From a3327cdd987290086bc29e671c04c0d93102c6c4 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Mon, 25 May 2026 10:55:19 +0000 Subject: [PATCH] v2.1.1 --- changelog.md | 3 +++ deno.json | 2 +- package.json | 2 +- ts/00_commitinfo_data.ts | 2 +- ts_bundled/bundle.ts | 2 +- ts_web/00_commitinfo_data.ts | 2 +- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/changelog.md b/changelog.md index fc3f130..5b479a0 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,9 @@ ## Pending + +## 2026-05-25 - 2.1.1 + ### Fixes - disable dees-catalog build scripts in workspace config (pnpm-workspace) diff --git a/deno.json b/deno.json index b8b4f94..5f1737c 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "@serve.zone/onebox", - "version": "2.1.0", + "version": "2.1.1", "exports": "./mod.ts", "tasks": { "test": "deno test --allow-all test/", diff --git a/package.json b/package.json index 51aabe2..919c02f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@serve.zone/onebox", - "version": "2.1.0", + "version": "2.1.1", "description": "Self-hosted container platform with automatic SSL and DNS - a mini Heroku for single servers", "main": "mod.ts", "type": "module", diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index e107074..aca9cbc 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/onebox', - version: '2.1.0', + version: '2.1.1', description: 'Self-hosted container platform with automatic SSL and DNS - a mini Heroku for single servers' } diff --git a/ts_bundled/bundle.ts b/ts_bundled/bundle.ts index c862a77..075d450 100644 --- a/ts_bundled/bundle.ts +++ b/ts_bundled/bundle.ts @@ -2,7 +2,7 @@ export const files: { path: string; contentBase64: string }[] = [ { "path": "bundle.js", - "contentBase64": "dmFyIFhidD1PYmplY3QuY3JlYXRlLEtidD1PYmplY3QuZnJlZXplLFRmPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgSmJ0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGcxYT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgYjFhPU9iamVjdC5nZXRQcm90b3R5cGVPZix4MWE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgZXh0PSh0LGUpPT4oZT1TeW1ib2xbdF0pP2U6U3ltYm9sLmZvcigiU3ltYm9sLiIrdCksTGc9dD0+e3Rocm93IFR5cGVFcnJvcih0KX07dmFyIHR4dD0odCxlLHIpPT5lIGluIHQ/VGYodCxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6dFtlXT1yO3ZhciBpPSh0LGUpPT5UZih0LCJuYW1lIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KSxTYWU9KHQ9PnR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnR5cGVvZiBQcm94eTwidSI/bmV3IFByb3h5KHQse2dldDooZSxyKT0+KHR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOmUpW3JdfSk6dCkoZnVuY3Rpb24odCl7aWYodHlwZW9mIHJlcXVpcmU8InUiKXJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aHJvdyBFcnJvcignRHluYW1pYyByZXF1aXJlIG9mICInK3QrJyIgaXMgbm90IHN1cHBvcnRlZCcpfSk7dmFyIHU9KHQsZSk9PigpPT4odCYmKGU9dCh0PTApKSxlKTt2YXIgTnQ9KHQsZSk9PigpPT4oZXx8dCgoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKSxWZT0odCxlKT0+e2Zvcih2YXIgciBpbiBlKVRmKHQscix7Z2V0OmVbcl0sZW51bWVyYWJsZTohMH0pfSx2MWE9KHQsZSxyLGEpPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IHMgb2YgZzFhKGUpKSF4MWEuY2FsbCh0LHMpJiZzIT09ciYmVGYodCxzLHtnZXQ6KCk9PmVbc10sZW51bWVyYWJsZTohKGE9SmJ0KGUscykpfHxhLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIEdhPSh0LGUscik9PihyPXQhPW51bGw/WGJ0KGIxYSh0KSk6e30sdjFhKGV8fCF0fHwhdC5fX2VzTW9kdWxlP1RmKHIsImRlZmF1bHQiLHt2YWx1ZTp0LGVudW1lcmFibGU6ITB9KTpyLHQpKTt2YXIgJGk9dD0+WywsLFhidCh0Py5bZXh0KCJtZXRhZGF0YSIpXT8/bnVsbCldLHJ4dD1bImNsYXNzIiwibWV0aG9kIiwiZ2V0dGVyIiwic2V0dGVyIiwiYWNjZXNzb3IiLCJmaWVsZCIsInZhbHVlIiwiZ2V0Iiwic2V0Il0sbGs9dD0+dCE9PXZvaWQgMCYmdHlwZW9mIHQhPSJmdW5jdGlvbiI/TGcoIkZ1bmN0aW9uIGV4cGVjdGVkIik6dCx5MWE9KHQsZSxyLGEscyk9Pih7a2luZDpyeHRbdF0sbmFtZTplLG1ldGFkYXRhOmEsYWRkSW5pdGlhbGl6ZXI6bj0+ci5fP0xnKCJBbHJlYWR5IGluaXRpYWxpemVkIik6cy5wdXNoKGxrKG58fG51bGwpKX0pLHcxYT0odCxlKT0+dHh0KGUsZXh0KCJtZXRhZGF0YSIpLHRbM10pLFhlPSh0LGUscixhKT0+e2Zvcih2YXIgcz0wLG49dFtlPj4xXSxvPW4mJm4ubGVuZ3RoO3M8bztzKyspZSYxP25bc10uY2FsbChyKTphPW5bc10uY2FsbChyLGEpO3JldHVybiBhfSxEdD0odCxlLHIsYSxzLG4pPT57dmFyIG8sbCxjLGQsZixwPWUmNyxoPSEhKGUmOCksbT0hIShlJjE2KSx2PXA+Mz90Lmxlbmd0aCsxOnA/aD8xOjI6MCxiPXJ4dFtwKzVdLGc9cD4zJiYodFt2LTFdPVtdKSx5PXRbdl18fCh0W3ZdPVtdKSxrPXAmJighbSYmIWgmJihzPXMucHJvdG90eXBlKSxwPDUmJihwPjN8fCFtKSYmSmJ0KHA8ND9zOntnZXRbcl0oKXtyZXR1cm4gWmJ0KHRoaXMsbil9LHNldFtyXShOKXtyZXR1cm4gUWJ0KHRoaXMsbixOKX19LHIpKTtwP20mJnA8NCYmaShuLChwPjI/InNldCAiOnA+MT8iZ2V0ICI6IiIpK3IpOmkocyxyKTtmb3IodmFyIE09YS5sZW5ndGgtMTtNPj0wO00tLSlkPXkxYShwLHIsYz17fSx0WzNdLHkpLHAmJihkLnN0YXRpYz1oLGQucHJpdmF0ZT1tLGY9ZC5hY2Nlc3M9e2hhczptP049PmsxYShzLE4pOk49PnIgaW4gTn0scF4zJiYoZi5nZXQ9bT9OPT4ocF4xP1pidDpTMWEpKE4scyxwXjQ/bjprLmdldCk6Tj0+TltyXSkscD4yJiYoZi5zZXQ9bT8oTixfKT0+UWJ0KE4scyxfLHBeND9uOmsuc2V0KTooTixfKT0+TltyXT1fKSksbD0oMCxhW01dKShwP3A8ND9tP246a1tiXTpwPjQ/dm9pZCAwOntnZXQ6ay5nZXQsc2V0Omsuc2V0fTpzLGQpLGMuXz0xLHBeNHx8bD09PXZvaWQgMD9sayhsKSYmKHA+ND9nLnVuc2hpZnQobCk6cD9tP249bDprW2JdPWw6cz1sKTp0eXBlb2YgbCE9Im9iamVjdCJ8fGw9PT1udWxsP0xnKCJPYmplY3QgZXhwZWN0ZWQiKToobGsobz1sLmdldCkmJihrLmdldD1vKSxsayhvPWwuc2V0KSYmKGsuc2V0PW8pLGxrKG89bC5pbml0KSYmZy51bnNoaWZ0KG8pKTtyZXR1cm4gcHx8dzFhKHQscyksayYmVGYocyxyLGspLG0/cF40P246azpzfSxnaT0odCxlLHIpPT50eHQodCx0eXBlb2YgZSE9InN5bWJvbCI/ZSsiIjplLHIpLCRtZT0odCxlLHIpPT5lLmhhcyh0KXx8TGcoIkNhbm5vdCAiK3IpLGsxYT0odCxlKT0+T2JqZWN0KGUpIT09ZT9MZygnQ2Fubm90IHVzZSB0aGUgImluIiBvcGVyYXRvciBvbiB0aGlzIHZhbHVlJyk6dC5oYXMoZSksWmJ0PSh0LGUscik9PigkbWUodCxlLCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLHI/ci5jYWxsKHQpOmUuZ2V0KHQpKSx0cj0odCxlLHIpPT5lLmhhcyh0KT9MZygiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpOmUgaW5zdGFuY2VvZiBXZWFrU2V0P2UuYWRkKHQpOmUuc2V0KHQsciksUWJ0PSh0LGUscixhKT0+KCRtZSh0LGUsIndyaXRlIHRvIHByaXZhdGUgZmllbGQiKSxhP2EuY2FsbCh0LHIpOmUuc2V0KHQsciksciksUzFhPSh0LGUscik9PigkbWUodCxlLCJhY2Nlc3MgcHJpdmF0ZSBtZXRob2QiKSxyKTt2YXIgRGc9KHQsZSk9PktidChUZih0LCJyYXciLHt2YWx1ZTpLYnQoZXx8dC5zbGljZSgpKX0pKTt2YXIgTWFlLGNrLEFtZSxheHQsJGcsTmEsJHIsQ2FlLGRrLEVtZT11KCgpPT57TWFlPWdsb2JhbFRoaXMsY2s9TWFlLlNoYWRvd1Jvb3QmJihNYWUuU2hhZHlDU1M9PT12b2lkIDB8fE1hZS5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpJiYiYWRvcHRlZFN0eWxlU2hlZXRzImluIERvY3VtZW50LnByb3RvdHlwZSYmInJlcGxhY2UiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUsQW1lPVN5bWJvbCgpLGF4dD1uZXcgV2Vha01hcCwkZz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJuIil9Y29uc3RydWN0b3IoZSxyLGEpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGEhPT1BbWUpdGhyb3cgRXJyb3IoIkNTU1Jlc3VsdCBpcyBub3QgY29uc3RydWN0YWJsZS4gVXNlIGB1bnNhZmVDU1NgIG9yIGBjc3NgIGluc3RlYWQuIik7dGhpcy5jc3NUZXh0PWUsdGhpcy50PXJ9Z2V0IHN0eWxlU2hlZXQoKXtsZXQgZT10aGlzLm8scj10aGlzLnQ7aWYoY2smJmU9PT12b2lkIDApe2xldCBhPXIhPT12b2lkIDAmJnIubGVuZ3RoPT09MTthJiYoZT1heHQuZ2V0KHIpKSxlPT09dm9pZCAwJiYoKHRoaXMubz1lPW5ldyBDU1NTdHlsZVNoZWV0KS5yZXBsYWNlU3luYyh0aGlzLmNzc1RleHQpLGEmJmF4dC5zZXQocixlKSl9cmV0dXJuIGV9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3NUZXh0fX0sTmE9aSh0PT5uZXcgJGcodHlwZW9mIHQ9PSJzdHJpbmciP3Q6dCsiIix2b2lkIDAsQW1lKSwiciIpLCRyPWkoKHQsLi4uZSk9PntsZXQgcj10Lmxlbmd0aD09PTE/dFswXTplLnJlZHVjZSgoYSxzLG4pPT5hKyhvPT57aWYoby5fJGNzc1Jlc3VsdCQ9PT0hMClyZXR1cm4gby5jc3NUZXh0O2lmKHR5cGVvZiBvPT0ibnVtYmVyIilyZXR1cm4gbzt0aHJvdyBFcnJvcigiVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICIrbysiLiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuIil9KShzKSt0W24rMV0sdFswXSk7cmV0dXJuIG5ldyAkZyhyLHQsQW1lKX0sImkiKSxDYWU9aSgodCxlKT0+e2lmKGNrKXQuYWRvcHRlZFN0eWxlU2hlZXRzPWUubWFwKHI9PnIgaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0P3I6ci5zdHlsZVNoZWV0KTtlbHNlIGZvcihsZXQgciBvZiBlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLHM9TWFlLmxpdE5vbmNlO3MhPT12b2lkIDAmJmEuc2V0QXR0cmlidXRlKCJub25jZSIscyksYS50ZXh0Q29udGVudD1yLmNzc1RleHQsdC5hcHBlbmRDaGlsZChhKX19LCJTIiksZGs9Y2s/dD0+dDp0PT50IGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD8oZT0+e2xldCByPSIiO2ZvcihsZXQgYSBvZiBlLmNzc1J1bGVzKXIrPWEuY3NzVGV4dDtyZXR1cm4gTmEocil9KSh0KTp0fSk7dmFyIE0xYSxDMWEsejFhLF8xYSxUMWEsTDFhLHphZSxpeHQsRDFhLCQxYSx1ayxBZyxwayxzeHQsamMsZms9dSgoKT0+e0VtZSgpO0VtZSgpOyh7aXM6TTFhLGRlZmluZVByb3BlcnR5OkMxYSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ejFhLGdldE93blByb3BlcnR5TmFtZXM6XzFhLGdldE93blByb3BlcnR5U3ltYm9sczpUMWEsZ2V0UHJvdG90eXBlT2Y6TDFhfT1PYmplY3QpLHphZT1nbG9iYWxUaGlzLGl4dD16YWUudHJ1c3RlZFR5cGVzLEQxYT1peHQ/aXh0LmVtcHR5U2NyaXB0OiIiLCQxYT16YWUucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0LHVrPWkoKHQsZSk9PnQsImQiKSxBZz17dG9BdHRyaWJ1dGUodCxlKXtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnQ9dD9EMWE6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnQ9dD09bnVsbD90OkpTT04uc3RyaW5naWZ5KHQpfXJldHVybiB0fSxmcm9tQXR0cmlidXRlKHQsZSl7bGV0IHI9dDtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnI9dCE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6cj10PT09bnVsbD9udWxsOk51bWJlcih0KTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtyPUpTT04ucGFyc2UodCl9Y2F0Y2h7cj1udWxsfX1yZXR1cm4gcn19LHBrPWkoKHQsZSk9PiFNMWEodCxlKSwiZiIpLHN4dD17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjpBZyxyZWZsZWN0OiExLHVzZURlZmF1bHQ6ITEsaGFzQ2hhbmdlZDpwa307U3ltYm9sLm1ldGFkYXRhPz89U3ltYm9sKCJtZXRhZGF0YSIpLHphZS5saXRQcm9wZXJ0eU1ldGFkYXRhPz89bmV3IFdlYWtNYXA7amM9Y2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudHtzdGF0aWN7aSh0aGlzLCJ5Iil9c3RhdGljIGFkZEluaXRpYWxpemVyKGUpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaChlKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KGUscj1zeHQpe2lmKHIuc3RhdGUmJihyLmF0dHJpYnV0ZT0hMSksdGhpcy5fJEVpKCksdGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoZSkmJigocj1PYmplY3QuY3JlYXRlKHIpKS53cmFwcGVkPSEwKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChlLHIpLCFyLm5vQWNjZXNzb3Ipe2xldCBhPVN5bWJvbCgpLHM9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IoZSxhLHIpO3MhPT12b2lkIDAmJkMxYSh0aGlzLnByb3RvdHlwZSxlLHMpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGUscixhKXtsZXR7Z2V0OnMsc2V0Om59PXoxYSh0aGlzLnByb3RvdHlwZSxlKT8/e2dldCgpe3JldHVybiB0aGlzW3JdfSxzZXQobyl7dGhpc1tyXT1vfX07cmV0dXJue2dldDpzLHNldChvKXtsZXQgbD1zPy5jYWxsKHRoaXMpO24/LmNhbGwodGhpcyxvKSx0aGlzLnJlcXVlc3RVcGRhdGUoZSxsLGEpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19c3RhdGljIGdldFByb3BlcnR5T3B0aW9ucyhlKXtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5nZXQoZSk/P3N4dH1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkodWsoImVsZW1lbnRQcm9wZXJ0aWVzIikpKXJldHVybjtsZXQgZT1MMWEodGhpcyk7ZS5maW5hbGl6ZSgpLGUubCE9PXZvaWQgMCYmKHRoaXMubD1bLi4uZS5sXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKGUuZWxlbWVudFByb3BlcnRpZXMpfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkodWsoImZpbmFsaXplZCIpKSlyZXR1cm47aWYodGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fJEVpKCksdGhpcy5oYXNPd25Qcm9wZXJ0eSh1aygicHJvcGVydGllcyIpKSl7bGV0IHI9dGhpcy5wcm9wZXJ0aWVzLGE9Wy4uLl8xYShyKSwuLi5UMWEocildO2ZvcihsZXQgcyBvZiBhKXRoaXMuY3JlYXRlUHJvcGVydHkocyxyW3NdKX1sZXQgZT10aGlzW1N5bWJvbC5tZXRhZGF0YV07aWYoZSE9PW51bGwpe2xldCByPWxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KGUpO2lmKHIhPT12b2lkIDApZm9yKGxldFthLHNdb2Ygcil0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChhLHMpfXRoaXMuXyRFaD1uZXcgTWFwO2ZvcihsZXRbcixhXW9mIHRoaXMuZWxlbWVudFByb3BlcnRpZXMpe2xldCBzPXRoaXMuXyRFdShyLGEpO3MhPT12b2lkIDAmJnRoaXMuXyRFaC5zZXQocyxyKX10aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0aGlzLnN0eWxlcyl9c3RhdGljIGZpbmFsaXplU3R5bGVzKGUpe2xldCByPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBhPW5ldyBTZXQoZS5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IobGV0IHMgb2YgYSlyLnVuc2hpZnQoZGsocykpfWVsc2UgZSE9PXZvaWQgMCYmci5wdXNoKGRrKGUpKTtyZXR1cm4gcn1zdGF0aWMgXyRFdShlLHIpe2xldCBhPXIuYXR0cmlidXRlO3JldHVybiBhPT09ITE/dm9pZCAwOnR5cGVvZiBhPT0ic3RyaW5nIj9hOnR5cGVvZiBlPT0ic3RyaW5nIj9lLnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKGU9PnRoaXMuZW5hYmxlVXBkYXRpbmc9ZSksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVfKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jb25zdHJ1Y3Rvci5sPy5mb3JFYWNoKGU9PmUodGhpcykpfWFkZENvbnRyb2xsZXIoZSl7KHRoaXMuXyRFTz8/PW5ldyBTZXQpLmFkZChlKSx0aGlzLnJlbmRlclJvb3QhPT12b2lkIDAmJnRoaXMuaXNDb25uZWN0ZWQmJmUuaG9zdENvbm5lY3RlZD8uKCl9cmVtb3ZlQ29udHJvbGxlcihlKXt0aGlzLl8kRU8/LmRlbGV0ZShlKX1fJEVfKCl7bGV0IGU9bmV3IE1hcCxyPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGxldCBhIG9mIHIua2V5cygpKXRoaXMuaGFzT3duUHJvcGVydHkoYSkmJihlLnNldChhLHRoaXNbYV0pLGRlbGV0ZSB0aGlzW2FdKTtlLnNpemU+MCYmKHRoaXMuXyRFcD1lKX1jcmVhdGVSZW5kZXJSb290KCl7bGV0IGU9dGhpcy5zaGFkb3dSb290Pz90aGlzLmF0dGFjaFNoYWRvdyh0aGlzLmNvbnN0cnVjdG9yLnNoYWRvd1Jvb3RPcHRpb25zKTtyZXR1cm4gQ2FlKGUsdGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50U3R5bGVzKSxlfWNvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5lbmFibGVVcGRhdGluZyghMCksdGhpcy5fJEVPPy5mb3JFYWNoKGU9PmUuaG9zdENvbm5lY3RlZD8uKCkpfWVuYWJsZVVwZGF0aW5nKGUpe31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3REaXNjb25uZWN0ZWQ/LigpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSxyLGEpe3RoaXMuXyRBSyhlLGEpfV8kRVQoZSxyKXtsZXQgYT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKSxzPXRoaXMuY29uc3RydWN0b3IuXyRFdShlLGEpO2lmKHMhPT12b2lkIDAmJmEucmVmbGVjdD09PSEwKXtsZXQgbj0oYS5jb252ZXJ0ZXI/LnRvQXR0cmlidXRlIT09dm9pZCAwP2EuY29udmVydGVyOkFnKS50b0F0dHJpYnV0ZShyLGEudHlwZSk7dGhpcy5fJEVtPWUsbj09bnVsbD90aGlzLnJlbW92ZUF0dHJpYnV0ZShzKTp0aGlzLnNldEF0dHJpYnV0ZShzLG4pLHRoaXMuXyRFbT1udWxsfX1fJEFLKGUscil7bGV0IGE9dGhpcy5jb25zdHJ1Y3RvcixzPWEuXyRFaC5nZXQoZSk7aWYocyE9PXZvaWQgMCYmdGhpcy5fJEVtIT09cyl7bGV0IG49YS5nZXRQcm9wZXJ0eU9wdGlvbnMocyksbz10eXBlb2Ygbi5jb252ZXJ0ZXI9PSJmdW5jdGlvbiI/e2Zyb21BdHRyaWJ1dGU6bi5jb252ZXJ0ZXJ9Om4uY29udmVydGVyPy5mcm9tQXR0cmlidXRlIT09dm9pZCAwP24uY29udmVydGVyOkFnO3RoaXMuXyRFbT1zO2xldCBsPW8uZnJvbUF0dHJpYnV0ZShyLG4udHlwZSk7dGhpc1tzXT1sPz90aGlzLl8kRWo/LmdldChzKT8/bCx0aGlzLl8kRW09bnVsbH19cmVxdWVzdFVwZGF0ZShlLHIsYSxzPSExLG4pe2lmKGUhPT12b2lkIDApe2xldCBvPXRoaXMuY29uc3RydWN0b3I7aWYocz09PSExJiYobj10aGlzW2VdKSxhPz89by5nZXRQcm9wZXJ0eU9wdGlvbnMoZSksISgoYS5oYXNDaGFuZ2VkPz9waykobixyKXx8YS51c2VEZWZhdWx0JiZhLnJlZmxlY3QmJm49PT10aGlzLl8kRWo/LmdldChlKSYmIXRoaXMuaGFzQXR0cmlidXRlKG8uXyRFdShlLGEpKSkpcmV0dXJuO3RoaXMuQyhlLHIsYSl9dGhpcy5pc1VwZGF0ZVBlbmRpbmc9PT0hMSYmKHRoaXMuXyRFUz10aGlzLl8kRVAoKSl9QyhlLHIse3VzZURlZmF1bHQ6YSxyZWZsZWN0OnMsd3JhcHBlZDpufSxvKXthJiYhKHRoaXMuXyRFaj8/PW5ldyBNYXApLmhhcyhlKSYmKHRoaXMuXyRFai5zZXQoZSxvPz9yPz90aGlzW2VdKSxuIT09ITB8fG8hPT12b2lkIDApfHwodGhpcy5fJEFMLmhhcyhlKXx8KHRoaXMuaGFzVXBkYXRlZHx8YXx8KHI9dm9pZCAwKSx0aGlzLl8kQUwuc2V0KGUscikpLHM9PT0hMCYmdGhpcy5fJEVtIT09ZSYmKHRoaXMuXyRFcT8/PW5ldyBTZXQpLmFkZChlKSl9YXN5bmMgXyRFUCgpe3RoaXMuaXNVcGRhdGVQZW5kaW5nPSEwO3RyeXthd2FpdCB0aGlzLl8kRVN9Y2F0Y2gocil7UHJvbWlzZS5yZWplY3Qocil9bGV0IGU9dGhpcy5zY2hlZHVsZVVwZGF0ZSgpO3JldHVybiBlIT1udWxsJiZhd2FpdCBlLCF0aGlzLmlzVXBkYXRlUGVuZGluZ31zY2hlZHVsZVVwZGF0ZSgpe3JldHVybiB0aGlzLnBlcmZvcm1VcGRhdGUoKX1wZXJmb3JtVXBkYXRlKCl7aWYoIXRoaXMuaXNVcGRhdGVQZW5kaW5nKXJldHVybjtpZighdGhpcy5oYXNVcGRhdGVkKXtpZih0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLl8kRXApe2ZvcihsZXRbcyxuXW9mIHRoaXMuXyRFcCl0aGlzW3NdPW47dGhpcy5fJEVwPXZvaWQgMH1sZXQgYT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2lmKGEuc2l6ZT4wKWZvcihsZXRbcyxuXW9mIGEpe2xldHt3cmFwcGVkOm99PW4sbD10aGlzW3NdO28hPT0hMHx8dGhpcy5fJEFMLmhhcyhzKXx8bD09PXZvaWQgMHx8dGhpcy5DKHMsdm9pZCAwLG4sbCl9fWxldCBlPSExLHI9dGhpcy5fJEFMO3RyeXtlPXRoaXMuc2hvdWxkVXBkYXRlKHIpLGU/KHRoaXMud2lsbFVwZGF0ZShyKSx0aGlzLl8kRU8/LmZvckVhY2goYT0+YS5ob3N0VXBkYXRlPy4oKSksdGhpcy51cGRhdGUocikpOnRoaXMuXyRFTSgpfWNhdGNoKGEpe3Rocm93IGU9ITEsdGhpcy5fJEVNKCksYX1lJiZ0aGlzLl8kQUUocil9d2lsbFVwZGF0ZShlKXt9XyRBRShlKXt0aGlzLl8kRU8/LmZvckVhY2gocj0+ci5ob3N0VXBkYXRlZD8uKCkpLHRoaXMuaGFzVXBkYXRlZHx8KHRoaXMuaGFzVXBkYXRlZD0hMCx0aGlzLmZpcnN0VXBkYXRlZChlKSksdGhpcy51cGRhdGVkKGUpfV8kRU0oKXt0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMX1nZXQgdXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5nZXRVcGRhdGVDb21wbGV0ZSgpfWdldFVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuXyRFU31zaG91bGRVcGRhdGUoZSl7cmV0dXJuITB9dXBkYXRlKGUpe3RoaXMuXyRFcSYmPXRoaXMuXyRFcS5mb3JFYWNoKHI9PnRoaXMuXyRFVChyLHRoaXNbcl0pKSx0aGlzLl8kRU0oKX11cGRhdGVkKGUpe31maXJzdFVwZGF0ZWQoZSl7fX07amMuZWxlbWVudFN0eWxlcz1bXSxqYy5zaGFkb3dSb290T3B0aW9ucz17bW9kZToib3BlbiJ9LGpjW3VrKCJlbGVtZW50UHJvcGVydGllcyIpXT1uZXcgTWFwLGpjW3VrKCJmaW5hbGl6ZWQiKV09bmV3IE1hcCwkMWE/Lih7UmVhY3RpdmVFbGVtZW50OmpjfSksKHphZS5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCIyLjEuMiIpfSk7ZnVuY3Rpb24gbXh0KHQsZSl7aWYoIU9tZSh0KXx8IXQuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gb3h0IT09dm9pZCAwP294dC5jcmVhdGVIVE1MKGUpOmV9ZnVuY3Rpb24gQWYodCxlLHI9dCxhKXtpZihlPT09YWkpcmV0dXJuIGU7bGV0IHM9YSE9PXZvaWQgMD9yLl8kQ28/LlthXTpyLl8kQ2wsbj1tayhlKT92b2lkIDA6ZS5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIHM/LmNvbnN0cnVjdG9yIT09biYmKHM/Ll8kQU8/LighMSksbj09PXZvaWQgMD9zPXZvaWQgMDoocz1uZXcgbih0KSxzLl8kQVQodCxyLGEpKSxhIT09dm9pZCAwPyhyLl8kQ28/Pz1bXSlbYV09czpyLl8kQ2w9cykscyE9PXZvaWQgMCYmKGU9QWYodCxzLl8kQVModCxlLnZhbHVlcykscyxhKSksZX12YXIgSW1lLG54dCxfYWUsb3h0LFBtZSwkZCxObWUsQTFhLExmLGhrLG1rLE9tZSxseHQsUm1lLGdrLGN4dCxkeHQsRGYsdXh0LHB4dCxmeHQsRm1lLFFlLEJtZSxIbWUsYWksYmksaHh0LCRmLGd4dCxiayxUYWUsRWcsRWYsTGFlLERhZSwkYWUsQWFlLHFtZSxFMWEseGsseDI9dSgoKT0+e0ltZT1nbG9iYWxUaGlzLG54dD1pKHQ9PnQsImkiKSxfYWU9SW1lLnRydXN0ZWRUeXBlcyxveHQ9X2FlP19hZS5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDppKHQ9PnQsImNyZWF0ZUhUTUwiKX0pOnZvaWQgMCxQbWU9IiRsaXQkIiwkZD1gbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgLE5tZT0iPyIrJGQsQTFhPWA8JHtObWV9PmAsTGY9ZG9jdW1lbnQsaGs9aSgoKT0+TGYuY3JlYXRlQ29tbWVudCgiIiksImMiKSxtaz1pKHQ9PnQ9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCImJnR5cGVvZiB0IT0iZnVuY3Rpb24iLCJhIiksT21lPUFycmF5LmlzQXJyYXksbHh0PWkodD0+T21lKHQpfHx0eXBlb2YgdD8uW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIsImQiKSxSbWU9YFsgCQpcZlxyXWAsZ2s9LzwoPzooIS0tfFwvW15hLXpBLVpdKXwoXC8/W2EtekEtWl1bXj5cc10qKXwoXC8/JCkpL2csY3h0PS8tLT4vZyxkeHQ9Lz4vZyxEZj1SZWdFeHAoYD58JHtSbWV9KD86KFteXFxzIic+PS9dKykoJHtSbWV9Kj0ke1JtZX0qKD86W14gCQpcZlxyIidcYDw+PV18KCJ8Jyl8KSl8JClgLCJnIiksdXh0PS8nL2cscHh0PS8iL2csZnh0PS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaSxGbWU9aSh0PT4oZSwuLi5yKT0+KHtfJGxpdFR5cGUkOnQsc3RyaW5nczplLHZhbHVlczpyfSksIngiKSxRZT1GbWUoMSksQm1lPUZtZSgyKSxIbWU9Rm1lKDMpLGFpPVN5bWJvbC5mb3IoImxpdC1ub0NoYW5nZSIpLGJpPVN5bWJvbC5mb3IoImxpdC1ub3RoaW5nIiksaHh0PW5ldyBXZWFrTWFwLCRmPUxmLmNyZWF0ZVRyZWVXYWxrZXIoTGYsMTI5KTtpKG14dCwiViIpO2d4dD1pKCh0LGUpPT57bGV0IHI9dC5sZW5ndGgtMSxhPVtdLHMsbj1lPT09Mj8iPHN2Zz4iOmU9PT0zPyI8bWF0aD4iOiIiLG89Z2s7Zm9yKGxldCBsPTA7bDxyO2wrKyl7bGV0IGM9dFtsXSxkLGYscD0tMSxoPTA7Zm9yKDtoPGMubGVuZ3RoJiYoby5sYXN0SW5kZXg9aCxmPW8uZXhlYyhjKSxmIT09bnVsbCk7KWg9by5sYXN0SW5kZXgsbz09PWdrP2ZbMV09PT0iIS0tIj9vPWN4dDpmWzFdIT09dm9pZCAwP289ZHh0OmZbMl0hPT12b2lkIDA/KGZ4dC50ZXN0KGZbMl0pJiYocz1SZWdFeHAoIjwvIitmWzJdLCJnIikpLG89RGYpOmZbM10hPT12b2lkIDAmJihvPURmKTpvPT09RGY/ZlswXT09PSI+Ij8obz1zPz9nayxwPS0xKTpmWzFdPT09dm9pZCAwP3A9LTI6KHA9by5sYXN0SW5kZXgtZlsyXS5sZW5ndGgsZD1mWzFdLG89ZlszXT09PXZvaWQgMD9EZjpmWzNdPT09JyInP3B4dDp1eHQpOm89PT1weHR8fG89PT11eHQ/bz1EZjpvPT09Y3h0fHxvPT09ZHh0P289Z2s6KG89RGYscz12b2lkIDApO2xldCBtPW89PT1EZiYmdFtsKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO24rPW89PT1naz9jK0ExYTpwPj0wPyhhLnB1c2goZCksYy5zbGljZSgwLHApK1BtZStjLnNsaWNlKHApKyRkK20pOmMrJGQrKHA9PT0tMj9sOm0pfXJldHVybltteHQodCxuKyh0W3JdfHwiPD8+IikrKGU9PT0yPyI8L3N2Zz4iOmU9PT0zPyI8L21hdGg+IjoiIikpLGFdfSwiTiIpLGJrPWNsYXNzIHR7c3RhdGlje2kodGhpcywiUyIpfWNvbnN0cnVjdG9yKHtzdHJpbmdzOmUsXyRsaXRUeXBlJDpyfSxhKXtsZXQgczt0aGlzLnBhcnRzPVtdO2xldCBuPTAsbz0wLGw9ZS5sZW5ndGgtMSxjPXRoaXMucGFydHMsW2QsZl09Z3h0KGUscik7aWYodGhpcy5lbD10LmNyZWF0ZUVsZW1lbnQoZCxhKSwkZi5jdXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQscj09PTJ8fHI9PT0zKXtsZXQgcD10aGlzLmVsLmNvbnRlbnQuZmlyc3RDaGlsZDtwLnJlcGxhY2VXaXRoKC4uLnAuY2hpbGROb2Rlcyl9Zm9yKDsocz0kZi5uZXh0Tm9kZSgpKSE9PW51bGwmJmMubGVuZ3RoPGw7KXtpZihzLm5vZGVUeXBlPT09MSl7aWYocy5oYXNBdHRyaWJ1dGVzKCkpZm9yKGxldCBwIG9mIHMuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihwLmVuZHNXaXRoKFBtZSkpe2xldCBoPWZbbysrXSxtPXMuZ2V0QXR0cmlidXRlKHApLnNwbGl0KCRkKSx2PS8oWy4/QF0pPyguKikvLmV4ZWMoaCk7Yy5wdXNoKHt0eXBlOjEsaW5kZXg6bixuYW1lOnZbMl0sc3RyaW5nczptLGN0b3I6dlsxXT09PSIuIj9MYWU6dlsxXT09PSI/Ij9EYWU6dlsxXT09PSJAIj8kYWU6RWZ9KSxzLnJlbW92ZUF0dHJpYnV0ZShwKX1lbHNlIHAuc3RhcnRzV2l0aCgkZCkmJihjLnB1c2goe3R5cGU6NixpbmRleDpufSkscy5yZW1vdmVBdHRyaWJ1dGUocCkpO2lmKGZ4dC50ZXN0KHMudGFnTmFtZSkpe2xldCBwPXMudGV4dENvbnRlbnQuc3BsaXQoJGQpLGg9cC5sZW5ndGgtMTtpZihoPjApe3MudGV4dENvbnRlbnQ9X2FlP19hZS5lbXB0eVNjcmlwdDoiIjtmb3IobGV0IG09MDttPGg7bSsrKXMuYXBwZW5kKHBbbV0saGsoKSksJGYubmV4dE5vZGUoKSxjLnB1c2goe3R5cGU6MixpbmRleDorK259KTtzLmFwcGVuZChwW2hdLGhrKCkpfX19ZWxzZSBpZihzLm5vZGVUeXBlPT09OClpZihzLmRhdGE9PT1ObWUpYy5wdXNoKHt0eXBlOjIsaW5kZXg6bn0pO2Vsc2V7bGV0IHA9LTE7Zm9yKDsocD1zLmRhdGEuaW5kZXhPZigkZCxwKzEpKSE9PS0xOyljLnB1c2goe3R5cGU6NyxpbmRleDpufSkscCs9JGQubGVuZ3RoLTF9bisrfX1zdGF0aWMgY3JlYXRlRWxlbWVudChlLHIpe2xldCBhPUxmLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIGEuaW5uZXJIVE1MPWUsYX19O2koQWYsIk0iKTtUYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiUiIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5fJEFWPVtdLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFEPWUsdGhpcy5fJEFNPXJ9Z2V0IHBhcmVudE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFNLnBhcmVudE5vZGV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9dShlKXtsZXR7ZWw6e2NvbnRlbnQ6cn0scGFydHM6YX09dGhpcy5fJEFELHM9KGU/LmNyZWF0aW9uU2NvcGU/P0xmKS5pbXBvcnROb2RlKHIsITApOyRmLmN1cnJlbnROb2RlPXM7bGV0IG49JGYubmV4dE5vZGUoKSxvPTAsbD0wLGM9YVswXTtmb3IoO2MhPT12b2lkIDA7KXtpZihvPT09Yy5pbmRleCl7bGV0IGQ7Yy50eXBlPT09Mj9kPW5ldyBFZyhuLG4ubmV4dFNpYmxpbmcsdGhpcyxlKTpjLnR5cGU9PT0xP2Q9bmV3IGMuY3RvcihuLGMubmFtZSxjLnN0cmluZ3MsdGhpcyxlKTpjLnR5cGU9PT02JiYoZD1uZXcgQWFlKG4sdGhpcyxlKSksdGhpcy5fJEFWLnB1c2goZCksYz1hWysrbF19byE9PWM/LmluZGV4JiYobj0kZi5uZXh0Tm9kZSgpLG8rKyl9cmV0dXJuICRmLmN1cnJlbnROb2RlPUxmLHN9cChlKXtsZXQgcj0wO2ZvcihsZXQgYSBvZiB0aGlzLl8kQVYpYSE9PXZvaWQgMCYmKGEuc3RyaW5ncyE9PXZvaWQgMD8oYS5fJEFJKGUsYSxyKSxyKz1hLnN0cmluZ3MubGVuZ3RoLTIpOmEuXyRBSShlW3JdKSkscisrfX0sRWc9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJrIil9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPWJpLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPWUsdGhpcy5fJEFCPXIsdGhpcy5fJEFNPWEsdGhpcy5vcHRpb25zPXMsdGhpcy5fJEN2PXM/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCBlPXRoaXMuXyRBQS5wYXJlbnROb2RlLHI9dGhpcy5fJEFNO3JldHVybiByIT09dm9pZCAwJiZlPy5ub2RlVHlwZT09PTExJiYoZT1yLnBhcmVudE5vZGUpLGV9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkoZSxyPXRoaXMpe2U9QWYodGhpcyxlLHIpLG1rKGUpP2U9PT1iaXx8ZT09bnVsbHx8ZT09PSIiPyh0aGlzLl8kQUghPT1iaSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPWJpKTplIT09dGhpcy5fJEFIJiZlIT09YWkmJnRoaXMuXyhlKTplLl8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKGUpOmUubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKGUpOmx4dChlKT90aGlzLmsoZSk6dGhpcy5fKGUpfU8oZSl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMuXyRBQil9VChlKXt0aGlzLl8kQUghPT1lJiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyhlKSl9XyhlKXt0aGlzLl8kQUghPT1iaSYmbWsodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT1lOnRoaXMuVChMZi5jcmVhdGVUZXh0Tm9kZShlKSksdGhpcy5fJEFIPWV9JChlKXtsZXR7dmFsdWVzOnIsXyRsaXRUeXBlJDphfT1lLHM9dHlwZW9mIGE9PSJudW1iZXIiP3RoaXMuXyRBQyhlKTooYS5lbD09PXZvaWQgMCYmKGEuZWw9YmsuY3JlYXRlRWxlbWVudChteHQoYS5oLGEuaFswXSksdGhpcy5vcHRpb25zKSksYSk7aWYodGhpcy5fJEFIPy5fJEFEPT09cyl0aGlzLl8kQUgucChyKTtlbHNle2xldCBuPW5ldyBUYWUocyx0aGlzKSxvPW4udSh0aGlzLm9wdGlvbnMpO24ucChyKSx0aGlzLlQobyksdGhpcy5fJEFIPW59fV8kQUMoZSl7bGV0IHI9aHh0LmdldChlLnN0cmluZ3MpO3JldHVybiByPT09dm9pZCAwJiZoeHQuc2V0KGUuc3RyaW5ncyxyPW5ldyBiayhlKSkscn1rKGUpe09tZSh0aGlzLl8kQUgpfHwodGhpcy5fJEFIPVtdLHRoaXMuXyRBUigpKTtsZXQgcj10aGlzLl8kQUgsYSxzPTA7Zm9yKGxldCBuIG9mIGUpcz09PXIubGVuZ3RoP3IucHVzaChhPW5ldyB0KHRoaXMuTyhoaygpKSx0aGlzLk8oaGsoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTphPXJbc10sYS5fJEFJKG4pLHMrKztzPHIubGVuZ3RoJiYodGhpcy5fJEFSKGEmJmEuXyRBQi5uZXh0U2libGluZyxzKSxyLmxlbmd0aD1zKX1fJEFSKGU9dGhpcy5fJEFBLm5leHRTaWJsaW5nLHIpe2Zvcih0aGlzLl8kQVA/LighMSwhMCxyKTtlIT09dGhpcy5fJEFCOyl7bGV0IGE9bnh0KGUpLm5leHRTaWJsaW5nO254dChlKS5yZW1vdmUoKSxlPWF9fXNldENvbm5lY3RlZChlKXt0aGlzLl8kQU09PT12b2lkIDAmJih0aGlzLl8kQ3Y9ZSx0aGlzLl8kQVA/LihlKSl9fSxFZj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJIIil9Z2V0IHRhZ05hbWUoKXtyZXR1cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9Y29uc3RydWN0b3IoZSxyLGEscyxuKXt0aGlzLnR5cGU9MSx0aGlzLl8kQUg9YmksdGhpcy5fJEFOPXZvaWQgMCx0aGlzLmVsZW1lbnQ9ZSx0aGlzLm5hbWU9cix0aGlzLl8kQU09cyx0aGlzLm9wdGlvbnM9bixhLmxlbmd0aD4yfHxhWzBdIT09IiJ8fGFbMV0hPT0iIj8odGhpcy5fJEFIPUFycmF5KGEubGVuZ3RoLTEpLmZpbGwobmV3IFN0cmluZyksdGhpcy5zdHJpbmdzPWEpOnRoaXMuXyRBSD1iaX1fJEFJKGUscj10aGlzLGEscyl7bGV0IG49dGhpcy5zdHJpbmdzLG89ITE7aWYobj09PXZvaWQgMCllPUFmKHRoaXMsZSxyLDApLG89IW1rKGUpfHxlIT09dGhpcy5fJEFIJiZlIT09YWksbyYmKHRoaXMuXyRBSD1lKTtlbHNle2xldCBsPWUsYyxkO2ZvcihlPW5bMF0sYz0wO2M8bi5sZW5ndGgtMTtjKyspZD1BZih0aGlzLGxbYStjXSxyLGMpLGQ9PT1haSYmKGQ9dGhpcy5fJEFIW2NdKSxvfHw9IW1rKGQpfHxkIT09dGhpcy5fJEFIW2NdLGQ9PT1iaT9lPWJpOmUhPT1iaSYmKGUrPShkPz8iIikrbltjKzFdKSx0aGlzLl8kQUhbY109ZH1vJiYhcyYmdGhpcy5qKGUpfWooZSl7ZT09PWJpP3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKTp0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMubmFtZSxlPz8iIil9fSxMYWU9Y2xhc3MgZXh0ZW5kcyBFZntzdGF0aWN7aSh0aGlzLCJJIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0zfWooZSl7dGhpcy5lbGVtZW50W3RoaXMubmFtZV09ZT09PWJpP3ZvaWQgMDplfX0sRGFlPWNsYXNzIGV4dGVuZHMgRWZ7c3RhdGlje2kodGhpcywiTCIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKGUpe3RoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUodGhpcy5uYW1lLCEhZSYmZSE9PWJpKX19LCRhZT1jbGFzcyBleHRlbmRzIEVme3N0YXRpY3tpKHRoaXMsInoiKX1jb25zdHJ1Y3RvcihlLHIsYSxzLG4pe3N1cGVyKGUscixhLHMsbiksdGhpcy50eXBlPTV9XyRBSShlLHI9dGhpcyl7aWYoKGU9QWYodGhpcyxlLHIsMCk/P2JpKT09PWFpKXJldHVybjtsZXQgYT10aGlzLl8kQUgscz1lPT09YmkmJmEhPT1iaXx8ZS5jYXB0dXJlIT09YS5jYXB0dXJlfHxlLm9uY2UhPT1hLm9uY2V8fGUucGFzc2l2ZSE9PWEucGFzc2l2ZSxuPWUhPT1iaSYmKGE9PT1iaXx8cyk7cyYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsYSksbiYmdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsZSksdGhpcy5fJEFIPWV9aGFuZGxlRXZlbnQoZSl7dHlwZW9mIHRoaXMuXyRBSD09ImZ1bmN0aW9uIj90aGlzLl8kQUguY2FsbCh0aGlzLm9wdGlvbnM/Lmhvc3Q/P3RoaXMuZWxlbWVudCxlKTp0aGlzLl8kQUguaGFuZGxlRXZlbnQoZSl9fSxBYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiWiIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1yLHRoaXMub3B0aW9ucz1hfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkoZSl7QWYodGhpcyxlKX19LHFtZT17TTpQbWUsUDokZCxBOk5tZSxDOjEsTDpneHQsUjpUYWUsRDpseHQsVjpBZixJOkVnLEg6RWYsTjpEYWUsVTokYWUsQjpMYWUsRjpBYWV9LEUxYT1JbWUubGl0SHRtbFBvbHlmaWxsU3VwcG9ydDtFMWE/LihiayxFZyksKEltZS5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaCgiMy4zLjIiKTt4az1pKCh0LGUscik9PntsZXQgYT1yPy5yZW5kZXJCZWZvcmU/P2Uscz1hLl8kbGl0UGFydCQ7aWYocz09PXZvaWQgMCl7bGV0IG49cj8ucmVuZGVyQmVmb3JlPz9udWxsO2EuXyRsaXRQYXJ0JD1zPW5ldyBFZyhlLmluc2VydEJlZm9yZShoaygpLG4pLG4sdm9pZCAwLHI/P3t9KX1yZXR1cm4gcy5fJEFJKHQpLHN9LCJEIil9KTt2YXIgVm1lLEFkLEkxYSxQMWEsYnh0PXUoKCk9PntmaygpO2ZrKCk7eDIoKTt4MigpO1ZtZT1nbG9iYWxUaGlzLEFkPWNsYXNzIGV4dGVuZHMgamN7c3RhdGlje2kodGhpcywiaSIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbmRlck9wdGlvbnM9e2hvc3Q6dGhpc30sdGhpcy5fJERvPXZvaWQgMH1jcmVhdGVSZW5kZXJSb290KCl7bGV0IGU9c3VwZXIuY3JlYXRlUmVuZGVyUm9vdCgpO3JldHVybiB0aGlzLnJlbmRlck9wdGlvbnMucmVuZGVyQmVmb3JlPz89ZS5maXJzdENoaWxkLGV9dXBkYXRlKGUpe2xldCByPXRoaXMucmVuZGVyKCk7dGhpcy5oYXNVcGRhdGVkfHwodGhpcy5yZW5kZXJPcHRpb25zLmlzQ29ubmVjdGVkPXRoaXMuaXNDb25uZWN0ZWQpLHN1cGVyLnVwZGF0ZShlKSx0aGlzLl8kRG89eGsocix0aGlzLnJlbmRlclJvb3QsdGhpcy5yZW5kZXJPcHRpb25zKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fJERvPy5zZXRDb25uZWN0ZWQoITApfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMSl9cmVuZGVyKCl7cmV0dXJuIGFpfX07QWQuXyRsaXRFbGVtZW50JD0hMCxBZC5maW5hbGl6ZWQ9ITAsVm1lLmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50OkFkfSk7STFhPVZtZS5saXRFbGVtZW50UG9seWZpbGxTdXBwb3J0O0kxYT8uKHtMaXRFbGVtZW50OkFkfSk7UDFhPXtfJEFLOmkoKHQsZSxyKT0+e3QuXyRBSyhlLHIpfSwiXyRBSyIpLF8kQUw6aSh0PT50Ll8kQUwsIl8kQUwiKX07KFZtZS5saXRFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiNC4yLjIiKX0pO3ZhciBOMWEseHh0PXUoKCk9PntOMWE9ITF9KTt2YXIgeWw9dSgoKT0+e2ZrKCk7eDIoKTtieHQoKTt4eHQoKX0pO3ZhciB2az1OdChFYWU9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEVhZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRWFlLnVuaT12b2lkIDA7dmFyIE8xYT1pKCh0PSJ1bmkiKT0+YCR7dH1fJHsieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZT0+e2xldCByPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9yOnImM3w4KS50b1N0cmluZygxNil9KX1gLCJ1bmkiKTtFYWUudW5pPU8xYX0pO3ZhciBJYWUsUjMsUGFlPXUoKCk9PntJYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVmZXJyZWQiKX1jbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGUscik9Pnt0aGlzLnJlc29sdmU9YT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksZShhKX0sdGhpcy5yZWplY3Q9YT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGEpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sUjM9aSgoKT0+bmV3IElhZSwiZGVmZXIiKX0pO3ZhciBOYWUsUjFhLHZ4dD11KCgpPT57UGFlKCk7TmFlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkN1bXVsYXRpdmVEZWZlcnJlZCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9UjMoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgZT1SMygpO3JldHVybiB0aGlzLmFkZFByb21pc2UoZS5wcm9taXNlKSxlfWFkZFByb21pc2UoZSl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2goZSl9fSxSMWE9aSgoKT0+bmV3IE5hZSwiY3VtdWxhdGl2ZURlZmVyIil9KTt2YXIgeHQ9e307VmUoeHQse0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+TmFlLERlZmVycmVkOigpPT5JYWUsY3VtdWxhdGl2ZURlZmVyOigpPT5SMWEsZGVmZXI6KCk9PlIzLGZyb21DYWxsYmFjazooKT0+ajFhLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9PlYxYSxtYXA6KCk9PkgxYSxyZWplY3RlZFByb21pc2U6KCk9PkIxYSxyZXNvbHZlZFByb21pc2U6KCk9PkYxYSx0aW1lb3V0QW5kQ29udGludWU6KCk9PnExYSx0aW1lb3V0V3JhcDooKT0+eXh0fSk7ZnVuY3Rpb24gRjFhKHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUodCl9dmFyIEIxYSxIMWEseXh0LHExYSxWMWEsajFhLEduPXUoKCk9PntQYWUoKTt2eHQoKTtQYWUoKTtpKEYxYSwicmVzb2x2ZWRQcm9taXNlIik7QjFhPWkodD0+UHJvbWlzZS5yZWplY3QodCksInJlamVjdGVkUHJvbWlzZSIpLEgxYT1pKGFzeW5jKHQsZSk9PlByb21pc2UuYWxsKHQubWFwKGUpKSwibWFwIikseXh0PWkoYXN5bmModCxlLHI9ITApPT5uZXcgUHJvbWlzZSgoYSxzKT0+e3NldFRpbWVvdXQoKCk9PntyP3MobmV3IEVycm9yKCJ0aW1lb3V0IikpOmEobnVsbCl9LGUpLHQudGhlbihhLHMpfSksInRpbWVvdXRXcmFwIikscTFhPWkoYXN5bmModCxlPTZlNCk9Pnl4dCh0LGUsITEpLCJ0aW1lb3V0QW5kQ29udGludWUiKSxWMWE9aShhc3luYyB0PT57bGV0IGU9UjMoKTtmb3IobGV0IHIgb2YgdClyLnRoZW4oYT0+e2E9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX0sImdldEZpcnN0VHJ1ZU9yRmFsc2UiKSxqMWE9aSh0PT5uZXcgUHJvbWlzZSgoZSxyKT0+e3QoKGEscyk9PnthP3IoYSk6ZShzKX0pfSksImZyb21DYWxsYmFjayIpfSk7dmFyIE9hZT11KCgpPT57R24oKX0pO2Z1bmN0aW9uIEFyKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7am1lKHQsZSk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHIsIl9fIiksdC5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKTooci5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IHIpfWZ1bmN0aW9uIFcxYSh0LGUpe3ZhciByPXt9O2Zvcih2YXIgYSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiZlLmluZGV4T2YoYSk8MCYmKHJbYV09dFthXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBzPTAsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3M8YS5sZW5ndGg7cysrKWUuaW5kZXhPZihhW3NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxhW3NdKSYmKHJbYVtzXV09dFthW3NdXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gRzFhKHQsZSxyLGEpe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgsbj1zPDM/ZTphPT09bnVsbD9hPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKTphLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIiluPVJlZmxlY3QuZGVjb3JhdGUodCxlLHIsYSk7ZWxzZSBmb3IodmFyIGw9dC5sZW5ndGgtMTtsPj0wO2wtLSkobz10W2xdKSYmKG49KHM8Mz9vKG4pOnM+Mz9vKGUscixuKTpvKGUscikpfHxuKTtyZXR1cm4gcz4zJiZuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLG4pLG59ZnVuY3Rpb24gWTFhKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsYSl7ZShyLGEsdCl9fWZ1bmN0aW9uIEsxYSh0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH1mdW5jdGlvbiBaMWEodCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9ZnVuY3Rpb24gUTFhKHQpe3JldHVybiB0eXBlb2YgdD09InN5bWJvbCI/dDoiIi5jb25jYXQodCl9ZnVuY3Rpb24gWDFhKHQsZSxyKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyPyIiLmNvbmNhdChyLCIgIixlKTplfSl9ZnVuY3Rpb24gSjFhKHQsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIFltZSh0LGUscixhKXtmdW5jdGlvbiBzKG4pe3JldHVybiBuIGluc3RhbmNlb2Ygcj9uOm5ldyByKGZ1bmN0aW9uKG8pe28obil9KX1yZXR1cm4gaShzLCJhZG9wdCIpLG5ldyhyfHwocj1Qcm9taXNlKSkoZnVuY3Rpb24obixvKXtmdW5jdGlvbiBsKGYpe3RyeXtkKGEubmV4dChmKSl9Y2F0Y2gocCl7byhwKX19aShsLCJmdWxmaWxsZWQiKTtmdW5jdGlvbiBjKGYpe3RyeXtkKGEudGhyb3coZikpfWNhdGNoKHApe28ocCl9fWkoYywicmVqZWN0ZWQiKTtmdW5jdGlvbiBkKGYpe2YuZG9uZT9uKGYudmFsdWUpOnMoZi52YWx1ZSkudGhlbihsLGMpfWkoZCwic3RlcCIpLGQoKGE9YS5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIHlrKHQsZSl7dmFyIHI9e2xhYmVsOjAsc2VudDppKGZ1bmN0aW9uKCl7aWYoblswXSYxKXRocm93IG5bMV07cmV0dXJuIG5bMV19LCJzZW50IiksdHJ5czpbXSxvcHM6W119LGEscyxuLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PWwoMCksby50aHJvdz1sKDEpLG8ucmV0dXJuPWwoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBsKGQpe3JldHVybiBmdW5jdGlvbihmKXtyZXR1cm4gYyhbZCxmXSl9fWZ1bmN0aW9uIGMoZCl7aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvJiYobz0wLGRbMF0mJihyPTApKSxyOyl0cnl7aWYoYT0xLHMmJihuPWRbMF0mMj9zLnJldHVybjpkWzBdP3MudGhyb3d8fCgobj1zLnJldHVybikmJm4uY2FsbChzKSwwKTpzLm5leHQpJiYhKG49bi5jYWxsKHMsZFsxXSkpLmRvbmUpcmV0dXJuIG47c3dpdGNoKHM9MCxuJiYoZD1bZFswXSYyLG4udmFsdWVdKSxkWzBdKXtjYXNlIDA6Y2FzZSAxOm49ZDticmVhaztjYXNlIDQ6cmV0dXJuIHIubGFiZWwrKyx7dmFsdWU6ZFsxXSxkb25lOiExfTtjYXNlIDU6ci5sYWJlbCsrLHM9ZFsxXSxkPVswXTtjb250aW51ZTtjYXNlIDc6ZD1yLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihuPXIudHJ5cywhKG49bi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXSkmJihkWzBdPT09Nnx8ZFswXT09PTIpKXtyPTA7Y29udGludWV9aWYoZFswXT09PTMmJighbnx8ZFsxXT5uWzBdJiZkWzFdPG5bM10pKXtyLmxhYmVsPWRbMV07YnJlYWt9aWYoZFswXT09PTYmJnIubGFiZWw8blsxXSl7ci5sYWJlbD1uWzFdLG49ZDticmVha31pZihuJiZyLmxhYmVsPG5bMl0pe3IubGFiZWw9blsyXSxyLm9wcy5wdXNoKGQpO2JyZWFrfW5bMl0mJnIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZX1kPWUuY2FsbCh0LHIpfWNhdGNoKGYpe2Q9WzYsZl0scz0wfWZpbmFsbHl7YT1uPTB9aWYoZFswXSY1KXRocm93IGRbMV07cmV0dXJue3ZhbHVlOmRbMF0/ZFsxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIGVsYSh0LGUpe2Zvcih2YXIgciBpbiB0KXIhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmV21lKGUsdCxyKX1mdW5jdGlvbiBZbih0KXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3Iscj1lJiZ0W2VdLGE9MDtpZihyKXJldHVybiByLmNhbGwodCk7aWYodCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDppKGZ1bmN0aW9uKCl7cmV0dXJuIHQmJmE+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W2ErK10sZG9uZTohdH19LCJuZXh0Iil9O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gQWkodCxlKXt2YXIgcj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIHQ7dmFyIGE9ci5jYWxsKHQpLHMsbj1bXSxvO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKHM9YS5uZXh0KCkpLmRvbmU7KW4ucHVzaChzLnZhbHVlKX1jYXRjaChsKXtvPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYocj1hLnJldHVybikmJnIuY2FsbChhKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG59ZnVuY3Rpb24gdGxhKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQ9dC5jb25jYXQoQWkoYXJndW1lbnRzW2VdKSk7cmV0dXJuIHR9ZnVuY3Rpb24gcmxhKCl7Zm9yKHZhciB0PTAsZT0wLHI9YXJndW1lbnRzLmxlbmd0aDtlPHI7ZSsrKXQrPWFyZ3VtZW50c1tlXS5sZW5ndGg7Zm9yKHZhciBhPUFycmF5KHQpLHM9MCxlPTA7ZTxyO2UrKylmb3IodmFyIG49YXJndW1lbnRzW2VdLG89MCxsPW4ubGVuZ3RoO288bDtvKysscysrKWFbc109bltvXTtyZXR1cm4gYX1mdW5jdGlvbiBQcyh0LGUscil7aWYocnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciBhPTAscz1lLmxlbmd0aCxuO2E8czthKyspKG58fCEoYSBpbiBlKSkmJihufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsYSkpLG5bYV09ZVthXSk7cmV0dXJuIHQuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiBFZCh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIEVkPyh0aGlzLnY9dCx0aGlzKTpuZXcgRWQodCl9ZnVuY3Rpb24gS21lKHQsZSxyKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGE9ci5hcHBseSh0LGV8fFtdKSxzLG49W107cmV0dXJuIHM9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbCgibmV4dCIpLGwoInRocm93IiksbCgicmV0dXJuIixvKSxzW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxzO2Z1bmN0aW9uIG8obSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybiBQcm9taXNlLnJlc29sdmUodikudGhlbihtLHApfX1mdW5jdGlvbiBsKG0sdil7YVttXSYmKHNbbV09ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGcseSl7bi5wdXNoKFttLGIsZyx5XSk+MXx8YyhtLGIpfSl9LHYmJihzW21dPXYoc1ttXSkpKX1mdW5jdGlvbiBjKG0sdil7dHJ5e2QoYVttXSh2KSl9Y2F0Y2goYil7aChuWzBdWzNdLGIpfX1mdW5jdGlvbiBkKG0pe20udmFsdWUgaW5zdGFuY2VvZiBFZD9Qcm9taXNlLnJlc29sdmUobS52YWx1ZS52KS50aGVuKGYscCk6aChuWzBdWzJdLG0pfWZ1bmN0aW9uIGYobSl7YygibmV4dCIsbSl9ZnVuY3Rpb24gcChtKXtjKCJ0aHJvdyIsbSl9ZnVuY3Rpb24gaChtLHYpe20odiksbi5zaGlmdCgpLG4ubGVuZ3RoJiZjKG5bMF1bMF0sblswXVsxXSl9fWZ1bmN0aW9uIGFsYSh0KXt2YXIgZSxyO3JldHVybiBlPXt9LGEoIm5leHQiKSxhKCJ0aHJvdyIsZnVuY3Rpb24ocyl7dGhyb3cgc30pLGEoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIGEocyxuKXtlW3NdPXRbc10/ZnVuY3Rpb24obyl7cmV0dXJuKHI9IXIpP3t2YWx1ZTpFZCh0W3NdKG8pKSxkb25lOiExfTpuP24obyk6b306bn19ZnVuY3Rpb24gWm1lKHQpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSxyO3JldHVybiBlP2UuY2FsbCh0KToodD10eXBlb2YgWW49PSJmdW5jdGlvbiI/WW4odCk6dFtTeW1ib2wuaXRlcmF0b3JdKCkscj17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyKTtmdW5jdGlvbiBhKG4pe3Jbbl09dFtuXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsYyl7bz10W25dKG8pLHMobCxjLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiBzKG4sbyxsLGMpe1Byb21pc2UucmVzb2x2ZShjKS50aGVuKGZ1bmN0aW9uKGQpe24oe3ZhbHVlOmQsZG9uZTpsfSl9LG8pfX1mdW5jdGlvbiBpbGEodCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJyYXciLHt2YWx1ZTplfSk6dC5yYXc9ZSx0fWZ1bmN0aW9uIG5sYSh0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIHI9R21lKHQpLGE9MDthPHIubGVuZ3RoO2ErKylyW2FdIT09ImRlZmF1bHQiJiZXbWUoZSx0LHJbYV0pO3JldHVybiBzbGEoZSx0KSxlfWZ1bmN0aW9uIG9sYSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gbGxhKHQsZSxyLGEpe2lmKHI9PT0iYSImJiFhKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3QhPT1lfHwhYTohZS5oYXModCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHI9PT0ibSI/YTpyPT09ImEiP2EuY2FsbCh0KTphP2EudmFsdWU6ZS5nZXQodCl9ZnVuY3Rpb24gY2xhKHQsZSxyLGEscyl7aWYoYT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihhPT09ImEiJiYhcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IXM6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGE9PT0iYSI/cy5jYWxsKHQscik6cz9zLnZhbHVlPXI6ZS5zZXQodCxyKSxyfWZ1bmN0aW9uIGRsYSh0LGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2U9PT10OnQuaGFzKGUpfWZ1bmN0aW9uIHVsYSh0LGUscil7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGEscztpZihyKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2E9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihhPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7YT1lW1N5bWJvbC5kaXNwb3NlXSxyJiYocz1hKX1pZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7cyYmKGE9aShmdW5jdGlvbigpe3RyeXtzLmNhbGwodGhpcyl9Y2F0Y2gobil7cmV0dXJuIFByb21pc2UucmVqZWN0KG4pfX0sImRpc3Bvc2UiKSksdC5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6YSxhc3luYzpyfSl9ZWxzZSByJiZ0LnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gZmxhKHQpe2Z1bmN0aW9uIGUobil7dC5lcnJvcj10Lmhhc0Vycm9yP25ldyBwbGEobix0LmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6bix0Lmhhc0Vycm9yPSEwfWkoZSwiZmFpbCIpO3ZhciByLGE9MDtmdW5jdGlvbiBzKCl7Zm9yKDtyPXQuc3RhY2sucG9wKCk7KXRyeXtpZighci5hc3luYyYmYT09PTEpcmV0dXJuIGE9MCx0LnN0YWNrLnB1c2gociksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihzKTtpZihyLmRpc3Bvc2Upe3ZhciBuPXIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO2lmKHIuYXN5bmMpcmV0dXJuIGF8PTIsUHJvbWlzZS5yZXNvbHZlKG4pLnRoZW4ocyxmdW5jdGlvbihvKXtyZXR1cm4gZShvKSxzKCl9KX1lbHNlIGF8PTF9Y2F0Y2gobyl7ZShvKX1pZihhPT09MSlyZXR1cm4gdC5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdCh0LmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZih0Lmhhc0Vycm9yKXRocm93IHQuZXJyb3J9cmV0dXJuIGkocywibmV4dCIpLHMoKX1mdW5jdGlvbiBobGEodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QodCk/dC5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHIsYSxzLG4sbyl7cmV0dXJuIGE/ZT8iLmpzeCI6Ii5qcyI6cyYmKCFufHwhbyk/cjpzK24rIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6dH12YXIgam1lLFVtZSxXbWUsc2xhLEdtZSxwbGEsUFZhLF9hPXUoKCk9PntqbWU9aShmdW5jdGlvbih0LGUpe3JldHVybiBqbWU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsYSl7ci5fX3Byb3RvX189YX18fGZ1bmN0aW9uKHIsYSl7Zm9yKHZhciBzIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEscykmJihyW3NdPWFbc10pfSxqbWUodCxlKX0sImV4dGVuZFN0YXRpY3MiKTtpKEFyLCJfX2V4dGVuZHMiKTtVbWU9aShmdW5jdGlvbigpe3JldHVybiBVbWU9T2JqZWN0LmFzc2lnbnx8aShmdW5jdGlvbihlKXtmb3IodmFyIHIsYT0xLHM9YXJndW1lbnRzLmxlbmd0aDthPHM7YSsrKXtyPWFyZ3VtZW50c1thXTtmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmKGVbbl09cltuXSl9cmV0dXJuIGV9LCJfX2Fzc2lnbiIpLFVtZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJfX2Fzc2lnbiIpO2koVzFhLCJfX3Jlc3QiKTtpKEcxYSwiX19kZWNvcmF0ZSIpO2koWTFhLCJfX3BhcmFtIik7aShLMWEsIl9fZXNEZWNvcmF0ZSIpO2koWjFhLCJfX3J1bkluaXRpYWxpemVycyIpO2koUTFhLCJfX3Byb3BLZXkiKTtpKFgxYSwiX19zZXRGdW5jdGlvbk5hbWUiKTtpKEoxYSwiX19tZXRhZGF0YSIpO2koWW1lLCJfX2F3YWl0ZXIiKTtpKHlrLCJfX2dlbmVyYXRvciIpO1dtZT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUscixhKXthPT09dm9pZCAwJiYoYT1yKTt2YXIgcz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscik7KCFzfHwoImdldCJpbiBzPyFlLl9fZXNNb2R1bGU6cy53cml0YWJsZXx8cy5jb25maWd1cmFibGUpKSYmKHM9e2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYSxzKX0pOihmdW5jdGlvbih0LGUscixhKXthPT09dm9pZCAwJiYoYT1yKSx0W2FdPWVbcl19KTtpKGVsYSwiX19leHBvcnRTdGFyIik7aShZbiwiX192YWx1ZXMiKTtpKEFpLCJfX3JlYWQiKTtpKHRsYSwiX19zcHJlYWQiKTtpKHJsYSwiX19zcHJlYWRBcnJheXMiKTtpKFBzLCJfX3NwcmVhZEFycmF5Iik7aShFZCwiX19hd2FpdCIpO2koS21lLCJfX2FzeW5jR2VuZXJhdG9yIik7aShhbGEsIl9fYXN5bmNEZWxlZ2F0b3IiKTtpKFptZSwiX19hc3luY1ZhbHVlcyIpO2koaWxhLCJfX21ha2VUZW1wbGF0ZU9iamVjdCIpO3NsYT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSxHbWU9aShmdW5jdGlvbih0KXtyZXR1cm4gR21lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXt2YXIgcj1bXTtmb3IodmFyIGEgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmKHJbci5sZW5ndGhdPWEpO3JldHVybiByfSxHbWUodCl9LCJvd25LZXlzIik7aShubGEsIl9faW1wb3J0U3RhciIpO2kob2xhLCJfX2ltcG9ydERlZmF1bHQiKTtpKGxsYSwiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIpO2koY2xhLCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Iik7aShkbGEsIl9fY2xhc3NQcml2YXRlRmllbGRJbiIpO2kodWxhLCJfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSIpO3BsYT10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbih0LGUscil7dmFyIGE9bmV3IEVycm9yKHIpO3JldHVybiBhLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsYS5lcnJvcj10LGEuc3VwcHJlc3NlZD1lLGF9O2koZmxhLCJfX2Rpc3Bvc2VSZXNvdXJjZXMiKTtpKGhsYSwiX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24iKTtQVmE9e19fZXh0ZW5kczpBcixfX2Fzc2lnbjpVbWUsX19yZXN0OlcxYSxfX2RlY29yYXRlOkcxYSxfX3BhcmFtOlkxYSxfX2VzRGVjb3JhdGU6SzFhLF9fcnVuSW5pdGlhbGl6ZXJzOloxYSxfX3Byb3BLZXk6UTFhLF9fc2V0RnVuY3Rpb25OYW1lOlgxYSxfX21ldGFkYXRhOkoxYSxfX2F3YWl0ZXI6WW1lLF9fZ2VuZXJhdG9yOnlrLF9fY3JlYXRlQmluZGluZzpXbWUsX19leHBvcnRTdGFyOmVsYSxfX3ZhbHVlczpZbixfX3JlYWQ6QWksX19zcHJlYWQ6dGxhLF9fc3ByZWFkQXJyYXlzOnJsYSxfX3NwcmVhZEFycmF5OlBzLF9fYXdhaXQ6RWQsX19hc3luY0dlbmVyYXRvcjpLbWUsX19hc3luY0RlbGVnYXRvcjphbGEsX19hc3luY1ZhbHVlczpabWUsX19tYWtlVGVtcGxhdGVPYmplY3Q6aWxhLF9faW1wb3J0U3RhcjpubGEsX19pbXBvcnREZWZhdWx0Om9sYSxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OmxsYSxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0OmNsYSxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46ZGxhLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOnVsYSxfX2Rpc3Bvc2VSZXNvdXJjZXM6ZmxhLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOmhsYX19KTtmdW5jdGlvbiBycih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiJ9dmFyIG9uPXUoKCk9PntpKHJyLCJpc0Z1bmN0aW9uIil9KTtmdW5jdGlvbiBwMSh0KXt2YXIgZT1pKGZ1bmN0aW9uKGEpe0Vycm9yLmNhbGwoYSksYS5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja30sIl9zdXBlciIpLHI9dChlKTtyZXR1cm4gci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscn12YXIgRjM9dSgoKT0+e2kocDEsImNyZWF0ZUVycm9yQ2xhc3MiKX0pO3ZhciB3ayxRbWU9dSgoKT0+e0YzKCk7d2s9cDEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7dCh0aGlzKSx0aGlzLm1lc3NhZ2U9cj9yLmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArci5tYXAoZnVuY3Rpb24oYSxzKXtyZXR1cm4gcysxKyIpICIrYS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1yfSwiVW5zdWJzY3JpcHRpb25FcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gdjIodCxlKXtpZih0KXt2YXIgcj10LmluZGV4T2YoZSk7MDw9ciYmdC5zcGxpY2UociwxKX19dmFyIElnPXUoKCk9PntpKHYyLCJhcnJSZW1vdmUiKX0pO2Z1bmN0aW9uIFJhZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFFpfHx0JiYiY2xvc2VkImluIHQmJnJyKHQucmVtb3ZlKSYmcnIodC5hZGQpJiZycih0LnVuc3Vic2NyaWJlKX1mdW5jdGlvbiB3eHQodCl7cnIodCk/dCgpOnQudW5zdWJzY3JpYmUoKX12YXIgUWksWG1lLFVjPXUoKCk9PntfYSgpO29uKCk7UW1lKCk7SWcoKTtRaT0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMuaW5pdGlhbFRlYXJkb3duPWUsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fZmluYWxpemVycz1udWxsfXJldHVybiBpKHQsIlN1YnNjcmlwdGlvbiIpLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIGUscixhLHMsbjtpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBvPXRoaXMuX3BhcmVudGFnZTtpZihvKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkobykpdHJ5e2Zvcih2YXIgbD1ZbihvKSxjPWwubmV4dCgpOyFjLmRvbmU7Yz1sLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtkLnJlbW92ZSh0aGlzKX19Y2F0Y2goYil7ZT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKHI9bC5yZXR1cm4pJiZyLmNhbGwobCl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fWVsc2Ugby5yZW1vdmUodGhpcyk7dmFyIGY9dGhpcy5pbml0aWFsVGVhcmRvd247aWYocnIoZikpdHJ5e2YoKX1jYXRjaChiKXtuPWIgaW5zdGFuY2VvZiB3az9iLmVycm9yczpbYl19dmFyIHA9dGhpcy5fZmluYWxpemVycztpZihwKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7dHJ5e2Zvcih2YXIgaD1ZbihwKSxtPWgubmV4dCgpOyFtLmRvbmU7bT1oLm5leHQoKSl7dmFyIHY9bS52YWx1ZTt0cnl7d3h0KHYpfWNhdGNoKGIpe249bj8/W10sYiBpbnN0YW5jZW9mIHdrP249UHMoUHMoW10sQWkobikpLEFpKGIuZXJyb3JzKSk6bi5wdXNoKGIpfX19Y2F0Y2goYil7YT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKHM9aC5yZXR1cm4pJiZzLmNhbGwoaCl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fX1pZihuKXRocm93IG5ldyB3ayhuKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgcjtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZCl3eHQoZSk7ZWxzZXtpZihlIGluc3RhbmNlb2YgdCl7aWYoZS5jbG9zZWR8fGUuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47ZS5fYWRkUGFyZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPShyPXRoaXMuX2ZpbmFsaXplcnMpIT09bnVsbCYmciE9PXZvaWQgMD9yOltdKS5wdXNoKGUpfX0sdC5wcm90b3R5cGUuX2hhc1BhcmVudD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cmV0dXJuIHI9PT1lfHxBcnJheS5pc0FycmF5KHIpJiZyLmluY2x1ZGVzKGUpfSx0LnByb3RvdHlwZS5fYWRkUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX3BhcmVudGFnZTt0aGlzLl9wYXJlbnRhZ2U9QXJyYXkuaXNBcnJheShyKT8oci5wdXNoKGUpLHIpOnI/W3IsZV06ZX0sdC5wcm90b3R5cGUuX3JlbW92ZVBhcmVudD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cj09PWU/dGhpcy5fcGFyZW50YWdlPW51bGw6QXJyYXkuaXNBcnJheShyKSYmdjIocixlKX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX2ZpbmFsaXplcnM7ciYmdjIocixlKSxlIGluc3RhbmNlb2YgdCYmZS5fcmVtb3ZlUGFyZW50KHRoaXMpfSx0LkVNUFRZPShmdW5jdGlvbigpe3ZhciBlPW5ldyB0O3JldHVybiBlLmNsb3NlZD0hMCxlfSkoKSx0fSkoKSxYbWU9UWkuRU1QVFk7aShSYWUsImlzU3Vic2NyaXB0aW9uIik7aSh3eHQsImV4ZWNGaW5hbGl6ZXIiKX0pO3ZhciB3bCxQZz11KCgpPT57d2w9e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX19KTt2YXIgTmcsSm1lPXUoKCk9PntfYSgpO05nPXtzZXRUaW1lb3V0OmkoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sYT0yO2E8YXJndW1lbnRzLmxlbmd0aDthKyspclthLTJdPWFyZ3VtZW50c1thXTt2YXIgcz1OZy5kZWxlZ2F0ZTtyZXR1cm4gcz8uc2V0VGltZW91dD9zLnNldFRpbWVvdXQuYXBwbHkocyxQcyhbdCxlXSxBaShyKSkpOnNldFRpbWVvdXQuYXBwbHkodm9pZCAwLFBzKFt0LGVdLEFpKHIpKSl9LCJzZXRUaW1lb3V0IiksY2xlYXJUaW1lb3V0OmkoZnVuY3Rpb24odCl7dmFyIGU9TmcuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFyVGltZW91dHx8Y2xlYXJUaW1lb3V0KSh0KX0sImNsZWFyVGltZW91dCIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBGYWUodCl7Tmcuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPXdsLm9uVW5oYW5kbGVkRXJyb3I7aWYoZSllKHQpO2Vsc2UgdGhyb3cgdH0pfXZhciBlNWU9dSgoKT0+e1BnKCk7Sm1lKCk7aShGYWUsInJlcG9ydFVuaGFuZGxlZEVycm9yIil9KTtmdW5jdGlvbiBrbCgpe312YXIgSWY9dSgoKT0+e2koa2wsIm5vb3AiKX0pO2Z1bmN0aW9uIFN4dCh0KXtyZXR1cm4gdDVlKCJFIix2b2lkIDAsdCl9ZnVuY3Rpb24gTXh0KHQpe3JldHVybiB0NWUoIk4iLHQsdm9pZCAwKX1mdW5jdGlvbiB0NWUodCxlLHIpe3JldHVybntraW5kOnQsdmFsdWU6ZSxlcnJvcjpyfX12YXIga3h0LEN4dD11KCgpPT57a3h0PShmdW5jdGlvbigpe3JldHVybiB0NWUoIkMiLHZvaWQgMCx2b2lkIDApfSkoKTtpKFN4dCwiZXJyb3JOb3RpZmljYXRpb24iKTtpKE14dCwibmV4dE5vdGlmaWNhdGlvbiIpO2kodDVlLCJjcmVhdGVOb3RpZmljYXRpb24iKX0pO2Z1bmN0aW9uIE9nKHQpe2lmKHdsLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciBlPSFQZjtpZihlJiYoUGY9e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSx0KCksZSl7dmFyIHI9UGYsYT1yLmVycm9yVGhyb3duLHM9ci5lcnJvcjtpZihQZj1udWxsLGEpdGhyb3cgc319ZWxzZSB0KCl9ZnVuY3Rpb24genh0KHQpe3dsLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJlBmJiYoUGYuZXJyb3JUaHJvd249ITAsUGYuZXJyb3I9dCl9dmFyIFBmLEJhZT11KCgpPT57UGcoKTtQZj1udWxsO2koT2csImVycm9yQ29udGV4dCIpO2koenh0LCJjYXB0dXJlRXJyb3IiKX0pO2Z1bmN0aW9uIHI1ZSh0LGUpe3JldHVybiBtbGEuY2FsbCh0LGUpfWZ1bmN0aW9uIEhhZSh0KXt3bC51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP3p4dCh0KTpGYWUodCl9ZnVuY3Rpb24gYmxhKHQpe3Rocm93IHR9ZnVuY3Rpb24gYTVlKHQsZSl7dmFyIHI9d2wub25TdG9wcGVkTm90aWZpY2F0aW9uO3ImJk5nLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gcih0LGUpfSl9dmFyIE5mLG1sYSxnbGEsQjMseGxhLGtrPXUoKCk9PntfYSgpO29uKCk7VWMoKTtQZygpO2U1ZSgpO0lmKCk7Q3h0KCk7Sm1lKCk7QmFlKCk7TmY9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyKXt2YXIgYT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuaXNTdG9wcGVkPSExLHI/KGEuZGVzdGluYXRpb249cixSYWUocikmJnIuYWRkKGEpKTphLmRlc3RpbmF0aW9uPXhsYSxhfXJldHVybiBpKGUsIlN1YnNjcmliZXIiKSxlLmNyZWF0ZT1mdW5jdGlvbihyLGEscyl7cmV0dXJuIG5ldyBCMyhyLGEscyl9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dGhpcy5pc1N0b3BwZWQ/YTVlKE14dChyKSx0aGlzKTp0aGlzLl9uZXh0KHIpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZD9hNWUoU3h0KHIpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihyKSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/YTVlKGt4dCx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fY29tcGxldGUoKSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5jbG9zZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLHRoaXMuZGVzdGluYXRpb249bnVsbCl9LGUucHJvdG90eXBlLl9uZXh0PWZ1bmN0aW9uKHIpe3RoaXMuZGVzdGluYXRpb24ubmV4dChyKX0sZS5wcm90b3R5cGUuX2Vycm9yPWZ1bmN0aW9uKHIpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHIpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZS5wcm90b3R5cGUuX2NvbXBsZXRlPWZ1bmN0aW9uKCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LGV9KShRaSksbWxhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO2kocjVlLCJiaW5kIik7Z2xhPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gaSh0LCJDb25zdW1lck9ic2VydmVyIiksdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLm5leHQpdHJ5e3IubmV4dChlKX1jYXRjaChhKXtIYWUoYSl9fSx0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLmVycm9yKXRyeXtyLmVycm9yKGUpfWNhdGNoKGEpe0hhZShhKX1lbHNlIEhhZShlKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2gocil7SGFlKHIpfX0sdH0pKCksQjM9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEscyl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzLG87aWYocnIocil8fCFyKW89e25leHQ6cj8/dm9pZCAwLGVycm9yOmE/P3ZvaWQgMCxjb21wbGV0ZTpzPz92b2lkIDB9O2Vsc2V7dmFyIGw7biYmd2wudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0PyhsPU9iamVjdC5jcmVhdGUociksbC51bnN1YnNjcmliZT1mdW5jdGlvbigpe3JldHVybiBuLnVuc3Vic2NyaWJlKCl9LG89e25leHQ6ci5uZXh0JiZyNWUoci5uZXh0LGwpLGVycm9yOnIuZXJyb3ImJnI1ZShyLmVycm9yLGwpLGNvbXBsZXRlOnIuY29tcGxldGUmJnI1ZShyLmNvbXBsZXRlLGwpfSk6bz1yfXJldHVybiBuLmRlc3RpbmF0aW9uPW5ldyBnbGEobyksbn1yZXR1cm4gaShlLCJTYWZlU3Vic2NyaWJlciIpLGV9KShOZik7aShIYWUsImhhbmRsZVVuaGFuZGxlZEVycm9yIik7aShibGEsImRlZmF1bHRFcnJvckhhbmRsZXIiKTtpKGE1ZSwiaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbiIpO3hsYT17Y2xvc2VkOiEwLG5leHQ6a2wsZXJyb3I6YmxhLGNvbXBsZXRlOmtsfX0pO3ZhciBPZixTaz11KCgpPT57T2Y9KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBXYyh0KXtyZXR1cm4gdH12YXIgUmc9dSgoKT0+e2koV2MsImlkZW50aXR5Iil9KTtmdW5jdGlvbiB2bGEoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGk1ZSh0KX1mdW5jdGlvbiBpNWUodCl7cmV0dXJuIHQubGVuZ3RoPT09MD9XYzp0Lmxlbmd0aD09PTE/dFswXTppKGZ1bmN0aW9uKHIpe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbihhLHMpe3JldHVybiBzKGEpfSxyKX0sInBpcGVkIil9dmFyIHM1ZT11KCgpPT57UmcoKTtpKHZsYSwicGlwZSIpO2koaTVlLCJwaXBlRnJvbUFycmF5Iil9KTtmdW5jdGlvbiBfeHQodCl7dmFyIGU7cmV0dXJuKGU9dD8/d2wuUHJvbWlzZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6UHJvbWlzZX1mdW5jdGlvbiB5bGEodCl7cmV0dXJuIHQmJnJyKHQubmV4dCkmJnJyKHQuZXJyb3IpJiZycih0LmNvbXBsZXRlKX1mdW5jdGlvbiB3bGEodCl7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBOZnx8eWxhKHQpJiZSYWUodCl9dmFyIG5yLEFvPXUoKCk9PntraygpO1VjKCk7U2soKTtzNWUoKTtQZygpO29uKCk7QmFlKCk7bnI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtlJiYodGhpcy5fc3Vic2NyaWJlPWUpfXJldHVybiBpKHQsIk9ic2VydmFibGUiKSx0LnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKGUpe3ZhciByPW5ldyB0O3JldHVybiByLnNvdXJjZT10aGlzLHIub3BlcmF0b3I9ZSxyfSx0LnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXRoaXMsbj13bGEoZSk/ZTpuZXcgQjMoZSxyLGEpO3JldHVybiBPZyhmdW5jdGlvbigpe3ZhciBvPXMsbD1vLm9wZXJhdG9yLGM9by5zb3VyY2U7bi5hZGQobD9sLmNhbGwobixjKTpjP3MuX3N1YnNjcmliZShuKTpzLl90cnlTdWJzY3JpYmUobikpfSksbn0sdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZT1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIHRoaXMuX3N1YnNjcmliZShlKX1jYXRjaChyKXtlLmVycm9yKHIpfX0sdC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLHIpe3ZhciBhPXRoaXM7cmV0dXJuIHI9X3h0KHIpLG5ldyByKGZ1bmN0aW9uKHMsbil7dmFyIG89bmV3IEIzKHtuZXh0OmkoZnVuY3Rpb24obCl7dHJ5e2UobCl9Y2F0Y2goYyl7bihjKSxvLnVuc3Vic2NyaWJlKCl9fSwibmV4dCIpLGVycm9yOm4sY29tcGxldGU6c30pO2Euc3Vic2NyaWJlKG8pfSl9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dmFyIHI7cmV0dXJuKHI9dGhpcy5zb3VyY2UpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zdWJzY3JpYmUoZSl9LHQucHJvdG90eXBlW09mXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWVbcl09YXJndW1lbnRzW3JdO3JldHVybiBpNWUoZSkodGhpcyl9LHQucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3JldHVybiBlPV94dChlKSxuZXcgZShmdW5jdGlvbihhLHMpe3ZhciBuO3Iuc3Vic2NyaWJlKGZ1bmN0aW9uKG8pe3JldHVybiBuPW99LGZ1bmN0aW9uKG8pe3JldHVybiBzKG8pfSxmdW5jdGlvbigpe3JldHVybiBhKG4pfSl9KX0sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0fSkoKTtpKF94dCwiZ2V0UHJvbWlzZUN0b3IiKTtpKHlsYSwiaXNPYnNlcnZlciIpO2kod2xhLCJpc1N1YnNjcmliZXIiKX0pO2Z1bmN0aW9uIG41ZSh0KXtyZXR1cm4gcnIodD8ubGlmdCl9ZnVuY3Rpb24gWHIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKG41ZShlKSlyZXR1cm4gZS5saWZ0KGZ1bmN0aW9uKHIpe3RyeXtyZXR1cm4gdChyLHRoaXMpfWNhdGNoKGEpe3RoaXMuZXJyb3IoYSl9fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIGdzPXUoKCk9PntvbigpO2kobjVlLCJoYXNMaWZ0Iik7aShYciwib3BlcmF0ZSIpfSk7ZnVuY3Rpb24gRXIodCxlLHIsYSxzKXtyZXR1cm4gbmV3IFR4dCh0LGUscixhLHMpfXZhciBUeHQsbG49dSgoKT0+e19hKCk7a2soKTtpKEVyLCJjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIiKTtUeHQ9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEscyxuLG8sbCl7dmFyIGM9dC5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIGMub25GaW5hbGl6ZT1vLGMuc2hvdWxkVW5zdWJzY3JpYmU9bCxjLl9uZXh0PWE/ZnVuY3Rpb24oZCl7dHJ5e2EoZCl9Y2F0Y2goZil7ci5lcnJvcihmKX19OnQucHJvdG90eXBlLl9uZXh0LGMuX2Vycm9yPW4/ZnVuY3Rpb24oZCl7dHJ5e24oZCl9Y2F0Y2goZil7ci5lcnJvcihmKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9lcnJvcixjLl9jb21wbGV0ZT1zP2Z1bmN0aW9uKCl7dHJ5e3MoKX1jYXRjaChkKXtyLmVycm9yKGQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06dC5wcm90b3R5cGUuX2NvbXBsZXRlLGN9cmV0dXJuIGkoZSwiT3BlcmF0b3JTdWJzY3JpYmVyIiksZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgcjtpZighdGhpcy5zaG91bGRVbnN1YnNjcmliZXx8dGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKXt2YXIgYT10aGlzLmNsb3NlZDt0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLCFhJiYoKHI9dGhpcy5vbkZpbmFsaXplKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbCh0aGlzKSl9fSxlfSkoTmYpfSk7ZnVuY3Rpb24gcWFlKCl7cmV0dXJuIFhyKGZ1bmN0aW9uKHQsZSl7dmFyIHI9bnVsbDt0Ll9yZWZDb3VudCsrO3ZhciBhPUVyKGUsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtpZighdHx8dC5fcmVmQ291bnQ8PTB8fDA8LS10Ll9yZWZDb3VudCl7cj1udWxsO3JldHVybn12YXIgcz10Ll9jb25uZWN0aW9uLG49cjtyPW51bGwscyYmKCFufHxzPT09bikmJnMudW5zdWJzY3JpYmUoKSxlLnVuc3Vic2NyaWJlKCl9KTt0LnN1YnNjcmliZShhKSxhLmNsb3NlZHx8KHI9dC5jb25uZWN0KCkpfSl9dmFyIFZhZT11KCgpPT57Z3MoKTtsbigpO2kocWFlLCJyZWZDb3VudCIpfSk7dmFyIEx4dCxEeHQ9dSgoKT0+e19hKCk7QW8oKTtVYygpO1ZhZSgpO2xuKCk7Z3MoKTtMeHQ9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gcy5zb3VyY2U9cixzLnN1YmplY3RGYWN0b3J5PWEscy5fc3ViamVjdD1udWxsLHMuX3JlZkNvdW50PTAscy5fY29ubmVjdGlvbj1udWxsLG41ZShyKSYmKHMubGlmdD1yLmxpZnQpLHN9cmV0dXJuIGkoZSwiQ29ubmVjdGFibGVPYnNlcnZhYmxlIiksZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKHIpfSxlLnByb3RvdHlwZS5nZXRTdWJqZWN0PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fc3ViamVjdDtyZXR1cm4oIXJ8fHIuaXNTdG9wcGVkKSYmKHRoaXMuX3N1YmplY3Q9dGhpcy5zdWJqZWN0RmFjdG9yeSgpKSx0aGlzLl9zdWJqZWN0fSxlLnByb3RvdHlwZS5fdGVhcmRvd249ZnVuY3Rpb24oKXt0aGlzLl9yZWZDb3VudD0wO3ZhciByPXRoaXMuX2Nvbm5lY3Rpb247dGhpcy5fc3ViamVjdD10aGlzLl9jb25uZWN0aW9uPW51bGwscj8udW5zdWJzY3JpYmUoKX0sZS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3ZhciByPXRoaXMsYT10aGlzLl9jb25uZWN0aW9uO2lmKCFhKXthPXRoaXMuX2Nvbm5lY3Rpb249bmV3IFFpO3ZhciBzPXRoaXMuZ2V0U3ViamVjdCgpO2EuYWRkKHRoaXMuc291cmNlLnN1YnNjcmliZShFcihzLHZvaWQgMCxmdW5jdGlvbigpe3IuX3RlYXJkb3duKCkscy5jb21wbGV0ZSgpfSxmdW5jdGlvbihuKXtyLl90ZWFyZG93bigpLHMuZXJyb3Iobil9LGZ1bmN0aW9uKCl7cmV0dXJuIHIuX3RlYXJkb3duKCl9KSkpLGEuY2xvc2VkJiYodGhpcy5fY29ubmVjdGlvbj1udWxsLGE9UWkuRU1QVFkpfXJldHVybiBhfSxlLnByb3RvdHlwZS5yZWZDb3VudD1mdW5jdGlvbigpe3JldHVybiBxYWUoKSh0aGlzKX0sZX0pKG5yKX0pO3ZhciBvNWUsJHh0PXUoKCk9PntvNWU9e25vdzppKGZ1bmN0aW9uKCl7cmV0dXJuKG81ZS5kZWxlZ2F0ZXx8cGVyZm9ybWFuY2UpLm5vdygpfSwibm93IiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBJZCxsNWU9dSgoKT0+e19hKCk7VWMoKTtJZD17c2NoZWR1bGU6aShmdW5jdGlvbih0KXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUscj1jYW5jZWxBbmltYXRpb25GcmFtZSxhPUlkLmRlbGVnYXRlO2EmJihlPWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHI9YS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIHM9ZShmdW5jdGlvbihuKXtyPXZvaWQgMCx0KG4pfSk7cmV0dXJuIG5ldyBRaShmdW5jdGlvbigpe3JldHVybiByPy4ocyl9KX0sInNjaGVkdWxlIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9SWQuZGVsZWdhdGU7cmV0dXJuKHI/LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsUHMoW10sQWkodCkpKX0sInJlcXVlc3RBbmltYXRpb25GcmFtZSIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9SWQuZGVsZWdhdGU7cmV0dXJuKHI/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLFBzKFtdLEFpKHQpKSl9LCJjYW5jZWxBbmltYXRpb25GcmFtZSIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBrbGEodCl7cmV0dXJuIHQ/QXh0KHQpOlNsYX1mdW5jdGlvbiBBeHQodCl7cmV0dXJuIG5ldyBucihmdW5jdGlvbihlKXt2YXIgcj10fHxvNWUsYT1yLm5vdygpLHM9MCxuPWkoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KHM9SWQucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKG8pe3M9MDt2YXIgbD1yLm5vdygpO2UubmV4dCh7dGltZXN0YW1wOnQ/bDpvLGVsYXBzZWQ6bC1hfSksbigpfSkpfSwicnVuIik7cmV0dXJuIG4oKSxmdW5jdGlvbigpe3MmJklkLmNhbmNlbEFuaW1hdGlvbkZyYW1lKHMpfX0pfXZhciBTbGEsRXh0PXUoKCk9PntBbygpOyR4dCgpO2w1ZSgpO2koa2xhLCJhbmltYXRpb25GcmFtZXMiKTtpKEF4dCwiYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSIpO1NsYT1BeHQoKX0pO3ZhciBjNWUsZDVlPXUoKCk9PntGMygpO2M1ZT1wMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0sIk9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCIpfSl9KTt2YXIgS24sdTVlLEZnPXUoKCk9PntfYSgpO0FvKCk7VWMoKTtkNWUoKTtJZygpO0JhZSgpO0tuPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgcj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuY2xvc2VkPSExLHIuY3VycmVudE9ic2VydmVycz1udWxsLHIub2JzZXJ2ZXJzPVtdLHIuaXNTdG9wcGVkPSExLHIuaGFzRXJyb3I9ITEsci50aHJvd25FcnJvcj1udWxsLHJ9cmV0dXJuIGkoZSwiU3ViamVjdCIpLGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24ocil7dmFyIGE9bmV3IHU1ZSh0aGlzLHRoaXMpO3JldHVybiBhLm9wZXJhdG9yPXIsYX0sZS5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgYzVlfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBhPXRoaXM7T2coZnVuY3Rpb24oKXt2YXIgcyxuO2lmKGEuX3Rocm93SWZDbG9zZWQoKSwhYS5pc1N0b3BwZWQpe2EuY3VycmVudE9ic2VydmVyc3x8KGEuY3VycmVudE9ic2VydmVycz1BcnJheS5mcm9tKGEub2JzZXJ2ZXJzKSk7dHJ5e2Zvcih2YXIgbz1ZbihhLmN1cnJlbnRPYnNlcnZlcnMpLGw9by5uZXh0KCk7IWwuZG9uZTtsPW8ubmV4dCgpKXt2YXIgYz1sLnZhbHVlO2MubmV4dChyKX19Y2F0Y2goZCl7cz17ZXJyb3I6ZH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fX19KX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcztPZyhmdW5jdGlvbigpe2lmKGEuX3Rocm93SWZDbG9zZWQoKSwhYS5pc1N0b3BwZWQpe2EuaGFzRXJyb3I9YS5pc1N0b3BwZWQ9ITAsYS50aHJvd25FcnJvcj1yO2Zvcih2YXIgcz1hLm9ic2VydmVycztzLmxlbmd0aDspcy5zaGlmdCgpLmVycm9yKHIpfX0pfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7T2coZnVuY3Rpb24oKXtpZihyLl90aHJvd0lmQ2xvc2VkKCksIXIuaXNTdG9wcGVkKXtyLmlzU3RvcHBlZD0hMDtmb3IodmFyIGE9ci5vYnNlcnZlcnM7YS5sZW5ndGg7KWEuc2hpZnQoKS5jb21wbGV0ZSgpfX0pfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuaXNTdG9wcGVkPXRoaXMuY2xvc2VkPSEwLHRoaXMub2JzZXJ2ZXJzPXRoaXMuY3VycmVudE9ic2VydmVycz1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9ic2VydmVkIix7Z2V0OmkoZnVuY3Rpb24oKXt2YXIgcjtyZXR1cm4oKHI9dGhpcy5vYnNlcnZlcnMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5sZW5ndGgpPjB9LCJnZXQiKSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlLmNhbGwodGhpcyxyKX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMociksdGhpcy5faW5uZXJTdWJzY3JpYmUocil9LGUucHJvdG90eXBlLl9pbm5lclN1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgYT10aGlzLHM9dGhpcyxuPXMuaGFzRXJyb3Isbz1zLmlzU3RvcHBlZCxsPXMub2JzZXJ2ZXJzO3JldHVybiBufHxvP1htZToodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsbC5wdXNoKHIpLG5ldyBRaShmdW5jdGlvbigpe2EuY3VycmVudE9ic2VydmVycz1udWxsLHYyKGwscil9KSl9LGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHIpe3ZhciBhPXRoaXMscz1hLmhhc0Vycm9yLG49YS50aHJvd25FcnJvcixvPWEuaXNTdG9wcGVkO3M/ci5lcnJvcihuKTpvJiZyLmNvbXBsZXRlKCl9LGUucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciByPW5ldyBucjtyZXR1cm4gci5zb3VyY2U9dGhpcyxyfSxlLmNyZWF0ZT1mdW5jdGlvbihyLGEpe3JldHVybiBuZXcgdTVlKHIsYSl9LGV9KShuciksdTVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhKXt2YXIgcz10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHMuZGVzdGluYXRpb249cixzLnNvdXJjZT1hLHN9cmV0dXJuIGkoZSwiQW5vbnltb3VzU3ViamVjdCIpLGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGEsczsocz0oYT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEubmV4dCk9PT1udWxsfHxzPT09dm9pZCAwfHxzLmNhbGwoYSxyKX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGEsczsocz0oYT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuZXJyb3IpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGEscil9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHIsYTsoYT0ocj10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuY29tcGxldGUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHIpfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3ZhciBhLHM7cmV0dXJuKHM9KGE9dGhpcy5zb3VyY2UpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5zdWJzY3JpYmUocikpIT09bnVsbCYmcyE9PXZvaWQgMD9zOlhtZX0sZX0pKEtuKX0pO3ZhciBCZyxJeHQ9dSgoKT0+e19hKCk7RmcoKTtCZz0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKHIpe3ZhciBhPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gYS5fdmFsdWU9cixhfXJldHVybiBpKGUsIkJlaGF2aW9yU3ViamVjdCIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6aShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9LCJnZXQiKSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dmFyIGE9dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMscik7cmV0dXJuIWEuY2xvc2VkJiZyLm5leHQodGhpcy5fdmFsdWUpLGF9LGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxhPXIuaGFzRXJyb3Iscz1yLnRocm93bkVycm9yLG49ci5fdmFsdWU7aWYoYSl0aHJvdyBzO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksbn0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1yKX0sZX0pKEtuKX0pO3ZhciBNayxwNWU9dSgoKT0+e01rPXtub3c6aShmdW5jdGlvbigpe3JldHVybihNay5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LCJub3ciKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIEhnLGY1ZT11KCgpPT57X2EoKTtGZygpO3A1ZSgpO0hnPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhLHMpe3I9PT12b2lkIDAmJihyPTEvMCksYT09PXZvaWQgMCYmKGE9MS8wKSxzPT09dm9pZCAwJiYocz1Nayk7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9idWZmZXJTaXplPXIsbi5fd2luZG93VGltZT1hLG4uX3RpbWVzdGFtcFByb3ZpZGVyPXMsbi5fYnVmZmVyPVtdLG4uX2luZmluaXRlVGltZVdpbmRvdz0hMCxuLl9pbmZpbml0ZVRpbWVXaW5kb3c9YT09PTEvMCxuLl9idWZmZXJTaXplPU1hdGgubWF4KDEsciksbi5fd2luZG93VGltZT1NYXRoLm1heCgxLGEpLG59cmV0dXJuIGkoZSwiUmVwbGF5U3ViamVjdCIpLGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcyxzPWEuaXNTdG9wcGVkLG49YS5fYnVmZmVyLG89YS5faW5maW5pdGVUaW1lV2luZG93LGw9YS5fdGltZXN0YW1wUHJvdmlkZXIsYz1hLl93aW5kb3dUaW1lO3N8fChuLnB1c2gociksIW8mJm4ucHVzaChsLm5vdygpK2MpKSx0aGlzLl90cmltQnVmZmVyKCksdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMscil9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGE9dGhpcy5faW5uZXJTdWJzY3JpYmUocikscz10aGlzLG49cy5faW5maW5pdGVUaW1lV2luZG93LG89cy5fYnVmZmVyLGw9by5zbGljZSgpLGM9MDtjPGwubGVuZ3RoJiYhci5jbG9zZWQ7Yys9bj8xOjIpci5uZXh0KGxbY10pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHIpLGF9LGUucHJvdG90eXBlLl90cmltQnVmZmVyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxhPXIuX2J1ZmZlclNpemUscz1yLl90aW1lc3RhbXBQcm92aWRlcixuPXIuX2J1ZmZlcixvPXIuX2luZmluaXRlVGltZVdpbmRvdyxsPShvPzE6MikqYTtpZihhPDEvMCYmbDxuLmxlbmd0aCYmbi5zcGxpY2UoMCxuLmxlbmd0aC1sKSwhbyl7Zm9yKHZhciBjPXMubm93KCksZD0wLGY9MTtmPG4ubGVuZ3RoJiZuW2ZdPD1jO2YrPTIpZD1mO2QmJm4uc3BsaWNlKDAsZCsxKX19LGV9KShLbil9KTt2YXIgUHh0LE54dD11KCgpPT57X2EoKTtGZygpO1B4dD0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIHI9dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl92YWx1ZT1udWxsLHIuX2hhc1ZhbHVlPSExLHIuX2lzQ29tcGxldGU9ITEscn1yZXR1cm4gaShlLCJBc3luY1N1YmplY3QiKSxlLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcz1mdW5jdGlvbihyKXt2YXIgYT10aGlzLHM9YS5oYXNFcnJvcixuPWEuX2hhc1ZhbHVlLG89YS5fdmFsdWUsbD1hLnRocm93bkVycm9yLGM9YS5pc1N0b3BwZWQsZD1hLl9pc0NvbXBsZXRlO3M/ci5lcnJvcihsKTooY3x8ZCkmJihuJiZyLm5leHQobyksci5jb21wbGV0ZSgpKX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuX3ZhbHVlPXIsdGhpcy5faGFzVmFsdWU9ITApfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXMsYT1yLl9oYXNWYWx1ZSxzPXIuX3ZhbHVlLG49ci5faXNDb21wbGV0ZTtufHwodGhpcy5faXNDb21wbGV0ZT0hMCxhJiZ0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyxzKSx0LnByb3RvdHlwZS5jb21wbGV0ZS5jYWxsKHRoaXMpKX0sZX0pKEtuKX0pO3ZhciBoNWUsT3h0PXUoKCk9PntfYSgpO1VjKCk7aDVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhKXtyZXR1cm4gdC5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiBpKGUsIkFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLHRoaXN9LGV9KShRaSl9KTt2YXIgQ2ssUnh0PXUoKCk9PntfYSgpO0NrPXtzZXRJbnRlcnZhbDppKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXJbYS0yXT1hcmd1bWVudHNbYV07dmFyIHM9Q2suZGVsZWdhdGU7cmV0dXJuIHM/LnNldEludGVydmFsP3Muc2V0SW50ZXJ2YWwuYXBwbHkocyxQcyhbdCxlXSxBaShyKSkpOnNldEludGVydmFsLmFwcGx5KHZvaWQgMCxQcyhbdCxlXSxBaShyKSkpfSwic2V0SW50ZXJ2YWwiKSxjbGVhckludGVydmFsOmkoZnVuY3Rpb24odCl7dmFyIGU9Q2suZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKHQpfSwiY2xlYXJJbnRlcnZhbCIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgeTIscWc9dSgoKT0+e19hKCk7T3h0KCk7Unh0KCk7SWcoKTt5Mj0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKHIsYSl7dmFyIHM9dC5jYWxsKHRoaXMscixhKXx8dGhpcztyZXR1cm4gcy5zY2hlZHVsZXI9cixzLndvcms9YSxzLnBlbmRpbmc9ITEsc31yZXR1cm4gaShlLCJBc3luY0FjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7dmFyIHM7aWYoYT09PXZvaWQgMCYmKGE9MCksdGhpcy5jbG9zZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZT1yO3ZhciBuPXRoaXMuaWQsbz10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbiE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChvLG4sYSkpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWEsdGhpcy5pZD0ocz10aGlzLmlkKSE9PW51bGwmJnMhPT12b2lkIDA/czp0aGlzLnJlcXVlc3RBc3luY0lkKG8sdGhpcy5pZCxhKSx0aGlzfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLENrLnNldEludGVydmFsKHIuZmx1c2guYmluZChyLHRoaXMpLHMpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7aWYocz09PXZvaWQgMCYmKHM9MCkscyE9bnVsbCYmdGhpcy5kZWxheT09PXMmJnRoaXMucGVuZGluZz09PSExKXJldHVybiBhO2EhPW51bGwmJkNrLmNsZWFySW50ZXJ2YWwoYSl9LGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ocixhKXtpZih0aGlzLmNsb3NlZClyZXR1cm4gbmV3IEVycm9yKCJleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uIik7dGhpcy5wZW5kaW5nPSExO3ZhciBzPXRoaXMuX2V4ZWN1dGUocixhKTtpZihzKXJldHVybiBzO3RoaXMucGVuZGluZz09PSExJiZ0aGlzLmlkIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLHRoaXMuaWQsbnVsbCkpfSxlLnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihyLGEpe3ZhciBzPSExLG47dHJ5e3RoaXMud29yayhyKX1jYXRjaChvKXtzPSEwLG49b3x8bmV3IEVycm9yKCJTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yIil9aWYocylyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLG59LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY2xvc2VkKXt2YXIgcj10aGlzLGE9ci5pZCxzPXIuc2NoZWR1bGVyLG49cy5hY3Rpb25zO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLHYyKG4sdGhpcyksYSE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChzLGEsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sZX0pKGg1ZSl9KTtmdW5jdGlvbiBGeHQodCl7cmV0dXJuIHQgaW4gamFlPyhkZWxldGUgamFlW3RdLCEwKTohMX12YXIgTWxhLG01ZSxqYWUsZzVlLHRXYSxCeHQ9dSgoKT0+e01sYT0xLGphZT17fTtpKEZ4dCwiZmluZEFuZENsZWFySGFuZGxlIik7ZzVlPXtzZXRJbW1lZGlhdGU6aShmdW5jdGlvbih0KXt2YXIgZT1NbGErKztyZXR1cm4gamFlW2VdPSEwLG01ZXx8KG01ZT1Qcm9taXNlLnJlc29sdmUoKSksbTVlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gRnh0KGUpJiZ0KCl9KSxlfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6aShmdW5jdGlvbih0KXtGeHQodCl9LCJjbGVhckltbWVkaWF0ZSIpfSx0V2E9e3BlbmRpbmc6aShmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhqYWUpLmxlbmd0aH0sInBlbmRpbmciKX19KTt2YXIgQ2xhLHpsYSx6ayxIeHQ9dSgoKT0+e19hKCk7Qnh0KCk7Q2xhPWc1ZS5zZXRJbW1lZGlhdGUsemxhPWc1ZS5jbGVhckltbWVkaWF0ZSx6az17c2V0SW1tZWRpYXRlOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9emsuZGVsZWdhdGU7cmV0dXJuKHI/LnNldEltbWVkaWF0ZXx8Q2xhKS5hcHBseSh2b2lkIDAsUHMoW10sQWkodCkpKX0sInNldEltbWVkaWF0ZSIpLGNsZWFySW1tZWRpYXRlOmkoZnVuY3Rpb24odCl7dmFyIGU9emsuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW1tZWRpYXRlfHx6bGEpKHQpfSwiY2xlYXJJbW1lZGlhdGUiKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIGI1ZSxxeHQ9dSgoKT0+e19hKCk7cWcoKTtIeHQoKTtiNWU9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzLHIsYSl8fHRoaXM7cmV0dXJuIHMuc2NoZWR1bGVyPXIscy53b3JrPWEsc31yZXR1cm4gaShlLCJBc2FwQWN0aW9uIiksZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3JldHVybiBzPT09dm9pZCAwJiYocz0wKSxzIT09bnVsbCYmcz4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGEscyk6KHIuYWN0aW9ucy5wdXNoKHRoaXMpLHIuX3NjaGVkdWxlZHx8KHIuX3NjaGVkdWxlZD16ay5zZXRJbW1lZGlhdGUoci5mbHVzaC5iaW5kKHIsdm9pZCAwKSkpKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3ZhciBuO2lmKHM9PT12b2lkIDAmJihzPTApLHMhPW51bGw/cz4wOnRoaXMuZGVsYXk+MClyZXR1cm4gdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLHIsYSxzKTt2YXIgbz1yLmFjdGlvbnM7YSE9bnVsbCYmKChuPW9bby5sZW5ndGgtMV0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5pZCkhPT1hJiYoemsuY2xlYXJJbW1lZGlhdGUoYSksci5fc2NoZWR1bGVkPT09YSYmKHIuX3NjaGVkdWxlZD12b2lkIDApKX0sZX0pKHkyKX0pO3ZhciBfayx4NWU9dSgoKT0+e3A1ZSgpO19rPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxyKXtyPT09dm9pZCAwJiYocj10Lm5vdyksdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yPWUsdGhpcy5ub3c9cn1yZXR1cm4gaSh0LCJTY2hlZHVsZXIiKSx0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihlLHIsYSl7cmV0dXJuIHI9PT12b2lkIDAmJihyPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyxlKS5zY2hlZHVsZShhLHIpfSx0Lm5vdz1Nay5ub3csdH0pKCl9KTt2YXIgdzIsVmc9dSgoKT0+e19hKCk7eDVlKCk7dzI9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEpe2E9PT12b2lkIDAmJihhPV9rLm5vdyk7dmFyIHM9dC5jYWxsKHRoaXMscixhKXx8dGhpcztyZXR1cm4gcy5hY3Rpb25zPVtdLHMuX2FjdGl2ZT0hMSxzfXJldHVybiBpKGUsIkFzeW5jU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcy5hY3Rpb25zO2lmKHRoaXMuX2FjdGl2ZSl7YS5wdXNoKHIpO3JldHVybn12YXIgczt0aGlzLl9hY3RpdmU9ITA7ZG8gaWYocz1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZShyPWEuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHMpe2Zvcig7cj1hLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBzfX0sZX0pKF9rKX0pO3ZhciB2NWUsVnh0PXUoKCk9PntfYSgpO1ZnKCk7djVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIkFzYXBTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihyKXt0aGlzLl9hY3RpdmU9ITA7dmFyIGE9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7dmFyIHM9dGhpcy5hY3Rpb25zLG47cj1yfHxzLnNoaWZ0KCk7ZG8gaWYobj1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZSgocj1zWzBdKSYmci5pZD09PWEmJnMuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLG4pe2Zvcig7KHI9c1swXSkmJnIuaWQ9PT1hJiZzLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBufX0sZX0pKHcyKX0pO3ZhciBqeHQsX2xhLFV4dD11KCgpPT57cXh0KCk7Vnh0KCk7anh0PW5ldyB2NWUoYjVlKSxfbGE9anh0fSk7dmFyIGYxLHk1ZSxQZD11KCgpPT57cWcoKTtWZygpO2YxPW5ldyB3Mih5MikseTVlPWYxfSk7dmFyIHc1ZSxXeHQ9dSgoKT0+e19hKCk7cWcoKTt3NWU9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzLHIsYSl8fHRoaXM7cmV0dXJuIHMuc2NoZWR1bGVyPXIscy53b3JrPWEsc31yZXR1cm4gaShlLCJRdWV1ZUFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLGE+MD90LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMscixhKToodGhpcy5kZWxheT1hLHRoaXMuc3RhdGU9cix0aGlzLnNjaGVkdWxlci5mbHVzaCh0aGlzKSx0aGlzKX0sZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihyLGEpe3JldHVybiBhPjB8fHRoaXMuY2xvc2VkP3QucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLHIsYSk6dGhpcy5fZXhlY3V0ZShyLGEpfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLHMhPW51bGwmJnM+MHx8cz09bnVsbCYmdGhpcy5kZWxheT4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGEscyk6KHIuZmx1c2godGhpcyksMCl9LGV9KSh5Mil9KTt2YXIgazVlLEd4dD11KCgpPT57X2EoKTtWZygpO2s1ZT0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKCl7cmV0dXJuIHQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gaShlLCJRdWV1ZVNjaGVkdWxlciIpLGV9KSh3Mil9KTt2YXIgWXh0LFRsYSxLeHQ9dSgoKT0+e1d4dCgpO0d4dCgpO1l4dD1uZXcgazVlKHc1ZSksVGxhPVl4dH0pO3ZhciBTNWUsWnh0PXUoKCk9PntfYSgpO3FnKCk7bDVlKCk7UzVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhKXt2YXIgcz10LmNhbGwodGhpcyxyLGEpfHx0aGlzO3JldHVybiBzLnNjaGVkdWxlcj1yLHMud29yaz1hLHN9cmV0dXJuIGkoZSwiQW5pbWF0aW9uRnJhbWVBY3Rpb24iKSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLHMhPT1udWxsJiZzPjA/dC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHIsYSxzKTooci5hY3Rpb25zLnB1c2godGhpcyksci5fc2NoZWR1bGVkfHwoci5fc2NoZWR1bGVkPUlkLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiByLmZsdXNoKHZvaWQgMCl9KSkpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7dmFyIG47aWYocz09PXZvaWQgMCYmKHM9MCkscyE9bnVsbD9zPjA6dGhpcy5kZWxheT4wKXJldHVybiB0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMscixhLHMpO3ZhciBvPXIuYWN0aW9uczthIT1udWxsJiZhPT09ci5fc2NoZWR1bGVkJiYoKG49b1tvLmxlbmd0aC0xXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmlkKSE9PWEmJihJZC5jYW5jZWxBbmltYXRpb25GcmFtZShhKSxyLl9zY2hlZHVsZWQ9dm9pZCAwKX0sZX0pKHkyKX0pO3ZhciBNNWUsUXh0PXUoKCk9PntfYSgpO1ZnKCk7TTVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIkFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dGhpcy5fYWN0aXZlPSEwO3ZhciBhO3I/YT1yLmlkOihhPXRoaXMuX3NjaGVkdWxlZCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwKTt2YXIgcz10aGlzLmFjdGlvbnMsbjtyPXJ8fHMuc2hpZnQoKTtkbyBpZihuPXIuZXhlY3V0ZShyLnN0YXRlLHIuZGVsYXkpKWJyZWFrO3doaWxlKChyPXNbMF0pJiZyLmlkPT09YSYmcy5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsocj1zWzBdKSYmci5pZD09PWEmJnMuc2hpZnQoKTspci51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlfSkodzIpfSk7dmFyIFh4dCxMbGEsSnh0PXUoKCk9PntaeHQoKTtReHQoKTtYeHQ9bmV3IE01ZShTNWUpLExsYT1YeHR9KTt2YXIgZXZ0LEM1ZSx0dnQ9dSgoKT0+e19hKCk7cWcoKTtVYygpO1ZnKCk7ZXZ0PShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhKXtyPT09dm9pZCAwJiYocj1DNWUpLGE9PT12b2lkIDAmJihhPTEvMCk7dmFyIHM9dC5jYWxsKHRoaXMscixmdW5jdGlvbigpe3JldHVybiBzLmZyYW1lfSl8fHRoaXM7cmV0dXJuIHMubWF4RnJhbWVzPWEscy5mcmFtZT0wLHMuaW5kZXg9LTEsc31yZXR1cm4gaShlLCJWaXJ0dWFsVGltZVNjaGVkdWxlciIpLGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMsYT1yLmFjdGlvbnMscz1yLm1heEZyYW1lcyxuLG87KG89YVswXSkmJm8uZGVsYXk8PXMmJihhLnNoaWZ0KCksdGhpcy5mcmFtZT1vLmRlbGF5LCEobj1vLmV4ZWN1dGUoby5zdGF0ZSxvLmRlbGF5KSkpOyk7aWYobil7Zm9yKDtvPWEuc2hpZnQoKTspby51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlLmZyYW1lVGltZUZhY3Rvcj0xMCxlfSkodzIpLEM1ZT0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKHIsYSxzKXtzPT09dm9pZCAwJiYocz1yLmluZGV4Kz0xKTt2YXIgbj10LmNhbGwodGhpcyxyLGEpfHx0aGlzO3JldHVybiBuLnNjaGVkdWxlcj1yLG4ud29yaz1hLG4uaW5kZXg9cyxuLmFjdGl2ZT0hMCxuLmluZGV4PXIuaW5kZXg9cyxufXJldHVybiBpKGUsIlZpcnR1YWxBY3Rpb24iKSxlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGEpe2lmKGE9PT12b2lkIDAmJihhPTApLE51bWJlci5pc0Zpbml0ZShhKSl7aWYoIXRoaXMuaWQpcmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyxyLGEpO3RoaXMuYWN0aXZlPSExO3ZhciBzPW5ldyBlKHRoaXMuc2NoZWR1bGVyLHRoaXMud29yayk7cmV0dXJuIHRoaXMuYWRkKHMpLHMuc2NoZWR1bGUocixhKX1lbHNlIHJldHVybiBRaS5FTVBUWX0sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3M9PT12b2lkIDAmJihzPTApLHRoaXMuZGVsYXk9ci5mcmFtZStzO3ZhciBuPXIuYWN0aW9ucztyZXR1cm4gbi5wdXNoKHRoaXMpLG4uc29ydChlLnNvcnRBY3Rpb25zKSwxfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cz09PXZvaWQgMCYmKHM9MCl9LGUucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHIsYSl7aWYodGhpcy5hY3RpdmU9PT0hMClyZXR1cm4gdC5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLHIsYSl9LGUuc29ydEFjdGlvbnM9ZnVuY3Rpb24ocixhKXtyZXR1cm4gci5kZWxheT09PWEuZGVsYXk/ci5pbmRleD09PWEuaW5kZXg/MDpyLmluZGV4PmEuaW5kZXg/MTotMTpyLmRlbGF5PmEuZGVsYXk/MTotMX0sZX0pKHkyKX0pO2Z1bmN0aW9uIERsYSh0KXtyZXR1cm4gdD8kbGEodCk6VWFlfWZ1bmN0aW9uICRsYSh0KXtyZXR1cm4gbmV3IG5yKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGUoKX0pfSl9dmFyIFVhZSxXYWU9dSgoKT0+e0FvKCk7VWFlPW5ldyBucihmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSk7aShEbGEsImVtcHR5Iik7aSgkbGEsImVtcHR5U2NoZWR1bGVkIil9KTtmdW5jdGlvbiBHYWUodCl7cmV0dXJuIHQmJnJyKHQuc2NoZWR1bGUpfXZhciB6NWU9dSgoKT0+e29uKCk7aShHYWUsImlzU2NoZWR1bGVyIil9KTtmdW5jdGlvbiBfNWUodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gcnZ0KHQpe3JldHVybiBycihfNWUodCkpP3QucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIEdjKHQpe3JldHVybiBHYWUoXzVlKHQpKT90LnBvcCgpOnZvaWQgMH1mdW5jdGlvbiBmR2EodCxlKXtyZXR1cm4gdHlwZW9mIF81ZSh0KT09Im51bWJlciI/dC5wb3AoKTplfXZhciBqZz11KCgpPT57b24oKTt6NWUoKTtpKF81ZSwibGFzdCIpO2kocnZ0LCJwb3BSZXN1bHRTZWxlY3RvciIpO2koR2MsInBvcFNjaGVkdWxlciIpO2koZkdhLCJwb3BOdW1iZXIiKX0pO3ZhciBVZyxZYWU9dSgoKT0+e1VnPWkoKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIn0pLCJpc0FycmF5TGlrZSIpfSk7ZnVuY3Rpb24gS2FlKHQpe3JldHVybiBycih0Py50aGVuKX12YXIgVDVlPXUoKCk9PntvbigpO2koS2FlLCJpc1Byb21pc2UiKX0pO2Z1bmN0aW9uIFphZSh0KXtyZXR1cm4gcnIodFtPZl0pfXZhciBMNWU9dSgoKT0+e1NrKCk7b24oKTtpKFphZSwiaXNJbnRlcm9wT2JzZXJ2YWJsZSIpfSk7ZnVuY3Rpb24gUWFlKHQpe3JldHVybiBTeW1ib2wuYXN5bmNJdGVyYXRvciYmcnIodD8uW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl9dmFyIEQ1ZT11KCgpPT57b24oKTtpKFFhZSwiaXNBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBYYWUodCl7cmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiKyh0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiPyJhbiBpbnZhbGlkIG9iamVjdCI6IiciK3QrIiciKSsiIHdoZXJlIGEgc3RyZWFtIHdhcyBleHBlY3RlZC4gWW91IGNhbiBwcm92aWRlIGFuIE9ic2VydmFibGUsIFByb21pc2UsIFJlYWRhYmxlU3RyZWFtLCBBcnJheSwgQXN5bmNJdGVyYWJsZSwgb3IgSXRlcmFibGUuIil9dmFyICQ1ZT11KCgpPT57aShYYWUsImNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yIil9KTtmdW5jdGlvbiBBbGEoKXtyZXR1cm4gdHlwZW9mIFN5bWJvbCE9ImZ1bmN0aW9uInx8IVN5bWJvbC5pdGVyYXRvcj8iQEBpdGVyYXRvciI6U3ltYm9sLml0ZXJhdG9yfXZhciBKYWUsQTVlPXUoKCk9PntpKEFsYSwiZ2V0U3ltYm9sSXRlcmF0b3IiKTtKYWU9QWxhKCl9KTtmdW5jdGlvbiBlaWUodCl7cmV0dXJuIHJyKHQ/LltKYWVdKX12YXIgRTVlPXUoKCk9PntBNWUoKTtvbigpO2koZWllLCJpc0l0ZXJhYmxlIil9KTtmdW5jdGlvbiB0aWUodCl7cmV0dXJuIEttZSh0aGlzLGFyZ3VtZW50cyxpKGZ1bmN0aW9uKCl7dmFyIHIsYSxzLG47cmV0dXJuIHlrKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyPXQuZ2V0UmVhZGVyKCksby5sYWJlbD0xO2Nhc2UgMTpvLnRyeXMucHVzaChbMSwsOSwxMF0pLG8ubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzQsRWQoci5yZWFkKCkpXTtjYXNlIDM6cmV0dXJuIGE9by5zZW50KCkscz1hLnZhbHVlLG49YS5kb25lLG4/WzQsRWQodm9pZCAwKV06WzMsNV07Y2FzZSA0OnJldHVyblsyLG8uc2VudCgpXTtjYXNlIDU6cmV0dXJuWzQsRWQocyldO2Nhc2UgNjpyZXR1cm5bNCxvLnNlbnQoKV07Y2FzZSA3OnJldHVybiBvLnNlbnQoKSxbMywyXTtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTpyZXR1cm4gci5yZWxlYXNlTG9jaygpLFs3XTtjYXNlIDEwOnJldHVyblsyXX19KX0sInJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3JfMSIpKX1mdW5jdGlvbiByaWUodCl7cmV0dXJuIHJyKHQ/LmdldFJlYWRlcil9dmFyIGFpZT11KCgpPT57X2EoKTtvbigpO2kodGllLCJyZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yIik7aShyaWUsImlzUmVhZGFibGVTdHJlYW1MaWtlIil9KTtmdW5jdGlvbiBpaSh0KXtpZih0IGluc3RhbmNlb2YgbnIpcmV0dXJuIHQ7aWYodCE9bnVsbCl7aWYoWmFlKHQpKXJldHVybiBFbGEodCk7aWYoVWcodCkpcmV0dXJuIElsYSh0KTtpZihLYWUodCkpcmV0dXJuIFBsYSh0KTtpZihRYWUodCkpcmV0dXJuIGF2dCh0KTtpZihlaWUodCkpcmV0dXJuIE5sYSh0KTtpZihyaWUodCkpcmV0dXJuIE9sYSh0KX10aHJvdyBYYWUodCl9ZnVuY3Rpb24gRWxhKHQpe3JldHVybiBuZXcgbnIoZnVuY3Rpb24oZSl7dmFyIHI9dFtPZl0oKTtpZihycihyLnN1YnNjcmliZSkpcmV0dXJuIHIuc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX1mdW5jdGlvbiBJbGEodCl7cmV0dXJuIG5ldyBucihmdW5jdGlvbihlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoJiYhZS5jbG9zZWQ7cisrKWUubmV4dCh0W3JdKTtlLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBQbGEodCl7cmV0dXJuIG5ldyBucihmdW5jdGlvbihlKXt0LnRoZW4oZnVuY3Rpb24ocil7ZS5jbG9zZWR8fChlLm5leHQociksZS5jb21wbGV0ZSgpKX0sZnVuY3Rpb24ocil7cmV0dXJuIGUuZXJyb3Iocil9KS50aGVuKG51bGwsRmFlKX0pfWZ1bmN0aW9uIE5sYSh0KXtyZXR1cm4gbmV3IG5yKGZ1bmN0aW9uKGUpe3ZhciByLGE7dHJ5e2Zvcih2YXIgcz1Zbih0KSxuPXMubmV4dCgpOyFuLmRvbmU7bj1zLm5leHQoKSl7dmFyIG89bi52YWx1ZTtpZihlLm5leHQobyksZS5jbG9zZWQpcmV0dXJufX1jYXRjaChsKXtyPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYoYT1zLnJldHVybikmJmEuY2FsbChzKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gYXZ0KHQpe3JldHVybiBuZXcgbnIoZnVuY3Rpb24oZSl7UmxhKHQsZSkuY2F0Y2goZnVuY3Rpb24ocil7cmV0dXJuIGUuZXJyb3Iocil9KX0pfWZ1bmN0aW9uIE9sYSh0KXtyZXR1cm4gYXZ0KHRpZSh0KSl9ZnVuY3Rpb24gUmxhKHQsZSl7dmFyIHIsYSxzLG47cmV0dXJuIFltZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxsO3JldHVybiB5ayh0aGlzLGZ1bmN0aW9uKGMpe3N3aXRjaChjLmxhYmVsKXtjYXNlIDA6Yy50cnlzLnB1c2goWzAsNSw2LDExXSkscj1abWUodCksYy5sYWJlbD0xO2Nhc2UgMTpyZXR1cm5bNCxyLm5leHQoKV07Y2FzZSAyOmlmKGE9Yy5zZW50KCksISFhLmRvbmUpcmV0dXJuWzMsNF07aWYobz1hLnZhbHVlLGUubmV4dChvKSxlLmNsb3NlZClyZXR1cm5bMl07Yy5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMywxXTtjYXNlIDQ6cmV0dXJuWzMsMTFdO2Nhc2UgNTpyZXR1cm4gbD1jLnNlbnQoKSxzPXtlcnJvcjpsfSxbMywxMV07Y2FzZSA2OnJldHVybiBjLnRyeXMucHVzaChbNiwsOSwxMF0pLGEmJiFhLmRvbmUmJihuPXIucmV0dXJuKT9bNCxuLmNhbGwocildOlszLDhdO2Nhc2UgNzpjLnNlbnQoKSxjLmxhYmVsPTg7Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6aWYocyl0aHJvdyBzLmVycm9yO3JldHVybls3XTtjYXNlIDEwOnJldHVybls3XTtjYXNlIDExOnJldHVybiBlLmNvbXBsZXRlKCksWzJdfX0pfSl9dmFyIFIxPXUoKCk9PntfYSgpO1lhZSgpO1Q1ZSgpO0FvKCk7TDVlKCk7RDVlKCk7JDVlKCk7RTVlKCk7YWllKCk7b24oKTtlNWUoKTtTaygpO2koaWksImlubmVyRnJvbSIpO2koRWxhLCJmcm9tSW50ZXJvcE9ic2VydmFibGUiKTtpKElsYSwiZnJvbUFycmF5TGlrZSIpO2koUGxhLCJmcm9tUHJvbWlzZSIpO2koTmxhLCJmcm9tSXRlcmFibGUiKTtpKGF2dCwiZnJvbUFzeW5jSXRlcmFibGUiKTtpKE9sYSwiZnJvbVJlYWRhYmxlU3RyZWFtTGlrZSIpO2koUmxhLCJwcm9jZXNzIil9KTtmdW5jdGlvbiBOcyh0LGUscixhLHMpe2E9PT12b2lkIDAmJihhPTApLHM9PT12b2lkIDAmJihzPSExKTt2YXIgbj1lLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cigpLHM/dC5hZGQodGhpcy5zY2hlZHVsZShudWxsLGEpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGEpO2lmKHQuYWRkKG4pLCFzKXJldHVybiBufXZhciBIMz11KCgpPT57aShOcywiZXhlY3V0ZVNjaGVkdWxlIil9KTtmdW5jdGlvbiBXZyh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0wKSxYcihmdW5jdGlvbihyLGEpe3Iuc3Vic2NyaWJlKEVyKGEsZnVuY3Rpb24ocyl7cmV0dXJuIE5zKGEsdCxmdW5jdGlvbigpe3JldHVybiBhLm5leHQocyl9LGUpfSxmdW5jdGlvbigpe3JldHVybiBOcyhhLHQsZnVuY3Rpb24oKXtyZXR1cm4gYS5jb21wbGV0ZSgpfSxlKX0sZnVuY3Rpb24ocyl7cmV0dXJuIE5zKGEsdCxmdW5jdGlvbigpe3JldHVybiBhLmVycm9yKHMpfSxlKX0pKX0pfXZhciBUaz11KCgpPT57SDMoKTtncygpO2xuKCk7aShXZywib2JzZXJ2ZU9uIil9KTtmdW5jdGlvbiBHZyh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0wKSxYcihmdW5jdGlvbihyLGEpe2EuYWRkKHQuc2NoZWR1bGUoZnVuY3Rpb24oKXtyZXR1cm4gci5zdWJzY3JpYmUoYSl9LGUpKX0pfXZhciBMaz11KCgpPT57Z3MoKTtpKEdnLCJzdWJzY3JpYmVPbiIpfSk7ZnVuY3Rpb24gaXZ0KHQsZSl7cmV0dXJuIGlpKHQpLnBpcGUoR2coZSksV2coZSkpfXZhciBzdnQ9dSgoKT0+e1IxKCk7VGsoKTtMaygpO2koaXZ0LCJzY2hlZHVsZU9ic2VydmFibGUiKX0pO2Z1bmN0aW9uIG52dCh0LGUpe3JldHVybiBpaSh0KS5waXBlKEdnKGUpLFdnKGUpKX12YXIgb3Z0PXUoKCk9PntSMSgpO1RrKCk7TGsoKTtpKG52dCwic2NoZWR1bGVQcm9taXNlIil9KTtmdW5jdGlvbiBsdnQodCxlKXtyZXR1cm4gbmV3IG5yKGZ1bmN0aW9uKHIpe3ZhciBhPTA7cmV0dXJuIGUuc2NoZWR1bGUoZnVuY3Rpb24oKXthPT09dC5sZW5ndGg/ci5jb21wbGV0ZSgpOihyLm5leHQodFthKytdKSxyLmNsb3NlZHx8dGhpcy5zY2hlZHVsZSgpKX0pfSl9dmFyIGN2dD11KCgpPT57QW8oKTtpKGx2dCwic2NoZWR1bGVBcnJheSIpfSk7ZnVuY3Rpb24gZHZ0KHQsZSl7cmV0dXJuIG5ldyBucihmdW5jdGlvbihyKXt2YXIgYTtyZXR1cm4gTnMocixlLGZ1bmN0aW9uKCl7YT10W0phZV0oKSxOcyhyLGUsZnVuY3Rpb24oKXt2YXIgcyxuLG87dHJ5e3M9YS5uZXh0KCksbj1zLnZhbHVlLG89cy5kb25lfWNhdGNoKGwpe3IuZXJyb3IobCk7cmV0dXJufW8/ci5jb21wbGV0ZSgpOnIubmV4dChuKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBycihhPy5yZXR1cm4pJiZhLnJldHVybigpfX0pfXZhciB1dnQ9dSgoKT0+e0FvKCk7QTVlKCk7b24oKTtIMygpO2koZHZ0LCJzY2hlZHVsZUl0ZXJhYmxlIil9KTtmdW5jdGlvbiBpaWUodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyBucihmdW5jdGlvbihyKXtOcyhyLGUsZnVuY3Rpb24oKXt2YXIgYT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO05zKHIsZSxmdW5jdGlvbigpe2EubmV4dCgpLnRoZW4oZnVuY3Rpb24ocyl7cy5kb25lP3IuY29tcGxldGUoKTpyLm5leHQocy52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBJNWU9dSgoKT0+e0FvKCk7SDMoKTtpKGlpZSwic2NoZWR1bGVBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBwdnQodCxlKXtyZXR1cm4gaWllKHRpZSh0KSxlKX12YXIgZnZ0PXUoKCk9PntJNWUoKTthaWUoKTtpKHB2dCwic2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UiKX0pO2Z1bmN0aW9uIFA1ZSh0LGUpe2lmKHQhPW51bGwpe2lmKFphZSh0KSlyZXR1cm4gaXZ0KHQsZSk7aWYoVWcodCkpcmV0dXJuIGx2dCh0LGUpO2lmKEthZSh0KSlyZXR1cm4gbnZ0KHQsZSk7aWYoUWFlKHQpKXJldHVybiBpaWUodCxlKTtpZihlaWUodCkpcmV0dXJuIGR2dCh0LGUpO2lmKHJpZSh0KSlyZXR1cm4gcHZ0KHQsZSl9dGhyb3cgWGFlKHQpfXZhciBONWU9dSgoKT0+e3N2dCgpO292dCgpO2N2dCgpO3V2dCgpO0k1ZSgpO0w1ZSgpO1Q1ZSgpO1lhZSgpO0U1ZSgpO0Q1ZSgpOyQ1ZSgpO2FpZSgpO2Z2dCgpO2koUDVlLCJzY2hlZHVsZWQiKX0pO2Z1bmN0aW9uIFljKHQsZSl7cmV0dXJuIGU/UDVlKHQsZSk6aWkodCl9dmFyIERrPXUoKCk9PntONWUoKTtSMSgpO2koWWMsImZyb20iKX0pO2Z1bmN0aW9uIFJmKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciByPUdjKHQpO3JldHVybiBZYyh0LHIpfXZhciBPNWU9dSgoKT0+e2pnKCk7RGsoKTtpKFJmLCJvZiIpfSk7ZnVuY3Rpb24gUjVlKHQsZSl7dmFyIHI9cnIodCk/dDpmdW5jdGlvbigpe3JldHVybiB0fSxhPWkoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZXJyb3IocigpKX0sImluaXQiKTtyZXR1cm4gbmV3IG5yKGU/ZnVuY3Rpb24ocyl7cmV0dXJuIGUuc2NoZWR1bGUoYSwwLHMpfTphKX12YXIgRjVlPXUoKCk9PntBbygpO29uKCk7aShSNWUsInRocm93RXJyb3IiKX0pO2Z1bmN0aW9uIEZsYSh0LGUpe3ZhciByLGEscyxuPXQsbz1uLmtpbmQsbD1uLnZhbHVlLGM9bi5lcnJvcjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7bz09PSJOIj8ocj1lLm5leHQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGUsbCk6bz09PSJFIj8oYT1lLmVycm9yKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChlLGMpOihzPWUuY29tcGxldGUpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGUpfXZhciBCNWUsaHZ0LG12dD11KCgpPT57V2FlKCk7TzVlKCk7RjVlKCk7b24oKTsoZnVuY3Rpb24odCl7dC5ORVhUPSJOIix0LkVSUk9SPSJFIix0LkNPTVBMRVRFPSJDIn0pKEI1ZXx8KEI1ZT17fSkpO2h2dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUscixhKXt0aGlzLmtpbmQ9ZSx0aGlzLnZhbHVlPXIsdGhpcy5lcnJvcj1hLHRoaXMuaGFzVmFsdWU9ZT09PSJOIn1yZXR1cm4gaSh0LCJOb3RpZmljYXRpb24iKSx0LnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKGUpe3JldHVybiBGbGEodGhpcyxlKX0sdC5wcm90b3R5cGUuZG89ZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXRoaXMsbj1zLmtpbmQsbz1zLnZhbHVlLGw9cy5lcnJvcjtyZXR1cm4gbj09PSJOIj9lPy4obyk6bj09PSJFIj9yPy4obCk6YT8uKCl9LHQucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbihlLHIsYSl7dmFyIHM7cmV0dXJuIHJyKChzPWUpPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy5uZXh0KT90aGlzLm9ic2VydmUoZSk6dGhpcy5kbyhlLHIsYSl9LHQucHJvdG90eXBlLnRvT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMscj1lLmtpbmQsYT1lLnZhbHVlLHM9ZS5lcnJvcixuPXI9PT0iTiI/UmYoYSk6cj09PSJFIj9SNWUoZnVuY3Rpb24oKXtyZXR1cm4gc30pOnI9PT0iQyI/VWFlOjA7aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiK3IpO3JldHVybiBufSx0LmNyZWF0ZU5leHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJOIixlKX0sdC5jcmVhdGVFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoIkUiLHZvaWQgMCxlKX0sdC5jcmVhdGVDb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0LmNvbXBsZXRlTm90aWZpY2F0aW9ufSx0LmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyB0KCJDIiksdH0pKCk7aShGbGEsIm9ic2VydmVOb3RpZmljYXRpb24iKX0pO3ZhciBndnQ9dSgoKT0+e30pO3ZhciBCbGEsYnZ0PXUoKCk9PntGMygpO0JsYT1wMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn0sIkVtcHR5RXJyb3JJbXBsIil9KX0pO3ZhciB4dnQ9dSgoKT0+e30pO3ZhciB2dnQ9dSgoKT0+e30pO3ZhciBIbGEseXZ0PXUoKCk9PntGMygpO0hsYT1wMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJBcmd1bWVudE91dE9mUmFuZ2VFcnJvciIsdGhpcy5tZXNzYWdlPSJhcmd1bWVudCBvdXQgb2YgcmFuZ2UifSwiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsIil9KX0pO3ZhciBxbGEsd3Z0PXUoKCk9PntGMygpO3FsYT1wMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbihyKXt0KHRoaXMpLHRoaXMubmFtZT0iTm90Rm91bmRFcnJvciIsdGhpcy5tZXNzYWdlPXJ9LCJOb3RGb3VuZEVycm9ySW1wbCIpfSl9KTt2YXIgVmxhLGt2dD11KCgpPT57RjMoKTtWbGE9cDEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7dCh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1yfSwiU2VxdWVuY2VFcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gc2llKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKHQpfXZhciBINWU9dSgoKT0+e2koc2llLCJpc1ZhbGlkRGF0ZSIpfSk7ZnVuY3Rpb24gTXZ0KHQsZSl7dmFyIHI9c2llKHQpP3tmaXJzdDp0fTp0eXBlb2YgdD09Im51bWJlciI/e2VhY2g6dH06dCxhPXIuZmlyc3Qscz1yLmVhY2gsbj1yLndpdGgsbz1uPT09dm9pZCAwP2psYTpuLGw9ci5zY2hlZHVsZXIsYz1sPT09dm9pZCAwP2U/P2YxOmwsZD1yLm1ldGEsZj1kPT09dm9pZCAwP251bGw6ZDtpZihhPT1udWxsJiZzPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIFhyKGZ1bmN0aW9uKHAsaCl7dmFyIG0sdixiPW51bGwsZz0wLHk9aShmdW5jdGlvbihrKXt2PU5zKGgsYyxmdW5jdGlvbigpe3RyeXttLnVuc3Vic2NyaWJlKCksaWkobyh7bWV0YTpmLGxhc3RWYWx1ZTpiLHNlZW46Z30pKS5zdWJzY3JpYmUoaCl9Y2F0Y2goTSl7aC5lcnJvcihNKX19LGspfSwic3RhcnRUaW1lciIpO209cC5zdWJzY3JpYmUoRXIoaCxmdW5jdGlvbihrKXt2Py51bnN1YnNjcmliZSgpLGcrKyxoLm5leHQoYj1rKSxzPjAmJnkocyl9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2Py5jbG9zZWR8fHY/LnVuc3Vic2NyaWJlKCksYj1udWxsfSkpLCFnJiZ5KGEhPW51bGw/dHlwZW9mIGE9PSJudW1iZXIiP2E6K2EtYy5ub3coKTpzKX0pfWZ1bmN0aW9uIGpsYSh0KXt0aHJvdyBuZXcgU3Z0KHQpfXZhciBTdnQsbmllPXUoKCk9PntQZCgpO0g1ZSgpO2dzKCk7UjEoKTtGMygpO2xuKCk7SDMoKTtTdnQ9cDEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7cj09PXZvaWQgMCYmKHI9bnVsbCksdCh0aGlzKSx0aGlzLm1lc3NhZ2U9IlRpbWVvdXQgaGFzIG9jY3VycmVkIix0aGlzLm5hbWU9IlRpbWVvdXRFcnJvciIsdGhpcy5pbmZvPXJ9LCJUaW1lb3V0RXJyb3JJbXBsIil9KTtpKE12dCwidGltZW91dCIpO2koamxhLCJ0aW1lb3V0RXJyb3JGYWN0b3J5Iil9KTtmdW5jdGlvbiBLYyh0LGUpe3JldHVybiBYcihmdW5jdGlvbihyLGEpe3ZhciBzPTA7ci5zdWJzY3JpYmUoRXIoYSxmdW5jdGlvbihuKXthLm5leHQodC5jYWxsKGUsbixzKyspKX0pKX0pfXZhciAkaz11KCgpPT57Z3MoKTtsbigpO2koS2MsIm1hcCIpfSk7ZnVuY3Rpb24gV2xhKHQsZSl7cmV0dXJuIFVsYShlKT90LmFwcGx5KHZvaWQgMCxQcyhbXSxBaShlKSkpOnQoZSl9ZnVuY3Rpb24gb2llKHQpe3JldHVybiBLYyhmdW5jdGlvbihlKXtyZXR1cm4gV2xhKHQsZSl9KX12YXIgVWxhLHE1ZT11KCgpPT57X2EoKTskaygpO1VsYT1BcnJheS5pc0FycmF5O2koV2xhLCJjYWxsT3JBcHBseSIpO2kob2llLCJtYXBPbmVPck1hbnlBcmdzIil9KTt2YXIgQ3Z0PXUoKCk9Pnt9KTt2YXIgenZ0PXUoKCk9Pnt9KTtmdW5jdGlvbiBfdnQodCl7aWYodC5sZW5ndGg9PT0xKXt2YXIgZT10WzBdO2lmKEdsYShlKSlyZXR1cm57YXJnczplLGtleXM6bnVsbH07aWYoUWxhKGUpKXt2YXIgcj1abGEoZSk7cmV0dXJue2FyZ3M6ci5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV19KSxrZXlzOnJ9fX1yZXR1cm57YXJnczp0LGtleXM6bnVsbH19ZnVuY3Rpb24gUWxhKHQpe3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCImJllsYSh0KT09PUtsYX12YXIgR2xhLFlsYSxLbGEsWmxhLFR2dD11KCgpPT57R2xhPUFycmF5LmlzQXJyYXksWWxhPU9iamVjdC5nZXRQcm90b3R5cGVPZixLbGE9T2JqZWN0LnByb3RvdHlwZSxabGE9T2JqZWN0LmtleXM7aShfdnQsImFyZ3NBcmdBcnJheU9yT2JqZWN0Iik7aShRbGEsImlzUE9KTyIpfSk7ZnVuY3Rpb24gTHZ0KHQsZSl7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHIsYSxzKXtyZXR1cm4gclthXT1lW3NdLHJ9LHt9KX12YXIgRHZ0PXUoKCk9PntpKEx2dCwiY3JlYXRlT2JqZWN0Iil9KTtmdW5jdGlvbiBWNWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9R2ModCksYT1ydnQodCkscz1fdnQodCksbj1zLmFyZ3Msbz1zLmtleXM7aWYobi5sZW5ndGg9PT0wKXJldHVybiBZYyhbXSxyKTt2YXIgbD1uZXcgbnIoWGxhKG4scixvP2Z1bmN0aW9uKGMpe3JldHVybiBMdnQobyxjKX06V2MpKTtyZXR1cm4gYT9sLnBpcGUob2llKGEpKTpsfWZ1bmN0aW9uIFhsYSh0LGUscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPVdjKSxmdW5jdGlvbihhKXskdnQoZSxmdW5jdGlvbigpe2Zvcih2YXIgcz10Lmxlbmd0aCxuPW5ldyBBcnJheShzKSxvPXMsbD1zLGM9aShmdW5jdGlvbihmKXskdnQoZSxmdW5jdGlvbigpe3ZhciBwPVljKHRbZl0sZSksaD0hMTtwLnN1YnNjcmliZShFcihhLGZ1bmN0aW9uKG0pe25bZl09bSxofHwoaD0hMCxsLS0pLGx8fGEubmV4dChyKG4uc2xpY2UoKSkpfSxmdW5jdGlvbigpey0tb3x8YS5jb21wbGV0ZSgpfSkpfSxhKX0sIl9sb29wXzEiKSxkPTA7ZDxzO2QrKyljKGQpfSxhKX19ZnVuY3Rpb24gJHZ0KHQsZSxyKXt0P05zKHIsdCxlKTplKCl9dmFyIEF2dD11KCgpPT57QW8oKTtUdnQoKTtEaygpO1JnKCk7cTVlKCk7amcoKTtEdnQoKTtsbigpO0gzKCk7aShWNWUsImNvbWJpbmVMYXRlc3QiKTtpKFhsYSwiY29tYmluZUxhdGVzdEluaXQiKTtpKCR2dCwibWF5YmVTY2hlZHVsZSIpfSk7ZnVuY3Rpb24gRXZ0KHQsZSxyLGEscyxuLG8sbCl7dmFyIGM9W10sZD0wLGY9MCxwPSExLGg9aShmdW5jdGlvbigpe3AmJiFjLmxlbmd0aCYmIWQmJmUuY29tcGxldGUoKX0sImNoZWNrQ29tcGxldGUiKSxtPWkoZnVuY3Rpb24oYil7cmV0dXJuIGQ8YT92KGIpOmMucHVzaChiKX0sIm91dGVyTmV4dCIpLHY9aShmdW5jdGlvbihiKXtuJiZlLm5leHQoYiksZCsrO3ZhciBnPSExO2lpKHIoYixmKyspKS5zdWJzY3JpYmUoRXIoZSxmdW5jdGlvbih5KXtzPy4oeSksbj9tKHkpOmUubmV4dCh5KX0sZnVuY3Rpb24oKXtnPSEwfSx2b2lkIDAsZnVuY3Rpb24oKXtpZihnKXRyeXtkLS07Zm9yKHZhciB5PWkoZnVuY3Rpb24oKXt2YXIgaz1jLnNoaWZ0KCk7bz9OcyhlLG8sZnVuY3Rpb24oKXtyZXR1cm4gdihrKX0pOnYoayl9LCJfbG9vcF8xIik7Yy5sZW5ndGgmJmQ8YTspeSgpO2goKX1jYXRjaChrKXtlLmVycm9yKGspfX0pKX0sImRvSW5uZXJTdWIiKTtyZXR1cm4gdC5zdWJzY3JpYmUoRXIoZSxtLGZ1bmN0aW9uKCl7cD0hMCxoKCl9KSksZnVuY3Rpb24oKXtsPy4oKX19dmFyIEl2dD11KCgpPT57UjEoKTtIMygpO2xuKCk7aShFdnQsIm1lcmdlSW50ZXJuYWxzIil9KTtmdW5jdGlvbiBGZih0LGUscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPTEvMCkscnIoZSk/RmYoZnVuY3Rpb24oYSxzKXtyZXR1cm4gS2MoZnVuY3Rpb24obixvKXtyZXR1cm4gZShhLG4scyxvKX0pKGlpKHQoYSxzKSkpfSxyKToodHlwZW9mIGU9PSJudW1iZXIiJiYocj1lKSxYcihmdW5jdGlvbihhLHMpe3JldHVybiBFdnQoYSxzLHQscil9KSl9dmFyIEFrPXUoKCk9PnskaygpO1IxKCk7Z3MoKTtJdnQoKTtvbigpO2koRmYsIm1lcmdlTWFwIil9KTtmdW5jdGlvbiBsaWUodCl7cmV0dXJuIHQ9PT12b2lkIDAmJih0PTEvMCksRmYoV2MsdCl9dmFyIGNpZT11KCgpPT57QWsoKTtSZygpO2kobGllLCJtZXJnZUFsbCIpfSk7ZnVuY3Rpb24gZGllKCl7cmV0dXJuIGxpZSgxKX12YXIgdWllPXUoKCk9PntjaWUoKTtpKGRpZSwiY29uY2F0QWxsIil9KTtmdW5jdGlvbiBwaWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGRpZSgpKFljKHQsR2ModCkpKX12YXIgajVlPXUoKCk9Pnt1aWUoKTtqZygpO0RrKCk7aShwaWUsImNvbmNhdCIpfSk7dmFyIFB2dD11KCgpPT57fSk7dmFyIE52dD11KCgpPT57fSk7dmFyIE92dD11KCgpPT57fSk7ZnVuY3Rpb24gQmYodCxlLHIsYSl7aWYocnIocikmJihhPXIscj12b2lkIDApLGEpcmV0dXJuIEJmKHQsZSxyKS5waXBlKG9pZShhKSk7dmFyIHM9QWkoaTJhKHQpP2UyYS5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiB0W2xdKGUsYyxyKX19KTpyMmEodCk/SmxhLm1hcChSdnQodCxlKSk6YTJhKHQpP3QyYS5tYXAoUnZ0KHQsZSkpOltdLDIpLG49c1swXSxvPXNbMV07aWYoIW4mJlVnKHQpKXJldHVybiBGZihmdW5jdGlvbihsKXtyZXR1cm4gQmYobCxlLHIpfSkoaWkodCkpO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBucihmdW5jdGlvbihsKXt2YXIgYz1pKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPVtdLGY9MDtmPGFyZ3VtZW50cy5sZW5ndGg7ZisrKWRbZl09YXJndW1lbnRzW2ZdO3JldHVybiBsLm5leHQoMTxkLmxlbmd0aD9kOmRbMF0pfSwiaGFuZGxlciIpO3JldHVybiBuKGMpLGZ1bmN0aW9uKCl7cmV0dXJuIG8oYyl9fSl9ZnVuY3Rpb24gUnZ0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gdFtyXShlLGEpfX19ZnVuY3Rpb24gcjJhKHQpe3JldHVybiBycih0LmFkZExpc3RlbmVyKSYmcnIodC5yZW1vdmVMaXN0ZW5lcil9ZnVuY3Rpb24gYTJhKHQpe3JldHVybiBycih0Lm9uKSYmcnIodC5vZmYpfWZ1bmN0aW9uIGkyYSh0KXtyZXR1cm4gcnIodC5hZGRFdmVudExpc3RlbmVyKSYmcnIodC5yZW1vdmVFdmVudExpc3RlbmVyKX12YXIgSmxhLGUyYSx0MmEsRnZ0PXUoKCk9PntfYSgpO1IxKCk7QW8oKTtBaygpO1lhZSgpO29uKCk7cTVlKCk7SmxhPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLGUyYT1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sdDJhPVsib24iLCJvZmYiXTtpKEJmLCJmcm9tRXZlbnQiKTtpKFJ2dCwidG9Db21tb25IYW5kbGVyUmVnaXN0cnkiKTtpKHIyYSwiaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIiKTtpKGEyYSwiaXNKUXVlcnlTdHlsZUV2ZW50RW1pdHRlciIpO2koaTJhLCJpc0V2ZW50VGFyZ2V0Iil9KTt2YXIgQnZ0PXUoKCk9Pnt9KTt2YXIgSHZ0PXUoKCk9Pnt9KTt2YXIgcXZ0PXUoKCk9Pnt9KTtmdW5jdGlvbiBFayh0LGUscil7dD09PXZvaWQgMCYmKHQ9MCkscj09PXZvaWQgMCYmKHI9eTVlKTt2YXIgYT0tMTtyZXR1cm4gZSE9bnVsbCYmKEdhZShlKT9yPWU6YT1lKSxuZXcgbnIoZnVuY3Rpb24ocyl7dmFyIG49c2llKHQpPyt0LXIubm93KCk6dDtuPDAmJihuPTApO3ZhciBvPTA7cmV0dXJuIHIuc2NoZWR1bGUoZnVuY3Rpb24oKXtzLmNsb3NlZHx8KHMubmV4dChvKyspLDA8PWE/dGhpcy5zY2hlZHVsZSh2b2lkIDAsYSk6cy5jb21wbGV0ZSgpKX0sbil9KX12YXIgZmllPXUoKCk9PntBbygpO1BkKCk7ejVlKCk7SDVlKCk7aShFaywidGltZXIiKX0pO2Z1bmN0aW9uIFU1ZSh0LGUpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSxlPT09dm9pZCAwJiYoZT1mMSksdDwwJiYodD0wKSxFayh0LHQsZSl9dmFyIFZ2dD11KCgpPT57UGQoKTtmaWUoKTtpKFU1ZSwiaW50ZXJ2YWwiKX0pO3ZhciBqdnQ9dSgoKT0+e30pO2Z1bmN0aW9uIHMyYSgpe3JldHVybiBVdnR9dmFyIFV2dCxXNWU9dSgoKT0+e0FvKCk7SWYoKTtVdnQ9bmV3IG5yKGtsKTtpKHMyYSwibmV2ZXIiKX0pO3ZhciBXdnQ9dSgoKT0+e30pO3ZhciBHdnQ9dSgoKT0+e30pO2Z1bmN0aW9uIGhpZSh0LGUpe3JldHVybiBYcihmdW5jdGlvbihyLGEpe3ZhciBzPTA7ci5zdWJzY3JpYmUoRXIoYSxmdW5jdGlvbihuKXtyZXR1cm4gdC5jYWxsKGUsbixzKyspJiZhLm5leHQobil9KSl9KX12YXIgRzVlPXUoKCk9PntncygpO2xuKCk7aShoaWUsImZpbHRlciIpfSk7dmFyIFl2dD11KCgpPT57fSk7dmFyIEt2dD11KCgpPT57fSk7dmFyIFp2dD11KCgpPT57fSk7dmFyIFF2dD11KCgpPT57fSk7dmFyIFh2dD11KCgpPT57fSk7dmFyIEp2dD11KCgpPT57fSk7dmFyIFk1ZT11KCgpPT57fSk7dmFyIEs1ZT11KCgpPT57fSk7ZnVuY3Rpb24gbWllKHQpe3JldHVybiBYcihmdW5jdGlvbihlLHIpe3ZhciBhPVtdO3JldHVybiBlLnN1YnNjcmliZShFcihyLGZ1bmN0aW9uKHMpe3JldHVybiBhLnB1c2gocyl9LGZ1bmN0aW9uKCl7ci5uZXh0KGEpLHIuY29tcGxldGUoKX0pKSxpaSh0KS5zdWJzY3JpYmUoRXIocixmdW5jdGlvbigpe3ZhciBzPWE7YT1bXSxyLm5leHQocyl9LGtsKSksZnVuY3Rpb24oKXthPW51bGx9fSl9dmFyIFo1ZT11KCgpPT57Z3MoKTtJZigpO2xuKCk7UjEoKTtpKG1pZSwiYnVmZmVyIil9KTtmdW5jdGlvbiBnaWUodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9bnVsbCksZT1lPz90LFhyKGZ1bmN0aW9uKHIsYSl7dmFyIHM9W10sbj0wO3Iuc3Vic2NyaWJlKEVyKGEsZnVuY3Rpb24obyl7dmFyIGwsYyxkLGYscD1udWxsO24rKyVlPT09MCYmcy5wdXNoKFtdKTt0cnl7Zm9yKHZhciBoPVluKHMpLG09aC5uZXh0KCk7IW0uZG9uZTttPWgubmV4dCgpKXt2YXIgdj1tLnZhbHVlO3YucHVzaChvKSx0PD12Lmxlbmd0aCYmKHA9cD8/W10scC5wdXNoKHYpKX19Y2F0Y2goeSl7bD17ZXJyb3I6eX19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKGM9aC5yZXR1cm4pJiZjLmNhbGwoaCl9ZmluYWxseXtpZihsKXRocm93IGwuZXJyb3J9fWlmKHApdHJ5e2Zvcih2YXIgYj1ZbihwKSxnPWIubmV4dCgpOyFnLmRvbmU7Zz1iLm5leHQoKSl7dmFyIHY9Zy52YWx1ZTt2MihzLHYpLGEubmV4dCh2KX19Y2F0Y2goeSl7ZD17ZXJyb3I6eX19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGY9Yi5yZXR1cm4pJiZmLmNhbGwoYil9ZmluYWxseXtpZihkKXRocm93IGQuZXJyb3J9fX0sZnVuY3Rpb24oKXt2YXIgbyxsO3RyeXtmb3IodmFyIGM9WW4ocyksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBmPWQudmFsdWU7YS5uZXh0KGYpfX1jYXRjaChwKXtvPXtlcnJvcjpwfX1maW5hbGx5e3RyeXtkJiYhZC5kb25lJiYobD1jLnJldHVybikmJmwuY2FsbChjKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19YS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtzPW51bGx9KSl9KX12YXIgUTVlPXUoKCk9PntfYSgpO2dzKCk7bG4oKTtJZygpO2koZ2llLCJidWZmZXJDb3VudCIpfSk7ZnVuY3Rpb24gYmllKHQpe2Zvcih2YXIgZSxyLGE9W10scz0xO3M8YXJndW1lbnRzLmxlbmd0aDtzKyspYVtzLTFdPWFyZ3VtZW50c1tzXTt2YXIgbj0oZT1HYyhhKSkhPT1udWxsJiZlIT09dm9pZCAwP2U6ZjEsbz0ocj1hWzBdKSE9PW51bGwmJnIhPT12b2lkIDA/cjpudWxsLGw9YVsxXXx8MS8wO3JldHVybiBYcihmdW5jdGlvbihjLGQpe3ZhciBmPVtdLHA9ITEsaD1pKGZ1bmN0aW9uKGIpe3ZhciBnPWIuYnVmZmVyLHk9Yi5zdWJzO3kudW5zdWJzY3JpYmUoKSx2MihmLGIpLGQubmV4dChnKSxwJiZtKCl9LCJlbWl0IiksbT1pKGZ1bmN0aW9uKCl7aWYoZil7dmFyIGI9bmV3IFFpO2QuYWRkKGIpO3ZhciBnPVtdLHk9e2J1ZmZlcjpnLHN1YnM6Yn07Zi5wdXNoKHkpLE5zKGIsbixmdW5jdGlvbigpe3JldHVybiBoKHkpfSx0KX19LCJzdGFydEJ1ZmZlciIpO28hPT1udWxsJiZvPj0wP05zKGQsbixtLG8sITApOnA9ITAsbSgpO3ZhciB2PUVyKGQsZnVuY3Rpb24oYil7dmFyIGcseSxrPWYuc2xpY2UoKTt0cnl7Zm9yKHZhciBNPVluKGspLE49TS5uZXh0KCk7IU4uZG9uZTtOPU0ubmV4dCgpKXt2YXIgXz1OLnZhbHVlLFM9Xy5idWZmZXI7Uy5wdXNoKGIpLGw8PVMubGVuZ3RoJiZoKF8pfX1jYXRjaChPKXtnPXtlcnJvcjpPfX1maW5hbGx5e3RyeXtOJiYhTi5kb25lJiYoeT1NLnJldHVybikmJnkuY2FsbChNKX1maW5hbGx5e2lmKGcpdGhyb3cgZy5lcnJvcn19fSxmdW5jdGlvbigpe2Zvcig7Zj8ubGVuZ3RoOylkLm5leHQoZi5zaGlmdCgpLmJ1ZmZlcik7dj8udW5zdWJzY3JpYmUoKSxkLmNvbXBsZXRlKCksZC51bnN1YnNjcmliZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gZj1udWxsfSk7Yy5zdWJzY3JpYmUodil9KX12YXIgWDVlPXUoKCk9PntfYSgpO1VjKCk7Z3MoKTtsbigpO0lnKCk7UGQoKTtqZygpO0gzKCk7aShiaWUsImJ1ZmZlclRpbWUiKX0pO3ZhciBKNWU9dSgoKT0+e30pO3ZhciBlOGU9dSgoKT0+e30pO3ZhciB0OGU9dSgoKT0+e30pO3ZhciByOGU9dSgoKT0+e30pO3ZhciBhOGU9dSgoKT0+e30pO3ZhciBpOGU9dSgoKT0+e30pO3ZhciBzOGU9dSgoKT0+e30pO3ZhciBleXQ9dSgoKT0+e30pO3ZhciBuOGU9dSgoKT0+e30pO3ZhciBvOGU9dSgoKT0+e30pO3ZhciBsOGU9dSgoKT0+e30pO3ZhciB0eXQ9dSgoKT0+e30pO3ZhciBjOGU9dSgoKT0+e30pO3ZhciBkOGU9dSgoKT0+e30pO3ZhciB1OGU9dSgoKT0+e30pO2Z1bmN0aW9uIHhpZSh0KXtyZXR1cm4gWHIoZnVuY3Rpb24oZSxyKXt2YXIgYT0hMSxzPW51bGwsbj1udWxsLG89aShmdW5jdGlvbigpe2lmKG4/LnVuc3Vic2NyaWJlKCksbj1udWxsLGEpe2E9ITE7dmFyIGw9cztzPW51bGwsci5uZXh0KGwpfX0sImVtaXQiKTtlLnN1YnNjcmliZShFcihyLGZ1bmN0aW9uKGwpe24/LnVuc3Vic2NyaWJlKCksYT0hMCxzPWwsbj1FcihyLG8sa2wpLGlpKHQobCkpLnN1YnNjcmliZShuKX0sZnVuY3Rpb24oKXtvKCksci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtzPW49bnVsbH0pKX0pfXZhciBwOGU9dSgoKT0+e2dzKCk7SWYoKTtsbigpO1IxKCk7aSh4aWUsImRlYm91bmNlIil9KTtmdW5jdGlvbiB2aWUodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9ZjEpLFhyKGZ1bmN0aW9uKHIsYSl7dmFyIHM9bnVsbCxuPW51bGwsbz1udWxsLGw9aShmdW5jdGlvbigpe2lmKHMpe3MudW5zdWJzY3JpYmUoKSxzPW51bGw7dmFyIGQ9bjtuPW51bGwsYS5uZXh0KGQpfX0sImVtaXQiKTtmdW5jdGlvbiBjKCl7dmFyIGQ9byt0LGY9ZS5ub3coKTtpZihmPGQpe3M9dGhpcy5zY2hlZHVsZSh2b2lkIDAsZC1mKSxhLmFkZChzKTtyZXR1cm59bCgpfWkoYywiZW1pdFdoZW5JZGxlIiksci5zdWJzY3JpYmUoRXIoYSxmdW5jdGlvbihkKXtuPWQsbz1lLm5vdygpLHN8fChzPWUuc2NoZWR1bGUoYyx0KSxhLmFkZChzKSl9LGZ1bmN0aW9uKCl7bCgpLGEuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7bj1zPW51bGx9KSl9KX12YXIgZjhlPXUoKCk9PntQZCgpO2dzKCk7bG4oKTtpKHZpZSwiZGVib3VuY2VUaW1lIil9KTt2YXIgaDhlPXUoKCk9Pnt9KTt2YXIgbThlPXUoKCk9Pnt9KTt2YXIgZzhlPXUoKCk9Pnt9KTt2YXIgYjhlPXUoKCk9Pnt9KTt2YXIgeDhlPXUoKCk9Pnt9KTt2YXIgdjhlPXUoKCk9Pnt9KTt2YXIgeThlPXUoKCk9Pnt9KTt2YXIgdzhlPXUoKCk9Pnt9KTtmdW5jdGlvbiBZZyh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1XYyksdD10Pz9uMmEsWHIoZnVuY3Rpb24ocixhKXt2YXIgcyxuPSEwO3Iuc3Vic2NyaWJlKEVyKGEsZnVuY3Rpb24obyl7dmFyIGw9ZShvKTsobnx8IXQocyxsKSkmJihuPSExLHM9bCxhLm5leHQobykpfSkpfSl9ZnVuY3Rpb24gbjJhKHQsZSl7cmV0dXJuIHQ9PT1lfXZhciBrOGU9dSgoKT0+e1JnKCk7Z3MoKTtsbigpO2koWWcsImRpc3RpbmN0VW50aWxDaGFuZ2VkIik7aShuMmEsImRlZmF1bHRDb21wYXJlIil9KTt2YXIgUzhlPXUoKCk9Pnt9KTt2YXIgTThlPXUoKCk9Pnt9KTt2YXIgQzhlPXUoKCk9Pnt9KTt2YXIgejhlPXUoKCk9Pnt9KTt2YXIgXzhlPXUoKCk9Pnt9KTt2YXIgVDhlPXUoKCk9Pnt9KTt2YXIgTDhlPXUoKCk9Pnt9KTt2YXIgRDhlPXUoKCk9Pnt9KTt2YXIgJDhlPXUoKCk9Pnt9KTt2YXIgQThlPXUoKCk9Pnt9KTt2YXIgRThlPXUoKCk9Pnt9KTt2YXIgSThlPXUoKCk9Pnt9KTt2YXIgUDhlPXUoKCk9Pnt9KTt2YXIgTjhlPXUoKCk9Pnt9KTt2YXIgTzhlPXUoKCk9Pnt9KTt2YXIgUjhlPXUoKCk9Pnt9KTt2YXIgRjhlPXUoKCk9Pnt9KTt2YXIgQjhlPXUoKCk9Pnt9KTt2YXIgSDhlPXUoKCk9Pnt9KTt2YXIgcThlPXUoKCk9Pnt9KTt2YXIgVjhlPXUoKCk9Pnt9KTt2YXIgajhlPXUoKCk9Pnt9KTt2YXIgcnl0PXUoKCk9Pnt9KTt2YXIgVThlPXUoKCk9Pnt9KTt2YXIgVzhlPXUoKCk9Pnt9KTt2YXIgRzhlPXUoKCk9Pnt9KTt2YXIgWThlPXUoKCk9Pnt9KTt2YXIgSzhlPXUoKCk9Pnt9KTt2YXIgWjhlPXUoKCk9Pnt9KTt2YXIgUThlPXUoKCk9Pnt9KTt2YXIgWDhlPXUoKCk9Pnt9KTt2YXIgSjhlPXUoKCk9Pnt9KTt2YXIgZTdlPXUoKCk9Pnt9KTt2YXIgdDdlPXUoKCk9Pnt9KTt2YXIgcjdlPXUoKCk9Pnt9KTt2YXIgYTdlPXUoKCk9Pnt9KTt2YXIgaTdlPXUoKCk9Pnt9KTt2YXIgczdlPXUoKCk9Pnt9KTt2YXIgbjdlPXUoKCk9Pnt9KTt2YXIgbzdlPXUoKCk9Pnt9KTt2YXIgbDdlPXUoKCk9Pnt9KTt2YXIgYzdlPXUoKCk9Pnt9KTtmdW5jdGlvbiB5aWUodCl7dD09PXZvaWQgMCYmKHQ9e30pO3ZhciBlPXQuY29ubmVjdG9yLHI9ZT09PXZvaWQgMD9mdW5jdGlvbigpe3JldHVybiBuZXcgS259OmUsYT10LnJlc2V0T25FcnJvcixzPWE9PT12b2lkIDA/ITA6YSxuPXQucmVzZXRPbkNvbXBsZXRlLG89bj09PXZvaWQgMD8hMDpuLGw9dC5yZXNldE9uUmVmQ291bnRaZXJvLGM9bD09PXZvaWQgMD8hMDpsO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZixwLGgsbT0wLHY9ITEsYj0hMSxnPWkoZnVuY3Rpb24oKXtwPy51bnN1YnNjcmliZSgpLHA9dm9pZCAwfSwiY2FuY2VsUmVzZXQiKSx5PWkoZnVuY3Rpb24oKXtnKCksZj1oPXZvaWQgMCx2PWI9ITF9LCJyZXNldCIpLGs9aShmdW5jdGlvbigpe3ZhciBNPWY7eSgpLE0/LnVuc3Vic2NyaWJlKCl9LCJyZXNldEFuZFVuc3Vic2NyaWJlIik7cmV0dXJuIFhyKGZ1bmN0aW9uKE0sTil7bSsrLCFiJiYhdiYmZygpO3ZhciBfPWg9aD8/cigpO04uYWRkKGZ1bmN0aW9uKCl7bS0tLG09PT0wJiYhYiYmIXYmJihwPWQ3ZShrLGMpKX0pLF8uc3Vic2NyaWJlKE4pLCFmJiZtPjAmJihmPW5ldyBCMyh7bmV4dDppKGZ1bmN0aW9uKFMpe3JldHVybiBfLm5leHQoUyl9LCJuZXh0IiksZXJyb3I6aShmdW5jdGlvbihTKXtiPSEwLGcoKSxwPWQ3ZSh5LHMsUyksXy5lcnJvcihTKX0sImVycm9yIiksY29tcGxldGU6aShmdW5jdGlvbigpe3Y9ITAsZygpLHA9ZDdlKHksbyksXy5jb21wbGV0ZSgpfSwiY29tcGxldGUiKX0pLGlpKE0pLnN1YnNjcmliZShmKSl9KShkKX19ZnVuY3Rpb24gZDdlKHQsZSl7Zm9yKHZhciByPVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXJbYS0yXT1hcmd1bWVudHNbYV07aWYoZT09PSEwKXt0KCk7cmV0dXJufWlmKGUhPT0hMSl7dmFyIHM9bmV3IEIzKHtuZXh0OmkoZnVuY3Rpb24oKXtzLnVuc3Vic2NyaWJlKCksdCgpfSwibmV4dCIpfSk7cmV0dXJuIGlpKGUuYXBwbHkodm9pZCAwLFBzKFtdLEFpKHIpKSkpLnN1YnNjcmliZShzKX19dmFyIHdpZT11KCgpPT57X2EoKTtSMSgpO0ZnKCk7a2soKTtncygpO2koeWllLCJzaGFyZSIpO2koZDdlLCJoYW5kbGVSZXNldCIpfSk7ZnVuY3Rpb24ga2llKHQsZSxyKXt2YXIgYSxzLG4sbyxsPSExO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/KGE9dC5idWZmZXJTaXplLG89YT09PXZvaWQgMD8xLzA6YSxzPXQud2luZG93VGltZSxlPXM9PT12b2lkIDA/MS8wOnMsbj10LnJlZkNvdW50LGw9bj09PXZvaWQgMD8hMTpuLHI9dC5zY2hlZHVsZXIpOm89dD8/MS8wLHlpZSh7Y29ubmVjdG9yOmkoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEhnKG8sZSxyKX0sImNvbm5lY3RvciIpLHJlc2V0T25FcnJvcjohMCxyZXNldE9uQ29tcGxldGU6ITEscmVzZXRPblJlZkNvdW50WmVybzpsfSl9dmFyIHU3ZT11KCgpPT57ZjVlKCk7d2llKCk7aShraWUsInNoYXJlUmVwbGF5Iil9KTt2YXIgcDdlPXUoKCk9Pnt9KTt2YXIgZjdlPXUoKCk9Pnt9KTt2YXIgaDdlPXUoKCk9Pnt9KTt2YXIgbTdlPXUoKCk9Pnt9KTt2YXIgZzdlPXUoKCk9Pnt9KTtmdW5jdGlvbiBTaWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9R2ModCk7cmV0dXJuIFhyKGZ1bmN0aW9uKGEscyl7KHI/cGllKHQsYSxyKTpwaWUodCxhKSkuc3Vic2NyaWJlKHMpfSl9dmFyIGI3ZT11KCgpPT57ajVlKCk7amcoKTtncygpO2koU2llLCJzdGFydFdpdGgiKX0pO3ZhciB4N2U9dSgoKT0+e30pO3ZhciB2N2U9dSgoKT0+e30pO3ZhciB5N2U9dSgoKT0+e30pO3ZhciB3N2U9dSgoKT0+e30pO2Z1bmN0aW9uIEtnKHQpe3JldHVybiBYcihmdW5jdGlvbihlLHIpe2lpKHQpLnN1YnNjcmliZShFcihyLGZ1bmN0aW9uKCl7cmV0dXJuIHIuY29tcGxldGUoKX0sa2wpKSwhci5jbG9zZWQmJmUuc3Vic2NyaWJlKHIpfSl9dmFyIGs3ZT11KCgpPT57Z3MoKTtsbigpO1IxKCk7SWYoKTtpKEtnLCJ0YWtlVW50aWwiKX0pO3ZhciBTN2U9dSgoKT0+e30pO3ZhciBNN2U9dSgoKT0+e30pO2Z1bmN0aW9uIE1pZSh0LGUpe3JldHVybiBYcihmdW5jdGlvbihyLGEpe3ZhciBzPWU/P3t9LG49cy5sZWFkaW5nLG89bj09PXZvaWQgMD8hMDpuLGw9cy50cmFpbGluZyxjPWw9PT12b2lkIDA/ITE6bCxkPSExLGY9bnVsbCxwPW51bGwsaD0hMSxtPWkoZnVuY3Rpb24oKXtwPy51bnN1YnNjcmliZSgpLHA9bnVsbCxjJiYoZygpLGgmJmEuY29tcGxldGUoKSl9LCJlbmRUaHJvdHRsaW5nIiksdj1pKGZ1bmN0aW9uKCl7cD1udWxsLGgmJmEuY29tcGxldGUoKX0sImNsZWFudXBUaHJvdHRsaW5nIiksYj1pKGZ1bmN0aW9uKHkpe3JldHVybiBwPWlpKHQoeSkpLnN1YnNjcmliZShFcihhLG0sdikpfSwic3RhcnRUaHJvdHRsZSIpLGc9aShmdW5jdGlvbigpe2lmKGQpe2Q9ITE7dmFyIHk9ZjtmPW51bGwsYS5uZXh0KHkpLCFoJiZiKHkpfX0sInNlbmQiKTtyLnN1YnNjcmliZShFcihhLGZ1bmN0aW9uKHkpe2Q9ITAsZj15LCEocCYmIXAuY2xvc2VkKSYmKG8/ZygpOmIoeSkpfSxmdW5jdGlvbigpe2g9ITAsIShjJiZkJiZwJiYhcC5jbG9zZWQpJiZhLmNvbXBsZXRlKCl9KSl9KX12YXIgQ2llPXUoKCk9PntncygpO2xuKCk7UjEoKTtpKE1pZSwidGhyb3R0bGUiKX0pO2Z1bmN0aW9uIHppZSh0LGUscil7ZT09PXZvaWQgMCYmKGU9ZjEpO3ZhciBhPUVrKHQsZSk7cmV0dXJuIE1pZShmdW5jdGlvbigpe3JldHVybiBhfSxyKX12YXIgQzdlPXUoKCk9PntQZCgpO0NpZSgpO2ZpZSgpO2koemllLCJ0aHJvdHRsZVRpbWUiKX0pO2Z1bmN0aW9uIGl5dCh0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ZjEpLFhyKGZ1bmN0aW9uKGUscil7dmFyIGE9dC5ub3coKTtlLnN1YnNjcmliZShFcihyLGZ1bmN0aW9uKHMpe3ZhciBuPXQubm93KCksbz1uLWE7YT1uLHIubmV4dChuZXcgYXl0KHMsbykpfSkpfSl9dmFyIGF5dCx6N2U9dSgoKT0+e1BkKCk7Z3MoKTtsbigpO2koaXl0LCJ0aW1lSW50ZXJ2YWwiKTtheXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHIpe3RoaXMudmFsdWU9ZSx0aGlzLmludGVydmFsPXJ9cmV0dXJuIGkodCwiVGltZUludGVydmFsIiksdH0pKCl9KTt2YXIgXzdlPXUoKCk9Pnt9KTt2YXIgVDdlPXUoKCk9Pnt9KTt2YXIgTDdlPXUoKCk9Pnt9KTt2YXIgRDdlPXUoKCk9Pnt9KTt2YXIgJDdlPXUoKCk9Pnt9KTt2YXIgQTdlPXUoKCk9Pnt9KTt2YXIgRTdlPXUoKCk9Pnt9KTt2YXIgSTdlPXUoKCk9Pnt9KTt2YXIgUDdlPXUoKCk9Pnt9KTt2YXIgc3l0PXUoKCk9Pnt9KTt2YXIgTjdlPXUoKCk9Pnt9KTt2YXIgWmc9dSgoKT0+e0FvKCk7RHh0KCk7U2soKTtFeHQoKTtGZygpO0l4dCgpO2Y1ZSgpO054dCgpO1V4dCgpO1BkKCk7S3h0KCk7Snh0KCk7dHZ0KCk7eDVlKCk7VWMoKTtraygpO212dCgpO3M1ZSgpO0lmKCk7UmcoKTtndnQoKTt4dnQoKTt2dnQoKTt5dnQoKTtidnQoKTt3dnQoKTtkNWUoKTtrdnQoKTtuaWUoKTtRbWUoKTtDdnQoKTt6dnQoKTtBdnQoKTtqNWUoKTtOdnQoKTtQdnQoKTtXYWUoKTtPdnQoKTtEaygpO0Z2dCgpO0J2dCgpO0h2dCgpO3F2dCgpO1Z2dCgpO2p2dCgpO1c1ZSgpO081ZSgpO1d2dCgpO0d2dCgpO1l2dCgpO0t2dCgpO1p2dCgpO0Y1ZSgpO2ZpZSgpO1F2dCgpO1h2dCgpO041ZSgpO1dhZSgpO1c1ZSgpO0p2dCgpO1BnKCk7WTVlKCk7SzVlKCk7WjVlKCk7UTVlKCk7WDVlKCk7SjVlKCk7ZThlKCk7dDhlKCk7czhlKCk7aThlKCk7bjhlKCk7dWllKCk7bzhlKCk7bDhlKCk7YzhlKCk7ZDhlKCk7dThlKCk7cDhlKCk7ZjhlKCk7aDhlKCk7djhlKCk7eDhlKCk7eThlKCk7dzhlKCk7azhlKCk7UzhlKCk7QzhlKCk7ejhlKCk7XzhlKCk7RDhlKCk7TDhlKCk7VDhlKCk7JDhlKCk7RzVlKCk7QThlKCk7RThlKCk7SThlKCk7UDhlKCk7TjhlKCk7ZzhlKCk7TzhlKCk7RjhlKCk7JGsoKTtiOGUoKTtCOGUoKTtIOGUoKTtjaWUoKTtxOGUoKTtBaygpO1Y4ZSgpO2o4ZSgpO1U4ZSgpO1c4ZSgpO0c4ZSgpO1RrKCk7WThlKCk7SzhlKCk7WjhlKCk7UThlKCk7WDhlKCk7SjhlKCk7ZTdlKCk7dDdlKCk7cjhlKCk7cjdlKCk7YTdlKCk7aTdlKCk7czdlKCk7VmFlKCk7bjdlKCk7bzdlKCk7bDdlKCk7YzdlKCk7d2llKCk7dTdlKCk7cDdlKCk7ZjdlKCk7aDdlKCk7bTdlKCk7ZzdlKCk7YjdlKCk7TGsoKTt2N2UoKTt4N2UoKTt5N2UoKTt3N2UoKTttOGUoKTtSOGUoKTtrN2UoKTtTN2UoKTtNN2UoKTtDaWUoKTtDN2UoKTtNOGUoKTt6N2UoKTtuaWUoKTtfN2UoKTtUN2UoKTthOGUoKTtMN2UoKTtEN2UoKTskN2UoKTtBN2UoKTtFN2UoKTtJN2UoKTtQN2UoKTtON2UoKX0pO3ZhciBueXQ9dSgoKT0+e30pO3ZhciBveXQ9dSgoKT0+e30pO3ZhciBseXQ9dSgoKT0+e1k1ZSgpO0s1ZSgpO1o1ZSgpO1E1ZSgpO1g1ZSgpO0o1ZSgpO2U4ZSgpO3Q4ZSgpO3M4ZSgpO2k4ZSgpO2V5dCgpO244ZSgpO3R5dCgpO3VpZSgpO284ZSgpO2w4ZSgpO2M4ZSgpO2Q4ZSgpO3U4ZSgpO3A4ZSgpO2Y4ZSgpO2g4ZSgpO3Y4ZSgpO3g4ZSgpO3k4ZSgpO3c4ZSgpO2s4ZSgpO1M4ZSgpO0M4ZSgpO3o4ZSgpO184ZSgpO0Q4ZSgpO0w4ZSgpO1Q4ZSgpOyQ4ZSgpO0c1ZSgpO0E4ZSgpO0U4ZSgpO0k4ZSgpO1A4ZSgpO044ZSgpO2c4ZSgpO084ZSgpO0Y4ZSgpOyRrKCk7YjhlKCk7QjhlKCk7SDhlKCk7cnl0KCk7Y2llKCk7cThlKCk7QWsoKTtWOGUoKTtqOGUoKTtVOGUoKTtXOGUoKTtHOGUoKTtUaygpO1k4ZSgpO0s4ZSgpO255dCgpO1o4ZSgpO1E4ZSgpO1g4ZSgpO0o4ZSgpO2U3ZSgpO295dCgpO3Q3ZSgpO3I4ZSgpO3I3ZSgpO2E3ZSgpO2k3ZSgpO3M3ZSgpO1ZhZSgpO243ZSgpO283ZSgpO2w3ZSgpO2M3ZSgpO3dpZSgpO3U3ZSgpO3A3ZSgpO2Y3ZSgpO2g3ZSgpO203ZSgpO2c3ZSgpO2I3ZSgpO0xrKCk7djdlKCk7eDdlKCk7eTdlKCk7dzdlKCk7bThlKCk7UjhlKCk7azdlKCk7UzdlKCk7TTdlKCk7Q2llKCk7QzdlKCk7TThlKCk7ejdlKCk7bmllKCk7XzdlKCk7VDdlKCk7YThlKCk7TDdlKCk7RDdlKCk7JDdlKCk7QTdlKCk7RTdlKCk7STdlKCk7c3l0KCk7UDdlKCk7TjdlKCl9KTt2YXIgUWc9e307VmUoUWcse09ic2VydmFibGU6KCk9Pm5yLFJlcGxheVN1YmplY3Q6KCk9PkhnLFN1YmplY3Q6KCk9PktuLFN1YnNjcmlwdGlvbjooKT0+UWksZnJvbTooKT0+WWMsZnJvbUV2ZW50OigpPT5CZixvZjooKT0+UmYsb3BzOigpPT5PY2F9KTt2YXIgT2NhLF9pZT11KCgpPT57WmcoKTtseXQoKTtPY2E9e2J1ZmZlcjptaWUsYnVmZmVyQ291bnQ6Z2llLGJ1ZmZlclRpbWU6YmllLGRlYm91bmNlOnhpZSxkZWJvdW5jZVRpbWU6dmllLGZpbHRlcjpoaWUsbWFwOktjLHN0YXJ0V2l0aDpTaWUsdGFrZVVudGlsOktnLHRocm90dGxlVGltZTp6aWV9fSk7dmFyIE83ZSxjeXQ9dSgoKT0+e09hZSgpO19pZSgpO083ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJPYnNlcnZhYmxlbWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheT1uZXcgQXJyYXksdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheT1uZXcgQXJyYXl9Z2V0U3ViamVjdEZvckVtaXR0ZXJFdmVudChlLHIpe2xldCBhPXRoaXMub2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5LmZpbmQocz0+cy5ldmVudFJlZj09PWUmJnMuZXZlbnQ9PT1yKTtpZihhKXJldHVybiBhLnN1YmplY3Q7e2xldCBzPUJmKGUsciksbj1uZXcgS247cy5zdWJzY3JpYmUobik7bGV0IG89e3N1YmplY3Q6bixldmVudFJlZjplLGV2ZW50OnJ9O3JldHVybiB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG8pLG8uc3ViamVjdH19Z2V0U3ViamVjdEZvckV2ZW50VGFyZ2V0KGUscil7bGV0IGE9dGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5maW5kKHM9PnMuZXZlbnRSZWY9PT1lJiZzLmV2ZW50PT09cik7aWYoYSlyZXR1cm4gYS5zdWJqZWN0O3tsZXQgbj17c3ViamVjdDpuZXcgS24sZXZlbnRSZWY6ZSxldmVudDpyfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5wdXNoKG4pLG4uc3ViamVjdH19fX0pO3ZhciBSN2UsZHl0PXUoKCk9PntPYWUoKTtfaWUoKTtSN2U9Y2xhc3N7c3RhdGlje2kodGhpcywiT2JzZXJ2YWJsZUludGFrZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zPXtuZXh0OmkoZT0+e30sIm5leHQiKSxjb21wbGV0ZTppKGU9Pnt9LCJjb21wbGV0ZSIpfSx0aGlzLmdlbmVyYXRvcj1udWxsLHRoaXMuYnVmZmVyZWQ9ITEsdGhpcy5wYXlsb2FkQnVmZmVyPVtdLHRoaXMub2JzZXJ2YWJsZT1uZXcgbnIoZT0+e3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0PSguLi5yKT0+ZS5uZXh0KHIpLHRoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5jb21wbGV0ZT0oKT0+KHRoaXMuY29tcGxldGVkRGVmZmVyZWQucmVzb2x2ZSgpLGUuY29tcGxldGUoKSl9KSx0aGlzLmNvbXBsZXRlZERlZmZlcmVkPXh0LmRlZmVyKCksdGhpcy5jb21wbGV0ZWQ9dGhpcy5jb21wbGV0ZWREZWZmZXJlZC5wcm9taXNlfXNldE9ic2VydmFibGUoZSl7dGhpcy5vYnNlcnZhYmxlPWV9cHVzaChlKXt0aGlzLmJ1ZmZlcmVkP3RoaXMucGF5bG9hZEJ1ZmZlci5wdXNoKGUpOnRoaXMuaW50ZXJuYWxQdXNoKGUpfXB1c2hNYW55KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMucHVzaChyKX1zZXRHZW5lcmF0b3IoZSl7dGhpcy5nZW5lcmF0b3I9ZX1tYWtlQnVmZmVyZWQoKXt0aGlzLmJ1ZmZlcmVkPSEwfXN1YnNjcmliZSguLi5lKXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZSguLi5lKX1yZXF1ZXN0KGUpe2lmKGUhPT0wKWZvcihsZXQgcj0wO3IhPT1lO3IrKylpZih0aGlzLnBheWxvYWRCdWZmZXIubGVuZ3RoPjApdGhpcy5pbnRlcm5hbFB1c2godGhpcy5wYXlsb2FkQnVmZmVyLnNoaWZ0KCkpO2Vsc2V7bGV0IGE9dGhpcy5nZW5lcmF0b3IubmV4dCgpO3RoaXMuaW50ZXJuYWxQdXNoKGEudmFsdWUpfX1zaWduYWxDb21wbGV0ZSgpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5jb21wbGV0ZSgpfWludGVybmFsUHVzaChlKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dChlKX19fSk7ZnVuY3Rpb24gUmNhKHQpe3JldHVybiBuZXcgbnIoZT0+e2xldCByPWkoKCk9PnQucGF1c2UoKSwicGF1c2VTdHJlYW0iKSxhPWkoKCk9PnByb2Nlc3MubmV4dFRpY2soKCk9PnQucmVzdW1lKCkpLCJyZXN1bWVTdHJlYW0iKSxzPWkobj0+e3IoKSxlLm5leHQobiksYSgpfSwib25EYXRhIik7cmV0dXJuIHQub24oImRhdGEiLHMpLHQub24oImVycm9yIixuPT5lLmVycm9yKG4pKSx0Lm9uKCJlbmQiLCgpPT5lLmNvbXBsZXRlKCkpLHQub24oImNsb3NlIiwoKT0+ZS5jb21wbGV0ZSgpKSwoKT0+e3QucmVtb3ZlTGlzdGVuZXIoImRhdGEiLHMpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixlLmVycm9yKSx0LnJlbW92ZUxpc3RlbmVyKCJlbmQiLGUuY29tcGxldGUpLHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixlLmNvbXBsZXRlKX19KX12YXIgdXl0PXUoKCk9PntaZygpO2koUmNhLCJmcm9tU3RyZWFtV2l0aEJhY2twcmVzc3VyZSIpfSk7dmFyIG9hPXt9O1ZlKG9hLHtPYnNlcnZhYmxlSW50YWtlOigpPT5SN2UsT2JzZXJ2YWJsZW1hcDooKT0+TzdlLGZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlOigpPT5SY2EscnhqczooKT0+UWd9KTt2YXIgWmM9dSgoKT0+e09hZSgpO2N5dCgpO2R5dCgpO3V5dCgpO19pZSgpfSk7ZnVuY3Rpb24gSGYodCl7cmV0dXJuKGUscik9PnR5cGVvZiByPT0ib2JqZWN0Ij9weXQodCxlLHIpOigoYSxzLG4pPT57bGV0IG89cy5oYXNPd25Qcm9wZXJ0eShuKTtyZXR1cm4gcy5jb25zdHJ1Y3Rvci5jcmVhdGVQcm9wZXJ0eShuLGEpLG8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLG4pOnZvaWQgMH0pKHQsZSxyKX12YXIgRmNhLHB5dCxUaWU9dSgoKT0+e2ZrKCk7RmNhPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOkFnLHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpwa30scHl0PWkoKHQ9RmNhLGUscik9PntsZXR7a2luZDphLG1ldGFkYXRhOnN9PXIsbj1nbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHMpO2lmKG49PT12b2lkIDAmJmdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5zZXQocyxuPW5ldyBNYXApLGE9PT0ic2V0dGVyIiYmKCh0PU9iamVjdC5jcmVhdGUodCkpLndyYXBwZWQ9ITApLG4uc2V0KHIubmFtZSx0KSxhPT09ImFjY2Vzc29yIil7bGV0e25hbWU6b309cjtyZXR1cm57c2V0KGwpe2xldCBjPWUuZ2V0LmNhbGwodGhpcyk7ZS5zZXQuY2FsbCh0aGlzLGwpLHRoaXMucmVxdWVzdFVwZGF0ZShvLGMsdCwhMCxsKX0saW5pdChsKXtyZXR1cm4gbCE9PXZvaWQgMCYmdGhpcy5DKG8sdm9pZCAwLHQsbCksbH19fWlmKGE9PT0ic2V0dGVyIil7bGV0e25hbWU6b309cjtyZXR1cm4gZnVuY3Rpb24obCl7bGV0IGM9dGhpc1tvXTtlLmNhbGwodGhpcyxsKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxjLHQsITAsbCl9fXRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICIrYSl9LCJyIik7aShIZiwibiIpfSk7dmFyIGZ5dD11KCgpPT57VGllKCl9KTt2YXIgaHl0PXUoKCk9Pnt9KTt2YXIgS3Q9e307VmUoS3Qse1RpbWVvdXQ6KCk9PkxpZSxkZWxheUZvcjooKT0+bXl0LGRlbGF5Rm9yUmFuZG9tOigpPT5CY2F9KTt2YXIgbXl0LEJjYSxMaWUsTmQ9dSgoKT0+e0duKCk7bXl0PWkoYXN5bmModCxlLHI9ITEpPT4oYXdhaXQgbmV3IExpZSh0LG51bGwscikucHJvbWlzZSxlKSwiZGVsYXlGb3IiKSxCY2E9aShhc3luYyh0LGUscixhPSExKT0+KGF3YWl0IG15dChNYXRoLnJhbmRvbSgpKihlLXQpK3QsbnVsbCxhKSxyKSwiZGVsYXlGb3JSYW5kb20iKSxMaWU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGltZW91dCIpfWNvbnN0cnVjdG9yKGUscixhPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9ZSx0aGlzLl9kZWZlcnJlZD1SMygpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShyKX0sZSksdGhpcy5zdGFydGVkPURhdGUubm93KCksYSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZj8uKCl9Y2FuY2VsKCl7dGhpcy5fY2FuY2VsbGVkPSEwLGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KX1nZXRUaW1lTGVmdCgpe2xldCBlPXRoaXMuc3RhcnRlZCt0aGlzLnRpbWVvdXRJbk1pbGxpcy1EYXRlLm5vdygpO3JldHVybiBlPjA/ZTowfX19KTt2YXIgU2w9e307dmFyIHFmPXUoKCk9Pnt9KTtmdW5jdGlvbiBWZih0KXtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTtyZXR1cm4gdC5yZXBsYWNlKC9bfFxce30oKVtcXV4kKyo/Ll0vZywiXFwkJiIpLnJlcGxhY2UoLy0vZywiXFx4MmQiKX12YXIgRGllPXUoKCk9PntpKFZmLCJlc2NhcGVTdHJpbmdSZWdleHAiKX0pO3ZhciBJaz17fTtWZShJayx7aXNNYXRjaDooKT0+VmNhLG1hdGNoZXI6KCk9PnFjYX0pO2Z1bmN0aW9uIHFjYSh0LGUscil7cmV0dXJuIGJ5dCh0LGUsciwhMSl9ZnVuY3Rpb24gVmNhKHQsZSxyKXtyZXR1cm4gYnl0KHQsZSxyLCEwKS5sZW5ndGg+MH12YXIgRjdlLGd5dCxIY2EsYnl0LHh5dD11KCgpPT57RGllKCk7RjdlPW5ldyBNYXAsZ3l0PWkoKHQsZSk9PntpZighQXJyYXkuaXNBcnJheSh0KSlzd2l0Y2godHlwZW9mIHQpe2Nhc2Uic3RyaW5nIjp0PVt0XTticmVhaztjYXNlInVuZGVmaW5lZCI6dD1bXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICcke2V9JyB0byBiZSBhIHN0cmluZyBvciBhbiBhcnJheSwgYnV0IGdvdCBhIHR5cGUgb2YgJyR7dHlwZW9mIHR9J2ApfXJldHVybiB0LmZpbHRlcihyPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXtpZih0eXBlb2Ygcj4idSIpcmV0dXJuITE7dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGFuIGFycmF5IG9mIHN0cmluZ3MsIGJ1dCBmb3VuZCBhIHR5cGUgb2YgJyR7dHlwZW9mIHJ9JyBpbiB0aGUgYXJyYXlgKX1yZXR1cm4hMH0pfSwic2FuaXRpemVBcnJheSIpLEhjYT1pKCh0LGUpPT57ZT17Y2FzZVNlbnNpdGl2ZTohMSwuLi5lfTtsZXQgcj10K0pTT04uc3RyaW5naWZ5KGUpO2lmKEY3ZS5oYXMocikpcmV0dXJuIEY3ZS5nZXQocik7bGV0IGE9dFswXT09PSIhIjthJiYodD10LnNsaWNlKDEpKSx0PVZmKHQpLnJlcGxhY2UoL1xcXCovZywiW1xcc1xcU10qIik7bGV0IHM9bmV3IFJlZ0V4cChgXiR7dH0kYCxlLmNhc2VTZW5zaXRpdmU/IiI6ImkiKTtyZXR1cm4gcy5uZWdhdGVkPWEsRjdlLnNldChyLHMpLHN9LCJtYWtlUmVnZXhwIiksYnl0PWkoKHQsZSxyLGEpPT57aWYodD1neXQodCwiaW5wdXRzIiksZT1neXQoZSwicGF0dGVybnMiKSxlLmxlbmd0aD09PTApcmV0dXJuW107ZT1lLm1hcChvPT5IY2EobyxyKSk7bGV0e2FsbFBhdHRlcm5zOnN9PXJ8fHt9LG49W107Zm9yKGxldCBvIG9mIHQpe2xldCBsLGM9Wy4uLmVdLmZpbGwoITEpO2ZvcihsZXRbZCxmXW9mIGUuZW50cmllcygpKWlmKGYudGVzdChvKSYmKGNbZF09ITAsbD0hZi5uZWdhdGVkLCFsKSlicmVhaztpZighKGw9PT0hMXx8bD09PXZvaWQgMCYmZS5zb21lKGQ9PiFkLm5lZ2F0ZWQpfHxzJiZjLnNvbWUoKGQsZik9PiFkJiYhZVtmXS5uZWdhdGVkKSkmJihuLnB1c2gobyksYSkpYnJlYWt9cmV0dXJuIG59LCJiYXNlTWF0Y2hlciIpO2kocWNhLCJtYXRjaGVyIik7aShWY2EsImlzTWF0Y2giKX0pO3ZhciB2eXQ9dSgoKT0+e3h5dCgpfSk7dmFyIFBrPXt9O1ZlKFBrLHtTbWFydE1hdGNoOigpPT5CN2V9KTt2YXIgQjdlLHl5dD11KCgpPT57dnl0KCk7QjdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0TWF0Y2giKX1jb25zdHJ1Y3RvcihlKXt0aGlzLndpbGRjYXJkPWV9bWF0Y2goZSl7cmV0dXJuIElrLmlzTWF0Y2goZSx0aGlzLndpbGRjYXJkKX19fSk7dmFyIEZrPXt9O1ZlKEZrLHtDcm9uOigpPT56eXQsQ3JvbkRhdGU6KCk9Pk9zLENyb25QYXR0ZXJuOigpPT4kaWUsc2NoZWR1bGVkSm9iczooKT0+WGd9KTtmdW5jdGlvbiBOayh0KXtyZXR1cm4gRGF0ZS5VVEModC55LHQubS0xLHQuZCx0LmgsdC5pLHQucyl9ZnVuY3Rpb24gSDdlKHQsZSl7cmV0dXJuIHQueT09PWUueSYmdC5tPT09ZS5tJiZ0LmQ9PT1lLmQmJnQuaD09PWUuaCYmdC5pPT09ZS5pJiZ0LnM9PT1lLnN9ZnVuY3Rpb24gVWNhKHQsZSl7bGV0IHI9bmV3IERhdGUoRGF0ZS5wYXJzZSh0KSk7aWYoaXNOYU4ocikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIElTTzg2MDEgcGFzc2VkIHRvIHRpbWV6b25lIHBhcnNlci4iKTtsZXQgYT10LnN1YnN0cmluZyg5KTtyZXR1cm4gYS5pbmNsdWRlcygiWiIpfHxhLmluY2x1ZGVzKCIrIil8fGEuaW5jbHVkZXMoIi0iKT9xN2Uoci5nZXRVVENGdWxsWWVhcigpLHIuZ2V0VVRDTW9udGgoKSsxLHIuZ2V0VVRDRGF0ZSgpLHIuZ2V0VVRDSG91cnMoKSxyLmdldFVUQ01pbnV0ZXMoKSxyLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOnE3ZShyLmdldEZ1bGxZZWFyKCksci5nZXRNb250aCgpKzEsci5nZXREYXRlKCksci5nZXRIb3VycygpLHIuZ2V0TWludXRlcygpLHIuZ2V0U2Vjb25kcygpLGUpfWZ1bmN0aW9uIHd5dCh0LGUscil7cmV0dXJuIGt5dChVY2EodCxlKSxyKX1mdW5jdGlvbiBreXQodCxlKXtsZXQgcj1uZXcgRGF0ZShOayh0KSksYT1PayhyLHQudHopLHM9TmsodCksbj1OayhhKSxvPXMtbixsPW5ldyBEYXRlKHIuZ2V0VGltZSgpK28pLGM9T2sobCx0LnR6KTtpZihIN2UoYyx0KSl7bGV0IHA9bmV3IERhdGUobC5nZXRUaW1lKCktMzZlNSksaD1PayhwLHQudHopO3JldHVybiBIN2UoaCx0KT9wOmx9bGV0IGQ9bmV3IERhdGUobC5nZXRUaW1lKCkrTmsodCktTmsoYykpLGY9T2soZCx0LnR6KTtpZihIN2UoZix0KSlyZXR1cm4gZDtpZihlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBkYXRlIHBhc3NlZCB0byBmcm9tVFooKSIpO3JldHVybiBsLmdldFRpbWUoKT5kLmdldFRpbWUoKT9sOmR9ZnVuY3Rpb24gT2sodCxlKXtsZXQgcixhO3RyeXtyPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIse3RpbWVab25lOmUseWVhcjoibnVtZXJpYyIsbW9udGg6Im51bWVyaWMiLGRheToibnVtZXJpYyIsaG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMiLGhvdXIxMjohMX0pLGE9ci5mb3JtYXRUb1BhcnRzKHQpfWNhdGNoKG4pe2xldCBvPW4gaW5zdGFuY2VvZiBFcnJvcj9uLm1lc3NhZ2U6U3RyaW5nKG4pO3Rocm93IG5ldyBSYW5nZUVycm9yKGB0b1RaOiBJbnZhbGlkIHRpbWV6b25lICcke2V9JyBvciBkYXRlLiBQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIElBTkEgdGltZXpvbmUgKGUuZy4sICdBbWVyaWNhL05ld19Zb3JrJywgJ0V1cm9wZS9TdG9ja2hvbG0nKS4gT3JpZ2luYWwgZXJyb3I6ICR7b31gKX1sZXQgcz17eWVhcjowLG1vbnRoOjAsZGF5OjAsaG91cjowLG1pbnV0ZTowLHNlY29uZDowfTtmb3IobGV0IG4gb2YgYSkobi50eXBlPT09InllYXIifHxuLnR5cGU9PT0ibW9udGgifHxuLnR5cGU9PT0iZGF5Inx8bi50eXBlPT09ImhvdXIifHxuLnR5cGU9PT0ibWludXRlInx8bi50eXBlPT09InNlY29uZCIpJiYoc1tuLnR5cGVdPXBhcnNlSW50KG4udmFsdWUsMTApKTtpZihpc05hTihzLnllYXIpfHxpc05hTihzLm1vbnRoKXx8aXNOYU4ocy5kYXkpfHxpc05hTihzLmhvdXIpfHxpc05hTihzLm1pbnV0ZSl8fGlzTmFOKHMuc2Vjb25kKSl0aHJvdyBuZXcgRXJyb3IoYHRvVFo6IEZhaWxlZCB0byBwYXJzZSBhbGwgZGF0ZSBjb21wb25lbnRzIGZyb20gdGltZXpvbmUgJyR7ZX0nLiBUaGlzIG1heSBpbmRpY2F0ZSBhbiBpbnZhbGlkIGRhdGUgb3IgdGltZXpvbmUgY29uZmlndXJhdGlvbi4gUGFyc2VkIGNvbXBvbmVudHM6ICR7SlNPTi5zdHJpbmdpZnkocyl9YCk7cmV0dXJuIHMuaG91cj09PTI0JiYocy5ob3VyPTApLHt5OnMueWVhcixtOnMubW9udGgsZDpzLmRheSxoOnMuaG91cixpOnMubWludXRlLHM6cy5zZWNvbmQsdHo6ZX19ZnVuY3Rpb24gcTdlKHQsZSxyLGEscyxuLG8pe3JldHVybnt5OnQsbTplLGQ6cixoOmEsaTpzLHM6bix0ejpvfX1mdW5jdGlvbiBXY2EodCl7aWYodD09PXZvaWQgMCYmKHQ9e30pLGRlbGV0ZSB0Lm5hbWUsdC5sZWdhY3lNb2RlIT09dm9pZCAwJiZ0LmRvbUFuZERvdz09PXZvaWQgMD90LmRvbUFuZERvdz0hdC5sZWdhY3lNb2RlOnQuZG9tQW5kRG93PT09dm9pZCAwJiYodC5kb21BbmREb3c9ITEpLHQubGVnYWN5TW9kZT0hdC5kb21BbmREb3csdC5wYXVzZWQ9dC5wYXVzZWQ9PT12b2lkIDA/ITE6dC5wYXVzZWQsdC5tYXhSdW5zPXQubWF4UnVucz09PXZvaWQgMD8xLzA6dC5tYXhSdW5zLHQuY2F0Y2g9dC5jYXRjaD09PXZvaWQgMD8hMTp0LmNhdGNoLHQuaW50ZXJ2YWw9dC5pbnRlcnZhbD09PXZvaWQgMD8wOnBhcnNlSW50KHQuaW50ZXJ2YWwudG9TdHJpbmcoKSwxMCksdC51dGNPZmZzZXQ9dC51dGNPZmZzZXQ9PT12b2lkIDA/dm9pZCAwOnBhcnNlSW50KHQudXRjT2Zmc2V0LnRvU3RyaW5nKCksMTApLHQuZGF5T2Zmc2V0PXQuZGF5T2Zmc2V0PT09dm9pZCAwPzA6cGFyc2VJbnQodC5kYXlPZmZzZXQudG9TdHJpbmcoKSwxMCksdC51bnJlZj10LnVucmVmPT09dm9pZCAwPyExOnQudW5yZWYsdC5tb2RlPXQubW9kZT09PXZvaWQgMD8iYXV0byI6dC5tb2RlLHQuYWx0ZXJuYXRpdmVXZWVrZGF5cz10LmFsdGVybmF0aXZlV2Vla2RheXM9PT12b2lkIDA/ITE6dC5hbHRlcm5hdGl2ZVdlZWtkYXlzLHQuc2xvcHB5UmFuZ2VzPXQuc2xvcHB5UmFuZ2VzPT09dm9pZCAwPyExOnQuc2xvcHB5UmFuZ2VzLCFbImF1dG8iLCI1LXBhcnQiLCI2LXBhcnQiLCI3LXBhcnQiLCI1LW9yLTYtcGFydHMiLCI2LW9yLTctcGFydHMiXS5pbmNsdWRlcyh0Lm1vZGUpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IG1vZGUgbXVzdCBiZSBvbmUgb2YgJ2F1dG8nLCAnNS1wYXJ0JywgJzYtcGFydCcsICc3LXBhcnQnLCAnNS1vci02LXBhcnRzJywgb3IgJzYtb3ItNy1wYXJ0cycuIik7aWYodC5zdGFydEF0JiYodC5zdGFydEF0PW5ldyBPcyh0LnN0YXJ0QXQsdC50aW1lem9uZSkpLHQuc3RvcEF0JiYodC5zdG9wQXQ9bmV3IE9zKHQuc3RvcEF0LHQudGltZXpvbmUpKSx0LmludGVydmFsIT09bnVsbCl7aWYoaXNOYU4odC5pbnRlcnZhbCkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogU3VwcGxpZWQgdmFsdWUgZm9yIGludGVydmFsIGlzIG5vdCBhIG51bWJlciIpO2lmKHQuaW50ZXJ2YWw8MCl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgY2FuIG5vdCBiZSBuZWdhdGl2ZSIpfWlmKHQudXRjT2Zmc2V0IT09dm9pZCAwKXtpZihpc05hTih0LnV0Y09mZnNldCkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogSW52YWxpZCB2YWx1ZSBwYXNzZWQgZm9yIHV0Y09mZnNldCwgc2hvdWxkIGJlIG51bWJlciByZXByZXNlbnRpbmcgbWludXRlcyBvZmZzZXQgZnJvbSBVVEMuIik7aWYodC51dGNPZmZzZXQ8LTg3MHx8dC51dGNPZmZzZXQ+ODcwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IHV0Y09mZnNldCBvdXQgb2YgYm91bmRzLiIpO2lmKHQudXRjT2Zmc2V0IT09dm9pZCAwJiZ0LnRpbWV6b25lKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IENvbWJpbmluZyAndXRjT2Zmc2V0JyB3aXRoICd0aW1lem9uZScgaXMgbm90IGFsbG93ZWQuIil9aWYodC51bnJlZiE9PSEwJiZ0LnVucmVmIT09ITEpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogVW5yZWYgc2hvdWxkIGJlIGVpdGhlciB0cnVlLCBmYWxzZSBvciB1bmRlZmluZWQoZmFsc2UpLiIpO2lmKHQuZGF5T2Zmc2V0IT09dm9pZCAwJiZ0LmRheU9mZnNldCE9PTAmJmlzTmFOKHQuZGF5T2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgZGF5T2Zmc2V0LCBzaG91bGQgYmUgYSBudW1iZXIgcmVwcmVzZW50aW5nIGRheXMgdG8gb2Zmc2V0LiIpO3JldHVybiB0fWZ1bmN0aW9uIFJrKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBGdW5jdGlvbl0ifHx0eXBlb2YgdD09ImZ1bmN0aW9uInx8dCBpbnN0YW5jZW9mIEZ1bmN0aW9ufWZ1bmN0aW9uIEdjYSh0KXtyZXR1cm4gUmsodCl9ZnVuY3Rpb24gWWNhKHQpe3R5cGVvZiBEZW5vPCJ1IiYmdHlwZW9mIERlbm8udW5yZWZUaW1lcjwidSI/RGVuby51bnJlZlRpbWVyKHQpOnQmJnR5cGVvZiB0LnVucmVmPCJ1IiYmdC51bnJlZigpfXZhciBTeXQsJGllLFY3ZSxzaSxPcyxNeXQsWGcsenl0LF95dD11KCgpPT57aShOaywiVCIpO2koSDdlLCJEIik7aShVY2EsIkEiKTtpKHd5dCwidiIpO2koa3l0LCJrIik7aShPaywiZyIpO2kocTdlLCJiIik7U3l0PVsxLDIsNCw4LDE2XSwkaWU9Y2xhc3N7c3RhdGlje2kodGhpcywiQyIpfXBhdHRlcm47dGltZXpvbmU7bW9kZTthbHRlcm5hdGl2ZVdlZWtkYXlzO3Nsb3BweVJhbmdlcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO2RheU9mV2Vlazt5ZWFyO2xhc3REYXlPZk1vbnRoO2xhc3RXZWVrZGF5O25lYXJlc3RXZWVrZGF5cztzdGFyRE9NO3N0YXJET1c7c3RhclllYXI7dXNlQW5kTG9naWM7Y29uc3RydWN0b3IodCxlLHIpe3RoaXMucGF0dGVybj10LHRoaXMudGltZXpvbmU9ZSx0aGlzLm1vZGU9cj8ubW9kZT8/ImF1dG8iLHRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz1yPy5hbHRlcm5hdGl2ZVdlZWtkYXlzPz8hMSx0aGlzLnNsb3BweVJhbmdlcz1yPy5zbG9wcHlSYW5nZXM/PyExLHRoaXMuc2Vjb25kPUFycmF5KDYwKS5maWxsKDApLHRoaXMubWludXRlPUFycmF5KDYwKS5maWxsKDApLHRoaXMuaG91cj1BcnJheSgyNCkuZmlsbCgwKSx0aGlzLmRheT1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLm1vbnRoPUFycmF5KDEyKS5maWxsKDApLHRoaXMuZGF5T2ZXZWVrPUFycmF5KDcpLmZpbGwoMCksdGhpcy55ZWFyPUFycmF5KDFlNCkuZmlsbCgwKSx0aGlzLmxhc3REYXlPZk1vbnRoPSExLHRoaXMubGFzdFdlZWtkYXk9ITEsdGhpcy5uZWFyZXN0V2Vla2RheXM9QXJyYXkoMzEpLmZpbGwoMCksdGhpcy5zdGFyRE9NPSExLHRoaXMuc3RhckRPVz0hMSx0aGlzLnN0YXJZZWFyPSExLHRoaXMudXNlQW5kTG9naWM9ITEsdGhpcy5wYXJzZSgpfXBhcnNlKCl7aWYoISh0eXBlb2YgdGhpcy5wYXR0ZXJuPT0ic3RyaW5nInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogUGF0dGVybiBoYXMgdG8gYmUgb2YgdHlwZSBzdHJpbmcuIik7dGhpcy5wYXR0ZXJuLmluZGV4T2YoIkAiKT49MCYmKHRoaXMucGF0dGVybj10aGlzLmhhbmRsZU5pY2tuYW1lcyh0aGlzLnBhdHRlcm4pLnRyaW0oKSk7bGV0IHQ9dGhpcy5wYXR0ZXJuLm1hdGNoKC9cUysvZyl8fFsiIl0sZT10Lmxlbmd0aDtpZih0Lmxlbmd0aDw1fHx0Lmxlbmd0aD43KXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gZm9ybWF0ICgnIit0aGlzLnBhdHRlcm4rIicpLCBleGFjdGx5IGZpdmUsIHNpeCwgb3Igc2V2ZW4gc3BhY2Ugc2VwYXJhdGVkIHBhcnRzIGFyZSByZXF1aXJlZC4iKTtpZih0aGlzLm1vZGUhPT0iYXV0byIpe2xldCBhO3N3aXRjaCh0aGlzLm1vZGUpe2Nhc2UiNS1wYXJ0IjphPTU7YnJlYWs7Y2FzZSI2LXBhcnQiOmE9NjticmVhaztjYXNlIjctcGFydCI6YT03O2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjphPVs1LDZdO2JyZWFrO2Nhc2UiNi1vci03LXBhcnRzIjphPVs2LDddO2JyZWFrO2RlZmF1bHQ6YT0wfWlmKCEoQXJyYXkuaXNBcnJheShhKT9hLmluY2x1ZGVzKGUpOmU9PT1hKSl7bGV0IHM9QXJyYXkuaXNBcnJheShhKT9hLmpvaW4oIiBvciAiKTphLnRvU3RyaW5nKCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG1vZGUgJyR7dGhpcy5tb2RlfScgcmVxdWlyZXMgZXhhY3RseSAke3N9IHBhcnRzLCBidXQgcGF0dGVybiAnJHt0aGlzLnBhdHRlcm59JyBoYXMgJHtlfSBwYXJ0cy5gKX19aWYodC5sZW5ndGg9PT01JiZ0LnVuc2hpZnQoIjAiKSx0Lmxlbmd0aD09PTYmJnQucHVzaCgiKiIpLHRbM10udG9VcHBlckNhc2UoKT09PSJMVyI/KHRoaXMubGFzdFdlZWtkYXk9ITAsdFszXT0iIik6dFszXS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIkwiKT49MCYmKHRbM109dFszXS5yZXBsYWNlKC9ML2dpLCIiKSx0aGlzLmxhc3REYXlPZk1vbnRoPSEwKSx0WzNdPT0iKiImJih0aGlzLnN0YXJET009ITApLHRbNl09PSIqIiYmKHRoaXMuc3RhclllYXI9ITApLHRbNF0ubGVuZ3RoPj0zJiYodFs0XT10aGlzLnJlcGxhY2VBbHBoYU1vbnRocyh0WzRdKSksdFs1XS5sZW5ndGg+PTMmJih0WzVdPXRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz90aGlzLnJlcGxhY2VBbHBoYURheXNRdWFydHoodFs1XSk6dGhpcy5yZXBsYWNlQWxwaGFEYXlzKHRbNV0pKSx0WzVdLnN0YXJ0c1dpdGgoIisiKSYmKHRoaXMudXNlQW5kTG9naWM9ITAsdFs1XT10WzVdLnN1YnN0cmluZygxKSx0WzVdPT09IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBEYXktb2Ytd2VlayBmaWVsZCBjYW5ub3QgYmUgZW1wdHkgYWZ0ZXIgJysnIG1vZGlmaWVyLiIpO3N3aXRjaCh0WzVdPT0iKiImJih0aGlzLnN0YXJET1c9ITApLHRoaXMucGF0dGVybi5pbmRleE9mKCI/Iik+PTAmJih0WzBdPXRbMF0ucmVwbGFjZSgvXD8vZywiKiIpLHRbMV09dFsxXS5yZXBsYWNlKC9cPy9nLCIqIiksdFsyXT10WzJdLnJlcGxhY2UoL1w/L2csIioiKSx0WzNdPXRbM10ucmVwbGFjZSgvXD8vZywiKiIpLHRbNF09dFs0XS5yZXBsYWNlKC9cPy9nLCIqIiksdFs1XT10WzVdLnJlcGxhY2UoL1w/L2csIioiKSx0WzZdJiYodFs2XT10WzZdLnJlcGxhY2UoL1w/L2csIioiKSkpLHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOnRbMF09IjAiLHRbNl09IioiO2JyZWFrO2Nhc2UiNi1wYXJ0Ijp0WzZdPSIqIjticmVhaztjYXNlIjUtb3ItNi1wYXJ0cyI6dFs2XT0iKiI7YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmJyZWFrO2Nhc2UiNy1wYXJ0IjpjYXNlImF1dG8iOmJyZWFrfXRoaXMudGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHQpLHRoaXMucGFydFRvQXJyYXkoInNlY29uZCIsdFswXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoIm1pbnV0ZSIsdFsxXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImhvdXIiLHRbMl0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJkYXkiLHRbM10sLTEsMSksdGhpcy5wYXJ0VG9BcnJheSgibW9udGgiLHRbNF0sLTEsMSk7bGV0IHI9dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPy0xOjA7dGhpcy5wYXJ0VG9BcnJheSgiZGF5T2ZXZWVrIix0WzVdLHIsNjMpLHRoaXMucGFydFRvQXJyYXkoInllYXIiLHRbNl0sMCwxKSwhdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzJiZ0aGlzLmRheU9mV2Vla1s3XSYmKHRoaXMuZGF5T2ZXZWVrWzBdPXRoaXMuZGF5T2ZXZWVrWzddKX1wYXJ0VG9BcnJheSh0LGUscixhKXtsZXQgcz10aGlzW3RdLG49dD09PSJkYXkiJiZ0aGlzLmxhc3REYXlPZk1vbnRoLG89dD09PSJkYXkiJiZ0aGlzLmxhc3RXZWVrZGF5O2lmKGU9PT0iIiYmIW4mJiFvKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrdCsiICgiK2UrIikgaXMgZW1wdHksIGNoZWNrIGZvciB0cmFpbGluZyBzcGFjZXMuIik7aWYoZT09PSIqIilyZXR1cm4gcy5maWxsKGEpO2xldCBsPWUuc3BsaXQoIiwiKTtpZihsLmxlbmd0aD4xKWZvcihsZXQgYz0wO2M8bC5sZW5ndGg7YysrKXRoaXMucGFydFRvQXJyYXkodCxsW2NdLHIsYSk7ZWxzZSBlLmluZGV4T2YoIi0iKSE9PS0xJiZlLmluZGV4T2YoIi8iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcoZSx0LHIsYSk6ZS5pbmRleE9mKCItIikhPT0tMT90aGlzLmhhbmRsZVJhbmdlKGUsdCxyLGEpOmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVTdGVwcGluZyhlLHQscixhKTplIT09IiImJnRoaXMuaGFuZGxlTnVtYmVyKGUsdCxyLGEpfXRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyh0KXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZigoZT09PTM/L1teLyowLTksXC1Xd0xsXSsvOmU9PT01Py9bXi8qMC05LFwtI0xsXSsvOi9bXi8qMC05LFwtXSsvKS50ZXN0KHRbZV0pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrZSsiICgiK3RbZV0rIikgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpfWhhbmRsZU51bWJlcih0LGUscixhKXtsZXQgcz10aGlzLmV4dHJhY3ROdGgodCxlKSxuPXQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpO2lmKGUhPT0iZGF5IiYmbil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogTmVhcmVzdCB3ZWVrZGF5IG1vZGlmaWVyIChXKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLW1vbnRoLiIpO24mJihlPSJuZWFyZXN0V2Vla2RheXMiKTtsZXQgbz1wYXJzZUludChzWzBdLDEwKStyO2lmKGlzTmFOKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiAiK2UrIiBpcyBub3QgYSBudW1iZXI6ICciK3QrIiciKTt0aGlzLnNldFBhcnQoZSxvLHNbMV18fGEpfXNldFBhcnQodCxlLHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyx0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCBwYXJ0IHNwZWNpZmllZDogIit0KTtpZih0PT09ImRheU9mV2VlayIpe2lmKGU9PT03JiYoZT0wKSxlPDB8fGU+Nil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlazogIitlKTt0aGlzLnNldE50aFdlZWtkYXlPZk1vbnRoKGUscik7cmV0dXJufWlmKHQ9PT0ic2Vjb25kInx8dD09PSJtaW51dGUiKXtpZihlPDB8fGU+PTYwKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09ImhvdXIiKXtpZihlPDB8fGU+PTI0KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09ImRheSJ8fHQ9PT0ibmVhcmVzdFdlZWtkYXlzIil7aWYoZTwwfHxlPj0zMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UpfWVsc2UgaWYodD09PSJtb250aCIpe2lmKGU8MHx8ZT49MTIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0ieWVhciImJihlPDF8fGU+PTFlNCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKyIgKHN1cHBvcnRlZCByYW5nZTogMS05OTk5KSIpO3RoaXNbdF1bZV09cn12YWxpZGF0ZU5vdE5hTih0LGUpe2lmKGlzTmFOKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoZSl9dmFsaWRhdGVSYW5nZSh0LGUscixhLHMpe2lmKHQ+ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogRnJvbSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0byB2YWx1ZTogJyIrcysiJyIpO2lmKHIhPT12b2lkIDApe2lmKHI9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDAiKTtpZihyPnRoaXNbYV0ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZSBvZiBwYXJ0ICgiK3RoaXNbYV0ubGVuZ3RoKyIpIil9fWhhbmRsZVJhbmdlV2l0aFN0ZXBwaW5nKHQsZSxyLGEpe2lmKHQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gcmFuZ2VzIHdpdGggc3RlcHBpbmcuIik7bGV0IHM9dGhpcy5leHRyYWN0TnRoKHQsZSksbj1zWzBdLm1hdGNoKC9eKFxkKyktKFxkKylcLyhcZCspJC8pO2lmKG49PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2Ugd2l0aCBzdGVwcGluZzogJyIrdCsiJyIpO2xldFssbyxsLGNdPW4sZD1wYXJzZUludChvLDEwKStyLGY9cGFyc2VJbnQobCwxMCkrcixwPXBhcnNlSW50KGMsMTApO3RoaXMudmFsaWRhdGVOb3ROYU4oZCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4oZiwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4ocCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoZCxmLHAsZSx0KTtmb3IobGV0IGg9ZDtoPD1mO2grPXApdGhpcy5zZXRQYXJ0KGUsaCxzWzFdfHxhKX1leHRyYWN0TnRoKHQsZSl7bGV0IHI9dCxhO2lmKHIuaW5jbHVkZXMoIiMiKSl7aWYoZSE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkIik7YT1yLnNwbGl0KCIjIilbMV0scj1yLnNwbGl0KCIjIilbMF19ZWxzZSBpZihyLnRvVXBwZXJDYXNlKCkuZW5kc1dpdGgoIkwiKSl7aWYoZSE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IEwgbW9kaWZpZXIgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkICh1c2UgTCBhbG9uZSBmb3IgZGF5LW9mLW1vbnRoKSIpO2E9IkwiLHI9ci5zbGljZSgwLC0xKX1yZXR1cm5bcixhXX1oYW5kbGVSYW5nZSh0LGUscixhKXtpZih0LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIGEgcmFuZ2UuIik7bGV0IHM9dGhpcy5leHRyYWN0TnRoKHQsZSksbj1zWzBdLnNwbGl0KCItIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2U6ICciK3QrIiciKTtsZXQgbz1wYXJzZUludChuWzBdLDEwKStyLGw9cGFyc2VJbnQoblsxXSwxMCkrcjt0aGlzLnZhbGlkYXRlTm90TmFOKG8sIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgbG93ZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlTm90TmFOKGwsIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgdXBwZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UobyxsLHZvaWQgMCxlLHQpO2ZvcihsZXQgYz1vO2M8PWw7YysrKXRoaXMuc2V0UGFydChlLGMsc1sxXXx8YSl9aGFuZGxlU3RlcHBpbmcodCxlLHIsYSl7aWYodC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiBwYXJ0cyB3aXRoIHN0ZXBwaW5nLiIpO2xldCBzPXRoaXMuZXh0cmFjdE50aCh0LGUpLG49c1swXS5zcGxpdCgiLyIpO2lmKG4ubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAnIit0KyInIik7aWYodGhpcy5zbG9wcHlSYW5nZXMpblswXT09PSIiJiYoblswXT0iKiIpO2Vsc2V7aWYoblswXT09PSIiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbWlzc2luZyBwcmVmaXggKCciK3QrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKTtpZihuWzBdIT09IioiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbnVtZXJpYyBwcmVmaXggKCciK3QrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKX1sZXQgbz0wO25bMF0hPT0iKiImJihvPXBhcnNlSW50KG5bMF0sMTApK3IpO2xldCBsPXBhcnNlSW50KG5bMV0sMTApO3RoaXMudmFsaWRhdGVOb3ROYU4obCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoMCx0aGlzW2VdLmxlbmd0aC0xLGwsZSx0KTtmb3IobGV0IGM9bztjPHRoaXNbZV0ubGVuZ3RoO2MrPWwpdGhpcy5zZXRQYXJ0KGUsYyxzWzFdfHxhKX1yZXBsYWNlQWxwaGFEYXlzKHQpe3JldHVybiB0LnJlcGxhY2UoLy1zdW4vZ2ksIi03IikucmVwbGFjZSgvc3VuL2dpLCIwIikucmVwbGFjZSgvbW9uL2dpLCIxIikucmVwbGFjZSgvdHVlL2dpLCIyIikucmVwbGFjZSgvd2VkL2dpLCIzIikucmVwbGFjZSgvdGh1L2dpLCI0IikucmVwbGFjZSgvZnJpL2dpLCI1IikucmVwbGFjZSgvc2F0L2dpLCI2Iil9cmVwbGFjZUFscGhhRGF5c1F1YXJ0eih0KXtyZXR1cm4gdC5yZXBsYWNlKC9zdW4vZ2ksIjEiKS5yZXBsYWNlKC9tb24vZ2ksIjIiKS5yZXBsYWNlKC90dWUvZ2ksIjMiKS5yZXBsYWNlKC93ZWQvZ2ksIjQiKS5yZXBsYWNlKC90aHUvZ2ksIjUiKS5yZXBsYWNlKC9mcmkvZ2ksIjYiKS5yZXBsYWNlKC9zYXQvZ2ksIjciKX1yZXBsYWNlQWxwaGFNb250aHModCl7cmV0dXJuIHQucmVwbGFjZSgvamFuL2dpLCIxIikucmVwbGFjZSgvZmViL2dpLCIyIikucmVwbGFjZSgvbWFyL2dpLCIzIikucmVwbGFjZSgvYXByL2dpLCI0IikucmVwbGFjZSgvbWF5L2dpLCI1IikucmVwbGFjZSgvanVuL2dpLCI2IikucmVwbGFjZSgvanVsL2dpLCI3IikucmVwbGFjZSgvYXVnL2dpLCI4IikucmVwbGFjZSgvc2VwL2dpLCI5IikucmVwbGFjZSgvb2N0L2dpLCIxMCIpLnJlcGxhY2UoL25vdi9naSwiMTEiKS5yZXBsYWNlKC9kZWMvZ2ksIjEyIil9aGFuZGxlTmlja25hbWVzKHQpe2xldCBlPXQudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYoZT09PSJAeWVhcmx5Inx8ZT09PSJAYW5udWFsbHkiKXJldHVybiIwIDAgMSAxICoiO2lmKGU9PT0iQG1vbnRobHkiKXJldHVybiIwIDAgMSAqICoiO2lmKGU9PT0iQHdlZWtseSIpcmV0dXJuIjAgMCAqICogMCI7aWYoZT09PSJAZGFpbHkifHxlPT09IkBtaWRuaWdodCIpcmV0dXJuIjAgMCAqICogKiI7aWYoZT09PSJAaG91cmx5IilyZXR1cm4iMCAqICogKiAqIjtpZihlPT09IkByZWJvb3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBAcmVib290IGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBhbiBldmVudC1iYXNlZCB0cmlnZ2VyIHRoYXQgcmVxdWlyZXMgc3lzdGVtIHN0YXJ0dXAgZGV0ZWN0aW9uLiIpO3JldHVybiB0fXNldE50aFdlZWtkYXlPZk1vbnRoKHQsZSl7aWYodHlwZW9mIGUhPSJudW1iZXIiJiZlLnRvVXBwZXJDYXNlKCk9PT0iTCIpdGhpcy5kYXlPZldlZWtbdF09dGhpcy5kYXlPZldlZWtbdF18MzI7ZWxzZSBpZihlPT09NjMpdGhpcy5kYXlPZldlZWtbdF09NjM7ZWxzZSBpZihlPDYmJmU+MCl0aGlzLmRheU9mV2Vla1t0XT10aGlzLmRheU9mV2Vla1t0XXxTeXRbZS0xXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYENyb25QYXR0ZXJuOiBudGggd2Vla2RheSBvdXQgb2YgcmFuZ2UsIHNob3VsZCBiZSAxLTUgb3IgTC4gVmFsdWU6ICR7ZX0sIFR5cGU6ICR7dHlwZW9mIGV9YCl9fSxWN2U9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxzaT1bWyJtb250aCIsInllYXIiLDBdLFsiZGF5IiwibW9udGgiLC0xXSxbImhvdXIiLCJkYXkiLDBdLFsibWludXRlIiwiaG91ciIsMF0sWyJzZWNvbmQiLCJtaW51dGUiLDBdXSxPcz1jbGFzcyBDeXR7c3RhdGlje2kodGhpcywicyIpfXR6O21zO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7eWVhcjtjb25zdHJ1Y3RvcihlLHIpe2lmKHRoaXMudHo9cixlJiZlIGluc3RhbmNlb2YgRGF0ZSlpZighaXNOYU4oZSkpdGhpcy5mcm9tRGF0ZShlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25EYXRlOiBJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yIik7ZWxzZSBpZihlPT1udWxsKXRoaXMuZnJvbURhdGUobmV3IERhdGUpO2Vsc2UgaWYoZSYmdHlwZW9mIGU9PSJzdHJpbmciKXRoaXMuZnJvbVN0cmluZyhlKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBDeXQpdGhpcy5mcm9tQ3JvbkRhdGUoZSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCB0eXBlICgiK3R5cGVvZiBlKyIpIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpfWdldExhc3REYXlPZk1vbnRoKGUscil7cmV0dXJuIHIhPT0xP1Y3ZVtyXTpuZXcgRGF0ZShEYXRlLlVUQyhlLHIrMSwwKSkuZ2V0VVRDRGF0ZSgpfWdldExhc3RXZWVrZGF5KGUscil7bGV0IGE9dGhpcy5nZXRMYXN0RGF5T2ZNb250aChlLHIpLHM9bmV3IERhdGUoRGF0ZS5VVEMoZSxyLGEpKS5nZXRVVENEYXkoKTtyZXR1cm4gcz09PTA/YS0yOnM9PT02P2EtMTphfWdldE5lYXJlc3RXZWVrZGF5KGUscixhKXtsZXQgcz10aGlzLmdldExhc3REYXlPZk1vbnRoKGUscik7aWYoYT5zKXJldHVybi0xO2xldCBuPW5ldyBEYXRlKERhdGUuVVRDKGUscixhKSkuZ2V0VVRDRGF5KCk7cmV0dXJuIG49PT0wP2E9PT1zP2EtMjphKzE6bj09PTY/YT09PTE/YSsyOmEtMTphfWlzTnRoV2Vla2RheU9mTW9udGgoZSxyLGEscyl7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEMoZSxyLGEpKS5nZXRVVENEYXkoKSxvPTA7Zm9yKGxldCBsPTE7bDw9YTtsKyspbmV3IERhdGUoRGF0ZS5VVEMoZSxyLGwpKS5nZXRVVENEYXkoKT09PW4mJm8rKztpZihzJjYzJiZTeXRbby0xXSZzKXJldHVybiEwO2lmKHMmMzIpe2xldCBsPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSxyKTtmb3IobGV0IGM9YSsxO2M8PWw7YysrKWlmKG5ldyBEYXRlKERhdGUuVVRDKGUscixjKSkuZ2V0VVRDRGF5KCk9PT1uKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKGUpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXRoaXMubXM9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT1lLmdldFVUQ01pbnV0ZXMoKSt0aGlzLnR6LHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCk7ZWxzZSB0cnl7bGV0IHI9T2soZSx0aGlzLnR6KTt0aGlzLm1zPWUuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5zLHRoaXMubWludXRlPXIuaSx0aGlzLmhvdXI9ci5oLHRoaXMuZGF5PXIuZCx0aGlzLm1vbnRoPXIubS0xLHRoaXMueWVhcj1yLnl9Y2F0Y2gocil7bGV0IGE9ciBpbnN0YW5jZW9mIEVycm9yP3IubWVzc2FnZTpTdHJpbmcocik7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvbkRhdGU6IEZhaWxlZCB0byBjb252ZXJ0IGRhdGUgdG8gdGltZXpvbmUgJyR7dGhpcy50en0nLiBUaGlzIG1heSBoYXBwZW4gd2l0aCBpbnZhbGlkIHRpbWV6b25lIG5hbWVzIG9yIGRhdGVzLiBPcmlnaW5hbCBlcnJvcjogJHthfWApfWVsc2UgdGhpcy5tcz1lLmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0U2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0TWludXRlcygpLHRoaXMuaG91cj1lLmdldEhvdXJzKCksdGhpcy5kYXk9ZS5nZXREYXRlKCksdGhpcy5tb250aD1lLmdldE1vbnRoKCksdGhpcy55ZWFyPWUuZ2V0RnVsbFllYXIoKX1mcm9tQ3JvbkRhdGUoZSl7dGhpcy50ej1lLnR6LHRoaXMueWVhcj1lLnllYXIsdGhpcy5tb250aD1lLm1vbnRoLHRoaXMuZGF5PWUuZGF5LHRoaXMuaG91cj1lLmhvdXIsdGhpcy5taW51dGU9ZS5taW51dGUsdGhpcy5zZWNvbmQ9ZS5zZWNvbmQsdGhpcy5tcz1lLm1zfWFwcGx5KCl7aWYodGhpcy5tb250aD4xMXx8dGhpcy5tb250aDwwfHx0aGlzLmRheT5WN2VbdGhpcy5tb250aF18fHRoaXMuZGF5PDF8fHRoaXMuaG91cj41OXx8dGhpcy5taW51dGU+NTl8fHRoaXMuc2Vjb25kPjU5fHx0aGlzLmhvdXI8MHx8dGhpcy5taW51dGU8MHx8dGhpcy5zZWNvbmQ8MCl7bGV0IGU9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpKTtyZXR1cm4gdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSwhMH1lbHNlIHJldHVybiExfWZyb21TdHJpbmcoZSl7aWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXtsZXQgcj13eXQoZSk7dGhpcy5tcz1yLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXIuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPXIuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj1yLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ci5nZXRVVENEYXRlKCksdGhpcy5tb250aD1yLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPXIuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCl9ZWxzZSByZXR1cm4gdGhpcy5mcm9tRGF0ZSh3eXQoZSx0aGlzLnR6KSl9ZmluZE5leHQoZSxyLGEscyl7cmV0dXJuIHRoaXMuX2ZpbmRNYXRjaChlLHIsYSxzLDEpfV9maW5kTWF0Y2goZSxyLGEscyxuKXtsZXQgbz10aGlzW3JdLGw7YS5sYXN0RGF5T2ZNb250aCYmKGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCkpO2xldCBjPSFhLnN0YXJET1cmJnI9PSJkYXkiP25ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpOnZvaWQgMCxkPXRoaXNbcl0rcyxmPW49PT0xP3A9PnA8YVtyXS5sZW5ndGg6cD0+cD49MDtmb3IobGV0IHA9ZDtmKHApO3ArPW4pe2xldCBoPWFbcl1bcF07aWYocj09PSJkYXkiJiYhaCl7Zm9yKGxldCBtPTA7bTxhLm5lYXJlc3RXZWVrZGF5cy5sZW5ndGg7bSsrKWlmKGEubmVhcmVzdFdlZWtkYXlzW21dKXtsZXQgdj10aGlzLmdldE5lYXJlc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoLG0tcyk7aWYodj09PS0xKWNvbnRpbnVlO2lmKHY9PT1wLXMpe2g9MTticmVha319fWlmKHI9PT0iZGF5IiYmYS5sYXN0V2Vla2RheSl7bGV0IG09dGhpcy5nZXRMYXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCk7cC1zPT09bSYmKGg9MSl9aWYocj09PSJkYXkiJiZhLmxhc3REYXlPZk1vbnRoJiZwLXM9PWwmJihoPTEpLHI9PT0iZGF5IiYmIWEuc3RhckRPVyl7bGV0IG09YS5kYXlPZldlZWtbKGMrKHAtcy0xKSklN107aWYobSYmbSY2MyltPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxwLXMsbSk/MTowO2Vsc2UgaWYobSl0aHJvdyBuZXcgRXJyb3IoYENyb25EYXRlOiBJbnZhbGlkIHZhbHVlIGZvciBkYXlPZldlZWsgZW5jb3VudGVyZWQuICR7bX1gKTthLnVzZUFuZExvZ2ljP2g9aCYmbTohZS5kb21BbmREb3cmJiFhLnN0YXJET00/aD1ofHxtOmg9aCYmbX1pZihoKXJldHVybiB0aGlzW3JdPXAtcyxvIT09dGhpc1tyXT8yOjF9cmV0dXJuIDN9cmVjdXJzZShlLHIsYSl7aWYoYT09PTAmJiFlLnN0YXJZZWFyKXtpZih0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTApe2xldCBuPS0xO2ZvcihsZXQgbz10aGlzLnllYXIrMTtvPGUueWVhci5sZW5ndGgmJm88MWU0O28rKylpZihlLnllYXJbb109PT0xKXtuPW87YnJlYWt9aWYobj09PS0xKXJldHVybiBudWxsO3RoaXMueWVhcj1uLHRoaXMubW9udGg9MCx0aGlzLmRheT0xLHRoaXMuaG91cj0wLHRoaXMubWludXRlPTAsdGhpcy5zZWNvbmQ9MCx0aGlzLm1zPTB9aWYodGhpcy55ZWFyPj0xZTQpcmV0dXJuIG51bGx9bGV0IHM9dGhpcy5maW5kTmV4dChyLHNpW2FdWzBdLGUsc2lbYV1bMl0pO2lmKHM+MSl7bGV0IG49YSsxO2Zvcig7bjxzaS5sZW5ndGg7KXRoaXNbc2lbbl1bMF1dPS1zaVtuXVsyXSxuKys7aWYocz09PTMpe2lmKHRoaXNbc2lbYV1bMV1dKyssdGhpc1tzaVthXVswXV09LXNpW2FdWzJdLHRoaXMuYXBwbHkoKSxhPT09MCYmIWUuc3RhclllYXIpe2Zvcig7dGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8ZS55ZWFyLmxlbmd0aCYmZS55ZWFyW3RoaXMueWVhcl09PT0wJiZ0aGlzLnllYXI8MWU0Oyl0aGlzLnllYXIrKztpZih0aGlzLnllYXI+PTFlNHx8dGhpcy55ZWFyPj1lLnllYXIubGVuZ3RoKXJldHVybiBudWxsfXJldHVybiB0aGlzLnJlY3Vyc2UoZSxyLDApfWVsc2UgaWYodGhpcy5hcHBseSgpKXJldHVybiB0aGlzLnJlY3Vyc2UoZSxyLGEtMSl9cmV0dXJuIGErPTEsYT49c2kubGVuZ3RoP3RoaXM6KGUuc3RhclllYXI/dGhpcy55ZWFyPj0zZTM6dGhpcy55ZWFyPj0xZTQpP251bGw6dGhpcy5yZWN1cnNlKGUscixhKX1pbmNyZW1lbnQoZSxyLGEpe3JldHVybiB0aGlzLnNlY29uZCs9ci5pbnRlcnZhbCE9PXZvaWQgMCYmci5pbnRlcnZhbD4xJiZhP3IuaW50ZXJ2YWw6MSx0aGlzLm1zPTAsdGhpcy5hcHBseSgpLHRoaXMucmVjdXJzZShlLHIsMCl9ZGVjcmVtZW50KGUscil7cmV0dXJuIHRoaXMuc2Vjb25kLT1yLmludGVydmFsIT09dm9pZCAwJiZyLmludGVydmFsPjE/ci5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlQmFja3dhcmQoZSxyLDAsMCl9cmVjdXJzZUJhY2t3YXJkKGUscixhLHM9MCl7aWYocz4xZTQpcmV0dXJuIG51bGw7aWYoYT09PTAmJiFlLnN0YXJZZWFyKXtpZih0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTApe2xldCBvPS0xO2ZvcihsZXQgbD10aGlzLnllYXItMTtsPj0wO2wtLSlpZihlLnllYXJbbF09PT0xKXtvPWw7YnJlYWt9aWYobz09PS0xKXJldHVybiBudWxsO3RoaXMueWVhcj1vLHRoaXMubW9udGg9MTEsdGhpcy5kYXk9MzEsdGhpcy5ob3VyPTIzLHRoaXMubWludXRlPTU5LHRoaXMuc2Vjb25kPTU5LHRoaXMubXM9MH1pZih0aGlzLnllYXI8MClyZXR1cm4gbnVsbH1sZXQgbj10aGlzLmZpbmRQcmV2aW91cyhyLHNpW2FdWzBdLGUsc2lbYV1bMl0pO2lmKG4+MSl7bGV0IG89YSsxO2Zvcig7bzxzaS5sZW5ndGg7KXtsZXQgbD1zaVtvXVswXSxjPXNpW29dWzJdLGQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUobCxlLGMpO3RoaXNbbF09ZCxvKyt9aWYobj09PTMpe2lmKHRoaXNbc2lbYV1bMV1dLS0sYT09PTApe2xldCBmPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXMuZGF5PmYmJih0aGlzLmRheT1mKX1pZihhPT09MSlpZih0aGlzLmRheTw9MCl0aGlzLmRheT0xO2Vsc2V7bGV0IGY9dGhpcy55ZWFyLHA9dGhpcy5tb250aDtmb3IoO3A8MDspcCs9MTIsZi0tO2Zvcig7cD4xMTspcC09MTIsZisrO2xldCBoPXAhPT0xP1Y3ZVtwXTpuZXcgRGF0ZShEYXRlLlVUQyhmLHArMSwwKSkuZ2V0VVRDRGF0ZSgpO3RoaXMuZGF5PmgmJih0aGlzLmRheT1oKX10aGlzLmFwcGx5KCk7bGV0IGw9c2lbYV1bMF0sYz1zaVthXVsyXSxkPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKGwsZSxjKTtpZihsPT09ImRheSIpe2xldCBmPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXNbbF09TWF0aC5taW4oZCxmKX1lbHNlIHRoaXNbbF09ZDtpZih0aGlzLmFwcGx5KCksYT09PTApe2xldCBmPXNpWzFdWzJdLHA9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImRheSIsZSxmKSxoPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpLG09TWF0aC5taW4ocCxoKTttIT09dGhpcy5kYXkmJih0aGlzLmRheT1tLHRoaXMuaG91cj10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiaG91ciIsZSxzaVsyXVsyXSksdGhpcy5taW51dGU9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoIm1pbnV0ZSIsZSxzaVszXVsyXSksdGhpcy5zZWNvbmQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoInNlY29uZCIsZSxzaVs0XVsyXSkpfWlmKGE9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTA7KXRoaXMueWVhci0tO2lmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHIsMCxzKzEpfWVsc2UgaWYodGhpcy5hcHBseSgpKXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHIsYS0xLHMrMSl9cmV0dXJuIGErPTEsYT49c2kubGVuZ3RoP3RoaXM6dGhpcy55ZWFyPDA/bnVsbDp0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHIsYSxzKzEpfWdldE1heFBhdHRlcm5WYWx1ZShlLHIsYSl7aWYoZT09PSJkYXkiJiZyLmxhc3REYXlPZk1vbnRoKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtpZihlPT09ImRheSImJiFyLnN0YXJET1cpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2ZvcihsZXQgcz1yW2VdLmxlbmd0aC0xO3M+PTA7cy0tKWlmKHJbZV1bc10pcmV0dXJuIHMtYTtyZXR1cm4gcltlXS5sZW5ndGgtMS1hfWZpbmRQcmV2aW91cyhlLHIsYSxzKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUscixhLHMsLTEpfWdldERhdGUoZSl7cmV0dXJuIGV8fHRoaXMudHo9PT12b2lkIDA/bmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpOnR5cGVvZiB0aGlzLnR6PT0ibnVtYmVyIj9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUtdGhpcy50eix0aGlzLnNlY29uZCx0aGlzLm1zKSk6a3l0KHE3ZSh0aGlzLnllYXIsdGhpcy5tb250aCsxLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLnR6KSwhMSl9Z2V0VGltZSgpe3JldHVybiB0aGlzLmdldERhdGUoITEpLmdldFRpbWUoKX1tYXRjaChlLHIpe2lmKCFlLnN0YXJZZWFyJiYodGhpcy55ZWFyPDB8fHRoaXMueWVhcj49ZS55ZWFyLmxlbmd0aHx8ZS55ZWFyW3RoaXMueWVhcl09PT0wKSlyZXR1cm4hMTtmb3IobGV0IGE9MDthPHNpLmxlbmd0aDthKyspe2xldCBzPXNpW2FdWzBdLG49c2lbYV1bMl0sbz10aGlzW3NdO2lmKG8rbjwwfHxvK24+PWVbc10ubGVuZ3RoKXJldHVybiExO2xldCBsPWVbc11bbytuXTtpZihzPT09ImRheSIpe2lmKCFsKXtmb3IobGV0IGM9MDtjPGUubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtjKyspaWYoZS5uZWFyZXN0V2Vla2RheXNbY10pe2xldCBkPXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsYy1uKTtpZihkIT09LTEmJmQ9PT1vKXtsPTE7YnJlYWt9fX1pZihlLmxhc3RXZWVrZGF5KXtsZXQgYz10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09YyYmKGw9MSl9aWYoZS5sYXN0RGF5T2ZNb250aCl7bGV0IGM9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7bz09PWMmJihsPTEpfWlmKCFlLnN0YXJET1cpe2xldCBjPW5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpLGQ9ZS5kYXlPZldlZWtbKGMrKG8tMSkpJTddO2QmJmQmNjMmJihkPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxvLGQpPzE6MCksZS51c2VBbmRMb2dpYz9sPWwmJmQ6IXIuZG9tQW5kRG93JiYhZS5zdGFyRE9NP2w9bHx8ZDpsPWwmJmR9fWlmKCFsKXJldHVybiExfXJldHVybiEwfX07aShXY2EsIlIiKTtpKFJrLCJwIik7aShHY2EsIl8iKTtpKFljYSwieCIpO015dD0zMCoxZTMsWGc9W10senl0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkUiKX1uYW1lO29wdGlvbnM7X3N0YXRlcztmbjtnZXRUeigpe3JldHVybiB0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXR9YXBwbHlEYXlPZmZzZXQodCl7aWYodGhpcy5vcHRpb25zLmRheU9mZnNldCE9PXZvaWQgMCYmdGhpcy5vcHRpb25zLmRheU9mZnNldCE9PTApe2xldCBlPXRoaXMub3B0aW9ucy5kYXlPZmZzZXQqMjQqNjAqNjAqMWUzO3JldHVybiBuZXcgRGF0ZSh0LmdldFRpbWUoKStlKX1yZXR1cm4gdH1jb25zdHJ1Y3Rvcih0LGUscil7bGV0IGEscztpZihSayhlKSlzPWU7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpYT1lO2Vsc2UgaWYoZSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBvcHRpb25zSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYoUmsocikpcz1yO2Vsc2UgaWYodHlwZW9mIHI9PSJvYmplY3QiKWE9cjtlbHNlIGlmKHIhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3IgZnVuY0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKHRoaXMubmFtZT1hPy5uYW1lLHRoaXMub3B0aW9ucz1XY2EoYSksdGhpcy5fc3RhdGVzPXtraWxsOiExLGJsb2NraW5nOiExLHByZXZpb3VzUnVuOnZvaWQgMCxjdXJyZW50UnVuOnZvaWQgMCxvbmNlOnZvaWQgMCxjdXJyZW50VGltZW91dDp2b2lkIDAsbWF4UnVuczphP2EubWF4UnVuczp2b2lkIDAscGF1c2VkOmE/YS5wYXVzZWQ6ITEscGF0dGVybjpuZXcgJGllKCIqICogKiAqICoiLHZvaWQgMCx7bW9kZToiYXV0byJ9KX0sdCYmKHQgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgdD09InN0cmluZyImJnQuaW5kZXhPZigiOiIpPjApP3RoaXMuX3N0YXRlcy5vbmNlPW5ldyBPcyh0LHRoaXMuZ2V0VHooKSk6dGhpcy5fc3RhdGVzLnBhdHRlcm49bmV3ICRpZSh0LHRoaXMub3B0aW9ucy50aW1lem9uZSx7bW9kZTp0aGlzLm9wdGlvbnMubW9kZSxhbHRlcm5hdGl2ZVdlZWtkYXlzOnRoaXMub3B0aW9ucy5hbHRlcm5hdGl2ZVdlZWtkYXlzLHNsb3BweVJhbmdlczp0aGlzLm9wdGlvbnMuc2xvcHB5UmFuZ2VzfSksdGhpcy5uYW1lKXtpZihYZy5maW5kKG49Pm4ubmFtZT09PXRoaXMubmFtZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBUcmllZCB0byBpbml0aWFsaXplIG5ldyBuYW1lZCBqb2IgJyIrdGhpcy5uYW1lKyInLCBidXQgbmFtZSBhbHJlYWR5IHRha2VuLiIpO1hnLnB1c2godGhpcyl9cmV0dXJuIHMhPT12b2lkIDAmJkdjYShzKSYmKHRoaXMuZm49cyx0aGlzLnNjaGVkdWxlKCkpLHRoaXN9bmV4dFJ1bih0KXtsZXQgZT10aGlzLl9uZXh0KHQpO3JldHVybiBlP3RoaXMuYXBwbHlEYXlPZmZzZXQoZS5nZXREYXRlKCExKSk6bnVsbH1uZXh0UnVucyh0LGUpe3RoaXMuX3N0YXRlcy5tYXhSdW5zIT09dm9pZCAwJiZ0PnRoaXMuX3N0YXRlcy5tYXhSdW5zJiYodD10aGlzLl9zdGF0ZXMubWF4UnVucyk7bGV0IHI9ZXx8dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW58fHZvaWQgMDtyZXR1cm4gdGhpcy5fZW51bWVyYXRlUnVucyh0LHIsIm5leHQiKX1wcmV2aW91c1J1bnModCxlKXtyZXR1cm4gdGhpcy5fZW51bWVyYXRlUnVucyh0LGV8fHZvaWQgMCwicHJldmlvdXMiKX1fZW51bWVyYXRlUnVucyh0LGUscil7bGV0IGE9W10scz1lP25ldyBPcyhlLHRoaXMuZ2V0VHooKSk6bnVsbCxuPXI9PT0ibmV4dCI/dGhpcy5fbmV4dDp0aGlzLl9wcmV2aW91cztmb3IoO3QtLTspe2xldCBvPW4uY2FsbCh0aGlzLHMpO2lmKCFvKWJyZWFrO2xldCBsPW8uZ2V0RGF0ZSghMSk7YS5wdXNoKHRoaXMuYXBwbHlEYXlPZmZzZXQobCkpLHM9b31yZXR1cm4gYX1tYXRjaCh0KXtpZih0aGlzLl9zdGF0ZXMub25jZSl7bGV0IHI9bmV3IE9zKHQsdGhpcy5nZXRUeigpKTtyLm1zPTA7bGV0IGE9bmV3IE9zKHRoaXMuX3N0YXRlcy5vbmNlLHRoaXMuZ2V0VHooKSk7cmV0dXJuIGEubXM9MCxyLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpfWxldCBlPW5ldyBPcyh0LHRoaXMuZ2V0VHooKSk7cmV0dXJuIGUubXM9MCxlLm1hdGNoKHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucyl9Z2V0UGF0dGVybigpe2lmKCF0aGlzLl9zdGF0ZXMub25jZSlyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdHRlcm4/dGhpcy5fc3RhdGVzLnBhdHRlcm4ucGF0dGVybjp2b2lkIDB9Z2V0T25jZSgpe3JldHVybiB0aGlzLl9zdGF0ZXMub25jZT90aGlzLl9zdGF0ZXMub25jZS5nZXREYXRlKCk6bnVsbH1pc1J1bm5pbmcoKXtsZXQgdD10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pLGU9IXRoaXMuX3N0YXRlcy5wYXVzZWQscj10aGlzLmZuIT09dm9pZCAwLGE9IXRoaXMuX3N0YXRlcy5raWxsO3JldHVybiBlJiZyJiZhJiZ0IT09bnVsbH1pc1N0b3BwZWQoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmtpbGx9aXNCdXN5KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5ibG9ja2luZ31jdXJyZW50UnVuKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuP3RoaXMuX3N0YXRlcy5jdXJyZW50UnVuLmdldERhdGUoKTpudWxsfXByZXZpb3VzUnVuKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wcmV2aW91c1J1bj90aGlzLl9zdGF0ZXMucHJldmlvdXNSdW4uZ2V0RGF0ZSgpOm51bGx9bXNUb05leHQodCl7bGV0IGU9dGhpcy5fbmV4dCh0KTtyZXR1cm4gZT90IGluc3RhbmNlb2YgT3N8fHQgaW5zdGFuY2VvZiBEYXRlP2UuZ2V0VGltZSgpLXQuZ2V0VGltZSgpOmUuZ2V0VGltZSgpLW5ldyBPcyh0KS5nZXRUaW1lKCk6bnVsbH1zdG9wKCl7dGhpcy5fc3RhdGVzLmtpbGw9ITAsdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0KTtsZXQgdD1YZy5pbmRleE9mKHRoaXMpO3Q+PTAmJlhnLnNwbGljZSh0LDEpfXBhdXNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITAsIXRoaXMuX3N0YXRlcy5raWxsfXJlc3VtZSgpe3JldHVybiB0aGlzLl9zdGF0ZXMucGF1c2VkPSExLCF0aGlzLl9zdGF0ZXMua2lsbH1zY2hlZHVsZSh0KXtpZih0JiZ0aGlzLmZuKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSXQgaXMgbm90IGFsbG93ZWQgdG8gc2NoZWR1bGUgdHdvIGZ1bmN0aW9ucyB1c2luZyB0aGUgc2FtZSBDcm9uZXIgaW5zdGFuY2UuIik7dCYmKHRoaXMuZm49dCk7bGV0IGU9dGhpcy5tc1RvTmV4dCgpLHI9dGhpcy5uZXh0UnVuKHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuKTtyZXR1cm4gZT09bnVsbHx8aXNOYU4oZSl8fHI9PT1udWxsP3RoaXM6KGU+TXl0JiYoZT1NeXQpLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT50aGlzLl9jaGVja1RyaWdnZXIociksZSksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0JiZ0aGlzLm9wdGlvbnMudW5yZWYmJlljYSh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpLHRoaXMpfWFzeW5jIF90cmlnZ2VyKHQpe3RoaXMuX3N0YXRlcy5ibG9ja2luZz0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bj1uZXcgT3Modm9pZCAwLHRoaXMuZ2V0VHooKSk7dHJ5e2lmKHRoaXMub3B0aW9ucy5jYXRjaCl0cnl7dGhpcy5mbiE9PXZvaWQgMCYmYXdhaXQgdGhpcy5mbih0aGlzLHRoaXMub3B0aW9ucy5jb250ZXh0KX1jYXRjaChlKXtpZihSayh0aGlzLm9wdGlvbnMuY2F0Y2gpKXRyeXt0aGlzLm9wdGlvbnMuY2F0Y2goZSx0aGlzKX1jYXRjaHt9fWVsc2UgdGhpcy5mbiE9PXZvaWQgMCYmYXdhaXQgdGhpcy5mbih0aGlzLHRoaXMub3B0aW9ucy5jb250ZXh0KX1maW5hbGx5e3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bj1uZXcgT3ModCx0aGlzLmdldFR6KCkpLHRoaXMuX3N0YXRlcy5ibG9ja2luZz0hMX19YXN5bmMgdHJpZ2dlcigpe2F3YWl0IHRoaXMuX3RyaWdnZXIoKX1ydW5zTGVmdCgpe3JldHVybiB0aGlzLl9zdGF0ZXMubWF4UnVuc31fY2hlY2tUcmlnZ2VyKHQpe2xldCBlPW5ldyBEYXRlLHI9IXRoaXMuX3N0YXRlcy5wYXVzZWQmJmUuZ2V0VGltZSgpPj10LmdldFRpbWUoKSxhPXRoaXMuX3N0YXRlcy5ibG9ja2luZyYmdGhpcy5vcHRpb25zLnByb3RlY3Q7ciYmIWE/KHRoaXMuX3N0YXRlcy5tYXhSdW5zIT09dm9pZCAwJiZ0aGlzLl9zdGF0ZXMubWF4UnVucy0tLHRoaXMuX3RyaWdnZXIoKSk6ciYmYSYmUmsodGhpcy5vcHRpb25zLnByb3RlY3QpJiZzZXRUaW1lb3V0KCgpPT50aGlzLm9wdGlvbnMucHJvdGVjdCh0aGlzKSwwKSx0aGlzLnNjaGVkdWxlKCl9X25leHQodCl7bGV0IGU9ISEodHx8dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pLHI9ITE7IXQmJnRoaXMub3B0aW9ucy5zdGFydEF0JiZ0aGlzLm9wdGlvbnMuaW50ZXJ2YWwmJihbdCxlXT10aGlzLl9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpLHI9IXQpLHQ9bmV3IE9zKHQsdGhpcy5nZXRUeigpKSx0aGlzLm9wdGlvbnMuc3RhcnRBdCYmdCYmdC5nZXRUaW1lKCk8dGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpJiYodD10aGlzLm9wdGlvbnMuc3RhcnRBdCk7bGV0IGE9dGhpcy5fc3RhdGVzLm9uY2V8fG5ldyBPcyh0LHRoaXMuZ2V0VHooKSk7cmV0dXJuIXImJmEhPT10aGlzLl9zdGF0ZXMub25jZSYmKGE9YS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLGUpKSx0aGlzLl9zdGF0ZXMub25jZSYmdGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPD10LmdldFRpbWUoKXx8YT09PW51bGx8fHRoaXMuX3N0YXRlcy5tYXhSdW5zIT09dm9pZCAwJiZ0aGlzLl9zdGF0ZXMubWF4UnVuczw9MHx8dGhpcy5fc3RhdGVzLmtpbGx8fHRoaXMub3B0aW9ucy5zdG9wQXQmJmEuZ2V0VGltZSgpPj10aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKT9udWxsOmF9X3ByZXZpb3VzKHQpe2xldCBlPW5ldyBPcyh0LHRoaXMuZ2V0VHooKSk7dGhpcy5vcHRpb25zLnN0b3BBdCYmZS5nZXRUaW1lKCk+dGhpcy5vcHRpb25zLnN0b3BBdC5nZXRUaW1lKCkmJihlPXRoaXMub3B0aW9ucy5zdG9wQXQpO2xldCByPW5ldyBPcyhlLHRoaXMuZ2V0VHooKSk7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldFRpbWUoKTxlLmdldFRpbWUoKT90aGlzLl9zdGF0ZXMub25jZTpudWxsOihyPXIuZGVjcmVtZW50KHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucykscj09PW51bGx8fHRoaXMub3B0aW9ucy5zdGFydEF0JiZyLmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCk/bnVsbDpyKX1fY2FsY3VsYXRlUHJldmlvdXNSdW4odCxlKXtsZXQgcj1uZXcgT3Modm9pZCAwLHRoaXMuZ2V0VHooKSksYT10O2lmKHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKTw9ci5nZXRUaW1lKCkpe2E9dGhpcy5vcHRpb25zLnN0YXJ0QXQ7bGV0IHM9YS5nZXRUaW1lKCkrdGhpcy5vcHRpb25zLmludGVydmFsKjFlMztmb3IoO3M8PXIuZ2V0VGltZSgpOylhPW5ldyBPcyhhLHRoaXMuZ2V0VHooKSkuaW5jcmVtZW50KHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucywhMCkscz1hLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2U9ITB9cmV0dXJuIGE9PT1udWxsJiYoYT12b2lkIDApLFthLGVdfX19KTt2YXIgRWllLEJrLEtjYSxIMWksUWMsSWllLFpuLEYxLEpnLGo3ZSxxMyxlYixQaWUsTmllLE9pZSxSaWUsamYsdGIsQWllLFR5dCxVN2UsVzdlLEx5dCxHN2Usa3I9dSgoKT0+e0VpZT03LEJrPTM2NS4yNDI1LEtjYT1NYXRoLnBvdygxMCw4KSoyNCo2MCo2MCoxZTMsSDFpPS1LY2EsUWM9NjA0OGU1LElpZT04NjRlNSxabj02ZTQsRjE9MzZlNSxKZz0xZTMsajdlPTUyNTYwMCxxMz00MzIwMCxlYj0xNDQwLFBpZT02MCxOaWU9MyxPaWU9MTIsUmllPTQsamY9MzYwMCx0Yj02MCxBaWU9amYqMjQsVHl0PUFpZSo3LFU3ZT1BaWUqMzY1LjI0MjUsVzdlPVU3ZS8xMixMeXQ9VzdlKjMsRzdlPVN5bWJvbC5mb3IoImNvbnN0cnVjdERhdGVGcm9tIil9KTtmdW5jdGlvbiBVZSh0LGUpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUpOnQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmRzdlIGluIHQ/dFtHN2VdKGUpOnQgaW5zdGFuY2VvZiBEYXRlP25ldyB0LmNvbnN0cnVjdG9yKGUpOm5ldyBEYXRlKGUpfXZhciBqMWksVnQ9dSgoKT0+e2tyKCk7aShVZSwiY29uc3RydWN0RnJvbSIpO2oxaT1VZX0pO2Z1bmN0aW9uIFNlKHQsZSl7cmV0dXJuIFVlKGV8fHQsdCl9dmFyIFkxaSxLZT11KCgpPT57VnQoKTtpKFNlLCJ0b0RhdGUiKTtZMWk9U2V9KTtmdW5jdGlvbiBScyh0LGUscil7bGV0IGE9U2UodCxyPy5pbik7cmV0dXJuIGlzTmFOKGUpP1VlKHI/LmlufHx0LE5hTik6KGUmJmEuc2V0RGF0ZShhLmdldERhdGUoKStlKSxhKX12YXIgSjFpLFhjPXUoKCk9PntWdCgpO0tlKCk7aShScywiYWRkRGF5cyIpO0oxaT1Sc30pO2Z1bmN0aW9uIEpjKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtpZihpc05hTihlKSlyZXR1cm4gVWUocj8uaW58fHQsTmFOKTtpZighZSlyZXR1cm4gYTtsZXQgcz1hLmdldERhdGUoKSxuPVVlKHI/LmlufHx0LGEuZ2V0VGltZSgpKTtuLnNldE1vbnRoKGEuZ2V0TW9udGgoKStlKzEsMCk7bGV0IG89bi5nZXREYXRlKCk7cmV0dXJuIHM+PW8/bjooYS5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCksbi5nZXRNb250aCgpLHMpLGEpfXZhciBpbGkscmI9dSgoKT0+e1Z0KCk7S2UoKTtpKEpjLCJhZGRNb250aHMiKTtpbGk9SmN9KTtmdW5jdGlvbiBWMyh0LGUscil7bGV0e3llYXJzOmE9MCxtb250aHM6cz0wLHdlZWtzOm49MCxkYXlzOm89MCxob3VyczpsPTAsbWludXRlczpjPTAsc2Vjb25kczpkPTB9PWUsZj1TZSh0LHI/LmluKSxwPXN8fGE/SmMoZixzK2EqMTIpOmYsaD1vfHxuP1JzKHAsbytuKjcpOnAsbT1jK2wqNjAsYj0oZCttKjYwKSoxZTM7cmV0dXJuIFVlKHI/LmlufHx0LCtoK2IpfXZhciB1bGksWTdlPXUoKCk9PntYYygpO3JiKCk7VnQoKTtLZSgpO2koVjMsImFkZCIpO3VsaT1WM30pO2Z1bmN0aW9uIEZpZSh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXREYXkoKT09PTZ9dmFyIG1saSxLN2U9dSgoKT0+e0tlKCk7aShGaWUsImlzU2F0dXJkYXkiKTttbGk9RmllfSk7ZnVuY3Rpb24gQmllKHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldERheSgpPT09MH12YXIgdmxpLFo3ZT11KCgpPT57S2UoKTtpKEJpZSwiaXNTdW5kYXkiKTt2bGk9QmllfSk7ZnVuY3Rpb24gZTAodCxlKXtsZXQgcj1TZSh0LGU/LmluKS5nZXREYXkoKTtyZXR1cm4gcj09PTB8fHI9PT02fXZhciBTbGksSGs9dSgoKT0+e0tlKCk7aShlMCwiaXNXZWVrZW5kIik7U2xpPWUwfSk7ZnVuY3Rpb24gSGllKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKSxzPWUwKGEscik7aWYoaXNOYU4oZSkpcmV0dXJuIFVlKHI/LmluLE5hTik7bGV0IG49YS5nZXRIb3VycygpLG89ZTwwPy0xOjEsbD1NYXRoLnRydW5jKGUvNSk7YS5zZXREYXRlKGEuZ2V0RGF0ZSgpK2wqNyk7bGV0IGM9TWF0aC5hYnMoZSU1KTtmb3IoO2M+MDspYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK28pLGUwKGEscil8fChjLT0xKTtyZXR1cm4gcyYmZTAoYSxyKSYmZSE9PTAmJihGaWUoYSxyKSYmYS5zZXREYXRlKGEuZ2V0RGF0ZSgpKyhvPDA/MjotMSkpLEJpZShhLHIpJiZhLnNldERhdGUoYS5nZXREYXRlKCkrKG88MD8xOi0yKSkpLGEuc2V0SG91cnMobiksYX12YXIgJGxpLFE3ZT11KCgpPT57VnQoKTtLN2UoKTtaN2UoKTtIaygpO0tlKCk7aShIaWUsImFkZEJ1c2luZXNzRGF5cyIpOyRsaT1IaWV9KTtmdW5jdGlvbiBqMyh0LGUscil7cmV0dXJuIFVlKHI/LmlufHx0LCtTZSh0KStlKX12YXIgTmxpLHFrPXUoKCk9PntWdCgpO0tlKCk7aShqMywiYWRkTWlsbGlzZWNvbmRzIik7TmxpPWozfSk7ZnVuY3Rpb24gcWllKHQsZSxyKXtyZXR1cm4gajModCxlKkYxLHIpfXZhciBIbGksWDdlPXUoKCk9PntxaygpO2tyKCk7aShxaWUsImFkZEhvdXJzIik7SGxpPXFpZX0pO2Z1bmN0aW9uIFRhKCl7cmV0dXJuIER5dH1mdW5jdGlvbiAkeXQodCl7RHl0PXR9dmFyIER5dCxRbj11KCgpPT57RHl0PXt9O2koVGEsImdldERlZmF1bHRPcHRpb25zIik7aSgkeXQsInNldERlZmF1bHRPcHRpb25zIil9KTtmdW5jdGlvbiBZYSh0LGUpe2xldCByPVRhKCksYT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPVNlKHQsZT8uaW4pLG49cy5nZXREYXkoKSxvPShuPGE/NzowKStuLWE7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKS1vKSxzLnNldEhvdXJzKDAsMCwwLDApLHN9dmFyIFlsaSxrMj11KCgpPT57UW4oKTtLZSgpO2koWWEsInN0YXJ0T2ZXZWVrIik7WWxpPVlhfSk7ZnVuY3Rpb24gYnModCxlKXtyZXR1cm4gWWEodCx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciBYbGksdDA9dSgoKT0+e2syKCk7aShicywic3RhcnRPZklTT1dlZWsiKTtYbGk9YnN9KTtmdW5jdGlvbiBFbyh0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpLHM9VWUociwwKTtzLnNldEZ1bGxZZWFyKGErMSwwLDQpLHMuc2V0SG91cnMoMCwwLDAsMCk7bGV0IG49YnMocyksbz1VZShyLDApO28uc2V0RnVsbFllYXIoYSwwLDQpLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9YnMobyk7cmV0dXJuIHIuZ2V0VGltZSgpPj1uLmdldFRpbWUoKT9hKzE6ci5nZXRUaW1lKCk+PWwuZ2V0VGltZSgpP2E6YS0xfXZhciBpMmksVTM9dSgoKT0+e1Z0KCk7dDAoKTtLZSgpO2koRW8sImdldElTT1dlZWtZZWFyIik7aTJpPUVvfSk7ZnVuY3Rpb24gRWkodCl7bGV0IGU9U2UodCkscj1uZXcgRGF0ZShEYXRlLlVUQyhlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpLGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSk7cmV0dXJuIHIuc2V0VVRDRnVsbFllYXIoZS5nZXRGdWxsWWVhcigpKSwrdC0rcn12YXIgT2Q9dSgoKT0+e0tlKCk7aShFaSwiZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIpfSk7ZnVuY3Rpb24gQnQodCwuLi5lKXtsZXQgcj1VZS5iaW5kKG51bGwsdHx8ZS5maW5kKGE9PnR5cGVvZiBhPT0ib2JqZWN0IikpO3JldHVybiBlLm1hcChyKX12YXIgT2E9dSgoKT0+e1Z0KCk7aShCdCwibm9ybWFsaXplRGF0ZXMiKX0pO2Z1bmN0aW9uIHIwKHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuIHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgaDJpLFZrPXUoKCk9PntLZSgpO2kocjAsInN0YXJ0T2ZEYXkiKTtoMmk9cjB9KTtmdW5jdGlvbiBjbih0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKSxuPXIwKGEpLG89cjAocyksbD0rbi1FaShuKSxjPStvLUVpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLWMpL0lpZSl9dmFyIHcyaSxSZD11KCgpPT57T2QoKTtPYSgpO2tyKCk7VmsoKTtpKGNuLCJkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMiKTt3Mmk9Y259KTtmdW5jdGlvbiBCMSh0LGUpe2xldCByPUVvKHQsZSksYT1VZShlPy5pbnx8dCwwKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihyLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKSxicyhhKX12YXIgXzJpLGFiPXUoKCk9PntWdCgpO1UzKCk7dDAoKTtpKEIxLCJzdGFydE9mSVNPV2Vla1llYXIiKTtfMmk9QjF9KTtmdW5jdGlvbiBWaWUodCxlLHIpe2xldCBhPVNlKHQscj8uaW4pLHM9Y24oYSxCMShhLHIpKSxuPVVlKHI/LmlufHx0LDApO3JldHVybiBuLnNldEZ1bGxZZWFyKGUsMCw0KSxuLnNldEhvdXJzKDAsMCwwLDApLGE9QjEobiksYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK3MpLGF9dmFyIEkyaSxKN2U9dSgoKT0+e1Z0KCk7UmQoKTthYigpO0tlKCk7aShWaWUsInNldElTT1dlZWtZZWFyIik7STJpPVZpZX0pO2Z1bmN0aW9uIGppZSh0LGUscil7cmV0dXJuIFZpZSh0LEVvKHQscikrZSxyKX12YXIgRjJpLGU5ZT11KCgpPT57VTMoKTtKN2UoKTtpKGppZSwiYWRkSVNPV2Vla1llYXJzIik7RjJpPWppZX0pO2Z1bmN0aW9uIGliKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRUaW1lKGEuZ2V0VGltZSgpK2UqWm4pLGF9dmFyIGoyaSxVaWU9dSgoKT0+e2tyKCk7S2UoKTtpKGliLCJhZGRNaW51dGVzIik7ajJpPWlifSk7ZnVuY3Rpb24gc2IodCxlLHIpe3JldHVybiBKYyh0LGUqMyxyKX12YXIgWTJpLFdpZT11KCgpPT57cmIoKTtpKHNiLCJhZGRRdWFydGVycyIpO1kyaT1zYn0pO2Z1bmN0aW9uIEdpZSh0LGUscil7cmV0dXJuIGozKHQsZSoxZTMscil9dmFyIFgyaSx0OWU9dSgoKT0+e3FrKCk7aShHaWUsImFkZFNlY29uZHMiKTtYMmk9R2llfSk7ZnVuY3Rpb24gVzModCxlLHIpe3JldHVybiBScyh0LGUqNyxyKX12YXIgcmNpLGprPXUoKCk9PntYYygpO2koVzMsImFkZFdlZWtzIik7cmNpPVczfSk7ZnVuY3Rpb24gWWllKHQsZSxyKXtyZXR1cm4gSmModCxlKjEyLHIpfXZhciBuY2kscjllPXUoKCk9PntyYigpO2koWWllLCJhZGRZZWFycyIpO25jaT1ZaWV9KTtmdW5jdGlvbiBBeXQodCxlLHIpe2xldFthLHNdPVsrU2UodC5zdGFydCxyPy5pbiksK1NlKHQuZW5kLHI/LmluKV0uc29ydCgobCxjKT0+bC1jKSxbbixvXT1bK1NlKGUuc3RhcnQscj8uaW4pLCtTZShlLmVuZCxyPy5pbildLnNvcnQoKGwsYyk9PmwtYyk7cmV0dXJuIHI/LmluY2x1c2l2ZT9hPD1vJiZuPD1zOmE8byYmbjxzfXZhciBkY2ksRXl0PXUoKCk9PntLZSgpO2koQXl0LCJhcmVJbnRlcnZhbHNPdmVybGFwcGluZyIpO2RjaT1BeXR9KTtmdW5jdGlvbiBLaWUodCxlKXtsZXQgcixhPWU/LmluO3JldHVybiB0LmZvckVhY2gocz0+eyFhJiZ0eXBlb2Ygcz09Im9iamVjdCImJihhPVVlLmJpbmQobnVsbCxzKSk7bGV0IG49U2UocyxhKTsoIXJ8fHI8bnx8aXNOYU4oK24pKSYmKHI9bil9KSxVZShhLHJ8fE5hTil9dmFyIG1jaSxhOWU9dSgoKT0+e1Z0KCk7S2UoKTtpKEtpZSwibWF4Iik7bWNpPUtpZX0pO2Z1bmN0aW9uIFppZSh0LGUpe2xldCByLGE9ZT8uaW47cmV0dXJuIHQuZm9yRWFjaChzPT57IWEmJnR5cGVvZiBzPT0ib2JqZWN0IiYmKGE9VWUuYmluZChudWxsLHMpKTtsZXQgbj1TZShzLGEpOyghcnx8cj5ufHxpc05hTigrbikpJiYocj1uKX0pLFVlKGEscnx8TmFOKX12YXIgeWNpLGk5ZT11KCgpPT57VnQoKTtLZSgpO2koWmllLCJtaW4iKTt5Y2k9WmllfSk7ZnVuY3Rpb24gSXl0KHQsZSxyKXtsZXRbYSxzLG5dPUJ0KHI/LmluLHQsZS5zdGFydCxlLmVuZCk7cmV0dXJuIFppZShbS2llKFthLHNdLHIpLG5dLHIpfXZhciB6Y2ksUHl0PXUoKCk9PntPYSgpO2E5ZSgpO2k5ZSgpO2koSXl0LCJjbGFtcCIpO3pjaT1JeXR9KTtmdW5jdGlvbiBRaWUodCxlKXtsZXQgcj0rU2UodCk7aWYoaXNOYU4ocikpcmV0dXJuIE5hTjtsZXQgYSxzO3JldHVybiBlLmZvckVhY2goKG4sbyk9PntsZXQgbD1TZShuKTtpZihpc05hTigrbCkpe2E9TmFOLHM9TmFOO3JldHVybn1sZXQgYz1NYXRoLmFicyhyLStsKTsoYT09bnVsbHx8YzxzKSYmKGE9byxzPWMpfSksYX12YXIgRGNpLHM5ZT11KCgpPT57S2UoKTtpKFFpZSwiY2xvc2VzdEluZGV4VG8iKTtEY2k9UWllfSk7ZnVuY3Rpb24gTnl0KHQsZSxyKXtsZXRbYSwuLi5zXT1CdChyPy5pbix0LC4uLmUpLG49UWllKGEscyk7aWYodHlwZW9mIG49PSJudW1iZXIiJiZpc05hTihuKSlyZXR1cm4gVWUoYSxOYU4pO2lmKG4hPT12b2lkIDApcmV0dXJuIHNbbl19dmFyIE5jaSxPeXQ9dSgoKT0+e09hKCk7czllKCk7VnQoKTtpKE55dCwiY2xvc2VzdFRvIik7TmNpPU55dH0pO2Z1bmN0aW9uIFhuKHQsZSl7bGV0IHI9K1NlKHQpLStTZShlKTtyZXR1cm4gcjwwPy0xOnI+MD8xOnJ9dmFyIEJjaSxVZj11KCgpPT57S2UoKTtpKFhuLCJjb21wYXJlQXNjIik7QmNpPVhufSk7ZnVuY3Rpb24gUnl0KHQsZSl7bGV0IHI9K1NlKHQpLStTZShlKTtyZXR1cm4gcj4wPy0xOnI8MD8xOnJ9dmFyIGpjaSxGeXQ9dSgoKT0+e0tlKCk7aShSeXQsImNvbXBhcmVEZXNjIik7amNpPVJ5dH0pO2Z1bmN0aW9uIElyKHQpe3JldHVybiBVZSh0LERhdGUubm93KCkpfXZhciBZY2ksRnM9dSgoKT0+e1Z0KCk7aShJciwiY29uc3RydWN0Tm93Iik7WWNpPUlyfSk7ZnVuY3Rpb24gQnl0KHQpe2xldCBlPU1hdGgudHJ1bmModC83KTtyZXR1cm4gZT09PTA/MDplfXZhciBYY2ksSHl0PXUoKCk9PntrcigpO2koQnl0LCJkYXlzVG9XZWVrcyIpO1hjaT1CeXR9KTtmdW5jdGlvbiBhMCh0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKTtyZXR1cm4rcjAoYSk9PStyMChzKX12YXIgYTBpLG5iPXUoKCk9PntPYSgpO1ZrKCk7aShhMCwiaXNTYW1lRGF5Iik7YTBpPWEwfSk7ZnVuY3Rpb24gWGllKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIHQ9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIG4waSxuOWU9dSgoKT0+e2koWGllLCJpc0RhdGUiKTtuMGk9WGllfSk7ZnVuY3Rpb24gX24odCl7cmV0dXJuISghWGllKHQpJiZ0eXBlb2YgdCE9Im51bWJlciJ8fGlzTmFOKCtTZSh0KSkpfXZhciB1MGksRmQ9dSgoKT0+e245ZSgpO0tlKCk7aShfbiwiaXNWYWxpZCIpO3UwaT1fbn0pO2Z1bmN0aW9uIHF5dCh0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKTtpZighX24oYSl8fCFfbihzKSlyZXR1cm4gTmFOO2xldCBuPWNuKGEscyksbz1uPDA/LTE6MSxsPU1hdGgudHJ1bmMobi83KSxjPWwqNSxkPVJzKHMsbCo3KTtmb3IoOyFhMChhLGQpOyljKz1lMChkLHIpPzA6byxkPVJzKGQsbyk7cmV0dXJuIGM9PT0wPzA6Y312YXIgeTBpLFZ5dD11KCgpPT57T2EoKTtYYygpO1JkKCk7bmIoKTtGZCgpO0hrKCk7aShxeXQsImRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5cyIpO3kwaT1xeXR9KTtmdW5jdGlvbiBKaWUodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSk7cmV0dXJuIEVvKGEsciktRW8ocyxyKX12YXIgQzBpLG85ZT11KCgpPT57T2EoKTtVMygpO2koSmllLCJkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFycyIpO0MwaT1KaWV9KTtmdW5jdGlvbiBqeXQodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1icyhhKSxvPWJzKHMpLGw9K24tRWkobiksYz0rby1FaShvKTtyZXR1cm4gTWF0aC5yb3VuZCgobC1jKS9RYyl9dmFyIEEwaSxVeXQ9dSgoKT0+e09kKCk7T2EoKTtrcigpO3QwKCk7aShqeXQsImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3MiKTtBMGk9anl0fSk7ZnVuY3Rpb24gV2YodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1hLmdldEZ1bGxZZWFyKCktcy5nZXRGdWxsWWVhcigpLG89YS5nZXRNb250aCgpLXMuZ2V0TW9udGgoKTtyZXR1cm4gbioxMitvfXZhciBOMGksZXNlPXUoKCk9PntPYSgpO2koV2YsImRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzIik7TjBpPVdmfSk7ZnVuY3Rpb24gVWsodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhyLmdldE1vbnRoKCkvMykrMX12YXIgQjBpLGw5ZT11KCgpPT57S2UoKTtpKFVrLCJnZXRRdWFydGVyIik7QjBpPVVrfSk7ZnVuY3Rpb24gb2IodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1hLmdldEZ1bGxZZWFyKCktcy5nZXRGdWxsWWVhcigpLG89VWsoYSktVWsocyk7cmV0dXJuIG4qNCtvfXZhciBVMGksYzllPXUoKCk9PntPYSgpO2w5ZSgpO2kob2IsImRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnMiKTtVMGk9b2J9KTtmdW5jdGlvbiBHZih0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKSxuPVlhKGEsciksbz1ZYShzLHIpLGw9K24tRWkobiksYz0rby1FaShvKTtyZXR1cm4gTWF0aC5yb3VuZCgobC1jKS9RYyl9dmFyIFgwaSx0c2U9dSgoKT0+e09kKCk7T2EoKTtrcigpO2syKCk7aShHZiwiZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyIpO1gwaT1HZn0pO2Z1bmN0aW9uIEczKHQsZSxyKXtsZXRbYSxzXT1CdChyPy5pbix0LGUpO3JldHVybiBhLmdldEZ1bGxZZWFyKCktcy5nZXRGdWxsWWVhcigpfXZhciByZGkscnNlPXUoKCk9PntPYSgpO2koRzMsImRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMiKTtyZGk9RzN9KTtmdW5jdGlvbiBsYih0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKSxuPVd5dChhLHMpLG89TWF0aC5hYnMoY24oYSxzKSk7YS5zZXREYXRlKGEuZ2V0RGF0ZSgpLW4qbyk7bGV0IGw9KyhXeXQoYSxzKT09PS1uKSxjPW4qKG8tbCk7cmV0dXJuIGM9PT0wPzA6Y31mdW5jdGlvbiBXeXQodCxlKXtsZXQgcj10LmdldEZ1bGxZZWFyKCktZS5nZXRGdWxsWWVhcigpfHx0LmdldE1vbnRoKCktZS5nZXRNb250aCgpfHx0LmdldERhdGUoKS1lLmdldERhdGUoKXx8dC5nZXRIb3VycygpLWUuZ2V0SG91cnMoKXx8dC5nZXRNaW51dGVzKCktZS5nZXRNaW51dGVzKCl8fHQuZ2V0U2Vjb25kcygpLWUuZ2V0U2Vjb25kcygpfHx0LmdldE1pbGxpc2Vjb25kcygpLWUuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIHI8MD8tMTpyPjA/MTpyfXZhciBvZGksYXNlPXUoKCk9PntPYSgpO1JkKCk7aShsYiwiZGlmZmVyZW5jZUluRGF5cyIpO2koV3l0LCJjb21wYXJlTG9jYWxBc2MiKTtvZGk9bGJ9KTtmdW5jdGlvbiBKbih0KXtyZXR1cm4gZT0+e2xldCBhPSh0P01hdGhbdF06TWF0aC50cnVuYykoZSk7cmV0dXJuIGE9PT0wPzA6YX19dmFyIEJkPXUoKCk9PntpKEpuLCJnZXRSb3VuZGluZ01ldGhvZCIpfSk7ZnVuY3Rpb24gWWYodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj0oK2EtK3MpL0YxO3JldHVybiBKbihyPy5yb3VuZGluZ01ldGhvZCkobil9dmFyIG1kaSxpc2U9dSgoKT0+e0JkKCk7T2EoKTtrcigpO2koWWYsImRpZmZlcmVuY2VJbkhvdXJzIik7bWRpPVlmfSk7ZnVuY3Rpb24gc3NlKHQsZSxyKXtyZXR1cm4gamllKHQsLWUscil9dmFyIHZkaSxkOWU9dSgoKT0+e2U5ZSgpO2koc3NlLCJzdWJJU09XZWVrWWVhcnMiKTt2ZGk9c3NlfSk7ZnVuY3Rpb24gR3l0KHQsZSxyKXtsZXRbYSxzXT1CdChyPy5pbix0LGUpLG49WG4oYSxzKSxvPU1hdGguYWJzKEppZShhLHMscikpLGw9c3NlKGEsbipvLHIpLGM9KyhYbihsLHMpPT09LW4pLGQ9biooby1jKTtyZXR1cm4gZD09PTA/MDpkfXZhciB6ZGksWXl0PXUoKCk9PntPYSgpO1VmKCk7bzllKCk7ZDllKCk7aShHeXQsImRpZmZlcmVuY2VJbklTT1dlZWtZZWFycyIpO3pkaT1HeXR9KTtmdW5jdGlvbiBjYih0LGUpe3JldHVybitTZSh0KS0rU2UoZSl9dmFyIERkaSxuc2U9dSgoKT0+e0tlKCk7aShjYiwiZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzIik7RGRpPWNifSk7ZnVuY3Rpb24gS2YodCxlLHIpe2xldCBhPWNiKHQsZSkvWm47cmV0dXJuIEpuKHI/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgTmRpLG9zZT11KCgpPT57QmQoKTtrcigpO25zZSgpO2koS2YsImRpZmZlcmVuY2VJbk1pbnV0ZXMiKTtOZGk9S2Z9KTtmdW5jdGlvbiBkYih0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiByLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgQmRpLGxzZT11KCgpPT57S2UoKTtpKGRiLCJlbmRPZkRheSIpO0JkaT1kYn0pO2Z1bmN0aW9uIHViKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldE1vbnRoKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoci5nZXRGdWxsWWVhcigpLGErMSwwKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgamRpLGNzZT11KCgpPT57S2UoKTtpKHViLCJlbmRPZk1vbnRoIik7amRpPXVifSk7ZnVuY3Rpb24gZHNlKHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuK2RiKHIsZSk9PSt1YihyLGUpfXZhciBaZGksdTllPXUoKCk9Pntsc2UoKTtjc2UoKTtLZSgpO2koZHNlLCJpc0xhc3REYXlPZk1vbnRoIik7WmRpPWRzZX0pO2Z1bmN0aW9uIFkzKHQsZSxyKXtsZXRbYSxzLG5dPUJ0KHI/LmluLHQsdCxlKSxvPVhuKHMsbiksbD1NYXRoLmFicyhXZihzLG4pKTtpZihsPDEpcmV0dXJuIDA7cy5nZXRNb250aCgpPT09MSYmcy5nZXREYXRlKCk+MjcmJnMuc2V0RGF0ZSgzMCkscy5zZXRNb250aChzLmdldE1vbnRoKCktbypsKTtsZXQgYz1YbihzLG4pPT09LW87ZHNlKGEpJiZsPT09MSYmWG4oYSxuKT09PTEmJihjPSExKTtsZXQgZD1vKihsLStjKTtyZXR1cm4gZD09PTA/MDpkfXZhciBhNGksV2s9dSgoKT0+e09hKCk7VWYoKTtlc2UoKTt1OWUoKTtpKFkzLCJkaWZmZXJlbmNlSW5Nb250aHMiKTthNGk9WTN9KTtmdW5jdGlvbiBLeXQodCxlLHIpe2xldCBhPVkzKHQsZSxyKS8zO3JldHVybiBKbihyPy5yb3VuZGluZ01ldGhvZCkoYSl9dmFyIGw0aSxaeXQ9dSgoKT0+e0JkKCk7V2soKTtpKEt5dCwiZGlmZmVyZW5jZUluUXVhcnRlcnMiKTtsNGk9S3l0fSk7ZnVuY3Rpb24gaTAodCxlLHIpe2xldCBhPWNiKHQsZSkvMWUzO3JldHVybiBKbihyPy5yb3VuZGluZ01ldGhvZCkoYSl9dmFyIGY0aSxHaz11KCgpPT57QmQoKTtuc2UoKTtpKGkwLCJkaWZmZXJlbmNlSW5TZWNvbmRzIik7ZjRpPWkwfSk7ZnVuY3Rpb24gUXl0KHQsZSxyKXtsZXQgYT1sYih0LGUscikvNztyZXR1cm4gSm4ocj8ucm91bmRpbmdNZXRob2QpKGEpfXZhciB4NGksWHl0PXUoKCk9PntCZCgpO2FzZSgpO2koUXl0LCJkaWZmZXJlbmNlSW5XZWVrcyIpO3g0aT1ReXR9KTtmdW5jdGlvbiB1c2UodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1YbihhLHMpLG89TWF0aC5hYnMoRzMoYSxzKSk7YS5zZXRGdWxsWWVhcigxNTg0KSxzLnNldEZ1bGxZZWFyKDE1ODQpO2xldCBsPVhuKGEscyk9PT0tbixjPW4qKG8tK2wpO3JldHVybiBjPT09MD8wOmN9dmFyIE00aSxwOWU9dSgoKT0+e09hKCk7VWYoKTtyc2UoKTtpKHVzZSwiZGlmZmVyZW5jZUluWWVhcnMiKTtNNGk9dXNlfSk7ZnVuY3Rpb24gZG4odCxlKXtsZXRbcixhXT1CdCh0LGUuc3RhcnQsZS5lbmQpO3JldHVybntzdGFydDpyLGVuZDphfX12YXIgczA9dSgoKT0+e09hKCk7aShkbiwibm9ybWFsaXplSW50ZXJ2YWwiKX0pO2Z1bmN0aW9uIHBzZSh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rcjorYSxvPXM/YTpyO28uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChVZShyLG8pKSxvLnNldERhdGUoby5nZXREYXRlKCkrbCksby5zZXRIb3VycygwLDAsMCwwKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBBNGksZjllPXUoKCk9PntzMCgpO1Z0KCk7aShwc2UsImVhY2hEYXlPZkludGVydmFsIik7QTRpPXBzZX0pO2Z1bmN0aW9uIEp5dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rcjorYSxvPXM/YTpyO28uc2V0TWludXRlcygwLDAsMCk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChVZShyLG8pKSxvLnNldEhvdXJzKG8uZ2V0SG91cnMoKStsKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBPNGksZXd0PXUoKCk9PntzMCgpO1Z0KCk7aShKeXQsImVhY2hIb3VyT2ZJbnRlcnZhbCIpO080aT1KeXR9KTtmdW5jdGlvbiB0d3QodCxlKXtsZXR7c3RhcnQ6cixlbmQ6YX09ZG4oZT8uaW4sdCk7ci5zZXRTZWNvbmRzKDAsMCk7bGV0IHM9K3I+K2Esbj1zPytyOithLG89cz9hOnIsbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscz0hcyk7bGV0IGM9W107Zm9yKDsrbzw9bjspYy5wdXNoKFVlKHIsbykpLG89aWIobyxsKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBWNGkscnd0PXUoKCk9PntzMCgpO1VpZSgpO1Z0KCk7aSh0d3QsImVhY2hNaW51dGVPZkludGVydmFsIik7VjRpPXR3dH0pO2Z1bmN0aW9uIGF3dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rcjorYSxvPXM/YTpyO28uc2V0SG91cnMoMCwwLDAsMCksby5zZXREYXRlKDEpO2xldCBsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxzPSFzKTtsZXQgYz1bXTtmb3IoOytvPD1uOyljLnB1c2goVWUocixvKSksby5zZXRNb250aChvLmdldE1vbnRoKCkrbCk7cmV0dXJuIHM/Yy5yZXZlcnNlKCk6Y312YXIgWTRpLGl3dD11KCgpPT57czAoKTtWdCgpO2koYXd0LCJlYWNoTW9udGhPZkludGVydmFsIik7WTRpPWF3dH0pO2Z1bmN0aW9uIG4wKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldE1vbnRoKCkscz1hLWElMztyZXR1cm4gci5zZXRNb250aChzLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgWDRpLGZzZT11KCgpPT57S2UoKTtpKG4wLCJzdGFydE9mUXVhcnRlciIpO1g0aT1uMH0pO2Z1bmN0aW9uIHN3dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rbjAocik6K24wKGEpLG89cz9uMChhKTpuMChyKSxsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxzPSFzKTtsZXQgYz1bXTtmb3IoOytvPD1uOyljLnB1c2goVWUocixvKSksbz1zYihvLGwpO3JldHVybiBzP2MucmV2ZXJzZSgpOmN9dmFyIHMzaSxud3Q9dSgoKT0+e3MwKCk7V2llKCk7VnQoKTtmc2UoKTtpKHN3dCwiZWFjaFF1YXJ0ZXJPZkludGVydmFsIik7czNpPXN3dH0pO2Z1bmN0aW9uIG93dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz9ZYShhLGUpOllhKHIsZSksbz1zP1lhKHIsZSk6WWEoYSxlKTtuLnNldEhvdXJzKDE1KSxvLnNldEhvdXJzKDE1KTtsZXQgbD0rby5nZXRUaW1lKCksYz1uLGQ9ZT8uc3RlcD8/MTtpZighZClyZXR1cm5bXTtkPDAmJihkPS1kLHM9IXMpO2xldCBmPVtdO2Zvcig7K2M8PWw7KWMuc2V0SG91cnMoMCksZi5wdXNoKFVlKHIsYykpLGM9VzMoYyxkKSxjLnNldEhvdXJzKDE1KTtyZXR1cm4gcz9mLnJldmVyc2UoKTpmfXZhciBwM2ksbHd0PXUoKCk9PntzMCgpO2prKCk7VnQoKTtrMigpO2kob3d0LCJlYWNoV2Vla09mSW50ZXJ2YWwiKTtwM2k9b3d0fSk7ZnVuY3Rpb24gcGIodCxlKXtsZXR7c3RhcnQ6cixlbmQ6YX09ZG4oZT8uaW4sdCkscz1wc2Uoe3N0YXJ0OnIsZW5kOmF9LGUpLG49W10sbz0wO2Zvcig7bzxzLmxlbmd0aDspe2xldCBsPXNbbysrXTtlMChsKSYmbi5wdXNoKFVlKHIsbCkpfXJldHVybiBufXZhciB2M2ksaHNlPXUoKCk9PntzMCgpO1Z0KCk7ZjllKCk7SGsoKTtpKHBiLCJlYWNoV2Vla2VuZE9mSW50ZXJ2YWwiKTt2M2k9cGJ9KTtmdW5jdGlvbiBLMyh0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiByLnNldERhdGUoMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBTM2ksWWs9dSgoKT0+e0tlKCk7aShLMywic3RhcnRPZk1vbnRoIik7UzNpPUszfSk7ZnVuY3Rpb24gY3d0KHQsZSl7bGV0IHI9SzModCxlKSxhPXViKHQsZSk7cmV0dXJuIHBiKHtzdGFydDpyLGVuZDphfSxlKX12YXIgTDNpLGR3dD11KCgpPT57aHNlKCk7Y3NlKCk7WWsoKTtpKGN3dCwiZWFjaFdlZWtlbmRPZk1vbnRoIik7TDNpPWN3dH0pO2Z1bmN0aW9uIG1zZSh0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpO3JldHVybiByLnNldEZ1bGxZZWFyKGErMSwwLDApLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBFM2ksaDllPXUoKCk9PntLZSgpO2kobXNlLCJlbmRPZlllYXIiKTtFM2k9bXNlfSk7ZnVuY3Rpb24gZmIodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksMCwxKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIE8zaSxnc2U9dSgoKT0+e0tlKCk7aShmYiwic3RhcnRPZlllYXIiKTtPM2k9ZmJ9KTtmdW5jdGlvbiB1d3QodCxlKXtsZXQgcj1mYih0LGUpLGE9bXNlKHQsZSk7cmV0dXJuIHBiKHtzdGFydDpyLGVuZDphfSxlKX12YXIgVjNpLHB3dD11KCgpPT57aHNlKCk7aDllKCk7Z3NlKCk7aSh1d3QsImVhY2hXZWVrZW5kT2ZZZWFyIik7VjNpPXV3dH0pO2Z1bmN0aW9uIGZ3dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rcjorYSxvPXM/YTpyO28uc2V0SG91cnMoMCwwLDAsMCksby5zZXRNb250aCgwLDEpO2xldCBsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxzPSFzKTtsZXQgYz1bXTtmb3IoOytvPD1uOyljLnB1c2goVWUocixvKSksby5zZXRGdWxsWWVhcihvLmdldEZ1bGxZZWFyKCkrbCk7cmV0dXJuIHM/Yy5yZXZlcnNlKCk6Y312YXIgWTNpLGh3dD11KCgpPT57czAoKTtWdCgpO2koZnd0LCJlYWNoWWVhck9mSW50ZXJ2YWwiKTtZM2k9Znd0fSk7ZnVuY3Rpb24gbXd0KHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz05K01hdGguZmxvb3IoYS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIocywxMSwzMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIFgzaSxnd3Q9dSgoKT0+e0tlKCk7aShtd3QsImVuZE9mRGVjYWRlIik7WDNpPW13dH0pO2Z1bmN0aW9uIGJ3dCh0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiByLnNldE1pbnV0ZXMoNTksNTksOTk5KSxyfXZhciBydWkseHd0PXUoKCk9PntLZSgpO2koYnd0LCJlbmRPZkhvdXIiKTtydWk9Ynd0fSk7ZnVuY3Rpb24gYnNlKHQsZSl7bGV0IHI9VGEoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHM9U2UodCxlPy5pbiksbj1zLmdldERheSgpLG89KG48YT8tNzowKSs2LShuLWEpO3JldHVybiBzLnNldERhdGUocy5nZXREYXRlKCkrbykscy5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHN9dmFyIG91aSxtOWU9dSgoKT0+e1FuKCk7S2UoKTtpKGJzZSwiZW5kT2ZXZWVrIik7b3VpPWJzZX0pO2Z1bmN0aW9uIHZ3dCh0LGUpe3JldHVybiBic2UodCx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciB1dWkseXd0PXUoKCk9PnttOWUoKTtpKHZ3dCwiZW5kT2ZJU09XZWVrIik7dXVpPXZ3dH0pO2Z1bmN0aW9uIHd3dCh0LGUpe2xldCByPUVvKHQsZSksYT1VZShlPy5pbnx8dCwwKTthLnNldEZ1bGxZZWFyKHIrMSwwLDQpLGEuc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9YnMoYSxlKTtyZXR1cm4gcy5zZXRNaWxsaXNlY29uZHMocy5nZXRNaWxsaXNlY29uZHMoKS0xKSxzfXZhciBidWksa3d0PXUoKCk9PntWdCgpO1UzKCk7dDAoKTtpKHd3dCwiZW5kT2ZJU09XZWVrWWVhciIpO2J1aT13d3R9KTtmdW5jdGlvbiBTd3QodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKDU5LDk5OSkscn12YXIgd3VpLE13dD11KCgpPT57S2UoKTtpKFN3dCwiZW5kT2ZNaW51dGUiKTt3dWk9U3d0fSk7ZnVuY3Rpb24gQ3d0KHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldE1vbnRoKCkscz1hLWElMyszO3JldHVybiByLnNldE1vbnRoKHMsMCksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEN1aSx6d3Q9dSgoKT0+e0tlKCk7aShDd3QsImVuZE9mUXVhcnRlciIpO0N1aT1Dd3R9KTtmdW5jdGlvbiBfd3QodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoOTk5KSxyfXZhciBMdWksVHd0PXUoKCk9PntLZSgpO2koX3d0LCJlbmRPZlNlY29uZCIpO0x1aT1fd3R9KTtmdW5jdGlvbiBMd3QodCl7cmV0dXJuIGRiKERhdGUubm93KCksdCl9dmFyIEV1aSxEd3Q9dSgoKT0+e2xzZSgpO2koTHd0LCJlbmRPZlRvZGF5Iik7RXVpPUx3dH0pO2Z1bmN0aW9uICR3dCh0KXtsZXQgZT1Jcih0Py5pbikscj1lLmdldEZ1bGxZZWFyKCksYT1lLmdldE1vbnRoKCkscz1lLmdldERhdGUoKSxuPUlyKHQ/LmluKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihyLGEscysxKSxuLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdD8uaW4/dC5pbihuKTpufXZhciBPdWksQXd0PXUoKCk9PntGcygpO2koJHd0LCJlbmRPZlRvbW9ycm93Iik7T3VpPSR3dH0pO2Z1bmN0aW9uIEV3dCh0KXtsZXQgZT1Jcih0Py5pbikscj1VZSh0Py5pbiwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpLTEpLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBxdWksSXd0PXUoKCk9PntWdCgpO0ZzKCk7aShFd3QsImVuZE9mWWVzdGVyZGF5Iik7cXVpPUV3dH0pO3ZhciBaY2EsUHd0LE53dD11KCgpPT57WmNhPXtsZXNzVGhhblhTZWNvbmRzOntvbmU6Imxlc3MgdGhhbiBhIHNlY29uZCIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gc2Vjb25kcyJ9LHhTZWNvbmRzOntvbmU6IjEgc2Vjb25kIixvdGhlcjoie3tjb3VudH19IHNlY29uZHMifSxoYWxmQU1pbnV0ZToiaGFsZiBhIG1pbnV0ZSIsbGVzc1RoYW5YTWludXRlczp7b25lOiJsZXNzIHRoYW4gYSBtaW51dGUiLG90aGVyOiJsZXNzIHRoYW4ge3tjb3VudH19IG1pbnV0ZXMifSx4TWludXRlczp7b25lOiIxIG1pbnV0ZSIsb3RoZXI6Int7Y291bnR9fSBtaW51dGVzIn0sYWJvdXRYSG91cnM6e29uZToiYWJvdXQgMSBob3VyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IGhvdXJzIn0seEhvdXJzOntvbmU6IjEgaG91ciIsb3RoZXI6Int7Y291bnR9fSBob3VycyJ9LHhEYXlzOntvbmU6IjEgZGF5IixvdGhlcjoie3tjb3VudH19IGRheXMifSxhYm91dFhXZWVrczp7b25lOiJhYm91dCAxIHdlZWsiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gd2Vla3MifSx4V2Vla3M6e29uZToiMSB3ZWVrIixvdGhlcjoie3tjb3VudH19IHdlZWtzIn0sYWJvdXRYTW9udGhzOntvbmU6ImFib3V0IDEgbW9udGgiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gbW9udGhzIn0seE1vbnRoczp7b25lOiIxIG1vbnRoIixvdGhlcjoie3tjb3VudH19IG1vbnRocyJ9LGFib3V0WFllYXJzOntvbmU6ImFib3V0IDEgeWVhciIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB5ZWFycyJ9LHhZZWFyczp7b25lOiIxIHllYXIiLG90aGVyOiJ7e2NvdW50fX0geWVhcnMifSxvdmVyWFllYXJzOntvbmU6Im92ZXIgMSB5ZWFyIixvdGhlcjoib3ZlciB7e2NvdW50fX0geWVhcnMifSxhbG1vc3RYWWVhcnM6e29uZToiYWxtb3N0IDEgeWVhciIsb3RoZXI6ImFsbW9zdCB7e2NvdW50fX0geWVhcnMifX0sUHd0PWkoKHQsZSxyKT0+e2xldCBhLHM9WmNhW3RdO3JldHVybiB0eXBlb2Ygcz09InN0cmluZyI/YT1zOmU9PT0xP2E9cy5vbmU6YT1zLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsZS50b1N0cmluZygpKSxyPy5hZGRTdWZmaXg/ci5jb21wYXJpc29uJiZyLmNvbXBhcmlzb24+MD8iaW4gIithOmErIiBhZ28iOmF9LCJmb3JtYXREaXN0YW5jZSIpfSk7ZnVuY3Rpb24geHNlKHQpe3JldHVybihlPXt9KT0+e2xldCByPWUud2lkdGg/U3RyaW5nKGUud2lkdGgpOnQuZGVmYXVsdFdpZHRoO3JldHVybiB0LmZvcm1hdHNbcl18fHQuZm9ybWF0c1t0LmRlZmF1bHRXaWR0aF19fXZhciBPd3Q9dSgoKT0+e2koeHNlLCJidWlsZEZvcm1hdExvbmdGbiIpfSk7dmFyIFFjYSxYY2EsSmNhLFJ3dCxGd3Q9dSgoKT0+e093dCgpO1FjYT17ZnVsbDoiRUVFRSwgTU1NTSBkbywgeSIsbG9uZzoiTU1NTSBkbywgeSIsbWVkaXVtOiJNTU0gZCwgeSIsc2hvcnQ6Ik1NL2RkL3l5eXkifSxYY2E9e2Z1bGw6Img6bW06c3MgYSB6enp6Iixsb25nOiJoOm1tOnNzIGEgeiIsbWVkaXVtOiJoOm1tOnNzIGEiLHNob3J0OiJoOm1tIGEifSxKY2E9e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0sUnd0PXtkYXRlOnhzZSh7Zm9ybWF0czpRY2EsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLHRpbWU6eHNlKHtmb3JtYXRzOlhjYSxkZWZhdWx0V2lkdGg6ImZ1bGwifSksZGF0ZVRpbWU6eHNlKHtmb3JtYXRzOkpjYSxkZWZhdWx0V2lkdGg6ImZ1bGwifSl9fSk7dmFyIGUwYSxCd3QsSHd0PXUoKCk9PntlMGE9e2xhc3RXZWVrOiInbGFzdCcgZWVlZSAnYXQnIHAiLHllc3RlcmRheToiJ3llc3RlcmRheSBhdCcgcCIsdG9kYXk6Iid0b2RheSBhdCcgcCIsdG9tb3Jyb3c6Iid0b21vcnJvdyBhdCcgcCIsbmV4dFdlZWs6ImVlZWUgJ2F0JyBwIixvdGhlcjoiUCJ9LEJ3dD1pKCh0LGUscixhKT0+ZTBhW3RdLCJmb3JtYXRSZWxhdGl2ZSIpfSk7ZnVuY3Rpb24gaGIodCl7cmV0dXJuKGUscik9PntsZXQgYT1yPy5jb250ZXh0P1N0cmluZyhyLmNvbnRleHQpOiJzdGFuZGFsb25lIixzO2lmKGE9PT0iZm9ybWF0dGluZyImJnQuZm9ybWF0dGluZ1ZhbHVlcyl7bGV0IG89dC5kZWZhdWx0Rm9ybWF0dGluZ1dpZHRofHx0LmRlZmF1bHRXaWR0aCxsPXI/LndpZHRoP1N0cmluZyhyLndpZHRoKTpvO3M9dC5mb3JtYXR0aW5nVmFsdWVzW2xdfHx0LmZvcm1hdHRpbmdWYWx1ZXNbb119ZWxzZXtsZXQgbz10LmRlZmF1bHRXaWR0aCxsPXI/LndpZHRoP1N0cmluZyhyLndpZHRoKTp0LmRlZmF1bHRXaWR0aDtzPXQudmFsdWVzW2xdfHx0LnZhbHVlc1tvXX1sZXQgbj10LmFyZ3VtZW50Q2FsbGJhY2s/dC5hcmd1bWVudENhbGxiYWNrKGUpOmU7cmV0dXJuIHNbbl19fXZhciBxd3Q9dSgoKT0+e2koaGIsImJ1aWxkTG9jYWxpemVGbiIpfSk7dmFyIHQwYSxyMGEsYTBhLGkwYSxzMGEsbjBhLG8wYSxWd3Qsand0PXUoKCk9Pntxd3QoKTt0MGE9e25hcnJvdzpbIkIiLCJBIl0sYWJicmV2aWF0ZWQ6WyJCQyIsIkFEIl0sd2lkZTpbIkJlZm9yZSBDaHJpc3QiLCJBbm5vIERvbWluaSJdfSxyMGE9e25hcnJvdzpbIjEiLCIyIiwiMyIsIjQiXSxhYmJyZXZpYXRlZDpbIlExIiwiUTIiLCJRMyIsIlE0Il0sd2lkZTpbIjFzdCBxdWFydGVyIiwiMm5kIHF1YXJ0ZXIiLCIzcmQgcXVhcnRlciIsIjR0aCBxdWFydGVyIl19LGEwYT17bmFycm93OlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sYWJicmV2aWF0ZWQ6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSx3aWRlOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0saTBhPXtuYXJyb3c6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sc2hvcnQ6WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGFiYnJldmlhdGVkOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sd2lkZTpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LHMwYT17bmFycm93OnthbToiYSIscG06InAiLG1pZG5pZ2h0OiJtaSIsbm9vbjoibiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LGFiYnJldmlhdGVkOnthbToiQU0iLHBtOiJQTSIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sd2lkZTp7YW06ImEubS4iLHBtOiJwLm0uIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifX0sbjBhPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9fSxvMGE9aSgodCxlKT0+e2xldCByPU51bWJlcih0KSxhPXIlMTAwO2lmKGE+MjB8fGE8MTApc3dpdGNoKGElMTApe2Nhc2UgMTpyZXR1cm4gcisic3QiO2Nhc2UgMjpyZXR1cm4gcisibmQiO2Nhc2UgMzpyZXR1cm4gcisicmQifXJldHVybiByKyJ0aCJ9LCJvcmRpbmFsTnVtYmVyIiksVnd0PXtvcmRpbmFsTnVtYmVyOm8wYSxlcmE6aGIoe3ZhbHVlczp0MGEsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLHF1YXJ0ZXI6aGIoe3ZhbHVlczpyMGEsZGVmYXVsdFdpZHRoOiJ3aWRlIixhcmd1bWVudENhbGxiYWNrOmkodD0+dC0xLCJhcmd1bWVudENhbGxiYWNrIil9KSxtb250aDpoYih7dmFsdWVzOmEwYSxkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5OmhiKHt2YWx1ZXM6aTBhLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXlQZXJpb2Q6aGIoe3ZhbHVlczpzMGEsZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOm4wYSxkZWZhdWx0Rm9ybWF0dGluZ1dpZHRoOiJ3aWRlIn0pfX0pO2Z1bmN0aW9uIG1iKHQpe3JldHVybihlLHI9e30pPT57bGV0IGE9ci53aWR0aCxzPWEmJnQubWF0Y2hQYXR0ZXJuc1thXXx8dC5tYXRjaFBhdHRlcm5zW3QuZGVmYXVsdE1hdGNoV2lkdGhdLG49ZS5tYXRjaChzKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1uWzBdLGw9YSYmdC5wYXJzZVBhdHRlcm5zW2FdfHx0LnBhcnNlUGF0dGVybnNbdC5kZWZhdWx0UGFyc2VXaWR0aF0sYz1BcnJheS5pc0FycmF5KGwpP2MwYShsLHA9PnAudGVzdChvKSk6bDBhKGwscD0+cC50ZXN0KG8pKSxkO2Q9dC52YWx1ZUNhbGxiYWNrP3QudmFsdWVDYWxsYmFjayhjKTpjLGQ9ci52YWx1ZUNhbGxiYWNrP3IudmFsdWVDYWxsYmFjayhkKTpkO2xldCBmPWUuc2xpY2Uoby5sZW5ndGgpO3JldHVybnt2YWx1ZTpkLHJlc3Q6Zn19fWZ1bmN0aW9uIGwwYSh0LGUpe2ZvcihsZXQgciBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlKHRbcl0pKXJldHVybiByfWZ1bmN0aW9uIGMwYSh0LGUpe2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGUodFtyXSkpcmV0dXJuIHJ9dmFyIFV3dD11KCgpPT57aShtYiwiYnVpbGRNYXRjaEZuIik7aShsMGEsImZpbmRLZXkiKTtpKGMwYSwiZmluZEluZGV4Iil9KTtmdW5jdGlvbiBXd3QodCl7cmV0dXJuKGUscj17fSk9PntsZXQgYT1lLm1hdGNoKHQubWF0Y2hQYXR0ZXJuKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgcz1hWzBdLG49ZS5tYXRjaCh0LnBhcnNlUGF0dGVybik7aWYoIW4pcmV0dXJuIG51bGw7bGV0IG89dC52YWx1ZUNhbGxiYWNrP3QudmFsdWVDYWxsYmFjayhuWzBdKTpuWzBdO289ci52YWx1ZUNhbGxiYWNrP3IudmFsdWVDYWxsYmFjayhvKTpvO2xldCBsPWUuc2xpY2Uocy5sZW5ndGgpO3JldHVybnt2YWx1ZTpvLHJlc3Q6bH19fXZhciBHd3Q9dSgoKT0+e2koV3d0LCJidWlsZE1hdGNoUGF0dGVybkZuIil9KTt2YXIgZDBhLHUwYSxwMGEsZjBhLGgwYSxtMGEsZzBhLGIwYSx4MGEsdjBhLHkwYSx3MGEsWXd0LEt3dD11KCgpPT57VXd0KCk7R3d0KCk7ZDBhPS9eKFxkKykodGh8c3R8bmR8cmQpPy9pLHUwYT0vXGQrL2kscDBhPXtuYXJyb3c6L14oYnxhKS9pLGFiYnJldmlhdGVkOi9eKGJcLj9ccz9jXC4/fGJcLj9ccz9jXC4/XHM/ZVwuP3xhXC4/XHM/ZFwuP3xjXC4/XHM/ZVwuPykvaSx3aWRlOi9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaX0sZjBhPXthbnk6Wy9eYi9pLC9eKGF8YykvaV19LGgwYT17bmFycm93Oi9eWzEyMzRdL2ksYWJicmV2aWF0ZWQ6L15xWzEyMzRdL2ksd2lkZTovXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaX0sbTBhPXthbnk6Wy8xL2ksLzIvaSwvMy9pLC80L2ldfSxnMGE9e25hcnJvdzovXltqZm1hc29uZF0vaSxhYmJyZXZpYXRlZDovXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSx3aWRlOi9eKGphbnVhcnl8ZmVicnVhcnl8bWFyY2h8YXByaWx8bWF5fGp1bmV8anVseXxhdWd1c3R8c2VwdGVtYmVyfG9jdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2l9LGIwYT17bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0seDBhPXtuYXJyb3c6L15bc210d2ZdL2ksc2hvcnQ6L14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksYWJicmV2aWF0ZWQ6L14oc3VufG1vbnx0dWV8d2VkfHRodXxmcml8c2F0KS9pLHdpZGU6L14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2l9LHYwYT17bmFycm93OlsvXnMvaSwvXm0vaSwvXnQvaSwvXncvaSwvXnQvaSwvXmYvaSwvXnMvaV0sYW55OlsvXnN1L2ksL15tL2ksL150dS9pLC9edy9pLC9edGgvaSwvXmYvaSwvXnNhL2ldfSx5MGE9e25hcnJvdzovXihhfHB8bWl8bnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2ksYW55Oi9eKFthcF1cLj9ccz9tXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pfSx3MGE9e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LFl3dD17b3JkaW5hbE51bWJlcjpXd3Qoe21hdGNoUGF0dGVybjpkMGEscGFyc2VQYXR0ZXJuOnUwYSx2YWx1ZUNhbGxiYWNrOmkodD0+cGFyc2VJbnQodCwxMCksInZhbHVlQ2FsbGJhY2siKX0pLGVyYTptYih7bWF0Y2hQYXR0ZXJuczpwMGEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6ZjBhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSkscXVhcnRlcjptYih7bWF0Y2hQYXR0ZXJuczpoMGEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6bTBhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkiLHZhbHVlQ2FsbGJhY2s6aSh0PT50KzEsInZhbHVlQ2FsbGJhY2siKX0pLG1vbnRoOm1iKHttYXRjaFBhdHRlcm5zOmcwYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpiMGEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXk6bWIoe21hdGNoUGF0dGVybnM6eDBhLGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOnYwYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheVBlcmlvZDptYih7bWF0Y2hQYXR0ZXJuczp5MGEsZGVmYXVsdE1hdGNoV2lkdGg6ImFueSIscGFyc2VQYXR0ZXJuczp3MGEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KX19KTt2YXIgaDEsYnBpLFp3dD11KCgpPT57Tnd0KCk7Rnd0KCk7SHd0KCk7and0KCk7S3d0KCk7aDE9e2NvZGU6ImVuLVVTIixmb3JtYXREaXN0YW5jZTpQd3QsZm9ybWF0TG9uZzpSd3QsZm9ybWF0UmVsYXRpdmU6Qnd0LGxvY2FsaXplOlZ3dCxtYXRjaDpZd3Qsb3B0aW9uczp7d2Vla1N0YXJ0c09uOjAsZmlyc3RXZWVrQ29udGFpbnNEYXRlOjF9fSxicGk9aDF9KTt2YXIgWmY9dSgoKT0+e1p3dCgpfSk7ZnVuY3Rpb24gdnNlKHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuIGNuKHIsZmIocikpKzF9dmFyIE1waSxnOWU9dSgoKT0+e1JkKCk7Z3NlKCk7S2UoKTtpKHZzZSwiZ2V0RGF5T2ZZZWFyIik7TXBpPXZzZX0pO2Z1bmN0aW9uIGdiKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT0rYnMociktK0IxKHIpO3JldHVybiBNYXRoLnJvdW5kKGEvUWMpKzF9dmFyICRwaSx5c2U9dSgoKT0+e2tyKCk7dDAoKTthYigpO0tlKCk7aShnYiwiZ2V0SVNPV2VlayIpOyRwaT1nYn0pO2Z1bmN0aW9uIFozKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz1UYSgpLG49ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/cy5maXJzdFdlZWtDb250YWluc0RhdGU/P3MubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1VZShlPy5pbnx8dCwwKTtvLnNldEZ1bGxZZWFyKGErMSwwLG4pLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9WWEobyxlKSxjPVVlKGU/LmlufHx0LDApO2Muc2V0RnVsbFllYXIoYSwwLG4pLGMuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGQ9WWEoYyxlKTtyZXR1cm4rcj49K2w/YSsxOityPj0rZD9hOmEtMX12YXIgUnBpLEtrPXUoKCk9PntRbigpO1Z0KCk7azIoKTtLZSgpO2koWjMsImdldFdlZWtZZWFyIik7UnBpPVozfSk7ZnVuY3Rpb24gUWYodCxlKXtsZXQgcj1UYSgpLGE9ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5maXJzdFdlZWtDb250YWluc0RhdGU/P3IubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEscz1aMyh0LGUpLG49VWUoZT8uaW58fHQsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIocywwLGEpLG4uc2V0SG91cnMoMCwwLDAsMCksWWEobixlKX12YXIgVXBpLHdzZT11KCgpPT57UW4oKTtWdCgpO0trKCk7azIoKTtpKFFmLCJzdGFydE9mV2Vla1llYXIiKTtVcGk9UWZ9KTtmdW5jdGlvbiBiYih0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9K1lhKHIsZSktK1FmKHIsZSk7cmV0dXJuIE1hdGgucm91bmQoYS9RYykrMX12YXIgWHBpLGtzZT11KCgpPT57a3IoKTtrMigpO3dzZSgpO0tlKCk7aShiYiwiZ2V0V2VlayIpO1hwaT1iYn0pO2Z1bmN0aW9uIHp0KHQsZSl7bGV0IHI9dDwwPyItIjoiIixhPU1hdGguYWJzKHQpLnRvU3RyaW5nKCkucGFkU3RhcnQoZSwiMCIpO3JldHVybiByK2F9dmFyIFhmPXUoKCk9PntpKHp0LCJhZGRMZWFkaW5nWmVyb3MiKX0pO3ZhciBIMSxiOWU9dSgoKT0+e1hmKCk7SDE9e3kodCxlKXtsZXQgcj10LmdldEZ1bGxZZWFyKCksYT1yPjA/cjoxLXI7cmV0dXJuIHp0KGU9PT0ieXkiP2ElMTAwOmEsZS5sZW5ndGgpfSxNKHQsZSl7bGV0IHI9dC5nZXRNb250aCgpO3JldHVybiBlPT09Ik0iP1N0cmluZyhyKzEpOnp0KHIrMSwyKX0sZCh0LGUpe3JldHVybiB6dCh0LmdldERhdGUoKSxlLmxlbmd0aCl9LGEodCxlKXtsZXQgcj10LmdldEhvdXJzKCkvMTI+PTE/InBtIjoiYW0iO3N3aXRjaChlKXtjYXNlImEiOmNhc2UiYWEiOnJldHVybiByLnRvVXBwZXJDYXNlKCk7Y2FzZSJhYWEiOnJldHVybiByO2Nhc2UiYWFhYWEiOnJldHVybiByWzBdO2RlZmF1bHQ6cmV0dXJuIHI9PT0iYW0iPyJhLm0uIjoicC5tLiJ9fSxoKHQsZSl7cmV0dXJuIHp0KHQuZ2V0SG91cnMoKSUxMnx8MTIsZS5sZW5ndGgpfSxIKHQsZSl7cmV0dXJuIHp0KHQuZ2V0SG91cnMoKSxlLmxlbmd0aCl9LG0odCxlKXtyZXR1cm4genQodC5nZXRNaW51dGVzKCksZS5sZW5ndGgpfSxzKHQsZSl7cmV0dXJuIHp0KHQuZ2V0U2Vjb25kcygpLGUubGVuZ3RoKX0sUyh0LGUpe2xldCByPWUubGVuZ3RoLGE9dC5nZXRNaWxsaXNlY29uZHMoKSxzPU1hdGgudHJ1bmMoYSpNYXRoLnBvdygxMCxyLTMpKTtyZXR1cm4genQocyxlLmxlbmd0aCl9fX0pO2Z1bmN0aW9uIFF3dCh0LGU9IiIpe2xldCByPXQ+MD8iLSI6IisiLGE9TWF0aC5hYnModCkscz1NYXRoLnRydW5jKGEvNjApLG49YSU2MDtyZXR1cm4gbj09PTA/citTdHJpbmcocyk6citTdHJpbmcocykrZSt6dChuLDIpfWZ1bmN0aW9uIFh3dCh0LGUpe3JldHVybiB0JTYwPT09MD8odD4wPyItIjoiKyIpK3p0KE1hdGguYWJzKHQpLzYwLDIpOkpmKHQsZSl9ZnVuY3Rpb24gSmYodCxlPSIiKXtsZXQgcj10PjA/Ii0iOiIrIixhPU1hdGguYWJzKHQpLHM9enQoTWF0aC50cnVuYyhhLzYwKSwyKSxuPXp0KGElNjAsMik7cmV0dXJuIHIrcytlK259dmFyIHhiLFprLEp3dD11KCgpPT57ZzllKCk7eXNlKCk7VTMoKTtrc2UoKTtLaygpO1hmKCk7YjllKCk7eGI9e2FtOiJhbSIscG06InBtIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSxaaz17RzppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldEZ1bGxZZWFyKCk+MD8xOjA7c3dpdGNoKGUpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiByLmVyYShhLHt3aWR0aDoiYWJicmV2aWF0ZWQifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIHIuZXJhKGEse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gci5lcmEoYSx7d2lkdGg6IndpZGUifSl9fSwiRyIpLHk6aShmdW5jdGlvbih0LGUscil7aWYoZT09PSJ5byIpe2xldCBhPXQuZ2V0RnVsbFllYXIoKSxzPWE+MD9hOjEtYTtyZXR1cm4gci5vcmRpbmFsTnVtYmVyKHMse3VuaXQ6InllYXIifSl9cmV0dXJuIEgxLnkodCxlKX0sInkiKSxZOmkoZnVuY3Rpb24odCxlLHIsYSl7bGV0IHM9WjModCxhKSxuPXM+MD9zOjEtcztpZihlPT09IllZIil7bGV0IG89biUxMDA7cmV0dXJuIHp0KG8sMil9cmV0dXJuIGU9PT0iWW8iP3Iub3JkaW5hbE51bWJlcihuLHt1bml0OiJ5ZWFyIn0pOnp0KG4sZS5sZW5ndGgpfSwiWSIpLFI6aShmdW5jdGlvbih0LGUpe2xldCByPUVvKHQpO3JldHVybiB6dChyLGUubGVuZ3RoKX0sIlIiKSx1OmkoZnVuY3Rpb24odCxlKXtsZXQgcj10LmdldEZ1bGxZZWFyKCk7cmV0dXJuIHp0KHIsZS5sZW5ndGgpfSwidSIpLFE6aShmdW5jdGlvbih0LGUscil7bGV0IGE9TWF0aC5jZWlsKCh0LmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKGUpe2Nhc2UiUSI6cmV0dXJuIFN0cmluZyhhKTtjYXNlIlFRIjpyZXR1cm4genQoYSwyKTtjYXNlIlFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJRUVEiOnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiUSIpLHE6aShmdW5jdGlvbih0LGUscil7bGV0IGE9TWF0aC5jZWlsKCh0LmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKGUpe2Nhc2UicSI6cmV0dXJuIFN0cmluZyhhKTtjYXNlInFxIjpyZXR1cm4genQoYSwyKTtjYXNlInFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UicXFxcXEiOnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSwicSIpLE06aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRNb250aCgpO3N3aXRjaChlKXtjYXNlIk0iOmNhc2UiTU0iOnJldHVybiBIMS5NKHQsZSk7Y2FzZSJNbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihhKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTU1NIjpyZXR1cm4gci5tb250aChhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJNTU1NTSI6cmV0dXJuIHIubW9udGgoYSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIk0iKSxMOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0TW9udGgoKTtzd2l0Y2goZSl7Y2FzZSJMIjpyZXR1cm4gU3RyaW5nKGErMSk7Y2FzZSJMTCI6cmV0dXJuIHp0KGErMSwyKTtjYXNlIkxvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGErMSx7dW5pdDoibW9udGgifSk7Y2FzZSJMTEwiOnJldHVybiByLm1vbnRoKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gci5tb250aChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIubW9udGgoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSwiTCIpLHc6aShmdW5jdGlvbih0LGUscixhKXtsZXQgcz1iYih0LGEpO3JldHVybiBlPT09IndvIj9yLm9yZGluYWxOdW1iZXIocyx7dW5pdDoid2VlayJ9KTp6dChzLGUubGVuZ3RoKX0sInciKSxJOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPWdiKHQpO3JldHVybiBlPT09IklvIj9yLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoid2VlayJ9KTp6dChhLGUubGVuZ3RoKX0sIkkiKSxkOmkoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09ImRvIj9yLm9yZGluYWxOdW1iZXIodC5nZXREYXRlKCkse3VuaXQ6ImRhdGUifSk6SDEuZCh0LGUpfSwiZCIpLEQ6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dnNlKHQpO3JldHVybiBlPT09IkRvIj9yLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoiZGF5T2ZZZWFyIn0pOnp0KGEsZS5sZW5ndGgpfSwiRCIpLEU6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXREYXkoKTtzd2l0Y2goZSl7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFRSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShhLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJFIiksZTppKGZ1bmN0aW9uKHQsZSxyLGEpe2xldCBzPXQuZ2V0RGF5KCksbj0ocy1hLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImUiOnJldHVybiBTdHJpbmcobik7Y2FzZSJlZSI6cmV0dXJuIHp0KG4sMik7Y2FzZSJlbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihuLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiByLmRheShzLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiByLmRheShzLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkocyx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiZSIpLGM6aShmdW5jdGlvbih0LGUscixhKXtsZXQgcz10LmdldERheSgpLG49KHMtYS53ZWVrU3RhcnRzT24rOCklN3x8Nztzd2l0Y2goZSl7Y2FzZSJjIjpyZXR1cm4gU3RyaW5nKG4pO2Nhc2UiY2MiOnJldHVybiB6dChuLGUubGVuZ3RoKTtjYXNlImNvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6ImRheSJ9KTtjYXNlImNjYyI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjIjpyZXR1cm4gci5kYXkocyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjYyI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLmRheShzLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJjIiksaTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldERheSgpLHM9YT09PTA/NzphO3N3aXRjaChlKXtjYXNlImkiOnJldHVybiBTdHJpbmcocyk7Y2FzZSJpaSI6cmV0dXJuIHp0KHMsZS5sZW5ndGgpO2Nhc2UiaW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIocyx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWkiOnJldHVybiByLmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWlpIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImkiKSxhOmkoZnVuY3Rpb24odCxlLHIpe2xldCBzPXQuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYWFhYWEiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImEiKSxiOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0SG91cnMoKSxzO3N3aXRjaChhPT09MTI/cz14Yi5ub29uOmE9PT0wP3M9eGIubWlkbmlnaHQ6cz1hLzEyPj0xPyJwbSI6ImFtIixlKXtjYXNlImIiOmNhc2UiYmIiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmIiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkudG9Mb3dlckNhc2UoKTtjYXNlImJiYmJiIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJiIiksQjppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldEhvdXJzKCkscztzd2l0Y2goYT49MTc/cz14Yi5ldmVuaW5nOmE+PTEyP3M9eGIuYWZ0ZXJub29uOmE+PTQ/cz14Yi5tb3JuaW5nOnM9eGIubmlnaHQsZSl7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJCIiksaDppKGZ1bmN0aW9uKHQsZSxyKXtpZihlPT09ImhvIil7bGV0IGE9dC5nZXRIb3VycygpJTEyO3JldHVybiBhPT09MCYmKGE9MTIpLHIub3JkaW5hbE51bWJlcihhLHt1bml0OiJob3VyIn0pfXJldHVybiBIMS5oKHQsZSl9LCJoIiksSDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT09PSJIbyI/ci5vcmRpbmFsTnVtYmVyKHQuZ2V0SG91cnMoKSx7dW5pdDoiaG91ciJ9KTpIMS5IKHQsZSl9LCJIIiksSzppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldEhvdXJzKCklMTI7cmV0dXJuIGU9PT0iS28iP3Iub3JkaW5hbE51bWJlcihhLHt1bml0OiJob3VyIn0pOnp0KGEsZS5sZW5ndGgpfSwiSyIpLGs6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRIb3VycygpO3JldHVybiBhPT09MCYmKGE9MjQpLGU9PT0ia28iP3Iub3JkaW5hbE51bWJlcihhLHt1bml0OiJob3VyIn0pOnp0KGEsZS5sZW5ndGgpfSwiayIpLG06aShmdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PT0ibW8iP3Iub3JkaW5hbE51bWJlcih0LmdldE1pbnV0ZXMoKSx7dW5pdDoibWludXRlIn0pOkgxLm0odCxlKX0sIm0iKSxzOmkoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09InNvIj9yLm9yZGluYWxOdW1iZXIodC5nZXRTZWNvbmRzKCkse3VuaXQ6InNlY29uZCJ9KTpIMS5zKHQsZSl9LCJzIiksUzppKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEgxLlModCxlKX0sIlMiKSxYOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihhPT09MClyZXR1cm4iWiI7c3dpdGNoKGUpe2Nhc2UiWCI6cmV0dXJuIFh3dChhKTtjYXNlIlhYWFgiOmNhc2UiWFgiOnJldHVybiBKZihhKTtkZWZhdWx0OnJldHVybiBKZihhLCI6Iil9fSwiWCIpLHg6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlIngiOnJldHVybiBYd3QoYSk7Y2FzZSJ4eHh4IjpjYXNlInh4IjpyZXR1cm4gSmYoYSk7ZGVmYXVsdDpyZXR1cm4gSmYoYSwiOiIpfX0sIngiKSxPOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIrUXd0KGEsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK0pmKGEsIjoiKX19LCJPIiksejppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieiI6Y2FzZSJ6eiI6Y2FzZSJ6enoiOnJldHVybiJHTVQiK1F3dChhLCI6Iik7ZGVmYXVsdDpyZXR1cm4iR01UIitKZihhLCI6Iil9fSwieiIpLHQ6aShmdW5jdGlvbih0LGUscil7bGV0IGE9TWF0aC50cnVuYygrdC8xZTMpO3JldHVybiB6dChhLGUubGVuZ3RoKX0sInQiKSxUOmkoZnVuY3Rpb24odCxlLHIpe3JldHVybiB6dCgrdCxlLmxlbmd0aCl9LCJUIil9O2koUXd0LCJmb3JtYXRUaW1lem9uZVNob3J0Iik7aShYd3QsImZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyIpO2koSmYsImZvcm1hdFRpbWV6b25lIil9KTt2YXIgZWt0LHRrdCxrMGEsUTMseDllPXUoKCk9Pntla3Q9aSgodCxlKT0+e3N3aXRjaCh0KXtjYXNlIlAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlIlBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UiUFBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLmRhdGUoe3dpZHRoOiJmdWxsIn0pfX0sImRhdGVMb25nRm9ybWF0dGVyIiksdGt0PWkoKHQsZSk9Pntzd2l0Y2godCl7Y2FzZSJwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gZS50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LCJ0aW1lTG9uZ0Zvcm1hdHRlciIpLGswYT1pKCh0LGUpPT57bGV0IHI9dC5tYXRjaCgvKFArKShwKyk/Lyl8fFtdLGE9clsxXSxzPXJbMl07aWYoIXMpcmV0dXJuIGVrdCh0LGUpO2xldCBuO3N3aXRjaChhKXtjYXNlIlAiOm49ZS5kYXRlVGltZSh7d2lkdGg6InNob3J0In0pO2JyZWFrO2Nhc2UiUFAiOm49ZS5kYXRlVGltZSh7d2lkdGg6Im1lZGl1bSJ9KTticmVhaztjYXNlIlBQUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoibG9uZyJ9KTticmVhaztkZWZhdWx0Om49ZS5kYXRlVGltZSh7d2lkdGg6ImZ1bGwifSk7YnJlYWt9cmV0dXJuIG4ucmVwbGFjZSgie3tkYXRlfX0iLGVrdChhLGUpKS5yZXBsYWNlKCJ7e3RpbWV9fSIsdGt0KHMsZSkpfSwiZGF0ZVRpbWVMb25nRm9ybWF0dGVyIiksUTM9e3A6dGt0LFA6azBhfX0pO2Z1bmN0aW9uIFNzZSh0KXtyZXR1cm4gUzBhLnRlc3QodCl9ZnVuY3Rpb24gTXNlKHQpe3JldHVybiBNMGEudGVzdCh0KX1mdW5jdGlvbiBRayh0LGUscil7bGV0IGE9ejBhKHQsZSxyKTtpZihjb25zb2xlLndhcm4oYSksQzBhLmluY2x1ZGVzKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKGEpfWZ1bmN0aW9uIHowYSh0LGUscil7bGV0IGE9dFswXT09PSJZIj8ieWVhcnMiOiJkYXlzIG9mIHRoZSBtb250aCI7cmV0dXJuYFVzZSBcYCR7dC50b0xvd2VyQ2FzZSgpfVxgIGluc3RlYWQgb2YgXGAke3R9XGAgKGluIFxgJHtlfVxgKSBmb3IgZm9ybWF0dGluZyAke2F9IHRvIHRoZSBpbnB1dCBcYCR7cn1cYDsgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kYH12YXIgUzBhLE0wYSxDMGEsdjllPXUoKCk9PntTMGE9L15EKyQvLE0wYT0vXlkrJC8sQzBhPVsiRCIsIkREIiwiWVkiLCJZWVlZIl07aShTc2UsImlzUHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW4iKTtpKE1zZSwiaXNQcm90ZWN0ZWRXZWVrWWVhclRva2VuIik7aShRaywid2Fybk9yVGhyb3dQcm90ZWN0ZWRFcnJvciIpO2koejBhLCJtZXNzYWdlIil9KTtmdW5jdGlvbiBYayh0LGUscil7bGV0IGE9VGEoKSxzPXI/LmxvY2FsZT8/YS5sb2NhbGU/P2gxLG49cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9hLndlZWtTdGFydHNPbj8/YS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxsPVNlKHQscj8uaW4pO2lmKCFfbihsKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGM9ZS5tYXRjaChUMGEpLm1hcChmPT57bGV0IHA9ZlswXTtpZihwPT09InAifHxwPT09IlAiKXtsZXQgaD1RM1twXTtyZXR1cm4gaChmLHMuZm9ybWF0TG9uZyl9cmV0dXJuIGZ9KS5qb2luKCIiKS5tYXRjaChfMGEpLm1hcChmPT57aWYoZj09PSInJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6IicifTtsZXQgcD1mWzBdO2lmKHA9PT0iJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6QTBhKGYpfTtpZihaa1twXSlyZXR1cm57aXNUb2tlbjohMCx2YWx1ZTpmfTtpZihwLm1hdGNoKCQwYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitwKyJgIik7cmV0dXJue2lzVG9rZW46ITEsdmFsdWU6Zn19KTtzLmxvY2FsaXplLnByZXByb2Nlc3NvciYmKGM9cy5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IobCxjKSk7bGV0IGQ9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpuLHdlZWtTdGFydHNPbjpvLGxvY2FsZTpzfTtyZXR1cm4gYy5tYXAoZj0+e2lmKCFmLmlzVG9rZW4pcmV0dXJuIGYudmFsdWU7bGV0IHA9Zi52YWx1ZTsoIXI/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmTXNlKHApfHwhcj8udXNlQWRkaXRpb25hbERheU9mWWVhclRva2VucyYmU3NlKHApKSYmUWsocCxlLFN0cmluZyh0KSk7bGV0IGg9WmtbcFswXV07cmV0dXJuIGgobCxwLHMubG9jYWxpemUsZCl9KS5qb2luKCIiKX1mdW5jdGlvbiBBMGEodCl7bGV0IGU9dC5tYXRjaChMMGEpO3JldHVybiBlP2VbMV0ucmVwbGFjZShEMGEsIiciKTp0fXZhciBfMGEsVDBhLEwwYSxEMGEsJDBhLENmaSx5OWU9dSgoKT0+e1pmKCk7UW4oKTtKd3QoKTt4OWUoKTt2OWUoKTtGZCgpO0tlKCk7XzBhPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csVDBhPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLEwwYT0vXicoW15dKj8pJz8kLyxEMGE9LycnL2csJDBhPS9bYS16QS1aXS87aShYaywiZm9ybWF0Iik7aShBMGEsImNsZWFuRXNjYXBlZFN0cmluZyIpO0NmaT1Ya30pO2Z1bmN0aW9uIENzZSh0LGUscil7bGV0IGE9VGEoKSxzPXI/LmxvY2FsZT8/YS5sb2NhbGU/P2gxLG49MjUyMCxvPVhuKHQsZSk7aWYoaXNOYU4obykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBsPU9iamVjdC5hc3NpZ24oe30scix7YWRkU3VmZml4OnI/LmFkZFN1ZmZpeCxjb21wYXJpc29uOm99KSxbYyxkXT1CdChyPy5pbiwuLi5vPjA/W2UsdF06W3QsZV0pLGY9aTAoZCxjKSxwPShFaShkKS1FaShjKSkvMWUzLGg9TWF0aC5yb3VuZCgoZi1wKS82MCksbTtpZihoPDIpcmV0dXJuIHI/LmluY2x1ZGVTZWNvbmRzP2Y8NT9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiw1LGwpOmY8MTA/cy5mb3JtYXREaXN0YW5jZSgibGVzc1RoYW5YU2Vjb25kcyIsMTAsbCk6ZjwyMD9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwyMCxsKTpmPDQwP3MuZm9ybWF0RGlzdGFuY2UoImhhbGZBTWludXRlIiwwLGwpOmY8NjA/cy5mb3JtYXREaXN0YW5jZSgibGVzc1RoYW5YTWludXRlcyIsMSxsKTpzLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsMSxsKTpoPT09MD9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLGwpOnMuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixoLGwpO2lmKGg8NDUpcmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixoLGwpO2lmKGg8OTApcmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoImFib3V0WEhvdXJzIiwxLGwpO2lmKGg8ZWIpe2xldCB2PU1hdGgucm91bmQoaC82MCk7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoImFib3V0WEhvdXJzIix2LGwpfWVsc2V7aWYoaDxuKXJldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIsMSxsKTtpZihoPHEzKXtsZXQgdj1NYXRoLnJvdW5kKGgvZWIpO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIsdixsKX1lbHNlIGlmKGg8cTMqMilyZXR1cm4gbT1NYXRoLnJvdW5kKGgvcTMpLHMuZm9ybWF0RGlzdGFuY2UoImFib3V0WE1vbnRocyIsbSxsKX1pZihtPVkzKGQsYyksbTwxMil7bGV0IHY9TWF0aC5yb3VuZChoL3EzKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIsdixsKX1lbHNle2xldCB2PW0lMTIsYj1NYXRoLnRydW5jKG0vMTIpO3JldHVybiB2PDM/cy5mb3JtYXREaXN0YW5jZSgiYWJvdXRYWWVhcnMiLGIsbCk6djw5P3MuZm9ybWF0RGlzdGFuY2UoIm92ZXJYWWVhcnMiLGIsbCk6cy5mb3JtYXREaXN0YW5jZSgiYWxtb3N0WFllYXJzIixiKzEsbCl9fXZhciBOZmksdzllPXUoKCk9PntaZigpO1FuKCk7T2QoKTtPYSgpO1VmKCk7a3IoKTtXaygpO0drKCk7aShDc2UsImZvcm1hdERpc3RhbmNlIik7TmZpPUNzZX0pO2Z1bmN0aW9uIHpzZSh0LGUscil7bGV0IGE9VGEoKSxzPXI/LmxvY2FsZT8/YS5sb2NhbGU/P2gxLG49WG4odCxlKTtpZihpc05hTihuKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IG89T2JqZWN0LmFzc2lnbih7fSxyLHthZGRTdWZmaXg6cj8uYWRkU3VmZml4LGNvbXBhcmlzb246bn0pLFtsLGNdPUJ0KHI/LmluLC4uLm4+MD9bZSx0XTpbdCxlXSksZD1KbihyPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIiksZj1jLmdldFRpbWUoKS1sLmdldFRpbWUoKSxwPWYvWm4saD1FaShjKS1FaShsKSxtPShmLWgpL1puLHY9cj8udW5pdCxiO2lmKHY/Yj12OnA8MT9iPSJzZWNvbmQiOnA8NjA/Yj0ibWludXRlIjpwPGViP2I9ImhvdXIiOm08cTM/Yj0iZGF5IjptPGo3ZT9iPSJtb250aCI6Yj0ieWVhciIsYj09PSJzZWNvbmQiKXtsZXQgZz1kKGYvMWUzKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieFNlY29uZHMiLGcsbyl9ZWxzZSBpZihiPT09Im1pbnV0ZSIpe2xldCBnPWQocCk7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixnLG8pfWVsc2UgaWYoYj09PSJob3VyIil7bGV0IGc9ZChwLzYwKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieEhvdXJzIixnLG8pfWVsc2UgaWYoYj09PSJkYXkiKXtsZXQgZz1kKG0vZWIpO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIsZyxvKX1lbHNlIGlmKGI9PT0ibW9udGgiKXtsZXQgZz1kKG0vcTMpO3JldHVybiBnPT09MTImJnYhPT0ibW9udGgiP3MuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsMSxvKTpzLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIixnLG8pfWVsc2V7bGV0IGc9ZChtL2o3ZSk7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsZyxvKX19dmFyIFdmaSxrOWU9dSgoKT0+e1pmKCk7UW4oKTtCZCgpO09kKCk7T2EoKTtVZigpO2tyKCk7aSh6c2UsImZvcm1hdERpc3RhbmNlU3RyaWN0Iik7V2ZpPXpzZX0pO2Z1bmN0aW9uIHJrdCh0LGUpe3JldHVybiBDc2UodCxJcih0KSxlKX12YXIgUWZpLGFrdD11KCgpPT57RnMoKTt3OWUoKTtpKHJrdCwiZm9ybWF0RGlzdGFuY2VUb05vdyIpO1FmaT1ya3R9KTtmdW5jdGlvbiBpa3QodCxlKXtyZXR1cm4genNlKHQsSXIodCksZSl9dmFyIHJoaSxza3Q9dSgoKT0+e0ZzKCk7azllKCk7aShpa3QsImZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3QiKTtyaGk9aWt0fSk7ZnVuY3Rpb24gbmt0KHQsZSl7bGV0IHI9VGEoKSxhPWU/LmxvY2FsZT8/ci5sb2NhbGU/P2gxLHM9ZT8uZm9ybWF0Pz9FMGEsbj1lPy56ZXJvPz8hMSxvPWU/LmRlbGltaXRlcj8/IiAiO3JldHVybiBhLmZvcm1hdERpc3RhbmNlP3MucmVkdWNlKChjLGQpPT57bGV0IGY9YHgke2QucmVwbGFjZSgvKF4uKS8saD0+aC50b1VwcGVyQ2FzZSgpKX1gLHA9dFtkXTtyZXR1cm4gcCE9PXZvaWQgMCYmKG58fHRbZF0pP2MuY29uY2F0KGEuZm9ybWF0RGlzdGFuY2UoZixwKSk6Y30sW10pLmpvaW4obyk6IiJ9dmFyIEUwYSxvaGksb2t0PXUoKCk9PntaZigpO1FuKCk7RTBhPVsieWVhcnMiLCJtb250aHMiLCJ3ZWVrcyIsImRheXMiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIl07aShua3QsImZvcm1hdER1cmF0aW9uIik7b2hpPW5rdH0pO2Z1bmN0aW9uIGxrdCh0LGUpe2xldCByPVNlKHQsZT8uaW4pO2lmKGlzTmFOKCtyKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGE9ZT8uZm9ybWF0Pz8iZXh0ZW5kZWQiLHM9ZT8ucmVwcmVzZW50YXRpb24/PyJjb21wbGV0ZSIsbj0iIixvPSIiLGw9YT09PSJleHRlbmRlZCI/Ii0iOiIiLGM9YT09PSJleHRlbmRlZCI/IjoiOiIiO2lmKHMhPT0idGltZSIpe2xldCBkPXp0KHIuZ2V0RGF0ZSgpLDIpLGY9enQoci5nZXRNb250aCgpKzEsMik7bj1gJHt6dChyLmdldEZ1bGxZZWFyKCksNCl9JHtsfSR7Zn0ke2x9JHtkfWB9aWYocyE9PSJkYXRlIil7bGV0IGQ9ci5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGQhPT0wKXtsZXQgYj1NYXRoLmFicyhkKSxnPXp0KE1hdGgudHJ1bmMoYi82MCksMikseT16dChiJTYwLDIpO289YCR7ZDwwPyIrIjoiLSJ9JHtnfToke3l9YH1lbHNlIG89IloiO2xldCBmPXp0KHIuZ2V0SG91cnMoKSwyKSxwPXp0KHIuZ2V0TWludXRlcygpLDIpLGg9enQoci5nZXRTZWNvbmRzKCksMiksbT1uPT09IiI/IiI6IlQiLHY9W2YscCxoXS5qb2luKGMpO249YCR7bn0ke219JHt2fSR7b31gfXJldHVybiBufXZhciBwaGksY2t0PXUoKCk9PntYZigpO0tlKCk7aShsa3QsImZvcm1hdElTTyIpO3BoaT1sa3R9KTtmdW5jdGlvbiBka3QodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtpZighX24ocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWU/LmZvcm1hdD8/ImV4dGVuZGVkIixzPWU/LnJlcHJlc2VudGF0aW9uPz8iY29tcGxldGUiLG49IiIsbz1hPT09ImV4dGVuZGVkIj8iLSI6IiIsbD1hPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYocyE9PSJ0aW1lIil7bGV0IGM9enQoci5nZXREYXRlKCksMiksZD16dChyLmdldE1vbnRoKCkrMSwyKTtuPWAke3p0KHIuZ2V0RnVsbFllYXIoKSw0KX0ke299JHtkfSR7b30ke2N9YH1pZihzIT09ImRhdGUiKXtsZXQgYz16dChyLmdldEhvdXJzKCksMiksZD16dChyLmdldE1pbnV0ZXMoKSwyKSxmPXp0KHIuZ2V0U2Vjb25kcygpLDIpO249YCR7bn0ke249PT0iIj8iIjoiICJ9JHtjfSR7bH0ke2R9JHtsfSR7Zn1gfXJldHVybiBufXZhciB4aGksdWt0PXUoKCk9PntYZigpO0ZkKCk7S2UoKTtpKGRrdCwiZm9ybWF0SVNPOTA3NSIpO3hoaT1ka3R9KTtmdW5jdGlvbiBwa3QodCl7bGV0e3llYXJzOmU9MCxtb250aHM6cj0wLGRheXM6YT0wLGhvdXJzOnM9MCxtaW51dGVzOm49MCxzZWNvbmRzOm89MH09dDtyZXR1cm5gUCR7ZX1ZJHtyfU0ke2F9RFQke3N9SCR7bn1NJHtvfVNgfXZhciB3aGksZmt0PXUoKCk9PntpKHBrdCwiZm9ybWF0SVNPRHVyYXRpb24iKTt3aGk9cGt0fSk7ZnVuY3Rpb24gaGt0KHQsZSl7bGV0IHI9U2UodCxlPy5pbik7aWYoIV9uKHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1lPy5mcmFjdGlvbkRpZ2l0cz8/MCxzPXp0KHIuZ2V0RGF0ZSgpLDIpLG49enQoci5nZXRNb250aCgpKzEsMiksbz1yLmdldEZ1bGxZZWFyKCksbD16dChyLmdldEhvdXJzKCksMiksYz16dChyLmdldE1pbnV0ZXMoKSwyKSxkPXp0KHIuZ2V0U2Vjb25kcygpLDIpLGY9IiI7aWYoYT4wKXtsZXQgbT1yLmdldE1pbGxpc2Vjb25kcygpLHY9TWF0aC50cnVuYyhtKk1hdGgucG93KDEwLGEtMykpO2Y9Ii4iK3p0KHYsYSl9bGV0IHA9IiIsaD1yLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoaCE9PTApe2xldCBtPU1hdGguYWJzKGgpLHY9enQoTWF0aC50cnVuYyhtLzYwKSwyKSxiPXp0KG0lNjAsMik7cD1gJHtoPDA/IisiOiItIn0ke3Z9OiR7Yn1gfWVsc2UgcD0iWiI7cmV0dXJuYCR7b30tJHtufS0ke3N9VCR7bH06JHtjfToke2R9JHtmfSR7cH1gfXZhciBfaGksbWt0PXUoKCk9PntYZigpO0ZkKCk7S2UoKTtpKGhrdCwiZm9ybWF0UkZDMzMzOSIpO19oaT1oa3R9KTtmdW5jdGlvbiBna3QodCl7bGV0IGU9U2UodCk7aWYoIV9uKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1JMGFbZS5nZXRVVENEYXkoKV0sYT16dChlLmdldFVUQ0RhdGUoKSwyKSxzPVAwYVtlLmdldFVUQ01vbnRoKCldLG49ZS5nZXRVVENGdWxsWWVhcigpLG89enQoZS5nZXRVVENIb3VycygpLDIpLGw9enQoZS5nZXRVVENNaW51dGVzKCksMiksYz16dChlLmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHtyfSwgJHthfSAke3N9ICR7bn0gJHtvfToke2x9OiR7Y30gR01UYH12YXIgSTBhLFAwYSxFaGksYmt0PXUoKCk9PntYZigpO0ZkKCk7S2UoKTtJMGE9WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxQMGE9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTtpKGdrdCwiZm9ybWF0UkZDNzIzMSIpO0VoaT1na3R9KTtmdW5jdGlvbiB4a3QodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1UYSgpLG89cj8ubG9jYWxlPz9uLmxvY2FsZT8/aDEsbD1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9uLndlZWtTdGFydHNPbj8/bi5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxjPWNuKGEscyk7aWYoaXNOYU4oYykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBkO2M8LTY/ZD0ib3RoZXIiOmM8LTE/ZD0ibGFzdFdlZWsiOmM8MD9kPSJ5ZXN0ZXJkYXkiOmM8MT9kPSJ0b2RheSI6YzwyP2Q9InRvbW9ycm93IjpjPDc/ZD0ibmV4dFdlZWsiOmQ9Im90aGVyIjtsZXQgZj1vLmZvcm1hdFJlbGF0aXZlKGQsYSxzLHtsb2NhbGU6byx3ZWVrU3RhcnRzT246bH0pO3JldHVybiBYayhhLGYse2xvY2FsZTpvLHdlZWtTdGFydHNPbjpsfSl9dmFyIEhoaSx2a3Q9dSgoKT0+e1pmKCk7UW4oKTtPYSgpO1JkKCk7eTllKCk7aSh4a3QsImZvcm1hdFJlbGF0aXZlIik7SGhpPXhrdH0pO2Z1bmN0aW9uIHlrdCh0LGUpe3JldHVybiBTZSh0KjFlMyxlPy5pbil9dmFyIFVoaSx3a3Q9dSgoKT0+e0tlKCk7aSh5a3QsImZyb21Vbml4VGltZSIpO1VoaT15a3R9KTtmdW5jdGlvbiBfc2UodCxlKXtyZXR1cm4gU2UodCxlPy5pbikuZ2V0RGF0ZSgpfXZhciBLaGksUzllPXUoKCk9PntLZSgpO2koX3NlLCJnZXREYXRlIik7S2hpPV9zZX0pO2Z1bmN0aW9uIFgzKHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldERheSgpfXZhciBKaGksSms9dSgoKT0+e0tlKCk7aShYMywiZ2V0RGF5Iik7SmhpPVgzfSk7ZnVuY3Rpb24gVHNlKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz1yLmdldE1vbnRoKCksbj1VZShyLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKGEscysxLDApLG4uc2V0SG91cnMoMCwwLDAsMCksbi5nZXREYXRlKCl9dmFyIGk2aSxNOWU9dSgoKT0+e1Z0KCk7S2UoKTtpKFRzZSwiZ2V0RGF5c0luTW9udGgiKTtpNmk9VHNlfSk7ZnVuY3Rpb24gTHNlKHQsZSl7bGV0IGE9U2UodCxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gYSU0MDA9PT0wfHxhJTQ9PT0wJiZhJTEwMCE9PTB9dmFyIGw2aSxDOWU9dSgoKT0+e0tlKCk7aShMc2UsImlzTGVhcFllYXIiKTtsNmk9THNlfSk7ZnVuY3Rpb24ga2t0KHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuIE51bWJlci5pc05hTigrcik/TmFOOkxzZShyKT8zNjY6MzY1fXZhciBmNmksU2t0PXUoKCk9PntDOWUoKTtLZSgpO2koa2t0LCJnZXREYXlzSW5ZZWFyIik7ZjZpPWtrdH0pO2Z1bmN0aW9uIE1rdCh0LGUpe2xldCBhPVNlKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3IoYS8xMCkqMTB9dmFyIGI2aSxDa3Q9dSgoKT0+e0tlKCk7aShNa3QsImdldERlY2FkZSIpO2I2aT1Na3R9KTtmdW5jdGlvbiBEc2UoKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxUYSgpKX12YXIgdzZpLHo5ZT11KCgpPT57UW4oKTtpKERzZSwiZ2V0RGVmYXVsdE9wdGlvbnMiKTt3Nmk9RHNlfSk7ZnVuY3Rpb24gemt0KHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldEhvdXJzKCl9dmFyIEM2aSxfa3Q9dSgoKT0+e0tlKCk7aSh6a3QsImdldEhvdXJzIik7QzZpPXprdH0pO2Z1bmN0aW9uICRzZSh0LGUpe2xldCByPVNlKHQsZT8uaW4pLmdldERheSgpO3JldHVybiByPT09MD83OnJ9dmFyIEw2aSxfOWU9dSgoKT0+e0tlKCk7aSgkc2UsImdldElTT0RheSIpO0w2aT0kc2V9KTtmdW5jdGlvbiBUa3QodCxlKXtsZXQgcj1CMSh0LGUpLHM9K0IxKFczKHIsNjApKS0rcjtyZXR1cm4gTWF0aC5yb3VuZChzL1FjKX12YXIgUDZpLExrdD11KCgpPT57amsoKTtrcigpO2FiKCk7aShUa3QsImdldElTT1dlZWtzSW5ZZWFyIik7UDZpPVRrdH0pO2Z1bmN0aW9uIERrdCh0KXtyZXR1cm4gU2UodCkuZ2V0TWlsbGlzZWNvbmRzKCl9dmFyIEY2aSwka3Q9dSgoKT0+e0tlKCk7aShEa3QsImdldE1pbGxpc2Vjb25kcyIpO0Y2aT1Ea3R9KTtmdW5jdGlvbiBBa3QodCxlKXtyZXR1cm4gU2UodCxlPy5pbikuZ2V0TWludXRlcygpfXZhciBWNmksRWt0PXUoKCk9PntLZSgpO2koQWt0LCJnZXRNaW51dGVzIik7VjZpPUFrdH0pO2Z1bmN0aW9uIElrdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXRNb250aCgpfXZhciBHNmksUGt0PXUoKCk9PntLZSgpO2koSWt0LCJnZXRNb250aCIpO0c2aT1Ja3R9KTtmdW5jdGlvbiBOa3QodCxlKXtsZXRbcixhXT1bK1NlKHQuc3RhcnQpLCtTZSh0LmVuZCldLnNvcnQoKHAsaCk9PnAtaCksW3Msbl09WytTZShlLnN0YXJ0KSwrU2UoZS5lbmQpXS5zb3J0KChwLGgpPT5wLWgpO2lmKCEocjxuJiZzPGEpKXJldHVybiAwO2xldCBsPXM8cj9yOnMsYz1sLUVpKGwpLGQ9bj5hP2E6bixmPWQtRWkoZCk7cmV0dXJuIE1hdGguY2VpbCgoZi1jKS9JaWUpfXZhciBKNmksT2t0PXUoKCk9PntPZCgpO2tyKCk7S2UoKTtpKE5rdCwiZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHMiKTtKNmk9Tmt0fSk7ZnVuY3Rpb24gUmt0KHQpe3JldHVybiBTZSh0KS5nZXRTZWNvbmRzKCl9dmFyIGFtaSxGa3Q9dSgoKT0+e0tlKCk7aShSa3QsImdldFNlY29uZHMiKTthbWk9Umt0fSk7ZnVuY3Rpb24gQmt0KHQpe3JldHVybitTZSh0KX12YXIgb21pLEhrdD11KCgpPT57S2UoKTtpKEJrdCwiZ2V0VGltZSIpO29taT1Ca3R9KTtmdW5jdGlvbiBxa3QodCl7cmV0dXJuIE1hdGgudHJ1bmMoK1NlKHQpLzFlMyl9dmFyIHVtaSxWa3Q9dSgoKT0+e0tlKCk7aShxa3QsImdldFVuaXhUaW1lIik7dW1pPXFrdH0pO2Z1bmN0aW9uIGprdCh0LGUpe2xldCByPVRhKCksYT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPV9zZShTZSh0LGU/LmluKSk7aWYoaXNOYU4ocykpcmV0dXJuIE5hTjtsZXQgbj1YMyhLMyh0LGUpKSxvPWEtbjtvPD0wJiYobys9Nyk7bGV0IGw9cy1vO3JldHVybiBNYXRoLmNlaWwobC83KSsxfXZhciB2bWksVWt0PXUoKCk9PntRbigpO1M5ZSgpO0prKCk7WWsoKTtLZSgpO2koamt0LCJnZXRXZWVrT2ZNb250aCIpO3ZtaT1qa3R9KTtmdW5jdGlvbiBBc2UodCxlKXtsZXQgcj1TZSh0LGU/LmluKSxhPXIuZ2V0TW9udGgoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksYSsxLDApLHIuc2V0SG91cnMoMCwwLDAsMCksU2UocixlPy5pbil9dmFyIFNtaSxUOWU9dSgoKT0+e0tlKCk7aShBc2UsImxhc3REYXlPZk1vbnRoIik7U21pPUFzZX0pO2Z1bmN0aW9uIFdrdCh0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiBHZihBc2UocixlKSxLMyhyLGUpLGUpKzF9dmFyIERtaSxHa3Q9dSgoKT0+e3RzZSgpO1Q5ZSgpO1lrKCk7S2UoKTtpKFdrdCwiZ2V0V2Vla3NJbk1vbnRoIik7RG1pPVdrdH0pO2Z1bmN0aW9uIFlrdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXRGdWxsWWVhcigpfXZhciBJbWksS2t0PXUoKCk9PntLZSgpO2koWWt0LCJnZXRZZWFyIik7SW1pPVlrdH0pO2Z1bmN0aW9uIFprdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KkYxKX12YXIgUm1pLFFrdD11KCgpPT57a3IoKTtpKFprdCwiaG91cnNUb01pbGxpc2Vjb25kcyIpO1JtaT1aa3R9KTtmdW5jdGlvbiBYa3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCpQaWUpfXZhciBxbWksSmt0PXUoKCk9PntrcigpO2koWGt0LCJob3Vyc1RvTWludXRlcyIpO3FtaT1Ya3R9KTtmdW5jdGlvbiBlU3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCpqZil9dmFyIFdtaSx0U3Q9dSgoKT0+e2tyKCk7aShlU3QsImhvdXJzVG9TZWNvbmRzIik7V21pPWVTdH0pO2Z1bmN0aW9uIHJTdCh0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKTtpZihpc05hTigrYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK3MpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihyPy5hc3NlcnRQb3NpdGl2ZSYmK2E+K3MpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OmEsZW5kOnN9fXZhciBabWksYVN0PXUoKCk9PntPYSgpO2koclN0LCJpbnRlcnZhbCIpO1ptaT1yU3R9KTtmdW5jdGlvbiBpU3QodCxlKXtsZXR7c3RhcnQ6cixlbmQ6YX09ZG4oZT8uaW4sdCkscz17fSxuPXVzZShhLHIpO24mJihzLnllYXJzPW4pO2xldCBvPVYzKHIse3llYXJzOnMueWVhcnN9KSxsPVkzKGEsbyk7bCYmKHMubW9udGhzPWwpO2xldCBjPVYzKG8se21vbnRoczpzLm1vbnRoc30pLGQ9bGIoYSxjKTtkJiYocy5kYXlzPWQpO2xldCBmPVYzKGMse2RheXM6cy5kYXlzfSkscD1ZZihhLGYpO3AmJihzLmhvdXJzPXApO2xldCBoPVYzKGYse2hvdXJzOnMuaG91cnN9KSxtPUtmKGEsaCk7bSYmKHMubWludXRlcz1tKTtsZXQgdj1WMyhoLHttaW51dGVzOnMubWludXRlc30pLGI9aTAoYSx2KTtyZXR1cm4gYiYmKHMuc2Vjb25kcz1iKSxzfXZhciBvNWksc1N0PXUoKCk9PntzMCgpO1k3ZSgpO2FzZSgpO2lzZSgpO29zZSgpO1drKCk7R2soKTtwOWUoKTtpKGlTdCwiaW50ZXJ2YWxUb0R1cmF0aW9uIik7bzVpPWlTdH0pO2Z1bmN0aW9uIG5TdCh0LGUscil7bGV0IGE7cmV0dXJuIE4wYShlKT9hPWU6cj1lLG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHI/LmxvY2FsZSxhKS5mb3JtYXQoU2UodCkpfWZ1bmN0aW9uIE4wYSh0KXtyZXR1cm4gdCE9PXZvaWQgMCYmISgibG9jYWxlImluIHQpfXZhciB1NWksb1N0PXUoKCk9PntLZSgpO2koblN0LCJpbnRsRm9ybWF0Iik7aShOMGEsImlzRm9ybWF0T3B0aW9ucyIpO3U1aT1uU3R9KTtmdW5jdGlvbiBsU3QodCxlLHIpe2xldCBhPTAscyxbbixvXT1CdChyPy5pbix0LGUpO2lmKHI/LnVuaXQpcz1yPy51bml0LHM9PT0ic2Vjb25kIj9hPWkwKG4sbyk6cz09PSJtaW51dGUiP2E9S2YobixvKTpzPT09ImhvdXIiP2E9WWYobixvKTpzPT09ImRheSI/YT1jbihuLG8pOnM9PT0id2VlayI/YT1HZihuLG8pOnM9PT0ibW9udGgiP2E9V2YobixvKTpzPT09InF1YXJ0ZXIiP2E9b2IobixvKTpzPT09InllYXIiJiYoYT1HMyhuLG8pKTtlbHNle2xldCBjPWkwKG4sbyk7TWF0aC5hYnMoYyk8dGI/KGE9aTAobixvKSxzPSJzZWNvbmQiKTpNYXRoLmFicyhjKTxqZj8oYT1LZihuLG8pLHM9Im1pbnV0ZSIpOk1hdGguYWJzKGMpPEFpZSYmTWF0aC5hYnMoY24obixvKSk8MT8oYT1ZZihuLG8pLHM9ImhvdXIiKTpNYXRoLmFicyhjKTxUeXQmJihhPWNuKG4sbykpJiZNYXRoLmFicyhhKTw3P3M9ImRheSI6TWF0aC5hYnMoYyk8VzdlPyhhPUdmKG4sbykscz0id2VlayIpOk1hdGguYWJzKGMpPEx5dD8oYT1XZihuLG8pLHM9Im1vbnRoIik6TWF0aC5hYnMoYyk8VTdlP29iKG4sbyk8ND8oYT1vYihuLG8pLHM9InF1YXJ0ZXIiKTooYT1HMyhuLG8pLHM9InllYXIiKTooYT1HMyhuLG8pLHM9InllYXIiKX1yZXR1cm4gbmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KHI/LmxvY2FsZSx7bnVtZXJpYzoiYXV0byIsLi4ucn0pLmZvcm1hdChhLHMpfXZhciBNNWksY1N0PXUoKCk9PntPYSgpO2tyKCk7UmQoKTtlc2UoKTtjOWUoKTt0c2UoKTtyc2UoKTtpc2UoKTtvc2UoKTtHaygpO2kobFN0LCJpbnRsRm9ybWF0RGlzdGFuY2UiKTtNNWk9bFN0fSk7ZnVuY3Rpb24gZFN0KHQsZSl7cmV0dXJuK1NlKHQpPitTZShlKX12YXIgVDVpLHVTdD11KCgpPT57S2UoKTtpKGRTdCwiaXNBZnRlciIpO1Q1aT1kU3R9KTtmdW5jdGlvbiBwU3QodCxlKXtyZXR1cm4rU2UodCk8K1NlKGUpfXZhciBBNWksZlN0PXUoKCk9PntLZSgpO2kocFN0LCJpc0JlZm9yZSIpO0E1aT1wU3R9KTtmdW5jdGlvbiBoU3QodCxlKXtyZXR1cm4rU2UodCk9PStTZShlKX12YXIgTjVpLG1TdD11KCgpPT57S2UoKTtpKGhTdCwiaXNFcXVhbCIpO041aT1oU3R9KTtmdW5jdGlvbiBnU3QodCxlLHIpe2xldCBhPW5ldyBEYXRlKHQsZSxyKTtyZXR1cm4gYS5nZXRGdWxsWWVhcigpPT09dCYmYS5nZXRNb250aCgpPT09ZSYmYS5nZXREYXRlKCk9PT1yfXZhciBGNWksYlN0PXUoKCk9PntpKGdTdCwiaXNFeGlzdHMiKTtGNWk9Z1N0fSk7ZnVuY3Rpb24geFN0KHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldERhdGUoKT09PTF9dmFyIFY1aSx2U3Q9dSgoKT0+e0tlKCk7aSh4U3QsImlzRmlyc3REYXlPZk1vbnRoIik7VjVpPXhTdH0pO2Z1bmN0aW9uIHlTdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXREYXkoKT09PTV9dmFyIEc1aSx3U3Q9dSgoKT0+e0tlKCk7aSh5U3QsImlzRnJpZGF5Iik7RzVpPXlTdH0pO2Z1bmN0aW9uIGtTdCh0KXtyZXR1cm4rU2UodCk+RGF0ZS5ub3coKX12YXIgUTVpLFNTdD11KCgpPT57S2UoKTtpKGtTdCwiaXNGdXR1cmUiKTtRNWk9a1N0fSk7ZnVuY3Rpb24gRXNlKHQsZSl7bGV0IHI9TzBhKGUpP25ldyBlKDApOlVlKGUsMCk7cmV0dXJuIHIuc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSksci5zZXRIb3Vycyh0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksdC5nZXRNaWxsaXNlY29uZHMoKSkscn1mdW5jdGlvbiBPMGEodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iJiZ0LnByb3RvdHlwZT8uY29uc3RydWN0b3I9PT10fXZhciB0OGksTDllPXUoKCk9PntWdCgpO2koRXNlLCJ0cmFuc3Bvc2UiKTtpKE8wYSwiaXNDb25zdHJ1Y3RvciIpO3Q4aT1Fc2V9KTt2YXIgUjBhLElzZSxQc2UsTnNlLEQ5ZT11KCgpPT57VnQoKTtMOWUoKTtSMGE9MTAsSXNlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNldHRlciIpfXN1YlByaW9yaXR5PTA7dmFsaWRhdGUoZSxyKXtyZXR1cm4hMH19LFBzZT1jbGFzcyBleHRlbmRzIElzZXtzdGF0aWN7aSh0aGlzLCJWYWx1ZVNldHRlciIpfWNvbnN0cnVjdG9yKGUscixhLHMsbil7c3VwZXIoKSx0aGlzLnZhbHVlPWUsdGhpcy52YWxpZGF0ZVZhbHVlPXIsdGhpcy5zZXRWYWx1ZT1hLHRoaXMucHJpb3JpdHk9cyxuJiYodGhpcy5zdWJQcmlvcml0eT1uKX12YWxpZGF0ZShlLHIpe3JldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoZSx0aGlzLnZhbHVlLHIpfXNldChlLHIsYSl7cmV0dXJuIHRoaXMuc2V0VmFsdWUoZSxyLHRoaXMudmFsdWUsYSl9fSxOc2U9Y2xhc3MgZXh0ZW5kcyBJc2V7c3RhdGlje2kodGhpcywiRGF0ZVRpbWV6b25lU2V0dGVyIil9cHJpb3JpdHk9UjBhO3N1YlByaW9yaXR5PS0xO2NvbnN0cnVjdG9yKGUscil7c3VwZXIoKSx0aGlzLmNvbnRleHQ9ZXx8KGE9PlVlKHIsYSkpfXNldChlLHIpe3JldHVybiByLnRpbWVzdGFtcElzU2V0P2U6VWUoZSxFc2UoZSx0aGlzLmNvbnRleHQpKX19fSk7dmFyIE10LHhhPXUoKCk9PntEOWUoKTtNdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQYXJzZXIiKX1ydW4oZSxyLGEscyl7bGV0IG49dGhpcy5wYXJzZShlLHIsYSxzKTtyZXR1cm4gbj97c2V0dGVyOm5ldyBQc2Uobi52YWx1ZSx0aGlzLnZhbGlkYXRlLHRoaXMuc2V0LHRoaXMucHJpb3JpdHksdGhpcy5zdWJQcmlvcml0eSkscmVzdDpuLnJlc3R9Om51bGx9dmFsaWRhdGUoZSxyLGEpe3JldHVybiEwfX19KTt2YXIgT3NlLE1TdD11KCgpPT57eGEoKTtPc2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJFcmFQYXJzZXIiKX1wcmlvcml0eT0xNDA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkciOmNhc2UiR0ciOmNhc2UiR0dHIjpyZXR1cm4gYS5lcmEoZSx7d2lkdGg6ImFiYnJldmlhdGVkIn0pfHxhLmVyYShlLHt3aWR0aDoibmFycm93In0pO2Nhc2UiR0dHR0ciOnJldHVybiBhLmVyYShlLHt3aWR0aDoibmFycm93In0pO2RlZmF1bHQ6cmV0dXJuIGEuZXJhKGUse3dpZHRoOiJ3aWRlIn0pfHxhLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSl9fXNldChlLHIsYSl7cmV0dXJuIHIuZXJhPWEsZS5zZXRGdWxsWWVhcihhLDAsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlIiLCJ1IiwidCIsIlQiXX19KTt2YXIgbGEsTWwsZW89dSgoKT0+e2xhPXttb250aDovXigxWzAtMl18MD9cZCkvLGRhdGU6L14oM1swLTFdfFswLTJdP1xkKS8sZGF5T2ZZZWFyOi9eKDM2WzAtNl18M1swLTVdXGR8WzAtMl0/XGQ/XGQpLyx3ZWVrOi9eKDVbMC0zXXxbMC00XT9cZCkvLGhvdXIyM2g6L14oMlswLTNdfFswLTFdP1xkKS8saG91cjI0aDovXigyWzAtNF18WzAtMV0/XGQpLyxob3VyMTFoOi9eKDFbMC0xXXwwP1xkKS8saG91cjEyaDovXigxWzAtMl18MD9cZCkvLG1pbnV0ZTovXlswLTVdP1xkLyxzZWNvbmQ6L15bMC01XT9cZC8sc2luZ2xlRGlnaXQ6L15cZC8sdHdvRGlnaXRzOi9eXGR7MSwyfS8sdGhyZWVEaWdpdHM6L15cZHsxLDN9Lyxmb3VyRGlnaXRzOi9eXGR7MSw0fS8sYW55RGlnaXRzU2lnbmVkOi9eLT9cZCsvLHNpbmdsZURpZ2l0U2lnbmVkOi9eLT9cZC8sdHdvRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDJ9Lyx0aHJlZURpZ2l0c1NpZ25lZDovXi0/XGR7MSwzfS8sZm91ckRpZ2l0c1NpZ25lZDovXi0/XGR7MSw0fS99LE1sPXtiYXNpY09wdGlvbmFsTWludXRlczovXihbKy1dKShcZHsyfSkoXGR7Mn0pP3xaLyxiYXNpYzovXihbKy1dKShcZHsyfSkoXGR7Mn0pfFovLGJhc2ljT3B0aW9uYWxTZWNvbmRzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSkoKFxkezJ9KSk/fFovLGV4dGVuZGVkOi9eKFsrLV0pKFxkezJ9KTooXGR7Mn0pfFovLGV4dGVuZGVkT3B0aW9uYWxTZWNvbmRzOi9eKFsrLV0pKFxkezJ9KTooXGR7Mn0pKDooXGR7Mn0pKT98Wi99fSk7ZnVuY3Rpb24gUmEodCxlKXtyZXR1cm4gdCYme3ZhbHVlOmUodC52YWx1ZSkscmVzdDp0LnJlc3R9fWZ1bmN0aW9uIGFhKHQsZSl7bGV0IHI9ZS5tYXRjaCh0KTtyZXR1cm4gcj97dmFsdWU6cGFyc2VJbnQoclswXSwxMCkscmVzdDplLnNsaWNlKHJbMF0ubGVuZ3RoKX06bnVsbH1mdW5jdGlvbiBDbCh0LGUpe2xldCByPWUubWF0Y2godCk7aWYoIXIpcmV0dXJuIG51bGw7aWYoclswXT09PSJaIilyZXR1cm57dmFsdWU6MCxyZXN0OmUuc2xpY2UoMSl9O2xldCBhPXJbMV09PT0iKyI/MTotMSxzPXJbMl0/cGFyc2VJbnQoclsyXSwxMCk6MCxuPXJbM10/cGFyc2VJbnQoclszXSwxMCk6MCxvPXJbNV0/cGFyc2VJbnQocls1XSwxMCk6MDtyZXR1cm57dmFsdWU6YSoocypGMStuKlpuK28qSmcpLHJlc3Q6ZS5zbGljZShyWzBdLmxlbmd0aCl9fWZ1bmN0aW9uIFJzZSh0KXtyZXR1cm4gYWEobGEuYW55RGlnaXRzU2lnbmVkLHQpfWZ1bmN0aW9uIGJyKHQsZSl7c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gYWEobGEuc2luZ2xlRGlnaXQsZSk7Y2FzZSAyOnJldHVybiBhYShsYS50d29EaWdpdHMsZSk7Y2FzZSAzOnJldHVybiBhYShsYS50aHJlZURpZ2l0cyxlKTtjYXNlIDQ6cmV0dXJuIGFhKGxhLmZvdXJEaWdpdHMsZSk7ZGVmYXVsdDpyZXR1cm4gYWEobmV3IFJlZ0V4cCgiXlxcZHsxLCIrdCsifSIpLGUpfX1mdW5jdGlvbiB2Yih0LGUpe3N3aXRjaCh0KXtjYXNlIDE6cmV0dXJuIGFhKGxhLnNpbmdsZURpZ2l0U2lnbmVkLGUpO2Nhc2UgMjpyZXR1cm4gYWEobGEudHdvRGlnaXRzU2lnbmVkLGUpO2Nhc2UgMzpyZXR1cm4gYWEobGEudGhyZWVEaWdpdHNTaWduZWQsZSk7Y2FzZSA0OnJldHVybiBhYShsYS5mb3VyRGlnaXRzU2lnbmVkLGUpO2RlZmF1bHQ6cmV0dXJuIGFhKG5ldyBSZWdFeHAoIl4tP1xcZHsxLCIrdCsifSIpLGUpfX1mdW5jdGlvbiB5Yih0KXtzd2l0Y2godCl7Y2FzZSJtb3JuaW5nIjpyZXR1cm4gNDtjYXNlImV2ZW5pbmciOnJldHVybiAxNztjYXNlInBtIjpjYXNlIm5vb24iOmNhc2UiYWZ0ZXJub29uIjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gRnNlKHQsZSl7bGV0IHI9ZT4wLGE9cj9lOjEtZSxzO2lmKGE8PTUwKXM9dHx8MTAwO2Vsc2V7bGV0IG49YSs1MCxvPU1hdGgudHJ1bmMobi8xMDApKjEwMCxsPXQ+PW4lMTAwO3M9dCtvLShsPzEwMDowKX1yZXR1cm4gcj9zOjEtc31mdW5jdGlvbiBCc2UodCl7cmV0dXJuIHQlNDAwPT09MHx8dCU0PT09MCYmdCUxMDAhPT0wfXZhciBMYT11KCgpPT57a3IoKTtlbygpO2koUmEsIm1hcFZhbHVlIik7aShhYSwicGFyc2VOdW1lcmljUGF0dGVybiIpO2koQ2wsInBhcnNlVGltZXpvbmVQYXR0ZXJuIik7aShSc2UsInBhcnNlQW55RGlnaXRzU2lnbmVkIik7aShiciwicGFyc2VORGlnaXRzIik7aSh2YiwicGFyc2VORGlnaXRzU2lnbmVkIik7aSh5YiwiZGF5UGVyaW9kRW51bVRvSG91cnMiKTtpKEZzZSwibm9ybWFsaXplVHdvRGlnaXRZZWFyIik7aShCc2UsImlzTGVhcFllYXJJbmRleCIpfSk7dmFyIEhzZSxDU3Q9dSgoKT0+e3hhKCk7TGEoKTtIc2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJZZWFyUGFyc2VyIil9cHJpb3JpdHk9MTMwO2luY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwidSIsInciLCJJIiwiaSIsImUiLCJjIiwidCIsIlQiXTtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT4oe3llYXI6bixpc1R3b0RpZ2l0WWVhcjpyPT09Inl5In0pLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UieSI6cmV0dXJuIFJhKGJyKDQsZSkscyk7Y2FzZSJ5byI6cmV0dXJuIFJhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLHMpO2RlZmF1bHQ6cmV0dXJuIFJhKGJyKHIubGVuZ3RoLGUpLHMpfX12YWxpZGF0ZShlLHIpe3JldHVybiByLmlzVHdvRGlnaXRZZWFyfHxyLnllYXI+MH1zZXQoZSxyLGEpe2xldCBzPWUuZ2V0RnVsbFllYXIoKTtpZihhLmlzVHdvRGlnaXRZZWFyKXtsZXQgbz1Gc2UoYS55ZWFyLHMpO3JldHVybiBlLnNldEZ1bGxZZWFyKG8sMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9bGV0IG49ISgiZXJhImluIHIpfHxyLmVyYT09PTE/YS55ZWFyOjEtYS55ZWFyO3JldHVybiBlLnNldEZ1bGxZZWFyKG4sMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9fX0pO3ZhciBxc2UselN0PXUoKCk9PntLaygpO2syKCk7eGEoKTtMYSgpO3FzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIkxvY2FsV2Vla1llYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7cGFyc2UoZSxyLGEpe2xldCBzPWkobj0+KHt5ZWFyOm4saXNUd29EaWdpdFllYXI6cj09PSJZWSJ9KSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaChyKXtjYXNlIlkiOnJldHVybiBSYShicig0LGUpLHMpO2Nhc2UiWW8iOnJldHVybiBSYShhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoieWVhciJ9KSxzKTtkZWZhdWx0OnJldHVybiBSYShicihyLmxlbmd0aCxlKSxzKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gci5pc1R3b0RpZ2l0WWVhcnx8ci55ZWFyPjB9c2V0KGUscixhLHMpe2xldCBuPVozKGUscyk7aWYoYS5pc1R3b0RpZ2l0WWVhcil7bGV0IGw9RnNlKGEueWVhcixuKTtyZXR1cm4gZS5zZXRGdWxsWWVhcihsLDAscy5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksWWEoZSxzKX1sZXQgbz0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9hLnllYXI6MS1hLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIobywwLHMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSxlLnNldEhvdXJzKDAsMCwwLDApLFlhKGUscyl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwiUSIsInEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO3ZhciBWc2UsX1N0PXUoKCk9Pnt0MCgpO1Z0KCk7eGEoKTtMYSgpO1ZzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIklTT1dlZWtZZWFyUGFyc2VyIil9cHJpb3JpdHk9MTMwO3BhcnNlKGUscil7cmV0dXJuIHI9PT0iUiI/dmIoNCxlKTp2YihyLmxlbmd0aCxlKX1zZXQoZSxyLGEpe2xldCBzPVVlKGUsMCk7cmV0dXJuIHMuc2V0RnVsbFllYXIoYSwwLDQpLHMuc2V0SG91cnMoMCwwLDAsMCksYnMocyl9aW5jb21wYXRpYmxlVG9rZW5zPVsiRyIsInkiLCJZIiwidSIsIlEiLCJxIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIGpzZSxUU3Q9dSgoKT0+e3hhKCk7TGEoKTtqc2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJFeHRlbmRlZFllYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7cGFyc2UoZSxyKXtyZXR1cm4gcj09PSJ1Ij92Yig0LGUpOnZiKHIubGVuZ3RoLGUpfXNldChlLHIsYSl7cmV0dXJuIGUuc2V0RnVsbFllYXIoYSwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBVc2UsTFN0PXUoKCk9Pnt4YSgpO0xhKCk7VXNlPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiUXVhcnRlclBhcnNlciIpfXByaW9yaXR5PTEyMDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiUSI6Y2FzZSJRUSI6cmV0dXJuIGJyKHIubGVuZ3RoLGUpO2Nhc2UiUW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiBhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLnF1YXJ0ZXIoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD00fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TW9udGgoKGEtMSkqMywxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgV3NlLERTdD11KCgpPT57eGEoKTtMYSgpO1dzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIlN0YW5kQWxvbmVRdWFydGVyUGFyc2VyIil9cHJpb3JpdHk9MTIwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJxIjpjYXNlInFxIjpyZXR1cm4gYnIoci5sZW5ndGgsZSk7Y2FzZSJxbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UicXFxIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTR9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNb250aCgoYS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsIlEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBHc2UsJFN0PXUoKCk9PntlbygpO3hhKCk7TGEoKTtHc2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJNb250aFBhcnNlciIpfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJMIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXTtwcmlvcml0eT0xMTA7cGFyc2UoZSxyLGEpe2xldCBzPWkobj0+bi0xLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UiTSI6cmV0dXJuIFJhKGFhKGxhLm1vbnRoLGUpLHMpO2Nhc2UiTU0iOnJldHVybiBSYShicigyLGUpLHMpO2Nhc2UiTW8iOnJldHVybiBSYShhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoibW9udGgifSkscyk7Y2FzZSJNTU0iOnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9MTF9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNb250aChhLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIFlzZSxBU3Q9dSgoKT0+e2VvKCk7eGEoKTtMYSgpO1lzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIlN0YW5kQWxvbmVNb250aFBhcnNlciIpfXByaW9yaXR5PTExMDtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT5uLTEsInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJMIjpyZXR1cm4gUmEoYWEobGEubW9udGgsZSkscyk7Y2FzZSJMTCI6cmV0dXJuIFJhKGJyKDIsZSkscyk7Y2FzZSJMbyI6cmV0dXJuIFJhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxzKTtjYXNlIkxMTCI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQoZSxyLGEpe3JldHVybiBlLnNldE1vbnRoKGEsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBLc2UodCxlLHIpe2xldCBhPVNlKHQscj8uaW4pLHM9YmIoYSxyKS1lO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktcyo3KSxTZShhLHI/LmluKX12YXIgczdpLCQ5ZT11KCgpPT57a3NlKCk7S2UoKTtpKEtzZSwic2V0V2VlayIpO3M3aT1Lc2V9KTt2YXIgWnNlLEVTdD11KCgpPT57JDllKCk7azIoKTtlbygpO3hhKCk7TGEoKTtac2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJMb2NhbFdlZWtQYXJzZXIiKX1wcmlvcml0eT0xMDA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlInciOnJldHVybiBhYShsYS53ZWVrLGUpO2Nhc2Uid28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MSYmcjw9NTN9c2V0KGUscixhLHMpe3JldHVybiBZYShLc2UoZSxhLHMpLHMpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJpIiwidCIsIlQiXX19KTtmdW5jdGlvbiBRc2UodCxlLHIpe2xldCBhPVNlKHQscj8uaW4pLHM9Z2IoYSxyKS1lO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktcyo3KSxhfXZhciBiN2ksQTllPXUoKCk9Pnt5c2UoKTtLZSgpO2koUXNlLCJzZXRJU09XZWVrIik7YjdpPVFzZX0pO3ZhciBYc2UsSVN0PXUoKCk9PntBOWUoKTt0MCgpO2VvKCk7eGEoKTtMYSgpO1hzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIklTT1dlZWtQYXJzZXIiKX1wcmlvcml0eT0xMDA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkkiOnJldHVybiBhYShsYS53ZWVrLGUpO2Nhc2UiSW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MSYmcjw9NTN9c2V0KGUscixhKXtyZXR1cm4gYnMoUXNlKGUsYSkpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIEYwYSxCMGEsSnNlLFBTdD11KCgpPT57ZW8oKTt4YSgpO0xhKCk7RjBhPVszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sQjBhPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sSnNlPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiRGF0ZVBhcnNlciIpfXByaW9yaXR5PTkwO3N1YlByaW9yaXR5PTE7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlImQiOnJldHVybiBhYShsYS5kYXRlLGUpO2Nhc2UiZG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtsZXQgYT1lLmdldEZ1bGxZZWFyKCkscz1Cc2UoYSksbj1lLmdldE1vbnRoKCk7cmV0dXJuIHM/cj49MSYmcjw9QjBhW25dOnI+PTEmJnI8PUYwYVtuXX1zZXQoZSxyLGEpe3JldHVybiBlLnNldERhdGUoYSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBlbmUsTlN0PXUoKCk9PntlbygpO3hhKCk7TGEoKTtlbmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJEYXlPZlllYXJQYXJzZXIiKX1wcmlvcml0eT05MDtzdWJwcmlvcml0eT0xO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJEIjpjYXNlIkREIjpyZXR1cm4gYWEobGEuZGF5T2ZZZWFyLGUpO2Nhc2UiRG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtsZXQgYT1lLmdldEZ1bGxZZWFyKCk7cmV0dXJuIEJzZShhKT9yPj0xJiZyPD0zNjY6cj49MSYmcjw9MzY1fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TW9udGgoMCxhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7ZnVuY3Rpb24gSjModCxlLHIpe2xldCBhPVRhKCkscz1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9hLndlZWtTdGFydHNPbj8/YS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxuPVNlKHQscj8uaW4pLG89bi5nZXREYXkoKSxjPShlJTcrNyklNyxkPTctcyxmPWU8MHx8ZT42P2UtKG8rZCklNzooYytkKSU3LShvK2QpJTc7cmV0dXJuIFJzKG4sZixyKX12YXIgQjdpLGVTPXUoKCk9PntRbigpO1hjKCk7S2UoKTtpKEozLCJzZXREYXkiKTtCN2k9SjN9KTt2YXIgdG5lLE9TdD11KCgpPT57ZVMoKTt4YSgpO3RuZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIkRheVBhcnNlciIpfXByaW9yaXR5PTkwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiBhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQoZSxyLGEscyl7cmV0dXJuIGU9SjMoZSxhLHMpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgcm5lLFJTdD11KCgpPT57ZVMoKTt4YSgpO0xhKCk7cm5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiTG9jYWxEYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHIsYSxzKXtsZXQgbj1pKG89PntsZXQgbD1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rcy53ZWVrU3RhcnRzT24rNiklNytsfSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaChyKXtjYXNlImUiOmNhc2UiZWUiOnJldHVybiBSYShicihyLmxlbmd0aCxlKSxuKTtjYXNlImVvIjpyZXR1cm4gUmEoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxuKTtjYXNlImVlZSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWUiOnJldHVybiBhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWVlIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQoZSxyLGEscyl7cmV0dXJuIGU9SjMoZSxhLHMpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJjIiwidCIsIlQiXX19KTt2YXIgYW5lLEZTdD11KCgpPT57ZVMoKTt4YSgpO0xhKCk7YW5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZUxvY2FsRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSxyLGEscyl7bGV0IG49aShvPT57bGV0IGw9TWF0aC5mbG9vcigoby0xKS83KSo3O3JldHVybihvK3Mud2Vla1N0YXJ0c09uKzYpJTcrbH0sInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJjIjpjYXNlImNjIjpyZXR1cm4gUmEoYnIoci5sZW5ndGgsZSksbik7Y2FzZSJjbyI6cmV0dXJuIFJhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXkifSksbik7Y2FzZSJjY2MiOnJldHVybiBhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjYyI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBhLmRheShlLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTAmJnI8PTZ9c2V0KGUscixhLHMpe3JldHVybiBlPUozKGUsYSxzKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsIkUiLCJpIiwiZSIsInQiLCJUIl19fSk7ZnVuY3Rpb24gaW5lKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKSxzPSRzZShhLHIpLG49ZS1zO3JldHVybiBScyhhLG4scil9dmFyIG45aSxFOWU9dSgoKT0+e1hjKCk7XzllKCk7S2UoKTtpKGluZSwic2V0SVNPRGF5Iik7bjlpPWluZX0pO3ZhciBzbmUsQlN0PXUoKCk9PntFOWUoKTt4YSgpO0xhKCk7c25lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiSVNPRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSxyLGEpe2xldCBzPWkobj0+bj09PTA/NzpuLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIGJyKHIubGVuZ3RoLGUpO2Nhc2UiaW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gUmEoYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscyk7Y2FzZSJpaWlpaSI6cmV0dXJuIFJhKGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscyk7Y2FzZSJpaWlpaWkiOnJldHVybiBSYShhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscyk7ZGVmYXVsdDpyZXR1cm4gUmEoYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLHMpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD03fXNldChlLHIsYSl7cmV0dXJuIGU9aW5lKGUsYSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJFIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBubmUsSFN0PXUoKCk9Pnt4YSgpO0xhKCk7bm5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiQU1QTVBhcnNlciIpfXByaW9yaXR5PTgwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJhIjpjYXNlImFhIjpjYXNlImFhYSI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYWFhIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX1zZXQoZSxyLGEpe3JldHVybiBlLnNldEhvdXJzKHliKGEpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImIiLCJCIiwiSCIsImsiLCJ0IiwiVCJdfX0pO3ZhciBvbmUscVN0PXUoKCk9Pnt4YSgpO0xhKCk7b25lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiQU1QTU1pZG5pZ2h0UGFyc2VyIil9cHJpb3JpdHk9ODA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlImIiOmNhc2UiYmIiOmNhc2UiYmJiIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiYmIiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0SG91cnMoeWIoYSksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIGxuZSxWU3Q9dSgoKT0+e3hhKCk7TGEoKTtsbmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJEYXlQZXJpb2RQYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJCQkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUscixhKXtyZXR1cm4gZS5zZXRIb3Vycyh5YihhKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiYiIsInQiLCJUIl19fSk7dmFyIGNuZSxqU3Q9dSgoKT0+e2VvKCk7eGEoKTtMYSgpO2NuZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIkhvdXIxdG8xMlBhcnNlciIpfXByaW9yaXR5PTcwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJoIjpyZXR1cm4gYWEobGEuaG91cjEyaCxlKTtjYXNlImhvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gYnIoci5sZW5ndGgsZSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTEyfXNldChlLHIsYSl7bGV0IHM9ZS5nZXRIb3VycygpPj0xMjtyZXR1cm4gcyYmYTwxMj9lLnNldEhvdXJzKGErMTIsMCwwLDApOiFzJiZhPT09MTI/ZS5zZXRIb3VycygwLDAsMCwwKTplLnNldEhvdXJzKGEsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiSCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIgZG5lLFVTdD11KCgpPT57ZW8oKTt4YSgpO0xhKCk7ZG5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiSG91cjB0bzIzUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkgiOnJldHVybiBhYShsYS5ob3VyMjNoLGUpO2Nhc2UiSG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9MjN9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRIb3VycyhhLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIgdW5lLFdTdD11KCgpPT57ZW8oKTt4YSgpO0xhKCk7dW5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiSG91cjBUbzExUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIksiOnJldHVybiBhYShsYS5ob3VyMTFoLGUpO2Nhc2UiS28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9MTF9c2V0KGUscixhKXtyZXR1cm4gZS5nZXRIb3VycygpPj0xMiYmYTwxMj9lLnNldEhvdXJzKGErMTIsMCwwLDApOmUuc2V0SG91cnMoYSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJoIiwiSCIsImsiLCJ0IiwiVCJdfX0pO3ZhciBwbmUsR1N0PXUoKCk9PntlbygpO3hhKCk7TGEoKTtwbmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJIb3VyMVRvMjRQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiayI6cmV0dXJuIGFhKGxhLmhvdXIyNGgsZSk7Y2FzZSJrbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIGJyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD0yNH1zZXQoZSxyLGEpe2xldCBzPWE8PTI0P2ElMjQ6YTtyZXR1cm4gZS5zZXRIb3VycyhzLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIkgiLCJLIiwidCIsIlQiXX19KTt2YXIgZm5lLFlTdD11KCgpPT57ZW8oKTt4YSgpO0xhKCk7Zm5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiTWludXRlUGFyc2VyIil9cHJpb3JpdHk9NjA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIm0iOnJldHVybiBhYShsYS5taW51dGUsZSk7Y2FzZSJtbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJtaW51dGUifSk7ZGVmYXVsdDpyZXR1cm4gYnIoci5sZW5ndGgsZSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TWludXRlcyhhLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciBobmUsS1N0PXUoKCk9PntlbygpO3hhKCk7TGEoKTtobmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJTZWNvbmRQYXJzZXIiKX1wcmlvcml0eT01MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UicyI6cmV0dXJuIGFhKGxhLnNlY29uZCxlKTtjYXNlInNvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InNlY29uZCJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9NTl9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRTZWNvbmRzKGEsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciBtbmUsWlN0PXUoKCk9Pnt4YSgpO0xhKCk7bW5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiRnJhY3Rpb25PZlNlY29uZFBhcnNlciIpfXByaW9yaXR5PTMwO3BhcnNlKGUscil7bGV0IGE9aShzPT5NYXRoLnRydW5jKHMqTWF0aC5wb3coMTAsLXIubGVuZ3RoKzMpKSwidmFsdWVDYWxsYmFjayIpO3JldHVybiBSYShicihyLmxlbmd0aCxlKSxhKX1zZXQoZSxyLGEpe3JldHVybiBlLnNldE1pbGxpc2Vjb25kcyhhKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIGduZSxRU3Q9dSgoKT0+e1Z0KCk7T2QoKTtlbygpO3hhKCk7TGEoKTtnbmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJJU09UaW1lem9uZVdpdGhaUGFyc2VyIil9cHJpb3JpdHk9MTA7cGFyc2UoZSxyKXtzd2l0Y2gocil7Y2FzZSJYIjpyZXR1cm4gQ2woTWwuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJYWCI6cmV0dXJuIENsKE1sLmJhc2ljLGUpO2Nhc2UiWFhYWCI6cmV0dXJuIENsKE1sLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UiWFhYWFgiOnJldHVybiBDbChNbC5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBDbChNbC5leHRlbmRlZCxlKX19c2V0KGUscixhKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD9lOlVlKGUsZS5nZXRUaW1lKCktRWkoZSktYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJ4Il19fSk7dmFyIGJuZSxYU3Q9dSgoKT0+e1Z0KCk7T2QoKTtlbygpO3hhKCk7TGEoKTtibmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJJU09UaW1lem9uZVBhcnNlciIpfXByaW9yaXR5PTEwO3BhcnNlKGUscil7c3dpdGNoKHIpe2Nhc2UieCI6cmV0dXJuIENsKE1sLmJhc2ljT3B0aW9uYWxNaW51dGVzLGUpO2Nhc2UieHgiOnJldHVybiBDbChNbC5iYXNpYyxlKTtjYXNlInh4eHgiOnJldHVybiBDbChNbC5iYXNpY09wdGlvbmFsU2Vjb25kcyxlKTtjYXNlInh4eHh4IjpyZXR1cm4gQ2woTWwuZXh0ZW5kZWRPcHRpb25hbFNlY29uZHMsZSk7ZGVmYXVsdDpyZXR1cm4gQ2woTWwuZXh0ZW5kZWQsZSl9fXNldChlLHIsYSl7cmV0dXJuIHIudGltZXN0YW1wSXNTZXQ/ZTpVZShlLGUuZ2V0VGltZSgpLUVpKGUpLWEpfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIiwiWCJdfX0pO3ZhciB4bmUsSlN0PXUoKCk9PntWdCgpO3hhKCk7TGEoKTt4bmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJUaW1lc3RhbXBTZWNvbmRzUGFyc2VyIil9cHJpb3JpdHk9NDA7cGFyc2UoZSl7cmV0dXJuIFJzZShlKX1zZXQoZSxyLGEpe3JldHVybltVZShlLGEqMWUzKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciB2bmUsZU10PXUoKCk9PntWdCgpO3hhKCk7TGEoKTt2bmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJUaW1lc3RhbXBNaWxsaXNlY29uZHNQYXJzZXIiKX1wcmlvcml0eT0yMDtwYXJzZShlKXtyZXR1cm4gUnNlKGUpfXNldChlLHIsYSl7cmV0dXJuW1VlKGUsYSkse3RpbWVzdGFtcElzU2V0OiEwfV19aW5jb21wYXRpYmxlVG9rZW5zPSIqIn19KTt2YXIgeW5lLHRNdD11KCgpPT57TVN0KCk7Q1N0KCk7elN0KCk7X1N0KCk7VFN0KCk7TFN0KCk7RFN0KCk7JFN0KCk7QVN0KCk7RVN0KCk7SVN0KCk7UFN0KCk7TlN0KCk7T1N0KCk7UlN0KCk7RlN0KCk7QlN0KCk7SFN0KCk7cVN0KCk7VlN0KCk7alN0KCk7VVN0KCk7V1N0KCk7R1N0KCk7WVN0KCk7S1N0KCk7WlN0KCk7UVN0KCk7WFN0KCk7SlN0KCk7ZU10KCk7eW5lPXtHOm5ldyBPc2UseTpuZXcgSHNlLFk6bmV3IHFzZSxSOm5ldyBWc2UsdTpuZXcganNlLFE6bmV3IFVzZSxxOm5ldyBXc2UsTTpuZXcgR3NlLEw6bmV3IFlzZSx3Om5ldyBac2UsSTpuZXcgWHNlLGQ6bmV3IEpzZSxEOm5ldyBlbmUsRTpuZXcgdG5lLGU6bmV3IHJuZSxjOm5ldyBhbmUsaTpuZXcgc25lLGE6bmV3IG5uZSxiOm5ldyBvbmUsQjpuZXcgbG5lLGg6bmV3IGNuZSxIOm5ldyBkbmUsSzpuZXcgdW5lLGs6bmV3IHBuZSxtOm5ldyBmbmUsczpuZXcgaG5lLFM6bmV3IG1uZSxYOm5ldyBnbmUseDpuZXcgYm5lLHQ6bmV3IHhuZSxUOm5ldyB2bmV9fSk7ZnVuY3Rpb24gd25lKHQsZSxyLGEpe2xldCBzPWkoKCk9PlVlKGE/LmlufHxyLE5hTiksImludmFsaWREYXRlIiksbj1Ec2UoKSxvPWE/LmxvY2FsZT8/bi5sb2NhbGU/P2gxLGw9YT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5maXJzdFdlZWtDb250YWluc0RhdGU/P24ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsYz1hPy53ZWVrU3RhcnRzT24/P2E/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9uLndlZWtTdGFydHNPbj8/bi5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MDtpZighZSlyZXR1cm4gdD9zKCk6U2UocixhPy5pbik7bGV0IGQ9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpsLHdlZWtTdGFydHNPbjpjLGxvY2FsZTpvfSxmPVtuZXcgTnNlKGE/LmluLHIpXSxwPWUubWF0Y2gocTBhKS5tYXAoZz0+e2xldCB5PWdbMF07aWYoeSBpbiBRMyl7bGV0IGs9UTNbeV07cmV0dXJuIGsoZyxvLmZvcm1hdExvbmcpfXJldHVybiBnfSkuam9pbigiIikubWF0Y2goSDBhKSxoPVtdO2ZvcihsZXQgZyBvZiBwKXshYT8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZNc2UoZykmJlFrKGcsZSx0KSwhYT8udXNlQWRkaXRpb25hbERheU9mWWVhclRva2VucyYmU3NlKGcpJiZRayhnLGUsdCk7bGV0IHk9Z1swXSxrPXluZVt5XTtpZihrKXtsZXR7aW5jb21wYXRpYmxlVG9rZW5zOk19PWs7aWYoQXJyYXkuaXNBcnJheShNKSl7bGV0IF89aC5maW5kKFM9Pk0uaW5jbHVkZXMoUy50b2tlbil8fFMudG9rZW49PT15KTtpZihfKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke18uZnVsbFRva2VufVxgIGFuZCBcYCR7Z31cYCBhdCB0aGUgc2FtZSB0aW1lYCl9ZWxzZSBpZihrLmluY29tcGF0aWJsZVRva2Vucz09PSIqIiYmaC5sZW5ndGg+MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlIGZvcm1hdCBzdHJpbmcgbXVzdG4ndCBjb250YWluIFxgJHtnfVxgIGFuZCBhbnkgb3RoZXIgdG9rZW4gYXQgdGhlIHNhbWUgdGltZWApO2gucHVzaCh7dG9rZW46eSxmdWxsVG9rZW46Z30pO2xldCBOPWsucnVuKHQsZyxvLm1hdGNoLGQpO2lmKCFOKXJldHVybiBzKCk7Zi5wdXNoKE4uc2V0dGVyKSx0PU4ucmVzdH1lbHNle2lmKHkubWF0Y2goVzBhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK3krImAiKTtpZihnPT09IicnIj9nPSInIjp5PT09IiciJiYoZz1HMGEoZykpLHQuaW5kZXhPZihnKT09PTApdD10LnNsaWNlKGcubGVuZ3RoKTtlbHNlIHJldHVybiBzKCl9fWlmKHQubGVuZ3RoPjAmJlUwYS50ZXN0KHQpKXJldHVybiBzKCk7bGV0IG09Zi5tYXAoZz0+Zy5wcmlvcml0eSkuc29ydCgoZyx5KT0+eS1nKS5maWx0ZXIoKGcseSxrKT0+ay5pbmRleE9mKGcpPT09eSkubWFwKGc9PmYuZmlsdGVyKHk9PnkucHJpb3JpdHk9PT1nKS5zb3J0KCh5LGspPT5rLnN1YlByaW9yaXR5LXkuc3ViUHJpb3JpdHkpKS5tYXAoZz0+Z1swXSksdj1TZShyLGE/LmluKTtpZihpc05hTigrdikpcmV0dXJuIHMoKTtsZXQgYj17fTtmb3IobGV0IGcgb2YgbSl7aWYoIWcudmFsaWRhdGUodixkKSlyZXR1cm4gcygpO2xldCB5PWcuc2V0KHYsYixkKTtBcnJheS5pc0FycmF5KHkpPyh2PXlbMF0sT2JqZWN0LmFzc2lnbihiLHlbMV0pKTp2PXl9cmV0dXJuIHZ9ZnVuY3Rpb24gRzBhKHQpe3JldHVybiB0Lm1hdGNoKFYwYSlbMV0ucmVwbGFjZShqMGEsIiciKX12YXIgSDBhLHEwYSxWMGEsajBhLFUwYSxXMGEsZ2JpLEk5ZT11KCgpPT57WmYoKTt4OWUoKTt2OWUoKTtWdCgpO3o5ZSgpO0tlKCk7RDllKCk7dE10KCk7SDBhPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2cscTBhPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLFYwYT0vXicoW15dKj8pJz8kLyxqMGE9LycnL2csVTBhPS9cUy8sVzBhPS9bYS16QS1aXS87aSh3bmUsInBhcnNlIik7aShHMGEsImNsZWFuRXNjYXBlZFN0cmluZyIpO2diaT13bmV9KTtmdW5jdGlvbiByTXQodCxlLHIpe3JldHVybiBfbih3bmUodCxlLG5ldyBEYXRlLHIpKX12YXIgd2JpLGFNdD11KCgpPT57RmQoKTtJOWUoKTtpKHJNdCwiaXNNYXRjaCIpO3diaT1yTXR9KTtmdW5jdGlvbiBpTXQodCxlKXtyZXR1cm4gU2UodCxlPy5pbikuZ2V0RGF5KCk9PT0xfXZhciBDYmksc010PXUoKCk9PntLZSgpO2koaU10LCJpc01vbmRheSIpO0NiaT1pTXR9KTtmdW5jdGlvbiBuTXQodCl7cmV0dXJuK1NlKHQpPERhdGUubm93KCl9dmFyIExiaSxvTXQ9dSgoKT0+e0tlKCk7aShuTXQsImlzUGFzdCIpO0xiaT1uTXR9KTtmdW5jdGlvbiB0Uyh0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiByLnNldE1pbnV0ZXMoMCwwLDApLHJ9dmFyIEViaSxQOWU9dSgoKT0+e0tlKCk7aSh0Uywic3RhcnRPZkhvdXIiKTtFYmk9dFN9KTtmdW5jdGlvbiBrbmUodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSk7cmV0dXJuK3RTKGEpPT0rdFMocyl9dmFyIFJiaSxOOWU9dSgoKT0+e09hKCk7UDllKCk7aShrbmUsImlzU2FtZUhvdXIiKTtSYmk9a25lfSk7ZnVuY3Rpb24gd2IodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSk7cmV0dXJuK1lhKGEscik9PStZYShzLHIpfXZhciBWYmksU25lPXUoKCk9PntPYSgpO2syKCk7aSh3YiwiaXNTYW1lV2VlayIpO1ZiaT13Yn0pO2Z1bmN0aW9uIE1uZSh0LGUscil7cmV0dXJuIHdiKHQsZSx7Li4ucix3ZWVrU3RhcnRzT246MX0pfXZhciBHYmksTzllPXUoKCk9PntTbmUoKTtpKE1uZSwiaXNTYW1lSVNPV2VlayIpO0diaT1NbmV9KTtmdW5jdGlvbiBsTXQodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSk7cmV0dXJuK0IxKGEpPT0rQjEocyl9dmFyIFhiaSxjTXQ9dSgoKT0+e2FiKCk7T2EoKTtpKGxNdCwiaXNTYW1lSVNPV2Vla1llYXIiKTtYYmk9bE10fSk7ZnVuY3Rpb24gclModCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKDAsMCkscn12YXIgcnhpLFI5ZT11KCgpPT57S2UoKTtpKHJTLCJzdGFydE9mTWludXRlIik7cnhpPXJTfSk7ZnVuY3Rpb24gQ25lKHQsZSl7cmV0dXJuK3JTKHQpPT0rclMoZSl9dmFyIG54aSxGOWU9dSgoKT0+e1I5ZSgpO2koQ25lLCJpc1NhbWVNaW51dGUiKTtueGk9Q25lfSk7ZnVuY3Rpb24gem5lKHQsZSxyKXtsZXRbYSxzXT1CdChyPy5pbix0LGUpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT1zLmdldEZ1bGxZZWFyKCkmJmEuZ2V0TW9udGgoKT09PXMuZ2V0TW9udGgoKX12YXIgZHhpLEI5ZT11KCgpPT57T2EoKTtpKHpuZSwiaXNTYW1lTW9udGgiKTtkeGk9em5lfSk7ZnVuY3Rpb24gX25lKHQsZSxyKXtsZXRbYSxzXT1CdChyPy5pbix0LGUpO3JldHVybituMChhKT09K24wKHMpfXZhciBteGksSDllPXUoKCk9PntPYSgpO2ZzZSgpO2koX25lLCJpc1NhbWVRdWFydGVyIik7bXhpPV9uZX0pO2Z1bmN0aW9uIGFTKHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuIHIuc2V0TWlsbGlzZWNvbmRzKDApLHJ9dmFyIHZ4aSxxOWU9dSgoKT0+e0tlKCk7aShhUywic3RhcnRPZlNlY29uZCIpO3Z4aT1hU30pO2Z1bmN0aW9uIFRuZSh0LGUpe3JldHVybithUyh0KT09K2FTKGUpfXZhciBTeGksVjllPXUoKCk9PntxOWUoKTtpKFRuZSwiaXNTYW1lU2Vjb25kIik7U3hpPVRuZX0pO2Z1bmN0aW9uIExuZSh0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKTtyZXR1cm4gYS5nZXRGdWxsWWVhcigpPT09cy5nZXRGdWxsWWVhcigpfXZhciBfeGksajllPXUoKCk9PntPYSgpO2koTG5lLCJpc1NhbWVZZWFyIik7X3hpPUxuZX0pO2Z1bmN0aW9uIGRNdCh0LGUpe3JldHVybiBrbmUoU2UodCxlPy5pbiksSXIoZT8uaW58fHQpKX12YXIgRXhpLHVNdD11KCgpPT57RnMoKTtOOWUoKTtLZSgpO2koZE10LCJpc1RoaXNIb3VyIik7RXhpPWRNdH0pO2Z1bmN0aW9uIHBNdCh0LGUpe3JldHVybiBNbmUoVWUoZT8uaW58fHQsdCksSXIoZT8uaW58fHQpKX12YXIgRnhpLGZNdD11KCgpPT57VnQoKTtGcygpO085ZSgpO2kocE10LCJpc1RoaXNJU09XZWVrIik7RnhpPXBNdH0pO2Z1bmN0aW9uIGhNdCh0KXtyZXR1cm4gQ25lKHQsSXIodCkpfXZhciBqeGksbU10PXUoKCk9PntGcygpO0Y5ZSgpO2koaE10LCJpc1RoaXNNaW51dGUiKTtqeGk9aE10fSk7ZnVuY3Rpb24gZ010KHQsZSl7cmV0dXJuIHpuZShVZShlPy5pbnx8dCx0KSxJcihlPy5pbnx8dCkpfXZhciBaeGksYk10PXUoKCk9PntWdCgpO0ZzKCk7QjllKCk7aShnTXQsImlzVGhpc01vbnRoIik7WnhpPWdNdH0pO2Z1bmN0aW9uIHhNdCh0LGUpe3JldHVybiBfbmUoVWUoZT8uaW58fHQsdCksSXIoZT8uaW58fHQpKX12YXIgcnZpLHZNdD11KCgpPT57VnQoKTtGcygpO0g5ZSgpO2koeE10LCJpc1RoaXNRdWFydGVyIik7cnZpPXhNdH0pO2Z1bmN0aW9uIHlNdCh0KXtyZXR1cm4gVG5lKHQsSXIodCkpfXZhciBvdmksd010PXUoKCk9PntGcygpO1Y5ZSgpO2koeU10LCJpc1RoaXNTZWNvbmQiKTtvdmk9eU10fSk7ZnVuY3Rpb24ga010KHQsZSl7cmV0dXJuIHdiKFVlKGU/LmlufHx0LHQpLElyKGU/LmlufHx0KSxlKX12YXIgZnZpLFNNdD11KCgpPT57VnQoKTtGcygpO1NuZSgpO2koa010LCJpc1RoaXNXZWVrIik7ZnZpPWtNdH0pO2Z1bmN0aW9uIE1NdCh0LGUpe3JldHVybiBMbmUoVWUoZT8uaW58fHQsdCksSXIoZT8uaW58fHQpKX12YXIgdnZpLENNdD11KCgpPT57VnQoKTtGcygpO2o5ZSgpO2koTU10LCJpc1RoaXNZZWFyIik7dnZpPU1NdH0pO2Z1bmN0aW9uIHpNdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXREYXkoKT09PTR9dmFyIFN2aSxfTXQ9dSgoKT0+e0tlKCk7aSh6TXQsImlzVGh1cnNkYXkiKTtTdmk9ek10fSk7ZnVuY3Rpb24gVE10KHQsZSl7cmV0dXJuIGEwKFVlKGU/LmlufHx0LHQpLElyKGU/LmlufHx0KSl9dmFyIEx2aSxMTXQ9dSgoKT0+e1Z0KCk7RnMoKTtuYigpO2koVE10LCJpc1RvZGF5Iik7THZpPVRNdH0pO2Z1bmN0aW9uIERNdCh0LGUpe3JldHVybiBhMCh0LFJzKElyKGU/LmlufHx0KSwxKSxlKX12YXIgUHZpLCRNdD11KCgpPT57WGMoKTtGcygpO25iKCk7aShETXQsImlzVG9tb3Jyb3ciKTtQdmk9RE10fSk7ZnVuY3Rpb24gQU10KHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldERheSgpPT09Mn12YXIgRnZpLEVNdD11KCgpPT57S2UoKTtpKEFNdCwiaXNUdWVzZGF5Iik7RnZpPUFNdH0pO2Z1bmN0aW9uIElNdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXREYXkoKT09PTN9dmFyIFZ2aSxQTXQ9dSgoKT0+e0tlKCk7aShJTXQsImlzV2VkbmVzZGF5Iik7VnZpPUlNdH0pO2Z1bmN0aW9uIE5NdCh0LGUscil7bGV0IGE9K1NlKHQscj8uaW4pLFtzLG5dPVsrU2UoZS5zdGFydCxyPy5pbiksK1NlKGUuZW5kLHI/LmluKV0uc29ydCgobyxsKT0+by1sKTtyZXR1cm4gYT49cyYmYTw9bn12YXIgR3ZpLE9NdD11KCgpPT57S2UoKTtpKE5NdCwiaXNXaXRoaW5JbnRlcnZhbCIpO0d2aT1OTXR9KTtmdW5jdGlvbiBldSh0LGUscil7cmV0dXJuIFJzKHQsLWUscil9dmFyIFF2aSxpUz11KCgpPT57WGMoKTtpKGV1LCJzdWJEYXlzIik7UXZpPWV1fSk7ZnVuY3Rpb24gUk10KHQsZSl7cmV0dXJuIGEwKFVlKGU/LmlufHx0LHQpLGV1KElyKGU/LmlufHx0KSwxKSl9dmFyIGl5aSxGTXQ9dSgoKT0+e1Z0KCk7RnMoKTtuYigpO2lTKCk7aShSTXQsImlzWWVzdGVyZGF5Iik7aXlpPVJNdH0pO2Z1bmN0aW9uIEJNdCh0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpLHM9OStNYXRoLmZsb29yKGEvMTApKjEwO3JldHVybiByLnNldEZ1bGxZZWFyKHMrMSwwLDApLHIuc2V0SG91cnMoMCwwLDAsMCksU2UocixlPy5pbil9dmFyIGx5aSxITXQ9dSgoKT0+e0tlKCk7aShCTXQsImxhc3REYXlPZkRlY2FkZSIpO2x5aT1CTXR9KTtmdW5jdGlvbiBEbmUodCxlKXtsZXQgcj1UYSgpLGE9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscz1TZSh0LGU/LmluKSxuPXMuZ2V0RGF5KCksbz0objxhPy03OjApKzYtKG4tYSk7cmV0dXJuIHMuc2V0SG91cnMoMCwwLDAsMCkscy5zZXREYXRlKHMuZ2V0RGF0ZSgpK28pLHN9dmFyIGZ5aSxVOWU9dSgoKT0+e1FuKCk7S2UoKTtpKERuZSwibGFzdERheU9mV2VlayIpO2Z5aT1EbmV9KTtmdW5jdGlvbiBxTXQodCxlKXtyZXR1cm4gRG5lKHQsey4uLmUsd2Vla1N0YXJ0c09uOjF9KX12YXIgYnlpLFZNdD11KCgpPT57VTllKCk7aShxTXQsImxhc3REYXlPZklTT1dlZWsiKTtieWk9cU10fSk7ZnVuY3Rpb24gak10KHQsZSl7bGV0IHI9RW8odCxlKSxhPVVlKGU/LmlufHx0LDApO2Euc2V0RnVsbFllYXIocisxLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKTtsZXQgcz1icyhhLGUpO3JldHVybiBzLnNldERhdGUocy5nZXREYXRlKCktMSksc312YXIgU3lpLFVNdD11KCgpPT57VnQoKTtVMygpO3QwKCk7aShqTXQsImxhc3REYXlPZklTT1dlZWtZZWFyIik7U3lpPWpNdH0pO2Z1bmN0aW9uIFdNdCh0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9ci5nZXRNb250aCgpLHM9YS1hJTMrMztyZXR1cm4gci5zZXRNb250aChzLDApLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgX3lpLEdNdD11KCgpPT57S2UoKTtpKFdNdCwibGFzdERheU9mUXVhcnRlciIpO195aT1XTXR9KTtmdW5jdGlvbiBZTXQodCxlKXtsZXQgcj1TZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihhKzEsMCwwKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyICR5aSxLTXQ9dSgoKT0+e0tlKCk7aShZTXQsImxhc3REYXlPZlllYXIiKTskeWk9WU10fSk7ZnVuY3Rpb24gWk10KHQsZSl7bGV0IHI9U2UodCk7aWYoIV9uKHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1lLm1hdGNoKFkwYSk7cmV0dXJuIGE/YS5tYXAobj0+e2lmKG49PT0iJyciKXJldHVybiInIjtsZXQgbz1uWzBdO2lmKG89PT0iJyIpcmV0dXJuIFgwYShuKTtsZXQgbD1IMVtvXTtpZihsKXJldHVybiBsKHIsbik7aWYoby5tYXRjaChRMGEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIrbysiYCIpO3JldHVybiBufSkuam9pbigiIik6IiJ9ZnVuY3Rpb24gWDBhKHQpe2xldCBlPXQubWF0Y2goSzBhKTtyZXR1cm4gZT9lWzFdLnJlcGxhY2UoWjBhLCInIik6dH12YXIgWTBhLEswYSxaMGEsUTBhLE95aSxRTXQ9dSgoKT0+e2I5ZSgpO0ZkKCk7S2UoKTtZMGE9LyhcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csSzBhPS9eJyhbXl0qPyknPyQvLFowYT0vJycvZyxRMGE9L1thLXpBLVpdLztpKFpNdCwibGlnaHRGb3JtYXQiKTtpKFgwYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7T3lpPVpNdH0pO2Z1bmN0aW9uIFhNdCh7eWVhcnM6dCxtb250aHM6ZSx3ZWVrczpyLGRheXM6YSxob3VyczpzLG1pbnV0ZXM6bixzZWNvbmRzOm99KXtsZXQgbD0wO3QmJihsKz10KjM2NS4yNDI1KSxlJiYobCs9ZSooMzY1LjI0MjUvMTIpKSxyJiYobCs9cio3KSxhJiYobCs9YSk7bGV0IGM9bCoyNCo2MCo2MDtyZXR1cm4gcyYmKGMrPXMqNjAqNjApLG4mJihjKz1uKjYwKSxvJiYoYys9byksTWF0aC50cnVuYyhjKjFlMyl9dmFyIEh5aSxKTXQ9dSgoKT0+e2tyKCk7aShYTXQsIm1pbGxpc2Vjb25kcyIpO0h5aT1YTXR9KTtmdW5jdGlvbiBlQ3QodCl7bGV0IGU9dC9GMTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgVXlpLHRDdD11KCgpPT57a3IoKTtpKGVDdCwibWlsbGlzZWNvbmRzVG9Ib3VycyIpO1V5aT1lQ3R9KTtmdW5jdGlvbiByQ3QodCl7bGV0IGU9dC9abjtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgS3lpLGFDdD11KCgpPT57a3IoKTtpKHJDdCwibWlsbGlzZWNvbmRzVG9NaW51dGVzIik7S3lpPXJDdH0pO2Z1bmN0aW9uIGlDdCh0KXtsZXQgZT10L0pnO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBKeWksc0N0PXUoKCk9PntrcigpO2koaUN0LCJtaWxsaXNlY29uZHNUb1NlY29uZHMiKTtKeWk9aUN0fSk7ZnVuY3Rpb24gbkN0KHQpe2xldCBlPXQvUGllO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBhd2ksb0N0PXUoKCk9PntrcigpO2kobkN0LCJtaW51dGVzVG9Ib3VycyIpO2F3aT1uQ3R9KTtmdW5jdGlvbiBsQ3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCpabil9dmFyIG93aSxjQ3Q9dSgoKT0+e2tyKCk7aShsQ3QsIm1pbnV0ZXNUb01pbGxpc2Vjb25kcyIpO293aT1sQ3R9KTtmdW5jdGlvbiBkQ3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCp0Yil9dmFyIHV3aSx1Q3Q9dSgoKT0+e2tyKCk7aShkQ3QsIm1pbnV0ZXNUb1NlY29uZHMiKTt1d2k9ZEN0fSk7ZnVuY3Rpb24gcEN0KHQpe2xldCBlPXQvTmllO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBtd2ksZkN0PXUoKCk9PntrcigpO2kocEN0LCJtb250aHNUb1F1YXJ0ZXJzIik7bXdpPXBDdH0pO2Z1bmN0aW9uIGhDdCh0KXtsZXQgZT10L09pZTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgdndpLG1DdD11KCgpPT57a3IoKTtpKGhDdCwibW9udGhzVG9ZZWFycyIpO3Z3aT1oQ3R9KTtmdW5jdGlvbiB0byh0LGUscil7bGV0IGE9ZS1YMyh0LHIpO3JldHVybiBhPD0wJiYoYSs9NyksUnModCxhLHIpfXZhciBNd2ksSGQ9dSgoKT0+e1hjKCk7SmsoKTtpKHRvLCJuZXh0RGF5Iik7TXdpPXRvfSk7ZnVuY3Rpb24gZ0N0KHQsZSl7cmV0dXJuIHRvKHQsNSxlKX12YXIgVHdpLGJDdD11KCgpPT57SGQoKTtpKGdDdCwibmV4dEZyaWRheSIpO1R3aT1nQ3R9KTtmdW5jdGlvbiB4Q3QodCxlKXtyZXR1cm4gdG8odCwxLGUpfXZhciBBd2ksdkN0PXUoKCk9PntIZCgpO2koeEN0LCJuZXh0TW9uZGF5Iik7QXdpPXhDdH0pO2Z1bmN0aW9uIHlDdCh0LGUpe3JldHVybiB0byh0LDYsZSl9dmFyIE53aSx3Q3Q9dSgoKT0+e0hkKCk7aSh5Q3QsIm5leHRTYXR1cmRheSIpO053aT15Q3R9KTtmdW5jdGlvbiBrQ3QodCxlKXtyZXR1cm4gdG8odCwwLGUpfXZhciBCd2ksU0N0PXUoKCk9PntIZCgpO2koa0N0LCJuZXh0U3VuZGF5Iik7QndpPWtDdH0pO2Z1bmN0aW9uIE1DdCh0LGUpe3JldHVybiB0byh0LDQsZSl9dmFyIGp3aSxDQ3Q9dSgoKT0+e0hkKCk7aShNQ3QsIm5leHRUaHVyc2RheSIpO2p3aT1NQ3R9KTtmdW5jdGlvbiB6Q3QodCxlKXtyZXR1cm4gdG8odCwyLGUpfXZhciBZd2ksX0N0PXUoKCk9PntIZCgpO2koekN0LCJuZXh0VHVlc2RheSIpO1l3aT16Q3R9KTtmdW5jdGlvbiBUQ3QodCxlKXtyZXR1cm4gdG8odCwzLGUpfXZhciBYd2ksTEN0PXUoKCk9PntIZCgpO2koVEN0LCJuZXh0V2VkbmVzZGF5Iik7WHdpPVRDdH0pO2Z1bmN0aW9uICRDdCh0LGUpe2xldCByPWkoKCk9PlVlKGU/LmluLE5hTiksImludmFsaWREYXRlIiksYT1lPy5hZGRpdGlvbmFsRGlnaXRzPz8yLHM9cmRhKHQpLG47aWYocy5kYXRlKXtsZXQgZD1hZGEocy5kYXRlLGEpO249aWRhKGQucmVzdERhdGVTdHJpbmcsZC55ZWFyKX1pZighbnx8aXNOYU4oK24pKXJldHVybiByKCk7bGV0IG89K24sbD0wLGM7aWYocy50aW1lJiYobD1zZGEocy50aW1lKSxpc05hTihsKSkpcmV0dXJuIHIoKTtpZihzLnRpbWV6b25lKXtpZihjPW5kYShzLnRpbWV6b25lKSxpc05hTihjKSlyZXR1cm4gcigpfWVsc2V7bGV0IGQ9bmV3IERhdGUobytsKSxmPVNlKDAsZT8uaW4pO3JldHVybiBmLnNldEZ1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSxkLmdldFVUQ01vbnRoKCksZC5nZXRVVENEYXRlKCkpLGYuc2V0SG91cnMoZC5nZXRVVENIb3VycygpLGQuZ2V0VVRDTWludXRlcygpLGQuZ2V0VVRDU2Vjb25kcygpLGQuZ2V0VVRDTWlsbGlzZWNvbmRzKCkpLGZ9cmV0dXJuIFNlKG8rbCtjLGU/LmluKX1mdW5jdGlvbiByZGEodCl7bGV0IGU9e30scj10LnNwbGl0KCRuZS5kYXRlVGltZURlbGltaXRlciksYTtpZihyLmxlbmd0aD4yKXJldHVybiBlO2lmKC86Ly50ZXN0KHJbMF0pP2E9clswXTooZS5kYXRlPXJbMF0sYT1yWzFdLCRuZS50aW1lWm9uZURlbGltaXRlci50ZXN0KGUuZGF0ZSkmJihlLmRhdGU9dC5zcGxpdCgkbmUudGltZVpvbmVEZWxpbWl0ZXIpWzBdLGE9dC5zdWJzdHIoZS5kYXRlLmxlbmd0aCx0Lmxlbmd0aCkpKSxhKXtsZXQgcz0kbmUudGltZXpvbmUuZXhlYyhhKTtzPyhlLnRpbWU9YS5yZXBsYWNlKHNbMV0sIiIpLGUudGltZXpvbmU9c1sxXSk6ZS50aW1lPWF9cmV0dXJuIGV9ZnVuY3Rpb24gYWRhKHQsZSl7bGV0IHI9bmV3IFJlZ0V4cCgiXig/OihcXGR7NH18WystXVxcZHsiKyg0K2UpKyJ9KXwoXFxkezJ9fFsrLV1cXGR7IisoMitlKSsifSkkKSIpLGE9dC5tYXRjaChyKTtpZighYSlyZXR1cm57eWVhcjpOYU4scmVzdERhdGVTdHJpbmc6IiJ9O2xldCBzPWFbMV0/cGFyc2VJbnQoYVsxXSk6bnVsbCxuPWFbMl0/cGFyc2VJbnQoYVsyXSk6bnVsbDtyZXR1cm57eWVhcjpuPT09bnVsbD9zOm4qMTAwLHJlc3REYXRlU3RyaW5nOnQuc2xpY2UoKGFbMV18fGFbMl0pLmxlbmd0aCl9fWZ1bmN0aW9uIGlkYSh0LGUpe2lmKGU9PT1udWxsKXJldHVybiBuZXcgRGF0ZShOYU4pO2xldCByPXQubWF0Y2goSjBhKTtpZighcilyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgYT0hIXJbNF0scz1zUyhyWzFdKSxuPXNTKHJbMl0pLTEsbz1zUyhyWzNdKSxsPXNTKHJbNF0pLGM9c1Mocls1XSktMTtpZihhKXJldHVybiB1ZGEoZSxsLGMpP29kYShlLGwsYyk6bmV3IERhdGUoTmFOKTt7bGV0IGQ9bmV3IERhdGUoMCk7cmV0dXJuIWNkYShlLG4sbyl8fCFkZGEoZSxzKT9uZXcgRGF0ZShOYU4pOihkLnNldFVUQ0Z1bGxZZWFyKGUsbixNYXRoLm1heChzLG8pKSxkKX19ZnVuY3Rpb24gc1ModCl7cmV0dXJuIHQ/cGFyc2VJbnQodCk6MX1mdW5jdGlvbiBzZGEodCl7bGV0IGU9dC5tYXRjaChlZGEpO2lmKCFlKXJldHVybiBOYU47bGV0IHI9VzllKGVbMV0pLGE9VzllKGVbMl0pLHM9VzllKGVbM10pO3JldHVybiBwZGEocixhLHMpP3IqRjErYSpabitzKjFlMzpOYU59ZnVuY3Rpb24gVzllKHQpe3JldHVybiB0JiZwYXJzZUZsb2F0KHQucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gbmRhKHQpe2lmKHQ9PT0iWiIpcmV0dXJuIDA7bGV0IGU9dC5tYXRjaCh0ZGEpO2lmKCFlKXJldHVybiAwO2xldCByPWVbMV09PT0iKyI/LTE6MSxhPXBhcnNlSW50KGVbMl0pLHM9ZVszXSYmcGFyc2VJbnQoZVszXSl8fDA7cmV0dXJuIGZkYShhLHMpP3IqKGEqRjErcypabik6TmFOfWZ1bmN0aW9uIG9kYSh0LGUscil7bGV0IGE9bmV3IERhdGUoMCk7YS5zZXRVVENGdWxsWWVhcih0LDAsNCk7bGV0IHM9YS5nZXRVVENEYXkoKXx8NyxuPShlLTEpKjcrcisxLXM7cmV0dXJuIGEuc2V0VVRDRGF0ZShhLmdldFVUQ0RhdGUoKStuKSxhfWZ1bmN0aW9uIERDdCh0KXtyZXR1cm4gdCU0MDA9PT0wfHx0JTQ9PT0wJiZ0JTEwMCE9PTB9ZnVuY3Rpb24gY2RhKHQsZSxyKXtyZXR1cm4gZT49MCYmZTw9MTEmJnI+PTEmJnI8PShsZGFbZV18fChEQ3QodCk/Mjk6MjgpKX1mdW5jdGlvbiBkZGEodCxlKXtyZXR1cm4gZT49MSYmZTw9KERDdCh0KT8zNjY6MzY1KX1mdW5jdGlvbiB1ZGEodCxlLHIpe3JldHVybiBlPj0xJiZlPD01MyYmcj49MCYmcjw9Nn1mdW5jdGlvbiBwZGEodCxlLHIpe3JldHVybiB0PT09MjQ/ZT09PTAmJnI9PT0wOnI+PTAmJnI8NjAmJmU+PTAmJmU8NjAmJnQ+PTAmJnQ8MjV9ZnVuY3Rpb24gZmRhKHQsZSl7cmV0dXJuIGU+PTAmJmU8PTU5fXZhciAkbmUsSjBhLGVkYSx0ZGEsbGRhLGlraSxBQ3Q9dSgoKT0+e2tyKCk7VnQoKTtLZSgpO2koJEN0LCJwYXJzZUlTTyIpOyRuZT17ZGF0ZVRpbWVEZWxpbWl0ZXI6L1tUIF0vLHRpbWVab25lRGVsaW1pdGVyOi9bWiBdL2ksdGltZXpvbmU6LyhbWistXS4qKSQvfSxKMGE9L14tPyg/OihcZHszfSl8KFxkezJ9KSg/Oi0/KFxkezJ9KSk/fFcoXGR7Mn0pKD86LT8oXGR7MX0pKT98KSQvLGVkYT0vXihcZHsyfSg/OlsuLF1cZCopPykoPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/JC8sdGRhPS9eKFsrLV0pKFxkezJ9KSg/Ojo/KFxkezJ9KSk/JC87aShyZGEsInNwbGl0RGF0ZVN0cmluZyIpO2koYWRhLCJwYXJzZVllYXIiKTtpKGlkYSwicGFyc2VEYXRlIik7aShzUywicGFyc2VEYXRlVW5pdCIpO2koc2RhLCJwYXJzZVRpbWUiKTtpKFc5ZSwicGFyc2VUaW1lVW5pdCIpO2kobmRhLCJwYXJzZVRpbWV6b25lIik7aShvZGEsImRheU9mSVNPV2Vla1llYXIiKTtsZGE9WzMxLG51bGwsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2koREN0LCJpc0xlYXBZZWFySW5kZXgiKTtpKGNkYSwidmFsaWRhdGVEYXRlIik7aShkZGEsInZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSIpO2kodWRhLCJ2YWxpZGF0ZVdlZWtEYXRlIik7aShwZGEsInZhbGlkYXRlVGltZSIpO2koZmRhLCJ2YWxpZGF0ZVRpbWV6b25lIik7aWtpPSRDdH0pO2Z1bmN0aW9uIEVDdCh0LGUpe2xldCByPXQubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiByP1NlKERhdGUuVVRDKCtyWzFdLCtyWzJdLTEsK3JbM10sK3JbNF0tKCtyWzldfHwwKSoocls4XT09Ii0iPy0xOjEpLCtyWzVdLSgrclsxMF18fDApKihyWzhdPT0iLSI/LTE6MSksK3JbNl0sKygocls3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksZT8uaW4pOlNlKE5hTixlPy5pbil9dmFyIGxraSxJQ3Q9dSgoKT0+e0tlKCk7aShFQ3QsInBhcnNlSlNPTiIpO2xraT1FQ3R9KTtmdW5jdGlvbiBybyh0LGUscil7bGV0IGE9WDModCxyKS1lO3JldHVybiBhPD0wJiYoYSs9NyksZXUodCxhLHIpfXZhciBma2kscWQ9dSgoKT0+e0prKCk7aVMoKTtpKHJvLCJwcmV2aW91c0RheSIpO2ZraT1yb30pO2Z1bmN0aW9uIFBDdCh0LGUpe3JldHVybiBybyh0LDUsZSl9dmFyIGJraSxOQ3Q9dSgoKT0+e3FkKCk7aShQQ3QsInByZXZpb3VzRnJpZGF5Iik7YmtpPVBDdH0pO2Z1bmN0aW9uIE9DdCh0LGUpe3JldHVybiBybyh0LDEsZSl9dmFyIHdraSxSQ3Q9dSgoKT0+e3FkKCk7aShPQ3QsInByZXZpb3VzTW9uZGF5Iik7d2tpPU9DdH0pO2Z1bmN0aW9uIEZDdCh0LGUpe3JldHVybiBybyh0LDYsZSl9dmFyIENraSxCQ3Q9dSgoKT0+e3FkKCk7aShGQ3QsInByZXZpb3VzU2F0dXJkYXkiKTtDa2k9RkN0fSk7ZnVuY3Rpb24gSEN0KHQsZSl7cmV0dXJuIHJvKHQsMCxlKX12YXIgTGtpLHFDdD11KCgpPT57cWQoKTtpKEhDdCwicHJldmlvdXNTdW5kYXkiKTtMa2k9SEN0fSk7ZnVuY3Rpb24gVkN0KHQsZSl7cmV0dXJuIHJvKHQsNCxlKX12YXIgRWtpLGpDdD11KCgpPT57cWQoKTtpKFZDdCwicHJldmlvdXNUaHVyc2RheSIpO0VraT1WQ3R9KTtmdW5jdGlvbiBVQ3QodCxlKXtyZXR1cm4gcm8odCwyLGUpfXZhciBPa2ksV0N0PXUoKCk9PntxZCgpO2koVUN0LCJwcmV2aW91c1R1ZXNkYXkiKTtPa2k9VUN0fSk7ZnVuY3Rpb24gR0N0KHQsZSl7cmV0dXJuIHJvKHQsMyxlKX12YXIgSGtpLFlDdD11KCgpPT57cWQoKTtpKEdDdCwicHJldmlvdXNXZWRuZXNkYXkiKTtIa2k9R0N0fSk7ZnVuY3Rpb24gS0N0KHQpe3JldHVybiBNYXRoLnRydW5jKHQqTmllKX12YXIgVWtpLFpDdD11KCgpPT57a3IoKTtpKEtDdCwicXVhcnRlcnNUb01vbnRocyIpO1VraT1LQ3R9KTtmdW5jdGlvbiBRQ3QodCl7bGV0IGU9dC9SaWU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIEtraSxYQ3Q9dSgoKT0+e2tyKCk7aShRQ3QsInF1YXJ0ZXJzVG9ZZWFycyIpO0traT1RQ3R9KTtmdW5jdGlvbiBKQ3QodCxlKXtsZXQgcj1lPy5uZWFyZXN0VG8/PzE7aWYocjwxfHxyPjEyKXJldHVybiBVZShlPy5pbnx8dCxOYU4pO2xldCBhPVNlKHQsZT8uaW4pLHM9YS5nZXRNaW51dGVzKCkvNjAsbj1hLmdldFNlY29uZHMoKS82MC82MCxvPWEuZ2V0TWlsbGlzZWNvbmRzKCkvMWUzLzYwLzYwLGw9YS5nZXRIb3VycygpK3MrbitvLGM9ZT8ucm91bmRpbmdNZXRob2Q/PyJyb3VuZCIsZj1KbihjKShsL3IpKnI7cmV0dXJuIGEuc2V0SG91cnMoZiwwLDAsMCksYX12YXIgdFNpLGV6dD11KCgpPT57QmQoKTtWdCgpO0tlKCk7aShKQ3QsInJvdW5kVG9OZWFyZXN0SG91cnMiKTt0U2k9SkN0fSk7ZnVuY3Rpb24gdHp0KHQsZSl7bGV0IHI9ZT8ubmVhcmVzdFRvPz8xO2lmKHI8MXx8cj4zMClyZXR1cm4gVWUodCxOYU4pO2xldCBhPVNlKHQsZT8uaW4pLHM9YS5nZXRTZWNvbmRzKCkvNjAsbj1hLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxvPWEuZ2V0TWludXRlcygpK3MrbixsPWU/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGQ9Sm4obCkoby9yKSpyO3JldHVybiBhLnNldE1pbnV0ZXMoZCwwLDApLGF9dmFyIG9TaSxyenQ9dSgoKT0+e0JkKCk7VnQoKTtLZSgpO2kodHp0LCJyb3VuZFRvTmVhcmVzdE1pbnV0ZXMiKTtvU2k9dHp0fSk7ZnVuY3Rpb24gYXp0KHQpe2xldCBlPXQvamY7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIHVTaSxpenQ9dSgoKT0+e2tyKCk7aShhenQsInNlY29uZHNUb0hvdXJzIik7dVNpPWF6dH0pO2Z1bmN0aW9uIHN6dCh0KXtyZXR1cm4gdCpKZ312YXIgbVNpLG56dD11KCgpPT57a3IoKTtpKHN6dCwic2Vjb25kc1RvTWlsbGlzZWNvbmRzIik7bVNpPXN6dH0pO2Z1bmN0aW9uIG96dCh0KXtsZXQgZT10L3RiO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciB2U2ksbHp0PXUoKCk9PntrcigpO2kob3p0LCJzZWNvbmRzVG9NaW51dGVzIik7dlNpPW96dH0pO2Z1bmN0aW9uIGtiKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKSxzPWEuZ2V0RnVsbFllYXIoKSxuPWEuZ2V0RGF0ZSgpLG89VWUocj8uaW58fHQsMCk7by5zZXRGdWxsWWVhcihzLGUsMTUpLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9VHNlKG8pO3JldHVybiBhLnNldE1vbnRoKGUsTWF0aC5taW4obixsKSksYX12YXIgQ1NpLEFuZT11KCgpPT57VnQoKTtNOWUoKTtLZSgpO2koa2IsInNldE1vbnRoIik7Q1NpPWtifSk7ZnVuY3Rpb24gY3p0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gaXNOYU4oK2EpP1VlKHI/LmlufHx0LE5hTik6KGUueWVhciE9bnVsbCYmYS5zZXRGdWxsWWVhcihlLnllYXIpLGUubW9udGghPW51bGwmJihhPWtiKGEsZS5tb250aCkpLGUuZGF0ZSE9bnVsbCYmYS5zZXREYXRlKGUuZGF0ZSksZS5ob3VycyE9bnVsbCYmYS5zZXRIb3VycyhlLmhvdXJzKSxlLm1pbnV0ZXMhPW51bGwmJmEuc2V0TWludXRlcyhlLm1pbnV0ZXMpLGUuc2Vjb25kcyE9bnVsbCYmYS5zZXRTZWNvbmRzKGUuc2Vjb25kcyksZS5taWxsaXNlY29uZHMhPW51bGwmJmEuc2V0TWlsbGlzZWNvbmRzKGUubWlsbGlzZWNvbmRzKSxhKX12YXIgJFNpLGR6dD11KCgpPT57VnQoKTtBbmUoKTtLZSgpO2koY3p0LCJzZXQiKTskU2k9Y3p0fSk7ZnVuY3Rpb24gdXp0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXREYXRlKGUpLGF9dmFyIFBTaSxwenQ9dSgoKT0+e0tlKCk7aSh1enQsInNldERhdGUiKTtQU2k9dXp0fSk7ZnVuY3Rpb24gZnp0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRNb250aCgwKSxhLnNldERhdGUoZSksYX12YXIgRlNpLGh6dD11KCgpPT57S2UoKTtpKGZ6dCwic2V0RGF5T2ZZZWFyIik7RlNpPWZ6dH0pO2Z1bmN0aW9uIG16dCh0KXtsZXQgZT17fSxyPVRhKCk7Zm9yKGxldCBhIGluIHIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsYSkmJihlW2FdPXJbYV0pO2ZvcihsZXQgYSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiYodFthXT09PXZvaWQgMD9kZWxldGUgZVthXTplW2FdPXRbYV0pOyR5dChlKX12YXIgVlNpLGd6dD11KCgpPT57UW4oKTtpKG16dCwic2V0RGVmYXVsdE9wdGlvbnMiKTtWU2k9bXp0fSk7ZnVuY3Rpb24gYnp0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRIb3VycyhlKSxhfXZhciBHU2kseHp0PXUoKCk9PntLZSgpO2koYnp0LCJzZXRIb3VycyIpO0dTaT1ienR9KTtmdW5jdGlvbiB2enQodCxlLHIpe2xldCBhPVNlKHQscj8uaW4pO3JldHVybiBhLnNldE1pbGxpc2Vjb25kcyhlKSxhfXZhciBRU2kseXp0PXUoKCk9PntLZSgpO2kodnp0LCJzZXRNaWxsaXNlY29uZHMiKTtRU2k9dnp0fSk7ZnVuY3Rpb24gd3p0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRNaW51dGVzKGUpLGF9dmFyIHRNaSxrenQ9dSgoKT0+e0tlKCk7aSh3enQsInNldE1pbnV0ZXMiKTt0TWk9d3p0fSk7ZnVuY3Rpb24gU3p0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKSxzPU1hdGgudHJ1bmMoYS5nZXRNb250aCgpLzMpKzEsbj1lLXM7cmV0dXJuIGtiKGEsYS5nZXRNb250aCgpK24qMyl9dmFyIG5NaSxNenQ9dSgoKT0+e0FuZSgpO0tlKCk7aShTenQsInNldFF1YXJ0ZXIiKTtuTWk9U3p0fSk7ZnVuY3Rpb24gQ3p0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRTZWNvbmRzKGUpLGF9dmFyIGRNaSx6enQ9dSgoKT0+e0tlKCk7aShDenQsInNldFNlY29uZHMiKTtkTWk9Q3p0fSk7ZnVuY3Rpb24gX3p0KHQsZSxyKXtsZXQgYT1UYSgpLHM9cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbj1jbihTZSh0LHI/LmluKSxRZih0LHIpLHIpLG89VWUocj8uaW58fHQsMCk7by5zZXRGdWxsWWVhcihlLDAscyksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1RZihvLHIpO3JldHVybiBsLnNldERhdGUobC5nZXREYXRlKCkrbiksbH12YXIgeE1pLFR6dD11KCgpPT57UW4oKTtWdCgpO1JkKCk7d3NlKCk7S2UoKTtpKF96dCwic2V0V2Vla1llYXIiKTt4TWk9X3p0fSk7ZnVuY3Rpb24gTHp0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gaXNOYU4oK2EpP1VlKHI/LmlufHx0LE5hTik6KGEuc2V0RnVsbFllYXIoZSksYSl9dmFyIFNNaSxEenQ9dSgoKT0+e1Z0KCk7S2UoKTtpKEx6dCwic2V0WWVhciIpO1NNaT1MenR9KTtmdW5jdGlvbiAkenQodCxlKXtsZXQgcj1TZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKSxzPU1hdGguZmxvb3IoYS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIocywwLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgX01pLEF6dD11KCgpPT57S2UoKTtpKCR6dCwic3RhcnRPZkRlY2FkZSIpO19NaT0kenR9KTtmdW5jdGlvbiBFenQodCl7cmV0dXJuIHIwKERhdGUubm93KCksdCl9dmFyICRNaSxJenQ9dSgoKT0+e1ZrKCk7aShFenQsInN0YXJ0T2ZUb2RheSIpOyRNaT1FenR9KTtmdW5jdGlvbiBQenQodCl7bGV0IGU9SXIodD8uaW4pLHI9ZS5nZXRGdWxsWWVhcigpLGE9ZS5nZXRNb250aCgpLHM9ZS5nZXREYXRlKCksbj1VZSh0Py5pbiwwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihyLGEscysxKSxuLnNldEhvdXJzKDAsMCwwLDApLG59dmFyIE5NaSxOenQ9dSgoKT0+e1Z0KCk7RnMoKTtpKFB6dCwic3RhcnRPZlRvbW9ycm93Iik7Tk1pPVB6dH0pO2Z1bmN0aW9uIE96dCh0KXtsZXQgZT1Jcih0Py5pbikscj1lLmdldEZ1bGxZZWFyKCksYT1lLmdldE1vbnRoKCkscz1lLmdldERhdGUoKSxuPUlyKHQ/LmluKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihyLGEscy0xKSxuLnNldEhvdXJzKDAsMCwwLDApLG59dmFyIEJNaSxSenQ9dSgoKT0+e0ZzKCk7aShPenQsInN0YXJ0T2ZZZXN0ZXJkYXkiKTtCTWk9T3p0fSk7ZnVuY3Rpb24gRW5lKHQsZSxyKXtyZXR1cm4gSmModCwtZSxyKX12YXIgak1pLEc5ZT11KCgpPT57cmIoKTtpKEVuZSwic3ViTW9udGhzIik7ak1pPUVuZX0pO2Z1bmN0aW9uIEZ6dCh0LGUscil7bGV0e3llYXJzOmE9MCxtb250aHM6cz0wLHdlZWtzOm49MCxkYXlzOm89MCxob3VyczpsPTAsbWludXRlczpjPTAsc2Vjb25kczpkPTB9PWUsZj1FbmUodCxzK2EqMTIscikscD1ldShmLG8rbio3LHIpLGg9YytsKjYwLHY9KGQraCo2MCkqMWUzO3JldHVybiBVZShyPy5pbnx8dCwrcC12KX12YXIgWk1pLEJ6dD11KCgpPT57VnQoKTtpUygpO0c5ZSgpO2koRnp0LCJzdWIiKTtaTWk9Rnp0fSk7ZnVuY3Rpb24gSHp0KHQsZSxyKXtyZXR1cm4gSGllKHQsLWUscil9dmFyIGVDaSxxenQ9dSgoKT0+e1E3ZSgpO2koSHp0LCJzdWJCdXNpbmVzc0RheXMiKTtlQ2k9SHp0fSk7ZnVuY3Rpb24gVnp0KHQsZSxyKXtyZXR1cm4gcWllKHQsLWUscil9dmFyIGlDaSxqenQ9dSgoKT0+e1g3ZSgpO2koVnp0LCJzdWJIb3VycyIpO2lDaT1WenR9KTtmdW5jdGlvbiBVenQodCxlLHIpe3JldHVybiBqMyh0LC1lLHIpfXZhciBsQ2ksV3p0PXUoKCk9PntxaygpO2koVXp0LCJzdWJNaWxsaXNlY29uZHMiKTtsQ2k9VXp0fSk7ZnVuY3Rpb24gR3p0KHQsZSxyKXtyZXR1cm4gaWIodCwtZSxyKX12YXIgcENpLFl6dD11KCgpPT57VWllKCk7aShHenQsInN1Yk1pbnV0ZXMiKTtwQ2k9R3p0fSk7ZnVuY3Rpb24gS3p0KHQsZSxyKXtyZXR1cm4gc2IodCwtZSxyKX12YXIgZ0NpLFp6dD11KCgpPT57V2llKCk7aShLenQsInN1YlF1YXJ0ZXJzIik7Z0NpPUt6dH0pO2Z1bmN0aW9uIFF6dCh0LGUscil7cmV0dXJuIEdpZSh0LC1lLHIpfXZhciB5Q2ksWHp0PXUoKCk9Pnt0OWUoKTtpKFF6dCwic3ViU2Vjb25kcyIpO3lDaT1RenR9KTtmdW5jdGlvbiBKenQodCxlLHIpe3JldHVybiBXMyh0LC1lLHIpfXZhciBNQ2ksZV90PXUoKCk9PntqaygpO2koSnp0LCJzdWJXZWVrcyIpO01DaT1KenR9KTtmdW5jdGlvbiB0X3QodCxlLHIpe3JldHVybiBZaWUodCwtZSxyKX12YXIgVENpLHJfdD11KCgpPT57cjllKCk7aSh0X3QsInN1YlllYXJzIik7VENpPXRfdH0pO2Z1bmN0aW9uIGFfdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KjcpfXZhciBBQ2ksaV90PXUoKCk9PntrcigpO2koYV90LCJ3ZWVrc1RvRGF5cyIpO0FDaT1hX3R9KTtmdW5jdGlvbiBzX3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCozNjUuMjQyNSl9dmFyIE5DaSxuX3Q9dSgoKT0+e2tyKCk7aShzX3QsInllYXJzVG9EYXlzIik7TkNpPXNfdH0pO2Z1bmN0aW9uIG9fdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0Kk9pZSl9dmFyIEJDaSxsX3Q9dSgoKT0+e2tyKCk7aShvX3QsInllYXJzVG9Nb250aHMiKTtCQ2k9b190fSk7ZnVuY3Rpb24gY190KHQpe3JldHVybiBNYXRoLnRydW5jKHQqUmllKX12YXIgakNpLGRfdD11KCgpPT57a3IoKTtpKGNfdCwieWVhcnNUb1F1YXJ0ZXJzIik7akNpPWNfdH0pO3ZhciBuUz17fTtWZShuUyx7YWRkOigpPT5WMyxhZGRCdXNpbmVzc0RheXM6KCk9PkhpZSxhZGREYXlzOigpPT5ScyxhZGRIb3VyczooKT0+cWllLGFkZElTT1dlZWtZZWFyczooKT0+amllLGFkZE1pbGxpc2Vjb25kczooKT0+ajMsYWRkTWludXRlczooKT0+aWIsYWRkTW9udGhzOigpPT5KYyxhZGRRdWFydGVyczooKT0+c2IsYWRkU2Vjb25kczooKT0+R2llLGFkZFdlZWtzOigpPT5XMyxhZGRZZWFyczooKT0+WWllLGFyZUludGVydmFsc092ZXJsYXBwaW5nOigpPT5BeXQsY2xhbXA6KCk9Pkl5dCxjbG9zZXN0SW5kZXhUbzooKT0+UWllLGNsb3Nlc3RUbzooKT0+Tnl0LGNvbXBhcmVBc2M6KCk9PlhuLGNvbXBhcmVEZXNjOigpPT5SeXQsY29uc3RydWN0RnJvbTooKT0+VWUsY29uc3RydWN0Tm93OigpPT5JcixkYXlzVG9XZWVrczooKT0+Qnl0LGRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5czooKT0+cXl0LGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5czooKT0+Y24sZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnM6KCk9PkppZSxkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzOigpPT5qeXQsZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9PldmLGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9Pm9iLGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PkdmLGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9PkczLGRpZmZlcmVuY2VJbkRheXM6KCk9PmxiLGRpZmZlcmVuY2VJbkhvdXJzOigpPT5ZZixkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9Pkd5dCxkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHM6KCk9PmNiLGRpZmZlcmVuY2VJbk1pbnV0ZXM6KCk9PktmLGRpZmZlcmVuY2VJbk1vbnRoczooKT0+WTMsZGlmZmVyZW5jZUluUXVhcnRlcnM6KCk9Pkt5dCxkaWZmZXJlbmNlSW5TZWNvbmRzOigpPT5pMCxkaWZmZXJlbmNlSW5XZWVrczooKT0+UXl0LGRpZmZlcmVuY2VJblllYXJzOigpPT51c2UsZWFjaERheU9mSW50ZXJ2YWw6KCk9PnBzZSxlYWNoSG91ck9mSW50ZXJ2YWw6KCk9Pkp5dCxlYWNoTWludXRlT2ZJbnRlcnZhbDooKT0+dHd0LGVhY2hNb250aE9mSW50ZXJ2YWw6KCk9PmF3dCxlYWNoUXVhcnRlck9mSW50ZXJ2YWw6KCk9PnN3dCxlYWNoV2Vla09mSW50ZXJ2YWw6KCk9Pm93dCxlYWNoV2Vla2VuZE9mSW50ZXJ2YWw6KCk9PnBiLGVhY2hXZWVrZW5kT2ZNb250aDooKT0+Y3d0LGVhY2hXZWVrZW5kT2ZZZWFyOigpPT51d3QsZWFjaFllYXJPZkludGVydmFsOigpPT5md3QsZW5kT2ZEYXk6KCk9PmRiLGVuZE9mRGVjYWRlOigpPT5td3QsZW5kT2ZIb3VyOigpPT5id3QsZW5kT2ZJU09XZWVrOigpPT52d3QsZW5kT2ZJU09XZWVrWWVhcjooKT0+d3d0LGVuZE9mTWludXRlOigpPT5Td3QsZW5kT2ZNb250aDooKT0+dWIsZW5kT2ZRdWFydGVyOigpPT5Dd3QsZW5kT2ZTZWNvbmQ6KCk9Pl93dCxlbmRPZlRvZGF5OigpPT5Md3QsZW5kT2ZUb21vcnJvdzooKT0+JHd0LGVuZE9mV2VlazooKT0+YnNlLGVuZE9mWWVhcjooKT0+bXNlLGVuZE9mWWVzdGVyZGF5OigpPT5Fd3QsZm9ybWF0OigpPT5Yayxmb3JtYXREYXRlOigpPT5Yayxmb3JtYXREaXN0YW5jZTooKT0+Q3NlLGZvcm1hdERpc3RhbmNlU3RyaWN0OigpPT56c2UsZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+cmt0LGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3Q6KCk9PmlrdCxmb3JtYXREdXJhdGlvbjooKT0+bmt0LGZvcm1hdElTTzooKT0+bGt0LGZvcm1hdElTTzkwNzU6KCk9PmRrdCxmb3JtYXRJU09EdXJhdGlvbjooKT0+cGt0LGZvcm1hdFJGQzMzMzk6KCk9PmhrdCxmb3JtYXRSRkM3MjMxOigpPT5na3QsZm9ybWF0UmVsYXRpdmU6KCk9PnhrdCxmb3JtYXR0ZXJzOigpPT5aayxmcm9tVW5peFRpbWU6KCk9PnlrdCxnZXREYXRlOigpPT5fc2UsZ2V0RGF5OigpPT5YMyxnZXREYXlPZlllYXI6KCk9PnZzZSxnZXREYXlzSW5Nb250aDooKT0+VHNlLGdldERheXNJblllYXI6KCk9PmtrdCxnZXREZWNhZGU6KCk9Pk1rdCxnZXREZWZhdWx0T3B0aW9uczooKT0+RHNlLGdldEhvdXJzOigpPT56a3QsZ2V0SVNPRGF5OigpPT4kc2UsZ2V0SVNPV2VlazooKT0+Z2IsZ2V0SVNPV2Vla1llYXI6KCk9PkVvLGdldElTT1dlZWtzSW5ZZWFyOigpPT5Ua3QsZ2V0TWlsbGlzZWNvbmRzOigpPT5Ea3QsZ2V0TWludXRlczooKT0+QWt0LGdldE1vbnRoOigpPT5Ja3QsZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHM6KCk9Pk5rdCxnZXRRdWFydGVyOigpPT5VayxnZXRTZWNvbmRzOigpPT5Sa3QsZ2V0VGltZTooKT0+Qmt0LGdldFVuaXhUaW1lOigpPT5xa3QsZ2V0V2VlazooKT0+YmIsZ2V0V2Vla09mTW9udGg6KCk9PmprdCxnZXRXZWVrWWVhcjooKT0+WjMsZ2V0V2Vla3NJbk1vbnRoOigpPT5Xa3QsZ2V0WWVhcjooKT0+WWt0LGhvdXJzVG9NaWxsaXNlY29uZHM6KCk9PlprdCxob3Vyc1RvTWludXRlczooKT0+WGt0LGhvdXJzVG9TZWNvbmRzOigpPT5lU3QsaW50ZXJ2YWw6KCk9PnJTdCxpbnRlcnZhbFRvRHVyYXRpb246KCk9PmlTdCxpbnRsRm9ybWF0OigpPT5uU3QsaW50bEZvcm1hdERpc3RhbmNlOigpPT5sU3QsaXNBZnRlcjooKT0+ZFN0LGlzQmVmb3JlOigpPT5wU3QsaXNEYXRlOigpPT5YaWUsaXNFcXVhbDooKT0+aFN0LGlzRXhpc3RzOigpPT5nU3QsaXNGaXJzdERheU9mTW9udGg6KCk9PnhTdCxpc0ZyaWRheTooKT0+eVN0LGlzRnV0dXJlOigpPT5rU3QsaXNMYXN0RGF5T2ZNb250aDooKT0+ZHNlLGlzTGVhcFllYXI6KCk9PkxzZSxpc01hdGNoOigpPT5yTXQsaXNNb25kYXk6KCk9PmlNdCxpc1Bhc3Q6KCk9Pm5NdCxpc1NhbWVEYXk6KCk9PmEwLGlzU2FtZUhvdXI6KCk9PmtuZSxpc1NhbWVJU09XZWVrOigpPT5NbmUsaXNTYW1lSVNPV2Vla1llYXI6KCk9PmxNdCxpc1NhbWVNaW51dGU6KCk9PkNuZSxpc1NhbWVNb250aDooKT0+em5lLGlzU2FtZVF1YXJ0ZXI6KCk9Pl9uZSxpc1NhbWVTZWNvbmQ6KCk9PlRuZSxpc1NhbWVXZWVrOigpPT53Yixpc1NhbWVZZWFyOigpPT5MbmUsaXNTYXR1cmRheTooKT0+RmllLGlzU3VuZGF5OigpPT5CaWUsaXNUaGlzSG91cjooKT0+ZE10LGlzVGhpc0lTT1dlZWs6KCk9PnBNdCxpc1RoaXNNaW51dGU6KCk9PmhNdCxpc1RoaXNNb250aDooKT0+Z010LGlzVGhpc1F1YXJ0ZXI6KCk9PnhNdCxpc1RoaXNTZWNvbmQ6KCk9PnlNdCxpc1RoaXNXZWVrOigpPT5rTXQsaXNUaGlzWWVhcjooKT0+TU10LGlzVGh1cnNkYXk6KCk9PnpNdCxpc1RvZGF5OigpPT5UTXQsaXNUb21vcnJvdzooKT0+RE10LGlzVHVlc2RheTooKT0+QU10LGlzVmFsaWQ6KCk9Pl9uLGlzV2VkbmVzZGF5OigpPT5JTXQsaXNXZWVrZW5kOigpPT5lMCxpc1dpdGhpbkludGVydmFsOigpPT5OTXQsaXNZZXN0ZXJkYXk6KCk9PlJNdCxsYXN0RGF5T2ZEZWNhZGU6KCk9PkJNdCxsYXN0RGF5T2ZJU09XZWVrOigpPT5xTXQsbGFzdERheU9mSVNPV2Vla1llYXI6KCk9PmpNdCxsYXN0RGF5T2ZNb250aDooKT0+QXNlLGxhc3REYXlPZlF1YXJ0ZXI6KCk9PldNdCxsYXN0RGF5T2ZXZWVrOigpPT5EbmUsbGFzdERheU9mWWVhcjooKT0+WU10LGxpZ2h0Rm9ybWF0OigpPT5aTXQsbGlnaHRGb3JtYXR0ZXJzOigpPT5IMSxsb25nRm9ybWF0dGVyczooKT0+UTMsbWF4OigpPT5LaWUsbWlsbGlzZWNvbmRzOigpPT5YTXQsbWlsbGlzZWNvbmRzVG9Ib3VyczooKT0+ZUN0LG1pbGxpc2Vjb25kc1RvTWludXRlczooKT0+ckN0LG1pbGxpc2Vjb25kc1RvU2Vjb25kczooKT0+aUN0LG1pbjooKT0+WmllLG1pbnV0ZXNUb0hvdXJzOigpPT5uQ3QsbWludXRlc1RvTWlsbGlzZWNvbmRzOigpPT5sQ3QsbWludXRlc1RvU2Vjb25kczooKT0+ZEN0LG1vbnRoc1RvUXVhcnRlcnM6KCk9PnBDdCxtb250aHNUb1llYXJzOigpPT5oQ3QsbmV4dERheTooKT0+dG8sbmV4dEZyaWRheTooKT0+Z0N0LG5leHRNb25kYXk6KCk9PnhDdCxuZXh0U2F0dXJkYXk6KCk9PnlDdCxuZXh0U3VuZGF5OigpPT5rQ3QsbmV4dFRodXJzZGF5OigpPT5NQ3QsbmV4dFR1ZXNkYXk6KCk9PnpDdCxuZXh0V2VkbmVzZGF5OigpPT5UQ3QscGFyc2U6KCk9PnduZSxwYXJzZUlTTzooKT0+JEN0LHBhcnNlSlNPTjooKT0+RUN0LHBhcnNlcnM6KCk9PnluZSxwcmV2aW91c0RheTooKT0+cm8scHJldmlvdXNGcmlkYXk6KCk9PlBDdCxwcmV2aW91c01vbmRheTooKT0+T0N0LHByZXZpb3VzU2F0dXJkYXk6KCk9PkZDdCxwcmV2aW91c1N1bmRheTooKT0+SEN0LHByZXZpb3VzVGh1cnNkYXk6KCk9PlZDdCxwcmV2aW91c1R1ZXNkYXk6KCk9PlVDdCxwcmV2aW91c1dlZG5lc2RheTooKT0+R0N0LHF1YXJ0ZXJzVG9Nb250aHM6KCk9PktDdCxxdWFydGVyc1RvWWVhcnM6KCk9PlFDdCxyb3VuZFRvTmVhcmVzdEhvdXJzOigpPT5KQ3Qscm91bmRUb05lYXJlc3RNaW51dGVzOigpPT50enQsc2Vjb25kc1RvSG91cnM6KCk9PmF6dCxzZWNvbmRzVG9NaWxsaXNlY29uZHM6KCk9PnN6dCxzZWNvbmRzVG9NaW51dGVzOigpPT5venQsc2V0OigpPT5jenQsc2V0RGF0ZTooKT0+dXp0LHNldERheTooKT0+SjMsc2V0RGF5T2ZZZWFyOigpPT5menQsc2V0RGVmYXVsdE9wdGlvbnM6KCk9Pm16dCxzZXRIb3VyczooKT0+Ynp0LHNldElTT0RheTooKT0+aW5lLHNldElTT1dlZWs6KCk9PlFzZSxzZXRJU09XZWVrWWVhcjooKT0+VmllLHNldE1pbGxpc2Vjb25kczooKT0+dnp0LHNldE1pbnV0ZXM6KCk9Pnd6dCxzZXRNb250aDooKT0+a2Isc2V0UXVhcnRlcjooKT0+U3p0LHNldFNlY29uZHM6KCk9PkN6dCxzZXRXZWVrOigpPT5Lc2Usc2V0V2Vla1llYXI6KCk9Pl96dCxzZXRZZWFyOigpPT5MenQsc3RhcnRPZkRheTooKT0+cjAsc3RhcnRPZkRlY2FkZTooKT0+JHp0LHN0YXJ0T2ZIb3VyOigpPT50UyxzdGFydE9mSVNPV2VlazooKT0+YnMsc3RhcnRPZklTT1dlZWtZZWFyOigpPT5CMSxzdGFydE9mTWludXRlOigpPT5yUyxzdGFydE9mTW9udGg6KCk9PkszLHN0YXJ0T2ZRdWFydGVyOigpPT5uMCxzdGFydE9mU2Vjb25kOigpPT5hUyxzdGFydE9mVG9kYXk6KCk9PkV6dCxzdGFydE9mVG9tb3Jyb3c6KCk9PlB6dCxzdGFydE9mV2VlazooKT0+WWEsc3RhcnRPZldlZWtZZWFyOigpPT5RZixzdGFydE9mWWVhcjooKT0+ZmIsc3RhcnRPZlllc3RlcmRheTooKT0+T3p0LHN1YjooKT0+Rnp0LHN1YkJ1c2luZXNzRGF5czooKT0+SHp0LHN1YkRheXM6KCk9PmV1LHN1YkhvdXJzOigpPT5WenQsc3ViSVNPV2Vla1llYXJzOigpPT5zc2Usc3ViTWlsbGlzZWNvbmRzOigpPT5VenQsc3ViTWludXRlczooKT0+R3p0LHN1Yk1vbnRoczooKT0+RW5lLHN1YlF1YXJ0ZXJzOigpPT5LenQsc3ViU2Vjb25kczooKT0+UXp0LHN1YldlZWtzOigpPT5KenQsc3ViWWVhcnM6KCk9PnRfdCx0b0RhdGU6KCk9PlNlLHRyYW5zcG9zZTooKT0+RXNlLHdlZWtzVG9EYXlzOigpPT5hX3QseWVhcnNUb0RheXM6KCk9PnNfdCx5ZWFyc1RvTW9udGhzOigpPT5vX3QseWVhcnNUb1F1YXJ0ZXJzOigpPT5jX3R9KTt2YXIgdV90PXUoKCk9PntZN2UoKTtRN2UoKTtYYygpO1g3ZSgpO2U5ZSgpO3FrKCk7VWllKCk7cmIoKTtXaWUoKTt0OWUoKTtqaygpO3I5ZSgpO0V5dCgpO1B5dCgpO3M5ZSgpO095dCgpO1VmKCk7Rnl0KCk7VnQoKTtGcygpO0h5dCgpO1Z5dCgpO1JkKCk7bzllKCk7VXl0KCk7ZXNlKCk7YzllKCk7dHNlKCk7cnNlKCk7YXNlKCk7aXNlKCk7WXl0KCk7bnNlKCk7b3NlKCk7V2soKTtaeXQoKTtHaygpO1h5dCgpO3A5ZSgpO2Y5ZSgpO2V3dCgpO3J3dCgpO2l3dCgpO253dCgpO2x3dCgpO2hzZSgpO2R3dCgpO3B3dCgpO2h3dCgpO2xzZSgpO2d3dCgpO3h3dCgpO3l3dCgpO2t3dCgpO013dCgpO2NzZSgpO3p3dCgpO1R3dCgpO0R3dCgpO0F3dCgpO205ZSgpO2g5ZSgpO0l3dCgpO3k5ZSgpO3c5ZSgpO2s5ZSgpO2FrdCgpO3NrdCgpO29rdCgpO2NrdCgpO3VrdCgpO2ZrdCgpO21rdCgpO2JrdCgpO3ZrdCgpO3drdCgpO1M5ZSgpO0prKCk7ZzllKCk7TTllKCk7U2t0KCk7Q2t0KCk7ejllKCk7X2t0KCk7XzllKCk7eXNlKCk7VTMoKTtMa3QoKTska3QoKTtFa3QoKTtQa3QoKTtPa3QoKTtsOWUoKTtGa3QoKTtIa3QoKTtWa3QoKTtrc2UoKTtVa3QoKTtLaygpO0drdCgpO0trdCgpO1FrdCgpO0prdCgpO3RTdCgpO2FTdCgpO3NTdCgpO29TdCgpO2NTdCgpO3VTdCgpO2ZTdCgpO245ZSgpO21TdCgpO2JTdCgpO3ZTdCgpO3dTdCgpO1NTdCgpO3U5ZSgpO0M5ZSgpO2FNdCgpO3NNdCgpO29NdCgpO25iKCk7TjllKCk7TzllKCk7Y010KCk7RjllKCk7QjllKCk7SDllKCk7VjllKCk7U25lKCk7ajllKCk7SzdlKCk7WjdlKCk7dU10KCk7Zk10KCk7bU10KCk7Yk10KCk7dk10KCk7d010KCk7U010KCk7Q010KCk7X010KCk7TE10KCk7JE10KCk7RU10KCk7RmQoKTtQTXQoKTtIaygpO09NdCgpO0ZNdCgpO0hNdCgpO1ZNdCgpO1VNdCgpO1Q5ZSgpO0dNdCgpO1U5ZSgpO0tNdCgpO1FNdCgpO2E5ZSgpO0pNdCgpO3RDdCgpO2FDdCgpO3NDdCgpO2k5ZSgpO29DdCgpO2NDdCgpO3VDdCgpO2ZDdCgpO21DdCgpO0hkKCk7YkN0KCk7dkN0KCk7d0N0KCk7U0N0KCk7Q0N0KCk7X0N0KCk7TEN0KCk7STllKCk7QUN0KCk7SUN0KCk7cWQoKTtOQ3QoKTtSQ3QoKTtCQ3QoKTtxQ3QoKTtqQ3QoKTtXQ3QoKTtZQ3QoKTtaQ3QoKTtYQ3QoKTtlenQoKTtyenQoKTtpenQoKTtuenQoKTtsenQoKTtkenQoKTtwenQoKTtlUygpO2h6dCgpO2d6dCgpO3h6dCgpO0U5ZSgpO0E5ZSgpO0o3ZSgpO3l6dCgpO2t6dCgpO0FuZSgpO016dCgpO3p6dCgpOyQ5ZSgpO1R6dCgpO0R6dCgpO1ZrKCk7QXp0KCk7UDllKCk7dDAoKTthYigpO1I5ZSgpO1lrKCk7ZnNlKCk7cTllKCk7SXp0KCk7Tnp0KCk7azIoKTt3c2UoKTtnc2UoKTtSenQoKTtCenQoKTtxenQoKTtpUygpO2p6dCgpO2Q5ZSgpO1d6dCgpO1l6dCgpO0c5ZSgpO1p6dCgpO1h6dCgpO2VfdCgpO3JfdCgpO0tlKCk7TDllKCk7aV90KCk7bl90KCk7bF90KCk7ZF90KCl9KTt2YXIgcF90PU50KChZOWUsSzllKT0+eyhmdW5jdGlvbih0LGUpe3R5cGVvZiBZOWU9PSJvYmplY3QiJiZ0eXBlb2YgSzllPCJ1Ij9LOWUuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHQ9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHx8c2VsZikuZGF5anM9ZSgpfSkoWTllLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD0xZTMsZT02ZTQscj0zNmU1LGE9Im1pbGxpc2Vjb25kIixzPSJzZWNvbmQiLG49Im1pbnV0ZSIsbz0iaG91ciIsbD0iZGF5IixjPSJ3ZWVrIixkPSJtb250aCIsZj0icXVhcnRlciIscD0ieWVhciIsaD0iZGF0ZSIsbT0iSW52YWxpZCBEYXRlIix2PS9eKFxkezR9KVstL10/KFxkezEsMn0pP1stL10/KFxkezAsMn0pW1R0XHNdKihcZHsxLDJ9KT86PyhcZHsxLDJ9KT86PyhcZHsxLDJ9KT9bLjpdPyhcZCspPyQvLGI9L1xbKFteXF1dKyldfFl7MSw0fXxNezEsNH18RHsxLDJ9fGR7MSw0fXxIezEsMn18aHsxLDJ9fGF8QXxtezEsMn18c3sxLDJ9fFp7MSwyfXxTU1MvZyxnPXtuYW1lOiJlbiIsd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLG1vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxvcmRpbmFsOmkoZnVuY3Rpb24oeil7dmFyIEE9WyJ0aCIsInN0IiwibmQiLCJyZCJdLCQ9eiUxMDA7cmV0dXJuIlsiK3orKEFbKCQtMjApJTEwXXx8QVskXXx8QVswXSkrIl0ifSwib3JkaW5hbCIpfSx5PWkoZnVuY3Rpb24oeixBLCQpe3ZhciBGPVN0cmluZyh6KTtyZXR1cm4hRnx8Ri5sZW5ndGg+PUE/ejoiIitBcnJheShBKzEtRi5sZW5ndGgpLmpvaW4oJCkren0sIm0iKSxrPXtzOnksejppKGZ1bmN0aW9uKHope3ZhciBBPS16LnV0Y09mZnNldCgpLCQ9TWF0aC5hYnMoQSksRj1NYXRoLmZsb29yKCQvNjApLFk9JCU2MDtyZXR1cm4oQTw9MD8iKyI6Ii0iKSt5KEYsMiwiMCIpKyI6Iit5KFksMiwiMCIpfSwieiIpLG06aShmdW5jdGlvbiB6KEEsJCl7aWYoQS5kYXRlKCk8JC5kYXRlKCkpcmV0dXJuLXooJCxBKTt2YXIgRj0xMiooJC55ZWFyKCktQS55ZWFyKCkpKygkLm1vbnRoKCktQS5tb250aCgpKSxZPUEuY2xvbmUoKS5hZGQoRixkKSxHPSQtWTwwLFo9QS5jbG9uZSgpLmFkZChGKyhHPy0xOjEpLGQpO3JldHVybisoLShGKygkLVkpLyhHP1ktWjpaLVkpKXx8MCl9LCJ0IiksYTppKGZ1bmN0aW9uKHope3JldHVybiB6PDA/TWF0aC5jZWlsKHopfHwwOk1hdGguZmxvb3Ioeil9LCJhIikscDppKGZ1bmN0aW9uKHope3JldHVybntNOmQseTpwLHc6YyxkOmwsRDpoLGg6byxtOm4scyxtczphLFE6Zn1bel18fFN0cmluZyh6fHwiIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9zJC8sIiIpfSwicCIpLHU6aShmdW5jdGlvbih6KXtyZXR1cm4gej09PXZvaWQgMH0sInUiKX0sTT0iZW4iLE49e307TltNXT1nO3ZhciBfPSIkaXNEYXlqc09iamVjdCIsUz1pKGZ1bmN0aW9uKHope3JldHVybiB6IGluc3RhbmNlb2YgQnx8ISghenx8IXpbX10pfSwiUyIpLE89aShmdW5jdGlvbiB6KEEsJCxGKXt2YXIgWTtpZighQSlyZXR1cm4gTTtpZih0eXBlb2YgQT09InN0cmluZyIpe3ZhciBHPUEudG9Mb3dlckNhc2UoKTtOW0ddJiYoWT1HKSwkJiYoTltHXT0kLFk9Ryk7dmFyIFo9QS5zcGxpdCgiLSIpO2lmKCFZJiZaLmxlbmd0aD4xKXJldHVybiB6KFpbMF0pfWVsc2V7dmFyIGRlPUEubmFtZTtOW2RlXT1BLFk9ZGV9cmV0dXJuIUYmJlkmJihNPVkpLFl8fCFGJiZNfSwidCIpLEw9aShmdW5jdGlvbih6LEEpe2lmKFMoeikpcmV0dXJuIHouY2xvbmUoKTt2YXIgJD10eXBlb2YgQT09Im9iamVjdCI/QTp7fTtyZXR1cm4gJC5kYXRlPXosJC5hcmdzPWFyZ3VtZW50cyxuZXcgQigkKX0sIk8iKSxFPWs7RS5sPU8sRS5pPVMsRS53PWZ1bmN0aW9uKHosQSl7cmV0dXJuIEwoeix7bG9jYWxlOkEuJEwsdXRjOkEuJHUseDpBLiR4LCRvZmZzZXQ6QS4kb2Zmc2V0fSl9O3ZhciBCPShmdW5jdGlvbigpe2Z1bmN0aW9uIHooJCl7dGhpcy4kTD1PKCQubG9jYWxlLG51bGwsITApLHRoaXMucGFyc2UoJCksdGhpcy4keD10aGlzLiR4fHwkLnh8fHt9LHRoaXNbX109ITB9aSh6LCJNIik7dmFyIEE9ei5wcm90b3R5cGU7cmV0dXJuIEEucGFyc2U9ZnVuY3Rpb24oJCl7dGhpcy4kZD0oZnVuY3Rpb24oRil7dmFyIFk9Ri5kYXRlLEc9Ri51dGM7aWYoWT09PW51bGwpcmV0dXJuIG5ldyBEYXRlKE5hTik7aWYoRS51KFkpKXJldHVybiBuZXcgRGF0ZTtpZihZIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUoWSk7aWYodHlwZW9mIFk9PSJzdHJpbmciJiYhL1okL2kudGVzdChZKSl7dmFyIFo9WS5tYXRjaCh2KTtpZihaKXt2YXIgZGU9WlsyXS0xfHwwLEQ9KFpbN118fCIwIikuc3Vic3RyaW5nKDAsMyk7cmV0dXJuIEc/bmV3IERhdGUoRGF0ZS5VVEMoWlsxXSxkZSxaWzNdfHwxLFpbNF18fDAsWls1XXx8MCxaWzZdfHwwLEQpKTpuZXcgRGF0ZShaWzFdLGRlLFpbM118fDEsWls0XXx8MCxaWzVdfHwwLFpbNl18fDAsRCl9fXJldHVybiBuZXcgRGF0ZShZKX0pKCQpLHRoaXMuaW5pdCgpfSxBLmluaXQ9ZnVuY3Rpb24oKXt2YXIgJD10aGlzLiRkO3RoaXMuJHk9JC5nZXRGdWxsWWVhcigpLHRoaXMuJE09JC5nZXRNb250aCgpLHRoaXMuJEQ9JC5nZXREYXRlKCksdGhpcy4kVz0kLmdldERheSgpLHRoaXMuJEg9JC5nZXRIb3VycygpLHRoaXMuJG09JC5nZXRNaW51dGVzKCksdGhpcy4kcz0kLmdldFNlY29uZHMoKSx0aGlzLiRtcz0kLmdldE1pbGxpc2Vjb25kcygpfSxBLiR1dGlscz1mdW5jdGlvbigpe3JldHVybiBFfSxBLmlzVmFsaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1N0cmluZygpIT09bX0sQS5pc1NhbWU9ZnVuY3Rpb24oJCxGKXt2YXIgWT1MKCQpO3JldHVybiB0aGlzLnN0YXJ0T2YoRik8PVkmJlk8PXRoaXMuZW5kT2YoRil9LEEuaXNBZnRlcj1mdW5jdGlvbigkLEYpe3JldHVybiBMKCQpPHRoaXMuc3RhcnRPZihGKX0sQS5pc0JlZm9yZT1mdW5jdGlvbigkLEYpe3JldHVybiB0aGlzLmVuZE9mKEYpPEwoJCl9LEEuJGc9ZnVuY3Rpb24oJCxGLFkpe3JldHVybiBFLnUoJCk/dGhpc1tGXTp0aGlzLnNldChZLCQpfSxBLnVuaXg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSxBLnZhbHVlT2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC5nZXRUaW1lKCl9LEEuc3RhcnRPZj1mdW5jdGlvbigkLEYpe3ZhciBZPXRoaXMsRz0hIUUudShGKXx8RixaPUUucCgkKSxkZT1pKGZ1bmN0aW9uKHEsSCl7dmFyIFU9RS53KFkuJHU/RGF0ZS5VVEMoWS4keSxILHEpOm5ldyBEYXRlKFkuJHksSCxxKSxZKTtyZXR1cm4gRz9VOlUuZW5kT2YobCl9LCJsIiksRD1pKGZ1bmN0aW9uKHEsSCl7cmV0dXJuIEUudyhZLnRvRGF0ZSgpW3FdLmFwcGx5KFkudG9EYXRlKCJzIiksKEc/WzAsMCwwLDBdOlsyMyw1OSw1OSw5OTldKS5zbGljZShIKSksWSl9LCIkIiksUT10aGlzLiRXLGZlPXRoaXMuJE0sVD10aGlzLiRELFc9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpO3N3aXRjaChaKXtjYXNlIHA6cmV0dXJuIEc/ZGUoMSwwKTpkZSgzMSwxMSk7Y2FzZSBkOnJldHVybiBHP2RlKDEsZmUpOmRlKDAsZmUrMSk7Y2FzZSBjOnZhciBwZT10aGlzLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDAsbWU9KFE8cGU/USs3OlEpLXBlO3JldHVybiBkZShHP1QtbWU6VCsoNi1tZSksZmUpO2Nhc2UgbDpjYXNlIGg6cmV0dXJuIEQoVysiSG91cnMiLDApO2Nhc2UgbzpyZXR1cm4gRChXKyJNaW51dGVzIiwxKTtjYXNlIG46cmV0dXJuIEQoVysiU2Vjb25kcyIsMik7Y2FzZSBzOnJldHVybiBEKFcrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sQS5lbmRPZj1mdW5jdGlvbigkKXtyZXR1cm4gdGhpcy5zdGFydE9mKCQsITEpfSxBLiRzZXQ9ZnVuY3Rpb24oJCxGKXt2YXIgWSxHPUUucCgkKSxaPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxkZT0oWT17fSxZW2xdPVorIkRhdGUiLFlbaF09WisiRGF0ZSIsWVtkXT1aKyJNb250aCIsWVtwXT1aKyJGdWxsWWVhciIsWVtvXT1aKyJIb3VycyIsWVtuXT1aKyJNaW51dGVzIixZW3NdPVorIlNlY29uZHMiLFlbYV09WisiTWlsbGlzZWNvbmRzIixZKVtHXSxEPUc9PT1sP3RoaXMuJEQrKEYtdGhpcy4kVyk6RjtpZihHPT09ZHx8Rz09PXApe3ZhciBRPXRoaXMuY2xvbmUoKS5zZXQoaCwxKTtRLiRkW2RlXShEKSxRLmluaXQoKSx0aGlzLiRkPVEuc2V0KGgsTWF0aC5taW4odGhpcy4kRCxRLmRheXNJbk1vbnRoKCkpKS4kZH1lbHNlIGRlJiZ0aGlzLiRkW2RlXShEKTtyZXR1cm4gdGhpcy5pbml0KCksdGhpc30sQS5zZXQ9ZnVuY3Rpb24oJCxGKXtyZXR1cm4gdGhpcy5jbG9uZSgpLiRzZXQoJCxGKX0sQS5nZXQ9ZnVuY3Rpb24oJCl7cmV0dXJuIHRoaXNbRS5wKCQpXSgpfSxBLmFkZD1mdW5jdGlvbigkLEYpe3ZhciBZLEc9dGhpczskPU51bWJlcigkKTt2YXIgWj1FLnAoRiksZGU9aShmdW5jdGlvbihmZSl7dmFyIFQ9TChHKTtyZXR1cm4gRS53KFQuZGF0ZShULmRhdGUoKStNYXRoLnJvdW5kKGZlKiQpKSxHKX0sInkiKTtpZihaPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiRNKyQpO2lmKFo9PT1wKXJldHVybiB0aGlzLnNldChwLHRoaXMuJHkrJCk7aWYoWj09PWwpcmV0dXJuIGRlKDEpO2lmKFo9PT1jKXJldHVybiBkZSg3KTt2YXIgRD0oWT17fSxZW25dPWUsWVtvXT1yLFlbc109dCxZKVtaXXx8MSxRPXRoaXMuJGQuZ2V0VGltZSgpKyQqRDtyZXR1cm4gRS53KFEsdGhpcyl9LEEuc3VidHJhY3Q9ZnVuY3Rpb24oJCxGKXtyZXR1cm4gdGhpcy5hZGQoLTEqJCxGKX0sQS5mb3JtYXQ9ZnVuY3Rpb24oJCl7dmFyIEY9dGhpcyxZPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gWS5pbnZhbGlkRGF0ZXx8bTt2YXIgRz0kfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLFo9RS56KHRoaXMpLGRlPXRoaXMuJEgsRD10aGlzLiRtLFE9dGhpcy4kTSxmZT1ZLndlZWtkYXlzLFQ9WS5tb250aHMsVz1ZLm1lcmlkaWVtLHBlPWkoZnVuY3Rpb24oSCxVLGosYWUpe3JldHVybiBIJiYoSFtVXXx8SChGLEcpKXx8altVXS5zbGljZSgwLGFlKX0sImgiKSxtZT1pKGZ1bmN0aW9uKEgpe3JldHVybiBFLnMoZGUlMTJ8fDEyLEgsIjAiKX0sImQiKSxxPVd8fGZ1bmN0aW9uKEgsVSxqKXt2YXIgYWU9SDwxMj8iQU0iOiJQTSI7cmV0dXJuIGo/YWUudG9Mb3dlckNhc2UoKTphZX07cmV0dXJuIEcucmVwbGFjZShiLChmdW5jdGlvbihILFUpe3JldHVybiBVfHwoZnVuY3Rpb24oail7c3dpdGNoKGope2Nhc2UiWVkiOnJldHVybiBTdHJpbmcoRi4keSkuc2xpY2UoLTIpO2Nhc2UiWVlZWSI6cmV0dXJuIEUucyhGLiR5LDQsIjAiKTtjYXNlIk0iOnJldHVybiBRKzE7Y2FzZSJNTSI6cmV0dXJuIEUucyhRKzEsMiwiMCIpO2Nhc2UiTU1NIjpyZXR1cm4gcGUoWS5tb250aHNTaG9ydCxRLFQsMyk7Y2FzZSJNTU1NIjpyZXR1cm4gcGUoVCxRKTtjYXNlIkQiOnJldHVybiBGLiREO2Nhc2UiREQiOnJldHVybiBFLnMoRi4kRCwyLCIwIik7Y2FzZSJkIjpyZXR1cm4gU3RyaW5nKEYuJFcpO2Nhc2UiZGQiOnJldHVybiBwZShZLndlZWtkYXlzTWluLEYuJFcsZmUsMik7Y2FzZSJkZGQiOnJldHVybiBwZShZLndlZWtkYXlzU2hvcnQsRi4kVyxmZSwzKTtjYXNlImRkZGQiOnJldHVybiBmZVtGLiRXXTtjYXNlIkgiOnJldHVybiBTdHJpbmcoZGUpO2Nhc2UiSEgiOnJldHVybiBFLnMoZGUsMiwiMCIpO2Nhc2UiaCI6cmV0dXJuIG1lKDEpO2Nhc2UiaGgiOnJldHVybiBtZSgyKTtjYXNlImEiOnJldHVybiBxKGRlLEQsITApO2Nhc2UiQSI6cmV0dXJuIHEoZGUsRCwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKEQpO2Nhc2UibW0iOnJldHVybiBFLnMoRCwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKEYuJHMpO2Nhc2Uic3MiOnJldHVybiBFLnMoRi4kcywyLCIwIik7Y2FzZSJTU1MiOnJldHVybiBFLnMoRi4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIFp9cmV0dXJuIG51bGx9KShIKXx8Wi5yZXBsYWNlKCI6IiwiIil9KSl9LEEudXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LEEuZGlmZj1mdW5jdGlvbigkLEYsWSl7dmFyIEcsWj10aGlzLGRlPUUucChGKSxEPUwoJCksUT0oRC51dGNPZmZzZXQoKS10aGlzLnV0Y09mZnNldCgpKSplLGZlPXRoaXMtRCxUPWkoZnVuY3Rpb24oKXtyZXR1cm4gRS5tKFosRCl9LCJEIik7c3dpdGNoKGRlKXtjYXNlIHA6Rz1UKCkvMTI7YnJlYWs7Y2FzZSBkOkc9VCgpO2JyZWFrO2Nhc2UgZjpHPVQoKS8zO2JyZWFrO2Nhc2UgYzpHPShmZS1RKS82MDQ4ZTU7YnJlYWs7Y2FzZSBsOkc9KGZlLVEpLzg2NGU1O2JyZWFrO2Nhc2UgbzpHPWZlL3I7YnJlYWs7Y2FzZSBuOkc9ZmUvZTticmVhaztjYXNlIHM6Rz1mZS90O2JyZWFrO2RlZmF1bHQ6Rz1mZX1yZXR1cm4gWT9HOkUuYShHKX0sQS5kYXlzSW5Nb250aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuZE9mKGQpLiREfSxBLiRsb2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gTlt0aGlzLiRMXX0sQS5sb2NhbGU9ZnVuY3Rpb24oJCxGKXtpZighJClyZXR1cm4gdGhpcy4kTDt2YXIgWT10aGlzLmNsb25lKCksRz1PKCQsRiwhMCk7cmV0dXJuIEcmJihZLiRMPUcpLFl9LEEuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gRS53KHRoaXMuJGQsdGhpcyl9LEEudG9EYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpKX0sQS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCk/dGhpcy50b0lTT1N0cmluZygpOm51bGx9LEEudG9JU09TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b0lTT1N0cmluZygpfSxBLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9VVENTdHJpbmcoKX0sen0pKCksQz1CLnByb3RvdHlwZTtyZXR1cm4gTC5wcm90b3R5cGU9QyxbWyIkbXMiLGFdLFsiJHMiLHNdLFsiJG0iLG5dLFsiJEgiLG9dLFsiJFciLGxdLFsiJE0iLGRdLFsiJHkiLHBdLFsiJEQiLGhdXS5mb3JFYWNoKChmdW5jdGlvbih6KXtDW3pbMV1dPWZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLiRnKEEselswXSx6WzFdKX19KSksTC5leHRlbmQ9ZnVuY3Rpb24oeixBKXtyZXR1cm4gei4kaXx8KHooQSxCLEwpLHouJGk9ITApLEx9LEwubG9jYWxlPU8sTC5pc0RheWpzPVMsTC51bml4PWZ1bmN0aW9uKHope3JldHVybiBMKDFlMyp6KX0sTC5lbj1OW01dLEwuTHM9TixMLnA9e30sTH0pKX0pO3ZhciBmX3Q9TnQoKFo5ZSxROWUpPT57KGZ1bmN0aW9uKHQsZSl7dHlwZW9mIFo5ZT09Im9iamVjdCImJnR5cGVvZiBROWU8InUiP1E5ZS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0fHxzZWxmKS5kYXlqc19wbHVnaW5faXNUb2RheT1lKCl9KShaOWUsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3JldHVybiBmdW5jdGlvbih0LGUscil7ZS5wcm90b3R5cGUuaXNUb2RheT1mdW5jdGlvbigpe3ZhciBhPSJZWVlZLU1NLUREIixzPXIoKTtyZXR1cm4gdGhpcy5mb3JtYXQoYSk9PT1zLmZvcm1hdChhKX19fSkpfSk7ZnVuY3Rpb24gaGRhKHQpe3JldHVybntkYXlzOk1hdGgudHJ1bmModC84NjRlNSksaG91cnM6TWF0aC50cnVuYyh0LzM2ZTUlMjQpLG1pbnV0ZXM6TWF0aC50cnVuYyh0LzZlNCU2MCksc2Vjb25kczpNYXRoLnRydW5jKHQvMWUzJTYwKSxtaWxsaXNlY29uZHM6TWF0aC50cnVuYyh0JTFlMyksbWljcm9zZWNvbmRzOk1hdGgudHJ1bmMoaF90KHQqMWUzKSUxZTMpLG5hbm9zZWNvbmRzOk1hdGgudHJ1bmMoaF90KHQqMWU2KSUxZTMpfX1mdW5jdGlvbiBtZGEodCl7cmV0dXJue2RheXM6dC84NjQwMDAwMG4saG91cnM6dC8zNjAwMDAwbiUyNG4sbWludXRlczp0LzYwMDAwbiU2MG4sc2Vjb25kczp0LzEwMDBuJTYwbixtaWxsaXNlY29uZHM6dCUxMDAwbixtaWNyb3NlY29uZHM6MG4sbmFub3NlY29uZHM6MG59fWZ1bmN0aW9uIFg5ZSh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2UibnVtYmVyIjp7aWYoTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiBoZGEodCk7YnJlYWt9Y2FzZSJiaWdpbnQiOnJldHVybiBtZGEodCl9dGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyIG9yIGJpZ2ludCIpfXZhciBoX3QsbV90PXUoKCk9PntoX3Q9aSh0PT5OdW1iZXIuaXNGaW5pdGUodCk/dDowLCJ0b1plcm9JZkluZmluaXR5Iik7aShoZGEsInBhcnNlTnVtYmVyIik7aShtZGEsInBhcnNlQmlnaW50Iik7aShYOWUsInBhcnNlTWlsbGlzZWNvbmRzIil9KTtmdW5jdGlvbiBvUyh0LGUpe2xldCByPXR5cGVvZiB0PT0iYmlnaW50IjtpZighciYmIU51bWJlci5pc0Zpbml0ZSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iik7ZT17Li4uZX07bGV0IGE9dDwwPyItIjoiIjt0PXQ8MD8tdDp0LGUuY29sb25Ob3RhdGlvbiYmKGUuY29tcGFjdD0hMSxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kcz0hMSxlLnNlcGFyYXRlTWlsbGlzZWNvbmRzPSExLGUudmVyYm9zZT0hMSksZS5jb21wYWN0JiYoZS51bml0Q291bnQ9MSxlLnNlY29uZHNEZWNpbWFsRGlnaXRzPTAsZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPTApO2xldCBzPVtdLG49aSgoZixwKT0+e2xldCBoPU1hdGguZmxvb3IoZioxMCoqcCt4ZGEpO3JldHVybihNYXRoLnJvdW5kKGgpLzEwKipwKS50b0ZpeGVkKHApfSwiZmxvb3JEZWNpbWFscyIpLG89aSgoZixwLGgsbSk9PntpZighKChzLmxlbmd0aD09PTB8fCFlLmNvbG9uTm90YXRpb24pJiZnZGEoZikmJiEoZS5jb2xvbk5vdGF0aW9uJiZoPT09Im0iKSkpe2lmKG0/Pz1TdHJpbmcoZiksZS5jb2xvbk5vdGF0aW9uKXtsZXQgdj1tLmluY2x1ZGVzKCIuIik/bS5zcGxpdCgiLiIpWzBdLmxlbmd0aDptLmxlbmd0aCxiPXMubGVuZ3RoPjA/MjoxO209IjAiLnJlcGVhdChNYXRoLm1heCgwLGItdikpK219ZWxzZSBtKz1lLnZlcmJvc2U/IiAiK2JkYShwLGYpOmg7cy5wdXNoKG0pfX0sImFkZCIpLGw9WDllKHQpLGM9QmlnSW50KGwuZGF5cyk7aWYoZS5oaWRlWWVhckFuZERheXM/byhCaWdJbnQoYykqMjRuK0JpZ0ludChsLmhvdXJzKSwiaG91ciIsImgiKTooZS5oaWRlWWVhcj9vKGMsImRheSIsImQiKToobyhjLzM2NW4sInllYXIiLCJ5IiksbyhjJTM2NW4sImRheSIsImQiKSksbyhOdW1iZXIobC5ob3VycyksImhvdXIiLCJoIikpLG8oTnVtYmVyKGwubWludXRlcyksIm1pbnV0ZSIsIm0iKSwhZS5oaWRlU2Vjb25kcylpZihlLnNlcGFyYXRlTWlsbGlzZWNvbmRzfHxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kc3x8IWUuY29sb25Ob3RhdGlvbiYmdDwxZTMmJiFlLnN1YlNlY29uZHNBc0RlY2ltYWxzKXtsZXQgZj1OdW1iZXIobC5zZWNvbmRzKSxwPU51bWJlcihsLm1pbGxpc2Vjb25kcyksaD1OdW1iZXIobC5taWNyb3NlY29uZHMpLG09TnVtYmVyKGwubmFub3NlY29uZHMpO2lmKG8oZiwic2Vjb25kIiwicyIpLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzKW8ocCwibWlsbGlzZWNvbmQiLCJtcyIpLG8oaCwibWljcm9zZWNvbmQiLCJceEI1cyIpLG8obSwibmFub3NlY29uZCIsIm5zIik7ZWxzZXtsZXQgdj1wK2gvMWUzK20vMWU2LGI9dHlwZW9mIGUubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/ZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzOjAsZz12Pj0xP01hdGgucm91bmQodik6TWF0aC5jZWlsKHYpLHk9Yj92LnRvRml4ZWQoYik6ZztvKE51bWJlci5wYXJzZUZsb2F0KHkpLCJtaWxsaXNlY29uZCIsIm1zIix5KX19ZWxzZXtsZXQgZj0ocj9OdW1iZXIodCV2ZGEpOnQpLzFlMyU2MCxwPXR5cGVvZiBlLnNlY29uZHNEZWNpbWFsRGlnaXRzPT0ibnVtYmVyIj9lLnNlY29uZHNEZWNpbWFsRGlnaXRzOjEsaD1uKGYscCksbT1lLmtlZXBEZWNpbWFsc09uV2hvbGVTZWNvbmRzP2g6aC5yZXBsYWNlKC9cLjArJC8sIiIpO28oTnVtYmVyLnBhcnNlRmxvYXQobSksInNlY29uZCIsInMiLG0pfWlmKHMubGVuZ3RoPT09MClyZXR1cm4gYSsiMCIrKGUudmVyYm9zZT8iIG1pbGxpc2Vjb25kcyI6Im1zIik7bGV0IGQ9ZS5jb2xvbk5vdGF0aW9uPyI6IjoiICI7cmV0dXJuIHR5cGVvZiBlLnVuaXRDb3VudD09Im51bWJlciImJihzPXMuc2xpY2UoMCxNYXRoLm1heChlLnVuaXRDb3VudCwxKSkpLGErcy5qb2luKGQpfXZhciBnZGEsYmRhLHhkYSx2ZGEsZ190PXUoKCk9PnttX3QoKTtnZGE9aSh0PT50PT09MHx8dD09PTBuLCJpc1plcm8iKSxiZGE9aSgodCxlKT0+ZT09PTF8fGU9PT0xbj90OmAke3R9c2AsInBsdXJhbGl6ZSIpLHhkYT0xZS03LHZkYT0yNG4qNjBuKjYwbioxMDAwbjtpKG9TLCJwcmV0dHlNaWxsaXNlY29uZHMiKX0pO3ZhciBlaCxiX3QsdHU9dSgoKT0+e01iKCk7TmQoKTtHbigpO195dCgpO3VfdCgpO2VoPUdhKHBfdCgpLDEpLGJfdD1HYShmX3QoKSwxKTtnX3QoKTtlaC5kZWZhdWx0LmV4dGVuZChiX3QuZGVmYXVsdCl9KTt2YXIgbFMsSjllPXUoKCk9Pnt0dSgpO2VnZSgpO2xTPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNyb25Kb2IiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy5zdGF0dXM9ImluaXRpYWwiLHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9MCx0aGlzLmNyb25FeHByZXNzaW9uPXIsdGhpcy5qb2JGdW5jdGlvbj1hLHRoaXMuY3JvblBhcnNlcj1uZXcgRmsuQ3JvbihyKX1jaGVja0V4ZWN1dGlvbigpe2lmKHRoaXMuc3RhdHVzPT09InN0b3BwZWQiKXJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4O2lmKHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9PT0wJiZ0aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCksRGF0ZS5ub3coKT50aGlzLm5leHRFeGVjdXRpb25Vbml4KXtsZXQgZT10aGlzLmpvYkZ1bmN0aW9uKHRoaXMubmV4dEV4ZWN1dGlvblVuaXgpO2UgaW5zdGFuY2VvZiBQcm9taXNlJiZlLmNhdGNoKHI9PmNvbnNvbGUubG9nKHIpKSx0aGlzLm5leHRFeGVjdXRpb25Vbml4PXRoaXMuZ2V0TmV4dEV4ZWN1dGlvblRpbWUoKX1yZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peH1nZXROZXh0RXhlY3V0aW9uVGltZSgpe3JldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4PURhdGUubm93KCkrdGhpcy5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCl9Z2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpe3JldHVybiB0aGlzLmNyb25QYXJzZXIubXNUb05leHQoKX1zdGFydCgpe3RoaXMuc3RhdHVzPSJzdGFydGVkIn1zdG9wKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQifX19KTt2YXIgdGdlLGVnZT11KCgpPT57dHUoKTtKOWUoKTt0Z2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQ3Jvbk1hbmFnZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLmNyb25qb2JzPW5ldyBGYS5PYmplY3RNYXAsdGhpcy5jeWNsZVdha2VEZWZlcnJlZD1udWxsfXdha2VDeWNsZSgpe3RoaXMuY3ljbGVXYWtlRGVmZXJyZWQmJnRoaXMuY3ljbGVXYWtlRGVmZXJyZWQuc3RhdHVzPT09InBlbmRpbmciJiZ0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnJlc29sdmUoKX1hZGRDcm9uam9iKGUscil7bGV0IGE9bmV3IGxTKHRoaXMsZSxyKTtyZXR1cm4gdGhpcy5jcm9uam9icy5hZGQoYSksdGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJihhLnN0YXJ0KCksdGhpcy53YWtlQ3ljbGUoKSksYX1yZW1vdmVDcm9uam9iKGUpe2Uuc3RvcCgpLHRoaXMuY3JvbmpvYnMucmVtb3ZlKGUpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLndha2VDeWNsZSgpfXN0YXJ0KCl7aWYodGhpcy5zdGF0dXMhPT0ic3RhcnRlZCIpe3RoaXMuc3RhdHVzPSJzdGFydGVkIjtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RhcnQoKTt0aGlzLnJ1bkNyb25DeWNsZSgpfX1hc3luYyBydW5Dcm9uQ3ljbGUoKXtmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiOyl7dGhpcy5jeWNsZVdha2VEZWZlcnJlZD1uZXcgeHQuRGVmZXJyZWQ7bGV0IGU9MS8wO2ZvcihsZXQgciBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpe3IuY2hlY2tFeGVjdXRpb24oKTtsZXQgYT1yLmdldFRpbWVUb05leHRFeGVjdXRpb24oKTthPGUmJihlPWEpfWlmKGU8MS8wJiZlPjApdGhpcy5leGVjdXRpb25UaW1lb3V0PW5ldyBLdC5UaW1lb3V0KGUpLGF3YWl0IFByb21pc2UucmFjZShbdGhpcy5leGVjdXRpb25UaW1lb3V0LnByb21pc2UsdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5wcm9taXNlXSksdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpO2Vsc2V7aWYoZTw9MCljb250aW51ZTthd2FpdCB0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnByb21pc2V9fXRoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bnVsbH1zdG9wKCl7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJih0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5leGVjdXRpb25UaW1lb3V0JiZ0aGlzLmV4ZWN1dGlvblRpbWVvdXQuY2FuY2VsKCksdGhpcy53YWtlQ3ljbGUoKSk7Zm9yKGxldCBlIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSllLnN0b3AoKX19fSk7dmFyIHJ1LHJnZSx5ZGEsd2RhLGFnZT11KCgpPT57dHUoKTtydT17eWVhcnM6aSgodD0xKT0+dCozMTU0ZTcsInllYXJzIiksbW9udGhzOmkoKHQ9MSk9PnQqMjYyOGU2LCJtb250aHMiKSx3ZWVrczppKCh0PTEpPT50KjYwNDhlNSwid2Vla3MiKSxkYXlzOmkoKHQ9MSk9PnQqODY0ZTUsImRheXMiKSxob3VyczppKCh0PTEpPT50KjM2ZTUsImhvdXJzIiksbWludXRlczppKCh0PTEpPT50KjZlNCwibWludXRlcyIpLHNlY29uZHM6aSgodD0xKT0+dCoxZTMsInNlY29uZHMiKX0scmdlPWkodD0+e2xldCBlPTAscj1pKGE9PntlPWUrYX0sImFkZE1pbGxpU2Vjb25kcyIpO3JldHVybiB0LnllYXJzJiZyKHJ1LnllYXJzKHQueWVhcnMpKSx0Lm1vbnRocyYmcihydS5tb250aHModC5tb250aHMpKSx0LndlZWtzJiZyKHJ1LndlZWtzKHQud2Vla3MpKSx0LmRheXMmJnIocnUuZGF5cyh0LmRheXMpKSx0LmhvdXJzJiZyKHJ1LmhvdXJzKHQuaG91cnMpKSx0Lm1pbnV0ZXMmJnIocnUubWludXRlcyh0Lm1pbnV0ZXMpKSx0LnNlY29uZHMmJnIocnUuc2Vjb25kcyh0LnNlY29uZHMpKSxlfSwiZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzIikseWRhPWkodD0+b1ModCksImdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZyIpLHdkYT1pKHQ9Pm5TLmZvcm1hdERpc3RhbmNlVG9Ob3cobmV3IERhdGUodCkpLCJnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lIil9KTt2YXIgaWdlLHhfdD11KCgpPT57dHUoKTthZ2UoKTtpZ2U9Y2xhc3MgdCBleHRlbmRzIERhdGV7c3RhdGlje2kodGhpcywiRXh0ZW5kZWREYXRlIil9c3RhdGljIGZyb21NaWxsaXMoZSl7cmV0dXJuIG5ldyB0KGUpfXN0YXRpYyBmcm9tRGF0ZShlKXtyZXR1cm4gbmV3IHQoZS5nZXRUaW1lKCkpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlKGUpe2xldCByPS8oLiopXC4oLiopXC4oLiopLy5leGVjKGUpLHM9bmV3IERhdGUocGFyc2VGbG9hdChyWzNdKSxwYXJzZUZsb2F0KHJbMl0pLTEscGFyc2VGbG9hdChyWzFdKSkuZ2V0VGltZSgpO3JldHVybiBuZXcgdChzKX1zdGF0aWMgZnJvbUh5cGhlZERhdGUoZSl7bGV0IHI9bmV3IERhdGUoZSkuZ2V0VGltZSgpO3JldHVybiBuZXcgdChyKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZUFuZFRpbWUoZSxyPSIxMjowMDowMCIsYT0iRXVyb3BlL0JlcmxpbiIpe2xldCBzPS8oLiopXC4oLiopXC4oLiopLy5leGVjKGUpLG49aShkPT5gMCR7ZH1gLnNsaWNlKC0yKSwic2xpY2VEYXRlIiksbz1gJHtzWzNdfS0ke24oc1syXSl9LSR7bihzWzFdKX1UJHtyfWAsYz1laC5kZWZhdWx0KG8pLnRvRGF0ZSgpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHQoYyl9Y29uc3RydWN0b3IoZT1EYXRlLm5vdygpKXtzdXBlcihlKX1leHBvcnRUb0V1cm9wZWFuRGF0ZSgpe2xldCBlPXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke2UuZGF5U3RyaW5nfS4ke2UubW9udGhTdHJpbmd9LiR7ZS55ZWFyU3RyaW5nfWB9ZXhwb3J0VG9IeXBoZWRTb3J0YWJsZURhdGUoKXtsZXQgZT10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHtlLnllYXJTdHJpbmd9LSR7ZS5tb250aFN0cmluZ30tJHtlLmRheVN0cmluZ31gfWV4cG9ydFRvVW5pdHMoKXtsZXQgZT1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0scj1bIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5IiwiU3VuZGF5Il07cmV0dXJue3llYXI6dGhpcy5nZXRGdWxsWWVhcigpLHllYXJTdHJpbmc6YCR7dGhpcy5nZXRGdWxsWWVhcigpfWAsbW9udGg6dGhpcy5nZXRNb250aCgpKzEsbW9udGhTdHJpbmc6KCIwIisodGhpcy5nZXRNb250aCgpKzEpKS5zbGljZSgtMiksbW9udGhOYW1lOmVbdGhpcy5nZXRNb250aCgpXSxkYXk6dGhpcy5nZXREYXRlKCksZGF5U3RyaW5nOigiMCIrdGhpcy5nZXREYXRlKCkpLnNsaWNlKC0yKSxkYXlPZlRoZVdlZWs6dGhpcy5nZXREYXkoKSxkYXlPZlRoZVdlZWtOYW1lOnJbdGhpcy5nZXREYXkoKV19fWZvcm1hdChlKXtyZXR1cm4gZWguZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuZm9ybWF0KGUpfWlzVG9kYXkoKXtyZXR1cm4gZWguZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuaXNUb2RheSgpfWxlc3NUaW1lUGFzc2VkVG9Ob3coZSl7bGV0IHI9cmdlKGUpO3JldHVybiBEYXRlLm5vdygpLXRoaXMuZ2V0VGltZSgpPHJ9bW9yZVRpbWVQYXNzZWRUb05vdyhlKXtyZXR1cm4hdGhpcy5sZXNzVGltZVBhc3NlZFRvTm93KGUpfX19KTt2YXIgc2dlLHZfdD11KCgpPT57c2dlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkhydE1lYXN1cmVtZW50Iil9Y29uc3RydWN0b3IoKXt0aGlzLm5hbm9TZWNvbmRzPW51bGwsdGhpcy5taWxsaVNlY29uZHM9bnVsbCx0aGlzLl9taWxsaVN0YXJ0PW51bGwsdGhpcy5fbWlsbGlEaWZmPW51bGwsdGhpcy5fc3RhcnRlZD0hMX1zdGFydCgpe3RoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fbWlsbGlTdGFydD1EYXRlLm5vdygpfXN0b3AoKXtpZih0aGlzLl9zdGFydGVkPT09ITEpe2NvbnNvbGUubG9nKCJIYXNuJ3Qgc3RhcnRlZCB5ZXQiKTtyZXR1cm59cmV0dXJuIHRoaXMuX21pbGxpRGlmZj1EYXRlLm5vdygpLXRoaXMuX21pbGxpU3RhcnQsdGhpcy5uYW5vU2Vjb25kcz10aGlzLl9taWxsaURpZmYqMWUzLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuX21pbGxpRGlmZix0aGlzfXJlc2V0KCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9fX0pO3ZhciBuZ2UseV90PXUoKCk9Pnt0dSgpO25nZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbnRlcnZhbCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbCx0aGlzLmludGVydmFsSm9icz1bXSx0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzPWV9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7bGV0IGU9bmV3IERhdGU7dGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPWUsaShhc3luYygpPT57Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPT09ZTspYXdhaXQgS3QuZGVsYXlGb3IodGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcyksdGhpcy5leGVjdXRlSW50ZXJ2YWxKb2JzKCl9LCJydW5JbnRlcnZhbCIpKCl9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbH1hZGRJbnRlcnZhbEpvYihlKXt0aGlzLmludGVydmFsSm9icy5wdXNoKGUpfWV4ZWN1dGVJbnRlcnZhbEpvYnMoKXtmb3IobGV0IGUgb2YgdGhpcy5pbnRlcnZhbEpvYnMpZSgpfX19KTt2YXIgQ2Isb2dlPXUoKCk9Pnt0dSgpO0NiPWNsYXNzIHR7c3RhdGlje2kodGhpcywiVGltZVN0YW1wIil9c3RhdGljIGZyb21NaWxsaVNlY29uZHMoZSl7cmV0dXJuIG5ldyB0KGUpfXN0YXRpYyBmcm9tVGltZVN0YW1wKGUpe2xldCByPW5ldyB0O3JldHVybiByLmNoYW5nZT1yLm1pbGxpU2Vjb25kcy1lLm1pbGxpU2Vjb25kcyxyfWNvbnN0cnVjdG9yKGUpe3RoaXMuY2hhbmdlPW51bGwsZT90eXBlb2YgZT09Im51bWJlciImJih0aGlzLmRhdGU9bmV3IERhdGUoZSkpOnRoaXMuZGF0ZT1uZXcgRGF0ZSx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLmRhdGUuZ2V0VGltZSgpLHRoaXMuZXBvY2h0aW1lPU1hdGguZmxvb3IodGhpcy5taWxsaVNlY29uZHMvMWUzKX1pc09sZGVyVGhhbk90aGVyVGltZVN0YW1wKGUscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHM8ZS5taWxsaVNlY29uZHMtcn1pc09sZGVyVGhhbihlLHI9MCl7cmV0dXJuIHRoaXMubWlsbGlTZWNvbmRzK3I8ZS5taWxsaVNlY29uZHN9aXNZb3VuZ2VyVGhhbk90aGVyVGltZVN0YW1wKGUscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHM+ZS5taWxsaVNlY29uZHMrcn1pc1lvdW5nZXJUaGFuTWlsbGlTZWNvbmRzKGUpe2xldCBhPW5ldyB0KCkuZXBvY2h0aW1lLWUscz1uZXcgdChhKTtyZXR1cm4gdGhpcy5pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAocyl9fX0pO3ZhciBsZ2Usd190PXUoKCk9Pnt0dSgpO29nZSgpO2xnZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaW1lciIpfWdldCB0aW1lTGVmdCgpe3JldHVybiB0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcy10aGlzLnBhdXNlZEF0LmNoYW5nZX1jb25zdHJ1Y3RvcihlKXt0aGlzLnN0YXRlPSJpbml0aWF0ZWQiLHRoaXMuY29tcGxldGVkRGVmZXJyZWQ9eHQuZGVmZXIoKSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcz1lLHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZXJyZWQucHJvbWlzZX1zdGFydCgpe2lmKCF0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lSW5NaWxsaXNlY29uZHMpLHRoaXMuc3RhcnRlZEF0PW5ldyBDYjtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgcmVzdW1lIGluc3RlYWQiKX1wYXVzZSgpe3RoaXMuc3RhcnRlZEF0JiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXQpLHRoaXMuY3VycmVudFRpbWVvdXQ9bnVsbCx0aGlzLnBhdXNlZEF0PUNiLmZyb21UaW1lU3RhbXAodGhpcy5zdGFydGVkQXQpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lTGVmdCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBOT1QgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSAuc3RhcnQoKSBpbnN0ZWFkIil9cmVzZXQoKXt0aGlzLnBhdXNlKCksdGhpcy5zdGFydGVkQXQ9bnVsbCx0aGlzLnBhdXNlZEF0PW51bGx9fX0pO3ZhciB0aD17fTtWZSh0aCx7Q3JvbkpvYjooKT0+bFMsQ3Jvbk1hbmFnZXI6KCk9PnRnZSxFeHRlbmRlZERhdGU6KCk9PmlnZSxIcnRNZWFzdXJlbWVudDooKT0+c2dlLEludGVydmFsOigpPT5uZ2UsVGltZVN0YW1wOigpPT5DYixUaW1lcjooKT0+bGdlLGdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZUFnb1RpbWU6KCk9PndkYSxnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVTdHJpbmc6KCk9PnlkYSxnZXRNaWxsaVNlY29uZHNGcm9tVW5pdHM6KCk9PnJnZSx1bml0czooKT0+cnV9KTt2YXIga190PXUoKCk9PntlZ2UoKTtKOWUoKTt4X3QoKTt2X3QoKTt5X3QoKTt3X3QoKTtvZ2UoKTthZ2UoKX0pO3ZhciBNX3Q9TnQoKGkkaSxTX3QpPT57InVzZSBzdHJpY3QiO1NfdC5leHBvcnRzPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN5bWJvbFRyZWVOb2RlIil9Y29uc3RydWN0b3IoKXt0aGlzLnBhcmVudD1udWxsLHRoaXMucHJldmlvdXNTaWJsaW5nPW51bGwsdGhpcy5uZXh0U2libGluZz1udWxsLHRoaXMuZmlyc3RDaGlsZD1udWxsLHRoaXMubGFzdENoaWxkPW51bGwsdGhpcy5jaGlsZHJlblZlcnNpb249MCx0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvPW51bGwsdGhpcy5jYWNoZWRJbmRleD0tMSx0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1OYU59Z2V0IGlzQXR0YWNoZWQoKXtyZXR1cm4hISh0aGlzLnBhcmVudHx8dGhpcy5wcmV2aW91c1NpYmxpbmd8fHRoaXMubmV4dFNpYmxpbmcpfWdldCBoYXNDaGlsZHJlbigpe3JldHVybiEhdGhpcy5maXJzdENoaWxkfWNoaWxkcmVuQ2hhbmdlZCgpe3RoaXMuY2hpbGRyZW5WZXJzaW9uPXRoaXMuY2hpbGRyZW5WZXJzaW9uKzEmNDI5NDk2NzI5NSx0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvPW51bGx9Z2V0Q2FjaGVkSW5kZXgoZSl7cmV0dXJuIHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uIT09ZS5jaGlsZHJlblZlcnNpb24/KHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTiwtMSk6dGhpcy5jYWNoZWRJbmRleH1zZXRDYWNoZWRJbmRleChlLHIpe3RoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPWUuY2hpbGRyZW5WZXJzaW9uLHRoaXMuY2FjaGVkSW5kZXg9cn19fSk7dmFyIHpfdD1OdCgobiRpLENfdCk9PnsidXNlIHN0cmljdCI7Q190LmV4cG9ydHM9T2JqZWN0LmZyZWV6ZSh7RElTQ09OTkVDVEVEOjEsUFJFQ0VESU5HOjIsRk9MTE9XSU5HOjQsQ09OVEFJTlM6OCxDT05UQUlORURfQlk6MTZ9KX0pO3ZhciAkX3Q9TnQoKG8kaSxEX3QpPT57InVzZSBzdHJpY3QiO3ZhciBfX3Q9U3ltYm9sKCksVF90PVN5bWJvbCgpLGF1PVN5bWJvbCgpLExfdD1TeW1ib2woKSxTMj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUcmVlSXRlcmF0b3IiKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXt0aGlzW19fdF09ZSx0aGlzW1RfdF09cix0aGlzW2F1XT1hLHRoaXNbTF90XT1zfW5leHQoKXtsZXQgZT10aGlzW19fdF0scj10aGlzW0xfdF0sYT10aGlzW1RfdF07aWYoIXRoaXNbYXVdKXJldHVybntkb25lOiEwLHZhbHVlOmF9O2xldCBzPXRoaXNbYXVdO3JldHVybiByPT09MT90aGlzW2F1XT1lLl9ub2RlKHMpLnByZXZpb3VzU2libGluZzpyPT09Mj90aGlzW2F1XT1lLl9ub2RlKHMpLm5leHRTaWJsaW5nOnI9PT0zP3RoaXNbYXVdPWUuX25vZGUocykucGFyZW50OnI9PT00P3RoaXNbYXVdPWUucHJlY2VkaW5nKHMse3Jvb3Q6YX0pOnRoaXNbYXVdPWUuZm9sbG93aW5nKHMse3Jvb3Q6YX0pLHtkb25lOiExLHZhbHVlOnN9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFMyLnByb3RvdHlwZSxTeW1ib2wuaXRlcmF0b3Ise3ZhbHVlOmkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sInZhbHVlIiksd3JpdGFibGU6ITF9KSxTMi5QUkVWPTEsUzIuTkVYVD0yLFMyLlBBUkVOVD0zLFMyLlBSRUNFRElORz00LFMyLkZPTExPV0lORz01LE9iamVjdC5mcmVlemUoUzIpLE9iamVjdC5mcmVlemUoUzIucHJvdG90eXBlKSxEX3QuZXhwb3J0cz1TMn0pO3ZhciBFX3Q9TnQoKGMkaSxBX3QpPT57InVzZSBzdHJpY3QiO3ZhciBTZGE9TV90KCksaXU9el90KCksemw9JF90KCk7ZnVuY3Rpb24gY2dlKCl7cmV0dXJuITB9aShjZ2UsInJldHVyblRydWUiKTtmdW5jdGlvbiB6Yih0LGUpe3JldHVybiB0W3QubGVuZ3RoLTEtZV19aSh6YiwicmV2ZXJzZUFycmF5SW5kZXgiKTt2YXIgSW5lPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN5bWJvbFRyZWUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnN5bWJvbD1TeW1ib2woZXx8IlN5bWJvbFRyZWUgZGF0YSIpfWluaXRpYWxpemUoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSksZX1fbm9kZShlKXtpZighZSlyZXR1cm4gbnVsbDtsZXQgcj1lW3RoaXMuc3ltYm9sXTtyZXR1cm4gcnx8KGVbdGhpcy5zeW1ib2xdPW5ldyBTZGEpfWhhc0NoaWxkcmVuKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmhhc0NoaWxkcmVufWZpcnN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkuZmlyc3RDaGlsZH1sYXN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkubGFzdENoaWxkfXByZXZpb3VzU2libGluZyhlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmd9bmV4dFNpYmxpbmcoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkubmV4dFNpYmxpbmd9cGFyZW50KGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLnBhcmVudH1sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKXtsZXQgcixhPWU7Zm9yKDtyPXRoaXMuX25vZGUoYSkubGFzdENoaWxkOylhPXI7cmV0dXJuIGF9cHJlY2VkaW5nKGUscil7bGV0IGE9ciYmci5yb290O2lmKGU9PT1hKXJldHVybiBudWxsO2xldCBzPXRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nO3JldHVybiBzP3RoaXMubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQocyk6dGhpcy5fbm9kZShlKS5wYXJlbnR9Zm9sbG93aW5nKGUscil7bGV0IGE9ciYmci5yb290LG49IShyJiZyLnNraXBDaGlsZHJlbikmJnRoaXMuX25vZGUoZSkuZmlyc3RDaGlsZDtpZihuKXJldHVybiBuO2xldCBvPWU7ZG97aWYobz09PWEpcmV0dXJuIG51bGw7bGV0IGw9dGhpcy5fbm9kZShvKS5uZXh0U2libGluZztpZihsKXJldHVybiBsO289dGhpcy5fbm9kZShvKS5wYXJlbnR9d2hpbGUobyk7cmV0dXJuIG51bGx9Y2hpbGRyZW5Ub0FycmF5KGUscil7bGV0IGE9ciYmci5hcnJheXx8W10scz1yJiZyLmZpbHRlcnx8Y2dlLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10aGlzLl9ub2RlKGUpLGw9by5maXJzdENoaWxkLGM9MDtmb3IoO2w7KXtsZXQgZD10aGlzLl9ub2RlKGwpO2Quc2V0Q2FjaGVkSW5kZXgobyxjKSxzLmNhbGwobixsKSYmYS5wdXNoKGwpLGw9ZC5uZXh0U2libGluZywrK2N9cmV0dXJuIGF9YW5jZXN0b3JzVG9BcnJheShlLHIpe2xldCBhPXImJnIuYXJyYXl8fFtdLHM9ciYmci5maWx0ZXJ8fGNnZSxuPXImJnIudGhpc0FyZ3x8dm9pZCAwLG89ZTtmb3IoO287KXMuY2FsbChuLG8pJiZhLnB1c2gobyksbz10aGlzLl9ub2RlKG8pLnBhcmVudDtyZXR1cm4gYX10cmVlVG9BcnJheShlLHIpe2xldCBhPXImJnIuYXJyYXl8fFtdLHM9ciYmci5maWx0ZXJ8fGNnZSxuPXImJnIudGhpc0FyZ3x8dm9pZCAwLG89ZTtmb3IoO287KXMuY2FsbChuLG8pJiZhLnB1c2gobyksbz10aGlzLmZvbGxvd2luZyhvLHtyb290OmV9KTtyZXR1cm4gYX1jaGlsZHJlbkl0ZXJhdG9yKGUscil7bGV0IGE9ciYmci5yZXZlcnNlLHM9dGhpcy5fbm9kZShlKTtyZXR1cm4gbmV3IHpsKHRoaXMsZSxhP3MubGFzdENoaWxkOnMuZmlyc3RDaGlsZCxhP3psLlBSRVY6emwuTkVYVCl9cHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgemwodGhpcyxlLHRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nLHpsLlBSRVYpfW5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgemwodGhpcyxlLHRoaXMuX25vZGUoZSkubmV4dFNpYmxpbmcsemwuTkVYVCl9YW5jZXN0b3JzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyB6bCh0aGlzLGUsZSx6bC5QQVJFTlQpfXRyZWVJdGVyYXRvcihlLHIpe2xldCBhPXImJnIucmV2ZXJzZTtyZXR1cm4gbmV3IHpsKHRoaXMsZSxhP3RoaXMubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSk6ZSxhP3psLlBSRUNFRElORzp6bC5GT0xMT1dJTkcpfWluZGV4KGUpe2xldCByPXRoaXMuX25vZGUoZSksYT10aGlzLl9ub2RlKHIucGFyZW50KTtpZighYSlyZXR1cm4tMTtsZXQgcz1yLmdldENhY2hlZEluZGV4KGEpO2lmKHM+PTApcmV0dXJuIHM7cz0wO2xldCBuPWEuZmlyc3RDaGlsZDtpZihhLmNoaWxkSW5kZXhDYWNoZWRVcFRvKXtsZXQgbz10aGlzLl9ub2RlKGEuY2hpbGRJbmRleENhY2hlZFVwVG8pO249by5uZXh0U2libGluZyxzPW8uZ2V0Q2FjaGVkSW5kZXgoYSkrMX1mb3IoO247KXtsZXQgbz10aGlzLl9ub2RlKG4pO2lmKG8uc2V0Q2FjaGVkSW5kZXgoYSxzKSxuPT09ZSlicmVhazsrK3Msbj1vLm5leHRTaWJsaW5nfXJldHVybiBhLmNoaWxkSW5kZXhDYWNoZWRVcFRvPWUsc31jaGlsZHJlbkNvdW50KGUpe2xldCByPXRoaXMuX25vZGUoZSk7cmV0dXJuIHIubGFzdENoaWxkP3RoaXMuaW5kZXgoci5sYXN0Q2hpbGQpKzE6MH1jb21wYXJlVHJlZVBvc2l0aW9uKGUscil7aWYoZT09PXIpcmV0dXJuIDA7bGV0IGE9W107e2xldCBmPWU7Zm9yKDtmOyl7aWYoZj09PXIpcmV0dXJuIGl1LkNPTlRBSU5TfGl1LlBSRUNFRElORzthLnB1c2goZiksZj10aGlzLnBhcmVudChmKX19bGV0IHM9W107e2xldCBmPXI7Zm9yKDtmOyl7aWYoZj09PWUpcmV0dXJuIGl1LkNPTlRBSU5FRF9CWXxpdS5GT0xMT1dJTkc7cy5wdXNoKGYpLGY9dGhpcy5wYXJlbnQoZil9fWxldCBuPXpiKGEsMCk7aWYoIW58fG4hPT16YihzLDApKXJldHVybiBpdS5ESVNDT05ORUNURUQ7bGV0IG89MCxsPU1hdGgubWluKGEubGVuZ3RoLHMubGVuZ3RoKTtmb3IobGV0IGY9MDtmPGw7KytmKXtsZXQgcD16YihhLGYpLGg9emIocyxmKTtpZihwIT09aClicmVhaztvPWZ9bGV0IGM9dGhpcy5pbmRleCh6YihhLG8rMSkpO3JldHVybiB0aGlzLmluZGV4KHpiKHMsbysxKSk8Yz9pdS5QUkVDRURJTkc6aXUuRk9MTE9XSU5HfXJlbW92ZShlKXtsZXQgcj10aGlzLl9ub2RlKGUpLGE9dGhpcy5fbm9kZShyLnBhcmVudCkscz10aGlzLl9ub2RlKHIucHJldmlvdXNTaWJsaW5nKSxuPXRoaXMuX25vZGUoci5uZXh0U2libGluZyk7cmV0dXJuIGEmJihhLmZpcnN0Q2hpbGQ9PT1lJiYoYS5maXJzdENoaWxkPXIubmV4dFNpYmxpbmcpLGEubGFzdENoaWxkPT09ZSYmKGEubGFzdENoaWxkPXIucHJldmlvdXNTaWJsaW5nKSkscyYmKHMubmV4dFNpYmxpbmc9ci5uZXh0U2libGluZyksbiYmKG4ucHJldmlvdXNTaWJsaW5nPXIucHJldmlvdXNTaWJsaW5nKSxyLnBhcmVudD1udWxsLHIucHJldmlvdXNTaWJsaW5nPW51bGwsci5uZXh0U2libGluZz1udWxsLHIuY2FjaGVkSW5kZXg9LTEsci5jYWNoZWRJbmRleFZlcnNpb249TmFOLGEmJmEuY2hpbGRyZW5DaGFuZ2VkKCksZX1pbnNlcnRCZWZvcmUoZSxyKXtsZXQgYT10aGlzLl9ub2RlKGUpLHM9dGhpcy5fbm9kZShhLnByZXZpb3VzU2libGluZyksbj10aGlzLl9ub2RlKHIpLG89dGhpcy5fbm9kZShhLnBhcmVudCk7aWYobi5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIG4ucGFyZW50PWEucGFyZW50LG4ucHJldmlvdXNTaWJsaW5nPWEucHJldmlvdXNTaWJsaW5nLG4ubmV4dFNpYmxpbmc9ZSxhLnByZXZpb3VzU2libGluZz1yLHMmJihzLm5leHRTaWJsaW5nPXIpLG8mJm8uZmlyc3RDaGlsZD09PWUmJihvLmZpcnN0Q2hpbGQ9ciksbyYmby5jaGlsZHJlbkNoYW5nZWQoKSxyfWluc2VydEFmdGVyKGUscil7bGV0IGE9dGhpcy5fbm9kZShlKSxzPXRoaXMuX25vZGUoYS5uZXh0U2libGluZyksbj10aGlzLl9ub2RlKHIpLG89dGhpcy5fbm9kZShhLnBhcmVudCk7aWYobi5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIG4ucGFyZW50PWEucGFyZW50LG4ucHJldmlvdXNTaWJsaW5nPWUsbi5uZXh0U2libGluZz1hLm5leHRTaWJsaW5nLGEubmV4dFNpYmxpbmc9cixzJiYocy5wcmV2aW91c1NpYmxpbmc9ciksbyYmby5sYXN0Q2hpbGQ9PT1lJiYoby5sYXN0Q2hpbGQ9ciksbyYmby5jaGlsZHJlbkNoYW5nZWQoKSxyfXByZXBlbmRDaGlsZChlLHIpe2xldCBhPXRoaXMuX25vZGUoZSkscz10aGlzLl9ub2RlKHIpO2lmKHMuaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBhLmhhc0NoaWxkcmVuP3RoaXMuaW5zZXJ0QmVmb3JlKGEuZmlyc3RDaGlsZCxyKToocy5wYXJlbnQ9ZSxhLmZpcnN0Q2hpbGQ9cixhLmxhc3RDaGlsZD1yLGEuY2hpbGRyZW5DaGFuZ2VkKCkpLHJ9YXBwZW5kQ2hpbGQoZSxyKXtsZXQgYT10aGlzLl9ub2RlKGUpLHM9dGhpcy5fbm9kZShyKTtpZihzLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gYS5oYXNDaGlsZHJlbj90aGlzLmluc2VydEFmdGVyKGEubGFzdENoaWxkLHIpOihzLnBhcmVudD1lLGEuZmlyc3RDaGlsZD1yLGEubGFzdENoaWxkPXIsYS5jaGlsZHJlbkNoYW5nZWQoKSkscn19O0FfdC5leHBvcnRzPUluZSxJbmUuVHJlZVBvc2l0aW9uPWl1fSk7dmFyIFBuZSxfbD11KCgpPT57TmQoKTt5eXQoKTtHbigpO1pjKCk7a190KCk7UG5lPUdhKEVfdCgpLDEpfSk7dmFyIGRnZSxJX3Q9dSgoKT0+e19sKCk7ZGdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkFzeW5jRXhlY3V0aW9uU3RhY2siKX1leGVjdXRpb25TbG90cz1bXTtpc1Byb2Nlc3Npbmc9ITE7bm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9MS8wO25vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudD0wO25vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZT1bXTthc3luYyBnZXRFeGNsdXNpdmVFeGVjdXRpb25TbG90KGUscil7bGV0IGE9eHQuZGVmZXIoKSxzPXtmdW5jVG9FeGVjdXRlOmUsZXhlY3V0aW9uRGVmZXJyZWQ6YSx0aW1lb3V0OnIsbW9kZToiZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChzKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGEucHJvbWlzZX1hc3luYyBnZXROb25FeGNsdXNpdmVFeGVjdXRpb25TbG90KGUscil7bGV0IGE9eHQuZGVmZXIoKSxzPXtmdW5jVG9FeGVjdXRlOmUsZXhlY3V0aW9uRGVmZXJyZWQ6YSx0aW1lb3V0OnIsbW9kZToibm9uZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChzKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGEucHJvbWlzZX1zZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeShlKXtpZighTnVtYmVyLmlzRmluaXRlKGUpfHxlPDEpdGhyb3cgbmV3IEVycm9yKCJub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSBtdXN0IGJlIGEgZmluaXRlIG51bWJlciA+PSAxIik7dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT1lfWdldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3l9Z2V0QWN0aXZlTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnR9Z2V0UGVuZGluZ05vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLmxlbmd0aH1hc3luYyBwcm9jZXNzRXhlY3V0aW9uU2xvdHMoKXtpZighdGhpcy5pc1Byb2Nlc3Npbmcpe2Zvcih0aGlzLmlzUHJvY2Vzc2luZz0hMDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wOyl7bGV0IGU9dGhpcy5leGVjdXRpb25TbG90c1swXTtpZihlLm1vZGU9PT0iZXhjbHVzaXZlIilhd2FpdCB0aGlzLmV4ZWN1dGVFeGNsdXNpdmVTbG90KGUpLHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKTtlbHNle2xldCByPVtdO2Zvcig7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MCYmdGhpcy5leGVjdXRpb25TbG90c1swXS5tb2RlPT09Im5vbmV4Y2x1c2l2ZSI7KXIucHVzaCh0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCkpO2F3YWl0IHRoaXMuZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKHIpfX10aGlzLmlzUHJvY2Vzc2luZz0hMX19YXN5bmMgZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QoZSl7dHJ5e2lmKGUudGltZW91dCl7bGV0IHI9bmV3IEt0LlRpbWVvdXQoZS50aW1lb3V0KTt0cnl7bGV0IGE9YXdhaXQgUHJvbWlzZS5yYWNlKFtlLmZ1bmNUb0V4ZWN1dGUoKSxyLnByb21pc2UudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO3IuY2FuY2VsKCksZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKGEpfWNhdGNoKGEpe3Rocm93IHIuY2FuY2VsKCksYX19ZWxzZXtsZXQgcj1hd2FpdCBlLmZ1bmNUb0V4ZWN1dGUoKTtlLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe2UuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfX1hc3luYyBleGVjdXRlTm9uRXhjbHVzaXZlU2xvdHMoZSl7bGV0IHI9ZS5tYXAoYXN5bmMgYT0+e2F3YWl0IHRoaXMud2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKTt0cnl7aWYoYS50aW1lb3V0KXtsZXQgcz1uZXcgS3QuVGltZW91dChhLnRpbWVvdXQpO3RyeXtsZXQgbj1hd2FpdCBQcm9taXNlLnJhY2UoW2EuZnVuY1RvRXhlY3V0ZSgpLHMucHJvbWlzZS50aGVuKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaW1lb3V0IHJlYWNoZWQiKX0pXSk7cy5jYW5jZWwoKSxhLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUobil9Y2F0Y2gobil7dGhyb3cgcy5jYW5jZWwoKSxufX1lbHNle2xldCBzPWF3YWl0IGEuZnVuY1RvRXhlY3V0ZSgpO2EuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShzKX19Y2F0Y2gocyl7YS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3Qocyl9ZmluYWxseXt0aGlzLnJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl9fSk7YXdhaXQgUHJvbWlzZS5hbGwocil9d2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ8dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT8odGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxQcm9taXNlLnJlc29sdmUoKSk6bmV3IFByb21pc2UoZT0+e3RoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnB1c2goKCk9Pnt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLGUoKX0pfSl9cmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKXt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudC0tO2xldCBlPXRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnNoaWZ0KCk7ZSYmZSgpfX19KTt2YXIgdWdlLFBfdD11KCgpPT57X2woKTt1Z2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFja3ByZXNzdXJlZEFycmF5Iil9ZGF0YTtoaWdoV2F0ZXJNYXJrO2hhc1NwYWNlPW5ldyBvYS5yeGpzLlN1YmplY3Q7aXRlbXNBdmFpbGFibGU9bmV3IG9hLnJ4anMuU3ViamVjdDtpc0Rlc3Ryb3llZD0hMTtjb25zdHJ1Y3RvcihlPTE2KXt0aGlzLmRhdGE9W10sdGhpcy5oaWdoV2F0ZXJNYXJrPWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RofXB1c2goZSl7dGhpcy5kYXRhLnB1c2goZSksdGhpcy5pdGVtc0F2YWlsYWJsZS5uZXh0KCJpdGVtc0F2YWlsYWJsZSIpO2xldCByPXRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpO3JldHVybiByJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIikscn1wdXNoTWFueShlKXtmb3IobGV0IHIgb2YgZSl0aGlzLnB1c2gocik7cmV0dXJuIHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfXNoaWZ0KCl7bGV0IGU9dGhpcy5kYXRhLnNoaWZ0KCk7cmV0dXJuIHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIiksZX1wZWVrKCl7cmV0dXJuIHRoaXMuZGF0YVswXX1jaGVja1NwYWNlQXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg8dGhpcy5oaWdoV2F0ZXJNYXJrfWNoZWNrSGFzSXRlbXMoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aD4wfXdhaXRGb3JTcGFjZSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57aWYodGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCl8fHRoaXMuaXNEZXN0cm95ZWQpZSgpO2Vsc2V7bGV0IHI9dGhpcy5oYXNTcGFjZS5zdWJzY3JpYmUoe25leHQ6aSgoKT0+e3IudW5zdWJzY3JpYmUoKSxlKCl9LCJuZXh0IiksY29tcGxldGU6aSgoKT0+e2UoKX0sImNvbXBsZXRlIil9KX19KX13YWl0Rm9ySXRlbXMoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2lmKHRoaXMuZGF0YS5sZW5ndGg+MHx8dGhpcy5pc0Rlc3Ryb3llZCllKCk7ZWxzZXtsZXQgcj10aGlzLml0ZW1zQXZhaWxhYmxlLnN1YnNjcmliZSh7bmV4dDppKCgpPT57ci51bnN1YnNjcmliZSgpLGUoKX0sIm5leHQiKSxjb21wbGV0ZTppKCgpPT57ZSgpfSwiY29tcGxldGUiKX0pfX0pfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuZGF0YVtTeW1ib2wuaXRlcmF0b3JdKCl9ZGVzdHJveSgpe3RoaXMuaXNEZXN0cm95ZWQ9ITAsdGhpcy5oYXNTcGFjZS5jb21wbGV0ZSgpLHRoaXMuaXRlbXNBdmFpbGFibGUuY29tcGxldGUoKX19fSk7dmFyIHJoLE5uZT11KCgpPT57X2woKTtyaD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkZhc3RNYXAiKX1tYXBPYmplY3Q9bmV3IE1hcDtpc1VuaXF1ZUtleShlKXtyZXR1cm4hdGhpcy5tYXBPYmplY3QuaGFzKGUpfWhhcyhlKXtyZXR1cm4gdGhpcy5tYXBPYmplY3QuaGFzKGUpfWdldCBzaXplKCl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LnNpemV9YWRkVG9NYXAoZSxyLGEpe3JldHVybiB0aGlzLmlzVW5pcXVlS2V5KGUpfHxhJiZhLmZvcmNlPyh0aGlzLm1hcE9iamVjdC5zZXQoZSxyKSwhMCk6ITF9Z2V0QnlLZXkoZSl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmdldChlKX1yZW1vdmVGcm9tTWFwKGUpe2xldCByPXRoaXMubWFwT2JqZWN0LmdldChlKTtyZXR1cm4gdGhpcy5tYXBPYmplY3QuZGVsZXRlKGUpLHJ9Z2V0S2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwT2JqZWN0LmtleXMoKSl9dmFsdWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5tYXBPYmplY3QudmFsdWVzKCkpfWVudHJpZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLm1hcE9iamVjdC5lbnRyaWVzKCkpfWNsZWFuKCl7dGhpcy5tYXBPYmplY3QuY2xlYXIoKX1jb25jYXQoZSl7bGV0IHI9bmV3IHQ7Zm9yKGxldCBhIG9mIHRoaXMuZ2V0S2V5cygpKXIuYWRkVG9NYXAoYSx0aGlzLmdldEJ5S2V5KGEpKTtmb3IobGV0IGEgb2YgZS5nZXRLZXlzKCkpci5hZGRUb01hcChhLGUuZ2V0QnlLZXkoYSkse2ZvcmNlOiEwfSk7cmV0dXJuIHJ9YWRkQWxsRnJvbU90aGVyKGUpe2ZvcihsZXQgciBvZiBlLmdldEtleXMoKSl0aGlzLmFkZFRvTWFwKHIsZS5nZXRCeUtleShyKSx7Zm9yY2U6ITB9KX1hc3luYyBmaW5kKGUpe2ZvcihsZXQgciBvZiB0aGlzLmdldEtleXMoKSl7bGV0IGE9dGhpcy5nZXRCeUtleShyKTtpZihhd2FpdCBlKGEpKXJldHVybiBhfX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLm1hcE9iamVjdC5lbnRyaWVzKCl9fX0pO3ZhciBOX3QsVmQsY1M9dSgoKT0+e19sKCk7Tm5lKCk7Tl90PWkoKHQ9InVuaSIpPT5gJHt0fXh4eHh4eHh4eHh4YC5yZXBsYWNlKC9beHldL2csZT0+e2xldCByPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9yOnImM3w4KS50b1N0cmluZygxNil9KSwidW5pIiksVmQ9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJPYmplY3RNYXAiKX1mYXN0TWFwPW5ldyByaDtyZXZlcnNlTWFwPW5ldyBNYXA7ZXZlbnRTdWJqZWN0PW5ldyBvYS5yeGpzLlN1YmplY3Q7Y29uc3RydWN0b3IoKXt9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmZhc3RNYXAuc2l6ZX1hZGRNYXBwZWRVbmlxdWUoZSxyKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAoZSxyKSx0aGlzLnJldmVyc2VNYXAuc2V0KHIsZSl9Z2V0TWFwcGVkVW5pcXVlKGUpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoZSl9cmVtb3ZlTWFwcGVkVW5pcXVlKGUpe2xldCByPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGUpO3JldHVybiByIT09dm9pZCAwJiYodGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShyKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDpyfSkpLHJ9YWRkKGUpe2xldCByPXRoaXMucmV2ZXJzZU1hcC5nZXQoZSk7aWYociE9PXZvaWQgMClyZXR1cm4gcjtsZXQgYT1OX3QoImtleSIpO3JldHVybiB0aGlzLmFkZE1hcHBlZFVuaXF1ZShhLGUpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoiYWRkIixwYXlsb2FkOmV9KSxhfWFkZEFycmF5KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMuYWRkKHIpfWNoZWNrRm9yT2JqZWN0KGUpe3JldHVybiB0aGlzLnJldmVyc2VNYXAuaGFzKGUpfWdldEtleUZvck9iamVjdChlKXtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmdldChlKT8/bnVsbH1hc3luYyBmaW5kKGUpe3JldHVybiB0aGlzLmZhc3RNYXAuZmluZChlKX1maW5kU3luYyhlKXtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZihlKHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSkpcmV0dXJuIHRoaXMuZ2V0TWFwcGVkVW5pcXVlKHIpfWFzeW5jIGZpbmRPbmVBbmRSZW1vdmUoZSl7bGV0IHI9YXdhaXQgdGhpcy5maW5kKGUpO3JldHVybiByJiZ0aGlzLnJlbW92ZShyKSxyfWZpbmRPbmVBbmRSZW1vdmVTeW5jKGUpe2xldCByPXRoaXMuZmluZFN5bmMoZSk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9YXN5bmMgZm9yRWFjaChlKXtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlhd2FpdCBlKHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSl9Z2V0T25lQW5kUmVtb3ZlKCl7bGV0IGU9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtpZihlLmxlbmd0aD09PTApcmV0dXJuIG51bGw7e2xldCByPWVbMF0sYT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShhKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDphfSksYX19Z2V0QXJyYXkoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLnZhbHVlcygpfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLnNpemU9PT0wfXJlbW92ZShlKXtsZXQgcj10aGlzLnJldmVyc2VNYXAuZ2V0KGUpO2lmKHIhPT12b2lkIDApe2xldCBhPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLnJldmVyc2VNYXAuZGVsZXRlKGEpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOmF9KSxhfXJldHVybiBudWxsfXdpcGUoKXtsZXQgZT10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2ZvcihsZXQgciBvZiBlKXtsZXQgYT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTt0aGlzLnJldmVyc2VNYXAuZGVsZXRlKGEpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOmF9KX19Y29uY2F0KGUpe2xldCByPW5ldyB0O3IuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodGhpcy5mYXN0TWFwKSxyLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCk7Zm9yKGxldCBhIG9mIHIuZmFzdE1hcC5nZXRLZXlzKCkpci5yZXZlcnNlTWFwLnNldChyLmZhc3RNYXAuZ2V0QnlLZXkoYSksYSk7cmV0dXJuIHJ9YWRkQWxsRnJvbU90aGVyKGUpe3RoaXMuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIoZS5mYXN0TWFwKTtmb3IobGV0IHIgb2YgZS5mYXN0TWFwLmdldEtleXMoKSl0aGlzLnJldmVyc2VNYXAuc2V0KGUuZmFzdE1hcC5nZXRCeUtleShyKSxyKX1tYXAoZSl7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKS5tYXAoZSl9ZmlsdGVyKGUpe3JldHVybiB0aGlzLmdldEFycmF5KCkuZmlsdGVyKGUpfXJlZHVjZShlLHIpe3JldHVybiB0aGlzLmdldEFycmF5KCkucmVkdWNlKGUscil9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpW1N5bWJvbC5pdGVyYXRvcl0oKX1kZXN0cm95KCl7dGhpcy53aXBlKCksdGhpcy5yZXZlcnNlTWFwLmNsZWFyKCksdGhpcy5ldmVudFN1YmplY3QuY29tcGxldGUoKX19fSk7dmFyIGRTLHBnZT11KCgpPT57X2woKTtmZ2UoKTtkUz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbnRlcmVzdCIpfW9wdGlvbnM7aW50ZXJlc3RNYXBSZWY7b3JpZ2luYWxJbnRlcmVzdDtjb21wYXJpc29uRnVuYztkZXN0cnVjdGlvblRpbWVyPW5ldyB0aC5UaW1lcigxZTQpO2lzRnVsbGZpbGxlZD0hMTtpc0Rlc3Ryb3llZD0hMTtmdWxsZmlsbG1lbnRTdG9yZT1bXTttYXJrTG9zdFRpbWVvdXQ9bnVsbDtnZXQgY29tcGFyaXNvblN0cmluZygpe3JldHVybiB0aGlzLmNvbXBhcmlzb25GdW5jKHRoaXMub3JpZ2luYWxJbnRlcmVzdCl9aW50ZXJlc3REZWZlcnJlZD1uZXcgeHQuRGVmZXJyZWQ7aW50ZXJlc3RGdWxsZmlsbGVkPXRoaXMuaW50ZXJlc3REZWZlcnJlZC5wcm9taXNlO2Z1bGxmaWxsSW50ZXJlc3QoZSl7dGhpcy5pc0Z1bGxmaWxsZWQ9ITAsdGhpcy5mdWxsZmlsbG1lbnRTdG9yZT1bXSx0aGlzLmludGVyZXN0RGVmZXJyZWQucmVzb2x2ZShlKSx0aGlzLmRlc3Ryb3koKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXt0aGlzLmludGVyZXN0TWFwUmVmPWUsdGhpcy5vcmlnaW5hbEludGVyZXN0PXIsdGhpcy5jb21wYXJpc29uRnVuYz1hLHRoaXMub3B0aW9ucz1zLHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e3RoaXMuaXNEZXN0cm95ZWR8fHRoaXMuZGVzdHJveSgpfSksdGhpcy5vcHRpb25zPy5tYXJrTG9zdEFmdGVyRGVmYXVsdCYmKHRoaXMubWFya0xvc3RUaW1lb3V0PW5ldyBLdC5UaW1lb3V0KHRoaXMub3B0aW9ucy5tYXJrTG9zdEFmdGVyRGVmYXVsdCksdGhpcy5tYXJrTG9zdFRpbWVvdXQucHJvbWlzZS50aGVuKCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5tYXJrTG9zdCgpfSkpfWRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWVkfHwodGhpcy5pc0Rlc3Ryb3llZD0hMCx0aGlzLmRlc3RydWN0aW9uVGltZXIucmVzZXQoKSx0aGlzLm1hcmtMb3N0VGltZW91dCYmKHRoaXMubWFya0xvc3RUaW1lb3V0LmNhbmNlbCgpLHRoaXMubWFya0xvc3RUaW1lb3V0PW51bGwpLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdE1hcFJlZi5yZW1vdmVJbnRlcmVzdCh0aGlzKSwhdGhpcy5pc0Z1bGxmaWxsZWQmJnRoaXMub3B0aW9ucz8uZGVmYXVsdEZ1bGxmaWxsbWVudCYmKHRoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuaW50ZXJlc3REZWZlcnJlZC5yZXNvbHZlKHRoaXMub3B0aW9ucy5kZWZhdWx0RnVsbGZpbGxtZW50KSkpfW1hcmtMb3N0KCl7dGhpcy5kZXN0cnVjdGlvblRpbWVyLnN0YXJ0KCl9cmVuZXcoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIucmVzZXQoKX19fSk7dmFyIGhnZSxmZ2U9dSgoKT0+e19sKCk7Y1MoKTtwZ2UoKTtoZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiSW50ZXJlc3RNYXAiKX1vcHRpb25zO2ludGVyZXN0T2JqZWN0TWFwPW5ldyBWZDtpbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmc9bmV3IE1hcDtjb21wYXJpc29uRnVuYztjb25zdHJ1Y3RvcihlLHI9e30pe3RoaXMuY29tcGFyaXNvbkZ1bmM9ZSx0aGlzLm9wdGlvbnM9cn1hc3luYyBhZGRJbnRlcmVzdChlLHIpe2xldCBhPXRoaXMuY29tcGFyaXNvbkZ1bmMoZSkscyxuPXRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmdldChhKTtyZXR1cm4gbj8ocz1uLHMucmVuZXcoKSk6KHM9bmV3IGRTKHRoaXMsZSx0aGlzLmNvbXBhcmlzb25GdW5jLHttYXJrTG9zdEFmdGVyRGVmYXVsdDp0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQsZGVmYXVsdEZ1bGxmaWxsbWVudDpyfSksdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5hZGQocyksdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuc2V0KGEscykpLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlLnB1c2gocyksc31pbnRlcmVzdE9ic2VydmFibGU9bmV3IG9hLk9ic2VydmFibGVJbnRha2U7cmVtb3ZlSW50ZXJlc3QoZSl7dGhpcy5pbnRlcmVzdE9iamVjdE1hcC5maW5kT25lQW5kUmVtb3ZlU3luYyhyPT5lLmNvbXBhcmlzb25TdHJpbmc9PT1yLmNvbXBhcmlzb25TdHJpbmcpLHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmRlbGV0ZShlLmNvbXBhcmlzb25TdHJpbmcpfWNoZWNrSW50ZXJlc3QoZSl7bGV0IHI9dGhpcy5jb21wYXJpc29uRnVuYyhlKTtyZXR1cm4gdGhpcy5jaGVja0ludGVyZXN0QnlTdHJpbmcocil9Y2hlY2tJbnRlcmVzdEJ5U3RyaW5nKGUpe3JldHVybiB0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5oYXMoZSl9aW5mb3JtTG9zdEludGVyZXN0KGUpe2xldCByPXRoaXMuZmluZEludGVyZXN0KGUpO3ImJnIubWFya0xvc3QoKX1maW5kSW50ZXJlc3QoZSl7bGV0IHI9dGhpcy5jb21wYXJpc29uRnVuYyhlKTtyZXR1cm4gdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuZ2V0KHIpPz9udWxsfWRlc3Ryb3koKXtsZXQgZT10aGlzLmludGVyZXN0T2JqZWN0TWFwLmdldEFycmF5KCk7Zm9yKGxldCByIG9mIGUpci5kZXN0cm95KCk7dGhpcy5pbnRlcmVzdE9iamVjdE1hcC53aXBlKCksdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuY2xlYXIoKSx0aGlzLmludGVyZXN0T2JzZXJ2YWJsZS5zaWduYWxDb21wbGV0ZSgpfX19KTt2YXIgbWdlLE9fdD11KCgpPT57X2woKTttZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiTGltaXRlZEFycmF5Iil9YXJyYXk9W107YXJyYXlMaW1pdDtjb25zdHJ1Y3RvcihlKXt0aGlzLmFycmF5TGltaXQ9ZX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuYXJyYXkubGVuZ3RofWFkZE9uZShlKXt0aGlzLmFycmF5LnVuc2hpZnQoZSksdGhpcy5hcnJheS5sZW5ndGg+dGhpcy5hcnJheUxpbWl0JiYodGhpcy5hcnJheS5sZW5ndGg9dGhpcy5hcnJheUxpbWl0KX1hZGRNYW55KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMuYWRkT25lKHIpfXNldExpbWl0KGUpe3RoaXMuYXJyYXlMaW1pdD1lLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9Z2V0QXZlcmFnZSgpe2lmKHRoaXMuYXJyYXkubGVuZ3RoPT09MClyZXR1cm4gMDtpZih0eXBlb2YgdGhpcy5hcnJheVswXT09Im51bWJlciIpe2xldCBlPTA7Zm9yKGxldCByIG9mIHRoaXMuYXJyYXkpZT1lK3I7cmV0dXJuIGUvdGhpcy5hcnJheS5sZW5ndGh9ZWxzZSByZXR1cm4gbnVsbH1yZW1vdmUoZSl7bGV0IHI9dGhpcy5hcnJheS5pbmRleE9mKGUpO3JldHVybiByIT09LTE/KHRoaXMuYXJyYXkuc3BsaWNlKHIsMSksITApOiExfWNsZWFyKCl7dGhpcy5hcnJheS5sZW5ndGg9MH1nZXRBcnJheSgpe3JldHVyblsuLi50aGlzLmFycmF5XX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLmFycmF5W1N5bWJvbC5pdGVyYXRvcl0oKX19fSk7dmFyIGdnZSxSX3Q9dSgoKT0+e19sKCk7Y1MoKTtnZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiTG9vcFRyYWNrZXIiKX1yZWZlcmVuY2VPYmplY3RNYXA9bmV3IFZkO2NvbnN0cnVjdG9yKCl7fWNoZWNrQW5kVHJhY2soZSl7cmV0dXJuIHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmNoZWNrRm9yT2JqZWN0KGUpPyExOih0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5hZGQoZSksITApfXJlc2V0KCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXAud2lwZSgpfWRlc3Ryb3koKXt0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5kZXN0cm95KCl9fX0pO3ZhciB1UyxiZ2U9dSgoKT0+e19sKCk7dVM9Y2xhc3N7c3RhdGlje2kodGhpcywiU3RyaW5nbWFwIil9X3N0cmluZ0FycmF5PVtdO190cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXTtjb25zdHJ1Y3Rvcigpe31hZGRTdHJpbmcoZSl7dGhpcy5fc3RyaW5nQXJyYXkucHVzaChlKSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1hZGRTdHJpbmdBcnJheShlKXtmb3IobGV0IHIgb2YgZSl0aGlzLmFkZFN0cmluZyhyKX1yZW1vdmVTdHJpbmcoZSl7dGhpcy5fc3RyaW5nQXJyYXk9dGhpcy5fc3RyaW5nQXJyYXkuZmlsdGVyKHI9PnIhPT1lKSx0aGlzLm5vdGlmeVRyaWdnZXIoKX13aXBlKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5ub3RpZnlUcmlnZ2VyKCl9Y2hlY2tTdHJpbmcoZSl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5LmluZGV4T2YoZSkhPT0tMX1jaGVja01pbmltYXRjaChlKXtsZXQgcj1uZXcgUGsuU21hcnRNYXRjaChlKSxhPSExO2ZvcihsZXQgcyBvZiB0aGlzLl9zdHJpbmdBcnJheSlyLm1hdGNoKHMpJiYoYT0hMCk7cmV0dXJuIGF9Y2hlY2tJc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5Lmxlbmd0aD09PTB9Z2V0U3RyaW5nQXJyYXkoKXtsZXQgZT1bXTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpZS5wdXNoKHIpO3JldHVybiBlfXJlZ2lzdGVyVW50aWxUcnVlKGUscil7bGV0IGE9eHQuZGVmZXIoKTtyZXR1cm4gdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkucHVzaCgoKT0+e2xldCBzPWUodGhpcy5nZXRTdHJpbmdBcnJheSgpKTtyZXR1cm4gcz09PSEwJiYociYmcigpLGEucmVzb2x2ZSgpKSxzfSksdGhpcy5ub3RpZnlUcmlnZ2VyKCksYS5wcm9taXNlfW5vdGlmeVRyaWdnZXIoKXtsZXQgZT10aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5maWx0ZXIocj0+IXIoKSk7dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9ZX1kZXN0cm95KCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W119fX0pO3ZhciBwUyx4Z2U9dSgoKT0+e19sKCk7cFM9Y2xhc3N7c3RhdGlje2kodGhpcywiVGltZWRBZ2dyZWd0b3IiKX1vcHRpb25zO3N0b3JhZ2VBcnJheT1bXTtpc1N0b3BwZWQ9ITE7Y29uc3RydWN0b3IoZSl7dGhpcy5vcHRpb25zPWV9YWdncmVnYXRpb25UaW1lcjtjaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCl7aWYodGhpcy5pc1N0b3BwZWQpcmV0dXJuO2xldCBlPWkoKCk9Pnt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bmV3IHRoLlRpbWVyKHRoaXMub3B0aW9ucy5hZ2dyZWdhdGlvbkludGVydmFsSW5NaWxsaXMpLHRoaXMuYWdncmVnYXRpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e2lmKHRoaXMuaXNTdG9wcGVkKXt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bnVsbDtyZXR1cm59bGV0IHI9dGhpcy5zdG9yYWdlQXJyYXk7aWYoci5sZW5ndGg9PT0wKXt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bnVsbDtyZXR1cm59dGhpcy5zdG9yYWdlQXJyYXk9W10sZSgpLHRoaXMub3B0aW9ucy5mdW5jdGlvbkZvckFnZ3JlZ2F0aW9uKHIpfSksdGhpcy5hZ2dyZWdhdGlvblRpbWVyLnN0YXJ0KCl9LCJhZGRBZ2dyZWdhdGlvblRpbWVyIik7dGhpcy5hZ2dyZWdhdGlvblRpbWVyfHxlKCl9YWRkKGUpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5zdG9yYWdlQXJyYXkucHVzaChlKSx0aGlzLmNoZWNrQWdncmVnYXRpb25TdGF0dXMoKSl9c3RvcChlPSExKXtpZih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLmFnZ3JlZ2F0aW9uVGltZXImJih0aGlzLmFnZ3JlZ2F0aW9uVGltZXIucmVzZXQoKSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bnVsbCksZSYmdGhpcy5zdG9yYWdlQXJyYXkubGVuZ3RoPjApe2xldCByPXRoaXMuc3RvcmFnZUFycmF5O3RoaXMuc3RvcmFnZUFycmF5PVtdLHRoaXMub3B0aW9ucy5mdW5jdGlvbkZvckFnZ3JlZ2F0aW9uKHIpfWVsc2UgdGhpcy5zdG9yYWdlQXJyYXk9W119cmVzdGFydCgpe3RoaXMuaXNTdG9wcGVkPSExfX19KTt2YXIgdmdlLEZfdD11KCgpPT57X2woKTt2Z2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVHJlZSIpfXN5bWJvbFRyZWU7Y29uc3RydWN0b3IoKXt0aGlzLnN5bWJvbFRyZWU9bmV3IFBuZS5kZWZhdWx0fWluaXRpYWxpemUoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbml0aWFsaXplKGUpfWhhc0NoaWxkcmVuKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaGFzQ2hpbGRyZW4oZSl9Zmlyc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZpcnN0Q2hpbGQoZSl9bGFzdENoaWxkKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdENoaWxkKGUpfXByZXZpb3VzU2libGluZyhlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZyhlKX1uZXh0U2libGluZyhlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nKGUpfXBhcmVudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnBhcmVudChlKX1sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpfXByZWNlZGluZyhlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlY2VkaW5nKGUscil9Zm9sbG93aW5nKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5mb2xsb3dpbmcoZSxyKX1jaGlsZHJlblRvQXJyYXkoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuVG9BcnJheShlLHIpfWFuY2VzdG9yc1RvQXJyYXkoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc1RvQXJyYXkoZSxyKX10cmVlVG9BcnJheShlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZVRvQXJyYXkoZSxyKX1jaGlsZHJlbkl0ZXJhdG9yKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlbkl0ZXJhdG9yKGUscil9cHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpfW5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl9YW5jZXN0b3JzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNJdGVyYXRvcihlKX10cmVlSXRlcmF0b3IoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVJdGVyYXRvcihlLHIpfWluZGV4KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5kZXgoZSl9Y2hpbGRyZW5Db3VudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuQ291bnQoZSl9Y29tcGFyZVRyZWVQb3NpdGlvbihlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY29tcGFyZVRyZWVQb3NpdGlvbihlLHIpfXJlbW92ZShlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnJlbW92ZShlKX1pbnNlcnRCZWZvcmUoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEJlZm9yZShlLHIpfWluc2VydEFmdGVyKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRBZnRlcihlLHIpfXByZXBlbmRDaGlsZChlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlcGVuZENoaWxkKGUscil9YXBwZW5kQ2hpbGQoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFwcGVuZENoaWxkKGUscil9dG9Kc29uV2l0aEhpZXJhY2h5KGUpe2xldCByPWkoYT0+e2xldCBzPVtdO2lmKHRoaXMuaGFzQ2hpbGRyZW4oYSkpe2xldCBuPXRoaXMuY2hpbGRyZW5Ub0FycmF5KGEse30pO2ZvcihsZXQgbyBvZiBuKXMucHVzaChyKG8pKX1yZXR1cm57ZGF0YTphLGNoaWxkcmVuOnN9fSwiYnVpbGROb2RlIik7cmV0dXJuIHIoZSl9ZnJvbUpzb25XaXRoSGllcmFjaHkoZSxyKXtsZXQgYT1pKChzLG4pPT57bGV0IG89cj9yKHMuZGF0YSk6cy5kYXRhO3RoaXMuaW5pdGlhbGl6ZShvKSxuJiZ0aGlzLmFwcGVuZENoaWxkKG4sbyk7Zm9yKGxldCBsIG9mIHMuY2hpbGRyZW4pYShsLG8pO3JldHVybiBvfSwiYnVpbGRUcmVlIik7cmV0dXJuIGEoZSl9fX0pO3ZhciBGYT17fTtWZShGYSx7QXN5bmNFeGVjdXRpb25TdGFjazooKT0+ZGdlLEJhY2twcmVzc3VyZWRBcnJheTooKT0+dWdlLEZhc3RNYXA6KCk9PnJoLEludGVyZXN0OigpPT5kUyxJbnRlcmVzdE1hcDooKT0+aGdlLExpbWl0ZWRBcnJheTooKT0+bWdlLExvb3BUcmFja2VyOigpPT5nZ2UsT2JqZWN0TWFwOigpPT5WZCxTdHJpbmdtYXA6KCk9PnVTLFRpbWVkQWdncmVnYXRvcjooKT0+cFMsVGltZWRBZ2dyZWd0b3I6KCk9PnBTLFRyZWU6KCk9PnZnZSx1bmk6KCk9Pk5fdH0pO3ZhciBNYj11KCgpPT57SV90KCk7UF90KCk7Tm5lKCk7ZmdlKCk7cGdlKCk7T190KCk7Ul90KCk7Y1MoKTtiZ2UoKTt4Z2UoKTt4Z2UoKTtGX3QoKX0pO3ZhciBvdT17fTtWZShvdSx7YXJlVWludDhBcnJheXNFcXVhbDooKT0+JGRhLGFzc2VydFVpbnQ4QXJyYXk6KCk9Pm51LGFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyOigpPT5qX3QsYmFzZTY0VG9TdHJpbmc6KCk9Pk9kYSxiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PllfdCxjb21wYXJlVWludDhBcnJheXM6KCk9PkFkYSxjb25jYXRVaW50OEFycmF5czooKT0+RGRhLGdldFVpbnRCRTooKT0+SGRhLGhleFRvVWludDhBcnJheTooKT0+QmRhLGluY2x1ZGVzOigpPT5xZGEsaW5kZXhPZjooKT0+S190LGlzVWludDhBcnJheTooKT0+eWdlLHN0cmluZ1RvQmFzZTY0OigpPT5OZGEsc3RyaW5nVG9VaW50OEFycmF5OigpPT5XX3QsdG9VaW50OEFycmF5OigpPT5MZGEsdWludDhBcnJheVRvQmFzZTY0OigpPT5HX3QsdWludDhBcnJheVRvSGV4OigpPT5GZGEsdWludDhBcnJheVRvU3RyaW5nOigpPT5VX3R9KTtmdW5jdGlvbiBCX3QodCxlLHIpe3JldHVybiB0P3QuY29uc3RydWN0b3I9PT1lPyEwOk1kYS5jYWxsKHQpPT09cjohMX1mdW5jdGlvbiB5Z2UodCl7cmV0dXJuIEJfdCh0LFVpbnQ4QXJyYXksQ2RhKX1mdW5jdGlvbiBfZGEodCl7cmV0dXJuIEJfdCh0LEFycmF5QnVmZmVyLHpkYSl9ZnVuY3Rpb24gVGRhKHQpe3JldHVybiB5Z2UodCl8fF9kYSh0KX1mdW5jdGlvbiBudSh0KXtpZigheWdlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgVWludDhBcnJheVxgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gal90KHQpe2lmKCFUZGEodCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAgb3IgXGBBcnJheUJ1ZmZlclxgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gTGRhKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodCk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXJldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSwgZ290IFxgJHt0eXBlb2YgdH1cYC5gKX1mdW5jdGlvbiBEZGEodCxlKXtpZih0Lmxlbmd0aD09PTApcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2U/Pz10LnJlZHVjZSgocyxuKT0+cytuLmxlbmd0aCwwKTtsZXQgcj1uZXcgVWludDhBcnJheShlKSxhPTA7Zm9yKGxldCBzIG9mIHQpbnUocyksci5zZXQocyxhKSxhKz1zLmxlbmd0aDtyZXR1cm4gcn1mdW5jdGlvbiAkZGEodCxlKXtpZihudSh0KSxudShlKSx0PT09ZSlyZXR1cm4hMDtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKWlmKHRbcl0hPT1lW3JdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEFkYSh0LGUpe251KHQpLG51KGUpO2xldCByPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IobGV0IGE9MDthPHI7YSsrKXtsZXQgcz10W2FdLWVbYV07aWYocyE9PTApcmV0dXJuIE1hdGguc2lnbihzKX1yZXR1cm4gTWF0aC5zaWduKHQubGVuZ3RoLWUubGVuZ3RoKX1mdW5jdGlvbiBVX3QodCxlPSJ1dGY4Iil7cmV0dXJuIGpfdCh0KSxIX3RbZV0/Pz1uZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcihlKSxIX3RbZV0uZGVjb2RlKHQpfWZ1bmN0aW9uIGZTKHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYHN0cmluZ1xgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gV190KHQpe3JldHVybiBmUyh0KSxFZGEuZW5jb2RlKHQpfWZ1bmN0aW9uIElkYSh0KXtyZXR1cm4gdC5yZXBsYWNlQWxsKCIrIiwiLSIpLnJlcGxhY2VBbGwoIi8iLCJfIikucmVwbGFjZSgvPSskLywiIil9ZnVuY3Rpb24gUGRhKHQpe2xldCBlPXQucmVwbGFjZUFsbCgiLSIsIisiKS5yZXBsYWNlQWxsKCJfIiwiLyIpLHI9KDQtZS5sZW5ndGglNCklNDtyZXR1cm4gZSsiPSIucmVwZWF0KHIpfWZ1bmN0aW9uIEdfdCh0LHt1cmxTYWZlOmU9ITF9PXt9KXtudSh0KTtsZXQgcj0iIjtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErPXFfdCl7bGV0IHM9dC5zdWJhcnJheShhLGErcV90KTtyKz1nbG9iYWxUaGlzLmJ0b2EoU3RyaW5nLmZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLHMpKX1yZXR1cm4gZT9JZGEocik6cn1mdW5jdGlvbiBZX3QodCl7cmV0dXJuIGZTKHQpLFVpbnQ4QXJyYXkuZnJvbShnbG9iYWxUaGlzLmF0b2IoUGRhKHQpKSxlPT5lLmNvZGVQb2ludEF0KDApKX1mdW5jdGlvbiBOZGEodCx7dXJsU2FmZTplPSExfT17fSl7cmV0dXJuIGZTKHQpLEdfdChXX3QodCkse3VybFNhZmU6ZX0pfWZ1bmN0aW9uIE9kYSh0KXtyZXR1cm4gZlModCksVV90KFlfdCh0KSl9ZnVuY3Rpb24gRmRhKHQpe251KHQpO2xldCBlPSIiO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKWUrPVJkYVt0W3JdXTtyZXR1cm4gZX1mdW5jdGlvbiBCZGEodCl7aWYoZlModCksdC5sZW5ndGglMiE9PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEhleCBzdHJpbmcgbGVuZ3RoLiIpO2xldCBlPXQubGVuZ3RoLzIscj1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IGE9MDthPGU7YSsrKXtsZXQgcz1WX3RbdFthKjJdXSxuPVZfdFt0W2EqMisxXV07aWYocz09PXZvaWQgMHx8bj09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSGV4IGNoYXJhY3RlciBlbmNvdW50ZXJlZCBhdCBwb3NpdGlvbiAke2EqMn1gKTtyW2FdPXM8PDR8bn1yZXR1cm4gcn1mdW5jdGlvbiBIZGEodCl7bGV0e2J5dGVMZW5ndGg6ZX09dDtpZihlPT09NilyZXR1cm4gdC5nZXRVaW50MTYoMCkqMioqMzIrdC5nZXRVaW50MzIoMik7aWYoZT09PTUpcmV0dXJuIHQuZ2V0VWludDgoMCkqMioqMzIrdC5nZXRVaW50MzIoMSk7aWYoZT09PTQpcmV0dXJuIHQuZ2V0VWludDMyKDApO2lmKGU9PT0zKXJldHVybiB0LmdldFVpbnQ4KDApKjIqKjE2K3QuZ2V0VWludDE2KDEpO2lmKGU9PT0yKXJldHVybiB0LmdldFVpbnQxNigwKTtpZihlPT09MSlyZXR1cm4gdC5nZXRVaW50OCgwKX1mdW5jdGlvbiBLX3QodCxlKXtsZXQgcj10Lmxlbmd0aCxhPWUubGVuZ3RoO2lmKGE9PT0wfHxhPnIpcmV0dXJuLTE7bGV0IHM9ci1hO2ZvcihsZXQgbj0wO248PXM7bisrKXtsZXQgbz0hMDtmb3IobGV0IGw9MDtsPGE7bCsrKWlmKHRbbitsXSE9PWVbbF0pe289ITE7YnJlYWt9aWYobylyZXR1cm4gbn1yZXR1cm4tMX1mdW5jdGlvbiBxZGEodCxlKXtyZXR1cm4gS190KHQsZSkhPT0tMX12YXIgTWRhLENkYSx6ZGEsSF90LEVkYSxxX3QsUmRhLFZfdCxaX3Q9dSgoKT0+e01kYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLENkYT0iW29iamVjdCBVaW50OEFycmF5XSIsemRhPSJbb2JqZWN0IEFycmF5QnVmZmVyXSI7aShCX3QsImlzVHlwZSIpO2koeWdlLCJpc1VpbnQ4QXJyYXkiKTtpKF9kYSwiaXNBcnJheUJ1ZmZlciIpO2koVGRhLCJpc1VpbnQ4QXJyYXlPckFycmF5QnVmZmVyIik7aShudSwiYXNzZXJ0VWludDhBcnJheSIpO2koal90LCJhc3NlcnRVaW50OEFycmF5T3JBcnJheUJ1ZmZlciIpO2koTGRhLCJ0b1VpbnQ4QXJyYXkiKTtpKERkYSwiY29uY2F0VWludDhBcnJheXMiKTtpKCRkYSwiYXJlVWludDhBcnJheXNFcXVhbCIpO2koQWRhLCJjb21wYXJlVWludDhBcnJheXMiKTtIX3Q9e3V0Zjg6bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoInV0ZjgiKX07aShVX3QsInVpbnQ4QXJyYXlUb1N0cmluZyIpO2koZlMsImFzc2VydFN0cmluZyIpO0VkYT1uZXcgZ2xvYmFsVGhpcy5UZXh0RW5jb2RlcjtpKFdfdCwic3RyaW5nVG9VaW50OEFycmF5Iik7aShJZGEsImJhc2U2NFRvQmFzZTY0VXJsIik7aShQZGEsImJhc2U2NFVybFRvQmFzZTY0Iik7cV90PTY1NTM1O2koR190LCJ1aW50OEFycmF5VG9CYXNlNjQiKTtpKFlfdCwiYmFzZTY0VG9VaW50OEFycmF5Iik7aShOZGEsInN0cmluZ1RvQmFzZTY0Iik7aShPZGEsImJhc2U2NFRvU3RyaW5nIik7UmRhPUFycmF5LmZyb20oe2xlbmd0aDoyNTZ9LCh0LGUpPT5lLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpO2koRmRhLCJ1aW50OEFycmF5VG9IZXgiKTtWX3Q9ezA6MCwxOjEsMjoyLDM6Myw0OjQsNTo1LDY6Niw3OjcsODo4LDk6OSxhOjEwLGI6MTEsYzoxMixkOjEzLGU6MTQsZjoxNSxBOjEwLEI6MTEsQzoxMixEOjEzLEU6MTQsRjoxNX07aShCZGEsImhleFRvVWludDhBcnJheSIpO2koSGRhLCJnZXRVaW50QkUiKTtpKEtfdCwiaW5kZXhPZiIpO2kocWRhLCJpbmNsdWRlcyIpfSk7dmFyIFFfdD11KCgpPT57Wl90KCl9KTt2YXIgTTI9e307VmUoTTIse2Jhc2U2NFRvVWludDhBcnJheTooKT0+V2RhLGVuc3VyZVB1cmVVaW50OEFycmF5OigpPT5LZGEsaXNCdWZmZXJMaWtlOigpPT5ZZGEsaXNVaW50OEFycmF5OigpPT5HZGEsdUludDhBcnJheUV4dHJhczooKT0+amRhLHVJbnQ4QXJyYXlUb0Jhc2U2NDooKT0+VWRhfSk7ZnVuY3Rpb24gVWRhKHQpe3JldHVybiBvdS51aW50OEFycmF5VG9CYXNlNjQodCl9ZnVuY3Rpb24gV2RhKHQpe3JldHVybiBvdS5iYXNlNjRUb1VpbnQ4QXJyYXkodCl9ZnVuY3Rpb24gWWRhKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5ieXRlTGVuZ3RoPT0ibnVtYmVyIj8hMDp0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyP0J1ZmZlci5pc0J1ZmZlcih0KTohMX1mdW5jdGlvbiBLZGEodCl7bGV0IGU9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgpO3JldHVybiBlLnNldCh0KSxlfXZhciBqZGEsR2RhLHdnZT11KCgpPT57UV90KCk7amRhPW91O2koVWRhLCJ1SW50OEFycmF5VG9CYXNlNjQiKTtpKFdkYSwiYmFzZTY0VG9VaW50OEFycmF5Iik7R2RhPWkodD0+b3UuaXNVaW50OEFycmF5KHQpLCJpc1VpbnQ4QXJyYXkiKTtpKFlkYSwiaXNCdWZmZXJMaWtlIik7aShLZGEsImVuc3VyZVB1cmVVaW50OEFycmF5Iil9KTt2YXIgaFM9dSgoKT0+e0duKCl9KTt2YXIgbVMsT25lPXUoKCk9PntoUygpO21TPWNsYXNze3N0YXRpY3tpKHRoaXMsIkd1YXJkIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLmd1YXJkRnVuY3Rpb249ZSx0aGlzLm9wdGlvbnM9cn1hc3luYyBleGVjKGUpe3JldHVybiBhd2FpdCB0aGlzLmd1YXJkRnVuY3Rpb24oZSl9YXN5bmMgZ2V0RmFpbGVkSGludChlKXtyZXR1cm4gYXdhaXQgdGhpcy5leGVjKGUpP251bGw6dGhpcy5vcHRpb25zLmZhaWxlZEhpbnR9fX0pO3ZhciBnUyxrZ2U9dSgoKT0+e2hTKCk7Z1M9Y2xhc3MgZXh0ZW5kcyBFcnJvcntzdGF0aWN7aSh0aGlzLCJHdWFyZEVycm9yIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5uYW1lPSJHdWFyZEVycm9yIn19fSk7dmFyIGJTLFNnZT11KCgpPT57aFMoKTtPbmUoKTtiUz1jbGFzcyBleHRlbmRzIG1Te3N0YXRpY3tpKHRoaXMsIkd1YXJkU2V0Iil9Y29uc3RydWN0b3IoZT1bXSl7c3VwZXIoYXN5bmMgcj0+dGhpcy5hbGxHdWFyZHNQYXNzKHIpKSx0aGlzLmd1YXJkcz1lfWFzeW5jIGV4ZWNBbGxXaXRoRGF0YShlLHI9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7bGV0IGE9W107Zm9yKGxldCBuIG9mIHRoaXMuZ3VhcmRzKXtsZXQgbz1uLmV4ZWMoZSk7aWYoci5tb2RlPT09InNlcmlhbCImJmF3YWl0IG8sYS5wdXNoKG8pLHIuc3RvcE9uRmFpbCYmIWF3YWl0IG8pcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGEpfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChhKX1hc3luYyBhbGxHdWFyZHNQYXNzKGUscj17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEoZSxyKSkuZXZlcnkocz0+cyl9YXN5bmMgYW55R3VhcmRzUGFzcyhlKXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEoZSx7bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KSkuc29tZShhPT5hKX1nZXRGYWlsZWRIaW50KGUpe2ZvcihsZXQgciBvZiB0aGlzLmd1YXJkcyl7bGV0IGE9ci5nZXRGYWlsZWRIaW50KGUpO2lmKGEpcmV0dXJuIGF9fX19KTt2YXIgamQ9e307VmUoamQse0d1YXJkOigpPT5tUyxHdWFyZEVycm9yOigpPT5nUyxHdWFyZFNldDooKT0+YlMscGFzc0d1YXJkc09yUmVqZWN0OigpPT5aZGF9KTt2YXIgWmRhLE1nZT11KCgpPT57aFMoKTtPbmUoKTtrZ2UoKTtPbmUoKTtTZ2UoKTtTZ2UoKTtrZ2UoKTtaZGE9aShhc3luYyh0LGUpPT57bGV0IHI9bmV3IGJTKGUpO2lmKCFhd2FpdCByLmFsbEd1YXJkc1Bhc3ModCkpe2xldCBzPWF3YWl0IHIuZ2V0RmFpbGVkSGludCh0KTt0aHJvdyBuZXcgZ1MoYEd1YXJkcyBmYWlsZWQ6CiR7c30KICAgIGApfX0sInBhc3NHdWFyZHNPclJlamVjdCIpfSk7dmFyIF9iLENnZT11KCgpPT57X2I9Y2xhc3N7c3RhdGlje2kodGhpcywiSW50ZXJjZXB0b3JNYW5hZ2VyIil9Y29uc3RydWN0b3IoKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnM9W10sdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycz1bXSx0aGlzLmVycm9ySW50ZXJjZXB0b3JzPVtdfWFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMucHVzaChlKX1hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMucHVzaChlKX1hZGRFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuZXJyb3JJbnRlcmNlcHRvcnMucHVzaChlKX1yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7bGV0IHI9dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7cj4tMSYmdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnNwbGljZShyLDEpfXJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7bGV0IHI9dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5pbmRleE9mKGUpO3I+LTEmJnRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMuc3BsaWNlKHIsMSl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKXtsZXQgcj10aGlzLmVycm9ySW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7cj4tMSYmdGhpcy5lcnJvckludGVyY2VwdG9ycy5zcGxpY2UociwxKX1jbGVhckFsbCgpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YXN5bmMgcHJvY2Vzc1JlcXVlc3QoZSl7bGV0IHI9ZTtmb3IobGV0IGEgb2YgdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzKXRyeXtyPWF3YWl0IGEocil9Y2F0Y2gocyl7dGhyb3cgYXdhaXQgdGhpcy5wcm9jZXNzRXJyb3IocyBpbnN0YW5jZW9mIEVycm9yP3M6bmV3IEVycm9yKFN0cmluZyhzKSkpfXJldHVybiByfWFzeW5jIHByb2Nlc3NSZXNwb25zZShlKXtsZXQgcj1lO2ZvcihsZXQgYSBvZiB0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzKXRyeXtyPWF3YWl0IGEocil9Y2F0Y2gocyl7dGhyb3cgYXdhaXQgdGhpcy5wcm9jZXNzRXJyb3IocyBpbnN0YW5jZW9mIEVycm9yP3M6bmV3IEVycm9yKFN0cmluZyhzKSkpfXJldHVybiByfWFzeW5jIHByb2Nlc3NFcnJvcihlKXtsZXQgcj1lO2ZvcihsZXQgYSBvZiB0aGlzLmVycm9ySW50ZXJjZXB0b3JzKXRyeXtyPWF3YWl0IGEocil9Y2F0Y2gocyl7cj1zIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKX1yZXR1cm4gcn1nZXRJbnRlcmNlcHRvckNvdW50cygpe3JldHVybntyZXF1ZXN0OnRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5sZW5ndGgscmVzcG9uc2U6dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5sZW5ndGgsZXJyb3I6dGhpcy5lcnJvckludGVyY2VwdG9ycy5sZW5ndGh9fX19KTt2YXIgWF90PXUoKCk9PntHbigpfSk7dmFyIEpfdD11KCgpPT57fSk7dmFyIHpnZSxlVHQ9dSgoKT0+e1hfdCgpO0pfdCgpO3pnZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTbWFydGVudiIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2FkZWRTY3JpcHRzPVtdfWFzeW5jIGdldEVudkF3YXJlTW9kdWxlKGUpe2lmKHRoaXMuaXNOb2RlKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKGUubm9kZU1vZHVsZU5hbWUpO2lmKHRoaXMuaXNCcm93c2VyKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUoZS53ZWJVcmxBcmcsZS5nZXRGdW5jdGlvbik7Y29uc29sZS5lcnJvcigicGxhdGZvcm0gZm9yIGxvYWRpbmcgbm90IHN1cHBvcnRlZCBieSBzbWFydGVudiIpfWFzeW5jIGdldFNhZmVOb2RlTW9kdWxlKGUscil7aWYoIXRoaXMuaXNOb2RlJiYhdGhpcy5pc0Rlbm8mJiF0aGlzLmlzQnVuKXtjb25zb2xlLmVycm9yKGBZb3UgdHJpZWQgdG8gbG9hZCBhIHNlcnZlciBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgYT1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCk7cmV0dXJuIHImJmF3YWl0IHIoYSksYX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUscil7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gcigpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCBhPXh0LmRlZmVyKCkscz1nbG9iYWxUaGlzO2lmKHMuaW1wb3J0U2NyaXB0cylzLmltcG9ydFNjcmlwdHMoZSksYS5yZXNvbHZlKCk7ZWxzZXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtuLm9ubG9hZD0oKT0+e2EucmVzb2x2ZSgpfSxuLnNyYz1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9cmV0dXJuIGF3YWl0IGEucHJvbWlzZSxyKCl9Z2V0IHJ1bnRpbWVFbnYoKXtsZXQgZT1nbG9iYWxUaGlzO3JldHVybiB0eXBlb2YgZS5EZW5vPCJ1IiYmdHlwZW9mIGUuRGVuby52ZXJzaW9uPCJ1Ij8iZGVubyI6dHlwZW9mIGUuQnVuPCJ1IiYmdHlwZW9mIGUuQnVuLnZlcnNpb248InUiPyJidW4iOnR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3M8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZTwidSI/Im5vZGUiOih0eXBlb2YgZ2xvYmFsVGhpcy53aW5kb3c8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5kb2N1bWVudDwidSIsImJyb3dzZXIiKX1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJicm93c2VyIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgaXNEZW5vKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJkZW5vIn1nZXQgaXNCdW4oKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09ImJ1biJ9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBub2RlVmVyc2lvbigpe3JldHVybiB0aGlzLmlzTm9kZT9wcm9jZXNzLnZlcnNpb246InVuZGVmaW5lZCJ9Z2V0IGRlbm9WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNEZW5vP2dsb2JhbFRoaXMuRGVubz8udmVyc2lvbj8uZGVubz8/InVuZGVmaW5lZCI6InVuZGVmaW5lZCJ9Z2V0IGJ1blZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc0J1bj9nbG9iYWxUaGlzLkJ1bj8udmVyc2lvbj8/InVuZGVmaW5lZCI6InVuZGVmaW5lZCJ9YXN5bmMgZ2V0U2FmZU1vZHVsZUZvcihlLHIsYSl7bGV0IHM7aWYoQXJyYXkuaXNBcnJheShlKT9zPWUuZmxhdE1hcChuPT5uPT09InNlcnZlciI/WyJub2RlIiwiZGVubyIsImJ1biJdOltuXSk6ZT09PSJzZXJ2ZXIiP3M9WyJub2RlIiwiZGVubyIsImJ1biJdOnM9W2VdLCFzLmluY2x1ZGVzKHRoaXMucnVudGltZUVudikpe2NvbnNvbGUud2FybihgTW9kdWxlICIke3J9IiByZXF1ZXN0ZWQgZm9yIHJ1bnRpbWUocykgWyR7cy5qb2luKCIsICIpfV0gYnV0IGN1cnJlbnQgcnVudGltZSBpcyAiJHt0aGlzLnJ1bnRpbWVFbnZ9Ii4gU2tpcHBpbmcgbG9hZC5gKTtyZXR1cm59aWYodGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHIpO2lmKHRoaXMuaXNCcm93c2VyKXtpZighYSl7Y29uc29sZS5lcnJvcihgQnJvd3NlciBtb2R1bGUgbG9hZCByZXF1aXJlcyBnZXRGdW5jdGlvbiBwYXJhbWV0ZXIgZm9yICIke3J9ImApO3JldHVybn1yZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKHIsYSl9fWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUodGhpcy5pc0Rlbm8/Im5vZGU6b3MiOiJvcyIpKT8ucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bj8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0aGlzLmlzRGVubz8ibm9kZTpvcyI6Im9zIikpPy5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHRoaXMuaXNEZW5vPyJub2RlOm9zIjoib3MiKSk/LnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOnRoaXMuaXNEZW5vPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBERU5PIiksY29uc29sZS5sb2coImRlbm8gdmVyc2lvbiBpcyAiK3RoaXMuZGVub1ZlcnNpb24pKTp0aGlzLmlzQnVuPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBCVU4iKSxjb25zb2xlLmxvZygiYnVuIHZlcnNpb24gaXMgIit0aGlzLmJ1blZlcnNpb24pKTooY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlJPV1NFUiIpLGNvbnNvbGUubG9nKCJicm93c2VyIGlzICIrdGhpcy51c2VyQWdlbnQpKX19fSk7dmFyIEMyPXt9O1ZlKEMyLHtTbWFydGVudjooKT0+emdlfSk7dmFyIHhTPXUoKCk9PntlVHQoKX0pO3ZhciBfZ2UsdlM9dSgoKT0+e19nZT1HYSh2aygpLDEpfSk7dmFyIFJuZT17fTtWZShSbmUse2NyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZzooKT0+cjRhLGNyZWF0ZVJhbmRvbVN0cmluZzooKT0+dDRhfSk7dmFyIEpkYSxlNGEsdDRhLHI0YSx0VHQ9dSgoKT0+e3ZTKCk7SmRhPWkoKHQsZSk9PntpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiZnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2xldCByPWUtdCxhPW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpLHQrYVswXSVyfWVsc2UgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KSkrdH0sImdldFJhbmRvbUludCIpLGU0YT1pKCh0LGUscik9PntsZXQgYT17QToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGE6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwwOiIwMTIzNDU2Nzg5IiwiISI6IiFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/IiwiKiI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8ifSxzPXQ7ZSYmZT50Lmxlbmd0aD9zPXQucmVwZWF0KE1hdGguY2VpbChlL3QubGVuZ3RoKSkuc2xpY2UoMCxlKTplJiYocz10LnNsaWNlKDAsZSkpO2xldCBuPSIiO2ZvcihsZXQgbyBvZiBzKWlmKGFbb10pe2xldCBsPWFbb10sYz1KZGEoMCxsLmxlbmd0aCk7bis9bFtjXX1lbHNlIG4rPW87cmV0dXJuIG59LCJjdXN0b21SYW5kb21hdGljIiksdDRhPWkoKHQsZSxyKT0+ZTRhKHQsZSxyKSwiY3JlYXRlUmFuZG9tU3RyaW5nIikscjRhPWkoKCk9Pl9nZS51bmkoKSwiY3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nIil9KTt2YXIgRm5lPXt9O1ZlKEZuZSx7bWFrZUVudk9iamVjdDooKT0+YTRhfSk7dmFyIGE0YSxyVHQ9dSgoKT0+e3ZTKCk7YTRhPWkoZnVuY3Rpb24odCl7bGV0IGU9e30scj0vKC4qKT0oLiopLztpZih0eXBlb2YgdDwidSIpZm9yKGxldCBhIG9mIHQpe2xldCBzPXIuZXhlYyhhKTtzJiYoZVtzWzFdXT1zWzJdKX1yZXR1cm4gZX0sIm1ha2VFbnZPYmplY3QiKX0pO3ZhciBCbmU9e307VmUoQm5lLHtpbmRlbnQ6KCk9PnM0YSxpbmRlbnRXaXRoUHJlZml4OigpPT5uNGEsbm9ybWFsaXplOigpPT5vNGF9KTt2YXIgVGdlLExnZSxpNGEsczRhLG40YSxvNGEsYVR0PXUoKCk9Pnt2UygpO1RnZT1pKHQ9PntsZXQgZT10LnNwbGl0KGAKYCk7cmV0dXJuIGk0YShlKX0sInNwbGl0U3RyaW5nQXRMaW5lQnJlYWsiKSxMZ2U9aSh0PT57bGV0IGU9IiI7Zm9yKGxldCByIG9mIHQpZT1lK3IrYApgO3JldHVybiBlfSwiam9pblN0cmluZ1dpdGhMaW5lQnJlYWtzIiksaTRhPWkodD0+e2xldCBlPS9eW1xzXSokLztyZXR1cm4gZS50ZXN0KHRbMF0pJiZ0LnNoaWZ0KCksZS50ZXN0KHRbdC5sZW5ndGgtMV0pJiZ0LnBvcCgpLHR9LCJjbGVhblN0cmluZ0FycmF5IiksczRhPWkoKHQsZSk9PntsZXQgcj1UZ2UodCk7Zm9yKGxldCBzIG9mIHIpcz0iICIucmVwZWF0KGUpK3M7cmV0dXJuIExnZShyKX0sImluZGVudCIpLG40YT1pKCh0LGUpPT57bGV0IHIsYT1UZ2UodCkscz1bXTtmb3IobGV0IG4gb2YgYSlzLnB1c2goZStuKTtyZXR1cm4gcj1MZ2Uocykscn0sImluZGVudFdpdGhQcmVmaXgiKSxvNGE9aSh0PT57bGV0IGUscj1UZ2UodCksYSxzPS9eKFxzKikvLG49L14oXHMqKSQvO2ZvcihsZXQgYyBvZiByKXtsZXQgZD1zLmV4ZWMoYyksZj1kP2RbMV06IiI7KHR5cGVvZiBhPiJ1Inx8Zi5sZW5ndGg8YSkmJiFuLnRlc3QoYykmJihhPWYubGVuZ3RoKX1sZXQgbz1bXSxsPWF8fDA7Zm9yKGxldCBjIG9mIHIpby5wdXNoKGMuc3Vic3RyKGwpKTtyZXR1cm4gZT1MZ2UobyksZX0sIm5vcm1hbGl6ZSIpfSk7dmFyIEhuZT17fTtWZShIbmUse3JlcGxhY2VBbGw6KCk9PmlUdCxzdGFuZGFyZDooKT0+YzRhfSk7dmFyIGlUdCxsNGEsYzRhLHNUdD11KCgpPT57aVR0PWkoKHQsZSxyKT0+dC5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLHIpLCJyZXBsYWNlQWxsIiksbDRhPWkodD0+e2xldCBlPXQuc3BsaXQoYApgKSxyPTEvMDtmb3IobGV0IGEgb2YgZSlpZihhLnRyaW0oKS5sZW5ndGg+MCl7bGV0IHM9YS5tYXRjaCgvXihccyopLyk7cyYmKHI9TWF0aC5taW4ocixzWzFdLmxlbmd0aCkpfXJldHVybiByPT09MS8wfHxyPT09MD90OmUubWFwKGE9PmEubGVuZ3RoPj1yP2Euc2xpY2Uocik6YSkuam9pbihgCmApfSwic3RyaXBJbmRlbnQiKSxjNGE9aSgodCxlKT0+e2xldCByPXQ7cmV0dXJuKCFlfHxlLnN0cmlwSW5kZW50KSYmKHI9bDRhKHIpKSwoIWV8fGUubm9ybWFsaXplTmV3bGluZSkmJihyPXIucmVwbGFjZSgvXHJcbi9nLGAKYCkpLCghZXx8ZS5yZXBsYWNlVGFicykmJihyPWlUdChyLCIJLyIsIiAiKSksKCFlfHxlLnN0cmlwTGVhZGluZ1RyYWlsaW5nRW1wdHlMaW5lcykmJihyPXIucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikucmVwbGFjZSgvXHMqW1xyXG5dJC9nbSwiIikpLCghZXx8ZS5zdHJpcEFsbEVtcHR5TGluZXMpJiYocj1yLnJlcGxhY2UoL15ccypbXHJcbl0vZ20sIiIpKSxyfSwic3RhbmRhcmQiKX0pO3ZhciBEZ2UscW5lLFRiLCRnZT11KCgpPT57RGdlPXtlbmNvZGU6aSh0PT57aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKHQsInV0ZjgiKS50b1N0cmluZygiYmFzZTY0Iik7aWYodHlwZW9mIGJ0b2E8InUiKXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCkscj1BcnJheS5mcm9tKGUsYT0+U3RyaW5nLmZyb21DaGFyQ29kZShhKSkuam9pbigiIik7cmV0dXJuIGJ0b2Eocil9ZWxzZXtsZXQgZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIscj1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT0iIixzPTA7Zm9yKDtzPHIubGVuZ3RoOyl7bGV0IG49cltzKytdLG89czxyLmxlbmd0aD9yW3MrK106MCxsPXM8ci5sZW5ndGg/cltzKytdOjAsYz1uPDwxNnxvPDw4fGw7YSs9ZS5jaGFyQXQoYz4+MTgmNjMpLGErPWUuY2hhckF0KGM+PjEyJjYzKSxhKz1zLTI8ci5sZW5ndGg/ZS5jaGFyQXQoYz4+NiY2Myk6Ij0iLGErPXMtMTxyLmxlbmd0aD9lLmNoYXJBdChjJjYzKToiPSJ9cmV0dXJuIGF9fSwiZW5jb2RlIiksZGVjb2RlOmkodD0+e2xldCBlPXQucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikucGFkRW5kKHQubGVuZ3RoKyg0LXQubGVuZ3RoJTQpJTQsIj0iKTtpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwiYmFzZTY0IikudG9TdHJpbmcoInV0ZjgiKTtpZih0eXBlb2YgYXRvYjwidSIpe2xldCByPWF0b2IoZSksYT1uZXcgVWludDhBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBzPTA7czxyLmxlbmd0aDtzKyspYVtzXT1yLmNoYXJDb2RlQXQocyk7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShhKX1lbHNle2xldCByPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixhPVtdLHM9MDtmb3IoO3M8ZS5sZW5ndGg7KXtsZXQgbj1yLmluZGV4T2YoZS5jaGFyQXQocysrKSksbz1yLmluZGV4T2YoZS5jaGFyQXQocysrKSksbD1yLmluZGV4T2YoZS5jaGFyQXQocysrKSksYz1yLmluZGV4T2YoZS5jaGFyQXQocysrKSksZD1uPDwxOHxvPDwxMnxsPDw2fGM7YS5wdXNoKGQ+PjE2JjI1NSksbCE9PTY0JiZhLnB1c2goZD4+OCYyNTUpLGMhPT02NCYmYS5wdXNoKGQmMjU1KX1yZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KGEpKX19LCJkZWNvZGUiKX0scW5lPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJhc2U2NCIpfWNvbnN0cnVjdG9yKGUscil7c3dpdGNoKHIpe2Nhc2Uic3RyaW5nIjp0aGlzLnJlZlN0cmluZz1lO2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnJlZlN0cmluZz1UYi5kZWNvZGUoZSk7YnJlYWs7Y2FzZSJiYXNlNjR1cmkiOnRoaXMucmVmU3RyaW5nPVRiLmRlY29kZShlKX19Z2V0IHNpbXBsZVN0cmluZygpe3JldHVybiB0aGlzLnJlZlN0cmluZ31nZXQgYmFzZTY0U3RyaW5nKCl7cmV0dXJuIFRiLmVuY29kZSh0aGlzLnJlZlN0cmluZyl9Z2V0IGJhc2U2NFVyaVN0cmluZygpe3JldHVybiBUYi5lbmNvZGVVcmkodGhpcy5yZWZTdHJpbmcpfX0sVGI9e2VuY29kZTppKHQ9PkRnZS5lbmNvZGUodCksImVuY29kZSIpLGVuY29kZVVyaTppKHQ9PkRnZS5lbmNvZGUodCkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89L2csIiIpLCJlbmNvZGVVcmkiKSxkZWNvZGU6aSh0PT5EZ2UuZGVjb2RlKHQpLCJkZWNvZGUiKSxpc0Jhc2U2NDppKHQ9Pi9eKFtBLVphLXowLTkrL117NH0pKihbQS1aYS16MC05Ky9dezN9PXxbQS1aYS16MC05Ky9dezJ9PT0pPyQvLnRlc3QodCksImlzQmFzZTY0Iil9fSk7dmFyIFZuZT17fTtWZShWbmUse2lzQmFzZTY0OigpPT51NGEsaXNVdGY4OigpPT5kNGF9KTt2YXIgZDRhLHU0YSxuVHQ9dSgoKT0+e3ZTKCk7JGdlKCk7ZDRhPWkodD0+e2xldCByPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0KSxhPTA7Zm9yKDthPHIubGVuZ3RoOyl7aWYoclthXT09PTl8fHJbYV09PT0xMHx8clthXT09PTEzfHwzMjw9clthXSYmclthXTw9MTI2KXthKz0xO2NvbnRpbnVlfWlmKDE5NDw9clthXSYmclthXTw9MjIzJiYxMjg8PXJbYSsxXSYmclthKzFdPD0xOTEpe2ErPTI7Y29udGludWV9aWYoclthXT09PTIyNCYmMTYwPD1yW2ErMV0mJnJbYSsxXTw9MTkxJiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTF8fCgyMjU8PXJbYV0mJnJbYV08PTIzNnx8clthXT09PTIzOHx8clthXT09PTIzOSkmJjEyODw9clthKzFdJiZyW2ErMV08PTE5MSYmMTI4PD1yW2ErMl0mJnJbYSsyXTw9MTkxfHxyW2FdPT09MjM3JiYxMjg8PXJbYSsxXSYmclthKzFdPD0xNTkmJjEyODw9clthKzJdJiZyW2ErMl08PTE5MSl7YSs9Mztjb250aW51ZX1pZihyW2FdPT09MjQwJiYxNDQ8PXJbYSsxXSYmclthKzFdPD0xOTEmJjEyODw9clthKzJdJiZyW2ErMl08PTE5MSYmMTI4PD1yW2ErM10mJnJbYSszXTw9MTkxfHwyNDE8PXJbYV0mJnJbYV08PTI0MyYmMTI4PD1yW2ErMV0mJnJbYSsxXTw9MTkxJiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTEmJjEyODw9clthKzNdJiZyW2ErM108PTE5MXx8clthXT09PTI0NCYmMTI4PD1yW2ErMV0mJnJbYSsxXTw9MTQzJiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTEmJjEyODw9clthKzNdJiZyW2ErM108PTE5MSl7YSs9NDtjb250aW51ZX1yZXR1cm4hMX1yZXR1cm4hMH0sImlzVXRmOCIpLHU0YT1pKHQ9PntsZXQgZT0vW15BLVowLTkrXC89XS9pLHI9dC5sZW5ndGg7aWYoIXJ8fHIlNCE9PTB8fGUudGVzdCh0KSlyZXR1cm4hMTtsZXQgYT10LmluZGV4T2YoIj0iKTtyZXR1cm4gYT09PS0xfHxhPT09ci0xfHxhPT09ci0yJiZ0W3ItMV09PT0iPSJ9LCJpc0Jhc2U2NCIpfSk7dmFyIGpuZSxvVHQ9dSgoKT0+e2puZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEb21haW4iKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnByb3RvY29sPXRoaXMuX3Byb3RvY29sUmVnZXgoZSksdGhpcy5wcm90b2NvbHx8KGU9YGh0dHBzOi8vJHtlfWApLHRoaXMubm9kZVBhcnNlZFVybD1uZXcgVVJMKGUpLHRoaXMucG9ydD10aGlzLm5vZGVQYXJzZWRVcmwucG9ydDtsZXQgcj10aGlzLl9kb21haW5SZWdleChlLnJlcGxhY2UodGhpcy5ub2RlUGFyc2VkVXJsLnBhdGhuYW1lLCIiKSk7W3RoaXMubGV2ZWwxLHRoaXMubGV2ZWwyLHRoaXMubGV2ZWwzLHRoaXMubGV2ZWw0LHRoaXMubGV2ZWw1XT1yLHRoaXMuZnVsbE5hbWU9IiI7Zm9yKGxldCBhIG9mIHIpdGhpcy5mdWxsTmFtZT09PSIiP3RoaXMuZnVsbE5hbWU9YTp0aGlzLmZ1bGxOYW1lPWErIi4iK3RoaXMuZnVsbE5hbWU7dGhpcy56b25lTmFtZT1bdGhpcy5sZXZlbDIsdGhpcy5sZXZlbDFdLmZpbHRlcihCb29sZWFuKS5qb2luKCIuIiksdGhpcy50b3BMZXZlbD10aGlzLmxldmVsMSx0aGlzLmRvbWFpbk5hbWU9dGhpcy5sZXZlbDIsdGhpcy5zdWJEb21haW49dGhpcy5sZXZlbDN9X2RvbWFpblJlZ2V4KGUpe2xldCBhPS8oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfSQvLmV4ZWMoZSk7aWYoIWEpcmV0dXJuW107bGV0IHM9Wy4uLmFdLnJldmVyc2UoKTtyZXR1cm4gcy5wb3AoKSxzLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gbyE9PSIifSl9X3Byb3RvY29sUmVnZXgoZSl7bGV0IGE9L14oW2EtekEtWjAtOV0qKTpcL1wvLy5leGVjKGUpO2lmKGEpcmV0dXJuIGFbMV19X3BvcnRSZWdleChlKXtsZXQgYT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYoYSlyZXR1cm4gYVsxXX19fSk7dmFyIFVuZSxwNGEsbFR0LGNUdD11KCgpPT57VW5lPWNsYXNze3N0YXRpY3tpKHRoaXMsIkdpdFJlcG8iKX1jb25zdHJ1Y3RvcihlLHIpe2xldCBhPXA0YShlKTtpZighYSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ2l0IHJlcG9zaXRvcnkgVVJMOiAke2V9YCk7dGhpcy5ob3N0PWFbMV0sdGhpcy51c2VyPWFbMl0sdGhpcy5yZXBvPWFbM10sdGhpcy5hY2Nlc3NUb2tlbj1yLHRoaXMuc3NoVXJsPWxUdCh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJzc2giKSx0aGlzLmh0dHBzVXJsPWxUdCh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJodHRwcyIpfX0scDRhPWkoZnVuY3Rpb24odCl7cmV0dXJuLyhbYS16QS1aMC05XC1fXC5dKikoPzpcL3xcOikoW2EtekEtWjAtOVwtX1wuXSopKD86XC8pKFthLXpBLVowLTlcLV9cLl0qKSg/OlwuZ2l0KS8uZXhlYyh0KX0sImdpdFJlZ2V4IiksbFR0PWkoZnVuY3Rpb24odCxlLHIsYT0iIixzKXtzd2l0Y2goYSE9PSIiJiYoYT1hKyJAIikscyl7Y2FzZSJodHRwcyI6cmV0dXJuImh0dHBzOi8vIithK3QrIi8iK2UrIi8iK3IrIi5naXQiO2Nhc2Uic3NoIjpyZXR1cm4iZ2l0QCIrdCsiOiIrZSsiLyIrcisiLmdpdCJ9fSwiZ2l0TGluayIpfSk7dmFyIEJzPXt9O1ZlKEJzLHtCYXNlNjQ6KCk9PnFuZSxEb21haW46KCk9PmpuZSxHaXRSZXBvOigpPT5VbmUsYmFzZTY0OigpPT5UYixjcmVhdGU6KCk9PlJuZSxkb2NrZXI6KCk9PkZuZSxpbmRlbnQ6KCk9PkJuZSxub3JtYWxpemU6KCk9PkhuZSx0eXBlOigpPT5WbmV9KTt2YXIgeVM9dSgoKT0+e3RUdCgpO3JUdCgpO2FUdCgpO3NUdCgpO25UdCgpOyRnZSgpO29UdCgpO2NUdCgpfSk7dmFyIEFnZT1OdCgoR0FpLGRUdCk9PnsidXNlIHN0cmljdCI7ZFR0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT17fSksdHlwZW9mIGU9PSJmdW5jdGlvbiImJihlPXtjbXA6ZX0pO3ZhciByPXR5cGVvZiBlLmN5Y2xlcz09ImJvb2xlYW4iP2UuY3ljbGVzOiExLGE9ZS5jbXAmJihmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIGZ1bmN0aW9uKGwsYyl7dmFyIGQ9e2tleTpsLHZhbHVlOm9bbF19LGY9e2tleTpjLHZhbHVlOm9bY119O3JldHVybiBuKGQsZil9fX0pKGUuY21wKSxzPVtdO3JldHVybiBpKChmdW5jdGlvbiBuKG8pe2lmKG8mJm8udG9KU09OJiZ0eXBlb2Ygby50b0pTT049PSJmdW5jdGlvbiImJihvPW8udG9KU09OKCkpLG8hPT12b2lkIDApe2lmKHR5cGVvZiBvPT0ibnVtYmVyIilyZXR1cm4gaXNGaW5pdGUobyk/IiIrbzoibnVsbCI7aWYodHlwZW9mIG8hPSJvYmplY3QiKXJldHVybiBKU09OLnN0cmluZ2lmeShvKTt2YXIgbCxjO2lmKEFycmF5LmlzQXJyYXkobykpe2ZvcihjPSJbIixsPTA7bDxvLmxlbmd0aDtsKyspbCYmKGMrPSIsIiksYys9bihvW2xdKXx8Im51bGwiO3JldHVybiBjKyJdIn1pZihvPT09bnVsbClyZXR1cm4ibnVsbCI7aWYocy5pbmRleE9mKG8pIT09LTEpe2lmKHIpcmV0dXJuIEpTT04uc3RyaW5naWZ5KCJfX2N5Y2xlX18iKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09OIil9dmFyIGQ9cy5wdXNoKG8pLTEsZj1PYmplY3Qua2V5cyhvKS5zb3J0KGEmJmEobykpO2ZvcihjPSIiLGw9MDtsPGYubGVuZ3RoO2wrKyl7dmFyIHA9ZltsXSxoPW4ob1twXSk7aCYmKGMmJihjKz0iLCIpLGMrPUpTT04uc3RyaW5naWZ5KHApKyI6IitoKX1yZXR1cm4gcy5zcGxpY2UoZCwxKSwieyIrYysifSJ9fSksInN0cmluZ2lmeSIpKHQpfX0pO3ZhciB1VHQsV25lLEVnZT11KCgpPT57eFMoKTt5UygpO3VUdD1HYShBZ2UoKSwxKSxXbmU9dVR0LmRlZmF1bHR9KTtmdW5jdGlvbiBoNGEodCl7bGV0IGU9cFR0KCk7cmV0dXJuIGU/ZS5mcm9tKHQpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpfWZ1bmN0aW9uIG00YSh0KXtsZXQgZT1wVHQoKTtpZihlKXtsZXQgcj1lLmZyb20odCwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KHIuYnVmZmVyLHIuYnl0ZU9mZnNldCxyLmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IodCkpLm1hcChyPT5yLmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBQZ2UodCxlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxHbmUsZSl9ZnVuY3Rpb24gTmdlKHQpe3JldHVybiBKU09OLnBhcnNlKHQsZlR0KX1mdW5jdGlvbiBnNGEodCl7cmV0dXJuIG1UdCh0KSYmdC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZJZ2UodC5kYXRhKX1mdW5jdGlvbiBiNGEodCl7cmV0dXJuIG1UdCh0KSYmdC50eXBlPT09IkJ1ZmZlciImJihoVHQodC5kYXRhKXx8SWdlKHQuZGF0YSkpfHx0IGluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBoVHQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gSWdlKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gbVR0KHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfXZhciBwVHQsR25lLGZUdCxnVHQ9dSgoKT0+e0VnZSgpO3BUdD1pKCgpPT5nbG9iYWxUaGlzLkJ1ZmZlciwiZ2V0Tm9kZUJ1ZmZlciIpO2koaDRhLCJiYXNlNjRFbmNvZGUiKTtpKG00YSwiYmFzZTY0RGVjb2RlIik7aShQZ2UsInN0cmluZ2lmeSIpO2koTmdlLCJwYXJzZSIpO0duZT1pKCh0LGUpPT57aWYoYjRhKGUpKXtsZXQgcjtpZigiZGF0YSJpbiBlJiZoVHQoZS5kYXRhKSlyPW5ldyBVaW50OEFycmF5KGUuZGF0YSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSlyPWU7ZWxzZSByZXR1cm4gZTtyZXR1cm57dHlwZToiRW5jb2RlZEJ1ZmZlciIsZGF0YToiYmFzZTY0OiIraDRhKHIpfX1yZXR1cm4gZX0sInJlcGxhY2VyIiksZlR0PWkoKHQsZSk9PntpZihnNGEoZSkmJklnZShlLmRhdGEpJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgcj1lLmRhdGEuc2xpY2UoNyk7cmV0dXJuIG00YShyKX1yZXR1cm4gZX0sInJldml2ZXIiKTtpKGc0YSwiaXNFbmNvZGVkQnVmZmVyIik7aShiNGEsImlzQnVmZmVyTGlrZSIpO2koaFR0LCJpc0FycmF5Iik7aShJZ2UsImlzU3RyaW5nIik7aShtVHQsImlzT2JqZWN0Iil9KTt2YXIgSHM9e307VmUoSHMse1NtYXJ0anNvbjooKT0+UmdlLGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+QzRhLGRlZXBFcXVhbE9iamVjdHM6KCk9PmJUdCxmb2xkRGVjOigpPT5NNGEscGFyc2U6KCk9PlluZSxwYXJzZUJhc2U2NDooKT0+UzRhLHBhcnNlSnNvbkw6KCk9Pk9nZSxzdGFibGVPbmVXYXlTdHJpbmdpZnk6KCk9Pnk0YSxzdHJpbmdpZnk6KCk9PmFoLHN0cmluZ2lmeUJhc2U2NDooKT0+azRhLHN0cmluZ2lmeUpzb25MOigpPT52NGEsc3RyaW5naWZ5UHJldHR5OigpPT53NGF9KTt2YXIgWW5lLE9nZSx2NGEseTRhLGFoLHc0YSxrNGEsUzRhLFJnZSxNNGEsYlR0LEM0YSxMYj11KCgpPT57RWdlKCk7Z1R0KCk7WW5lPU5nZSxPZ2U9aSh0PT50LnNwbGl0KGAKYCkucmVkdWNlKChhLHMpPT57bGV0IG49cy50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjAmJmEucHVzaChZbmUobikpLGF9LFtdKSwicGFyc2VKc29uTCIpLHY0YT1pKHQ9PnQubWFwKGU9PmFoKGUpKS5qb2luKGAKYCksInN0cmluZ2lmeUpzb25MIikseTRhPWkoKHQsZSxyPXt9KT0+e2xldCBhPW5ldyBXZWFrU2V0LHM9aShsPT57aWYobD09PW51bGx8fHR5cGVvZiBsIT0ib2JqZWN0IilyZXR1cm4gbDtsZXQgYz1HbmUoIiIsbCk7aWYoYyYmYy50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgYy5kYXRhPT0ic3RyaW5nIilyZXR1cm4gYztpZihhLmhhcyhsKSlyZXR1cm4iX19jeWNsZV9fIjtpZihhLmFkZChsKSxBcnJheS5pc0FycmF5KGwpKXJldHVybiBsLm1hcChmPT5zKGYpKTtsZXQgZD17fTtmb3IobGV0IGYgb2YgT2JqZWN0LmtleXMobCkpdHJ5e2RbZl09cyhsW2ZdKX1jYXRjaHtkW2ZdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBkfSwic2FuaXRpemUiKSxuPXModCksbz17Li4ucixjeWNsZXM6ITB9O2lmKGUmJiFvLmNtcCl7bGV0IGw9bmV3IE1hcDtlLmZvckVhY2goKGMsZCk9Pmwuc2V0KGMsZCkpLG8uY21wPShjLGQpPT57bGV0IGY9bC5oYXMoYy5rZXkpP2wuZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscD1sLmhhcyhkLmtleSk/bC5nZXQoZC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gZiE9PXA/Zi1wOmMua2V5PGQua2V5Py0xOmMua2V5PmQua2V5PzE6MH19cmV0dXJuIFduZShuLG8pfSwic3RhYmxlT25lV2F5U3RyaW5naWZ5IiksYWg9aSgodCxlLHI9e30pPT57bGV0IGE9UGdlKHQpO3Q9SlNPTi5wYXJzZShhKTtsZXQgcz17Li4ucn07aWYoZSYmIXMuY21wKXtsZXQgbz1uZXcgTWFwO2UuZm9yRWFjaCgobCxjKT0+by5zZXQobCxjKSkscy5jbXA9KGwsYyk9PntsZXQgZD1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxmPW8uaGFzKGMua2V5KT9vLmdldChjLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBkIT09Zj9kLWY6bC5rZXk8Yy5rZXk/LTE6bC5rZXk+Yy5rZXk/MTowfX1yZXR1cm4gV25lKHQscyl9LCJzdHJpbmdpZnkiKSx3NGE9aSh0PT57bGV0IGU9YWgodCkscj1KU09OLnBhcnNlKGUpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LCJzdHJpbmdpZnlQcmV0dHkiKSxrNGE9aSgoLi4udCk9PntsZXQgZT1haCguLi50KTtyZXR1cm4gQnMuYmFzZTY0LmVuY29kZVVyaShlKX0sInN0cmluZ2lmeUJhc2U2NCIpLFM0YT1pKHQ9PntsZXQgZT1Ccy5iYXNlNjQsYT0oZS5kZWNvZGVVcml8fGUuZGVjb2RlKSh0KTtyZXR1cm4gWW5lKGEpfSwicGFyc2VCYXNlNjQiKSxSZ2U9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTbWFydGpzb24iKX1zdGF0aWMgZW5mb2xkRnJvbU9iamVjdChlKXtsZXQgcj1uZXcgdGhpcyxhPXIuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IHMgaW4gZSlhLmluZGV4T2YocykhPT0tMSYmKHJbc109ZVtzXSk7cmV0dXJuIHJ9c3RhdGljIGVuZm9sZEZyb21Kc29uKGUpe2xldCByPVluZShlKTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KHIpfXNhdmVhYmxlUHJvcGVydGllcz1bXTtmb2xkVG9PYmplY3QoKXtsZXQgZT1uZXcgU2V0O3JldHVybiBlLmFkZCh0aGlzKSx0aGlzLmZvbGRUb09iamVjdEludGVybmFsKGUpfWZvbGRUb09iamVjdEludGVybmFsKGUpe2xldCByPXt9LGE9aShuPT57aWYobiBpbnN0YW5jZW9mIHQpe2lmKGUuaGFzKG4pKXRocm93IG5ldyBFcnJvcigiY3ljbGUgZGV0ZWN0ZWQiKTtyZXR1cm4gZS5hZGQobiksbi5mb2xkVG9PYmplY3RJbnRlcm5hbChlKX1yZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uLm1hcChvPT5hKG8pKTpzdHJ1Y3R1cmVkQ2xvbmUobil9LCJmb2xkVmFsdWUiKSxzPXRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IG4gb2Ygcyl7bGV0IG89dGhpc1tuXTtyW25dPWEobyl9cmV0dXJuIHJ9Zm9sZFRvSnNvbigpe2xldCBlPXRoaXMuZm9sZFRvT2JqZWN0KCk7cmV0dXJuIGFoKGUpfX0sTTRhPWkoKCk9Pih0LGUpPT57bGV0IHI9U3RyaW5nKGUubmFtZSk7ZS5hZGRJbml0aWFsaXplcihmdW5jdGlvbigpe3RoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHwodGhpcy5zYXZlYWJsZVByb3BlcnRpZXM9W10pLHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLmluY2x1ZGVzKHIpfHx0aGlzLnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKHIpfSl9LCJmb2xkRGVjIiksYlR0PWkoKHQsZSk9PntsZXQgcj1haCh0KSxhPWFoKGUpO3JldHVybiByPT09YX0sImRlZXBFcXVhbE9iamVjdHMiKSxDNGE9aSgodCxlKT0+e2xldCByPU9nZSh0KSxhPU9nZShlKTtyZXR1cm4gYlR0KHIsYSl9LCJkZWVwRXF1YWxKc29uTFN0cmluZ3MiKX0pO3ZhciBrUz17fTtWZShrUyx7ZGVsZXRlREI6KCk9PnpUdCxvcGVuREI6KCk9PkNUdCx1bndyYXA6KCk9PndTLHdyYXA6KCk9Pm8wfSk7ZnVuY3Rpb24gejRhKCl7cmV0dXJuIHhUdHx8KHhUdD1bSURCRGF0YWJhc2UsSURCT2JqZWN0U3RvcmUsSURCSW5kZXgsSURCQ3Vyc29yLElEQlRyYW5zYWN0aW9uXSl9ZnVuY3Rpb24gXzRhKCl7cmV0dXJuIHZUdHx8KHZUdD1bSURCQ3Vyc29yLnByb3RvdHlwZS5hZHZhbmNlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWUsSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZVByaW1hcnlLZXldKX1mdW5jdGlvbiBUNGEodCl7bGV0IGU9bmV3IFByb21pc2UoKHIsYSk9PntsZXQgcz1pKCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWNjZXNzIixuKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixvKX0sInVubGlzdGVuIiksbj1pKCgpPT57cihvMCh0LnJlc3VsdCkpLHMoKX0sInN1Y2Nlc3MiKSxvPWkoKCk9PnthKHQuZXJyb3IpLHMoKX0sImVycm9yIik7dC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIixuKSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixvKX0pO3JldHVybiBLbmUuc2V0KGUsdCksZX1mdW5jdGlvbiBMNGEodCl7aWYoQmdlLmhhcyh0KSlyZXR1cm47bGV0IGU9bmV3IFByb21pc2UoKHIsYSk9PntsZXQgcz1pKCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsbiksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbyksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9LCJ1bmxpc3RlbiIpLG49aSgoKT0+e3IoKSxzKCl9LCJjb21wbGV0ZSIpLG89aSgoKT0+e2EodC5lcnJvcnx8bmV3IERPTUV4Y2VwdGlvbigiQWJvcnRFcnJvciIsIkFib3J0RXJyb3IiKSkscygpfSwiZXJyb3IiKTt0LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixuKSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixvKSx0LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pO0JnZS5zZXQodCxlKX1mdW5jdGlvbiB5VHQodCl7cWdlPXQocWdlKX1mdW5jdGlvbiBENGEodCl7cmV0dXJuIF80YSgpLmluY2x1ZGVzKHQpP2Z1bmN0aW9uKC4uLmUpe3JldHVybiB0LmFwcGx5KHdTKHRoaXMpLGUpLG8wKHRoaXMucmVxdWVzdCl9OmZ1bmN0aW9uKC4uLmUpe3JldHVybiBvMCh0LmFwcGx5KHdTKHRoaXMpLGUpKX19ZnVuY3Rpb24gJDRhKHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj9ENGEodCk6KHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmTDRhKHQpLEZnZSh0LHo0YSgpKT9uZXcgUHJveHkodCxxZ2UpOnQpfWZ1bmN0aW9uIG8wKHQpe2lmKHQgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KXJldHVybiBUNGEodCk7aWYoSGdlLmhhcyh0KSlyZXR1cm4gSGdlLmdldCh0KTtsZXQgZT0kNGEodCk7cmV0dXJuIGUhPT10JiYoSGdlLnNldCh0LGUpLEtuZS5zZXQoZSx0KSksZX1mdW5jdGlvbiBDVHQodCxlLHtibG9ja2VkOnIsdXBncmFkZTphLGJsb2NraW5nOnMsdGVybWluYXRlZDpufT17fSl7bGV0IG89aW5kZXhlZERCLm9wZW4odCxlKSxsPW8wKG8pO3JldHVybiBhJiZvLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLGM9PnthKG8wKG8ucmVzdWx0KSxjLm9sZFZlcnNpb24sYy5uZXdWZXJzaW9uLG8wKG8udHJhbnNhY3Rpb24pLGMpfSksciYmby5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixjPT5yKGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sYykpLGwudGhlbihjPT57biYmYy5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9Pm4oKSkscyYmYy5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIixkPT5zKGQub2xkVmVyc2lvbixkLm5ld1ZlcnNpb24sZCkpfSkuY2F0Y2goKCk9Pnt9KSxsfWZ1bmN0aW9uIHpUdCh0LHtibG9ja2VkOmV9PXt9KXtsZXQgcj1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UodCk7cmV0dXJuIGUmJnIuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsYT0+ZShhLm9sZFZlcnNpb24sYSkpLG8wKHIpLnRoZW4oKCk9Pnt9KX1mdW5jdGlvbiB3VHQodCxlKXtpZighKHQgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSYmIShlIGluIHQpJiZ0eXBlb2YgZT09InN0cmluZyIpKXJldHVybjtpZihWZ2UuZ2V0KGUpKXJldHVybiBWZ2UuZ2V0KGUpO2xldCByPWUucmVwbGFjZSgvRnJvbUluZGV4JC8sIiIpLGE9ZSE9PXIscz1FNGEuaW5jbHVkZXMocik7aWYoIShyIGluKGE/SURCSW5kZXg6SURCT2JqZWN0U3RvcmUpLnByb3RvdHlwZSl8fCEoc3x8QTRhLmluY2x1ZGVzKHIpKSlyZXR1cm47bGV0IG49aShhc3luYyBmdW5jdGlvbihvLC4uLmwpe2xldCBjPXRoaXMudHJhbnNhY3Rpb24obyxzPyJyZWFkd3JpdGUiOiJyZWFkb25seSIpLGQ9Yy5zdG9yZTtyZXR1cm4gYSYmKGQ9ZC5pbmRleChsLnNoaWZ0KCkpKSwoYXdhaXQgUHJvbWlzZS5hbGwoW2Rbcl0oLi4ubCkscyYmYy5kb25lXSkpWzBdfSwibWV0aG9kIik7cmV0dXJuIFZnZS5zZXQoZSxuKSxufWFzeW5jIGZ1bmN0aW9uKk40YSguLi50KXtsZXQgZT10aGlzO2lmKGUgaW5zdGFuY2VvZiBJREJDdXJzb3J8fChlPWF3YWl0IGUub3BlbkN1cnNvciguLi50KSksIWUpcmV0dXJuO2U9ZTtsZXQgcj1uZXcgUHJveHkoZSxQNGEpO2ZvcihTVHQuc2V0KHIsZSksS25lLnNldChyLHdTKGUpKTtlOyl5aWVsZCByLGU9YXdhaXQoamdlLmdldChyKXx8ZS5jb250aW51ZSgpKSxqZ2UuZGVsZXRlKHIpfWZ1bmN0aW9uIE1UdCh0LGUpe3JldHVybiBlPT09U3ltYm9sLmFzeW5jSXRlcmF0b3ImJkZnZSh0LFtJREJJbmRleCxJREJPYmplY3RTdG9yZSxJREJDdXJzb3JdKXx8ZT09PSJpdGVyYXRlIiYmRmdlKHQsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlXSl9dmFyIEZnZSx4VHQsdlR0LEJnZSxIZ2UsS25lLHFnZSx3UyxBNGEsRTRhLFZnZSxJNGEsa1R0LGpnZSxTVHQsUDRhLF9UdD11KCgpPT57RmdlPWkoKHQsZSk9PmUuc29tZShyPT50IGluc3RhbmNlb2YgciksImluc3RhbmNlT2ZBbnkiKTtpKHo0YSwiZ2V0SWRiUHJveHlhYmxlVHlwZXMiKTtpKF80YSwiZ2V0Q3Vyc29yQWR2YW5jZU1ldGhvZHMiKTtCZ2U9bmV3IFdlYWtNYXAsSGdlPW5ldyBXZWFrTWFwLEtuZT1uZXcgV2Vha01hcDtpKFQ0YSwicHJvbWlzaWZ5UmVxdWVzdCIpO2koTDRhLCJjYWNoZURvbmVQcm9taXNlRm9yVHJhbnNhY3Rpb24iKTtxZ2U9e2dldCh0LGUscil7aWYodCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZihlPT09ImRvbmUiKXJldHVybiBCZ2UuZ2V0KHQpO2lmKGU9PT0ic3RvcmUiKXJldHVybiByLm9iamVjdFN0b3JlTmFtZXNbMV0/dm9pZCAwOnIub2JqZWN0U3RvcmUoci5vYmplY3RTdG9yZU5hbWVzWzBdKX1yZXR1cm4gbzAodFtlXSl9LHNldCh0LGUscil7cmV0dXJuIHRbZV09ciwhMH0saGFzKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmKGU9PT0iZG9uZSJ8fGU9PT0ic3RvcmUiKT8hMDplIGluIHR9fTtpKHlUdCwicmVwbGFjZVRyYXBzIik7aShENGEsIndyYXBGdW5jdGlvbiIpO2koJDRhLCJ0cmFuc2Zvcm1DYWNoYWJsZVZhbHVlIik7aShvMCwid3JhcCIpO3dTPWkodD0+S25lLmdldCh0KSwidW53cmFwIik7aShDVHQsIm9wZW5EQiIpO2koelR0LCJkZWxldGVEQiIpO0E0YT1bImdldCIsImdldEtleSIsImdldEFsbCIsImdldEFsbEtleXMiLCJjb3VudCJdLEU0YT1bInB1dCIsImFkZCIsImRlbGV0ZSIsImNsZWFyIl0sVmdlPW5ldyBNYXA7aSh3VHQsImdldE1ldGhvZCIpLHlUdCh0PT4oey4uLnQsZ2V0OmkoKGUscixhKT0+d1R0KGUscil8fHQuZ2V0KGUscixhKSwiZ2V0IiksaGFzOmkoKGUscik9PiEhd1R0KGUscil8fHQuaGFzKGUsciksImhhcyIpfSkpO0k0YT1bImNvbnRpbnVlIiwiY29udGludWVQcmltYXJ5S2V5IiwiYWR2YW5jZSJdLGtUdD17fSxqZ2U9bmV3IFdlYWtNYXAsU1R0PW5ldyBXZWFrTWFwLFA0YT17Z2V0KHQsZSl7aWYoIUk0YS5pbmNsdWRlcyhlKSlyZXR1cm4gdFtlXTtsZXQgcj1rVHRbZV07cmV0dXJuIHJ8fChyPWtUdFtlXT1mdW5jdGlvbiguLi5hKXtqZ2Uuc2V0KHRoaXMsU1R0LmdldCh0aGlzKVtlXSguLi5hKSl9KSxyfX07aShONGEsIml0ZXJhdGUiKTtpKE1UdCwiaXNJdGVyYXRvclByb3AiKSx5VHQodD0+KHsuLi50LGdldChlLHIsYSl7cmV0dXJuIE1UdChlLHIpP040YTp0LmdldChlLHIsYSl9LGhhcyhlLHIpe3JldHVybiBNVHQoZSxyKXx8dC5oYXMoZSxyKX19KSl9KTt2YXIgVWdlPXUoKCk9PntNYigpO3hTKCk7TGIoKTtHbigpO1pjKCk7cWYoKTtfVHQoKX0pO3ZhciBTUyxXZ2U9dSgoKT0+e1VnZSgpO1NTPWNsYXNze3N0YXRpY3tpKHRoaXMsIldlYlN0b3JlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5pbml0Q2FsbGVkPSExLHRoaXMucmVhZHlEZWZlcnJlZD14dC5kZWZlcigpLHRoaXMub3B0aW9ucz1lfWFzeW5jIGluaXQoKXtpZih0aGlzLmluaXRDYWxsZWQpe2F3YWl0IHRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlO3JldHVybn10aGlzLmluaXRDYWxsZWQ9ITA7bGV0IGU9bmV3IEMyLlNtYXJ0ZW52O2lmKCFlLmlzQnJvd3NlciYmIWdsb2JhbFRoaXMuaW5kZXhlZERCJiYoY29uc29sZS5sb2coImhleSIpLGNvbnNvbGUubG9nKGdsb2JhbFRoaXMuaW5kZXhlZERCKSxhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYi9hdXRvIiksIWdsb2JhbFRoaXMuaW5kZXhlZERCKSl7bGV0IHI9YXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIiKTtnbG9iYWxUaGlzLmluZGV4ZWREQj1uZXcgci5JREJGYWN0b3J5fXRoaXMuZGI9YXdhaXQga1Mub3BlbkRCKHRoaXMub3B0aW9ucy5kYk5hbWUsMSx7dXBncmFkZTppKHI9PntyLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfSwidXBncmFkZSIpfSksdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1hc3luYyBnZXQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2hlY2soZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLCEhYXdhaXQgdGhpcy5nZXQoZSl9YXN5bmMgc2V0KGUscil7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIucHV0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUscixlKX1hc3luYyBkZWxldGUoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZGVsZXRlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2xlYXIoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5jbGVhcih0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX1hc3luYyBrZXlzKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0QWxsS2V5cyh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX19fSk7dmFyIEdnZSxMVHQ9dSgoKT0+e1dnZSgpO1VnZSgpO0dnZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZHJlcXVlc3RDYWNoZSIpfWNvbnN0cnVjdG9yKGU9ImRlZmF1bHQiKXt0aGlzLndlYnN0b3JlPW5ldyBTUyh7ZGJOYW1lOiJ0clN0b3JlIixzdG9yZU5hbWU6YHRyU3RvcmUtJHtlfWB9KX1idWlsZEtleShlKXtyZXR1cm4gSHMuc3RyaW5naWZ5KHttZXRob2Q6ZS5tZXRob2QscmVxdWVzdDplLnJlcXVlc3R9KX1hc3luYyBzZXRCeVJlcXVlc3QoZSl7aWYoIWUucmVzcG9uc2UpdGhyb3cgbmV3IEVycm9yKCJZb3UgY2Fubm90IHN0b3JlIHJlcXVlc3RzIHdpdGhvdXQgYSByZXNwb25zZSBwcmVzZW50Iik7YXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQodGhpcy5idWlsZEtleShlKSxlKX1hc3luYyBnZXRCeVJlcXVlc3QoZSl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KHRoaXMuYnVpbGRLZXkoZSkpfX19KTt2YXIgejI9e307VmUoejIse1R5cGVkcmVxdWVzdENhY2hlOigpPT5HZ2UsV2ViU3RvcmU6KCk9PlNTfSk7dmFyIFpuZT11KCgpPT57TFR0KCk7V2dlKCl9KTt2YXIgTVM9dSgoKT0+e05kKCk7eFMoKTtMYigpO0duKCk7Wm5lKCl9KTt2YXIgRGIsWG5lPXUoKCk9PntNUygpO0RiPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlU3RvcmUiKX1jb25zdHJ1Y3RvcihlPSJ3ZWJyZXF1ZXN0LXY0IixyPSJjYWNoZSIpe3RoaXMud2Vic3RvcmU9bmV3IHoyLldlYlN0b3JlKHtkYk5hbWU6ZSxzdG9yZU5hbWU6cn0pLHRoaXMuaW5pdFByb21pc2U9dGhpcy5pbml0KCl9YXN5bmMgaW5pdCgpe31nZW5lcmF0ZUNhY2hlS2V5KGUpe2xldCByPWUudXJsLGE9ZS5tZXRob2Q7cmV0dXJuIGE9PT0iR0VUIj9yOmAke2F9OiR7cn1gfWFzeW5jIHNldChlLHIpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQoZSxyKX1hc3luYyBnZXQoZSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KGUpfHxudWxsfWNhdGNoe3JldHVybiBudWxsfX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5jaGVjayhlKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmRlbGV0ZShlKX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5jbGVhcigpfXJlc3BvbnNlRnJvbUNhY2hlRW50cnkoZSl7bGV0IHI9bmV3IEhlYWRlcnMoZS5oZWFkZXJzKTtyZXR1cm4gbmV3IFJlc3BvbnNlKGUucmVzcG9uc2Use3N0YXR1czplLnN0YXR1cyxzdGF0dXNUZXh0OmUuc3RhdHVzVGV4dCxoZWFkZXJzOnJ9KX1hc3luYyBjYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUscixhKXtsZXQgcz1yLmNsb25lKCksbj1hd2FpdCBzLmFycmF5QnVmZmVyKCksbz17fTtyZXR1cm4gcy5oZWFkZXJzLmZvckVhY2goKGwsYyk9PntvW2NdPWx9KSx7cmVzcG9uc2U6bixoZWFkZXJzOm8sdGltZXN0YW1wOkRhdGUubm93KCksZXRhZzphPy5ldGFnfHxzLmhlYWRlcnMuZ2V0KCJldGFnIil8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6YT8ubGFzdE1vZGlmaWVkfHxzLmhlYWRlcnMuZ2V0KCJsYXN0LW1vZGlmaWVkIil8fHZvaWQgMCxtYXhBZ2U6YT8ubWF4QWdlLHVybDplLHN0YXR1czpzLnN0YXR1cyxzdGF0dXNUZXh0OnMuc3RhdHVzVGV4dH19YXN5bmMgcHJ1bmVFeHBpcmVkKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdFByb21pc2UsMH19fSk7ZnVuY3Rpb24gTzRhKHQpe2xldCBlPXttYXhBZ2U6MCxpbW11dGFibGU6ITEsbm9DYWNoZTohMSxub1N0b3JlOiExLG11c3RSZXZhbGlkYXRlOiExfTtpZighdClyZXR1cm4gZTtsZXQgcj10LnRvTG93ZXJDYXNlKCkuc3BsaXQoIiwiKS5tYXAoYT0+YS50cmltKCkpO2ZvcihsZXQgYSBvZiByKWlmKGE9PT0ibm8tY2FjaGUiKWUubm9DYWNoZT0hMDtlbHNlIGlmKGE9PT0ibm8tc3RvcmUiKWUubm9TdG9yZT0hMDtlbHNlIGlmKGE9PT0iaW1tdXRhYmxlIillLmltbXV0YWJsZT0hMDtlbHNlIGlmKGE9PT0ibXVzdC1yZXZhbGlkYXRlIillLm11c3RSZXZhbGlkYXRlPSEwO2Vsc2UgaWYoYS5zdGFydHNXaXRoKCJtYXgtYWdlPSIpKXtsZXQgcz1wYXJzZUludChhLnNwbGl0KCI9IilbMV0sMTApO2lzTmFOKHMpfHwoZS5tYXhBZ2U9cyoxZTMpfXJldHVybiBlfWZ1bmN0aW9uIFI0YSh0KXtpZih0KXRyeXtyZXR1cm4gbmV3IERhdGUodCkuZ2V0VGltZSgpfWNhdGNoe3JldHVybn19ZnVuY3Rpb24gbDAodCl7bGV0IGU9dC5nZXQoImNhY2hlLWNvbnRyb2wiKSxyPXQuZ2V0KCJleHBpcmVzIiksYT10LmdldCgiZXRhZyIpLHM9dC5nZXQoImxhc3QtbW9kaWZpZWQiKSxuPU80YShlKTtpZihuLm1heEFnZT09PTAmJnIpe2xldCBvPVI0YShyKTtvJiYobi5tYXhBZ2U9TWF0aC5tYXgoMCxvLURhdGUubm93KCkpKX1yZXR1cm57bWF4QWdlOm4ubWF4QWdlfHwwLGV0YWc6YXx8dm9pZCAwLGxhc3RNb2RpZmllZDpzfHx2b2lkIDAsaW1tdXRhYmxlOm4uaW1tdXRhYmxlfHwhMSxub0NhY2hlOm4ubm9DYWNoZXx8ITEsbm9TdG9yZTpuLm5vU3RvcmV8fCExLG11c3RSZXZhbGlkYXRlOm4ubXVzdFJldmFsaWRhdGV8fCExfX1mdW5jdGlvbiBDUyh0LGUpe2lmKGUubm9TdG9yZSlyZXR1cm4hMTtpZihlLmltbXV0YWJsZSlyZXR1cm4hMDtsZXQgcj1EYXRlLm5vdygpLXQudGltZXN0YW1wLGE9dC5tYXhBZ2V8fGUubWF4QWdlfHwwO3JldHVybiBhPT09MD8hMTpyPGF9ZnVuY3Rpb24gelModCl7cmV0dXJuIHQubm9DYWNoZXx8dC5tdXN0UmV2YWxpZGF0ZX1mdW5jdGlvbiBKbmUodCl7bGV0IGU9e307cmV0dXJuIHQuZXRhZyYmKGVbImlmLW5vbmUtbWF0Y2giXT10LmV0YWcpLHQubGFzdE1vZGlmaWVkJiYoZVsiaWYtbW9kaWZpZWQtc2luY2UiXT10Lmxhc3RNb2RpZmllZCksZX1mdW5jdGlvbiBlb2UodCl7bGV0IGU9e307cmV0dXJuIHQuZm9yRWFjaCgocixhKT0+e2VbYV09cn0pLGV9ZnVuY3Rpb24gRFR0KHQpe2xldCBlPW5ldyBIZWFkZXJzO3JldHVybiBPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChbcixhXSk9PntlLnNldChyLGEpfSksZX12YXIgdG9lPXUoKCk9PntpKE80YSwicGFyc2VDYWNoZUNvbnRyb2wiKTtpKFI0YSwicGFyc2VFeHBpcmVzIik7aShsMCwiZXh0cmFjdENhY2hlTWV0YWRhdGEiKTtpKENTLCJpc0ZyZXNoIik7aSh6UywicmVxdWlyZXNSZXZhbGlkYXRpb24iKTtpKEpuZSwiY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzIik7aShlb2UsImhlYWRlcnNUb09iamVjdCIpO2koRFR0LCJvYmplY3RUb0hlYWRlcnMiKX0pO2Z1bmN0aW9uICRUdCh0KXtzd2l0Y2godCl7Y2FzZSJuZXR3b3JrLWZpcnN0IjpyZXR1cm4gbmV3IHJvZTtjYXNlImNhY2hlLWZpcnN0IjpyZXR1cm4gbmV3IFlnZTtjYXNlInN0YWxlLXdoaWxlLXJldmFsaWRhdGUiOnJldHVybiBuZXcgS2dlO2Nhc2UibmV0d29yay1vbmx5IjpyZXR1cm4gbmV3IFpnZTtjYXNlImNhY2hlLW9ubHkiOnJldHVybiBuZXcgUWdlO2RlZmF1bHQ6cmV0dXJuIG5ldyByb2V9fXZhciByb2UsWWdlLEtnZSxaZ2UsUWdlLEFUdD11KCgpPT57WG5lKCk7dG9lKCk7cm9lPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5ldHdvcmtGaXJzdFN0cmF0ZWd5Iil9YXN5bmMgZXhlY3V0ZShlKXt0cnl7bGV0IHI9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7cmV0dXJuIHIub2smJmF3YWl0IHRoaXMuY2FjaGVSZXNwb25zZShlLHIpLHtyZXNwb25zZTpyLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19Y2F0Y2gocil7ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIE5ldHdvcmsgZmFpbGVkLCB0cnlpbmcgY2FjaGU6IixyKTtsZXQgYT1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKGEpcmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KGEpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07dGhyb3cgcn19YXN5bmMgY2FjaGVSZXNwb25zZShlLHIpe2xldCBhPWwwKHIuaGVhZGVycyk7aWYoYS5ub1N0b3JlKXJldHVybjtsZXQgcz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHIsYSk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHMpfX0sWWdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlRmlyc3RTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihyKXtsZXQgbj1sMChuZXcgSGVhZGVycyhyLmhlYWRlcnMpKTtpZihDUyhyLG4pKXJldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6IixlLnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZih6UyhuKSYmKHIuZXRhZ3x8ci5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUoZSxyKX1lLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6IixlLnJlcXVlc3QudXJsKTtsZXQgYT1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxzPWwwKGEuaGVhZGVycyk7aWYoIXMubm9TdG9yZSl7bGV0IG49YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxhLHMpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6YSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUoZSxyKXtsZXQgYT1KbmUocikscz1uZXcgUmVxdWVzdChlLnJlcXVlc3QudXJsLHttZXRob2Q6ZS5yZXF1ZXN0Lm1ldGhvZCxoZWFkZXJzOnsuLi5lb2UoZS5yZXF1ZXN0LmhlYWRlcnMpLC4uLmF9fSk7dHJ5e2xldCBuPWF3YWl0IGUuZmV0Y2hGbihzKTtpZihuLnN0YXR1cz09PTMwNClyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIHJldmFsaWRhdGVkICgzMDQpOiIsZS5yZXF1ZXN0LnVybCksci50aW1lc3RhbXA9RGF0ZS5ub3coKSxhd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXkscikse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMH07aWYobi5vayl7bGV0IG89bDAobi5oZWFkZXJzKTtpZighby5ub1N0b3JlKXtsZXQgbD1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLG4sbyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LGwpfX1yZXR1cm57cmVzcG9uc2U6bixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITB9fWNhdGNoKG4pe3JldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gUmV2YWxpZGF0aW9uIGZhaWxlZCwgdXNpbmcgY2FjaGU6IixuKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfX19fSxLZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiU3RhbGVXaGlsZVJldmFsaWRhdGVTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihyKXtsZXQgbj1lLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShyKTtyZXR1cm4gdGhpcy5yZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKGUscikuY2F0Y2gobz0+e2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIsbyl9KSx7cmVzcG9uc2U6bixmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fWxldCBhPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLHM9bDAoYS5oZWFkZXJzKTtpZighcy5ub1N0b3JlJiZhLm9rKXtsZXQgbj1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLGEscyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG4pfXJldHVybntyZXNwb25zZTphLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19YXN5bmMgcmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLHIpe2xldCBhPWwwKG5ldyBIZWFkZXJzKHIuaGVhZGVycykpO2lmKCEoQ1MocixhKSYmIXpTKGEpKSl0cnl7bGV0IHM9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7aWYocy5vayl7bGV0IG49bDAocy5oZWFkZXJzKTtpZighbi5ub1N0b3JlKXtsZXQgbz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHMsbik7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG8pLGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBjb21wbGV0ZToiLGUucmVxdWVzdC51cmwpfX19Y2F0Y2gocyl7ZS5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixzKX19fSxaZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiTmV0d29ya09ubHlTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19fSxRZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQ2FjaGVPbmx5U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCByPWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDYWNoZSBtaXNzIGZvciAke2UucmVxdWVzdC51cmx9IChjYWNoZS1vbmx5IG1vZGUpYCk7cmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fTtpKCRUdCwiZ2V0U3RyYXRlZ3lIYW5kbGVyIil9KTt2YXIgJGIsWGdlPXUoKCk9PntYbmUoKTtBVHQoKTt0b2UoKTskYj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYWNoZU1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuY2FjaGVTdG9yZT1uZXcgRGIoZSxyKX1hc3luYyBleGVjdXRlKGUscixhKXtsZXQgcz10aGlzLmRldGVybWluZVN0cmF0ZWd5KGUscik7aWYocz09PSJuZXR3b3JrLW9ubHkiKXJldHVybntyZXNwb25zZTphd2FpdCBhKGUpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX07bGV0IG49dGhpcy5nZW5lcmF0ZUNhY2hlS2V5KGUsciksbz0kVHQocyksbD17cmVxdWVzdDplLGNhY2hlS2V5Om4sY2FjaGVTdG9yZTp0aGlzLmNhY2hlU3RvcmUsZmV0Y2hGbjphLGxvZ2dpbmc6ci5sb2dnaW5nfTtyZXR1cm4gYXdhaXQgby5leGVjdXRlKGwpfWRldGVybWluZVN0cmF0ZWd5KGUscil7cmV0dXJuIHIuY2FjaGVTdHJhdGVneT9yLmNhY2hlU3RyYXRlZ3k6ci5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koci5jYWNoZSk6ZS5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZS5jYWNoZSk6Im5ldHdvcmstZmlyc3QifW1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZSl7c3dpdGNoKGUpe2Nhc2UiZGVmYXVsdCI6cmV0dXJuIm5ldHdvcmstZmlyc3QiO2Nhc2Uibm8tc3RvcmUiOmNhc2UicmVsb2FkIjpyZXR1cm4ibmV0d29yay1vbmx5IjtjYXNlIm5vLWNhY2hlIjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJmb3JjZS1jYWNoZSI6cmV0dXJuImNhY2hlLWZpcnN0IjtjYXNlIm9ubHktaWYtY2FjaGVkIjpyZXR1cm4iY2FjaGUtb25seSI7ZGVmYXVsdDpyZXR1cm4ibmV0d29yay1maXJzdCJ9fWdlbmVyYXRlQ2FjaGVLZXkoZSxyKXtyZXR1cm4gci5jYWNoZUtleT90eXBlb2Ygci5jYWNoZUtleT09ImZ1bmN0aW9uIj9yLmNhY2hlS2V5KGUpOnIuY2FjaGVLZXk6dGhpcy5jYWNoZVN0b3JlLmdlbmVyYXRlQ2FjaGVLZXkoZSl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuY2xlYXIoKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmRlbGV0ZShlKX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVTdG9yZS5oYXMoZSl9Z2V0U3RvcmUoKXtyZXR1cm4gdGhpcy5jYWNoZVN0b3JlfX19KTtmdW5jdGlvbiBFVHQodCl7c3dpdGNoKHQpe2Nhc2UiZXhwb25lbnRpYWwiOnJldHVybiBuZXcgYW9lO2Nhc2UibGluZWFyIjpyZXR1cm4gbmV3IEpnZTtjYXNlImNvbnN0YW50IjpyZXR1cm4gbmV3IGViZTtkZWZhdWx0OnJldHVybiBuZXcgYW9lfX1mdW5jdGlvbiBJVHQodCxlPS4xKXtsZXQgcj10KmUqTWF0aC5yYW5kb20oKTtyZXR1cm4gdCtyfXZhciBhb2UsSmdlLGViZSxQVHQ9dSgoKT0+e2FvZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFeHBvbmVudGlhbEJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe2xldCBzPXIqTWF0aC5wb3coMixlLTEpO3JldHVybiBNYXRoLm1pbihzLGEpfX0sSmdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxpbmVhckJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe2xldCBzPXIqZTtyZXR1cm4gTWF0aC5taW4ocyxhKX19LGViZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDb25zdGFudEJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe3JldHVybiBNYXRoLm1pbihyLGEpfX07aShFVHQsImdldEJhY2tvZmZDYWxjdWxhdG9yIik7aShJVHQsImFkZEppdHRlciIpfSk7dmFyIEFiLHRiZT11KCgpPT57TVMoKTtQVHQoKTtBYj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSZXRyeU1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlPXt9KXt0aGlzLm9wdGlvbnM9e21heEF0dGVtcHRzOmUubWF4QXR0ZW1wdHM/PzMsYmFja29mZjplLmJhY2tvZmY/PyJleHBvbmVudGlhbCIsaW5pdGlhbERlbGF5OmUuaW5pdGlhbERlbGF5Pz8xZTMsbWF4RGVsYXk6ZS5tYXhEZWxheT8/M2U0LHJldHJ5T246ZS5yZXRyeU9uPz9bNDA4LDQyOSw1MDAsNTAyLDUwMyw1MDRdLG9uUmV0cnk6ZS5vblJldHJ5Pz8oKCk9Pnt9KX19YXN5bmMgZXhlY3V0ZShlLHIpe2xldCBhLHM7Zm9yKGxldCBuPTE7bjw9dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzO24rKyl0cnl7bGV0IG89YXdhaXQgZSgpO2lmKG8gaW5zdGFuY2VvZiBSZXNwb25zZSYmdGhpcy5zaG91bGRSZXRyeVJlc3BvbnNlKG8pKXtpZihzPW8sbj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cylyZXR1cm4gbztsZXQgbD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4sbmV3IEVycm9yKGBIVFRQICR7by5zdGF0dXN9YCksbCksYXdhaXQgdGhpcy5kZWxheShsKTtjb250aW51ZX1yZXR1cm4gb31jYXRjaChvKXthPW8gaW5zdGFuY2VvZiBFcnJvcj9vOm5ldyBFcnJvcihTdHJpbmcobykpO2xldCBsPXI/cihvLG4pOnRoaXMuc2hvdWxkUmV0cnlFcnJvcihvKTtpZihuPT09dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzfHwhbCl0aHJvdyBhO2xldCBjPXRoaXMuY2FsY3VsYXRlRGVsYXkobik7dGhpcy5vcHRpb25zLm9uUmV0cnkobixhLGMpLGF3YWl0IHRoaXMuZGVsYXkoYyl9dGhyb3cgYXx8bmV3IEVycm9yKCJNYXggcmV0cnkgYXR0ZW1wdHMgcmVhY2hlZCIpfWFzeW5jIGV4ZWN1dGVXaXRoRmFsbGJhY2tzKGUscixhKXtpZihlLmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKCJObyBVUkxzIHByb3ZpZGVkIGZvciBmYWxsYmFjayBleGVjdXRpb24iKTtsZXQgcyxuPVtdO2ZvcihsZXQgbyBvZiBlKXRyeXtsZXQgbD1hd2FpdCB0aGlzLmV4ZWN1dGUoYXN5bmMoKT0+YXdhaXQgYShvLHIpKTtpZihsLnN0YXR1czw0MDB8fGwuc3RhdHVzPj00MDAmJmwuc3RhdHVzPDUwMCYmbC5zdGF0dXMhPT00MDgpcmV0dXJuIGw7bi5wdXNoKG8pLHM9bmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke2wuc3RhdHVzfWApfWNhdGNoKGwpe24ucHVzaChvKSxzPWwgaW5zdGFuY2VvZiBFcnJvcj9sOm5ldyBFcnJvcihTdHJpbmcobCkpfXRocm93IG5ldyBFcnJvcihgQWxsIFVSTHMgZmFpbGVkOiAke24uam9pbigiLCAiKX0uIExhc3QgZXJyb3I6ICR7cz8ubWVzc2FnZXx8IlVua25vd24gZXJyb3IifWApfXNob3VsZFJldHJ5UmVzcG9uc2UoZSl7bGV0IHI9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3IoZSk6QXJyYXkuaXNBcnJheShyKT9yLmluY2x1ZGVzKGUuc3RhdHVzKTohMX1zaG91bGRSZXRyeUVycm9yKGUpe2lmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3ImJmUubWVzc2FnZS5pbmNsdWRlcygiZmV0Y2giKXx8ZS5uYW1lPT09IkFib3J0RXJyb3IifHxlLm1lc3NhZ2UuaW5jbHVkZXMoInRpbWVvdXQiKSlyZXR1cm4hMDtsZXQgcj10aGlzLm9wdGlvbnMucmV0cnlPbjtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiI/cih2b2lkIDAsZSk6ITF9Y2FsY3VsYXRlRGVsYXkoZSl7bGV0IGE9RVR0KHRoaXMub3B0aW9ucy5iYWNrb2ZmKS5jYWxjdWxhdGUoZSx0aGlzLm9wdGlvbnMuaW5pdGlhbERlbGF5LHRoaXMub3B0aW9ucy5tYXhEZWxheSk7cmV0dXJuIElUdChhKX1hc3luYyBkZWxheShlKXthd2FpdCBLdC5kZWxheUZvcihlKX19fSk7dmFyIEViLHJiZT11KCgpPT57TVMoKTtFYj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSZXF1ZXN0RGVkdXBsaWNhdG9yIil9Y29uc3RydWN0b3IoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHM9bmV3IE1hcH1nZW5lcmF0ZUtleShlKXtsZXQgcj1lLnVybCxhPWUubWV0aG9kO3JldHVybiBhPT09IkdFVCJ8fGE9PT0iSEVBRCI/YCR7YX06JHtyfWA6YCR7YX06JHtyfToke0RhdGUubm93KCl9YH1hc3luYyBleGVjdXRlKGUscil7bGV0IGE9dGhpcy5pbkZsaWdodFJlcXVlc3RzLmdldChlKTtpZihhKXJldHVybntyZXNwb25zZTooYXdhaXQgYS5wcm9taXNlKS5jbG9uZSgpLHdhc0RlZHVwbGljYXRlZDohMH07bGV0IHM9eHQuZGVmZXIoKTt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2V0KGUscyk7dHJ5e2xldCBuPWF3YWl0IHIoKTtyZXR1cm4gcy5yZXNvbHZlKG4pLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUoZSkse3Jlc3BvbnNlOm4sd2FzRGVkdXBsaWNhdGVkOiExfX1jYXRjaChuKXt0aHJvdyBzLnJlamVjdChuKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLG59fWlzSW5GbGlnaHQoZSl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5oYXMoZSl9Z2V0SW5GbGlnaHRDb3VudCgpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2l6ZX1jbGVhcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5jbGVhcigpfX19KTtmdW5jdGlvbiBGNGEodCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcixyPW5ldyBLdC5UaW1lb3V0KHQsbnVsbCk7cmV0dXJuIHIucHJvbWlzZS50aGVuKCgpPT57ZS5hYm9ydCgpfSkse2NvbnRyb2xsZXI6ZSxjbGVhbnVwOmkoKCk9PntyLmNhbmNlbCgpfSwiY2xlYW51cCIpfX1hc3luYyBmdW5jdGlvbiBhYmUodCxlLHIpe2xldHtjb250cm9sbGVyOmEsY2xlYW51cDpzfT1GNGEocik7dHJ5e2xldCBuPWF3YWl0IGZldGNoKHQsey4uLmUsc2lnbmFsOmEuc2lnbmFsfSk7cmV0dXJuIHMoKSxufWNhdGNoKG4pe3Rocm93IHMoKSxuIGluc3RhbmNlb2YgRXJyb3ImJm4ubmFtZT09PSJBYm9ydEVycm9yIj9uZXcgRXJyb3IoYFJlcXVlc3QgdGltZW91dCBhZnRlciAke3J9bXM6ICR7dH1gKTpufX12YXIgTlR0PXUoKCk9PntNUygpO2koRjRhLCJjcmVhdGVUaW1lb3V0Q29udHJvbGxlciIpO2koYWJlLCJmZXRjaFdpdGhUaW1lb3V0Iil9KTt2YXIgaWgsaWJlPXUoKCk9PntDZ2UoKTtYZ2UoKTt0YmUoKTtyYmUoKTtOVHQoKTtpaD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXZWJyZXF1ZXN0Q2xpZW50Iil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy5kZWZhdWx0T3B0aW9ucz1lLHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyPW5ldyBfYix0aGlzLmNhY2hlTWFuYWdlcj1uZXcgJGIsdGhpcy5kZWR1cGxpY2F0b3I9bmV3IEVifWFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl9YWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpfWFkZEVycm9ySW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkRXJyb3JJbnRlcmNlcHRvcihlKX1yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpfXJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcihlKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl9Y2xlYXJJbnRlcmNlcHRvcnMoKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5jbGVhckFsbCgpfWFzeW5jIGNsZWFyQ2FjaGUoKXthd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5jbGVhcigpfWFzeW5jIHJlcXVlc3QoZSxyPXt9KXtsZXQgYT17Li4udGhpcy5kZWZhdWx0T3B0aW9ucywuLi5yfSxzO2lmKHR5cGVvZiBlPT0ic3RyaW5nIj9zPW5ldyBSZXF1ZXN0KGUsYSk6cz1lLHM9YXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc1JlcXVlc3QocyksYS5pbnRlcmNlcHRvcnM/LnJlcXVlc3QpZm9yKGxldCBvIG9mIGEuaW50ZXJjZXB0b3JzLnJlcXVlc3Qpcz1hd2FpdCBvKHMpO2lmKGEuZGVkdXBsaWNhdGU/PyExKXtsZXQgbz10aGlzLmRlZHVwbGljYXRvci5nZW5lcmF0ZUtleShzKTtyZXR1cm4oYXdhaXQgdGhpcy5kZWR1cGxpY2F0b3IuZXhlY3V0ZShvLGFzeW5jKCk9PmF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QocyxhKSkpLnJlc3BvbnNlfXJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KHMsYSl9YXN5bmMgZXhlY3V0ZVJlcXVlc3QoZSxyKXt0cnl7bGV0IGE9dHlwZW9mIHIucmV0cnk9PSJvYmplY3QiP3IucmV0cnk6ci5yZXRyeT97fTp2b2lkIDAscz1pKGFzeW5jIGw9PntsZXQgYz1yLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgYWJlKGwudXJsLHttZXRob2Q6bC5tZXRob2QsaGVhZGVyczpsLmhlYWRlcnMsYm9keTpsLmJvZHksLi4ucn0sYyl9LCJmZXRjaEZuRm9yUmVxdWVzdCIpLG49aShhc3luYyhsLGMpPT57bGV0IGQ9ci50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IGFiZShsLGMsZCl9LCJmZXRjaEZuRm9yRmFsbGJhY2tzIiksbztpZihhKXtsZXQgbD1uZXcgQWIoYSk7aWYoci5mYWxsYmFja1VybHMmJnIuZmFsbGJhY2tVcmxzLmxlbmd0aD4wKXtsZXQgYz1bZS51cmwsLi4uci5mYWxsYmFja1VybHNdO289YXdhaXQgbC5leGVjdXRlV2l0aEZhbGxiYWNrcyhjLHttZXRob2Q6ZS5tZXRob2QsaGVhZGVyczplLmhlYWRlcnMsYm9keTplLmJvZHksLi4ucn0sbil9ZWxzZSBvPWF3YWl0IGwuZXhlY3V0ZShhc3luYygpPT4oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZShlLHIscykpLnJlc3BvbnNlKX1lbHNlIG89KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSxyLHMpKS5yZXNwb25zZTtpZihvPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXNwb25zZShvKSxyLmludGVyY2VwdG9ycz8ucmVzcG9uc2UpZm9yKGxldCBsIG9mIHIuaW50ZXJjZXB0b3JzLnJlc3BvbnNlKW89YXdhaXQgbChvKTtyZXR1cm4gb31jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzRXJyb3IoYSBpbnN0YW5jZW9mIEVycm9yP2E6bmV3IEVycm9yKFN0cmluZyhhKSkpfX1hc3luYyBnZXRKc29uKGUscj17fSl7bGV0IGE9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLnIsbWV0aG9kOiJHRVQiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX19KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX1hc3luYyBwb3N0SnNvbihlLHIsYT17fSl7bGV0IHM9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5hLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KHIpfSk7aWYoIXMub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7cy5zdGF0dXN9OiAke3Muc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgcy5qc29uKCl9YXN5bmMgcHV0SnNvbihlLHIsYT17fSl7bGV0IHM9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmEuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkocil9KTtpZighcy5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtzLnN0YXR1c306ICR7cy5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBzLmpzb24oKX1hc3luYyBkZWxldGVKc29uKGUscj17fSl7bGV0IGE9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLnIsbWV0aG9kOiJERUxFVEUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX19KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX19fSk7YXN5bmMgZnVuY3Rpb24gcTEodCxlKXtsZXQgcj10IGluc3RhbmNlb2YgUmVxdWVzdD90LnVybDpTdHJpbmcodCksYT10IGluc3RhbmNlb2YgUmVxdWVzdD90Om5ldyBSZXF1ZXN0KHIsZSk7cmV0dXJuIGF3YWl0IF8yLnJlcXVlc3QoYSxlKX12YXIgXzIsT1R0PXUoKCk9PntpYmUoKTtfMj1uZXcgaWg7aShxMSwid2VicmVxdWVzdCIpLHExLmdldEpzb249YXN5bmMgZnVuY3Rpb24odCxlKXtyZXR1cm4gYXdhaXQgXzIuZ2V0SnNvbih0LGUpfSxxMS5wb3N0SnNvbj1hc3luYyBmdW5jdGlvbih0LGUscil7cmV0dXJuIGF3YWl0IF8yLnBvc3RKc29uKHQsZSxyKX0scTEucHV0SnNvbj1hc3luYyBmdW5jdGlvbih0LGUscil7cmV0dXJuIGF3YWl0IF8yLnB1dEpzb24odCxlLHIpfSxxMS5kZWxldGVKc29uPWFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGF3YWl0IF8yLmRlbGV0ZUpzb24odCxlKX0scTEuYWRkUmVxdWVzdEludGVyY2VwdG9yPWZ1bmN0aW9uKHQpe18yLmFkZFJlcXVlc3RJbnRlcmNlcHRvcih0KX0scTEuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcj1mdW5jdGlvbih0KXtfMi5hZGRSZXNwb25zZUludGVyY2VwdG9yKHQpfSxxMS5hZGRFcnJvckludGVyY2VwdG9yPWZ1bmN0aW9uKHQpe18yLmFkZEVycm9ySW50ZXJjZXB0b3IodCl9LHExLmNsZWFySW50ZXJjZXB0b3JzPWZ1bmN0aW9uKCl7XzIuY2xlYXJJbnRlcmNlcHRvcnMoKX0scTEuY2xlYXJDYWNoZT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IF8yLmNsZWFyQ2FjaGUoKX0scTEuY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaWgodCl9LHExLmdldERlZmF1bHRDbGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gXzJ9fSk7dmFyIFQyPXt9O1ZlKFQyLHtDYWNoZU1hbmFnZXI6KCk9PiRiLENhY2hlU3RvcmU6KCk9PkRiLEludGVyY2VwdG9yTWFuYWdlcjooKT0+X2IsUmVxdWVzdERlZHVwbGljYXRvcjooKT0+RWIsUmV0cnlNYW5hZ2VyOigpPT5BYixXZWJyZXF1ZXN0Q2xpZW50OigpPT5paCxjcmVhdGVDb25kaXRpb25hbEhlYWRlcnM6KCk9PkpuZSxleHRyYWN0Q2FjaGVNZXRhZGF0YTooKT0+bDAsaGVhZGVyc1RvT2JqZWN0OigpPT5lb2UsaXNGcmVzaDooKT0+Q1Msb2JqZWN0VG9IZWFkZXJzOigpPT5EVHQscmVxdWlyZXNSZXZhbGlkYXRpb246KCk9PnpTLHdlYnJlcXVlc3Q6KCk9PnExfSk7dmFyIGlvZT11KCgpPT57T1R0KCk7aWJlKCk7WGdlKCk7WG5lKCk7dGJlKCk7Q2dlKCk7cmJlKCk7dG9lKCl9KTt2YXIgbHUsY3U9dSgoKT0+e3FmKCk7bHU9R2EodmsoKSwxKTtNYigpO3dnZSgpO05kKCk7TWdlKCk7R24oKTtpb2UoKX0pO3ZhciBMMixJYj11KCgpPT57Y3UoKTtMMj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlc3BvbnNlRXJyb3IiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuZXJyb3JUZXh0PWUsdGhpcy5lcnJvckRhdGE9cn19fSk7dmFyIG5vZSxSVHQ9dSgoKT0+e0liKCk7Y3UoKTtub2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRUb29scyIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2NhbERhdGE9e319YXN5bmMgcGFzc0d1YXJkcyhlLHIpe2xldCBhPW5ldyBqZC5HdWFyZFNldChlKTtpZighYXdhaXQgYS5hbGxHdWFyZHNQYXNzKHIpKXtsZXQgbj1hd2FpdCBhLmdldEZhaWxlZEhpbnQocik7dGhyb3cgbmV3IEwyKGBndWFyZCBmYWlsZWQ6ICR7bn1gLHtmYWlsZWRIaW50Om59KX19fX0pO3ZhciBzYmUsbmJlPXUoKCk9PntjdSgpO0liKCk7UlR0KCk7c2JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkSGFuZGxlciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5tZXRob2Q9ZSx0aGlzLmhhbmRsZXJGdW5jdGlvbj1yfWFzeW5jIGFkZFJlc3BvbnNlKGUpe2lmKGUubWV0aG9kIT09dGhpcy5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzIik7bGV0IHIsYT1uZXcgbm9lO2UubG9jYWxEYXRhJiYoYS5sb2NhbERhdGE9ZS5sb2NhbERhdGEpO2xldCBzPWF3YWl0IHRoaXMuaGFuZGxlckZ1bmN0aW9uKGUucmVxdWVzdCxhKS5jYXRjaChuPT57biBpbnN0YW5jZW9mIEwyP3I9bjpjb25zb2xlLmxvZyhuKX0pO3JldHVybiByJiYoZS5lcnJvcj17dGV4dDpyLmVycm9yVGV4dCxkYXRhOnIuZXJyb3JEYXRhfSkscyYmKGUucmVzcG9uc2U9cyksZT8uY29ycmVsYXRpb24/LnBoYXNlJiYoZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiKSxlfX19KTt2YXIgc2gsX1M9dSgoKT0+e2N1KCk7b29lKCk7bmJlKCk7b2JlKCk7SWIoKTtzaD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlR5cGVkUm91dGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmhvb2tzPXt9LHRoaXMucm91dGVyTWFwPW5ldyBGYS5PYmplY3RNYXAsdGhpcy5oYW5kbGVyTWFwPW5ldyBGYS5PYmplY3RNYXAsdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXM9bmV3IEZhLk9iamVjdE1hcCx0aGlzLm1pZGRsZXdhcmVzPVtdLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXA9bmV3IEZhLkludGVyZXN0TWFwKGU9PmUpfXN0YXRpYyBnZXQgZ2xvYmFsSG9va3MoKXtyZXR1cm4gZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N8fChnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fSksZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N9c3RhdGljIHNldCBnbG9iYWxIb29rcyhlKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz1lfXN0YXRpYyBzZXRHbG9iYWxIb29rcyhlKXtsZXQgcj10Lmdsb2JhbEhvb2tzO3QuZ2xvYmFsSG9va3M9ey4uLnIsLi4uZX19c3RhdGljIGNsZWFyR2xvYmFsSG9va3MoKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fX1zZXRIb29rcyhlKXt0aGlzLmhvb2tzPXsuLi50aGlzLmhvb2tzLC4uLmV9fWNhbGxIb29rKGUscil7dHJ5e3QuZ2xvYmFsSG9va3NbZV0/LihyKSx0aGlzLmhvb2tzW2VdPy4ocil9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgVHlwZWRSb3V0ZXIgaG9vayBlcnJvciAoJHtlfSk6YCxhKX19YWRkTWlkZGxld2FyZShlKXt0aGlzLm1pZGRsZXdhcmVzLnB1c2goZSl9YWRkVHlwZWRIYW5kbGVyKGUpe2lmKHRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoYGEgVHlwZWRIYW5kbGVyIGZvciAke2UubWV0aG9kfSBhbHJlZHkgZXhpc3RzISBDYW4ndCBhZGQgYW5vdGhlciBvbmUuYCk7dGhpcy5oYW5kbGVyTWFwLmFkZChlKX1hZGRUeXBlZFJvdXRlcihlKXt0aGlzLnJvdXRlck1hcC5maW5kU3luYyhhPT5hPT09ZSl8fCh0aGlzLnJvdXRlck1hcC5hZGQoZSksZS5hZGRUeXBlZFJvdXRlcih0aGlzKSl9Y2hlY2tGb3JUeXBlZEhhbmRsZXIoZSl7cmV0dXJuISF0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlKX1nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxyPVtdKXtyLnB1c2godGhpcyk7bGV0IGE7cmV0dXJuIGE9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHM9PnMubWV0aG9kPT09ZSksYXx8dGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKS5mb3JFYWNoKHM9PnshYSYmIXIuaW5jbHVkZXMocykmJihhPXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUscikpfSksYX1nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZSxyPVtdKXtyLnB1c2godGhpcyk7bGV0IGE9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHM9PnMubWV0aG9kPT09ZSk7aWYoYSlyZXR1cm57aGFuZGxlcjphLHJvdXRlcjp0aGlzfTtmb3IobGV0IHMgb2YgdGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKSlpZighci5pbmNsdWRlcyhzKSl7bGV0IG49cy5nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZSxyKTtpZihuKXJldHVybiBufXJldHVybiBudWxsfXN0YXRpY3t0aGlzLmRlZmF1bHRSb3V0ZU9wdGlvbnM9e2xvY2FsUmVxdWVzdDohMSxza2lwSG9va3M6ITF9fWFzeW5jIHJvdXRlQW5kQWRkUmVzcG9uc2UoZSxyPXt9KXtsZXQgYT17Li4udC5kZWZhdWx0Um91dGVPcHRpb25zLC4uLnJ9O2lmKGU9RDIuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxlLmxvY2FsRGF0YT1lLmxvY2FsRGF0YXx8e30sZS5sb2NhbERhdGEuZmlyc3RUeXBlZHJvdXRlcj10aGlzLGUubWV0aG9kPT09IiMjVmlydHVhbFN0cmVhbSMjIil7bGV0IHM9YXdhaXQgdGhpcy5oYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QoZSk7cmV0dXJuIHMubG9jYWxEYXRhPW51bGwsc31pZihlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVxdWVzdCJ8fGEubG9jYWxSZXF1ZXN0KXtsZXQgcz1EYXRlLm5vdygpO2Euc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDpzLHBheWxvYWQ6ZS5yZXF1ZXN0fSk7bGV0IG49dGhpcy5nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZS5tZXRob2QpO2lmKCFuKXJldHVybiBjb25zb2xlLmxvZyhgQ2Fubm90IGZpbmQgaGFuZGxlciBmb3IgbWV0aG9kbmFtZSAke2UubWV0aG9kfWApLGUuZXJyb3I9e3RleHQ6IlRoZXJlIGlzIG5vIGF2YWlsYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FsbCBvbiB0aGUgc2VydmVyIHNpZGUiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9RDIuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXMscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlO2xldHtoYW5kbGVyOm8scm91dGVyOmx9PW47aWYobC5taWRkbGV3YXJlcy5sZW5ndGg+MCl0cnl7Zm9yKGxldCBjIG9mIGwubWlkZGxld2FyZXMpYXdhaXQgYyhlKX1jYXRjaChjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIEwyP2UuZXJyb3I9e3RleHQ6Yy5lcnJvclRleHQsZGF0YTpjLmVycm9yRGF0YXx8e319OmUuZXJyb3I9e3RleHQ6Yy5tZXNzYWdlfHwiTWlkZGxld2FyZSBlcnJvciIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT1EMi5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9cmV0dXJuIGU9YXdhaXQgby5hZGRSZXNwb25zZShlKSxlLmxvY2FsRGF0YT1udWxsLGU9RDIuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXMscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlfWVsc2UgcmV0dXJuIGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXNwb25zZSI/KGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCkscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwLmZpbmRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkKT8uZnVsbGZpbGxJbnRlcmVzdChlKSxudWxsKTooY29uc29sZS5sb2coInJlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QiKSxjb25zb2xlLmxvZyhlKSxudWxsKX1hc3luYyBoYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QoZSl7bGV0IHI9YXdhaXQgdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZmluZChhc3luYyBzPT5zLnN0cmVhbUlkPT09ZS5yZXF1ZXN0LnN0cmVhbUlkKTtpZihyKWNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApO2Vsc2UgcmV0dXJuIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCksY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSksZTtyZXR1cm4gYXdhaXQgci5oYW5kbGVTdHJlYW1UcihlKX19fSk7dmFyIEZUdCxEMixvb2U9dSgoKT0+e2N1KCk7X1MoKTtGVHQ9IiMjIyMjIyMjIyMjIyNDTE9TSU5HIEJJVCMjIyMjIyMjIyMjIyMiLEQyPWNsYXNzIHR7c3RhdGlje2kodGhpcywiVmlydHVhbFN0cmVhbSIpfXN0YXRpYyBlbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHIsYSxzPVtdKXtyZXR1cm4hZXx8TTIuaXNCdWZmZXJMaWtlKGUpP2U6ZSBpbnN0YW5jZW9mIHQ/KCFlLnNpZGUmJnIuc2VuZE1ldGhvZCYmKGUuc2lkZT0icmVxdWVzdGluZyIsZS5zZW5kTWV0aG9kPXIuc2VuZE1ldGhvZCksIWUuc2lkZSYmci50eXBlZHJvdXRlciYmKGUuc2lkZT0icmVzcG9uZGluZyIsZS50eXBlZHJvdXRlcj1yLnR5cGVkcm91dGVyLHIudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChlKSksIWEucmVzcG9uc2V8fHMuaW5jbHVkZXMoInJlc3BvbnNlIik/KGUuc3RhcnRLZWVwQWxpdmVMb29wKCkse19pc1ZpcnR1YWxTdHJlYW06ITAsc3RyZWFtSWQ6ZS5zdHJlYW1JZH0pOntfT0JNSVRURURfVklSVFVBTF9TVFJFQU06ITAscmVhc29uOiJwYXRoIGlzIHVuZGVyIC5yZXF1ZXN0OiBvYm1pdHRlZCBmb3IgZGVkdXBsaWNhdGlvbiByZWFzb25zIGluIHJlc3BvbnNlIGN5Y2xlLiJ9KTpBcnJheS5pc0FycmF5KGUpP2UubWFwKChuLG8pPT50LmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKG4scixhfHxlLHMuY29uY2F0KFN0cmluZyhvKSkpKTplIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiP09iamVjdC5lbnRyaWVzKGUpLnJlZHVjZSgobixbbyxsXSk9PntsZXQgYz1zLmNvbmNhdChvKTtyZXR1cm4gbltvXT10LmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGwscixhfHxlLGMpLG59LHt9KTplfXN0YXRpYyBkZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSxyKXtpZihNMi5pc0J1ZmZlckxpa2UoZSl8fGUgaW5zdGFuY2VvZiBzaClyZXR1cm4gZTtpZihlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiKXtpZihlIGluc3RhbmNlb2YgU2V0fHxlIGluc3RhbmNlb2YgTWFwfHxlIGluc3RhbmNlb2YgRGF0ZXx8ZSBpbnN0YW5jZW9mIFJlZ0V4cHx8ZSBpbnN0YW5jZW9mIEVycm9yfHxlIGluc3RhbmNlb2YgUHJvbWlzZXx8dHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gZTtpZihlLl9pc1ZpcnR1YWxTdHJlYW0pe2xldCBhPW5ldyB0O3JldHVybiBhLnN0cmVhbUlkPWUuc3RyZWFtSWQsIWEuc2lkZSYmci5zZW5kTWV0aG9kJiYoYS5zaWRlPSJyZXF1ZXN0aW5nIixhLnNlbmRNZXRob2Q9ci5zZW5kTWV0aG9kKSwhYS5zaWRlJiZyLnR5cGVkcm91dGVyJiYoYS5zaWRlPSJyZXNwb25kaW5nIixhLnR5cGVkcm91dGVyPXIudHlwZWRyb3V0ZXIsci50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGEpKSxhLnN0YXJ0S2VlcEFsaXZlTG9vcCgpLGF9ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1bXTtmb3IobGV0IHMgb2YgZSlhLnB1c2godC5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsocyxyKSk7cmV0dXJuIGF9ZWxzZSByZXR1cm4gT2JqZWN0LmtleXMoZSkucmVkdWNlKChhLHMpPT4oYVtzXT10LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlW3NdLHIpLGEpLHt9KX1lbHNlIHJldHVybiBlfWNvbnN0cnVjdG9yKCl7dGhpcy5zdHJlYW1JZD1sdS51bmkoKSx0aGlzLmtlZXBBbGl2ZT0hMCx0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IEZhLkJhY2twcmVzc3VyZWRBcnJheSgxNiksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5PW5ldyBGYS5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpfXN0YXRpYyByZWNvbnN0aXR1dGVCaW5hcnlEYXRhKGUpe2lmKGU9PW51bGx8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiBlO2lmKHR5cGVvZiBlPT0ib2JqZWN0Iil7aWYoZS50eXBlPT09IkJ1ZmZlciImJkFycmF5LmlzQXJyYXkoZS5kYXRhKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtsZXQgcj1PYmplY3Qua2V5cyhlKTtpZihyLmxlbmd0aD4wJiZyLmV2ZXJ5KGE9Pi9eXGQrJC8udGVzdChhKSkpe2xldCBhPW5ldyBBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBzIG9mIHIpYVtOdW1iZXIocyldPWVbc107aWYoYS5ldmVyeShzPT50eXBlb2Ygcz09Im51bWJlciIpKXJldHVybiBuZXcgVWludDhBcnJheShhKX19cmV0dXJuIGV9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD14dC5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj0hMSxhPSExLHM9aShhc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6bHUudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGE9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfSwiZ2V0RmVlZGJhY2siKTtmb3IoYXdhaXQgcygpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoYSlmb3IoO2E7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IEt0LmRlbGF5Rm9yKDUwKSxhd2FpdCBzKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmx1LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTplLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKHQucmVjb25zdGl0dXRlQmluYXJ5RGF0YShvLnJlc3BvbnNlLmNodW5rRGF0YSkpLGE9byYmby5yZXNwb25zZSYmby5yZXNwb25zZS5iYWNrcHJlc3N1cmUsZT0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UubmV4dH19dGhpcy53b3JraW5nRGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMud29ya2luZ0RlZmVycmVkPW51bGx9YXN5bmMgaGFuZGxlU3RyZWFtVHIoZSl7aWYoZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSEwJiZ0aGlzLmtlZXBBbGl2ZT09PSEwP3RoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCk6ZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSExJiYodGhpcy5rZWVwQWxpdmU9ITEpLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJrZWVwQWxpdmUiJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImZlZWRiYWNrIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iY2h1bmsiKXtpZih0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaCh0LnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZS5yZXF1ZXN0LmNodW5rRGF0YSkpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgcj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgS3QuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBLdC5kZWxheUZvcigxZTMpO2F3YWl0IEt0LmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmx1LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxyPSEwKXtsZXQgYT1lLmdldFJlYWRlcigpLHM9ITE7Zm9yKDshczspe2xldHt2YWx1ZTpuLGRvbmU6b309YXdhaXQgYS5yZWFkKCk7biYmYXdhaXQgdGhpcy5zZW5kRGF0YShuKSxzPW99ciYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgcj1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgYT1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKGE9PT1GVHQpe3IucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgci53cml0ZShhKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShGVHQpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgbGJlLGNiZT11KCgpPT57X1MoKTtjdSgpO2xiZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRhcmdldCIpfWNvbnN0cnVjdG9yKGUpe2lmKGUucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIWUudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9ZX1hc3luYyBwb3N0KGUpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQsZSkpO2xldCBzPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikoZSksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOnM/bj1zOm49ZSxufX19KTtmdW5jdGlvbiBCVHQodCxlKXt0cnl7c2guZ2xvYmFsSG9va3NbdF0/LihlKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHt0fSk6YCxyKX19dmFyIEI0YSxkYmUsb2JlPXUoKCk9PntjdSgpO29vZSgpO0liKCk7X1MoKTtjYmUoKTtCNGE9bmV3IFQyLldlYnJlcXVlc3RDbGllbnQ7aShCVHQsImNhbGxHbG9iYWxIb29rIik7ZGJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkUmVxdWVzdCIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5za2lwSG9va3M9ITEsdHlwZW9mIGU9PSJzdHJpbmciP3RoaXMudXJsRW5kUG9pbnQ9ZTp0aGlzLnR5cGVkVGFyZ2V0PWUsdGhpcy5tZXRob2Q9cn1hc3luYyBmaXJlKGUscj0hMSl7bGV0IGE9RGF0ZS5ub3coKSxzPXttZXRob2Q6dGhpcy5tZXRob2QscmVxdWVzdDplLHJlc3BvbnNlOm51bGwsY29ycmVsYXRpb246e2lkOmx1LnVuaSgpLHBoYXNlOiJyZXF1ZXN0In19O3M9RDIuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsocyx7c2VuZE1ldGhvZDppKG89PnRoaXMucG9zdFRyT2JqZWN0KG8pLCJzZW5kTWV0aG9kIil9KSx0aGlzLnNraXBIb29rc3x8QlR0KCJvbk91dGdvaW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6cy5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDphLHBheWxvYWQ6ZX0pO2xldCBuO3JldHVybiBuPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KHMsciksbj1EMi5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsobix7c2VuZE1ldGhvZDppKG89PnRoaXMucG9zdFRyT2JqZWN0KG8pLCJzZW5kTWV0aG9kIil9KSx0aGlzLnNraXBIb29rc3x8QlR0KCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOnMuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLWEscGF5bG9hZDpuPy5yZXNwb25zZSxlcnJvcjpuPy5lcnJvcj8udGV4dH0pLG4ucmVzcG9uc2V9YXN5bmMgcG9zdFRyT2JqZWN0KGUscj0hMSl7bGV0IGE7aWYodGhpcy51cmxFbmRQb2ludD9hPWF3YWl0IEI0YS5wb3N0SnNvbih0aGlzLnVybEVuZFBvaW50LGUscj97Y2FjaGVTdHJhdGVneToiY2FjaGUtZmlyc3QifTp7fSk6YT1hd2FpdCB0aGlzLnR5cGVkVGFyZ2V0LnBvc3QoZSksYS5lcnJvcil7aWYoY29uc29sZS5lcnJvcihgbWV0aG9kOiA+PiR7dGhpcy5tZXRob2R9PDwgZ290IGFuIEVSUk9SOiAiJHthLmVycm9yLnRleHR9IiB3aXRoIGRhdGEgJHtKU09OLnN0cmluZ2lmeShhLmVycm9yLmRhdGEsbnVsbCwyKX1gKSwhYS5yZXRyeSl0aHJvdyBuZXcgTDIoYS5lcnJvci50ZXh0LGEuZXJyb3IuZGF0YSk7cmV0dXJuIG51bGx9cmV0dXJuIGEucmV0cnkmJihjb25zb2xlLmxvZyhgc2VydmVyIHJlcXVlc3RlZCByZXRyeSBmb3IgdGhlIGZvbGxvd2luZyByZWFzb246ICR7YS5yZXRyeS5yZWFzb259YCksYXdhaXQgS3QuZGVsYXlGb3IoYS5yZXRyeS53YWl0Rm9yTXMpLGE9YXdhaXQgdGhpcy5wb3N0VHJPYmplY3QoZSxyKSksYX19fSk7dmFyIGR1PXt9O1ZlKGR1LHtUeXBlZEhhbmRsZXI6KCk9PnNiZSxUeXBlZFJlcXVlc3Q6KCk9PmRiZSxUeXBlZFJlc3BvbnNlRXJyb3I6KCk9PkwyLFR5cGVkUm91dGVyOigpPT5zaCxUeXBlZFRhcmdldDooKT0+bGJlLFZpcnR1YWxTdHJlYW06KCk9PkQyfSk7dmFyIEhUdD11KCgpPT57b2JlKCk7bmJlKCk7X1MoKTtJYigpO2NiZSgpO29vZSgpfSk7ZnVuY3Rpb24gcVR0KHQpe3JldHVybiB0JiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIGMwKHQsZSl7cmV0dXJuIHR8fCh0PTApLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIoZSl9LHQpfSl9ZnVuY3Rpb24gVVR0KHQsZSl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpK3QpfWZ1bmN0aW9uIFVkKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1mdW5jdGlvbiBXZCgpe3ZhciB0PURhdGUubm93KCkqMWUzO3JldHVybiB0PD11YmUmJih0PXViZSsxKSx1YmU9dCx0fWZ1bmN0aW9uIFdUdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2NrczwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdD09ImZ1bmN0aW9uIn12YXIgVlR0LGpUdCxWMSx1YmUsdXU9dSgoKT0+e2kocVR0LCJpc1Byb21pc2UiKTtWVHQ9UHJvbWlzZS5yZXNvbHZlKCExKSxqVHQ9UHJvbWlzZS5yZXNvbHZlKCEwKSxWMT1Qcm9taXNlLnJlc29sdmUoKTtpKGMwLCJzbGVlcCIpO2koVVR0LCJyYW5kb21JbnQiKTtpKFVkLCJyYW5kb21Ub2tlbiIpO3ViZT0wO2koV2QsIm1pY3JvU2Vjb25kcyIpO2koV1R0LCJzdXBwb3J0c1dlYkxvY2tBUEkiKX0pO2Z1bmN0aW9uIFY0YSh0KXt2YXIgZT17dGltZTpXZCgpLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxiYzpuZXcgQnJvYWRjYXN0Q2hhbm5lbCh0KSxzdWJGbnM6W119O3JldHVybiBlLmJjLm9ubWVzc2FnZT1mdW5jdGlvbihyKXtlLm1lc3NhZ2VzQ2FsbGJhY2smJmUubWVzc2FnZXNDYWxsYmFjayhyLmRhdGEpfSxlfWZ1bmN0aW9uIGo0YSh0KXt0LmJjLmNsb3NlKCksdC5zdWJGbnM9W119ZnVuY3Rpb24gVTRhKHQsZSl7dHJ5e3JldHVybiB0LmJjLnBvc3RNZXNzYWdlKGUsITEpLFYxfWNhdGNoKHIpe3JldHVybiBQcm9taXNlLnJlamVjdChyKX19ZnVuY3Rpb24gVzRhKHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gRzRhKCl7aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLkRlbm8mJmdsb2JhbFRoaXMuRGVuby5hcmdzKXJldHVybiEwO2lmKCh0eXBlb2Ygd2luZG93PCJ1Inx8dHlwZW9mIHNlbGY8InUiKSYmdHlwZW9mIEJyb2FkY2FzdENoYW5uZWw9PSJmdW5jdGlvbiIpe2lmKEJyb2FkY2FzdENoYW5uZWwuX3B1YmtleSl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWw6IERvIG5vdCBvdmVyd3JpdGUgd2luZG93LkJyb2FkY2FzdENoYW5uZWwgd2l0aCB0aGlzIG1vZHVsZSwgdGhpcyBpcyBub3QgYSBwb2x5ZmlsbCIpO3JldHVybiEwfWVsc2UgcmV0dXJuITF9ZnVuY3Rpb24gWTRhKCl7cmV0dXJuIDE1MH12YXIgSDRhLHE0YSxHVHQsWVR0PXUoKCk9Pnt1dSgpO0g0YT1XZCxxNGE9Im5hdGl2ZSI7aShWNGEsImNyZWF0ZSIpO2koajRhLCJjbG9zZSIpO2koVTRhLCJwb3N0TWVzc2FnZSIpO2koVzRhLCJvbk1lc3NhZ2UiKTtpKEc0YSwiY2FuQmVVc2VkIik7aShZNGEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtHVHQ9e2NyZWF0ZTpWNGEsY2xvc2U6ajRhLG9uTWVzc2FnZTpXNGEscG9zdE1lc3NhZ2U6VTRhLGNhbkJlVXNlZDpHNGEsdHlwZTpxNGEsYXZlcmFnZVJlc3BvbnNlVGltZTpZNGEsbWljcm9TZWNvbmRzOkg0YX19KTtmdW5jdGlvbiBLNGEodCl7bGV0IGU9cGJlKCktdC50dGwscj10Lm1hcFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtsZXQgYT1yLm5leHQoKS52YWx1ZTtpZighYSlicmVhaztsZXQgcz1hWzBdO2lmKGFbMV08ZSl0Lm1hcC5kZWxldGUocyk7ZWxzZSBicmVha319ZnVuY3Rpb24gcGJlKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIFBiLGZiZT11KCgpPT57UGI9Y2xhc3N7c3RhdGlje2kodGhpcywiT2JsaXZpb3VzU2V0Iil9dHRsO21hcD1uZXcgTWFwO190bz0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLnR0bD1lfWhhcyhlKXtsZXQgcj10aGlzLm1hcC5nZXQoZSk7cmV0dXJuIHR5cGVvZiByPiJ1Ij8hMTpyPHBiZSgpLXRoaXMudHRsPyh0aGlzLm1hcC5kZWxldGUoZSksITEpOiEwfWFkZChlKXt0aGlzLm1hcC5kZWxldGUoZSksdGhpcy5tYXAuc2V0KGUscGJlKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLEs0YSh0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19O2koSzRhLCJyZW1vdmVUb29PbGRWYWx1ZXMiKTtpKHBiZSwibm93Iil9KTtmdW5jdGlvbiBuaCgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxlPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpO3JldHVybiB0eXBlb2YgZS53ZWJXb3JrZXJTdXBwb3J0PiJ1IiYmKGUud2ViV29ya2VyU3VwcG9ydD0hMCksZS5pZGJ8fChlLmlkYj17fSksZS5pZGIudHRsfHwoZS5pZGIudHRsPTFlMyo0NSksZS5pZGIuZmFsbGJhY2tJbnRlcnZhbHx8KGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWw9MTUwKSx0LmlkYiYmdHlwZW9mIHQuaWRiLm9uY2xvc2U9PSJmdW5jdGlvbiImJihlLmlkYi5vbmNsb3NlPXQuaWRiLm9uY2xvc2UpLGUubG9jYWxzdG9yYWdlfHwoZS5sb2NhbHN0b3JhZ2U9e30pLGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXR8fChlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0PTFlMyo2MCksdC5tZXRob2RzJiYoZS5tZXRob2RzPXQubWV0aG9kcyksZS5ub2RlfHwoZS5ub2RlPXt9KSxlLm5vZGUudHRsfHwoZS5ub2RlLnR0bD0xZTMqNjAqMiksZS5ub2RlLm1heFBhcmFsbGVsV3JpdGVzfHwoZS5ub2RlLm1heFBhcmFsbGVsV3JpdGVzPTIwNDgpLHR5cGVvZiBlLm5vZGUudXNlRmFzdFBhdGg+InUiJiYoZS5ub2RlLnVzZUZhc3RQYXRoPSEwKSxlfXZhciBsb2U9dSgoKT0+e2kobmgsImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIil9KTtmdW5jdGlvbiBLVHQoKXtpZih0eXBlb2YgaW5kZXhlZERCPCJ1IilyZXR1cm4gaW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3c8InUiKXtpZih0eXBlb2Ygd2luZG93Lm1vekluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tb3pJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy53ZWJraXRJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cud2Via2l0SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cubXNJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubXNJbmRleGVkREJ9cmV0dXJuITF9ZnVuY3Rpb24gY29lKHQpe3QuY29tbWl0JiZ0LmNvbW1pdCgpfWZ1bmN0aW9uIEo0YSh0KXt2YXIgZT1LVHQoKSxyPVE0YSt0LGE9ZS5vcGVuKHIpO3JldHVybiBhLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihzKXt2YXIgbj1zLnRhcmdldC5yZXN1bHQ7bi5jcmVhdGVPYmplY3RTdG9yZSgkMix7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KX0sbmV3IFByb21pc2UoZnVuY3Rpb24ocyxuKXthLm9uZXJyb3I9ZnVuY3Rpb24obyl7cmV0dXJuIG4obyl9LGEub25zdWNjZXNzPWZ1bmN0aW9uKCl7cyhhLnJlc3VsdCl9fSl9ZnVuY3Rpb24gZTNhKHQsZSxyKXt2YXIgYT1EYXRlLm5vdygpLHM9e3V1aWQ6ZSx0aW1lOmEsZGF0YTpyfSxuPXQudHJhbnNhY3Rpb24oWyQyXSwicmVhZHdyaXRlIixUUyk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8sbCl7bi5vbmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX0sbi5vbmVycm9yPWZ1bmN0aW9uKGQpe3JldHVybiBsKGQpfTt2YXIgYz1uLm9iamVjdFN0b3JlKCQyKTtjLmFkZChzKSxjb2Uobil9KX1mdW5jdGlvbiBXSWkodCl7dmFyIGU9dC50cmFuc2FjdGlvbigkMiwicmVhZG9ubHkiLFRTKSxyPWUub2JqZWN0U3RvcmUoJDIpLGE9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMpe3Iub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihuKXt2YXIgbz1uLnRhcmdldC5yZXN1bHQ7bz8oYS5wdXNoKG8udmFsdWUpLG8uY29udGludWUoKSk6KGNvZShlKSxzKGEpKX19KX1mdW5jdGlvbiB0M2EodCxlKXt2YXIgcj10LnRyYW5zYWN0aW9uKCQyLCJyZWFkb25seSIsVFMpLGE9ci5vYmplY3RTdG9yZSgkMikscz1bXSxuPUlEQktleVJhbmdlLmJvdW5kKGUrMSwxLzApO2lmKGEuZ2V0QWxsKXt2YXIgbz1hLmdldEFsbChuKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXtvLm9uZXJyb3I9ZnVuY3Rpb24oZil7cmV0dXJuIGQoZil9LG8ub25zdWNjZXNzPWZ1bmN0aW9uKGYpe2MoZi50YXJnZXQucmVzdWx0KX19KX1mdW5jdGlvbiBsKCl7dHJ5e3JldHVybiBuPUlEQktleVJhbmdlLmJvdW5kKGUrMSwxLzApLGEub3BlbkN1cnNvcihuKX1jYXRjaHtyZXR1cm4gYS5vcGVuQ3Vyc29yKCl9fXJldHVybiBpKGwsIm9wZW5DdXJzb3IiKSxuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe3ZhciBmPWwoKTtmLm9uZXJyb3I9ZnVuY3Rpb24ocCl7cmV0dXJuIGQocCl9LGYub25zdWNjZXNzPWZ1bmN0aW9uKHApe3ZhciBoPXAudGFyZ2V0LnJlc3VsdDtoP2gudmFsdWUuaWQ8ZSsxP2guY29udGludWUoZSsxKToocy5wdXNoKGgudmFsdWUpLGguY29udGludWUoKSk6KGNvZShyKSxjKHMpKX19KX1mdW5jdGlvbiByM2EodCxlKXtpZih0LmNsb3NlZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgcj10LmRiLnRyYW5zYWN0aW9uKCQyLCJyZWFkd3JpdGUiLFRTKSxhPXIub2JqZWN0U3RvcmUoJDIpO3JldHVybiBQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihzKXt2YXIgbj1hLmRlbGV0ZShzKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7bi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbygpfX0pfSkpfWZ1bmN0aW9uIGEzYSh0LGUpe3ZhciByPURhdGUubm93KCktZSxhPXQudHJhbnNhY3Rpb24oJDIsInJlYWRvbmx5IixUUykscz1hLm9iamVjdFN0b3JlKCQyKSxuPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvKXtzLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24obCl7dmFyIGM9bC50YXJnZXQucmVzdWx0O2lmKGMpe3ZhciBkPWMudmFsdWU7ZC50aW1lPHI/KG4ucHVzaChkKSxjLmNvbnRpbnVlKCkpOihjb2UoYSksbyhuKSl9ZWxzZSBvKG4pfX0pfWZ1bmN0aW9uIGkzYSh0KXtyZXR1cm4gYTNhKHQuZGIsdC5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHIzYSh0LGUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmlkfSkpfSl9ZnVuY3Rpb24gczNhKHQsZSl7cmV0dXJuIGU9bmgoZSksSjRhKHQpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGE9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTp0LG9wdGlvbnM6ZSx1dWlkOlVkKCksZU1JczpuZXcgUGIoZS5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOlYxLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjpyfTtyZXR1cm4gci5vbmNsb3NlPWZ1bmN0aW9uKCl7YS5jbG9zZWQ9ITAsZS5pZGIub25jbG9zZSYmZS5pZGIub25jbG9zZSgpfSxaVHQoYSksYX0pfWZ1bmN0aW9uIFpUdCh0KXt0LmNsb3NlZHx8UVR0KHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYzAodC5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gWlR0KHQpfSl9ZnVuY3Rpb24gbjNhKHQsZSl7cmV0dXJuISh0LnV1aWQ9PT1lLnV1aWR8fGUuZU1Jcy5oYXModC5pZCl8fHQuZGF0YS50aW1lPGUubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIFFUdCh0KXtyZXR1cm4gdC5jbG9zZWQ/VjE6dC5tZXNzYWdlc0NhbGxiYWNrP3QzYSh0LmRiLHQubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciByPWUuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiEhYX0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD50Lmxhc3RDdXJzb3JJZCYmKHQubGFzdEN1cnNvcklkPWEuaWQpLGF9KS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIG4zYShhLHQpfSkuc29ydChmdW5jdGlvbihhLHMpe3JldHVybiBhLnRpbWUtcy50aW1lfSk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihhKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJih0LmVNSXMuYWRkKGEuaWQpLHQubWVzc2FnZXNDYWxsYmFjayhhLmRhdGEpKX0pLFYxfSk6VjF9ZnVuY3Rpb24gbzNhKHQpe3QuY2xvc2VkPSEwLHQuZGIuY2xvc2UoKX1mdW5jdGlvbiBsM2EodCxlKXtyZXR1cm4gdC53cml0ZUJsb2NrUHJvbWlzZT10LndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZTNhKHQuZGIsdC51dWlkLGUpfSkudGhlbihmdW5jdGlvbigpe1VUdCgwLDEwKT09PTAmJmkzYSh0KX0pLHQud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gYzNhKHQsZSxyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsdC5tZXNzYWdlc0NhbGxiYWNrPWUsUVR0KHQpfWZ1bmN0aW9uIGQzYSgpe3JldHVybiEhS1R0KCl9ZnVuY3Rpb24gdTNhKHQpe3JldHVybiB0LmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIFo0YSxRNGEsJDIsVFMsWDRhLFhUdCxKVHQ9dSgoKT0+e3V1KCk7ZmJlKCk7bG9lKCk7WjRhPVdkLFE0YT0icHVia2V5LmJyb2FkY2FzdC1jaGFubmVsLTAtIiwkMj0ibWVzc2FnZXMiLFRTPXtkdXJhYmlsaXR5OiJyZWxheGVkIn0sWDRhPSJpZGIiO2koS1R0LCJnZXRJZGIiKTtpKGNvZSwiY29tbWl0SW5kZXhlZERCVHJhbnNhY3Rpb24iKTtpKEo0YSwiY3JlYXRlRGF0YWJhc2UiKTtpKGUzYSwid3JpdGVNZXNzYWdlIik7aShXSWksImdldEFsbE1lc3NhZ2VzIik7aSh0M2EsImdldE1lc3NhZ2VzSGlnaGVyVGhhbiIpO2kocjNhLCJyZW1vdmVNZXNzYWdlc0J5SWQiKTtpKGEzYSwiZ2V0T2xkTWVzc2FnZXMiKTtpKGkzYSwiY2xlYW5PbGRNZXNzYWdlcyIpO2koczNhLCJjcmVhdGUiKTtpKFpUdCwiX3JlYWRMb29wIik7aShuM2EsIl9maWx0ZXJNZXNzYWdlIik7aShRVHQsInJlYWROZXdNZXNzYWdlcyIpO2kobzNhLCJjbG9zZSIpO2kobDNhLCJwb3N0TWVzc2FnZSIpO2koYzNhLCJvbk1lc3NhZ2UiKTtpKGQzYSwiY2FuQmVVc2VkIik7aSh1M2EsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtYVHQ9e2NyZWF0ZTpzM2EsY2xvc2U6bzNhLG9uTWVzc2FnZTpjM2EscG9zdE1lc3NhZ2U6bDNhLGNhbkJlVXNlZDpkM2EsdHlwZTpYNGEsYXZlcmFnZVJlc3BvbnNlVGltZTp1M2EsbWljcm9TZWNvbmRzOlo0YX19KTtmdW5jdGlvbiBlTHQoKXt2YXIgdDtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gbnVsbDt0cnl7dD13aW5kb3cubG9jYWxTdG9yYWdlLHQ9d2luZG93WyJpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlIl18fHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIHRMdCh0KXtyZXR1cm4gZjNhK3R9ZnVuY3Rpb24gbTNhKHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe2MwKCkudGhlbihmdW5jdGlvbigpe3ZhciBhPXRMdCh0LmNoYW5uZWxOYW1lKSxzPXt0b2tlbjpVZCgpLHRpbWU6RGF0ZS5ub3coKSxkYXRhOmUsdXVpZDp0LnV1aWR9LG49SlNPTi5zdHJpbmdpZnkocyk7ZUx0KCkuc2V0SXRlbShhLG4pO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO28uaW5pdEV2ZW50KCJzdG9yYWdlIiwhMCwhMCksby5rZXk9YSxvLm5ld1ZhbHVlPW4sd2luZG93LmRpc3BhdGNoRXZlbnQobykscigpfSl9KX1mdW5jdGlvbiBnM2EodCxlKXt2YXIgcj10THQodCksYT1pKGZ1bmN0aW9uKG4pe24ua2V5PT09ciYmZShKU09OLnBhcnNlKG4ubmV3VmFsdWUpKX0sImxpc3RlbmVyIik7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIixhKSxhfWZ1bmN0aW9uIGIzYSh0KXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsdCl9ZnVuY3Rpb24geDNhKHQsZSl7aWYoZT1uaChlKSwhckx0KCkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBsb2NhbHN0b3JhZ2UgY2Fubm90IGJlIHVzZWQiKTt2YXIgcj1VZCgpLGE9bmV3IFBiKGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXQpLHM9e2NoYW5uZWxOYW1lOnQsdXVpZDpyLGVNSXM6YX07cmV0dXJuIHMubGlzdGVuZXI9ZzNhKHQsZnVuY3Rpb24obil7cy5tZXNzYWdlc0NhbGxiYWNrJiZuLnV1aWQhPT1yJiYoIW4udG9rZW58fGEuaGFzKG4udG9rZW4pfHxuLmRhdGEudGltZSYmbi5kYXRhLnRpbWU8cy5tZXNzYWdlc0NhbGxiYWNrVGltZXx8KGEuYWRkKG4udG9rZW4pLHMubWVzc2FnZXNDYWxsYmFjayhuLmRhdGEpKSl9KSxzfWZ1bmN0aW9uIHYzYSh0KXtiM2EodC5saXN0ZW5lcil9ZnVuY3Rpb24geTNhKHQsZSxyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsdC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gckx0KCl7dmFyIHQ9ZUx0KCk7aWYoIXQpcmV0dXJuITE7dHJ5e3ZhciBlPSJfX2Jyb2FkY2FzdGNoYW5uZWxfY2hlY2siO3Quc2V0SXRlbShlLCJ3b3JrcyIpLHQucmVtb3ZlSXRlbShlKX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB3M2EoKXt2YXIgdD0xMjAsZT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIGUuaW5jbHVkZXMoInNhZmFyaSIpJiYhZS5pbmNsdWRlcygiY2hyb21lIik/dCoyOnR9dmFyIHAzYSxmM2EsaDNhLGFMdCxpTHQ9dSgoKT0+e2ZiZSgpO2xvZSgpO3V1KCk7cDNhPVdkLGYzYT0icHVia2V5LmJyb2FkY2FzdENoYW5uZWwtIixoM2E9ImxvY2Fsc3RvcmFnZSI7aShlTHQsImdldExvY2FsU3RvcmFnZSIpO2kodEx0LCJzdG9yYWdlS2V5Iik7aShtM2EsInBvc3RNZXNzYWdlIik7aShnM2EsImFkZFN0b3JhZ2VFdmVudExpc3RlbmVyIik7aShiM2EsInJlbW92ZVN0b3JhZ2VFdmVudExpc3RlbmVyIik7aSh4M2EsImNyZWF0ZSIpO2kodjNhLCJjbG9zZSIpO2koeTNhLCJvbk1lc3NhZ2UiKTtpKHJMdCwiY2FuQmVVc2VkIik7aSh3M2EsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTthTHQ9e2NyZWF0ZTp4M2EsY2xvc2U6djNhLG9uTWVzc2FnZTp5M2EscG9zdE1lc3NhZ2U6bTNhLGNhbkJlVXNlZDpyTHQsdHlwZTpoM2EsYXZlcmFnZVJlc3BvbnNlVGltZTp3M2EsbWljcm9TZWNvbmRzOnAzYX19KTtmdW5jdGlvbiBTM2EodCl7dmFyIGU9e3RpbWU6c0x0KCksbmFtZTp0LG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbH07cmV0dXJuIGhiZS5hZGQoZSksZX1mdW5jdGlvbiBNM2EodCl7aGJlLmRlbGV0ZSh0KX1mdW5jdGlvbiBDM2EodCxlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocil7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYT1BcnJheS5mcm9tKGhiZSk7YS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MubmFtZT09PXQubmFtZSYmcyE9PXQmJnMubWVzc2FnZXNDYWxsYmFjayYmcy50aW1lPGUudGltZSYmcy5tZXNzYWdlc0NhbGxiYWNrKGUpfSkscigpfSxuTHQpfSl9ZnVuY3Rpb24gejNhKHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gXzNhKCl7cmV0dXJuITB9ZnVuY3Rpb24gVDNhKCl7cmV0dXJuIG5MdH12YXIgc0x0LGszYSxoYmUsbkx0LG9MdCxsTHQ9dSgoKT0+e3V1KCk7c0x0PVdkLGszYT0ic2ltdWxhdGUiLGhiZT1uZXcgU2V0O2koUzNhLCJjcmVhdGUiKTtpKE0zYSwiY2xvc2UiKTtuTHQ9NTtpKEMzYSwicG9zdE1lc3NhZ2UiKTtpKHozYSwib25NZXNzYWdlIik7aShfM2EsImNhbkJlVXNlZCIpO2koVDNhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7b0x0PXtjcmVhdGU6UzNhLGNsb3NlOk0zYSxvbk1lc3NhZ2U6ejNhLHBvc3RNZXNzYWdlOkMzYSxjYW5CZVVzZWQ6XzNhLHR5cGU6azNhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6VDNhLG1pY3JvU2Vjb25kczpzTHR9fSk7ZnVuY3Rpb24gbWJlKHQpe3ZhciBlPVtdLmNvbmNhdCh0Lm1ldGhvZHMsY0x0KS5maWx0ZXIoQm9vbGVhbik7aWYodC50eXBlKXtpZih0LnR5cGU9PT0ic2ltdWxhdGUiKXJldHVybiBvTHQ7dmFyIHI9ZS5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGU9PT10LnR5cGV9KTtpZihyKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigibWV0aG9kLXR5cGUgIit0LnR5cGUrIiBub3QgZm91bmQiKX10LndlYldvcmtlclN1cHBvcnR8fChlPWUuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGUhPT0iaWRiIn0pKTt2YXIgYT1lLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuY2FuQmVVc2VkKCl9KTtpZihhKXJldHVybiBhO3Rocm93IG5ldyBFcnJvcigiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KGNMdC5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMudHlwZX0pKSl9dmFyIGNMdCxkTHQ9dSgoKT0+e1lUdCgpO0pUdCgpO2lMdCgpO2xMdCgpO2NMdD1bR1R0LFhUdCxhTHRdO2kobWJlLCJjaG9vc2VNZXRob2QiKX0pO2Z1bmN0aW9uIEQzYSh0KXt0PW5oKHQpO3ZhciBlPW1iZSh0KTtyZXR1cm4gZS50eXBlPT09Im5vZGUiP2UuY2xlYXJOb2RlRm9sZGVyKCkudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSk6VlR0fWZ1bmN0aW9uICQzYSh0KXtnYmU9dH1mdW5jdGlvbiB1THQodCxlLHIpe3ZhciBhPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpLHM9e3RpbWU6YSx0eXBlOmUsZGF0YTpyfSxuPXQuX3ByZXBQP3QuX3ByZXBQOlYxO3JldHVybiBuLnRoZW4oZnVuY3Rpb24oKXt2YXIgbz10Lm1ldGhvZC5wb3N0TWVzc2FnZSh0Ll9zdGF0ZSxzKTtyZXR1cm4gdC5fdU1QLmFkZChvKSxvLmNhdGNoKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Ll91TVAuZGVsZXRlKG8pfSksb30pfWZ1bmN0aW9uIEEzYSh0KXt2YXIgZT10Lm1ldGhvZC5jcmVhdGUodC5uYW1lLHQub3B0aW9ucyk7cVR0KGUpPyh0Ll9wcmVwUD1lLGUudGhlbihmdW5jdGlvbihyKXt0Ll9zdGF0ZT1yfSkpOnQuX3N0YXRlPWV9ZnVuY3Rpb24gcEx0KHQpe3JldHVybiB0Ll9hZGRFTC5tZXNzYWdlLmxlbmd0aD4wfHx0Ll9hZGRFTC5pbnRlcm5hbC5sZW5ndGg+MH1mdW5jdGlvbiBmTHQodCxlLHIpe3QuX2FkZEVMW2VdLnB1c2gociksRTNhKHQpfWZ1bmN0aW9uIGhMdCh0LGUscil7dC5fYWRkRUxbZV09dC5fYWRkRUxbZV0uZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhIT09cn0pLEkzYSh0KX1mdW5jdGlvbiBFM2EodCl7aWYoIXQuX2lMJiZwTHQodCkpe3ZhciBlPWkoZnVuY3Rpb24ocyl7dC5fYWRkRUxbcy50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3MudGltZT49bi50aW1lJiZuLmZuKHMuZGF0YSl9KX0sImxpc3RlbmVyRm4iKSxyPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpO3QuX3ByZXBQP3QuX3ByZXBQLnRoZW4oZnVuY3Rpb24oKXt0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxyKX0pOih0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxyKSl9fWZ1bmN0aW9uIEkzYSh0KXtpZih0Ll9pTCYmIXBMdCh0KSl7dC5faUw9ITE7dmFyIGU9dC5tZXRob2QubWljcm9TZWNvbmRzKCk7dC5tZXRob2Qub25NZXNzYWdlKHQuX3N0YXRlLG51bGwsZSl9fXZhciBiYmUsTDNhLG9oLGdiZSxtTHQ9dSgoKT0+e3V1KCk7ZEx0KCk7bG9lKCk7YmJlPW5ldyBTZXQsTDNhPTAsb2g9aShmdW5jdGlvbihlLHIpe3RoaXMuaWQ9TDNhKyssYmJlLmFkZCh0aGlzKSx0aGlzLm5hbWU9ZSxnYmUmJihyPWdiZSksdGhpcy5vcHRpb25zPW5oKHIpLHRoaXMubWV0aG9kPW1iZSh0aGlzLm9wdGlvbnMpLHRoaXMuX2lMPSExLHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTD17bWVzc2FnZTpbXSxpbnRlcm5hbDpbXX0sdGhpcy5fdU1QPW5ldyBTZXQsdGhpcy5fYmVmQz1bXSx0aGlzLl9wcmVwUD1udWxsLEEzYSh0aGlzKX0sIkJyb2FkY2FzdENoYW5uZWwiKTtvaC5fcHVia2V5PSEwO2koRDNhLCJjbGVhck5vZGVGb2xkZXIiKTtpKCQzYSwiZW5mb3JjZU9wdGlvbnMiKSxvaC5wcm90b3R5cGU9e3Bvc3RNZXNzYWdlOmkoZnVuY3Rpb24oZSl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCk6IENhbm5vdCBwb3N0IG1lc3NhZ2UgYWZ0ZXIgY2hhbm5lbCBoYXMgY2xvc2VkICIrSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiB1THQodGhpcywibWVzc2FnZSIsZSl9LCJwb3N0TWVzc2FnZSIpLHBvc3RJbnRlcm5hbDppKGZ1bmN0aW9uKGUpe3JldHVybiB1THQodGhpcywiaW50ZXJuYWwiLGUpfSwicG9zdEludGVybmFsIiksc2V0IG9ubWVzc2FnZSh0KXt2YXIgZT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmUsZm46dH07aEx0KHRoaXMsIm1lc3NhZ2UiLHRoaXMuX29uTUwpLHQmJnR5cGVvZiB0PT0iZnVuY3Rpb24iPyh0aGlzLl9vbk1MPXIsZkx0KHRoaXMsIm1lc3NhZ2UiLHIpKTp0aGlzLl9vbk1MPW51bGx9LGFkZEV2ZW50TGlzdGVuZXI6aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLHM9e3RpbWU6YSxmbjpyfTtmTHQodGhpcyxlLHMpfSwiYWRkRXZlbnRMaXN0ZW5lciIpLHJlbW92ZUV2ZW50TGlzdGVuZXI6aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXMuX2FkZEVMW2VdLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZm49PT1yfSk7aEx0KHRoaXMsZSxhKX0sInJlbW92ZUV2ZW50TGlzdGVuZXIiKSxjbG9zZTppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighdGhpcy5jbG9zZWQpe2JiZS5kZWxldGUodGhpcyksdGhpcy5jbG9zZWQ9ITA7dmFyIHI9dGhpcy5fcHJlcFA/dGhpcy5fcHJlcFA6VjE7cmV0dXJuIHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTC5tZXNzYWdlPVtdLHIudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChBcnJheS5mcm9tKGUuX3VNUCkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChlLl9iZWZDLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYSgpfSkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLm1ldGhvZC5jbG9zZShlLl9zdGF0ZSl9KX19LCJjbG9zZSIpLGdldCB0eXBlKCl7cmV0dXJuIHRoaXMubWV0aG9kLnR5cGV9LGdldCBpc0Nsb3NlZCgpe3JldHVybiB0aGlzLmNsb3NlZH19O2kodUx0LCJfcG9zdCIpO2koQTNhLCJfcHJlcGFyZUNoYW5uZWwiKTtpKHBMdCwiX2hhc01lc3NhZ2VMaXN0ZW5lcnMiKTtpKGZMdCwiX2FkZExpc3RlbmVyT2JqZWN0Iik7aShoTHQsIl9yZW1vdmVMaXN0ZW5lck9iamVjdCIpO2koRTNhLCJfc3RhcnRMaXN0ZW5pbmciKTtpKEkzYSwiX3N0b3BMaXN0ZW5pbmciKX0pO2Z1bmN0aW9uIGdMdCh0KXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIGU9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLGUoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7dCgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXt0KCl9LCEwKX19dmFyIGJMdD11KCgpPT57aShnTHQsImFkZEJyb3dzZXIiKX0pO2Z1bmN0aW9uIHhMdCh0KXtwcm9jZXNzLm9uKCJleGl0IixmdW5jdGlvbigpe3JldHVybiB0KCl9KSxwcm9jZXNzLm9uKCJiZWZvcmVFeGl0IixmdW5jdGlvbigpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBwcm9jZXNzLmV4aXQoKX0pfSkscHJvY2Vzcy5vbigiU0lHSU5UIixmdW5jdGlvbigpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBwcm9jZXNzLmV4aXQoKX0pfSkscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKGUpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe2NvbnNvbGUudHJhY2UoZSkscHJvY2Vzcy5leGl0KDEwMSl9KX0pfXZhciB2THQ9dSgoKT0+e2koeEx0LCJhZGROb2RlIil9KTtmdW5jdGlvbiBPM2EoKXt5THR8fCh5THQ9ITAsTjNhKFIzYSkpfWZ1bmN0aW9uIHdMdCh0KXtpZihPM2EoKSx0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIkxpc3RlbmVyIGlzIG5vIGZ1bmN0aW9uIik7bGguYWRkKHQpO3ZhciBlPXtyZW1vdmU6aShmdW5jdGlvbigpe3JldHVybiBsaC5kZWxldGUodCl9LCJyZW1vdmUiKSxydW46aShmdW5jdGlvbigpe3JldHVybiBsaC5kZWxldGUodCksdCgpfSwicnVuIil9O3JldHVybiBlfWZ1bmN0aW9uIFIzYSgpe3ZhciB0PVtdO3JldHVybiBsaC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaChlKCkpLGxoLmRlbGV0ZShlKX0pLFByb21pc2UuYWxsKHQpfWZ1bmN0aW9uIHlQaSgpe2xoLmNsZWFyKCl9ZnVuY3Rpb24gd1BpKCl7cmV0dXJuIGxoLnNpemV9dmFyIFAzYSxOM2EsbGgseUx0LGtMdD11KCgpPT57Ykx0KCk7dkx0KCk7UDNhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0eXBlb2YgcHJvY2VzczwidSI/cHJvY2VzczowKT09PSJbb2JqZWN0IHByb2Nlc3NdIixOM2E9UDNhP3hMdDpnTHQsbGg9bmV3IFNldCx5THQ9ITE7aShPM2EsInN0YXJ0TGlzdGVuaW5nIik7aSh3THQsImFkZCIpO2koUjNhLCJydW5BbGwiKTtpKHlQaSwicmVtb3ZlQWxsIik7aSh3UGksImdldFNpemUiKX0pO2Z1bmN0aW9uIEdkKHQsZSl7dmFyIHI9e2NvbnRleHQ6ImxlYWRlciIsYWN0aW9uOmUsdG9rZW46dC50b2tlbn07cmV0dXJuIHQuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0SW50ZXJuYWwocil9ZnVuY3Rpb24gTFModCl7dC5pc0xlYWRlcj0hMCx0Ll9oYXNMZWFkZXI9ITA7dmFyIGU9d0x0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuZGllKCl9KTt0Ll91bmwucHVzaChlKTt2YXIgcj1pKGZ1bmN0aW9uKHMpe3MuY29udGV4dD09PSJsZWFkZXIiJiZzLmFjdGlvbj09PSJhcHBseSImJkdkKHQsInRlbGwiKSxzLmNvbnRleHQ9PT0ibGVhZGVyIiYmcy5hY3Rpb249PT0idGVsbCImJiF0Ll9kcExDJiYodC5fZHBMQz0hMCx0Ll9kcEwoKSxHZCh0LCJ0ZWxsIikpfSwiaXNMZWFkZXJMaXN0ZW5lciIpO3JldHVybiB0LmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpLHQuX2xzdG5zLnB1c2gociksR2QodCwidGVsbCIpfXZhciBkb2U9dSgoKT0+e2tMdCgpO2koR2QsInNlbmRMZWFkZXJNZXNzYWdlIik7aShMUywiYmVMZWFkZXIiKX0pO3ZhciB4YmUsU0x0LE1MdD11KCgpPT57dXUoKTtkb2UoKTt4YmU9aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPWUsZS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGllKCl9KSx0aGlzLl9vcHRpb25zPXIsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPVVkKCksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMSx0aGlzLl93S01DPXt9LHRoaXMubE49InB1YmtleS1iY3x8IitlLm1ldGhvZC50eXBlKyJ8fCIrZS5uYW1lfSwiTGVhZGVyRWxlY3Rpb25XZWJMb2NrIiksU0x0PSJMZWFkZXJFbGVjdGlvbldlYkxvY2suZGllKCkgY2FsbGVkIjt4YmUucHJvdG90eXBlPXtoYXNMZWFkZXI6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIG5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGE9ci5oZWxkP3IuaGVsZC5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHMubmFtZT09PWUubE59KTpbXTtyZXR1cm4hIShhJiZhLmxlbmd0aD4wKX0pfSwiaGFzTGVhZGVyIiksYXdhaXRMZWFkZXJzaGlwOmkoZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLl93TE1QKXt0aGlzLl93S01DLmM9bmV3IEFib3J0Q29udHJvbGxlcjt2YXIgcj1uZXcgUHJvbWlzZShmdW5jdGlvbihhLHMpe2UuX3dLTUMucmVzPWEsZS5fd0tNQy5yZWo9c30pO3RoaXMuX3dMTVA9bmV3IFByb21pc2UoZnVuY3Rpb24oYSxzKXtuYXZpZ2F0b3IubG9ja3MucmVxdWVzdChlLmxOLHtzaWduYWw6ZS5fd0tNQy5jLnNpZ25hbH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5fd0tNQy5jPXZvaWQgMCxMUyhlKSxhKCkscn0pLmNhdGNoKGZ1bmN0aW9uKG4pe24ubWVzc2FnZSYmbi5tZXNzYWdlPT09U0x0fHwoZS5fd0tNQy5yZWomJmUuX3dLTUMucmVqKG4pLHMobikpfSl9KX1yZXR1cm4gdGhpcy5fd0xNUH0sImF3YWl0TGVhZGVyc2hpcCIpLHNldCBvbmR1cGxpY2F0ZSh0KXt9LGRpZTppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fbHN0bnMuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixyKX0pLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubC5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JldHVybiByLnJlbW92ZSgpfSksdGhpcy5fdW5sPVtdLHRoaXMuaXNMZWFkZXImJih0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCx0aGlzLl93S01DLnJlcyYmdGhpcy5fd0tNQy5yZXMoKSx0aGlzLl93S01DLmMmJnRoaXMuX3dLTUMuYy5hYm9ydChuZXcgRXJyb3IoU0x0KSksR2QodGhpcywiZGVhdGgiKX0sImRpZSIpfX0pO2Z1bmN0aW9uIEYzYSh0KXtyZXR1cm4gdC5pc0xlYWRlcj9WMTpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgcj0hMTtmdW5jdGlvbiBhKCl7cnx8KHI9ITAsdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSxlKCEwKSl9aShhLCJmaW5pc2giKSx0LmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXt0LmlzTGVhZGVyJiZhKCl9KTt2YXIgcz1pKGZ1bmN0aW9uKCl7cmV0dXJuIGMwKHQuX29wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkudGhlbihmdW5jdGlvbigpe2lmKCEodC5pc0RlYWR8fHIpKWlmKHQuaXNMZWFkZXIpYSgpO2Vsc2UgcmV0dXJuIHQuYXBwbHlPbmNlKCEwKS50aGVuKGZ1bmN0aW9uKCl7dC5pc0xlYWRlcj9hKCk6cygpfSl9KX0sInRyeU9uRmFsbEJhY2siKTtzKCk7dmFyIG49aShmdW5jdGlvbihsKXtsLmNvbnRleHQ9PT0ibGVhZGVyIiYmbC5hY3Rpb249PT0iZGVhdGgiJiYodC5faGFzTGVhZGVyPSExLHQuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe3QuaXNMZWFkZXImJmEoKX0pKX0sIndoZW5EZWF0aExpc3RlbmVyIik7dC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSx0Ll9sc3Rucy5wdXNoKG4pfSl9ZnVuY3Rpb24gQjNhKHQsZSl7cmV0dXJuIHR8fCh0PXt9KSx0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLHQuZmFsbGJhY2tJbnRlcnZhbHx8KHQuZmFsbGJhY2tJbnRlcnZhbD0zZTMpLHQucmVzcG9uc2VUaW1lfHwodC5yZXNwb25zZVRpbWU9ZS5tZXRob2QuYXZlcmFnZVJlc3BvbnNlVGltZShlLm9wdGlvbnMpKSx0fWZ1bmN0aW9uIEgzYSh0LGUpe2lmKHQuX2xlYWRlckVsZWN0b3IpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsIGFscmVhZHkgaGFzIGEgbGVhZGVyLWVsZWN0b3IiKTtlPUIzYShlLHQpO3ZhciByPVdUdCgpP25ldyB4YmUodCxlKTpuZXcgQ0x0KHQsZSk7cmV0dXJuIHQuX2JlZkMucHVzaChmdW5jdGlvbigpe3JldHVybiByLmRpZSgpfSksdC5fbGVhZGVyRWxlY3Rvcj1yLHJ9dmFyIENMdCx6THQ9dSgoKT0+e3V1KCk7ZG9lKCk7TUx0KCk7Q0x0PWkoZnVuY3Rpb24oZSxyKXt2YXIgYT10aGlzO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1lLHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPVVkKCksdGhpcy5fYXBsUT1WMSx0aGlzLl9hcGxRQz0wLHRoaXMuX3VubD1bXSx0aGlzLl9sc3Rucz1bXSx0aGlzLl9kcEw9ZnVuY3Rpb24oKXt9LHRoaXMuX2RwTEM9ITE7dmFyIHM9aShmdW5jdGlvbihvKXtvLmNvbnRleHQ9PT0ibGVhZGVyIiYmKG8uYWN0aW9uPT09ImRlYXRoIiYmKGEuX2hhc0xlYWRlcj0hMSksby5hY3Rpb249PT0idGVsbCImJihhLl9oYXNMZWFkZXI9ITApKX0sImhhc0xlYWRlckxpc3RlbmVyIik7dGhpcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixzKSx0aGlzLl9sc3Rucy5wdXNoKHMpfSwiTGVhZGVyRWxlY3Rpb24iKTtDTHQucHJvdG90eXBlPXtoYXNMZWFkZXI6aShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5faGFzTGVhZGVyKX0sImhhc0xlYWRlciIpLGFwcGx5T25jZTppKGZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7aWYodGhpcy5pc0xlYWRlcilyZXR1cm4gYzAoMCwhMCk7aWYodGhpcy5pc0RlYWQpcmV0dXJuIGMwKDAsITEpO2lmKHRoaXMuX2FwbFFDPjEpcmV0dXJuIHRoaXMuX2FwbFE7dmFyIGE9aShmdW5jdGlvbigpe2lmKHIuaXNMZWFkZXIpcmV0dXJuIGpUdDt2YXIgbj0hMSxvLGw9bmV3IFByb21pc2UoZnVuY3Rpb24oZil7bz1pKGZ1bmN0aW9uKCl7bj0hMCxmKCl9LCJzdG9wQ3JpdGVyaWFQcm9taXNlUmVzb2x2ZSIpfSksYz1pKGZ1bmN0aW9uKHApe3AuY29udGV4dD09PSJsZWFkZXIiJiZwLnRva2VuIT1yLnRva2VuJiYocC5hY3Rpb249PT0iYXBwbHkiJiZwLnRva2VuPnIudG9rZW4mJm8oKSxwLmFjdGlvbj09PSJ0ZWxsIiYmKG8oKSxyLl9oYXNMZWFkZXI9ITApKX0sImhhbmRsZU1lc3NhZ2UiKTtyLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGMpO3ZhciBkPWU/ci5fb3B0aW9ucy5yZXNwb25zZVRpbWUqNDpyLl9vcHRpb25zLnJlc3BvbnNlVGltZTtyZXR1cm4gR2QociwiYXBwbHkiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbYzAoZCksbC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBHZChyLCJhcHBseSIpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW2MwKGQpLGwudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbigpe3JldHVybiByLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGMpLG4/ITE6TFMocikudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSl9KX0sImFwcGx5UnVuIik7cmV0dXJuIHRoaXMuX2FwbFFDPXRoaXMuX2FwbFFDKzEsdGhpcy5fYXBsUT10aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYSgpfSkudGhlbihmdW5jdGlvbigpe3IuX2FwbFFDPXIuX2FwbFFDLTF9KSx0aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5pc0xlYWRlcn0pfSwiYXBwbHlPbmNlIiksYXdhaXRMZWFkZXJzaGlwOmkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYUxQfHwodGhpcy5fYUxQPUYzYSh0aGlzKSksdGhpcy5fYUxQfSwiYXdhaXRMZWFkZXJzaGlwIiksc2V0IG9uZHVwbGljYXRlKHQpe3RoaXMuX2RwTD10fSxkaWU6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIGUuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscil9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLEdkKHRoaXMsImRlYXRoIil9LCJkaWUiKX07aShGM2EsIl9hd2FpdExlYWRlcnNoaXBPbmNlIik7aShCM2EsImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIik7aShIM2EsImNyZWF0ZUxlYWRlckVsZWN0aW9uIil9KTt2YXIgX0x0PXUoKCk9PnttTHQoKTt6THQoKTtkb2UoKX0pO3ZhciBUTHQ9dSgoKT0+e05kKCk7cWYoKTtIVHQoKTtfTHQoKX0pO3ZhciB2YmUseWJlLExMdD11KCgpPT57VEx0KCk7dmJlPWdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbDt2YmV8fCh2YmU9b2gpO3liZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ29tbXMiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1uZXcgdmJlKCJkZWVzLWNvbW1zIiksdGhpcy50eXBlZHJvdXRlcj1uZXcgZHUuVHlwZWRSb3V0ZXIsdGhpcy50eXBlZHRhcmdldD1uZXcgZHUuVHlwZWRUYXJnZXQoe3Bvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXI6aShhc3luYyBlPT57dGhpcy5wb3N0TWVzc2FnZShlKX0sInBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIiKSx0eXBlZFJvdXRlclJlZjp0aGlzLnR5cGVkcm91dGVyfSksdGhpcy5icm9hZGNhc3RDaGFubmVsLm9ubWVzc2FnZT1hc3luYyBlPT57bGV0IHI9ZS5tZXRob2Q/ZTplLmRhdGE7Y29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocikpO2xldCBhPWF3YWl0IHRoaXMudHlwZWRyb3V0ZXIucm91dGVBbmRBZGRSZXNwb25zZShyLHtza2lwSG9va3M6ITB9KTthJiYhYS5lcnJvciYmdGhpcy5wb3N0TWVzc2FnZShhKX19Y3JlYXRlVHlwZWRSZXF1ZXN0KGUpe3JldHVybiBuZXcgZHUuVHlwZWRSZXF1ZXN0KHRoaXMudHlwZWR0YXJnZXQsZSl9YXN5bmMgcG9zdE1lc3NhZ2UoZSl7dGhpcy5icm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKGUpfWFzeW5jIGNyZWF0ZVR5cGVkSGFuZGxlcihlLHIpe3RoaXMudHlwZWRyb3V0ZXIuYWRkVHlwZWRIYW5kbGVyKG5ldyBkdS5UeXBlZEhhbmRsZXIoZSxyKSl9fX0pO3ZhciBEUz17fTtWZShEUyx7RGVlc0NvbW1zOigpPT55YmV9KTt2YXIgREx0PXUoKCk9PntMTHQoKX0pO3ZhciBwdSxmdT11KCgpPT57cWYoKTtwdT1HYSh2aygpLDEpO01iKCk7d2dlKCk7TmQoKTtNZ2UoKTtHbigpO2lvZSgpfSk7dmFyIEEyLE5iPXUoKCk9PntmdSgpO0EyPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkUmVzcG9uc2VFcnJvciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5lcnJvclRleHQ9ZSx0aGlzLmVycm9yRGF0YT1yfX19KTt2YXIgcG9lLCRMdD11KCgpPT57TmIoKTtmdSgpO3BvZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRvb2xzIil9Y29uc3RydWN0b3IoKXt0aGlzLmxvY2FsRGF0YT17fX1hc3luYyBwYXNzR3VhcmRzKGUscil7bGV0IGE9bmV3IGpkLkd1YXJkU2V0KGUpO2lmKCFhd2FpdCBhLmFsbEd1YXJkc1Bhc3Mocikpe2xldCBuPWF3YWl0IGEuZ2V0RmFpbGVkSGludChyKTt0aHJvdyBuZXcgQTIoYGd1YXJkIGZhaWxlZDogJHtufWAse2ZhaWxlZEhpbnQ6bn0pfX19fSk7dmFyIHdiZSxrYmU9dSgoKT0+e2Z1KCk7TmIoKTskTHQoKTt3YmU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRIYW5kbGVyIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLm1ldGhvZD1lLHRoaXMuaGFuZGxlckZ1bmN0aW9uPXJ9YXN5bmMgYWRkUmVzcG9uc2UoZSl7aWYoZS5tZXRob2QhPT10aGlzLm1ldGhvZCl0aHJvdyBuZXcgRXJyb3IoInRoaXMgaGFuZGxlciBoYXMgYmVlbiBnaXZlbiBhIHdyb25nIG1ldGhvZCB0byBhbnN3ZXIgdG8uIFBsZWFzZSB1c2UgYSBUeXBlZFJvdXRlciB0byBmaWx0ZXIgcmVxdWVzdHMiKTtsZXQgcixhPW5ldyBwb2U7ZS5sb2NhbERhdGEmJihhLmxvY2FsRGF0YT1lLmxvY2FsRGF0YSk7bGV0IHM9YXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24oZS5yZXF1ZXN0LGEpLmNhdGNoKG49PntuIGluc3RhbmNlb2YgQTI/cj1uOmNvbnNvbGUubG9nKG4pfSk7cmV0dXJuIHImJihlLmVycm9yPXt0ZXh0OnIuZXJyb3JUZXh0LGRhdGE6ci5lcnJvckRhdGF9KSxzJiYoZS5yZXNwb25zZT1zKSxlPy5jb3JyZWxhdGlvbj8ucGhhc2UmJihlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIpLGV9fX0pO3ZhciBjaCwkUz11KCgpPT57ZnUoKTtmb2UoKTtrYmUoKTtTYmUoKTtOYigpO2NoPWNsYXNzIHR7c3RhdGlje2kodGhpcywiVHlwZWRSb3V0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuaG9va3M9e30sdGhpcy5yb3V0ZXJNYXA9bmV3IEZhLk9iamVjdE1hcCx0aGlzLmhhbmRsZXJNYXA9bmV3IEZhLk9iamVjdE1hcCx0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcz1uZXcgRmEuT2JqZWN0TWFwLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgRmEuSW50ZXJlc3RNYXAoZT0+ZSl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKGUpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPWV9c3RhdGljIHNldEdsb2JhbEhvb2tzKGUpe2xldCByPXQuZ2xvYmFsSG9va3M7dC5nbG9iYWxIb29rcz17Li4uciwuLi5lfX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKGUpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4uZX19Y2FsbEhvb2soZSxyKXt0cnl7dC5nbG9iYWxIb29rc1tlXT8uKHIpLHRoaXMuaG9va3NbZV0/LihyKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke2V9KTpgLGEpfX1hZGRNaWRkbGV3YXJlKGUpe3RoaXMubWlkZGxld2FyZXMucHVzaChlKX1hZGRUeXBlZEhhbmRsZXIoZSl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZS5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7ZS5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKGUpfWFkZFR5cGVkUm91dGVyKGUpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKGE9PmE9PT1lKXx8KHRoaXMucm91dGVyTWFwLmFkZChlKSxlLmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcihlKXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLHI9W10pe3IucHVzaCh0aGlzKTtsZXQgYTtyZXR1cm4gYT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMocz0+cy5tZXRob2Q9PT1lKSxhfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2gocz0+eyFhJiYhci5pbmNsdWRlcyhzKSYmKGE9cy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxyKSl9KSxhfWdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHI9W10pe3IucHVzaCh0aGlzKTtsZXQgYT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMocz0+cy5tZXRob2Q9PT1lKTtpZihhKXJldHVybntoYW5kbGVyOmEscm91dGVyOnRoaXN9O2ZvcihsZXQgcyBvZiB0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpKWlmKCFyLmluY2x1ZGVzKHMpKXtsZXQgbj1zLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHIpO2lmKG4pcmV0dXJuIG59cmV0dXJuIG51bGx9c3RhdGlje3RoaXMuZGVmYXVsdFJvdXRlT3B0aW9ucz17bG9jYWxSZXF1ZXN0OiExLHNraXBIb29rczohMX19YXN5bmMgcm91dGVBbmRBZGRSZXNwb25zZShlLHI9e30pe2xldCBhPXsuLi50LmRlZmF1bHRSb3V0ZU9wdGlvbnMsLi4ucn07aWYoZT1FMi5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGUubG9jYWxEYXRhPWUubG9jYWxEYXRhfHx7fSxlLmxvY2FsRGF0YS5maXJzdFR5cGVkcm91dGVyPXRoaXMsZS5tZXRob2Q9PT0iIyNWaXJ0dWFsU3RyZWFtIyMiKXtsZXQgcz1hd2FpdCB0aGlzLmhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKTtyZXR1cm4gcy5sb2NhbERhdGE9bnVsbCxzfWlmKGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXF1ZXN0Inx8YS5sb2NhbFJlcXVlc3Qpe2xldCBzPURhdGUubm93KCk7YS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXF1ZXN0Iix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVxdWVzdCIsdGltZXN0YW1wOnMscGF5bG9hZDplLnJlcXVlc3R9KTtsZXQgbj10aGlzLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLm1ldGhvZCk7aWYoIW4pcmV0dXJuIGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7ZS5tZXRob2R9YCksZS5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT1FMi5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGU7bGV0e2hhbmRsZXI6byxyb3V0ZXI6bH09bjtpZihsLm1pZGRsZXdhcmVzLmxlbmd0aD4wKXRyeXtmb3IobGV0IGMgb2YgbC5taWRkbGV3YXJlcylhd2FpdCBjKGUpfWNhdGNoKGMpe3JldHVybiBjIGluc3RhbmNlb2YgQTI/ZS5lcnJvcj17dGV4dDpjLmVycm9yVGV4dCxkYXRhOmMuZXJyb3JEYXRhfHx7fX06ZS5lcnJvcj17dGV4dDpjLm1lc3NhZ2V8fCJNaWRkbGV3YXJlIGVycm9yIixkYXRhOnt9fSxlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIsZS5sb2NhbERhdGE9bnVsbCxlPUUyLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1zLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZX1yZXR1cm4gZT1hd2FpdCBvLmFkZFJlc3BvbnNlKGUpLGUubG9jYWxEYXRhPW51bGwsZT1FMi5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9ZWxzZSByZXR1cm4gZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlc3BvbnNlIj8oYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXAuZmluZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQpPy5mdWxsZmlsbEludGVyZXN0KGUpLG51bGwpOihjb25zb2xlLmxvZygicmVjZWl2ZWQgd2VpcmRseSBzaGFwZWQgcmVxdWVzdCIpLGNvbnNvbGUubG9nKGUpLG51bGwpfWFzeW5jIGhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKXtsZXQgcj1hd2FpdCB0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5maW5kKGFzeW5jIHM9PnMuc3RyZWFtSWQ9PT1lLnJlcXVlc3Quc3RyZWFtSWQpO2lmKHIpY29uc29sZS5sb2coYHN1Y2Nlc3M6IGZvdW5kIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCk7ZWxzZSByZXR1cm4gY29uc29sZS5sb2coYG5vIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIGZvdW5kIGZvciBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKSxjb25zb2xlLmxvZyh0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5nZXRBcnJheSgpKSxlO3JldHVybiBhd2FpdCByLmhhbmRsZVN0cmVhbVRyKGUpfX19KTt2YXIgQUx0LEUyLGZvZT11KCgpPT57ZnUoKTskUygpO0FMdD0iIyMjIyMjIyMjIyMjI0NMT1NJTkcgQklUIyMjIyMjIyMjIyMjIyIsRTI9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU3RyZWFtIil9c3RhdGljIGVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUscixhLHM9W10pe3JldHVybiFlfHxNMi5pc0J1ZmZlckxpa2UoZSk/ZTplIGluc3RhbmNlb2YgdD8oIWUuc2lkZSYmci5zZW5kTWV0aG9kJiYoZS5zaWRlPSJyZXF1ZXN0aW5nIixlLnNlbmRNZXRob2Q9ci5zZW5kTWV0aG9kKSwhZS5zaWRlJiZyLnR5cGVkcm91dGVyJiYoZS5zaWRlPSJyZXNwb25kaW5nIixlLnR5cGVkcm91dGVyPXIudHlwZWRyb3V0ZXIsci50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGUpKSwhYS5yZXNwb25zZXx8cy5pbmNsdWRlcygicmVzcG9uc2UiKT8oZS5zdGFydEtlZXBBbGl2ZUxvb3AoKSx7X2lzVmlydHVhbFN0cmVhbTohMCxzdHJlYW1JZDplLnN0cmVhbUlkfSk6e19PQk1JVFRFRF9WSVJUVUFMX1NUUkVBTTohMCxyZWFzb246InBhdGggaXMgdW5kZXIgLnJlcXVlc3Q6IG9ibWl0dGVkIGZvciBkZWR1cGxpY2F0aW9uIHJlYXNvbnMgaW4gcmVzcG9uc2UgY3ljbGUuIn0pOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoKG4sbyk9PnQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobixyLGF8fGUscy5jb25jYXQoU3RyaW5nKG8pKSkpOmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZSkucmVkdWNlKChuLFtvLGxdKT0+e2xldCBjPXMuY29uY2F0KG8pO3JldHVybiBuW29dPXQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobCxyLGF8fGUsYyksbn0se30pOmV9c3RhdGljIGRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHIpe2lmKE0yLmlzQnVmZmVyTGlrZShlKXx8ZSBpbnN0YW5jZW9mIGNoKXJldHVybiBlO2lmKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUgaW5zdGFuY2VvZiBTZXR8fGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBEYXRlfHxlIGluc3RhbmNlb2YgUmVnRXhwfHxlIGluc3RhbmNlb2YgRXJyb3J8fGUgaW5zdGFuY2VvZiBQcm9taXNlfHx0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBlO2lmKGUuX2lzVmlydHVhbFN0cmVhbSl7bGV0IGE9bmV3IHQ7cmV0dXJuIGEuc3RyZWFtSWQ9ZS5zdHJlYW1JZCwhYS5zaWRlJiZyLnNlbmRNZXRob2QmJihhLnNpZGU9InJlcXVlc3RpbmciLGEuc2VuZE1ldGhvZD1yLnNlbmRNZXRob2QpLCFhLnNpZGUmJnIudHlwZWRyb3V0ZXImJihhLnNpZGU9InJlc3BvbmRpbmciLGEudHlwZWRyb3V0ZXI9ci50eXBlZHJvdXRlcixyLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoYSkpLGEuc3RhcnRLZWVwQWxpdmVMb29wKCksYX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBhPVtdO2ZvcihsZXQgcyBvZiBlKWEucHVzaCh0LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhzLHIpKTtyZXR1cm4gYX1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGEscyk9PihhW3NdPXQuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGVbc10sciksYSkse30pfWVsc2UgcmV0dXJuIGV9Y29uc3RydWN0b3IoKXt0aGlzLnN0cmVhbUlkPXB1LnVuaSgpLHRoaXMua2VlcEFsaXZlPSEwLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheT1uZXcgRmEuQmFja3ByZXNzdXJlZEFycmF5KDE2KSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IEZhLkJhY2twcmVzc3VyZWRBcnJheSgxNil9c3RhdGljIHJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZSl7aWYoZT09bnVsbHx8ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHR5cGVvZiBCdWZmZXI8InUiJiZCdWZmZXIuaXNCdWZmZXIoZSkpcmV0dXJuIGU7aWYodHlwZW9mIGU9PSJvYmplY3QiKXtpZihlLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBlLmRhdGE9PSJzdHJpbmciJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgYT1lLmRhdGEuc2xpY2UoNyk7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCBzPUJ1ZmZlci5mcm9tKGEsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheShzLmJ1ZmZlcixzLmJ5dGVPZmZzZXQscy5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGEpKS5tYXAocz0+cy5jaGFyQ29kZUF0KDApKSl9aWYoZS50eXBlPT09IkJ1ZmZlciImJkFycmF5LmlzQXJyYXkoZS5kYXRhKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtsZXQgcj1PYmplY3Qua2V5cyhlKTtpZihyLmxlbmd0aD4wJiZyLmV2ZXJ5KGE9Pi9eXGQrJC8udGVzdChhKSkpe2xldCBhPW5ldyBBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBzIG9mIHIpYVtOdW1iZXIocyldPWVbc107aWYoYS5ldmVyeShzPT50eXBlb2Ygcz09Im51bWJlciIpKXJldHVybiBuZXcgVWludDhBcnJheShhKX19cmV0dXJuIGV9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD14dC5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj0hMSxhPSExLHM9aShhc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6cHUudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGE9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfSwiZ2V0RmVlZGJhY2siKTtmb3IoYXdhaXQgcygpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoYSlmb3IoO2E7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IEt0LmRlbGF5Rm9yKDUwKSxhd2FpdCBzKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOnB1LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTplLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKHQucmVjb25zdGl0dXRlQmluYXJ5RGF0YShvLnJlc3BvbnNlLmNodW5rRGF0YSkpLGE9byYmby5yZXNwb25zZSYmby5yZXNwb25zZS5iYWNrcHJlc3N1cmUsZT0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UubmV4dH19dGhpcy53b3JraW5nRGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMud29ya2luZ0RlZmVycmVkPW51bGx9YXN5bmMgaGFuZGxlU3RyZWFtVHIoZSl7aWYoZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSEwJiZ0aGlzLmtlZXBBbGl2ZT09PSEwP3RoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCk6ZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSExJiYodGhpcy5rZWVwQWxpdmU9ITEpLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJrZWVwQWxpdmUiJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImZlZWRiYWNrIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iY2h1bmsiKXtpZih0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaCh0LnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZS5yZXF1ZXN0LmNodW5rRGF0YSkpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgcj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgS3QuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBLdC5kZWxheUZvcigxZTMpO2F3YWl0IEt0LmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOnB1LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxyPSEwKXtsZXQgYT1lLmdldFJlYWRlcigpLHM9ITE7Zm9yKDshczspe2xldHt2YWx1ZTpuLGRvbmU6b309YXdhaXQgYS5yZWFkKCk7biYmYXdhaXQgdGhpcy5zZW5kRGF0YShuKSxzPW99ciYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgcj1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgYT1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKGE9PT1BTHQpe3IucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgci53cml0ZShhKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShBTHQpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgTWJlLENiZT11KCgpPT57JFMoKTtmdSgpO01iZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRhcmdldCIpfWNvbnN0cnVjdG9yKGUpe2lmKGUucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIWUudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9ZX1hc3luYyBwb3N0KGUpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQsZSkpO2xldCBzPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikoZSksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOnM/bj1zOm49ZSxufX19KTtmdW5jdGlvbiBFTHQodCxlKXt0cnl7Y2guZ2xvYmFsSG9va3NbdF0/LihlKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHt0fSk6YCxyKX19dmFyIFYzYSxBUyxTYmU9dSgoKT0+e2Z1KCk7Zm9lKCk7TmIoKTskUygpO0NiZSgpO1YzYT1uZXcgVDIuV2VicmVxdWVzdENsaWVudDtpKEVMdCwiY2FsbEdsb2JhbEhvb2siKTtBUz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlcXVlc3QiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc2tpcEhvb2tzPSExLHR5cGVvZiBlPT0ic3RyaW5nIj90aGlzLnVybEVuZFBvaW50PWU6dGhpcy50eXBlZFRhcmdldD1lLHRoaXMubWV0aG9kPXJ9YXN5bmMgZmlyZShlLHI9ITEpe2xldCBhPURhdGUubm93KCkscz17bWV0aG9kOnRoaXMubWV0aG9kLHJlcXVlc3Q6ZSxyZXNwb25zZTpudWxsLGNvcnJlbGF0aW9uOntpZDpwdS51bmkoKSxwaGFzZToicmVxdWVzdCJ9fTtzPUUyLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHMse3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fEVMdCgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOnMuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6YSxwYXlsb2FkOmV9KTtsZXQgbjtyZXR1cm4gbj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChzLHIpLG49RTIuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG4se3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fEVMdCgib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDpzLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6bj8ucmVzcG9uc2UsZXJyb3I6bj8uZXJyb3I/LnRleHR9KSxuLnJlc3BvbnNlfWFzeW5jIHBvc3RUck9iamVjdChlLHI9ITEpe2xldCBhO2lmKHRoaXMudXJsRW5kUG9pbnQ/YT1hd2FpdCBWM2EucG9zdEpzb24odGhpcy51cmxFbmRQb2ludCxlLHI/e2NhY2hlU3RyYXRlZ3k6ImNhY2hlLWZpcnN0In06e30pOmE9YXdhaXQgdGhpcy50eXBlZFRhcmdldC5wb3N0KGUpLGEuZXJyb3Ipe2lmKGNvbnNvbGUuZXJyb3IoYG1ldGhvZDogPj4ke3RoaXMubWV0aG9kfTw8IGdvdCBhbiBFUlJPUjogIiR7YS5lcnJvci50ZXh0fSIgd2l0aCBkYXRhICR7SlNPTi5zdHJpbmdpZnkoYS5lcnJvci5kYXRhLG51bGwsMil9YCksIWEucmV0cnkpdGhyb3cgbmV3IEEyKGEuZXJyb3IudGV4dCxhLmVycm9yLmRhdGEpO3JldHVybiBudWxsfXJldHVybiBhLnJldHJ5JiYoY29uc29sZS5sb2coYHNlcnZlciByZXF1ZXN0ZWQgcmV0cnkgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uOiAke2EucmV0cnkucmVhc29ufWApLGF3YWl0IEt0LmRlbGF5Rm9yKGEucmV0cnkud2FpdEZvck1zKSxhPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KGUscikpLGF9fX0pO3ZhciBtMT17fTtWZShtMSx7VHlwZWRIYW5kbGVyOigpPT53YmUsVHlwZWRSZXF1ZXN0OigpPT5BUyxUeXBlZFJlc3BvbnNlRXJyb3I6KCk9PkEyLFR5cGVkUm91dGVyOigpPT5jaCxUeXBlZFRhcmdldDooKT0+TWJlLFZpcnR1YWxTdHJlYW06KCk9PkUyfSk7dmFyIGhvZT11KCgpPT57U2JlKCk7a2JlKCk7JFMoKTtOYigpO0NiZSgpO2ZvZSgpfSk7ZnVuY3Rpb24gY2EodCl7aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QiKXN3aXRjaCh0W2FvXSl7Y2FzZSBUbDpjYXNlIGQwOnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFByKHQpe2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Iilzd2l0Y2godFthb10pe2Nhc2UgRVM6Y2FzZSBUbDpjYXNlIGcxOmNhc2UgZDA6cmV0dXJuITB9cmV0dXJuITF9dmFyIEVTLElTLFRsLG1vZSxnMSxkMCxhbyxiMSx4MSx2MSxfcix1cix5MSxQUyxkYT11KCgpPT57RVM9U3ltYm9sLmZvcigieWFtbC5hbGlhcyIpLElTPVN5bWJvbC5mb3IoInlhbWwuZG9jdW1lbnQiKSxUbD1TeW1ib2wuZm9yKCJ5YW1sLm1hcCIpLG1vZT1TeW1ib2wuZm9yKCJ5YW1sLnBhaXIiKSxnMT1TeW1ib2wuZm9yKCJ5YW1sLnNjYWxhciIpLGQwPVN5bWJvbC5mb3IoInlhbWwuc2VxIiksYW89U3ltYm9sLmZvcigieWFtbC5ub2RlLnR5cGUiKSxiMT1pKHQ9PiEhdCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZ0W2FvXT09PUVTLCJpc0FsaWFzIikseDE9aSh0PT4hIXQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdFthb109PT1JUywiaXNEb2N1bWVudCIpLHYxPWkodD0+ISF0JiZ0eXBlb2YgdD09Im9iamVjdCImJnRbYW9dPT09VGwsImlzTWFwIiksX3I9aSh0PT4hIXQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdFthb109PT1tb2UsImlzUGFpciIpLHVyPWkodD0+ISF0JiZ0eXBlb2YgdD09Im9iamVjdCImJnRbYW9dPT09ZzEsImlzU2NhbGFyIikseTE9aSh0PT4hIXQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdFthb109PT1kMCwiaXNTZXEiKTtpKGNhLCJpc0NvbGxlY3Rpb24iKTtpKFByLCJpc05vZGUiKTtQUz1pKHQ9Pih1cih0KXx8Y2EodCkpJiYhIXQuYW5jaG9yLCJoYXNBbmNob3IiKX0pO2Z1bmN0aW9uIGoxKHQsZSl7bGV0IHI9UEx0KGUpO3gxKHQpP09iKG51bGwsdC5jb250ZW50cyxyLE9iamVjdC5mcmVlemUoW3RdKSk9PT11MCYmKHQuY29udGVudHM9bnVsbCk6T2IobnVsbCx0LHIsT2JqZWN0LmZyZWV6ZShbXSkpfWZ1bmN0aW9uIE9iKHQsZSxyLGEpe2xldCBzPU5MdCh0LGUscixhKTtpZihQcihzKXx8X3IocykpcmV0dXJuIE9MdCh0LGEscyksT2IodCxzLHIsYSk7aWYodHlwZW9mIHMhPSJzeW1ib2wiKXtpZihjYShlKSl7YT1PYmplY3QuZnJlZXplKGEuY29uY2F0KGUpKTtmb3IobGV0IG49MDtuPGUuaXRlbXMubGVuZ3RoOysrbil7bGV0IG89T2IobixlLml0ZW1zW25dLHIsYSk7aWYodHlwZW9mIG89PSJudW1iZXIiKW49by0xO2Vsc2V7aWYobz09PXcxKXJldHVybiB3MTtvPT09dTAmJihlLml0ZW1zLnNwbGljZShuLDEpLG4tPTEpfX19ZWxzZSBpZihfcihlKSl7YT1PYmplY3QuZnJlZXplKGEuY29uY2F0KGUpKTtsZXQgbj1PYigia2V5IixlLmtleSxyLGEpO2lmKG49PT13MSlyZXR1cm4gdzE7bj09PXUwJiYoZS5rZXk9bnVsbCk7bGV0IG89T2IoInZhbHVlIixlLnZhbHVlLHIsYSk7aWYobz09PXcxKXJldHVybiB3MTtvPT09dTAmJihlLnZhbHVlPW51bGwpfX1yZXR1cm4gc31hc3luYyBmdW5jdGlvbiBkaCh0LGUpe2xldCByPVBMdChlKTt4MSh0KT9hd2FpdCBSYihudWxsLHQuY29udGVudHMscixPYmplY3QuZnJlZXplKFt0XSkpPT09dTAmJih0LmNvbnRlbnRzPW51bGwpOmF3YWl0IFJiKG51bGwsdCxyLE9iamVjdC5mcmVlemUoW10pKX1hc3luYyBmdW5jdGlvbiBSYih0LGUscixhKXtsZXQgcz1hd2FpdCBOTHQodCxlLHIsYSk7aWYoUHIocyl8fF9yKHMpKXJldHVybiBPTHQodCxhLHMpLFJiKHQscyxyLGEpO2lmKHR5cGVvZiBzIT0ic3ltYm9sIil7aWYoY2EoZSkpe2E9T2JqZWN0LmZyZWV6ZShhLmNvbmNhdChlKSk7Zm9yKGxldCBuPTA7bjxlLml0ZW1zLmxlbmd0aDsrK24pe2xldCBvPWF3YWl0IFJiKG4sZS5pdGVtc1tuXSxyLGEpO2lmKHR5cGVvZiBvPT0ibnVtYmVyIiluPW8tMTtlbHNle2lmKG89PT13MSlyZXR1cm4gdzE7bz09PXUwJiYoZS5pdGVtcy5zcGxpY2UobiwxKSxuLT0xKX19fWVsc2UgaWYoX3IoZSkpe2E9T2JqZWN0LmZyZWV6ZShhLmNvbmNhdChlKSk7bGV0IG49YXdhaXQgUmIoImtleSIsZS5rZXkscixhKTtpZihuPT09dzEpcmV0dXJuIHcxO249PT11MCYmKGUua2V5PW51bGwpO2xldCBvPWF3YWl0IFJiKCJ2YWx1ZSIsZS52YWx1ZSxyLGEpO2lmKG89PT13MSlyZXR1cm4gdzE7bz09PXUwJiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIHN9ZnVuY3Rpb24gUEx0KHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJih0LkNvbGxlY3Rpb258fHQuTm9kZXx8dC5WYWx1ZSk/T2JqZWN0LmFzc2lnbih7QWxpYXM6dC5Ob2RlLE1hcDp0Lk5vZGUsU2NhbGFyOnQuTm9kZSxTZXE6dC5Ob2RlfSx0LlZhbHVlJiZ7TWFwOnQuVmFsdWUsU2NhbGFyOnQuVmFsdWUsU2VxOnQuVmFsdWV9LHQuQ29sbGVjdGlvbiYme01hcDp0LkNvbGxlY3Rpb24sU2VxOnQuQ29sbGVjdGlvbn0sdCk6dH1mdW5jdGlvbiBOTHQodCxlLHIsYSl7aWYodHlwZW9mIHI9PSJmdW5jdGlvbiIpcmV0dXJuIHIodCxlLGEpO2lmKHYxKGUpKXJldHVybiByLk1hcD8uKHQsZSxhKTtpZih5MShlKSlyZXR1cm4gci5TZXE/Lih0LGUsYSk7aWYoX3IoZSkpcmV0dXJuIHIuUGFpcj8uKHQsZSxhKTtpZih1cihlKSlyZXR1cm4gci5TY2FsYXI/Lih0LGUsYSk7aWYoYjEoZSkpcmV0dXJuIHIuQWxpYXM/Lih0LGUsYSl9ZnVuY3Rpb24gT0x0KHQsZSxyKXtsZXQgYT1lW2UubGVuZ3RoLTFdO2lmKGNhKGEpKWEuaXRlbXNbdF09cjtlbHNlIGlmKF9yKGEpKXQ9PT0ia2V5Ij9hLmtleT1yOmEudmFsdWU9cjtlbHNlIGlmKHgxKGEpKWEuY29udGVudHM9cjtlbHNle2xldCBzPWIxKGEpPyJhbGlhcyI6InNjYWxhciI7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVwbGFjZSBub2RlIHdpdGggJHtzfSBwYXJlbnRgKX19dmFyIHcxLElMdCx1MCxOUz11KCgpPT57ZGEoKTt3MT1TeW1ib2woImJyZWFrIHZpc2l0IiksSUx0PVN5bWJvbCgic2tpcCBjaGlsZHJlbiIpLHUwPVN5bWJvbCgicmVtb3ZlIG5vZGUiKTtpKGoxLCJ2aXNpdCIpLGoxLkJSRUFLPXcxLGoxLlNLSVA9SUx0LGoxLlJFTU9WRT11MDtpKE9iLCJ2aXNpdF8iKTtpKGRoLCJ2aXNpdEFzeW5jIiksZGguQlJFQUs9dzEsZGguU0tJUD1JTHQsZGguUkVNT1ZFPXUwO2koUmIsInZpc2l0QXN5bmNfIik7aShQTHQsImluaXRWaXNpdG9yIik7aShOTHQsImNhbGxWaXNpdG9yIik7aShPTHQsInJlcGxhY2VOb2RlIil9KTt2YXIgajNhLFUzYSxJMix6YmU9dSgoKT0+e2RhKCk7TlMoKTtqM2E9eyIhIjoiJTIxIiwiLCI6IiUyQyIsIlsiOiIlNUIiLCJdIjoiJTVEIiwieyI6IiU3QiIsIn0iOiIlN0QifSxVM2E9aSh0PT50LnJlcGxhY2UoL1shLFtcXXt9XS9nLGU9PmozYVtlXSksImVzY2FwZVRhZ05hbWUiKSxJMj1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkRpcmVjdGl2ZXMiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuZG9jU3RhcnQ9bnVsbCx0aGlzLmRvY0VuZD0hMSx0aGlzLnlhbWw9T2JqZWN0LmFzc2lnbih7fSx0LmRlZmF1bHRZYW1sLGUpLHRoaXMudGFncz1PYmplY3QuYXNzaWduKHt9LHQuZGVmYXVsdFRhZ3Mscil9Y2xvbmUoKXtsZXQgZT1uZXcgdCh0aGlzLnlhbWwsdGhpcy50YWdzKTtyZXR1cm4gZS5kb2NTdGFydD10aGlzLmRvY1N0YXJ0LGV9YXREb2N1bWVudCgpe2xldCBlPW5ldyB0KHRoaXMueWFtbCx0aGlzLnRhZ3MpO3N3aXRjaCh0aGlzLnlhbWwudmVyc2lvbil7Y2FzZSIxLjEiOnRoaXMuYXROZXh0RG9jdW1lbnQ9ITA7YnJlYWs7Y2FzZSIxLjIiOnRoaXMuYXROZXh0RG9jdW1lbnQ9ITEsdGhpcy55YW1sPXtleHBsaWNpdDp0LmRlZmF1bHRZYW1sLmV4cGxpY2l0LHZlcnNpb246IjEuMiJ9LHRoaXMudGFncz1PYmplY3QuYXNzaWduKHt9LHQuZGVmYXVsdFRhZ3MpO2JyZWFrfXJldHVybiBlfWFkZChlLHIpe3RoaXMuYXROZXh0RG9jdW1lbnQmJih0aGlzLnlhbWw9e2V4cGxpY2l0OnQuZGVmYXVsdFlhbWwuZXhwbGljaXQsdmVyc2lvbjoiMS4xIn0sdGhpcy50YWdzPU9iamVjdC5hc3NpZ24oe30sdC5kZWZhdWx0VGFncyksdGhpcy5hdE5leHREb2N1bWVudD0hMSk7bGV0IGE9ZS50cmltKCkuc3BsaXQoL1sgXHRdKy8pLHM9YS5zaGlmdCgpO3N3aXRjaChzKXtjYXNlIiVUQUciOntpZihhLmxlbmd0aCE9PTImJihyKDAsIiVUQUcgZGlyZWN0aXZlIHNob3VsZCBjb250YWluIGV4YWN0bHkgdHdvIHBhcnRzIiksYS5sZW5ndGg8MikpcmV0dXJuITE7bGV0W24sb109YTtyZXR1cm4gdGhpcy50YWdzW25dPW8sITB9Y2FzZSIlWUFNTCI6e2lmKHRoaXMueWFtbC5leHBsaWNpdD0hMCxhLmxlbmd0aCE9PTEpcmV0dXJuIHIoMCwiJVlBTUwgZGlyZWN0aXZlIHNob3VsZCBjb250YWluIGV4YWN0bHkgb25lIHBhcnQiKSwhMTtsZXRbbl09YTtpZihuPT09IjEuMSJ8fG49PT0iMS4yIilyZXR1cm4gdGhpcy55YW1sLnZlcnNpb249biwhMDt7bGV0IG89L15cZCtcLlxkKyQvLnRlc3Qobik7cmV0dXJuIHIoNixgVW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uICR7bn1gLG8pLCExfX1kZWZhdWx0OnJldHVybiByKDAsYFVua25vd24gZGlyZWN0aXZlICR7c31gLCEwKSwhMX19dGFnTmFtZShlLHIpe2lmKGU9PT0iISIpcmV0dXJuIiEiO2lmKGVbMF0hPT0iISIpcmV0dXJuIHIoYE5vdCBhIHZhbGlkIHRhZzogJHtlfWApLG51bGw7aWYoZVsxXT09PSI8Iil7bGV0IG89ZS5zbGljZSgyLC0xKTtyZXR1cm4gbz09PSIhInx8bz09PSIhISI/KHIoYFZlcmJhdGltIHRhZ3MgYXJlbid0IHJlc29sdmVkLCBzbyAke2V9IGlzIGludmFsaWQuYCksbnVsbCk6KGVbZS5sZW5ndGgtMV0hPT0iPiImJnIoIlZlcmJhdGltIHRhZ3MgbXVzdCBlbmQgd2l0aCBhID4iKSxvKX1sZXRbLGEsc109ZS5tYXRjaCgvXiguKiEpKFteIV0qKSQvcyk7c3x8cihgVGhlICR7ZX0gdGFnIGhhcyBubyBzdWZmaXhgKTtsZXQgbj10aGlzLnRhZ3NbYV07aWYobil0cnl7cmV0dXJuIG4rZGVjb2RlVVJJQ29tcG9uZW50KHMpfWNhdGNoKG8pe3JldHVybiByKFN0cmluZyhvKSksbnVsbH1yZXR1cm4gYT09PSIhIj9lOihyKGBDb3VsZCBub3QgcmVzb2x2ZSB0YWc6ICR7ZX1gKSxudWxsKX10YWdTdHJpbmcoZSl7Zm9yKGxldFtyLGFdb2YgT2JqZWN0LmVudHJpZXModGhpcy50YWdzKSlpZihlLnN0YXJ0c1dpdGgoYSkpcmV0dXJuIHIrVTNhKGUuc3Vic3RyaW5nKGEubGVuZ3RoKSk7cmV0dXJuIGVbMF09PT0iISI/ZTpgITwke2V9PmB9dG9TdHJpbmcoZSl7bGV0IHI9dGhpcy55YW1sLmV4cGxpY2l0P1tgJVlBTUwgJHt0aGlzLnlhbWwudmVyc2lvbnx8IjEuMiJ9YF06W10sYT1PYmplY3QuZW50cmllcyh0aGlzLnRhZ3MpLHM7aWYoZSYmYS5sZW5ndGg+MCYmUHIoZS5jb250ZW50cykpe2xldCBuPXt9O2oxKGUuY29udGVudHMsKG8sbCk9PntQcihsKSYmbC50YWcmJihuW2wudGFnXT0hMCl9KSxzPU9iamVjdC5rZXlzKG4pfWVsc2Ugcz1bXTtmb3IobGV0W24sb11vZiBhKW49PT0iISEiJiZvPT09InRhZzp5YW1sLm9yZywyMDAyOiJ8fCghZXx8cy5zb21lKGw9Pmwuc3RhcnRzV2l0aChvKSkpJiZyLnB1c2goYCVUQUcgJHtufSAke299YCk7cmV0dXJuIHIuam9pbihgCmApfX07STIuZGVmYXVsdFlhbWw9e2V4cGxpY2l0OiExLHZlcnNpb246IjEuMiJ9LEkyLmRlZmF1bHRUYWdzPXsiISEiOiJ0YWc6eWFtbC5vcmcsMjAwMjoifX0pO2Z1bmN0aW9uIE9TKHQpe2lmKC9bXHgwMC1ceDE5XHMsW1xde31dLy50ZXN0KHQpKXtsZXQgcj1gQW5jaG9yIG11c3Qgbm90IGNvbnRhaW4gd2hpdGVzcGFjZSBvciBjb250cm9sIGNoYXJhY3RlcnM6ICR7SlNPTi5zdHJpbmdpZnkodCl9YDt0aHJvdyBuZXcgRXJyb3Iocil9cmV0dXJuITB9ZnVuY3Rpb24gZ29lKHQpe2xldCBlPW5ldyBTZXQ7cmV0dXJuIGoxKHQse1ZhbHVlKHIsYSl7YS5hbmNob3ImJmUuYWRkKGEuYW5jaG9yKX19KSxlfWZ1bmN0aW9uIGJvZSh0LGUpe2ZvcihsZXQgcj0xOzsrK3Ipe2xldCBhPWAke3R9JHtyfWA7aWYoIWUuaGFzKGEpKXJldHVybiBhfX1mdW5jdGlvbiBfYmUodCxlKXtsZXQgcj1bXSxhPW5ldyBNYXAscz1udWxsO3JldHVybntvbkFuY2hvcjppKG49PntyLnB1c2gobikscz8/KHM9Z29lKHQpKTtsZXQgbz1ib2UoZSxzKTtyZXR1cm4gcy5hZGQobyksb30sIm9uQW5jaG9yIiksc2V0QW5jaG9yczppKCgpPT57Zm9yKGxldCBuIG9mIHIpe2xldCBvPWEuZ2V0KG4pO2lmKHR5cGVvZiBvPT0ib2JqZWN0IiYmby5hbmNob3ImJih1cihvLm5vZGUpfHxjYShvLm5vZGUpKSlvLm5vZGUuYW5jaG9yPW8uYW5jaG9yO2Vsc2V7bGV0IGw9bmV3IEVycm9yKCJGYWlsZWQgdG8gcmVzb2x2ZSByZXBlYXRlZCBvYmplY3QgKHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4pIik7dGhyb3cgbC5zb3VyY2U9bixsfX19LCJzZXRBbmNob3JzIiksc291cmNlT2JqZWN0czphfX12YXIgeG9lPXUoKCk9PntkYSgpO05TKCk7aShPUywiYW5jaG9ySXNWYWxpZCIpO2koZ29lLCJhbmNob3JOYW1lcyIpO2koYm9lLCJmaW5kTmV3QW5jaG9yIik7aShfYmUsImNyZWF0ZU5vZGVBbmNob3JzIil9KTtmdW5jdGlvbiBZZCh0LGUscixhKXtpZihhJiZ0eXBlb2YgYT09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShhKSlmb3IobGV0IHM9MCxuPWEubGVuZ3RoO3M8bjsrK3Mpe2xldCBvPWFbc10sbD1ZZCh0LGEsU3RyaW5nKHMpLG8pO2w9PT12b2lkIDA/ZGVsZXRlIGFbc106bCE9PW8mJihhW3NdPWwpfWVsc2UgaWYoYSBpbnN0YW5jZW9mIE1hcClmb3IobGV0IHMgb2YgQXJyYXkuZnJvbShhLmtleXMoKSkpe2xldCBuPWEuZ2V0KHMpLG89WWQodCxhLHMsbik7bz09PXZvaWQgMD9hLmRlbGV0ZShzKTpvIT09biYmYS5zZXQocyxvKX1lbHNlIGlmKGEgaW5zdGFuY2VvZiBTZXQpZm9yKGxldCBzIG9mIEFycmF5LmZyb20oYSkpe2xldCBuPVlkKHQsYSxzLHMpO249PT12b2lkIDA/YS5kZWxldGUocyk6biE9PXMmJihhLmRlbGV0ZShzKSxhLmFkZChuKSl9ZWxzZSBmb3IobGV0W3Msbl1vZiBPYmplY3QuZW50cmllcyhhKSl7bGV0IG89WWQodCxhLHMsbik7bz09PXZvaWQgMD9kZWxldGUgYVtzXTpvIT09biYmKGFbc109byl9cmV0dXJuIHQuY2FsbChlLHIsYSl9dmFyIFRiZT11KCgpPT57aShZZCwiYXBwbHlSZXZpdmVyIil9KTtmdW5jdGlvbiB4cyh0LGUscil7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAoKGEscyk9PnhzKGEsU3RyaW5nKHMpLHIpKTtpZih0JiZ0eXBlb2YgdC50b0pTT049PSJmdW5jdGlvbiIpe2lmKCFyfHwhUFModCkpcmV0dXJuIHQudG9KU09OKGUscik7bGV0IGE9e2FsaWFzQ291bnQ6MCxjb3VudDoxLHJlczp2b2lkIDB9O3IuYW5jaG9ycy5zZXQodCxhKSxyLm9uQ3JlYXRlPW49PnthLnJlcz1uLGRlbGV0ZSByLm9uQ3JlYXRlfTtsZXQgcz10LnRvSlNPTihlLHIpO3JldHVybiByLm9uQ3JlYXRlJiZyLm9uQ3JlYXRlKHMpLHN9cmV0dXJuIHR5cGVvZiB0PT0iYmlnaW50IiYmIXI/LmtlZXA/TnVtYmVyKHQpOnR9dmFyIGh1PXUoKCk9PntkYSgpO2koeHMsInRvSlMiKX0pO3ZhciBLZCx2b2U9dSgoKT0+e1RiZSgpO2RhKCk7aHUoKTtLZD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOb2RlQmFzZSIpfWNvbnN0cnVjdG9yKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGFvLHt2YWx1ZTplfSl9Y2xvbmUoKXtsZXQgZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7cmV0dXJuIHRoaXMucmFuZ2UmJihlLnJhbmdlPXRoaXMucmFuZ2Uuc2xpY2UoKSksZX10b0pTKGUse21hcEFzTWFwOnIsbWF4QWxpYXNDb3VudDphLG9uQW5jaG9yOnMscmV2aXZlcjpufT17fSl7aWYoIXgxKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkEgZG9jdW1lbnQgYXJndW1lbnQgaXMgcmVxdWlyZWQiKTtsZXQgbz17YW5jaG9yczpuZXcgTWFwLGRvYzplLGtlZXA6ITAsbWFwQXNNYXA6cj09PSEwLG1hcEtleVdhcm5lZDohMSxtYXhBbGlhc0NvdW50OnR5cGVvZiBhPT0ibnVtYmVyIj9hOjEwMH0sbD14cyh0aGlzLCIiLG8pO2lmKHR5cGVvZiBzPT0iZnVuY3Rpb24iKWZvcihsZXR7Y291bnQ6YyxyZXM6ZH1vZiBvLmFuY2hvcnMudmFsdWVzKCkpcyhkLGMpO3JldHVybiB0eXBlb2Ygbj09ImZ1bmN0aW9uIj9ZZChuLHsiIjpsfSwiIixsKTpsfX19KTtmdW5jdGlvbiB5b2UodCxlLHIpe2lmKGIxKGUpKXtsZXQgYT1lLnJlc29sdmUodCkscz1yJiZhJiZyLmdldChhKTtyZXR1cm4gcz9zLmNvdW50KnMuYWxpYXNDb3VudDowfWVsc2UgaWYoY2EoZSkpe2xldCBhPTA7Zm9yKGxldCBzIG9mIGUuaXRlbXMpe2xldCBuPXlvZSh0LHMscik7bj5hJiYoYT1uKX1yZXR1cm4gYX1lbHNlIGlmKF9yKGUpKXtsZXQgYT15b2UodCxlLmtleSxyKSxzPXlvZSh0LGUudmFsdWUscik7cmV0dXJuIE1hdGgubWF4KGEscyl9cmV0dXJuIDF9dmFyIExsLFJTPXUoKCk9Pnt4b2UoKTtOUygpO2RhKCk7dm9lKCk7aHUoKTtMbD1jbGFzcyBleHRlbmRzIEtke3N0YXRpY3tpKHRoaXMsIkFsaWFzIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoRVMpLHRoaXMuc291cmNlPWUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInRhZyIse3NldCgpe3Rocm93IG5ldyBFcnJvcigiQWxpYXMgbm9kZXMgY2Fubm90IGhhdmUgdGFncyIpfX0pfXJlc29sdmUoZSxyKXtpZihyPy5tYXhBbGlhc0NvdW50PT09MCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoIkFsaWFzIHJlc29sdXRpb24gaXMgZGlzYWJsZWQiKTtsZXQgYTtyPy5hbGlhc1Jlc29sdmVDYWNoZT9hPXIuYWxpYXNSZXNvbHZlQ2FjaGU6KGE9W10sajEoZSx7Tm9kZTppKChuLG8pPT57KGIxKG8pfHxQUyhvKSkmJmEucHVzaChvKX0sIk5vZGUiKX0pLHImJihyLmFsaWFzUmVzb2x2ZUNhY2hlPWEpKTtsZXQgcztmb3IobGV0IG4gb2YgYSl7aWYobj09PXRoaXMpYnJlYWs7bi5hbmNob3I9PT10aGlzLnNvdXJjZSYmKHM9bil9cmV0dXJuIHN9dG9KU09OKGUscil7aWYoIXIpcmV0dXJue3NvdXJjZTp0aGlzLnNvdXJjZX07bGV0e2FuY2hvcnM6YSxkb2M6cyxtYXhBbGlhc0NvdW50Om59PXIsbz10aGlzLnJlc29sdmUocyxyKTtpZighbyl7bGV0IGM9YFVucmVzb2x2ZWQgYWxpYXMgKHRoZSBhbmNob3IgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBhbGlhcyk6ICR7dGhpcy5zb3VyY2V9YDt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYyl9bGV0IGw9YS5nZXQobyk7aWYobHx8KHhzKG8sbnVsbCxyKSxsPWEuZ2V0KG8pKSxsPy5yZXM9PT12b2lkIDApe2xldCBjPSJUaGlzIHNob3VsZCBub3QgaGFwcGVuOiBBbGlhcyBhbmNob3Igd2FzIG5vdCByZXNvbHZlZD8iO3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcihjKX1pZihuPj0wJiYobC5jb3VudCs9MSxsLmFsaWFzQ291bnQ9PT0wJiYobC5hbGlhc0NvdW50PXlvZShzLG8sYSkpLGwuY291bnQqbC5hbGlhc0NvdW50Pm4pKXtsZXQgYz0iRXhjZXNzaXZlIGFsaWFzIGNvdW50IGluZGljYXRlcyBhIHJlc291cmNlIGV4aGF1c3Rpb24gYXR0YWNrIjt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYyl9cmV0dXJuIGwucmVzfXRvU3RyaW5nKGUscixhKXtsZXQgcz1gKiR7dGhpcy5zb3VyY2V9YDtpZihlKXtpZihPUyh0aGlzLnNvdXJjZSksZS5vcHRpb25zLnZlcmlmeUFsaWFzT3JkZXImJiFlLmFuY2hvcnMuaGFzKHRoaXMuc291cmNlKSl7bGV0IG49YFVucmVzb2x2ZWQgYWxpYXMgKHRoZSBhbmNob3IgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBhbGlhcyk6ICR7dGhpcy5zb3VyY2V9YDt0aHJvdyBuZXcgRXJyb3Iobil9aWYoZS5pbXBsaWNpdEtleSlyZXR1cm5gJHtzfSBgfXJldHVybiBzfX07aSh5b2UsImdldEFsaWFzQ291bnQiKX0pO3ZhciBGUyxTdCx2cz11KCgpPT57ZGEoKTt2b2UoKTtodSgpO0ZTPWkodD0+IXR8fHR5cGVvZiB0IT0iZnVuY3Rpb24iJiZ0eXBlb2YgdCE9Im9iamVjdCIsImlzU2NhbGFyVmFsdWUiKSxTdD1jbGFzcyBleHRlbmRzIEtke3N0YXRpY3tpKHRoaXMsIlNjYWxhciIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGcxKSx0aGlzLnZhbHVlPWV9dG9KU09OKGUscil7cmV0dXJuIHI/LmtlZXA/dGhpcy52YWx1ZTp4cyh0aGlzLnZhbHVlLGUscil9dG9TdHJpbmcoKXtyZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpfX07U3QuQkxPQ0tfRk9MREVEPSJCTE9DS19GT0xERUQiLFN0LkJMT0NLX0xJVEVSQUw9IkJMT0NLX0xJVEVSQUwiLFN0LlBMQUlOPSJQTEFJTiIsU3QuUVVPVEVfRE9VQkxFPSJRVU9URV9ET1VCTEUiLFN0LlFVT1RFX1NJTkdMRT0iUVVPVEVfU0lOR0xFIn0pO2Z1bmN0aW9uIEczYSh0LGUscil7aWYoZSl7bGV0IGE9ci5maWx0ZXIobj0+bi50YWc9PT1lKSxzPWEuZmluZChuPT4hbi5mb3JtYXQpPz9hWzBdO2lmKCFzKXRocm93IG5ldyBFcnJvcihgVGFnICR7ZX0gbm90IGZvdW5kYCk7cmV0dXJuIHN9cmV0dXJuIHIuZmluZChhPT5hLmlkZW50aWZ5Py4odCkmJiFhLmZvcm1hdCl9ZnVuY3Rpb24gcDAodCxlLHIpe2lmKHgxKHQpJiYodD10LmNvbnRlbnRzKSxQcih0KSlyZXR1cm4gdDtpZihfcih0KSl7bGV0IHA9ci5zY2hlbWFbVGxdLmNyZWF0ZU5vZGU/LihyLnNjaGVtYSxudWxsLHIpO3JldHVybiBwLml0ZW1zLnB1c2godCkscH0odCBpbnN0YW5jZW9mIFN0cmluZ3x8dCBpbnN0YW5jZW9mIE51bWJlcnx8dCBpbnN0YW5jZW9mIEJvb2xlYW58fHR5cGVvZiBCaWdJbnQ8InUiJiZ0IGluc3RhbmNlb2YgQmlnSW50KSYmKHQ9dC52YWx1ZU9mKCkpO2xldHthbGlhc0R1cGxpY2F0ZU9iamVjdHM6YSxvbkFuY2hvcjpzLG9uVGFnT2JqOm4sc2NoZW1hOm8sc291cmNlT2JqZWN0czpsfT1yLGM7aWYoYSYmdCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtpZihjPWwuZ2V0KHQpLGMpcmV0dXJuIGMuYW5jaG9yPz8oYy5hbmNob3I9cyh0KSksbmV3IExsKGMuYW5jaG9yKTtjPXthbmNob3I6bnVsbCxub2RlOm51bGx9LGwuc2V0KHQsYyl9ZT8uc3RhcnRzV2l0aCgiISEiKSYmKGU9VzNhK2Uuc2xpY2UoMikpO2xldCBkPUczYSh0LGUsby50YWdzKTtpZighZCl7aWYodCYmdHlwZW9mIHQudG9KU09OPT0iZnVuY3Rpb24iJiYodD10LnRvSlNPTigpKSwhdHx8dHlwZW9mIHQhPSJvYmplY3QiKXtsZXQgcD1uZXcgU3QodCk7cmV0dXJuIGMmJihjLm5vZGU9cCkscH1kPXQgaW5zdGFuY2VvZiBNYXA/b1tUbF06U3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdCh0KT9vW2QwXTpvW1RsXX1uJiYobihkKSxkZWxldGUgci5vblRhZ09iaik7bGV0IGY9ZD8uY3JlYXRlTm9kZT9kLmNyZWF0ZU5vZGUoci5zY2hlbWEsdCxyKTp0eXBlb2YgZD8ubm9kZUNsYXNzPy5mcm9tPT0iZnVuY3Rpb24iP2Qubm9kZUNsYXNzLmZyb20oci5zY2hlbWEsdCxyKTpuZXcgU3QodCk7cmV0dXJuIGU/Zi50YWc9ZTpkLmRlZmF1bHR8fChmLnRhZz1kLnRhZyksYyYmKGMubm9kZT1mKSxmfXZhciBXM2EsQlM9dSgoKT0+e1JTKCk7ZGEoKTt2cygpO1czYT0idGFnOnlhbWwub3JnLDIwMDI6IjtpKEczYSwiZmluZFRhZ09iamVjdCIpO2kocDAsImNyZWF0ZU5vZGUiKX0pO2Z1bmN0aW9uIEZiKHQsZSxyKXtsZXQgYT1yO2ZvcihsZXQgcz1lLmxlbmd0aC0xO3M+PTA7LS1zKXtsZXQgbj1lW3NdO2lmKHR5cGVvZiBuPT0ibnVtYmVyIiYmTnVtYmVyLmlzSW50ZWdlcihuKSYmbj49MCl7bGV0IG89W107b1tuXT1hLGE9b31lbHNlIGE9bmV3IE1hcChbW24sYV1dKX1yZXR1cm4gcDAoYSx2b2lkIDAse2FsaWFzRHVwbGljYXRlT2JqZWN0czohMSxrZWVwVW5kZWZpbmVkOiExLG9uQW5jaG9yOmkoKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIHBsZWFzZSByZXBvcnQgYSBidWcuIil9LCJvbkFuY2hvciIpLHNjaGVtYTp0LHNvdXJjZU9iamVjdHM6bmV3IE1hcH0pfXZhciBwaCx1aCx3b2U9dSgoKT0+e0JTKCk7ZGEoKTt2b2UoKTtpKEZiLCJjb2xsZWN0aW9uRnJvbVBhdGgiKTtwaD1pKHQ9PnQ9PW51bGx8fHR5cGVvZiB0PT0ib2JqZWN0IiYmISF0W1N5bWJvbC5pdGVyYXRvcl0oKS5uZXh0KCkuZG9uZSwiaXNFbXB0eVBhdGgiKSx1aD1jbGFzcyBleHRlbmRzIEtke3N0YXRpY3tpKHRoaXMsIkNvbGxlY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzY2hlbWEiLHt2YWx1ZTpyLGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwfSl9Y2xvbmUoZSl7bGV0IHI9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlJiYoci5zY2hlbWE9ZSksci5pdGVtcz1yLml0ZW1zLm1hcChhPT5QcihhKXx8X3IoYSk/YS5jbG9uZShlKTphKSx0aGlzLnJhbmdlJiYoci5yYW5nZT10aGlzLnJhbmdlLnNsaWNlKCkpLHJ9YWRkSW4oZSxyKXtpZihwaChlKSl0aGlzLmFkZChyKTtlbHNle2xldFthLC4uLnNdPWUsbj10aGlzLmdldChhLCEwKTtpZihjYShuKSluLmFkZEluKHMscik7ZWxzZSBpZihuPT09dm9pZCAwJiZ0aGlzLnNjaGVtYSl0aGlzLnNldChhLEZiKHRoaXMuc2NoZW1hLHMscikpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHthfS4gUmVtYWluaW5nIHBhdGg6ICR7c31gKX19ZGVsZXRlSW4oZSl7bGV0W3IsLi4uYV09ZTtpZihhLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuZGVsZXRlKHIpO2xldCBzPXRoaXMuZ2V0KHIsITApO2lmKGNhKHMpKXJldHVybiBzLmRlbGV0ZUluKGEpO3Rocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWUFNTCBjb2xsZWN0aW9uIGF0ICR7cn0uIFJlbWFpbmluZyBwYXRoOiAke2F9YCl9Z2V0SW4oZSxyKXtsZXRbYSwuLi5zXT1lLG49dGhpcy5nZXQoYSwhMCk7cmV0dXJuIHMubGVuZ3RoPT09MD8hciYmdXIobik/bi52YWx1ZTpuOmNhKG4pP24uZ2V0SW4ocyxyKTp2b2lkIDB9aGFzQWxsTnVsbFZhbHVlcyhlKXtyZXR1cm4gdGhpcy5pdGVtcy5ldmVyeShyPT57aWYoIV9yKHIpKXJldHVybiExO2xldCBhPXIudmFsdWU7cmV0dXJuIGE9PW51bGx8fGUmJnVyKGEpJiZhLnZhbHVlPT1udWxsJiYhYS5jb21tZW50QmVmb3JlJiYhYS5jb21tZW50JiYhYS50YWd9KX1oYXNJbihlKXtsZXRbciwuLi5hXT1lO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gdGhpcy5oYXMocik7bGV0IHM9dGhpcy5nZXQociwhMCk7cmV0dXJuIGNhKHMpP3MuaGFzSW4oYSk6ITF9c2V0SW4oZSxyKXtsZXRbYSwuLi5zXT1lO2lmKHMubGVuZ3RoPT09MCl0aGlzLnNldChhLHIpO2Vsc2V7bGV0IG49dGhpcy5nZXQoYSwhMCk7aWYoY2Eobikpbi5zZXRJbihzLHIpO2Vsc2UgaWYobj09PXZvaWQgMCYmdGhpcy5zY2hlbWEpdGhpcy5zZXQoYSxGYih0aGlzLnNjaGVtYSxzLHIpKTtlbHNlIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWUFNTCBjb2xsZWN0aW9uIGF0ICR7YX0uIFJlbWFpbmluZyBwYXRoOiAke3N9YCl9fX19KTtmdW5jdGlvbiBVMSh0LGUpe3JldHVybi9eXG4rJC8udGVzdCh0KT90LnN1YnN0cmluZygxKTplP3QucmVwbGFjZSgvXig/ISAqJCkvZ20sZSk6dH12YXIgTGJlLFAyLEhTPXUoKCk9PntMYmU9aSh0PT50LnJlcGxhY2UoL14oPyEkKSg/OiAkKT8vZ20sIiMiKSwic3RyaW5naWZ5Q29tbWVudCIpO2koVTEsImluZGVudENvbW1lbnQiKTtQMj1pKCh0LGUscik9PnQuZW5kc1dpdGgoYApgKT9VMShyLGUpOnIuaW5jbHVkZXMoYApgKT9gCmArVTEocixlKToodC5lbmRzV2l0aCgiICIpPyIiOiIgIikrciwibGluZUNvbW1lbnQiKX0pO2Z1bmN0aW9uIEhiKHQsZSxyPSJmbG93Iix7aW5kZW50QXRTdGFydDphLGxpbmVXaWR0aDpzPTgwLG1pbkNvbnRlbnRXaWR0aDpuPTIwLG9uRm9sZDpvLG9uT3ZlcmZsb3c6bH09e30pe2lmKCFzfHxzPDApcmV0dXJuIHQ7czxuJiYobj0wKTtsZXQgYz1NYXRoLm1heCgxK24sMStzLWUubGVuZ3RoKTtpZih0Lmxlbmd0aDw9YylyZXR1cm4gdDtsZXQgZD1bXSxmPXt9LHA9cy1lLmxlbmd0aDt0eXBlb2YgYT09Im51bWJlciImJihhPnMtTWF0aC5tYXgoMixuKT9kLnB1c2goMCk6cD1zLWEpO2xldCBoLG0sdj0hMSxiPS0xLGc9LTEseT0tMTtyPT09cVMmJihiPVJMdCh0LGIsZS5sZW5ndGgpLGIhPT0tMSYmKHA9YitjKSk7Zm9yKGxldCBNO009dFtiKz0xXTspe2lmKHI9PT1CYiYmTT09PSJcXCIpe3N3aXRjaChnPWIsdFtiKzFdKXtjYXNlIngiOmIrPTM7YnJlYWs7Y2FzZSJ1IjpiKz01O2JyZWFrO2Nhc2UiVSI6Yis9OTticmVhaztkZWZhdWx0OmIrPTF9eT1ifWlmKE09PT1gCmApcj09PXFTJiYoYj1STHQodCxiLGUubGVuZ3RoKSkscD1iK2UubGVuZ3RoK2MsaD12b2lkIDA7ZWxzZXtpZihNPT09IiAiJiZtJiZtIT09IiAiJiZtIT09YApgJiZtIT09IgkiKXtsZXQgTj10W2IrMV07TiYmTiE9PSIgIiYmTiE9PWAKYCYmTiE9PSIJIiYmKGg9Yil9aWYoYj49cClpZihoKWQucHVzaChoKSxwPWgrYyxoPXZvaWQgMDtlbHNlIGlmKHI9PT1CYil7Zm9yKDttPT09IiAifHxtPT09IgkiOyltPU0sTT10W2IrPTFdLHY9ITA7bGV0IE49Yj55KzE/Yi0yOmctMTtpZihmW05dKXJldHVybiB0O2QucHVzaChOKSxmW05dPSEwLHA9TitjLGg9dm9pZCAwfWVsc2Ugdj0hMH1tPU19aWYodiYmbCYmbCgpLGQubGVuZ3RoPT09MClyZXR1cm4gdDtvJiZvKCk7bGV0IGs9dC5zbGljZSgwLGRbMF0pO2ZvcihsZXQgTT0wO008ZC5sZW5ndGg7KytNKXtsZXQgTj1kW01dLF89ZFtNKzFdfHx0Lmxlbmd0aDtOPT09MD9rPWAKJHtlfSR7dC5zbGljZSgwLF8pfWA6KHI9PT1CYiYmZltOXSYmKGsrPWAke3RbTl19XFxgKSxrKz1gCiR7ZX0ke3Quc2xpY2UoTisxLF8pfWApfXJldHVybiBrfWZ1bmN0aW9uIFJMdCh0LGUscil7bGV0IGE9ZSxzPWUrMSxuPXRbc107Zm9yKDtuPT09IiAifHxuPT09IgkiOylpZihlPHMrciluPXRbKytlXTtlbHNle2RvIG49dFsrK2VdO3doaWxlKG4mJm4hPT1gCmApO2E9ZSxzPWUrMSxuPXRbc119cmV0dXJuIGF9dmFyIGtvZSxxUyxCYixGTHQ9dSgoKT0+e2tvZT0iZmxvdyIscVM9ImJsb2NrIixCYj0icXVvdGVkIjtpKEhiLCJmb2xkRmxvd0xpbmVzIik7aShSTHQsImNvbnN1bWVNb3JlSW5kZW50ZWRMaW5lcyIpfSk7ZnVuY3Rpb24gWTNhKHQsZSxyKXtpZighZXx8ZTwwKXJldHVybiExO2xldCBhPWUtcixzPXQubGVuZ3RoO2lmKHM8PWEpcmV0dXJuITE7Zm9yKGxldCBuPTAsbz0wO248czsrK24paWYodFtuXT09PWAKYCl7aWYobi1vPmEpcmV0dXJuITA7aWYobz1uKzEscy1vPD1hKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFZTKHQsZSl7bGV0IHI9SlNPTi5zdHJpbmdpZnkodCk7aWYoZS5vcHRpb25zLmRvdWJsZVF1b3RlZEFzSlNPTilyZXR1cm4gcjtsZXR7aW1wbGljaXRLZXk6YX09ZSxzPWUub3B0aW9ucy5kb3VibGVRdW90ZWRNaW5NdWx0aUxpbmVMZW5ndGgsbj1lLmluZGVudHx8KE1vZSh0KT8iICAiOiIiKSxvPSIiLGw9MDtmb3IobGV0IGM9MCxkPXJbY107ZDtkPXJbKytjXSlpZihkPT09IiAiJiZyW2MrMV09PT0iXFwiJiZyW2MrMl09PT0ibiImJihvKz1yLnNsaWNlKGwsYykrIlxcICIsYys9MSxsPWMsZD0iXFwiKSxkPT09IlxcIilzd2l0Y2gocltjKzFdKXtjYXNlInUiOntvKz1yLnNsaWNlKGwsYyk7bGV0IGY9ci5zdWJzdHIoYysyLDQpO3N3aXRjaChmKXtjYXNlIjAwMDAiOm8rPSJcXDAiO2JyZWFrO2Nhc2UiMDAwNyI6bys9IlxcYSI7YnJlYWs7Y2FzZSIwMDBiIjpvKz0iXFx2IjticmVhaztjYXNlIjAwMWIiOm8rPSJcXGUiO2JyZWFrO2Nhc2UiMDA4NSI6bys9IlxcTiI7YnJlYWs7Y2FzZSIwMGEwIjpvKz0iXFxfIjticmVhaztjYXNlIjIwMjgiOm8rPSJcXEwiO2JyZWFrO2Nhc2UiMjAyOSI6bys9IlxcUCI7YnJlYWs7ZGVmYXVsdDpmLnN1YnN0cigwLDIpPT09IjAwIj9vKz0iXFx4IitmLnN1YnN0cigyKTpvKz1yLnN1YnN0cihjLDYpfWMrPTUsbD1jKzF9YnJlYWs7Y2FzZSJuIjppZihhfHxyW2MrMl09PT0nIid8fHIubGVuZ3RoPHMpYys9MTtlbHNle2ZvcihvKz1yLnNsaWNlKGwsYykrYAoKYDtyW2MrMl09PT0iXFwiJiZyW2MrM109PT0ibiImJnJbYys0XSE9PSciJzspbys9YApgLGMrPTI7bys9bixyW2MrMl09PT0iICImJihvKz0iXFwiKSxjKz0xLGw9YysxfWJyZWFrO2RlZmF1bHQ6Yys9MX1yZXR1cm4gbz1sP28rci5zbGljZShsKTpyLGE/bzpIYihvLG4sQmIsU29lKGUsITEpKX1mdW5jdGlvbiBEYmUodCxlKXtpZihlLm9wdGlvbnMuc2luZ2xlUXVvdGU9PT0hMXx8ZS5pbXBsaWNpdEtleSYmdC5pbmNsdWRlcyhgCmApfHwvWyBcdF1cbnxcblsgXHRdLy50ZXN0KHQpKXJldHVybiBWUyh0LGUpO2xldCByPWUuaW5kZW50fHwoTW9lKHQpPyIgICI6IiIpLGE9IiciK3QucmVwbGFjZSgvJy9nLCInJyIpLnJlcGxhY2UoL1xuKy9nLGAkJgoke3J9YCkrIiciO3JldHVybiBlLmltcGxpY2l0S2V5P2E6SGIoYSxyLGtvZSxTb2UoZSwhMSkpfWZ1bmN0aW9uIHFiKHQsZSl7bGV0e3NpbmdsZVF1b3RlOnJ9PWUub3B0aW9ucyxhO2lmKHI9PT0hMSlhPVZTO2Vsc2V7bGV0IHM9dC5pbmNsdWRlcygnIicpLG49dC5pbmNsdWRlcygiJyIpO3MmJiFuP2E9RGJlOm4mJiFzP2E9VlM6YT1yP0RiZTpWU31yZXR1cm4gYSh0LGUpfWZ1bmN0aW9uIENvZSh7Y29tbWVudDp0LHR5cGU6ZSx2YWx1ZTpyfSxhLHMsbil7bGV0e2Jsb2NrUXVvdGU6byxjb21tZW50U3RyaW5nOmwsbGluZVdpZHRoOmN9PWEub3B0aW9ucztpZighb3x8L1xuW1x0IF0rJC8udGVzdChyKSlyZXR1cm4gcWIocixhKTtsZXQgZD1hLmluZGVudHx8KGEuZm9yY2VCbG9ja0luZGVudHx8TW9lKHIpPyIgICI6IiIpLGY9bz09PSJsaXRlcmFsIj8hMDpvPT09ImZvbGRlZCJ8fGU9PT1TdC5CTE9DS19GT0xERUQ/ITE6ZT09PVN0LkJMT0NLX0xJVEVSQUw/ITA6IVkzYShyLGMsZC5sZW5ndGgpO2lmKCFyKXJldHVybiBmP2B8CmA6YD4KYDtsZXQgcCxoO2ZvcihoPXIubGVuZ3RoO2g+MDstLWgpe2xldCBfPXJbaC0xXTtpZihfIT09YApgJiZfIT09IgkiJiZfIT09IiAiKWJyZWFrfWxldCBtPXIuc3Vic3RyaW5nKGgpLHY9bS5pbmRleE9mKGAKYCk7dj09PS0xP3A9Ii0iOnI9PT1tfHx2IT09bS5sZW5ndGgtMT8ocD0iKyIsbiYmbigpKTpwPSIiLG0mJihyPXIuc2xpY2UoMCwtbS5sZW5ndGgpLG1bbS5sZW5ndGgtMV09PT1gCmAmJihtPW0uc2xpY2UoMCwtMSkpLG09bS5yZXBsYWNlKCRiZSxgJCYke2R9YCkpO2xldCBiPSExLGcseT0tMTtmb3IoZz0wO2c8ci5sZW5ndGg7KytnKXtsZXQgXz1yW2ddO2lmKF89PT0iICIpYj0hMDtlbHNlIGlmKF89PT1gCmApeT1nO2Vsc2UgYnJlYWt9bGV0IGs9ci5zdWJzdHJpbmcoMCx5PGc/eSsxOmcpO2smJihyPXIuc3Vic3RyaW5nKGsubGVuZ3RoKSxrPWsucmVwbGFjZSgvXG4rL2csYCQmJHtkfWApKTtsZXQgTj0oYj9kPyIyIjoiMSI6IiIpK3A7aWYodCYmKE4rPSIgIitsKHQucmVwbGFjZSgvID9bXHJcbl0rL2csIiAiKSkscyYmcygpKSwhZil7bGV0IF89ci5yZXBsYWNlKC9cbisvZyxgCiQmYCkucmVwbGFjZSgvKD86XnxcbikoW1x0IF0uKikoPzooW1xuXHQgXSopXG4oPyFbXG5cdCBdKSk/L2csIiQxJDIiKS5yZXBsYWNlKC9cbisvZyxgJCYke2R9YCksUz0hMSxPPVNvZShhLCEwKTtvIT09ImZvbGRlZCImJmUhPT1TdC5CTE9DS19GT0xERUQmJihPLm9uT3ZlcmZsb3c9KCk9PntTPSEwfSk7bGV0IEw9SGIoYCR7a30ke199JHttfWAsZCxxUyxPKTtpZighUylyZXR1cm5gPiR7Tn0KJHtkfSR7TH1gfXJldHVybiByPXIucmVwbGFjZSgvXG4rL2csYCQmJHtkfWApLGB8JHtOfQoke2R9JHtrfSR7cn0ke219YH1mdW5jdGlvbiBLM2EodCxlLHIsYSl7bGV0e3R5cGU6cyx2YWx1ZTpufT10LHthY3R1YWxTdHJpbmc6byxpbXBsaWNpdEtleTpsLGluZGVudDpjLGluZGVudFN0ZXA6ZCxpbkZsb3c6Zn09ZTtpZihsJiZuLmluY2x1ZGVzKGAKYCl8fGYmJi9bW1xde30sXS8udGVzdChuKSlyZXR1cm4gcWIobixlKTtpZigvXltcblx0ICxbXF17fSMmKiF8PiciJUBgXXxeWz8tXSR8Xls/LV1bIFx0XXxbXG46XVsgXHRdfFsgXHRdXG58W1xuXHQgXSN8W1xuXHQgOl0kLy50ZXN0KG4pKXJldHVybiBsfHxmfHwhbi5pbmNsdWRlcyhgCmApP3FiKG4sZSk6Q29lKHQsZSxyLGEpO2lmKCFsJiYhZiYmcyE9PVN0LlBMQUlOJiZuLmluY2x1ZGVzKGAKYCkpcmV0dXJuIENvZSh0LGUscixhKTtpZihNb2Uobikpe2lmKGM9PT0iIilyZXR1cm4gZS5mb3JjZUJsb2NrSW5kZW50PSEwLENvZSh0LGUscixhKTtpZihsJiZjPT09ZClyZXR1cm4gcWIobixlKX1sZXQgcD1uLnJlcGxhY2UoL1xuKy9nLGAkJgoke2N9YCk7aWYobyl7bGV0IGg9aShiPT5iLmRlZmF1bHQmJmIudGFnIT09InRhZzp5YW1sLm9yZywyMDAyOnN0ciImJmIudGVzdD8udGVzdChwKSwidGVzdCIpLHtjb21wYXQ6bSx0YWdzOnZ9PWUuZG9jLnNjaGVtYTtpZih2LnNvbWUoaCl8fG0/LnNvbWUoaCkpcmV0dXJuIHFiKG4sZSl9cmV0dXJuIGw/cDpIYihwLGMsa29lLFNvZShlLCExKSl9ZnVuY3Rpb24gZjAodCxlLHIsYSl7bGV0e2ltcGxpY2l0S2V5OnMsaW5GbG93Om59PWUsbz10eXBlb2YgdC52YWx1ZT09InN0cmluZyI/dDpPYmplY3QuYXNzaWduKHt9LHQse3ZhbHVlOlN0cmluZyh0LnZhbHVlKX0pLHt0eXBlOmx9PXQ7bCE9PVN0LlFVT1RFX0RPVUJMRSYmL1tceDAwLVx4MDhceDBiLVx4MWZceDdmLVx4OWZcdXtEODAwfS1cdXtERkZGfV0vdS50ZXN0KG8udmFsdWUpJiYobD1TdC5RVU9URV9ET1VCTEUpO2xldCBjPWkoZj0+e3N3aXRjaChmKXtjYXNlIFN0LkJMT0NLX0ZPTERFRDpjYXNlIFN0LkJMT0NLX0xJVEVSQUw6cmV0dXJuIHN8fG4/cWIoby52YWx1ZSxlKTpDb2UobyxlLHIsYSk7Y2FzZSBTdC5RVU9URV9ET1VCTEU6cmV0dXJuIFZTKG8udmFsdWUsZSk7Y2FzZSBTdC5RVU9URV9TSU5HTEU6cmV0dXJuIERiZShvLnZhbHVlLGUpO2Nhc2UgU3QuUExBSU46cmV0dXJuIEszYShvLGUscixhKTtkZWZhdWx0OnJldHVybiBudWxsfX0sIl9zdHJpbmdpZnkiKSxkPWMobCk7aWYoZD09PW51bGwpe2xldHtkZWZhdWx0S2V5VHlwZTpmLGRlZmF1bHRTdHJpbmdUeXBlOnB9PWUub3B0aW9ucyxoPXMmJmZ8fHA7aWYoZD1jKGgpLGQ9PT1udWxsKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVmYXVsdCBzdHJpbmcgdHlwZSAke2h9YCl9cmV0dXJuIGR9dmFyIFNvZSxNb2UsJGJlLGpTPXUoKCk9Pnt2cygpO0ZMdCgpO1NvZT1pKCh0LGUpPT4oe2luZGVudEF0U3RhcnQ6ZT90LmluZGVudC5sZW5ndGg6dC5pbmRlbnRBdFN0YXJ0LGxpbmVXaWR0aDp0Lm9wdGlvbnMubGluZVdpZHRoLG1pbkNvbnRlbnRXaWR0aDp0Lm9wdGlvbnMubWluQ29udGVudFdpZHRofSksImdldEZvbGRPcHRpb25zIiksTW9lPWkodD0+L14oJXwtLS18XC5cLlwuKS9tLnRlc3QodCksImNvbnRhaW5zRG9jdW1lbnRNYXJrZXIiKTtpKFkzYSwibGluZUxlbmd0aE92ZXJMaW1pdCIpO2koVlMsImRvdWJsZVF1b3RlZFN0cmluZyIpO2koRGJlLCJzaW5nbGVRdW90ZWRTdHJpbmciKTtpKHFiLCJxdW90ZWRTdHJpbmciKTt0cnl7JGJlPW5ldyBSZWdFeHAoYChefCg/PCEKKSkKKyg/IQp8JClgLCJnIil9Y2F0Y2h7JGJlPS9cbisoPyFcbnwkKS9nfWkoQ29lLCJibG9ja1N0cmluZyIpO2koSzNhLCJwbGFpblN0cmluZyIpO2koZjAsInN0cmluZ2lmeVN0cmluZyIpfSk7ZnVuY3Rpb24gVVModCxlKXtsZXQgcj1PYmplY3QuYXNzaWduKHtibG9ja1F1b3RlOiEwLGNvbW1lbnRTdHJpbmc6TGJlLGRlZmF1bHRLZXlUeXBlOm51bGwsZGVmYXVsdFN0cmluZ1R5cGU6IlBMQUlOIixkaXJlY3RpdmVzOm51bGwsZG91YmxlUXVvdGVkQXNKU09OOiExLGRvdWJsZVF1b3RlZE1pbk11bHRpTGluZUxlbmd0aDo0MCxmYWxzZVN0cjoiZmFsc2UiLGZsb3dDb2xsZWN0aW9uUGFkZGluZzohMCxpbmRlbnRTZXE6ITAsbGluZVdpZHRoOjgwLG1pbkNvbnRlbnRXaWR0aDoyMCxudWxsU3RyOiJudWxsIixzaW1wbGVLZXlzOiExLHNpbmdsZVF1b3RlOm51bGwsdHJhaWxpbmdDb21tYTohMSx0cnVlU3RyOiJ0cnVlIix2ZXJpZnlBbGlhc09yZGVyOiEwfSx0LnNjaGVtYS50b1N0cmluZ09wdGlvbnMsZSksYTtzd2l0Y2goci5jb2xsZWN0aW9uU3R5bGUpe2Nhc2UiYmxvY2siOmE9ITE7YnJlYWs7Y2FzZSJmbG93IjphPSEwO2JyZWFrO2RlZmF1bHQ6YT1udWxsfXJldHVybnthbmNob3JzOm5ldyBTZXQsZG9jOnQsZmxvd0NvbGxlY3Rpb25QYWRkaW5nOnIuZmxvd0NvbGxlY3Rpb25QYWRkaW5nPyIgIjoiIixpbmRlbnQ6IiIsaW5kZW50U3RlcDp0eXBlb2Ygci5pbmRlbnQ9PSJudW1iZXIiPyIgIi5yZXBlYXQoci5pbmRlbnQpOiIgICIsaW5GbG93OmEsb3B0aW9uczpyfX1mdW5jdGlvbiBaM2EodCxlKXtpZihlLnRhZyl7bGV0IHM9dC5maWx0ZXIobj0+bi50YWc9PT1lLnRhZyk7aWYocy5sZW5ndGg+MClyZXR1cm4gcy5maW5kKG49Pm4uZm9ybWF0PT09ZS5mb3JtYXQpPz9zWzBdfWxldCByLGE7aWYodXIoZSkpe2E9ZS52YWx1ZTtsZXQgcz10LmZpbHRlcihuPT5uLmlkZW50aWZ5Py4oYSkpO2lmKHMubGVuZ3RoPjEpe2xldCBuPXMuZmlsdGVyKG89Pm8udGVzdCk7bi5sZW5ndGg+MCYmKHM9bil9cj1zLmZpbmQobj0+bi5mb3JtYXQ9PT1lLmZvcm1hdCk/P3MuZmluZChuPT4hbi5mb3JtYXQpfWVsc2UgYT1lLHI9dC5maW5kKHM9PnMubm9kZUNsYXNzJiZhIGluc3RhbmNlb2Ygcy5ub2RlQ2xhc3MpO2lmKCFyKXtsZXQgcz1hPy5jb25zdHJ1Y3Rvcj8ubmFtZT8/KGE9PT1udWxsPyJudWxsIjp0eXBlb2YgYSk7dGhyb3cgbmV3IEVycm9yKGBUYWcgbm90IHJlc29sdmVkIGZvciAke3N9IHZhbHVlYCl9cmV0dXJuIHJ9ZnVuY3Rpb24gUTNhKHQsZSx7YW5jaG9yczpyLGRvYzphfSl7aWYoIWEuZGlyZWN0aXZlcylyZXR1cm4iIjtsZXQgcz1bXSxuPSh1cih0KXx8Y2EodCkpJiZ0LmFuY2hvcjtuJiZPUyhuKSYmKHIuYWRkKG4pLHMucHVzaChgJiR7bn1gKSk7bGV0IG89dC50YWc/PyhlLmRlZmF1bHQ/bnVsbDplLnRhZyk7cmV0dXJuIG8mJnMucHVzaChhLmRpcmVjdGl2ZXMudGFnU3RyaW5nKG8pKSxzLmpvaW4oIiAiKX1mdW5jdGlvbiBoMCh0LGUscixhKXtpZihfcih0KSlyZXR1cm4gdC50b1N0cmluZyhlLHIsYSk7aWYoYjEodCkpe2lmKGUuZG9jLmRpcmVjdGl2ZXMpcmV0dXJuIHQudG9TdHJpbmcoZSk7aWYoZS5yZXNvbHZlZEFsaWFzZXM/Lmhhcyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qgc3RyaW5naWZ5IGNpcmN1bGFyIHN0cnVjdHVyZSB3aXRob3V0IGFsaWFzIG5vZGVzIik7ZS5yZXNvbHZlZEFsaWFzZXM/ZS5yZXNvbHZlZEFsaWFzZXMuYWRkKHQpOmUucmVzb2x2ZWRBbGlhc2VzPW5ldyBTZXQoW3RdKSx0PXQucmVzb2x2ZShlLmRvYyl9bGV0IHMsbj1Qcih0KT90OmUuZG9jLmNyZWF0ZU5vZGUodCx7b25UYWdPYmo6aShjPT5zPWMsIm9uVGFnT2JqIil9KTtzPz8ocz1aM2EoZS5kb2Muc2NoZW1hLnRhZ3MsbikpO2xldCBvPVEzYShuLHMsZSk7by5sZW5ndGg+MCYmKGUuaW5kZW50QXRTdGFydD0oZS5pbmRlbnRBdFN0YXJ0Pz8wKStvLmxlbmd0aCsxKTtsZXQgbD10eXBlb2Ygcy5zdHJpbmdpZnk9PSJmdW5jdGlvbiI/cy5zdHJpbmdpZnkobixlLHIsYSk6dXIobik/ZjAobixlLHIsYSk6bi50b1N0cmluZyhlLHIsYSk7cmV0dXJuIG8/dXIobil8fGxbMF09PT0ieyJ8fGxbMF09PT0iWyI/YCR7b30gJHtsfWA6YCR7b30KJHtlLmluZGVudH0ke2x9YDpsfXZhciBXUz11KCgpPT57eG9lKCk7ZGEoKTtIUygpO2pTKCk7aShVUywiY3JlYXRlU3RyaW5naWZ5Q29udGV4dCIpO2koWjNhLCJnZXRUYWdPYmplY3QiKTtpKFEzYSwic3RyaW5naWZ5UHJvcHMiKTtpKGgwLCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIEFiZSh7a2V5OnQsdmFsdWU6ZX0scixhLHMpe2xldHthbGxOdWxsVmFsdWVzOm4sZG9jOm8saW5kZW50OmwsaW5kZW50U3RlcDpjLG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6ZCxpbmRlbnRTZXE6ZixzaW1wbGVLZXlzOnB9fT1yLGg9UHIodCkmJnQuY29tbWVudHx8bnVsbDtpZihwKXtpZihoKXRocm93IG5ldyBFcnJvcigiV2l0aCBzaW1wbGUga2V5cywga2V5IG5vZGVzIGNhbm5vdCBoYXZlIGNvbW1lbnRzIik7aWYoY2EodCl8fCFQcih0KSYmdHlwZW9mIHQ9PSJvYmplY3QiKXtsZXQgTz0iV2l0aCBzaW1wbGUga2V5cywgY29sbGVjdGlvbiBjYW5ub3QgYmUgdXNlZCBhcyBhIGtleSB2YWx1ZSI7dGhyb3cgbmV3IEVycm9yKE8pfX1sZXQgbT0hcCYmKCF0fHxoJiZlPT1udWxsJiYhci5pbkZsb3d8fGNhKHQpfHwodXIodCk/dC50eXBlPT09U3QuQkxPQ0tfRk9MREVEfHx0LnR5cGU9PT1TdC5CTE9DS19MSVRFUkFMOnR5cGVvZiB0PT0ib2JqZWN0IikpO3I9T2JqZWN0LmFzc2lnbih7fSxyLHthbGxOdWxsVmFsdWVzOiExLGltcGxpY2l0S2V5OiFtJiYocHx8IW4pLGluZGVudDpsK2N9KTtsZXQgdj0hMSxiPSExLGc9aDAodCxyLCgpPT52PSEwLCgpPT5iPSEwKTtpZighbSYmIXIuaW5GbG93JiZnLmxlbmd0aD4xMDI0KXtpZihwKXRocm93IG5ldyBFcnJvcigiV2l0aCBzaW1wbGUga2V5cywgc2luZ2xlIGxpbmUgc2NhbGFyIG11c3Qgbm90IHNwYW4gbW9yZSB0aGFuIDEwMjQgY2hhcmFjdGVycyIpO209ITB9aWYoci5pbkZsb3cpe2lmKG58fGU9PW51bGwpcmV0dXJuIHYmJmEmJmEoKSxnPT09IiI/Ij8iOm0/YD8gJHtnfWA6Z31lbHNlIGlmKG4mJiFwfHxlPT1udWxsJiZtKXJldHVybiBnPWA/ICR7Z31gLGgmJiF2P2crPVAyKGcsci5pbmRlbnQsZChoKSk6YiYmcyYmcygpLGc7diYmKGg9bnVsbCksbT8oaCYmKGcrPVAyKGcsci5pbmRlbnQsZChoKSkpLGc9YD8gJHtnfQoke2x9OmApOihnPWAke2d9OmAsaCYmKGcrPVAyKGcsci5pbmRlbnQsZChoKSkpKTtsZXQgeSxrLE07UHIoZSk/KHk9ISFlLnNwYWNlQmVmb3JlLGs9ZS5jb21tZW50QmVmb3JlLE09ZS5jb21tZW50KTooeT0hMSxrPW51bGwsTT1udWxsLGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKGU9by5jcmVhdGVOb2RlKGUpKSksci5pbXBsaWNpdEtleT0hMSwhbSYmIWgmJnVyKGUpJiYoci5pbmRlbnRBdFN0YXJ0PWcubGVuZ3RoKzEpLGI9ITEsIWYmJmMubGVuZ3RoPj0yJiYhci5pbkZsb3cmJiFtJiZ5MShlKSYmIWUuZmxvdyYmIWUudGFnJiYhZS5hbmNob3ImJihyLmluZGVudD1yLmluZGVudC5zdWJzdHJpbmcoMikpO2xldCBOPSExLF89aDAoZSxyLCgpPT5OPSEwLCgpPT5iPSEwKSxTPSIgIjtpZihofHx5fHxrKXtpZihTPXk/YApgOiIiLGspe2xldCBPPWQoayk7Uys9YAoke1UxKE8sci5pbmRlbnQpfWB9Xz09PSIiJiYhci5pbkZsb3c/Uz09PWAKYCYmTSYmKFM9YAoKYCk6Uys9YAoke3IuaW5kZW50fWB9ZWxzZSBpZighbSYmY2EoZSkpe2xldCBPPV9bMF0sTD1fLmluZGV4T2YoYApgKSxFPUwhPT0tMSxCPXIuaW5GbG93Pz9lLmZsb3c/P2UuaXRlbXMubGVuZ3RoPT09MDtpZihFfHwhQil7bGV0IEM9ITE7aWYoRSYmKE89PT0iJiJ8fE89PT0iISIpKXtsZXQgej1fLmluZGV4T2YoIiAiKTtPPT09IiYiJiZ6IT09LTEmJno8TCYmX1t6KzFdPT09IiEiJiYoej1fLmluZGV4T2YoIiAiLHorMSkpLCh6PT09LTF8fEw8eikmJihDPSEwKX1DfHwoUz1gCiR7ci5pbmRlbnR9YCl9fWVsc2UoXz09PSIifHxfWzBdPT09YApgKSYmKFM9IiIpO3JldHVybiBnKz1TK18sci5pbkZsb3c/TiYmYSYmYSgpOk0mJiFOP2crPVAyKGcsci5pbmRlbnQsZChNKSk6YiYmcyYmcygpLGd9dmFyIEJMdD11KCgpPT57ZGEoKTt2cygpO1dTKCk7SFMoKTtpKEFiZSwic3RyaW5naWZ5UGFpciIpfSk7ZnVuY3Rpb24gWDNhKHQsLi4uZSl7dD09PSJkZWJ1ZyImJmNvbnNvbGUubG9nKC4uLmUpfWZ1bmN0aW9uIEdTKHQsZSl7KHQ9PT0iZGVidWcifHx0PT09Indhcm4iKSYmY29uc29sZS53YXJuKGUpfXZhciBFYmU9dSgoKT0+e2koWDNhLCJkZWJ1ZyIpO2koR1MsIndhcm4iKX0pO2Z1bmN0aW9uIF9vZSh0LGUscil7bGV0IGE9SEx0KHQscik7aWYoeTEoYSkpZm9yKGxldCBzIG9mIGEuaXRlbXMpSWJlKHQsZSxzKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCBzIG9mIGEpSWJlKHQsZSxzKTtlbHNlIEliZSh0LGUsYSl9ZnVuY3Rpb24gSWJlKHQsZSxyKXtsZXQgYT1ITHQodCxyKTtpZighdjEoYSkpdGhyb3cgbmV3IEVycm9yKCJNZXJnZSBzb3VyY2VzIG11c3QgYmUgbWFwcyBvciBtYXAgYWxpYXNlcyIpO2xldCBzPWEudG9KU09OKG51bGwsdCxNYXApO2ZvcihsZXRbbixvXW9mIHMpZSBpbnN0YW5jZW9mIE1hcD9lLmhhcyhuKXx8ZS5zZXQobixvKTplIGluc3RhbmNlb2YgU2V0P2UuYWRkKG4pOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTpvLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gSEx0KHQsZSl7cmV0dXJuIHQmJmIxKGUpP2UucmVzb2x2ZSh0LmRvYyx0KTplfXZhciB6b2UsRGwsUGJlLFRvZT11KCgpPT57ZGEoKTt2cygpO3pvZT0iPDwiLERsPXtpZGVudGlmeTppKHQ9PnQ9PT16b2V8fHR5cGVvZiB0PT0ic3ltYm9sIiYmdC5kZXNjcmlwdGlvbj09PXpvZSwiaWRlbnRpZnkiKSxkZWZhdWx0OiJrZXkiLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiLHRlc3Q6L148PCQvLHJlc29sdmU6aSgoKT0+T2JqZWN0LmFzc2lnbihuZXcgU3QoU3ltYm9sKHpvZSkpLHthZGRUb0pTTWFwOl9vZX0pLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkoKCk9PnpvZSwic3RyaW5naWZ5Iil9LFBiZT1pKCh0LGUpPT4oRGwuaWRlbnRpZnkoZSl8fHVyKGUpJiYoIWUudHlwZXx8ZS50eXBlPT09U3QuUExBSU4pJiZEbC5pZGVudGlmeShlLnZhbHVlKSkmJnQ/LmRvYy5zY2hlbWEudGFncy5zb21lKHI9PnIudGFnPT09RGwudGFnJiZyLmRlZmF1bHQpLCJpc01lcmdlS2V5Iik7aShfb2UsImFkZE1lcmdlVG9KU01hcCIpO2koSWJlLCJtZXJnZVZhbHVlIik7aShITHQsInJlc29sdmVBbGlhc1ZhbHVlIil9KTtmdW5jdGlvbiBZUyh0LGUse2tleTpyLHZhbHVlOmF9KXtpZihQcihyKSYmci5hZGRUb0pTTWFwKXIuYWRkVG9KU01hcCh0LGUsYSk7ZWxzZSBpZihQYmUodCxyKSlfb2UodCxlLGEpO2Vsc2V7bGV0IHM9eHMociwiIix0KTtpZihlIGluc3RhbmNlb2YgTWFwKWUuc2V0KHMseHMoYSxzLHQpKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBTZXQpZS5hZGQocyk7ZWxzZXtsZXQgbj1KM2EocixzLHQpLG89eHMoYSxuLHQpO24gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTpvLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6ZVtuXT1vfX1yZXR1cm4gZX1mdW5jdGlvbiBKM2EodCxlLHIpe2lmKGU9PT1udWxsKXJldHVybiIiO2lmKHR5cGVvZiBlIT0ib2JqZWN0IilyZXR1cm4gU3RyaW5nKGUpO2lmKFByKHQpJiZyPy5kb2Mpe2xldCBhPVVTKHIuZG9jLHt9KTthLmFuY2hvcnM9bmV3IFNldDtmb3IobGV0IG4gb2Ygci5hbmNob3JzLmtleXMoKSlhLmFuY2hvcnMuYWRkKG4uYW5jaG9yKTthLmluRmxvdz0hMCxhLmluU3RyaW5naWZ5S2V5PSEwO2xldCBzPXQudG9TdHJpbmcoYSk7aWYoIXIubWFwS2V5V2FybmVkKXtsZXQgbj1KU09OLnN0cmluZ2lmeShzKTtuLmxlbmd0aD40MCYmKG49bi5zdWJzdHJpbmcoMCwzNikrJy4uLiInKSxHUyhyLmRvYy5vcHRpb25zLmxvZ0xldmVsLGBLZXlzIHdpdGggY29sbGVjdGlvbiB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZCBkdWUgdG8gSlMgT2JqZWN0IHJlc3RyaWN0aW9uczogJHtufS4gU2V0IG1hcEFzTWFwOiB0cnVlIHRvIHVzZSBvYmplY3Qga2V5cy5gKSxyLm1hcEtleVdhcm5lZD0hMH1yZXR1cm4gc31yZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9dmFyIE5iZT11KCgpPT57RWJlKCk7VG9lKCk7V1MoKTtkYSgpO2h1KCk7aShZUywiYWRkUGFpclRvSlNNYXAiKTtpKEozYSwic3RyaW5naWZ5S2V5Iil9KTtmdW5jdGlvbiBmaCh0LGUscil7bGV0IGE9cDAodCx2b2lkIDAscikscz1wMChlLHZvaWQgMCxyKTtyZXR1cm4gbmV3IG5pKGEscyl9dmFyIG5pLG11PXUoKCk9PntCUygpO0JMdCgpO05iZSgpO2RhKCk7aShmaCwiY3JlYXRlUGFpciIpO25pPWNsYXNzIHR7c3RhdGlje2kodGhpcywiUGFpciIpfWNvbnN0cnVjdG9yKGUscj1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxhbyx7dmFsdWU6bW9lfSksdGhpcy5rZXk9ZSx0aGlzLnZhbHVlPXJ9Y2xvbmUoZSl7bGV0e2tleTpyLHZhbHVlOmF9PXRoaXM7cmV0dXJuIFByKHIpJiYocj1yLmNsb25lKGUpKSxQcihhKSYmKGE9YS5jbG9uZShlKSksbmV3IHQocixhKX10b0pTT04oZSxyKXtsZXQgYT1yPy5tYXBBc01hcD9uZXcgTWFwOnt9O3JldHVybiBZUyhyLGEsdGhpcyl9dG9TdHJpbmcoZSxyLGEpe3JldHVybiBlPy5kb2M/QWJlKHRoaXMsZSxyLGEpOkpTT04uc3RyaW5naWZ5KHRoaXMpfX19KTtmdW5jdGlvbiBLUyh0LGUscil7cmV0dXJuKGUuaW5GbG93Pz90LmZsb3c/dHVhOmV1YSkodCxlLHIpfWZ1bmN0aW9uIGV1YSh7Y29tbWVudDp0LGl0ZW1zOmV9LHIse2Jsb2NrSXRlbVByZWZpeDphLGZsb3dDaGFyczpzLGl0ZW1JbmRlbnQ6bixvbkNob21wS2VlcDpvLG9uQ29tbWVudDpsfSl7bGV0e2luZGVudDpjLG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6ZH19PXIsZj1PYmplY3QuYXNzaWduKHt9LHIse2luZGVudDpuLHR5cGU6bnVsbH0pLHA9ITEsaD1bXTtmb3IobGV0IHY9MDt2PGUubGVuZ3RoOysrdil7bGV0IGI9ZVt2XSxnPW51bGw7aWYoUHIoYikpIXAmJmIuc3BhY2VCZWZvcmUmJmgucHVzaCgiIiksTG9lKHIsaCxiLmNvbW1lbnRCZWZvcmUscCksYi5jb21tZW50JiYoZz1iLmNvbW1lbnQpO2Vsc2UgaWYoX3IoYikpe2xldCBrPVByKGIua2V5KT9iLmtleTpudWxsO2smJighcCYmay5zcGFjZUJlZm9yZSYmaC5wdXNoKCIiKSxMb2UocixoLGsuY29tbWVudEJlZm9yZSxwKSl9cD0hMTtsZXQgeT1oMChiLGYsKCk9Pmc9bnVsbCwoKT0+cD0hMCk7ZyYmKHkrPVAyKHksbixkKGcpKSkscCYmZyYmKHA9ITEpLGgucHVzaChhK3kpfWxldCBtO2lmKGgubGVuZ3RoPT09MCltPXMuc3RhcnQrcy5lbmQ7ZWxzZXttPWhbMF07Zm9yKGxldCB2PTE7djxoLmxlbmd0aDsrK3Ype2xldCBiPWhbdl07bSs9Yj9gCiR7Y30ke2J9YDpgCmB9fXJldHVybiB0PyhtKz1gCmArVTEoZCh0KSxjKSxsJiZsKCkpOnAmJm8mJm8oKSxtfWZ1bmN0aW9uIHR1YSh7aXRlbXM6dH0sZSx7Zmxvd0NoYXJzOnIsaXRlbUluZGVudDphfSl7bGV0e2luZGVudDpzLGluZGVudFN0ZXA6bixmbG93Q29sbGVjdGlvblBhZGRpbmc6byxvcHRpb25zOntjb21tZW50U3RyaW5nOmx9fT1lO2ErPW47bGV0IGM9T2JqZWN0LmFzc2lnbih7fSxlLHtpbmRlbnQ6YSxpbkZsb3c6ITAsdHlwZTpudWxsfSksZD0hMSxmPTAscD1bXTtmb3IobGV0IHY9MDt2PHQubGVuZ3RoOysrdil7bGV0IGI9dFt2XSxnPW51bGw7aWYoUHIoYikpYi5zcGFjZUJlZm9yZSYmcC5wdXNoKCIiKSxMb2UoZSxwLGIuY29tbWVudEJlZm9yZSwhMSksYi5jb21tZW50JiYoZz1iLmNvbW1lbnQpO2Vsc2UgaWYoX3IoYikpe2xldCBrPVByKGIua2V5KT9iLmtleTpudWxsO2smJihrLnNwYWNlQmVmb3JlJiZwLnB1c2goIiIpLExvZShlLHAsay5jb21tZW50QmVmb3JlLCExKSxrLmNvbW1lbnQmJihkPSEwKSk7bGV0IE09UHIoYi52YWx1ZSk/Yi52YWx1ZTpudWxsO00/KE0uY29tbWVudCYmKGc9TS5jb21tZW50KSxNLmNvbW1lbnRCZWZvcmUmJihkPSEwKSk6Yi52YWx1ZT09bnVsbCYmaz8uY29tbWVudCYmKGc9ay5jb21tZW50KX1nJiYoZD0hMCk7bGV0IHk9aDAoYixjLCgpPT5nPW51bGwpO2R8fChkPXAubGVuZ3RoPmZ8fHkuaW5jbHVkZXMoYApgKSksdjx0Lmxlbmd0aC0xP3krPSIsIjplLm9wdGlvbnMudHJhaWxpbmdDb21tYSYmKGUub3B0aW9ucy5saW5lV2lkdGg+MCYmKGR8fChkPXAucmVkdWNlKChrLE0pPT5rK00ubGVuZ3RoKzIsMikrKHkubGVuZ3RoKzIpPmUub3B0aW9ucy5saW5lV2lkdGgpKSxkJiYoeSs9IiwiKSksZyYmKHkrPVAyKHksYSxsKGcpKSkscC5wdXNoKHkpLGY9cC5sZW5ndGh9bGV0e3N0YXJ0OmgsZW5kOm19PXI7aWYocC5sZW5ndGg9PT0wKXJldHVybiBoK207aWYoIWQpe2xldCB2PXAucmVkdWNlKChiLGcpPT5iK2cubGVuZ3RoKzIsMik7ZD1lLm9wdGlvbnMubGluZVdpZHRoPjAmJnY+ZS5vcHRpb25zLmxpbmVXaWR0aH1pZihkKXtsZXQgdj1oO2ZvcihsZXQgYiBvZiBwKXYrPWI/YAoke259JHtzfSR7Yn1gOmAKYDtyZXR1cm5gJHt2fQoke3N9JHttfWB9ZWxzZSByZXR1cm5gJHtofSR7b30ke3Auam9pbigiICIpfSR7b30ke219YH1mdW5jdGlvbiBMb2Uoe2luZGVudDp0LG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6ZX19LHIsYSxzKXtpZihhJiZzJiYoYT1hLnJlcGxhY2UoL15cbisvLCIiKSksYSl7bGV0IG49VTEoZShhKSx0KTtyLnB1c2gobi50cmltU3RhcnQoKSl9fXZhciBPYmU9dSgoKT0+e2RhKCk7V1MoKTtIUygpO2koS1MsInN0cmluZ2lmeUNvbGxlY3Rpb24iKTtpKGV1YSwic3RyaW5naWZ5QmxvY2tDb2xsZWN0aW9uIik7aSh0dWEsInN0cmluZ2lmeUZsb3dDb2xsZWN0aW9uIik7aShMb2UsImFkZENvbW1lbnRCZWZvcmUiKX0pO2Z1bmN0aW9uIFpkKHQsZSl7bGV0IHI9dXIoZSk/ZS52YWx1ZTplO2ZvcihsZXQgYSBvZiB0KWlmKF9yKGEpJiYoYS5rZXk9PT1lfHxhLmtleT09PXJ8fHVyKGEua2V5KSYmYS5rZXkudmFsdWU9PT1yKSlyZXR1cm4gYX12YXIgeGksZ3U9dSgoKT0+e09iZSgpO05iZSgpO3dvZSgpO2RhKCk7bXUoKTt2cygpO2koWmQsImZpbmRQYWlyIik7eGk9Y2xhc3MgZXh0ZW5kcyB1aHtzdGF0aWN7aSh0aGlzLCJZQU1MTWFwIil9c3RhdGljIGdldCB0YWdOYW1lKCl7cmV0dXJuInRhZzp5YW1sLm9yZywyMDAyOm1hcCJ9Y29uc3RydWN0b3IoZSl7c3VwZXIoVGwsZSksdGhpcy5pdGVtcz1bXX1zdGF0aWMgZnJvbShlLHIsYSl7bGV0e2tlZXBVbmRlZmluZWQ6cyxyZXBsYWNlcjpufT1hLG89bmV3IHRoaXMoZSksbD1pKChjLGQpPT57aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpZD1uLmNhbGwocixjLGQpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShuKSYmIW4uaW5jbHVkZXMoYykpcmV0dXJuOyhkIT09dm9pZCAwfHxzKSYmby5pdGVtcy5wdXNoKGZoKGMsZCxhKSl9LCJhZGQiKTtpZihyIGluc3RhbmNlb2YgTWFwKWZvcihsZXRbYyxkXW9mIHIpbChjLGQpO2Vsc2UgaWYociYmdHlwZW9mIHI9PSJvYmplY3QiKWZvcihsZXQgYyBvZiBPYmplY3Qua2V5cyhyKSlsKGMscltjXSk7cmV0dXJuIHR5cGVvZiBlLnNvcnRNYXBFbnRyaWVzPT0iZnVuY3Rpb24iJiZvLml0ZW1zLnNvcnQoZS5zb3J0TWFwRW50cmllcyksb31hZGQoZSxyKXtsZXQgYTtfcihlKT9hPWU6IWV8fHR5cGVvZiBlIT0ib2JqZWN0Inx8ISgia2V5ImluIGUpP2E9bmV3IG5pKGUsZT8udmFsdWUpOmE9bmV3IG5pKGUua2V5LGUudmFsdWUpO2xldCBzPVpkKHRoaXMuaXRlbXMsYS5rZXkpLG49dGhpcy5zY2hlbWE/LnNvcnRNYXBFbnRyaWVzO2lmKHMpe2lmKCFyKXRocm93IG5ldyBFcnJvcihgS2V5ICR7YS5rZXl9IGFscmVhZHkgc2V0YCk7dXIocy52YWx1ZSkmJkZTKGEudmFsdWUpP3MudmFsdWUudmFsdWU9YS52YWx1ZTpzLnZhbHVlPWEudmFsdWV9ZWxzZSBpZihuKXtsZXQgbz10aGlzLml0ZW1zLmZpbmRJbmRleChsPT5uKGEsbCk8MCk7bz09PS0xP3RoaXMuaXRlbXMucHVzaChhKTp0aGlzLml0ZW1zLnNwbGljZShvLDAsYSl9ZWxzZSB0aGlzLml0ZW1zLnB1c2goYSl9ZGVsZXRlKGUpe2xldCByPVpkKHRoaXMuaXRlbXMsZSk7cmV0dXJuIHI/dGhpcy5pdGVtcy5zcGxpY2UodGhpcy5pdGVtcy5pbmRleE9mKHIpLDEpLmxlbmd0aD4wOiExfWdldChlLHIpe2xldCBzPVpkKHRoaXMuaXRlbXMsZSk/LnZhbHVlO3JldHVybighciYmdXIocyk/cy52YWx1ZTpzKT8/dm9pZCAwfWhhcyhlKXtyZXR1cm4hIVpkKHRoaXMuaXRlbXMsZSl9c2V0KGUscil7dGhpcy5hZGQobmV3IG5pKGUsciksITApfXRvSlNPTihlLHIsYSl7bGV0IHM9YT9uZXcgYTpyPy5tYXBBc01hcD9uZXcgTWFwOnt9O3I/Lm9uQ3JlYXRlJiZyLm9uQ3JlYXRlKHMpO2ZvcihsZXQgbiBvZiB0aGlzLml0ZW1zKVlTKHIscyxuKTtyZXR1cm4gc310b1N0cmluZyhlLHIsYSl7aWYoIWUpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO2ZvcihsZXQgcyBvZiB0aGlzLml0ZW1zKWlmKCFfcihzKSl0aHJvdyBuZXcgRXJyb3IoYE1hcCBpdGVtcyBtdXN0IGFsbCBiZSBwYWlyczsgZm91bmQgJHtKU09OLnN0cmluZ2lmeShzKX0gaW5zdGVhZGApO3JldHVybiFlLmFsbE51bGxWYWx1ZXMmJnRoaXMuaGFzQWxsTnVsbFZhbHVlcyghMSkmJihlPU9iamVjdC5hc3NpZ24oe30sZSx7YWxsTnVsbFZhbHVlczohMH0pKSxLUyh0aGlzLGUse2Jsb2NrSXRlbVByZWZpeDoiIixmbG93Q2hhcnM6e3N0YXJ0OiJ7IixlbmQ6In0ifSxpdGVtSW5kZW50OmUuaW5kZW50fHwiIixvbkNob21wS2VlcDphLG9uQ29tbWVudDpyfSl9fX0pO3ZhciAkbCxWYj11KCgpPT57ZGEoKTtndSgpOyRsPXtjb2xsZWN0aW9uOiJtYXAiLGRlZmF1bHQ6ITAsbm9kZUNsYXNzOnhpLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6bWFwIixyZXNvbHZlKHQsZSl7cmV0dXJuIHYxKHQpfHxlKCJFeHBlY3RlZCBhIG1hcHBpbmcgZm9yIHRoaXMgdGFnIiksdH0sY3JlYXRlTm9kZTppKCh0LGUscik9PnhpLmZyb20odCxlLHIpLCJjcmVhdGVOb2RlIil9fSk7ZnVuY3Rpb24gRG9lKHQpe2xldCBlPXVyKHQpP3QudmFsdWU6dDtyZXR1cm4gZSYmdHlwZW9mIGU9PSJzdHJpbmciJiYoZT1OdW1iZXIoZSkpLHR5cGVvZiBlPT0ibnVtYmVyIiYmTnVtYmVyLmlzSW50ZWdlcihlKSYmZT49MD9lOm51bGx9dmFyIHFzLGJ1PXUoKCk9PntCUygpO09iZSgpO3dvZSgpO2RhKCk7dnMoKTtodSgpO3FzPWNsYXNzIGV4dGVuZHMgdWh7c3RhdGlje2kodGhpcywiWUFNTFNlcSIpfXN0YXRpYyBnZXQgdGFnTmFtZSgpe3JldHVybiJ0YWc6eWFtbC5vcmcsMjAwMjpzZXEifWNvbnN0cnVjdG9yKGUpe3N1cGVyKGQwLGUpLHRoaXMuaXRlbXM9W119YWRkKGUpe3RoaXMuaXRlbXMucHVzaChlKX1kZWxldGUoZSl7bGV0IHI9RG9lKGUpO3JldHVybiB0eXBlb2YgciE9Im51bWJlciI/ITE6dGhpcy5pdGVtcy5zcGxpY2UociwxKS5sZW5ndGg+MH1nZXQoZSxyKXtsZXQgYT1Eb2UoZSk7aWYodHlwZW9mIGEhPSJudW1iZXIiKXJldHVybjtsZXQgcz10aGlzLml0ZW1zW2FdO3JldHVybiFyJiZ1cihzKT9zLnZhbHVlOnN9aGFzKGUpe2xldCByPURvZShlKTtyZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIiJiZyPHRoaXMuaXRlbXMubGVuZ3RofXNldChlLHIpe2xldCBhPURvZShlKTtpZih0eXBlb2YgYSE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhIHZhbGlkIGluZGV4LCBub3QgJHtlfS5gKTtsZXQgcz10aGlzLml0ZW1zW2FdO3VyKHMpJiZGUyhyKT9zLnZhbHVlPXI6dGhpcy5pdGVtc1thXT1yfXRvSlNPTihlLHIpe2xldCBhPVtdO3I/Lm9uQ3JlYXRlJiZyLm9uQ3JlYXRlKGEpO2xldCBzPTA7Zm9yKGxldCBuIG9mIHRoaXMuaXRlbXMpYS5wdXNoKHhzKG4sU3RyaW5nKHMrKykscikpO3JldHVybiBhfXRvU3RyaW5nKGUscixhKXtyZXR1cm4gZT9LUyh0aGlzLGUse2Jsb2NrSXRlbVByZWZpeDoiLSAiLGZsb3dDaGFyczp7c3RhcnQ6IlsiLGVuZDoiXSJ9LGl0ZW1JbmRlbnQ6KGUuaW5kZW50fHwiIikrIiAgIixvbkNob21wS2VlcDphLG9uQ29tbWVudDpyfSk6SlNPTi5zdHJpbmdpZnkodGhpcyl9c3RhdGljIGZyb20oZSxyLGEpe2xldHtyZXBsYWNlcjpzfT1hLG49bmV3IHRoaXMoZSk7aWYociYmU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChyKSl7bGV0IG89MDtmb3IobGV0IGwgb2Ygcil7aWYodHlwZW9mIHM9PSJmdW5jdGlvbiIpe2xldCBjPXIgaW5zdGFuY2VvZiBTZXQ/bDpTdHJpbmcobysrKTtsPXMuY2FsbChyLGMsbCl9bi5pdGVtcy5wdXNoKHAwKGwsdm9pZCAwLGEpKX19cmV0dXJuIG59fTtpKERvZSwiYXNJdGVtSW5kZXgiKX0pO3ZhciBBbCxqYj11KCgpPT57ZGEoKTtidSgpO0FsPXtjb2xsZWN0aW9uOiJzZXEiLGRlZmF1bHQ6ITAsbm9kZUNsYXNzOnFzLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6c2VxIixyZXNvbHZlKHQsZSl7cmV0dXJuIHkxKHQpfHxlKCJFeHBlY3RlZCBhIHNlcXVlbmNlIGZvciB0aGlzIHRhZyIpLHR9LGNyZWF0ZU5vZGU6aSgodCxlLHIpPT5xcy5mcm9tKHQsZSxyKSwiY3JlYXRlTm9kZSIpfX0pO3ZhciBRZCxaUz11KCgpPT57alMoKTtRZD17aWRlbnRpZnk6aSh0PT50eXBlb2YgdD09InN0cmluZyIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnN0ciIscmVzb2x2ZTppKHQ9PnQsInJlc29sdmUiKSxzdHJpbmdpZnkodCxlLHIsYSl7cmV0dXJuIGU9T2JqZWN0LmFzc2lnbih7YWN0dWFsU3RyaW5nOiEwfSxlKSxmMCh0LGUscixhKX19fSk7dmFyIHh1LCRvZT11KCgpPT57dnMoKTt4dT17aWRlbnRpZnk6aSh0PT50PT1udWxsLCJpZGVudGlmeSIpLGNyZWF0ZU5vZGU6aSgoKT0+bmV3IFN0KG51bGwpLCJjcmVhdGVOb2RlIiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHRlc3Q6L14oPzp+fFtObl11bGx8TlVMTCk/JC8scmVzb2x2ZTppKCgpPT5uZXcgU3QobnVsbCksInJlc29sdmUiKSxzdHJpbmdpZnk6aSgoe3NvdXJjZTp0fSxlKT0+dHlwZW9mIHQ9PSJzdHJpbmciJiZ4dS50ZXN0LnRlc3QodCk/dDplLm9wdGlvbnMubnVsbFN0ciwic3RyaW5naWZ5Iil9fSk7dmFyIFViLFJiZT11KCgpPT57dnMoKTtVYj17aWRlbnRpZnk6aSh0PT50eXBlb2YgdD09ImJvb2xlYW4iLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix0ZXN0Oi9eKD86W1R0XXJ1ZXxUUlVFfFtGZl1hbHNlfEZBTFNFKSQvLHJlc29sdmU6aSh0PT5uZXcgU3QodFswXT09PSJ0Inx8dFswXT09PSJUIiksInJlc29sdmUiKSxzdHJpbmdpZnkoe3NvdXJjZTp0LHZhbHVlOmV9LHIpe2lmKHQmJlViLnRlc3QudGVzdCh0KSl7bGV0IGE9dFswXT09PSJ0Inx8dFswXT09PSJUIjtpZihlPT09YSlyZXR1cm4gdH1yZXR1cm4gZT9yLm9wdGlvbnMudHJ1ZVN0cjpyLm9wdGlvbnMuZmFsc2VTdHJ9fX0pO2Z1bmN0aW9uIFRuKHtmb3JtYXQ6dCxtaW5GcmFjdGlvbkRpZ2l0czplLHRhZzpyLHZhbHVlOmF9KXtpZih0eXBlb2YgYT09ImJpZ2ludCIpcmV0dXJuIFN0cmluZyhhKTtsZXQgcz10eXBlb2YgYT09Im51bWJlciI/YTpOdW1iZXIoYSk7aWYoIWlzRmluaXRlKHMpKXJldHVybiBpc05hTihzKT8iLm5hbiI6czwwPyItLmluZiI6Ii5pbmYiO2xldCBuPU9iamVjdC5pcyhhLC0wKT8iLTAiOkpTT04uc3RyaW5naWZ5KGEpO2lmKCF0JiZlJiYoIXJ8fHI9PT0idGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiKSYmL14tP1xkLy50ZXN0KG4pJiYhbi5pbmNsdWRlcygiZSIpKXtsZXQgbz1uLmluZGV4T2YoIi4iKTtvPDAmJihvPW4ubGVuZ3RoLG4rPSIuIik7bGV0IGw9ZS0obi5sZW5ndGgtby0xKTtmb3IoO2wtLSA+MDspbis9IjAifXJldHVybiBufXZhciBXYj11KCgpPT57aShUbiwic3RyaW5naWZ5TnVtYmVyIil9KTt2YXIgUVMsWFMsSlMsRmJlPXUoKCk9Pnt2cygpO1diKCk7UVM9e2lkZW50aWZ5OmkodD0+dHlwZW9mIHQ9PSJudW1iZXIiLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsdGVzdDovXig/OlstK10/XC4oPzppbmZ8SW5mfElORil8XC5uYW58XC5OYU58XC5OQU4pJC8scmVzb2x2ZTppKHQ9PnQuc2xpY2UoLTMpLnRvTG93ZXJDYXNlKCk9PT0ibmFuIj9OYU46dFswXT09PSItIj9OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLCJyZXNvbHZlIiksc3RyaW5naWZ5OlRufSxYUz17aWRlbnRpZnk6aSh0PT50eXBlb2YgdD09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iixmb3JtYXQ6IkVYUCIsdGVzdDovXlstK10/KD86XC5bMC05XSt8WzAtOV0rKD86XC5bMC05XSopPylbZUVdWy0rXT9bMC05XSskLyxyZXNvbHZlOmkodD0+cGFyc2VGbG9hdCh0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeSh0KXtsZXQgZT1OdW1iZXIodC52YWx1ZSk7cmV0dXJuIGlzRmluaXRlKGUpP2UudG9FeHBvbmVudGlhbCgpOlRuKHQpfX0sSlM9e2lkZW50aWZ5OmkodD0+dHlwZW9mIHQ9PSJudW1iZXIiLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsdGVzdDovXlstK10/KD86XC5bMC05XSt8WzAtOV0rXC5bMC05XSopJC8scmVzb2x2ZSh0KXtsZXQgZT1uZXcgU3QocGFyc2VGbG9hdCh0KSkscj10LmluZGV4T2YoIi4iKTtyZXR1cm4gciE9PS0xJiZ0W3QubGVuZ3RoLTFdPT09IjAiJiYoZS5taW5GcmFjdGlvbkRpZ2l0cz10Lmxlbmd0aC1yLTEpLGV9LHN0cmluZ2lmeTpUbn19KTtmdW5jdGlvbiBxTHQodCxlLHIpe2xldHt2YWx1ZTphfT10O3JldHVybiBBb2UoYSkmJmE+PTA/cithLnRvU3RyaW5nKGUpOlRuKHQpfXZhciBBb2UsQmJlLGVNLHRNLHJNLEhiZT11KCgpPT57V2IoKTtBb2U9aSh0PT50eXBlb2YgdD09ImJpZ2ludCJ8fE51bWJlci5pc0ludGVnZXIodCksImludElkZW50aWZ5IiksQmJlPWkoKHQsZSxyLHtpbnRBc0JpZ0ludDphfSk9PmE/QmlnSW50KHQpOnBhcnNlSW50KHQuc3Vic3RyaW5nKGUpLHIpLCJpbnRSZXNvbHZlIik7aShxTHQsImludFN0cmluZ2lmeSIpO2VNPXtpZGVudGlmeTppKHQ9PkFvZSh0KSYmdD49MCwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6Ik9DVCIsdGVzdDovXjBvWzAtN10rJC8scmVzb2x2ZTppKCh0LGUscik9PkJiZSh0LDIsOCxyKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTppKHQ9PnFMdCh0LDgsIjBvIiksInN0cmluZ2lmeSIpfSx0TT17aWRlbnRpZnk6QW9lLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHRlc3Q6L15bLStdP1swLTldKyQvLHJlc29sdmU6aSgodCxlLHIpPT5CYmUodCwwLDEwLHIpLCJyZXNvbHZlIiksc3RyaW5naWZ5OlRufSxyTT17aWRlbnRpZnk6aSh0PT5Bb2UodCkmJnQ+PTAsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJIRVgiLHRlc3Q6L14weFswLTlhLWZBLUZdKyQvLHJlc29sdmU6aSgodCxlLHIpPT5CYmUodCwyLDE2LHIpLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkodD0+cUx0KHQsMTYsIjB4IiksInN0cmluZ2lmeSIpfX0pO3ZhciBxYmUsVkx0PXUoKCk9PntWYigpOyRvZSgpO2piKCk7WlMoKTtSYmUoKTtGYmUoKTtIYmUoKTtxYmU9WyRsLEFsLFFkLHh1LFViLGVNLHRNLHJNLFFTLFhTLEpTXX0pO2Z1bmN0aW9uIGpMdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKHQpfXZhciBFb2UscnVhLGF1YSxWYmUsVUx0PXUoKCk9Pnt2cygpO1ZiKCk7amIoKTtpKGpMdCwiaW50SWRlbnRpZnkiKTtFb2U9aSgoe3ZhbHVlOnR9KT0+SlNPTi5zdHJpbmdpZnkodCksInN0cmluZ2lmeUpTT04iKSxydWE9W3tpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ic3RyaW5nIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6c3RyIixyZXNvbHZlOmkodD0+dCwicmVzb2x2ZSIpLHN0cmluZ2lmeTpFb2V9LHtpZGVudGlmeTppKHQ9PnQ9PW51bGwsImlkZW50aWZ5IiksY3JlYXRlTm9kZTppKCgpPT5uZXcgU3QobnVsbCksImNyZWF0ZU5vZGUiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIsdGVzdDovXm51bGwkLyxyZXNvbHZlOmkoKCk9Pm51bGwsInJlc29sdmUiKSxzdHJpbmdpZnk6RW9lfSx7aWRlbnRpZnk6aSh0PT50eXBlb2YgdD09ImJvb2xlYW4iLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix0ZXN0Oi9edHJ1ZSR8XmZhbHNlJC8scmVzb2x2ZTppKHQ9PnQ9PT0idHJ1ZSIsInJlc29sdmUiKSxzdHJpbmdpZnk6RW9lfSx7aWRlbnRpZnk6akx0LGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHRlc3Q6L14tPyg/OjB8WzEtOV1bMC05XSopJC8scmVzb2x2ZTppKCh0LGUse2ludEFzQmlnSW50OnJ9KT0+cj9CaWdJbnQodCk6cGFyc2VJbnQodCwxMCksInJlc29sdmUiKSxzdHJpbmdpZnk6aSgoe3ZhbHVlOnR9KT0+akx0KHQpP3QudG9TdHJpbmcoKTpKU09OLnN0cmluZ2lmeSh0KSwic3RyaW5naWZ5Iil9LHtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L14tPyg/OjB8WzEtOV1bMC05XSopKD86XC5bMC05XSopPyg/OltlRV1bLStdP1swLTldKyk/JC8scmVzb2x2ZTppKHQ9PnBhcnNlRmxvYXQodCksInJlc29sdmUiKSxzdHJpbmdpZnk6RW9lfV0sYXVhPXtkZWZhdWx0OiEwLHRhZzoiIix0ZXN0Oi9eLyxyZXNvbHZlKHQsZSl7cmV0dXJuIGUoYFVucmVzb2x2ZWQgcGxhaW4gc2NhbGFyICR7SlNPTi5zdHJpbmdpZnkodCl9YCksdH19LFZiZT1bJGwsQWxdLmNvbmNhdChydWEsYXVhKX0pO3ZhciBHYixqYmU9dSgoKT0+e3ZzKCk7alMoKTtHYj17aWRlbnRpZnk6aSh0PT50IGluc3RhbmNlb2YgVWludDhBcnJheSwiaWRlbnRpZnkiKSxkZWZhdWx0OiExLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5IixyZXNvbHZlKHQsZSl7aWYodHlwZW9mIGF0b2I9PSJmdW5jdGlvbiIpe2xldCByPWF0b2IodC5yZXBsYWNlKC9bXG5ccl0vZywiIikpLGE9bmV3IFVpbnQ4QXJyYXkoci5sZW5ndGgpO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7KytzKWFbc109ci5jaGFyQ29kZUF0KHMpO3JldHVybiBhfWVsc2UgcmV0dXJuIGUoIlRoaXMgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCByZWFkaW5nIGJpbmFyeSB0YWdzOyBlaXRoZXIgQnVmZmVyIG9yIGF0b2IgaXMgcmVxdWlyZWQiKSx0fSxzdHJpbmdpZnkoe2NvbW1lbnQ6dCx0eXBlOmUsdmFsdWU6cn0sYSxzLG4pe2lmKCFyKXJldHVybiIiO2xldCBvPXIsbDtpZih0eXBlb2YgYnRvYT09ImZ1bmN0aW9uIil7bGV0IGM9IiI7Zm9yKGxldCBkPTA7ZDxvLmxlbmd0aDsrK2QpYys9U3RyaW5nLmZyb21DaGFyQ29kZShvW2RdKTtsPWJ0b2EoYyl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlRoaXMgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCB3cml0aW5nIGJpbmFyeSB0YWdzOyBlaXRoZXIgQnVmZmVyIG9yIGJ0b2EgaXMgcmVxdWlyZWQiKTtpZihlPz8oZT1TdC5CTE9DS19MSVRFUkFMKSxlIT09U3QuUVVPVEVfRE9VQkxFKXtsZXQgYz1NYXRoLm1heChhLm9wdGlvbnMubGluZVdpZHRoLWEuaW5kZW50Lmxlbmd0aCxhLm9wdGlvbnMubWluQ29udGVudFdpZHRoKSxkPU1hdGguY2VpbChsLmxlbmd0aC9jKSxmPW5ldyBBcnJheShkKTtmb3IobGV0IHA9MCxoPTA7cDxkOysrcCxoKz1jKWZbcF09bC5zdWJzdHIoaCxjKTtsPWYuam9pbihlPT09U3QuQkxPQ0tfTElURVJBTD9gCmA6IiAiKX1yZXR1cm4gZjAoe2NvbW1lbnQ6dCx0eXBlOmUsdmFsdWU6bH0sYSxzLG4pfX19KTtmdW5jdGlvbiBJb2UodCxlKXtpZih5MSh0KSlmb3IobGV0IHI9MDtyPHQuaXRlbXMubGVuZ3RoOysrcil7bGV0IGE9dC5pdGVtc1tyXTtpZighX3IoYSkpe2lmKHYxKGEpKXthLml0ZW1zLmxlbmd0aD4xJiZlKCJFYWNoIHBhaXIgbXVzdCBoYXZlIGl0cyBvd24gc2VxdWVuY2UgaW5kaWNhdG9yIik7bGV0IHM9YS5pdGVtc1swXXx8bmV3IG5pKG5ldyBTdChudWxsKSk7aWYoYS5jb21tZW50QmVmb3JlJiYocy5rZXkuY29tbWVudEJlZm9yZT1zLmtleS5jb21tZW50QmVmb3JlP2Ake2EuY29tbWVudEJlZm9yZX0KJHtzLmtleS5jb21tZW50QmVmb3JlfWA6YS5jb21tZW50QmVmb3JlKSxhLmNvbW1lbnQpe2xldCBuPXMudmFsdWU/P3Mua2V5O24uY29tbWVudD1uLmNvbW1lbnQ/YCR7YS5jb21tZW50fQoke24uY29tbWVudH1gOmEuY29tbWVudH1hPXN9dC5pdGVtc1tyXT1fcihhKT9hOm5ldyBuaShhKX19ZWxzZSBlKCJFeHBlY3RlZCBhIHNlcXVlbmNlIGZvciB0aGlzIHRhZyIpO3JldHVybiB0fWZ1bmN0aW9uIFBvZSh0LGUscil7bGV0e3JlcGxhY2VyOmF9PXIscz1uZXcgcXModCk7cy50YWc9InRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIjtsZXQgbj0wO2lmKGUmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpZm9yKGxldCBvIG9mIGUpe3R5cGVvZiBhPT0iZnVuY3Rpb24iJiYobz1hLmNhbGwoZSxTdHJpbmcobisrKSxvKSk7bGV0IGwsYztpZihBcnJheS5pc0FycmF5KG8pKWlmKG8ubGVuZ3RoPT09MilsPW9bMF0sYz1vWzFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgW2tleSwgdmFsdWVdIHR1cGxlOiAke299YCk7ZWxzZSBpZihvJiZvIGluc3RhbmNlb2YgT2JqZWN0KXtsZXQgZD1PYmplY3Qua2V5cyhvKTtpZihkLmxlbmd0aD09PTEpbD1kWzBdLGM9b1tsXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHR1cGxlIHdpdGggb25lIGtleSwgbm90ICR7ZC5sZW5ndGh9IGtleXNgKX1lbHNlIGw9bztzLml0ZW1zLnB1c2goZmgobCxjLHIpKX1yZXR1cm4gc312YXIgWWIsTm9lPXUoKCk9PntkYSgpO211KCk7dnMoKTtidSgpO2koSW9lLCJyZXNvbHZlUGFpcnMiKTtpKFBvZSwiY3JlYXRlUGFpcnMiKTtZYj17Y29sbGVjdGlvbjoic2VxIixkZWZhdWx0OiExLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6cGFpcnMiLHJlc29sdmU6SW9lLGNyZWF0ZU5vZGU6UG9lfX0pO3ZhciBoaCxLYixVYmU9dSgoKT0+e2RhKCk7aHUoKTtndSgpO2J1KCk7Tm9lKCk7aGg9Y2xhc3MgdCBleHRlbmRzIHFze3N0YXRpY3tpKHRoaXMsIllBTUxPTWFwIil9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYWRkPXhpLnByb3RvdHlwZS5hZGQuYmluZCh0aGlzKSx0aGlzLmRlbGV0ZT14aS5wcm90b3R5cGUuZGVsZXRlLmJpbmQodGhpcyksdGhpcy5nZXQ9eGkucHJvdG90eXBlLmdldC5iaW5kKHRoaXMpLHRoaXMuaGFzPXhpLnByb3RvdHlwZS5oYXMuYmluZCh0aGlzKSx0aGlzLnNldD14aS5wcm90b3R5cGUuc2V0LmJpbmQodGhpcyksdGhpcy50YWc9dC50YWd9dG9KU09OKGUscil7aWYoIXIpcmV0dXJuIHN1cGVyLnRvSlNPTihlKTtsZXQgYT1uZXcgTWFwO3I/Lm9uQ3JlYXRlJiZyLm9uQ3JlYXRlKGEpO2ZvcihsZXQgcyBvZiB0aGlzLml0ZW1zKXtsZXQgbixvO2lmKF9yKHMpPyhuPXhzKHMua2V5LCIiLHIpLG89eHMocy52YWx1ZSxuLHIpKTpuPXhzKHMsIiIsciksYS5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJPcmRlcmVkIG1hcHMgbXVzdCBub3QgaW5jbHVkZSBkdXBsaWNhdGUga2V5cyIpO2Euc2V0KG4sbyl9cmV0dXJuIGF9c3RhdGljIGZyb20oZSxyLGEpe2xldCBzPVBvZShlLHIsYSksbj1uZXcgdGhpcztyZXR1cm4gbi5pdGVtcz1zLml0ZW1zLG59fTtoaC50YWc9InRhZzp5YW1sLm9yZywyMDAyOm9tYXAiO0tiPXtjb2xsZWN0aW9uOiJzZXEiLGlkZW50aWZ5OmkodD0+dCBpbnN0YW5jZW9mIE1hcCwiaWRlbnRpZnkiKSxub2RlQ2xhc3M6aGgsZGVmYXVsdDohMSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm9tYXAiLHJlc29sdmUodCxlKXtsZXQgcj1Jb2UodCxlKSxhPVtdO2ZvcihsZXR7a2V5OnN9b2Ygci5pdGVtcyl1cihzKSYmKGEuaW5jbHVkZXMocy52YWx1ZSk/ZShgT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXM6ICR7cy52YWx1ZX1gKTphLnB1c2gocy52YWx1ZSkpO3JldHVybiBPYmplY3QuYXNzaWduKG5ldyBoaCxyKX0sY3JlYXRlTm9kZTppKCh0LGUscik9PmhoLmZyb20odCxlLHIpLCJjcmVhdGVOb2RlIil9fSk7ZnVuY3Rpb24gV0x0KHt2YWx1ZTp0LHNvdXJjZTplfSxyKXtyZXR1cm4gZSYmKHQ/T29lOlJvZSkudGVzdC50ZXN0KGUpP2U6dD9yLm9wdGlvbnMudHJ1ZVN0cjpyLm9wdGlvbnMuZmFsc2VTdHJ9dmFyIE9vZSxSb2UsR0x0PXUoKCk9Pnt2cygpO2koV0x0LCJib29sU3RyaW5naWZ5Iik7T29lPXtpZGVudGlmeTppKHQ9PnQ9PT0hMCwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIsdGVzdDovXig/Oll8eXxbWXldZXN8WUVTfFtUdF1ydWV8VFJVRXxbT29dbnxPTikkLyxyZXNvbHZlOmkoKCk9Pm5ldyBTdCghMCksInJlc29sdmUiKSxzdHJpbmdpZnk6V0x0fSxSb2U9e2lkZW50aWZ5OmkodD0+dD09PSExLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix0ZXN0Oi9eKD86TnxufFtObl1vfE5PfFtGZl1hbHNlfEZBTFNFfFtPb11mZnxPRkYpJC8scmVzb2x2ZTppKCgpPT5uZXcgU3QoITEpLCJyZXNvbHZlIiksc3RyaW5naWZ5OldMdH19KTt2YXIgV2JlLEdiZSxZYmUsWUx0PXUoKCk9Pnt2cygpO1diKCk7V2JlPXtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L14oPzpbLStdP1wuKD86aW5mfEluZnxJTkYpfFwubmFufFwuTmFOfFwuTkFOKSQvLHJlc29sdmU6aSh0PT50LnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09Im5hbiI/TmFOOnRbMF09PT0iLSI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpUbn0sR2JlPXtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLGZvcm1hdDoiRVhQIix0ZXN0Oi9eWy0rXT8oPzpbMC05XVswLTlfXSopPyg/OlwuWzAtOV9dKik/W2VFXVstK10/WzAtOV0rJC8scmVzb2x2ZTppKHQ9PnBhcnNlRmxvYXQodC5yZXBsYWNlKC9fL2csIiIpKSwicmVzb2x2ZSIpLHN0cmluZ2lmeSh0KXtsZXQgZT1OdW1iZXIodC52YWx1ZSk7cmV0dXJuIGlzRmluaXRlKGUpP2UudG9FeHBvbmVudGlhbCgpOlRuKHQpfX0sWWJlPXtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L15bLStdPyg/OlswLTldWzAtOV9dKik/XC5bMC05X10qJC8scmVzb2x2ZSh0KXtsZXQgZT1uZXcgU3QocGFyc2VGbG9hdCh0LnJlcGxhY2UoL18vZywiIikpKSxyPXQuaW5kZXhPZigiLiIpO2lmKHIhPT0tMSl7bGV0IGE9dC5zdWJzdHJpbmcocisxKS5yZXBsYWNlKC9fL2csIiIpO2FbYS5sZW5ndGgtMV09PT0iMCImJihlLm1pbkZyYWN0aW9uRGlnaXRzPWEubGVuZ3RoKX1yZXR1cm4gZX0sc3RyaW5naWZ5OlRufX0pO2Z1bmN0aW9uIEZvZSh0LGUscix7aW50QXNCaWdJbnQ6YX0pe2xldCBzPXRbMF07aWYoKHM9PT0iLSJ8fHM9PT0iKyIpJiYoZSs9MSksdD10LnN1YnN0cmluZyhlKS5yZXBsYWNlKC9fL2csIiIpLGEpe3N3aXRjaChyKXtjYXNlIDI6dD1gMGIke3R9YDticmVhaztjYXNlIDg6dD1gMG8ke3R9YDticmVhaztjYXNlIDE2OnQ9YDB4JHt0fWA7YnJlYWt9bGV0IG89QmlnSW50KHQpO3JldHVybiBzPT09Ii0iP0JpZ0ludCgtMSkqbzpvfWxldCBuPXBhcnNlSW50KHQscik7cmV0dXJuIHM9PT0iLSI/LTEqbjpufWZ1bmN0aW9uIEtiZSh0LGUscil7bGV0e3ZhbHVlOmF9PXQ7aWYoYU0oYSkpe2xldCBzPWEudG9TdHJpbmcoZSk7cmV0dXJuIGE8MD8iLSIrcitzLnN1YnN0cigxKTpyK3N9cmV0dXJuIFRuKHQpfXZhciBhTSxaYmUsUWJlLFhiZSxKYmUsS0x0PXUoKCk9PntXYigpO2FNPWkodD0+dHlwZW9mIHQ9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKHQpLCJpbnRJZGVudGlmeSIpO2koRm9lLCJpbnRSZXNvbHZlIik7aShLYmUsImludFN0cmluZ2lmeSIpO1piZT17aWRlbnRpZnk6YU0sZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJCSU4iLHRlc3Q6L15bLStdPzBiWzAtMV9dKyQvLHJlc29sdmU6aSgodCxlLHIpPT5Gb2UodCwyLDIsciksInJlc29sdmUiKSxzdHJpbmdpZnk6aSh0PT5LYmUodCwyLCIwYiIpLCJzdHJpbmdpZnkiKX0sUWJlPXtpZGVudGlmeTphTSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6Ik9DVCIsdGVzdDovXlstK10/MFswLTdfXSskLyxyZXNvbHZlOmkoKHQsZSxyKT0+Rm9lKHQsMSw4LHIpLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkodD0+S2JlKHQsOCwiMCIpLCJzdHJpbmdpZnkiKX0sWGJlPXtpZGVudGlmeTphTSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iix0ZXN0Oi9eWy0rXT9bMC05XVswLTlfXSokLyxyZXNvbHZlOmkoKHQsZSxyKT0+Rm9lKHQsMCwxMCxyKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpUbn0sSmJlPXtpZGVudGlmeTphTSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6IkhFWCIsdGVzdDovXlstK10/MHhbMC05YS1mQS1GX10rJC8scmVzb2x2ZTppKCh0LGUscik9PkZvZSh0LDIsMTYsciksInJlc29sdmUiKSxzdHJpbmdpZnk6aSh0PT5LYmUodCwxNiwiMHgiKSwic3RyaW5naWZ5Iil9fSk7dmFyIG1oLFpiLGV4ZT11KCgpPT57ZGEoKTttdSgpO2d1KCk7bWg9Y2xhc3MgdCBleHRlbmRzIHhpe3N0YXRpY3tpKHRoaXMsIllBTUxTZXQiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnRhZz10LnRhZ31hZGQoZSl7bGV0IHI7X3IoZSk/cj1lOmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmImtleSJpbiBlJiYidmFsdWUiaW4gZSYmZS52YWx1ZT09PW51bGw/cj1uZXcgbmkoZS5rZXksbnVsbCk6cj1uZXcgbmkoZSxudWxsKSxaZCh0aGlzLml0ZW1zLHIua2V5KXx8dGhpcy5pdGVtcy5wdXNoKHIpfWdldChlLHIpe2xldCBhPVpkKHRoaXMuaXRlbXMsZSk7cmV0dXJuIXImJl9yKGEpP3VyKGEua2V5KT9hLmtleS52YWx1ZTphLmtleTphfXNldChlLHIpe2lmKHR5cGVvZiByIT0iYm9vbGVhbiIpdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBib29sZWFuIHZhbHVlIGZvciBzZXQoa2V5LCB2YWx1ZSkgaW4gYSBZQU1MIHNldCwgbm90ICR7dHlwZW9mIHJ9YCk7bGV0IGE9WmQodGhpcy5pdGVtcyxlKTthJiYhcj90aGlzLml0ZW1zLnNwbGljZSh0aGlzLml0ZW1zLmluZGV4T2YoYSksMSk6IWEmJnImJnRoaXMuaXRlbXMucHVzaChuZXcgbmkoZSkpfXRvSlNPTihlLHIpe3JldHVybiBzdXBlci50b0pTT04oZSxyLFNldCl9dG9TdHJpbmcoZSxyLGEpe2lmKCFlKXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtpZih0aGlzLmhhc0FsbE51bGxWYWx1ZXMoITApKXJldHVybiBzdXBlci50b1N0cmluZyhPYmplY3QuYXNzaWduKHt9LGUse2FsbE51bGxWYWx1ZXM6ITB9KSxyLGEpO3Rocm93IG5ldyBFcnJvcigiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXMiKX1zdGF0aWMgZnJvbShlLHIsYSl7bGV0e3JlcGxhY2VyOnN9PWEsbj1uZXcgdGhpcyhlKTtpZihyJiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KHIpKWZvcihsZXQgbyBvZiByKXR5cGVvZiBzPT0iZnVuY3Rpb24iJiYobz1zLmNhbGwocixvLG8pKSxuLml0ZW1zLnB1c2goZmgobyxudWxsLGEpKTtyZXR1cm4gbn19O21oLnRhZz0idGFnOnlhbWwub3JnLDIwMDI6c2V0IjtaYj17Y29sbGVjdGlvbjoibWFwIixpZGVudGlmeTppKHQ9PnQgaW5zdGFuY2VvZiBTZXQsImlkZW50aWZ5Iiksbm9kZUNsYXNzOm1oLGRlZmF1bHQ6ITEsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiLGNyZWF0ZU5vZGU6aSgodCxlLHIpPT5taC5mcm9tKHQsZSxyKSwiY3JlYXRlTm9kZSIpLHJlc29sdmUodCxlKXtpZih2MSh0KSl7aWYodC5oYXNBbGxOdWxsVmFsdWVzKCEwKSlyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgbWgsdCk7ZSgiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXMiKX1lbHNlIGUoIkV4cGVjdGVkIGEgbWFwcGluZyBmb3IgdGhpcyB0YWciKTtyZXR1cm4gdH19fSk7ZnVuY3Rpb24gdHhlKHQsZSl7bGV0IHI9dFswXSxhPXI9PT0iLSJ8fHI9PT0iKyI/dC5zdWJzdHJpbmcoMSk6dCxzPWkobz0+ZT9CaWdJbnQobyk6TnVtYmVyKG8pLCJudW0iKSxuPWEucmVwbGFjZSgvXy9nLCIiKS5zcGxpdCgiOiIpLnJlZHVjZSgobyxsKT0+bypzKDYwKStzKGwpLHMoMCkpO3JldHVybiByPT09Ii0iP3MoLTEpKm46bn1mdW5jdGlvbiBaTHQodCl7bGV0e3ZhbHVlOmV9PXQscj1pKG89Pm8sIm51bSIpO2lmKHR5cGVvZiBlPT0iYmlnaW50IilyPWkobz0+QmlnSW50KG8pLCJudW0iKTtlbHNlIGlmKGlzTmFOKGUpfHwhaXNGaW5pdGUoZSkpcmV0dXJuIFRuKHQpO2xldCBhPSIiO2U8MCYmKGE9Ii0iLGUqPXIoLTEpKTtsZXQgcz1yKDYwKSxuPVtlJXNdO3JldHVybiBlPDYwP24udW5zaGlmdCgwKTooZT0oZS1uWzBdKS9zLG4udW5zaGlmdChlJXMpLGU+PTYwJiYoZT0oZS1uWzBdKS9zLG4udW5zaGlmdChlKSkpLGErbi5tYXAobz0+U3RyaW5nKG8pLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiOiIpLnJlcGxhY2UoLzAwMDAwMFxkKiQvLCIiKX12YXIgaU0sc00sZ2gscnhlPXUoKCk9PntXYigpO2kodHhlLCJwYXJzZVNleGFnZXNpbWFsIik7aShaTHQsInN0cmluZ2lmeVNleGFnZXNpbWFsIik7aU09e2lkZW50aWZ5OmkodD0+dHlwZW9mIHQ9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKHQpLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLGZvcm1hdDoiVElNRSIsdGVzdDovXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKSskLyxyZXNvbHZlOmkoKHQsZSx7aW50QXNCaWdJbnQ6cn0pPT50eGUodCxyKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpaTHR9LHNNPXtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLGZvcm1hdDoiVElNRSIsdGVzdDovXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKStcLlswLTlfXSokLyxyZXNvbHZlOmkodD0+dHhlKHQsITEpLCJyZXNvbHZlIiksc3RyaW5naWZ5OlpMdH0sZ2g9e2lkZW50aWZ5OmkodD0+dCBpbnN0YW5jZW9mIERhdGUsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIsdGVzdDpSZWdFeHAoIl4oWzAtOV17NH0pLShbMC05XXsxLDJ9KS0oWzAtOV17MSwyfSkoPzooPzp0fFR8WyBcXHRdKykoWzAtOV17MSwyfSk6KFswLTldezEsMn0pOihbMC05XXsxLDJ9KFxcLlswLTldKyk/KSg/OlsgXFx0XSooWnxbLStdWzAxMl0/WzAtOV0oPzo6WzAtOV17Mn0pPykpPyk/JCIpLHJlc29sdmUodCl7bGV0IGU9dC5tYXRjaChnaC50ZXN0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIiEhdGltZXN0YW1wIGV4cGVjdHMgYSBkYXRlLCBzdGFydGluZyB3aXRoIHl5eXktbW0tZGQiKTtsZXRbLHIsYSxzLG4sbyxsXT1lLm1hcChOdW1iZXIpLGM9ZVs3XT9OdW1iZXIoKGVbN10rIjAwIikuc3Vic3RyKDEsMykpOjAsZD1EYXRlLlVUQyhyLGEtMSxzLG58fDAsb3x8MCxsfHwwLGMpLGY9ZVs4XTtpZihmJiZmIT09IloiKXtsZXQgcD10eGUoZiwhMSk7TWF0aC5hYnMocCk8MzAmJihwKj02MCksZC09NmU0KnB9cmV0dXJuIG5ldyBEYXRlKGQpfSxzdHJpbmdpZnk6aSgoe3ZhbHVlOnR9KT0+dD8udG9JU09TdHJpbmcoKS5yZXBsYWNlKC8oVDAwOjAwOjAwKT9cLjAwMFokLywiIik/PyIiLCJzdHJpbmdpZnkiKX19KTt2YXIgQm9lLFFMdD11KCgpPT57VmIoKTskb2UoKTtqYigpO1pTKCk7amJlKCk7R0x0KCk7WUx0KCk7S0x0KCk7VG9lKCk7VWJlKCk7Tm9lKCk7ZXhlKCk7cnhlKCk7Qm9lPVskbCxBbCxRZCx4dSxPb2UsUm9lLFpiZSxRYmUsWGJlLEpiZSxXYmUsR2JlLFliZSxHYixEbCxLYixZYixaYixpTSxzTSxnaF19KTtmdW5jdGlvbiBuTSh0LGUscil7bGV0IGE9WEx0LmdldChlKTtpZihhJiYhdClyZXR1cm4gciYmIWEuaW5jbHVkZXMoRGwpP2EuY29uY2F0KERsKTphLnNsaWNlKCk7bGV0IHM9YTtpZighcylpZihBcnJheS5pc0FycmF5KHQpKXM9W107ZWxzZXtsZXQgbj1BcnJheS5mcm9tKFhMdC5rZXlzKCkpLmZpbHRlcihvPT5vIT09InlhbWwxMSIpLm1hcChvPT5KU09OLnN0cmluZ2lmeShvKSkuam9pbigiLCAiKTt0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2NoZW1hICIke2V9IjsgdXNlIG9uZSBvZiAke259IG9yIGRlZmluZSBjdXN0b21UYWdzIGFycmF5YCl9aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IG4gb2YgdClzPXMuY29uY2F0KG4pO2Vsc2UgdHlwZW9mIHQ9PSJmdW5jdGlvbiImJihzPXQocy5zbGljZSgpKSk7cmV0dXJuIHImJihzPXMuY29uY2F0KERsKSkscy5yZWR1Y2UoKG4sbyk9PntsZXQgbD10eXBlb2Ygbz09InN0cmluZyI/Skx0W29dOm87aWYoIWwpe2xldCBjPUpTT04uc3RyaW5naWZ5KG8pLGQ9T2JqZWN0LmtleXMoSkx0KS5tYXAoZj0+SlNPTi5zdHJpbmdpZnkoZikpLmpvaW4oIiwgIik7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGN1c3RvbSB0YWcgJHtjfTsgdXNlIG9uZSBvZiAke2R9YCl9cmV0dXJuIG4uaW5jbHVkZXMobCl8fG4ucHVzaChsKSxufSxbXSl9dmFyIFhMdCxKTHQsYXhlLGVEdD11KCgpPT57VmIoKTskb2UoKTtqYigpO1pTKCk7UmJlKCk7RmJlKCk7SGJlKCk7Vkx0KCk7VUx0KCk7amJlKCk7VG9lKCk7VWJlKCk7Tm9lKCk7UUx0KCk7ZXhlKCk7cnhlKCk7WEx0PW5ldyBNYXAoW1siY29yZSIscWJlXSxbImZhaWxzYWZlIixbJGwsQWwsUWRdXSxbImpzb24iLFZiZV0sWyJ5YW1sMTEiLEJvZV0sWyJ5YW1sLTEuMSIsQm9lXV0pLEpMdD17YmluYXJ5OkdiLGJvb2w6VWIsZmxvYXQ6SlMsZmxvYXRFeHA6WFMsZmxvYXROYU46UVMsZmxvYXRUaW1lOnNNLGludDp0TSxpbnRIZXg6ck0saW50T2N0OmVNLGludFRpbWU6aU0sbWFwOiRsLG1lcmdlOkRsLG51bGw6eHUsb21hcDpLYixwYWlyczpZYixzZXE6QWwsc2V0OlpiLHRpbWVzdGFtcDpnaH0sYXhlPXsidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5IjpHYiwidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiOkRsLCJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIjpLYiwidGFnOnlhbWwub3JnLDIwMDI6cGFpcnMiOlliLCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiOlpiLCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiOmdofTtpKG5NLCJnZXRUYWdzIil9KTt2YXIgaXVhLHZ1LGl4ZT11KCgpPT57ZGEoKTtWYigpO2piKCk7WlMoKTtlRHQoKTtpdWE9aSgodCxlKT0+dC5rZXk8ZS5rZXk/LTE6dC5rZXk+ZS5rZXk/MTowLCJzb3J0TWFwRW50cmllc0J5S2V5IiksdnU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTY2hlbWEiKX1jb25zdHJ1Y3Rvcih7Y29tcGF0OmUsY3VzdG9tVGFnczpyLG1lcmdlOmEscmVzb2x2ZUtub3duVGFnczpzLHNjaGVtYTpuLHNvcnRNYXBFbnRyaWVzOm8sdG9TdHJpbmdEZWZhdWx0czpsfSl7dGhpcy5jb21wYXQ9QXJyYXkuaXNBcnJheShlKT9uTShlLCJjb21wYXQiKTplP25NKG51bGwsZSk6bnVsbCx0aGlzLm5hbWU9dHlwZW9mIG49PSJzdHJpbmciJiZufHwiY29yZSIsdGhpcy5rbm93blRhZ3M9cz9heGU6e30sdGhpcy50YWdzPW5NKHIsdGhpcy5uYW1lLGEpLHRoaXMudG9TdHJpbmdPcHRpb25zPWw/P251bGwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsVGwse3ZhbHVlOiRsfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZzEse3ZhbHVlOlFkfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZDAse3ZhbHVlOkFsfSksdGhpcy5zb3J0TWFwRW50cmllcz10eXBlb2Ygbz09ImZ1bmN0aW9uIj9vOm89PT0hMD9pdWE6bnVsbH1jbG9uZSgpe2xldCBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlLnRhZ3M9dGhpcy50YWdzLnNsaWNlKCksZX19fSk7ZnVuY3Rpb24gc3hlKHQsZSl7bGV0IHI9W10sYT1lLmRpcmVjdGl2ZXM9PT0hMDtpZihlLmRpcmVjdGl2ZXMhPT0hMSYmdC5kaXJlY3RpdmVzKXtsZXQgYz10LmRpcmVjdGl2ZXMudG9TdHJpbmcodCk7Yz8oci5wdXNoKGMpLGE9ITApOnQuZGlyZWN0aXZlcy5kb2NTdGFydCYmKGE9ITApfWEmJnIucHVzaCgiLS0tIik7bGV0IHM9VVModCxlKSx7Y29tbWVudFN0cmluZzpufT1zLm9wdGlvbnM7aWYodC5jb21tZW50QmVmb3JlKXtyLmxlbmd0aCE9PTEmJnIudW5zaGlmdCgiIik7bGV0IGM9bih0LmNvbW1lbnRCZWZvcmUpO3IudW5zaGlmdChVMShjLCIiKSl9bGV0IG89ITEsbD1udWxsO2lmKHQuY29udGVudHMpe2lmKFByKHQuY29udGVudHMpKXtpZih0LmNvbnRlbnRzLnNwYWNlQmVmb3JlJiZhJiZyLnB1c2goIiIpLHQuY29udGVudHMuY29tbWVudEJlZm9yZSl7bGV0IGY9bih0LmNvbnRlbnRzLmNvbW1lbnRCZWZvcmUpO3IucHVzaChVMShmLCIiKSl9cy5mb3JjZUJsb2NrSW5kZW50PSEhdC5jb21tZW50LGw9dC5jb250ZW50cy5jb21tZW50fWxldCBjPWw/dm9pZCAwOigpPT5vPSEwLGQ9aDAodC5jb250ZW50cyxzLCgpPT5sPW51bGwsYyk7bCYmKGQrPVAyKGQsIiIsbihsKSkpLChkWzBdPT09InwifHxkWzBdPT09Ij4iKSYmcltyLmxlbmd0aC0xXT09PSItLS0iP3Jbci5sZW5ndGgtMV09YC0tLSAke2R9YDpyLnB1c2goZCl9ZWxzZSByLnB1c2goaDAodC5jb250ZW50cyxzKSk7aWYodC5kaXJlY3RpdmVzPy5kb2NFbmQpaWYodC5jb21tZW50KXtsZXQgYz1uKHQuY29tbWVudCk7Yy5pbmNsdWRlcyhgCmApPyhyLnB1c2goIi4uLiIpLHIucHVzaChVMShjLCIiKSkpOnIucHVzaChgLi4uICR7Y31gKX1lbHNlIHIucHVzaCgiLi4uIik7ZWxzZXtsZXQgYz10LmNvbW1lbnQ7YyYmbyYmKGM9Yy5yZXBsYWNlKC9eXG4rLywiIikpLGMmJigoIW98fGwpJiZyW3IubGVuZ3RoLTFdIT09IiImJnIucHVzaCgiIiksci5wdXNoKFUxKG4oYyksIiIpKSl9cmV0dXJuIHIuam9pbihgCmApK2AKYH12YXIgdER0PXUoKCk9PntkYSgpO1dTKCk7SFMoKTtpKHN4ZSwic3RyaW5naWZ5RG9jdW1lbnQiKX0pO2Z1bmN0aW9uIFFiKHQpe2lmKGNhKHQpKXJldHVybiEwO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYSBZQU1MIGNvbGxlY3Rpb24gYXMgZG9jdW1lbnQgY29udGVudHMiKX12YXIgRWwsb009dSgoKT0+e1JTKCk7d29lKCk7ZGEoKTttdSgpO2h1KCk7aXhlKCk7dER0KCk7eG9lKCk7VGJlKCk7QlMoKTt6YmUoKTtFbD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkRvY3VtZW50Iil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuY29tbWVudEJlZm9yZT1udWxsLHRoaXMuY29tbWVudD1udWxsLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W10sT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsYW8se3ZhbHVlOklTfSk7bGV0IHM9bnVsbDt0eXBlb2Ygcj09ImZ1bmN0aW9uInx8QXJyYXkuaXNBcnJheShyKT9zPXI6YT09PXZvaWQgMCYmciYmKGE9cixyPXZvaWQgMCk7bGV0IG49T2JqZWN0LmFzc2lnbih7aW50QXNCaWdJbnQ6ITEsa2VlcFNvdXJjZVRva2VuczohMSxsb2dMZXZlbDoid2FybiIscHJldHR5RXJyb3JzOiEwLHN0cmljdDohMCxzdHJpbmdLZXlzOiExLHVuaXF1ZUtleXM6ITAsdmVyc2lvbjoiMS4yIn0sYSk7dGhpcy5vcHRpb25zPW47bGV0e3ZlcnNpb246b309bjthPy5fZGlyZWN0aXZlcz8odGhpcy5kaXJlY3RpdmVzPWEuX2RpcmVjdGl2ZXMuYXREb2N1bWVudCgpLHRoaXMuZGlyZWN0aXZlcy55YW1sLmV4cGxpY2l0JiYobz10aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uKSk6dGhpcy5kaXJlY3RpdmVzPW5ldyBJMih7dmVyc2lvbjpvfSksdGhpcy5zZXRTY2hlbWEobyxhKSx0aGlzLmNvbnRlbnRzPWU9PT12b2lkIDA/bnVsbDp0aGlzLmNyZWF0ZU5vZGUoZSxzLGEpfWNsb25lKCl7bGV0IGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSx7W2FvXTp7dmFsdWU6SVN9fSk7cmV0dXJuIGUuY29tbWVudEJlZm9yZT10aGlzLmNvbW1lbnRCZWZvcmUsZS5jb21tZW50PXRoaXMuY29tbWVudCxlLmVycm9ycz10aGlzLmVycm9ycy5zbGljZSgpLGUud2FybmluZ3M9dGhpcy53YXJuaW5ncy5zbGljZSgpLGUub3B0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucyksdGhpcy5kaXJlY3RpdmVzJiYoZS5kaXJlY3RpdmVzPXRoaXMuZGlyZWN0aXZlcy5jbG9uZSgpKSxlLnNjaGVtYT10aGlzLnNjaGVtYS5jbG9uZSgpLGUuY29udGVudHM9UHIodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5jbG9uZShlLnNjaGVtYSk6dGhpcy5jb250ZW50cyx0aGlzLnJhbmdlJiYoZS5yYW5nZT10aGlzLnJhbmdlLnNsaWNlKCkpLGV9YWRkKGUpe1FiKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLmFkZChlKX1hZGRJbihlLHIpe1FiKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLmFkZEluKGUscil9Y3JlYXRlQWxpYXMoZSxyKXtpZighZS5hbmNob3Ipe2xldCBhPWdvZSh0aGlzKTtlLmFuY2hvcj0hcnx8YS5oYXMocik/Ym9lKHJ8fCJhIixhKTpyfXJldHVybiBuZXcgTGwoZS5hbmNob3IpfWNyZWF0ZU5vZGUoZSxyLGEpe2xldCBzO2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKWU9ci5jYWxsKHsiIjplfSwiIixlKSxzPXI7ZWxzZSBpZihBcnJheS5pc0FycmF5KHIpKXtsZXQgZz1pKGs9PnR5cGVvZiBrPT0ibnVtYmVyInx8ayBpbnN0YW5jZW9mIFN0cmluZ3x8ayBpbnN0YW5jZW9mIE51bWJlciwia2V5VG9TdHIiKSx5PXIuZmlsdGVyKGcpLm1hcChTdHJpbmcpO3kubGVuZ3RoPjAmJihyPXIuY29uY2F0KHkpKSxzPXJ9ZWxzZSBhPT09dm9pZCAwJiZyJiYoYT1yLHI9dm9pZCAwKTtsZXR7YWxpYXNEdXBsaWNhdGVPYmplY3RzOm4sYW5jaG9yUHJlZml4Om8sZmxvdzpsLGtlZXBVbmRlZmluZWQ6YyxvblRhZ09iajpkLHRhZzpmfT1hPz97fSx7b25BbmNob3I6cCxzZXRBbmNob3JzOmgsc291cmNlT2JqZWN0czptfT1fYmUodGhpcyxvfHwiYSIpLHY9e2FsaWFzRHVwbGljYXRlT2JqZWN0czpuPz8hMCxrZWVwVW5kZWZpbmVkOmM/PyExLG9uQW5jaG9yOnAsb25UYWdPYmo6ZCxyZXBsYWNlcjpzLHNjaGVtYTp0aGlzLnNjaGVtYSxzb3VyY2VPYmplY3RzOm19LGI9cDAoZSxmLHYpO3JldHVybiBsJiZjYShiKSYmKGIuZmxvdz0hMCksaCgpLGJ9Y3JlYXRlUGFpcihlLHIsYT17fSl7bGV0IHM9dGhpcy5jcmVhdGVOb2RlKGUsbnVsbCxhKSxuPXRoaXMuY3JlYXRlTm9kZShyLG51bGwsYSk7cmV0dXJuIG5ldyBuaShzLG4pfWRlbGV0ZShlKXtyZXR1cm4gUWIodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5kZWxldGUoZSk6ITF9ZGVsZXRlSW4oZSl7cmV0dXJuIHBoKGUpP3RoaXMuY29udGVudHM9PW51bGw/ITE6KHRoaXMuY29udGVudHM9bnVsbCwhMCk6UWIodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5kZWxldGVJbihlKTohMX1nZXQoZSxyKXtyZXR1cm4gY2EodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5nZXQoZSxyKTp2b2lkIDB9Z2V0SW4oZSxyKXtyZXR1cm4gcGgoZSk/IXImJnVyKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMudmFsdWU6dGhpcy5jb250ZW50czpjYSh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmdldEluKGUscik6dm9pZCAwfWhhcyhlKXtyZXR1cm4gY2EodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5oYXMoZSk6ITF9aGFzSW4oZSl7cmV0dXJuIHBoKGUpP3RoaXMuY29udGVudHMhPT12b2lkIDA6Y2EodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5oYXNJbihlKTohMX1zZXQoZSxyKXt0aGlzLmNvbnRlbnRzPT1udWxsP3RoaXMuY29udGVudHM9RmIodGhpcy5zY2hlbWEsW2VdLHIpOlFiKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLnNldChlLHIpfXNldEluKGUscil7cGgoZSk/dGhpcy5jb250ZW50cz1yOnRoaXMuY29udGVudHM9PW51bGw/dGhpcy5jb250ZW50cz1GYih0aGlzLnNjaGVtYSxBcnJheS5mcm9tKGUpLHIpOlFiKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLnNldEluKGUscil9c2V0U2NoZW1hKGUscj17fSl7dHlwZW9mIGU9PSJudW1iZXIiJiYoZT1TdHJpbmcoZSkpO2xldCBhO3N3aXRjaChlKXtjYXNlIjEuMSI6dGhpcy5kaXJlY3RpdmVzP3RoaXMuZGlyZWN0aXZlcy55YW1sLnZlcnNpb249IjEuMSI6dGhpcy5kaXJlY3RpdmVzPW5ldyBJMih7dmVyc2lvbjoiMS4xIn0pLGE9e3Jlc29sdmVLbm93blRhZ3M6ITEsc2NoZW1hOiJ5YW1sLTEuMSJ9O2JyZWFrO2Nhc2UiMS4yIjpjYXNlIm5leHQiOnRoaXMuZGlyZWN0aXZlcz90aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uPWU6dGhpcy5kaXJlY3RpdmVzPW5ldyBJMih7dmVyc2lvbjplfSksYT17cmVzb2x2ZUtub3duVGFnczohMCxzY2hlbWE6ImNvcmUifTticmVhaztjYXNlIG51bGw6dGhpcy5kaXJlY3RpdmVzJiZkZWxldGUgdGhpcy5kaXJlY3RpdmVzLGE9bnVsbDticmVhaztkZWZhdWx0OntsZXQgcz1KU09OLnN0cmluZ2lmeShlKTt0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICcxLjEnLCAnMS4yJyBvciBudWxsIGFzIGZpcnN0IGFyZ3VtZW50LCBidXQgZm91bmQ6ICR7c31gKX19aWYoci5zY2hlbWEgaW5zdGFuY2VvZiBPYmplY3QpdGhpcy5zY2hlbWE9ci5zY2hlbWE7ZWxzZSBpZihhKXRoaXMuc2NoZW1hPW5ldyB2dShPYmplY3QuYXNzaWduKGEscikpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJXaXRoIGEgbnVsbCBZQU1MIHZlcnNpb24sIHRoZSB7IHNjaGVtYTogU2NoZW1hIH0gb3B0aW9uIGlzIHJlcXVpcmVkIil9dG9KUyh7anNvbjplLGpzb25Bcmc6cixtYXBBc01hcDphLG1heEFsaWFzQ291bnQ6cyxvbkFuY2hvcjpuLHJldml2ZXI6b309e30pe2xldCBsPXthbmNob3JzOm5ldyBNYXAsZG9jOnRoaXMsa2VlcDohZSxtYXBBc01hcDphPT09ITAsbWFwS2V5V2FybmVkOiExLG1heEFsaWFzQ291bnQ6dHlwZW9mIHM9PSJudW1iZXIiP3M6MTAwfSxjPXhzKHRoaXMuY29udGVudHMscj8/IiIsbCk7aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpZm9yKGxldHtjb3VudDpkLHJlczpmfW9mIGwuYW5jaG9ycy52YWx1ZXMoKSluKGYsZCk7cmV0dXJuIHR5cGVvZiBvPT0iZnVuY3Rpb24iP1lkKG8seyIiOmN9LCIiLGMpOmN9dG9KU09OKGUscil7cmV0dXJuIHRoaXMudG9KUyh7anNvbjohMCxqc29uQXJnOmUsbWFwQXNNYXA6ITEsb25BbmNob3I6cn0pfXRvU3RyaW5nKGU9e30pe2lmKHRoaXMuZXJyb3JzLmxlbmd0aD4wKXRocm93IG5ldyBFcnJvcigiRG9jdW1lbnQgd2l0aCBlcnJvcnMgY2Fubm90IGJlIHN0cmluZ2lmaWVkIik7aWYoImluZGVudCJpbiBlJiYoIU51bWJlci5pc0ludGVnZXIoZS5pbmRlbnQpfHxOdW1iZXIoZS5pbmRlbnQpPD0wKSl7bGV0IHI9SlNPTi5zdHJpbmdpZnkoZS5pbmRlbnQpO3Rocm93IG5ldyBFcnJvcihgImluZGVudCIgb3B0aW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBub3QgJHtyfWApfXJldHVybiBzeGUodGhpcyxlKX19O2koUWIsImFzc2VydENvbGxlY3Rpb24iKX0pO3ZhciB5dSxJbyx3dSxYYixsTT11KCgpPT57eXU9Y2xhc3MgZXh0ZW5kcyBFcnJvcntzdGF0aWN7aSh0aGlzLCJZQU1MRXJyb3IiKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXtzdXBlcigpLHRoaXMubmFtZT1lLHRoaXMuY29kZT1hLHRoaXMubWVzc2FnZT1zLHRoaXMucG9zPXJ9fSxJbz1jbGFzcyBleHRlbmRzIHl1e3N0YXRpY3tpKHRoaXMsIllBTUxQYXJzZUVycm9yIil9Y29uc3RydWN0b3IoZSxyLGEpe3N1cGVyKCJZQU1MUGFyc2VFcnJvciIsZSxyLGEpfX0sd3U9Y2xhc3MgZXh0ZW5kcyB5dXtzdGF0aWN7aSh0aGlzLCJZQU1MV2FybmluZyIpfWNvbnN0cnVjdG9yKGUscixhKXtzdXBlcigiWUFNTFdhcm5pbmciLGUscixhKX19LFhiPWkoKHQsZSk9PnI9PntpZihyLnBvc1swXT09PS0xKXJldHVybjtyLmxpbmVQb3M9ci5wb3MubWFwKGw9PmUubGluZVBvcyhsKSk7bGV0e2xpbmU6YSxjb2w6c309ci5saW5lUG9zWzBdO3IubWVzc2FnZSs9YCBhdCBsaW5lICR7YX0sIGNvbHVtbiAke3N9YDtsZXQgbj1zLTEsbz10LnN1YnN0cmluZyhlLmxpbmVTdGFydHNbYS0xXSxlLmxpbmVTdGFydHNbYV0pLnJlcGxhY2UoL1tcblxyXSskLywiIik7aWYobj49NjAmJm8ubGVuZ3RoPjgwKXtsZXQgbD1NYXRoLm1pbihuLTM5LG8ubGVuZ3RoLTc5KTtvPSJcdTIwMjYiK28uc3Vic3RyaW5nKGwpLG4tPWwtMX1pZihvLmxlbmd0aD44MCYmKG89by5zdWJzdHJpbmcoMCw3OSkrIlx1MjAyNiIpLGE+MSYmL14gKiQvLnRlc3Qoby5zdWJzdHJpbmcoMCxuKSkpe2xldCBsPXQuc3Vic3RyaW5nKGUubGluZVN0YXJ0c1thLTJdLGUubGluZVN0YXJ0c1thLTFdKTtsLmxlbmd0aD44MCYmKGw9bC5zdWJzdHJpbmcoMCw3OSkrYFx1MjAyNgpgKSxvPWwrb31pZigvW14gXS8udGVzdChvKSl7bGV0IGw9MSxjPXIubGluZVBvc1sxXTtjPy5saW5lPT09YSYmYy5jb2w+cyYmKGw9TWF0aC5tYXgoMSxNYXRoLm1pbihjLmNvbC1zLDgwLW4pKSk7bGV0IGQ9IiAiLnJlcGVhdChuKSsiXiIucmVwZWF0KGwpO3IubWVzc2FnZSs9YDoKCiR7b30KJHtkfQpgfX0sInByZXR0aWZ5RXJyb3IiKX0pO2Z1bmN0aW9uIE4yKHQse2Zsb3c6ZSxpbmRpY2F0b3I6cixuZXh0OmEsb2Zmc2V0OnMsb25FcnJvcjpuLHBhcmVudEluZGVudDpvLHN0YXJ0T25OZXdsaW5lOmx9KXtsZXQgYz0hMSxkPWwsZj1sLHA9IiIsaD0iIixtPSExLHY9ITEsYj1udWxsLGc9bnVsbCx5PW51bGwsaz1udWxsLE09bnVsbCxOPW51bGwsXz1udWxsO2ZvcihsZXQgTCBvZiB0KXN3aXRjaCh2JiYoTC50eXBlIT09InNwYWNlIiYmTC50eXBlIT09Im5ld2xpbmUiJiZMLnR5cGUhPT0iY29tbWEiJiZuKEwub2Zmc2V0LCJNSVNTSU5HX0NIQVIiLCJUYWdzIGFuZCBhbmNob3JzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgdG9rZW4gYnkgd2hpdGUgc3BhY2UiKSx2PSExKSxiJiYoZCYmTC50eXBlIT09ImNvbW1lbnQiJiZMLnR5cGUhPT0ibmV3bGluZSImJm4oYiwiVEFCX0FTX0lOREVOVCIsIlRhYnMgYXJlIG5vdCBhbGxvd2VkIGFzIGluZGVudGF0aW9uIiksYj1udWxsKSxMLnR5cGUpe2Nhc2Uic3BhY2UiOiFlJiYociE9PSJkb2Mtc3RhcnQifHxhPy50eXBlIT09ImZsb3ctY29sbGVjdGlvbiIpJiZMLnNvdXJjZS5pbmNsdWRlcygiCSIpJiYoYj1MKSxmPSEwO2JyZWFrO2Nhc2UiY29tbWVudCI6e2Z8fG4oTCwiTUlTU0lOR19DSEFSIiwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVycyIpO2xldCBFPUwuc291cmNlLnN1YnN0cmluZygxKXx8IiAiO3A/cCs9aCtFOnA9RSxoPSIiLGQ9ITE7YnJlYWt9Y2FzZSJuZXdsaW5lIjpkP3A/cCs9TC5zb3VyY2U6KCFOfHxyIT09InNlcS1pdGVtLWluZCIpJiYoYz0hMCk6aCs9TC5zb3VyY2UsZD0hMCxtPSEwLChnfHx5KSYmKGs9TCksZj0hMDticmVhaztjYXNlImFuY2hvciI6ZyYmbihMLCJNVUxUSVBMRV9BTkNIT1JTIiwiQSBub2RlIGNhbiBoYXZlIGF0IG1vc3Qgb25lIGFuY2hvciIpLEwuc291cmNlLmVuZHNXaXRoKCI6IikmJm4oTC5vZmZzZXQrTC5zb3VyY2UubGVuZ3RoLTEsIkJBRF9BTElBUyIsIkFuY2hvciBlbmRpbmcgaW4gOiBpcyBhbWJpZ3VvdXMiLCEwKSxnPUwsXz8/KF89TC5vZmZzZXQpLGQ9ITEsZj0hMSx2PSEwO2JyZWFrO2Nhc2UidGFnIjp7eSYmbihMLCJNVUxUSVBMRV9UQUdTIiwiQSBub2RlIGNhbiBoYXZlIGF0IG1vc3Qgb25lIHRhZyIpLHk9TCxfPz8oXz1MLm9mZnNldCksZD0hMSxmPSExLHY9ITA7YnJlYWt9Y2FzZSByOihnfHx5KSYmbihMLCJCQURfUFJPUF9PUkRFUiIsYEFuY2hvcnMgYW5kIHRhZ3MgbXVzdCBiZSBhZnRlciB0aGUgJHtMLnNvdXJjZX0gaW5kaWNhdG9yYCksTiYmbihMLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAke0wuc291cmNlfSBpbiAke2U/PyJjb2xsZWN0aW9uIn1gKSxOPUwsZD1yPT09InNlcS1pdGVtLWluZCJ8fHI9PT0iZXhwbGljaXQta2V5LWluZCIsZj0hMTticmVhaztjYXNlImNvbW1hIjppZihlKXtNJiZuKEwsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICwgaW4gJHtlfWApLE09TCxkPSExLGY9ITE7YnJlYWt9ZGVmYXVsdDpuKEwsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICR7TC50eXBlfSB0b2tlbmApLGQ9ITEsZj0hMX1sZXQgUz10W3QubGVuZ3RoLTFdLE89Uz9TLm9mZnNldCtTLnNvdXJjZS5sZW5ndGg6cztyZXR1cm4gdiYmYSYmYS50eXBlIT09InNwYWNlIiYmYS50eXBlIT09Im5ld2xpbmUiJiZhLnR5cGUhPT0iY29tbWEiJiYoYS50eXBlIT09InNjYWxhciJ8fGEuc291cmNlIT09IiIpJiZuKGEub2Zmc2V0LCJNSVNTSU5HX0NIQVIiLCJUYWdzIGFuZCBhbmNob3JzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgdG9rZW4gYnkgd2hpdGUgc3BhY2UiKSxiJiYoZCYmYi5pbmRlbnQ8PW98fGE/LnR5cGU9PT0iYmxvY2stbWFwInx8YT8udHlwZT09PSJibG9jay1zZXEiKSYmbihiLCJUQUJfQVNfSU5ERU5UIiwiVGFicyBhcmUgbm90IGFsbG93ZWQgYXMgaW5kZW50YXRpb24iKSx7Y29tbWE6TSxmb3VuZDpOLHNwYWNlQmVmb3JlOmMsY29tbWVudDpwLGhhc05ld2xpbmU6bSxhbmNob3I6Zyx0YWc6eSxuZXdsaW5lQWZ0ZXJQcm9wOmssZW5kOk8sc3RhcnQ6Xz8/T319dmFyIGNNPXUoKCk9PntpKE4yLCJyZXNvbHZlUHJvcHMiKX0pO2Z1bmN0aW9uIFhkKHQpe2lmKCF0KXJldHVybiBudWxsO3N3aXRjaCh0LnR5cGUpe2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjppZih0LnNvdXJjZS5pbmNsdWRlcyhgCmApKXJldHVybiEwO2lmKHQuZW5kKXtmb3IobGV0IGUgb2YgdC5lbmQpaWYoZS50eXBlPT09Im5ld2xpbmUiKXJldHVybiEwfXJldHVybiExO2Nhc2UiZmxvdy1jb2xsZWN0aW9uIjpmb3IobGV0IGUgb2YgdC5pdGVtcyl7Zm9yKGxldCByIG9mIGUuc3RhcnQpaWYoci50eXBlPT09Im5ld2xpbmUiKXJldHVybiEwO2lmKGUuc2VwKXtmb3IobGV0IHIgb2YgZS5zZXApaWYoci50eXBlPT09Im5ld2xpbmUiKXJldHVybiEwfWlmKFhkKGUua2V5KXx8WGQoZS52YWx1ZSkpcmV0dXJuITB9cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19dmFyIEhvZT11KCgpPT57aShYZCwiY29udGFpbnNOZXdsaW5lIil9KTtmdW5jdGlvbiBKYih0LGUscil7aWYoZT8udHlwZT09PSJmbG93LWNvbGxlY3Rpb24iKXtsZXQgYT1lLmVuZFswXTthLmluZGVudD09PXQmJihhLnNvdXJjZT09PSJdInx8YS5zb3VyY2U9PT0ifSIpJiZYZChlKSYmcihhLCJCQURfSU5ERU5UIiwiRmxvdyBlbmQgaW5kaWNhdG9yIHNob3VsZCBiZSBtb3JlIGluZGVudGVkIHRoYW4gcGFyZW50IiwhMCl9fXZhciBueGU9dSgoKT0+e0hvZSgpO2koSmIsImZsb3dJbmRlbnRDaGVjayIpfSk7ZnVuY3Rpb24gZE0odCxlLHIpe2xldHt1bmlxdWVLZXlzOmF9PXQub3B0aW9ucztpZihhPT09ITEpcmV0dXJuITE7bGV0IHM9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YToobixvKT0+bj09PW98fHVyKG4pJiZ1cihvKSYmbi52YWx1ZT09PW8udmFsdWU7cmV0dXJuIGUuc29tZShuPT5zKG4ua2V5LHIpKX12YXIgb3hlPXUoKCk9PntkYSgpO2koZE0sIm1hcEluY2x1ZGVzIil9KTtmdW5jdGlvbiBseGUoe2NvbXBvc2VOb2RlOnQsY29tcG9zZUVtcHR5Tm9kZTplfSxyLGEscyxuKXtsZXQgbz1uPy5ub2RlQ2xhc3M/P3hpLGw9bmV3IG8oci5zY2hlbWEpO3IuYXRSb290JiYoci5hdFJvb3Q9ITEpO2xldCBjPWEub2Zmc2V0LGQ9bnVsbDtmb3IobGV0IGYgb2YgYS5pdGVtcyl7bGV0e3N0YXJ0OnAsa2V5Omgsc2VwOm0sdmFsdWU6dn09ZixiPU4yKHAse2luZGljYXRvcjoiZXhwbGljaXQta2V5LWluZCIsbmV4dDpoPz9tPy5bMF0sb2Zmc2V0OmMsb25FcnJvcjpzLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohMH0pLGc9IWIuZm91bmQ7aWYoZyl7aWYoaCYmKGgudHlwZT09PSJibG9jay1zZXEiP3MoYywiQkxPQ0tfQVNfSU1QTElDSVRfS0VZIiwiQSBibG9jayBzZXF1ZW5jZSBtYXkgbm90IGJlIHVzZWQgYXMgYW4gaW1wbGljaXQgbWFwIGtleSIpOiJpbmRlbnQiaW4gaCYmaC5pbmRlbnQhPT1hLmluZGVudCYmcyhjLCJCQURfSU5ERU5UIixyRHQpKSwhYi5hbmNob3ImJiFiLnRhZyYmIW0pe2Q9Yi5lbmQsYi5jb21tZW50JiYobC5jb21tZW50P2wuY29tbWVudCs9YApgK2IuY29tbWVudDpsLmNvbW1lbnQ9Yi5jb21tZW50KTtjb250aW51ZX0oYi5uZXdsaW5lQWZ0ZXJQcm9wfHxYZChoKSkmJnMoaD8/cFtwLmxlbmd0aC0xXSwiTVVMVElMSU5FX0lNUExJQ0lUX0tFWSIsIkltcGxpY2l0IGtleXMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lIil9ZWxzZSBiLmZvdW5kPy5pbmRlbnQhPT1hLmluZGVudCYmcyhjLCJCQURfSU5ERU5UIixyRHQpO3IuYXRLZXk9ITA7bGV0IHk9Yi5lbmQsaz1oP3QocixoLGIscyk6ZShyLHkscCxudWxsLGIscyk7ci5zY2hlbWEuY29tcGF0JiZKYihhLmluZGVudCxoLHMpLHIuYXRLZXk9ITEsZE0ocixsLml0ZW1zLGspJiZzKHksIkRVUExJQ0FURV9LRVkiLCJNYXAga2V5cyBtdXN0IGJlIHVuaXF1ZSIpO2xldCBNPU4yKG0/P1tdLHtpbmRpY2F0b3I6Im1hcC12YWx1ZS1pbmQiLG5leHQ6dixvZmZzZXQ6ay5yYW5nZVsyXSxvbkVycm9yOnMscGFyZW50SW5kZW50OmEuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiFofHxoLnR5cGU9PT0iYmxvY2stc2NhbGFyIn0pO2lmKGM9TS5lbmQsTS5mb3VuZCl7ZyYmKHY/LnR5cGU9PT0iYmxvY2stbWFwIiYmIU0uaGFzTmV3bGluZSYmcyhjLCJCTE9DS19BU19JTVBMSUNJVF9LRVkiLCJOZXN0ZWQgbWFwcGluZ3MgYXJlIG5vdCBhbGxvd2VkIGluIGNvbXBhY3QgbWFwcGluZ3MiKSxyLm9wdGlvbnMuc3RyaWN0JiZiLnN0YXJ0PE0uZm91bmQub2Zmc2V0LTEwMjQmJnMoay5yYW5nZSwiS0VZX09WRVJfMTAyNF9DSEFSUyIsIlRoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgYmxvY2sgbWFwcGluZyBrZXkiKSk7bGV0IE49dj90KHIsdixNLHMpOmUocixjLG0sbnVsbCxNLHMpO3Iuc2NoZW1hLmNvbXBhdCYmSmIoYS5pbmRlbnQsdixzKSxjPU4ucmFuZ2VbMl07bGV0IF89bmV3IG5pKGssTik7ci5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJihfLnNyY1Rva2VuPWYpLGwuaXRlbXMucHVzaChfKX1lbHNle2cmJnMoay5yYW5nZSwiTUlTU0lOR19DSEFSIiwiSW1wbGljaXQgbWFwIGtleXMgbmVlZCB0byBiZSBmb2xsb3dlZCBieSBtYXAgdmFsdWVzIiksTS5jb21tZW50JiYoay5jb21tZW50P2suY29tbWVudCs9YApgK00uY29tbWVudDprLmNvbW1lbnQ9TS5jb21tZW50KTtsZXQgTj1uZXcgbmkoayk7ci5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJihOLnNyY1Rva2VuPWYpLGwuaXRlbXMucHVzaChOKX19cmV0dXJuIGQmJmQ8YyYmcyhkLCJJTVBPU1NJQkxFIiwiTWFwIGNvbW1lbnQgd2l0aCB0cmFpbGluZyBjb250ZW50IiksbC5yYW5nZT1bYS5vZmZzZXQsYyxkPz9jXSxsfXZhciByRHQsYUR0PXUoKCk9PnttdSgpO2d1KCk7Y00oKTtIb2UoKTtueGUoKTtveGUoKTtyRHQ9IkFsbCBtYXBwaW5nIGl0ZW1zIG11c3Qgc3RhcnQgYXQgdGhlIHNhbWUgY29sdW1uIjtpKGx4ZSwicmVzb2x2ZUJsb2NrTWFwIil9KTtmdW5jdGlvbiBjeGUoe2NvbXBvc2VOb2RlOnQsY29tcG9zZUVtcHR5Tm9kZTplfSxyLGEscyxuKXtsZXQgbz1uPy5ub2RlQ2xhc3M/P3FzLGw9bmV3IG8oci5zY2hlbWEpO3IuYXRSb290JiYoci5hdFJvb3Q9ITEpLHIuYXRLZXkmJihyLmF0S2V5PSExKTtsZXQgYz1hLm9mZnNldCxkPW51bGw7Zm9yKGxldHtzdGFydDpmLHZhbHVlOnB9b2YgYS5pdGVtcyl7bGV0IGg9TjIoZix7aW5kaWNhdG9yOiJzZXEtaXRlbS1pbmQiLG5leHQ6cCxvZmZzZXQ6YyxvbkVycm9yOnMscGFyZW50SW5kZW50OmEuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiEwfSk7aWYoIWguZm91bmQpaWYoaC5hbmNob3J8fGgudGFnfHxwKXA/LnR5cGU9PT0iYmxvY2stc2VxIj9zKGguZW5kLCJCQURfSU5ERU5UIiwiQWxsIHNlcXVlbmNlIGl0ZW1zIG11c3Qgc3RhcnQgYXQgdGhlIHNhbWUgY29sdW1uIik6cyhjLCJNSVNTSU5HX0NIQVIiLCJTZXF1ZW5jZSBpdGVtIHdpdGhvdXQgLSBpbmRpY2F0b3IiKTtlbHNle2Q9aC5lbmQsaC5jb21tZW50JiYobC5jb21tZW50PWguY29tbWVudCk7Y29udGludWV9bGV0IG09cD90KHIscCxoLHMpOmUocixoLmVuZCxmLG51bGwsaCxzKTtyLnNjaGVtYS5jb21wYXQmJkpiKGEuaW5kZW50LHAscyksYz1tLnJhbmdlWzJdLGwuaXRlbXMucHVzaChtKX1yZXR1cm4gbC5yYW5nZT1bYS5vZmZzZXQsYyxkPz9jXSxsfXZhciBpRHQ9dSgoKT0+e2J1KCk7Y00oKTtueGUoKTtpKGN4ZSwicmVzb2x2ZUJsb2NrU2VxIil9KTtmdW5jdGlvbiBPMih0LGUscixhKXtsZXQgcz0iIjtpZih0KXtsZXQgbj0hMSxvPSIiO2ZvcihsZXQgbCBvZiB0KXtsZXR7c291cmNlOmMsdHlwZTpkfT1sO3N3aXRjaChkKXtjYXNlInNwYWNlIjpuPSEwO2JyZWFrO2Nhc2UiY29tbWVudCI6e3ImJiFuJiZhKGwsIk1JU1NJTkdfQ0hBUiIsIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMiKTtsZXQgZj1jLnN1YnN0cmluZygxKXx8IiAiO3M/cys9bytmOnM9ZixvPSIiO2JyZWFrfWNhc2UibmV3bGluZSI6cyYmKG8rPWMpLG49ITA7YnJlYWs7ZGVmYXVsdDphKGwsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICR7ZH0gYXQgbm9kZSBlbmRgKX1lKz1jLmxlbmd0aH19cmV0dXJue2NvbW1lbnQ6cyxvZmZzZXQ6ZX19dmFyIGV4PXUoKCk9PntpKE8yLCJyZXNvbHZlRW5kIil9KTtmdW5jdGlvbiBweGUoe2NvbXBvc2VOb2RlOnQsY29tcG9zZUVtcHR5Tm9kZTplfSxyLGEscyxuKXtsZXQgbz1hLnN0YXJ0LnNvdXJjZT09PSJ7IixsPW8/ImZsb3cgbWFwIjoiZmxvdyBzZXF1ZW5jZSIsYz1uPy5ub2RlQ2xhc3M/PyhvP3hpOnFzKSxkPW5ldyBjKHIuc2NoZW1hKTtkLmZsb3c9ITA7bGV0IGY9ci5hdFJvb3Q7ZiYmKHIuYXRSb290PSExKSxyLmF0S2V5JiYoci5hdEtleT0hMSk7bGV0IHA9YS5vZmZzZXQrYS5zdGFydC5zb3VyY2UubGVuZ3RoO2ZvcihsZXQgZz0wO2c8YS5pdGVtcy5sZW5ndGg7KytnKXtsZXQgeT1hLml0ZW1zW2ddLHtzdGFydDprLGtleTpNLHNlcDpOLHZhbHVlOl99PXksUz1OMihrLHtmbG93OmwsaW5kaWNhdG9yOiJleHBsaWNpdC1rZXktaW5kIixuZXh0Ok0/P04/LlswXSxvZmZzZXQ6cCxvbkVycm9yOnMscGFyZW50SW5kZW50OmEuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiExfSk7aWYoIVMuZm91bmQpe2lmKCFTLmFuY2hvciYmIVMudGFnJiYhTiYmIV8pe2c9PT0wJiZTLmNvbW1hP3MoUy5jb21tYSwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgLCBpbiAke2x9YCk6ZzxhLml0ZW1zLmxlbmd0aC0xJiZzKFMuc3RhcnQsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkIGVtcHR5IGl0ZW0gaW4gJHtsfWApLFMuY29tbWVudCYmKGQuY29tbWVudD9kLmNvbW1lbnQrPWAKYCtTLmNvbW1lbnQ6ZC5jb21tZW50PVMuY29tbWVudCkscD1TLmVuZDtjb250aW51ZX0hbyYmci5vcHRpb25zLnN0cmljdCYmWGQoTSkmJnMoTSwiTVVMVElMSU5FX0lNUExJQ0lUX0tFWSIsIkltcGxpY2l0IGtleXMgb2YgZmxvdyBzZXF1ZW5jZSBwYWlycyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmUiKX1pZihnPT09MClTLmNvbW1hJiZzKFMuY29tbWEsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICwgaW4gJHtsfWApO2Vsc2UgaWYoUy5jb21tYXx8cyhTLnN0YXJ0LCJNSVNTSU5HX0NIQVIiLGBNaXNzaW5nICwgYmV0d2VlbiAke2x9IGl0ZW1zYCksUy5jb21tZW50KXtsZXQgTz0iIjtlOmZvcihsZXQgTCBvZiBrKXN3aXRjaChMLnR5cGUpe2Nhc2UiY29tbWEiOmNhc2Uic3BhY2UiOmJyZWFrO2Nhc2UiY29tbWVudCI6Tz1MLnNvdXJjZS5zdWJzdHJpbmcoMSk7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9aWYoTyl7bGV0IEw9ZC5pdGVtc1tkLml0ZW1zLmxlbmd0aC0xXTtfcihMKSYmKEw9TC52YWx1ZT8/TC5rZXkpLEwuY29tbWVudD9MLmNvbW1lbnQrPWAKYCtPOkwuY29tbWVudD1PLFMuY29tbWVudD1TLmNvbW1lbnQuc3Vic3RyaW5nKE8ubGVuZ3RoKzEpfX1pZighbyYmIU4mJiFTLmZvdW5kKXtsZXQgTz1fP3QocixfLFMscyk6ZShyLFMuZW5kLE4sbnVsbCxTLHMpO2QuaXRlbXMucHVzaChPKSxwPU8ucmFuZ2VbMl0sdXhlKF8pJiZzKE8ucmFuZ2UsIkJMT0NLX0lOX0ZMT1ciLGR4ZSl9ZWxzZXtyLmF0S2V5PSEwO2xldCBPPVMuZW5kLEw9TT90KHIsTSxTLHMpOmUocixPLGssbnVsbCxTLHMpO3V4ZShNKSYmcyhMLnJhbmdlLCJCTE9DS19JTl9GTE9XIixkeGUpLHIuYXRLZXk9ITE7bGV0IEU9TjIoTj8/W10se2Zsb3c6bCxpbmRpY2F0b3I6Im1hcC12YWx1ZS1pbmQiLG5leHQ6XyxvZmZzZXQ6TC5yYW5nZVsyXSxvbkVycm9yOnMscGFyZW50SW5kZW50OmEuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiExfSk7aWYoRS5mb3VuZCl7aWYoIW8mJiFTLmZvdW5kJiZyLm9wdGlvbnMuc3RyaWN0KXtpZihOKWZvcihsZXQgeiBvZiBOKXtpZih6PT09RS5mb3VuZClicmVhaztpZih6LnR5cGU9PT0ibmV3bGluZSIpe3MoeiwiTVVMVElMSU5FX0lNUExJQ0lUX0tFWSIsIkltcGxpY2l0IGtleXMgb2YgZmxvdyBzZXF1ZW5jZSBwYWlycyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmUiKTticmVha319Uy5zdGFydDxFLmZvdW5kLm9mZnNldC0xMDI0JiZzKEUuZm91bmQsIktFWV9PVkVSXzEwMjRfQ0hBUlMiLCJUaGUgOiBpbmRpY2F0b3IgbXVzdCBiZSBhdCBtb3N0IDEwMjQgY2hhcnMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIGFuIGltcGxpY2l0IGZsb3cgc2VxdWVuY2Uga2V5Iil9fWVsc2UgXyYmKCJzb3VyY2UiaW4gXyYmXy5zb3VyY2U/LlswXT09PSI6Ij9zKF8sIk1JU1NJTkdfQ0hBUiIsYE1pc3Npbmcgc3BhY2UgYWZ0ZXIgOiBpbiAke2x9YCk6cyhFLnN0YXJ0LCJNSVNTSU5HX0NIQVIiLGBNaXNzaW5nICwgb3IgOiBiZXR3ZWVuICR7bH0gaXRlbXNgKSk7bGV0IEI9Xz90KHIsXyxFLHMpOkUuZm91bmQ/ZShyLEUuZW5kLE4sbnVsbCxFLHMpOm51bGw7Qj91eGUoXykmJnMoQi5yYW5nZSwiQkxPQ0tfSU5fRkxPVyIsZHhlKTpFLmNvbW1lbnQmJihMLmNvbW1lbnQ/TC5jb21tZW50Kz1gCmArRS5jb21tZW50OkwuY29tbWVudD1FLmNvbW1lbnQpO2xldCBDPW5ldyBuaShMLEIpO2lmKHIub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoQy5zcmNUb2tlbj15KSxvKXtsZXQgej1kO2RNKHIsei5pdGVtcyxMKSYmcyhPLCJEVVBMSUNBVEVfS0VZIiwiTWFwIGtleXMgbXVzdCBiZSB1bmlxdWUiKSx6Lml0ZW1zLnB1c2goQyl9ZWxzZXtsZXQgej1uZXcgeGkoci5zY2hlbWEpO3ouZmxvdz0hMCx6Lml0ZW1zLnB1c2goQyk7bGV0IEE9KEI/P0wpLnJhbmdlO3oucmFuZ2U9W0wucmFuZ2VbMF0sQVsxXSxBWzJdXSxkLml0ZW1zLnB1c2goeil9cD1CP0IucmFuZ2VbMl06RS5lbmR9fWxldCBoPW8/In0iOiJdIixbbSwuLi52XT1hLmVuZCxiPXA7aWYobT8uc291cmNlPT09aCliPW0ub2Zmc2V0K20uc291cmNlLmxlbmd0aDtlbHNle2xldCBnPWxbMF0udG9VcHBlckNhc2UoKStsLnN1YnN0cmluZygxKSx5PWY/YCR7Z30gbXVzdCBlbmQgd2l0aCBhICR7aH1gOmAke2d9IGluIGJsb2NrIGNvbGxlY3Rpb24gbXVzdCBiZSBzdWZmaWNpZW50bHkgaW5kZW50ZWQgYW5kIGVuZCB3aXRoIGEgJHtofWA7cyhwLGY/Ik1JU1NJTkdfQ0hBUiI6IkJBRF9JTkRFTlQiLHkpLG0mJm0uc291cmNlLmxlbmd0aCE9PTEmJnYudW5zaGlmdChtKX1pZih2Lmxlbmd0aD4wKXtsZXQgZz1PMih2LGIsci5vcHRpb25zLnN0cmljdCxzKTtnLmNvbW1lbnQmJihkLmNvbW1lbnQ/ZC5jb21tZW50Kz1gCmArZy5jb21tZW50OmQuY29tbWVudD1nLmNvbW1lbnQpLGQucmFuZ2U9W2Eub2Zmc2V0LGIsZy5vZmZzZXRdfWVsc2UgZC5yYW5nZT1bYS5vZmZzZXQsYixiXTtyZXR1cm4gZH12YXIgZHhlLHV4ZSxzRHQ9dSgoKT0+e2RhKCk7bXUoKTtndSgpO2J1KCk7ZXgoKTtjTSgpO0hvZSgpO294ZSgpO2R4ZT0iQmxvY2sgY29sbGVjdGlvbnMgYXJlIG5vdCBhbGxvd2VkIHdpdGhpbiBmbG93IGNvbGxlY3Rpb25zIix1eGU9aSh0PT50JiYodC50eXBlPT09ImJsb2NrLW1hcCJ8fHQudHlwZT09PSJibG9jay1zZXEiKSwiaXNCbG9jayIpO2kocHhlLCJyZXNvbHZlRmxvd0NvbGxlY3Rpb24iKX0pO2Z1bmN0aW9uIGZ4ZSh0LGUscixhLHMsbil7bGV0IG89ci50eXBlPT09ImJsb2NrLW1hcCI/bHhlKHQsZSxyLGEsbik6ci50eXBlPT09ImJsb2NrLXNlcSI/Y3hlKHQsZSxyLGEsbik6cHhlKHQsZSxyLGEsbiksbD1vLmNvbnN0cnVjdG9yO3JldHVybiBzPT09IiEifHxzPT09bC50YWdOYW1lPyhvLnRhZz1sLnRhZ05hbWUsbyk6KHMmJihvLnRhZz1zKSxvKX1mdW5jdGlvbiBoeGUodCxlLHIsYSxzKXtsZXQgbj1hLnRhZyxvPW4/ZS5kaXJlY3RpdmVzLnRhZ05hbWUobi5zb3VyY2UsaD0+cyhuLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGgpKTpudWxsO2lmKHIudHlwZT09PSJibG9jay1zZXEiKXtsZXR7YW5jaG9yOmgsbmV3bGluZUFmdGVyUHJvcDptfT1hLHY9aCYmbj9oLm9mZnNldD5uLm9mZnNldD9oOm46aD8/bjt2JiYoIW18fG0ub2Zmc2V0PHYub2Zmc2V0KSYmcyh2LCJNSVNTSU5HX0NIQVIiLCJNaXNzaW5nIG5ld2xpbmUgYWZ0ZXIgYmxvY2sgc2VxdWVuY2UgcHJvcHMiKX1sZXQgbD1yLnR5cGU9PT0iYmxvY2stbWFwIj8ibWFwIjpyLnR5cGU9PT0iYmxvY2stc2VxIj8ic2VxIjpyLnN0YXJ0LnNvdXJjZT09PSJ7Ij8ibWFwIjoic2VxIjtpZighbnx8IW98fG89PT0iISJ8fG89PT14aS50YWdOYW1lJiZsPT09Im1hcCJ8fG89PT1xcy50YWdOYW1lJiZsPT09InNlcSIpcmV0dXJuIGZ4ZSh0LGUscixzLG8pO2xldCBjPWUuc2NoZW1hLnRhZ3MuZmluZChoPT5oLnRhZz09PW8mJmguY29sbGVjdGlvbj09PWwpO2lmKCFjKXtsZXQgaD1lLnNjaGVtYS5rbm93blRhZ3Nbb107aWYoaD8uY29sbGVjdGlvbj09PWwpZS5zY2hlbWEudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30saCx7ZGVmYXVsdDohMX0pKSxjPWg7ZWxzZSByZXR1cm4gaD9zKG4sIkJBRF9DT0xMRUNUSU9OX1RZUEUiLGAke2gudGFnfSB1c2VkIGZvciAke2x9IGNvbGxlY3Rpb24sIGJ1dCBleHBlY3RzICR7aC5jb2xsZWN0aW9uPz8ic2NhbGFyIn1gLCEwKTpzKG4sIlRBR19SRVNPTFZFX0ZBSUxFRCIsYFVucmVzb2x2ZWQgdGFnOiAke299YCwhMCksZnhlKHQsZSxyLHMsbyl9bGV0IGQ9ZnhlKHQsZSxyLHMsbyxjKSxmPWMucmVzb2x2ZT8uKGQsaD0+cyhuLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGgpLGUub3B0aW9ucyk/P2QscD1QcihmKT9mOm5ldyBTdChmKTtyZXR1cm4gcC5yYW5nZT1kLnJhbmdlLHAudGFnPW8sYz8uZm9ybWF0JiYocC5mb3JtYXQ9Yy5mb3JtYXQpLHB9dmFyIG5EdD11KCgpPT57ZGEoKTt2cygpO2d1KCk7YnUoKTthRHQoKTtpRHQoKTtzRHQoKTtpKGZ4ZSwicmVzb2x2ZUNvbGxlY3Rpb24iKTtpKGh4ZSwiY29tcG9zZUNvbGxlY3Rpb24iKX0pO2Z1bmN0aW9uIHVNKHQsZSxyKXtsZXQgYT1lLm9mZnNldCxzPXN1YShlLHQub3B0aW9ucy5zdHJpY3Qscik7aWYoIXMpcmV0dXJue3ZhbHVlOiIiLHR5cGU6bnVsbCxjb21tZW50OiIiLHJhbmdlOlthLGEsYV19O2xldCBuPXMubW9kZT09PSI+Ij9TdC5CTE9DS19GT0xERUQ6U3QuQkxPQ0tfTElURVJBTCxvPWUuc291cmNlP251YShlLnNvdXJjZSk6W10sbD1vLmxlbmd0aDtmb3IobGV0IGI9by5sZW5ndGgtMTtiPj0wOy0tYil7bGV0IGc9b1tiXVsxXTtpZihnPT09IiJ8fGc9PT0iXHIiKWw9YjtlbHNlIGJyZWFrfWlmKGw9PT0wKXtsZXQgYj1zLmNob21wPT09IisiJiZvLmxlbmd0aD4wP2AKYC5yZXBlYXQoTWF0aC5tYXgoMSxvLmxlbmd0aC0xKSk6IiIsZz1hK3MubGVuZ3RoO3JldHVybiBlLnNvdXJjZSYmKGcrPWUuc291cmNlLmxlbmd0aCkse3ZhbHVlOmIsdHlwZTpuLGNvbW1lbnQ6cy5jb21tZW50LHJhbmdlOlthLGcsZ119fWxldCBjPWUuaW5kZW50K3MuaW5kZW50LGQ9ZS5vZmZzZXQrcy5sZW5ndGgsZj0wO2ZvcihsZXQgYj0wO2I8bDsrK2Ipe2xldFtnLHldPW9bYl07aWYoeT09PSIifHx5PT09IlxyIilzLmluZGVudD09PTAmJmcubGVuZ3RoPmMmJihjPWcubGVuZ3RoKTtlbHNle2cubGVuZ3RoPGMmJnIoZCtnLmxlbmd0aCwiTUlTU0lOR19DSEFSIiwiQmxvY2sgc2NhbGFycyB3aXRoIG1vcmUtaW5kZW50ZWQgbGVhZGluZyBlbXB0eSBsaW5lcyBtdXN0IHVzZSBhbiBleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3IiKSxzLmluZGVudD09PTAmJihjPWcubGVuZ3RoKSxmPWIsYz09PTAmJiF0LmF0Um9vdCYmcihkLCJCQURfSU5ERU5UIiwiQmxvY2sgc2NhbGFyIHZhbHVlcyBpbiBjb2xsZWN0aW9ucyBtdXN0IGJlIGluZGVudGVkIik7YnJlYWt9ZCs9Zy5sZW5ndGgreS5sZW5ndGgrMX1mb3IobGV0IGI9by5sZW5ndGgtMTtiPj1sOy0tYilvW2JdWzBdLmxlbmd0aD5jJiYobD1iKzEpO2xldCBwPSIiLGg9IiIsbT0hMTtmb3IobGV0IGI9MDtiPGY7KytiKXArPW9bYl1bMF0uc2xpY2UoYykrYApgO2ZvcihsZXQgYj1mO2I8bDsrK2Ipe2xldFtnLHldPW9bYl07ZCs9Zy5sZW5ndGgreS5sZW5ndGgrMTtsZXQgaz15W3kubGVuZ3RoLTFdPT09IlxyIjtpZihrJiYoeT15LnNsaWNlKDAsLTEpKSx5JiZnLmxlbmd0aDxjKXtsZXQgTj1gQmxvY2sgc2NhbGFyIGxpbmVzIG11c3Qgbm90IGJlIGxlc3MgaW5kZW50ZWQgdGhhbiB0aGVpciAke3MuaW5kZW50PyJleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3IiOiJmaXJzdCBsaW5lIn1gO3IoZC15Lmxlbmd0aC0oaz8yOjEpLCJCQURfSU5ERU5UIixOKSxnPSIifW49PT1TdC5CTE9DS19MSVRFUkFMPyhwKz1oK2cuc2xpY2UoYykreSxoPWAKYCk6Zy5sZW5ndGg+Y3x8eVswXT09PSIJIj8oaD09PSIgIj9oPWAKYDohbSYmaD09PWAKYCYmKGg9YAoKYCkscCs9aCtnLnNsaWNlKGMpK3ksaD1gCmAsbT0hMCk6eT09PSIiP2g9PT1gCmA/cCs9YApgOmg9YApgOihwKz1oK3ksaD0iICIsbT0hMSl9c3dpdGNoKHMuY2hvbXApe2Nhc2UiLSI6YnJlYWs7Y2FzZSIrIjpmb3IobGV0IGI9bDtiPG8ubGVuZ3RoOysrYilwKz1gCmArb1tiXVswXS5zbGljZShjKTtwW3AubGVuZ3RoLTFdIT09YApgJiYocCs9YApgKTticmVhaztkZWZhdWx0OnArPWAKYH1sZXQgdj1hK3MubGVuZ3RoK2Uuc291cmNlLmxlbmd0aDtyZXR1cm57dmFsdWU6cCx0eXBlOm4sY29tbWVudDpzLmNvbW1lbnQscmFuZ2U6W2Esdix2XX19ZnVuY3Rpb24gc3VhKHtvZmZzZXQ6dCxwcm9wczplfSxyLGEpe2lmKGVbMF0udHlwZSE9PSJibG9jay1zY2FsYXItaGVhZGVyIilyZXR1cm4gYShlWzBdLCJJTVBPU1NJQkxFIiwiQmxvY2sgc2NhbGFyIGhlYWRlciBub3QgZm91bmQiKSxudWxsO2xldHtzb3VyY2U6c309ZVswXSxuPXNbMF0sbz0wLGw9IiIsYz0tMTtmb3IobGV0IGg9MTtoPHMubGVuZ3RoOysraCl7bGV0IG09c1toXTtpZighbCYmKG09PT0iLSJ8fG09PT0iKyIpKWw9bTtlbHNle2xldCB2PU51bWJlcihtKTshbyYmdj9vPXY6Yz09PS0xJiYoYz10K2gpfX1jIT09LTEmJmEoYywiVU5FWFBFQ1RFRF9UT0tFTiIsYEJsb2NrIHNjYWxhciBoZWFkZXIgaW5jbHVkZXMgZXh0cmEgY2hhcmFjdGVyczogJHtzfWApO2xldCBkPSExLGY9IiIscD1zLmxlbmd0aDtmb3IobGV0IGg9MTtoPGUubGVuZ3RoOysraCl7bGV0IG09ZVtoXTtzd2l0Y2gobS50eXBlKXtjYXNlInNwYWNlIjpkPSEwO2Nhc2UibmV3bGluZSI6cCs9bS5zb3VyY2UubGVuZ3RoO2JyZWFrO2Nhc2UiY29tbWVudCI6ciYmIWQmJmEobSwiTUlTU0lOR19DSEFSIiwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVycyIpLHArPW0uc291cmNlLmxlbmd0aCxmPW0uc291cmNlLnN1YnN0cmluZygxKTticmVhaztjYXNlImVycm9yIjphKG0sIlVORVhQRUNURURfVE9LRU4iLG0ubWVzc2FnZSkscCs9bS5zb3VyY2UubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6e2xldCB2PWBVbmV4cGVjdGVkIHRva2VuIGluIGJsb2NrIHNjYWxhciBoZWFkZXI6ICR7bS50eXBlfWA7YShtLCJVTkVYUEVDVEVEX1RPS0VOIix2KTtsZXQgYj1tLnNvdXJjZTtiJiZ0eXBlb2YgYj09InN0cmluZyImJihwKz1iLmxlbmd0aCl9fX1yZXR1cm57bW9kZTpuLGluZGVudDpvLGNob21wOmwsY29tbWVudDpmLGxlbmd0aDpwfX1mdW5jdGlvbiBudWEodCl7bGV0IGU9dC5zcGxpdCgvXG4oICopLykscj1lWzBdLGE9ci5tYXRjaCgvXiggKikvKSxuPVthPy5bMV0/W2FbMV0sci5zbGljZShhWzFdLmxlbmd0aCldOlsiIixyXV07Zm9yKGxldCBvPTE7bzxlLmxlbmd0aDtvKz0yKW4ucHVzaChbZVtvXSxlW28rMV1dKTtyZXR1cm4gbn12YXIgbXhlPXUoKCk9Pnt2cygpO2kodU0sInJlc29sdmVCbG9ja1NjYWxhciIpO2koc3VhLCJwYXJzZUJsb2NrU2NhbGFySGVhZGVyIik7aShudWEsInNwbGl0TGluZXMiKX0pO2Z1bmN0aW9uIHBNKHQsZSxyKXtsZXR7b2Zmc2V0OmEsdHlwZTpzLHNvdXJjZTpuLGVuZDpvfT10LGwsYyxkPWkoKGgsbSx2KT0+cihhK2gsbSx2KSwiX29uRXJyb3IiKTtzd2l0Y2gocyl7Y2FzZSJzY2FsYXIiOmw9U3QuUExBSU4sYz1vdWEobixkKTticmVhaztjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpsPVN0LlFVT1RFX1NJTkdMRSxjPWx1YShuLGQpO2JyZWFrO2Nhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmw9U3QuUVVPVEVfRE9VQkxFLGM9Y3VhKG4sZCk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gcih0LCJVTkVYUEVDVEVEX1RPS0VOIixgRXhwZWN0ZWQgYSBmbG93IHNjYWxhciB2YWx1ZSwgYnV0IGZvdW5kOiAke3N9YCkse3ZhbHVlOiIiLHR5cGU6bnVsbCxjb21tZW50OiIiLHJhbmdlOlthLGErbi5sZW5ndGgsYStuLmxlbmd0aF19fWxldCBmPWErbi5sZW5ndGgscD1PMihvLGYsZSxyKTtyZXR1cm57dmFsdWU6Yyx0eXBlOmwsY29tbWVudDpwLmNvbW1lbnQscmFuZ2U6W2EsZixwLm9mZnNldF19fWZ1bmN0aW9uIG91YSh0LGUpe2xldCByPSIiO3N3aXRjaCh0WzBdKXtjYXNlIgkiOnI9ImEgdGFiIGNoYXJhY3RlciI7YnJlYWs7Y2FzZSIsIjpyPSJmbG93IGluZGljYXRvciBjaGFyYWN0ZXIgLCI7YnJlYWs7Y2FzZSIlIjpyPSJkaXJlY3RpdmUgaW5kaWNhdG9yIGNoYXJhY3RlciAlIjticmVhaztjYXNlInwiOmNhc2UiPiI6e3I9YGJsb2NrIHNjYWxhciBpbmRpY2F0b3IgJHt0WzBdfWA7YnJlYWt9Y2FzZSJAIjpjYXNlImAiOntyPWByZXNlcnZlZCBjaGFyYWN0ZXIgJHt0WzBdfWA7YnJlYWt9fXJldHVybiByJiZlKDAsIkJBRF9TQ0FMQVJfU1RBUlQiLGBQbGFpbiB2YWx1ZSBjYW5ub3Qgc3RhcnQgd2l0aCAke3J9YCksb0R0KHQpfWZ1bmN0aW9uIGx1YSh0LGUpe3JldHVybih0W3QubGVuZ3RoLTFdIT09IicifHx0Lmxlbmd0aD09PTEpJiZlKHQubGVuZ3RoLCJNSVNTSU5HX0NIQVIiLCJNaXNzaW5nIGNsb3NpbmcgJ3F1b3RlIiksb0R0KHQuc2xpY2UoMSwtMSkpLnJlcGxhY2UoLycnL2csIiciKX1mdW5jdGlvbiBvRHQodCl7bGV0IGUscjt0cnl7ZT1uZXcgUmVnRXhwKGAoLio/KSg/PCFbIAldKVsgCV0qXHI/CmAsInN5Iikscj1uZXcgUmVnRXhwKGBbIAldKiguKj8pKD86KD88IVsgCV0pWyAJXSopP1xyPwpgLCJzeSIpfWNhdGNoe2U9LyguKj8pWyBcdF0qXHI/XG4vc3kscj0vWyBcdF0qKC4qPylbIFx0XSpccj9cbi9zeX1sZXQgYT1lLmV4ZWModCk7aWYoIWEpcmV0dXJuIHQ7bGV0IHM9YVsxXSxuPSIgIixvPWUubGFzdEluZGV4O2ZvcihyLmxhc3RJbmRleD1vO2E9ci5leGVjKHQpOylhWzFdPT09IiI/bj09PWAKYD9zKz1uOm49YApgOihzKz1uK2FbMV0sbj0iICIpLG89ci5sYXN0SW5kZXg7bGV0IGw9L1sgXHRdKiguKikvc3k7cmV0dXJuIGwubGFzdEluZGV4PW8sYT1sLmV4ZWModCkscytuKyhhPy5bMV0/PyIiKX1mdW5jdGlvbiBjdWEodCxlKXtsZXQgcj0iIjtmb3IobGV0IGE9MTthPHQubGVuZ3RoLTE7KythKXtsZXQgcz10W2FdO2lmKCEocz09PSJcciImJnRbYSsxXT09PWAKYCkpaWYocz09PWAKYCl7bGV0e2ZvbGQ6bixvZmZzZXQ6b309ZHVhKHQsYSk7cis9bixhPW99ZWxzZSBpZihzPT09IlxcIil7bGV0IG49dFsrK2FdLG89dXVhW25dO2lmKG8pcis9bztlbHNlIGlmKG49PT1gCmApZm9yKG49dFthKzFdO249PT0iICJ8fG49PT0iCSI7KW49dFsrK2ErMV07ZWxzZSBpZihuPT09IlxyIiYmdFthKzFdPT09YApgKWZvcihuPXRbKythKzFdO249PT0iICJ8fG49PT0iCSI7KW49dFsrK2ErMV07ZWxzZSBpZihuPT09IngifHxuPT09InUifHxuPT09IlUiKXtsZXQgbD1uPT09IngiPzI6bj09PSJ1Ij80Ojg7cis9cHVhKHQsYSsxLGwsZSksYSs9bH1lbHNle2xldCBsPXQuc3Vic3RyKGEtMSwyKTtlKGEtMSwiQkFEX0RRX0VTQ0FQRSIsYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7bH1gKSxyKz1sfX1lbHNlIGlmKHM9PT0iICJ8fHM9PT0iCSIpe2xldCBuPWEsbz10W2ErMV07Zm9yKDtvPT09IiAifHxvPT09IgkiOylvPXRbKythKzFdO28hPT1gCmAmJiEobz09PSJcciImJnRbYSsyXT09PWAKYCkmJihyKz1hPm4/dC5zbGljZShuLGErMSk6cyl9ZWxzZSByKz1zfXJldHVybih0W3QubGVuZ3RoLTFdIT09JyInfHx0Lmxlbmd0aD09PTEpJiZlKHQubGVuZ3RoLCJNSVNTSU5HX0NIQVIiLCdNaXNzaW5nIGNsb3NpbmcgInF1b3RlJykscn1mdW5jdGlvbiBkdWEodCxlKXtsZXQgcj0iIixhPXRbZSsxXTtmb3IoOyhhPT09IiAifHxhPT09IgkifHxhPT09YApgfHxhPT09IlxyIikmJiEoYT09PSJcciImJnRbZSsyXSE9PWAKYCk7KWE9PT1gCmAmJihyKz1gCmApLGUrPTEsYT10W2UrMV07cmV0dXJuIHJ8fChyPSIgIikse2ZvbGQ6cixvZmZzZXQ6ZX19ZnVuY3Rpb24gcHVhKHQsZSxyLGEpe2xldCBzPXQuc3Vic3RyKGUsciksbz1zLmxlbmd0aD09PXImJi9eWzAtOWEtZkEtRl0rJC8udGVzdChzKT9wYXJzZUludChzLDE2KTpOYU47dHJ5e3JldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChvKX1jYXRjaHtsZXQgbD10LnN1YnN0cihlLTIscisyKTtyZXR1cm4gYShlLTIsIkJBRF9EUV9FU0NBUEUiLGBJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAke2x9YCksbH19dmFyIHV1YSxneGU9dSgoKT0+e3ZzKCk7ZXgoKTtpKHBNLCJyZXNvbHZlRmxvd1NjYWxhciIpO2kob3VhLCJwbGFpblZhbHVlIik7aShsdWEsInNpbmdsZVF1b3RlZFZhbHVlIik7aShvRHQsImZvbGRMaW5lcyIpO2koY3VhLCJkb3VibGVRdW90ZWRWYWx1ZSIpO2koZHVhLCJmb2xkTmV3bGluZSIpO3V1YT17MDoiXDAiLGE6Ilx4MDciLGI6IlxiIixlOiJceDFCIixmOiJcZiIsbjpgCmAscjoiXHIiLHQ6IgkiLHY6Ilx2IixOOiJceDg1IixfOiJceEEwIixMOiJcdTIwMjgiLFA6Ilx1MjAyOSIsIiAiOiIgIiwnIic6JyInLCIvIjoiLyIsIlxcIjoiXFwiLCIJIjoiCSJ9O2kocHVhLCJwYXJzZUNoYXJDb2RlIil9KTtmdW5jdGlvbiBxb2UodCxlLHIsYSl7bGV0e3ZhbHVlOnMsdHlwZTpuLGNvbW1lbnQ6byxyYW5nZTpsfT1lLnR5cGU9PT0iYmxvY2stc2NhbGFyIj91TSh0LGUsYSk6cE0oZSx0Lm9wdGlvbnMuc3RyaWN0LGEpLGM9cj90LmRpcmVjdGl2ZXMudGFnTmFtZShyLnNvdXJjZSxwPT5hKHIsIlRBR19SRVNPTFZFX0ZBSUxFRCIscCkpOm51bGwsZDt0Lm9wdGlvbnMuc3RyaW5nS2V5cyYmdC5hdEtleT9kPXQuc2NoZW1hW2cxXTpjP2Q9ZnVhKHQuc2NoZW1hLHMsYyxyLGEpOmUudHlwZT09PSJzY2FsYXIiP2Q9aHVhKHQscyxlLGEpOmQ9dC5zY2hlbWFbZzFdO2xldCBmO3RyeXtsZXQgcD1kLnJlc29sdmUocyxoPT5hKHI/P2UsIlRBR19SRVNPTFZFX0ZBSUxFRCIsaCksdC5vcHRpb25zKTtmPXVyKHApP3A6bmV3IFN0KHApfWNhdGNoKHApe2xldCBoPXAgaW5zdGFuY2VvZiBFcnJvcj9wLm1lc3NhZ2U6U3RyaW5nKHApO2Eocj8/ZSwiVEFHX1JFU09MVkVfRkFJTEVEIixoKSxmPW5ldyBTdChzKX1yZXR1cm4gZi5yYW5nZT1sLGYuc291cmNlPXMsbiYmKGYudHlwZT1uKSxjJiYoZi50YWc9YyksZC5mb3JtYXQmJihmLmZvcm1hdD1kLmZvcm1hdCksbyYmKGYuY29tbWVudD1vKSxmfWZ1bmN0aW9uIGZ1YSh0LGUscixhLHMpe2lmKHI9PT0iISIpcmV0dXJuIHRbZzFdO2xldCBuPVtdO2ZvcihsZXQgbCBvZiB0LnRhZ3MpaWYoIWwuY29sbGVjdGlvbiYmbC50YWc9PT1yKWlmKGwuZGVmYXVsdCYmbC50ZXN0KW4ucHVzaChsKTtlbHNlIHJldHVybiBsO2ZvcihsZXQgbCBvZiBuKWlmKGwudGVzdD8udGVzdChlKSlyZXR1cm4gbDtsZXQgbz10Lmtub3duVGFnc1tyXTtyZXR1cm4gbyYmIW8uY29sbGVjdGlvbj8odC50YWdzLnB1c2goT2JqZWN0LmFzc2lnbih7fSxvLHtkZWZhdWx0OiExLHRlc3Q6dm9pZCAwfSkpLG8pOihzKGEsIlRBR19SRVNPTFZFX0ZBSUxFRCIsYFVucmVzb2x2ZWQgdGFnOiAke3J9YCxyIT09InRhZzp5YW1sLm9yZywyMDAyOnN0ciIpLHRbZzFdKX1mdW5jdGlvbiBodWEoe2F0S2V5OnQsZGlyZWN0aXZlczplLHNjaGVtYTpyfSxhLHMsbil7bGV0IG89ci50YWdzLmZpbmQobD0+KGwuZGVmYXVsdD09PSEwfHx0JiZsLmRlZmF1bHQ9PT0ia2V5IikmJmwudGVzdD8udGVzdChhKSl8fHJbZzFdO2lmKHIuY29tcGF0KXtsZXQgbD1yLmNvbXBhdC5maW5kKGM9PmMuZGVmYXVsdCYmYy50ZXN0Py50ZXN0KGEpKT8/cltnMV07aWYoby50YWchPT1sLnRhZyl7bGV0IGM9ZS50YWdTdHJpbmcoby50YWcpLGQ9ZS50YWdTdHJpbmcobC50YWcpLGY9YFZhbHVlIG1heSBiZSBwYXJzZWQgYXMgZWl0aGVyICR7Y30gb3IgJHtkfWA7bihzLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGYsITApfX1yZXR1cm4gb312YXIgbER0PXUoKCk9PntkYSgpO3ZzKCk7bXhlKCk7Z3hlKCk7aShxb2UsImNvbXBvc2VTY2FsYXIiKTtpKGZ1YSwiZmluZFNjYWxhclRhZ0J5TmFtZSIpO2koaHVhLCJmaW5kU2NhbGFyVGFnQnlUZXN0Iil9KTtmdW5jdGlvbiBieGUodCxlLHIpe2lmKGUpe3I/PyhyPWUubGVuZ3RoKTtmb3IobGV0IGE9ci0xO2E+PTA7LS1hKXtsZXQgcz1lW2FdO3N3aXRjaChzLnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjp0LT1zLnNvdXJjZS5sZW5ndGg7Y29udGludWV9Zm9yKHM9ZVsrK2FdO3M/LnR5cGU9PT0ic3BhY2UiOyl0Kz1zLnNvdXJjZS5sZW5ndGgscz1lWysrYV07YnJlYWt9fXJldHVybiB0fXZhciBjRHQ9dSgoKT0+e2koYnhlLCJlbXB0eVNjYWxhclBvc2l0aW9uIil9KTtmdW5jdGlvbiBWb2UodCxlLHIsYSl7bGV0IHM9dC5hdEtleSx7c3BhY2VCZWZvcmU6bixjb21tZW50Om8sYW5jaG9yOmwsdGFnOmN9PXIsZCxmPSEwO3N3aXRjaChlLnR5cGUpe2Nhc2UiYWxpYXMiOmQ9Z3VhKHQsZSxhKSwobHx8YykmJmEoZSwiQUxJQVNfUFJPUFMiLCJBbiBhbGlhcyBub2RlIG11c3Qgbm90IHNwZWNpZnkgYW55IHByb3BlcnRpZXMiKTticmVhaztjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJibG9jay1zY2FsYXIiOmQ9cW9lKHQsZSxjLGEpLGwmJihkLmFuY2hvcj1sLnNvdXJjZS5zdWJzdHJpbmcoMSkpO2JyZWFrO2Nhc2UiYmxvY2stbWFwIjpjYXNlImJsb2NrLXNlcSI6Y2FzZSJmbG93LWNvbGxlY3Rpb24iOnRyeXtkPWh4ZShtdWEsdCxlLHIsYSksbCYmKGQuYW5jaG9yPWwuc291cmNlLnN1YnN0cmluZygxKSl9Y2F0Y2gocCl7bGV0IGg9cCBpbnN0YW5jZW9mIEVycm9yP3AubWVzc2FnZTpTdHJpbmcocCk7YShlLCJSRVNPVVJDRV9FWEhBVVNUSU9OIixoKX1icmVhaztkZWZhdWx0OntsZXQgcD1lLnR5cGU9PT0iZXJyb3IiP2UubWVzc2FnZTpgVW5zdXBwb3J0ZWQgdG9rZW4gKHR5cGU6ICR7ZS50eXBlfSlgO2EoZSwiVU5FWFBFQ1RFRF9UT0tFTiIscCksZj0hMX19cmV0dXJuIGQ/PyhkPWZNKHQsZS5vZmZzZXQsdm9pZCAwLG51bGwscixhKSksbCYmZC5hbmNob3I9PT0iIiYmYShsLCJCQURfQUxJQVMiLCJBbmNob3IgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZyIpLHMmJnQub3B0aW9ucy5zdHJpbmdLZXlzJiYoIXVyKGQpfHx0eXBlb2YgZC52YWx1ZSE9InN0cmluZyJ8fGQudGFnJiZkLnRhZyE9PSJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiKSYmYShjPz9lLCJOT05fU1RSSU5HX0tFWSIsIldpdGggc3RyaW5nS2V5cywgYWxsIGtleXMgbXVzdCBiZSBzdHJpbmdzIiksbiYmKGQuc3BhY2VCZWZvcmU9ITApLG8mJihlLnR5cGU9PT0ic2NhbGFyIiYmZS5zb3VyY2U9PT0iIj9kLmNvbW1lbnQ9bzpkLmNvbW1lbnRCZWZvcmU9byksdC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJmYmJihkLnNyY1Rva2VuPWUpLGR9ZnVuY3Rpb24gZk0odCxlLHIsYSx7c3BhY2VCZWZvcmU6cyxjb21tZW50Om4sYW5jaG9yOm8sdGFnOmwsZW5kOmN9LGQpe2xldCBmPXt0eXBlOiJzY2FsYXIiLG9mZnNldDpieGUoZSxyLGEpLGluZGVudDotMSxzb3VyY2U6IiJ9LHA9cW9lKHQsZixsLGQpO3JldHVybiBvJiYocC5hbmNob3I9by5zb3VyY2Uuc3Vic3RyaW5nKDEpLHAuYW5jaG9yPT09IiImJmQobywiQkFEX0FMSUFTIiwiQW5jaG9yIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmciKSkscyYmKHAuc3BhY2VCZWZvcmU9ITApLG4mJihwLmNvbW1lbnQ9bixwLnJhbmdlWzJdPWMpLHB9ZnVuY3Rpb24gZ3VhKHtvcHRpb25zOnR9LHtvZmZzZXQ6ZSxzb3VyY2U6cixlbmQ6YX0scyl7bGV0IG49bmV3IExsKHIuc3Vic3RyaW5nKDEpKTtuLnNvdXJjZT09PSIiJiZzKGUsIkJBRF9BTElBUyIsIkFsaWFzIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmciKSxuLnNvdXJjZS5lbmRzV2l0aCgiOiIpJiZzKGUrci5sZW5ndGgtMSwiQkFEX0FMSUFTIiwiQWxpYXMgZW5kaW5nIGluIDogaXMgYW1iaWd1b3VzIiwhMCk7bGV0IG89ZStyLmxlbmd0aCxsPU8yKGEsbyx0LnN0cmljdCxzKTtyZXR1cm4gbi5yYW5nZT1bZSxvLGwub2Zmc2V0XSxsLmNvbW1lbnQmJihuLmNvbW1lbnQ9bC5jb21tZW50KSxufXZhciBtdWEsZER0PXUoKCk9PntSUygpO2RhKCk7bkR0KCk7bER0KCk7ZXgoKTtjRHQoKTttdWE9e2NvbXBvc2VOb2RlOlZvZSxjb21wb3NlRW1wdHlOb2RlOmZNfTtpKFZvZSwiY29tcG9zZU5vZGUiKTtpKGZNLCJjb21wb3NlRW1wdHlOb2RlIik7aShndWEsImNvbXBvc2VBbGlhcyIpfSk7ZnVuY3Rpb24geHhlKHQsZSx7b2Zmc2V0OnIsc3RhcnQ6YSx2YWx1ZTpzLGVuZDpufSxvKXtsZXQgbD1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczplfSx0KSxjPW5ldyBFbCh2b2lkIDAsbCksZD17YXRLZXk6ITEsYXRSb290OiEwLGRpcmVjdGl2ZXM6Yy5kaXJlY3RpdmVzLG9wdGlvbnM6Yy5vcHRpb25zLHNjaGVtYTpjLnNjaGVtYX0sZj1OMihhLHtpbmRpY2F0b3I6ImRvYy1zdGFydCIsbmV4dDpzPz9uPy5bMF0sb2Zmc2V0OnIsb25FcnJvcjpvLHBhcmVudEluZGVudDowLHN0YXJ0T25OZXdsaW5lOiEwfSk7Zi5mb3VuZCYmKGMuZGlyZWN0aXZlcy5kb2NTdGFydD0hMCxzJiYocy50eXBlPT09ImJsb2NrLW1hcCJ8fHMudHlwZT09PSJibG9jay1zZXEiKSYmIWYuaGFzTmV3bGluZSYmbyhmLmVuZCwiTUlTU0lOR19DSEFSIiwiQmxvY2sgY29sbGVjdGlvbiBjYW5ub3Qgc3RhcnQgb24gc2FtZSBsaW5lIHdpdGggZGlyZWN0aXZlcy1lbmQgbWFya2VyIikpLGMuY29udGVudHM9cz9Wb2UoZCxzLGYsbyk6Zk0oZCxmLmVuZCxhLG51bGwsZixvKTtsZXQgcD1jLmNvbnRlbnRzLnJhbmdlWzJdLGg9TzIobixwLCExLG8pO3JldHVybiBoLmNvbW1lbnQmJihjLmNvbW1lbnQ9aC5jb21tZW50KSxjLnJhbmdlPVtyLHAsaC5vZmZzZXRdLGN9dmFyIHVEdD11KCgpPT57b00oKTtkRHQoKTtleCgpO2NNKCk7aSh4eGUsImNvbXBvc2VEb2MiKX0pO2Z1bmN0aW9uIGhNKHQpe2lmKHR5cGVvZiB0PT0ibnVtYmVyIilyZXR1cm5bdCx0KzFdO2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQubGVuZ3RoPT09Mj90Olt0WzBdLHRbMV1dO2xldHtvZmZzZXQ6ZSxzb3VyY2U6cn09dDtyZXR1cm5bZSxlKyh0eXBlb2Ygcj09InN0cmluZyI/ci5sZW5ndGg6MSldfWZ1bmN0aW9uIHBEdCh0KXtsZXQgZT0iIixyPSExLGE9ITE7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDsrK3Mpe2xldCBuPXRbc107c3dpdGNoKG5bMF0pe2Nhc2UiIyI6ZSs9KGU9PT0iIj8iIjphP2AKCmA6YApgKSsobi5zdWJzdHJpbmcoMSl8fCIgIikscj0hMCxhPSExO2JyZWFrO2Nhc2UiJSI6dFtzKzFdPy5bMF0hPT0iIyImJihzKz0xKSxyPSExO2JyZWFrO2RlZmF1bHQ6cnx8KGE9ITApLHI9ITF9fXJldHVybntjb21tZW50OmUsYWZ0ZXJFbXB0eUxpbmU6YX19dmFyIEpkLHZ4ZT11KCgpPT57emJlKCk7b00oKTtsTSgpO2RhKCk7dUR0KCk7ZXgoKTtpKGhNLCJnZXRFcnJvclBvcyIpO2kocER0LCJwYXJzZVByZWx1ZGUiKTtKZD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDb21wb3NlciIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMuZG9jPW51bGwsdGhpcy5hdERpcmVjdGl2ZXM9ITEsdGhpcy5wcmVsdWRlPVtdLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W10sdGhpcy5vbkVycm9yPShyLGEscyxuKT0+e2xldCBvPWhNKHIpO24/dGhpcy53YXJuaW5ncy5wdXNoKG5ldyB3dShvLGEscykpOnRoaXMuZXJyb3JzLnB1c2gobmV3IElvKG8sYSxzKSl9LHRoaXMuZGlyZWN0aXZlcz1uZXcgSTIoe3ZlcnNpb246ZS52ZXJzaW9ufHwiMS4yIn0pLHRoaXMub3B0aW9ucz1lfWRlY29yYXRlKGUscil7bGV0e2NvbW1lbnQ6YSxhZnRlckVtcHR5TGluZTpzfT1wRHQodGhpcy5wcmVsdWRlKTtpZihhKXtsZXQgbj1lLmNvbnRlbnRzO2lmKHIpZS5jb21tZW50PWUuY29tbWVudD9gJHtlLmNvbW1lbnR9CiR7YX1gOmE7ZWxzZSBpZihzfHxlLmRpcmVjdGl2ZXMuZG9jU3RhcnR8fCFuKWUuY29tbWVudEJlZm9yZT1hO2Vsc2UgaWYoY2EobikmJiFuLmZsb3cmJm4uaXRlbXMubGVuZ3RoPjApe2xldCBvPW4uaXRlbXNbMF07X3IobykmJihvPW8ua2V5KTtsZXQgbD1vLmNvbW1lbnRCZWZvcmU7by5jb21tZW50QmVmb3JlPWw/YCR7YX0KJHtsfWA6YX1lbHNle2xldCBvPW4uY29tbWVudEJlZm9yZTtuLmNvbW1lbnRCZWZvcmU9bz9gJHthfQoke299YDphfX1yPyhBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLmVycm9ycyx0aGlzLmVycm9ycyksQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS53YXJuaW5ncyx0aGlzLndhcm5pbmdzKSk6KGUuZXJyb3JzPXRoaXMuZXJyb3JzLGUud2FybmluZ3M9dGhpcy53YXJuaW5ncyksdGhpcy5wcmVsdWRlPVtdLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W119c3RyZWFtSW5mbygpe3JldHVybntjb21tZW50OnBEdCh0aGlzLnByZWx1ZGUpLmNvbW1lbnQsZGlyZWN0aXZlczp0aGlzLmRpcmVjdGl2ZXMsZXJyb3JzOnRoaXMuZXJyb3JzLHdhcm5pbmdzOnRoaXMud2FybmluZ3N9fSpjb21wb3NlKGUscj0hMSxhPS0xKXtmb3IobGV0IHMgb2YgZSl5aWVsZCp0aGlzLm5leHQocyk7eWllbGQqdGhpcy5lbmQocixhKX0qbmV4dChlKXtzd2l0Y2goZS50eXBlKXtjYXNlImRpcmVjdGl2ZSI6dGhpcy5kaXJlY3RpdmVzLmFkZChlLnNvdXJjZSwocixhLHMpPT57bGV0IG49aE0oZSk7blswXSs9cix0aGlzLm9uRXJyb3IobiwiQkFEX0RJUkVDVElWRSIsYSxzKX0pLHRoaXMucHJlbHVkZS5wdXNoKGUuc291cmNlKSx0aGlzLmF0RGlyZWN0aXZlcz0hMDticmVhaztjYXNlImRvY3VtZW50Ijp7bGV0IHI9eHhlKHRoaXMub3B0aW9ucyx0aGlzLmRpcmVjdGl2ZXMsZSx0aGlzLm9uRXJyb3IpO3RoaXMuYXREaXJlY3RpdmVzJiYhci5kaXJlY3RpdmVzLmRvY1N0YXJ0JiZ0aGlzLm9uRXJyb3IoZSwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBkaXJlY3RpdmVzLWVuZC9kb2Mtc3RhcnQgaW5kaWNhdG9yIGxpbmUiKSx0aGlzLmRlY29yYXRlKHIsITEpLHRoaXMuZG9jJiYoeWllbGQgdGhpcy5kb2MpLHRoaXMuZG9jPXIsdGhpcy5hdERpcmVjdGl2ZXM9ITE7YnJlYWt9Y2FzZSJieXRlLW9yZGVyLW1hcmsiOmNhc2Uic3BhY2UiOmJyZWFrO2Nhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjp0aGlzLnByZWx1ZGUucHVzaChlLnNvdXJjZSk7YnJlYWs7Y2FzZSJlcnJvciI6e2xldCByPWUuc291cmNlP2Ake2UubWVzc2FnZX06ICR7SlNPTi5zdHJpbmdpZnkoZS5zb3VyY2UpfWA6ZS5tZXNzYWdlLGE9bmV3IElvKGhNKGUpLCJVTkVYUEVDVEVEX1RPS0VOIixyKTt0aGlzLmF0RGlyZWN0aXZlc3x8IXRoaXMuZG9jP3RoaXMuZXJyb3JzLnB1c2goYSk6dGhpcy5kb2MuZXJyb3JzLnB1c2goYSk7YnJlYWt9Y2FzZSJkb2MtZW5kIjp7aWYoIXRoaXMuZG9jKXtsZXQgYT0iVW5leHBlY3RlZCBkb2MtZW5kIHdpdGhvdXQgcHJlY2VkaW5nIGRvY3VtZW50Ijt0aGlzLmVycm9ycy5wdXNoKG5ldyBJbyhoTShlKSwiVU5FWFBFQ1RFRF9UT0tFTiIsYSkpO2JyZWFrfXRoaXMuZG9jLmRpcmVjdGl2ZXMuZG9jRW5kPSEwO2xldCByPU8yKGUuZW5kLGUub2Zmc2V0K2Uuc291cmNlLmxlbmd0aCx0aGlzLmRvYy5vcHRpb25zLnN0cmljdCx0aGlzLm9uRXJyb3IpO2lmKHRoaXMuZGVjb3JhdGUodGhpcy5kb2MsITApLHIuY29tbWVudCl7bGV0IGE9dGhpcy5kb2MuY29tbWVudDt0aGlzLmRvYy5jb21tZW50PWE/YCR7YX0KJHtyLmNvbW1lbnR9YDpyLmNvbW1lbnR9dGhpcy5kb2MucmFuZ2VbMl09ci5vZmZzZXQ7YnJlYWt9ZGVmYXVsdDp0aGlzLmVycm9ycy5wdXNoKG5ldyBJbyhoTShlKSwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuc3VwcG9ydGVkIHRva2VuICR7ZS50eXBlfWApKX19KmVuZChlPSExLHI9LTEpe2lmKHRoaXMuZG9jKXRoaXMuZGVjb3JhdGUodGhpcy5kb2MsITApLHlpZWxkIHRoaXMuZG9jLHRoaXMuZG9jPW51bGw7ZWxzZSBpZihlKXtsZXQgYT1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczp0aGlzLmRpcmVjdGl2ZXN9LHRoaXMub3B0aW9ucykscz1uZXcgRWwodm9pZCAwLGEpO3RoaXMuYXREaXJlY3RpdmVzJiZ0aGlzLm9uRXJyb3IociwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBkaXJlY3RpdmVzLWVuZCBpbmRpY2F0b3IgbGluZSIpLHMucmFuZ2U9WzAscixyXSx0aGlzLmRlY29yYXRlKHMsITEpLHlpZWxkIHN9fX19KTtmdW5jdGlvbiB3eGUodCxlPSEwLHIpe2lmKHQpe2xldCBhPWkoKHMsbixvKT0+e2xldCBsPXR5cGVvZiBzPT0ibnVtYmVyIj9zOkFycmF5LmlzQXJyYXkocyk/c1swXTpzLm9mZnNldDtpZihyKXIobCxuLG8pO2Vsc2UgdGhyb3cgbmV3IElvKFtsLGwrMV0sbixvKX0sIl9vbkVycm9yIik7c3dpdGNoKHQudHlwZSl7Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOnJldHVybiBwTSh0LGUsYSk7Y2FzZSJibG9jay1zY2FsYXIiOnJldHVybiB1TSh7b3B0aW9uczp7c3RyaWN0OmV9fSx0LGEpfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBreGUodCxlKXtsZXR7aW1wbGljaXRLZXk6cj0hMSxpbmRlbnQ6YSxpbkZsb3c6cz0hMSxvZmZzZXQ6bj0tMSx0eXBlOm89IlBMQUlOIn09ZSxsPWYwKHt0eXBlOm8sdmFsdWU6dH0se2ltcGxpY2l0S2V5OnIsaW5kZW50OmE+MD8iICIucmVwZWF0KGEpOiIiLGluRmxvdzpzLG9wdGlvbnM6e2Jsb2NrUXVvdGU6ITAsbGluZVdpZHRoOi0xfX0pLGM9ZS5lbmQ/P1t7dHlwZToibmV3bGluZSIsb2Zmc2V0Oi0xLGluZGVudDphLHNvdXJjZTpgCmB9XTtzd2l0Y2gobFswXSl7Y2FzZSJ8IjpjYXNlIj4iOntsZXQgZD1sLmluZGV4T2YoYApgKSxmPWwuc3Vic3RyaW5nKDAsZCkscD1sLnN1YnN0cmluZyhkKzEpK2AKYCxoPVt7dHlwZToiYmxvY2stc2NhbGFyLWhlYWRlciIsb2Zmc2V0Om4saW5kZW50OmEsc291cmNlOmZ9XTtyZXR1cm4gZkR0KGgsYyl8fGgucHVzaCh7dHlwZToibmV3bGluZSIsb2Zmc2V0Oi0xLGluZGVudDphLHNvdXJjZTpgCmB9KSx7dHlwZToiYmxvY2stc2NhbGFyIixvZmZzZXQ6bixpbmRlbnQ6YSxwcm9wczpoLHNvdXJjZTpwfX1jYXNlJyInOnJldHVybnt0eXBlOiJkb3VibGUtcXVvdGVkLXNjYWxhciIsb2Zmc2V0Om4saW5kZW50OmEsc291cmNlOmwsZW5kOmN9O2Nhc2UiJyI6cmV0dXJue3R5cGU6InNpbmdsZS1xdW90ZWQtc2NhbGFyIixvZmZzZXQ6bixpbmRlbnQ6YSxzb3VyY2U6bCxlbmQ6Y307ZGVmYXVsdDpyZXR1cm57dHlwZToic2NhbGFyIixvZmZzZXQ6bixpbmRlbnQ6YSxzb3VyY2U6bCxlbmQ6Y319fWZ1bmN0aW9uIFN4ZSh0LGUscj17fSl7bGV0e2FmdGVyS2V5OmE9ITEsaW1wbGljaXRLZXk6cz0hMSxpbkZsb3c6bj0hMSx0eXBlOm99PXIsbD0iaW5kZW50ImluIHQ/dC5pbmRlbnQ6bnVsbDtpZihhJiZ0eXBlb2YgbD09Im51bWJlciImJihsKz0yKSwhbylzd2l0Y2godC50eXBlKXtjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpvPSJRVU9URV9TSU5HTEUiO2JyZWFrO2Nhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOm89IlFVT1RFX0RPVUJMRSI7YnJlYWs7Y2FzZSJibG9jay1zY2FsYXIiOntsZXQgZD10LnByb3BzWzBdO2lmKGQudHlwZSE9PSJibG9jay1zY2FsYXItaGVhZGVyIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYmxvY2sgc2NhbGFyIGhlYWRlciIpO289ZC5zb3VyY2VbMF09PT0iPiI/IkJMT0NLX0ZPTERFRCI6IkJMT0NLX0xJVEVSQUwiO2JyZWFrfWRlZmF1bHQ6bz0iUExBSU4ifWxldCBjPWYwKHt0eXBlOm8sdmFsdWU6ZX0se2ltcGxpY2l0S2V5OnN8fGw9PT1udWxsLGluZGVudDpsIT09bnVsbCYmbD4wPyIgIi5yZXBlYXQobCk6IiIsaW5GbG93Om4sb3B0aW9uczp7YmxvY2tRdW90ZTohMCxsaW5lV2lkdGg6LTF9fSk7c3dpdGNoKGNbMF0pe2Nhc2UifCI6Y2FzZSI+IjpidWEodCxjKTticmVhaztjYXNlJyInOnl4ZSh0LGMsImRvdWJsZS1xdW90ZWQtc2NhbGFyIik7YnJlYWs7Y2FzZSInIjp5eGUodCxjLCJzaW5nbGUtcXVvdGVkLXNjYWxhciIpO2JyZWFrO2RlZmF1bHQ6eXhlKHQsYywic2NhbGFyIil9fWZ1bmN0aW9uIGJ1YSh0LGUpe2xldCByPWUuaW5kZXhPZihgCmApLGE9ZS5zdWJzdHJpbmcoMCxyKSxzPWUuc3Vic3RyaW5nKHIrMSkrYApgO2lmKHQudHlwZT09PSJibG9jay1zY2FsYXIiKXtsZXQgbj10LnByb3BzWzBdO2lmKG4udHlwZSE9PSJibG9jay1zY2FsYXItaGVhZGVyIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYmxvY2sgc2NhbGFyIGhlYWRlciIpO24uc291cmNlPWEsdC5zb3VyY2U9c31lbHNle2xldHtvZmZzZXQ6bn09dCxvPSJpbmRlbnQiaW4gdD90LmluZGVudDotMSxsPVt7dHlwZToiYmxvY2stc2NhbGFyLWhlYWRlciIsb2Zmc2V0Om4saW5kZW50Om8sc291cmNlOmF9XTtmRHQobCwiZW5kImluIHQ/dC5lbmQ6dm9pZCAwKXx8bC5wdXNoKHt0eXBlOiJuZXdsaW5lIixvZmZzZXQ6LTEsaW5kZW50Om8sc291cmNlOmAKYH0pO2ZvcihsZXQgYyBvZiBPYmplY3Qua2V5cyh0KSljIT09InR5cGUiJiZjIT09Im9mZnNldCImJmRlbGV0ZSB0W2NdO09iamVjdC5hc3NpZ24odCx7dHlwZToiYmxvY2stc2NhbGFyIixpbmRlbnQ6byxwcm9wczpsLHNvdXJjZTpzfSl9fWZ1bmN0aW9uIGZEdCh0LGUpe2lmKGUpZm9yKGxldCByIG9mIGUpc3dpdGNoKHIudHlwZSl7Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50Ijp0LnB1c2gocik7YnJlYWs7Y2FzZSJuZXdsaW5lIjpyZXR1cm4gdC5wdXNoKHIpLCEwfXJldHVybiExfWZ1bmN0aW9uIHl4ZSh0LGUscil7c3dpdGNoKHQudHlwZSl7Y2FzZSJzY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOnQudHlwZT1yLHQuc291cmNlPWU7YnJlYWs7Y2FzZSJibG9jay1zY2FsYXIiOntsZXQgYT10LnByb3BzLnNsaWNlKDEpLHM9ZS5sZW5ndGg7dC5wcm9wc1swXS50eXBlPT09ImJsb2NrLXNjYWxhci1oZWFkZXIiJiYocy09dC5wcm9wc1swXS5zb3VyY2UubGVuZ3RoKTtmb3IobGV0IG4gb2YgYSluLm9mZnNldCs9cztkZWxldGUgdC5wcm9wcyxPYmplY3QuYXNzaWduKHQse3R5cGU6cixzb3VyY2U6ZSxlbmQ6YX0pO2JyZWFrfWNhc2UiYmxvY2stbWFwIjpjYXNlImJsb2NrLXNlcSI6e2xldCBzPXt0eXBlOiJuZXdsaW5lIixvZmZzZXQ6dC5vZmZzZXQrZS5sZW5ndGgsaW5kZW50OnQuaW5kZW50LHNvdXJjZTpgCmB9O2RlbGV0ZSB0Lml0ZW1zLE9iamVjdC5hc3NpZ24odCx7dHlwZTpyLHNvdXJjZTplLGVuZDpbc119KTticmVha31kZWZhdWx0OntsZXQgYT0iaW5kZW50ImluIHQ/dC5pbmRlbnQ6LTEscz0iZW5kImluIHQmJkFycmF5LmlzQXJyYXkodC5lbmQpP3QuZW5kLmZpbHRlcihuPT5uLnR5cGU9PT0ic3BhY2UifHxuLnR5cGU9PT0iY29tbWVudCJ8fG4udHlwZT09PSJuZXdsaW5lIik6W107Zm9yKGxldCBuIG9mIE9iamVjdC5rZXlzKHQpKW4hPT0idHlwZSImJm4hPT0ib2Zmc2V0IiYmZGVsZXRlIHRbbl07T2JqZWN0LmFzc2lnbih0LHt0eXBlOnIsaW5kZW50OmEsc291cmNlOmUsZW5kOnN9KX19fXZhciBoRHQ9dSgoKT0+e214ZSgpO2d4ZSgpO2xNKCk7alMoKTtpKHd4ZSwicmVzb2x2ZUFzU2NhbGFyIik7aShreGUsImNyZWF0ZVNjYWxhclRva2VuIik7aShTeGUsInNldFNjYWxhclZhbHVlIik7aShidWEsInNldEJsb2NrU2NhbGFyVmFsdWUiKTtpKGZEdCwiYWRkRW5kdG9CbG9ja1Byb3BzIik7aSh5eGUsInNldEZsb3dTY2FsYXJWYWx1ZSIpfSk7ZnVuY3Rpb24gam9lKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UiYmxvY2stc2NhbGFyIjp7bGV0IGU9IiI7Zm9yKGxldCByIG9mIHQucHJvcHMpZSs9am9lKHIpO3JldHVybiBlK3Quc291cmNlfWNhc2UiYmxvY2stbWFwIjpjYXNlImJsb2NrLXNlcSI6e2xldCBlPSIiO2ZvcihsZXQgciBvZiB0Lml0ZW1zKWUrPVVvZShyKTtyZXR1cm4gZX1jYXNlImZsb3ctY29sbGVjdGlvbiI6e2xldCBlPXQuc3RhcnQuc291cmNlO2ZvcihsZXQgciBvZiB0Lml0ZW1zKWUrPVVvZShyKTtmb3IobGV0IHIgb2YgdC5lbmQpZSs9ci5zb3VyY2U7cmV0dXJuIGV9Y2FzZSJkb2N1bWVudCI6e2xldCBlPVVvZSh0KTtpZih0LmVuZClmb3IobGV0IHIgb2YgdC5lbmQpZSs9ci5zb3VyY2U7cmV0dXJuIGV9ZGVmYXVsdDp7bGV0IGU9dC5zb3VyY2U7aWYoImVuZCJpbiB0JiZ0LmVuZClmb3IobGV0IHIgb2YgdC5lbmQpZSs9ci5zb3VyY2U7cmV0dXJuIGV9fX1mdW5jdGlvbiBVb2Uoe3N0YXJ0OnQsa2V5OmUsc2VwOnIsdmFsdWU6YX0pe2xldCBzPSIiO2ZvcihsZXQgbiBvZiB0KXMrPW4uc291cmNlO2lmKGUmJihzKz1qb2UoZSkpLHIpZm9yKGxldCBuIG9mIHIpcys9bi5zb3VyY2U7cmV0dXJuIGEmJihzKz1qb2UoYSkpLHN9dmFyIE14ZSxtRHQ9dSgoKT0+e014ZT1pKHQ9PiJ0eXBlImluIHQ/am9lKHQpOlVvZSh0KSwic3RyaW5naWZ5Iik7aShqb2UsInN0cmluZ2lmeVRva2VuIik7aShVb2UsInN0cmluZ2lmeUl0ZW0iKX0pO2Z1bmN0aW9uIGU0KHQsZSl7InR5cGUiaW4gdCYmdC50eXBlPT09ImRvY3VtZW50IiYmKHQ9e3N0YXJ0OnQuc3RhcnQsdmFsdWU6dC52YWx1ZX0pLGJEdChPYmplY3QuZnJlZXplKFtdKSx0LGUpfWZ1bmN0aW9uIGJEdCh0LGUscil7bGV0IGE9cihlLHQpO2lmKHR5cGVvZiBhPT0ic3ltYm9sIilyZXR1cm4gYTtmb3IobGV0IHMgb2ZbImtleSIsInZhbHVlIl0pe2xldCBuPWVbc107aWYobiYmIml0ZW1zImluIG4pe2ZvcihsZXQgbz0wO288bi5pdGVtcy5sZW5ndGg7KytvKXtsZXQgbD1iRHQoT2JqZWN0LmZyZWV6ZSh0LmNvbmNhdChbW3Msb11dKSksbi5pdGVtc1tvXSxyKTtpZih0eXBlb2YgbD09Im51bWJlciIpbz1sLTE7ZWxzZXtpZihsPT09Q3hlKXJldHVybiBDeGU7bD09PWdEdCYmKG4uaXRlbXMuc3BsaWNlKG8sMSksby09MSl9fXR5cGVvZiBhPT0iZnVuY3Rpb24iJiZzPT09ImtleSImJihhPWEoZSx0KSl9fXJldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIj9hKGUsdCk6YX12YXIgQ3hlLHh1YSxnRHQseER0PXUoKCk9PntDeGU9U3ltYm9sKCJicmVhayB2aXNpdCIpLHh1YT1TeW1ib2woInNraXAgY2hpbGRyZW4iKSxnRHQ9U3ltYm9sKCJyZW1vdmUgaXRlbSIpO2koZTQsInZpc2l0IiksZTQuQlJFQUs9Q3hlLGU0LlNLSVA9eHVhLGU0LlJFTU9WRT1nRHQsZTQuaXRlbUF0UGF0aD0odCxlKT0+e2xldCByPXQ7Zm9yKGxldFthLHNdb2YgZSl7bGV0IG49cj8uW2FdO2lmKG4mJiJpdGVtcyJpbiBuKXI9bi5pdGVtc1tzXTtlbHNlIHJldHVybn1yZXR1cm4gcn0sZTQucGFyZW50Q29sbGVjdGlvbj0odCxlKT0+e2xldCByPWU0Lml0ZW1BdFBhdGgodCxlLnNsaWNlKDAsLTEpKSxhPWVbZS5sZW5ndGgtMV1bMF0scz1yPy5bYV07aWYocyYmIml0ZW1zImluIHMpcmV0dXJuIHM7dGhyb3cgbmV3IEVycm9yKCJQYXJlbnQgY29sbGVjdGlvbiBub3QgZm91bmQiKX07aShiRHQsIl92aXNpdCIpfSk7dmFyIG1NPXt9O1ZlKG1NLHtCT006KCk9PnR4LERPQ1VNRU5UOigpPT5yeCxGTE9XX0VORDooKT0+YXgsU0NBTEFSOigpPT5iaCxjcmVhdGVTY2FsYXJUb2tlbjooKT0+a3hlLGlzQ29sbGVjdGlvbjooKT0+dkR0LGlzU2NhbGFyOigpPT55RHQscHJldHR5VG9rZW46KCk9PndEdCxyZXNvbHZlQXNTY2FsYXI6KCk9Pnd4ZSxzZXRTY2FsYXJWYWx1ZTooKT0+U3hlLHN0cmluZ2lmeTooKT0+TXhlLHRva2VuVHlwZTooKT0+V29lLHZpc2l0OigpPT5lNH0pO2Z1bmN0aW9uIHdEdCh0KXtzd2l0Y2godCl7Y2FzZSB0eDpyZXR1cm4iPEJPTT4iO2Nhc2Ugcng6cmV0dXJuIjxET0M+IjtjYXNlIGF4OnJldHVybiI8RkxPV19FTkQ+IjtjYXNlIGJoOnJldHVybiI8U0NBTEFSPiI7ZGVmYXVsdDpyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9fWZ1bmN0aW9uIFdvZSh0KXtzd2l0Y2godCl7Y2FzZSB0eDpyZXR1cm4iYnl0ZS1vcmRlci1tYXJrIjtjYXNlIHJ4OnJldHVybiJkb2MtbW9kZSI7Y2FzZSBheDpyZXR1cm4iZmxvdy1lcnJvci1lbmQiO2Nhc2UgYmg6cmV0dXJuInNjYWxhciI7Y2FzZSItLS0iOnJldHVybiJkb2Mtc3RhcnQiO2Nhc2UiLi4uIjpyZXR1cm4iZG9jLWVuZCI7Y2FzZSIiOmNhc2VgCmA6Y2FzZWBccgpgOnJldHVybiJuZXdsaW5lIjtjYXNlIi0iOnJldHVybiJzZXEtaXRlbS1pbmQiO2Nhc2UiPyI6cmV0dXJuImV4cGxpY2l0LWtleS1pbmQiO2Nhc2UiOiI6cmV0dXJuIm1hcC12YWx1ZS1pbmQiO2Nhc2UieyI6cmV0dXJuImZsb3ctbWFwLXN0YXJ0IjtjYXNlIn0iOnJldHVybiJmbG93LW1hcC1lbmQiO2Nhc2UiWyI6cmV0dXJuImZsb3ctc2VxLXN0YXJ0IjtjYXNlIl0iOnJldHVybiJmbG93LXNlcS1lbmQiO2Nhc2UiLCI6cmV0dXJuImNvbW1hIn1zd2l0Y2godFswXSl7Y2FzZSIgIjpjYXNlIgkiOnJldHVybiJzcGFjZSI7Y2FzZSIjIjpyZXR1cm4iY29tbWVudCI7Y2FzZSIlIjpyZXR1cm4iZGlyZWN0aXZlLWxpbmUiO2Nhc2UiKiI6cmV0dXJuImFsaWFzIjtjYXNlIiYiOnJldHVybiJhbmNob3IiO2Nhc2UiISI6cmV0dXJuInRhZyI7Y2FzZSInIjpyZXR1cm4ic2luZ2xlLXF1b3RlZC1zY2FsYXIiO2Nhc2UnIic6cmV0dXJuImRvdWJsZS1xdW90ZWQtc2NhbGFyIjtjYXNlInwiOmNhc2UiPiI6cmV0dXJuImJsb2NrLXNjYWxhci1oZWFkZXIifXJldHVybiBudWxsfXZhciB0eCxyeCxheCxiaCx2RHQseUR0LEdvZT11KCgpPT57aER0KCk7bUR0KCk7eER0KCk7dHg9Ilx1RkVGRiIscng9IgIiLGF4PSIYIixiaD0iHyIsdkR0PWkodD0+ISF0JiYiaXRlbXMiaW4gdCwiaXNDb2xsZWN0aW9uIikseUR0PWkodD0+ISF0JiYodC50eXBlPT09InNjYWxhciJ8fHQudHlwZT09PSJzaW5nbGUtcXVvdGVkLXNjYWxhciJ8fHQudHlwZT09PSJkb3VibGUtcXVvdGVkLXNjYWxhciJ8fHQudHlwZT09PSJibG9jay1zY2FsYXIiKSwiaXNTY2FsYXIiKTtpKHdEdCwicHJldHR5VG9rZW4iKTtpKFdvZSwidG9rZW5UeXBlIil9KTtmdW5jdGlvbiBSMih0KXtzd2l0Y2godCl7Y2FzZSB2b2lkIDA6Y2FzZSIgIjpjYXNlYApgOmNhc2UiXHIiOmNhc2UiCSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19dmFyIGtEdCx2dWEsWW9lLHl1YSx6eGUsa3UsX3hlPXUoKCk9PntHb2UoKTtpKFIyLCJpc0VtcHR5Iik7a0R0PW5ldyBTZXQoIjAxMjM0NTY3ODlBQkNERUZhYmNkZWYiKSx2dWE9bmV3IFNldCgiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXotIzsvPzpAJj0rJF8uIX4qJygpIiksWW9lPW5ldyBTZXQoIixbXXt9IikseXVhPW5ldyBTZXQoYCAsW117fQpccglgKSx6eGU9aSh0PT4hdHx8eXVhLmhhcyh0KSwiaXNOb3RBbmNob3JDaGFyIiksa3U9Y2xhc3N7c3RhdGlje2kodGhpcywiTGV4ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuYXRFbmQ9ITEsdGhpcy5ibG9ja1NjYWxhckluZGVudD0tMSx0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMSx0aGlzLmJ1ZmZlcj0iIix0aGlzLmZsb3dLZXk9ITEsdGhpcy5mbG93TGV2ZWw9MCx0aGlzLmluZGVudE5leHQ9MCx0aGlzLmluZGVudFZhbHVlPTAsdGhpcy5saW5lRW5kUG9zPW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy5wb3M9MH0qbGV4KGUscj0hMSl7aWYoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IFR5cGVFcnJvcigic291cmNlIGlzIG5vdCBhIHN0cmluZyIpO3RoaXMuYnVmZmVyPXRoaXMuYnVmZmVyP3RoaXMuYnVmZmVyK2U6ZSx0aGlzLmxpbmVFbmRQb3M9bnVsbH10aGlzLmF0RW5kPSFyO2xldCBhPXRoaXMubmV4dD8/InN0cmVhbSI7Zm9yKDthJiYocnx8dGhpcy5oYXNDaGFycygxKSk7KWE9eWllbGQqdGhpcy5wYXJzZU5leHQoYSl9YXRMaW5lRW5kKCl7bGV0IGU9dGhpcy5wb3Mscj10aGlzLmJ1ZmZlcltlXTtmb3IoO3I9PT0iICJ8fHI9PT0iCSI7KXI9dGhpcy5idWZmZXJbKytlXTtyZXR1cm4hcnx8cj09PSIjInx8cj09PWAKYD8hMDpyPT09IlxyIj90aGlzLmJ1ZmZlcltlKzFdPT09YApgOiExfWNoYXJBdChlKXtyZXR1cm4gdGhpcy5idWZmZXJbdGhpcy5wb3MrZV19Y29udGludWVTY2FsYXIoZSl7bGV0IHI9dGhpcy5idWZmZXJbZV07aWYodGhpcy5pbmRlbnROZXh0PjApe2xldCBhPTA7Zm9yKDtyPT09IiAiOylyPXRoaXMuYnVmZmVyWysrYStlXTtpZihyPT09IlxyIil7bGV0IHM9dGhpcy5idWZmZXJbYStlKzFdO2lmKHM9PT1gCmB8fCFzJiYhdGhpcy5hdEVuZClyZXR1cm4gZSthKzF9cmV0dXJuIHI9PT1gCmB8fGE+PXRoaXMuaW5kZW50TmV4dHx8IXImJiF0aGlzLmF0RW5kP2UrYTotMX1pZihyPT09Ii0ifHxyPT09Ii4iKXtsZXQgYT10aGlzLmJ1ZmZlci5zdWJzdHIoZSwzKTtpZigoYT09PSItLS0ifHxhPT09Ii4uLiIpJiZSMih0aGlzLmJ1ZmZlcltlKzNdKSlyZXR1cm4tMX1yZXR1cm4gZX1nZXRMaW5lKCl7bGV0IGU9dGhpcy5saW5lRW5kUG9zO3JldHVybih0eXBlb2YgZSE9Im51bWJlciJ8fGUhPT0tMSYmZTx0aGlzLnBvcykmJihlPXRoaXMuYnVmZmVyLmluZGV4T2YoYApgLHRoaXMucG9zKSx0aGlzLmxpbmVFbmRQb3M9ZSksZT09PS0xP3RoaXMuYXRFbmQ/dGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKTpudWxsOih0aGlzLmJ1ZmZlcltlLTFdPT09IlxyIiYmKGUtPTEpLHRoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyxlKSl9aGFzQ2hhcnMoZSl7cmV0dXJuIHRoaXMucG9zK2U8PXRoaXMuYnVmZmVyLmxlbmd0aH1zZXROZXh0KGUpe3JldHVybiB0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlci5zdWJzdHJpbmcodGhpcy5wb3MpLHRoaXMucG9zPTAsdGhpcy5saW5lRW5kUG9zPW51bGwsdGhpcy5uZXh0PWUsbnVsbH1wZWVrKGUpe3JldHVybiB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsZSl9KnBhcnNlTmV4dChlKXtzd2l0Y2goZSl7Y2FzZSJzdHJlYW0iOnJldHVybiB5aWVsZCp0aGlzLnBhcnNlU3RyZWFtKCk7Y2FzZSJsaW5lLXN0YXJ0IjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpO2Nhc2UiYmxvY2stc3RhcnQiOnJldHVybiB5aWVsZCp0aGlzLnBhcnNlQmxvY2tTdGFydCgpO2Nhc2UiZG9jIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZURvY3VtZW50KCk7Y2FzZSJmbG93IjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUZsb3dDb2xsZWN0aW9uKCk7Y2FzZSJxdW90ZWQtc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO2Nhc2UiYmxvY2stc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUJsb2NrU2NhbGFyKCk7Y2FzZSJwbGFpbi1zY2FsYXIiOnJldHVybiB5aWVsZCp0aGlzLnBhcnNlUGxhaW5TY2FsYXIoKX19KnBhcnNlU3RyZWFtKCl7bGV0IGU9dGhpcy5nZXRMaW5lKCk7aWYoZT09PW51bGwpcmV0dXJuIHRoaXMuc2V0TmV4dCgic3RyZWFtIik7aWYoZVswXT09PXR4JiYoeWllbGQqdGhpcy5wdXNoQ291bnQoMSksZT1lLnN1YnN0cmluZygxKSksZVswXT09PSIlIil7bGV0IHI9ZS5sZW5ndGgsYT1lLmluZGV4T2YoIiMiKTtmb3IoO2EhPT0tMTspe2xldCBuPWVbYS0xXTtpZihuPT09IiAifHxuPT09IgkiKXtyPWEtMTticmVha31lbHNlIGE9ZS5pbmRleE9mKCIjIixhKzEpfWZvcig7Oyl7bGV0IG49ZVtyLTFdO2lmKG49PT0iICJ8fG49PT0iCSIpci09MTtlbHNlIGJyZWFrfWxldCBzPSh5aWVsZCp0aGlzLnB1c2hDb3VudChyKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpO3JldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudChlLmxlbmd0aC1zKSx0aGlzLnB1c2hOZXdsaW5lKCksInN0cmVhbSJ9aWYodGhpcy5hdExpbmVFbmQoKSl7bGV0IHI9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKTtyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtcikseWllbGQqdGhpcy5wdXNoTmV3bGluZSgpLCJzdHJlYW0ifXJldHVybiB5aWVsZCByeCx5aWVsZCp0aGlzLnBhcnNlTGluZVN0YXJ0KCl9KnBhcnNlTGluZVN0YXJ0KCl7bGV0IGU9dGhpcy5jaGFyQXQoMCk7aWYoIWUmJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImxpbmUtc3RhcnQiKTtpZihlPT09Ii0ifHxlPT09Ii4iKXtpZighdGhpcy5hdEVuZCYmIXRoaXMuaGFzQ2hhcnMoNCkpcmV0dXJuIHRoaXMuc2V0TmV4dCgibGluZS1zdGFydCIpO2xldCByPXRoaXMucGVlaygzKTtpZigocj09PSItLS0ifHxyPT09Ii4uLiIpJiZSMih0aGlzLmNoYXJBdCgzKSkpcmV0dXJuIHlpZWxkKnRoaXMucHVzaENvdW50KDMpLHRoaXMuaW5kZW50VmFsdWU9MCx0aGlzLmluZGVudE5leHQ9MCxyPT09Ii0tLSI/ImRvYyI6InN0cmVhbSJ9cmV0dXJuIHRoaXMuaW5kZW50VmFsdWU9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCExKSx0aGlzLmluZGVudE5leHQ+dGhpcy5pbmRlbnRWYWx1ZSYmIVIyKHRoaXMuY2hhckF0KDEpKSYmKHRoaXMuaW5kZW50TmV4dD10aGlzLmluZGVudFZhbHVlKSx5aWVsZCp0aGlzLnBhcnNlQmxvY2tTdGFydCgpfSpwYXJzZUJsb2NrU3RhcnQoKXtsZXRbZSxyXT10aGlzLnBlZWsoMik7aWYoIXImJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXN0YXJ0Iik7aWYoKGU9PT0iLSJ8fGU9PT0iPyJ8fGU9PT0iOiIpJiZSMihyKSl7bGV0IGE9KHlpZWxkKnRoaXMucHVzaENvdW50KDEpKSsoeWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSk7cmV0dXJuIHRoaXMuaW5kZW50TmV4dD10aGlzLmluZGVudFZhbHVlKzEsdGhpcy5pbmRlbnRWYWx1ZSs9YSx5aWVsZCp0aGlzLnBhcnNlQmxvY2tTdGFydCgpfXJldHVybiJkb2MifSpwYXJzZURvY3VtZW50KCl7eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKTtsZXQgZT10aGlzLmdldExpbmUoKTtpZihlPT09bnVsbClyZXR1cm4gdGhpcy5zZXROZXh0KCJkb2MiKTtsZXQgcj15aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCk7c3dpdGNoKGVbcl0pe2Nhc2UiIyI6eWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtcik7Y2FzZSB2b2lkIDA6cmV0dXJuIHlpZWxkKnRoaXMucHVzaE5ld2xpbmUoKSx5aWVsZCp0aGlzLnBhcnNlTGluZVN0YXJ0KCk7Y2FzZSJ7IjpjYXNlIlsiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSx0aGlzLmZsb3dLZXk9ITEsdGhpcy5mbG93TGV2ZWw9MSwiZmxvdyI7Y2FzZSJ9IjpjYXNlIl0iOnJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSwiZG9jIjtjYXNlIioiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hVbnRpbCh6eGUpLCJkb2MiO2Nhc2UnIic6Y2FzZSInIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO2Nhc2UifCI6Y2FzZSI+IjpyZXR1cm4gcis9eWllbGQqdGhpcy5wYXJzZUJsb2NrU2NhbGFySGVhZGVyKCkscis9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSx5aWVsZCp0aGlzLnB1c2hDb3VudChlLmxlbmd0aC1yKSx5aWVsZCp0aGlzLnB1c2hOZXdsaW5lKCkseWllbGQqdGhpcy5wYXJzZUJsb2NrU2NhbGFyKCk7ZGVmYXVsdDpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVBsYWluU2NhbGFyKCl9fSpwYXJzZUZsb3dDb2xsZWN0aW9uKCl7bGV0IGUscixhPS0xO2RvIGU9eWllbGQqdGhpcy5wdXNoTmV3bGluZSgpLGU+MD8ocj15aWVsZCp0aGlzLnB1c2hTcGFjZXMoITEpLHRoaXMuaW5kZW50VmFsdWU9YT1yKTpyPTAscis9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKTt3aGlsZShlK3I+MCk7bGV0IHM9dGhpcy5nZXRMaW5lKCk7aWYocz09PW51bGwpcmV0dXJuIHRoaXMuc2V0TmV4dCgiZmxvdyIpO2lmKChhIT09LTEmJmE8dGhpcy5pbmRlbnROZXh0JiZzWzBdIT09IiMifHxhPT09MCYmKHMuc3RhcnRzV2l0aCgiLS0tIil8fHMuc3RhcnRzV2l0aCgiLi4uIikpJiZSMihzWzNdKSkmJiEoYT09PXRoaXMuaW5kZW50TmV4dC0xJiZ0aGlzLmZsb3dMZXZlbD09PTEmJihzWzBdPT09Il0ifHxzWzBdPT09In0iKSkpcmV0dXJuIHRoaXMuZmxvd0xldmVsPTAseWllbGQgYXgseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpO2xldCBuPTA7Zm9yKDtzW25dPT09IiwiOyluKz15aWVsZCp0aGlzLnB1c2hDb3VudCgxKSxuKz15aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApLHRoaXMuZmxvd0tleT0hMTtzd2l0Y2gobis9eWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpLHNbbl0pe2Nhc2Ugdm9pZCAwOnJldHVybiJmbG93IjtjYXNlIiMiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudChzLmxlbmd0aC1uKSwiZmxvdyI7Y2FzZSJ7IjpjYXNlIlsiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSx0aGlzLmZsb3dLZXk9ITEsdGhpcy5mbG93TGV2ZWwrPTEsImZsb3ciO2Nhc2UifSI6Y2FzZSJdIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksdGhpcy5mbG93S2V5PSEwLHRoaXMuZmxvd0xldmVsLT0xLHRoaXMuZmxvd0xldmVsPyJmbG93IjoiZG9jIjtjYXNlIioiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hVbnRpbCh6eGUpLCJmbG93IjtjYXNlJyInOmNhc2UiJyI6cmV0dXJuIHRoaXMuZmxvd0tleT0hMCx5aWVsZCp0aGlzLnBhcnNlUXVvdGVkU2NhbGFyKCk7Y2FzZSI6Ijp7bGV0IG89dGhpcy5jaGFyQXQoMSk7aWYodGhpcy5mbG93S2V5fHxSMihvKXx8bz09PSIsIilyZXR1cm4gdGhpcy5mbG93S2V5PSExLHlpZWxkKnRoaXMucHVzaENvdW50KDEpLHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCksImZsb3cifWRlZmF1bHQ6cmV0dXJuIHRoaXMuZmxvd0tleT0hMSx5aWVsZCp0aGlzLnBhcnNlUGxhaW5TY2FsYXIoKX19KnBhcnNlUXVvdGVkU2NhbGFyKCl7bGV0IGU9dGhpcy5jaGFyQXQoMCkscj10aGlzLmJ1ZmZlci5pbmRleE9mKGUsdGhpcy5wb3MrMSk7aWYoZT09PSInIilmb3IoO3IhPT0tMSYmdGhpcy5idWZmZXJbcisxXT09PSInIjspcj10aGlzLmJ1ZmZlci5pbmRleE9mKCInIixyKzIpO2Vsc2UgZm9yKDtyIT09LTE7KXtsZXQgbj0wO2Zvcig7dGhpcy5idWZmZXJbci0xLW5dPT09IlxcIjspbis9MTtpZihuJTI9PT0wKWJyZWFrO3I9dGhpcy5idWZmZXIuaW5kZXhPZignIicscisxKX1sZXQgYT10aGlzLmJ1ZmZlci5zdWJzdHJpbmcoMCxyKSxzPWEuaW5kZXhPZihgCmAsdGhpcy5wb3MpO2lmKHMhPT0tMSl7Zm9yKDtzIT09LTE7KXtsZXQgbj10aGlzLmNvbnRpbnVlU2NhbGFyKHMrMSk7aWYobj09PS0xKWJyZWFrO3M9YS5pbmRleE9mKGAKYCxuKX1zIT09LTEmJihyPXMtKGFbcy0xXT09PSJcciI/MjoxKSl9aWYocj09PS0xKXtpZighdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJxdW90ZWQtc2NhbGFyIik7cj10aGlzLmJ1ZmZlci5sZW5ndGh9cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgocisxLCExKSx0aGlzLmZsb3dMZXZlbD8iZmxvdyI6ImRvYyJ9KnBhcnNlQmxvY2tTY2FsYXJIZWFkZXIoKXt0aGlzLmJsb2NrU2NhbGFySW5kZW50PS0xLHRoaXMuYmxvY2tTY2FsYXJLZWVwPSExO2xldCBlPXRoaXMucG9zO2Zvcig7Oyl7bGV0IHI9dGhpcy5idWZmZXJbKytlXTtpZihyPT09IisiKXRoaXMuYmxvY2tTY2FsYXJLZWVwPSEwO2Vsc2UgaWYocj4iMCImJnI8PSI5Iil0aGlzLmJsb2NrU2NhbGFySW5kZW50PU51bWJlcihyKS0xO2Vsc2UgaWYociE9PSItIilicmVha31yZXR1cm4geWllbGQqdGhpcy5wdXNoVW50aWwocj0+UjIocil8fHI9PT0iIyIpfSpwYXJzZUJsb2NrU2NhbGFyKCl7bGV0IGU9dGhpcy5wb3MtMSxyPTAsYTtlOmZvcihsZXQgbj10aGlzLnBvczthPXRoaXMuYnVmZmVyW25dOysrbilzd2l0Y2goYSl7Y2FzZSIgIjpyKz0xO2JyZWFrO2Nhc2VgCmA6ZT1uLHI9MDticmVhaztjYXNlIlxyIjp7bGV0IG89dGhpcy5idWZmZXJbbisxXTtpZighbyYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dCgiYmxvY2stc2NhbGFyIik7aWYobz09PWAKYClicmVha31kZWZhdWx0OmJyZWFrIGV9aWYoIWEmJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXNjYWxhciIpO2lmKHI+PXRoaXMuaW5kZW50TmV4dCl7dGhpcy5ibG9ja1NjYWxhckluZGVudD09PS0xP3RoaXMuaW5kZW50TmV4dD1yOnRoaXMuaW5kZW50TmV4dD10aGlzLmJsb2NrU2NhbGFySW5kZW50Kyh0aGlzLmluZGVudE5leHQ9PT0wPzE6dGhpcy5pbmRlbnROZXh0KTtkb3tsZXQgbj10aGlzLmNvbnRpbnVlU2NhbGFyKGUrMSk7aWYobj09PS0xKWJyZWFrO2U9dGhpcy5idWZmZXIuaW5kZXhPZihgCmAsbil9d2hpbGUoZSE9PS0xKTtpZihlPT09LTEpe2lmKCF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXNjYWxhciIpO2U9dGhpcy5idWZmZXIubGVuZ3RofX1sZXQgcz1lKzE7Zm9yKGE9dGhpcy5idWZmZXJbc107YT09PSIgIjspYT10aGlzLmJ1ZmZlclsrK3NdO2lmKGE9PT0iCSIpe2Zvcig7YT09PSIJInx8YT09PSIgInx8YT09PSJcciJ8fGE9PT1gCmA7KWE9dGhpcy5idWZmZXJbKytzXTtlPXMtMX1lbHNlIGlmKCF0aGlzLmJsb2NrU2NhbGFyS2VlcClkb3tsZXQgbj1lLTEsbz10aGlzLmJ1ZmZlcltuXTtvPT09IlxyIiYmKG89dGhpcy5idWZmZXJbLS1uXSk7bGV0IGw9bjtmb3IoO289PT0iICI7KW89dGhpcy5idWZmZXJbLS1uXTtpZihvPT09YApgJiZuPj10aGlzLnBvcyYmbisxK3I+bCllPW47ZWxzZSBicmVha313aGlsZSghMCk7cmV0dXJuIHlpZWxkIGJoLHlpZWxkKnRoaXMucHVzaFRvSW5kZXgoZSsxLCEwKSx5aWVsZCp0aGlzLnBhcnNlTGluZVN0YXJ0KCl9KnBhcnNlUGxhaW5TY2FsYXIoKXtsZXQgZT10aGlzLmZsb3dMZXZlbD4wLHI9dGhpcy5wb3MtMSxhPXRoaXMucG9zLTEscztmb3IoO3M9dGhpcy5idWZmZXJbKythXTspaWYocz09PSI6Iil7bGV0IG49dGhpcy5idWZmZXJbYSsxXTtpZihSMihuKXx8ZSYmWW9lLmhhcyhuKSlicmVhaztyPWF9ZWxzZSBpZihSMihzKSl7bGV0IG49dGhpcy5idWZmZXJbYSsxXTtpZihzPT09IlxyIiYmKG49PT1gCmA/KGErPTEscz1gCmAsbj10aGlzLmJ1ZmZlclthKzFdKTpyPWEpLG49PT0iIyJ8fGUmJllvZS5oYXMobikpYnJlYWs7aWYocz09PWAKYCl7bGV0IG89dGhpcy5jb250aW51ZVNjYWxhcihhKzEpO2lmKG89PT0tMSlicmVhazthPU1hdGgubWF4KGEsby0yKX19ZWxzZXtpZihlJiZZb2UuaGFzKHMpKWJyZWFrO3I9YX1yZXR1cm4hcyYmIXRoaXMuYXRFbmQ/dGhpcy5zZXROZXh0KCJwbGFpbi1zY2FsYXIiKTooeWllbGQgYmgseWllbGQqdGhpcy5wdXNoVG9JbmRleChyKzEsITApLGU/ImZsb3ciOiJkb2MiKX0qcHVzaENvdW50KGUpe3JldHVybiBlPjA/KHlpZWxkIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcyxlKSx0aGlzLnBvcys9ZSxlKTowfSpwdXNoVG9JbmRleChlLHIpe2xldCBhPXRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zLGUpO3JldHVybiBhPyh5aWVsZCBhLHRoaXMucG9zKz1hLmxlbmd0aCxhLmxlbmd0aCk6KHImJih5aWVsZCIiKSwwKX0qcHVzaEluZGljYXRvcnMoKXtzd2l0Y2godGhpcy5jaGFyQXQoMCkpe2Nhc2UiISI6cmV0dXJuKHlpZWxkKnRoaXMucHVzaFRhZygpKSsoeWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSkrKHlpZWxkKnRoaXMucHVzaEluZGljYXRvcnMoKSk7Y2FzZSImIjpyZXR1cm4oeWllbGQqdGhpcy5wdXNoVW50aWwoenhlKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpKyh5aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCkpO2Nhc2UiLSI6Y2FzZSI/IjpjYXNlIjoiOntsZXQgZT10aGlzLmZsb3dMZXZlbD4wLHI9dGhpcy5jaGFyQXQoMSk7aWYoUjIocil8fGUmJllvZS5oYXMocikpcmV0dXJuIGU/dGhpcy5mbG93S2V5JiYodGhpcy5mbG93S2V5PSExKTp0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSsxLCh5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpKyh5aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCkpfX1yZXR1cm4gMH0qcHVzaFRhZygpe2lmKHRoaXMuY2hhckF0KDEpPT09IjwiKXtsZXQgZT10aGlzLnBvcysyLHI9dGhpcy5idWZmZXJbZV07Zm9yKDshUjIocikmJnIhPT0iPiI7KXI9dGhpcy5idWZmZXJbKytlXTtyZXR1cm4geWllbGQqdGhpcy5wdXNoVG9JbmRleChyPT09Ij4iP2UrMTplLCExKX1lbHNle2xldCBlPXRoaXMucG9zKzEscj10aGlzLmJ1ZmZlcltlXTtmb3IoO3I7KWlmKHZ1YS5oYXMocikpcj10aGlzLmJ1ZmZlclsrK2VdO2Vsc2UgaWYocj09PSIlIiYma0R0Lmhhcyh0aGlzLmJ1ZmZlcltlKzFdKSYma0R0Lmhhcyh0aGlzLmJ1ZmZlcltlKzJdKSlyPXRoaXMuYnVmZmVyW2UrPTNdO2Vsc2UgYnJlYWs7cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgoZSwhMSl9fSpwdXNoTmV3bGluZSgpe2xldCBlPXRoaXMuYnVmZmVyW3RoaXMucG9zXTtyZXR1cm4gZT09PWAKYD95aWVsZCp0aGlzLnB1c2hDb3VudCgxKTplPT09IlxyIiYmdGhpcy5jaGFyQXQoMSk9PT1gCmA/eWllbGQqdGhpcy5wdXNoQ291bnQoMik6MH0qcHVzaFNwYWNlcyhlKXtsZXQgcj10aGlzLnBvcy0xLGE7ZG8gYT10aGlzLmJ1ZmZlclsrK3JdO3doaWxlKGE9PT0iICJ8fGUmJmE9PT0iCSIpO2xldCBzPXItdGhpcy5wb3M7cmV0dXJuIHM+MCYmKHlpZWxkIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcyxzKSx0aGlzLnBvcz1yKSxzfSpwdXNoVW50aWwoZSl7bGV0IHI9dGhpcy5wb3MsYT10aGlzLmJ1ZmZlcltyXTtmb3IoOyFlKGEpOylhPXRoaXMuYnVmZmVyWysrcl07cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgociwhMSl9fX0pO3ZhciBTdSxUeGU9dSgoKT0+e1N1PWNsYXNze3N0YXRpY3tpKHRoaXMsIkxpbmVDb3VudGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmxpbmVTdGFydHM9W10sdGhpcy5hZGROZXdMaW5lPWU9PnRoaXMubGluZVN0YXJ0cy5wdXNoKGUpLHRoaXMubGluZVBvcz1lPT57bGV0IHI9MCxhPXRoaXMubGluZVN0YXJ0cy5sZW5ndGg7Zm9yKDtyPGE7KXtsZXQgbj1yK2E+PjE7dGhpcy5saW5lU3RhcnRzW25dPGU/cj1uKzE6YT1ufWlmKHRoaXMubGluZVN0YXJ0c1tyXT09PWUpcmV0dXJue2xpbmU6cisxLGNvbDoxfTtpZihyPT09MClyZXR1cm57bGluZTowLGNvbDplfTtsZXQgcz10aGlzLmxpbmVTdGFydHNbci0xXTtyZXR1cm57bGluZTpyLGNvbDplLXMrMX19fX19KTtmdW5jdGlvbiBNdSh0LGUpe2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7KytyKWlmKHRbcl0udHlwZT09PWUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gU0R0KHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXN3aXRjaCh0W2VdLnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjpicmVhaztkZWZhdWx0OnJldHVybiBlfXJldHVybi0xfWZ1bmN0aW9uIE1EdCh0KXtzd2l0Y2godD8udHlwZSl7Y2FzZSJhbGlhcyI6Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZmxvdy1jb2xsZWN0aW9uIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBLb2UodCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJkb2N1bWVudCI6cmV0dXJuIHQuc3RhcnQ7Y2FzZSJibG9jay1tYXAiOntsZXQgZT10Lml0ZW1zW3QuaXRlbXMubGVuZ3RoLTFdO3JldHVybiBlLnNlcD8/ZS5zdGFydH1jYXNlImJsb2NrLXNlcSI6cmV0dXJuIHQuaXRlbXNbdC5pdGVtcy5sZW5ndGgtMV0uc3RhcnQ7ZGVmYXVsdDpyZXR1cm5bXX19ZnVuY3Rpb24gaXgodCl7aWYodC5sZW5ndGg9PT0wKXJldHVybltdO2xldCBlPXQubGVuZ3RoO2U6Zm9yKDstLWU+PTA7KXN3aXRjaCh0W2VdLnR5cGUpe2Nhc2UiZG9jLXN0YXJ0IjpjYXNlImV4cGxpY2l0LWtleS1pbmQiOmNhc2UibWFwLXZhbHVlLWluZCI6Y2FzZSJzZXEtaXRlbS1pbmQiOmNhc2UibmV3bGluZSI6YnJlYWsgZX1mb3IoO3RbKytlXT8udHlwZT09PSJzcGFjZSI7KTtyZXR1cm4gdC5zcGxpY2UoZSx0Lmxlbmd0aCl9ZnVuY3Rpb24gQ0R0KHQpe2lmKHQuc3RhcnQudHlwZT09PSJmbG93LXNlcS1zdGFydCIpZm9yKGxldCBlIG9mIHQuaXRlbXMpZS5zZXAmJiFlLnZhbHVlJiYhTXUoZS5zdGFydCwiZXhwbGljaXQta2V5LWluZCIpJiYhTXUoZS5zZXAsIm1hcC12YWx1ZS1pbmQiKSYmKGUua2V5JiYoZS52YWx1ZT1lLmtleSksZGVsZXRlIGUua2V5LE1EdChlLnZhbHVlKT9lLnZhbHVlLmVuZD9BcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLnZhbHVlLmVuZCxlLnNlcCk6ZS52YWx1ZS5lbmQ9ZS5zZXA6QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS5zdGFydCxlLnNlcCksZGVsZXRlIGUuc2VwKX12YXIgdDQsTHhlPXUoKCk9PntHb2UoKTtfeGUoKTtpKE11LCJpbmNsdWRlc1Rva2VuIik7aShTRHQsImZpbmROb25FbXB0eUluZGV4Iik7aShNRHQsImlzRmxvd1Rva2VuIik7aShLb2UsImdldFByZXZQcm9wcyIpO2koaXgsImdldEZpcnN0S2V5U3RhcnRQcm9wcyIpO2koQ0R0LCJmaXhGbG93U2VxSXRlbXMiKTt0ND1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQYXJzZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmF0U2NhbGFyPSExLHRoaXMuaW5kZW50PTAsdGhpcy5vZmZzZXQ9MCx0aGlzLm9uS2V5TGluZT0hMSx0aGlzLnN0YWNrPVtdLHRoaXMuc291cmNlPSIiLHRoaXMudHlwZT0iIix0aGlzLmxleGVyPW5ldyBrdSx0aGlzLm9uTmV3TGluZT1lfSpwYXJzZShlLHI9ITEpe3RoaXMub25OZXdMaW5lJiZ0aGlzLm9mZnNldD09PTAmJnRoaXMub25OZXdMaW5lKDApO2ZvcihsZXQgYSBvZiB0aGlzLmxleGVyLmxleChlLHIpKXlpZWxkKnRoaXMubmV4dChhKTtyfHwoeWllbGQqdGhpcy5lbmQoKSl9Km5leHQoZSl7aWYodGhpcy5zb3VyY2U9ZSx0aGlzLmF0U2NhbGFyKXt0aGlzLmF0U2NhbGFyPSExLHlpZWxkKnRoaXMuc3RlcCgpLHRoaXMub2Zmc2V0Kz1lLmxlbmd0aDtyZXR1cm59bGV0IHI9V29lKGUpO2lmKHIpaWYocj09PSJzY2FsYXIiKXRoaXMuYXROZXdMaW5lPSExLHRoaXMuYXRTY2FsYXI9ITAsdGhpcy50eXBlPSJzY2FsYXIiO2Vsc2V7c3dpdGNoKHRoaXMudHlwZT1yLHlpZWxkKnRoaXMuc3RlcCgpLHIpe2Nhc2UibmV3bGluZSI6dGhpcy5hdE5ld0xpbmU9ITAsdGhpcy5pbmRlbnQ9MCx0aGlzLm9uTmV3TGluZSYmdGhpcy5vbk5ld0xpbmUodGhpcy5vZmZzZXQrZS5sZW5ndGgpO2JyZWFrO2Nhc2Uic3BhY2UiOnRoaXMuYXROZXdMaW5lJiZlWzBdPT09IiAiJiYodGhpcy5pbmRlbnQrPWUubGVuZ3RoKTticmVhaztjYXNlImV4cGxpY2l0LWtleS1pbmQiOmNhc2UibWFwLXZhbHVlLWluZCI6Y2FzZSJzZXEtaXRlbS1pbmQiOnRoaXMuYXROZXdMaW5lJiYodGhpcy5pbmRlbnQrPWUubGVuZ3RoKTticmVhaztjYXNlImRvYy1tb2RlIjpjYXNlImZsb3ctZXJyb3ItZW5kIjpyZXR1cm47ZGVmYXVsdDp0aGlzLmF0TmV3TGluZT0hMX10aGlzLm9mZnNldCs9ZS5sZW5ndGh9ZWxzZXtsZXQgYT1gTm90IGEgWUFNTCB0b2tlbjogJHtlfWA7eWllbGQqdGhpcy5wb3Aoe3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsbWVzc2FnZTphLHNvdXJjZTplfSksdGhpcy5vZmZzZXQrPWUubGVuZ3RofX0qZW5kKCl7Zm9yKDt0aGlzLnN0YWNrLmxlbmd0aD4wOyl5aWVsZCp0aGlzLnBvcCgpfWdldCBzb3VyY2VUb2tlbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHNvdXJjZTp0aGlzLnNvdXJjZX19KnN0ZXAoKXtsZXQgZT10aGlzLnBlZWsoMSk7aWYodGhpcy50eXBlPT09ImRvYy1lbmQiJiZlPy50eXBlIT09ImRvYy1lbmQiKXtmb3IoO3RoaXMuc3RhY2subGVuZ3RoPjA7KXlpZWxkKnRoaXMucG9wKCk7dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJkb2MtZW5kIixvZmZzZXQ6dGhpcy5vZmZzZXQsc291cmNlOnRoaXMuc291cmNlfSk7cmV0dXJufWlmKCFlKXJldHVybiB5aWVsZCp0aGlzLnN0cmVhbSgpO3N3aXRjaChlLnR5cGUpe2Nhc2UiZG9jdW1lbnQiOnJldHVybiB5aWVsZCp0aGlzLmRvY3VtZW50KGUpO2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5zY2FsYXIoZSk7Y2FzZSJibG9jay1zY2FsYXIiOnJldHVybiB5aWVsZCp0aGlzLmJsb2NrU2NhbGFyKGUpO2Nhc2UiYmxvY2stbWFwIjpyZXR1cm4geWllbGQqdGhpcy5ibG9ja01hcChlKTtjYXNlImJsb2NrLXNlcSI6cmV0dXJuIHlpZWxkKnRoaXMuYmxvY2tTZXF1ZW5jZShlKTtjYXNlImZsb3ctY29sbGVjdGlvbiI6cmV0dXJuIHlpZWxkKnRoaXMuZmxvd0NvbGxlY3Rpb24oZSk7Y2FzZSJkb2MtZW5kIjpyZXR1cm4geWllbGQqdGhpcy5kb2N1bWVudEVuZChlKX15aWVsZCp0aGlzLnBvcCgpfXBlZWsoZSl7cmV0dXJuIHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtZV19KnBvcChlKXtsZXQgcj1lPz90aGlzLnN0YWNrLnBvcCgpO2lmKCFyKXlpZWxke3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsc291cmNlOiIiLG1lc3NhZ2U6IlRyaWVkIHRvIHBvcCBhbiBlbXB0eSBzdGFjayJ9O2Vsc2UgaWYodGhpcy5zdGFjay5sZW5ndGg9PT0wKXlpZWxkIHI7ZWxzZXtsZXQgYT10aGlzLnBlZWsoMSk7c3dpdGNoKHIudHlwZT09PSJibG9jay1zY2FsYXIiP3IuaW5kZW50PSJpbmRlbnQiaW4gYT9hLmluZGVudDowOnIudHlwZT09PSJmbG93LWNvbGxlY3Rpb24iJiZhLnR5cGU9PT0iZG9jdW1lbnQiJiYoci5pbmRlbnQ9MCksci50eXBlPT09ImZsb3ctY29sbGVjdGlvbiImJkNEdChyKSxhLnR5cGUpe2Nhc2UiZG9jdW1lbnQiOmEudmFsdWU9cjticmVhaztjYXNlImJsb2NrLXNjYWxhciI6YS5wcm9wcy5wdXNoKHIpO2JyZWFrO2Nhc2UiYmxvY2stbWFwIjp7bGV0IHM9YS5pdGVtc1thLml0ZW1zLmxlbmd0aC0xXTtpZihzLnZhbHVlKXthLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpyLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwO3JldHVybn1lbHNlIGlmKHMuc2VwKXMudmFsdWU9cjtlbHNle09iamVjdC5hc3NpZ24ocyx7a2V5OnIsc2VwOltdfSksdGhpcy5vbktleUxpbmU9IXMuZXhwbGljaXRLZXk7cmV0dXJufWJyZWFrfWNhc2UiYmxvY2stc2VxIjp7bGV0IHM9YS5pdGVtc1thLml0ZW1zLmxlbmd0aC0xXTtzLnZhbHVlP2EuaXRlbXMucHVzaCh7c3RhcnQ6W10sdmFsdWU6cn0pOnMudmFsdWU9cjticmVha31jYXNlImZsb3ctY29sbGVjdGlvbiI6e2xldCBzPWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV07IXN8fHMudmFsdWU/YS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6cixzZXA6W119KTpzLnNlcD9zLnZhbHVlPXI6T2JqZWN0LmFzc2lnbihzLHtrZXk6cixzZXA6W119KTtyZXR1cm59ZGVmYXVsdDp5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMucG9wKHIpfWlmKChhLnR5cGU9PT0iZG9jdW1lbnQifHxhLnR5cGU9PT0iYmxvY2stbWFwInx8YS50eXBlPT09ImJsb2NrLXNlcSIpJiYoci50eXBlPT09ImJsb2NrLW1hcCJ8fHIudHlwZT09PSJibG9jay1zZXEiKSl7bGV0IHM9ci5pdGVtc1tyLml0ZW1zLmxlbmd0aC0xXTtzJiYhcy5zZXAmJiFzLnZhbHVlJiZzLnN0YXJ0Lmxlbmd0aD4wJiZTRHQocy5zdGFydCk9PT0tMSYmKHIuaW5kZW50PT09MHx8cy5zdGFydC5ldmVyeShuPT5uLnR5cGUhPT0iY29tbWVudCJ8fG4uaW5kZW50PHIuaW5kZW50KSkmJihhLnR5cGU9PT0iZG9jdW1lbnQiP2EuZW5kPXMuc3RhcnQ6YS5pdGVtcy5wdXNoKHtzdGFydDpzLnN0YXJ0fSksci5pdGVtcy5zcGxpY2UoLTEsMSkpfX19KnN0cmVhbSgpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiZGlyZWN0aXZlLWxpbmUiOnlpZWxke3R5cGU6ImRpcmVjdGl2ZSIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZTp0aGlzLnNvdXJjZX07cmV0dXJuO2Nhc2UiYnl0ZS1vcmRlci1tYXJrIjpjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6eWllbGQgdGhpcy5zb3VyY2VUb2tlbjtyZXR1cm47Y2FzZSJkb2MtbW9kZSI6Y2FzZSJkb2Mtc3RhcnQiOntsZXQgZT17dHlwZToiZG9jdW1lbnQiLG9mZnNldDp0aGlzLm9mZnNldCxzdGFydDpbXX07dGhpcy50eXBlPT09ImRvYy1zdGFydCImJmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKSx0aGlzLnN0YWNrLnB1c2goZSk7cmV0dXJufX15aWVsZHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6YFVuZXhwZWN0ZWQgJHt0aGlzLnR5cGV9IHRva2VuIGluIFlBTUwgc3RyZWFtYCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpkb2N1bWVudChlKXtpZihlLnZhbHVlKXJldHVybiB5aWVsZCp0aGlzLmxpbmVFbmQoZSk7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJkb2Mtc3RhcnQiOntTRHQoZS5zdGFydCkhPT0tMT8oeWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKSk6ZS5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybn1jYXNlImFuY2hvciI6Y2FzZSJ0YWciOmNhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjplLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWxldCByPXRoaXMuc3RhcnRCbG9ja1ZhbHVlKGUpO3I/dGhpcy5zdGFjay5wdXNoKHIpOnlpZWxke3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsbWVzc2FnZTpgVW5leHBlY3RlZCAke3RoaXMudHlwZX0gdG9rZW4gaW4gWUFNTCBkb2N1bWVudGAsc291cmNlOnRoaXMuc291cmNlfX0qc2NhbGFyKGUpe2lmKHRoaXMudHlwZT09PSJtYXAtdmFsdWUtaW5kIil7bGV0IHI9S29lKHRoaXMucGVlaygyKSksYT1peChyKSxzO2UuZW5kPyhzPWUuZW5kLHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxkZWxldGUgZS5lbmQpOnM9W3RoaXMuc291cmNlVG9rZW5dO2xldCBuPXt0eXBlOiJibG9jay1tYXAiLG9mZnNldDplLm9mZnNldCxpbmRlbnQ6ZS5pbmRlbnQsaXRlbXM6W3tzdGFydDphLGtleTplLHNlcDpzfV19O3RoaXMub25LZXlMaW5lPSEwLHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV09bn1lbHNlIHlpZWxkKnRoaXMubGluZUVuZChlKX0qYmxvY2tTY2FsYXIoZSl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOmUucHJvcHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzY2FsYXIiOmlmKGUuc291cmNlPXRoaXMuc291cmNlLHRoaXMuYXROZXdMaW5lPSEwLHRoaXMuaW5kZW50PTAsdGhpcy5vbk5ld0xpbmUpe2xldCByPXRoaXMuc291cmNlLmluZGV4T2YoYApgKSsxO2Zvcig7ciE9PTA7KXRoaXMub25OZXdMaW5lKHRoaXMub2Zmc2V0K3IpLHI9dGhpcy5zb3VyY2UuaW5kZXhPZihgCmAscikrMX15aWVsZCp0aGlzLnBvcCgpO2JyZWFrO2RlZmF1bHQ6eWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKX19KmJsb2NrTWFwKGUpe2xldCByPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMV07c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJuZXdsaW5lIjppZih0aGlzLm9uS2V5TGluZT0hMSxyLnZhbHVlKXtsZXQgYT0iZW5kImluIHIudmFsdWU/ci52YWx1ZS5lbmQ6dm9pZCAwOyhBcnJheS5pc0FycmF5KGEpP2FbYS5sZW5ndGgtMV06dm9pZCAwKT8udHlwZT09PSJjb21tZW50Ij9hPy5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSl9ZWxzZSByLnNlcD9yLnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOnIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjppZihyLnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZSBpZihyLnNlcClyLnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2Vsc2V7aWYodGhpcy5hdEluZGVudGVkQ29tbWVudChyLnN0YXJ0LGUuaW5kZW50KSl7bGV0IHM9ZS5pdGVtc1tlLml0ZW1zLmxlbmd0aC0yXT8udmFsdWU/LmVuZDtpZihBcnJheS5pc0FycmF5KHMpKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShzLHIuc3RhcnQpLHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnBvcCgpO3JldHVybn19ci5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pfXJldHVybn1pZih0aGlzLmluZGVudD49ZS5pbmRlbnQpe2xldCBhPSF0aGlzLm9uS2V5TGluZSYmdGhpcy5pbmRlbnQ9PT1lLmluZGVudCxzPWEmJihyLnNlcHx8ci5leHBsaWNpdEtleSkmJnRoaXMudHlwZSE9PSJzZXEtaXRlbS1pbmQiLG49W107aWYocyYmci5zZXAmJiFyLnZhbHVlKXtsZXQgbz1bXTtmb3IobGV0IGw9MDtsPHIuc2VwLmxlbmd0aDsrK2wpe2xldCBjPXIuc2VwW2xdO3N3aXRjaChjLnR5cGUpe2Nhc2UibmV3bGluZSI6by5wdXNoKGwpO2JyZWFrO2Nhc2Uic3BhY2UiOmJyZWFrO2Nhc2UiY29tbWVudCI6Yy5pbmRlbnQ+ZS5pbmRlbnQmJihvLmxlbmd0aD0wKTticmVhaztkZWZhdWx0Om8ubGVuZ3RoPTB9fW8ubGVuZ3RoPj0yJiYobj1yLnNlcC5zcGxpY2Uob1sxXSkpfXN3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiYW5jaG9yIjpjYXNlInRhZyI6c3x8ci52YWx1ZT8obi5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucHVzaCh7c3RhcnQ6bn0pLHRoaXMub25LZXlMaW5lPSEwKTpyLnNlcD9yLnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOnIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJleHBsaWNpdC1rZXktaW5kIjohci5zZXAmJiFyLmV4cGxpY2l0S2V5PyhyLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbiksci5leHBsaWNpdEtleT0hMCk6c3x8ci52YWx1ZT8obi5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucHVzaCh7c3RhcnQ6bixleHBsaWNpdEtleTohMH0pKTp0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXSxleHBsaWNpdEtleTohMH1dfSksdGhpcy5vbktleUxpbmU9ITA7cmV0dXJuO2Nhc2UibWFwLXZhbHVlLWluZCI6aWYoci5leHBsaWNpdEtleSlpZihyLnNlcClpZihyLnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2UgaWYoTXUoci5zZXAsIm1hcC12YWx1ZS1pbmQiKSl0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Om4sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfSk7ZWxzZSBpZihNRHQoci5rZXkpJiYhTXUoci5zZXAsIm5ld2xpbmUiKSl7bGV0IG89aXgoci5zdGFydCksbD1yLmtleSxjPXIuc2VwO2MucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxkZWxldGUgci5rZXksZGVsZXRlIHIuc2VwLHRoaXMuc3RhY2sucHVzaCh7dHlwZToiYmxvY2stbWFwIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6byxrZXk6bCxzZXA6Y31dfSl9ZWxzZSBuLmxlbmd0aD4wP3Iuc2VwPXIuc2VwLmNvbmNhdChuLHRoaXMuc291cmNlVG9rZW4pOnIuc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik7ZWxzZSBpZihNdShyLnN0YXJ0LCJuZXdsaW5lIikpT2JqZWN0LmFzc2lnbihyLHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtsZXQgbz1peChyLnN0YXJ0KTt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Om8sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfSl9ZWxzZSByLnNlcD9yLnZhbHVlfHxzP2UuaXRlbXMucHVzaCh7c3RhcnQ6bixrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk6TXUoci5zZXAsIm1hcC12YWx1ZS1pbmQiKT90aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pOnIuc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik6T2JqZWN0LmFzc2lnbihyLHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7dGhpcy5vbktleUxpbmU9ITA7cmV0dXJuO2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjp7bGV0IG89dGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7c3x8ci52YWx1ZT8oZS5pdGVtcy5wdXNoKHtzdGFydDpuLGtleTpvLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwKTpyLnNlcD90aGlzLnN0YWNrLnB1c2gobyk6KE9iamVjdC5hc3NpZ24ocix7a2V5Om8sc2VwOltdfSksdGhpcy5vbktleUxpbmU9ITApO3JldHVybn1kZWZhdWx0OntsZXQgbz10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihvKXtpZihvLnR5cGU9PT0iYmxvY2stc2VxIil7aWYoIXIuZXhwbGljaXRLZXkmJnIuc2VwJiYhTXUoci5zZXAsIm5ld2xpbmUiKSl7eWllbGQqdGhpcy5wb3Aoe3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsbWVzc2FnZToiVW5leHBlY3RlZCBibG9jay1zZXEtaW5kIG9uIHNhbWUgbGluZSB3aXRoIGtleSIsc291cmNlOnRoaXMuc291cmNlfSk7cmV0dXJufX1lbHNlIGEmJmUuaXRlbXMucHVzaCh7c3RhcnQ6bn0pO3RoaXMuc3RhY2sucHVzaChvKTtyZXR1cm59fX19eWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKX0qYmxvY2tTZXF1ZW5jZShlKXtsZXQgcj1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UibmV3bGluZSI6aWYoci52YWx1ZSl7bGV0IGE9ImVuZCJpbiByLnZhbHVlP3IudmFsdWUuZW5kOnZvaWQgMDsoQXJyYXkuaXNBcnJheShhKT9hW2EubGVuZ3RoLTFdOnZvaWQgMCk/LnR5cGU9PT0iY29tbWVudCI/YT8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pfWVsc2Ugci5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybjtjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmlmKHIudmFsdWUpZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTtlbHNle2lmKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQoci5zdGFydCxlLmluZGVudCkpe2xldCBzPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMl0/LnZhbHVlPy5lbmQ7aWYoQXJyYXkuaXNBcnJheShzKSl7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkocyxyLnN0YXJ0KSxzLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZS5pdGVtcy5wb3AoKTtyZXR1cm59fXIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKX1yZXR1cm47Y2FzZSJhbmNob3IiOmNhc2UidGFnIjppZihyLnZhbHVlfHx0aGlzLmluZGVudDw9ZS5pbmRlbnQpYnJlYWs7ci5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybjtjYXNlInNlcS1pdGVtLWluZCI6aWYodGhpcy5pbmRlbnQhPT1lLmluZGVudClicmVhaztyLnZhbHVlfHxNdShyLnN0YXJ0LCJzZXEtaXRlbS1pbmQiKT9lLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pOnIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm59aWYodGhpcy5pbmRlbnQ+ZS5pbmRlbnQpe2xldCBhPXRoaXMuc3RhcnRCbG9ja1ZhbHVlKGUpO2lmKGEpe3RoaXMuc3RhY2sucHVzaChhKTtyZXR1cm59fXlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCl9KmZsb3dDb2xsZWN0aW9uKGUpe2xldCByPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMV07aWYodGhpcy50eXBlPT09ImZsb3ctZXJyb3ItZW5kIil7bGV0IGE7ZG8geWllbGQqdGhpcy5wb3AoKSxhPXRoaXMucGVlaygxKTt3aGlsZShhPy50eXBlPT09ImZsb3ctY29sbGVjdGlvbiIpfWVsc2UgaWYoZS5lbmQubGVuZ3RoPT09MCl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJjb21tYSI6Y2FzZSJleHBsaWNpdC1rZXktaW5kIjohcnx8ci5zZXA/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTpyLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2UibWFwLXZhbHVlLWluZCI6IXJ8fHIudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk6ci5zZXA/ci5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTpPYmplY3QuYXNzaWduKHIse2tleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtyZXR1cm47Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOmNhc2UiYW5jaG9yIjpjYXNlInRhZyI6IXJ8fHIudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTpyLnNlcD9yLnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOnIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJhbGlhcyI6Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOntsZXQgcz10aGlzLmZsb3dTY2FsYXIodGhpcy50eXBlKTshcnx8ci52YWx1ZT9lLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpzLHNlcDpbXX0pOnIuc2VwP3RoaXMuc3RhY2sucHVzaChzKTpPYmplY3QuYXNzaWduKHIse2tleTpzLHNlcDpbXX0pO3JldHVybn1jYXNlImZsb3ctbWFwLWVuZCI6Y2FzZSJmbG93LXNlcS1lbmQiOmUuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWxldCBhPXRoaXMuc3RhcnRCbG9ja1ZhbHVlKGUpO2E/dGhpcy5zdGFjay5wdXNoKGEpOih5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpKX1lbHNle2xldCBhPXRoaXMucGVlaygyKTtpZihhLnR5cGU9PT0iYmxvY2stbWFwIiYmKHRoaXMudHlwZT09PSJtYXAtdmFsdWUtaW5kIiYmYS5pbmRlbnQ9PT1lLmluZGVudHx8dGhpcy50eXBlPT09Im5ld2xpbmUiJiYhYS5pdGVtc1thLml0ZW1zLmxlbmd0aC0xXS5zZXApKXlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCk7ZWxzZSBpZih0aGlzLnR5cGU9PT0ibWFwLXZhbHVlLWluZCImJmEudHlwZSE9PSJmbG93LWNvbGxlY3Rpb24iKXtsZXQgcz1Lb2UoYSksbj1peChzKTtDRHQoZSk7bGV0IG89ZS5lbmQuc3BsaWNlKDEsZS5lbmQubGVuZ3RoKTtvLnB1c2godGhpcy5zb3VyY2VUb2tlbik7bGV0IGw9e3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OmUub2Zmc2V0LGluZGVudDplLmluZGVudCxpdGVtczpbe3N0YXJ0Om4sa2V5OmUsc2VwOm99XX07dGhpcy5vbktleUxpbmU9ITAsdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXT1sfWVsc2UgeWllbGQqdGhpcy5saW5lRW5kKGUpfX1mbG93U2NhbGFyKGUpe2lmKHRoaXMub25OZXdMaW5lKXtsZXQgcj10aGlzLnNvdXJjZS5pbmRleE9mKGAKYCkrMTtmb3IoO3IhPT0wOyl0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCtyKSxyPXRoaXMuc291cmNlLmluZGV4T2YoYApgLHIpKzF9cmV0dXJue3R5cGU6ZSxvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHNvdXJjZTp0aGlzLnNvdXJjZX19c3RhcnRCbG9ja1ZhbHVlKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpyZXR1cm4gdGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7Y2FzZSJibG9jay1zY2FsYXItaGVhZGVyIjpyZXR1cm57dHlwZToiYmxvY2stc2NhbGFyIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHByb3BzOlt0aGlzLnNvdXJjZVRva2VuXSxzb3VyY2U6IiJ9O2Nhc2UiZmxvdy1tYXAtc3RhcnQiOmNhc2UiZmxvdy1zZXEtc3RhcnQiOnJldHVybnt0eXBlOiJmbG93LWNvbGxlY3Rpb24iLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsc3RhcnQ6dGhpcy5zb3VyY2VUb2tlbixpdGVtczpbXSxlbmQ6W119O2Nhc2Uic2VxLWl0ZW0taW5kIjpyZXR1cm57dHlwZToiYmxvY2stc2VxIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfV19O2Nhc2UiZXhwbGljaXQta2V5LWluZCI6e3RoaXMub25LZXlMaW5lPSEwO2xldCByPUtvZShlKSxhPWl4KHIpO3JldHVybiBhLnB1c2godGhpcy5zb3VyY2VUb2tlbikse3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OmEsZXhwbGljaXRLZXk6ITB9XX19Y2FzZSJtYXAtdmFsdWUtaW5kIjp7dGhpcy5vbktleUxpbmU9ITA7bGV0IHI9S29lKGUpLGE9aXgocik7cmV0dXJue3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OmEsa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfX19cmV0dXJuIG51bGx9YXRJbmRlbnRlZENvbW1lbnQoZSxyKXtyZXR1cm4gdGhpcy50eXBlIT09ImNvbW1lbnQifHx0aGlzLmluZGVudDw9cj8hMTplLmV2ZXJ5KGE9PmEudHlwZT09PSJuZXdsaW5lInx8YS50eXBlPT09InNwYWNlIil9KmRvY3VtZW50RW5kKGUpe3RoaXMudHlwZSE9PSJkb2MtbW9kZSImJihlLmVuZD9lLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuZW5kPVt0aGlzLnNvdXJjZVRva2VuXSx0aGlzLnR5cGU9PT0ibmV3bGluZSImJih5aWVsZCp0aGlzLnBvcCgpKSl9KmxpbmVFbmQoZSl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJjb21tYSI6Y2FzZSJkb2Mtc3RhcnQiOmNhc2UiZG9jLWVuZCI6Y2FzZSJmbG93LXNlcS1lbmQiOmNhc2UiZmxvdy1tYXAtZW5kIjpjYXNlIm1hcC12YWx1ZS1pbmQiOnlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCk7YnJlYWs7Y2FzZSJuZXdsaW5lIjp0aGlzLm9uS2V5TGluZT0hMTtkZWZhdWx0OmUuZW5kP2UuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik6ZS5lbmQ9W3RoaXMuc291cmNlVG9rZW5dLHRoaXMudHlwZT09PSJuZXdsaW5lIiYmKHlpZWxkKnRoaXMucG9wKCkpfX19fSk7ZnVuY3Rpb24gekR0KHQpe2xldCBlPXQucHJldHR5RXJyb3JzIT09ITE7cmV0dXJue2xpbmVDb3VudGVyOnQubGluZUNvdW50ZXJ8fGUmJm5ldyBTdXx8bnVsbCxwcmV0dHlFcnJvcnM6ZX19ZnVuY3Rpb24gWm9lKHQsZT17fSl7bGV0e2xpbmVDb3VudGVyOnIscHJldHR5RXJyb3JzOmF9PXpEdChlKSxzPW5ldyB0NChyPy5hZGROZXdMaW5lKSxuPW5ldyBKZChlKSxvPUFycmF5LmZyb20obi5jb21wb3NlKHMucGFyc2UodCkpKTtpZihhJiZyKWZvcihsZXQgbCBvZiBvKWwuZXJyb3JzLmZvckVhY2goWGIodCxyKSksbC53YXJuaW5ncy5mb3JFYWNoKFhiKHQscikpO3JldHVybiBvLmxlbmd0aD4wP286T2JqZWN0LmFzc2lnbihbXSx7ZW1wdHk6ITB9LG4uc3RyZWFtSW5mbygpKX1mdW5jdGlvbiBnTSh0LGU9e30pe2xldHtsaW5lQ291bnRlcjpyLHByZXR0eUVycm9yczphfT16RHQoZSkscz1uZXcgdDQocj8uYWRkTmV3TGluZSksbj1uZXcgSmQoZSksbz1udWxsO2ZvcihsZXQgbCBvZiBuLmNvbXBvc2Uocy5wYXJzZSh0KSwhMCx0Lmxlbmd0aCkpaWYoIW8pbz1sO2Vsc2UgaWYoby5vcHRpb25zLmxvZ0xldmVsIT09InNpbGVudCIpe28uZXJyb3JzLnB1c2gobmV3IElvKGwucmFuZ2Uuc2xpY2UoMCwyKSwiTVVMVElQTEVfRE9DUyIsIlNvdXJjZSBjb250YWlucyBtdWx0aXBsZSBkb2N1bWVudHM7IHBsZWFzZSB1c2UgWUFNTC5wYXJzZUFsbERvY3VtZW50cygpIikpO2JyZWFrfXJldHVybiBhJiZyJiYoby5lcnJvcnMuZm9yRWFjaChYYih0LHIpKSxvLndhcm5pbmdzLmZvckVhY2goWGIodCxyKSkpLG99ZnVuY3Rpb24gUW9lKHQsZSxyKXtsZXQgYTt0eXBlb2YgZT09ImZ1bmN0aW9uIj9hPWU6cj09PXZvaWQgMCYmZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYocj1lKTtsZXQgcz1nTSh0LHIpO2lmKCFzKXJldHVybiBudWxsO2lmKHMud2FybmluZ3MuZm9yRWFjaChuPT5HUyhzLm9wdGlvbnMubG9nTGV2ZWwsbikpLHMuZXJyb3JzLmxlbmd0aD4wKXtpZihzLm9wdGlvbnMubG9nTGV2ZWwhPT0ic2lsZW50Iil0aHJvdyBzLmVycm9yc1swXTtzLmVycm9ycz1bXX1yZXR1cm4gcy50b0pTKE9iamVjdC5hc3NpZ24oe3Jldml2ZXI6YX0scikpfWZ1bmN0aW9uIFhvZSh0LGUscil7bGV0IGE9bnVsbDtpZih0eXBlb2YgZT09ImZ1bmN0aW9uInx8QXJyYXkuaXNBcnJheShlKT9hPWU6cj09PXZvaWQgMCYmZSYmKHI9ZSksdHlwZW9mIHI9PSJzdHJpbmciJiYocj1yLmxlbmd0aCksdHlwZW9mIHI9PSJudW1iZXIiKXtsZXQgcz1NYXRoLnJvdW5kKHIpO3I9czwxP3ZvaWQgMDpzPjg/e2luZGVudDo4fTp7aW5kZW50OnN9fWlmKHQ9PT12b2lkIDApe2xldHtrZWVwVW5kZWZpbmVkOnN9PXI/P2U/P3t9O2lmKCFzKXJldHVybn1yZXR1cm4geDEodCkmJiFhP3QudG9TdHJpbmcocik6bmV3IEVsKHQsYSxyKS50b1N0cmluZyhyKX12YXIgX0R0PXUoKCk9Pnt2eGUoKTtvTSgpO2xNKCk7RWJlKCk7ZGEoKTtUeGUoKTtMeGUoKTtpKHpEdCwicGFyc2VPcHRpb25zIik7aShab2UsInBhcnNlQWxsRG9jdW1lbnRzIik7aShnTSwicGFyc2VEb2N1bWVudCIpO2koUW9lLCJwYXJzZSIpO2koWG9lLCJzdHJpbmdpZnkiKX0pO3ZhciBEeGU9e307VmUoRHhlLHtBbGlhczooKT0+TGwsQ1NUOigpPT5tTSxDb21wb3NlcjooKT0+SmQsRG9jdW1lbnQ6KCk9PkVsLExleGVyOigpPT5rdSxMaW5lQ291bnRlcjooKT0+U3UsUGFpcjooKT0+bmksUGFyc2VyOigpPT50NCxTY2FsYXI6KCk9PlN0LFNjaGVtYTooKT0+dnUsWUFNTEVycm9yOigpPT55dSxZQU1MTWFwOigpPT54aSxZQU1MUGFyc2VFcnJvcjooKT0+SW8sWUFNTFNlcTooKT0+cXMsWUFNTFdhcm5pbmc6KCk9Pnd1LGlzQWxpYXM6KCk9PmIxLGlzQ29sbGVjdGlvbjooKT0+Y2EsaXNEb2N1bWVudDooKT0+eDEsaXNNYXA6KCk9PnYxLGlzTm9kZTooKT0+UHIsaXNQYWlyOigpPT5fcixpc1NjYWxhcjooKT0+dXIsaXNTZXE6KCk9PnkxLHBhcnNlOigpPT5Rb2UscGFyc2VBbGxEb2N1bWVudHM6KCk9PlpvZSxwYXJzZURvY3VtZW50OigpPT5nTSxzdHJpbmdpZnk6KCk9PlhvZSx2aXNpdDooKT0+ajEsdmlzaXRBc3luYzooKT0+ZGh9KTt2YXIgJHhlPXUoKCk9Pnt2eGUoKTtvTSgpO2l4ZSgpO2xNKCk7UlMoKTtkYSgpO211KCk7dnMoKTtndSgpO2J1KCk7R29lKCk7X3hlKCk7VHhlKCk7THhlKCk7X0R0KCk7TlMoKX0pO3ZhciB4aD17fTtWZSh4aCx7QWxpYXM6KCk9PkxsLENTVDooKT0+bU0sQ29tcG9zZXI6KCk9PkpkLERvY3VtZW50OigpPT5FbCxMZXhlcjooKT0+a3UsTGluZUNvdW50ZXI6KCk9PlN1LFBhaXI6KCk9Pm5pLFBhcnNlcjooKT0+dDQsU2NhbGFyOigpPT5TdCxTY2hlbWE6KCk9PnZ1LFlBTUxFcnJvcjooKT0+eXUsWUFNTE1hcDooKT0+eGksWUFNTFBhcnNlRXJyb3I6KCk9PklvLFlBTUxTZXE6KCk9PnFzLFlBTUxXYXJuaW5nOigpPT53dSxkZWZhdWx0OigpPT53dWEsaXNBbGlhczooKT0+YjEsaXNDb2xsZWN0aW9uOigpPT5jYSxpc0RvY3VtZW50OigpPT54MSxpc01hcDooKT0+djEsaXNOb2RlOigpPT5Qcixpc1BhaXI6KCk9Pl9yLGlzU2NhbGFyOigpPT51cixpc1NlcTooKT0+eTEscGFyc2U6KCk9PlFvZSxwYXJzZUFsbERvY3VtZW50czooKT0+Wm9lLHBhcnNlRG9jdW1lbnQ6KCk9PmdNLHN0cmluZ2lmeTooKT0+WG9lLHZpc2l0OigpPT5qMSx2aXNpdEFzeW5jOigpPT5kaH0pO3ZhciB3dWEsVER0PXUoKCk9PnskeGUoKTskeGUoKTt3dWE9RHhlfSk7dmFyIExEdD11KCgpPT57VER0KCl9KTt2YXIgYk09e307VmUoYk0se2dldFlhbWxEb2NGcm9tU3RyaW5nOigpPT5DdWEsb2JqZWN0VG9ZYW1sU3RyaW5nOigpPT5NdWEseWFtbFN0cmluZ1RvT2JqZWN0OigpPT5TdWF9KTt2YXIgU3VhLE11YSxDdWEsRER0PXUoKCk9PntMRHQoKTtTdWE9aShhc3luYyB0PT54aC5wYXJzZSh0KSwieWFtbFN0cmluZ1RvT2JqZWN0IiksTXVhPWkoYXN5bmMgdD0+eGguc3RyaW5naWZ5KHQpLCJvYmplY3RUb1lhbWxTdHJpbmciKSxDdWE9aShhc3luYyB0PT54aC5wYXJzZURvY3VtZW50KHQpLCJnZXRZYW1sRG9jRnJvbVN0cmluZyIpfSk7ZnVuY3Rpb24gQXhlKHQpe2lmKHQpdGhyb3cgdH12YXIgJER0PXUoKCk9PntpKEF4ZSwiYmFpbCIpfSk7dmFyIEJEdD1OdCgoa1ZpLEZEdCk9PnsidXNlIHN0cmljdCI7dmFyIEpvZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEFEdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLEVEdD1PYmplY3QuZGVmaW5lUHJvcGVydHksSUR0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsUER0PWkoZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBBcnJheS5pc0FycmF5PT0iZnVuY3Rpb24iP0FycmF5LmlzQXJyYXkoZSk6QUR0LmNhbGwoZSk9PT0iW29iamVjdCBBcnJheV0ifSwiaXNBcnJheSIpLE5EdD1pKGZ1bmN0aW9uKGUpe2lmKCFlfHxBRHQuY2FsbChlKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO3ZhciByPUpvZS5jYWxsKGUsImNvbnN0cnVjdG9yIiksYT1lLmNvbnN0cnVjdG9yJiZlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSYmSm9lLmNhbGwoZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKTtpZihlLmNvbnN0cnVjdG9yJiYhciYmIWEpcmV0dXJuITE7dmFyIHM7Zm9yKHMgaW4gZSk7cmV0dXJuIHR5cGVvZiBzPiJ1Inx8Sm9lLmNhbGwoZSxzKX0sImlzUGxhaW5PYmplY3QiKSxPRHQ9aShmdW5jdGlvbihlLHIpe0VEdCYmci5uYW1lPT09Il9fcHJvdG9fXyI/RUR0KGUsci5uYW1lLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyLm5ld1ZhbHVlLHdyaXRhYmxlOiEwfSk6ZVtyLm5hbWVdPXIubmV3VmFsdWV9LCJzZXRQcm9wZXJ0eSIpLFJEdD1pKGZ1bmN0aW9uKGUscil7aWYocj09PSJfX3Byb3RvX18iKWlmKEpvZS5jYWxsKGUscikpe2lmKElEdClyZXR1cm4gSUR0KGUscikudmFsdWV9ZWxzZSByZXR1cm47cmV0dXJuIGVbcl19LCJnZXRQcm9wZXJ0eSIpO0ZEdC5leHBvcnRzPWkoZnVuY3Rpb24gdCgpe3ZhciBlLHIsYSxzLG4sbyxsPWFyZ3VtZW50c1swXSxjPTEsZD1hcmd1bWVudHMubGVuZ3RoLGY9ITE7Zm9yKHR5cGVvZiBsPT0iYm9vbGVhbiImJihmPWwsbD1hcmd1bWVudHNbMV18fHt9LGM9MiksKGw9PW51bGx8fHR5cGVvZiBsIT0ib2JqZWN0IiYmdHlwZW9mIGwhPSJmdW5jdGlvbiIpJiYobD17fSk7YzxkOysrYylpZihlPWFyZ3VtZW50c1tjXSxlIT1udWxsKWZvcihyIGluIGUpYT1SRHQobCxyKSxzPVJEdChlLHIpLGwhPT1zJiYoZiYmcyYmKE5EdChzKXx8KG49UER0KHMpKSk/KG4/KG49ITEsbz1hJiZQRHQoYSk/YTpbXSk6bz1hJiZORHQoYSk/YTp7fSxPRHQobCx7bmFtZTpyLG5ld1ZhbHVlOnQoZixvLHMpfSkpOnR5cGVvZiBzPCJ1IiYmT0R0KGwse25hbWU6cixuZXdWYWx1ZTpzfSkpO3JldHVybiBsfSwiZXh0ZW5kIil9KTt2YXIgQ3U9dSgoKT0+e30pO2Z1bmN0aW9uIHhNKHQpe2lmKHR5cGVvZiB0IT0ib2JqZWN0Inx8dD09PW51bGwpcmV0dXJuITE7bGV0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB0KSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gdCl9dmFyIEhEdD11KCgpPT57aSh4TSwiaXNQbGFpbk9iamVjdCIpfSk7ZnVuY3Rpb24gRXhlKCl7bGV0IHQ9W10sZT17cnVuOnIsdXNlOmF9O3JldHVybiBlO2Z1bmN0aW9uIHIoLi4ucyl7bGV0IG49LTEsbz1zLnBvcCgpO2lmKHR5cGVvZiBvIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uIGFzIGxhc3QgYXJndW1lbnQsIG5vdCAiK28pO2wobnVsbCwuLi5zKTtmdW5jdGlvbiBsKGMsLi4uZCl7bGV0IGY9dFsrK25dLHA9LTE7aWYoYyl7byhjKTtyZXR1cm59Zm9yKDsrK3A8cy5sZW5ndGg7KShkW3BdPT09bnVsbHx8ZFtwXT09PXZvaWQgMCkmJihkW3BdPXNbcF0pO3M9ZCxmP3FEdChmLGwpKC4uLmQpOm8obnVsbCwuLi5kKX1pKGwsIm5leHQiKX1mdW5jdGlvbiBhKHMpe2lmKHR5cGVvZiBzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBtaWRkZWx3YXJlYCB0byBiZSBhIGZ1bmN0aW9uLCBub3QgIitzKTtyZXR1cm4gdC5wdXNoKHMpLGV9fWZ1bmN0aW9uIHFEdCh0LGUpe2xldCByO3JldHVybiBhO2Z1bmN0aW9uIGEoLi4ubyl7bGV0IGw9dC5sZW5ndGg+by5sZW5ndGgsYztsJiZvLnB1c2gocyk7dHJ5e2M9dC5hcHBseSh0aGlzLG8pfWNhdGNoKGQpe2xldCBmPWQ7aWYobCYmcil0aHJvdyBmO3JldHVybiBzKGYpfWx8fChjJiZjLnRoZW4mJnR5cGVvZiBjLnRoZW49PSJmdW5jdGlvbiI/Yy50aGVuKG4scyk6YyBpbnN0YW5jZW9mIEVycm9yP3MoYyk6bihjKSl9ZnVuY3Rpb24gcyhvLC4uLmwpe3J8fChyPSEwLGUobywuLi5sKSl9ZnVuY3Rpb24gbihvKXtzKG51bGwsbyl9fXZhciBWRHQ9dSgoKT0+e2koRXhlLCJ0cm91Z2giKTtpKHFEdCwid3JhcCIpfSk7dmFyIGpEdD11KCgpPT57VkR0KCl9KTtmdW5jdGlvbiB6dSh0KXtyZXR1cm4hdHx8dHlwZW9mIHQhPSJvYmplY3QiPyIiOiJwb3NpdGlvbiJpbiB0fHwidHlwZSJpbiB0P1VEdCh0LnBvc2l0aW9uKToic3RhcnQiaW4gdHx8ImVuZCJpbiB0P1VEdCh0KToibGluZSJpbiB0fHwiY29sdW1uImluIHQ/SXhlKHQpOiIifWZ1bmN0aW9uIEl4ZSh0KXtyZXR1cm4gV0R0KHQmJnQubGluZSkrIjoiK1dEdCh0JiZ0LmNvbHVtbil9ZnVuY3Rpb24gVUR0KHQpe3JldHVybiBJeGUodCYmdC5zdGFydCkrIi0iK0l4ZSh0JiZ0LmVuZCl9ZnVuY3Rpb24gV0R0KHQpe3JldHVybiB0JiZ0eXBlb2YgdD09Im51bWJlciI/dDoxfXZhciBHRHQ9dSgoKT0+e2koenUsInN0cmluZ2lmeVBvc2l0aW9uIik7aShJeGUsInBvaW50Iik7aShVRHQsInBvc2l0aW9uIik7aShXRHQsImluZGV4Iil9KTt2YXIgUHhlPXUoKCk9PntHRHQoKX0pO3ZhciB1bixZRHQ9dSgoKT0+e1B4ZSgpO3VuPWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje2kodGhpcywiVkZpbGVNZXNzYWdlIil9Y29uc3RydWN0b3IoZSxyLGEpe3N1cGVyKCksdHlwZW9mIHI9PSJzdHJpbmciJiYoYT1yLHI9dm9pZCAwKTtsZXQgcz0iIixuPXt9LG89ITE7aWYociYmKCJsaW5lImluIHImJiJjb2x1bW4iaW4gcj9uPXtwbGFjZTpyfToic3RhcnQiaW4gciYmImVuZCJpbiByP249e3BsYWNlOnJ9OiJ0eXBlImluIHI/bj17YW5jZXN0b3JzOltyXSxwbGFjZTpyLnBvc2l0aW9ufTpuPXsuLi5yfSksdHlwZW9mIGU9PSJzdHJpbmciP3M9ZTohbi5jYXVzZSYmZSYmKG89ITAscz1lLm1lc3NhZ2Usbi5jYXVzZT1lKSwhbi5ydWxlSWQmJiFuLnNvdXJjZSYmdHlwZW9mIGE9PSJzdHJpbmciKXtsZXQgYz1hLmluZGV4T2YoIjoiKTtjPT09LTE/bi5ydWxlSWQ9YToobi5zb3VyY2U9YS5zbGljZSgwLGMpLG4ucnVsZUlkPWEuc2xpY2UoYysxKSl9aWYoIW4ucGxhY2UmJm4uYW5jZXN0b3JzJiZuLmFuY2VzdG9ycyl7bGV0IGM9bi5hbmNlc3RvcnNbbi5hbmNlc3RvcnMubGVuZ3RoLTFdO2MmJihuLnBsYWNlPWMucG9zaXRpb24pfWxldCBsPW4ucGxhY2UmJiJzdGFydCJpbiBuLnBsYWNlP24ucGxhY2Uuc3RhcnQ6bi5wbGFjZTt0aGlzLmFuY2VzdG9ycz1uLmFuY2VzdG9yc3x8dm9pZCAwLHRoaXMuY2F1c2U9bi5jYXVzZXx8dm9pZCAwLHRoaXMuY29sdW1uPWw/bC5jb2x1bW46dm9pZCAwLHRoaXMuZmF0YWw9dm9pZCAwLHRoaXMuZmlsZT0iIix0aGlzLm1lc3NhZ2U9cyx0aGlzLmxpbmU9bD9sLmxpbmU6dm9pZCAwLHRoaXMubmFtZT16dShuLnBsYWNlKXx8IjE6MSIsdGhpcy5wbGFjZT1uLnBsYWNlfHx2b2lkIDAsdGhpcy5yZWFzb249dGhpcy5tZXNzYWdlLHRoaXMucnVsZUlkPW4ucnVsZUlkfHx2b2lkIDAsdGhpcy5zb3VyY2U9bi5zb3VyY2V8fHZvaWQgMCx0aGlzLnN0YWNrPW8mJm4uY2F1c2UmJnR5cGVvZiBuLmNhdXNlLnN0YWNrPT0ic3RyaW5nIj9uLmNhdXNlLnN0YWNrOiIiLHRoaXMuYWN0dWFsPXZvaWQgMCx0aGlzLmV4cGVjdGVkPXZvaWQgMCx0aGlzLm5vdGU9dm9pZCAwLHRoaXMudXJsPXZvaWQgMH19O3VuLnByb3RvdHlwZS5maWxlPSIiLHVuLnByb3RvdHlwZS5uYW1lPSIiLHVuLnByb3RvdHlwZS5yZWFzb249IiIsdW4ucHJvdG90eXBlLm1lc3NhZ2U9IiIsdW4ucHJvdG90eXBlLnN0YWNrPSIiLHVuLnByb3RvdHlwZS5jb2x1bW49dm9pZCAwLHVuLnByb3RvdHlwZS5saW5lPXZvaWQgMCx1bi5wcm90b3R5cGUuYW5jZXN0b3JzPXZvaWQgMCx1bi5wcm90b3R5cGUuY2F1c2U9dm9pZCAwLHVuLnByb3RvdHlwZS5mYXRhbD12b2lkIDAsdW4ucHJvdG90eXBlLnBsYWNlPXZvaWQgMCx1bi5wcm90b3R5cGUucnVsZUlkPXZvaWQgMCx1bi5wcm90b3R5cGUuc291cmNlPXZvaWQgMH0pO3ZhciBLRHQ9dSgoKT0+e1lEdCgpfSk7ZnVuY3Rpb24genVhKHQsZSl7aWYoZSE9PXZvaWQgMCYmdHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoJyJleHQiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTt2TSh0KTtsZXQgcj0wLGE9LTEscz10Lmxlbmd0aCxuO2lmKGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MHx8ZS5sZW5ndGg+dC5sZW5ndGgpe2Zvcig7cy0tOylpZih0LmNvZGVQb2ludEF0KHMpPT09NDcpe2lmKG4pe3I9cysxO2JyZWFrfX1lbHNlIGE8MCYmKG49ITAsYT1zKzEpO3JldHVybiBhPDA/IiI6dC5zbGljZShyLGEpfWlmKGU9PT10KXJldHVybiIiO2xldCBvPS0xLGw9ZS5sZW5ndGgtMTtmb3IoO3MtLTspaWYodC5jb2RlUG9pbnRBdChzKT09PTQ3KXtpZihuKXtyPXMrMTticmVha319ZWxzZSBvPDAmJihuPSEwLG89cysxKSxsPi0xJiYodC5jb2RlUG9pbnRBdChzKT09PWUuY29kZVBvaW50QXQobC0tKT9sPDAmJihhPXMpOihsPS0xLGE9bykpO3JldHVybiByPT09YT9hPW86YTwwJiYoYT10Lmxlbmd0aCksdC5zbGljZShyLGEpfWZ1bmN0aW9uIF91YSh0KXtpZih2TSh0KSx0Lmxlbmd0aD09PTApcmV0dXJuIi4iO2xldCBlPS0xLHI9dC5sZW5ndGgsYTtmb3IoOy0tcjspaWYodC5jb2RlUG9pbnRBdChyKT09PTQ3KXtpZihhKXtlPXI7YnJlYWt9fWVsc2UgYXx8KGE9ITApO3JldHVybiBlPDA/dC5jb2RlUG9pbnRBdCgwKT09PTQ3PyIvIjoiLiI6ZT09PTEmJnQuY29kZVBvaW50QXQoMCk9PT00Nz8iLy8iOnQuc2xpY2UoMCxlKX1mdW5jdGlvbiBUdWEodCl7dk0odCk7bGV0IGU9dC5sZW5ndGgscj0tMSxhPTAscz0tMSxuPTAsbztmb3IoO2UtLTspe2xldCBsPXQuY29kZVBvaW50QXQoZSk7aWYobD09PTQ3KXtpZihvKXthPWUrMTticmVha31jb250aW51ZX1yPDAmJihvPSEwLHI9ZSsxKSxsPT09NDY/czwwP3M9ZTpuIT09MSYmKG49MSk6cz4tMSYmKG49LTEpfXJldHVybiBzPDB8fHI8MHx8bj09PTB8fG49PT0xJiZzPT09ci0xJiZzPT09YSsxPyIiOnQuc2xpY2UocyxyKX1mdW5jdGlvbiBMdWEoLi4udCl7bGV0IGU9LTEscjtmb3IoOysrZTx0Lmxlbmd0aDspdk0odFtlXSksdFtlXSYmKHI9cj09PXZvaWQgMD90W2VdOnIrIi8iK3RbZV0pO3JldHVybiByPT09dm9pZCAwPyIuIjpEdWEocil9ZnVuY3Rpb24gRHVhKHQpe3ZNKHQpO2xldCBlPXQuY29kZVBvaW50QXQoMCk9PT00NyxyPSR1YSh0LCFlKTtyZXR1cm4gci5sZW5ndGg9PT0wJiYhZSYmKHI9Ii4iKSxyLmxlbmd0aD4wJiZ0LmNvZGVQb2ludEF0KHQubGVuZ3RoLTEpPT09NDcmJihyKz0iLyIpLGU/Ii8iK3I6cn1mdW5jdGlvbiAkdWEodCxlKXtsZXQgcj0iIixhPTAscz0tMSxuPTAsbz0tMSxsLGM7Zm9yKDsrK288PXQubGVuZ3RoOyl7aWYobzx0Lmxlbmd0aClsPXQuY29kZVBvaW50QXQobyk7ZWxzZXtpZihsPT09NDcpYnJlYWs7bD00N31pZihsPT09NDcpe2lmKCEocz09PW8tMXx8bj09PTEpKWlmKHMhPT1vLTEmJm49PT0yKXtpZihyLmxlbmd0aDwyfHxhIT09Mnx8ci5jb2RlUG9pbnRBdChyLmxlbmd0aC0xKSE9PTQ2fHxyLmNvZGVQb2ludEF0KHIubGVuZ3RoLTIpIT09NDYpe2lmKHIubGVuZ3RoPjIpe2lmKGM9ci5sYXN0SW5kZXhPZigiLyIpLGMhPT1yLmxlbmd0aC0xKXtjPDA/KHI9IiIsYT0wKToocj1yLnNsaWNlKDAsYyksYT1yLmxlbmd0aC0xLXIubGFzdEluZGV4T2YoIi8iKSkscz1vLG49MDtjb250aW51ZX19ZWxzZSBpZihyLmxlbmd0aD4wKXtyPSIiLGE9MCxzPW8sbj0wO2NvbnRpbnVlfX1lJiYocj1yLmxlbmd0aD4wP3IrIi8uLiI6Ii4uIixhPTIpfWVsc2Ugci5sZW5ndGg+MD9yKz0iLyIrdC5zbGljZShzKzEsbyk6cj10LnNsaWNlKHMrMSxvKSxhPW8tcy0xO3M9byxuPTB9ZWxzZSBsPT09NDYmJm4+LTE/bisrOm49LTF9cmV0dXJuIHJ9ZnVuY3Rpb24gdk0odCl7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgIitKU09OLnN0cmluZ2lmeSh0KSl9dmFyIEYyLFpEdD11KCgpPT57RjI9e2Jhc2VuYW1lOnp1YSxkaXJuYW1lOl91YSxleHRuYW1lOlR1YSxqb2luOkx1YSxzZXA6Ii8ifTtpKHp1YSwiYmFzZW5hbWUiKTtpKF91YSwiZGlybmFtZSIpO2koVHVhLCJleHRuYW1lIik7aShMdWEsImpvaW4iKTtpKER1YSwibm9ybWFsaXplIik7aSgkdWEsIm5vcm1hbGl6ZVN0cmluZyIpO2kodk0sImFzc2VydFBhdGgiKX0pO2Z1bmN0aW9uIEF1YSgpe3JldHVybiIvIn12YXIgUUR0LFhEdD11KCgpPT57UUR0PXtjd2Q6QXVhfTtpKEF1YSwiY3dkIil9KTtmdW5jdGlvbiBzeCh0KXtyZXR1cm4hISh0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiaHJlZiJpbiB0JiZ0LmhyZWYmJiJwcm90b2NvbCJpbiB0JiZ0LnByb3RvY29sJiZ0LmF1dGg9PT12b2lkIDApfXZhciBOeGU9dSgoKT0+e2koc3gsImlzVXJsIil9KTtmdW5jdGlvbiBKRHQodCl7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXQ9bmV3IFVSTCh0KTtlbHNlIGlmKCFzeCh0KSl7bGV0IGU9bmV3IFR5cGVFcnJvcignVGhlICJwYXRoIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFuIGluc3RhbmNlIG9mIFVSTC4gUmVjZWl2ZWQgYCcrdCsiYCIpO3Rocm93IGUuY29kZT0iRVJSX0lOVkFMSURfQVJHX1RZUEUiLGV9aWYodC5wcm90b2NvbCE9PSJmaWxlOiIpe2xldCBlPW5ldyBUeXBlRXJyb3IoIlRoZSBVUkwgbXVzdCBiZSBvZiBzY2hlbWUgZmlsZSIpO3Rocm93IGUuY29kZT0iRVJSX0lOVkFMSURfVVJMX1NDSEVNRSIsZX1yZXR1cm4gRXVhKHQpfWZ1bmN0aW9uIEV1YSh0KXtpZih0Lmhvc3RuYW1lIT09IiIpe2xldCBhPW5ldyBUeXBlRXJyb3IoJ0ZpbGUgVVJMIGhvc3QgbXVzdCBiZSAibG9jYWxob3N0IiBvciBlbXB0eSBvbiBkYXJ3aW4nKTt0aHJvdyBhLmNvZGU9IkVSUl9JTlZBTElEX0ZJTEVfVVJMX0hPU1QiLGF9bGV0IGU9dC5wYXRobmFtZSxyPS0xO2Zvcig7KytyPGUubGVuZ3RoOylpZihlLmNvZGVQb2ludEF0KHIpPT09MzcmJmUuY29kZVBvaW50QXQocisxKT09PTUwKXtsZXQgYT1lLmNvZGVQb2ludEF0KHIrMik7aWYoYT09PTcwfHxhPT09MTAyKXtsZXQgcz1uZXcgVHlwZUVycm9yKCJGaWxlIFVSTCBwYXRoIG11c3Qgbm90IGluY2x1ZGUgZW5jb2RlZCAvIGNoYXJhY3RlcnMiKTt0aHJvdyBzLmNvZGU9IkVSUl9JTlZBTElEX0ZJTEVfVVJMX1BBVEgiLHN9fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9dmFyIGUkdD11KCgpPT57TnhlKCk7TnhlKCk7aShKRHQsInVybFRvUGF0aCIpO2koRXVhLCJnZXRQYXRoRnJvbVVSTFBvc2l4Iil9KTtmdW5jdGlvbiBSeGUodCxlKXtpZih0JiZ0LmluY2x1ZGVzKEYyLnNlcCkpdGhyb3cgbmV3IEVycm9yKCJgIitlKyJgIGNhbm5vdCBiZSBhIHBhdGg6IGRpZCBub3QgZXhwZWN0IGAiK0YyLnNlcCsiYCIpfWZ1bmN0aW9uIEZ4ZSh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiYCIrZSsiYCBjYW5ub3QgYmUgZW1wdHkiKX1mdW5jdGlvbiB0JHQodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgYCIrZSsiYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbyIpfWZ1bmN0aW9uIEl1YSh0KXtyZXR1cm4hISh0JiZ0eXBlb2YgdD09Im9iamVjdCImJiJieXRlTGVuZ3RoImluIHQmJiJieXRlT2Zmc2V0ImluIHQpfXZhciBPeGUseU0sciR0PXUoKCk9PntLRHQoKTtaRHQoKTtYRHQoKTtlJHQoKTtPeGU9WyJoaXN0b3J5IiwicGF0aCIsImJhc2VuYW1lIiwic3RlbSIsImV4dG5hbWUiLCJkaXJuYW1lIl0seU09Y2xhc3N7c3RhdGlje2kodGhpcywiVkZpbGUiKX1jb25zdHJ1Y3RvcihlKXtsZXQgcjtlP3N4KGUpP3I9e3BhdGg6ZX06dHlwZW9mIGU9PSJzdHJpbmcifHxJdWEoZSk/cj17dmFsdWU6ZX06cj1lOnI9e30sdGhpcy5jd2Q9ImN3ZCJpbiByPyIiOlFEdC5jd2QoKSx0aGlzLmRhdGE9e30sdGhpcy5oaXN0b3J5PVtdLHRoaXMubWVzc2FnZXM9W10sdGhpcy52YWx1ZSx0aGlzLm1hcCx0aGlzLnJlc3VsdCx0aGlzLnN0b3JlZDtsZXQgYT0tMTtmb3IoOysrYTxPeGUubGVuZ3RoOyl7bGV0IG49T3hlW2FdO24gaW4gciYmcltuXSE9PXZvaWQgMCYmcltuXSE9PW51bGwmJih0aGlzW25dPW49PT0iaGlzdG9yeSI/Wy4uLnJbbl1dOnJbbl0pfWxldCBzO2ZvcihzIGluIHIpT3hlLmluY2x1ZGVzKHMpfHwodGhpc1tzXT1yW3NdKX1nZXQgYmFzZW5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/RjIuYmFzZW5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGJhc2VuYW1lKGUpe0Z4ZShlLCJiYXNlbmFtZSIpLFJ4ZShlLCJiYXNlbmFtZSIpLHRoaXMucGF0aD1GMi5qb2luKHRoaXMuZGlybmFtZXx8IiIsZSl9Z2V0IGRpcm5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/RjIuZGlybmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgZGlybmFtZShlKXt0JHQodGhpcy5iYXNlbmFtZSwiZGlybmFtZSIpLHRoaXMucGF0aD1GMi5qb2luKGV8fCIiLHRoaXMuYmFzZW5hbWUpfWdldCBleHRuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0YyLmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGV4dG5hbWUoZSl7aWYoUnhlKGUsImV4dG5hbWUiKSx0JHQodGhpcy5kaXJuYW1lLCJleHRuYW1lIiksZSl7aWYoZS5jb2RlUG9pbnRBdCgwKSE9PTQ2KXRocm93IG5ldyBFcnJvcigiYGV4dG5hbWVgIG11c3Qgc3RhcnQgd2l0aCBgLmAiKTtpZihlLmluY2x1ZGVzKCIuIiwxKSl0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzIil9dGhpcy5wYXRoPUYyLmpvaW4odGhpcy5kaXJuYW1lLHRoaXMuc3RlbSsoZXx8IiIpKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aC0xXX1zZXQgcGF0aChlKXtzeChlKSYmKGU9SkR0KGUpKSxGeGUoZSwicGF0aCIpLHRoaXMucGF0aCE9PWUmJnRoaXMuaGlzdG9yeS5wdXNoKGUpfWdldCBzdGVtKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0YyLmJhc2VuYW1lKHRoaXMucGF0aCx0aGlzLmV4dG5hbWUpOnZvaWQgMH1zZXQgc3RlbShlKXtGeGUoZSwic3RlbSIpLFJ4ZShlLCJzdGVtIiksdGhpcy5wYXRoPUYyLmpvaW4odGhpcy5kaXJuYW1lfHwiIixlKyh0aGlzLmV4dG5hbWV8fCIiKSl9ZmFpbChlLHIsYSl7bGV0IHM9dGhpcy5tZXNzYWdlKGUscixhKTt0aHJvdyBzLmZhdGFsPSEwLHN9aW5mbyhlLHIsYSl7bGV0IHM9dGhpcy5tZXNzYWdlKGUscixhKTtyZXR1cm4gcy5mYXRhbD12b2lkIDAsc31tZXNzYWdlKGUscixhKXtsZXQgcz1uZXcgdW4oZSxyLGEpO3JldHVybiB0aGlzLnBhdGgmJihzLm5hbWU9dGhpcy5wYXRoKyI6IitzLm5hbWUscy5maWxlPXRoaXMucGF0aCkscy5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2gocyksc310b1N0cmluZyhlKXtyZXR1cm4gdGhpcy52YWx1ZT09PXZvaWQgMD8iIjp0eXBlb2YgdGhpcy52YWx1ZT09InN0cmluZyI/dGhpcy52YWx1ZTpuZXcgVGV4dERlY29kZXIoZXx8dm9pZCAwKS5kZWNvZGUodGhpcy52YWx1ZSl9fTtpKFJ4ZSwiYXNzZXJ0UGFydCIpO2koRnhlLCJhc3NlcnROb25FbXB0eSIpO2kodCR0LCJhc3NlcnRQYXRoIik7aShJdWEsImlzVWludDhBcnJheSIpfSk7dmFyIGEkdD11KCgpPT57ciR0KCl9KTt2YXIgaSR0LHMkdD11KCgpPT57aSR0PWkoKGZ1bmN0aW9uKHQpe2xldCBhPXRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLHM9YVt0XSxuPWkoZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseShuLGFyZ3VtZW50cyl9LCJhcHBseSIpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YobixhKSxufSksIkNhbGxhYmxlSW5zdGFuY2UiKX0pO2Z1bmN0aW9uIEh4ZSh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBgIit0KyJgIHdpdGhvdXQgYHBhcnNlcmAiKX1mdW5jdGlvbiBxeGUodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrdCsiYCB3aXRob3V0IGBjb21waWxlcmAiKX1mdW5jdGlvbiBWeGUodCxlKXtpZihlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNhbGwgYCIrdCsiYCBvbiBhIGZyb3plbiBwcm9jZXNzb3IuXG5DcmVhdGUgYSBuZXcgcHJvY2Vzc29yIGZpcnN0LCBieSBjYWxsaW5nIGl0OiB1c2UgYHByb2Nlc3NvcigpYCBpbnN0ZWFkIG9mIGBwcm9jZXNzb3JgLiIpfWZ1bmN0aW9uIG4kdCh0KXtpZigheE0odCl8fHR5cGVvZiB0LnR5cGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIG5vZGUsIGdvdCBgIit0KyJgIil9ZnVuY3Rpb24gbyR0KHQsZSxyKXtpZighcil0aHJvdyBuZXcgRXJyb3IoImAiK3QrImAgZmluaXNoZWQgYXN5bmMuIFVzZSBgIitlKyJgIGluc3RlYWQiKX1mdW5jdGlvbiBlMWUodCl7cmV0dXJuIE51YSh0KT90Om5ldyB5TSh0KX1mdW5jdGlvbiBOdWEodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYibWVzc2FnZSJpbiB0JiYibWVzc2FnZXMiaW4gdCl9ZnVuY3Rpb24gT3VhKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ8fFJ1YSh0KX1mdW5jdGlvbiBSdWEodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiB0JiYiYnl0ZU9mZnNldCJpbiB0KX12YXIgdDFlLFB1YSxCeGUsd00sbCR0PXUoKCk9PnskRHQoKTt0MWU9R2EoQkR0KCksMSk7Q3UoKTtIRHQoKTtqRHQoKTthJHQoKTtzJHQoKTtQdWE9e30uaGFzT3duUHJvcGVydHksQnhlPWNsYXNzIHQgZXh0ZW5kcyBpJHR7c3RhdGlje2kodGhpcywiUHJvY2Vzc29yIil9Y29uc3RydWN0b3IoKXtzdXBlcigiY29weSIpLHRoaXMuQ29tcGlsZXI9dm9pZCAwLHRoaXMuUGFyc2VyPXZvaWQgMCx0aGlzLmF0dGFjaGVycz1bXSx0aGlzLmNvbXBpbGVyPXZvaWQgMCx0aGlzLmZyZWV6ZUluZGV4PS0xLHRoaXMuZnJvemVuPXZvaWQgMCx0aGlzLm5hbWVzcGFjZT17fSx0aGlzLnBhcnNlcj12b2lkIDAsdGhpcy50cmFuc2Zvcm1lcnM9RXhlKCl9Y29weSgpe2xldCBlPW5ldyB0LHI9LTE7Zm9yKDsrK3I8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0IGE9dGhpcy5hdHRhY2hlcnNbcl07ZS51c2UoLi4uYSl9cmV0dXJuIGUuZGF0YSgoMCx0MWUuZGVmYXVsdCkoITAse30sdGhpcy5uYW1lc3BhY2UpKSxlfWRhdGEoZSxyKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP2FyZ3VtZW50cy5sZW5ndGg9PT0yPyhWeGUoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZVtlXT1yLHRoaXMpOlB1YS5jYWxsKHRoaXMubmFtZXNwYWNlLGUpJiZ0aGlzLm5hbWVzcGFjZVtlXXx8dm9pZCAwOmU/KFZ4ZSgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlPWUsdGhpcyk6dGhpcy5uYW1lc3BhY2V9ZnJlZXplKCl7aWYodGhpcy5mcm96ZW4pcmV0dXJuIHRoaXM7bGV0IGU9dGhpcztmb3IoOysrdGhpcy5mcmVlemVJbmRleDx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtsZXRbciwuLi5hXT10aGlzLmF0dGFjaGVyc1t0aGlzLmZyZWV6ZUluZGV4XTtpZihhWzBdPT09ITEpY29udGludWU7YVswXT09PSEwJiYoYVswXT12b2lkIDApO2xldCBzPXIuY2FsbChlLC4uLmEpO3R5cGVvZiBzPT0iZnVuY3Rpb24iJiZ0aGlzLnRyYW5zZm9ybWVycy51c2Uocyl9cmV0dXJuIHRoaXMuZnJvemVuPSEwLHRoaXMuZnJlZXplSW5kZXg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHRoaXN9cGFyc2UoZSl7dGhpcy5mcmVlemUoKTtsZXQgcj1lMWUoZSksYT10aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXI7cmV0dXJuIEh4ZSgicGFyc2UiLGEpLGEoU3RyaW5nKHIpLHIpfXByb2Nlc3MoZSxyKXtsZXQgYT10aGlzO3JldHVybiB0aGlzLmZyZWV6ZSgpLEh4ZSgicHJvY2VzcyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxxeGUoInByb2Nlc3MiLHRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXIpLHI/cyh2b2lkIDAscik6bmV3IFByb21pc2Uocyk7ZnVuY3Rpb24gcyhuLG8pe2xldCBsPWUxZShlKSxjPWEucGFyc2UobCk7YS5ydW4oYyxsLGZ1bmN0aW9uKGYscCxoKXtpZihmfHwhcHx8IWgpcmV0dXJuIGQoZik7bGV0IG09cCx2PWEuc3RyaW5naWZ5KG0saCk7T3VhKHYpP2gudmFsdWU9djpoLnJlc3VsdD12LGQoZixoKX0pO2Z1bmN0aW9uIGQoZixwKXtmfHwhcD9vKGYpOm4/bihwKTpyKHZvaWQgMCxwKX1pKGQsInJlYWxEb25lIil9aShzLCJleGVjdXRvciIpfXByb2Nlc3NTeW5jKGUpe2xldCByPSExLGE7cmV0dXJuIHRoaXMuZnJlZXplKCksSHhlKCJwcm9jZXNzU3luYyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxxeGUoInByb2Nlc3NTeW5jIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSx0aGlzLnByb2Nlc3MoZSxzKSxvJHQoInByb2Nlc3NTeW5jIiwicHJvY2VzcyIsciksYTtmdW5jdGlvbiBzKG4sbyl7cj0hMCxBeGUobiksYT1vfWkocywicmVhbERvbmUiKX1ydW4oZSxyLGEpe24kdChlKSx0aGlzLmZyZWV6ZSgpO2xldCBzPXRoaXMudHJhbnNmb3JtZXJzO3JldHVybiFhJiZ0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmKGE9cixyPXZvaWQgMCksYT9uKHZvaWQgMCxhKTpuZXcgUHJvbWlzZShuKTtmdW5jdGlvbiBuKG8sbCl7bGV0IGM9ZTFlKHIpO3MucnVuKGUsYyxkKTtmdW5jdGlvbiBkKGYscCxoKXtsZXQgbT1wfHxlO2Y/bChmKTpvP28obSk6YSh2b2lkIDAsbSxoKX1pKGQsInJlYWxEb25lIil9aShuLCJleGVjdXRvciIpfXJ1blN5bmMoZSxyKXtsZXQgYT0hMSxzO3JldHVybiB0aGlzLnJ1bihlLHIsbiksbyR0KCJydW5TeW5jIiwicnVuIixhKSxzO2Z1bmN0aW9uIG4obyxsKXtBeGUobykscz1sLGE9ITB9aShuLCJyZWFsRG9uZSIpfXN0cmluZ2lmeShlLHIpe3RoaXMuZnJlZXplKCk7bGV0IGE9ZTFlKHIpLHM9dGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlcjtyZXR1cm4gcXhlKCJzdHJpbmdpZnkiLHMpLG4kdChlKSxzKGUsYSl9dXNlKGUsLi4ucil7bGV0IGE9dGhpcy5hdHRhY2hlcnMscz10aGlzLm5hbWVzcGFjZTtpZihWeGUoInVzZSIsdGhpcy5mcm96ZW4pLGUhPW51bGwpaWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpYyhlLHIpO2Vsc2UgaWYodHlwZW9mIGU9PSJvYmplY3QiKUFycmF5LmlzQXJyYXkoZSk/bChlKTpvKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrZSsiYCIpO3JldHVybiB0aGlzO2Z1bmN0aW9uIG4oZCl7aWYodHlwZW9mIGQ9PSJmdW5jdGlvbiIpYyhkLFtdKTtlbHNlIGlmKHR5cGVvZiBkPT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KGQpKXtsZXRbZiwuLi5wXT1kO2MoZixwKX1lbHNlIG8oZCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIitkKyJgIil9ZnVuY3Rpb24gbyhkKXtpZighKCJwbHVnaW5zImluIGQpJiYhKCJzZXR0aW5ncyJpbiBkKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSBidXQgcmVjZWl2ZWQgYW4gZW1wdHkgcHJlc2V0LCB3aGljaCBpcyBwcm9iYWJseSBhIG1pc3Rha2U6IHByZXNldHMgdHlwaWNhbGx5IGNvbWUgd2l0aCBgcGx1Z2luc2AgYW5kIHNvbWV0aW1lcyB3aXRoIGBzZXR0aW5nc2AsIGJ1dCB0aGlzIGhhcyBuZWl0aGVyIik7bChkLnBsdWdpbnMpLGQuc2V0dGluZ3MmJihzLnNldHRpbmdzPSgwLHQxZS5kZWZhdWx0KSghMCxzLnNldHRpbmdzLGQuc2V0dGluZ3MpKX1mdW5jdGlvbiBsKGQpe2xldCBmPS0xO2lmKGQhPW51bGwpaWYoQXJyYXkuaXNBcnJheShkKSlmb3IoOysrZjxkLmxlbmd0aDspe2xldCBwPWRbZl07bihwKX1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgbGlzdCBvZiBwbHVnaW5zLCBub3QgYCIrZCsiYCIpfWZ1bmN0aW9uIGMoZCxmKXtsZXQgcD0tMSxoPS0xO2Zvcig7KytwPGEubGVuZ3RoOylpZihhW3BdWzBdPT09ZCl7aD1wO2JyZWFrfWlmKGg9PT0tMSlhLnB1c2goW2QsLi4uZl0pO2Vsc2UgaWYoZi5sZW5ndGg+MCl7bGV0W20sLi4udl09ZixiPWFbaF1bMV07eE0oYikmJnhNKG0pJiYobT0oMCx0MWUuZGVmYXVsdCkoITAsYixtKSksYVtoXT1bZCxtLC4uLnZdfX19fSx3TT1uZXcgQnhlKCkuZnJlZXplKCk7aShIeGUsImFzc2VydFBhcnNlciIpO2kocXhlLCJhc3NlcnRDb21waWxlciIpO2koVnhlLCJhc3NlcnRVbmZyb3plbiIpO2kobiR0LCJhc3NlcnROb2RlIik7aShvJHQsImFzc2VydERvbmUiKTtpKGUxZSwidmZpbGUiKTtpKE51YSwibG9va3NMaWtlQVZGaWxlIik7aShPdWEsImxvb2tzTGlrZUFWYWx1ZSIpO2koUnVhLCJpc1VpbnQ4QXJyYXkiKX0pO3ZhciBjJHQ9dSgoKT0+e2wkdCgpfSk7ZnVuY3Rpb24gb3godCxlKXtsZXQgcj1TdHJpbmcodCk7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGNoYXJhY3RlciIpO2xldCBhPTAscz1yLmluZGV4T2YoZSk7Zm9yKDtzIT09LTE7KWErKyxzPXIuaW5kZXhPZihlLHMrZS5sZW5ndGgpO3JldHVybiBhfXZhciBqeGU9dSgoKT0+e2kob3gsImNjb3VudCIpfSk7ZnVuY3Rpb24gdmgodCl7cmV0dXJuIHQhPT1udWxsJiYodDwzMnx8dD09PTEyNyl9ZnVuY3Rpb24gZHQodCl7cmV0dXJuIHQhPT1udWxsJiZ0PC0yfWZ1bmN0aW9uIE5yKHQpe3JldHVybiB0IT09bnVsbCYmKHQ8MHx8dD09PTMyKX1mdW5jdGlvbiBPdCh0KXtyZXR1cm4gdD09PS0yfHx0PT09LTF8fHQ9PT0zMn1mdW5jdGlvbiBfdSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKHIpe3JldHVybiByIT09bnVsbCYmcj4tMSYmdC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUocikpfX12YXIgVnMsSWksZCR0LGtNLHUkdCxwJHQseWgsbTAsV3I9dSgoKT0+e1ZzPV91KC9bQS1aYS16XS8pLElpPV91KC9bXGRBLVphLXpdLyksZCR0PV91KC9bIy0nKitcLS05PT9BLVpeLX5dLyk7aSh2aCwiYXNjaWlDb250cm9sIik7a009X3UoL1xkLyksdSR0PV91KC9bXGRBLUZhLWZdLykscCR0PV91KC9bIS0vOi1AWy1gey1+XS8pO2koZHQsIm1hcmtkb3duTGluZUVuZGluZyIpO2koTnIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiKTtpKE90LCJtYXJrZG93blNwYWNlIik7eWg9X3UoL1xwe1B9fFxwe1N9L3UpLG0wPV91KC9ccy8pO2koX3UsInJlZ2V4Q2hlY2siKX0pO2Z1bmN0aW9uIEZ1YSh0KXtsZXQgZT1bXSxyPS0xO2Zvcig7KytyPHQubGVuZ3RoOyllW3JdPXI0KHRbcl0pO3JldHVybiByMWUoYSk7ZnVuY3Rpb24gYSguLi5zKXtsZXQgbj0tMTtmb3IoOysrbjxlLmxlbmd0aDspaWYoZVtuXS5hcHBseSh0aGlzLHMpKXJldHVybiEwO3JldHVybiExfX1mdW5jdGlvbiBCdWEodCl7bGV0IGU9dDtyZXR1cm4gcjFlKHIpO2Z1bmN0aW9uIHIoYSl7bGV0IHM9YSxuO2ZvcihuIGluIHQpaWYoc1tuXSE9PWVbbl0pcmV0dXJuITE7cmV0dXJuITB9fWZ1bmN0aW9uIEh1YSh0KXtyZXR1cm4gcjFlKGUpO2Z1bmN0aW9uIGUocil7cmV0dXJuIHImJnIudHlwZT09PXR9fWZ1bmN0aW9uIHIxZSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKHIsYSxzKXtyZXR1cm4hIShmJHQocikmJnQuY2FsbCh0aGlzLHIsdHlwZW9mIGE9PSJudW1iZXIiP2E6dm9pZCAwLHN8fHZvaWQgMCkpfX1mdW5jdGlvbiBxdWEoKXtyZXR1cm4hMH1mdW5jdGlvbiBmJHQodCl7cmV0dXJuIHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCImJiJ0eXBlImluIHR9dmFyIGgkdCxyNCxtJHQ9dSgoKT0+e2gkdD1pKChmdW5jdGlvbih0LGUscixhLHMpe2xldCBuPXI0KGUpO2lmKHIhPW51bGwmJih0eXBlb2YgciE9Im51bWJlciJ8fHI8MHx8cj09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBwb3NpdGl2ZSBmaW5pdGUgaW5kZXgiKTtpZihhIT1udWxsJiYoIWgkdChhKXx8IWEuY2hpbGRyZW4pKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcGFyZW50IG5vZGUiKTtpZihhPT1udWxsIT0ocj09bnVsbCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBib3RoIHBhcmVudCBhbmQgaW5kZXgiKTtyZXR1cm4gZiR0KHQpP24uY2FsbChzLHQscixhKTohMX0pLCJpcyIpLHI0PWkoKGZ1bmN0aW9uKHQpe2lmKHQ9PW51bGwpcmV0dXJuIHF1YTtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilyZXR1cm4gcjFlKHQpO2lmKHR5cGVvZiB0PT0ib2JqZWN0IilyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9GdWEodCk6QnVhKHQpO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gSHVhKHQpO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QiKX0pLCJjb252ZXJ0Iik7aShGdWEsImFueUZhY3RvcnkiKTtpKEJ1YSwicHJvcGVydGllc0ZhY3RvcnkiKTtpKEh1YSwidHlwZUZhY3RvcnkiKTtpKHIxZSwiY2FzdEZhY3RvcnkiKTtpKHF1YSwib2siKTtpKGYkdCwibG9va3NMaWtlQU5vZGUiKX0pO3ZhciBhMWU9dSgoKT0+e20kdCgpfSk7dmFyIGckdD11KCgpPT57fSk7ZnVuY3Rpb24gU00odCxlLHIsYSl7bGV0IHM7dHlwZW9mIGU9PSJmdW5jdGlvbiImJnR5cGVvZiByIT0iZnVuY3Rpb24iPyhhPXIscj1lKTpzPWU7bGV0IG49cjQocyksbz1hPy0xOjE7bCh0LHZvaWQgMCxbXSkoKTtmdW5jdGlvbiBsKGMsZCxmKXtsZXQgcD1jJiZ0eXBlb2YgYz09Im9iamVjdCI/Yzp7fTtpZih0eXBlb2YgcC50eXBlPT0ic3RyaW5nIil7bGV0IG09dHlwZW9mIHAudGFnTmFtZT09InN0cmluZyI/cC50YWdOYW1lOnR5cGVvZiBwLm5hbWU9PSJzdHJpbmciP3AubmFtZTp2b2lkIDA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGgsIm5hbWUiLHt2YWx1ZToibm9kZSAoIisoYy50eXBlKyhtPyI8IittKyI+IjoiIikpKyIpIn0pfXJldHVybiBoO2Z1bmN0aW9uIGgoKXtsZXQgbT1iJHQsdixiLGc7aWYoKCFlfHxuKGMsZCxmW2YubGVuZ3RoLTFdfHx2b2lkIDApKSYmKG09VnVhKHIoYyxmKSksbVswXT09PXdoKSlyZXR1cm4gbTtpZigiY2hpbGRyZW4iaW4gYyYmYy5jaGlsZHJlbil7bGV0IHk9YztpZih5LmNoaWxkcmVuJiZtWzBdIT09czFlKWZvcihiPShhP3kuY2hpbGRyZW4ubGVuZ3RoOi0xKStvLGc9Zi5jb25jYXQoeSk7Yj4tMSYmYjx5LmNoaWxkcmVuLmxlbmd0aDspe2xldCBrPXkuY2hpbGRyZW5bYl07aWYodj1sKGssYixnKSgpLHZbMF09PT13aClyZXR1cm4gdjtiPXR5cGVvZiB2WzFdPT0ibnVtYmVyIj92WzFdOmIrb319cmV0dXJuIG19fWkobCwiZmFjdG9yeSIpfWZ1bmN0aW9uIFZ1YSh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OnR5cGVvZiB0PT0ibnVtYmVyIj9baTFlLHRdOnQ9PW51bGw/YiR0Olt0XX12YXIgYiR0LGkxZSx3aCxzMWUseCR0PXUoKCk9PnthMWUoKTtnJHQoKTtiJHQ9W10saTFlPSEwLHdoPSExLHMxZT0ic2tpcCI7aShTTSwidmlzaXRQYXJlbnRzIik7aShWdWEsInRvUmVzdWx0Iil9KTt2YXIgbjFlPXUoKCk9Pnt4JHQoKX0pO2Z1bmN0aW9uIFV4ZSh0LGUscil7bGV0IHM9cjQoKHJ8fHt9KS5pZ25vcmV8fFtdKSxuPWp1YShlKSxvPS0xO2Zvcig7KytvPG4ubGVuZ3RoOylTTSh0LCJ0ZXh0IixsKTtmdW5jdGlvbiBsKGQsZil7bGV0IHA9LTEsaDtmb3IoOysrcDxmLmxlbmd0aDspe2xldCBtPWZbcF0sdj1oP2guY2hpbGRyZW46dm9pZCAwO2lmKHMobSx2P3YuaW5kZXhPZihtKTp2b2lkIDAsaCkpcmV0dXJuO2g9bX1pZihoKXJldHVybiBjKGQsZil9aShsLCJ2aXNpdG9yIik7ZnVuY3Rpb24gYyhkLGYpe2xldCBwPWZbZi5sZW5ndGgtMV0saD1uW29dWzBdLG09bltvXVsxXSx2PTAsZz1wLmNoaWxkcmVuLmluZGV4T2YoZCkseT0hMSxrPVtdO2gubGFzdEluZGV4PTA7bGV0IE09aC5leGVjKGQudmFsdWUpO2Zvcig7TTspe2xldCBOPU0uaW5kZXgsXz17aW5kZXg6TS5pbmRleCxpbnB1dDpNLmlucHV0LHN0YWNrOlsuLi5mLGRdfSxTPW0oLi4uTSxfKTtpZih0eXBlb2YgUz09InN0cmluZyImJihTPVMubGVuZ3RoPjA/e3R5cGU6InRleHQiLHZhbHVlOlN9OnZvaWQgMCksUz09PSExP2gubGFzdEluZGV4PU4rMToodiE9PU4mJmsucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6ZC52YWx1ZS5zbGljZSh2LE4pfSksQXJyYXkuaXNBcnJheShTKT9rLnB1c2goLi4uUyk6UyYmay5wdXNoKFMpLHY9TitNWzBdLmxlbmd0aCx5PSEwKSwhaC5nbG9iYWwpYnJlYWs7TT1oLmV4ZWMoZC52YWx1ZSl9cmV0dXJuIHk/KHY8ZC52YWx1ZS5sZW5ndGgmJmsucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6ZC52YWx1ZS5zbGljZSh2KX0pLHAuY2hpbGRyZW4uc3BsaWNlKGcsMSwuLi5rKSk6az1bZF0sZytrLmxlbmd0aH1pKGMsImhhbmRsZXIiKX1mdW5jdGlvbiBqdWEodCl7bGV0IGU9W107aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgZmluZCBhbmQgcmVwbGFjZSB0dXBsZSBvciBsaXN0IG9mIHR1cGxlcyIpO2xldCByPSF0WzBdfHxBcnJheS5pc0FycmF5KHRbMF0pP3Q6W3RdLGE9LTE7Zm9yKDsrK2E8ci5sZW5ndGg7KXtsZXQgcz1yW2FdO2UucHVzaChbVXVhKHNbMF0pLFd1YShzWzFdKV0pfXJldHVybiBlfWZ1bmN0aW9uIFV1YSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP25ldyBSZWdFeHAoVmYodCksImciKTp0fWZ1bmN0aW9uIFd1YSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpmdW5jdGlvbigpe3JldHVybiB0fX12YXIgdiR0PXUoKCk9PntEaWUoKTtuMWUoKTthMWUoKTtpKFV4ZSwiZmluZEFuZFJlcGxhY2UiKTtpKGp1YSwidG9QYWlycyIpO2koVXVhLCJ0b0V4cHJlc3Npb24iKTtpKFd1YSwidG9GdW5jdGlvbiIpfSk7dmFyIHkkdD11KCgpPT57diR0KCl9KTtmdW5jdGlvbiBLeGUoKXtyZXR1cm57dHJhbnNmb3JtczpbWHVhXSxlbnRlcjp7bGl0ZXJhbEF1dG9saW5rOkd1YSxsaXRlcmFsQXV0b2xpbmtFbWFpbDpZeGUsbGl0ZXJhbEF1dG9saW5rSHR0cDpZeGUsbGl0ZXJhbEF1dG9saW5rV3d3Oll4ZX0sZXhpdDp7bGl0ZXJhbEF1dG9saW5rOlF1YSxsaXRlcmFsQXV0b2xpbmtFbWFpbDpadWEsbGl0ZXJhbEF1dG9saW5rSHR0cDpZdWEsbGl0ZXJhbEF1dG9saW5rV3d3Okt1YX19fWZ1bmN0aW9uIFp4ZSgpe3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6IkAiLGJlZm9yZToiWytcXC0uXFx3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6V3hlLG5vdEluQ29uc3RydWN0Okd4ZX0se2NoYXJhY3RlcjoiLiIsYmVmb3JlOiJbV3ddIixhZnRlcjoiW1xcLS5cXHddIixpbkNvbnN0cnVjdDpXeGUsbm90SW5Db25zdHJ1Y3Q6R3hlfSx7Y2hhcmFjdGVyOiI6IixiZWZvcmU6Iltwc10iLGFmdGVyOiJcXC8iLGluQ29uc3RydWN0Old4ZSxub3RJbkNvbnN0cnVjdDpHeGV9XX19ZnVuY3Rpb24gR3VhKHQpe3RoaXMuZW50ZXIoe3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiIiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBZeGUodCl7dGhpcy5jb25maWcuZW50ZXIuYXV0b2xpbmtQcm90b2NvbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gWXVhKHQpe3RoaXMuY29uZmlnLmV4aXQuYXV0b2xpbmtQcm90b2NvbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gS3VhKHQpe3RoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsdCk7bGV0IGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtlLnR5cGUsZS51cmw9Imh0dHA6Ly8iK3RoaXMuc2xpY2VTZXJpYWxpemUodCl9ZnVuY3Rpb24gWnVhKHQpe3RoaXMuY29uZmlnLmV4aXQuYXV0b2xpbmtFbWFpbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gUXVhKHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBYdWEodCl7VXhlKHQsW1svKGh0dHBzPzpcL1wvfHd3dyg/PVwuKSkoWy0uXHddKykoW14gXHRcclxuXSopL2dpLEp1YV0sWy8oPzw9Xnxcc3xccHtQfXxccHtTfSkoWy0uXHcrXSspQChbLVx3XSsoPzpcLlstXHddKykrKS9ndSxlcGFdXSx7aWdub3JlOlsibGluayIsImxpbmtSZWZlcmVuY2UiXX0pfWZ1bmN0aW9uIEp1YSh0LGUscixhLHMpe2xldCBuPSIiO2lmKCF3JHQocyl8fCgvXncvaS50ZXN0KGUpJiYocj1lK3IsZT0iIixuPSJodHRwOi8vIiksIXRwYShyKSkpcmV0dXJuITE7bGV0IG89cnBhKHIrYSk7aWYoIW9bMF0pcmV0dXJuITE7bGV0IGw9e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOm4rZStvWzBdLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6ZStvWzBdfV19O3JldHVybiBvWzFdP1tsLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpvWzFdfV06bH1mdW5jdGlvbiBlcGEodCxlLHIsYSl7cmV0dXJuIXckdChhLCEwKXx8L1stXGRfXSQvLnRlc3Qocik/ITE6e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiJtYWlsdG86IitlKyJAIityLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6ZSsiQCIrcn1dfX1mdW5jdGlvbiB0cGEodCl7bGV0IGU9dC5zcGxpdCgiLiIpO3JldHVybiEoZS5sZW5ndGg8Mnx8ZVtlLmxlbmd0aC0xXSYmKC9fLy50ZXN0KGVbZS5sZW5ndGgtMV0pfHwhL1thLXpBLVpcZF0vLnRlc3QoZVtlLmxlbmd0aC0xXSkpfHxlW2UubGVuZ3RoLTJdJiYoL18vLnRlc3QoZVtlLmxlbmd0aC0yXSl8fCEvW2EtekEtWlxkXS8udGVzdChlW2UubGVuZ3RoLTJdKSkpfWZ1bmN0aW9uIHJwYSh0KXtsZXQgZT0vWyEiJicpLC46Ozw+P1xdfV0rJC8uZXhlYyh0KTtpZighZSlyZXR1cm5bdCx2b2lkIDBdO3Q9dC5zbGljZSgwLGUuaW5kZXgpO2xldCByPWVbMF0sYT1yLmluZGV4T2YoIikiKSxzPW94KHQsIigiKSxuPW94KHQsIikiKTtmb3IoO2EhPT0tMSYmcz5uOyl0Kz1yLnNsaWNlKDAsYSsxKSxyPXIuc2xpY2UoYSsxKSxhPXIuaW5kZXhPZigiKSIpLG4rKztyZXR1cm5bdCxyXX1mdW5jdGlvbiB3JHQodCxlKXtsZXQgcj10LmlucHV0LmNoYXJDb2RlQXQodC5pbmRleC0xKTtyZXR1cm4odC5pbmRleD09PTB8fG0wKHIpfHx5aChyKSkmJighZXx8ciE9PTQ3KX12YXIgV3hlLEd4ZSxrJHQ9dSgoKT0+e2p4ZSgpO0N1KCk7V3IoKTt5JHQoKTtXeGU9InBocmFzaW5nIixHeGU9WyJhdXRvbGluayIsImxpbmsiLCJpbWFnZSIsImxhYmVsIl07aShLeGUsImdmbUF1dG9saW5rTGl0ZXJhbEZyb21NYXJrZG93biIpO2koWnhlLCJnZm1BdXRvbGlua0xpdGVyYWxUb01hcmtkb3duIik7aShHdWEsImVudGVyTGl0ZXJhbEF1dG9saW5rIik7aShZeGUsImVudGVyTGl0ZXJhbEF1dG9saW5rVmFsdWUiKTtpKFl1YSwiZXhpdExpdGVyYWxBdXRvbGlua0h0dHAiKTtpKEt1YSwiZXhpdExpdGVyYWxBdXRvbGlua1d3dyIpO2koWnVhLCJleGl0TGl0ZXJhbEF1dG9saW5rRW1haWwiKTtpKFF1YSwiZXhpdExpdGVyYWxBdXRvbGluayIpO2koWHVhLCJ0cmFuc2Zvcm1HZm1BdXRvbGlua0xpdGVyYWxzIik7aShKdWEsImZpbmRVcmwiKTtpKGVwYSwiZmluZEVtYWlsIik7aSh0cGEsImlzQ29ycmVjdERvbWFpbiIpO2kocnBhLCJzcGxpdFVybCIpO2kodyR0LCJwcmV2aW91cyIpfSk7dmFyIFMkdD11KCgpPT57ayR0KCl9KTtmdW5jdGlvbiBQaSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC9eIHwgJC9nLCIiKS50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCl9dmFyIFR1PXUoKCk9PntpKFBpLCJub3JtYWxpemVJZGVudGlmaWVyIil9KTtmdW5jdGlvbiBhcGEoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIGlwYSh0KXt0aGlzLmVudGVyKHt0eXBlOiJmb290bm90ZVJlZmVyZW5jZSIsaWRlbnRpZmllcjoiIixsYWJlbDoiIn0sdCl9ZnVuY3Rpb24gc3BhKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBucGEodCl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVEZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOiIiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBvcGEodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIuaWRlbnRpZmllcj1QaSh0aGlzLnNsaWNlU2VyaWFsaXplKHQpKS50b0xvd2VyQ2FzZSgpLHIubGFiZWw9ZX1mdW5jdGlvbiBscGEodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIGNwYSh0KXtsZXQgZT10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGUsci5pZGVudGlmaWVyPVBpKHRoaXMuc2xpY2VTZXJpYWxpemUodCkpLnRvTG93ZXJDYXNlKCksci5sYWJlbD1lfWZ1bmN0aW9uIGRwYSh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gdXBhKCl7cmV0dXJuIlsifWZ1bmN0aW9uIE0kdCh0LGUscixhKXtsZXQgcz1yLmNyZWF0ZVRyYWNrZXIoYSksbj1zLm1vdmUoIlteIiksbz1yLmVudGVyKCJmb290bm90ZVJlZmVyZW5jZSIpLGw9ci5lbnRlcigicmVmZXJlbmNlIik7cmV0dXJuIG4rPXMubW92ZShyLnNhZmUoci5hc3NvY2lhdGlvbklkKHQpLHthZnRlcjoiXSIsYmVmb3JlOm59KSksbCgpLG8oKSxuKz1zLm1vdmUoIl0iKSxufWZ1bmN0aW9uIFF4ZSgpe3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOmFwYSxnZm1Gb290bm90ZUNhbGw6aXBhLGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOnNwYSxnZm1Gb290bm90ZURlZmluaXRpb246bnBhfSxleGl0OntnZm1Gb290bm90ZUNhbGxTdHJpbmc6b3BhLGdmbUZvb3Rub3RlQ2FsbDpscGEsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6Y3BhLGdmbUZvb3Rub3RlRGVmaW5pdGlvbjpkcGF9fX1mdW5jdGlvbiBYeGUodCl7bGV0IGU9ITE7cmV0dXJuIHQmJnQuZmlyc3RMaW5lQmxhbmsmJihlPSEwKSx7aGFuZGxlcnM6e2Zvb3Rub3RlRGVmaW5pdGlvbjpyLGZvb3Rub3RlUmVmZXJlbmNlOk0kdH0sdW5zYWZlOlt7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicGhyYXNpbmciLCJyZWZlcmVuY2UiXX1dfTtmdW5jdGlvbiByKGEscyxuLG8pe2xldCBsPW4uY3JlYXRlVHJhY2tlcihvKSxjPWwubW92ZSgiW14iKSxkPW4uZW50ZXIoImZvb3Rub3RlRGVmaW5pdGlvbiIpLGY9bi5lbnRlcigibGFiZWwiKTtyZXR1cm4gYys9bC5tb3ZlKG4uc2FmZShuLmFzc29jaWF0aW9uSWQoYSkse2JlZm9yZTpjLGFmdGVyOiJdIn0pKSxmKCksYys9bC5tb3ZlKCJdOiIpLGEuY2hpbGRyZW4mJmEuY2hpbGRyZW4ubGVuZ3RoPjAmJihsLnNoaWZ0KDQpLGMrPWwubW92ZSgoZT9gCmA6IiAiKStuLmluZGVudExpbmVzKG4uY29udGFpbmVyRmxvdyhhLGwuY3VycmVudCgpKSxlP0MkdDpwcGEpKSksZCgpLGN9aShyLCJmb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBwcGEodCxlLHIpe3JldHVybiBlPT09MD90OkMkdCh0LGUscil9ZnVuY3Rpb24gQyR0KHQsZSxyKXtyZXR1cm4ocj8iIjoiICAgICIpK3R9dmFyIHokdD11KCgpPT57Q3UoKTtUdSgpO00kdC5wZWVrPXVwYTtpKGFwYSwiZW50ZXJGb290bm90ZUNhbGxTdHJpbmciKTtpKGlwYSwiZW50ZXJGb290bm90ZUNhbGwiKTtpKHNwYSwiZW50ZXJGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpO2kobnBhLCJlbnRlckZvb3Rub3RlRGVmaW5pdGlvbiIpO2kob3BhLCJleGl0Rm9vdG5vdGVDYWxsU3RyaW5nIik7aShscGEsImV4aXRGb290bm90ZUNhbGwiKTtpKGNwYSwiZXhpdEZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7aShkcGEsImV4aXRGb290bm90ZURlZmluaXRpb24iKTtpKHVwYSwiZm9vdG5vdGVSZWZlcmVuY2VQZWVrIik7aShNJHQsImZvb3Rub3RlUmVmZXJlbmNlIik7aShReGUsImdmbUZvb3Rub3RlRnJvbU1hcmtkb3duIik7aShYeGUsImdmbUZvb3Rub3RlVG9NYXJrZG93biIpO2kocHBhLCJtYXBFeGNlcHRGaXJzdCIpO2koQyR0LCJtYXBBbGwiKX0pO3ZhciBfJHQ9dSgoKT0+e3okdCgpfSk7ZnVuY3Rpb24gSnhlKCl7cmV0dXJue2NhbkNvbnRhaW5Fb2xzOlsiZGVsZXRlIl0sZW50ZXI6e3N0cmlrZXRocm91Z2g6aHBhfSxleGl0OntzdHJpa2V0aHJvdWdoOm1wYX19fWZ1bmN0aW9uIGV2ZSgpe3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6In4iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6ZnBhfV0saGFuZGxlcnM6e2RlbGV0ZTpUJHR9fX1mdW5jdGlvbiBocGEodCl7dGhpcy5lbnRlcih7dHlwZToiZGVsZXRlIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gbXBhKHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBUJHQodCxlLHIsYSl7bGV0IHM9ci5jcmVhdGVUcmFja2VyKGEpLG49ci5lbnRlcigic3RyaWtldGhyb3VnaCIpLG89cy5tb3ZlKCJ+fiIpO3JldHVybiBvKz1yLmNvbnRhaW5lclBocmFzaW5nKHQsey4uLnMuY3VycmVudCgpLGJlZm9yZTpvLGFmdGVyOiJ+In0pLG8rPXMubW92ZSgifn4iKSxuKCksb31mdW5jdGlvbiBncGEoKXtyZXR1cm4ifiJ9dmFyIGZwYSxMJHQ9dSgoKT0+e2ZwYT1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl07VCR0LnBlZWs9Z3BhO2koSnhlLCJnZm1TdHJpa2V0aHJvdWdoRnJvbU1hcmtkb3duIik7aShldmUsImdmbVN0cmlrZXRocm91Z2hUb01hcmtkb3duIik7aShocGEsImVudGVyU3RyaWtldGhyb3VnaCIpO2kobXBhLCJleGl0U3RyaWtldGhyb3VnaCIpO2koVCR0LCJoYW5kbGVEZWxldGUiKTtpKGdwYSwicGVla0RlbGV0ZSIpfSk7dmFyIEQkdD11KCgpPT57TCR0KCl9KTtmdW5jdGlvbiBicGEodCl7cmV0dXJuIHQubGVuZ3RofWZ1bmN0aW9uIEEkdCh0LGUpe2xldCByPWV8fHt9LGE9KHIuYWxpZ258fFtdKS5jb25jYXQoKSxzPXIuc3RyaW5nTGVuZ3RofHxicGEsbj1bXSxvPVtdLGw9W10sYz1bXSxkPTAsZj0tMTtmb3IoOysrZjx0Lmxlbmd0aDspe2xldCBiPVtdLGc9W10seT0tMTtmb3IodFtmXS5sZW5ndGg+ZCYmKGQ9dFtmXS5sZW5ndGgpOysreTx0W2ZdLmxlbmd0aDspe2xldCBrPXhwYSh0W2ZdW3ldKTtpZihyLmFsaWduRGVsaW1pdGVycyE9PSExKXtsZXQgTT1zKGspO2dbeV09TSwoY1t5XT09PXZvaWQgMHx8TT5jW3ldKSYmKGNbeV09TSl9Yi5wdXNoKGspfW9bZl09YixsW2ZdPWd9bGV0IHA9LTE7aWYodHlwZW9mIGE9PSJvYmplY3QiJiYibGVuZ3RoImluIGEpZm9yKDsrK3A8ZDspbltwXT0kJHQoYVtwXSk7ZWxzZXtsZXQgYj0kJHQoYSk7Zm9yKDsrK3A8ZDspbltwXT1ifXA9LTE7bGV0IGg9W10sbT1bXTtmb3IoOysrcDxkOyl7bGV0IGI9bltwXSxnPSIiLHk9IiI7Yj09PTk5PyhnPSI6Iix5PSI6Iik6Yj09PTEwOD9nPSI6IjpiPT09MTE0JiYoeT0iOiIpO2xldCBrPXIuYWxpZ25EZWxpbWl0ZXJzPT09ITE/MTpNYXRoLm1heCgxLGNbcF0tZy5sZW5ndGgteS5sZW5ndGgpLE09ZysiLSIucmVwZWF0KGspK3k7ci5hbGlnbkRlbGltaXRlcnMhPT0hMSYmKGs9Zy5sZW5ndGgrayt5Lmxlbmd0aCxrPmNbcF0mJihjW3BdPWspLG1bcF09ayksaFtwXT1NfW8uc3BsaWNlKDEsMCxoKSxsLnNwbGljZSgxLDAsbSksZj0tMTtsZXQgdj1bXTtmb3IoOysrZjxvLmxlbmd0aDspe2xldCBiPW9bZl0sZz1sW2ZdO3A9LTE7bGV0IHk9W107Zm9yKDsrK3A8ZDspe2xldCBrPWJbcF18fCIiLE09IiIsTj0iIjtpZihyLmFsaWduRGVsaW1pdGVycyE9PSExKXtsZXQgXz1jW3BdLShnW3BdfHwwKSxTPW5bcF07Uz09PTExND9NPSIgIi5yZXBlYXQoXyk6Uz09PTk5P18lMj8oTT0iICIucmVwZWF0KF8vMisuNSksTj0iICIucmVwZWF0KF8vMi0uNSkpOihNPSIgIi5yZXBlYXQoXy8yKSxOPU0pOk49IiAiLnJlcGVhdChfKX1yLmRlbGltaXRlclN0YXJ0IT09ITEmJiFwJiZ5LnB1c2goInwiKSxyLnBhZGRpbmchPT0hMSYmIShyLmFsaWduRGVsaW1pdGVycz09PSExJiZrPT09IiIpJiYoci5kZWxpbWl0ZXJTdGFydCE9PSExfHxwKSYmeS5wdXNoKCIgIiksci5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeS5wdXNoKE0pLHkucHVzaChrKSxyLmFsaWduRGVsaW1pdGVycyE9PSExJiZ5LnB1c2goTiksci5wYWRkaW5nIT09ITEmJnkucHVzaCgiICIpLChyLmRlbGltaXRlckVuZCE9PSExfHxwIT09ZC0xKSYmeS5wdXNoKCJ8Iil9di5wdXNoKHIuZGVsaW1pdGVyRW5kPT09ITE/eS5qb2luKCIiKS5yZXBsYWNlKC8gKyQvLCIiKTp5LmpvaW4oIiIpKX1yZXR1cm4gdi5qb2luKGAKYCl9ZnVuY3Rpb24geHBhKHQpe3JldHVybiB0PT1udWxsPyIiOlN0cmluZyh0KX1mdW5jdGlvbiAkJHQodCl7bGV0IGU9dHlwZW9mIHQ9PSJzdHJpbmciP3QuY29kZVBvaW50QXQoMCk6MDtyZXR1cm4gZT09PTY3fHxlPT09OTk/OTk6ZT09PTc2fHxlPT09MTA4PzEwODplPT09ODJ8fGU9PT0xMTQ/MTE0OjB9dmFyIEUkdD11KCgpPT57aShicGEsImRlZmF1bHRTdHJpbmdMZW5ndGgiKTtpKEEkdCwibWFya2Rvd25UYWJsZSIpO2koeHBhLCJzZXJpYWxpemUiKTtpKCQkdCwidG9BbGlnbm1lbnQiKX0pO2Z1bmN0aW9uIG8xZSh0LGUpe2xldCByPWV8fHt9O2Z1bmN0aW9uIGEocywuLi5uKXtsZXQgbz1hLmludmFsaWQsbD1hLmhhbmRsZXJzO2lmKHMmJkkkdC5jYWxsKHMsdCkpe2xldCBjPVN0cmluZyhzW3RdKTtvPUkkdC5jYWxsKGwsYyk/bFtjXTphLnVua25vd259aWYobylyZXR1cm4gby5jYWxsKHRoaXMscywuLi5uKX1yZXR1cm4gaShhLCJvbmUiKSxhLmhhbmRsZXJzPXIuaGFuZGxlcnN8fHt9LGEuaW52YWxpZD1yLmludmFsaWQsYS51bmtub3duPXIudW5rbm93bixhfXZhciBJJHQsdHZlPXUoKCk9PntJJHQ9e30uaGFzT3duUHJvcGVydHk7aShvMWUsInp3aXRjaCIpfSk7ZnVuY3Rpb24gcnZlKHQsZSl7bGV0IHI9LTEsYTtpZihlLmV4dGVuc2lvbnMpZm9yKDsrK3I8ZS5leHRlbnNpb25zLmxlbmd0aDspcnZlKHQsZS5leHRlbnNpb25zW3JdKTtmb3IoYSBpbiBlKWlmKHZwYS5jYWxsKGUsYSkpc3dpdGNoKGEpe2Nhc2UiZXh0ZW5zaW9ucyI6YnJlYWs7Y2FzZSJ1bnNhZmUiOntQJHQodFthXSxlW2FdKTticmVha31jYXNlImpvaW4iOntQJHQodFthXSxlW2FdKTticmVha31jYXNlImhhbmRsZXJzIjp7eXBhKHRbYV0sZVthXSk7YnJlYWt9ZGVmYXVsdDp0Lm9wdGlvbnNbYV09ZVthXX1yZXR1cm4gdH1mdW5jdGlvbiBQJHQodCxlKXtlJiZ0LnB1c2goLi4uZSl9ZnVuY3Rpb24geXBhKHQsZSl7ZSYmT2JqZWN0LmFzc2lnbih0LGUpfXZhciB2cGEsTiR0PXUoKCk9Pnt2cGE9e30uaGFzT3duUHJvcGVydHk7aShydmUsImNvbmZpZ3VyZSIpO2koUCR0LCJsaXN0Iik7aSh5cGEsIm1hcCIpfSk7ZnVuY3Rpb24gTyR0KHQsZSxyLGEpe2xldCBzPXIuZW50ZXIoImJsb2NrcXVvdGUiKSxuPXIuY3JlYXRlVHJhY2tlcihhKTtuLm1vdmUoIj4gIiksbi5zaGlmdCgyKTtsZXQgbz1yLmluZGVudExpbmVzKHIuY29udGFpbmVyRmxvdyh0LG4uY3VycmVudCgpKSx3cGEpO3JldHVybiBzKCksb31mdW5jdGlvbiB3cGEodCxlLHIpe3JldHVybiI+Iisocj8iIjoiICIpK3R9dmFyIFIkdD11KCgpPT57aShPJHQsImJsb2NrcXVvdGUiKTtpKHdwYSwibWFwIil9KTtmdW5jdGlvbiBsMWUodCxlKXtyZXR1cm4gRiR0KHQsZS5pbkNvbnN0cnVjdCwhMCkmJiFGJHQodCxlLm5vdEluQ29uc3RydWN0LCExKX1mdW5jdGlvbiBGJHQodCxlLHIpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9W2VdKSwhZXx8ZS5sZW5ndGg9PT0wKXJldHVybiByO2xldCBhPS0xO2Zvcig7KythPGUubGVuZ3RoOylpZih0LmluY2x1ZGVzKGVbYV0pKXJldHVybiEwO3JldHVybiExfXZhciBhdmU9dSgoKT0+e2kobDFlLCJwYXR0ZXJuSW5TY29wZSIpO2koRiR0LCJsaXN0SW5TY29wZSIpfSk7ZnVuY3Rpb24gaXZlKHQsZSxyLGEpe2xldCBzPS0xO2Zvcig7KytzPHIudW5zYWZlLmxlbmd0aDspaWYoci51bnNhZmVbc10uY2hhcmFjdGVyPT09YApgJiZsMWUoci5zdGFjayxyLnVuc2FmZVtzXSkpcmV0dXJuL1sgXHRdLy50ZXN0KGEuYmVmb3JlKT8iIjoiICI7cmV0dXJuYFxcCmB9dmFyIEIkdD11KCgpPT57YXZlKCk7aShpdmUsImhhcmRCcmVhayIpfSk7ZnVuY3Rpb24gSCR0KHQsZSl7bGV0IHI9U3RyaW5nKHQpLGE9ci5pbmRleE9mKGUpLHM9YSxuPTAsbz0wO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBzdWJzdHJpbmciKTtmb3IoO2EhPT0tMTspYT09PXM/KytuPm8mJihvPW4pOm49MSxzPWErZS5sZW5ndGgsYT1yLmluZGV4T2YoZSxzKTtyZXR1cm4gb312YXIgcSR0PXUoKCk9PntpKEgkdCwibG9uZ2VzdFN0cmVhayIpfSk7ZnVuY3Rpb24gTU0odCxlKXtyZXR1cm4hIShlLm9wdGlvbnMuZmVuY2VzPT09ITEmJnQudmFsdWUmJiF0LmxhbmcmJi9bXiBcclxuXS8udGVzdCh0LnZhbHVlKSYmIS9eW1x0IF0qKD86W1xyXG5dfCQpfCg/Ol58W1xyXG5dKVtcdCBdKiQvLnRlc3QodC52YWx1ZSkpfXZhciBzdmU9dSgoKT0+e2koTU0sImZvcm1hdENvZGVBc0luZGVudGVkIil9KTtmdW5jdGlvbiBWJHQodCl7bGV0IGU9dC5vcHRpb25zLmZlbmNlfHwiYCI7aWYoZSE9PSJgIiYmZSE9PSJ+Iil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgY29kZSB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmZlbmNlYCwgZXhwZWN0ZWQgYGAgYCBgYCBvciBgfmAiKTtyZXR1cm4gZX12YXIgaiR0PXUoKCk9PntpKFYkdCwiY2hlY2tGZW5jZSIpfSk7ZnVuY3Rpb24gVSR0KHQsZSxyLGEpe2xldCBzPVYkdChyKSxuPXQudmFsdWV8fCIiLG89cz09PSJgIj8iR3JhdmVBY2NlbnQiOiJUaWxkZSI7aWYoTU0odCxyKSl7bGV0IHA9ci5lbnRlcigiY29kZUluZGVudGVkIiksaD1yLmluZGVudExpbmVzKG4sa3BhKTtyZXR1cm4gcCgpLGh9bGV0IGw9ci5jcmVhdGVUcmFja2VyKGEpLGM9cy5yZXBlYXQoTWF0aC5tYXgoSCR0KG4scykrMSwzKSksZD1yLmVudGVyKCJjb2RlRmVuY2VkIiksZj1sLm1vdmUoYyk7aWYodC5sYW5nKXtsZXQgcD1yLmVudGVyKGBjb2RlRmVuY2VkTGFuZyR7b31gKTtmKz1sLm1vdmUoci5zYWZlKHQubGFuZyx7YmVmb3JlOmYsYWZ0ZXI6IiAiLGVuY29kZTpbImAiXSwuLi5sLmN1cnJlbnQoKX0pKSxwKCl9aWYodC5sYW5nJiZ0Lm1ldGEpe2xldCBwPXIuZW50ZXIoYGNvZGVGZW5jZWRNZXRhJHtvfWApO2YrPWwubW92ZSgiICIpLGYrPWwubW92ZShyLnNhZmUodC5tZXRhLHtiZWZvcmU6ZixhZnRlcjpgCmAsZW5jb2RlOlsiYCJdLC4uLmwuY3VycmVudCgpfSkpLHAoKX1yZXR1cm4gZis9bC5tb3ZlKGAKYCksbiYmKGYrPWwubW92ZShuK2AKYCkpLGYrPWwubW92ZShjKSxkKCksZn1mdW5jdGlvbiBrcGEodCxlLHIpe3JldHVybihyPyIiOiIgICAgIikrdH12YXIgVyR0PXUoKCk9PntxJHQoKTtzdmUoKTtqJHQoKTtpKFUkdCwiY29kZSIpO2koa3BhLCJtYXAiKX0pO2Z1bmN0aW9uIGx4KHQpe2xldCBlPXQub3B0aW9ucy5xdW90ZXx8JyInO2lmKGUhPT0nIicmJmUhPT0iJyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHRpdGxlIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMucXVvdGVgLCBleHBlY3RlZCBgXCJgLCBvciBgJ2AiKTtyZXR1cm4gZX12YXIgYzFlPXUoKCk9PntpKGx4LCJjaGVja1F1b3RlIil9KTtmdW5jdGlvbiBHJHQodCxlLHIsYSl7bGV0IHM9bHgociksbj1zPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5lbnRlcigiZGVmaW5pdGlvbiIpLGw9ci5lbnRlcigibGFiZWwiKSxjPXIuY3JlYXRlVHJhY2tlcihhKSxkPWMubW92ZSgiWyIpO3JldHVybiBkKz1jLm1vdmUoci5zYWZlKHIuYXNzb2NpYXRpb25JZCh0KSx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLmMuY3VycmVudCgpfSkpLGQrPWMubW92ZSgiXTogIiksbCgpLCF0LnVybHx8L1tcMC0gXHUwMDdGXS8udGVzdCh0LnVybCk/KGw9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksZCs9Yy5tb3ZlKCI8IiksZCs9Yy5tb3ZlKHIuc2FmZSh0LnVybCx7YmVmb3JlOmQsYWZ0ZXI6Ij4iLC4uLmMuY3VycmVudCgpfSkpLGQrPWMubW92ZSgiPiIpKToobD1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGQrPWMubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOnQudGl0bGU/IiAiOmAKYCwuLi5jLmN1cnJlbnQoKX0pKSksbCgpLHQudGl0bGUmJihsPXIuZW50ZXIoYHRpdGxlJHtufWApLGQrPWMubW92ZSgiICIrcyksZCs9Yy5tb3ZlKHIuc2FmZSh0LnRpdGxlLHtiZWZvcmU6ZCxhZnRlcjpzLC4uLmMuY3VycmVudCgpfSkpLGQrPWMubW92ZShzKSxsKCkpLG8oKSxkfXZhciBZJHQ9dSgoKT0+e2MxZSgpO2koRyR0LCJkZWZpbml0aW9uIil9KTtmdW5jdGlvbiBLJHQodCl7bGV0IGU9dC5vcHRpb25zLmVtcGhhc2lzfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgZW1waGFzaXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5lbXBoYXNpc2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIFokdD11KCgpPT57aShLJHQsImNoZWNrRW1waGFzaXMiKX0pO2Z1bmN0aW9uIFcxKHQpe3JldHVybiImI3giK3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIjsifXZhciBjeD11KCgpPT57aShXMSwiZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBhNCh0KXtpZih0PT09bnVsbHx8TnIodCl8fG0wKHQpKXJldHVybiAxO2lmKHloKHQpKXJldHVybiAyfXZhciBkMWU9dSgoKT0+e1dyKCk7aShhNCwiY2xhc3NpZnlDaGFyYWN0ZXIiKX0pO2Z1bmN0aW9uIGR4KHQsZSxyKXtsZXQgYT1hNCh0KSxzPWE0KGUpO3JldHVybiBhPT09dm9pZCAwP3M9PT12b2lkIDA/cj09PSJfIj97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06cz09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITB9OmE9PT0xP3M9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpzPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06cz09PXZvaWQgMD97aW5zaWRlOiExLG91dHNpZGU6ITF9OnM9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMX06e2luc2lkZTohMSxvdXRzaWRlOiExfX12YXIgbnZlPXUoKCk9PntkMWUoKTtpKGR4LCJlbmNvZGVJbmZvIil9KTtmdW5jdGlvbiBvdmUodCxlLHIsYSl7bGV0IHM9SyR0KHIpLG49ci5lbnRlcigiZW1waGFzaXMiKSxvPXIuY3JlYXRlVHJhY2tlcihhKSxsPW8ubW92ZShzKSxjPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKHQse2FmdGVyOnMsYmVmb3JlOmwsLi4uby5jdXJyZW50KCl9KSksZD1jLmNoYXJDb2RlQXQoMCksZj1keChhLmJlZm9yZS5jaGFyQ29kZUF0KGEuYmVmb3JlLmxlbmd0aC0xKSxkLHMpO2YuaW5zaWRlJiYoYz1XMShkKStjLnNsaWNlKDEpKTtsZXQgcD1jLmNoYXJDb2RlQXQoYy5sZW5ndGgtMSksaD1keChhLmFmdGVyLmNoYXJDb2RlQXQoMCkscCxzKTtoLmluc2lkZSYmKGM9Yy5zbGljZSgwLC0xKStXMShwKSk7bGV0IG09by5tb3ZlKHMpO3JldHVybiBuKCksci5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89e2FmdGVyOmgub3V0c2lkZSxiZWZvcmU6Zi5vdXRzaWRlfSxsK2MrbX1mdW5jdGlvbiBTcGEodCxlLHIpe3JldHVybiByLm9wdGlvbnMuZW1waGFzaXN8fCIqIn12YXIgUSR0PXUoKCk9PntaJHQoKTtjeCgpO252ZSgpO292ZS5wZWVrPVNwYTtpKG92ZSwiZW1waGFzaXMiKTtpKFNwYSwiZW1waGFzaXNQZWVrIil9KTtmdW5jdGlvbiBDTSh0LGUscixhKXtsZXQgcyxuLG87dHlwZW9mIGU9PSJmdW5jdGlvbiImJnR5cGVvZiByIT0iZnVuY3Rpb24iPyhuPXZvaWQgMCxvPWUscz1yKToobj1lLG89cixzPWEpLFNNKHQsbixsLHMpO2Z1bmN0aW9uIGwoYyxkKXtsZXQgZj1kW2QubGVuZ3RoLTFdLHA9Zj9mLmNoaWxkcmVuLmluZGV4T2YoYyk6dm9pZCAwO3JldHVybiBvKGMscCxmKX1pKGwsIm92ZXJsb2FkIil9dmFyIFgkdD11KCgpPT57bjFlKCk7bjFlKCk7aShDTSwidmlzaXQiKX0pO3ZhciBsdmU9dSgoKT0+e1gkdCgpfSk7ZnVuY3Rpb24ga2godCxlKXtsZXQgcj1lfHxNcGEsYT10eXBlb2Ygci5pbmNsdWRlSW1hZ2VBbHQ9PSJib29sZWFuIj9yLmluY2x1ZGVJbWFnZUFsdDohMCxzPXR5cGVvZiByLmluY2x1ZGVIdG1sPT0iYm9vbGVhbiI/ci5pbmNsdWRlSHRtbDohMDtyZXR1cm4gSiR0KHQsYSxzKX1mdW5jdGlvbiBKJHQodCxlLHIpe2lmKENwYSh0KSl7aWYoInZhbHVlImluIHQpcmV0dXJuIHQudHlwZT09PSJodG1sIiYmIXI/IiI6dC52YWx1ZTtpZihlJiYiYWx0ImluIHQmJnQuYWx0KXJldHVybiB0LmFsdDtpZigiY2hpbGRyZW4iaW4gdClyZXR1cm4gZUF0KHQuY2hpbGRyZW4sZSxyKX1yZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9lQXQodCxlLHIpOiIifWZ1bmN0aW9uIGVBdCh0LGUscil7bGV0IGE9W10scz0tMTtmb3IoOysrczx0Lmxlbmd0aDspYVtzXT1KJHQodFtzXSxlLHIpO3JldHVybiBhLmpvaW4oIiIpfWZ1bmN0aW9uIENwYSh0KXtyZXR1cm4hISh0JiZ0eXBlb2YgdD09Im9iamVjdCIpfXZhciBNcGEsdEF0PXUoKCk9PntNcGE9e307aShraCwidG9TdHJpbmciKTtpKEokdCwib25lIik7aShlQXQsImFsbCIpO2koQ3BhLCJub2RlIil9KTt2YXIgdTFlPXUoKCk9Pnt0QXQoKX0pO2Z1bmN0aW9uIHAxZSh0LGUpe2xldCByPSExO3JldHVybiBDTSh0LGZ1bmN0aW9uKGEpe2lmKCJ2YWx1ZSJpbiBhJiYvXHI/XG58XHIvLnRlc3QoYS52YWx1ZSl8fGEudHlwZT09PSJicmVhayIpcmV0dXJuIHI9ITAsd2h9KSwhISgoIXQuZGVwdGh8fHQuZGVwdGg8MykmJmtoKHQpJiYoZS5vcHRpb25zLnNldGV4dHx8cikpfXZhciBjdmU9dSgoKT0+e2x2ZSgpO3UxZSgpO2kocDFlLCJmb3JtYXRIZWFkaW5nQXNTZXRleHQiKX0pO2Z1bmN0aW9uIHJBdCh0LGUscixhKXtsZXQgcz1NYXRoLm1heChNYXRoLm1pbig2LHQuZGVwdGh8fDEpLDEpLG49ci5jcmVhdGVUcmFja2VyKGEpO2lmKHAxZSh0LHIpKXtsZXQgZj1yLmVudGVyKCJoZWFkaW5nU2V0ZXh0IikscD1yLmVudGVyKCJwaHJhc2luZyIpLGg9ci5jb250YWluZXJQaHJhc2luZyh0LHsuLi5uLmN1cnJlbnQoKSxiZWZvcmU6YApgLGFmdGVyOmAKYH0pO3JldHVybiBwKCksZigpLGgrYApgKyhzPT09MT8iPSI6Ii0iKS5yZXBlYXQoaC5sZW5ndGgtKE1hdGgubWF4KGgubGFzdEluZGV4T2YoIlxyIiksaC5sYXN0SW5kZXhPZihgCmApKSsxKSl9bGV0IG89IiMiLnJlcGVhdChzKSxsPXIuZW50ZXIoImhlYWRpbmdBdHgiKSxjPXIuZW50ZXIoInBocmFzaW5nIik7bi5tb3ZlKG8rIiAiKTtsZXQgZD1yLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZToiIyAiLGFmdGVyOmAKYCwuLi5uLmN1cnJlbnQoKX0pO3JldHVybi9eW1x0IF0vLnRlc3QoZCkmJihkPVcxKGQuY2hhckNvZGVBdCgwKSkrZC5zbGljZSgxKSksZD1kP28rIiAiK2Q6byxyLm9wdGlvbnMuY2xvc2VBdHgmJihkKz0iICIrbyksYygpLGwoKSxkfXZhciBhQXQ9dSgoKT0+e2N4KCk7Y3ZlKCk7aShyQXQsImhlYWRpbmciKX0pO2Z1bmN0aW9uIGR2ZSh0KXtyZXR1cm4gdC52YWx1ZXx8IiJ9ZnVuY3Rpb24genBhKCl7cmV0dXJuIjwifXZhciBpQXQ9dSgoKT0+e2R2ZS5wZWVrPXpwYTtpKGR2ZSwiaHRtbCIpO2koenBhLCJodG1sUGVlayIpfSk7ZnVuY3Rpb24gdXZlKHQsZSxyLGEpe2xldCBzPWx4KHIpLG49cz09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuZW50ZXIoImltYWdlIiksbD1yLmVudGVyKCJsYWJlbCIpLGM9ci5jcmVhdGVUcmFja2VyKGEpLGQ9Yy5tb3ZlKCIhWyIpO3JldHVybiBkKz1jLm1vdmUoci5zYWZlKHQuYWx0LHtiZWZvcmU6ZCxhZnRlcjoiXSIsLi4uYy5jdXJyZW50KCl9KSksZCs9Yy5tb3ZlKCJdKCIpLGwoKSwhdC51cmwmJnQudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3QodC51cmwpPyhsPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPWMubW92ZSgiPCIpLGQrPWMubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUoIj4iKSk6KGw9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1jLm1vdmUoci5zYWZlKHQudXJsLHtiZWZvcmU6ZCxhZnRlcjp0LnRpdGxlPyIgIjoiKSIsLi4uYy5jdXJyZW50KCl9KSkpLGwoKSx0LnRpdGxlJiYobD1yLmVudGVyKGB0aXRsZSR7bn1gKSxkKz1jLm1vdmUoIiAiK3MpLGQrPWMubW92ZShyLnNhZmUodC50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6cywuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUocyksbCgpKSxkKz1jLm1vdmUoIikiKSxvKCksZH1mdW5jdGlvbiBfcGEoKXtyZXR1cm4iISJ9dmFyIHNBdD11KCgpPT57YzFlKCk7dXZlLnBlZWs9X3BhO2kodXZlLCJpbWFnZSIpO2koX3BhLCJpbWFnZVBlZWsiKX0pO2Z1bmN0aW9uIHB2ZSh0LGUscixhKXtsZXQgcz10LnJlZmVyZW5jZVR5cGUsbj1yLmVudGVyKCJpbWFnZVJlZmVyZW5jZSIpLG89ci5lbnRlcigibGFiZWwiKSxsPXIuY3JlYXRlVHJhY2tlcihhKSxjPWwubW92ZSgiIVsiKSxkPXIuc2FmZSh0LmFsdCx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7Yys9bC5tb3ZlKGQrIl1bIiksbygpO2xldCBmPXIuc3RhY2s7ci5zdGFjaz1bXSxvPXIuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBwPXIuc2FmZShyLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBvKCksci5zdGFjaz1mLG4oKSxzPT09ImZ1bGwifHwhZHx8ZCE9PXA/Yys9bC5tb3ZlKHArIl0iKTpzPT09InNob3J0Y3V0Ij9jPWMuc2xpY2UoMCwtMSk6Yys9bC5tb3ZlKCJdIiksY31mdW5jdGlvbiBUcGEoKXtyZXR1cm4iISJ9dmFyIG5BdD11KCgpPT57cHZlLnBlZWs9VHBhO2kocHZlLCJpbWFnZVJlZmVyZW5jZSIpO2koVHBhLCJpbWFnZVJlZmVyZW5jZVBlZWsiKX0pO2Z1bmN0aW9uIGZ2ZSh0LGUscil7bGV0IGE9dC52YWx1ZXx8IiIscz0iYCIsbj0tMTtmb3IoO25ldyBSZWdFeHAoIihefFteYF0pIitzKyIoW15gXXwkKSIpLnRlc3QoYSk7KXMrPSJgIjtmb3IoL1teIFxyXG5dLy50ZXN0KGEpJiYoL15bIFxyXG5dLy50ZXN0KGEpJiYvWyBcclxuXSQvLnRlc3QoYSl8fC9eYHxgJC8udGVzdChhKSkmJihhPSIgIithKyIgIik7KytuPHIudW5zYWZlLmxlbmd0aDspe2xldCBvPXIudW5zYWZlW25dLGw9ci5jb21waWxlUGF0dGVybihvKSxjO2lmKG8uYXRCcmVhaylmb3IoO2M9bC5leGVjKGEpOyl7bGV0IGQ9Yy5pbmRleDthLmNoYXJDb2RlQXQoZCk9PT0xMCYmYS5jaGFyQ29kZUF0KGQtMSk9PT0xMyYmZC0tLGE9YS5zbGljZSgwLGQpKyIgIithLnNsaWNlKGMuaW5kZXgrMSl9fXJldHVybiBzK2Erc31mdW5jdGlvbiBMcGEoKXtyZXR1cm4iYCJ9dmFyIG9BdD11KCgpPT57ZnZlLnBlZWs9THBhO2koZnZlLCJpbmxpbmVDb2RlIik7aShMcGEsImlubGluZUNvZGVQZWVrIil9KTtmdW5jdGlvbiBodmUodCxlKXtsZXQgcj1raCh0KTtyZXR1cm4hISghZS5vcHRpb25zLnJlc291cmNlTGluayYmdC51cmwmJiF0LnRpdGxlJiZ0LmNoaWxkcmVuJiZ0LmNoaWxkcmVuLmxlbmd0aD09PTEmJnQuY2hpbGRyZW5bMF0udHlwZT09PSJ0ZXh0IiYmKHI9PT10LnVybHx8Im1haWx0bzoiK3I9PT10LnVybCkmJi9eW2Etel1bYS16Ky4tXSs6L2kudGVzdCh0LnVybCkmJiEvW1wwLSA8Plx1MDA3Rl0vLnRlc3QodC51cmwpKX12YXIgbEF0PXUoKCk9Pnt1MWUoKTtpKGh2ZSwiZm9ybWF0TGlua0FzQXV0b2xpbmsiKX0pO2Z1bmN0aW9uIG12ZSh0LGUscixhKXtsZXQgcz1seChyKSxuPXM9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbz1yLmNyZWF0ZVRyYWNrZXIoYSksbCxjO2lmKGh2ZSh0LHIpKXtsZXQgZj1yLnN0YWNrO3Iuc3RhY2s9W10sbD1yLmVudGVyKCJhdXRvbGluayIpO2xldCBwPW8ubW92ZSgiPCIpO3JldHVybiBwKz1vLm1vdmUoci5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6cCxhZnRlcjoiPiIsLi4uby5jdXJyZW50KCl9KSkscCs9by5tb3ZlKCI+IiksbCgpLHIuc3RhY2s9ZixwfWw9ci5lbnRlcigibGluayIpLGM9ci5lbnRlcigibGFiZWwiKTtsZXQgZD1vLm1vdmUoIlsiKTtyZXR1cm4gZCs9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcodCx7YmVmb3JlOmQsYWZ0ZXI6Il0oIiwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUoIl0oIiksYygpLCF0LnVybCYmdC50aXRsZXx8L1tcMC0gXHUwMDdGXS8udGVzdCh0LnVybCk/KGM9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksZCs9by5tb3ZlKCI8IiksZCs9by5tb3ZlKHIuc2FmZSh0LnVybCx7YmVmb3JlOmQsYWZ0ZXI6Ij4iLC4uLm8uY3VycmVudCgpfSkpLGQrPW8ubW92ZSgiPiIpKTooYz1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGQrPW8ubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOnQudGl0bGU/IiAiOiIpIiwuLi5vLmN1cnJlbnQoKX0pKSksYygpLHQudGl0bGUmJihjPXIuZW50ZXIoYHRpdGxlJHtufWApLGQrPW8ubW92ZSgiICIrcyksZCs9by5tb3ZlKHIuc2FmZSh0LnRpdGxlLHtiZWZvcmU6ZCxhZnRlcjpzLC4uLm8uY3VycmVudCgpfSkpLGQrPW8ubW92ZShzKSxjKCkpLGQrPW8ubW92ZSgiKSIpLGwoKSxkfWZ1bmN0aW9uIERwYSh0LGUscil7cmV0dXJuIGh2ZSh0LHIpPyI8IjoiWyJ9dmFyIGNBdD11KCgpPT57YzFlKCk7bEF0KCk7bXZlLnBlZWs9RHBhO2kobXZlLCJsaW5rIik7aShEcGEsImxpbmtQZWVrIil9KTtmdW5jdGlvbiBndmUodCxlLHIsYSl7bGV0IHM9dC5yZWZlcmVuY2VUeXBlLG49ci5lbnRlcigibGlua1JlZmVyZW5jZSIpLG89ci5lbnRlcigibGFiZWwiKSxsPXIuY3JlYXRlVHJhY2tlcihhKSxjPWwubW92ZSgiWyIpLGQ9ci5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6YyxhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KTtjKz1sLm1vdmUoZCsiXVsiKSxvKCk7bGV0IGY9ci5zdGFjaztyLnN0YWNrPVtdLG89ci5lbnRlcigicmVmZXJlbmNlIik7bGV0IHA9ci5zYWZlKHIuYXNzb2NpYXRpb25JZCh0KSx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7cmV0dXJuIG8oKSxyLnN0YWNrPWYsbigpLHM9PT0iZnVsbCJ8fCFkfHxkIT09cD9jKz1sLm1vdmUocCsiXSIpOnM9PT0ic2hvcnRjdXQiP2M9Yy5zbGljZSgwLC0xKTpjKz1sLm1vdmUoIl0iKSxjfWZ1bmN0aW9uICRwYSgpe3JldHVybiJbIn12YXIgZEF0PXUoKCk9PntndmUucGVlaz0kcGE7aShndmUsImxpbmtSZWZlcmVuY2UiKTtpKCRwYSwibGlua1JlZmVyZW5jZVBlZWsiKX0pO2Z1bmN0aW9uIHV4KHQpe2xldCBlPXQub3B0aW9ucy5idWxsZXR8fCIqIjtpZihlIT09IioiJiZlIT09IisiJiZlIT09Ii0iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmJ1bGxldGAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtyZXR1cm4gZX12YXIgZjFlPXUoKCk9PntpKHV4LCJjaGVja0J1bGxldCIpfSk7ZnVuY3Rpb24gdUF0KHQpe2xldCBlPXV4KHQpLHI9dC5vcHRpb25zLmJ1bGxldE90aGVyO2lmKCFyKXJldHVybiBlPT09IioiPyItIjoiKiI7aWYociE9PSIqIiYmciE9PSIrIiYmciE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIityKyJgIGZvciBgb3B0aW9ucy5idWxsZXRPdGhlcmAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtpZihyPT09ZSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGBidWxsZXRgIChgIitlKyJgKSBhbmQgYGJ1bGxldE90aGVyYCAoYCIrcisiYCkgdG8gYmUgZGlmZmVyZW50Iik7cmV0dXJuIHJ9dmFyIHBBdD11KCgpPT57ZjFlKCk7aSh1QXQsImNoZWNrQnVsbGV0T3RoZXIiKX0pO2Z1bmN0aW9uIGZBdCh0KXtsZXQgZT10Lm9wdGlvbnMuYnVsbGV0T3JkZXJlZHx8Ii4iO2lmKGUhPT0iLiImJmUhPT0iKSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3JkZXJlZGAsIGV4cGVjdGVkIGAuYCBvciBgKWAiKTtyZXR1cm4gZX12YXIgaEF0PXUoKCk9PntpKGZBdCwiY2hlY2tCdWxsZXRPcmRlcmVkIil9KTtmdW5jdGlvbiBoMWUodCl7bGV0IGU9dC5vcHRpb25zLnJ1bGV8fCIqIjtpZihlIT09IioiJiZlIT09Ii0iJiZlIT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnJ1bGVgLCBleHBlY3RlZCBgKmAsIGAtYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIGJ2ZT11KCgpPT57aShoMWUsImNoZWNrUnVsZSIpfSk7ZnVuY3Rpb24gbUF0KHQsZSxyLGEpe2xldCBzPXIuZW50ZXIoImxpc3QiKSxuPXIuYnVsbGV0Q3VycmVudCxvPXQub3JkZXJlZD9mQXQocik6dXgociksbD10Lm9yZGVyZWQ/bz09PSIuIj8iKSI6Ii4iOnVBdChyKSxjPWUmJnIuYnVsbGV0TGFzdFVzZWQ/bz09PXIuYnVsbGV0TGFzdFVzZWQ6ITE7aWYoIXQub3JkZXJlZCl7bGV0IGY9dC5jaGlsZHJlbj90LmNoaWxkcmVuWzBdOnZvaWQgMDtpZigobz09PSIqInx8bz09PSItIikmJmYmJighZi5jaGlsZHJlbnx8IWYuY2hpbGRyZW5bMF0pJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTFdPT09Imxpc3QiJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTJdPT09Imxpc3RJdGVtIiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0zXT09PSJsaXN0IiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC00XT09PSJsaXN0SXRlbSImJnIuaW5kZXhTdGFja1tyLmluZGV4U3RhY2subGVuZ3RoLTFdPT09MCYmci5pbmRleFN0YWNrW3IuaW5kZXhTdGFjay5sZW5ndGgtMl09PT0wJiZyLmluZGV4U3RhY2tbci5pbmRleFN0YWNrLmxlbmd0aC0zXT09PTAmJihjPSEwKSxoMWUocik9PT1vJiZmKXtsZXQgcD0tMTtmb3IoOysrcDx0LmNoaWxkcmVuLmxlbmd0aDspe2xldCBoPXQuY2hpbGRyZW5bcF07aWYoaCYmaC50eXBlPT09Imxpc3RJdGVtIiYmaC5jaGlsZHJlbiYmaC5jaGlsZHJlblswXSYmaC5jaGlsZHJlblswXS50eXBlPT09InRoZW1hdGljQnJlYWsiKXtjPSEwO2JyZWFrfX19fWMmJihvPWwpLHIuYnVsbGV0Q3VycmVudD1vO2xldCBkPXIuY29udGFpbmVyRmxvdyh0LGEpO3JldHVybiByLmJ1bGxldExhc3RVc2VkPW8sci5idWxsZXRDdXJyZW50PW4scygpLGR9dmFyIGdBdD11KCgpPT57ZjFlKCk7cEF0KCk7aEF0KCk7YnZlKCk7aShtQXQsImxpc3QiKX0pO2Z1bmN0aW9uIGJBdCh0KXtsZXQgZT10Lm9wdGlvbnMubGlzdEl0ZW1JbmRlbnR8fCJvbmUiO2lmKGUhPT0idGFiIiYmZSE9PSJvbmUiJiZlIT09Im1peGVkIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5saXN0SXRlbUluZGVudGAsIGV4cGVjdGVkIGB0YWJgLCBgb25lYCwgb3IgYG1peGVkYCIpO3JldHVybiBlfXZhciB4QXQ9dSgoKT0+e2koYkF0LCJjaGVja0xpc3RJdGVtSW5kZW50Iil9KTtmdW5jdGlvbiB2QXQodCxlLHIsYSl7bGV0IHM9YkF0KHIpLG49ci5idWxsZXRDdXJyZW50fHx1eChyKTtlJiZlLnR5cGU9PT0ibGlzdCImJmUub3JkZXJlZCYmKG49KHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydD4tMT9lLnN0YXJ0OjEpKyhyLm9wdGlvbnMuaW5jcmVtZW50TGlzdE1hcmtlcj09PSExPzA6ZS5jaGlsZHJlbi5pbmRleE9mKHQpKStuKTtsZXQgbz1uLmxlbmd0aCsxOyhzPT09InRhYiJ8fHM9PT0ibWl4ZWQiJiYoZSYmZS50eXBlPT09Imxpc3QiJiZlLnNwcmVhZHx8dC5zcHJlYWQpKSYmKG89TWF0aC5jZWlsKG8vNCkqNCk7bGV0IGw9ci5jcmVhdGVUcmFja2VyKGEpO2wubW92ZShuKyIgIi5yZXBlYXQoby1uLmxlbmd0aCkpLGwuc2hpZnQobyk7bGV0IGM9ci5lbnRlcigibGlzdEl0ZW0iKSxkPXIuaW5kZW50TGluZXMoci5jb250YWluZXJGbG93KHQsbC5jdXJyZW50KCkpLGYpO3JldHVybiBjKCksZDtmdW5jdGlvbiBmKHAsaCxtKXtyZXR1cm4gaD8obT8iIjoiICIucmVwZWF0KG8pKStwOihtP246bisiICIucmVwZWF0KG8tbi5sZW5ndGgpKStwfWkoZiwibWFwIil9dmFyIHlBdD11KCgpPT57ZjFlKCk7eEF0KCk7aSh2QXQsImxpc3RJdGVtIil9KTtmdW5jdGlvbiB3QXQodCxlLHIsYSl7bGV0IHM9ci5lbnRlcigicGFyYWdyYXBoIiksbj1yLmVudGVyKCJwaHJhc2luZyIpLG89ci5jb250YWluZXJQaHJhc2luZyh0LGEpO3JldHVybiBuKCkscygpLG99dmFyIGtBdD11KCgpPT57aSh3QXQsInBhcmFncmFwaCIpfSk7dmFyIHh2ZSxTQXQ9dSgoKT0+e2ExZSgpO3h2ZT1yNChbImJyZWFrIiwiZGVsZXRlIiwiZW1waGFzaXMiLCJmb290bm90ZSIsImZvb3Rub3RlUmVmZXJlbmNlIiwiaW1hZ2UiLCJpbWFnZVJlZmVyZW5jZSIsImlubGluZUNvZGUiLCJpbmxpbmVNYXRoIiwibGluayIsImxpbmtSZWZlcmVuY2UiLCJtZHhKc3hUZXh0RWxlbWVudCIsIm1keFRleHRFeHByZXNzaW9uIiwic3Ryb25nIiwidGV4dCIsInRleHREaXJlY3RpdmUiXSl9KTt2YXIgTUF0PXUoKCk9PntTQXQoKX0pO2Z1bmN0aW9uIENBdCh0LGUscixhKXtyZXR1cm4odC5jaGlsZHJlbi5zb21lKGZ1bmN0aW9uKG8pe3JldHVybiB4dmUobyl9KT9yLmNvbnRhaW5lclBocmFzaW5nOnIuY29udGFpbmVyRmxvdykuY2FsbChyLHQsYSl9dmFyIHpBdD11KCgpPT57TUF0KCk7aShDQXQsInJvb3QiKX0pO2Z1bmN0aW9uIF9BdCh0KXtsZXQgZT10Lm9wdGlvbnMuc3Ryb25nfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgc3Ryb25nIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuc3Ryb25nYCwgZXhwZWN0ZWQgYCpgLCBvciBgX2AiKTtyZXR1cm4gZX12YXIgVEF0PXUoKCk9PntpKF9BdCwiY2hlY2tTdHJvbmciKX0pO2Z1bmN0aW9uIHZ2ZSh0LGUscixhKXtsZXQgcz1fQXQociksbj1yLmVudGVyKCJzdHJvbmciKSxvPXIuY3JlYXRlVHJhY2tlcihhKSxsPW8ubW92ZShzK3MpLGM9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcodCx7YWZ0ZXI6cyxiZWZvcmU6bCwuLi5vLmN1cnJlbnQoKX0pKSxkPWMuY2hhckNvZGVBdCgwKSxmPWR4KGEuYmVmb3JlLmNoYXJDb2RlQXQoYS5iZWZvcmUubGVuZ3RoLTEpLGQscyk7Zi5pbnNpZGUmJihjPVcxKGQpK2Muc2xpY2UoMSkpO2xldCBwPWMuY2hhckNvZGVBdChjLmxlbmd0aC0xKSxoPWR4KGEuYWZ0ZXIuY2hhckNvZGVBdCgwKSxwLHMpO2guaW5zaWRlJiYoYz1jLnNsaWNlKDAsLTEpK1cxKHApKTtsZXQgbT1vLm1vdmUocytzKTtyZXR1cm4gbigpLHIuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOmYub3V0c2lkZX0sbCtjK219ZnVuY3Rpb24gQXBhKHQsZSxyKXtyZXR1cm4gci5vcHRpb25zLnN0cm9uZ3x8IioifXZhciBMQXQ9dSgoKT0+e1RBdCgpO2N4KCk7bnZlKCk7dnZlLnBlZWs9QXBhO2kodnZlLCJzdHJvbmciKTtpKEFwYSwic3Ryb25nUGVlayIpfSk7ZnVuY3Rpb24gREF0KHQsZSxyLGEpe3JldHVybiByLnNhZmUodC52YWx1ZSxhKX12YXIgJEF0PXUoKCk9PntpKERBdCwidGV4dCIpfSk7ZnVuY3Rpb24gQUF0KHQpe2xldCBlPXQub3B0aW9ucy5ydWxlUmVwZXRpdGlvbnx8MztpZihlPDMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHJ1bGVzIHdpdGggcmVwZXRpdGlvbiBgIitlKyJgIGZvciBgb3B0aW9ucy5ydWxlUmVwZXRpdGlvbmAsIGV4cGVjdGVkIGAzYCBvciBtb3JlIik7cmV0dXJuIGV9dmFyIEVBdD11KCgpPT57aShBQXQsImNoZWNrUnVsZVJlcGV0aXRpb24iKX0pO2Z1bmN0aW9uIElBdCh0LGUscil7bGV0IGE9KGgxZShyKSsoci5vcHRpb25zLnJ1bGVTcGFjZXM/IiAiOiIiKSkucmVwZWF0KEFBdChyKSk7cmV0dXJuIHIub3B0aW9ucy5ydWxlU3BhY2VzP2Euc2xpY2UoMCwtMSk6YX12YXIgUEF0PXUoKCk9PntFQXQoKTtidmUoKTtpKElBdCwidGhlbWF0aWNCcmVhayIpfSk7dmFyIFNoLHl2ZT11KCgpPT57UiR0KCk7QiR0KCk7VyR0KCk7WSR0KCk7USR0KCk7YUF0KCk7aUF0KCk7c0F0KCk7bkF0KCk7b0F0KCk7Y0F0KCk7ZEF0KCk7Z0F0KCk7eUF0KCk7a0F0KCk7ekF0KCk7TEF0KCk7JEF0KCk7UEF0KCk7U2g9e2Jsb2NrcXVvdGU6TyR0LGJyZWFrOml2ZSxjb2RlOlUkdCxkZWZpbml0aW9uOkckdCxlbXBoYXNpczpvdmUsaGFyZEJyZWFrOml2ZSxoZWFkaW5nOnJBdCxodG1sOmR2ZSxpbWFnZTp1dmUsaW1hZ2VSZWZlcmVuY2U6cHZlLGlubGluZUNvZGU6ZnZlLGxpbms6bXZlLGxpbmtSZWZlcmVuY2U6Z3ZlLGxpc3Q6bUF0LGxpc3RJdGVtOnZBdCxwYXJhZ3JhcGg6d0F0LHJvb3Q6Q0F0LHN0cm9uZzp2dmUsdGV4dDpEQXQsdGhlbWF0aWNCcmVhazpJQXR9fSk7ZnVuY3Rpb24gRXBhKHQsZSxyLGEpe2lmKGUudHlwZT09PSJjb2RlIiYmTU0oZSxhKSYmKHQudHlwZT09PSJsaXN0Inx8dC50eXBlPT09ZS50eXBlJiZNTSh0LGEpKSlyZXR1cm4hMTtpZigic3ByZWFkImluIHImJnR5cGVvZiByLnNwcmVhZD09ImJvb2xlYW4iKXJldHVybiB0LnR5cGU9PT0icGFyYWdyYXBoIiYmKHQudHlwZT09PWUudHlwZXx8ZS50eXBlPT09ImRlZmluaXRpb24ifHxlLnR5cGU9PT0iaGVhZGluZyImJnAxZShlLGEpKT92b2lkIDA6ci5zcHJlYWQ/MTowfXZhciBOQXQsT0F0PXUoKCk9PntzdmUoKTtjdmUoKTtOQXQ9W0VwYV07aShFcGEsImpvaW5EZWZhdWx0cyIpfSk7dmFyIE1oLFJBdCxGQXQ9dSgoKT0+e01oPVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXSxSQXQ9W3tjaGFyYWN0ZXI6IgkiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6IiAiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiIhIixhZnRlcjoiXFxbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0Ok1ofSx7Y2hhcmFjdGVyOiciJyxpbkNvbnN0cnVjdDoidGl0bGVRdW90ZSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiIyJ9LHtjaGFyYWN0ZXI6IiMiLGluQ29uc3RydWN0OiJoZWFkaW5nQXR4IixhZnRlcjpgKD86W1xyCl18JClgfSx7Y2hhcmFjdGVyOiImIixhZnRlcjoiWyNBLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiInIixpbkNvbnN0cnVjdDoidGl0bGVBcG9zdHJvcGhlIn0se2NoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2JlZm9yZToiXFxdIixjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6TWh9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIpIn0se2NoYXJhY3RlcjoiKSIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIqIixhZnRlcjpgKD86WyAJXHIKKl0pYH0se2NoYXJhY3RlcjoiKiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpNaH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIrIixhZnRlcjpgKD86WyAJXHIKXSlgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOmAoPzpbIAlccgotXSlgfSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiLiIsYWZ0ZXI6YCg/OlsgCVxyCl18JClgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSJ9LHtjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpNaH0se2NoYXJhY3RlcjoiPCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPiJ9LHtjaGFyYWN0ZXI6Ij4iLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IlsifSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0Ok1ofSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHtjaGFyYWN0ZXI6IlxcIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6Il0iLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJfIn0se2NoYXJhY3RlcjoiXyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpNaH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJgIn0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCJdfSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0Ok1ofSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6In4ifV19KTtmdW5jdGlvbiBMdSh0KXtsZXQgZT0iJiIrdCsiOyI7QkF0LmlubmVySFRNTD1lO2xldCByPUJBdC50ZXh0Q29udGVudDtyZXR1cm4gci5jaGFyQ29kZUF0KHIubGVuZ3RoLTEpPT09NTkmJnQhPT0ic2VtaSJ8fHI9PT1lPyExOnJ9dmFyIEJBdCx6TT11KCgpPT57QkF0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtpKEx1LCJkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gcHgodCxlKXtsZXQgcj1OdW1iZXIucGFyc2VJbnQodCxlKTtyZXR1cm4gcjw5fHxyPT09MTF8fHI+MTMmJnI8MzJ8fHI+MTI2JiZyPDE2MHx8cj41NTI5NSYmcjw1NzM0NHx8cj42NDk3NSYmcjw2NTAwOHx8KHImNjU1MzUpPT09NjU1MzV8fChyJjY1NTM1KT09PTY1NTM0fHxyPjExMTQxMTE/Ilx1RkZGRCI6U3RyaW5nLmZyb21Db2RlUG9pbnQocil9dmFyIG0xZT11KCgpPT57aShweCwiZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gZzFlKHQpe3JldHVybiB0LnJlcGxhY2UoSXBhLFBwYSl9ZnVuY3Rpb24gUHBhKHQsZSxyKXtpZihlKXJldHVybiBlO2lmKHIuY2hhckNvZGVBdCgwKT09PTM1KXtsZXQgcz1yLmNoYXJDb2RlQXQoMSksbj1zPT09MTIwfHxzPT09ODg7cmV0dXJuIHB4KHIuc2xpY2Uobj8yOjEpLG4/MTY6MTApfXJldHVybiBMdShyKXx8dH12YXIgSXBhLHd2ZT11KCgpPT57ek0oKTttMWUoKTtJcGE9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naTtpKGcxZSwiZGVjb2RlU3RyaW5nIik7aShQcGEsImRlY29kZSIpfSk7ZnVuY3Rpb24gSEF0KHQpe3JldHVybiB0LmxhYmVsfHwhdC5pZGVudGlmaWVyP3QubGFiZWx8fCIiOmcxZSh0LmlkZW50aWZpZXIpfXZhciBxQXQ9dSgoKT0+e3d2ZSgpO2koSEF0LCJhc3NvY2lhdGlvbiIpfSk7ZnVuY3Rpb24gVkF0KHQpe2lmKCF0Ll9jb21waWxlZCl7bGV0IGU9KHQuYXRCcmVhaz8iW1xcclxcbl1bXFx0IF0qIjoiIikrKHQuYmVmb3JlPyIoPzoiK3QuYmVmb3JlKyIpIjoiIik7dC5fY29tcGlsZWQ9bmV3IFJlZ0V4cCgoZT8iKCIrZSsiKSI6IiIpKygvW3xcXHt9KClbXF1eJCsqPy4tXS8udGVzdCh0LmNoYXJhY3Rlcik/IlxcIjoiIikrdC5jaGFyYWN0ZXIrKHQuYWZ0ZXI/Iig/OiIrdC5hZnRlcisiKSI6IiIpLCJnIil9cmV0dXJuIHQuX2NvbXBpbGVkfXZhciBqQXQ9dSgoKT0+e2koVkF0LCJjb21waWxlUGF0dGVybiIpfSk7ZnVuY3Rpb24gVUF0KHQsZSxyKXtsZXQgYT1lLmluZGV4U3RhY2sscz10LmNoaWxkcmVufHxbXSxuPVtdLG89LTEsbD1yLmJlZm9yZSxjO2EucHVzaCgtMSk7bGV0IGQ9ZS5jcmVhdGVUcmFja2VyKHIpO2Zvcig7KytvPHMubGVuZ3RoOyl7bGV0IGY9c1tvXSxwO2lmKGFbYS5sZW5ndGgtMV09byxvKzE8cy5sZW5ndGgpe2xldCB2PWUuaGFuZGxlLmhhbmRsZXJzW3NbbysxXS50eXBlXTt2JiZ2LnBlZWsmJih2PXYucGVlaykscD12P3Yoc1tvKzFdLHQsZSx7YmVmb3JlOiIiLGFmdGVyOiIiLC4uLmQuY3VycmVudCgpfSkuY2hhckF0KDApOiIifWVsc2UgcD1yLmFmdGVyO24ubGVuZ3RoPjAmJihsPT09IlxyInx8bD09PWAKYCkmJmYudHlwZT09PSJodG1sIiYmKG5bbi5sZW5ndGgtMV09bltuLmxlbmd0aC0xXS5yZXBsYWNlKC8oXHI/XG58XHIpJC8sIiAiKSxsPSIgIixkPWUuY3JlYXRlVHJhY2tlcihyKSxkLm1vdmUobi5qb2luKCIiKSkpO2xldCBoPWUuaGFuZGxlKGYsdCxlLHsuLi5kLmN1cnJlbnQoKSxhZnRlcjpwLGJlZm9yZTpsfSk7YyYmYz09PWguc2xpY2UoMCwxKSYmKGg9VzEoYy5jaGFyQ29kZUF0KDApKStoLnNsaWNlKDEpKTtsZXQgbT1lLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbztlLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz12b2lkIDAsYz12b2lkIDAsbSYmKG4ubGVuZ3RoPjAmJm0uYmVmb3JlJiZsPT09bltuLmxlbmd0aC0xXS5zbGljZSgtMSkmJihuW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0uc2xpY2UoMCwtMSkrVzEobC5jaGFyQ29kZUF0KDApKSksbS5hZnRlciYmKGM9cCkpLGQubW92ZShoKSxuLnB1c2goaCksbD1oLnNsaWNlKC0xKX1yZXR1cm4gYS5wb3AoKSxuLmpvaW4oIiIpfXZhciBXQXQ9dSgoKT0+e2N4KCk7aShVQXQsImNvbnRhaW5lclBocmFzaW5nIil9KTtmdW5jdGlvbiBHQXQodCxlLHIpe2xldCBhPWUuaW5kZXhTdGFjayxzPXQuY2hpbGRyZW58fFtdLG49ZS5jcmVhdGVUcmFja2VyKHIpLG89W10sbD0tMTtmb3IoYS5wdXNoKC0xKTsrK2w8cy5sZW5ndGg7KXtsZXQgYz1zW2xdO2FbYS5sZW5ndGgtMV09bCxvLnB1c2gobi5tb3ZlKGUuaGFuZGxlKGMsdCxlLHtiZWZvcmU6YApgLGFmdGVyOmAKYCwuLi5uLmN1cnJlbnQoKX0pKSksYy50eXBlIT09Imxpc3QiJiYoZS5idWxsZXRMYXN0VXNlZD12b2lkIDApLGw8cy5sZW5ndGgtMSYmby5wdXNoKG4ubW92ZShOcGEoYyxzW2wrMV0sdCxlKSkpfXJldHVybiBhLnBvcCgpLG8uam9pbigiIil9ZnVuY3Rpb24gTnBhKHQsZSxyLGEpe2xldCBzPWEuam9pbi5sZW5ndGg7Zm9yKDtzLS07KXtsZXQgbj1hLmpvaW5bc10odCxlLHIsYSk7aWYobj09PSEwfHxuPT09MSlicmVhaztpZih0eXBlb2Ygbj09Im51bWJlciIpcmV0dXJuYApgLnJlcGVhdCgxK24pO2lmKG49PT0hMSlyZXR1cm5gCgo8IS0tLS0+CgpgfXJldHVybmAKCmB9dmFyIFlBdD11KCgpPT57aShHQXQsImNvbnRhaW5lckZsb3ciKTtpKE5wYSwiYmV0d2VlbiIpfSk7ZnVuY3Rpb24gS0F0KHQsZSl7bGV0IHI9W10sYT0wLHM9MCxuO2Zvcig7bj1PcGEuZXhlYyh0KTspbyh0LnNsaWNlKGEsbi5pbmRleCkpLHIucHVzaChuWzBdKSxhPW4uaW5kZXgrblswXS5sZW5ndGgscysrO3JldHVybiBvKHQuc2xpY2UoYSkpLHIuam9pbigiIik7ZnVuY3Rpb24gbyhsKXtyLnB1c2goZShsLHMsIWwpKX1pKG8sIm9uZSIpfXZhciBPcGEsWkF0PXUoKCk9PntPcGE9L1xyP1xufFxyL2c7aShLQXQsImluZGVudExpbmVzIil9KTtmdW5jdGlvbiBYQXQodCxlLHIpe2xldCBhPShyLmJlZm9yZXx8IiIpKyhlfHwiIikrKHIuYWZ0ZXJ8fCIiKSxzPVtdLG49W10sbz17fSxsPS0xO2Zvcig7KytsPHQudW5zYWZlLmxlbmd0aDspe2xldCBmPXQudW5zYWZlW2xdO2lmKCFsMWUodC5zdGFjayxmKSljb250aW51ZTtsZXQgcD10LmNvbXBpbGVQYXR0ZXJuKGYpLGg7Zm9yKDtoPXAuZXhlYyhhKTspe2xldCBtPSJiZWZvcmUiaW4gZnx8ISFmLmF0QnJlYWssdj0iYWZ0ZXIiaW4gZixiPWguaW5kZXgrKG0/aFsxXS5sZW5ndGg6MCk7cy5pbmNsdWRlcyhiKT8ob1tiXS5iZWZvcmUmJiFtJiYob1tiXS5iZWZvcmU9ITEpLG9bYl0uYWZ0ZXImJiF2JiYob1tiXS5hZnRlcj0hMSkpOihzLnB1c2goYiksb1tiXT17YmVmb3JlOm0sYWZ0ZXI6dn0pfX1zLnNvcnQoUnBhKTtsZXQgYz1yLmJlZm9yZT9yLmJlZm9yZS5sZW5ndGg6MCxkPWEubGVuZ3RoLShyLmFmdGVyP3IuYWZ0ZXIubGVuZ3RoOjApO2ZvcihsPS0xOysrbDxzLmxlbmd0aDspe2xldCBmPXNbbF07ZjxjfHxmPj1kfHxmKzE8ZCYmc1tsKzFdPT09ZisxJiZvW2ZdLmFmdGVyJiYhb1tmKzFdLmJlZm9yZSYmIW9bZisxXS5hZnRlcnx8c1tsLTFdPT09Zi0xJiZvW2ZdLmJlZm9yZSYmIW9bZi0xXS5iZWZvcmUmJiFvW2YtMV0uYWZ0ZXJ8fChjIT09ZiYmbi5wdXNoKFFBdChhLnNsaWNlKGMsZiksIlxcIikpLGM9ZiwvWyEtLzotQFstYHstfl0vLnRlc3QoYS5jaGFyQXQoZikpJiYoIXIuZW5jb2RlfHwhci5lbmNvZGUuaW5jbHVkZXMoYS5jaGFyQXQoZikpKT9uLnB1c2goIlxcIik6KG4ucHVzaChXMShhLmNoYXJDb2RlQXQoZikpKSxjKyspKX1yZXR1cm4gbi5wdXNoKFFBdChhLnNsaWNlKGMsZCksci5hZnRlcikpLG4uam9pbigiIil9ZnVuY3Rpb24gUnBhKHQsZSl7cmV0dXJuIHQtZX1mdW5jdGlvbiBRQXQodCxlKXtsZXQgcj0vXFwoPz1bIS0vOi1AWy1gey1+XSkvZyxhPVtdLHM9W10sbj10K2Usbz0tMSxsPTAsYztmb3IoO2M9ci5leGVjKG4pOylhLnB1c2goYy5pbmRleCk7Zm9yKDsrK288YS5sZW5ndGg7KWwhPT1hW29dJiZzLnB1c2godC5zbGljZShsLGFbb10pKSxzLnB1c2goIlxcIiksbD1hW29dO3JldHVybiBzLnB1c2godC5zbGljZShsKSkscy5qb2luKCIiKX12YXIgSkF0PXUoKCk9PntjeCgpO2F2ZSgpO2koWEF0LCJzYWZlIik7aShScGEsIm51bWVyaWNhbCIpO2koUUF0LCJlc2NhcGVCYWNrc2xhc2hlcyIpfSk7ZnVuY3Rpb24gZUV0KHQpe2xldCBlPXR8fHt9LHI9ZS5ub3d8fHt9LGE9ZS5saW5lU2hpZnR8fDAscz1yLmxpbmV8fDEsbj1yLmNvbHVtbnx8MTtyZXR1cm57bW92ZTpjLGN1cnJlbnQ6byxzaGlmdDpsfTtmdW5jdGlvbiBvKCl7cmV0dXJue25vdzp7bGluZTpzLGNvbHVtbjpufSxsaW5lU2hpZnQ6YX19ZnVuY3Rpb24gbChkKXthKz1kfWZ1bmN0aW9uIGMoZCl7bGV0IGY9ZHx8IiIscD1mLnNwbGl0KC9ccj9cbnxcci9nKSxoPXBbcC5sZW5ndGgtMV07cmV0dXJuIHMrPXAubGVuZ3RoLTEsbj1wLmxlbmd0aD09PTE/bitoLmxlbmd0aDoxK2gubGVuZ3RoK2EsZn19dmFyIHRFdD11KCgpPT57aShlRXQsInRyYWNrIil9KTtmdW5jdGlvbiBrdmUodCxlKXtsZXQgcj1lfHx7fSxhPXthc3NvY2lhdGlvbklkOkhBdCxjb250YWluZXJQaHJhc2luZzpxcGEsY29udGFpbmVyRmxvdzpWcGEsY3JlYXRlVHJhY2tlcjplRXQsY29tcGlsZVBhdHRlcm46VkF0LGVudGVyOm4saGFuZGxlcnM6ey4uLlNofSxoYW5kbGU6dm9pZCAwLGluZGVudExpbmVzOktBdCxpbmRleFN0YWNrOltdLGpvaW46Wy4uLk5BdF0sb3B0aW9uczp7fSxzYWZlOmpwYSxzdGFjazpbXSx1bnNhZmU6Wy4uLlJBdF19O3J2ZShhLHIpLGEub3B0aW9ucy50aWdodERlZmluaXRpb25zJiZhLmpvaW4ucHVzaChIcGEpLGEuaGFuZGxlPW8xZSgidHlwZSIse2ludmFsaWQ6RnBhLHVua25vd246QnBhLGhhbmRsZXJzOmEuaGFuZGxlcnN9KTtsZXQgcz1hLmhhbmRsZSh0LHZvaWQgMCxhLHtiZWZvcmU6YApgLGFmdGVyOmAKYCxub3c6e2xpbmU6MSxjb2x1bW46MX0sbGluZVNoaWZ0OjB9KTtyZXR1cm4gcyYmcy5jaGFyQ29kZUF0KHMubGVuZ3RoLTEpIT09MTAmJnMuY2hhckNvZGVBdChzLmxlbmd0aC0xKSE9PTEzJiYocys9YApgKSxzO2Z1bmN0aW9uIG4obyl7cmV0dXJuIGEuc3RhY2sucHVzaChvKSxsO2Z1bmN0aW9uIGwoKXthLnN0YWNrLnBvcCgpfWkobCwiZXhpdCIpfWkobiwiZW50ZXIiKX1mdW5jdGlvbiBGcGEodCl7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHZhbHVlIGAiK3QrImAsIGV4cGVjdGVkIG5vZGUiKX1mdW5jdGlvbiBCcGEodCl7bGV0IGU9dDt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBoYW5kbGUgdW5rbm93biBub2RlIGAiK2UudHlwZSsiYCIpfWZ1bmN0aW9uIEhwYSh0LGUpe2lmKHQudHlwZT09PSJkZWZpbml0aW9uIiYmdC50eXBlPT09ZS50eXBlKXJldHVybiAwfWZ1bmN0aW9uIHFwYSh0LGUpe3JldHVybiBVQXQodCx0aGlzLGUpfWZ1bmN0aW9uIFZwYSh0LGUpe3JldHVybiBHQXQodCx0aGlzLGUpfWZ1bmN0aW9uIGpwYSh0LGUpe3JldHVybiBYQXQodGhpcyx0LGUpfXZhciByRXQ9dSgoKT0+e3R2ZSgpO04kdCgpO3l2ZSgpO09BdCgpO0ZBdCgpO3FBdCgpO2pBdCgpO1dBdCgpO1lBdCgpO1pBdCgpO0pBdCgpO3RFdCgpO2koa3ZlLCJ0b01hcmtkb3duIik7aShGcGEsImludmFsaWQiKTtpKEJwYSwidW5rbm93biIpO2koSHBhLCJqb2luRGVmaW5pdGlvbiIpO2kocXBhLCJjb250YWluZXJQaHJhc2luZ0JvdW5kIik7aShWcGEsImNvbnRhaW5lckZsb3dCb3VuZCIpO2koanBhLCJzYWZlQm91bmQiKX0pO3ZhciBiMWU9dSgoKT0+e3JFdCgpO3l2ZSgpfSk7ZnVuY3Rpb24gTXZlKCl7cmV0dXJue2VudGVyOnt0YWJsZTpVcGEsdGFibGVEYXRhOmFFdCx0YWJsZUhlYWRlcjphRXQsdGFibGVSb3c6R3BhfSxleGl0Ontjb2RlVGV4dDpZcGEsdGFibGU6V3BhLHRhYmxlRGF0YTpTdmUsdGFibGVIZWFkZXI6U3ZlLHRhYmxlUm93OlN2ZX19fWZ1bmN0aW9uIFVwYSh0KXtsZXQgZT10Ll9hbGlnbjt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZSIsYWxpZ246ZS5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHI9PT0ibm9uZSI/bnVsbDpyfSksY2hpbGRyZW46W119LHQpLHRoaXMuZGF0YS5pblRhYmxlPSEwfWZ1bmN0aW9uIFdwYSh0KXt0aGlzLmV4aXQodCksdGhpcy5kYXRhLmluVGFibGU9dm9pZCAwfWZ1bmN0aW9uIEdwYSh0KXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZVJvdyIsY2hpbGRyZW46W119LHQpfWZ1bmN0aW9uIFN2ZSh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gYUV0KHQpe3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlQ2VsbCIsY2hpbGRyZW46W119LHQpfWZ1bmN0aW9uIFlwYSh0KXtsZXQgZT10aGlzLnJlc3VtZSgpO3RoaXMuZGF0YS5pblRhYmxlJiYoZT1lLnJlcGxhY2UoL1xcKFtcXHxdKS9nLEtwYSkpO2xldCByPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIudmFsdWU9ZSx0aGlzLmV4aXQodCl9ZnVuY3Rpb24gS3BhKHQsZSl7cmV0dXJuIGU9PT0ifCI/ZTp0fWZ1bmN0aW9uIEN2ZSh0KXtsZXQgZT10fHx7fSxyPWUudGFibGVDZWxsUGFkZGluZyxhPWUudGFibGVQaXBlQWxpZ24scz1lLnN0cmluZ0xlbmd0aCxuPXI/IiAiOiJ8IjtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHtjaGFyYWN0ZXI6YApgLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6InwiLGFmdGVyOiJbCSA6LV0ifSx7Y2hhcmFjdGVyOiJ8IixpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI6IixhZnRlcjoiLSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6Ils6fC1dIn1dLGhhbmRsZXJzOntpbmxpbmVDb2RlOmgsdGFibGU6byx0YWJsZUNlbGw6Yyx0YWJsZVJvdzpsfX07ZnVuY3Rpb24gbyhtLHYsYixnKXtyZXR1cm4gZChmKG0sYixnKSxtLmFsaWduKX1mdW5jdGlvbiBsKG0sdixiLGcpe2xldCB5PXAobSxiLGcpLGs9ZChbeV0pO3JldHVybiBrLnNsaWNlKDAsay5pbmRleE9mKGAKYCkpfWZ1bmN0aW9uIGMobSx2LGIsZyl7bGV0IHk9Yi5lbnRlcigidGFibGVDZWxsIiksaz1iLmVudGVyKCJwaHJhc2luZyIpLE09Yi5jb250YWluZXJQaHJhc2luZyhtLHsuLi5nLGJlZm9yZTpuLGFmdGVyOm59KTtyZXR1cm4gaygpLHkoKSxNfWZ1bmN0aW9uIGQobSx2KXtyZXR1cm4gQSR0KG0se2FsaWduOnYsYWxpZ25EZWxpbWl0ZXJzOmEscGFkZGluZzpyLHN0cmluZ0xlbmd0aDpzfSl9ZnVuY3Rpb24gZihtLHYsYil7bGV0IGc9bS5jaGlsZHJlbix5PS0xLGs9W10sTT12LmVudGVyKCJ0YWJsZSIpO2Zvcig7Kyt5PGcubGVuZ3RoOylrW3ldPXAoZ1t5XSx2LGIpO3JldHVybiBNKCksa31mdW5jdGlvbiBwKG0sdixiKXtsZXQgZz1tLmNoaWxkcmVuLHk9LTEsaz1bXSxNPXYuZW50ZXIoInRhYmxlUm93Iik7Zm9yKDsrK3k8Zy5sZW5ndGg7KWtbeV09YyhnW3ldLG0sdixiKTtyZXR1cm4gTSgpLGt9ZnVuY3Rpb24gaChtLHYsYil7bGV0IGc9U2guaW5saW5lQ29kZShtLHYsYik7cmV0dXJuIGIuc3RhY2suaW5jbHVkZXMoInRhYmxlQ2VsbCIpJiYoZz1nLnJlcGxhY2UoL1x8L2csIlxcJCYiKSksZ319dmFyIGlFdD11KCgpPT57Q3UoKTtFJHQoKTtiMWUoKTtpKE12ZSwiZ2ZtVGFibGVGcm9tTWFya2Rvd24iKTtpKFVwYSwiZW50ZXJUYWJsZSIpO2koV3BhLCJleGl0VGFibGUiKTtpKEdwYSwiZW50ZXJSb3ciKTtpKFN2ZSwiZXhpdCIpO2koYUV0LCJlbnRlckNlbGwiKTtpKFlwYSwiZXhpdENvZGVUZXh0Iik7aShLcGEsInJlcGxhY2UiKTtpKEN2ZSwiZ2ZtVGFibGVUb01hcmtkb3duIil9KTt2YXIgc0V0PXUoKCk9PntpRXQoKX0pO2Z1bmN0aW9uIHp2ZSgpe3JldHVybntleGl0Ont0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkOm5FdCx0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQ6bkV0LHBhcmFncmFwaDpacGF9fX1mdW5jdGlvbiBfdmUoKXtyZXR1cm57dW5zYWZlOlt7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7bGlzdEl0ZW06UXBhfX19ZnVuY3Rpb24gbkV0KHQpe2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07ZS50eXBlLGUuY2hlY2tlZD10LnR5cGU9PT0idGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCJ9ZnVuY3Rpb24gWnBhKHQpe2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07aWYoZSYmZS50eXBlPT09Imxpc3RJdGVtIiYmdHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgcj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3IudHlwZTtsZXQgYT1yLmNoaWxkcmVuWzBdO2lmKGEmJmEudHlwZT09PSJ0ZXh0Iil7bGV0IHM9ZS5jaGlsZHJlbixuPS0xLG87Zm9yKDsrK248cy5sZW5ndGg7KXtsZXQgbD1zW25dO2lmKGwudHlwZT09PSJwYXJhZ3JhcGgiKXtvPWw7YnJlYWt9fW89PT1yJiYoYS52YWx1ZT1hLnZhbHVlLnNsaWNlKDEpLGEudmFsdWUubGVuZ3RoPT09MD9yLmNoaWxkcmVuLnNoaWZ0KCk6ci5wb3NpdGlvbiYmYS5wb3NpdGlvbiYmdHlwZW9mIGEucG9zaXRpb24uc3RhcnQub2Zmc2V0PT0ibnVtYmVyIiYmKGEucG9zaXRpb24uc3RhcnQuY29sdW1uKyssYS5wb3NpdGlvbi5zdGFydC5vZmZzZXQrKyxyLnBvc2l0aW9uLnN0YXJ0PU9iamVjdC5hc3NpZ24oe30sYS5wb3NpdGlvbi5zdGFydCkpKX19dGhpcy5leGl0KHQpfWZ1bmN0aW9uIFFwYSh0LGUscixhKXtsZXQgcz10LmNoaWxkcmVuWzBdLG49dHlwZW9mIHQuY2hlY2tlZD09ImJvb2xlYW4iJiZzJiZzLnR5cGU9PT0icGFyYWdyYXBoIixvPSJbIisodC5jaGVja2VkPyJ4IjoiICIpKyJdICIsbD1yLmNyZWF0ZVRyYWNrZXIoYSk7biYmbC5tb3ZlKG8pO2xldCBjPVNoLmxpc3RJdGVtKHQsZSxyLHsuLi5hLC4uLmwuY3VycmVudCgpfSk7cmV0dXJuIG4mJihjPWMucmVwbGFjZSgvXig/OlsqKy1dfFxkK1wuKShbXHJcbl18IHsxLDN9KS8sZCkpLGM7ZnVuY3Rpb24gZChmKXtyZXR1cm4gZitvfWkoZCwiY2hlY2siKX12YXIgb0V0PXUoKCk9PntDdSgpO2IxZSgpO2koenZlLCJnZm1UYXNrTGlzdEl0ZW1Gcm9tTWFya2Rvd24iKTtpKF92ZSwiZ2ZtVGFza0xpc3RJdGVtVG9NYXJrZG93biIpO2kobkV0LCJleGl0Q2hlY2siKTtpKFpwYSwiZXhpdFBhcmFncmFwaFdpdGhUYXNrTGlzdEl0ZW0iKTtpKFFwYSwibGlzdEl0ZW1XaXRoVGFza0xpc3RJdGVtIil9KTt2YXIgbEV0PXUoKCk9PntvRXQoKX0pO2Z1bmN0aW9uIFR2ZSgpe3JldHVybltLeGUoKSxReGUoKSxKeGUoKSxNdmUoKSx6dmUoKV19ZnVuY3Rpb24gTHZlKHQpe3JldHVybntleHRlbnNpb25zOltaeGUoKSxYeGUodCksZXZlKCksQ3ZlKHQpLF92ZSgpXX19dmFyIGNFdD11KCgpPT57UyR0KCk7XyR0KCk7RCR0KCk7c0V0KCk7bEV0KCk7aShUdmUsImdmbUZyb21NYXJrZG93biIpO2koTHZlLCJnZm1Ub01hcmtkb3duIil9KTt2YXIgZEV0PXUoKCk9PntjRXQoKX0pO2Z1bmN0aW9uIFhpKHQsZSxyLGEpe2xldCBzPXQubGVuZ3RoLG49MCxvO2lmKGU8MD9lPS1lPnM/MDpzK2U6ZT1lPnM/czplLHI9cj4wP3I6MCxhLmxlbmd0aDwxZTQpbz1BcnJheS5mcm9tKGEpLG8udW5zaGlmdChlLHIpLHQuc3BsaWNlKC4uLm8pO2Vsc2UgZm9yKHImJnQuc3BsaWNlKGUscik7bjxhLmxlbmd0aDspbz1hLnNsaWNlKG4sbisxZTQpLG8udW5zaGlmdChlLDApLHQuc3BsaWNlKC4uLm8pLG4rPTFlNCxlKz0xZTR9ZnVuY3Rpb24geXModCxlKXtyZXR1cm4gdC5sZW5ndGg+MD8oWGkodCx0Lmxlbmd0aCwwLGUpLHQpOmV9dmFyIGcwPXUoKCk9PntpKFhpLCJzcGxpY2UiKTtpKHlzLCJwdXNoIil9KTtmdW5jdGlvbiB4MWUodCl7bGV0IGU9e30scj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspWHBhKGUsdFtyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gWHBhKHQsZSl7bGV0IHI7Zm9yKHIgaW4gZSl7bGV0IHM9KER2ZS5jYWxsKHQscik/dFtyXTp2b2lkIDApfHwodFtyXT17fSksbj1lW3JdLG87aWYobilmb3IobyBpbiBuKXtEdmUuY2FsbChzLG8pfHwoc1tvXT1bXSk7bGV0IGw9bltvXTtKcGEoc1tvXSxBcnJheS5pc0FycmF5KGwpP2w6bD9bbF06W10pfX19ZnVuY3Rpb24gSnBhKHQsZSl7bGV0IHI9LTEsYT1bXTtmb3IoOysrcjxlLmxlbmd0aDspKGVbcl0uYWRkPT09ImFmdGVyIj90OmEpLnB1c2goZVtyXSk7WGkodCwwLDAsYSl9ZnVuY3Rpb24gdjFlKHQpe2xldCBlPXt9LHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWVmYShlLHRbcl0pO3JldHVybiBlfWZ1bmN0aW9uIGVmYSh0LGUpe2xldCByO2ZvcihyIGluIGUpe2xldCBzPShEdmUuY2FsbCh0LHIpP3Rbcl06dm9pZCAwKXx8KHRbcl09e30pLG49ZVtyXSxvO2lmKG4pZm9yKG8gaW4gbilzW29dPW5bb119fXZhciBEdmUseTFlPXUoKCk9PntnMCgpO0R2ZT17fS5oYXNPd25Qcm9wZXJ0eTtpKHgxZSwiY29tYmluZUV4dGVuc2lvbnMiKTtpKFhwYSwic3ludGF4RXh0ZW5zaW9uIik7aShKcGEsImNvbnN0cnVjdHMiKTtpKHYxZSwiY29tYmluZUh0bWxFeHRlbnNpb25zIik7aShlZmEsImh0bWxFeHRlbnNpb24iKX0pO2Z1bmN0aW9uIEV2ZSgpe3JldHVybnt0ZXh0OmIwfX1mdW5jdGlvbiBhZmEodCxlLHIpe2xldCBhPXRoaXMscyxuO3JldHVybiBvO2Z1bmN0aW9uIG8ocCl7cmV0dXJuISR2ZShwKXx8IXhFdC5jYWxsKGEsYS5wcmV2aW91cyl8fEF2ZShhLmV2ZW50cyk/cihwKToodC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rRW1haWwiKSxsKHApKX1mdW5jdGlvbiBsKHApe3JldHVybiAkdmUocCk/KHQuY29uc3VtZShwKSxsKTpwPT09NjQ/KHQuY29uc3VtZShwKSxjKTpyKHApfWZ1bmN0aW9uIGMocCl7cmV0dXJuIHA9PT00Nj90LmNoZWNrKHJmYSxmLGQpKHApOnA9PT00NXx8cD09PTk1fHxJaShwKT8obj0hMCx0LmNvbnN1bWUocCksYyk6ZihwKX1mdW5jdGlvbiBkKHApe3JldHVybiB0LmNvbnN1bWUocCkscz0hMCxjfWZ1bmN0aW9uIGYocCl7cmV0dXJuIG4mJnMmJlZzKGEucHJldmlvdXMpPyh0LmV4aXQoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKHApKTpyKHApfX1mdW5jdGlvbiBpZmEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gbyE9PTg3JiZvIT09MTE5fHwhZ0V0LmNhbGwoYSxhLnByZXZpb3VzKXx8QXZlKGEuZXZlbnRzKT9yKG8pOih0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSx0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmtXd3ciKSx0LmNoZWNrKHRmYSx0LmF0dGVtcHQodUV0LHQuYXR0ZW1wdChwRXQsbikscikscikobykpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rV3d3IiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKG8pfX1mdW5jdGlvbiBzZmEodCxlLHIpe2xldCBhPXRoaXMscz0iIixuPSExO3JldHVybiBvO2Z1bmN0aW9uIG8ocCl7cmV0dXJuKHA9PT03Mnx8cD09PTEwNCkmJmJFdC5jYWxsKGEsYS5wcmV2aW91cykmJiFBdmUoYS5ldmVudHMpPyh0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSx0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmtIdHRwIikscys9U3RyaW5nLmZyb21Db2RlUG9pbnQocCksdC5jb25zdW1lKHApLGwpOnIocCl9ZnVuY3Rpb24gbChwKXtpZihWcyhwKSYmcy5sZW5ndGg8NSlyZXR1cm4gcys9U3RyaW5nLmZyb21Db2RlUG9pbnQocCksdC5jb25zdW1lKHApLGw7aWYocD09PTU4KXtsZXQgaD1zLnRvTG93ZXJDYXNlKCk7aWYoaD09PSJodHRwInx8aD09PSJodHRwcyIpcmV0dXJuIHQuY29uc3VtZShwKSxjfXJldHVybiByKHApfWZ1bmN0aW9uIGMocCl7cmV0dXJuIHA9PT00Nz8odC5jb25zdW1lKHApLG4/ZDoobj0hMCxjKSk6cihwKX1mdW5jdGlvbiBkKHApe3JldHVybiBwPT09bnVsbHx8dmgocCl8fE5yKHApfHxtMChwKXx8eWgocCk/cihwKTp0LmF0dGVtcHQodUV0LHQuYXR0ZW1wdChwRXQsZikscikocCl9ZnVuY3Rpb24gZihwKXtyZXR1cm4gdC5leGl0KCJsaXRlcmFsQXV0b2xpbmtIdHRwIiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKHApfX1mdW5jdGlvbiBuZmEodCxlLHIpe2xldCBhPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4obz09PTg3fHxvPT09MTE5KSYmYTwzPyhhKyssdC5jb25zdW1lKG8pLHMpOm89PT00NiYmYT09PTM/KHQuY29uc3VtZShvKSxuKTpyKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT1udWxsP3Iobyk6ZShvKX19ZnVuY3Rpb24gb2ZhKHQsZSxyKXtsZXQgYSxzLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhkKXtyZXR1cm4gZD09PTQ2fHxkPT09OTU/dC5jaGVjayhmRXQsYyxsKShkKTpkPT09bnVsbHx8TnIoZCl8fG0wKGQpfHxkIT09NDUmJnloKGQpP2MoZCk6KG49ITAsdC5jb25zdW1lKGQpLG8pfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQ9PT05NT9hPSEwOihzPWEsYT12b2lkIDApLHQuY29uc3VtZShkKSxvfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIHN8fGF8fCFuP3IoZCk6ZShkKX19ZnVuY3Rpb24gbGZhKHQsZSl7bGV0IHI9MCxhPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gbz09PTQwPyhyKyssdC5jb25zdW1lKG8pLHMpOm89PT00MSYmYTxyP24obyk6bz09PTMzfHxvPT09MzR8fG89PT0zOHx8bz09PTM5fHxvPT09NDF8fG89PT00Mnx8bz09PTQ0fHxvPT09NDZ8fG89PT01OHx8bz09PTU5fHxvPT09NjB8fG89PT02M3x8bz09PTkzfHxvPT09OTV8fG89PT0xMjY/dC5jaGVjayhmRXQsZSxuKShvKTpvPT09bnVsbHx8TnIobyl8fG0wKG8pP2Uobyk6KHQuY29uc3VtZShvKSxzKX1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09NDEmJmErKyx0LmNvbnN1bWUobyksc319ZnVuY3Rpb24gY2ZhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKGwpe3JldHVybiBsPT09MzN8fGw9PT0zNHx8bD09PTM5fHxsPT09NDF8fGw9PT00Mnx8bD09PTQ0fHxsPT09NDZ8fGw9PT01OHx8bD09PTU5fHxsPT09NjN8fGw9PT05NXx8bD09PTEyNj8odC5jb25zdW1lKGwpLGEpOmw9PT0zOD8odC5jb25zdW1lKGwpLG4pOmw9PT05Mz8odC5jb25zdW1lKGwpLHMpOmw9PT02MHx8bD09PW51bGx8fE5yKGwpfHxtMChsKT9lKGwpOnIobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbD09PW51bGx8fGw9PT00MHx8bD09PTkxfHxOcihsKXx8bTAobCk/ZShsKTphKGwpfWZ1bmN0aW9uIG4obCl7cmV0dXJuIFZzKGwpP28obCk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBsPT09NTk/KHQuY29uc3VtZShsKSxhKTpWcyhsKT8odC5jb25zdW1lKGwpLG8pOnIobCl9fWZ1bmN0aW9uIGRmYSh0LGUscil7cmV0dXJuIGE7ZnVuY3Rpb24gYShuKXtyZXR1cm4gdC5jb25zdW1lKG4pLHN9ZnVuY3Rpb24gcyhuKXtyZXR1cm4gSWkobik/cihuKTplKG4pfX1mdW5jdGlvbiBnRXQodCl7cmV0dXJuIHQ9PT1udWxsfHx0PT09NDB8fHQ9PT00Mnx8dD09PTk1fHx0PT09OTF8fHQ9PT05M3x8dD09PTEyNnx8TnIodCl9ZnVuY3Rpb24gYkV0KHQpe3JldHVybiFWcyh0KX1mdW5jdGlvbiB4RXQodCl7cmV0dXJuISh0PT09NDd8fCR2ZSh0KSl9ZnVuY3Rpb24gJHZlKHQpe3JldHVybiB0PT09NDN8fHQ9PT00NXx8dD09PTQ2fHx0PT09OTV8fElpKHQpfWZ1bmN0aW9uIEF2ZSh0KXtsZXQgZT10Lmxlbmd0aCxyPSExO2Zvcig7ZS0tOyl7bGV0IGE9dFtlXVsxXTtpZigoYS50eXBlPT09ImxhYmVsTGluayJ8fGEudHlwZT09PSJsYWJlbEltYWdlIikmJiFhLl9iYWxhbmNlZCl7cj0hMDticmVha31pZihhLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvKXtyPSExO2JyZWFrfX1yZXR1cm4gdC5sZW5ndGg+MCYmIXImJih0W3QubGVuZ3RoLTFdWzFdLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvPSEwKSxyfXZhciB0ZmEsdUV0LHBFdCxmRXQscmZhLGhFdCxtRXQsaTQsYjAsdkV0PXUoKCk9PntXcigpO3RmYT17dG9rZW5pemU6bmZhLHBhcnRpYWw6ITB9LHVFdD17dG9rZW5pemU6b2ZhLHBhcnRpYWw6ITB9LHBFdD17dG9rZW5pemU6bGZhLHBhcnRpYWw6ITB9LGZFdD17dG9rZW5pemU6Y2ZhLHBhcnRpYWw6ITB9LHJmYT17dG9rZW5pemU6ZGZhLHBhcnRpYWw6ITB9LGhFdD17bmFtZToid3d3QXV0b2xpbmsiLHRva2VuaXplOmlmYSxwcmV2aW91czpnRXR9LG1FdD17bmFtZToicHJvdG9jb2xBdXRvbGluayIsdG9rZW5pemU6c2ZhLHByZXZpb3VzOmJFdH0saTQ9e25hbWU6ImVtYWlsQXV0b2xpbmsiLHRva2VuaXplOmFmYSxwcmV2aW91czp4RXR9LGIwPXt9O2koRXZlLCJnZm1BdXRvbGlua0xpdGVyYWwiKTtmb3IodmFyIENoPTQ4O0NoPDEyMzspYjBbQ2hdPWk0LENoKyssQ2g9PT01OD9DaD02NTpDaD09PTkxJiYoQ2g9OTcpO2IwWzQzXT1pNCxiMFs0NV09aTQsYjBbNDZdPWk0LGIwWzk1XT1pNCxiMFs3Ml09W2k0LG1FdF0sYjBbMTA0XT1baTQsbUV0XSxiMFs4N109W2k0LGhFdF0sYjBbMTE5XT1baTQsaEV0XTtpKGFmYSwidG9rZW5pemVFbWFpbEF1dG9saW5rIik7aShpZmEsInRva2VuaXplV3d3QXV0b2xpbmsiKTtpKHNmYSwidG9rZW5pemVQcm90b2NvbEF1dG9saW5rIik7aShuZmEsInRva2VuaXplV3d3UHJlZml4Iik7aShvZmEsInRva2VuaXplRG9tYWluIik7aShsZmEsInRva2VuaXplUGF0aCIpO2koY2ZhLCJ0b2tlbml6ZVRyYWlsIik7aShkZmEsInRva2VuaXplRW1haWxEb21haW5Eb3RUcmFpbCIpO2koZ0V0LCJwcmV2aW91c1d3dyIpO2koYkV0LCJwcmV2aW91c1Byb3RvY29sIik7aSh4RXQsInByZXZpb3VzRW1haWwiKTtpKCR2ZSwiZ2ZtQXRleHQiKTtpKEF2ZSwicHJldmlvdXNVbmJhbGFuY2VkIil9KTtmdW5jdGlvbiB3MWUodCl7cmV0dXJuIHQucmVwbGFjZSgvWyImPD5dL2csZSk7ZnVuY3Rpb24gZShyKXtyZXR1cm4iJiIrdWZhW3JdKyI7In19dmFyIHVmYSxJdmU9dSgoKT0+e3VmYT17JyInOiJxdW90IiwiJiI6ImFtcCIsIjwiOiJsdCIsIj4iOiJndCJ9O2kodzFlLCJlbmNvZGUiKX0pO2Z1bmN0aW9uIHgwKHQsZSl7bGV0IHI9dzFlKEcxKHR8fCIiKSk7aWYoIWUpcmV0dXJuIHI7bGV0IGE9ci5pbmRleE9mKCI6Iikscz1yLmluZGV4T2YoIj8iKSxuPXIuaW5kZXhPZigiIyIpLG89ci5pbmRleE9mKCIvIik7cmV0dXJuIGE8MHx8bz4tMSYmYT5vfHxzPi0xJiZhPnN8fG4+LTEmJmE+bnx8ZS50ZXN0KHIuc2xpY2UoMCxhKSk/cjoiIn1mdW5jdGlvbiBHMSh0KXtsZXQgZT1bXSxyPS0xLGE9MCxzPTA7Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgbj10LmNoYXJDb2RlQXQociksbz0iIjtpZihuPT09MzcmJklpKHQuY2hhckNvZGVBdChyKzEpKSYmSWkodC5jaGFyQ29kZUF0KHIrMikpKXM9MjtlbHNlIGlmKG48MTI4KS9bISMkJi07PT8tWl9hLXp+XS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKXx8KG89U3RyaW5nLmZyb21DaGFyQ29kZShuKSk7ZWxzZSBpZihuPjU1Mjk1JiZuPDU3MzQ0KXtsZXQgbD10LmNoYXJDb2RlQXQocisxKTtuPDU2MzIwJiZsPjU2MzE5JiZsPDU3MzQ0PyhvPVN0cmluZy5mcm9tQ2hhckNvZGUobixsKSxzPTEpOm89Ilx1RkZGRCJ9ZWxzZSBvPVN0cmluZy5mcm9tQ2hhckNvZGUobik7byYmKGUucHVzaCh0LnNsaWNlKGEsciksZW5jb2RlVVJJQ29tcG9uZW50KG8pKSxhPXIrcysxLG89IiIpLHMmJihyKz1zLHM9MCl9cmV0dXJuIGUuam9pbigiIikrdC5zbGljZShhKX12YXIgdjA9dSgoKT0+e1dyKCk7SXZlKCk7aSh4MCwic2FuaXRpemVVcmkiKTtpKEcxLCJub3JtYWxpemVVcmkiKX0pO2Z1bmN0aW9uIE52ZSgpe3JldHVybntleGl0OntsaXRlcmFsQXV0b2xpbmtFbWFpbDpmZmEsbGl0ZXJhbEF1dG9saW5rSHR0cDpoZmEsbGl0ZXJhbEF1dG9saW5rV3d3OnBmYX19fWZ1bmN0aW9uIHBmYSh0KXtQdmUuY2FsbCh0aGlzLHQsImh0dHA6Ly8iKX1mdW5jdGlvbiBmZmEodCl7UHZlLmNhbGwodGhpcyx0LCJtYWlsdG86Iil9ZnVuY3Rpb24gaGZhKHQpe1B2ZS5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gUHZlKHQsZSl7bGV0IHI9dGhpcy5zbGljZVNlcmlhbGl6ZSh0KTt0aGlzLnRhZygnPGEgaHJlZj0iJyt4MCgoZXx8IiIpK3IpKyciPicpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKSx0aGlzLnRhZygiPC9hPiIpfXZhciB5RXQ9dSgoKT0+e3YwKCk7aShOdmUsImdmbUF1dG9saW5rTGl0ZXJhbEh0bWwiKTtpKHBmYSwibGl0ZXJhbEF1dG9saW5rV3d3Iik7aShmZmEsImxpdGVyYWxBdXRvbGlua0VtYWlsIik7aShoZmEsImxpdGVyYWxBdXRvbGlua0h0dHAiKTtpKFB2ZSwiYW5jaG9yRnJvbVRva2VuIil9KTt2YXIgd0V0PXUoKCk9Pnt2RXQoKTt5RXQoKX0pO2Z1bmN0aW9uIER1KHQsZSxyKXtsZXQgYT1bXSxzPS0xO2Zvcig7KytzPHQubGVuZ3RoOyl7bGV0IG49dFtzXS5yZXNvbHZlQWxsO24mJiFhLmluY2x1ZGVzKG4pJiYoZT1uKGUsciksYS5wdXNoKG4pKX1yZXR1cm4gZX12YXIgX009dSgoKT0+e2koRHUsInJlc29sdmVBbGwiKX0pO2Z1bmN0aW9uIG1mYSh0LGUpe2xldCByPS0xLGEscyxuLG8sbCxjLGQsZjtmb3IoOysrcjx0Lmxlbmd0aDspaWYodFtyXVswXT09PSJlbnRlciImJnRbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJnRbcl1bMV0uX2Nsb3NlKXtmb3IoYT1yO2EtLTspaWYodFthXVswXT09PSJleGl0IiYmdFthXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmdFthXVsxXS5fb3BlbiYmZS5zbGljZVNlcmlhbGl6ZSh0W2FdWzFdKS5jaGFyQ29kZUF0KDApPT09ZS5zbGljZVNlcmlhbGl6ZSh0W3JdWzFdKS5jaGFyQ29kZUF0KDApKXtpZigodFthXVsxXS5fY2xvc2V8fHRbcl1bMV0uX29wZW4pJiYodFtyXVsxXS5lbmQub2Zmc2V0LXRbcl1bMV0uc3RhcnQub2Zmc2V0KSUzJiYhKCh0W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQrdFtyXVsxXS5lbmQub2Zmc2V0LXRbcl1bMV0uc3RhcnQub2Zmc2V0KSUzKSljb250aW51ZTtjPXRbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldD4xJiZ0W3JdWzFdLmVuZC5vZmZzZXQtdFtyXVsxXS5zdGFydC5vZmZzZXQ+MT8yOjE7bGV0IHA9ey4uLnRbYV1bMV0uZW5kfSxoPXsuLi50W3JdWzFdLnN0YXJ0fTtrRXQocCwtYyksa0V0KGgsYyksbz17dHlwZTpjPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6cCxlbmQ6ey4uLnRbYV1bMV0uZW5kfX0sbD17dHlwZTpjPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6ey4uLnRbcl1bMV0uc3RhcnR9LGVuZDpofSxuPXt0eXBlOmM+MT8ic3Ryb25nVGV4dCI6ImVtcGhhc2lzVGV4dCIsc3RhcnQ6ey4uLnRbYV1bMV0uZW5kfSxlbmQ6ey4uLnRbcl1bMV0uc3RhcnR9fSxzPXt0eXBlOmM+MT8ic3Ryb25nIjoiZW1waGFzaXMiLHN0YXJ0OnsuLi5vLnN0YXJ0fSxlbmQ6ey4uLmwuZW5kfX0sdFthXVsxXS5lbmQ9ey4uLm8uc3RhcnR9LHRbcl1bMV0uc3RhcnQ9ey4uLmwuZW5kfSxkPVtdLHRbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldCYmKGQ9eXMoZCxbWyJlbnRlciIsdFthXVsxXSxlXSxbImV4aXQiLHRbYV1bMV0sZV1dKSksZD15cyhkLFtbImVudGVyIixzLGVdLFsiZW50ZXIiLG8sZV0sWyJleGl0IixvLGVdLFsiZW50ZXIiLG4sZV1dKSxkPXlzKGQsRHUoZS5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsdC5zbGljZShhKzEsciksZSkpLGQ9eXMoZCxbWyJleGl0IixuLGVdLFsiZW50ZXIiLGwsZV0sWyJleGl0IixsLGVdLFsiZXhpdCIscyxlXV0pLHRbcl1bMV0uZW5kLm9mZnNldC10W3JdWzFdLnN0YXJ0Lm9mZnNldD8oZj0yLGQ9eXMoZCxbWyJlbnRlciIsdFtyXVsxXSxlXSxbImV4aXQiLHRbcl1bMV0sZV1dKSk6Zj0wLFhpKHQsYS0xLHItYSszLGQpLHI9YStkLmxlbmd0aC1mLTI7YnJlYWt9fWZvcihyPS0xOysrcjx0Lmxlbmd0aDspdFtyXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmKHRbcl1bMV0udHlwZT0iZGF0YSIpO3JldHVybiB0fWZ1bmN0aW9uIGdmYSh0LGUpe2xldCByPXRoaXMucGFyc2VyLmNvbnN0cnVjdHMuYXR0ZW50aW9uTWFya2Vycy5udWxsLGE9dGhpcy5wcmV2aW91cyxzPWE0KGEpLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhjKXtyZXR1cm4gbj1jLHQuZW50ZXIoImF0dGVudGlvblNlcXVlbmNlIiksbChjKX1mdW5jdGlvbiBsKGMpe2lmKGM9PT1uKXJldHVybiB0LmNvbnN1bWUoYyksbDtsZXQgZD10LmV4aXQoImF0dGVudGlvblNlcXVlbmNlIiksZj1hNChjKSxwPSFmfHxmPT09MiYmc3x8ci5pbmNsdWRlcyhjKSxoPSFzfHxzPT09MiYmZnx8ci5pbmNsdWRlcyhhKTtyZXR1cm4gZC5fb3Blbj0hIShuPT09NDI/cDpwJiYoc3x8IWgpKSxkLl9jbG9zZT0hIShuPT09NDI/aDpoJiYoZnx8IXApKSxlKGMpfX1mdW5jdGlvbiBrRXQodCxlKXt0LmNvbHVtbis9ZSx0Lm9mZnNldCs9ZSx0Ll9idWZmZXJJbmRleCs9ZX12YXIgVE0sU0V0PXUoKCk9PntnMCgpO2QxZSgpO19NKCk7VE09e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDptZmEsdG9rZW5pemU6Z2ZhfTtpKG1mYSwicmVzb2x2ZUFsbEF0dGVudGlvbiIpO2koZ2ZhLCJ0b2tlbml6ZUF0dGVudGlvbiIpO2koa0V0LCJtb3ZlUG9pbnQiKX0pO2Z1bmN0aW9uIGJmYSh0LGUscil7bGV0IGE9MDtyZXR1cm4gcztmdW5jdGlvbiBzKG0pe3JldHVybiB0LmVudGVyKCJhdXRvbGluayIpLHQuZW50ZXIoImF1dG9saW5rTWFya2VyIiksdC5jb25zdW1lKG0pLHQuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSx0LmVudGVyKCJhdXRvbGlua1Byb3RvY29sIiksbn1mdW5jdGlvbiBuKG0pe3JldHVybiBWcyhtKT8odC5jb25zdW1lKG0pLG8pOm09PT02ND9yKG0pOmQobSl9ZnVuY3Rpb24gbyhtKXtyZXR1cm4gbT09PTQzfHxtPT09NDV8fG09PT00Nnx8SWkobSk/KGE9MSxsKG0pKTpkKG0pfWZ1bmN0aW9uIGwobSl7cmV0dXJuIG09PT01OD8odC5jb25zdW1lKG0pLGE9MCxjKToobT09PTQzfHxtPT09NDV8fG09PT00Nnx8SWkobSkpJiZhKys8MzI/KHQuY29uc3VtZShtKSxsKTooYT0wLGQobSkpfWZ1bmN0aW9uIGMobSl7cmV0dXJuIG09PT02Mj8odC5leGl0KCJhdXRvbGlua1Byb3RvY29sIiksdC5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSx0LmNvbnN1bWUobSksdC5leGl0KCJhdXRvbGlua01hcmtlciIpLHQuZXhpdCgiYXV0b2xpbmsiKSxlKTptPT09bnVsbHx8bT09PTMyfHxtPT09NjB8fHZoKG0pP3IobSk6KHQuY29uc3VtZShtKSxjKX1mdW5jdGlvbiBkKG0pe3JldHVybiBtPT09NjQ/KHQuY29uc3VtZShtKSxmKTpkJHQobSk/KHQuY29uc3VtZShtKSxkKTpyKG0pfWZ1bmN0aW9uIGYobSl7cmV0dXJuIElpKG0pP3AobSk6cihtKX1mdW5jdGlvbiBwKG0pe3JldHVybiBtPT09NDY/KHQuY29uc3VtZShtKSxhPTAsZik6bT09PTYyPyh0LmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKS50eXBlPSJhdXRvbGlua0VtYWlsIix0LmVudGVyKCJhdXRvbGlua01hcmtlciIpLHQuY29uc3VtZShtKSx0LmV4aXQoImF1dG9saW5rTWFya2VyIiksdC5leGl0KCJhdXRvbGluayIpLGUpOmgobSl9ZnVuY3Rpb24gaChtKXtpZigobT09PTQ1fHxJaShtKSkmJmErKzw2Myl7bGV0IHY9bT09PTQ1P2g6cDtyZXR1cm4gdC5jb25zdW1lKG0pLHZ9cmV0dXJuIHIobSl9fXZhciBPdmUsTUV0PXUoKCk9PntXcigpO092ZT17bmFtZToiYXV0b2xpbmsiLHRva2VuaXplOmJmYX07aShiZmEsInRva2VuaXplQXV0b2xpbmsiKX0pO2Z1bmN0aW9uIGp0KHQsZSxyLGEpe2xldCBzPWE/YS0xOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxuPTA7cmV0dXJuIG87ZnVuY3Rpb24gbyhjKXtyZXR1cm4gT3QoYyk/KHQuZW50ZXIociksbChjKSk6ZShjKX1mdW5jdGlvbiBsKGMpe3JldHVybiBPdChjKSYmbisrPHM/KHQuY29uc3VtZShjKSxsKToodC5leGl0KHIpLGUoYykpfX12YXIgSmk9dSgoKT0+e1dyKCk7aShqdCwiZmFjdG9yeVNwYWNlIil9KTtmdW5jdGlvbiB4ZmEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIE90KG4pP2p0KHQscywibGluZVByZWZpeCIpKG4pOnMobil9ZnVuY3Rpb24gcyhuKXtyZXR1cm4gbj09PW51bGx8fGR0KG4pP2Uobik6cihuKX19dmFyIHkwLGsxZT11KCgpPT57SmkoKTtXcigpO3kwPXtwYXJ0aWFsOiEwLHRva2VuaXplOnhmYX07aSh4ZmEsInRva2VuaXplQmxhbmtMaW5lIil9KTtmdW5jdGlvbiB2ZmEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtpZihvPT09NjIpe2xldCBsPWEuY29udGFpbmVyU3RhdGU7cmV0dXJuIGwub3Blbnx8KHQuZW50ZXIoImJsb2NrUXVvdGUiLHtfY29udGFpbmVyOiEwfSksbC5vcGVuPSEwKSx0LmVudGVyKCJibG9ja1F1b3RlUHJlZml4IiksdC5lbnRlcigiYmxvY2tRdW90ZU1hcmtlciIpLHQuY29uc3VtZShvKSx0LmV4aXQoImJsb2NrUXVvdGVNYXJrZXIiKSxufXJldHVybiByKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIE90KG8pPyh0LmVudGVyKCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLHQuY29uc3VtZShvKSx0LmV4aXQoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksdC5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksZSk6KHQuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUobykpfX1mdW5jdGlvbiB5ZmEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gT3Qobyk/anQodCxuLCJsaW5lUHJlZml4IixhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG8pOm4obyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gdC5hdHRlbXB0KFMxZSxlLHIpKG8pfX1mdW5jdGlvbiB3ZmEodCl7dC5leGl0KCJibG9ja1F1b3RlIil9dmFyIFMxZSxDRXQ9dSgoKT0+e0ppKCk7V3IoKTtTMWU9e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6eWZhfSxleGl0OndmYSxuYW1lOiJibG9ja1F1b3RlIix0b2tlbml6ZTp2ZmF9O2kodmZhLCJ0b2tlbml6ZUJsb2NrUXVvdGVTdGFydCIpO2koeWZhLCJ0b2tlbml6ZUJsb2NrUXVvdGVDb250aW51YXRpb24iKTtpKHdmYSwiZXhpdCIpfSk7ZnVuY3Rpb24ga2ZhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiB0LmVudGVyKCJjaGFyYWN0ZXJFc2NhcGUiKSx0LmVudGVyKCJlc2NhcGVNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJlc2NhcGVNYXJrZXIiKSxzfWZ1bmN0aW9uIHMobil7cmV0dXJuIHAkdChuKT8odC5lbnRlcigiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSx0LmNvbnN1bWUobiksdC5leGl0KCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZSIpLHQuZXhpdCgiY2hhcmFjdGVyRXNjYXBlIiksZSk6cihuKX19dmFyIE0xZSx6RXQ9dSgoKT0+e1dyKCk7TTFlPXtuYW1lOiJjaGFyYWN0ZXJFc2NhcGUiLHRva2VuaXplOmtmYX07aShrZmEsInRva2VuaXplQ2hhcmFjdGVyRXNjYXBlIil9KTtmdW5jdGlvbiBTZmEodCxlLHIpe2xldCBhPXRoaXMscz0wLG4sbztyZXR1cm4gbDtmdW5jdGlvbiBsKHApe3JldHVybiB0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSx0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUocCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSxjfWZ1bmN0aW9uIGMocCl7cmV0dXJuIHA9PT0zNT8odC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLHQuY29uc3VtZShwKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxkKToodC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxuPTMxLG89SWksZihwKSl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gcD09PTg4fHxwPT09MTIwPyh0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLHQuY29uc3VtZShwKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksdC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxuPTYsbz11JHQsZik6KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj03LG89a00sZihwKSl9ZnVuY3Rpb24gZihwKXtpZihwPT09NTkmJnMpe2xldCBoPXQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKTtyZXR1cm4gbz09PUlpJiYhTHUoYS5zbGljZVNlcmlhbGl6ZShoKSk/cihwKToodC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSxlKX1yZXR1cm4gbyhwKSYmcysrPG4/KHQuY29uc3VtZShwKSxmKTpyKHApfX12YXIgQzFlLF9FdD11KCgpPT57ek0oKTtXcigpO0MxZT17bmFtZToiY2hhcmFjdGVyUmVmZXJlbmNlIix0b2tlbml6ZTpTZmF9O2koU2ZhLCJ0b2tlbml6ZUNoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gTWZhKHQsZSxyKXtsZXQgYT10aGlzLHM9e3BhcnRpYWw6ITAsdG9rZW5pemU6X30sbj0wLG89MCxsO3JldHVybiBjO2Z1bmN0aW9uIGMoUyl7cmV0dXJuIGQoUyl9ZnVuY3Rpb24gZChTKXtsZXQgTz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG49TyYmT1sxXS50eXBlPT09ImxpbmVQcmVmaXgiP09bMl0uc2xpY2VTZXJpYWxpemUoT1sxXSwhMCkubGVuZ3RoOjAsbD1TLHQuZW50ZXIoImNvZGVGZW5jZWQiKSx0LmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSx0LmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGYoUyl9ZnVuY3Rpb24gZihTKXtyZXR1cm4gUz09PWw/KG8rKyx0LmNvbnN1bWUoUyksZik6bzwzP3IoUyk6KHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxPdChTKT9qdCh0LHAsIndoaXRlc3BhY2UiKShTKTpwKFMpKX1mdW5jdGlvbiBwKFMpe3JldHVybiBTPT09bnVsbHx8ZHQoUyk/KHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksYS5pbnRlcnJ1cHQ/ZShTKTp0LmNoZWNrKFRFdCxiLE4pKFMpKToodC5lbnRlcigiY29kZUZlbmNlZEZlbmNlSW5mbyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxoKFMpKX1mdW5jdGlvbiBoKFMpe3JldHVybiBTPT09bnVsbHx8ZHQoUyk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxwKFMpKTpPdChTKT8odC5leGl0KCJjaHVua1N0cmluZyIpLHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGp0KHQsbSwid2hpdGVzcGFjZSIpKFMpKTpTPT09OTYmJlM9PT1sP3IoUyk6KHQuY29uc3VtZShTKSxoKX1mdW5jdGlvbiBtKFMpe3JldHVybiBTPT09bnVsbHx8ZHQoUyk/cChTKToodC5lbnRlcigiY29kZUZlbmNlZEZlbmNlTWV0YSIpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx2KFMpKX1mdW5jdGlvbiB2KFMpe3JldHVybiBTPT09bnVsbHx8ZHQoUyk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxwKFMpKTpTPT09OTYmJlM9PT1sP3IoUyk6KHQuY29uc3VtZShTKSx2KX1mdW5jdGlvbiBiKFMpe3JldHVybiB0LmF0dGVtcHQocyxOLGcpKFMpfWZ1bmN0aW9uIGcoUyl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoUyksdC5leGl0KCJsaW5lRW5kaW5nIikseX1mdW5jdGlvbiB5KFMpe3JldHVybiBuPjAmJk90KFMpP2p0KHQsaywibGluZVByZWZpeCIsbisxKShTKTprKFMpfWZ1bmN0aW9uIGsoUyl7cmV0dXJuIFM9PT1udWxsfHxkdChTKT90LmNoZWNrKFRFdCxiLE4pKFMpOih0LmVudGVyKCJjb2RlRmxvd1ZhbHVlIiksTShTKSl9ZnVuY3Rpb24gTShTKXtyZXR1cm4gUz09PW51bGx8fGR0KFMpPyh0LmV4aXQoImNvZGVGbG93VmFsdWUiKSxrKFMpKToodC5jb25zdW1lKFMpLE0pfWZ1bmN0aW9uIE4oUyl7cmV0dXJuIHQuZXhpdCgiY29kZUZlbmNlZCIpLGUoUyl9ZnVuY3Rpb24gXyhTLE8sTCl7bGV0IEU9MDtyZXR1cm4gQjtmdW5jdGlvbiBCKEYpe3JldHVybiBTLmVudGVyKCJsaW5lRW5kaW5nIiksUy5jb25zdW1lKEYpLFMuZXhpdCgibGluZUVuZGluZyIpLEN9ZnVuY3Rpb24gQyhGKXtyZXR1cm4gUy5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksT3QoRik/anQoUyx6LCJsaW5lUHJlZml4IixhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEYpOnooRil9ZnVuY3Rpb24geihGKXtyZXR1cm4gRj09PWw/KFMuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksQShGKSk6TChGKX1mdW5jdGlvbiBBKEYpe3JldHVybiBGPT09bD8oRSsrLFMuY29uc3VtZShGKSxBKTpFPj1vPyhTLmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksT3QoRik/anQoUywkLCJ3aGl0ZXNwYWNlIikoRik6JChGKSk6TChGKX1mdW5jdGlvbiAkKEYpe3JldHVybiBGPT09bnVsbHx8ZHQoRik/KFMuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksTyhGKSk6TChGKX19fWZ1bmN0aW9uIENmYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKG8pe3JldHVybiBvPT09bnVsbD9yKG8pOih0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGluZUVuZGluZyIpLG4pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXT9yKG8pOmUobyl9fXZhciBURXQsejFlLExFdD11KCgpPT57SmkoKTtXcigpO1RFdD17cGFydGlhbDohMCx0b2tlbml6ZTpDZmF9LHoxZT17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6TWZhfTtpKE1mYSwidG9rZW5pemVDb2RlRmVuY2VkIik7aShDZmEsInRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvbiIpfSk7ZnVuY3Rpb24gX2ZhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMoZCl7cmV0dXJuIHQuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGp0KHQsbiwibGluZVByZWZpeCIsNSkoZCl9ZnVuY3Rpb24gbihkKXtsZXQgZj1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIGYmJmZbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmZlsyXS5zbGljZVNlcmlhbGl6ZShmWzFdLCEwKS5sZW5ndGg+PTQ/byhkKTpyKGQpfWZ1bmN0aW9uIG8oZCl7cmV0dXJuIGQ9PT1udWxsP2MoZCk6ZHQoZCk/dC5hdHRlbXB0KHpmYSxvLGMpKGQpOih0LmVudGVyKCJjb2RlRmxvd1ZhbHVlIiksbChkKSl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PW51bGx8fGR0KGQpPyh0LmV4aXQoImNvZGVGbG93VmFsdWUiKSxvKGQpKToodC5jb25zdW1lKGQpLGwpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIHQuZXhpdCgiY29kZUluZGVudGVkIiksZShkKX19ZnVuY3Rpb24gVGZhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIGEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXT9yKG8pOmR0KG8pPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGluZUVuZGluZyIpLHMpOmp0KHQsbiwibGluZVByZWZpeCIsNSkobyl9ZnVuY3Rpb24gbihvKXtsZXQgbD1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIGwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmbFsyXS5zbGljZVNlcmlhbGl6ZShsWzFdLCEwKS5sZW5ndGg+PTQ/ZShvKTpkdChvKT9zKG8pOnIobyl9fXZhciBMTSx6ZmEsREV0PXUoKCk9PntKaSgpO1dyKCk7TE09e25hbWU6ImNvZGVJbmRlbnRlZCIsdG9rZW5pemU6X2ZhfSx6ZmE9e3BhcnRpYWw6ITAsdG9rZW5pemU6VGZhfTtpKF9mYSwidG9rZW5pemVDb2RlSW5kZW50ZWQiKTtpKFRmYSwidG9rZW5pemVGdXJ0aGVyU3RhcnQiKX0pO2Z1bmN0aW9uIExmYSh0KXtsZXQgZT10Lmxlbmd0aC00LHI9MyxhLHM7aWYoKHRbcl1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8dFtyXVsxXS50eXBlPT09InNwYWNlIikmJih0W2VdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fHRbZV1bMV0udHlwZT09PSJzcGFjZSIpKXtmb3IoYT1yOysrYTxlOylpZih0W2FdWzFdLnR5cGU9PT0iY29kZVRleHREYXRhIil7dFtyXVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLHRbZV1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixyKz0yLGUtPTI7YnJlYWt9fWZvcihhPXItMSxlKys7KythPD1lOylzPT09dm9pZCAwP2EhPT1lJiZ0W2FdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJihzPWEpOihhPT09ZXx8dFthXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmKHRbc11bMV0udHlwZT0iY29kZVRleHREYXRhIixhIT09cysyJiYodFtzXVsxXS5lbmQ9dFthLTFdWzFdLmVuZCx0LnNwbGljZShzKzIsYS1zLTIpLGUtPWEtcy0yLGE9cysyKSxzPXZvaWQgMCk7cmV0dXJuIHR9ZnVuY3Rpb24gRGZhKHQpe3JldHVybiB0IT09OTZ8fHRoaXMuZXZlbnRzW3RoaXMuZXZlbnRzLmxlbmd0aC0xXVsxXS50eXBlPT09ImNoYXJhY3RlckVzY2FwZSJ9ZnVuY3Rpb24gJGZhKHQsZSxyKXtsZXQgYT10aGlzLHM9MCxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChoKXtyZXR1cm4gdC5lbnRlcigiY29kZVRleHQiKSx0LmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksYyhoKX1mdW5jdGlvbiBjKGgpe3JldHVybiBoPT09OTY/KHQuY29uc3VtZShoKSxzKyssYyk6KHQuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGQoaCkpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIGg9PT1udWxsP3IoaCk6aD09PTMyPyh0LmVudGVyKCJzcGFjZSIpLHQuY29uc3VtZShoKSx0LmV4aXQoInNwYWNlIiksZCk6aD09PTk2PyhvPXQuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxuPTAscChoKSk6ZHQoaCk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoaCksdC5leGl0KCJsaW5lRW5kaW5nIiksZCk6KHQuZW50ZXIoImNvZGVUZXh0RGF0YSIpLGYoaCkpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGg9PT1udWxsfHxoPT09MzJ8fGg9PT05Nnx8ZHQoaCk/KHQuZXhpdCgiY29kZVRleHREYXRhIiksZChoKSk6KHQuY29uc3VtZShoKSxmKX1mdW5jdGlvbiBwKGgpe3JldHVybiBoPT09OTY/KHQuY29uc3VtZShoKSxuKysscCk6bj09PXM/KHQuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLHQuZXhpdCgiY29kZVRleHQiKSxlKGgpKTooby50eXBlPSJjb2RlVGV4dERhdGEiLGYoaCkpfX12YXIgUnZlLCRFdD11KCgpPT57V3IoKTtSdmU9e25hbWU6ImNvZGVUZXh0IixwcmV2aW91czpEZmEscmVzb2x2ZTpMZmEsdG9rZW5pemU6JGZhfTtpKExmYSwicmVzb2x2ZUNvZGVUZXh0Iik7aShEZmEsInByZXZpb3VzIik7aSgkZmEsInRva2VuaXplQ29kZVRleHQiKX0pO2Z1bmN0aW9uIERNKHQsZSl7bGV0IHI9MDtpZihlLmxlbmd0aDwxZTQpdC5wdXNoKC4uLmUpO2Vsc2UgZm9yKDtyPGUubGVuZ3RoOyl0LnB1c2goLi4uZS5zbGljZShyLHIrMWU0KSkscis9MWU0fXZhciAkTSxGdmU9dSgoKT0+eyRNPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNwbGljZUJ1ZmZlciIpfWNvbnN0cnVjdG9yKGUpe3RoaXMubGVmdD1lP1suLi5lXTpbXSx0aGlzLnJpZ2h0PVtdfWdldChlKXtpZihlPDB8fGU+PXRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNhbm5vdCBhY2Nlc3MgaW5kZXggYCIrZSsiYCBpbiBhIHNwbGljZSBidWZmZXIgb2Ygc2l6ZSBgIisodGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aCkrImAiKTtyZXR1cm4gZTx0aGlzLmxlZnQubGVuZ3RoP3RoaXMubGVmdFtlXTp0aGlzLnJpZ2h0W3RoaXMucmlnaHQubGVuZ3RoLWUrdGhpcy5sZWZ0Lmxlbmd0aC0xXX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGh9c2hpZnQoKXtyZXR1cm4gdGhpcy5zZXRDdXJzb3IoMCksdGhpcy5yaWdodC5wb3AoKX1zbGljZShlLHIpe2xldCBhPXI/P051bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYTx0aGlzLmxlZnQubGVuZ3RoP3RoaXMubGVmdC5zbGljZShlLGEpOmU+dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWErdGhpcy5sZWZ0Lmxlbmd0aCx0aGlzLnJpZ2h0Lmxlbmd0aC1lK3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKTp0aGlzLmxlZnQuc2xpY2UoZSkuY29uY2F0KHRoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtYSt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCkpfXNwbGljZShlLHIsYSl7bGV0IHM9cnx8MDt0aGlzLnNldEN1cnNvcihNYXRoLnRydW5jKGUpKTtsZXQgbj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1zLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7cmV0dXJuIGEmJkRNKHRoaXMubGVmdCxhKSxuLnJldmVyc2UoKX1wb3AoKXtyZXR1cm4gdGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucG9wKCl9cHVzaChlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHRoaXMubGVmdC5wdXNoKGUpfXB1c2hNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksRE0odGhpcy5sZWZ0LGUpfXVuc2hpZnQoZSl7dGhpcy5zZXRDdXJzb3IoMCksdGhpcy5yaWdodC5wdXNoKGUpfXVuc2hpZnRNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKDApLERNKHRoaXMucmlnaHQsZS5yZXZlcnNlKCkpfXNldEN1cnNvcihlKXtpZighKGU9PT10aGlzLmxlZnQubGVuZ3RofHxlPnRoaXMubGVmdC5sZW5ndGgmJnRoaXMucmlnaHQubGVuZ3RoPT09MHx8ZTwwJiZ0aGlzLmxlZnQubGVuZ3RoPT09MCkpaWYoZTx0aGlzLmxlZnQubGVuZ3RoKXtsZXQgcj10aGlzLmxlZnQuc3BsaWNlKGUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtETSh0aGlzLnJpZ2h0LHIucmV2ZXJzZSgpKX1lbHNle2xldCByPXRoaXMucmlnaHQuc3BsaWNlKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgtZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO0RNKHRoaXMubGVmdCxyLnJldmVyc2UoKSl9fX07aShETSwiY2h1bmtlZFB1c2giKX0pO2Z1bmN0aW9uIF8xZSh0KXtsZXQgZT17fSxyPS0xLGEscyxuLG8sbCxjLGQsZj1uZXcgJE0odCk7Zm9yKDsrK3I8Zi5sZW5ndGg7KXtmb3IoO3IgaW4gZTspcj1lW3JdO2lmKGE9Zi5nZXQociksciYmYVsxXS50eXBlPT09ImNodW5rRmxvdyImJmYuZ2V0KHItMSlbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCImJihjPWFbMV0uX3Rva2VuaXplci5ldmVudHMsbj0wLG48Yy5sZW5ndGgmJmNbbl1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiJiYobis9MiksbjxjLmxlbmd0aCYmY1tuXVsxXS50eXBlPT09ImNvbnRlbnQiKSlmb3IoOysrbjxjLmxlbmd0aCYmY1tuXVsxXS50eXBlIT09ImNvbnRlbnQiOyljW25dWzFdLnR5cGU9PT0iY2h1bmtUZXh0IiYmKGNbbl1bMV0uX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtPSEwLG4rKyk7aWYoYVswXT09PSJlbnRlciIpYVsxXS5jb250ZW50VHlwZSYmKE9iamVjdC5hc3NpZ24oZSxBZmEoZixyKSkscj1lW3JdLGQ9ITApO2Vsc2UgaWYoYVsxXS5fY29udGFpbmVyKXtmb3Iobj1yLHM9dm9pZCAwO24tLTspaWYobz1mLmdldChuKSxvWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fG9bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKW9bMF09PT0iZW50ZXIiJiYocyYmKGYuZ2V0KHMpWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIpLG9bMV0udHlwZT0ibGluZUVuZGluZyIscz1uKTtlbHNlIGlmKCEob1sxXS50eXBlPT09ImxpbmVQcmVmaXgifHxvWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVhaztzJiYoYVsxXS5lbmQ9ey4uLmYuZ2V0KHMpWzFdLnN0YXJ0fSxsPWYuc2xpY2UocyxyKSxsLnVuc2hpZnQoYSksZi5zcGxpY2UocyxyLXMrMSxsKSl9fXJldHVybiBYaSh0LDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGYuc2xpY2UoMCkpLCFkfWZ1bmN0aW9uIEFmYSh0LGUpe2xldCByPXQuZ2V0KGUpWzFdLGE9dC5nZXQoZSlbMl0scz1lLTEsbj1bXSxvPXIuX3Rva2VuaXplcjtvfHwobz1hLnBhcnNlcltyLmNvbnRlbnRUeXBlXShyLnN0YXJ0KSxyLl9jb250ZW50VHlwZVRleHRUcmFpbGluZyYmKG8uX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nPSEwKSk7bGV0IGw9by5ldmVudHMsYz1bXSxkPXt9LGYscCxoPS0xLG09cix2PTAsYj0wLGc9W2JdO2Zvcig7bTspe2Zvcig7dC5nZXQoKytzKVsxXSE9PW07KTtuLnB1c2gocyksbS5fdG9rZW5pemVyfHwoZj1hLnNsaWNlU3RyZWFtKG0pLG0ubmV4dHx8Zi5wdXNoKG51bGwpLHAmJm8uZGVmaW5lU2tpcChtLnN0YXJ0KSxtLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSYmKG8uX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCksby53cml0ZShmKSxtLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSYmKG8uX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT12b2lkIDApKSxwPW0sbT1tLm5leHR9Zm9yKG09cjsrK2g8bC5sZW5ndGg7KWxbaF1bMF09PT0iZXhpdCImJmxbaC0xXVswXT09PSJlbnRlciImJmxbaF1bMV0udHlwZT09PWxbaC0xXVsxXS50eXBlJiZsW2hdWzFdLnN0YXJ0LmxpbmUhPT1sW2hdWzFdLmVuZC5saW5lJiYoYj1oKzEsZy5wdXNoKGIpLG0uX3Rva2VuaXplcj12b2lkIDAsbS5wcmV2aW91cz12b2lkIDAsbT1tLm5leHQpO2ZvcihvLmV2ZW50cz1bXSxtPyhtLl90b2tlbml6ZXI9dm9pZCAwLG0ucHJldmlvdXM9dm9pZCAwKTpnLnBvcCgpLGg9Zy5sZW5ndGg7aC0tOyl7bGV0IHk9bC5zbGljZShnW2hdLGdbaCsxXSksaz1uLnBvcCgpO2MucHVzaChbayxrK3kubGVuZ3RoLTFdKSx0LnNwbGljZShrLDIseSl9Zm9yKGMucmV2ZXJzZSgpLGg9LTE7KytoPGMubGVuZ3RoOylkW3YrY1toXVswXV09ditjW2hdWzFdLHYrPWNbaF1bMV0tY1toXVswXS0xO3JldHVybiBkfXZhciBCdmU9dSgoKT0+e2cwKCk7RnZlKCk7RnZlKCk7aShfMWUsInN1YnRva2VuaXplIik7aShBZmEsInN1YmNvbnRlbnQiKX0pO2Z1bmN0aW9uIElmYSh0KXtyZXR1cm4gXzFlKHQpLHR9ZnVuY3Rpb24gUGZhKHQsZSl7bGV0IHI7cmV0dXJuIGE7ZnVuY3Rpb24gYShsKXtyZXR1cm4gdC5lbnRlcigiY29udGVudCIpLHI9dC5lbnRlcigiY2h1bmtDb250ZW50Iix7Y29udGVudFR5cGU6ImNvbnRlbnQifSkscyhsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBsPT09bnVsbD9uKGwpOmR0KGwpP3QuY2hlY2soRWZhLG8sbikobCk6KHQuY29uc3VtZShsKSxzKX1mdW5jdGlvbiBuKGwpe3JldHVybiB0LmV4aXQoImNodW5rQ29udGVudCIpLHQuZXhpdCgiY29udGVudCIpLGUobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gdC5jb25zdW1lKGwpLHQuZXhpdCgiY2h1bmtDb250ZW50Iiksci5uZXh0PXQuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50IixwcmV2aW91czpyfSkscj1yLm5leHQsc319ZnVuY3Rpb24gTmZhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIHQuZXhpdCgiY2h1bmtDb250ZW50IiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShvKSx0LmV4aXQoImxpbmVFbmRpbmciKSxqdCh0LG4sImxpbmVQcmVmaXgiKX1mdW5jdGlvbiBuKG8pe2lmKG89PT1udWxsfHxkdChvKSlyZXR1cm4gcihvKTtsZXQgbD1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIWEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKSYmbCYmbFsxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZsWzJdLnNsaWNlU2VyaWFsaXplKGxbMV0sITApLmxlbmd0aD49ND9lKG8pOnQuaW50ZXJydXB0KGEucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxyLGUpKG8pfX12YXIgSHZlLEVmYSxBRXQ9dSgoKT0+e0ppKCk7V3IoKTtCdmUoKTtIdmU9e3Jlc29sdmU6SWZhLHRva2VuaXplOlBmYX0sRWZhPXtwYXJ0aWFsOiEwLHRva2VuaXplOk5mYX07aShJZmEsInJlc29sdmVDb250ZW50Iik7aShQZmEsInRva2VuaXplQ29udGVudCIpO2koTmZhLCJ0b2tlbml6ZUNvbnRpbnVhdGlvbiIpfSk7ZnVuY3Rpb24gVDFlKHQsZSxyLGEscyxuLG8sbCxjKXtsZXQgZD1jfHxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksZj0wO3JldHVybiBwO2Z1bmN0aW9uIHAoeSl7cmV0dXJuIHk9PT02MD8odC5lbnRlcihhKSx0LmVudGVyKHMpLHQuZW50ZXIobiksdC5jb25zdW1lKHkpLHQuZXhpdChuKSxoKTp5PT09bnVsbHx8eT09PTMyfHx5PT09NDF8fHZoKHkpP3IoeSk6KHQuZW50ZXIoYSksdC5lbnRlcihvKSx0LmVudGVyKGwpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxiKHkpKX1mdW5jdGlvbiBoKHkpe3JldHVybiB5PT09NjI/KHQuZW50ZXIobiksdC5jb25zdW1lKHkpLHQuZXhpdChuKSx0LmV4aXQocyksdC5leGl0KGEpLGUpOih0LmVudGVyKGwpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxtKHkpKX1mdW5jdGlvbiBtKHkpe3JldHVybiB5PT09NjI/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQobCksaCh5KSk6eT09PW51bGx8fHk9PT02MHx8ZHQoeSk/cih5KToodC5jb25zdW1lKHkpLHk9PT05Mj92Om0pfWZ1bmN0aW9uIHYoeSl7cmV0dXJuIHk9PT02MHx8eT09PTYyfHx5PT09OTI/KHQuY29uc3VtZSh5KSxtKTptKHkpfWZ1bmN0aW9uIGIoeSl7cmV0dXJuIWYmJih5PT09bnVsbHx8eT09PTQxfHxOcih5KSk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQobCksdC5leGl0KG8pLHQuZXhpdChhKSxlKHkpKTpmPGQmJnk9PT00MD8odC5jb25zdW1lKHkpLGYrKyxiKTp5PT09NDE/KHQuY29uc3VtZSh5KSxmLS0sYik6eT09PW51bGx8fHk9PT0zMnx8eT09PTQwfHx2aCh5KT9yKHkpOih0LmNvbnN1bWUoeSkseT09PTkyP2c6Yil9ZnVuY3Rpb24gZyh5KXtyZXR1cm4geT09PTQwfHx5PT09NDF8fHk9PT05Mj8odC5jb25zdW1lKHkpLGIpOmIoeSl9fXZhciBxdmU9dSgoKT0+e1dyKCk7aShUMWUsImZhY3RvcnlEZXN0aW5hdGlvbiIpfSk7ZnVuY3Rpb24gTDFlKHQsZSxyLGEscyxuKXtsZXQgbz10aGlzLGw9MCxjO3JldHVybiBkO2Z1bmN0aW9uIGQobSl7cmV0dXJuIHQuZW50ZXIoYSksdC5lbnRlcihzKSx0LmNvbnN1bWUobSksdC5leGl0KHMpLHQuZW50ZXIobiksZn1mdW5jdGlvbiBmKG0pe3JldHVybiBsPjk5OXx8bT09PW51bGx8fG09PT05MXx8bT09PTkzJiYhY3x8bT09PTk0JiYhbCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gby5wYXJzZXIuY29uc3RydWN0cz9yKG0pOm09PT05Mz8odC5leGl0KG4pLHQuZW50ZXIocyksdC5jb25zdW1lKG0pLHQuZXhpdChzKSx0LmV4aXQoYSksZSk6ZHQobSk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobSksdC5leGl0KCJsaW5lRW5kaW5nIiksZik6KHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxwKG0pKX1mdW5jdGlvbiBwKG0pe3JldHVybiBtPT09bnVsbHx8bT09PTkxfHxtPT09OTN8fGR0KG0pfHxsKys+OTk5Pyh0LmV4aXQoImNodW5rU3RyaW5nIiksZihtKSk6KHQuY29uc3VtZShtKSxjfHwoYz0hT3QobSkpLG09PT05Mj9oOnApfWZ1bmN0aW9uIGgobSl7cmV0dXJuIG09PT05MXx8bT09PTkyfHxtPT09OTM/KHQuY29uc3VtZShtKSxsKysscCk6cChtKX19dmFyIFZ2ZT11KCgpPT57V3IoKTtpKEwxZSwiZmFjdG9yeUxhYmVsIil9KTtmdW5jdGlvbiBEMWUodCxlLHIsYSxzLG4pe2xldCBvO3JldHVybiBsO2Z1bmN0aW9uIGwoaCl7cmV0dXJuIGg9PT0zNHx8aD09PTM5fHxoPT09NDA/KHQuZW50ZXIoYSksdC5lbnRlcihzKSx0LmNvbnN1bWUoaCksdC5leGl0KHMpLG89aD09PTQwPzQxOmgsYyk6cihoKX1mdW5jdGlvbiBjKGgpe3JldHVybiBoPT09bz8odC5lbnRlcihzKSx0LmNvbnN1bWUoaCksdC5leGl0KHMpLHQuZXhpdChhKSxlKToodC5lbnRlcihuKSxkKGgpKX1mdW5jdGlvbiBkKGgpe3JldHVybiBoPT09bz8odC5leGl0KG4pLGMobykpOmg9PT1udWxsP3IoaCk6ZHQoaCk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoaCksdC5leGl0KCJsaW5lRW5kaW5nIiksanQodCxkLCJsaW5lUHJlZml4IikpOih0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksZihoKSl9ZnVuY3Rpb24gZihoKXtyZXR1cm4gaD09PW98fGg9PT1udWxsfHxkdChoKT8odC5leGl0KCJjaHVua1N0cmluZyIpLGQoaCkpOih0LmNvbnN1bWUoaCksaD09PTkyP3A6Zil9ZnVuY3Rpb24gcChoKXtyZXR1cm4gaD09PW98fGg9PT05Mj8odC5jb25zdW1lKGgpLGYpOmYoaCl9fXZhciBqdmU9dSgoKT0+e0ppKCk7V3IoKTtpKEQxZSwiZmFjdG9yeVRpdGxlIil9KTtmdW5jdGlvbiB6aCh0LGUpe2xldCByO3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIGR0KHMpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKHMpLHQuZXhpdCgibGluZUVuZGluZyIpLHI9ITAsYSk6T3Qocyk/anQodCxhLHI/ImxpbmVQcmVmaXgiOiJsaW5lU3VmZml4Iikocyk6ZShzKX19dmFyIFV2ZT11KCgpPT57SmkoKTtXcigpO2koemgsImZhY3RvcnlXaGl0ZXNwYWNlIil9KTtmdW5jdGlvbiBSZmEodCxlLHIpe2xldCBhPXRoaXMscztyZXR1cm4gbjtmdW5jdGlvbiBuKG0pe3JldHVybiB0LmVudGVyKCJkZWZpbml0aW9uIiksbyhtKX1mdW5jdGlvbiBvKG0pe3JldHVybiBMMWUuY2FsbChhLHQsbCxyLCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciKShtKX1mdW5jdGlvbiBsKG0pe3JldHVybiBzPVBpKGEuc2xpY2VTZXJpYWxpemUoYS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSksbT09PTU4Pyh0LmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKG0pLHQuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGMpOnIobSl9ZnVuY3Rpb24gYyhtKXtyZXR1cm4gTnIobSk/emgodCxkKShtKTpkKG0pfWZ1bmN0aW9uIGQobSl7cmV0dXJuIFQxZSh0LGYsciwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJkZWZpbml0aW9uRGVzdGluYXRpb25SYXciLCJkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmciKShtKX1mdW5jdGlvbiBmKG0pe3JldHVybiB0LmF0dGVtcHQoT2ZhLHAscCkobSl9ZnVuY3Rpb24gcChtKXtyZXR1cm4gT3QobSk/anQodCxoLCJ3aGl0ZXNwYWNlIikobSk6aChtKX1mdW5jdGlvbiBoKG0pe3JldHVybiBtPT09bnVsbHx8ZHQobSk/KHQuZXhpdCgiZGVmaW5pdGlvbiIpLGEucGFyc2VyLmRlZmluZWQucHVzaChzKSxlKG0pKTpyKG0pfX1mdW5jdGlvbiBGZmEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobCl7cmV0dXJuIE5yKGwpP3poKHQscykobCk6cihsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBEMWUodCxuLHIsImRlZmluaXRpb25UaXRsZSIsImRlZmluaXRpb25UaXRsZU1hcmtlciIsImRlZmluaXRpb25UaXRsZVN0cmluZyIpKGwpfWZ1bmN0aW9uIG4obCl7cmV0dXJuIE90KGwpP2p0KHQsbywid2hpdGVzcGFjZSIpKGwpOm8obCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbD09PW51bGx8fGR0KGwpP2UobCk6cihsKX19dmFyIFd2ZSxPZmEsRUV0PXUoKCk9PntxdmUoKTtWdmUoKTtKaSgpO2p2ZSgpO1V2ZSgpO1dyKCk7VHUoKTtXdmU9e25hbWU6ImRlZmluaXRpb24iLHRva2VuaXplOlJmYX0sT2ZhPXtwYXJ0aWFsOiEwLHRva2VuaXplOkZmYX07aShSZmEsInRva2VuaXplRGVmaW5pdGlvbiIpO2koRmZhLCJ0b2tlbml6ZVRpdGxlQmVmb3JlIil9KTtmdW5jdGlvbiBCZmEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIHQuZW50ZXIoImhhcmRCcmVha0VzY2FwZSIpLHQuY29uc3VtZShuKSxzfWZ1bmN0aW9uIHMobil7cmV0dXJuIGR0KG4pPyh0LmV4aXQoImhhcmRCcmVha0VzY2FwZSIpLGUobikpOnIobil9fXZhciBHdmUsSUV0PXUoKCk9PntXcigpO0d2ZT17bmFtZToiaGFyZEJyZWFrRXNjYXBlIix0b2tlbml6ZTpCZmF9O2koQmZhLCJ0b2tlbml6ZUhhcmRCcmVha0VzY2FwZSIpfSk7ZnVuY3Rpb24gSGZhKHQsZSl7bGV0IHI9dC5sZW5ndGgtMixhPTMscyxuO3JldHVybiB0W2FdWzFdLnR5cGU9PT0id2hpdGVzcGFjZSImJihhKz0yKSxyLTI+YSYmdFtyXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoci09MiksdFtyXVsxXS50eXBlPT09ImF0eEhlYWRpbmdTZXF1ZW5jZSImJihhPT09ci0xfHxyLTQ+YSYmdFtyLTJdWzFdLnR5cGU9PT0id2hpdGVzcGFjZSIpJiYoci09YSsxPT09cj8yOjQpLHI+YSYmKHM9e3R5cGU6ImF0eEhlYWRpbmdUZXh0IixzdGFydDp0W2FdWzFdLnN0YXJ0LGVuZDp0W3JdWzFdLmVuZH0sbj17dHlwZToiY2h1bmtUZXh0IixzdGFydDp0W2FdWzFdLnN0YXJ0LGVuZDp0W3JdWzFdLmVuZCxjb250ZW50VHlwZToidGV4dCJ9LFhpKHQsYSxyLWErMSxbWyJlbnRlciIscyxlXSxbImVudGVyIixuLGVdLFsiZXhpdCIsbixlXSxbImV4aXQiLHMsZV1dKSksdH1mdW5jdGlvbiBxZmEodCxlLHIpe2xldCBhPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhmKXtyZXR1cm4gdC5lbnRlcigiYXR4SGVhZGluZyIpLG4oZil9ZnVuY3Rpb24gbihmKXtyZXR1cm4gdC5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksbyhmKX1mdW5jdGlvbiBvKGYpe3JldHVybiBmPT09MzUmJmErKzw2Pyh0LmNvbnN1bWUoZiksbyk6Zj09PW51bGx8fE5yKGYpPyh0LmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGwoZikpOnIoZil9ZnVuY3Rpb24gbChmKXtyZXR1cm4gZj09PTM1Pyh0LmVudGVyKCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxjKGYpKTpmPT09bnVsbHx8ZHQoZik/KHQuZXhpdCgiYXR4SGVhZGluZyIpLGUoZikpOk90KGYpP2p0KHQsbCwid2hpdGVzcGFjZSIpKGYpOih0LmVudGVyKCJhdHhIZWFkaW5nVGV4dCIpLGQoZikpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGY9PT0zNT8odC5jb25zdW1lKGYpLGMpOih0LmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGwoZikpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGY9PT1udWxsfHxmPT09MzV8fE5yKGYpPyh0LmV4aXQoImF0eEhlYWRpbmdUZXh0IiksbChmKSk6KHQuY29uc3VtZShmKSxkKX19dmFyIFl2ZSxQRXQ9dSgoKT0+e0ppKCk7V3IoKTtnMCgpO1l2ZT17bmFtZToiaGVhZGluZ0F0eCIscmVzb2x2ZTpIZmEsdG9rZW5pemU6cWZhfTtpKEhmYSwicmVzb2x2ZUhlYWRpbmdBdHgiKTtpKHFmYSwidG9rZW5pemVIZWFkaW5nQXR4Iil9KTt2YXIgTkV0LEt2ZSxPRXQ9dSgoKT0+e05FdD1bImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQiLCJibG9ja3F1b3RlIiwiYm9keSIsImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0YWlscyIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiZnJhbWUiLCJmcmFtZXNldCIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJociIsImh0bWwiLCJpZnJhbWUiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYWluIiwibWVudSIsIm1lbnVpdGVtIiwibmF2Iiwibm9mcmFtZXMiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwicCIsInBhcmFtIiwic2VhcmNoIiwic2VjdGlvbiIsInN1bW1hcnkiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCJdLEt2ZT1bInByZSIsInNjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiXX0pO2Z1bmN0aW9uIFVmYSh0KXtsZXQgZT10Lmxlbmd0aDtmb3IoO2UtLSYmISh0W2VdWzBdPT09ImVudGVyIiYmdFtlXVsxXS50eXBlPT09Imh0bWxGbG93Iik7KTtyZXR1cm4gZT4xJiZ0W2UtMl1bMV0udHlwZT09PSJsaW5lUHJlZml4IiYmKHRbZV1bMV0uc3RhcnQ9dFtlLTJdWzFdLnN0YXJ0LHRbZSsxXVsxXS5zdGFydD10W2UtMl1bMV0uc3RhcnQsdC5zcGxpY2UoZS0yLDIpKSx0fWZ1bmN0aW9uIFdmYSh0LGUscil7bGV0IGE9dGhpcyxzLG4sbyxsLGM7cmV0dXJuIGQ7ZnVuY3Rpb24gZChUKXtyZXR1cm4gZihUKX1mdW5jdGlvbiBmKFQpe3JldHVybiB0LmVudGVyKCJodG1sRmxvdyIpLHQuZW50ZXIoImh0bWxGbG93RGF0YSIpLHQuY29uc3VtZShUKSxwfWZ1bmN0aW9uIHAoVCl7cmV0dXJuIFQ9PT0zMz8odC5jb25zdW1lKFQpLGgpOlQ9PT00Nz8odC5jb25zdW1lKFQpLG49ITAsYik6VD09PTYzPyh0LmNvbnN1bWUoVCkscz0zLGEuaW50ZXJydXB0P2U6RCk6VnMoVCk/KHQuY29uc3VtZShUKSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoVCksZyk6cihUKX1mdW5jdGlvbiBoKFQpe3JldHVybiBUPT09NDU/KHQuY29uc3VtZShUKSxzPTIsbSk6VD09PTkxPyh0LmNvbnN1bWUoVCkscz01LGw9MCx2KTpWcyhUKT8odC5jb25zdW1lKFQpLHM9NCxhLmludGVycnVwdD9lOkQpOnIoVCl9ZnVuY3Rpb24gbShUKXtyZXR1cm4gVD09PTQ1Pyh0LmNvbnN1bWUoVCksYS5pbnRlcnJ1cHQ/ZTpEKTpyKFQpfWZ1bmN0aW9uIHYoVCl7bGV0IFc9IkNEQVRBWyI7cmV0dXJuIFQ9PT1XLmNoYXJDb2RlQXQobCsrKT8odC5jb25zdW1lKFQpLGw9PT1XLmxlbmd0aD9hLmludGVycnVwdD9lOno6dik6cihUKX1mdW5jdGlvbiBiKFQpe3JldHVybiBWcyhUKT8odC5jb25zdW1lKFQpLG89U3RyaW5nLmZyb21DaGFyQ29kZShUKSxnKTpyKFQpfWZ1bmN0aW9uIGcoVCl7aWYoVD09PW51bGx8fFQ9PT00N3x8VD09PTYyfHxOcihUKSl7bGV0IFc9VD09PTQ3LHBlPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4hVyYmIW4mJkt2ZS5pbmNsdWRlcyhwZSk/KHM9MSxhLmludGVycnVwdD9lKFQpOnooVCkpOk5FdC5pbmNsdWRlcyhvLnRvTG93ZXJDYXNlKCkpPyhzPTYsVz8odC5jb25zdW1lKFQpLHkpOmEuaW50ZXJydXB0P2UoVCk6eihUKSk6KHM9NyxhLmludGVycnVwdCYmIWEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXT9yKFQpOm4/ayhUKTpNKFQpKX1yZXR1cm4gVD09PTQ1fHxJaShUKT8odC5jb25zdW1lKFQpLG8rPVN0cmluZy5mcm9tQ2hhckNvZGUoVCksZyk6cihUKX1mdW5jdGlvbiB5KFQpe3JldHVybiBUPT09NjI/KHQuY29uc3VtZShUKSxhLmludGVycnVwdD9lOnopOnIoVCl9ZnVuY3Rpb24gayhUKXtyZXR1cm4gT3QoVCk/KHQuY29uc3VtZShUKSxrKTpCKFQpfWZ1bmN0aW9uIE0oVCl7cmV0dXJuIFQ9PT00Nz8odC5jb25zdW1lKFQpLEIpOlQ9PT01OHx8VD09PTk1fHxWcyhUKT8odC5jb25zdW1lKFQpLE4pOk90KFQpPyh0LmNvbnN1bWUoVCksTSk6QihUKX1mdW5jdGlvbiBOKFQpe3JldHVybiBUPT09NDV8fFQ9PT00Nnx8VD09PTU4fHxUPT09OTV8fElpKFQpPyh0LmNvbnN1bWUoVCksTik6XyhUKX1mdW5jdGlvbiBfKFQpe3JldHVybiBUPT09NjE/KHQuY29uc3VtZShUKSxTKTpPdChUKT8odC5jb25zdW1lKFQpLF8pOk0oVCl9ZnVuY3Rpb24gUyhUKXtyZXR1cm4gVD09PW51bGx8fFQ9PT02MHx8VD09PTYxfHxUPT09NjJ8fFQ9PT05Nj9yKFQpOlQ9PT0zNHx8VD09PTM5Pyh0LmNvbnN1bWUoVCksYz1ULE8pOk90KFQpPyh0LmNvbnN1bWUoVCksUyk6TChUKX1mdW5jdGlvbiBPKFQpe3JldHVybiBUPT09Yz8odC5jb25zdW1lKFQpLGM9bnVsbCxFKTpUPT09bnVsbHx8ZHQoVCk/cihUKToodC5jb25zdW1lKFQpLE8pfWZ1bmN0aW9uIEwoVCl7cmV0dXJuIFQ9PT1udWxsfHxUPT09MzR8fFQ9PT0zOXx8VD09PTQ3fHxUPT09NjB8fFQ9PT02MXx8VD09PTYyfHxUPT09OTZ8fE5yKFQpP18oVCk6KHQuY29uc3VtZShUKSxMKX1mdW5jdGlvbiBFKFQpe3JldHVybiBUPT09NDd8fFQ9PT02Mnx8T3QoVCk/TShUKTpyKFQpfWZ1bmN0aW9uIEIoVCl7cmV0dXJuIFQ9PT02Mj8odC5jb25zdW1lKFQpLEMpOnIoVCl9ZnVuY3Rpb24gQyhUKXtyZXR1cm4gVD09PW51bGx8fGR0KFQpP3ooVCk6T3QoVCk/KHQuY29uc3VtZShUKSxDKTpyKFQpfWZ1bmN0aW9uIHooVCl7cmV0dXJuIFQ9PT00NSYmcz09PTI/KHQuY29uc3VtZShUKSxZKTpUPT09NjAmJnM9PT0xPyh0LmNvbnN1bWUoVCksRyk6VD09PTYyJiZzPT09ND8odC5jb25zdW1lKFQpLFEpOlQ9PT02MyYmcz09PTM/KHQuY29uc3VtZShUKSxEKTpUPT09OTMmJnM9PT01Pyh0LmNvbnN1bWUoVCksZGUpOmR0KFQpJiYocz09PTZ8fHM9PT03KT8odC5leGl0KCJodG1sRmxvd0RhdGEiKSx0LmNoZWNrKFZmYSxmZSxBKShUKSk6VD09PW51bGx8fGR0KFQpPyh0LmV4aXQoImh0bWxGbG93RGF0YSIpLEEoVCkpOih0LmNvbnN1bWUoVCkseil9ZnVuY3Rpb24gQShUKXtyZXR1cm4gdC5jaGVjayhqZmEsJCxmZSkoVCl9ZnVuY3Rpb24gJChUKXtyZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShUKSx0LmV4aXQoImxpbmVFbmRpbmciKSxGfWZ1bmN0aW9uIEYoVCl7cmV0dXJuIFQ9PT1udWxsfHxkdChUKT9BKFQpOih0LmVudGVyKCJodG1sRmxvd0RhdGEiKSx6KFQpKX1mdW5jdGlvbiBZKFQpe3JldHVybiBUPT09NDU/KHQuY29uc3VtZShUKSxEKTp6KFQpfWZ1bmN0aW9uIEcoVCl7cmV0dXJuIFQ9PT00Nz8odC5jb25zdW1lKFQpLG89IiIsWik6eihUKX1mdW5jdGlvbiBaKFQpe2lmKFQ9PT02Mil7bGV0IFc9by50b0xvd2VyQ2FzZSgpO3JldHVybiBLdmUuaW5jbHVkZXMoVyk/KHQuY29uc3VtZShUKSxRKTp6KFQpfXJldHVybiBWcyhUKSYmby5sZW5ndGg8OD8odC5jb25zdW1lKFQpLG8rPVN0cmluZy5mcm9tQ2hhckNvZGUoVCksWik6eihUKX1mdW5jdGlvbiBkZShUKXtyZXR1cm4gVD09PTkzPyh0LmNvbnN1bWUoVCksRCk6eihUKX1mdW5jdGlvbiBEKFQpe3JldHVybiBUPT09NjI/KHQuY29uc3VtZShUKSxRKTpUPT09NDUmJnM9PT0yPyh0LmNvbnN1bWUoVCksRCk6eihUKX1mdW5jdGlvbiBRKFQpe3JldHVybiBUPT09bnVsbHx8ZHQoVCk/KHQuZXhpdCgiaHRtbEZsb3dEYXRhIiksZmUoVCkpOih0LmNvbnN1bWUoVCksUSl9ZnVuY3Rpb24gZmUoVCl7cmV0dXJuIHQuZXhpdCgiaHRtbEZsb3ciKSxlKFQpfX1mdW5jdGlvbiBHZmEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gZHQobyk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobyksdC5leGl0KCJsaW5lRW5kaW5nIiksbik6cihvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihvKTplKG8pfX1mdW5jdGlvbiBZZmEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUocyksdC5leGl0KCJsaW5lRW5kaW5nIiksdC5hdHRlbXB0KHkwLGUscil9fXZhciBadmUsVmZhLGpmYSxSRXQ9dSgoKT0+e1dyKCk7T0V0KCk7azFlKCk7WnZlPXtjb25jcmV0ZTohMCxuYW1lOiJodG1sRmxvdyIscmVzb2x2ZVRvOlVmYSx0b2tlbml6ZTpXZmF9LFZmYT17cGFydGlhbDohMCx0b2tlbml6ZTpZZmF9LGpmYT17cGFydGlhbDohMCx0b2tlbml6ZTpHZmF9O2koVWZhLCJyZXNvbHZlVG9IdG1sRmxvdyIpO2koV2ZhLCJ0b2tlbml6ZUh0bWxGbG93Iik7aShHZmEsInRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvblN0YXJ0Iik7aShZZmEsInRva2VuaXplQmxhbmtMaW5lQmVmb3JlIil9KTtmdW5jdGlvbiBLZmEodCxlLHIpe2xldCBhPXRoaXMscyxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChEKXtyZXR1cm4gdC5lbnRlcigiaHRtbFRleHQiKSx0LmVudGVyKCJodG1sVGV4dERhdGEiKSx0LmNvbnN1bWUoRCksY31mdW5jdGlvbiBjKEQpe3JldHVybiBEPT09MzM/KHQuY29uc3VtZShEKSxkKTpEPT09NDc/KHQuY29uc3VtZShEKSxfKTpEPT09NjM/KHQuY29uc3VtZShEKSxNKTpWcyhEKT8odC5jb25zdW1lKEQpLEwpOnIoRCl9ZnVuY3Rpb24gZChEKXtyZXR1cm4gRD09PTQ1Pyh0LmNvbnN1bWUoRCksZik6RD09PTkxPyh0LmNvbnN1bWUoRCksbj0wLHYpOlZzKEQpPyh0LmNvbnN1bWUoRCksayk6cihEKX1mdW5jdGlvbiBmKEQpe3JldHVybiBEPT09NDU/KHQuY29uc3VtZShEKSxtKTpyKEQpfWZ1bmN0aW9uIHAoRCl7cmV0dXJuIEQ9PT1udWxsP3IoRCk6RD09PTQ1Pyh0LmNvbnN1bWUoRCksaCk6ZHQoRCk/KG89cCxHKEQpKToodC5jb25zdW1lKEQpLHApfWZ1bmN0aW9uIGgoRCl7cmV0dXJuIEQ9PT00NT8odC5jb25zdW1lKEQpLG0pOnAoRCl9ZnVuY3Rpb24gbShEKXtyZXR1cm4gRD09PTYyP1koRCk6RD09PTQ1P2goRCk6cChEKX1mdW5jdGlvbiB2KEQpe2xldCBRPSJDREFUQVsiO3JldHVybiBEPT09US5jaGFyQ29kZUF0KG4rKyk/KHQuY29uc3VtZShEKSxuPT09US5sZW5ndGg/Yjp2KTpyKEQpfWZ1bmN0aW9uIGIoRCl7cmV0dXJuIEQ9PT1udWxsP3IoRCk6RD09PTkzPyh0LmNvbnN1bWUoRCksZyk6ZHQoRCk/KG89YixHKEQpKToodC5jb25zdW1lKEQpLGIpfWZ1bmN0aW9uIGcoRCl7cmV0dXJuIEQ9PT05Mz8odC5jb25zdW1lKEQpLHkpOmIoRCl9ZnVuY3Rpb24geShEKXtyZXR1cm4gRD09PTYyP1koRCk6RD09PTkzPyh0LmNvbnN1bWUoRCkseSk6YihEKX1mdW5jdGlvbiBrKEQpe3JldHVybiBEPT09bnVsbHx8RD09PTYyP1koRCk6ZHQoRCk/KG89ayxHKEQpKToodC5jb25zdW1lKEQpLGspfWZ1bmN0aW9uIE0oRCl7cmV0dXJuIEQ9PT1udWxsP3IoRCk6RD09PTYzPyh0LmNvbnN1bWUoRCksTik6ZHQoRCk/KG89TSxHKEQpKToodC5jb25zdW1lKEQpLE0pfWZ1bmN0aW9uIE4oRCl7cmV0dXJuIEQ9PT02Mj9ZKEQpOk0oRCl9ZnVuY3Rpb24gXyhEKXtyZXR1cm4gVnMoRCk/KHQuY29uc3VtZShEKSxTKTpyKEQpfWZ1bmN0aW9uIFMoRCl7cmV0dXJuIEQ9PT00NXx8SWkoRCk/KHQuY29uc3VtZShEKSxTKTpPKEQpfWZ1bmN0aW9uIE8oRCl7cmV0dXJuIGR0KEQpPyhvPU8sRyhEKSk6T3QoRCk/KHQuY29uc3VtZShEKSxPKTpZKEQpfWZ1bmN0aW9uIEwoRCl7cmV0dXJuIEQ9PT00NXx8SWkoRCk/KHQuY29uc3VtZShEKSxMKTpEPT09NDd8fEQ9PT02Mnx8TnIoRCk/RShEKTpyKEQpfWZ1bmN0aW9uIEUoRCl7cmV0dXJuIEQ9PT00Nz8odC5jb25zdW1lKEQpLFkpOkQ9PT01OHx8RD09PTk1fHxWcyhEKT8odC5jb25zdW1lKEQpLEIpOmR0KEQpPyhvPUUsRyhEKSk6T3QoRCk/KHQuY29uc3VtZShEKSxFKTpZKEQpfWZ1bmN0aW9uIEIoRCl7cmV0dXJuIEQ9PT00NXx8RD09PTQ2fHxEPT09NTh8fEQ9PT05NXx8SWkoRCk/KHQuY29uc3VtZShEKSxCKTpDKEQpfWZ1bmN0aW9uIEMoRCl7cmV0dXJuIEQ9PT02MT8odC5jb25zdW1lKEQpLHopOmR0KEQpPyhvPUMsRyhEKSk6T3QoRCk/KHQuY29uc3VtZShEKSxDKTpFKEQpfWZ1bmN0aW9uIHooRCl7cmV0dXJuIEQ9PT1udWxsfHxEPT09NjB8fEQ9PT02MXx8RD09PTYyfHxEPT09OTY/cihEKTpEPT09MzR8fEQ9PT0zOT8odC5jb25zdW1lKEQpLHM9RCxBKTpkdChEKT8obz16LEcoRCkpOk90KEQpPyh0LmNvbnN1bWUoRCkseik6KHQuY29uc3VtZShEKSwkKX1mdW5jdGlvbiBBKEQpe3JldHVybiBEPT09cz8odC5jb25zdW1lKEQpLHM9dm9pZCAwLEYpOkQ9PT1udWxsP3IoRCk6ZHQoRCk/KG89QSxHKEQpKToodC5jb25zdW1lKEQpLEEpfWZ1bmN0aW9uICQoRCl7cmV0dXJuIEQ9PT1udWxsfHxEPT09MzR8fEQ9PT0zOXx8RD09PTYwfHxEPT09NjF8fEQ9PT05Nj9yKEQpOkQ9PT00N3x8RD09PTYyfHxOcihEKT9FKEQpOih0LmNvbnN1bWUoRCksJCl9ZnVuY3Rpb24gRihEKXtyZXR1cm4gRD09PTQ3fHxEPT09NjJ8fE5yKEQpP0UoRCk6cihEKX1mdW5jdGlvbiBZKEQpe3JldHVybiBEPT09NjI/KHQuY29uc3VtZShEKSx0LmV4aXQoImh0bWxUZXh0RGF0YSIpLHQuZXhpdCgiaHRtbFRleHQiKSxlKTpyKEQpfWZ1bmN0aW9uIEcoRCl7cmV0dXJuIHQuZXhpdCgiaHRtbFRleHREYXRhIiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShEKSx0LmV4aXQoImxpbmVFbmRpbmciKSxafWZ1bmN0aW9uIFooRCl7cmV0dXJuIE90KEQpP2p0KHQsZGUsImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoRCk6ZGUoRCl9ZnVuY3Rpb24gZGUoRCl7cmV0dXJuIHQuZW50ZXIoImh0bWxUZXh0RGF0YSIpLG8oRCl9fXZhciBRdmUsRkV0PXUoKCk9PntKaSgpO1dyKCk7UXZlPXtuYW1lOiJodG1sVGV4dCIsdG9rZW5pemU6S2ZhfTtpKEtmYSwidG9rZW5pemVIdG1sVGV4dCIpfSk7ZnVuY3Rpb24gSmZhKHQpe2xldCBlPS0xLHI9W107Zm9yKDsrK2U8dC5sZW5ndGg7KXtsZXQgYT10W2VdWzFdO2lmKHIucHVzaCh0W2VdKSxhLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGEudHlwZT09PSJsYWJlbExpbmsifHxhLnR5cGU9PT0ibGFiZWxFbmQiKXtsZXQgcz1hLnR5cGU9PT0ibGFiZWxJbWFnZSI/NDoyO2EudHlwZT0iZGF0YSIsZSs9c319cmV0dXJuIHQubGVuZ3RoIT09ci5sZW5ndGgmJlhpKHQsMCx0Lmxlbmd0aCxyKSx0fWZ1bmN0aW9uIGVoYSh0LGUpe2xldCByPXQubGVuZ3RoLGE9MCxzLG4sbyxsO2Zvcig7ci0tOylpZihzPXRbcl1bMV0sbil7aWYocy50eXBlPT09ImxpbmsifHxzLnR5cGU9PT0ibGFiZWxMaW5rIiYmcy5faW5hY3RpdmUpYnJlYWs7dFtyXVswXT09PSJlbnRlciImJnMudHlwZT09PSJsYWJlbExpbmsiJiYocy5faW5hY3RpdmU9ITApfWVsc2UgaWYobyl7aWYodFtyXVswXT09PSJlbnRlciImJihzLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fHMudHlwZT09PSJsYWJlbExpbmsiKSYmIXMuX2JhbGFuY2VkJiYobj1yLHMudHlwZSE9PSJsYWJlbExpbmsiKSl7YT0yO2JyZWFrfX1lbHNlIHMudHlwZT09PSJsYWJlbEVuZCImJihvPXIpO2xldCBjPXt0eXBlOnRbbl1bMV0udHlwZT09PSJsYWJlbExpbmsiPyJsaW5rIjoiaW1hZ2UiLHN0YXJ0OnsuLi50W25dWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbdC5sZW5ndGgtMV1bMV0uZW5kfX0sZD17dHlwZToibGFiZWwiLHN0YXJ0OnsuLi50W25dWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbb11bMV0uZW5kfX0sZj17dHlwZToibGFiZWxUZXh0IixzdGFydDp7Li4udFtuK2ErMl1bMV0uZW5kfSxlbmQ6ey4uLnRbby0yXVsxXS5zdGFydH19O3JldHVybiBsPVtbImVudGVyIixjLGVdLFsiZW50ZXIiLGQsZV1dLGw9eXMobCx0LnNsaWNlKG4rMSxuK2ErMykpLGw9eXMobCxbWyJlbnRlciIsZixlXV0pLGw9eXMobCxEdShlLnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCx0LnNsaWNlKG4rYSs0LG8tMyksZSkpLGw9eXMobCxbWyJleGl0IixmLGVdLHRbby0yXSx0W28tMV0sWyJleGl0IixkLGVdXSksbD15cyhsLHQuc2xpY2UobysxKSksbD15cyhsLFtbImV4aXQiLGMsZV1dKSxYaSh0LG4sdC5sZW5ndGgsbCksdH1mdW5jdGlvbiB0aGEodCxlLHIpe2xldCBhPXRoaXMscz1hLmV2ZW50cy5sZW5ndGgsbixvO2Zvcig7cy0tOylpZigoYS5ldmVudHNbc11bMV0udHlwZT09PSJsYWJlbEltYWdlInx8YS5ldmVudHNbc11bMV0udHlwZT09PSJsYWJlbExpbmsiKSYmIWEuZXZlbnRzW3NdWzFdLl9iYWxhbmNlZCl7bj1hLmV2ZW50c1tzXVsxXTticmVha31yZXR1cm4gbDtmdW5jdGlvbiBsKGgpe3JldHVybiBuP24uX2luYWN0aXZlP3AoaCk6KG89YS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhQaShhLnNsaWNlU2VyaWFsaXplKHtzdGFydDpuLmVuZCxlbmQ6YS5ub3coKX0pKSksdC5lbnRlcigibGFiZWxFbmQiKSx0LmVudGVyKCJsYWJlbE1hcmtlciIpLHQuY29uc3VtZShoKSx0LmV4aXQoImxhYmVsTWFya2VyIiksdC5leGl0KCJsYWJlbEVuZCIpLGMpOnIoaCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PTQwP3QuYXR0ZW1wdChaZmEsZixvP2Y6cCkoaCk6aD09PTkxP3QuYXR0ZW1wdChRZmEsZixvP2Q6cCkoaCk6bz9mKGgpOnAoaCl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gdC5hdHRlbXB0KFhmYSxmLHApKGgpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGUoaCl9ZnVuY3Rpb24gcChoKXtyZXR1cm4gbi5fYmFsYW5jZWQ9ITAscihoKX19ZnVuY3Rpb24gcmhhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKHApe3JldHVybiB0LmVudGVyKCJyZXNvdXJjZSIpLHQuZW50ZXIoInJlc291cmNlTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxzfWZ1bmN0aW9uIHMocCl7cmV0dXJuIE5yKHApP3poKHQsbikocCk6bihwKX1mdW5jdGlvbiBuKHApe3JldHVybiBwPT09NDE/ZihwKTpUMWUodCxvLGwsInJlc291cmNlRGVzdGluYXRpb24iLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwicmVzb3VyY2VEZXN0aW5hdGlvblJhdyIsInJlc291cmNlRGVzdGluYXRpb25TdHJpbmciLDMyKShwKX1mdW5jdGlvbiBvKHApe3JldHVybiBOcihwKT96aCh0LGMpKHApOmYocCl9ZnVuY3Rpb24gbChwKXtyZXR1cm4gcihwKX1mdW5jdGlvbiBjKHApe3JldHVybiBwPT09MzR8fHA9PT0zOXx8cD09PTQwP0QxZSh0LGQsciwicmVzb3VyY2VUaXRsZSIsInJlc291cmNlVGl0bGVNYXJrZXIiLCJyZXNvdXJjZVRpdGxlU3RyaW5nIikocCk6ZihwKX1mdW5jdGlvbiBkKHApe3JldHVybiBOcihwKT96aCh0LGYpKHApOmYocCl9ZnVuY3Rpb24gZihwKXtyZXR1cm4gcD09PTQxPyh0LmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoInJlc291cmNlTWFya2VyIiksdC5leGl0KCJyZXNvdXJjZSIpLGUpOnIocCl9fWZ1bmN0aW9uIGFoYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKGwpe3JldHVybiBMMWUuY2FsbChhLHQsbixvLCJyZWZlcmVuY2UiLCJyZWZlcmVuY2VNYXJrZXIiLCJyZWZlcmVuY2VTdHJpbmciKShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBhLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKFBpKGEuc2xpY2VTZXJpYWxpemUoYS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSkpP2UobCk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiByKGwpfX1mdW5jdGlvbiBpaGEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIHQuZW50ZXIoInJlZmVyZW5jZSIpLHQuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShuKSx0LmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLHN9ZnVuY3Rpb24gcyhuKXtyZXR1cm4gbj09PTkzPyh0LmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSx0LmV4aXQoInJlZmVyZW5jZSIpLGUpOnIobil9fXZhciBfaCxaZmEsUWZhLFhmYSwkMWU9dSgoKT0+e3F2ZSgpO1Z2ZSgpO2p2ZSgpO1V2ZSgpO1dyKCk7ZzAoKTtUdSgpO19NKCk7X2g9e25hbWU6ImxhYmVsRW5kIixyZXNvbHZlQWxsOkpmYSxyZXNvbHZlVG86ZWhhLHRva2VuaXplOnRoYX0sWmZhPXt0b2tlbml6ZTpyaGF9LFFmYT17dG9rZW5pemU6YWhhfSxYZmE9e3Rva2VuaXplOmloYX07aShKZmEsInJlc29sdmVBbGxMYWJlbEVuZCIpO2koZWhhLCJyZXNvbHZlVG9MYWJlbEVuZCIpO2kodGhhLCJ0b2tlbml6ZUxhYmVsRW5kIik7aShyaGEsInRva2VuaXplUmVzb3VyY2UiKTtpKGFoYSwidG9rZW5pemVSZWZlcmVuY2VGdWxsIik7aShpaGEsInRva2VuaXplUmVmZXJlbmNlQ29sbGFwc2VkIil9KTtmdW5jdGlvbiBzaGEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gdC5lbnRlcigibGFiZWxJbWFnZSIpLHQuZW50ZXIoImxhYmVsSW1hZ2VNYXJrZXIiKSx0LmNvbnN1bWUobCksdC5leGl0KCJsYWJlbEltYWdlTWFya2VyIiksbn1mdW5jdGlvbiBuKGwpe3JldHVybiBsPT09OTE/KHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKGwpLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsSW1hZ2UiKSxvKTpyKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT05NCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gYS5wYXJzZXIuY29uc3RydWN0cz9yKGwpOmUobCl9fXZhciBYdmUsQkV0PXUoKCk9PnskMWUoKTtYdmU9e25hbWU6ImxhYmVsU3RhcnRJbWFnZSIscmVzb2x2ZUFsbDpfaC5yZXNvbHZlQWxsLHRva2VuaXplOnNoYX07aShzaGEsInRva2VuaXplTGFiZWxTdGFydEltYWdlIil9KTtmdW5jdGlvbiBuaGEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gdC5lbnRlcigibGFiZWxMaW5rIiksdC5lbnRlcigibGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUobyksdC5leGl0KCJsYWJlbE1hcmtlciIpLHQuZXhpdCgibGFiZWxMaW5rIiksbn1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGEucGFyc2VyLmNvbnN0cnVjdHM/cihvKTplKG8pfX12YXIgSnZlLEhFdD11KCgpPT57JDFlKCk7SnZlPXtuYW1lOiJsYWJlbFN0YXJ0TGluayIscmVzb2x2ZUFsbDpfaC5yZXNvbHZlQWxsLHRva2VuaXplOm5oYX07aShuaGEsInRva2VuaXplTGFiZWxTdGFydExpbmsiKX0pO2Z1bmN0aW9uIG9oYSh0LGUpe3JldHVybiByO2Z1bmN0aW9uIHIoYSl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoYSksdC5leGl0KCJsaW5lRW5kaW5nIiksanQodCxlLCJsaW5lUHJlZml4Iil9fXZhciBBTSxxRXQ9dSgoKT0+e0ppKCk7V3IoKTtBTT17bmFtZToibGluZUVuZGluZyIsdG9rZW5pemU6b2hhfTtpKG9oYSwidG9rZW5pemVMaW5lRW5kaW5nIil9KTtmdW5jdGlvbiBsaGEodCxlLHIpe2xldCBhPTAscztyZXR1cm4gbjtmdW5jdGlvbiBuKGQpe3JldHVybiB0LmVudGVyKCJ0aGVtYXRpY0JyZWFrIiksbyhkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBzPWQsbChkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09cz8odC5lbnRlcigidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksYyhkKSk6YT49MyYmKGQ9PT1udWxsfHxkdChkKSk/KHQuZXhpdCgidGhlbWF0aWNCcmVhayIpLGUoZCkpOnIoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZD09PXM/KHQuY29uc3VtZShkKSxhKyssYyk6KHQuZXhpdCgidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksT3QoZCk/anQodCxsLCJ3aGl0ZXNwYWNlIikoZCk6bChkKSl9fXZhciBUaCxleWU9dSgoKT0+e0ppKCk7V3IoKTtUaD17bmFtZToidGhlbWF0aWNCcmVhayIsdG9rZW5pemU6bGhhfTtpKGxoYSwidG9rZW5pemVUaGVtYXRpY0JyZWFrIil9KTtmdW5jdGlvbiB1aGEodCxlLHIpe2xldCBhPXRoaXMscz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV0sbj1zJiZzWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/c1syXS5zbGljZVNlcmlhbGl6ZShzWzFdLCEwKS5sZW5ndGg6MCxvPTA7cmV0dXJuIGw7ZnVuY3Rpb24gbChtKXtsZXQgdj1hLmNvbnRhaW5lclN0YXRlLnR5cGV8fChtPT09NDJ8fG09PT00M3x8bT09PTQ1PyJsaXN0VW5vcmRlcmVkIjoibGlzdE9yZGVyZWQiKTtpZih2PT09Imxpc3RVbm9yZGVyZWQiPyFhLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8bT09PWEuY29udGFpbmVyU3RhdGUubWFya2VyOmtNKG0pKXtpZihhLmNvbnRhaW5lclN0YXRlLnR5cGV8fChhLmNvbnRhaW5lclN0YXRlLnR5cGU9dix0LmVudGVyKHYse19jb250YWluZXI6ITB9KSksdj09PSJsaXN0VW5vcmRlcmVkIilyZXR1cm4gdC5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSxtPT09NDJ8fG09PT00NT90LmNoZWNrKFRoLHIsZCkobSk6ZChtKTtpZighYS5pbnRlcnJ1cHR8fG09PT00OSlyZXR1cm4gdC5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSx0LmVudGVyKCJsaXN0SXRlbVZhbHVlIiksYyhtKX1yZXR1cm4gcihtKX1mdW5jdGlvbiBjKG0pe3JldHVybiBrTShtKSYmKytvPDEwPyh0LmNvbnN1bWUobSksYyk6KCFhLmludGVycnVwdHx8bzwyKSYmKGEuY29udGFpbmVyU3RhdGUubWFya2VyP209PT1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcjptPT09NDF8fG09PT00Nik/KHQuZXhpdCgibGlzdEl0ZW1WYWx1ZSIpLGQobSkpOnIobSl9ZnVuY3Rpb24gZChtKXtyZXR1cm4gdC5lbnRlcigibGlzdEl0ZW1NYXJrZXIiKSx0LmNvbnN1bWUobSksdC5leGl0KCJsaXN0SXRlbU1hcmtlciIpLGEuY29udGFpbmVyU3RhdGUubWFya2VyPWEuY29udGFpbmVyU3RhdGUubWFya2VyfHxtLHQuY2hlY2soeTAsYS5pbnRlcnJ1cHQ/cjpmLHQuYXR0ZW1wdChjaGEsaCxwKSl9ZnVuY3Rpb24gZihtKXtyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPSEwLG4rKyxoKG0pfWZ1bmN0aW9uIHAobSl7cmV0dXJuIE90KG0pPyh0LmVudGVyKCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSx0LmNvbnN1bWUobSksdC5leGl0KCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxoKTpyKG0pfWZ1bmN0aW9uIGgobSl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuc2l6ZT1uK2Euc2xpY2VTZXJpYWxpemUodC5leGl0KCJsaXN0SXRlbVByZWZpeCIpLCEwKS5sZW5ndGgsZShtKX19ZnVuY3Rpb24gcGhhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBhLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLHQuY2hlY2soeTAscyxuKTtmdW5jdGlvbiBzKGwpe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPWEuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fGEuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSxqdCh0LGUsImxpc3RJdGVtSW5kZW50IixhLmNvbnRhaW5lclN0YXRlLnNpemUrMSkobCl9aShzLCJvbkJsYW5rIik7ZnVuY3Rpb24gbihsKXtyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8IU90KGwpPyhhLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxhLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLG8obCkpOihhLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxhLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLHQuYXR0ZW1wdChkaGEsZSxvKShsKSl9aShuLCJub3RCbGFuayIpO2Z1bmN0aW9uIG8obCl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz0hMCxhLmludGVycnVwdD12b2lkIDAsanQodCx0LmF0dGVtcHQoaW8sZSxyKSwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShsKX1pKG8sIm5vdEluQ3VycmVudEl0ZW0iKX1mdW5jdGlvbiBmaGEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIGp0KHQscywibGlzdEl0ZW1JbmRlbnQiLGEuY29udGFpbmVyU3RhdGUuc2l6ZSsxKTtmdW5jdGlvbiBzKG4pe2xldCBvPWEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IiYmb1syXS5zbGljZVNlcmlhbGl6ZShvWzFdLCEwKS5sZW5ndGg9PT1hLmNvbnRhaW5lclN0YXRlLnNpemU/ZShuKTpyKG4pfX1mdW5jdGlvbiBoaGEodCl7dC5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSl9ZnVuY3Rpb24gbWhhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBqdCh0LHMsImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo1KTtmdW5jdGlvbiBzKG4pe2xldCBvPWEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4hT3QobikmJm8mJm9bMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiP2Uobik6cihuKX19dmFyIGlvLGNoYSxkaGEsVkV0PXUoKCk9PntKaSgpO1dyKCk7azFlKCk7ZXllKCk7aW89e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6cGhhfSxleGl0OmhoYSxuYW1lOiJsaXN0Iix0b2tlbml6ZTp1aGF9LGNoYT17cGFydGlhbDohMCx0b2tlbml6ZTptaGF9LGRoYT17cGFydGlhbDohMCx0b2tlbml6ZTpmaGF9O2kodWhhLCJ0b2tlbml6ZUxpc3RTdGFydCIpO2kocGhhLCJ0b2tlbml6ZUxpc3RDb250aW51YXRpb24iKTtpKGZoYSwidG9rZW5pemVJbmRlbnQiKTtpKGhoYSwidG9rZW5pemVMaXN0RW5kIik7aShtaGEsInRva2VuaXplTGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIil9KTtmdW5jdGlvbiBnaGEodCxlKXtsZXQgcj10Lmxlbmd0aCxhLHMsbjtmb3IoO3ItLTspaWYodFtyXVswXT09PSJlbnRlciIpe2lmKHRbcl1bMV0udHlwZT09PSJjb250ZW50Iil7YT1yO2JyZWFrfXRbcl1bMV0udHlwZT09PSJwYXJhZ3JhcGgiJiYocz1yKX1lbHNlIHRbcl1bMV0udHlwZT09PSJjb250ZW50IiYmdC5zcGxpY2UociwxKSwhbiYmdFtyXVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYobj1yKTtsZXQgbz17dHlwZToic2V0ZXh0SGVhZGluZyIsc3RhcnQ6ey4uLnRbYV1bMV0uc3RhcnR9LGVuZDp7Li4udFt0Lmxlbmd0aC0xXVsxXS5lbmR9fTtyZXR1cm4gdFtzXVsxXS50eXBlPSJzZXRleHRIZWFkaW5nVGV4dCIsbj8odC5zcGxpY2UocywwLFsiZW50ZXIiLG8sZV0pLHQuc3BsaWNlKG4rMSwwLFsiZXhpdCIsdFthXVsxXSxlXSksdFthXVsxXS5lbmQ9ey4uLnRbbl1bMV0uZW5kfSk6dFthXVsxXT1vLHQucHVzaChbImV4aXQiLG8sZV0pLHR9ZnVuY3Rpb24gYmhhKHQsZSxyKXtsZXQgYT10aGlzLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihkKXtsZXQgZj1hLmV2ZW50cy5sZW5ndGgscDtmb3IoO2YtLTspaWYoYS5ldmVudHNbZl1bMV0udHlwZSE9PSJsaW5lRW5kaW5nIiYmYS5ldmVudHNbZl1bMV0udHlwZSE9PSJsaW5lUHJlZml4IiYmYS5ldmVudHNbZl1bMV0udHlwZSE9PSJjb250ZW50Iil7cD1hLmV2ZW50c1tmXVsxXS50eXBlPT09InBhcmFncmFwaCI7YnJlYWt9cmV0dXJuIWEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXSYmKGEuaW50ZXJydXB0fHxwKT8odC5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmUiKSxzPWQsbyhkKSk6cihkKX1mdW5jdGlvbiBvKGQpe3JldHVybiB0LmVudGVyKCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksbChkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09cz8odC5jb25zdW1lKGQpLGwpOih0LmV4aXQoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxPdChkKT9qdCh0LGMsImxpbmVTdWZmaXgiKShkKTpjKGQpKX1mdW5jdGlvbiBjKGQpe3JldHVybiBkPT09bnVsbHx8ZHQoZCk/KHQuZXhpdCgic2V0ZXh0SGVhZGluZ0xpbmUiKSxlKGQpKTpyKGQpfX12YXIgQTFlLGpFdD11KCgpPT57SmkoKTtXcigpO0ExZT17bmFtZToic2V0ZXh0VW5kZXJsaW5lIixyZXNvbHZlVG86Z2hhLHRva2VuaXplOmJoYX07aShnaGEsInJlc29sdmVUb1NldGV4dFVuZGVybGluZSIpO2koYmhhLCJ0b2tlbml6ZVNldGV4dFVuZGVybGluZSIpfSk7dmFyIEUxZT11KCgpPT57U0V0KCk7TUV0KCk7azFlKCk7Q0V0KCk7ekV0KCk7X0V0KCk7TEV0KCk7REV0KCk7JEV0KCk7QUV0KCk7RUV0KCk7SUV0KCk7UEV0KCk7UkV0KCk7RkV0KCk7JDFlKCk7QkV0KCk7SEV0KCk7cUV0KCk7VkV0KCk7akV0KCk7ZXllKCl9KTtmdW5jdGlvbiB0eWUoKXtyZXR1cm57ZG9jdW1lbnQ6ezkxOntuYW1lOiJnZm1Gb290bm90ZURlZmluaXRpb24iLHRva2VuaXplOmtoYSxjb250aW51YXRpb246e3Rva2VuaXplOlNoYX0sZXhpdDpNaGF9fSx0ZXh0Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVDYWxsIix0b2tlbml6ZTp3aGF9LDkzOntuYW1lOiJnZm1Qb3RlbnRpYWxGb290bm90ZUNhbGwiLGFkZDoiYWZ0ZXIiLHRva2VuaXplOnZoYSxyZXNvbHZlVG86eWhhfX19fWZ1bmN0aW9uIHZoYSh0LGUscil7bGV0IGE9dGhpcyxzPWEuZXZlbnRzLmxlbmd0aCxuPWEucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGEucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbztmb3IoO3MtLTspe2xldCBjPWEuZXZlbnRzW3NdWzFdO2lmKGMudHlwZT09PSJsYWJlbEltYWdlIil7bz1jO2JyZWFrfWlmKGMudHlwZT09PSJnZm1Gb290bm90ZUNhbGwifHxjLnR5cGU9PT0ibGFiZWxMaW5rInx8Yy50eXBlPT09ImxhYmVsInx8Yy50eXBlPT09ImltYWdlInx8Yy50eXBlPT09ImxpbmsiKWJyZWFrfXJldHVybiBsO2Z1bmN0aW9uIGwoYyl7aWYoIW98fCFvLl9iYWxhbmNlZClyZXR1cm4gcihjKTtsZXQgZD1QaShhLnNsaWNlU2VyaWFsaXplKHtzdGFydDpvLmVuZCxlbmQ6YS5ub3coKX0pKTtyZXR1cm4gZC5jb2RlUG9pbnRBdCgwKSE9PTk0fHwhbi5pbmNsdWRlcyhkLnNsaWNlKDEpKT9yKGMpOih0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQuY29uc3VtZShjKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZShjKSl9fWZ1bmN0aW9uIHloYSh0LGUpe2xldCByPXQubGVuZ3RoLGE7Zm9yKDtyLS07KWlmKHRbcl1bMV0udHlwZT09PSJsYWJlbEltYWdlIiYmdFtyXVswXT09PSJlbnRlciIpe2E9dFtyXVsxXTticmVha310W3IrMV1bMV0udHlwZT0iZGF0YSIsdFtyKzNdWzFdLnR5cGU9ImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIjtsZXQgcz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHRbciszXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sdFt0Lmxlbmd0aC0xXVsxXS5lbmQpfSxuPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxNYXJrZXIiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sdFtyKzNdWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sdFtyKzNdWzFdLmVuZCl9O24uZW5kLmNvbHVtbisrLG4uZW5kLm9mZnNldCsrLG4uZW5kLl9idWZmZXJJbmRleCsrO2xldCBvPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxTdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sbi5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbdC5sZW5ndGgtMV1bMV0uc3RhcnQpfSxsPXt0eXBlOiJjaHVua1N0cmluZyIsY29udGVudFR5cGU6InN0cmluZyIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvLmVuZCl9LGM9W3RbcisxXSx0W3IrMl0sWyJlbnRlciIscyxlXSx0W3IrM10sdFtyKzRdLFsiZW50ZXIiLG4sZV0sWyJleGl0IixuLGVdLFsiZW50ZXIiLG8sZV0sWyJlbnRlciIsbCxlXSxbImV4aXQiLGwsZV0sWyJleGl0IixvLGVdLHRbdC5sZW5ndGgtMl0sdFt0Lmxlbmd0aC0xXSxbImV4aXQiLHMsZV1dO3JldHVybiB0LnNwbGljZShyLHQubGVuZ3RoLXIrMSwuLi5jKSx0fWZ1bmN0aW9uIHdoYSh0LGUscil7bGV0IGE9dGhpcyxzPWEucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGEucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbj0wLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChwKXtyZXR1cm4gdC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsIiksdC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUocCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGN9ZnVuY3Rpb24gYyhwKXtyZXR1cm4gcCE9PTk0P3IocCk6KHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsZCl9ZnVuY3Rpb24gZChwKXtpZihuPjk5OXx8cD09PTkzJiYhb3x8cD09PW51bGx8fHA9PT05MXx8TnIocCkpcmV0dXJuIHIocCk7aWYocD09PTkzKXt0LmV4aXQoImNodW5rU3RyaW5nIik7bGV0IGg9dC5leGl0KCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKTtyZXR1cm4gcy5pbmNsdWRlcyhQaShhLnNsaWNlU2VyaWFsaXplKGgpKSk/KHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbCIpLGUpOnIocCl9cmV0dXJuIE5yKHApfHwobz0hMCksbisrLHQuY29uc3VtZShwKSxwPT09OTI/ZjpkfWZ1bmN0aW9uIGYocCl7cmV0dXJuIHA9PT05MXx8cD09PTkyfHxwPT09OTM/KHQuY29uc3VtZShwKSxuKyssZCk6ZChwKX19ZnVuY3Rpb24ga2hhKHQsZSxyKXtsZXQgYT10aGlzLHM9YS5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoYS5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKSxuLG89MCxsO3JldHVybiBjO2Z1bmN0aW9uIGModil7cmV0dXJuIHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpLl9jb250YWluZXI9ITAsdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHQuY29uc3VtZSh2KSx0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksZH1mdW5jdGlvbiBkKHYpe3JldHVybiB2PT09OTQ/KHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLHQuY29uc3VtZSh2KSx0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiksdC5lbnRlcigiY2h1bmtTdHJpbmciKS5jb250ZW50VHlwZT0ic3RyaW5nIixmKTpyKHYpfWZ1bmN0aW9uIGYodil7aWYobz45OTl8fHY9PT05MyYmIWx8fHY9PT1udWxsfHx2PT09OTF8fE5yKHYpKXJldHVybiByKHYpO2lmKHY9PT05Myl7dC5leGl0KCJjaHVua1N0cmluZyIpO2xldCBiPXQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtyZXR1cm4gbj1QaShhLnNsaWNlU2VyaWFsaXplKGIpKSx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHQuY29uc3VtZSh2KSx0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCIpLGh9cmV0dXJuIE5yKHYpfHwobD0hMCksbysrLHQuY29uc3VtZSh2KSx2PT09OTI/cDpmfWZ1bmN0aW9uIHAodil7cmV0dXJuIHY9PT05MXx8dj09PTkyfHx2PT09OTM/KHQuY29uc3VtZSh2KSxvKyssZik6Zih2KX1mdW5jdGlvbiBoKHYpe3JldHVybiB2PT09NTg/KHQuZW50ZXIoImRlZmluaXRpb25NYXJrZXIiKSx0LmNvbnN1bWUodiksdC5leGl0KCJkZWZpbml0aW9uTWFya2VyIikscy5pbmNsdWRlcyhuKXx8cy5wdXNoKG4pLGp0KHQsbSwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uV2hpdGVzcGFjZSIpKTpyKHYpfWZ1bmN0aW9uIG0odil7cmV0dXJuIGUodil9fWZ1bmN0aW9uIFNoYSh0LGUscil7cmV0dXJuIHQuY2hlY2soeTAsZSx0LmF0dGVtcHQoeGhhLGUscikpfWZ1bmN0aW9uIE1oYSh0KXt0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpfWZ1bmN0aW9uIENoYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4ganQodCxzLCJnZm1Gb290bm90ZURlZmluaXRpb25JbmRlbnQiLDUpO2Z1bmN0aW9uIHMobil7bGV0IG89YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBvJiZvWzFdLnR5cGU9PT0iZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50IiYmb1syXS5zbGljZVNlcmlhbGl6ZShvWzFdLCEwKS5sZW5ndGg9PT00P2Uobik6cihuKX19dmFyIHhoYSxVRXQ9dSgoKT0+e0UxZSgpO0ppKCk7V3IoKTtUdSgpO3hoYT17dG9rZW5pemU6Q2hhLHBhcnRpYWw6ITB9O2kodHllLCJnZm1Gb290bm90ZSIpO2kodmhhLCJ0b2tlbml6ZVBvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbCIpO2koeWhhLCJyZXNvbHZlVG9Qb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwiKTtpKHdoYSwidG9rZW5pemVHZm1Gb290bm90ZUNhbGwiKTtpKGtoYSwidG9rZW5pemVEZWZpbml0aW9uU3RhcnQiKTtpKFNoYSwidG9rZW5pemVEZWZpbml0aW9uQ29udGludWF0aW9uIik7aShNaGEsImdmbUZvb3Rub3RlRGVmaW5pdGlvbkVuZCIpO2koQ2hhLCJ0b2tlbml6ZUluZGVudCIpfSk7ZnVuY3Rpb24gV0V0KHQsZSl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKHQrMSkrKGU+MT8iLSIrZToiIil9ZnVuY3Rpb24gcnllKHQpe2xldCBlPXR8fF9oYSxyPWUubGFiZWx8fCJGb290bm90ZXMiLGE9ZS5sYWJlbFRhZ05hbWV8fCJoMiIscz1lLmxhYmVsQXR0cmlidXRlcz09PW51bGx8fGUubGFiZWxBdHRyaWJ1dGVzPT09dm9pZCAwPydjbGFzcz0ic3Itb25seSInOmUubGFiZWxBdHRyaWJ1dGVzLG49ZS5iYWNrTGFiZWx8fFdFdCxvPWUuY2xvYmJlclByZWZpeD09PW51bGx8fGUuY2xvYmJlclByZWZpeD09PXZvaWQgMD8idXNlci1jb250ZW50LSI6ZS5jbG9iYmVyUHJlZml4O3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVEZWZpbml0aW9uKCl7dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIikucHVzaCghMSl9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX19LGV4aXQ6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpLGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpLGQ9dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIiksZj1jLnBvcCgpLHA9dGhpcy5yZXN1bWUoKTtsfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiLGw9e30pLHpoYS5jYWxsKGwsZil8fChsW2ZdPXApLGQucG9wKCksdGhpcy5zZXREYXRhKCJzbHVycE9uZUxpbmVFbmRpbmciLCEwKSx0aGlzLnNldERhdGEoImxhc3RXYXNUYWciKX0sZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcobCl7bGV0IGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpO2N8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siLGM9W10pLGMucHVzaChQaSh0aGlzLnNsaWNlU2VyaWFsaXplKGwpKSksdGhpcy5yZXN1bWUoKSx0aGlzLmJ1ZmZlcigpfSxnZm1Gb290bm90ZUNhbGxTdHJpbmcobCl7bGV0IGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpLGQ9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiKSxmPVBpKHRoaXMuc2xpY2VTZXJpYWxpemUobCkpLHA7dGhpcy5yZXN1bWUoKSxjfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIixjPVtdKSxkfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIsZD17fSk7bGV0IGg9Yy5pbmRleE9mKGYpLG09eDAoZi50b0xvd2VyQ2FzZSgpKTtoPT09LTE/KGMucHVzaChmKSxkW2ZdPTEscD1jLmxlbmd0aCk6KGRbZl0rKyxwPWgrMSk7bGV0IHY9ZFtmXTt0aGlzLnRhZygnPHN1cD48YSBocmVmPSIjJytvKyJmbi0iK20rJyIgaWQ9IicrbysiZm5yZWYtIittKyh2PjE/Ii0iK3Y6IiIpKyciIGRhdGEtZm9vdG5vdGUtcmVmPSIiIGFyaWEtZGVzY3JpYmVkYnk9ImZvb3Rub3RlLWxhYmVsIj4nK1N0cmluZyhwKSsiPC9hPjwvc3VwPiIpfSxudWxsKCl7bGV0IGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpfHxbXSxjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIil8fHt9LGQ9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIil8fHt9LGY9LTE7Zm9yKGwubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8c2VjdGlvbiBkYXRhLWZvb3Rub3Rlcz0iIiBjbGFzcz0iZm9vdG5vdGVzIj48JythKycgaWQ9ImZvb3Rub3RlLWxhYmVsIicrKHM/IiAiK3M6IiIpKyI+IiksdGhpcy5yYXcodGhpcy5lbmNvZGUocikpLHRoaXMudGFnKCI8LyIrYSsiPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjxvbD4iKSk7KytmPGwubGVuZ3RoOyl7bGV0IHA9bFtmXSxoPXgwKHAudG9Mb3dlckNhc2UoKSksbT0wLHY9W107Zm9yKDsrK208PWNbcF07KXYucHVzaCgnPGEgaHJlZj0iIycrbysiZm5yZWYtIitoKyhtPjE/Ii0iK206IiIpKyciIGRhdGEtZm9vdG5vdGUtYmFja3JlZj0iIiBhcmlhLWxhYmVsPSInK3RoaXMuZW5jb2RlKHR5cGVvZiBuPT0ic3RyaW5nIj9uOm4oZixtKSkrJyIgY2xhc3M9ImRhdGEtZm9vdG5vdGUtYmFja3JlZiI+XHUyMUE5JysobT4xPyI8c3VwPiIrbSsiPC9zdXA+IjoiIikrIjwvYT4iKTtsZXQgYj12LmpvaW4oIiAiKSxnPSExO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoJzxsaSBpZD0iJytvKyJmbi0iK2grJyI+JyksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZyhkW3BdLnJlcGxhY2UoLzxcL3A+KD86XHI/XG58XHIpPyQvLGZ1bmN0aW9uKHkpe3JldHVybiBnPSEwLCIgIitiK3l9KSksZ3x8KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoYikpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvbGk+Iil9bC5sZW5ndGg+MCYmKHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvb2w+IiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9zZWN0aW9uPiIpKX19fX12YXIgemhhLF9oYSxHRXQ9dSgoKT0+e1R1KCk7djAoKTt6aGE9e30uaGFzT3duUHJvcGVydHksX2hhPXt9O2koV0V0LCJkZWZhdWx0QmFja0xhYmVsIik7aShyeWUsImdmbUZvb3Rub3RlSHRtbCIpfSk7dmFyIFlFdD11KCgpPT57VUV0KCk7R0V0KCl9KTtmdW5jdGlvbiBheWUoKXtyZXR1cm57ZW50ZXI6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPGRlbD4iKX19LGV4aXQ6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPC9kZWw+Iil9fX19dmFyIEtFdD11KCgpPT57aShheWUsImdmbVN0cmlrZXRocm91Z2hIdG1sIil9KTtmdW5jdGlvbiBpeWUodCl7bGV0IHI9KHR8fHt9KS5zaW5nbGVUaWxkZSxhPXtuYW1lOiJzdHJpa2V0aHJvdWdoIix0b2tlbml6ZTpuLHJlc29sdmVBbGw6c307cmV0dXJuIHI9PW51bGwmJihyPSEwKSx7dGV4dDp7MTI2OmF9LGluc2lkZVNwYW46e251bGw6W2FdfSxhdHRlbnRpb25NYXJrZXJzOntudWxsOlsxMjZdfX07ZnVuY3Rpb24gcyhvLGwpe2xldCBjPS0xO2Zvcig7KytjPG8ubGVuZ3RoOylpZihvW2NdWzBdPT09ImVudGVyIiYmb1tjXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bY11bMV0uX2Nsb3NlKXtsZXQgZD1jO2Zvcig7ZC0tOylpZihvW2RdWzBdPT09ImV4aXQiJiZvW2RdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmb1tkXVsxXS5fb3BlbiYmb1tjXVsxXS5lbmQub2Zmc2V0LW9bY11bMV0uc3RhcnQub2Zmc2V0PT09b1tkXVsxXS5lbmQub2Zmc2V0LW9bZF1bMV0uc3RhcnQub2Zmc2V0KXtvW2NdWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSIsb1tkXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiO2xldCBmPXt0eXBlOiJzdHJpa2V0aHJvdWdoIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bZF1bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LG9bY11bMV0uZW5kKX0scD17dHlwZToic3RyaWtldGhyb3VnaFRleHQiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sb1tkXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LG9bY11bMV0uc3RhcnQpfSxoPVtbImVudGVyIixmLGxdLFsiZW50ZXIiLG9bZF1bMV0sbF0sWyJleGl0IixvW2RdWzFdLGxdLFsiZW50ZXIiLHAsbF1dLG09bC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGw7bSYmWGkoaCxoLmxlbmd0aCwwLER1KG0sby5zbGljZShkKzEsYyksbCkpLFhpKGgsaC5sZW5ndGgsMCxbWyJleGl0IixwLGxdLFsiZW50ZXIiLG9bY11bMV0sbF0sWyJleGl0IixvW2NdWzFdLGxdLFsiZXhpdCIsZixsXV0pLFhpKG8sZC0xLGMtZCszLGgpLGM9ZCtoLmxlbmd0aC0yO2JyZWFrfX1mb3IoYz0tMTsrK2M8by5sZW5ndGg7KW9bY11bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiYob1tjXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIG99aShzLCJyZXNvbHZlQWxsU3RyaWtldGhyb3VnaCIpO2Z1bmN0aW9uIG4obyxsLGMpe2xldCBkPXRoaXMucHJldmlvdXMsZj10aGlzLmV2ZW50cyxwPTA7cmV0dXJuIGg7ZnVuY3Rpb24gaCh2KXtyZXR1cm4gZD09PTEyNiYmZltmLmxlbmd0aC0xXVsxXS50eXBlIT09ImNoYXJhY3RlckVzY2FwZSI/Yyh2KTooby5lbnRlcigic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiksbSh2KSl9ZnVuY3Rpb24gbSh2KXtsZXQgYj1hNChkKTtpZih2PT09MTI2KXJldHVybiBwPjE/Yyh2KTooby5jb25zdW1lKHYpLHArKyxtKTtpZihwPDImJiFyKXJldHVybiBjKHYpO2xldCBnPW8uZXhpdCgic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IikseT1hNCh2KTtyZXR1cm4gZy5fb3Blbj0heXx8eT09PTImJiEhYixnLl9jbG9zZT0hYnx8Yj09PTImJiEheSxsKHYpfX1pKG4sInRva2VuaXplU3RyaWtldGhyb3VnaCIpfXZhciBaRXQ9dSgoKT0+e2cwKCk7ZDFlKCk7X00oKTtpKGl5ZSwiZ2ZtU3RyaWtldGhyb3VnaCIpfSk7dmFyIFFFdD11KCgpPT57S0V0KCk7WkV0KCl9KTtmdW5jdGlvbiBueWUoKXtyZXR1cm57ZW50ZXI6e3RhYmxlKHQpe2xldCBlPXQuX2FsaWduO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0YWJsZT4iKSx0aGlzLnNldERhdGEoInRhYmxlQWxpZ24iLGUpfSx0YWJsZUJvZHkoKXt0aGlzLnRhZygiPHRib2R5PiIpfSx0YWJsZURhdGEoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSxyPXN5ZVt0W2VdXTtyPT09dm9pZCAwP3RoaXMuYnVmZmVyKCk6KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0ZCIrcisiPiIpKX0sdGFibGVIZWFkKCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpLHI9c3llW3RbZV1dO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aCIrcisiPiIpfSx0YWJsZVJvdygpe3RoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLDApLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0cj4iKX19LGV4aXQ6e2NvZGVUZXh0RGF0YSh0KXtsZXQgZT10aGlzLnNsaWNlU2VyaWFsaXplKHQpO3RoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpJiYoZT1lLnJlcGxhY2UoL1xcKFtcXHxdKS9nLFRoYSkpLHRoaXMucmF3KHRoaXMuZW5jb2RlKGUpKX0sdGFibGUoKXt0aGlzLnNldERhdGEoInRhYmxlQWxpZ24iKSx0aGlzLnNldERhdGEoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RhYmxlPiIpfSx0YWJsZUJvZHkoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3Rib2R5PiIpfSx0YWJsZURhdGEoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTtlIGluIHQ/KHRoaXMudGFnKCI8L3RkPiIpLHRoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLGUrMSkpOnRoaXMucmVzdW1lKCl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGhlYWQ+Iil9LHRhYmxlSGVhZGVyKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO3RoaXMudGFnKCI8L3RoPiIpLHRoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLHQrMSl9LHRhYmxlUm93KCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7Zm9yKDtlPHQubGVuZ3RoOyl0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK3N5ZVt0W2VdXSsiPjwvdGQ+IiksZSsrO3RoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLGUpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdHI+Iil9fX19ZnVuY3Rpb24gVGhhKHQsZSl7cmV0dXJuIGU9PT0ifCI/ZTp0fXZhciBzeWUsWEV0PXUoKCk9PntzeWU9e25vbmU6IiIsbGVmdDonIGFsaWduPSJsZWZ0IicscmlnaHQ6JyBhbGlnbj0icmlnaHQiJyxjZW50ZXI6JyBhbGlnbj0iY2VudGVyIid9O2kobnllLCJnZm1UYWJsZUh0bWwiKTtpKFRoYSwicmVwbGFjZSIpfSk7ZnVuY3Rpb24gTGhhKHQsZSxyLGEpe2xldCBzPTA7aWYoIShyPT09MCYmYS5sZW5ndGg9PT0wKSl7Zm9yKDtzPHQubWFwLmxlbmd0aDspe2lmKHQubWFwW3NdWzBdPT09ZSl7dC5tYXBbc11bMV0rPXIsdC5tYXBbc11bMl0ucHVzaCguLi5hKTtyZXR1cm59cys9MX10Lm1hcC5wdXNoKFtlLHIsYV0pfX12YXIgSTFlLEpFdD11KCgpPT57STFlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkVkaXRNYXAiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubWFwPVtdfWFkZChlLHIsYSl7TGhhKHRoaXMsZSxyLGEpfWNvbnN1bWUoZSl7aWYodGhpcy5tYXAuc29ydChmdW5jdGlvbihuLG8pe3JldHVybiBuWzBdLW9bMF19KSx0aGlzLm1hcC5sZW5ndGg9PT0wKXJldHVybjtsZXQgcj10aGlzLm1hcC5sZW5ndGgsYT1bXTtmb3IoO3I+MDspci09MSxhLnB1c2goZS5zbGljZSh0aGlzLm1hcFtyXVswXSt0aGlzLm1hcFtyXVsxXSksdGhpcy5tYXBbcl1bMl0pLGUubGVuZ3RoPXRoaXMubWFwW3JdWzBdO2EucHVzaChlLnNsaWNlKCkpLGUubGVuZ3RoPTA7bGV0IHM9YS5wb3AoKTtmb3IoO3M7KXtmb3IobGV0IG4gb2YgcyllLnB1c2gobik7cz1hLnBvcCgpfXRoaXMubWFwLmxlbmd0aD0wfX07aShMaGEsImFkZEltcGxlbWVudGF0aW9uIil9KTtmdW5jdGlvbiBlSXQodCxlKXtsZXQgcj0hMSxhPVtdO2Zvcig7ZTx0Lmxlbmd0aDspe2xldCBzPXRbZV07aWYocil7aWYoc1swXT09PSJlbnRlciIpc1sxXS50eXBlPT09InRhYmxlQ29udGVudCImJmEucHVzaCh0W2UrMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciI/ImxlZnQiOiJub25lIik7ZWxzZSBpZihzWzFdLnR5cGU9PT0idGFibGVDb250ZW50Iil7aWYodFtlLTFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiKXtsZXQgbj1hLmxlbmd0aC0xO2Fbbl09YVtuXT09PSJsZWZ0Ij8iY2VudGVyIjoicmlnaHQifX1lbHNlIGlmKHNbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyIpYnJlYWt9ZWxzZSBzWzBdPT09ImVudGVyIiYmc1sxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IiYmKHI9ITApO2UrPTF9cmV0dXJuIGF9dmFyIHRJdD11KCgpPT57aShlSXQsImdmbVRhYmxlQWxpZ24iKX0pO2Z1bmN0aW9uIG95ZSgpe3JldHVybntmbG93OntudWxsOntuYW1lOiJ0YWJsZSIsdG9rZW5pemU6RGhhLHJlc29sdmVBbGw6JGhhfX19fWZ1bmN0aW9uIERoYSh0LGUscil7bGV0IGE9dGhpcyxzPTAsbj0wLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChCKXtsZXQgQz1hLmV2ZW50cy5sZW5ndGgtMTtmb3IoO0M+LTE7KXtsZXQgJD1hLmV2ZW50c1tDXVsxXS50eXBlO2lmKCQ9PT0ibGluZUVuZGluZyJ8fCQ9PT0ibGluZVByZWZpeCIpQy0tO2Vsc2UgYnJlYWt9bGV0IHo9Qz4tMT9hLmV2ZW50c1tDXVsxXS50eXBlOm51bGwsQT16PT09InRhYmxlSGVhZCJ8fHo9PT0idGFibGVSb3ciP1M6YztyZXR1cm4gQT09PVMmJmEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXT9yKEIpOkEoQil9ZnVuY3Rpb24gYyhCKXtyZXR1cm4gdC5lbnRlcigidGFibGVIZWFkIiksdC5lbnRlcigidGFibGVSb3ciKSxkKEIpfWZ1bmN0aW9uIGQoQil7cmV0dXJuIEI9PT0xMjR8fChvPSEwLG4rPTEpLGYoQil9ZnVuY3Rpb24gZihCKXtyZXR1cm4gQj09PW51bGw/cihCKTpkdChCKT9uPjE/KG49MCxhLmludGVycnVwdD0hMCx0LmV4aXQoInRhYmxlUm93IiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShCKSx0LmV4aXQoImxpbmVFbmRpbmciKSxtKTpyKEIpOk90KEIpP2p0KHQsZiwid2hpdGVzcGFjZSIpKEIpOihuKz0xLG8mJihvPSExLHMrPTEpLEI9PT0xMjQ/KHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksbz0hMCxmKToodC5lbnRlcigiZGF0YSIpLHAoQikpKX1mdW5jdGlvbiBwKEIpe3JldHVybiBCPT09bnVsbHx8Qj09PTEyNHx8TnIoQik/KHQuZXhpdCgiZGF0YSIpLGYoQikpOih0LmNvbnN1bWUoQiksQj09PTkyP2g6cCl9ZnVuY3Rpb24gaChCKXtyZXR1cm4gQj09PTkyfHxCPT09MTI0Pyh0LmNvbnN1bWUoQikscCk6cChCKX1mdW5jdGlvbiBtKEIpe3JldHVybiBhLmludGVycnVwdD0hMSxhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihCKToodC5lbnRlcigidGFibGVEZWxpbWl0ZXJSb3ciKSxvPSExLE90KEIpP2p0KHQsdiwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShCKTp2KEIpKX1mdW5jdGlvbiB2KEIpe3JldHVybiBCPT09NDV8fEI9PT01OD9nKEIpOkI9PT0xMjQ/KG89ITAsdC5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLHQuY29uc3VtZShCKSx0LmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSxiKTpfKEIpfWZ1bmN0aW9uIGIoQil7cmV0dXJuIE90KEIpP2p0KHQsZywid2hpdGVzcGFjZSIpKEIpOmcoQil9ZnVuY3Rpb24gZyhCKXtyZXR1cm4gQj09PTU4PyhuKz0xLG89ITAsdC5lbnRlcigidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZURlbGltaXRlck1hcmtlciIpLHkpOkI9PT00NT8obis9MSx5KEIpKTpCPT09bnVsbHx8ZHQoQik/TihCKTpfKEIpfWZ1bmN0aW9uIHkoQil7cmV0dXJuIEI9PT00NT8odC5lbnRlcigidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxrKEIpKTpfKEIpfWZ1bmN0aW9uIGsoQil7cmV0dXJuIEI9PT00NT8odC5jb25zdW1lKEIpLGspOkI9PT01OD8obz0hMCx0LmV4aXQoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksdC5lbnRlcigidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZURlbGltaXRlck1hcmtlciIpLE0pOih0LmV4aXQoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksTShCKSl9ZnVuY3Rpb24gTShCKXtyZXR1cm4gT3QoQik/anQodCxOLCJ3aGl0ZXNwYWNlIikoQik6TihCKX1mdW5jdGlvbiBOKEIpe3JldHVybiBCPT09MTI0P3YoQik6Qj09PW51bGx8fGR0KEIpPyFvfHxzIT09bj9fKEIpOih0LmV4aXQoInRhYmxlRGVsaW1pdGVyUm93IiksdC5leGl0KCJ0YWJsZUhlYWQiKSxlKEIpKTpfKEIpfWZ1bmN0aW9uIF8oQil7cmV0dXJuIHIoQil9ZnVuY3Rpb24gUyhCKXtyZXR1cm4gdC5lbnRlcigidGFibGVSb3ciKSxPKEIpfWZ1bmN0aW9uIE8oQil7cmV0dXJuIEI9PT0xMjQ/KHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksTyk6Qj09PW51bGx8fGR0KEIpPyh0LmV4aXQoInRhYmxlUm93IiksZShCKSk6T3QoQik/anQodCxPLCJ3aGl0ZXNwYWNlIikoQik6KHQuZW50ZXIoImRhdGEiKSxMKEIpKX1mdW5jdGlvbiBMKEIpe3JldHVybiBCPT09bnVsbHx8Qj09PTEyNHx8TnIoQik/KHQuZXhpdCgiZGF0YSIpLE8oQikpOih0LmNvbnN1bWUoQiksQj09PTkyP0U6TCl9ZnVuY3Rpb24gRShCKXtyZXR1cm4gQj09PTkyfHxCPT09MTI0Pyh0LmNvbnN1bWUoQiksTCk6TChCKX19ZnVuY3Rpb24gJGhhKHQsZSl7bGV0IHI9LTEsYT0hMCxzPTAsbj1bMCwwLDAsMF0sbz1bMCwwLDAsMF0sbD0hMSxjPTAsZCxmLHAsaD1uZXcgSTFlO2Zvcig7KytyPHQubGVuZ3RoOyl7bGV0IG09dFtyXSx2PW1bMV07bVswXT09PSJlbnRlciI/di50eXBlPT09InRhYmxlSGVhZCI/KGw9ITEsYyE9PTAmJihySXQoaCxlLGMsZCxmKSxmPXZvaWQgMCxjPTApLGQ9e3R5cGU6InRhYmxlIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHYuc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHYuZW5kKX0saC5hZGQociwwLFtbImVudGVyIixkLGVdXSkpOnYudHlwZT09PSJ0YWJsZVJvdyJ8fHYudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGE9ITAscD12b2lkIDAsbj1bMCwwLDAsMF0sbz1bMCxyKzEsMCwwXSxsJiYobD0hMSxmPXt0eXBlOiJ0YWJsZUJvZHkiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sdi5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sdi5lbmQpfSxoLmFkZChyLDAsW1siZW50ZXIiLGYsZV1dKSkscz12LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPzI6Zj8zOjEpOnMmJih2LnR5cGU9PT0iZGF0YSJ8fHYudHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fHYudHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpPyhhPSExLG9bMl09PT0wJiYoblsxXSE9PTAmJihvWzBdPW9bMV0scD1QMWUoaCxlLG4scyx2b2lkIDAscCksbj1bMCwwLDAsMF0pLG9bMl09cikpOnYudHlwZT09PSJ0YWJsZUNlbGxEaXZpZGVyIiYmKGE/YT0hMTooblsxXSE9PTAmJihvWzBdPW9bMV0scD1QMWUoaCxlLG4scyx2b2lkIDAscCkpLG49byxvPVtuWzFdLHIsMCwwXSkpOnYudHlwZT09PSJ0YWJsZUhlYWQiPyhsPSEwLGM9cik6di50eXBlPT09InRhYmxlUm93Inx8di50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8oYz1yLG5bMV0hPT0wPyhvWzBdPW9bMV0scD1QMWUoaCxlLG4scyxyLHApKTpvWzFdIT09MCYmKHA9UDFlKGgsZSxvLHMscixwKSkscz0wKTpzJiYodi50eXBlPT09ImRhdGEifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKSYmKG9bM109cil9Zm9yKGMhPT0wJiZySXQoaCxlLGMsZCxmKSxoLmNvbnN1bWUoZS5ldmVudHMpLHI9LTE7KytyPGUuZXZlbnRzLmxlbmd0aDspe2xldCBtPWUuZXZlbnRzW3JdO21bMF09PT0iZW50ZXIiJiZtWzFdLnR5cGU9PT0idGFibGUiJiYobVsxXS5fYWxpZ249ZUl0KGUuZXZlbnRzLHIpKX1yZXR1cm4gdH1mdW5jdGlvbiBQMWUodCxlLHIsYSxzLG4pe2xldCBvPWE9PT0xPyJ0YWJsZUhlYWRlciI6YT09PTI/InRhYmxlRGVsaW1pdGVyIjoidGFibGVEYXRhIixsPSJ0YWJsZUNvbnRlbnQiO3JbMF0hPT0wJiYobi5lbmQ9T2JqZWN0LmFzc2lnbih7fSxmeChlLmV2ZW50cyxyWzBdKSksdC5hZGQoclswXSwwLFtbImV4aXQiLG4sZV1dKSk7bGV0IGM9ZngoZS5ldmVudHMsclsxXSk7aWYobj17dHlwZTpvLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYyksZW5kOk9iamVjdC5hc3NpZ24oe30sYyl9LHQuYWRkKHJbMV0sMCxbWyJlbnRlciIsbixlXV0pLHJbMl0hPT0wKXtsZXQgZD1meChlLmV2ZW50cyxyWzJdKSxmPWZ4KGUuZXZlbnRzLHJbM10pLHA9e3R5cGU6bCxzdGFydDpPYmplY3QuYXNzaWduKHt9LGQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGYpfTtpZih0LmFkZChyWzJdLDAsW1siZW50ZXIiLHAsZV1dKSxhIT09Mil7bGV0IGg9ZS5ldmVudHNbclsyXV0sbT1lLmV2ZW50c1tyWzNdXTtpZihoWzFdLmVuZD1PYmplY3QuYXNzaWduKHt9LG1bMV0uZW5kKSxoWzFdLnR5cGU9ImNodW5rVGV4dCIsaFsxXS5jb250ZW50VHlwZT0idGV4dCIsclszXT5yWzJdKzEpe2xldCB2PXJbMl0rMSxiPXJbM10tclsyXS0xO3QuYWRkKHYsYixbXSl9fXQuYWRkKHJbM10rMSwwLFtbImV4aXQiLHAsZV1dKX1yZXR1cm4gcyE9PXZvaWQgMCYmKG4uZW5kPU9iamVjdC5hc3NpZ24oe30sZngoZS5ldmVudHMscykpLHQuYWRkKHMsMCxbWyJleGl0IixuLGVdXSksbj12b2lkIDApLG59ZnVuY3Rpb24gckl0KHQsZSxyLGEscyl7bGV0IG49W10sbz1meChlLmV2ZW50cyxyKTtzJiYocy5lbmQ9T2JqZWN0LmFzc2lnbih7fSxvKSxuLnB1c2goWyJleGl0IixzLGVdKSksYS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxvKSxuLnB1c2goWyJleGl0IixhLGVdKSx0LmFkZChyKzEsMCxuKX1mdW5jdGlvbiBmeCh0LGUpe2xldCByPXRbZV0sYT1yWzBdPT09ImVudGVyIj8ic3RhcnQiOiJlbmQiO3JldHVybiByWzFdW2FdfXZhciBhSXQ9dSgoKT0+e0ppKCk7V3IoKTtKRXQoKTt0SXQoKTtpKG95ZSwiZ2ZtVGFibGUiKTtpKERoYSwidG9rZW5pemVUYWJsZSIpO2koJGhhLCJyZXNvbHZlVGFibGUiKTtpKFAxZSwiZmx1c2hDZWxsIik7aShySXQsImZsdXNoVGFibGVFbmQiKTtpKGZ4LCJnZXRQb2ludCIpfSk7dmFyIGlJdD11KCgpPT57WEV0KCk7YUl0KCl9KTtmdW5jdGlvbiBseWUoKXtyZXR1cm57ZXhpdDp7aHRtbEZsb3dEYXRhKHQpe25JdC5jYWxsKHRoaXMsdCxzSXQpfSxodG1sVGV4dERhdGEodCl7bkl0LmNhbGwodGhpcyx0LEFoYSl9fX19ZnVuY3Rpb24gbkl0KHQsZSl7bGV0IHI9dGhpcy5zbGljZVNlcmlhbGl6ZSh0KTt0aGlzLm9wdGlvbnMuYWxsb3dEYW5nZXJvdXNIdG1sJiYocj1yLnJlcGxhY2UoZSwiJmx0OyQxJDIiKSksdGhpcy5yYXcodGhpcy5lbmNvZGUocikpfXZhciBzSXQsQWhhLG9JdD11KCgpPT57c0l0PS88KFwvPykoaWZyYW1lfG5vZW1iZWR8bm9mcmFtZXN8cGxhaW50ZXh0fHNjcmlwdHxzdHlsZXx0aXRsZXx0ZXh0YXJlYXx4bXApKD89W1x0XG5cZlxyIC8+XSkvZ2ksQWhhPW5ldyBSZWdFeHAoIl4iK3NJdC5zb3VyY2UsImkiKTtpKGx5ZSwiZ2ZtVGFnZmlsdGVySHRtbCIpO2kobkl0LCJleGl0SHRtbERhdGEiKX0pO3ZhciBsSXQ9dSgoKT0+e29JdCgpfSk7ZnVuY3Rpb24gY3llKCl7cmV0dXJue2VudGVyOnt0YXNrTGlzdENoZWNrKCl7dGhpcy50YWcoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ9IiIgJyl9fSxleGl0Ont0YXNrTGlzdENoZWNrKCl7dGhpcy50YWcoIi8+Iil9LHRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQoKXt0aGlzLnRhZygnY2hlY2tlZD0iIiAnKX19fX12YXIgY0l0PXUoKCk9PntpKGN5ZSwiZ2ZtVGFza0xpc3RJdGVtSHRtbCIpfSk7ZnVuY3Rpb24gZHllKCl7cmV0dXJue3RleHQ6ezkxOkVoYX19fWZ1bmN0aW9uIEloYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKGMpe3JldHVybiBhLnByZXZpb3VzIT09bnVsbHx8IWEuX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT9yKGMpOih0LmVudGVyKCJ0YXNrTGlzdENoZWNrIiksdC5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHQuY29uc3VtZShjKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxuKX1mdW5jdGlvbiBuKGMpe3JldHVybiBOcihjKT8odC5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkIiksdC5jb25zdW1lKGMpLHQuZXhpdCgidGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkIiksbyk6Yz09PTg4fHxjPT09MTIwPyh0LmVudGVyKCJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIiksdC5jb25zdW1lKGMpLHQuZXhpdCgidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLG8pOnIoYyl9ZnVuY3Rpb24gbyhjKXtyZXR1cm4gYz09PTkzPyh0LmVudGVyKCJ0YXNrTGlzdENoZWNrTWFya2VyIiksdC5jb25zdW1lKGMpLHQuZXhpdCgidGFza0xpc3RDaGVja01hcmtlciIpLHQuZXhpdCgidGFza0xpc3RDaGVjayIpLGwpOnIoYyl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gZHQoYyk/ZShjKTpPdChjKT90LmNoZWNrKHt0b2tlbml6ZTpQaGF9LGUscikoYyk6cihjKX19ZnVuY3Rpb24gUGhhKHQsZSxyKXtyZXR1cm4ganQodCxhLCJ3aGl0ZXNwYWNlIik7ZnVuY3Rpb24gYShzKXtyZXR1cm4gcz09PW51bGw/cihzKTplKHMpfX12YXIgRWhhLGRJdD11KCgpPT57SmkoKTtXcigpO0VoYT17bmFtZToidGFza2xpc3RDaGVjayIsdG9rZW5pemU6SWhhfTtpKGR5ZSwiZ2ZtVGFza0xpc3RJdGVtIik7aShJaGEsInRva2VuaXplVGFza2xpc3RDaGVjayIpO2koUGhhLCJzcGFjZVRoZW5Ob25TcGFjZSIpfSk7dmFyIHVJdD11KCgpPT57Y0l0KCk7ZEl0KCl9KTtmdW5jdGlvbiBwSXQodCl7cmV0dXJuIHgxZShbRXZlKCksdHllKCksaXllKHQpLG95ZSgpLGR5ZSgpXSl9ZnVuY3Rpb24gdkppKHQpe3JldHVybiB2MWUoW052ZSgpLHJ5ZSh0KSxheWUoKSxueWUoKSxseWUoKSxjeWUoKV0pfXZhciBmSXQ9dSgoKT0+e3kxZSgpO3dFdCgpO1lFdCgpO1FFdCgpO2lJdCgpO2xJdCgpO3VJdCgpO2kocEl0LCJnZm0iKTtpKHZKaSwiZ2ZtSHRtbCIpfSk7ZnVuY3Rpb24gaHgodCl7bGV0IGU9dGhpcyxyPXR8fE5oYSxhPWUuZGF0YSgpLHM9YS5taWNyb21hcmtFeHRlbnNpb25zfHwoYS5taWNyb21hcmtFeHRlbnNpb25zPVtdKSxuPWEuZnJvbU1hcmtkb3duRXh0ZW5zaW9uc3x8KGEuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucz1bXSksbz1hLnRvTWFya2Rvd25FeHRlbnNpb25zfHwoYS50b01hcmtkb3duRXh0ZW5zaW9ucz1bXSk7cy5wdXNoKHBJdChyKSksbi5wdXNoKFR2ZSgpKSxvLnB1c2goTHZlKHIpKX12YXIgTmhhLGhJdD11KCgpPT57ZEV0KCk7Zkl0KCk7TmhhPXt9O2koaHgsInJlbWFya0dmbSIpfSk7dmFyIG1JdD11KCgpPT57aEl0KCl9KTtmdW5jdGlvbiB1eWUodCl7bGV0IGU9dHx8e30scj0hMCxhPXt9LHM9W1tdXSxuPVtdLG89W10sYz12MWUoW3tlbnRlcjp7YmxvY2tRdW90ZTpGLGNvZGVGZW5jZWQ6ZGUsY29kZUZlbmNlZEZlbmNlSW5mbzpnLGNvZGVGZW5jZWRGZW5jZU1ldGE6Zyxjb2RlSW5kZW50ZWQ6ZmUsY29kZVRleHQ6Z2UsY29udGVudDp6ZSxkZWZpbml0aW9uOnhlLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpWLGRlZmluaXRpb25MYWJlbFN0cmluZzpnLGRlZmluaXRpb25UaXRsZVN0cmluZzpnLGVtcGhhc2lzOndlLGh0bWxGbG93Om50LGh0bWxUZXh0OkxlLGltYWdlOlcsbGFiZWw6ZyxsaW5rOnBlLGxpc3RJdGVtTWFya2VyOkMsbGlzdEl0ZW1WYWx1ZTpCLGxpc3RPcmRlcmVkOkwsbGlzdFVub3JkZXJlZDpFLHBhcmFncmFwaDpHLHJlZmVyZW5jZTpnLHJlc291cmNlOlUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpqLHJlc291cmNlVGl0bGVTdHJpbmc6ZyxzZXRleHRIZWFkaW5nOkdlLHN0cm9uZzpPZX0sZXhpdDp7YXR4SGVhZGluZzpEZSxhdHhIZWFkaW5nU2VxdWVuY2U6SGUsYXV0b2xpbmtFbWFpbDpZaSxhdXRvbGlua1Byb3RvY29sOlBhLGJsb2NrUXVvdGU6WSxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTpzZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpZdCxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOll0LGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOnphLGNvZGVGZW5jZWQ6VCxjb2RlRmVuY2VkRmVuY2U6USxjb2RlRmVuY2VkRmVuY2VJbmZvOkQsY29kZUZlbmNlZEZlbmNlTWV0YTpPLGNvZGVGbG93VmFsdWU6VGUsY29kZUluZGVudGVkOlQsY29kZVRleHQ6YmUsY29kZVRleHREYXRhOnNlLGRhdGE6c2UsZGVmaW5pdGlvbjplZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6bGUsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOkssZGVmaW5pdGlvblRpdGxlU3RyaW5nOm5lLGVtcGhhc2lzOkllLGhhcmRCcmVha0VzY2FwZTpxZSxoYXJkQnJlYWtUcmFpbGluZzpxZSxodG1sRmxvdzp2dCxodG1sRmxvd0RhdGE6c2UsaHRtbFRleHQ6dnQsaHRtbFRleHREYXRhOnNlLGltYWdlOkosbGFiZWw6cSxsYWJlbFRleHQ6bWUsbGluZUVuZGluZzpjZSxsaW5rOkosbGlzdE9yZGVyZWQ6eixsaXN0VW5vcmRlcmVkOkEscGFyYWdyYXBoOloscmVmZXJlbmNlOk8scmVmZXJlbmNlU3RyaW5nOkgscmVzb3VyY2U6TyxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOmFlLHJlc291cmNlVGl0bGVTdHJpbmc6WCxzZXRleHRIZWFkaW5nOm9lLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6X2Usc2V0ZXh0SGVhZGluZ1RleHQ6b3Qsc3Ryb25nOnl0LHRoZW1hdGljQnJlYWs6d3R9fSwuLi5lLmh0bWxFeHRlbnNpb25zfHxbXV0pLGQ9e2RlZmluaXRpb25zOmEsdGlnaHRTdGFjazpvfSxmPXtidWZmZXI6ZyxlbmNvZGU6UyxnZXREYXRhOmIsbGluZUVuZGluZ0lmTmVlZGVkOl8sb3B0aW9uczplLHJhdzpNLHJlc3VtZTp5LHNldERhdGE6dix0YWc6a30scD1lLmRlZmF1bHRMaW5lRW5kaW5nO3JldHVybiBoO2Z1bmN0aW9uIGgoRWUpe2xldCBqZT0tMSxzcj0wLHJhPVtdLHBhPVtdLHlhPVtdO2Zvcig7KytqZTxFZS5sZW5ndGg7KSFwJiYoRWVbamVdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fEVlW2plXVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpJiYocD1FZVtqZV1bMl0uc2xpY2VTZXJpYWxpemUoRWVbamVdWzFdKSksKEVlW2plXVsxXS50eXBlPT09Imxpc3RPcmRlcmVkInx8RWVbamVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpJiYoRWVbamVdWzBdPT09ImVudGVyIj9yYS5wdXNoKGplKTptKEVlLnNsaWNlKHJhLnBvcCgpLGplKSkpLEVlW2plXVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYoRWVbamVdWzBdPT09ImVudGVyIj8oeWE9eXMoeWEsRWUuc2xpY2Uoc3IsamUpKSxzcj1qZSk6KHBhPXlzKHBhLEVlLnNsaWNlKHNyLGplKzEpKSxzcj1qZSsxKSk7cGE9eXMocGEseWEpLHBhPXlzKHBhLEVlLnNsaWNlKHNyKSksamU9LTE7bGV0IGZhPXBhO2ZvcihjLmVudGVyLm51bGwmJmMuZW50ZXIubnVsbC5jYWxsKGYpOysramU8RWUubGVuZ3RoOyl7bGV0IENuPWNbZmFbamVdWzBdXSx6bj1mYVtqZV1bMV0udHlwZSxBZT1Dblt6bl07Z0l0LmNhbGwoQ24sem4pJiZBZSYmQWUuY2FsbCh7c2xpY2VTZXJpYWxpemU6ZmFbamVdWzJdLnNsaWNlU2VyaWFsaXplLC4uLmZ9LGZhW2plXVsxXSl9cmV0dXJuIGMuZXhpdC5udWxsJiZjLmV4aXQubnVsbC5jYWxsKGYpLHNbMF0uam9pbigiIil9ZnVuY3Rpb24gbShFZSl7bGV0IGplPUVlLmxlbmd0aCxzcj0wLHJhPTAscGE9ITEseWE7Zm9yKDsrK3NyPGplOyl7bGV0IGZhPUVlW3NyXTtpZihmYVsxXS5fY29udGFpbmVyKXlhPXZvaWQgMCxmYVswXT09PSJlbnRlciI/cmErKzpyYS0tO2Vsc2Ugc3dpdGNoKGZhWzFdLnR5cGUpe2Nhc2UibGlzdEl0ZW1QcmVmaXgiOntmYVswXT09PSJleGl0IiYmKHlhPSEwKTticmVha31jYXNlImxpbmVQcmVmaXgiOmJyZWFrO2Nhc2UibGluZUVuZGluZ0JsYW5rIjp7ZmFbMF09PT0iZW50ZXIiJiYhcmEmJih5YT95YT12b2lkIDA6cGE9ITApO2JyZWFrfWRlZmF1bHQ6eWE9dm9pZCAwfX1FZVswXVsxXS5fbG9vc2U9cGF9ZnVuY3Rpb24gdihFZSxqZSl7ZFtFZV09amV9ZnVuY3Rpb24gYihFZSl7cmV0dXJuIGRbRWVdfWZ1bmN0aW9uIGcoKXtzLnB1c2goW10pfWZ1bmN0aW9uIHkoKXtyZXR1cm4gcy5wb3AoKS5qb2luKCIiKX1mdW5jdGlvbiBrKEVlKXtyJiYodigibGFzdFdhc1RhZyIsITApLHNbcy5sZW5ndGgtMV0ucHVzaChFZSkpfWZ1bmN0aW9uIE0oRWUpe3YoImxhc3RXYXNUYWciKSxzW3MubGVuZ3RoLTFdLnB1c2goRWUpfWZ1bmN0aW9uIE4oKXtNKHB8fGAKYCl9ZnVuY3Rpb24gXygpe2xldCBFZT1zW3MubGVuZ3RoLTFdLGplPUVlW0VlLmxlbmd0aC0xXSxzcj1qZT9qZS5jaGFyQ29kZUF0KGplLmxlbmd0aC0xKTpudWxsO3NyPT09MTB8fHNyPT09MTN8fHNyPT09bnVsbHx8TigpfWZ1bmN0aW9uIFMoRWUpe3JldHVybiBiKCJpZ25vcmVFbmNvZGUiKT9FZTp3MWUoRWUpfWZ1bmN0aW9uIE8oKXt5KCl9ZnVuY3Rpb24gTChFZSl7by5wdXNoKCFFZS5fbG9vc2UpLF8oKSxrKCI8b2wiKSx2KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBFKEVlKXtvLnB1c2goIUVlLl9sb29zZSksXygpLGsoIjx1bCIpLHYoImV4cGVjdEZpcnN0SXRlbSIsITApfWZ1bmN0aW9uIEIoRWUpe2lmKGIoImV4cGVjdEZpcnN0SXRlbSIpKXtsZXQgamU9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpLDEwKTtqZSE9PTEmJmsoJyBzdGFydD0iJytTKFN0cmluZyhqZSkpKyciJyl9fWZ1bmN0aW9uIEMoKXtiKCJleHBlY3RGaXJzdEl0ZW0iKT9rKCI+Iik6JCgpLF8oKSxrKCI8bGk+IiksdigiZXhwZWN0Rmlyc3RJdGVtIiksdigibGFzdFdhc1RhZyIpfWZ1bmN0aW9uIHooKXskKCksby5wb3AoKSxOKCksaygiPC9vbD4iKX1mdW5jdGlvbiBBKCl7JCgpLG8ucG9wKCksTigpLGsoIjwvdWw+Iil9ZnVuY3Rpb24gJCgpe2IoImxhc3RXYXNUYWciKSYmIWIoInNsdXJwQWxsTGluZUVuZGluZ3MiKSYmXygpLGsoIjwvbGk+Iiksdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIEYoKXtvLnB1c2goITEpLF8oKSxrKCI8YmxvY2txdW90ZT4iKX1mdW5jdGlvbiBZKCl7by5wb3AoKSxfKCksaygiPC9ibG9ja3F1b3RlPiIpLHYoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBHKCl7b1tvLmxlbmd0aC0xXXx8KF8oKSxrKCI8cD4iKSksdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFooKXtvW28ubGVuZ3RoLTFdP3YoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKTprKCI8L3A+Iil9ZnVuY3Rpb24gZGUoKXtfKCksaygiPHByZT48Y29kZSIpLHYoImZlbmNlc0NvdW50IiwwKX1mdW5jdGlvbiBEKCl7bGV0IEVlPXkoKTtrKCcgY2xhc3M9Imxhbmd1YWdlLScrRWUrJyInKX1mdW5jdGlvbiBRKCl7bGV0IEVlPWIoImZlbmNlc0NvdW50Iil8fDA7RWV8fChrKCI+Iiksdigic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCkpLHYoImZlbmNlc0NvdW50IixFZSsxKX1mdW5jdGlvbiBmZSgpe18oKSxrKCI8cHJlPjxjb2RlPiIpfWZ1bmN0aW9uIFQoKXtsZXQgRWU9YigiZmVuY2VzQ291bnQiKTtFZSE9PXZvaWQgMCYmRWU8MiYmZC50aWdodFN0YWNrLmxlbmd0aD4wJiYhYigibGFzdFdhc1RhZyIpJiZOKCksYigiZmxvd0NvZGVTZWVuRGF0YSIpJiZfKCksaygiPC9jb2RlPjwvcHJlPiIpLEVlIT09dm9pZCAwJiZFZTwyJiZfKCksdigiZmxvd0NvZGVTZWVuRGF0YSIpLHYoImZlbmNlc0NvdW50Iiksdigic2x1cnBPbmVMaW5lRW5kaW5nIil9ZnVuY3Rpb24gVygpe24ucHVzaCh7aW1hZ2U6ITB9KSxyPXZvaWQgMH1mdW5jdGlvbiBwZSgpe24ucHVzaCh7fSl9ZnVuY3Rpb24gbWUoRWUpe25bbi5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKEVlKX1mdW5jdGlvbiBxKCl7bltuLmxlbmd0aC0xXS5sYWJlbD15KCl9ZnVuY3Rpb24gSChFZSl7bltuLmxlbmd0aC0xXS5yZWZlcmVuY2VJZD10aGlzLnNsaWNlU2VyaWFsaXplKEVlKX1mdW5jdGlvbiBVKCl7ZygpLG5bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249IiJ9ZnVuY3Rpb24gaigpe2coKSx2KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBhZSgpe25bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHYoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIFgoKXtuW24ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiBKKCl7bGV0IEVlPW4ubGVuZ3RoLTEsamU9bltFZV0sc3I9amUucmVmZXJlbmNlSWR8fGplLmxhYmVsSWQscmE9amUuZGVzdGluYXRpb249PT12b2lkIDA/YVtQaShzcildOmplO2ZvcihyPSEwO0VlLS07KWlmKG5bRWVdLmltYWdlKXtyPXZvaWQgMDticmVha31qZS5pbWFnZT8oaygnPGltZyBzcmM9IicreDAocmEuZGVzdGluYXRpb24sZS5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpPaGEpKyciIGFsdD0iJyksTShqZS5sYWJlbCksaygnIicpKTprKCc8YSBocmVmPSInK3gwKHJhLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6Ykl0KSsnIicpLGsocmEudGl0bGU/JyB0aXRsZT0iJytyYS50aXRsZSsnIic6IiIpLGplLmltYWdlP2soIiAvPiIpOihrKCI+IiksTShqZS5sYWJlbCksaygiPC9hPiIpKSxuLnBvcCgpfWZ1bmN0aW9uIHhlKCl7ZygpLG4ucHVzaCh7fSl9ZnVuY3Rpb24gSyhFZSl7eSgpLG5bbi5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKEVlKX1mdW5jdGlvbiBWKCl7ZygpLHYoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIGxlKCl7bltuLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj15KCksdigiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gbmUoKXtuW24ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiBlZSgpe2xldCBFZT1uW24ubGVuZ3RoLTFdLGplPVBpKEVlLmxhYmVsSWQpO3koKSxnSXQuY2FsbChhLGplKXx8KGFbamVdPW5bbi5sZW5ndGgtMV0pLG4ucG9wKCl9ZnVuY3Rpb24gemUoKXt2KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCl9ZnVuY3Rpb24gSGUoRWUpe2IoImhlYWRpbmdSYW5rIil8fCh2KCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShFZSkubGVuZ3RoKSxfKCksaygiPGgiK2IoImhlYWRpbmdSYW5rIikrIj4iKSl9ZnVuY3Rpb24gR2UoKXtnKCksdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIG90KCl7digic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIERlKCl7aygiPC9oIitiKCJoZWFkaW5nUmFuayIpKyI+IiksdigiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBfZShFZSl7digiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpLmNoYXJDb2RlQXQoMCk9PT02MT8xOjIpfWZ1bmN0aW9uIG9lKCl7bGV0IEVlPXkoKTtfKCksaygiPGgiK2IoImhlYWRpbmdSYW5rIikrIj4iKSxNKEVlKSxrKCI8L2giK2IoImhlYWRpbmdSYW5rIikrIj4iKSx2KCJzbHVycEFsbExpbmVFbmRpbmdzIiksdigiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBzZShFZSl7TShTKHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpKSl9ZnVuY3Rpb24gY2UoRWUpe2lmKCFiKCJzbHVycEFsbExpbmVFbmRpbmdzIikpe2lmKGIoInNsdXJwT25lTGluZUVuZGluZyIpKXt2KCJzbHVycE9uZUxpbmVFbmRpbmciKTtyZXR1cm59aWYoYigiaW5Db2RlVGV4dCIpKXtNKCIgIik7cmV0dXJufU0oUyh0aGlzLnNsaWNlU2VyaWFsaXplKEVlKSkpfX1mdW5jdGlvbiBUZShFZSl7TShTKHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpKSksdigiZmxvd0NvZGVTZWVuRGF0YSIsITApfWZ1bmN0aW9uIHFlKCl7aygiPGJyIC8+Iil9ZnVuY3Rpb24gbnQoKXtfKCksTGUoKX1mdW5jdGlvbiB2dCgpe3YoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIExlKCl7ZS5hbGxvd0Rhbmdlcm91c0h0bWwmJnYoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIHdlKCl7aygiPGVtPiIpfWZ1bmN0aW9uIE9lKCl7aygiPHN0cm9uZz4iKX1mdW5jdGlvbiBnZSgpe3YoImluQ29kZVRleHQiLCEwKSxrKCI8Y29kZT4iKX1mdW5jdGlvbiBiZSgpe3YoImluQ29kZVRleHQiKSxrKCI8L2NvZGU+Iil9ZnVuY3Rpb24gSWUoKXtrKCI8L2VtPiIpfWZ1bmN0aW9uIHl0KCl7aygiPC9zdHJvbmc+Iil9ZnVuY3Rpb24gd3QoKXtfKCksaygiPGhyIC8+Iil9ZnVuY3Rpb24gWXQoRWUpe3YoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiLEVlLnR5cGUpfWZ1bmN0aW9uIHphKEVlKXtsZXQgamU9dGhpcy5zbGljZVNlcmlhbGl6ZShFZSksc3I9YigiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpP3B4KGplLGIoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT09PSJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIj8xMDoxNik6THUoamUpO00oUyhzcikpLHYoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKX1mdW5jdGlvbiBQYShFZSl7bGV0IGplPXRoaXMuc2xpY2VTZXJpYWxpemUoRWUpO2soJzxhIGhyZWY9IicreDAoamUsZS5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpiSXQpKyciPicpLE0oUyhqZSkpLGsoIjwvYT4iKX1mdW5jdGlvbiBZaShFZSl7bGV0IGplPXRoaXMuc2xpY2VTZXJpYWxpemUoRWUpO2soJzxhIGhyZWY9IicreDAoIm1haWx0bzoiK2plKSsnIj4nKSxNKFMoamUpKSxrKCI8L2E+Iil9fXZhciBnSXQsYkl0LE9oYSxweWU9dSgoKT0+e3pNKCk7ZzAoKTt5MWUoKTttMWUoKTtJdmUoKTtUdSgpO3YwKCk7Z0l0PXt9Lmhhc093blByb3BlcnR5LGJJdD0vXihodHRwcz98aXJjcz98bWFpbHRvfHhtcHApJC9pLE9oYT0vXmh0dHBzPyQvaTtpKHV5ZSwiY29tcGlsZSIpfSk7ZnVuY3Rpb24gUmhhKHQpe2xldCBlPXQuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmNvbnRlbnRJbml0aWFsLGEscykscjtyZXR1cm4gZTtmdW5jdGlvbiBhKGwpe2lmKGw9PT1udWxsKXt0LmNvbnN1bWUobCk7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGwpLHQuZXhpdCgibGluZUVuZGluZyIpLGp0KHQsZSwibGluZVByZWZpeCIpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIHQuZW50ZXIoInBhcmFncmFwaCIpLG4obCl9ZnVuY3Rpb24gbihsKXtsZXQgYz10LmVudGVyKCJjaHVua1RleHQiLHtjb250ZW50VHlwZToidGV4dCIscHJldmlvdXM6cn0pO3JldHVybiByJiYoci5uZXh0PWMpLHI9YyxvKGwpfWZ1bmN0aW9uIG8obCl7aWYobD09PW51bGwpe3QuZXhpdCgiY2h1bmtUZXh0IiksdC5leGl0KCJwYXJhZ3JhcGgiKSx0LmNvbnN1bWUobCk7cmV0dXJufXJldHVybiBkdChsKT8odC5jb25zdW1lKGwpLHQuZXhpdCgiY2h1bmtUZXh0Iiksbik6KHQuY29uc3VtZShsKSxvKX19dmFyIHhJdCx2SXQ9dSgoKT0+e0ppKCk7V3IoKTt4SXQ9e3Rva2VuaXplOlJoYX07aShSaGEsImluaXRpYWxpemVDb250ZW50Iil9KTtmdW5jdGlvbiBGaGEodCl7bGV0IGU9dGhpcyxyPVtdLGE9MCxzLG4sbztyZXR1cm4gbDtmdW5jdGlvbiBsKE0pe2lmKGE8ci5sZW5ndGgpe2xldCBOPXJbYV07cmV0dXJuIGUuY29udGFpbmVyU3RhdGU9TlsxXSx0LmF0dGVtcHQoTlswXS5jb250aW51YXRpb24sYyxkKShNKX1yZXR1cm4gZChNKX1mdW5jdGlvbiBjKE0pe2lmKGErKyxlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cpe2UuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAscyYmaygpO2xldCBOPWUuZXZlbnRzLmxlbmd0aCxfPU4sUztmb3IoO18tLTspaWYoZS5ldmVudHNbX11bMF09PT0iZXhpdCImJmUuZXZlbnRzW19dWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7Uz1lLmV2ZW50c1tfXVsxXS5lbmQ7YnJlYWt9eShhKTtsZXQgTz1OO2Zvcig7TzxlLmV2ZW50cy5sZW5ndGg7KWUuZXZlbnRzW09dWzFdLmVuZD17Li4uU30sTysrO3JldHVybiBYaShlLmV2ZW50cyxfKzEsMCxlLmV2ZW50cy5zbGljZShOKSksZS5ldmVudHMubGVuZ3RoPU8sZChNKX1yZXR1cm4gbChNKX1mdW5jdGlvbiBkKE0pe2lmKGE9PT1yLmxlbmd0aCl7aWYoIXMpcmV0dXJuIGgoTSk7aWYocy5jdXJyZW50Q29uc3RydWN0JiZzLmN1cnJlbnRDb25zdHJ1Y3QuY29uY3JldGUpcmV0dXJuIHYoTSk7ZS5pbnRlcnJ1cHQ9ISEocy5jdXJyZW50Q29uc3RydWN0JiYhcy5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIGUuY29udGFpbmVyU3RhdGU9e30sdC5jaGVjayh5SXQsZixwKShNKX1mdW5jdGlvbiBmKE0pe3JldHVybiBzJiZrKCkseShhKSxoKE0pfWZ1bmN0aW9uIHAoTSl7cmV0dXJuIGUucGFyc2VyLmxhenlbZS5ub3coKS5saW5lXT1hIT09ci5sZW5ndGgsbz1lLm5vdygpLm9mZnNldCx2KE0pfWZ1bmN0aW9uIGgoTSl7cmV0dXJuIGUuY29udGFpbmVyU3RhdGU9e30sdC5hdHRlbXB0KHlJdCxtLHYpKE0pfWZ1bmN0aW9uIG0oTSl7cmV0dXJuIGErKyxyLnB1c2goW2UuY3VycmVudENvbnN0cnVjdCxlLmNvbnRhaW5lclN0YXRlXSksaChNKX1mdW5jdGlvbiB2KE0pe2lmKE09PT1udWxsKXtzJiZrKCkseSgwKSx0LmNvbnN1bWUoTSk7cmV0dXJufXJldHVybiBzPXN8fGUucGFyc2VyLmZsb3coZS5ub3coKSksdC5lbnRlcigiY2h1bmtGbG93Iix7X3Rva2VuaXplcjpzLGNvbnRlbnRUeXBlOiJmbG93IixwcmV2aW91czpufSksYihNKX1mdW5jdGlvbiBiKE0pe2lmKE09PT1udWxsKXtnKHQuZXhpdCgiY2h1bmtGbG93IiksITApLHkoMCksdC5jb25zdW1lKE0pO3JldHVybn1yZXR1cm4gZHQoTSk/KHQuY29uc3VtZShNKSxnKHQuZXhpdCgiY2h1bmtGbG93IikpLGE9MCxlLmludGVycnVwdD12b2lkIDAsbCk6KHQuY29uc3VtZShNKSxiKX1mdW5jdGlvbiBnKE0sTil7bGV0IF89ZS5zbGljZVN0cmVhbShNKTtpZihOJiZfLnB1c2gobnVsbCksTS5wcmV2aW91cz1uLG4mJihuLm5leHQ9TSksbj1NLHMuZGVmaW5lU2tpcChNLnN0YXJ0KSxzLndyaXRlKF8pLGUucGFyc2VyLmxhenlbTS5zdGFydC5saW5lXSl7bGV0IFM9cy5ldmVudHMubGVuZ3RoO2Zvcig7Uy0tOylpZihzLmV2ZW50c1tTXVsxXS5zdGFydC5vZmZzZXQ8byYmKCFzLmV2ZW50c1tTXVsxXS5lbmR8fHMuZXZlbnRzW1NdWzFdLmVuZC5vZmZzZXQ+bykpcmV0dXJuO2xldCBPPWUuZXZlbnRzLmxlbmd0aCxMPU8sRSxCO2Zvcig7TC0tOylpZihlLmV2ZW50c1tMXVswXT09PSJleGl0IiYmZS5ldmVudHNbTF1bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtpZihFKXtCPWUuZXZlbnRzW0xdWzFdLmVuZDticmVha31FPSEwfWZvcih5KGEpLFM9TztTPGUuZXZlbnRzLmxlbmd0aDspZS5ldmVudHNbU11bMV0uZW5kPXsuLi5CfSxTKys7WGkoZS5ldmVudHMsTCsxLDAsZS5ldmVudHMuc2xpY2UoTykpLGUuZXZlbnRzLmxlbmd0aD1TfX1mdW5jdGlvbiB5KE0pe2xldCBOPXIubGVuZ3RoO2Zvcig7Ti0tID5NOyl7bGV0IF89cltOXTtlLmNvbnRhaW5lclN0YXRlPV9bMV0sX1swXS5leGl0LmNhbGwoZSx0KX1yLmxlbmd0aD1NfWZ1bmN0aW9uIGsoKXtzLndyaXRlKFtudWxsXSksbj12b2lkIDAscz12b2lkIDAsZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMH19ZnVuY3Rpb24gQmhhKHQsZSxyKXtyZXR1cm4ganQodCx0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCxlLHIpLCJsaW5lUHJlZml4Iix0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpfXZhciB3SXQseUl0LGtJdD11KCgpPT57SmkoKTtXcigpO2cwKCk7d0l0PXt0b2tlbml6ZTpGaGF9LHlJdD17dG9rZW5pemU6QmhhfTtpKEZoYSwiaW5pdGlhbGl6ZURvY3VtZW50Iik7aShCaGEsInRva2VuaXplQ29udGFpbmVyIil9KTtmdW5jdGlvbiBIaGEodCl7bGV0IGU9dGhpcyxyPXQuYXR0ZW1wdCh5MCxhLHQuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3dJbml0aWFsLHMsanQodCx0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93LHMsdC5hdHRlbXB0KEh2ZSxzKSksImxpbmVQcmVmaXgiKSkpO3JldHVybiByO2Z1bmN0aW9uIGEobil7aWYobj09PW51bGwpe3QuY29uc3VtZShuKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmdCbGFuayIpLHQuY29uc3VtZShuKSx0LmV4aXQoImxpbmVFbmRpbmdCbGFuayIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAscn1mdW5jdGlvbiBzKG4pe2lmKG49PT1udWxsKXt0LmNvbnN1bWUobik7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG4pLHQuZXhpdCgibGluZUVuZGluZyIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAscn19dmFyIFNJdCxNSXQ9dSgoKT0+e0UxZSgpO0ppKCk7V3IoKTtTSXQ9e3Rva2VuaXplOkhoYX07aShIaGEsImluaXRpYWxpemVGbG93Iil9KTtmdW5jdGlvbiBDSXQodCl7cmV0dXJue3Jlc29sdmVBbGw6ekl0KHQ9PT0idGV4dCI/cWhhOnZvaWQgMCksdG9rZW5pemU6ZX07ZnVuY3Rpb24gZShyKXtsZXQgYT10aGlzLHM9dGhpcy5wYXJzZXIuY29uc3RydWN0c1t0XSxuPXIuYXR0ZW1wdChzLG8sbCk7cmV0dXJuIG87ZnVuY3Rpb24gbyhmKXtyZXR1cm4gZChmKT9uKGYpOmwoZil9ZnVuY3Rpb24gbChmKXtpZihmPT09bnVsbCl7ci5jb25zdW1lKGYpO3JldHVybn1yZXR1cm4gci5lbnRlcigiZGF0YSIpLHIuY29uc3VtZShmKSxjfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGQoZik/KHIuZXhpdCgiZGF0YSIpLG4oZikpOihyLmNvbnN1bWUoZiksYyl9ZnVuY3Rpb24gZChmKXtpZihmPT09bnVsbClyZXR1cm4hMDtsZXQgcD1zW2ZdLGg9LTE7aWYocClmb3IoOysraDxwLmxlbmd0aDspe2xldCBtPXBbaF07aWYoIW0ucHJldmlvdXN8fG0ucHJldmlvdXMuY2FsbChhLGEucHJldmlvdXMpKXJldHVybiEwfXJldHVybiExfX19ZnVuY3Rpb24gekl0KHQpe3JldHVybiBlO2Z1bmN0aW9uIGUocixhKXtsZXQgcz0tMSxuO2Zvcig7KytzPD1yLmxlbmd0aDspbj09PXZvaWQgMD9yW3NdJiZyW3NdWzFdLnR5cGU9PT0iZGF0YSImJihuPXMscysrKTooIXJbc118fHJbc11bMV0udHlwZSE9PSJkYXRhIikmJihzIT09bisyJiYocltuXVsxXS5lbmQ9cltzLTFdWzFdLmVuZCxyLnNwbGljZShuKzIscy1uLTIpLHM9bisyKSxuPXZvaWQgMCk7cmV0dXJuIHQ/dChyLGEpOnJ9fWZ1bmN0aW9uIHFoYSh0LGUpe2xldCByPTA7Zm9yKDsrK3I8PXQubGVuZ3RoOylpZigocj09PXQubGVuZ3RofHx0W3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyIpJiZ0W3ItMV1bMV0udHlwZT09PSJkYXRhIil7bGV0IGE9dFtyLTFdWzFdLHM9ZS5zbGljZVN0cmVhbShhKSxuPXMubGVuZ3RoLG89LTEsbD0wLGM7Zm9yKDtuLS07KXtsZXQgZD1zW25dO2lmKHR5cGVvZiBkPT0ic3RyaW5nIil7Zm9yKG89ZC5sZW5ndGg7ZC5jaGFyQ29kZUF0KG8tMSk9PT0zMjspbCsrLG8tLTtpZihvKWJyZWFrO289LTF9ZWxzZSBpZihkPT09LTIpYz0hMCxsKys7ZWxzZSBpZihkIT09LTEpe24rKzticmVha319aWYoZS5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJnI9PT10Lmxlbmd0aCYmKGw9MCksbCl7bGV0IGQ9e3R5cGU6cj09PXQubGVuZ3RofHxjfHxsPDI/ImxpbmVTdWZmaXgiOiJoYXJkQnJlYWtUcmFpbGluZyIsc3RhcnQ6e19idWZmZXJJbmRleDpuP286YS5zdGFydC5fYnVmZmVySW5kZXgrbyxfaW5kZXg6YS5zdGFydC5faW5kZXgrbixsaW5lOmEuZW5kLmxpbmUsY29sdW1uOmEuZW5kLmNvbHVtbi1sLG9mZnNldDphLmVuZC5vZmZzZXQtbH0sZW5kOnsuLi5hLmVuZH19O2EuZW5kPXsuLi5kLnN0YXJ0fSxhLnN0YXJ0Lm9mZnNldD09PWEuZW5kLm9mZnNldD9PYmplY3QuYXNzaWduKGEsZCk6KHQuc3BsaWNlKHIsMCxbImVudGVyIixkLGVdLFsiZXhpdCIsZCxlXSkscis9Mil9cisrfXJldHVybiB0fXZhciBfSXQsVEl0LExJdCxmeWU9dSgoKT0+e19JdD17cmVzb2x2ZUFsbDp6SXQoKX0sVEl0PUNJdCgic3RyaW5nIiksTEl0PUNJdCgidGV4dCIpO2koQ0l0LCJpbml0aWFsaXplRmFjdG9yeSIpO2koekl0LCJjcmVhdGVSZXNvbHZlciIpO2kocWhhLCJyZXNvbHZlQWxsTGluZVN1ZmZpeGVzIil9KTt2YXIgaHllPXt9O1ZlKGh5ZSx7YXR0ZW50aW9uTWFya2VyczooKT0+WmhhLGNvbnRlbnRJbml0aWFsOigpPT5qaGEsZGlzYWJsZTooKT0+UWhhLGRvY3VtZW50OigpPT5WaGEsZmxvdzooKT0+V2hhLGZsb3dJbml0aWFsOigpPT5VaGEsaW5zaWRlU3BhbjooKT0+S2hhLHN0cmluZzooKT0+R2hhLHRleHQ6KCk9PlloYX0pO3ZhciBWaGEsamhhLFVoYSxXaGEsR2hhLFloYSxLaGEsWmhhLFFoYSxESXQ9dSgoKT0+e0UxZSgpO2Z5ZSgpO1ZoYT17NDI6aW8sNDM6aW8sNDU6aW8sNDg6aW8sNDk6aW8sNTA6aW8sNTE6aW8sNTI6aW8sNTM6aW8sNTQ6aW8sNTU6aW8sNTY6aW8sNTc6aW8sNjI6UzFlfSxqaGE9ezkxOld2ZX0sVWhhPXtbLTJdOkxNLFstMV06TE0sMzI6TE19LFdoYT17MzU6WXZlLDQyOlRoLDQ1OltBMWUsVGhdLDYwOlp2ZSw2MTpBMWUsOTU6VGgsOTY6ejFlLDEyNjp6MWV9LEdoYT17Mzg6QzFlLDkyOk0xZX0sWWhhPXtbLTVdOkFNLFstNF06QU0sWy0zXTpBTSwzMzpYdmUsMzg6QzFlLDQyOlRNLDYwOltPdmUsUXZlXSw5MTpKdmUsOTI6W0d2ZSxNMWVdLDkzOl9oLDk1OlRNLDk2OlJ2ZX0sS2hhPXtudWxsOltUTSxfSXRdfSxaaGE9e251bGw6WzQyLDk1XX0sUWhhPXtudWxsOltdfX0pO2Z1bmN0aW9uICRJdCh0LGUscil7bGV0IGE9e19idWZmZXJJbmRleDotMSxfaW5kZXg6MCxsaW5lOnImJnIubGluZXx8MSxjb2x1bW46ciYmci5jb2x1bW58fDEsb2Zmc2V0OnImJnIub2Zmc2V0fHwwfSxzPXt9LG49W10sbz1bXSxsPVtdLGM9ITAsZD17YXR0ZW1wdDpFKE8pLGNoZWNrOkUoTCksY29uc3VtZTpOLGVudGVyOl8sZXhpdDpTLGludGVycnVwdDpFKEwse2ludGVycnVwdDohMH0pfSxmPXtjb2RlOm51bGwsY29udGFpbmVyU3RhdGU6e30sZGVmaW5lU2tpcDp5LGV2ZW50czpbXSxub3c6ZyxwYXJzZXI6dCxwcmV2aW91czpudWxsLHNsaWNlU2VyaWFsaXplOnYsc2xpY2VTdHJlYW06Yix3cml0ZTptfSxwPWUudG9rZW5pemUuY2FsbChmLGQpLGg7cmV0dXJuIGUucmVzb2x2ZUFsbCYmbi5wdXNoKGUpLGY7ZnVuY3Rpb24gbShBKXtyZXR1cm4gbz15cyhvLEEpLGsoKSxvW28ubGVuZ3RoLTFdIT09bnVsbD9bXTooQihlLDApLGYuZXZlbnRzPUR1KG4sZi5ldmVudHMsZiksZi5ldmVudHMpfWkobSwid3JpdGUiKTtmdW5jdGlvbiB2KEEsJCl7cmV0dXJuIEpoYShiKEEpLCQpfWkodiwic2xpY2VTZXJpYWxpemUiKTtmdW5jdGlvbiBiKEEpe3JldHVybiBYaGEobyxBKX1pKGIsInNsaWNlU3RyZWFtIik7ZnVuY3Rpb24gZygpe2xldHtfYnVmZmVySW5kZXg6QSxfaW5kZXg6JCxsaW5lOkYsY29sdW1uOlksb2Zmc2V0Okd9PWE7cmV0dXJue19idWZmZXJJbmRleDpBLF9pbmRleDokLGxpbmU6Rixjb2x1bW46WSxvZmZzZXQ6R319aShnLCJub3ciKTtmdW5jdGlvbiB5KEEpe3NbQS5saW5lXT1BLmNvbHVtbix6KCl9aSh5LCJkZWZpbmVTa2lwIik7ZnVuY3Rpb24gaygpe2xldCBBO2Zvcig7YS5faW5kZXg8by5sZW5ndGg7KXtsZXQgJD1vW2EuX2luZGV4XTtpZih0eXBlb2YgJD09InN0cmluZyIpZm9yKEE9YS5faW5kZXgsYS5fYnVmZmVySW5kZXg8MCYmKGEuX2J1ZmZlckluZGV4PTApO2EuX2luZGV4PT09QSYmYS5fYnVmZmVySW5kZXg8JC5sZW5ndGg7KU0oJC5jaGFyQ29kZUF0KGEuX2J1ZmZlckluZGV4KSk7ZWxzZSBNKCQpfX1pKGssIm1haW4iKTtmdW5jdGlvbiBNKEEpe2M9dm9pZCAwLGg9QSxwPXAoQSl9aShNLCJnbyIpO2Z1bmN0aW9uIE4oQSl7ZHQoQSk/KGEubGluZSsrLGEuY29sdW1uPTEsYS5vZmZzZXQrPUE9PT0tMz8yOjEseigpKTpBIT09LTEmJihhLmNvbHVtbisrLGEub2Zmc2V0KyspLGEuX2J1ZmZlckluZGV4PDA/YS5faW5kZXgrKzooYS5fYnVmZmVySW5kZXgrKyxhLl9idWZmZXJJbmRleD09PW9bYS5faW5kZXhdLmxlbmd0aCYmKGEuX2J1ZmZlckluZGV4PS0xLGEuX2luZGV4KyspKSxmLnByZXZpb3VzPUEsYz0hMH1pKE4sImNvbnN1bWUiKTtmdW5jdGlvbiBfKEEsJCl7bGV0IEY9JHx8e307cmV0dXJuIEYudHlwZT1BLEYuc3RhcnQ9ZygpLGYuZXZlbnRzLnB1c2goWyJlbnRlciIsRixmXSksbC5wdXNoKEYpLEZ9aShfLCJlbnRlciIpO2Z1bmN0aW9uIFMoQSl7bGV0ICQ9bC5wb3AoKTtyZXR1cm4gJC5lbmQ9ZygpLGYuZXZlbnRzLnB1c2goWyJleGl0IiwkLGZdKSwkfWkoUywiZXhpdCIpO2Z1bmN0aW9uIE8oQSwkKXtCKEEsJC5mcm9tKX1pKE8sIm9uc3VjY2Vzc2Z1bGNvbnN0cnVjdCIpO2Z1bmN0aW9uIEwoQSwkKXskLnJlc3RvcmUoKX1pKEwsIm9uc3VjY2Vzc2Z1bGNoZWNrIik7ZnVuY3Rpb24gRShBLCQpe3JldHVybiBGO2Z1bmN0aW9uIEYoWSxHLFope2xldCBkZSxELFEsZmU7cmV0dXJuIEFycmF5LmlzQXJyYXkoWSk/VyhZKToidG9rZW5pemUiaW4gWT9XKFtZXSk6VChZKTtmdW5jdGlvbiBUKEgpe3JldHVybiBVO2Z1bmN0aW9uIFUoail7bGV0IGFlPWohPT1udWxsJiZIW2pdLFg9aiE9PW51bGwmJkgubnVsbCxKPVsuLi5BcnJheS5pc0FycmF5KGFlKT9hZTphZT9bYWVdOltdLC4uLkFycmF5LmlzQXJyYXkoWCk/WDpYP1tYXTpbXV07cmV0dXJuIFcoSikoail9fWZ1bmN0aW9uIFcoSCl7cmV0dXJuIGRlPUgsRD0wLEgubGVuZ3RoPT09MD9aOnBlKEhbRF0pfWZ1bmN0aW9uIHBlKEgpe3JldHVybiBVO2Z1bmN0aW9uIFUoail7cmV0dXJuIGZlPUMoKSxRPUgsSC5wYXJ0aWFsfHwoZi5jdXJyZW50Q29uc3RydWN0PUgpLEgubmFtZSYmZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoSC5uYW1lKT9xKGopOkgudG9rZW5pemUuY2FsbCgkP09iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShmKSwkKTpmLGQsbWUscSkoail9fWZ1bmN0aW9uIG1lKEgpe3JldHVybiBjPSEwLEEoUSxmZSksR31mdW5jdGlvbiBxKEgpe3JldHVybiBjPSEwLGZlLnJlc3RvcmUoKSwrK0Q8ZGUubGVuZ3RoP3BlKGRlW0RdKTpafX19aShFLCJjb25zdHJ1Y3RGYWN0b3J5Iik7ZnVuY3Rpb24gQihBLCQpe0EucmVzb2x2ZUFsbCYmIW4uaW5jbHVkZXMoQSkmJm4ucHVzaChBKSxBLnJlc29sdmUmJlhpKGYuZXZlbnRzLCQsZi5ldmVudHMubGVuZ3RoLSQsQS5yZXNvbHZlKGYuZXZlbnRzLnNsaWNlKCQpLGYpKSxBLnJlc29sdmVUbyYmKGYuZXZlbnRzPUEucmVzb2x2ZVRvKGYuZXZlbnRzLGYpKX1pKEIsImFkZFJlc3VsdCIpO2Z1bmN0aW9uIEMoKXtsZXQgQT1nKCksJD1mLnByZXZpb3VzLEY9Zi5jdXJyZW50Q29uc3RydWN0LFk9Zi5ldmVudHMubGVuZ3RoLEc9QXJyYXkuZnJvbShsKTtyZXR1cm57ZnJvbTpZLHJlc3RvcmU6Wn07ZnVuY3Rpb24gWigpe2E9QSxmLnByZXZpb3VzPSQsZi5jdXJyZW50Q29uc3RydWN0PUYsZi5ldmVudHMubGVuZ3RoPVksbD1HLHooKX19aShDLCJzdG9yZSIpO2Z1bmN0aW9uIHooKXthLmxpbmUgaW4gcyYmYS5jb2x1bW48MiYmKGEuY29sdW1uPXNbYS5saW5lXSxhLm9mZnNldCs9c1thLmxpbmVdLTEpfWkoeiwiYWNjb3VudEZvclBvdGVudGlhbFNraXAiKX1mdW5jdGlvbiBYaGEodCxlKXtsZXQgcj1lLnN0YXJ0Ll9pbmRleCxhPWUuc3RhcnQuX2J1ZmZlckluZGV4LHM9ZS5lbmQuX2luZGV4LG49ZS5lbmQuX2J1ZmZlckluZGV4LG87aWYocj09PXMpbz1bdFtyXS5zbGljZShhLG4pXTtlbHNle2lmKG89dC5zbGljZShyLHMpLGE+LTEpe2xldCBsPW9bMF07dHlwZW9mIGw9PSJzdHJpbmciP29bMF09bC5zbGljZShhKTpvLnNoaWZ0KCl9bj4wJiZvLnB1c2godFtzXS5zbGljZSgwLG4pKX1yZXR1cm4gb31mdW5jdGlvbiBKaGEodCxlKXtsZXQgcj0tMSxhPVtdLHM7Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgbj10W3JdLG87aWYodHlwZW9mIG49PSJzdHJpbmciKW89bjtlbHNlIHN3aXRjaChuKXtjYXNlLTU6e289IlxyIjticmVha31jYXNlLTQ6e289YApgO2JyZWFrfWNhc2UtMzp7bz1gXHIKYDticmVha31jYXNlLTI6e289ZT8iICI6IgkiO2JyZWFrfWNhc2UtMTp7aWYoIWUmJnMpY29udGludWU7bz0iICI7YnJlYWt9ZGVmYXVsdDpvPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cz1uPT09LTIsYS5wdXNoKG8pfXJldHVybiBhLmpvaW4oIiIpfXZhciBBSXQ9dSgoKT0+e1dyKCk7ZzAoKTtfTSgpO2koJEl0LCJjcmVhdGVUb2tlbml6ZXIiKTtpKFhoYSwic2xpY2VDaHVua3MiKTtpKEpoYSwic2VyaWFsaXplQ2h1bmtzIil9KTtmdW5jdGlvbiBFTSh0KXtsZXQgYT17Y29uc3RydWN0czp4MWUoW2h5ZSwuLi4odHx8e30pLmV4dGVuc2lvbnN8fFtdXSksY29udGVudDpzKHhJdCksZGVmaW5lZDpbXSxkb2N1bWVudDpzKHdJdCksZmxvdzpzKFNJdCksbGF6eTp7fSxzdHJpbmc6cyhUSXQpLHRleHQ6cyhMSXQpfTtyZXR1cm4gYTtmdW5jdGlvbiBzKG4pe3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuICRJdChhLG4sbCl9fX12YXIgbXllPXUoKCk9Pnt5MWUoKTt2SXQoKTtrSXQoKTtNSXQoKTtmeWUoKTtESXQoKTtBSXQoKTtpKEVNLCJwYXJzZSIpfSk7ZnVuY3Rpb24gSU0odCl7Zm9yKDshXzFlKHQpOyk7cmV0dXJuIHR9dmFyIGd5ZT11KCgpPT57QnZlKCk7aShJTSwicG9zdHByb2Nlc3MiKX0pO2Z1bmN0aW9uIFBNKCl7bGV0IHQ9MSxlPSIiLHI9ITAsYTtyZXR1cm4gcztmdW5jdGlvbiBzKG4sbyxsKXtsZXQgYz1bXSxkLGYscCxoLG07Zm9yKG49ZSsodHlwZW9mIG49PSJzdHJpbmciP24udG9TdHJpbmcoKTpuZXcgVGV4dERlY29kZXIob3x8dm9pZCAwKS5kZWNvZGUobikpLHA9MCxlPSIiLHImJihuLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmcCsrLHI9dm9pZCAwKTtwPG4ubGVuZ3RoOyl7aWYoRUl0Lmxhc3RJbmRleD1wLGQ9RUl0LmV4ZWMobiksaD1kJiZkLmluZGV4IT09dm9pZCAwP2QuaW5kZXg6bi5sZW5ndGgsbT1uLmNoYXJDb2RlQXQoaCksIWQpe2U9bi5zbGljZShwKTticmVha31pZihtPT09MTAmJnA9PT1oJiZhKWMucHVzaCgtMyksYT12b2lkIDA7ZWxzZSBzd2l0Y2goYSYmKGMucHVzaCgtNSksYT12b2lkIDApLHA8aCYmKGMucHVzaChuLnNsaWNlKHAsaCkpLHQrPWgtcCksbSl7Y2FzZSAwOntjLnB1c2goNjU1MzMpLHQrKzticmVha31jYXNlIDk6e2ZvcihmPU1hdGguY2VpbCh0LzQpKjQsYy5wdXNoKC0yKTt0Kys8ZjspYy5wdXNoKC0xKTticmVha31jYXNlIDEwOntjLnB1c2goLTQpLHQ9MTticmVha31kZWZhdWx0OmE9ITAsdD0xfXA9aCsxfXJldHVybiBsJiYoYSYmYy5wdXNoKC01KSxlJiZjLnB1c2goZSksYy5wdXNoKG51bGwpKSxjfX12YXIgRUl0LGJ5ZT11KCgpPT57RUl0PS9bXDBcdFxuXHJdL2c7aShQTSwicHJlcHJvY2VzcyIpfSk7ZnVuY3Rpb24gTWVzKHQsZSxyKXtyZXR1cm4gdHlwZW9mIGUhPSJzdHJpbmciJiYocj1lLGU9dm9pZCAwKSx1eWUocikoSU0oRU0ocikuZG9jdW1lbnQoKS53cml0ZShQTSgpKHQsZSwhMCkpKSl9dmFyIElJdD11KCgpPT57cHllKCk7bXllKCk7Z3llKCk7YnllKCk7cHllKCk7bXllKCk7Z3llKCk7YnllKCk7aShNZXMsIm1pY3JvbWFyayIpfSk7ZnVuY3Rpb24geHllKHQsZSxyKXtyZXR1cm4gZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYocj1lLGU9dm9pZCAwKSxlNmEocikoSU0oRU0ocikuZG9jdW1lbnQoKS53cml0ZShQTSgpKHQsZSwhMCkpKSl9ZnVuY3Rpb24gZTZhKHQpe2xldCBlPXt0cmFuc2Zvcm1zOltdLGNhbkNvbnRhaW5Fb2xzOlsiZW1waGFzaXMiLCJmcmFnbWVudCIsImhlYWRpbmciLCJwYXJhZ3JhcGgiLCJzdHJvbmciXSxlbnRlcjp7YXV0b2xpbms6bihlZSksYXV0b2xpbmtQcm90b2NvbDpFLGF1dG9saW5rRW1haWw6RSxhdHhIZWFkaW5nOm4oSyksYmxvY2tRdW90ZTpuKGopLGNoYXJhY3RlckVzY2FwZTpFLGNoYXJhY3RlclJlZmVyZW5jZTpFLGNvZGVGZW5jZWQ6bihhZSksY29kZUZlbmNlZEZlbmNlSW5mbzpvLGNvZGVGZW5jZWRGZW5jZU1ldGE6byxjb2RlSW5kZW50ZWQ6bihhZSxvKSxjb2RlVGV4dDpuKFgsbyksY29kZVRleHREYXRhOkUsZGF0YTpFLGNvZGVGbG93VmFsdWU6RSxkZWZpbml0aW9uOm4oSiksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOm8sZGVmaW5pdGlvbkxhYmVsU3RyaW5nOm8sZGVmaW5pdGlvblRpdGxlU3RyaW5nOm8sZW1waGFzaXM6bih4ZSksaGFyZEJyZWFrRXNjYXBlOm4oViksaGFyZEJyZWFrVHJhaWxpbmc6bihWKSxodG1sRmxvdzpuKGxlLG8pLGh0bWxGbG93RGF0YTpFLGh0bWxUZXh0Om4obGUsbyksaHRtbFRleHREYXRhOkUsaW1hZ2U6bihuZSksbGFiZWw6byxsaW5rOm4oZWUpLGxpc3RJdGVtOm4oSGUpLGxpc3RJdGVtVmFsdWU6aCxsaXN0T3JkZXJlZDpuKHplLHApLGxpc3RVbm9yZGVyZWQ6bih6ZSkscGFyYWdyYXBoOm4oR2UpLHJlZmVyZW5jZTpULHJlZmVyZW5jZVN0cmluZzpvLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6byxyZXNvdXJjZVRpdGxlU3RyaW5nOm8sc2V0ZXh0SGVhZGluZzpuKEspLHN0cm9uZzpuKG90KSx0aGVtYXRpY0JyZWFrOm4oX2UpfSxleGl0OnthdHhIZWFkaW5nOmMoKSxhdHhIZWFkaW5nU2VxdWVuY2U6XyxhdXRvbGluazpjKCksYXV0b2xpbmtFbWFpbDpVLGF1dG9saW5rUHJvdG9jb2w6SCxibG9ja1F1b3RlOmMoKSxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTpCLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOnBlLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6cGUsY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWU6bWUsY2hhcmFjdGVyUmVmZXJlbmNlOnEsY29kZUZlbmNlZDpjKGcpLGNvZGVGZW5jZWRGZW5jZTpiLGNvZGVGZW5jZWRGZW5jZUluZm86bSxjb2RlRmVuY2VkRmVuY2VNZXRhOnYsY29kZUZsb3dWYWx1ZTpCLGNvZGVJbmRlbnRlZDpjKHkpLGNvZGVUZXh0OmMoRiksY29kZVRleHREYXRhOkIsZGF0YTpCLGRlZmluaXRpb246YygpLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpOLGRlZmluaXRpb25MYWJlbFN0cmluZzprLGRlZmluaXRpb25UaXRsZVN0cmluZzpNLGVtcGhhc2lzOmMoKSxoYXJkQnJlYWtFc2NhcGU6Yyh6KSxoYXJkQnJlYWtUcmFpbGluZzpjKHopLGh0bWxGbG93OmMoQSksaHRtbEZsb3dEYXRhOkIsaHRtbFRleHQ6YygkKSxodG1sVGV4dERhdGE6QixpbWFnZTpjKEcpLGxhYmVsOmRlLGxhYmVsVGV4dDpaLGxpbmVFbmRpbmc6QyxsaW5rOmMoWSksbGlzdEl0ZW06YygpLGxpc3RPcmRlcmVkOmMoKSxsaXN0VW5vcmRlcmVkOmMoKSxwYXJhZ3JhcGg6YygpLHJlZmVyZW5jZVN0cmluZzpXLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6RCxyZXNvdXJjZVRpdGxlU3RyaW5nOlEscmVzb3VyY2U6ZmUsc2V0ZXh0SGVhZGluZzpjKEwpLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6TyxzZXRleHRIZWFkaW5nVGV4dDpTLHN0cm9uZzpjKCksdGhlbWF0aWNCcmVhazpjKCl9fTtOSXQoZSwodHx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2xldCByPXt9O3JldHVybiBhO2Z1bmN0aW9uIGEob2Upe2xldCBzZT17dHlwZToicm9vdCIsY2hpbGRyZW46W119LGNlPXtzdGFjazpbc2VdLHRva2VuU3RhY2s6W10sY29uZmlnOmUsZW50ZXI6bCxleGl0OmQsYnVmZmVyOm8scmVzdW1lOmYsZGF0YTpyfSxUZT1bXSxxZT0tMTtmb3IoOysrcWU8b2UubGVuZ3RoOylpZihvZVtxZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fG9lW3FlXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKWlmKG9lW3FlXVswXT09PSJlbnRlciIpVGUucHVzaChxZSk7ZWxzZXtsZXQgbnQ9VGUucG9wKCk7cWU9cyhvZSxudCxxZSl9Zm9yKHFlPS0xOysrcWU8b2UubGVuZ3RoOyl7bGV0IG50PWVbb2VbcWVdWzBdXTtQSXQuY2FsbChudCxvZVtxZV1bMV0udHlwZSkmJm50W29lW3FlXVsxXS50eXBlXS5jYWxsKE9iamVjdC5hc3NpZ24oe3NsaWNlU2VyaWFsaXplOm9lW3FlXVsyXS5zbGljZVNlcmlhbGl6ZX0sY2UpLG9lW3FlXVsxXSl9aWYoY2UudG9rZW5TdGFjay5sZW5ndGg+MCl7bGV0IG50PWNlLnRva2VuU3RhY2tbY2UudG9rZW5TdGFjay5sZW5ndGgtMV07KG50WzFdfHxPSXQpLmNhbGwoY2Usdm9pZCAwLG50WzBdKX1mb3Ioc2UucG9zaXRpb249e3N0YXJ0OiR1KG9lLmxlbmd0aD4wP29lWzBdWzFdLnN0YXJ0OntsaW5lOjEsY29sdW1uOjEsb2Zmc2V0OjB9KSxlbmQ6JHUob2UubGVuZ3RoPjA/b2Vbb2UubGVuZ3RoLTJdWzFdLmVuZDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSl9LHFlPS0xOysrcWU8ZS50cmFuc2Zvcm1zLmxlbmd0aDspc2U9ZS50cmFuc2Zvcm1zW3FlXShzZSl8fHNlO3JldHVybiBzZX1mdW5jdGlvbiBzKG9lLHNlLGNlKXtsZXQgVGU9c2UtMSxxZT0tMSxudD0hMSx2dCxMZSx3ZSxPZTtmb3IoOysrVGU8PWNlOyl7bGV0IGdlPW9lW1RlXTtzd2l0Y2goZ2VbMV0udHlwZSl7Y2FzZSJsaXN0VW5vcmRlcmVkIjpjYXNlImxpc3RPcmRlcmVkIjpjYXNlImJsb2NrUXVvdGUiOntnZVswXT09PSJlbnRlciI/cWUrKzpxZS0tLE9lPXZvaWQgMDticmVha31jYXNlImxpbmVFbmRpbmdCbGFuayI6e2dlWzBdPT09ImVudGVyIiYmKHZ0JiYhT2UmJiFxZSYmIXdlJiYod2U9VGUpLE9lPXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0Ok9lPXZvaWQgMH1pZighcWUmJmdlWzBdPT09ImVudGVyIiYmZ2VbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCJ8fHFlPT09LTEmJmdlWzBdPT09ImV4aXQiJiYoZ2VbMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkInx8Z2VbMV0udHlwZT09PSJsaXN0T3JkZXJlZCIpKXtpZih2dCl7bGV0IGJlPVRlO2ZvcihMZT12b2lkIDA7YmUtLTspe2xldCBJZT1vZVtiZV07aWYoSWVbMV0udHlwZT09PSJsaW5lRW5kaW5nInx8SWVbMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKXtpZihJZVswXT09PSJleGl0Iiljb250aW51ZTtMZSYmKG9lW0xlXVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiLG50PSEwKSxJZVsxXS50eXBlPSJsaW5lRW5kaW5nIixMZT1iZX1lbHNlIGlmKCEoSWVbMV0udHlwZT09PSJsaW5lUHJlZml4Inx8SWVbMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4Inx8SWVbMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSJ8fEllWzFdLnR5cGU9PT0iYmxvY2tRdW90ZU1hcmtlciJ8fEllWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVha313ZSYmKCFMZXx8d2U8TGUpJiYodnQuX3NwcmVhZD0hMCksdnQuZW5kPU9iamVjdC5hc3NpZ24oe30sTGU/b2VbTGVdWzFdLnN0YXJ0OmdlWzFdLmVuZCksb2Uuc3BsaWNlKExlfHxUZSwwLFsiZXhpdCIsdnQsZ2VbMl1dKSxUZSsrLGNlKyt9aWYoZ2VbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCIpe2xldCBiZT17dHlwZToibGlzdEl0ZW0iLF9zcHJlYWQ6ITEsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxnZVsxXS5zdGFydCksZW5kOnZvaWQgMH07dnQ9YmUsb2Uuc3BsaWNlKFRlLDAsWyJlbnRlciIsYmUsZ2VbMl1dKSxUZSsrLGNlKyssd2U9dm9pZCAwLE9lPSEwfX19cmV0dXJuIG9lW3NlXVsxXS5fc3ByZWFkPW50LGNlfWZ1bmN0aW9uIG4ob2Usc2Upe3JldHVybiBjZTtmdW5jdGlvbiBjZShUZSl7bC5jYWxsKHRoaXMsb2UoVGUpLFRlKSxzZSYmc2UuY2FsbCh0aGlzLFRlKX19ZnVuY3Rpb24gbygpe3RoaXMuc3RhY2sucHVzaCh7dHlwZToiZnJhZ21lbnQiLGNoaWxkcmVuOltdfSl9ZnVuY3Rpb24gbChvZSxzZSxjZSl7dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXS5jaGlsZHJlbi5wdXNoKG9lKSx0aGlzLnN0YWNrLnB1c2gob2UpLHRoaXMudG9rZW5TdGFjay5wdXNoKFtzZSxjZXx8dm9pZCAwXSksb2UucG9zaXRpb249e3N0YXJ0OiR1KHNlLnN0YXJ0KSxlbmQ6dm9pZCAwfX1mdW5jdGlvbiBjKG9lKXtyZXR1cm4gc2U7ZnVuY3Rpb24gc2UoY2Upe29lJiZvZS5jYWxsKHRoaXMsY2UpLGQuY2FsbCh0aGlzLGNlKX19ZnVuY3Rpb24gZChvZSxzZSl7bGV0IGNlPXRoaXMuc3RhY2sucG9wKCksVGU9dGhpcy50b2tlblN0YWNrLnBvcCgpO2lmKFRlKVRlWzBdLnR5cGUhPT1vZS50eXBlJiYoc2U/c2UuY2FsbCh0aGlzLG9lLFRlWzBdKTooVGVbMV18fE9JdCkuY2FsbCh0aGlzLG9lLFRlWzBdKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitvZS50eXBlKyJgICgiK3p1KHtzdGFydDpvZS5zdGFydCxlbmQ6b2UuZW5kfSkrIik6IGl0XHUyMDE5cyBub3Qgb3BlbiIpO2NlLnBvc2l0aW9uLmVuZD0kdShvZS5lbmQpfWZ1bmN0aW9uIGYoKXtyZXR1cm4ga2godGhpcy5zdGFjay5wb3AoKSl9ZnVuY3Rpb24gcCgpe3RoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWU9ITB9ZnVuY3Rpb24gaChvZSl7aWYodGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZSl7bGV0IHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07c2Uuc3RhcnQ9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUob2UpLDEwKSx0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gbSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UubGFuZz1vZX1mdW5jdGlvbiB2KCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS5tZXRhPW9lfWZ1bmN0aW9uIGIoKXt0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGV8fCh0aGlzLmJ1ZmZlcigpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT0hMCl9ZnVuY3Rpb24gZygpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2UucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIiksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPXZvaWQgMH1mdW5jdGlvbiB5KCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS52YWx1ZT1vZS5yZXBsYWNlKC8oXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiBrKG9lKXtsZXQgc2U9dGhpcy5yZXN1bWUoKSxjZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2NlLmxhYmVsPXNlLGNlLmlkZW50aWZpZXI9UGkodGhpcy5zbGljZVNlcmlhbGl6ZShvZSkpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gTSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudGl0bGU9b2V9ZnVuY3Rpb24gTigpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudXJsPW9lfWZ1bmN0aW9uIF8ob2Upe2xldCBzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKCFzZS5kZXB0aCl7bGV0IGNlPXRoaXMuc2xpY2VTZXJpYWxpemUob2UpLmxlbmd0aDtzZS5kZXB0aD1jZX19ZnVuY3Rpb24gUygpe3RoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nPSEwfWZ1bmN0aW9uIE8ob2Upe2xldCBzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLmRlcHRoPXRoaXMuc2xpY2VTZXJpYWxpemUob2UpLmNvZGVQb2ludEF0KDApPT09NjE/MToyfWZ1bmN0aW9uIEwoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz12b2lkIDB9ZnVuY3Rpb24gRShvZSl7bGV0IGNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4sVGU9Y2VbY2UubGVuZ3RoLTFdOyghVGV8fFRlLnR5cGUhPT0idGV4dCIpJiYoVGU9RGUoKSxUZS5wb3NpdGlvbj17c3RhcnQ6JHUob2Uuc3RhcnQpLGVuZDp2b2lkIDB9LGNlLnB1c2goVGUpKSx0aGlzLnN0YWNrLnB1c2goVGUpfWZ1bmN0aW9uIEIob2Upe2xldCBzZT10aGlzLnN0YWNrLnBvcCgpO3NlLnZhbHVlKz10aGlzLnNsaWNlU2VyaWFsaXplKG9lKSxzZS5wb3NpdGlvbi5lbmQ9JHUob2UuZW5kKX1mdW5jdGlvbiBDKG9lKXtsZXQgc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuYXRIYXJkQnJlYWspe2xldCBjZT1zZS5jaGlsZHJlbltzZS5jaGlsZHJlbi5sZW5ndGgtMV07Y2UucG9zaXRpb24uZW5kPSR1KG9lLmVuZCksdGhpcy5kYXRhLmF0SGFyZEJyZWFrPXZvaWQgMDtyZXR1cm59IXRoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nJiZlLmNhbkNvbnRhaW5Fb2xzLmluY2x1ZGVzKHNlLnR5cGUpJiYoRS5jYWxsKHRoaXMsb2UpLEIuY2FsbCh0aGlzLG9lKSl9ZnVuY3Rpb24geigpe3RoaXMuZGF0YS5hdEhhcmRCcmVhaz0hMH1mdW5jdGlvbiBBKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS52YWx1ZT1vZX1mdW5jdGlvbiAkKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS52YWx1ZT1vZX1mdW5jdGlvbiBGKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS52YWx1ZT1vZX1mdW5jdGlvbiBZKCl7bGV0IG9lPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlKXtsZXQgc2U9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7b2UudHlwZSs9IlJlZmVyZW5jZSIsb2UucmVmZXJlbmNlVHlwZT1zZSxkZWxldGUgb2UudXJsLGRlbGV0ZSBvZS50aXRsZX1lbHNlIGRlbGV0ZSBvZS5pZGVudGlmaWVyLGRlbGV0ZSBvZS5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gRygpe2xldCBvZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IHNlPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO29lLnR5cGUrPSJSZWZlcmVuY2UiLG9lLnJlZmVyZW5jZVR5cGU9c2UsZGVsZXRlIG9lLnVybCxkZWxldGUgb2UudGl0bGV9ZWxzZSBkZWxldGUgb2UuaWRlbnRpZmllcixkZWxldGUgb2UubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIFoob2Upe2xldCBzZT10aGlzLnNsaWNlU2VyaWFsaXplKG9lKSxjZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2NlLmxhYmVsPWcxZShzZSksY2UuaWRlbnRpZmllcj1QaShzZSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBkZSgpe2xldCBvZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLHNlPXRoaXMucmVzdW1lKCksY2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2U9ITAsY2UudHlwZT09PSJsaW5rIil7bGV0IFRlPW9lLmNoaWxkcmVuO2NlLmNoaWxkcmVuPVRlfWVsc2UgY2UuYWx0PXNlfWZ1bmN0aW9uIEQoKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnVybD1vZX1mdW5jdGlvbiBRKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS50aXRsZT1vZX1mdW5jdGlvbiBmZSgpe3RoaXMuZGF0YS5pblJlZmVyZW5jZT12b2lkIDB9ZnVuY3Rpb24gVCgpe3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJjb2xsYXBzZWQifWZ1bmN0aW9uIFcob2Upe2xldCBzZT10aGlzLnJlc3VtZSgpLGNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Y2UubGFiZWw9c2UsY2UuaWRlbnRpZmllcj1QaSh0aGlzLnNsaWNlU2VyaWFsaXplKG9lKSkudG9Mb3dlckNhc2UoKSx0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT0iZnVsbCJ9ZnVuY3Rpb24gcGUob2Upe3RoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlPW9lLnR5cGV9ZnVuY3Rpb24gbWUob2Upe2xldCBzZT10aGlzLnNsaWNlU2VyaWFsaXplKG9lKSxjZT10aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSxUZTtjZT8oVGU9cHgoc2UsY2U9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpLHRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlPXZvaWQgMCk6VGU9THUoc2UpO2xldCBxZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3FlLnZhbHVlKz1UZX1mdW5jdGlvbiBxKG9lKXtsZXQgc2U9dGhpcy5zdGFjay5wb3AoKTtzZS5wb3NpdGlvbi5lbmQ9JHUob2UuZW5kKX1mdW5jdGlvbiBIKG9lKXtCLmNhbGwodGhpcyxvZSk7bGV0IHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudXJsPXRoaXMuc2xpY2VTZXJpYWxpemUob2UpfWZ1bmN0aW9uIFUob2Upe0IuY2FsbCh0aGlzLG9lKTtsZXQgc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS51cmw9Im1haWx0bzoiK3RoaXMuc2xpY2VTZXJpYWxpemUob2UpfWZ1bmN0aW9uIGooKXtyZXR1cm57dHlwZToiYmxvY2txdW90ZSIsY2hpbGRyZW46W119fWZ1bmN0aW9uIGFlKCl7cmV0dXJue3R5cGU6ImNvZGUiLGxhbmc6bnVsbCxtZXRhOm51bGwsdmFsdWU6IiJ9fWZ1bmN0aW9uIFgoKXtyZXR1cm57dHlwZToiaW5saW5lQ29kZSIsdmFsdWU6IiJ9fWZ1bmN0aW9uIEooKXtyZXR1cm57dHlwZToiZGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDpudWxsLHRpdGxlOm51bGwsdXJsOiIifX1mdW5jdGlvbiB4ZSgpe3JldHVybnt0eXBlOiJlbXBoYXNpcyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEsoKXtyZXR1cm57dHlwZToiaGVhZGluZyIsZGVwdGg6MCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gVigpe3JldHVybnt0eXBlOiJicmVhayJ9fWZ1bmN0aW9uIGxlKCl7cmV0dXJue3R5cGU6Imh0bWwiLHZhbHVlOiIifX1mdW5jdGlvbiBuZSgpe3JldHVybnt0eXBlOiJpbWFnZSIsdGl0bGU6bnVsbCx1cmw6IiIsYWx0Om51bGx9fWZ1bmN0aW9uIGVlKCl7cmV0dXJue3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiIiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiB6ZShvZSl7cmV0dXJue3R5cGU6Imxpc3QiLG9yZGVyZWQ6b2UudHlwZT09PSJsaXN0T3JkZXJlZCIsc3RhcnQ6bnVsbCxzcHJlYWQ6b2UuX3NwcmVhZCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gSGUob2Upe3JldHVybnt0eXBlOiJsaXN0SXRlbSIsc3ByZWFkOm9lLl9zcHJlYWQsY2hlY2tlZDpudWxsLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBHZSgpe3JldHVybnt0eXBlOiJwYXJhZ3JhcGgiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBvdCgpe3JldHVybnt0eXBlOiJzdHJvbmciLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBEZSgpe3JldHVybnt0eXBlOiJ0ZXh0Iix2YWx1ZToiIn19ZnVuY3Rpb24gX2UoKXtyZXR1cm57dHlwZToidGhlbWF0aWNCcmVhayJ9fX1mdW5jdGlvbiAkdSh0KXtyZXR1cm57bGluZTp0LmxpbmUsY29sdW1uOnQuY29sdW1uLG9mZnNldDp0Lm9mZnNldH19ZnVuY3Rpb24gTkl0KHQsZSl7bGV0IHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXtsZXQgYT1lW3JdO0FycmF5LmlzQXJyYXkoYSk/Tkl0KHQsYSk6dDZhKHQsYSl9fWZ1bmN0aW9uIHQ2YSh0LGUpe2xldCByO2ZvcihyIGluIGUpaWYoUEl0LmNhbGwoZSxyKSlzd2l0Y2gocil7Y2FzZSJjYW5Db250YWluRW9scyI6e2xldCBhPWVbcl07YSYmdFtyXS5wdXNoKC4uLmEpO2JyZWFrfWNhc2UidHJhbnNmb3JtcyI6e2xldCBhPWVbcl07YSYmdFtyXS5wdXNoKC4uLmEpO2JyZWFrfWNhc2UiZW50ZXIiOmNhc2UiZXhpdCI6e2xldCBhPWVbcl07YSYmT2JqZWN0LmFzc2lnbih0W3JdLGEpO2JyZWFrfX19ZnVuY3Rpb24gT0l0KHQsZSl7dGhyb3cgdD9uZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIit0LnR5cGUrImAgKCIrenUoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIik6IGEgZGlmZmVyZW50IHRva2VuIChgIitlLnR5cGUrImAsICIrenUoe3N0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkrIikgaXMgb3BlbiIpOm5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGRvY3VtZW50LCBhIHRva2VuIChgIitlLnR5cGUrImAsICIrenUoe3N0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkrIikgaXMgc3RpbGwgb3BlbiIpfXZhciBQSXQsUkl0PXUoKCk9Pnt1MWUoKTtJSXQoKTttMWUoKTt3dmUoKTtUdSgpO3pNKCk7UHhlKCk7UEl0PXt9Lmhhc093blByb3BlcnR5O2koeHllLCJmcm9tTWFya2Rvd24iKTtpKGU2YSwiY29tcGlsZXIiKTtpKCR1LCJwb2ludCIpO2koTkl0LCJjb25maWd1cmUiKTtpKHQ2YSwiZXh0ZW5zaW9uIik7aShPSXQsImRlZmF1bHRPbkVycm9yIil9KTt2YXIgRkl0PXUoKCk9PntSSXQoKX0pO2Z1bmN0aW9uIG14KHQpe2xldCBlPXRoaXM7ZS5wYXJzZXI9cjtmdW5jdGlvbiByKGEpe3JldHVybiB4eWUoYSx7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoIm1pY3JvbWFya0V4dGVuc2lvbnMiKXx8W10sbWRhc3RFeHRlbnNpb25zOmUuZGF0YSgiZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyIpfHxbXX0pfWkociwicGFyc2VyIil9dmFyIEJJdD11KCgpPT57Rkl0KCk7aShteCwicmVtYXJrUGFyc2UiKX0pO3ZhciBISXQ9dSgoKT0+e0JJdCgpfSk7dmFyIHFJdD1OdCgoR2VzLHZ5ZSk9PnsoZnVuY3Rpb24oKXt2YXIgdDt0eXBlb2YgdnllPCJ1Ij90PXZ5ZS5leHBvcnRzPWE6dD0oZnVuY3Rpb24oKXtyZXR1cm4gdGhpc3x8KDAsZXZhbCkoInRoaXMiKX0pKCksdC5mb3JtYXQ9YSx0LnZzcHJpbnRmPXIsdHlwZW9mIGNvbnNvbGU8InUiJiZ0eXBlb2YgY29uc29sZS5sb2c9PSJmdW5jdGlvbiImJih0LnByaW50Zj1lKTtmdW5jdGlvbiBlKCl7Y29uc29sZS5sb2coYS5hcHBseShudWxsLGFyZ3VtZW50cykpfWkoZSwicHJpbnRmIik7ZnVuY3Rpb24gcihzLG4pe3JldHVybiBhLmFwcGx5KG51bGwsW3NdLmNvbmNhdChuKSl9aShyLCJ2c3ByaW50ZiIpO2Z1bmN0aW9uIGEocyl7Zm9yKHZhciBuPTEsbz1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksbD0wLGM9cy5sZW5ndGgsZD0iIixmLHA9ITEsaCxtLHY9ITEsYixnPWkoZnVuY3Rpb24oKXtyZXR1cm4gb1tuKytdfSwibmV4dEFyZyIpLHk9aShmdW5jdGlvbigpe2Zvcih2YXIgaz0iIjsvXGQvLnRlc3Qoc1tsXSk7KWsrPXNbbCsrXSxmPXNbbF07cmV0dXJuIGsubGVuZ3RoPjA/cGFyc2VJbnQoayk6bnVsbH0sInNsdXJwTnVtYmVyIik7bDxjOysrbClpZihmPXNbbF0scClzd2l0Y2gocD0hMSxmPT0iLiI/KHY9ITEsZj1zWysrbF0pOmY9PSIwIiYmc1tsKzFdPT0iLiI/KHY9ITAsbCs9MixmPXNbbF0pOnY9ITAsYj15KCksZil7Y2FzZSJiIjpkKz1wYXJzZUludChnKCksMTApLnRvU3RyaW5nKDIpO2JyZWFrO2Nhc2UiYyI6aD1nKCksdHlwZW9mIGg9PSJzdHJpbmcifHxoIGluc3RhbmNlb2YgU3RyaW5nP2QrPWg6ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChoLDEwKSk7YnJlYWs7Y2FzZSJkIjpkKz1wYXJzZUludChnKCksMTApO2JyZWFrO2Nhc2UiZiI6bT1TdHJpbmcocGFyc2VGbG9hdChnKCkpLnRvRml4ZWQoYnx8NikpLGQrPXY/bTptLnJlcGxhY2UoL14wLywiIik7YnJlYWs7Y2FzZSJqIjpkKz1KU09OLnN0cmluZ2lmeShnKCkpO2JyZWFrO2Nhc2UibyI6ZCs9IjAiK3BhcnNlSW50KGcoKSwxMCkudG9TdHJpbmcoOCk7YnJlYWs7Y2FzZSJzIjpkKz1nKCk7YnJlYWs7Y2FzZSJ4IjpkKz0iMHgiK3BhcnNlSW50KGcoKSwxMCkudG9TdHJpbmcoMTYpO2JyZWFrO2Nhc2UiWCI6ZCs9IjB4IitwYXJzZUludChnKCksMTApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO2JyZWFrO2RlZmF1bHQ6ZCs9ZjticmVha31lbHNlIGY9PT0iJSI/cD0hMDpkKz1mO3JldHVybiBkfWkoYSwiZm9ybWF0Iil9KSgpfSk7ZnVuY3Rpb24gTGgodCl7cmV0dXJuIGUuZGlzcGxheU5hbWU9dC5kaXNwbGF5TmFtZXx8dC5uYW1lLGU7ZnVuY3Rpb24gZShyLC4uLmEpe2xldCBzPXImJigwLFZJdC5kZWZhdWx0KShyLC4uLmEpO3JldHVybiBuZXcgdChzKX1pKGUsIkZvcm1hdHRlZEVycm9yIil9dmFyIFZJdCxOTSxqSXQ9dSgoKT0+e1ZJdD1HYShxSXQoKSwxKSxOTT1PYmplY3QuYXNzaWduKExoKEVycm9yKSx7ZXZhbDpMaChFdmFsRXJyb3IpLHJhbmdlOkxoKFJhbmdlRXJyb3IpLHJlZmVyZW5jZTpMaChSZWZlcmVuY2VFcnJvciksc3ludGF4OkxoKFN5bnRheEVycm9yKSx0eXBlOkxoKFR5cGVFcnJvciksdXJpOkxoKFVSSUVycm9yKX0pO2koTGgsImNyZWF0ZSIpfSk7ZnVuY3Rpb24gZ3godCl7bGV0IGU9W10scj0tMSxhPUFycmF5LmlzQXJyYXkodCk/dDp0P1t0XTpbInlhbWwiXTtmb3IoOysrcjxhLmxlbmd0aDspZVtyXT1yNmEoYVtyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gcjZhKHQpe2xldCBlPXQ7aWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZighTjFlLmNhbGwoVUl0LGUpKXRocm93IE5NKCJNaXNzaW5nIG1hdHRlciBkZWZpbml0aW9uIGZvciBgJXNgIixlKTtlPXt0eXBlOmUsbWFya2VyOlVJdFtlXX19ZWxzZSBpZih0eXBlb2YgZSE9Im9iamVjdCIpdGhyb3cgTk0oIkV4cGVjdGVkIG1hdHRlciB0byBiZSBhbiBvYmplY3QsIG5vdCBgJWpgIixlKTtpZighTjFlLmNhbGwoZSwidHlwZSIpKXRocm93IE5NKCJNaXNzaW5nIGB0eXBlYCBpbiBtYXR0ZXIgYCVqYCIsZSk7aWYoIU4xZS5jYWxsKGUsImZlbmNlIikmJiFOMWUuY2FsbChlLCJtYXJrZXIiKSl0aHJvdyBOTSgiTWlzc2luZyBgbWFya2VyYCBvciBgZmVuY2VgIGluIG1hdHRlciBgJWpgIixlKTtyZXR1cm4gZX12YXIgTjFlLFVJdCx5eWU9dSgoKT0+e2pJdCgpO04xZT17fS5oYXNPd25Qcm9wZXJ0eSxVSXQ9e3lhbWw6Ii0iLHRvbWw6IisifTtpKGd4LCJ0b01hdHRlcnMiKTtpKHI2YSwibWF0dGVyIil9KTtmdW5jdGlvbiBreWUodCl7bGV0IGU9Z3godCkscj17fSxhPS0xO2Zvcig7KythPGUubGVuZ3RoOyl7bGV0IHM9ZVthXSxuPXd5ZShzLCJvcGVuIikuY2hhckNvZGVBdCgwKSxvPWE2YShzKSxsPXJbbl07QXJyYXkuaXNBcnJheShsKT9sLnB1c2gobyk6cltuXT1bb119cmV0dXJue2Zsb3c6cn19ZnVuY3Rpb24gYTZhKHQpe2xldCBlPXQuYW55d2hlcmUscj10LnR5cGUsYT1yKyJGZW5jZSIscz1hKyJTZXF1ZW5jZSIsbj1yKyJWYWx1ZSIsbz17dG9rZW5pemU6ZixwYXJ0aWFsOiEwfSxsLGM9MDtyZXR1cm57dG9rZW5pemU6ZCxjb25jcmV0ZTohMH07ZnVuY3Rpb24gZChwLGgsbSl7bGV0IHY9dGhpcztyZXR1cm4gYjtmdW5jdGlvbiBiKE8pe2xldCBMPXYubm93KCk7cmV0dXJuIEwuY29sdW1uPT09MSYmKEwubGluZT09PTF8fGUpJiYobD13eWUodCwib3BlbiIpLGM9MCxPPT09bC5jaGFyQ29kZUF0KGMpKT8ocC5lbnRlcihyKSxwLmVudGVyKGEpLHAuZW50ZXIocyksZyhPKSk6bShPKX1mdW5jdGlvbiBnKE8pe3JldHVybiBjPT09bC5sZW5ndGg/KHAuZXhpdChzKSxPdChPKT8ocC5lbnRlcigid2hpdGVzcGFjZSIpLHkoTykpOmsoTykpOk89PT1sLmNoYXJDb2RlQXQoYysrKT8ocC5jb25zdW1lKE8pLGcpOm0oTyl9ZnVuY3Rpb24geShPKXtyZXR1cm4gT3QoTyk/KHAuY29uc3VtZShPKSx5KToocC5leGl0KCJ3aGl0ZXNwYWNlIiksayhPKSl9ZnVuY3Rpb24gayhPKXtyZXR1cm4gZHQoTyk/KHAuZXhpdChhKSxwLmVudGVyKCJsaW5lRW5kaW5nIikscC5jb25zdW1lKE8pLHAuZXhpdCgibGluZUVuZGluZyIpLGw9d3llKHQsImNsb3NlIiksYz0wLHAuYXR0ZW1wdChvLFMsTSkpOm0oTyl9ZnVuY3Rpb24gTShPKXtyZXR1cm4gTz09PW51bGx8fGR0KE8pP18oTyk6KHAuZW50ZXIobiksTihPKSl9ZnVuY3Rpb24gTihPKXtyZXR1cm4gTz09PW51bGx8fGR0KE8pPyhwLmV4aXQobiksXyhPKSk6KHAuY29uc3VtZShPKSxOKX1mdW5jdGlvbiBfKE8pe3JldHVybiBPPT09bnVsbD9tKE8pOihwLmVudGVyKCJsaW5lRW5kaW5nIikscC5jb25zdW1lKE8pLHAuZXhpdCgibGluZUVuZGluZyIpLHAuYXR0ZW1wdChvLFMsTSkpfWZ1bmN0aW9uIFMoTyl7cmV0dXJuIHAuZXhpdChyKSxoKE8pfX1mdW5jdGlvbiBmKHAsaCxtKXtsZXQgdj0wO3JldHVybiBiO2Z1bmN0aW9uIGIoTSl7cmV0dXJuIE09PT1sLmNoYXJDb2RlQXQodik/KHAuZW50ZXIoYSkscC5lbnRlcihzKSxnKE0pKTptKE0pfWZ1bmN0aW9uIGcoTSl7cmV0dXJuIHY9PT1sLmxlbmd0aD8ocC5leGl0KHMpLE90KE0pPyhwLmVudGVyKCJ3aGl0ZXNwYWNlIikseShNKSk6ayhNKSk6TT09PWwuY2hhckNvZGVBdCh2KyspPyhwLmNvbnN1bWUoTSksZyk6bShNKX1mdW5jdGlvbiB5KE0pe3JldHVybiBPdChNKT8ocC5jb25zdW1lKE0pLHkpOihwLmV4aXQoIndoaXRlc3BhY2UiKSxrKE0pKX1mdW5jdGlvbiBrKE0pe3JldHVybiBNPT09bnVsbHx8ZHQoTSk/KHAuZXhpdChhKSxoKE0pKTptKE0pfX19ZnVuY3Rpb24gd3llKHQsZSl7cmV0dXJuIHQubWFya2VyP1dJdCh0Lm1hcmtlcixlKS5yZXBlYXQoMyk6V0l0KHQuZmVuY2UsZSl9ZnVuY3Rpb24gV0l0KHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj90OnRbZV19dmFyIEdJdD11KCgpPT57V3IoKTt5eWUoKTtpKGt5ZSwiZnJvbnRtYXR0ZXIiKTtpKGE2YSwiY3JlYXRlQ29uc3RydWN0Iik7aSh3eWUsImZlbmNlIik7aShXSXQsInBpY2siKX0pO3ZhciBZSXQ9dSgoKT0+e30pO3ZhciBTeWU9dSgoKT0+e0dJdCgpO1lJdCgpO3l5ZSgpfSk7ZnVuY3Rpb24gQ3llKHQpe2xldCBlPWd4KHQpLHI9e30sYT17fSxzPS0xO2Zvcig7KytzPGUubGVuZ3RoOyl7bGV0IG49ZVtzXTtyW24udHlwZV09aTZhKG4pLGFbbi50eXBlXT1zNmEsYVtuLnR5cGUrIlZhbHVlIl09bjZhfXJldHVybntlbnRlcjpyLGV4aXQ6YX19ZnVuY3Rpb24gaTZhKHQpe3JldHVybiBlO2Z1bmN0aW9uIGUocil7dGhpcy5lbnRlcih7dHlwZTp0LnR5cGUsdmFsdWU6IiJ9LHIpLHRoaXMuYnVmZmVyKCl9fWZ1bmN0aW9uIHM2YSh0KXtsZXQgZT10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTsidmFsdWUiaW4gcix0aGlzLmV4aXQodCksci52YWx1ZT1lLnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIG42YSh0KXt0aGlzLmNvbmZpZy5lbnRlci5kYXRhLmNhbGwodGhpcyx0KSx0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIHp5ZSh0KXtsZXQgZT1bXSxyPXt9LGE9Z3godCkscz0tMTtmb3IoOysrczxhLmxlbmd0aDspe2xldCBuPWFbc107cltuLnR5cGVdPW82YShuKTtsZXQgbz1NeWUobiwib3BlbiIpO2UucHVzaCh7YXRCcmVhazohMCxjaGFyYWN0ZXI6by5jaGFyQXQoMCksYWZ0ZXI6VmYoby5jaGFyQXQoMSkpfSl9cmV0dXJue3Vuc2FmZTplLGhhbmRsZXJzOnJ9fWZ1bmN0aW9uIG82YSh0KXtsZXQgZT1NeWUodCwib3BlbiIpLHI9TXllKHQsImNsb3NlIik7cmV0dXJuIGE7ZnVuY3Rpb24gYShzKXtyZXR1cm4gZSsocy52YWx1ZT9gCmArcy52YWx1ZToiIikrYApgK3J9fWZ1bmN0aW9uIE15ZSh0LGUpe3JldHVybiB0Lm1hcmtlcj9LSXQodC5tYXJrZXIsZSkucmVwZWF0KDMpOktJdCh0LmZlbmNlLGUpfWZ1bmN0aW9uIEtJdCh0LGUpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/dDp0W2VdfXZhciBaSXQ9dSgoKT0+e0N1KCk7U3llKCk7RGllKCk7aShDeWUsImZyb250bWF0dGVyRnJvbU1hcmtkb3duIik7aShpNmEsIm9wZW5lciIpO2koczZhLCJjbG9zZSIpO2kobjZhLCJ2YWx1ZSIpO2koenllLCJmcm9udG1hdHRlclRvTWFya2Rvd24iKTtpKG82YSwiaGFuZGxlciIpO2koTXllLCJmZW5jZSIpO2koS0l0LCJwaWNrIil9KTt2YXIgUUl0PXUoKCk9PntaSXQoKX0pO2Z1bmN0aW9uIGJ4KHQpe2xldCBlPXRoaXMscj10fHxsNmEsYT1lLmRhdGEoKSxzPWEubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGEubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbj1hLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChhLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG89YS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGEudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO3MucHVzaChreWUocikpLG4ucHVzaChDeWUocikpLG8ucHVzaCh6eWUocikpfXZhciBsNmEsWEl0PXUoKCk9PntRSXQoKTtTeWUoKTtsNmE9InlhbWwiO2koYngsInJlbWFya0Zyb250bWF0dGVyIil9KTt2YXIgSkl0PXUoKCk9PntYSXQoKX0pO3ZhciBfeWU9dSgoKT0+e30pO3ZhciBjNmEsZVB0LGQ2YSxIMWUsdFB0PXUoKCk9PntfeWUoKTtjNmE9dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6Z2xvYmFsVGhpcyxlUHQ9aSgodCxlKT0+e3N3aXRjaCh0KXtjYXNlIkZ1bmN0aW9uIjpjYXNlIlNoYXJlZFdvcmtlciI6Y2FzZSJXb3JrZXIiOmNhc2UiZXZhbCI6Y2FzZSJzZXRJbnRlcnZhbCI6Y2FzZSJzZXRUaW1lb3V0Ijp0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmFibGUgdG8gZGVzZXJpYWxpemUgIit0KX1yZXR1cm4gbmV3IGM2YVt0XShlKX0sImd1YXJkIiksZDZhPWkoKHQsZSk9PntsZXQgcj1pKChzLG4pPT4odC5zZXQobixzKSxzKSwiYXMiKSxhPWkocz0+e2lmKHQuaGFzKHMpKXJldHVybiB0LmdldChzKTtsZXRbbixvXT1lW3NdO3N3aXRjaChuKXtjYXNlIDA6Y2FzZS0xOnJldHVybiByKG8scyk7Y2FzZSAxOntsZXQgbD1yKFtdLHMpO2ZvcihsZXQgYyBvZiBvKWwucHVzaChhKGMpKTtyZXR1cm4gbH1jYXNlIDI6e2xldCBsPXIoe30scyk7Zm9yKGxldFtjLGRdb2YgbylsW2EoYyldPWEoZCk7cmV0dXJuIGx9Y2FzZSAzOnJldHVybiByKG5ldyBEYXRlKG8pLHMpO2Nhc2UgNDp7bGV0e3NvdXJjZTpsLGZsYWdzOmN9PW87cmV0dXJuIHIobmV3IFJlZ0V4cChsLGMpLHMpfWNhc2UgNTp7bGV0IGw9cihuZXcgTWFwLHMpO2ZvcihsZXRbYyxkXW9mIG8pbC5zZXQoYShjKSxhKGQpKTtyZXR1cm4gbH1jYXNlIDY6e2xldCBsPXIobmV3IFNldCxzKTtmb3IobGV0IGMgb2YgbylsLmFkZChhKGMpKTtyZXR1cm4gbH1jYXNlIDc6e2xldHtuYW1lOmwsbWVzc2FnZTpjfT1vO3JldHVybiByKGVQdChsLGMpLHMpfWNhc2UgODpyZXR1cm4gcihCaWdJbnQobykscyk7Y2FzZSJCaWdJbnQiOnJldHVybiByKE9iamVjdChCaWdJbnQobykpLHMpO2Nhc2UiQXJyYXlCdWZmZXIiOnJldHVybiByKG5ldyBVaW50OEFycmF5KG8pLmJ1ZmZlcixvKTtjYXNlIkRhdGFWaWV3Ijp7bGV0e2J1ZmZlcjpsfT1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gcihuZXcgRGF0YVZpZXcobCksbyl9fXJldHVybiByKGVQdChuLG8pLHMpfSwidW5wYWlyIik7cmV0dXJuIGF9LCJkZXNlcmlhbGl6ZXIiKSxIMWU9aSh0PT5kNmEobmV3IE1hcCx0KSgwKSwiZGVzZXJpYWxpemUiKX0pO3ZhciB2eCx1NmEscDZhLEZNLHExZSxmNmEsVjFlLHJQdD11KCgpPT57X3llKCk7dng9IiIse3RvU3RyaW5nOnU2YX09e30se2tleXM6cDZhfT1PYmplY3QsRk09aSh0PT57bGV0IGU9dHlwZW9mIHQ7aWYoZSE9PSJvYmplY3QifHwhdClyZXR1cm5bMCxlXTtsZXQgcj11NmEuY2FsbCh0KS5zbGljZSg4LC0xKTtzd2l0Y2gocil7Y2FzZSJBcnJheSI6cmV0dXJuWzEsdnhdO2Nhc2UiT2JqZWN0IjpyZXR1cm5bMix2eF07Y2FzZSJEYXRlIjpyZXR1cm5bMyx2eF07Y2FzZSJSZWdFeHAiOnJldHVybls0LHZ4XTtjYXNlIk1hcCI6cmV0dXJuWzUsdnhdO2Nhc2UiU2V0IjpyZXR1cm5bNix2eF07Y2FzZSJEYXRhVmlldyI6cmV0dXJuWzEscl19cmV0dXJuIHIuaW5jbHVkZXMoIkFycmF5Iik/WzEscl06ci5pbmNsdWRlcygiRXJyb3IiKT9bNyxyXTpbMixyXX0sInR5cGVPZiIpLHExZT1pKChbdCxlXSk9PnQ9PT0wJiYoZT09PSJmdW5jdGlvbiJ8fGU9PT0ic3ltYm9sIiksInNob3VsZFNraXAiKSxmNmE9aSgodCxlLHIsYSk9PntsZXQgcz1pKChvLGwpPT57bGV0IGM9YS5wdXNoKG8pLTE7cmV0dXJuIHIuc2V0KGwsYyksY30sImFzIiksbj1pKG89PntpZihyLmhhcyhvKSlyZXR1cm4gci5nZXQobyk7bGV0W2wsY109Rk0obyk7c3dpdGNoKGwpe2Nhc2UgMDp7bGV0IGY9bztzd2l0Y2goYyl7Y2FzZSJiaWdpbnQiOmw9OCxmPW8udG9TdHJpbmcoKTticmVhaztjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6aWYodCl0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmFibGUgdG8gc2VyaWFsaXplICIrYyk7Zj1udWxsO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4gcyhbLTFdLG8pfXJldHVybiBzKFtsLGZdLG8pfWNhc2UgMTp7aWYoYyl7bGV0IGg9bztyZXR1cm4gYz09PSJEYXRhVmlldyI/aD1uZXcgVWludDhBcnJheShvLmJ1ZmZlcik6Yz09PSJBcnJheUJ1ZmZlciImJihoPW5ldyBVaW50OEFycmF5KG8pKSxzKFtjLFsuLi5oXV0sbyl9bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXQgaCBvZiBvKWYucHVzaChuKGgpKTtyZXR1cm4gcH1jYXNlIDI6e2lmKGMpc3dpdGNoKGMpe2Nhc2UiQmlnSW50IjpyZXR1cm4gcyhbYyxvLnRvU3RyaW5nKCldLG8pO2Nhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjpyZXR1cm4gcyhbYyxvLnZhbHVlT2YoKV0sbyl9aWYoZSYmInRvSlNPTiJpbiBvKXJldHVybiBuKG8udG9KU09OKCkpO2xldCBmPVtdLHA9cyhbbCxmXSxvKTtmb3IobGV0IGggb2YgcDZhKG8pKSh0fHwhcTFlKEZNKG9baF0pKSkmJmYucHVzaChbbihoKSxuKG9baF0pXSk7cmV0dXJuIHB9Y2FzZSAzOnJldHVybiBzKFtsLG8udG9JU09TdHJpbmcoKV0sbyk7Y2FzZSA0OntsZXR7c291cmNlOmYsZmxhZ3M6cH09bztyZXR1cm4gcyhbbCx7c291cmNlOmYsZmxhZ3M6cH1dLG8pfWNhc2UgNTp7bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXRbaCxtXW9mIG8pKHR8fCEocTFlKEZNKGgpKXx8cTFlKEZNKG0pKSkpJiZmLnB1c2goW24oaCksbihtKV0pO3JldHVybiBwfWNhc2UgNjp7bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXQgaCBvZiBvKSh0fHwhcTFlKEZNKGgpKSkmJmYucHVzaChuKGgpKTtyZXR1cm4gcH19bGV0e21lc3NhZ2U6ZH09bztyZXR1cm4gcyhbbCx7bmFtZTpjLG1lc3NhZ2U6ZH1dLG8pfSwicGFpciIpO3JldHVybiBufSwic2VyaWFsaXplciIpLFYxZT1pKCh0LHtqc29uOmUsbG9zc3k6cn09e30pPT57bGV0IGE9W107cmV0dXJuIGY2YSghKGV8fHIpLCEhZSxuZXcgTWFwLGEpKHQpLGF9LCJzZXJpYWxpemUiKX0pO3ZhciBBdSxqMWU9dSgoKT0+e3RQdCgpO3JQdCgpO0F1PXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KHQsZSk9PmUmJigianNvbiJpbiBlfHwibG9zc3kiaW4gZSk/SDFlKFYxZSh0LGUpKTpzdHJ1Y3R1cmVkQ2xvbmUodCk6KHQsZSk9PkgxZShWMWUodCxlKSl9KTtmdW5jdGlvbiBhUHQodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyKXtsZXQgYT1yJiZyLnBvc2l0aW9uJiZyLnBvc2l0aW9uW3RdfHx7fTtpZih0eXBlb2YgYS5saW5lPT0ibnVtYmVyIiYmYS5saW5lPjAmJnR5cGVvZiBhLmNvbHVtbj09Im51bWJlciImJmEuY29sdW1uPjApcmV0dXJue2xpbmU6YS5saW5lLGNvbHVtbjphLmNvbHVtbixvZmZzZXQ6dHlwZW9mIGEub2Zmc2V0PT0ibnVtYmVyIiYmYS5vZmZzZXQ+LTE/YS5vZmZzZXQ6dm9pZCAwfX19ZnVuY3Rpb24gQk0odCl7bGV0IGU9VzFlKHQpLHI9VTFlKHQpO2lmKGUmJnIpcmV0dXJue3N0YXJ0OmUsZW5kOnJ9fXZhciBVMWUsVzFlLGlQdD11KCgpPT57VTFlPWFQdCgiZW5kIiksVzFlPWFQdCgic3RhcnQiKTtpKGFQdCwicG9pbnQiKTtpKEJNLCJwb3NpdGlvbiIpfSk7dmFyIEcxZT11KCgpPT57aVB0KCl9KTt2YXIgRGgsWTFlLCR5ZT11KCgpPT57RGg9WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSJdLFkxZT17YW5jZXN0b3JzOnt0Ym9keTpbInRhYmxlIl0sdGQ6WyJ0YWJsZSJdLHRoOlsidGFibGUiXSx0aGVhZDpbInRhYmxlIl0sdGZvb3Q6WyJ0YWJsZSJdLHRyOlsidGFibGUiXX0sYXR0cmlidXRlczp7YTpbLi4uRGgsImRhdGFGb290bm90ZUJhY2tyZWYiLCJkYXRhRm9vdG5vdGVSZWYiLFsiY2xhc3NOYW1lIiwiZGF0YS1mb290bm90ZS1iYWNrcmVmIl0sImhyZWYiXSxibG9ja3F1b3RlOlsiY2l0ZSJdLGNvZGU6W1siY2xhc3NOYW1lIiwvXmxhbmd1YWdlLS4vXV0sZGVsOlsiY2l0ZSJdLGRpdjpbIml0ZW1TY29wZSIsIml0ZW1UeXBlIl0sZGw6Wy4uLkRoXSxoMjpbWyJjbGFzc05hbWUiLCJzci1vbmx5Il1dLGltZzpbLi4uRGgsImxvbmdEZXNjIiwic3JjIl0saW5wdXQ6W1siZGlzYWJsZWQiLCEwXSxbInR5cGUiLCJjaGVja2JveCJdXSxpbnM6WyJjaXRlIl0sbGk6W1siY2xhc3NOYW1lIiwidGFzay1saXN0LWl0ZW0iXV0sb2w6Wy4uLkRoLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLHE6WyJjaXRlIl0sc2VjdGlvbjpbImRhdGFGb290bm90ZXMiLFsiY2xhc3NOYW1lIiwiZm9vdG5vdGVzIl1dLHNvdXJjZTpbInNyY1NldCJdLHN1bW1hcnk6Wy4uLkRoXSx0YWJsZTpbLi4uRGhdLHVsOlsuLi5EaCxbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSwiKiI6WyJhYmJyIiwiYWNjZXB0IiwiYWNjZXB0Q2hhcnNldCIsImFjY2Vzc0tleSIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXhpcyIsImJvcmRlciIsImNlbGxQYWRkaW5nIiwiY2VsbFNwYWNpbmciLCJjaGFyIiwiY2hhck9mZiIsImNoYXJTZXQiLCJjaGVja2VkIiwiY2xlYXIiLCJjb2xTcGFuIiwiY29sb3IiLCJjb2xzIiwiY29tcGFjdCIsImNvb3JkcyIsImRhdGVUaW1lIiwiZGlyIiwiZW5jVHlwZSIsImZyYW1lIiwiaFNwYWNlIiwiaGVhZGVycyIsImhlaWdodCIsImhyZWZMYW5nIiwiaHRtbEZvciIsImlkIiwiaXNNYXAiLCJpdGVtUHJvcCIsImxhYmVsIiwibGFuZyIsIm1heExlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibXVsdGlwbGUiLCJuYW1lIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9wZW4iLCJwcm9tcHQiLCJyZWFkT25seSIsInJldiIsInJvd1NwYW4iLCJyb3dzIiwicnVsZXMiLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic3BhbiIsInN0YXJ0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidGl0bGUiLCJ1c2VNYXAiLCJ2QWxpZ24iLCJ2YWx1ZSIsIndpZHRoIl19LGNsb2JiZXI6WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwibmFtZSJdLGNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHByb3RvY29sczp7Y2l0ZTpbImh0dHAiLCJodHRwcyJdLGhyZWY6WyJodHRwIiwiaHR0cHMiLCJpcmMiLCJpcmNzIiwibWFpbHRvIiwieG1wcCJdLGxvbmdEZXNjOlsiaHR0cCIsImh0dHBzIl0sc3JjOlsiaHR0cCIsImh0dHBzIl19LHJlcXVpcmVkOntpbnB1dDp7ZGlzYWJsZWQ6ITAsdHlwZToiY2hlY2tib3gifX0sc3RyaXA6WyJzY3JpcHQiXSx0YWdOYW1lczpbImEiLCJiIiwiYmxvY2txdW90ZSIsImJyIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGkiLCJvbCIsInAiLCJwaWN0dXJlIiwicHJlIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic291cmNlIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidWwiLCJ2YXIiXX19KTtmdW5jdGlvbiBBeWUodCxlKXtsZXQgcj17dHlwZToicm9vdCIsY2hpbGRyZW46W119LGE9e3NjaGVtYTplP3suLi5ZMWUsLi4uZX06WTFlLHN0YWNrOltdfSxzPXNQdChhLHQpO3JldHVybiBzJiYoQXJyYXkuaXNBcnJheShzKT9zLmxlbmd0aD09PTE/cj1zWzBdOnIuY2hpbGRyZW49czpyPXMpLHJ9ZnVuY3Rpb24gc1B0KHQsZSl7aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QiKXtsZXQgcj1lO3N3aXRjaCh0eXBlb2Ygci50eXBlPT0ic3RyaW5nIj9yLnR5cGU6IiIpe2Nhc2UiY29tbWVudCI6cmV0dXJuIGg2YSh0LHIpO2Nhc2UiZG9jdHlwZSI6cmV0dXJuIG02YSh0LHIpO2Nhc2UiZWxlbWVudCI6cmV0dXJuIGc2YSh0LHIpO2Nhc2Uicm9vdCI6cmV0dXJuIGI2YSh0LHIpO2Nhc2UidGV4dCI6cmV0dXJuIHg2YSh0LHIpO2RlZmF1bHQ6fX19ZnVuY3Rpb24gaDZhKHQsZSl7aWYodC5zY2hlbWEuYWxsb3dDb21tZW50cyl7bGV0IHI9dHlwZW9mIGUudmFsdWU9PSJzdHJpbmciP2UudmFsdWU6IiIsYT1yLmluZGV4T2YoIi0tPiIpLG49e3R5cGU6ImNvbW1lbnQiLHZhbHVlOmE8MD9yOnIuc2xpY2UoMCxhKX07cmV0dXJuIEhNKG4sZSksbn19ZnVuY3Rpb24gbTZhKHQsZSl7aWYodC5zY2hlbWEuYWxsb3dEb2N0eXBlcyl7bGV0IHI9e3R5cGU6ImRvY3R5cGUifTtyZXR1cm4gSE0ocixlKSxyfX1mdW5jdGlvbiBnNmEodCxlKXtsZXQgcj10eXBlb2YgZS50YWdOYW1lPT0ic3RyaW5nIj9lLnRhZ05hbWU6IiI7dC5zdGFjay5wdXNoKHIpO2xldCBhPW5QdCh0LGUuY2hpbGRyZW4pLHM9djZhKHQsZS5wcm9wZXJ0aWVzKTt0LnN0YWNrLnBvcCgpO2xldCBuPSExO2lmKHImJnIhPT0iKiImJighdC5zY2hlbWEudGFnTmFtZXN8fHQuc2NoZW1hLnRhZ05hbWVzLmluY2x1ZGVzKHIpKSYmKG49ITAsdC5zY2hlbWEuYW5jZXN0b3JzJiZFdS5jYWxsKHQuc2NoZW1hLmFuY2VzdG9ycyxyKSkpe2xldCBsPXQuc2NoZW1hLmFuY2VzdG9yc1tyXSxjPS0xO2ZvcihuPSExOysrYzxsLmxlbmd0aDspdC5zdGFjay5pbmNsdWRlcyhsW2NdKSYmKG49ITApfWlmKCFuKXJldHVybiB0LnNjaGVtYS5zdHJpcCYmIXQuc2NoZW1hLnN0cmlwLmluY2x1ZGVzKHIpP2E6dm9pZCAwO2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnIscHJvcGVydGllczpzLGNoaWxkcmVuOmF9O3JldHVybiBITShvLGUpLG99ZnVuY3Rpb24gYjZhKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOm5QdCh0LGUuY2hpbGRyZW4pfTtyZXR1cm4gSE0oYSxlKSxhfWZ1bmN0aW9uIHg2YSh0LGUpe2xldCBhPXt0eXBlOiJ0ZXh0Iix2YWx1ZTp0eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIn07cmV0dXJuIEhNKGEsZSksYX1mdW5jdGlvbiBuUHQodCxlKXtsZXQgcj1bXTtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1lLHM9LTE7Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbj1zUHQodCxhW3NdKTtuJiYoQXJyYXkuaXNBcnJheShuKT9yLnB1c2goLi4ubik6ci5wdXNoKG4pKX19cmV0dXJuIHJ9ZnVuY3Rpb24gdjZhKHQsZSl7bGV0IHI9dC5zdGFja1t0LnN0YWNrLmxlbmd0aC0xXSxhPXQuc2NoZW1hLmF0dHJpYnV0ZXMscz10LnNjaGVtYS5yZXF1aXJlZCxuPWEmJkV1LmNhbGwoYSxyKT9hW3JdOnZvaWQgMCxvPWEmJkV1LmNhbGwoYSwiKiIpP2FbIioiXTp2b2lkIDAsbD1lJiZ0eXBlb2YgZT09Im9iamVjdCI/ZTp7fSxjPXt9LGQ7Zm9yKGQgaW4gbClpZihFdS5jYWxsKGwsZCkpe2xldCBmPWxbZF0scD1vUHQodCxjUHQobixkKSxkLGYpO3A9PW51bGwmJihwPW9QdCh0LGNQdChvLGQpLGQsZikpLHAhPW51bGwmJihjW2RdPXApfWlmKHMmJkV1LmNhbGwocyxyKSl7bGV0IGY9c1tyXTtmb3IoZCBpbiBmKUV1LmNhbGwoZixkKSYmIUV1LmNhbGwoYyxkKSYmKGNbZF09ZltkXSl9cmV0dXJuIGN9ZnVuY3Rpb24gb1B0KHQsZSxyLGEpe3JldHVybiBlP0FycmF5LmlzQXJyYXkoYSk/eTZhKHQsZSxyLGEpOmxQdCh0LGUscixhKTp2b2lkIDB9ZnVuY3Rpb24geTZhKHQsZSxyLGEpe2xldCBzPS0xLG49W107Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbz1sUHQodCxlLHIsYVtzXSk7KHR5cGVvZiBvPT0ibnVtYmVyInx8dHlwZW9mIG89PSJzdHJpbmciKSYmbi5wdXNoKG8pfXJldHVybiBufWZ1bmN0aW9uIGxQdCh0LGUscixhKXtpZighKHR5cGVvZiBhIT0iYm9vbGVhbiImJnR5cGVvZiBhIT0ibnVtYmVyIiYmdHlwZW9mIGEhPSJzdHJpbmciKSYmdzZhKHQscixhKSl7aWYodHlwZW9mIGU9PSJvYmplY3QiJiZlLmxlbmd0aD4xKXtsZXQgcz0hMSxuPTA7Zm9yKDsrK248ZS5sZW5ndGg7KXtsZXQgbz1lW25dO2lmKG8mJnR5cGVvZiBvPT0ib2JqZWN0IiYmImZsYWdzImluIG8pe2lmKG8udGVzdChTdHJpbmcoYSkpKXtzPSEwO2JyZWFrfX1lbHNlIGlmKG89PT1hKXtzPSEwO2JyZWFrfX1pZighcylyZXR1cm59cmV0dXJuIHQuc2NoZW1hLmNsb2JiZXImJnQuc2NoZW1hLmNsb2JiZXJQcmVmaXgmJnQuc2NoZW1hLmNsb2JiZXIuaW5jbHVkZXMocik/dC5zY2hlbWEuY2xvYmJlclByZWZpeCthOmF9fWZ1bmN0aW9uIHc2YSh0LGUscil7bGV0IGE9dC5zY2hlbWEucHJvdG9jb2xzJiZFdS5jYWxsKHQuc2NoZW1hLnByb3RvY29scyxlKT90LnNjaGVtYS5wcm90b2NvbHNbZV06dm9pZCAwO2lmKCFhfHxhLmxlbmd0aD09PTApcmV0dXJuITA7bGV0IHM9U3RyaW5nKHIpLG49cy5pbmRleE9mKCI6Iiksbz1zLmluZGV4T2YoIj8iKSxsPXMuaW5kZXhPZigiIyIpLGM9cy5pbmRleE9mKCIvIik7aWYobjwwfHxjPi0xJiZuPmN8fG8+LTEmJm4+b3x8bD4tMSYmbj5sKXJldHVybiEwO2xldCBkPS0xO2Zvcig7KytkPGEubGVuZ3RoOyl7bGV0IGY9YVtkXTtpZihuPT09Zi5sZW5ndGgmJnMuc2xpY2UoMCxmLmxlbmd0aCk9PT1mKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIEhNKHQsZSl7bGV0IHI9Qk0oZSk7ZS5kYXRhJiYodC5kYXRhPUF1KGUuZGF0YSkpLHImJih0LnBvc2l0aW9uPXIpfWZ1bmN0aW9uIGNQdCh0LGUpe2xldCByLGE9LTE7aWYodClmb3IoOysrYTx0Lmxlbmd0aDspe2xldCBzPXRbYV0sbj10eXBlb2Ygcz09InN0cmluZyI/czpzWzBdO2lmKG49PT1lKXJldHVybiBzO249PT0iZGF0YSoiJiYocj1zKX1pZihlLmxlbmd0aD40JiZlLnNsaWNlKDAsNCkudG9Mb3dlckNhc2UoKT09PSJkYXRhIilyZXR1cm4gcn12YXIgRXUsZFB0PXUoKCk9PntqMWUoKTtHMWUoKTskeWUoKTtFdT17fS5oYXNPd25Qcm9wZXJ0eTtpKEF5ZSwic2FuaXRpemUiKTtpKHNQdCwidHJhbnNmb3JtIik7aShoNmEsImNvbW1lbnQiKTtpKG02YSwiZG9jdHlwZSIpO2koZzZhLCJlbGVtZW50Iik7aShiNmEsInJvb3QiKTtpKHg2YSwidGV4dCIpO2koblB0LCJjaGlsZHJlbiIpO2kodjZhLCJwcm9wZXJ0aWVzIik7aShvUHQsInByb3BlcnR5VmFsdWUiKTtpKHk2YSwicHJvcGVydHlWYWx1ZU1hbnkiKTtpKGxQdCwicHJvcGVydHlWYWx1ZVByaW1pdGl2ZSIpO2kodzZhLCJzYWZlUHJvdG9jb2wiKTtpKEhNLCJwYXRjaCIpO2koY1B0LCJmaW5kRGVmaW5pdGlvbiIpfSk7dmFyIHVQdD11KCgpPT57ZFB0KCk7JHllKCl9KTtmdW5jdGlvbiBwUHQodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAodC5hbGwoZSksITApfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIGZQdD11KCgpPT57aShwUHQsImJsb2NrcXVvdGUiKX0pO2Z1bmN0aW9uIGhQdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJiciIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxyKSxbdC5hcHBseURhdGEoZSxyKSx7dHlwZToidGV4dCIsdmFsdWU6YApgfV19dmFyIG1QdD11KCgpPT57aShoUHQsImhhcmRCcmVhayIpfSk7ZnVuY3Rpb24gZ1B0KHQsZSl7bGV0IHI9ZS52YWx1ZT9lLnZhbHVlK2AKYDoiIixhPXt9LHM9ZS5sYW5nP2UubGFuZy5zcGxpdCgvXHMrLyk6W107cy5sZW5ndGg+MCYmKGEuY2xhc3NOYW1lPVsibGFuZ3VhZ2UtIitzWzBdXSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnJ9XX07cmV0dXJuIGUubWV0YSYmKG4uZGF0YT17bWV0YTplLm1ldGF9KSx0LnBhdGNoKGUsbiksbj10LmFwcGx5RGF0YShlLG4pLG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InByZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbbl19LHQucGF0Y2goZSxuKSxufXZhciBiUHQ9dSgoKT0+e2koZ1B0LCJjb2RlIil9KTtmdW5jdGlvbiB4UHQodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGVsIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIHZQdD11KCgpPT57aSh4UHQsInN0cmlrZXRocm91Z2giKX0pO2Z1bmN0aW9uIHlQdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciB3UHQ9dSgoKT0+e2koeVB0LCJlbXBoYXNpcyIpfSk7ZnVuY3Rpb24ga1B0KHQsZSl7bGV0IHI9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIsYT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLHM9RzEoYS50b0xvd2VyQ2FzZSgpKSxuPXQuZm9vdG5vdGVPcmRlci5pbmRleE9mKGEpLG8sbD10LmZvb3Rub3RlQ291bnRzLmdldChhKTtsPT09dm9pZCAwPyhsPTAsdC5mb290bm90ZU9yZGVyLnB1c2goYSksbz10LmZvb3Rub3RlT3JkZXIubGVuZ3RoKTpvPW4rMSxsKz0xLHQuZm9vdG5vdGVDb3VudHMuc2V0KGEsbCk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK3IrImZuLSIrcyxpZDpyKyJmbnJlZi0iK3MrKGw+MT8iLSIrbDoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKG8pfV19O3QucGF0Y2goZSxjKTtsZXQgZD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltjXX07cmV0dXJuIHQucGF0Y2goZSxkKSx0LmFwcGx5RGF0YShlLGQpfXZhciBTUHQ9dSgoKT0+e3YwKCk7aShrUHQsImZvb3Rub3RlUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBNUHQodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrZS5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIENQdD11KCgpPT57aShNUHQsImhlYWRpbmciKX0pO2Z1bmN0aW9uIHpQdCh0LGUpe2lmKHQub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCByPXt0eXBlOiJyYXciLHZhbHVlOmUudmFsdWV9O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX19dmFyIF9QdD11KCgpPT57aSh6UHQsImh0bWwiKX0pO2Z1bmN0aW9uIEsxZSh0LGUpe2xldCByPWUucmVmZXJlbmNlVHlwZSxhPSJdIjtpZihyPT09ImNvbGxhcHNlZCI/YSs9IltdIjpyPT09ImZ1bGwiJiYoYSs9IlsiKyhlLmxhYmVsfHxlLmlkZW50aWZpZXIpKyJdIiksZS50eXBlPT09ImltYWdlUmVmZXJlbmNlIilyZXR1cm5be3R5cGU6InRleHQiLHZhbHVlOiIhWyIrZS5hbHQrYX1dO2xldCBzPXQuYWxsKGUpLG49c1swXTtuJiZuLnR5cGU9PT0idGV4dCI/bi52YWx1ZT0iWyIrbi52YWx1ZTpzLnVuc2hpZnQoe3R5cGU6InRleHQiLHZhbHVlOiJbIn0pO2xldCBvPXNbcy5sZW5ndGgtMV07cmV0dXJuIG8mJm8udHlwZT09PSJ0ZXh0Ij9vLnZhbHVlKz1hOnMucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YX0pLHN9dmFyIEV5ZT11KCgpPT57aShLMWUsInJldmVydCIpfSk7ZnVuY3Rpb24gVFB0KHQsZSl7bGV0IHI9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPXQuZGVmaW5pdGlvbkJ5SWQuZ2V0KHIpO2lmKCFhKXJldHVybiBLMWUodCxlKTtsZXQgcz17c3JjOkcxKGEudXJsfHwiIiksYWx0OmUuYWx0fTthLnRpdGxlIT09bnVsbCYmYS50aXRsZSE9PXZvaWQgMCYmKHMudGl0bGU9YS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczpzLGNoaWxkcmVuOltdfTtyZXR1cm4gdC5wYXRjaChlLG4pLHQuYXBwbHlEYXRhKGUsbil9dmFyIExQdD11KCgpPT57djAoKTtFeWUoKTtpKFRQdCwiaW1hZ2VSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIERQdCh0LGUpe2xldCByPXtzcmM6RzEoZS51cmwpfTtlLmFsdCE9PW51bGwmJmUuYWx0IT09dm9pZCAwJiYoci5hbHQ9ZS5hbHQpLGUudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1lLnRpdGxlKTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgJFB0PXUoKCk9Pnt2MCgpO2koRFB0LCJpbWFnZSIpfSk7ZnVuY3Rpb24gQVB0KHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTt0LnBhdGNoKGUscik7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3JdfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIEVQdD11KCgpPT57aShBUHQsImlubGluZUNvZGUiKX0pO2Z1bmN0aW9uIElQdCh0LGUpe2xldCByPVN0cmluZyhlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksYT10LmRlZmluaXRpb25CeUlkLmdldChyKTtpZighYSlyZXR1cm4gSzFlKHQsZSk7bGV0IHM9e2hyZWY6RzEoYS51cmx8fCIiKX07YS50aXRsZSE9PW51bGwmJmEudGl0bGUhPT12b2lkIDAmJihzLnRpdGxlPWEudGl0bGUpO2xldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnMsY2hpbGRyZW46dC5hbGwoZSl9O3JldHVybiB0LnBhdGNoKGUsbiksdC5hcHBseURhdGEoZSxuKX12YXIgUFB0PXUoKCk9Pnt2MCgpO0V5ZSgpO2koSVB0LCJsaW5rUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBOUHQodCxlKXtsZXQgcj17aHJlZjpHMShlLnVybCl9O2UudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1lLnRpdGxlKTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczpyLGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIE9QdD11KCgpPT57djAoKTtpKE5QdCwibGluayIpfSk7ZnVuY3Rpb24gRlB0KHQsZSxyKXtsZXQgYT10LmFsbChlKSxzPXI/azZhKHIpOlJQdChlKSxuPXt9LG89W107aWYodHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgZj1hWzBdLHA7ZiYmZi50eXBlPT09ImVsZW1lbnQiJiZmLnRhZ05hbWU9PT0icCI/cD1mOihwPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxhLnVuc2hpZnQocCkpLHAuY2hpbGRyZW4ubGVuZ3RoPjAmJnAuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSkscC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6ZS5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLG4uY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgbD0tMTtmb3IoOysrbDxhLmxlbmd0aDspe2xldCBmPWFbbF07KHN8fGwhPT0wfHxmLnR5cGUhPT0iZWxlbWVudCJ8fGYudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksZi50eXBlPT09ImVsZW1lbnQiJiZmLnRhZ05hbWU9PT0icCImJiFzP28ucHVzaCguLi5mLmNoaWxkcmVuKTpvLnB1c2goZil9bGV0IGM9YVthLmxlbmd0aC0xXTtjJiYoc3x8Yy50eXBlIT09ImVsZW1lbnQifHxjLnRhZ05hbWUhPT0icCIpJiZvLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2xldCBkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczpuLGNoaWxkcmVuOm99O3JldHVybiB0LnBhdGNoKGUsZCksdC5hcHBseURhdGEoZSxkKX1mdW5jdGlvbiBrNmEodCl7bGV0IGU9ITE7aWYodC50eXBlPT09Imxpc3QiKXtlPXQuc3ByZWFkfHwhMTtsZXQgcj10LmNoaWxkcmVuLGE9LTE7Zm9yKDshZSYmKythPHIubGVuZ3RoOyllPVJQdChyW2FdKX1yZXR1cm4gZX1mdW5jdGlvbiBSUHQodCl7bGV0IGU9dC5zcHJlYWQ7cmV0dXJuIGU/P3QuY2hpbGRyZW4ubGVuZ3RoPjF9dmFyIEJQdD11KCgpPT57aShGUHQsImxpc3RJdGVtIik7aShrNmEsImxpc3RMb29zZSIpO2koUlB0LCJsaXN0SXRlbUxvb3NlIil9KTtmdW5jdGlvbiBIUHQodCxlKXtsZXQgcj17fSxhPXQuYWxsKGUpLHM9LTE7Zm9yKHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydCE9PTEmJihyLnN0YXJ0PWUuc3RhcnQpOysrczxhLmxlbmd0aDspe2xldCBvPWFbc107aWYoby50eXBlPT09ImVsZW1lbnQiJiZvLnRhZ05hbWU9PT0ibGkiJiZvLnByb3BlcnRpZXMmJkFycmF5LmlzQXJyYXkoby5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkmJm8ucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoInRhc2stbGlzdC1pdGVtIikpe3IuY2xhc3NOYW1lPVsiY29udGFpbnMtdGFzay1saXN0Il07YnJlYWt9fWxldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmUub3JkZXJlZD8ib2wiOiJ1bCIscHJvcGVydGllczpyLGNoaWxkcmVuOnQud3JhcChhLCEwKX07cmV0dXJuIHQucGF0Y2goZSxuKSx0LmFwcGx5RGF0YShlLG4pfXZhciBxUHQ9dSgoKT0+e2koSFB0LCJsaXN0Iil9KTtmdW5jdGlvbiBWUHQodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBqUHQ9dSgoKT0+e2koVlB0LCJwYXJhZ3JhcGgiKX0pO2Z1bmN0aW9uIFVQdCh0LGUpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjp0LndyYXAodC5hbGwoZSkpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIFdQdD11KCgpPT57aShVUHQsInJvb3QiKX0pO2Z1bmN0aW9uIEdQdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdHJvbmciLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC5hbGwoZSl9O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX12YXIgWVB0PXUoKCk9PntpKEdQdCwic3Ryb25nIil9KTtmdW5jdGlvbiBLUHQodCxlKXtsZXQgcj10LmFsbChlKSxhPXIuc2hpZnQoKSxzPVtdO2lmKGEpe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0aGVhZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoW2FdLCEwKX07dC5wYXRjaChlLmNoaWxkcmVuWzBdLG8pLHMucHVzaChvKX1pZihyLmxlbmd0aD4wKXtsZXQgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGJvZHkiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKHIsITApfSxsPVcxZShlLmNoaWxkcmVuWzFdKSxjPVUxZShlLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKTtsJiZjJiYoby5wb3NpdGlvbj17c3RhcnQ6bCxlbmQ6Y30pLHMucHVzaChvKX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKHMsITApfTtyZXR1cm4gdC5wYXRjaChlLG4pLHQuYXBwbHlEYXRhKGUsbil9dmFyIFpQdD11KCgpPT57RzFlKCk7aShLUHQsInRhYmxlIil9KTtmdW5jdGlvbiBRUHQodCxlLHIpe2xldCBhPXI/ci5jaGlsZHJlbjp2b2lkIDAsbj0oYT9hLmluZGV4T2YoZSk6MSk9PT0wPyJ0aCI6InRkIixvPXImJnIudHlwZT09PSJ0YWJsZSI/ci5hbGlnbjp2b2lkIDAsbD1vP28ubGVuZ3RoOmUuY2hpbGRyZW4ubGVuZ3RoLGM9LTEsZD1bXTtmb3IoOysrYzxsOyl7bGV0IHA9ZS5jaGlsZHJlbltjXSxoPXt9LG09bz9vW2NdOnZvaWQgMDttJiYoaC5hbGlnbj1tKTtsZXQgdj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTpuLHByb3BlcnRpZXM6aCxjaGlsZHJlbjpbXX07cCYmKHYuY2hpbGRyZW49dC5hbGwocCksdC5wYXRjaChwLHYpLHY9dC5hcHBseURhdGEocCx2KSksZC5wdXNoKHYpfWxldCBmPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ciIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoZCwhMCl9O3JldHVybiB0LnBhdGNoKGUsZiksdC5hcHBseURhdGEoZSxmKX12YXIgWFB0PXUoKCk9PntpKFFQdCwidGFibGVSb3ciKX0pO2Z1bmN0aW9uIEpQdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBlTnQ9dSgoKT0+e2koSlB0LCJ0YWJsZUNlbGwiKX0pO2Z1bmN0aW9uIHJOdCh0KXtsZXQgZT1TdHJpbmcodCkscj0vXHI/XG58XHIvZyxhPXIuZXhlYyhlKSxzPTAsbj1bXTtmb3IoO2E7KW4ucHVzaCh0TnQoZS5zbGljZShzLGEuaW5kZXgpLHM+MCwhMCksYVswXSkscz1hLmluZGV4K2FbMF0ubGVuZ3RoLGE9ci5leGVjKGUpO3JldHVybiBuLnB1c2godE50KGUuc2xpY2Uocykscz4wLCExKSksbi5qb2luKCIiKX1mdW5jdGlvbiB0TnQodCxlLHIpe2xldCBhPTAscz10Lmxlbmd0aDtpZihlKXtsZXQgbj10LmNvZGVQb2ludEF0KGEpO2Zvcig7bj09PTl8fG49PT0zMjspYSsrLG49dC5jb2RlUG9pbnRBdChhKX1pZihyKXtsZXQgbj10LmNvZGVQb2ludEF0KHMtMSk7Zm9yKDtuPT09OXx8bj09PTMyOylzLS0sbj10LmNvZGVQb2ludEF0KHMtMSl9cmV0dXJuIHM+YT90LnNsaWNlKGEscyk6IiJ9dmFyIFVycyxXcnMsYU50PXUoKCk9PntVcnM9OSxXcnM9MzI7aShyTnQsInRyaW1MaW5lcyIpO2kodE50LCJ0cmltTGluZSIpfSk7ZnVuY3Rpb24gaU50KHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOnJOdChTdHJpbmcoZS52YWx1ZSkpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIHNOdD11KCgpPT57YU50KCk7aShpTnQsInRleHQiKX0pO2Z1bmN0aW9uIG5OdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBvTnQ9dSgoKT0+e2kobk50LCJ0aGVtYXRpY0JyZWFrIil9KTtmdW5jdGlvbiBaMWUoKXt9dmFyIEl5ZSxQeWU9dSgoKT0+e2ZQdCgpO21QdCgpO2JQdCgpO3ZQdCgpO3dQdCgpO1NQdCgpO0NQdCgpO19QdCgpO0xQdCgpOyRQdCgpO0VQdCgpO1BQdCgpO09QdCgpO0JQdCgpO3FQdCgpO2pQdCgpO1dQdCgpO1lQdCgpO1pQdCgpO1hQdCgpO2VOdCgpO3NOdCgpO29OdCgpO0l5ZT17YmxvY2txdW90ZTpwUHQsYnJlYWs6aFB0LGNvZGU6Z1B0LGRlbGV0ZTp4UHQsZW1waGFzaXM6eVB0LGZvb3Rub3RlUmVmZXJlbmNlOmtQdCxoZWFkaW5nOk1QdCxodG1sOnpQdCxpbWFnZVJlZmVyZW5jZTpUUHQsaW1hZ2U6RFB0LGlubGluZUNvZGU6QVB0LGxpbmtSZWZlcmVuY2U6SVB0LGxpbms6TlB0LGxpc3RJdGVtOkZQdCxsaXN0OkhQdCxwYXJhZ3JhcGg6VlB0LHJvb3Q6VVB0LHN0cm9uZzpHUHQsdGFibGU6S1B0LHRhYmxlQ2VsbDpKUHQsdGFibGVSb3c6UVB0LHRleHQ6aU50LHRoZW1hdGljQnJlYWs6bk50LHRvbWw6WjFlLHlhbWw6WjFlLGRlZmluaXRpb246WjFlLGZvb3Rub3RlRGVmaW5pdGlvbjpaMWV9O2koWjFlLCJpZ25vcmUiKX0pO2Z1bmN0aW9uIGxOdCh0LGUpe2xldCByPVt7dHlwZToidGV4dCIsdmFsdWU6Ilx1MjFBOSJ9XTtyZXR1cm4gZT4xJiZyLnB1c2goe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN1cCIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhlKX1dfSkscn1mdW5jdGlvbiBjTnQodCxlKXtyZXR1cm4iQmFjayB0byByZWZlcmVuY2UgIisodCsxKSsoZT4xPyItIitlOiIiKX1mdW5jdGlvbiBkTnQodCl7bGV0IGU9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscj10Lm9wdGlvbnMuZm9vdG5vdGVCYWNrQ29udGVudHx8bE50LGE9dC5vcHRpb25zLmZvb3Rub3RlQmFja0xhYmVsfHxjTnQscz10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbHx8IkZvb3Rub3RlcyIsbj10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbFRhZ05hbWV8fCJoMiIsbz10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbFByb3BlcnRpZXN8fHtjbGFzc05hbWU6WyJzci1vbmx5Il19LGw9W10sYz0tMTtmb3IoOysrYzx0LmZvb3Rub3RlT3JkZXIubGVuZ3RoOyl7bGV0IGQ9dC5mb290bm90ZUJ5SWQuZ2V0KHQuZm9vdG5vdGVPcmRlcltjXSk7aWYoIWQpY29udGludWU7bGV0IGY9dC5hbGwoZCkscD1TdHJpbmcoZC5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGg9RzEocC50b0xvd2VyQ2FzZSgpKSxtPTAsdj1bXSxiPXQuZm9vdG5vdGVDb3VudHMuZ2V0KHApO2Zvcig7YiE9PXZvaWQgMCYmKyttPD1iOyl7di5sZW5ndGg+MCYmdi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KTtsZXQgaz10eXBlb2Ygcj09InN0cmluZyI/cjpyKGMsbSk7dHlwZW9mIGs9PSJzdHJpbmciJiYoaz17dHlwZToidGV4dCIsdmFsdWU6a30pLHYucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczp7aHJlZjoiIyIrZSsiZm5yZWYtIitoKyhtPjE/Ii0iK206IiIpLGRhdGFGb290bm90ZUJhY2tyZWY6IiIsYXJpYUxhYmVsOnR5cGVvZiBhPT0ic3RyaW5nIj9hOmEoYyxtKSxjbGFzc05hbWU6WyJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXX0sY2hpbGRyZW46QXJyYXkuaXNBcnJheShrKT9rOltrXX0pfWxldCBnPWZbZi5sZW5ndGgtMV07aWYoZyYmZy50eXBlPT09ImVsZW1lbnQiJiZnLnRhZ05hbWU9PT0icCIpe2xldCBrPWcuY2hpbGRyZW5bZy5jaGlsZHJlbi5sZW5ndGgtMV07ayYmay50eXBlPT09InRleHQiP2sudmFsdWUrPSIgIjpnLmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pLGcuY2hpbGRyZW4ucHVzaCguLi52KX1lbHNlIGYucHVzaCguLi52KTtsZXQgeT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToibGkiLHByb3BlcnRpZXM6e2lkOmUrImZuLSIraH0sY2hpbGRyZW46dC53cmFwKGYsITApfTt0LnBhdGNoKGQseSksbC5wdXNoKHkpfWlmKGwubGVuZ3RoIT09MClyZXR1cm57dHlwZToiZWxlbWVudCIsdGFnTmFtZToic2VjdGlvbiIscHJvcGVydGllczp7ZGF0YUZvb3Rub3RlczohMCxjbGFzc05hbWU6WyJmb290bm90ZXMiXX0sY2hpbGRyZW46W3t0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczp7Li4uQXUobyksaWQ6ImZvb3Rub3RlLWxhYmVsIn0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpzfV19LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJvbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAobCwhMCl9LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX19dmFyIE55ZT11KCgpPT57ajFlKCk7djAoKTtpKGxOdCwiZGVmYXVsdEZvb3Rub3RlQmFja0NvbnRlbnQiKTtpKGNOdCwiZGVmYXVsdEZvb3Rub3RlQmFja0xhYmVsIik7aShkTnQsImZvb3RlciIpfSk7ZnVuY3Rpb24gcE50KHQsZSl7bGV0IHI9ZXx8UzZhLGE9bmV3IE1hcCxzPW5ldyBNYXAsbj1uZXcgTWFwLG89ey4uLkl5ZSwuLi5yLmhhbmRsZXJzfSxsPXthbGw6ZCxhcHBseURhdGE6QzZhLGRlZmluaXRpb25CeUlkOmEsZm9vdG5vdGVCeUlkOnMsZm9vdG5vdGVDb3VudHM6bixmb290bm90ZU9yZGVyOltdLGhhbmRsZXJzOm8sb25lOmMsb3B0aW9uczpyLHBhdGNoOk02YSx3cmFwOl82YX07cmV0dXJuIENNKHQsZnVuY3Rpb24oZil7aWYoZi50eXBlPT09ImRlZmluaXRpb24ifHxmLnR5cGU9PT0iZm9vdG5vdGVEZWZpbml0aW9uIil7bGV0IHA9Zi50eXBlPT09ImRlZmluaXRpb24iP2E6cyxoPVN0cmluZyhmLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCk7cC5oYXMoaCl8fHAuc2V0KGgsZil9fSksbDtmdW5jdGlvbiBjKGYscCl7bGV0IGg9Zi50eXBlLG09bC5oYW5kbGVyc1toXTtpZihPeWUuY2FsbChsLmhhbmRsZXJzLGgpJiZtKXJldHVybiBtKGwsZixwKTtpZihsLm9wdGlvbnMucGFzc1Rocm91Z2gmJmwub3B0aW9ucy5wYXNzVGhyb3VnaC5pbmNsdWRlcyhoKSl7aWYoImNoaWxkcmVuImluIGYpe2xldHtjaGlsZHJlbjpiLC4uLmd9PWYseT1BdShnKTtyZXR1cm4geS5jaGlsZHJlbj1sLmFsbChmKSx5fXJldHVybiBBdShmKX1yZXR1cm4obC5vcHRpb25zLnVua25vd25IYW5kbGVyfHx6NmEpKGwsZixwKX1pKGMsIm9uZSIpO2Z1bmN0aW9uIGQoZil7bGV0IHA9W107aWYoImNoaWxkcmVuImluIGYpe2xldCBoPWYuY2hpbGRyZW4sbT0tMTtmb3IoOysrbTxoLmxlbmd0aDspe2xldCB2PWwub25lKGhbbV0sZik7aWYodil7aWYobSYmaFttLTFdLnR5cGU9PT0iYnJlYWsiJiYoIUFycmF5LmlzQXJyYXkodikmJnYudHlwZT09PSJ0ZXh0IiYmKHYudmFsdWU9dU50KHYudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh2KSYmdi50eXBlPT09ImVsZW1lbnQiKSl7bGV0IGI9di5jaGlsZHJlblswXTtiJiZiLnR5cGU9PT0idGV4dCImJihiLnZhbHVlPXVOdChiLnZhbHVlKSl9QXJyYXkuaXNBcnJheSh2KT9wLnB1c2goLi4udik6cC5wdXNoKHYpfX19cmV0dXJuIHB9aShkLCJhbGwiKX1mdW5jdGlvbiBNNmEodCxlKXt0LnBvc2l0aW9uJiYoZS5wb3NpdGlvbj1CTSh0KSl9ZnVuY3Rpb24gQzZhKHQsZSl7bGV0IHI9ZTtpZih0JiZ0LmRhdGEpe2xldCBhPXQuZGF0YS5oTmFtZSxzPXQuZGF0YS5oQ2hpbGRyZW4sbj10LmRhdGEuaFByb3BlcnRpZXM7aWYodHlwZW9mIGE9PSJzdHJpbmciKWlmKHIudHlwZT09PSJlbGVtZW50IilyLnRhZ05hbWU9YTtlbHNle2xldCBvPSJjaGlsZHJlbiJpbiByP3IuY2hpbGRyZW46W3JdO3I9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6YSxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOm99fXIudHlwZT09PSJlbGVtZW50IiYmbiYmT2JqZWN0LmFzc2lnbihyLnByb3BlcnRpZXMsQXUobikpLCJjaGlsZHJlbiJpbiByJiZyLmNoaWxkcmVuJiZzIT09bnVsbCYmcyE9PXZvaWQgMCYmKHIuY2hpbGRyZW49cyl9cmV0dXJuIHJ9ZnVuY3Rpb24gejZhKHQsZSl7bGV0IHI9ZS5kYXRhfHx7fSxhPSJ2YWx1ZSJpbiBlJiYhKE95ZS5jYWxsKHIsImhQcm9wZXJ0aWVzIil8fE95ZS5jYWxsKHIsImhDaGlsZHJlbiIpKT97dHlwZToidGV4dCIsdmFsdWU6ZS52YWx1ZX06e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRpdiIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfWZ1bmN0aW9uIF82YSh0LGUpe2xldCByPVtdLGE9LTE7Zm9yKGUmJnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7KythPHQubGVuZ3RoOylhJiZyLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHIucHVzaCh0W2FdKTtyZXR1cm4gZSYmdC5sZW5ndGg+MCYmci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxyfWZ1bmN0aW9uIHVOdCh0KXtsZXQgZT0wLHI9dC5jaGFyQ29kZUF0KGUpO2Zvcig7cj09PTl8fHI9PT0zMjspZSsrLHI9dC5jaGFyQ29kZUF0KGUpO3JldHVybiB0LnNsaWNlKGUpfXZhciBPeWUsUzZhLGZOdD11KCgpPT57ajFlKCk7bHZlKCk7RzFlKCk7UHllKCk7T3llPXt9Lmhhc093blByb3BlcnR5LFM2YT17fTtpKHBOdCwiY3JlYXRlU3RhdGUiKTtpKE02YSwicGF0Y2giKTtpKEM2YSwiYXBwbHlEYXRhIik7aSh6NmEsImRlZmF1bHRVbmtub3duSGFuZGxlciIpO2koXzZhLCJ3cmFwIik7aSh1TnQsInRyaW1NYXJrZG93blNwYWNlU3RhcnQiKX0pO2Z1bmN0aW9uIFJ5ZSh0LGUpe2xldCByPXBOdCh0LGUpLGE9ci5vbmUodCx2b2lkIDApLHM9ZE50KHIpLG49QXJyYXkuaXNBcnJheShhKT97dHlwZToicm9vdCIsY2hpbGRyZW46YX06YXx8e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfTtyZXR1cm4gcyYmKCJjaGlsZHJlbiJpbiBuLG4uY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSxzKSksbn12YXIgaE50PXUoKCk9PntDdSgpO055ZSgpO2ZOdCgpO2koUnllLCJ0b0hhc3QiKX0pO3ZhciBtTnQ9dSgoKT0+e1B5ZSgpO2hOdCgpO055ZSgpfSk7dmFyIGdOdCxiTnQ9dSgoKT0+e2dOdD1bImFyZWEiLCJiYXNlIiwiYmFzZWZvbnQiLCJiZ3NvdW5kIiwiYnIiLCJjb2wiLCJjb21tYW5kIiwiZW1iZWQiLCJmcmFtZSIsImhyIiwiaW1hZ2UiLCJpbWciLCJpbnB1dCIsImtleWdlbiIsImxpbmsiLCJtZXRhIiwicGFyYW0iLCJzb3VyY2UiLCJ0cmFjayIsIndiciJdfSk7dmFyIHM0LEZ5ZT11KCgpPT57czQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMubm9ybWFsPXIsdGhpcy5wcm9wZXJ0eT1lLGEmJih0aGlzLnNwYWNlPWEpfX07czQucHJvdG90eXBlLm5vcm1hbD17fSxzNC5wcm90b3R5cGUucHJvcGVydHk9e30sczQucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO2Z1bmN0aW9uIEJ5ZSh0LGUpe2xldCByPXt9LGE9e307Zm9yKGxldCBzIG9mIHQpT2JqZWN0LmFzc2lnbihyLHMucHJvcGVydHkpLE9iamVjdC5hc3NpZ24oYSxzLm5vcm1hbCk7cmV0dXJuIG5ldyBzNChyLGEsZSl9dmFyIHhOdD11KCgpPT57RnllKCk7aShCeWUsIm1lcmdlIil9KTtmdW5jdGlvbiB5eCh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXZhciBRMWU9dSgoKT0+e2koeXgsIm5vcm1hbGl6ZSIpfSk7dmFyIHBuLEh5ZT11KCgpPT57cG49Y2xhc3N7c3RhdGlje2kodGhpcywiSW5mbyIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5hdHRyaWJ1dGU9cix0aGlzLnByb3BlcnR5PWV9fTtwbi5wcm90b3R5cGUuYXR0cmlidXRlPSIiLHBuLnByb3RvdHlwZS5ib29sZWFuaXNoPSExLHBuLnByb3RvdHlwZS5ib29sZWFuPSExLHBuLnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQ9ITEscG4ucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkPSExLHBuLnByb3RvdHlwZS5kZWZpbmVkPSExLHBuLnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHk9ITEscG4ucHJvdG90eXBlLm51bWJlcj0hMSxwbi5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW49ITEscG4ucHJvdG90eXBlLnByb3BlcnR5PSIiLHBuLnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZD0hMSxwbi5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7dmFyIHFNPXt9O1ZlKHFNLHtib29sZWFuOigpPT5mcixib29sZWFuaXNoOigpPT5OaSxjb21tYU9yU3BhY2VTZXBhcmF0ZWQ6KCk9PmsxLGNvbW1hU2VwYXJhdGVkOigpPT5JdSxudW1iZXI6KCk9PnJ0LG92ZXJsb2FkZWRCb29sZWFuOigpPT5YMWUsc3BhY2VTZXBhcmF0ZWQ6KCk9PkJhfSk7ZnVuY3Rpb24gJGgoKXtyZXR1cm4gMioqKytUNmF9dmFyIFQ2YSxmcixOaSxYMWUscnQsQmEsSXUsazEsVk09dSgoKT0+e1Q2YT0wLGZyPSRoKCksTmk9JGgoKSxYMWU9JGgoKSxydD0kaCgpLEJhPSRoKCksSXU9JGgoKSxrMT0kaCgpO2koJGgsImluY3JlbWVudCIpfSk7ZnVuY3Rpb24gdk50KHQsZSxyKXtyJiYodFtlXT1yKX12YXIgcXllLEFoLFZ5ZT11KCgpPT57SHllKCk7Vk0oKTtxeWU9T2JqZWN0LmtleXMocU0pLEFoPWNsYXNzIGV4dGVuZHMgcG57c3RhdGlje2kodGhpcywiRGVmaW5lZEluZm8iKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXtsZXQgbj0tMTtpZihzdXBlcihlLHIpLHZOdCh0aGlzLCJzcGFjZSIscyksdHlwZW9mIGE9PSJudW1iZXIiKWZvcig7KytuPHF5ZS5sZW5ndGg7KXtsZXQgbz1xeWVbbl07dk50KHRoaXMscXllW25dLChhJnFNW29dKT09PXFNW29dKX19fTtBaC5wcm90b3R5cGUuZGVmaW5lZD0hMDtpKHZOdCwibWFyayIpfSk7ZnVuY3Rpb24gSWwodCl7bGV0IGU9e30scj17fTtmb3IobGV0W2Esc11vZiBPYmplY3QuZW50cmllcyh0LnByb3BlcnRpZXMpKXtsZXQgbj1uZXcgQWgoYSx0LnRyYW5zZm9ybSh0LmF0dHJpYnV0ZXN8fHt9LGEpLHMsdC5zcGFjZSk7dC5tdXN0VXNlUHJvcGVydHkmJnQubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGEpJiYobi5tdXN0VXNlUHJvcGVydHk9ITApLGVbYV09bixyW3l4KGEpXT1hLHJbeXgobi5hdHRyaWJ1dGUpXT1hfXJldHVybiBuZXcgczQoZSxyLHQuc3BhY2UpfXZhciBFaD11KCgpPT57UTFlKCk7VnllKCk7RnllKCk7aShJbCwiY3JlYXRlIil9KTt2YXIganllLHlOdD11KCgpPT57RWgoKTtWTSgpO2p5ZT1JbCh7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOk5pLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTpOaSxhcmlhQ2hlY2tlZDpOaSxhcmlhQ29sQ291bnQ6cnQsYXJpYUNvbEluZGV4OnJ0LGFyaWFDb2xTcGFuOnJ0LGFyaWFDb250cm9sczpCYSxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpCYSxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDpOaSxhcmlhRHJvcEVmZmVjdDpCYSxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOk5pLGFyaWFGbG93VG86QmEsYXJpYUdyYWJiZWQ6TmksYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjpOaSxhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpCYSxhcmlhTGV2ZWw6cnQsYXJpYUxpdmU6bnVsbCxhcmlhTW9kYWw6TmksYXJpYU11bHRpTGluZTpOaSxhcmlhTXVsdGlTZWxlY3RhYmxlOk5pLGFyaWFPcmllbnRhdGlvbjpudWxsLGFyaWFPd25zOkJhLGFyaWFQbGFjZWhvbGRlcjpudWxsLGFyaWFQb3NJblNldDpydCxhcmlhUHJlc3NlZDpOaSxhcmlhUmVhZE9ubHk6TmksYXJpYVJlbGV2YW50Om51bGwsYXJpYVJlcXVpcmVkOk5pLGFyaWFSb2xlRGVzY3JpcHRpb246QmEsYXJpYVJvd0NvdW50OnJ0LGFyaWFSb3dJbmRleDpydCxhcmlhUm93U3BhbjpydCxhcmlhU2VsZWN0ZWQ6TmksYXJpYVNldFNpemU6cnQsYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6cnQsYXJpYVZhbHVlTWluOnJ0LGFyaWFWYWx1ZU5vdzpydCxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0odCxlKXtyZXR1cm4gZT09PSJyb2xlIj9lOiJhcmlhLSIrZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pfSk7ZnVuY3Rpb24gSjFlKHQsZSl7cmV0dXJuIGUgaW4gdD90W2VdOmV9dmFyIFV5ZT11KCgpPT57aShKMWUsImNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0iKX0pO2Z1bmN0aW9uIGVsZSh0LGUpe3JldHVybiBKMWUodCxlLnRvTG93ZXJDYXNlKCkpfXZhciBXeWU9dSgoKT0+e1V5ZSgpO2koZWxlLCJjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0iKX0pO3ZhciB3TnQsa050PXUoKCk9PntXeWUoKTtFaCgpO1ZNKCk7d050PUlsKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpJdSxhY2NlcHRDaGFyc2V0OkJhLGFjY2Vzc0tleTpCYSxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpmcixhbGxvd1BheW1lbnRSZXF1ZXN0OmZyLGFsbG93VXNlck1lZGlhOmZyLGFsdDpudWxsLGFzOm51bGwsYXN5bmM6ZnIsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6QmEsYXV0b0ZvY3VzOmZyLGF1dG9QbGF5OmZyLGJsb2NraW5nOkJhLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpmcixjaXRlOm51bGwsY2xhc3NOYW1lOkJhLGNvbHM6cnQsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6TmksY29udHJvbHM6ZnIsY29udHJvbHNMaXN0OkJhLGNvb3JkczpydHxJdSxjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDpmcixkZWZlcjpmcixkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6ZnIsZG93bmxvYWQ6WDFlLGRyYWdnYWJsZTpOaSxlbmNUeXBlOm51bGwsZW50ZXJLZXlIaW50Om51bGwsZmV0Y2hQcmlvcml0eTpudWxsLGZvcm06bnVsbCxmb3JtQWN0aW9uOm51bGwsZm9ybUVuY1R5cGU6bnVsbCxmb3JtTWV0aG9kOm51bGwsZm9ybU5vVmFsaWRhdGU6ZnIsZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6QmEsaGVpZ2h0OnJ0LGhpZGRlbjpYMWUsaGlnaDpydCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxodG1sRm9yOkJhLGh0dHBFcXVpdjpCYSxpZDpudWxsLGltYWdlU2l6ZXM6bnVsbCxpbWFnZVNyY1NldDpudWxsLGluZXJ0OmZyLGlucHV0TW9kZTpudWxsLGludGVncml0eTpudWxsLGlzOm51bGwsaXNNYXA6ZnIsaXRlbUlkOm51bGwsaXRlbVByb3A6QmEsaXRlbVJlZjpCYSxpdGVtU2NvcGU6ZnIsaXRlbVR5cGU6QmEsa2luZDpudWxsLGxhYmVsOm51bGwsbGFuZzpudWxsLGxhbmd1YWdlOm51bGwsbGlzdDpudWxsLGxvYWRpbmc6bnVsbCxsb29wOmZyLGxvdzpydCxtYW5pZmVzdDpudWxsLG1heDpudWxsLG1heExlbmd0aDpydCxtZWRpYTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1pbkxlbmd0aDpydCxtdWx0aXBsZTpmcixtdXRlZDpmcixuYW1lOm51bGwsbm9uY2U6bnVsbCxub01vZHVsZTpmcixub1ZhbGlkYXRlOmZyLG9uQWJvcnQ6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkF1eENsaWNrOm51bGwsb25CZWZvcmVNYXRjaDpudWxsLG9uQmVmb3JlUHJpbnQ6bnVsbCxvbkJlZm9yZVRvZ2dsZTpudWxsLG9uQmVmb3JlVW5sb2FkOm51bGwsb25CbHVyOm51bGwsb25DYW5jZWw6bnVsbCxvbkNhblBsYXk6bnVsbCxvbkNhblBsYXlUaHJvdWdoOm51bGwsb25DaGFuZ2U6bnVsbCxvbkNsaWNrOm51bGwsb25DbG9zZTpudWxsLG9uQ29udGV4dExvc3Q6bnVsbCxvbkNvbnRleHRNZW51Om51bGwsb25Db250ZXh0UmVzdG9yZWQ6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9ybURhdGE6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxhbmd1YWdlQ2hhbmdlOm51bGwsb25Mb2FkOm51bGwsb25Mb2FkZWREYXRhOm51bGwsb25Mb2FkZWRNZXRhZGF0YTpudWxsLG9uTG9hZEVuZDpudWxsLG9uTG9hZFN0YXJ0Om51bGwsb25NZXNzYWdlOm51bGwsb25NZXNzYWdlRXJyb3I6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlamVjdGlvbkhhbmRsZWQ6bnVsbCxvblJlc2V0Om51bGwsb25SZXNpemU6bnVsbCxvblNjcm9sbDpudWxsLG9uU2Nyb2xsRW5kOm51bGwsb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjpudWxsLG9uU2Vla2VkOm51bGwsb25TZWVraW5nOm51bGwsb25TZWxlY3Q6bnVsbCxvblNsb3RDaGFuZ2U6bnVsbCxvblN0YWxsZWQ6bnVsbCxvblN0b3JhZ2U6bnVsbCxvblN1Ym1pdDpudWxsLG9uU3VzcGVuZDpudWxsLG9uVGltZVVwZGF0ZTpudWxsLG9uVG9nZ2xlOm51bGwsb25VbmhhbmRsZWRSZWplY3Rpb246bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25XaGVlbDpudWxsLG9wZW46ZnIsb3B0aW11bTpydCxwYXR0ZXJuOm51bGwscGluZzpCYSxwbGFjZWhvbGRlcjpudWxsLHBsYXlzSW5saW5lOmZyLHBvcG92ZXI6bnVsbCxwb3BvdmVyVGFyZ2V0Om51bGwscG9wb3ZlclRhcmdldEFjdGlvbjpudWxsLHBvc3RlcjpudWxsLHByZWxvYWQ6bnVsbCxyZWFkT25seTpmcixyZWZlcnJlclBvbGljeTpudWxsLHJlbDpCYSxyZXF1aXJlZDpmcixyZXZlcnNlZDpmcixyb3dzOnJ0LHJvd1NwYW46cnQsc2FuZGJveDpCYSxzY29wZTpudWxsLHNjb3BlZDpmcixzZWFtbGVzczpmcixzZWxlY3RlZDpmcixzaGFkb3dSb290Q2xvbmFibGU6ZnIsc2hhZG93Um9vdERlbGVnYXRlc0ZvY3VzOmZyLHNoYWRvd1Jvb3RNb2RlOm51bGwsc2hhcGU6bnVsbCxzaXplOnJ0LHNpemVzOm51bGwsc2xvdDpudWxsLHNwYW46cnQsc3BlbGxDaGVjazpOaSxzcmM6bnVsbCxzcmNEb2M6bnVsbCxzcmNMYW5nOm51bGwsc3JjU2V0Om51bGwsc3RhcnQ6cnQsc3RlcDpudWxsLHN0eWxlOm51bGwsdGFiSW5kZXg6cnQsdGFyZ2V0Om51bGwsdGl0bGU6bnVsbCx0cmFuc2xhdGU6bnVsbCx0eXBlOm51bGwsdHlwZU11c3RNYXRjaDpmcix1c2VNYXA6bnVsbCx2YWx1ZTpOaSx3aWR0aDpydCx3cmFwOm51bGwsd3JpdGluZ1N1Z2dlc3Rpb25zOm51bGwsYWxpZ246bnVsbCxhTGluazpudWxsLGFyY2hpdmU6QmEsYXhpczpudWxsLGJhY2tncm91bmQ6bnVsbCxiZ0NvbG9yOm51bGwsYm9yZGVyOnJ0LGJvcmRlckNvbG9yOm51bGwsYm90dG9tTWFyZ2luOnJ0LGNlbGxQYWRkaW5nOm51bGwsY2VsbFNwYWNpbmc6bnVsbCxjaGFyOm51bGwsY2hhck9mZjpudWxsLGNsYXNzSWQ6bnVsbCxjbGVhcjpudWxsLGNvZGU6bnVsbCxjb2RlQmFzZTpudWxsLGNvZGVUeXBlOm51bGwsY29sb3I6bnVsbCxjb21wYWN0OmZyLGRlY2xhcmU6ZnIsZXZlbnQ6bnVsbCxmYWNlOm51bGwsZnJhbWU6bnVsbCxmcmFtZUJvcmRlcjpudWxsLGhTcGFjZTpydCxsZWZ0TWFyZ2luOnJ0LGxpbms6bnVsbCxsb25nRGVzYzpudWxsLGxvd1NyYzpudWxsLG1hcmdpbkhlaWdodDpydCxtYXJnaW5XaWR0aDpydCxub1Jlc2l6ZTpmcixub0hyZWY6ZnIsbm9TaGFkZTpmcixub1dyYXA6ZnIsb2JqZWN0Om51bGwscHJvZmlsZTpudWxsLHByb21wdDpudWxsLHJldjpudWxsLHJpZ2h0TWFyZ2luOnJ0LHJ1bGVzOm51bGwsc2NoZW1lOm51bGwsc2Nyb2xsaW5nOk5pLHN0YW5kYnk6bnVsbCxzdW1tYXJ5Om51bGwsdGV4dDpudWxsLHRvcE1hcmdpbjpydCx2YWx1ZVR5cGU6bnVsbCx2ZXJzaW9uOm51bGwsdkFsaWduOm51bGwsdkxpbms6bnVsbCx2U3BhY2U6cnQsYWxsb3dUcmFuc3BhcmVuY3k6bnVsbCxhdXRvQ29ycmVjdDpudWxsLGF1dG9TYXZlOm51bGwsZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6ZnIsZGlzYWJsZVJlbW90ZVBsYXliYWNrOmZyLHByZWZpeDpudWxsLHByb3BlcnR5Om51bGwscmVzdWx0czpydCxzZWN1cml0eTpudWxsLHVuc2VsZWN0YWJsZTpudWxsfSxzcGFjZToiaHRtbCIsdHJhbnNmb3JtOmVsZX0pfSk7dmFyIFNOdCxNTnQ9dSgoKT0+e1V5ZSgpO0VoKCk7Vk0oKTtTTnQ9SWwoe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDprMSxhY2NlbnRIZWlnaHQ6cnQsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOnJ0LGFtcGxpdHVkZTpydCxhcmFiaWNGb3JtOm51bGwsYXNjZW50OnJ0LGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDpydCxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczpydCxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OnJ0LGNsYXNzTmFtZTpCYSxjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDpydCxkaWZmdXNlQ29uc3RhbnQ6cnQsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6cnQsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOmZyLGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOnJ0LGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OnJ0LGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6cnQsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6SXUsZzI6SXUsZ2x5cGhOYW1lOkl1LGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzpydCxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6cnQsaG9yaXpPcmlnaW5YOnJ0LGhvcml6T3JpZ2luWTpydCxpZDpudWxsLGlkZW9ncmFwaGljOnJ0LGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDpydCxrOnJ0LGsxOnJ0LGsyOnJ0LGszOnJ0LGs0OnJ0LGtlcm5lbE1hdHJpeDprMSxrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOnJ0LGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6cnQsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246cnQsb3ZlcmxpbmVUaGlja25lc3M6cnQscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDpydCxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpCYSxwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOnJ0LHBvaW50c0F0WTpydCxwb2ludHNBdFo6cnQscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OmsxLHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOmsxLHJldjprMSxyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczprMSxyZXF1aXJlZEZlYXR1cmVzOmsxLHJlcXVpcmVkRm9udHM6azEscmVxdWlyZWRGb3JtYXRzOmsxLHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6cnQsc3BlY3VsYXJFeHBvbmVudDpydCxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjpydCxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOnJ0LHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTprMSxzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDpydCxzdHJva2VPcGFjaXR5OnJ0LHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6cnQsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTprMSx0YWJJbmRleDpydCx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6cnQsdGFyZ2V0WTpydCx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjprMSx0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjpydCx1bmRlcmxpbmVUaGlja25lc3M6cnQsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTpydCx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzpydCx2TWF0aGVtYXRpY2FsOnJ0LHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOnJ0LHZJZGVvZ3JhcGhpYzpydCx2ZXJzaW9uOm51bGwsdmVydEFkdlk6cnQsdmVydE9yaWdpblg6cnQsdmVydE9yaWdpblk6cnQsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDpydCx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06SjFlfSl9KTt2YXIgR3llLENOdD11KCgpPT57RWgoKTtHeWU9SWwoe3Byb3BlcnRpZXM6e3hMaW5rQWN0dWF0ZTpudWxsLHhMaW5rQXJjUm9sZTpudWxsLHhMaW5rSHJlZjpudWxsLHhMaW5rUm9sZTpudWxsLHhMaW5rU2hvdzpudWxsLHhMaW5rVGl0bGU6bnVsbCx4TGlua1R5cGU6bnVsbH0sc3BhY2U6InhsaW5rIix0cmFuc2Zvcm0odCxlKXtyZXR1cm4ieGxpbms6IitlLnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgWXllLHpOdD11KCgpPT57RWgoKTtXeWUoKTtZeWU9SWwoe2F0dHJpYnV0ZXM6e3htbG5zeGxpbms6InhtbG5zOnhsaW5rIn0scHJvcGVydGllczp7eG1sbnNYTGluazpudWxsLHhtbG5zOm51bGx9LHNwYWNlOiJ4bWxucyIsdHJhbnNmb3JtOmVsZX0pfSk7dmFyIEt5ZSxfTnQ9dSgoKT0+e0VoKCk7S3llPUlsKHtwcm9wZXJ0aWVzOnt4bWxCYXNlOm51bGwseG1sTGFuZzpudWxsLHhtbFNwYWNlOm51bGx9LHNwYWNlOiJ4bWwiLHRyYW5zZm9ybSh0LGUpe3JldHVybiJ4bWw6IitlLnNsaWNlKDMpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgVE50PXUoKCk9Pnt9KTtmdW5jdGlvbiBaeWUodCxlKXtsZXQgcj15eChlKSxhPWUscz1wbjtpZihyIGluIHQubm9ybWFsKXJldHVybiB0LnByb3BlcnR5W3Qubm9ybWFsW3JdXTtpZihyLmxlbmd0aD40JiZyLnNsaWNlKDAsNCk9PT0iZGF0YSImJkQ2YS50ZXN0KGUpKXtpZihlLmNoYXJBdCg0KT09PSItIil7bGV0IG49ZS5zbGljZSg1KS5yZXBsYWNlKExOdCxBNmEpO2E9ImRhdGEiK24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrbi5zbGljZSgxKX1lbHNle2xldCBuPWUuc2xpY2UoNCk7aWYoIUxOdC50ZXN0KG4pKXtsZXQgbz1uLnJlcGxhY2UoTDZhLCQ2YSk7by5jaGFyQXQoMCkhPT0iLSImJihvPSItIitvKSxlPSJkYXRhIitvfX1zPUFofXJldHVybiBuZXcgcyhhLGUpfWZ1bmN0aW9uICQ2YSh0KXtyZXR1cm4iLSIrdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEE2YSh0KXtyZXR1cm4gdC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX12YXIgTDZhLExOdCxENmEsRE50PXUoKCk9PntWeWUoKTtIeWUoKTtRMWUoKTtMNmE9L1tBLVpdL2csTE50PS8tW2Etel0vZyxENmE9L15kYXRhWy1cdy46XSskL2k7aShaeWUsImZpbmQiKTtpKCQ2YSwia2ViYWIiKTtpKEE2YSwiY2FtZWxjYXNlIil9KTt2YXIgJE50LHRsZSxReWU9dSgoKT0+e3hOdCgpO3lOdCgpO2tOdCgpO01OdCgpO0NOdCgpO3pOdCgpO19OdCgpO1ROdCgpO0ROdCgpO1ExZSgpOyROdD1CeWUoW2p5ZSx3TnQsR3llLFl5ZSxLeWVdLCJodG1sIiksdGxlPUJ5ZShbanllLFNOdCxHeWUsWXllLEt5ZV0sInN2ZyIpfSk7ZnVuY3Rpb24gWHllKHQsZSl7aWYodD10LnJlcGxhY2UoZS5zdWJzZXQ/TzZhKGUuc3Vic2V0KTpFNmEsYSksZS5zdWJzZXR8fGUuZXNjYXBlT25seSlyZXR1cm4gdDtyZXR1cm4gdC5yZXBsYWNlKEk2YSxyKS5yZXBsYWNlKFA2YSxhKTtmdW5jdGlvbiByKHMsbixvKXtyZXR1cm4gZS5mb3JtYXQoKHMuY2hhckNvZGVBdCgwKS01NTI5NikqMTAyNCtzLmNoYXJDb2RlQXQoMSktNTYzMjArNjU1MzYsby5jaGFyQ29kZUF0KG4rMiksZSl9ZnVuY3Rpb24gYShzLG4sbyl7cmV0dXJuIGUuZm9ybWF0KHMuY2hhckNvZGVBdCgwKSxvLmNoYXJDb2RlQXQobisxKSxlKX19ZnVuY3Rpb24gTzZhKHQpe2xldCBlPUFOdC5nZXQodCk7cmV0dXJuIGV8fChlPVI2YSh0KSxBTnQuc2V0KHQsZSkpLGV9ZnVuY3Rpb24gUjZhKHQpe2xldCBlPVtdLHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWUucHVzaCh0W3JdLnJlcGxhY2UoTjZhLCJcXCQmIikpO3JldHVybiBuZXcgUmVnRXhwKCIoPzoiK2Uuam9pbigifCIpKyIpIiwiZyIpfXZhciBFNmEsSTZhLFA2YSxONmEsQU50LEVOdD11KCgpPT57RTZhPS9bIiYnPD5gXS9nLEk2YT0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csUDZhPS9bXHgwMS1cdFx2XGZceDBFLVx4MUZceDdGXHg4MVx4OERceDhGXHg5MFx4OURceEEwLVx1RkZGRl0vZyxONmE9L1t8XFx7fSgpW1xdXiQrKj8uXS9nLEFOdD1uZXcgV2Vha01hcDtpKFh5ZSwiY29yZSIpO2koTzZhLCJjaGFyYWN0ZXJzVG9FeHByZXNzaW9uQ2FjaGVkIik7aShSNmEsImNoYXJhY3RlcnNUb0V4cHJlc3Npb24iKX0pO2Z1bmN0aW9uIElOdCh0LGUscil7bGV0IGE9IiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gciYmZSYmIUY2YS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP2E6YSsiOyJ9dmFyIEY2YSxQTnQ9dSgoKT0+e0Y2YT0vW1xkQS1GYS1mXS87aShJTnQsInRvSGV4YWRlY2ltYWwiKX0pO2Z1bmN0aW9uIE5OdCh0LGUscil7bGV0IGE9IiYjIitTdHJpbmcodCk7cmV0dXJuIHImJmUmJiFCNmEudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKT9hOmErIjsifXZhciBCNmEsT050PXUoKCk9PntCNmE9L1xkLztpKE5OdCwidG9EZWNpbWFsIil9KTt2YXIgUk50LEZOdD11KCgpPT57Uk50PVsiQUVsaWciLCJBTVAiLCJBYWN1dGUiLCJBY2lyYyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQXVtbCIsIkNPUFkiLCJDY2VkaWwiLCJFVEgiLCJFYWN1dGUiLCJFY2lyYyIsIkVncmF2ZSIsIkV1bWwiLCJHVCIsIklhY3V0ZSIsIkljaXJjIiwiSWdyYXZlIiwiSXVtbCIsIkxUIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmMiLCJPZ3JhdmUiLCJPc2xhc2giLCJPdGlsZGUiLCJPdW1sIiwiUVVPVCIsIlJFRyIsIlRIT1JOIiwiVWFjdXRlIiwiVWNpcmMiLCJVZ3JhdmUiLCJVdW1sIiwiWWFjdXRlIiwiYWFjdXRlIiwiYWNpcmMiLCJhY3V0ZSIsImFlbGlnIiwiYWdyYXZlIiwiYW1wIiwiYXJpbmciLCJhdGlsZGUiLCJhdW1sIiwiYnJ2YmFyIiwiY2NlZGlsIiwiY2VkaWwiLCJjZW50IiwiY29weSIsImN1cnJlbiIsImRlZyIsImRpdmlkZSIsImVhY3V0ZSIsImVjaXJjIiwiZWdyYXZlIiwiZXRoIiwiZXVtbCIsImZyYWMxMiIsImZyYWMxNCIsImZyYWMzNCIsImd0IiwiaWFjdXRlIiwiaWNpcmMiLCJpZXhjbCIsImlncmF2ZSIsImlxdWVzdCIsIml1bWwiLCJsYXF1byIsImx0IiwibWFjciIsIm1pY3JvIiwibWlkZG90IiwibmJzcCIsIm5vdCIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjIiwib2dyYXZlIiwib3JkZiIsIm9yZG0iLCJvc2xhc2giLCJvdGlsZGUiLCJvdW1sIiwicGFyYSIsInBsdXNtbiIsInBvdW5kIiwicXVvdCIsInJhcXVvIiwicmVnIiwic2VjdCIsInNoeSIsInN1cDEiLCJzdXAyIiwic3VwMyIsInN6bGlnIiwidGhvcm4iLCJ0aW1lcyIsInVhY3V0ZSIsInVjaXJjIiwidWdyYXZlIiwidW1sIiwidXVtbCIsInlhY3V0ZSIsInllbiIsInl1bWwiXX0pO3ZhciBybGUsQk50PXUoKCk9PntybGU9e25ic3A6Ilx4QTAiLGlleGNsOiJceEExIixjZW50OiJceEEyIixwb3VuZDoiXHhBMyIsY3VycmVuOiJceEE0Iix5ZW46Ilx4QTUiLGJydmJhcjoiXHhBNiIsc2VjdDoiXHhBNyIsdW1sOiJceEE4Iixjb3B5OiJceEE5IixvcmRmOiJceEFBIixsYXF1bzoiXHhBQiIsbm90OiJceEFDIixzaHk6Ilx4QUQiLHJlZzoiXHhBRSIsbWFjcjoiXHhBRiIsZGVnOiJceEIwIixwbHVzbW46Ilx4QjEiLHN1cDI6Ilx4QjIiLHN1cDM6Ilx4QjMiLGFjdXRlOiJceEI0IixtaWNybzoiXHhCNSIscGFyYToiXHhCNiIsbWlkZG90OiJceEI3IixjZWRpbDoiXHhCOCIsc3VwMToiXHhCOSIsb3JkbToiXHhCQSIscmFxdW86Ilx4QkIiLGZyYWMxNDoiXHhCQyIsZnJhYzEyOiJceEJEIixmcmFjMzQ6Ilx4QkUiLGlxdWVzdDoiXHhCRiIsQWdyYXZlOiJceEMwIixBYWN1dGU6Ilx4QzEiLEFjaXJjOiJceEMyIixBdGlsZGU6Ilx4QzMiLEF1bWw6Ilx4QzQiLEFyaW5nOiJceEM1IixBRWxpZzoiXHhDNiIsQ2NlZGlsOiJceEM3IixFZ3JhdmU6Ilx4QzgiLEVhY3V0ZToiXHhDOSIsRWNpcmM6Ilx4Q0EiLEV1bWw6Ilx4Q0IiLElncmF2ZToiXHhDQyIsSWFjdXRlOiJceENEIixJY2lyYzoiXHhDRSIsSXVtbDoiXHhDRiIsRVRIOiJceEQwIixOdGlsZGU6Ilx4RDEiLE9ncmF2ZToiXHhEMiIsT2FjdXRlOiJceEQzIixPY2lyYzoiXHhENCIsT3RpbGRlOiJceEQ1IixPdW1sOiJceEQ2Iix0aW1lczoiXHhENyIsT3NsYXNoOiJceEQ4IixVZ3JhdmU6Ilx4RDkiLFVhY3V0ZToiXHhEQSIsVWNpcmM6Ilx4REIiLFV1bWw6Ilx4REMiLFlhY3V0ZToiXHhERCIsVEhPUk46Ilx4REUiLHN6bGlnOiJceERGIixhZ3JhdmU6Ilx4RTAiLGFhY3V0ZToiXHhFMSIsYWNpcmM6Ilx4RTIiLGF0aWxkZToiXHhFMyIsYXVtbDoiXHhFNCIsYXJpbmc6Ilx4RTUiLGFlbGlnOiJceEU2IixjY2VkaWw6Ilx4RTciLGVncmF2ZToiXHhFOCIsZWFjdXRlOiJceEU5IixlY2lyYzoiXHhFQSIsZXVtbDoiXHhFQiIsaWdyYXZlOiJceEVDIixpYWN1dGU6Ilx4RUQiLGljaXJjOiJceEVFIixpdW1sOiJceEVGIixldGg6Ilx4RjAiLG50aWxkZToiXHhGMSIsb2dyYXZlOiJceEYyIixvYWN1dGU6Ilx4RjMiLG9jaXJjOiJceEY0IixvdGlsZGU6Ilx4RjUiLG91bWw6Ilx4RjYiLGRpdmlkZToiXHhGNyIsb3NsYXNoOiJceEY4Iix1Z3JhdmU6Ilx4RjkiLHVhY3V0ZToiXHhGQSIsdWNpcmM6Ilx4RkIiLHV1bWw6Ilx4RkMiLHlhY3V0ZToiXHhGRCIsdGhvcm46Ilx4RkUiLHl1bWw6Ilx4RkYiLGZub2Y6Ilx1MDE5MiIsQWxwaGE6Ilx1MDM5MSIsQmV0YToiXHUwMzkyIixHYW1tYToiXHUwMzkzIixEZWx0YToiXHUwMzk0IixFcHNpbG9uOiJcdTAzOTUiLFpldGE6Ilx1MDM5NiIsRXRhOiJcdTAzOTciLFRoZXRhOiJcdTAzOTgiLElvdGE6Ilx1MDM5OSIsS2FwcGE6Ilx1MDM5QSIsTGFtYmRhOiJcdTAzOUIiLE11OiJcdTAzOUMiLE51OiJcdTAzOUQiLFhpOiJcdTAzOUUiLE9taWNyb246Ilx1MDM5RiIsUGk6Ilx1MDNBMCIsUmhvOiJcdTAzQTEiLFNpZ21hOiJcdTAzQTMiLFRhdToiXHUwM0E0IixVcHNpbG9uOiJcdTAzQTUiLFBoaToiXHUwM0E2IixDaGk6Ilx1MDNBNyIsUHNpOiJcdTAzQTgiLE9tZWdhOiJcdTAzQTkiLGFscGhhOiJcdTAzQjEiLGJldGE6Ilx1MDNCMiIsZ2FtbWE6Ilx1MDNCMyIsZGVsdGE6Ilx1MDNCNCIsZXBzaWxvbjoiXHUwM0I1Iix6ZXRhOiJcdTAzQjYiLGV0YToiXHUwM0I3Iix0aGV0YToiXHUwM0I4Iixpb3RhOiJcdTAzQjkiLGthcHBhOiJcdTAzQkEiLGxhbWJkYToiXHUwM0JCIixtdToiXHUwM0JDIixudToiXHUwM0JEIix4aToiXHUwM0JFIixvbWljcm9uOiJcdTAzQkYiLHBpOiJcdTAzQzAiLHJobzoiXHUwM0MxIixzaWdtYWY6Ilx1MDNDMiIsc2lnbWE6Ilx1MDNDMyIsdGF1OiJcdTAzQzQiLHVwc2lsb246Ilx1MDNDNSIscGhpOiJcdTAzQzYiLGNoaToiXHUwM0M3Iixwc2k6Ilx1MDNDOCIsb21lZ2E6Ilx1MDNDOSIsdGhldGFzeW06Ilx1MDNEMSIsdXBzaWg6Ilx1MDNEMiIscGl2OiJcdTAzRDYiLGJ1bGw6Ilx1MjAyMiIsaGVsbGlwOiJcdTIwMjYiLHByaW1lOiJcdTIwMzIiLFByaW1lOiJcdTIwMzMiLG9saW5lOiJcdTIwM0UiLGZyYXNsOiJcdTIwNDQiLHdlaWVycDoiXHUyMTE4IixpbWFnZToiXHUyMTExIixyZWFsOiJcdTIxMUMiLHRyYWRlOiJcdTIxMjIiLGFsZWZzeW06Ilx1MjEzNSIsbGFycjoiXHUyMTkwIix1YXJyOiJcdTIxOTEiLHJhcnI6Ilx1MjE5MiIsZGFycjoiXHUyMTkzIixoYXJyOiJcdTIxOTQiLGNyYXJyOiJcdTIxQjUiLGxBcnI6Ilx1MjFEMCIsdUFycjoiXHUyMUQxIixyQXJyOiJcdTIxRDIiLGRBcnI6Ilx1MjFEMyIsaEFycjoiXHUyMUQ0Iixmb3JhbGw6Ilx1MjIwMCIscGFydDoiXHUyMjAyIixleGlzdDoiXHUyMjAzIixlbXB0eToiXHUyMjA1IixuYWJsYToiXHUyMjA3Iixpc2luOiJcdTIyMDgiLG5vdGluOiJcdTIyMDkiLG5pOiJcdTIyMEIiLHByb2Q6Ilx1MjIwRiIsc3VtOiJcdTIyMTEiLG1pbnVzOiJcdTIyMTIiLGxvd2FzdDoiXHUyMjE3IixyYWRpYzoiXHUyMjFBIixwcm9wOiJcdTIyMUQiLGluZmluOiJcdTIyMUUiLGFuZzoiXHUyMjIwIixhbmQ6Ilx1MjIyNyIsb3I6Ilx1MjIyOCIsY2FwOiJcdTIyMjkiLGN1cDoiXHUyMjJBIixpbnQ6Ilx1MjIyQiIsdGhlcmU0OiJcdTIyMzQiLHNpbToiXHUyMjNDIixjb25nOiJcdTIyNDUiLGFzeW1wOiJcdTIyNDgiLG5lOiJcdTIyNjAiLGVxdWl2OiJcdTIyNjEiLGxlOiJcdTIyNjQiLGdlOiJcdTIyNjUiLHN1YjoiXHUyMjgyIixzdXA6Ilx1MjI4MyIsbnN1YjoiXHUyMjg0IixzdWJlOiJcdTIyODYiLHN1cGU6Ilx1MjI4NyIsb3BsdXM6Ilx1MjI5NSIsb3RpbWVzOiJcdTIyOTciLHBlcnA6Ilx1MjJBNSIsc2RvdDoiXHUyMkM1IixsY2VpbDoiXHUyMzA4IixyY2VpbDoiXHUyMzA5IixsZmxvb3I6Ilx1MjMwQSIscmZsb29yOiJcdTIzMEIiLGxhbmc6Ilx1MjMyOSIscmFuZzoiXHUyMzJBIixsb3o6Ilx1MjVDQSIsc3BhZGVzOiJcdTI2NjAiLGNsdWJzOiJcdTI2NjMiLGhlYXJ0czoiXHUyNjY1IixkaWFtczoiXHUyNjY2IixxdW90OiciJyxhbXA6IiYiLGx0OiI8IixndDoiPiIsT0VsaWc6Ilx1MDE1MiIsb2VsaWc6Ilx1MDE1MyIsU2Nhcm9uOiJcdTAxNjAiLHNjYXJvbjoiXHUwMTYxIixZdW1sOiJcdTAxNzgiLGNpcmM6Ilx1MDJDNiIsdGlsZGU6Ilx1MDJEQyIsZW5zcDoiXHUyMDAyIixlbXNwOiJcdTIwMDMiLHRoaW5zcDoiXHUyMDA5Iix6d25qOiJcdTIwMEMiLHp3ajoiXHUyMDBEIixscm06Ilx1MjAwRSIscmxtOiJcdTIwMEYiLG5kYXNoOiJcdTIwMTMiLG1kYXNoOiJcdTIwMTQiLGxzcXVvOiJcdTIwMTgiLHJzcXVvOiJcdTIwMTkiLHNicXVvOiJcdTIwMUEiLGxkcXVvOiJcdTIwMUMiLHJkcXVvOiJcdTIwMUQiLGJkcXVvOiJcdTIwMUUiLGRhZ2dlcjoiXHUyMDIwIixEYWdnZXI6Ilx1MjAyMSIscGVybWlsOiJcdTIwMzAiLGxzYXF1bzoiXHUyMDM5Iixyc2FxdW86Ilx1MjAzQSIsZXVybzoiXHUyMEFDIn19KTt2YXIgSE50LHFOdD11KCgpPT57SE50PVsiY2VudCIsImNvcHkiLCJkaXZpZGUiLCJndCIsImx0Iiwibm90IiwicGFyYSIsInRpbWVzIl19KTtmdW5jdGlvbiBqTnQodCxlLHIsYSl7bGV0IHM9U3RyaW5nLmZyb21DaGFyQ29kZSh0KTtpZihWTnQuY2FsbChKeWUscykpe2xldCBuPUp5ZVtzXSxvPSImIituO3JldHVybiByJiZSTnQuaW5jbHVkZXMobikmJiFITnQuaW5jbHVkZXMobikmJighYXx8ZSYmZSE9PTYxJiZINmEudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSk/bzpvKyI7In1yZXR1cm4iIn12YXIgVk50LEp5ZSxhbGUsSDZhLFVOdD11KCgpPT57Rk50KCk7Qk50KCk7cU50KCk7Vk50PXt9Lmhhc093blByb3BlcnR5LEp5ZT17fTtmb3IoYWxlIGluIHJsZSlWTnQuY2FsbChybGUsYWxlKSYmKEp5ZVtybGVbYWxlXV09YWxlKTtINmE9L1teXGRBLVphLXpdLztpKGpOdCwidG9OYW1lZCIpfSk7ZnVuY3Rpb24gV050KHQsZSxyKXtsZXQgYT1JTnQodCxlLHIub21pdE9wdGlvbmFsU2VtaWNvbG9ucykscztpZigoci51c2VOYW1lZFJlZmVyZW5jZXN8fHIudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKHM9ak50KHQsZSxyLm9taXRPcHRpb25hbFNlbWljb2xvbnMsci5hdHRyaWJ1dGUpKSwoci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFzKSYmci51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBuPU5OdCh0LGUsci5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtuLmxlbmd0aDxhLmxlbmd0aCYmKGE9bil9cmV0dXJuIHMmJighci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fHMubGVuZ3RoPGEubGVuZ3RoKT9zOmF9dmFyIEdOdD11KCgpPT57UE50KCk7T050KCk7VU50KCk7aShXTnQsImZvcm1hdFNtYXJ0Iil9KTtmdW5jdGlvbiBZTnQodCl7cmV0dXJuIiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIEtOdD11KCgpPT57aShZTnQsImZvcm1hdEJhc2ljIil9KTtmdW5jdGlvbiBuNCh0LGUpe3JldHVybiBYeWUodCxPYmplY3QuYXNzaWduKHtmb3JtYXQ6V050fSxlKSl9ZnVuY3Rpb24geXNzKHQsZSl7cmV0dXJuIFh5ZSh0LE9iamVjdC5hc3NpZ24oe2Zvcm1hdDpZTnR9LGUpKX12YXIgWk50PXUoKCk9PntFTnQoKTtHTnQoKTtLTnQoKTtpKG40LCJzdHJpbmdpZnlFbnRpdGllcyIpO2koeXNzLCJzdHJpbmdpZnlFbnRpdGllc0xpZ2h0Iil9KTt2YXIgaWxlPXUoKCk9PntaTnQoKX0pO2Z1bmN0aW9uIFFOdCh0LGUscixhKXtyZXR1cm4gYS5zZXR0aW5ncy5ib2d1c0NvbW1lbnRzPyI8PyIrbjQodC52YWx1ZSxPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OlY2YX0pKSsiPiI6IjwhLS0iK3QudmFsdWUucmVwbGFjZShxNmEscykrIi0tPiI7ZnVuY3Rpb24gcyhuKXtyZXR1cm4gbjQobixPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0Omo2YX0pKX19dmFyIHE2YSxWNmEsajZhLFhOdD11KCgpPT57aWxlKCk7cTZhPS9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2csVjZhPVsiPiJdLGo2YT1bIjwiLCI+Il07aShRTnQsImNvbW1lbnQiKX0pO2Z1bmN0aW9uIEpOdCh0LGUscixhKXtyZXR1cm4iPCEiKyhhLnNldHRpbmdzLnVwcGVyRG9jdHlwZT8iRE9DVFlQRSI6ImRvY3R5cGUiKSsoYS5zZXR0aW5ncy50aWdodERvY3R5cGU/IiI6IiAiKSsiaHRtbD4ifXZhciBlT3Q9dSgoKT0+e2koSk50LCJkb2N0eXBlIil9KTtmdW5jdGlvbiBEc3ModCl7bGV0IGU9W10scj1TdHJpbmcodHx8IiIpLGE9ci5pbmRleE9mKCIsIikscz0wLG49ITE7Zm9yKDshbjspe2E9PT0tMSYmKGE9ci5sZW5ndGgsbj0hMCk7bGV0IG89ci5zbGljZShzLGEpLnRyaW0oKTsob3x8IW4pJiZlLnB1c2gobykscz1hKzEsYT1yLmluZGV4T2YoIiwiLHMpfXJldHVybiBlfWZ1bmN0aW9uIHRPdCh0LGUpe2xldCByPWV8fHt9O3JldHVybih0W3QubGVuZ3RoLTFdPT09IiI/Wy4uLnQsIiJdOnQpLmpvaW4oKHIucGFkUmlnaHQ/IiAiOiIiKSsiLCIrKHIucGFkTGVmdD09PSExPyIiOiIgIikpLnRyaW0oKX12YXIgck90PXUoKCk9PntpKERzcywicGFyc2UiKTtpKHRPdCwic3RyaW5naWZ5Iil9KTtmdW5jdGlvbiBFc3ModCl7bGV0IGU9U3RyaW5nKHR8fCIiKS50cmltKCk7cmV0dXJuIGU/ZS5zcGxpdCgvWyBcdFxuXHJcZl0rL2cpOltdfWZ1bmN0aW9uIGFPdCh0KXtyZXR1cm4gdC5qb2luKCIgIikudHJpbSgpfXZhciBpT3Q9dSgoKT0+e2koRXNzLCJwYXJzZSIpO2koYU90LCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIEloKHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCI/dC50eXBlPT09InRleHQiP3NPdCh0LnZhbHVlKTohMTpzT3QodCl9ZnVuY3Rpb24gc090KHQpe3JldHVybiB0LnJlcGxhY2UoVTZhLCIiKT09PSIifXZhciBVNmEsbk90PXUoKCk9PntVNmE9L1sgXHRcblxmXHJdL2c7aShJaCwid2hpdGVzcGFjZSIpO2koc090LCJlbXB0eSIpfSk7dmFyIHNsZT11KCgpPT57bk90KCl9KTtmdW5jdGlvbiBvT3QodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyLGEscyl7bGV0IG49cj9yLmNoaWxkcmVuOlc2YSxvPShhfHwwKSt0LGw9bltvXTtpZighcylmb3IoO2wmJkloKGwpOylvKz10LGw9bltvXTtyZXR1cm4gbH19dmFyIGVzLGV3ZSxXNmEsdHdlPXUoKCk9PntzbGUoKTtlcz1vT3QoMSksZXdlPW9PdCgtMSksVzZhPVtdO2kob090LCJzaWJsaW5ncyIpfSk7ZnVuY3Rpb24gbmxlKHQpe3JldHVybiBlO2Z1bmN0aW9uIGUocixhLHMpe3JldHVybiBHNmEuY2FsbCh0LHIudGFnTmFtZSkmJnRbci50YWdOYW1lXShyLGEscyl9fXZhciBHNmEscndlPXUoKCk9PntHNmE9e30uaGFzT3duUHJvcGVydHk7aShubGUsIm9taXNzaW9uIil9KTtmdW5jdGlvbiBhd2UodCxlLHIpe2xldCBhPWVzKHIsZSwhMCk7cmV0dXJuIWF8fGEudHlwZSE9PSJjb21tZW50IiYmIShhLnR5cGU9PT0idGV4dCImJkloKGEudmFsdWUuY2hhckF0KDApKSl9ZnVuY3Rpb24gWTZhKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiFhfHxhLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gSzZhKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiFhfHxhLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gWjZhKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiBhP2EudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJhZGRyZXNzInx8YS50YWdOYW1lPT09ImFydGljbGUifHxhLnRhZ05hbWU9PT0iYXNpZGUifHxhLnRhZ05hbWU9PT0iYmxvY2txdW90ZSJ8fGEudGFnTmFtZT09PSJkZXRhaWxzInx8YS50YWdOYW1lPT09ImRpdiJ8fGEudGFnTmFtZT09PSJkbCJ8fGEudGFnTmFtZT09PSJmaWVsZHNldCJ8fGEudGFnTmFtZT09PSJmaWdjYXB0aW9uInx8YS50YWdOYW1lPT09ImZpZ3VyZSJ8fGEudGFnTmFtZT09PSJmb290ZXIifHxhLnRhZ05hbWU9PT0iZm9ybSJ8fGEudGFnTmFtZT09PSJoMSJ8fGEudGFnTmFtZT09PSJoMiJ8fGEudGFnTmFtZT09PSJoMyJ8fGEudGFnTmFtZT09PSJoNCJ8fGEudGFnTmFtZT09PSJoNSJ8fGEudGFnTmFtZT09PSJoNiJ8fGEudGFnTmFtZT09PSJoZWFkZXIifHxhLnRhZ05hbWU9PT0iaGdyb3VwInx8YS50YWdOYW1lPT09ImhyInx8YS50YWdOYW1lPT09Im1haW4ifHxhLnRhZ05hbWU9PT0ibWVudSJ8fGEudGFnTmFtZT09PSJuYXYifHxhLnRhZ05hbWU9PT0ib2wifHxhLnRhZ05hbWU9PT0icCJ8fGEudGFnTmFtZT09PSJwcmUifHxhLnRhZ05hbWU9PT0ic2VjdGlvbiJ8fGEudGFnTmFtZT09PSJ0YWJsZSJ8fGEudGFnTmFtZT09PSJ1bCIpOiFyfHwhKHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJhInx8ci50YWdOYW1lPT09ImF1ZGlvInx8ci50YWdOYW1lPT09ImRlbCJ8fHIudGFnTmFtZT09PSJpbnMifHxyLnRhZ05hbWU9PT0ibWFwInx8ci50YWdOYW1lPT09Im5vc2NyaXB0Inx8ci50YWdOYW1lPT09InZpZGVvIikpfWZ1bmN0aW9uIFE2YSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0ibGkifWZ1bmN0aW9uIFg2YSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iZHQifHxhLnRhZ05hbWU9PT0iZGQiKSl9ZnVuY3Rpb24gSjZhKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iZHQifHxhLnRhZ05hbWU9PT0iZGQiKX1mdW5jdGlvbiBsT3QodCxlLHIpe2xldCBhPWVzKHIsZSk7cmV0dXJuIWF8fGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJycCJ8fGEudGFnTmFtZT09PSJydCIpfWZ1bmN0aW9uIGVtYSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0ib3B0Z3JvdXAifWZ1bmN0aW9uIHRtYSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09Im9wdGlvbiJ8fGEudGFnTmFtZT09PSJvcHRncm91cCIpfWZ1bmN0aW9uIHJtYSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGJvZHkifHxhLnRhZ05hbWU9PT0idGZvb3QiKSl9ZnVuY3Rpb24gYW1hKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGJvZHkifHxhLnRhZ05hbWU9PT0idGZvb3QiKX1mdW5jdGlvbiBpbWEodCxlLHIpe3JldHVybiFlcyhyLGUpfWZ1bmN0aW9uIHNtYSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0idHIifWZ1bmN0aW9uIGNPdCh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09InRkInx8YS50YWdOYW1lPT09InRoIil9dmFyIGpNLGl3ZT11KCgpPT57c2xlKCk7dHdlKCk7cndlKCk7ak09bmxlKHtib2R5Oks2YSxjYXB0aW9uOmF3ZSxjb2xncm91cDphd2UsZGQ6SjZhLGR0Olg2YSxoZWFkOmF3ZSxodG1sOlk2YSxsaTpRNmEsb3B0Z3JvdXA6ZW1hLG9wdGlvbjp0bWEscDpaNmEscnA6bE90LHJ0OmxPdCx0Ym9keTphbWEsdGQ6Y090LHRmb290OmltYSx0aDpjT3QsdGhlYWQ6cm1hLHRyOnNtYX0pO2koYXdlLCJoZWFkT3JDb2xncm91cE9yQ2FwdGlvbiIpO2koWTZhLCJodG1sIik7aShLNmEsImJvZHkiKTtpKFo2YSwicCIpO2koUTZhLCJsaSIpO2koWDZhLCJkdCIpO2koSjZhLCJkZCIpO2kobE90LCJydWJ5RWxlbWVudCIpO2koZW1hLCJvcHRncm91cCIpO2kodG1hLCJvcHRpb24iKTtpKHJtYSwidGhlYWQiKTtpKGFtYSwidGJvZHkiKTtpKGltYSwidGZvb3QiKTtpKHNtYSwidHIiKTtpKGNPdCwiY2VsbHMiKX0pO2Z1bmN0aW9uIG5tYSh0KXtsZXQgZT1lcyh0LC0xKTtyZXR1cm4hZXx8ZS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIG9tYSh0KXtsZXQgZT1uZXcgU2V0O2ZvcihsZXQgYSBvZiB0LmNoaWxkcmVuKWlmKGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJiYXNlInx8YS50YWdOYW1lPT09InRpdGxlIikpe2lmKGUuaGFzKGEudGFnTmFtZSkpcmV0dXJuITE7ZS5hZGQoYS50YWdOYW1lKX1sZXQgcj10LmNoaWxkcmVuWzBdO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCJ9ZnVuY3Rpb24gbG1hKHQpe2xldCBlPWVzKHQsLTEsITApO3JldHVybiFlfHxlLnR5cGUhPT0iY29tbWVudCImJiEoZS50eXBlPT09InRleHQiJiZJaChlLnZhbHVlLmNoYXJBdCgwKSkpJiYhKGUudHlwZT09PSJlbGVtZW50IiYmKGUudGFnTmFtZT09PSJtZXRhInx8ZS50YWdOYW1lPT09ImxpbmsifHxlLnRhZ05hbWU9PT0ic2NyaXB0Inx8ZS50YWdOYW1lPT09InN0eWxlInx8ZS50YWdOYW1lPT09InRlbXBsYXRlIikpfWZ1bmN0aW9uIGNtYSh0LGUscil7bGV0IGE9ZXdlKHIsZSkscz1lcyh0LC0xLCEwKTtyZXR1cm4gciYmYSYmYS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZqTShhLHIuY2hpbGRyZW4uaW5kZXhPZihhKSxyKT8hMTohIShzJiZzLnR5cGU9PT0iZWxlbWVudCImJnMudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiBkbWEodCxlLHIpe2xldCBhPWV3ZShyLGUpLHM9ZXModCwtMSk7cmV0dXJuIHImJmEmJmEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJ0aGVhZCJ8fGEudGFnTmFtZT09PSJ0Ym9keSIpJiZqTShhLHIuY2hpbGRyZW4uaW5kZXhPZihhKSxyKT8hMTohIShzJiZzLnR5cGU9PT0iZWxlbWVudCImJnMudGFnTmFtZT09PSJ0ciIpfXZhciBkT3QsdU90PXUoKCk9PntzbGUoKTt0d2UoKTtpd2UoKTtyd2UoKTtkT3Q9bmxlKHtib2R5OmxtYSxjb2xncm91cDpjbWEsaGVhZDpvbWEsaHRtbDpubWEsdGJvZHk6ZG1hfSk7aShubWEsImh0bWwiKTtpKG9tYSwiaGVhZCIpO2kobG1hLCJib2R5Iik7aShjbWEsImNvbGdyb3VwIik7aShkbWEsInRib2R5Iil9KTtmdW5jdGlvbiBwT3QodCxlLHIsYSl7bGV0IHM9YS5zY2hlbWEsbj1zLnNwYWNlPT09InN2ZyI/ITE6YS5zZXR0aW5ncy5vbWl0T3B0aW9uYWxUYWdzLG89cy5zcGFjZT09PSJzdmciP2Euc2V0dGluZ3MuY2xvc2VFbXB0eUVsZW1lbnRzOmEuc2V0dGluZ3Mudm9pZHMuaW5jbHVkZXModC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpLGw9W10sYztzLnNwYWNlPT09Imh0bWwiJiZ0LnRhZ05hbWU9PT0ic3ZnIiYmKGEuc2NoZW1hPXRsZSk7bGV0IGQ9dW1hKGEsdC5wcm9wZXJ0aWVzKSxmPWEuYWxsKHMuc3BhY2U9PT0iaHRtbCImJnQudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/dC5jb250ZW50OnQpO3JldHVybiBhLnNjaGVtYT1zLGYmJihvPSExKSwoZHx8IW58fCFkT3QodCxlLHIpKSYmKGwucHVzaCgiPCIsdC50YWdOYW1lLGQ/IiAiK2Q6IiIpLG8mJihzLnNwYWNlPT09InN2ZyJ8fGEuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihjPWQuY2hhckF0KGQubGVuZ3RoLTEpLCghYS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxjPT09Ii8ifHxjJiZjIT09JyInJiZjIT09IiciKSYmbC5wdXNoKCIgIiksbC5wdXNoKCIvIikpLGwucHVzaCgiPiIpKSxsLnB1c2goZiksIW8mJighbnx8IWpNKHQsZSxyKSkmJmwucHVzaCgiPC8iK3QudGFnTmFtZSsiPiIpLGwuam9pbigiIil9ZnVuY3Rpb24gdW1hKHQsZSl7bGV0IHI9W10sYT0tMSxzO2lmKGUpe2ZvcihzIGluIGUpaWYoZVtzXSE9PW51bGwmJmVbc10hPT12b2lkIDApe2xldCBuPXBtYSh0LHMsZVtzXSk7biYmci5wdXNoKG4pfX1mb3IoOysrYTxyLmxlbmd0aDspe2xldCBuPXQuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP3JbYV0uY2hhckF0KHJbYV0ubGVuZ3RoLTEpOnZvaWQgMDthIT09ci5sZW5ndGgtMSYmbiE9PSciJyYmbiE9PSInIiYmKHJbYV0rPSIgIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gcG1hKHQsZSxyKXtsZXQgYT1aeWUodC5zY2hlbWEsZSkscz10LnNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnMmJnQuc2NoZW1hLnNwYWNlPT09Imh0bWwiPzA6MSxuPXQuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPzA6MSxvPXQucXVvdGUsbDtpZihhLm92ZXJsb2FkZWRCb29sZWFuJiYocj09PWEuYXR0cmlidXRlfHxyPT09IiIpP3I9ITA6KGEuYm9vbGVhbnx8YS5vdmVybG9hZGVkQm9vbGVhbikmJih0eXBlb2YgciE9InN0cmluZyJ8fHI9PT1hLmF0dHJpYnV0ZXx8cj09PSIiKSYmKHI9ISFyKSxyPT1udWxsfHxyPT09ITF8fHR5cGVvZiByPT0ibnVtYmVyIiYmTnVtYmVyLmlzTmFOKHIpKXJldHVybiIiO2xldCBjPW40KGEuYXR0cmlidXRlLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6b2xlLm5hbWVbc11bbl19KSk7cmV0dXJuIHI9PT0hMHx8KHI9QXJyYXkuaXNBcnJheShyKT8oYS5jb21tYVNlcGFyYXRlZD90T3Q6YU90KShyLHtwYWRMZWZ0OiF0LnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c30pOlN0cmluZyhyKSx0LnNldHRpbmdzLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzJiYhcik/YzoodC5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCYmKGw9bjQocixPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7YXR0cmlidXRlOiEwLHN1YnNldDpvbGUudW5xdW90ZWRbc11bbl19KSkpLGwhPT1yJiYodC5zZXR0aW5ncy5xdW90ZVNtYXJ0JiZveChyLG8pPm94KHIsdC5hbHRlcm5hdGl2ZSkmJihvPXQuYWx0ZXJuYXRpdmUpLGw9bytuNChyLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6KG89PT0iJyI/b2xlLnNpbmdsZTpvbGUuZG91YmxlKVtzXVtuXSxhdHRyaWJ1dGU6ITB9KSkrbyksYysobCYmIj0iK2wpKX12YXIgb2xlLGZPdD11KCgpPT57anhlKCk7ck90KCk7UXllKCk7aU90KCk7aWxlKCk7aXdlKCk7dU90KCk7b2xlPXtuYW1lOltbYAkKXGZcciAmLz0+YC5zcGxpdCgiIiksYAkKXGZcciAiJicvPT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJy88PT5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnLzw9PlxgYC5zcGxpdCgiIildXSx1bnF1b3RlZDpbW2AJClxmXHIgJj5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXV0sc2luZ2xlOltbIiYnIi5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsiXDAmJyIuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXSxkb3VibGU6W1snIiYnLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWydcMCImJy5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dfTtpKHBPdCwiZWxlbWVudCIpO2kodW1hLCJzZXJpYWxpemVBdHRyaWJ1dGVzIik7aShwbWEsInNlcmlhbGl6ZUF0dHJpYnV0ZSIpfSk7ZnVuY3Rpb24gbGxlKHQsZSxyLGEpe3JldHVybiByJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0ic2NyaXB0Inx8ci50YWdOYW1lPT09InN0eWxlIik/dC52YWx1ZTpuNCh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30sYS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6Zm1hfSkpfXZhciBmbWEsc3dlPXUoKCk9PntpbGUoKTtmbWE9WyI8IiwiJiJdO2kobGxlLCJ0ZXh0Iil9KTtmdW5jdGlvbiBoT3QodCxlLHIsYSl7cmV0dXJuIGEuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sP3QudmFsdWU6bGxlKHQsZSxyLGEpfXZhciBtT3Q9dSgoKT0+e3N3ZSgpO2koaE90LCJyYXciKX0pO2Z1bmN0aW9uIGdPdCh0LGUscixhKXtyZXR1cm4gYS5hbGwodCl9dmFyIGJPdD11KCgpPT57aShnT3QsInJvb3QiKX0pO2Z1bmN0aW9uIGhtYSh0KXt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIG5vZGUsIG5vdCBgIit0KyJgIil9ZnVuY3Rpb24gbW1hKHQpe2xldCBlPXQ7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCIrZS50eXBlKyJgIil9dmFyIHhPdCx2T3Q9dSgoKT0+e3R2ZSgpO1hOdCgpO2VPdCgpO2ZPdCgpO21PdCgpO2JPdCgpO3N3ZSgpO3hPdD1vMWUoInR5cGUiLHtpbnZhbGlkOmhtYSx1bmtub3duOm1tYSxoYW5kbGVyczp7Y29tbWVudDpRTnQsZG9jdHlwZTpKTnQsZWxlbWVudDpwT3QscmF3OmhPdCxyb290OmdPdCx0ZXh0OmxsZX19KTtpKGhtYSwiaW52YWxpZCIpO2kobW1hLCJ1bmtub3duIil9KTtmdW5jdGlvbiBud2UodCxlKXtsZXQgcj1lfHxnbWEsYT1yLnF1b3RlfHwnIicscz1hPT09JyInPyInIjonIic7aWYoYSE9PSciJyYmYSE9PSInIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcXVvdGUgYCIrYSsiYCwgZXhwZWN0ZWQgYCdgIG9yIGBcImAiKTtyZXR1cm57b25lOnZtYSxhbGw6eW1hLHNldHRpbmdzOntvbWl0T3B0aW9uYWxUYWdzOnIub21pdE9wdGlvbmFsVGFnc3x8ITEsYWxsb3dQYXJzZUVycm9yczpyLmFsbG93UGFyc2VFcnJvcnN8fCExLGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczpyLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyc3x8ITEscXVvdGVTbWFydDpyLnF1b3RlU21hcnR8fCExLHByZWZlclVucXVvdGVkOnIucHJlZmVyVW5xdW90ZWR8fCExLHRpZ2h0QXR0cmlidXRlczpyLnRpZ2h0QXR0cmlidXRlc3x8ITEsdXBwZXJEb2N0eXBlOnIudXBwZXJEb2N0eXBlfHwhMSx0aWdodERvY3R5cGU6ci50aWdodERvY3R5cGV8fCExLGJvZ3VzQ29tbWVudHM6ci5ib2d1c0NvbW1lbnRzfHwhMSx0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6ci50aWdodENvbW1hU2VwYXJhdGVkTGlzdHN8fCExLHRpZ2h0U2VsZkNsb3Npbmc6ci50aWdodFNlbGZDbG9zaW5nfHwhMSxjb2xsYXBzZUVtcHR5QXR0cmlidXRlczpyLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzfHwhMSxhbGxvd0Rhbmdlcm91c0h0bWw6ci5hbGxvd0Rhbmdlcm91c0h0bWx8fCExLHZvaWRzOnIudm9pZHN8fGdOdCxjaGFyYWN0ZXJSZWZlcmVuY2VzOnIuY2hhcmFjdGVyUmVmZXJlbmNlc3x8Ym1hLGNsb3NlU2VsZkNsb3Npbmc6ci5jbG9zZVNlbGZDbG9zaW5nfHwhMSxjbG9zZUVtcHR5RWxlbWVudHM6ci5jbG9zZUVtcHR5RWxlbWVudHN8fCExfSxzY2hlbWE6ci5zcGFjZT09PSJzdmciP3RsZTokTnQscXVvdGU6YSxhbHRlcm5hdGl2ZTpzfS5vbmUoQXJyYXkuaXNBcnJheSh0KT97dHlwZToicm9vdCIsY2hpbGRyZW46dH06dCx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiB2bWEodCxlLHIpe3JldHVybiB4T3QodCxlLHIsdGhpcyl9ZnVuY3Rpb24geW1hKHQpe2xldCBlPVtdLHI9dCYmdC5jaGlsZHJlbnx8eG1hLGE9LTE7Zm9yKDsrK2E8ci5sZW5ndGg7KWVbYV09dGhpcy5vbmUoclthXSxhLHQpO3JldHVybiBlLmpvaW4oIiIpfXZhciBnbWEsYm1hLHhtYSx5T3Q9dSgoKT0+e2JOdCgpO1F5ZSgpO3ZPdCgpO2dtYT17fSxibWE9e30seG1hPVtdO2kobndlLCJ0b0h0bWwiKTtpKHZtYSwib25lIik7aSh5bWEsImFsbCIpfSk7dmFyIHdPdD11KCgpPT57eU90KCl9KTtmdW5jdGlvbiB3eCh0KXtsZXQgZT10aGlzLHtoYW5kbGVyczpyLHNhbml0aXplOmEsLi4uc309dHx8d21hLG49ITEsbzt0eXBlb2YgYT09ImJvb2xlYW4iP249IWE6YSYmKG89YSksZS5jb21waWxlcj1sO2Z1bmN0aW9uIGwoYyxkKXtsZXQgZj1SeWUoYyx7aGFuZGxlcnM6cixhbGxvd0Rhbmdlcm91c0h0bWw6bn0pLHA9bj9mOkF5ZShmLG8pLGg9bndlKHAsey4uLnMsYWxsb3dEYW5nZXJvdXNIdG1sOm59KTtyZXR1cm4gZC5leHRuYW1lJiYoZC5leHRuYW1lPSIuaHRtbCIpLGMmJmMudHlwZT09PSJyb290IiYmaCYmL1teXHJcbl0vLnRlc3QoaC5jaGFyQXQoaC5sZW5ndGgtMSkpP2grYApgOmh9aShsLCJjb21waWxlciIpfXZhciB3bWEsa090PXUoKCk9Pnt1UHQoKTttTnQoKTt3T3QoKTt3bWE9e307aSh3eCwicmVtYXJrSHRtbCIpfSk7dmFyIFNPdD11KCgpPT57a090KCl9KTtmdW5jdGlvbiBreCh0KXtsZXQgZT10aGlzO2UuY29tcGlsZXI9cjtmdW5jdGlvbiByKGEpe3JldHVybiBrdmUoYSx7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9aShyLCJjb21waWxlciIpfXZhciBNT3Q9dSgoKT0+e2IxZSgpO2koa3gsInJlbWFya1N0cmluZ2lmeSIpfSk7dmFyIENPdD11KCgpPT57TU90KCl9KTtmdW5jdGlvbiBrbWEodCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHI9YXJndW1lbnRzW2VdO2Zvcih2YXIgYSBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGEpJiYodFthXT1yW2FdKX1yZXR1cm4gdH1mdW5jdGlvbiBvd2UodCxlKXtyZXR1cm4gQXJyYXkoZSsxKS5qb2luKHQpfWZ1bmN0aW9uIHpPdCh0KXtyZXR1cm4gdC5yZXBsYWNlKC9eXG4qLywiIil9ZnVuY3Rpb24gX090KHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlPjAmJnRbZS0xXT09PWAKYDspZS0tO3JldHVybiB0LnN1YnN0cmluZygwLGUpfWZ1bmN0aW9uIFRPdCh0KXtyZXR1cm4gX090KHpPdCh0KSl9ZnVuY3Rpb24gbHdlKHQpe3JldHVybiBjd2UodCxTbWEpfWZ1bmN0aW9uIERPdCh0KXtyZXR1cm4gY3dlKHQsTE90KX1mdW5jdGlvbiBNbWEodCl7cmV0dXJuIEFPdCh0LExPdCl9ZnVuY3Rpb24gQ21hKHQpe3JldHVybiBjd2UodCwkT3QpfWZ1bmN0aW9uIHptYSh0KXtyZXR1cm4gQU90KHQsJE90KX1mdW5jdGlvbiBjd2UodCxlKXtyZXR1cm4gZS5pbmRleE9mKHQubm9kZU5hbWUpPj0wfWZ1bmN0aW9uIEFPdCh0LGUpe3JldHVybiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lJiZlLnNvbWUoZnVuY3Rpb24ocil7cmV0dXJuIHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocikubGVuZ3RofSl9ZnVuY3Rpb24gRU90KHQpe3JldHVybiBfbWEucmVkdWNlKGZ1bmN0aW9uKGUscil7cmV0dXJuIGUucmVwbGFjZShyWzBdLHJbMV0pfSx0KX1mdW5jdGlvbiBjbGUodCl7cmV0dXJuIHQ/dC5yZXBsYWNlKC8oXG4rXHMqKSsvZyxgCmApOiIifWZ1bmN0aW9uIGR3ZSh0KXt2YXIgZT10LnJlcGxhY2UoLyhbPD4oKV0pL2csIlxcJDEiKTtyZXR1cm4gZS5pbmRleE9mKCIgIik+PTA/IjwiK2UrIj4iOmV9ZnVuY3Rpb24gdXdlKHQpe3JldHVybiB0LnJlcGxhY2UoLyIvZywnXFwiJyl9ZnVuY3Rpb24gSU90KHQpe3RoaXMub3B0aW9ucz10LHRoaXMuX2tlZXA9W10sdGhpcy5fcmVtb3ZlPVtdLHRoaXMuYmxhbmtSdWxlPXtyZXBsYWNlbWVudDp0LmJsYW5rUmVwbGFjZW1lbnR9LHRoaXMua2VlcFJlcGxhY2VtZW50PXQua2VlcFJlcGxhY2VtZW50LHRoaXMuZGVmYXVsdFJ1bGU9e3JlcGxhY2VtZW50OnQuZGVmYXVsdFJlcGxhY2VtZW50fSx0aGlzLmFycmF5PVtdO2Zvcih2YXIgZSBpbiB0LnJ1bGVzKXRoaXMuYXJyYXkucHVzaCh0LnJ1bGVzW2VdKX1mdW5jdGlvbiBwd2UodCxlLHIpe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgcz10W2FdO2lmKFRtYShzLGUscikpcmV0dXJuIHN9fWZ1bmN0aW9uIFRtYSh0LGUscil7dmFyIGE9dC5maWx0ZXI7aWYodHlwZW9mIGE9PSJzdHJpbmciKXtpZihhPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiEwfWVsc2UgaWYoQXJyYXkuaXNBcnJheShhKSl7aWYoYS5pbmRleE9mKGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk+LTEpcmV0dXJuITB9ZWxzZSBpZih0eXBlb2YgYT09ImZ1bmN0aW9uIil7aWYoYS5jYWxsKHQsZSxyKSlyZXR1cm4hMH1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoImBmaWx0ZXJgIG5lZWRzIHRvIGJlIGEgc3RyaW5nLCBhcnJheSwgb3IgZnVuY3Rpb24iKX1mdW5jdGlvbiBMbWEodCl7dmFyIGU9dC5lbGVtZW50LHI9dC5pc0Jsb2NrLGE9dC5pc1ZvaWQscz10LmlzUHJlfHxmdW5jdGlvbihwKXtyZXR1cm4gcC5ub2RlTmFtZT09PSJQUkUifTtpZighKCFlLmZpcnN0Q2hpbGR8fHMoZSkpKXtmb3IodmFyIG49bnVsbCxvPSExLGw9bnVsbCxjPVBPdChsLGUscyk7YyE9PWU7KXtpZihjLm5vZGVUeXBlPT09M3x8Yy5ub2RlVHlwZT09PTQpe3ZhciBkPWMuZGF0YS5yZXBsYWNlKC9bIFxyXG5cdF0rL2csIiAiKTtpZigoIW58fC8gJC8udGVzdChuLmRhdGEpKSYmIW8mJmRbMF09PT0iICImJihkPWQuc3Vic3RyKDEpKSwhZCl7Yz1md2UoYyk7Y29udGludWV9Yy5kYXRhPWQsbj1jfWVsc2UgaWYoYy5ub2RlVHlwZT09PTEpcihjKXx8Yy5ub2RlTmFtZT09PSJCUiI/KG4mJihuLmRhdGE9bi5kYXRhLnJlcGxhY2UoLyAkLywiIikpLG49bnVsbCxvPSExKTphKGMpfHxzKGMpPyhuPW51bGwsbz0hMCk6biYmKG89ITEpO2Vsc2V7Yz1md2UoYyk7Y29udGludWV9dmFyIGY9UE90KGwsYyxzKTtsPWMsYz1mfW4mJihuLmRhdGE9bi5kYXRhLnJlcGxhY2UoLyAkLywiIiksbi5kYXRhfHxmd2UobikpfX1mdW5jdGlvbiBmd2UodCl7dmFyIGU9dC5uZXh0U2libGluZ3x8dC5wYXJlbnROb2RlO3JldHVybiB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksZX1mdW5jdGlvbiBQT3QodCxlLHIpe3JldHVybiB0JiZ0LnBhcmVudE5vZGU9PT1lfHxyKGUpP2UubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZTplLmZpcnN0Q2hpbGR8fGUubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZX1mdW5jdGlvbiBEbWEoKXt2YXIgdD1od2UuRE9NUGFyc2VyLGU9ITE7dHJ5e25ldyB0KCkucGFyc2VGcm9tU3RyaW5nKCIiLCJ0ZXh0L2h0bWwiKSYmKGU9ITApfWNhdGNoe31yZXR1cm4gZX1mdW5jdGlvbiAkbWEoKXt2YXIgdD1pKGZ1bmN0aW9uKCl7fSwiUGFyc2VyIik7cmV0dXJuIEFtYSgpP3QucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbihlKXt2YXIgcj1uZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIik7cmV0dXJuIHIuZGVzaWduTW9kZT0ib24iLHIub3BlbigpLHIud3JpdGUoZSksci5jbG9zZSgpLHJ9OnQucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbihlKXt2YXIgcj1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3JldHVybiByLm9wZW4oKSxyLndyaXRlKGUpLHIuY2xvc2UoKSxyfSx0fWZ1bmN0aW9uIEFtYSgpe3ZhciB0PSExO3RyeXtkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLm9wZW4oKX1jYXRjaHtod2UuQWN0aXZlWE9iamVjdCYmKHQ9ITApfXJldHVybiB0fWZ1bmN0aW9uIEltYSh0LGUpe3ZhciByO2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7dmFyIGE9UG1hKCkucGFyc2VGcm9tU3RyaW5nKCc8eC10dXJuZG93biBpZD0idHVybmRvd24tcm9vdCI+Jyt0KyI8L3gtdHVybmRvd24+IiwidGV4dC9odG1sIik7cj1hLmdldEVsZW1lbnRCeUlkKCJ0dXJuZG93bi1yb290Iil9ZWxzZSByPXQuY2xvbmVOb2RlKCEwKTtyZXR1cm4gTG1hKHtlbGVtZW50OnIsaXNCbG9jazpsd2UsaXNWb2lkOkRPdCxpc1ByZTplLnByZWZvcm1hdHRlZENvZGU/Tm1hOm51bGx9KSxyfWZ1bmN0aW9uIFBtYSgpe3JldHVybiBtd2U9bXdlfHxuZXcgRW1hLG13ZX1mdW5jdGlvbiBObWEodCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iUFJFInx8dC5ub2RlTmFtZT09PSJDT0RFIn1mdW5jdGlvbiBPbWEodCxlKXtyZXR1cm4gdC5pc0Jsb2NrPWx3ZSh0KSx0LmlzQ29kZT10Lm5vZGVOYW1lPT09IkNPREUifHx0LnBhcmVudE5vZGUuaXNDb2RlLHQuaXNCbGFuaz1SbWEodCksdC5mbGFua2luZ1doaXRlc3BhY2U9Rm1hKHQsZSksdH1mdW5jdGlvbiBSbWEodCl7cmV0dXJuIURPdCh0KSYmIUNtYSh0KSYmL15ccyokL2kudGVzdCh0LnRleHRDb250ZW50KSYmIU1tYSh0KSYmIXptYSh0KX1mdW5jdGlvbiBGbWEodCxlKXtpZih0LmlzQmxvY2t8fGUucHJlZm9ybWF0dGVkQ29kZSYmdC5pc0NvZGUpcmV0dXJue2xlYWRpbmc6IiIsdHJhaWxpbmc6IiJ9O3ZhciByPUJtYSh0LnRleHRDb250ZW50KTtyZXR1cm4gci5sZWFkaW5nQXNjaWkmJk5PdCgibGVmdCIsdCxlKSYmKHIubGVhZGluZz1yLmxlYWRpbmdOb25Bc2NpaSksci50cmFpbGluZ0FzY2lpJiZOT3QoInJpZ2h0Iix0LGUpJiYoci50cmFpbGluZz1yLnRyYWlsaW5nTm9uQXNjaWkpLHtsZWFkaW5nOnIubGVhZGluZyx0cmFpbGluZzpyLnRyYWlsaW5nfX1mdW5jdGlvbiBCbWEodCl7dmFyIGU9dC5tYXRjaCgvXigoWyBcdFxyXG5dKikoXHMqKSkoPzooPz1cUylbXHNcU10qXFMpPygoXHMqPykoWyBcdFxyXG5dKikpJC8pO3JldHVybntsZWFkaW5nOmVbMV0sbGVhZGluZ0FzY2lpOmVbMl0sbGVhZGluZ05vbkFzY2lpOmVbM10sdHJhaWxpbmc6ZVs0XSx0cmFpbGluZ05vbkFzY2lpOmVbNV0sdHJhaWxpbmdBc2NpaTplWzZdfX1mdW5jdGlvbiBOT3QodCxlLHIpe3ZhciBhLHMsbjtyZXR1cm4gdD09PSJsZWZ0Ij8oYT1lLnByZXZpb3VzU2libGluZyxzPS8gJC8pOihhPWUubmV4dFNpYmxpbmcscz0vXiAvKSxhJiYoYS5ub2RlVHlwZT09PTM/bj1zLnRlc3QoYS5ub2RlVmFsdWUpOnIucHJlZm9ybWF0dGVkQ29kZSYmYS5ub2RlTmFtZT09PSJDT0RFIj9uPSExOmEubm9kZVR5cGU9PT0xJiYhbHdlKGEpJiYobj1zLnRlc3QoYS50ZXh0Q29udGVudCkpKSxufWZ1bmN0aW9uIFB1KHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFB1KSlyZXR1cm4gbmV3IFB1KHQpO3ZhciBlPXtydWxlczpzbyxoZWFkaW5nU3R5bGU6InNldGV4dCIsaHI6IiogKiAqIixidWxsZXRMaXN0TWFya2VyOiIqIixjb2RlQmxvY2tTdHlsZToiaW5kZW50ZWQiLGZlbmNlOiJgYGAiLGVtRGVsaW1pdGVyOiJfIixzdHJvbmdEZWxpbWl0ZXI6IioqIixsaW5rU3R5bGU6ImlubGluZWQiLGxpbmtSZWZlcmVuY2VTdHlsZToiZnVsbCIsYnI6IiAgIixwcmVmb3JtYXR0ZWRDb2RlOiExLGJsYW5rUmVwbGFjZW1lbnQ6aShmdW5jdGlvbihyLGEpe3JldHVybiBhLmlzQmxvY2s/YAoKYDoiIn0sImJsYW5rUmVwbGFjZW1lbnQiKSxrZWVwUmVwbGFjZW1lbnQ6aShmdW5jdGlvbihyLGEpe3JldHVybiBhLmlzQmxvY2s/YAoKYCthLm91dGVySFRNTCtgCgpgOmEub3V0ZXJIVE1MfSwia2VlcFJlcGxhY2VtZW50IiksZGVmYXVsdFJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocixhKXtyZXR1cm4gYS5pc0Jsb2NrP2AKCmArcitgCgpgOnJ9LCJkZWZhdWx0UmVwbGFjZW1lbnQiKX07dGhpcy5vcHRpb25zPWttYSh7fSxlLHQpLHRoaXMucnVsZXM9bmV3IElPdCh0aGlzLm9wdGlvbnMpfWZ1bmN0aW9uIE9PdCh0KXt2YXIgZT10aGlzO3JldHVybiBIbWEuY2FsbCh0LmNoaWxkTm9kZXMsZnVuY3Rpb24ocixhKXthPW5ldyBPbWEoYSxlLm9wdGlvbnMpO3ZhciBzPSIiO3JldHVybiBhLm5vZGVUeXBlPT09Mz9zPWEuaXNDb2RlP2Eubm9kZVZhbHVlOmUuZXNjYXBlKGEubm9kZVZhbHVlKTphLm5vZGVUeXBlPT09MSYmKHM9Vm1hLmNhbGwoZSxhKSksUk90KHIscyl9LCIiKX1mdW5jdGlvbiBxbWEodCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5ydWxlcy5mb3JFYWNoKGZ1bmN0aW9uKHIpe3R5cGVvZiByLmFwcGVuZD09ImZ1bmN0aW9uIiYmKHQ9Uk90KHQsci5hcHBlbmQoZS5vcHRpb25zKSkpfSksdC5yZXBsYWNlKC9eW1x0XHJcbl0rLywiIikucmVwbGFjZSgvW1x0XHJcblxzXSskLywiIil9ZnVuY3Rpb24gVm1hKHQpe3ZhciBlPXRoaXMucnVsZXMuZm9yTm9kZSh0KSxyPU9PdC5jYWxsKHRoaXMsdCksYT10LmZsYW5raW5nV2hpdGVzcGFjZTtyZXR1cm4oYS5sZWFkaW5nfHxhLnRyYWlsaW5nKSYmKHI9ci50cmltKCkpLGEubGVhZGluZytlLnJlcGxhY2VtZW50KHIsdCx0aGlzLm9wdGlvbnMpK2EudHJhaWxpbmd9ZnVuY3Rpb24gUk90KHQsZSl7dmFyIHI9X090KHQpLGE9ek90KGUpLHM9TWF0aC5tYXgodC5sZW5ndGgtci5sZW5ndGgsZS5sZW5ndGgtYS5sZW5ndGgpLG49YAoKYC5zdWJzdHJpbmcoMCxzKTtyZXR1cm4gcituK2F9ZnVuY3Rpb24gam1hKHQpe3JldHVybiB0IT1udWxsJiYodHlwZW9mIHQ9PSJzdHJpbmcifHx0Lm5vZGVUeXBlJiYodC5ub2RlVHlwZT09PTF8fHQubm9kZVR5cGU9PT05fHx0Lm5vZGVUeXBlPT09MTEpKX12YXIgU21hLExPdCwkT3QsX21hLHNvLGh3ZSxFbWEsbXdlLEhtYSxGT3Q9dSgoKT0+e2koa21hLCJleHRlbmQiKTtpKG93ZSwicmVwZWF0Iik7aSh6T3QsInRyaW1MZWFkaW5nTmV3bGluZXMiKTtpKF9PdCwidHJpbVRyYWlsaW5nTmV3bGluZXMiKTtpKFRPdCwidHJpbU5ld2xpbmVzIik7U21hPVsiQUREUkVTUyIsIkFSVElDTEUiLCJBU0lERSIsIkFVRElPIiwiQkxPQ0tRVU9URSIsIkJPRFkiLCJDQU5WQVMiLCJDRU5URVIiLCJERCIsIkRJUiIsIkRJViIsIkRMIiwiRFQiLCJGSUVMRFNFVCIsIkZJR0NBUFRJT04iLCJGSUdVUkUiLCJGT09URVIiLCJGT1JNIiwiRlJBTUVTRVQiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJIRUFERVIiLCJIR1JPVVAiLCJIUiIsIkhUTUwiLCJJU0lOREVYIiwiTEkiLCJNQUlOIiwiTUVOVSIsIk5BViIsIk5PRlJBTUVTIiwiTk9TQ1JJUFQiLCJPTCIsIk9VVFBVVCIsIlAiLCJQUkUiLCJTRUNUSU9OIiwiVEFCTEUiLCJUQk9EWSIsIlREIiwiVEZPT1QiLCJUSCIsIlRIRUFEIiwiVFIiLCJVTCJdO2kobHdlLCJpc0Jsb2NrIik7TE90PVsiQVJFQSIsIkJBU0UiLCJCUiIsIkNPTCIsIkNPTU1BTkQiLCJFTUJFRCIsIkhSIiwiSU1HIiwiSU5QVVQiLCJLRVlHRU4iLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNFIiwiVFJBQ0siLCJXQlIiXTtpKERPdCwiaXNWb2lkIik7aShNbWEsImhhc1ZvaWQiKTskT3Q9WyJBIiwiVEFCTEUiLCJUSEVBRCIsIlRCT0RZIiwiVEZPT1QiLCJUSCIsIlREIiwiSUZSQU1FIiwiU0NSSVBUIiwiQVVESU8iLCJWSURFTyJdO2koQ21hLCJpc01lYW5pbmdmdWxXaGVuQmxhbmsiKTtpKHptYSwiaGFzTWVhbmluZ2Z1bFdoZW5CbGFuayIpO2koY3dlLCJpcyIpO2koQU90LCJoYXMiKTtfbWE9W1svXFwvZywiXFxcXCJdLFsvXCovZywiXFwqIl0sWy9eLS9nLCJcXC0iXSxbL15cKyAvZywiXFwrICJdLFsvXig9KykvZywiXFwkMSJdLFsvXigjezEsNn0pIC9nLCJcXCQxICJdLFsvYC9nLCJcXGAiXSxbL15+fn4vZywiXFx+fn4iXSxbL1xbL2csIlxcWyJdLFsvXF0vZywiXFxdIl0sWy9ePi9nLCJcXD4iXSxbL18vZywiXFxfIl0sWy9eKFxkKylcLiAvZywiJDFcXC4gIl1dO2koRU90LCJlc2NhcGVNYXJrZG93biIpO3NvPXt9O3NvLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQpe3JldHVybmAKCmArdCtgCgpgfSwicmVwbGFjZW1lbnQiKX0sc28ubGluZUJyZWFrPXtmaWx0ZXI6ImJyIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gci5icitgCmB9LCJyZXBsYWNlbWVudCIpfSxzby5oZWFkaW5nPXtmaWx0ZXI6WyJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1OdW1iZXIoZS5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKHIuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJmE8Myl7dmFyIHM9b3dlKGE9PT0xPyI9IjoiLSIsdC5sZW5ndGgpO3JldHVybmAKCmArdCtgCmArcytgCgpgfWVsc2UgcmV0dXJuYAoKYCtvd2UoIiMiLGEpKyIgIit0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5ibG9ja3F1b3RlPXtmaWx0ZXI6ImJsb2NrcXVvdGUiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ9VE90KHQpLnJlcGxhY2UoL14vZ20sIj4gIiksYAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5saXN0PXtmaWx0ZXI6WyJ1bCIsIm9sIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUpe3ZhciByPWUucGFyZW50Tm9kZTtyZXR1cm4gci5ub2RlTmFtZT09PSJMSSImJnIubGFzdEVsZW1lbnRDaGlsZD09PWU/YApgK3Q6YAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5saXN0SXRlbT17ZmlsdGVyOiJsaSIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7dmFyIGE9ci5idWxsZXRMaXN0TWFya2VyKyIgICAiLHM9ZS5wYXJlbnROb2RlO2lmKHMubm9kZU5hbWU9PT0iT0wiKXt2YXIgbj1zLmdldEF0dHJpYnV0ZSgic3RhcnQiKSxvPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwocy5jaGlsZHJlbixlKTthPShuP051bWJlcihuKStvOm8rMSkrIi4gICJ9dmFyIGw9L1xuJC8udGVzdCh0KTtyZXR1cm4gdD1UT3QodCkrKGw/YApgOiIiKSx0PXQucmVwbGFjZSgvXG4vZ20sYApgKyIgIi5yZXBlYXQoYS5sZW5ndGgpKSxhK3QrKGUubmV4dFNpYmxpbmc/YApgOiIiKX0sInJlcGxhY2VtZW50Iil9LHNvLmluZGVudGVkQ29kZUJsb2NrPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmNvZGVCbG9ja1N0eWxlPT09ImluZGVudGVkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe3JldHVybmAKCiAgICBgK2UuZmlyc3RDaGlsZC50ZXh0Q29udGVudC5yZXBsYWNlKC9cbi9nLGAKICAgIGApK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5mZW5jZWRDb2RlQmxvY2s9e2ZpbHRlcjppKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iZmVuY2VkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixzPShhLm1hdGNoKC9sYW5ndWFnZS0oXFMrKS8pfHxbbnVsbCwiIl0pWzFdLG49ZS5maXJzdENoaWxkLnRleHRDb250ZW50LG89ci5mZW5jZS5jaGFyQXQoMCksbD0zLGM9bmV3IFJlZ0V4cCgiXiIrbysiezMsfSIsImdtIiksZDtkPWMuZXhlYyhuKTspZFswXS5sZW5ndGg+PWwmJihsPWRbMF0ubGVuZ3RoKzEpO3ZhciBmPW93ZShvLGwpO3JldHVybmAKCmArZitzK2AKYCtuLnJlcGxhY2UoL1xuJC8sIiIpK2AKYCtmK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5ob3Jpem9udGFsUnVsZT17ZmlsdGVyOiJociIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuYAoKYCtyLmhyK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5pbmxpbmVMaW5rPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJpbmxpbmVkIiYmdC5ub2RlTmFtZT09PSJBIiYmdC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlKXt2YXIgcj1kd2UoZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSksYT11d2UoY2xlKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSkscz1hPycgIicrYSsnIic6IiI7cmV0dXJuIlsiK3QrIl0oIityK3MrIikifSwicmVwbGFjZW1lbnQiKX0sc28ucmVmZXJlbmNlTGluaz17ZmlsdGVyOmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5saW5rU3R5bGU9PT0icmVmZXJlbmNlZCImJnQubm9kZU5hbWU9PT0iQSImJnQuZ2V0QXR0cmlidXRlKCJocmVmIil9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1kd2UoZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSkscz1jbGUoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO3MmJihzPScgIicrdXdlKHMpKyciJyk7dmFyIG4sbztzd2l0Y2goci5saW5rUmVmZXJlbmNlU3R5bGUpe2Nhc2UiY29sbGFwc2VkIjpuPSJbIit0KyJdW10iLG89IlsiK3QrIl06ICIrYStzO2JyZWFrO2Nhc2Uic2hvcnRjdXQiOm49IlsiK3QrIl0iLG89IlsiK3QrIl06ICIrYStzO2JyZWFrO2RlZmF1bHQ6dmFyIGw9dGhpcy5yZWZlcmVuY2VzLmxlbmd0aCsxO249IlsiK3QrIl1bIitsKyJdIixvPSJbIitsKyJdOiAiK2Erc31yZXR1cm4gdGhpcy5yZWZlcmVuY2VzLnB1c2gobyksbn0sInJlcGxhY2VtZW50IikscmVmZXJlbmNlczpbXSxhcHBlbmQ6aShmdW5jdGlvbih0KXt2YXIgZT0iIjtyZXR1cm4gdGhpcy5yZWZlcmVuY2VzLmxlbmd0aCYmKGU9YAoKYCt0aGlzLnJlZmVyZW5jZXMuam9pbihgCmApK2AKCmAsdGhpcy5yZWZlcmVuY2VzPVtdKSxlfSwiYXBwZW5kIil9LHNvLmVtcGhhc2lzPXtmaWx0ZXI6WyJlbSIsImkiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC50cmltKCk/ci5lbURlbGltaXRlcit0K3IuZW1EZWxpbWl0ZXI6IiJ9LCJyZXBsYWNlbWVudCIpfSxzby5zdHJvbmc9e2ZpbHRlcjpbInN0cm9uZyIsImIiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC50cmltKCk/ci5zdHJvbmdEZWxpbWl0ZXIrdCtyLnN0cm9uZ0RlbGltaXRlcjoiIn0sInJlcGxhY2VtZW50Iil9LHNvLmNvZGU9e2ZpbHRlcjppKGZ1bmN0aW9uKHQpe3ZhciBlPXQucHJldmlvdXNTaWJsaW5nfHx0Lm5leHRTaWJsaW5nLHI9dC5wYXJlbnROb2RlLm5vZGVOYW1lPT09IlBSRSImJiFlO3JldHVybiB0Lm5vZGVOYW1lPT09IkNPREUiJiYhcn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIiI7dD10LnJlcGxhY2UoL1xyP1xufFxyL2csIiAiKTtmb3IodmFyIGU9L15gfF4gLio/W14gXS4qICR8YCQvLnRlc3QodCk/IiAiOiIiLHI9ImAiLGE9dC5tYXRjaCgvYCsvZ20pfHxbXTthLmluZGV4T2YocikhPT0tMTspcj1yKyJgIjtyZXR1cm4gcitlK3QrZStyfSwicmVwbGFjZW1lbnQiKX0sc28uaW1hZ2U9e2ZpbHRlcjoiaW1nIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSl7dmFyIHI9RU90KGNsZShlLmdldEF0dHJpYnV0ZSgiYWx0IikpKSxhPWR3ZShlLmdldEF0dHJpYnV0ZSgic3JjIil8fCIiKSxzPWNsZShlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSksbj1zPycgIicrdXdlKHMpKyciJzoiIjtyZXR1cm4gYT8iIVsiK3IrIl0oIithK24rIikiOiIifSwicmVwbGFjZW1lbnQiKX07aShjbGUsImNsZWFuQXR0cmlidXRlIik7aShkd2UsImVzY2FwZUxpbmtEZXN0aW5hdGlvbiIpO2kodXdlLCJlc2NhcGVMaW5rVGl0bGUiKTtpKElPdCwiUnVsZXMiKSxJT3QucHJvdG90eXBlPXthZGQ6aShmdW5jdGlvbih0LGUpe3RoaXMuYXJyYXkudW5zaGlmdChlKX0sImFkZCIpLGtlZXA6aShmdW5jdGlvbih0KXt0aGlzLl9rZWVwLnVuc2hpZnQoe2ZpbHRlcjp0LHJlcGxhY2VtZW50OnRoaXMua2VlcFJlcGxhY2VtZW50fSl9LCJrZWVwIikscmVtb3ZlOmkoZnVuY3Rpb24odCl7dGhpcy5fcmVtb3ZlLnVuc2hpZnQoe2ZpbHRlcjp0LHJlcGxhY2VtZW50OmkoZnVuY3Rpb24oKXtyZXR1cm4iIn0sInJlcGxhY2VtZW50Iil9KX0sInJlbW92ZSIpLGZvck5vZGU6aShmdW5jdGlvbih0KXtpZih0LmlzQmxhbmspcmV0dXJuIHRoaXMuYmxhbmtSdWxlO3ZhciBlO3JldHVybihlPXB3ZSh0aGlzLmFycmF5LHQsdGhpcy5vcHRpb25zKSl8fChlPXB3ZSh0aGlzLl9rZWVwLHQsdGhpcy5vcHRpb25zKSl8fChlPXB3ZSh0aGlzLl9yZW1vdmUsdCx0aGlzLm9wdGlvbnMpKT9lOnRoaXMuZGVmYXVsdFJ1bGV9LCJmb3JOb2RlIiksZm9yRWFjaDppKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dGhpcy5hcnJheS5sZW5ndGg7ZSsrKXQodGhpcy5hcnJheVtlXSxlKX0sImZvckVhY2giKX07aShwd2UsImZpbmRSdWxlIik7aShUbWEsImZpbHRlclZhbHVlIik7aShMbWEsImNvbGxhcHNlV2hpdGVzcGFjZSIpO2koZndlLCJyZW1vdmUiKTtpKFBPdCwibmV4dCIpO2h3ZT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e307aShEbWEsImNhblBhcnNlSFRNTE5hdGl2ZWx5Iik7aSgkbWEsImNyZWF0ZUhUTUxQYXJzZXIiKTtpKEFtYSwic2hvdWxkVXNlQWN0aXZlWCIpO0VtYT1EbWEoKT9od2UuRE9NUGFyc2VyOiRtYSgpO2koSW1hLCJSb290Tm9kZSIpO2koUG1hLCJodG1sUGFyc2VyIik7aShObWEsImlzUHJlT3JDb2RlIik7aShPbWEsIk5vZGUiKTtpKFJtYSwiaXNCbGFuayIpO2koRm1hLCJmbGFua2luZ1doaXRlc3BhY2UiKTtpKEJtYSwiZWRnZVdoaXRlc3BhY2UiKTtpKE5PdCwiaXNGbGFua2VkQnlXaGl0ZXNwYWNlIik7SG1hPUFycmF5LnByb3RvdHlwZS5yZWR1Y2U7aShQdSwiVHVybmRvd25TZXJ2aWNlIiksUHUucHJvdG90eXBlPXt0dXJuZG93bjppKGZ1bmN0aW9uKHQpe2lmKCFqbWEodCkpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgc3RyaW5nLCBvciBhbiBlbGVtZW50L2RvY3VtZW50L2ZyYWdtZW50IG5vZGUuIik7aWYodD09PSIiKXJldHVybiIiO3ZhciBlPU9PdC5jYWxsKHRoaXMsbmV3IEltYSh0LHRoaXMub3B0aW9ucykpO3JldHVybiBxbWEuY2FsbCh0aGlzLGUpfSwidHVybmRvd24iKSx1c2U6aShmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMudXNlKHRbZV0pO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdCh0aGlzKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoInBsdWdpbiBtdXN0IGJlIGEgRnVuY3Rpb24gb3IgYW4gQXJyYXkgb2YgRnVuY3Rpb25zIik7cmV0dXJuIHRoaXN9LCJ1c2UiKSxhZGRSdWxlOmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5ydWxlcy5hZGQodCxlKSx0aGlzfSwiYWRkUnVsZSIpLGtlZXA6aShmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ydWxlcy5rZWVwKHQpLHRoaXN9LCJrZWVwIikscmVtb3ZlOmkoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucnVsZXMucmVtb3ZlKHQpLHRoaXN9LCJyZW1vdmUiKSxlc2NhcGU6aShmdW5jdGlvbih0KXtyZXR1cm4gRU90KHQpfSwiZXNjYXBlIil9O2koT090LCJwcm9jZXNzIik7aShxbWEsInBvc3RQcm9jZXNzIik7aShWbWEsInJlcGxhY2VtZW50Rm9yTm9kZSIpO2koUk90LCJqb2luIik7aShqbWEsImNhbkNvbnZlcnQiKX0pO3ZhciB3d2U9e307VmUod3dlLHtnZm06KCk9PnFPdCxoaWdobGlnaHRlZENvZGVCbG9jazooKT0+YndlLHN0cmlrZXRocm91Z2g6KCk9Pnh3ZSx0YWJsZXM6KCk9PnZ3ZSx0YXNrTGlzdEl0ZW1zOigpPT55d2V9KTtmdW5jdGlvbiBid2UodCl7dC5hZGRSdWxlKCJoaWdobGlnaHRlZENvZGVCbG9jayIse2ZpbHRlcjppKGZ1bmN0aW9uKGUpe3ZhciByPWUuZmlyc3RDaGlsZDtyZXR1cm4gZS5ub2RlTmFtZT09PSJESVYiJiZCT3QudGVzdChlLmNsYXNzTmFtZSkmJnImJnIubm9kZU5hbWU9PT0iUFJFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXIuY2xhc3NOYW1lfHwiIixuPShzLm1hdGNoKEJPdCl8fFtudWxsLCIiXSlbMV07cmV0dXJuYAoKYCthLmZlbmNlK24rYApgK3IuZmlyc3RDaGlsZC50ZXh0Q29udGVudCtgCmArYS5mZW5jZStgCgpgfSwicmVwbGFjZW1lbnQiKX0pfWZ1bmN0aW9uIHh3ZSh0KXt0LmFkZFJ1bGUoInN0cmlrZXRocm91Z2giLHtmaWx0ZXI6WyJkZWwiLCJzIiwic3RyaWtlIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbihlKXtyZXR1cm4ifiIrZSsifiJ9LCJyZXBsYWNlbWVudCIpfSl9ZnVuY3Rpb24gZ3dlKHQpe3ZhciBlPXQucGFyZW50Tm9kZTtyZXR1cm4gZS5ub2RlTmFtZT09PSJUSEVBRCJ8fGUuZmlyc3RDaGlsZD09PXQmJihlLm5vZGVOYW1lPT09IlRBQkxFInx8R21hKGUpKSYmV21hLmNhbGwodC5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIpe3JldHVybiByLm5vZGVOYW1lPT09IlRIIn0pfWZ1bmN0aW9uIEdtYSh0KXt2YXIgZT10LnByZXZpb3VzU2libGluZztyZXR1cm4gdC5ub2RlTmFtZT09PSJUQk9EWSImJighZXx8ZS5ub2RlTmFtZT09PSJUSEVBRCImJi9eXHMqJC9pLnRlc3QoZS50ZXh0Q29udGVudCkpfWZ1bmN0aW9uIEhPdCh0LGUpe3ZhciByPVVtYS5jYWxsKGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLGUpLGE9IiAiO3JldHVybiByPT09MCYmKGE9InwgIiksYSt0KyIgfCJ9ZnVuY3Rpb24gdndlKHQpe3Qua2VlcChmdW5jdGlvbihyKXtyZXR1cm4gci5ub2RlTmFtZT09PSJUQUJMRSImJiFnd2Uoci5yb3dzWzBdKX0pO2Zvcih2YXIgZSBpbiBTeCl0LmFkZFJ1bGUoZSxTeFtlXSl9ZnVuY3Rpb24geXdlKHQpe3QuYWRkUnVsZSgidGFza0xpc3RJdGVtcyIse2ZpbHRlcjppKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0iY2hlY2tib3giJiZlLnBhcmVudE5vZGUubm9kZU5hbWU9PT0iTEkifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihlLHIpe3JldHVybihyLmNoZWNrZWQ/Ilt4XSI6IlsgXSIpKyIgIn0sInJlcGxhY2VtZW50Iil9KX1mdW5jdGlvbiBxT3QodCl7dC51c2UoW2J3ZSx4d2UsdndlLHl3ZV0pfXZhciBCT3QsVW1hLFdtYSxTeCxWT3Q9dSgoKT0+e0JPdD0vaGlnaGxpZ2h0LSg/OnRleHR8c291cmNlKS0oW2EtejAtOV0rKS87aShid2UsImhpZ2hsaWdodGVkQ29kZUJsb2NrIik7aSh4d2UsInN0cmlrZXRocm91Z2giKTtVbWE9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsV21hPUFycmF5LnByb3RvdHlwZS5ldmVyeSxTeD17fTtTeC50YWJsZUNlbGw9e2ZpbHRlcjpbInRoIiwidGQiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhPdCh0LGUpfSwicmVwbGFjZW1lbnQiKX0sU3gudGFibGVSb3c9e2ZpbHRlcjoidHIiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlKXt2YXIgcj0iIixhPXtsZWZ0OiI6LS0iLHJpZ2h0OiItLToiLGNlbnRlcjoiOi06In07aWYoZ3dlKGUpKWZvcih2YXIgcz0wO3M8ZS5jaGlsZE5vZGVzLmxlbmd0aDtzKyspe3ZhciBuPSItLS0iLG89KGUuY2hpbGROb2Rlc1tzXS5nZXRBdHRyaWJ1dGUoImFsaWduIil8fCIiKS50b0xvd2VyQ2FzZSgpO28mJihuPWFbb118fG4pLHIrPUhPdChuLGUuY2hpbGROb2Rlc1tzXSl9cmV0dXJuYApgK3QrKHI/YApgK3I6IiIpfSwicmVwbGFjZW1lbnQiKX0sU3gudGFibGU9e2ZpbHRlcjppKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVOYW1lPT09IlRBQkxFIiYmZ3dlKHQucm93c1swXSl9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQpe3JldHVybiB0PXQucmVwbGFjZShgCgpgLGAKYCksYAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSxTeC50YWJsZVNlY3Rpb249e2ZpbHRlcjpbInRoZWFkIiwidGJvZHkiLCJ0Zm9vdCJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7cmV0dXJuIHR9LCJyZXBsYWNlbWVudCIpfTtpKGd3ZSwiaXNIZWFkaW5nUm93Iik7aShHbWEsImlzRmlyc3RUYm9keSIpO2koSE90LCJjZWxsIik7aSh2d2UsInRhYmxlcyIpO2koeXdlLCJ0YXNrTGlzdEl0ZW1zIik7aShxT3QsImdmbSIpfSk7dmFyIGt3ZSxTd2U9dSgoKT0+e0REdCgpO2MkdCgpO21JdCgpO0hJdCgpO0pJdCgpO1NPdCgpO0NPdCgpO0ZPdCgpO1ZPdCgpO2t3ZT13d2V9KTt2YXIgWW1hLGRsZSxVT3Q9dSgoKT0+e1N3ZSgpO1ltYT1pKHQ9PnQudHlwZT09PSJ5YW1sIiYmInZhbHVlImluIHQmJnR5cGVvZiB0LnZhbHVlPT0ic3RyaW5nIiwiaXNZYW1sTm9kZSIpLGRsZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk1kUGFyc2VkUmVzdWx0Iil9Y29uc3RydWN0b3IoKXt0aGlzLm9yaWdpbmFsU3RyaW5nPSIiLHRoaXMudGl0bGU9IiIsdGhpcy5odG1sPSIiLHRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fXN0YXRpYyBhc3luYyBjcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7bGV0IHI9bmV3IHQ7cmV0dXJuIGF3YWl0IHIudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKGUpLHJ9YXN5bmMgdXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKGUpe3RoaXMub3JpZ2luYWxTdHJpbmc9ZTtsZXQgcixhPWF3YWl0IHdNKCkudXNlKG14KS51c2UoaHgpLnVzZShieCxbInlhbWwiLCJ0b21sIl0pLnVzZShreCkudXNlKHd4KS51c2UoKCk9PnM9PntsZXQgbj1zLmNoaWxkcmVuLmZpbmQoWW1hKTtuJiYocj1uLnZhbHVlKX0pLnByb2Nlc3MoZSk7dGhpcy5odG1sPWEudG9TdHJpbmcoKSxyP3RoaXMuZnJvbnRtYXR0ZXJEYXRhPWF3YWl0IGJNLnlhbWxTdHJpbmdUb09iamVjdChyKTp0aGlzLmZyb250bWF0dGVyRGF0YT17fX19fSk7dmFyIFVNPXt9O1ZlKFVNLHtTbWFydE1hcmtkb3duOigpPT5Nd2V9KTt2YXIgTXdlLFdPdD11KCgpPT57U3dlKCk7VU90KCk7TXdlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiU21hcnRNYXJrZG93biIpfXN0YXRpYyBhc3luYyBlYXN5TWFya2Rvd25Ub0h0bWwoZSl7cmV0dXJuKGF3YWl0IG5ldyB0KCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oZSkpLmh0bWx9Y29uc3RydWN0b3IoKXt9YXN5bmMgZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oZSl7cmV0dXJuIGF3YWl0IGRsZS5jcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl9aHRtbFRvTWFya2Rvd24oZSl7bGV0IHI9bmV3IFB1KHtoZWFkaW5nU3R5bGU6ImF0eCIsY29kZUJsb2NrU3R5bGU6ImZlbmNlZCJ9KTtyZXR1cm4gci51c2Uoa3dlLmdmbSksci50dXJuZG93bihlKX19fSk7dmFyIFhPdD1OdChCMj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoQjIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEIyLlBhdGhFcnJvcj1CMi5Ub2tlbkRhdGE9dm9pZCAwLEIyLnBhcnNlPV93ZSxCMi5jb21waWxlPVhtYSxCMi5tYXRjaD1lNWEsQjIucGF0aFRvUmVnZXhwPUtPdCxCMi5zdHJpbmdpZnk9cjVhO3ZhciBDd2U9Ii8iLHp3ZT1pKHQ9PnQsIk5PT1BfVkFMVUUiKSxLbWE9L15bJF9ccHtJRF9TdGFydH1dJC91LEdPdD0vXlskXHUyMDBjXHUyMDBkXHB7SURfQ29udGludWV9XSQvdSxabWE9L15bJF9ccHtJRF9TdGFydH1dWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dKiQvdTtmdW5jdGlvbiBRbWEodCl7cmV0dXJuIHQucmVwbGFjZSgvW3t9KClcW1xdKz8hOipcXF0vZywiXFwkJiIpfWkoUW1hLCJlc2NhcGVUZXh0Iik7ZnVuY3Rpb24gbzQodCl7cmV0dXJuIHQucmVwbGFjZSgvWy4rKj9eJHt9KClbXF18L1xcXS9nLCJcXCQmIil9aShvNCwiZXNjYXBlIik7dmFyIHVsZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUb2tlbkRhdGEiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMudG9rZW5zPWUsdGhpcy5vcmlnaW5hbFBhdGg9cn19O0IyLlRva2VuRGF0YT11bGU7dmFyIHcwPWNsYXNzIGV4dGVuZHMgVHlwZUVycm9ye3N0YXRpY3tpKHRoaXMsIlBhdGhFcnJvciIpfWNvbnN0cnVjdG9yKGUscil7bGV0IGE9ZTtyJiYoYSs9YDogJHtyfWApLGErPSI7IHZpc2l0IGh0dHBzOi8vZ2l0Lm5ldy9wYXRoVG9SZWdleHBFcnJvciBmb3IgaW5mbyIsc3VwZXIoYSksdGhpcy5vcmlnaW5hbFBhdGg9cn19O0IyLlBhdGhFcnJvcj13MDtmdW5jdGlvbiBfd2UodCxlPXt9KXtsZXR7ZW5jb2RlUGF0aDpyPXp3ZX09ZSxhPVsuLi50XSxzPTA7ZnVuY3Rpb24gbihvKXtsZXQgbD1bXSxjPSIiO2Z1bmN0aW9uIGQoKXtjJiYobC5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpyKGMpfSksYz0iIil9Zm9yKGkoZCwid3JpdGVQYXRoIik7czxhLmxlbmd0aDspe2xldCBmPWFbcysrXTtpZihmPT09bylyZXR1cm4gZCgpLGw7aWYoZj09PSJcXCIpe2lmKHM9PT1hLmxlbmd0aCl0aHJvdyBuZXcgdzAoYFVuZXhwZWN0ZWQgZW5kIGFmdGVyIFxcIGF0IGluZGV4ICR7c31gLHQpO2MrPWFbcysrXTtjb250aW51ZX1pZihmPT09IjoifHxmPT09IioiKXtsZXQgcD1mPT09IjoiPyJwYXJhbSI6IndpbGRjYXJkIixoPSIiO2lmKEttYS50ZXN0KGFbc10pKWRvIGgrPWFbcysrXTt3aGlsZShHT3QudGVzdChhW3NdKSk7ZWxzZSBpZihhW3NdPT09JyInKXtsZXQgbT1zO2Zvcig7czxhLmxlbmd0aDspe2lmKGFbKytzXT09PSciJyl7cysrLG09MDticmVha31hW3NdPT09IlxcIiYmcysrLGgrPWFbc119aWYobSl0aHJvdyBuZXcgdzAoYFVudGVybWluYXRlZCBxdW90ZSBhdCBpbmRleCAke219YCx0KX1pZighaCl0aHJvdyBuZXcgdzAoYE1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgaW5kZXggJHtzfWAsdCk7ZCgpLGwucHVzaCh7dHlwZTpwLG5hbWU6aH0pO2NvbnRpbnVlfWlmKGY9PT0ieyIpe2QoKSxsLnB1c2goe3R5cGU6Imdyb3VwIix0b2tlbnM6bigifSIpfSk7Y29udGludWV9aWYoZj09PSJ9Inx8Zj09PSIoInx8Zj09PSIpInx8Zj09PSJbInx8Zj09PSJdInx8Zj09PSIrInx8Zj09PSI/Inx8Zj09PSIhIil0aHJvdyBuZXcgdzAoYFVuZXhwZWN0ZWQgJHtmfSBhdCBpbmRleCAke3MtMX1gLHQpO2MrPWZ9aWYobyl0aHJvdyBuZXcgdzAoYFVuZXhwZWN0ZWQgZW5kIGF0IGluZGV4ICR7c30sIGV4cGVjdGVkICR7b31gLHQpO3JldHVybiBkKCksbH1yZXR1cm4gaShuLCJjb25zdW1lVW50aWwiKSxuZXcgdWxlKG4oIiIpLHQpfWkoX3dlLCJwYXJzZSIpO2Z1bmN0aW9uIFhtYSh0LGU9e30pe2xldHtlbmNvZGU6cj1lbmNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmE9Q3dlfT1lLHM9dHlwZW9mIHQ9PSJvYmplY3QiP3Q6X3dlKHQsZSksbj1ZT3Qocy50b2tlbnMsYSxyKTtyZXR1cm4gaShmdW5jdGlvbihsPXt9KXtsZXQgYz1bXSxkPW4obCxjKTtpZihjLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7Yy5qb2luKCIsICIpfWApO3JldHVybiBkfSwicGF0aCIpfWkoWG1hLCJjb21waWxlIik7ZnVuY3Rpb24gWU90KHQsZSxyKXtsZXQgYT10Lm1hcChzPT5KbWEocyxlLHIpKTtyZXR1cm4ocyxuKT0+e2xldCBvPSIiO2ZvcihsZXQgbCBvZiBhKW8rPWwocyxuKTtyZXR1cm4gb319aShZT3QsInRva2Vuc1RvRnVuY3Rpb24iKTtmdW5jdGlvbiBKbWEodCxlLHIpe2lmKHQudHlwZT09PSJ0ZXh0IilyZXR1cm4oKT0+dC52YWx1ZTtpZih0LnR5cGU9PT0iZ3JvdXAiKXtsZXQgcz1ZT3QodC50b2tlbnMsZSxyKTtyZXR1cm4obixvKT0+e2xldCBsPW8ubGVuZ3RoLGM9cyhuLG8pO3JldHVybiBvLmxlbmd0aD09PWw/Yzooby5sZW5ndGg9bCwiIil9fWxldCBhPXJ8fHp3ZTtyZXR1cm4gdC50eXBlPT09IndpbGRjYXJkIiYmciE9PSExPyhzLG4pPT57bGV0IG89c1t0Lm5hbWVdO2lmKG89PW51bGwpcmV0dXJuIG4ucHVzaCh0Lm5hbWUpLCIiO2lmKCFBcnJheS5pc0FycmF5KG8pfHxvLmxlbmd0aD09PTApdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7dC5uYW1lfSIgdG8gYmUgYSBub24tZW1wdHkgYXJyYXlgKTtsZXQgbD0iIjtmb3IobGV0IGM9MDtjPG8ubGVuZ3RoO2MrKyl7aWYodHlwZW9mIG9bY10hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke3QubmFtZX0vJHtjfSIgdG8gYmUgYSBzdHJpbmdgKTtjPjAmJihsKz1lKSxsKz1hKG9bY10pfXJldHVybiBsfToocyxuKT0+e2xldCBvPXNbdC5uYW1lXTtpZihvPT1udWxsKXJldHVybiBuLnB1c2godC5uYW1lKSwiIjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7dC5uYW1lfSIgdG8gYmUgYSBzdHJpbmdgKTtyZXR1cm4gYShvKX19aShKbWEsInRva2VuVG9GdW5jdGlvbiIpO2Z1bmN0aW9uIGU1YSh0LGU9e30pe2xldHtkZWNvZGU6cj1kZWNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmE9Q3dlfT1lLHtyZWdleHA6cyxrZXlzOm59PUtPdCh0LGUpLG89bi5tYXAobD0+cj09PSExP3p3ZTpsLnR5cGU9PT0icGFyYW0iP3I6Yz0+Yy5zcGxpdChhKS5tYXAocikpO3JldHVybiBpKGZ1bmN0aW9uKGMpe2xldCBkPXMuZXhlYyhjKTtpZighZClyZXR1cm4hMTtsZXQgZj1kWzBdLHA9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGg9MTtoPGQubGVuZ3RoO2grKyl7aWYoZFtoXT09PXZvaWQgMCljb250aW51ZTtsZXQgbT1uW2gtMV0sdj1vW2gtMV07cFttLm5hbWVdPXYoZFtoXSl9cmV0dXJue3BhdGg6ZixwYXJhbXM6cH19LCJtYXRjaCIpfWkoZTVhLCJtYXRjaCIpO2Z1bmN0aW9uIEtPdCh0LGU9e30pe2xldHtkZWxpbWl0ZXI6cj1Dd2UsZW5kOmE9ITAsc2Vuc2l0aXZlOnM9ITEsdHJhaWxpbmc6bj0hMH09ZSxvPVtdLGw9IiIsYz0wO2Z1bmN0aW9uIGQocCl7aWYoQXJyYXkuaXNBcnJheShwKSl7Zm9yKGxldCBtIG9mIHApZChtKTtyZXR1cm59bGV0IGg9dHlwZW9mIHA9PSJvYmplY3QiP3A6X3dlKHAsZSk7VHdlKGgudG9rZW5zLDAsW10sbT0+e2lmKGM+PTI1Nil0aHJvdyBuZXcgdzAoIlRvbyBtYW55IHBhdGggY29tYmluYXRpb25zIixoLm9yaWdpbmFsUGF0aCk7Yz4wJiYobCs9InwiKSxsKz10NWEobSxyLG8saC5vcmlnaW5hbFBhdGgpLGMrK30pfWkoZCwicHJvY2VzcyIpLGQodCk7bGV0IGY9YF4oPzoke2x9KWA7cmV0dXJuIG4mJihmKz0iKD86IitvNChyKSsiJCk/IiksZis9YT8iJCI6Iig/PSIrbzQocikrInwkKSIse3JlZ2V4cDpuZXcgUmVnRXhwKGYscz8iIjoiaSIpLGtleXM6b319aShLT3QsInBhdGhUb1JlZ2V4cCIpO2Z1bmN0aW9uIFR3ZSh0LGUscixhKXtmb3IoO2U8dC5sZW5ndGg7KXtsZXQgcz10W2UrK107aWYocy50eXBlPT09Imdyb3VwIil7bGV0IG49ci5sZW5ndGg7VHdlKHMudG9rZW5zLDAscixvPT5Ud2UodCxlLG8sYSkpLHIubGVuZ3RoPW47Y29udGludWV9ci5wdXNoKHMpfWEocil9aShUd2UsImZsYXR0ZW4iKTtmdW5jdGlvbiB0NWEodCxlLHIsYSl7bGV0IHM9IiIsbj0iIixvPSIiLGw9MCxjPTAsZD0wO2Z1bmN0aW9uIGYoaCxtKXtmb3IoO2g8dC5sZW5ndGg7KXtsZXQgdj10W2grK107aWYodi50eXBlPT09bSlyZXR1cm4hMDtpZih2LnR5cGU9PT0idGV4dCImJnYudmFsdWUuaW5jbHVkZXMoZSkpYnJlYWt9cmV0dXJuITF9aShmLCJoYXNJblNlZ21lbnQiKTtmdW5jdGlvbiBwKGgpe2xldCBtPSIiO2Zvcig7aDx0Lmxlbmd0aDspe2xldCB2PXRbaCsrXTtpZih2LnR5cGUhPT0idGV4dCIpYnJlYWs7bSs9di52YWx1ZX1yZXR1cm4gbX1mb3IoaShwLCJwZWVrVGV4dCIpO2Q8dC5sZW5ndGg7KXtsZXQgaD10W2QrK107aWYoaC50eXBlPT09InRleHQiKXtzKz1vNChoLnZhbHVlKSxuKz1oLnZhbHVlLGw9PT0yJiYobys9aC52YWx1ZSksaC52YWx1ZS5pbmNsdWRlcyhlKSYmKGM9MCk7Y29udGludWV9aWYoaC50eXBlPT09InBhcmFtInx8aC50eXBlPT09IndpbGRjYXJkIil7aWYobCYmIW4pdGhyb3cgbmV3IHcwKGBNaXNzaW5nIHRleHQgYmVmb3JlICIke2gubmFtZX0iICR7aC50eXBlfWAsYSk7aC50eXBlPT09InBhcmFtIj8ocys9YyYyP2AoJHtOdShlLG4pfSspYDpmKGQsIndpbGRjYXJkIik/YCgke051KGUscChkKSl9KylgOmMmMT9gKCR7TnUoZSxuKX0rfCR7bzQobil9KWA6YCgke051KGUsIiIpfSspYCxjfD1sPTEpOihzKz1jJjI/YCgke051KG4sIiIpfSspYDpvP2AoJHtOdShvLCIiKX0rfCR7TnUoZSwiIil9KylgOiIoW15dKykiLG89IiIsY3w9bD0yKSxyLnB1c2goaCksbj0iIjtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7aC50eXBlfWApfXJldHVybiBzfWkodDVhLCJ0b1JlZ0V4cFNvdXJjZSIpO2Z1bmN0aW9uIE51KHQsZSl7cmV0dXJuIGUubGVuZ3RoPnQubGVuZ3RoP051KGUsdCk6KHQ9PT1lJiYoZT0iIiksZS5sZW5ndGg+MT9gKD86KD8hJHtvNCh0KX18JHtvNChlKX0pW15dKWA6dC5sZW5ndGg+MT9gKD86KD8hJHtvNCh0KX0pW14ke280KGUpfV0pYDpgW14ke280KHQrZSl9XWApfWkoTnUsIm5lZ2F0ZSIpO2Z1bmN0aW9uIFpPdCh0LGUpe2xldCByPSIiO2Zvcig7ZTx0Lmxlbmd0aDspe2xldCBhPXRbZSsrXTtpZihhLnR5cGU9PT0idGV4dCIpe3IrPVFtYShhLnZhbHVlKTtjb250aW51ZX1pZihhLnR5cGU9PT0iZ3JvdXAiKXtyKz0ieyIrWk90KGEudG9rZW5zLDApKyJ9Ijtjb250aW51ZX1pZihhLnR5cGU9PT0icGFyYW0iKXtyKz0iOiIrUU90KGEubmFtZSx0W2VdKTtjb250aW51ZX1pZihhLnR5cGU9PT0id2lsZGNhcmQiKXtyKz0iKiIrUU90KGEubmFtZSx0W2VdKTtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7YS50eXBlfWApfXJldHVybiByfWkoWk90LCJzdHJpbmdpZnlUb2tlbnMiKTtmdW5jdGlvbiByNWEodCl7cmV0dXJuIFpPdCh0LnRva2VucywwKX1pKHI1YSwic3RyaW5naWZ5Iik7ZnVuY3Rpb24gUU90KHQsZSl7cmV0dXJuIVptYS50ZXN0KHQpfHxlPy50eXBlPT09InRleHQiJiZHT3QudGVzdChlLnZhbHVlWzBdKT9KU09OLnN0cmluZ2lmeSh0KTp0fWkoUU90LCJzdHJpbmdpZnlOYW1lIil9KTt2YXIgTHdlLER3ZT11KCgpPT57TWIoKTtaYygpO0x3ZT1HYShYT3QoKSwxKX0pO3ZhciBwbGUsSk90PXUoKCk9PntEd2UoKTtwbGU9Y2xhc3N7c3RhdGlje2kodGhpcywiUXVlcnlQYXJhbXMiKX1jb25zdHJ1Y3Rvcigpe31nZXRBbGxBc09iamVjdCgpe2xldCBlPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhlLmVudHJpZXMoKSl9c2V0UXVlcnlQYXJhbShlLHIsYT0icmVwbGFjZSIpe3ZhciBzPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7cy5zZXQoZSxyKSxhPT09InB1c2giP2hpc3RvcnkucHVzaFN0YXRlKG51bGwsbnVsbCwiPyIrcy50b1N0cmluZygpKTpoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLG51bGwsIj8iK3MudG9TdHJpbmcoKSl9ZGVsZXRlUXVlcnlQYXJhbShlLHI9InJlcGxhY2UiKXt2YXIgYT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2EuZGVsZXRlKGUpLHI9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IithLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrYS50b1N0cmluZygpKX1nZXRRdWVyeVBhcmFtKGUpe3JldHVybiB0aGlzLmdldEFsbEFzT2JqZWN0KClbZV19fX0pO3ZhciBmb3MsJHdlLGVSdD11KCgpPT57RHdlKCk7Sk90KCk7Zm9zPWkodD0+e2NvbnNvbGUubG9nKGAlY1tSb3V0ZXJdJWMgJHt0fWAsImNvbG9yOiByZ2IoMjU1LCAxMDUsIDEwMCk7IiwiY29sb3I6IGluaGVyaXQiKX0sInJvdXRlTG9nIiksJHdlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiU21hcnRSb3V0ZXIiKX1jb25zdHJ1Y3RvcihlLHI9IiIpe3RoaXMub3B0aW9ucz17ZGVidWc6ITF9LHRoaXMucXVlcnlQYXJhbXM9bmV3IHBsZSx0aGlzLnJvdXRlcz1bXSx0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi5lfSx0aGlzLmJhc2VQYXRoPXIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyPWE9PnthLnByZXZlbnREZWZhdWx0KCksdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lcil9Y3JlYXRlU3ViUm91dGVyKGUscil7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDtyZXR1cm4gbmV3IHQoey4uLnRoaXMub3B0aW9ucywuLi5yfSxhKX1hc3luYyBwdXNoVXJsKGU9Ii8iLHI9e30pe2xldCBhPWAke3RoaXMuYmFzZVBhdGh9JHtlfWA7YSE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT93aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUocix3aW5kb3cuZG9jdW1lbnQudGl0bGUsYSk6d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHIsd2luZG93LmRvY3VtZW50LnRpdGxlLGEpLGF3YWl0IHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX1vbihlLHIpe2xldCBhPWAke3RoaXMuYmFzZVBhdGh9JHtlfWAscz17bWF0Y2hGdW5jdGlvbjpMd2UubWF0Y2goYSksaGFuZGxlcjpyfTtyZXR1cm4gdGhpcy5yb3V0ZXMucHVzaChzKSxpKCgpPT57dGhpcy5yb3V0ZXMuc3BsaWNlKHRoaXMucm91dGVzLmluZGV4T2YocyksMSl9LCJyZW1vdmVGdW5jdGlvbiIpfWFzeW5jIF9oYW5kbGVSb3V0ZVN0YXRlKCl7bGV0IGU9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHI9dGhpcy5yb3V0ZXMuZmlsdGVyKGE9PiEhYS5tYXRjaEZ1bmN0aW9uKGUpKTtmb3IobGV0IGEgb2Ygcil7bGV0IHM9YS5tYXRjaEZ1bmN0aW9uKGUpO2EuaGFuZGxlcih7Li4ucy52YWx1ZU9mKCkscXVlcnlQYXJhbXM6dGhpcy5xdWVyeVBhcmFtcy5nZXRBbGxBc09iamVjdCgpfSl9fWRlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lciksdGhpcy5yb3V0ZXM9W119fX0pO3ZhciBQaD17fTtWZShQaCx7U21hcnRSb3V0ZXI6KCk9PiR3ZX0pO3ZhciB0UnQ9dSgoKT0+e2VSdCgpfSk7dmFyIHJSdD11KCgpPT57eFMoKTtMYigpfSk7ZnVuY3Rpb24gazAodCxlKXtyZXR1cm4gdD4+PmV8dDw8MzItZX1mdW5jdGlvbiBvNWEodCxlKXtsZXQgcj1lWzBdLGE9ZVsxXSxzPWVbMl0sbj1lWzNdLG89ZVs0XSxsPWVbNV0sYz1lWzZdLGQ9ZVs3XTtmb3IobGV0IGY9MDtmPDY0O2YrKyl7aWYoZj49MTYpe2xldCB5PWswKHRbZi0xNV0sNyleazAodFtmLTE1XSwxOCledFtmLTE1XT4+PjMsaz1rMCh0W2YtMl0sMTcpXmswKHRbZi0yXSwxOSledFtmLTJdPj4+MTA7dFtmXT10W2YtMTZdK3krdFtmLTddK2s+Pj4wfWxldCBwPWswKG8sNileazAobywxMSleazAobywyNSksaD1vJmxefm8mYyxtPWQrcCtoK3M1YVtmXSt0W2ZdPj4+MCx2PWswKHIsMileazAociwxMyleazAociwyMiksYj1yJmFeciZzXmEmcyxnPXYrYj4+PjA7ZD1jLGM9bCxsPW8sbz1uK20+Pj4wLG49cyxzPWEsYT1yLHI9bStnPj4+MH1lWzBdPWVbMF0rcj4+PjAsZVsxXT1lWzFdK2E+Pj4wLGVbMl09ZVsyXStzPj4+MCxlWzNdPWVbM10rbj4+PjAsZVs0XT1lWzRdK28+Pj4wLGVbNV09ZVs1XStsPj4+MCxlWzZdPWVbNl0rYz4+PjAsZVs3XT1lWzddK2Q+Pj4wfWZ1bmN0aW9uIEF3ZSh0KXtsZXQgZT1bLi4ubjVhXSxyPXQubGVuZ3RoLGE9cio4LHM9ciU2NDw1Nj81Ni1yJTY0OjEyMC1yJTY0LG49bmV3IFVpbnQ4QXJyYXkocitzKzgpO24uc2V0KHQpLG5bcl09MTI4O2xldCBvPW5ldyBEYXRhVmlldyhuLmJ1ZmZlcik7by5zZXRVaW50MzIobi5sZW5ndGgtOCwwLCExKSxvLnNldFVpbnQzMihuLmxlbmd0aC00LGE+Pj4wLCExKTtmb3IobGV0IGM9MDtjPG4ubGVuZ3RoO2MrPTY0KXtsZXQgZD1uZXcgQXJyYXkoNjQpO2ZvcihsZXQgZj0wO2Y8MTY7ZisrKWRbZl09by5nZXRVaW50MzIoYytmKjQsITEpO281YShkLGUpfWxldCBsPSIiO2ZvcihsZXQgYz0wO2M8ODtjKyspbCs9ZVtjXS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpO3JldHVybiBsfXZhciBzNWEsbjVhLGFSdD11KCgpPT57czVhPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLG41YT1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdO2koazAsInJvdHIiKTtpKG81YSwic2hhMjU2VHJhbnNmb3JtIik7aShBd2UsInNoYTI1NkZhbGxiYWNrIil9KTt2YXIgV009e307VmUoV00se21kNUZyb21TdHJpbmc6KCk9PmY1YSxzaGEyNTZGcm9tQnVmZmVyOigpPT5jNWEsc2hhMjU2RnJvbUZpbGU6KCk9PnA1YSxzaGEyNTZGcm9tU3RyZWFtOigpPT51NWEsc2hhMjU2RnJvbVN0cmluZzooKT0+blJ0LHNoYTI1NkZyb21TdHJpbmdTeW5jOigpPT5sNWEsc2hhMjY1RnJvbU9iamVjdDooKT0+ZDVhfSk7dmFyIGlSdCxzUnQsblJ0LGw1YSxjNWEsZDVhLHU1YSxwNWEsZjVhLG9SdD11KCgpPT57clJ0KCk7YVJ0KCk7aVJ0PWkodD0+e2xldCBlPVtdLHI9bmV3IERhdGFWaWV3KHQpO2ZvcihsZXQgYT0wO2E8ci5ieXRlTGVuZ3RoO2ErPTQpe2xldCBuPXIuZ2V0VWludDMyKGEpLnRvU3RyaW5nKDE2KSxvPSIwMDAwMDAwMCIsbD0obytuKS5zbGljZSgtby5sZW5ndGgpO2UucHVzaChsKX1yZXR1cm4gZS5qb2luKCIiKX0sImhleCIpLHNSdD1pKCgpPT50eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnN1YnRsZSE9PXZvaWQgMCwiaXNDcnlwdG9TdWJ0bGVBdmFpbGFibGUiKSxuUnQ9aShhc3luYyB0PT57bGV0IGU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpO2lmKHNSdCgpKXtsZXQgcj1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSk7cmV0dXJuIGlSdChyKX1lbHNlIHJldHVybiBBd2UoZSl9LCJzaGEyNTZGcm9tU3RyaW5nIiksbDVhPWkodD0+e3Rocm93IGNvbnNvbGUud2Fybigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHRydWx5IHN5bmNocm9ub3VzIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKSxuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJpbmdTeW5jIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudC4gVXNlIHNoYTI1NkZyb21TdHJpbmcgaW5zdGVhZC4iKX0sInNoYTI1NkZyb21TdHJpbmdTeW5jIiksYzVhPWkoYXN5bmMgdD0+e2lmKHNSdCgpKXtsZXQgZTtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IHM9dDtlPXMuYnVmZmVyLnNsaWNlKHMuYnl0ZU9mZnNldCxzLmJ5dGVPZmZzZXQrcy5ieXRlTGVuZ3RoKX1lbHNlIGU9dDtsZXQgcj1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSk7cmV0dXJuIGlSdChyKX1lbHNle2xldCBlPXQgaW5zdGFuY2VvZiBVaW50OEFycmF5P3Q6bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIEF3ZShlKX19LCJzaGEyNTZGcm9tQnVmZmVyIiksZDVhPWkoYXN5bmMgdD0+e2xldCBlPUhzLnN0cmluZ2lmeSh0KTtyZXR1cm4gYXdhaXQgblJ0KGUpfSwic2hhMjY1RnJvbU9iamVjdCIpLHU1YT1pKHQ9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJlYW0gaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50Iil9LCJzaGEyNTZGcm9tU3RyZWFtIikscDVhPWkoYXN5bmMgdD0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbUZpbGUgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50Iil9LCJzaGEyNTZGcm9tRmlsZSIpLGY1YT1pKGFzeW5jIHQ9Pnt0aHJvdyBuZXcgRXJyb3IoIm1kNUZyb21TdHJpbmcgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBXZWIgQ3J5cHRvIEFQSSBkb2VzIG5vdCBzdXBwb3J0IE1ENS4iKX0sIm1kNUZyb21TdHJpbmciKX0pO3ZhciBmbGU9dSgoKT0+e29SdCgpO0xiKCk7R24oKTtaYygpO1puZSgpfSk7dmFyIEdNLEV3ZT11KCgpPT57aGxlKCk7R009Y2xhc3N7c3RhdGlje2kodGhpcywiU3RhdGVBY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RhdGVQYXJ0UmVmPWUsdGhpcy5hY3Rpb25EZWY9cn10cmlnZ2VyKGUpe3JldHVybiB0aGlzLnN0YXRlUGFydFJlZi5kaXNwYXRjaEFjdGlvbih0aGlzLGUpfX19KTtmdW5jdGlvbiBtNWEoKXtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PiJ1Ij9SZighMCk6bmV3IG5yKHQ9Pnt0Lm5leHQoIWRvY3VtZW50LmhpZGRlbik7bGV0IGU9aSgoKT0+dC5uZXh0KCFkb2N1bWVudC5oaWRkZW4pLCJoYW5kbGVyIik7cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGUpLCgpPT5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixlKX0pfXZhciBNeCxJd2U9dSgoKT0+e1pnKCk7aShtNWEsImNyZWF0ZVZpc2liaWxpdHlPYnNlcnZhYmxlIik7TXg9Y2xhc3N7c3RhdGlje2kodGhpcywiU3RhdGVQcm9jZXNzIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnN0YXR1c1N1YmplY3Q9bmV3IEJnKCJpZGxlIiksdGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbj1udWxsLHRoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5wcm9jZXNzaW5nUXVldWU9UHJvbWlzZS5yZXNvbHZlKCksdGhpcy5zdGF0ZVBhcnRSZWY9ZSx0aGlzLnByb2R1Y2VyRm49ci5wcm9kdWNlcix0aGlzLnJlZHVjZXI9ci5yZWR1Y2VyLHRoaXMuc2lkZUVmZmVjdD1yLnNpZGVFZmZlY3QsdGhpcy5hdXRvUGF1c2VPcHRpb249ci5hdXRvUGF1c2U/PyExfWdldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy5zdGF0dXNTdWJqZWN0LmdldFZhbHVlKCl9Z2V0IHN0YXR1cyQoKXtyZXR1cm4gdGhpcy5zdGF0dXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpfXN0YXJ0KCl7aWYodGhpcy5zdGF0dXM9PT0iZGlzcG9zZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHN0YXJ0IGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzIT09InJ1bm5pbmciJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInJ1bm5pbmciKSx0aGlzLnN1YnNjcmliZVByb2R1Y2VyKCksdGhpcy5zZXR1cEF1dG9QYXVzZSgpKX1wYXVzZSgpe2lmKHRoaXMuc3RhdHVzPT09ImRpc3Bvc2VkIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBwYXVzZSBhIGRpc3Bvc2VkIHByb2Nlc3MiKTt0aGlzLnN0YXR1cz09PSJydW5uaW5nIiYmKHRoaXMuc3RhdHVzU3ViamVjdC5uZXh0KCJwYXVzZWQiKSx0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKSl9cmVzdW1lKCl7aWYodGhpcy5zdGF0dXM9PT0iZGlzcG9zZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJlc3VtZSBhIGRpc3Bvc2VkIHByb2Nlc3MiKTt0aGlzLnN0YXR1cz09PSJwYXVzZWQiJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInJ1bm5pbmciKSx0aGlzLnN1YnNjcmliZVByb2R1Y2VyKCkpfWRpc3Bvc2UoKXt0aGlzLnN0YXR1cyE9PSJkaXNwb3NlZCImJih0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKSx0aGlzLnRlYXJkb3duQXV0b1BhdXNlKCksdGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoImRpc3Bvc2VkIiksdGhpcy5zdGF0dXNTdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5zdGF0ZVBhcnRSZWYuX3JlbW92ZVByb2Nlc3ModGhpcykpfXN1YnNjcmliZVByb2R1Y2VyKCl7dGhpcy51bnN1YnNjcmliZVByb2R1Y2VyKCk7bGV0IGU9dGhpcy5wcm9kdWNlckZuKCk7dGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbj1lLnN1YnNjcmliZSh7bmV4dDppKHI9Pnt0aGlzLnByb2Nlc3NpbmdRdWV1ZT10aGlzLnByb2Nlc3NpbmdRdWV1ZS50aGVuKGFzeW5jKCk9Pnt0cnl7aWYodGhpcy5zaWRlRWZmZWN0KWF3YWl0IHRoaXMuc2lkZUVmZmVjdChyKTtlbHNlIGlmKHRoaXMucmVkdWNlcil7bGV0IGE9dGhpcy5zdGF0ZVBhcnRSZWYuZ2V0U3RhdGUoKTthIT09dm9pZCAwJiZhd2FpdCB0aGlzLnN0YXRlUGFydFJlZi5zZXRTdGF0ZSh0aGlzLnJlZHVjZXIoYSxyKSl9fWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoIlN0YXRlUHJvY2VzcyB2YWx1ZSBoYW5kbGluZyBlcnJvcjoiLGEpfX0pfSwibmV4dCIpLGVycm9yOmkocj0+e2NvbnNvbGUuZXJyb3IoIlN0YXRlUHJvY2VzcyBwcm9kdWNlciBlcnJvcjoiLHIpLHRoaXMuc3RhdHVzPT09InJ1bm5pbmciJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInBhdXNlZCIpLHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpKX0sImVycm9yIil9KX11bnN1YnNjcmliZVByb2R1Y2VyKCl7dGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbiYmKHRoaXMucHJvZHVjZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPW51bGwpfXNldHVwQXV0b1BhdXNlKCl7aWYodGhpcy50ZWFyZG93bkF1dG9QYXVzZSgpLCF0aGlzLmF1dG9QYXVzZU9wdGlvbilyZXR1cm47bGV0IGU9dGhpcy5hdXRvUGF1c2VPcHRpb249PT0idmlzaWJpbGl0eSI/bTVhKCk6dGhpcy5hdXRvUGF1c2VPcHRpb247dGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249ZS5zdWJzY3JpYmUocj0+eyFyJiZ0aGlzLnN0YXR1cz09PSJydW5uaW5nIj90aGlzLnBhdXNlKCk6ciYmdGhpcy5zdGF0dXM9PT0icGF1c2VkIiYmdGhpcy5yZXN1bWUoKX0pfXRlYXJkb3duQXV0b1BhdXNlKCl7dGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb24mJih0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uPW51bGwpfX19KTtmdW5jdGlvbiBnNWEodCl7cmV0dXJuIG5ldyBucihlPT57aWYodC5hYm9ydGVkKXtlLm5leHQoKSxlLmNvbXBsZXRlKCk7cmV0dXJufWxldCByPWkoKCk9PntlLm5leHQoKSxlLmNvbXBsZXRlKCl9LCJoYW5kbGVyIik7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHIpLCgpPT50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixyKX0pfXZhciBZTSxobGU9dSgoKT0+e2ZsZSgpO1pnKCk7RXdlKCk7SXdlKCk7aShnNWEsImZyb21BYm9ydFNpZ25hbCIpO1lNPWNsYXNzIHR7c3RhdGlje2kodGhpcywiU3RhdGVQYXJ0Iil9c3RhdGlje3RoaXMuTUFYX05FU1RFRF9ESVNQQVRDSF9ERVBUSD0xMH1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RhdGU9bmV3IEJnKHZvaWQgMCksdGhpcy5kaXNwb3NlZD0hMSx0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZD14dC5jdW11bGF0aXZlRGVmZXIoKSx0aGlzLm11dGF0aW9uUXVldWU9UHJvbWlzZS5yZXNvbHZlKCksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsLHRoaXMud2ViU3RvcmU9bnVsbCx0aGlzLm1pZGRsZXdhcmVzPVtdLHRoaXMucHJvY2Vzc2VzPVtdLHRoaXMuc2VsZWN0b3JDYWNoZT1uZXcgV2Vha01hcCx0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlPW51bGwsdGhpcy5uYW1lPWUsciYmKHRoaXMud2ViU3RvcmVPcHRpb25zPXIpfWFzeW5jIGluaXQoKXtpZih0aGlzLndlYlN0b3JlT3B0aW9ucyl7dGhpcy53ZWJTdG9yZT1uZXcgejIuV2ViU3RvcmUodGhpcy53ZWJTdG9yZU9wdGlvbnMpLGF3YWl0IHRoaXMud2ViU3RvcmUuaW5pdCgpO2xldCBlPWF3YWl0IHRoaXMud2ViU3RvcmUuZ2V0KFN0cmluZyh0aGlzLm5hbWUpKTtlJiZ0aGlzLnZhbGlkYXRlU3RhdGUoZSkmJih0aGlzLnN0YXRlU3RvcmU9ZSxhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpKX19Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZVN0b3JlfWFkZE1pZGRsZXdhcmUoZSl7cmV0dXJuIHRoaXMubWlkZGxld2FyZXMucHVzaChlKSwoKT0+e2xldCByPXRoaXMubWlkZGxld2FyZXMuaW5kZXhPZihlKTtyIT09LTEmJnRoaXMubWlkZGxld2FyZXMuc3BsaWNlKHIsMSl9fWFzeW5jIHNldFN0YXRlKGUpe2lmKHRoaXMuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKGBTdGF0ZVBhcnQgJyR7dGhpcy5uYW1lfScgaGFzIGJlZW4gZGlzcG9zZWRgKTtyZXR1cm4gdGhpcy5tdXRhdGlvblF1ZXVlPXRoaXMubXV0YXRpb25RdWV1ZS50aGVuKCgpPT50aGlzLmFwcGx5U3RhdGUoZSksKCk9PnRoaXMuYXBwbHlTdGF0ZShlKSl9YXN5bmMgYXBwbHlTdGF0ZShlKXtsZXQgcj1lO2ZvcihsZXQgYSBvZiB0aGlzLm1pZGRsZXdhcmVzKXI9YXdhaXQgYShyLHRoaXMuc3RhdGVTdG9yZSk7aWYoIXRoaXMudmFsaWRhdGVTdGF0ZShyKSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc3RhdGUgc3RydWN0dXJlIGZvciBzdGF0ZSBwYXJ0ICcke3RoaXMubmFtZX0nYCk7cmV0dXJuIHRoaXMud2ViU3RvcmUmJmF3YWl0IHRoaXMud2ViU3RvcmUuc2V0KFN0cmluZyh0aGlzLm5hbWUpLHIpLHRoaXMuc3RhdGVTdG9yZT1yLGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCksdGhpcy5zdGF0ZVN0b3JlfXZhbGlkYXRlU3RhdGUoZSl7cmV0dXJuIGUhPW51bGx9YXN5bmMgbm90aWZ5Q2hhbmdlKCl7bGV0IGU9dGhpcy5zdGF0ZVN0b3JlO2lmKGU9PT12b2lkIDApcmV0dXJuO2lmKHRoaXMuc21hcnRzdGF0ZVJlZj8uaXNCYXRjaGluZyl7dGhpcy5zbWFydHN0YXRlUmVmLnJlZ2lzdGVyUGVuZGluZ05vdGlmaWNhdGlvbih0aGlzKTtyZXR1cm59bGV0IHI9aShhc3luYyBhPT5hd2FpdCBXTS5zaGEyNTZGcm9tU3RyaW5nKEhzLnN0YWJsZU9uZVdheVN0cmluZ2lmeShhKSksImNyZWF0ZVN0YXRlSGFzaCIpO3RyeXtsZXQgYT1hd2FpdCByKGUpO2lmKHRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gmJmE9PT10aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoKXJldHVybjt0aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoPWF9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgU3RhdGUgaGFzaCBjb21wdXRhdGlvbiBmYWlsZWQgZm9yICcke3RoaXMubmFtZX0nOmAsYSl9dGhpcy5zdGF0ZS5uZXh0KGUpfW5vdGlmeUNoYW5nZUN1bXVsYXRpdmUoKXt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uJiZjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1zZXRUaW1lb3V0KCgpPT57dGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsLHRoaXMuc3RhdGVTdG9yZSE9PXZvaWQgMCYmdGhpcy5ub3RpZnlDaGFuZ2UoKS5jYXRjaChlPT57Y29uc29sZS5lcnJvcihgbm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSBmYWlsZWQgZm9yICcke3RoaXMubmFtZX0nOmAsZSl9KX0sMCl9c2VsZWN0KGUscil7bGV0IGE9cj8uc2lnbmFsIT1udWxsO2lmKCFhKXtpZihlKXtpZih0aGlzLnNlbGVjdG9yQ2FjaGUuaGFzKGUpKXJldHVybiB0aGlzLnNlbGVjdG9yQ2FjaGUuZ2V0KGUpfWVsc2UgaWYodGhpcy5kZWZhdWx0U2VsZWN0T2JzZXJ2YWJsZSlyZXR1cm4gdGhpcy5kZWZhdWx0U2VsZWN0T2JzZXJ2YWJsZX1sZXQgcz1lfHwoYz0+Yyksbj1TeW1ib2woInNlbGVjdG9yLWVycm9yIiksbz10aGlzLnN0YXRlLnBpcGUob2Eucnhqcy5vcHMuZmlsdGVyKGM9PmMhPT12b2lkIDApLG9hLnJ4anMub3BzLm1hcChjPT57dHJ5e3JldHVybiBzKGMpfWNhdGNoKGQpe3JldHVybiBjb25zb2xlLmVycm9yKGBTZWxlY3RvciBlcnJvciBpbiBzdGF0ZSBwYXJ0ICcke3RoaXMubmFtZX0nOmAsZCksbn19KSxvYS5yeGpzLm9wcy5maWx0ZXIoYz0+YyE9PW4pLFlnKChjLGQpPT5KU09OLnN0cmluZ2lmeShjKT09PUpTT04uc3RyaW5naWZ5KGQpKSk7aWYoYSlyZXR1cm4gbz1vLnBpcGUoS2coZzVhKHIuc2lnbmFsKSkpLG87bGV0IGw9by5waXBlKGtpZSh7YnVmZmVyU2l6ZToxLHJlZkNvdW50OiEwfSkpO3JldHVybiBlP3RoaXMuc2VsZWN0b3JDYWNoZS5zZXQoZSxsKTp0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlPWwsbH1jcmVhdGVBY3Rpb24oZSl7cmV0dXJuIG5ldyBHTSh0aGlzLGUpfWNyZWF0ZUFjdGlvbkNvbnRleHQoZSl7bGV0IHI9dGhpcztyZXR1cm57ZGlzcGF0Y2g6aShhc3luYyhhLHMpPT57aWYoZT49dC5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIKXRocm93IG5ldyBFcnJvcihgTWF4aW11bSBuZXN0ZWQgYWN0aW9uIGRpc3BhdGNoIGRlcHRoICgke3QuTUFYX05FU1RFRF9ESVNQQVRDSF9ERVBUSH0pIGV4Y2VlZGVkLiBDaGVjayBmb3IgY2lyY3VsYXIgYWN0aW9uIGRpc3BhdGNoZXMuYCk7bGV0IG49ci5jcmVhdGVBY3Rpb25Db250ZXh0KGUrMSksbz1hd2FpdCBhLmFjdGlvbkRlZihyLHMsbik7cmV0dXJuIHIuYXBwbHlTdGF0ZShvKX0sImRpc3BhdGNoIil9fWFzeW5jIGRpc3BhdGNoQWN0aW9uKGUscil7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2F3YWl0IHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkLnByb21pc2U7bGV0IGE9aShhc3luYygpPT57bGV0IHM9dGhpcy5jcmVhdGVBY3Rpb25Db250ZXh0KDApLG49YXdhaXQgZS5hY3Rpb25EZWYodGhpcyxyLHMpO3JldHVybiB0aGlzLmFwcGx5U3RhdGUobil9LCJleGVjdXRlIik7cmV0dXJuIHRoaXMubXV0YXRpb25RdWV1ZT10aGlzLm11dGF0aW9uUXVldWUudGhlbihhLGEpfWFzeW5jIHdhaXRVbnRpbFByZXNlbnQoZSxyKXtsZXQgYSxzO3R5cGVvZiByPT0ibnVtYmVyIj9hPXI6ciYmKGE9ci50aW1lb3V0TXMscz1yLnNpZ25hbCk7bGV0IG49eHQuZGVmZXIoKSxvPXRoaXMuc2VsZWN0KGUpLGw9ITE7aWYocz8uYWJvcnRlZCl0aHJvdyBuZXcgRXJyb3IoIkFib3J0ZWQiKTtsZXQgYz1vLnN1YnNjcmliZShwPT57cCE9bnVsbCYmIWwmJihsPSEwLG4ucmVzb2x2ZShwKSl9KSxkO2EmJihkPXNldFRpbWVvdXQoKCk9PntsfHwobD0hMCxjLnVuc3Vic2NyaWJlKCksbi5yZWplY3QobmV3IEVycm9yKGB3YWl0VW50aWxQcmVzZW50IHRpbWVkIG91dCBhZnRlciAke2F9bXNgKSkpfSxhKSk7bGV0IGY9cz8oKT0+e2x8fChsPSEwLGMudW5zdWJzY3JpYmUoKSxkJiZjbGVhclRpbWVvdXQoZCksbi5yZWplY3QobmV3IEVycm9yKCJBYm9ydGVkIikpKX06dm9pZCAwO3MmJmYmJnMuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGYpO3RyeXtyZXR1cm4gYXdhaXQgbi5wcm9taXNlfWZpbmFsbHl7Yy51bnN1YnNjcmliZSgpLGQmJmNsZWFyVGltZW91dChkKSxzJiZmJiZzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixmKX19YXN5bmMgc3RhdGVTZXR1cChlKXtsZXQgcj1lKHRoaXMpO3RoaXMuY3VtdWxhdGl2ZURlZmVycmVkLmFkZFByb21pc2UociksYXdhaXQgdGhpcy5zZXRTdGF0ZShhd2FpdCByKX1jcmVhdGVQcm9jZXNzKGUpe2lmKHRoaXMuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKGBTdGF0ZVBhcnQgJyR7dGhpcy5uYW1lfScgaGFzIGJlZW4gZGlzcG9zZWRgKTtsZXQgcj1uZXcgTXgodGhpcyxlKTtyZXR1cm4gdGhpcy5wcm9jZXNzZXMucHVzaChyKSxlLmF1dG9TdGFydCYmci5zdGFydCgpLHJ9Y3JlYXRlU2NoZWR1bGVkQWN0aW9uKGUpe2lmKHRoaXMuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKGBTdGF0ZVBhcnQgJyR7dGhpcy5uYW1lfScgaGFzIGJlZW4gZGlzcG9zZWRgKTtsZXQgcj1uZXcgTXgodGhpcyx7cHJvZHVjZXI6aSgoKT0+VTVlKGUuaW50ZXJ2YWxNcyksInByb2R1Y2VyIiksc2lkZUVmZmVjdDppKGFzeW5jKCk9Pnthd2FpdCBlLmFjdGlvbi50cmlnZ2VyKGUucGF5bG9hZCl9LCJzaWRlRWZmZWN0IiksYXV0b1BhdXNlOmUuYXV0b1BhdXNlPz8hMX0pO3JldHVybiB0aGlzLnByb2Nlc3Nlcy5wdXNoKHIpLHIuc3RhcnQoKSxyfV9yZW1vdmVQcm9jZXNzKGUpe2xldCByPXRoaXMucHJvY2Vzc2VzLmluZGV4T2YoZSk7ciE9PS0xJiZ0aGlzLnByb2Nlc3Nlcy5zcGxpY2UociwxKX1kaXNwb3NlKCl7aWYoIXRoaXMuZGlzcG9zZWQpe3RoaXMuZGlzcG9zZWQ9ITA7Zm9yKGxldCBlIG9mWy4uLnRoaXMucHJvY2Vzc2VzXSllLmRpc3Bvc2UoKTt0aGlzLnByb2Nlc3Nlcy5sZW5ndGg9MCx0aGlzLnN0YXRlLmNvbXBsZXRlKCksdGhpcy5tdXRhdGlvblF1ZXVlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJihjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsKSx0aGlzLm1pZGRsZXdhcmVzLmxlbmd0aD0wLHRoaXMuc2VsZWN0b3JDYWNoZT1uZXcgV2Vha01hcCx0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMuc21hcnRzdGF0ZVJlZj12b2lkIDAsdGhpcy5zdGF0ZVN0b3JlPXZvaWQgMH19fX0pO2Z1bmN0aW9uIFB3ZSh0LGUpe3JldHVybiBWNWUodC5tYXAocj0+ci5zZWxlY3QoKSkpLnBpcGUoS2Mocj0+ZSguLi5yKSksWWcoKHIsYSk9PkpTT04uc3RyaW5naWZ5KHIpPT09SlNPTi5zdHJpbmdpZnkoYSkpKX12YXIgTndlPXUoKCk9PntmbGUoKTtaZygpO2koUHdlLCJjb21wdXRlZCIpfSk7dmFyIE93ZSxsUnQ9dSgoKT0+e2ZsZSgpO2hsZSgpO053ZSgpO093ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTbWFydHN0YXRlIil9Y29uc3RydWN0b3IoKXt0aGlzLnN0YXRlUGFydE1hcD17fSx0aGlzLnBlbmRpbmdTdGF0ZVBhcnRDcmVhdGlvbj1uZXcgTWFwLHRoaXMuYmF0Y2hEZXB0aD0wLHRoaXMuaXNGbHVzaGluZz0hMSx0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zPW5ldyBTZXR9Z2V0IGlzQmF0Y2hpbmcoKXtyZXR1cm4gdGhpcy5iYXRjaERlcHRoPjB9cmVnaXN0ZXJQZW5kaW5nTm90aWZpY2F0aW9uKGUpe3RoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMuYWRkKGUpfWFzeW5jIGJhdGNoKGUpe3RoaXMuYmF0Y2hEZXB0aCsrO3RyeXthd2FpdCBlKCl9ZmluYWxseXtpZih0aGlzLmJhdGNoRGVwdGgtLSx0aGlzLmJhdGNoRGVwdGg9PT0wJiYhdGhpcy5pc0ZsdXNoaW5nKXt0aGlzLmlzRmx1c2hpbmc9ITA7dHJ5e2Zvcig7dGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5zaXplPjA7KXtsZXQgcj1bLi4udGhpcy5wZW5kaW5nTm90aWZpY2F0aW9uc107dGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5jbGVhcigpO2ZvcihsZXQgYSBvZiByKXRyeXthd2FpdCBhLm5vdGlmeUNoYW5nZSgpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGZsdXNoaW5nIG5vdGlmaWNhdGlvbiBmb3Igc3RhdGUgcGFydDoiLHMpfX19ZmluYWxseXt0aGlzLmlzRmx1c2hpbmc9ITF9fX19Y29tcHV0ZWQoZSxyKXtyZXR1cm4gUHdlKGUscil9ZGlzcG9zZSgpe2ZvcihsZXQgZSBvZiBPYmplY3Qua2V5cyh0aGlzLnN0YXRlUGFydE1hcCkpe2xldCByPXRoaXMuc3RhdGVQYXJ0TWFwW2VdO3ImJnIuZGlzcG9zZSgpfXRoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmNsZWFyKCksdGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5jbGVhcigpfWFzeW5jIGdldFN0YXRlUGFydChlLHIsYT0ic29mdCIpe2xldCBzPXRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmdldChlKTtpZihzKXJldHVybiBzO2xldCBuPXRoaXMuc3RhdGVQYXJ0TWFwW2VdO2lmKG4pc3dpdGNoKGEpe2Nhc2UibWFuZGF0b3J5Ijp0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIHBhcnQgJyR7ZX0nIGFscmVhZHkgZXhpc3RzLCBidXQgaW5pdE1vZGUgaXMgJ21hbmRhdG9yeSdgKTtjYXNlImZvcmNlIjpuLmRpc3Bvc2UoKTticmVhaztkZWZhdWx0OnJldHVybiBufWVsc2UgaWYocj09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIHBhcnQgJyR7ZX0nIGRvZXMgbm90IGV4aXN0IGFuZCBubyBpbml0aWFsIHN0YXRlIHByb3ZpZGVkYCk7bGV0IG89dGhpcy5jcmVhdGVTdGF0ZVBhcnQoZSxyLGEpO3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLnNldChlLG8pO3RyeXtyZXR1cm4gYXdhaXQgb31maW5hbGx5e3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmRlbGV0ZShlKX19YXN5bmMgY3JlYXRlU3RhdGVQYXJ0KGUscixhPSJzb2Z0Iil7bGV0IHM9bmV3IFlNKGUsYT09PSJwZXJzaXN0ZW50Ij97ZGJOYW1lOiJzbWFydHN0YXRlIixzdG9yZU5hbWU6ZX06dm9pZCAwKTtzLnNtYXJ0c3RhdGVSZWY9dGhpcyxhd2FpdCBzLmluaXQoKTtsZXQgbj1zLmdldFN0YXRlKCk7cmV0dXJuIGE9PT0icGVyc2lzdGVudCImJm4hPT12b2lkIDA/YXdhaXQgcy5zZXRTdGF0ZSh7Li4uciwuLi5ufSk6YXdhaXQgcy5zZXRTdGF0ZShyKSx0aGlzLnN0YXRlUGFydE1hcFtlXT1zLHN9fX0pO2Z1bmN0aW9uIGI1YSh0LGUpe2xldHtjb250ZXh0OnIsc3RhdGVQYXJ0OmEsc2VsZWN0b3JGbjpzfT1lLG49bmV3IFNldCxvPWEuc2VsZWN0KHMpLnN1YnNjcmliZShkPT57Zm9yKGxldCBmIG9mIG4pZihkKX0pLGw9aSgoKT0+e2xldCBkPWEuZ2V0U3RhdGUoKTtpZihkIT09dm9pZCAwKXJldHVybiBzP3MoZCk6ZH0sImdldFZhbHVlIiksYz1pKGQ9PntsZXQgZj1kLHA9Zi5kZXRhaWw7aWYoISghcHx8cC5jb250ZXh0IT09cikpaWYoZi5zdG9wUHJvcGFnYXRpb24oKSxwLnN1YnNjcmliZSl7bGV0IGg9cC5jYWxsYmFjaztuLmFkZChoKTtsZXQgbT1pKCgpPT5uLmRlbGV0ZShoKSwidW5zdWJzY3JpYmUiKTtoKGwoKSxtKX1lbHNlIHAuY2FsbGJhY2sobCgpKX0sImhhbmRsZXIiKTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0LXJlcXVlc3QiLGMpLCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0LXJlcXVlc3QiLGMpLG8udW5zdWJzY3JpYmUoKSxuLmNsZWFyKCl9fXZhciBjUnQ9dSgoKT0+e2koYjVhLCJhdHRhY2hDb250ZXh0UHJvdmlkZXIiKX0pO3ZhciBOaD17fTtWZShOaCx7U21hcnRzdGF0ZTooKT0+T3dlLFN0YXRlQWN0aW9uOigpPT5HTSxTdGF0ZVBhcnQ6KCk9PllNLFN0YXRlUHJvY2VzczooKT0+TXgsYXR0YWNoQ29udGV4dFByb3ZpZGVyOigpPT5iNWEsY29tcHV0ZWQ6KCk9PlB3ZX0pO3ZhciBkUnQ9dSgoKT0+e2xSdCgpO2hsZSgpO0V3ZSgpO053ZSgpO2NSdCgpO0l3ZSgpfSk7dmFyIHVSdD11KCgpPT57fSk7dmFyIFJ3ZSxwUnQ9dSgoKT0+e3VSdCgpO1J3ZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlNtYXJ0dXJsIil9c3RhdGljIGNyZWF0ZUZyb21VcmwoZSxyKXtsZXQgYT1uZXcgVVJMKGUpLHM9e30sbj1bXTthLnNlYXJjaCYmYS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikubWFwKGQ9PntuLnB1c2goe2tleTpkLnNwbGl0KCI9IilbMF0sdmFsdWU6ZC5zcGxpdCgiPSIpWzFdfSl9KTtmb3IobGV0IGQgb2YgbilzW2Qua2V5XT1kLnZhbHVlO2lmKHI/LnNlYXJjaFBhcmFtcylmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoci5zZWFyY2hQYXJhbXMpKXNbZF09ci5zZWFyY2hQYXJhbXNbZF07bGV0IG89YS5wYXRobmFtZXx8IiI7aWYoT2JqZWN0LmtleXMocykubGVuZ3RoPjApe28rPSI/IjtsZXQgZD0hMDtmb3IobGV0IGYgb2YgT2JqZWN0LmtleXMocykpZD9kPSExOm8rPSImIixvKz1gJHtmfT0ke3NbZl19YH1sZXQgbD17Li4uYSxocmVmOmEuaHJlZixvcmlnaW46YS5vcmlnaW4scHJvdG9jb2w6YS5wcm90b2NvbCx1c2VybmFtZTphLnVzZXJuYW1lLHBhc3N3b3JkOmEucGFzc3dvcmQsaG9zdDphLmhvc3QsaG9zdG5hbWU6YS5ob3N0bmFtZSxwb3J0OmEucG9ydCxwYXRoOm8scGF0aG5hbWU6YS5wYXRobmFtZSxzZWFyY2g6YS5zZWFyY2gsc2VhcmNoUGFyYW1zOnMsaGFzaDphLmhhc2h9OyFsLnBvcnQmJmwucHJvdG9jb2w9PT0iaHR0cHM6IiYmKGwucG9ydD0iNDQzIiksIWwucG9ydCYmbC5wcm90b2NvbD09PSJodHRwOiImJihsLnBvcnQ9IjgwIik7bGV0IGM9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oYyxsKSxjfXN0YXRpYyBjcmVhdGVGcm9tUGFyc2VkVXJsKGUpe2xldCByPW5ldyB0O3JldHVybiBPYmplY3QuYXNzaWduKHIsZSkscn1jb25zdHJ1Y3Rvcigpe3RoaXMuc2VhcmNoUGFyYW1zPXt9fWNsb25lKCl7bGV0IGU9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx0aGlzKSxlLnNlYXJjaFBhcmFtcz17Li4udGhpcy5zZWFyY2hQYXJhbXN9LGV9c2V0KGUscil7cmV0dXJuIHRoaXNbZV09cix0aGlzfXRvU3RyaW5nKCl7bGV0IGU9IiI7cmV0dXJuIHRoaXMudXNlcm5hbWUmJiF0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfUBgKSx0aGlzLnVzZXJuYW1lJiZ0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfToke3RoaXMucGFzc3dvcmR9QGApLGAke3RoaXMucHJvdG9jb2x9Ly8ke2V9JHt0aGlzLmhvc3RuYW1lfToke3RoaXMucG9ydH0ke3RoaXMucGF0aH1gfX19KTt2YXIgSDI9e307VmUoSDIse1NtYXJ0dXJsOigpPT5Sd2V9KTt2YXIgRndlPXUoKCk9PntwUnQoKX0pO3ZhciBmUnQ9dSgoKT0+e30pO3ZhciBCd2U9dSgoKT0+e2w0KCk7bDQoKX0pO3ZhciBoUnQ9dSgoKT0+e30pO3ZhciBtUnQ9dSgoKT0+e30pO3ZhciBnUnQ9dSgoKT0+e30pO3ZhciBiUnQ9dSgoKT0+e30pO3ZhciBId2U9e307dmFyIHF3ZT11KCgpPT57aFJ0KCk7bVJ0KCk7Z1J0KCk7YlJ0KCl9KTt2YXIgeFJ0PXUoKCk9Pntxd2UoKTttbGUoKX0pO3ZhciB2UnQ9dSgoKT0+e2w0KCl9KTt2YXIgeVJ0PXUoKCk9Pnt9KTt2YXIgd1J0PXUoKCk9PntsNCgpfSk7dmFyIGtSdD11KCgpPT57bDQoKX0pO3ZhciBTUnQ9dSgoKT0+e30pO3ZhciBNUnQ9dSgoKT0+e30pO3ZhciBDUnQ9dSgoKT0+e30pO3ZhciBWd2U9e307dmFyIGdsZT11KCgpPT57dlJ0KCk7eVJ0KCk7d1J0KCk7a1J0KCk7U1J0KCk7TVJ0KCk7Q1J0KCl9KTt2YXIgelJ0PXUoKCk9PntnbGUoKTtCd2UoKX0pO3ZhciBfUnQ9dSgoKT0+e21sZSgpO2dsZSgpfSk7dmFyIFRSdD11KCgpPT57fSk7dmFyIExSdD11KCgpPT57fSk7dmFyIGp3ZT17fTt2YXIgbWxlPXUoKCk9PntmUnQoKTtCd2UoKTt4UnQoKTt6UnQoKTtfUnQoKTtUUnQoKTtMUnQoKX0pO3ZhciBEUnQ9dSgoKT0+e30pO3ZhciAkUnQ9dSgoKT0+e30pO3ZhciBVd2U9e307dmFyIEFSdD11KCgpPT57RFJ0KCk7JFJ0KCl9KTt2YXIgRVJ0PXUoKCk9Pnt9KTt2YXIgSVJ0PXUoKCk9Pnt9KTt2YXIgV3dlPXt9O3ZhciBQUnQ9dSgoKT0+e0VSdCgpO0lSdCgpfSk7dmFyIEd3ZT17fTt2YXIgTlJ0PXUoKCk9Pnt9KTt2YXIgWXdlPXUoKCk9PntsNCgpfSk7dmFyIE9SdD11KCgpPT57bDQoKX0pO3ZhciBSUnQ9dSgoKT0+e1l3ZSgpfSk7dmFyIEt3ZT17fTt2YXIgRlJ0PXUoKCk9PntZd2UoKTtPUnQoKTtSUnQoKX0pO3ZhciBCUnQ9dSgoKT0+e30pO3ZhciBIUnQ9dSgoKT0+e30pO3ZhciBad2U9e307dmFyIHFSdD11KCgpPT57QlJ0KCk7SFJ0KCl9KTt2YXIgUXdlPXUoKCk9Pnt9KTt2YXIgWHdlLFZSdD11KCgpPT57UXdlKCk7WHdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIklDbmFtZURlc2NyaXB0b3IiKX19fSk7dmFyIGpSdD11KCgpPT57fSk7dmFyIFVSdD11KCgpPT57fSk7dmFyIFdSdD11KCgpPT57fSk7dmFyIEdSdD11KCgpPT57fSk7dmFyIFlSdD11KCgpPT57fSk7dmFyIEtSdD11KCgpPT57fSk7dmFyIFpSdD11KCgpPT57fSk7dmFyIFFSdD11KCgpPT57fSk7dmFyIFhSdD11KCgpPT57fSk7dmFyIEpSdD11KCgpPT57fSk7dmFyIGJsZT17fTtWZShibGUse0lDbmFtZURlc2NyaXB0b3I6KCk9Plh3ZX0pO3ZhciBlRnQ9dSgoKT0+e1F3ZSgpO1ZSdCgpO2pSdCgpO1VSdCgpO1dSdCgpO0dSdCgpO1lSdCgpO0tSdCgpO1pSdCgpO1FSdCgpO1hSdCgpO0pSdCgpfSk7dmFyIEp3ZT11KCgpPT57fSk7dmFyIHRGdD11KCgpPT57SndlKCl9KTt2YXIgZWtlPXt9O3ZhciByRnQ9dSgoKT0+e3RGdCgpO0p3ZSgpfSk7dmFyIHRrZT17fTt2YXIgYUZ0PXUoKCk9Pnt9KTt2YXIgaUZ0PXUoKCk9Pnt9KTt2YXIgc0Z0PXUoKCk9Pnt9KTt2YXIgbkZ0PXUoKCk9Pnt9KTt2YXIgcmtlPXt9O3ZhciBvRnQ9dSgoKT0+e2lGdCgpO3NGdCgpO25GdCgpfSk7dmFyIGxGdD11KCgpPT57fSk7dmFyIGFrZT17fTtWZShha2Use2J1c2luZXNzOigpPT5qd2UsY29kZTooKT0+VXdlLGNvbnRhaW5lcjooKT0+V3dlLGNvbnRlbnQ6KCk9Pkt3ZSxkYXRhYmFzZTooKT0+SHdlLGRlc2NyaXB0b3JzOigpPT5Hd2UsZmluYW5jZTooKT0+VndlLGdlbmVyYWw6KCk9Plp3ZSxuZXR3b3JrOigpPT5ibGUsc2FhczooKT0+ZWtlLHN0b3JhZ2U6KCk9PnRrZSx3ZWJzaXRlOigpPT5ya2V9KTt2YXIgbDQ9dSgoKT0+e21sZSgpO0FSdCgpO1BSdCgpO3F3ZSgpO05SdCgpO2dsZSgpO0ZSdCgpO3FSdCgpO2VGdCgpO3JGdCgpO2FGdCgpO29GdCgpO2xGdCgpfSk7dmFyIGM0PXUoKCk9PntHbigpO2w0KCl9KTt2YXIgeGxlPXUoKCk9PntjNCgpfSk7dmFyIE91LEtNPXUoKCk9PntjNCgpO091PWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZyIpfWNvbnN0cnVjdG9yKCl7dGhpcy50YWdMZXZlbD0ibGV2ZWxib3VuZCJ9YXBwZW5kVG9Eb20oKXshdGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQmJiF0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfXJlbW92ZUZyb21Eb20oKXt0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudD90aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpOnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZ0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfX19KTt2YXIgT2gsdmxlPXUoKCk9PntjNCgpO3hsZSgpO0tNKCk7T2g9Y2xhc3MgdCBleHRlbmRzIE91e3N0YXRpY3tpKHRoaXMsIkpzb25MZFRhZyIpfXN0YXRpYyBjcmVhdGVDb21wYW55SnNvbkxkKGUpe2xldCByPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkNvcnBvcmF0aW9uIixuYW1lOmUubmFtZSxhbHRlcm5hdGVOYW1lOmUubmFtZS5yZXBsYWNlKCIgR21iSCIsIiIpLHVybDplLndlYnNpdGUsbG9nbzplLmxvZ29VcmwsY29udGFjdFBvaW50OnsiQHR5cGUiOiJDb250YWN0UG9pbnQiLHRlbGVwaG9uZTplLnBob25lLGNvbnRhY3RUeXBlOiJjdXN0b21lciBzZXJ2aWNlIixhcmVhU2VydmVkOiJERSIsYXZhaWxhYmxlTGFuZ3VhZ2U6WyJlbiIsIkdlcm1hbiJdfSxzYW1lQXM6W119LGE9ZS5zb2NpYWxzPy5maW5kKG89Pm8udHlwZT09PSJmYWNlYm9vayIpPy51cmw7YSYmci5zYW1lQXMucHVzaChhKTtsZXQgcz1lLnNvY2lhbHM/LmZpbmQobz0+by50eXBlPT09InR3aXR0ZXIiKT8udXJsO3JldHVybiBzJiZyLnNhbWVBcy5wdXNoKHMpLG5ldyB0KHIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZUpzb25MZChlKXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJOZXdzQXJ0aWNsZSIsbWFpbkVudGl0eU9mUGFnZTp7IkB0eXBlIjoiV2ViUGFnZSIsIkBpZCI6d2luZG93LmxvY2F0aW9uLmhyZWZ9LGhlYWRsaW5lOiJBcnRpY2xlIGhlYWRsaW5lIixpbWFnZTpbZS5mZWF0dXJlZEltYWdlVXJsXSxkYXRlUHVibGlzaGVkOm5ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGRhdGVNb2RpZmllZDpuZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxhdXRob3I6eyJAdHlwZSI6IlBlcnNvbiIsbmFtZTpgJHtlLmF1dGhvci5maXJzdE5hbWV9ICR7ZS5hdXRob3Iuc3VyTmFtZX1gfSxwdWJsaXNoZXI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsbmFtZTplLmF1dGhvci5zdXJOYW1lLGxvZ286eyJAdHlwZSI6IkltYWdlT2JqZWN0Iix1cmw6ZS5hdXRob3Iuc3VyTmFtZX19LGRlc2NyaXB0aW9uOmUuYXV0aG9yLmZpcnN0TmFtZX07cmV0dXJuIG5ldyB0KHIpfXN0YXRpYyBjcmVhdGVQcm9kdWN0SnNvbkxkKGUscil7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiU29mdHdhcmVBcHBsaWNhdGlvbiIsbmFtZTplLm5hbWUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixvcGVyYXRpbmdTeXN0ZW06ZS5vcyxhcHBsaWNhdGlvbkNhdGVnb3J5OmUuY2F0ZWdvcnksb2ZmZXJzOnsiQHR5cGUiOiJPZmZlciIsbmFtZToiVXNlci1iYXNlZCBQbGFuIixwcmljZVNwZWNpZmljYXRpb246eyJAdHlwZSI6IlByb3BlcnR5VmFsdWVTcGVjaWZpY2F0aW9uIix2YWx1ZU5hbWU6Ik51bWJlciBvZiBVc2VycyIsdmFsdWVSZXF1aXJlZDohMCxwcmljZToiNC45OSIscHJpY2VDdXJyZW5jeToiRVVSIn19LHB1Ymxpc2hlcjpyP3RoaXMuY3JlYXRlQ29tcGFueUpzb25MZChyKS5lbGVtZW50UmVmLnRleHRDb250ZW50OnZvaWQgMCxzY3JlZW5zaG90OiJodHRwczovL3d3dy5zb2NpYWwuaW8vc2NyZWVuc2hvdC5wbmciLHVybDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvLyJ9O3JldHVybiBuZXcgdChhKX1jb25zdHJ1Y3RvcihlKXtzdXBlcigpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3IudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiIsci50ZXh0PUpTT04uc3RyaW5naWZ5KGUpLHRoaXMuZWxlbWVudFJlZj1yfX19KTt2YXIgUG8seWxlPXUoKCk9PntjNCgpO0tNKCk7UG89Y2xhc3MgdCBleHRlbmRzIE91e3N0YXRpY3tpKHRoaXMsIk9wZW5ncmFwaFRhZyIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhlKXtsZXQgcj1bXTtyZXR1cm4gci5wdXNoKG5ldyB0KCJvZzp1cmwiLGUudXJsPz9nbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSxyLnB1c2gobmV3IHQoIm9nOnRpdGxlIixlLnRpdGxlKSksci5wdXNoKG5ldyB0KCJvZzpkZXNjcmlwdGlvbiIsZS5jb250ZW50KSksci5wdXNoKG5ldyB0KCJvZzppbWFnZSIsZS5mZWF0dXJlZEltYWdlVXJsPz8iIikpLHJ9c3RhdGljIGNyZWF0ZVByb2R1Y3RPZ1RhZ3MoZSl7bGV0IHI9W107cmV0dXJuIHIucHVzaChuZXcgdCgib2c6dHlwZSIsInByb2R1Y3QiKSksci5wdXNoKG5ldyB0KCJvZzp1cmwiLGdsb2JhbFRoaXMubG9jYXRpb24uaHJlZikpLHIucHVzaChuZXcgdCgib2c6dGl0bGUiLGAke2UubmFtZX0gLSAke2Uuc2xvZ2FufWApKSxyLnB1c2gobmV3IHQoIm9nOnNpdGVfbmFtZSIsZS5uYW1lKSksci5wdXNoKG5ldyB0KCJvZzpkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLHIucHVzaChuZXcgdCgib2c6aW1hZ2UiLGUubG9nb0xpbmspKSxyfXN0YXRpYyBjcmVhdGVDb21wYW55T2dUYWdzKGUpe2xldCByPVtdO3JldHVybiByLnB1c2gobmV3IHQoIm9nOnR5cGUiLCJjb21wYW55IikpLHIucHVzaChuZXcgdCgib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSxyLnB1c2gobmV3IHQoIm9nOnRpdGxlIixlLm5hbWUpKSxyLnB1c2gobmV3IHQoIm9nOnNpdGVfbmFtZSIsZS5uYW1lKSksci5wdXNoKG5ldyB0KCJvZzpkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLHIucHVzaChuZXcgdCgib2c6aW1hZ2UiLGUubG9nb1VybD8/IiIpKSxyfWNvbnN0cnVjdG9yKGUscil7c3VwZXIoKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7YS5zZXRBdHRyaWJ1dGUoInByb3BlcnR5IixlKSxhLmNvbnRlbnQ9cix0aGlzLmVsZW1lbnRSZWY9YX19fSk7dmFyIEN4LGlrZT11KCgpPT57S00oKTt2bGUoKTt5bGUoKTtza2UoKTtjNCgpO0N4PWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZ0xldmVsIil9c2V0IHRpdGxlKGUpe3RoaXMudGl0bGVTdG9yZT1lLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJihkb2N1bWVudC50aXRsZT10aGlzLnRpdGxlU3RvcmUpfWdldCB0aXRsZSgpe3JldHVybiB0aGlzLnRpdGxlU3RvcmV9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnRhZ3M9W10sdGhpcy5zdGF0ZT0iZGlzYWJsZWQiLHRoaXMudGFnTWFuYWdlclJlZj1lLHRoaXMudHlwZT1yfWFkZFRhZyhlKXtpZihlIGluc3RhbmNlb2YgQXJyYXkpZm9yKGxldCByIG9mIGUpdGhpcy5hZGRUYWcocik7ZWxzZSB0aGlzLnRhZ3MucHVzaChlKSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiZlLmFwcGVuZFRvRG9tKCl9YXN5bmMgYWRkQ29tcGFueUluZm8oZSl7dGhpcy5hZGRUYWcoT2guY3JlYXRlQ29tcGFueUpzb25MZChlKSksdGhpcy5hZGRUYWcobmV3IFBvKCJvZzp0eXBlIiwiYnVzaW5lc3MuYnVzaW5lc3MiKSksdGhpcy5hZGRUYWcobmV3IFBvKCJvZzp0aXRsZSIsZS5uYW1lKSksdGhpcy5hZGRUYWcobmV3IFBvKCJvZzp1cmwiLGUud2Vic2l0ZT8/IiIpKSx0aGlzLmFkZFRhZyhuZXcgUG8oIm9nOmltYWdlIixlLmxvZ29Vcmw/PyIiKSksdGhpcy5hZGRUYWcobmV3IFBvKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuYWRkcmVzcy5zdHJlZXROYW1lfSAke2UuYWRkcmVzcy5ob3VzZU51bWJlcn1gKSksdGhpcy5hZGRUYWcobmV3IFBvKCJidXNpbmVzczpjb250YWN0X2RhdGE6bG9jYWxpdHkiLGUuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IFBvKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmFkZHJlc3MuY2l0eSkpLHRoaXMuYWRkVGFnKG5ldyBQbygiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnBvc3RhbF9jb2RlIixlLmFkZHJlc3MucG9zdGFsQ29kZSkpLHRoaXMuYWRkVGFnKG5ldyBQbygiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmNvdW50cnlfbmFtZSIsZS5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcoT2guY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKFBvLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLHIpe3RoaXMuYWRkVGFnKE9oLmNyZWF0ZVByb2R1Y3RKc29uTGQoZSxyKSksdGhpcy5hZGRUYWcoUG8uY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIFBsLG5rZT11KCgpPT57S00oKTtQbD1jbGFzcyBleHRlbmRzIE91e3N0YXRpY3tpKHRoaXMsIk1ldGFUYWciKX1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2EubmFtZT1lLGEuY29udGVudD1yLHRoaXMuZWxlbWVudFJlZj1hfX19KTt2YXIgd2xlLHNrZT11KCgpPT57aWtlKCk7YzQoKTt4bGUoKTtua2UoKTt2bGUoKTt5bGUoKTt3bGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGFnTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcgQ3godGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IEN4KHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cChlKXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IFBsKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgUGwoInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksZS50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IFBsKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBQbCgidHdpdHRlcjpzaXRlIixlLnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgUGwoInR3aXR0ZXI6Y3JlYXRvciIsZS50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBQbCgiZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxlLmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBQbCgiY2Fub25pY2FsIixlLmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKGUubGRDb21wYW55JiYhZS5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKGUubGRDb21wYW55KTticmVhaztjYXNlISFlLmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyhlLmxkUHJvZHVjdCxlLmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKGUpe2xldCByPW5ldyBDeCh0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHIudGl0bGU9ZS50aXRsZSxlLmRlc2NyaXB0aW9uJiZyLmFkZFRhZyhuZXcgUGwoImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD1yLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCkscn1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBaTSxjRnQ9dSgoKT0+e2M0KCk7eGxlKCk7c2tlKCk7aWtlKCk7Wk09Y2xhc3N7c3RhdGlje2kodGhpcywiV2ViU2V0dXAiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRhZ01hbmFnZXI9bmV3IHdsZSx0aGlzLnJlYWR5RGVmZXJyZWQ9eHQuZGVmZXIoKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZD14dC5kZWZlcigpLHRoaXMucmVhZHlQcm9taXNlPXRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMucmVhZHlGb3JTbWFydHNzclByb21pc2U9dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucHJvbWlzZSx0aGlzLm9wdGlvbnM9ZSx0aGlzLnNldHVwKCkudGhlbigoKT0+e3RoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9KX1hc3luYyBzZXR1cChlKXtlJiYodGhpcy5vcHRpb25zPWUpLGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXR1cCh0aGlzLm9wdGlvbnMubWV0YU9iamVjdCl9cmV2ZXJ0VG9CYXNlTGV2ZWwoKXt0aGlzLnRhZ01hbmFnZXIucmV2ZXJ0VG9CYXNlTGV2ZWwoKX1hc3luYyBzZXRTdWJMZXZlbChlKXtyZXR1cm4gYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldFN1YlBhZ2VMZXZlbChlKX1mbGFzaFRpdGxlKGUpe31pbmZvcm1SZWFkeUZvclNtYXJ0c3NyKCl7dGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHxjb25zb2xlLmVycm9yKCJZb3UgaGF2ZSBub3QgaW5kaWNhdGVkIHRoYXQgeW91IGluZm9ybSBzbWFydHNzciBieSBhIGRlZGljYXRlZCBzaWduYWwhIFBsZWFzZSBjb25zaWRlciBkb2luZyBzbyEiKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9fX0pO3ZhciBva2UsZEZ0PXUoKCk9PntjNCgpO29rZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaXRsZSIpfX19KTt2YXIgbGtlPXt9O1ZlKGxrZSx7SnNvbkxkVGFnOigpPT5PaCxNZXRhVGFnOigpPT5QbCxPcGVuZ3JhcGhUYWc6KCk9PlBvLFRpdGxlOigpPT5va2UsV2ViU2V0dXA6KCk9PlpNfSk7dmFyIGtsZT11KCgpPT57Y0Z0KCk7bmtlKCk7eWxlKCk7dmxlKCk7ZEZ0KCl9KTtmdW5jdGlvbiB1RnQodCxlLHIpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKGUscikpfWZ1bmN0aW9uIHk1YSh0LGUscil7cmV0dXJuKDEtcikqdCtyKmV9ZnVuY3Rpb24gdzVhKHQsZSxyLGEpe3JldHVybiB5NWEodCxlLDEtTWF0aC5leHAoLXIqYSkpfWZ1bmN0aW9uIGs1YSh0LGUpe3JldHVybih0JWUrZSklZX1mdW5jdGlvbiBNNWEodCxlKXtsZXQgcjtyZXR1cm4gZnVuY3Rpb24oLi4uYSl7bGV0IHM9dGhpcztjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KCgpPT57cj12b2lkIDAsdC5hcHBseShzLGEpfSxlKX19dmFyIHY1YSxTNWEsQzVhLHBGdCxmRnQsUnUsejVhLGhGdCxRTSxtRnQ9dSgoKT0+e3Y1YT0iMS4zLjE3IjtpKHVGdCwiY2xhbXAiKTtpKHk1YSwibGVycCIpO2kodzVhLCJkYW1wIik7aShrNWEsIm1vZHVsbyIpO1M1YT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJBbmltYXRlIil9aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKHQpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IGU9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPXQ7bGV0IHI9dUZ0KDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO2U9cj49MTtsZXQgYT1lPzE6dGhpcy5lYXNpbmcocik7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSphfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPXc1YSh0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLHQpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApO2UmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLGUpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8odCxlLHtsZXJwOnIsZHVyYXRpb246YSxlYXNpbmc6cyxvblN0YXJ0Om4sb25VcGRhdGU6b30pe3RoaXMuZnJvbT10aGlzLnZhbHVlPXQsdGhpcy50bz1lLHRoaXMubGVycD1yLHRoaXMuZHVyYXRpb249YSx0aGlzLmVhc2luZz1zLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxuPy4oKSx0aGlzLm9uVXBkYXRlPW99fTtpKE01YSwiZGVib3VuY2UiKTtDNWE9Y2xhc3N7c3RhdGlje2kodGhpcywiRGltZW5zaW9ucyIpfWNvbnN0cnVjdG9yKHQsZSx7YXV0b1Jlc2l6ZTpyPSEwLGRlYm91bmNlOmE9MjUwfT17fSl7dGhpcy53cmFwcGVyPXQsdGhpcy5jb250ZW50PWUsciYmKHRoaXMuZGVib3VuY2VkUmVzaXplPU01YSh0aGlzLnJlc2l6ZSxhKSx0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpOih0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCkpLHRoaXMucmVzaXplKCl9d2lkdGg9MDtoZWlnaHQ9MDtzY3JvbGxIZWlnaHQ9MDtzY3JvbGxXaWR0aD0wO2RlYm91bmNlZFJlc2l6ZTt3cmFwcGVyUmVzaXplT2JzZXJ2ZXI7Y29udGVudFJlc2l6ZU9ic2VydmVyO2Rlc3Ryb3koKXt0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy53cmFwcGVyPT09d2luZG93JiZ0aGlzLmRlYm91bmNlZFJlc2l6ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpfXJlc2l6ZT1pKCgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfSwicmVzaXplIik7b25XcmFwcGVyUmVzaXplPWkoKCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9LCJvbldyYXBwZXJSZXNpemUiKTtvbkNvbnRlbnRSZXNpemU9aSgoKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfSwib25Db250ZW50UmVzaXplIik7Z2V0IGxpbWl0KCl7cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aC10aGlzLndpZHRoLHk6dGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5oZWlnaHR9fX0scEZ0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkVtaXR0ZXIiKX1ldmVudHM9e307ZW1pdCh0LC4uLmUpe2xldCByPXRoaXMuZXZlbnRzW3RdfHxbXTtmb3IobGV0IGE9MCxzPXIubGVuZ3RoO2E8czthKyspclthXT8uKC4uLmUpfW9uKHQsZSl7cmV0dXJuIHRoaXMuZXZlbnRzW3RdPy5wdXNoKGUpfHwodGhpcy5ldmVudHNbdF09W2VdKSwoKT0+e3RoaXMuZXZlbnRzW3RdPXRoaXMuZXZlbnRzW3RdPy5maWx0ZXIocj0+ZSE9PXIpfX1vZmYodCxlKXt0aGlzLmV2ZW50c1t0XT10aGlzLmV2ZW50c1t0XT8uZmlsdGVyKHI9PmUhPT1yKX1kZXN0cm95KCl7dGhpcy5ldmVudHM9e319fSxmRnQ9MTAwLzYsUnU9e3Bhc3NpdmU6ITF9LHo1YT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU2Nyb2xsIil9Y29uc3RydWN0b3IodCxlPXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD10LHRoaXMub3B0aW9ucz1lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxSdSksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LFJ1KSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLFJ1KSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxSdSl9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IHBGdDtvbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxSdSksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LFJ1KSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLFJ1KSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxSdSl9b25Ub3VjaFN0YXJ0PWkodD0+e2xldHtjbGllbnRYOmUsY2xpZW50WTpyfT10LnRhcmdldFRvdWNoZXM/dC50YXJnZXRUb3VjaGVzWzBdOnQ7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT1yLHRoaXMubGFzdERlbHRhPXt4OjAseTowfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOjAsZGVsdGFZOjAsZXZlbnQ6dH0pfSwib25Ub3VjaFN0YXJ0Iik7b25Ub3VjaE1vdmU9aSh0PT57bGV0e2NsaWVudFg6ZSxjbGllbnRZOnJ9PXQudGFyZ2V0VG91Y2hlcz90LnRhcmdldFRvdWNoZXNbMF06dCxhPS0oZS10aGlzLnRvdWNoU3RhcnQueCkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcixzPS0oci10aGlzLnRvdWNoU3RhcnQueSkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcjt0aGlzLnRvdWNoU3RhcnQueD1lLHRoaXMudG91Y2hTdGFydC55PXIsdGhpcy5sYXN0RGVsdGE9e3g6YSx5OnN9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6YSxkZWx0YVk6cyxldmVudDp0fSl9LCJvblRvdWNoTW92ZSIpO29uVG91Y2hFbmQ9aSh0PT57dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDp0aGlzLmxhc3REZWx0YS54LGRlbHRhWTp0aGlzLmxhc3REZWx0YS55LGV2ZW50OnR9KX0sIm9uVG91Y2hFbmQiKTtvbldoZWVsPWkodD0+e2xldHtkZWx0YVg6ZSxkZWx0YVk6cixkZWx0YU1vZGU6YX09dCxzPWE9PT0xP2ZGdDphPT09Mj90aGlzLndpbmRvdy53aWR0aDoxLG49YT09PTE/ZkZ0OmE9PT0yP3RoaXMud2luZG93LmhlaWdodDoxO2UqPXMscio9bixlKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHIqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIsdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTpyLGV2ZW50OnR9KX0sIm9uV2hlZWwiKTtvbldpbmRvd1Jlc2l6ZT1pKCgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fSwib25XaW5kb3dSZXNpemUiKX0saEZ0PWkodD0+TWF0aC5taW4oMSwxLjAwMS1NYXRoLnBvdygyLC0xMCp0KSksImRlZmF1bHRFYXNpbmciKSxRTT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMZW5pcyIpfV9pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IFM1YTtlbWl0dGVyPW5ldyBwRnQ7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOnQ9d2luZG93LGNvbnRlbnQ6ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OnI9dCxzbW9vdGhXaGVlbDphPSEwLHN5bmNUb3VjaDpzPSExLHN5bmNUb3VjaExlcnA6bj0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om89MS43LGR1cmF0aW9uOmwsZWFzaW5nOmMsbGVycDpkPS4xLGluZmluaXRlOmY9ITEsb3JpZW50YXRpb246cD0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpoPXA9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOm09MSx3aGVlbE11bHRpcGxpZXI6dj0xLGF1dG9SZXNpemU6Yj0hMCxwcmV2ZW50OmcsdmlydHVhbFNjcm9sbDp5LG92ZXJzY3JvbGw6az0hMCxhdXRvUmFmOk09ITEsYW5jaG9yczpOPSExLGF1dG9Ub2dnbGU6Xz0hMSxhbGxvd05lc3RlZFNjcm9sbDpTPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Tz0hMSxuYWl2ZURpbWVuc2lvbnM6TD1PLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpFPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj12NWEsKCF0fHx0PT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKHQ9d2luZG93KSx0eXBlb2YgbD09Im51bWJlciImJnR5cGVvZiBjIT0iZnVuY3Rpb24iP2M9aEZ0OnR5cGVvZiBjPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbCE9Im51bWJlciImJihsPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjp0LGNvbnRlbnQ6ZSxldmVudHNUYXJnZXQ6cixzbW9vdGhXaGVlbDphLHN5bmNUb3VjaDpzLHN5bmNUb3VjaExlcnA6bix0b3VjaEluZXJ0aWFFeHBvbmVudDpvLGR1cmF0aW9uOmwsZWFzaW5nOmMsbGVycDpkLGluZmluaXRlOmYsZ2VzdHVyZU9yaWVudGF0aW9uOmgsb3JpZW50YXRpb246cCx0b3VjaE11bHRpcGxpZXI6bSx3aGVlbE11bHRpcGxpZXI6dixhdXRvUmVzaXplOmIscHJldmVudDpnLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOmssYXV0b1JhZjpNLGFuY2hvcnM6TixhdXRvVG9nZ2xlOl8sYWxsb3dOZXN0ZWRTY3JvbGw6UyxuYWl2ZURpbWVuc2lvbnM6TCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6RX0sdGhpcy5kaW1lbnNpb25zPW5ldyBDNWEodCxlLHthdXRvUmVzaXplOmJ9KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IHo1YShyLHt0b3VjaE11bHRpcGxpZXI6bSx3aGVlbE11bHRpcGxpZXI6dn0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1vZmYodCxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZih0LGUpfW9uU2Nyb2xsRW5kPWkodD0+e3QgaW5zdGFuY2VvZiBDdXN0b21FdmVudHx8KHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoInx8dGhpcy5pc1Njcm9sbGluZz09PSExKSYmdC5zdG9wUHJvcGFnYXRpb24oKX0sIm9uU2Nyb2xsRW5kIik7ZGlzcGF0Y2hTY3JvbGxlbmRFdmVudD1pKCgpPT57dGhpcy5vcHRpb25zLndyYXBwZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNjcm9sbGVuZCIse2J1YmJsZXM6dGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3csZGV0YWlsOntsZW5pc1Njcm9sbEVuZDohMH19KSl9LCJkaXNwYXRjaFNjcm9sbGVuZEV2ZW50Iik7Z2V0IG92ZXJmbG93KCl7bGV0IHQ9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVt0XX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9aSh0PT57dC5wcm9wZXJ0eU5hbWUuaW5jbHVkZXMoIm92ZXJmbG93IikmJnRoaXMuY2hlY2tPdmVyZmxvdygpfSwib25UcmFuc2l0aW9uRW5kIik7c2V0U2Nyb2xsKHQpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OnQsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDp0LGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9aSh0PT57bGV0IHI9dC5jb21wb3NlZFBhdGgoKS5maWx0ZXIoYT0+YSBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50JiZhLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTtpZih0aGlzLm9wdGlvbnMuYW5jaG9ycyl7bGV0IGE9ci5maW5kKHM9PnMuZ2V0QXR0cmlidXRlKCJocmVmIik/LmluY2x1ZGVzKCIjIikpO2lmKGEpe2xldCBzPWEuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYocyl7bGV0IG49dHlwZW9mIHRoaXMub3B0aW9ucy5hbmNob3JzPT0ib2JqZWN0IiYmdGhpcy5vcHRpb25zLmFuY2hvcnM/dGhpcy5vcHRpb25zLmFuY2hvcnM6dm9pZCAwLG89YCMke3Muc3BsaXQoIiMiKVsxXX1gO3RoaXMuc2Nyb2xsVG8obyxuKX19fXRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUmJnIuZmluZChzPT5zLmhvc3Q9PT13aW5kb3cubG9jYXRpb24uaG9zdCkmJnRoaXMucmVzZXQoKX0sIm9uQ2xpY2siKTtvblBvaW50ZXJEb3duPWkodD0+e3QuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfSwib25Qb2ludGVyRG93biIpO29uVmlydHVhbFNjcm9sbD1pKHQ9PntpZih0eXBlb2YgdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGw9PSJmdW5jdGlvbiImJnRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsKHQpPT09ITEpcmV0dXJuO2xldHtkZWx0YVg6ZSxkZWx0YVk6cixldmVudDphfT10O2lmKHRoaXMuZW1pdHRlci5lbWl0KCJ2aXJ0dWFsLXNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTpyLGV2ZW50OmF9KSxhLmN0cmxLZXl8fGEubGVuaXNTdG9wUHJvcGFnYXRpb24pcmV0dXJuO2xldCBzPWEudHlwZS5pbmNsdWRlcygidG91Y2giKSxuPWEudHlwZS5pbmNsdWRlcygid2hlZWwiKTt0aGlzLmlzVG91Y2hpbmc9YS50eXBlPT09InRvdWNoc3RhcnQifHxhLnR5cGU9PT0idG91Y2htb3ZlIjtsZXQgbz1lPT09MCYmcj09PTA7aWYodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmcyYmYS50eXBlPT09InRvdWNoc3RhcnQiJiZvJiYhdGhpcy5pc1N0b3BwZWQmJiF0aGlzLmlzTG9ja2VkKXt0aGlzLnJlc2V0KCk7cmV0dXJufWxldCBjPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0idmVydGljYWwiJiZyPT09MHx8dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmZT09PTA7aWYob3x8YylyZXR1cm47bGV0IGQ9YS5jb21wb3NlZFBhdGgoKTtkPWQuc2xpY2UoMCxkLmluZGV4T2YodGhpcy5yb290RWxlbWVudCkpO2xldCBmPXRoaXMub3B0aW9ucy5wcmV2ZW50O2lmKGQuZmluZChnPT5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0eXBlb2YgZj09ImZ1bmN0aW9uIiYmZj8uKGcpfHxnLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQiKXx8cyYmZy5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoIil8fG4mJmcuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC13aGVlbCIpfHx0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwmJnRoaXMuY2hlY2tOZXN0ZWRTY3JvbGwoZyx7ZGVsdGFYOmUsZGVsdGFZOnJ9KSkpKXJldHVybjtpZih0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCl7YS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCEodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmc3x8dGhpcy5vcHRpb25zLnNtb290aFdoZWVsJiZuKSl7dGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIix0aGlzLmFuaW1hdGUuc3RvcCgpLGEubGVuaXNTdG9wUHJvcGFnYXRpb249ITA7cmV0dXJufWxldCBoPXI7dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJib3RoIj9oPU1hdGguYWJzKHIpPk1hdGguYWJzKGUpP3I6ZTp0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiYoaD1lKSwoIXRoaXMub3B0aW9ucy5vdmVyc2Nyb2xsfHx0aGlzLm9wdGlvbnMuaW5maW5pdGV8fHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93JiZ0aGlzLmxpbWl0PjAmJih0aGlzLmFuaW1hdGVkU2Nyb2xsPjAmJnRoaXMuYW5pbWF0ZWRTY3JvbGw8dGhpcy5saW1pdHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PTAmJnI+MHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PXRoaXMubGltaXQmJnI8MCkpJiYoYS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMCksYS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7bGV0IG09cyYmdGhpcy5vcHRpb25zLnN5bmNUb3VjaCxiPXMmJmEudHlwZT09PSJ0b3VjaGVuZCI7YiYmKGg9TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpKk1hdGgucG93KE1hdGguYWJzKHRoaXMudmVsb2NpdHkpLHRoaXMub3B0aW9ucy50b3VjaEluZXJ0aWFFeHBvbmVudCkpLHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwraCx7cHJvZ3JhbW1hdGljOiExLC4uLm0/e2xlcnA6Yj90aGlzLm9wdGlvbnMuc3luY1RvdWNoTGVycDoxfTp7bGVycDp0aGlzLm9wdGlvbnMubGVycCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOnRoaXMub3B0aW9ucy5lYXNpbmd9fSl9LCJvblZpcnR1YWxTY3JvbGwiKTtyZXNpemUoKXt0aGlzLmRpbWVuc2lvbnMucmVzaXplKCksdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmVtaXQoKX1lbWl0KCl7dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIsdGhpcyl9b25OYXRpdmVTY3JvbGw9aSgoKT0+e2lmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0IT09bnVsbCYmKGNsZWFyVGltZW91dCh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCksdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbCksdGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtyZXR1cm59aWYodGhpcy5pc1Njcm9sbGluZz09PSExfHx0aGlzLmlzU2Nyb2xsaW5nPT09Im5hdGl2ZSIpe2xldCB0PXRoaXMuYW5pbWF0ZWRTY3JvbGw7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9dGhpcy5hbmltYXRlZFNjcm9sbC10LHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLmFuaW1hdGVkU2Nyb2xsLXQpLHRoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIiksdGhpcy5lbWl0KCksdGhpcy52ZWxvY2l0eSE9PTAmJih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PTAsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmVtaXQoKX0sNDAwKSl9fSwib25OYXRpdmVTY3JvbGwiKTtyZXNldCgpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHk9MCx0aGlzLmFuaW1hdGUuc3RvcCgpfXN0YXJ0KCl7aWYodGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpO3JldHVybn10aGlzLmludGVybmFsU3RhcnQoKX19aW50ZXJuYWxTdGFydCgpe3RoaXMuaXNTdG9wcGVkJiYodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuZW1pdCgpKX1zdG9wKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgib3ZlcmZsb3ciLCJjbGlwIik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdG9wKCl9fWludGVybmFsU3RvcCgpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuZW1pdCgpKX1yYWY9aSh0PT57bGV0IGU9dC0odGhpcy50aW1lfHx0KTt0aGlzLnRpbWU9dCx0aGlzLmFuaW1hdGUuYWR2YW5jZShlKi4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9LCJyYWYiKTtzY3JvbGxUbyh0LHtvZmZzZXQ6ZT0wLGltbWVkaWF0ZTpyPSExLGxvY2s6YT0hMSxwcm9ncmFtbWF0aWM6cz0hMCxsZXJwOm49cz90aGlzLm9wdGlvbnMubGVycDp2b2lkIDAsZHVyYXRpb246bz1zP3RoaXMub3B0aW9ucy5kdXJhdGlvbjp2b2lkIDAsZWFzaW5nOmw9cz90aGlzLm9wdGlvbnMuZWFzaW5nOnZvaWQgMCxvblN0YXJ0OmMsb25Db21wbGV0ZTpkLGZvcmNlOmY9ITEsdXNlckRhdGE6cH09e30pe2lmKCEoKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKSYmIWYpKXtpZih0eXBlb2YgdD09InN0cmluZyImJlsidG9wIiwibGVmdCIsInN0YXJ0IiwiIyJdLmluY2x1ZGVzKHQpKXQ9MDtlbHNlIGlmKHR5cGVvZiB0PT0ic3RyaW5nIiYmWyJib3R0b20iLCJyaWdodCIsImVuZCJdLmluY2x1ZGVzKHQpKXQ9dGhpcy5saW1pdDtlbHNle2xldCBoO2lmKHR5cGVvZiB0PT0ic3RyaW5nIj8oaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpLGh8fCh0PT09IiN0b3AiP3Q9MDpjb25zb2xlLndhcm4oIkxlbmlzOiBUYXJnZXQgbm90IGZvdW5kIix0KSkpOnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdD8ubm9kZVR5cGUmJihoPXQpLGgpe2lmKHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93KXtsZXQgdj10aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2UtPXRoaXMuaXNIb3Jpem9udGFsP3YubGVmdDp2LnRvcH1sZXQgbT1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Q9KHRoaXMuaXNIb3Jpem9udGFsP20ubGVmdDptLnRvcCkrdGhpcy5hbmltYXRlZFNjcm9sbH19aWYodHlwZW9mIHQ9PSJudW1iZXIiKXtpZih0Kz1lLHQ9TWF0aC5yb3VuZCh0KSx0aGlzLm9wdGlvbnMuaW5maW5pdGUpe2lmKHMpe3RoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5zY3JvbGw7bGV0IGg9dC10aGlzLmFuaW1hdGVkU2Nyb2xsO2g+dGhpcy5saW1pdC8yP3Q9dC10aGlzLmxpbWl0Omg8LXRoaXMubGltaXQvMiYmKHQ9dCt0aGlzLmxpbWl0KX19ZWxzZSB0PXVGdCgwLHQsdGhpcy5saW1pdCk7aWYodD09PXRoaXMudGFyZ2V0U2Nyb2xsKXtjPy4odGhpcyksZD8uKHRoaXMpO3JldHVybn1pZih0aGlzLnVzZXJEYXRhPXA/P3t9LHIpe3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dCx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksdGhpcy5yZXNldCgpLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpLHRoaXMuZW1pdCgpLGQ/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSk7cmV0dXJufXN8fCh0aGlzLnRhcmdldFNjcm9sbD10KSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBsIT0iZnVuY3Rpb24iP2w9aEZ0OnR5cGVvZiBsPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMuYW5pbWF0ZS5mcm9tVG8odGhpcy5hbmltYXRlZFNjcm9sbCx0LHtkdXJhdGlvbjpvLGVhc2luZzpsLGxlcnA6bixvblN0YXJ0OmkoKCk9PnthJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixjPy4odGhpcyl9LCJvblN0YXJ0Iiksb25VcGRhdGU6aSgoaCxtKT0+e3RoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PWgtdGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSksdGhpcy5hbmltYXRlZFNjcm9sbD1oLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSxzJiYodGhpcy50YXJnZXRTY3JvbGw9aCksbXx8dGhpcy5lbWl0KCksbSYmKHRoaXMucmVzZXQoKSx0aGlzLmVtaXQoKSxkPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpKX0sIm9uVXBkYXRlIil9KX19fXByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITF9KX1jaGVja05lc3RlZFNjcm9sbCh0LHtkZWx0YVg6ZSxkZWx0YVk6cn0pe2xldCBhPURhdGUubm93KCkscz10Ll9sZW5pcz8/PXt9LG4sbyxsLGMsZCxmLHAsaCxtPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb247aWYoYS0ocy50aW1lPz8wKT4yZTMpe3MudGltZT1EYXRlLm5vdygpO2xldCBfPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpO3MuY29tcHV0ZWRTdHlsZT1fO2xldCBTPV8ub3ZlcmZsb3dYLE89Xy5vdmVyZmxvd1k7aWYobj1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoUyksbz1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoTykscy5oYXNPdmVyZmxvd1g9bixzLmhhc092ZXJmbG93WT1vLCFuJiYhb3x8bT09PSJ2ZXJ0aWNhbCImJiFvfHxtPT09Imhvcml6b250YWwiJiYhbilyZXR1cm4hMTtkPXQuc2Nyb2xsV2lkdGgsZj10LnNjcm9sbEhlaWdodCxwPXQuY2xpZW50V2lkdGgsaD10LmNsaWVudEhlaWdodCxsPWQ+cCxjPWY+aCxzLmlzU2Nyb2xsYWJsZVg9bCxzLmlzU2Nyb2xsYWJsZVk9YyxzLnNjcm9sbFdpZHRoPWQscy5zY3JvbGxIZWlnaHQ9ZixzLmNsaWVudFdpZHRoPXAscy5jbGllbnRIZWlnaHQ9aH1lbHNlIGw9cy5pc1Njcm9sbGFibGVYLGM9cy5pc1Njcm9sbGFibGVZLG49cy5oYXNPdmVyZmxvd1gsbz1zLmhhc092ZXJmbG93WSxkPXMuc2Nyb2xsV2lkdGgsZj1zLnNjcm9sbEhlaWdodCxwPXMuY2xpZW50V2lkdGgsaD1zLmNsaWVudEhlaWdodDtpZighbiYmIW98fCFsJiYhY3x8bT09PSJ2ZXJ0aWNhbCImJighb3x8IWMpfHxtPT09Imhvcml6b250YWwiJiYoIW58fCFsKSlyZXR1cm4hMTtsZXQgdjtpZihtPT09Imhvcml6b250YWwiKXY9IngiO2Vsc2UgaWYobT09PSJ2ZXJ0aWNhbCIpdj0ieSI7ZWxzZXtsZXQgXz1lIT09MCxTPXIhPT0wO18mJm4mJmwmJih2PSJ4IiksUyYmbyYmYyYmKHY9InkiKX1pZighdilyZXR1cm4hMTtsZXQgYixnLHksayxNO2lmKHY9PT0ieCIpYj10LnNjcm9sbExlZnQsZz1kLXAseT1lLGs9bixNPWw7ZWxzZSBpZih2PT09InkiKWI9dC5zY3JvbGxUb3AsZz1mLWgseT1yLGs9byxNPWM7ZWxzZSByZXR1cm4hMTtyZXR1cm4oeT4wP2I8ZzpiPjApJiZrJiZNfWdldCByb290RWxlbWVudCgpe3JldHVybiB0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdz9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6dGhpcy5vcHRpb25zLndyYXBwZXJ9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5uYWl2ZURpbWVuc2lvbnM/dGhpcy5pc0hvcml6b250YWw/dGhpcy5yb290RWxlbWVudC5zY3JvbGxXaWR0aC10aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoOnRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMucm9vdEVsZW1lbnQuY2xpZW50SGVpZ2h0OnRoaXMuZGltZW5zaW9ucy5saW1pdFt0aGlzLmlzSG9yaXpvbnRhbD8ieCI6InkiXX1nZXQgaXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIn1nZXQgYWN0dWFsU2Nyb2xsKCl7bGV0IHQ9dGhpcy5vcHRpb25zLndyYXBwZXI7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsP3Quc2Nyb2xsWD8/dC5zY3JvbGxMZWZ0OnQuc2Nyb2xsWT8/dC5zY3JvbGxUb3B9Z2V0IHNjcm9sbCgpe3JldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGU/azVhKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5saW1pdCk6dGhpcy5hbmltYXRlZFNjcm9sbH1nZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5saW1pdD09PTA/MTp0aGlzLnNjcm9sbC90aGlzLmxpbWl0fWdldCBpc1Njcm9sbGluZygpe3JldHVybiB0aGlzLl9pc1Njcm9sbGluZ31zZXQgaXNTY3JvbGxpbmcodCl7dGhpcy5faXNTY3JvbGxpbmchPT10JiYodGhpcy5faXNTY3JvbGxpbmc9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RvcHBlZH1zZXQgaXNTdG9wcGVkKHQpe3RoaXMuX2lzU3RvcHBlZCE9PXQmJih0aGlzLl9pc1N0b3BwZWQ9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5faXNMb2NrZWR9c2V0IGlzTG9ja2VkKHQpe3RoaXMuX2lzTG9ja2VkIT09dCYmKHRoaXMuX2lzTG9ja2VkPXQsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU21vb3RoKCl7cmV0dXJuIHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIn1nZXQgY2xhc3NOYW1lKCl7bGV0IHQ9ImxlbmlzIjtyZXR1cm4gdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0Kz0iIGxlbmlzLWF1dG9Ub2dnbGUiKSx0aGlzLmlzU3RvcHBlZCYmKHQrPSIgbGVuaXMtc3RvcHBlZCIpLHRoaXMuaXNMb2NrZWQmJih0Kz0iIGxlbmlzLWxvY2tlZCIpLHRoaXMuaXNTY3JvbGxpbmcmJih0Kz0iIGxlbmlzLXNjcm9sbGluZyIpLHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIiYmKHQrPSIgbGVuaXMtc21vb3RoIiksdH11cGRhdGVDbGFzc05hbWUoKXt0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT1gJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKX1jbGVhblVwQ2xhc3NOYW1lKCl7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvbGVuaXMoLVx3Kyk/L2csIiIpLnRyaW0oKX19fSk7dmFyIGdGdD1OdCgoY2tlLGRrZSk9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgY2tlPT0ib2JqZWN0IiYmdHlwZW9mIGRrZTwidSI/ZGtlLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR8fHNlbGYsdC5Td2VldFNjcm9sbD1lKCkpfSkoY2tlLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWkoZnVuY3Rpb24oKXtyZXR1cm4gdD1PYmplY3QuYXNzaWdufHxpKGZ1bmN0aW9uKEgpe2Zvcih2YXIgVSxqPTEsYWU9YXJndW1lbnRzLmxlbmd0aDtqPGFlO2orKyl7VT1hcmd1bWVudHNbal07Zm9yKHZhciBYIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsWCkmJihIW1hdPVVbWF0pfXJldHVybiBIfSwiX19hc3NpZ24iKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIl9fYXNzaWduIiksZT0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkscj1lP3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGE9KGZ1bmN0aW9uKCl7dmFyIHE9ITE7aWYoIWUpcmV0dXJuIHE7dHJ5e3ZhciBIPXdpbmRvdyxVPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDppKGZ1bmN0aW9uKCl7cT0hMH0sImdldCIpfSk7SC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFUpLEgucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxVKX1jYXRjaHt9cmV0dXJuIHF9KSgpLHM9aShmdW5jdGlvbihxKXtyZXR1cm4gdHlwZW9mIHE9PSJzdHJpbmcifSwiaXNTdHJpbmciKSxuPWkoZnVuY3Rpb24ocSl7cmV0dXJuIHR5cGVvZiBxPT0iZnVuY3Rpb24ifSwiaXNGdW5jdGlvbiIpLG89aShmdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkuaXNBcnJheShxKX0sImlzQXJyYXkiKSxsPWkoZnVuY3Rpb24ocSl7cmV0dXJuIW8ocSkmJnEtcGFyc2VGbG9hdChxKSsxPj0wfSwiaXNOdW1lcmljIiksYz1pKGZ1bmN0aW9uKHEsSCl7cmV0dXJuIHEmJnEuaGFzT3duUHJvcGVydHkoSCl9LCJoYXNQcm9wIiksZD1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOm51bGwsZj1lP3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCxwPU1hdGguY29zLGg9TWF0aC5zaW4sbT1NYXRoLnBvdyx2PU1hdGguc3FydCxiPU1hdGguUEksZz17bGluZWFyOmkoZnVuY3Rpb24ocSl7cmV0dXJuIHF9LCJsaW5lYXIiKSxlYXNlSW5RdWFkOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqKEgvPWFlKSpIK1V9LCJlYXNlSW5RdWFkIiksZWFzZU91dFF1YWQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taiooSC89YWUpKihILTIpK1V9LCJlYXNlT3V0UXVhZCIpLGVhc2VJbk91dFF1YWQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4oSC89YWUvMik8MT9qLzIqSCpIK1U6LWovMiooLS1IKihILTIpLTEpK1V9LCJlYXNlSW5PdXRRdWFkIiksZWFzZUluQ3ViaWM6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooSC89YWUpKkgqSCtVfSwiZWFzZUluQ3ViaWMiKSxlYXNlT3V0Q3ViaWM6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooKEg9SC9hZS0xKSpIKkgrMSkrVX0sImVhc2VPdXRDdWJpYyIpLGVhc2VJbk91dEN1YmljOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuKEgvPWFlLzIpPDE/ai8yKkgqSCpIK1U6ai8yKigoSC09MikqSCpIKzIpK1V9LCJlYXNlSW5PdXRDdWJpYyIpLGVhc2VJblF1YXJ0OmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqKEgvPWFlKSpIKkgqSCtVfSwiZWFzZUluUXVhcnQiKSxlYXNlT3V0UXVhcnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taiooKEg9SC9hZS0xKSpIKkgqSC0xKStVfSwiZWFzZU91dFF1YXJ0IiksZWFzZUluT3V0UXVhcnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4oSC89YWUvMik8MT9qLzIqSCpIKkgqSCtVOi1qLzIqKChILT0yKSpIKkgqSC0yKStVfSwiZWFzZUluT3V0UXVhcnQiKSxlYXNlSW5RdWludDppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBqKihILz1hZSkqSCpIKkgqSCtVfSwiZWFzZUluUXVpbnQiKSxlYXNlT3V0UXVpbnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooKEg9SC9hZS0xKSpIKkgqSCpIKzEpK1V9LCJlYXNlT3V0UXVpbnQiKSxlYXNlSW5PdXRRdWludDppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybihILz1hZS8yKTwxP2ovMipIKkgqSCpIKkgrVTpqLzIqKChILT0yKSpIKkgqSCpIKzIpK1V9LCJlYXNlSW5PdXRRdWludCIpLGVhc2VJblNpbmU6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taipwKEgvYWUqKGIvMikpK2orVX0sImVhc2VJblNpbmUiKSxlYXNlT3V0U2luZTppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBqKmgoSC9hZSooYi8yKSkrVX0sImVhc2VPdXRTaW5lIiksZWFzZUluT3V0U2luZTppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybi1qLzIqKHAoYipIL2FlKS0xKStVfSwiZWFzZUluT3V0U2luZSIpLGVhc2VJbkV4cG86aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gSD09PTA/VTpqKm0oMiwxMCooSC9hZS0xKSkrVX0sImVhc2VJbkV4cG8iKSxlYXNlT3V0RXhwbzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBIPT09YWU/VStqOmoqKC1tKDIsLTEwKkgvYWUpKzEpK1V9LCJlYXNlT3V0RXhwbyIpLGVhc2VJbk91dEV4cG86aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gSD09PTA/VTpIPT09YWU/VStqOihILz1hZS8yKTwxP2ovMiptKDIsMTAqKEgtMSkpK1U6ai8yKigtbSgyLC0xMCotLUgpKzIpK1V9LCJlYXNlSW5PdXRFeHBvIiksZWFzZUluQ2lyYzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybi1qKih2KDEtKEgvPWFlKSpIKS0xKStVfSwiZWFzZUluQ2lyYyIpLGVhc2VPdXRDaXJjOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqdigxLShIPUgvYWUtMSkqSCkrVX0sImVhc2VPdXRDaXJjIiksZWFzZUluT3V0Q2lyYzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybihILz1hZS8yKTwxPy1qLzIqKHYoMS1IKkgpLTEpK1U6ai8yKih2KDEtKEgtPTIpKkgpKzEpK1V9LCJlYXNlSW5PdXRDaXJjIil9LHk9aShmdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHEpOltdKX0sIiQkIiksaz1pKGZ1bmN0aW9uKHEpe3JldHVybiB5KHEpLnNoaWZ0KCl8fG51bGx9LCIkIiksTT1pKGZ1bmN0aW9uKHEpe3JldHVybiBxIGluc3RhbmNlb2YgRWxlbWVudH0sImlzRWxlbWVudCIpLE49aShmdW5jdGlvbihxKXtyZXR1cm4gcT09PXdpbmRvd30sImlzV2luZG93IiksXz1pKGZ1bmN0aW9uKHEpe3JldHVybiBxPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxxPT09ZG9jdW1lbnQuYm9keX0sImlzUm9vdENvbnRhaW5lciIpLFM9aShmdW5jdGlvbihxLEgpe2lmKE0oSCkpcmV0dXJuIHE9PT1IO2Zvcih2YXIgVT15KEgpLGo9VS5sZW5ndGg7LS1qPj0wJiZVW2pdIT09cTspO3JldHVybiBqPi0xfSwibWF0Y2hlcyIpLE89aShmdW5jdGlvbihxKXtyZXR1cm4gTWF0aC5tYXgocS5zY3JvbGxIZWlnaHQscS5jbGllbnRIZWlnaHQscS5vZmZzZXRIZWlnaHQpfSwiZ2V0SGVpZ2h0IiksTD1pKGZ1bmN0aW9uKHEpe3JldHVybiBNYXRoLm1heChxLnNjcm9sbFdpZHRoLHEuY2xpZW50V2lkdGgscS5vZmZzZXRXaWR0aCl9LCJnZXRXaWR0aCIpLEU9aShmdW5jdGlvbihxKXtyZXR1cm57d2lkdGg6TChxKSxoZWlnaHQ6TyhxKX19LCJnZXRTaXplIiksQj1pKGZ1bmN0aW9uKHEpe3ZhciBIPU4ocSl8fF8ocSk7cmV0dXJue3ZpZXdwb3J0Ont3aWR0aDpIP01hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk6cS5jbGllbnRXaWR0aCxoZWlnaHQ6SD93aW5kb3cuaW5uZXJIZWlnaHQ6cS5jbGllbnRIZWlnaHR9LHNpemU6SD97d2lkdGg6TWF0aC5tYXgoTChkb2N1bWVudC5ib2R5KSxMKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpLGhlaWdodDpNYXRoLm1heChPKGRvY3VtZW50LmJvZHkpLE8oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSl9OkUocSl9fSwiZ2V0Vmlld3BvcnRBbmRFbGVtZW50U2l6ZXMiKSxDPXt5OiJzY3JvbGxUb3AiLHg6InNjcm9sbExlZnQifSx6PXt5OiJwYWdlWU9mZnNldCIseDoicGFnZVhPZmZzZXQifSxBPWkoZnVuY3Rpb24ocSxIKXtyZXR1cm4gTihxKT9xW3pbSF1dOnFbQ1tIXV19LCJnZXRTY3JvbGwiKSwkPWkoZnVuY3Rpb24ocSxILFUpe2lmKE4ocSkpe3ZhciBqPVU9PT0ieSI7cS5zY3JvbGxUbyhqP3EucGFnZVhPZmZzZXQ6SCxqP0g6cS5wYWdlWU9mZnNldCl9ZWxzZSBxW0NbVV1dPUh9LCJzZXRTY3JvbGwiKSxGPWkoZnVuY3Rpb24ocSxIKXt2YXIgVT1xLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFUud2lkdGh8fFUuaGVpZ2h0KXt2YXIgaj17dG9wOjAsbGVmdDowfSxhZT12b2lkIDA7aWYoTihIKXx8XyhIKSlhZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsai50b3A9d2luZG93W3oueV0sai5sZWZ0PXdpbmRvd1t6LnhdO2Vsc2V7YWU9SDt2YXIgWD1hZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtqLnRvcD1YLnRvcCotMSthZVtDLnldLGoubGVmdD1YLmxlZnQqLTErYWVbQy54XX1yZXR1cm57dG9wOlUudG9wK2oudG9wLWFlLmNsaWVudFRvcCxsZWZ0OlUubGVmdCtqLmxlZnQtYWUuY2xpZW50TGVmdH19cmV0dXJuIFV9LCJnZXRPZmZzZXQiKSxZPShmdW5jdGlvbigpe3JldHVybiBlPyJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiOiJ3aGVlbCJ9KSgpLEc9aShmdW5jdGlvbihxKXtyZXR1cm4gcT09PSJ3aGVlbCI/WTpxfSwiZXZlbnROYW1lIiksWj1pKGZ1bmN0aW9uKHEsSCxVLGosYWUpe1Uuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3FbSF0oRyhYKSxqLGE/e3Bhc3NpdmU6YWV9OiExKX0pfSwiYXBwbHkiKSxkZT1pKGZ1bmN0aW9uKHEsSCxVLGope3JldHVybiBaKHEsImFkZEV2ZW50TGlzdGVuZXIiLEgsVSxqKX0sImFkZEV2ZW50IiksRD1pKGZ1bmN0aW9uKHEsSCxVLGope3JldHVybiBaKHEsInJlbW92ZUV2ZW50TGlzdGVuZXIiLEgsVSxqKX0sInJlbW92ZUV2ZW50IiksUT0vXihcK3wtKT0oXGQrKD86XC5cZCspPykkLyxmZT1pKGZ1bmN0aW9uKHEsSCl7dmFyIFU9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYoYyhxLCJ0b3AiKXx8YyhxLCJsZWZ0IikpVT10KHt9LFUscSk7ZWxzZSBpZihvKHEpKWlmKHEubGVuZ3RoPjEpVS50b3A9cVswXSxVLmxlZnQ9cVsxXTtlbHNlIGlmKHEubGVuZ3RoPT09MSlVLnRvcD1IP3FbMF06MCxVLmxlZnQ9SD8wOnFbMF07ZWxzZSByZXR1cm4gbnVsbDtlbHNlIGlmKGwocSkpSD9VLnRvcD1xOlUubGVmdD1xO2Vsc2UgaWYocyhxKSl7dmFyIGo9cS50cmltKCkubWF0Y2goUSk7aWYoIWopcmV0dXJuIG51bGw7dmFyIGFlPWpbMV0sWD1wYXJzZUludChqWzJdLDEwKTthZT09PSIrIj8oVS50b3A9SD9YOjAsVS5sZWZ0PUg/MDpYKTooVS50b3A9SD8tWDowLFUubGVmdD1IPzA6LVgpLFUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gVX0sInBhcnNlQ29vcmRpbmF0ZSIpLFQ9e3RyaWdnZXI6IltkYXRhLXNjcm9sbF0iLGhlYWRlcjoiW2RhdGEtc2Nyb2xsLWhlYWRlcl0iLGR1cmF0aW9uOjFlMyxlYXNpbmc6ImVhc2VPdXRRdWludCIsb2Zmc2V0OjAsdmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxjYW5jZWxsYWJsZTohMCx1cGRhdGVVUkw6ITEscHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLGJlZm9yZTpudWxsLGFmdGVyOm51bGwsY2FuY2VsOm51bGwsY29tcGxldGU6bnVsbCxzdGVwOm51bGx9LFc9ImNsaWNrIixwZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLG1lPShmdW5jdGlvbigpe2Z1bmN0aW9uIHEoSCxVKXt2YXIgaj10aGlzO3RoaXMuJGVsPW51bGwsdGhpcy5jdHg9eyR0cmlnZ2VyOm51bGwsb3B0czpudWxsLHByb2dyZXNzOiExLHBvczpudWxsLHN0YXJ0UG9zOm51bGwsZWFzaW5nOm51bGwsc3RhcnQ6MCxpZDowLGNhbmNlbDohMSxoYXNoOm51bGx9LHRoaXMubG9vcD1mdW5jdGlvbihYKXt2YXIgSj1qLHhlPUouJGVsLEs9Si5jdHg7aWYoSy5zdGFydHx8KEsuc3RhcnQ9WCksIUsucHJvZ3Jlc3N8fCF4ZSl7ai5zdG9wKCk7cmV0dXJufXZhciBWPUsub3B0cyxsZT1LLnBvcyxuZT1LLnN0YXJ0LGVlPUsuc3RhcnRQb3MsemU9Sy5lYXNpbmcsSGU9Vi5kdXJhdGlvbixHZT17dG9wOiJ5IixsZWZ0OiJ4In0sb3Q9WC1uZSxEZT1NYXRoLm1pbigxLE1hdGgubWF4KG90L0hlLDApKTtPYmplY3Qua2V5cyhsZSkuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIG9lPWxlW19lXSxzZT1lZVtfZV0sY2U9b2Utc2U7aWYoY2UhPT0wKXt2YXIgVGU9emUoRGUsSGUqRGUsMCwxLEhlKTskKHhlLE1hdGgucm91bmQoc2UrY2UqVGUpLEdlW19lXSl9fSksb3Q8PUhlPyhqLmhvb2soViwic3RlcCIsRGUpLEsuaWQ9cS5yYWYoai5sb29wKSk6ai5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihYKXtmb3IodmFyIEo9ai5vcHRzLHhlPVgudGFyZ2V0O3hlJiZ4ZSE9PWRvY3VtZW50O3hlPXhlLnBhcmVudE5vZGUpaWYoUyh4ZSxKLnRyaWdnZXIpKXt2YXIgSz1KU09OLnBhcnNlKHhlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwtb3B0aW9ucyIpfHwie30iKSxWPXhlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiKSxsZT1WfHx4ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxuZT10KHt9LEosSyksZWU9bmUucHJldmVudERlZmF1bHQsemU9bmUuc3RvcFByb3BhZ2F0aW9uLEhlPW5lLnZlcnRpY2FsLEdlPW5lLmhvcml6b250YWw7ZWUmJlgucHJldmVudERlZmF1bHQoKSx6ZSYmWC5zdG9wUHJvcGFnYXRpb24oKSxqLmN0eC4kdHJpZ2dlcj14ZSxHZSYmSGU/ai50byhsZSxuZSk6SGU/ai50b1RvcChsZSxuZSk6R2UmJmoudG9MZWZ0KGxlLG5lKTticmVha319LHRoaXMuaGFuZGxlU3RvcD1mdW5jdGlvbihYKXt2YXIgSj1qLmN0eCx4ZT1KLm9wdHM7eGUmJnhlLmNhbmNlbGxhYmxlPyhKLmNhbmNlbD0hMCxqLnN0b3AoKSk6WC5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9dCh7fSxULEh8fHt9KTt2YXIgYWU9bnVsbDtlJiYodHlwZW9mIFU9PSJzdHJpbmciP2FlPWsoVSk6VSE9bnVsbD9hZT1VOmFlPXdpbmRvdyksdGhpcy4kZWw9YWUsYWUmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIGkocSwiU3dlZXRTY3JvbGwiKSxxLmNyZWF0ZT1mdW5jdGlvbihILFUpe3JldHVybiBuZXcgcShILFUpfSxxLnByb3RvdHlwZS50bz1mdW5jdGlvbihILFUpe2lmKGUpe3ZhciBqPXRoaXMsYWU9ai4kZWwsWD1qLmN0eCxKPWoub3B0cyx4ZT1YLiR0cmlnZ2VyLEs9dCh7fSxKLFV8fHt9KSxWPUsub2Zmc2V0LGxlPUsudmVydGljYWwsbmU9Sy5ob3Jpem9udGFsLGVlPU0oSy5oZWFkZXIpP0suaGVhZGVyOmsoSy5oZWFkZXIpLHplPS9eIy8sSGU9cyhIKSYmemUudGVzdChIKT9IOm51bGw7aWYoWC5vcHRzPUssWC5jYW5jZWw9ITEsWC5oYXNoPUhlLHRoaXMuc3RvcCgpLCEhYWUpe3ZhciBHZT1mZShWLGxlKSxvdD1mZShILGxlKSxEZT17dG9wOjAsbGVmdDowfTtpZihvdClpZihvdC5yZWxhdGl2ZSl7dmFyIF9lPUEoYWUsbGU/InkiOiJ4Iik7RGUudG9wPWxlP19lK290LnRvcDpvdC50b3AsRGUubGVmdD1sZT9vdC5sZWZ0Ol9lK290LmxlZnR9ZWxzZSBEZT1vdDtlbHNlIGlmKHMoSCkmJkghPT0iIyIpe3ZhciBvZT1rKEgpO2lmKCFvZSlyZXR1cm47RGU9RihvZSxhZSl9R2UmJihEZS50b3ArPUdlLnRvcCxEZS5sZWZ0Kz1HZS5sZWZ0KSxlZSYmKERlLnRvcD1NYXRoLm1heCgwLERlLnRvcC1FKGVlKS5oZWlnaHQpKTt2YXIgc2U9QihhZSksY2U9c2Uudmlld3BvcnQsVGU9c2Uuc2l6ZTtpZihEZS50b3A9bGU/TWF0aC5tYXgoMCxNYXRoLm1pbihUZS5oZWlnaHQtY2UuaGVpZ2h0LERlLnRvcCkpOkEoYWUsInkiKSxEZS5sZWZ0PW5lP01hdGgubWF4KDAsTWF0aC5taW4oVGUud2lkdGgtY2Uud2lkdGgsRGUubGVmdCkpOkEoYWUsIngiKSx0aGlzLmhvb2soSywiYmVmb3JlIixEZSx4ZSk9PT0hMSl7WC5vcHRzPW51bGw7cmV0dXJufVgucG9zPURlLHRoaXMuc3RhcnQoSyksdGhpcy5iaW5kKCExLCEwKX19fSxxLnByb3RvdHlwZS50b1RvcD1mdW5jdGlvbihILFUpe3RoaXMudG8oSCx0KHt9LFV8fHt9LHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExfSkpfSxxLnByb3RvdHlwZS50b0xlZnQ9ZnVuY3Rpb24oSCxVKXt0aGlzLnRvKEgsdCh7fSxVfHx7fSx7dmVydGljYWw6ITEsaG9yaXpvbnRhbDohMH0pKX0scS5wcm90b3R5cGUudG9FbGVtZW50PWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcy4kZWw7IWV8fCFqfHx0aGlzLnRvKEYoSCxqKSxVfHx7fSl9LHEucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oSCl7SD09PXZvaWQgMCYmKEg9ITEpO3ZhciBVPXRoaXMsaj1VLiRlbCxhZT1VLmN0eCxYPWFlLnBvczshanx8IWFlLnByb2dyZXNzfHwocS5jYWYoYWUuaWQpLGFlLnByb2dyZXNzPSExLGFlLnN0YXJ0PTAsYWUuaWQ9MCxIJiZYJiYoJChqLFgubGVmdCwieCIpLCQoaixYLnRvcCwieSIpKSx0aGlzLmNvbXBsZXRlKCkpfSxxLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oSCl7aWYodGhpcy4kZWwpe3ZhciBVPXQoe30sdGhpcy5vcHRzLEgpO3RoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLm9wdHM9VSx0aGlzLmJpbmQoITAsITEpfX0scS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJGVsJiYodGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMuJGVsPW51bGwpfSxxLnByb3RvdHlwZS5vbkJlZm9yZT1mdW5jdGlvbihILFUpe3JldHVybiEwfSxxLnByb3RvdHlwZS5vblN0ZXA9ZnVuY3Rpb24oSCl7fSxxLnByb3RvdHlwZS5vbkFmdGVyPWZ1bmN0aW9uKEgsVSl7fSxxLnByb3RvdHlwZS5vbkNhbmNlbD1mdW5jdGlvbigpe30scS5wcm90b3R5cGUub25Db21wbGV0ZT1mdW5jdGlvbihIKXt9LHEucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKEgpe3ZhciBVPXRoaXMuY3R4O1Uub3B0cz1ILFUucHJvZ3Jlc3M9ITAsVS5lYXNpbmc9bihILmVhc2luZyk/SC5lYXNpbmc6Z1tILmVhc2luZ107dmFyIGo9dGhpcy4kZWwsYWU9e3RvcDpBKGosInkiKSxsZWZ0OkEoaiwieCIpfTtVLnN0YXJ0UG9zPWFlLFUuaWQ9cS5yYWYodGhpcy5sb29wKX0scS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgSD10aGlzLFU9SC4kZWwsaj1ILmN0eCxhZT1qLmhhc2gsWD1qLmNhbmNlbCxKPWoub3B0cyx4ZT1qLnBvcyxLPWouJHRyaWdnZXI7aWYoISghVXx8IUopKXtpZihhZSE9bnVsbCYmYWUhPT13aW5kb3cubG9jYXRpb24uaGFzaCl7dmFyIFY9Si51cGRhdGVVUkw7ZSYmciYmViE9PSExJiZ3aW5kb3cuaGlzdG9yeVtWPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLGFlKX10aGlzLnVuYmluZCghMSwhMCksai5vcHRzPW51bGwsai4kdHJpZ2dlcj1udWxsLFg/dGhpcy5ob29rKEosImNhbmNlbCIpOnRoaXMuaG9vayhKLCJhZnRlciIseGUsSyksdGhpcy5ob29rKEosImNvbXBsZXRlIixYKX19LHEucHJvdG90eXBlLmhvb2s9ZnVuY3Rpb24oSCxVKXtmb3IodmFyIGo9W10sYWU9MjthZTxhcmd1bWVudHMubGVuZ3RoO2FlKyspalthZS0yXT1hcmd1bWVudHNbYWVdO3ZhciBYLEo9SFtVXSx4ZSxLO3JldHVybiBuKEopJiYoeGU9Si5hcHBseSh0aGlzLGouY29uY2F0KFt0aGlzXSkpKSxLPShYPXRoaXMpWyJvbiIrKFVbMF0udG9VcHBlckNhc2UoKStVLnNsaWNlKDEpKV0uYXBwbHkoWCxqKSx4ZSE9PXZvaWQgMD94ZTpLfSxxLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcyxhZT1qLiRlbCxYPWouY3R4Lm9wdHM7YWUmJihIJiZkZShhZSxXLHRoaXMuaGFuZGxlQ2xpY2ssITEpLFUmJmRlKGFlLHBlLHRoaXMuaGFuZGxlU3RvcCxYP1guY2FuY2VsbGFibGU6ITApKX0scS5wcm90b3R5cGUudW5iaW5kPWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcyxhZT1qLiRlbCxYPWouY3R4Lm9wdHM7YWUmJihIJiZEKGFlLFcsdGhpcy5oYW5kbGVDbGljaywhMSksVSYmRChhZSxwZSx0aGlzLmhhbmRsZVN0b3AsWD9YLmNhbmNlbGxhYmxlOiEwKSl9LHEucmFmPWQscS5jYWY9ZixxfSkoKTtyZXR1cm4gbWV9KX0pO3ZhciB6eCxfNWEsX3g9dSgoKT0+e0RMdCgpO2hvZSgpO05kKCk7TGIoKTtXT3QoKTtHbigpO3RSdCgpO1pjKCk7ZFJ0KCk7eVMoKTtGd2UoKTtpb2UoKTtrbGUoKTtabmUoKTtjUygpO2JnZSgpO05uZSgpO21GdCgpO3p4PUdhKGdGdCgpLDEpLF81YT17T2JqZWN0TWFwOlZkLFN0cmluZ21hcDp1UyxGYXN0TWFwOnJofX0pO3ZhciBTaT17fTtWZShTaSx7Y29udGFpbmVyQ29udGV4dFN0eWxlczooKT0+RDVhLGNzc0ZvckNvbnN0cmFpbnQ6KCk9PlQ1YSxjc3NGb3JDb25zdHJhaW50Q29udGFpbmVyOigpPT5MNWEsY3NzRm9yQ29udGFpbmVyOigpPT5TRnQsY3NzRm9yRGVza3RvcDooKT0+JDVhLGNzc0Zvck5vdGVib29rOigpPT5BNWEsY3NzRm9yUGhhYmxldDooKT0+STVhLGNzc0ZvclBob25lOigpPT5QNWEsY3NzRm9yVGFibGV0OigpPT5FNWEsY3NzRm9yVmlld3BvcnQ6KCk9PlJoLGRlc2t0b3A6KCk9PnhGdCxub3RlYm9vazooKT0+dkZ0LHBoYWJsZXQ6KCk9PndGdCxwaG9uZTooKT0+a0Z0LHRhYmxldDooKT0+eUZ0fSk7dmFyIHhGdCx2RnQseUZ0LHdGdCxrRnQsYkZ0LFJoLFNGdCxUNWEsTDVhLEQ1YSwkNWEsQTVhLEU1YSxJNWEsUDVhLHVrZT11KCgpPT57VHgoKTt5bCgpO3hGdD0xNjAwLHZGdD0xMjQwLHlGdD0xMDI0LHdGdD02MDAsa0Z0PTQwMCxiRnQ9aSh0PT57bGV0IGU9W107cmV0dXJuIHQubWluV2lkdGgmJmUucHVzaChgKG1pbi13aWR0aDogJHt0Lm1pbldpZHRofXB4KWApLHQubWF4V2lkdGgmJmUucHVzaChgKG1heC13aWR0aDogJHt0Lm1heFdpZHRofXB4KWApLGUuam9pbigiIGFuZCAiKX0sImJ1aWxkQ29uZGl0aW9uIiksUmg9aSgodCxlKT0+TmEoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0ICR7ZX0gewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAke2V9IHsKICAgICAgJHt0LmNzc1RleHR9CiAgICB9CiAgYCksImNzc0ZvclZpZXdwb3J0IiksU0Z0PWkoKHQsZSxyKT0+TmEoYAogICAgQGNvbnRhaW5lciAke3J9ICR7ZX0gewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICBgKSwiY3NzRm9yQ29udGFpbmVyIiksVDVhPWkodD0+ZT0+UmgoZSxiRnQodCkpLCJjc3NGb3JDb25zdHJhaW50IiksTDVhPWkoKHQsZSk9PnI9PlNGdChyLGJGdCh0KSxlKSwiY3NzRm9yQ29uc3RyYWludENvbnRhaW5lciIpLEQ1YT1pKHQ9PiRyYAogIDpob3N0IHsKICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTsKICAgIGNvbnRhaW5lci1uYW1lOiAke05hKHQpfTsKICB9CmAsImNvbnRhaW5lckNvbnRleHRTdHlsZXMiKSwkNWE9aSh0PT5SaCh0LGAobWluLXdpZHRoOiAke3hGdH1weClgKSwiY3NzRm9yRGVza3RvcCIpLEE1YT1pKHQ9PlJoKHQsYChtYXgtd2lkdGg6ICR7dkZ0fXB4KWApLCJjc3NGb3JOb3RlYm9vayIpLEU1YT1pKHQ9PlJoKHQsYChtYXgtd2lkdGg6ICR7eUZ0fXB4KWApLCJjc3NGb3JUYWJsZXQiKSxJNWE9aSh0PT5SaCh0LGAobWF4LXdpZHRoOiAke3dGdH1weClgKSwiY3NzRm9yUGhhYmxldCIpLFA1YT1pKHQ9PlJoKHQsYChtYXgtd2lkdGg6ICR7a0Z0fXB4KWApLCJjc3NGb3JQaG9uZSIpfSk7dmFyIE1sZSxNRnQ9dSgoKT0+e194KCk7TWxlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNjcm9sbGVyIil9ZG9tdG9vbHNJbnN0YW5jZTtkaXNwb3NlZD0hMTtzY3JvbGxDYWxsYmFja3M9W107bGVuaXNJbnN0YW5jZT1udWxsO2xlbmlzU2Nyb2xsVW5zdWJzY3JpYmU9bnVsbDtuYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkPSExO2hhbmRsZU5hdGl2ZVNjcm9sbD1pKGU9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX0sImhhbmRsZU5hdGl2ZVNjcm9sbCIpO2hhbmRsZUxlbmlzU2Nyb2xsPWkoZT0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfSwiaGFuZGxlTGVuaXNTY3JvbGwiKTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbXRvb2xzSW5zdGFuY2U9ZSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl9c3dlZXRTY3JvbGxlcj1uZXcgenguZGVmYXVsdCh7fSk7YXN5bmMgdG9FbGVtZW50KGUscil7dGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudChlLHIpLHI/LmR1cmF0aW9uJiZhd2FpdCBLdC5kZWxheUZvcihyLmR1cmF0aW9uKX1hc3luYyBkZXRlY3ROYXRpdmVTbW9vdGhTY3JvbGwoKXtsZXQgZT1nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuc2Nyb2xsQmVoYXZpb3Iscj1kb2N1bWVudC5ib2R5P2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuc2Nyb2xsQmVoYXZpb3I6ImF1dG8iO2lmKGU9PT0ic21vb3RoInx8cj09PSJzbW9vdGgiKXJldHVybiEwO2xldCBhPXh0LmRlZmVyKCkscz0xMixuPTMsbz0uNzUsbD0xMjAwLGM9W10sZD1pKG09Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLGYpLHdpbmRvdy5jbGVhclRpbWVvdXQoaCksYS5yZXNvbHZlKG0pfSwiZmluYWxpemUiKTtmdW5jdGlvbiBmKG0pe2MucHVzaChtLmRlbHRhWSksYy5sZW5ndGg+PXMmJnAoKX1pKGYsIm9uV2hlZWwiKTtmdW5jdGlvbiBwKCl7aWYoYy5sZW5ndGg8Mil7ZCghMSk7cmV0dXJufWxldCBtPWMubGVuZ3RoLTEsdj0wO2ZvcihsZXQgZz0wO2c8bTtnKyspTWF0aC5hYnMoY1tnKzFdLWNbZ10pPD1uJiZ2Kys7bGV0IGI9di9tO2QoYj49byl9aShwLCJhbmFseXplRXZlbnRzIik7bGV0IGg9d2luZG93LnNldFRpbWVvdXQoKCk9PntwKCl9LGwpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLGYse3Bhc3NpdmU6ITB9KSxhLnByb21pc2V9YXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwoZSl7aWYodGhpcy5kaXNwb3NlZClyZXR1cm47dGhpcy5sZW5pc0luc3RhbmNlJiZ0aGlzLmRpc2FibGVMZW5pc1Njcm9sbCgpO2xldCByPW5ldyBRTSh7YXV0b1JhZjohMH0pO2lmKGU/LmRpc2FibGVPbk5hdGl2ZVNtb290aFNjcm9sbCYmYXdhaXQgdGhpcy5kZXRlY3ROYXRpdmVTbW9vdGhTY3JvbGwoKSl7ci5kZXN0cm95KCk7cmV0dXJufXRoaXMubGVuaXNJbnN0YW5jZT1yLHRoaXMuZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmF0dGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKX1kaXNhYmxlTGVuaXNTY3JvbGwoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJih0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmxlbmlzSW5zdGFuY2UuZGVzdHJveSgpLHRoaXMubGVuaXNJbnN0YW5jZT1udWxsLHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSl9b25TY3JvbGwoZSl7cmV0dXJuIHRoaXMuc2Nyb2xsQ2FsbGJhY2tzLnB1c2goZSksKCk9Pnt0aGlzLnNjcm9sbENhbGxiYWNrcz10aGlzLnNjcm9sbENhbGxiYWNrcy5maWx0ZXIocj0+ciE9PWUpfX1leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl7dGhpcy5zY3JvbGxDYWxsYmFja3MuZm9yRWFjaChlPT57dHJ5e2UoKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJFcnJvciBpbiBzY3JvbGwgY2FsbGJhY2s6IixyKX19KX1hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3RoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZHx8dGhpcy5kaXNwb3NlZHx8KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKSx0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQ9ITApfWRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl7dGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVOYXRpdmVTY3JvbGwpLHRoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZD0hMSl9YXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmIXRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZSYmKHRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZT10aGlzLmxlbmlzSW5zdGFuY2Uub24oInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCkpfWRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmUmJih0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmUoKSx0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmU9bnVsbCl9ZGlzcG9zZSgpe3RoaXMuZGlzcG9zZWR8fCh0aGlzLmRpc3Bvc2VkPSEwLHRoaXMuZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpLHRoaXMubGVuaXNJbnN0YW5jZT8uZGVzdHJveSgpLHRoaXMubGVuaXNJbnN0YW5jZT1udWxsLHRoaXMuZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLnNjcm9sbENhbGxiYWNrcz1bXSx0aGlzLnN3ZWV0U2Nyb2xsZXIuZGVzdHJveSgpKX19fSk7dmFyIENsZSxDRnQ9dSgoKT0+e1R4KCk7X3goKTtDbGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGhlbWVNYW5hZ2VyIil9ZG9tdG9vbHNSZWY7Z29CcmlnaHRCb29sZWFuPSExO3ByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaD13aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkiKTt0aGVtZU9ic2VydmFibGU9bmV3IG9hLnJ4anMuUmVwbGF5U3ViamVjdCgxKTthdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj1udWxsO3ByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlcj1pKGU9Pnt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj1lLm1hdGNoZXMsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfSwicHJlZmVycmVkQ29sb3JTY2hlbWVDaGFuZ2VIYW5kbGVyIik7Y29uc3RydWN0b3IoZSl7dGhpcy5kb210b29sc1JlZj1lLHRoaXMuZ29CcmlnaHRCb29sZWFuPXRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLm1hdGNoZXMsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2guYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlciksdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWFzeW5jIGVuYWJsZUF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlKCl7YXdhaXQgdGhpcy5kb210b29sc1JlZi5kb21SZWFkeS5wcm9taXNlLHRoaXMuYXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb258fCh0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPXRoaXMudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSh7bmV4dDppKGU9Pntkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmQ9ZT8iI2ZmZiI6IiMwMDAifSwibmV4dCIpfSkpfXVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl7dGhpcy5kb210b29sc1JlZi5kaXNwb3NlZHx8dGhpcy50aGVtZU9ic2VydmFibGUubmV4dCh0aGlzLmdvQnJpZ2h0Qm9vbGVhbil9Z29CcmlnaHQoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMCx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9Z29EYXJrKCl7dGhpcy5nb0JyaWdodEJvb2xlYW49ITEsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfXRvZ2dsZURhcmtCcmlnaHQoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hdGhpcy5nb0JyaWdodEJvb2xlYW4sdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWRpc3Bvc2UoKXt0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVDaGFuZ2VIYW5kbGVyKSx0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpLHRoaXMuYXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb249bnVsbCx0aGlzLnRoZW1lT2JzZXJ2YWJsZS5jb21wbGV0ZSgpfX19KTt2YXIgRmUsemxlLHpGdD11KCgpPT57X3goKTsoZnVuY3Rpb24odCl7dFt0LkJhY2tzcGFjZT04XT0iQmFja3NwYWNlIix0W3QuVGFiPTldPSJUYWIiLHRbdC5FbnRlcj0xM109IkVudGVyIix0W3QuU2hpZnQ9MTZdPSJTaGlmdCIsdFt0LkN0cmw9MTddPSJDdHJsIix0W3QuQWx0PTE4XT0iQWx0Iix0W3QuUGF1c2VCcmVhaz0xOV09IlBhdXNlQnJlYWsiLHRbdC5DYXBzTG9jaz0yMF09IkNhcHNMb2NrIix0W3QuRXNjYXBlPTI3XT0iRXNjYXBlIix0W3QuU3BhY2U9MzJdPSJTcGFjZSIsdFt0LlBhZ2VVcD0zM109IlBhZ2VVcCIsdFt0LlBhZ2VEb3duPTM0XT0iUGFnZURvd24iLHRbdC5FbmQ9MzVdPSJFbmQiLHRbdC5Ib21lPTM2XT0iSG9tZSIsdFt0LkxlZnRBcnJvdz0zN109IkxlZnRBcnJvdyIsdFt0LlVwQXJyb3c9MzhdPSJVcEFycm93Iix0W3QuUmlnaHRBcnJvdz0zOV09IlJpZ2h0QXJyb3ciLHRbdC5Eb3duQXJyb3c9NDBdPSJEb3duQXJyb3ciLHRbdC5JbnNlcnQ9NDVdPSJJbnNlcnQiLHRbdC5EZWxldGU9NDZdPSJEZWxldGUiLHRbdC5aZXJvPTQ4XT0iWmVybyIsdFt0LkNsb3NlZFBhcmVuPTQ4XT0iQ2xvc2VkUGFyZW4iLHRbdC5PbmU9NDldPSJPbmUiLHRbdC5FeGNsYW1hdGlvbk1hcms9NDldPSJFeGNsYW1hdGlvbk1hcmsiLHRbdC5Ud289NTBdPSJUd28iLHRbdC5BdFNpZ249NTBdPSJBdFNpZ24iLHRbdC5UaHJlZT01MV09IlRocmVlIix0W3QuUG91bmRTaWduPTUxXT0iUG91bmRTaWduIix0W3QuSGFzaD01MV09Ikhhc2giLHRbdC5Gb3VyPTUyXT0iRm91ciIsdFt0LkRvbGxhclNpZ249NTJdPSJEb2xsYXJTaWduIix0W3QuRml2ZT01M109IkZpdmUiLHRbdC5QZXJjZW50U2lnbj01M109IlBlcmNlbnRTaWduIix0W3QuU2l4PTU0XT0iU2l4Iix0W3QuQ2FyZXQ9NTRdPSJDYXJldCIsdFt0LkhhdD01NF09IkhhdCIsdFt0LlNldmVuPTU1XT0iU2V2ZW4iLHRbdC5BbXBlcnNhbmQ9NTVdPSJBbXBlcnNhbmQiLHRbdC5FaWdodD01Nl09IkVpZ2h0Iix0W3QuU3Rhcj01Nl09IlN0YXIiLHRbdC5Bc3RlcmlrPTU2XT0iQXN0ZXJpayIsdFt0Lk5pbmU9NTddPSJOaW5lIix0W3QuT3BlblBhcmVuPTU3XT0iT3BlblBhcmVuIix0W3QuQT02NV09IkEiLHRbdC5CPTY2XT0iQiIsdFt0LkM9NjddPSJDIix0W3QuRD02OF09IkQiLHRbdC5FPTY5XT0iRSIsdFt0LkY9NzBdPSJGIix0W3QuRz03MV09IkciLHRbdC5IPTcyXT0iSCIsdFt0Lkk9NzNdPSJJIix0W3QuSj03NF09IkoiLHRbdC5LPTc1XT0iSyIsdFt0Lkw9NzZdPSJMIix0W3QuTT03N109Ik0iLHRbdC5OPTc4XT0iTiIsdFt0Lk89NzldPSJPIix0W3QuUD04MF09IlAiLHRbdC5RPTgxXT0iUSIsdFt0LlI9ODJdPSJSIix0W3QuUz04M109IlMiLHRbdC5UPTg0XT0iVCIsdFt0LlU9ODVdPSJVIix0W3QuVj04Nl09IlYiLHRbdC5XPTg3XT0iVyIsdFt0Llg9ODhdPSJYIix0W3QuWT04OV09IlkiLHRbdC5aPTkwXT0iWiIsdFt0LkxlZnRXaW5kb3dLZXk9OTFdPSJMZWZ0V2luZG93S2V5Iix0W3QuUmlnaHRXaW5kb3dLZXk9OTJdPSJSaWdodFdpbmRvd0tleSIsdFt0LlNlbGVjdEtleT05M109IlNlbGVjdEtleSIsdFt0Lk51bXBhZDA9OTZdPSJOdW1wYWQwIix0W3QuTnVtcGFkMT05N109Ik51bXBhZDEiLHRbdC5OdW1wYWQyPTk4XT0iTnVtcGFkMiIsdFt0Lk51bXBhZDM9OTldPSJOdW1wYWQzIix0W3QuTnVtcGFkND0xMDBdPSJOdW1wYWQ0Iix0W3QuTnVtcGFkNT0xMDFdPSJOdW1wYWQ1Iix0W3QuTnVtcGFkNj0xMDJdPSJOdW1wYWQ2Iix0W3QuTnVtcGFkNz0xMDNdPSJOdW1wYWQ3Iix0W3QuTnVtcGFkOD0xMDRdPSJOdW1wYWQ4Iix0W3QuTnVtcGFkOT0xMDVdPSJOdW1wYWQ5Iix0W3QuTXVsdGlwbHk9MTA2XT0iTXVsdGlwbHkiLHRbdC5BZGQ9MTA3XT0iQWRkIix0W3QuU3VidHJhY3Q9MTA5XT0iU3VidHJhY3QiLHRbdC5EZWNpbWFsUG9pbnQ9MTEwXT0iRGVjaW1hbFBvaW50Iix0W3QuRGl2aWRlPTExMV09IkRpdmlkZSIsdFt0LkYxPTExMl09IkYxIix0W3QuRjI9MTEzXT0iRjIiLHRbdC5GMz0xMTRdPSJGMyIsdFt0LkY0PTExNV09IkY0Iix0W3QuRjU9MTE2XT0iRjUiLHRbdC5GNj0xMTddPSJGNiIsdFt0LkY3PTExOF09IkY3Iix0W3QuRjg9MTE5XT0iRjgiLHRbdC5GOT0xMjBdPSJGOSIsdFt0LkYxMD0xMjFdPSJGMTAiLHRbdC5GMTE9MTIyXT0iRjExIix0W3QuRjEyPTEyM109IkYxMiIsdFt0Lk51bUxvY2s9MTQ0XT0iTnVtTG9jayIsdFt0LlNjcm9sbExvY2s9MTQ1XT0iU2Nyb2xsTG9jayIsdFt0LlNlbWlDb2xvbj0xODZdPSJTZW1pQ29sb24iLHRbdC5FcXVhbHM9MTg3XT0iRXF1YWxzIix0W3QuQ29tbWE9MTg4XT0iQ29tbWEiLHRbdC5EYXNoPTE4OV09IkRhc2giLHRbdC5QZXJpb2Q9MTkwXT0iUGVyaW9kIix0W3QuVW5kZXJTY29yZT0xODldPSJVbmRlclNjb3JlIix0W3QuUGx1c1NpZ249MTg3XT0iUGx1c1NpZ24iLHRbdC5Gb3J3YXJkU2xhc2g9MTkxXT0iRm9yd2FyZFNsYXNoIix0W3QuVGlsZGU9MTkyXT0iVGlsZGUiLHRbdC5HcmF2ZUFjY2VudD0xOTJdPSJHcmF2ZUFjY2VudCIsdFt0Lk9wZW5CcmFja2V0PTIxOV09Ik9wZW5CcmFja2V0Iix0W3QuQ2xvc2VkQnJhY2tldD0yMjFdPSJDbG9zZWRCcmFja2V0Iix0W3QuUXVvdGU9MjIyXT0iUXVvdGUifSkoRmV8fChGZT17fSkpO3psZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJLZXlib2FyZCIpfWRvbU5vZGU7bWFwQ29tYm9zVG9IYW5kbGVycz1uZXcgTWFwO3ByZXNzZWRLZXlzPW5ldyBTZXQ7bGlzdGVuaW5nPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tTm9kZT1lLHRoaXMuc3RhcnRMaXN0ZW5pbmcoKX1rZXlFbnVtPUZlO29uKGUpe2xldCByPW5ldyBvYS5yeGpzLlN1YmplY3Q7cmV0dXJuIHRoaXMucmVnaXN0ZXJLZXlzKGUscikscn10cmlnZ2VyS2V5UHJlc3MoZSl7bGV0IHI9dGhpcy5ub3JtYWxpemVLZXlzKGUpO2ZvcihsZXQgYSBvZiByKXRoaXMucHJlc3NlZEtleXMuYWRkKGEpO3RoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHModGhpcy5jcmVhdGVLZXlib2FyZEV2ZW50KHIpKTtmb3IobGV0IGEgb2Ygcil0aGlzLnByZXNzZWRLZXlzLmRlbGV0ZShhKX1zdGFydExpc3RlbmluZygpe3RoaXMubGlzdGVuaW5nfHwodGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKSx0aGlzLmxpc3RlbmluZz0hMCl9c3RvcExpc3RlbmluZygpe3RoaXMubGlzdGVuaW5nJiYodGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKSx0aGlzLmxpc3RlbmluZz0hMSl9Y2xlYXIoKXt0aGlzLnN0b3BMaXN0ZW5pbmcoKTtmb3IobGV0IGUgb2YgdGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLnZhbHVlcygpKWZvcihsZXQgciBvZiBlLnN1YmplY3RzKXIuY29tcGxldGUoKTt0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuY2xlYXIoKSx0aGlzLnByZXNzZWRLZXlzLmNsZWFyKCl9ZGlzcG9zZSgpe3RoaXMuY2xlYXIoKX1oYW5kbGVLZXlEb3duPWkoZT0+e2xldCByPXRoaXMucmVzb2x2ZUtleShlKTtyIT09bnVsbCYmKHRoaXMucHJlc3NlZEtleXMuYWRkKHIpLHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoZSkpfSwiaGFuZGxlS2V5RG93biIpO2NoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKGUpe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKHI9PntpZih0aGlzLmFyZUFsbEtleXNQcmVzc2VkKHIua2V5cykpZm9yKGxldCBhIG9mIHIuc3ViamVjdHMpYS5uZXh0KGUpfSl9aGFuZGxlS2V5VXA9aShlPT57bGV0IHI9dGhpcy5yZXNvbHZlS2V5KGUpO3IhPT1udWxsJiZ0aGlzLnByZXNzZWRLZXlzLmRlbGV0ZShyKX0sImhhbmRsZUtleVVwIik7YXJlQWxsS2V5c1ByZXNzZWQoZSl7bGV0IHI9ITA7cmV0dXJuIGUuZm9yRWFjaChhPT57dGhpcy5wcmVzc2VkS2V5cy5oYXMoYSl8fChyPSExKX0pLHJ9cmVnaXN0ZXJLZXlzKGUscil7bGV0IGE9dGhpcy5ub3JtYWxpemVLZXlzKGUpLHM9YS5qb2luKCIrIiksbj10aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZ2V0KHMpO2lmKCFuKXt0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuc2V0KHMse2tleXM6YSxzdWJqZWN0czpbcl19KTtyZXR1cm59bi5zdWJqZWN0cy5wdXNoKHIpfW5vcm1hbGl6ZUtleXMoZSl7cmV0dXJuWy4uLm5ldyBTZXQoZSldLnNvcnQoKHIsYSk9PnItYSl9cmVzb2x2ZUtleShlKXtyZXR1cm4gdGhpcy5yZXNvbHZlS2V5RnJvbUNvZGUoZS5jb2RlKT8/dGhpcy5yZXNvbHZlS2V5RnJvbUtleShlLmtleSk/P3RoaXMucmVzb2x2ZUtleUZyb21LZXlDb2RlKGUua2V5Q29kZSl9cmVzb2x2ZUtleUZyb21Db2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2lmKGUuc3RhcnRzV2l0aCgiS2V5IikmJmUubGVuZ3RoPT09NClyZXR1cm4gRmVbZS5zbGljZSgzKV0/P251bGw7aWYoZS5zdGFydHNXaXRoKCJEaWdpdCIpJiZlLmxlbmd0aD09PTYpcmV0dXJuIHRoaXMucmVzb2x2ZUtleUZyb21LZXkoZS5zbGljZSg1KSk7c3dpdGNoKGUpe2Nhc2UiQmFja3NwYWNlIjpyZXR1cm4gRmUuQmFja3NwYWNlO2Nhc2UiVGFiIjpyZXR1cm4gRmUuVGFiO2Nhc2UiRW50ZXIiOmNhc2UiTnVtcGFkRW50ZXIiOnJldHVybiBGZS5FbnRlcjtjYXNlIlNoaWZ0TGVmdCI6Y2FzZSJTaGlmdFJpZ2h0IjpyZXR1cm4gRmUuU2hpZnQ7Y2FzZSJDb250cm9sTGVmdCI6Y2FzZSJDb250cm9sUmlnaHQiOnJldHVybiBGZS5DdHJsO2Nhc2UiQWx0TGVmdCI6Y2FzZSJBbHRSaWdodCI6cmV0dXJuIEZlLkFsdDtjYXNlIlBhdXNlIjpyZXR1cm4gRmUuUGF1c2VCcmVhaztjYXNlIkNhcHNMb2NrIjpyZXR1cm4gRmUuQ2Fwc0xvY2s7Y2FzZSJFc2NhcGUiOnJldHVybiBGZS5Fc2NhcGU7Y2FzZSJTcGFjZSI6cmV0dXJuIEZlLlNwYWNlO2Nhc2UiUGFnZVVwIjpyZXR1cm4gRmUuUGFnZVVwO2Nhc2UiUGFnZURvd24iOnJldHVybiBGZS5QYWdlRG93bjtjYXNlIkVuZCI6cmV0dXJuIEZlLkVuZDtjYXNlIkhvbWUiOnJldHVybiBGZS5Ib21lO2Nhc2UiQXJyb3dMZWZ0IjpyZXR1cm4gRmUuTGVmdEFycm93O2Nhc2UiQXJyb3dVcCI6cmV0dXJuIEZlLlVwQXJyb3c7Y2FzZSJBcnJvd1JpZ2h0IjpyZXR1cm4gRmUuUmlnaHRBcnJvdztjYXNlIkFycm93RG93biI6cmV0dXJuIEZlLkRvd25BcnJvdztjYXNlIkluc2VydCI6cmV0dXJuIEZlLkluc2VydDtjYXNlIkRlbGV0ZSI6cmV0dXJuIEZlLkRlbGV0ZTtjYXNlIk1ldGFMZWZ0IjpyZXR1cm4gRmUuTGVmdFdpbmRvd0tleTtjYXNlIk1ldGFSaWdodCI6cmV0dXJuIEZlLlJpZ2h0V2luZG93S2V5O2Nhc2UiQ29udGV4dE1lbnUiOnJldHVybiBGZS5TZWxlY3RLZXk7Y2FzZSJOdW1wYWQwIjpyZXR1cm4gRmUuTnVtcGFkMDtjYXNlIk51bXBhZDEiOnJldHVybiBGZS5OdW1wYWQxO2Nhc2UiTnVtcGFkMiI6cmV0dXJuIEZlLk51bXBhZDI7Y2FzZSJOdW1wYWQzIjpyZXR1cm4gRmUuTnVtcGFkMztjYXNlIk51bXBhZDQiOnJldHVybiBGZS5OdW1wYWQ0O2Nhc2UiTnVtcGFkNSI6cmV0dXJuIEZlLk51bXBhZDU7Y2FzZSJOdW1wYWQ2IjpyZXR1cm4gRmUuTnVtcGFkNjtjYXNlIk51bXBhZDciOnJldHVybiBGZS5OdW1wYWQ3O2Nhc2UiTnVtcGFkOCI6cmV0dXJuIEZlLk51bXBhZDg7Y2FzZSJOdW1wYWQ5IjpyZXR1cm4gRmUuTnVtcGFkOTtjYXNlIk51bXBhZE11bHRpcGx5IjpyZXR1cm4gRmUuTXVsdGlwbHk7Y2FzZSJOdW1wYWRBZGQiOnJldHVybiBGZS5BZGQ7Y2FzZSJOdW1wYWRTdWJ0cmFjdCI6cmV0dXJuIEZlLlN1YnRyYWN0O2Nhc2UiTnVtcGFkRGVjaW1hbCI6cmV0dXJuIEZlLkRlY2ltYWxQb2ludDtjYXNlIk51bXBhZERpdmlkZSI6cmV0dXJuIEZlLkRpdmlkZTtjYXNlIkYxIjpyZXR1cm4gRmUuRjE7Y2FzZSJGMiI6cmV0dXJuIEZlLkYyO2Nhc2UiRjMiOnJldHVybiBGZS5GMztjYXNlIkY0IjpyZXR1cm4gRmUuRjQ7Y2FzZSJGNSI6cmV0dXJuIEZlLkY1O2Nhc2UiRjYiOnJldHVybiBGZS5GNjtjYXNlIkY3IjpyZXR1cm4gRmUuRjc7Y2FzZSJGOCI6cmV0dXJuIEZlLkY4O2Nhc2UiRjkiOnJldHVybiBGZS5GOTtjYXNlIkYxMCI6cmV0dXJuIEZlLkYxMDtjYXNlIkYxMSI6cmV0dXJuIEZlLkYxMTtjYXNlIkYxMiI6cmV0dXJuIEZlLkYxMjtjYXNlIk51bUxvY2siOnJldHVybiBGZS5OdW1Mb2NrO2Nhc2UiU2Nyb2xsTG9jayI6cmV0dXJuIEZlLlNjcm9sbExvY2s7Y2FzZSJTZW1pY29sb24iOnJldHVybiBGZS5TZW1pQ29sb247Y2FzZSJFcXVhbCI6cmV0dXJuIEZlLkVxdWFscztjYXNlIkNvbW1hIjpyZXR1cm4gRmUuQ29tbWE7Y2FzZSJNaW51cyI6cmV0dXJuIEZlLkRhc2g7Y2FzZSJQZXJpb2QiOnJldHVybiBGZS5QZXJpb2Q7Y2FzZSJTbGFzaCI6cmV0dXJuIEZlLkZvcndhcmRTbGFzaDtjYXNlIkJhY2txdW90ZSI6cmV0dXJuIEZlLlRpbGRlO2Nhc2UiQnJhY2tldExlZnQiOnJldHVybiBGZS5PcGVuQnJhY2tldDtjYXNlIkJyYWNrZXRSaWdodCI6cmV0dXJuIEZlLkNsb3NlZEJyYWNrZXQ7Y2FzZSJRdW90ZSI6cmV0dXJuIEZlLlF1b3RlO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXJlc29sdmVLZXlGcm9tS2V5KGUpe2lmKCFlKXJldHVybiBudWxsO2lmKGUubGVuZ3RoPT09MSl7bGV0IHI9ZS50b1VwcGVyQ2FzZSgpO2lmKHI+PSJBIiYmcjw9IloiKXJldHVybiBGZVtyXT8/bnVsbDtzd2l0Y2goZSl7Y2FzZSIwIjpyZXR1cm4gRmUuWmVybztjYXNlIjEiOnJldHVybiBGZS5PbmU7Y2FzZSIyIjpyZXR1cm4gRmUuVHdvO2Nhc2UiMyI6cmV0dXJuIEZlLlRocmVlO2Nhc2UiNCI6cmV0dXJuIEZlLkZvdXI7Y2FzZSI1IjpyZXR1cm4gRmUuRml2ZTtjYXNlIjYiOnJldHVybiBGZS5TaXg7Y2FzZSI3IjpyZXR1cm4gRmUuU2V2ZW47Y2FzZSI4IjpyZXR1cm4gRmUuRWlnaHQ7Y2FzZSI5IjpyZXR1cm4gRmUuTmluZTtjYXNlIiAiOnJldHVybiBGZS5TcGFjZTtjYXNlIjsiOnJldHVybiBGZS5TZW1pQ29sb247Y2FzZSI9IjpyZXR1cm4gRmUuRXF1YWxzO2Nhc2UiLCI6cmV0dXJuIEZlLkNvbW1hO2Nhc2UiLSI6cmV0dXJuIEZlLkRhc2g7Y2FzZSIuIjpyZXR1cm4gRmUuUGVyaW9kO2Nhc2UiLyI6cmV0dXJuIEZlLkZvcndhcmRTbGFzaDtjYXNlImAiOnJldHVybiBGZS5UaWxkZTtjYXNlIlsiOnJldHVybiBGZS5PcGVuQnJhY2tldDtjYXNlIl0iOnJldHVybiBGZS5DbG9zZWRCcmFja2V0O2Nhc2UiJyI6cmV0dXJuIEZlLlF1b3RlO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXN3aXRjaChlKXtjYXNlIkJhY2tzcGFjZSI6cmV0dXJuIEZlLkJhY2tzcGFjZTtjYXNlIlRhYiI6cmV0dXJuIEZlLlRhYjtjYXNlIkVudGVyIjpyZXR1cm4gRmUuRW50ZXI7Y2FzZSJTaGlmdCI6cmV0dXJuIEZlLlNoaWZ0O2Nhc2UiQ29udHJvbCI6cmV0dXJuIEZlLkN0cmw7Y2FzZSJBbHQiOnJldHVybiBGZS5BbHQ7Y2FzZSJQYXVzZSI6cmV0dXJuIEZlLlBhdXNlQnJlYWs7Y2FzZSJDYXBzTG9jayI6cmV0dXJuIEZlLkNhcHNMb2NrO2Nhc2UiRXNjYXBlIjpyZXR1cm4gRmUuRXNjYXBlO2Nhc2UiUGFnZVVwIjpyZXR1cm4gRmUuUGFnZVVwO2Nhc2UiUGFnZURvd24iOnJldHVybiBGZS5QYWdlRG93bjtjYXNlIkVuZCI6cmV0dXJuIEZlLkVuZDtjYXNlIkhvbWUiOnJldHVybiBGZS5Ib21lO2Nhc2UiQXJyb3dMZWZ0IjpyZXR1cm4gRmUuTGVmdEFycm93O2Nhc2UiQXJyb3dVcCI6cmV0dXJuIEZlLlVwQXJyb3c7Y2FzZSJBcnJvd1JpZ2h0IjpyZXR1cm4gRmUuUmlnaHRBcnJvdztjYXNlIkFycm93RG93biI6cmV0dXJuIEZlLkRvd25BcnJvdztjYXNlIkluc2VydCI6cmV0dXJuIEZlLkluc2VydDtjYXNlIkRlbGV0ZSI6cmV0dXJuIEZlLkRlbGV0ZTtjYXNlIk1ldGEiOnJldHVybiBGZS5MZWZ0V2luZG93S2V5O2Nhc2UiQ29udGV4dE1lbnUiOnJldHVybiBGZS5TZWxlY3RLZXk7Y2FzZSJOdW1Mb2NrIjpyZXR1cm4gRmUuTnVtTG9jaztjYXNlIlNjcm9sbExvY2siOnJldHVybiBGZS5TY3JvbGxMb2NrO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXJlc29sdmVLZXlGcm9tS2V5Q29kZShlKXtyZXR1cm4gdHlwZW9mIGUhPSJudW1iZXIiP251bGw6dHlwZW9mIEZlW2VdPCJ1Ij9lOm51bGx9Y3JlYXRlS2V5Ym9hcmRFdmVudChlKXtsZXQgcj1lW2UubGVuZ3RoLTFdPz9GZS5FbnRlcixhPXRoaXMuZ2V0S2V5RGVzY3JpcHRvcihyKTtyZXR1cm4gbmV3IEtleWJvYXJkRXZlbnQoImtleWRvd24iLHtrZXk6YS5rZXksY29kZTphLmNvZGUsY3RybEtleTplLmluY2x1ZGVzKEZlLkN0cmwpLHNoaWZ0S2V5OmUuaW5jbHVkZXMoRmUuU2hpZnQpLGFsdEtleTplLmluY2x1ZGVzKEZlLkFsdCksbWV0YUtleTplLmluY2x1ZGVzKEZlLkxlZnRXaW5kb3dLZXkpfHxlLmluY2x1ZGVzKEZlLlJpZ2h0V2luZG93S2V5KX0pfWdldEtleURlc2NyaXB0b3IoZSl7c3dpdGNoKGUpe2Nhc2UgRmUuQ3RybDpyZXR1cm57a2V5OiJDb250cm9sIixjb2RlOiJDb250cm9sTGVmdCJ9O2Nhc2UgRmUuU2hpZnQ6cmV0dXJue2tleToiU2hpZnQiLGNvZGU6IlNoaWZ0TGVmdCJ9O2Nhc2UgRmUuQWx0OnJldHVybntrZXk6IkFsdCIsY29kZToiQWx0TGVmdCJ9O2Nhc2UgRmUuRW50ZXI6cmV0dXJue2tleToiRW50ZXIiLGNvZGU6IkVudGVyIn07Y2FzZSBGZS5TcGFjZTpyZXR1cm57a2V5OiIgIixjb2RlOiJTcGFjZSJ9O2RlZmF1bHQ6e2xldCByPUZlW2VdO2lmKHImJnIubGVuZ3RoPT09MSYmcj49IkEiJiZyPD0iWiIpcmV0dXJue2tleTpyLnRvTG93ZXJDYXNlKCksY29kZTpgS2V5JHtyfWB9O2lmKGU+PUZlLlplcm8mJmU8PUZlLk5pbmUpe2xldCBhPVN0cmluZyhlLUZlLlplcm8pO3JldHVybntrZXk6YSxjb2RlOmBEaWdpdCR7YX1gfX1yZXR1cm57a2V5OnI/PyJVbmlkZW50aWZpZWQiLGNvZGU6IlVuaWRlbnRpZmllZCJ9fX19fX0pO3ZhciBTMCxUeD11KCgpPT57X3goKTt1a2UoKTtNRnQoKTtrbGUoKTtDRnQoKTt6RnQoKTtTMD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkRvbVRvb2xzIil9c3RhdGljIGluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsO3N0YXRpYyBhc3luYyBzZXR1cERvbVRvb2xzKGU9e30pe2lmKGUuaWdub3JlR2xvYmFsKXtsZXQgcj1uZXcgdChlKTtyZXR1cm4gYXdhaXQgci5pbml0aWFsaXphdGlvblByb21pc2Uscn1pZihnbG9iYWxUaGlzLmRlZXNEb21Ub29scyYmIWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzLmRpc3Bvc2VkKXJldHVybiBhd2FpdCBnbG9iYWxUaGlzLmRlZXNEb21Ub29scy5pbml0aWFsaXphdGlvblByb21pc2UsZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7aWYoIXQuaW5pdGlhbGl6YXRpb25Qcm9taXNlKXtsZXQgcj1uZXcgdChlKTtnbG9iYWxUaGlzLmRlZXNEb21Ub29scz1yLHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPXIuaW5pdGlhbGl6YXRpb25Qcm9taXNlLnRoZW4oKCk9PnIpLmNhdGNoKGE9Pnt0aHJvdyBnbG9iYWxUaGlzLmRlZXNEb21Ub29scz09PXImJihnbG9iYWxUaGlzLmRlZXNEb21Ub29scz12b2lkIDApLHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPW51bGwsYX0pfXJldHVybiBhd2FpdCB0LmluaXRpYWxpemF0aW9uUHJvbWlzZX1zdGF0aWMgZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCl7bGV0IGU9Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7aWYoIWV8fGUuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKCJZb3UgdHJpZWQgdG8gYWNjZXNzIGRvbXRvb2xzIHN5bmNocm9ub3VzbHkgdG9vIGVhcmx5Iik7cmV0dXJuIGV9ZWxlbWVudHM9e2hlYWRFbGVtZW50Om51bGwsYm9keUVsZW1lbnQ6bnVsbH07d2Vic2V0dXA9bmV3IFpNKHttZXRhT2JqZWN0Ont0aXRsZToiIn19KTtzbWFydHN0YXRlPW5ldyBOaC5TbWFydHN0YXRlO2RvbVRvb2xzU3RhdGVQYXJ0PXRoaXMuc21hcnRzdGF0ZS5nZXRTdGF0ZVBhcnQoImRvbXRvb2xzIix7dmlydHVhbFZpZXdwb3J0OiJuYXRpdmUiLGp3dDoiIn0pO3JvdXRlcj1uZXcgUGguU21hcnRSb3V0ZXIoe2RlYnVnOiExfSk7Y29udmVuaWVuY2U9e3R5cGVkcmVxdWVzdDptMSxzbWFydGRlbGF5Okt0LHNtYXJ0anNvbjpIcyxzbWFydHVybDpIMn07ZGVlc0NvbW1zPW5ldyBEUy5EZWVzQ29tbXM7c2Nyb2xsZXI9bmV3IE1sZSh0aGlzKTt0aGVtZU1hbmFnZXI9bmV3IENsZSh0aGlzKTtrZXlib2FyZD1udWxsO2Rpc3Bvc2VkPSExO2RvbVRvb2xzUmVhZHk9eHQuZGVmZXIoKTtkb21SZWFkeT14dC5kZWZlcigpO2dsb2JhbFN0eWxlc1JlYWR5PXh0LmRlZmVyKCk7aW5pdGlhbGl6YXRpb25Qcm9taXNlO21hbmFnZWREb21Ob2Rlcz1bXTtyZWFkeVN0YXRlQ2hhbmdlZEZ1bmM9aSgoKT0+e3RoaXMudHJ5TWFya0RvbVJlYWR5KCl9LCJyZWFkeVN0YXRlQ2hhbmdlZEZ1bmMiKTtjb25zdHJ1Y3RvcihlKXt0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZT10aGlzLmluaXRpYWxpemUoKX1ydW5PbmNlUHJvbWlzZU1hcD1uZXcgTWFwO2FzeW5jIGluaXRpYWxpemUoKXt0aGlzLnRyeU1hcmtEb21SZWFkeSgpLHRoaXMuZG9tUmVhZHkuc3RhdHVzPT09InBlbmRpbmciJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLnJlYWR5U3RhdGVDaGFuZ2VkRnVuYyksdGhpcy5kb21Ub29sc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy5kb21Ub29sc1JlYWR5LnJlc29sdmUoKX10cnlNYXJrRG9tUmVhZHkoKXt0aGlzLmRpc3Bvc2VkfHx0aGlzLmRvbVJlYWR5LnN0YXR1cyE9PSJwZW5kaW5nInx8ZG9jdW1lbnQucmVhZHlTdGF0ZSE9PSJpbnRlcmFjdGl2ZSImJmRvY3VtZW50LnJlYWR5U3RhdGUhPT0iY29tcGxldGUifHwhZG9jdW1lbnQuaGVhZHx8IWRvY3VtZW50LmJvZHl8fCh0aGlzLmVsZW1lbnRzLmhlYWRFbGVtZW50PWRvY3VtZW50LmhlYWQsdGhpcy5lbGVtZW50cy5ib2R5RWxlbWVudD1kb2N1bWVudC5ib2R5LHRoaXMua2V5Ym9hcmR8fCh0aGlzLmtleWJvYXJkPW5ldyB6bGUoZG9jdW1lbnQuYm9keSkpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHRoaXMucmVhZHlTdGF0ZUNoYW5nZWRGdW5jKSx0aGlzLmRvbVJlYWR5LnJlc29sdmUoKSl9dHJhY2tNYW5hZ2VkRG9tTm9kZShlKXtyZXR1cm4gdGhpcy5tYW5hZ2VkRG9tTm9kZXMucHVzaChlKSxlfWdldEhlYWRPckJvZHlFbGVtZW50KCl7bGV0IGU9dGhpcy5lbGVtZW50cy5oZWFkRWxlbWVudHx8ZG9jdW1lbnQuaGVhZHx8dGhpcy5lbGVtZW50cy5ib2R5RWxlbWVudHx8ZG9jdW1lbnQuYm9keTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkRvbVRvb2xzIGNvdWxkIG5vdCBmaW5kIGEgRE9NIHRhcmdldCBlbGVtZW50IHRvIGF0dGFjaCByZXNvdXJjZXMgdG8iKTtyZXR1cm4gZX1hc3luYyBydW5PbmNlKGUscil7bGV0IGE9dGhpcy5ydW5PbmNlUHJvbWlzZU1hcC5nZXQoZSk7cmV0dXJuIGF8fChhPVByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMoKT0+YXdhaXQgcigpKSx0aGlzLnJ1bk9uY2VQcm9taXNlTWFwLnNldChlLGEpKSxhd2FpdCBhfWFzeW5jIHNldEdsb2JhbFN0eWxlcyhlKXthd2FpdCB0aGlzLmRvbVJlYWR5LnByb21pc2U7bGV0IHI9dGhpcy50cmFja01hbmFnZWREb21Ob2RlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikpO3IudHlwZT0idGV4dC9jc3MiLHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuZ2V0SGVhZE9yQm9keUVsZW1lbnQoKS5hcHBlbmRDaGlsZChyKX1hc3luYyBzZXRFeHRlcm5hbFNjcmlwdChlKXthd2FpdCB0aGlzLmRvbVJlYWR5LnByb21pc2U7bGV0IHI9eHQuZGVmZXIoKSxhPXRoaXMudHJhY2tNYW5hZ2VkRG9tTm9kZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSk7YS5zcmM9ZSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57ci5yZXNvbHZlKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3IucmVqZWN0KG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgc2NyaXB0OiAke2V9YCkpfSksdGhpcy5nZXRIZWFkT3JCb2R5RWxlbWVudCgpLmFwcGVuZChhKSxhd2FpdCByLnByb21pc2V9YXN5bmMgc2V0RXh0ZXJuYWxDc3MoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCByPXh0LmRlZmVyKCksYT10aGlzLnRyYWNrTWFuYWdlZERvbU5vZGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpKTthLnJlbD0ic3R5bGVzaGVldCIsYS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixhLmhyZWY9ZSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57ci5yZXNvbHZlKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3IucmVqZWN0KG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgc3R5bGVzaGVldDogJHtlfWApKX0pLHRoaXMuZ2V0SGVhZE9yQm9keUVsZW1lbnQoKS5hcHBlbmQoYSksYXdhaXQgci5wcm9taXNlfWFzeW5jIHNldFdlYnNpdGVJbmZvKGUpe2F3YWl0IHRoaXMud2Vic2V0dXAuc2V0dXAoZSksYXdhaXQgdGhpcy53ZWJzZXR1cC5yZWFkeVByb21pc2V9ZGlzcG9zZSgpe2lmKCF0aGlzLmRpc3Bvc2VkKXt0aGlzLmRpc3Bvc2VkPSEwLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHRoaXMucmVhZHlTdGF0ZUNoYW5nZWRGdW5jKSx0aGlzLmtleWJvYXJkPy5kaXNwb3NlKCksdGhpcy5rZXlib2FyZD1udWxsLHRoaXMuc2Nyb2xsZXIuZGlzcG9zZSgpLHRoaXMudGhlbWVNYW5hZ2VyLmRpc3Bvc2UoKTtmb3IobGV0IGUgb2YgdGhpcy5tYW5hZ2VkRG9tTm9kZXMpZS5yZW1vdmUoKTt0aGlzLm1hbmFnZWREb21Ob2Rlcy5sZW5ndGg9MCxnbG9iYWxUaGlzLmRlZXNEb21Ub29scz09PXRoaXMmJihnbG9iYWxUaGlzLmRlZXNEb21Ub29scz12b2lkIDAsdC5pbml0aWFsaXphdGlvblByb21pc2U9bnVsbCl9fX19KTt2YXIgX2xlLF9GdCxURnQ9dSgoKT0+e1R4KCk7eWwoKTtfbGU9KCgpPT57bGV0IHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNYWMgT1MgWCIpPT09LTE/JHJgYC5jc3NUZXh0OiIiO3JldHVybiAkcmAKICAgIC8qIHdpZHRoICovCiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgd2lkdGg6IDBweDsKICAgIH0KICAgIGJvZHkgewogICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7CiAgICB9CiAgYC5jc3NUZXh0fSkoKSxfRnQ9JHJgCiAgLyoKICBAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tYXRlcmlhbGljb25zL3Y0Mi9mbFVoUnE2dHpaY2xRRUotVmRnLUl1aWFEc05jSWhROHRRLndvZmYyKQogICAgICBmb3JtYXQoJ3dvZmYyJyk7CiAgfSAqLwoKICAvKiBnbG9iYWwgYm9keSBzdHlsZXMgKi8KICBib2R5IHsKICAgIG1hcmdpbjogMHB4OwogICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICAvKiBzY3JvbGwgYmFyIHN0eWxlcyAqLwogICR7TmEoX2xlKX0KYC5jc3NUZXh0fSk7dmFyIEx4PXt9O1ZlKEx4LHtzZXR1cDooKT0+UjVhLHN0YXRpY1N0eWxlczooKT0+TjVhLHN0eWxlczooKT0+TzVhfSk7dmFyIE41YSxPNWEsUjVhLExGdD11KCgpPT57VHgoKTtURnQoKTt5bCgpO041YT0kcmAKICAqIHsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICA6aG9zdCB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICB9CgogICR7TmEoX2xlKX0KYCxPNWE9UWVgCiAgPHN0eWxlPgogICAgKiB7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICB9CgogICAgJHtfbGV9CiAgPC9zdHlsZT4KYCxSNWE9aShhc3luYyh0LGU9e30pPT57bGV0IHI9YXdhaXQgUzAuc2V0dXBEb21Ub29scyhlKTtyZXR1cm4gYXdhaXQgci5ydW5PbmNlKCJlbGVtZW50QmFzaWNTZXR1cCIsYXN5bmMoKT0+e2F3YWl0IHIuc2V0R2xvYmFsU3R5bGVzKF9GdCl9KSxyLmdsb2JhbFN0eWxlc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmci5nbG9iYWxTdHlsZXNSZWFkeS5yZXNvbHZlKCksYXdhaXQgci5nbG9iYWxTdHlsZXNSZWFkeS5wcm9taXNlLHJ9LCJzZXR1cCIpfSk7dmFyIFRsZT17fTtWZShUbGUse2Nzc0dyaWRDb2x1bW5zOigpPT5GNWF9KTt2YXIgRjVhLERGdD11KCgpPT57RjVhPWkoKHQsZSk9PntsZXQgcj0iIjtmb3IobGV0IGE9MDthPHQ7YSsrKXIrPWAgY2FsYygoMTAwJS8ke3R9KSAtICgke2UqKHQtMSl9cHgvJHt0fSkpYDtyZXR1cm4gcn0sImNzc0dyaWRDb2x1bW5zIil9KTt2YXIgTGxlPXt9O1ZlKExsZSx7U3dlZXRTY3JvbGw6KCk9Pnp4LmRlZmF1bHQsc21hcnRkZWxheTooKT0+S3Qsc21hcnRtYXJrZG93bjooKT0+VU0sc21hcnRwcm9taXNlOigpPT54dCxzbWFydHJvdXRlcjooKT0+UGgsc21hcnRyeDooKT0+b2Esc21hcnRzdGF0ZTooKT0+Tmgsc21hcnRzdHJpbmc6KCk9PkJzLHNtYXJ0dXJsOigpPT5IMix0eXBlZHJlcXVlc3Q6KCk9Pm0xfSk7dmFyICRGdD11KCgpPT57X3goKX0pO3ZhciBTMT17fTtWZShTMSx7RG9tVG9vbHM6KCk9PlMwLFR5cGVkUmVxdWVzdDooKT0+QVMsYnJlYWtwb2ludHM6KCk9PlNpLGNzczooKT0+VGxlLGVsZW1lbnRCYXNpYzooKT0+THgscGx1Z2luczooKT0+TGxlfSk7dmFyIFhNPXUoKCk9PntoeXQoKTtMRnQoKTt1a2UoKTtERnQoKTtUeCgpO2hvZSgpO2tsZSgpOyRGdCgpfSk7dmFyIHBrZSxGdSxma2U9dSgoKT0+e3BrZT1HYSh2aygpLDEpO1pjKCk7eWwoKTtmeXQoKTtYTSgpO0Z1PXtjc3M6JHIsdW5zYWZlQ1NTOk5hLExpdEVsZW1lbnQ6QWQscHJvcGVydHk6SGZ9fSk7dmFyIERsZSxFRnQ9dSgoKT0+e3lsKCk7ZmtlKCk7WE0oKTtEbGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJDc3NNYW5hZ2VyIil9c3RhdGljIGluc3RhbmNlPW51bGw7c3RhdGljIGdldFNpbmdsZXRvbigpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1kb210b29sc1Byb21pc2U9UzAuc2V0dXBEb21Ub29scygpO2dvQnJpZ2h0PSExO2JkVmFyVHJpcGxldFN0b3JlPVtdO2NvbnN0cnVjdG9yKCl7dGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBlPT57ZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShhc3luYyByPT57dGhpcy5nb0JyaWdodD1yLGF3YWl0IGUuZG9tUmVhZHkucHJvbWlzZTtmb3IobGV0IGEgb2YgdGhpcy5iZFZhclRyaXBsZXRTdG9yZSlkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KGEuY3NzVmFyTmFtZSx0aGlzLmdvQnJpZ2h0P2EuYnJpZ2h0VmFsdWU6YS5kYXJrVmFsdWUpfSl9KX1nZXQgZGVmYXVsdFN0eWxlcygpe3JldHVybiBMeC5zdGF0aWNTdHlsZXN9Z2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhlKXtyZXR1cm4gZS5pc3x8ZS5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1jc3NGb3JEZXNrdG9wKGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtaW4td2lkdGg6ICR7U2kuZGVza3RvcH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhyKSkpOk5hKFNpLmNzc0ZvckRlc2t0b3AoZSkpfWNzc0Zvck5vdGVib29rKGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7U2kubm90ZWJvb2t9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MocikpKTpOYShTaS5jc3NGb3JOb3RlYm9vayhlKSl9Y3NzRm9yVGFibGV0KGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7U2kudGFibGV0fXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHIpKSk6TmEoU2kuY3NzRm9yVGFibGV0KGUpKX1jc3NGb3JQaGFibGV0KGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7U2kucGhhYmxldH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhyKSkpOk5hKFNpLmNzc0ZvclBoYWJsZXQoZSkpfWNzc0ZvclBob25lKGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7U2kucGhvbmV9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MocikpKTpOYShTaS5jc3NGb3JQaG9uZShlKSl9Y3NzRm9yQ29uc3RyYWludChlKXtyZXR1cm4gcj0+TmEoU2kuY3NzRm9yQ29uc3RyYWludChlKShyKSl9YmRUaGVtZShlLHIpe2xldCBhLHM7UzAuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCk/cz1TMC5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuP2U6cjpzPXI7bGV0IG49dGhpcy5iZFZhclRyaXBsZXRTdG9yZS5maW5kKG89Pm8uZGFya1ZhbHVlPT09ciYmby5icmlnaHRWYWx1ZT09PWUpO2lmKG4pYT1uLmNzc1Zhck5hbWU7ZWxzZXtsZXQgbz17Y3NzVmFyTmFtZTpgLS0ke3BrZS51bmkoKX1gLGJyaWdodFZhbHVlOmUsZGFya1ZhbHVlOnJ9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChvKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIGw9Pnthd2FpdCBsLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShvLmNzc1Zhck5hbWUscyl9KSxhPW8uY3NzVmFyTmFtZX1yZXR1cm4gRnUudW5zYWZlQ1NTKGB2YXIoJHthfSwgJHtzfSlgKX1jc3NHcmlkQ29sdW1ucz1pKChlLHIpPT57bGV0IGE9IiI7Zm9yKGxldCBzPTA7czxlO3MrKylhKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHtyKihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIEZ1LnVuc2FmZUNTUyhhKX0sImNzc0dyaWRDb2x1bW5zIil9fSk7dmFyIGhrZSxCNWEsbWtlLEg1YSxJRnQsJGxlLGdrZSxxNWEsVjVhLFBGdD11KCgpPT57eDIoKTtoa2U9U3ltYm9sLmZvcigiIiksQjVhPWkodD0+e2lmKHQ/LnI9PT1oa2UpcmV0dXJuIHQ/Ll8kbGl0U3RhdGljJH0sIm8iKSxta2U9aSh0PT4oe18kbGl0U3RhdGljJDp0LHI6aGtlfSksInMiKSxINWE9aSgodCwuLi5lKT0+KHtfJGxpdFN0YXRpYyQ6ZS5yZWR1Y2UoKHIsYSxzKT0+cisobj0+e2lmKG4uXyRsaXRTdGF0aWMkIT09dm9pZCAwKXJldHVybiBuLl8kbGl0U3RhdGljJDt0aHJvdyBFcnJvcihgVmFsdWUgcGFzc2VkIHRvICdsaXRlcmFsJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2xpdGVyYWwnIHJlc3VsdDogJHtufS4gVXNlICd1bnNhZmVTdGF0aWMnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQKICAgICAgICAgICAgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LmApfSkoYSkrdFtzKzFdLHRbMF0pLHI6aGtlfSksImkiKSxJRnQ9bmV3IE1hcCwkbGU9aSh0PT4oZSwuLi5yKT0+e2xldCBhPXIubGVuZ3RoLHMsbixvPVtdLGw9W10sYyxkPTAsZj0hMTtmb3IoO2Q8YTspe2ZvcihjPWVbZF07ZDxhJiYobj1yW2RdLChzPUI1YShuKSkhPT12b2lkIDApOyljKz1zK2VbKytkXSxmPSEwO2QhPT1hJiZsLnB1c2gobiksby5wdXNoKGMpLGQrK31pZihkPT09YSYmby5wdXNoKGVbYV0pLGYpe2xldCBwPW8uam9pbigiJCRsaXQkJCIpOyhlPUlGdC5nZXQocCkpPT09dm9pZCAwJiYoby5yYXc9byxJRnQuc2V0KHAsZT1vKSkscj1sfXJldHVybiB0KGUsLi4ucil9LCJuIiksZ2tlPSRsZShRZSkscTVhPSRsZShCbWUpLFY1YT0kbGUoSG1lKX0pO3ZhciBORnQ9dSgoKT0+e1BGdCgpfSk7dmFyIE0wLHdzLE5sLGQ0PXUoKCk9PntNMD17QVRUUklCVVRFOjEsQ0hJTEQ6MixQUk9QRVJUWTozLEJPT0xFQU5fQVRUUklCVVRFOjQsRVZFTlQ6NSxFTEVNRU5UOjZ9LHdzPWkodD0+KC4uLmUpPT4oe18kbGl0RGlyZWN0aXZlJDp0LHZhbHVlczplfSksImUiKSxObD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoZSl7fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQVQoZSxyLGEpe3RoaXMuXyRDdD1lLHRoaXMuXyRBTT1yLHRoaXMuXyRDaT1hfV8kQVMoZSxyKXtyZXR1cm4gdGhpcy51cGRhdGUoZSxyKX11cGRhdGUoZSxyKXtyZXR1cm4gdGhpcy5yZW5kZXIoLi4ucil9fX0pO3ZhciBEeCxia2UsT0Z0PXUoKCk9Pnt4MigpO2Q0KCk7RHg9Y2xhc3MgZXh0ZW5kcyBObHtzdGF0aWN7aSh0aGlzLCJlIil9Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD1iaSxlLnR5cGUhPT1NMC5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PWJpfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PWFpKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgcj1bZV07cmV0dXJuIHIucmF3PXIsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczpyLHZhbHVlczpbXX19fTtEeC5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIixEeC5yZXN1bHRUeXBlPTE7YmtlPXdzKER4KX0pO3ZhciBSRnQ9dSgoKT0+e09GdCgpfSk7dmFyIHhrZSx2a2U9dSgoKT0+e3hrZT1pKHQ9PihlLHIpPT57ciE9PXZvaWQgMD9yLmFkZEluaXRpYWxpemVyKCgpPT57Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHQsZSl9KTpjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX0sInQiKX0pO3ZhciBGRnQ9dSgoKT0+e3ZrZSgpfSk7ZnVuY3Rpb24gdmkodCl7cmV0dXJuKGUscik9PntpZihlLmlzPXQsZS5uYW1lKXtsZXQgYT1qNWEoZS5uYW1lKTthIT09dCYmY29uc29sZS53YXJuKGBbZGVlcy1lbGVtZW50XSBDbGFzcyAiJHtlLm5hbWV9IiBrZWJhYi1jYXNlcyB0byAiJHthfSIgYnV0IHRhZyBpcyAiJHt0fSIuIENvbnRhaW5lciBxdWVyaWVzIHVzZSAuaXMgKCIke3R9IikuYCl9cmV0dXJuIHhrZSh0KShlLHIpfX12YXIgajVhLEJGdD11KCgpPT57RkZ0KCk7ajVhPWkodD0+dC5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksImNhbWVsVG9LZWJhYiIpO2kodmksImN1c3RvbUVsZW1lbnQiKX0pO2Z1bmN0aW9uIFp0KHQpe3JldHVybiBIZih7Li4udCxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgSEZ0PXUoKCk9PntUaWUoKTtpKFp0LCJyIil9KTtmdW5jdGlvbiBVNWEodCl7cmV0dXJuKGUscik9PntsZXQgYT10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOmVbcl07T2JqZWN0LmFzc2lnbihhLHQpfX12YXIgcUZ0PXUoKCk9PntpKFU1YSwidCIpfSk7dmFyIE9sLCR4PXUoKCk9PntPbD1pKCh0LGUscik9PihyLmNvbmZpZ3VyYWJsZT0hMCxyLmVudW1lcmFibGU9ITAsUmVmbGVjdC5kZWNvcmF0ZSYmdHlwZW9mIGUhPSJvYmplY3QiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHIpLHIpLCJlIil9KTtmdW5jdGlvbiB5a2UodCxlKXtyZXR1cm4ocixhLHMpPT57bGV0IG49aShvPT5vLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IodCk/P251bGwsIm8iKTtpZihlKXtsZXR7Z2V0Om8sc2V0Omx9PXR5cGVvZiBhPT0ib2JqZWN0Ij9yOnM/PygoKT0+e2xldCBjPVN5bWJvbCgpO3JldHVybntnZXQoKXtyZXR1cm4gdGhpc1tjXX0sc2V0KGQpe3RoaXNbY109ZH19fSkoKTtyZXR1cm4gT2wocixhLHtnZXQoKXtsZXQgYz1vLmNhbGwodGhpcyk7cmV0dXJuIGM9PT12b2lkIDAmJihjPW4odGhpcyksKGMhPT1udWxsfHx0aGlzLmhhc1VwZGF0ZWQpJiZsLmNhbGwodGhpcyxjKSksY319KX1yZXR1cm4gT2wocixhLHtnZXQoKXtyZXR1cm4gbih0aGlzKX19KX19dmFyIFZGdD11KCgpPT57JHgoKTtpKHlrZSwiZSIpfSk7ZnVuY3Rpb24gd2tlKHQpe3JldHVybihlLHIpPT5PbChlLHIse2dldCgpe3JldHVybih0aGlzLnJlbmRlclJvb3Q/PyhXNWE/Pz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpKS5xdWVyeVNlbGVjdG9yQWxsKHQpfX0pfXZhciBXNWEsakZ0PXUoKCk9PnskeCgpO2kod2tlLCJyIil9KTtmdW5jdGlvbiBra2UodCl7cmV0dXJuKGUscik9Pk9sKGUscix7YXN5bmMgZ2V0KCl7cmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKHQpPz9udWxsfX0pfXZhciBVRnQ9dSgoKT0+eyR4KCk7aShra2UsInIiKX0pO2Z1bmN0aW9uIEc1YSh0KXtyZXR1cm4oZSxyKT0+e2xldHtzbG90OmEsc2VsZWN0b3I6c309dD8/e30sbj0ic2xvdCIrKGE/YFtuYW1lPSR7YX1dYDoiOm5vdChbbmFtZV0pIik7cmV0dXJuIE9sKGUscix7Z2V0KCl7bGV0IG89dGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKG4pLGw9bz8uYXNzaWduZWRFbGVtZW50cyh0KT8/W107cmV0dXJuIHM9PT12b2lkIDA/bDpsLmZpbHRlcihjPT5jLm1hdGNoZXMocykpfX0pfX12YXIgV0Z0PXUoKCk9PnskeCgpO2koRzVhLCJvIil9KTtmdW5jdGlvbiBZNWEodCl7cmV0dXJuKGUscik9PntsZXR7c2xvdDphfT10Pz97fSxzPSJzbG90IisoYT9gW25hbWU9JHthfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gT2woZSxyLHtnZXQoKXtyZXR1cm4gdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKHMpPy5hc3NpZ25lZE5vZGVzKHQpPz9bXX19KX19dmFyIEdGdD11KCgpPT57JHgoKTtpKFk1YSwibiIpfSk7dmFyIFlGdD11KCgpPT57dmtlKCk7VGllKCk7SEZ0KCk7cUZ0KCk7VkZ0KCk7akZ0KCk7VUZ0KCk7V0Z0KCk7R0Z0KCl9KTt2YXIgS0Z0LEFsZSx5aSxaRnQ9dSgoKT0+e2ZrZSgpO3lsKCk7S0Z0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxBbGU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHlpPSgoKT0+e2xldCB0PUZ1LkxpdEVsZW1lbnQsZSxyPVtdLGE9W10scyxuPVtdLG89W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtzdGF0aWN7aSh0aGlzLCJEZWVzRWxlbWVudCIpfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZSh0W1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtGdS5wcm9wZXJ0eSh7dHlwZTpCb29sZWFufSldLHM9W0Z1LnByb3BlcnR5KCldLEtGdCh0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdvQnJpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGQ9PiJnb0JyaWdodCJpbiBkLCJoYXMiKSxnZXQ6aShkPT5kLmdvQnJpZ2h0LCJnZXQiKSxzZXQ6aSgoZCxmKT0+e2QuZ29CcmlnaHQ9Zn0sInNldCIpfSxtZXRhZGF0YTpjfSxyLGEpLEtGdCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRvbXRvb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGQ9PiJkb210b29scyJpbiBkLCJoYXMiKSxnZXQ6aShkPT5kLmRvbXRvb2xzLCJnZXQiKSxzZXQ6aSgoZCxmKT0+e2QuZG9tdG9vbHM9Zn0sInNldCIpfSxtZXRhZGF0YTpjfSxuLG8pLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBnZXRDb250YWluZXJOYW1lKCl7cmV0dXJuIHRoaXMuaXN8fHRoaXMubmFtZS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCl9c3RhdGljIGNzc0ZvckNvbnN0cmFpbnQoYyl7cmV0dXJuIGQ9PlMxLmJyZWFrcG9pbnRzLmNzc0ZvckNvbnN0cmFpbnRDb250YWluZXIoYyx0aGlzLmdldENvbnRhaW5lck5hbWUoKSkoZCl9I2U9QWxlKHRoaXMsciwhMSk7Z2V0IGdvQnJpZ2h0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGdvQnJpZ2h0KGMpe3RoaXMuI2U9Y31kb210b29sc1Byb21pc2U9QWxlKHRoaXMsYSk7I3Q9QWxlKHRoaXMsbix2b2lkIDApO2dldCBkb210b29scygpe3JldHVybiB0aGlzLiN0fXNldCBkb210b29scyhjKXt0aGlzLiN0PWN9cnhTdWJzY3JpcHRpb25zPShBbGUodGhpcyxvKSxbXSk7dGhlbWVTdWJzY3JpcHRpb247ZWxlbWVudERvbVJlYWR5RGVmZXJyZWQ9UzEucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtlbGVtZW50RG9tUmVhZHk9dGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5wcm9taXNlO2NvbnN0cnVjdG9yKGM9e30pe3N1cGVyKCksdGhpcy5kb210b29sc1Byb21pc2U9UzEuZWxlbWVudEJhc2ljLnNldHVwKHRoaXMsYyksdGhpcy5kb210b29sc1Byb21pc2UudGhlbihkPT57dGhpcy5kb210b29scz1kfSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO2xldCBjPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMudGhlbWVTdWJzY3JpcHRpb249Yy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShkPT57dGhpcy5nb0JyaWdodD1kLHRoaXMudGhlbWVDaGFuZ2VkJiZ0aGlzLnRoZW1lQ2hhbmdlZChkKX0pLHRoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godGhpcy50aGVtZVN1YnNjcmlwdGlvbik7Zm9yKGxldCBkIG9mIHRoaXMuc3RhcnR1cEZ1bmN0aW9ucylhd2FpdCBkKCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVlc0VsZW1lbnRDb25uZWN0ZWQiKSl9Zmlyc3RVcGRhdGVkKGMpe3N1cGVyLmZpcnN0VXBkYXRlZChjKSx0aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGFydHVwRnVuY3Rpb25zPVtdO3JlZ2lzdGVyU3RhcnR1cEZ1bmN0aW9uKGMpe3RoaXMuc3RhcnR1cEZ1bmN0aW9ucy5wdXNoKGMpfWdhcmJhZ2VGdW5jdGlvbnM9W107cmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYyl7dGhpcy5nYXJiYWdlRnVuY3Rpb25zLnB1c2goYyl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO2ZvcihsZXQgYyBvZiB0aGlzLnJ4U3Vic2NyaXB0aW9ucyljLnVuc3Vic2NyaWJlKCk7Zm9yKGxldCBjIG9mIHRoaXMuZ2FyYmFnZUZ1bmN0aW9ucylhd2FpdCBjKCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVlc0VsZW1lbnREaXNjb25uZWN0ZWQiKSl9fX0pKCl9KTtmdW5jdGlvbiBRRnQoKXtyZXR1cm4gZnVuY3Rpb24odCl7bGV0IGU9dC5pc3x8dC5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSxyPXQubmFtZT9LNWEodC5uYW1lKTpudWxsO2lmKHImJnIhPT1lKXtsZXQgbj1pKGw9PmwmJmwuY3NzVGV4dCYmbC5jc3NUZXh0LmluY2x1ZGVzKGBAY29udGFpbmVyICR7cn1gKT9OYShsLmNzc1RleHQucmVwbGFjZUFsbChgQGNvbnRhaW5lciAke3J9YCxgQGNvbnRhaW5lciAke2V9YCkpOmwsImZpeFN0eWxlIiksbz10LnN0eWxlcztBcnJheS5pc0FycmF5KG8pP3Quc3R5bGVzPW8ubWFwKG4pOm8mJih0LnN0eWxlcz1uKG8pKX1sZXQgYT1TaS5jb250YWluZXJDb250ZXh0U3R5bGVzKGUpLHM9dC5zdHlsZXM7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/dC5zdHlsZXM9Wy4uLnMsYV06cz90LnN0eWxlcz1bcyxhXTp0LnN0eWxlcz1bYV0sdH19dmFyIEs1YSxYRnQ9dSgoKT0+e3lsKCk7WE0oKTtLNWE9aSh0PT50LnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSwiY2FtZWxUb0tlYmFiIik7aShRRnQsImNvbnRhaW5lclJlc3BvbnNpdmUiKX0pO3ZhciBaNWEsSkZ0LFNrZSxRNWEsWDVhLEo1YSxlOGEsdDhhLE1rZSxlQnQsdTQscTIscjhhLEpNLENrZSxlQyx6a2UsQXg9dSgoKT0+e3gyKCk7KHtJOlo1YX09cW1lKSxKRnQ9aSh0PT50LCJpIiksU2tlPWkodD0+dD09PW51bGx8fHR5cGVvZiB0IT0ib2JqZWN0IiYmdHlwZW9mIHQhPSJmdW5jdGlvbiIsIm4iKSxRNWE9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sWDVhPWkoKHQsZSk9PmU9PT12b2lkIDA/dD8uXyRsaXRUeXBlJCE9PXZvaWQgMDp0Py5fJGxpdFR5cGUkPT09ZSwibCIpLEo1YT1pKHQ9PnQ/Ll8kbGl0VHlwZSQ/LmghPW51bGwsImQiKSxlOGE9aSh0PT50Py5fJGxpdERpcmVjdGl2ZSQhPT12b2lkIDAsImMiKSx0OGE9aSh0PT50Py5fJGxpdERpcmVjdGl2ZSQsImYiKSxNa2U9aSh0PT50LnN0cmluZ3M9PT12b2lkIDAsInIiKSxlQnQ9aSgoKT0+ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIiksInMiKSx1ND1pKCh0LGUscik9PntsZXQgYT10Ll8kQUEucGFyZW50Tm9kZSxzPWU9PT12b2lkIDA/dC5fJEFCOmUuXyRBQTtpZihyPT09dm9pZCAwKXtsZXQgbj1hLmluc2VydEJlZm9yZShlQnQoKSxzKSxvPWEuaW5zZXJ0QmVmb3JlKGVCdCgpLHMpO3I9bmV3IFo1YShuLG8sdCx0Lm9wdGlvbnMpfWVsc2V7bGV0IG49ci5fJEFCLm5leHRTaWJsaW5nLG89ci5fJEFNLGw9byE9PXQ7aWYobCl7bGV0IGM7ci5fJEFRPy4odCksci5fJEFNPXQsci5fJEFQIT09dm9pZCAwJiYoYz10Ll8kQVUpIT09by5fJEFVJiZyLl8kQVAoYyl9aWYobiE9PXN8fGwpe2xldCBjPXIuXyRBQTtmb3IoO2MhPT1uOyl7bGV0IGQ9SkZ0KGMpLm5leHRTaWJsaW5nO0pGdChhKS5pbnNlcnRCZWZvcmUoYyxzKSxjPWR9fX1yZXR1cm4gcn0sInYiKSxxMj1pKCh0LGUscj10KT0+KHQuXyRBSShlLHIpLHQpLCJ1IikscjhhPXt9LEpNPWkoKHQsZT1yOGEpPT50Ll8kQUg9ZSwicCIpLENrZT1pKHQ9PnQuXyRBSCwiTSIpLGVDPWkodD0+e3QuXyRBUigpLHQuXyRBQS5yZW1vdmUoKX0sImgiKSx6a2U9aSh0PT57dC5fJEFSKCl9LCJqIil9KTtmdW5jdGlvbiBhOGEodCl7dGhpcy5fJEFOIT09dm9pZCAwPyhFbGUodGhpcyksdGhpcy5fJEFNPXQsdEJ0KHRoaXMpKTp0aGlzLl8kQU09dH1mdW5jdGlvbiBpOGEodCxlPSExLHI9MCl7bGV0IGE9dGhpcy5fJEFILHM9dGhpcy5fJEFOO2lmKHMhPT12b2lkIDAmJnMuc2l6ZSE9PTApaWYoZSlpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgbj1yO248YS5sZW5ndGg7bisrKXRDKGFbbl0sITEpLEVsZShhW25dKTtlbHNlIGEhPW51bGwmJih0QyhhLCExKSxFbGUoYSkpO2Vsc2UgdEModGhpcyx0KX12YXIgdEMsRWxlLHRCdCxzOGEsWTEsSWxlPXUoKCk9PntBeCgpO2Q0KCk7ZDQoKTt0Qz1pKCh0LGUpPT57bGV0IHI9dC5fJEFOO2lmKHI9PT12b2lkIDApcmV0dXJuITE7Zm9yKGxldCBhIG9mIHIpYS5fJEFPPy4oZSwhMSksdEMoYSxlKTtyZXR1cm4hMH0sInMiKSxFbGU9aSh0PT57bGV0IGUscjtkb3tpZigoZT10Ll8kQU0pPT09dm9pZCAwKWJyZWFrO3I9ZS5fJEFOLHIuZGVsZXRlKHQpLHQ9ZX13aGlsZShyPy5zaXplPT09MCl9LCJvIiksdEJ0PWkodD0+e2ZvcihsZXQgZTtlPXQuXyRBTTt0PWUpe2xldCByPWUuXyRBTjtpZihyPT09dm9pZCAwKWUuXyRBTj1yPW5ldyBTZXQ7ZWxzZSBpZihyLmhhcyh0KSlicmVhaztyLmFkZCh0KSxzOGEoZSl9fSwiciIpO2koYThhLCJoIik7aShpOGEsIm4iKTtzOGE9aSh0PT57dC50eXBlPT1NMC5DSElMRCYmKHQuXyRBUD8/PWk4YSx0Ll8kQVE/Pz1hOGEpfSwiYyIpLFkxPWNsYXNzIGV4dGVuZHMgTmx7c3RhdGlje2kodGhpcywiZiIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQoZSxyLGEpe3N1cGVyLl8kQVQoZSxyLGEpLHRCdCh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPWUuXyRBVX1fJEFPKGUscj0hMCl7ZSE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPWUsZT90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLHImJih0Qyh0aGlzLGUpLEVsZSh0aGlzKSl9c2V0VmFsdWUoZSl7aWYoTWtlKHRoaXMuXyRDdCkpdGhpcy5fJEN0Ll8kQUkoZSx0aGlzKTtlbHNle2xldCByPVsuLi50aGlzLl8kQ3QuXyRBSF07clt0aGlzLl8kQ2ldPWUsdGhpcy5fJEN0Ll8kQUkocix0aGlzLDApfX1kaXNjb25uZWN0ZWQoKXt9cmVjb25uZWN0ZWQoKXt9fX0pO3ZhciBQbGU9dSgoKT0+e0lsZSgpfSk7dmFyIF9rZSxyQnQsbjhhLGFCdD11KCgpPT57eWwoKTtQbGUoKTtfa2U9Y2xhc3MgZXh0ZW5kcyBZMXtzdGF0aWN7aSh0aGlzLCJSZXNvbHZlRGlyZWN0aXZlIil9cHJvbWlzZTtoYXNQcm9taXNlU2V0dGxlZD0hMTtyZW5kZXIoZSl7cmV0dXJuIHRoaXMucHJvbWlzZSE9PWUmJih0aGlzLnByb21pc2U9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLmhhbmRsZVByb21pc2UoZSkpLGFpfWhhbmRsZVByb21pc2UoZSl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMSxlLnRoZW4ocj0+e3RoaXMucHJvbWlzZT09PWUmJiF0aGlzLmhhc1Byb21pc2VTZXR0bGVkJiYodGhpcy5zZXRWYWx1ZShyKSx0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwKX0pLmNhdGNoKHI9Pnt0aGlzLnByb21pc2U9PT1lJiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUociksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwfXJlY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZHx8dGhpcy5oYW5kbGVQcm9taXNlKHRoaXMucHJvbWlzZSl9fSxyQnQ9d3MoX2tlKSxuOGE9aSh0PT5yQnQodCgpKSwicmVzb2x2ZUV4ZWMiKX0pO3ZhciBUa2UsbzhhLGlCdD11KCgpPT57eWwoKTtQbGUoKTtaYygpO1RrZT1jbGFzcyBleHRlbmRzIFkxe3N0YXRpY3tpKHRoaXMsIlN1YnNjcmliZURpcmVjdGl2ZSIpfW9ic2VydmFibGU7c3ViPW51bGw7cmVuZGVyKGUpe3JldHVybiB0aGlzLm9ic2VydmFibGUhPT1lJiYodGhpcy5zdWI/LnVuc3Vic2NyaWJlKCksdGhpcy5vYnNlcnZhYmxlPWUsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5zdWJzY3JpYmUoZSkpLGFpfXN1YnNjcmliZShlKXt0aGlzLnN1Yj1lLnN1YnNjcmliZShyPT57dGhpcy5zZXRWYWx1ZShyKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdWJzY3JpYmUodGhpcy5vYnNlcnZhYmxlKX19LG84YT13cyhUa2UpfSk7dmFyIExrZSxzQnQsbkJ0PXUoKCk9Pnt5bCgpO1BsZSgpO1pjKCk7TGtlPWNsYXNzIGV4dGVuZHMgWTF7c3RhdGlje2kodGhpcywiU3Vic2NyaWJlV2l0aFRlbXBsYXRlRGlyZWN0aXZlIil9b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcihlLHIpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT1lfHx0aGlzLnRlbXBsYXRlRm4hPT1yKSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT1lLHRoaXMudGVtcGxhdGVGbj1yLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksYWl9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKGU9PntsZXQgcj10aGlzLnRlbXBsYXRlRm4oZSk7dGhpcy5zZXRWYWx1ZShyKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0sc0J0PXdzKExrZSl9KTt2YXIgRGtlLEZoLEJoLCRrZT11KCgpPT57RGtlPWkoYXN5bmModCxlKT0+e2ZvciBhd2FpdChsZXQgciBvZiB0KWlmKGF3YWl0IGUocik9PT0hMSlyZXR1cm59LCJ0IiksRmg9Y2xhc3N7c3RhdGlje2kodGhpcywicyIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuRz1lfWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdChlKXt0aGlzLkc9ZX1kZXJlZigpe3JldHVybiB0aGlzLkd9fSxCaD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXt0aGlzLlk9dm9pZCAwLHRoaXMuWj12b2lkIDB9Z2V0KCl7cmV0dXJuIHRoaXMuWX1wYXVzZSgpe3RoaXMuWT8/PW5ldyBQcm9taXNlKGU9PnRoaXMuWj1lKX1yZXN1bWUoKXt0aGlzLlo/LigpLHRoaXMuWT10aGlzLlo9dm9pZCAwfX19KTt2YXIgb0J0LGxCdCxObGUsQWtlLGNCdD11KCgpPT57eDIoKTtBeCgpO0lsZSgpOyRrZSgpO2Q0KCk7b0J0PWkodD0+IVNrZSh0KSYmdHlwZW9mIHQudGhlbj09ImZ1bmN0aW9uIiwibiIpLGxCdD0xMDczNzQxODIzLE5sZT1jbGFzcyBleHRlbmRzIFkxe3N0YXRpY3tpKHRoaXMsImMiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1sQnQsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IEZoKHRoaXMpLHRoaXMuXyRDWD1uZXcgQmh9cmVuZGVyKC4uLmUpe3JldHVybiBlLmZpbmQocj0+IW9CdChyKSk/P2FpfXVwZGF0ZShlLHIpe2xldCBhPXRoaXMuXyRDYnQscz1hLmxlbmd0aDt0aGlzLl8kQ2J0PXI7bGV0IG49dGhpcy5fJENLLG89dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBsPTA7bDxyLmxlbmd0aCYmIShsPnRoaXMuXyRDd3QpO2wrKyl7bGV0IGM9cltsXTtpZighb0J0KGMpKXJldHVybiB0aGlzLl8kQ3d0PWwsYztsPHMmJmM9PT1hW2xdfHwodGhpcy5fJEN3dD1sQnQscz0wLFByb21pc2UucmVzb2x2ZShjKS50aGVuKGFzeW5jIGQ9Pntmb3IoO28uZ2V0KCk7KWF3YWl0IG8uZ2V0KCk7bGV0IGY9bi5kZXJlZigpO2lmKGYhPT12b2lkIDApe2xldCBwPWYuXyRDYnQuaW5kZXhPZihjKTtwPi0xJiZwPGYuXyRDd3QmJihmLl8kQ3d0PXAsZi5zZXRWYWx1ZShkKSl9fSkpfXJldHVybiBhaX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxBa2U9d3MoTmxlKX0pO3ZhciBkQnQ9dSgoKT0+e2NCdCgpfSk7dmFyIEV4LGw4YSx1QnQ9dSgoKT0+e3gyKCk7SWxlKCk7JGtlKCk7ZDQoKTtFeD1jbGFzcyBleHRlbmRzIFkxe3N0YXRpY3tpKHRoaXMsIm8iKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJENLPW5ldyBGaCh0aGlzKSx0aGlzLl8kQ1g9bmV3IEJofXJlbmRlcihlLHIpe3JldHVybiBhaX11cGRhdGUoZSxbcixhXSl7aWYodGhpcy5pc0Nvbm5lY3RlZHx8dGhpcy5kaXNjb25uZWN0ZWQoKSxyPT09dGhpcy5fJENKKXJldHVybiBhaTt0aGlzLl8kQ0o9cjtsZXQgcz0wLHtfJENLOm4sXyRDWDpvfT10aGlzO3JldHVybiBEa2Uocixhc3luYyBsPT57Zm9yKDtvLmdldCgpOylhd2FpdCBvLmdldCgpO2xldCBjPW4uZGVyZWYoKTtpZihjIT09dm9pZCAwKXtpZihjLl8kQ0ohPT1yKXJldHVybiExO2EhPT12b2lkIDAmJihsPWEobCxzKSksYy5jb21taXRWYWx1ZShsLHMpLHMrK31yZXR1cm4hMH0pLGFpfWNvbW1pdFZhbHVlKGUscil7dGhpcy5zZXRWYWx1ZShlKX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxsOGE9d3MoRXgpfSk7dmFyIEVrZSxwQnQ9dSgoKT0+e2Q0KCk7dUJ0KCk7QXgoKTtFa2U9d3MoY2xhc3MgZXh0ZW5kcyBFeHtjb25zdHJ1Y3Rvcih0KXtpZihzdXBlcih0KSx0LnR5cGUhPT1NMC5DSElMRCl0aHJvdyBFcnJvcigiYXN5bmNBcHBlbmQgY2FuIG9ubHkgYmUgdXNlZCBpbiBjaGlsZCBleHByZXNzaW9ucyIpfXVwZGF0ZSh0LGUpe3JldHVybiB0aGlzLl8kQ3R0PXQsc3VwZXIudXBkYXRlKHQsZSl9Y29tbWl0VmFsdWUodCxlKXtlPT09MCYmemtlKHRoaXMuXyRDdHQpO2xldCByPXU0KHRoaXMuXyRDdHQpO3EyKHIsdCl9fSl9KTt2YXIgZkJ0PXUoKCk9PntwQnQoKX0pO3ZhciBJa2UsaEJ0PXUoKCk9Pnt4MigpO2Q0KCk7QXgoKTtJa2U9d3MoY2xhc3MgZXh0ZW5kcyBObHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5rZXk9Yml9cmVuZGVyKHQsZSl7cmV0dXJuIHRoaXMua2V5PXQsZX11cGRhdGUodCxbZSxyXSl7cmV0dXJuIGUhPT10aGlzLmtleSYmKEpNKHQpLHRoaXMua2V5PWUpLHJ9fSl9KTt2YXIgbUJ0PXUoKCk9PntoQnQoKX0pO3ZhciBnQnQsUGtlLGJCdD11KCgpPT57eDIoKTtkNCgpO0F4KCk7Z0J0PWkoKHQsZSxyKT0+e2xldCBhPW5ldyBNYXA7Zm9yKGxldCBzPWU7czw9cjtzKyspYS5zZXQodFtzXSxzKTtyZXR1cm4gYX0sInUiKSxQa2U9d3MoY2xhc3MgZXh0ZW5kcyBObHtjb25zdHJ1Y3Rvcih0KXtpZihzdXBlcih0KSx0LnR5cGUhPT1NMC5DSElMRCl0aHJvdyBFcnJvcigicmVwZWF0KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiB0ZXh0IGV4cHJlc3Npb25zIil9ZHQodCxlLHIpe2xldCBhO3I9PT12b2lkIDA/cj1lOmUhPT12b2lkIDAmJihhPWUpO2xldCBzPVtdLG49W10sbz0wO2ZvcihsZXQgbCBvZiB0KXNbb109YT9hKGwsbyk6byxuW29dPXIobCxvKSxvKys7cmV0dXJue3ZhbHVlczpuLGtleXM6c319cmVuZGVyKHQsZSxyKXtyZXR1cm4gdGhpcy5kdCh0LGUscikudmFsdWVzfXVwZGF0ZSh0LFtlLHIsYV0pe2xldCBzPUNrZSh0KSx7dmFsdWVzOm4sa2V5czpvfT10aGlzLmR0KGUscixhKTtpZighQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gdGhpcy51dD1vLG47bGV0IGw9dGhpcy51dD8/PVtdLGM9W10sZCxmLHA9MCxoPXMubGVuZ3RoLTEsbT0wLHY9bi5sZW5ndGgtMTtmb3IoO3A8PWgmJm08PXY7KWlmKHNbcF09PT1udWxsKXArKztlbHNlIGlmKHNbaF09PT1udWxsKWgtLTtlbHNlIGlmKGxbcF09PT1vW21dKWNbbV09cTIoc1twXSxuW21dKSxwKyssbSsrO2Vsc2UgaWYobFtoXT09PW9bdl0pY1t2XT1xMihzW2hdLG5bdl0pLGgtLSx2LS07ZWxzZSBpZihsW3BdPT09b1t2XSljW3ZdPXEyKHNbcF0sblt2XSksdTQodCxjW3YrMV0sc1twXSkscCsrLHYtLTtlbHNlIGlmKGxbaF09PT1vW21dKWNbbV09cTIoc1toXSxuW21dKSx1NCh0LHNbcF0sc1toXSksaC0tLG0rKztlbHNlIGlmKGQ9PT12b2lkIDAmJihkPWdCdChvLG0sdiksZj1nQnQobCxwLGgpKSxkLmhhcyhsW3BdKSlpZihkLmhhcyhsW2hdKSl7bGV0IGI9Zi5nZXQob1ttXSksZz1iIT09dm9pZCAwP3NbYl06bnVsbDtpZihnPT09bnVsbCl7bGV0IHk9dTQodCxzW3BdKTtxMih5LG5bbV0pLGNbbV09eX1lbHNlIGNbbV09cTIoZyxuW21dKSx1NCh0LHNbcF0sZyksc1tiXT1udWxsO20rK31lbHNlIGVDKHNbaF0pLGgtLTtlbHNlIGVDKHNbcF0pLHArKztmb3IoO208PXY7KXtsZXQgYj11NCh0LGNbdisxXSk7cTIoYixuW21dKSxjW20rK109Yn1mb3IoO3A8PWg7KXtsZXQgYj1zW3ArK107YiE9PW51bGwmJmVDKGIpfXJldHVybiB0aGlzLnV0PW8sSk0odCxjKSxhaX19KX0pO3ZhciB4QnQ9dSgoKT0+e2JCdCgpfSk7dmFyIE9sZT17fTtWZShPbGUse2FzeW5jQXBwZW5kOigpPT5Fa2Usa2V5ZWQ6KCk9PklrZSxyZXBlYXQ6KCk9PlBrZSxyZXNvbHZlOigpPT5yQnQscmVzb2x2ZUV4ZWM6KCk9Pm44YSxzdWJzY3JpYmU6KCk9Pm84YSxzdWJzY3JpYmVXaXRoVGVtcGxhdGU6KCk9PnNCdCx1bnRpbDooKT0+QWtlfSk7dmFyIHZCdD11KCgpPT57YUJ0KCk7aUJ0KCk7bkJ0KCk7ZEJ0KCk7ZkJ0KCk7bUJ0KCk7eEJ0KCl9KTt2YXIgSGg9e307VmUoSGgse0RlZXNFbGVtZW50OigpPT55aSxjb250YWluZXJSZXNwb25zaXZlOigpPT5RRnQsY3NzOigpPT4kcixjc3NNYW5hZ2VyOigpPT5vcixjdXN0b21FbGVtZW50OigpPT52aSxkaXJlY3RpdmVzOigpPT5PbGUsZG9tdG9vbHM6KCk9PlMxLGh0bWw6KCk9PlFlLHByb3BlcnR5OigpPT5IZixxdWVyeTooKT0+eWtlLHF1ZXJ5QWxsOigpPT53a2UscXVlcnlBc3luYzooKT0+a2tlLHJlbmRlcjooKT0+eGssc3RhdGU6KCk9Plp0LHN0YXRpYzooKT0+Z2tlLHVuc2FmZUNTUzooKT0+TmEsdW5zYWZlSFRNTDooKT0+YmtlLHVuc2FmZVN0YXRpYzooKT0+bWtlfSk7dmFyIG9yLE5vPXUoKCk9PntFRnQoKTt5bCgpO05GdCgpO1JGdCgpO0JGdCgpO1lGdCgpO1hNKCk7WkZ0KCk7WEZ0KCk7dkJ0KCk7b3I9RGxlLmdldFNpbmdsZXRvbigpfSk7ZnVuY3Rpb24gYzhhKHQsZSl7bGV0IHI9anNbdF07cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmZT9yW2VdfHwiYXV0byI6dHlwZW9mIHI9PSJudW1iZXIiP3I6ImF1dG8ifXZhciBqcyxkOGEsUmxlLHlyLE9vPXUoKCk9Pntqcz17YmFzZTp7Y29udGVudDoiYXV0byIsaW5wdXRFbGVtZW50czoxfSxmaXhlZDp7YXBwQmFyOjEwLHNpZGVNZW51OjEwLG1vYmlsZU5hdjoyNTB9LGJhY2tkcm9wOntkcm9wZG93bjoxOTk5LG1vZGFsOjI5OTksY29udGV4dE1lbnU6Mzk5OX0sb3ZlcmxheTp7ZHJvcGRvd246MmUzLG1vZGFsOjNlMyxjb250ZXh0TWVudTo0ZTMsdG9hc3Q6NWUzfSxtb2RhbERyb3Bkb3duOjM1MDAsd3lzaXd5Z01lbnVzOjQ1MDB9O2koYzhhLCJnZXRaSW5kZXgiKTtkOGE9eyJkZWVzLW1vZGFsIjpqcy5vdmVybGF5Lm1vZGFsLCJkZWVzLXdpbmRvd2xheWVyIjpqcy5vdmVybGF5LmRyb3Bkb3duLCJkZWVzLWNvbnRleHRtZW51Ijpqcy5vdmVybGF5LmNvbnRleHRNZW51LCJkZWVzLXRvYXN0Ijpqcy5vdmVybGF5LnRvYXN0LCJkZWVzLWFwcHVpLW1haW5tZW51Ijpqcy5maXhlZC5hcHBCYXIsImRlZXMtbW9iaWxlbmF2aWdhdGlvbiI6anMuZml4ZWQubW9iaWxlTmF2LCJkZWVzLXNsYXNoLW1lbnUiOmpzLnd5c2l3eWdNZW51cywiZGVlcy1mb3JtYXR0aW5nLW1lbnUiOmpzLnd5c2l3eWdNZW51c30sUmxlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiWkluZGV4UmVnaXN0cnkiKX1zdGF0aWMgaW5zdGFuY2U7YWN0aXZlRWxlbWVudHM9bmV3IFNldDtlbGVtZW50WkluZGV4TWFwPW5ldyBXZWFrTWFwO2N1cnJlbnRaSW5kZXg9MWUzO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1nZXROZXh0WkluZGV4KCl7cmV0dXJuIHRoaXMuY3VycmVudFpJbmRleCs9MTAsdGhpcy5jdXJyZW50WkluZGV4fXJlZ2lzdGVyKGUscil7dGhpcy5hY3RpdmVFbGVtZW50cy5hZGQoZSksdGhpcy5lbGVtZW50WkluZGV4TWFwLnNldChlLHIpfXVucmVnaXN0ZXIoZSl7dGhpcy5hY3RpdmVFbGVtZW50cy5kZWxldGUoZSksdGhpcy5lbGVtZW50WkluZGV4TWFwLmRlbGV0ZShlKSx0aGlzLmFjdGl2ZUVsZW1lbnRzLnNpemU9PT0wJiYodGhpcy5jdXJyZW50WkluZGV4PTFlMyl9Z2V0RWxlbWVudFpJbmRleChlKXtyZXR1cm4gdGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlKX1nZXRBY3RpdmVDb3VudCgpe3JldHVybiB0aGlzLmFjdGl2ZUVsZW1lbnRzLnNpemV9Z2V0Q3VycmVudFpJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRaSW5kZXh9Y2xlYXIoKXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmNsZWFyKCksdGhpcy5lbGVtZW50WkluZGV4TWFwPW5ldyBXZWFrTWFwLHRoaXMuY3VycmVudFpJbmRleD0xZTN9Z2V0QWN0aXZlRWxlbWVudHNJbk9yZGVyKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5hY3RpdmVFbGVtZW50cykuc29ydCgoZSxyKT0+e2xldCBhPXRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQoZSl8fDAscz10aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KHIpfHwwO3JldHVybiBhLXN9KX19LHlyPVJsZS5nZXRJbnN0YW5jZSgpfSk7dmFyIEZsZSxyQyxOa2UseUJ0LEl4LEdyLHJlLEJsZSxhQyxPa2U9dSgoKT0+e0ZsZT1nbG9iYWxUaGlzLHJDPUZsZS5TaGFkb3dSb290JiYoRmxlLlNoYWR5Q1NTPT09dm9pZCAwfHxGbGUuU2hhZHlDU1MubmF0aXZlU2hhZG93KSYmImFkb3B0ZWRTdHlsZVNoZWV0cyJpbiBEb2N1bWVudC5wcm90b3R5cGUmJiJyZXBsYWNlImluIENTU1N0eWxlU2hlZXQucHJvdG90eXBlLE5rZT1TeW1ib2woKSx5QnQ9bmV3IFdlYWtNYXAsSXg9Y2xhc3N7c3RhdGlje2kodGhpcywibiIpfWNvbnN0cnVjdG9yKGUscixhKXtpZih0aGlzLl8kY3NzUmVzdWx0JD0hMCxhIT09TmtlKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1lLHRoaXMudD1yfWdldCBzdHlsZVNoZWV0KCl7bGV0IGU9dGhpcy5vLHI9dGhpcy50O2lmKHJDJiZlPT09dm9pZCAwKXtsZXQgYT1yIT09dm9pZCAwJiZyLmxlbmd0aD09PTE7YSYmKGU9eUJ0LmdldChyKSksZT09PXZvaWQgMCYmKCh0aGlzLm89ZT1uZXcgQ1NTU3R5bGVTaGVldCkucmVwbGFjZVN5bmModGhpcy5jc3NUZXh0KSxhJiZ5QnQuc2V0KHIsZSkpfXJldHVybiBlfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19LEdyPWkodD0+bmV3IEl4KHR5cGVvZiB0PT0ic3RyaW5nIj90OnQrIiIsdm9pZCAwLE5rZSksInIiKSxyZT1pKCh0LC4uLmUpPT57bGV0IHI9dC5sZW5ndGg9PT0xP3RbMF06ZS5yZWR1Y2UoKGEscyxuKT0+YSsobz0+e2lmKG8uXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIG8uY3NzVGV4dDtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIG87dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK28rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkocykrdFtuKzFdLHRbMF0pO3JldHVybiBuZXcgSXgocix0LE5rZSl9LCJpIiksQmxlPWkoKHQsZSk9PntpZihyQyl0LmFkb3B0ZWRTdHlsZVNoZWV0cz1lLm1hcChyPT5yIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9yOnIuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IHIgb2YgZSl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxzPUZsZS5saXROb25jZTtzIT09dm9pZCAwJiZhLnNldEF0dHJpYnV0ZSgibm9uY2UiLHMpLGEudGV4dENvbnRlbnQ9ci5jc3NUZXh0LHQuYXBwZW5kQ2hpbGQoYSl9fSwiUyIpLGFDPXJDP3Q9PnQ6dD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgcj0iIjtmb3IobGV0IGEgb2YgZS5jc3NSdWxlcylyKz1hLmNzc1RleHQ7cmV0dXJuIEdyKHIpfSkodCk6dH0pO3ZhciB1OGEscDhhLGY4YSxoOGEsbThhLGc4YSxIbGUsd0J0LGI4YSx4OGEsaUMsUHgsc0Msa0J0LEMwLG5DPXUoKCk9PntPa2UoKTtPa2UoKTsoe2lzOnU4YSxkZWZpbmVQcm9wZXJ0eTpwOGEsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmY4YSxnZXRPd25Qcm9wZXJ0eU5hbWVzOmg4YSxnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6bThhLGdldFByb3RvdHlwZU9mOmc4YX09T2JqZWN0KSxIbGU9Z2xvYmFsVGhpcyx3QnQ9SGxlLnRydXN0ZWRUeXBlcyxiOGE9d0J0P3dCdC5lbXB0eVNjcmlwdDoiIix4OGE9SGxlLnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCxpQz1pKCh0LGUpPT50LCJkIiksUHg9e3RvQXR0cmlidXRlKHQsZSl7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjp0PXQ/YjhhOm51bGw7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0PXQ9PW51bGw/dDpKU09OLnN0cmluZ2lmeSh0KX1yZXR1cm4gdH0sZnJvbUF0dHJpYnV0ZSh0LGUpe2xldCByPXQ7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjpyPXQhPT1udWxsO2JyZWFrO2Nhc2UgTnVtYmVyOnI9dD09PW51bGw/bnVsbDpOdW1iZXIodCk7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0cnl7cj1KU09OLnBhcnNlKHQpfWNhdGNoe3I9bnVsbH19cmV0dXJuIHJ9fSxzQz1pKCh0LGUpPT4hdThhKHQsZSksImYiKSxrQnQ9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6UHgscmVmbGVjdDohMSx1c2VEZWZhdWx0OiExLGhhc0NoYW5nZWQ6c0N9O1N5bWJvbC5tZXRhZGF0YT8/PVN5bWJvbCgibWV0YWRhdGEiKSxIbGUubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO0MwPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGlje2kodGhpcywieSIpfXN0YXRpYyBhZGRJbml0aWFsaXplcihlKXt0aGlzLl8kRWkoKSwodGhpcy5sPz89W10pLnB1c2goZSl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5maW5hbGl6ZSgpLHRoaXMuXyRFaCYmWy4uLnRoaXMuXyRFaC5rZXlzKCldfXN0YXRpYyBjcmVhdGVQcm9wZXJ0eShlLHI9a0J0KXtpZihyLnN0YXRlJiYoci5hdHRyaWJ1dGU9ITEpLHRoaXMuXyRFaSgpLHRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KGUpJiYoKHI9T2JqZWN0LmNyZWF0ZShyKSkud3JhcHBlZD0hMCksdGhpcy5lbGVtZW50UHJvcGVydGllcy5zZXQoZSxyKSwhci5ub0FjY2Vzc29yKXtsZXQgYT1TeW1ib2woKSxzPXRoaXMuZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGUsYSxyKTtzIT09dm9pZCAwJiZwOGEodGhpcy5wcm90b3R5cGUsZSxzKX19c3RhdGljIGdldFByb3BlcnR5RGVzY3JpcHRvcihlLHIsYSl7bGV0e2dldDpzLHNldDpufT1mOGEodGhpcy5wcm90b3R5cGUsZSk/P3tnZXQoKXtyZXR1cm4gdGhpc1tyXX0sc2V0KG8pe3RoaXNbcl09b319O3JldHVybntnZXQ6cyxzZXQobyl7bGV0IGw9cz8uY2FsbCh0aGlzKTtuPy5jYWxsKHRoaXMsbyksdGhpcy5yZXF1ZXN0VXBkYXRlKGUsbCxhKX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fXN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnMoZSl7cmV0dXJuIHRoaXMuZWxlbWVudFByb3BlcnRpZXMuZ2V0KGUpPz9rQnR9c3RhdGljIF8kRWkoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGlDKCJlbGVtZW50UHJvcGVydGllcyIpKSlyZXR1cm47bGV0IGU9ZzhhKHRoaXMpO2UuZmluYWxpemUoKSxlLmwhPT12b2lkIDAmJih0aGlzLmw9Wy4uLmUubF0pLHRoaXMuZWxlbWVudFByb3BlcnRpZXM9bmV3IE1hcChlLmVsZW1lbnRQcm9wZXJ0aWVzKX1zdGF0aWMgZmluYWxpemUoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGlDKCJmaW5hbGl6ZWQiKSkpcmV0dXJuO2lmKHRoaXMuZmluYWxpemVkPSEwLHRoaXMuXyRFaSgpLHRoaXMuaGFzT3duUHJvcGVydHkoaUMoInByb3BlcnRpZXMiKSkpe2xldCByPXRoaXMucHJvcGVydGllcyxhPVsuLi5oOGEociksLi4ubThhKHIpXTtmb3IobGV0IHMgb2YgYSl0aGlzLmNyZWF0ZVByb3BlcnR5KHMscltzXSl9bGV0IGU9dGhpc1tTeW1ib2wubWV0YWRhdGFdO2lmKGUhPT1udWxsKXtsZXQgcj1saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChlKTtpZihyIT09dm9pZCAwKWZvcihsZXRbYSxzXW9mIHIpdGhpcy5lbGVtZW50UHJvcGVydGllcy5zZXQoYSxzKX10aGlzLl8kRWg9bmV3IE1hcDtmb3IobGV0W3IsYV1vZiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzKXtsZXQgcz10aGlzLl8kRXUocixhKTtzIT09dm9pZCAwJiZ0aGlzLl8kRWguc2V0KHMscil9dGhpcy5lbGVtZW50U3R5bGVzPXRoaXMuZmluYWxpemVTdHlsZXModGhpcy5zdHlsZXMpfXN0YXRpYyBmaW5hbGl6ZVN0eWxlcyhlKXtsZXQgcj1bXTtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1uZXcgU2V0KGUuZmxhdCgxLzApLnJldmVyc2UoKSk7Zm9yKGxldCBzIG9mIGEpci51bnNoaWZ0KGFDKHMpKX1lbHNlIGUhPT12b2lkIDAmJnIucHVzaChhQyhlKSk7cmV0dXJuIHJ9c3RhdGljIF8kRXUoZSxyKXtsZXQgYT1yLmF0dHJpYnV0ZTtyZXR1cm4gYT09PSExP3ZvaWQgMDp0eXBlb2YgYT09InN0cmluZyI/YTp0eXBlb2YgZT09InN0cmluZyI/ZS50b0xvd2VyQ2FzZSgpOnZvaWQgMH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVwPXZvaWQgMCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMSx0aGlzLmhhc1VwZGF0ZWQ9ITEsdGhpcy5fJEVtPW51bGwsdGhpcy5fJEV2KCl9XyRFdigpe3RoaXMuXyRFUz1uZXcgUHJvbWlzZShlPT50aGlzLmVuYWJsZVVwZGF0aW5nPWUpLHRoaXMuXyRBTD1uZXcgTWFwLHRoaXMuXyRFXygpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuY29uc3RydWN0b3IubD8uZm9yRWFjaChlPT5lKHRoaXMpKX1hZGRDb250cm9sbGVyKGUpeyh0aGlzLl8kRU8/Pz1uZXcgU2V0KS5hZGQoZSksdGhpcy5yZW5kZXJSb290IT09dm9pZCAwJiZ0aGlzLmlzQ29ubmVjdGVkJiZlLmhvc3RDb25uZWN0ZWQ/LigpfXJlbW92ZUNvbnRyb2xsZXIoZSl7dGhpcy5fJEVPPy5kZWxldGUoZSl9XyRFXygpe2xldCBlPW5ldyBNYXAscj10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2ZvcihsZXQgYSBvZiByLmtleXMoKSl0aGlzLmhhc093blByb3BlcnR5KGEpJiYoZS5zZXQoYSx0aGlzW2FdKSxkZWxldGUgdGhpc1thXSk7ZS5zaXplPjAmJih0aGlzLl8kRXA9ZSl9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCBlPXRoaXMuc2hhZG93Um9vdD8/dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuIEJsZShlLHRoaXMuY29uc3RydWN0b3IuZWxlbWVudFN0eWxlcyksZX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuZW5hYmxlVXBkYXRpbmcoITApLHRoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3RDb25uZWN0ZWQ/LigpKX1lbmFibGVVcGRhdGluZyhlKXt9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl8kRU8/LmZvckVhY2goZT0+ZS5ob3N0RGlzY29ubmVjdGVkPy4oKSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGUscixhKXt0aGlzLl8kQUsoZSxhKX1fJEVUKGUscil7bGV0IGE9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcy5nZXQoZSkscz10aGlzLmNvbnN0cnVjdG9yLl8kRXUoZSxhKTtpZihzIT09dm9pZCAwJiZhLnJlZmxlY3Q9PT0hMCl7bGV0IG49KGEuY29udmVydGVyPy50b0F0dHJpYnV0ZSE9PXZvaWQgMD9hLmNvbnZlcnRlcjpQeCkudG9BdHRyaWJ1dGUocixhLnR5cGUpO3RoaXMuXyRFbT1lLG49PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGUocyk6dGhpcy5zZXRBdHRyaWJ1dGUocyxuKSx0aGlzLl8kRW09bnVsbH19XyRBSyhlLHIpe2xldCBhPXRoaXMuY29uc3RydWN0b3Iscz1hLl8kRWguZ2V0KGUpO2lmKHMhPT12b2lkIDAmJnRoaXMuXyRFbSE9PXMpe2xldCBuPWEuZ2V0UHJvcGVydHlPcHRpb25zKHMpLG89dHlwZW9mIG4uY29udmVydGVyPT0iZnVuY3Rpb24iP3tmcm9tQXR0cmlidXRlOm4uY29udmVydGVyfTpuLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZSE9PXZvaWQgMD9uLmNvbnZlcnRlcjpQeDt0aGlzLl8kRW09cztsZXQgbD1vLmZyb21BdHRyaWJ1dGUocixuLnR5cGUpO3RoaXNbc109bD8/dGhpcy5fJEVqPy5nZXQocyk/P2wsdGhpcy5fJEVtPW51bGx9fXJlcXVlc3RVcGRhdGUoZSxyLGEscz0hMSxuKXtpZihlIT09dm9pZCAwKXtsZXQgbz10aGlzLmNvbnN0cnVjdG9yO2lmKHM9PT0hMSYmKG49dGhpc1tlXSksYT8/PW8uZ2V0UHJvcGVydHlPcHRpb25zKGUpLCEoKGEuaGFzQ2hhbmdlZD8/c0MpKG4scil8fGEudXNlRGVmYXVsdCYmYS5yZWZsZWN0JiZuPT09dGhpcy5fJEVqPy5nZXQoZSkmJiF0aGlzLmhhc0F0dHJpYnV0ZShvLl8kRXUoZSxhKSkpKXJldHVybjt0aGlzLkMoZSxyLGEpfXRoaXMuaXNVcGRhdGVQZW5kaW5nPT09ITEmJih0aGlzLl8kRVM9dGhpcy5fJEVQKCkpfUMoZSxyLHt1c2VEZWZhdWx0OmEscmVmbGVjdDpzLHdyYXBwZWQ6bn0sbyl7YSYmISh0aGlzLl8kRWo/Pz1uZXcgTWFwKS5oYXMoZSkmJih0aGlzLl8kRWouc2V0KGUsbz8/cj8/dGhpc1tlXSksbiE9PSEwfHxvIT09dm9pZCAwKXx8KHRoaXMuXyRBTC5oYXMoZSl8fCh0aGlzLmhhc1VwZGF0ZWR8fGF8fChyPXZvaWQgMCksdGhpcy5fJEFMLnNldChlLHIpKSxzPT09ITAmJnRoaXMuXyRFbSE9PWUmJih0aGlzLl8kRXE/Pz1uZXcgU2V0KS5hZGQoZSkpfWFzeW5jIF8kRVAoKXt0aGlzLmlzVXBkYXRlUGVuZGluZz0hMDt0cnl7YXdhaXQgdGhpcy5fJEVTfWNhdGNoKHIpe1Byb21pc2UucmVqZWN0KHIpfWxldCBlPXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gZSE9bnVsbCYmYXdhaXQgZSwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IobGV0W3Msbl1vZiB0aGlzLl8kRXApdGhpc1tzXT1uO3RoaXMuXyRFcD12b2lkIDB9bGV0IGE9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztpZihhLnNpemU+MClmb3IobGV0W3Msbl1vZiBhKXtsZXR7d3JhcHBlZDpvfT1uLGw9dGhpc1tzXTtvIT09ITB8fHRoaXMuXyRBTC5oYXMocyl8fGw9PT12b2lkIDB8fHRoaXMuQyhzLHZvaWQgMCxuLGwpfX1sZXQgZT0hMSxyPXRoaXMuXyRBTDt0cnl7ZT10aGlzLnNob3VsZFVwZGF0ZShyKSxlPyh0aGlzLndpbGxVcGRhdGUociksdGhpcy5fJEVPPy5mb3JFYWNoKGE9PmEuaG9zdFVwZGF0ZT8uKCkpLHRoaXMudXBkYXRlKHIpKTp0aGlzLl8kRU0oKX1jYXRjaChhKXt0aHJvdyBlPSExLHRoaXMuXyRFTSgpLGF9ZSYmdGhpcy5fJEFFKHIpfXdpbGxVcGRhdGUoZSl7fV8kQUUoZSl7dGhpcy5fJEVPPy5mb3JFYWNoKHI9PnIuaG9zdFVwZGF0ZWQ/LigpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZSkpLHRoaXMudXBkYXRlZChlKX1fJEVNKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKGUpe3JldHVybiEwfXVwZGF0ZShlKXt0aGlzLl8kRXEmJj10aGlzLl8kRXEuZm9yRWFjaChyPT50aGlzLl8kRVQocix0aGlzW3JdKSksdGhpcy5fJEVNKCl9dXBkYXRlZChlKXt9Zmlyc3RVcGRhdGVkKGUpe319O0MwLmVsZW1lbnRTdHlsZXM9W10sQzAuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifSxDMFtpQygiZWxlbWVudFByb3BlcnRpZXMiKV09bmV3IE1hcCxDMFtpQygiZmluYWxpemVkIildPW5ldyBNYXAseDhhPy4oe1JlYWN0aXZlRWxlbWVudDpDMH0pLChIbGUucmVhY3RpdmVFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiMi4xLjIiKX0pO2Z1bmN0aW9uIEFCdCh0LGUpe2lmKCFIa2UodCl8fCF0Lmhhc093blByb3BlcnR5KCJyYXciKSl0aHJvdyBFcnJvcigiaW52YWxpZCB0ZW1wbGF0ZSBzdHJpbmdzIGFycmF5Iik7cmV0dXJuIE1CdCE9PXZvaWQgMD9NQnQuY3JlYXRlSFRNTChlKTplfWZ1bmN0aW9uIFVoKHQsZSxyPXQsYSl7aWYoZT09PW9pKXJldHVybiBlO2xldCBzPWEhPT12b2lkIDA/ci5fJENvPy5bYV06ci5fJENsLG49bEMoZSk/dm9pZCAwOmUuXyRsaXREaXJlY3RpdmUkO3JldHVybiBzPy5jb25zdHJ1Y3RvciE9PW4mJihzPy5fJEFPPy4oITEpLG49PT12b2lkIDA/cz12b2lkIDA6KHM9bmV3IG4odCkscy5fJEFUKHQscixhKSksYSE9PXZvaWQgMD8oci5fJENvPz89W10pW2FdPXM6ci5fJENsPXMpLHMhPT12b2lkIDAmJihlPVVoKHQscy5fJEFTKHQsZS52YWx1ZXMpLHMsYSkpLGV9dmFyIFJrZSxTQnQscWxlLE1CdCxGa2UscDQsQmtlLHY4YSxxaCxvQyxsQyxIa2UsQ0J0LHFrZSxjQyx6QnQsX0J0LFZoLFRCdCxMQnQsREJ0LFZrZSx3LGprZSxVa2Usb2ksd2ksJEJ0LGpoLEVCdCxkQyxWbGUsTngsV2gsamxlLFVsZSxXbGUsR2xlLFdrZSx5OGEsR2gsVjI9dSgoKT0+e1JrZT1nbG9iYWxUaGlzLFNCdD1pKHQ9PnQsImkiKSxxbGU9UmtlLnRydXN0ZWRUeXBlcyxNQnQ9cWxlP3FsZS5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDppKHQ9PnQsImNyZWF0ZUhUTUwiKX0pOnZvaWQgMCxGa2U9IiRsaXQkIixwND1gbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgLEJrZT0iPyIrcDQsdjhhPWA8JHtCa2V9PmAscWg9ZG9jdW1lbnQsb0M9aSgoKT0+cWguY3JlYXRlQ29tbWVudCgiIiksImMiKSxsQz1pKHQ9PnQ9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCImJnR5cGVvZiB0IT0iZnVuY3Rpb24iLCJhIiksSGtlPUFycmF5LmlzQXJyYXksQ0J0PWkodD0+SGtlKHQpfHx0eXBlb2YgdD8uW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIsImQiKSxxa2U9YFsgCQpcZlxyXWAsY0M9LzwoPzooIS0tfFwvW15hLXpBLVpdKXwoXC8/W2EtekEtWl1bXj5cc10qKXwoXC8/JCkpL2csekJ0PS8tLT4vZyxfQnQ9Lz4vZyxWaD1SZWdFeHAoYD58JHtxa2V9KD86KFteXFxzIic+PS9dKykoJHtxa2V9Kj0ke3FrZX0qKD86W14gCQpcZlxyIidcYDw+PV18KCJ8Jyl8KSl8JClgLCJnIiksVEJ0PS8nL2csTEJ0PS8iL2csREJ0PS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaSxWa2U9aSh0PT4oZSwuLi5yKT0+KHtfJGxpdFR5cGUkOnQsc3RyaW5nczplLHZhbHVlczpyfSksIngiKSx3PVZrZSgxKSxqa2U9VmtlKDIpLFVrZT1Wa2UoMyksb2k9U3ltYm9sLmZvcigibGl0LW5vQ2hhbmdlIiksd2k9U3ltYm9sLmZvcigibGl0LW5vdGhpbmciKSwkQnQ9bmV3IFdlYWtNYXAsamg9cWguY3JlYXRlVHJlZVdhbGtlcihxaCwxMjkpO2koQUJ0LCJWIik7RUJ0PWkoKHQsZSk9PntsZXQgcj10Lmxlbmd0aC0xLGE9W10scyxuPWU9PT0yPyI8c3ZnPiI6ZT09PTM/IjxtYXRoPiI6IiIsbz1jQztmb3IobGV0IGw9MDtsPHI7bCsrKXtsZXQgYz10W2xdLGQsZixwPS0xLGg9MDtmb3IoO2g8Yy5sZW5ndGgmJihvLmxhc3RJbmRleD1oLGY9by5leGVjKGMpLGYhPT1udWxsKTspaD1vLmxhc3RJbmRleCxvPT09Y0M/ZlsxXT09PSIhLS0iP289ekJ0OmZbMV0hPT12b2lkIDA/bz1fQnQ6ZlsyXSE9PXZvaWQgMD8oREJ0LnRlc3QoZlsyXSkmJihzPVJlZ0V4cCgiPC8iK2ZbMl0sImciKSksbz1WaCk6ZlszXSE9PXZvaWQgMCYmKG89VmgpOm89PT1WaD9mWzBdPT09Ij4iPyhvPXM/P2NDLHA9LTEpOmZbMV09PT12b2lkIDA/cD0tMjoocD1vLmxhc3RJbmRleC1mWzJdLmxlbmd0aCxkPWZbMV0sbz1mWzNdPT09dm9pZCAwP1ZoOmZbM109PT0nIic/TEJ0OlRCdCk6bz09PUxCdHx8bz09PVRCdD9vPVZoOm89PT16QnR8fG89PT1fQnQ/bz1jQzoobz1WaCxzPXZvaWQgMCk7bGV0IG09bz09PVZoJiZ0W2wrMV0uc3RhcnRzV2l0aCgiLz4iKT8iICI6IiI7bis9bz09PWNDP2MrdjhhOnA+PTA/KGEucHVzaChkKSxjLnNsaWNlKDAscCkrRmtlK2Muc2xpY2UocCkrcDQrbSk6YytwNCsocD09PS0yP2w6bSl9cmV0dXJuW0FCdCh0LG4rKHRbcl18fCI8Pz4iKSsoZT09PTI/Ijwvc3ZnPiI6ZT09PTM/IjwvbWF0aD4iOiIiKSksYV19LCJOIiksZEM9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTIil9Y29uc3RydWN0b3Ioe3N0cmluZ3M6ZSxfJGxpdFR5cGUkOnJ9LGEpe2xldCBzO3RoaXMucGFydHM9W107bGV0IG49MCxvPTAsbD1lLmxlbmd0aC0xLGM9dGhpcy5wYXJ0cyxbZCxmXT1FQnQoZSxyKTtpZih0aGlzLmVsPXQuY3JlYXRlRWxlbWVudChkLGEpLGpoLmN1cnJlbnROb2RlPXRoaXMuZWwuY29udGVudCxyPT09Mnx8cj09PTMpe2xldCBwPXRoaXMuZWwuY29udGVudC5maXJzdENoaWxkO3AucmVwbGFjZVdpdGgoLi4ucC5jaGlsZE5vZGVzKX1mb3IoOyhzPWpoLm5leHROb2RlKCkpIT09bnVsbCYmYy5sZW5ndGg8bDspe2lmKHMubm9kZVR5cGU9PT0xKXtpZihzLmhhc0F0dHJpYnV0ZXMoKSlmb3IobGV0IHAgb2Ygcy5nZXRBdHRyaWJ1dGVOYW1lcygpKWlmKHAuZW5kc1dpdGgoRmtlKSl7bGV0IGg9ZltvKytdLG09cy5nZXRBdHRyaWJ1dGUocCkuc3BsaXQocDQpLHY9LyhbLj9AXSk/KC4qKS8uZXhlYyhoKTtjLnB1c2goe3R5cGU6MSxpbmRleDpuLG5hbWU6dlsyXSxzdHJpbmdzOm0sY3Rvcjp2WzFdPT09Ii4iP2psZTp2WzFdPT09Ij8iP1VsZTp2WzFdPT09IkAiP1dsZTpXaH0pLHMucmVtb3ZlQXR0cmlidXRlKHApfWVsc2UgcC5zdGFydHNXaXRoKHA0KSYmKGMucHVzaCh7dHlwZTo2LGluZGV4Om59KSxzLnJlbW92ZUF0dHJpYnV0ZShwKSk7aWYoREJ0LnRlc3Qocy50YWdOYW1lKSl7bGV0IHA9cy50ZXh0Q29udGVudC5zcGxpdChwNCksaD1wLmxlbmd0aC0xO2lmKGg+MCl7cy50ZXh0Q29udGVudD1xbGU/cWxlLmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgbT0wO208aDttKyspcy5hcHBlbmQocFttXSxvQygpKSxqaC5uZXh0Tm9kZSgpLGMucHVzaCh7dHlwZToyLGluZGV4Oisrbn0pO3MuYXBwZW5kKHBbaF0sb0MoKSl9fX1lbHNlIGlmKHMubm9kZVR5cGU9PT04KWlmKHMuZGF0YT09PUJrZSljLnB1c2goe3R5cGU6MixpbmRleDpufSk7ZWxzZXtsZXQgcD0tMTtmb3IoOyhwPXMuZGF0YS5pbmRleE9mKHA0LHArMSkpIT09LTE7KWMucHVzaCh7dHlwZTo3LGluZGV4Om59KSxwKz1wNC5sZW5ndGgtMX1uKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KGUscil7bGV0IGE9cWguY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gYS5pbm5lckhUTUw9ZSxhfX07aShVaCwiTSIpO1ZsZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLl8kQVY9W10sdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUQ9ZSx0aGlzLl8kQU09cn1nZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl8kQU0ucGFyZW50Tm9kZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX11KGUpe2xldHtlbDp7Y29udGVudDpyfSxwYXJ0czphfT10aGlzLl8kQUQscz0oZT8uY3JlYXRpb25TY29wZT8/cWgpLmltcG9ydE5vZGUociwhMCk7amguY3VycmVudE5vZGU9cztsZXQgbj1qaC5uZXh0Tm9kZSgpLG89MCxsPTAsYz1hWzBdO2Zvcig7YyE9PXZvaWQgMDspe2lmKG89PT1jLmluZGV4KXtsZXQgZDtjLnR5cGU9PT0yP2Q9bmV3IE54KG4sbi5uZXh0U2libGluZyx0aGlzLGUpOmMudHlwZT09PTE/ZD1uZXcgYy5jdG9yKG4sYy5uYW1lLGMuc3RyaW5ncyx0aGlzLGUpOmMudHlwZT09PTYmJihkPW5ldyBHbGUobix0aGlzLGUpKSx0aGlzLl8kQVYucHVzaChkKSxjPWFbKytsXX1vIT09Yz8uaW5kZXgmJihuPWpoLm5leHROb2RlKCksbysrKX1yZXR1cm4gamguY3VycmVudE5vZGU9cWgsc31wKGUpe2xldCByPTA7Zm9yKGxldCBhIG9mIHRoaXMuXyRBVilhIT09dm9pZCAwJiYoYS5zdHJpbmdzIT09dm9pZCAwPyhhLl8kQUkoZSxhLHIpLHIrPWEuc3RyaW5ncy5sZW5ndGgtMik6YS5fJEFJKGVbcl0pKSxyKyt9fSxOeD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsImsiKX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0/Ll8kQVU/P3RoaXMuXyRDdn1jb25zdHJ1Y3RvcihlLHIsYSxzKXt0aGlzLnR5cGU9Mix0aGlzLl8kQUg9d2ksdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUE9ZSx0aGlzLl8kQUI9cix0aGlzLl8kQU09YSx0aGlzLm9wdGlvbnM9cyx0aGlzLl8kQ3Y9cz8uaXNDb25uZWN0ZWQ/PyEwfWdldCBwYXJlbnROb2RlKCl7bGV0IGU9dGhpcy5fJEFBLnBhcmVudE5vZGUscj10aGlzLl8kQU07cmV0dXJuIHIhPT12b2lkIDAmJmU/Lm5vZGVUeXBlPT09MTEmJihlPXIucGFyZW50Tm9kZSksZX1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSShlLHI9dGhpcyl7ZT1VaCh0aGlzLGUsciksbEMoZSk/ZT09PXdpfHxlPT1udWxsfHxlPT09IiI/KHRoaXMuXyRBSCE9PXdpJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9d2kpOmUhPT10aGlzLl8kQUgmJmUhPT1vaSYmdGhpcy5fKGUpOmUuXyRsaXRUeXBlJCE9PXZvaWQgMD90aGlzLiQoZSk6ZS5ub2RlVHlwZSE9PXZvaWQgMD90aGlzLlQoZSk6Q0J0KGUpP3RoaXMuayhlKTp0aGlzLl8oZSl9TyhlKXtyZXR1cm4gdGhpcy5fJEFBLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdGhpcy5fJEFCKX1UKGUpe3RoaXMuXyRBSCE9PWUmJih0aGlzLl8kQVIoKSx0aGlzLl8kQUg9dGhpcy5PKGUpKX1fKGUpe3RoaXMuXyRBSCE9PXdpJiZsQyh0aGlzLl8kQUgpP3RoaXMuXyRBQS5uZXh0U2libGluZy5kYXRhPWU6dGhpcy5UKHFoLmNyZWF0ZVRleHROb2RlKGUpKSx0aGlzLl8kQUg9ZX0kKGUpe2xldHt2YWx1ZXM6cixfJGxpdFR5cGUkOmF9PWUscz10eXBlb2YgYT09Im51bWJlciI/dGhpcy5fJEFDKGUpOihhLmVsPT09dm9pZCAwJiYoYS5lbD1kQy5jcmVhdGVFbGVtZW50KEFCdChhLmgsYS5oWzBdKSx0aGlzLm9wdGlvbnMpKSxhKTtpZih0aGlzLl8kQUg/Ll8kQUQ9PT1zKXRoaXMuXyRBSC5wKHIpO2Vsc2V7bGV0IG49bmV3IFZsZShzLHRoaXMpLG89bi51KHRoaXMub3B0aW9ucyk7bi5wKHIpLHRoaXMuVChvKSx0aGlzLl8kQUg9bn19XyRBQyhlKXtsZXQgcj0kQnQuZ2V0KGUuc3RyaW5ncyk7cmV0dXJuIHI9PT12b2lkIDAmJiRCdC5zZXQoZS5zdHJpbmdzLHI9bmV3IGRDKGUpKSxyfWsoZSl7SGtlKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2xldCByPXRoaXMuXyRBSCxhLHM9MDtmb3IobGV0IG4gb2YgZSlzPT09ci5sZW5ndGg/ci5wdXNoKGE9bmV3IHQodGhpcy5PKG9DKCkpLHRoaXMuTyhvQygpKSx0aGlzLHRoaXMub3B0aW9ucykpOmE9cltzXSxhLl8kQUkobikscysrO3M8ci5sZW5ndGgmJih0aGlzLl8kQVIoYSYmYS5fJEFCLm5leHRTaWJsaW5nLHMpLHIubGVuZ3RoPXMpfV8kQVIoZT10aGlzLl8kQUEubmV4dFNpYmxpbmcscil7Zm9yKHRoaXMuXyRBUD8uKCExLCEwLHIpO2UhPT10aGlzLl8kQUI7KXtsZXQgYT1TQnQoZSkubmV4dFNpYmxpbmc7U0J0KGUpLnJlbW92ZSgpLGU9YX19c2V0Q29ubmVjdGVkKGUpe3RoaXMuXyRBTT09PXZvaWQgMCYmKHRoaXMuXyRDdj1lLHRoaXMuXyRBUD8uKGUpKX19LFdoPWNsYXNze3N0YXRpY3tpKHRoaXMsIkgiKX1nZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLHIsYSxzLG4pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD13aSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1lLHRoaXMubmFtZT1yLHRoaXMuXyRBTT1zLHRoaXMub3B0aW9ucz1uLGEubGVuZ3RoPjJ8fGFbMF0hPT0iInx8YVsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoYS5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9YSk6dGhpcy5fJEFIPXdpfV8kQUkoZSxyPXRoaXMsYSxzKXtsZXQgbj10aGlzLnN0cmluZ3Msbz0hMTtpZihuPT09dm9pZCAwKWU9VWgodGhpcyxlLHIsMCksbz0hbEMoZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1vaSxvJiYodGhpcy5fJEFIPWUpO2Vsc2V7bGV0IGw9ZSxjLGQ7Zm9yKGU9blswXSxjPTA7YzxuLmxlbmd0aC0xO2MrKylkPVVoKHRoaXMsbFthK2NdLHIsYyksZD09PW9pJiYoZD10aGlzLl8kQUhbY10pLG98fD0hbEMoZCl8fGQhPT10aGlzLl8kQUhbY10sZD09PXdpP2U9d2k6ZSE9PXdpJiYoZSs9KGQ/PyIiKStuW2MrMV0pLHRoaXMuXyRBSFtjXT1kfW8mJiFzJiZ0aGlzLmooZSl9aihlKXtlPT09d2k/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGU/PyIiKX19LGpsZT1jbGFzcyBleHRlbmRzIFdoe3N0YXRpY3tpKHRoaXMsIkkiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTN9aihlKXt0aGlzLmVsZW1lbnRbdGhpcy5uYW1lXT1lPT09d2k/dm9pZCAwOmV9fSxVbGU9Y2xhc3MgZXh0ZW5kcyBXaHtzdGF0aWN7aSh0aGlzLCJMIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT00fWooZSl7dGhpcy5lbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLm5hbWUsISFlJiZlIT09d2kpfX0sV2xlPWNsYXNzIGV4dGVuZHMgV2h7c3RhdGlje2kodGhpcywieiIpfWNvbnN0cnVjdG9yKGUscixhLHMsbil7c3VwZXIoZSxyLGEscyxuKSx0aGlzLnR5cGU9NX1fJEFJKGUscj10aGlzKXtpZigoZT1VaCh0aGlzLGUsciwwKT8/d2kpPT09b2kpcmV0dXJuO2xldCBhPXRoaXMuXyRBSCxzPWU9PT13aSYmYSE9PXdpfHxlLmNhcHR1cmUhPT1hLmNhcHR1cmV8fGUub25jZSE9PWEub25jZXx8ZS5wYXNzaXZlIT09YS5wYXNzaXZlLG49ZSE9PXdpJiYoYT09PXdpfHxzKTtzJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxhKSxuJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxlKSx0aGlzLl8kQUg9ZX1oYW5kbGVFdmVudChlKXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LGUpOnRoaXMuXyRBSC5oYW5kbGVFdmVudChlKX19LEdsZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJaIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuZWxlbWVudD1lLHRoaXMudHlwZT02LHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFNPXIsdGhpcy5vcHRpb25zPWF9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBSShlKXtVaCh0aGlzLGUpfX0sV2tlPXtNOkZrZSxQOnA0LEE6QmtlLEM6MSxMOkVCdCxSOlZsZSxEOkNCdCxWOlVoLEk6TngsSDpXaCxOOlVsZSxVOldsZSxCOmpsZSxGOkdsZX0seThhPVJrZS5saXRIdG1sUG9seWZpbGxTdXBwb3J0O3k4YT8uKGRDLE54KSwoUmtlLmxpdEh0bWxWZXJzaW9ucz8/PVtdKS5wdXNoKCIzLjMuMiIpO0doPWkoKHQsZSxyKT0+e2xldCBhPXI/LnJlbmRlckJlZm9yZT8/ZSxzPWEuXyRsaXRQYXJ0JDtpZihzPT09dm9pZCAwKXtsZXQgbj1yPy5yZW5kZXJCZWZvcmU/P251bGw7YS5fJGxpdFBhcnQkPXM9bmV3IE54KGUuaW5zZXJ0QmVmb3JlKG9DKCksbiksbix2b2lkIDAscj8/e30pfXJldHVybiBzLl8kQUkodCksc30sIkQiKX0pO3ZhciBHa2UsZjQsdzhhLGs4YSxJQnQ9dSgoKT0+e25DKCk7bkMoKTtWMigpO1YyKCk7R2tlPWdsb2JhbFRoaXMsZjQ9Y2xhc3MgZXh0ZW5kcyBDMHtzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz1lLmZpcnN0Q2hpbGQsZX11cGRhdGUoZSl7bGV0IHI9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKGUpLHRoaXMuXyREbz1HaChyLHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gb2l9fTtmNC5fJGxpdEVsZW1lbnQkPSEwLGY0LmZpbmFsaXplZD0hMCxHa2UubGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0Py4oe0xpdEVsZW1lbnQ6ZjR9KTt3OGE9R2tlLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7dzhhPy4oe0xpdEVsZW1lbnQ6ZjR9KTtrOGE9e18kQUs6aSgodCxlLHIpPT57dC5fJEFLKGUscil9LCJfJEFLIiksXyRBTDppKHQ9PnQuXyRBTCwiXyRBTCIpfTsoR2tlLmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIFM4YSxQQnQ9dSgoKT0+e1M4YT0hMX0pO3ZhciBSbD11KCgpPT57bkMoKTtWMigpO0lCdCgpO1BCdCgpfSk7dmFyIEtsZT1OdChZbGU9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFlsZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksWWxlLnVuaT12b2lkIDA7dmFyIE04YT1pKCh0PSJ1bmkiKT0+YCR7dH1fJHsieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZT0+e2xldCByPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9yOnImM3w4KS50b1N0cmluZygxNil9KX1gLCJ1bmkiKTtZbGUudW5pPU04YX0pO3ZhciBabGUsQnUsUWxlPXUoKCk9PntabGU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVmZXJyZWQiKX1jbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGUscik9Pnt0aGlzLnJlc29sdmU9YT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksZShhKX0sdGhpcy5yZWplY3Q9YT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGEpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sQnU9aSgoKT0+bmV3IFpsZSwiZGVmZXIiKX0pO3ZhciBYbGUsQzhhLE5CdD11KCgpPT57UWxlKCk7WGxlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkN1bXVsYXRpdmVEZWZlcnJlZCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9QnUoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgZT1CdSgpO3JldHVybiB0aGlzLmFkZFByb21pc2UoZS5wcm9taXNlKSxlfWFkZFByb21pc2UoZSl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2goZSl9fSxDOGE9aSgoKT0+bmV3IFhsZSwiY3VtdWxhdGl2ZURlZmVyIil9KTt2YXIgJHQ9e307VmUoJHQse0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+WGxlLERlZmVycmVkOigpPT5abGUsY3VtdWxhdGl2ZURlZmVyOigpPT5DOGEsZGVmZXI6KCk9PkJ1LGZyb21DYWxsYmFjazooKT0+JDhhLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9PkQ4YSxtYXA6KCk9PlQ4YSxyZWplY3RlZFByb21pc2U6KCk9Pl84YSxyZXNvbHZlZFByb21pc2U6KCk9Pno4YSx0aW1lb3V0QW5kQ29udGludWU6KCk9Pkw4YSx0aW1lb3V0V3JhcDooKT0+T0J0fSk7ZnVuY3Rpb24gejhhKHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUodCl9dmFyIF84YSxUOGEsT0J0LEw4YSxEOGEsJDhhLEsxPXUoKCk9PntRbGUoKTtOQnQoKTtRbGUoKTtpKHo4YSwicmVzb2x2ZWRQcm9taXNlIik7XzhhPWkodD0+UHJvbWlzZS5yZWplY3QodCksInJlamVjdGVkUHJvbWlzZSIpLFQ4YT1pKGFzeW5jKHQsZSk9PlByb21pc2UuYWxsKHQubWFwKGUpKSwibWFwIiksT0J0PWkoYXN5bmModCxlLHI9ITApPT5uZXcgUHJvbWlzZSgoYSxzKT0+e3NldFRpbWVvdXQoKCk9PntyP3MobmV3IEVycm9yKCJ0aW1lb3V0IikpOmEobnVsbCl9LGUpLHQudGhlbihhLHMpfSksInRpbWVvdXRXcmFwIiksTDhhPWkoYXN5bmModCxlPTZlNCk9Pk9CdCh0LGUsITEpLCJ0aW1lb3V0QW5kQ29udGludWUiKSxEOGE9aShhc3luYyB0PT57bGV0IGU9QnUoKTtmb3IobGV0IHIgb2YgdClyLnRoZW4oYT0+e2E9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX0sImdldEZpcnN0VHJ1ZU9yRmFsc2UiKSwkOGE9aSh0PT5uZXcgUHJvbWlzZSgoZSxyKT0+e3QoKGEscyk9PnthP3IoYSk6ZShzKX0pfSksImZyb21DYWxsYmFjayIpfSk7dmFyIEpsZT11KCgpPT57SzEoKX0pO2Z1bmN0aW9uIE9yKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7WWtlKHQsZSk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHIsIl9fIiksdC5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKTooci5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IHIpfWZ1bmN0aW9uIEU4YSh0LGUpe3ZhciByPXt9O2Zvcih2YXIgYSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiZlLmluZGV4T2YoYSk8MCYmKHJbYV09dFthXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBzPTAsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3M8YS5sZW5ndGg7cysrKWUuaW5kZXhPZihhW3NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxhW3NdKSYmKHJbYVtzXV09dFthW3NdXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gSThhKHQsZSxyLGEpe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgsbj1zPDM/ZTphPT09bnVsbD9hPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKTphLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIiluPVJlZmxlY3QuZGVjb3JhdGUodCxlLHIsYSk7ZWxzZSBmb3IodmFyIGw9dC5sZW5ndGgtMTtsPj0wO2wtLSkobz10W2xdKSYmKG49KHM8Mz9vKG4pOnM+Mz9vKGUscixuKTpvKGUscikpfHxuKTtyZXR1cm4gcz4zJiZuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLG4pLG59ZnVuY3Rpb24gUDhhKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsYSl7ZShyLGEsdCl9fWZ1bmN0aW9uIE44YSh0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH1mdW5jdGlvbiBPOGEodCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9ZnVuY3Rpb24gUjhhKHQpe3JldHVybiB0eXBlb2YgdD09InN5bWJvbCI/dDoiIi5jb25jYXQodCl9ZnVuY3Rpb24gRjhhKHQsZSxyKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyPyIiLmNvbmNhdChyLCIgIixlKTplfSl9ZnVuY3Rpb24gQjhhKHQsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIFhrZSh0LGUscixhKXtmdW5jdGlvbiBzKG4pe3JldHVybiBuIGluc3RhbmNlb2Ygcj9uOm5ldyByKGZ1bmN0aW9uKG8pe28obil9KX1yZXR1cm4gaShzLCJhZG9wdCIpLG5ldyhyfHwocj1Qcm9taXNlKSkoZnVuY3Rpb24obixvKXtmdW5jdGlvbiBsKGYpe3RyeXtkKGEubmV4dChmKSl9Y2F0Y2gocCl7byhwKX19aShsLCJmdWxmaWxsZWQiKTtmdW5jdGlvbiBjKGYpe3RyeXtkKGEudGhyb3coZikpfWNhdGNoKHApe28ocCl9fWkoYywicmVqZWN0ZWQiKTtmdW5jdGlvbiBkKGYpe2YuZG9uZT9uKGYudmFsdWUpOnMoZi52YWx1ZSkudGhlbihsLGMpfWkoZCwic3RlcCIpLGQoKGE9YS5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIHVDKHQsZSl7dmFyIHI9e2xhYmVsOjAsc2VudDppKGZ1bmN0aW9uKCl7aWYoblswXSYxKXRocm93IG5bMV07cmV0dXJuIG5bMV19LCJzZW50IiksdHJ5czpbXSxvcHM6W119LGEscyxuLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PWwoMCksby50aHJvdz1sKDEpLG8ucmV0dXJuPWwoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBsKGQpe3JldHVybiBmdW5jdGlvbihmKXtyZXR1cm4gYyhbZCxmXSl9fWZ1bmN0aW9uIGMoZCl7aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvJiYobz0wLGRbMF0mJihyPTApKSxyOyl0cnl7aWYoYT0xLHMmJihuPWRbMF0mMj9zLnJldHVybjpkWzBdP3MudGhyb3d8fCgobj1zLnJldHVybikmJm4uY2FsbChzKSwwKTpzLm5leHQpJiYhKG49bi5jYWxsKHMsZFsxXSkpLmRvbmUpcmV0dXJuIG47c3dpdGNoKHM9MCxuJiYoZD1bZFswXSYyLG4udmFsdWVdKSxkWzBdKXtjYXNlIDA6Y2FzZSAxOm49ZDticmVhaztjYXNlIDQ6cmV0dXJuIHIubGFiZWwrKyx7dmFsdWU6ZFsxXSxkb25lOiExfTtjYXNlIDU6ci5sYWJlbCsrLHM9ZFsxXSxkPVswXTtjb250aW51ZTtjYXNlIDc6ZD1yLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihuPXIudHJ5cywhKG49bi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXSkmJihkWzBdPT09Nnx8ZFswXT09PTIpKXtyPTA7Y29udGludWV9aWYoZFswXT09PTMmJighbnx8ZFsxXT5uWzBdJiZkWzFdPG5bM10pKXtyLmxhYmVsPWRbMV07YnJlYWt9aWYoZFswXT09PTYmJnIubGFiZWw8blsxXSl7ci5sYWJlbD1uWzFdLG49ZDticmVha31pZihuJiZyLmxhYmVsPG5bMl0pe3IubGFiZWw9blsyXSxyLm9wcy5wdXNoKGQpO2JyZWFrfW5bMl0mJnIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZX1kPWUuY2FsbCh0LHIpfWNhdGNoKGYpe2Q9WzYsZl0scz0wfWZpbmFsbHl7YT1uPTB9aWYoZFswXSY1KXRocm93IGRbMV07cmV0dXJue3ZhbHVlOmRbMF0/ZFsxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIEg4YSh0LGUpe2Zvcih2YXIgciBpbiB0KXIhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmWmtlKGUsdCxyKX1mdW5jdGlvbiBubyh0KXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3Iscj1lJiZ0W2VdLGE9MDtpZihyKXJldHVybiByLmNhbGwodCk7aWYodCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDppKGZ1bmN0aW9uKCl7cmV0dXJuIHQmJmE+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W2ErK10sZG9uZTohdH19LCJuZXh0Iil9O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gT2kodCxlKXt2YXIgcj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIHQ7dmFyIGE9ci5jYWxsKHQpLHMsbj1bXSxvO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKHM9YS5uZXh0KCkpLmRvbmU7KW4ucHVzaChzLnZhbHVlKX1jYXRjaChsKXtvPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYocj1hLnJldHVybikmJnIuY2FsbChhKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG59ZnVuY3Rpb24gcThhKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQ9dC5jb25jYXQoT2koYXJndW1lbnRzW2VdKSk7cmV0dXJuIHR9ZnVuY3Rpb24gVjhhKCl7Zm9yKHZhciB0PTAsZT0wLHI9YXJndW1lbnRzLmxlbmd0aDtlPHI7ZSsrKXQrPWFyZ3VtZW50c1tlXS5sZW5ndGg7Zm9yKHZhciBhPUFycmF5KHQpLHM9MCxlPTA7ZTxyO2UrKylmb3IodmFyIG49YXJndW1lbnRzW2VdLG89MCxsPW4ubGVuZ3RoO288bDtvKysscysrKWFbc109bltvXTtyZXR1cm4gYX1mdW5jdGlvbiBVcyh0LGUscil7aWYocnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciBhPTAscz1lLmxlbmd0aCxuO2E8czthKyspKG58fCEoYSBpbiBlKSkmJihufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsYSkpLG5bYV09ZVthXSk7cmV0dXJuIHQuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiBoNCh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGg0Pyh0aGlzLnY9dCx0aGlzKTpuZXcgaDQodCl9ZnVuY3Rpb24gSmtlKHQsZSxyKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGE9ci5hcHBseSh0LGV8fFtdKSxzLG49W107cmV0dXJuIHM9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbCgibmV4dCIpLGwoInRocm93IiksbCgicmV0dXJuIixvKSxzW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxzO2Z1bmN0aW9uIG8obSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybiBQcm9taXNlLnJlc29sdmUodikudGhlbihtLHApfX1mdW5jdGlvbiBsKG0sdil7YVttXSYmKHNbbV09ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGcseSl7bi5wdXNoKFttLGIsZyx5XSk+MXx8YyhtLGIpfSl9LHYmJihzW21dPXYoc1ttXSkpKX1mdW5jdGlvbiBjKG0sdil7dHJ5e2QoYVttXSh2KSl9Y2F0Y2goYil7aChuWzBdWzNdLGIpfX1mdW5jdGlvbiBkKG0pe20udmFsdWUgaW5zdGFuY2VvZiBoND9Qcm9taXNlLnJlc29sdmUobS52YWx1ZS52KS50aGVuKGYscCk6aChuWzBdWzJdLG0pfWZ1bmN0aW9uIGYobSl7YygibmV4dCIsbSl9ZnVuY3Rpb24gcChtKXtjKCJ0aHJvdyIsbSl9ZnVuY3Rpb24gaChtLHYpe20odiksbi5zaGlmdCgpLG4ubGVuZ3RoJiZjKG5bMF1bMF0sblswXVsxXSl9fWZ1bmN0aW9uIGo4YSh0KXt2YXIgZSxyO3JldHVybiBlPXt9LGEoIm5leHQiKSxhKCJ0aHJvdyIsZnVuY3Rpb24ocyl7dGhyb3cgc30pLGEoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIGEocyxuKXtlW3NdPXRbc10/ZnVuY3Rpb24obyl7cmV0dXJuKHI9IXIpP3t2YWx1ZTpoNCh0W3NdKG8pKSxkb25lOiExfTpuP24obyk6b306bn19ZnVuY3Rpb24gZVNlKHQpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSxyO3JldHVybiBlP2UuY2FsbCh0KToodD10eXBlb2Ygbm89PSJmdW5jdGlvbiI/bm8odCk6dFtTeW1ib2wuaXRlcmF0b3JdKCkscj17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyKTtmdW5jdGlvbiBhKG4pe3Jbbl09dFtuXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsYyl7bz10W25dKG8pLHMobCxjLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiBzKG4sbyxsLGMpe1Byb21pc2UucmVzb2x2ZShjKS50aGVuKGZ1bmN0aW9uKGQpe24oe3ZhbHVlOmQsZG9uZTpsfSl9LG8pfX1mdW5jdGlvbiBVOGEodCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJyYXciLHt2YWx1ZTplfSk6dC5yYXc9ZSx0fWZ1bmN0aW9uIEc4YSh0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIHI9UWtlKHQpLGE9MDthPHIubGVuZ3RoO2ErKylyW2FdIT09ImRlZmF1bHQiJiZaa2UoZSx0LHJbYV0pO3JldHVybiBXOGEoZSx0KSxlfWZ1bmN0aW9uIFk4YSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gSzhhKHQsZSxyLGEpe2lmKHI9PT0iYSImJiFhKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3QhPT1lfHwhYTohZS5oYXModCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHI9PT0ibSI/YTpyPT09ImEiP2EuY2FsbCh0KTphP2EudmFsdWU6ZS5nZXQodCl9ZnVuY3Rpb24gWjhhKHQsZSxyLGEscyl7aWYoYT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihhPT09ImEiJiYhcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IXM6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGE9PT0iYSI/cy5jYWxsKHQscik6cz9zLnZhbHVlPXI6ZS5zZXQodCxyKSxyfWZ1bmN0aW9uIFE4YSh0LGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2U9PT10OnQuaGFzKGUpfWZ1bmN0aW9uIFg4YSh0LGUscil7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGEscztpZihyKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2E9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihhPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7YT1lW1N5bWJvbC5kaXNwb3NlXSxyJiYocz1hKX1pZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7cyYmKGE9aShmdW5jdGlvbigpe3RyeXtzLmNhbGwodGhpcyl9Y2F0Y2gobil7cmV0dXJuIFByb21pc2UucmVqZWN0KG4pfX0sImRpc3Bvc2UiKSksdC5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6YSxhc3luYzpyfSl9ZWxzZSByJiZ0LnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gZTdhKHQpe2Z1bmN0aW9uIGUobil7dC5lcnJvcj10Lmhhc0Vycm9yP25ldyBKOGEobix0LmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6bix0Lmhhc0Vycm9yPSEwfWkoZSwiZmFpbCIpO3ZhciByLGE9MDtmdW5jdGlvbiBzKCl7Zm9yKDtyPXQuc3RhY2sucG9wKCk7KXRyeXtpZighci5hc3luYyYmYT09PTEpcmV0dXJuIGE9MCx0LnN0YWNrLnB1c2gociksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihzKTtpZihyLmRpc3Bvc2Upe3ZhciBuPXIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO2lmKHIuYXN5bmMpcmV0dXJuIGF8PTIsUHJvbWlzZS5yZXNvbHZlKG4pLnRoZW4ocyxmdW5jdGlvbihvKXtyZXR1cm4gZShvKSxzKCl9KX1lbHNlIGF8PTF9Y2F0Y2gobyl7ZShvKX1pZihhPT09MSlyZXR1cm4gdC5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdCh0LmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZih0Lmhhc0Vycm9yKXRocm93IHQuZXJyb3J9cmV0dXJuIGkocywibmV4dCIpLHMoKX1mdW5jdGlvbiB0N2EodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QodCk/dC5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHIsYSxzLG4sbyl7cmV0dXJuIGE/ZT8iLmpzeCI6Ii5qcyI6cyYmKCFufHwhbyk/cjpzK24rIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6dH12YXIgWWtlLEtrZSxaa2UsVzhhLFFrZSxKOGEsTTRzLERhPXUoKCk9PntZa2U9aShmdW5jdGlvbih0LGUpe3JldHVybiBZa2U9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsYSl7ci5fX3Byb3RvX189YX18fGZ1bmN0aW9uKHIsYSl7Zm9yKHZhciBzIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEscykmJihyW3NdPWFbc10pfSxZa2UodCxlKX0sImV4dGVuZFN0YXRpY3MiKTtpKE9yLCJfX2V4dGVuZHMiKTtLa2U9aShmdW5jdGlvbigpe3JldHVybiBLa2U9T2JqZWN0LmFzc2lnbnx8aShmdW5jdGlvbihlKXtmb3IodmFyIHIsYT0xLHM9YXJndW1lbnRzLmxlbmd0aDthPHM7YSsrKXtyPWFyZ3VtZW50c1thXTtmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmKGVbbl09cltuXSl9cmV0dXJuIGV9LCJfX2Fzc2lnbiIpLEtrZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJfX2Fzc2lnbiIpO2koRThhLCJfX3Jlc3QiKTtpKEk4YSwiX19kZWNvcmF0ZSIpO2koUDhhLCJfX3BhcmFtIik7aShOOGEsIl9fZXNEZWNvcmF0ZSIpO2koTzhhLCJfX3J1bkluaXRpYWxpemVycyIpO2koUjhhLCJfX3Byb3BLZXkiKTtpKEY4YSwiX19zZXRGdW5jdGlvbk5hbWUiKTtpKEI4YSwiX19tZXRhZGF0YSIpO2koWGtlLCJfX2F3YWl0ZXIiKTtpKHVDLCJfX2dlbmVyYXRvciIpO1prZT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUscixhKXthPT09dm9pZCAwJiYoYT1yKTt2YXIgcz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscik7KCFzfHwoImdldCJpbiBzPyFlLl9fZXNNb2R1bGU6cy53cml0YWJsZXx8cy5jb25maWd1cmFibGUpKSYmKHM9e2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYSxzKX0pOihmdW5jdGlvbih0LGUscixhKXthPT09dm9pZCAwJiYoYT1yKSx0W2FdPWVbcl19KTtpKEg4YSwiX19leHBvcnRTdGFyIik7aShubywiX192YWx1ZXMiKTtpKE9pLCJfX3JlYWQiKTtpKHE4YSwiX19zcHJlYWQiKTtpKFY4YSwiX19zcHJlYWRBcnJheXMiKTtpKFVzLCJfX3NwcmVhZEFycmF5Iik7aShoNCwiX19hd2FpdCIpO2koSmtlLCJfX2FzeW5jR2VuZXJhdG9yIik7aShqOGEsIl9fYXN5bmNEZWxlZ2F0b3IiKTtpKGVTZSwiX19hc3luY1ZhbHVlcyIpO2koVThhLCJfX21ha2VUZW1wbGF0ZU9iamVjdCIpO1c4YT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSxRa2U9aShmdW5jdGlvbih0KXtyZXR1cm4gUWtlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXt2YXIgcj1bXTtmb3IodmFyIGEgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmKHJbci5sZW5ndGhdPWEpO3JldHVybiByfSxRa2UodCl9LCJvd25LZXlzIik7aShHOGEsIl9faW1wb3J0U3RhciIpO2koWThhLCJfX2ltcG9ydERlZmF1bHQiKTtpKEs4YSwiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIpO2koWjhhLCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Iik7aShROGEsIl9fY2xhc3NQcml2YXRlRmllbGRJbiIpO2koWDhhLCJfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSIpO0o4YT10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbih0LGUscil7dmFyIGE9bmV3IEVycm9yKHIpO3JldHVybiBhLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsYS5lcnJvcj10LGEuc3VwcHJlc3NlZD1lLGF9O2koZTdhLCJfX2Rpc3Bvc2VSZXNvdXJjZXMiKTtpKHQ3YSwiX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24iKTtNNHM9e19fZXh0ZW5kczpPcixfX2Fzc2lnbjpLa2UsX19yZXN0OkU4YSxfX2RlY29yYXRlOkk4YSxfX3BhcmFtOlA4YSxfX2VzRGVjb3JhdGU6TjhhLF9fcnVuSW5pdGlhbGl6ZXJzOk84YSxfX3Byb3BLZXk6UjhhLF9fc2V0RnVuY3Rpb25OYW1lOkY4YSxfX21ldGFkYXRhOkI4YSxfX2F3YWl0ZXI6WGtlLF9fZ2VuZXJhdG9yOnVDLF9fY3JlYXRlQmluZGluZzpaa2UsX19leHBvcnRTdGFyOkg4YSxfX3ZhbHVlczpubyxfX3JlYWQ6T2ksX19zcHJlYWQ6cThhLF9fc3ByZWFkQXJyYXlzOlY4YSxfX3NwcmVhZEFycmF5OlVzLF9fYXdhaXQ6aDQsX19hc3luY0dlbmVyYXRvcjpKa2UsX19hc3luY0RlbGVnYXRvcjpqOGEsX19hc3luY1ZhbHVlczplU2UsX19tYWtlVGVtcGxhdGVPYmplY3Q6VThhLF9faW1wb3J0U3RhcjpHOGEsX19pbXBvcnREZWZhdWx0Olk4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0Oks4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Olo4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46UThhLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOlg4YSxfX2Rpc3Bvc2VSZXNvdXJjZXM6ZTdhLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOnQ3YX19KTtmdW5jdGlvbiBhcih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiJ9dmFyIGZuPXUoKCk9PntpKGFyLCJpc0Z1bmN0aW9uIil9KTtmdW5jdGlvbiBNMSh0KXt2YXIgZT1pKGZ1bmN0aW9uKGEpe0Vycm9yLmNhbGwoYSksYS5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja30sIl9zdXBlciIpLHI9dChlKTtyZXR1cm4gci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscn12YXIgSHU9dSgoKT0+e2koTTEsImNyZWF0ZUVycm9yQ2xhc3MiKX0pO3ZhciBwQyx0U2U9dSgoKT0+e0h1KCk7cEM9TTEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7dCh0aGlzKSx0aGlzLm1lc3NhZ2U9cj9yLmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArci5tYXAoZnVuY3Rpb24oYSxzKXtyZXR1cm4gcysxKyIpICIrYS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1yfSwiVW5zdWJzY3JpcHRpb25FcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gajIodCxlKXtpZih0KXt2YXIgcj10LmluZGV4T2YoZSk7MDw9ciYmdC5zcGxpY2UociwxKX19dmFyIE94PXUoKCk9PntpKGoyLCJhcnJSZW1vdmUiKX0pO2Z1bmN0aW9uIGUyZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRzfHx0JiYiY2xvc2VkImluIHQmJmFyKHQucmVtb3ZlKSYmYXIodC5hZGQpJiZhcih0LnVuc3Vic2NyaWJlKX1mdW5jdGlvbiBSQnQodCl7YXIodCk/dCgpOnQudW5zdWJzY3JpYmUoKX12YXIgdHMsclNlLHowPXUoKCk9PntEYSgpO2ZuKCk7dFNlKCk7T3goKTt0cz0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMuaW5pdGlhbFRlYXJkb3duPWUsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fZmluYWxpemVycz1udWxsfXJldHVybiBpKHQsIlN1YnNjcmlwdGlvbiIpLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIGUscixhLHMsbjtpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBvPXRoaXMuX3BhcmVudGFnZTtpZihvKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkobykpdHJ5e2Zvcih2YXIgbD1ubyhvKSxjPWwubmV4dCgpOyFjLmRvbmU7Yz1sLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtkLnJlbW92ZSh0aGlzKX19Y2F0Y2goYil7ZT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKHI9bC5yZXR1cm4pJiZyLmNhbGwobCl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fWVsc2Ugby5yZW1vdmUodGhpcyk7dmFyIGY9dGhpcy5pbml0aWFsVGVhcmRvd247aWYoYXIoZikpdHJ5e2YoKX1jYXRjaChiKXtuPWIgaW5zdGFuY2VvZiBwQz9iLmVycm9yczpbYl19dmFyIHA9dGhpcy5fZmluYWxpemVycztpZihwKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7dHJ5e2Zvcih2YXIgaD1ubyhwKSxtPWgubmV4dCgpOyFtLmRvbmU7bT1oLm5leHQoKSl7dmFyIHY9bS52YWx1ZTt0cnl7UkJ0KHYpfWNhdGNoKGIpe249bj8/W10sYiBpbnN0YW5jZW9mIHBDP249VXMoVXMoW10sT2kobikpLE9pKGIuZXJyb3JzKSk6bi5wdXNoKGIpfX19Y2F0Y2goYil7YT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKHM9aC5yZXR1cm4pJiZzLmNhbGwoaCl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fX1pZihuKXRocm93IG5ldyBwQyhuKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgcjtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZClSQnQoZSk7ZWxzZXtpZihlIGluc3RhbmNlb2YgdCl7aWYoZS5jbG9zZWR8fGUuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47ZS5fYWRkUGFyZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPShyPXRoaXMuX2ZpbmFsaXplcnMpIT09bnVsbCYmciE9PXZvaWQgMD9yOltdKS5wdXNoKGUpfX0sdC5wcm90b3R5cGUuX2hhc1BhcmVudD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cmV0dXJuIHI9PT1lfHxBcnJheS5pc0FycmF5KHIpJiZyLmluY2x1ZGVzKGUpfSx0LnByb3RvdHlwZS5fYWRkUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX3BhcmVudGFnZTt0aGlzLl9wYXJlbnRhZ2U9QXJyYXkuaXNBcnJheShyKT8oci5wdXNoKGUpLHIpOnI/W3IsZV06ZX0sdC5wcm90b3R5cGUuX3JlbW92ZVBhcmVudD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cj09PWU/dGhpcy5fcGFyZW50YWdlPW51bGw6QXJyYXkuaXNBcnJheShyKSYmajIocixlKX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX2ZpbmFsaXplcnM7ciYmajIocixlKSxlIGluc3RhbmNlb2YgdCYmZS5fcmVtb3ZlUGFyZW50KHRoaXMpfSx0LkVNUFRZPShmdW5jdGlvbigpe3ZhciBlPW5ldyB0O3JldHVybiBlLmNsb3NlZD0hMCxlfSkoKSx0fSkoKSxyU2U9dHMuRU1QVFk7aShlMmUsImlzU3Vic2NyaXB0aW9uIik7aShSQnQsImV4ZWNGaW5hbGl6ZXIiKX0pO3ZhciBGbCxSeD11KCgpPT57Rmw9e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX19KTt2YXIgRngsYVNlPXUoKCk9PntEYSgpO0Z4PXtzZXRUaW1lb3V0OmkoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sYT0yO2E8YXJndW1lbnRzLmxlbmd0aDthKyspclthLTJdPWFyZ3VtZW50c1thXTt2YXIgcz1GeC5kZWxlZ2F0ZTtyZXR1cm4gcz8uc2V0VGltZW91dD9zLnNldFRpbWVvdXQuYXBwbHkocyxVcyhbdCxlXSxPaShyKSkpOnNldFRpbWVvdXQuYXBwbHkodm9pZCAwLFVzKFt0LGVdLE9pKHIpKSl9LCJzZXRUaW1lb3V0IiksY2xlYXJUaW1lb3V0OmkoZnVuY3Rpb24odCl7dmFyIGU9RnguZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFyVGltZW91dHx8Y2xlYXJUaW1lb3V0KSh0KX0sImNsZWFyVGltZW91dCIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiB0MmUodCl7Rnguc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPUZsLm9uVW5oYW5kbGVkRXJyb3I7aWYoZSllKHQpO2Vsc2UgdGhyb3cgdH0pfXZhciBpU2U9dSgoKT0+e1J4KCk7YVNlKCk7aSh0MmUsInJlcG9ydFVuaGFuZGxlZEVycm9yIil9KTtmdW5jdGlvbiBCbCgpe312YXIgWWg9dSgoKT0+e2koQmwsIm5vb3AiKX0pO2Z1bmN0aW9uIEJCdCh0KXtyZXR1cm4gc1NlKCJFIix2b2lkIDAsdCl9ZnVuY3Rpb24gSEJ0KHQpe3JldHVybiBzU2UoIk4iLHQsdm9pZCAwKX1mdW5jdGlvbiBzU2UodCxlLHIpe3JldHVybntraW5kOnQsdmFsdWU6ZSxlcnJvcjpyfX12YXIgRkJ0LHFCdD11KCgpPT57RkJ0PShmdW5jdGlvbigpe3JldHVybiBzU2UoIkMiLHZvaWQgMCx2b2lkIDApfSkoKTtpKEJCdCwiZXJyb3JOb3RpZmljYXRpb24iKTtpKEhCdCwibmV4dE5vdGlmaWNhdGlvbiIpO2koc1NlLCJjcmVhdGVOb3RpZmljYXRpb24iKX0pO2Z1bmN0aW9uIEJ4KHQpe2lmKEZsLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciBlPSFLaDtpZihlJiYoS2g9e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSx0KCksZSl7dmFyIHI9S2gsYT1yLmVycm9yVGhyb3duLHM9ci5lcnJvcjtpZihLaD1udWxsLGEpdGhyb3cgc319ZWxzZSB0KCl9ZnVuY3Rpb24gVkJ0KHQpe0ZsLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJktoJiYoS2guZXJyb3JUaHJvd249ITAsS2guZXJyb3I9dCl9dmFyIEtoLHIyZT11KCgpPT57UngoKTtLaD1udWxsO2koQngsImVycm9yQ29udGV4dCIpO2koVkJ0LCJjYXB0dXJlRXJyb3IiKX0pO2Z1bmN0aW9uIG5TZSh0LGUpe3JldHVybiByN2EuY2FsbCh0LGUpfWZ1bmN0aW9uIGEyZSh0KXtGbC51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP1ZCdCh0KTp0MmUodCl9ZnVuY3Rpb24gaTdhKHQpe3Rocm93IHR9ZnVuY3Rpb24gb1NlKHQsZSl7dmFyIHI9Rmwub25TdG9wcGVkTm90aWZpY2F0aW9uO3ImJkZ4LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gcih0LGUpfSl9dmFyIFpoLHI3YSxhN2EscXUsczdhLGZDPXUoKCk9PntEYSgpO2ZuKCk7ejAoKTtSeCgpO2lTZSgpO1loKCk7cUJ0KCk7YVNlKCk7cjJlKCk7Wmg9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyKXt2YXIgYT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuaXNTdG9wcGVkPSExLHI/KGEuZGVzdGluYXRpb249cixlMmUocikmJnIuYWRkKGEpKTphLmRlc3RpbmF0aW9uPXM3YSxhfXJldHVybiBpKGUsIlN1YnNjcmliZXIiKSxlLmNyZWF0ZT1mdW5jdGlvbihyLGEscyl7cmV0dXJuIG5ldyBxdShyLGEscyl9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dGhpcy5pc1N0b3BwZWQ/b1NlKEhCdChyKSx0aGlzKTp0aGlzLl9uZXh0KHIpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZD9vU2UoQkJ0KHIpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihyKSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/b1NlKEZCdCx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fY29tcGxldGUoKSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5jbG9zZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLHRoaXMuZGVzdGluYXRpb249bnVsbCl9LGUucHJvdG90eXBlLl9uZXh0PWZ1bmN0aW9uKHIpe3RoaXMuZGVzdGluYXRpb24ubmV4dChyKX0sZS5wcm90b3R5cGUuX2Vycm9yPWZ1bmN0aW9uKHIpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHIpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZS5wcm90b3R5cGUuX2NvbXBsZXRlPWZ1bmN0aW9uKCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LGV9KSh0cykscjdhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO2koblNlLCJiaW5kIik7YTdhPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gaSh0LCJDb25zdW1lck9ic2VydmVyIiksdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLm5leHQpdHJ5e3IubmV4dChlKX1jYXRjaChhKXthMmUoYSl9fSx0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLmVycm9yKXRyeXtyLmVycm9yKGUpfWNhdGNoKGEpe2EyZShhKX1lbHNlIGEyZShlKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2gocil7YTJlKHIpfX0sdH0pKCkscXU9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEscyl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzLG87aWYoYXIocil8fCFyKW89e25leHQ6cj8/dm9pZCAwLGVycm9yOmE/P3ZvaWQgMCxjb21wbGV0ZTpzPz92b2lkIDB9O2Vsc2V7dmFyIGw7biYmRmwudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0PyhsPU9iamVjdC5jcmVhdGUociksbC51bnN1YnNjcmliZT1mdW5jdGlvbigpe3JldHVybiBuLnVuc3Vic2NyaWJlKCl9LG89e25leHQ6ci5uZXh0JiZuU2Uoci5uZXh0LGwpLGVycm9yOnIuZXJyb3ImJm5TZShyLmVycm9yLGwpLGNvbXBsZXRlOnIuY29tcGxldGUmJm5TZShyLmNvbXBsZXRlLGwpfSk6bz1yfXJldHVybiBuLmRlc3RpbmF0aW9uPW5ldyBhN2Eobyksbn1yZXR1cm4gaShlLCJTYWZlU3Vic2NyaWJlciIpLGV9KShaaCk7aShhMmUsImhhbmRsZVVuaGFuZGxlZEVycm9yIik7aShpN2EsImRlZmF1bHRFcnJvckhhbmRsZXIiKTtpKG9TZSwiaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbiIpO3M3YT17Y2xvc2VkOiEwLG5leHQ6QmwsZXJyb3I6aTdhLGNvbXBsZXRlOkJsfX0pO3ZhciBRaCxoQz11KCgpPT57UWg9KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBfMCh0KXtyZXR1cm4gdH12YXIgSHg9dSgoKT0+e2koXzAsImlkZW50aXR5Iil9KTtmdW5jdGlvbiBuN2EoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGxTZSh0KX1mdW5jdGlvbiBsU2UodCl7cmV0dXJuIHQubGVuZ3RoPT09MD9fMDp0Lmxlbmd0aD09PTE/dFswXTppKGZ1bmN0aW9uKHIpe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbihhLHMpe3JldHVybiBzKGEpfSxyKX0sInBpcGVkIil9dmFyIGNTZT11KCgpPT57SHgoKTtpKG43YSwicGlwZSIpO2kobFNlLCJwaXBlRnJvbUFycmF5Iil9KTtmdW5jdGlvbiBqQnQodCl7dmFyIGU7cmV0dXJuKGU9dD8/RmwuUHJvbWlzZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6UHJvbWlzZX1mdW5jdGlvbiBvN2EodCl7cmV0dXJuIHQmJmFyKHQubmV4dCkmJmFyKHQuZXJyb3IpJiZhcih0LmNvbXBsZXRlKX1mdW5jdGlvbiBsN2EodCl7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBaaHx8bzdhKHQpJiZlMmUodCl9dmFyIGxyLFJvPXUoKCk9PntmQygpO3owKCk7aEMoKTtjU2UoKTtSeCgpO2ZuKCk7cjJlKCk7bHI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtlJiYodGhpcy5fc3Vic2NyaWJlPWUpfXJldHVybiBpKHQsIk9ic2VydmFibGUiKSx0LnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKGUpe3ZhciByPW5ldyB0O3JldHVybiByLnNvdXJjZT10aGlzLHIub3BlcmF0b3I9ZSxyfSx0LnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXRoaXMsbj1sN2EoZSk/ZTpuZXcgcXUoZSxyLGEpO3JldHVybiBCeChmdW5jdGlvbigpe3ZhciBvPXMsbD1vLm9wZXJhdG9yLGM9by5zb3VyY2U7bi5hZGQobD9sLmNhbGwobixjKTpjP3MuX3N1YnNjcmliZShuKTpzLl90cnlTdWJzY3JpYmUobikpfSksbn0sdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZT1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIHRoaXMuX3N1YnNjcmliZShlKX1jYXRjaChyKXtlLmVycm9yKHIpfX0sdC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLHIpe3ZhciBhPXRoaXM7cmV0dXJuIHI9akJ0KHIpLG5ldyByKGZ1bmN0aW9uKHMsbil7dmFyIG89bmV3IHF1KHtuZXh0OmkoZnVuY3Rpb24obCl7dHJ5e2UobCl9Y2F0Y2goYyl7bihjKSxvLnVuc3Vic2NyaWJlKCl9fSwibmV4dCIpLGVycm9yOm4sY29tcGxldGU6c30pO2Euc3Vic2NyaWJlKG8pfSl9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dmFyIHI7cmV0dXJuKHI9dGhpcy5zb3VyY2UpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zdWJzY3JpYmUoZSl9LHQucHJvdG90eXBlW1FoXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWVbcl09YXJndW1lbnRzW3JdO3JldHVybiBsU2UoZSkodGhpcyl9LHQucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3JldHVybiBlPWpCdChlKSxuZXcgZShmdW5jdGlvbihhLHMpe3ZhciBuO3Iuc3Vic2NyaWJlKGZ1bmN0aW9uKG8pe3JldHVybiBuPW99LGZ1bmN0aW9uKG8pe3JldHVybiBzKG8pfSxmdW5jdGlvbigpe3JldHVybiBhKG4pfSl9KX0sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0fSkoKTtpKGpCdCwiZ2V0UHJvbWlzZUN0b3IiKTtpKG83YSwiaXNPYnNlcnZlciIpO2kobDdhLCJpc1N1YnNjcmliZXIiKX0pO2Z1bmN0aW9uIGRTZSh0KXtyZXR1cm4gYXIodD8ubGlmdCl9ZnVuY3Rpb24gSnIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKGRTZShlKSlyZXR1cm4gZS5saWZ0KGZ1bmN0aW9uKHIpe3RyeXtyZXR1cm4gdChyLHRoaXMpfWNhdGNoKGEpe3RoaXMuZXJyb3IoYSl9fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIGtzPXUoKCk9PntmbigpO2koZFNlLCJoYXNMaWZ0Iik7aShKciwib3BlcmF0ZSIpfSk7ZnVuY3Rpb24gUnIodCxlLHIsYSxzKXtyZXR1cm4gbmV3IFVCdCh0LGUscixhLHMpfXZhciBVQnQsaG49dSgoKT0+e0RhKCk7ZkMoKTtpKFJyLCJjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIiKTtVQnQ9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEscyxuLG8sbCl7dmFyIGM9dC5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIGMub25GaW5hbGl6ZT1vLGMuc2hvdWxkVW5zdWJzY3JpYmU9bCxjLl9uZXh0PWE/ZnVuY3Rpb24oZCl7dHJ5e2EoZCl9Y2F0Y2goZil7ci5lcnJvcihmKX19OnQucHJvdG90eXBlLl9uZXh0LGMuX2Vycm9yPW4/ZnVuY3Rpb24oZCl7dHJ5e24oZCl9Y2F0Y2goZil7ci5lcnJvcihmKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9lcnJvcixjLl9jb21wbGV0ZT1zP2Z1bmN0aW9uKCl7dHJ5e3MoKX1jYXRjaChkKXtyLmVycm9yKGQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06dC5wcm90b3R5cGUuX2NvbXBsZXRlLGN9cmV0dXJuIGkoZSwiT3BlcmF0b3JTdWJzY3JpYmVyIiksZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgcjtpZighdGhpcy5zaG91bGRVbnN1YnNjcmliZXx8dGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKXt2YXIgYT10aGlzLmNsb3NlZDt0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLCFhJiYoKHI9dGhpcy5vbkZpbmFsaXplKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbCh0aGlzKSl9fSxlfSkoWmgpfSk7ZnVuY3Rpb24gaTJlKCl7cmV0dXJuIEpyKGZ1bmN0aW9uKHQsZSl7dmFyIHI9bnVsbDt0Ll9yZWZDb3VudCsrO3ZhciBhPVJyKGUsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtpZighdHx8dC5fcmVmQ291bnQ8PTB8fDA8LS10Ll9yZWZDb3VudCl7cj1udWxsO3JldHVybn12YXIgcz10Ll9jb25uZWN0aW9uLG49cjtyPW51bGwscyYmKCFufHxzPT09bikmJnMudW5zdWJzY3JpYmUoKSxlLnVuc3Vic2NyaWJlKCl9KTt0LnN1YnNjcmliZShhKSxhLmNsb3NlZHx8KHI9dC5jb25uZWN0KCkpfSl9dmFyIHMyZT11KCgpPT57a3MoKTtobigpO2koaTJlLCJyZWZDb3VudCIpfSk7dmFyIFdCdCxHQnQ9dSgoKT0+e0RhKCk7Um8oKTt6MCgpO3MyZSgpO2huKCk7a3MoKTtXQnQ9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gcy5zb3VyY2U9cixzLnN1YmplY3RGYWN0b3J5PWEscy5fc3ViamVjdD1udWxsLHMuX3JlZkNvdW50PTAscy5fY29ubmVjdGlvbj1udWxsLGRTZShyKSYmKHMubGlmdD1yLmxpZnQpLHN9cmV0dXJuIGkoZSwiQ29ubmVjdGFibGVPYnNlcnZhYmxlIiksZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKHIpfSxlLnByb3RvdHlwZS5nZXRTdWJqZWN0PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fc3ViamVjdDtyZXR1cm4oIXJ8fHIuaXNTdG9wcGVkKSYmKHRoaXMuX3N1YmplY3Q9dGhpcy5zdWJqZWN0RmFjdG9yeSgpKSx0aGlzLl9zdWJqZWN0fSxlLnByb3RvdHlwZS5fdGVhcmRvd249ZnVuY3Rpb24oKXt0aGlzLl9yZWZDb3VudD0wO3ZhciByPXRoaXMuX2Nvbm5lY3Rpb247dGhpcy5fc3ViamVjdD10aGlzLl9jb25uZWN0aW9uPW51bGwscj8udW5zdWJzY3JpYmUoKX0sZS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3ZhciByPXRoaXMsYT10aGlzLl9jb25uZWN0aW9uO2lmKCFhKXthPXRoaXMuX2Nvbm5lY3Rpb249bmV3IHRzO3ZhciBzPXRoaXMuZ2V0U3ViamVjdCgpO2EuYWRkKHRoaXMuc291cmNlLnN1YnNjcmliZShScihzLHZvaWQgMCxmdW5jdGlvbigpe3IuX3RlYXJkb3duKCkscy5jb21wbGV0ZSgpfSxmdW5jdGlvbihuKXtyLl90ZWFyZG93bigpLHMuZXJyb3Iobil9LGZ1bmN0aW9uKCl7cmV0dXJuIHIuX3RlYXJkb3duKCl9KSkpLGEuY2xvc2VkJiYodGhpcy5fY29ubmVjdGlvbj1udWxsLGE9dHMuRU1QVFkpfXJldHVybiBhfSxlLnByb3RvdHlwZS5yZWZDb3VudD1mdW5jdGlvbigpe3JldHVybiBpMmUoKSh0aGlzKX0sZX0pKGxyKX0pO3ZhciB1U2UsWUJ0PXUoKCk9Pnt1U2U9e25vdzppKGZ1bmN0aW9uKCl7cmV0dXJuKHVTZS5kZWxlZ2F0ZXx8cGVyZm9ybWFuY2UpLm5vdygpfSwibm93IiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBtNCxwU2U9dSgoKT0+e0RhKCk7ejAoKTttND17c2NoZWR1bGU6aShmdW5jdGlvbih0KXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUscj1jYW5jZWxBbmltYXRpb25GcmFtZSxhPW00LmRlbGVnYXRlO2EmJihlPWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHI9YS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIHM9ZShmdW5jdGlvbihuKXtyPXZvaWQgMCx0KG4pfSk7cmV0dXJuIG5ldyB0cyhmdW5jdGlvbigpe3JldHVybiByPy4ocyl9KX0sInNjaGVkdWxlIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9bTQuZGVsZWdhdGU7cmV0dXJuKHI/LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsVXMoW10sT2kodCkpKX0sInJlcXVlc3RBbmltYXRpb25GcmFtZSIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9bTQuZGVsZWdhdGU7cmV0dXJuKHI/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLFVzKFtdLE9pKHQpKSl9LCJjYW5jZWxBbmltYXRpb25GcmFtZSIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBjN2EodCl7cmV0dXJuIHQ/S0J0KHQpOmQ3YX1mdW5jdGlvbiBLQnQodCl7cmV0dXJuIG5ldyBscihmdW5jdGlvbihlKXt2YXIgcj10fHx1U2UsYT1yLm5vdygpLHM9MCxuPWkoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KHM9bTQucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKG8pe3M9MDt2YXIgbD1yLm5vdygpO2UubmV4dCh7dGltZXN0YW1wOnQ/bDpvLGVsYXBzZWQ6bC1hfSksbigpfSkpfSwicnVuIik7cmV0dXJuIG4oKSxmdW5jdGlvbigpe3MmJm00LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHMpfX0pfXZhciBkN2EsWkJ0PXUoKCk9PntSbygpO1lCdCgpO3BTZSgpO2koYzdhLCJhbmltYXRpb25GcmFtZXMiKTtpKEtCdCwiYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSIpO2Q3YT1LQnQoKX0pO3ZhciBmU2UsaFNlPXUoKCk9PntIdSgpO2ZTZT1NMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0sIk9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCIpfSl9KTt2YXIgb28sbVNlLHF4PXUoKCk9PntEYSgpO1JvKCk7ejAoKTtoU2UoKTtPeCgpO3IyZSgpO29vPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgcj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuY2xvc2VkPSExLHIuY3VycmVudE9ic2VydmVycz1udWxsLHIub2JzZXJ2ZXJzPVtdLHIuaXNTdG9wcGVkPSExLHIuaGFzRXJyb3I9ITEsci50aHJvd25FcnJvcj1udWxsLHJ9cmV0dXJuIGkoZSwiU3ViamVjdCIpLGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24ocil7dmFyIGE9bmV3IG1TZSh0aGlzLHRoaXMpO3JldHVybiBhLm9wZXJhdG9yPXIsYX0sZS5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgZlNlfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBhPXRoaXM7QngoZnVuY3Rpb24oKXt2YXIgcyxuO2lmKGEuX3Rocm93SWZDbG9zZWQoKSwhYS5pc1N0b3BwZWQpe2EuY3VycmVudE9ic2VydmVyc3x8KGEuY3VycmVudE9ic2VydmVycz1BcnJheS5mcm9tKGEub2JzZXJ2ZXJzKSk7dHJ5e2Zvcih2YXIgbz1ubyhhLmN1cnJlbnRPYnNlcnZlcnMpLGw9by5uZXh0KCk7IWwuZG9uZTtsPW8ubmV4dCgpKXt2YXIgYz1sLnZhbHVlO2MubmV4dChyKX19Y2F0Y2goZCl7cz17ZXJyb3I6ZH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fX19KX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcztCeChmdW5jdGlvbigpe2lmKGEuX3Rocm93SWZDbG9zZWQoKSwhYS5pc1N0b3BwZWQpe2EuaGFzRXJyb3I9YS5pc1N0b3BwZWQ9ITAsYS50aHJvd25FcnJvcj1yO2Zvcih2YXIgcz1hLm9ic2VydmVycztzLmxlbmd0aDspcy5zaGlmdCgpLmVycm9yKHIpfX0pfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7QngoZnVuY3Rpb24oKXtpZihyLl90aHJvd0lmQ2xvc2VkKCksIXIuaXNTdG9wcGVkKXtyLmlzU3RvcHBlZD0hMDtmb3IodmFyIGE9ci5vYnNlcnZlcnM7YS5sZW5ndGg7KWEuc2hpZnQoKS5jb21wbGV0ZSgpfX0pfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuaXNTdG9wcGVkPXRoaXMuY2xvc2VkPSEwLHRoaXMub2JzZXJ2ZXJzPXRoaXMuY3VycmVudE9ic2VydmVycz1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9ic2VydmVkIix7Z2V0OmkoZnVuY3Rpb24oKXt2YXIgcjtyZXR1cm4oKHI9dGhpcy5vYnNlcnZlcnMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5sZW5ndGgpPjB9LCJnZXQiKSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlLmNhbGwodGhpcyxyKX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMociksdGhpcy5faW5uZXJTdWJzY3JpYmUocil9LGUucHJvdG90eXBlLl9pbm5lclN1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgYT10aGlzLHM9dGhpcyxuPXMuaGFzRXJyb3Isbz1zLmlzU3RvcHBlZCxsPXMub2JzZXJ2ZXJzO3JldHVybiBufHxvP3JTZToodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsbC5wdXNoKHIpLG5ldyB0cyhmdW5jdGlvbigpe2EuY3VycmVudE9ic2VydmVycz1udWxsLGoyKGwscil9KSl9LGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHIpe3ZhciBhPXRoaXMscz1hLmhhc0Vycm9yLG49YS50aHJvd25FcnJvcixvPWEuaXNTdG9wcGVkO3M/ci5lcnJvcihuKTpvJiZyLmNvbXBsZXRlKCl9LGUucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciByPW5ldyBscjtyZXR1cm4gci5zb3VyY2U9dGhpcyxyfSxlLmNyZWF0ZT1mdW5jdGlvbihyLGEpe3JldHVybiBuZXcgbVNlKHIsYSl9LGV9KShsciksbVNlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhKXt2YXIgcz10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHMuZGVzdGluYXRpb249cixzLnNvdXJjZT1hLHN9cmV0dXJuIGkoZSwiQW5vbnltb3VzU3ViamVjdCIpLGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGEsczsocz0oYT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEubmV4dCk9PT1udWxsfHxzPT09dm9pZCAwfHxzLmNhbGwoYSxyKX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGEsczsocz0oYT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuZXJyb3IpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGEscil9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHIsYTsoYT0ocj10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuY29tcGxldGUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHIpfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3ZhciBhLHM7cmV0dXJuKHM9KGE9dGhpcy5zb3VyY2UpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5zdWJzY3JpYmUocikpIT09bnVsbCYmcyE9PXZvaWQgMD9zOnJTZX0sZX0pKG9vKX0pO3ZhciBWeCxRQnQ9dSgoKT0+e0RhKCk7cXgoKTtWeD0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKHIpe3ZhciBhPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gYS5fdmFsdWU9cixhfXJldHVybiBpKGUsIkJlaGF2aW9yU3ViamVjdCIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6aShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9LCJnZXQiKSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dmFyIGE9dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMscik7cmV0dXJuIWEuY2xvc2VkJiZyLm5leHQodGhpcy5fdmFsdWUpLGF9LGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxhPXIuaGFzRXJyb3Iscz1yLnRocm93bkVycm9yLG49ci5fdmFsdWU7aWYoYSl0aHJvdyBzO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksbn0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1yKX0sZX0pKG9vKX0pO3ZhciBtQyxnU2U9dSgoKT0+e21DPXtub3c6aShmdW5jdGlvbigpe3JldHVybihtQy5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LCJub3ciKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIGp4LGJTZT11KCgpPT57RGEoKTtxeCgpO2dTZSgpO2p4PShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhLHMpe3I9PT12b2lkIDAmJihyPTEvMCksYT09PXZvaWQgMCYmKGE9MS8wKSxzPT09dm9pZCAwJiYocz1tQyk7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9idWZmZXJTaXplPXIsbi5fd2luZG93VGltZT1hLG4uX3RpbWVzdGFtcFByb3ZpZGVyPXMsbi5fYnVmZmVyPVtdLG4uX2luZmluaXRlVGltZVdpbmRvdz0hMCxuLl9pbmZpbml0ZVRpbWVXaW5kb3c9YT09PTEvMCxuLl9idWZmZXJTaXplPU1hdGgubWF4KDEsciksbi5fd2luZG93VGltZT1NYXRoLm1heCgxLGEpLG59cmV0dXJuIGkoZSwiUmVwbGF5U3ViamVjdCIpLGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcyxzPWEuaXNTdG9wcGVkLG49YS5fYnVmZmVyLG89YS5faW5maW5pdGVUaW1lV2luZG93LGw9YS5fdGltZXN0YW1wUHJvdmlkZXIsYz1hLl93aW5kb3dUaW1lO3N8fChuLnB1c2gociksIW8mJm4ucHVzaChsLm5vdygpK2MpKSx0aGlzLl90cmltQnVmZmVyKCksdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMscil9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGE9dGhpcy5faW5uZXJTdWJzY3JpYmUocikscz10aGlzLG49cy5faW5maW5pdGVUaW1lV2luZG93LG89cy5fYnVmZmVyLGw9by5zbGljZSgpLGM9MDtjPGwubGVuZ3RoJiYhci5jbG9zZWQ7Yys9bj8xOjIpci5uZXh0KGxbY10pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHIpLGF9LGUucHJvdG90eXBlLl90cmltQnVmZmVyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxhPXIuX2J1ZmZlclNpemUscz1yLl90aW1lc3RhbXBQcm92aWRlcixuPXIuX2J1ZmZlcixvPXIuX2luZmluaXRlVGltZVdpbmRvdyxsPShvPzE6MikqYTtpZihhPDEvMCYmbDxuLmxlbmd0aCYmbi5zcGxpY2UoMCxuLmxlbmd0aC1sKSwhbyl7Zm9yKHZhciBjPXMubm93KCksZD0wLGY9MTtmPG4ubGVuZ3RoJiZuW2ZdPD1jO2YrPTIpZD1mO2QmJm4uc3BsaWNlKDAsZCsxKX19LGV9KShvbyl9KTt2YXIgWEJ0LEpCdD11KCgpPT57RGEoKTtxeCgpO1hCdD0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIHI9dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl92YWx1ZT1udWxsLHIuX2hhc1ZhbHVlPSExLHIuX2lzQ29tcGxldGU9ITEscn1yZXR1cm4gaShlLCJBc3luY1N1YmplY3QiKSxlLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcz1mdW5jdGlvbihyKXt2YXIgYT10aGlzLHM9YS5oYXNFcnJvcixuPWEuX2hhc1ZhbHVlLG89YS5fdmFsdWUsbD1hLnRocm93bkVycm9yLGM9YS5pc1N0b3BwZWQsZD1hLl9pc0NvbXBsZXRlO3M/ci5lcnJvcihsKTooY3x8ZCkmJihuJiZyLm5leHQobyksci5jb21wbGV0ZSgpKX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuX3ZhbHVlPXIsdGhpcy5faGFzVmFsdWU9ITApfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXMsYT1yLl9oYXNWYWx1ZSxzPXIuX3ZhbHVlLG49ci5faXNDb21wbGV0ZTtufHwodGhpcy5faXNDb21wbGV0ZT0hMCxhJiZ0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyxzKSx0LnByb3RvdHlwZS5jb21wbGV0ZS5jYWxsKHRoaXMpKX0sZX0pKG9vKX0pO3ZhciB4U2UsZUh0PXUoKCk9PntEYSgpO3owKCk7eFNlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhKXtyZXR1cm4gdC5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiBpKGUsIkFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLHRoaXN9LGV9KSh0cyl9KTt2YXIgZ0MsdEh0PXUoKCk9PntEYSgpO2dDPXtzZXRJbnRlcnZhbDppKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXJbYS0yXT1hcmd1bWVudHNbYV07dmFyIHM9Z0MuZGVsZWdhdGU7cmV0dXJuIHM/LnNldEludGVydmFsP3Muc2V0SW50ZXJ2YWwuYXBwbHkocyxVcyhbdCxlXSxPaShyKSkpOnNldEludGVydmFsLmFwcGx5KHZvaWQgMCxVcyhbdCxlXSxPaShyKSkpfSwic2V0SW50ZXJ2YWwiKSxjbGVhckludGVydmFsOmkoZnVuY3Rpb24odCl7dmFyIGU9Z0MuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKHQpfSwiY2xlYXJJbnRlcnZhbCIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgVTIsVXg9dSgoKT0+e0RhKCk7ZUh0KCk7dEh0KCk7T3goKTtVMj0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKHIsYSl7dmFyIHM9dC5jYWxsKHRoaXMscixhKXx8dGhpcztyZXR1cm4gcy5zY2hlZHVsZXI9cixzLndvcms9YSxzLnBlbmRpbmc9ITEsc31yZXR1cm4gaShlLCJBc3luY0FjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7dmFyIHM7aWYoYT09PXZvaWQgMCYmKGE9MCksdGhpcy5jbG9zZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZT1yO3ZhciBuPXRoaXMuaWQsbz10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbiE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChvLG4sYSkpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWEsdGhpcy5pZD0ocz10aGlzLmlkKSE9PW51bGwmJnMhPT12b2lkIDA/czp0aGlzLnJlcXVlc3RBc3luY0lkKG8sdGhpcy5pZCxhKSx0aGlzfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLGdDLnNldEludGVydmFsKHIuZmx1c2guYmluZChyLHRoaXMpLHMpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7aWYocz09PXZvaWQgMCYmKHM9MCkscyE9bnVsbCYmdGhpcy5kZWxheT09PXMmJnRoaXMucGVuZGluZz09PSExKXJldHVybiBhO2EhPW51bGwmJmdDLmNsZWFySW50ZXJ2YWwoYSl9LGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ocixhKXtpZih0aGlzLmNsb3NlZClyZXR1cm4gbmV3IEVycm9yKCJleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uIik7dGhpcy5wZW5kaW5nPSExO3ZhciBzPXRoaXMuX2V4ZWN1dGUocixhKTtpZihzKXJldHVybiBzO3RoaXMucGVuZGluZz09PSExJiZ0aGlzLmlkIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLHRoaXMuaWQsbnVsbCkpfSxlLnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihyLGEpe3ZhciBzPSExLG47dHJ5e3RoaXMud29yayhyKX1jYXRjaChvKXtzPSEwLG49b3x8bmV3IEVycm9yKCJTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yIil9aWYocylyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLG59LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY2xvc2VkKXt2YXIgcj10aGlzLGE9ci5pZCxzPXIuc2NoZWR1bGVyLG49cy5hY3Rpb25zO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLGoyKG4sdGhpcyksYSE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChzLGEsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sZX0pKHhTZSl9KTtmdW5jdGlvbiBySHQodCl7cmV0dXJuIHQgaW4gbjJlPyhkZWxldGUgbjJlW3RdLCEwKTohMX12YXIgdTdhLHZTZSxuMmUseVNlLGp1cyxhSHQ9dSgoKT0+e3U3YT0xLG4yZT17fTtpKHJIdCwiZmluZEFuZENsZWFySGFuZGxlIik7eVNlPXtzZXRJbW1lZGlhdGU6aShmdW5jdGlvbih0KXt2YXIgZT11N2ErKztyZXR1cm4gbjJlW2VdPSEwLHZTZXx8KHZTZT1Qcm9taXNlLnJlc29sdmUoKSksdlNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gckh0KGUpJiZ0KCl9KSxlfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6aShmdW5jdGlvbih0KXtySHQodCl9LCJjbGVhckltbWVkaWF0ZSIpfSxqdXM9e3BlbmRpbmc6aShmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhuMmUpLmxlbmd0aH0sInBlbmRpbmciKX19KTt2YXIgcDdhLGY3YSxiQyxpSHQ9dSgoKT0+e0RhKCk7YUh0KCk7cDdhPXlTZS5zZXRJbW1lZGlhdGUsZjdhPXlTZS5jbGVhckltbWVkaWF0ZSxiQz17c2V0SW1tZWRpYXRlOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9YkMuZGVsZWdhdGU7cmV0dXJuKHI/LnNldEltbWVkaWF0ZXx8cDdhKS5hcHBseSh2b2lkIDAsVXMoW10sT2kodCkpKX0sInNldEltbWVkaWF0ZSIpLGNsZWFySW1tZWRpYXRlOmkoZnVuY3Rpb24odCl7dmFyIGU9YkMuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW1tZWRpYXRlfHxmN2EpKHQpfSwiY2xlYXJJbW1lZGlhdGUiKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIHdTZSxzSHQ9dSgoKT0+e0RhKCk7VXgoKTtpSHQoKTt3U2U9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzLHIsYSl8fHRoaXM7cmV0dXJuIHMuc2NoZWR1bGVyPXIscy53b3JrPWEsc31yZXR1cm4gaShlLCJBc2FwQWN0aW9uIiksZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3JldHVybiBzPT09dm9pZCAwJiYocz0wKSxzIT09bnVsbCYmcz4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGEscyk6KHIuYWN0aW9ucy5wdXNoKHRoaXMpLHIuX3NjaGVkdWxlZHx8KHIuX3NjaGVkdWxlZD1iQy5zZXRJbW1lZGlhdGUoci5mbHVzaC5iaW5kKHIsdm9pZCAwKSkpKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3ZhciBuO2lmKHM9PT12b2lkIDAmJihzPTApLHMhPW51bGw/cz4wOnRoaXMuZGVsYXk+MClyZXR1cm4gdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLHIsYSxzKTt2YXIgbz1yLmFjdGlvbnM7YSE9bnVsbCYmKChuPW9bby5sZW5ndGgtMV0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5pZCkhPT1hJiYoYkMuY2xlYXJJbW1lZGlhdGUoYSksci5fc2NoZWR1bGVkPT09YSYmKHIuX3NjaGVkdWxlZD12b2lkIDApKX0sZX0pKFUyKX0pO3ZhciB4QyxrU2U9dSgoKT0+e2dTZSgpO3hDPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxyKXtyPT09dm9pZCAwJiYocj10Lm5vdyksdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yPWUsdGhpcy5ub3c9cn1yZXR1cm4gaSh0LCJTY2hlZHVsZXIiKSx0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihlLHIsYSl7cmV0dXJuIHI9PT12b2lkIDAmJihyPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyxlKS5zY2hlZHVsZShhLHIpfSx0Lm5vdz1tQy5ub3csdH0pKCl9KTt2YXIgVzIsV3g9dSgoKT0+e0RhKCk7a1NlKCk7VzI9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEpe2E9PT12b2lkIDAmJihhPXhDLm5vdyk7dmFyIHM9dC5jYWxsKHRoaXMscixhKXx8dGhpcztyZXR1cm4gcy5hY3Rpb25zPVtdLHMuX2FjdGl2ZT0hMSxzfXJldHVybiBpKGUsIkFzeW5jU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcy5hY3Rpb25zO2lmKHRoaXMuX2FjdGl2ZSl7YS5wdXNoKHIpO3JldHVybn12YXIgczt0aGlzLl9hY3RpdmU9ITA7ZG8gaWYocz1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZShyPWEuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHMpe2Zvcig7cj1hLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBzfX0sZX0pKHhDKX0pO3ZhciBTU2Usbkh0PXUoKCk9PntEYSgpO1d4KCk7U1NlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIkFzYXBTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihyKXt0aGlzLl9hY3RpdmU9ITA7dmFyIGE9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7dmFyIHM9dGhpcy5hY3Rpb25zLG47cj1yfHxzLnNoaWZ0KCk7ZG8gaWYobj1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZSgocj1zWzBdKSYmci5pZD09PWEmJnMuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLG4pe2Zvcig7KHI9c1swXSkmJnIuaWQ9PT1hJiZzLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBufX0sZX0pKFcyKX0pO3ZhciBvSHQsaDdhLGxIdD11KCgpPT57c0h0KCk7bkh0KCk7b0h0PW5ldyBTU2Uod1NlKSxoN2E9b0h0fSk7dmFyIEMxLE1TZSxnND11KCgpPT57VXgoKTtXeCgpO0MxPW5ldyBXMihVMiksTVNlPUMxfSk7dmFyIENTZSxjSHQ9dSgoKT0+e0RhKCk7VXgoKTtDU2U9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzLHIsYSl8fHRoaXM7cmV0dXJuIHMuc2NoZWR1bGVyPXIscy53b3JrPWEsc31yZXR1cm4gaShlLCJRdWV1ZUFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLGE+MD90LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMscixhKToodGhpcy5kZWxheT1hLHRoaXMuc3RhdGU9cix0aGlzLnNjaGVkdWxlci5mbHVzaCh0aGlzKSx0aGlzKX0sZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihyLGEpe3JldHVybiBhPjB8fHRoaXMuY2xvc2VkP3QucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLHIsYSk6dGhpcy5fZXhlY3V0ZShyLGEpfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLHMhPW51bGwmJnM+MHx8cz09bnVsbCYmdGhpcy5kZWxheT4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGEscyk6KHIuZmx1c2godGhpcyksMCl9LGV9KShVMil9KTt2YXIgelNlLGRIdD11KCgpPT57RGEoKTtXeCgpO3pTZT0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKCl7cmV0dXJuIHQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gaShlLCJRdWV1ZVNjaGVkdWxlciIpLGV9KShXMil9KTt2YXIgdUh0LG03YSxwSHQ9dSgoKT0+e2NIdCgpO2RIdCgpO3VIdD1uZXcgelNlKENTZSksbTdhPXVIdH0pO3ZhciBfU2UsZkh0PXUoKCk9PntEYSgpO1V4KCk7cFNlKCk7X1NlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhKXt2YXIgcz10LmNhbGwodGhpcyxyLGEpfHx0aGlzO3JldHVybiBzLnNjaGVkdWxlcj1yLHMud29yaz1hLHN9cmV0dXJuIGkoZSwiQW5pbWF0aW9uRnJhbWVBY3Rpb24iKSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLHMhPT1udWxsJiZzPjA/dC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHIsYSxzKTooci5hY3Rpb25zLnB1c2godGhpcyksci5fc2NoZWR1bGVkfHwoci5fc2NoZWR1bGVkPW00LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiByLmZsdXNoKHZvaWQgMCl9KSkpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7dmFyIG47aWYocz09PXZvaWQgMCYmKHM9MCkscyE9bnVsbD9zPjA6dGhpcy5kZWxheT4wKXJldHVybiB0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMscixhLHMpO3ZhciBvPXIuYWN0aW9uczthIT1udWxsJiZhPT09ci5fc2NoZWR1bGVkJiYoKG49b1tvLmxlbmd0aC0xXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmlkKSE9PWEmJihtNC5jYW5jZWxBbmltYXRpb25GcmFtZShhKSxyLl9zY2hlZHVsZWQ9dm9pZCAwKX0sZX0pKFUyKX0pO3ZhciBUU2UsaEh0PXUoKCk9PntEYSgpO1d4KCk7VFNlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIkFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dGhpcy5fYWN0aXZlPSEwO3ZhciBhO3I/YT1yLmlkOihhPXRoaXMuX3NjaGVkdWxlZCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwKTt2YXIgcz10aGlzLmFjdGlvbnMsbjtyPXJ8fHMuc2hpZnQoKTtkbyBpZihuPXIuZXhlY3V0ZShyLnN0YXRlLHIuZGVsYXkpKWJyZWFrO3doaWxlKChyPXNbMF0pJiZyLmlkPT09YSYmcy5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsocj1zWzBdKSYmci5pZD09PWEmJnMuc2hpZnQoKTspci51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlfSkoVzIpfSk7dmFyIG1IdCxnN2EsZ0h0PXUoKCk9PntmSHQoKTtoSHQoKTttSHQ9bmV3IFRTZShfU2UpLGc3YT1tSHR9KTt2YXIgYkh0LExTZSx4SHQ9dSgoKT0+e0RhKCk7VXgoKTt6MCgpO1d4KCk7Ykh0PShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhKXtyPT09dm9pZCAwJiYocj1MU2UpLGE9PT12b2lkIDAmJihhPTEvMCk7dmFyIHM9dC5jYWxsKHRoaXMscixmdW5jdGlvbigpe3JldHVybiBzLmZyYW1lfSl8fHRoaXM7cmV0dXJuIHMubWF4RnJhbWVzPWEscy5mcmFtZT0wLHMuaW5kZXg9LTEsc31yZXR1cm4gaShlLCJWaXJ0dWFsVGltZVNjaGVkdWxlciIpLGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMsYT1yLmFjdGlvbnMscz1yLm1heEZyYW1lcyxuLG87KG89YVswXSkmJm8uZGVsYXk8PXMmJihhLnNoaWZ0KCksdGhpcy5mcmFtZT1vLmRlbGF5LCEobj1vLmV4ZWN1dGUoby5zdGF0ZSxvLmRlbGF5KSkpOyk7aWYobil7Zm9yKDtvPWEuc2hpZnQoKTspby51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlLmZyYW1lVGltZUZhY3Rvcj0xMCxlfSkoVzIpLExTZT0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKHIsYSxzKXtzPT09dm9pZCAwJiYocz1yLmluZGV4Kz0xKTt2YXIgbj10LmNhbGwodGhpcyxyLGEpfHx0aGlzO3JldHVybiBuLnNjaGVkdWxlcj1yLG4ud29yaz1hLG4uaW5kZXg9cyxuLmFjdGl2ZT0hMCxuLmluZGV4PXIuaW5kZXg9cyxufXJldHVybiBpKGUsIlZpcnR1YWxBY3Rpb24iKSxlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGEpe2lmKGE9PT12b2lkIDAmJihhPTApLE51bWJlci5pc0Zpbml0ZShhKSl7aWYoIXRoaXMuaWQpcmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyxyLGEpO3RoaXMuYWN0aXZlPSExO3ZhciBzPW5ldyBlKHRoaXMuc2NoZWR1bGVyLHRoaXMud29yayk7cmV0dXJuIHRoaXMuYWRkKHMpLHMuc2NoZWR1bGUocixhKX1lbHNlIHJldHVybiB0cy5FTVBUWX0sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3M9PT12b2lkIDAmJihzPTApLHRoaXMuZGVsYXk9ci5mcmFtZStzO3ZhciBuPXIuYWN0aW9ucztyZXR1cm4gbi5wdXNoKHRoaXMpLG4uc29ydChlLnNvcnRBY3Rpb25zKSwxfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cz09PXZvaWQgMCYmKHM9MCl9LGUucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHIsYSl7aWYodGhpcy5hY3RpdmU9PT0hMClyZXR1cm4gdC5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLHIsYSl9LGUuc29ydEFjdGlvbnM9ZnVuY3Rpb24ocixhKXtyZXR1cm4gci5kZWxheT09PWEuZGVsYXk/ci5pbmRleD09PWEuaW5kZXg/MDpyLmluZGV4PmEuaW5kZXg/MTotMTpyLmRlbGF5PmEuZGVsYXk/MTotMX0sZX0pKFUyKX0pO2Z1bmN0aW9uIGI3YSh0KXtyZXR1cm4gdD94N2EodCk6bzJlfWZ1bmN0aW9uIHg3YSh0KXtyZXR1cm4gbmV3IGxyKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGUoKX0pfSl9dmFyIG8yZSxsMmU9dSgoKT0+e1JvKCk7bzJlPW5ldyBscihmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSk7aShiN2EsImVtcHR5Iik7aSh4N2EsImVtcHR5U2NoZWR1bGVkIil9KTtmdW5jdGlvbiBjMmUodCl7cmV0dXJuIHQmJmFyKHQuc2NoZWR1bGUpfXZhciBEU2U9dSgoKT0+e2ZuKCk7aShjMmUsImlzU2NoZWR1bGVyIil9KTtmdW5jdGlvbiAkU2UodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gdkh0KHQpe3JldHVybiBhcigkU2UodCkpP3QucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIFQwKHQpe3JldHVybiBjMmUoJFNlKHQpKT90LnBvcCgpOnZvaWQgMH1mdW5jdGlvbiByZnModCxlKXtyZXR1cm4gdHlwZW9mICRTZSh0KT09Im51bWJlciI/dC5wb3AoKTplfXZhciBHeD11KCgpPT57Zm4oKTtEU2UoKTtpKCRTZSwibGFzdCIpO2kodkh0LCJwb3BSZXN1bHRTZWxlY3RvciIpO2koVDAsInBvcFNjaGVkdWxlciIpO2kocmZzLCJwb3BOdW1iZXIiKX0pO3ZhciBZeCxkMmU9dSgoKT0+e1l4PWkoKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIn0pLCJpc0FycmF5TGlrZSIpfSk7ZnVuY3Rpb24gdTJlKHQpe3JldHVybiBhcih0Py50aGVuKX12YXIgQVNlPXUoKCk9PntmbigpO2kodTJlLCJpc1Byb21pc2UiKX0pO2Z1bmN0aW9uIHAyZSh0KXtyZXR1cm4gYXIodFtRaF0pfXZhciBFU2U9dSgoKT0+e2hDKCk7Zm4oKTtpKHAyZSwiaXNJbnRlcm9wT2JzZXJ2YWJsZSIpfSk7ZnVuY3Rpb24gZjJlKHQpe3JldHVybiBTeW1ib2wuYXN5bmNJdGVyYXRvciYmYXIodD8uW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl9dmFyIElTZT11KCgpPT57Zm4oKTtpKGYyZSwiaXNBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBoMmUodCl7cmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiKyh0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiPyJhbiBpbnZhbGlkIG9iamVjdCI6IiciK3QrIiciKSsiIHdoZXJlIGEgc3RyZWFtIHdhcyBleHBlY3RlZC4gWW91IGNhbiBwcm92aWRlIGFuIE9ic2VydmFibGUsIFByb21pc2UsIFJlYWRhYmxlU3RyZWFtLCBBcnJheSwgQXN5bmNJdGVyYWJsZSwgb3IgSXRlcmFibGUuIil9dmFyIFBTZT11KCgpPT57aShoMmUsImNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yIil9KTtmdW5jdGlvbiB2N2EoKXtyZXR1cm4gdHlwZW9mIFN5bWJvbCE9ImZ1bmN0aW9uInx8IVN5bWJvbC5pdGVyYXRvcj8iQEBpdGVyYXRvciI6U3ltYm9sLml0ZXJhdG9yfXZhciBtMmUsTlNlPXUoKCk9PntpKHY3YSwiZ2V0U3ltYm9sSXRlcmF0b3IiKTttMmU9djdhKCl9KTtmdW5jdGlvbiBnMmUodCl7cmV0dXJuIGFyKHQ/LlttMmVdKX12YXIgT1NlPXUoKCk9PntOU2UoKTtmbigpO2koZzJlLCJpc0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBiMmUodCl7cmV0dXJuIEprZSh0aGlzLGFyZ3VtZW50cyxpKGZ1bmN0aW9uKCl7dmFyIHIsYSxzLG47cmV0dXJuIHVDKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyPXQuZ2V0UmVhZGVyKCksby5sYWJlbD0xO2Nhc2UgMTpvLnRyeXMucHVzaChbMSwsOSwxMF0pLG8ubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzQsaDQoci5yZWFkKCkpXTtjYXNlIDM6cmV0dXJuIGE9by5zZW50KCkscz1hLnZhbHVlLG49YS5kb25lLG4/WzQsaDQodm9pZCAwKV06WzMsNV07Y2FzZSA0OnJldHVyblsyLG8uc2VudCgpXTtjYXNlIDU6cmV0dXJuWzQsaDQocyldO2Nhc2UgNjpyZXR1cm5bNCxvLnNlbnQoKV07Y2FzZSA3OnJldHVybiBvLnNlbnQoKSxbMywyXTtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTpyZXR1cm4gci5yZWxlYXNlTG9jaygpLFs3XTtjYXNlIDEwOnJldHVyblsyXX19KX0sInJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3JfMSIpKX1mdW5jdGlvbiB4MmUodCl7cmV0dXJuIGFyKHQ/LmdldFJlYWRlcil9dmFyIHYyZT11KCgpPT57RGEoKTtmbigpO2koYjJlLCJyZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yIik7aSh4MmUsImlzUmVhZGFibGVTdHJlYW1MaWtlIil9KTtmdW5jdGlvbiBsaSh0KXtpZih0IGluc3RhbmNlb2YgbHIpcmV0dXJuIHQ7aWYodCE9bnVsbCl7aWYocDJlKHQpKXJldHVybiB5N2EodCk7aWYoWXgodCkpcmV0dXJuIHc3YSh0KTtpZih1MmUodCkpcmV0dXJuIGs3YSh0KTtpZihmMmUodCkpcmV0dXJuIHlIdCh0KTtpZihnMmUodCkpcmV0dXJuIFM3YSh0KTtpZih4MmUodCkpcmV0dXJuIE03YSh0KX10aHJvdyBoMmUodCl9ZnVuY3Rpb24geTdhKHQpe3JldHVybiBuZXcgbHIoZnVuY3Rpb24oZSl7dmFyIHI9dFtRaF0oKTtpZihhcihyLnN1YnNjcmliZSkpcmV0dXJuIHIuc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX1mdW5jdGlvbiB3N2EodCl7cmV0dXJuIG5ldyBscihmdW5jdGlvbihlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoJiYhZS5jbG9zZWQ7cisrKWUubmV4dCh0W3JdKTtlLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBrN2EodCl7cmV0dXJuIG5ldyBscihmdW5jdGlvbihlKXt0LnRoZW4oZnVuY3Rpb24ocil7ZS5jbG9zZWR8fChlLm5leHQociksZS5jb21wbGV0ZSgpKX0sZnVuY3Rpb24ocil7cmV0dXJuIGUuZXJyb3Iocil9KS50aGVuKG51bGwsdDJlKX0pfWZ1bmN0aW9uIFM3YSh0KXtyZXR1cm4gbmV3IGxyKGZ1bmN0aW9uKGUpe3ZhciByLGE7dHJ5e2Zvcih2YXIgcz1ubyh0KSxuPXMubmV4dCgpOyFuLmRvbmU7bj1zLm5leHQoKSl7dmFyIG89bi52YWx1ZTtpZihlLm5leHQobyksZS5jbG9zZWQpcmV0dXJufX1jYXRjaChsKXtyPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYoYT1zLnJldHVybikmJmEuY2FsbChzKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24geUh0KHQpe3JldHVybiBuZXcgbHIoZnVuY3Rpb24oZSl7QzdhKHQsZSkuY2F0Y2goZnVuY3Rpb24ocil7cmV0dXJuIGUuZXJyb3Iocil9KX0pfWZ1bmN0aW9uIE03YSh0KXtyZXR1cm4geUh0KGIyZSh0KSl9ZnVuY3Rpb24gQzdhKHQsZSl7dmFyIHIsYSxzLG47cmV0dXJuIFhrZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxsO3JldHVybiB1Qyh0aGlzLGZ1bmN0aW9uKGMpe3N3aXRjaChjLmxhYmVsKXtjYXNlIDA6Yy50cnlzLnB1c2goWzAsNSw2LDExXSkscj1lU2UodCksYy5sYWJlbD0xO2Nhc2UgMTpyZXR1cm5bNCxyLm5leHQoKV07Y2FzZSAyOmlmKGE9Yy5zZW50KCksISFhLmRvbmUpcmV0dXJuWzMsNF07aWYobz1hLnZhbHVlLGUubmV4dChvKSxlLmNsb3NlZClyZXR1cm5bMl07Yy5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMywxXTtjYXNlIDQ6cmV0dXJuWzMsMTFdO2Nhc2UgNTpyZXR1cm4gbD1jLnNlbnQoKSxzPXtlcnJvcjpsfSxbMywxMV07Y2FzZSA2OnJldHVybiBjLnRyeXMucHVzaChbNiwsOSwxMF0pLGEmJiFhLmRvbmUmJihuPXIucmV0dXJuKT9bNCxuLmNhbGwocildOlszLDhdO2Nhc2UgNzpjLnNlbnQoKSxjLmxhYmVsPTg7Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6aWYocyl0aHJvdyBzLmVycm9yO3JldHVybls3XTtjYXNlIDEwOnJldHVybls3XTtjYXNlIDExOnJldHVybiBlLmNvbXBsZXRlKCksWzJdfX0pfSl9dmFyIFoxPXUoKCk9PntEYSgpO2QyZSgpO0FTZSgpO1JvKCk7RVNlKCk7SVNlKCk7UFNlKCk7T1NlKCk7djJlKCk7Zm4oKTtpU2UoKTtoQygpO2kobGksImlubmVyRnJvbSIpO2koeTdhLCJmcm9tSW50ZXJvcE9ic2VydmFibGUiKTtpKHc3YSwiZnJvbUFycmF5TGlrZSIpO2koazdhLCJmcm9tUHJvbWlzZSIpO2koUzdhLCJmcm9tSXRlcmFibGUiKTtpKHlIdCwiZnJvbUFzeW5jSXRlcmFibGUiKTtpKE03YSwiZnJvbVJlYWRhYmxlU3RyZWFtTGlrZSIpO2koQzdhLCJwcm9jZXNzIil9KTtmdW5jdGlvbiBXcyh0LGUscixhLHMpe2E9PT12b2lkIDAmJihhPTApLHM9PT12b2lkIDAmJihzPSExKTt2YXIgbj1lLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cigpLHM/dC5hZGQodGhpcy5zY2hlZHVsZShudWxsLGEpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGEpO2lmKHQuYWRkKG4pLCFzKXJldHVybiBufXZhciBWdT11KCgpPT57aShXcywiZXhlY3V0ZVNjaGVkdWxlIil9KTtmdW5jdGlvbiBLeCh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0wKSxKcihmdW5jdGlvbihyLGEpe3Iuc3Vic2NyaWJlKFJyKGEsZnVuY3Rpb24ocyl7cmV0dXJuIFdzKGEsdCxmdW5jdGlvbigpe3JldHVybiBhLm5leHQocyl9LGUpfSxmdW5jdGlvbigpe3JldHVybiBXcyhhLHQsZnVuY3Rpb24oKXtyZXR1cm4gYS5jb21wbGV0ZSgpfSxlKX0sZnVuY3Rpb24ocyl7cmV0dXJuIFdzKGEsdCxmdW5jdGlvbigpe3JldHVybiBhLmVycm9yKHMpfSxlKX0pKX0pfXZhciB2Qz11KCgpPT57VnUoKTtrcygpO2huKCk7aShLeCwib2JzZXJ2ZU9uIil9KTtmdW5jdGlvbiBaeCh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0wKSxKcihmdW5jdGlvbihyLGEpe2EuYWRkKHQuc2NoZWR1bGUoZnVuY3Rpb24oKXtyZXR1cm4gci5zdWJzY3JpYmUoYSl9LGUpKX0pfXZhciB5Qz11KCgpPT57a3MoKTtpKFp4LCJzdWJzY3JpYmVPbiIpfSk7ZnVuY3Rpb24gd0h0KHQsZSl7cmV0dXJuIGxpKHQpLnBpcGUoWngoZSksS3goZSkpfXZhciBrSHQ9dSgoKT0+e1oxKCk7dkMoKTt5QygpO2kod0h0LCJzY2hlZHVsZU9ic2VydmFibGUiKX0pO2Z1bmN0aW9uIFNIdCh0LGUpe3JldHVybiBsaSh0KS5waXBlKFp4KGUpLEt4KGUpKX12YXIgTUh0PXUoKCk9PntaMSgpO3ZDKCk7eUMoKTtpKFNIdCwic2NoZWR1bGVQcm9taXNlIil9KTtmdW5jdGlvbiBDSHQodCxlKXtyZXR1cm4gbmV3IGxyKGZ1bmN0aW9uKHIpe3ZhciBhPTA7cmV0dXJuIGUuc2NoZWR1bGUoZnVuY3Rpb24oKXthPT09dC5sZW5ndGg/ci5jb21wbGV0ZSgpOihyLm5leHQodFthKytdKSxyLmNsb3NlZHx8dGhpcy5zY2hlZHVsZSgpKX0pfSl9dmFyIHpIdD11KCgpPT57Um8oKTtpKENIdCwic2NoZWR1bGVBcnJheSIpfSk7ZnVuY3Rpb24gX0h0KHQsZSl7cmV0dXJuIG5ldyBscihmdW5jdGlvbihyKXt2YXIgYTtyZXR1cm4gV3MocixlLGZ1bmN0aW9uKCl7YT10W20yZV0oKSxXcyhyLGUsZnVuY3Rpb24oKXt2YXIgcyxuLG87dHJ5e3M9YS5uZXh0KCksbj1zLnZhbHVlLG89cy5kb25lfWNhdGNoKGwpe3IuZXJyb3IobCk7cmV0dXJufW8/ci5jb21wbGV0ZSgpOnIubmV4dChuKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBhcihhPy5yZXR1cm4pJiZhLnJldHVybigpfX0pfXZhciBUSHQ9dSgoKT0+e1JvKCk7TlNlKCk7Zm4oKTtWdSgpO2koX0h0LCJzY2hlZHVsZUl0ZXJhYmxlIil9KTtmdW5jdGlvbiB5MmUodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyBscihmdW5jdGlvbihyKXtXcyhyLGUsZnVuY3Rpb24oKXt2YXIgYT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO1dzKHIsZSxmdW5jdGlvbigpe2EubmV4dCgpLnRoZW4oZnVuY3Rpb24ocyl7cy5kb25lP3IuY29tcGxldGUoKTpyLm5leHQocy52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBSU2U9dSgoKT0+e1JvKCk7VnUoKTtpKHkyZSwic2NoZWR1bGVBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBMSHQodCxlKXtyZXR1cm4geTJlKGIyZSh0KSxlKX12YXIgREh0PXUoKCk9PntSU2UoKTt2MmUoKTtpKExIdCwic2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UiKX0pO2Z1bmN0aW9uIEZTZSh0LGUpe2lmKHQhPW51bGwpe2lmKHAyZSh0KSlyZXR1cm4gd0h0KHQsZSk7aWYoWXgodCkpcmV0dXJuIENIdCh0LGUpO2lmKHUyZSh0KSlyZXR1cm4gU0h0KHQsZSk7aWYoZjJlKHQpKXJldHVybiB5MmUodCxlKTtpZihnMmUodCkpcmV0dXJuIF9IdCh0LGUpO2lmKHgyZSh0KSlyZXR1cm4gTEh0KHQsZSl9dGhyb3cgaDJlKHQpfXZhciBCU2U9dSgoKT0+e2tIdCgpO01IdCgpO3pIdCgpO1RIdCgpO1JTZSgpO0VTZSgpO0FTZSgpO2QyZSgpO09TZSgpO0lTZSgpO1BTZSgpO3YyZSgpO0RIdCgpO2koRlNlLCJzY2hlZHVsZWQiKX0pO2Z1bmN0aW9uIEwwKHQsZSl7cmV0dXJuIGU/RlNlKHQsZSk6bGkodCl9dmFyIHdDPXUoKCk9PntCU2UoKTtaMSgpO2koTDAsImZyb20iKX0pO2Z1bmN0aW9uIFhoKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciByPVQwKHQpO3JldHVybiBMMCh0LHIpfXZhciBIU2U9dSgoKT0+e0d4KCk7d0MoKTtpKFhoLCJvZiIpfSk7ZnVuY3Rpb24gcVNlKHQsZSl7dmFyIHI9YXIodCk/dDpmdW5jdGlvbigpe3JldHVybiB0fSxhPWkoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZXJyb3IocigpKX0sImluaXQiKTtyZXR1cm4gbmV3IGxyKGU/ZnVuY3Rpb24ocyl7cmV0dXJuIGUuc2NoZWR1bGUoYSwwLHMpfTphKX12YXIgVlNlPXUoKCk9PntSbygpO2ZuKCk7aShxU2UsInRocm93RXJyb3IiKX0pO2Z1bmN0aW9uIHo3YSh0LGUpe3ZhciByLGEscyxuPXQsbz1uLmtpbmQsbD1uLnZhbHVlLGM9bi5lcnJvcjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7bz09PSJOIj8ocj1lLm5leHQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGUsbCk6bz09PSJFIj8oYT1lLmVycm9yKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChlLGMpOihzPWUuY29tcGxldGUpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGUpfXZhciBqU2UsJEh0LEFIdD11KCgpPT57bDJlKCk7SFNlKCk7VlNlKCk7Zm4oKTsoZnVuY3Rpb24odCl7dC5ORVhUPSJOIix0LkVSUk9SPSJFIix0LkNPTVBMRVRFPSJDIn0pKGpTZXx8KGpTZT17fSkpOyRIdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUscixhKXt0aGlzLmtpbmQ9ZSx0aGlzLnZhbHVlPXIsdGhpcy5lcnJvcj1hLHRoaXMuaGFzVmFsdWU9ZT09PSJOIn1yZXR1cm4gaSh0LCJOb3RpZmljYXRpb24iKSx0LnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKGUpe3JldHVybiB6N2EodGhpcyxlKX0sdC5wcm90b3R5cGUuZG89ZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXRoaXMsbj1zLmtpbmQsbz1zLnZhbHVlLGw9cy5lcnJvcjtyZXR1cm4gbj09PSJOIj9lPy4obyk6bj09PSJFIj9yPy4obCk6YT8uKCl9LHQucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbihlLHIsYSl7dmFyIHM7cmV0dXJuIGFyKChzPWUpPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy5uZXh0KT90aGlzLm9ic2VydmUoZSk6dGhpcy5kbyhlLHIsYSl9LHQucHJvdG90eXBlLnRvT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMscj1lLmtpbmQsYT1lLnZhbHVlLHM9ZS5lcnJvcixuPXI9PT0iTiI/WGgoYSk6cj09PSJFIj9xU2UoZnVuY3Rpb24oKXtyZXR1cm4gc30pOnI9PT0iQyI/bzJlOjA7aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiK3IpO3JldHVybiBufSx0LmNyZWF0ZU5leHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJOIixlKX0sdC5jcmVhdGVFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoIkUiLHZvaWQgMCxlKX0sdC5jcmVhdGVDb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0LmNvbXBsZXRlTm90aWZpY2F0aW9ufSx0LmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyB0KCJDIiksdH0pKCk7aSh6N2EsIm9ic2VydmVOb3RpZmljYXRpb24iKX0pO3ZhciBFSHQ9dSgoKT0+e30pO3ZhciBfN2EsSUh0PXUoKCk9PntIdSgpO183YT1NMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn0sIkVtcHR5RXJyb3JJbXBsIil9KX0pO3ZhciBQSHQ9dSgoKT0+e30pO3ZhciBOSHQ9dSgoKT0+e30pO3ZhciBUN2EsT0h0PXUoKCk9PntIdSgpO1Q3YT1NMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJBcmd1bWVudE91dE9mUmFuZ2VFcnJvciIsdGhpcy5tZXNzYWdlPSJhcmd1bWVudCBvdXQgb2YgcmFuZ2UifSwiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsIil9KX0pO3ZhciBMN2EsUkh0PXUoKCk9PntIdSgpO0w3YT1NMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbihyKXt0KHRoaXMpLHRoaXMubmFtZT0iTm90Rm91bmRFcnJvciIsdGhpcy5tZXNzYWdlPXJ9LCJOb3RGb3VuZEVycm9ySW1wbCIpfSl9KTt2YXIgRDdhLEZIdD11KCgpPT57SHUoKTtEN2E9TTEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7dCh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1yfSwiU2VxdWVuY2VFcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gdzJlKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKHQpfXZhciBVU2U9dSgoKT0+e2kodzJlLCJpc1ZhbGlkRGF0ZSIpfSk7ZnVuY3Rpb24gSEh0KHQsZSl7dmFyIHI9dzJlKHQpP3tmaXJzdDp0fTp0eXBlb2YgdD09Im51bWJlciI/e2VhY2g6dH06dCxhPXIuZmlyc3Qscz1yLmVhY2gsbj1yLndpdGgsbz1uPT09dm9pZCAwPyQ3YTpuLGw9ci5zY2hlZHVsZXIsYz1sPT09dm9pZCAwP2U/P0MxOmwsZD1yLm1ldGEsZj1kPT09dm9pZCAwP251bGw6ZDtpZihhPT1udWxsJiZzPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIEpyKGZ1bmN0aW9uKHAsaCl7dmFyIG0sdixiPW51bGwsZz0wLHk9aShmdW5jdGlvbihrKXt2PVdzKGgsYyxmdW5jdGlvbigpe3RyeXttLnVuc3Vic2NyaWJlKCksbGkobyh7bWV0YTpmLGxhc3RWYWx1ZTpiLHNlZW46Z30pKS5zdWJzY3JpYmUoaCl9Y2F0Y2goTSl7aC5lcnJvcihNKX19LGspfSwic3RhcnRUaW1lciIpO209cC5zdWJzY3JpYmUoUnIoaCxmdW5jdGlvbihrKXt2Py51bnN1YnNjcmliZSgpLGcrKyxoLm5leHQoYj1rKSxzPjAmJnkocyl9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2Py5jbG9zZWR8fHY/LnVuc3Vic2NyaWJlKCksYj1udWxsfSkpLCFnJiZ5KGEhPW51bGw/dHlwZW9mIGE9PSJudW1iZXIiP2E6K2EtYy5ub3coKTpzKX0pfWZ1bmN0aW9uICQ3YSh0KXt0aHJvdyBuZXcgQkh0KHQpfXZhciBCSHQsazJlPXUoKCk9PntnNCgpO1VTZSgpO2tzKCk7WjEoKTtIdSgpO2huKCk7VnUoKTtCSHQ9TTEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7cj09PXZvaWQgMCYmKHI9bnVsbCksdCh0aGlzKSx0aGlzLm1lc3NhZ2U9IlRpbWVvdXQgaGFzIG9jY3VycmVkIix0aGlzLm5hbWU9IlRpbWVvdXRFcnJvciIsdGhpcy5pbmZvPXJ9LCJUaW1lb3V0RXJyb3JJbXBsIil9KTtpKEhIdCwidGltZW91dCIpO2koJDdhLCJ0aW1lb3V0RXJyb3JGYWN0b3J5Iil9KTtmdW5jdGlvbiBEMCh0LGUpe3JldHVybiBKcihmdW5jdGlvbihyLGEpe3ZhciBzPTA7ci5zdWJzY3JpYmUoUnIoYSxmdW5jdGlvbihuKXthLm5leHQodC5jYWxsKGUsbixzKyspKX0pKX0pfXZhciBrQz11KCgpPT57a3MoKTtobigpO2koRDAsIm1hcCIpfSk7ZnVuY3Rpb24gRTdhKHQsZSl7cmV0dXJuIEE3YShlKT90LmFwcGx5KHZvaWQgMCxVcyhbXSxPaShlKSkpOnQoZSl9ZnVuY3Rpb24gUzJlKHQpe3JldHVybiBEMChmdW5jdGlvbihlKXtyZXR1cm4gRTdhKHQsZSl9KX12YXIgQTdhLFdTZT11KCgpPT57RGEoKTtrQygpO0E3YT1BcnJheS5pc0FycmF5O2koRTdhLCJjYWxsT3JBcHBseSIpO2koUzJlLCJtYXBPbmVPck1hbnlBcmdzIil9KTt2YXIgcUh0PXUoKCk9Pnt9KTt2YXIgVkh0PXUoKCk9Pnt9KTtmdW5jdGlvbiBqSHQodCl7aWYodC5sZW5ndGg9PT0xKXt2YXIgZT10WzBdO2lmKEk3YShlKSlyZXR1cm57YXJnczplLGtleXM6bnVsbH07aWYoUjdhKGUpKXt2YXIgcj1PN2EoZSk7cmV0dXJue2FyZ3M6ci5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV19KSxrZXlzOnJ9fX1yZXR1cm57YXJnczp0LGtleXM6bnVsbH19ZnVuY3Rpb24gUjdhKHQpe3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCImJlA3YSh0KT09PU43YX12YXIgSTdhLFA3YSxON2EsTzdhLFVIdD11KCgpPT57STdhPUFycmF5LmlzQXJyYXksUDdhPU9iamVjdC5nZXRQcm90b3R5cGVPZixON2E9T2JqZWN0LnByb3RvdHlwZSxPN2E9T2JqZWN0LmtleXM7aShqSHQsImFyZ3NBcmdBcnJheU9yT2JqZWN0Iik7aShSN2EsImlzUE9KTyIpfSk7ZnVuY3Rpb24gV0h0KHQsZSl7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHIsYSxzKXtyZXR1cm4gclthXT1lW3NdLHJ9LHt9KX12YXIgR0h0PXUoKCk9PntpKFdIdCwiY3JlYXRlT2JqZWN0Iil9KTtmdW5jdGlvbiBHU2UoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9VDAodCksYT12SHQodCkscz1qSHQodCksbj1zLmFyZ3Msbz1zLmtleXM7aWYobi5sZW5ndGg9PT0wKXJldHVybiBMMChbXSxyKTt2YXIgbD1uZXcgbHIoRjdhKG4scixvP2Z1bmN0aW9uKGMpe3JldHVybiBXSHQobyxjKX06XzApKTtyZXR1cm4gYT9sLnBpcGUoUzJlKGEpKTpsfWZ1bmN0aW9uIEY3YSh0LGUscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPV8wKSxmdW5jdGlvbihhKXtZSHQoZSxmdW5jdGlvbigpe2Zvcih2YXIgcz10Lmxlbmd0aCxuPW5ldyBBcnJheShzKSxvPXMsbD1zLGM9aShmdW5jdGlvbihmKXtZSHQoZSxmdW5jdGlvbigpe3ZhciBwPUwwKHRbZl0sZSksaD0hMTtwLnN1YnNjcmliZShScihhLGZ1bmN0aW9uKG0pe25bZl09bSxofHwoaD0hMCxsLS0pLGx8fGEubmV4dChyKG4uc2xpY2UoKSkpfSxmdW5jdGlvbigpey0tb3x8YS5jb21wbGV0ZSgpfSkpfSxhKX0sIl9sb29wXzEiKSxkPTA7ZDxzO2QrKyljKGQpfSxhKX19ZnVuY3Rpb24gWUh0KHQsZSxyKXt0P1dzKHIsdCxlKTplKCl9dmFyIEtIdD11KCgpPT57Um8oKTtVSHQoKTt3QygpO0h4KCk7V1NlKCk7R3goKTtHSHQoKTtobigpO1Z1KCk7aShHU2UsImNvbWJpbmVMYXRlc3QiKTtpKEY3YSwiY29tYmluZUxhdGVzdEluaXQiKTtpKFlIdCwibWF5YmVTY2hlZHVsZSIpfSk7ZnVuY3Rpb24gWkh0KHQsZSxyLGEscyxuLG8sbCl7dmFyIGM9W10sZD0wLGY9MCxwPSExLGg9aShmdW5jdGlvbigpe3AmJiFjLmxlbmd0aCYmIWQmJmUuY29tcGxldGUoKX0sImNoZWNrQ29tcGxldGUiKSxtPWkoZnVuY3Rpb24oYil7cmV0dXJuIGQ8YT92KGIpOmMucHVzaChiKX0sIm91dGVyTmV4dCIpLHY9aShmdW5jdGlvbihiKXtuJiZlLm5leHQoYiksZCsrO3ZhciBnPSExO2xpKHIoYixmKyspKS5zdWJzY3JpYmUoUnIoZSxmdW5jdGlvbih5KXtzPy4oeSksbj9tKHkpOmUubmV4dCh5KX0sZnVuY3Rpb24oKXtnPSEwfSx2b2lkIDAsZnVuY3Rpb24oKXtpZihnKXRyeXtkLS07Zm9yKHZhciB5PWkoZnVuY3Rpb24oKXt2YXIgaz1jLnNoaWZ0KCk7bz9XcyhlLG8sZnVuY3Rpb24oKXtyZXR1cm4gdihrKX0pOnYoayl9LCJfbG9vcF8xIik7Yy5sZW5ndGgmJmQ8YTspeSgpO2goKX1jYXRjaChrKXtlLmVycm9yKGspfX0pKX0sImRvSW5uZXJTdWIiKTtyZXR1cm4gdC5zdWJzY3JpYmUoUnIoZSxtLGZ1bmN0aW9uKCl7cD0hMCxoKCl9KSksZnVuY3Rpb24oKXtsPy4oKX19dmFyIFFIdD11KCgpPT57WjEoKTtWdSgpO2huKCk7aShaSHQsIm1lcmdlSW50ZXJuYWxzIil9KTtmdW5jdGlvbiBKaCh0LGUscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPTEvMCksYXIoZSk/SmgoZnVuY3Rpb24oYSxzKXtyZXR1cm4gRDAoZnVuY3Rpb24obixvKXtyZXR1cm4gZShhLG4scyxvKX0pKGxpKHQoYSxzKSkpfSxyKToodHlwZW9mIGU9PSJudW1iZXIiJiYocj1lKSxKcihmdW5jdGlvbihhLHMpe3JldHVybiBaSHQoYSxzLHQscil9KSl9dmFyIFNDPXUoKCk9PntrQygpO1oxKCk7a3MoKTtRSHQoKTtmbigpO2koSmgsIm1lcmdlTWFwIil9KTtmdW5jdGlvbiBNMmUodCl7cmV0dXJuIHQ9PT12b2lkIDAmJih0PTEvMCksSmgoXzAsdCl9dmFyIEMyZT11KCgpPT57U0MoKTtIeCgpO2koTTJlLCJtZXJnZUFsbCIpfSk7ZnVuY3Rpb24gejJlKCl7cmV0dXJuIE0yZSgxKX12YXIgXzJlPXUoKCk9PntDMmUoKTtpKHoyZSwiY29uY2F0QWxsIil9KTtmdW5jdGlvbiBUMmUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIHoyZSgpKEwwKHQsVDAodCkpKX12YXIgWVNlPXUoKCk9PntfMmUoKTtHeCgpO3dDKCk7aShUMmUsImNvbmNhdCIpfSk7dmFyIFhIdD11KCgpPT57fSk7dmFyIEpIdD11KCgpPT57fSk7dmFyIGVxdD11KCgpPT57fSk7ZnVuY3Rpb24gZTYodCxlLHIsYSl7aWYoYXIocikmJihhPXIscj12b2lkIDApLGEpcmV0dXJuIGU2KHQsZSxyKS5waXBlKFMyZShhKSk7dmFyIHM9T2koVTdhKHQpP0g3YS5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiB0W2xdKGUsYyxyKX19KTpWN2EodCk/QjdhLm1hcCh0cXQodCxlKSk6ajdhKHQpP3E3YS5tYXAodHF0KHQsZSkpOltdLDIpLG49c1swXSxvPXNbMV07aWYoIW4mJll4KHQpKXJldHVybiBKaChmdW5jdGlvbihsKXtyZXR1cm4gZTYobCxlLHIpfSkobGkodCkpO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBscihmdW5jdGlvbihsKXt2YXIgYz1pKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPVtdLGY9MDtmPGFyZ3VtZW50cy5sZW5ndGg7ZisrKWRbZl09YXJndW1lbnRzW2ZdO3JldHVybiBsLm5leHQoMTxkLmxlbmd0aD9kOmRbMF0pfSwiaGFuZGxlciIpO3JldHVybiBuKGMpLGZ1bmN0aW9uKCl7cmV0dXJuIG8oYyl9fSl9ZnVuY3Rpb24gdHF0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gdFtyXShlLGEpfX19ZnVuY3Rpb24gVjdhKHQpe3JldHVybiBhcih0LmFkZExpc3RlbmVyKSYmYXIodC5yZW1vdmVMaXN0ZW5lcil9ZnVuY3Rpb24gajdhKHQpe3JldHVybiBhcih0Lm9uKSYmYXIodC5vZmYpfWZ1bmN0aW9uIFU3YSh0KXtyZXR1cm4gYXIodC5hZGRFdmVudExpc3RlbmVyKSYmYXIodC5yZW1vdmVFdmVudExpc3RlbmVyKX12YXIgQjdhLEg3YSxxN2EscnF0PXUoKCk9PntEYSgpO1oxKCk7Um8oKTtTQygpO2QyZSgpO2ZuKCk7V1NlKCk7QjdhPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLEg3YT1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0scTdhPVsib24iLCJvZmYiXTtpKGU2LCJmcm9tRXZlbnQiKTtpKHRxdCwidG9Db21tb25IYW5kbGVyUmVnaXN0cnkiKTtpKFY3YSwiaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIiKTtpKGo3YSwiaXNKUXVlcnlTdHlsZUV2ZW50RW1pdHRlciIpO2koVTdhLCJpc0V2ZW50VGFyZ2V0Iil9KTt2YXIgYXF0PXUoKCk9Pnt9KTt2YXIgaXF0PXUoKCk9Pnt9KTt2YXIgc3F0PXUoKCk9Pnt9KTtmdW5jdGlvbiBNQyh0LGUscil7dD09PXZvaWQgMCYmKHQ9MCkscj09PXZvaWQgMCYmKHI9TVNlKTt2YXIgYT0tMTtyZXR1cm4gZSE9bnVsbCYmKGMyZShlKT9yPWU6YT1lKSxuZXcgbHIoZnVuY3Rpb24ocyl7dmFyIG49dzJlKHQpPyt0LXIubm93KCk6dDtuPDAmJihuPTApO3ZhciBvPTA7cmV0dXJuIHIuc2NoZWR1bGUoZnVuY3Rpb24oKXtzLmNsb3NlZHx8KHMubmV4dChvKyspLDA8PWE/dGhpcy5zY2hlZHVsZSh2b2lkIDAsYSk6cy5jb21wbGV0ZSgpKX0sbil9KX12YXIgTDJlPXUoKCk9PntSbygpO2c0KCk7RFNlKCk7VVNlKCk7aShNQywidGltZXIiKX0pO2Z1bmN0aW9uIEtTZSh0LGUpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSxlPT09dm9pZCAwJiYoZT1DMSksdDwwJiYodD0wKSxNQyh0LHQsZSl9dmFyIG5xdD11KCgpPT57ZzQoKTtMMmUoKTtpKEtTZSwiaW50ZXJ2YWwiKX0pO3ZhciBvcXQ9dSgoKT0+e30pO2Z1bmN0aW9uIFc3YSgpe3JldHVybiBscXR9dmFyIGxxdCxaU2U9dSgoKT0+e1JvKCk7WWgoKTtscXQ9bmV3IGxyKEJsKTtpKFc3YSwibmV2ZXIiKX0pO3ZhciBjcXQ9dSgoKT0+e30pO3ZhciBkcXQ9dSgoKT0+e30pO2Z1bmN0aW9uIEQyZSh0LGUpe3JldHVybiBKcihmdW5jdGlvbihyLGEpe3ZhciBzPTA7ci5zdWJzY3JpYmUoUnIoYSxmdW5jdGlvbihuKXtyZXR1cm4gdC5jYWxsKGUsbixzKyspJiZhLm5leHQobil9KSl9KX12YXIgUVNlPXUoKCk9PntrcygpO2huKCk7aShEMmUsImZpbHRlciIpfSk7dmFyIHVxdD11KCgpPT57fSk7dmFyIHBxdD11KCgpPT57fSk7dmFyIGZxdD11KCgpPT57fSk7dmFyIGhxdD11KCgpPT57fSk7dmFyIG1xdD11KCgpPT57fSk7dmFyIGdxdD11KCgpPT57fSk7dmFyIFhTZT11KCgpPT57fSk7dmFyIEpTZT11KCgpPT57fSk7ZnVuY3Rpb24gJDJlKHQpe3JldHVybiBKcihmdW5jdGlvbihlLHIpe3ZhciBhPVtdO3JldHVybiBlLnN1YnNjcmliZShScihyLGZ1bmN0aW9uKHMpe3JldHVybiBhLnB1c2gocyl9LGZ1bmN0aW9uKCl7ci5uZXh0KGEpLHIuY29tcGxldGUoKX0pKSxsaSh0KS5zdWJzY3JpYmUoUnIocixmdW5jdGlvbigpe3ZhciBzPWE7YT1bXSxyLm5leHQocyl9LEJsKSksZnVuY3Rpb24oKXthPW51bGx9fSl9dmFyIGVNZT11KCgpPT57a3MoKTtZaCgpO2huKCk7WjEoKTtpKCQyZSwiYnVmZmVyIil9KTtmdW5jdGlvbiBBMmUodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9bnVsbCksZT1lPz90LEpyKGZ1bmN0aW9uKHIsYSl7dmFyIHM9W10sbj0wO3Iuc3Vic2NyaWJlKFJyKGEsZnVuY3Rpb24obyl7dmFyIGwsYyxkLGYscD1udWxsO24rKyVlPT09MCYmcy5wdXNoKFtdKTt0cnl7Zm9yKHZhciBoPW5vKHMpLG09aC5uZXh0KCk7IW0uZG9uZTttPWgubmV4dCgpKXt2YXIgdj1tLnZhbHVlO3YucHVzaChvKSx0PD12Lmxlbmd0aCYmKHA9cD8/W10scC5wdXNoKHYpKX19Y2F0Y2goeSl7bD17ZXJyb3I6eX19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKGM9aC5yZXR1cm4pJiZjLmNhbGwoaCl9ZmluYWxseXtpZihsKXRocm93IGwuZXJyb3J9fWlmKHApdHJ5e2Zvcih2YXIgYj1ubyhwKSxnPWIubmV4dCgpOyFnLmRvbmU7Zz1iLm5leHQoKSl7dmFyIHY9Zy52YWx1ZTtqMihzLHYpLGEubmV4dCh2KX19Y2F0Y2goeSl7ZD17ZXJyb3I6eX19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGY9Yi5yZXR1cm4pJiZmLmNhbGwoYil9ZmluYWxseXtpZihkKXRocm93IGQuZXJyb3J9fX0sZnVuY3Rpb24oKXt2YXIgbyxsO3RyeXtmb3IodmFyIGM9bm8ocyksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBmPWQudmFsdWU7YS5uZXh0KGYpfX1jYXRjaChwKXtvPXtlcnJvcjpwfX1maW5hbGx5e3RyeXtkJiYhZC5kb25lJiYobD1jLnJldHVybikmJmwuY2FsbChjKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19YS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtzPW51bGx9KSl9KX12YXIgdE1lPXUoKCk9PntEYSgpO2tzKCk7aG4oKTtPeCgpO2koQTJlLCJidWZmZXJDb3VudCIpfSk7ZnVuY3Rpb24gRTJlKHQpe2Zvcih2YXIgZSxyLGE9W10scz0xO3M8YXJndW1lbnRzLmxlbmd0aDtzKyspYVtzLTFdPWFyZ3VtZW50c1tzXTt2YXIgbj0oZT1UMChhKSkhPT1udWxsJiZlIT09dm9pZCAwP2U6QzEsbz0ocj1hWzBdKSE9PW51bGwmJnIhPT12b2lkIDA/cjpudWxsLGw9YVsxXXx8MS8wO3JldHVybiBKcihmdW5jdGlvbihjLGQpe3ZhciBmPVtdLHA9ITEsaD1pKGZ1bmN0aW9uKGIpe3ZhciBnPWIuYnVmZmVyLHk9Yi5zdWJzO3kudW5zdWJzY3JpYmUoKSxqMihmLGIpLGQubmV4dChnKSxwJiZtKCl9LCJlbWl0IiksbT1pKGZ1bmN0aW9uKCl7aWYoZil7dmFyIGI9bmV3IHRzO2QuYWRkKGIpO3ZhciBnPVtdLHk9e2J1ZmZlcjpnLHN1YnM6Yn07Zi5wdXNoKHkpLFdzKGIsbixmdW5jdGlvbigpe3JldHVybiBoKHkpfSx0KX19LCJzdGFydEJ1ZmZlciIpO28hPT1udWxsJiZvPj0wP1dzKGQsbixtLG8sITApOnA9ITAsbSgpO3ZhciB2PVJyKGQsZnVuY3Rpb24oYil7dmFyIGcseSxrPWYuc2xpY2UoKTt0cnl7Zm9yKHZhciBNPW5vKGspLE49TS5uZXh0KCk7IU4uZG9uZTtOPU0ubmV4dCgpKXt2YXIgXz1OLnZhbHVlLFM9Xy5idWZmZXI7Uy5wdXNoKGIpLGw8PVMubGVuZ3RoJiZoKF8pfX1jYXRjaChPKXtnPXtlcnJvcjpPfX1maW5hbGx5e3RyeXtOJiYhTi5kb25lJiYoeT1NLnJldHVybikmJnkuY2FsbChNKX1maW5hbGx5e2lmKGcpdGhyb3cgZy5lcnJvcn19fSxmdW5jdGlvbigpe2Zvcig7Zj8ubGVuZ3RoOylkLm5leHQoZi5zaGlmdCgpLmJ1ZmZlcik7dj8udW5zdWJzY3JpYmUoKSxkLmNvbXBsZXRlKCksZC51bnN1YnNjcmliZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gZj1udWxsfSk7Yy5zdWJzY3JpYmUodil9KX12YXIgck1lPXUoKCk9PntEYSgpO3owKCk7a3MoKTtobigpO094KCk7ZzQoKTtHeCgpO1Z1KCk7aShFMmUsImJ1ZmZlclRpbWUiKX0pO3ZhciBhTWU9dSgoKT0+e30pO3ZhciBpTWU9dSgoKT0+e30pO3ZhciBzTWU9dSgoKT0+e30pO3ZhciBuTWU9dSgoKT0+e30pO3ZhciBvTWU9dSgoKT0+e30pO3ZhciBsTWU9dSgoKT0+e30pO3ZhciBjTWU9dSgoKT0+e30pO3ZhciBicXQ9dSgoKT0+e30pO3ZhciBkTWU9dSgoKT0+e30pO3ZhciB1TWU9dSgoKT0+e30pO3ZhciBwTWU9dSgoKT0+e30pO3ZhciB4cXQ9dSgoKT0+e30pO3ZhciBmTWU9dSgoKT0+e30pO3ZhciBoTWU9dSgoKT0+e30pO3ZhciBtTWU9dSgoKT0+e30pO2Z1bmN0aW9uIEkyZSh0KXtyZXR1cm4gSnIoZnVuY3Rpb24oZSxyKXt2YXIgYT0hMSxzPW51bGwsbj1udWxsLG89aShmdW5jdGlvbigpe2lmKG4/LnVuc3Vic2NyaWJlKCksbj1udWxsLGEpe2E9ITE7dmFyIGw9cztzPW51bGwsci5uZXh0KGwpfX0sImVtaXQiKTtlLnN1YnNjcmliZShScihyLGZ1bmN0aW9uKGwpe24/LnVuc3Vic2NyaWJlKCksYT0hMCxzPWwsbj1ScihyLG8sQmwpLGxpKHQobCkpLnN1YnNjcmliZShuKX0sZnVuY3Rpb24oKXtvKCksci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtzPW49bnVsbH0pKX0pfXZhciBnTWU9dSgoKT0+e2tzKCk7WWgoKTtobigpO1oxKCk7aShJMmUsImRlYm91bmNlIil9KTtmdW5jdGlvbiBQMmUodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9QzEpLEpyKGZ1bmN0aW9uKHIsYSl7dmFyIHM9bnVsbCxuPW51bGwsbz1udWxsLGw9aShmdW5jdGlvbigpe2lmKHMpe3MudW5zdWJzY3JpYmUoKSxzPW51bGw7dmFyIGQ9bjtuPW51bGwsYS5uZXh0KGQpfX0sImVtaXQiKTtmdW5jdGlvbiBjKCl7dmFyIGQ9byt0LGY9ZS5ub3coKTtpZihmPGQpe3M9dGhpcy5zY2hlZHVsZSh2b2lkIDAsZC1mKSxhLmFkZChzKTtyZXR1cm59bCgpfWkoYywiZW1pdFdoZW5JZGxlIiksci5zdWJzY3JpYmUoUnIoYSxmdW5jdGlvbihkKXtuPWQsbz1lLm5vdygpLHN8fChzPWUuc2NoZWR1bGUoYyx0KSxhLmFkZChzKSl9LGZ1bmN0aW9uKCl7bCgpLGEuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7bj1zPW51bGx9KSl9KX12YXIgYk1lPXUoKCk9PntnNCgpO2tzKCk7aG4oKTtpKFAyZSwiZGVib3VuY2VUaW1lIil9KTt2YXIgeE1lPXUoKCk9Pnt9KTt2YXIgdk1lPXUoKCk9Pnt9KTt2YXIgeU1lPXUoKCk9Pnt9KTt2YXIgd01lPXUoKCk9Pnt9KTt2YXIga01lPXUoKCk9Pnt9KTt2YXIgU01lPXUoKCk9Pnt9KTt2YXIgTU1lPXUoKCk9Pnt9KTt2YXIgQ01lPXUoKCk9Pnt9KTtmdW5jdGlvbiBReCh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1fMCksdD10Pz9HN2EsSnIoZnVuY3Rpb24ocixhKXt2YXIgcyxuPSEwO3Iuc3Vic2NyaWJlKFJyKGEsZnVuY3Rpb24obyl7dmFyIGw9ZShvKTsobnx8IXQocyxsKSkmJihuPSExLHM9bCxhLm5leHQobykpfSkpfSl9ZnVuY3Rpb24gRzdhKHQsZSl7cmV0dXJuIHQ9PT1lfXZhciB6TWU9dSgoKT0+e0h4KCk7a3MoKTtobigpO2koUXgsImRpc3RpbmN0VW50aWxDaGFuZ2VkIik7aShHN2EsImRlZmF1bHRDb21wYXJlIil9KTt2YXIgX01lPXUoKCk9Pnt9KTt2YXIgVE1lPXUoKCk9Pnt9KTt2YXIgTE1lPXUoKCk9Pnt9KTt2YXIgRE1lPXUoKCk9Pnt9KTt2YXIgJE1lPXUoKCk9Pnt9KTt2YXIgQU1lPXUoKCk9Pnt9KTt2YXIgRU1lPXUoKCk9Pnt9KTt2YXIgSU1lPXUoKCk9Pnt9KTt2YXIgUE1lPXUoKCk9Pnt9KTt2YXIgTk1lPXUoKCk9Pnt9KTt2YXIgT01lPXUoKCk9Pnt9KTt2YXIgUk1lPXUoKCk9Pnt9KTt2YXIgRk1lPXUoKCk9Pnt9KTt2YXIgQk1lPXUoKCk9Pnt9KTt2YXIgSE1lPXUoKCk9Pnt9KTt2YXIgcU1lPXUoKCk9Pnt9KTt2YXIgVk1lPXUoKCk9Pnt9KTt2YXIgak1lPXUoKCk9Pnt9KTt2YXIgVU1lPXUoKCk9Pnt9KTt2YXIgV01lPXUoKCk9Pnt9KTt2YXIgR01lPXUoKCk9Pnt9KTt2YXIgWU1lPXUoKCk9Pnt9KTt2YXIgdnF0PXUoKCk9Pnt9KTt2YXIgS01lPXUoKCk9Pnt9KTt2YXIgWk1lPXUoKCk9Pnt9KTt2YXIgUU1lPXUoKCk9Pnt9KTt2YXIgWE1lPXUoKCk9Pnt9KTt2YXIgSk1lPXUoKCk9Pnt9KTt2YXIgZUNlPXUoKCk9Pnt9KTt2YXIgdENlPXUoKCk9Pnt9KTt2YXIgckNlPXUoKCk9Pnt9KTt2YXIgYUNlPXUoKCk9Pnt9KTt2YXIgaUNlPXUoKCk9Pnt9KTt2YXIgc0NlPXUoKCk9Pnt9KTt2YXIgbkNlPXUoKCk9Pnt9KTt2YXIgb0NlPXUoKCk9Pnt9KTt2YXIgbENlPXUoKCk9Pnt9KTt2YXIgY0NlPXUoKCk9Pnt9KTt2YXIgZENlPXUoKCk9Pnt9KTt2YXIgdUNlPXUoKCk9Pnt9KTt2YXIgcENlPXUoKCk9Pnt9KTt2YXIgZkNlPXUoKCk9Pnt9KTtmdW5jdGlvbiBOMmUodCl7dD09PXZvaWQgMCYmKHQ9e30pO3ZhciBlPXQuY29ubmVjdG9yLHI9ZT09PXZvaWQgMD9mdW5jdGlvbigpe3JldHVybiBuZXcgb299OmUsYT10LnJlc2V0T25FcnJvcixzPWE9PT12b2lkIDA/ITA6YSxuPXQucmVzZXRPbkNvbXBsZXRlLG89bj09PXZvaWQgMD8hMDpuLGw9dC5yZXNldE9uUmVmQ291bnRaZXJvLGM9bD09PXZvaWQgMD8hMDpsO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZixwLGgsbT0wLHY9ITEsYj0hMSxnPWkoZnVuY3Rpb24oKXtwPy51bnN1YnNjcmliZSgpLHA9dm9pZCAwfSwiY2FuY2VsUmVzZXQiKSx5PWkoZnVuY3Rpb24oKXtnKCksZj1oPXZvaWQgMCx2PWI9ITF9LCJyZXNldCIpLGs9aShmdW5jdGlvbigpe3ZhciBNPWY7eSgpLE0/LnVuc3Vic2NyaWJlKCl9LCJyZXNldEFuZFVuc3Vic2NyaWJlIik7cmV0dXJuIEpyKGZ1bmN0aW9uKE0sTil7bSsrLCFiJiYhdiYmZygpO3ZhciBfPWg9aD8/cigpO04uYWRkKGZ1bmN0aW9uKCl7bS0tLG09PT0wJiYhYiYmIXYmJihwPWhDZShrLGMpKX0pLF8uc3Vic2NyaWJlKE4pLCFmJiZtPjAmJihmPW5ldyBxdSh7bmV4dDppKGZ1bmN0aW9uKFMpe3JldHVybiBfLm5leHQoUyl9LCJuZXh0IiksZXJyb3I6aShmdW5jdGlvbihTKXtiPSEwLGcoKSxwPWhDZSh5LHMsUyksXy5lcnJvcihTKX0sImVycm9yIiksY29tcGxldGU6aShmdW5jdGlvbigpe3Y9ITAsZygpLHA9aENlKHksbyksXy5jb21wbGV0ZSgpfSwiY29tcGxldGUiKX0pLGxpKE0pLnN1YnNjcmliZShmKSl9KShkKX19ZnVuY3Rpb24gaENlKHQsZSl7Zm9yKHZhciByPVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXJbYS0yXT1hcmd1bWVudHNbYV07aWYoZT09PSEwKXt0KCk7cmV0dXJufWlmKGUhPT0hMSl7dmFyIHM9bmV3IHF1KHtuZXh0OmkoZnVuY3Rpb24oKXtzLnVuc3Vic2NyaWJlKCksdCgpfSwibmV4dCIpfSk7cmV0dXJuIGxpKGUuYXBwbHkodm9pZCAwLFVzKFtdLE9pKHIpKSkpLnN1YnNjcmliZShzKX19dmFyIE8yZT11KCgpPT57RGEoKTtaMSgpO3F4KCk7ZkMoKTtrcygpO2koTjJlLCJzaGFyZSIpO2koaENlLCJoYW5kbGVSZXNldCIpfSk7ZnVuY3Rpb24gUjJlKHQsZSxyKXt2YXIgYSxzLG4sbyxsPSExO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/KGE9dC5idWZmZXJTaXplLG89YT09PXZvaWQgMD8xLzA6YSxzPXQud2luZG93VGltZSxlPXM9PT12b2lkIDA/MS8wOnMsbj10LnJlZkNvdW50LGw9bj09PXZvaWQgMD8hMTpuLHI9dC5zY2hlZHVsZXIpOm89dD8/MS8wLE4yZSh7Y29ubmVjdG9yOmkoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGp4KG8sZSxyKX0sImNvbm5lY3RvciIpLHJlc2V0T25FcnJvcjohMCxyZXNldE9uQ29tcGxldGU6ITEscmVzZXRPblJlZkNvdW50WmVybzpsfSl9dmFyIG1DZT11KCgpPT57YlNlKCk7TzJlKCk7aShSMmUsInNoYXJlUmVwbGF5Iil9KTt2YXIgZ0NlPXUoKCk9Pnt9KTt2YXIgYkNlPXUoKCk9Pnt9KTt2YXIgeENlPXUoKCk9Pnt9KTt2YXIgdkNlPXUoKCk9Pnt9KTt2YXIgeUNlPXUoKCk9Pnt9KTtmdW5jdGlvbiBGMmUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9VDAodCk7cmV0dXJuIEpyKGZ1bmN0aW9uKGEscyl7KHI/VDJlKHQsYSxyKTpUMmUodCxhKSkuc3Vic2NyaWJlKHMpfSl9dmFyIHdDZT11KCgpPT57WVNlKCk7R3goKTtrcygpO2koRjJlLCJzdGFydFdpdGgiKX0pO3ZhciBrQ2U9dSgoKT0+e30pO3ZhciBTQ2U9dSgoKT0+e30pO3ZhciBNQ2U9dSgoKT0+e30pO3ZhciBDQ2U9dSgoKT0+e30pO2Z1bmN0aW9uIFh4KHQpe3JldHVybiBKcihmdW5jdGlvbihlLHIpe2xpKHQpLnN1YnNjcmliZShScihyLGZ1bmN0aW9uKCl7cmV0dXJuIHIuY29tcGxldGUoKX0sQmwpKSwhci5jbG9zZWQmJmUuc3Vic2NyaWJlKHIpfSl9dmFyIHpDZT11KCgpPT57a3MoKTtobigpO1oxKCk7WWgoKTtpKFh4LCJ0YWtlVW50aWwiKX0pO3ZhciBfQ2U9dSgoKT0+e30pO3ZhciBUQ2U9dSgoKT0+e30pO2Z1bmN0aW9uIEIyZSh0LGUpe3JldHVybiBKcihmdW5jdGlvbihyLGEpe3ZhciBzPWU/P3t9LG49cy5sZWFkaW5nLG89bj09PXZvaWQgMD8hMDpuLGw9cy50cmFpbGluZyxjPWw9PT12b2lkIDA/ITE6bCxkPSExLGY9bnVsbCxwPW51bGwsaD0hMSxtPWkoZnVuY3Rpb24oKXtwPy51bnN1YnNjcmliZSgpLHA9bnVsbCxjJiYoZygpLGgmJmEuY29tcGxldGUoKSl9LCJlbmRUaHJvdHRsaW5nIiksdj1pKGZ1bmN0aW9uKCl7cD1udWxsLGgmJmEuY29tcGxldGUoKX0sImNsZWFudXBUaHJvdHRsaW5nIiksYj1pKGZ1bmN0aW9uKHkpe3JldHVybiBwPWxpKHQoeSkpLnN1YnNjcmliZShScihhLG0sdikpfSwic3RhcnRUaHJvdHRsZSIpLGc9aShmdW5jdGlvbigpe2lmKGQpe2Q9ITE7dmFyIHk9ZjtmPW51bGwsYS5uZXh0KHkpLCFoJiZiKHkpfX0sInNlbmQiKTtyLnN1YnNjcmliZShScihhLGZ1bmN0aW9uKHkpe2Q9ITAsZj15LCEocCYmIXAuY2xvc2VkKSYmKG8/ZygpOmIoeSkpfSxmdW5jdGlvbigpe2g9ITAsIShjJiZkJiZwJiYhcC5jbG9zZWQpJiZhLmNvbXBsZXRlKCl9KSl9KX12YXIgSDJlPXUoKCk9PntrcygpO2huKCk7WjEoKTtpKEIyZSwidGhyb3R0bGUiKX0pO2Z1bmN0aW9uIHEyZSh0LGUscil7ZT09PXZvaWQgMCYmKGU9QzEpO3ZhciBhPU1DKHQsZSk7cmV0dXJuIEIyZShmdW5jdGlvbigpe3JldHVybiBhfSxyKX12YXIgTENlPXUoKCk9PntnNCgpO0gyZSgpO0wyZSgpO2kocTJlLCJ0aHJvdHRsZVRpbWUiKX0pO2Z1bmN0aW9uIHdxdCh0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9QzEpLEpyKGZ1bmN0aW9uKGUscil7dmFyIGE9dC5ub3coKTtlLnN1YnNjcmliZShScihyLGZ1bmN0aW9uKHMpe3ZhciBuPXQubm93KCksbz1uLWE7YT1uLHIubmV4dChuZXcgeXF0KHMsbykpfSkpfSl9dmFyIHlxdCxEQ2U9dSgoKT0+e2c0KCk7a3MoKTtobigpO2kod3F0LCJ0aW1lSW50ZXJ2YWwiKTt5cXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHIpe3RoaXMudmFsdWU9ZSx0aGlzLmludGVydmFsPXJ9cmV0dXJuIGkodCwiVGltZUludGVydmFsIiksdH0pKCl9KTt2YXIgJENlPXUoKCk9Pnt9KTt2YXIgQUNlPXUoKCk9Pnt9KTt2YXIgRUNlPXUoKCk9Pnt9KTt2YXIgSUNlPXUoKCk9Pnt9KTt2YXIgUENlPXUoKCk9Pnt9KTt2YXIgTkNlPXUoKCk9Pnt9KTt2YXIgT0NlPXUoKCk9Pnt9KTt2YXIgUkNlPXUoKCk9Pnt9KTt2YXIgRkNlPXUoKCk9Pnt9KTt2YXIga3F0PXUoKCk9Pnt9KTt2YXIgQkNlPXUoKCk9Pnt9KTt2YXIgSng9dSgoKT0+e1JvKCk7R0J0KCk7aEMoKTtaQnQoKTtxeCgpO1FCdCgpO2JTZSgpO0pCdCgpO2xIdCgpO2c0KCk7cEh0KCk7Z0h0KCk7eEh0KCk7a1NlKCk7ejAoKTtmQygpO0FIdCgpO2NTZSgpO1loKCk7SHgoKTtFSHQoKTtQSHQoKTtOSHQoKTtPSHQoKTtJSHQoKTtSSHQoKTtoU2UoKTtGSHQoKTtrMmUoKTt0U2UoKTtxSHQoKTtWSHQoKTtLSHQoKTtZU2UoKTtKSHQoKTtYSHQoKTtsMmUoKTtlcXQoKTt3QygpO3JxdCgpO2FxdCgpO2lxdCgpO3NxdCgpO25xdCgpO29xdCgpO1pTZSgpO0hTZSgpO2NxdCgpO2RxdCgpO3VxdCgpO3BxdCgpO2ZxdCgpO1ZTZSgpO0wyZSgpO2hxdCgpO21xdCgpO0JTZSgpO2wyZSgpO1pTZSgpO2dxdCgpO1J4KCk7WFNlKCk7SlNlKCk7ZU1lKCk7dE1lKCk7ck1lKCk7YU1lKCk7aU1lKCk7c01lKCk7Y01lKCk7bE1lKCk7ZE1lKCk7XzJlKCk7dU1lKCk7cE1lKCk7Zk1lKCk7aE1lKCk7bU1lKCk7Z01lKCk7Yk1lKCk7eE1lKCk7U01lKCk7a01lKCk7TU1lKCk7Q01lKCk7ek1lKCk7X01lKCk7TE1lKCk7RE1lKCk7JE1lKCk7SU1lKCk7RU1lKCk7QU1lKCk7UE1lKCk7UVNlKCk7Tk1lKCk7T01lKCk7Uk1lKCk7Rk1lKCk7Qk1lKCk7eU1lKCk7SE1lKCk7Vk1lKCk7a0MoKTt3TWUoKTtqTWUoKTtVTWUoKTtDMmUoKTtXTWUoKTtTQygpO0dNZSgpO1lNZSgpO0tNZSgpO1pNZSgpO1FNZSgpO3ZDKCk7WE1lKCk7Sk1lKCk7ZUNlKCk7dENlKCk7ckNlKCk7YUNlKCk7aUNlKCk7c0NlKCk7bk1lKCk7bkNlKCk7b0NlKCk7bENlKCk7Y0NlKCk7czJlKCk7ZENlKCk7dUNlKCk7cENlKCk7ZkNlKCk7TzJlKCk7bUNlKCk7Z0NlKCk7YkNlKCk7eENlKCk7dkNlKCk7eUNlKCk7d0NlKCk7eUMoKTtTQ2UoKTtrQ2UoKTtNQ2UoKTtDQ2UoKTt2TWUoKTtxTWUoKTt6Q2UoKTtfQ2UoKTtUQ2UoKTtIMmUoKTtMQ2UoKTtUTWUoKTtEQ2UoKTtrMmUoKTskQ2UoKTtBQ2UoKTtvTWUoKTtFQ2UoKTtJQ2UoKTtQQ2UoKTtOQ2UoKTtPQ2UoKTtSQ2UoKTtGQ2UoKTtCQ2UoKX0pO3ZhciBTcXQ9dSgoKT0+e30pO3ZhciBNcXQ9dSgoKT0+e30pO3ZhciBDcXQ9dSgoKT0+e1hTZSgpO0pTZSgpO2VNZSgpO3RNZSgpO3JNZSgpO2FNZSgpO2lNZSgpO3NNZSgpO2NNZSgpO2xNZSgpO2JxdCgpO2RNZSgpO3hxdCgpO18yZSgpO3VNZSgpO3BNZSgpO2ZNZSgpO2hNZSgpO21NZSgpO2dNZSgpO2JNZSgpO3hNZSgpO1NNZSgpO2tNZSgpO01NZSgpO0NNZSgpO3pNZSgpO19NZSgpO0xNZSgpO0RNZSgpOyRNZSgpO0lNZSgpO0VNZSgpO0FNZSgpO1BNZSgpO1FTZSgpO05NZSgpO09NZSgpO1JNZSgpO0ZNZSgpO0JNZSgpO3lNZSgpO0hNZSgpO1ZNZSgpO2tDKCk7d01lKCk7ak1lKCk7VU1lKCk7dnF0KCk7QzJlKCk7V01lKCk7U0MoKTtHTWUoKTtZTWUoKTtLTWUoKTtaTWUoKTtRTWUoKTt2QygpO1hNZSgpO0pNZSgpO1NxdCgpO2VDZSgpO3RDZSgpO3JDZSgpO2FDZSgpO2lDZSgpO01xdCgpO3NDZSgpO25NZSgpO25DZSgpO29DZSgpO2xDZSgpO2NDZSgpO3MyZSgpO2RDZSgpO3VDZSgpO3BDZSgpO2ZDZSgpO08yZSgpO21DZSgpO2dDZSgpO2JDZSgpO3hDZSgpO3ZDZSgpO3lDZSgpO3dDZSgpO3lDKCk7U0NlKCk7a0NlKCk7TUNlKCk7Q0NlKCk7dk1lKCk7cU1lKCk7ekNlKCk7X0NlKCk7VENlKCk7SDJlKCk7TENlKCk7VE1lKCk7RENlKCk7azJlKCk7JENlKCk7QUNlKCk7b01lKCk7RUNlKCk7SUNlKCk7UENlKCk7TkNlKCk7T0NlKCk7UkNlKCk7a3F0KCk7RkNlKCk7QkNlKCl9KTt2YXIgZXY9e307VmUoZXYse09ic2VydmFibGU6KCk9PmxyLFJlcGxheVN1YmplY3Q6KCk9Pmp4LFN1YmplY3Q6KCk9Pm9vLFN1YnNjcmlwdGlvbjooKT0+dHMsZnJvbTooKT0+TDAsZnJvbUV2ZW50OigpPT5lNixvZjooKT0+WGgsb3BzOigpPT5NZ2F9KTt2YXIgTWdhLFYyZT11KCgpPT57SngoKTtDcXQoKTtNZ2E9e2J1ZmZlcjokMmUsYnVmZmVyQ291bnQ6QTJlLGJ1ZmZlclRpbWU6RTJlLGRlYm91bmNlOkkyZSxkZWJvdW5jZVRpbWU6UDJlLGZpbHRlcjpEMmUsbWFwOkQwLHN0YXJ0V2l0aDpGMmUsdGFrZVVudGlsOlh4LHRocm90dGxlVGltZTpxMmV9fSk7dmFyIEhDZSx6cXQ9dSgoKT0+e0psZSgpO1YyZSgpO0hDZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJPYnNlcnZhYmxlbWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheT1uZXcgQXJyYXksdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheT1uZXcgQXJyYXl9Z2V0U3ViamVjdEZvckVtaXR0ZXJFdmVudChlLHIpe2xldCBhPXRoaXMub2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5LmZpbmQocz0+cy5ldmVudFJlZj09PWUmJnMuZXZlbnQ9PT1yKTtpZihhKXJldHVybiBhLnN1YmplY3Q7e2xldCBzPWU2KGUsciksbj1uZXcgb287cy5zdWJzY3JpYmUobik7bGV0IG89e3N1YmplY3Q6bixldmVudFJlZjplLGV2ZW50OnJ9O3JldHVybiB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG8pLG8uc3ViamVjdH19Z2V0U3ViamVjdEZvckV2ZW50VGFyZ2V0KGUscil7bGV0IGE9dGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5maW5kKHM9PnMuZXZlbnRSZWY9PT1lJiZzLmV2ZW50PT09cik7aWYoYSlyZXR1cm4gYS5zdWJqZWN0O3tsZXQgbj17c3ViamVjdDpuZXcgb28sZXZlbnRSZWY6ZSxldmVudDpyfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5wdXNoKG4pLG4uc3ViamVjdH19fX0pO3ZhciBxQ2UsX3F0PXUoKCk9PntKbGUoKTtWMmUoKTtxQ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiT2JzZXJ2YWJsZUludGFrZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zPXtuZXh0OmkoZT0+e30sIm5leHQiKSxjb21wbGV0ZTppKGU9Pnt9LCJjb21wbGV0ZSIpfSx0aGlzLmdlbmVyYXRvcj1udWxsLHRoaXMuYnVmZmVyZWQ9ITEsdGhpcy5wYXlsb2FkQnVmZmVyPVtdLHRoaXMub2JzZXJ2YWJsZT1uZXcgbHIoZT0+e3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0PSguLi5yKT0+ZS5uZXh0KHIpLHRoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5jb21wbGV0ZT0oKT0+KHRoaXMuY29tcGxldGVkRGVmZmVyZWQucmVzb2x2ZSgpLGUuY29tcGxldGUoKSl9KSx0aGlzLmNvbXBsZXRlZERlZmZlcmVkPSR0LmRlZmVyKCksdGhpcy5jb21wbGV0ZWQ9dGhpcy5jb21wbGV0ZWREZWZmZXJlZC5wcm9taXNlfXNldE9ic2VydmFibGUoZSl7dGhpcy5vYnNlcnZhYmxlPWV9cHVzaChlKXt0aGlzLmJ1ZmZlcmVkP3RoaXMucGF5bG9hZEJ1ZmZlci5wdXNoKGUpOnRoaXMuaW50ZXJuYWxQdXNoKGUpfXB1c2hNYW55KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMucHVzaChyKX1zZXRHZW5lcmF0b3IoZSl7dGhpcy5nZW5lcmF0b3I9ZX1tYWtlQnVmZmVyZWQoKXt0aGlzLmJ1ZmZlcmVkPSEwfXN1YnNjcmliZSguLi5lKXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZSguLi5lKX1yZXF1ZXN0KGUpe2lmKGUhPT0wKWZvcihsZXQgcj0wO3IhPT1lO3IrKylpZih0aGlzLnBheWxvYWRCdWZmZXIubGVuZ3RoPjApdGhpcy5pbnRlcm5hbFB1c2godGhpcy5wYXlsb2FkQnVmZmVyLnNoaWZ0KCkpO2Vsc2V7bGV0IGE9dGhpcy5nZW5lcmF0b3IubmV4dCgpO3RoaXMuaW50ZXJuYWxQdXNoKGEudmFsdWUpfX1zaWduYWxDb21wbGV0ZSgpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5jb21wbGV0ZSgpfWludGVybmFsUHVzaChlKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dChlKX19fSk7ZnVuY3Rpb24gQ2dhKHQpe3JldHVybiBuZXcgbHIoZT0+e2xldCByPWkoKCk9PnQucGF1c2UoKSwicGF1c2VTdHJlYW0iKSxhPWkoKCk9PnByb2Nlc3MubmV4dFRpY2soKCk9PnQucmVzdW1lKCkpLCJyZXN1bWVTdHJlYW0iKSxzPWkobj0+e3IoKSxlLm5leHQobiksYSgpfSwib25EYXRhIik7cmV0dXJuIHQub24oImRhdGEiLHMpLHQub24oImVycm9yIixuPT5lLmVycm9yKG4pKSx0Lm9uKCJlbmQiLCgpPT5lLmNvbXBsZXRlKCkpLHQub24oImNsb3NlIiwoKT0+ZS5jb21wbGV0ZSgpKSwoKT0+e3QucmVtb3ZlTGlzdGVuZXIoImRhdGEiLHMpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixlLmVycm9yKSx0LnJlbW92ZUxpc3RlbmVyKCJlbmQiLGUuY29tcGxldGUpLHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixlLmNvbXBsZXRlKX19KX12YXIgVHF0PXUoKCk9PntKeCgpO2koQ2dhLCJmcm9tU3RyZWFtV2l0aEJhY2twcmVzc3VyZSIpfSk7dmFyICRhPXt9O1ZlKCRhLHtPYnNlcnZhYmxlSW50YWtlOigpPT5xQ2UsT2JzZXJ2YWJsZW1hcDooKT0+SENlLGZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlOigpPT5DZ2EscnhqczooKT0+ZXZ9KTt2YXIgYjQ9dSgoKT0+e0psZSgpO3pxdCgpO19xdCgpO1RxdCgpO1YyZSgpfSk7ZnVuY3Rpb24gUCh0KXtyZXR1cm4oZSxyKT0+dHlwZW9mIHI9PSJvYmplY3QiP0xxdCh0LGUscik6KChhLHMsbik9PntsZXQgbz1zLmhhc093blByb3BlcnR5KG4pO3JldHVybiBzLmNvbnN0cnVjdG9yLmNyZWF0ZVByb3BlcnR5KG4sYSksbz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsbik6dm9pZCAwfSkodCxlLHIpfXZhciB6Z2EsTHF0LGoyZT11KCgpPT57bkMoKTt6Z2E9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6UHgscmVmbGVjdDohMSxoYXNDaGFuZ2VkOnNDfSxMcXQ9aSgodD16Z2EsZSxyKT0+e2xldHtraW5kOmEsbWV0YWRhdGE6c309cixuPWdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5nZXQocyk7aWYobj09PXZvaWQgMCYmZ2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLnNldChzLG49bmV3IE1hcCksYT09PSJzZXR0ZXIiJiYoKHQ9T2JqZWN0LmNyZWF0ZSh0KSkud3JhcHBlZD0hMCksbi5zZXQoci5uYW1lLHQpLGE9PT0iYWNjZXNzb3IiKXtsZXR7bmFtZTpvfT1yO3JldHVybntzZXQobCl7bGV0IGM9ZS5nZXQuY2FsbCh0aGlzKTtlLnNldC5jYWxsKHRoaXMsbCksdGhpcy5yZXF1ZXN0VXBkYXRlKG8sYyx0LCEwLGwpfSxpbml0KGwpe3JldHVybiBsIT09dm9pZCAwJiZ0aGlzLkMobyx2b2lkIDAsdCxsKSxsfX19aWYoYT09PSJzZXR0ZXIiKXtsZXR7bmFtZTpvfT1yO3JldHVybiBmdW5jdGlvbihsKXtsZXQgYz10aGlzW29dO2UuY2FsbCh0aGlzLGwpLHRoaXMucmVxdWVzdFVwZGF0ZShvLGMsdCwhMCxsKX19dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogIithKX0sInIiKTtpKFAsIm4iKX0pO3ZhciBEcXQ9dSgoKT0+e2oyZSgpfSk7dmFyICRxdD11KCgpPT57fSk7dmFyIFRyPXt9O1ZlKFRyLHtUaW1lb3V0OigpPT5VMmUsZGVsYXlGb3I6KCk9PkFxdCxkZWxheUZvclJhbmRvbTooKT0+X2dhfSk7dmFyIEFxdCxfZ2EsVTJlLHQ2PXUoKCk9PntLMSgpO0FxdD1pKGFzeW5jKHQsZSxyPSExKT0+KGF3YWl0IG5ldyBVMmUodCxudWxsLHIpLnByb21pc2UsZSksImRlbGF5Rm9yIiksX2dhPWkoYXN5bmModCxlLHIsYT0hMSk9Pihhd2FpdCBBcXQoTWF0aC5yYW5kb20oKSooZS10KSt0LG51bGwsYSksciksImRlbGF5Rm9yUmFuZG9tIiksVTJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRpbWVvdXQiKX1jb25zdHJ1Y3RvcihlLHIsYT0hMSl7dGhpcy5fY2FuY2VsbGVkPSExLHRoaXMudGltZW91dEluTWlsbGlzPWUsdGhpcy5fZGVmZXJyZWQ9QnUoKSx0aGlzLnByb21pc2U9dGhpcy5fZGVmZXJyZWQucHJvbWlzZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9jYW5jZWxsZWR8fHRoaXMuX2RlZmVycmVkLnJlc29sdmUocil9LGUpLHRoaXMuc3RhcnRlZD1EYXRlLm5vdygpLGEmJnRoaXMubWFrZVVucmVmZWQoKX1tYWtlVW5yZWZlZCgpe3RoaXMuX3RpbWVvdXQudW5yZWY/LigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgZT10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gZT4wP2U6MH19fSk7dmFyIHR2PXt9O3ZhciBXMmU9dSgoKT0+e30pO2Z1bmN0aW9uIHI2KHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIHN0cmluZyIpO3JldHVybiB0LnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrKj8uXS9nLCJcXCQmIikucmVwbGFjZSgvLS9nLCJcXHgyZCIpfXZhciBHMmU9dSgoKT0+e2kocjYsImVzY2FwZVN0cmluZ1JlZ2V4cCIpfSk7dmFyIENDPXt9O1ZlKENDLHtpc01hdGNoOigpPT5EZ2EsbWF0Y2hlcjooKT0+TGdhfSk7ZnVuY3Rpb24gTGdhKHQsZSxyKXtyZXR1cm4gSXF0KHQsZSxyLCExKX1mdW5jdGlvbiBEZ2EodCxlLHIpe3JldHVybiBJcXQodCxlLHIsITApLmxlbmd0aD4wfXZhciBWQ2UsRXF0LFRnYSxJcXQsUHF0PXUoKCk9PntHMmUoKTtWQ2U9bmV3IE1hcCxFcXQ9aSgodCxlKT0+e2lmKCFBcnJheS5pc0FycmF5KHQpKXN3aXRjaCh0eXBlb2YgdCl7Y2FzZSJzdHJpbmciOnQ9W3RdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjp0PVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2YgdH0nYCl9cmV0dXJuIHQuZmlsdGVyKHI9PntpZih0eXBlb2YgciE9InN0cmluZyIpe2lmKHR5cGVvZiByPiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHtlfScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2Ygcn0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LCJzYW5pdGl6ZUFycmF5IiksVGdhPWkoKHQsZSk9PntlPXtjYXNlU2Vuc2l0aXZlOiExLC4uLmV9O2xldCByPXQrSlNPTi5zdHJpbmdpZnkoZSk7aWYoVkNlLmhhcyhyKSlyZXR1cm4gVkNlLmdldChyKTtsZXQgYT10WzBdPT09IiEiO2EmJih0PXQuc2xpY2UoMSkpLHQ9cjYodCkucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgcz1uZXcgUmVnRXhwKGBeJHt0fSRgLGUuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiBzLm5lZ2F0ZWQ9YSxWQ2Uuc2V0KHIscyksc30sIm1ha2VSZWdleHAiKSxJcXQ9aSgodCxlLHIsYSk9PntpZih0PUVxdCh0LCJpbnB1dHMiKSxlPUVxdChlLCJwYXR0ZXJucyIpLGUubGVuZ3RoPT09MClyZXR1cm5bXTtlPWUubWFwKG89PlRnYShvLHIpKTtsZXR7YWxsUGF0dGVybnM6c309cnx8e30sbj1bXTtmb3IobGV0IG8gb2YgdCl7bGV0IGwsYz1bLi4uZV0uZmlsbCghMSk7Zm9yKGxldFtkLGZdb2YgZS5lbnRyaWVzKCkpaWYoZi50ZXN0KG8pJiYoY1tkXT0hMCxsPSFmLm5lZ2F0ZWQsIWwpKWJyZWFrO2lmKCEobD09PSExfHxsPT09dm9pZCAwJiZlLnNvbWUoZD0+IWQubmVnYXRlZCl8fHMmJmMuc29tZSgoZCxmKT0+IWQmJiFlW2ZdLm5lZ2F0ZWQpKSYmKG4ucHVzaChvKSxhKSlicmVha31yZXR1cm4gbn0sImJhc2VNYXRjaGVyIik7aShMZ2EsIm1hdGNoZXIiKTtpKERnYSwiaXNNYXRjaCIpfSk7dmFyIE5xdD11KCgpPT57UHF0KCl9KTt2YXIgekM9e307VmUoekMse1NtYXJ0TWF0Y2g6KCk9PmpDZX0pO3ZhciBqQ2UsT3F0PXUoKCk9PntOcXQoKTtqQ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRNYXRjaCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMud2lsZGNhcmQ9ZX1tYXRjaChlKXtyZXR1cm4gQ0MuaXNNYXRjaChlLHRoaXMud2lsZGNhcmQpfX19KTt2YXIgREM9e307VmUoREMse0Nyb246KCk9PlZxdCxDcm9uRGF0ZTooKT0+R3MsQ3JvblBhdHRlcm46KCk9PlkyZSxzY2hlZHVsZWRKb2JzOigpPT5ydn0pO2Z1bmN0aW9uIF9DKHQpe3JldHVybiBEYXRlLlVUQyh0LnksdC5tLTEsdC5kLHQuaCx0LmksdC5zKX1mdW5jdGlvbiBVQ2UodCxlKXtyZXR1cm4gdC55PT09ZS55JiZ0Lm09PT1lLm0mJnQuZD09PWUuZCYmdC5oPT09ZS5oJiZ0Lmk9PT1lLmkmJnQucz09PWUuc31mdW5jdGlvbiBBZ2EodCxlKXtsZXQgcj1uZXcgRGF0ZShEYXRlLnBhcnNlKHQpKTtpZihpc05hTihyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSVNPODYwMSBwYXNzZWQgdG8gdGltZXpvbmUgcGFyc2VyLiIpO2xldCBhPXQuc3Vic3RyaW5nKDkpO3JldHVybiBhLmluY2x1ZGVzKCJaIil8fGEuaW5jbHVkZXMoIisiKXx8YS5pbmNsdWRlcygiLSIpP1dDZShyLmdldFVUQ0Z1bGxZZWFyKCksci5nZXRVVENNb250aCgpKzEsci5nZXRVVENEYXRlKCksci5nZXRVVENIb3VycygpLHIuZ2V0VVRDTWludXRlcygpLHIuZ2V0VVRDU2Vjb25kcygpLCJFdGMvVVRDIik6V0NlKHIuZ2V0RnVsbFllYXIoKSxyLmdldE1vbnRoKCkrMSxyLmdldERhdGUoKSxyLmdldEhvdXJzKCksci5nZXRNaW51dGVzKCksci5nZXRTZWNvbmRzKCksZSl9ZnVuY3Rpb24gUnF0KHQsZSxyKXtyZXR1cm4gRnF0KEFnYSh0LGUpLHIpfWZ1bmN0aW9uIEZxdCh0LGUpe2xldCByPW5ldyBEYXRlKF9DKHQpKSxhPVRDKHIsdC50eikscz1fQyh0KSxuPV9DKGEpLG89cy1uLGw9bmV3IERhdGUoci5nZXRUaW1lKCkrbyksYz1UQyhsLHQudHopO2lmKFVDZShjLHQpKXtsZXQgcD1uZXcgRGF0ZShsLmdldFRpbWUoKS0zNmU1KSxoPVRDKHAsdC50eik7cmV0dXJuIFVDZShoLHQpP3A6bH1sZXQgZD1uZXcgRGF0ZShsLmdldFRpbWUoKStfQyh0KS1fQyhjKSksZj1UQyhkLHQudHopO2lmKFVDZShmLHQpKXJldHVybiBkO2lmKGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIGwuZ2V0VGltZSgpPmQuZ2V0VGltZSgpP2w6ZH1mdW5jdGlvbiBUQyh0LGUpe2xldCByLGE7dHJ5e3I9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6ZSx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksYT1yLmZvcm1hdFRvUGFydHModCl9Y2F0Y2gobil7bGV0IG89biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7ZX0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtvfWApfWxldCBzPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgbiBvZiBhKShuLnR5cGU9PT0ieWVhciJ8fG4udHlwZT09PSJtb250aCJ8fG4udHlwZT09PSJkYXkifHxuLnR5cGU9PT0iaG91ciJ8fG4udHlwZT09PSJtaW51dGUifHxuLnR5cGU9PT0ic2Vjb25kIikmJihzW24udHlwZV09cGFyc2VJbnQobi52YWx1ZSwxMCkpO2lmKGlzTmFOKHMueWVhcil8fGlzTmFOKHMubW9udGgpfHxpc05hTihzLmRheSl8fGlzTmFOKHMuaG91cil8fGlzTmFOKHMubWludXRlKXx8aXNOYU4ocy5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHtlfScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShzKX1gKTtyZXR1cm4gcy5ob3VyPT09MjQmJihzLmhvdXI9MCkse3k6cy55ZWFyLG06cy5tb250aCxkOnMuZGF5LGg6cy5ob3VyLGk6cy5taW51dGUsczpzLnNlY29uZCx0ejplfX1mdW5jdGlvbiBXQ2UodCxlLHIsYSxzLG4sbyl7cmV0dXJue3k6dCxtOmUsZDpyLGg6YSxpOnMsczpuLHR6Om99fWZ1bmN0aW9uIEVnYSh0KXtpZih0PT09dm9pZCAwJiYodD17fSksZGVsZXRlIHQubmFtZSx0LmxlZ2FjeU1vZGUhPT12b2lkIDAmJnQuZG9tQW5kRG93PT09dm9pZCAwP3QuZG9tQW5kRG93PSF0LmxlZ2FjeU1vZGU6dC5kb21BbmREb3c9PT12b2lkIDAmJih0LmRvbUFuZERvdz0hMSksdC5sZWdhY3lNb2RlPSF0LmRvbUFuZERvdyx0LnBhdXNlZD10LnBhdXNlZD09PXZvaWQgMD8hMTp0LnBhdXNlZCx0Lm1heFJ1bnM9dC5tYXhSdW5zPT09dm9pZCAwPzEvMDp0Lm1heFJ1bnMsdC5jYXRjaD10LmNhdGNoPT09dm9pZCAwPyExOnQuY2F0Y2gsdC5pbnRlcnZhbD10LmludGVydmFsPT09dm9pZCAwPzA6cGFyc2VJbnQodC5pbnRlcnZhbC50b1N0cmluZygpLDEwKSx0LnV0Y09mZnNldD10LnV0Y09mZnNldD09PXZvaWQgMD92b2lkIDA6cGFyc2VJbnQodC51dGNPZmZzZXQudG9TdHJpbmcoKSwxMCksdC5kYXlPZmZzZXQ9dC5kYXlPZmZzZXQ9PT12b2lkIDA/MDpwYXJzZUludCh0LmRheU9mZnNldC50b1N0cmluZygpLDEwKSx0LnVucmVmPXQudW5yZWY9PT12b2lkIDA/ITE6dC51bnJlZix0Lm1vZGU9dC5tb2RlPT09dm9pZCAwPyJhdXRvIjp0Lm1vZGUsdC5hbHRlcm5hdGl2ZVdlZWtkYXlzPXQuYWx0ZXJuYXRpdmVXZWVrZGF5cz09PXZvaWQgMD8hMTp0LmFsdGVybmF0aXZlV2Vla2RheXMsdC5zbG9wcHlSYW5nZXM9dC5zbG9wcHlSYW5nZXM9PT12b2lkIDA/ITE6dC5zbG9wcHlSYW5nZXMsIVsiYXV0byIsIjUtcGFydCIsIjYtcGFydCIsIjctcGFydCIsIjUtb3ItNi1wYXJ0cyIsIjYtb3ItNy1wYXJ0cyJdLmluY2x1ZGVzKHQubW9kZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogbW9kZSBtdXN0IGJlIG9uZSBvZiAnYXV0bycsICc1LXBhcnQnLCAnNi1wYXJ0JywgJzctcGFydCcsICc1LW9yLTYtcGFydHMnLCBvciAnNi1vci03LXBhcnRzJy4iKTtpZih0LnN0YXJ0QXQmJih0LnN0YXJ0QXQ9bmV3IEdzKHQuc3RhcnRBdCx0LnRpbWV6b25lKSksdC5zdG9wQXQmJih0LnN0b3BBdD1uZXcgR3ModC5zdG9wQXQsdC50aW1lem9uZSkpLHQuaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTih0LmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgaXMgbm90IGEgbnVtYmVyIik7aWYodC5pbnRlcnZhbDwwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlIil9aWYodC51dGNPZmZzZXQhPT12b2lkIDApe2lmKGlzTmFOKHQudXRjT2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgdXRjT2Zmc2V0LCBzaG91bGQgYmUgbnVtYmVyIHJlcHJlc2VudGluZyBtaW51dGVzIG9mZnNldCBmcm9tIFVUQy4iKTtpZih0LnV0Y09mZnNldDwtODcwfHx0LnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogdXRjT2Zmc2V0IG91dCBvZiBib3VuZHMuIik7aWYodC51dGNPZmZzZXQhPT12b2lkIDAmJnQudGltZXpvbmUpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC4iKX1pZih0LnVucmVmIT09ITAmJnQudW5yZWYhPT0hMSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBVbnJlZiBzaG91bGQgYmUgZWl0aGVyIHRydWUsIGZhbHNlIG9yIHVuZGVmaW5lZChmYWxzZSkuIik7aWYodC5kYXlPZmZzZXQhPT12b2lkIDAmJnQuZGF5T2Zmc2V0IT09MCYmaXNOYU4odC5kYXlPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciBkYXlPZmZzZXQsIHNob3VsZCBiZSBhIG51bWJlciByZXByZXNlbnRpbmcgZGF5cyB0byBvZmZzZXQuIik7cmV0dXJuIHR9ZnVuY3Rpb24gTEModCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24ifHx0IGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24gSWdhKHQpe3JldHVybiBMQyh0KX1mdW5jdGlvbiBQZ2EodCl7dHlwZW9mIERlbm88InUiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPCJ1Ij9EZW5vLnVucmVmVGltZXIodCk6dCYmdHlwZW9mIHQudW5yZWY8InUiJiZ0LnVucmVmKCl9dmFyIEJxdCxZMmUsR0NlLGNpLEdzLEhxdCxydixWcXQsanF0PXUoKCk9PntpKF9DLCJUIik7aShVQ2UsIkQiKTtpKEFnYSwiQSIpO2koUnF0LCJ2Iik7aShGcXQsImsiKTtpKFRDLCJnIik7aShXQ2UsImIiKTtCcXQ9WzEsMiw0LDgsMTZdLFkyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDIil9cGF0dGVybjt0aW1lem9uZTttb2RlO2FsdGVybmF0aXZlV2Vla2RheXM7c2xvcHB5UmFuZ2VzO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7ZGF5T2ZXZWVrO3llYXI7bGFzdERheU9mTW9udGg7bGFzdFdlZWtkYXk7bmVhcmVzdFdlZWtkYXlzO3N0YXJET007c3RhckRPVztzdGFyWWVhcjt1c2VBbmRMb2dpYztjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5wYXR0ZXJuPXQsdGhpcy50aW1lem9uZT1lLHRoaXMubW9kZT1yPy5tb2RlPz8iYXV0byIsdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPXI/LmFsdGVybmF0aXZlV2Vla2RheXM/PyExLHRoaXMuc2xvcHB5UmFuZ2VzPXI/LnNsb3BweVJhbmdlcz8/ITEsdGhpcy5zZWNvbmQ9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5taW51dGU9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5ob3VyPUFycmF5KDI0KS5maWxsKDApLHRoaXMuZGF5PUFycmF5KDMxKS5maWxsKDApLHRoaXMubW9udGg9QXJyYXkoMTIpLmZpbGwoMCksdGhpcy5kYXlPZldlZWs9QXJyYXkoNykuZmlsbCgwKSx0aGlzLnllYXI9QXJyYXkoMWU0KS5maWxsKDApLHRoaXMubGFzdERheU9mTW9udGg9ITEsdGhpcy5sYXN0V2Vla2RheT0hMSx0aGlzLm5lYXJlc3RXZWVrZGF5cz1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLnN0YXJET009ITEsdGhpcy5zdGFyRE9XPSExLHRoaXMuc3RhclllYXI9ITEsdGhpcy51c2VBbmRMb2dpYz0hMSx0aGlzLnBhcnNlKCl9cGFyc2UoKXtpZighKHR5cGVvZiB0aGlzLnBhdHRlcm49PSJzdHJpbmcifHx0aGlzLnBhdHRlcm4gaW5zdGFuY2VvZiBTdHJpbmcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBQYXR0ZXJuIGhhcyB0byBiZSBvZiB0eXBlIHN0cmluZy4iKTt0aGlzLnBhdHRlcm4uaW5kZXhPZigiQCIpPj0wJiYodGhpcy5wYXR0ZXJuPXRoaXMuaGFuZGxlTmlja25hbWVzKHRoaXMucGF0dGVybikudHJpbSgpKTtsZXQgdD10aGlzLnBhdHRlcm4ubWF0Y2goL1xTKy9nKXx8WyIiXSxlPXQubGVuZ3RoO2lmKHQubGVuZ3RoPDV8fHQubGVuZ3RoPjcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGludmFsaWQgY29uZmlndXJhdGlvbiBmb3JtYXQgKCciK3RoaXMucGF0dGVybisiJyksIGV4YWN0bHkgZml2ZSwgc2l4LCBvciBzZXZlbiBzcGFjZSBzZXBhcmF0ZWQgcGFydHMgYXJlIHJlcXVpcmVkLiIpO2lmKHRoaXMubW9kZSE9PSJhdXRvIil7bGV0IGE7c3dpdGNoKHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmE9NTticmVhaztjYXNlIjYtcGFydCI6YT02O2JyZWFrO2Nhc2UiNy1wYXJ0IjphPTc7YnJlYWs7Y2FzZSI1LW9yLTYtcGFydHMiOmE9WzUsNl07YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmE9WzYsN107YnJlYWs7ZGVmYXVsdDphPTB9aWYoIShBcnJheS5pc0FycmF5KGEpP2EuaW5jbHVkZXMoZSk6ZT09PWEpKXtsZXQgcz1BcnJheS5pc0FycmF5KGEpP2Euam9pbigiIG9yICIpOmEudG9TdHJpbmcoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbW9kZSAnJHt0aGlzLm1vZGV9JyByZXF1aXJlcyBleGFjdGx5ICR7c30gcGFydHMsIGJ1dCBwYXR0ZXJuICcke3RoaXMucGF0dGVybn0nIGhhcyAke2V9IHBhcnRzLmApfX1pZih0Lmxlbmd0aD09PTUmJnQudW5zaGlmdCgiMCIpLHQubGVuZ3RoPT09NiYmdC5wdXNoKCIqIiksdFszXS50b1VwcGVyQ2FzZSgpPT09IkxXIj8odGhpcy5sYXN0V2Vla2RheT0hMCx0WzNdPSIiKTp0WzNdLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTCIpPj0wJiYodFszXT10WzNdLnJlcGxhY2UoL0wvZ2ksIiIpLHRoaXMubGFzdERheU9mTW9udGg9ITApLHRbM109PSIqIiYmKHRoaXMuc3RhckRPTT0hMCksdFs2XT09IioiJiYodGhpcy5zdGFyWWVhcj0hMCksdFs0XS5sZW5ndGg+PTMmJih0WzRdPXRoaXMucmVwbGFjZUFscGhhTW9udGhzKHRbNF0pKSx0WzVdLmxlbmd0aD49MyYmKHRbNV09dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzP3RoaXMucmVwbGFjZUFscGhhRGF5c1F1YXJ0eih0WzVdKTp0aGlzLnJlcGxhY2VBbHBoYURheXModFs1XSkpLHRbNV0uc3RhcnRzV2l0aCgiKyIpJiYodGhpcy51c2VBbmRMb2dpYz0hMCx0WzVdPXRbNV0uc3Vic3RyaW5nKDEpLHRbNV09PT0iIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IERheS1vZi13ZWVrIGZpZWxkIGNhbm5vdCBiZSBlbXB0eSBhZnRlciAnKycgbW9kaWZpZXIuIik7c3dpdGNoKHRbNV09PSIqIiYmKHRoaXMuc3RhckRPVz0hMCksdGhpcy5wYXR0ZXJuLmluZGV4T2YoIj8iKT49MCYmKHRbMF09dFswXS5yZXBsYWNlKC9cPy9nLCIqIiksdFsxXT10WzFdLnJlcGxhY2UoL1w/L2csIioiKSx0WzJdPXRbMl0ucmVwbGFjZSgvXD8vZywiKiIpLHRbM109dFszXS5yZXBsYWNlKC9cPy9nLCIqIiksdFs0XT10WzRdLnJlcGxhY2UoL1w/L2csIioiKSx0WzVdPXRbNV0ucmVwbGFjZSgvXD8vZywiKiIpLHRbNl0mJih0WzZdPXRbNl0ucmVwbGFjZSgvXD8vZywiKiIpKSksdGhpcy5tb2RlKXtjYXNlIjUtcGFydCI6dFswXT0iMCIsdFs2XT0iKiI7YnJlYWs7Y2FzZSI2LXBhcnQiOnRbNl09IioiO2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjp0WzZdPSIqIjticmVhaztjYXNlIjYtb3ItNy1wYXJ0cyI6YnJlYWs7Y2FzZSI3LXBhcnQiOmNhc2UiYXV0byI6YnJlYWt9dGhpcy50aHJvd0F0SWxsZWdhbENoYXJhY3RlcnModCksdGhpcy5wYXJ0VG9BcnJheSgic2Vjb25kIix0WzBdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgibWludXRlIix0WzFdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgiaG91ciIsdFsyXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImRheSIsdFszXSwtMSwxKSx0aGlzLnBhcnRUb0FycmF5KCJtb250aCIsdFs0XSwtMSwxKTtsZXQgcj10aGlzLmFsdGVybmF0aXZlV2Vla2RheXM/LTE6MDt0aGlzLnBhcnRUb0FycmF5KCJkYXlPZldlZWsiLHRbNV0sciw2MyksdGhpcy5wYXJ0VG9BcnJheSgieWVhciIsdFs2XSwwLDEpLCF0aGlzLmFsdGVybmF0aXZlV2Vla2RheXMmJnRoaXMuZGF5T2ZXZWVrWzddJiYodGhpcy5kYXlPZldlZWtbMF09dGhpcy5kYXlPZldlZWtbN10pfXBhcnRUb0FycmF5KHQsZSxyLGEpe2xldCBzPXRoaXNbdF0sbj10PT09ImRheSImJnRoaXMubGFzdERheU9mTW9udGgsbz10PT09ImRheSImJnRoaXMubGFzdFdlZWtkYXk7aWYoZT09PSIiJiYhbiYmIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIit0KyIgKCIrZSsiKSBpcyBlbXB0eSwgY2hlY2sgZm9yIHRyYWlsaW5nIHNwYWNlcy4iKTtpZihlPT09IioiKXJldHVybiBzLmZpbGwoYSk7bGV0IGw9ZS5zcGxpdCgiLCIpO2lmKGwubGVuZ3RoPjEpZm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKyspdGhpcy5wYXJ0VG9BcnJheSh0LGxbY10scixhKTtlbHNlIGUuaW5kZXhPZigiLSIpIT09LTEmJmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVSYW5nZVdpdGhTdGVwcGluZyhlLHQscixhKTplLmluZGV4T2YoIi0iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2UoZSx0LHIsYSk6ZS5pbmRleE9mKCIvIikhPT0tMT90aGlzLmhhbmRsZVN0ZXBwaW5nKGUsdCxyLGEpOmUhPT0iIiYmdGhpcy5oYW5kbGVOdW1iZXIoZSx0LHIsYSl9dGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKChlPT09Mz8vW14vKjAtOSxcLVd3TGxdKy86ZT09PTU/L1teLyowLTksXC0jTGxdKy86L1teLyowLTksXC1dKy8pLnRlc3QodFtlXSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitlKyIgKCIrdFtlXSsiKSBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMuIil9aGFuZGxlTnVtYmVyKHQsZSxyLGEpe2xldCBzPXRoaXMuZXh0cmFjdE50aCh0LGUpLG49dC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIik7aWYoZSE9PSJkYXkiJiZuKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBOZWFyZXN0IHdlZWtkYXkgbW9kaWZpZXIgKFcpIG9ubHkgYWxsb3dlZCBpbiBkYXktb2YtbW9udGguIik7biYmKGU9Im5lYXJlc3RXZWVrZGF5cyIpO2xldCBvPXBhcnNlSW50KHNbMF0sMTApK3I7aWYoaXNOYU4obykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46ICIrZSsiIGlzIG5vdCBhIG51bWJlcjogJyIrdCsiJyIpO3RoaXMuc2V0UGFydChlLG8sc1sxXXx8YSl9c2V0UGFydCh0LGUscil7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHBhcnQgc3BlY2lmaWVkOiAiK3QpO2lmKHQ9PT0iZGF5T2ZXZWVrIil7aWYoZT09PTcmJihlPTApLGU8MHx8ZT42KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrOiAiK2UpO3RoaXMuc2V0TnRoV2Vla2RheU9mTW9udGgoZSxyKTtyZXR1cm59aWYodD09PSJzZWNvbmQifHx0PT09Im1pbnV0ZSIpe2lmKGU8MHx8ZT49NjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0iaG91ciIpe2lmKGU8MHx8ZT49MjQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0iZGF5Inx8dD09PSJuZWFyZXN0V2Vla2RheXMiKXtpZihlPDB8fGU+PTMxKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09Im1vbnRoIil7aWYoZTwwfHxlPj0xMil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UpfWVsc2UgaWYodD09PSJ5ZWFyIiYmKGU8MXx8ZT49MWU0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UrIiAoc3VwcG9ydGVkIHJhbmdlOiAxLTk5OTkpIik7dGhpc1t0XVtlXT1yfXZhbGlkYXRlTm90TmFOKHQsZSl7aWYoaXNOYU4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcihlKX12YWxpZGF0ZVJhbmdlKHQsZSxyLGEscyl7aWYodD5lKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBGcm9tIHZhbHVlIGlzIGxhcmdlciB0aGFuIHRvIHZhbHVlOiAnIitzKyInIik7aWYociE9PXZvaWQgMCl7aWYocj09PTApdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogMCIpO2lmKHI+dGhpc1thXS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlIG9mIHBhcnQgKCIrdGhpc1thXS5sZW5ndGgrIikiKX19aGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcodCxlLHIsYSl7aWYodC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiByYW5nZXMgd2l0aCBzdGVwcGluZy4iKTtsZXQgcz10aGlzLmV4dHJhY3ROdGgodCxlKSxuPXNbMF0ubWF0Y2goL14oXGQrKS0oXGQrKVwvKFxkKykkLyk7aWYobj09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZSB3aXRoIHN0ZXBwaW5nOiAnIit0KyInIik7bGV0WyxvLGwsY109bixkPXBhcnNlSW50KG8sMTApK3IsZj1wYXJzZUludChsLDEwKStyLHA9cGFyc2VJbnQoYywxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihkLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihmLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHVwcGVyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihwLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShkLGYscCxlLHQpO2ZvcihsZXQgaD1kO2g8PWY7aCs9cCl0aGlzLnNldFBhcnQoZSxoLHNbMV18fGEpfWV4dHJhY3ROdGgodCxlKXtsZXQgcj10LGE7aWYoci5pbmNsdWRlcygiIyIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogbnRoICgjKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQiKTthPXIuc3BsaXQoIiMiKVsxXSxyPXIuc3BsaXQoIiMiKVswXX1lbHNlIGlmKHIudG9VcHBlckNhc2UoKS5lbmRzV2l0aCgiTCIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogTCBtb2RpZmllciBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQgKHVzZSBMIGFsb25lIGZvciBkYXktb2YtbW9udGgpIik7YT0iTCIscj1yLnNsaWNlKDAsLTEpfXJldHVybltyLGFdfWhhbmRsZVJhbmdlKHQsZSxyLGEpe2lmKHQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gYSByYW5nZS4iKTtsZXQgcz10aGlzLmV4dHJhY3ROdGgodCxlKSxuPXNbMF0uc3BsaXQoIi0iKTtpZihuLmxlbmd0aCE9PTIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZTogJyIrdCsiJyIpO2xldCBvPXBhcnNlSW50KG5bMF0sMTApK3IsbD1wYXJzZUludChuWzFdLDEwKStyO3RoaXMudmFsaWRhdGVOb3ROYU4obywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4obCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShvLGwsdm9pZCAwLGUsdCk7Zm9yKGxldCBjPW87Yzw9bDtjKyspdGhpcy5zZXRQYXJ0KGUsYyxzWzFdfHxhKX1oYW5kbGVTdGVwcGluZyh0LGUscixhKXtpZih0LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIHBhcnRzIHdpdGggc3RlcHBpbmcuIik7bGV0IHM9dGhpcy5leHRyYWN0TnRoKHQsZSksbj1zWzBdLnNwbGl0KCIvIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6ICciK3QrIiciKTtpZih0aGlzLnNsb3BweVJhbmdlcyluWzBdPT09IiImJihuWzBdPSIqIik7ZWxzZXtpZihuWzBdPT09IiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBtaXNzaW5nIHByZWZpeCAoJyIrdCsiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpO2lmKG5bMF0hPT0iKiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBudW1lcmljIHByZWZpeCAoJyIrdCsiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpfWxldCBvPTA7blswXSE9PSIqIiYmKG89cGFyc2VJbnQoblswXSwxMCkrcik7bGV0IGw9cGFyc2VJbnQoblsxXSwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihsLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZSgwLHRoaXNbZV0ubGVuZ3RoLTEsbCxlLHQpO2ZvcihsZXQgYz1vO2M8dGhpc1tlXS5sZW5ndGg7Yys9bCl0aGlzLnNldFBhcnQoZSxjLHNbMV18fGEpfXJlcGxhY2VBbHBoYURheXModCl7cmV0dXJuIHQucmVwbGFjZSgvLXN1bi9naSwiLTciKS5yZXBsYWNlKC9zdW4vZ2ksIjAiKS5yZXBsYWNlKC9tb24vZ2ksIjEiKS5yZXBsYWNlKC90dWUvZ2ksIjIiKS5yZXBsYWNlKC93ZWQvZ2ksIjMiKS5yZXBsYWNlKC90aHUvZ2ksIjQiKS5yZXBsYWNlKC9mcmkvZ2ksIjUiKS5yZXBsYWNlKC9zYXQvZ2ksIjYiKX1yZXBsYWNlQWxwaGFEYXlzUXVhcnR6KHQpe3JldHVybiB0LnJlcGxhY2UoL3N1bi9naSwiMSIpLnJlcGxhY2UoL21vbi9naSwiMiIpLnJlcGxhY2UoL3R1ZS9naSwiMyIpLnJlcGxhY2UoL3dlZC9naSwiNCIpLnJlcGxhY2UoL3RodS9naSwiNSIpLnJlcGxhY2UoL2ZyaS9naSwiNiIpLnJlcGxhY2UoL3NhdC9naSwiNyIpfXJlcGxhY2VBbHBoYU1vbnRocyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9qYW4vZ2ksIjEiKS5yZXBsYWNlKC9mZWIvZ2ksIjIiKS5yZXBsYWNlKC9tYXIvZ2ksIjMiKS5yZXBsYWNlKC9hcHIvZ2ksIjQiKS5yZXBsYWNlKC9tYXkvZ2ksIjUiKS5yZXBsYWNlKC9qdW4vZ2ksIjYiKS5yZXBsYWNlKC9qdWwvZ2ksIjciKS5yZXBsYWNlKC9hdWcvZ2ksIjgiKS5yZXBsYWNlKC9zZXAvZ2ksIjkiKS5yZXBsYWNlKC9vY3QvZ2ksIjEwIikucmVwbGFjZSgvbm92L2dpLCIxMSIpLnJlcGxhY2UoL2RlYy9naSwiMTIiKX1oYW5kbGVOaWNrbmFtZXModCl7bGV0IGU9dC50cmltKCkudG9Mb3dlckNhc2UoKTtpZihlPT09IkB5ZWFybHkifHxlPT09IkBhbm51YWxseSIpcmV0dXJuIjAgMCAxIDEgKiI7aWYoZT09PSJAbW9udGhseSIpcmV0dXJuIjAgMCAxICogKiI7aWYoZT09PSJAd2Vla2x5IilyZXR1cm4iMCAwICogKiAwIjtpZihlPT09IkBkYWlseSJ8fGU9PT0iQG1pZG5pZ2h0IilyZXR1cm4iMCAwICogKiAqIjtpZihlPT09IkBob3VybHkiKXJldHVybiIwICogKiAqICoiO2lmKGU9PT0iQHJlYm9vdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IEByZWJvb3QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGFuIGV2ZW50LWJhc2VkIHRyaWdnZXIgdGhhdCByZXF1aXJlcyBzeXN0ZW0gc3RhcnR1cCBkZXRlY3Rpb24uIik7cmV0dXJuIHR9c2V0TnRoV2Vla2RheU9mTW9udGgodCxlKXtpZih0eXBlb2YgZSE9Im51bWJlciImJmUudG9VcHBlckNhc2UoKT09PSJMIil0aGlzLmRheU9mV2Vla1t0XT10aGlzLmRheU9mV2Vla1t0XXwzMjtlbHNlIGlmKGU9PT02Myl0aGlzLmRheU9mV2Vla1t0XT02MztlbHNlIGlmKGU8NiYmZT4wKXRoaXMuZGF5T2ZXZWVrW3RdPXRoaXMuZGF5T2ZXZWVrW3RdfEJxdFtlLTFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG50aCB3ZWVrZGF5IG91dCBvZiByYW5nZSwgc2hvdWxkIGJlIDEtNSBvciBMLiBWYWx1ZTogJHtlfSwgVHlwZTogJHt0eXBlb2YgZX1gKX19LEdDZT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGNpPVtbIm1vbnRoIiwieWVhciIsMF0sWyJkYXkiLCJtb250aCIsLTFdLFsiaG91ciIsImRheSIsMF0sWyJtaW51dGUiLCJob3VyIiwwXSxbInNlY29uZCIsIm1pbnV0ZSIsMF1dLEdzPWNsYXNzIHFxdHtzdGF0aWN7aSh0aGlzLCJzIil9dHo7bXM7c2Vjb25kO21pbnV0ZTtob3VyO2RheTttb250aDt5ZWFyO2NvbnN0cnVjdG9yKGUscil7aWYodGhpcy50ej1yLGUmJmUgaW5zdGFuY2VvZiBEYXRlKWlmKCFpc05hTihlKSl0aGlzLmZyb21EYXRlKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgZGF0ZSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKTtlbHNlIGlmKGU9PW51bGwpdGhpcy5mcm9tRGF0ZShuZXcgRGF0ZSk7ZWxzZSBpZihlJiZ0eXBlb2YgZT09InN0cmluZyIpdGhpcy5mcm9tU3RyaW5nKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHFxdCl0aGlzLmZyb21Dcm9uRGF0ZShlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25EYXRlOiBJbnZhbGlkIHR5cGUgKCIrdHlwZW9mIGUrIikgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yIil9Z2V0TGFzdERheU9mTW9udGgoZSxyKXtyZXR1cm4gciE9PTE/R0NlW3JdOm5ldyBEYXRlKERhdGUuVVRDKGUscisxLDApKS5nZXRVVENEYXRlKCl9Z2V0TGFzdFdlZWtkYXkoZSxyKXtsZXQgYT10aGlzLmdldExhc3REYXlPZk1vbnRoKGUscikscz1uZXcgRGF0ZShEYXRlLlVUQyhlLHIsYSkpLmdldFVUQ0RheSgpO3JldHVybiBzPT09MD9hLTI6cz09PTY/YS0xOmF9Z2V0TmVhcmVzdFdlZWtkYXkoZSxyLGEpe2xldCBzPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSxyKTtpZihhPnMpcmV0dXJuLTE7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEMoZSxyLGEpKS5nZXRVVENEYXkoKTtyZXR1cm4gbj09PTA/YT09PXM/YS0yOmErMTpuPT09Nj9hPT09MT9hKzI6YS0xOmF9aXNOdGhXZWVrZGF5T2ZNb250aChlLHIsYSxzKXtsZXQgbj1uZXcgRGF0ZShEYXRlLlVUQyhlLHIsYSkpLmdldFVUQ0RheSgpLG89MDtmb3IobGV0IGw9MTtsPD1hO2wrKyluZXcgRGF0ZShEYXRlLlVUQyhlLHIsbCkpLmdldFVUQ0RheSgpPT09biYmbysrO2lmKHMmNjMmJkJxdFtvLTFdJnMpcmV0dXJuITA7aWYocyYzMil7bGV0IGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aChlLHIpO2ZvcihsZXQgYz1hKzE7Yzw9bDtjKyspaWYobmV3IERhdGUoRGF0ZS5VVEMoZSxyLGMpKS5nZXRVVENEYXkoKT09PW4pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9ZnJvbURhdGUoZSl7aWYodGhpcy50eiE9PXZvaWQgMClpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpK3RoaXMudHosdGhpcy5ob3VyPWUuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1lLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ZS5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKTtlbHNlIHRyeXtsZXQgcj1UQyhlLHRoaXMudHopO3RoaXMubXM9ZS5nZXRNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1yLnMsdGhpcy5taW51dGU9ci5pLHRoaXMuaG91cj1yLmgsdGhpcy5kYXk9ci5kLHRoaXMubW9udGg9ci5tLTEsdGhpcy55ZWFyPXIueX1jYXRjaChyKXtsZXQgYT1yIGluc3RhbmNlb2YgRXJyb3I/ci5tZXNzYWdlOlN0cmluZyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uRGF0ZTogRmFpbGVkIHRvIGNvbnZlcnQgZGF0ZSB0byB0aW1lem9uZSAnJHt0aGlzLnR6fScuIFRoaXMgbWF5IGhhcHBlbiB3aXRoIGludmFsaWQgdGltZXpvbmUgbmFtZXMgb3IgZGF0ZXMuIE9yaWdpbmFsIGVycm9yOiAke2F9YCl9ZWxzZSB0aGlzLm1zPWUuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRNaW51dGVzKCksdGhpcy5ob3VyPWUuZ2V0SG91cnMoKSx0aGlzLmRheT1lLmdldERhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0TW9udGgoKSx0aGlzLnllYXI9ZS5nZXRGdWxsWWVhcigpfWZyb21Dcm9uRGF0ZShlKXt0aGlzLnR6PWUudHosdGhpcy55ZWFyPWUueWVhcix0aGlzLm1vbnRoPWUubW9udGgsdGhpcy5kYXk9ZS5kYXksdGhpcy5ob3VyPWUuaG91cix0aGlzLm1pbnV0ZT1lLm1pbnV0ZSx0aGlzLnNlY29uZD1lLnNlY29uZCx0aGlzLm1zPWUubXN9YXBwbHkoKXtpZih0aGlzLm1vbnRoPjExfHx0aGlzLm1vbnRoPDB8fHRoaXMuZGF5PkdDZVt0aGlzLm1vbnRoXXx8dGhpcy5kYXk8MXx8dGhpcy5ob3VyPjU5fHx0aGlzLm1pbnV0ZT41OXx8dGhpcy5zZWNvbmQ+NTl8fHRoaXMuaG91cjwwfHx0aGlzLm1pbnV0ZTwwfHx0aGlzLnNlY29uZDwwKXtsZXQgZT1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcykpO3JldHVybiB0aGlzLm1zPWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPWUuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1lLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ZS5nZXRVVENGdWxsWWVhcigpLCEwfWVsc2UgcmV0dXJuITF9ZnJvbVN0cmluZyhlKXtpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpe2xldCByPVJxdChlKTt0aGlzLm1zPXIuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ci5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXIuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1yLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXIuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ci5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKFJxdChlLHRoaXMudHopKX1maW5kTmV4dChlLHIsYSxzKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUscixhLHMsMSl9X2ZpbmRNYXRjaChlLHIsYSxzLG4pe2xldCBvPXRoaXNbcl0sbDthLmxhc3REYXlPZk1vbnRoJiYobD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSk7bGV0IGM9IWEuc3RhckRPVyYmcj09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwLGQ9dGhpc1tyXStzLGY9bj09PTE/cD0+cDxhW3JdLmxlbmd0aDpwPT5wPj0wO2ZvcihsZXQgcD1kO2YocCk7cCs9bil7bGV0IGg9YVtyXVtwXTtpZihyPT09ImRheSImJiFoKXtmb3IobGV0IG09MDttPGEubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDttKyspaWYoYS5uZWFyZXN0V2Vla2RheXNbbV0pe2xldCB2PXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsbS1zKTtpZih2PT09LTEpY29udGludWU7aWYodj09PXAtcyl7aD0xO2JyZWFrfX19aWYocj09PSJkYXkiJiZhLmxhc3RXZWVrZGF5KXtsZXQgbT10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtwLXM9PT1tJiYoaD0xKX1pZihyPT09ImRheSImJmEubGFzdERheU9mTW9udGgmJnAtcz09bCYmKGg9MSkscj09PSJkYXkiJiYhYS5zdGFyRE9XKXtsZXQgbT1hLmRheU9mV2Vla1soYysocC1zLTEpKSU3XTtpZihtJiZtJjYzKW09dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLHAtcyxtKT8xOjA7ZWxzZSBpZihtKXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHttfWApO2EudXNlQW5kTG9naWM/aD1oJiZtOiFlLmRvbUFuZERvdyYmIWEuc3RhckRPTT9oPWh8fG06aD1oJiZtfWlmKGgpcmV0dXJuIHRoaXNbcl09cC1zLG8hPT10aGlzW3JdPzI6MX1yZXR1cm4gM31yZWN1cnNlKGUscixhKXtpZihhPT09MCYmIWUuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG49LTE7Zm9yKGxldCBvPXRoaXMueWVhcisxO288ZS55ZWFyLmxlbmd0aCYmbzwxZTQ7bysrKWlmKGUueWVhcltvXT09PTEpe249bzticmVha31pZihuPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW4sdGhpcy5tb250aD0wLHRoaXMuZGF5PTEsdGhpcy5ob3VyPTAsdGhpcy5taW51dGU9MCx0aGlzLnNlY29uZD0wLHRoaXMubXM9MH1pZih0aGlzLnllYXI+PTFlNClyZXR1cm4gbnVsbH1sZXQgcz10aGlzLmZpbmROZXh0KHIsY2lbYV1bMF0sZSxjaVthXVsyXSk7aWYocz4xKXtsZXQgbj1hKzE7Zm9yKDtuPGNpLmxlbmd0aDspdGhpc1tjaVtuXVswXV09LWNpW25dWzJdLG4rKztpZihzPT09Myl7aWYodGhpc1tjaVthXVsxXV0rKyx0aGlzW2NpW2FdWzBdXT0tY2lbYV1bMl0sdGhpcy5hcHBseSgpLGE9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTAmJnRoaXMueWVhcjwxZTQ7KXRoaXMueWVhcisrO2lmKHRoaXMueWVhcj49MWU0fHx0aGlzLnllYXI+PWUueWVhci5sZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZShlLHIsMCl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZShlLHIsYS0xKX1yZXR1cm4gYSs9MSxhPj1jaS5sZW5ndGg/dGhpczooZS5zdGFyWWVhcj90aGlzLnllYXI+PTNlMzp0aGlzLnllYXI+PTFlNCk/bnVsbDp0aGlzLnJlY3Vyc2UoZSxyLGEpfWluY3JlbWVudChlLHIsYSl7cmV0dXJuIHRoaXMuc2Vjb25kKz1yLmludGVydmFsIT09dm9pZCAwJiZyLmludGVydmFsPjEmJmE/ci5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKGUsciwwKX1kZWNyZW1lbnQoZSxyKXtyZXR1cm4gdGhpcy5zZWNvbmQtPXIuaW50ZXJ2YWwhPT12b2lkIDAmJnIuaW50ZXJ2YWw+MT9yLmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHIsMCwwKX1yZWN1cnNlQmFja3dhcmQoZSxyLGEscz0wKXtpZihzPjFlNClyZXR1cm4gbnVsbDtpZihhPT09MCYmIWUuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG89LTE7Zm9yKGxldCBsPXRoaXMueWVhci0xO2w+PTA7bC0tKWlmKGUueWVhcltsXT09PTEpe289bDticmVha31pZihvPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW8sdGhpcy5tb250aD0xMSx0aGlzLmRheT0zMSx0aGlzLmhvdXI9MjMsdGhpcy5taW51dGU9NTksdGhpcy5zZWNvbmQ9NTksdGhpcy5tcz0wfWlmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfWxldCBuPXRoaXMuZmluZFByZXZpb3VzKHIsY2lbYV1bMF0sZSxjaVthXVsyXSk7aWYobj4xKXtsZXQgbz1hKzE7Zm9yKDtvPGNpLmxlbmd0aDspe2xldCBsPWNpW29dWzBdLGM9Y2lbb11bMl0sZD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShsLGUsYyk7dGhpc1tsXT1kLG8rK31pZihuPT09Myl7aWYodGhpc1tjaVthXVsxXV0tLSxhPT09MCl7bGV0IGY9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXk+ZiYmKHRoaXMuZGF5PWYpfWlmKGE9PT0xKWlmKHRoaXMuZGF5PD0wKXRoaXMuZGF5PTE7ZWxzZXtsZXQgZj10aGlzLnllYXIscD10aGlzLm1vbnRoO2Zvcig7cDwwOylwKz0xMixmLS07Zm9yKDtwPjExOylwLT0xMixmKys7bGV0IGg9cCE9PTE/R0NlW3BdOm5ldyBEYXRlKERhdGUuVVRDKGYscCsxLDApKS5nZXRVVENEYXRlKCk7dGhpcy5kYXk+aCYmKHRoaXMuZGF5PWgpfXRoaXMuYXBwbHkoKTtsZXQgbD1jaVthXVswXSxjPWNpW2FdWzJdLGQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUobCxlLGMpO2lmKGw9PT0iZGF5Iil7bGV0IGY9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpc1tsXT1NYXRoLm1pbihkLGYpfWVsc2UgdGhpc1tsXT1kO2lmKHRoaXMuYXBwbHkoKSxhPT09MCl7bGV0IGY9Y2lbMV1bMl0scD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiZGF5IixlLGYpLGg9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCksbT1NYXRoLm1pbihwLGgpO20hPT10aGlzLmRheSYmKHRoaXMuZGF5PW0sdGhpcy5ob3VyPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJob3VyIixlLGNpWzJdWzJdKSx0aGlzLm1pbnV0ZT10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgibWludXRlIixlLGNpWzNdWzJdKSx0aGlzLnNlY29uZD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgic2Vjb25kIixlLGNpWzRdWzJdKSl9aWYoYT09PTAmJiFlLnN0YXJZZWFyKXtmb3IoO3RoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MDspdGhpcy55ZWFyLS07aWYodGhpcy55ZWFyPDApcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZUJhY2t3YXJkKGUsciwwLHMrMSl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZUJhY2t3YXJkKGUscixhLTEscysxKX1yZXR1cm4gYSs9MSxhPj1jaS5sZW5ndGg/dGhpczp0aGlzLnllYXI8MD9udWxsOnRoaXMucmVjdXJzZUJhY2t3YXJkKGUscixhLHMrMSl9Z2V0TWF4UGF0dGVyblZhbHVlKGUscixhKXtpZihlPT09ImRheSImJnIubGFzdERheU9mTW9udGgpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2lmKGU9PT0iZGF5IiYmIXIuc3RhckRPVylyZXR1cm4gdGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7Zm9yKGxldCBzPXJbZV0ubGVuZ3RoLTE7cz49MDtzLS0paWYocltlXVtzXSlyZXR1cm4gcy1hO3JldHVybiByW2VdLmxlbmd0aC0xLWF9ZmluZFByZXZpb3VzKGUscixhLHMpe3JldHVybiB0aGlzLl9maW5kTWF0Y2goZSxyLGEscywtMSl9Z2V0RGF0ZShlKXtyZXR1cm4gZXx8dGhpcy50ej09PXZvaWQgMD9uZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcyk6dHlwZW9mIHRoaXMudHo9PSJudW1iZXIiP25ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZS10aGlzLnR6LHRoaXMuc2Vjb25kLHRoaXMubXMpKTpGcXQoV0NlKHRoaXMueWVhcix0aGlzLm1vbnRoKzEsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMudHopLCExKX1nZXRUaW1lKCl7cmV0dXJuIHRoaXMuZ2V0RGF0ZSghMSkuZ2V0VGltZSgpfW1hdGNoKGUscil7aWYoIWUuc3RhclllYXImJih0aGlzLnllYXI8MHx8dGhpcy55ZWFyPj1lLnllYXIubGVuZ3RofHxlLnllYXJbdGhpcy55ZWFyXT09PTApKXJldHVybiExO2ZvcihsZXQgYT0wO2E8Y2kubGVuZ3RoO2ErKyl7bGV0IHM9Y2lbYV1bMF0sbj1jaVthXVsyXSxvPXRoaXNbc107aWYobytuPDB8fG8rbj49ZVtzXS5sZW5ndGgpcmV0dXJuITE7bGV0IGw9ZVtzXVtvK25dO2lmKHM9PT0iZGF5Iil7aWYoIWwpe2ZvcihsZXQgYz0wO2M8ZS5uZWFyZXN0V2Vla2RheXMubGVuZ3RoO2MrKylpZihlLm5lYXJlc3RXZWVrZGF5c1tjXSl7bGV0IGQ9dGhpcy5nZXROZWFyZXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCxjLW4pO2lmKGQhPT0tMSYmZD09PW8pe2w9MTticmVha319fWlmKGUubGFzdFdlZWtkYXkpe2xldCBjPXRoaXMuZ2V0TGFzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgpO289PT1jJiYobD0xKX1pZihlLmxhc3REYXlPZk1vbnRoKXtsZXQgYz10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09YyYmKGw9MSl9aWYoIWUuc3RhckRPVyl7bGV0IGM9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCksZD1lLmRheU9mV2Vla1soYysoby0xKSklN107ZCYmZCY2MyYmKGQ9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLG8sZCk/MTowKSxlLnVzZUFuZExvZ2ljP2w9bCYmZDohci5kb21BbmREb3cmJiFlLnN0YXJET00/bD1sfHxkOmw9bCYmZH19aWYoIWwpcmV0dXJuITF9cmV0dXJuITB9fTtpKEVnYSwiUiIpO2koTEMsInAiKTtpKElnYSwiXyIpO2koUGdhLCJ4Iik7SHF0PTMwKjFlMyxydj1bXSxWcXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiRSIpfW5hbWU7b3B0aW9ucztfc3RhdGVzO2ZuO2dldFR6KCl7cmV0dXJuIHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldH1hcHBseURheU9mZnNldCh0KXtpZih0aGlzLm9wdGlvbnMuZGF5T2Zmc2V0IT09dm9pZCAwJiZ0aGlzLm9wdGlvbnMuZGF5T2Zmc2V0IT09MCl7bGV0IGU9dGhpcy5vcHRpb25zLmRheU9mZnNldCoyNCo2MCo2MCoxZTM7cmV0dXJuIG5ldyBEYXRlKHQuZ2V0VGltZSgpK2UpfXJldHVybiB0fWNvbnN0cnVjdG9yKHQsZSxyKXtsZXQgYSxzO2lmKExDKGUpKXM9ZTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilhPWU7ZWxzZSBpZihlIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgZm9yIG9wdGlvbnNJbi4gU2hvdWxkIGJlIG9uZSBvZiBmdW5jdGlvbiwgb3Igb2JqZWN0IChvcHRpb25zKS4iKTtpZihMQyhyKSlzPXI7ZWxzZSBpZih0eXBlb2Ygcj09Im9iamVjdCIpYT1yO2Vsc2UgaWYociE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBmdW5jSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYodGhpcy5uYW1lPWE/Lm5hbWUsdGhpcy5vcHRpb25zPUVnYShhKSx0aGlzLl9zdGF0ZXM9e2tpbGw6ITEsYmxvY2tpbmc6ITEscHJldmlvdXNSdW46dm9pZCAwLGN1cnJlbnRSdW46dm9pZCAwLG9uY2U6dm9pZCAwLGN1cnJlbnRUaW1lb3V0OnZvaWQgMCxtYXhSdW5zOmE/YS5tYXhSdW5zOnZvaWQgMCxwYXVzZWQ6YT9hLnBhdXNlZDohMSxwYXR0ZXJuOm5ldyBZMmUoIiogKiAqICogKiIsdm9pZCAwLHttb2RlOiJhdXRvIn0pfSx0JiYodCBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiB0PT0ic3RyaW5nIiYmdC5pbmRleE9mKCI6Iik+MCk/dGhpcy5fc3RhdGVzLm9uY2U9bmV3IEdzKHQsdGhpcy5nZXRUeigpKTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgWTJlKHQsdGhpcy5vcHRpb25zLnRpbWV6b25lLHttb2RlOnRoaXMub3B0aW9ucy5tb2RlLGFsdGVybmF0aXZlV2Vla2RheXM6dGhpcy5vcHRpb25zLmFsdGVybmF0aXZlV2Vla2RheXMsc2xvcHB5UmFuZ2VzOnRoaXMub3B0aW9ucy5zbG9wcHlSYW5nZXN9KSx0aGlzLm5hbWUpe2lmKHJ2LmZpbmQobj0+bi5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNyb246IFRyaWVkIHRvIGluaXRpYWxpemUgbmV3IG5hbWVkIGpvYiAnIit0aGlzLm5hbWUrIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uIik7cnYucHVzaCh0aGlzKX1yZXR1cm4gcyE9PXZvaWQgMCYmSWdhKHMpJiYodGhpcy5mbj1zLHRoaXMuc2NoZWR1bGUoKSksdGhpc31uZXh0UnVuKHQpe2xldCBlPXRoaXMuX25leHQodCk7cmV0dXJuIGU/dGhpcy5hcHBseURheU9mZnNldChlLmdldERhdGUoITEpKTpudWxsfW5leHRSdW5zKHQsZSl7dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnQ+dGhpcy5fc3RhdGVzLm1heFJ1bnMmJih0PXRoaXMuX3N0YXRlcy5tYXhSdW5zKTtsZXQgcj1lfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKHQsciwibmV4dCIpfXByZXZpb3VzUnVucyh0LGUpe3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKHQsZXx8dm9pZCAwLCJwcmV2aW91cyIpfV9lbnVtZXJhdGVSdW5zKHQsZSxyKXtsZXQgYT1bXSxzPWU/bmV3IEdzKGUsdGhpcy5nZXRUeigpKTpudWxsLG49cj09PSJuZXh0Ij90aGlzLl9uZXh0OnRoaXMuX3ByZXZpb3VzO2Zvcig7dC0tOyl7bGV0IG89bi5jYWxsKHRoaXMscyk7aWYoIW8pYnJlYWs7bGV0IGw9by5nZXREYXRlKCExKTthLnB1c2godGhpcy5hcHBseURheU9mZnNldChsKSkscz1vfXJldHVybiBhfW1hdGNoKHQpe2lmKHRoaXMuX3N0YXRlcy5vbmNlKXtsZXQgcj1uZXcgR3ModCx0aGlzLmdldFR6KCkpO3IubXM9MDtsZXQgYT1uZXcgR3ModGhpcy5fc3RhdGVzLm9uY2UsdGhpcy5nZXRUeigpKTtyZXR1cm4gYS5tcz0wLHIuZ2V0VGltZSgpPT09YS5nZXRUaW1lKCl9bGV0IGU9bmV3IEdzKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4gZS5tcz0wLGUubWF0Y2godGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKX1nZXRQYXR0ZXJuKCl7aWYoIXRoaXMuX3N0YXRlcy5vbmNlKXJldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1nZXRPbmNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldERhdGUoKTpudWxsfWlzUnVubmluZygpe2xldCB0PXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksZT0hdGhpcy5fc3RhdGVzLnBhdXNlZCxyPXRoaXMuZm4hPT12b2lkIDAsYT0hdGhpcy5fc3RhdGVzLmtpbGw7cmV0dXJuIGUmJnImJmEmJnQhPT1udWxsfWlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9zdGF0ZXMua2lsbH1pc0J1c3koKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmJsb2NraW5nfWN1cnJlbnRSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4/dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4uZ2V0RGF0ZSgpOm51bGx9cHJldmlvdXNSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuP3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bi5nZXREYXRlKCk6bnVsbH1tc1RvTmV4dCh0KXtsZXQgZT10aGlzLl9uZXh0KHQpO3JldHVybiBlP3QgaW5zdGFuY2VvZiBHc3x8dCBpbnN0YW5jZW9mIERhdGU/ZS5nZXRUaW1lKCktdC5nZXRUaW1lKCk6ZS5nZXRUaW1lKCktbmV3IEdzKHQpLmdldFRpbWUoKTpudWxsfXN0b3AoKXt0aGlzLl9zdGF0ZXMua2lsbD0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpO2xldCB0PXJ2LmluZGV4T2YodGhpcyk7dD49MCYmcnYuc3BsaWNlKHQsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKHQpe2lmKHQmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJdCBpcyBub3QgYWxsb3dlZCB0byBzY2hlZHVsZSB0d28gZnVuY3Rpb25zIHVzaW5nIHRoZSBzYW1lIENyb25lciBpbnN0YW5jZS4iKTt0JiYodGhpcy5mbj10KTtsZXQgZT10aGlzLm1zVG9OZXh0KCkscj10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pO3JldHVybiBlPT1udWxsfHxpc05hTihlKXx8cj09PW51bGw/dGhpczooZT5IcXQmJihlPUhxdCksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcihyKSxlKSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmUGdhKHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIodCl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBHcyh2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKGUpe2lmKExDKHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaChlLHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBHcyh0LHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIodCl7bGV0IGU9bmV3IERhdGUscj0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmZS5nZXRUaW1lKCk+PXQuZ2V0VGltZSgpLGE9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDtyJiYhYT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTpyJiZhJiZMQyh0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dCh0KXtsZXQgZT0hISh0fHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bikscj0hMTshdCYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFt0LGVdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKHQsZSkscj0hdCksdD1uZXcgR3ModCx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZ0JiZ0LmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJih0PXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgYT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IEdzKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4hciYmYSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoYT1hLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsZSkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PXQuZ2V0VGltZSgpfHxhPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmYS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6YX1fcHJldmlvdXModCl7bGV0IGU9bmV3IEdzKHQsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZlLmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKGU9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IHI9bmV3IEdzKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPGUuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KHI9ci5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSxyPT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJnIuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOnIpfV9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpe2xldCByPW5ldyBHcyh2b2lkIDAsdGhpcy5nZXRUeigpKSxhPXQ7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1yLmdldFRpbWUoKSl7YT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgcz1hLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7czw9ci5nZXRUaW1lKCk7KWE9bmV3IEdzKGEsdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxzPWEuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7ZT0hMH1yZXR1cm4gYT09PW51bGwmJihhPXZvaWQgMCksW2EsZV19fX0pO3ZhciBaMmUsJEMsTmdhLERTcywkMCxRMmUsbG8sUTEsYXYsWUNlLGp1LGl2LFgyZSxKMmUsZWNlLHRjZSxhNixzdixLMmUsVXF0LEtDZSxaQ2UsV3F0LFFDZSxTcj11KCgpPT57WjJlPTcsJEM9MzY1LjI0MjUsTmdhPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyxEU3M9LU5nYSwkMD02MDQ4ZTUsUTJlPTg2NGU1LGxvPTZlNCxRMT0zNmU1LGF2PTFlMyxZQ2U9NTI1NjAwLGp1PTQzMjAwLGl2PTE0NDAsWDJlPTYwLEoyZT0zLGVjZT0xMix0Y2U9NCxhNj0zNjAwLHN2PTYwLEsyZT1hNioyNCxVcXQ9SzJlKjcsS0NlPUsyZSozNjUuMjQyNSxaQ2U9S0NlLzEyLFdxdD1aQ2UqMyxRQ2U9U3ltYm9sLmZvcigiY29uc3RydWN0RGF0ZUZyb20iKX0pO2Z1bmN0aW9uIFdlKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoZSk6dCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZRQ2UgaW4gdD90W1FDZV0oZSk6dCBpbnN0YW5jZW9mIERhdGU/bmV3IHQuY29uc3RydWN0b3IoZSk6bmV3IERhdGUoZSl9dmFyIEVTcyxVdD11KCgpPT57U3IoKTtpKFdlLCJjb25zdHJ1Y3RGcm9tIik7RVNzPVdlfSk7ZnVuY3Rpb24gTWUodCxlKXtyZXR1cm4gV2UoZXx8dCx0KX12YXIgT1NzLFplPXUoKCk9PntVdCgpO2koTWUsInRvRGF0ZSIpO09Tcz1NZX0pO2Z1bmN0aW9uIFlzKHQsZSxyKXtsZXQgYT1NZSh0LHI/LmluKTtyZXR1cm4gaXNOYU4oZSk/V2Uocj8uaW58fHQsTmFOKTooZSYmYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK2UpLGEpfXZhciBxU3MsQTA9dSgoKT0+e1V0KCk7WmUoKTtpKFlzLCJhZGREYXlzIik7cVNzPVlzfSk7ZnVuY3Rpb24gRTAodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO2lmKGlzTmFOKGUpKXJldHVybiBXZShyPy5pbnx8dCxOYU4pO2lmKCFlKXJldHVybiBhO2xldCBzPWEuZ2V0RGF0ZSgpLG49V2Uocj8uaW58fHQsYS5nZXRUaW1lKCkpO24uc2V0TW9udGgoYS5nZXRNb250aCgpK2UrMSwwKTtsZXQgbz1uLmdldERhdGUoKTtyZXR1cm4gcz49bz9uOihhLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCkscyksYSl9dmFyIEdTcyxudj11KCgpPT57VXQoKTtaZSgpO2koRTAsImFkZE1vbnRocyIpO0dTcz1FMH0pO2Z1bmN0aW9uIFV1KHQsZSxyKXtsZXR7eWVhcnM6YT0wLG1vbnRoczpzPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOmw9MCxtaW51dGVzOmM9MCxzZWNvbmRzOmQ9MH09ZSxmPU1lKHQscj8uaW4pLHA9c3x8YT9FMChmLHMrYSoxMik6ZixoPW98fG4/WXMocCxvK24qNyk6cCxtPWMrbCo2MCxiPShkK20qNjApKjFlMztyZXR1cm4gV2Uocj8uaW58fHQsK2grYil9dmFyIGVNcyxYQ2U9dSgoKT0+e0EwKCk7bnYoKTtVdCgpO1plKCk7aShVdSwiYWRkIik7ZU1zPVV1fSk7ZnVuY3Rpb24gcmNlKHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldERheSgpPT09Nn12YXIgaU1zLEpDZT11KCgpPT57WmUoKTtpKHJjZSwiaXNTYXR1cmRheSIpO2lNcz1yY2V9KTtmdW5jdGlvbiBhY2UodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0RGF5KCk9PT0wfXZhciBsTXMsZXplPXUoKCk9PntaZSgpO2koYWNlLCJpc1N1bmRheSIpO2xNcz1hY2V9KTtmdW5jdGlvbiBJMCh0LGUpe2xldCByPU1lKHQsZT8uaW4pLmdldERheSgpO3JldHVybiByPT09MHx8cj09PTZ9dmFyIHBNcyxBQz11KCgpPT57WmUoKTtpKEkwLCJpc1dlZWtlbmQiKTtwTXM9STB9KTtmdW5jdGlvbiBpY2UodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pLHM9STAoYSxyKTtpZihpc05hTihlKSlyZXR1cm4gV2Uocj8uaW4sTmFOKTtsZXQgbj1hLmdldEhvdXJzKCksbz1lPDA/LTE6MSxsPU1hdGgudHJ1bmMoZS81KTthLnNldERhdGUoYS5nZXREYXRlKCkrbCo3KTtsZXQgYz1NYXRoLmFicyhlJTUpO2Zvcig7Yz4wOylhLnNldERhdGUoYS5nZXREYXRlKCkrbyksSTAoYSxyKXx8KGMtPTEpO3JldHVybiBzJiZJMChhLHIpJiZlIT09MCYmKHJjZShhLHIpJiZhLnNldERhdGUoYS5nZXREYXRlKCkrKG88MD8yOi0xKSksYWNlKGEscikmJmEuc2V0RGF0ZShhLmdldERhdGUoKSsobzwwPzE6LTIpKSksYS5zZXRIb3VycyhuKSxhfXZhciB5TXMsdHplPXUoKCk9PntVdCgpO0pDZSgpO2V6ZSgpO0FDKCk7WmUoKTtpKGljZSwiYWRkQnVzaW5lc3NEYXlzIik7eU1zPWljZX0pO2Z1bmN0aW9uIFd1KHQsZSxyKXtyZXR1cm4gV2Uocj8uaW58fHQsK01lKHQpK2UpfXZhciBDTXMsRUM9dSgoKT0+e1V0KCk7WmUoKTtpKFd1LCJhZGRNaWxsaXNlY29uZHMiKTtDTXM9V3V9KTtmdW5jdGlvbiBzY2UodCxlLHIpe3JldHVybiBXdSh0LGUqUTEscil9dmFyIERNcyxyemU9dSgoKT0+e0VDKCk7U3IoKTtpKHNjZSwiYWRkSG91cnMiKTtETXM9c2NlfSk7ZnVuY3Rpb24gQWEoKXtyZXR1cm4gR3F0fWZ1bmN0aW9uIFlxdCh0KXtHcXQ9dH12YXIgR3F0LGNvPXUoKCk9PntHcXQ9e307aShBYSwiZ2V0RGVmYXVsdE9wdGlvbnMiKTtpKFlxdCwic2V0RGVmYXVsdE9wdGlvbnMiKX0pO2Z1bmN0aW9uIEthKHQsZSl7bGV0IHI9QWEoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHM9TWUodCxlPy5pbiksbj1zLmdldERheSgpLG89KG48YT83OjApK24tYTtyZXR1cm4gcy5zZXREYXRlKHMuZ2V0RGF0ZSgpLW8pLHMuc2V0SG91cnMoMCwwLDAsMCksc312YXIgT01zLEcyPXUoKCk9PntjbygpO1plKCk7aShLYSwic3RhcnRPZldlZWsiKTtPTXM9S2F9KTtmdW5jdGlvbiBTcyh0LGUpe3JldHVybiBLYSh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIEhNcyxQMD11KCgpPT57RzIoKTtpKFNzLCJzdGFydE9mSVNPV2VlayIpO0hNcz1Tc30pO2Z1bmN0aW9uIEZvKHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz1XZShyLDApO3Muc2V0RnVsbFllYXIoYSsxLDAsNCkscy5zZXRIb3VycygwLDAsMCwwKTtsZXQgbj1TcyhzKSxvPVdlKHIsMCk7by5zZXRGdWxsWWVhcihhLDAsNCksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1TcyhvKTtyZXR1cm4gci5nZXRUaW1lKCk+PW4uZ2V0VGltZSgpP2ErMTpyLmdldFRpbWUoKT49bC5nZXRUaW1lKCk/YTphLTF9dmFyIEdNcyxHdT11KCgpPT57VXQoKTtQMCgpO1plKCk7aShGbywiZ2V0SVNPV2Vla1llYXIiKTtHTXM9Rm99KTtmdW5jdGlvbiBSaSh0KXtsZXQgZT1NZSh0KSxyPW5ldyBEYXRlKERhdGUuVVRDKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCksZS5nZXRIb3VycygpLGUuZ2V0TWludXRlcygpLGUuZ2V0U2Vjb25kcygpLGUuZ2V0TWlsbGlzZWNvbmRzKCkpKTtyZXR1cm4gci5zZXRVVENGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkpLCt0LStyfXZhciB4ND11KCgpPT57WmUoKTtpKFJpLCJnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIil9KTtmdW5jdGlvbiBIdCh0LC4uLmUpe2xldCByPVdlLmJpbmQobnVsbCx0fHxlLmZpbmQoYT0+dHlwZW9mIGE9PSJvYmplY3QiKSk7cmV0dXJuIGUubWFwKHIpfXZhciBIYT11KCgpPT57VXQoKTtpKEh0LCJub3JtYWxpemVEYXRlcyIpfSk7ZnVuY3Rpb24gTjAodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4gci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBhQ3MsSUM9dSgoKT0+e1plKCk7aShOMCwic3RhcnRPZkRheSIpO2FDcz1OMH0pO2Z1bmN0aW9uIG1uKHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpLG49TjAoYSksbz1OMChzKSxsPStuLVJpKG4pLGM9K28tUmkobyk7cmV0dXJuIE1hdGgucm91bmQoKGwtYykvUTJlKX12YXIgZENzLHY0PXUoKCk9Pnt4NCgpO0hhKCk7U3IoKTtJQygpO2kobW4sImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIpO2RDcz1tbn0pO2Z1bmN0aW9uIFgxKHQsZSl7bGV0IHI9Rm8odCxlKSxhPVdlKGU/LmlufHx0LDApO3JldHVybiBhLnNldEZ1bGxZZWFyKHIsMCw0KSxhLnNldEhvdXJzKDAsMCwwLDApLFNzKGEpfXZhciBnQ3Msb3Y9dSgoKT0+e1V0KCk7R3UoKTtQMCgpO2koWDEsInN0YXJ0T2ZJU09XZWVrWWVhciIpO2dDcz1YMX0pO2Z1bmN0aW9uIG5jZSh0LGUscil7bGV0IGE9TWUodCxyPy5pbikscz1tbihhLFgxKGEscikpLG49V2Uocj8uaW58fHQsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoZSwwLDQpLG4uc2V0SG91cnMoMCwwLDAsMCksYT1YMShuKSxhLnNldERhdGUoYS5nZXREYXRlKCkrcyksYX12YXIgU0NzLGF6ZT11KCgpPT57VXQoKTt2NCgpO292KCk7WmUoKTtpKG5jZSwic2V0SVNPV2Vla1llYXIiKTtTQ3M9bmNlfSk7ZnVuY3Rpb24gb2NlKHQsZSxyKXtyZXR1cm4gbmNlKHQsRm8odCxyKStlLHIpfXZhciBUQ3MsaXplPXUoKCk9PntHdSgpO2F6ZSgpO2kob2NlLCJhZGRJU09XZWVrWWVhcnMiKTtUQ3M9b2NlfSk7ZnVuY3Rpb24gbHYodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldFRpbWUoYS5nZXRUaW1lKCkrZSpsbyksYX12YXIgRUNzLGxjZT11KCgpPT57U3IoKTtaZSgpO2kobHYsImFkZE1pbnV0ZXMiKTtFQ3M9bHZ9KTtmdW5jdGlvbiBjdih0LGUscil7cmV0dXJuIEUwKHQsZSozLHIpfXZhciBPQ3MsY2NlPXUoKCk9PntudigpO2koY3YsImFkZFF1YXJ0ZXJzIik7T0NzPWN2fSk7ZnVuY3Rpb24gZGNlKHQsZSxyKXtyZXR1cm4gV3UodCxlKjFlMyxyKX12YXIgSENzLHN6ZT11KCgpPT57RUMoKTtpKGRjZSwiYWRkU2Vjb25kcyIpO0hDcz1kY2V9KTtmdW5jdGlvbiBZdSh0LGUscil7cmV0dXJuIFlzKHQsZSo3LHIpfXZhciBVQ3MsUEM9dSgoKT0+e0EwKCk7aShZdSwiYWRkV2Vla3MiKTtVQ3M9WXV9KTtmdW5jdGlvbiB1Y2UodCxlLHIpe3JldHVybiBFMCh0LGUqMTIscil9dmFyIEtDcyxuemU9dSgoKT0+e252KCk7aSh1Y2UsImFkZFllYXJzIik7S0NzPXVjZX0pO2Z1bmN0aW9uIEtxdCh0LGUscil7bGV0W2Esc109WytNZSh0LnN0YXJ0LHI/LmluKSwrTWUodC5lbmQscj8uaW4pXS5zb3J0KChsLGMpPT5sLWMpLFtuLG9dPVsrTWUoZS5zdGFydCxyPy5pbiksK01lKGUuZW5kLHI/LmluKV0uc29ydCgobCxjKT0+bC1jKTtyZXR1cm4gcj8uaW5jbHVzaXZlP2E8PW8mJm48PXM6YTxvJiZuPHN9dmFyIEpDcyxacXQ9dSgoKT0+e1plKCk7aShLcXQsImFyZUludGVydmFsc092ZXJsYXBwaW5nIik7SkNzPUtxdH0pO2Z1bmN0aW9uIHBjZSh0LGUpe2xldCByLGE9ZT8uaW47cmV0dXJuIHQuZm9yRWFjaChzPT57IWEmJnR5cGVvZiBzPT0ib2JqZWN0IiYmKGE9V2UuYmluZChudWxsLHMpKTtsZXQgbj1NZShzLGEpOyghcnx8cjxufHxpc05hTigrbikpJiYocj1uKX0pLFdlKGEscnx8TmFOKX12YXIgaXpzLG96ZT11KCgpPT57VXQoKTtaZSgpO2kocGNlLCJtYXgiKTtpenM9cGNlfSk7ZnVuY3Rpb24gZmNlKHQsZSl7bGV0IHIsYT1lPy5pbjtyZXR1cm4gdC5mb3JFYWNoKHM9PnshYSYmdHlwZW9mIHM9PSJvYmplY3QiJiYoYT1XZS5iaW5kKG51bGwscykpO2xldCBuPU1lKHMsYSk7KCFyfHxyPm58fGlzTmFOKCtuKSkmJihyPW4pfSksV2UoYSxyfHxOYU4pfXZhciBjenMsbHplPXUoKCk9PntVdCgpO1plKCk7aShmY2UsIm1pbiIpO2N6cz1mY2V9KTtmdW5jdGlvbiBRcXQodCxlLHIpe2xldFthLHMsbl09SHQocj8uaW4sdCxlLnN0YXJ0LGUuZW5kKTtyZXR1cm4gZmNlKFtwY2UoW2Esc10sciksbl0scil9dmFyIG16cyxYcXQ9dSgoKT0+e0hhKCk7b3plKCk7bHplKCk7aShRcXQsImNsYW1wIik7bXpzPVFxdH0pO2Z1bmN0aW9uIGhjZSh0LGUpe2xldCByPStNZSh0KTtpZihpc05hTihyKSlyZXR1cm4gTmFOO2xldCBhLHM7cmV0dXJuIGUuZm9yRWFjaCgobixvKT0+e2xldCBsPU1lKG4pO2lmKGlzTmFOKCtsKSl7YT1OYU4scz1OYU47cmV0dXJufWxldCBjPU1hdGguYWJzKHItK2wpOyhhPT1udWxsfHxjPHMpJiYoYT1vLHM9Yyl9KSxhfXZhciB2enMsY3plPXUoKCk9PntaZSgpO2koaGNlLCJjbG9zZXN0SW5kZXhUbyIpO3Z6cz1oY2V9KTtmdW5jdGlvbiBKcXQodCxlLHIpe2xldFthLC4uLnNdPUh0KHI/LmluLHQsLi4uZSksbj1oY2UoYSxzKTtpZih0eXBlb2Ygbj09Im51bWJlciImJmlzTmFOKG4pKXJldHVybiBXZShhLE5hTik7aWYobiE9PXZvaWQgMClyZXR1cm4gc1tuXX12YXIgQ3pzLGVWdD11KCgpPT57SGEoKTtjemUoKTtVdCgpO2koSnF0LCJjbG9zZXN0VG8iKTtDenM9SnF0fSk7ZnVuY3Rpb24gdW8odCxlKXtsZXQgcj0rTWUodCktK01lKGUpO3JldHVybiByPDA/LTE6cj4wPzE6cn12YXIgTHpzLGk2PXUoKCk9PntaZSgpO2kodW8sImNvbXBhcmVBc2MiKTtMenM9dW99KTtmdW5jdGlvbiB0VnQodCxlKXtsZXQgcj0rTWUodCktK01lKGUpO3JldHVybiByPjA/LTE6cjwwPzE6cn12YXIgRXpzLHJWdD11KCgpPT57WmUoKTtpKHRWdCwiY29tcGFyZURlc2MiKTtFenM9dFZ0fSk7ZnVuY3Rpb24gRnIodCl7cmV0dXJuIFdlKHQsRGF0ZS5ub3coKSl9dmFyIE96cyxLcz11KCgpPT57VXQoKTtpKEZyLCJjb25zdHJ1Y3ROb3ciKTtPenM9RnJ9KTtmdW5jdGlvbiBhVnQodCl7bGV0IGU9TWF0aC50cnVuYyh0LzcpO3JldHVybiBlPT09MD8wOmV9dmFyIEh6cyxpVnQ9dSgoKT0+e1NyKCk7aShhVnQsImRheXNUb1dlZWtzIik7SHpzPWFWdH0pO2Z1bmN0aW9uIE8wKHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpO3JldHVybitOMChhKT09K04wKHMpfXZhciBXenMsZHY9dSgoKT0+e0hhKCk7SUMoKTtpKE8wLCJpc1NhbWVEYXkiKTtXenM9TzB9KTtmdW5jdGlvbiBtY2UodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgdD09Im9iamVjdCImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IERhdGVdIn12YXIgS3pzLGR6ZT11KCgpPT57aShtY2UsImlzRGF0ZSIpO0t6cz1tY2V9KTtmdW5jdGlvbiBMbih0KXtyZXR1cm4hKCFtY2UodCkmJnR5cGVvZiB0IT0ibnVtYmVyInx8aXNOYU4oK01lKHQpKSl9dmFyIGVfcyx5ND11KCgpPT57ZHplKCk7WmUoKTtpKExuLCJpc1ZhbGlkIik7ZV9zPUxufSk7ZnVuY3Rpb24gc1Z0KHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpO2lmKCFMbihhKXx8IUxuKHMpKXJldHVybiBOYU47bGV0IG49bW4oYSxzKSxvPW48MD8tMToxLGw9TWF0aC50cnVuYyhuLzcpLGM9bCo1LGQ9WXMocyxsKjcpO2Zvcig7IU8wKGEsZCk7KWMrPUkwKGQscik/MDpvLGQ9WXMoZCxvKTtyZXR1cm4gYz09PTA/MDpjfXZhciBjX3MsblZ0PXUoKCk9PntIYSgpO0EwKCk7djQoKTtkdigpO3k0KCk7QUMoKTtpKHNWdCwiZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzIik7Y19zPXNWdH0pO2Z1bmN0aW9uIGdjZSh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKTtyZXR1cm4gRm8oYSxyKS1GbyhzLHIpfXZhciBoX3MsdXplPXUoKCk9PntIYSgpO0d1KCk7aShnY2UsImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzIik7aF9zPWdjZX0pO2Z1bmN0aW9uIG9WdCh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPVNzKGEpLG89U3MocyksbD0rbi1SaShuKSxjPStvLVJpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLWMpLyQwKX12YXIgd19zLGxWdD11KCgpPT57eDQoKTtIYSgpO1NyKCk7UDAoKTtpKG9WdCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrcyIpO3dfcz1vVnR9KTtmdW5jdGlvbiBzNih0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPWEuZ2V0RnVsbFllYXIoKS1zLmdldEZ1bGxZZWFyKCksbz1hLmdldE1vbnRoKCktcy5nZXRNb250aCgpO3JldHVybiBuKjEyK299dmFyIENfcyxiY2U9dSgoKT0+e0hhKCk7aShzNiwiZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMiKTtDX3M9czZ9KTtmdW5jdGlvbiBOQyh0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiBNYXRoLnRydW5jKHIuZ2V0TW9udGgoKS8zKSsxfXZhciBMX3MscHplPXUoKCk9PntaZSgpO2koTkMsImdldFF1YXJ0ZXIiKTtMX3M9TkN9KTtmdW5jdGlvbiB1dih0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPWEuZ2V0RnVsbFllYXIoKS1zLmdldEZ1bGxZZWFyKCksbz1OQyhhKS1OQyhzKTtyZXR1cm4gbio0K299dmFyIElfcyxmemU9dSgoKT0+e0hhKCk7cHplKCk7aSh1diwiZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyIpO0lfcz11dn0pO2Z1bmN0aW9uIG42KHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpLG49S2EoYSxyKSxvPUthKHMsciksbD0rbi1SaShuKSxjPStvLVJpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLWMpLyQwKX12YXIgSF9zLHhjZT11KCgpPT57eDQoKTtIYSgpO1NyKCk7RzIoKTtpKG42LCJkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzIik7SF9zPW42fSk7ZnVuY3Rpb24gS3UodCxlLHIpe2xldFthLHNdPUh0KHI/LmluLHQsZSk7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKS1zLmdldEZ1bGxZZWFyKCl9dmFyIFVfcyx2Y2U9dSgoKT0+e0hhKCk7aShLdSwiZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyIpO1Vfcz1LdX0pO2Z1bmN0aW9uIHB2KHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpLG49Y1Z0KGEscyksbz1NYXRoLmFicyhtbihhLHMpKTthLnNldERhdGUoYS5nZXREYXRlKCktbipvKTtsZXQgbD0rKGNWdChhLHMpPT09LW4pLGM9biooby1sKTtyZXR1cm4gYz09PTA/MDpjfWZ1bmN0aW9uIGNWdCh0LGUpe2xldCByPXQuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCl8fHQuZ2V0TW9udGgoKS1lLmdldE1vbnRoKCl8fHQuZ2V0RGF0ZSgpLWUuZ2V0RGF0ZSgpfHx0LmdldEhvdXJzKCktZS5nZXRIb3VycygpfHx0LmdldE1pbnV0ZXMoKS1lLmdldE1pbnV0ZXMoKXx8dC5nZXRTZWNvbmRzKCktZS5nZXRTZWNvbmRzKCl8fHQuZ2V0TWlsbGlzZWNvbmRzKCktZS5nZXRNaWxsaXNlY29uZHMoKTtyZXR1cm4gcjwwPy0xOnI+MD8xOnJ9dmFyIFpfcyx5Y2U9dSgoKT0+e0hhKCk7djQoKTtpKHB2LCJkaWZmZXJlbmNlSW5EYXlzIik7aShjVnQsImNvbXBhcmVMb2NhbEFzYyIpO1pfcz1wdn0pO2Z1bmN0aW9uIHBvKHQpe3JldHVybiBlPT57bGV0IGE9KHQ/TWF0aFt0XTpNYXRoLnRydW5jKShlKTtyZXR1cm4gYT09PTA/MDphfX12YXIgdzQ9dSgoKT0+e2kocG8sImdldFJvdW5kaW5nTWV0aG9kIil9KTtmdW5jdGlvbiBvNih0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPSgrYS0rcykvUTE7cmV0dXJuIHBvKHI/LnJvdW5kaW5nTWV0aG9kKShuKX12YXIgaVRzLHdjZT11KCgpPT57dzQoKTtIYSgpO1NyKCk7aShvNiwiZGlmZmVyZW5jZUluSG91cnMiKTtpVHM9bzZ9KTtmdW5jdGlvbiBrY2UodCxlLHIpe3JldHVybiBvY2UodCwtZSxyKX12YXIgbFRzLGh6ZT11KCgpPT57aXplKCk7aShrY2UsInN1YklTT1dlZWtZZWFycyIpO2xUcz1rY2V9KTtmdW5jdGlvbiBkVnQodCxlLHIpe2xldFthLHNdPUh0KHI/LmluLHQsZSksbj11byhhLHMpLG89TWF0aC5hYnMoZ2NlKGEscyxyKSksbD1rY2UoYSxuKm8sciksYz0rKHVvKGwscyk9PT0tbiksZD1uKihvLWMpO3JldHVybiBkPT09MD8wOmR9dmFyIG1Ucyx1VnQ9dSgoKT0+e0hhKCk7aTYoKTt1emUoKTtoemUoKTtpKGRWdCwiZGlmZmVyZW5jZUluSVNPV2Vla1llYXJzIik7bVRzPWRWdH0pO2Z1bmN0aW9uIGZ2KHQsZSl7cmV0dXJuK01lKHQpLStNZShlKX12YXIgdlRzLFNjZT11KCgpPT57WmUoKTtpKGZ2LCJkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMiKTt2VHM9ZnZ9KTtmdW5jdGlvbiBsNih0LGUscil7bGV0IGE9ZnYodCxlKS9sbztyZXR1cm4gcG8ocj8ucm91bmRpbmdNZXRob2QpKGEpfXZhciBDVHMsTWNlPXUoKCk9Pnt3NCgpO1NyKCk7U2NlKCk7aShsNiwiZGlmZmVyZW5jZUluTWludXRlcyIpO0NUcz1sNn0pO2Z1bmN0aW9uIGh2KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBMVHMsQ2NlPXUoKCk9PntaZSgpO2koaHYsImVuZE9mRGF5Iik7TFRzPWh2fSk7ZnVuY3Rpb24gbXYodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0TW9udGgoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksYSsxLDApLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBFVHMsemNlPXUoKCk9PntaZSgpO2kobXYsImVuZE9mTW9udGgiKTtFVHM9bXZ9KTtmdW5jdGlvbiBfY2UodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4raHYocixlKT09K212KHIsZSl9dmFyIEZUcyxtemU9dSgoKT0+e0NjZSgpO3pjZSgpO1plKCk7aShfY2UsImlzTGFzdERheU9mTW9udGgiKTtGVHM9X2NlfSk7ZnVuY3Rpb24gWnUodCxlLHIpe2xldFthLHMsbl09SHQocj8uaW4sdCx0LGUpLG89dW8ocyxuKSxsPU1hdGguYWJzKHM2KHMsbikpO2lmKGw8MSlyZXR1cm4gMDtzLmdldE1vbnRoKCk9PT0xJiZzLmdldERhdGUoKT4yNyYmcy5zZXREYXRlKDMwKSxzLnNldE1vbnRoKHMuZ2V0TW9udGgoKS1vKmwpO2xldCBjPXVvKHMsbik9PT0tbztfY2UoYSkmJmw9PT0xJiZ1byhhLG4pPT09MSYmKGM9ITEpO2xldCBkPW8qKGwtK2MpO3JldHVybiBkPT09MD8wOmR9dmFyIFdUcyxPQz11KCgpPT57SGEoKTtpNigpO2JjZSgpO216ZSgpO2koWnUsImRpZmZlcmVuY2VJbk1vbnRocyIpO1dUcz1adX0pO2Z1bmN0aW9uIHBWdCh0LGUscil7bGV0IGE9WnUodCxlLHIpLzM7cmV0dXJuIHBvKHI/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgUVRzLGZWdD11KCgpPT57dzQoKTtPQygpO2kocFZ0LCJkaWZmZXJlbmNlSW5RdWFydGVycyIpO1FUcz1wVnR9KTtmdW5jdGlvbiBSMCh0LGUscil7bGV0IGE9ZnYodCxlKS8xZTM7cmV0dXJuIHBvKHI/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgckxzLFJDPXUoKCk9Pnt3NCgpO1NjZSgpO2koUjAsImRpZmZlcmVuY2VJblNlY29uZHMiKTtyTHM9UjB9KTtmdW5jdGlvbiBoVnQodCxlLHIpe2xldCBhPXB2KHQsZSxyKS83O3JldHVybiBwbyhyPy5yb3VuZGluZ01ldGhvZCkoYSl9dmFyIG9McyxtVnQ9dSgoKT0+e3c0KCk7eWNlKCk7aShoVnQsImRpZmZlcmVuY2VJbldlZWtzIik7b0xzPWhWdH0pO2Z1bmN0aW9uIFRjZSh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPXVvKGEscyksbz1NYXRoLmFicyhLdShhLHMpKTthLnNldEZ1bGxZZWFyKDE1ODQpLHMuc2V0RnVsbFllYXIoMTU4NCk7bGV0IGw9dW8oYSxzKT09PS1uLGM9biooby0rbCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgZkxzLGd6ZT11KCgpPT57SGEoKTtpNigpO3ZjZSgpO2koVGNlLCJkaWZmZXJlbmNlSW5ZZWFycyIpO2ZMcz1UY2V9KTtmdW5jdGlvbiBnbih0LGUpe2xldFtyLGFdPUh0KHQsZS5zdGFydCxlLmVuZCk7cmV0dXJue3N0YXJ0OnIsZW5kOmF9fXZhciBGMD11KCgpPT57SGEoKTtpKGduLCJub3JtYWxpemVJbnRlcnZhbCIpfSk7ZnVuY3Rpb24gTGNlKHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytyOithLG89cz9hOnI7by5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscz0hcyk7bGV0IGM9W107Zm9yKDsrbzw9bjspYy5wdXNoKFdlKHIsbykpLG8uc2V0RGF0ZShvLmdldERhdGUoKStsKSxvLnNldEhvdXJzKDAsMCwwLDApO3JldHVybiBzP2MucmV2ZXJzZSgpOmN9dmFyIHdMcyxiemU9dSgoKT0+e0YwKCk7VXQoKTtpKExjZSwiZWFjaERheU9mSW50ZXJ2YWwiKTt3THM9TGNlfSk7ZnVuY3Rpb24gZ1Z0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytyOithLG89cz9hOnI7by5zZXRNaW51dGVzKDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscz0hcyk7bGV0IGM9W107Zm9yKDsrbzw9bjspYy5wdXNoKFdlKHIsbykpLG8uc2V0SG91cnMoby5nZXRIb3VycygpK2wpO3JldHVybiBzP2MucmV2ZXJzZSgpOmN9dmFyIHpMcyxiVnQ9dSgoKT0+e0YwKCk7VXQoKTtpKGdWdCwiZWFjaEhvdXJPZkludGVydmFsIik7ekxzPWdWdH0pO2Z1bmN0aW9uIHhWdCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1nbihlPy5pbix0KTtyLnNldFNlY29uZHMoMCwwKTtsZXQgcz0rcj4rYSxuPXM/K3I6K2Esbz1zP2E6cixsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxzPSFzKTtsZXQgYz1bXTtmb3IoOytvPD1uOyljLnB1c2goV2UocixvKSksbz1sdihvLGwpO3JldHVybiBzP2MucmV2ZXJzZSgpOmN9dmFyIEFMcyx2VnQ9dSgoKT0+e0YwKCk7bGNlKCk7VXQoKTtpKHhWdCwiZWFjaE1pbnV0ZU9mSW50ZXJ2YWwiKTtBTHM9eFZ0fSk7ZnVuY3Rpb24geVZ0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytyOithLG89cz9hOnI7by5zZXRIb3VycygwLDAsMCwwKSxvLnNldERhdGUoMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChXZShyLG8pKSxvLnNldE1vbnRoKG8uZ2V0TW9udGgoKStsKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBPTHMsd1Z0PXUoKCk9PntGMCgpO1V0KCk7aSh5VnQsImVhY2hNb250aE9mSW50ZXJ2YWwiKTtPTHM9eVZ0fSk7ZnVuY3Rpb24gQjAodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0TW9udGgoKSxzPWEtYSUzO3JldHVybiByLnNldE1vbnRoKHMsMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBITHMsRGNlPXUoKCk9PntaZSgpO2koQjAsInN0YXJ0T2ZRdWFydGVyIik7SExzPUIwfSk7ZnVuY3Rpb24ga1Z0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytCMChyKTorQjAoYSksbz1zP0IwKGEpOkIwKHIpLGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChXZShyLG8pKSxvPWN2KG8sbCk7cmV0dXJuIHM/Yy5yZXZlcnNlKCk6Y312YXIgWUxzLFNWdD11KCgpPT57RjAoKTtjY2UoKTtVdCgpO0RjZSgpO2koa1Z0LCJlYWNoUXVhcnRlck9mSW50ZXJ2YWwiKTtZTHM9a1Z0fSk7ZnVuY3Rpb24gTVZ0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zP0thKGEsZSk6S2EocixlKSxvPXM/S2EocixlKTpLYShhLGUpO24uc2V0SG91cnMoMTUpLG8uc2V0SG91cnMoMTUpO2xldCBsPStvLmdldFRpbWUoKSxjPW4sZD1lPy5zdGVwPz8xO2lmKCFkKXJldHVybltdO2Q8MCYmKGQ9LWQscz0hcyk7bGV0IGY9W107Zm9yKDsrYzw9bDspYy5zZXRIb3VycygwKSxmLnB1c2goV2UocixjKSksYz1ZdShjLGQpLGMuc2V0SG91cnMoMTUpO3JldHVybiBzP2YucmV2ZXJzZSgpOmZ9dmFyIHREcyxDVnQ9dSgoKT0+e0YwKCk7UEMoKTtVdCgpO0cyKCk7aShNVnQsImVhY2hXZWVrT2ZJbnRlcnZhbCIpO3REcz1NVnR9KTtmdW5jdGlvbiBndih0LGUpe2xldHtzdGFydDpyLGVuZDphfT1nbihlPy5pbix0KSxzPUxjZSh7c3RhcnQ6cixlbmQ6YX0sZSksbj1bXSxvPTA7Zm9yKDtvPHMubGVuZ3RoOyl7bGV0IGw9c1tvKytdO0kwKGwpJiZuLnB1c2goV2UocixsKSl9cmV0dXJuIG59dmFyIGxEcywkY2U9dSgoKT0+e0YwKCk7VXQoKTtiemUoKTtBQygpO2koZ3YsImVhY2hXZWVrZW5kT2ZJbnRlcnZhbCIpO2xEcz1ndn0pO2Z1bmN0aW9uIFF1KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIHIuc2V0RGF0ZSgxKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIHBEcyxGQz11KCgpPT57WmUoKTtpKFF1LCJzdGFydE9mTW9udGgiKTtwRHM9UXV9KTtmdW5jdGlvbiB6VnQodCxlKXtsZXQgcj1RdSh0LGUpLGE9bXYodCxlKTtyZXR1cm4gZ3Yoe3N0YXJ0OnIsZW5kOmF9LGUpfXZhciB4RHMsX1Z0PXUoKCk9PnskY2UoKTt6Y2UoKTtGQygpO2koelZ0LCJlYWNoV2Vla2VuZE9mTW9udGgiKTt4RHM9elZ0fSk7ZnVuY3Rpb24gQWNlKHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoYSsxLDAsMCksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIGtEcyx4emU9dSgoKT0+e1plKCk7aShBY2UsImVuZE9mWWVhciIpO2tEcz1BY2V9KTtmdW5jdGlvbiBidih0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSwwLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgekRzLEVjZT11KCgpPT57WmUoKTtpKGJ2LCJzdGFydE9mWWVhciIpO3pEcz1idn0pO2Z1bmN0aW9uIFRWdCh0LGUpe2xldCByPWJ2KHQsZSksYT1BY2UodCxlKTtyZXR1cm4gZ3Yoe3N0YXJ0OnIsZW5kOmF9LGUpfXZhciBBRHMsTFZ0PXUoKCk9PnskY2UoKTt4emUoKTtFY2UoKTtpKFRWdCwiZWFjaFdlZWtlbmRPZlllYXIiKTtBRHM9VFZ0fSk7ZnVuY3Rpb24gRFZ0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytyOithLG89cz9hOnI7by5zZXRIb3VycygwLDAsMCwwKSxvLnNldE1vbnRoKDAsMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChXZShyLG8pKSxvLnNldEZ1bGxZZWFyKG8uZ2V0RnVsbFllYXIoKStsKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBPRHMsJFZ0PXUoKCk9PntGMCgpO1V0KCk7aShEVnQsImVhY2hZZWFyT2ZJbnRlcnZhbCIpO09Ecz1EVnR9KTtmdW5jdGlvbiBBVnQodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKSxzPTkrTWF0aC5mbG9vcihhLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihzLDExLDMxKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgSERzLEVWdD11KCgpPT57WmUoKTtpKEFWdCwiZW5kT2ZEZWNhZGUiKTtIRHM9QVZ0fSk7ZnVuY3Rpb24gSVZ0KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIHIuc2V0TWludXRlcyg1OSw1OSw5OTkpLHJ9dmFyIFVEcyxQVnQ9dSgoKT0+e1plKCk7aShJVnQsImVuZE9mSG91ciIpO1VEcz1JVnR9KTtmdW5jdGlvbiBJY2UodCxlKXtsZXQgcj1BYSgpLGE9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscz1NZSh0LGU/LmluKSxuPXMuZ2V0RGF5KCksbz0objxhPy03OjApKzYtKG4tYSk7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKStvKSxzLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksc312YXIgWkRzLHZ6ZT11KCgpPT57Y28oKTtaZSgpO2koSWNlLCJlbmRPZldlZWsiKTtaRHM9SWNlfSk7ZnVuY3Rpb24gTlZ0KHQsZSl7cmV0dXJuIEljZSh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIGUkcyxPVnQ9dSgoKT0+e3Z6ZSgpO2koTlZ0LCJlbmRPZklTT1dlZWsiKTtlJHM9TlZ0fSk7ZnVuY3Rpb24gUlZ0KHQsZSl7bGV0IHI9Rm8odCxlKSxhPVdlKGU/LmlufHx0LDApO2Euc2V0RnVsbFllYXIocisxLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKTtsZXQgcz1TcyhhLGUpO3JldHVybiBzLnNldE1pbGxpc2Vjb25kcyhzLmdldE1pbGxpc2Vjb25kcygpLTEpLHN9dmFyIG4kcyxGVnQ9dSgoKT0+e1V0KCk7R3UoKTtQMCgpO2koUlZ0LCJlbmRPZklTT1dlZWtZZWFyIik7biRzPVJWdH0pO2Z1bmN0aW9uIEJWdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiByLnNldFNlY29uZHMoNTksOTk5KSxyfXZhciBkJHMsSFZ0PXUoKCk9PntaZSgpO2koQlZ0LCJlbmRPZk1pbnV0ZSIpO2Qkcz1CVnR9KTtmdW5jdGlvbiBxVnQodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0TW9udGgoKSxzPWEtYSUzKzM7cmV0dXJuIHIuc2V0TW9udGgocywwKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgaCRzLFZWdD11KCgpPT57WmUoKTtpKHFWdCwiZW5kT2ZRdWFydGVyIik7aCRzPXFWdH0pO2Z1bmN0aW9uIGpWdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiByLnNldE1pbGxpc2Vjb25kcyg5OTkpLHJ9dmFyIHgkcyxVVnQ9dSgoKT0+e1plKCk7aShqVnQsImVuZE9mU2Vjb25kIik7eCRzPWpWdH0pO2Z1bmN0aW9uIFdWdCh0KXtyZXR1cm4gaHYoRGF0ZS5ub3coKSx0KX12YXIgayRzLEdWdD11KCgpPT57Q2NlKCk7aShXVnQsImVuZE9mVG9kYXkiKTtrJHM9V1Z0fSk7ZnVuY3Rpb24gWVZ0KHQpe2xldCBlPUZyKHQ/LmluKSxyPWUuZ2V0RnVsbFllYXIoKSxhPWUuZ2V0TW9udGgoKSxzPWUuZ2V0RGF0ZSgpLG49RnIodD8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsYSxzKzEpLG4uc2V0SG91cnMoMjMsNTksNTksOTk5KSx0Py5pbj90LmluKG4pOm59dmFyIHokcyxLVnQ9dSgoKT0+e0tzKCk7aShZVnQsImVuZE9mVG9tb3Jyb3ciKTt6JHM9WVZ0fSk7ZnVuY3Rpb24gWlZ0KHQpe2xldCBlPUZyKHQ/LmluKSxyPVdlKHQ/LmluLDApO3JldHVybiByLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCktMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyICQkcyxRVnQ9dSgoKT0+e1V0KCk7S3MoKTtpKFpWdCwiZW5kT2ZZZXN0ZXJkYXkiKTskJHM9WlZ0fSk7dmFyIE9nYSxYVnQsSlZ0PXUoKCk9PntPZ2E9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxYVnQ9aSgodCxlLHIpPT57bGV0IGEscz1PZ2FbdF07cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9hPXM6ZT09PTE/YT1zLm9uZTphPXMub3RoZXIucmVwbGFjZSgie3tjb3VudH19IixlLnRvU3RyaW5nKCkpLHI/LmFkZFN1ZmZpeD9yLmNvbXBhcmlzb24mJnIuY29tcGFyaXNvbj4wPyJpbiAiK2E6YSsiIGFnbyI6YX0sImZvcm1hdERpc3RhbmNlIil9KTtmdW5jdGlvbiBQY2UodCl7cmV0dXJuKGU9e30pPT57bGV0IHI9ZS53aWR0aD9TdHJpbmcoZS53aWR0aCk6dC5kZWZhdWx0V2lkdGg7cmV0dXJuIHQuZm9ybWF0c1tyXXx8dC5mb3JtYXRzW3QuZGVmYXVsdFdpZHRoXX19dmFyIGVqdD11KCgpPT57aShQY2UsImJ1aWxkRm9ybWF0TG9uZ0ZuIil9KTt2YXIgUmdhLEZnYSxCZ2EsdGp0LHJqdD11KCgpPT57ZWp0KCk7UmdhPXtmdWxsOiJFRUVFLCBNTU1NIGRvLCB5Iixsb25nOiJNTU1NIGRvLCB5IixtZWRpdW06Ik1NTSBkLCB5IixzaG9ydDoiTU0vZGQveXl5eSJ9LEZnYT17ZnVsbDoiaDptbTpzcyBhIHp6enoiLGxvbmc6Img6bW06c3MgYSB6IixtZWRpdW06Img6bW06c3MgYSIsc2hvcnQ6Img6bW0gYSJ9LEJnYT17ZnVsbDoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbG9uZzoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbWVkaXVtOiJ7e2RhdGV9fSwge3t0aW1lfX0iLHNob3J0OiJ7e2RhdGV9fSwge3t0aW1lfX0ifSx0anQ9e2RhdGU6UGNlKHtmb3JtYXRzOlJnYSxkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpQY2Uoe2Zvcm1hdHM6RmdhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KSxkYXRlVGltZTpQY2Uoe2Zvcm1hdHM6QmdhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KX19KTt2YXIgSGdhLGFqdCxpanQ9dSgoKT0+e0hnYT17bGFzdFdlZWs6IidsYXN0JyBlZWVlICdhdCcgcCIseWVzdGVyZGF5OiIneWVzdGVyZGF5IGF0JyBwIix0b2RheToiJ3RvZGF5IGF0JyBwIix0b21vcnJvdzoiJ3RvbW9ycm93IGF0JyBwIixuZXh0V2VlazoiZWVlZSAnYXQnIHAiLG90aGVyOiJQIn0sYWp0PWkoKHQsZSxyLGEpPT5IZ2FbdF0sImZvcm1hdFJlbGF0aXZlIil9KTtmdW5jdGlvbiB4dih0KXtyZXR1cm4oZSxyKT0+e2xldCBhPXI/LmNvbnRleHQ/U3RyaW5nKHIuY29udGV4dCk6InN0YW5kYWxvbmUiLHM7aWYoYT09PSJmb3JtYXR0aW5nIiYmdC5mb3JtYXR0aW5nVmFsdWVzKXtsZXQgbz10LmRlZmF1bHRGb3JtYXR0aW5nV2lkdGh8fHQuZGVmYXVsdFdpZHRoLGw9cj8ud2lkdGg/U3RyaW5nKHIud2lkdGgpOm87cz10LmZvcm1hdHRpbmdWYWx1ZXNbbF18fHQuZm9ybWF0dGluZ1ZhbHVlc1tvXX1lbHNle2xldCBvPXQuZGVmYXVsdFdpZHRoLGw9cj8ud2lkdGg/U3RyaW5nKHIud2lkdGgpOnQuZGVmYXVsdFdpZHRoO3M9dC52YWx1ZXNbbF18fHQudmFsdWVzW29dfWxldCBuPXQuYXJndW1lbnRDYWxsYmFjaz90LmFyZ3VtZW50Q2FsbGJhY2soZSk6ZTtyZXR1cm4gc1tuXX19dmFyIHNqdD11KCgpPT57aSh4diwiYnVpbGRMb2NhbGl6ZUZuIil9KTt2YXIgcWdhLFZnYSxqZ2EsVWdhLFdnYSxHZ2EsWWdhLG5qdCxvanQ9dSgoKT0+e3NqdCgpO3FnYT17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LFZnYT17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0samdhPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxVZ2E9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sV2dhPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxHZ2E9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LFlnYT1pKCh0LGUpPT57bGV0IHI9TnVtYmVyKHQpLGE9ciUxMDA7aWYoYT4yMHx8YTwxMClzd2l0Y2goYSUxMCl7Y2FzZSAxOnJldHVybiByKyJzdCI7Y2FzZSAyOnJldHVybiByKyJuZCI7Y2FzZSAzOnJldHVybiByKyJyZCJ9cmV0dXJuIHIrInRoIn0sIm9yZGluYWxOdW1iZXIiKSxuanQ9e29yZGluYWxOdW1iZXI6WWdhLGVyYTp4dih7dmFsdWVzOnFnYSxkZWZhdWx0V2lkdGg6IndpZGUifSkscXVhcnRlcjp4dih7dmFsdWVzOlZnYSxkZWZhdWx0V2lkdGg6IndpZGUiLGFyZ3VtZW50Q2FsbGJhY2s6aSh0PT50LTEsImFyZ3VtZW50Q2FsbGJhY2siKX0pLG1vbnRoOnh2KHt2YWx1ZXM6amdhLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXk6eHYoe3ZhbHVlczpVZ2EsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLGRheVBlcmlvZDp4dih7dmFsdWVzOldnYSxkZWZhdWx0V2lkdGg6IndpZGUiLGZvcm1hdHRpbmdWYWx1ZXM6R2dhLGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IndpZGUifSl9fSk7ZnVuY3Rpb24gdnYodCl7cmV0dXJuKGUscj17fSk9PntsZXQgYT1yLndpZHRoLHM9YSYmdC5tYXRjaFBhdHRlcm5zW2FdfHx0Lm1hdGNoUGF0dGVybnNbdC5kZWZhdWx0TWF0Y2hXaWR0aF0sbj1lLm1hdGNoKHMpO2lmKCFuKXJldHVybiBudWxsO2xldCBvPW5bMF0sbD1hJiZ0LnBhcnNlUGF0dGVybnNbYV18fHQucGFyc2VQYXR0ZXJuc1t0LmRlZmF1bHRQYXJzZVdpZHRoXSxjPUFycmF5LmlzQXJyYXkobCk/WmdhKGwscD0+cC50ZXN0KG8pKTpLZ2EobCxwPT5wLnRlc3QobykpLGQ7ZD10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKGMpOmMsZD1yLnZhbHVlQ2FsbGJhY2s/ci52YWx1ZUNhbGxiYWNrKGQpOmQ7bGV0IGY9ZS5zbGljZShvLmxlbmd0aCk7cmV0dXJue3ZhbHVlOmQscmVzdDpmfX19ZnVuY3Rpb24gS2dhKHQsZSl7Zm9yKGxldCByIGluIHQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUodFtyXSkpcmV0dXJuIHJ9ZnVuY3Rpb24gWmdhKHQsZSl7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspaWYoZSh0W3JdKSlyZXR1cm4gcn12YXIgbGp0PXUoKCk9PntpKHZ2LCJidWlsZE1hdGNoRm4iKTtpKEtnYSwiZmluZEtleSIpO2koWmdhLCJmaW5kSW5kZXgiKX0pO2Z1bmN0aW9uIGNqdCh0KXtyZXR1cm4oZSxyPXt9KT0+e2xldCBhPWUubWF0Y2godC5tYXRjaFBhdHRlcm4pO2lmKCFhKXJldHVybiBudWxsO2xldCBzPWFbMF0sbj1lLm1hdGNoKHQucGFyc2VQYXR0ZXJuKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKG5bMF0pOm5bMF07bz1yLnZhbHVlQ2FsbGJhY2s/ci52YWx1ZUNhbGxiYWNrKG8pOm87bGV0IGw9ZS5zbGljZShzLmxlbmd0aCk7cmV0dXJue3ZhbHVlOm8scmVzdDpsfX19dmFyIGRqdD11KCgpPT57aShjanQsImJ1aWxkTWF0Y2hQYXR0ZXJuRm4iKX0pO3ZhciBRZ2EsWGdhLEpnYSxlYmEsdGJhLHJiYSxhYmEsaWJhLHNiYSxuYmEsb2JhLGxiYSx1anQscGp0PXUoKCk9PntsanQoKTtkanQoKTtRZ2E9L14oXGQrKSh0aHxzdHxuZHxyZCk/L2ksWGdhPS9cZCsvaSxKZ2E9e25hcnJvdzovXihifGEpL2ksYWJicmV2aWF0ZWQ6L14oYlwuP1xzP2NcLj98YlwuP1xzP2NcLj9ccz9lXC4/fGFcLj9ccz9kXC4/fGNcLj9ccz9lXC4/KS9pLHdpZGU6L14oYmVmb3JlIGNocmlzdHxiZWZvcmUgY29tbW9uIGVyYXxhbm5vIGRvbWluaXxjb21tb24gZXJhKS9pfSxlYmE9e2FueTpbL15iL2ksL14oYXxjKS9pXX0sdGJhPXtuYXJyb3c6L15bMTIzNF0vaSxhYmJyZXZpYXRlZDovXnFbMTIzNF0vaSx3aWRlOi9eWzEyMzRdKHRofHN0fG5kfHJkKT8gcXVhcnRlci9pfSxyYmE9e2FueTpbLzEvaSwvMi9pLC8zL2ksLzQvaV19LGFiYT17bmFycm93Oi9eW2pmbWFzb25kXS9pLGFiYnJldmlhdGVkOi9eKGphbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjKS9pLHdpZGU6L14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaX0saWJhPXtuYXJyb3c6Wy9eai9pLC9eZi9pLC9ebS9pLC9eYS9pLC9ebS9pLC9eai9pLC9eai9pLC9eYS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXSxhbnk6Wy9eamEvaSwvXmYvaSwvXm1hci9pLC9eYXAvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmF1L2ksL15zL2ksL15vL2ksL15uL2ksL15kL2ldfSxzYmE9e25hcnJvdzovXltzbXR3Zl0vaSxzaG9ydDovXihzdXxtb3x0dXx3ZXx0aHxmcnxzYSkvaSxhYmJyZXZpYXRlZDovXihzdW58bW9ufHR1ZXx3ZWR8dGh1fGZyaXxzYXQpL2ksd2lkZTovXihzdW5kYXl8bW9uZGF5fHR1ZXNkYXl8d2VkbmVzZGF5fHRodXJzZGF5fGZyaWRheXxzYXR1cmRheSkvaX0sbmJhPXtuYXJyb3c6Wy9ecy9pLC9ebS9pLC9edC9pLC9edy9pLC9edC9pLC9eZi9pLC9ecy9pXSxhbnk6Wy9ec3UvaSwvXm0vaSwvXnR1L2ksL153L2ksL150aC9pLC9eZi9pLC9ec2EvaV19LG9iYT17bmFycm93Oi9eKGF8cHxtaXxufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaSxhbnk6L14oW2FwXVwuP1xzP21cLj98bWlkbmlnaHR8bm9vbnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2l9LGxiYT17YW55OnthbTovXmEvaSxwbTovXnAvaSxtaWRuaWdodDovXm1pL2ksbm9vbjovXm5vL2ksbW9ybmluZzovbW9ybmluZy9pLGFmdGVybm9vbjovYWZ0ZXJub29uL2ksZXZlbmluZzovZXZlbmluZy9pLG5pZ2h0Oi9uaWdodC9pfX0sdWp0PXtvcmRpbmFsTnVtYmVyOmNqdCh7bWF0Y2hQYXR0ZXJuOlFnYSxwYXJzZVBhdHRlcm46WGdhLHZhbHVlQ2FsbGJhY2s6aSh0PT5wYXJzZUludCh0LDEwKSwidmFsdWVDYWxsYmFjayIpfSksZXJhOnZ2KHttYXRjaFBhdHRlcm5zOkpnYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczplYmEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOnZ2KHttYXRjaFBhdHRlcm5zOnRiYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpyYmEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazppKHQ9PnQrMSwidmFsdWVDYWxsYmFjayIpfSksbW9udGg6dnYoe21hdGNoUGF0dGVybnM6YWJhLGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmliYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheTp2dih7bWF0Y2hQYXR0ZXJuczpzYmEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6bmJhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5UGVyaW9kOnZ2KHttYXRjaFBhdHRlcm5zOm9iYSxkZWZhdWx0TWF0Y2hXaWR0aDoiYW55IixwYXJzZVBhdHRlcm5zOmxiYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pfX0pO3ZhciB6MSxuQXMsZmp0PXUoKCk9PntKVnQoKTtyanQoKTtpanQoKTtvanQoKTtwanQoKTt6MT17Y29kZToiZW4tVVMiLGZvcm1hdERpc3RhbmNlOlhWdCxmb3JtYXRMb25nOnRqdCxmb3JtYXRSZWxhdGl2ZTphanQsbG9jYWxpemU6bmp0LG1hdGNoOnVqdCxvcHRpb25zOnt3ZWVrU3RhcnRzT246MCxmaXJzdFdlZWtDb250YWluc0RhdGU6MX19LG5Bcz16MX0pO3ZhciBjNj11KCgpPT57Zmp0KCl9KTtmdW5jdGlvbiBOY2UodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4gbW4ocixidihyKSkrMX12YXIgZkFzLHl6ZT11KCgpPT57djQoKTtFY2UoKTtaZSgpO2koTmNlLCJnZXREYXlPZlllYXIiKTtmQXM9TmNlfSk7ZnVuY3Rpb24geXYodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPStTcyhyKS0rWDEocik7cmV0dXJuIE1hdGgucm91bmQoYS8kMCkrMX12YXIgeUFzLE9jZT11KCgpPT57U3IoKTtQMCgpO292KCk7WmUoKTtpKHl2LCJnZXRJU09XZWVrIik7eUFzPXl2fSk7ZnVuY3Rpb24gWHUodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKSxzPUFhKCksbj1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/cy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPVdlKGU/LmlufHx0LDApO28uc2V0RnVsbFllYXIoYSsxLDAsbiksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1LYShvLGUpLGM9V2UoZT8uaW58fHQsMCk7Yy5zZXRGdWxsWWVhcihhLDAsbiksYy5zZXRIb3VycygwLDAsMCwwKTtsZXQgZD1LYShjLGUpO3JldHVybityPj0rbD9hKzE6K3I+PStkP2E6YS0xfXZhciBfQXMsQkM9dSgoKT0+e2NvKCk7VXQoKTtHMigpO1plKCk7aShYdSwiZ2V0V2Vla1llYXIiKTtfQXM9WHV9KTtmdW5jdGlvbiBkNih0LGUpe2xldCByPUFhKCksYT1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxzPVh1KHQsZSksbj1XZShlPy5pbnx8dCwwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihzLDAsYSksbi5zZXRIb3VycygwLDAsMCwwKSxLYShuLGUpfXZhciBJQXMsUmNlPXUoKCk9PntjbygpO1V0KCk7QkMoKTtHMigpO2koZDYsInN0YXJ0T2ZXZWVrWWVhciIpO0lBcz1kNn0pO2Z1bmN0aW9uIHd2KHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT0rS2EocixlKS0rZDYocixlKTtyZXR1cm4gTWF0aC5yb3VuZChhLyQwKSsxfXZhciBIQXMsRmNlPXUoKCk9PntTcigpO0cyKCk7UmNlKCk7WmUoKTtpKHd2LCJnZXRXZWVrIik7SEFzPXd2fSk7ZnVuY3Rpb24gX3QodCxlKXtsZXQgcj10PDA/Ii0iOiIiLGE9TWF0aC5hYnModCkudG9TdHJpbmcoKS5wYWRTdGFydChlLCIwIik7cmV0dXJuIHIrYX12YXIgdTY9dSgoKT0+e2koX3QsImFkZExlYWRpbmdaZXJvcyIpfSk7dmFyIEoxLHd6ZT11KCgpPT57dTYoKTtKMT17eSh0LGUpe2xldCByPXQuZ2V0RnVsbFllYXIoKSxhPXI+MD9yOjEtcjtyZXR1cm4gX3QoZT09PSJ5eSI/YSUxMDA6YSxlLmxlbmd0aCl9LE0odCxlKXtsZXQgcj10LmdldE1vbnRoKCk7cmV0dXJuIGU9PT0iTSI/U3RyaW5nKHIrMSk6X3QocisxLDIpfSxkKHQsZSl7cmV0dXJuIF90KHQuZ2V0RGF0ZSgpLGUubGVuZ3RoKX0sYSh0LGUpe2xldCByPXQuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHIudG9VcHBlckNhc2UoKTtjYXNlImFhYSI6cmV0dXJuIHI7Y2FzZSJhYWFhYSI6cmV0dXJuIHJbMF07ZGVmYXVsdDpyZXR1cm4gcj09PSJhbSI/ImEubS4iOiJwLm0uIn19LGgodCxlKXtyZXR1cm4gX3QodC5nZXRIb3VycygpJTEyfHwxMixlLmxlbmd0aCl9LEgodCxlKXtyZXR1cm4gX3QodC5nZXRIb3VycygpLGUubGVuZ3RoKX0sbSh0LGUpe3JldHVybiBfdCh0LmdldE1pbnV0ZXMoKSxlLmxlbmd0aCl9LHModCxlKXtyZXR1cm4gX3QodC5nZXRTZWNvbmRzKCksZS5sZW5ndGgpfSxTKHQsZSl7bGV0IHI9ZS5sZW5ndGgsYT10LmdldE1pbGxpc2Vjb25kcygpLHM9TWF0aC50cnVuYyhhKk1hdGgucG93KDEwLHItMykpO3JldHVybiBfdChzLGUubGVuZ3RoKX19fSk7ZnVuY3Rpb24gaGp0KHQsZT0iIil7bGV0IHI9dD4wPyItIjoiKyIsYT1NYXRoLmFicyh0KSxzPU1hdGgudHJ1bmMoYS82MCksbj1hJTYwO3JldHVybiBuPT09MD9yK1N0cmluZyhzKTpyK1N0cmluZyhzKStlK190KG4sMil9ZnVuY3Rpb24gbWp0KHQsZSl7cmV0dXJuIHQlNjA9PT0wPyh0PjA/Ii0iOiIrIikrX3QoTWF0aC5hYnModCkvNjAsMik6cDYodCxlKX1mdW5jdGlvbiBwNih0LGU9IiIpe2xldCByPXQ+MD8iLSI6IisiLGE9TWF0aC5hYnModCkscz1fdChNYXRoLnRydW5jKGEvNjApLDIpLG49X3QoYSU2MCwyKTtyZXR1cm4gcitzK2Urbn12YXIga3YsSEMsZ2p0PXUoKCk9Pnt5emUoKTtPY2UoKTtHdSgpO0ZjZSgpO0JDKCk7dTYoKTt3emUoKTtrdj17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LEhDPXtHOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0RnVsbFllYXIoKT4wPzE6MDtzd2l0Y2goZSl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIHIuZXJhKGEse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gci5lcmEoYSx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiByLmVyYShhLHt3aWR0aDoid2lkZSJ9KX19LCJHIikseTppKGZ1bmN0aW9uKHQsZSxyKXtpZihlPT09InlvIil7bGV0IGE9dC5nZXRGdWxsWWVhcigpLHM9YT4wP2E6MS1hO3JldHVybiByLm9yZGluYWxOdW1iZXIocyx7dW5pdDoieWVhciJ9KX1yZXR1cm4gSjEueSh0LGUpfSwieSIpLFk6aShmdW5jdGlvbih0LGUscixhKXtsZXQgcz1YdSh0LGEpLG49cz4wP3M6MS1zO2lmKGU9PT0iWVkiKXtsZXQgbz1uJTEwMDtyZXR1cm4gX3QobywyKX1yZXR1cm4gZT09PSJZbyI/ci5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6InllYXIifSk6X3QobixlLmxlbmd0aCl9LCJZIiksUjppKGZ1bmN0aW9uKHQsZSl7bGV0IHI9Rm8odCk7cmV0dXJuIF90KHIsZS5sZW5ndGgpfSwiUiIpLHU6aShmdW5jdGlvbih0LGUpe2xldCByPXQuZ2V0RnVsbFllYXIoKTtyZXR1cm4gX3QocixlLmxlbmd0aCl9LCJ1IiksUTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1NYXRoLmNlaWwoKHQuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJRIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UiUVEiOnJldHVybiBfdChhLDIpO2Nhc2UiUW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJRIikscTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1NYXRoLmNlaWwoKHQuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJxIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UicXEiOnJldHVybiBfdChhLDIpO2Nhc2UicW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlInFxcSI6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJxIiksTTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldE1vbnRoKCk7c3dpdGNoKGUpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIEoxLk0odCxlKTtjYXNlIk1vIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGErMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiByLm1vbnRoKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gci5tb250aChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIubW9udGgoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiTSIpLEw6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRNb250aCgpO3N3aXRjaChlKXtjYXNlIkwiOnJldHVybiBTdHJpbmcoYSsxKTtjYXNlIkxMIjpyZXR1cm4gX3QoYSsxLDIpO2Nhc2UiTG8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoYSsxLHt1bml0OiJtb250aCJ9KTtjYXNlIkxMTCI6cmV0dXJuIHIubW9udGgoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiTExMTEwiOnJldHVybiByLm1vbnRoKGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gci5tb250aChhLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJMIiksdzppKGZ1bmN0aW9uKHQsZSxyLGEpe2xldCBzPXd2KHQsYSk7cmV0dXJuIGU9PT0id28iP3Iub3JkaW5hbE51bWJlcihzLHt1bml0OiJ3ZWVrIn0pOl90KHMsZS5sZW5ndGgpfSwidyIpLEk6aShmdW5jdGlvbih0LGUscil7bGV0IGE9eXYodCk7cmV0dXJuIGU9PT0iSW8iP3Iub3JkaW5hbE51bWJlcihhLHt1bml0OiJ3ZWVrIn0pOl90KGEsZS5sZW5ndGgpfSwiSSIpLGQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PT0iZG8iP3Iub3JkaW5hbE51bWJlcih0LmdldERhdGUoKSx7dW5pdDoiZGF0ZSJ9KTpKMS5kKHQsZSl9LCJkIiksRDppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1OY2UodCk7cmV0dXJuIGU9PT0iRG8iP3Iub3JkaW5hbE51bWJlcihhLHt1bml0OiJkYXlPZlllYXIifSk6X3QoYSxlLmxlbmd0aCl9LCJEIiksRTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldERheSgpO3N3aXRjaChlKXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiByLmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIkUiKSxlOmkoZnVuY3Rpb24odCxlLHIsYSl7bGV0IHM9dC5nZXREYXkoKSxuPShzLWEud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKGUpe2Nhc2UiZSI6cmV0dXJuIFN0cmluZyhuKTtjYXNlImVlIjpyZXR1cm4gX3QobiwyKTtjYXNlImVvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6ImRheSJ9KTtjYXNlImVlZSI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gci5kYXkocyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShzLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJlIiksYzppKGZ1bmN0aW9uKHQsZSxyLGEpe2xldCBzPXQuZ2V0RGF5KCksbj0ocy1hLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImMiOnJldHVybiBTdHJpbmcobik7Y2FzZSJjYyI6cmV0dXJuIF90KG4sZS5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiByLm9yZGluYWxOdW1iZXIobix7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gci5kYXkocyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiByLmRheShzLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gci5kYXkocyx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sImMiKSxpOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0RGF5KCkscz1hPT09MD83OmE7c3dpdGNoKGUpe2Nhc2UiaSI6cmV0dXJuIFN0cmluZyhzKTtjYXNlImlpIjpyZXR1cm4gX3QocyxlLmxlbmd0aCk7Y2FzZSJpbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihzLHt1bml0OiJkYXkifSk7Y2FzZSJpaWkiOnJldHVybiByLmRheShhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJpaWlpaSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJpaWlpaWkiOnJldHVybiByLmRheShhLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiaSIpLGE6aShmdW5jdGlvbih0LGUscil7bGV0IHM9dC5nZXRIb3VycygpLzEyPj0xPyJwbSI6ImFtIjtzd2l0Y2goZSl7Y2FzZSJhIjpjYXNlImFhIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJhYWFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiYSIpLGI6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRIb3VycygpLHM7c3dpdGNoKGE9PT0xMj9zPWt2Lm5vb246YT09PTA/cz1rdi5taWRuaWdodDpzPWEvMTI+PTE/InBtIjoiYW0iLGUpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImIiKSxCOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0SG91cnMoKSxzO3N3aXRjaChhPj0xNz9zPWt2LmV2ZW5pbmc6YT49MTI/cz1rdi5hZnRlcm5vb246YT49ND9zPWt2Lm1vcm5pbmc6cz1rdi5uaWdodCxlKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIkIiKSxoOmkoZnVuY3Rpb24odCxlLHIpe2lmKGU9PT0iaG8iKXtsZXQgYT10LmdldEhvdXJzKCklMTI7cmV0dXJuIGE9PT0wJiYoYT0xMiksci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSl9cmV0dXJuIEoxLmgodCxlKX0sImgiKSxIOmkoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09IkhvIj9yLm9yZGluYWxOdW1iZXIodC5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOkoxLkgodCxlKX0sIkgiKSxLOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0SG91cnMoKSUxMjtyZXR1cm4gZT09PSJLbyI/ci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSk6X3QoYSxlLmxlbmd0aCl9LCJLIiksazppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldEhvdXJzKCk7cmV0dXJuIGE9PT0wJiYoYT0yNCksZT09PSJrbyI/ci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSk6X3QoYSxlLmxlbmd0aCl9LCJrIiksbTppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT09PSJtbyI/ci5vcmRpbmFsTnVtYmVyKHQuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6SjEubSh0LGUpfSwibSIpLHM6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PT0ic28iP3Iub3JkaW5hbE51bWJlcih0LmdldFNlY29uZHMoKSx7dW5pdDoic2Vjb25kIn0pOkoxLnModCxlKX0sInMiKSxTOmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gSjEuUyh0LGUpfSwiUyIpLFg6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGE9PT0wKXJldHVybiJaIjtzd2l0Y2goZSl7Y2FzZSJYIjpyZXR1cm4gbWp0KGEpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIHA2KGEpO2RlZmF1bHQ6cmV0dXJuIHA2KGEsIjoiKX19LCJYIikseDppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieCI6cmV0dXJuIG1qdChhKTtjYXNlInh4eHgiOmNhc2UieHgiOnJldHVybiBwNihhKTtkZWZhdWx0OnJldHVybiBwNihhLCI6Iil9fSwieCIpLE86aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlIk8iOmNhc2UiT08iOmNhc2UiT09PIjpyZXR1cm4iR01UIitoanQoYSwiOiIpO2RlZmF1bHQ6cmV0dXJuIkdNVCIrcDYoYSwiOiIpfX0sIk8iKSx6OmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIraGp0KGEsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK3A2KGEsIjoiKX19LCJ6IiksdDppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1NYXRoLnRydW5jKCt0LzFlMyk7cmV0dXJuIF90KGEsZS5sZW5ndGgpfSwidCIpLFQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIF90KCt0LGUubGVuZ3RoKX0sIlQiKX07aShoanQsImZvcm1hdFRpbWV6b25lU2hvcnQiKTtpKG1qdCwiZm9ybWF0VGltZXpvbmVXaXRoT3B0aW9uYWxNaW51dGVzIik7aShwNiwiZm9ybWF0VGltZXpvbmUiKX0pO3ZhciBianQseGp0LGNiYSxKdSxremU9dSgoKT0+e2JqdD1pKCh0LGUpPT57c3dpdGNoKHQpe2Nhc2UiUCI6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSwiZGF0ZUxvbmdGb3JtYXR0ZXIiKSx4anQ9aSgodCxlKT0+e3N3aXRjaCh0KXtjYXNlInAiOnJldHVybiBlLnRpbWUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlInBwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UicHBwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLnRpbWUoe3dpZHRoOiJmdWxsIn0pfX0sInRpbWVMb25nRm9ybWF0dGVyIiksY2JhPWkoKHQsZSk9PntsZXQgcj10Lm1hdGNoKC8oUCspKHArKT8vKXx8W10sYT1yWzFdLHM9clsyXTtpZighcylyZXR1cm4gYmp0KHQsZSk7bGV0IG47c3dpdGNoKGEpe2Nhc2UiUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoic2hvcnQifSk7YnJlYWs7Y2FzZSJQUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoibWVkaXVtIn0pO2JyZWFrO2Nhc2UiUFBQIjpuPWUuZGF0ZVRpbWUoe3dpZHRoOiJsb25nIn0pO2JyZWFrO2RlZmF1bHQ6bj1lLmRhdGVUaW1lKHt3aWR0aDoiZnVsbCJ9KTticmVha31yZXR1cm4gbi5yZXBsYWNlKCJ7e2RhdGV9fSIsYmp0KGEsZSkpLnJlcGxhY2UoInt7dGltZX19Iix4anQocyxlKSl9LCJkYXRlVGltZUxvbmdGb3JtYXR0ZXIiKSxKdT17cDp4anQsUDpjYmF9fSk7ZnVuY3Rpb24gQmNlKHQpe3JldHVybiBkYmEudGVzdCh0KX1mdW5jdGlvbiBIY2UodCl7cmV0dXJuIHViYS50ZXN0KHQpfWZ1bmN0aW9uIHFDKHQsZSxyKXtsZXQgYT1mYmEodCxlLHIpO2lmKGNvbnNvbGUud2FybihhKSxwYmEuaW5jbHVkZXModCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYSl9ZnVuY3Rpb24gZmJhKHQsZSxyKXtsZXQgYT10WzBdPT09IlkiPyJ5ZWFycyI6ImRheXMgb2YgdGhlIG1vbnRoIjtyZXR1cm5gVXNlIFxgJHt0LnRvTG93ZXJDYXNlKCl9XGAgaW5zdGVhZCBvZiBcYCR7dH1cYCAoaW4gXGAke2V9XGApIGZvciBmb3JtYXR0aW5nICR7YX0gdG8gdGhlIGlucHV0IFxgJHtyfVxgOyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRgfXZhciBkYmEsdWJhLHBiYSxTemU9dSgoKT0+e2RiYT0vXkQrJC8sdWJhPS9eWSskLyxwYmE9WyJEIiwiREQiLCJZWSIsIllZWVkiXTtpKEJjZSwiaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbiIpO2koSGNlLCJpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4iKTtpKHFDLCJ3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yIik7aShmYmEsIm1lc3NhZ2UiKX0pO2Z1bmN0aW9uIFZDKHQsZSxyKXtsZXQgYT1BYSgpLHM9cj8ubG9jYWxlPz9hLmxvY2FsZT8/ejEsbj1yPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3I/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGw9TWUodCxyPy5pbik7aWYoIUxuKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYz1lLm1hdGNoKG1iYSkubWFwKGY9PntsZXQgcD1mWzBdO2lmKHA9PT0icCJ8fHA9PT0iUCIpe2xldCBoPUp1W3BdO3JldHVybiBoKGYscy5mb3JtYXRMb25nKX1yZXR1cm4gZn0pLmpvaW4oIiIpLm1hdGNoKGhiYSkubWFwKGY9PntpZihmPT09IicnIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZToiJyJ9O2xldCBwPWZbMF07aWYocD09PSInIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTp2YmEoZil9O2lmKEhDW3BdKXJldHVybntpc1Rva2VuOiEwLHZhbHVlOmZ9O2lmKHAubWF0Y2goeGJhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK3ArImAiKTtyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTpmfX0pO3MubG9jYWxpemUucHJlcHJvY2Vzc29yJiYoYz1zLmxvY2FsaXplLnByZXByb2Nlc3NvcihsLGMpKTtsZXQgZD17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOm4sd2Vla1N0YXJ0c09uOm8sbG9jYWxlOnN9O3JldHVybiBjLm1hcChmPT57aWYoIWYuaXNUb2tlbilyZXR1cm4gZi52YWx1ZTtsZXQgcD1mLnZhbHVlOyghcj8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZIY2UocCl8fCFyPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZCY2UocCkpJiZxQyhwLGUsU3RyaW5nKHQpKTtsZXQgaD1IQ1twWzBdXTtyZXR1cm4gaChsLHAscy5sb2NhbGl6ZSxkKX0pLmpvaW4oIiIpfWZ1bmN0aW9uIHZiYSh0KXtsZXQgZT10Lm1hdGNoKGdiYSk7cmV0dXJuIGU/ZVsxXS5yZXBsYWNlKGJiYSwiJyIpOnR9dmFyIGhiYSxtYmEsZ2JhLGJiYSx4YmEsaEVzLE16ZT11KCgpPT57YzYoKTtjbygpO2dqdCgpO2t6ZSgpO1N6ZSgpO3k0KCk7WmUoKTtoYmE9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxtYmE9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csZ2JhPS9eJyhbXl0qPyknPyQvLGJiYT0vJycvZyx4YmE9L1thLXpBLVpdLztpKFZDLCJmb3JtYXQiKTtpKHZiYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7aEVzPVZDfSk7ZnVuY3Rpb24gcWNlKHQsZSxyKXtsZXQgYT1BYSgpLHM9cj8ubG9jYWxlPz9hLmxvY2FsZT8/ejEsbj0yNTIwLG89dW8odCxlKTtpZihpc05hTihvKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSxyLHthZGRTdWZmaXg6cj8uYWRkU3VmZml4LGNvbXBhcmlzb246b30pLFtjLGRdPUh0KHI/LmluLC4uLm8+MD9bZSx0XTpbdCxlXSksZj1SMChkLGMpLHA9KFJpKGQpLVJpKGMpKS8xZTMsaD1NYXRoLnJvdW5kKChmLXApLzYwKSxtO2lmKGg8MilyZXR1cm4gcj8uaW5jbHVkZVNlY29uZHM/Zjw1P3MuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUsbCk6ZjwxMD9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxsKTpmPDIwP3MuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLGwpOmY8NDA/cy5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAsbCk6Zjw2MD9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLGwpOnMuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLGwpOmg9PT0wP3MuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEsbCk6cy5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgsbCk7aWYoaDw0NSlyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgsbCk7aWYoaDw5MClyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEsbCk7aWYoaDxpdil7bGV0IHY9TWF0aC5yb3VuZChoLzYwKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHYsbCl9ZWxzZXtpZihoPG4pcmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLGwpO2lmKGg8anUpe2xldCB2PU1hdGgucm91bmQoaC9pdik7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix2LGwpfWVsc2UgaWYoaDxqdSoyKXJldHVybiBtPU1hdGgucm91bmQoaC9qdSkscy5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIixtLGwpfWlmKG09WnUoZCxjKSxtPDEyKXtsZXQgdj1NYXRoLnJvdW5kKGgvanUpO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix2LGwpfWVsc2V7bGV0IHY9bSUxMixiPU1hdGgudHJ1bmMobS8xMik7cmV0dXJuIHY8Mz9zLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsYixsKTp2PDk/cy5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsYixsKTpzLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLGIrMSxsKX19dmFyIENFcyxDemU9dSgoKT0+e2M2KCk7Y28oKTt4NCgpO0hhKCk7aTYoKTtTcigpO09DKCk7UkMoKTtpKHFjZSwiZm9ybWF0RGlzdGFuY2UiKTtDRXM9cWNlfSk7ZnVuY3Rpb24gVmNlKHQsZSxyKXtsZXQgYT1BYSgpLHM9cj8ubG9jYWxlPz9hLmxvY2FsZT8/ejEsbj11byh0LGUpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbz1PYmplY3QuYXNzaWduKHt9LHIse2FkZFN1ZmZpeDpyPy5hZGRTdWZmaXgsY29tcGFyaXNvbjpufSksW2wsY109SHQocj8uaW4sLi4ubj4wP1tlLHRdOlt0LGVdKSxkPXBvKHI/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSxmPWMuZ2V0VGltZSgpLWwuZ2V0VGltZSgpLHA9Zi9sbyxoPVJpKGMpLVJpKGwpLG09KGYtaCkvbG8sdj1yPy51bml0LGI7aWYodj9iPXY6cDwxP2I9InNlY29uZCI6cDw2MD9iPSJtaW51dGUiOnA8aXY/Yj0iaG91ciI6bTxqdT9iPSJkYXkiOm08WUNlP2I9Im1vbnRoIjpiPSJ5ZWFyIixiPT09InNlY29uZCIpe2xldCBnPWQoZi8xZTMpO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4U2Vjb25kcyIsZyxvKX1lbHNlIGlmKGI9PT0ibWludXRlIil7bGV0IGc9ZChwKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGcsbyl9ZWxzZSBpZihiPT09ImhvdXIiKXtsZXQgZz1kKHAvNjApO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4SG91cnMiLGcsbyl9ZWxzZSBpZihiPT09ImRheSIpe2xldCBnPWQobS9pdik7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhEYXlzIixnLG8pfWVsc2UgaWYoYj09PSJtb250aCIpe2xldCBnPWQobS9qdSk7cmV0dXJuIGc9PT0xMiYmdiE9PSJtb250aCI/cy5mb3JtYXREaXN0YW5jZSgieFllYXJzIiwxLG8pOnMuZm9ybWF0RGlzdGFuY2UoInhNb250aHMiLGcsbyl9ZWxzZXtsZXQgZz1kKG0vWUNlKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieFllYXJzIixnLG8pfX12YXIgUEVzLHp6ZT11KCgpPT57YzYoKTtjbygpO3c0KCk7eDQoKTtIYSgpO2k2KCk7U3IoKTtpKFZjZSwiZm9ybWF0RGlzdGFuY2VTdHJpY3QiKTtQRXM9VmNlfSk7ZnVuY3Rpb24gdmp0KHQsZSl7cmV0dXJuIHFjZSh0LEZyKHQpLGUpfXZhciBCRXMseWp0PXUoKCk9PntLcygpO0N6ZSgpO2kodmp0LCJmb3JtYXREaXN0YW5jZVRvTm93Iik7QkVzPXZqdH0pO2Z1bmN0aW9uIHdqdCh0LGUpe3JldHVybiBWY2UodCxGcih0KSxlKX12YXIgVUVzLGtqdD11KCgpPT57S3MoKTt6emUoKTtpKHdqdCwiZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdCIpO1VFcz13anR9KTtmdW5jdGlvbiBTanQodCxlKXtsZXQgcj1BYSgpLGE9ZT8ubG9jYWxlPz9yLmxvY2FsZT8/ejEscz1lPy5mb3JtYXQ/P3liYSxuPWU/Lnplcm8/PyExLG89ZT8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2U/cy5yZWR1Y2UoKGMsZCk9PntsZXQgZj1geCR7ZC5yZXBsYWNlKC8oXi4pLyxoPT5oLnRvVXBwZXJDYXNlKCkpfWAscD10W2RdO3JldHVybiBwIT09dm9pZCAwJiYobnx8dFtkXSk/Yy5jb25jYXQoYS5mb3JtYXREaXN0YW5jZShmLHApKTpjfSxbXSkuam9pbihvKToiIn12YXIgeWJhLFpFcyxNanQ9dSgoKT0+e2M2KCk7Y28oKTt5YmE9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtpKFNqdCwiZm9ybWF0RHVyYXRpb24iKTtaRXM9U2p0fSk7ZnVuY3Rpb24gQ2p0KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1lPy5mb3JtYXQ/PyJleHRlbmRlZCIscz1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89IiIsbD1hPT09ImV4dGVuZGVkIj8iLSI6IiIsYz1hPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYocyE9PSJ0aW1lIil7bGV0IGQ9X3Qoci5nZXREYXRlKCksMiksZj1fdChyLmdldE1vbnRoKCkrMSwyKTtuPWAke190KHIuZ2V0RnVsbFllYXIoKSw0KX0ke2x9JHtmfSR7bH0ke2R9YH1pZihzIT09ImRhdGUiKXtsZXQgZD1yLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoZCE9PTApe2xldCBiPU1hdGguYWJzKGQpLGc9X3QoTWF0aC50cnVuYyhiLzYwKSwyKSx5PV90KGIlNjAsMik7bz1gJHtkPDA/IisiOiItIn0ke2d9OiR7eX1gfWVsc2Ugbz0iWiI7bGV0IGY9X3Qoci5nZXRIb3VycygpLDIpLHA9X3Qoci5nZXRNaW51dGVzKCksMiksaD1fdChyLmdldFNlY29uZHMoKSwyKSxtPW49PT0iIj8iIjoiVCIsdj1bZixwLGhdLmpvaW4oYyk7bj1gJHtufSR7bX0ke3Z9JHtvfWB9cmV0dXJuIG59dmFyIHRJcyx6anQ9dSgoKT0+e3U2KCk7WmUoKTtpKENqdCwiZm9ybWF0SVNPIik7dElzPUNqdH0pO2Z1bmN0aW9uIF9qdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pO2lmKCFMbihyKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGE9ZT8uZm9ybWF0Pz8iZXh0ZW5kZWQiLHM9ZT8ucmVwcmVzZW50YXRpb24/PyJjb21wbGV0ZSIsbj0iIixvPWE9PT0iZXh0ZW5kZWQiPyItIjoiIixsPWE9PT0iZXh0ZW5kZWQiPyI6IjoiIjtpZihzIT09InRpbWUiKXtsZXQgYz1fdChyLmdldERhdGUoKSwyKSxkPV90KHIuZ2V0TW9udGgoKSsxLDIpO249YCR7X3Qoci5nZXRGdWxsWWVhcigpLDQpfSR7b30ke2R9JHtvfSR7Y31gfWlmKHMhPT0iZGF0ZSIpe2xldCBjPV90KHIuZ2V0SG91cnMoKSwyKSxkPV90KHIuZ2V0TWludXRlcygpLDIpLGY9X3Qoci5nZXRTZWNvbmRzKCksMik7bj1gJHtufSR7bj09PSIiPyIiOiIgIn0ke2N9JHtsfSR7ZH0ke2x9JHtmfWB9cmV0dXJuIG59dmFyIG9JcyxUanQ9dSgoKT0+e3U2KCk7eTQoKTtaZSgpO2koX2p0LCJmb3JtYXRJU085MDc1Iik7b0lzPV9qdH0pO2Z1bmN0aW9uIExqdCh0KXtsZXR7eWVhcnM6ZT0wLG1vbnRoczpyPTAsZGF5czphPTAsaG91cnM6cz0wLG1pbnV0ZXM6bj0wLHNlY29uZHM6bz0wfT10O3JldHVybmBQJHtlfVkke3J9TSR7YX1EVCR7c31IJHtufU0ke299U2B9dmFyIGRJcyxEanQ9dSgoKT0+e2koTGp0LCJmb3JtYXRJU09EdXJhdGlvbiIpO2RJcz1ManR9KTtmdW5jdGlvbiAkanQodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtpZighTG4ocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWU/LmZyYWN0aW9uRGlnaXRzPz8wLHM9X3Qoci5nZXREYXRlKCksMiksbj1fdChyLmdldE1vbnRoKCkrMSwyKSxvPXIuZ2V0RnVsbFllYXIoKSxsPV90KHIuZ2V0SG91cnMoKSwyKSxjPV90KHIuZ2V0TWludXRlcygpLDIpLGQ9X3Qoci5nZXRTZWNvbmRzKCksMiksZj0iIjtpZihhPjApe2xldCBtPXIuZ2V0TWlsbGlzZWNvbmRzKCksdj1NYXRoLnRydW5jKG0qTWF0aC5wb3coMTAsYS0zKSk7Zj0iLiIrX3QodixhKX1sZXQgcD0iIixoPXIuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihoIT09MCl7bGV0IG09TWF0aC5hYnMoaCksdj1fdChNYXRoLnRydW5jKG0vNjApLDIpLGI9X3QobSU2MCwyKTtwPWAke2g8MD8iKyI6Ii0ifSR7dn06JHtifWB9ZWxzZSBwPSJaIjtyZXR1cm5gJHtvfS0ke259LSR7c31UJHtsfToke2N9OiR7ZH0ke2Z9JHtwfWB9dmFyIGdJcyxBanQ9dSgoKT0+e3U2KCk7eTQoKTtaZSgpO2koJGp0LCJmb3JtYXRSRkMzMzM5Iik7Z0lzPSRqdH0pO2Z1bmN0aW9uIEVqdCh0KXtsZXQgZT1NZSh0KTtpZighTG4oZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCByPXdiYVtlLmdldFVUQ0RheSgpXSxhPV90KGUuZ2V0VVRDRGF0ZSgpLDIpLHM9a2JhW2UuZ2V0VVRDTW9udGgoKV0sbj1lLmdldFVUQ0Z1bGxZZWFyKCksbz1fdChlLmdldFVUQ0hvdXJzKCksMiksbD1fdChlLmdldFVUQ01pbnV0ZXMoKSwyKSxjPV90KGUuZ2V0VVRDU2Vjb25kcygpLDIpO3JldHVybmAke3J9LCAke2F9ICR7c30gJHtufSAke299OiR7bH06JHtjfSBHTVRgfXZhciB3YmEsa2JhLGtJcyxJanQ9dSgoKT0+e3U2KCk7eTQoKTtaZSgpO3diYT1bIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLGtiYT1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO2koRWp0LCJmb3JtYXRSRkM3MjMxIik7a0lzPUVqdH0pO2Z1bmN0aW9uIFBqdCh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPUFhKCksbz1yPy5sb2NhbGU/P24ubG9jYWxlPz96MSxsPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGM9bW4oYSxzKTtpZihpc05hTihjKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGQ7YzwtNj9kPSJvdGhlciI6YzwtMT9kPSJsYXN0V2VlayI6YzwwP2Q9Inllc3RlcmRheSI6YzwxP2Q9InRvZGF5IjpjPDI/ZD0idG9tb3Jyb3ciOmM8Nz9kPSJuZXh0V2VlayI6ZD0ib3RoZXIiO2xldCBmPW8uZm9ybWF0UmVsYXRpdmUoZCxhLHMse2xvY2FsZTpvLHdlZWtTdGFydHNPbjpsfSk7cmV0dXJuIFZDKGEsZix7bG9jYWxlOm8sd2Vla1N0YXJ0c09uOmx9KX12YXIgRElzLE5qdD11KCgpPT57YzYoKTtjbygpO0hhKCk7djQoKTtNemUoKTtpKFBqdCwiZm9ybWF0UmVsYXRpdmUiKTtESXM9UGp0fSk7ZnVuY3Rpb24gT2p0KHQsZSl7cmV0dXJuIE1lKHQqMWUzLGU/LmluKX12YXIgSUlzLFJqdD11KCgpPT57WmUoKTtpKE9qdCwiZnJvbVVuaXhUaW1lIik7SUlzPU9qdH0pO2Z1bmN0aW9uIGpjZSh0LGUpe3JldHVybiBNZSh0LGU/LmluKS5nZXREYXRlKCl9dmFyIFJJcyxfemU9dSgoKT0+e1plKCk7aShqY2UsImdldERhdGUiKTtSSXM9amNlfSk7ZnVuY3Rpb24gZXAodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0RGF5KCl9dmFyIHFJcyxqQz11KCgpPT57WmUoKTtpKGVwLCJnZXREYXkiKTtxSXM9ZXB9KTtmdW5jdGlvbiBVY2UodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKSxzPXIuZ2V0TW9udGgoKSxuPVdlKHIsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoYSxzKzEsMCksbi5zZXRIb3VycygwLDAsMCwwKSxuLmdldERhdGUoKX12YXIgR0lzLFR6ZT11KCgpPT57VXQoKTtaZSgpO2koVWNlLCJnZXREYXlzSW5Nb250aCIpO0dJcz1VY2V9KTtmdW5jdGlvbiBXY2UodCxlKXtsZXQgYT1NZSh0LGU/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiBhJTQwMD09PTB8fGElND09PTAmJmElMTAwIT09MH12YXIgUUlzLEx6ZT11KCgpPT57WmUoKTtpKFdjZSwiaXNMZWFwWWVhciIpO1FJcz1XY2V9KTtmdW5jdGlvbiBGanQodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4gTnVtYmVyLmlzTmFOKCtyKT9OYU46V2NlKHIpPzM2NjozNjV9dmFyIHJQcyxCanQ9dSgoKT0+e0x6ZSgpO1plKCk7aShGanQsImdldERheXNJblllYXIiKTtyUHM9Rmp0fSk7ZnVuY3Rpb24gSGp0KHQsZSl7bGV0IGE9TWUodCxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gTWF0aC5mbG9vcihhLzEwKSoxMH12YXIgblBzLHFqdD11KCgpPT57WmUoKTtpKEhqdCwiZ2V0RGVjYWRlIik7blBzPUhqdH0pO2Z1bmN0aW9uIEdjZSgpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LEFhKCkpfXZhciBkUHMsRHplPXUoKCk9PntjbygpO2koR2NlLCJnZXREZWZhdWx0T3B0aW9ucyIpO2RQcz1HY2V9KTtmdW5jdGlvbiBWanQodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0SG91cnMoKX12YXIgaFBzLGpqdD11KCgpPT57WmUoKTtpKFZqdCwiZ2V0SG91cnMiKTtoUHM9Vmp0fSk7ZnVuY3Rpb24gWWNlKHQsZSl7bGV0IHI9TWUodCxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIHI9PT0wPzc6cn12YXIgeFBzLCR6ZT11KCgpPT57WmUoKTtpKFljZSwiZ2V0SVNPRGF5Iik7eFBzPVljZX0pO2Z1bmN0aW9uIFVqdCh0LGUpe2xldCByPVgxKHQsZSkscz0rWDEoWXUociw2MCkpLStyO3JldHVybiBNYXRoLnJvdW5kKHMvJDApfXZhciBNUHMsV2p0PXUoKCk9PntQQygpO1NyKCk7b3YoKTtpKFVqdCwiZ2V0SVNPV2Vla3NJblllYXIiKTtNUHM9VWp0fSk7ZnVuY3Rpb24gR2p0KHQpe3JldHVybiBNZSh0KS5nZXRNaWxsaXNlY29uZHMoKX12YXIgVFBzLFlqdD11KCgpPT57WmUoKTtpKEdqdCwiZ2V0TWlsbGlzZWNvbmRzIik7VFBzPUdqdH0pO2Z1bmN0aW9uIEtqdCh0LGUpe3JldHVybiBNZSh0LGU/LmluKS5nZXRNaW51dGVzKCl9dmFyIEFQcyxaanQ9dSgoKT0+e1plKCk7aShLanQsImdldE1pbnV0ZXMiKTtBUHM9S2p0fSk7ZnVuY3Rpb24gUWp0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldE1vbnRoKCl9dmFyIE5QcyxYanQ9dSgoKT0+e1plKCk7aShRanQsImdldE1vbnRoIik7TlBzPVFqdH0pO2Z1bmN0aW9uIEpqdCh0LGUpe2xldFtyLGFdPVsrTWUodC5zdGFydCksK01lKHQuZW5kKV0uc29ydCgocCxoKT0+cC1oKSxbcyxuXT1bK01lKGUuc3RhcnQpLCtNZShlLmVuZCldLnNvcnQoKHAsaCk9PnAtaCk7aWYoIShyPG4mJnM8YSkpcmV0dXJuIDA7bGV0IGw9czxyP3I6cyxjPWwtUmkobCksZD1uPmE/YTpuLGY9ZC1SaShkKTtyZXR1cm4gTWF0aC5jZWlsKChmLWMpL1EyZSl9dmFyIHFQcyxlVXQ9dSgoKT0+e3g0KCk7U3IoKTtaZSgpO2koSmp0LCJnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFscyIpO3FQcz1KanR9KTtmdW5jdGlvbiB0VXQodCl7cmV0dXJuIE1lKHQpLmdldFNlY29uZHMoKX12YXIgV1BzLHJVdD11KCgpPT57WmUoKTtpKHRVdCwiZ2V0U2Vjb25kcyIpO1dQcz10VXR9KTtmdW5jdGlvbiBhVXQodCl7cmV0dXJuK01lKHQpfXZhciBaUHMsaVV0PXUoKCk9PntaZSgpO2koYVV0LCJnZXRUaW1lIik7WlBzPWFVdH0pO2Z1bmN0aW9uIHNVdCh0KXtyZXR1cm4gTWF0aC50cnVuYygrTWUodCkvMWUzKX12YXIgZU5zLG5VdD11KCgpPT57WmUoKTtpKHNVdCwiZ2V0VW5peFRpbWUiKTtlTnM9c1V0fSk7ZnVuY3Rpb24gb1V0KHQsZSl7bGV0IHI9QWEoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHM9amNlKE1lKHQsZT8uaW4pKTtpZihpc05hTihzKSlyZXR1cm4gTmFOO2xldCBuPWVwKFF1KHQsZSkpLG89YS1uO288PTAmJihvKz03KTtsZXQgbD1zLW87cmV0dXJuIE1hdGguY2VpbChsLzcpKzF9dmFyIGxOcyxsVXQ9dSgoKT0+e2NvKCk7X3plKCk7akMoKTtGQygpO1plKCk7aShvVXQsImdldFdlZWtPZk1vbnRoIik7bE5zPW9VdH0pO2Z1bmN0aW9uIEtjZSh0LGUpe2xldCByPU1lKHQsZT8uaW4pLGE9ci5nZXRNb250aCgpO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSxhKzEsMCksci5zZXRIb3VycygwLDAsMCwwKSxNZShyLGU/LmluKX12YXIgcE5zLEF6ZT11KCgpPT57WmUoKTtpKEtjZSwibGFzdERheU9mTW9udGgiKTtwTnM9S2NlfSk7ZnVuY3Rpb24gY1V0KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIG42KEtjZShyLGUpLFF1KHIsZSksZSkrMX12YXIgdk5zLGRVdD11KCgpPT57eGNlKCk7QXplKCk7RkMoKTtaZSgpO2koY1V0LCJnZXRXZWVrc0luTW9udGgiKTt2TnM9Y1V0fSk7ZnVuY3Rpb24gdVV0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIFNOcyxwVXQ9dSgoKT0+e1plKCk7aSh1VXQsImdldFllYXIiKTtTTnM9dVV0fSk7ZnVuY3Rpb24gZlV0KHQpe3JldHVybiBNYXRoLnRydW5jKHQqUTEpfXZhciBfTnMsaFV0PXUoKCk9PntTcigpO2koZlV0LCJob3Vyc1RvTWlsbGlzZWNvbmRzIik7X05zPWZVdH0pO2Z1bmN0aW9uIG1VdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KlgyZSl9dmFyICROcyxnVXQ9dSgoKT0+e1NyKCk7aShtVXQsImhvdXJzVG9NaW51dGVzIik7JE5zPW1VdH0pO2Z1bmN0aW9uIGJVdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KmE2KX12YXIgUE5zLHhVdD11KCgpPT57U3IoKTtpKGJVdCwiaG91cnNUb1NlY29uZHMiKTtQTnM9YlV0fSk7ZnVuY3Rpb24gdlV0KHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpO2lmKGlzTmFOKCthKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdGFydCBkYXRlIGlzIGludmFsaWQiKTtpZihpc05hTigrcykpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgaXMgaW52YWxpZCIpO2lmKHI/LmFzc2VydFBvc2l0aXZlJiYrYT4rcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJFbmQgZGF0ZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IGRhdGUiKTtyZXR1cm57c3RhcnQ6YSxlbmQ6c319dmFyIEZOcyx5VXQ9dSgoKT0+e0hhKCk7aSh2VXQsImludGVydmFsIik7Rk5zPXZVdH0pO2Z1bmN0aW9uIHdVdCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1nbihlPy5pbix0KSxzPXt9LG49VGNlKGEscik7biYmKHMueWVhcnM9bik7bGV0IG89VXUocix7eWVhcnM6cy55ZWFyc30pLGw9WnUoYSxvKTtsJiYocy5tb250aHM9bCk7bGV0IGM9VXUobyx7bW9udGhzOnMubW9udGhzfSksZD1wdihhLGMpO2QmJihzLmRheXM9ZCk7bGV0IGY9VXUoYyx7ZGF5czpzLmRheXN9KSxwPW82KGEsZik7cCYmKHMuaG91cnM9cCk7bGV0IGg9VXUoZix7aG91cnM6cy5ob3Vyc30pLG09bDYoYSxoKTttJiYocy5taW51dGVzPW0pO2xldCB2PVV1KGgse21pbnV0ZXM6cy5taW51dGVzfSksYj1SMChhLHYpO3JldHVybiBiJiYocy5zZWNvbmRzPWIpLHN9dmFyIFpOcyxrVXQ9dSgoKT0+e0YwKCk7WENlKCk7eWNlKCk7d2NlKCk7TWNlKCk7T0MoKTtSQygpO2d6ZSgpO2kod1V0LCJpbnRlcnZhbFRvRHVyYXRpb24iKTtaTnM9d1V0fSk7ZnVuY3Rpb24gU1V0KHQsZSxyKXtsZXQgYTtyZXR1cm4gU2JhKGUpP2E9ZTpyPWUsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQocj8ubG9jYWxlLGEpLmZvcm1hdChNZSh0KSl9ZnVuY3Rpb24gU2JhKHQpe3JldHVybiB0IT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gdCl9dmFyIGVPcyxNVXQ9dSgoKT0+e1plKCk7aShTVXQsImludGxGb3JtYXQiKTtpKFNiYSwiaXNGb3JtYXRPcHRpb25zIik7ZU9zPVNVdH0pO2Z1bmN0aW9uIENVdCh0LGUscil7bGV0IGE9MCxzLFtuLG9dPUh0KHI/LmluLHQsZSk7aWYocj8udW5pdClzPXI/LnVuaXQscz09PSJzZWNvbmQiP2E9UjAobixvKTpzPT09Im1pbnV0ZSI/YT1sNihuLG8pOnM9PT0iaG91ciI/YT1vNihuLG8pOnM9PT0iZGF5Ij9hPW1uKG4sbyk6cz09PSJ3ZWVrIj9hPW42KG4sbyk6cz09PSJtb250aCI/YT1zNihuLG8pOnM9PT0icXVhcnRlciI/YT11dihuLG8pOnM9PT0ieWVhciImJihhPUt1KG4sbykpO2Vsc2V7bGV0IGM9UjAobixvKTtNYXRoLmFicyhjKTxzdj8oYT1SMChuLG8pLHM9InNlY29uZCIpOk1hdGguYWJzKGMpPGE2PyhhPWw2KG4sbykscz0ibWludXRlIik6TWF0aC5hYnMoYyk8SzJlJiZNYXRoLmFicyhtbihuLG8pKTwxPyhhPW82KG4sbykscz0iaG91ciIpOk1hdGguYWJzKGMpPFVxdCYmKGE9bW4obixvKSkmJk1hdGguYWJzKGEpPDc/cz0iZGF5IjpNYXRoLmFicyhjKTxaQ2U/KGE9bjYobixvKSxzPSJ3ZWVrIik6TWF0aC5hYnMoYyk8V3F0PyhhPXM2KG4sbykscz0ibW9udGgiKTpNYXRoLmFicyhjKTxLQ2U/dXYobixvKTw0PyhhPXV2KG4sbykscz0icXVhcnRlciIpOihhPUt1KG4sbykscz0ieWVhciIpOihhPUt1KG4sbykscz0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQocj8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi5yfSkuZm9ybWF0KGEscyl9dmFyIGZPcyx6VXQ9dSgoKT0+e0hhKCk7U3IoKTt2NCgpO2JjZSgpO2Z6ZSgpO3hjZSgpO3ZjZSgpO3djZSgpO01jZSgpO1JDKCk7aShDVXQsImludGxGb3JtYXREaXN0YW5jZSIpO2ZPcz1DVXR9KTtmdW5jdGlvbiBfVXQodCxlKXtyZXR1cm4rTWUodCk+K01lKGUpfXZhciBiT3MsVFV0PXUoKCk9PntaZSgpO2koX1V0LCJpc0FmdGVyIik7Yk9zPV9VdH0pO2Z1bmN0aW9uIExVdCh0LGUpe3JldHVybitNZSh0KTwrTWUoZSl9dmFyIHdPcyxEVXQ9dSgoKT0+e1plKCk7aShMVXQsImlzQmVmb3JlIik7d09zPUxVdH0pO2Z1bmN0aW9uICRVdCh0LGUpe3JldHVybitNZSh0KT09K01lKGUpfXZhciBDT3MsQVV0PXUoKCk9PntaZSgpO2koJFV0LCJpc0VxdWFsIik7Q09zPSRVdH0pO2Z1bmN0aW9uIEVVdCh0LGUscil7bGV0IGE9bmV3IERhdGUodCxlLHIpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT10JiZhLmdldE1vbnRoKCk9PT1lJiZhLmdldERhdGUoKT09PXJ9dmFyIFRPcyxJVXQ9dSgoKT0+e2koRVV0LCJpc0V4aXN0cyIpO1RPcz1FVXR9KTtmdW5jdGlvbiBQVXQodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0RGF0ZSgpPT09MX12YXIgQU9zLE5VdD11KCgpPT57WmUoKTtpKFBVdCwiaXNGaXJzdERheU9mTW9udGgiKTtBT3M9UFV0fSk7ZnVuY3Rpb24gT1V0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldERheSgpPT09NX12YXIgTk9zLFJVdD11KCgpPT57WmUoKTtpKE9VdCwiaXNGcmlkYXkiKTtOT3M9T1V0fSk7ZnVuY3Rpb24gRlV0KHQpe3JldHVybitNZSh0KT5EYXRlLm5vdygpfXZhciBCT3MsQlV0PXUoKCk9PntaZSgpO2koRlV0LCJpc0Z1dHVyZSIpO0JPcz1GVXR9KTtmdW5jdGlvbiBaY2UodCxlKXtsZXQgcj1NYmEoZSk/bmV3IGUoMCk6V2UoZSwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpKSxyLnNldEhvdXJzKHQuZ2V0SG91cnMoKSx0LmdldE1pbnV0ZXMoKSx0LmdldFNlY29uZHMoKSx0LmdldE1pbGxpc2Vjb25kcygpKSxyfWZ1bmN0aW9uIE1iYSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiImJnQucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PXR9dmFyIGpPcyxFemU9dSgoKT0+e1V0KCk7aShaY2UsInRyYW5zcG9zZSIpO2koTWJhLCJpc0NvbnN0cnVjdG9yIik7ak9zPVpjZX0pO3ZhciBDYmEsUWNlLFhjZSxKY2UsSXplPXUoKCk9PntVdCgpO0V6ZSgpO0NiYT0xMCxRY2U9Y2xhc3N7c3RhdGlje2kodGhpcywiU2V0dGVyIil9c3ViUHJpb3JpdHk9MDt2YWxpZGF0ZShlLHIpe3JldHVybiEwfX0sWGNlPWNsYXNzIGV4dGVuZHMgUWNle3N0YXRpY3tpKHRoaXMsIlZhbHVlU2V0dGVyIil9Y29uc3RydWN0b3IoZSxyLGEscyxuKXtzdXBlcigpLHRoaXMudmFsdWU9ZSx0aGlzLnZhbGlkYXRlVmFsdWU9cix0aGlzLnNldFZhbHVlPWEsdGhpcy5wcmlvcml0eT1zLG4mJih0aGlzLnN1YlByaW9yaXR5PW4pfXZhbGlkYXRlKGUscil7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZShlLHRoaXMudmFsdWUscil9c2V0KGUscixhKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZShlLHIsdGhpcy52YWx1ZSxhKX19LEpjZT1jbGFzcyBleHRlbmRzIFFjZXtzdGF0aWN7aSh0aGlzLCJEYXRlVGltZXpvbmVTZXR0ZXIiKX1wcmlvcml0eT1DYmE7c3ViUHJpb3JpdHk9LTE7Y29uc3RydWN0b3IoZSxyKXtzdXBlcigpLHRoaXMuY29udGV4dD1lfHwoYT0+V2UocixhKSl9c2V0KGUscil7cmV0dXJuIHIudGltZXN0YW1wSXNTZXQ/ZTpXZShlLFpjZShlLHRoaXMuY29udGV4dCkpfX19KTt2YXIgQ3QsdmE9dSgoKT0+e0l6ZSgpO0N0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlBhcnNlciIpfXJ1bihlLHIsYSxzKXtsZXQgbj10aGlzLnBhcnNlKGUscixhLHMpO3JldHVybiBuP3tzZXR0ZXI6bmV3IFhjZShuLnZhbHVlLHRoaXMudmFsaWRhdGUsdGhpcy5zZXQsdGhpcy5wcmlvcml0eSx0aGlzLnN1YlByaW9yaXR5KSxyZXN0Om4ucmVzdH06bnVsbH12YWxpZGF0ZShlLHIsYSl7cmV0dXJuITB9fX0pO3ZhciBlMGUsSFV0PXUoKCk9Pnt2YSgpO2UwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkVyYVBhcnNlciIpfXByaW9yaXR5PTE0MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiBhLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gYS5lcmEoZSx7d2lkdGg6IndpZGUifSl8fGEuZXJhKGUse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8YS5lcmEoZSx7d2lkdGg6Im5hcnJvdyJ9KX19c2V0KGUscixhKXtyZXR1cm4gci5lcmE9YSxlLnNldEZ1bGxZZWFyKGEsMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiUiIsInUiLCJ0IiwiVCJdfX0pO3ZhciB1YSxIbCxmbz11KCgpPT57dWE9e21vbnRoOi9eKDFbMC0yXXwwP1xkKS8sZGF0ZTovXigzWzAtMV18WzAtMl0/XGQpLyxkYXlPZlllYXI6L14oMzZbMC02XXwzWzAtNV1cZHxbMC0yXT9cZD9cZCkvLHdlZWs6L14oNVswLTNdfFswLTRdP1xkKS8saG91cjIzaDovXigyWzAtM118WzAtMV0/XGQpLyxob3VyMjRoOi9eKDJbMC00XXxbMC0xXT9cZCkvLGhvdXIxMWg6L14oMVswLTFdfDA/XGQpLyxob3VyMTJoOi9eKDFbMC0yXXwwP1xkKS8sbWludXRlOi9eWzAtNV0/XGQvLHNlY29uZDovXlswLTVdP1xkLyxzaW5nbGVEaWdpdDovXlxkLyx0d29EaWdpdHM6L15cZHsxLDJ9Lyx0aHJlZURpZ2l0czovXlxkezEsM30vLGZvdXJEaWdpdHM6L15cZHsxLDR9LyxhbnlEaWdpdHNTaWduZWQ6L14tP1xkKy8sc2luZ2xlRGlnaXRTaWduZWQ6L14tP1xkLyx0d29EaWdpdHNTaWduZWQ6L14tP1xkezEsMn0vLHRocmVlRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDN9Lyxmb3VyRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDR9L30sSGw9e2Jhc2ljT3B0aW9uYWxNaW51dGVzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSk/fFovLGJhc2ljOi9eKFsrLV0pKFxkezJ9KShcZHsyfSl8Wi8sYmFzaWNPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pKFxkezJ9KSgoXGR7Mn0pKT98Wi8sZXh0ZW5kZWQ6L14oWystXSkoXGR7Mn0pOihcZHsyfSl8Wi8sZXh0ZW5kZWRPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pOihcZHsyfSkoOihcZHsyfSkpP3xaL319KTtmdW5jdGlvbiBxYSh0LGUpe3JldHVybiB0JiZ7dmFsdWU6ZSh0LnZhbHVlKSxyZXN0OnQucmVzdH19ZnVuY3Rpb24gaWEodCxlKXtsZXQgcj1lLm1hdGNoKHQpO3JldHVybiByP3t2YWx1ZTpwYXJzZUludChyWzBdLDEwKSxyZXN0OmUuc2xpY2UoclswXS5sZW5ndGgpfTpudWxsfWZ1bmN0aW9uIHFsKHQsZSl7bGV0IHI9ZS5tYXRjaCh0KTtpZighcilyZXR1cm4gbnVsbDtpZihyWzBdPT09IloiKXJldHVybnt2YWx1ZTowLHJlc3Q6ZS5zbGljZSgxKX07bGV0IGE9clsxXT09PSIrIj8xOi0xLHM9clsyXT9wYXJzZUludChyWzJdLDEwKTowLG49clszXT9wYXJzZUludChyWzNdLDEwKTowLG89cls1XT9wYXJzZUludChyWzVdLDEwKTowO3JldHVybnt2YWx1ZTphKihzKlExK24qbG8rbyphdikscmVzdDplLnNsaWNlKHJbMF0ubGVuZ3RoKX19ZnVuY3Rpb24gdDBlKHQpe3JldHVybiBpYSh1YS5hbnlEaWdpdHNTaWduZWQsdCl9ZnVuY3Rpb24geHIodCxlKXtzd2l0Y2godCl7Y2FzZSAxOnJldHVybiBpYSh1YS5zaW5nbGVEaWdpdCxlKTtjYXNlIDI6cmV0dXJuIGlhKHVhLnR3b0RpZ2l0cyxlKTtjYXNlIDM6cmV0dXJuIGlhKHVhLnRocmVlRGlnaXRzLGUpO2Nhc2UgNDpyZXR1cm4gaWEodWEuZm91ckRpZ2l0cyxlKTtkZWZhdWx0OnJldHVybiBpYShuZXcgUmVnRXhwKCJeXFxkezEsIit0KyJ9IiksZSl9fWZ1bmN0aW9uIFN2KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gaWEodWEuc2luZ2xlRGlnaXRTaWduZWQsZSk7Y2FzZSAyOnJldHVybiBpYSh1YS50d29EaWdpdHNTaWduZWQsZSk7Y2FzZSAzOnJldHVybiBpYSh1YS50aHJlZURpZ2l0c1NpZ25lZCxlKTtjYXNlIDQ6cmV0dXJuIGlhKHVhLmZvdXJEaWdpdHNTaWduZWQsZSk7ZGVmYXVsdDpyZXR1cm4gaWEobmV3IFJlZ0V4cCgiXi0/XFxkezEsIit0KyJ9IiksZSl9fWZ1bmN0aW9uIE12KHQpe3N3aXRjaCh0KXtjYXNlIm1vcm5pbmciOnJldHVybiA0O2Nhc2UiZXZlbmluZyI6cmV0dXJuIDE3O2Nhc2UicG0iOmNhc2Uibm9vbiI6Y2FzZSJhZnRlcm5vb24iOnJldHVybiAxMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiByMGUodCxlKXtsZXQgcj1lPjAsYT1yP2U6MS1lLHM7aWYoYTw9NTApcz10fHwxMDA7ZWxzZXtsZXQgbj1hKzUwLG89TWF0aC50cnVuYyhuLzEwMCkqMTAwLGw9dD49biUxMDA7cz10K28tKGw/MTAwOjApfXJldHVybiByP3M6MS1zfWZ1bmN0aW9uIGEwZSh0KXtyZXR1cm4gdCU0MDA9PT0wfHx0JTQ9PT0wJiZ0JTEwMCE9PTB9dmFyIEVhPXUoKCk9PntTcigpO2ZvKCk7aShxYSwibWFwVmFsdWUiKTtpKGlhLCJwYXJzZU51bWVyaWNQYXR0ZXJuIik7aShxbCwicGFyc2VUaW1lem9uZVBhdHRlcm4iKTtpKHQwZSwicGFyc2VBbnlEaWdpdHNTaWduZWQiKTtpKHhyLCJwYXJzZU5EaWdpdHMiKTtpKFN2LCJwYXJzZU5EaWdpdHNTaWduZWQiKTtpKE12LCJkYXlQZXJpb2RFbnVtVG9Ib3VycyIpO2kocjBlLCJub3JtYWxpemVUd29EaWdpdFllYXIiKTtpKGEwZSwiaXNMZWFwWWVhckluZGV4Iil9KTt2YXIgaTBlLHFVdD11KCgpPT57dmEoKTtFYSgpO2kwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIlllYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJ1IiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3BhcnNlKGUscixhKXtsZXQgcz1pKG49Pih7eWVhcjpuLGlzVHdvRGlnaXRZZWFyOnI9PT0ieXkifSksInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJ5IjpyZXR1cm4gcWEoeHIoNCxlKSxzKTtjYXNlInlvIjpyZXR1cm4gcWEoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InllYXIifSkscyk7ZGVmYXVsdDpyZXR1cm4gcWEoeHIoci5sZW5ndGgsZSkscyl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHIuaXNUd29EaWdpdFllYXJ8fHIueWVhcj4wfXNldChlLHIsYSl7bGV0IHM9ZS5nZXRGdWxsWWVhcigpO2lmKGEuaXNUd29EaWdpdFllYXIpe2xldCBvPXIwZShhLnllYXIscyk7cmV0dXJuIGUuc2V0RnVsbFllYXIobywwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1sZXQgbj0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9hLnllYXI6MS1hLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIobiwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIHMwZSxWVXQ9dSgoKT0+e0JDKCk7RzIoKTt2YSgpO0VhKCk7czBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiTG9jYWxXZWVrWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT4oe3llYXI6bixpc1R3b0RpZ2l0WWVhcjpyPT09IllZIn0pLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UiWSI6cmV0dXJuIHFhKHhyKDQsZSkscyk7Y2FzZSJZbyI6cmV0dXJuIHFhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLHMpO2RlZmF1bHQ6cmV0dXJuIHFhKHhyKHIubGVuZ3RoLGUpLHMpfX12YWxpZGF0ZShlLHIpe3JldHVybiByLmlzVHdvRGlnaXRZZWFyfHxyLnllYXI+MH1zZXQoZSxyLGEscyl7bGV0IG49WHUoZSxzKTtpZihhLmlzVHdvRGlnaXRZZWFyKXtsZXQgbD1yMGUoYS55ZWFyLG4pO3JldHVybiBlLnNldEZ1bGxZZWFyKGwsMCxzLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSksZS5zZXRIb3VycygwLDAsMCwwKSxLYShlLHMpfWxldCBvPSEoImVyYSJpbiByKXx8ci5lcmE9PT0xP2EueWVhcjoxLWEueWVhcjtyZXR1cm4gZS5zZXRGdWxsWWVhcihvLDAscy5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksS2EoZSxzKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJRIiwicSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiaSIsInQiLCJUIl19fSk7dmFyIG4wZSxqVXQ9dSgoKT0+e1AwKCk7VXQoKTt2YSgpO0VhKCk7bjBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiSVNPV2Vla1llYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7cGFyc2UoZSxyKXtyZXR1cm4gcj09PSJSIj9Tdig0LGUpOlN2KHIubGVuZ3RoLGUpfXNldChlLHIsYSl7bGV0IHM9V2UoZSwwKTtyZXR1cm4gcy5zZXRGdWxsWWVhcihhLDAsNCkscy5zZXRIb3VycygwLDAsMCwwKSxTcyhzKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgbzBlLFVVdD11KCgpPT57dmEoKTtFYSgpO28wZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkV4dGVuZGVkWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHIpe3JldHVybiByPT09InUiP1N2KDQsZSk6U3Yoci5sZW5ndGgsZSl9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRGdWxsWWVhcihhLDAsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkciLCJ5IiwiWSIsIlIiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIGwwZSxXVXQ9dSgoKT0+e3ZhKCk7RWEoKTtsMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJRdWFydGVyUGFyc2VyIil9cHJpb3JpdHk9MTIwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJRIjpjYXNlIlFRIjpyZXR1cm4geHIoci5sZW5ndGgsZSk7Y2FzZSJRbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTR9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNb250aCgoYS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBjMGUsR1V0PXUoKCk9Pnt2YSgpO0VhKCk7YzBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZVF1YXJ0ZXJQYXJzZXIiKX1wcmlvcml0eT0xMjA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlInEiOmNhc2UicXEiOnJldHVybiB4cihyLmxlbmd0aCxlKTtjYXNlInFvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBhLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MSYmcjw9NH1zZXQoZSxyLGEpe3JldHVybiBlLnNldE1vbnRoKChhLTEpKjMsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIGQwZSxZVXQ9dSgoKT0+e2ZvKCk7dmEoKTtFYSgpO2QwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIk1vbnRoUGFyc2VyIil9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIkwiLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3ByaW9yaXR5PTExMDtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT5uLTEsInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJNIjpyZXR1cm4gcWEoaWEodWEubW9udGgsZSkscyk7Y2FzZSJNTSI6cmV0dXJuIHFhKHhyKDIsZSkscyk7Y2FzZSJNbyI6cmV0dXJuIHFhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxzKTtjYXNlIk1NTSI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJNTU1NTSI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQoZSxyLGEpe3JldHVybiBlLnNldE1vbnRoKGEsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfX19KTt2YXIgdTBlLEtVdD11KCgpPT57Zm8oKTt2YSgpO0VhKCk7dTBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZU1vbnRoUGFyc2VyIil9cHJpb3JpdHk9MTEwO3BhcnNlKGUscixhKXtsZXQgcz1pKG49Pm4tMSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaChyKXtjYXNlIkwiOnJldHVybiBxYShpYSh1YS5tb250aCxlKSxzKTtjYXNlIkxMIjpyZXR1cm4gcWEoeHIoMixlKSxzKTtjYXNlIkxvIjpyZXR1cm4gcWEoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1vbnRoIn0pLHMpO2Nhc2UiTExMIjpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTAmJnI8PTExfXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TW9udGgoYSwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIHAwZSh0LGUscil7bGV0IGE9TWUodCxyPy5pbikscz13dihhLHIpLWU7cmV0dXJuIGEuc2V0RGF0ZShhLmdldERhdGUoKS1zKjcpLE1lKGEscj8uaW4pfXZhciBZUnMsUHplPXUoKCk9PntGY2UoKTtaZSgpO2kocDBlLCJzZXRXZWVrIik7WVJzPXAwZX0pO3ZhciBmMGUsWlV0PXUoKCk9PntQemUoKTtHMigpO2ZvKCk7dmEoKTtFYSgpO2YwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkxvY2FsV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UidyI6cmV0dXJuIGlhKHVhLndlZWssZSk7Y2FzZSJ3byI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD01M31zZXQoZSxyLGEscyl7cmV0dXJuIEthKHAwZShlLGEscykscyl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIGgwZSh0LGUscil7bGV0IGE9TWUodCxyPy5pbikscz15dihhLHIpLWU7cmV0dXJuIGEuc2V0RGF0ZShhLmdldERhdGUoKS1zKjcpLGF9dmFyIG5GcyxOemU9dSgoKT0+e09jZSgpO1plKCk7aShoMGUsInNldElTT1dlZWsiKTtuRnM9aDBlfSk7dmFyIG0wZSxRVXQ9dSgoKT0+e056ZSgpO1AwKCk7Zm8oKTt2YSgpO0VhKCk7bTBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiSVNPV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiSSI6cmV0dXJuIGlhKHVhLndlZWssZSk7Y2FzZSJJbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD01M31zZXQoZSxyLGEpe3JldHVybiBTcyhoMGUoZSxhKSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgemJhLF9iYSxnMGUsWFV0PXUoKCk9PntmbygpO3ZhKCk7RWEoKTt6YmE9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxfYmE9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxnMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJEYXRlUGFyc2VyIil9cHJpb3JpdHk9OTA7c3ViUHJpb3JpdHk9MTtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiZCI6cmV0dXJuIGlhKHVhLmRhdGUsZSk7Y2FzZSJkbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe2xldCBhPWUuZ2V0RnVsbFllYXIoKSxzPWEwZShhKSxuPWUuZ2V0TW9udGgoKTtyZXR1cm4gcz9yPj0xJiZyPD1fYmFbbl06cj49MSYmcjw9emJhW25dfXNldChlLHIsYSl7cmV0dXJuIGUuc2V0RGF0ZShhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIGIwZSxKVXQ9dSgoKT0+e2ZvKCk7dmEoKTtFYSgpO2IwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkRheU9mWWVhclBhcnNlciIpfXByaW9yaXR5PTkwO3N1YnByaW9yaXR5PTE7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkQiOmNhc2UiREQiOnJldHVybiBpYSh1YS5kYXlPZlllYXIsZSk7Y2FzZSJEbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe2xldCBhPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gYTBlKGEpP3I+PTEmJnI8PTM2NjpyPj0xJiZyPD0zNjV9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNb250aCgwLGEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiB0cCh0LGUscil7bGV0IGE9QWEoKSxzPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG49TWUodCxyPy5pbiksbz1uLmdldERheSgpLGM9KGUlNys3KSU3LGQ9Ny1zLGY9ZTwwfHxlPjY/ZS0obytkKSU3OihjK2QpJTctKG8rZCklNztyZXR1cm4gWXMobixmLHIpfXZhciBMRnMsVUM9dSgoKT0+e2NvKCk7QTAoKTtaZSgpO2kodHAsInNldERheSIpO0xGcz10cH0pO3ZhciB4MGUsZVd0PXUoKCk9PntVQygpO3ZhKCk7eDBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiBhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD02fXNldChlLHIsYSxzKXtyZXR1cm4gZT10cChlLGEscyksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB2MGUsdFd0PXUoKCk9PntVQygpO3ZhKCk7RWEoKTt2MGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJMb2NhbERheVBhcnNlciIpfXByaW9yaXR5PTkwO3BhcnNlKGUscixhLHMpe2xldCBuPWkobz0+e2xldCBsPU1hdGguZmxvb3IoKG8tMSkvNykqNztyZXR1cm4obytzLndlZWtTdGFydHNPbis2KSU3K2x9LCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UiZSI6Y2FzZSJlZSI6cmV0dXJuIHFhKHhyKHIubGVuZ3RoLGUpLG4pO2Nhc2UiZW8iOnJldHVybiBxYShhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pLG4pO2Nhc2UiZWVlIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiBhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD02fXNldChlLHIsYSxzKXtyZXR1cm4gZT10cChlLGEscyksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB5MGUscld0PXUoKCk9PntVQygpO3ZhKCk7RWEoKTt5MGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJTdGFuZEFsb25lTG9jYWxEYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHIsYSxzKXtsZXQgbj1pKG89PntsZXQgbD1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rcy53ZWVrU3RhcnRzT24rNiklNytsfSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaChyKXtjYXNlImMiOmNhc2UiY2MiOnJldHVybiBxYSh4cihyLmxlbmd0aCxlKSxuKTtjYXNlImNvIjpyZXR1cm4gcWEoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxuKTtjYXNlImNjYyI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiBhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQoZSxyLGEscyl7cmV0dXJuIGU9dHAoZSxhLHMpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJlIiwidCIsIlQiXX19KTtmdW5jdGlvbiB3MGUodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pLHM9WWNlKGEsciksbj1lLXM7cmV0dXJuIFlzKGEsbixyKX12YXIgS0ZzLE96ZT11KCgpPT57QTAoKTskemUoKTtaZSgpO2kodzBlLCJzZXRJU09EYXkiKTtLRnM9dzBlfSk7dmFyIGswZSxhV3Q9dSgoKT0+e096ZSgpO3ZhKCk7RWEoKTtrMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJJU09EYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT5uPT09MD83Om4sInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJpIjpjYXNlImlpIjpyZXR1cm4geHIoci5sZW5ndGgsZSk7Y2FzZSJpbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXkifSk7Y2FzZSJpaWkiOnJldHVybiBxYShhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxzKTtjYXNlImlpaWlpIjpyZXR1cm4gcWEoYS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxzKTtjYXNlImlpaWlpaSI6cmV0dXJuIHFhKGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxzKTtkZWZhdWx0OnJldHVybiBxYShhLmRheShlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscyl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTd9c2V0KGUscixhKXtyZXR1cm4gZT13MGUoZSxhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFMwZSxpV3Q9dSgoKT0+e3ZhKCk7RWEoKTtTMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJBTVBNUGFyc2VyIil9cHJpb3JpdHk9ODA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0SG91cnMoTXYoYSksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIE0wZSxzV3Q9dSgoKT0+e3ZhKCk7RWEoKTtNMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJBTVBNTWlkbmlnaHRQYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiYiI6Y2FzZSJiYiI6Y2FzZSJiYmIiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmJiYiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUscixhKXtyZXR1cm4gZS5zZXRIb3VycyhNdihhKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiQiIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgQzBlLG5XdD11KCgpPT57dmEoKTtFYSgpO0MwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkRheVBlcmlvZFBhcnNlciIpfXByaW9yaXR5PTgwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX1zZXQoZSxyLGEpe3JldHVybiBlLnNldEhvdXJzKE12KGEpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwidCIsIlQiXX19KTt2YXIgejBlLG9XdD11KCgpPT57Zm8oKTt2YSgpO0VhKCk7ejBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiSG91cjF0bzEyUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlImgiOnJldHVybiBpYSh1YS5ob3VyMTJoLGUpO2Nhc2UiaG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiB4cihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MSYmcjw9MTJ9c2V0KGUscixhKXtsZXQgcz1lLmdldEhvdXJzKCk+PTEyO3JldHVybiBzJiZhPDEyP2Uuc2V0SG91cnMoYSsxMiwwLDAsMCk6IXMmJmE9PT0xMj9lLnNldEhvdXJzKDAsMCwwLDApOmUuc2V0SG91cnMoYSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBfMGUsbFd0PXUoKCk9PntmbygpO3ZhKCk7RWEoKTtfMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJIb3VyMHRvMjNQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiSCI6cmV0dXJuIGlhKHVhLmhvdXIyM2gsZSk7Y2FzZSJIbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD0yM31zZXQoZSxyLGEpe3JldHVybiBlLnNldEhvdXJzKGEsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBUMGUsY1d0PXUoKCk9PntmbygpO3ZhKCk7RWEoKTtUMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJIb3VyMFRvMTFQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiSyI6cmV0dXJuIGlhKHVhLmhvdXIxMWgsZSk7Y2FzZSJLbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQoZSxyLGEpe3JldHVybiBlLmdldEhvdXJzKCk+PTEyJiZhPDEyP2Uuc2V0SG91cnMoYSsxMiwwLDAsMCk6ZS5zZXRIb3VycyhhLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImgiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIEwwZSxkV3Q9dSgoKT0+e2ZvKCk7dmEoKTtFYSgpO0wwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkhvdXIxVG8yNFBhcnNlciIpfXByaW9yaXR5PTcwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJrIjpyZXR1cm4gaWEodWEuaG91cjI0aCxlKTtjYXNlImtvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4geHIoci5sZW5ndGgsZSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTI0fXNldChlLHIsYSl7bGV0IHM9YTw9MjQ/YSUyNDphO3JldHVybiBlLnNldEhvdXJzKHMsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciBEMGUsdVd0PXUoKCk9PntmbygpO3ZhKCk7RWEoKTtEMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJNaW51dGVQYXJzZXIiKX1wcmlvcml0eT02MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UibSI6cmV0dXJuIGlhKHVhLm1pbnV0ZSxlKTtjYXNlIm1vIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1pbnV0ZSJ9KTtkZWZhdWx0OnJldHVybiB4cihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9NTl9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNaW51dGVzKGEsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyICQwZSxwV3Q9dSgoKT0+e2ZvKCk7dmEoKTtFYSgpOyQwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIlNlY29uZFBhcnNlciIpfXByaW9yaXR5PTUwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJzIjpyZXR1cm4gaWEodWEuc2Vjb25kLGUpO2Nhc2Uic28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoic2Vjb25kIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD01OX1zZXQoZSxyLGEpe3JldHVybiBlLnNldFNlY29uZHMoYSwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIEEwZSxmV3Q9dSgoKT0+e3ZhKCk7RWEoKTtBMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJGcmFjdGlvbk9mU2Vjb25kUGFyc2VyIil9cHJpb3JpdHk9MzA7cGFyc2UoZSxyKXtsZXQgYT1pKHM9Pk1hdGgudHJ1bmMocypNYXRoLnBvdygxMCwtci5sZW5ndGgrMykpLCJ2YWx1ZUNhbGxiYWNrIik7cmV0dXJuIHFhKHhyKHIubGVuZ3RoLGUpLGEpfXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TWlsbGlzZWNvbmRzKGEpLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgRTBlLGhXdD11KCgpPT57VXQoKTt4NCgpO2ZvKCk7dmEoKTtFYSgpO0UwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIklTT1RpbWV6b25lV2l0aFpQYXJzZXIiKX1wcmlvcml0eT0xMDtwYXJzZShlLHIpe3N3aXRjaChyKXtjYXNlIlgiOnJldHVybiBxbChIbC5iYXNpY09wdGlvbmFsTWludXRlcyxlKTtjYXNlIlhYIjpyZXR1cm4gcWwoSGwuYmFzaWMsZSk7Y2FzZSJYWFhYIjpyZXR1cm4gcWwoSGwuYmFzaWNPcHRpb25hbFNlY29uZHMsZSk7Y2FzZSJYWFhYWCI6cmV0dXJuIHFsKEhsLmV4dGVuZGVkT3B0aW9uYWxTZWNvbmRzLGUpO2RlZmF1bHQ6cmV0dXJuIHFsKEhsLmV4dGVuZGVkLGUpfX1zZXQoZSxyLGEpe3JldHVybiByLnRpbWVzdGFtcElzU2V0P2U6V2UoZSxlLmdldFRpbWUoKS1SaShlKS1hKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCIsIngiXX19KTt2YXIgSTBlLG1XdD11KCgpPT57VXQoKTt4NCgpO2ZvKCk7dmEoKTtFYSgpO0kwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIklTT1RpbWV6b25lUGFyc2VyIil9cHJpb3JpdHk9MTA7cGFyc2UoZSxyKXtzd2l0Y2gocil7Y2FzZSJ4IjpyZXR1cm4gcWwoSGwuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJ4eCI6cmV0dXJuIHFsKEhsLmJhc2ljLGUpO2Nhc2UieHh4eCI6cmV0dXJuIHFsKEhsLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UieHh4eHgiOnJldHVybiBxbChIbC5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBxbChIbC5leHRlbmRlZCxlKX19c2V0KGUscixhKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD9lOldlKGUsZS5nZXRUaW1lKCktUmkoZSktYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIFAwZSxnV3Q9dSgoKT0+e1V0KCk7dmEoKTtFYSgpO1AwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIlRpbWVzdGFtcFNlY29uZHNQYXJzZXIiKX1wcmlvcml0eT00MDtwYXJzZShlKXtyZXR1cm4gdDBlKGUpfXNldChlLHIsYSl7cmV0dXJuW1dlKGUsYSoxZTMpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIE4wZSxiV3Q9dSgoKT0+e1V0KCk7dmEoKTtFYSgpO04wZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIlRpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlciIpfXByaW9yaXR5PTIwO3BhcnNlKGUpe3JldHVybiB0MGUoZSl9c2V0KGUscixhKXtyZXR1cm5bV2UoZSxhKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciBPMGUseFd0PXUoKCk9PntIVXQoKTtxVXQoKTtWVXQoKTtqVXQoKTtVVXQoKTtXVXQoKTtHVXQoKTtZVXQoKTtLVXQoKTtaVXQoKTtRVXQoKTtYVXQoKTtKVXQoKTtlV3QoKTt0V3QoKTtyV3QoKTthV3QoKTtpV3QoKTtzV3QoKTtuV3QoKTtvV3QoKTtsV3QoKTtjV3QoKTtkV3QoKTt1V3QoKTtwV3QoKTtmV3QoKTtoV3QoKTttV3QoKTtnV3QoKTtiV3QoKTtPMGU9e0c6bmV3IGUwZSx5Om5ldyBpMGUsWTpuZXcgczBlLFI6bmV3IG4wZSx1Om5ldyBvMGUsUTpuZXcgbDBlLHE6bmV3IGMwZSxNOm5ldyBkMGUsTDpuZXcgdTBlLHc6bmV3IGYwZSxJOm5ldyBtMGUsZDpuZXcgZzBlLEQ6bmV3IGIwZSxFOm5ldyB4MGUsZTpuZXcgdjBlLGM6bmV3IHkwZSxpOm5ldyBrMGUsYTpuZXcgUzBlLGI6bmV3IE0wZSxCOm5ldyBDMGUsaDpuZXcgejBlLEg6bmV3IF8wZSxLOm5ldyBUMGUsazpuZXcgTDBlLG06bmV3IEQwZSxzOm5ldyAkMGUsUzpuZXcgQTBlLFg6bmV3IEUwZSx4Om5ldyBJMGUsdDpuZXcgUDBlLFQ6bmV3IE4wZX19KTtmdW5jdGlvbiBSMGUodCxlLHIsYSl7bGV0IHM9aSgoKT0+V2UoYT8uaW58fHIsTmFOKSwiaW52YWxpZERhdGUiKSxuPUdjZSgpLG89YT8ubG9jYWxlPz9uLmxvY2FsZT8/ejEsbD1hPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2E/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9uLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxjPWE/LndlZWtTdGFydHNPbj8/YT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wO2lmKCFlKXJldHVybiB0P3MoKTpNZShyLGE/LmluKTtsZXQgZD17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOmwsd2Vla1N0YXJ0c09uOmMsbG9jYWxlOm99LGY9W25ldyBKY2UoYT8uaW4scildLHA9ZS5tYXRjaChMYmEpLm1hcChnPT57bGV0IHk9Z1swXTtpZih5IGluIEp1KXtsZXQgaz1KdVt5XTtyZXR1cm4gayhnLG8uZm9ybWF0TG9uZyl9cmV0dXJuIGd9KS5qb2luKCIiKS5tYXRjaChUYmEpLGg9W107Zm9yKGxldCBnIG9mIHApeyFhPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJkhjZShnKSYmcUMoZyxlLHQpLCFhPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZCY2UoZykmJnFDKGcsZSx0KTtsZXQgeT1nWzBdLGs9TzBlW3ldO2lmKGspe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6TX09aztpZihBcnJheS5pc0FycmF5KE0pKXtsZXQgXz1oLmZpbmQoUz0+TS5pbmNsdWRlcyhTLnRva2VuKXx8Uy50b2tlbj09PXkpO2lmKF8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7Xy5mdWxsVG9rZW59XGAgYW5kIFxgJHtnfVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKGsuaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZoLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke2d9XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7aC5wdXNoKHt0b2tlbjp5LGZ1bGxUb2tlbjpnfSk7bGV0IE49ay5ydW4odCxnLG8ubWF0Y2gsZCk7aWYoIU4pcmV0dXJuIHMoKTtmLnB1c2goTi5zZXR0ZXIpLHQ9Ti5yZXN0fWVsc2V7aWYoeS5tYXRjaChFYmEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIreSsiYCIpO2lmKGc9PT0iJyciP2c9IiciOnk9PT0iJyImJihnPUliYShnKSksdC5pbmRleE9mKGcpPT09MCl0PXQuc2xpY2UoZy5sZW5ndGgpO2Vsc2UgcmV0dXJuIHMoKX19aWYodC5sZW5ndGg+MCYmQWJhLnRlc3QodCkpcmV0dXJuIHMoKTtsZXQgbT1mLm1hcChnPT5nLnByaW9yaXR5KS5zb3J0KChnLHkpPT55LWcpLmZpbHRlcigoZyx5LGspPT5rLmluZGV4T2YoZyk9PT15KS5tYXAoZz0+Zi5maWx0ZXIoeT0+eS5wcmlvcml0eT09PWcpLnNvcnQoKHksayk9Pmsuc3ViUHJpb3JpdHkteS5zdWJQcmlvcml0eSkpLm1hcChnPT5nWzBdKSx2PU1lKHIsYT8uaW4pO2lmKGlzTmFOKCt2KSlyZXR1cm4gcygpO2xldCBiPXt9O2ZvcihsZXQgZyBvZiBtKXtpZighZy52YWxpZGF0ZSh2LGQpKXJldHVybiBzKCk7bGV0IHk9Zy5zZXQodixiLGQpO0FycmF5LmlzQXJyYXkoeSk/KHY9eVswXSxPYmplY3QuYXNzaWduKGIseVsxXSkpOnY9eX1yZXR1cm4gdn1mdW5jdGlvbiBJYmEodCl7cmV0dXJuIHQubWF0Y2goRGJhKVsxXS5yZXBsYWNlKCRiYSwiJyIpfXZhciBUYmEsTGJhLERiYSwkYmEsQWJhLEViYSxzcXMsUnplPXUoKCk9PntjNigpO2t6ZSgpO1N6ZSgpO1V0KCk7RHplKCk7WmUoKTtJemUoKTt4V3QoKTtUYmE9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxMYmE9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csRGJhPS9eJyhbXl0qPyknPyQvLCRiYT0vJycvZyxBYmE9L1xTLyxFYmE9L1thLXpBLVpdLztpKFIwZSwicGFyc2UiKTtpKEliYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7c3FzPVIwZX0pO2Z1bmN0aW9uIHZXdCh0LGUscil7cmV0dXJuIExuKFIwZSh0LGUsbmV3IERhdGUscikpfXZhciBkcXMseVd0PXUoKCk9Pnt5NCgpO1J6ZSgpO2kodld0LCJpc01hdGNoIik7ZHFzPXZXdH0pO2Z1bmN0aW9uIHdXdCh0LGUpe3JldHVybiBNZSh0LGU/LmluKS5nZXREYXkoKT09PTF9dmFyIGhxcyxrV3Q9dSgoKT0+e1plKCk7aSh3V3QsImlzTW9uZGF5Iik7aHFzPXdXdH0pO2Z1bmN0aW9uIFNXdCh0KXtyZXR1cm4rTWUodCk8RGF0ZS5ub3coKX12YXIgeHFzLE1XdD11KCgpPT57WmUoKTtpKFNXdCwiaXNQYXN0Iik7eHFzPVNXdH0pO2Z1bmN0aW9uIFdDKHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIHIuc2V0TWludXRlcygwLDAsMCkscn12YXIga3FzLEZ6ZT11KCgpPT57WmUoKTtpKFdDLCJzdGFydE9mSG91ciIpO2txcz1XQ30pO2Z1bmN0aW9uIEYwZSh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKTtyZXR1cm4rV0MoYSk9PStXQyhzKX12YXIgX3FzLEJ6ZT11KCgpPT57SGEoKTtGemUoKTtpKEYwZSwiaXNTYW1lSG91ciIpO19xcz1GMGV9KTtmdW5jdGlvbiBDdih0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKTtyZXR1cm4rS2EoYSxyKT09K0thKHMscil9dmFyIEFxcyxCMGU9dSgoKT0+e0hhKCk7RzIoKTtpKEN2LCJpc1NhbWVXZWVrIik7QXFzPUN2fSk7ZnVuY3Rpb24gSDBlKHQsZSxyKXtyZXR1cm4gQ3YodCxlLHsuLi5yLHdlZWtTdGFydHNPbjoxfSl9dmFyIE5xcyxIemU9dSgoKT0+e0IwZSgpO2koSDBlLCJpc1NhbWVJU09XZWVrIik7TnFzPUgwZX0pO2Z1bmN0aW9uIENXdCh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKTtyZXR1cm4rWDEoYSk9PStYMShzKX12YXIgSHFzLHpXdD11KCgpPT57b3YoKTtIYSgpO2koQ1d0LCJpc1NhbWVJU09XZWVrWWVhciIpO0hxcz1DV3R9KTtmdW5jdGlvbiBHQyh0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiByLnNldFNlY29uZHMoMCwwKSxyfXZhciBVcXMscXplPXUoKCk9PntaZSgpO2koR0MsInN0YXJ0T2ZNaW51dGUiKTtVcXM9R0N9KTtmdW5jdGlvbiBxMGUodCxlKXtyZXR1cm4rR0ModCk9PStHQyhlKX12YXIgS3FzLFZ6ZT11KCgpPT57cXplKCk7aShxMGUsImlzU2FtZU1pbnV0ZSIpO0txcz1xMGV9KTtmdW5jdGlvbiBWMGUodCxlLHIpe2xldFthLHNdPUh0KHI/LmluLHQsZSk7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKT09PXMuZ2V0RnVsbFllYXIoKSYmYS5nZXRNb250aCgpPT09cy5nZXRNb250aCgpfXZhciBKcXMsanplPXUoKCk9PntIYSgpO2koVjBlLCJpc1NhbWVNb250aCIpO0pxcz1WMGV9KTtmdW5jdGlvbiBqMGUodCxlLHIpe2xldFthLHNdPUh0KHI/LmluLHQsZSk7cmV0dXJuK0IwKGEpPT0rQjAocyl9dmFyIGlWcyxVemU9dSgoKT0+e0hhKCk7RGNlKCk7aShqMGUsImlzU2FtZVF1YXJ0ZXIiKTtpVnM9ajBlfSk7ZnVuY3Rpb24gWUModCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoMCkscn12YXIgbFZzLFd6ZT11KCgpPT57WmUoKTtpKFlDLCJzdGFydE9mU2Vjb25kIik7bFZzPVlDfSk7ZnVuY3Rpb24gVTBlKHQsZSl7cmV0dXJuK1lDKHQpPT0rWUMoZSl9dmFyIHBWcyxHemU9dSgoKT0+e1d6ZSgpO2koVTBlLCJpc1NhbWVTZWNvbmQiKTtwVnM9VTBlfSk7ZnVuY3Rpb24gVzBlKHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT1zLmdldEZ1bGxZZWFyKCl9dmFyIGdWcyxZemU9dSgoKT0+e0hhKCk7aShXMGUsImlzU2FtZVllYXIiKTtnVnM9VzBlfSk7ZnVuY3Rpb24gX1d0KHQsZSl7cmV0dXJuIEYwZShNZSh0LGU/LmluKSxGcihlPy5pbnx8dCkpfXZhciBrVnMsVFd0PXUoKCk9PntLcygpO0J6ZSgpO1plKCk7aShfV3QsImlzVGhpc0hvdXIiKTtrVnM9X1d0fSk7ZnVuY3Rpb24gTFd0KHQsZSl7cmV0dXJuIEgwZShXZShlPy5pbnx8dCx0KSxGcihlPy5pbnx8dCkpfXZhciBUVnMsRFd0PXUoKCk9PntVdCgpO0tzKCk7SHplKCk7aShMV3QsImlzVGhpc0lTT1dlZWsiKTtUVnM9TFd0fSk7ZnVuY3Rpb24gJFd0KHQpe3JldHVybiBxMGUodCxGcih0KSl9dmFyIEVWcyxBV3Q9dSgoKT0+e0tzKCk7VnplKCk7aSgkV3QsImlzVGhpc01pbnV0ZSIpO0VWcz0kV3R9KTtmdW5jdGlvbiBFV3QodCxlKXtyZXR1cm4gVjBlKFdlKGU/LmlufHx0LHQpLEZyKGU/LmlufHx0KSl9dmFyIEZWcyxJV3Q9dSgoKT0+e1V0KCk7S3MoKTtqemUoKTtpKEVXdCwiaXNUaGlzTW9udGgiKTtGVnM9RVd0fSk7ZnVuY3Rpb24gUFd0KHQsZSl7cmV0dXJuIGowZShXZShlPy5pbnx8dCx0KSxGcihlPy5pbnx8dCkpfXZhciBVVnMsTld0PXUoKCk9PntVdCgpO0tzKCk7VXplKCk7aShQV3QsImlzVGhpc1F1YXJ0ZXIiKTtVVnM9UFd0fSk7ZnVuY3Rpb24gT1d0KHQpe3JldHVybiBVMGUodCxGcih0KSl9dmFyIFpWcyxSV3Q9dSgoKT0+e0tzKCk7R3plKCk7aShPV3QsImlzVGhpc1NlY29uZCIpO1pWcz1PV3R9KTtmdW5jdGlvbiBGV3QodCxlKXtyZXR1cm4gQ3YoV2UoZT8uaW58fHQsdCksRnIoZT8uaW58fHQpLGUpfXZhciByanMsQld0PXUoKCk9PntVdCgpO0tzKCk7QjBlKCk7aShGV3QsImlzVGhpc1dlZWsiKTtyanM9Rld0fSk7ZnVuY3Rpb24gSFd0KHQsZSl7cmV0dXJuIFcwZShXZShlPy5pbnx8dCx0KSxGcihlPy5pbnx8dCkpfXZhciBsanMscVd0PXUoKCk9PntVdCgpO0tzKCk7WXplKCk7aShIV3QsImlzVGhpc1llYXIiKTtsanM9SFd0fSk7ZnVuY3Rpb24gVld0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldERheSgpPT09NH12YXIgcGpzLGpXdD11KCgpPT57WmUoKTtpKFZXdCwiaXNUaHVyc2RheSIpO3Bqcz1WV3R9KTtmdW5jdGlvbiBVV3QodCxlKXtyZXR1cm4gTzAoV2UoZT8uaW58fHQsdCksRnIoZT8uaW58fHQpKX12YXIgeGpzLFdXdD11KCgpPT57VXQoKTtLcygpO2R2KCk7aShVV3QsImlzVG9kYXkiKTt4anM9VVd0fSk7ZnVuY3Rpb24gR1d0KHQsZSl7cmV0dXJuIE8wKHQsWXMoRnIoZT8uaW58fHQpLDEpLGUpfXZhciBNanMsWVd0PXUoKCk9PntBMCgpO0tzKCk7ZHYoKTtpKEdXdCwiaXNUb21vcnJvdyIpO01qcz1HV3R9KTtmdW5jdGlvbiBLV3QodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0RGF5KCk9PT0yfXZhciBUanMsWld0PXUoKCk9PntaZSgpO2koS1d0LCJpc1R1ZXNkYXkiKTtUanM9S1d0fSk7ZnVuY3Rpb24gUVd0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldERheSgpPT09M312YXIgQWpzLFhXdD11KCgpPT57WmUoKTtpKFFXdCwiaXNXZWRuZXNkYXkiKTtBanM9UVd0fSk7ZnVuY3Rpb24gSld0KHQsZSxyKXtsZXQgYT0rTWUodCxyPy5pbiksW3Msbl09WytNZShlLnN0YXJ0LHI/LmluKSwrTWUoZS5lbmQscj8uaW4pXS5zb3J0KChvLGwpPT5vLWwpO3JldHVybiBhPj1zJiZhPD1ufXZhciBOanMsZUd0PXUoKCk9PntaZSgpO2koSld0LCJpc1dpdGhpbkludGVydmFsIik7TmpzPUpXdH0pO2Z1bmN0aW9uIHJwKHQsZSxyKXtyZXR1cm4gWXModCwtZSxyKX12YXIgQmpzLEtDPXUoKCk9PntBMCgpO2kocnAsInN1YkRheXMiKTtCanM9cnB9KTtmdW5jdGlvbiB0R3QodCxlKXtyZXR1cm4gTzAoV2UoZT8uaW58fHQsdCkscnAoRnIoZT8uaW58fHQpLDEpKX12YXIgR2pzLHJHdD11KCgpPT57VXQoKTtLcygpO2R2KCk7S0MoKTtpKHRHdCwiaXNZZXN0ZXJkYXkiKTtHanM9dEd0fSk7ZnVuY3Rpb24gYUd0KHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz05K01hdGguZmxvb3IoYS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIocysxLDAsMCksci5zZXRIb3VycygwLDAsMCwwKSxNZShyLGU/LmluKX12YXIgUWpzLGlHdD11KCgpPT57WmUoKTtpKGFHdCwibGFzdERheU9mRGVjYWRlIik7UWpzPWFHdH0pO2Z1bmN0aW9uIEcwZSh0LGUpe2xldCByPUFhKCksYT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPU1lKHQsZT8uaW4pLG49cy5nZXREYXkoKSxvPShuPGE/LTc6MCkrNi0obi1hKTtyZXR1cm4gcy5zZXRIb3VycygwLDAsMCwwKSxzLnNldERhdGUocy5nZXREYXRlKCkrbyksc312YXIgclVzLEt6ZT11KCgpPT57Y28oKTtaZSgpO2koRzBlLCJsYXN0RGF5T2ZXZWVrIik7clVzPUcwZX0pO2Z1bmN0aW9uIHNHdCh0LGUpe3JldHVybiBHMGUodCx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciBuVXMsbkd0PXUoKCk9PntLemUoKTtpKHNHdCwibGFzdERheU9mSVNPV2VlayIpO25Vcz1zR3R9KTtmdW5jdGlvbiBvR3QodCxlKXtsZXQgcj1Gbyh0LGUpLGE9V2UoZT8uaW58fHQsMCk7YS5zZXRGdWxsWWVhcihyKzEsMCw0KSxhLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPVNzKGEsZSk7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKS0xKSxzfXZhciBwVXMsbEd0PXUoKCk9PntVdCgpO0d1KCk7UDAoKTtpKG9HdCwibGFzdERheU9mSVNPV2Vla1llYXIiKTtwVXM9b0d0fSk7ZnVuY3Rpb24gY0d0KHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT1yLmdldE1vbnRoKCkscz1hLWElMyszO3JldHVybiByLnNldE1vbnRoKHMsMCksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBnVXMsZEd0PXUoKCk9PntaZSgpO2koY0d0LCJsYXN0RGF5T2ZRdWFydGVyIik7Z1VzPWNHdH0pO2Z1bmN0aW9uIHVHdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpO3JldHVybiByLnNldEZ1bGxZZWFyKGErMSwwLDApLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgeVVzLHBHdD11KCgpPT57WmUoKTtpKHVHdCwibGFzdERheU9mWWVhciIpO3lVcz11R3R9KTtmdW5jdGlvbiBmR3QodCxlKXtsZXQgcj1NZSh0KTtpZighTG4ocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWUubWF0Y2goUGJhKTtyZXR1cm4gYT9hLm1hcChuPT57aWYobj09PSInJyIpcmV0dXJuIiciO2xldCBvPW5bMF07aWYobz09PSInIilyZXR1cm4gRmJhKG4pO2xldCBsPUoxW29dO2lmKGwpcmV0dXJuIGwocixuKTtpZihvLm1hdGNoKFJiYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitvKyJgIik7cmV0dXJuIG59KS5qb2luKCIiKToiIn1mdW5jdGlvbiBGYmEodCl7bGV0IGU9dC5tYXRjaChOYmEpO3JldHVybiBlP2VbMV0ucmVwbGFjZShPYmEsIiciKTp0fXZhciBQYmEsTmJhLE9iYSxSYmEselVzLGhHdD11KCgpPT57d3plKCk7eTQoKTtaZSgpO1BiYT0vKFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxOYmE9L14nKFteXSo/KSc/JC8sT2JhPS8nJy9nLFJiYT0vW2EtekEtWl0vO2koZkd0LCJsaWdodEZvcm1hdCIpO2koRmJhLCJjbGVhbkVzY2FwZWRTdHJpbmciKTt6VXM9Zkd0fSk7ZnVuY3Rpb24gbUd0KHt5ZWFyczp0LG1vbnRoczplLHdlZWtzOnIsZGF5czphLGhvdXJzOnMsbWludXRlczpuLHNlY29uZHM6b30pe2xldCBsPTA7dCYmKGwrPXQqMzY1LjI0MjUpLGUmJihsKz1lKigzNjUuMjQyNS8xMikpLHImJihsKz1yKjcpLGEmJihsKz1hKTtsZXQgYz1sKjI0KjYwKjYwO3JldHVybiBzJiYoYys9cyo2MCo2MCksbiYmKGMrPW4qNjApLG8mJihjKz1vKSxNYXRoLnRydW5jKGMqMWUzKX12YXIgRFVzLGdHdD11KCgpPT57U3IoKTtpKG1HdCwibWlsbGlzZWNvbmRzIik7RFVzPW1HdH0pO2Z1bmN0aW9uIGJHdCh0KXtsZXQgZT10L1ExO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBJVXMseEd0PXUoKCk9PntTcigpO2koYkd0LCJtaWxsaXNlY29uZHNUb0hvdXJzIik7SVVzPWJHdH0pO2Z1bmN0aW9uIHZHdCh0KXtsZXQgZT10L2xvO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBSVXMseUd0PXUoKCk9PntTcigpO2kodkd0LCJtaWxsaXNlY29uZHNUb01pbnV0ZXMiKTtSVXM9dkd0fSk7ZnVuY3Rpb24gd0d0KHQpe2xldCBlPXQvYXY7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIHFVcyxrR3Q9dSgoKT0+e1NyKCk7aSh3R3QsIm1pbGxpc2Vjb25kc1RvU2Vjb25kcyIpO3FVcz13R3R9KTtmdW5jdGlvbiBTR3QodCl7bGV0IGU9dC9YMmU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIFdVcyxNR3Q9dSgoKT0+e1NyKCk7aShTR3QsIm1pbnV0ZXNUb0hvdXJzIik7V1VzPVNHdH0pO2Z1bmN0aW9uIENHdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KmxvKX12YXIgWlVzLHpHdD11KCgpPT57U3IoKTtpKENHdCwibWludXRlc1RvTWlsbGlzZWNvbmRzIik7WlVzPUNHdH0pO2Z1bmN0aW9uIF9HdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KnN2KX12YXIgZVdzLFRHdD11KCgpPT57U3IoKTtpKF9HdCwibWludXRlc1RvU2Vjb25kcyIpO2VXcz1fR3R9KTtmdW5jdGlvbiBMR3QodCl7bGV0IGU9dC9KMmU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIGlXcyxER3Q9dSgoKT0+e1NyKCk7aShMR3QsIm1vbnRoc1RvUXVhcnRlcnMiKTtpV3M9TEd0fSk7ZnVuY3Rpb24gJEd0KHQpe2xldCBlPXQvZWNlO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBsV3MsQUd0PXUoKCk9PntTcigpO2koJEd0LCJtb250aHNUb1llYXJzIik7bFdzPSRHdH0pO2Z1bmN0aW9uIGhvKHQsZSxyKXtsZXQgYT1lLWVwKHQscik7cmV0dXJuIGE8PTAmJihhKz03KSxZcyh0LGEscil9dmFyIGZXcyxrND11KCgpPT57QTAoKTtqQygpO2koaG8sIm5leHREYXkiKTtmV3M9aG99KTtmdW5jdGlvbiBFR3QodCxlKXtyZXR1cm4gaG8odCw1LGUpfXZhciBiV3MsSUd0PXUoKCk9PntrNCgpO2koRUd0LCJuZXh0RnJpZGF5Iik7YldzPUVHdH0pO2Z1bmN0aW9uIFBHdCh0LGUpe3JldHVybiBobyh0LDEsZSl9dmFyIHdXcyxOR3Q9dSgoKT0+e2s0KCk7aShQR3QsIm5leHRNb25kYXkiKTt3V3M9UEd0fSk7ZnVuY3Rpb24gT0d0KHQsZSl7cmV0dXJuIGhvKHQsNixlKX12YXIgQ1dzLFJHdD11KCgpPT57azQoKTtpKE9HdCwibmV4dFNhdHVyZGF5Iik7Q1dzPU9HdH0pO2Z1bmN0aW9uIEZHdCh0LGUpe3JldHVybiBobyh0LDAsZSl9dmFyIExXcyxCR3Q9dSgoKT0+e2s0KCk7aShGR3QsIm5leHRTdW5kYXkiKTtMV3M9Rkd0fSk7ZnVuY3Rpb24gSEd0KHQsZSl7cmV0dXJuIGhvKHQsNCxlKX12YXIgRVdzLHFHdD11KCgpPT57azQoKTtpKEhHdCwibmV4dFRodXJzZGF5Iik7RVdzPUhHdH0pO2Z1bmN0aW9uIFZHdCh0LGUpe3JldHVybiBobyh0LDIsZSl9dmFyIE9XcyxqR3Q9dSgoKT0+e2s0KCk7aShWR3QsIm5leHRUdWVzZGF5Iik7T1dzPVZHdH0pO2Z1bmN0aW9uIFVHdCh0LGUpe3JldHVybiBobyh0LDMsZSl9dmFyIEhXcyxXR3Q9dSgoKT0+e2s0KCk7aShVR3QsIm5leHRXZWRuZXNkYXkiKTtIV3M9VUd0fSk7ZnVuY3Rpb24gWUd0KHQsZSl7bGV0IHI9aSgoKT0+V2UoZT8uaW4sTmFOKSwiaW52YWxpZERhdGUiKSxhPWU/LmFkZGl0aW9uYWxEaWdpdHM/PzIscz1WYmEodCksbjtpZihzLmRhdGUpe2xldCBkPWpiYShzLmRhdGUsYSk7bj1VYmEoZC5yZXN0RGF0ZVN0cmluZyxkLnllYXIpfWlmKCFufHxpc05hTigrbikpcmV0dXJuIHIoKTtsZXQgbz0rbixsPTAsYztpZihzLnRpbWUmJihsPVdiYShzLnRpbWUpLGlzTmFOKGwpKSlyZXR1cm4gcigpO2lmKHMudGltZXpvbmUpe2lmKGM9R2JhKHMudGltZXpvbmUpLGlzTmFOKGMpKXJldHVybiByKCl9ZWxzZXtsZXQgZD1uZXcgRGF0ZShvK2wpLGY9TWUoMCxlPy5pbik7cmV0dXJuIGYuc2V0RnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpLGQuZ2V0VVRDTW9udGgoKSxkLmdldFVUQ0RhdGUoKSksZi5zZXRIb3VycyhkLmdldFVUQ0hvdXJzKCksZC5nZXRVVENNaW51dGVzKCksZC5nZXRVVENTZWNvbmRzKCksZC5nZXRVVENNaWxsaXNlY29uZHMoKSksZn1yZXR1cm4gTWUobytsK2MsZT8uaW4pfWZ1bmN0aW9uIFZiYSh0KXtsZXQgZT17fSxyPXQuc3BsaXQoWTBlLmRhdGVUaW1lRGVsaW1pdGVyKSxhO2lmKHIubGVuZ3RoPjIpcmV0dXJuIGU7aWYoLzovLnRlc3QoclswXSk/YT1yWzBdOihlLmRhdGU9clswXSxhPXJbMV0sWTBlLnRpbWVab25lRGVsaW1pdGVyLnRlc3QoZS5kYXRlKSYmKGUuZGF0ZT10LnNwbGl0KFkwZS50aW1lWm9uZURlbGltaXRlcilbMF0sYT10LnN1YnN0cihlLmRhdGUubGVuZ3RoLHQubGVuZ3RoKSkpLGEpe2xldCBzPVkwZS50aW1lem9uZS5leGVjKGEpO3M/KGUudGltZT1hLnJlcGxhY2Uoc1sxXSwiIiksZS50aW1lem9uZT1zWzFdKTplLnRpbWU9YX1yZXR1cm4gZX1mdW5jdGlvbiBqYmEodCxlKXtsZXQgcj1uZXcgUmVnRXhwKCJeKD86KFxcZHs0fXxbKy1dXFxkeyIrKDQrZSkrIn0pfChcXGR7Mn18WystXVxcZHsiKygyK2UpKyJ9KSQpIiksYT10Lm1hdGNoKHIpO2lmKCFhKXJldHVybnt5ZWFyOk5hTixyZXN0RGF0ZVN0cmluZzoiIn07bGV0IHM9YVsxXT9wYXJzZUludChhWzFdKTpudWxsLG49YVsyXT9wYXJzZUludChhWzJdKTpudWxsO3JldHVybnt5ZWFyOm49PT1udWxsP3M6bioxMDAscmVzdERhdGVTdHJpbmc6dC5zbGljZSgoYVsxXXx8YVsyXSkubGVuZ3RoKX19ZnVuY3Rpb24gVWJhKHQsZSl7aWYoZT09PW51bGwpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IHI9dC5tYXRjaChCYmEpO2lmKCFyKXJldHVybiBuZXcgRGF0ZShOYU4pO2xldCBhPSEhcls0XSxzPVpDKHJbMV0pLG49WkMoclsyXSktMSxvPVpDKHJbM10pLGw9WkMocls0XSksYz1aQyhyWzVdKS0xO2lmKGEpcmV0dXJuIFhiYShlLGwsYyk/WWJhKGUsbCxjKTpuZXcgRGF0ZShOYU4pO3tsZXQgZD1uZXcgRGF0ZSgwKTtyZXR1cm4hWmJhKGUsbixvKXx8IVFiYShlLHMpP25ldyBEYXRlKE5hTik6KGQuc2V0VVRDRnVsbFllYXIoZSxuLE1hdGgubWF4KHMsbykpLGQpfX1mdW5jdGlvbiBaQyh0KXtyZXR1cm4gdD9wYXJzZUludCh0KToxfWZ1bmN0aW9uIFdiYSh0KXtsZXQgZT10Lm1hdGNoKEhiYSk7aWYoIWUpcmV0dXJuIE5hTjtsZXQgcj1aemUoZVsxXSksYT1aemUoZVsyXSkscz1aemUoZVszXSk7cmV0dXJuIEpiYShyLGEscyk/cipRMSthKmxvK3MqMWUzOk5hTn1mdW5jdGlvbiBaemUodCl7cmV0dXJuIHQmJnBhcnNlRmxvYXQodC5yZXBsYWNlKCIsIiwiLiIpKXx8MH1mdW5jdGlvbiBHYmEodCl7aWYodD09PSJaIilyZXR1cm4gMDtsZXQgZT10Lm1hdGNoKHFiYSk7aWYoIWUpcmV0dXJuIDA7bGV0IHI9ZVsxXT09PSIrIj8tMToxLGE9cGFyc2VJbnQoZVsyXSkscz1lWzNdJiZwYXJzZUludChlWzNdKXx8MDtyZXR1cm4gZXhhKGEscyk/ciooYSpRMStzKmxvKTpOYU59ZnVuY3Rpb24gWWJhKHQsZSxyKXtsZXQgYT1uZXcgRGF0ZSgwKTthLnNldFVUQ0Z1bGxZZWFyKHQsMCw0KTtsZXQgcz1hLmdldFVUQ0RheSgpfHw3LG49KGUtMSkqNytyKzEtcztyZXR1cm4gYS5zZXRVVENEYXRlKGEuZ2V0VVRDRGF0ZSgpK24pLGF9ZnVuY3Rpb24gR0d0KHQpe3JldHVybiB0JTQwMD09PTB8fHQlND09PTAmJnQlMTAwIT09MH1mdW5jdGlvbiBaYmEodCxlLHIpe3JldHVybiBlPj0wJiZlPD0xMSYmcj49MSYmcjw9KEtiYVtlXXx8KEdHdCh0KT8yOToyOCkpfWZ1bmN0aW9uIFFiYSh0LGUpe3JldHVybiBlPj0xJiZlPD0oR0d0KHQpPzM2NjozNjUpfWZ1bmN0aW9uIFhiYSh0LGUscil7cmV0dXJuIGU+PTEmJmU8PTUzJiZyPj0wJiZyPD02fWZ1bmN0aW9uIEpiYSh0LGUscil7cmV0dXJuIHQ9PT0yND9lPT09MCYmcj09PTA6cj49MCYmcjw2MCYmZT49MCYmZTw2MCYmdD49MCYmdDwyNX1mdW5jdGlvbiBleGEodCxlKXtyZXR1cm4gZT49MCYmZTw9NTl9dmFyIFkwZSxCYmEsSGJhLHFiYSxLYmEsR1dzLEtHdD11KCgpPT57U3IoKTtVdCgpO1plKCk7aShZR3QsInBhcnNlSVNPIik7WTBlPXtkYXRlVGltZURlbGltaXRlcjovW1QgXS8sdGltZVpvbmVEZWxpbWl0ZXI6L1taIF0vaSx0aW1lem9uZTovKFtaKy1dLiopJC99LEJiYT0vXi0/KD86KFxkezN9KXwoXGR7Mn0pKD86LT8oXGR7Mn0pKT98VyhcZHsyfSkoPzotPyhcZHsxfSkpP3wpJC8sSGJhPS9eKFxkezJ9KD86Wy4sXVxkKik/KSg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/KD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8kLyxxYmE9L14oWystXSkoXGR7Mn0pKD86Oj8oXGR7Mn0pKT8kLztpKFZiYSwic3BsaXREYXRlU3RyaW5nIik7aShqYmEsInBhcnNlWWVhciIpO2koVWJhLCJwYXJzZURhdGUiKTtpKFpDLCJwYXJzZURhdGVVbml0Iik7aShXYmEsInBhcnNlVGltZSIpO2koWnplLCJwYXJzZVRpbWVVbml0Iik7aShHYmEsInBhcnNlVGltZXpvbmUiKTtpKFliYSwiZGF5T2ZJU09XZWVrWWVhciIpO0tiYT1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07aShHR3QsImlzTGVhcFllYXJJbmRleCIpO2koWmJhLCJ2YWxpZGF0ZURhdGUiKTtpKFFiYSwidmFsaWRhdGVEYXlPZlllYXJEYXRlIik7aShYYmEsInZhbGlkYXRlV2Vla0RhdGUiKTtpKEpiYSwidmFsaWRhdGVUaW1lIik7aShleGEsInZhbGlkYXRlVGltZXpvbmUiKTtHV3M9WUd0fSk7ZnVuY3Rpb24gWkd0KHQsZSl7bGV0IHI9dC5tYXRjaCgvKFxkezR9KS0oXGR7Mn0pLShcZHsyfSlbVCBdKFxkezJ9KTooXGR7Mn0pOihcZHsyfSkoPzpcLihcZHswLDd9KSk/KD86WnwoLikoXGR7Mn0pOj8oXGR7Mn0pPyk/Lyk7cmV0dXJuIHI/TWUoRGF0ZS5VVEMoK3JbMV0sK3JbMl0tMSwrclszXSwrcls0XS0oK3JbOV18fDApKihyWzhdPT0iLSI/LTE6MSksK3JbNV0tKCtyWzEwXXx8MCkqKHJbOF09PSItIj8tMToxKSwrcls2XSwrKChyWzddfHwiMCIpKyIwMCIpLnN1YnN0cmluZygwLDMpKSxlPy5pbik6TWUoTmFOLGU/LmluKX12YXIgUVdzLFFHdD11KCgpPT57WmUoKTtpKFpHdCwicGFyc2VKU09OIik7UVdzPVpHdH0pO2Z1bmN0aW9uIG1vKHQsZSxyKXtsZXQgYT1lcCh0LHIpLWU7cmV0dXJuIGE8PTAmJihhKz03KSxycCh0LGEscil9dmFyIHJHcyxTND11KCgpPT57akMoKTtLQygpO2kobW8sInByZXZpb3VzRGF5Iik7ckdzPW1vfSk7ZnVuY3Rpb24gWEd0KHQsZSl7cmV0dXJuIG1vKHQsNSxlKX12YXIgbkdzLEpHdD11KCgpPT57UzQoKTtpKFhHdCwicHJldmlvdXNGcmlkYXkiKTtuR3M9WEd0fSk7ZnVuY3Rpb24gZVl0KHQsZSl7cmV0dXJuIG1vKHQsMSxlKX12YXIgZEdzLHRZdD11KCgpPT57UzQoKTtpKGVZdCwicHJldmlvdXNNb25kYXkiKTtkR3M9ZVl0fSk7ZnVuY3Rpb24gcll0KHQsZSl7cmV0dXJuIG1vKHQsNixlKX12YXIgaEdzLGFZdD11KCgpPT57UzQoKTtpKHJZdCwicHJldmlvdXNTYXR1cmRheSIpO2hHcz1yWXR9KTtmdW5jdGlvbiBpWXQodCxlKXtyZXR1cm4gbW8odCwwLGUpfXZhciB4R3Msc1l0PXUoKCk9PntTNCgpO2koaVl0LCJwcmV2aW91c1N1bmRheSIpO3hHcz1pWXR9KTtmdW5jdGlvbiBuWXQodCxlKXtyZXR1cm4gbW8odCw0LGUpfXZhciBrR3Msb1l0PXUoKCk9PntTNCgpO2kobll0LCJwcmV2aW91c1RodXJzZGF5Iik7a0dzPW5ZdH0pO2Z1bmN0aW9uIGxZdCh0LGUpe3JldHVybiBtbyh0LDIsZSl9dmFyIHpHcyxjWXQ9dSgoKT0+e1M0KCk7aShsWXQsInByZXZpb3VzVHVlc2RheSIpO3pHcz1sWXR9KTtmdW5jdGlvbiBkWXQodCxlKXtyZXR1cm4gbW8odCwzLGUpfXZhciBER3MsdVl0PXUoKCk9PntTNCgpO2koZFl0LCJwcmV2aW91c1dlZG5lc2RheSIpO0RHcz1kWXR9KTtmdW5jdGlvbiBwWXQodCl7cmV0dXJuIE1hdGgudHJ1bmModCpKMmUpfXZhciBJR3MsZll0PXUoKCk9PntTcigpO2kocFl0LCJxdWFydGVyc1RvTW9udGhzIik7SUdzPXBZdH0pO2Z1bmN0aW9uIGhZdCh0KXtsZXQgZT10L3RjZTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgUkdzLG1ZdD11KCgpPT57U3IoKTtpKGhZdCwicXVhcnRlcnNUb1llYXJzIik7UkdzPWhZdH0pO2Z1bmN0aW9uIGdZdCh0LGUpe2xldCByPWU/Lm5lYXJlc3RUbz8/MTtpZihyPDF8fHI+MTIpcmV0dXJuIFdlKGU/LmlufHx0LE5hTik7bGV0IGE9TWUodCxlPy5pbikscz1hLmdldE1pbnV0ZXMoKS82MCxuPWEuZ2V0U2Vjb25kcygpLzYwLzYwLG89YS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAsbD1hLmdldEhvdXJzKCkrcytuK28sYz1lPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIixmPXBvKGMpKGwvcikqcjtyZXR1cm4gYS5zZXRIb3VycyhmLDAsMCwwKSxhfXZhciBqR3MsYll0PXUoKCk9Pnt3NCgpO1V0KCk7WmUoKTtpKGdZdCwicm91bmRUb05lYXJlc3RIb3VycyIpO2pHcz1nWXR9KTtmdW5jdGlvbiB4WXQodCxlKXtsZXQgcj1lPy5uZWFyZXN0VG8/PzE7aWYocjwxfHxyPjMwKXJldHVybiBXZSh0LE5hTik7bGV0IGE9TWUodCxlPy5pbikscz1hLmdldFNlY29uZHMoKS82MCxuPWEuZ2V0TWlsbGlzZWNvbmRzKCkvMWUzLzYwLG89YS5nZXRNaW51dGVzKCkrcytuLGw9ZT8ucm91bmRpbmdNZXRob2Q/PyJyb3VuZCIsZD1wbyhsKShvL3IpKnI7cmV0dXJuIGEuc2V0TWludXRlcyhkLDAsMCksYX12YXIgWkdzLHZZdD11KCgpPT57dzQoKTtVdCgpO1plKCk7aSh4WXQsInJvdW5kVG9OZWFyZXN0TWludXRlcyIpO1pHcz14WXR9KTtmdW5jdGlvbiB5WXQodCl7bGV0IGU9dC9hNjtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgZVlzLHdZdD11KCgpPT57U3IoKTtpKHlZdCwic2Vjb25kc1RvSG91cnMiKTtlWXM9eVl0fSk7ZnVuY3Rpb24ga1l0KHQpe3JldHVybiB0KmF2fXZhciBpWXMsU1l0PXUoKCk9PntTcigpO2koa1l0LCJzZWNvbmRzVG9NaWxsaXNlY29uZHMiKTtpWXM9a1l0fSk7ZnVuY3Rpb24gTVl0KHQpe2xldCBlPXQvc3Y7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIGxZcyxDWXQ9dSgoKT0+e1NyKCk7aShNWXQsInNlY29uZHNUb01pbnV0ZXMiKTtsWXM9TVl0fSk7ZnVuY3Rpb24genYodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pLHM9YS5nZXRGdWxsWWVhcigpLG49YS5nZXREYXRlKCksbz1XZShyPy5pbnx8dCwwKTtvLnNldEZ1bGxZZWFyKHMsZSwxNSksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1VY2Uobyk7cmV0dXJuIGEuc2V0TW9udGgoZSxNYXRoLm1pbihuLGwpKSxhfXZhciBoWXMsSzBlPXUoKCk9PntVdCgpO1R6ZSgpO1plKCk7aSh6diwic2V0TW9udGgiKTtoWXM9enZ9KTtmdW5jdGlvbiB6WXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBpc05hTigrYSk/V2Uocj8uaW58fHQsTmFOKTooZS55ZWFyIT1udWxsJiZhLnNldEZ1bGxZZWFyKGUueWVhciksZS5tb250aCE9bnVsbCYmKGE9enYoYSxlLm1vbnRoKSksZS5kYXRlIT1udWxsJiZhLnNldERhdGUoZS5kYXRlKSxlLmhvdXJzIT1udWxsJiZhLnNldEhvdXJzKGUuaG91cnMpLGUubWludXRlcyE9bnVsbCYmYS5zZXRNaW51dGVzKGUubWludXRlcyksZS5zZWNvbmRzIT1udWxsJiZhLnNldFNlY29uZHMoZS5zZWNvbmRzKSxlLm1pbGxpc2Vjb25kcyE9bnVsbCYmYS5zZXRNaWxsaXNlY29uZHMoZS5taWxsaXNlY29uZHMpLGEpfXZhciB5WXMsX1l0PXUoKCk9PntVdCgpO0swZSgpO1plKCk7aSh6WXQsInNldCIpO3lZcz16WXR9KTtmdW5jdGlvbiBUWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldERhdGUoZSksYX12YXIgTVlzLExZdD11KCgpPT57WmUoKTtpKFRZdCwic2V0RGF0ZSIpO01Zcz1UWXR9KTtmdW5jdGlvbiBEWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldE1vbnRoKDApLGEuc2V0RGF0ZShlKSxhfXZhciBUWXMsJFl0PXUoKCk9PntaZSgpO2koRFl0LCJzZXREYXlPZlllYXIiKTtUWXM9RFl0fSk7ZnVuY3Rpb24gQVl0KHQpe2xldCBlPXt9LHI9QWEoKTtmb3IobGV0IGEgaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixhKSYmKGVbYV09clthXSk7Zm9yKGxldCBhIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJih0W2FdPT09dm9pZCAwP2RlbGV0ZSBlW2FdOmVbYV09dFthXSk7WXF0KGUpfXZhciBBWXMsRVl0PXUoKCk9PntjbygpO2koQVl0LCJzZXREZWZhdWx0T3B0aW9ucyIpO0FZcz1BWXR9KTtmdW5jdGlvbiBJWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldEhvdXJzKGUpLGF9dmFyIE5ZcyxQWXQ9dSgoKT0+e1plKCk7aShJWXQsInNldEhvdXJzIik7TllzPUlZdH0pO2Z1bmN0aW9uIE5ZdCh0LGUscil7bGV0IGE9TWUodCxyPy5pbik7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKGUpLGF9dmFyIEJZcyxPWXQ9dSgoKT0+e1plKCk7aShOWXQsInNldE1pbGxpc2Vjb25kcyIpO0JZcz1OWXR9KTtmdW5jdGlvbiBSWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldE1pbnV0ZXMoZSksYX12YXIgallzLEZZdD11KCgpPT57WmUoKTtpKFJZdCwic2V0TWludXRlcyIpO2pZcz1SWXR9KTtmdW5jdGlvbiBCWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pLHM9TWF0aC50cnVuYyhhLmdldE1vbnRoKCkvMykrMSxuPWUtcztyZXR1cm4genYoYSxhLmdldE1vbnRoKCkrbiozKX12YXIgS1lzLEhZdD11KCgpPT57SzBlKCk7WmUoKTtpKEJZdCwic2V0UXVhcnRlciIpO0tZcz1CWXR9KTtmdW5jdGlvbiBxWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldFNlY29uZHMoZSksYX12YXIgSllzLFZZdD11KCgpPT57WmUoKTtpKHFZdCwic2V0U2Vjb25kcyIpO0pZcz1xWXR9KTtmdW5jdGlvbiBqWXQodCxlLHIpe2xldCBhPUFhKCkscz1yPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3I/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPW1uKE1lKHQscj8uaW4pLGQ2KHQsciksciksbz1XZShyPy5pbnx8dCwwKTtvLnNldEZ1bGxZZWFyKGUsMCxzKSxvLnNldEhvdXJzKDAsMCwwLDApO2xldCBsPWQ2KG8scik7cmV0dXJuIGwuc2V0RGF0ZShsLmdldERhdGUoKStuKSxsfXZhciBvS3MsVVl0PXUoKCk9PntjbygpO1V0KCk7djQoKTtSY2UoKTtaZSgpO2koall0LCJzZXRXZWVrWWVhciIpO29Lcz1qWXR9KTtmdW5jdGlvbiBXWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBpc05hTigrYSk/V2Uocj8uaW58fHQsTmFOKTooYS5zZXRGdWxsWWVhcihlKSxhKX12YXIgcEtzLEdZdD11KCgpPT57VXQoKTtaZSgpO2koV1l0LCJzZXRZZWFyIik7cEtzPVdZdH0pO2Z1bmN0aW9uIFlZdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpLHM9TWF0aC5mbG9vcihhLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihzLDAsMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBnS3MsS1l0PXUoKCk9PntaZSgpO2koWVl0LCJzdGFydE9mRGVjYWRlIik7Z0tzPVlZdH0pO2Z1bmN0aW9uIFpZdCh0KXtyZXR1cm4gTjAoRGF0ZS5ub3coKSx0KX12YXIgeUtzLFFZdD11KCgpPT57SUMoKTtpKFpZdCwic3RhcnRPZlRvZGF5Iik7eUtzPVpZdH0pO2Z1bmN0aW9uIFhZdCh0KXtsZXQgZT1Gcih0Py5pbikscj1lLmdldEZ1bGxZZWFyKCksYT1lLmdldE1vbnRoKCkscz1lLmdldERhdGUoKSxuPVdlKHQ/LmluLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsYSxzKzEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgQ0tzLEpZdD11KCgpPT57VXQoKTtLcygpO2koWFl0LCJzdGFydE9mVG9tb3Jyb3ciKTtDS3M9WFl0fSk7ZnVuY3Rpb24gZUt0KHQpe2xldCBlPUZyKHQ/LmluKSxyPWUuZ2V0RnVsbFllYXIoKSxhPWUuZ2V0TW9udGgoKSxzPWUuZ2V0RGF0ZSgpLG49RnIodD8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsYSxzLTEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgTEtzLHRLdD11KCgpPT57S3MoKTtpKGVLdCwic3RhcnRPZlllc3RlcmRheSIpO0xLcz1lS3R9KTtmdW5jdGlvbiBaMGUodCxlLHIpe3JldHVybiBFMCh0LC1lLHIpfXZhciBFS3MsUXplPXUoKCk9PntudigpO2koWjBlLCJzdWJNb250aHMiKTtFS3M9WjBlfSk7ZnVuY3Rpb24gckt0KHQsZSxyKXtsZXR7eWVhcnM6YT0wLG1vbnRoczpzPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOmw9MCxtaW51dGVzOmM9MCxzZWNvbmRzOmQ9MH09ZSxmPVowZSh0LHMrYSoxMixyKSxwPXJwKGYsbytuKjcsciksaD1jK2wqNjAsdj0oZCtoKjYwKSoxZTM7cmV0dXJuIFdlKHI/LmlufHx0LCtwLXYpfXZhciBGS3MsYUt0PXUoKCk9PntVdCgpO0tDKCk7UXplKCk7aShyS3QsInN1YiIpO0ZLcz1yS3R9KTtmdW5jdGlvbiBpS3QodCxlLHIpe3JldHVybiBpY2UodCwtZSxyKX12YXIgVktzLHNLdD11KCgpPT57dHplKCk7aShpS3QsInN1YkJ1c2luZXNzRGF5cyIpO1ZLcz1pS3R9KTtmdW5jdGlvbiBuS3QodCxlLHIpe3JldHVybiBzY2UodCwtZSxyKX12YXIgR0tzLG9LdD11KCgpPT57cnplKCk7aShuS3QsInN1YkhvdXJzIik7R0tzPW5LdH0pO2Z1bmN0aW9uIGxLdCh0LGUscil7cmV0dXJuIFd1KHQsLWUscil9dmFyIFFLcyxjS3Q9dSgoKT0+e0VDKCk7aShsS3QsInN1Yk1pbGxpc2Vjb25kcyIpO1FLcz1sS3R9KTtmdW5jdGlvbiBkS3QodCxlLHIpe3JldHVybiBsdih0LC1lLHIpfXZhciB0WnMsdUt0PXUoKCk9PntsY2UoKTtpKGRLdCwic3ViTWludXRlcyIpO3Racz1kS3R9KTtmdW5jdGlvbiBwS3QodCxlLHIpe3JldHVybiBjdih0LC1lLHIpfXZhciBzWnMsZkt0PXUoKCk9PntjY2UoKTtpKHBLdCwic3ViUXVhcnRlcnMiKTtzWnM9cEt0fSk7ZnVuY3Rpb24gaEt0KHQsZSxyKXtyZXR1cm4gZGNlKHQsLWUscil9dmFyIGNacyxtS3Q9dSgoKT0+e3N6ZSgpO2koaEt0LCJzdWJTZWNvbmRzIik7Y1pzPWhLdH0pO2Z1bmN0aW9uIGdLdCh0LGUscil7cmV0dXJuIFl1KHQsLWUscil9dmFyIGZacyxiS3Q9dSgoKT0+e1BDKCk7aShnS3QsInN1YldlZWtzIik7ZlpzPWdLdH0pO2Z1bmN0aW9uIHhLdCh0LGUscil7cmV0dXJuIHVjZSh0LC1lLHIpfXZhciBiWnMsdkt0PXUoKCk9PntuemUoKTtpKHhLdCwic3ViWWVhcnMiKTtiWnM9eEt0fSk7ZnVuY3Rpb24geUt0KHQpe3JldHVybiBNYXRoLnRydW5jKHQqNyl9dmFyIHdacyx3S3Q9dSgoKT0+e1NyKCk7aSh5S3QsIndlZWtzVG9EYXlzIik7d1pzPXlLdH0pO2Z1bmN0aW9uIGtLdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KjM2NS4yNDI1KX12YXIgQ1pzLFNLdD11KCgpPT57U3IoKTtpKGtLdCwieWVhcnNUb0RheXMiKTtDWnM9a0t0fSk7ZnVuY3Rpb24gTUt0KHQpe3JldHVybiBNYXRoLnRydW5jKHQqZWNlKX12YXIgTFpzLENLdD11KCgpPT57U3IoKTtpKE1LdCwieWVhcnNUb01vbnRocyIpO0xacz1NS3R9KTtmdW5jdGlvbiB6S3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCp0Y2UpfXZhciBFWnMsX0t0PXUoKCk9PntTcigpO2koekt0LCJ5ZWFyc1RvUXVhcnRlcnMiKTtFWnM9ekt0fSk7dmFyIFFDPXt9O1ZlKFFDLHthZGQ6KCk9PlV1LGFkZEJ1c2luZXNzRGF5czooKT0+aWNlLGFkZERheXM6KCk9PllzLGFkZEhvdXJzOigpPT5zY2UsYWRkSVNPV2Vla1llYXJzOigpPT5vY2UsYWRkTWlsbGlzZWNvbmRzOigpPT5XdSxhZGRNaW51dGVzOigpPT5sdixhZGRNb250aHM6KCk9PkUwLGFkZFF1YXJ0ZXJzOigpPT5jdixhZGRTZWNvbmRzOigpPT5kY2UsYWRkV2Vla3M6KCk9Pll1LGFkZFllYXJzOigpPT51Y2UsYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9PktxdCxjbGFtcDooKT0+UXF0LGNsb3Nlc3RJbmRleFRvOigpPT5oY2UsY2xvc2VzdFRvOigpPT5KcXQsY29tcGFyZUFzYzooKT0+dW8sY29tcGFyZURlc2M6KCk9PnRWdCxjb25zdHJ1Y3RGcm9tOigpPT5XZSxjb25zdHJ1Y3ROb3c6KCk9PkZyLGRheXNUb1dlZWtzOigpPT5hVnQsZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzOigpPT5zVnQsZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzOigpPT5tbixkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFyczooKT0+Z2NlLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3M6KCk9Pm9WdCxkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoczooKT0+czYsZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVyczooKT0+dXYsZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrczooKT0+bjYsZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFyczooKT0+S3UsZGlmZmVyZW5jZUluRGF5czooKT0+cHYsZGlmZmVyZW5jZUluSG91cnM6KCk9Pm82LGRpZmZlcmVuY2VJbklTT1dlZWtZZWFyczooKT0+ZFZ0LGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kczooKT0+ZnYsZGlmZmVyZW5jZUluTWludXRlczooKT0+bDYsZGlmZmVyZW5jZUluTW9udGhzOigpPT5adSxkaWZmZXJlbmNlSW5RdWFydGVyczooKT0+cFZ0LGRpZmZlcmVuY2VJblNlY29uZHM6KCk9PlIwLGRpZmZlcmVuY2VJbldlZWtzOigpPT5oVnQsZGlmZmVyZW5jZUluWWVhcnM6KCk9PlRjZSxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+TGNlLGVhY2hIb3VyT2ZJbnRlcnZhbDooKT0+Z1Z0LGVhY2hNaW51dGVPZkludGVydmFsOigpPT54VnQsZWFjaE1vbnRoT2ZJbnRlcnZhbDooKT0+eVZ0LGVhY2hRdWFydGVyT2ZJbnRlcnZhbDooKT0+a1Z0LGVhY2hXZWVrT2ZJbnRlcnZhbDooKT0+TVZ0LGVhY2hXZWVrZW5kT2ZJbnRlcnZhbDooKT0+Z3YsZWFjaFdlZWtlbmRPZk1vbnRoOigpPT56VnQsZWFjaFdlZWtlbmRPZlllYXI6KCk9PlRWdCxlYWNoWWVhck9mSW50ZXJ2YWw6KCk9PkRWdCxlbmRPZkRheTooKT0+aHYsZW5kT2ZEZWNhZGU6KCk9PkFWdCxlbmRPZkhvdXI6KCk9PklWdCxlbmRPZklTT1dlZWs6KCk9Pk5WdCxlbmRPZklTT1dlZWtZZWFyOigpPT5SVnQsZW5kT2ZNaW51dGU6KCk9PkJWdCxlbmRPZk1vbnRoOigpPT5tdixlbmRPZlF1YXJ0ZXI6KCk9PnFWdCxlbmRPZlNlY29uZDooKT0+alZ0LGVuZE9mVG9kYXk6KCk9PldWdCxlbmRPZlRvbW9ycm93OigpPT5ZVnQsZW5kT2ZXZWVrOigpPT5JY2UsZW5kT2ZZZWFyOigpPT5BY2UsZW5kT2ZZZXN0ZXJkYXk6KCk9PlpWdCxmb3JtYXQ6KCk9PlZDLGZvcm1hdERhdGU6KCk9PlZDLGZvcm1hdERpc3RhbmNlOigpPT5xY2UsZm9ybWF0RGlzdGFuY2VTdHJpY3Q6KCk9PlZjZSxmb3JtYXREaXN0YW5jZVRvTm93OigpPT52anQsZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdDooKT0+d2p0LGZvcm1hdER1cmF0aW9uOigpPT5TanQsZm9ybWF0SVNPOigpPT5DanQsZm9ybWF0SVNPOTA3NTooKT0+X2p0LGZvcm1hdElTT0R1cmF0aW9uOigpPT5ManQsZm9ybWF0UkZDMzMzOTooKT0+JGp0LGZvcm1hdFJGQzcyMzE6KCk9PkVqdCxmb3JtYXRSZWxhdGl2ZTooKT0+UGp0LGZvcm1hdHRlcnM6KCk9PkhDLGZyb21Vbml4VGltZTooKT0+T2p0LGdldERhdGU6KCk9PmpjZSxnZXREYXk6KCk9PmVwLGdldERheU9mWWVhcjooKT0+TmNlLGdldERheXNJbk1vbnRoOigpPT5VY2UsZ2V0RGF5c0luWWVhcjooKT0+Rmp0LGdldERlY2FkZTooKT0+SGp0LGdldERlZmF1bHRPcHRpb25zOigpPT5HY2UsZ2V0SG91cnM6KCk9PlZqdCxnZXRJU09EYXk6KCk9PlljZSxnZXRJU09XZWVrOigpPT55dixnZXRJU09XZWVrWWVhcjooKT0+Rm8sZ2V0SVNPV2Vla3NJblllYXI6KCk9PlVqdCxnZXRNaWxsaXNlY29uZHM6KCk9PkdqdCxnZXRNaW51dGVzOigpPT5LanQsZ2V0TW9udGg6KCk9PlFqdCxnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFsczooKT0+Smp0LGdldFF1YXJ0ZXI6KCk9Pk5DLGdldFNlY29uZHM6KCk9PnRVdCxnZXRUaW1lOigpPT5hVXQsZ2V0VW5peFRpbWU6KCk9PnNVdCxnZXRXZWVrOigpPT53dixnZXRXZWVrT2ZNb250aDooKT0+b1V0LGdldFdlZWtZZWFyOigpPT5YdSxnZXRXZWVrc0luTW9udGg6KCk9PmNVdCxnZXRZZWFyOigpPT51VXQsaG91cnNUb01pbGxpc2Vjb25kczooKT0+ZlV0LGhvdXJzVG9NaW51dGVzOigpPT5tVXQsaG91cnNUb1NlY29uZHM6KCk9PmJVdCxpbnRlcnZhbDooKT0+dlV0LGludGVydmFsVG9EdXJhdGlvbjooKT0+d1V0LGludGxGb3JtYXQ6KCk9PlNVdCxpbnRsRm9ybWF0RGlzdGFuY2U6KCk9PkNVdCxpc0FmdGVyOigpPT5fVXQsaXNCZWZvcmU6KCk9PkxVdCxpc0RhdGU6KCk9Pm1jZSxpc0VxdWFsOigpPT4kVXQsaXNFeGlzdHM6KCk9PkVVdCxpc0ZpcnN0RGF5T2ZNb250aDooKT0+UFV0LGlzRnJpZGF5OigpPT5PVXQsaXNGdXR1cmU6KCk9PkZVdCxpc0xhc3REYXlPZk1vbnRoOigpPT5fY2UsaXNMZWFwWWVhcjooKT0+V2NlLGlzTWF0Y2g6KCk9PnZXdCxpc01vbmRheTooKT0+d1d0LGlzUGFzdDooKT0+U1d0LGlzU2FtZURheTooKT0+TzAsaXNTYW1lSG91cjooKT0+RjBlLGlzU2FtZUlTT1dlZWs6KCk9PkgwZSxpc1NhbWVJU09XZWVrWWVhcjooKT0+Q1d0LGlzU2FtZU1pbnV0ZTooKT0+cTBlLGlzU2FtZU1vbnRoOigpPT5WMGUsaXNTYW1lUXVhcnRlcjooKT0+ajBlLGlzU2FtZVNlY29uZDooKT0+VTBlLGlzU2FtZVdlZWs6KCk9PkN2LGlzU2FtZVllYXI6KCk9PlcwZSxpc1NhdHVyZGF5OigpPT5yY2UsaXNTdW5kYXk6KCk9PmFjZSxpc1RoaXNIb3VyOigpPT5fV3QsaXNUaGlzSVNPV2VlazooKT0+TFd0LGlzVGhpc01pbnV0ZTooKT0+JFd0LGlzVGhpc01vbnRoOigpPT5FV3QsaXNUaGlzUXVhcnRlcjooKT0+UFd0LGlzVGhpc1NlY29uZDooKT0+T1d0LGlzVGhpc1dlZWs6KCk9PkZXdCxpc1RoaXNZZWFyOigpPT5IV3QsaXNUaHVyc2RheTooKT0+Vld0LGlzVG9kYXk6KCk9PlVXdCxpc1RvbW9ycm93OigpPT5HV3QsaXNUdWVzZGF5OigpPT5LV3QsaXNWYWxpZDooKT0+TG4saXNXZWRuZXNkYXk6KCk9PlFXdCxpc1dlZWtlbmQ6KCk9PkkwLGlzV2l0aGluSW50ZXJ2YWw6KCk9PkpXdCxpc1llc3RlcmRheTooKT0+dEd0LGxhc3REYXlPZkRlY2FkZTooKT0+YUd0LGxhc3REYXlPZklTT1dlZWs6KCk9PnNHdCxsYXN0RGF5T2ZJU09XZWVrWWVhcjooKT0+b0d0LGxhc3REYXlPZk1vbnRoOigpPT5LY2UsbGFzdERheU9mUXVhcnRlcjooKT0+Y0d0LGxhc3REYXlPZldlZWs6KCk9PkcwZSxsYXN0RGF5T2ZZZWFyOigpPT51R3QsbGlnaHRGb3JtYXQ6KCk9PmZHdCxsaWdodEZvcm1hdHRlcnM6KCk9PkoxLGxvbmdGb3JtYXR0ZXJzOigpPT5KdSxtYXg6KCk9PnBjZSxtaWxsaXNlY29uZHM6KCk9Pm1HdCxtaWxsaXNlY29uZHNUb0hvdXJzOigpPT5iR3QsbWlsbGlzZWNvbmRzVG9NaW51dGVzOigpPT52R3QsbWlsbGlzZWNvbmRzVG9TZWNvbmRzOigpPT53R3QsbWluOigpPT5mY2UsbWludXRlc1RvSG91cnM6KCk9PlNHdCxtaW51dGVzVG9NaWxsaXNlY29uZHM6KCk9PkNHdCxtaW51dGVzVG9TZWNvbmRzOigpPT5fR3QsbW9udGhzVG9RdWFydGVyczooKT0+TEd0LG1vbnRoc1RvWWVhcnM6KCk9PiRHdCxuZXh0RGF5OigpPT5obyxuZXh0RnJpZGF5OigpPT5FR3QsbmV4dE1vbmRheTooKT0+UEd0LG5leHRTYXR1cmRheTooKT0+T0d0LG5leHRTdW5kYXk6KCk9PkZHdCxuZXh0VGh1cnNkYXk6KCk9PkhHdCxuZXh0VHVlc2RheTooKT0+Vkd0LG5leHRXZWRuZXNkYXk6KCk9PlVHdCxwYXJzZTooKT0+UjBlLHBhcnNlSVNPOigpPT5ZR3QscGFyc2VKU09OOigpPT5aR3QscGFyc2VyczooKT0+TzBlLHByZXZpb3VzRGF5OigpPT5tbyxwcmV2aW91c0ZyaWRheTooKT0+WEd0LHByZXZpb3VzTW9uZGF5OigpPT5lWXQscHJldmlvdXNTYXR1cmRheTooKT0+cll0LHByZXZpb3VzU3VuZGF5OigpPT5pWXQscHJldmlvdXNUaHVyc2RheTooKT0+bll0LHByZXZpb3VzVHVlc2RheTooKT0+bFl0LHByZXZpb3VzV2VkbmVzZGF5OigpPT5kWXQscXVhcnRlcnNUb01vbnRoczooKT0+cFl0LHF1YXJ0ZXJzVG9ZZWFyczooKT0+aFl0LHJvdW5kVG9OZWFyZXN0SG91cnM6KCk9PmdZdCxyb3VuZFRvTmVhcmVzdE1pbnV0ZXM6KCk9PnhZdCxzZWNvbmRzVG9Ib3VyczooKT0+eVl0LHNlY29uZHNUb01pbGxpc2Vjb25kczooKT0+a1l0LHNlY29uZHNUb01pbnV0ZXM6KCk9Pk1ZdCxzZXQ6KCk9PnpZdCxzZXREYXRlOigpPT5UWXQsc2V0RGF5OigpPT50cCxzZXREYXlPZlllYXI6KCk9PkRZdCxzZXREZWZhdWx0T3B0aW9uczooKT0+QVl0LHNldEhvdXJzOigpPT5JWXQsc2V0SVNPRGF5OigpPT53MGUsc2V0SVNPV2VlazooKT0+aDBlLHNldElTT1dlZWtZZWFyOigpPT5uY2Usc2V0TWlsbGlzZWNvbmRzOigpPT5OWXQsc2V0TWludXRlczooKT0+Ull0LHNldE1vbnRoOigpPT56dixzZXRRdWFydGVyOigpPT5CWXQsc2V0U2Vjb25kczooKT0+cVl0LHNldFdlZWs6KCk9PnAwZSxzZXRXZWVrWWVhcjooKT0+all0LHNldFllYXI6KCk9PldZdCxzdGFydE9mRGF5OigpPT5OMCxzdGFydE9mRGVjYWRlOigpPT5ZWXQsc3RhcnRPZkhvdXI6KCk9PldDLHN0YXJ0T2ZJU09XZWVrOigpPT5TcyxzdGFydE9mSVNPV2Vla1llYXI6KCk9PlgxLHN0YXJ0T2ZNaW51dGU6KCk9PkdDLHN0YXJ0T2ZNb250aDooKT0+UXUsc3RhcnRPZlF1YXJ0ZXI6KCk9PkIwLHN0YXJ0T2ZTZWNvbmQ6KCk9PllDLHN0YXJ0T2ZUb2RheTooKT0+Wll0LHN0YXJ0T2ZUb21vcnJvdzooKT0+WFl0LHN0YXJ0T2ZXZWVrOigpPT5LYSxzdGFydE9mV2Vla1llYXI6KCk9PmQ2LHN0YXJ0T2ZZZWFyOigpPT5idixzdGFydE9mWWVzdGVyZGF5OigpPT5lS3Qsc3ViOigpPT5yS3Qsc3ViQnVzaW5lc3NEYXlzOigpPT5pS3Qsc3ViRGF5czooKT0+cnAsc3ViSG91cnM6KCk9Pm5LdCxzdWJJU09XZWVrWWVhcnM6KCk9PmtjZSxzdWJNaWxsaXNlY29uZHM6KCk9PmxLdCxzdWJNaW51dGVzOigpPT5kS3Qsc3ViTW9udGhzOigpPT5aMGUsc3ViUXVhcnRlcnM6KCk9PnBLdCxzdWJTZWNvbmRzOigpPT5oS3Qsc3ViV2Vla3M6KCk9PmdLdCxzdWJZZWFyczooKT0+eEt0LHRvRGF0ZTooKT0+TWUsdHJhbnNwb3NlOigpPT5aY2Usd2Vla3NUb0RheXM6KCk9PnlLdCx5ZWFyc1RvRGF5czooKT0+a0t0LHllYXJzVG9Nb250aHM6KCk9Pk1LdCx5ZWFyc1RvUXVhcnRlcnM6KCk9PnpLdH0pO3ZhciBUS3Q9dSgoKT0+e1hDZSgpO3R6ZSgpO0EwKCk7cnplKCk7aXplKCk7RUMoKTtsY2UoKTtudigpO2NjZSgpO3N6ZSgpO1BDKCk7bnplKCk7WnF0KCk7WHF0KCk7Y3plKCk7ZVZ0KCk7aTYoKTtyVnQoKTtVdCgpO0tzKCk7aVZ0KCk7blZ0KCk7djQoKTt1emUoKTtsVnQoKTtiY2UoKTtmemUoKTt4Y2UoKTt2Y2UoKTt5Y2UoKTt3Y2UoKTt1VnQoKTtTY2UoKTtNY2UoKTtPQygpO2ZWdCgpO1JDKCk7bVZ0KCk7Z3plKCk7YnplKCk7YlZ0KCk7dlZ0KCk7d1Z0KCk7U1Z0KCk7Q1Z0KCk7JGNlKCk7X1Z0KCk7TFZ0KCk7JFZ0KCk7Q2NlKCk7RVZ0KCk7UFZ0KCk7T1Z0KCk7RlZ0KCk7SFZ0KCk7emNlKCk7VlZ0KCk7VVZ0KCk7R1Z0KCk7S1Z0KCk7dnplKCk7eHplKCk7UVZ0KCk7TXplKCk7Q3plKCk7enplKCk7eWp0KCk7a2p0KCk7TWp0KCk7emp0KCk7VGp0KCk7RGp0KCk7QWp0KCk7SWp0KCk7Tmp0KCk7Ump0KCk7X3plKCk7akMoKTt5emUoKTtUemUoKTtCanQoKTtxanQoKTtEemUoKTtqanQoKTskemUoKTtPY2UoKTtHdSgpO1dqdCgpO1lqdCgpO1pqdCgpO1hqdCgpO2VVdCgpO3B6ZSgpO3JVdCgpO2lVdCgpO25VdCgpO0ZjZSgpO2xVdCgpO0JDKCk7ZFV0KCk7cFV0KCk7aFV0KCk7Z1V0KCk7eFV0KCk7eVV0KCk7a1V0KCk7TVV0KCk7elV0KCk7VFV0KCk7RFV0KCk7ZHplKCk7QVV0KCk7SVV0KCk7TlV0KCk7UlV0KCk7QlV0KCk7bXplKCk7THplKCk7eVd0KCk7a1d0KCk7TVd0KCk7ZHYoKTtCemUoKTtIemUoKTt6V3QoKTtWemUoKTtqemUoKTtVemUoKTtHemUoKTtCMGUoKTtZemUoKTtKQ2UoKTtlemUoKTtUV3QoKTtEV3QoKTtBV3QoKTtJV3QoKTtOV3QoKTtSV3QoKTtCV3QoKTtxV3QoKTtqV3QoKTtXV3QoKTtZV3QoKTtaV3QoKTt5NCgpO1hXdCgpO0FDKCk7ZUd0KCk7ckd0KCk7aUd0KCk7bkd0KCk7bEd0KCk7QXplKCk7ZEd0KCk7S3plKCk7cEd0KCk7aEd0KCk7b3plKCk7Z0d0KCk7eEd0KCk7eUd0KCk7a0d0KCk7bHplKCk7TUd0KCk7ekd0KCk7VEd0KCk7REd0KCk7QUd0KCk7azQoKTtJR3QoKTtOR3QoKTtSR3QoKTtCR3QoKTtxR3QoKTtqR3QoKTtXR3QoKTtSemUoKTtLR3QoKTtRR3QoKTtTNCgpO0pHdCgpO3RZdCgpO2FZdCgpO3NZdCgpO29ZdCgpO2NZdCgpO3VZdCgpO2ZZdCgpO21ZdCgpO2JZdCgpO3ZZdCgpO3dZdCgpO1NZdCgpO0NZdCgpO19ZdCgpO0xZdCgpO1VDKCk7JFl0KCk7RVl0KCk7UFl0KCk7T3plKCk7TnplKCk7YXplKCk7T1l0KCk7Rll0KCk7SzBlKCk7SFl0KCk7Vll0KCk7UHplKCk7VVl0KCk7R1l0KCk7SUMoKTtLWXQoKTtGemUoKTtQMCgpO292KCk7cXplKCk7RkMoKTtEY2UoKTtXemUoKTtRWXQoKTtKWXQoKTtHMigpO1JjZSgpO0VjZSgpO3RLdCgpO2FLdCgpO3NLdCgpO0tDKCk7b0t0KCk7aHplKCk7Y0t0KCk7dUt0KCk7UXplKCk7Zkt0KCk7bUt0KCk7Ykt0KCk7dkt0KCk7WmUoKTtFemUoKTt3S3QoKTtTS3QoKTtDS3QoKTtfS3QoKX0pO3ZhciBMS3Q9TnQoKFh6ZSxKemUpPT57KGZ1bmN0aW9uKHQsZSl7dHlwZW9mIFh6ZT09Im9iamVjdCImJnR5cGVvZiBKemU8InUiP0p6ZS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0fHxzZWxmKS5kYXlqcz1lKCl9KShYemUsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PTFlMyxlPTZlNCxyPTM2ZTUsYT0ibWlsbGlzZWNvbmQiLHM9InNlY29uZCIsbj0ibWludXRlIixvPSJob3VyIixsPSJkYXkiLGM9IndlZWsiLGQ9Im1vbnRoIixmPSJxdWFydGVyIixwPSJ5ZWFyIixoPSJkYXRlIixtPSJJbnZhbGlkIERhdGUiLHY9L14oXGR7NH0pWy0vXT8oXGR7MSwyfSk/Wy0vXT8oXGR7MCwyfSlbVHRcc10qKFxkezEsMn0pPzo/KFxkezEsMn0pPzo/KFxkezEsMn0pP1suOl0/KFxkKyk/JC8sYj0vXFsoW15cXV0rKV18WXsxLDR9fE17MSw0fXxEezEsMn18ZHsxLDR9fEh7MSwyfXxoezEsMn18YXxBfG17MSwyfXxzezEsMn18WnsxLDJ9fFNTUy9nLGc9e25hbWU6ImVuIix3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksbW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG9yZGluYWw6aShmdW5jdGlvbih6KXt2YXIgQT1bInRoIiwic3QiLCJuZCIsInJkIl0sJD16JTEwMDtyZXR1cm4iWyIreisoQVsoJC0yMCklMTBdfHxBWyRdfHxBWzBdKSsiXSJ9LCJvcmRpbmFsIil9LHk9aShmdW5jdGlvbih6LEEsJCl7dmFyIEY9U3RyaW5nKHopO3JldHVybiFGfHxGLmxlbmd0aD49QT96OiIiK0FycmF5KEErMS1GLmxlbmd0aCkuam9pbigkKSt6fSwibSIpLGs9e3M6eSx6OmkoZnVuY3Rpb24oeil7dmFyIEE9LXoudXRjT2Zmc2V0KCksJD1NYXRoLmFicyhBKSxGPU1hdGguZmxvb3IoJC82MCksWT0kJTYwO3JldHVybihBPD0wPyIrIjoiLSIpK3koRiwyLCIwIikrIjoiK3koWSwyLCIwIil9LCJ6IiksbTppKGZ1bmN0aW9uIHooQSwkKXtpZihBLmRhdGUoKTwkLmRhdGUoKSlyZXR1cm4teigkLEEpO3ZhciBGPTEyKigkLnllYXIoKS1BLnllYXIoKSkrKCQubW9udGgoKS1BLm1vbnRoKCkpLFk9QS5jbG9uZSgpLmFkZChGLGQpLEc9JC1ZPDAsWj1BLmNsb25lKCkuYWRkKEYrKEc/LTE6MSksZCk7cmV0dXJuKygtKEYrKCQtWSkvKEc/WS1aOlotWSkpfHwwKX0sInQiKSxhOmkoZnVuY3Rpb24oeil7cmV0dXJuIHo8MD9NYXRoLmNlaWwoeil8fDA6TWF0aC5mbG9vcih6KX0sImEiKSxwOmkoZnVuY3Rpb24oeil7cmV0dXJue006ZCx5OnAsdzpjLGQ6bCxEOmgsaDpvLG06bixzLG1zOmEsUTpmfVt6XXx8U3RyaW5nKHp8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LCJwIiksdTppKGZ1bmN0aW9uKHope3JldHVybiB6PT09dm9pZCAwfSwidSIpfSxNPSJlbiIsTj17fTtOW01dPWc7dmFyIF89IiRpc0RheWpzT2JqZWN0IixTPWkoZnVuY3Rpb24oeil7cmV0dXJuIHogaW5zdGFuY2VvZiBCfHwhKCF6fHwheltfXSl9LCJTIiksTz1pKGZ1bmN0aW9uIHooQSwkLEYpe3ZhciBZO2lmKCFBKXJldHVybiBNO2lmKHR5cGVvZiBBPT0ic3RyaW5nIil7dmFyIEc9QS50b0xvd2VyQ2FzZSgpO05bR10mJihZPUcpLCQmJihOW0ddPSQsWT1HKTt2YXIgWj1BLnNwbGl0KCItIik7aWYoIVkmJloubGVuZ3RoPjEpcmV0dXJuIHooWlswXSl9ZWxzZXt2YXIgZGU9QS5uYW1lO05bZGVdPUEsWT1kZX1yZXR1cm4hRiYmWSYmKE09WSksWXx8IUYmJk19LCJ0IiksTD1pKGZ1bmN0aW9uKHosQSl7aWYoUyh6KSlyZXR1cm4gei5jbG9uZSgpO3ZhciAkPXR5cGVvZiBBPT0ib2JqZWN0Ij9BOnt9O3JldHVybiAkLmRhdGU9eiwkLmFyZ3M9YXJndW1lbnRzLG5ldyBCKCQpfSwiTyIpLEU9aztFLmw9TyxFLmk9UyxFLnc9ZnVuY3Rpb24oeixBKXtyZXR1cm4gTCh6LHtsb2NhbGU6QS4kTCx1dGM6QS4kdSx4OkEuJHgsJG9mZnNldDpBLiRvZmZzZXR9KX07dmFyIEI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24geigkKXt0aGlzLiRMPU8oJC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZSgkKSx0aGlzLiR4PXRoaXMuJHh8fCQueHx8e30sdGhpc1tfXT0hMH1pKHosIk0iKTt2YXIgQT16LnByb3RvdHlwZTtyZXR1cm4gQS5wYXJzZT1mdW5jdGlvbigkKXt0aGlzLiRkPShmdW5jdGlvbihGKXt2YXIgWT1GLmRhdGUsRz1GLnV0YztpZihZPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihFLnUoWSkpcmV0dXJuIG5ldyBEYXRlO2lmKFkgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShZKTtpZih0eXBlb2YgWT09InN0cmluZyImJiEvWiQvaS50ZXN0KFkpKXt2YXIgWj1ZLm1hdGNoKHYpO2lmKFope3ZhciBkZT1aWzJdLTF8fDAsRD0oWls3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gRz9uZXcgRGF0ZShEYXRlLlVUQyhaWzFdLGRlLFpbM118fDEsWls0XXx8MCxaWzVdfHwwLFpbNl18fDAsRCkpOm5ldyBEYXRlKFpbMV0sZGUsWlszXXx8MSxaWzRdfHwwLFpbNV18fDAsWls2XXx8MCxEKX19cmV0dXJuIG5ldyBEYXRlKFkpfSkoJCksdGhpcy5pbml0KCl9LEEuaW5pdD1mdW5jdGlvbigpe3ZhciAkPXRoaXMuJGQ7dGhpcy4keT0kLmdldEZ1bGxZZWFyKCksdGhpcy4kTT0kLmdldE1vbnRoKCksdGhpcy4kRD0kLmdldERhdGUoKSx0aGlzLiRXPSQuZ2V0RGF5KCksdGhpcy4kSD0kLmdldEhvdXJzKCksdGhpcy4kbT0kLmdldE1pbnV0ZXMoKSx0aGlzLiRzPSQuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPSQuZ2V0TWlsbGlzZWNvbmRzKCl9LEEuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIEV9LEEuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1tfSxBLmlzU2FtZT1mdW5jdGlvbigkLEYpe3ZhciBZPUwoJCk7cmV0dXJuIHRoaXMuc3RhcnRPZihGKTw9WSYmWTw9dGhpcy5lbmRPZihGKX0sQS5pc0FmdGVyPWZ1bmN0aW9uKCQsRil7cmV0dXJuIEwoJCk8dGhpcy5zdGFydE9mKEYpfSxBLmlzQmVmb3JlPWZ1bmN0aW9uKCQsRil7cmV0dXJuIHRoaXMuZW5kT2YoRik8TCgkKX0sQS4kZz1mdW5jdGlvbigkLEYsWSl7cmV0dXJuIEUudSgkKT90aGlzW0ZdOnRoaXMuc2V0KFksJCl9LEEudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LEEudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sQS5zdGFydE9mPWZ1bmN0aW9uKCQsRil7dmFyIFk9dGhpcyxHPSEhRS51KEYpfHxGLFo9RS5wKCQpLGRlPWkoZnVuY3Rpb24ocSxIKXt2YXIgVT1FLncoWS4kdT9EYXRlLlVUQyhZLiR5LEgscSk6bmV3IERhdGUoWS4keSxILHEpLFkpO3JldHVybiBHP1U6VS5lbmRPZihsKX0sImwiKSxEPWkoZnVuY3Rpb24ocSxIKXtyZXR1cm4gRS53KFkudG9EYXRlKClbcV0uYXBwbHkoWS50b0RhdGUoInMiKSwoRz9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKEgpKSxZKX0sIiQiKSxRPXRoaXMuJFcsZmU9dGhpcy4kTSxUPXRoaXMuJEQsVz0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKFope2Nhc2UgcDpyZXR1cm4gRz9kZSgxLDApOmRlKDMxLDExKTtjYXNlIGQ6cmV0dXJuIEc/ZGUoMSxmZSk6ZGUoMCxmZSsxKTtjYXNlIGM6dmFyIHBlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxtZT0oUTxwZT9RKzc6USktcGU7cmV0dXJuIGRlKEc/VC1tZTpUKyg2LW1lKSxmZSk7Y2FzZSBsOmNhc2UgaDpyZXR1cm4gRChXKyJIb3VycyIsMCk7Y2FzZSBvOnJldHVybiBEKFcrIk1pbnV0ZXMiLDEpO2Nhc2UgbjpyZXR1cm4gRChXKyJTZWNvbmRzIiwyKTtjYXNlIHM6cmV0dXJuIEQoVysiTWlsbGlzZWNvbmRzIiwzKTtkZWZhdWx0OnJldHVybiB0aGlzLmNsb25lKCl9fSxBLmVuZE9mPWZ1bmN0aW9uKCQpe3JldHVybiB0aGlzLnN0YXJ0T2YoJCwhMSl9LEEuJHNldD1mdW5jdGlvbigkLEYpe3ZhciBZLEc9RS5wKCQpLFo9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpLGRlPShZPXt9LFlbbF09WisiRGF0ZSIsWVtoXT1aKyJEYXRlIixZW2RdPVorIk1vbnRoIixZW3BdPVorIkZ1bGxZZWFyIixZW29dPVorIkhvdXJzIixZW25dPVorIk1pbnV0ZXMiLFlbc109WisiU2Vjb25kcyIsWVthXT1aKyJNaWxsaXNlY29uZHMiLFkpW0ddLEQ9Rz09PWw/dGhpcy4kRCsoRi10aGlzLiRXKTpGO2lmKEc9PT1kfHxHPT09cCl7dmFyIFE9dGhpcy5jbG9uZSgpLnNldChoLDEpO1EuJGRbZGVdKEQpLFEuaW5pdCgpLHRoaXMuJGQ9US5zZXQoaCxNYXRoLm1pbih0aGlzLiRELFEuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgZGUmJnRoaXMuJGRbZGVdKEQpO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSxBLnNldD1mdW5jdGlvbigkLEYpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldCgkLEYpfSxBLmdldD1mdW5jdGlvbigkKXtyZXR1cm4gdGhpc1tFLnAoJCldKCl9LEEuYWRkPWZ1bmN0aW9uKCQsRil7dmFyIFksRz10aGlzOyQ9TnVtYmVyKCQpO3ZhciBaPUUucChGKSxkZT1pKGZ1bmN0aW9uKGZlKXt2YXIgVD1MKEcpO3JldHVybiBFLncoVC5kYXRlKFQuZGF0ZSgpK01hdGgucm91bmQoZmUqJCkpLEcpfSwieSIpO2lmKFo9PT1kKXJldHVybiB0aGlzLnNldChkLHRoaXMuJE0rJCk7aWYoWj09PXApcmV0dXJuIHRoaXMuc2V0KHAsdGhpcy4keSskKTtpZihaPT09bClyZXR1cm4gZGUoMSk7aWYoWj09PWMpcmV0dXJuIGRlKDcpO3ZhciBEPShZPXt9LFlbbl09ZSxZW29dPXIsWVtzXT10LFkpW1pdfHwxLFE9dGhpcy4kZC5nZXRUaW1lKCkrJCpEO3JldHVybiBFLncoUSx0aGlzKX0sQS5zdWJ0cmFjdD1mdW5jdGlvbigkLEYpe3JldHVybiB0aGlzLmFkZCgtMSokLEYpfSxBLmZvcm1hdD1mdW5jdGlvbigkKXt2YXIgRj10aGlzLFk9dGhpcy4kbG9jYWxlKCk7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBZLmludmFsaWREYXRlfHxtO3ZhciBHPSR8fCJZWVlZLU1NLUREVEhIOm1tOnNzWiIsWj1FLnoodGhpcyksZGU9dGhpcy4kSCxEPXRoaXMuJG0sUT10aGlzLiRNLGZlPVkud2Vla2RheXMsVD1ZLm1vbnRocyxXPVkubWVyaWRpZW0scGU9aShmdW5jdGlvbihILFUsaixhZSl7cmV0dXJuIEgmJihIW1VdfHxIKEYsRykpfHxqW1VdLnNsaWNlKDAsYWUpfSwiaCIpLG1lPWkoZnVuY3Rpb24oSCl7cmV0dXJuIEUucyhkZSUxMnx8MTIsSCwiMCIpfSwiZCIpLHE9V3x8ZnVuY3Rpb24oSCxVLGope3ZhciBhZT1IPDEyPyJBTSI6IlBNIjtyZXR1cm4gaj9hZS50b0xvd2VyQ2FzZSgpOmFlfTtyZXR1cm4gRy5yZXBsYWNlKGIsKGZ1bmN0aW9uKEgsVSl7cmV0dXJuIFV8fChmdW5jdGlvbihqKXtzd2l0Y2goail7Y2FzZSJZWSI6cmV0dXJuIFN0cmluZyhGLiR5KS5zbGljZSgtMik7Y2FzZSJZWVlZIjpyZXR1cm4gRS5zKEYuJHksNCwiMCIpO2Nhc2UiTSI6cmV0dXJuIFErMTtjYXNlIk1NIjpyZXR1cm4gRS5zKFErMSwyLCIwIik7Y2FzZSJNTU0iOnJldHVybiBwZShZLm1vbnRoc1Nob3J0LFEsVCwzKTtjYXNlIk1NTU0iOnJldHVybiBwZShULFEpO2Nhc2UiRCI6cmV0dXJuIEYuJEQ7Y2FzZSJERCI6cmV0dXJuIEUucyhGLiRELDIsIjAiKTtjYXNlImQiOnJldHVybiBTdHJpbmcoRi4kVyk7Y2FzZSJkZCI6cmV0dXJuIHBlKFkud2Vla2RheXNNaW4sRi4kVyxmZSwyKTtjYXNlImRkZCI6cmV0dXJuIHBlKFkud2Vla2RheXNTaG9ydCxGLiRXLGZlLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIGZlW0YuJFddO2Nhc2UiSCI6cmV0dXJuIFN0cmluZyhkZSk7Y2FzZSJISCI6cmV0dXJuIEUucyhkZSwyLCIwIik7Y2FzZSJoIjpyZXR1cm4gbWUoMSk7Y2FzZSJoaCI6cmV0dXJuIG1lKDIpO2Nhc2UiYSI6cmV0dXJuIHEoZGUsRCwhMCk7Y2FzZSJBIjpyZXR1cm4gcShkZSxELCExKTtjYXNlIm0iOnJldHVybiBTdHJpbmcoRCk7Y2FzZSJtbSI6cmV0dXJuIEUucyhELDIsIjAiKTtjYXNlInMiOnJldHVybiBTdHJpbmcoRi4kcyk7Y2FzZSJzcyI6cmV0dXJuIEUucyhGLiRzLDIsIjAiKTtjYXNlIlNTUyI6cmV0dXJuIEUucyhGLiRtcywzLCIwIik7Y2FzZSJaIjpyZXR1cm4gWn1yZXR1cm4gbnVsbH0pKEgpfHxaLnJlcGxhY2UoIjoiLCIiKX0pKX0sQS51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTUqLU1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KX0sQS5kaWZmPWZ1bmN0aW9uKCQsRixZKXt2YXIgRyxaPXRoaXMsZGU9RS5wKEYpLEQ9TCgkKSxRPShELnV0Y09mZnNldCgpLXRoaXMudXRjT2Zmc2V0KCkpKmUsZmU9dGhpcy1ELFQ9aShmdW5jdGlvbigpe3JldHVybiBFLm0oWixEKX0sIkQiKTtzd2l0Y2goZGUpe2Nhc2UgcDpHPVQoKS8xMjticmVhaztjYXNlIGQ6Rz1UKCk7YnJlYWs7Y2FzZSBmOkc9VCgpLzM7YnJlYWs7Y2FzZSBjOkc9KGZlLVEpLzYwNDhlNTticmVhaztjYXNlIGw6Rz0oZmUtUSkvODY0ZTU7YnJlYWs7Y2FzZSBvOkc9ZmUvcjticmVhaztjYXNlIG46Rz1mZS9lO2JyZWFrO2Nhc2UgczpHPWZlL3Q7YnJlYWs7ZGVmYXVsdDpHPWZlfXJldHVybiBZP0c6RS5hKEcpfSxBLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoZCkuJER9LEEuJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBOW3RoaXMuJExdfSxBLmxvY2FsZT1mdW5jdGlvbigkLEYpe2lmKCEkKXJldHVybiB0aGlzLiRMO3ZhciBZPXRoaXMuY2xvbmUoKSxHPU8oJCxGLCEwKTtyZXR1cm4gRyYmKFkuJEw9RyksWX0sQS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBFLncodGhpcy4kZCx0aGlzKX0sQS50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSxBLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sQS50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LEEudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSx6fSkoKSxDPUIucHJvdG90eXBlO3JldHVybiBMLnByb3RvdHlwZT1DLFtbIiRtcyIsYV0sWyIkcyIsc10sWyIkbSIsbl0sWyIkSCIsb10sWyIkVyIsbF0sWyIkTSIsZF0sWyIkeSIscF0sWyIkRCIsaF1dLmZvckVhY2goKGZ1bmN0aW9uKHope0NbelsxXV09ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuJGcoQSx6WzBdLHpbMV0pfX0pKSxMLmV4dGVuZD1mdW5jdGlvbih6LEEpe3JldHVybiB6LiRpfHwoeihBLEIsTCksei4kaT0hMCksTH0sTC5sb2NhbGU9TyxMLmlzRGF5anM9UyxMLnVuaXg9ZnVuY3Rpb24oeil7cmV0dXJuIEwoMWUzKnopfSxMLmVuPU5bTV0sTC5Mcz1OLEwucD17fSxMfSkpfSk7dmFyIERLdD1OdCgoZV9lLHRfZSk9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgZV9lPT0ib2JqZWN0IiYmdHlwZW9mIHRfZTwidSI/dF9lLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR8fHNlbGYpLmRheWpzX3BsdWdpbl9pc1RvZGF5PWUoKX0pKGVfZSwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXtlLnByb3RvdHlwZS5pc1RvZGF5PWZ1bmN0aW9uKCl7dmFyIGE9IllZWVktTU0tREQiLHM9cigpO3JldHVybiB0aGlzLmZvcm1hdChhKT09PXMuZm9ybWF0KGEpfX19KSl9KTtmdW5jdGlvbiB0eGEodCl7cmV0dXJue2RheXM6TWF0aC50cnVuYyh0Lzg2NGU1KSxob3VyczpNYXRoLnRydW5jKHQvMzZlNSUyNCksbWludXRlczpNYXRoLnRydW5jKHQvNmU0JTYwKSxzZWNvbmRzOk1hdGgudHJ1bmModC8xZTMlNjApLG1pbGxpc2Vjb25kczpNYXRoLnRydW5jKHQlMWUzKSxtaWNyb3NlY29uZHM6TWF0aC50cnVuYygkS3QodCoxZTMpJTFlMyksbmFub3NlY29uZHM6TWF0aC50cnVuYygkS3QodCoxZTYpJTFlMyl9fWZ1bmN0aW9uIHJ4YSh0KXtyZXR1cm57ZGF5czp0Lzg2NDAwMDAwbixob3Vyczp0LzM2MDAwMDBuJTI0bixtaW51dGVzOnQvNjAwMDBuJTYwbixzZWNvbmRzOnQvMTAwMG4lNjBuLG1pbGxpc2Vjb25kczp0JTEwMDBuLG1pY3Jvc2Vjb25kczowbixuYW5vc2Vjb25kczowbn19ZnVuY3Rpb24gcl9lKHQpe3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJudW1iZXIiOntpZihOdW1iZXIuaXNGaW5pdGUodCkpcmV0dXJuIHR4YSh0KTticmVha31jYXNlImJpZ2ludCI6cmV0dXJuIHJ4YSh0KX10aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iil9dmFyICRLdCxBS3Q9dSgoKT0+eyRLdD1pKHQ9Pk51bWJlci5pc0Zpbml0ZSh0KT90OjAsInRvWmVyb0lmSW5maW5pdHkiKTtpKHR4YSwicGFyc2VOdW1iZXIiKTtpKHJ4YSwicGFyc2VCaWdpbnQiKTtpKHJfZSwicGFyc2VNaWxsaXNlY29uZHMiKX0pO2Z1bmN0aW9uIFhDKHQsZSl7bGV0IHI9dHlwZW9mIHQ9PSJiaWdpbnQiO2lmKCFyJiYhTnVtYmVyLmlzRmluaXRlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKTtlPXsuLi5lfTtsZXQgYT10PDA/Ii0iOiIiO3Q9dDwwPy10OnQsZS5jb2xvbk5vdGF0aW9uJiYoZS5jb21wYWN0PSExLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzPSExLGUuc2VwYXJhdGVNaWxsaXNlY29uZHM9ITEsZS52ZXJib3NlPSExKSxlLmNvbXBhY3QmJihlLnVuaXRDb3VudD0xLGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCxlLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCk7bGV0IHM9W10sbj1pKChmLHApPT57bGV0IGg9TWF0aC5mbG9vcihmKjEwKipwK3N4YSk7cmV0dXJuKE1hdGgucm91bmQoaCkvMTAqKnApLnRvRml4ZWQocCl9LCJmbG9vckRlY2ltYWxzIiksbz1pKChmLHAsaCxtKT0+e2lmKCEoKHMubGVuZ3RoPT09MHx8IWUuY29sb25Ob3RhdGlvbikmJmF4YShmKSYmIShlLmNvbG9uTm90YXRpb24mJmg9PT0ibSIpKSl7aWYobT8/PVN0cmluZyhmKSxlLmNvbG9uTm90YXRpb24pe2xldCB2PW0uaW5jbHVkZXMoIi4iKT9tLnNwbGl0KCIuIilbMF0ubGVuZ3RoOm0ubGVuZ3RoLGI9cy5sZW5ndGg+MD8yOjE7bT0iMCIucmVwZWF0KE1hdGgubWF4KDAsYi12KSkrbX1lbHNlIG0rPWUudmVyYm9zZT8iICIraXhhKHAsZik6aDtzLnB1c2gobSl9fSwiYWRkIiksbD1yX2UodCksYz1CaWdJbnQobC5kYXlzKTtpZihlLmhpZGVZZWFyQW5kRGF5cz9vKEJpZ0ludChjKSoyNG4rQmlnSW50KGwuaG91cnMpLCJob3VyIiwiaCIpOihlLmhpZGVZZWFyP28oYywiZGF5IiwiZCIpOihvKGMvMzY1biwieWVhciIsInkiKSxvKGMlMzY1biwiZGF5IiwiZCIpKSxvKE51bWJlcihsLmhvdXJzKSwiaG91ciIsImgiKSksbyhOdW1iZXIobC5taW51dGVzKSwibWludXRlIiwibSIpLCFlLmhpZGVTZWNvbmRzKWlmKGUuc2VwYXJhdGVNaWxsaXNlY29uZHN8fGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzfHwhZS5jb2xvbk5vdGF0aW9uJiZ0PDFlMyYmIWUuc3ViU2Vjb25kc0FzRGVjaW1hbHMpe2xldCBmPU51bWJlcihsLnNlY29uZHMpLHA9TnVtYmVyKGwubWlsbGlzZWNvbmRzKSxoPU51bWJlcihsLm1pY3Jvc2Vjb25kcyksbT1OdW1iZXIobC5uYW5vc2Vjb25kcyk7aWYobyhmLCJzZWNvbmQiLCJzIiksZS5mb3JtYXRTdWJNaWxsaXNlY29uZHMpbyhwLCJtaWxsaXNlY29uZCIsIm1zIiksbyhoLCJtaWNyb3NlY29uZCIsIlx4QjVzIiksbyhtLCJuYW5vc2Vjb25kIiwibnMiKTtlbHNle2xldCB2PXAraC8xZTMrbS8xZTYsYj10eXBlb2YgZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPT0ibnVtYmVyIj9lLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM6MCxnPXY+PTE/TWF0aC5yb3VuZCh2KTpNYXRoLmNlaWwodikseT1iP3YudG9GaXhlZChiKTpnO28oTnVtYmVyLnBhcnNlRmxvYXQoeSksIm1pbGxpc2Vjb25kIiwibXMiLHkpfX1lbHNle2xldCBmPShyP051bWJlcih0JW54YSk6dCkvMWUzJTYwLHA9dHlwZW9mIGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP2Uuc2Vjb25kc0RlY2ltYWxEaWdpdHM6MSxoPW4oZixwKSxtPWUua2VlcERlY2ltYWxzT25XaG9sZVNlY29uZHM/aDpoLnJlcGxhY2UoL1wuMCskLywiIik7byhOdW1iZXIucGFyc2VGbG9hdChtKSwic2Vjb25kIiwicyIsbSl9aWYocy5sZW5ndGg9PT0wKXJldHVybiBhKyIwIisoZS52ZXJib3NlPyIgbWlsbGlzZWNvbmRzIjoibXMiKTtsZXQgZD1lLmNvbG9uTm90YXRpb24/IjoiOiIgIjtyZXR1cm4gdHlwZW9mIGUudW5pdENvdW50PT0ibnVtYmVyIiYmKHM9cy5zbGljZSgwLE1hdGgubWF4KGUudW5pdENvdW50LDEpKSksYStzLmpvaW4oZCl9dmFyIGF4YSxpeGEsc3hhLG54YSxFS3Q9dSgoKT0+e0FLdCgpO2F4YT1pKHQ9PnQ9PT0wfHx0PT09MG4sImlzWmVybyIpLGl4YT1pKCh0LGUpPT5lPT09MXx8ZT09PTFuP3Q6YCR7dH1zYCwicGx1cmFsaXplIiksc3hhPTFlLTcsbnhhPTI0bio2MG4qNjBuKjEwMDBuO2koWEMsInByZXR0eU1pbGxpc2Vjb25kcyIpfSk7dmFyIGY2LElLdCxhcD11KCgpPT57SkMoKTt0NigpO0sxKCk7anF0KCk7VEt0KCk7ZjY9R2EoTEt0KCksMSksSUt0PUdhKERLdCgpLDEpO0VLdCgpO2Y2LmRlZmF1bHQuZXh0ZW5kKElLdC5kZWZhdWx0KX0pO3ZhciBleixhX2U9dSgoKT0+e2FwKCk7aV9lKCk7ZXo9Y2xhc3N7c3RhdGlje2kodGhpcywiQ3JvbkpvYiIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5uZXh0RXhlY3V0aW9uVW5peD0wLHRoaXMuY3JvbkV4cHJlc3Npb249cix0aGlzLmpvYkZ1bmN0aW9uPWEsdGhpcy5jcm9uUGFyc2VyPW5ldyBEQy5Dcm9uKHIpfWNoZWNrRXhlY3V0aW9uKCl7aWYodGhpcy5zdGF0dXM9PT0ic3RvcHBlZCIpcmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg7aWYodGhpcy5uZXh0RXhlY3V0aW9uVW5peD09PTAmJnRoaXMuZ2V0TmV4dEV4ZWN1dGlvblRpbWUoKSxEYXRlLm5vdygpPnRoaXMubmV4dEV4ZWN1dGlvblVuaXgpe2xldCBlPXRoaXMuam9iRnVuY3Rpb24odGhpcy5uZXh0RXhlY3V0aW9uVW5peCk7ZSBpbnN0YW5jZW9mIFByb21pc2UmJmUuY2F0Y2gocj0+Y29uc29sZS5sb2cocikpLHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9dGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpfXJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4fWdldE5leHRFeGVjdXRpb25UaW1lKCl7cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9RGF0ZS5ub3coKSt0aGlzLmdldFRpbWVUb05leHRFeGVjdXRpb24oKX1nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCl7cmV0dXJuIHRoaXMuY3JvblBhcnNlci5tc1RvTmV4dCgpfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQifXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCJ9fX0pO3ZhciBzX2UsaV9lPXUoKCk9PnthcCgpO2FfZSgpO3NfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDcm9uTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuY3JvbmpvYnM9bmV3IFpzLk9iamVjdE1hcCx0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9d2FrZUN5Y2xlKCl7dGhpcy5jeWNsZVdha2VEZWZlcnJlZCYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5zdGF0dXM9PT0icGVuZGluZyImJnRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucmVzb2x2ZSgpfWFkZENyb25qb2IoZSxyKXtsZXQgYT1uZXcgZXoodGhpcyxlLHIpO3JldHVybiB0aGlzLmNyb25qb2JzLmFkZChhKSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKGEuc3RhcnQoKSx0aGlzLndha2VDeWNsZSgpKSxhfXJlbW92ZUNyb25qb2IoZSl7ZS5zdG9wKCksdGhpcy5jcm9uam9icy5yZW1vdmUoZSksdGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJnRoaXMud2FrZUN5Y2xlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cyE9PSJzdGFydGVkIil7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2ZvcihsZXQgZSBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpZS5zdGFydCgpO3RoaXMucnVuQ3JvbkN5Y2xlKCl9fWFzeW5jIHJ1bkNyb25DeWNsZSgpe2Zvcig7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCI7KXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW5ldyAkdC5EZWZlcnJlZDtsZXQgZT0xLzA7Zm9yKGxldCByIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl7ci5jaGVja0V4ZWN1dGlvbigpO2xldCBhPXIuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpO2E8ZSYmKGU9YSl9aWYoZTwxLzAmJmU+MCl0aGlzLmV4ZWN1dGlvblRpbWVvdXQ9bmV3IFRyLlRpbWVvdXQoZSksYXdhaXQgUHJvbWlzZS5yYWNlKFt0aGlzLmV4ZWN1dGlvblRpbWVvdXQucHJvbWlzZSx0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnByb21pc2VdKSx0aGlzLmV4ZWN1dGlvblRpbWVvdXQuY2FuY2VsKCk7ZWxzZXtpZihlPD0wKWNvbnRpbnVlO2F3YWl0IHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZX19dGhpcy5jeWNsZVdha2VEZWZlcnJlZD1udWxsfXN0b3AoKXt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKHRoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLmV4ZWN1dGlvblRpbWVvdXQmJnRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKSx0aGlzLndha2VDeWNsZSgpKTtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RvcCgpfX19KTt2YXIgaXAsbl9lLG94YSxseGEsb19lPXUoKCk9PnthcCgpO2lwPXt5ZWFyczppKCh0PTEpPT50KjMxNTRlNywieWVhcnMiKSxtb250aHM6aSgodD0xKT0+dCoyNjI4ZTYsIm1vbnRocyIpLHdlZWtzOmkoKHQ9MSk9PnQqNjA0OGU1LCJ3ZWVrcyIpLGRheXM6aSgodD0xKT0+dCo4NjRlNSwiZGF5cyIpLGhvdXJzOmkoKHQ9MSk9PnQqMzZlNSwiaG91cnMiKSxtaW51dGVzOmkoKHQ9MSk9PnQqNmU0LCJtaW51dGVzIiksc2Vjb25kczppKCh0PTEpPT50KjFlMywic2Vjb25kcyIpfSxuX2U9aSh0PT57bGV0IGU9MCxyPWkoYT0+e2U9ZSthfSwiYWRkTWlsbGlTZWNvbmRzIik7cmV0dXJuIHQueWVhcnMmJnIoaXAueWVhcnModC55ZWFycykpLHQubW9udGhzJiZyKGlwLm1vbnRocyh0Lm1vbnRocykpLHQud2Vla3MmJnIoaXAud2Vla3ModC53ZWVrcykpLHQuZGF5cyYmcihpcC5kYXlzKHQuZGF5cykpLHQuaG91cnMmJnIoaXAuaG91cnModC5ob3VycykpLHQubWludXRlcyYmcihpcC5taW51dGVzKHQubWludXRlcykpLHQuc2Vjb25kcyYmcihpcC5zZWNvbmRzKHQuc2Vjb25kcykpLGV9LCJnZXRNaWxsaVNlY29uZHNGcm9tVW5pdHMiKSxveGE9aSh0PT5YQyh0KSwiZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nIiksbHhhPWkodD0+UUMuZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZSh0KSksImdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZUFnb1RpbWUiKX0pO3ZhciBsX2UsUEt0PXUoKCk9PnthcCgpO29fZSgpO2xfZT1jbGFzcyB0IGV4dGVuZHMgRGF0ZXtzdGF0aWN7aSh0aGlzLCJFeHRlbmRlZERhdGUiKX1zdGF0aWMgZnJvbU1pbGxpcyhlKXtyZXR1cm4gbmV3IHQoZSl9c3RhdGljIGZyb21EYXRlKGUpe3JldHVybiBuZXcgdChlLmdldFRpbWUoKSl9c3RhdGljIGZyb21FdXJvcGVhbkRhdGUoZSl7bGV0IHI9LyguKilcLiguKilcLiguKikvLmV4ZWMoZSkscz1uZXcgRGF0ZShwYXJzZUZsb2F0KHJbM10pLHBhcnNlRmxvYXQoclsyXSktMSxwYXJzZUZsb2F0KHJbMV0pKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyB0KHMpfXN0YXRpYyBmcm9tSHlwaGVkRGF0ZShlKXtsZXQgcj1uZXcgRGF0ZShlKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyB0KHIpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlQW5kVGltZShlLHI9IjEyOjAwOjAwIixhPSJFdXJvcGUvQmVybGluIil7bGV0IHM9LyguKilcLiguKilcLiguKikvLmV4ZWMoZSksbj1pKGQ9PmAwJHtkfWAuc2xpY2UoLTIpLCJzbGljZURhdGUiKSxvPWAke3NbM119LSR7bihzWzJdKX0tJHtuKHNbMV0pfVQke3J9YCxjPWY2LmRlZmF1bHQobykudG9EYXRlKCkuZ2V0VGltZSgpO3JldHVybiBuZXcgdChjKX1jb25zdHJ1Y3RvcihlPURhdGUubm93KCkpe3N1cGVyKGUpfWV4cG9ydFRvRXVyb3BlYW5EYXRlKCl7bGV0IGU9dGhpcy5leHBvcnRUb1VuaXRzKCk7cmV0dXJuYCR7ZS5kYXlTdHJpbmd9LiR7ZS5tb250aFN0cmluZ30uJHtlLnllYXJTdHJpbmd9YH1leHBvcnRUb0h5cGhlZFNvcnRhYmxlRGF0ZSgpe2xldCBlPXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke2UueWVhclN0cmluZ30tJHtlLm1vbnRoU3RyaW5nfS0ke2UuZGF5U3RyaW5nfWB9ZXhwb3J0VG9Vbml0cygpe2xldCBlPVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxyPVsiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiLCJTdW5kYXkiXTtyZXR1cm57eWVhcjp0aGlzLmdldEZ1bGxZZWFyKCkseWVhclN0cmluZzpgJHt0aGlzLmdldEZ1bGxZZWFyKCl9YCxtb250aDp0aGlzLmdldE1vbnRoKCkrMSxtb250aFN0cmluZzooIjAiKyh0aGlzLmdldE1vbnRoKCkrMSkpLnNsaWNlKC0yKSxtb250aE5hbWU6ZVt0aGlzLmdldE1vbnRoKCldLGRheTp0aGlzLmdldERhdGUoKSxkYXlTdHJpbmc6KCIwIit0aGlzLmdldERhdGUoKSkuc2xpY2UoLTIpLGRheU9mVGhlV2Vlazp0aGlzLmdldERheSgpLGRheU9mVGhlV2Vla05hbWU6clt0aGlzLmdldERheSgpXX19Zm9ybWF0KGUpe3JldHVybiBmNi5kZWZhdWx0KHRoaXMuZ2V0VGltZSgpKS5mb3JtYXQoZSl9aXNUb2RheSgpe3JldHVybiBmNi5kZWZhdWx0KHRoaXMuZ2V0VGltZSgpKS5pc1RvZGF5KCl9bGVzc1RpbWVQYXNzZWRUb05vdyhlKXtsZXQgcj1uX2UoZSk7cmV0dXJuIERhdGUubm93KCktdGhpcy5nZXRUaW1lKCk8cn1tb3JlVGltZVBhc3NlZFRvTm93KGUpe3JldHVybiF0aGlzLmxlc3NUaW1lUGFzc2VkVG9Ob3coZSl9fX0pO3ZhciBjX2UsTkt0PXUoKCk9PntjX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiSHJ0TWVhc3VyZW1lbnQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfXN0YXJ0KCl7dGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9taWxsaVN0YXJ0PURhdGUubm93KCl9c3RvcCgpe2lmKHRoaXMuX3N0YXJ0ZWQ9PT0hMSl7Y29uc29sZS5sb2coIkhhc24ndCBzdGFydGVkIHlldCIpO3JldHVybn1yZXR1cm4gdGhpcy5fbWlsbGlEaWZmPURhdGUubm93KCktdGhpcy5fbWlsbGlTdGFydCx0aGlzLm5hbm9TZWNvbmRzPXRoaXMuX21pbGxpRGlmZioxZTMsdGhpcy5taWxsaVNlY29uZHM9dGhpcy5fbWlsbGlEaWZmLHRoaXN9cmVzZXQoKXt0aGlzLm5hbm9TZWNvbmRzPW51bGwsdGhpcy5taWxsaVNlY29uZHM9bnVsbCx0aGlzLl9taWxsaVN0YXJ0PW51bGwsdGhpcy5fbWlsbGlEaWZmPW51bGwsdGhpcy5fc3RhcnRlZD0hMX19fSk7dmFyIGRfZSxPS3Q9dSgoKT0+e2FwKCk7ZF9lPWNsYXNze3N0YXRpY3tpKHRoaXMsIkludGVydmFsIil9Y29uc3RydWN0b3IoZSl7dGhpcy5zdGF0dXM9ImluaXRpYWwiLHRoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1udWxsLHRoaXMuaW50ZXJ2YWxKb2JzPVtdLHRoaXMuaW50ZXJ2YWxNaWxsaXNlY29uZHM9ZX1zdGFydCgpe3RoaXMuc3RhdHVzPSJzdGFydGVkIjtsZXQgZT1uZXcgRGF0ZTt0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249ZSxpKGFzeW5jKCk9Pntmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249PT1lOylhd2FpdCBUci5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKSx0aGlzLmV4ZWN1dGVJbnRlcnZhbEpvYnMoKX0sInJ1bkludGVydmFsIikoKX1zdG9wKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1udWxsfWFkZEludGVydmFsSm9iKGUpe3RoaXMuaW50ZXJ2YWxKb2JzLnB1c2goZSl9ZXhlY3V0ZUludGVydmFsSm9icygpe2ZvcihsZXQgZSBvZiB0aGlzLmludGVydmFsSm9icyllKCl9fX0pO3ZhciBUdix1X2U9dSgoKT0+e2FwKCk7VHY9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJUaW1lU3RhbXAiKX1zdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyhlKXtyZXR1cm4gbmV3IHQoZSl9c3RhdGljIGZyb21UaW1lU3RhbXAoZSl7bGV0IHI9bmV3IHQ7cmV0dXJuIHIuY2hhbmdlPXIubWlsbGlTZWNvbmRzLWUubWlsbGlTZWNvbmRzLHJ9Y29uc3RydWN0b3IoZSl7dGhpcy5jaGFuZ2U9bnVsbCxlP3R5cGVvZiBlPT0ibnVtYmVyIiYmKHRoaXMuZGF0ZT1uZXcgRGF0ZShlKSk6dGhpcy5kYXRlPW5ldyBEYXRlLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuZGF0ZS5nZXRUaW1lKCksdGhpcy5lcG9jaHRpbWU9TWF0aC5mbG9vcih0aGlzLm1pbGxpU2Vjb25kcy8xZTMpfWlzT2xkZXJUaGFuT3RoZXJUaW1lU3RhbXAoZSxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kczxlLm1pbGxpU2Vjb25kcy1yfWlzT2xkZXJUaGFuKGUscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHMrcjxlLm1pbGxpU2Vjb25kc31pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAoZSxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcz5lLm1pbGxpU2Vjb25kcytyfWlzWW91bmdlclRoYW5NaWxsaVNlY29uZHMoZSl7bGV0IGE9bmV3IHQoKS5lcG9jaHRpbWUtZSxzPW5ldyB0KGEpO3JldHVybiB0aGlzLmlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChzKX19fSk7dmFyIHBfZSxSS3Q9dSgoKT0+e2FwKCk7dV9lKCk7cF9lPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRpbWVyIil9Z2V0IHRpbWVMZWZ0KCl7cmV0dXJuIHRoaXMudGltZUluTWlsbGlzZWNvbmRzLXRoaXMucGF1c2VkQXQuY2hhbmdlfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3RhdGU9ImluaXRpYXRlZCIsdGhpcy5jb21wbGV0ZWREZWZlcnJlZD0kdC5kZWZlcigpLHRoaXMudGltZUluTWlsbGlzZWNvbmRzPWUsdGhpcy5jb21wbGV0ZWQ9dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5wcm9taXNlfXN0YXJ0KCl7aWYoIXRoaXMuc3RhcnRlZEF0KXRoaXMuY3VycmVudFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY29tcGxldGVkRGVmZXJyZWQucmVzb2x2ZSgpfSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcyksdGhpcy5zdGFydGVkQXQ9bmV3IFR2O2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJ0aW1lciBoYXMgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSByZXN1bWUgaW5zdGVhZCIpfXBhdXNlKCl7dGhpcy5zdGFydGVkQXQmJihjbGVhclRpbWVvdXQodGhpcy5jdXJyZW50VGltZW91dCksdGhpcy5jdXJyZW50VGltZW91dD1udWxsLHRoaXMucGF1c2VkQXQ9VHYuZnJvbVRpbWVTdGFtcCh0aGlzLnN0YXJ0ZWRBdCkpfXJlc3VtZSgpe2lmKHRoaXMuc3RhcnRlZEF0KXRoaXMuY3VycmVudFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY29tcGxldGVkRGVmZXJyZWQucmVzb2x2ZSgpfSx0aGlzLnRpbWVMZWZ0KTtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIE5PVCBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIC5zdGFydCgpIGluc3RlYWQiKX1yZXNldCgpe3RoaXMucGF1c2UoKSx0aGlzLnN0YXJ0ZWRBdD1udWxsLHRoaXMucGF1c2VkQXQ9bnVsbH19fSk7dmFyIGg2PXt9O1ZlKGg2LHtDcm9uSm9iOigpPT5leixDcm9uTWFuYWdlcjooKT0+c19lLEV4dGVuZGVkRGF0ZTooKT0+bF9lLEhydE1lYXN1cmVtZW50OigpPT5jX2UsSW50ZXJ2YWw6KCk9PmRfZSxUaW1lU3RhbXA6KCk9PlR2LFRpbWVyOigpPT5wX2UsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlQWdvVGltZTooKT0+bHhhLGdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZzooKT0+b3hhLGdldE1pbGxpU2Vjb25kc0Zyb21Vbml0czooKT0+bl9lLHVuaXRzOigpPT5pcH0pO3ZhciBGS3Q9dSgoKT0+e2lfZSgpO2FfZSgpO1BLdCgpO05LdCgpO09LdCgpO1JLdCgpO3VfZSgpO29fZSgpfSk7dmFyIEhLdD1OdCgoR3RuLEJLdCk9PnsidXNlIHN0cmljdCI7Qkt0LmV4cG9ydHM9Y2xhc3N7c3RhdGlje2kodGhpcywiU3ltYm9sVHJlZU5vZGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMucGFyZW50PW51bGwsdGhpcy5wcmV2aW91c1NpYmxpbmc9bnVsbCx0aGlzLm5leHRTaWJsaW5nPW51bGwsdGhpcy5maXJzdENoaWxkPW51bGwsdGhpcy5sYXN0Q2hpbGQ9bnVsbCx0aGlzLmNoaWxkcmVuVmVyc2lvbj0wLHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbCx0aGlzLmNhY2hlZEluZGV4PS0xLHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTn1nZXQgaXNBdHRhY2hlZCgpe3JldHVybiEhKHRoaXMucGFyZW50fHx0aGlzLnByZXZpb3VzU2libGluZ3x8dGhpcy5uZXh0U2libGluZyl9Z2V0IGhhc0NoaWxkcmVuKCl7cmV0dXJuISF0aGlzLmZpcnN0Q2hpbGR9Y2hpbGRyZW5DaGFuZ2VkKCl7dGhpcy5jaGlsZHJlblZlcnNpb249dGhpcy5jaGlsZHJlblZlcnNpb24rMSY0Mjk0OTY3Mjk1LHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbH1nZXRDYWNoZWRJbmRleChlKXtyZXR1cm4gdGhpcy5jYWNoZWRJbmRleFZlcnNpb24hPT1lLmNoaWxkcmVuVmVyc2lvbj8odGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOLC0xKTp0aGlzLmNhY2hlZEluZGV4fXNldENhY2hlZEluZGV4KGUscil7dGhpcy5jYWNoZWRJbmRleFZlcnNpb249ZS5jaGlsZHJlblZlcnNpb24sdGhpcy5jYWNoZWRJbmRleD1yfX19KTt2YXIgVkt0PU50KChLdG4scUt0KT0+eyJ1c2Ugc3RyaWN0IjtxS3QuZXhwb3J0cz1PYmplY3QuZnJlZXplKHtESVNDT05ORUNURUQ6MSxQUkVDRURJTkc6MixGT0xMT1dJTkc6NCxDT05UQUlOUzo4LENPTlRBSU5FRF9CWToxNn0pfSk7dmFyIFlLdD1OdCgoWnRuLEdLdCk9PnsidXNlIHN0cmljdCI7dmFyIGpLdD1TeW1ib2woKSxVS3Q9U3ltYm9sKCksc3A9U3ltYm9sKCksV0t0PVN5bWJvbCgpLFkyPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRyZWVJdGVyYXRvciIpfWNvbnN0cnVjdG9yKGUscixhLHMpe3RoaXNbakt0XT1lLHRoaXNbVUt0XT1yLHRoaXNbc3BdPWEsdGhpc1tXS3RdPXN9bmV4dCgpe2xldCBlPXRoaXNbakt0XSxyPXRoaXNbV0t0XSxhPXRoaXNbVUt0XTtpZighdGhpc1tzcF0pcmV0dXJue2RvbmU6ITAsdmFsdWU6YX07bGV0IHM9dGhpc1tzcF07cmV0dXJuIHI9PT0xP3RoaXNbc3BdPWUuX25vZGUocykucHJldmlvdXNTaWJsaW5nOnI9PT0yP3RoaXNbc3BdPWUuX25vZGUocykubmV4dFNpYmxpbmc6cj09PTM/dGhpc1tzcF09ZS5fbm9kZShzKS5wYXJlbnQ6cj09PTQ/dGhpc1tzcF09ZS5wcmVjZWRpbmcocyx7cm9vdDphfSk6dGhpc1tzcF09ZS5mb2xsb3dpbmcocyx7cm9vdDphfSkse2RvbmU6ITEsdmFsdWU6c319fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoWTIucHJvdG90eXBlLFN5bWJvbC5pdGVyYXRvcix7dmFsdWU6aShmdW5jdGlvbigpe3JldHVybiB0aGlzfSwidmFsdWUiKSx3cml0YWJsZTohMX0pLFkyLlBSRVY9MSxZMi5ORVhUPTIsWTIuUEFSRU5UPTMsWTIuUFJFQ0VESU5HPTQsWTIuRk9MTE9XSU5HPTUsT2JqZWN0LmZyZWV6ZShZMiksT2JqZWN0LmZyZWV6ZShZMi5wcm90b3R5cGUpLEdLdC5leHBvcnRzPVkyfSk7dmFyIFpLdD1OdCgoWHRuLEtLdCk9PnsidXNlIHN0cmljdCI7dmFyIGR4YT1IS3QoKSxucD1WS3QoKSxWbD1ZS3QoKTtmdW5jdGlvbiBmX2UoKXtyZXR1cm4hMH1pKGZfZSwicmV0dXJuVHJ1ZSIpO2Z1bmN0aW9uIEx2KHQsZSl7cmV0dXJuIHRbdC5sZW5ndGgtMS1lXX1pKEx2LCJyZXZlcnNlQXJyYXlJbmRleCIpO3ZhciBRMGU9Y2xhc3N7c3RhdGlje2kodGhpcywiU3ltYm9sVHJlZSIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3ltYm9sPVN5bWJvbChlfHwiU3ltYm9sVHJlZSBkYXRhIil9aW5pdGlhbGl6ZShlKXtyZXR1cm4gdGhpcy5fbm9kZShlKSxlfV9ub2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCByPWVbdGhpcy5zeW1ib2xdO3JldHVybiByfHwoZVt0aGlzLnN5bWJvbF09bmV3IGR4YSl9aGFzQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkuaGFzQ2hpbGRyZW59Zmlyc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5maXJzdENoaWxkfWxhc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5sYXN0Q2hpbGR9cHJldmlvdXNTaWJsaW5nKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZ31uZXh0U2libGluZyhlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5uZXh0U2libGluZ31wYXJlbnQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkucGFyZW50fWxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpe2xldCByLGE9ZTtmb3IoO3I9dGhpcy5fbm9kZShhKS5sYXN0Q2hpbGQ7KWE9cjtyZXR1cm4gYX1wcmVjZWRpbmcoZSxyKXtsZXQgYT1yJiZyLnJvb3Q7aWYoZT09PWEpcmV0dXJuIG51bGw7bGV0IHM9dGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIHM/dGhpcy5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChzKTp0aGlzLl9ub2RlKGUpLnBhcmVudH1mb2xsb3dpbmcoZSxyKXtsZXQgYT1yJiZyLnJvb3Qsbj0hKHImJnIuc2tpcENoaWxkcmVuKSYmdGhpcy5fbm9kZShlKS5maXJzdENoaWxkO2lmKG4pcmV0dXJuIG47bGV0IG89ZTtkb3tpZihvPT09YSlyZXR1cm4gbnVsbDtsZXQgbD10aGlzLl9ub2RlKG8pLm5leHRTaWJsaW5nO2lmKGwpcmV0dXJuIGw7bz10aGlzLl9ub2RlKG8pLnBhcmVudH13aGlsZShvKTtyZXR1cm4gbnVsbH1jaGlsZHJlblRvQXJyYXkoZSxyKXtsZXQgYT1yJiZyLmFycmF5fHxbXSxzPXImJnIuZmlsdGVyfHxmX2Usbj1yJiZyLnRoaXNBcmd8fHZvaWQgMCxvPXRoaXMuX25vZGUoZSksbD1vLmZpcnN0Q2hpbGQsYz0wO2Zvcig7bDspe2xldCBkPXRoaXMuX25vZGUobCk7ZC5zZXRDYWNoZWRJbmRleChvLGMpLHMuY2FsbChuLGwpJiZhLnB1c2gobCksbD1kLm5leHRTaWJsaW5nLCsrY31yZXR1cm4gYX1hbmNlc3RvcnNUb0FycmF5KGUscil7bGV0IGE9ciYmci5hcnJheXx8W10scz1yJiZyLmZpbHRlcnx8Zl9lLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz1lO2Zvcig7bzspcy5jYWxsKG4sbykmJmEucHVzaChvKSxvPXRoaXMuX25vZGUobykucGFyZW50O3JldHVybiBhfXRyZWVUb0FycmF5KGUscil7bGV0IGE9ciYmci5hcnJheXx8W10scz1yJiZyLmZpbHRlcnx8Zl9lLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz1lO2Zvcig7bzspcy5jYWxsKG4sbykmJmEucHVzaChvKSxvPXRoaXMuZm9sbG93aW5nKG8se3Jvb3Q6ZX0pO3JldHVybiBhfWNoaWxkcmVuSXRlcmF0b3IoZSxyKXtsZXQgYT1yJiZyLnJldmVyc2Uscz10aGlzLl9ub2RlKGUpO3JldHVybiBuZXcgVmwodGhpcyxlLGE/cy5sYXN0Q2hpbGQ6cy5maXJzdENoaWxkLGE/VmwuUFJFVjpWbC5ORVhUKX1wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBWbCh0aGlzLGUsdGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmcsVmwuUFJFVil9bmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBWbCh0aGlzLGUsdGhpcy5fbm9kZShlKS5uZXh0U2libGluZyxWbC5ORVhUKX1hbmNlc3RvcnNJdGVyYXRvcihlKXtyZXR1cm4gbmV3IFZsKHRoaXMsZSxlLFZsLlBBUkVOVCl9dHJlZUl0ZXJhdG9yKGUscil7bGV0IGE9ciYmci5yZXZlcnNlO3JldHVybiBuZXcgVmwodGhpcyxlLGE/dGhpcy5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKTplLGE/VmwuUFJFQ0VESU5HOlZsLkZPTExPV0lORyl9aW5kZXgoZSl7bGV0IHI9dGhpcy5fbm9kZShlKSxhPXRoaXMuX25vZGUoci5wYXJlbnQpO2lmKCFhKXJldHVybi0xO2xldCBzPXIuZ2V0Q2FjaGVkSW5kZXgoYSk7aWYocz49MClyZXR1cm4gcztzPTA7bGV0IG49YS5maXJzdENoaWxkO2lmKGEuY2hpbGRJbmRleENhY2hlZFVwVG8pe2xldCBvPXRoaXMuX25vZGUoYS5jaGlsZEluZGV4Q2FjaGVkVXBUbyk7bj1vLm5leHRTaWJsaW5nLHM9by5nZXRDYWNoZWRJbmRleChhKSsxfWZvcig7bjspe2xldCBvPXRoaXMuX25vZGUobik7aWYoby5zZXRDYWNoZWRJbmRleChhLHMpLG49PT1lKWJyZWFrOysrcyxuPW8ubmV4dFNpYmxpbmd9cmV0dXJuIGEuY2hpbGRJbmRleENhY2hlZFVwVG89ZSxzfWNoaWxkcmVuQ291bnQoZSl7bGV0IHI9dGhpcy5fbm9kZShlKTtyZXR1cm4gci5sYXN0Q2hpbGQ/dGhpcy5pbmRleChyLmxhc3RDaGlsZCkrMTowfWNvbXBhcmVUcmVlUG9zaXRpb24oZSxyKXtpZihlPT09cilyZXR1cm4gMDtsZXQgYT1bXTt7bGV0IGY9ZTtmb3IoO2Y7KXtpZihmPT09cilyZXR1cm4gbnAuQ09OVEFJTlN8bnAuUFJFQ0VESU5HO2EucHVzaChmKSxmPXRoaXMucGFyZW50KGYpfX1sZXQgcz1bXTt7bGV0IGY9cjtmb3IoO2Y7KXtpZihmPT09ZSlyZXR1cm4gbnAuQ09OVEFJTkVEX0JZfG5wLkZPTExPV0lORztzLnB1c2goZiksZj10aGlzLnBhcmVudChmKX19bGV0IG49THYoYSwwKTtpZighbnx8biE9PUx2KHMsMCkpcmV0dXJuIG5wLkRJU0NPTk5FQ1RFRDtsZXQgbz0wLGw9TWF0aC5taW4oYS5sZW5ndGgscy5sZW5ndGgpO2ZvcihsZXQgZj0wO2Y8bDsrK2Ype2xldCBwPUx2KGEsZiksaD1MdihzLGYpO2lmKHAhPT1oKWJyZWFrO289Zn1sZXQgYz10aGlzLmluZGV4KEx2KGEsbysxKSk7cmV0dXJuIHRoaXMuaW5kZXgoTHYocyxvKzEpKTxjP25wLlBSRUNFRElORzpucC5GT0xMT1dJTkd9cmVtb3ZlKGUpe2xldCByPXRoaXMuX25vZGUoZSksYT10aGlzLl9ub2RlKHIucGFyZW50KSxzPXRoaXMuX25vZGUoci5wcmV2aW91c1NpYmxpbmcpLG49dGhpcy5fbm9kZShyLm5leHRTaWJsaW5nKTtyZXR1cm4gYSYmKGEuZmlyc3RDaGlsZD09PWUmJihhLmZpcnN0Q2hpbGQ9ci5uZXh0U2libGluZyksYS5sYXN0Q2hpbGQ9PT1lJiYoYS5sYXN0Q2hpbGQ9ci5wcmV2aW91c1NpYmxpbmcpKSxzJiYocy5uZXh0U2libGluZz1yLm5leHRTaWJsaW5nKSxuJiYobi5wcmV2aW91c1NpYmxpbmc9ci5wcmV2aW91c1NpYmxpbmcpLHIucGFyZW50PW51bGwsci5wcmV2aW91c1NpYmxpbmc9bnVsbCxyLm5leHRTaWJsaW5nPW51bGwsci5jYWNoZWRJbmRleD0tMSxyLmNhY2hlZEluZGV4VmVyc2lvbj1OYU4sYSYmYS5jaGlsZHJlbkNoYW5nZWQoKSxlfWluc2VydEJlZm9yZShlLHIpe2xldCBhPXRoaXMuX25vZGUoZSkscz10aGlzLl9ub2RlKGEucHJldmlvdXNTaWJsaW5nKSxuPXRoaXMuX25vZGUociksbz10aGlzLl9ub2RlKGEucGFyZW50KTtpZihuLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gbi5wYXJlbnQ9YS5wYXJlbnQsbi5wcmV2aW91c1NpYmxpbmc9YS5wcmV2aW91c1NpYmxpbmcsbi5uZXh0U2libGluZz1lLGEucHJldmlvdXNTaWJsaW5nPXIscyYmKHMubmV4dFNpYmxpbmc9ciksbyYmby5maXJzdENoaWxkPT09ZSYmKG8uZmlyc3RDaGlsZD1yKSxvJiZvLmNoaWxkcmVuQ2hhbmdlZCgpLHJ9aW5zZXJ0QWZ0ZXIoZSxyKXtsZXQgYT10aGlzLl9ub2RlKGUpLHM9dGhpcy5fbm9kZShhLm5leHRTaWJsaW5nKSxuPXRoaXMuX25vZGUociksbz10aGlzLl9ub2RlKGEucGFyZW50KTtpZihuLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gbi5wYXJlbnQ9YS5wYXJlbnQsbi5wcmV2aW91c1NpYmxpbmc9ZSxuLm5leHRTaWJsaW5nPWEubmV4dFNpYmxpbmcsYS5uZXh0U2libGluZz1yLHMmJihzLnByZXZpb3VzU2libGluZz1yKSxvJiZvLmxhc3RDaGlsZD09PWUmJihvLmxhc3RDaGlsZD1yKSxvJiZvLmNoaWxkcmVuQ2hhbmdlZCgpLHJ9cHJlcGVuZENoaWxkKGUscil7bGV0IGE9dGhpcy5fbm9kZShlKSxzPXRoaXMuX25vZGUocik7aWYocy5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGEuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRCZWZvcmUoYS5maXJzdENoaWxkLHIpOihzLnBhcmVudD1lLGEuZmlyc3RDaGlsZD1yLGEubGFzdENoaWxkPXIsYS5jaGlsZHJlbkNoYW5nZWQoKSkscn1hcHBlbmRDaGlsZChlLHIpe2xldCBhPXRoaXMuX25vZGUoZSkscz10aGlzLl9ub2RlKHIpO2lmKHMuaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBhLmhhc0NoaWxkcmVuP3RoaXMuaW5zZXJ0QWZ0ZXIoYS5sYXN0Q2hpbGQscik6KHMucGFyZW50PWUsYS5maXJzdENoaWxkPXIsYS5sYXN0Q2hpbGQ9cixhLmNoaWxkcmVuQ2hhbmdlZCgpKSxyfX07S0t0LmV4cG9ydHM9UTBlLFEwZS5UcmVlUG9zaXRpb249bnB9KTt2YXIgWDBlLGpsPXUoKCk9Pnt0NigpO09xdCgpO0sxKCk7YjQoKTtGS3QoKTtYMGU9R2EoWkt0KCksMSl9KTt2YXIgaF9lLFFLdD11KCgpPT57amwoKTtoX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQXN5bmNFeGVjdXRpb25TdGFjayIpfWV4ZWN1dGlvblNsb3RzPVtdO2lzUHJvY2Vzc2luZz0hMTtub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT0xLzA7bm9uRXhjbHVzaXZlQ3VycmVudENvdW50PTA7bm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlPVtdO2FzeW5jIGdldEV4Y2x1c2l2ZUV4ZWN1dGlvblNsb3QoZSxyKXtsZXQgYT0kdC5kZWZlcigpLHM9e2Z1bmNUb0V4ZWN1dGU6ZSxleGVjdXRpb25EZWZlcnJlZDphLHRpbWVvdXQ6cixtb2RlOiJleGNsdXNpdmUifTtyZXR1cm4gdGhpcy5leGVjdXRpb25TbG90cy5wdXNoKHMpLHRoaXMucHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCksYS5wcm9taXNlfWFzeW5jIGdldE5vbkV4Y2x1c2l2ZUV4ZWN1dGlvblNsb3QoZSxyKXtsZXQgYT0kdC5kZWZlcigpLHM9e2Z1bmNUb0V4ZWN1dGU6ZSxleGVjdXRpb25EZWZlcnJlZDphLHRpbWVvdXQ6cixtb2RlOiJub25leGNsdXNpdmUifTtyZXR1cm4gdGhpcy5leGVjdXRpb25TbG90cy5wdXNoKHMpLHRoaXMucHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCksYS5wcm9taXNlfXNldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KGUpe2lmKCFOdW1iZXIuaXNGaW5pdGUoZSl8fGU8MSl0aHJvdyBuZXcgRXJyb3IoIm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5IG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyID49IDEiKTt0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5PWV9Z2V0Tm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3koKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeX1nZXRBY3RpdmVOb25FeGNsdXNpdmVDb3VudCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudH1nZXRQZW5kaW5nTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUubGVuZ3RofWFzeW5jIHByb2Nlc3NFeGVjdXRpb25TbG90cygpe2lmKCF0aGlzLmlzUHJvY2Vzc2luZyl7Zm9yKHRoaXMuaXNQcm9jZXNzaW5nPSEwO3RoaXMuZXhlY3V0aW9uU2xvdHMubGVuZ3RoPjA7KXtsZXQgZT10aGlzLmV4ZWN1dGlvblNsb3RzWzBdO2lmKGUubW9kZT09PSJleGNsdXNpdmUiKWF3YWl0IHRoaXMuZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QoZSksdGhpcy5leGVjdXRpb25TbG90cy5zaGlmdCgpO2Vsc2V7bGV0IHI9W107Zm9yKDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wJiZ0aGlzLmV4ZWN1dGlvblNsb3RzWzBdLm1vZGU9PT0ibm9uZXhjbHVzaXZlIjspci5wdXNoKHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKSk7YXdhaXQgdGhpcy5leGVjdXRlTm9uRXhjbHVzaXZlU2xvdHMocil9fXRoaXMuaXNQcm9jZXNzaW5nPSExfX1hc3luYyBleGVjdXRlRXhjbHVzaXZlU2xvdChlKXt0cnl7aWYoZS50aW1lb3V0KXtsZXQgcj1uZXcgVHIuVGltZW91dChlLnRpbWVvdXQpO3RyeXtsZXQgYT1hd2FpdCBQcm9taXNlLnJhY2UoW2UuZnVuY1RvRXhlY3V0ZSgpLHIucHJvbWlzZS50aGVuKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaW1lb3V0IHJlYWNoZWQiKX0pXSk7ci5jYW5jZWwoKSxlLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUoYSl9Y2F0Y2goYSl7dGhyb3cgci5jYW5jZWwoKSxhfX1lbHNle2xldCByPWF3YWl0IGUuZnVuY1RvRXhlY3V0ZSgpO2UuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShyKX19Y2F0Y2gocil7ZS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3Qocil9fWFzeW5jIGV4ZWN1dGVOb25FeGNsdXNpdmVTbG90cyhlKXtsZXQgcj1lLm1hcChhc3luYyBhPT57YXdhaXQgdGhpcy53YWl0Rm9yTm9uRXhjbHVzaXZlU2xvdCgpO3RyeXtpZihhLnRpbWVvdXQpe2xldCBzPW5ldyBUci5UaW1lb3V0KGEudGltZW91dCk7dHJ5e2xldCBuPWF3YWl0IFByb21pc2UucmFjZShbYS5mdW5jVG9FeGVjdXRlKCkscy5wcm9taXNlLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTtzLmNhbmNlbCgpLGEuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShuKX1jYXRjaChuKXt0aHJvdyBzLmNhbmNlbCgpLG59fWVsc2V7bGV0IHM9YXdhaXQgYS5mdW5jVG9FeGVjdXRlKCk7YS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHMpfX1jYXRjaChzKXthLmV4ZWN1dGlvbkRlZmVycmVkLnJlamVjdChzKX1maW5hbGx5e3RoaXMucmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKX19KTthd2FpdCBQcm9taXNlLmFsbChyKX13YWl0Rm9yTm9uRXhjbHVzaXZlU2xvdCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudDx0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5Pyh0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLFByb21pc2UucmVzb2x2ZSgpKTpuZXcgUHJvbWlzZShlPT57dGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUucHVzaCgoKT0+e3RoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50KyssZSgpfSl9KX1yZWxlYXNlTm9uRXhjbHVzaXZlU2xvdCgpe3RoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50LS07bGV0IGU9dGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUuc2hpZnQoKTtlJiZlKCl9fX0pO3ZhciBtX2UsWEt0PXUoKCk9PntqbCgpO21fZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJCYWNrcHJlc3N1cmVkQXJyYXkiKX1kYXRhO2hpZ2hXYXRlck1hcms7aGFzU3BhY2U9bmV3ICRhLnJ4anMuU3ViamVjdDtpdGVtc0F2YWlsYWJsZT1uZXcgJGEucnhqcy5TdWJqZWN0O2lzRGVzdHJveWVkPSExO2NvbnN0cnVjdG9yKGU9MTYpe3RoaXMuZGF0YT1bXSx0aGlzLmhpZ2hXYXRlck1hcms9ZX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGh9cHVzaChlKXt0aGlzLmRhdGEucHVzaChlKSx0aGlzLml0ZW1zQXZhaWxhYmxlLm5leHQoIml0ZW1zQXZhaWxhYmxlIik7bGV0IHI9dGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCk7cmV0dXJuIHImJnRoaXMuaGFzU3BhY2UubmV4dCgiaGFzU3BhY2UiKSxyfXB1c2hNYW55KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMucHVzaChyKTtyZXR1cm4gdGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCl9c2hpZnQoKXtsZXQgZT10aGlzLmRhdGEuc2hpZnQoKTtyZXR1cm4gdGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCkmJnRoaXMuaGFzU3BhY2UubmV4dCgiaGFzU3BhY2UiKSxlfXBlZWsoKXtyZXR1cm4gdGhpcy5kYXRhWzBdfWNoZWNrU3BhY2VBdmFpbGFibGUoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDx0aGlzLmhpZ2hXYXRlck1hcmt9Y2hlY2tIYXNJdGVtcygpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPjB9d2FpdEZvclNwYWNlKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntpZih0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKXx8dGhpcy5pc0Rlc3Ryb3llZCllKCk7ZWxzZXtsZXQgcj10aGlzLmhhc1NwYWNlLnN1YnNjcmliZSh7bmV4dDppKCgpPT57ci51bnN1YnNjcmliZSgpLGUoKX0sIm5leHQiKSxjb21wbGV0ZTppKCgpPT57ZSgpfSwiY29tcGxldGUiKX0pfX0pfXdhaXRGb3JJdGVtcygpe3JldHVybiBuZXcgUHJvbWlzZShlPT57aWYodGhpcy5kYXRhLmxlbmd0aD4wfHx0aGlzLmlzRGVzdHJveWVkKWUoKTtlbHNle2xldCByPXRoaXMuaXRlbXNBdmFpbGFibGUuc3Vic2NyaWJlKHtuZXh0OmkoKCk9PntyLnVuc3Vic2NyaWJlKCksZSgpfSwibmV4dCIpLGNvbXBsZXRlOmkoKCk9PntlKCl9LCJjb21wbGV0ZSIpfSl9fSl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5kYXRhW1N5bWJvbC5pdGVyYXRvcl0oKX1kZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3llZD0hMCx0aGlzLmhhc1NwYWNlLmNvbXBsZXRlKCksdGhpcy5pdGVtc0F2YWlsYWJsZS5jb21wbGV0ZSgpfX19KTt2YXIgbTYsSjBlPXUoKCk9PntqbCgpO202PWNsYXNzIHR7c3RhdGlje2kodGhpcywiRmFzdE1hcCIpfW1hcE9iamVjdD1uZXcgTWFwO2lzVW5pcXVlS2V5KGUpe3JldHVybiF0aGlzLm1hcE9iamVjdC5oYXMoZSl9aGFzKGUpe3JldHVybiB0aGlzLm1hcE9iamVjdC5oYXMoZSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5tYXBPYmplY3Quc2l6ZX1hZGRUb01hcChlLHIsYSl7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkoZSl8fGEmJmEuZm9yY2U/KHRoaXMubWFwT2JqZWN0LnNldChlLHIpLCEwKTohMX1nZXRCeUtleShlKXtyZXR1cm4gdGhpcy5tYXBPYmplY3QuZ2V0KGUpfXJlbW92ZUZyb21NYXAoZSl7bGV0IHI9dGhpcy5tYXBPYmplY3QuZ2V0KGUpO3JldHVybiB0aGlzLm1hcE9iamVjdC5kZWxldGUoZSkscn1nZXRLZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5tYXBPYmplY3Qua2V5cygpKX12YWx1ZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLm1hcE9iamVjdC52YWx1ZXMoKSl9ZW50cmllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwT2JqZWN0LmVudHJpZXMoKSl9Y2xlYW4oKXt0aGlzLm1hcE9iamVjdC5jbGVhcigpfWNvbmNhdChlKXtsZXQgcj1uZXcgdDtmb3IobGV0IGEgb2YgdGhpcy5nZXRLZXlzKCkpci5hZGRUb01hcChhLHRoaXMuZ2V0QnlLZXkoYSkpO2ZvcihsZXQgYSBvZiBlLmdldEtleXMoKSlyLmFkZFRvTWFwKGEsZS5nZXRCeUtleShhKSx7Zm9yY2U6ITB9KTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIoZSl7Zm9yKGxldCByIG9mIGUuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAocixlLmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQoZSl7Zm9yKGxldCByIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgYT10aGlzLmdldEJ5S2V5KHIpO2lmKGF3YWl0IGUoYSkpcmV0dXJuIGF9fVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmVudHJpZXMoKX19fSk7dmFyIEpLdCxNNCx0ej11KCgpPT57amwoKTtKMGUoKTtKS3Q9aSgodD0idW5pIik9PmAke3R9eHh4eHh4eHh4eHhgLnJlcGxhY2UoL1t4eV0vZyxlPT57bGV0IHI9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybihlPT09IngiP3I6ciYzfDgpLnRvU3RyaW5nKDE2KX0pLCJ1bmkiKSxNND1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk9iamVjdE1hcCIpfWZhc3RNYXA9bmV3IG02O3JldmVyc2VNYXA9bmV3IE1hcDtldmVudFN1YmplY3Q9bmV3ICRhLnJ4anMuU3ViamVjdDtjb25zdHJ1Y3Rvcigpe31nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5zaXplfWFkZE1hcHBlZFVuaXF1ZShlLHIpe3RoaXMuZmFzdE1hcC5hZGRUb01hcChlLHIpLHRoaXMucmV2ZXJzZU1hcC5zZXQocixlKX1nZXRNYXBwZWRVbmlxdWUoZSl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleShlKX1yZW1vdmVNYXBwZWRVbmlxdWUoZSl7bGV0IHI9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAoZSk7cmV0dXJuIHIhPT12b2lkIDAmJih0aGlzLnJldmVyc2VNYXAuZGVsZXRlKHIpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOnJ9KSkscn1hZGQoZSl7bGV0IHI9dGhpcy5yZXZlcnNlTWFwLmdldChlKTtpZihyIT09dm9pZCAwKXJldHVybiByO2xldCBhPUpLdCgia2V5Iik7cmV0dXJuIHRoaXMuYWRkTWFwcGVkVW5pcXVlKGEsZSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJhZGQiLHBheWxvYWQ6ZX0pLGF9YWRkQXJyYXkoZSl7Zm9yKGxldCByIG9mIGUpdGhpcy5hZGQocil9Y2hlY2tGb3JPYmplY3QoZSl7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5oYXMoZSl9Z2V0S2V5Rm9yT2JqZWN0KGUpe3JldHVybiB0aGlzLnJldmVyc2VNYXAuZ2V0KGUpPz9udWxsfWFzeW5jIGZpbmQoZSl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKGUpfWZpbmRTeW5jKGUpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKGUodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUocil9YXN5bmMgZmluZE9uZUFuZFJlbW92ZShlKXtsZXQgcj1hd2FpdCB0aGlzLmZpbmQoZSk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9ZmluZE9uZUFuZFJlbW92ZVN5bmMoZSl7bGV0IHI9dGhpcy5maW5kU3luYyhlKTtyZXR1cm4gciYmdGhpcy5yZW1vdmUocikscn1hc3luYyBmb3JFYWNoKGUpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IGUodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgZT10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IHI9ZVswXSxhPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLnJldmVyc2VNYXAuZGVsZXRlKGEpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOmF9KSxhfX1nZXRBcnJheSgpe3JldHVybiB0aGlzLmZhc3RNYXAudmFsdWVzKCl9aXNFbXB0eSgpe3JldHVybiB0aGlzLmZhc3RNYXAuc2l6ZT09PTB9cmVtb3ZlKGUpe2xldCByPXRoaXMucmV2ZXJzZU1hcC5nZXQoZSk7aWYociE9PXZvaWQgMCl7bGV0IGE9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAocik7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5kZWxldGUoYSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6YX0pLGF9cmV0dXJuIG51bGx9d2lwZSgpe2xldCBlPXRoaXMuZmFzdE1hcC5nZXRLZXlzKCk7Zm9yKGxldCByIG9mIGUpe2xldCBhPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3RoaXMucmV2ZXJzZU1hcC5kZWxldGUoYSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6YX0pfX1jb25jYXQoZSl7bGV0IHI9bmV3IHQ7ci5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIoZS5mYXN0TWFwKTtmb3IobGV0IGEgb2Ygci5mYXN0TWFwLmdldEtleXMoKSlyLnJldmVyc2VNYXAuc2V0KHIuZmFzdE1hcC5nZXRCeUtleShhKSxhKTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIoZSl7dGhpcy5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApO2ZvcihsZXQgciBvZiBlLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMucmV2ZXJzZU1hcC5zZXQoZS5mYXN0TWFwLmdldEJ5S2V5KHIpLHIpfW1hcChlKXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpLm1hcChlKX1maWx0ZXIoZSl7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKS5maWx0ZXIoZSl9cmVkdWNlKGUscil7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKS5yZWR1Y2UoZSxyKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLmdldEFycmF5KClbU3ltYm9sLml0ZXJhdG9yXSgpfWRlc3Ryb3koKXt0aGlzLndpcGUoKSx0aGlzLnJldmVyc2VNYXAuY2xlYXIoKSx0aGlzLmV2ZW50U3ViamVjdC5jb21wbGV0ZSgpfX19KTt2YXIgcnosZ19lPXUoKCk9PntqbCgpO2JfZSgpO3J6PWNsYXNze3N0YXRpY3tpKHRoaXMsIkludGVyZXN0Iil9b3B0aW9ucztpbnRlcmVzdE1hcFJlZjtvcmlnaW5hbEludGVyZXN0O2NvbXBhcmlzb25GdW5jO2Rlc3RydWN0aW9uVGltZXI9bmV3IGg2LlRpbWVyKDFlNCk7aXNGdWxsZmlsbGVkPSExO2lzRGVzdHJveWVkPSExO2Z1bGxmaWxsbWVudFN0b3JlPVtdO21hcmtMb3N0VGltZW91dD1udWxsO2dldCBjb21wYXJpc29uU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tcGFyaXNvbkZ1bmModGhpcy5vcmlnaW5hbEludGVyZXN0KX1pbnRlcmVzdERlZmVycmVkPW5ldyAkdC5EZWZlcnJlZDtpbnRlcmVzdEZ1bGxmaWxsZWQ9dGhpcy5pbnRlcmVzdERlZmVycmVkLnByb21pc2U7ZnVsbGZpbGxJbnRlcmVzdChlKXt0aGlzLmlzRnVsbGZpbGxlZD0hMCx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3REZWZlcnJlZC5yZXNvbHZlKGUpLHRoaXMuZGVzdHJveSgpfWNvbnN0cnVjdG9yKGUscixhLHMpe3RoaXMuaW50ZXJlc3RNYXBSZWY9ZSx0aGlzLm9yaWdpbmFsSW50ZXJlc3Q9cix0aGlzLmNvbXBhcmlzb25GdW5jPWEsdGhpcy5vcHRpb25zPXMsdGhpcy5kZXN0cnVjdGlvblRpbWVyLmNvbXBsZXRlZC50aGVuKCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5kZXN0cm95KCl9KSx0aGlzLm9wdGlvbnM/Lm1hcmtMb3N0QWZ0ZXJEZWZhdWx0JiYodGhpcy5tYXJrTG9zdFRpbWVvdXQ9bmV3IFRyLlRpbWVvdXQodGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0KSx0aGlzLm1hcmtMb3N0VGltZW91dC5wcm9taXNlLnRoZW4oKCk9Pnt0aGlzLmlzRGVzdHJveWVkfHx0aGlzLm1hcmtMb3N0KCl9KSl9ZGVzdHJveSgpe3RoaXMuaXNEZXN0cm95ZWR8fCh0aGlzLmlzRGVzdHJveWVkPSEwLHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5yZXNldCgpLHRoaXMubWFya0xvc3RUaW1lb3V0JiYodGhpcy5tYXJrTG9zdFRpbWVvdXQuY2FuY2VsKCksdGhpcy5tYXJrTG9zdFRpbWVvdXQ9bnVsbCksdGhpcy5mdWxsZmlsbG1lbnRTdG9yZT1bXSx0aGlzLmludGVyZXN0TWFwUmVmLnJlbW92ZUludGVyZXN0KHRoaXMpLCF0aGlzLmlzRnVsbGZpbGxlZCYmdGhpcy5vcHRpb25zPy5kZWZhdWx0RnVsbGZpbGxtZW50JiYodGhpcy5pc0Z1bGxmaWxsZWQ9ITAsdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUodGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQpKSl9bWFya0xvc3QoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIuc3RhcnQoKX1yZW5ldygpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5yZXNldCgpfX19KTt2YXIgeF9lLGJfZT11KCgpPT57amwoKTt0eigpO2dfZSgpO3hfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbnRlcmVzdE1hcCIpfW9wdGlvbnM7aW50ZXJlc3RPYmplY3RNYXA9bmV3IE00O2ludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZz1uZXcgTWFwO2NvbXBhcmlzb25GdW5jO2NvbnN0cnVjdG9yKGUscj17fSl7dGhpcy5jb21wYXJpc29uRnVuYz1lLHRoaXMub3B0aW9ucz1yfWFzeW5jIGFkZEludGVyZXN0KGUscil7bGV0IGE9dGhpcy5jb21wYXJpc29uRnVuYyhlKSxzLG49dGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuZ2V0KGEpO3JldHVybiBuPyhzPW4scy5yZW5ldygpKToocz1uZXcgcnoodGhpcyxlLHRoaXMuY29tcGFyaXNvbkZ1bmMse21hcmtMb3N0QWZ0ZXJEZWZhdWx0OnRoaXMub3B0aW9ucy5tYXJrTG9zdEFmdGVyRGVmYXVsdCxkZWZhdWx0RnVsbGZpbGxtZW50OnJ9KSx0aGlzLmludGVyZXN0T2JqZWN0TWFwLmFkZChzKSx0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5zZXQoYSxzKSksdGhpcy5pbnRlcmVzdE9ic2VydmFibGUucHVzaChzKSxzfWludGVyZXN0T2JzZXJ2YWJsZT1uZXcgJGEuT2JzZXJ2YWJsZUludGFrZTtyZW1vdmVJbnRlcmVzdChlKXt0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRPbmVBbmRSZW1vdmVTeW5jKHI9PmUuY29tcGFyaXNvblN0cmluZz09PXIuY29tcGFyaXNvblN0cmluZyksdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuZGVsZXRlKGUuY29tcGFyaXNvblN0cmluZyl9Y2hlY2tJbnRlcmVzdChlKXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKGUpO3JldHVybiB0aGlzLmNoZWNrSW50ZXJlc3RCeVN0cmluZyhyKX1jaGVja0ludGVyZXN0QnlTdHJpbmcoZSl7cmV0dXJuIHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmhhcyhlKX1pbmZvcm1Mb3N0SW50ZXJlc3QoZSl7bGV0IHI9dGhpcy5maW5kSW50ZXJlc3QoZSk7ciYmci5tYXJrTG9zdCgpfWZpbmRJbnRlcmVzdChlKXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKGUpO3JldHVybiB0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5nZXQocik/P251bGx9ZGVzdHJveSgpe2xldCBlPXRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZ2V0QXJyYXkoKTtmb3IobGV0IHIgb2YgZSlyLmRlc3Ryb3koKTt0aGlzLmludGVyZXN0T2JqZWN0TWFwLndpcGUoKSx0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5jbGVhcigpLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlLnNpZ25hbENvbXBsZXRlKCl9fX0pO3ZhciB2X2UsZVp0PXUoKCk9PntqbCgpO3ZfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMaW1pdGVkQXJyYXkiKX1hcnJheT1bXTthcnJheUxpbWl0O2NvbnN0cnVjdG9yKGUpe3RoaXMuYXJyYXlMaW1pdD1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5hcnJheS5sZW5ndGh9YWRkT25lKGUpe3RoaXMuYXJyYXkudW5zaGlmdChlKSx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWFkZE1hbnkoZSl7Zm9yKGxldCByIG9mIGUpdGhpcy5hZGRPbmUocil9c2V0TGltaXQoZSl7dGhpcy5hcnJheUxpbWl0PWUsdGhpcy5hcnJheS5sZW5ndGg+dGhpcy5hcnJheUxpbWl0JiYodGhpcy5hcnJheS5sZW5ndGg9dGhpcy5hcnJheUxpbWl0KX1nZXRBdmVyYWdlKCl7aWYodGhpcy5hcnJheS5sZW5ndGg9PT0wKXJldHVybiAwO2lmKHR5cGVvZiB0aGlzLmFycmF5WzBdPT0ibnVtYmVyIil7bGV0IGU9MDtmb3IobGV0IHIgb2YgdGhpcy5hcnJheSllPWUrcjtyZXR1cm4gZS90aGlzLmFycmF5Lmxlbmd0aH1lbHNlIHJldHVybiBudWxsfXJlbW92ZShlKXtsZXQgcj10aGlzLmFycmF5LmluZGV4T2YoZSk7cmV0dXJuIHIhPT0tMT8odGhpcy5hcnJheS5zcGxpY2UociwxKSwhMCk6ITF9Y2xlYXIoKXt0aGlzLmFycmF5Lmxlbmd0aD0wfWdldEFycmF5KCl7cmV0dXJuWy4uLnRoaXMuYXJyYXldfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuYXJyYXlbU3ltYm9sLml0ZXJhdG9yXSgpfX19KTt2YXIgeV9lLHRadD11KCgpPT57amwoKTt0eigpO3lfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMb29wVHJhY2tlciIpfXJlZmVyZW5jZU9iamVjdE1hcD1uZXcgTTQ7Y29uc3RydWN0b3IoKXt9Y2hlY2tBbmRUcmFjayhlKXtyZXR1cm4gdGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuY2hlY2tGb3JPYmplY3QoZSk/ITE6KHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmFkZChlKSwhMCl9cmVzZXQoKXt0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC53aXBlKCl9ZGVzdHJveSgpe3RoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmRlc3Ryb3koKX19fSk7dmFyIGF6LHdfZT11KCgpPT57amwoKTthej1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdHJpbmdtYXAiKX1fc3RyaW5nQXJyYXk9W107X3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PVtdO2NvbnN0cnVjdG9yKCl7fWFkZFN0cmluZyhlKXt0aGlzLl9zdHJpbmdBcnJheS5wdXNoKGUpLHRoaXMubm90aWZ5VHJpZ2dlcigpfWFkZFN0cmluZ0FycmF5KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMuYWRkU3RyaW5nKHIpfXJlbW92ZVN0cmluZyhlKXt0aGlzLl9zdHJpbmdBcnJheT10aGlzLl9zdHJpbmdBcnJheS5maWx0ZXIocj0+ciE9PWUpLHRoaXMubm90aWZ5VHJpZ2dlcigpfXdpcGUoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1jaGVja1N0cmluZyhlKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkuaW5kZXhPZihlKSE9PS0xfWNoZWNrTWluaW1hdGNoKGUpe2xldCByPW5ldyB6Qy5TbWFydE1hdGNoKGUpLGE9ITE7Zm9yKGxldCBzIG9mIHRoaXMuX3N0cmluZ0FycmF5KXIubWF0Y2gocykmJihhPSEwKTtyZXR1cm4gYX1jaGVja0lzRW1wdHkoKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkubGVuZ3RoPT09MH1nZXRTdHJpbmdBcnJheSgpe2xldCBlPVtdO2ZvcihsZXQgciBvZiB0aGlzLl9zdHJpbmdBcnJheSllLnB1c2gocik7cmV0dXJuIGV9cmVnaXN0ZXJVbnRpbFRydWUoZSxyKXtsZXQgYT0kdC5kZWZlcigpO3JldHVybiB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5wdXNoKCgpPT57bGV0IHM9ZSh0aGlzLmdldFN0cmluZ0FycmF5KCkpO3JldHVybiBzPT09ITAmJihyJiZyKCksYS5yZXNvbHZlKCkpLHN9KSx0aGlzLm5vdGlmeVRyaWdnZXIoKSxhLnByb21pc2V9bm90aWZ5VHJpZ2dlcigpe2xldCBlPXRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LmZpbHRlcihyPT4hcigpKTt0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1lfWRlc3Ryb3koKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXX19fSk7dmFyIGl6LGtfZT11KCgpPT57amwoKTtpej1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaW1lZEFnZ3JlZ3RvciIpfW9wdGlvbnM7c3RvcmFnZUFycmF5PVtdO2lzU3RvcHBlZD0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9ZX1hZ2dyZWdhdGlvblRpbWVyO2NoZWNrQWdncmVnYXRpb25TdGF0dXMoKXtpZih0aGlzLmlzU3RvcHBlZClyZXR1cm47bGV0IGU9aSgoKT0+e3RoaXMuYWdncmVnYXRpb25UaW1lcj1uZXcgaDYuVGltZXIodGhpcy5vcHRpb25zLmFnZ3JlZ2F0aW9uSW50ZXJ2YWxJbk1pbGxpcyksdGhpcy5hZ2dyZWdhdGlvblRpbWVyLmNvbXBsZXRlZC50aGVuKCgpPT57aWYodGhpcy5pc1N0b3BwZWQpe3RoaXMuYWdncmVnYXRpb25UaW1lcj1udWxsO3JldHVybn1sZXQgcj10aGlzLnN0b3JhZ2VBcnJheTtpZihyLmxlbmd0aD09PTApe3RoaXMuYWdncmVnYXRpb25UaW1lcj1udWxsO3JldHVybn10aGlzLnN0b3JhZ2VBcnJheT1bXSxlKCksdGhpcy5vcHRpb25zLmZ1bmN0aW9uRm9yQWdncmVnYXRpb24ocil9KSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuc3RhcnQoKX0sImFkZEFnZ3JlZ2F0aW9uVGltZXIiKTt0aGlzLmFnZ3JlZ2F0aW9uVGltZXJ8fGUoKX1hZGQoZSl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLnN0b3JhZ2VBcnJheS5wdXNoKGUpLHRoaXMuY2hlY2tBZ2dyZWdhdGlvblN0YXR1cygpKX1zdG9wKGU9ITEpe2lmKHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuYWdncmVnYXRpb25UaW1lciYmKHRoaXMuYWdncmVnYXRpb25UaW1lci5yZXNldCgpLHRoaXMuYWdncmVnYXRpb25UaW1lcj1udWxsKSxlJiZ0aGlzLnN0b3JhZ2VBcnJheS5sZW5ndGg+MCl7bGV0IHI9dGhpcy5zdG9yYWdlQXJyYXk7dGhpcy5zdG9yYWdlQXJyYXk9W10sdGhpcy5vcHRpb25zLmZ1bmN0aW9uRm9yQWdncmVnYXRpb24ocil9ZWxzZSB0aGlzLnN0b3JhZ2VBcnJheT1bXX1yZXN0YXJ0KCl7dGhpcy5pc1N0b3BwZWQ9ITF9fX0pO3ZhciBTX2Usclp0PXUoKCk9PntqbCgpO1NfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUcmVlIil9c3ltYm9sVHJlZTtjb25zdHJ1Y3Rvcigpe3RoaXMuc3ltYm9sVHJlZT1uZXcgWDBlLmRlZmF1bHR9aW5pdGlhbGl6ZShlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluaXRpYWxpemUoZSl9aGFzQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5oYXNDaGlsZHJlbihlKX1maXJzdENoaWxkKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZmlyc3RDaGlsZChlKX1sYXN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0Q2hpbGQoZSl9cHJldmlvdXNTaWJsaW5nKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJldmlvdXNTaWJsaW5nKGUpfW5leHRTaWJsaW5nKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmcoZSl9cGFyZW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucGFyZW50KGUpfWxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl9cHJlY2VkaW5nKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmVjZWRpbmcoZSxyKX1mb2xsb3dpbmcoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZvbGxvd2luZyhlLHIpfWNoaWxkcmVuVG9BcnJheShlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Ub0FycmF5KGUscil9YW5jZXN0b3JzVG9BcnJheShlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYW5jZXN0b3JzVG9BcnJheShlLHIpfXRyZWVUb0FycmF5KGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlVG9BcnJheShlLHIpfWNoaWxkcmVuSXRlcmF0b3IoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuSXRlcmF0b3IoZSxyKX1wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl9bmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZ3NJdGVyYXRvcihlKX1hbmNlc3RvcnNJdGVyYXRvcihlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc0l0ZXJhdG9yKGUpfXRyZWVJdGVyYXRvcihlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZUl0ZXJhdG9yKGUscil9aW5kZXgoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbmRleChlKX1jaGlsZHJlbkNvdW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Db3VudChlKX1jb21wYXJlVHJlZVBvc2l0aW9uKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jb21wYXJlVHJlZVBvc2l0aW9uKGUscil9cmVtb3ZlKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucmVtb3ZlKGUpfWluc2VydEJlZm9yZShlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5zZXJ0QmVmb3JlKGUscil9aW5zZXJ0QWZ0ZXIoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEFmdGVyKGUscil9cHJlcGVuZENoaWxkKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmVwZW5kQ2hpbGQoZSxyKX1hcHBlbmRDaGlsZChlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYXBwZW5kQ2hpbGQoZSxyKX10b0pzb25XaXRoSGllcmFjaHkoZSl7bGV0IHI9aShhPT57bGV0IHM9W107aWYodGhpcy5oYXNDaGlsZHJlbihhKSl7bGV0IG49dGhpcy5jaGlsZHJlblRvQXJyYXkoYSx7fSk7Zm9yKGxldCBvIG9mIG4pcy5wdXNoKHIobykpfXJldHVybntkYXRhOmEsY2hpbGRyZW46c319LCJidWlsZE5vZGUiKTtyZXR1cm4gcihlKX1mcm9tSnNvbldpdGhIaWVyYWNoeShlLHIpe2xldCBhPWkoKHMsbik9PntsZXQgbz1yP3Iocy5kYXRhKTpzLmRhdGE7dGhpcy5pbml0aWFsaXplKG8pLG4mJnRoaXMuYXBwZW5kQ2hpbGQobixvKTtmb3IobGV0IGwgb2Ygcy5jaGlsZHJlbilhKGwsbyk7cmV0dXJuIG99LCJidWlsZFRyZWUiKTtyZXR1cm4gYShlKX19fSk7dmFyIFpzPXt9O1ZlKFpzLHtBc3luY0V4ZWN1dGlvblN0YWNrOigpPT5oX2UsQmFja3ByZXNzdXJlZEFycmF5OigpPT5tX2UsRmFzdE1hcDooKT0+bTYsSW50ZXJlc3Q6KCk9PnJ6LEludGVyZXN0TWFwOigpPT54X2UsTGltaXRlZEFycmF5OigpPT52X2UsTG9vcFRyYWNrZXI6KCk9PnlfZSxPYmplY3RNYXA6KCk9Pk00LFN0cmluZ21hcDooKT0+YXosVGltZWRBZ2dyZWdhdG9yOigpPT5peixUaW1lZEFnZ3JlZ3RvcjooKT0+aXosVHJlZTooKT0+U19lLHVuaTooKT0+Skt0fSk7dmFyIEpDPXUoKCk9PntRS3QoKTtYS3QoKTtKMGUoKTtiX2UoKTtnX2UoKTtlWnQoKTt0WnQoKTt0eigpO3dfZSgpO2tfZSgpO2tfZSgpO3JadCgpfSk7dmFyIGNwPXt9O1ZlKGNwLHthcmVVaW50OEFycmF5c0VxdWFsOigpPT54eGEsYXNzZXJ0VWludDhBcnJheTooKT0+bHAsYXNzZXJ0VWludDhBcnJheU9yQXJyYXlCdWZmZXI6KCk9Pm9adCxiYXNlNjRUb1N0cmluZzooKT0+TXhhLGJhc2U2NFRvVWludDhBcnJheTooKT0+dVp0LGNvbXBhcmVVaW50OEFycmF5czooKT0+dnhhLGNvbmNhdFVpbnQ4QXJyYXlzOigpPT5ieGEsZ2V0VWludEJFOigpPT5UeGEsaGV4VG9VaW50OEFycmF5OigpPT5feGEsaW5jbHVkZXM6KCk9Pkx4YSxpbmRleE9mOigpPT5wWnQsaXNVaW50OEFycmF5OigpPT5NX2Usc3RyaW5nVG9CYXNlNjQ6KCk9PlN4YSxzdHJpbmdUb1VpbnQ4QXJyYXk6KCk9PmNadCx0b1VpbnQ4QXJyYXk6KCk9Pmd4YSx1aW50OEFycmF5VG9CYXNlNjQ6KCk9PmRadCx1aW50OEFycmF5VG9IZXg6KCk9Pnp4YSx1aW50OEFycmF5VG9TdHJpbmc6KCk9PmxadH0pO2Z1bmN0aW9uIGFadCh0LGUscil7cmV0dXJuIHQ/dC5jb25zdHJ1Y3Rvcj09PWU/ITA6dXhhLmNhbGwodCk9PT1yOiExfWZ1bmN0aW9uIE1fZSh0KXtyZXR1cm4gYVp0KHQsVWludDhBcnJheSxweGEpfWZ1bmN0aW9uIGh4YSh0KXtyZXR1cm4gYVp0KHQsQXJyYXlCdWZmZXIsZnhhKX1mdW5jdGlvbiBteGEodCl7cmV0dXJuIE1fZSh0KXx8aHhhKHQpfWZ1bmN0aW9uIGxwKHQpe2lmKCFNX2UodCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAsIGdvdCBcYCR7dHlwZW9mIHR9XGBgKX1mdW5jdGlvbiBvWnQodCl7aWYoIW14YSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCBvciBcYEFycmF5QnVmZmVyXGAsIGdvdCBcYCR7dHlwZW9mIHR9XGBgKX1mdW5jdGlvbiBneGEodCl7aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBuZXcgVWludDhBcnJheSh0KTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCkpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpO3Rocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlLCBnb3QgXGAke3R5cGVvZiB0fVxgLmApfWZ1bmN0aW9uIGJ4YSh0LGUpe2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7ZT8/PXQucmVkdWNlKChzLG4pPT5zK24ubGVuZ3RoLDApO2xldCByPW5ldyBVaW50OEFycmF5KGUpLGE9MDtmb3IobGV0IHMgb2YgdClscChzKSxyLnNldChzLGEpLGErPXMubGVuZ3RoO3JldHVybiByfWZ1bmN0aW9uIHh4YSh0LGUpe2lmKGxwKHQpLGxwKGUpLHQ9PT1lKXJldHVybiEwO2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspaWYodFtyXSE9PWVbcl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gdnhhKHQsZSl7bHAodCksbHAoZSk7bGV0IHI9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpO2ZvcihsZXQgYT0wO2E8cjthKyspe2xldCBzPXRbYV0tZVthXTtpZihzIT09MClyZXR1cm4gTWF0aC5zaWduKHMpfXJldHVybiBNYXRoLnNpZ24odC5sZW5ndGgtZS5sZW5ndGgpfWZ1bmN0aW9uIGxadCh0LGU9InV0ZjgiKXtyZXR1cm4gb1p0KHQpLGladFtlXT8/PW5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKGUpLGladFtlXS5kZWNvZGUodCl9ZnVuY3Rpb24gc3oodCl7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgc3RyaW5nXGAsIGdvdCBcYCR7dHlwZW9mIHR9XGBgKX1mdW5jdGlvbiBjWnQodCl7cmV0dXJuIHN6KHQpLHl4YS5lbmNvZGUodCl9ZnVuY3Rpb24gd3hhKHQpe3JldHVybiB0LnJlcGxhY2VBbGwoIisiLCItIikucmVwbGFjZUFsbCgiLyIsIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBreGEodCl7bGV0IGU9dC5yZXBsYWNlQWxsKCItIiwiKyIpLnJlcGxhY2VBbGwoIl8iLCIvIikscj0oNC1lLmxlbmd0aCU0KSU0O3JldHVybiBlKyI9Ii5yZXBlYXQocil9ZnVuY3Rpb24gZFp0KHQse3VybFNhZmU6ZT0hMX09e30pe2xwKHQpO2xldCByPSIiO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSs9c1p0KXtsZXQgcz10LnN1YmFycmF5KGEsYStzWnQpO3IrPWdsb2JhbFRoaXMuYnRvYShTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAscykpfXJldHVybiBlP3d4YShyKTpyfWZ1bmN0aW9uIHVadCh0KXtyZXR1cm4gc3oodCksVWludDhBcnJheS5mcm9tKGdsb2JhbFRoaXMuYXRvYihreGEodCkpLGU9PmUuY29kZVBvaW50QXQoMCkpfWZ1bmN0aW9uIFN4YSh0LHt1cmxTYWZlOmU9ITF9PXt9KXtyZXR1cm4gc3oodCksZFp0KGNadCh0KSx7dXJsU2FmZTplfSl9ZnVuY3Rpb24gTXhhKHQpe3JldHVybiBzeih0KSxsWnQodVp0KHQpKX1mdW5jdGlvbiB6eGEodCl7bHAodCk7bGV0IGU9IiI7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspZSs9Q3hhW3Rbcl1dO3JldHVybiBlfWZ1bmN0aW9uIF94YSh0KXtpZihzeih0KSx0Lmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSGV4IHN0cmluZyBsZW5ndGguIik7bGV0IGU9dC5sZW5ndGgvMixyPW5ldyBVaW50OEFycmF5KGUpO2ZvcihsZXQgYT0wO2E8ZTthKyspe2xldCBzPW5adFt0W2EqMl1dLG49blp0W3RbYSoyKzFdXTtpZihzPT09dm9pZCAwfHxuPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBIZXggY2hhcmFjdGVyIGVuY291bnRlcmVkIGF0IHBvc2l0aW9uICR7YSoyfWApO3JbYV09czw8NHxufXJldHVybiByfWZ1bmN0aW9uIFR4YSh0KXtsZXR7Ynl0ZUxlbmd0aDplfT10O2lmKGU9PT02KXJldHVybiB0LmdldFVpbnQxNigwKSoyKiozMit0LmdldFVpbnQzMigyKTtpZihlPT09NSlyZXR1cm4gdC5nZXRVaW50OCgwKSoyKiozMit0LmdldFVpbnQzMigxKTtpZihlPT09NClyZXR1cm4gdC5nZXRVaW50MzIoMCk7aWYoZT09PTMpcmV0dXJuIHQuZ2V0VWludDgoMCkqMioqMTYrdC5nZXRVaW50MTYoMSk7aWYoZT09PTIpcmV0dXJuIHQuZ2V0VWludDE2KDApO2lmKGU9PT0xKXJldHVybiB0LmdldFVpbnQ4KDApfWZ1bmN0aW9uIHBadCh0LGUpe2xldCByPXQubGVuZ3RoLGE9ZS5sZW5ndGg7aWYoYT09PTB8fGE+cilyZXR1cm4tMTtsZXQgcz1yLWE7Zm9yKGxldCBuPTA7bjw9cztuKyspe2xldCBvPSEwO2ZvcihsZXQgbD0wO2w8YTtsKyspaWYodFtuK2xdIT09ZVtsXSl7bz0hMTticmVha31pZihvKXJldHVybiBufXJldHVybi0xfWZ1bmN0aW9uIEx4YSh0LGUpe3JldHVybiBwWnQodCxlKSE9PS0xfXZhciB1eGEscHhhLGZ4YSxpWnQseXhhLHNadCxDeGEsblp0LGZadD11KCgpPT57dXhhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcscHhhPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixmeGE9IltvYmplY3QgQXJyYXlCdWZmZXJdIjtpKGFadCwiaXNUeXBlIik7aShNX2UsImlzVWludDhBcnJheSIpO2koaHhhLCJpc0FycmF5QnVmZmVyIik7aShteGEsImlzVWludDhBcnJheU9yQXJyYXlCdWZmZXIiKTtpKGxwLCJhc3NlcnRVaW50OEFycmF5Iik7aShvWnQsImFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyIik7aShneGEsInRvVWludDhBcnJheSIpO2koYnhhLCJjb25jYXRVaW50OEFycmF5cyIpO2koeHhhLCJhcmVVaW50OEFycmF5c0VxdWFsIik7aSh2eGEsImNvbXBhcmVVaW50OEFycmF5cyIpO2ladD17dXRmODpuZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcigidXRmOCIpfTtpKGxadCwidWludDhBcnJheVRvU3RyaW5nIik7aShzeiwiYXNzZXJ0U3RyaW5nIik7eXhhPW5ldyBnbG9iYWxUaGlzLlRleHRFbmNvZGVyO2koY1p0LCJzdHJpbmdUb1VpbnQ4QXJyYXkiKTtpKHd4YSwiYmFzZTY0VG9CYXNlNjRVcmwiKTtpKGt4YSwiYmFzZTY0VXJsVG9CYXNlNjQiKTtzWnQ9NjU1MzU7aShkWnQsInVpbnQ4QXJyYXlUb0Jhc2U2NCIpO2kodVp0LCJiYXNlNjRUb1VpbnQ4QXJyYXkiKTtpKFN4YSwic3RyaW5nVG9CYXNlNjQiKTtpKE14YSwiYmFzZTY0VG9TdHJpbmciKTtDeGE9QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKHQsZSk9PmUudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSk7aSh6eGEsInVpbnQ4QXJyYXlUb0hleCIpO25adD17MDowLDE6MSwyOjIsMzozLDQ6NCw1OjUsNjo2LDc6Nyw4OjgsOTo5LGE6MTAsYjoxMSxjOjEyLGQ6MTMsZToxNCxmOjE1LEE6MTAsQjoxMSxDOjEyLEQ6MTMsRToxNCxGOjE1fTtpKF94YSwiaGV4VG9VaW50OEFycmF5Iik7aShUeGEsImdldFVpbnRCRSIpO2kocFp0LCJpbmRleE9mIik7aShMeGEsImluY2x1ZGVzIil9KTt2YXIgaFp0PXUoKCk9PntmWnQoKX0pO3ZhciBEdj17fTtWZShEdix7YmFzZTY0VG9VaW50OEFycmF5OigpPT5FeGEsZW5zdXJlUHVyZVVpbnQ4QXJyYXk6KCk9Pk54YSxpc0J1ZmZlckxpa2U6KCk9PlB4YSxpc1VpbnQ4QXJyYXk6KCk9Pkl4YSx1SW50OEFycmF5RXh0cmFzOigpPT4keGEsdUludDhBcnJheVRvQmFzZTY0OigpPT5BeGF9KTtmdW5jdGlvbiBBeGEodCl7cmV0dXJuIGNwLnVpbnQ4QXJyYXlUb0Jhc2U2NCh0KX1mdW5jdGlvbiBFeGEodCl7cmV0dXJuIGNwLmJhc2U2NFRvVWludDhBcnJheSh0KX1mdW5jdGlvbiBQeGEodCl7cmV0dXJuIHQmJnR5cGVvZiB0LmJ5dGVMZW5ndGg9PSJudW1iZXIiPyEwOnR5cGVvZiBCdWZmZXI8InUiJiZCdWZmZXIuaXNCdWZmZXI/QnVmZmVyLmlzQnVmZmVyKHQpOiExfWZ1bmN0aW9uIE54YSh0KXtsZXQgZT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCk7cmV0dXJuIGUuc2V0KHQpLGV9dmFyICR4YSxJeGEsbVp0PXUoKCk9PntoWnQoKTskeGE9Y3A7aShBeGEsInVJbnQ4QXJyYXlUb0Jhc2U2NCIpO2koRXhhLCJiYXNlNjRUb1VpbnQ4QXJyYXkiKTtJeGE9aSh0PT5jcC5pc1VpbnQ4QXJyYXkodCksImlzVWludDhBcnJheSIpO2koUHhhLCJpc0J1ZmZlckxpa2UiKTtpKE54YSwiZW5zdXJlUHVyZVVpbnQ4QXJyYXkiKX0pO3ZhciBuej11KCgpPT57SzEoKX0pO3ZhciBveixlZGU9dSgoKT0+e256KCk7b3o9Y2xhc3N7c3RhdGlje2kodGhpcywiR3VhcmQiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuZ3VhcmRGdW5jdGlvbj1lLHRoaXMub3B0aW9ucz1yfWFzeW5jIGV4ZWMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuZ3VhcmRGdW5jdGlvbihlKX1hc3luYyBnZXRGYWlsZWRIaW50KGUpe3JldHVybiBhd2FpdCB0aGlzLmV4ZWMoZSk/bnVsbDp0aGlzLm9wdGlvbnMuZmFpbGVkSGludH19fSk7dmFyIGx6LENfZT11KCgpPT57bnooKTtsej1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tpKHRoaXMsIkd1YXJkRXJyb3IiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9Ikd1YXJkRXJyb3IifX19KTt2YXIgY3osel9lPXUoKCk9PntueigpO2VkZSgpO2N6PWNsYXNzIGV4dGVuZHMgb3p7c3RhdGlje2kodGhpcywiR3VhcmRTZXQiKX1jb25zdHJ1Y3RvcihlPVtdKXtzdXBlcihhc3luYyByPT50aGlzLmFsbEd1YXJkc1Bhc3MocikpLHRoaXMuZ3VhcmRzPWV9YXN5bmMgZXhlY0FsbFdpdGhEYXRhKGUscj17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtsZXQgYT1bXTtmb3IobGV0IG4gb2YgdGhpcy5ndWFyZHMpe2xldCBvPW4uZXhlYyhlKTtpZihyLm1vZGU9PT0ic2VyaWFsIiYmYXdhaXQgbyxhLnB1c2gobyksci5zdG9wT25GYWlsJiYhYXdhaXQgbylyZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoYSl9cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGEpfWFzeW5jIGFsbEd1YXJkc1Bhc3MoZSxyPXttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pe3JldHVybihhd2FpdCB0aGlzLmV4ZWNBbGxXaXRoRGF0YShlLHIpKS5ldmVyeShzPT5zKX1hc3luYyBhbnlHdWFyZHNQYXNzKGUpe3JldHVybihhd2FpdCB0aGlzLmV4ZWNBbGxXaXRoRGF0YShlLHttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pKS5zb21lKGE9PmEpfWdldEZhaWxlZEhpbnQoZSl7Zm9yKGxldCByIG9mIHRoaXMuZ3VhcmRzKXtsZXQgYT1yLmdldEZhaWxlZEhpbnQoZSk7aWYoYSlyZXR1cm4gYX19fX0pO3ZhciBkej17fTtWZShkeix7R3VhcmQ6KCk9Pm96LEd1YXJkRXJyb3I6KCk9Pmx6LEd1YXJkU2V0OigpPT5jeixwYXNzR3VhcmRzT3JSZWplY3Q6KCk9Pk94YX0pO3ZhciBPeGEsZ1p0PXUoKCk9PntueigpO2VkZSgpO0NfZSgpO2VkZSgpO3pfZSgpO3pfZSgpO0NfZSgpO094YT1pKGFzeW5jKHQsZSk9PntsZXQgcj1uZXcgY3ooZSk7aWYoIWF3YWl0IHIuYWxsR3VhcmRzUGFzcyh0KSl7bGV0IHM9YXdhaXQgci5nZXRGYWlsZWRIaW50KHQpO3Rocm93IG5ldyBseihgR3VhcmRzIGZhaWxlZDoKJHtzfQogICAgYCl9fSwicGFzc0d1YXJkc09yUmVqZWN0Iil9KTt2YXIgJHYsX19lPXUoKCk9Pnskdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbnRlcmNlcHRvck1hbmFnZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YWRkUmVxdWVzdEludGVyY2VwdG9yKGUpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycy5wdXNoKGUpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5wdXNoKGUpfWFkZEVycm9ySW50ZXJjZXB0b3IoZSl7dGhpcy5lcnJvckludGVyY2VwdG9ycy5wdXNoKGUpfXJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcihlKXtsZXQgcj10aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuaW5kZXhPZihlKTtyPi0xJiZ0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuc3BsaWNlKHIsMSl9cmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcihlKXtsZXQgcj10aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7cj4tMSYmdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5zcGxpY2UociwxKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpe2xldCByPXRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuaW5kZXhPZihlKTtyPi0xJiZ0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnNwbGljZShyLDEpfWNsZWFyQWxsKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hc3luYyBwcm9jZXNzUmVxdWVzdChlKXtsZXQgcj1lO2ZvcihsZXQgYSBvZiB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgYShyKX1jYXRjaChzKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihzIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc1Jlc3BvbnNlKGUpe2xldCByPWU7Zm9yKGxldCBhIG9mIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgYShyKX1jYXRjaChzKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihzIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc0Vycm9yKGUpe2xldCByPWU7Zm9yKGxldCBhIG9mIHRoaXMuZXJyb3JJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgYShyKX1jYXRjaChzKXtyPXMgaW5zdGFuY2VvZiBFcnJvcj9zOm5ldyBFcnJvcihTdHJpbmcocykpfXJldHVybiByfWdldEludGVyY2VwdG9yQ291bnRzKCl7cmV0dXJue3JlcXVlc3Q6dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmxlbmd0aCxyZXNwb25zZTp0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmxlbmd0aCxlcnJvcjp0aGlzLmVycm9ySW50ZXJjZXB0b3JzLmxlbmd0aH19fX0pO3ZhciBiWnQ9dSgoKT0+e0sxKCl9KTt2YXIgeFp0PXUoKCk9Pnt9KTt2YXIgVF9lLHZadD11KCgpPT57Ylp0KCk7eFp0KCk7VF9lPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0ZW52Iil9Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUoZSl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoZS5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShlLndlYlVybEFyZyxlLmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUoZSxyKXtpZighdGhpcy5pc05vZGUmJiF0aGlzLmlzRGVubyYmIXRoaXMuaXNCdW4pe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgc2VydmVyIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7ZX0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBhPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHtlfScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihhKSxhfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUoZSxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKGUpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2goZSk7bGV0IGE9JHQuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKGUpLGEucmVzb2x2ZSgpO2Vsc2V7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cy5vbmxvYWQ9KCk9PnthLnJlc29sdmUoKX0scy5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpfXJldHVybiBhd2FpdCBhLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBnbG9iYWxUaGlzLkRlbm88InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5EZW5vPy52ZXJzaW9uPCJ1Ij8iZGVubyI6dHlwZW9mIGdsb2JhbFRoaXMuQnVuPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuQnVuPy52ZXJzaW9uPCJ1Ij8iYnVuIjp0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/Lm5vZGU8InUiPyJub2RlIjoodHlwZW9mIGdsb2JhbFRoaXMud2luZG93PCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuZG9jdW1lbnQ8InUiLCJicm93c2VyIil9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnJvd3NlciJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IGlzRGVubygpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iZGVubyJ9Z2V0IGlzQnVuKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJidW4ifWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc05vZGU/cHJvY2Vzcy52ZXJzaW9uOiJ1bmRlZmluZWQifWdldCBkZW5vVmVyc2lvbigpe3JldHVybiB0aGlzLmlzRGVubz9nbG9iYWxUaGlzLkRlbm8udmVyc2lvbi5kZW5vOiJ1bmRlZmluZWQifWdldCBidW5WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNCdW4/Z2xvYmFsVGhpcy5CdW4udmVyc2lvbjoidW5kZWZpbmVkIn1hc3luYyBnZXRTYWZlTW9kdWxlRm9yKGUscixhKXtsZXQgcztpZihBcnJheS5pc0FycmF5KGUpP3M9ZS5mbGF0TWFwKG49Pm49PT0ic2VydmVyIj9bIm5vZGUiLCJkZW5vIiwiYnVuIl06W25dKTplPT09InNlcnZlciI/cz1bIm5vZGUiLCJkZW5vIiwiYnVuIl06cz1bZV0sIXMuaW5jbHVkZXModGhpcy5ydW50aW1lRW52KSl7Y29uc29sZS53YXJuKGBNb2R1bGUgIiR7cn0iIHJlcXVlc3RlZCBmb3IgcnVudGltZShzKSBbJHtzLmpvaW4oIiwgIil9XSBidXQgY3VycmVudCBydW50aW1lIGlzICIke3RoaXMucnVudGltZUVudn0iLiBTa2lwcGluZyBsb2FkLmApO3JldHVybn1pZih0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4pcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUocik7aWYodGhpcy5pc0Jyb3dzZXIpe2lmKCFhKXtjb25zb2xlLmVycm9yKGBCcm93c2VyIG1vZHVsZSBsb2FkIHJlcXVpcmVzIGdldEZ1bmN0aW9uIHBhcmFtZXRlciBmb3IgIiR7cn0iYCk7cmV0dXJufXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUocixhKX19Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6dGhpcy5pc0Rlbm8/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIERFTk8iKSxjb25zb2xlLmxvZygiZGVubyB2ZXJzaW9uIGlzICIrdGhpcy5kZW5vVmVyc2lvbikpOnRoaXMuaXNCdW4/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJVTiIpLGNvbnNvbGUubG9nKCJidW4gdmVyc2lvbiBpcyAiK3RoaXMuYnVuVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgSzI9e307VmUoSzIse1NtYXJ0ZW52OigpPT5UX2V9KTt2YXIgdXo9dSgoKT0+e3ZadCgpfSk7dmFyIExfZSxBdj11KCgpPT57TF9lPUdhKEtsZSgpLDEpfSk7dmFyIHRkZT17fTtWZSh0ZGUse2NyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZzooKT0+VnhhLGNyZWF0ZVJhbmRvbVN0cmluZzooKT0+cXhhfSk7dmFyIEJ4YSxIeGEscXhhLFZ4YSx5WnQ9dSgoKT0+e0F2KCk7QnhhPWkoKHQsZSk9PntpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiZnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2xldCByPWUtdCxhPW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpLHQrYVswXSVyfWVsc2UgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KSkrdH0sImdldFJhbmRvbUludCIpLEh4YT1pKCh0LGUscik9PntsZXQgYT17QToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGE6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwwOiIwMTIzNDU2Nzg5IiwiISI6IiFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/IiwiKiI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8ifSxzPXQ7ZSYmZT50Lmxlbmd0aD9zPXQucmVwZWF0KE1hdGguY2VpbChlL3QubGVuZ3RoKSkuc2xpY2UoMCxlKTplJiYocz10LnNsaWNlKDAsZSkpO2xldCBuPSIiO2ZvcihsZXQgbyBvZiBzKWlmKGFbb10pe2xldCBsPWFbb10sYz1CeGEoMCxsLmxlbmd0aCk7bis9bFtjXX1lbHNlIG4rPW87cmV0dXJuIG59LCJjdXN0b21SYW5kb21hdGljIikscXhhPWkoKHQsZSxyKT0+SHhhKHQsZSxyKSwiY3JlYXRlUmFuZG9tU3RyaW5nIiksVnhhPWkoKCk9PkxfZS51bmkoKSwiY3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nIil9KTt2YXIgcmRlPXt9O1ZlKHJkZSx7bWFrZUVudk9iamVjdDooKT0+anhhfSk7dmFyIGp4YSx3WnQ9dSgoKT0+e0F2KCk7anhhPWkoZnVuY3Rpb24odCl7bGV0IGU9e30scj0vKC4qKT0oLiopLztpZih0eXBlb2YgdDwidSIpZm9yKGxldCBhIGluIHQpe2xldCBzPXIuZXhlYyh0W2FdKTtlW3NbMV1dPXNbMl19cmV0dXJuIGV9LCJtYWtlRW52T2JqZWN0Iil9KTt2YXIgZzY9e307VmUoZzYse2luZGVudDooKT0+V3hhLGluZGVudFdpdGhQcmVmaXg6KCk9Pkd4YSxub3JtYWxpemU6KCk9Pll4YX0pO3ZhciBEX2UsJF9lLFV4YSxXeGEsR3hhLFl4YSxrWnQ9dSgoKT0+e0F2KCk7RF9lPWkodD0+e2xldCBlPXQuc3BsaXQoYApgKTtyZXR1cm4gVXhhKGUpfSwic3BsaXRTdHJpbmdBdExpbmVCcmVhayIpLCRfZT1pKHQ9PntsZXQgZT0iIjtmb3IobGV0IHIgb2YgdCllPWUrcitgCmA7cmV0dXJuIGV9LCJqb2luU3RyaW5nV2l0aExpbmVCcmVha3MiKSxVeGE9aSh0PT57bGV0IGU9L15bXHNdKiQvO3JldHVybiBlLnRlc3QodFswXSkmJnQuc2hpZnQoKSxlLnRlc3QodFt0Lmxlbmd0aC0xXSkmJnQucG9wKCksdH0sImNsZWFuU3RyaW5nQXJyYXkiKSxXeGE9aSgodCxlKT0+e2xldCByPURfZSh0KTtmb3IobGV0IHMgb2YgcilzPSIgIi5yZXBlYXQoZSkrcztyZXR1cm4gJF9lKHIpfSwiaW5kZW50IiksR3hhPWkoKHQsZSk9PntsZXQgcixhPURfZSh0KSxzPVtdO2ZvcihsZXQgbiBvZiBhKXMucHVzaChlK24pO3JldHVybiByPSRfZShzKSxyfSwiaW5kZW50V2l0aFByZWZpeCIpLFl4YT1pKHQ9PntsZXQgZSxyPURfZSh0KSxhLHM9L14oXHMqKS8sbj0vXihccyopJC87Zm9yKGxldCBsIG9mIHIpe2xldCBjPXMuZXhlYyhsKVsxXTsodHlwZW9mIGE+InUifHxjLmxlbmd0aDxhKSYmIW4udGVzdChsKSYmKGE9Yy5sZW5ndGgpfWxldCBvPVtdO2ZvcihsZXQgbCBvZiByKW8ucHVzaChsLnN1YnN0cihhKSk7cmV0dXJuIGU9JF9lKG8pLGV9LCJub3JtYWxpemUiKX0pO3ZhciBhZGU9e307VmUoYWRlLHtyZXBsYWNlQWxsOigpPT5TWnQsc3RhbmRhcmQ6KCk9Plp4YX0pO3ZhciBTWnQsS3hhLFp4YSxNWnQ9dSgoKT0+e1NadD1pKCh0LGUscik9PnQucmVwbGFjZShuZXcgUmVnRXhwKGUsImciKSxyKSwicmVwbGFjZUFsbCIpLEt4YT1pKHQ9PntsZXQgZT10LnNwbGl0KGAKYCkscj0xLzA7Zm9yKGxldCBhIG9mIGUpaWYoYS50cmltKCkubGVuZ3RoPjApe2xldCBzPWEubWF0Y2goL14oXHMqKS8pO3MmJihyPU1hdGgubWluKHIsc1sxXS5sZW5ndGgpKX1yZXR1cm4gcj09PTEvMHx8cj09PTA/dDplLm1hcChhPT5hLmxlbmd0aD49cj9hLnNsaWNlKHIpOmEpLmpvaW4oYApgKX0sInN0cmlwSW5kZW50IiksWnhhPWkoKHQsZSk9PntsZXQgcj10O3JldHVybighZXx8ZS5zdHJpcEluZGVudCkmJihyPUt4YShyKSksKCFlfHxlLm5vcm1hbGl6ZU5ld2xpbmUpJiYocj1yLnJlcGxhY2UoL1xyXG4vZyxgCmApKSwoIWV8fGUucmVwbGFjZVRhYnMpJiYocj1TWnQociwiCS8iLCIgIikpLCghZXx8ZS5zdHJpcExlYWRpbmdUcmFpbGluZ0VtcHR5TGluZXMpJiYocj1yLnJlcGxhY2UoL15ccypbXHJcbl0vZ20sIiIpLnJlcGxhY2UoL1xzKltcclxuXSQvZ20sIiIpKSwoIWV8fGUuc3RyaXBBbGxFbXB0eUxpbmVzKSYmKHI9ci5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKSkscn0sInN0YW5kYXJkIil9KTt2YXIgQV9lLGlkZSxFdixFX2U9dSgoKT0+e0FfZT17ZW5jb2RlOmkodD0+e2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbSh0LCJ1dGY4IikudG9TdHJpbmcoImJhc2U2NCIpO2lmKHR5cGVvZiBidG9hPCJ1Iil7bGV0IGU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpLHI9QXJyYXkuZnJvbShlLGE9PlN0cmluZy5mcm9tQ2hhckNvZGUoYSkpLmpvaW4oIiIpO3JldHVybiBidG9hKHIpfWVsc2V7bGV0IGU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLHI9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpLGE9IiIscz0wO2Zvcig7czxyLmxlbmd0aDspe2xldCBuPXJbcysrXSxvPXM8ci5sZW5ndGg/cltzKytdOjAsbD1zPHIubGVuZ3RoP3JbcysrXTowLGM9bjw8MTZ8bzw8OHxsO2ErPWUuY2hhckF0KGM+PjE4JjYzKSxhKz1lLmNoYXJBdChjPj4xMiY2MyksYSs9cy0yPHIubGVuZ3RoP2UuY2hhckF0KGM+PjYmNjMpOiI9IixhKz1zLTE8ci5sZW5ndGg/ZS5jaGFyQXQoYyY2Myk6Ij0ifXJldHVybiBhfX0sImVuY29kZSIpLGRlY29kZTppKHQ9PntsZXQgZT10LnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpLnBhZEVuZCh0Lmxlbmd0aCsoNC10Lmxlbmd0aCU0KSU0LCI9Iik7aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpLnRvU3RyaW5nKCJ1dGY4Iik7aWYodHlwZW9mIGF0b2I8InUiKXtsZXQgcj1hdG9iKGUpLGE9bmV3IFVpbnQ4QXJyYXkoci5sZW5ndGgpO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7cysrKWFbc109ci5jaGFyQ29kZUF0KHMpO3JldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYSl9ZWxzZXtsZXQgcj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsYT1bXSxzPTA7Zm9yKDtzPGUubGVuZ3RoOyl7bGV0IG49ci5pbmRleE9mKGUuY2hhckF0KHMrKykpLG89ci5pbmRleE9mKGUuY2hhckF0KHMrKykpLGw9ci5pbmRleE9mKGUuY2hhckF0KHMrKykpLGM9ci5pbmRleE9mKGUuY2hhckF0KHMrKykpLGQ9bjw8MTh8bzw8MTJ8bDw8NnxjO2EucHVzaChkPj4xNiYyNTUpLGwhPT02NCYmYS5wdXNoKGQ+PjgmMjU1KSxjIT09NjQmJmEucHVzaChkJjI1NSl9cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShuZXcgVWludDhBcnJheShhKSl9fSwiZGVjb2RlIil9LGlkZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJCYXNlNjQiKX1jb25zdHJ1Y3RvcihlLHIpe3N3aXRjaChyKXtjYXNlInN0cmluZyI6dGhpcy5yZWZTdHJpbmc9ZTticmVhaztjYXNlImJhc2U2NCI6dGhpcy5yZWZTdHJpbmc9RXYuZGVjb2RlKGUpO2JyZWFrO2Nhc2UiYmFzZTY0dXJpIjp0aGlzLnJlZlN0cmluZz1Fdi5kZWNvZGUoZSl9fWdldCBzaW1wbGVTdHJpbmcoKXtyZXR1cm4gdGhpcy5yZWZTdHJpbmd9Z2V0IGJhc2U2NFN0cmluZygpe3JldHVybiBFdi5lbmNvZGUodGhpcy5yZWZTdHJpbmcpfWdldCBiYXNlNjRVcmlTdHJpbmcoKXtyZXR1cm4gRXYuZW5jb2RlVXJpKHRoaXMucmVmU3RyaW5nKX19LEV2PXtlbmNvZGU6aSh0PT5BX2UuZW5jb2RlKHQpLCJlbmNvZGUiKSxlbmNvZGVVcmk6aSh0PT5BX2UuZW5jb2RlKHQpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPS9nLCIiKSwiZW5jb2RlVXJpIiksZGVjb2RlOmkodD0+QV9lLmRlY29kZSh0KSwiZGVjb2RlIiksaXNCYXNlNjQ6aSh0PT4vXihbQS1aYS16MC05Ky9dezR9KSooW0EtWmEtejAtOSsvXXszfT18W0EtWmEtejAtOSsvXXsyfT09KT8kLy50ZXN0KHQpLCJpc0Jhc2U2NCIpfX0pO3ZhciBzZGU9e307VmUoc2RlLHtpc0Jhc2U2NDooKT0+WHhhLGlzVXRmODooKT0+UXhhfSk7dmFyIFF4YSxYeGEsQ1p0PXUoKCk9PntBdigpO0VfZSgpO1F4YT1pKHQ9PntsZXQgcj1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT0wO2Zvcig7YTxyLmxlbmd0aDspe2lmKHJbYV09PT05fHxyW2FdPT09MTB8fHJbYV09PT0xM3x8MzI8PXJbYV0mJnJbYV08PTEyNil7YSs9MTtjb250aW51ZX1pZigxOTQ8PXJbYV0mJnJbYV08PTIyMyYmMTI4PD1yW2ErMV0mJnJbYSsxXTw9MTkxKXthKz0yO2NvbnRpbnVlfWlmKHJbYV09PT0yMjQmJjE2MDw9clthKzFdJiZyW2ErMV08PTE5MSYmMTI4PD1yW2ErMl0mJnJbYSsyXTw9MTkxfHwoMjI1PD1yW2FdJiZyW2FdPD0yMzZ8fHJbYV09PT0yMzh8fHJbYV09PT0yMzkpJiYxMjg8PXJbYSsxXSYmclthKzFdPD0xOTEmJjEyODw9clthKzJdJiZyW2ErMl08PTE5MXx8clthXT09PTIzNyYmMTI4PD1yW2ErMV0mJnJbYSsxXTw9MTU5JiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTEpe2ErPTM7Y29udGludWV9aWYoclthXT09PTI0MCYmMTQ0PD1yW2ErMV0mJnJbYSsxXTw9MTkxJiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTEmJjEyODw9clthKzNdJiZyW2ErM108PTE5MXx8MjQxPD1yW2FdJiZyW2FdPD0yNDMmJjEyODw9clthKzFdJiZyW2ErMV08PTE5MSYmMTI4PD1yW2ErMl0mJnJbYSsyXTw9MTkxJiYxMjg8PXJbYSszXSYmclthKzNdPD0xOTF8fHJbYV09PT0yNDQmJjEyODw9clthKzFdJiZyW2ErMV08PTE0MyYmMTI4PD1yW2ErMl0mJnJbYSsyXTw9MTkxJiYxMjg8PXJbYSszXSYmclthKzNdPD0xOTEpe2ErPTQ7Y29udGludWV9cmV0dXJuITF9cmV0dXJuITB9LCJpc1V0ZjgiKSxYeGE9aSh0PT57bGV0IGU9L1teQS1aMC05K1wvPV0vaSxyPXQubGVuZ3RoO2lmKCFyfHxyJTQhPT0wfHxlLnRlc3QodCkpcmV0dXJuITE7bGV0IGE9dC5pbmRleE9mKCI9Iik7cmV0dXJuIGE9PT0tMXx8YT09PXItMXx8YT09PXItMiYmdFtyLTFdPT09Ij0ifSwiaXNCYXNlNjQiKX0pO3ZhciBuZGUselp0PXUoKCk9PntuZGU9Y2xhc3N7c3RhdGlje2kodGhpcywiRG9tYWluIil9Y29uc3RydWN0b3IoZSl7dGhpcy5wcm90b2NvbD10aGlzLl9wcm90b2NvbFJlZ2V4KGUpLHRoaXMucHJvdG9jb2x8fChlPWBodHRwczovLyR7ZX1gKSx0aGlzLm5vZGVQYXJzZWRVcmw9bmV3IFVSTChlKSx0aGlzLnBvcnQ9dGhpcy5ub2RlUGFyc2VkVXJsLnBvcnQ7bGV0IHI9dGhpcy5fZG9tYWluUmVnZXgoZS5yZXBsYWNlKHRoaXMubm9kZVBhcnNlZFVybC5wYXRobmFtZSwiIikpO3RoaXMuZnVsbE5hbWU9IiI7Zm9yKGxldCBhPTE7YTw9NTthKyspaWYoclthLTFdKXtsZXQgcz1yW2EtMV07dGhpc1sibGV2ZWwiK2EudG9TdHJpbmcoKV09cyx0aGlzLmZ1bGxOYW1lPT09IiI/dGhpcy5mdWxsTmFtZT1zOnRoaXMuZnVsbE5hbWU9cysiLiIrdGhpcy5mdWxsTmFtZX1lbHNlIHRoaXNbImxldmVsIithLnRvU3RyaW5nKCldPXZvaWQgMDt0aGlzLnpvbmVOYW1lPXRoaXMubGV2ZWwyKyIuIit0aGlzLmxldmVsMSx0aGlzLnRvcExldmVsPXRoaXMubGV2ZWwxLHRoaXMuZG9tYWluTmFtZT10aGlzLmxldmVsMix0aGlzLnN1YkRvbWFpbj10aGlzLmxldmVsM31fZG9tYWluUmVnZXgoZSl7bGV0IGE9LyhbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9JC8uZXhlYyhlKTtyZXR1cm4gYS5yZXZlcnNlKCksYS5wb3AoKSxhLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbiE9PSIifSl9X3Byb3RvY29sUmVnZXgoZSl7bGV0IGE9L14oW2EtekEtWjAtOV0qKTpcL1wvLy5leGVjKGUpO2lmKGEpcmV0dXJuIGFbMV19X3BvcnRSZWdleChlKXtsZXQgYT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYoYSlyZXR1cm4gYVsxXX19fSk7dmFyIG9kZSxKeGEsX1p0LFRadD11KCgpPT57QXYoKTtvZGU9Y2xhc3N7c3RhdGlje2kodGhpcywiR2l0UmVwbyIpfWNvbnN0cnVjdG9yKGUscil7bGV0IGE9SnhhKGUpO3RoaXMuaG9zdD1hWzFdLHRoaXMudXNlcj1hWzJdLHRoaXMucmVwbz1hWzNdLHRoaXMuYWNjZXNzVG9rZW49cix0aGlzLnNzaFVybD1fWnQodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwic3NoIiksdGhpcy5odHRwc1VybD1fWnQodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwiaHR0cHMiKX19LEp4YT1pKGZ1bmN0aW9uKHQpe3JldHVybi8oW2EtekEtWjAtOVwtX1wuXSopKD86XC98XDopKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvKShbYS16QS1aMC05XC1fXC5dKikoPzpcLmdpdCkvLmV4ZWModCl9LCJnaXRSZWdleCIpLF9adD1pKGZ1bmN0aW9uKHQsZSxyLGE9IiIscyl7bGV0IG47c3dpdGNoKGEhPT0iIiYmKGE9YSsiQCIpLHMpe2Nhc2UiaHR0cHMiOm49Imh0dHBzOi8vIithK3QrIi8iK2UrIi8iK3IrIi5naXQiO2JyZWFrO2Nhc2Uic3NoIjpuPSJnaXRAIit0KyI6IitlKyIvIityKyIuZ2l0IjticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIkxpbmsgVHlwZSAiK3MrIiBub3Qga25vd24iKTticmVha31yZXR1cm4gbn0sImdpdExpbmsiKX0pO3ZhciBaMj17fTtWZShaMix7QmFzZTY0OigpPT5pZGUsRG9tYWluOigpPT5uZGUsR2l0UmVwbzooKT0+b2RlLGJhc2U2NDooKT0+RXYsY3JlYXRlOigpPT50ZGUsZG9ja2VyOigpPT5yZGUsaW5kZW50OigpPT5nNixub3JtYWxpemU6KCk9PmFkZSx0eXBlOigpPT5zZGV9KTt2YXIgbGRlPXUoKCk9Pnt5WnQoKTt3WnQoKTtrWnQoKTtNWnQoKTtDWnQoKTtFX2UoKTt6WnQoKTtUWnQoKX0pO3ZhciBEWnQ9TnQoKE9hbixMWnQpPT57InVzZSBzdHJpY3QiO0xadC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9e30pLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT17Y21wOmV9KTt2YXIgcj10eXBlb2YgZS5jeWNsZXM9PSJib29sZWFuIj9lLmN5Y2xlczohMSxhPWUuY21wJiYoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihsLGMpe3ZhciBkPXtrZXk6bCx2YWx1ZTpvW2xdfSxmPXtrZXk6Yyx2YWx1ZTpvW2NdfTtyZXR1cm4gbihkLGYpfX19KShlLmNtcCkscz1bXTtyZXR1cm4gaSgoZnVuY3Rpb24gbihvKXtpZihvJiZvLnRvSlNPTiYmdHlwZW9mIG8udG9KU09OPT0iZnVuY3Rpb24iJiYobz1vLnRvSlNPTigpKSxvIT09dm9pZCAwKXtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG8pPyIiK286Im51bGwiO2lmKHR5cGVvZiBvIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7dmFyIGwsYztpZihBcnJheS5pc0FycmF5KG8pKXtmb3IoYz0iWyIsbD0wO2w8by5sZW5ndGg7bCsrKWwmJihjKz0iLCIpLGMrPW4ob1tsXSl8fCJudWxsIjtyZXR1cm4gYysiXSJ9aWYobz09PW51bGwpcmV0dXJuIm51bGwiO2lmKHMuaW5kZXhPZihvKSE9PS0xKXtpZihyKXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBkPXMucHVzaChvKS0xLGY9T2JqZWN0LmtleXMobykuc29ydChhJiZhKG8pKTtmb3IoYz0iIixsPTA7bDxmLmxlbmd0aDtsKyspe3ZhciBwPWZbbF0saD1uKG9bcF0pO2gmJihjJiYoYys9IiwiKSxjKz1KU09OLnN0cmluZ2lmeShwKSsiOiIraCl9cmV0dXJuIHMuc3BsaWNlKGQsMSksInsiK2MrIn0ifX0pLCJzdHJpbmdpZnkiKSh0KX19KTt2YXIgJFp0LGNkZSxJX2U9dSgoKT0+e3V6KCk7bGRlKCk7JFp0PUdhKERadCgpLDEpLGNkZT0kWnQuZGVmYXVsdH0pO2Z1bmN0aW9uIHR2YSh0KXtsZXQgZT1BWnQoKTtyZXR1cm4gZT9lLmZyb20odCkudG9TdHJpbmcoImJhc2U2NCIpOmJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi50KSl9ZnVuY3Rpb24gcnZhKHQpe2xldCBlPUFadCgpO2lmKGUpe2xldCByPWUuZnJvbSh0LCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoci5idWZmZXIsci5ieXRlT2Zmc2V0LHIuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYih0KSkubWFwKHI9PnIuY2hhckNvZGVBdCgwKSkpfWZ1bmN0aW9uIE5fZSh0LGUpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0LGRkZSxlKX1mdW5jdGlvbiBPX2UodCl7cmV0dXJuIEpTT04ucGFyc2UodCxFWnQpfWZ1bmN0aW9uIGF2YSh0KXtyZXR1cm4gUFp0KHQpJiZ0LnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJlBfZSh0LmRhdGEpfWZ1bmN0aW9uIGl2YSh0KXtyZXR1cm4gUFp0KHQpJiZ0LnR5cGU9PT0iQnVmZmVyIiYmKEladCh0LmRhdGEpfHxQX2UodC5kYXRhKSl8fHQgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIEladCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KX1mdW5jdGlvbiBQX2UodCl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIn1mdW5jdGlvbiBQWnQodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGx9dmFyIEFadCxkZGUsRVp0LE5adD11KCgpPT57SV9lKCk7QVp0PWkoKCk9Pmdsb2JhbFRoaXMuQnVmZmVyLCJnZXROb2RlQnVmZmVyIik7aSh0dmEsImJhc2U2NEVuY29kZSIpO2kocnZhLCJiYXNlNjREZWNvZGUiKTtpKE5fZSwic3RyaW5naWZ5Iik7aShPX2UsInBhcnNlIik7ZGRlPWkoKHQsZSk9PntpZihpdmEoZSkpe2xldCByO2lmKCJkYXRhImluIGUmJkladChlLmRhdGEpKXI9bmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXI9ZTtlbHNlIHJldHVybiBlO3JldHVybnt0eXBlOiJFbmNvZGVkQnVmZmVyIixkYXRhOiJiYXNlNjQ6Iit0dmEocil9fXJldHVybiBlfSwicmVwbGFjZXIiKSxFWnQ9aSgodCxlKT0+e2lmKGF2YShlKSYmUF9lKGUuZGF0YSkmJmUuZGF0YS5zdGFydHNXaXRoKCJiYXNlNjQ6Iikpe2xldCByPWUuZGF0YS5zbGljZSg3KTtyZXR1cm4gcnZhKHIpfXJldHVybiBlfSwicmV2aXZlciIpO2koYXZhLCJpc0VuY29kZWRCdWZmZXIiKTtpKGl2YSwiaXNCdWZmZXJMaWtlIik7aShJWnQsImlzQXJyYXkiKTtpKFBfZSwiaXNTdHJpbmciKTtpKFBadCwiaXNPYmplY3QiKX0pO3ZhciBRcz17fTtWZShRcyx7U21hcnRqc29uOigpPT5GX2UsZGVlcEVxdWFsSnNvbkxTdHJpbmdzOigpPT5wdmEsZGVlcEVxdWFsT2JqZWN0czooKT0+T1p0LGZvbGREZWM6KCk9PnV2YSxwYXJzZTooKT0+dWRlLHBhcnNlQmFzZTY0OigpPT5kdmEscGFyc2VKc29uTDooKT0+Ul9lLHN0YWJsZU9uZVdheVN0cmluZ2lmeTooKT0+b3ZhLHN0cmluZ2lmeTooKT0+YjYsc3RyaW5naWZ5QmFzZTY0OigpPT5jdmEsc3RyaW5naWZ5SnNvbkw6KCk9Pm52YSxzdHJpbmdpZnlQcmV0dHk6KCk9Pmx2YX0pO3ZhciB1ZGUsUl9lLG52YSxvdmEsYjYsbHZhLGN2YSxkdmEsRl9lLHV2YSxPWnQscHZhLEl2PXUoKCk9PntJX2UoKTtOWnQoKTt1ZGU9T19lLFJfZT1pKHQ9PnQuc3BsaXQoYApgKS5yZWR1Y2UoKGEscyk9PntsZXQgbj1zLnRyaW0oKTtyZXR1cm4gbi5sZW5ndGg+MCYmYS5wdXNoKHVkZShuKSksYX0sW10pLCJwYXJzZUpzb25MIiksbnZhPWkodD0+dC5tYXAoZT0+YjYoZSkpLmpvaW4oYApgKSwic3RyaW5naWZ5SnNvbkwiKSxvdmE9aSgodCxlLHI9e30pPT57bGV0IGE9bmV3IFdlYWtTZXQscz1pKGw9PntpZihsPT09bnVsbHx8dHlwZW9mIGwhPSJvYmplY3QiKXJldHVybiBsO2xldCBjPWRkZSgiIixsKTtpZihjJiZjLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBjLmRhdGE9PSJzdHJpbmciKXJldHVybiBjO2lmKGEuaGFzKGwpKXJldHVybiJfX2N5Y2xlX18iO2lmKGEuYWRkKGwpLEFycmF5LmlzQXJyYXkobCkpcmV0dXJuIGwubWFwKGY9PnMoZikpO2xldCBkPXt9O2ZvcihsZXQgZiBvZiBPYmplY3Qua2V5cyhsKSl0cnl7ZFtmXT1zKGxbZl0pfWNhdGNoe2RbZl09Il9fdW5zZXJpYWxpemFibGVfXyJ9cmV0dXJuIGR9LCJzYW5pdGl6ZSIpLG49cyh0KSxvPXsuLi5yLGN5Y2xlczohMH07aWYoZSYmIW8uY21wKXtsZXQgbD1uZXcgTWFwO2UuZm9yRWFjaCgoYyxkKT0+bC5zZXQoYyxkKSksby5jbXA9KGMsZCk9PntsZXQgZj1sLmhhcyhjLmtleSk/bC5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxwPWwuaGFzKGQua2V5KT9sLmdldChkLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBmIT09cD9mLXA6Yy5rZXk8ZC5rZXk/LTE6Yy5rZXk+ZC5rZXk/MTowfX1yZXR1cm4gY2RlKG4sbyl9LCJzdGFibGVPbmVXYXlTdHJpbmdpZnkiKSxiNj1pKCh0LGUscj17fSk9PntsZXQgYT1OX2UodCk7dD1KU09OLnBhcnNlKGEpO2xldCBzPXsuLi5yfTtpZihlJiYhcy5jbXApe2xldCBvPW5ldyBNYXA7ZS5mb3JFYWNoKChsLGMpPT5vLnNldChsLGMpKSxzLmNtcD0obCxjKT0+e2xldCBkPW8uaGFzKGwua2V5KT9vLmdldChsLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGY9by5oYXMoYy5rZXkpP28uZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGQhPT1mP2QtZjpsLmtleTxjLmtleT8tMTpsLmtleT5jLmtleT8xOjB9fXJldHVybiBjZGUodCxzKX0sInN0cmluZ2lmeSIpLGx2YT1pKHQ9PntsZXQgZT1iNih0KSxyPUpTT04ucGFyc2UoZSk7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHIsbnVsbCwyKX0sInN0cmluZ2lmeVByZXR0eSIpLGN2YT1pKCguLi50KT0+e2xldCBlPWI2KC4uLnQpO3JldHVybiBaMi5iYXNlNjQuZW5jb2RlVXJpKGUpfSwic3RyaW5naWZ5QmFzZTY0IiksZHZhPWkodD0+e2xldCBlPVoyLmJhc2U2NCxhPShlLmRlY29kZVVyaXx8ZS5kZWNvZGUpKHQpO3JldHVybiB1ZGUoYSl9LCJwYXJzZUJhc2U2NCIpLEZfZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlNtYXJ0anNvbiIpfXN0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KGUpe2xldCByPW5ldyB0aGlzLGE9ci5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgcyBpbiBlKWEuaW5kZXhPZihzKSE9PS0xJiYocltzXT1lW3NdKTtyZXR1cm4gcn1zdGF0aWMgZW5mb2xkRnJvbUpzb24oZSl7bGV0IHI9dWRlKGUpO3JldHVybiB0aGlzLmVuZm9sZEZyb21PYmplY3Qocil9c2F2ZWFibGVQcm9wZXJ0aWVzPVtdO2ZvbGRUb09iamVjdCgpe2xldCBlPW5ldyBTZXQ7cmV0dXJuIGUuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl7bGV0IHI9e30sYT1pKG49PntpZihuIGluc3RhbmNlb2YgdCl7aWYoZS5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiBlLmFkZChuKSxuLmZvbGRUb09iamVjdEludGVybmFsKGUpfXJldHVybiBBcnJheS5pc0FycmF5KG4pP24ubWFwKG89PmEobykpOnN0cnVjdHVyZWRDbG9uZShuKX0sImZvbGRWYWx1ZSIpLHM9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbiBvZiBzKXtsZXQgbz10aGlzW25dO3Jbbl09YShvKX1yZXR1cm4gcn1mb2xkVG9Kc29uKCl7bGV0IGU9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4gYjYoZSl9fSx1dmE9aSgoKT0+KHQsZSk9PntsZXQgcj1TdHJpbmcoZS5uYW1lKTtlLmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uKCl7dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fCh0aGlzLnNhdmVhYmxlUHJvcGVydGllcz1bXSksdGhpcy5zYXZlYWJsZVByb3BlcnRpZXMuaW5jbHVkZXMocil8fHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2gocil9KX0sImZvbGREZWMiKSxPWnQ9aSgodCxlKT0+e2xldCByPWI2KHQpLGE9YjYoZSk7cmV0dXJuIHI9PT1hfSwiZGVlcEVxdWFsT2JqZWN0cyIpLHB2YT1pKCh0LGUpPT57bGV0IHI9Ul9lKHQpLGE9Ul9lKGUpO3JldHVybiBPWnQocixhKX0sImRlZXBFcXVhbEpzb25MU3RyaW5ncyIpfSk7dmFyIGZ6PXt9O1ZlKGZ6LHtkZWxldGVEQjooKT0+V1p0LG9wZW5EQjooKT0+VVp0LHVud3JhcDooKT0+cHosd3JhcDooKT0+SDB9KTtmdW5jdGlvbiBmdmEoKXtyZXR1cm4gUlp0fHwoUlp0PVtJREJEYXRhYmFzZSxJREJPYmplY3RTdG9yZSxJREJJbmRleCxJREJDdXJzb3IsSURCVHJhbnNhY3Rpb25dKX1mdW5jdGlvbiBodmEoKXtyZXR1cm4gRlp0fHwoRlp0PVtJREJDdXJzb3IucHJvdG90eXBlLmFkdmFuY2UsSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlUHJpbWFyeUtleV0pfWZ1bmN0aW9uIG12YSh0KXtsZXQgZT1uZXcgUHJvbWlzZSgocixhKT0+e2xldCBzPWkoKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSwidW5saXN0ZW4iKSxuPWkoKCk9PntyKEgwKHQucmVzdWx0KSkscygpfSwic3VjY2VzcyIpLG89aSgoKT0+e2EodC5lcnJvcikscygpfSwiZXJyb3IiKTt0LmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLHQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSk7cmV0dXJuIHBkZS5zZXQoZSx0KSxlfWZ1bmN0aW9uIGd2YSh0KXtpZihIX2UuaGFzKHQpKXJldHVybjtsZXQgZT1uZXcgUHJvbWlzZSgocixhKT0+e2xldCBzPWkoKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixuKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixvKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0sInVubGlzdGVuIiksbj1pKCgpPT57cigpLHMoKX0sImNvbXBsZXRlIiksbz1pKCgpPT57YSh0LmVycm9yfHxuZXcgRE9NRXhjZXB0aW9uKCJBYm9ydEVycm9yIiwiQWJvcnRFcnJvciIpKSxzKCl9LCJlcnJvciIpO3QuYWRkRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG4pLHQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pLHQuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSk7SF9lLnNldCh0LGUpfWZ1bmN0aW9uIEJadCh0KXtWX2U9dChWX2UpfWZ1bmN0aW9uIGJ2YSh0KXtyZXR1cm4gaHZhKCkuaW5jbHVkZXModCk/ZnVuY3Rpb24oLi4uZSl7cmV0dXJuIHQuYXBwbHkocHoodGhpcyksZSksSDAodGhpcy5yZXF1ZXN0KX06ZnVuY3Rpb24oLi4uZSl7cmV0dXJuIEgwKHQuYXBwbHkocHoodGhpcyksZSkpfX1mdW5jdGlvbiB4dmEodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2J2YSh0KToodCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiZndmEodCksQl9lKHQsZnZhKCkpP25ldyBQcm94eSh0LFZfZSk6dCl9ZnVuY3Rpb24gSDAodCl7aWYodCBpbnN0YW5jZW9mIElEQlJlcXVlc3QpcmV0dXJuIG12YSh0KTtpZihxX2UuaGFzKHQpKXJldHVybiBxX2UuZ2V0KHQpO2xldCBlPXh2YSh0KTtyZXR1cm4gZSE9PXQmJihxX2Uuc2V0KHQsZSkscGRlLnNldChlLHQpKSxlfWZ1bmN0aW9uIFVadCh0LGUse2Jsb2NrZWQ6cix1cGdyYWRlOmEsYmxvY2tpbmc6cyx0ZXJtaW5hdGVkOm59PXt9KXtsZXQgbz1pbmRleGVkREIub3Blbih0LGUpLGw9SDAobyk7cmV0dXJuIGEmJm8uYWRkRXZlbnRMaXN0ZW5lcigidXBncmFkZW5lZWRlZCIsYz0+e2EoSDAoby5yZXN1bHQpLGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sSDAoby50cmFuc2FjdGlvbiksYyl9KSxyJiZvLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLGM9PnIoYy5vbGRWZXJzaW9uLGMubmV3VmVyc2lvbixjKSksbC50aGVuKGM9PntuJiZjLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+bigpKSxzJiZjLmFkZEV2ZW50TGlzdGVuZXIoInZlcnNpb25jaGFuZ2UiLGQ9PnMoZC5vbGRWZXJzaW9uLGQubmV3VmVyc2lvbixkKSl9KS5jYXRjaCgoKT0+e30pLGx9ZnVuY3Rpb24gV1p0KHQse2Jsb2NrZWQ6ZX09e30pe2xldCByPWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSh0KTtyZXR1cm4gZSYmci5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixhPT5lKGEub2xkVmVyc2lvbixhKSksSDAocikudGhlbigoKT0+e30pfWZ1bmN0aW9uIEhadCh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIElEQkRhdGFiYXNlJiYhKGUgaW4gdCkmJnR5cGVvZiBlPT0ic3RyaW5nIikpcmV0dXJuO2lmKGpfZS5nZXQoZSkpcmV0dXJuIGpfZS5nZXQoZSk7bGV0IHI9ZS5yZXBsYWNlKC9Gcm9tSW5kZXgkLywiIiksYT1lIT09cixzPXl2YS5pbmNsdWRlcyhyKTtpZighKHIgaW4oYT9JREJJbmRleDpJREJPYmplY3RTdG9yZSkucHJvdG90eXBlKXx8IShzfHx2dmEuaW5jbHVkZXMocikpKXJldHVybjtsZXQgbj1pKGFzeW5jIGZ1bmN0aW9uKG8sLi4ubCl7bGV0IGM9dGhpcy50cmFuc2FjdGlvbihvLHM/InJlYWR3cml0ZSI6InJlYWRvbmx5IiksZD1jLnN0b3JlO3JldHVybiBhJiYoZD1kLmluZGV4KGwuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbZFtyXSguLi5sKSxzJiZjLmRvbmVdKSlbMF19LCJtZXRob2QiKTtyZXR1cm4gal9lLnNldChlLG4pLG59YXN5bmMgZnVuY3Rpb24qU3ZhKC4uLnQpe2xldCBlPXRoaXM7aWYoZSBpbnN0YW5jZW9mIElEQkN1cnNvcnx8KGU9YXdhaXQgZS5vcGVuQ3Vyc29yKC4uLnQpKSwhZSlyZXR1cm47ZT1lO2xldCByPW5ldyBQcm94eShlLGt2YSk7Zm9yKFZadC5zZXQocixlKSxwZGUuc2V0KHIscHooZSkpO2U7KXlpZWxkIHIsZT1hd2FpdChVX2UuZ2V0KHIpfHxlLmNvbnRpbnVlKCkpLFVfZS5kZWxldGUocil9ZnVuY3Rpb24galp0KHQsZSl7cmV0dXJuIGU9PT1TeW1ib2wuYXN5bmNJdGVyYXRvciYmQl9lKHQsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlLElEQkN1cnNvcl0pfHxlPT09Iml0ZXJhdGUiJiZCX2UodCxbSURCSW5kZXgsSURCT2JqZWN0U3RvcmVdKX12YXIgQl9lLFJadCxGWnQsSF9lLHFfZSxwZGUsVl9lLHB6LHZ2YSx5dmEsal9lLHd2YSxxWnQsVV9lLFZadCxrdmEsR1p0PXUoKCk9PntCX2U9aSgodCxlKT0+ZS5zb21lKHI9PnQgaW5zdGFuY2VvZiByKSwiaW5zdGFuY2VPZkFueSIpO2koZnZhLCJnZXRJZGJQcm94eWFibGVUeXBlcyIpO2koaHZhLCJnZXRDdXJzb3JBZHZhbmNlTWV0aG9kcyIpO0hfZT1uZXcgV2Vha01hcCxxX2U9bmV3IFdlYWtNYXAscGRlPW5ldyBXZWFrTWFwO2kobXZhLCJwcm9taXNpZnlSZXF1ZXN0Iik7aShndmEsImNhY2hlRG9uZVByb21pc2VGb3JUcmFuc2FjdGlvbiIpO1ZfZT17Z2V0KHQsZSxyKXtpZih0IGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24pe2lmKGU9PT0iZG9uZSIpcmV0dXJuIEhfZS5nZXQodCk7aWYoZT09PSJzdG9yZSIpcmV0dXJuIHIub2JqZWN0U3RvcmVOYW1lc1sxXT92b2lkIDA6ci5vYmplY3RTdG9yZShyLm9iamVjdFN0b3JlTmFtZXNbMF0pfXJldHVybiBIMCh0W2VdKX0sc2V0KHQsZSxyKXtyZXR1cm4gdFtlXT1yLCEwfSxoYXModCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiYoZT09PSJkb25lInx8ZT09PSJzdG9yZSIpPyEwOmUgaW4gdH19O2koQlp0LCJyZXBsYWNlVHJhcHMiKTtpKGJ2YSwid3JhcEZ1bmN0aW9uIik7aSh4dmEsInRyYW5zZm9ybUNhY2hhYmxlVmFsdWUiKTtpKEgwLCJ3cmFwIik7cHo9aSh0PT5wZGUuZ2V0KHQpLCJ1bndyYXAiKTtpKFVadCwib3BlbkRCIik7aShXWnQsImRlbGV0ZURCIik7dnZhPVsiZ2V0IiwiZ2V0S2V5IiwiZ2V0QWxsIiwiZ2V0QWxsS2V5cyIsImNvdW50Il0seXZhPVsicHV0IiwiYWRkIiwiZGVsZXRlIiwiY2xlYXIiXSxqX2U9bmV3IE1hcDtpKEhadCwiZ2V0TWV0aG9kIiksQlp0KHQ9Pih7Li4udCxnZXQ6aSgoZSxyLGEpPT5IWnQoZSxyKXx8dC5nZXQoZSxyLGEpLCJnZXQiKSxoYXM6aSgoZSxyKT0+ISFIWnQoZSxyKXx8dC5oYXMoZSxyKSwiaGFzIil9KSk7d3ZhPVsiY29udGludWUiLCJjb250aW51ZVByaW1hcnlLZXkiLCJhZHZhbmNlIl0scVp0PXt9LFVfZT1uZXcgV2Vha01hcCxWWnQ9bmV3IFdlYWtNYXAsa3ZhPXtnZXQodCxlKXtpZighd3ZhLmluY2x1ZGVzKGUpKXJldHVybiB0W2VdO2xldCByPXFadFtlXTtyZXR1cm4gcnx8KHI9cVp0W2VdPWZ1bmN0aW9uKC4uLmEpe1VfZS5zZXQodGhpcyxWWnQuZ2V0KHRoaXMpW2VdKC4uLmEpKX0pLHJ9fTtpKFN2YSwiaXRlcmF0ZSIpO2koalp0LCJpc0l0ZXJhdG9yUHJvcCIpLEJadCh0PT4oey4uLnQsZ2V0KGUscixhKXtyZXR1cm4galp0KGUscik/U3ZhOnQuZ2V0KGUscixhKX0saGFzKGUscil7cmV0dXJuIGpadChlLHIpfHx0LmhhcyhlLHIpfX0pKX0pO3ZhciBXX2U9dSgoKT0+e0pDKCk7dXooKTtJdigpO0sxKCk7YjQoKTtXMmUoKTtHWnQoKX0pO3ZhciBoeixHX2U9dSgoKT0+e1dfZSgpO2h6PWNsYXNze3N0YXRpY3tpKHRoaXMsIldlYlN0b3JlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5pbml0Q2FsbGVkPSExLHRoaXMucmVhZHlEZWZlcnJlZD0kdC5kZWZlcigpLHRoaXMub3B0aW9ucz1lfWFzeW5jIGluaXQoKXtpZih0aGlzLmluaXRDYWxsZWQpe2F3YWl0IHRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlO3JldHVybn10aGlzLmluaXRDYWxsZWQ9ITA7bGV0IGU9bmV3IEsyLlNtYXJ0ZW52O2lmKCFlLmlzQnJvd3NlciYmIWdsb2JhbFRoaXMuaW5kZXhlZERCJiYoY29uc29sZS5sb2coImhleSIpLGNvbnNvbGUubG9nKGdsb2JhbFRoaXMuaW5kZXhlZERCKSxhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYi9hdXRvIiksIWdsb2JhbFRoaXMuaW5kZXhlZERCKSl7bGV0IHI9YXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIiKTtnbG9iYWxUaGlzLmluZGV4ZWREQj1uZXcgci5JREJGYWN0b3J5fXRoaXMuZGI9YXdhaXQgZnoub3BlbkRCKHRoaXMub3B0aW9ucy5kYk5hbWUsMSx7dXBncmFkZTppKHI9PntyLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfSwidXBncmFkZSIpfSksdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1hc3luYyBnZXQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2hlY2soZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLCEhYXdhaXQgdGhpcy5nZXQoZSl9YXN5bmMgc2V0KGUscil7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIucHV0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUscixlKX1hc3luYyBkZWxldGUoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZGVsZXRlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2xlYXIoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5jbGVhcih0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX1hc3luYyBrZXlzKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0QWxsS2V5cyh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX19fSk7dmFyIFlfZSxLWnQ9dSgoKT0+e0dfZSgpO1dfZSgpO1lfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZHJlcXVlc3RDYWNoZSIpfWNvbnN0cnVjdG9yKGU9ImRlZmF1bHQiKXt0aGlzLndlYnN0b3JlPW5ldyBoeih7ZGJOYW1lOiJ0clN0b3JlIixzdG9yZU5hbWU6YHRyU3RvcmUtJHtlfWB9KX1idWlsZEtleShlKXtyZXR1cm4gUXMuc3RyaW5naWZ5KHttZXRob2Q6ZS5tZXRob2QscmVxdWVzdDplLnJlcXVlc3R9KX1hc3luYyBzZXRCeVJlcXVlc3QoZSl7aWYoIWUucmVzcG9uc2UpdGhyb3cgbmV3IEVycm9yKCJZb3UgY2Fubm90IHN0b3JlIHJlcXVlc3RzIHdpdGhvdXQgYSByZXNwb25zZSBwcmVzZW50Iik7YXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQodGhpcy5idWlsZEtleShlKSxlKX1hc3luYyBnZXRCeVJlcXVlc3QoZSl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KHRoaXMuYnVpbGRLZXkoZSkpfX19KTt2YXIgUTI9e307VmUoUTIse1R5cGVkcmVxdWVzdENhY2hlOigpPT5ZX2UsV2ViU3RvcmU6KCk9Pmh6fSk7dmFyIGZkZT11KCgpPT57S1p0KCk7R19lKCl9KTt2YXIgbXo9dSgoKT0+e3Q2KCk7dXooKTtJdigpO0sxKCk7ZmRlKCl9KTt2YXIgUHYsbWRlPXUoKCk9PntteigpO1B2PWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlU3RvcmUiKX1jb25zdHJ1Y3RvcihlPSJ3ZWJyZXF1ZXN0LXY0IixyPSJjYWNoZSIpe3RoaXMud2Vic3RvcmU9bmV3IFEyLldlYlN0b3JlKHtkYk5hbWU6ZSxzdG9yZU5hbWU6cn0pLHRoaXMuaW5pdFByb21pc2U9dGhpcy5pbml0KCl9YXN5bmMgaW5pdCgpe31nZW5lcmF0ZUNhY2hlS2V5KGUpe2xldCByPWUudXJsLGE9ZS5tZXRob2Q7cmV0dXJuIGE9PT0iR0VUIj9yOmAke2F9OiR7cn1gfWFzeW5jIHNldChlLHIpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQoZSxyKX1hc3luYyBnZXQoZSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KGUpfHxudWxsfWNhdGNoe3JldHVybiBudWxsfX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5jaGVjayhlKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmRlbGV0ZShlKX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5jbGVhcigpfXJlc3BvbnNlRnJvbUNhY2hlRW50cnkoZSl7bGV0IHI9bmV3IEhlYWRlcnMoZS5oZWFkZXJzKTtyZXR1cm4gbmV3IFJlc3BvbnNlKGUucmVzcG9uc2Use3N0YXR1czplLnN0YXR1cyxzdGF0dXNUZXh0OmUuc3RhdHVzVGV4dCxoZWFkZXJzOnJ9KX1hc3luYyBjYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUscixhKXtsZXQgcz1yLmNsb25lKCksbj1hd2FpdCBzLmFycmF5QnVmZmVyKCksbz17fTtyZXR1cm4gcy5oZWFkZXJzLmZvckVhY2goKGwsYyk9PntvW2NdPWx9KSx7cmVzcG9uc2U6bixoZWFkZXJzOm8sdGltZXN0YW1wOkRhdGUubm93KCksZXRhZzphPy5ldGFnfHxzLmhlYWRlcnMuZ2V0KCJldGFnIil8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6YT8ubGFzdE1vZGlmaWVkfHxzLmhlYWRlcnMuZ2V0KCJsYXN0LW1vZGlmaWVkIil8fHZvaWQgMCxtYXhBZ2U6YT8ubWF4QWdlLHVybDplLHN0YXR1czpzLnN0YXR1cyxzdGF0dXNUZXh0OnMuc3RhdHVzVGV4dH19YXN5bmMgcHJ1bmVFeHBpcmVkKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdFByb21pc2UsMH19fSk7ZnVuY3Rpb24gTXZhKHQpe2xldCBlPXttYXhBZ2U6MCxpbW11dGFibGU6ITEsbm9DYWNoZTohMSxub1N0b3JlOiExLG11c3RSZXZhbGlkYXRlOiExfTtpZighdClyZXR1cm4gZTtsZXQgcj10LnRvTG93ZXJDYXNlKCkuc3BsaXQoIiwiKS5tYXAoYT0+YS50cmltKCkpO2ZvcihsZXQgYSBvZiByKWlmKGE9PT0ibm8tY2FjaGUiKWUubm9DYWNoZT0hMDtlbHNlIGlmKGE9PT0ibm8tc3RvcmUiKWUubm9TdG9yZT0hMDtlbHNlIGlmKGE9PT0iaW1tdXRhYmxlIillLmltbXV0YWJsZT0hMDtlbHNlIGlmKGE9PT0ibXVzdC1yZXZhbGlkYXRlIillLm11c3RSZXZhbGlkYXRlPSEwO2Vsc2UgaWYoYS5zdGFydHNXaXRoKCJtYXgtYWdlPSIpKXtsZXQgcz1wYXJzZUludChhLnNwbGl0KCI9IilbMV0sMTApO2lzTmFOKHMpfHwoZS5tYXhBZ2U9cyoxZTMpfXJldHVybiBlfWZ1bmN0aW9uIEN2YSh0KXtpZih0KXRyeXtyZXR1cm4gbmV3IERhdGUodCkuZ2V0VGltZSgpfWNhdGNoe3JldHVybn19ZnVuY3Rpb24gcTAodCl7bGV0IGU9dC5nZXQoImNhY2hlLWNvbnRyb2wiKSxyPXQuZ2V0KCJleHBpcmVzIiksYT10LmdldCgiZXRhZyIpLHM9dC5nZXQoImxhc3QtbW9kaWZpZWQiKSxuPU12YShlKTtpZihuLm1heEFnZT09PTAmJnIpe2xldCBvPUN2YShyKTtvJiYobi5tYXhBZ2U9TWF0aC5tYXgoMCxvLURhdGUubm93KCkpKX1yZXR1cm57bWF4QWdlOm4ubWF4QWdlfHwwLGV0YWc6YXx8dm9pZCAwLGxhc3RNb2RpZmllZDpzfHx2b2lkIDAsaW1tdXRhYmxlOm4uaW1tdXRhYmxlfHwhMSxub0NhY2hlOm4ubm9DYWNoZXx8ITEsbm9TdG9yZTpuLm5vU3RvcmV8fCExLG11c3RSZXZhbGlkYXRlOm4ubXVzdFJldmFsaWRhdGV8fCExfX1mdW5jdGlvbiBneih0LGUpe2lmKGUubm9TdG9yZSlyZXR1cm4hMTtpZihlLmltbXV0YWJsZSlyZXR1cm4hMDtsZXQgcj1EYXRlLm5vdygpLXQudGltZXN0YW1wLGE9dC5tYXhBZ2V8fGUubWF4QWdlfHwwO3JldHVybiBhPT09MD8hMTpyPGF9ZnVuY3Rpb24gYnoodCl7cmV0dXJuIHQubm9DYWNoZXx8dC5tdXN0UmV2YWxpZGF0ZX1mdW5jdGlvbiBnZGUodCl7bGV0IGU9e307cmV0dXJuIHQuZXRhZyYmKGVbImlmLW5vbmUtbWF0Y2giXT10LmV0YWcpLHQubGFzdE1vZGlmaWVkJiYoZVsiaWYtbW9kaWZpZWQtc2luY2UiXT10Lmxhc3RNb2RpZmllZCksZX1mdW5jdGlvbiBiZGUodCl7bGV0IGU9e307cmV0dXJuIHQuZm9yRWFjaCgocixhKT0+e2VbYV09cn0pLGV9ZnVuY3Rpb24gWlp0KHQpe2xldCBlPW5ldyBIZWFkZXJzO3JldHVybiBPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChbcixhXSk9PntlLnNldChyLGEpfSksZX12YXIgeGRlPXUoKCk9PntpKE12YSwicGFyc2VDYWNoZUNvbnRyb2wiKTtpKEN2YSwicGFyc2VFeHBpcmVzIik7aShxMCwiZXh0cmFjdENhY2hlTWV0YWRhdGEiKTtpKGd6LCJpc0ZyZXNoIik7aShieiwicmVxdWlyZXNSZXZhbGlkYXRpb24iKTtpKGdkZSwiY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzIik7aShiZGUsImhlYWRlcnNUb09iamVjdCIpO2koWlp0LCJvYmplY3RUb0hlYWRlcnMiKX0pO2Z1bmN0aW9uIFFadCh0KXtzd2l0Y2godCl7Y2FzZSJuZXR3b3JrLWZpcnN0IjpyZXR1cm4gbmV3IHZkZTtjYXNlImNhY2hlLWZpcnN0IjpyZXR1cm4gbmV3IEtfZTtjYXNlInN0YWxlLXdoaWxlLXJldmFsaWRhdGUiOnJldHVybiBuZXcgWl9lO2Nhc2UibmV0d29yay1vbmx5IjpyZXR1cm4gbmV3IFFfZTtjYXNlImNhY2hlLW9ubHkiOnJldHVybiBuZXcgWF9lO2RlZmF1bHQ6cmV0dXJuIG5ldyB2ZGV9fXZhciB2ZGUsS19lLFpfZSxRX2UsWF9lLFhadD11KCgpPT57bWRlKCk7eGRlKCk7dmRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5ldHdvcmtGaXJzdFN0cmF0ZWd5Iil9YXN5bmMgZXhlY3V0ZShlKXt0cnl7bGV0IHI9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7cmV0dXJuIHIub2smJmF3YWl0IHRoaXMuY2FjaGVSZXNwb25zZShlLHIpLHtyZXNwb25zZTpyLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19Y2F0Y2gocil7ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIE5ldHdvcmsgZmFpbGVkLCB0cnlpbmcgY2FjaGU6IixyKTtsZXQgYT1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKGEpcmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KGEpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07dGhyb3cgcn19YXN5bmMgY2FjaGVSZXNwb25zZShlLHIpe2xldCBhPXEwKHIuaGVhZGVycyk7aWYoYS5ub1N0b3JlKXJldHVybjtsZXQgcz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHIsYSk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHMpfX0sS19lPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlRmlyc3RTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihyKXtsZXQgbj1xMChuZXcgSGVhZGVycyhyLmhlYWRlcnMpKTtpZihneihyLG4pKXJldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6IixlLnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZihieihuKSYmKHIuZXRhZ3x8ci5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUoZSxyKX1lLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6IixlLnJlcXVlc3QudXJsKTtsZXQgYT1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxzPXEwKGEuaGVhZGVycyk7aWYoIXMubm9TdG9yZSl7bGV0IG49YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxhLHMpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6YSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUoZSxyKXtsZXQgYT1nZGUocikscz1uZXcgUmVxdWVzdChlLnJlcXVlc3QudXJsLHttZXRob2Q6ZS5yZXF1ZXN0Lm1ldGhvZCxoZWFkZXJzOnsuLi5iZGUoZS5yZXF1ZXN0LmhlYWRlcnMpLC4uLmF9fSk7dHJ5e2xldCBuPWF3YWl0IGUuZmV0Y2hGbihzKTtpZihuLnN0YXR1cz09PTMwNClyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIHJldmFsaWRhdGVkICgzMDQpOiIsZS5yZXF1ZXN0LnVybCksci50aW1lc3RhbXA9RGF0ZS5ub3coKSxhd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXkscikse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMH07aWYobi5vayl7bGV0IG89cTAobi5oZWFkZXJzKTtpZighby5ub1N0b3JlKXtsZXQgbD1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLG4sbyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LGwpfX1yZXR1cm57cmVzcG9uc2U6bixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITB9fWNhdGNoKG4pe3JldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gUmV2YWxpZGF0aW9uIGZhaWxlZCwgdXNpbmcgY2FjaGU6IixuKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfX19fSxaX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiU3RhbGVXaGlsZVJldmFsaWRhdGVTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihyKXtsZXQgbj1lLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShyKTtyZXR1cm4gdGhpcy5yZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKGUscikuY2F0Y2gobz0+e2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIsbyl9KSx7cmVzcG9uc2U6bixmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fWxldCBhPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLHM9cTAoYS5oZWFkZXJzKTtpZighcy5ub1N0b3JlJiZhLm9rKXtsZXQgbj1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLGEscyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG4pfXJldHVybntyZXNwb25zZTphLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19YXN5bmMgcmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLHIpe2xldCBhPXEwKG5ldyBIZWFkZXJzKHIuaGVhZGVycykpO2lmKCEoZ3oocixhKSYmIWJ6KGEpKSl0cnl7bGV0IHM9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7aWYocy5vayl7bGV0IG49cTAocy5oZWFkZXJzKTtpZighbi5ub1N0b3JlKXtsZXQgbz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHMsbik7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG8pLGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBjb21wbGV0ZToiLGUucmVxdWVzdC51cmwpfX19Y2F0Y2gocyl7ZS5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixzKX19fSxRX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiTmV0d29ya09ubHlTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19fSxYX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQ2FjaGVPbmx5U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCByPWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDYWNoZSBtaXNzIGZvciAke2UucmVxdWVzdC51cmx9IChjYWNoZS1vbmx5IG1vZGUpYCk7cmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fTtpKFFadCwiZ2V0U3RyYXRlZ3lIYW5kbGVyIil9KTt2YXIgTnYsSl9lPXUoKCk9PnttZGUoKTtYWnQoKTt4ZGUoKTtOdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYWNoZU1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuY2FjaGVTdG9yZT1uZXcgUHYoZSxyKX1hc3luYyBleGVjdXRlKGUscixhKXtsZXQgcz10aGlzLmRldGVybWluZVN0cmF0ZWd5KGUscik7aWYocz09PSJuZXR3b3JrLW9ubHkiKXJldHVybntyZXNwb25zZTphd2FpdCBhKGUpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX07bGV0IG49dGhpcy5nZW5lcmF0ZUNhY2hlS2V5KGUsciksbz1RWnQocyksbD17cmVxdWVzdDplLGNhY2hlS2V5Om4sY2FjaGVTdG9yZTp0aGlzLmNhY2hlU3RvcmUsZmV0Y2hGbjphLGxvZ2dpbmc6ci5sb2dnaW5nfTtyZXR1cm4gYXdhaXQgby5leGVjdXRlKGwpfWRldGVybWluZVN0cmF0ZWd5KGUscil7cmV0dXJuIHIuY2FjaGVTdHJhdGVneT9yLmNhY2hlU3RyYXRlZ3k6ci5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koci5jYWNoZSk6ZS5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZS5jYWNoZSk6Im5ldHdvcmstZmlyc3QifW1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZSl7c3dpdGNoKGUpe2Nhc2UiZGVmYXVsdCI6cmV0dXJuIm5ldHdvcmstZmlyc3QiO2Nhc2Uibm8tc3RvcmUiOmNhc2UicmVsb2FkIjpyZXR1cm4ibmV0d29yay1vbmx5IjtjYXNlIm5vLWNhY2hlIjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJmb3JjZS1jYWNoZSI6cmV0dXJuImNhY2hlLWZpcnN0IjtjYXNlIm9ubHktaWYtY2FjaGVkIjpyZXR1cm4iY2FjaGUtb25seSI7ZGVmYXVsdDpyZXR1cm4ibmV0d29yay1maXJzdCJ9fWdlbmVyYXRlQ2FjaGVLZXkoZSxyKXtyZXR1cm4gci5jYWNoZUtleT90eXBlb2Ygci5jYWNoZUtleT09ImZ1bmN0aW9uIj9yLmNhY2hlS2V5KGUpOnIuY2FjaGVLZXk6dGhpcy5jYWNoZVN0b3JlLmdlbmVyYXRlQ2FjaGVLZXkoZSl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuY2xlYXIoKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmRlbGV0ZShlKX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVTdG9yZS5oYXMoZSl9Z2V0U3RvcmUoKXtyZXR1cm4gdGhpcy5jYWNoZVN0b3JlfX19KTtmdW5jdGlvbiBKWnQodCl7c3dpdGNoKHQpe2Nhc2UiZXhwb25lbnRpYWwiOnJldHVybiBuZXcgeWRlO2Nhc2UibGluZWFyIjpyZXR1cm4gbmV3IGVUZTtjYXNlImNvbnN0YW50IjpyZXR1cm4gbmV3IHRUZTtkZWZhdWx0OnJldHVybiBuZXcgeWRlfX1mdW5jdGlvbiBlUXQodCxlPS4xKXtsZXQgcj10KmUqTWF0aC5yYW5kb20oKTtyZXR1cm4gdCtyfXZhciB5ZGUsZVRlLHRUZSx0UXQ9dSgoKT0+e3lkZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFeHBvbmVudGlhbEJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe2xldCBzPXIqTWF0aC5wb3coMixlLTEpO3JldHVybiBNYXRoLm1pbihzLGEpfX0sZVRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxpbmVhckJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe2xldCBzPXIqZTtyZXR1cm4gTWF0aC5taW4ocyxhKX19LHRUZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDb25zdGFudEJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe3JldHVybiBNYXRoLm1pbihyLGEpfX07aShKWnQsImdldEJhY2tvZmZDYWxjdWxhdG9yIik7aShlUXQsImFkZEppdHRlciIpfSk7dmFyIE92LHJUZT11KCgpPT57bXooKTt0UXQoKTtPdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSZXRyeU1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlPXt9KXt0aGlzLm9wdGlvbnM9e21heEF0dGVtcHRzOmUubWF4QXR0ZW1wdHM/PzMsYmFja29mZjplLmJhY2tvZmY/PyJleHBvbmVudGlhbCIsaW5pdGlhbERlbGF5OmUuaW5pdGlhbERlbGF5Pz8xZTMsbWF4RGVsYXk6ZS5tYXhEZWxheT8/M2U0LHJldHJ5T246ZS5yZXRyeU9uPz9bNDA4LDQyOSw1MDAsNTAyLDUwMyw1MDRdLG9uUmV0cnk6ZS5vblJldHJ5Pz8oKCk9Pnt9KX19YXN5bmMgZXhlY3V0ZShlLHIpe2xldCBhLHM7Zm9yKGxldCBuPTE7bjw9dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzO24rKyl0cnl7bGV0IG89YXdhaXQgZSgpO2lmKG8gaW5zdGFuY2VvZiBSZXNwb25zZSYmdGhpcy5zaG91bGRSZXRyeVJlc3BvbnNlKG8pKXtpZihzPW8sbj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cylyZXR1cm4gbztsZXQgbD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4sbmV3IEVycm9yKGBIVFRQICR7by5zdGF0dXN9YCksbCksYXdhaXQgdGhpcy5kZWxheShsKTtjb250aW51ZX1yZXR1cm4gb31jYXRjaChvKXthPW8gaW5zdGFuY2VvZiBFcnJvcj9vOm5ldyBFcnJvcihTdHJpbmcobykpO2xldCBsPXI/cihvLG4pOnRoaXMuc2hvdWxkUmV0cnlFcnJvcihvKTtpZihuPT09dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzfHwhbCl0aHJvdyBhO2xldCBjPXRoaXMuY2FsY3VsYXRlRGVsYXkobik7dGhpcy5vcHRpb25zLm9uUmV0cnkobixhLGMpLGF3YWl0IHRoaXMuZGVsYXkoYyl9dGhyb3cgYXx8bmV3IEVycm9yKCJNYXggcmV0cnkgYXR0ZW1wdHMgcmVhY2hlZCIpfWFzeW5jIGV4ZWN1dGVXaXRoRmFsbGJhY2tzKGUscixhKXtpZihlLmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKCJObyBVUkxzIHByb3ZpZGVkIGZvciBmYWxsYmFjayBleGVjdXRpb24iKTtsZXQgcyxuPVtdO2ZvcihsZXQgbyBvZiBlKXRyeXtsZXQgbD1hd2FpdCB0aGlzLmV4ZWN1dGUoYXN5bmMoKT0+YXdhaXQgYShvLHIpKTtpZihsLnN0YXR1czw0MDB8fGwuc3RhdHVzPj00MDAmJmwuc3RhdHVzPDUwMCYmbC5zdGF0dXMhPT00MDgpcmV0dXJuIGw7bi5wdXNoKG8pLHM9bmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke2wuc3RhdHVzfWApfWNhdGNoKGwpe24ucHVzaChvKSxzPWwgaW5zdGFuY2VvZiBFcnJvcj9sOm5ldyBFcnJvcihTdHJpbmcobCkpfXRocm93IG5ldyBFcnJvcihgQWxsIFVSTHMgZmFpbGVkOiAke24uam9pbigiLCAiKX0uIExhc3QgZXJyb3I6ICR7cz8ubWVzc2FnZXx8IlVua25vd24gZXJyb3IifWApfXNob3VsZFJldHJ5UmVzcG9uc2UoZSl7bGV0IHI9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3IoZSk6QXJyYXkuaXNBcnJheShyKT9yLmluY2x1ZGVzKGUuc3RhdHVzKTohMX1zaG91bGRSZXRyeUVycm9yKGUpe2lmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3ImJmUubWVzc2FnZS5pbmNsdWRlcygiZmV0Y2giKXx8ZS5uYW1lPT09IkFib3J0RXJyb3IifHxlLm1lc3NhZ2UuaW5jbHVkZXMoInRpbWVvdXQiKSlyZXR1cm4hMDtsZXQgcj10aGlzLm9wdGlvbnMucmV0cnlPbjtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiI/cih2b2lkIDAsZSk6ITF9Y2FsY3VsYXRlRGVsYXkoZSl7bGV0IGE9Slp0KHRoaXMub3B0aW9ucy5iYWNrb2ZmKS5jYWxjdWxhdGUoZSx0aGlzLm9wdGlvbnMuaW5pdGlhbERlbGF5LHRoaXMub3B0aW9ucy5tYXhEZWxheSk7cmV0dXJuIGVRdChhKX1hc3luYyBkZWxheShlKXthd2FpdCBUci5kZWxheUZvcihlKX19fSk7dmFyIFJ2LGFUZT11KCgpPT57bXooKTtSdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSZXF1ZXN0RGVkdXBsaWNhdG9yIil9Y29uc3RydWN0b3IoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHM9bmV3IE1hcH1nZW5lcmF0ZUtleShlKXtsZXQgcj1lLnVybCxhPWUubWV0aG9kO3JldHVybiBhPT09IkdFVCJ8fGE9PT0iSEVBRCI/YCR7YX06JHtyfWA6YCR7YX06JHtyfToke0RhdGUubm93KCl9YH1hc3luYyBleGVjdXRlKGUscil7bGV0IGE9dGhpcy5pbkZsaWdodFJlcXVlc3RzLmdldChlKTtpZihhKXJldHVybntyZXNwb25zZTooYXdhaXQgYS5wcm9taXNlKS5jbG9uZSgpLHdhc0RlZHVwbGljYXRlZDohMH07bGV0IHM9JHQuZGVmZXIoKTt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2V0KGUscyk7dHJ5e2xldCBuPWF3YWl0IHIoKTtyZXR1cm4gcy5yZXNvbHZlKG4pLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUoZSkse3Jlc3BvbnNlOm4sd2FzRGVkdXBsaWNhdGVkOiExfX1jYXRjaChuKXt0aHJvdyBzLnJlamVjdChuKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLG59fWlzSW5GbGlnaHQoZSl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5oYXMoZSl9Z2V0SW5GbGlnaHRDb3VudCgpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2l6ZX1jbGVhcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5jbGVhcigpfX19KTtmdW5jdGlvbiB6dmEodCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcixyPW5ldyBUci5UaW1lb3V0KHQsbnVsbCk7cmV0dXJuIHIucHJvbWlzZS50aGVuKCgpPT57ZS5hYm9ydCgpfSkse2NvbnRyb2xsZXI6ZSxjbGVhbnVwOmkoKCk9PntyLmNhbmNlbCgpfSwiY2xlYW51cCIpfX1hc3luYyBmdW5jdGlvbiBpVGUodCxlLHIpe2xldHtjb250cm9sbGVyOmEsY2xlYW51cDpzfT16dmEocik7dHJ5e2xldCBuPWF3YWl0IGZldGNoKHQsey4uLmUsc2lnbmFsOmEuc2lnbmFsfSk7cmV0dXJuIHMoKSxufWNhdGNoKG4pe3Rocm93IHMoKSxuIGluc3RhbmNlb2YgRXJyb3ImJm4ubmFtZT09PSJBYm9ydEVycm9yIj9uZXcgRXJyb3IoYFJlcXVlc3QgdGltZW91dCBhZnRlciAke3J9bXM6ICR7dH1gKTpufX12YXIgclF0PXUoKCk9PntteigpO2koenZhLCJjcmVhdGVUaW1lb3V0Q29udHJvbGxlciIpO2koaVRlLCJmZXRjaFdpdGhUaW1lb3V0Iil9KTt2YXIgeDYsc1RlPXUoKCk9PntfX2UoKTtKX2UoKTtyVGUoKTthVGUoKTtyUXQoKTt4Nj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXZWJyZXF1ZXN0Q2xpZW50Iil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy5kZWZhdWx0T3B0aW9ucz1lLHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyPW5ldyAkdix0aGlzLmNhY2hlTWFuYWdlcj1uZXcgTnYsdGhpcy5kZWR1cGxpY2F0b3I9bmV3IFJ2fWFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl9YWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpfWFkZEVycm9ySW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkRXJyb3JJbnRlcmNlcHRvcihlKX1yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpfXJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcihlKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl9Y2xlYXJJbnRlcmNlcHRvcnMoKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5jbGVhckFsbCgpfWFzeW5jIGNsZWFyQ2FjaGUoKXthd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5jbGVhcigpfWFzeW5jIHJlcXVlc3QoZSxyPXt9KXtsZXQgYT17Li4udGhpcy5kZWZhdWx0T3B0aW9ucywuLi5yfSxzO2lmKHR5cGVvZiBlPT0ic3RyaW5nIj9zPW5ldyBSZXF1ZXN0KGUsYSk6cz1lLHM9YXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc1JlcXVlc3QocyksYS5pbnRlcmNlcHRvcnM/LnJlcXVlc3QpZm9yKGxldCBvIG9mIGEuaW50ZXJjZXB0b3JzLnJlcXVlc3Qpcz1hd2FpdCBvKHMpO2lmKGEuZGVkdXBsaWNhdGU/PyExKXtsZXQgbz10aGlzLmRlZHVwbGljYXRvci5nZW5lcmF0ZUtleShzKTtyZXR1cm4oYXdhaXQgdGhpcy5kZWR1cGxpY2F0b3IuZXhlY3V0ZShvLGFzeW5jKCk9PmF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QocyxhKSkpLnJlc3BvbnNlfXJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KHMsYSl9YXN5bmMgZXhlY3V0ZVJlcXVlc3QoZSxyKXt0cnl7bGV0IGE9dHlwZW9mIHIucmV0cnk9PSJvYmplY3QiP3IucmV0cnk6ci5yZXRyeT97fTp2b2lkIDAscz1pKGFzeW5jIGw9PntsZXQgYz1yLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgaVRlKGwudXJsLHttZXRob2Q6bC5tZXRob2QsaGVhZGVyczpsLmhlYWRlcnMsYm9keTpsLmJvZHksLi4ucn0sYyl9LCJmZXRjaEZuRm9yUmVxdWVzdCIpLG49aShhc3luYyhsLGMpPT57bGV0IGQ9ci50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IGlUZShsLGMsZCl9LCJmZXRjaEZuRm9yRmFsbGJhY2tzIiksbztpZihhKXtsZXQgbD1uZXcgT3YoYSk7aWYoci5mYWxsYmFja1VybHMmJnIuZmFsbGJhY2tVcmxzLmxlbmd0aD4wKXtsZXQgYz1bZS51cmwsLi4uci5mYWxsYmFja1VybHNdO289YXdhaXQgbC5leGVjdXRlV2l0aEZhbGxiYWNrcyhjLHttZXRob2Q6ZS5tZXRob2QsaGVhZGVyczplLmhlYWRlcnMsYm9keTplLmJvZHksLi4ucn0sbil9ZWxzZSBvPWF3YWl0IGwuZXhlY3V0ZShhc3luYygpPT4oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZShlLHIscykpLnJlc3BvbnNlKX1lbHNlIG89KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSxyLHMpKS5yZXNwb25zZTtpZihvPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXNwb25zZShvKSxyLmludGVyY2VwdG9ycz8ucmVzcG9uc2UpZm9yKGxldCBsIG9mIHIuaW50ZXJjZXB0b3JzLnJlc3BvbnNlKW89YXdhaXQgbChvKTtyZXR1cm4gb31jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzRXJyb3IoYSBpbnN0YW5jZW9mIEVycm9yP2E6bmV3IEVycm9yKFN0cmluZyhhKSkpfX1hc3luYyBnZXRKc29uKGUscj17fSl7bGV0IGE9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLnIsbWV0aG9kOiJHRVQiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX19KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX1hc3luYyBwb3N0SnNvbihlLHIsYT17fSl7bGV0IHM9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5hLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KHIpfSk7aWYoIXMub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7cy5zdGF0dXN9OiAke3Muc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgcy5qc29uKCl9YXN5bmMgcHV0SnNvbihlLHIsYT17fSl7bGV0IHM9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmEuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkocil9KTtpZighcy5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtzLnN0YXR1c306ICR7cy5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBzLmpzb24oKX1hc3luYyBkZWxldGVKc29uKGUscj17fSl7bGV0IGE9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLnIsbWV0aG9kOiJERUxFVEUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX19KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX19fSk7YXN5bmMgZnVuY3Rpb24gZWwodCxlKXtsZXQgcj10IGluc3RhbmNlb2YgUmVxdWVzdD90LnVybDpTdHJpbmcodCksYT10IGluc3RhbmNlb2YgUmVxdWVzdD90Om5ldyBSZXF1ZXN0KHIsZSk7cmV0dXJuIGF3YWl0IFgyLnJlcXVlc3QoYSxlKX12YXIgWDIsYVF0PXUoKCk9PntzVGUoKTtYMj1uZXcgeDY7aShlbCwid2VicmVxdWVzdCIpLGVsLmdldEpzb249YXN5bmMgZnVuY3Rpb24odCxlKXtyZXR1cm4gYXdhaXQgWDIuZ2V0SnNvbih0LGUpfSxlbC5wb3N0SnNvbj1hc3luYyBmdW5jdGlvbih0LGUscil7cmV0dXJuIGF3YWl0IFgyLnBvc3RKc29uKHQsZSxyKX0sZWwucHV0SnNvbj1hc3luYyBmdW5jdGlvbih0LGUscil7cmV0dXJuIGF3YWl0IFgyLnB1dEpzb24odCxlLHIpfSxlbC5kZWxldGVKc29uPWFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGF3YWl0IFgyLmRlbGV0ZUpzb24odCxlKX0sZWwuYWRkUmVxdWVzdEludGVyY2VwdG9yPWZ1bmN0aW9uKHQpe1gyLmFkZFJlcXVlc3RJbnRlcmNlcHRvcih0KX0sZWwuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcj1mdW5jdGlvbih0KXtYMi5hZGRSZXNwb25zZUludGVyY2VwdG9yKHQpfSxlbC5hZGRFcnJvckludGVyY2VwdG9yPWZ1bmN0aW9uKHQpe1gyLmFkZEVycm9ySW50ZXJjZXB0b3IodCl9LGVsLmNsZWFySW50ZXJjZXB0b3JzPWZ1bmN0aW9uKCl7WDIuY2xlYXJJbnRlcmNlcHRvcnMoKX0sZWwuY2xlYXJDYWNoZT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IFgyLmNsZWFyQ2FjaGUoKX0sZWwuY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgeDYodCl9LGVsLmdldERlZmF1bHRDbGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWDJ9fSk7dmFyIHY2PXt9O1ZlKHY2LHtDYWNoZU1hbmFnZXI6KCk9Pk52LENhY2hlU3RvcmU6KCk9PlB2LEludGVyY2VwdG9yTWFuYWdlcjooKT0+JHYsUmVxdWVzdERlZHVwbGljYXRvcjooKT0+UnYsUmV0cnlNYW5hZ2VyOigpPT5PdixXZWJyZXF1ZXN0Q2xpZW50OigpPT54NixjcmVhdGVDb25kaXRpb25hbEhlYWRlcnM6KCk9PmdkZSxleHRyYWN0Q2FjaGVNZXRhZGF0YTooKT0+cTAsaGVhZGVyc1RvT2JqZWN0OigpPT5iZGUsaXNGcmVzaDooKT0+Z3osb2JqZWN0VG9IZWFkZXJzOigpPT5aWnQscmVxdWlyZXNSZXZhbGlkYXRpb246KCk9PmJ6LHdlYnJlcXVlc3Q6KCk9PmVsfSk7dmFyIG5UZT11KCgpPT57YVF0KCk7c1RlKCk7Sl9lKCk7bWRlKCk7clRlKCk7X19lKCk7YVRlKCk7eGRlKCl9KTt2YXIgZHAsdXA9dSgoKT0+e1cyZSgpO2RwPUdhKEtsZSgpLDEpO0pDKCk7bVp0KCk7dDYoKTtnWnQoKTtLMSgpO25UZSgpfSk7dmFyIEoyLEZ2PXUoKCk9Pnt1cCgpO0oyPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkUmVzcG9uc2VFcnJvciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5lcnJvclRleHQ9ZSx0aGlzLmVycm9yRGF0YT1yfX19KTt2YXIga2RlLGlRdD11KCgpPT57RnYoKTt1cCgpO2tkZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRvb2xzIil9Y29uc3RydWN0b3IoKXt0aGlzLmxvY2FsRGF0YT17fX1hc3luYyBwYXNzR3VhcmRzKGUscil7bGV0IGE9bmV3IGR6Lkd1YXJkU2V0KGUpO2lmKCFhd2FpdCBhLmFsbEd1YXJkc1Bhc3Mocikpe2xldCBuPWF3YWl0IGEuZ2V0RmFpbGVkSGludChyKTt0aHJvdyBuZXcgSjIoYGd1YXJkIGZhaWxlZDogJHtufWAse2ZhaWxlZEhpbnQ6bn0pfX19fSk7dmFyIG9UZSxsVGU9dSgoKT0+e3VwKCk7RnYoKTtpUXQoKTtvVGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRIYW5kbGVyIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLm1ldGhvZD1lLHRoaXMuaGFuZGxlckZ1bmN0aW9uPXJ9YXN5bmMgYWRkUmVzcG9uc2UoZSl7aWYoZS5tZXRob2QhPT10aGlzLm1ldGhvZCl0aHJvdyBuZXcgRXJyb3IoInRoaXMgaGFuZGxlciBoYXMgYmVlbiBnaXZlbiBhIHdyb25nIG1ldGhvZCB0byBhbnN3ZXIgdG8uIFBsZWFzZSB1c2UgYSBUeXBlZFJvdXRlciB0byBmaWx0ZXIgcmVxdWVzdHMiKTtsZXQgcixhPW5ldyBrZGU7ZS5sb2NhbERhdGEmJihhLmxvY2FsRGF0YT1lLmxvY2FsRGF0YSk7bGV0IHM9YXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24oZS5yZXF1ZXN0LGEpLmNhdGNoKG49PntuIGluc3RhbmNlb2YgSjI/cj1uOmNvbnNvbGUubG9nKG4pfSk7cmV0dXJuIHImJihlLmVycm9yPXt0ZXh0OnIuZXJyb3JUZXh0LGRhdGE6ci5lcnJvckRhdGF9KSxzJiYoZS5yZXNwb25zZT1zKSxlPy5jb3JyZWxhdGlvbj8ucGhhc2UmJihlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIpLGV9fX0pO3ZhciB5Nix4ej11KCgpPT57dXAoKTtTZGUoKTtsVGUoKTtjVGUoKTtGdigpO3k2PWNsYXNzIHR7c3RhdGlje2kodGhpcywiVHlwZWRSb3V0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuaG9va3M9e30sdGhpcy5yb3V0ZXJNYXA9bmV3IFpzLk9iamVjdE1hcCx0aGlzLmhhbmRsZXJNYXA9bmV3IFpzLk9iamVjdE1hcCx0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcz1uZXcgWnMuT2JqZWN0TWFwLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgWnMuSW50ZXJlc3RNYXAoZT0+ZSl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKGUpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPWV9c3RhdGljIHNldEdsb2JhbEhvb2tzKGUpe2xldCByPXQuZ2xvYmFsSG9va3M7dC5nbG9iYWxIb29rcz17Li4uciwuLi5lfX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKGUpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4uZX19Y2FsbEhvb2soZSxyKXt0cnl7dC5nbG9iYWxIb29rc1tlXT8uKHIpLHRoaXMuaG9va3NbZV0/LihyKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke2V9KTpgLGEpfX1hZGRNaWRkbGV3YXJlKGUpe3RoaXMubWlkZGxld2FyZXMucHVzaChlKX1hZGRUeXBlZEhhbmRsZXIoZSl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZS5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7ZS5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKGUpfWFkZFR5cGVkUm91dGVyKGUpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKGE9PmE9PT1lKXx8KHRoaXMucm91dGVyTWFwLmFkZChlKSxlLmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcihlKXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLHI9W10pe3IucHVzaCh0aGlzKTtsZXQgYTtyZXR1cm4gYT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMocz0+cy5tZXRob2Q9PT1lKSxhfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2gocz0+eyFhJiYhci5pbmNsdWRlcyhzKSYmKGE9cy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxyKSl9KSxhfWdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHI9W10pe3IucHVzaCh0aGlzKTtsZXQgYT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMocz0+cy5tZXRob2Q9PT1lKTtpZihhKXJldHVybntoYW5kbGVyOmEscm91dGVyOnRoaXN9O2ZvcihsZXQgcyBvZiB0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpKWlmKCFyLmluY2x1ZGVzKHMpKXtsZXQgbj1zLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHIpO2lmKG4pcmV0dXJuIG59cmV0dXJuIG51bGx9c3RhdGlje3RoaXMuZGVmYXVsdFJvdXRlT3B0aW9ucz17bG9jYWxSZXF1ZXN0OiExLHNraXBIb29rczohMX19YXN5bmMgcm91dGVBbmRBZGRSZXNwb25zZShlLHI9e30pe2xldCBhPXsuLi50LmRlZmF1bHRSb3V0ZU9wdGlvbnMsLi4ucn07aWYoZT1lYy5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGUubG9jYWxEYXRhPWUubG9jYWxEYXRhfHx7fSxlLmxvY2FsRGF0YS5maXJzdFR5cGVkcm91dGVyPXRoaXMsZS5tZXRob2Q9PT0iIyNWaXJ0dWFsU3RyZWFtIyMiKXtsZXQgcz1hd2FpdCB0aGlzLmhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKTtyZXR1cm4gcy5sb2NhbERhdGE9bnVsbCxzfWlmKGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXF1ZXN0Inx8YS5sb2NhbFJlcXVlc3Qpe2xldCBzPURhdGUubm93KCk7YS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXF1ZXN0Iix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVxdWVzdCIsdGltZXN0YW1wOnMscGF5bG9hZDplLnJlcXVlc3R9KTtsZXQgbj10aGlzLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLm1ldGhvZCk7aWYoIW4pcmV0dXJuIGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7ZS5tZXRob2R9YCksZS5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT1lYy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGU7bGV0e2hhbmRsZXI6byxyb3V0ZXI6bH09bjtpZihsLm1pZGRsZXdhcmVzLmxlbmd0aD4wKXRyeXtmb3IobGV0IGMgb2YgbC5taWRkbGV3YXJlcylhd2FpdCBjKGUpfWNhdGNoKGMpe3JldHVybiBjIGluc3RhbmNlb2YgSjI/ZS5lcnJvcj17dGV4dDpjLmVycm9yVGV4dCxkYXRhOmMuZXJyb3JEYXRhfHx7fX06ZS5lcnJvcj17dGV4dDpjLm1lc3NhZ2V8fCJNaWRkbGV3YXJlIGVycm9yIixkYXRhOnt9fSxlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIsZS5sb2NhbERhdGE9bnVsbCxlPWVjLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1zLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZX1yZXR1cm4gZT1hd2FpdCBvLmFkZFJlc3BvbnNlKGUpLGUubG9jYWxEYXRhPW51bGwsZT1lYy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9ZWxzZSByZXR1cm4gZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlc3BvbnNlIj8oYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXAuZmluZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQpPy5mdWxsZmlsbEludGVyZXN0KGUpLG51bGwpOihjb25zb2xlLmxvZygicmVjZWl2ZWQgd2VpcmRseSBzaGFwZWQgcmVxdWVzdCIpLGNvbnNvbGUubG9nKGUpLG51bGwpfWFzeW5jIGhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKXtsZXQgcj1hd2FpdCB0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5maW5kKGFzeW5jIHM9PnMuc3RyZWFtSWQ9PT1lLnJlcXVlc3Quc3RyZWFtSWQpO2lmKHIpY29uc29sZS5sb2coYHN1Y2Nlc3M6IGZvdW5kIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCk7ZWxzZSByZXR1cm4gY29uc29sZS5sb2coYG5vIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIGZvdW5kIGZvciBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKSxjb25zb2xlLmxvZyh0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5nZXRBcnJheSgpKSxlO3JldHVybiBhd2FpdCByLmhhbmRsZVN0cmVhbVRyKGUpfX19KTt2YXIgc1F0LGVjLFNkZT11KCgpPT57dXAoKTt4eigpO3NRdD0iIyMjIyMjIyMjIyMjI0NMT1NJTkcgQklUIyMjIyMjIyMjIyMjIyIsZWM9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU3RyZWFtIil9c3RhdGljIGVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUscixhLHM9W10pe3JldHVybiFlfHxEdi5pc0J1ZmZlckxpa2UoZSk/ZTplIGluc3RhbmNlb2YgdD8oIWUuc2lkZSYmci5zZW5kTWV0aG9kJiYoZS5zaWRlPSJyZXF1ZXN0aW5nIixlLnNlbmRNZXRob2Q9ci5zZW5kTWV0aG9kKSwhZS5zaWRlJiZyLnR5cGVkcm91dGVyJiYoZS5zaWRlPSJyZXNwb25kaW5nIixlLnR5cGVkcm91dGVyPXIudHlwZWRyb3V0ZXIsci50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGUpKSwhYS5yZXNwb25zZXx8cy5pbmNsdWRlcygicmVzcG9uc2UiKT8oZS5zdGFydEtlZXBBbGl2ZUxvb3AoKSx7X2lzVmlydHVhbFN0cmVhbTohMCxzdHJlYW1JZDplLnN0cmVhbUlkfSk6e19PQk1JVFRFRF9WSVJUVUFMX1NUUkVBTTohMCxyZWFzb246InBhdGggaXMgdW5kZXIgLnJlcXVlc3Q6IG9ibWl0dGVkIGZvciBkZWR1cGxpY2F0aW9uIHJlYXNvbnMgaW4gcmVzcG9uc2UgY3ljbGUuIn0pOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoKG4sbyk9PnQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobixyLGF8fGUscy5jb25jYXQoU3RyaW5nKG8pKSkpOmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZSkucmVkdWNlKChuLFtvLGxdKT0+e2xldCBjPXMuY29uY2F0KG8pO3JldHVybiBuW29dPXQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobCxyLGF8fGUsYyksbn0se30pOmV9c3RhdGljIGRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHIpe2lmKER2LmlzQnVmZmVyTGlrZShlKXx8ZSBpbnN0YW5jZW9mIHk2KXJldHVybiBlO2lmKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUgaW5zdGFuY2VvZiBTZXR8fGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBEYXRlfHxlIGluc3RhbmNlb2YgUmVnRXhwfHxlIGluc3RhbmNlb2YgRXJyb3J8fGUgaW5zdGFuY2VvZiBQcm9taXNlfHx0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBlO2lmKGUuX2lzVmlydHVhbFN0cmVhbSl7bGV0IGE9bmV3IHQ7cmV0dXJuIGEuc3RyZWFtSWQ9ZS5zdHJlYW1JZCwhYS5zaWRlJiZyLnNlbmRNZXRob2QmJihhLnNpZGU9InJlcXVlc3RpbmciLGEuc2VuZE1ldGhvZD1yLnNlbmRNZXRob2QpLCFhLnNpZGUmJnIudHlwZWRyb3V0ZXImJihhLnNpZGU9InJlc3BvbmRpbmciLGEudHlwZWRyb3V0ZXI9ci50eXBlZHJvdXRlcixyLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoYSkpLGEuc3RhcnRLZWVwQWxpdmVMb29wKCksYX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBhPVtdO2ZvcihsZXQgcyBvZiBlKWEucHVzaCh0LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhzLHIpKTtyZXR1cm4gYX1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGEscyk9PihhW3NdPXQuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGVbc10sciksYSkse30pfWVsc2UgcmV0dXJuIGV9Y29uc3RydWN0b3IoKXt0aGlzLnN0cmVhbUlkPWRwLnVuaSgpLHRoaXMua2VlcEFsaXZlPSEwLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheT1uZXcgWnMuQmFja3ByZXNzdXJlZEFycmF5KDE2KSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IFpzLkJhY2twcmVzc3VyZWRBcnJheSgxNil9c3RhdGljIHJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZSl7aWYoZT09bnVsbHx8ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHR5cGVvZiBCdWZmZXI8InUiJiZCdWZmZXIuaXNCdWZmZXIoZSkpcmV0dXJuIGU7aWYodHlwZW9mIGU9PSJvYmplY3QiKXtpZihlLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBlLmRhdGE9PSJzdHJpbmciJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgYT1lLmRhdGEuc2xpY2UoNyk7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCBzPUJ1ZmZlci5mcm9tKGEsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheShzLmJ1ZmZlcixzLmJ5dGVPZmZzZXQscy5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGEpKS5tYXAocz0+cy5jaGFyQ29kZUF0KDApKSl9aWYoZS50eXBlPT09IkJ1ZmZlciImJkFycmF5LmlzQXJyYXkoZS5kYXRhKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtsZXQgcj1PYmplY3Qua2V5cyhlKTtpZihyLmxlbmd0aD4wJiZyLmV2ZXJ5KGE9Pi9eXGQrJC8udGVzdChhKSkpe2xldCBhPW5ldyBBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBzIG9mIHIpYVtOdW1iZXIocyldPWVbc107aWYoYS5ldmVyeShzPT50eXBlb2Ygcz09Im51bWJlciIpKXJldHVybiBuZXcgVWludDhBcnJheShhKX19cmV0dXJuIGV9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD0kdC5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj0hMSxhPSExLHM9aShhc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZHAudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGE9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfSwiZ2V0RmVlZGJhY2siKTtmb3IoYXdhaXQgcygpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoYSlmb3IoO2E7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IFRyLmRlbGF5Rm9yKDUwKSxhd2FpdCBzKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmRwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTplLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKHQucmVjb25zdGl0dXRlQmluYXJ5RGF0YShvLnJlc3BvbnNlLmNodW5rRGF0YSkpLGE9byYmby5yZXNwb25zZSYmby5yZXNwb25zZS5iYWNrcHJlc3N1cmUsZT0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UubmV4dH19dGhpcy53b3JraW5nRGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMud29ya2luZ0RlZmVycmVkPW51bGx9YXN5bmMgaGFuZGxlU3RyZWFtVHIoZSl7aWYoZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSEwJiZ0aGlzLmtlZXBBbGl2ZT09PSEwP3RoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCk6ZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSExJiYodGhpcy5rZWVwQWxpdmU9ITEpLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJrZWVwQWxpdmUiJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImZlZWRiYWNrIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iY2h1bmsiKXtpZih0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaCh0LnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZS5yZXF1ZXN0LmNodW5rRGF0YSkpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgcj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgVHIuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBUci5kZWxheUZvcigxZTMpO2F3YWl0IFRyLmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmRwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxyPSEwKXtsZXQgYT1lLmdldFJlYWRlcigpLHM9ITE7Zm9yKDshczspe2xldHt2YWx1ZTpuLGRvbmU6b309YXdhaXQgYS5yZWFkKCk7biYmYXdhaXQgdGhpcy5zZW5kRGF0YShuKSxzPW99ciYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgcj1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgYT1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKGE9PT1zUXQpe3IucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgci53cml0ZShhKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShzUXQpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgZFRlLHVUZT11KCgpPT57eHooKTt1cCgpO2RUZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRhcmdldCIpfWNvbnN0cnVjdG9yKGUpe2lmKGUucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIWUudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9ZX1hc3luYyBwb3N0KGUpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQsZSkpO2xldCBzPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikoZSksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOnM/bj1zOm49ZSxufX19KTtmdW5jdGlvbiBuUXQodCxlKXt0cnl7eTYuZ2xvYmFsSG9va3NbdF0/LihlKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHt0fSk6YCxyKX19dmFyIF92YSx2eixjVGU9dSgoKT0+e3VwKCk7U2RlKCk7RnYoKTt4eigpO3VUZSgpO192YT1uZXcgdjYuV2VicmVxdWVzdENsaWVudDtpKG5RdCwiY2FsbEdsb2JhbEhvb2siKTt2ej1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlcXVlc3QiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc2tpcEhvb2tzPSExLHR5cGVvZiBlPT0ic3RyaW5nIj90aGlzLnVybEVuZFBvaW50PWU6dGhpcy50eXBlZFRhcmdldD1lLHRoaXMubWV0aG9kPXJ9YXN5bmMgZmlyZShlLHI9ITEpe2xldCBhPURhdGUubm93KCkscz17bWV0aG9kOnRoaXMubWV0aG9kLHJlcXVlc3Q6ZSxyZXNwb25zZTpudWxsLGNvcnJlbGF0aW9uOntpZDpkcC51bmkoKSxwaGFzZToicmVxdWVzdCJ9fTtzPWVjLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHMse3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fG5RdCgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOnMuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6YSxwYXlsb2FkOmV9KTtsZXQgbjtyZXR1cm4gbj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChzLHIpLG49ZWMuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG4se3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fG5RdCgib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDpzLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6bj8ucmVzcG9uc2UsZXJyb3I6bj8uZXJyb3I/LnRleHR9KSxuLnJlc3BvbnNlfWFzeW5jIHBvc3RUck9iamVjdChlLHI9ITEpe2xldCBhO2lmKHRoaXMudXJsRW5kUG9pbnQ/YT1hd2FpdCBfdmEucG9zdEpzb24odGhpcy51cmxFbmRQb2ludCxlLHI/e2NhY2hlU3RyYXRlZ3k6ImNhY2hlLWZpcnN0In06e30pOmE9YXdhaXQgdGhpcy50eXBlZFRhcmdldC5wb3N0KGUpLGEuZXJyb3Ipe2lmKGNvbnNvbGUuZXJyb3IoYG1ldGhvZDogPj4ke3RoaXMubWV0aG9kfTw8IGdvdCBhbiBFUlJPUjogIiR7YS5lcnJvci50ZXh0fSIgd2l0aCBkYXRhICR7SlNPTi5zdHJpbmdpZnkoYS5lcnJvci5kYXRhLG51bGwsMil9YCksIWEucmV0cnkpdGhyb3cgbmV3IEoyKGEuZXJyb3IudGV4dCxhLmVycm9yLmRhdGEpO3JldHVybiBudWxsfXJldHVybiBhLnJldHJ5JiYoY29uc29sZS5sb2coYHNlcnZlciByZXF1ZXN0ZWQgcmV0cnkgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uOiAke2EucmV0cnkucmVhc29ufWApLGF3YWl0IFRyLmRlbGF5Rm9yKGEucmV0cnkud2FpdEZvck1zKSxhPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KGUscikpLGF9fX0pO3ZhciBfMT17fTtWZShfMSx7VHlwZWRIYW5kbGVyOigpPT5vVGUsVHlwZWRSZXF1ZXN0OigpPT52eixUeXBlZFJlc3BvbnNlRXJyb3I6KCk9PkoyLFR5cGVkUm91dGVyOigpPT55NixUeXBlZFRhcmdldDooKT0+ZFRlLFZpcnR1YWxTdHJlYW06KCk9PmVjfSk7dmFyIE1kZT11KCgpPT57Y1RlKCk7bFRlKCk7eHooKTtGdigpO3VUZSgpO1NkZSgpfSk7ZnVuY3Rpb24gb1F0KHQpe3JldHVybiB0JiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIFYwKHQsZSl7cmV0dXJuIHR8fCh0PTApLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIoZSl9LHQpfSl9ZnVuY3Rpb24gZFF0KHQsZSl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpK3QpfWZ1bmN0aW9uIEM0KCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1mdW5jdGlvbiB6NCgpe3ZhciB0PURhdGUubm93KCkqMWUzO3JldHVybiB0PD1wVGUmJih0PXBUZSsxKSxwVGU9dCx0fWZ1bmN0aW9uIHVRdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2NrczwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdD09ImZ1bmN0aW9uIn12YXIgbFF0LGNRdCx0bCxwVGUscHA9dSgoKT0+e2kob1F0LCJpc1Byb21pc2UiKTtsUXQ9UHJvbWlzZS5yZXNvbHZlKCExKSxjUXQ9UHJvbWlzZS5yZXNvbHZlKCEwKSx0bD1Qcm9taXNlLnJlc29sdmUoKTtpKFYwLCJzbGVlcCIpO2koZFF0LCJyYW5kb21JbnQiKTtpKEM0LCJyYW5kb21Ub2tlbiIpO3BUZT0wO2koejQsIm1pY3JvU2Vjb25kcyIpO2kodVF0LCJzdXBwb3J0c1dlYkxvY2tBUEkiKX0pO2Z1bmN0aW9uIER2YSh0KXt2YXIgZT17dGltZTp6NCgpLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxiYzpuZXcgQnJvYWRjYXN0Q2hhbm5lbCh0KSxzdWJGbnM6W119O3JldHVybiBlLmJjLm9ubWVzc2FnZT1mdW5jdGlvbihyKXtlLm1lc3NhZ2VzQ2FsbGJhY2smJmUubWVzc2FnZXNDYWxsYmFjayhyLmRhdGEpfSxlfWZ1bmN0aW9uICR2YSh0KXt0LmJjLmNsb3NlKCksdC5zdWJGbnM9W119ZnVuY3Rpb24gQXZhKHQsZSl7dHJ5e3JldHVybiB0LmJjLnBvc3RNZXNzYWdlKGUsITEpLHRsfWNhdGNoKHIpe3JldHVybiBQcm9taXNlLnJlamVjdChyKX19ZnVuY3Rpb24gRXZhKHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gSXZhKCl7aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLkRlbm8mJmdsb2JhbFRoaXMuRGVuby5hcmdzKXJldHVybiEwO2lmKCh0eXBlb2Ygd2luZG93PCJ1Inx8dHlwZW9mIHNlbGY8InUiKSYmdHlwZW9mIEJyb2FkY2FzdENoYW5uZWw9PSJmdW5jdGlvbiIpe2lmKEJyb2FkY2FzdENoYW5uZWwuX3B1YmtleSl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWw6IERvIG5vdCBvdmVyd3JpdGUgd2luZG93LkJyb2FkY2FzdENoYW5uZWwgd2l0aCB0aGlzIG1vZHVsZSwgdGhpcyBpcyBub3QgYSBwb2x5ZmlsbCIpO3JldHVybiEwfWVsc2UgcmV0dXJuITF9ZnVuY3Rpb24gUHZhKCl7cmV0dXJuIDE1MH12YXIgVHZhLEx2YSxwUXQsZlF0PXUoKCk9PntwcCgpO1R2YT16NCxMdmE9Im5hdGl2ZSI7aShEdmEsImNyZWF0ZSIpO2koJHZhLCJjbG9zZSIpO2koQXZhLCJwb3N0TWVzc2FnZSIpO2koRXZhLCJvbk1lc3NhZ2UiKTtpKEl2YSwiY2FuQmVVc2VkIik7aShQdmEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtwUXQ9e2NyZWF0ZTpEdmEsY2xvc2U6JHZhLG9uTWVzc2FnZTpFdmEscG9zdE1lc3NhZ2U6QXZhLGNhbkJlVXNlZDpJdmEsdHlwZTpMdmEsYXZlcmFnZVJlc3BvbnNlVGltZTpQdmEsbWljcm9TZWNvbmRzOlR2YX19KTtmdW5jdGlvbiBOdmEodCl7bGV0IGU9ZlRlKCktdC50dGwscj10Lm1hcFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtsZXQgYT1yLm5leHQoKS52YWx1ZTtpZighYSlicmVhaztsZXQgcz1hWzBdO2lmKGFbMV08ZSl0Lm1hcC5kZWxldGUocyk7ZWxzZSBicmVha319ZnVuY3Rpb24gZlRlKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIEJ2LGhUZT11KCgpPT57QnY9Y2xhc3N7c3RhdGlje2kodGhpcywiT2JsaXZpb3VzU2V0Iil9dHRsO21hcD1uZXcgTWFwO190bz0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLnR0bD1lfWhhcyhlKXtsZXQgcj10aGlzLm1hcC5nZXQoZSk7cmV0dXJuIHR5cGVvZiByPiJ1Ij8hMTpyPGZUZSgpLXRoaXMudHRsPyh0aGlzLm1hcC5kZWxldGUoZSksITEpOiEwfWFkZChlKXt0aGlzLm1hcC5kZWxldGUoZSksdGhpcy5tYXAuc2V0KGUsZlRlKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLE52YSh0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19O2koTnZhLCJyZW1vdmVUb29PbGRWYWx1ZXMiKTtpKGZUZSwibm93Iil9KTtmdW5jdGlvbiB3Nigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxlPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpO3JldHVybiB0eXBlb2YgZS53ZWJXb3JrZXJTdXBwb3J0PiJ1IiYmKGUud2ViV29ya2VyU3VwcG9ydD0hMCksZS5pZGJ8fChlLmlkYj17fSksZS5pZGIudHRsfHwoZS5pZGIudHRsPTFlMyo0NSksZS5pZGIuZmFsbGJhY2tJbnRlcnZhbHx8KGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWw9MTUwKSx0LmlkYiYmdHlwZW9mIHQuaWRiLm9uY2xvc2U9PSJmdW5jdGlvbiImJihlLmlkYi5vbmNsb3NlPXQuaWRiLm9uY2xvc2UpLGUubG9jYWxzdG9yYWdlfHwoZS5sb2NhbHN0b3JhZ2U9e30pLGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXR8fChlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0PTFlMyo2MCksdC5tZXRob2RzJiYoZS5tZXRob2RzPXQubWV0aG9kcyksZS5ub2RlfHwoZS5ub2RlPXt9KSxlLm5vZGUudHRsfHwoZS5ub2RlLnR0bD0xZTMqNjAqMiksZS5ub2RlLm1heFBhcmFsbGVsV3JpdGVzfHwoZS5ub2RlLm1heFBhcmFsbGVsV3JpdGVzPTIwNDgpLHR5cGVvZiBlLm5vZGUudXNlRmFzdFBhdGg+InUiJiYoZS5ub2RlLnVzZUZhc3RQYXRoPSEwKSxlfXZhciBDZGU9dSgoKT0+e2kodzYsImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIil9KTtmdW5jdGlvbiBoUXQoKXtpZih0eXBlb2YgaW5kZXhlZERCPCJ1IilyZXR1cm4gaW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3c8InUiKXtpZih0eXBlb2Ygd2luZG93Lm1vekluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tb3pJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy53ZWJraXRJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cud2Via2l0SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cubXNJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubXNJbmRleGVkREJ9cmV0dXJuITF9ZnVuY3Rpb24gemRlKHQpe3QuY29tbWl0JiZ0LmNvbW1pdCgpfWZ1bmN0aW9uIEJ2YSh0KXt2YXIgZT1oUXQoKSxyPVJ2YSt0LGE9ZS5vcGVuKHIpO3JldHVybiBhLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihzKXt2YXIgbj1zLnRhcmdldC5yZXN1bHQ7bi5jcmVhdGVPYmplY3RTdG9yZSh0Yyx7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KX0sbmV3IFByb21pc2UoZnVuY3Rpb24ocyxuKXthLm9uZXJyb3I9ZnVuY3Rpb24obyl7cmV0dXJuIG4obyl9LGEub25zdWNjZXNzPWZ1bmN0aW9uKCl7cyhhLnJlc3VsdCl9fSl9ZnVuY3Rpb24gSHZhKHQsZSxyKXt2YXIgYT1EYXRlLm5vdygpLHM9e3V1aWQ6ZSx0aW1lOmEsZGF0YTpyfSxuPXQudHJhbnNhY3Rpb24oW3RjXSwicmVhZHdyaXRlIix5eik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8sbCl7bi5vbmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX0sbi5vbmVycm9yPWZ1bmN0aW9uKGQpe3JldHVybiBsKGQpfTt2YXIgYz1uLm9iamVjdFN0b3JlKHRjKTtjLmFkZChzKSx6ZGUobil9KX1mdW5jdGlvbiBOc24odCl7dmFyIGU9dC50cmFuc2FjdGlvbih0YywicmVhZG9ubHkiLHl6KSxyPWUub2JqZWN0U3RvcmUodGMpLGE9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMpe3Iub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihuKXt2YXIgbz1uLnRhcmdldC5yZXN1bHQ7bz8oYS5wdXNoKG8udmFsdWUpLG8uY29udGludWUoKSk6KHpkZShlKSxzKGEpKX19KX1mdW5jdGlvbiBxdmEodCxlKXt2YXIgcj10LnRyYW5zYWN0aW9uKHRjLCJyZWFkb25seSIseXopLGE9ci5vYmplY3RTdG9yZSh0Yykscz1bXSxuPUlEQktleVJhbmdlLmJvdW5kKGUrMSwxLzApO2lmKGEuZ2V0QWxsKXt2YXIgbz1hLmdldEFsbChuKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXtvLm9uZXJyb3I9ZnVuY3Rpb24oZil7cmV0dXJuIGQoZil9LG8ub25zdWNjZXNzPWZ1bmN0aW9uKGYpe2MoZi50YXJnZXQucmVzdWx0KX19KX1mdW5jdGlvbiBsKCl7dHJ5e3JldHVybiBuPUlEQktleVJhbmdlLmJvdW5kKGUrMSwxLzApLGEub3BlbkN1cnNvcihuKX1jYXRjaHtyZXR1cm4gYS5vcGVuQ3Vyc29yKCl9fXJldHVybiBpKGwsIm9wZW5DdXJzb3IiKSxuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe3ZhciBmPWwoKTtmLm9uZXJyb3I9ZnVuY3Rpb24ocCl7cmV0dXJuIGQocCl9LGYub25zdWNjZXNzPWZ1bmN0aW9uKHApe3ZhciBoPXAudGFyZ2V0LnJlc3VsdDtoP2gudmFsdWUuaWQ8ZSsxP2guY29udGludWUoZSsxKToocy5wdXNoKGgudmFsdWUpLGguY29udGludWUoKSk6KHpkZShyKSxjKHMpKX19KX1mdW5jdGlvbiBWdmEodCxlKXtpZih0LmNsb3NlZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgcj10LmRiLnRyYW5zYWN0aW9uKHRjLCJyZWFkd3JpdGUiLHl6KSxhPXIub2JqZWN0U3RvcmUodGMpO3JldHVybiBQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihzKXt2YXIgbj1hLmRlbGV0ZShzKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7bi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbygpfX0pfSkpfWZ1bmN0aW9uIGp2YSh0LGUpe3ZhciByPURhdGUubm93KCktZSxhPXQudHJhbnNhY3Rpb24odGMsInJlYWRvbmx5Iix5eikscz1hLm9iamVjdFN0b3JlKHRjKSxuPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvKXtzLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24obCl7dmFyIGM9bC50YXJnZXQucmVzdWx0O2lmKGMpe3ZhciBkPWMudmFsdWU7ZC50aW1lPHI/KG4ucHVzaChkKSxjLmNvbnRpbnVlKCkpOih6ZGUoYSksbyhuKSl9ZWxzZSBvKG4pfX0pfWZ1bmN0aW9uIFV2YSh0KXtyZXR1cm4ganZhKHQuZGIsdC5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIFZ2YSh0LGUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmlkfSkpfSl9ZnVuY3Rpb24gV3ZhKHQsZSl7cmV0dXJuIGU9dzYoZSksQnZhKHQpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGE9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTp0LG9wdGlvbnM6ZSx1dWlkOkM0KCksZU1JczpuZXcgQnYoZS5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOnRsLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjpyfTtyZXR1cm4gci5vbmNsb3NlPWZ1bmN0aW9uKCl7YS5jbG9zZWQ9ITAsZS5pZGIub25jbG9zZSYmZS5pZGIub25jbG9zZSgpfSxtUXQoYSksYX0pfWZ1bmN0aW9uIG1RdCh0KXt0LmNsb3NlZHx8Z1F0KHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gVjAodC5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbVF0KHQpfSl9ZnVuY3Rpb24gR3ZhKHQsZSl7cmV0dXJuISh0LnV1aWQ9PT1lLnV1aWR8fGUuZU1Jcy5oYXModC5pZCl8fHQuZGF0YS50aW1lPGUubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIGdRdCh0KXtyZXR1cm4gdC5jbG9zZWQ/dGw6dC5tZXNzYWdlc0NhbGxiYWNrP3F2YSh0LmRiLHQubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciByPWUuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiEhYX0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD50Lmxhc3RDdXJzb3JJZCYmKHQubGFzdEN1cnNvcklkPWEuaWQpLGF9KS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIEd2YShhLHQpfSkuc29ydChmdW5jdGlvbihhLHMpe3JldHVybiBhLnRpbWUtcy50aW1lfSk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihhKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJih0LmVNSXMuYWRkKGEuaWQpLHQubWVzc2FnZXNDYWxsYmFjayhhLmRhdGEpKX0pLHRsfSk6dGx9ZnVuY3Rpb24gWXZhKHQpe3QuY2xvc2VkPSEwLHQuZGIuY2xvc2UoKX1mdW5jdGlvbiBLdmEodCxlKXtyZXR1cm4gdC53cml0ZUJsb2NrUHJvbWlzZT10LndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gSHZhKHQuZGIsdC51dWlkLGUpfSkudGhlbihmdW5jdGlvbigpe2RRdCgwLDEwKT09PTAmJlV2YSh0KX0pLHQud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gWnZhKHQsZSxyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsdC5tZXNzYWdlc0NhbGxiYWNrPWUsZ1F0KHQpfWZ1bmN0aW9uIFF2YSgpe3JldHVybiEhaFF0KCl9ZnVuY3Rpb24gWHZhKHQpe3JldHVybiB0LmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIE92YSxSdmEsdGMseXosRnZhLGJRdCx4UXQ9dSgoKT0+e3BwKCk7aFRlKCk7Q2RlKCk7T3ZhPXo0LFJ2YT0icHVia2V5LmJyb2FkY2FzdC1jaGFubmVsLTAtIix0Yz0ibWVzc2FnZXMiLHl6PXtkdXJhYmlsaXR5OiJyZWxheGVkIn0sRnZhPSJpZGIiO2koaFF0LCJnZXRJZGIiKTtpKHpkZSwiY29tbWl0SW5kZXhlZERCVHJhbnNhY3Rpb24iKTtpKEJ2YSwiY3JlYXRlRGF0YWJhc2UiKTtpKEh2YSwid3JpdGVNZXNzYWdlIik7aShOc24sImdldEFsbE1lc3NhZ2VzIik7aShxdmEsImdldE1lc3NhZ2VzSGlnaGVyVGhhbiIpO2koVnZhLCJyZW1vdmVNZXNzYWdlc0J5SWQiKTtpKGp2YSwiZ2V0T2xkTWVzc2FnZXMiKTtpKFV2YSwiY2xlYW5PbGRNZXNzYWdlcyIpO2koV3ZhLCJjcmVhdGUiKTtpKG1RdCwiX3JlYWRMb29wIik7aShHdmEsIl9maWx0ZXJNZXNzYWdlIik7aShnUXQsInJlYWROZXdNZXNzYWdlcyIpO2koWXZhLCJjbG9zZSIpO2koS3ZhLCJwb3N0TWVzc2FnZSIpO2koWnZhLCJvbk1lc3NhZ2UiKTtpKFF2YSwiY2FuQmVVc2VkIik7aShYdmEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtiUXQ9e2NyZWF0ZTpXdmEsY2xvc2U6WXZhLG9uTWVzc2FnZTpadmEscG9zdE1lc3NhZ2U6S3ZhLGNhbkJlVXNlZDpRdmEsdHlwZTpGdmEsYXZlcmFnZVJlc3BvbnNlVGltZTpYdmEsbWljcm9TZWNvbmRzOk92YX19KTtmdW5jdGlvbiB2UXQoKXt2YXIgdDtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gbnVsbDt0cnl7dD13aW5kb3cubG9jYWxTdG9yYWdlLHQ9d2luZG93WyJpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlIl18fHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIHlRdCh0KXtyZXR1cm4gZXlhK3R9ZnVuY3Rpb24gcnlhKHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe1YwKCkudGhlbihmdW5jdGlvbigpe3ZhciBhPXlRdCh0LmNoYW5uZWxOYW1lKSxzPXt0b2tlbjpDNCgpLHRpbWU6RGF0ZS5ub3coKSxkYXRhOmUsdXVpZDp0LnV1aWR9LG49SlNPTi5zdHJpbmdpZnkocyk7dlF0KCkuc2V0SXRlbShhLG4pO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO28uaW5pdEV2ZW50KCJzdG9yYWdlIiwhMCwhMCksby5rZXk9YSxvLm5ld1ZhbHVlPW4sd2luZG93LmRpc3BhdGNoRXZlbnQobykscigpfSl9KX1mdW5jdGlvbiBheWEodCxlKXt2YXIgcj15UXQodCksYT1pKGZ1bmN0aW9uKG4pe24ua2V5PT09ciYmZShKU09OLnBhcnNlKG4ubmV3VmFsdWUpKX0sImxpc3RlbmVyIik7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIixhKSxhfWZ1bmN0aW9uIGl5YSh0KXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsdCl9ZnVuY3Rpb24gc3lhKHQsZSl7aWYoZT13NihlKSwhd1F0KCkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBsb2NhbHN0b3JhZ2UgY2Fubm90IGJlIHVzZWQiKTt2YXIgcj1DNCgpLGE9bmV3IEJ2KGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXQpLHM9e2NoYW5uZWxOYW1lOnQsdXVpZDpyLGVNSXM6YX07cmV0dXJuIHMubGlzdGVuZXI9YXlhKHQsZnVuY3Rpb24obil7cy5tZXNzYWdlc0NhbGxiYWNrJiZuLnV1aWQhPT1yJiYoIW4udG9rZW58fGEuaGFzKG4udG9rZW4pfHxuLmRhdGEudGltZSYmbi5kYXRhLnRpbWU8cy5tZXNzYWdlc0NhbGxiYWNrVGltZXx8KGEuYWRkKG4udG9rZW4pLHMubWVzc2FnZXNDYWxsYmFjayhuLmRhdGEpKSl9KSxzfWZ1bmN0aW9uIG55YSh0KXtpeWEodC5saXN0ZW5lcil9ZnVuY3Rpb24gb3lhKHQsZSxyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsdC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gd1F0KCl7dmFyIHQ9dlF0KCk7aWYoIXQpcmV0dXJuITE7dHJ5e3ZhciBlPSJfX2Jyb2FkY2FzdGNoYW5uZWxfY2hlY2siO3Quc2V0SXRlbShlLCJ3b3JrcyIpLHQucmVtb3ZlSXRlbShlKX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBseWEoKXt2YXIgdD0xMjAsZT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIGUuaW5jbHVkZXMoInNhZmFyaSIpJiYhZS5pbmNsdWRlcygiY2hyb21lIik/dCoyOnR9dmFyIEp2YSxleWEsdHlhLGtRdCxTUXQ9dSgoKT0+e2hUZSgpO0NkZSgpO3BwKCk7SnZhPXo0LGV5YT0icHVia2V5LmJyb2FkY2FzdENoYW5uZWwtIix0eWE9ImxvY2Fsc3RvcmFnZSI7aSh2UXQsImdldExvY2FsU3RvcmFnZSIpO2koeVF0LCJzdG9yYWdlS2V5Iik7aShyeWEsInBvc3RNZXNzYWdlIik7aShheWEsImFkZFN0b3JhZ2VFdmVudExpc3RlbmVyIik7aShpeWEsInJlbW92ZVN0b3JhZ2VFdmVudExpc3RlbmVyIik7aShzeWEsImNyZWF0ZSIpO2kobnlhLCJjbG9zZSIpO2kob3lhLCJvbk1lc3NhZ2UiKTtpKHdRdCwiY2FuQmVVc2VkIik7aShseWEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtrUXQ9e2NyZWF0ZTpzeWEsY2xvc2U6bnlhLG9uTWVzc2FnZTpveWEscG9zdE1lc3NhZ2U6cnlhLGNhbkJlVXNlZDp3UXQsdHlwZTp0eWEsYXZlcmFnZVJlc3BvbnNlVGltZTpseWEsbWljcm9TZWNvbmRzOkp2YX19KTtmdW5jdGlvbiBkeWEodCl7dmFyIGU9e3RpbWU6TVF0KCksbmFtZTp0LG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbH07cmV0dXJuIG1UZS5hZGQoZSksZX1mdW5jdGlvbiB1eWEodCl7bVRlLmRlbGV0ZSh0KX1mdW5jdGlvbiBweWEodCxlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocil7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYT1BcnJheS5mcm9tKG1UZSk7YS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MubmFtZT09PXQubmFtZSYmcyE9PXQmJnMubWVzc2FnZXNDYWxsYmFjayYmcy50aW1lPGUudGltZSYmcy5tZXNzYWdlc0NhbGxiYWNrKGUpfSkscigpfSxDUXQpfSl9ZnVuY3Rpb24gZnlhKHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gaHlhKCl7cmV0dXJuITB9ZnVuY3Rpb24gbXlhKCl7cmV0dXJuIENRdH12YXIgTVF0LGN5YSxtVGUsQ1F0LHpRdCxfUXQ9dSgoKT0+e3BwKCk7TVF0PXo0LGN5YT0ic2ltdWxhdGUiLG1UZT1uZXcgU2V0O2koZHlhLCJjcmVhdGUiKTtpKHV5YSwiY2xvc2UiKTtDUXQ9NTtpKHB5YSwicG9zdE1lc3NhZ2UiKTtpKGZ5YSwib25NZXNzYWdlIik7aShoeWEsImNhbkJlVXNlZCIpO2kobXlhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7elF0PXtjcmVhdGU6ZHlhLGNsb3NlOnV5YSxvbk1lc3NhZ2U6ZnlhLHBvc3RNZXNzYWdlOnB5YSxjYW5CZVVzZWQ6aHlhLHR5cGU6Y3lhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6bXlhLG1pY3JvU2Vjb25kczpNUXR9fSk7ZnVuY3Rpb24gZ1RlKHQpe3ZhciBlPVtdLmNvbmNhdCh0Lm1ldGhvZHMsVFF0KS5maWx0ZXIoQm9vbGVhbik7aWYodC50eXBlKXtpZih0LnR5cGU9PT0ic2ltdWxhdGUiKXJldHVybiB6UXQ7dmFyIHI9ZS5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGU9PT10LnR5cGV9KTtpZihyKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigibWV0aG9kLXR5cGUgIit0LnR5cGUrIiBub3QgZm91bmQiKX10LndlYldvcmtlclN1cHBvcnR8fChlPWUuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGUhPT0iaWRiIn0pKTt2YXIgYT1lLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuY2FuQmVVc2VkKCl9KTtpZihhKXJldHVybiBhO3Rocm93IG5ldyBFcnJvcigiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KFRRdC5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMudHlwZX0pKSl9dmFyIFRRdCxMUXQ9dSgoKT0+e2ZRdCgpO3hRdCgpO1NRdCgpO19RdCgpO1RRdD1bcFF0LGJRdCxrUXRdO2koZ1RlLCJjaG9vc2VNZXRob2QiKX0pO2Z1bmN0aW9uIGJ5YSh0KXt0PXc2KHQpO3ZhciBlPWdUZSh0KTtyZXR1cm4gZS50eXBlPT09Im5vZGUiP2UuY2xlYXJOb2RlRm9sZGVyKCkudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSk6bFF0fWZ1bmN0aW9uIHh5YSh0KXtiVGU9dH1mdW5jdGlvbiBEUXQodCxlLHIpe3ZhciBhPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpLHM9e3RpbWU6YSx0eXBlOmUsZGF0YTpyfSxuPXQuX3ByZXBQP3QuX3ByZXBQOnRsO3JldHVybiBuLnRoZW4oZnVuY3Rpb24oKXt2YXIgbz10Lm1ldGhvZC5wb3N0TWVzc2FnZSh0Ll9zdGF0ZSxzKTtyZXR1cm4gdC5fdU1QLmFkZChvKSxvLmNhdGNoKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Ll91TVAuZGVsZXRlKG8pfSksb30pfWZ1bmN0aW9uIHZ5YSh0KXt2YXIgZT10Lm1ldGhvZC5jcmVhdGUodC5uYW1lLHQub3B0aW9ucyk7b1F0KGUpPyh0Ll9wcmVwUD1lLGUudGhlbihmdW5jdGlvbihyKXt0Ll9zdGF0ZT1yfSkpOnQuX3N0YXRlPWV9ZnVuY3Rpb24gJFF0KHQpe3JldHVybiB0Ll9hZGRFTC5tZXNzYWdlLmxlbmd0aD4wfHx0Ll9hZGRFTC5pbnRlcm5hbC5sZW5ndGg+MH1mdW5jdGlvbiBBUXQodCxlLHIpe3QuX2FkZEVMW2VdLnB1c2gocikseXlhKHQpfWZ1bmN0aW9uIEVRdCh0LGUscil7dC5fYWRkRUxbZV09dC5fYWRkRUxbZV0uZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhIT09cn0pLHd5YSh0KX1mdW5jdGlvbiB5eWEodCl7aWYoIXQuX2lMJiYkUXQodCkpe3ZhciBlPWkoZnVuY3Rpb24ocyl7dC5fYWRkRUxbcy50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3MudGltZT49bi50aW1lJiZuLmZuKHMuZGF0YSl9KX0sImxpc3RlbmVyRm4iKSxyPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpO3QuX3ByZXBQP3QuX3ByZXBQLnRoZW4oZnVuY3Rpb24oKXt0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxyKX0pOih0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxyKSl9fWZ1bmN0aW9uIHd5YSh0KXtpZih0Ll9pTCYmISRRdCh0KSl7dC5faUw9ITE7dmFyIGU9dC5tZXRob2QubWljcm9TZWNvbmRzKCk7dC5tZXRob2Qub25NZXNzYWdlKHQuX3N0YXRlLG51bGwsZSl9fXZhciB4VGUsZ3lhLGs2LGJUZSxJUXQ9dSgoKT0+e3BwKCk7TFF0KCk7Q2RlKCk7eFRlPW5ldyBTZXQsZ3lhPTAsazY9aShmdW5jdGlvbihlLHIpe3RoaXMuaWQ9Z3lhKysseFRlLmFkZCh0aGlzKSx0aGlzLm5hbWU9ZSxiVGUmJihyPWJUZSksdGhpcy5vcHRpb25zPXc2KHIpLHRoaXMubWV0aG9kPWdUZSh0aGlzLm9wdGlvbnMpLHRoaXMuX2lMPSExLHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTD17bWVzc2FnZTpbXSxpbnRlcm5hbDpbXX0sdGhpcy5fdU1QPW5ldyBTZXQsdGhpcy5fYmVmQz1bXSx0aGlzLl9wcmVwUD1udWxsLHZ5YSh0aGlzKX0sIkJyb2FkY2FzdENoYW5uZWwiKTtrNi5fcHVia2V5PSEwO2koYnlhLCJjbGVhck5vZGVGb2xkZXIiKTtpKHh5YSwiZW5mb3JjZU9wdGlvbnMiKSxrNi5wcm90b3R5cGU9e3Bvc3RNZXNzYWdlOmkoZnVuY3Rpb24oZSl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCk6IENhbm5vdCBwb3N0IG1lc3NhZ2UgYWZ0ZXIgY2hhbm5lbCBoYXMgY2xvc2VkICIrSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiBEUXQodGhpcywibWVzc2FnZSIsZSl9LCJwb3N0TWVzc2FnZSIpLHBvc3RJbnRlcm5hbDppKGZ1bmN0aW9uKGUpe3JldHVybiBEUXQodGhpcywiaW50ZXJuYWwiLGUpfSwicG9zdEludGVybmFsIiksc2V0IG9ubWVzc2FnZSh0KXt2YXIgZT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmUsZm46dH07RVF0KHRoaXMsIm1lc3NhZ2UiLHRoaXMuX29uTUwpLHQmJnR5cGVvZiB0PT0iZnVuY3Rpb24iPyh0aGlzLl9vbk1MPXIsQVF0KHRoaXMsIm1lc3NhZ2UiLHIpKTp0aGlzLl9vbk1MPW51bGx9LGFkZEV2ZW50TGlzdGVuZXI6aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLHM9e3RpbWU6YSxmbjpyfTtBUXQodGhpcyxlLHMpfSwiYWRkRXZlbnRMaXN0ZW5lciIpLHJlbW92ZUV2ZW50TGlzdGVuZXI6aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXMuX2FkZEVMW2VdLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZm49PT1yfSk7RVF0KHRoaXMsZSxhKX0sInJlbW92ZUV2ZW50TGlzdGVuZXIiKSxjbG9zZTppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighdGhpcy5jbG9zZWQpe3hUZS5kZWxldGUodGhpcyksdGhpcy5jbG9zZWQ9ITA7dmFyIHI9dGhpcy5fcHJlcFA/dGhpcy5fcHJlcFA6dGw7cmV0dXJuIHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTC5tZXNzYWdlPVtdLHIudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChBcnJheS5mcm9tKGUuX3VNUCkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChlLl9iZWZDLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYSgpfSkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLm1ldGhvZC5jbG9zZShlLl9zdGF0ZSl9KX19LCJjbG9zZSIpLGdldCB0eXBlKCl7cmV0dXJuIHRoaXMubWV0aG9kLnR5cGV9LGdldCBpc0Nsb3NlZCgpe3JldHVybiB0aGlzLmNsb3NlZH19O2koRFF0LCJfcG9zdCIpO2kodnlhLCJfcHJlcGFyZUNoYW5uZWwiKTtpKCRRdCwiX2hhc01lc3NhZ2VMaXN0ZW5lcnMiKTtpKEFRdCwiX2FkZExpc3RlbmVyT2JqZWN0Iik7aShFUXQsIl9yZW1vdmVMaXN0ZW5lck9iamVjdCIpO2koeXlhLCJfc3RhcnRMaXN0ZW5pbmciKTtpKHd5YSwiX3N0b3BMaXN0ZW5pbmciKX0pO2Z1bmN0aW9uIFBRdCh0KXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIGU9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLGUoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7dCgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXt0KCl9LCEwKX19dmFyIE5RdD11KCgpPT57aShQUXQsImFkZEJyb3dzZXIiKX0pO2Z1bmN0aW9uIE9RdCh0KXtwcm9jZXNzLm9uKCJleGl0IixmdW5jdGlvbigpe3JldHVybiB0KCl9KSxwcm9jZXNzLm9uKCJiZWZvcmVFeGl0IixmdW5jdGlvbigpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBwcm9jZXNzLmV4aXQoKX0pfSkscHJvY2Vzcy5vbigiU0lHSU5UIixmdW5jdGlvbigpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBwcm9jZXNzLmV4aXQoKX0pfSkscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKGUpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe2NvbnNvbGUudHJhY2UoZSkscHJvY2Vzcy5leGl0KDEwMSl9KX0pfXZhciBSUXQ9dSgoKT0+e2koT1F0LCJhZGROb2RlIil9KTtmdW5jdGlvbiBNeWEoKXtGUXR8fChGUXQ9ITAsU3lhKEN5YSkpfWZ1bmN0aW9uIEJRdCh0KXtpZihNeWEoKSx0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIkxpc3RlbmVyIGlzIG5vIGZ1bmN0aW9uIik7UzYuYWRkKHQpO3ZhciBlPXtyZW1vdmU6aShmdW5jdGlvbigpe3JldHVybiBTNi5kZWxldGUodCl9LCJyZW1vdmUiKSxydW46aShmdW5jdGlvbigpe3JldHVybiBTNi5kZWxldGUodCksdCgpfSwicnVuIil9O3JldHVybiBlfWZ1bmN0aW9uIEN5YSgpe3ZhciB0PVtdO3JldHVybiBTNi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaChlKCkpLFM2LmRlbGV0ZShlKX0pLFByb21pc2UuYWxsKHQpfWZ1bmN0aW9uIGRubigpe1M2LmNsZWFyKCl9ZnVuY3Rpb24gdW5uKCl7cmV0dXJuIFM2LnNpemV9dmFyIGt5YSxTeWEsUzYsRlF0LEhRdD11KCgpPT57TlF0KCk7UlF0KCk7a3lhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0eXBlb2YgcHJvY2VzczwidSI/cHJvY2VzczowKT09PSJbb2JqZWN0IHByb2Nlc3NdIixTeWE9a3lhP09RdDpQUXQsUzY9bmV3IFNldCxGUXQ9ITE7aShNeWEsInN0YXJ0TGlzdGVuaW5nIik7aShCUXQsImFkZCIpO2koQ3lhLCJydW5BbGwiKTtpKGRubiwicmVtb3ZlQWxsIik7aSh1bm4sImdldFNpemUiKX0pO2Z1bmN0aW9uIF80KHQsZSl7dmFyIHI9e2NvbnRleHQ6ImxlYWRlciIsYWN0aW9uOmUsdG9rZW46dC50b2tlbn07cmV0dXJuIHQuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0SW50ZXJuYWwocil9ZnVuY3Rpb24gd3oodCl7dC5pc0xlYWRlcj0hMCx0Ll9oYXNMZWFkZXI9ITA7dmFyIGU9QlF0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuZGllKCl9KTt0Ll91bmwucHVzaChlKTt2YXIgcj1pKGZ1bmN0aW9uKHMpe3MuY29udGV4dD09PSJsZWFkZXIiJiZzLmFjdGlvbj09PSJhcHBseSImJl80KHQsInRlbGwiKSxzLmNvbnRleHQ9PT0ibGVhZGVyIiYmcy5hY3Rpb249PT0idGVsbCImJiF0Ll9kcExDJiYodC5fZHBMQz0hMCx0Ll9kcEwoKSxfNCh0LCJ0ZWxsIikpfSwiaXNMZWFkZXJMaXN0ZW5lciIpO3JldHVybiB0LmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpLHQuX2xzdG5zLnB1c2gociksXzQodCwidGVsbCIpfXZhciBfZGU9dSgoKT0+e0hRdCgpO2koXzQsInNlbmRMZWFkZXJNZXNzYWdlIik7aSh3eiwiYmVMZWFkZXIiKX0pO3ZhciB2VGUscVF0LFZRdD11KCgpPT57cHAoKTtfZGUoKTt2VGU9aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPWUsZS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGllKCl9KSx0aGlzLl9vcHRpb25zPXIsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPUM0KCksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMSx0aGlzLl93S01DPXt9LHRoaXMubE49InB1YmtleS1iY3x8IitlLm1ldGhvZC50eXBlKyJ8fCIrZS5uYW1lfSwiTGVhZGVyRWxlY3Rpb25XZWJMb2NrIikscVF0PSJMZWFkZXJFbGVjdGlvbldlYkxvY2suZGllKCkgY2FsbGVkIjt2VGUucHJvdG90eXBlPXtoYXNMZWFkZXI6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIG5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGE9ci5oZWxkP3IuaGVsZC5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHMubmFtZT09PWUubE59KTpbXTtyZXR1cm4hIShhJiZhLmxlbmd0aD4wKX0pfSwiaGFzTGVhZGVyIiksYXdhaXRMZWFkZXJzaGlwOmkoZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLl93TE1QKXt0aGlzLl93S01DLmM9bmV3IEFib3J0Q29udHJvbGxlcjt2YXIgcj1uZXcgUHJvbWlzZShmdW5jdGlvbihhLHMpe2UuX3dLTUMucmVzPWEsZS5fd0tNQy5yZWo9c30pO3RoaXMuX3dMTVA9bmV3IFByb21pc2UoZnVuY3Rpb24oYSxzKXtuYXZpZ2F0b3IubG9ja3MucmVxdWVzdChlLmxOLHtzaWduYWw6ZS5fd0tNQy5jLnNpZ25hbH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5fd0tNQy5jPXZvaWQgMCx3eihlKSxhKCkscn0pLmNhdGNoKGZ1bmN0aW9uKG4pe24ubWVzc2FnZSYmbi5tZXNzYWdlPT09cVF0fHwoZS5fd0tNQy5yZWomJmUuX3dLTUMucmVqKG4pLHMobikpfSl9KX1yZXR1cm4gdGhpcy5fd0xNUH0sImF3YWl0TGVhZGVyc2hpcCIpLHNldCBvbmR1cGxpY2F0ZSh0KXt9LGRpZTppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fbHN0bnMuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixyKX0pLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubC5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JldHVybiByLnJlbW92ZSgpfSksdGhpcy5fdW5sPVtdLHRoaXMuaXNMZWFkZXImJih0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCx0aGlzLl93S01DLnJlcyYmdGhpcy5fd0tNQy5yZXMoKSx0aGlzLl93S01DLmMmJnRoaXMuX3dLTUMuYy5hYm9ydChuZXcgRXJyb3IocVF0KSksXzQodGhpcywiZGVhdGgiKX0sImRpZSIpfX0pO2Z1bmN0aW9uIHp5YSh0KXtyZXR1cm4gdC5pc0xlYWRlcj90bDpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgcj0hMTtmdW5jdGlvbiBhKCl7cnx8KHI9ITAsdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSxlKCEwKSl9aShhLCJmaW5pc2giKSx0LmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXt0LmlzTGVhZGVyJiZhKCl9KTt2YXIgcz1pKGZ1bmN0aW9uKCl7cmV0dXJuIFYwKHQuX29wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkudGhlbihmdW5jdGlvbigpe2lmKCEodC5pc0RlYWR8fHIpKWlmKHQuaXNMZWFkZXIpYSgpO2Vsc2UgcmV0dXJuIHQuYXBwbHlPbmNlKCEwKS50aGVuKGZ1bmN0aW9uKCl7dC5pc0xlYWRlcj9hKCk6cygpfSl9KX0sInRyeU9uRmFsbEJhY2siKTtzKCk7dmFyIG49aShmdW5jdGlvbihsKXtsLmNvbnRleHQ9PT0ibGVhZGVyIiYmbC5hY3Rpb249PT0iZGVhdGgiJiYodC5faGFzTGVhZGVyPSExLHQuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe3QuaXNMZWFkZXImJmEoKX0pKX0sIndoZW5EZWF0aExpc3RlbmVyIik7dC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSx0Ll9sc3Rucy5wdXNoKG4pfSl9ZnVuY3Rpb24gX3lhKHQsZSl7cmV0dXJuIHR8fCh0PXt9KSx0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLHQuZmFsbGJhY2tJbnRlcnZhbHx8KHQuZmFsbGJhY2tJbnRlcnZhbD0zZTMpLHQucmVzcG9uc2VUaW1lfHwodC5yZXNwb25zZVRpbWU9ZS5tZXRob2QuYXZlcmFnZVJlc3BvbnNlVGltZShlLm9wdGlvbnMpKSx0fWZ1bmN0aW9uIFR5YSh0LGUpe2lmKHQuX2xlYWRlckVsZWN0b3IpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsIGFscmVhZHkgaGFzIGEgbGVhZGVyLWVsZWN0b3IiKTtlPV95YShlLHQpO3ZhciByPXVRdCgpP25ldyB2VGUodCxlKTpuZXcgalF0KHQsZSk7cmV0dXJuIHQuX2JlZkMucHVzaChmdW5jdGlvbigpe3JldHVybiByLmRpZSgpfSksdC5fbGVhZGVyRWxlY3Rvcj1yLHJ9dmFyIGpRdCxVUXQ9dSgoKT0+e3BwKCk7X2RlKCk7VlF0KCk7alF0PWkoZnVuY3Rpb24oZSxyKXt2YXIgYT10aGlzO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1lLHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPUM0KCksdGhpcy5fYXBsUT10bCx0aGlzLl9hcGxRQz0wLHRoaXMuX3VubD1bXSx0aGlzLl9sc3Rucz1bXSx0aGlzLl9kcEw9ZnVuY3Rpb24oKXt9LHRoaXMuX2RwTEM9ITE7dmFyIHM9aShmdW5jdGlvbihvKXtvLmNvbnRleHQ9PT0ibGVhZGVyIiYmKG8uYWN0aW9uPT09ImRlYXRoIiYmKGEuX2hhc0xlYWRlcj0hMSksby5hY3Rpb249PT0idGVsbCImJihhLl9oYXNMZWFkZXI9ITApKX0sImhhc0xlYWRlckxpc3RlbmVyIik7dGhpcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixzKSx0aGlzLl9sc3Rucy5wdXNoKHMpfSwiTGVhZGVyRWxlY3Rpb24iKTtqUXQucHJvdG90eXBlPXtoYXNMZWFkZXI6aShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5faGFzTGVhZGVyKX0sImhhc0xlYWRlciIpLGFwcGx5T25jZTppKGZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7aWYodGhpcy5pc0xlYWRlcilyZXR1cm4gVjAoMCwhMCk7aWYodGhpcy5pc0RlYWQpcmV0dXJuIFYwKDAsITEpO2lmKHRoaXMuX2FwbFFDPjEpcmV0dXJuIHRoaXMuX2FwbFE7dmFyIGE9aShmdW5jdGlvbigpe2lmKHIuaXNMZWFkZXIpcmV0dXJuIGNRdDt2YXIgbj0hMSxvLGw9bmV3IFByb21pc2UoZnVuY3Rpb24oZil7bz1pKGZ1bmN0aW9uKCl7bj0hMCxmKCl9LCJzdG9wQ3JpdGVyaWFQcm9taXNlUmVzb2x2ZSIpfSksYz1pKGZ1bmN0aW9uKHApe3AuY29udGV4dD09PSJsZWFkZXIiJiZwLnRva2VuIT1yLnRva2VuJiYocC5hY3Rpb249PT0iYXBwbHkiJiZwLnRva2VuPnIudG9rZW4mJm8oKSxwLmFjdGlvbj09PSJ0ZWxsIiYmKG8oKSxyLl9oYXNMZWFkZXI9ITApKX0sImhhbmRsZU1lc3NhZ2UiKTtyLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGMpO3ZhciBkPWU/ci5fb3B0aW9ucy5yZXNwb25zZVRpbWUqNDpyLl9vcHRpb25zLnJlc3BvbnNlVGltZTtyZXR1cm4gXzQociwiYXBwbHkiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbVjAoZCksbC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBfNChyLCJhcHBseSIpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW1YwKGQpLGwudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbigpe3JldHVybiByLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGMpLG4/ITE6d3oocikudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSl9KX0sImFwcGx5UnVuIik7cmV0dXJuIHRoaXMuX2FwbFFDPXRoaXMuX2FwbFFDKzEsdGhpcy5fYXBsUT10aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYSgpfSkudGhlbihmdW5jdGlvbigpe3IuX2FwbFFDPXIuX2FwbFFDLTF9KSx0aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5pc0xlYWRlcn0pfSwiYXBwbHlPbmNlIiksYXdhaXRMZWFkZXJzaGlwOmkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYUxQfHwodGhpcy5fYUxQPXp5YSh0aGlzKSksdGhpcy5fYUxQfSwiYXdhaXRMZWFkZXJzaGlwIiksc2V0IG9uZHVwbGljYXRlKHQpe3RoaXMuX2RwTD10fSxkaWU6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIGUuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscil9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLF80KHRoaXMsImRlYXRoIil9LCJkaWUiKX07aSh6eWEsIl9hd2FpdExlYWRlcnNoaXBPbmNlIik7aShfeWEsImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIik7aShUeWEsImNyZWF0ZUxlYWRlckVsZWN0aW9uIil9KTt2YXIgV1F0PXUoKCk9PntJUXQoKTtVUXQoKTtfZGUoKX0pO3ZhciBHUXQ9dSgoKT0+e3Q2KCk7VzJlKCk7TWRlKCk7V1F0KCl9KTt2YXIgeVRlLHdUZSxZUXQ9dSgoKT0+e0dRdCgpO3lUZT1nbG9iYWxUaGlzLkJyb2FkY2FzdENoYW5uZWw7eVRlfHwoeVRlPWs2KTt3VGU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVlc0NvbW1zIil9Y29uc3RydWN0b3IoKXt0aGlzLmJyb2FkY2FzdENoYW5uZWw9bmV3IHlUZSgiZGVlcy1jb21tcyIpLHRoaXMudHlwZWRyb3V0ZXI9bmV3IF8xLlR5cGVkUm91dGVyLHRoaXMudHlwZWR0YXJnZXQ9bmV3IF8xLlR5cGVkVGFyZ2V0KHtwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyOmkoYXN5bmMgZT0+e3RoaXMucG9zdE1lc3NhZ2UoZSl9LCJwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyIiksdHlwZWRSb3V0ZXJSZWY6dGhpcy50eXBlZHJvdXRlcn0pLHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2U9YXN5bmMgZT0+e2xldCByPWUubWV0aG9kP2U6ZS5kYXRhO2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHIpKTtsZXQgYT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2Uocix7c2tpcEhvb2tzOiEwfSk7YSYmIWEuZXJyb3ImJnRoaXMucG9zdE1lc3NhZ2UoYSl9fWNyZWF0ZVR5cGVkUmVxdWVzdChlKXtyZXR1cm4gbmV3IF8xLlR5cGVkUmVxdWVzdCh0aGlzLnR5cGVkdGFyZ2V0LGUpfWFzeW5jIHBvc3RNZXNzYWdlKGUpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShlKX1hc3luYyBjcmVhdGVUeXBlZEhhbmRsZXIoZSxyKXt0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgXzEuVHlwZWRIYW5kbGVyKGUscikpfX19KTt2YXIga3o9e307VmUoa3ose0RlZXNDb21tczooKT0+d1RlfSk7dmFyIEtRdD11KCgpPT57WVF0KCl9KTt2YXIgQzY9TnQoKElubixNNik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWlF0KHQpe3JldHVybiB0eXBlb2YgdD4idSJ8fHQ9PT1udWxsfWkoWlF0LCJpc05vdGhpbmciKTtmdW5jdGlvbiBEeWEodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGx9aShEeWEsImlzT2JqZWN0Iik7ZnVuY3Rpb24gJHlhKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6WlF0KHQpP1tdOlt0XX1pKCR5YSwidG9BcnJheSIpO2Z1bmN0aW9uIEF5YSh0LGUpe3ZhciByLGEscyxuO2lmKGUpZm9yKG49T2JqZWN0LmtleXMoZSkscj0wLGE9bi5sZW5ndGg7cjxhO3IrPTEpcz1uW3JdLHRbc109ZVtzXTtyZXR1cm4gdH1pKEF5YSwiZXh0ZW5kIik7ZnVuY3Rpb24gRXlhKHQsZSl7dmFyIHI9IiIsYTtmb3IoYT0wO2E8ZTthKz0xKXIrPXQ7cmV0dXJuIHJ9aShFeWEsInJlcGVhdCIpO2Z1bmN0aW9uIEl5YSh0KXtyZXR1cm4gdD09PTAmJk51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PTEvdH1pKEl5YSwiaXNOZWdhdGl2ZVplcm8iKSxNNi5leHBvcnRzLmlzTm90aGluZz1aUXQsTTYuZXhwb3J0cy5pc09iamVjdD1EeWEsTTYuZXhwb3J0cy50b0FycmF5PSR5YSxNNi5leHBvcnRzLnJlcGVhdD1FeWEsTTYuZXhwb3J0cy5pc05lZ2F0aXZlWmVybz1JeWEsTTYuZXhwb3J0cy5leHRlbmQ9QXlhfSk7dmFyIEh2PU50KChObm4sUVF0KT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBTeih0LGUpe0Vycm9yLmNhbGwodGhpcyksdGhpcy5uYW1lPSJZQU1MRXhjZXB0aW9uIix0aGlzLnJlYXNvbj10LHRoaXMubWFyaz1lLHRoaXMubWVzc2FnZT0odGhpcy5yZWFzb258fCIodW5rbm93biByZWFzb24pIikrKHRoaXMubWFyaz8iICIrdGhpcy5tYXJrLnRvU3RyaW5nKCk6IiIpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja3x8IiJ9aShTeiwiWUFNTEV4Y2VwdGlvbiIpLFN6LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksU3oucHJvdG90eXBlLmNvbnN0cnVjdG9yPVN6LFN6LnByb3RvdHlwZS50b1N0cmluZz1pKGZ1bmN0aW9uKGUpe3ZhciByPXRoaXMubmFtZSsiOiAiO3JldHVybiByKz10aGlzLnJlYXNvbnx8Iih1bmtub3duIHJlYXNvbikiLCFlJiZ0aGlzLm1hcmsmJihyKz0iICIrdGhpcy5tYXJrLnRvU3RyaW5nKCkpLHJ9LCJ0b1N0cmluZyIpLFFRdC5leHBvcnRzPVN6fSk7dmFyIGVYdD1OdCgoUm5uLEpRdCk9PnsidXNlIHN0cmljdCI7dmFyIFhRdD1DNigpO2Z1bmN0aW9uIGtUZSh0LGUscixhLHMpe3RoaXMubmFtZT10LHRoaXMuYnVmZmVyPWUsdGhpcy5wb3NpdGlvbj1yLHRoaXMubGluZT1hLHRoaXMuY29sdW1uPXN9aShrVGUsIk1hcmsiKSxrVGUucHJvdG90eXBlLmdldFNuaXBwZXQ9aShmdW5jdGlvbihlLHIpe3ZhciBhLHMsbixvLGw7aWYoIXRoaXMuYnVmZmVyKXJldHVybiBudWxsO2ZvcihlPWV8fDQscj1yfHw3NSxhPSIiLHM9dGhpcy5wb3NpdGlvbjtzPjAmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KHMtMSkpPT09LTE7KWlmKHMtPTEsdGhpcy5wb3NpdGlvbi1zPnIvMi0xKXthPSIgLi4uICIscys9NTticmVha31mb3Iobj0iIixvPXRoaXMucG9zaXRpb247bzx0aGlzLmJ1ZmZlci5sZW5ndGgmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KG8pKT09PS0xOylpZihvKz0xLG8tdGhpcy5wb3NpdGlvbj5yLzItMSl7bj0iIC4uLiAiLG8tPTU7YnJlYWt9cmV0dXJuIGw9dGhpcy5idWZmZXIuc2xpY2UocyxvKSxYUXQucmVwZWF0KCIgIixlKSthK2wrbitgCmArWFF0LnJlcGVhdCgiICIsZSt0aGlzLnBvc2l0aW9uLXMrYS5sZW5ndGgpKyJeIn0sImdldFNuaXBwZXQiKSxrVGUucHJvdG90eXBlLnRvU3RyaW5nPWkoZnVuY3Rpb24oZSl7dmFyIHIsYT0iIjtyZXR1cm4gdGhpcy5uYW1lJiYoYSs9J2luICInK3RoaXMubmFtZSsnIiAnKSxhKz0iYXQgbGluZSAiKyh0aGlzLmxpbmUrMSkrIiwgY29sdW1uICIrKHRoaXMuY29sdW1uKzEpLGV8fChyPXRoaXMuZ2V0U25pcHBldCgpLHImJihhKz1gOgpgK3IpKSxhfSwidG9TdHJpbmciKSxKUXQuZXhwb3J0cz1rVGV9KTt2YXIgWHM9TnQoKEJubixyWHQpPT57InVzZSBzdHJpY3QiO3ZhciB0WHQ9SHYoKSxQeWE9WyJraW5kIiwicmVzb2x2ZSIsImNvbnN0cnVjdCIsImluc3RhbmNlT2YiLCJwcmVkaWNhdGUiLCJyZXByZXNlbnQiLCJkZWZhdWx0U3R5bGUiLCJzdHlsZUFsaWFzZXMiXSxOeWE9WyJzY2FsYXIiLCJzZXF1ZW5jZSIsIm1hcHBpbmciXTtmdW5jdGlvbiBPeWEodCl7dmFyIGU9e307cmV0dXJuIHQhPT1udWxsJiZPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3Rbcl0uZm9yRWFjaChmdW5jdGlvbihhKXtlW1N0cmluZyhhKV09cn0pfSksZX1pKE95YSwiY29tcGlsZVN0eWxlQWxpYXNlcyIpO2Z1bmN0aW9uIFJ5YSh0LGUpe2lmKGU9ZXx8e30sT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbihyKXtpZihQeWEuaW5kZXhPZihyKT09PS0xKXRocm93IG5ldyB0WHQoJ1Vua25vd24gb3B0aW9uICInK3IrJyIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgIicrdCsnIiBZQU1MIHR5cGUuJyl9KSx0aGlzLnRhZz10LHRoaXMua2luZD1lLmtpbmR8fG51bGwsdGhpcy5yZXNvbHZlPWUucmVzb2x2ZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdGhpcy5jb25zdHJ1Y3Q9ZS5jb25zdHJ1Y3R8fGZ1bmN0aW9uKHIpe3JldHVybiByfSx0aGlzLmluc3RhbmNlT2Y9ZS5pbnN0YW5jZU9mfHxudWxsLHRoaXMucHJlZGljYXRlPWUucHJlZGljYXRlfHxudWxsLHRoaXMucmVwcmVzZW50PWUucmVwcmVzZW50fHxudWxsLHRoaXMuZGVmYXVsdFN0eWxlPWUuZGVmYXVsdFN0eWxlfHxudWxsLHRoaXMuc3R5bGVBbGlhc2VzPU95YShlLnN0eWxlQWxpYXNlc3x8bnVsbCksTnlhLmluZGV4T2YodGhpcy5raW5kKT09PS0xKXRocm93IG5ldyB0WHQoJ1Vua25vd24ga2luZCAiJyt0aGlzLmtpbmQrJyIgaXMgc3BlY2lmaWVkIGZvciAiJyt0KyciIFlBTUwgdHlwZS4nKX1pKFJ5YSwiVHlwZSIpLHJYdC5leHBvcnRzPVJ5YX0pO3ZhciB6Nj1OdCgocW5uLGlYdCk9PnsidXNlIHN0cmljdCI7dmFyIGFYdD1DNigpLFRkZT1IdigpLEZ5YT1YcygpO2Z1bmN0aW9uIFNUZSh0LGUscil7dmFyIGE9W107cmV0dXJuIHQuaW5jbHVkZS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3I9U1RlKHMsZSxyKX0pLHRbZV0uZm9yRWFjaChmdW5jdGlvbihzKXtyLmZvckVhY2goZnVuY3Rpb24obixvKXtuLnRhZz09PXMudGFnJiZuLmtpbmQ9PT1zLmtpbmQmJmEucHVzaChvKX0pLHIucHVzaChzKX0pLHIuZmlsdGVyKGZ1bmN0aW9uKHMsbil7cmV0dXJuIGEuaW5kZXhPZihuKT09PS0xfSl9aShTVGUsImNvbXBpbGVMaXN0Iik7ZnVuY3Rpb24gQnlhKCl7dmFyIHQ9e3NjYWxhcjp7fSxzZXF1ZW5jZTp7fSxtYXBwaW5nOnt9LGZhbGxiYWNrOnt9fSxlLHI7ZnVuY3Rpb24gYShzKXt0W3Mua2luZF1bcy50YWddPXQuZmFsbGJhY2tbcy50YWddPXN9Zm9yKGkoYSwiY29sbGVjdFR5cGUiKSxlPTAscj1hcmd1bWVudHMubGVuZ3RoO2U8cjtlKz0xKWFyZ3VtZW50c1tlXS5mb3JFYWNoKGEpO3JldHVybiB0fWkoQnlhLCJjb21waWxlTWFwIik7ZnVuY3Rpb24gcXYodCl7dGhpcy5pbmNsdWRlPXQuaW5jbHVkZXx8W10sdGhpcy5pbXBsaWNpdD10LmltcGxpY2l0fHxbXSx0aGlzLmV4cGxpY2l0PXQuZXhwbGljaXR8fFtdLHRoaXMuaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlLmxvYWRLaW5kJiZlLmxvYWRLaW5kIT09InNjYWxhciIpdGhyb3cgbmV3IFRkZSgiVGhlcmUgaXMgYSBub24tc2NhbGFyIHR5cGUgaW4gdGhlIGltcGxpY2l0IGxpc3Qgb2YgYSBzY2hlbWEuIEltcGxpY2l0IHJlc29sdmluZyBvZiBzdWNoIHR5cGVzIGlzIG5vdCBzdXBwb3J0ZWQuIil9KSx0aGlzLmNvbXBpbGVkSW1wbGljaXQ9U1RlKHRoaXMsImltcGxpY2l0IixbXSksdGhpcy5jb21waWxlZEV4cGxpY2l0PVNUZSh0aGlzLCJleHBsaWNpdCIsW10pLHRoaXMuY29tcGlsZWRUeXBlTWFwPUJ5YSh0aGlzLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5jb21waWxlZEV4cGxpY2l0KX1pKHF2LCJTY2hlbWEiKSxxdi5ERUZBVUxUPW51bGwscXYuY3JlYXRlPWkoZnVuY3Rpb24oKXt2YXIgZSxyO3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6ZT1xdi5ERUZBVUxULHI9YXJndW1lbnRzWzBdO2JyZWFrO2Nhc2UgMjplPWFyZ3VtZW50c1swXSxyPWFyZ3VtZW50c1sxXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBUZGUoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIFNjaGVtYS5jcmVhdGUgZnVuY3Rpb24iKX1pZihlPWFYdC50b0FycmF5KGUpLHI9YVh0LnRvQXJyYXkociksIWUuZXZlcnkoZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBxdn0pKXRocm93IG5ldyBUZGUoIlNwZWNpZmllZCBsaXN0IG9mIHN1cGVyIHNjaGVtYXMgKG9yIGEgc2luZ2xlIFNjaGVtYSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVNjaGVtYSBvYmplY3QuIik7aWYoIXIuZXZlcnkoZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBGeWF9KSl0aHJvdyBuZXcgVGRlKCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuIik7cmV0dXJuIG5ldyBxdih7aW5jbHVkZTplLGV4cGxpY2l0OnJ9KX0sImNyZWF0ZVNjaGVtYSIpLGlYdC5leHBvcnRzPXF2fSk7dmFyIG5YdD1OdCgoam5uLHNYdCk9PnsidXNlIHN0cmljdCI7dmFyIEh5YT1YcygpO3NYdC5leHBvcnRzPW5ldyBIeWEoInRhZzp5YW1sLm9yZywyMDAyOnN0ciIse2tpbmQ6InNjYWxhciIsY29uc3RydWN0OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1udWxsP3Q6IiJ9LCJjb25zdHJ1Y3QiKX0pfSk7dmFyIGxYdD1OdCgoV25uLG9YdCk9PnsidXNlIHN0cmljdCI7dmFyIHF5YT1YcygpO29YdC5leHBvcnRzPW5ldyBxeWEoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIse2tpbmQ6InNlcXVlbmNlIixjb25zdHJ1Y3Q6aShmdW5jdGlvbih0KXtyZXR1cm4gdCE9PW51bGw/dDpbXX0sImNvbnN0cnVjdCIpfSl9KTt2YXIgZFh0PU50KChZbm4sY1h0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgVnlhPVhzKCk7Y1h0LmV4cG9ydHM9bmV3IFZ5YSgidGFnOnlhbWwub3JnLDIwMDI6bWFwIix7a2luZDoibWFwcGluZyIsY29uc3RydWN0OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1udWxsP3Q6e319LCJjb25zdHJ1Y3QiKX0pfSk7dmFyIExkZT1OdCgoWm5uLHVYdCk9PnsidXNlIHN0cmljdCI7dmFyIGp5YT16NigpO3VYdC5leHBvcnRzPW5ldyBqeWEoe2V4cGxpY2l0OltuWHQoKSxsWHQoKSxkWHQoKV19KX0pO3ZhciBmWHQ9TnQoKFFubixwWHQpPT57InVzZSBzdHJpY3QiO3ZhciBVeWE9WHMoKTtmdW5jdGlvbiBXeWEodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGU9PT0xJiZ0PT09In4ifHxlPT09NCYmKHQ9PT0ibnVsbCJ8fHQ9PT0iTnVsbCJ8fHQ9PT0iTlVMTCIpfWkoV3lhLCJyZXNvbHZlWWFtbE51bGwiKTtmdW5jdGlvbiBHeWEoKXtyZXR1cm4gbnVsbH1pKEd5YSwiY29uc3RydWN0WWFtbE51bGwiKTtmdW5jdGlvbiBZeWEodCl7cmV0dXJuIHQ9PT1udWxsfWkoWXlhLCJpc051bGwiKSxwWHQuZXhwb3J0cz1uZXcgVXlhKCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsIix7a2luZDoic2NhbGFyIixyZXNvbHZlOld5YSxjb25zdHJ1Y3Q6R3lhLHByZWRpY2F0ZTpZeWEscmVwcmVzZW50OntjYW5vbmljYWw6aShmdW5jdGlvbigpe3JldHVybiJ+In0sImNhbm9uaWNhbCIpLGxvd2VyY2FzZTppKGZ1bmN0aW9uKCl7cmV0dXJuIm51bGwifSwibG93ZXJjYXNlIiksdXBwZXJjYXNlOmkoZnVuY3Rpb24oKXtyZXR1cm4iTlVMTCJ9LCJ1cHBlcmNhc2UiKSxjYW1lbGNhc2U6aShmdW5jdGlvbigpe3JldHVybiJOdWxsIn0sImNhbWVsY2FzZSIpfSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBtWHQ9TnQoKEpubixoWHQpPT57InVzZSBzdHJpY3QiO3ZhciBLeWE9WHMoKTtmdW5jdGlvbiBaeWEodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGU9PT00JiYodD09PSJ0cnVlInx8dD09PSJUcnVlInx8dD09PSJUUlVFIil8fGU9PT01JiYodD09PSJmYWxzZSJ8fHQ9PT0iRmFsc2UifHx0PT09IkZBTFNFIil9aShaeWEsInJlc29sdmVZYW1sQm9vbGVhbiIpO2Z1bmN0aW9uIFF5YSh0KXtyZXR1cm4gdD09PSJ0cnVlInx8dD09PSJUcnVlInx8dD09PSJUUlVFIn1pKFF5YSwiY29uc3RydWN0WWFtbEJvb2xlYW4iKTtmdW5jdGlvbiBYeWEodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEJvb2xlYW5dIn1pKFh5YSwiaXNCb29sZWFuIiksaFh0LmV4cG9ydHM9bmV3IEt5YSgidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpaeWEsY29uc3RydWN0OlF5YSxwcmVkaWNhdGU6WHlhLHJlcHJlc2VudDp7bG93ZXJjYXNlOmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ/InRydWUiOiJmYWxzZSJ9LCJsb3dlcmNhc2UiKSx1cHBlcmNhc2U6aShmdW5jdGlvbih0KXtyZXR1cm4gdD8iVFJVRSI6IkZBTFNFIn0sInVwcGVyY2FzZSIpLGNhbWVsY2FzZTppKGZ1bmN0aW9uKHQpe3JldHVybiB0PyJUcnVlIjoiRmFsc2UifSwiY2FtZWxjYXNlIil9LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIGJYdD1OdCgodG9uLGdYdCk9PnsidXNlIHN0cmljdCI7dmFyIEp5YT1DNigpLGV3YT1YcygpO2Z1bmN0aW9uIHR3YSh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU3fHw2NTw9dCYmdDw9NzB8fDk3PD10JiZ0PD0xMDJ9aSh0d2EsImlzSGV4Q29kZSIpO2Z1bmN0aW9uIHJ3YSh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU1fWkocndhLCJpc09jdENvZGUiKTtmdW5jdGlvbiBhd2EodCl7cmV0dXJuIDQ4PD10JiZ0PD01N31pKGF3YSwiaXNEZWNDb2RlIik7ZnVuY3Rpb24gaXdhKHQpe2lmKHQ9PT1udWxsKXJldHVybiExO3ZhciBlPXQubGVuZ3RoLHI9MCxhPSExLHM7aWYoIWUpcmV0dXJuITE7aWYocz10W3JdLChzPT09Ii0ifHxzPT09IisiKSYmKHM9dFsrK3JdKSxzPT09IjAiKXtpZihyKzE9PT1lKXJldHVybiEwO2lmKHM9dFsrK3JdLHM9PT0iYiIpe2ZvcihyKys7cjxlO3IrKylpZihzPXRbcl0scyE9PSJfIil7aWYocyE9PSIwIiYmcyE9PSIxIilyZXR1cm4hMTthPSEwfXJldHVybiBhJiZzIT09Il8ifWlmKHM9PT0ieCIpe2ZvcihyKys7cjxlO3IrKylpZihzPXRbcl0scyE9PSJfIil7aWYoIXR3YSh0LmNoYXJDb2RlQXQocikpKXJldHVybiExO2E9ITB9cmV0dXJuIGEmJnMhPT0iXyJ9Zm9yKDtyPGU7cisrKWlmKHM9dFtyXSxzIT09Il8iKXtpZighcndhKHQuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7YT0hMH1yZXR1cm4gYSYmcyE9PSJfIn1pZihzPT09Il8iKXJldHVybiExO2Zvcig7cjxlO3IrKylpZihzPXRbcl0scyE9PSJfIil7aWYocz09PSI6IilicmVhaztpZighYXdhKHQuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7YT0hMH1yZXR1cm4hYXx8cz09PSJfIj8hMTpzIT09IjoiPyEwOi9eKDpbMC01XT9bMC05XSkrJC8udGVzdCh0LnNsaWNlKHIpKX1pKGl3YSwicmVzb2x2ZVlhbWxJbnRlZ2VyIik7ZnVuY3Rpb24gc3dhKHQpe3ZhciBlPXQscj0xLGEscyxuPVtdO3JldHVybiBlLmluZGV4T2YoIl8iKSE9PS0xJiYoZT1lLnJlcGxhY2UoL18vZywiIikpLGE9ZVswXSwoYT09PSItInx8YT09PSIrIikmJihhPT09Ii0iJiYocj0tMSksZT1lLnNsaWNlKDEpLGE9ZVswXSksZT09PSIwIj8wOmE9PT0iMCI/ZVsxXT09PSJiIj9yKnBhcnNlSW50KGUuc2xpY2UoMiksMik6ZVsxXT09PSJ4Ij9yKnBhcnNlSW50KGUsMTYpOnIqcGFyc2VJbnQoZSw4KTplLmluZGV4T2YoIjoiKSE9PS0xPyhlLnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihvKXtuLnVuc2hpZnQocGFyc2VJbnQobywxMCkpfSksZT0wLHM9MSxuLmZvckVhY2goZnVuY3Rpb24obyl7ZSs9bypzLHMqPTYwfSksciplKTpyKnBhcnNlSW50KGUsMTApfWkoc3dhLCJjb25zdHJ1Y3RZYW1sSW50ZWdlciIpO2Z1bmN0aW9uIG53YSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgTnVtYmVyXSImJnQlMT09PTAmJiFKeWEuaXNOZWdhdGl2ZVplcm8odCl9aShud2EsImlzSW50ZWdlciIpLGdYdC5leHBvcnRzPW5ldyBld2EoInRhZzp5YW1sLm9yZywyMDAyOmludCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTppd2EsY29uc3RydWN0OnN3YSxwcmVkaWNhdGU6bndhLHJlcHJlc2VudDp7YmluYXJ5OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTA/IjBiIit0LnRvU3RyaW5nKDIpOiItMGIiK3QudG9TdHJpbmcoMikuc2xpY2UoMSl9LCJiaW5hcnkiKSxvY3RhbDppKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIwIit0LnRvU3RyaW5nKDgpOiItMCIrdC50b1N0cmluZyg4KS5zbGljZSgxKX0sIm9jdGFsIiksZGVjaW1hbDppKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKDEwKX0sImRlY2ltYWwiKSxoZXhhZGVjaW1hbDppKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIweCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKToiLTB4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnNsaWNlKDEpfSwiaGV4YWRlY2ltYWwiKX0sZGVmYXVsdFN0eWxlOiJkZWNpbWFsIixzdHlsZUFsaWFzZXM6e2JpbmFyeTpbMiwiYmluIl0sb2N0YWw6WzgsIm9jdCJdLGRlY2ltYWw6WzEwLCJkZWMiXSxoZXhhZGVjaW1hbDpbMTYsImhleCJdfX0pfSk7dmFyIHlYdD1OdCgoYW9uLHZYdCk9PnsidXNlIHN0cmljdCI7dmFyIHhYdD1DNigpLG93YT1YcygpLGx3YT1uZXcgUmVnRXhwKCJeKD86Wy0rXT8oPzowfFsxLTldWzAtOV9dKikoPzpcXC5bMC05X10qKT8oPzpbZUVdWy0rXT9bMC05XSspP3xcXC5bMC05X10rKD86W2VFXVstK10/WzAtOV0rKT98Wy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pK1xcLlswLTlfXSp8Wy0rXT9cXC4oPzppbmZ8SW5mfElORil8XFwuKD86bmFufE5hTnxOQU4pKSQiKTtmdW5jdGlvbiBjd2EodCl7cmV0dXJuISh0PT09bnVsbHx8IWx3YS50ZXN0KHQpfHx0W3QubGVuZ3RoLTFdPT09Il8iKX1pKGN3YSwicmVzb2x2ZVlhbWxGbG9hdCIpO2Z1bmN0aW9uIGR3YSh0KXt2YXIgZSxyLGEscztyZXR1cm4gZT10LnJlcGxhY2UoL18vZywiIikudG9Mb3dlckNhc2UoKSxyPWVbMF09PT0iLSI/LTE6MSxzPVtdLCIrLSIuaW5kZXhPZihlWzBdKT49MCYmKGU9ZS5zbGljZSgxKSksZT09PSIuaW5mIj9yPT09MT9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOmU9PT0iLm5hbiI/TmFOOmUuaW5kZXhPZigiOiIpPj0wPyhlLnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihuKXtzLnVuc2hpZnQocGFyc2VGbG9hdChuLDEwKSl9KSxlPTAsYT0xLHMuZm9yRWFjaChmdW5jdGlvbihuKXtlKz1uKmEsYSo9NjB9KSxyKmUpOnIqcGFyc2VGbG9hdChlLDEwKX1pKGR3YSwiY29uc3RydWN0WWFtbEZsb2F0Iik7dmFyIHV3YT0vXlstK10/WzAtOV0rZS87ZnVuY3Rpb24gcHdhKHQsZSl7dmFyIHI7aWYoaXNOYU4odCkpc3dpdGNoKGUpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLm5hbiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiIuTkFOIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi5OYU4ifWVsc2UgaWYoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPT09dClzd2l0Y2goZSl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIuaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLkluZiJ9ZWxzZSBpZihOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT10KXN3aXRjaChlKXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi0uaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi0uSU5GIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi0uSW5mIn1lbHNlIGlmKHhYdC5pc05lZ2F0aXZlWmVybyh0KSlyZXR1cm4iLTAuMCI7cmV0dXJuIHI9dC50b1N0cmluZygxMCksdXdhLnRlc3Qocik/ci5yZXBsYWNlKCJlIiwiLmUiKTpyfWkocHdhLCJyZXByZXNlbnRZYW1sRmxvYXQiKTtmdW5jdGlvbiBmd2EodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IE51bWJlcl0iJiYodCUxIT09MHx8eFh0LmlzTmVnYXRpdmVaZXJvKHQpKX1pKGZ3YSwiaXNGbG9hdCIpLHZYdC5leHBvcnRzPW5ldyBvd2EoInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOmN3YSxjb25zdHJ1Y3Q6ZHdhLHByZWRpY2F0ZTpmd2EscmVwcmVzZW50OnB3YSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBNVGU9TnQoKHNvbix3WHQpPT57InVzZSBzdHJpY3QiO3ZhciBod2E9ejYoKTt3WHQuZXhwb3J0cz1uZXcgaHdhKHtpbmNsdWRlOltMZGUoKV0saW1wbGljaXQ6W2ZYdCgpLG1YdCgpLGJYdCgpLHlYdCgpXX0pfSk7dmFyIENUZT1OdCgobm9uLGtYdCk9PnsidXNlIHN0cmljdCI7dmFyIG13YT16NigpO2tYdC5leHBvcnRzPW5ldyBtd2Eoe2luY2x1ZGU6W01UZSgpXX0pfSk7dmFyIHpYdD1OdCgob29uLENYdCk9PnsidXNlIHN0cmljdCI7dmFyIGd3YT1YcygpLFNYdD1uZXcgUmVnRXhwKCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XSktKFswLTldWzAtOV0pJCIpLE1YdD1uZXcgUmVnRXhwKCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XT8pLShbMC05XVswLTldPykoPzpbVHRdfFsgXFx0XSspKFswLTldWzAtOV0/KTooWzAtOV1bMC05XSk6KFswLTldWzAtOV0pKD86XFwuKFswLTldKikpPyg/OlsgXFx0XSooWnwoWy0rXSkoWzAtOV1bMC05XT8pKD86OihbMC05XVswLTldKSk/KSk/JCIpO2Z1bmN0aW9uIGJ3YSh0KXtyZXR1cm4gdD09PW51bGw/ITE6U1h0LmV4ZWModCkhPT1udWxsfHxNWHQuZXhlYyh0KSE9PW51bGx9aShid2EsInJlc29sdmVZYW1sVGltZXN0YW1wIik7ZnVuY3Rpb24geHdhKHQpe3ZhciBlLHIsYSxzLG4sbyxsLGM9MCxkPW51bGwsZixwLGg7aWYoZT1TWHQuZXhlYyh0KSxlPT09bnVsbCYmKGU9TVh0LmV4ZWModCkpLGU9PT1udWxsKXRocm93IG5ldyBFcnJvcigiRGF0ZSByZXNvbHZlIGVycm9yIik7aWYocj0rZVsxXSxhPStlWzJdLTEscz0rZVszXSwhZVs0XSlyZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMocixhLHMpKTtpZihuPStlWzRdLG89K2VbNV0sbD0rZVs2XSxlWzddKXtmb3IoYz1lWzddLnNsaWNlKDAsMyk7Yy5sZW5ndGg8MzspYys9IjAiO2M9K2N9cmV0dXJuIGVbOV0mJihmPStlWzEwXSxwPSsoZVsxMV18fDApLGQ9KGYqNjArcCkqNmU0LGVbOV09PT0iLSImJihkPS1kKSksaD1uZXcgRGF0ZShEYXRlLlVUQyhyLGEscyxuLG8sbCxjKSksZCYmaC5zZXRUaW1lKGguZ2V0VGltZSgpLWQpLGh9aSh4d2EsImNvbnN0cnVjdFlhbWxUaW1lc3RhbXAiKTtmdW5jdGlvbiB2d2EodCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX1pKHZ3YSwicmVwcmVzZW50WWFtbFRpbWVzdGFtcCIpLENYdC5leHBvcnRzPW5ldyBnd2EoInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpid2EsY29uc3RydWN0Onh3YSxpbnN0YW5jZU9mOkRhdGUscmVwcmVzZW50OnZ3YX0pfSk7dmFyIFRYdD1OdCgoY29uLF9YdCk9PnsidXNlIHN0cmljdCI7dmFyIHl3YT1YcygpO2Z1bmN0aW9uIHd3YSh0KXtyZXR1cm4gdD09PSI8PCJ8fHQ9PT1udWxsfWkod3dhLCJyZXNvbHZlWWFtbE1lcmdlIiksX1h0LmV4cG9ydHM9bmV3IHl3YSgidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6d3dhfSl9KTt2YXIgJFh0PU50KCh1b24sRFh0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgXzY7dHJ5e0xYdD1TYWUsXzY9TFh0KCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2h7fXZhciBrd2E9WHMoKSx6VGU9YEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89ClxyYDtmdW5jdGlvbiBTd2EodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGUscixhPTAscz10Lmxlbmd0aCxuPXpUZTtmb3Iocj0wO3I8cztyKyspaWYoZT1uLmluZGV4T2YodC5jaGFyQXQocikpLCEoZT42NCkpe2lmKGU8MClyZXR1cm4hMTthKz02fXJldHVybiBhJTg9PT0wfWkoU3dhLCJyZXNvbHZlWWFtbEJpbmFyeSIpO2Z1bmN0aW9uIE13YSh0KXt2YXIgZSxyLGE9dC5yZXBsYWNlKC9bXHJcbj1dL2csIiIpLHM9YS5sZW5ndGgsbj16VGUsbz0wLGw9W107Zm9yKGU9MDtlPHM7ZSsrKWUlND09PTAmJmUmJihsLnB1c2gobz4+MTYmMjU1KSxsLnB1c2gobz4+OCYyNTUpLGwucHVzaChvJjI1NSkpLG89bzw8NnxuLmluZGV4T2YoYS5jaGFyQXQoZSkpO3JldHVybiByPXMlNCo2LHI9PT0wPyhsLnB1c2gobz4+MTYmMjU1KSxsLnB1c2gobz4+OCYyNTUpLGwucHVzaChvJjI1NSkpOnI9PT0xOD8obC5wdXNoKG8+PjEwJjI1NSksbC5wdXNoKG8+PjImMjU1KSk6cj09PTEyJiZsLnB1c2gobz4+NCYyNTUpLF82P182LmZyb20/XzYuZnJvbShsKTpuZXcgXzYobCk6bH1pKE13YSwiY29uc3RydWN0WWFtbEJpbmFyeSIpO2Z1bmN0aW9uIEN3YSh0KXt2YXIgZT0iIixyPTAsYSxzLG49dC5sZW5ndGgsbz16VGU7Zm9yKGE9MDthPG47YSsrKWElMz09PTAmJmEmJihlKz1vW3I+PjE4JjYzXSxlKz1vW3I+PjEyJjYzXSxlKz1vW3I+PjYmNjNdLGUrPW9bciY2M10pLHI9KHI8PDgpK3RbYV07cmV0dXJuIHM9biUzLHM9PT0wPyhlKz1vW3I+PjE4JjYzXSxlKz1vW3I+PjEyJjYzXSxlKz1vW3I+PjYmNjNdLGUrPW9bciY2M10pOnM9PT0yPyhlKz1vW3I+PjEwJjYzXSxlKz1vW3I+PjQmNjNdLGUrPW9bcjw8MiY2M10sZSs9b1s2NF0pOnM9PT0xJiYoZSs9b1tyPj4yJjYzXSxlKz1vW3I8PDQmNjNdLGUrPW9bNjRdLGUrPW9bNjRdKSxlfWkoQ3dhLCJyZXByZXNlbnRZYW1sQmluYXJ5Iik7ZnVuY3Rpb24gendhKHQpe3JldHVybiBfNiYmXzYuaXNCdWZmZXIodCl9aSh6d2EsImlzQmluYXJ5IiksRFh0LmV4cG9ydHM9bmV3IGt3YSgidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOlN3YSxjb25zdHJ1Y3Q6TXdhLHByZWRpY2F0ZTp6d2EscmVwcmVzZW50OkN3YX0pO3ZhciBMWHR9KTt2YXIgRVh0PU50KChmb24sQVh0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgX3dhPVhzKCksVHdhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTHdhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gRHdhKHQpe2lmKHQ9PT1udWxsKXJldHVybiEwO3ZhciBlPVtdLHIsYSxzLG4sbyxsPXQ7Zm9yKHI9MCxhPWwubGVuZ3RoO3I8YTtyKz0xKXtpZihzPWxbcl0sbz0hMSxMd2EuY2FsbChzKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO2ZvcihuIGluIHMpaWYoVHdhLmNhbGwocyxuKSlpZighbylvPSEwO2Vsc2UgcmV0dXJuITE7aWYoIW8pcmV0dXJuITE7aWYoZS5pbmRleE9mKG4pPT09LTEpZS5wdXNoKG4pO2Vsc2UgcmV0dXJuITF9cmV0dXJuITB9aShEd2EsInJlc29sdmVZYW1sT21hcCIpO2Z1bmN0aW9uICR3YSh0KXtyZXR1cm4gdCE9PW51bGw/dDpbXX1pKCR3YSwiY29uc3RydWN0WWFtbE9tYXAiKSxBWHQuZXhwb3J0cz1uZXcgX3dhKCJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6RHdhLGNvbnN0cnVjdDokd2F9KX0pO3ZhciBQWHQ9TnQoKG1vbixJWHQpPT57InVzZSBzdHJpY3QiO3ZhciBBd2E9WHMoKSxFd2E9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBJd2EodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGUscixhLHMsbixvPXQ7Zm9yKG49bmV3IEFycmF5KG8ubGVuZ3RoKSxlPTAscj1vLmxlbmd0aDtlPHI7ZSs9MSl7aWYoYT1vW2VdLEV3YS5jYWxsKGEpIT09IltvYmplY3QgT2JqZWN0XSJ8fChzPU9iamVjdC5rZXlzKGEpLHMubGVuZ3RoIT09MSkpcmV0dXJuITE7bltlXT1bc1swXSxhW3NbMF1dXX1yZXR1cm4hMH1pKEl3YSwicmVzb2x2ZVlhbWxQYWlycyIpO2Z1bmN0aW9uIFB3YSh0KXtpZih0PT09bnVsbClyZXR1cm5bXTt2YXIgZSxyLGEscyxuLG89dDtmb3Iobj1uZXcgQXJyYXkoby5sZW5ndGgpLGU9MCxyPW8ubGVuZ3RoO2U8cjtlKz0xKWE9b1tlXSxzPU9iamVjdC5rZXlzKGEpLG5bZV09W3NbMF0sYVtzWzBdXV07cmV0dXJuIG59aShQd2EsImNvbnN0cnVjdFlhbWxQYWlycyIpLElYdC5leHBvcnRzPW5ldyBBd2EoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6SXdhLGNvbnN0cnVjdDpQd2F9KX0pO3ZhciBPWHQ9TnQoKGJvbixOWHQpPT57InVzZSBzdHJpY3QiO3ZhciBOd2E9WHMoKSxPd2E9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBSd2EodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGUscj10O2ZvcihlIGluIHIpaWYoT3dhLmNhbGwocixlKSYmcltlXSE9PW51bGwpcmV0dXJuITE7cmV0dXJuITB9aShSd2EsInJlc29sdmVZYW1sU2V0Iik7ZnVuY3Rpb24gRndhKHQpe3JldHVybiB0IT09bnVsbD90Ont9fWkoRndhLCJjb25zdHJ1Y3RZYW1sU2V0IiksTlh0LmV4cG9ydHM9bmV3IE53YSgidGFnOnlhbWwub3JnLDIwMDI6c2V0Iix7a2luZDoibWFwcGluZyIscmVzb2x2ZTpSd2EsY29uc3RydWN0OkZ3YX0pfSk7dmFyIFZ2PU50KCh2b24sUlh0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQndhPXo2KCk7Ulh0LmV4cG9ydHM9bmV3IEJ3YSh7aW5jbHVkZTpbQ1RlKCldLGltcGxpY2l0Olt6WHQoKSxUWHQoKV0sZXhwbGljaXQ6WyRYdCgpLEVYdCgpLFBYdCgpLE9YdCgpXX0pfSk7dmFyIEJYdD1OdCgoeW9uLEZYdCk9PnsidXNlIHN0cmljdCI7dmFyIEh3YT1YcygpO2Z1bmN0aW9uIHF3YSgpe3JldHVybiEwfWkocXdhLCJyZXNvbHZlSmF2YXNjcmlwdFVuZGVmaW5lZCIpO2Z1bmN0aW9uIFZ3YSgpe31pKFZ3YSwiY29uc3RydWN0SmF2YXNjcmlwdFVuZGVmaW5lZCIpO2Z1bmN0aW9uIGp3YSgpe3JldHVybiIifWkoandhLCJyZXByZXNlbnRKYXZhc2NyaXB0VW5kZWZpbmVkIik7ZnVuY3Rpb24gVXdhKHQpe3JldHVybiB0eXBlb2YgdD4idSJ9aShVd2EsImlzVW5kZWZpbmVkIiksRlh0LmV4cG9ydHM9bmV3IEh3YSgidGFnOnlhbWwub3JnLDIwMDI6anMvdW5kZWZpbmVkIix7a2luZDoic2NhbGFyIixyZXNvbHZlOnF3YSxjb25zdHJ1Y3Q6VndhLHByZWRpY2F0ZTpVd2EscmVwcmVzZW50Omp3YX0pfSk7dmFyIHFYdD1OdCgoa29uLEhYdCk9PnsidXNlIHN0cmljdCI7dmFyIFd3YT1YcygpO2Z1bmN0aW9uIEd3YSh0KXtpZih0PT09bnVsbHx8dC5sZW5ndGg9PT0wKXJldHVybiExO3ZhciBlPXQscj0vXC8oW2dpbV0qKSQvLmV4ZWModCksYT0iIjtyZXR1cm4hKGVbMF09PT0iLyImJihyJiYoYT1yWzFdKSxhLmxlbmd0aD4zfHxlW2UubGVuZ3RoLWEubGVuZ3RoLTFdIT09Ii8iKSl9aShHd2EsInJlc29sdmVKYXZhc2NyaXB0UmVnRXhwIik7ZnVuY3Rpb24gWXdhKHQpe3ZhciBlPXQscj0vXC8oW2dpbV0qKSQvLmV4ZWModCksYT0iIjtyZXR1cm4gZVswXT09PSIvIiYmKHImJihhPXJbMV0pLGU9ZS5zbGljZSgxLGUubGVuZ3RoLWEubGVuZ3RoLTEpKSxuZXcgUmVnRXhwKGUsYSl9aShZd2EsImNvbnN0cnVjdEphdmFzY3JpcHRSZWdFeHAiKTtmdW5jdGlvbiBLd2EodCl7dmFyIGU9Ii8iK3Quc291cmNlKyIvIjtyZXR1cm4gdC5nbG9iYWwmJihlKz0iZyIpLHQubXVsdGlsaW5lJiYoZSs9Im0iKSx0Lmlnbm9yZUNhc2UmJihlKz0iaSIpLGV9aShLd2EsInJlcHJlc2VudEphdmFzY3JpcHRSZWdFeHAiKTtmdW5jdGlvbiBad2EodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IFJlZ0V4cF0ifWkoWndhLCJpc1JlZ0V4cCIpLEhYdC5leHBvcnRzPW5ldyBXd2EoInRhZzp5YW1sLm9yZywyMDAyOmpzL3JlZ2V4cCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpHd2EsY29uc3RydWN0Oll3YSxwcmVkaWNhdGU6WndhLHJlcHJlc2VudDpLd2F9KX0pO3ZhciBVWHQ9TnQoKE1vbixqWHQpPT57InVzZSBzdHJpY3QiO3ZhciBEZGU7dHJ5e1ZYdD1TYWUsRGRlPVZYdCgiZXNwcmltYSIpfWNhdGNoe3R5cGVvZiB3aW5kb3c8InUiJiYoRGRlPXdpbmRvdy5lc3ByaW1hKX12YXIgUXdhPVhzKCk7ZnVuY3Rpb24gWHdhKHQpe2lmKHQ9PT1udWxsKXJldHVybiExO3RyeXt2YXIgZT0iKCIrdCsiKSIscj1EZGUucGFyc2UoZSx7cmFuZ2U6ITB9KTtyZXR1cm4hKHIudHlwZSE9PSJQcm9ncmFtInx8ci5ib2R5Lmxlbmd0aCE9PTF8fHIuYm9keVswXS50eXBlIT09IkV4cHJlc3Npb25TdGF0ZW1lbnQifHxyLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiYmci5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJGdW5jdGlvbkV4cHJlc3Npb24iKX1jYXRjaHtyZXR1cm4hMX19aShYd2EsInJlc29sdmVKYXZhc2NyaXB0RnVuY3Rpb24iKTtmdW5jdGlvbiBKd2EodCl7dmFyIGU9IigiK3QrIikiLHI9RGRlLnBhcnNlKGUse3JhbmdlOiEwfSksYT1bXSxzO2lmKHIudHlwZSE9PSJQcm9ncmFtInx8ci5ib2R5Lmxlbmd0aCE9PTF8fHIuYm9keVswXS50eXBlIT09IkV4cHJlc3Npb25TdGF0ZW1lbnQifHxyLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiYmci5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJGdW5jdGlvbkV4cHJlc3Npb24iKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlc29sdmUgZnVuY3Rpb24iKTtyZXR1cm4gci5ib2R5WzBdLmV4cHJlc3Npb24ucGFyYW1zLmZvckVhY2goZnVuY3Rpb24obil7YS5wdXNoKG4ubmFtZSl9KSxzPXIuYm9keVswXS5leHByZXNzaW9uLmJvZHkucmFuZ2Usci5ib2R5WzBdLmV4cHJlc3Npb24uYm9keS50eXBlPT09IkJsb2NrU3RhdGVtZW50Ij9uZXcgRnVuY3Rpb24oYSxlLnNsaWNlKHNbMF0rMSxzWzFdLTEpKTpuZXcgRnVuY3Rpb24oYSwicmV0dXJuICIrZS5zbGljZShzWzBdLHNbMV0pKX1pKEp3YSwiY29uc3RydWN0SmF2YXNjcmlwdEZ1bmN0aW9uIik7ZnVuY3Rpb24gZWthKHQpe3JldHVybiB0LnRvU3RyaW5nKCl9aShla2EsInJlcHJlc2VudEphdmFzY3JpcHRGdW5jdGlvbiIpO2Z1bmN0aW9uIHRrYSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgRnVuY3Rpb25dIn1pKHRrYSwiaXNGdW5jdGlvbiIpLGpYdC5leHBvcnRzPW5ldyBRd2EoInRhZzp5YW1sLm9yZywyMDAyOmpzL2Z1bmN0aW9uIix7a2luZDoic2NhbGFyIixyZXNvbHZlOlh3YSxjb25zdHJ1Y3Q6SndhLHByZWRpY2F0ZTp0a2EscmVwcmVzZW50OmVrYX0pO3ZhciBWWHR9KTt2YXIgTXo9TnQoKHpvbixHWHQpPT57InVzZSBzdHJpY3QiO3ZhciBXWHQ9ejYoKTtHWHQuZXhwb3J0cz1XWHQuREVGQVVMVD1uZXcgV1h0KHtpbmNsdWRlOltWdigpXSxleHBsaWNpdDpbQlh0KCkscVh0KCksVVh0KCldfSl9KTt2YXIgZkp0PU50KChfb24sQ3opPT57InVzZSBzdHJpY3QiO3ZhciBUND1DNigpLFlYdD1IdigpLHJrYT1lWHQoKSxLWHQ9VnYoKSxha2E9TXooKSxmcD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LCRkZT0xLFpYdD0yLFFYdD0zLEFkZT00LF9UZT0xLGlrYT0yLFhYdD0zLHNrYT0vW1x4MDAtXHgwOFx4MEJceDBDXHgwRS1ceDFGXHg3Ri1ceDg0XHg4Ni1ceDlGXHVGRkZFXHVGRkZGXXxbXHVEODAwLVx1REJGRl0oPyFbXHVEQzAwLVx1REZGRl0pfCg/OlteXHVEODAwLVx1REJGRl18XilbXHVEQzAwLVx1REZGRl0vLG5rYT0vW1x4ODVcdTIwMjhcdTIwMjldLyxva2E9L1ssXFtcXVx7XH1dLyxKWHQ9L14oPzohfCEhfCFbYS16XC1dKyEpJC9pLGVKdD0vXig/OiF8W14sXFtcXVx7XH1dKSg/OiVbMC05YS1mXXsyfXxbMC05YS16XC0jO1wvXD86QCY9XCtcJCxfXC4hflwqJ1woXClcW1xdXSkqJC9pO2Z1bmN0aW9uIHRKdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWkodEp0LCJfY2xhc3MiKTtmdW5jdGlvbiBqMCh0KXtyZXR1cm4gdD09PTEwfHx0PT09MTN9aShqMCwiaXNfRU9MIik7ZnVuY3Rpb24gVDYodCl7cmV0dXJuIHQ9PT05fHx0PT09MzJ9aShUNiwiaXNfV0hJVEVfU1BBQ0UiKTtmdW5jdGlvbiBUMSh0KXtyZXR1cm4gdD09PTl8fHQ9PT0zMnx8dD09PTEwfHx0PT09MTN9aShUMSwiaXNfV1NfT1JfRU9MIik7ZnVuY3Rpb24ganYodCl7cmV0dXJuIHQ9PT00NHx8dD09PTkxfHx0PT09OTN8fHQ9PT0xMjN8fHQ9PT0xMjV9aShqdiwiaXNfRkxPV19JTkRJQ0FUT1IiKTtmdW5jdGlvbiBsa2EodCl7dmFyIGU7cmV0dXJuIDQ4PD10JiZ0PD01Nz90LTQ4OihlPXR8MzIsOTc8PWUmJmU8PTEwMj9lLTk3KzEwOi0xKX1pKGxrYSwiZnJvbUhleENvZGUiKTtmdW5jdGlvbiBja2EodCl7cmV0dXJuIHQ9PT0xMjA/Mjp0PT09MTE3PzQ6dD09PTg1Pzg6MH1pKGNrYSwiZXNjYXBlZEhleExlbiIpO2Z1bmN0aW9uIGRrYSh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU3P3QtNDg6LTF9aShka2EsImZyb21EZWNpbWFsQ29kZSIpO2Z1bmN0aW9uIHJKdCh0KXtyZXR1cm4gdD09PTQ4PyJcMCI6dD09PTk3PyJceDA3Ijp0PT09OTg/IlxiIjp0PT09MTE2fHx0PT09OT8iCSI6dD09PTExMD9gCmA6dD09PTExOD8iXHYiOnQ9PT0xMDI/IlxmIjp0PT09MTE0PyJcciI6dD09PTEwMT8iXHgxQiI6dD09PTMyPyIgIjp0PT09MzQ/JyInOnQ9PT00Nz8iLyI6dD09PTkyPyJcXCI6dD09PTc4PyJceDg1Ijp0PT09OTU/Ilx4QTAiOnQ9PT03Nj8iXHUyMDI4Ijp0PT09ODA/Ilx1MjAyOSI6IiJ9aShySnQsInNpbXBsZUVzY2FwZVNlcXVlbmNlIik7ZnVuY3Rpb24gdWthKHQpe3JldHVybiB0PD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKHQpOlN0cmluZy5mcm9tQ2hhckNvZGUoKHQtNjU1MzY+PjEwKSs1NTI5NiwodC02NTUzNiYxMDIzKSs1NjMyMCl9aSh1a2EsImNoYXJGcm9tQ29kZXBvaW50Iik7ZnVuY3Rpb24gYUp0KHQsZSxyKXtlPT09Il9fcHJvdG9fXyI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cn0pOnRbZV09cn1pKGFKdCwic2V0UHJvcGVydHkiKTt2YXIgaUp0PW5ldyBBcnJheSgyNTYpLHNKdD1uZXcgQXJyYXkoMjU2KTtmb3IoTDY9MDtMNjwyNTY7TDYrKylpSnRbTDZdPXJKdChMNik/MTowLHNKdFtMNl09ckp0KEw2KTtmdW5jdGlvbiBwa2EodCxlKXt0aGlzLmlucHV0PXQsdGhpcy5maWxlbmFtZT1lLmZpbGVuYW1lfHxudWxsLHRoaXMuc2NoZW1hPWUuc2NoZW1hfHxha2EsdGhpcy5vbldhcm5pbmc9ZS5vbldhcm5pbmd8fG51bGwsdGhpcy5sZWdhY3k9ZS5sZWdhY3l8fCExLHRoaXMuanNvbj1lLmpzb258fCExLHRoaXMubGlzdGVuZXI9ZS5saXN0ZW5lcnx8bnVsbCx0aGlzLmltcGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRJbXBsaWNpdCx0aGlzLnR5cGVNYXA9dGhpcy5zY2hlbWEuY29tcGlsZWRUeXBlTWFwLHRoaXMubGVuZ3RoPXQubGVuZ3RoLHRoaXMucG9zaXRpb249MCx0aGlzLmxpbmU9MCx0aGlzLmxpbmVTdGFydD0wLHRoaXMubGluZUluZGVudD0wLHRoaXMuZG9jdW1lbnRzPVtdfWkocGthLCJTdGF0ZSIpO2Z1bmN0aW9uIG5KdCh0LGUpe3JldHVybiBuZXcgWVh0KGUsbmV3IHJrYSh0LmZpbGVuYW1lLHQuaW5wdXQsdC5wb3NpdGlvbix0LmxpbmUsdC5wb3NpdGlvbi10LmxpbmVTdGFydCkpfWkobkp0LCJnZW5lcmF0ZUVycm9yIik7ZnVuY3Rpb24gUXQodCxlKXt0aHJvdyBuSnQodCxlKX1pKFF0LCJ0aHJvd0Vycm9yIik7ZnVuY3Rpb24gRWRlKHQsZSl7dC5vbldhcm5pbmcmJnQub25XYXJuaW5nLmNhbGwobnVsbCxuSnQodCxlKSl9aShFZGUsInRocm93V2FybmluZyIpO3ZhciBvSnQ9e1lBTUw6aShmdW5jdGlvbihlLHIsYSl7dmFyIHMsbixvO2UudmVyc2lvbiE9PW51bGwmJlF0KGUsImR1cGxpY2F0aW9uIG9mICVZQU1MIGRpcmVjdGl2ZSIpLGEubGVuZ3RoIT09MSYmUXQoZSwiWUFNTCBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IG9uZSBhcmd1bWVudCIpLHM9L14oWzAtOV0rKVwuKFswLTldKykkLy5leGVjKGFbMF0pLHM9PT1udWxsJiZRdChlLCJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZSIpLG49cGFyc2VJbnQoc1sxXSwxMCksbz1wYXJzZUludChzWzJdLDEwKSxuIT09MSYmUXQoZSwidW5hY2NlcHRhYmxlIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQiKSxlLnZlcnNpb249YVswXSxlLmNoZWNrTGluZUJyZWFrcz1vPDIsbyE9PTEmJm8hPT0yJiZFZGUoZSwidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpfSwiaGFuZGxlWWFtbERpcmVjdGl2ZSIpLFRBRzppKGZ1bmN0aW9uKGUscixhKXt2YXIgcyxuO2EubGVuZ3RoIT09MiYmUXQoZSwiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpLHM9YVswXSxuPWFbMV0sSlh0LnRlc3Qocyl8fFF0KGUsImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksZnAuY2FsbChlLnRhZ01hcCxzKSYmUXQoZSwndGhlcmUgaXMgYSBwcmV2aW91c2x5IGRlY2xhcmVkIHN1ZmZpeCBmb3IgIicrcysnIiB0YWcgaGFuZGxlJyksZUp0LnRlc3Qobil8fFF0KGUsImlsbC1mb3JtZWQgdGFnIHByZWZpeCAoc2Vjb25kIGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZSIpLGUudGFnTWFwW3NdPW59LCJoYW5kbGVUYWdEaXJlY3RpdmUiKX07ZnVuY3Rpb24gaHAodCxlLHIsYSl7dmFyIHMsbixvLGw7aWYoZTxyKXtpZihsPXQuaW5wdXQuc2xpY2UoZSxyKSxhKWZvcihzPTAsbj1sLmxlbmd0aDtzPG47cys9MSlvPWwuY2hhckNvZGVBdChzKSxvPT09OXx8MzI8PW8mJm88PTExMTQxMTF8fFF0KHQsImV4cGVjdGVkIHZhbGlkIEpTT04gY2hhcmFjdGVyIik7ZWxzZSBza2EudGVzdChsKSYmUXQodCwidGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMiKTt0LnJlc3VsdCs9bH19aShocCwiY2FwdHVyZVNlZ21lbnQiKTtmdW5jdGlvbiBsSnQodCxlLHIsYSl7dmFyIHMsbixvLGw7Zm9yKFQ0LmlzT2JqZWN0KHIpfHxRdCh0LCJjYW5ub3QgbWVyZ2UgbWFwcGluZ3M7IHRoZSBwcm92aWRlZCBzb3VyY2Ugb2JqZWN0IGlzIHVuYWNjZXB0YWJsZSIpLHM9T2JqZWN0LmtleXMociksbz0wLGw9cy5sZW5ndGg7bzxsO28rPTEpbj1zW29dLGZwLmNhbGwoZSxuKXx8KGFKdChlLG4scltuXSksYVtuXT0hMCl9aShsSnQsIm1lcmdlTWFwcGluZ3MiKTtmdW5jdGlvbiBVdih0LGUscixhLHMsbixvLGwpe3ZhciBjLGQ7aWYoQXJyYXkuaXNBcnJheShzKSlmb3Iocz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChzKSxjPTAsZD1zLmxlbmd0aDtjPGQ7Yys9MSlBcnJheS5pc0FycmF5KHNbY10pJiZRdCh0LCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzIiksdHlwZW9mIHM9PSJvYmplY3QiJiZ0SnQoc1tjXSk9PT0iW29iamVjdCBPYmplY3RdIiYmKHNbY109IltvYmplY3QgT2JqZWN0XSIpO2lmKHR5cGVvZiBzPT0ib2JqZWN0IiYmdEp0KHMpPT09IltvYmplY3QgT2JqZWN0XSImJihzPSJbb2JqZWN0IE9iamVjdF0iKSxzPVN0cmluZyhzKSxlPT09bnVsbCYmKGU9e30pLGE9PT0idGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGM9MCxkPW4ubGVuZ3RoO2M8ZDtjKz0xKWxKdCh0LGUsbltjXSxyKTtlbHNlIGxKdCh0LGUsbixyKTtlbHNlIXQuanNvbiYmIWZwLmNhbGwocixzKSYmZnAuY2FsbChlLHMpJiYodC5saW5lPW98fHQubGluZSx0LnBvc2l0aW9uPWx8fHQucG9zaXRpb24sUXQodCwiZHVwbGljYXRlZCBtYXBwaW5nIGtleSIpKSxhSnQoZSxzLG4pLGRlbGV0ZSByW3NdO3JldHVybiBlfWkoVXYsInN0b3JlTWFwcGluZ1BhaXIiKTtmdW5jdGlvbiBUVGUodCl7dmFyIGU7ZT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksZT09PTEwP3QucG9zaXRpb24rKzplPT09MTM/KHQucG9zaXRpb24rKyx0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik9PT0xMCYmdC5wb3NpdGlvbisrKTpRdCh0LCJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQiKSx0LmxpbmUrPTEsdC5saW5lU3RhcnQ9dC5wb3NpdGlvbn1pKFRUZSwicmVhZExpbmVCcmVhayIpO2Z1bmN0aW9uIE1zKHQsZSxyKXtmb3IodmFyIGE9MCxzPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTtzIT09MDspe2Zvcig7VDYocyk7KXM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoZSYmcz09PTM1KWRvIHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUocyE9PTEwJiZzIT09MTMmJnMhPT0wKTtpZihqMChzKSlmb3IoVFRlKHQpLHM9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLGErKyx0LmxpbmVJbmRlbnQ9MDtzPT09MzI7KXQubGluZUluZGVudCsrLHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7ZWxzZSBicmVha31yZXR1cm4gciE9PS0xJiZhIT09MCYmdC5saW5lSW5kZW50PHImJkVkZSh0LCJkZWZpY2llbnQgaW5kZW50YXRpb24iKSxhfWkoTXMsInNraXBTZXBhcmF0aW9uU3BhY2UiKTtmdW5jdGlvbiBJZGUodCl7dmFyIGU9dC5wb3NpdGlvbixyO3JldHVybiByPXQuaW5wdXQuY2hhckNvZGVBdChlKSwhISgocj09PTQ1fHxyPT09NDYpJiZyPT09dC5pbnB1dC5jaGFyQ29kZUF0KGUrMSkmJnI9PT10LmlucHV0LmNoYXJDb2RlQXQoZSsyKSYmKGUrPTMscj10LmlucHV0LmNoYXJDb2RlQXQoZSkscj09PTB8fFQxKHIpKSl9aShJZGUsInRlc3REb2N1bWVudFNlcGFyYXRvciIpO2Z1bmN0aW9uIExUZSh0LGUpe2U9PT0xP3QucmVzdWx0Kz0iICI6ZT4xJiYodC5yZXN1bHQrPVQ0LnJlcGVhdChgCmAsZS0xKSl9aShMVGUsIndyaXRlRm9sZGVkTGluZXMiKTtmdW5jdGlvbiBma2EodCxlLHIpe3ZhciBhLHMsbixvLGwsYyxkLGYscD10LmtpbmQsaD10LnJlc3VsdCxtO2lmKG09dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLFQxKG0pfHxqdihtKXx8bT09PTM1fHxtPT09Mzh8fG09PT00Mnx8bT09PTMzfHxtPT09MTI0fHxtPT09NjJ8fG09PT0zOXx8bT09PTM0fHxtPT09Mzd8fG09PT02NHx8bT09PTk2fHwobT09PTYzfHxtPT09NDUpJiYocz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSxUMShzKXx8ciYmanYocykpKXJldHVybiExO2Zvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiIsbj1vPXQucG9zaXRpb24sbD0hMTttIT09MDspe2lmKG09PT01OCl7aWYocz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSxUMShzKXx8ciYmanYocykpYnJlYWt9ZWxzZSBpZihtPT09MzUpe2lmKGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24tMSksVDEoYSkpYnJlYWt9ZWxzZXtpZih0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJklkZSh0KXx8ciYmanYobSkpYnJlYWs7aWYoajAobSkpaWYoYz10LmxpbmUsZD10LmxpbmVTdGFydCxmPXQubGluZUluZGVudCxNcyh0LCExLC0xKSx0LmxpbmVJbmRlbnQ+PWUpe2w9ITAsbT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9ZWxzZXt0LnBvc2l0aW9uPW8sdC5saW5lPWMsdC5saW5lU3RhcnQ9ZCx0LmxpbmVJbmRlbnQ9ZjticmVha319bCYmKGhwKHQsbixvLCExKSxMVGUodCx0LmxpbmUtYyksbj1vPXQucG9zaXRpb24sbD0hMSksVDYobSl8fChvPXQucG9zaXRpb24rMSksbT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKX1yZXR1cm4gaHAodCxuLG8sITEpLHQucmVzdWx0PyEwOih0LmtpbmQ9cCx0LnJlc3VsdD1oLCExKX1pKGZrYSwicmVhZFBsYWluU2NhbGFyIik7ZnVuY3Rpb24gaGthKHQsZSl7dmFyIHIsYSxzO2lmKHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLHIhPT0zOSlyZXR1cm4hMTtmb3IodC5raW5kPSJzY2FsYXIiLHQucmVzdWx0PSIiLHQucG9zaXRpb24rKyxhPXM9dC5wb3NpdGlvbjsocj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikpIT09MDspaWYocj09PTM5KWlmKGhwKHQsYSx0LnBvc2l0aW9uLCEwKSxyPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLHI9PT0zOSlhPXQucG9zaXRpb24sdC5wb3NpdGlvbisrLHM9dC5wb3NpdGlvbjtlbHNlIHJldHVybiEwO2Vsc2UgajAocik/KGhwKHQsYSxzLCEwKSxMVGUodCxNcyh0LCExLGUpKSxhPXM9dC5wb3NpdGlvbik6dC5wb3NpdGlvbj09PXQubGluZVN0YXJ0JiZJZGUodCk/UXQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik6KHQucG9zaXRpb24rKyxzPXQucG9zaXRpb24pO1F0KHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKX1pKGhrYSwicmVhZFNpbmdsZVF1b3RlZFNjYWxhciIpO2Z1bmN0aW9uIG1rYSh0LGUpe3ZhciByLGEscyxuLG8sbDtpZihsPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxsIT09MzQpcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIix0LnBvc2l0aW9uKysscj1hPXQucG9zaXRpb247KGw9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTA7KXtpZihsPT09MzQpcmV0dXJuIGhwKHQscix0LnBvc2l0aW9uLCEwKSx0LnBvc2l0aW9uKyssITA7aWYobD09PTkyKXtpZihocCh0LHIsdC5wb3NpdGlvbiwhMCksbD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxqMChsKSlNcyh0LCExLGUpO2Vsc2UgaWYobDwyNTYmJmlKdFtsXSl0LnJlc3VsdCs9c0p0W2xdLHQucG9zaXRpb24rKztlbHNlIGlmKChvPWNrYShsKSk+MCl7Zm9yKHM9byxuPTA7cz4wO3MtLSlsPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLChvPWxrYShsKSk+PTA/bj0objw8NCkrbzpRdCh0LCJleHBlY3RlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXIiKTt0LnJlc3VsdCs9dWthKG4pLHQucG9zaXRpb24rK31lbHNlIFF0KHQsInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7cj1hPXQucG9zaXRpb259ZWxzZSBqMChsKT8oaHAodCxyLGEsITApLExUZSh0LE1zKHQsITEsZSkpLHI9YT10LnBvc2l0aW9uKTp0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJklkZSh0KT9RdCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKToodC5wb3NpdGlvbisrLGE9dC5wb3NpdGlvbil9UXQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpfWkobWthLCJyZWFkRG91YmxlUXVvdGVkU2NhbGFyIik7ZnVuY3Rpb24gZ2thKHQsZSl7dmFyIHI9ITAsYSxzPXQudGFnLG4sbz10LmFuY2hvcixsLGMsZCxmLHAsaD17fSxtLHYsYixnO2lmKGc9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLGc9PT05MSljPTkzLHA9ITEsbj1bXTtlbHNlIGlmKGc9PT0xMjMpYz0xMjUscD0hMCxuPXt9O2Vsc2UgcmV0dXJuITE7Zm9yKHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1uKSxnPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2chPT0wOyl7aWYoTXModCwhMCxlKSxnPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxnPT09YylyZXR1cm4gdC5wb3NpdGlvbisrLHQudGFnPXMsdC5hbmNob3I9byx0LmtpbmQ9cD8ibWFwcGluZyI6InNlcXVlbmNlIix0LnJlc3VsdD1uLCEwO3J8fFF0KHQsIm1pc3NlZCBjb21tYSBiZXR3ZWVuIGZsb3cgY29sbGVjdGlvbiBlbnRyaWVzIiksdj1tPWI9bnVsbCxkPWY9ITEsZz09PTYzJiYobD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSxUMShsKSYmKGQ9Zj0hMCx0LnBvc2l0aW9uKyssTXModCwhMCxlKSkpLGE9dC5saW5lLFd2KHQsZSwkZGUsITEsITApLHY9dC50YWcsbT10LnJlc3VsdCxNcyh0LCEwLGUpLGc9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLChmfHx0LmxpbmU9PT1hKSYmZz09PTU4JiYoZD0hMCxnPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLE1zKHQsITAsZSksV3YodCxlLCRkZSwhMSwhMCksYj10LnJlc3VsdCkscD9Vdih0LG4saCx2LG0sYik6ZD9uLnB1c2goVXYodCxudWxsLGgsdixtLGIpKTpuLnB1c2gobSksTXModCwhMCxlKSxnPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxnPT09NDQ/KHI9ITAsZz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6cj0hMX1RdCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvbiIpfWkoZ2thLCJyZWFkRmxvd0NvbGxlY3Rpb24iKTtmdW5jdGlvbiBia2EodCxlKXt2YXIgcixhLHM9X1RlLG49ITEsbz0hMSxsPWUsYz0wLGQ9ITEsZixwO2lmKHA9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLHA9PT0xMjQpYT0hMTtlbHNlIGlmKHA9PT02MilhPSEwO2Vsc2UgcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIjtwIT09MDspaWYocD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxwPT09NDN8fHA9PT00NSlfVGU9PT1zP3M9cD09PTQzP1hYdDppa2E6UXQodCwicmVwZWF0IG9mIGEgY2hvbXBpbmcgbW9kZSBpZGVudGlmaWVyIik7ZWxzZSBpZigoZj1ka2EocCkpPj0wKWY9PT0wP1F0KHQsImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTpvP1F0KHQsInJlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyIik6KGw9ZStmLTEsbz0hMCk7ZWxzZSBicmVhaztpZihUNihwKSl7ZG8gcD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTt3aGlsZShUNihwKSk7aWYocD09PTM1KWRvIHA9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUoIWowKHApJiZwIT09MCl9Zm9yKDtwIT09MDspe2ZvcihUVGUodCksdC5saW5lSW5kZW50PTAscD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7KCFvfHx0LmxpbmVJbmRlbnQ8bCkmJnA9PT0zMjspdC5saW5lSW5kZW50KysscD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtpZighbyYmdC5saW5lSW5kZW50PmwmJihsPXQubGluZUluZGVudCksajAocCkpe2MrKztjb250aW51ZX1pZih0LmxpbmVJbmRlbnQ8bCl7cz09PVhYdD90LnJlc3VsdCs9VDQucmVwZWF0KGAKYCxuPzErYzpjKTpzPT09X1RlJiZuJiYodC5yZXN1bHQrPWAKYCk7YnJlYWt9Zm9yKGE/VDYocCk/KGQ9ITAsdC5yZXN1bHQrPVQ0LnJlcGVhdChgCmAsbj8xK2M6YykpOmQ/KGQ9ITEsdC5yZXN1bHQrPVQ0LnJlcGVhdChgCmAsYysxKSk6Yz09PTA/biYmKHQucmVzdWx0Kz0iICIpOnQucmVzdWx0Kz1UNC5yZXBlYXQoYApgLGMpOnQucmVzdWx0Kz1UNC5yZXBlYXQoYApgLG4/MStjOmMpLG49ITAsbz0hMCxjPTAscj10LnBvc2l0aW9uOyFqMChwKSYmcCE9PTA7KXA9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aHAodCxyLHQucG9zaXRpb24sITEpfXJldHVybiEwfWkoYmthLCJyZWFkQmxvY2tTY2FsYXIiKTtmdW5jdGlvbiBjSnQodCxlKXt2YXIgcixhPXQudGFnLHM9dC5hbmNob3Isbj1bXSxvLGw9ITEsYztmb3IodC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPW4pLGM9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pO2MhPT0wJiYhKGMhPT00NXx8KG89dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksIVQxKG8pKSk7KXtpZihsPSEwLHQucG9zaXRpb24rKyxNcyh0LCEwLC0xKSYmdC5saW5lSW5kZW50PD1lKXtuLnB1c2gobnVsbCksYz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9aWYocj10LmxpbmUsV3YodCxlLFFYdCwhMSwhMCksbi5wdXNoKHQucmVzdWx0KSxNcyh0LCEwLC0xKSxjPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwodC5saW5lPT09cnx8dC5saW5lSW5kZW50PmUpJiZjIT09MClRdCh0LCJiYWQgaW5kZW50YXRpb24gb2YgYSBzZXF1ZW5jZSBlbnRyeSIpO2Vsc2UgaWYodC5saW5lSW5kZW50PGUpYnJlYWt9cmV0dXJuIGw/KHQudGFnPWEsdC5hbmNob3I9cyx0LmtpbmQ9InNlcXVlbmNlIix0LnJlc3VsdD1uLCEwKTohMX1pKGNKdCwicmVhZEJsb2NrU2VxdWVuY2UiKTtmdW5jdGlvbiB4a2EodCxlLHIpe3ZhciBhLHMsbixvLGw9dC50YWcsYz10LmFuY2hvcixkPXt9LGY9e30scD1udWxsLGg9bnVsbCxtPW51bGwsdj0hMSxiPSExLGc7Zm9yKHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1kKSxnPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTtnIT09MDspe2lmKGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksbj10LmxpbmUsbz10LnBvc2l0aW9uLChnPT09NjN8fGc9PT01OCkmJlQxKGEpKWc9PT02Mz8odiYmKFV2KHQsZCxmLHAsaCxudWxsKSxwPWg9bT1udWxsKSxiPSEwLHY9ITAscz0hMCk6dj8odj0hMSxzPSEwKTpRdCh0LCJpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lIiksdC5wb3NpdGlvbis9MSxnPWE7ZWxzZSBpZihXdih0LHIsWlh0LCExLCEwKSlpZih0LmxpbmU9PT1uKXtmb3IoZz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7VDYoZyk7KWc9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoZz09PTU4KWc9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksVDEoZyl8fFF0KHQsImEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgZXhwZWN0ZWQgYWZ0ZXIgdGhlIGtleS12YWx1ZSBzZXBhcmF0b3Igd2l0aGluIGEgYmxvY2sgbWFwcGluZyIpLHYmJihVdih0LGQsZixwLGgsbnVsbCkscD1oPW09bnVsbCksYj0hMCx2PSExLHM9ITEscD10LnRhZyxoPXQucmVzdWx0O2Vsc2UgaWYoYilRdCh0LCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpO2Vsc2UgcmV0dXJuIHQudGFnPWwsdC5hbmNob3I9YywhMH1lbHNlIGlmKGIpUXQodCwiY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Iik7ZWxzZSByZXR1cm4gdC50YWc9bCx0LmFuY2hvcj1jLCEwO2Vsc2UgYnJlYWs7aWYoKHQubGluZT09PW58fHQubGluZUluZGVudD5lKSYmKFd2KHQsZSxBZGUsITAscykmJih2P2g9dC5yZXN1bHQ6bT10LnJlc3VsdCksdnx8KFV2KHQsZCxmLHAsaCxtLG4sbykscD1oPW09bnVsbCksTXModCwhMCwtMSksZz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikpLHQubGluZUluZGVudD5lJiZnIT09MClRdCh0LCJiYWQgaW5kZW50YXRpb24gb2YgYSBtYXBwaW5nIGVudHJ5Iik7ZWxzZSBpZih0LmxpbmVJbmRlbnQ8ZSlicmVha31yZXR1cm4gdiYmVXYodCxkLGYscCxoLG51bGwpLGImJih0LnRhZz1sLHQuYW5jaG9yPWMsdC5raW5kPSJtYXBwaW5nIix0LnJlc3VsdD1kKSxifWkoeGthLCJyZWFkQmxvY2tNYXBwaW5nIik7ZnVuY3Rpb24gdmthKHQpe3ZhciBlLHI9ITEsYT0hMSxzLG4sbztpZihvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxvIT09MzMpcmV0dXJuITE7aWYodC50YWchPT1udWxsJiZRdCh0LCJkdXBsaWNhdGlvbiBvZiBhIHRhZyBwcm9wZXJ0eSIpLG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksbz09PTYwPyhyPSEwLG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOm89PT0zMz8oYT0hMCxzPSIhISIsbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6cz0iISIsZT10LnBvc2l0aW9uLHIpe2RvIG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUobyE9PTAmJm8hPT02Mik7dC5wb3NpdGlvbjx0Lmxlbmd0aD8obj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6UXQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKX1lbHNle2Zvcig7byE9PTAmJiFUMShvKTspbz09PTMzJiYoYT9RdCh0LCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzIik6KHM9dC5pbnB1dC5zbGljZShlLTEsdC5wb3NpdGlvbisxKSxKWHQudGVzdChzKXx8UXQodCwibmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMiKSxhPSEwLGU9dC5wb3NpdGlvbisxKSksbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtuPXQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSxva2EudGVzdChuKSYmUXQodCwidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBmbG93IGluZGljYXRvciBjaGFyYWN0ZXJzIil9cmV0dXJuIG4mJiFlSnQudGVzdChuKSYmUXQodCwidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAiK24pLHI/dC50YWc9bjpmcC5jYWxsKHQudGFnTWFwLHMpP3QudGFnPXQudGFnTWFwW3NdK246cz09PSIhIj90LnRhZz0iISIrbjpzPT09IiEhIj90LnRhZz0idGFnOnlhbWwub3JnLDIwMDI6IituOlF0KHQsJ3VuZGVjbGFyZWQgdGFnIGhhbmRsZSAiJytzKyciJyksITB9aSh2a2EsInJlYWRUYWdQcm9wZXJ0eSIpO2Z1bmN0aW9uIHlrYSh0KXt2YXIgZSxyO2lmKHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLHIhPT0zOClyZXR1cm4hMTtmb3IodC5hbmNob3IhPT1udWxsJiZRdCh0LCJkdXBsaWNhdGlvbiBvZiBhbiBhbmNob3IgcHJvcGVydHkiKSxyPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLGU9dC5wb3NpdGlvbjtyIT09MCYmIVQxKHIpJiYhanYocik7KXI9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7cmV0dXJuIHQucG9zaXRpb249PT1lJiZRdCh0LCJuYW1lIG9mIGFuIGFuY2hvciBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIiksdC5hbmNob3I9dC5pbnB1dC5zbGljZShlLHQucG9zaXRpb24pLCEwfWkoeWthLCJyZWFkQW5jaG9yUHJvcGVydHkiKTtmdW5jdGlvbiB3a2EodCl7dmFyIGUscixhO2lmKGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLGEhPT00MilyZXR1cm4hMTtmb3IoYT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxlPXQucG9zaXRpb247YSE9PTAmJiFUMShhKSYmIWp2KGEpOylhPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO3JldHVybiB0LnBvc2l0aW9uPT09ZSYmUXQodCwibmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIikscj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksZnAuY2FsbCh0LmFuY2hvck1hcCxyKXx8UXQodCwndW5pZGVudGlmaWVkIGFsaWFzICInK3IrJyInKSx0LnJlc3VsdD10LmFuY2hvck1hcFtyXSxNcyh0LCEwLC0xKSwhMH1pKHdrYSwicmVhZEFsaWFzIik7ZnVuY3Rpb24gV3YodCxlLHIsYSxzKXt2YXIgbixvLGwsYz0xLGQ9ITEsZj0hMSxwLGgsbSx2LGI7aWYodC5saXN0ZW5lciE9PW51bGwmJnQubGlzdGVuZXIoIm9wZW4iLHQpLHQudGFnPW51bGwsdC5hbmNob3I9bnVsbCx0LmtpbmQ9bnVsbCx0LnJlc3VsdD1udWxsLG49bz1sPUFkZT09PXJ8fFFYdD09PXIsYSYmTXModCwhMCwtMSkmJihkPSEwLHQubGluZUluZGVudD5lP2M9MTp0LmxpbmVJbmRlbnQ9PT1lP2M9MDp0LmxpbmVJbmRlbnQ8ZSYmKGM9LTEpKSxjPT09MSlmb3IoO3ZrYSh0KXx8eWthKHQpOylNcyh0LCEwLC0xKT8oZD0hMCxsPW4sdC5saW5lSW5kZW50PmU/Yz0xOnQubGluZUluZGVudD09PWU/Yz0wOnQubGluZUluZGVudDxlJiYoYz0tMSkpOmw9ITE7aWYobCYmKGw9ZHx8cyksKGM9PT0xfHxBZGU9PT1yKSYmKCRkZT09PXJ8fFpYdD09PXI/dj1lOnY9ZSsxLGI9dC5wb3NpdGlvbi10LmxpbmVTdGFydCxjPT09MT9sJiYoY0p0KHQsYil8fHhrYSh0LGIsdikpfHxna2EodCx2KT9mPSEwOihvJiZia2EodCx2KXx8aGthKHQsdil8fG1rYSh0LHYpP2Y9ITA6d2thKHQpPyhmPSEwLCh0LnRhZyE9PW51bGx8fHQuYW5jaG9yIT09bnVsbCkmJlF0KHQsImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIikpOmZrYSh0LHYsJGRlPT09cikmJihmPSEwLHQudGFnPT09bnVsbCYmKHQudGFnPSI/IikpLHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT10LnJlc3VsdCkpOmM9PT0wJiYoZj1sJiZjSnQodCxiKSkpLHQudGFnIT09bnVsbCYmdC50YWchPT0iISIpaWYodC50YWc9PT0iPyIpe2Zvcih0LnJlc3VsdCE9PW51bGwmJnQua2luZCE9PSJzY2FsYXIiJiZRdCh0LCd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlICJzY2FsYXIiLCBub3QgIicrdC5raW5kKyciJykscD0wLGg9dC5pbXBsaWNpdFR5cGVzLmxlbmd0aDtwPGg7cCs9MSlpZihtPXQuaW1wbGljaXRUeXBlc1twXSxtLnJlc29sdmUodC5yZXN1bHQpKXt0LnJlc3VsdD1tLmNvbnN0cnVjdCh0LnJlc3VsdCksdC50YWc9bS50YWcsdC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXQucmVzdWx0KTticmVha319ZWxzZSBmcC5jYWxsKHQudHlwZU1hcFt0LmtpbmR8fCJmYWxsYmFjayJdLHQudGFnKT8obT10LnR5cGVNYXBbdC5raW5kfHwiZmFsbGJhY2siXVt0LnRhZ10sdC5yZXN1bHQhPT1udWxsJiZtLmtpbmQhPT10LmtpbmQmJlF0KHQsInVuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Iit0LnRhZysnPiB0YWc7IGl0IHNob3VsZCBiZSAiJyttLmtpbmQrJyIsIG5vdCAiJyt0LmtpbmQrJyInKSxtLnJlc29sdmUodC5yZXN1bHQpPyh0LnJlc3VsdD1tLmNvbnN0cnVjdCh0LnJlc3VsdCksdC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXQucmVzdWx0KSk6UXQodCwiY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwiK3QudGFnKyI+IGV4cGxpY2l0IHRhZyIpKTpRdCh0LCJ1bmtub3duIHRhZyAhPCIrdC50YWcrIj4iKTtyZXR1cm4gdC5saXN0ZW5lciE9PW51bGwmJnQubGlzdGVuZXIoImNsb3NlIix0KSx0LnRhZyE9PW51bGx8fHQuYW5jaG9yIT09bnVsbHx8Zn1pKFd2LCJjb21wb3NlTm9kZSIpO2Z1bmN0aW9uIGtrYSh0KXt2YXIgZT10LnBvc2l0aW9uLHIsYSxzLG49ITEsbztmb3IodC52ZXJzaW9uPW51bGwsdC5jaGVja0xpbmVCcmVha3M9dC5sZWdhY3ksdC50YWdNYXA9e30sdC5hbmNob3JNYXA9e307KG89dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTAmJihNcyh0LCEwLC0xKSxvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwhKHQubGluZUluZGVudD4wfHxvIT09MzcpKTspe2ZvcihuPSEwLG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikscj10LnBvc2l0aW9uO28hPT0wJiYhVDEobyk7KW89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7Zm9yKGE9dC5pbnB1dC5zbGljZShyLHQucG9zaXRpb24pLHM9W10sYS5sZW5ndGg8MSYmUXQodCwiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7byE9PTA7KXtmb3IoO1Q2KG8pOylvPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2lmKG89PT0zNSl7ZG8gbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTt3aGlsZShvIT09MCYmIWowKG8pKTticmVha31pZihqMChvKSlicmVhaztmb3Iocj10LnBvc2l0aW9uO28hPT0wJiYhVDEobyk7KW89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7cy5wdXNoKHQuaW5wdXQuc2xpY2Uocix0LnBvc2l0aW9uKSl9byE9PTAmJlRUZSh0KSxmcC5jYWxsKG9KdCxhKT9vSnRbYV0odCxhLHMpOkVkZSh0LCd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSAiJythKyciJyl9aWYoTXModCwhMCwtMSksdC5saW5lSW5kZW50PT09MCYmdC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pPT09NDUmJnQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpPT09NDUmJnQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzIpPT09NDU/KHQucG9zaXRpb24rPTMsTXModCwhMCwtMSkpOm4mJlF0KHQsImRpcmVjdGl2ZXMgZW5kIG1hcmsgaXMgZXhwZWN0ZWQiKSxXdih0LHQubGluZUluZGVudC0xLEFkZSwhMSwhMCksTXModCwhMCwtMSksdC5jaGVja0xpbmVCcmVha3MmJm5rYS50ZXN0KHQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSkmJkVkZSh0LCJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKSx0LmRvY3VtZW50cy5wdXNoKHQucmVzdWx0KSx0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJklkZSh0KSl7dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pPT09NDYmJih0LnBvc2l0aW9uKz0zLE1zKHQsITAsLTEpKTtyZXR1cm59aWYodC5wb3NpdGlvbjx0Lmxlbmd0aC0xKVF0KHQsImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIik7ZWxzZSByZXR1cm59aShra2EsInJlYWREb2N1bWVudCIpO2Z1bmN0aW9uIGRKdCh0LGUpe3Q9U3RyaW5nKHQpLGU9ZXx8e30sdC5sZW5ndGghPT0wJiYodC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpIT09MTAmJnQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKSE9PTEzJiYodCs9YApgKSx0LmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKHQ9dC5zbGljZSgxKSkpO3ZhciByPW5ldyBwa2EodCxlKSxhPXQuaW5kZXhPZigiXDAiKTtmb3IoYSE9PS0xJiYoci5wb3NpdGlvbj1hLFF0KHIsIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpKSxyLmlucHV0Kz0iXDAiO3IuaW5wdXQuY2hhckNvZGVBdChyLnBvc2l0aW9uKT09PTMyOylyLmxpbmVJbmRlbnQrPTEsci5wb3NpdGlvbis9MTtmb3IoO3IucG9zaXRpb248ci5sZW5ndGgtMTspa2thKHIpO3JldHVybiByLmRvY3VtZW50c31pKGRKdCwibG9hZERvY3VtZW50cyIpO2Z1bmN0aW9uIHVKdCh0LGUscil7ZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IiYmdHlwZW9mIHI+InUiJiYocj1lLGU9bnVsbCk7dmFyIGE9ZEp0KHQscik7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpcmV0dXJuIGE7Zm9yKHZhciBzPTAsbj1hLmxlbmd0aDtzPG47cys9MSllKGFbc10pfWkodUp0LCJsb2FkQWxsIik7ZnVuY3Rpb24gcEp0KHQsZSl7dmFyIHI9ZEp0KHQsZSk7aWYoci5sZW5ndGghPT0wKXtpZihyLmxlbmd0aD09PTEpcmV0dXJuIHJbMF07dGhyb3cgbmV3IFlYdCgiZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUiKX19aShwSnQsImxvYWQiKTtmdW5jdGlvbiBTa2EodCxlLHIpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsJiZ0eXBlb2Ygcj4idSImJihyPWUsZT1udWxsKSx1SnQodCxlLFQ0LmV4dGVuZCh7c2NoZW1hOktYdH0scikpfWkoU2thLCJzYWZlTG9hZEFsbCIpO2Z1bmN0aW9uIE1rYSh0LGUpe3JldHVybiBwSnQodCxUNC5leHRlbmQoe3NjaGVtYTpLWHR9LGUpKX1pKE1rYSwic2FmZUxvYWQiKSxDei5leHBvcnRzLmxvYWRBbGw9dUp0LEN6LmV4cG9ydHMubG9hZD1wSnQsQ3ouZXhwb3J0cy5zYWZlTG9hZEFsbD1Ta2EsQ3ouZXhwb3J0cy5zYWZlTG9hZD1Na2E7dmFyIEw2fSk7dmFyIE5KdD1OdCgoTG9uLEVUZSk9PnsidXNlIHN0cmljdCI7dmFyIHp6PUM2KCksX3o9SHYoKSxDa2E9TXooKSx6a2E9VnYoKSxoSnQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxtSnQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxfa2E9OSxUej0xMCxUa2E9MTMsTGthPTMyLERrYT0zMywka2E9MzQsZ0p0PTM1LEFrYT0zNyxFa2E9MzgsSWthPTM5LFBrYT00MixiSnQ9NDQsTmthPTQ1LHhKdD01OCxPa2E9NjEsUmthPTYyLEZrYT02MyxCa2E9NjQsdkp0PTkxLHlKdD05MyxIa2E9OTYsd0p0PTEyMyxxa2E9MTI0LGtKdD0xMjUsZ289e307Z29bMF09IlxcMCIsZ29bN109IlxcYSIsZ29bOF09IlxcYiIsZ29bOV09IlxcdCIsZ29bMTBdPSJcXG4iLGdvWzExXT0iXFx2Iixnb1sxMl09IlxcZiIsZ29bMTNdPSJcXHIiLGdvWzI3XT0iXFxlIixnb1szNF09J1xcIicsZ29bOTJdPSJcXFxcIixnb1sxMzNdPSJcXE4iLGdvWzE2MF09IlxcXyIsZ29bODIzMl09IlxcTCIsZ29bODIzM109IlxcUCI7dmFyIFZrYT1bInkiLCJZIiwieWVzIiwiWWVzIiwiWUVTIiwib24iLCJPbiIsIk9OIiwibiIsIk4iLCJubyIsIk5vIiwiTk8iLCJvZmYiLCJPZmYiLCJPRkYiXTtmdW5jdGlvbiBqa2EodCxlKXt2YXIgcixhLHMsbixvLGwsYztpZihlPT09bnVsbClyZXR1cm57fTtmb3Iocj17fSxhPU9iamVjdC5rZXlzKGUpLHM9MCxuPWEubGVuZ3RoO3M8bjtzKz0xKW89YVtzXSxsPVN0cmluZyhlW29dKSxvLnNsaWNlKDAsMik9PT0iISEiJiYobz0idGFnOnlhbWwub3JnLDIwMDI6IitvLnNsaWNlKDIpKSxjPXQuY29tcGlsZWRUeXBlTWFwLmZhbGxiYWNrW29dLGMmJm1KdC5jYWxsKGMuc3R5bGVBbGlhc2VzLGwpJiYobD1jLnN0eWxlQWxpYXNlc1tsXSkscltvXT1sO3JldHVybiByfWkoamthLCJjb21waWxlU3R5bGVNYXAiKTtmdW5jdGlvbiBTSnQodCl7dmFyIGUscixhO2lmKGU9dC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSx0PD0yNTUpcj0ieCIsYT0yO2Vsc2UgaWYodDw9NjU1MzUpcj0idSIsYT00O2Vsc2UgaWYodDw9NDI5NDk2NzI5NSlyPSJVIixhPTg7ZWxzZSB0aHJvdyBuZXcgX3ooImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTtyZXR1cm4iXFwiK3IrenoucmVwZWF0KCIwIixhLWUubGVuZ3RoKStlfWkoU0p0LCJlbmNvZGVIZXgiKTtmdW5jdGlvbiBVa2EodCl7dGhpcy5zY2hlbWE9dC5zY2hlbWF8fENrYSx0aGlzLmluZGVudD1NYXRoLm1heCgxLHQuaW5kZW50fHwyKSx0aGlzLm5vQXJyYXlJbmRlbnQ9dC5ub0FycmF5SW5kZW50fHwhMSx0aGlzLnNraXBJbnZhbGlkPXQuc2tpcEludmFsaWR8fCExLHRoaXMuZmxvd0xldmVsPXp6LmlzTm90aGluZyh0LmZsb3dMZXZlbCk/LTE6dC5mbG93TGV2ZWwsdGhpcy5zdHlsZU1hcD1qa2EodGhpcy5zY2hlbWEsdC5zdHlsZXN8fG51bGwpLHRoaXMuc29ydEtleXM9dC5zb3J0S2V5c3x8ITEsdGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGh8fDgwLHRoaXMubm9SZWZzPXQubm9SZWZzfHwhMSx0aGlzLm5vQ29tcGF0TW9kZT10Lm5vQ29tcGF0TW9kZXx8ITEsdGhpcy5jb25kZW5zZUZsb3c9dC5jb25kZW5zZUZsb3d8fCExLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMuZXhwbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0LHRoaXMudGFnPW51bGwsdGhpcy5yZXN1bHQ9IiIsdGhpcy5kdXBsaWNhdGVzPVtdLHRoaXMudXNlZER1cGxpY2F0ZXM9bnVsbH1pKFVrYSwiU3RhdGUiKTtmdW5jdGlvbiBNSnQodCxlKXtmb3IodmFyIHI9enoucmVwZWF0KCIgIixlKSxhPTAscz0tMSxuPSIiLG8sbD10Lmxlbmd0aDthPGw7KXM9dC5pbmRleE9mKGAKYCxhKSxzPT09LTE/KG89dC5zbGljZShhKSxhPWwpOihvPXQuc2xpY2UoYSxzKzEpLGE9cysxKSxvLmxlbmd0aCYmbyE9PWAKYCYmKG4rPXIpLG4rPW87cmV0dXJuIG59aShNSnQsImluZGVudFN0cmluZyIpO2Z1bmN0aW9uIERUZSh0LGUpe3JldHVybmAKYCt6ei5yZXBlYXQoIiAiLHQuaW5kZW50KmUpfWkoRFRlLCJnZW5lcmF0ZU5leHRMaW5lIik7ZnVuY3Rpb24gV2thKHQsZSl7dmFyIHIsYSxzO2ZvcihyPTAsYT10LmltcGxpY2l0VHlwZXMubGVuZ3RoO3I8YTtyKz0xKWlmKHM9dC5pbXBsaWNpdFR5cGVzW3JdLHMucmVzb2x2ZShlKSlyZXR1cm4hMDtyZXR1cm4hMX1pKFdrYSwidGVzdEltcGxpY2l0UmVzb2x2aW5nIik7ZnVuY3Rpb24gJFRlKHQpe3JldHVybiB0PT09TGthfHx0PT09X2thfWkoJFRlLCJpc1doaXRlc3BhY2UiKTtmdW5jdGlvbiBHdih0KXtyZXR1cm4gMzI8PXQmJnQ8PTEyNnx8MTYxPD10JiZ0PD01NTI5NSYmdCE9PTgyMzImJnQhPT04MjMzfHw1NzM0NDw9dCYmdDw9NjU1MzMmJnQhPT02NTI3OXx8NjU1MzY8PXQmJnQ8PTExMTQxMTF9aShHdiwiaXNQcmludGFibGUiKTtmdW5jdGlvbiBHa2EodCl7cmV0dXJuIEd2KHQpJiYhJFRlKHQpJiZ0IT09NjUyNzkmJnQhPT1Ua2EmJnQhPT1Uen1pKEdrYSwiaXNOc0NoYXIiKTtmdW5jdGlvbiBDSnQodCxlKXtyZXR1cm4gR3YodCkmJnQhPT02NTI3OSYmdCE9PWJKdCYmdCE9PXZKdCYmdCE9PXlKdCYmdCE9PXdKdCYmdCE9PWtKdCYmdCE9PXhKdCYmKHQhPT1nSnR8fGUmJkdrYShlKSl9aShDSnQsImlzUGxhaW5TYWZlIik7ZnVuY3Rpb24gWWthKHQpe3JldHVybiBHdih0KSYmdCE9PTY1Mjc5JiYhJFRlKHQpJiZ0IT09TmthJiZ0IT09RmthJiZ0IT09eEp0JiZ0IT09Ykp0JiZ0IT09dkp0JiZ0IT09eUp0JiZ0IT09d0p0JiZ0IT09a0p0JiZ0IT09Z0p0JiZ0IT09RWthJiZ0IT09UGthJiZ0IT09RGthJiZ0IT09cWthJiZ0IT09T2thJiZ0IT09UmthJiZ0IT09SWthJiZ0IT09JGthJiZ0IT09QWthJiZ0IT09QmthJiZ0IT09SGthfWkoWWthLCJpc1BsYWluU2FmZUZpcnN0Iik7ZnVuY3Rpb24gekp0KHQpe3ZhciBlPS9eXG4qIC87cmV0dXJuIGUudGVzdCh0KX1pKHpKdCwibmVlZEluZGVudEluZGljYXRvciIpO3ZhciBfSnQ9MSxUSnQ9MixMSnQ9MyxESnQ9NCxQZGU9NTtmdW5jdGlvbiBLa2EodCxlLHIsYSxzKXt2YXIgbixvLGwsYz0hMSxkPSExLGY9YSE9PS0xLHA9LTEsaD1Za2EodC5jaGFyQ29kZUF0KDApKSYmISRUZSh0LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkpO2lmKGUpZm9yKG49MDtuPHQubGVuZ3RoO24rKyl7aWYobz10LmNoYXJDb2RlQXQobiksIUd2KG8pKXJldHVybiBQZGU7bD1uPjA/dC5jaGFyQ29kZUF0KG4tMSk6bnVsbCxoPWgmJkNKdChvLGwpfWVsc2V7Zm9yKG49MDtuPHQubGVuZ3RoO24rKyl7aWYobz10LmNoYXJDb2RlQXQobiksbz09PVR6KWM9ITAsZiYmKGQ9ZHx8bi1wLTE+YSYmdFtwKzFdIT09IiAiLHA9bik7ZWxzZSBpZighR3YobykpcmV0dXJuIFBkZTtsPW4+MD90LmNoYXJDb2RlQXQobi0xKTpudWxsLGg9aCYmQ0p0KG8sbCl9ZD1kfHxmJiZuLXAtMT5hJiZ0W3ArMV0hPT0iICJ9cmV0dXJuIWMmJiFkP2gmJiFzKHQpP19KdDpUSnQ6cj45JiZ6SnQodCk/UGRlOmQ/REp0OkxKdH1pKEtrYSwiY2hvb3NlU2NhbGFyU3R5bGUiKTtmdW5jdGlvbiBaa2EodCxlLHIsYSl7dC5kdW1wPShmdW5jdGlvbigpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4iJyciO2lmKCF0Lm5vQ29tcGF0TW9kZSYmVmthLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4iJyIrZSsiJyI7dmFyIHM9dC5pbmRlbnQqTWF0aC5tYXgoMSxyKSxuPXQubGluZVdpZHRoPT09LTE/LTE6TWF0aC5tYXgoTWF0aC5taW4odC5saW5lV2lkdGgsNDApLHQubGluZVdpZHRoLXMpLG89YXx8dC5mbG93TGV2ZWw+LTEmJnI+PXQuZmxvd0xldmVsO2Z1bmN0aW9uIGwoYyl7cmV0dXJuIFdrYSh0LGMpfXN3aXRjaChpKGwsInRlc3RBbWJpZ3VpdHkiKSxLa2EoZSxvLHQuaW5kZW50LG4sbCkpe2Nhc2UgX0p0OnJldHVybiBlO2Nhc2UgVEp0OnJldHVybiInIitlLnJlcGxhY2UoLycvZywiJyciKSsiJyI7Y2FzZSBMSnQ6cmV0dXJuInwiKyRKdChlLHQuaW5kZW50KStBSnQoTUp0KGUscykpO2Nhc2UgREp0OnJldHVybiI+IiskSnQoZSx0LmluZGVudCkrQUp0KE1KdChRa2EoZSxuKSxzKSk7Y2FzZSBQZGU6cmV0dXJuJyInK1hrYShlLG4pKyciJztkZWZhdWx0OnRocm93IG5ldyBfeigiaW1wb3NzaWJsZSBlcnJvcjogaW52YWxpZCBzY2FsYXIgc3R5bGUiKX19KSgpfWkoWmthLCJ3cml0ZVNjYWxhciIpO2Z1bmN0aW9uICRKdCh0LGUpe3ZhciByPXpKdCh0KT9TdHJpbmcoZSk6IiIsYT10W3QubGVuZ3RoLTFdPT09YApgLHM9YSYmKHRbdC5sZW5ndGgtMl09PT1gCmB8fHQ9PT1gCmApLG49cz8iKyI6YT8iIjoiLSI7cmV0dXJuIHIrbitgCmB9aSgkSnQsImJsb2NrSGVhZGVyIik7ZnVuY3Rpb24gQUp0KHQpe3JldHVybiB0W3QubGVuZ3RoLTFdPT09YApgP3Quc2xpY2UoMCwtMSk6dH1pKEFKdCwiZHJvcEVuZGluZ05ld2xpbmUiKTtmdW5jdGlvbiBRa2EodCxlKXtmb3IodmFyIHI9LyhcbispKFteXG5dKikvZyxhPShmdW5jdGlvbigpe3ZhciBkPXQuaW5kZXhPZihgCmApO3JldHVybiBkPWQhPT0tMT9kOnQubGVuZ3RoLHIubGFzdEluZGV4PWQsRUp0KHQuc2xpY2UoMCxkKSxlKX0pKCkscz10WzBdPT09YApgfHx0WzBdPT09IiAiLG4sbztvPXIuZXhlYyh0KTspe3ZhciBsPW9bMV0sYz1vWzJdO249Y1swXT09PSIgIixhKz1sKyghcyYmIW4mJmMhPT0iIj9gCmA6IiIpK0VKdChjLGUpLHM9bn1yZXR1cm4gYX1pKFFrYSwiZm9sZFN0cmluZyIpO2Z1bmN0aW9uIEVKdCh0LGUpe2lmKHQ9PT0iInx8dFswXT09PSIgIilyZXR1cm4gdDtmb3IodmFyIHI9LyBbXiBdL2csYSxzPTAsbixvPTAsbD0wLGM9IiI7YT1yLmV4ZWModCk7KWw9YS5pbmRleCxsLXM+ZSYmKG49bz5zP286bCxjKz1gCmArdC5zbGljZShzLG4pLHM9bisxKSxvPWw7cmV0dXJuIGMrPWAKYCx0Lmxlbmd0aC1zPmUmJm8+cz9jKz10LnNsaWNlKHMsbykrYApgK3Quc2xpY2UobysxKTpjKz10LnNsaWNlKHMpLGMuc2xpY2UoMSl9aShFSnQsImZvbGRMaW5lIik7ZnVuY3Rpb24gWGthKHQpe2Zvcih2YXIgZT0iIixyLGEscyxuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKHI9dC5jaGFyQ29kZUF0KG4pLHI+PTU1Mjk2JiZyPD01NjMxOSYmKGE9dC5jaGFyQ29kZUF0KG4rMSksYT49NTYzMjAmJmE8PTU3MzQzKSl7ZSs9U0p0KChyLTU1Mjk2KSoxMDI0K2EtNTYzMjArNjU1MzYpLG4rKztjb250aW51ZX1zPWdvW3JdLGUrPSFzJiZHdihyKT90W25dOnN8fFNKdChyKX1yZXR1cm4gZX1pKFhrYSwiZXNjYXBlU3RyaW5nIik7ZnVuY3Rpb24gSmthKHQsZSxyKXt2YXIgYT0iIixzPXQudGFnLG4sbztmb3Iobj0wLG89ci5sZW5ndGg7bjxvO24rPTEpRDYodCxlLHJbbl0sITEsITEpJiYobiE9PTAmJihhKz0iLCIrKHQuY29uZGVuc2VGbG93PyIiOiIgIikpLGErPXQuZHVtcCk7dC50YWc9cyx0LmR1bXA9IlsiK2ErIl0ifWkoSmthLCJ3cml0ZUZsb3dTZXF1ZW5jZSIpO2Z1bmN0aW9uIGVTYSh0LGUscixhKXt2YXIgcz0iIixuPXQudGFnLG8sbDtmb3Iobz0wLGw9ci5sZW5ndGg7bzxsO28rPTEpRDYodCxlKzEscltvXSwhMCwhMCkmJigoIWF8fG8hPT0wKSYmKHMrPURUZSh0LGUpKSx0LmR1bXAmJlR6PT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/cys9Ii0iOnMrPSItICIscys9dC5kdW1wKTt0LnRhZz1uLHQuZHVtcD1zfHwiW10ifWkoZVNhLCJ3cml0ZUJsb2NrU2VxdWVuY2UiKTtmdW5jdGlvbiB0U2EodCxlLHIpe3ZhciBhPSIiLHM9dC50YWcsbj1PYmplY3Qua2V5cyhyKSxvLGwsYyxkLGY7Zm9yKG89MCxsPW4ubGVuZ3RoO288bDtvKz0xKWY9IiIsbyE9PTAmJihmKz0iLCAiKSx0LmNvbmRlbnNlRmxvdyYmKGYrPSciJyksYz1uW29dLGQ9cltjXSxENih0LGUsYywhMSwhMSkmJih0LmR1bXAubGVuZ3RoPjEwMjQmJihmKz0iPyAiKSxmKz10LmR1bXArKHQuY29uZGVuc2VGbG93PyciJzoiIikrIjoiKyh0LmNvbmRlbnNlRmxvdz8iIjoiICIpLEQ2KHQsZSxkLCExLCExKSYmKGYrPXQuZHVtcCxhKz1mKSk7dC50YWc9cyx0LmR1bXA9InsiK2ErIn0ifWkodFNhLCJ3cml0ZUZsb3dNYXBwaW5nIik7ZnVuY3Rpb24gclNhKHQsZSxyLGEpe3ZhciBzPSIiLG49dC50YWcsbz1PYmplY3Qua2V5cyhyKSxsLGMsZCxmLHAsaDtpZih0LnNvcnRLZXlzPT09ITApby5zb3J0KCk7ZWxzZSBpZih0eXBlb2YgdC5zb3J0S2V5cz09ImZ1bmN0aW9uIilvLnNvcnQodC5zb3J0S2V5cyk7ZWxzZSBpZih0LnNvcnRLZXlzKXRocm93IG5ldyBfeigic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiIpO2ZvcihsPTAsYz1vLmxlbmd0aDtsPGM7bCs9MSloPSIiLCghYXx8bCE9PTApJiYoaCs9RFRlKHQsZSkpLGQ9b1tsXSxmPXJbZF0sRDYodCxlKzEsZCwhMCwhMCwhMCkmJihwPXQudGFnIT09bnVsbCYmdC50YWchPT0iPyJ8fHQuZHVtcCYmdC5kdW1wLmxlbmd0aD4xMDI0LHAmJih0LmR1bXAmJlR6PT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/aCs9Ij8iOmgrPSI/ICIpLGgrPXQuZHVtcCxwJiYoaCs9RFRlKHQsZSkpLEQ2KHQsZSsxLGYsITAscCkmJih0LmR1bXAmJlR6PT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/aCs9IjoiOmgrPSI6ICIsaCs9dC5kdW1wLHMrPWgpKTt0LnRhZz1uLHQuZHVtcD1zfHwie30ifWkoclNhLCJ3cml0ZUJsb2NrTWFwcGluZyIpO2Z1bmN0aW9uIElKdCh0LGUscil7dmFyIGEscyxuLG8sbCxjO2ZvcihzPXI/dC5leHBsaWNpdFR5cGVzOnQuaW1wbGljaXRUeXBlcyxuPTAsbz1zLmxlbmd0aDtuPG87bis9MSlpZihsPXNbbl0sKGwuaW5zdGFuY2VPZnx8bC5wcmVkaWNhdGUpJiYoIWwuaW5zdGFuY2VPZnx8dHlwZW9mIGU9PSJvYmplY3QiJiZlIGluc3RhbmNlb2YgbC5pbnN0YW5jZU9mKSYmKCFsLnByZWRpY2F0ZXx8bC5wcmVkaWNhdGUoZSkpKXtpZih0LnRhZz1yP2wudGFnOiI/IixsLnJlcHJlc2VudCl7aWYoYz10LnN0eWxlTWFwW2wudGFnXXx8bC5kZWZhdWx0U3R5bGUsaEp0LmNhbGwobC5yZXByZXNlbnQpPT09IltvYmplY3QgRnVuY3Rpb25dIilhPWwucmVwcmVzZW50KGUsYyk7ZWxzZSBpZihtSnQuY2FsbChsLnJlcHJlc2VudCxjKSlhPWwucmVwcmVzZW50W2NdKGUsYyk7ZWxzZSB0aHJvdyBuZXcgX3ooIiE8IitsLnRhZysnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicrYysnIiBzdHlsZScpO3QuZHVtcD1hfXJldHVybiEwfXJldHVybiExfWkoSUp0LCJkZXRlY3RUeXBlIik7ZnVuY3Rpb24gRDYodCxlLHIsYSxzLG4pe3QudGFnPW51bGwsdC5kdW1wPXIsSUp0KHQsciwhMSl8fElKdCh0LHIsITApO3ZhciBvPWhKdC5jYWxsKHQuZHVtcCk7YSYmKGE9dC5mbG93TGV2ZWw8MHx8dC5mbG93TGV2ZWw+ZSk7dmFyIGw9bz09PSJbb2JqZWN0IE9iamVjdF0ifHxvPT09IltvYmplY3QgQXJyYXldIixjLGQ7aWYobCYmKGM9dC5kdXBsaWNhdGVzLmluZGV4T2YociksZD1jIT09LTEpLCh0LnRhZyE9PW51bGwmJnQudGFnIT09Ij8ifHxkfHx0LmluZGVudCE9PTImJmU+MCkmJihzPSExKSxkJiZ0LnVzZWREdXBsaWNhdGVzW2NdKXQuZHVtcD0iKnJlZl8iK2M7ZWxzZXtpZihsJiZkJiYhdC51c2VkRHVwbGljYXRlc1tjXSYmKHQudXNlZER1cGxpY2F0ZXNbY109ITApLG89PT0iW29iamVjdCBPYmplY3RdIilhJiZPYmplY3Qua2V5cyh0LmR1bXApLmxlbmd0aCE9PTA/KHJTYSh0LGUsdC5kdW1wLHMpLGQmJih0LmR1bXA9IiZyZWZfIitjK3QuZHVtcCkpOih0U2EodCxlLHQuZHVtcCksZCYmKHQuZHVtcD0iJnJlZl8iK2MrIiAiK3QuZHVtcCkpO2Vsc2UgaWYobz09PSJbb2JqZWN0IEFycmF5XSIpe3ZhciBmPXQubm9BcnJheUluZGVudCYmZT4wP2UtMTplO2EmJnQuZHVtcC5sZW5ndGghPT0wPyhlU2EodCxmLHQuZHVtcCxzKSxkJiYodC5kdW1wPSImcmVmXyIrYyt0LmR1bXApKTooSmthKHQsZix0LmR1bXApLGQmJih0LmR1bXA9IiZyZWZfIitjKyIgIit0LmR1bXApKX1lbHNlIGlmKG89PT0iW29iamVjdCBTdHJpbmddIil0LnRhZyE9PSI/IiYmWmthKHQsdC5kdW1wLGUsbik7ZWxzZXtpZih0LnNraXBJbnZhbGlkKXJldHVybiExO3Rocm93IG5ldyBfeigidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIitvKX10LnRhZyE9PW51bGwmJnQudGFnIT09Ij8iJiYodC5kdW1wPSIhPCIrdC50YWcrIj4gIit0LmR1bXApfXJldHVybiEwfWkoRDYsIndyaXRlTm9kZSIpO2Z1bmN0aW9uIGFTYSh0LGUpe3ZhciByPVtdLGE9W10scyxuO2ZvcihBVGUodCxyLGEpLHM9MCxuPWEubGVuZ3RoO3M8bjtzKz0xKWUuZHVwbGljYXRlcy5wdXNoKHJbYVtzXV0pO2UudXNlZER1cGxpY2F0ZXM9bmV3IEFycmF5KG4pfWkoYVNhLCJnZXREdXBsaWNhdGVSZWZlcmVuY2VzIik7ZnVuY3Rpb24gQVRlKHQsZSxyKXt2YXIgYSxzLG47aWYodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IilpZihzPWUuaW5kZXhPZih0KSxzIT09LTEpci5pbmRleE9mKHMpPT09LTEmJnIucHVzaChzKTtlbHNlIGlmKGUucHVzaCh0KSxBcnJheS5pc0FycmF5KHQpKWZvcihzPTAsbj10Lmxlbmd0aDtzPG47cys9MSlBVGUodFtzXSxlLHIpO2Vsc2UgZm9yKGE9T2JqZWN0LmtleXModCkscz0wLG49YS5sZW5ndGg7czxuO3MrPTEpQVRlKHRbYVtzXV0sZSxyKX1pKEFUZSwiaW5zcGVjdE5vZGUiKTtmdW5jdGlvbiBQSnQodCxlKXtlPWV8fHt9O3ZhciByPW5ldyBVa2EoZSk7cmV0dXJuIHIubm9SZWZzfHxhU2EodCxyKSxENihyLDAsdCwhMCwhMCk/ci5kdW1wK2AKYDoiIn1pKFBKdCwiZHVtcCIpO2Z1bmN0aW9uIGlTYSh0LGUpe3JldHVybiBQSnQodCx6ei5leHRlbmQoe3NjaGVtYTp6a2F9LGUpKX1pKGlTYSwic2FmZUR1bXAiKSxFVGUuZXhwb3J0cy5kdW1wPVBKdCxFVGUuZXhwb3J0cy5zYWZlRHVtcD1pU2F9KTt2YXIgUkp0PU50KCgkb24sRmkpPT57InVzZSBzdHJpY3QiO3ZhciBOZGU9Zkp0KCksT0p0PU5KdCgpO2Z1bmN0aW9uIE9kZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIkZ1bmN0aW9uICIrdCsiIGlzIGRlcHJlY2F0ZWQgYW5kIGNhbm5vdCBiZSB1c2VkLiIpfX1pKE9kZSwiZGVwcmVjYXRlZCIpLEZpLmV4cG9ydHMuVHlwZT1YcygpLEZpLmV4cG9ydHMuU2NoZW1hPXo2KCksRmkuZXhwb3J0cy5GQUlMU0FGRV9TQ0hFTUE9TGRlKCksRmkuZXhwb3J0cy5KU09OX1NDSEVNQT1NVGUoKSxGaS5leHBvcnRzLkNPUkVfU0NIRU1BPUNUZSgpLEZpLmV4cG9ydHMuREVGQVVMVF9TQUZFX1NDSEVNQT1WdigpLEZpLmV4cG9ydHMuREVGQVVMVF9GVUxMX1NDSEVNQT1NeigpLEZpLmV4cG9ydHMubG9hZD1OZGUubG9hZCxGaS5leHBvcnRzLmxvYWRBbGw9TmRlLmxvYWRBbGwsRmkuZXhwb3J0cy5zYWZlTG9hZD1OZGUuc2FmZUxvYWQsRmkuZXhwb3J0cy5zYWZlTG9hZEFsbD1OZGUuc2FmZUxvYWRBbGwsRmkuZXhwb3J0cy5kdW1wPU9KdC5kdW1wLEZpLmV4cG9ydHMuc2FmZUR1bXA9T0p0LnNhZmVEdW1wLEZpLmV4cG9ydHMuWUFNTEV4Y2VwdGlvbj1IdigpLEZpLmV4cG9ydHMuTUlOSU1BTF9TQ0hFTUE9TGRlKCksRmkuZXhwb3J0cy5TQUZFX1NDSEVNQT1WdigpLEZpLmV4cG9ydHMuREVGQVVMVF9TQ0hFTUE9TXooKSxGaS5leHBvcnRzLnNjYW49T2RlKCJzY2FuIiksRmkuZXhwb3J0cy5wYXJzZT1PZGUoInBhcnNlIiksRmkuZXhwb3J0cy5jb21wb3NlPU9kZSgiY29tcG9zZSIpLEZpLmV4cG9ydHMuYWRkQ29uc3RydWN0b3I9T2RlKCJhZGRDb25zdHJ1Y3RvciIpfSk7dmFyIEJKdD1OdCgoRW9uLEZKdCk9PnsidXNlIHN0cmljdCI7dmFyIHNTYT1SSnQoKTtGSnQuZXhwb3J0cz1zU2F9KTt2YXIgSEp0PU50KFUwPT57InVzZSBzdHJpY3QiO3ZhciBuU2E9VTAmJlUwLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSxyLGEpe2E9PT12b2lkIDAmJihhPXIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEse2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX0sImdldCIpfSl9KTooZnVuY3Rpb24odCxlLHIsYSl7YT09PXZvaWQgMCYmKGE9ciksdFthXT1lW3JdfSkpLG9TYT1VMCYmVTAuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pfSk6ZnVuY3Rpb24odCxlKXt0LmRlZmF1bHQ9ZX0pLGxTYT1VMCYmVTAuX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIHIgaW4gdClyIT09ImRlZmF1bHQiJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZuU2EoZSx0LHIpO3JldHVybiBvU2EoZSx0KSxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVTAsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFUwLmpzWWFtbD12b2lkIDA7dmFyIGNTYT1sU2EoQkp0KCkpO1UwLmpzWWFtbD1jU2F9KTt2YXIgVkp0PU50KFVsPT57InVzZSBzdHJpY3QiO3ZhciBkU2E9VWwmJlVsLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSxyLGEpe2E9PT12b2lkIDAmJihhPXIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEse2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX0sImdldCIpfSl9KTooZnVuY3Rpb24odCxlLHIsYSl7YT09PXZvaWQgMCYmKGE9ciksdFthXT1lW3JdfSkpLHVTYT1VbCYmVWwuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pfSk6ZnVuY3Rpb24odCxlKXt0LmRlZmF1bHQ9ZX0pLHBTYT1VbCYmVWwuX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIHIgaW4gdClyIT09ImRlZmF1bHQiJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZkU2EoZSx0LHIpO3JldHVybiB1U2EoZSx0KSxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVWwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFVsLm9iamVjdFRvWWFtbFN0cmluZz1VbC55YW1sU3RyaW5nVG9PYmplY3Q9dm9pZCAwO3ZhciBxSnQ9cFNhKEhKdCgpKTtVbC55YW1sU3RyaW5nVG9PYmplY3Q9YXN5bmModCxlPXt9KT0+cUp0LmpzWWFtbC5zYWZlTG9hZCh0KSxVbC5vYmplY3RUb1lhbWxTdHJpbmc9YXN5bmModCxlPXt9KT0+cUp0LmpzWWFtbC5zYWZlRHVtcCh0KX0pO2Z1bmN0aW9uIElUZSh0KXtpZih0KXRocm93IHR9dmFyIGpKdD11KCgpPT57aShJVGUsImJhaWwiKX0pO3ZhciBKSnQ9TnQoKEJvbixYSnQpPT57InVzZSBzdHJpY3QiO3ZhciBSZGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxVSnQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxXSnQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LEdKdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFlKdD1pKGZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXkuaXNBcnJheT09ImZ1bmN0aW9uIj9BcnJheS5pc0FycmF5KGUpOlVKdC5jYWxsKGUpPT09IltvYmplY3QgQXJyYXldIn0sImlzQXJyYXkiKSxLSnQ9aShmdW5jdGlvbihlKXtpZighZXx8VUp0LmNhbGwoZSkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgcj1SZGUuY2FsbChlLCJjb25zdHJ1Y3RvciIpLGE9ZS5jb25zdHJ1Y3RvciYmZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUmJlJkZS5jYWxsKGUuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIik7aWYoZS5jb25zdHJ1Y3RvciYmIXImJiFhKXJldHVybiExO3ZhciBzO2ZvcihzIGluIGUpO3JldHVybiB0eXBlb2Ygcz4idSJ8fFJkZS5jYWxsKGUscyl9LCJpc1BsYWluT2JqZWN0IiksWkp0PWkoZnVuY3Rpb24oZSxyKXtXSnQmJnIubmFtZT09PSJfX3Byb3RvX18iP1dKdChlLHIubmFtZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6ci5uZXdWYWx1ZSx3cml0YWJsZTohMH0pOmVbci5uYW1lXT1yLm5ld1ZhbHVlfSwic2V0UHJvcGVydHkiKSxRSnQ9aShmdW5jdGlvbihlLHIpe2lmKHI9PT0iX19wcm90b19fIilpZihSZGUuY2FsbChlLHIpKXtpZihHSnQpcmV0dXJuIEdKdChlLHIpLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiBlW3JdfSwiZ2V0UHJvcGVydHkiKTtYSnQuZXhwb3J0cz1pKGZ1bmN0aW9uIHQoKXt2YXIgZSxyLGEscyxuLG8sbD1hcmd1bWVudHNbMF0sYz0xLGQ9YXJndW1lbnRzLmxlbmd0aCxmPSExO2Zvcih0eXBlb2YgbD09ImJvb2xlYW4iJiYoZj1sLGw9YXJndW1lbnRzWzFdfHx7fSxjPTIpLChsPT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCImJnR5cGVvZiBsIT0iZnVuY3Rpb24iKSYmKGw9e30pO2M8ZDsrK2MpaWYoZT1hcmd1bWVudHNbY10sZSE9bnVsbClmb3IociBpbiBlKWE9UUp0KGwscikscz1RSnQoZSxyKSxsIT09cyYmKGYmJnMmJihLSnQocyl8fChuPVlKdChzKSkpPyhuPyhuPSExLG89YSYmWUp0KGEpP2E6W10pOm89YSYmS0p0KGEpP2E6e30sWkp0KGwse25hbWU6cixuZXdWYWx1ZTp0KGYsbyxzKX0pKTp0eXBlb2YgczwidSImJlpKdChsLHtuYW1lOnIsbmV3VmFsdWU6c30pKTtyZXR1cm4gbH0sImV4dGVuZCIpfSk7dmFyIG1wPXUoKCk9Pnt9KTtmdW5jdGlvbiBMeih0KXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fHQ9PT1udWxsKXJldHVybiExO2xldCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gdCkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIHQpfXZhciBlZXI9dSgoKT0+e2koTHosImlzUGxhaW5PYmplY3QiKX0pO2Z1bmN0aW9uIFBUZSgpe2xldCB0PVtdLGU9e3J1bjpyLHVzZTphfTtyZXR1cm4gZTtmdW5jdGlvbiByKC4uLnMpe2xldCBuPS0xLG89cy5wb3AoKTtpZih0eXBlb2YgbyE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIitvKTtsKG51bGwsLi4ucyk7ZnVuY3Rpb24gbChjLC4uLmQpe2xldCBmPXRbKytuXSxwPS0xO2lmKGMpe28oYyk7cmV0dXJufWZvcig7KytwPHMubGVuZ3RoOykoZFtwXT09PW51bGx8fGRbcF09PT12b2lkIDApJiYoZFtwXT1zW3BdKTtzPWQsZj90ZXIoZixsKSguLi5kKTpvKG51bGwsLi4uZCl9aShsLCJuZXh0Iil9ZnVuY3Rpb24gYShzKXtpZih0eXBlb2YgcyE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrcyk7cmV0dXJuIHQucHVzaChzKSxlfX1mdW5jdGlvbiB0ZXIodCxlKXtsZXQgcjtyZXR1cm4gYTtmdW5jdGlvbiBhKC4uLm8pe2xldCBsPXQubGVuZ3RoPm8ubGVuZ3RoLGM7bCYmby5wdXNoKHMpO3RyeXtjPXQuYXBwbHkodGhpcyxvKX1jYXRjaChkKXtsZXQgZj1kO2lmKGwmJnIpdGhyb3cgZjtyZXR1cm4gcyhmKX1sfHwoYyYmYy50aGVuJiZ0eXBlb2YgYy50aGVuPT0iZnVuY3Rpb24iP2MudGhlbihuLHMpOmMgaW5zdGFuY2VvZiBFcnJvcj9zKGMpOm4oYykpfWZ1bmN0aW9uIHMobywuLi5sKXtyfHwocj0hMCxlKG8sLi4ubCkpfWZ1bmN0aW9uIG4obyl7cyhudWxsLG8pfX12YXIgcmVyPXUoKCk9PntpKFBUZSwidHJvdWdoIik7aSh0ZXIsIndyYXAiKX0pO3ZhciBhZXI9dSgoKT0+e3JlcigpfSk7ZnVuY3Rpb24gZ3AodCl7cmV0dXJuIXR8fHR5cGVvZiB0IT0ib2JqZWN0Ij8iIjoicG9zaXRpb24iaW4gdHx8InR5cGUiaW4gdD9pZXIodC5wb3NpdGlvbik6InN0YXJ0ImluIHR8fCJlbmQiaW4gdD9pZXIodCk6ImxpbmUiaW4gdHx8ImNvbHVtbiJpbiB0P05UZSh0KToiIn1mdW5jdGlvbiBOVGUodCl7cmV0dXJuIHNlcih0JiZ0LmxpbmUpKyI6IitzZXIodCYmdC5jb2x1bW4pfWZ1bmN0aW9uIGllcih0KXtyZXR1cm4gTlRlKHQmJnQuc3RhcnQpKyItIitOVGUodCYmdC5lbmQpfWZ1bmN0aW9uIHNlcih0KXtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJudW1iZXIiP3Q6MX12YXIgbmVyPXUoKCk9PntpKGdwLCJzdHJpbmdpZnlQb3NpdGlvbiIpO2koTlRlLCJwb2ludCIpO2koaWVyLCJwb3NpdGlvbiIpO2koc2VyLCJpbmRleCIpfSk7dmFyIE9UZT11KCgpPT57bmVyKCl9KTt2YXIgYm4sb2VyPXUoKCk9PntPVGUoKTtibj1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tpKHRoaXMsIlZGaWxlTWVzc2FnZSIpfWNvbnN0cnVjdG9yKGUscixhKXtzdXBlcigpLHR5cGVvZiByPT0ic3RyaW5nIiYmKGE9cixyPXZvaWQgMCk7bGV0IHM9IiIsbj17fSxvPSExO2lmKHImJigibGluZSJpbiByJiYiY29sdW1uImluIHI/bj17cGxhY2U6cn06InN0YXJ0ImluIHImJiJlbmQiaW4gcj9uPXtwbGFjZTpyfToidHlwZSJpbiByP249e2FuY2VzdG9yczpbcl0scGxhY2U6ci5wb3NpdGlvbn06bj17Li4ucn0pLHR5cGVvZiBlPT0ic3RyaW5nIj9zPWU6IW4uY2F1c2UmJmUmJihvPSEwLHM9ZS5tZXNzYWdlLG4uY2F1c2U9ZSksIW4ucnVsZUlkJiYhbi5zb3VyY2UmJnR5cGVvZiBhPT0ic3RyaW5nIil7bGV0IGM9YS5pbmRleE9mKCI6Iik7Yz09PS0xP24ucnVsZUlkPWE6KG4uc291cmNlPWEuc2xpY2UoMCxjKSxuLnJ1bGVJZD1hLnNsaWNlKGMrMSkpfWlmKCFuLnBsYWNlJiZuLmFuY2VzdG9ycyYmbi5hbmNlc3RvcnMpe2xldCBjPW4uYW5jZXN0b3JzW24uYW5jZXN0b3JzLmxlbmd0aC0xXTtjJiYobi5wbGFjZT1jLnBvc2l0aW9uKX1sZXQgbD1uLnBsYWNlJiYic3RhcnQiaW4gbi5wbGFjZT9uLnBsYWNlLnN0YXJ0Om4ucGxhY2U7dGhpcy5hbmNlc3RvcnM9bi5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW4uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1sP2wuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPXMsdGhpcy5saW5lPWw/bC5saW5lOnZvaWQgMCx0aGlzLm5hbWU9Z3Aobi5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9bi5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1uLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW4uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1vJiZuLmNhdXNlJiZ0eXBlb2Ygbi5jYXVzZS5zdGFjaz09InN0cmluZyI/bi5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtibi5wcm90b3R5cGUuZmlsZT0iIixibi5wcm90b3R5cGUubmFtZT0iIixibi5wcm90b3R5cGUucmVhc29uPSIiLGJuLnByb3RvdHlwZS5tZXNzYWdlPSIiLGJuLnByb3RvdHlwZS5zdGFjaz0iIixibi5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxibi5wcm90b3R5cGUubGluZT12b2lkIDAsYm4ucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsYm4ucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxibi5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLGJuLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsYm4ucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsYm4ucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgbGVyPXUoKCk9PntvZXIoKX0pO2Z1bmN0aW9uIGZTYSh0LGUpe2lmKGUhPT12b2lkIDAmJnR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7RHoodCk7bGV0IHI9MCxhPS0xLHM9dC5sZW5ndGgsbjtpZihlPT09dm9pZCAwfHxlLmxlbmd0aD09PTB8fGUubGVuZ3RoPnQubGVuZ3RoKXtmb3IoO3MtLTspaWYodC5jb2RlUG9pbnRBdChzKT09PTQ3KXtpZihuKXtyPXMrMTticmVha319ZWxzZSBhPDAmJihuPSEwLGE9cysxKTtyZXR1cm4gYTwwPyIiOnQuc2xpY2UocixhKX1pZihlPT09dClyZXR1cm4iIjtsZXQgbz0tMSxsPWUubGVuZ3RoLTE7Zm9yKDtzLS07KWlmKHQuY29kZVBvaW50QXQocyk9PT00Nyl7aWYobil7cj1zKzE7YnJlYWt9fWVsc2UgbzwwJiYobj0hMCxvPXMrMSksbD4tMSYmKHQuY29kZVBvaW50QXQocyk9PT1lLmNvZGVQb2ludEF0KGwtLSk/bDwwJiYoYT1zKToobD0tMSxhPW8pKTtyZXR1cm4gcj09PWE/YT1vOmE8MCYmKGE9dC5sZW5ndGgpLHQuc2xpY2UocixhKX1mdW5jdGlvbiBoU2EodCl7aWYoRHoodCksdC5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgZT0tMSxyPXQubGVuZ3RoLGE7Zm9yKDstLXI7KWlmKHQuY29kZVBvaW50QXQocik9PT00Nyl7aWYoYSl7ZT1yO2JyZWFrfX1lbHNlIGF8fChhPSEwKTtyZXR1cm4gZTwwP3QuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOmU9PT0xJiZ0LmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjp0LnNsaWNlKDAsZSl9ZnVuY3Rpb24gbVNhKHQpe0R6KHQpO2xldCBlPXQubGVuZ3RoLHI9LTEsYT0wLHM9LTEsbj0wLG87Zm9yKDtlLS07KXtsZXQgbD10LmNvZGVQb2ludEF0KGUpO2lmKGw9PT00Nyl7aWYobyl7YT1lKzE7YnJlYWt9Y29udGludWV9cjwwJiYobz0hMCxyPWUrMSksbD09PTQ2P3M8MD9zPWU6biE9PTEmJihuPTEpOnM+LTEmJihuPS0xKX1yZXR1cm4gczwwfHxyPDB8fG49PT0wfHxuPT09MSYmcz09PXItMSYmcz09PWErMT8iIjp0LnNsaWNlKHMscil9ZnVuY3Rpb24gZ1NhKC4uLnQpe2xldCBlPS0xLHI7Zm9yKDsrK2U8dC5sZW5ndGg7KUR6KHRbZV0pLHRbZV0mJihyPXI9PT12b2lkIDA/dFtlXTpyKyIvIit0W2VdKTtyZXR1cm4gcj09PXZvaWQgMD8iLiI6YlNhKHIpfWZ1bmN0aW9uIGJTYSh0KXtEeih0KTtsZXQgZT10LmNvZGVQb2ludEF0KDApPT09NDcscj14U2EodCwhZSk7cmV0dXJuIHIubGVuZ3RoPT09MCYmIWUmJihyPSIuIiksci5sZW5ndGg+MCYmdC5jb2RlUG9pbnRBdCh0Lmxlbmd0aC0xKT09PTQ3JiYocis9Ii8iKSxlPyIvIityOnJ9ZnVuY3Rpb24geFNhKHQsZSl7bGV0IHI9IiIsYT0wLHM9LTEsbj0wLG89LTEsbCxjO2Zvcig7KytvPD10Lmxlbmd0aDspe2lmKG88dC5sZW5ndGgpbD10LmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYobD09PTQ3KWJyZWFrO2w9NDd9aWYobD09PTQ3KXtpZighKHM9PT1vLTF8fG49PT0xKSlpZihzIT09by0xJiZuPT09Mil7aWYoci5sZW5ndGg8Mnx8YSE9PTJ8fHIuY29kZVBvaW50QXQoci5sZW5ndGgtMSkhPT00Nnx8ci5jb2RlUG9pbnRBdChyLmxlbmd0aC0yKSE9PTQ2KXtpZihyLmxlbmd0aD4yKXtpZihjPXIubGFzdEluZGV4T2YoIi8iKSxjIT09ci5sZW5ndGgtMSl7YzwwPyhyPSIiLGE9MCk6KHI9ci5zbGljZSgwLGMpLGE9ci5sZW5ndGgtMS1yLmxhc3RJbmRleE9mKCIvIikpLHM9byxuPTA7Y29udGludWV9fWVsc2UgaWYoci5sZW5ndGg+MCl7cj0iIixhPTAscz1vLG49MDtjb250aW51ZX19ZSYmKHI9ci5sZW5ndGg+MD9yKyIvLi4iOiIuLiIsYT0yKX1lbHNlIHIubGVuZ3RoPjA/cis9Ii8iK3Quc2xpY2UocysxLG8pOnI9dC5zbGljZShzKzEsbyksYT1vLXMtMTtzPW8sbj0wfWVsc2UgbD09PTQ2JiZuPi0xP24rKzpuPS0xfXJldHVybiByfWZ1bmN0aW9uIER6KHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkodCkpfXZhciByYyxjZXI9dSgoKT0+e3JjPXtiYXNlbmFtZTpmU2EsZGlybmFtZTpoU2EsZXh0bmFtZTptU2Esam9pbjpnU2Esc2VwOiIvIn07aShmU2EsImJhc2VuYW1lIik7aShoU2EsImRpcm5hbWUiKTtpKG1TYSwiZXh0bmFtZSIpO2koZ1NhLCJqb2luIik7aShiU2EsIm5vcm1hbGl6ZSIpO2koeFNhLCJub3JtYWxpemVTdHJpbmciKTtpKER6LCJhc3NlcnRQYXRoIil9KTtmdW5jdGlvbiB2U2EoKXtyZXR1cm4iLyJ9dmFyIGRlcix1ZXI9dSgoKT0+e2Rlcj17Y3dkOnZTYX07aSh2U2EsImN3ZCIpfSk7ZnVuY3Rpb24gWXYodCl7cmV0dXJuISEodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmImhyZWYiaW4gdCYmdC5ocmVmJiYicHJvdG9jb2wiaW4gdCYmdC5wcm90b2NvbCYmdC5hdXRoPT09dm9pZCAwKX12YXIgUlRlPXUoKCk9PntpKFl2LCJpc1VybCIpfSk7ZnVuY3Rpb24gcGVyKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil0PW5ldyBVUkwodCk7ZWxzZSBpZighWXYodCkpe2xldCBlPW5ldyBUeXBlRXJyb3IoJ1RoZSAicGF0aCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnK3QrImAiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX0FSR19UWVBFIixlfWlmKHQucHJvdG9jb2whPT0iZmlsZToiKXtsZXQgZT1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLGV9cmV0dXJuIHlTYSh0KX1mdW5jdGlvbiB5U2EodCl7aWYodC5ob3N0bmFtZSE9PSIiKXtsZXQgYT1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgYS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixhfWxldCBlPXQucGF0aG5hbWUscj0tMTtmb3IoOysrcjxlLmxlbmd0aDspaWYoZS5jb2RlUG9pbnRBdChyKT09PTM3JiZlLmNvZGVQb2ludEF0KHIrMSk9PT01MCl7bGV0IGE9ZS5jb2RlUG9pbnRBdChyKzIpO2lmKGE9PT03MHx8YT09PTEwMil7bGV0IHM9bmV3IFR5cGVFcnJvcigiRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzIik7dGhyb3cgcy5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIIixzfX1yZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGUpfXZhciBmZXI9dSgoKT0+e1JUZSgpO1JUZSgpO2kocGVyLCJ1cmxUb1BhdGgiKTtpKHlTYSwiZ2V0UGF0aEZyb21VUkxQb3NpeCIpfSk7ZnVuY3Rpb24gQlRlKHQsZSl7aWYodCYmdC5pbmNsdWRlcyhyYy5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrZSsiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIityYy5zZXArImAiKX1mdW5jdGlvbiBIVGUodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGVtcHR5Iil9ZnVuY3Rpb24gaGVyKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nIGAiK2UrImAgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28iKX1mdW5jdGlvbiB3U2EodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiB0JiYiYnl0ZU9mZnNldCJpbiB0KX12YXIgRlRlLCR6LG1lcj11KCgpPT57bGVyKCk7Y2VyKCk7dWVyKCk7ZmVyKCk7RlRlPVsiaGlzdG9yeSIsInBhdGgiLCJiYXNlbmFtZSIsInN0ZW0iLCJleHRuYW1lIiwiZGlybmFtZSJdLCR6PWNsYXNze3N0YXRpY3tpKHRoaXMsIlZGaWxlIil9Y29uc3RydWN0b3IoZSl7bGV0IHI7ZT9ZdihlKT9yPXtwYXRoOmV9OnR5cGVvZiBlPT0ic3RyaW5nInx8d1NhKGUpP3I9e3ZhbHVlOmV9OnI9ZTpyPXt9LHRoaXMuY3dkPSJjd2QiaW4gcj8iIjpkZXIuY3dkKCksdGhpcy5kYXRhPXt9LHRoaXMuaGlzdG9yeT1bXSx0aGlzLm1lc3NhZ2VzPVtdLHRoaXMudmFsdWUsdGhpcy5tYXAsdGhpcy5yZXN1bHQsdGhpcy5zdG9yZWQ7bGV0IGE9LTE7Zm9yKDsrK2E8RlRlLmxlbmd0aDspe2xldCBuPUZUZVthXTtuIGluIHImJnJbbl0hPT12b2lkIDAmJnJbbl0hPT1udWxsJiYodGhpc1tuXT1uPT09Imhpc3RvcnkiP1suLi5yW25dXTpyW25dKX1sZXQgcztmb3IocyBpbiByKUZUZS5pbmNsdWRlcyhzKXx8KHRoaXNbc109cltzXSl9Z2V0IGJhc2VuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3JjLmJhc2VuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBiYXNlbmFtZShlKXtIVGUoZSwiYmFzZW5hbWUiKSxCVGUoZSwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9cmMuam9pbih0aGlzLmRpcm5hbWV8fCIiLGUpfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3JjLmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUoZSl7aGVyKHRoaXMuYmFzZW5hbWUsImRpcm5hbWUiKSx0aGlzLnBhdGg9cmMuam9pbihlfHwiIix0aGlzLmJhc2VuYW1lKX1nZXQgZXh0bmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9yYy5leHRuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBleHRuYW1lKGUpe2lmKEJUZShlLCJleHRuYW1lIiksaGVyKHRoaXMuZGlybmFtZSwiZXh0bmFtZSIpLGUpe2lmKGUuY29kZVBvaW50QXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gIik7aWYoZS5pbmNsdWRlcygiLiIsMSkpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cyIpfXRoaXMucGF0aD1yYy5qb2luKHRoaXMuZGlybmFtZSx0aGlzLnN0ZW0rKGV8fCIiKSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV19c2V0IHBhdGgoZSl7WXYoZSkmJihlPXBlcihlKSksSFRlKGUsInBhdGgiKSx0aGlzLnBhdGghPT1lJiZ0aGlzLmhpc3RvcnkucHVzaChlKX1nZXQgc3RlbSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9yYy5iYXNlbmFtZSh0aGlzLnBhdGgsdGhpcy5leHRuYW1lKTp2b2lkIDB9c2V0IHN0ZW0oZSl7SFRlKGUsInN0ZW0iKSxCVGUoZSwic3RlbSIpLHRoaXMucGF0aD1yYy5qb2luKHRoaXMuZGlybmFtZXx8IiIsZSsodGhpcy5leHRuYW1lfHwiIikpfWZhaWwoZSxyLGEpe2xldCBzPXRoaXMubWVzc2FnZShlLHIsYSk7dGhyb3cgcy5mYXRhbD0hMCxzfWluZm8oZSxyLGEpe2xldCBzPXRoaXMubWVzc2FnZShlLHIsYSk7cmV0dXJuIHMuZmF0YWw9dm9pZCAwLHN9bWVzc2FnZShlLHIsYSl7bGV0IHM9bmV3IGJuKGUscixhKTtyZXR1cm4gdGhpcy5wYXRoJiYocy5uYW1lPXRoaXMucGF0aCsiOiIrcy5uYW1lLHMuZmlsZT10aGlzLnBhdGgpLHMuZmF0YWw9ITEsdGhpcy5tZXNzYWdlcy5wdXNoKHMpLHN9dG9TdHJpbmcoZSl7cmV0dXJuIHRoaXMudmFsdWU9PT12b2lkIDA/IiI6dHlwZW9mIHRoaXMudmFsdWU9PSJzdHJpbmciP3RoaXMudmFsdWU6bmV3IFRleHREZWNvZGVyKGV8fHZvaWQgMCkuZGVjb2RlKHRoaXMudmFsdWUpfX07aShCVGUsImFzc2VydFBhcnQiKTtpKEhUZSwiYXNzZXJ0Tm9uRW1wdHkiKTtpKGhlciwiYXNzZXJ0UGF0aCIpO2kod1NhLCJpc1VpbnQ4QXJyYXkiKX0pO3ZhciBnZXI9dSgoKT0+e21lcigpfSk7dmFyIGJlcix4ZXI9dSgoKT0+e2Jlcj1pKChmdW5jdGlvbih0KXtsZXQgYT10aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxzPWFbdF0sbj1pKGZ1bmN0aW9uKCl7cmV0dXJuIHMuYXBwbHkobixhcmd1bWVudHMpfSwiYXBwbHkiKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG4sYSksbn0pLCJDYWxsYWJsZUluc3RhbmNlIil9KTtmdW5jdGlvbiBWVGUodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrdCsiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24galRlKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK3QrImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gVVRlKHQsZSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK3QrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiB2ZXIodCl7aWYoIUx6KHQpfHx0eXBlb2YgdC50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrdCsiYCIpfWZ1bmN0aW9uIHllcih0LGUscil7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJgIit0KyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrZSsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gRmRlKHQpe3JldHVybiBTU2EodCk/dDpuZXcgJHoodCl9ZnVuY3Rpb24gU1NhKHQpe3JldHVybiEhKHQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmIm1lc3NhZ2UiaW4gdCYmIm1lc3NhZ2VzImluIHQpfWZ1bmN0aW9uIE1TYSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmcifHxDU2EodCl9ZnVuY3Rpb24gQ1NhKHQpe3JldHVybiEhKHQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmImJ5dGVMZW5ndGgiaW4gdCYmImJ5dGVPZmZzZXQiaW4gdCl9dmFyIEJkZSxrU2EscVRlLEF6LHdlcj11KCgpPT57akp0KCk7QmRlPUdhKEpKdCgpLDEpO21wKCk7ZWVyKCk7YWVyKCk7Z2VyKCk7eGVyKCk7a1NhPXt9Lmhhc093blByb3BlcnR5LHFUZT1jbGFzcyB0IGV4dGVuZHMgYmVye3N0YXRpY3tpKHRoaXMsIlByb2Nlc3NvciIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPVBUZSgpfWNvcHkoKXtsZXQgZT1uZXcgdCxyPS0xO2Zvcig7KytyPHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCBhPXRoaXMuYXR0YWNoZXJzW3JdO2UudXNlKC4uLmEpfXJldHVybiBlLmRhdGEoKDAsQmRlLmRlZmF1bHQpKCEwLHt9LHRoaXMubmFtZXNwYWNlKSksZX1kYXRhKGUscil7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9hcmd1bWVudHMubGVuZ3RoPT09Mj8oVVRlKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2VbZV09cix0aGlzKTprU2EuY2FsbCh0aGlzLm5hbWVzcGFjZSxlKSYmdGhpcy5uYW1lc3BhY2VbZV18fHZvaWQgMDplPyhVVGUoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZT1lLHRoaXMpOnRoaXMubmFtZXNwYWNlfWZyZWV6ZSgpe2lmKHRoaXMuZnJvemVuKXJldHVybiB0aGlzO2xldCBlPXRoaXM7Zm9yKDsrK3RoaXMuZnJlZXplSW5kZXg8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0W3IsLi4uYV09dGhpcy5hdHRhY2hlcnNbdGhpcy5mcmVlemVJbmRleF07aWYoYVswXT09PSExKWNvbnRpbnVlO2FbMF09PT0hMCYmKGFbMF09dm9pZCAwKTtsZXQgcz1yLmNhbGwoZSwuLi5hKTt0eXBlb2Ygcz09ImZ1bmN0aW9uIiYmdGhpcy50cmFuc2Zvcm1lcnMudXNlKHMpfXJldHVybiB0aGlzLmZyb3plbj0hMCx0aGlzLmZyZWV6ZUluZGV4PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0aGlzfXBhcnNlKGUpe3RoaXMuZnJlZXplKCk7bGV0IHI9RmRlKGUpLGE9dGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyO3JldHVybiBWVGUoInBhcnNlIixhKSxhKFN0cmluZyhyKSxyKX1wcm9jZXNzKGUscil7bGV0IGE9dGhpcztyZXR1cm4gdGhpcy5mcmVlemUoKSxWVGUoInByb2Nlc3MiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksalRlKCJwcm9jZXNzIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSxyP3Modm9pZCAwLHIpOm5ldyBQcm9taXNlKHMpO2Z1bmN0aW9uIHMobixvKXtsZXQgbD1GZGUoZSksYz1hLnBhcnNlKGwpO2EucnVuKGMsbCxmdW5jdGlvbihmLHAsaCl7aWYoZnx8IXB8fCFoKXJldHVybiBkKGYpO2xldCBtPXAsdj1hLnN0cmluZ2lmeShtLGgpO01TYSh2KT9oLnZhbHVlPXY6aC5yZXN1bHQ9dixkKGYsaCl9KTtmdW5jdGlvbiBkKGYscCl7Znx8IXA/byhmKTpuP24ocCk6cih2b2lkIDAscCl9aShkLCJyZWFsRG9uZSIpfWkocywiZXhlY3V0b3IiKX1wcm9jZXNzU3luYyhlKXtsZXQgcj0hMSxhO3JldHVybiB0aGlzLmZyZWV6ZSgpLFZUZSgicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksalRlKCJwcm9jZXNzU3luYyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdGhpcy5wcm9jZXNzKGUscykseWVyKCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLHIpLGE7ZnVuY3Rpb24gcyhuLG8pe3I9ITAsSVRlKG4pLGE9b31pKHMsInJlYWxEb25lIil9cnVuKGUscixhKXt2ZXIoZSksdGhpcy5mcmVlemUoKTtsZXQgcz10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4hYSYmdHlwZW9mIHI9PSJmdW5jdGlvbiImJihhPXIscj12b2lkIDApLGE/bih2b2lkIDAsYSk6bmV3IFByb21pc2Uobik7ZnVuY3Rpb24gbihvLGwpe2xldCBjPUZkZShyKTtzLnJ1bihlLGMsZCk7ZnVuY3Rpb24gZChmLHAsaCl7bGV0IG09cHx8ZTtmP2woZik6bz9vKG0pOmEodm9pZCAwLG0saCl9aShkLCJyZWFsRG9uZSIpfWkobiwiZXhlY3V0b3IiKX1ydW5TeW5jKGUscil7bGV0IGE9ITEscztyZXR1cm4gdGhpcy5ydW4oZSxyLG4pLHllcigicnVuU3luYyIsInJ1biIsYSkscztmdW5jdGlvbiBuKG8sbCl7SVRlKG8pLHM9bCxhPSEwfWkobiwicmVhbERvbmUiKX1zdHJpbmdpZnkoZSxyKXt0aGlzLmZyZWV6ZSgpO2xldCBhPUZkZShyKSxzPXRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXI7cmV0dXJuIGpUZSgic3RyaW5naWZ5IixzKSx2ZXIoZSkscyhlLGEpfXVzZShlLC4uLnIpe2xldCBhPXRoaXMuYXR0YWNoZXJzLHM9dGhpcy5uYW1lc3BhY2U7aWYoVVRlKCJ1c2UiLHRoaXMuZnJvemVuKSxlIT1udWxsKWlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKWMoZSxyKTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilBcnJheS5pc0FycmF5KGUpP2woZSk6byhlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2UrImAiKTtyZXR1cm4gdGhpcztmdW5jdGlvbiBuKGQpe2lmKHR5cGVvZiBkPT0iZnVuY3Rpb24iKWMoZCxbXSk7ZWxzZSBpZih0eXBlb2YgZD09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShkKSl7bGV0W2YsLi4ucF09ZDtjKGYscCl9ZWxzZSBvKGQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrZCsiYCIpfWZ1bmN0aW9uIG8oZCl7aWYoISgicGx1Z2lucyJpbiBkKSYmISgic2V0dGluZ3MiaW4gZCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUgYnV0IHJlY2VpdmVkIGFuIGVtcHR5IHByZXNldCwgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlOiBwcmVzZXRzIHR5cGljYWxseSBjb21lIHdpdGggYHBsdWdpbnNgIGFuZCBzb21ldGltZXMgd2l0aCBgc2V0dGluZ3NgLCBidXQgdGhpcyBoYXMgbmVpdGhlciIpO2woZC5wbHVnaW5zKSxkLnNldHRpbmdzJiYocy5zZXR0aW5ncz0oMCxCZGUuZGVmYXVsdCkoITAscy5zZXR0aW5ncyxkLnNldHRpbmdzKSl9ZnVuY3Rpb24gbChkKXtsZXQgZj0tMTtpZihkIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoZCkpZm9yKDsrK2Y8ZC5sZW5ndGg7KXtsZXQgcD1kW2ZdO24ocCl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2QrImAiKX1mdW5jdGlvbiBjKGQsZil7bGV0IHA9LTEsaD0tMTtmb3IoOysrcDxhLmxlbmd0aDspaWYoYVtwXVswXT09PWQpe2g9cDticmVha31pZihoPT09LTEpYS5wdXNoKFtkLC4uLmZdKTtlbHNlIGlmKGYubGVuZ3RoPjApe2xldFttLC4uLnZdPWYsYj1hW2hdWzFdO0x6KGIpJiZMeihtKSYmKG09KDAsQmRlLmRlZmF1bHQpKCEwLGIsbSkpLGFbaF09W2QsbSwuLi52XX19fX0sQXo9bmV3IHFUZSgpLmZyZWV6ZSgpO2koVlRlLCJhc3NlcnRQYXJzZXIiKTtpKGpUZSwiYXNzZXJ0Q29tcGlsZXIiKTtpKFVUZSwiYXNzZXJ0VW5mcm96ZW4iKTtpKHZlciwiYXNzZXJ0Tm9kZSIpO2koeWVyLCJhc3NlcnREb25lIik7aShGZGUsInZmaWxlIik7aShTU2EsImxvb2tzTGlrZUFWRmlsZSIpO2koTVNhLCJsb29rc0xpa2VBVmFsdWUiKTtpKENTYSwiaXNVaW50OEFycmF5Iil9KTt2YXIga2VyPXUoKCk9Pnt3ZXIoKX0pO2Z1bmN0aW9uIFp2KHQsZSl7bGV0IHI9U3RyaW5nKHQpO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBjaGFyYWN0ZXIiKTtsZXQgYT0wLHM9ci5pbmRleE9mKGUpO2Zvcig7cyE9PS0xOylhKysscz1yLmluZGV4T2YoZSxzK2UubGVuZ3RoKTtyZXR1cm4gYX12YXIgV1RlPXUoKCk9PntpKFp2LCJjY291bnQiKX0pO2Z1bmN0aW9uICQ2KHQpe3JldHVybiB0IT09bnVsbCYmKHQ8MzJ8fHQ9PT0xMjcpfWZ1bmN0aW9uIHV0KHQpe3JldHVybiB0IT09bnVsbCYmdDwtMn1mdW5jdGlvbiBCcih0KXtyZXR1cm4gdCE9PW51bGwmJih0PDB8fHQ9PT0zMil9ZnVuY3Rpb24gUnQodCl7cmV0dXJuIHQ9PT0tMnx8dD09PS0xfHx0PT09MzJ9ZnVuY3Rpb24gYnAodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyKXtyZXR1cm4gciE9PW51bGwmJnI+LTEmJnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHIpKX19dmFyIEpzLEJpLFNlcixFeixNZXIsQ2VyLEE2LFcwLFlyPXUoKCk9PntKcz1icCgvW0EtWmEtel0vKSxCaT1icCgvW1xkQS1aYS16XS8pLFNlcj1icCgvWyMtJyorXC0tOT0/QS1aXi1+XS8pO2koJDYsImFzY2lpQ29udHJvbCIpO0V6PWJwKC9cZC8pLE1lcj1icCgvW1xkQS1GYS1mXS8pLENlcj1icCgvWyEtLzotQFstYHstfl0vKTtpKHV0LCJtYXJrZG93bkxpbmVFbmRpbmciKTtpKEJyLCJtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIik7aShSdCwibWFya2Rvd25TcGFjZSIpO0E2PWJwKC9ccHtQfXxccHtTfS91KSxXMD1icCgvXHMvKTtpKGJwLCJyZWdleENoZWNrIil9KTtmdW5jdGlvbiB6U2EodCl7bGV0IGU9W10scj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspZVtyXT1MNCh0W3JdKTtyZXR1cm4gSGRlKGEpO2Z1bmN0aW9uIGEoLi4ucyl7bGV0IG49LTE7Zm9yKDsrK248ZS5sZW5ndGg7KWlmKGVbbl0uYXBwbHkodGhpcyxzKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gX1NhKHQpe2xldCBlPXQ7cmV0dXJuIEhkZShyKTtmdW5jdGlvbiByKGEpe2xldCBzPWEsbjtmb3IobiBpbiB0KWlmKHNbbl0hPT1lW25dKXJldHVybiExO3JldHVybiEwfX1mdW5jdGlvbiBUU2EodCl7cmV0dXJuIEhkZShlKTtmdW5jdGlvbiBlKHIpe3JldHVybiByJiZyLnR5cGU9PT10fX1mdW5jdGlvbiBIZGUodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyLGEscyl7cmV0dXJuISEoemVyKHIpJiZ0LmNhbGwodGhpcyxyLHR5cGVvZiBhPT0ibnVtYmVyIj9hOnZvaWQgMCxzfHx2b2lkIDApKX19ZnVuY3Rpb24gTFNhKCl7cmV0dXJuITB9ZnVuY3Rpb24gemVyKHQpe3JldHVybiB0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYidHlwZSJpbiB0fXZhciBfZXIsTDQsVGVyPXUoKCk9PntfZXI9aSgoZnVuY3Rpb24odCxlLHIsYSxzKXtsZXQgbj1MNChlKTtpZihyIT1udWxsJiYodHlwZW9mIHIhPSJudW1iZXIifHxyPDB8fHI9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4Iik7aWYoYSE9bnVsbCYmKCFfZXIoYSl8fCFhLmNoaWxkcmVuKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBhcmVudCBub2RlIik7aWYoYT09bnVsbCE9KHI9PW51bGwpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4Iik7cmV0dXJuIHplcih0KT9uLmNhbGwocyx0LHIsYSk6ITF9KSwiaXMiKSxMND1pKChmdW5jdGlvbih0KXtpZih0PT1udWxsKXJldHVybiBMU2E7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIEhkZSh0KTtpZih0eXBlb2YgdD09Im9iamVjdCIpcmV0dXJuIEFycmF5LmlzQXJyYXkodCk/elNhKHQpOl9TYSh0KTtpZih0eXBlb2YgdD09InN0cmluZyIpcmV0dXJuIFRTYSh0KTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0Iil9KSwiY29udmVydCIpO2koelNhLCJhbnlGYWN0b3J5Iik7aShfU2EsInByb3BlcnRpZXNGYWN0b3J5Iik7aShUU2EsInR5cGVGYWN0b3J5Iik7aShIZGUsImNhc3RGYWN0b3J5Iik7aShMU2EsIm9rIik7aSh6ZXIsImxvb2tzTGlrZUFOb2RlIil9KTt2YXIgcWRlPXUoKCk9PntUZXIoKX0pO3ZhciBMZXI9dSgoKT0+e30pO2Z1bmN0aW9uIEl6KHQsZSxyLGEpe2xldCBzO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIj8oYT1yLHI9ZSk6cz1lO2xldCBuPUw0KHMpLG89YT8tMToxO2wodCx2b2lkIDAsW10pKCk7ZnVuY3Rpb24gbChjLGQsZil7bGV0IHA9YyYmdHlwZW9mIGM9PSJvYmplY3QiP2M6e307aWYodHlwZW9mIHAudHlwZT09InN0cmluZyIpe2xldCBtPXR5cGVvZiBwLnRhZ05hbWU9PSJzdHJpbmciP3AudGFnTmFtZTp0eXBlb2YgcC5uYW1lPT0ic3RyaW5nIj9wLm5hbWU6dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoLCJuYW1lIix7dmFsdWU6Im5vZGUgKCIrKGMudHlwZSsobT8iPCIrbSsiPiI6IiIpKSsiKSJ9KX1yZXR1cm4gaDtmdW5jdGlvbiBoKCl7bGV0IG09RGVyLHYsYixnO2lmKCghZXx8bihjLGQsZltmLmxlbmd0aC0xXXx8dm9pZCAwKSkmJihtPURTYShyKGMsZikpLG1bMF09PT1FNikpcmV0dXJuIG07aWYoImNoaWxkcmVuImluIGMmJmMuY2hpbGRyZW4pe2xldCB5PWM7aWYoeS5jaGlsZHJlbiYmbVswXSE9PWpkZSlmb3IoYj0oYT95LmNoaWxkcmVuLmxlbmd0aDotMSkrbyxnPWYuY29uY2F0KHkpO2I+LTEmJmI8eS5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgaz15LmNoaWxkcmVuW2JdO2lmKHY9bChrLGIsZykoKSx2WzBdPT09RTYpcmV0dXJuIHY7Yj10eXBlb2YgdlsxXT09Im51bWJlciI/dlsxXTpiK299fXJldHVybiBtfX1pKGwsImZhY3RvcnkiKX1mdW5jdGlvbiBEU2EodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDp0eXBlb2YgdD09Im51bWJlciI/W1ZkZSx0XTp0PT1udWxsP0RlcjpbdF19dmFyIERlcixWZGUsRTYsamRlLCRlcj11KCgpPT57cWRlKCk7TGVyKCk7RGVyPVtdLFZkZT0hMCxFNj0hMSxqZGU9InNraXAiO2koSXosInZpc2l0UGFyZW50cyIpO2koRFNhLCJ0b1Jlc3VsdCIpfSk7dmFyIFVkZT11KCgpPT57JGVyKCl9KTtmdW5jdGlvbiBHVGUodCxlLHIpe2xldCBzPUw0KChyfHx7fSkuaWdub3JlfHxbXSksbj0kU2EoZSksbz0tMTtmb3IoOysrbzxuLmxlbmd0aDspSXoodCwidGV4dCIsbCk7ZnVuY3Rpb24gbChkLGYpe2xldCBwPS0xLGg7Zm9yKDsrK3A8Zi5sZW5ndGg7KXtsZXQgbT1mW3BdLHY9aD9oLmNoaWxkcmVuOnZvaWQgMDtpZihzKG0sdj92LmluZGV4T2YobSk6dm9pZCAwLGgpKXJldHVybjtoPW19aWYoaClyZXR1cm4gYyhkLGYpfWkobCwidmlzaXRvciIpO2Z1bmN0aW9uIGMoZCxmKXtsZXQgcD1mW2YubGVuZ3RoLTFdLGg9bltvXVswXSxtPW5bb11bMV0sdj0wLGc9cC5jaGlsZHJlbi5pbmRleE9mKGQpLHk9ITEsaz1bXTtoLmxhc3RJbmRleD0wO2xldCBNPWguZXhlYyhkLnZhbHVlKTtmb3IoO007KXtsZXQgTj1NLmluZGV4LF89e2luZGV4Ok0uaW5kZXgsaW5wdXQ6TS5pbnB1dCxzdGFjazpbLi4uZixkXX0sUz1tKC4uLk0sXyk7aWYodHlwZW9mIFM9PSJzdHJpbmciJiYoUz1TLmxlbmd0aD4wP3t0eXBlOiJ0ZXh0Iix2YWx1ZTpTfTp2b2lkIDApLFM9PT0hMT9oLmxhc3RJbmRleD1OKzE6KHYhPT1OJiZrLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmQudmFsdWUuc2xpY2UodixOKX0pLEFycmF5LmlzQXJyYXkoUyk/ay5wdXNoKC4uLlMpOlMmJmsucHVzaChTKSx2PU4rTVswXS5sZW5ndGgseT0hMCksIWguZ2xvYmFsKWJyZWFrO009aC5leGVjKGQudmFsdWUpfXJldHVybiB5Pyh2PGQudmFsdWUubGVuZ3RoJiZrLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmQudmFsdWUuc2xpY2Uodil9KSxwLmNoaWxkcmVuLnNwbGljZShnLDEsLi4uaykpOms9W2RdLGcray5sZW5ndGh9aShjLCJoYW5kbGVyIil9ZnVuY3Rpb24gJFNhKHQpe2xldCBlPVtdO2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZpbmQgYW5kIHJlcGxhY2UgdHVwbGUgb3IgbGlzdCBvZiB0dXBsZXMiKTtsZXQgcj0hdFswXXx8QXJyYXkuaXNBcnJheSh0WzBdKT90Olt0XSxhPS0xO2Zvcig7KythPHIubGVuZ3RoOyl7bGV0IHM9clthXTtlLnB1c2goW0FTYShzWzBdKSxFU2Eoc1sxXSldKX1yZXR1cm4gZX1mdW5jdGlvbiBBU2EodCl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj9uZXcgUmVnRXhwKHI2KHQpLCJnIik6dH1mdW5jdGlvbiBFU2EodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIEFlcj11KCgpPT57RzJlKCk7VWRlKCk7cWRlKCk7aShHVGUsImZpbmRBbmRSZXBsYWNlIik7aSgkU2EsInRvUGFpcnMiKTtpKEFTYSwidG9FeHByZXNzaW9uIik7aShFU2EsInRvRnVuY3Rpb24iKX0pO3ZhciBFZXI9dSgoKT0+e0FlcigpfSk7ZnVuY3Rpb24gUVRlKCl7cmV0dXJue3RyYW5zZm9ybXM6W0ZTYV0sZW50ZXI6e2xpdGVyYWxBdXRvbGluazpJU2EsbGl0ZXJhbEF1dG9saW5rRW1haWw6WlRlLGxpdGVyYWxBdXRvbGlua0h0dHA6WlRlLGxpdGVyYWxBdXRvbGlua1d3dzpaVGV9LGV4aXQ6e2xpdGVyYWxBdXRvbGluazpSU2EsbGl0ZXJhbEF1dG9saW5rRW1haWw6T1NhLGxpdGVyYWxBdXRvbGlua0h0dHA6UFNhLGxpdGVyYWxBdXRvbGlua1d3dzpOU2F9fX1mdW5jdGlvbiBYVGUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJAIixiZWZvcmU6IlsrXFwtLlxcd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OllUZSxub3RJbkNvbnN0cnVjdDpLVGV9LHtjaGFyYWN0ZXI6Ii4iLGJlZm9yZToiW1d3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6WVRlLG5vdEluQ29uc3RydWN0OktUZX0se2NoYXJhY3RlcjoiOiIsYmVmb3JlOiJbcHNdIixhZnRlcjoiXFwvIixpbkNvbnN0cnVjdDpZVGUsbm90SW5Db25zdHJ1Y3Q6S1RlfV19fWZ1bmN0aW9uIElTYSh0KXt0aGlzLmVudGVyKHt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gWlRlKHQpe3RoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIFBTYSh0KXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIE5TYSh0KXt0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLHQpO2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZS50eXBlLGUudXJsPSJodHRwOi8vIit0aGlzLnNsaWNlU2VyaWFsaXplKHQpfWZ1bmN0aW9uIE9TYSh0KXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIFJTYSh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gRlNhKHQpe0dUZSh0LFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSxCU2FdLFsvKD88PV58XHN8XHB7UH18XHB7U30pKFstLlx3K10rKUAoWy1cd10rKD86XC5bLVx3XSspKykvZ3UsSFNhXV0se2lnbm9yZTpbImxpbmsiLCJsaW5rUmVmZXJlbmNlIl19KX1mdW5jdGlvbiBCU2EodCxlLHIsYSxzKXtsZXQgbj0iIjtpZighSWVyKHMpfHwoL153L2kudGVzdChlKSYmKHI9ZStyLGU9IiIsbj0iaHR0cDovLyIpLCFxU2EocikpKXJldHVybiExO2xldCBvPVZTYShyK2EpO2lmKCFvWzBdKXJldHVybiExO2xldCBsPXt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDpuK2Urb1swXSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrb1swXX1dfTtyZXR1cm4gb1sxXT9bbCx7dHlwZToidGV4dCIsdmFsdWU6b1sxXX1dOmx9ZnVuY3Rpb24gSFNhKHQsZSxyLGEpe3JldHVybiFJZXIoYSwhMCl8fC9bLVxkX10kLy50ZXN0KHIpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrZSsiQCIrcixjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrIkAiK3J9XX19ZnVuY3Rpb24gcVNhKHQpe2xldCBlPXQuc3BsaXQoIi4iKTtyZXR1cm4hKGUubGVuZ3RoPDJ8fGVbZS5sZW5ndGgtMV0mJigvXy8udGVzdChlW2UubGVuZ3RoLTFdKXx8IS9bYS16QS1aXGRdLy50ZXN0KGVbZS5sZW5ndGgtMV0pKXx8ZVtlLmxlbmd0aC0yXSYmKC9fLy50ZXN0KGVbZS5sZW5ndGgtMl0pfHwhL1thLXpBLVpcZF0vLnRlc3QoZVtlLmxlbmd0aC0yXSkpKX1mdW5jdGlvbiBWU2EodCl7bGV0IGU9L1shIiYnKSwuOjs8Pj9cXX1dKyQvLmV4ZWModCk7aWYoIWUpcmV0dXJuW3Qsdm9pZCAwXTt0PXQuc2xpY2UoMCxlLmluZGV4KTtsZXQgcj1lWzBdLGE9ci5pbmRleE9mKCIpIikscz1adih0LCIoIiksbj1adih0LCIpIik7Zm9yKDthIT09LTEmJnM+bjspdCs9ci5zbGljZSgwLGErMSkscj1yLnNsaWNlKGErMSksYT1yLmluZGV4T2YoIikiKSxuKys7cmV0dXJuW3Qscl19ZnVuY3Rpb24gSWVyKHQsZSl7bGV0IHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQuaW5kZXgtMSk7cmV0dXJuKHQuaW5kZXg9PT0wfHxXMChyKXx8QTYocikpJiYoIWV8fHIhPT00Nyl9dmFyIFlUZSxLVGUsUGVyPXUoKCk9PntXVGUoKTttcCgpO1lyKCk7RWVyKCk7WVRlPSJwaHJhc2luZyIsS1RlPVsiYXV0b2xpbmsiLCJsaW5rIiwiaW1hZ2UiLCJsYWJlbCJdO2koUVRlLCJnZm1BdXRvbGlua0xpdGVyYWxGcm9tTWFya2Rvd24iKTtpKFhUZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsVG9NYXJrZG93biIpO2koSVNhLCJlbnRlckxpdGVyYWxBdXRvbGluayIpO2koWlRlLCJlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlIik7aShQU2EsImV4aXRMaXRlcmFsQXV0b2xpbmtIdHRwIik7aShOU2EsImV4aXRMaXRlcmFsQXV0b2xpbmtXd3ciKTtpKE9TYSwiZXhpdExpdGVyYWxBdXRvbGlua0VtYWlsIik7aShSU2EsImV4aXRMaXRlcmFsQXV0b2xpbmsiKTtpKEZTYSwidHJhbnNmb3JtR2ZtQXV0b2xpbmtMaXRlcmFscyIpO2koQlNhLCJmaW5kVXJsIik7aShIU2EsImZpbmRFbWFpbCIpO2kocVNhLCJpc0NvcnJlY3REb21haW4iKTtpKFZTYSwic3BsaXRVcmwiKTtpKEllciwicHJldmlvdXMiKX0pO3ZhciBOZXI9dSgoKT0+e1BlcigpfSk7ZnVuY3Rpb24gSGkodCl7cmV0dXJuIHQucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvXiB8ICQvZywiIikudG9Mb3dlckNhc2UoKS50b1VwcGVyQ2FzZSgpfXZhciB4cD11KCgpPT57aShIaSwibm9ybWFsaXplSWRlbnRpZmllciIpfSk7ZnVuY3Rpb24galNhKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBVU2EodCl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVSZWZlcmVuY2UiLGlkZW50aWZpZXI6IiIsbGFiZWw6IiJ9LHQpfWZ1bmN0aW9uIFdTYSgpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gR1NhKHQpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlRGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDoiIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gWVNhKHQpe2xldCBlPXRoaXMucmVzdW1lKCkscj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3IudHlwZSxyLmlkZW50aWZpZXI9SGkodGhpcy5zbGljZVNlcmlhbGl6ZSh0KSkudG9Mb3dlckNhc2UoKSxyLmxhYmVsPWV9ZnVuY3Rpb24gS1NhKHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBaU2EodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIuaWRlbnRpZmllcj1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKHQpKS50b0xvd2VyQ2FzZSgpLHIubGFiZWw9ZX1mdW5jdGlvbiBRU2EodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIFhTYSgpe3JldHVybiJbIn1mdW5jdGlvbiBPZXIodCxlLHIsYSl7bGV0IHM9ci5jcmVhdGVUcmFja2VyKGEpLG49cy5tb3ZlKCJbXiIpLG89ci5lbnRlcigiZm9vdG5vdGVSZWZlcmVuY2UiKSxsPXIuZW50ZXIoInJlZmVyZW5jZSIpO3JldHVybiBuKz1zLm1vdmUoci5zYWZlKHIuYXNzb2NpYXRpb25JZCh0KSx7YWZ0ZXI6Il0iLGJlZm9yZTpufSkpLGwoKSxvKCksbis9cy5tb3ZlKCJdIiksbn1mdW5jdGlvbiBKVGUoKXtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzpqU2EsZ2ZtRm9vdG5vdGVDYWxsOlVTYSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzpXU2EsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOkdTYX0sZXhpdDp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOllTYSxnZm1Gb290bm90ZUNhbGw6S1NhLGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOlpTYSxnZm1Gb290bm90ZURlZmluaXRpb246UVNhfX19ZnVuY3Rpb24gZUxlKHQpe2xldCBlPSExO3JldHVybiB0JiZ0LmZpcnN0TGluZUJsYW5rJiYoZT0hMCkse2hhbmRsZXJzOntmb290bm90ZURlZmluaXRpb246cixmb290bm90ZVJlZmVyZW5jZTpPZXJ9LHVuc2FmZTpbe2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInBocmFzaW5nIiwicmVmZXJlbmNlIl19XX07ZnVuY3Rpb24gcihhLHMsbixvKXtsZXQgbD1uLmNyZWF0ZVRyYWNrZXIobyksYz1sLm1vdmUoIlteIiksZD1uLmVudGVyKCJmb290bm90ZURlZmluaXRpb24iKSxmPW4uZW50ZXIoImxhYmVsIik7cmV0dXJuIGMrPWwubW92ZShuLnNhZmUobi5hc3NvY2lhdGlvbklkKGEpLHtiZWZvcmU6YyxhZnRlcjoiXSJ9KSksZigpLGMrPWwubW92ZSgiXToiKSxhLmNoaWxkcmVuJiZhLmNoaWxkcmVuLmxlbmd0aD4wJiYobC5zaGlmdCg0KSxjKz1sLm1vdmUoKGU/YApgOiIgIikrbi5pbmRlbnRMaW5lcyhuLmNvbnRhaW5lckZsb3coYSxsLmN1cnJlbnQoKSksZT9SZXI6SlNhKSkpLGQoKSxjfWkociwiZm9vdG5vdGVEZWZpbml0aW9uIil9ZnVuY3Rpb24gSlNhKHQsZSxyKXtyZXR1cm4gZT09PTA/dDpSZXIodCxlLHIpfWZ1bmN0aW9uIFJlcih0LGUscil7cmV0dXJuKHI/IiI6IiAgICAiKSt0fXZhciBGZXI9dSgoKT0+e21wKCk7eHAoKTtPZXIucGVlaz1YU2E7aShqU2EsImVudGVyRm9vdG5vdGVDYWxsU3RyaW5nIik7aShVU2EsImVudGVyRm9vdG5vdGVDYWxsIik7aShXU2EsImVudGVyRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtpKEdTYSwiZW50ZXJGb290bm90ZURlZmluaXRpb24iKTtpKFlTYSwiZXhpdEZvb3Rub3RlQ2FsbFN0cmluZyIpO2koS1NhLCJleGl0Rm9vdG5vdGVDYWxsIik7aShaU2EsImV4aXRGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpO2koUVNhLCJleGl0Rm9vdG5vdGVEZWZpbml0aW9uIik7aShYU2EsImZvb3Rub3RlUmVmZXJlbmNlUGVlayIpO2koT2VyLCJmb290bm90ZVJlZmVyZW5jZSIpO2koSlRlLCJnZm1Gb290bm90ZUZyb21NYXJrZG93biIpO2koZUxlLCJnZm1Gb290bm90ZVRvTWFya2Rvd24iKTtpKEpTYSwibWFwRXhjZXB0Rmlyc3QiKTtpKFJlciwibWFwQWxsIil9KTt2YXIgQmVyPXUoKCk9PntGZXIoKX0pO2Z1bmN0aW9uIHRMZSgpe3JldHVybntjYW5Db250YWluRW9sczpbImRlbGV0ZSJdLGVudGVyOntzdHJpa2V0aHJvdWdoOnRNYX0sZXhpdDp7c3RyaWtldGhyb3VnaDpyTWF9fX1mdW5jdGlvbiByTGUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJ+IixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmVNYX1dLGhhbmRsZXJzOntkZWxldGU6SGVyfX19ZnVuY3Rpb24gdE1hKHQpe3RoaXMuZW50ZXIoe3R5cGU6ImRlbGV0ZSIsY2hpbGRyZW46W119LHQpfWZ1bmN0aW9uIHJNYSh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gSGVyKHQsZSxyLGEpe2xldCBzPXIuY3JlYXRlVHJhY2tlcihhKSxuPXIuZW50ZXIoInN0cmlrZXRocm91Z2giKSxvPXMubW92ZSgifn4iKTtyZXR1cm4gbys9ci5jb250YWluZXJQaHJhc2luZyh0LHsuLi5zLmN1cnJlbnQoKSxiZWZvcmU6byxhZnRlcjoifiJ9KSxvKz1zLm1vdmUoIn5+IiksbigpLG99ZnVuY3Rpb24gYU1hKCl7cmV0dXJuIn4ifXZhciBlTWEscWVyPXUoKCk9PntlTWE9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdO0hlci5wZWVrPWFNYTtpKHRMZSwiZ2ZtU3RyaWtldGhyb3VnaEZyb21NYXJrZG93biIpO2kockxlLCJnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93biIpO2kodE1hLCJlbnRlclN0cmlrZXRocm91Z2giKTtpKHJNYSwiZXhpdFN0cmlrZXRocm91Z2giKTtpKEhlciwiaGFuZGxlRGVsZXRlIik7aShhTWEsInBlZWtEZWxldGUiKX0pO3ZhciBWZXI9dSgoKT0+e3FlcigpfSk7ZnVuY3Rpb24gaU1hKHQpe3JldHVybiB0Lmxlbmd0aH1mdW5jdGlvbiBVZXIodCxlKXtsZXQgcj1lfHx7fSxhPShyLmFsaWdufHxbXSkuY29uY2F0KCkscz1yLnN0cmluZ0xlbmd0aHx8aU1hLG49W10sbz1bXSxsPVtdLGM9W10sZD0wLGY9LTE7Zm9yKDsrK2Y8dC5sZW5ndGg7KXtsZXQgYj1bXSxnPVtdLHk9LTE7Zm9yKHRbZl0ubGVuZ3RoPmQmJihkPXRbZl0ubGVuZ3RoKTsrK3k8dFtmXS5sZW5ndGg7KXtsZXQgaz1zTWEodFtmXVt5XSk7aWYoci5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IE09cyhrKTtnW3ldPU0sKGNbeV09PT12b2lkIDB8fE0+Y1t5XSkmJihjW3ldPU0pfWIucHVzaChrKX1vW2ZdPWIsbFtmXT1nfWxldCBwPS0xO2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmImxlbmd0aCJpbiBhKWZvcig7KytwPGQ7KW5bcF09amVyKGFbcF0pO2Vsc2V7bGV0IGI9amVyKGEpO2Zvcig7KytwPGQ7KW5bcF09Yn1wPS0xO2xldCBoPVtdLG09W107Zm9yKDsrK3A8ZDspe2xldCBiPW5bcF0sZz0iIix5PSIiO2I9PT05OT8oZz0iOiIseT0iOiIpOmI9PT0xMDg/Zz0iOiI6Yj09PTExNCYmKHk9IjoiKTtsZXQgaz1yLmFsaWduRGVsaW1pdGVycz09PSExPzE6TWF0aC5tYXgoMSxjW3BdLWcubGVuZ3RoLXkubGVuZ3RoKSxNPWcrIi0iLnJlcGVhdChrKSt5O3IuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJihrPWcubGVuZ3RoK2sreS5sZW5ndGgsaz5jW3BdJiYoY1twXT1rKSxtW3BdPWspLGhbcF09TX1vLnNwbGljZSgxLDAsaCksbC5zcGxpY2UoMSwwLG0pLGY9LTE7bGV0IHY9W107Zm9yKDsrK2Y8by5sZW5ndGg7KXtsZXQgYj1vW2ZdLGc9bFtmXTtwPS0xO2xldCB5PVtdO2Zvcig7KytwPGQ7KXtsZXQgaz1iW3BdfHwiIixNPSIiLE49IiI7aWYoci5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IF89Y1twXS0oZ1twXXx8MCksUz1uW3BdO1M9PT0xMTQ/TT0iICIucmVwZWF0KF8pOlM9PT05OT9fJTI/KE09IiAiLnJlcGVhdChfLzIrLjUpLE49IiAiLnJlcGVhdChfLzItLjUpKTooTT0iICIucmVwZWF0KF8vMiksTj1NKTpOPSIgIi5yZXBlYXQoXyl9ci5kZWxpbWl0ZXJTdGFydCE9PSExJiYhcCYmeS5wdXNoKCJ8Iiksci5wYWRkaW5nIT09ITEmJiEoci5hbGlnbkRlbGltaXRlcnM9PT0hMSYmaz09PSIiKSYmKHIuZGVsaW1pdGVyU3RhcnQhPT0hMXx8cCkmJnkucHVzaCgiICIpLHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaChNKSx5LnB1c2goayksci5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeS5wdXNoKE4pLHIucGFkZGluZyE9PSExJiZ5LnB1c2goIiAiKSwoci5kZWxpbWl0ZXJFbmQhPT0hMXx8cCE9PWQtMSkmJnkucHVzaCgifCIpfXYucHVzaChyLmRlbGltaXRlckVuZD09PSExP3kuam9pbigiIikucmVwbGFjZSgvICskLywiIik6eS5qb2luKCIiKSl9cmV0dXJuIHYuam9pbihgCmApfWZ1bmN0aW9uIHNNYSh0KXtyZXR1cm4gdD09bnVsbD8iIjpTdHJpbmcodCl9ZnVuY3Rpb24gamVyKHQpe2xldCBlPXR5cGVvZiB0PT0ic3RyaW5nIj90LmNvZGVQb2ludEF0KDApOjA7cmV0dXJuIGU9PT02N3x8ZT09PTk5Pzk5OmU9PT03Nnx8ZT09PTEwOD8xMDg6ZT09PTgyfHxlPT09MTE0PzExNDowfXZhciBXZXI9dSgoKT0+e2koaU1hLCJkZWZhdWx0U3RyaW5nTGVuZ3RoIik7aShVZXIsIm1hcmtkb3duVGFibGUiKTtpKHNNYSwic2VyaWFsaXplIik7aShqZXIsInRvQWxpZ25tZW50Iil9KTtmdW5jdGlvbiBXZGUodCxlKXtsZXQgcj1lfHx7fTtmdW5jdGlvbiBhKHMsLi4ubil7bGV0IG89YS5pbnZhbGlkLGw9YS5oYW5kbGVycztpZihzJiZHZXIuY2FsbChzLHQpKXtsZXQgYz1TdHJpbmcoc1t0XSk7bz1HZXIuY2FsbChsLGMpP2xbY106YS51bmtub3dufWlmKG8pcmV0dXJuIG8uY2FsbCh0aGlzLHMsLi4ubil9cmV0dXJuIGkoYSwib25lIiksYS5oYW5kbGVycz1yLmhhbmRsZXJzfHx7fSxhLmludmFsaWQ9ci5pbnZhbGlkLGEudW5rbm93bj1yLnVua25vd24sYX12YXIgR2VyLGFMZT11KCgpPT57R2VyPXt9Lmhhc093blByb3BlcnR5O2koV2RlLCJ6d2l0Y2giKX0pO2Z1bmN0aW9uIGlMZSh0LGUpe2xldCByPS0xLGE7aWYoZS5leHRlbnNpb25zKWZvcig7KytyPGUuZXh0ZW5zaW9ucy5sZW5ndGg7KWlMZSh0LGUuZXh0ZW5zaW9uc1tyXSk7Zm9yKGEgaW4gZSlpZihuTWEuY2FsbChlLGEpKXN3aXRjaChhKXtjYXNlImV4dGVuc2lvbnMiOmJyZWFrO2Nhc2UidW5zYWZlIjp7WWVyKHRbYV0sZVthXSk7YnJlYWt9Y2FzZSJqb2luIjp7WWVyKHRbYV0sZVthXSk7YnJlYWt9Y2FzZSJoYW5kbGVycyI6e29NYSh0W2FdLGVbYV0pO2JyZWFrfWRlZmF1bHQ6dC5vcHRpb25zW2FdPWVbYV19cmV0dXJuIHR9ZnVuY3Rpb24gWWVyKHQsZSl7ZSYmdC5wdXNoKC4uLmUpfWZ1bmN0aW9uIG9NYSh0LGUpe2UmJk9iamVjdC5hc3NpZ24odCxlKX12YXIgbk1hLEtlcj11KCgpPT57bk1hPXt9Lmhhc093blByb3BlcnR5O2koaUxlLCJjb25maWd1cmUiKTtpKFllciwibGlzdCIpO2kob01hLCJtYXAiKX0pO2Z1bmN0aW9uIFplcih0LGUscixhKXtsZXQgcz1yLmVudGVyKCJibG9ja3F1b3RlIiksbj1yLmNyZWF0ZVRyYWNrZXIoYSk7bi5tb3ZlKCI+ICIpLG4uc2hpZnQoMik7bGV0IG89ci5pbmRlbnRMaW5lcyhyLmNvbnRhaW5lckZsb3codCxuLmN1cnJlbnQoKSksbE1hKTtyZXR1cm4gcygpLG99ZnVuY3Rpb24gbE1hKHQsZSxyKXtyZXR1cm4iPiIrKHI/IiI6IiAiKSt0fXZhciBRZXI9dSgoKT0+e2koWmVyLCJibG9ja3F1b3RlIik7aShsTWEsIm1hcCIpfSk7ZnVuY3Rpb24gR2RlKHQsZSl7cmV0dXJuIFhlcih0LGUuaW5Db25zdHJ1Y3QsITApJiYhWGVyKHQsZS5ub3RJbkNvbnN0cnVjdCwhMSl9ZnVuY3Rpb24gWGVyKHQsZSxyKXtpZih0eXBlb2YgZT09InN0cmluZyImJihlPVtlXSksIWV8fGUubGVuZ3RoPT09MClyZXR1cm4gcjtsZXQgYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspaWYodC5pbmNsdWRlcyhlW2FdKSlyZXR1cm4hMDtyZXR1cm4hMX12YXIgc0xlPXUoKCk9PntpKEdkZSwicGF0dGVybkluU2NvcGUiKTtpKFhlciwibGlzdEluU2NvcGUiKX0pO2Z1bmN0aW9uIG5MZSh0LGUscixhKXtsZXQgcz0tMTtmb3IoOysrczxyLnVuc2FmZS5sZW5ndGg7KWlmKHIudW5zYWZlW3NdLmNoYXJhY3Rlcj09PWAKYCYmR2RlKHIuc3RhY2ssci51bnNhZmVbc10pKXJldHVybi9bIFx0XS8udGVzdChhLmJlZm9yZSk/IiI6IiAiO3JldHVybmBcXApgfXZhciBKZXI9dSgoKT0+e3NMZSgpO2kobkxlLCJoYXJkQnJlYWsiKX0pO2Z1bmN0aW9uIGV0cih0LGUpe2xldCByPVN0cmluZyh0KSxhPXIuaW5kZXhPZihlKSxzPWEsbj0wLG89MDtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgc3Vic3RyaW5nIik7Zm9yKDthIT09LTE7KWE9PT1zPysrbj5vJiYobz1uKTpuPTEscz1hK2UubGVuZ3RoLGE9ci5pbmRleE9mKGUscyk7cmV0dXJuIG99dmFyIHR0cj11KCgpPT57aShldHIsImxvbmdlc3RTdHJlYWsiKX0pO2Z1bmN0aW9uIFB6KHQsZSl7cmV0dXJuISEoZS5vcHRpb25zLmZlbmNlcz09PSExJiZ0LnZhbHVlJiYhdC5sYW5nJiYvW14gXHJcbl0vLnRlc3QodC52YWx1ZSkmJiEvXltcdCBdKig/OltcclxuXXwkKXwoPzpefFtcclxuXSlbXHQgXSokLy50ZXN0KHQudmFsdWUpKX12YXIgb0xlPXUoKCk9PntpKFB6LCJmb3JtYXRDb2RlQXNJbmRlbnRlZCIpfSk7ZnVuY3Rpb24gcnRyKHQpe2xldCBlPXQub3B0aW9ucy5mZW5jZXx8ImAiO2lmKGUhPT0iYCImJmUhPT0ifiIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gIik7cmV0dXJuIGV9dmFyIGF0cj11KCgpPT57aShydHIsImNoZWNrRmVuY2UiKX0pO2Z1bmN0aW9uIGl0cih0LGUscixhKXtsZXQgcz1ydHIociksbj10LnZhbHVlfHwiIixvPXM9PT0iYCI/IkdyYXZlQWNjZW50IjoiVGlsZGUiO2lmKFB6KHQscikpe2xldCBwPXIuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGg9ci5pbmRlbnRMaW5lcyhuLGNNYSk7cmV0dXJuIHAoKSxofWxldCBsPXIuY3JlYXRlVHJhY2tlcihhKSxjPXMucmVwZWF0KE1hdGgubWF4KGV0cihuLHMpKzEsMykpLGQ9ci5lbnRlcigiY29kZUZlbmNlZCIpLGY9bC5tb3ZlKGMpO2lmKHQubGFuZyl7bGV0IHA9ci5lbnRlcihgY29kZUZlbmNlZExhbmcke299YCk7Zis9bC5tb3ZlKHIuc2FmZSh0Lmxhbmcse2JlZm9yZTpmLGFmdGVyOiIgIixlbmNvZGU6WyJgIl0sLi4ubC5jdXJyZW50KCl9KSkscCgpfWlmKHQubGFuZyYmdC5tZXRhKXtsZXQgcD1yLmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7b31gKTtmKz1sLm1vdmUoIiAiKSxmKz1sLm1vdmUoci5zYWZlKHQubWV0YSx7YmVmb3JlOmYsYWZ0ZXI6YApgLGVuY29kZTpbImAiXSwuLi5sLmN1cnJlbnQoKX0pKSxwKCl9cmV0dXJuIGYrPWwubW92ZShgCmApLG4mJihmKz1sLm1vdmUobitgCmApKSxmKz1sLm1vdmUoYyksZCgpLGZ9ZnVuY3Rpb24gY01hKHQsZSxyKXtyZXR1cm4ocj8iIjoiICAgICIpK3R9dmFyIHN0cj11KCgpPT57dHRyKCk7b0xlKCk7YXRyKCk7aShpdHIsImNvZGUiKTtpKGNNYSwibWFwIil9KTtmdW5jdGlvbiBRdih0KXtsZXQgZT10Lm9wdGlvbnMucXVvdGV8fCciJztpZihlIT09JyInJiZlIT09IiciKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYCdgIik7cmV0dXJuIGV9dmFyIFlkZT11KCgpPT57aShRdiwiY2hlY2tRdW90ZSIpfSk7ZnVuY3Rpb24gbnRyKHQsZSxyLGEpe2xldCBzPVF2KHIpLG49cz09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuZW50ZXIoImRlZmluaXRpb24iKSxsPXIuZW50ZXIoImxhYmVsIiksYz1yLmNyZWF0ZVRyYWNrZXIoYSksZD1jLm1vdmUoIlsiKTtyZXR1cm4gZCs9Yy5tb3ZlKHIuc2FmZShyLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUoIl06ICIpLGwoKSwhdC51cmx8fC9bXDAtIFx1MDA3Rl0vLnRlc3QodC51cmwpPyhsPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPWMubW92ZSgiPCIpLGQrPWMubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUoIj4iKSk6KGw9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1jLm1vdmUoci5zYWZlKHQudXJsLHtiZWZvcmU6ZCxhZnRlcjp0LnRpdGxlPyIgIjpgCmAsLi4uYy5jdXJyZW50KCl9KSkpLGwoKSx0LnRpdGxlJiYobD1yLmVudGVyKGB0aXRsZSR7bn1gKSxkKz1jLm1vdmUoIiAiK3MpLGQrPWMubW92ZShyLnNhZmUodC50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6cywuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUocyksbCgpKSxvKCksZH12YXIgb3RyPXUoKCk9PntZZGUoKTtpKG50ciwiZGVmaW5pdGlvbiIpfSk7ZnVuY3Rpb24gbHRyKHQpe2xldCBlPXQub3B0aW9ucy5lbXBoYXNpc3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGVtcGhhc2lzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuZW1waGFzaXNgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBjdHI9dSgoKT0+e2kobHRyLCJjaGVja0VtcGhhc2lzIil9KTtmdW5jdGlvbiBybCh0KXtyZXR1cm4iJiN4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgWHY9dSgoKT0+e2kocmwsImVuY29kZUNoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gRDQodCl7aWYodD09PW51bGx8fEJyKHQpfHxXMCh0KSlyZXR1cm4gMTtpZihBNih0KSlyZXR1cm4gMn12YXIgS2RlPXUoKCk9PntZcigpO2koRDQsImNsYXNzaWZ5Q2hhcmFjdGVyIil9KTtmdW5jdGlvbiBKdih0LGUscil7bGV0IGE9RDQodCkscz1ENChlKTtyZXR1cm4gYT09PXZvaWQgMD9zPT09dm9pZCAwP3I9PT0iXyI/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnM9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiEwfTphPT09MT9zPT09dm9pZCAwP3tpbnNpZGU6ITEsb3V0c2lkZTohMX06cz09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnM9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpzPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITF9OntpbnNpZGU6ITEsb3V0c2lkZTohMX19dmFyIGxMZT11KCgpPT57S2RlKCk7aShKdiwiZW5jb2RlSW5mbyIpfSk7ZnVuY3Rpb24gY0xlKHQsZSxyLGEpe2xldCBzPWx0cihyKSxuPXIuZW50ZXIoImVtcGhhc2lzIiksbz1yLmNyZWF0ZVRyYWNrZXIoYSksbD1vLm1vdmUocyksYz1vLm1vdmUoci5jb250YWluZXJQaHJhc2luZyh0LHthZnRlcjpzLGJlZm9yZTpsLC4uLm8uY3VycmVudCgpfSkpLGQ9Yy5jaGFyQ29kZUF0KDApLGY9SnYoYS5iZWZvcmUuY2hhckNvZGVBdChhLmJlZm9yZS5sZW5ndGgtMSksZCxzKTtmLmluc2lkZSYmKGM9cmwoZCkrYy5zbGljZSgxKSk7bGV0IHA9Yy5jaGFyQ29kZUF0KGMubGVuZ3RoLTEpLGg9SnYoYS5hZnRlci5jaGFyQ29kZUF0KDApLHAscyk7aC5pbnNpZGUmJihjPWMuc2xpY2UoMCwtMSkrcmwocCkpO2xldCBtPW8ubW92ZShzKTtyZXR1cm4gbigpLHIuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOmYub3V0c2lkZX0sbCtjK219ZnVuY3Rpb24gZE1hKHQsZSxyKXtyZXR1cm4gci5vcHRpb25zLmVtcGhhc2lzfHwiKiJ9dmFyIGR0cj11KCgpPT57Y3RyKCk7WHYoKTtsTGUoKTtjTGUucGVlaz1kTWE7aShjTGUsImVtcGhhc2lzIik7aShkTWEsImVtcGhhc2lzUGVlayIpfSk7ZnVuY3Rpb24gTnoodCxlLHIsYSl7bGV0IHMsbixvO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIj8obj12b2lkIDAsbz1lLHM9cik6KG49ZSxvPXIscz1hKSxJeih0LG4sbCxzKTtmdW5jdGlvbiBsKGMsZCl7bGV0IGY9ZFtkLmxlbmd0aC0xXSxwPWY/Zi5jaGlsZHJlbi5pbmRleE9mKGMpOnZvaWQgMDtyZXR1cm4gbyhjLHAsZil9aShsLCJvdmVybG9hZCIpfXZhciB1dHI9dSgoKT0+e1VkZSgpO1VkZSgpO2koTnosInZpc2l0Iil9KTt2YXIgZExlPXUoKCk9Pnt1dHIoKX0pO2Z1bmN0aW9uIEk2KHQsZSl7bGV0IHI9ZXx8dU1hLGE9dHlwZW9mIHIuaW5jbHVkZUltYWdlQWx0PT0iYm9vbGVhbiI/ci5pbmNsdWRlSW1hZ2VBbHQ6ITAscz10eXBlb2Ygci5pbmNsdWRlSHRtbD09ImJvb2xlYW4iP3IuaW5jbHVkZUh0bWw6ITA7cmV0dXJuIHB0cih0LGEscyl9ZnVuY3Rpb24gcHRyKHQsZSxyKXtpZihwTWEodCkpe2lmKCJ2YWx1ZSJpbiB0KXJldHVybiB0LnR5cGU9PT0iaHRtbCImJiFyPyIiOnQudmFsdWU7aWYoZSYmImFsdCJpbiB0JiZ0LmFsdClyZXR1cm4gdC5hbHQ7aWYoImNoaWxkcmVuImluIHQpcmV0dXJuIGZ0cih0LmNoaWxkcmVuLGUscil9cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/ZnRyKHQsZSxyKToiIn1mdW5jdGlvbiBmdHIodCxlLHIpe2xldCBhPVtdLHM9LTE7Zm9yKDsrK3M8dC5sZW5ndGg7KWFbc109cHRyKHRbc10sZSxyKTtyZXR1cm4gYS5qb2luKCIiKX1mdW5jdGlvbiBwTWEodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiKX12YXIgdU1hLGh0cj11KCgpPT57dU1hPXt9O2koSTYsInRvU3RyaW5nIik7aShwdHIsIm9uZSIpO2koZnRyLCJhbGwiKTtpKHBNYSwibm9kZSIpfSk7dmFyIFpkZT11KCgpPT57aHRyKCl9KTtmdW5jdGlvbiBRZGUodCxlKXtsZXQgcj0hMTtyZXR1cm4gTnoodCxmdW5jdGlvbihhKXtpZigidmFsdWUiaW4gYSYmL1xyP1xufFxyLy50ZXN0KGEudmFsdWUpfHxhLnR5cGU9PT0iYnJlYWsiKXJldHVybiByPSEwLEU2fSksISEoKCF0LmRlcHRofHx0LmRlcHRoPDMpJiZJNih0KSYmKGUub3B0aW9ucy5zZXRleHR8fHIpKX12YXIgdUxlPXUoKCk9PntkTGUoKTtaZGUoKTtpKFFkZSwiZm9ybWF0SGVhZGluZ0FzU2V0ZXh0Iil9KTtmdW5jdGlvbiBtdHIodCxlLHIsYSl7bGV0IHM9TWF0aC5tYXgoTWF0aC5taW4oNix0LmRlcHRofHwxKSwxKSxuPXIuY3JlYXRlVHJhY2tlcihhKTtpZihRZGUodCxyKSl7bGV0IGY9ci5lbnRlcigiaGVhZGluZ1NldGV4dCIpLHA9ci5lbnRlcigicGhyYXNpbmciKSxoPXIuY29udGFpbmVyUGhyYXNpbmcodCx7Li4ubi5jdXJyZW50KCksYmVmb3JlOmAKYCxhZnRlcjpgCmB9KTtyZXR1cm4gcCgpLGYoKSxoK2AKYCsocz09PTE/Ij0iOiItIikucmVwZWF0KGgubGVuZ3RoLShNYXRoLm1heChoLmxhc3RJbmRleE9mKCJcciIpLGgubGFzdEluZGV4T2YoYApgKSkrMSkpfWxldCBvPSIjIi5yZXBlYXQocyksbD1yLmVudGVyKCJoZWFkaW5nQXR4IiksYz1yLmVudGVyKCJwaHJhc2luZyIpO24ubW92ZShvKyIgIik7bGV0IGQ9ci5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6IiMgIixhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KTtyZXR1cm4vXltcdCBdLy50ZXN0KGQpJiYoZD1ybChkLmNoYXJDb2RlQXQoMCkpK2Quc2xpY2UoMSkpLGQ9ZD9vKyIgIitkOm8sci5vcHRpb25zLmNsb3NlQXR4JiYoZCs9IiAiK28pLGMoKSxsKCksZH12YXIgZ3RyPXUoKCk9PntYdigpO3VMZSgpO2kobXRyLCJoZWFkaW5nIil9KTtmdW5jdGlvbiBwTGUodCl7cmV0dXJuIHQudmFsdWV8fCIifWZ1bmN0aW9uIGZNYSgpe3JldHVybiI8In12YXIgYnRyPXUoKCk9PntwTGUucGVlaz1mTWE7aShwTGUsImh0bWwiKTtpKGZNYSwiaHRtbFBlZWsiKX0pO2Z1bmN0aW9uIGZMZSh0LGUscixhKXtsZXQgcz1RdihyKSxuPXM9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbz1yLmVudGVyKCJpbWFnZSIpLGw9ci5lbnRlcigibGFiZWwiKSxjPXIuY3JlYXRlVHJhY2tlcihhKSxkPWMubW92ZSgiIVsiKTtyZXR1cm4gZCs9Yy5tb3ZlKHIuc2FmZSh0LmFsdCx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLmMuY3VycmVudCgpfSkpLGQrPWMubW92ZSgiXSgiKSxsKCksIXQudXJsJiZ0LnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHQudXJsKT8obD1yLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxkKz1jLm1vdmUoIjwiKSxkKz1jLm1vdmUoci5zYWZlKHQudXJsLHtiZWZvcmU6ZCxhZnRlcjoiPiIsLi4uYy5jdXJyZW50KCl9KSksZCs9Yy5tb3ZlKCI+IikpOihsPXIuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksZCs9Yy5tb3ZlKHIuc2FmZSh0LnVybCx7YmVmb3JlOmQsYWZ0ZXI6dC50aXRsZT8iICI6IikiLC4uLmMuY3VycmVudCgpfSkpKSxsKCksdC50aXRsZSYmKGw9ci5lbnRlcihgdGl0bGUke259YCksZCs9Yy5tb3ZlKCIgIitzKSxkKz1jLm1vdmUoci5zYWZlKHQudGl0bGUse2JlZm9yZTpkLGFmdGVyOnMsLi4uYy5jdXJyZW50KCl9KSksZCs9Yy5tb3ZlKHMpLGwoKSksZCs9Yy5tb3ZlKCIpIiksbygpLGR9ZnVuY3Rpb24gaE1hKCl7cmV0dXJuIiEifXZhciB4dHI9dSgoKT0+e1lkZSgpO2ZMZS5wZWVrPWhNYTtpKGZMZSwiaW1hZ2UiKTtpKGhNYSwiaW1hZ2VQZWVrIil9KTtmdW5jdGlvbiBoTGUodCxlLHIsYSl7bGV0IHM9dC5yZWZlcmVuY2VUeXBlLG49ci5lbnRlcigiaW1hZ2VSZWZlcmVuY2UiKSxvPXIuZW50ZXIoImxhYmVsIiksbD1yLmNyZWF0ZVRyYWNrZXIoYSksYz1sLm1vdmUoIiFbIiksZD1yLnNhZmUodC5hbHQse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO2MrPWwubW92ZShkKyJdWyIpLG8oKTtsZXQgZj1yLnN0YWNrO3Iuc3RhY2s9W10sbz1yLmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgcD1yLnNhZmUoci5hc3NvY2lhdGlvbklkKHQpLHtiZWZvcmU6YyxhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KTtyZXR1cm4gbygpLHIuc3RhY2s9ZixuKCkscz09PSJmdWxsInx8IWR8fGQhPT1wP2MrPWwubW92ZShwKyJdIik6cz09PSJzaG9ydGN1dCI/Yz1jLnNsaWNlKDAsLTEpOmMrPWwubW92ZSgiXSIpLGN9ZnVuY3Rpb24gbU1hKCl7cmV0dXJuIiEifXZhciB2dHI9dSgoKT0+e2hMZS5wZWVrPW1NYTtpKGhMZSwiaW1hZ2VSZWZlcmVuY2UiKTtpKG1NYSwiaW1hZ2VSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiBtTGUodCxlLHIpe2xldCBhPXQudmFsdWV8fCIiLHM9ImAiLG49LTE7Zm9yKDtuZXcgUmVnRXhwKCIoXnxbXmBdKSIrcysiKFteYF18JCkiKS50ZXN0KGEpOylzKz0iYCI7Zm9yKC9bXiBcclxuXS8udGVzdChhKSYmKC9eWyBcclxuXS8udGVzdChhKSYmL1sgXHJcbl0kLy50ZXN0KGEpfHwvXmB8YCQvLnRlc3QoYSkpJiYoYT0iICIrYSsiICIpOysrbjxyLnVuc2FmZS5sZW5ndGg7KXtsZXQgbz1yLnVuc2FmZVtuXSxsPXIuY29tcGlsZVBhdHRlcm4obyksYztpZihvLmF0QnJlYWspZm9yKDtjPWwuZXhlYyhhKTspe2xldCBkPWMuaW5kZXg7YS5jaGFyQ29kZUF0KGQpPT09MTAmJmEuY2hhckNvZGVBdChkLTEpPT09MTMmJmQtLSxhPWEuc2xpY2UoMCxkKSsiICIrYS5zbGljZShjLmluZGV4KzEpfX1yZXR1cm4gcythK3N9ZnVuY3Rpb24gZ01hKCl7cmV0dXJuImAifXZhciB5dHI9dSgoKT0+e21MZS5wZWVrPWdNYTtpKG1MZSwiaW5saW5lQ29kZSIpO2koZ01hLCJpbmxpbmVDb2RlUGVlayIpfSk7ZnVuY3Rpb24gZ0xlKHQsZSl7bGV0IHI9STYodCk7cmV0dXJuISEoIWUub3B0aW9ucy5yZXNvdXJjZUxpbmsmJnQudXJsJiYhdC50aXRsZSYmdC5jaGlsZHJlbiYmdC5jaGlsZHJlbi5sZW5ndGg9PT0xJiZ0LmNoaWxkcmVuWzBdLnR5cGU9PT0idGV4dCImJihyPT09dC51cmx8fCJtYWlsdG86IityPT09dC51cmwpJiYvXlthLXpdW2EteisuLV0rOi9pLnRlc3QodC51cmwpJiYhL1tcMC0gPD5cdTAwN0ZdLy50ZXN0KHQudXJsKSl9dmFyIHd0cj11KCgpPT57WmRlKCk7aShnTGUsImZvcm1hdExpbmtBc0F1dG9saW5rIil9KTtmdW5jdGlvbiBiTGUodCxlLHIsYSl7bGV0IHM9UXYociksbj1zPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5jcmVhdGVUcmFja2VyKGEpLGwsYztpZihnTGUodCxyKSl7bGV0IGY9ci5zdGFjaztyLnN0YWNrPVtdLGw9ci5lbnRlcigiYXV0b2xpbmsiKTtsZXQgcD1vLm1vdmUoIjwiKTtyZXR1cm4gcCs9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcodCx7YmVmb3JlOnAsYWZ0ZXI6Ij4iLC4uLm8uY3VycmVudCgpfSkpLHArPW8ubW92ZSgiPiIpLGwoKSxyLnN0YWNrPWYscH1sPXIuZW50ZXIoImxpbmsiKSxjPXIuZW50ZXIoImxhYmVsIik7bGV0IGQ9by5tb3ZlKCJbIik7cmV0dXJuIGQrPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZTpkLGFmdGVyOiJdKCIsLi4uby5jdXJyZW50KCl9KSksZCs9by5tb3ZlKCJdKCIpLGMoKSwhdC51cmwmJnQudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3QodC51cmwpPyhjPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPW8ubW92ZSgiPCIpLGQrPW8ubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUoIj4iKSk6KGM9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1vLm1vdmUoci5zYWZlKHQudXJsLHtiZWZvcmU6ZCxhZnRlcjp0LnRpdGxlPyIgIjoiKSIsLi4uby5jdXJyZW50KCl9KSkpLGMoKSx0LnRpdGxlJiYoYz1yLmVudGVyKGB0aXRsZSR7bn1gKSxkKz1vLm1vdmUoIiAiK3MpLGQrPW8ubW92ZShyLnNhZmUodC50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6cywuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUocyksYygpKSxkKz1vLm1vdmUoIikiKSxsKCksZH1mdW5jdGlvbiBiTWEodCxlLHIpe3JldHVybiBnTGUodCxyKT8iPCI6IlsifXZhciBrdHI9dSgoKT0+e1lkZSgpO3d0cigpO2JMZS5wZWVrPWJNYTtpKGJMZSwibGluayIpO2koYk1hLCJsaW5rUGVlayIpfSk7ZnVuY3Rpb24geExlKHQsZSxyLGEpe2xldCBzPXQucmVmZXJlbmNlVHlwZSxuPXIuZW50ZXIoImxpbmtSZWZlcmVuY2UiKSxvPXIuZW50ZXIoImxhYmVsIiksbD1yLmNyZWF0ZVRyYWNrZXIoYSksYz1sLm1vdmUoIlsiKSxkPXIuY29udGFpbmVyUGhyYXNpbmcodCx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7Yys9bC5tb3ZlKGQrIl1bIiksbygpO2xldCBmPXIuc3RhY2s7ci5zdGFjaz1bXSxvPXIuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBwPXIuc2FmZShyLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBvKCksci5zdGFjaz1mLG4oKSxzPT09ImZ1bGwifHwhZHx8ZCE9PXA/Yys9bC5tb3ZlKHArIl0iKTpzPT09InNob3J0Y3V0Ij9jPWMuc2xpY2UoMCwtMSk6Yys9bC5tb3ZlKCJdIiksY31mdW5jdGlvbiB4TWEoKXtyZXR1cm4iWyJ9dmFyIFN0cj11KCgpPT57eExlLnBlZWs9eE1hO2koeExlLCJsaW5rUmVmZXJlbmNlIik7aSh4TWEsImxpbmtSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiBleSh0KXtsZXQgZT10Lm9wdGlvbnMuYnVsbGV0fHwiKiI7aWYoZSE9PSIqIiYmZSE9PSIrIiYmZSE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5idWxsZXRgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7cmV0dXJuIGV9dmFyIFhkZT11KCgpPT57aShleSwiY2hlY2tCdWxsZXQiKX0pO2Z1bmN0aW9uIE10cih0KXtsZXQgZT1leSh0KSxyPXQub3B0aW9ucy5idWxsZXRPdGhlcjtpZighcilyZXR1cm4gZT09PSIqIj8iLSI6IioiO2lmKHIhPT0iKiImJnIhPT0iKyImJnIhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrcisiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3RoZXJgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7aWYocj09PWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgYnVsbGV0YCAoYCIrZSsiYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAiK3IrImApIHRvIGJlIGRpZmZlcmVudCIpO3JldHVybiByfXZhciBDdHI9dSgoKT0+e1hkZSgpO2koTXRyLCJjaGVja0J1bGxldE90aGVyIil9KTtmdW5jdGlvbiB6dHIodCl7bGV0IGU9dC5vcHRpb25zLmJ1bGxldE9yZGVyZWR8fCIuIjtpZihlIT09Ii4iJiZlIT09IikiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmJ1bGxldE9yZGVyZWRgLCBleHBlY3RlZCBgLmAgb3IgYClgIik7cmV0dXJuIGV9dmFyIF90cj11KCgpPT57aSh6dHIsImNoZWNrQnVsbGV0T3JkZXJlZCIpfSk7ZnVuY3Rpb24gSmRlKHQpe2xldCBlPXQub3B0aW9ucy5ydWxlfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSItIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5ydWxlYCwgZXhwZWN0ZWQgYCpgLCBgLWAsIG9yIGBfYCIpO3JldHVybiBlfXZhciB2TGU9dSgoKT0+e2koSmRlLCJjaGVja1J1bGUiKX0pO2Z1bmN0aW9uIFR0cih0LGUscixhKXtsZXQgcz1yLmVudGVyKCJsaXN0Iiksbj1yLmJ1bGxldEN1cnJlbnQsbz10Lm9yZGVyZWQ/enRyKHIpOmV5KHIpLGw9dC5vcmRlcmVkP289PT0iLiI/IikiOiIuIjpNdHIociksYz1lJiZyLmJ1bGxldExhc3RVc2VkP289PT1yLmJ1bGxldExhc3RVc2VkOiExO2lmKCF0Lm9yZGVyZWQpe2xldCBmPXQuY2hpbGRyZW4/dC5jaGlsZHJlblswXTp2b2lkIDA7aWYoKG89PT0iKiJ8fG89PT0iLSIpJiZmJiYoIWYuY2hpbGRyZW58fCFmLmNoaWxkcmVuWzBdKSYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0xXT09PSJsaXN0IiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0yXT09PSJsaXN0SXRlbSImJnIuc3RhY2tbci5zdGFjay5sZW5ndGgtM109PT0ibGlzdCImJnIuc3RhY2tbci5zdGFjay5sZW5ndGgtNF09PT0ibGlzdEl0ZW0iJiZyLmluZGV4U3RhY2tbci5pbmRleFN0YWNrLmxlbmd0aC0xXT09PTAmJnIuaW5kZXhTdGFja1tyLmluZGV4U3RhY2subGVuZ3RoLTJdPT09MCYmci5pbmRleFN0YWNrW3IuaW5kZXhTdGFjay5sZW5ndGgtM109PT0wJiYoYz0hMCksSmRlKHIpPT09byYmZil7bGV0IHA9LTE7Zm9yKDsrK3A8dC5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgaD10LmNoaWxkcmVuW3BdO2lmKGgmJmgudHlwZT09PSJsaXN0SXRlbSImJmguY2hpbGRyZW4mJmguY2hpbGRyZW5bMF0mJmguY2hpbGRyZW5bMF0udHlwZT09PSJ0aGVtYXRpY0JyZWFrIil7Yz0hMDticmVha319fX1jJiYobz1sKSxyLmJ1bGxldEN1cnJlbnQ9bztsZXQgZD1yLmNvbnRhaW5lckZsb3codCxhKTtyZXR1cm4gci5idWxsZXRMYXN0VXNlZD1vLHIuYnVsbGV0Q3VycmVudD1uLHMoKSxkfXZhciBMdHI9dSgoKT0+e1hkZSgpO0N0cigpO190cigpO3ZMZSgpO2koVHRyLCJsaXN0Iil9KTtmdW5jdGlvbiBEdHIodCl7bGV0IGU9dC5vcHRpb25zLmxpc3RJdGVtSW5kZW50fHwib25lIjtpZihlIT09InRhYiImJmUhPT0ib25lIiYmZSE9PSJtaXhlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMubGlzdEl0ZW1JbmRlbnRgLCBleHBlY3RlZCBgdGFiYCwgYG9uZWAsIG9yIGBtaXhlZGAiKTtyZXR1cm4gZX12YXIgJHRyPXUoKCk9PntpKER0ciwiY2hlY2tMaXN0SXRlbUluZGVudCIpfSk7ZnVuY3Rpb24gQXRyKHQsZSxyLGEpe2xldCBzPUR0cihyKSxuPXIuYnVsbGV0Q3VycmVudHx8ZXkocik7ZSYmZS50eXBlPT09Imxpc3QiJiZlLm9yZGVyZWQmJihuPSh0eXBlb2YgZS5zdGFydD09Im51bWJlciImJmUuc3RhcnQ+LTE/ZS5zdGFydDoxKSsoci5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOmUuY2hpbGRyZW4uaW5kZXhPZih0KSkrbik7bGV0IG89bi5sZW5ndGgrMTsocz09PSJ0YWIifHxzPT09Im1peGVkIiYmKGUmJmUudHlwZT09PSJsaXN0IiYmZS5zcHJlYWR8fHQuc3ByZWFkKSkmJihvPU1hdGguY2VpbChvLzQpKjQpO2xldCBsPXIuY3JlYXRlVHJhY2tlcihhKTtsLm1vdmUobisiICIucmVwZWF0KG8tbi5sZW5ndGgpKSxsLnNoaWZ0KG8pO2xldCBjPXIuZW50ZXIoImxpc3RJdGVtIiksZD1yLmluZGVudExpbmVzKHIuY29udGFpbmVyRmxvdyh0LGwuY3VycmVudCgpKSxmKTtyZXR1cm4gYygpLGQ7ZnVuY3Rpb24gZihwLGgsbSl7cmV0dXJuIGg/KG0/IiI6IiAiLnJlcGVhdChvKSkrcDoobT9uOm4rIiAiLnJlcGVhdChvLW4ubGVuZ3RoKSkrcH1pKGYsIm1hcCIpfXZhciBFdHI9dSgoKT0+e1hkZSgpOyR0cigpO2koQXRyLCJsaXN0SXRlbSIpfSk7ZnVuY3Rpb24gSXRyKHQsZSxyLGEpe2xldCBzPXIuZW50ZXIoInBhcmFncmFwaCIpLG49ci5lbnRlcigicGhyYXNpbmciKSxvPXIuY29udGFpbmVyUGhyYXNpbmcodCxhKTtyZXR1cm4gbigpLHMoKSxvfXZhciBQdHI9dSgoKT0+e2koSXRyLCJwYXJhZ3JhcGgiKX0pO3ZhciB5TGUsTnRyPXUoKCk9PntxZGUoKTt5TGU9TDQoWyJicmVhayIsImRlbGV0ZSIsImVtcGhhc2lzIiwiZm9vdG5vdGUiLCJmb290bm90ZVJlZmVyZW5jZSIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwiaW5saW5lTWF0aCIsImxpbmsiLCJsaW5rUmVmZXJlbmNlIiwibWR4SnN4VGV4dEVsZW1lbnQiLCJtZHhUZXh0RXhwcmVzc2lvbiIsInN0cm9uZyIsInRleHQiLCJ0ZXh0RGlyZWN0aXZlIl0pfSk7dmFyIE90cj11KCgpPT57TnRyKCl9KTtmdW5jdGlvbiBSdHIodCxlLHIsYSl7cmV0dXJuKHQuY2hpbGRyZW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4geUxlKG8pfSk/ci5jb250YWluZXJQaHJhc2luZzpyLmNvbnRhaW5lckZsb3cpLmNhbGwocix0LGEpfXZhciBGdHI9dSgoKT0+e090cigpO2koUnRyLCJyb290Iil9KTtmdW5jdGlvbiBCdHIodCl7bGV0IGU9dC5vcHRpb25zLnN0cm9uZ3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHN0cm9uZyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnN0cm9uZ2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIEh0cj11KCgpPT57aShCdHIsImNoZWNrU3Ryb25nIil9KTtmdW5jdGlvbiB3TGUodCxlLHIsYSl7bGV0IHM9QnRyKHIpLG49ci5lbnRlcigic3Ryb25nIiksbz1yLmNyZWF0ZVRyYWNrZXIoYSksbD1vLm1vdmUocytzKSxjPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKHQse2FmdGVyOnMsYmVmb3JlOmwsLi4uby5jdXJyZW50KCl9KSksZD1jLmNoYXJDb2RlQXQoMCksZj1KdihhLmJlZm9yZS5jaGFyQ29kZUF0KGEuYmVmb3JlLmxlbmd0aC0xKSxkLHMpO2YuaW5zaWRlJiYoYz1ybChkKStjLnNsaWNlKDEpKTtsZXQgcD1jLmNoYXJDb2RlQXQoYy5sZW5ndGgtMSksaD1KdihhLmFmdGVyLmNoYXJDb2RlQXQoMCkscCxzKTtoLmluc2lkZSYmKGM9Yy5zbGljZSgwLC0xKStybChwKSk7bGV0IG09by5tb3ZlKHMrcyk7cmV0dXJuIG4oKSxyLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6aC5vdXRzaWRlLGJlZm9yZTpmLm91dHNpZGV9LGwrYyttfWZ1bmN0aW9uIHZNYSh0LGUscil7cmV0dXJuIHIub3B0aW9ucy5zdHJvbmd8fCIqIn12YXIgcXRyPXUoKCk9PntIdHIoKTtYdigpO2xMZSgpO3dMZS5wZWVrPXZNYTtpKHdMZSwic3Ryb25nIik7aSh2TWEsInN0cm9uZ1BlZWsiKX0pO2Z1bmN0aW9uIFZ0cih0LGUscixhKXtyZXR1cm4gci5zYWZlKHQudmFsdWUsYSl9dmFyIGp0cj11KCgpPT57aShWdHIsInRleHQiKX0pO2Z1bmN0aW9uIFV0cih0KXtsZXQgZT10Lm9wdGlvbnMucnVsZVJlcGV0aXRpb258fDM7aWYoZTwzKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIHJlcGV0aXRpb24gYCIrZSsiYCBmb3IgYG9wdGlvbnMucnVsZVJlcGV0aXRpb25gLCBleHBlY3RlZCBgM2Agb3IgbW9yZSIpO3JldHVybiBlfXZhciBXdHI9dSgoKT0+e2koVXRyLCJjaGVja1J1bGVSZXBldGl0aW9uIil9KTtmdW5jdGlvbiBHdHIodCxlLHIpe2xldCBhPShKZGUocikrKHIub3B0aW9ucy5ydWxlU3BhY2VzPyIgIjoiIikpLnJlcGVhdChVdHIocikpO3JldHVybiByLm9wdGlvbnMucnVsZVNwYWNlcz9hLnNsaWNlKDAsLTEpOmF9dmFyIFl0cj11KCgpPT57V3RyKCk7dkxlKCk7aShHdHIsInRoZW1hdGljQnJlYWsiKX0pO3ZhciBQNixrTGU9dSgoKT0+e1FlcigpO0plcigpO3N0cigpO290cigpO2R0cigpO2d0cigpO2J0cigpO3h0cigpO3Z0cigpO3l0cigpO2t0cigpO1N0cigpO0x0cigpO0V0cigpO1B0cigpO0Z0cigpO3F0cigpO2p0cigpO1l0cigpO1A2PXtibG9ja3F1b3RlOlplcixicmVhazpuTGUsY29kZTppdHIsZGVmaW5pdGlvbjpudHIsZW1waGFzaXM6Y0xlLGhhcmRCcmVhazpuTGUsaGVhZGluZzptdHIsaHRtbDpwTGUsaW1hZ2U6ZkxlLGltYWdlUmVmZXJlbmNlOmhMZSxpbmxpbmVDb2RlOm1MZSxsaW5rOmJMZSxsaW5rUmVmZXJlbmNlOnhMZSxsaXN0OlR0cixsaXN0SXRlbTpBdHIscGFyYWdyYXBoOkl0cixyb290OlJ0cixzdHJvbmc6d0xlLHRleHQ6VnRyLHRoZW1hdGljQnJlYWs6R3RyfX0pO2Z1bmN0aW9uIHlNYSh0LGUscixhKXtpZihlLnR5cGU9PT0iY29kZSImJlB6KGUsYSkmJih0LnR5cGU9PT0ibGlzdCJ8fHQudHlwZT09PWUudHlwZSYmUHoodCxhKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiByJiZ0eXBlb2Ygci5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gdC50eXBlPT09InBhcmFncmFwaCImJih0LnR5cGU9PT1lLnR5cGV8fGUudHlwZT09PSJkZWZpbml0aW9uInx8ZS50eXBlPT09ImhlYWRpbmciJiZRZGUoZSxhKSk/dm9pZCAwOnIuc3ByZWFkPzE6MH12YXIgS3RyLFp0cj11KCgpPT57b0xlKCk7dUxlKCk7S3RyPVt5TWFdO2koeU1hLCJqb2luRGVmYXVsdHMiKX0pO3ZhciBONixRdHIsWHRyPXUoKCk9PntONj1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl0sUXRyPVt7Y2hhcmFjdGVyOiIJIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjpgCmAsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOiIgIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiISIsYWZ0ZXI6IlxcWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpONn0se2NoYXJhY3RlcjonIicsaW5Db25zdHJ1Y3Q6InRpdGxlUXVvdGUifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IiMifSx7Y2hhcmFjdGVyOiIjIixpbkNvbnN0cnVjdDoiaGVhZGluZ0F0eCIsYWZ0ZXI6YCg/OltccgpdfCQpYH0se2NoYXJhY3RlcjoiJiIsYWZ0ZXI6IlsjQS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiJyIsaW5Db25zdHJ1Y3Q6InRpdGxlQXBvc3Ryb3BoZSJ9LHtjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHtiZWZvcmU6IlxcXSIsY2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0Ok42fSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiKSJ9LHtjaGFyYWN0ZXI6IikiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKiIsYWZ0ZXI6YCg/OlsgCVxyCipdKWB9LHtjaGFyYWN0ZXI6IioiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6TjZ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKyIsYWZ0ZXI6YCg/OlsgCVxyCl0pYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjpgKD86WyAJXHIKLV0pYH0se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6Ii4iLGFmdGVyOmAoPzpbIAlccgpdfCQpYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0ifSx7Y2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6TjZ9LHtjaGFyYWN0ZXI6IjwiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij4ifSx7Y2hhcmFjdGVyOiI+IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJbIn0se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpONn0se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7Y2hhcmFjdGVyOiJcXCIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiJdIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiXyJ9LHtjaGFyYWN0ZXI6Il8iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6TjZ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiYCJ9LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiXX0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpONn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ+In1dfSk7ZnVuY3Rpb24gdnAodCl7bGV0IGU9IiYiK3QrIjsiO0p0ci5pbm5lckhUTUw9ZTtsZXQgcj1KdHIudGV4dENvbnRlbnQ7cmV0dXJuIHIuY2hhckNvZGVBdChyLmxlbmd0aC0xKT09PTU5JiZ0IT09InNlbWkifHxyPT09ZT8hMTpyfXZhciBKdHIsT3o9dSgoKT0+e0p0cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7aSh2cCwiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIHR5KHQsZSl7bGV0IHI9TnVtYmVyLnBhcnNlSW50KHQsZSk7cmV0dXJuIHI8OXx8cj09PTExfHxyPjEzJiZyPDMyfHxyPjEyNiYmcjwxNjB8fHI+NTUyOTUmJnI8NTczNDR8fHI+NjQ5NzUmJnI8NjUwMDh8fChyJjY1NTM1KT09PTY1NTM1fHwociY2NTUzNSk9PT02NTUzNHx8cj4xMTE0MTExPyJcdUZGRkQiOlN0cmluZy5mcm9tQ29kZVBvaW50KHIpfXZhciBlNGU9dSgoKT0+e2kodHksImRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIHQ0ZSh0KXtyZXR1cm4gdC5yZXBsYWNlKHdNYSxrTWEpfWZ1bmN0aW9uIGtNYSh0LGUscil7aWYoZSlyZXR1cm4gZTtpZihyLmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IHM9ci5jaGFyQ29kZUF0KDEpLG49cz09PTEyMHx8cz09PTg4O3JldHVybiB0eShyLnNsaWNlKG4/MjoxKSxuPzE2OjEwKX1yZXR1cm4gdnAocil8fHR9dmFyIHdNYSxTTGU9dSgoKT0+e096KCk7ZTRlKCk7d01hPS9cXChbIS0vOi1AWy1gey1+XSl8JigjKD86XGR7MSw3fXx4W1xkYS1mXXsxLDZ9KXxbXGRhLXpdezEsMzF9KTsvZ2k7aSh0NGUsImRlY29kZVN0cmluZyIpO2koa01hLCJkZWNvZGUiKX0pO2Z1bmN0aW9uIGVycih0KXtyZXR1cm4gdC5sYWJlbHx8IXQuaWRlbnRpZmllcj90LmxhYmVsfHwiIjp0NGUodC5pZGVudGlmaWVyKX12YXIgdHJyPXUoKCk9PntTTGUoKTtpKGVyciwiYXNzb2NpYXRpb24iKX0pO2Z1bmN0aW9uIHJycih0KXtpZighdC5fY29tcGlsZWQpe2xldCBlPSh0LmF0QnJlYWs/IltcXHJcXG5dW1xcdCBdKiI6IiIpKyh0LmJlZm9yZT8iKD86Iit0LmJlZm9yZSsiKSI6IiIpO3QuX2NvbXBpbGVkPW5ldyBSZWdFeHAoKGU/IigiK2UrIikiOiIiKSsoL1t8XFx7fSgpW1xdXiQrKj8uLV0vLnRlc3QodC5jaGFyYWN0ZXIpPyJcXCI6IiIpK3QuY2hhcmFjdGVyKyh0LmFmdGVyPyIoPzoiK3QuYWZ0ZXIrIikiOiIiKSwiZyIpfXJldHVybiB0Ll9jb21waWxlZH12YXIgYXJyPXUoKCk9PntpKHJyciwiY29tcGlsZVBhdHRlcm4iKX0pO2Z1bmN0aW9uIGlycih0LGUscil7bGV0IGE9ZS5pbmRleFN0YWNrLHM9dC5jaGlsZHJlbnx8W10sbj1bXSxvPS0xLGw9ci5iZWZvcmUsYzthLnB1c2goLTEpO2xldCBkPWUuY3JlYXRlVHJhY2tlcihyKTtmb3IoOysrbzxzLmxlbmd0aDspe2xldCBmPXNbb10scDtpZihhW2EubGVuZ3RoLTFdPW8sbysxPHMubGVuZ3RoKXtsZXQgdj1lLmhhbmRsZS5oYW5kbGVyc1tzW28rMV0udHlwZV07diYmdi5wZWVrJiYodj12LnBlZWspLHA9dj92KHNbbysxXSx0LGUse2JlZm9yZToiIixhZnRlcjoiIiwuLi5kLmN1cnJlbnQoKX0pLmNoYXJBdCgwKToiIn1lbHNlIHA9ci5hZnRlcjtuLmxlbmd0aD4wJiYobD09PSJcciJ8fGw9PT1gCmApJiZmLnR5cGU9PT0iaHRtbCImJihuW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0ucmVwbGFjZSgvKFxyP1xufFxyKSQvLCIgIiksbD0iICIsZD1lLmNyZWF0ZVRyYWNrZXIociksZC5tb3ZlKG4uam9pbigiIikpKTtsZXQgaD1lLmhhbmRsZShmLHQsZSx7Li4uZC5jdXJyZW50KCksYWZ0ZXI6cCxiZWZvcmU6bH0pO2MmJmM9PT1oLnNsaWNlKDAsMSkmJihoPXJsKGMuY2hhckNvZGVBdCgwKSkraC5zbGljZSgxKSk7bGV0IG09ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm87ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89dm9pZCAwLGM9dm9pZCAwLG0mJihuLmxlbmd0aD4wJiZtLmJlZm9yZSYmbD09PW5bbi5sZW5ndGgtMV0uc2xpY2UoLTEpJiYobltuLmxlbmd0aC0xXT1uW24ubGVuZ3RoLTFdLnNsaWNlKDAsLTEpK3JsKGwuY2hhckNvZGVBdCgwKSkpLG0uYWZ0ZXImJihjPXApKSxkLm1vdmUoaCksbi5wdXNoKGgpLGw9aC5zbGljZSgtMSl9cmV0dXJuIGEucG9wKCksbi5qb2luKCIiKX12YXIgc3JyPXUoKCk9PntYdigpO2koaXJyLCJjb250YWluZXJQaHJhc2luZyIpfSk7ZnVuY3Rpb24gbnJyKHQsZSxyKXtsZXQgYT1lLmluZGV4U3RhY2sscz10LmNoaWxkcmVufHxbXSxuPWUuY3JlYXRlVHJhY2tlcihyKSxvPVtdLGw9LTE7Zm9yKGEucHVzaCgtMSk7KytsPHMubGVuZ3RoOyl7bGV0IGM9c1tsXTthW2EubGVuZ3RoLTFdPWwsby5wdXNoKG4ubW92ZShlLmhhbmRsZShjLHQsZSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KSkpLGMudHlwZSE9PSJsaXN0IiYmKGUuYnVsbGV0TGFzdFVzZWQ9dm9pZCAwKSxsPHMubGVuZ3RoLTEmJm8ucHVzaChuLm1vdmUoU01hKGMsc1tsKzFdLHQsZSkpKX1yZXR1cm4gYS5wb3AoKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIFNNYSh0LGUscixhKXtsZXQgcz1hLmpvaW4ubGVuZ3RoO2Zvcig7cy0tOyl7bGV0IG49YS5qb2luW3NdKHQsZSxyLGEpO2lmKG49PT0hMHx8bj09PTEpYnJlYWs7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybmAKYC5yZXBlYXQoMStuKTtpZihuPT09ITEpcmV0dXJuYAoKPCEtLS0tPgoKYH1yZXR1cm5gCgpgfXZhciBvcnI9dSgoKT0+e2kobnJyLCJjb250YWluZXJGbG93Iik7aShTTWEsImJldHdlZW4iKX0pO2Z1bmN0aW9uIGxycih0LGUpe2xldCByPVtdLGE9MCxzPTAsbjtmb3IoO249TU1hLmV4ZWModCk7KW8odC5zbGljZShhLG4uaW5kZXgpKSxyLnB1c2goblswXSksYT1uLmluZGV4K25bMF0ubGVuZ3RoLHMrKztyZXR1cm4gbyh0LnNsaWNlKGEpKSxyLmpvaW4oIiIpO2Z1bmN0aW9uIG8obCl7ci5wdXNoKGUobCxzLCFsKSl9aShvLCJvbmUiKX12YXIgTU1hLGNycj11KCgpPT57TU1hPS9ccj9cbnxcci9nO2kobHJyLCJpbmRlbnRMaW5lcyIpfSk7ZnVuY3Rpb24gdXJyKHQsZSxyKXtsZXQgYT0oci5iZWZvcmV8fCIiKSsoZXx8IiIpKyhyLmFmdGVyfHwiIikscz1bXSxuPVtdLG89e30sbD0tMTtmb3IoOysrbDx0LnVuc2FmZS5sZW5ndGg7KXtsZXQgZj10LnVuc2FmZVtsXTtpZighR2RlKHQuc3RhY2ssZikpY29udGludWU7bGV0IHA9dC5jb21waWxlUGF0dGVybihmKSxoO2Zvcig7aD1wLmV4ZWMoYSk7KXtsZXQgbT0iYmVmb3JlImluIGZ8fCEhZi5hdEJyZWFrLHY9ImFmdGVyImluIGYsYj1oLmluZGV4KyhtP2hbMV0ubGVuZ3RoOjApO3MuaW5jbHVkZXMoYik/KG9bYl0uYmVmb3JlJiYhbSYmKG9bYl0uYmVmb3JlPSExKSxvW2JdLmFmdGVyJiYhdiYmKG9bYl0uYWZ0ZXI9ITEpKToocy5wdXNoKGIpLG9bYl09e2JlZm9yZTptLGFmdGVyOnZ9KX19cy5zb3J0KENNYSk7bGV0IGM9ci5iZWZvcmU/ci5iZWZvcmUubGVuZ3RoOjAsZD1hLmxlbmd0aC0oci5hZnRlcj9yLmFmdGVyLmxlbmd0aDowKTtmb3IobD0tMTsrK2w8cy5sZW5ndGg7KXtsZXQgZj1zW2xdO2Y8Y3x8Zj49ZHx8ZisxPGQmJnNbbCsxXT09PWYrMSYmb1tmXS5hZnRlciYmIW9bZisxXS5iZWZvcmUmJiFvW2YrMV0uYWZ0ZXJ8fHNbbC0xXT09PWYtMSYmb1tmXS5iZWZvcmUmJiFvW2YtMV0uYmVmb3JlJiYhb1tmLTFdLmFmdGVyfHwoYyE9PWYmJm4ucHVzaChkcnIoYS5zbGljZShjLGYpLCJcXCIpKSxjPWYsL1shLS86LUBbLWB7LX5dLy50ZXN0KGEuY2hhckF0KGYpKSYmKCFyLmVuY29kZXx8IXIuZW5jb2RlLmluY2x1ZGVzKGEuY2hhckF0KGYpKSk/bi5wdXNoKCJcXCIpOihuLnB1c2gocmwoYS5jaGFyQ29kZUF0KGYpKSksYysrKSl9cmV0dXJuIG4ucHVzaChkcnIoYS5zbGljZShjLGQpLHIuYWZ0ZXIpKSxuLmpvaW4oIiIpfWZ1bmN0aW9uIENNYSh0LGUpe3JldHVybiB0LWV9ZnVuY3Rpb24gZHJyKHQsZSl7bGV0IHI9L1xcKD89WyEtLzotQFstYHstfl0pL2csYT1bXSxzPVtdLG49dCtlLG89LTEsbD0wLGM7Zm9yKDtjPXIuZXhlYyhuKTspYS5wdXNoKGMuaW5kZXgpO2Zvcig7KytvPGEubGVuZ3RoOylsIT09YVtvXSYmcy5wdXNoKHQuc2xpY2UobCxhW29dKSkscy5wdXNoKCJcXCIpLGw9YVtvXTtyZXR1cm4gcy5wdXNoKHQuc2xpY2UobCkpLHMuam9pbigiIil9dmFyIHBycj11KCgpPT57WHYoKTtzTGUoKTtpKHVyciwic2FmZSIpO2koQ01hLCJudW1lcmljYWwiKTtpKGRyciwiZXNjYXBlQmFja3NsYXNoZXMiKX0pO2Z1bmN0aW9uIGZycih0KXtsZXQgZT10fHx7fSxyPWUubm93fHx7fSxhPWUubGluZVNoaWZ0fHwwLHM9ci5saW5lfHwxLG49ci5jb2x1bW58fDE7cmV0dXJue21vdmU6YyxjdXJyZW50Om8sc2hpZnQ6bH07ZnVuY3Rpb24gbygpe3JldHVybntub3c6e2xpbmU6cyxjb2x1bW46bn0sbGluZVNoaWZ0OmF9fWZ1bmN0aW9uIGwoZCl7YSs9ZH1mdW5jdGlvbiBjKGQpe2xldCBmPWR8fCIiLHA9Zi5zcGxpdCgvXHI/XG58XHIvZyksaD1wW3AubGVuZ3RoLTFdO3JldHVybiBzKz1wLmxlbmd0aC0xLG49cC5sZW5ndGg9PT0xP24raC5sZW5ndGg6MStoLmxlbmd0aCthLGZ9fXZhciBocnI9dSgoKT0+e2koZnJyLCJ0cmFjayIpfSk7ZnVuY3Rpb24gTUxlKHQsZSl7bGV0IHI9ZXx8e30sYT17YXNzb2NpYXRpb25JZDplcnIsY29udGFpbmVyUGhyYXNpbmc6TE1hLGNvbnRhaW5lckZsb3c6RE1hLGNyZWF0ZVRyYWNrZXI6ZnJyLGNvbXBpbGVQYXR0ZXJuOnJycixlbnRlcjpuLGhhbmRsZXJzOnsuLi5QNn0saGFuZGxlOnZvaWQgMCxpbmRlbnRMaW5lczpscnIsaW5kZXhTdGFjazpbXSxqb2luOlsuLi5LdHJdLG9wdGlvbnM6e30sc2FmZTokTWEsc3RhY2s6W10sdW5zYWZlOlsuLi5RdHJdfTtpTGUoYSxyKSxhLm9wdGlvbnMudGlnaHREZWZpbml0aW9ucyYmYS5qb2luLnB1c2goVE1hKSxhLmhhbmRsZT1XZGUoInR5cGUiLHtpbnZhbGlkOnpNYSx1bmtub3duOl9NYSxoYW5kbGVyczphLmhhbmRsZXJzfSk7bGV0IHM9YS5oYW5kbGUodCx2b2lkIDAsYSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsbm93OntsaW5lOjEsY29sdW1uOjF9LGxpbmVTaGlmdDowfSk7cmV0dXJuIHMmJnMuY2hhckNvZGVBdChzLmxlbmd0aC0xKSE9PTEwJiZzLmNoYXJDb2RlQXQocy5sZW5ndGgtMSkhPT0xMyYmKHMrPWAKYCkscztmdW5jdGlvbiBuKG8pe3JldHVybiBhLnN0YWNrLnB1c2gobyksbDtmdW5jdGlvbiBsKCl7YS5zdGFjay5wb3AoKX1pKGwsImV4aXQiKX1pKG4sImVudGVyIil9ZnVuY3Rpb24gek1hKHQpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB2YWx1ZSBgIit0KyJgLCBleHBlY3RlZCBub2RlIil9ZnVuY3Rpb24gX01hKHQpe2xldCBlPXQ7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHVua25vd24gbm9kZSBgIitlLnR5cGUrImAiKX1mdW5jdGlvbiBUTWEodCxlKXtpZih0LnR5cGU9PT0iZGVmaW5pdGlvbiImJnQudHlwZT09PWUudHlwZSlyZXR1cm4gMH1mdW5jdGlvbiBMTWEodCxlKXtyZXR1cm4gaXJyKHQsdGhpcyxlKX1mdW5jdGlvbiBETWEodCxlKXtyZXR1cm4gbnJyKHQsdGhpcyxlKX1mdW5jdGlvbiAkTWEodCxlKXtyZXR1cm4gdXJyKHRoaXMsdCxlKX12YXIgbXJyPXUoKCk9PnthTGUoKTtLZXIoKTtrTGUoKTtadHIoKTtYdHIoKTt0cnIoKTthcnIoKTtzcnIoKTtvcnIoKTtjcnIoKTtwcnIoKTtocnIoKTtpKE1MZSwidG9NYXJrZG93biIpO2koek1hLCJpbnZhbGlkIik7aShfTWEsInVua25vd24iKTtpKFRNYSwiam9pbkRlZmluaXRpb24iKTtpKExNYSwiY29udGFpbmVyUGhyYXNpbmdCb3VuZCIpO2koRE1hLCJjb250YWluZXJGbG93Qm91bmQiKTtpKCRNYSwic2FmZUJvdW5kIil9KTt2YXIgcjRlPXUoKCk9PnttcnIoKTtrTGUoKX0pO2Z1bmN0aW9uIHpMZSgpe3JldHVybntlbnRlcjp7dGFibGU6QU1hLHRhYmxlRGF0YTpncnIsdGFibGVIZWFkZXI6Z3JyLHRhYmxlUm93OklNYX0sZXhpdDp7Y29kZVRleHQ6UE1hLHRhYmxlOkVNYSx0YWJsZURhdGE6Q0xlLHRhYmxlSGVhZGVyOkNMZSx0YWJsZVJvdzpDTGV9fX1mdW5jdGlvbiBBTWEodCl7bGV0IGU9dC5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOmUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByPT09Im5vbmUiP251bGw6cn0pLGNoaWxkcmVuOltdfSx0KSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiBFTWEodCl7dGhpcy5leGl0KHQpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiBJTWEodCl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBDTGUodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIGdycih0KXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBQTWEodCl7bGV0IGU9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxOTWEpKTtsZXQgcj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3IudHlwZSxyLnZhbHVlPWUsdGhpcy5leGl0KHQpfWZ1bmN0aW9uIE5NYSh0LGUpe3JldHVybiBlPT09InwiP2U6dH1mdW5jdGlvbiBfTGUodCl7bGV0IGU9dHx8e30scj1lLnRhYmxlQ2VsbFBhZGRpbmcsYT1lLnRhYmxlUGlwZUFsaWduLHM9ZS5zdHJpbmdMZW5ndGgsbj1yPyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTpoLHRhYmxlOm8sdGFibGVDZWxsOmMsdGFibGVSb3c6bH19O2Z1bmN0aW9uIG8obSx2LGIsZyl7cmV0dXJuIGQoZihtLGIsZyksbS5hbGlnbil9ZnVuY3Rpb24gbChtLHYsYixnKXtsZXQgeT1wKG0sYixnKSxrPWQoW3ldKTtyZXR1cm4gay5zbGljZSgwLGsuaW5kZXhPZihgCmApKX1mdW5jdGlvbiBjKG0sdixiLGcpe2xldCB5PWIuZW50ZXIoInRhYmxlQ2VsbCIpLGs9Yi5lbnRlcigicGhyYXNpbmciKSxNPWIuY29udGFpbmVyUGhyYXNpbmcobSx7Li4uZyxiZWZvcmU6bixhZnRlcjpufSk7cmV0dXJuIGsoKSx5KCksTX1mdW5jdGlvbiBkKG0sdil7cmV0dXJuIFVlcihtLHthbGlnbjp2LGFsaWduRGVsaW1pdGVyczphLHBhZGRpbmc6cixzdHJpbmdMZW5ndGg6c30pfWZ1bmN0aW9uIGYobSx2LGIpe2xldCBnPW0uY2hpbGRyZW4seT0tMSxrPVtdLE09di5lbnRlcigidGFibGUiKTtmb3IoOysreTxnLmxlbmd0aDspa1t5XT1wKGdbeV0sdixiKTtyZXR1cm4gTSgpLGt9ZnVuY3Rpb24gcChtLHYsYil7bGV0IGc9bS5jaGlsZHJlbix5PS0xLGs9W10sTT12LmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt5PGcubGVuZ3RoOylrW3ldPWMoZ1t5XSxtLHYsYik7cmV0dXJuIE0oKSxrfWZ1bmN0aW9uIGgobSx2LGIpe2xldCBnPVA2LmlubGluZUNvZGUobSx2LGIpO3JldHVybiBiLnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKGc9Zy5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLGd9fXZhciBicnI9dSgoKT0+e21wKCk7V2VyKCk7cjRlKCk7aSh6TGUsImdmbVRhYmxlRnJvbU1hcmtkb3duIik7aShBTWEsImVudGVyVGFibGUiKTtpKEVNYSwiZXhpdFRhYmxlIik7aShJTWEsImVudGVyUm93Iik7aShDTGUsImV4aXQiKTtpKGdyciwiZW50ZXJDZWxsIik7aShQTWEsImV4aXRDb2RlVGV4dCIpO2koTk1hLCJyZXBsYWNlIik7aShfTGUsImdmbVRhYmxlVG9NYXJrZG93biIpfSk7dmFyIHhycj11KCgpPT57YnJyKCl9KTtmdW5jdGlvbiBUTGUoKXtyZXR1cm57ZXhpdDp7dGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZDp2cnIsdGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkOnZycixwYXJhZ3JhcGg6T01hfX19ZnVuY3Rpb24gTExlKCl7cmV0dXJue3Vuc2FmZTpbe2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2xpc3RJdGVtOlJNYX19fWZ1bmN0aW9uIHZycih0KXtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2UudHlwZSxlLmNoZWNrZWQ9dC50eXBlPT09InRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQifWZ1bmN0aW9uIE9NYSh0KXtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2lmKGUmJmUudHlwZT09PSJsaXN0SXRlbSImJnR5cGVvZiBlLmNoZWNrZWQ9PSJib29sZWFuIil7bGV0IHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGU7bGV0IGE9ci5jaGlsZHJlblswXTtpZihhJiZhLnR5cGU9PT0idGV4dCIpe2xldCBzPWUuY2hpbGRyZW4sbj0tMSxvO2Zvcig7KytuPHMubGVuZ3RoOyl7bGV0IGw9c1tuXTtpZihsLnR5cGU9PT0icGFyYWdyYXBoIil7bz1sO2JyZWFrfX1vPT09ciYmKGEudmFsdWU9YS52YWx1ZS5zbGljZSgxKSxhLnZhbHVlLmxlbmd0aD09PTA/ci5jaGlsZHJlbi5zaGlmdCgpOnIucG9zaXRpb24mJmEucG9zaXRpb24mJnR5cGVvZiBhLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldD09Im51bWJlciImJihhLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbisrLGEucG9zaXRpb24uc3RhcnQub2Zmc2V0Kyssci5wb3NpdGlvbi5zdGFydD1PYmplY3QuYXNzaWduKHt9LGEucG9zaXRpb24uc3RhcnQpKSl9fXRoaXMuZXhpdCh0KX1mdW5jdGlvbiBSTWEodCxlLHIsYSl7bGV0IHM9dC5jaGlsZHJlblswXSxuPXR5cGVvZiB0LmNoZWNrZWQ9PSJib29sZWFuIiYmcyYmcy50eXBlPT09InBhcmFncmFwaCIsbz0iWyIrKHQuY2hlY2tlZD8ieCI6IiAiKSsiXSAiLGw9ci5jcmVhdGVUcmFja2VyKGEpO24mJmwubW92ZShvKTtsZXQgYz1QNi5saXN0SXRlbSh0LGUscix7Li4uYSwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBuJiYoYz1jLnJlcGxhY2UoL14oPzpbKistXXxcZCtcLikoW1xyXG5dfCB7MSwzfSkvLGQpKSxjO2Z1bmN0aW9uIGQoZil7cmV0dXJuIGYrb31pKGQsImNoZWNrIil9dmFyIHlycj11KCgpPT57bXAoKTtyNGUoKTtpKFRMZSwiZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duIik7aShMTGUsImdmbVRhc2tMaXN0SXRlbVRvTWFya2Rvd24iKTtpKHZyciwiZXhpdENoZWNrIik7aShPTWEsImV4aXRQYXJhZ3JhcGhXaXRoVGFza0xpc3RJdGVtIik7aShSTWEsImxpc3RJdGVtV2l0aFRhc2tMaXN0SXRlbSIpfSk7dmFyIHdycj11KCgpPT57eXJyKCl9KTtmdW5jdGlvbiBETGUoKXtyZXR1cm5bUVRlKCksSlRlKCksdExlKCksekxlKCksVExlKCldfWZ1bmN0aW9uICRMZSh0KXtyZXR1cm57ZXh0ZW5zaW9uczpbWFRlKCksZUxlKHQpLHJMZSgpLF9MZSh0KSxMTGUoKV19fXZhciBrcnI9dSgoKT0+e05lcigpO0JlcigpO1ZlcigpO3hycigpO3dycigpO2koRExlLCJnZm1Gcm9tTWFya2Rvd24iKTtpKCRMZSwiZ2ZtVG9NYXJrZG93biIpfSk7dmFyIFNycj11KCgpPT57a3JyKCl9KTtmdW5jdGlvbiBycyh0LGUscixhKXtsZXQgcz10Lmxlbmd0aCxuPTAsbztpZihlPDA/ZT0tZT5zPzA6cytlOmU9ZT5zP3M6ZSxyPXI+MD9yOjAsYS5sZW5ndGg8MWU0KW89QXJyYXkuZnJvbShhKSxvLnVuc2hpZnQoZSxyKSx0LnNwbGljZSguLi5vKTtlbHNlIGZvcihyJiZ0LnNwbGljZShlLHIpO248YS5sZW5ndGg7KW89YS5zbGljZShuLG4rMWU0KSxvLnVuc2hpZnQoZSwwKSx0LnNwbGljZSguLi5vKSxuKz0xZTQsZSs9MWU0fWZ1bmN0aW9uIENzKHQsZSl7cmV0dXJuIHQubGVuZ3RoPjA/KHJzKHQsdC5sZW5ndGgsMCxlKSx0KTplfXZhciBHMD11KCgpPT57aShycywic3BsaWNlIik7aShDcywicHVzaCIpfSk7ZnVuY3Rpb24gYTRlKHQpe2xldCBlPXt9LHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KUZNYShlLHRbcl0pO3JldHVybiBlfWZ1bmN0aW9uIEZNYSh0LGUpe2xldCByO2ZvcihyIGluIGUpe2xldCBzPShBTGUuY2FsbCh0LHIpP3Rbcl06dm9pZCAwKXx8KHRbcl09e30pLG49ZVtyXSxvO2lmKG4pZm9yKG8gaW4gbil7QUxlLmNhbGwocyxvKXx8KHNbb109W10pO2xldCBsPW5bb107Qk1hKHNbb10sQXJyYXkuaXNBcnJheShsKT9sOmw/W2xdOltdKX19fWZ1bmN0aW9uIEJNYSh0LGUpe2xldCByPS0xLGE9W107Zm9yKDsrK3I8ZS5sZW5ndGg7KShlW3JdLmFkZD09PSJhZnRlciI/dDphKS5wdXNoKGVbcl0pO3JzKHQsMCwwLGEpfWZ1bmN0aW9uIGk0ZSh0KXtsZXQgZT17fSxyPS0xO2Zvcig7KytyPHQubGVuZ3RoOylITWEoZSx0W3JdKTtyZXR1cm4gZX1mdW5jdGlvbiBITWEodCxlKXtsZXQgcjtmb3IociBpbiBlKXtsZXQgcz0oQUxlLmNhbGwodCxyKT90W3JdOnZvaWQgMCl8fCh0W3JdPXt9KSxuPWVbcl0sbztpZihuKWZvcihvIGluIG4pc1tvXT1uW29dfX12YXIgQUxlLHM0ZT11KCgpPT57RzAoKTtBTGU9e30uaGFzT3duUHJvcGVydHk7aShhNGUsImNvbWJpbmVFeHRlbnNpb25zIik7aShGTWEsInN5bnRheEV4dGVuc2lvbiIpO2koQk1hLCJjb25zdHJ1Y3RzIik7aShpNGUsImNvbWJpbmVIdG1sRXh0ZW5zaW9ucyIpO2koSE1hLCJodG1sRXh0ZW5zaW9uIil9KTtmdW5jdGlvbiBQTGUoKXtyZXR1cm57dGV4dDpZMH19ZnVuY3Rpb24gak1hKHQsZSxyKXtsZXQgYT10aGlzLHMsbjtyZXR1cm4gbztmdW5jdGlvbiBvKHApe3JldHVybiFFTGUocCl8fCEkcnIuY2FsbChhLGEucHJldmlvdXMpfHxJTGUoYS5ldmVudHMpP3IocCk6KHQuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLHQuZW50ZXIoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksbChwKSl9ZnVuY3Rpb24gbChwKXtyZXR1cm4gRUxlKHApPyh0LmNvbnN1bWUocCksbCk6cD09PTY0Pyh0LmNvbnN1bWUocCksYyk6cihwKX1mdW5jdGlvbiBjKHApe3JldHVybiBwPT09NDY/dC5jaGVjayhWTWEsZixkKShwKTpwPT09NDV8fHA9PT05NXx8QmkocCk/KG49ITAsdC5jb25zdW1lKHApLGMpOmYocCl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gdC5jb25zdW1lKHApLHM9ITAsY31mdW5jdGlvbiBmKHApe3JldHVybiBuJiZzJiZKcyhhLnByZXZpb3VzKT8odC5leGl0KCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShwKSk6cihwKX19ZnVuY3Rpb24gVU1hKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIG8hPT04NyYmbyE9PTExOXx8IUxyci5jYWxsKGEsYS5wcmV2aW91cyl8fElMZShhLmV2ZW50cyk/cihvKToodC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rV3d3IiksdC5jaGVjayhxTWEsdC5hdHRlbXB0KE1ycix0LmF0dGVtcHQoQ3JyLG4pLHIpLHIpKG8pKX1mdW5jdGlvbiBuKG8pe3JldHVybiB0LmV4aXQoImxpdGVyYWxBdXRvbGlua1d3dyIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShvKX19ZnVuY3Rpb24gV01hKHQsZSxyKXtsZXQgYT10aGlzLHM9IiIsbj0hMTtyZXR1cm4gbztmdW5jdGlvbiBvKHApe3JldHVybihwPT09NzJ8fHA9PT0xMDQpJiZEcnIuY2FsbChhLGEucHJldmlvdXMpJiYhSUxlKGEuZXZlbnRzKT8odC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHMrPVN0cmluZy5mcm9tQ29kZVBvaW50KHApLHQuY29uc3VtZShwKSxsKTpyKHApfWZ1bmN0aW9uIGwocCl7aWYoSnMocCkmJnMubGVuZ3RoPDUpcmV0dXJuIHMrPVN0cmluZy5mcm9tQ29kZVBvaW50KHApLHQuY29uc3VtZShwKSxsO2lmKHA9PT01OCl7bGV0IGg9cy50b0xvd2VyQ2FzZSgpO2lmKGg9PT0iaHR0cCJ8fGg9PT0iaHR0cHMiKXJldHVybiB0LmNvbnN1bWUocCksY31yZXR1cm4gcihwKX1mdW5jdGlvbiBjKHApe3JldHVybiBwPT09NDc/KHQuY29uc3VtZShwKSxuP2Q6KG49ITAsYykpOnIocCl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gcD09PW51bGx8fCQ2KHApfHxCcihwKXx8VzAocCl8fEE2KHApP3IocCk6dC5hdHRlbXB0KE1ycix0LmF0dGVtcHQoQ3JyLGYpLHIpKHApfWZ1bmN0aW9uIGYocCl7cmV0dXJuIHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShwKX19ZnVuY3Rpb24gR01hKHQsZSxyKXtsZXQgYT0wO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuKG89PT04N3x8bz09PTExOSkmJmE8Mz8oYSsrLHQuY29uc3VtZShvKSxzKTpvPT09NDYmJmE9PT0zPyh0LmNvbnN1bWUobyksbik6cihvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09bnVsbD9yKG8pOmUobyl9fWZ1bmN0aW9uIFlNYSh0LGUscil7bGV0IGEscyxuO3JldHVybiBvO2Z1bmN0aW9uIG8oZCl7cmV0dXJuIGQ9PT00Nnx8ZD09PTk1P3QuY2hlY2soenJyLGMsbCkoZCk6ZD09PW51bGx8fEJyKGQpfHxXMChkKXx8ZCE9PTQ1JiZBNihkKT9jKGQpOihuPSEwLHQuY29uc3VtZShkKSxvKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09OTU/YT0hMDoocz1hLGE9dm9pZCAwKSx0LmNvbnN1bWUoZCksb31mdW5jdGlvbiBjKGQpe3JldHVybiBzfHxhfHwhbj9yKGQpOmUoZCl9fWZ1bmN0aW9uIEtNYSh0LGUpe2xldCByPTAsYT0wO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIG89PT00MD8ocisrLHQuY29uc3VtZShvKSxzKTpvPT09NDEmJmE8cj9uKG8pOm89PT0zM3x8bz09PTM0fHxvPT09Mzh8fG89PT0zOXx8bz09PTQxfHxvPT09NDJ8fG89PT00NHx8bz09PTQ2fHxvPT09NTh8fG89PT01OXx8bz09PTYwfHxvPT09NjN8fG89PT05M3x8bz09PTk1fHxvPT09MTI2P3QuY2hlY2soenJyLGUsbikobyk6bz09PW51bGx8fEJyKG8pfHxXMChvKT9lKG8pOih0LmNvbnN1bWUobykscyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PTQxJiZhKyssdC5jb25zdW1lKG8pLHN9fWZ1bmN0aW9uIFpNYSh0LGUscil7cmV0dXJuIGE7ZnVuY3Rpb24gYShsKXtyZXR1cm4gbD09PTMzfHxsPT09MzR8fGw9PT0zOXx8bD09PTQxfHxsPT09NDJ8fGw9PT00NHx8bD09PTQ2fHxsPT09NTh8fGw9PT01OXx8bD09PTYzfHxsPT09OTV8fGw9PT0xMjY/KHQuY29uc3VtZShsKSxhKTpsPT09Mzg/KHQuY29uc3VtZShsKSxuKTpsPT09OTM/KHQuY29uc3VtZShsKSxzKTpsPT09NjB8fGw9PT1udWxsfHxCcihsKXx8VzAobCk/ZShsKTpyKGwpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIGw9PT1udWxsfHxsPT09NDB8fGw9PT05MXx8QnIobCl8fFcwKGwpP2UobCk6YShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBKcyhsKT9vKGwpOnIobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbD09PTU5Pyh0LmNvbnN1bWUobCksYSk6SnMobCk/KHQuY29uc3VtZShsKSxvKTpyKGwpfX1mdW5jdGlvbiBRTWEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIHQuY29uc3VtZShuKSxzfWZ1bmN0aW9uIHMobil7cmV0dXJuIEJpKG4pP3Iobik6ZShuKX19ZnVuY3Rpb24gTHJyKHQpe3JldHVybiB0PT09bnVsbHx8dD09PTQwfHx0PT09NDJ8fHQ9PT05NXx8dD09PTkxfHx0PT09OTN8fHQ9PT0xMjZ8fEJyKHQpfWZ1bmN0aW9uIERycih0KXtyZXR1cm4hSnModCl9ZnVuY3Rpb24gJHJyKHQpe3JldHVybiEodD09PTQ3fHxFTGUodCkpfWZ1bmN0aW9uIEVMZSh0KXtyZXR1cm4gdD09PTQzfHx0PT09NDV8fHQ9PT00Nnx8dD09PTk1fHxCaSh0KX1mdW5jdGlvbiBJTGUodCl7bGV0IGU9dC5sZW5ndGgscj0hMTtmb3IoO2UtLTspe2xldCBhPXRbZV1bMV07aWYoKGEudHlwZT09PSJsYWJlbExpbmsifHxhLnR5cGU9PT0ibGFiZWxJbWFnZSIpJiYhYS5fYmFsYW5jZWQpe3I9ITA7YnJlYWt9aWYoYS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50byl7cj0hMTticmVha319cmV0dXJuIHQubGVuZ3RoPjAmJiFyJiYodFt0Lmxlbmd0aC0xXVsxXS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50bz0hMCkscn12YXIgcU1hLE1ycixDcnIsenJyLFZNYSxfcnIsVHJyLCQ0LFkwLEFycj11KCgpPT57WXIoKTtxTWE9e3Rva2VuaXplOkdNYSxwYXJ0aWFsOiEwfSxNcnI9e3Rva2VuaXplOllNYSxwYXJ0aWFsOiEwfSxDcnI9e3Rva2VuaXplOktNYSxwYXJ0aWFsOiEwfSx6cnI9e3Rva2VuaXplOlpNYSxwYXJ0aWFsOiEwfSxWTWE9e3Rva2VuaXplOlFNYSxwYXJ0aWFsOiEwfSxfcnI9e25hbWU6Ind3d0F1dG9saW5rIix0b2tlbml6ZTpVTWEscHJldmlvdXM6THJyfSxUcnI9e25hbWU6InByb3RvY29sQXV0b2xpbmsiLHRva2VuaXplOldNYSxwcmV2aW91czpEcnJ9LCQ0PXtuYW1lOiJlbWFpbEF1dG9saW5rIix0b2tlbml6ZTpqTWEscHJldmlvdXM6JHJyfSxZMD17fTtpKFBMZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsIik7Zm9yKHZhciBPNj00ODtPNjwxMjM7KVkwW082XT0kNCxPNisrLE82PT09NTg/TzY9NjU6TzY9PT05MSYmKE82PTk3KTtZMFs0M109JDQsWTBbNDVdPSQ0LFkwWzQ2XT0kNCxZMFs5NV09JDQsWTBbNzJdPVskNCxUcnJdLFkwWzEwNF09WyQ0LFRycl0sWTBbODddPVskNCxfcnJdLFkwWzExOV09WyQ0LF9ycl07aShqTWEsInRva2VuaXplRW1haWxBdXRvbGluayIpO2koVU1hLCJ0b2tlbml6ZVd3d0F1dG9saW5rIik7aShXTWEsInRva2VuaXplUHJvdG9jb2xBdXRvbGluayIpO2koR01hLCJ0b2tlbml6ZVd3d1ByZWZpeCIpO2koWU1hLCJ0b2tlbml6ZURvbWFpbiIpO2koS01hLCJ0b2tlbml6ZVBhdGgiKTtpKFpNYSwidG9rZW5pemVUcmFpbCIpO2koUU1hLCJ0b2tlbml6ZUVtYWlsRG9tYWluRG90VHJhaWwiKTtpKExyciwicHJldmlvdXNXd3ciKTtpKERyciwicHJldmlvdXNQcm90b2NvbCIpO2koJHJyLCJwcmV2aW91c0VtYWlsIik7aShFTGUsImdmbUF0ZXh0Iik7aShJTGUsInByZXZpb3VzVW5iYWxhbmNlZCIpfSk7ZnVuY3Rpb24gbjRlKHQpe3JldHVybiB0LnJlcGxhY2UoL1siJjw+XS9nLGUpO2Z1bmN0aW9uIGUocil7cmV0dXJuIiYiK1hNYVtyXSsiOyJ9fXZhciBYTWEsTkxlPXUoKCk9PntYTWE9eyciJzoicXVvdCIsIiYiOiJhbXAiLCI8IjoibHQiLCI+IjoiZ3QifTtpKG40ZSwiZW5jb2RlIil9KTtmdW5jdGlvbiBLMCh0LGUpe2xldCByPW40ZShhbCh0fHwiIikpO2lmKCFlKXJldHVybiByO2xldCBhPXIuaW5kZXhPZigiOiIpLHM9ci5pbmRleE9mKCI/Iiksbj1yLmluZGV4T2YoIiMiKSxvPXIuaW5kZXhPZigiLyIpO3JldHVybiBhPDB8fG8+LTEmJmE+b3x8cz4tMSYmYT5zfHxuPi0xJiZhPm58fGUudGVzdChyLnNsaWNlKDAsYSkpP3I6IiJ9ZnVuY3Rpb24gYWwodCl7bGV0IGU9W10scj0tMSxhPTAscz0wO2Zvcig7KytyPHQubGVuZ3RoOyl7bGV0IG49dC5jaGFyQ29kZUF0KHIpLG89IiI7aWYobj09PTM3JiZCaSh0LmNoYXJDb2RlQXQocisxKSkmJkJpKHQuY2hhckNvZGVBdChyKzIpKSlzPTI7ZWxzZSBpZihuPDEyOCkvWyEjJCYtOz0/LVpfYS16fl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuKSl8fChvPVN0cmluZy5mcm9tQ2hhckNvZGUobikpO2Vsc2UgaWYobj41NTI5NSYmbjw1NzM0NCl7bGV0IGw9dC5jaGFyQ29kZUF0KHIrMSk7bjw1NjMyMCYmbD41NjMxOSYmbDw1NzM0ND8obz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4sbCkscz0xKTpvPSJcdUZGRkQifWVsc2Ugbz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pO28mJihlLnB1c2godC5zbGljZShhLHIpLGVuY29kZVVSSUNvbXBvbmVudChvKSksYT1yK3MrMSxvPSIiKSxzJiYocis9cyxzPTApfXJldHVybiBlLmpvaW4oIiIpK3Quc2xpY2UoYSl9dmFyIFowPXUoKCk9PntZcigpO05MZSgpO2koSzAsInNhbml0aXplVXJpIik7aShhbCwibm9ybWFsaXplVXJpIil9KTtmdW5jdGlvbiBSTGUoKXtyZXR1cm57ZXhpdDp7bGl0ZXJhbEF1dG9saW5rRW1haWw6ZUNhLGxpdGVyYWxBdXRvbGlua0h0dHA6dENhLGxpdGVyYWxBdXRvbGlua1d3dzpKTWF9fX1mdW5jdGlvbiBKTWEodCl7T0xlLmNhbGwodGhpcyx0LCJodHRwOi8vIil9ZnVuY3Rpb24gZUNhKHQpe09MZS5jYWxsKHRoaXMsdCwibWFpbHRvOiIpfWZ1bmN0aW9uIHRDYSh0KXtPTGUuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIE9MZSh0LGUpe2xldCByPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy50YWcoJzxhIGhyZWY9IicrSzAoKGV8fCIiKStyKSsnIj4nKSx0aGlzLnJhdyh0aGlzLmVuY29kZShyKSksdGhpcy50YWcoIjwvYT4iKX12YXIgRXJyPXUoKCk9PntaMCgpO2koUkxlLCJnZm1BdXRvbGlua0xpdGVyYWxIdG1sIik7aShKTWEsImxpdGVyYWxBdXRvbGlua1d3dyIpO2koZUNhLCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpO2kodENhLCJsaXRlcmFsQXV0b2xpbmtIdHRwIik7aShPTGUsImFuY2hvckZyb21Ub2tlbiIpfSk7dmFyIElycj11KCgpPT57QXJyKCk7RXJyKCl9KTtmdW5jdGlvbiB5cCh0LGUscil7bGV0IGE9W10scz0tMTtmb3IoOysrczx0Lmxlbmd0aDspe2xldCBuPXRbc10ucmVzb2x2ZUFsbDtuJiYhYS5pbmNsdWRlcyhuKSYmKGU9bihlLHIpLGEucHVzaChuKSl9cmV0dXJuIGV9dmFyIFJ6PXUoKCk9PntpKHlwLCJyZXNvbHZlQWxsIil9KTtmdW5jdGlvbiByQ2EodCxlKXtsZXQgcj0tMSxhLHMsbixvLGwsYyxkLGY7Zm9yKDsrK3I8dC5sZW5ndGg7KWlmKHRbcl1bMF09PT0iZW50ZXIiJiZ0W3JdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZ0W3JdWzFdLl9jbG9zZSl7Zm9yKGE9cjthLS07KWlmKHRbYV1bMF09PT0iZXhpdCImJnRbYV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJnRbYV1bMV0uX29wZW4mJmUuc2xpY2VTZXJpYWxpemUodFthXVsxXSkuY2hhckNvZGVBdCgwKT09PWUuc2xpY2VTZXJpYWxpemUodFtyXVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKHRbYV1bMV0uX2Nsb3NlfHx0W3JdWzFdLl9vcGVuKSYmKHRbcl1bMV0uZW5kLm9mZnNldC10W3JdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgodFthXVsxXS5lbmQub2Zmc2V0LXRbYV1bMV0uc3RhcnQub2Zmc2V0K3Rbcl1bMV0uZW5kLm9mZnNldC10W3JdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7Yz10W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQ+MSYmdFtyXVsxXS5lbmQub2Zmc2V0LXRbcl1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2xldCBwPXsuLi50W2FdWzFdLmVuZH0saD17Li4udFtyXVsxXS5zdGFydH07UHJyKHAsLWMpLFBycihoLGMpLG89e3R5cGU6Yz4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnAsZW5kOnsuLi50W2FdWzFdLmVuZH19LGw9e3R5cGU6Yz4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi50W3JdWzFdLnN0YXJ0fSxlbmQ6aH0sbj17dHlwZTpjPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi50W2FdWzFdLmVuZH0sZW5kOnsuLi50W3JdWzFdLnN0YXJ0fX0scz17dHlwZTpjPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4uby5zdGFydH0sZW5kOnsuLi5sLmVuZH19LHRbYV1bMV0uZW5kPXsuLi5vLnN0YXJ0fSx0W3JdWzFdLnN0YXJ0PXsuLi5sLmVuZH0sZD1bXSx0W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQmJihkPUNzKGQsW1siZW50ZXIiLHRbYV1bMV0sZV0sWyJleGl0Iix0W2FdWzFdLGVdXSkpLGQ9Q3MoZCxbWyJlbnRlciIscyxlXSxbImVudGVyIixvLGVdLFsiZXhpdCIsbyxlXSxbImVudGVyIixuLGVdXSksZD1DcyhkLHlwKGUucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLHQuc2xpY2UoYSsxLHIpLGUpKSxkPUNzKGQsW1siZXhpdCIsbixlXSxbImVudGVyIixsLGVdLFsiZXhpdCIsbCxlXSxbImV4aXQiLHMsZV1dKSx0W3JdWzFdLmVuZC5vZmZzZXQtdFtyXVsxXS5zdGFydC5vZmZzZXQ/KGY9MixkPUNzKGQsW1siZW50ZXIiLHRbcl1bMV0sZV0sWyJleGl0Iix0W3JdWzFdLGVdXSkpOmY9MCxycyh0LGEtMSxyLWErMyxkKSxyPWErZC5sZW5ndGgtZi0yO2JyZWFrfX1mb3Iocj0tMTsrK3I8dC5sZW5ndGg7KXRbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJih0W3JdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gdH1mdW5jdGlvbiBhQ2EodCxlKXtsZXQgcj10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxhPXRoaXMucHJldmlvdXMscz1ENChhKSxuO3JldHVybiBvO2Z1bmN0aW9uIG8oYyl7cmV0dXJuIG49Yyx0LmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLGwoYyl9ZnVuY3Rpb24gbChjKXtpZihjPT09bilyZXR1cm4gdC5jb25zdW1lKGMpLGw7bGV0IGQ9dC5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLGY9RDQoYykscD0hZnx8Zj09PTImJnN8fHIuaW5jbHVkZXMoYyksaD0hc3x8cz09PTImJmZ8fHIuaW5jbHVkZXMoYSk7cmV0dXJuIGQuX29wZW49ISEobj09PTQyP3A6cCYmKHN8fCFoKSksZC5fY2xvc2U9ISEobj09PTQyP2g6aCYmKGZ8fCFwKSksZShjKX19ZnVuY3Rpb24gUHJyKHQsZSl7dC5jb2x1bW4rPWUsdC5vZmZzZXQrPWUsdC5fYnVmZmVySW5kZXgrPWV9dmFyIEZ6LE5ycj11KCgpPT57RzAoKTtLZGUoKTtSeigpO0Z6PXtuYW1lOiJhdHRlbnRpb24iLHJlc29sdmVBbGw6ckNhLHRva2VuaXplOmFDYX07aShyQ2EsInJlc29sdmVBbGxBdHRlbnRpb24iKTtpKGFDYSwidG9rZW5pemVBdHRlbnRpb24iKTtpKFByciwibW92ZVBvaW50Iil9KTtmdW5jdGlvbiBpQ2EodCxlLHIpe2xldCBhPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhtKXtyZXR1cm4gdC5lbnRlcigiYXV0b2xpbmsiKSx0LmVudGVyKCJhdXRvbGlua01hcmtlciIpLHQuY29uc3VtZShtKSx0LmV4aXQoImF1dG9saW5rTWFya2VyIiksdC5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLG59ZnVuY3Rpb24gbihtKXtyZXR1cm4gSnMobSk/KHQuY29uc3VtZShtKSxvKTptPT09NjQ/cihtKTpkKG0pfWZ1bmN0aW9uIG8obSl7cmV0dXJuIG09PT00M3x8bT09PTQ1fHxtPT09NDZ8fEJpKG0pPyhhPTEsbChtKSk6ZChtKX1mdW5jdGlvbiBsKG0pe3JldHVybiBtPT09NTg/KHQuY29uc3VtZShtKSxhPTAsYyk6KG09PT00M3x8bT09PTQ1fHxtPT09NDZ8fEJpKG0pKSYmYSsrPDMyPyh0LmNvbnN1bWUobSksbCk6KGE9MCxkKG0pKX1mdW5jdGlvbiBjKG0pe3JldHVybiBtPT09NjI/KHQuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLHQuZW50ZXIoImF1dG9saW5rTWFya2VyIiksdC5jb25zdW1lKG0pLHQuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSx0LmV4aXQoImF1dG9saW5rIiksZSk6bT09PW51bGx8fG09PT0zMnx8bT09PTYwfHwkNihtKT9yKG0pOih0LmNvbnN1bWUobSksYyl9ZnVuY3Rpb24gZChtKXtyZXR1cm4gbT09PTY0Pyh0LmNvbnN1bWUobSksZik6U2VyKG0pPyh0LmNvbnN1bWUobSksZCk6cihtKX1mdW5jdGlvbiBmKG0pe3JldHVybiBCaShtKT9wKG0pOnIobSl9ZnVuY3Rpb24gcChtKXtyZXR1cm4gbT09PTQ2Pyh0LmNvbnN1bWUobSksYT0wLGYpOm09PT02Mj8odC5leGl0KCJhdXRvbGlua1Byb3RvY29sIikudHlwZT0iYXV0b2xpbmtFbWFpbCIsdC5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSx0LmNvbnN1bWUobSksdC5leGl0KCJhdXRvbGlua01hcmtlciIpLHQuZXhpdCgiYXV0b2xpbmsiKSxlKTpoKG0pfWZ1bmN0aW9uIGgobSl7aWYoKG09PT00NXx8QmkobSkpJiZhKys8NjMpe2xldCB2PW09PT00NT9oOnA7cmV0dXJuIHQuY29uc3VtZShtKSx2fXJldHVybiByKG0pfX12YXIgRkxlLE9ycj11KCgpPT57WXIoKTtGTGU9e25hbWU6ImF1dG9saW5rIix0b2tlbml6ZTppQ2F9O2koaUNhLCJ0b2tlbml6ZUF1dG9saW5rIil9KTtmdW5jdGlvbiBXdCh0LGUscixhKXtsZXQgcz1hP2EtMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8oYyl7cmV0dXJuIFJ0KGMpPyh0LmVudGVyKHIpLGwoYykpOmUoYyl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gUnQoYykmJm4rKzxzPyh0LmNvbnN1bWUoYyksbCk6KHQuZXhpdChyKSxlKGMpKX19dmFyIGFzPXUoKCk9PntZcigpO2koV3QsImZhY3RvcnlTcGFjZSIpfSk7ZnVuY3Rpb24gc0NhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiBSdChuKT9XdCh0LHMsImxpbmVQcmVmaXgiKShuKTpzKG4pfWZ1bmN0aW9uIHMobil7cmV0dXJuIG49PT1udWxsfHx1dChuKT9lKG4pOnIobil9fXZhciBRMCxvNGU9dSgoKT0+e2FzKCk7WXIoKTtRMD17cGFydGlhbDohMCx0b2tlbml6ZTpzQ2F9O2koc0NhLCJ0b2tlbml6ZUJsYW5rTGluZSIpfSk7ZnVuY3Rpb24gbkNhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7aWYobz09PTYyKXtsZXQgbD1hLmNvbnRhaW5lclN0YXRlO3JldHVybiBsLm9wZW58fCh0LmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLGwub3Blbj0hMCksdC5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLHQuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSx0LmNvbnN1bWUobyksdC5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksbn1yZXR1cm4gcihvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBSdChvKT8odC5lbnRlcigiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSx0LmNvbnN1bWUobyksdC5leGl0KCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLHQuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUpOih0LmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSxlKG8pKX19ZnVuY3Rpb24gb0NhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIFJ0KG8pP1d0KHQsbiwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShvKTpuKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIHQuYXR0ZW1wdChsNGUsZSxyKShvKX19ZnVuY3Rpb24gbENhKHQpe3QuZXhpdCgiYmxvY2tRdW90ZSIpfXZhciBsNGUsUnJyPXUoKCk9PnthcygpO1lyKCk7bDRlPXtjb250aW51YXRpb246e3Rva2VuaXplOm9DYX0sZXhpdDpsQ2EsbmFtZToiYmxvY2tRdW90ZSIsdG9rZW5pemU6bkNhfTtpKG5DYSwidG9rZW5pemVCbG9ja1F1b3RlU3RhcnQiKTtpKG9DYSwidG9rZW5pemVCbG9ja1F1b3RlQ29udGludWF0aW9uIik7aShsQ2EsImV4aXQiKX0pO2Z1bmN0aW9uIGNDYSh0LGUscil7cmV0dXJuIGE7ZnVuY3Rpb24gYShuKXtyZXR1cm4gdC5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIiksdC5lbnRlcigiZXNjYXBlTWFya2VyIiksdC5jb25zdW1lKG4pLHQuZXhpdCgiZXNjYXBlTWFya2VyIiksc31mdW5jdGlvbiBzKG4pe3JldHVybiBDZXIobik/KHQuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksdC5jb25zdW1lKG4pLHQuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSx0LmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLGUpOnIobil9fXZhciBjNGUsRnJyPXUoKCk9PntZcigpO2M0ZT17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTpjQ2F9O2koY0NhLCJ0b2tlbml6ZUNoYXJhY3RlckVzY2FwZSIpfSk7ZnVuY3Rpb24gZENhKHQsZSxyKXtsZXQgYT10aGlzLHM9MCxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChwKXtyZXR1cm4gdC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksdC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksY31mdW5jdGlvbiBjKHApe3JldHVybiBwPT09MzU/KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSx0LmNvbnN1bWUocCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksZCk6KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj0zMSxvPUJpLGYocCkpfWZ1bmN0aW9uIGQocCl7cmV0dXJuIHA9PT04OHx8cD09PTEyMD8odC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSx0LmNvbnN1bWUocCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj02LG89TWVyLGYpOih0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxvPUV6LGYocCkpfWZ1bmN0aW9uIGYocCl7aWYocD09PTU5JiZzKXtsZXQgaD10LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIik7cmV0dXJuIG89PT1CaSYmIXZwKGEuc2xpY2VTZXJpYWxpemUoaCkpP3IocCk6KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlIiksZSl9cmV0dXJuIG8ocCkmJnMrKzxuPyh0LmNvbnN1bWUocCksZik6cihwKX19dmFyIGQ0ZSxCcnI9dSgoKT0+e096KCk7WXIoKTtkNGU9e25hbWU6ImNoYXJhY3RlclJlZmVyZW5jZSIsdG9rZW5pemU6ZENhfTtpKGRDYSwidG9rZW5pemVDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIHVDYSh0LGUscil7bGV0IGE9dGhpcyxzPXtwYXJ0aWFsOiEwLHRva2VuaXplOl99LG49MCxvPTAsbDtyZXR1cm4gYztmdW5jdGlvbiBjKFMpe3JldHVybiBkKFMpfWZ1bmN0aW9uIGQoUyl7bGV0IE89YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBuPU8mJk9bMV0udHlwZT09PSJsaW5lUHJlZml4Ij9PWzJdLnNsaWNlU2VyaWFsaXplKE9bMV0sITApLmxlbmd0aDowLGw9Uyx0LmVudGVyKCJjb2RlRmVuY2VkIiksdC5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksdC5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxmKFMpfWZ1bmN0aW9uIGYoUyl7cmV0dXJuIFM9PT1sPyhvKyssdC5jb25zdW1lKFMpLGYpOm88Mz9yKFMpOih0LmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksUnQoUyk/V3QodCxwLCJ3aGl0ZXNwYWNlIikoUyk6cChTKSl9ZnVuY3Rpb24gcChTKXtyZXR1cm4gUz09PW51bGx8fHV0KFMpPyh0LmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLGEuaW50ZXJydXB0P2UoUyk6dC5jaGVjayhIcnIsYixOKShTKSk6KHQuZW50ZXIoImNvZGVGZW5jZWRGZW5jZUluZm8iKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksaChTKSl9ZnVuY3Rpb24gaChTKXtyZXR1cm4gUz09PW51bGx8fHV0KFMpPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIikscChTKSk6UnQoUyk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxXdCh0LG0sIndoaXRlc3BhY2UiKShTKSk6Uz09PTk2JiZTPT09bD9yKFMpOih0LmNvbnN1bWUoUyksaCl9ZnVuY3Rpb24gbShTKXtyZXR1cm4gUz09PW51bGx8fHV0KFMpP3AoUyk6KHQuZW50ZXIoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksdihTKSl9ZnVuY3Rpb24gdihTKXtyZXR1cm4gUz09PW51bGx8fHV0KFMpPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KCJjb2RlRmVuY2VkRmVuY2VNZXRhIikscChTKSk6Uz09PTk2JiZTPT09bD9yKFMpOih0LmNvbnN1bWUoUyksdil9ZnVuY3Rpb24gYihTKXtyZXR1cm4gdC5hdHRlbXB0KHMsTixnKShTKX1mdW5jdGlvbiBnKFMpe3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKFMpLHQuZXhpdCgibGluZUVuZGluZyIpLHl9ZnVuY3Rpb24geShTKXtyZXR1cm4gbj4wJiZSdChTKT9XdCh0LGssImxpbmVQcmVmaXgiLG4rMSkoUyk6ayhTKX1mdW5jdGlvbiBrKFMpe3JldHVybiBTPT09bnVsbHx8dXQoUyk/dC5jaGVjayhIcnIsYixOKShTKToodC5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLE0oUykpfWZ1bmN0aW9uIE0oUyl7cmV0dXJuIFM9PT1udWxsfHx1dChTKT8odC5leGl0KCJjb2RlRmxvd1ZhbHVlIiksayhTKSk6KHQuY29uc3VtZShTKSxNKX1mdW5jdGlvbiBOKFMpe3JldHVybiB0LmV4aXQoImNvZGVGZW5jZWQiKSxlKFMpfWZ1bmN0aW9uIF8oUyxPLEwpe2xldCBFPTA7cmV0dXJuIEI7ZnVuY3Rpb24gQihGKXtyZXR1cm4gUy5lbnRlcigibGluZUVuZGluZyIpLFMuY29uc3VtZShGKSxTLmV4aXQoImxpbmVFbmRpbmciKSxDfWZ1bmN0aW9uIEMoRil7cmV0dXJuIFMuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLFJ0KEYpP1d0KFMseiwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShGKTp6KEYpfWZ1bmN0aW9uIHooRil7cmV0dXJuIEY9PT1sPyhTLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLEEoRikpOkwoRil9ZnVuY3Rpb24gQShGKXtyZXR1cm4gRj09PWw/KEUrKyxTLmNvbnN1bWUoRiksQSk6RT49bz8oUy5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLFJ0KEYpP1d0KFMsJCwid2hpdGVzcGFjZSIpKEYpOiQoRikpOkwoRil9ZnVuY3Rpb24gJChGKXtyZXR1cm4gRj09PW51bGx8fHV0KEYpPyhTLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLE8oRikpOkwoRil9fX1mdW5jdGlvbiBwQ2EodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gbz09PW51bGw/cihvKToodC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShvKSx0LmV4aXQoImxpbmVFbmRpbmciKSxuKX1mdW5jdGlvbiBuKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihvKTplKG8pfX12YXIgSHJyLHU0ZSxxcnI9dSgoKT0+e2FzKCk7WXIoKTtIcnI9e3BhcnRpYWw6ITAsdG9rZW5pemU6cENhfSx1NGU9e2NvbmNyZXRlOiEwLG5hbWU6ImNvZGVGZW5jZWQiLHRva2VuaXplOnVDYX07aSh1Q2EsInRva2VuaXplQ29kZUZlbmNlZCIpO2kocENhLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIGhDYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKGQpe3JldHVybiB0LmVudGVyKCJjb2RlSW5kZW50ZWQiKSxXdCh0LG4sImxpbmVQcmVmaXgiLDUpKGQpfWZ1bmN0aW9uIG4oZCl7bGV0IGY9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBmJiZmWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJmZbMl0uc2xpY2VTZXJpYWxpemUoZlsxXSwhMCkubGVuZ3RoPj00P28oZCk6cihkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBkPT09bnVsbD9jKGQpOnV0KGQpP3QuYXR0ZW1wdChmQ2EsbyxjKShkKToodC5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLGwoZCkpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQ9PT1udWxsfHx1dChkKT8odC5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbyhkKSk6KHQuY29uc3VtZShkKSxsKX1mdW5jdGlvbiBjKGQpe3JldHVybiB0LmV4aXQoImNvZGVJbmRlbnRlZCIpLGUoZCl9fWZ1bmN0aW9uIG1DYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihvKTp1dChvKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShvKSx0LmV4aXQoImxpbmVFbmRpbmciKSxzKTpXdCh0LG4sImxpbmVQcmVmaXgiLDUpKG8pfWZ1bmN0aW9uIG4obyl7bGV0IGw9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBsJiZsWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJmxbMl0uc2xpY2VTZXJpYWxpemUobFsxXSwhMCkubGVuZ3RoPj00P2Uobyk6dXQobyk/cyhvKTpyKG8pfX12YXIgQnosZkNhLFZycj11KCgpPT57YXMoKTtZcigpO0J6PXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOmhDYX0sZkNhPXtwYXJ0aWFsOiEwLHRva2VuaXplOm1DYX07aShoQ2EsInRva2VuaXplQ29kZUluZGVudGVkIik7aShtQ2EsInRva2VuaXplRnVydGhlclN0YXJ0Iil9KTtmdW5jdGlvbiBnQ2EodCl7bGV0IGU9dC5sZW5ndGgtNCxyPTMsYSxzO2lmKCh0W3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fHRbcl1bMV0udHlwZT09PSJzcGFjZSIpJiYodFtlXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHx0W2VdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKGE9cjsrK2E8ZTspaWYodFthXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe3Rbcl1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIix0W2VdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIscis9MixlLT0yO2JyZWFrfX1mb3IoYT1yLTEsZSsrOysrYTw9ZTspcz09PXZvaWQgMD9hIT09ZSYmdFthXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYocz1hKTooYT09PWV8fHRbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJih0W3NdWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsYSE9PXMrMiYmKHRbc11bMV0uZW5kPXRbYS0xXVsxXS5lbmQsdC5zcGxpY2UocysyLGEtcy0yKSxlLT1hLXMtMixhPXMrMikscz12b2lkIDApO3JldHVybiB0fWZ1bmN0aW9uIGJDYSh0KXtyZXR1cm4gdCE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIHhDYSh0LGUscil7bGV0IGE9dGhpcyxzPTAsbixvO3JldHVybiBsO2Z1bmN0aW9uIGwoaCl7cmV0dXJuIHQuZW50ZXIoImNvZGVUZXh0IiksdC5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLGMoaCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PTk2Pyh0LmNvbnN1bWUoaCkscysrLGMpOih0LmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxkKGgpKX1mdW5jdGlvbiBkKGgpe3JldHVybiBoPT09bnVsbD9yKGgpOmg9PT0zMj8odC5lbnRlcigic3BhY2UiKSx0LmNvbnN1bWUoaCksdC5leGl0KCJzcGFjZSIpLGQpOmg9PT05Nj8obz10LmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbj0wLHAoaCkpOnV0KGgpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGgpLHQuZXhpdCgibGluZUVuZGluZyIpLGQpOih0LmVudGVyKCJjb2RlVGV4dERhdGEiKSxmKGgpKX1mdW5jdGlvbiBmKGgpe3JldHVybiBoPT09bnVsbHx8aD09PTMyfHxoPT09OTZ8fHV0KGgpPyh0LmV4aXQoImNvZGVUZXh0RGF0YSIpLGQoaCkpOih0LmNvbnN1bWUoaCksZil9ZnVuY3Rpb24gcChoKXtyZXR1cm4gaD09PTk2Pyh0LmNvbnN1bWUoaCksbisrLHApOm49PT1zPyh0LmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSx0LmV4aXQoImNvZGVUZXh0IiksZShoKSk6KG8udHlwZT0iY29kZVRleHREYXRhIixmKGgpKX19dmFyIEJMZSxqcnI9dSgoKT0+e1lyKCk7QkxlPXtuYW1lOiJjb2RlVGV4dCIscHJldmlvdXM6YkNhLHJlc29sdmU6Z0NhLHRva2VuaXplOnhDYX07aShnQ2EsInJlc29sdmVDb2RlVGV4dCIpO2koYkNhLCJwcmV2aW91cyIpO2koeENhLCJ0b2tlbml6ZUNvZGVUZXh0Iil9KTtmdW5jdGlvbiBIeih0LGUpe2xldCByPTA7aWYoZS5sZW5ndGg8MWU0KXQucHVzaCguLi5lKTtlbHNlIGZvcig7cjxlLmxlbmd0aDspdC5wdXNoKC4uLmUuc2xpY2UocixyKzFlNCkpLHIrPTFlNH12YXIgcXosSExlPXUoKCk9Pntxej1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTcGxpY2VCdWZmZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmxlZnQ9ZT9bLi4uZV06W10sdGhpcy5yaWdodD1bXX1nZXQoZSl7aWYoZTwwfHxlPj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK2UrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIGU8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbZV06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC1lK3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UoZSxyKXtsZXQgYT1yPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGE8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UoZSxhKTplPnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1hK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKGUpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWErdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UoZSxyLGEpe2xldCBzPXJ8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyhlKSk7bGV0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtcyxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBhJiZIeih0aGlzLmxlZnQsYSksbi5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2goZSl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaChlKX1wdXNoTWFueShlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLEh6KHRoaXMubGVmdCxlKX11bnNoaWZ0KGUpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaChlKX11bnNoaWZ0TWFueShlKXt0aGlzLnNldEN1cnNvcigwKSxIeih0aGlzLnJpZ2h0LGUucmV2ZXJzZSgpKX1zZXRDdXJzb3IoZSl7aWYoIShlPT09dGhpcy5sZWZ0Lmxlbmd0aHx8ZT50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fGU8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKGU8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHI9dGhpcy5sZWZ0LnNwbGljZShlLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7SHoodGhpcy5yaWdodCxyLnJldmVyc2UoKSl9ZWxzZXtsZXQgcj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLWUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtIeih0aGlzLmxlZnQsci5yZXZlcnNlKCkpfX19O2koSHosImNodW5rZWRQdXNoIil9KTtmdW5jdGlvbiBwNGUodCl7bGV0IGU9e30scj0tMSxhLHMsbixvLGwsYyxkLGY9bmV3IHF6KHQpO2Zvcig7KytyPGYubGVuZ3RoOyl7Zm9yKDtyIGluIGU7KXI9ZVtyXTtpZihhPWYuZ2V0KHIpLHImJmFbMV0udHlwZT09PSJjaHVua0Zsb3ciJiZmLmdldChyLTEpWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiJiYoYz1hWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPGMubGVuZ3RoJiZjW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiYmKG4rPTIpLG48Yy5sZW5ndGgmJmNbbl1bMV0udHlwZT09PSJjb250ZW50IikpZm9yKDsrK248Yy5sZW5ndGgmJmNbbl1bMV0udHlwZSE9PSJjb250ZW50IjspY1tuXVsxXS50eXBlPT09ImNodW5rVGV4dCImJihjW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKGFbMF09PT0iZW50ZXIiKWFbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKGUsdkNhKGYscikpLHI9ZVtyXSxkPSEwKTtlbHNlIGlmKGFbMV0uX2NvbnRhaW5lcil7Zm9yKG49cixzPXZvaWQgMDtuLS07KWlmKG89Zi5nZXQobiksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKHMmJihmLmdldChzKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLHM9bik7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7cyYmKGFbMV0uZW5kPXsuLi5mLmdldChzKVsxXS5zdGFydH0sbD1mLnNsaWNlKHMsciksbC51bnNoaWZ0KGEpLGYuc3BsaWNlKHMsci1zKzEsbCkpfX1yZXR1cm4gcnModCwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxmLnNsaWNlKDApKSwhZH1mdW5jdGlvbiB2Q2EodCxlKXtsZXQgcj10LmdldChlKVsxXSxhPXQuZ2V0KGUpWzJdLHM9ZS0xLG49W10sbz1yLl90b2tlbml6ZXI7b3x8KG89YS5wYXJzZXJbci5jb250ZW50VHlwZV0oci5zdGFydCksci5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2xldCBsPW8uZXZlbnRzLGM9W10sZD17fSxmLHAsaD0tMSxtPXIsdj0wLGI9MCxnPVtiXTtmb3IoO207KXtmb3IoO3QuZ2V0KCsrcylbMV0hPT1tOyk7bi5wdXNoKHMpLG0uX3Rva2VuaXplcnx8KGY9YS5zbGljZVN0cmVhbShtKSxtLm5leHR8fGYucHVzaChudWxsKSxwJiZvLmRlZmluZVNraXAobS5zdGFydCksbS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUoZiksbS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSkscD1tLG09bS5uZXh0fWZvcihtPXI7KytoPGwubGVuZ3RoOylsW2hdWzBdPT09ImV4aXQiJiZsW2gtMV1bMF09PT0iZW50ZXIiJiZsW2hdWzFdLnR5cGU9PT1sW2gtMV1bMV0udHlwZSYmbFtoXVsxXS5zdGFydC5saW5lIT09bFtoXVsxXS5lbmQubGluZSYmKGI9aCsxLGcucHVzaChiKSxtLl90b2tlbml6ZXI9dm9pZCAwLG0ucHJldmlvdXM9dm9pZCAwLG09bS5uZXh0KTtmb3Ioby5ldmVudHM9W10sbT8obS5fdG9rZW5pemVyPXZvaWQgMCxtLnByZXZpb3VzPXZvaWQgMCk6Zy5wb3AoKSxoPWcubGVuZ3RoO2gtLTspe2xldCB5PWwuc2xpY2UoZ1toXSxnW2grMV0pLGs9bi5wb3AoKTtjLnB1c2goW2ssayt5Lmxlbmd0aC0xXSksdC5zcGxpY2UoaywyLHkpfWZvcihjLnJldmVyc2UoKSxoPS0xOysraDxjLmxlbmd0aDspZFt2K2NbaF1bMF1dPXYrY1toXVsxXSx2Kz1jW2hdWzFdLWNbaF1bMF0tMTtyZXR1cm4gZH12YXIgcUxlPXUoKCk9PntHMCgpO0hMZSgpO0hMZSgpO2kocDRlLCJzdWJ0b2tlbml6ZSIpO2kodkNhLCJzdWJjb250ZW50Iil9KTtmdW5jdGlvbiB3Q2EodCl7cmV0dXJuIHA0ZSh0KSx0fWZ1bmN0aW9uIGtDYSh0LGUpe2xldCByO3JldHVybiBhO2Z1bmN0aW9uIGEobCl7cmV0dXJuIHQuZW50ZXIoImNvbnRlbnQiKSxyPXQuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLHMobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbD09PW51bGw/bihsKTp1dChsKT90LmNoZWNrKHlDYSxvLG4pKGwpOih0LmNvbnN1bWUobCkscyl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gdC5leGl0KCJjaHVua0NvbnRlbnQiKSx0LmV4aXQoImNvbnRlbnQiKSxlKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIHQuY29uc3VtZShsKSx0LmV4aXQoImNodW5rQ29udGVudCIpLHIubmV4dD10LmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6cn0pLHI9ci5uZXh0LHN9fWZ1bmN0aW9uIFNDYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKG8pe3JldHVybiB0LmV4aXQoImNodW5rQ29udGVudCIpLHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobyksdC5leGl0KCJsaW5lRW5kaW5nIiksV3QodCxuLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbHx8dXQobykpcmV0dXJuIHIobyk7bGV0IGw9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJmwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmbFsyXS5zbGljZVNlcmlhbGl6ZShsWzFdLCEwKS5sZW5ndGg+PTQ/ZShvKTp0LmludGVycnVwdChhLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3cscixlKShvKX19dmFyIFZMZSx5Q2EsVXJyPXUoKCk9PnthcygpO1lyKCk7cUxlKCk7VkxlPXtyZXNvbHZlOndDYSx0b2tlbml6ZTprQ2F9LHlDYT17cGFydGlhbDohMCx0b2tlbml6ZTpTQ2F9O2kod0NhLCJyZXNvbHZlQ29udGVudCIpO2koa0NhLCJ0b2tlbml6ZUNvbnRlbnQiKTtpKFNDYSwidG9rZW5pemVDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIGY0ZSh0LGUscixhLHMsbixvLGwsYyl7bGV0IGQ9Y3x8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGY9MDtyZXR1cm4gcDtmdW5jdGlvbiBwKHkpe3JldHVybiB5PT09NjA/KHQuZW50ZXIoYSksdC5lbnRlcihzKSx0LmVudGVyKG4pLHQuY29uc3VtZSh5KSx0LmV4aXQobiksaCk6eT09PW51bGx8fHk9PT0zMnx8eT09PTQxfHwkNih5KT9yKHkpOih0LmVudGVyKGEpLHQuZW50ZXIobyksdC5lbnRlcihsKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksYih5KSl9ZnVuY3Rpb24gaCh5KXtyZXR1cm4geT09PTYyPyh0LmVudGVyKG4pLHQuY29uc3VtZSh5KSx0LmV4aXQobiksdC5leGl0KHMpLHQuZXhpdChhKSxlKToodC5lbnRlcihsKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksbSh5KSl9ZnVuY3Rpb24gbSh5KXtyZXR1cm4geT09PTYyPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KGwpLGgoeSkpOnk9PT1udWxsfHx5PT09NjB8fHV0KHkpP3IoeSk6KHQuY29uc3VtZSh5KSx5PT09OTI/djptKX1mdW5jdGlvbiB2KHkpe3JldHVybiB5PT09NjB8fHk9PT02Mnx8eT09PTkyPyh0LmNvbnN1bWUoeSksbSk6bSh5KX1mdW5jdGlvbiBiKHkpe3JldHVybiFmJiYoeT09PW51bGx8fHk9PT00MXx8QnIoeSkpPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KGwpLHQuZXhpdChvKSx0LmV4aXQoYSksZSh5KSk6ZjxkJiZ5PT09NDA/KHQuY29uc3VtZSh5KSxmKyssYik6eT09PTQxPyh0LmNvbnN1bWUoeSksZi0tLGIpOnk9PT1udWxsfHx5PT09MzJ8fHk9PT00MHx8JDYoeSk/cih5KToodC5jb25zdW1lKHkpLHk9PT05Mj9nOmIpfWZ1bmN0aW9uIGcoeSl7cmV0dXJuIHk9PT00MHx8eT09PTQxfHx5PT09OTI/KHQuY29uc3VtZSh5KSxiKTpiKHkpfX12YXIgakxlPXUoKCk9PntZcigpO2koZjRlLCJmYWN0b3J5RGVzdGluYXRpb24iKX0pO2Z1bmN0aW9uIGg0ZSh0LGUscixhLHMsbil7bGV0IG89dGhpcyxsPTAsYztyZXR1cm4gZDtmdW5jdGlvbiBkKG0pe3JldHVybiB0LmVudGVyKGEpLHQuZW50ZXIocyksdC5jb25zdW1lKG0pLHQuZXhpdChzKSx0LmVudGVyKG4pLGZ9ZnVuY3Rpb24gZihtKXtyZXR1cm4gbD45OTl8fG09PT1udWxsfHxtPT09OTF8fG09PT05MyYmIWN8fG09PT05NCYmIWwmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIG8ucGFyc2VyLmNvbnN0cnVjdHM/cihtKTptPT09OTM/KHQuZXhpdChuKSx0LmVudGVyKHMpLHQuY29uc3VtZShtKSx0LmV4aXQocyksdC5leGl0KGEpLGUpOnV0KG0pPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG0pLHQuZXhpdCgibGluZUVuZGluZyIpLGYpOih0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSkscChtKSl9ZnVuY3Rpb24gcChtKXtyZXR1cm4gbT09PW51bGx8fG09PT05MXx8bT09PTkzfHx1dChtKXx8bCsrPjk5OT8odC5leGl0KCJjaHVua1N0cmluZyIpLGYobSkpOih0LmNvbnN1bWUobSksY3x8KGM9IVJ0KG0pKSxtPT09OTI/aDpwKX1mdW5jdGlvbiBoKG0pe3JldHVybiBtPT09OTF8fG09PT05Mnx8bT09PTkzPyh0LmNvbnN1bWUobSksbCsrLHApOnAobSl9fXZhciBVTGU9dSgoKT0+e1lyKCk7aShoNGUsImZhY3RvcnlMYWJlbCIpfSk7ZnVuY3Rpb24gbTRlKHQsZSxyLGEscyxuKXtsZXQgbztyZXR1cm4gbDtmdW5jdGlvbiBsKGgpe3JldHVybiBoPT09MzR8fGg9PT0zOXx8aD09PTQwPyh0LmVudGVyKGEpLHQuZW50ZXIocyksdC5jb25zdW1lKGgpLHQuZXhpdChzKSxvPWg9PT00MD80MTpoLGMpOnIoaCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PW8/KHQuZW50ZXIocyksdC5jb25zdW1lKGgpLHQuZXhpdChzKSx0LmV4aXQoYSksZSk6KHQuZW50ZXIobiksZChoKSl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gaD09PW8/KHQuZXhpdChuKSxjKG8pKTpoPT09bnVsbD9yKGgpOnV0KGgpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGgpLHQuZXhpdCgibGluZUVuZGluZyIpLFd0KHQsZCwibGluZVByZWZpeCIpKToodC5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGYoaCkpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGg9PT1vfHxoPT09bnVsbHx8dXQoaCk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSxkKGgpKToodC5jb25zdW1lKGgpLGg9PT05Mj9wOmYpfWZ1bmN0aW9uIHAoaCl7cmV0dXJuIGg9PT1vfHxoPT09OTI/KHQuY29uc3VtZShoKSxmKTpmKGgpfX12YXIgV0xlPXUoKCk9PnthcygpO1lyKCk7aShtNGUsImZhY3RvcnlUaXRsZSIpfSk7ZnVuY3Rpb24gUjYodCxlKXtsZXQgcjtyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiB1dChzKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShzKSx0LmV4aXQoImxpbmVFbmRpbmciKSxyPSEwLGEpOlJ0KHMpP1d0KHQsYSxyPyJsaW5lUHJlZml4IjoibGluZVN1ZmZpeCIpKHMpOmUocyl9fXZhciBHTGU9dSgoKT0+e2FzKCk7WXIoKTtpKFI2LCJmYWN0b3J5V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gQ0NhKHQsZSxyKXtsZXQgYT10aGlzLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihtKXtyZXR1cm4gdC5lbnRlcigiZGVmaW5pdGlvbiIpLG8obSl9ZnVuY3Rpb24gbyhtKXtyZXR1cm4gaDRlLmNhbGwoYSx0LGwsciwiZGVmaW5pdGlvbkxhYmVsIiwiZGVmaW5pdGlvbkxhYmVsTWFya2VyIiwiZGVmaW5pdGlvbkxhYmVsU3RyaW5nIikobSl9ZnVuY3Rpb24gbChtKXtyZXR1cm4gcz1IaShhLnNsaWNlU2VyaWFsaXplKGEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpLG09PT01OD8odC5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLHQuY29uc3VtZShtKSx0LmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxjKTpyKG0pfWZ1bmN0aW9uIGMobSl7cmV0dXJuIEJyKG0pP1I2KHQsZCkobSk6ZChtKX1mdW5jdGlvbiBkKG0pe3JldHVybiBmNGUodCxmLHIsImRlZmluaXRpb25EZXN0aW5hdGlvbiIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWwiLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3IiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nIikobSl9ZnVuY3Rpb24gZihtKXtyZXR1cm4gdC5hdHRlbXB0KE1DYSxwLHApKG0pfWZ1bmN0aW9uIHAobSl7cmV0dXJuIFJ0KG0pP1d0KHQsaCwid2hpdGVzcGFjZSIpKG0pOmgobSl9ZnVuY3Rpb24gaChtKXtyZXR1cm4gbT09PW51bGx8fHV0KG0pPyh0LmV4aXQoImRlZmluaXRpb24iKSxhLnBhcnNlci5kZWZpbmVkLnB1c2gocyksZShtKSk6cihtKX19ZnVuY3Rpb24gekNhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKGwpe3JldHVybiBCcihsKT9SNih0LHMpKGwpOnIobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbTRlKHQsbixyLCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBSdChsKT9XdCh0LG8sIndoaXRlc3BhY2UiKShsKTpvKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT1udWxsfHx1dChsKT9lKGwpOnIobCl9fXZhciBZTGUsTUNhLFdycj11KCgpPT57akxlKCk7VUxlKCk7YXMoKTtXTGUoKTtHTGUoKTtZcigpO3hwKCk7WUxlPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpDQ2F9LE1DYT17cGFydGlhbDohMCx0b2tlbml6ZTp6Q2F9O2koQ0NhLCJ0b2tlbml6ZURlZmluaXRpb24iKTtpKHpDYSwidG9rZW5pemVUaXRsZUJlZm9yZSIpfSk7ZnVuY3Rpb24gX0NhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiB0LmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSx0LmNvbnN1bWUobiksc31mdW5jdGlvbiBzKG4pe3JldHVybiB1dChuKT8odC5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSxlKG4pKTpyKG4pfX12YXIgS0xlLEdycj11KCgpPT57WXIoKTtLTGU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6X0NhfTtpKF9DYSwidG9rZW5pemVIYXJkQnJlYWtFc2NhcGUiKX0pO2Z1bmN0aW9uIFRDYSh0LGUpe2xldCByPXQubGVuZ3RoLTIsYT0zLHMsbjtyZXR1cm4gdFthXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoYSs9Miksci0yPmEmJnRbcl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHItPTIpLHRbcl1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoYT09PXItMXx8ci00PmEmJnRbci0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHItPWErMT09PXI/Mjo0KSxyPmEmJihzPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6dFthXVsxXS5zdGFydCxlbmQ6dFtyXVsxXS5lbmR9LG49e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6dFthXVsxXS5zdGFydCxlbmQ6dFtyXVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxycyh0LGEsci1hKzEsW1siZW50ZXIiLHMsZV0sWyJlbnRlciIsbixlXSxbImV4aXQiLG4sZV0sWyJleGl0IixzLGVdXSkpLHR9ZnVuY3Rpb24gTENhKHQsZSxyKXtsZXQgYT0wO3JldHVybiBzO2Z1bmN0aW9uIHMoZil7cmV0dXJuIHQuZW50ZXIoImF0eEhlYWRpbmciKSxuKGYpfWZ1bmN0aW9uIG4oZil7cmV0dXJuIHQuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8oZil9ZnVuY3Rpb24gbyhmKXtyZXR1cm4gZj09PTM1JiZhKys8Nj8odC5jb25zdW1lKGYpLG8pOmY9PT1udWxsfHxCcihmKT8odC5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKGYpKTpyKGYpfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGY9PT0zNT8odC5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksYyhmKSk6Zj09PW51bGx8fHV0KGYpPyh0LmV4aXQoImF0eEhlYWRpbmciKSxlKGYpKTpSdChmKT9XdCh0LGwsIndoaXRlc3BhY2UiKShmKToodC5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxkKGYpKX1mdW5jdGlvbiBjKGYpe3JldHVybiBmPT09MzU/KHQuY29uc3VtZShmKSxjKToodC5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKGYpKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09bnVsbHx8Zj09PTM1fHxCcihmKT8odC5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLGwoZikpOih0LmNvbnN1bWUoZiksZCl9fXZhciBaTGUsWXJyPXUoKCk9PnthcygpO1lyKCk7RzAoKTtaTGU9e25hbWU6ImhlYWRpbmdBdHgiLHJlc29sdmU6VENhLHRva2VuaXplOkxDYX07aShUQ2EsInJlc29sdmVIZWFkaW5nQXR4Iik7aShMQ2EsInRva2VuaXplSGVhZGluZ0F0eCIpfSk7dmFyIEtycixRTGUsWnJyPXUoKCk9PntLcnI9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSxRTGU9WyJwcmUiLCJzY3JpcHQiLCJzdHlsZSIsInRleHRhcmVhIl19KTtmdW5jdGlvbiBBQ2EodCl7bGV0IGU9dC5sZW5ndGg7Zm9yKDtlLS0mJiEodFtlXVswXT09PSJlbnRlciImJnRbZV1bMV0udHlwZT09PSJodG1sRmxvdyIpOyk7cmV0dXJuIGU+MSYmdFtlLTJdWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJih0W2VdWzFdLnN0YXJ0PXRbZS0yXVsxXS5zdGFydCx0W2UrMV1bMV0uc3RhcnQ9dFtlLTJdWzFdLnN0YXJ0LHQuc3BsaWNlKGUtMiwyKSksdH1mdW5jdGlvbiBFQ2EodCxlLHIpe2xldCBhPXRoaXMscyxuLG8sbCxjO3JldHVybiBkO2Z1bmN0aW9uIGQoVCl7cmV0dXJuIGYoVCl9ZnVuY3Rpb24gZihUKXtyZXR1cm4gdC5lbnRlcigiaHRtbEZsb3ciKSx0LmVudGVyKCJodG1sRmxvd0RhdGEiKSx0LmNvbnN1bWUoVCkscH1mdW5jdGlvbiBwKFQpe3JldHVybiBUPT09MzM/KHQuY29uc3VtZShUKSxoKTpUPT09NDc/KHQuY29uc3VtZShUKSxuPSEwLGIpOlQ9PT02Mz8odC5jb25zdW1lKFQpLHM9MyxhLmludGVycnVwdD9lOkQpOkpzKFQpPyh0LmNvbnN1bWUoVCksbz1TdHJpbmcuZnJvbUNoYXJDb2RlKFQpLGcpOnIoVCl9ZnVuY3Rpb24gaChUKXtyZXR1cm4gVD09PTQ1Pyh0LmNvbnN1bWUoVCkscz0yLG0pOlQ9PT05MT8odC5jb25zdW1lKFQpLHM9NSxsPTAsdik6SnMoVCk/KHQuY29uc3VtZShUKSxzPTQsYS5pbnRlcnJ1cHQ/ZTpEKTpyKFQpfWZ1bmN0aW9uIG0oVCl7cmV0dXJuIFQ9PT00NT8odC5jb25zdW1lKFQpLGEuaW50ZXJydXB0P2U6RCk6cihUKX1mdW5jdGlvbiB2KFQpe2xldCBXPSJDREFUQVsiO3JldHVybiBUPT09Vy5jaGFyQ29kZUF0KGwrKyk/KHQuY29uc3VtZShUKSxsPT09Vy5sZW5ndGg/YS5pbnRlcnJ1cHQ/ZTp6OnYpOnIoVCl9ZnVuY3Rpb24gYihUKXtyZXR1cm4gSnMoVCk/KHQuY29uc3VtZShUKSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoVCksZyk6cihUKX1mdW5jdGlvbiBnKFQpe2lmKFQ9PT1udWxsfHxUPT09NDd8fFQ9PT02Mnx8QnIoVCkpe2xldCBXPVQ9PT00NyxwZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIVcmJiFuJiZRTGUuaW5jbHVkZXMocGUpPyhzPTEsYS5pbnRlcnJ1cHQ/ZShUKTp6KFQpKTpLcnIuaW5jbHVkZXMoby50b0xvd2VyQ2FzZSgpKT8ocz02LFc/KHQuY29uc3VtZShUKSx5KTphLmludGVycnVwdD9lKFQpOnooVCkpOihzPTcsYS5pbnRlcnJ1cHQmJiFhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihUKTpuP2soVCk6TShUKSl9cmV0dXJuIFQ9PT00NXx8QmkoVCk/KHQuY29uc3VtZShUKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFQpLGcpOnIoVCl9ZnVuY3Rpb24geShUKXtyZXR1cm4gVD09PTYyPyh0LmNvbnN1bWUoVCksYS5pbnRlcnJ1cHQ/ZTp6KTpyKFQpfWZ1bmN0aW9uIGsoVCl7cmV0dXJuIFJ0KFQpPyh0LmNvbnN1bWUoVCksayk6QihUKX1mdW5jdGlvbiBNKFQpe3JldHVybiBUPT09NDc/KHQuY29uc3VtZShUKSxCKTpUPT09NTh8fFQ9PT05NXx8SnMoVCk/KHQuY29uc3VtZShUKSxOKTpSdChUKT8odC5jb25zdW1lKFQpLE0pOkIoVCl9ZnVuY3Rpb24gTihUKXtyZXR1cm4gVD09PTQ1fHxUPT09NDZ8fFQ9PT01OHx8VD09PTk1fHxCaShUKT8odC5jb25zdW1lKFQpLE4pOl8oVCl9ZnVuY3Rpb24gXyhUKXtyZXR1cm4gVD09PTYxPyh0LmNvbnN1bWUoVCksUyk6UnQoVCk/KHQuY29uc3VtZShUKSxfKTpNKFQpfWZ1bmN0aW9uIFMoVCl7cmV0dXJuIFQ9PT1udWxsfHxUPT09NjB8fFQ9PT02MXx8VD09PTYyfHxUPT09OTY/cihUKTpUPT09MzR8fFQ9PT0zOT8odC5jb25zdW1lKFQpLGM9VCxPKTpSdChUKT8odC5jb25zdW1lKFQpLFMpOkwoVCl9ZnVuY3Rpb24gTyhUKXtyZXR1cm4gVD09PWM/KHQuY29uc3VtZShUKSxjPW51bGwsRSk6VD09PW51bGx8fHV0KFQpP3IoVCk6KHQuY29uc3VtZShUKSxPKX1mdW5jdGlvbiBMKFQpe3JldHVybiBUPT09bnVsbHx8VD09PTM0fHxUPT09Mzl8fFQ9PT00N3x8VD09PTYwfHxUPT09NjF8fFQ9PT02Mnx8VD09PTk2fHxCcihUKT9fKFQpOih0LmNvbnN1bWUoVCksTCl9ZnVuY3Rpb24gRShUKXtyZXR1cm4gVD09PTQ3fHxUPT09NjJ8fFJ0KFQpP00oVCk6cihUKX1mdW5jdGlvbiBCKFQpe3JldHVybiBUPT09NjI/KHQuY29uc3VtZShUKSxDKTpyKFQpfWZ1bmN0aW9uIEMoVCl7cmV0dXJuIFQ9PT1udWxsfHx1dChUKT96KFQpOlJ0KFQpPyh0LmNvbnN1bWUoVCksQyk6cihUKX1mdW5jdGlvbiB6KFQpe3JldHVybiBUPT09NDUmJnM9PT0yPyh0LmNvbnN1bWUoVCksWSk6VD09PTYwJiZzPT09MT8odC5jb25zdW1lKFQpLEcpOlQ9PT02MiYmcz09PTQ/KHQuY29uc3VtZShUKSxRKTpUPT09NjMmJnM9PT0zPyh0LmNvbnN1bWUoVCksRCk6VD09PTkzJiZzPT09NT8odC5jb25zdW1lKFQpLGRlKTp1dChUKSYmKHM9PT02fHxzPT09Nyk/KHQuZXhpdCgiaHRtbEZsb3dEYXRhIiksdC5jaGVjayhEQ2EsZmUsQSkoVCkpOlQ9PT1udWxsfHx1dChUKT8odC5leGl0KCJodG1sRmxvd0RhdGEiKSxBKFQpKToodC5jb25zdW1lKFQpLHopfWZ1bmN0aW9uIEEoVCl7cmV0dXJuIHQuY2hlY2soJENhLCQsZmUpKFQpfWZ1bmN0aW9uICQoVCl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoVCksdC5leGl0KCJsaW5lRW5kaW5nIiksRn1mdW5jdGlvbiBGKFQpe3JldHVybiBUPT09bnVsbHx8dXQoVCk/QShUKToodC5lbnRlcigiaHRtbEZsb3dEYXRhIikseihUKSl9ZnVuY3Rpb24gWShUKXtyZXR1cm4gVD09PTQ1Pyh0LmNvbnN1bWUoVCksRCk6eihUKX1mdW5jdGlvbiBHKFQpe3JldHVybiBUPT09NDc/KHQuY29uc3VtZShUKSxvPSIiLFopOnooVCl9ZnVuY3Rpb24gWihUKXtpZihUPT09NjIpe2xldCBXPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4gUUxlLmluY2x1ZGVzKFcpPyh0LmNvbnN1bWUoVCksUSk6eihUKX1yZXR1cm4gSnMoVCkmJm8ubGVuZ3RoPDg/KHQuY29uc3VtZShUKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFQpLFopOnooVCl9ZnVuY3Rpb24gZGUoVCl7cmV0dXJuIFQ9PT05Mz8odC5jb25zdW1lKFQpLEQpOnooVCl9ZnVuY3Rpb24gRChUKXtyZXR1cm4gVD09PTYyPyh0LmNvbnN1bWUoVCksUSk6VD09PTQ1JiZzPT09Mj8odC5jb25zdW1lKFQpLEQpOnooVCl9ZnVuY3Rpb24gUShUKXtyZXR1cm4gVD09PW51bGx8fHV0KFQpPyh0LmV4aXQoImh0bWxGbG93RGF0YSIpLGZlKFQpKToodC5jb25zdW1lKFQpLFEpfWZ1bmN0aW9uIGZlKFQpe3JldHVybiB0LmV4aXQoImh0bWxGbG93IiksZShUKX19ZnVuY3Rpb24gSUNhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIHV0KG8pPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGluZUVuZGluZyIpLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gYS5wYXJzZXIubGF6eVthLm5vdygpLmxpbmVdP3Iobyk6ZShvKX19ZnVuY3Rpb24gUENhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKHMpLHQuZXhpdCgibGluZUVuZGluZyIpLHQuYXR0ZW1wdChRMCxlLHIpfX12YXIgWExlLERDYSwkQ2EsUXJyPXUoKCk9PntZcigpO1pycigpO280ZSgpO1hMZT17Y29uY3JldGU6ITAsbmFtZToiaHRtbEZsb3ciLHJlc29sdmVUbzpBQ2EsdG9rZW5pemU6RUNhfSxEQ2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6UENhfSwkQ2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6SUNhfTtpKEFDYSwicmVzb2x2ZVRvSHRtbEZsb3ciKTtpKEVDYSwidG9rZW5pemVIdG1sRmxvdyIpO2koSUNhLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb25TdGFydCIpO2koUENhLCJ0b2tlbml6ZUJsYW5rTGluZUJlZm9yZSIpfSk7ZnVuY3Rpb24gTkNhKHQsZSxyKXtsZXQgYT10aGlzLHMsbixvO3JldHVybiBsO2Z1bmN0aW9uIGwoRCl7cmV0dXJuIHQuZW50ZXIoImh0bWxUZXh0IiksdC5lbnRlcigiaHRtbFRleHREYXRhIiksdC5jb25zdW1lKEQpLGN9ZnVuY3Rpb24gYyhEKXtyZXR1cm4gRD09PTMzPyh0LmNvbnN1bWUoRCksZCk6RD09PTQ3Pyh0LmNvbnN1bWUoRCksXyk6RD09PTYzPyh0LmNvbnN1bWUoRCksTSk6SnMoRCk/KHQuY29uc3VtZShEKSxMKTpyKEQpfWZ1bmN0aW9uIGQoRCl7cmV0dXJuIEQ9PT00NT8odC5jb25zdW1lKEQpLGYpOkQ9PT05MT8odC5jb25zdW1lKEQpLG49MCx2KTpKcyhEKT8odC5jb25zdW1lKEQpLGspOnIoRCl9ZnVuY3Rpb24gZihEKXtyZXR1cm4gRD09PTQ1Pyh0LmNvbnN1bWUoRCksbSk6cihEKX1mdW5jdGlvbiBwKEQpe3JldHVybiBEPT09bnVsbD9yKEQpOkQ9PT00NT8odC5jb25zdW1lKEQpLGgpOnV0KEQpPyhvPXAsRyhEKSk6KHQuY29uc3VtZShEKSxwKX1mdW5jdGlvbiBoKEQpe3JldHVybiBEPT09NDU/KHQuY29uc3VtZShEKSxtKTpwKEQpfWZ1bmN0aW9uIG0oRCl7cmV0dXJuIEQ9PT02Mj9ZKEQpOkQ9PT00NT9oKEQpOnAoRCl9ZnVuY3Rpb24gdihEKXtsZXQgUT0iQ0RBVEFbIjtyZXR1cm4gRD09PVEuY2hhckNvZGVBdChuKyspPyh0LmNvbnN1bWUoRCksbj09PVEubGVuZ3RoP2I6dik6cihEKX1mdW5jdGlvbiBiKEQpe3JldHVybiBEPT09bnVsbD9yKEQpOkQ9PT05Mz8odC5jb25zdW1lKEQpLGcpOnV0KEQpPyhvPWIsRyhEKSk6KHQuY29uc3VtZShEKSxiKX1mdW5jdGlvbiBnKEQpe3JldHVybiBEPT09OTM/KHQuY29uc3VtZShEKSx5KTpiKEQpfWZ1bmN0aW9uIHkoRCl7cmV0dXJuIEQ9PT02Mj9ZKEQpOkQ9PT05Mz8odC5jb25zdW1lKEQpLHkpOmIoRCl9ZnVuY3Rpb24gayhEKXtyZXR1cm4gRD09PW51bGx8fEQ9PT02Mj9ZKEQpOnV0KEQpPyhvPWssRyhEKSk6KHQuY29uc3VtZShEKSxrKX1mdW5jdGlvbiBNKEQpe3JldHVybiBEPT09bnVsbD9yKEQpOkQ9PT02Mz8odC5jb25zdW1lKEQpLE4pOnV0KEQpPyhvPU0sRyhEKSk6KHQuY29uc3VtZShEKSxNKX1mdW5jdGlvbiBOKEQpe3JldHVybiBEPT09NjI/WShEKTpNKEQpfWZ1bmN0aW9uIF8oRCl7cmV0dXJuIEpzKEQpPyh0LmNvbnN1bWUoRCksUyk6cihEKX1mdW5jdGlvbiBTKEQpe3JldHVybiBEPT09NDV8fEJpKEQpPyh0LmNvbnN1bWUoRCksUyk6TyhEKX1mdW5jdGlvbiBPKEQpe3JldHVybiB1dChEKT8obz1PLEcoRCkpOlJ0KEQpPyh0LmNvbnN1bWUoRCksTyk6WShEKX1mdW5jdGlvbiBMKEQpe3JldHVybiBEPT09NDV8fEJpKEQpPyh0LmNvbnN1bWUoRCksTCk6RD09PTQ3fHxEPT09NjJ8fEJyKEQpP0UoRCk6cihEKX1mdW5jdGlvbiBFKEQpe3JldHVybiBEPT09NDc/KHQuY29uc3VtZShEKSxZKTpEPT09NTh8fEQ9PT05NXx8SnMoRCk/KHQuY29uc3VtZShEKSxCKTp1dChEKT8obz1FLEcoRCkpOlJ0KEQpPyh0LmNvbnN1bWUoRCksRSk6WShEKX1mdW5jdGlvbiBCKEQpe3JldHVybiBEPT09NDV8fEQ9PT00Nnx8RD09PTU4fHxEPT09OTV8fEJpKEQpPyh0LmNvbnN1bWUoRCksQik6QyhEKX1mdW5jdGlvbiBDKEQpe3JldHVybiBEPT09NjE/KHQuY29uc3VtZShEKSx6KTp1dChEKT8obz1DLEcoRCkpOlJ0KEQpPyh0LmNvbnN1bWUoRCksQyk6RShEKX1mdW5jdGlvbiB6KEQpe3JldHVybiBEPT09bnVsbHx8RD09PTYwfHxEPT09NjF8fEQ9PT02Mnx8RD09PTk2P3IoRCk6RD09PTM0fHxEPT09Mzk/KHQuY29uc3VtZShEKSxzPUQsQSk6dXQoRCk/KG89eixHKEQpKTpSdChEKT8odC5jb25zdW1lKEQpLHopOih0LmNvbnN1bWUoRCksJCl9ZnVuY3Rpb24gQShEKXtyZXR1cm4gRD09PXM/KHQuY29uc3VtZShEKSxzPXZvaWQgMCxGKTpEPT09bnVsbD9yKEQpOnV0KEQpPyhvPUEsRyhEKSk6KHQuY29uc3VtZShEKSxBKX1mdW5jdGlvbiAkKEQpe3JldHVybiBEPT09bnVsbHx8RD09PTM0fHxEPT09Mzl8fEQ9PT02MHx8RD09PTYxfHxEPT09OTY/cihEKTpEPT09NDd8fEQ9PT02Mnx8QnIoRCk/RShEKToodC5jb25zdW1lKEQpLCQpfWZ1bmN0aW9uIEYoRCl7cmV0dXJuIEQ9PT00N3x8RD09PTYyfHxCcihEKT9FKEQpOnIoRCl9ZnVuY3Rpb24gWShEKXtyZXR1cm4gRD09PTYyPyh0LmNvbnN1bWUoRCksdC5leGl0KCJodG1sVGV4dERhdGEiKSx0LmV4aXQoImh0bWxUZXh0IiksZSk6cihEKX1mdW5jdGlvbiBHKEQpe3JldHVybiB0LmV4aXQoImh0bWxUZXh0RGF0YSIpLHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoRCksdC5leGl0KCJsaW5lRW5kaW5nIiksWn1mdW5jdGlvbiBaKEQpe3JldHVybiBSdChEKT9XdCh0LGRlLCJsaW5lUHJlZml4IixhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEQpOmRlKEQpfWZ1bmN0aW9uIGRlKEQpe3JldHVybiB0LmVudGVyKCJodG1sVGV4dERhdGEiKSxvKEQpfX12YXIgSkxlLFhycj11KCgpPT57YXMoKTtZcigpO0pMZT17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOk5DYX07aShOQ2EsInRva2VuaXplSHRtbFRleHQiKX0pO2Z1bmN0aW9uIEJDYSh0KXtsZXQgZT0tMSxyPVtdO2Zvcig7KytlPHQubGVuZ3RoOyl7bGV0IGE9dFtlXVsxXTtpZihyLnB1c2godFtlXSksYS50eXBlPT09ImxhYmVsSW1hZ2UifHxhLnR5cGU9PT0ibGFiZWxMaW5rInx8YS50eXBlPT09ImxhYmVsRW5kIil7bGV0IHM9YS50eXBlPT09ImxhYmVsSW1hZ2UiPzQ6MjthLnR5cGU9ImRhdGEiLGUrPXN9fXJldHVybiB0Lmxlbmd0aCE9PXIubGVuZ3RoJiZycyh0LDAsdC5sZW5ndGgsciksdH1mdW5jdGlvbiBIQ2EodCxlKXtsZXQgcj10Lmxlbmd0aCxhPTAscyxuLG8sbDtmb3IoO3ItLTspaWYocz10W3JdWzFdLG4pe2lmKHMudHlwZT09PSJsaW5rInx8cy50eXBlPT09ImxhYmVsTGluayImJnMuX2luYWN0aXZlKWJyZWFrO3Rbcl1bMF09PT0iZW50ZXIiJiZzLnR5cGU9PT0ibGFiZWxMaW5rIiYmKHMuX2luYWN0aXZlPSEwKX1lbHNlIGlmKG8pe2lmKHRbcl1bMF09PT0iZW50ZXIiJiYocy50eXBlPT09ImxhYmVsSW1hZ2UifHxzLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFzLl9iYWxhbmNlZCYmKG49cixzLnR5cGUhPT0ibGFiZWxMaW5rIikpe2E9MjticmVha319ZWxzZSBzLnR5cGU9PT0ibGFiZWxFbmQiJiYobz1yKTtsZXQgYz17dHlwZTp0W25dWzFdLnR5cGU9PT0ibGFiZWxMaW5rIj8ibGluayI6ImltYWdlIixzdGFydDp7Li4udFtuXVsxXS5zdGFydH0sZW5kOnsuLi50W3QubGVuZ3RoLTFdWzFdLmVuZH19LGQ9e3R5cGU6ImxhYmVsIixzdGFydDp7Li4udFtuXVsxXS5zdGFydH0sZW5kOnsuLi50W29dWzFdLmVuZH19LGY9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLnRbbithKzJdWzFdLmVuZH0sZW5kOnsuLi50W28tMl1bMV0uc3RhcnR9fTtyZXR1cm4gbD1bWyJlbnRlciIsYyxlXSxbImVudGVyIixkLGVdXSxsPUNzKGwsdC5zbGljZShuKzEsbithKzMpKSxsPUNzKGwsW1siZW50ZXIiLGYsZV1dKSxsPUNzKGwseXAoZS5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsdC5zbGljZShuK2ErNCxvLTMpLGUpKSxsPUNzKGwsW1siZXhpdCIsZixlXSx0W28tMl0sdFtvLTFdLFsiZXhpdCIsZCxlXV0pLGw9Q3MobCx0LnNsaWNlKG8rMSkpLGw9Q3MobCxbWyJleGl0IixjLGVdXSkscnModCxuLHQubGVuZ3RoLGwpLHR9ZnVuY3Rpb24gcUNhKHQsZSxyKXtsZXQgYT10aGlzLHM9YS5ldmVudHMubGVuZ3RoLG4sbztmb3IoO3MtLTspaWYoKGEuZXZlbnRzW3NdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGEuZXZlbnRzW3NdWzFdLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFhLmV2ZW50c1tzXVsxXS5fYmFsYW5jZWQpe249YS5ldmVudHNbc11bMV07YnJlYWt9cmV0dXJuIGw7ZnVuY3Rpb24gbChoKXtyZXR1cm4gbj9uLl9pbmFjdGl2ZT9wKGgpOihvPWEucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoSGkoYS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOmEubm93KCl9KSkpLHQuZW50ZXIoImxhYmVsRW5kIiksdC5lbnRlcigibGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoaCksdC5leGl0KCJsYWJlbE1hcmtlciIpLHQuZXhpdCgibGFiZWxFbmQiKSxjKTpyKGgpfWZ1bmN0aW9uIGMoaCl7cmV0dXJuIGg9PT00MD90LmF0dGVtcHQoT0NhLGYsbz9mOnApKGgpOmg9PT05MT90LmF0dGVtcHQoUkNhLGYsbz9kOnApKGgpOm8/ZihoKTpwKGgpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIHQuYXR0ZW1wdChGQ2EsZixwKShoKX1mdW5jdGlvbiBmKGgpe3JldHVybiBlKGgpfWZ1bmN0aW9uIHAoaCl7cmV0dXJuIG4uX2JhbGFuY2VkPSEwLHIoaCl9fWZ1bmN0aW9uIFZDYSh0LGUscil7cmV0dXJuIGE7ZnVuY3Rpb24gYShwKXtyZXR1cm4gdC5lbnRlcigicmVzb3VyY2UiKSx0LmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoInJlc291cmNlTWFya2VyIiksc31mdW5jdGlvbiBzKHApe3JldHVybiBCcihwKT9SNih0LG4pKHApOm4ocCl9ZnVuY3Rpb24gbihwKXtyZXR1cm4gcD09PTQxP2YocCk6ZjRlKHQsbyxsLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikocCl9ZnVuY3Rpb24gbyhwKXtyZXR1cm4gQnIocCk/UjYodCxjKShwKTpmKHApfWZ1bmN0aW9uIGwocCl7cmV0dXJuIHIocCl9ZnVuY3Rpb24gYyhwKXtyZXR1cm4gcD09PTM0fHxwPT09Mzl8fHA9PT00MD9tNGUodCxkLHIsInJlc291cmNlVGl0bGUiLCJyZXNvdXJjZVRpdGxlTWFya2VyIiwicmVzb3VyY2VUaXRsZVN0cmluZyIpKHApOmYocCl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gQnIocCk/UjYodCxmKShwKTpmKHApfWZ1bmN0aW9uIGYocCl7cmV0dXJuIHA9PT00MT8odC5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSx0LmNvbnN1bWUocCksdC5leGl0KCJyZXNvdXJjZU1hcmtlciIpLHQuZXhpdCgicmVzb3VyY2UiKSxlKTpyKHApfX1mdW5jdGlvbiBqQ2EodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gaDRlLmNhbGwoYSx0LG4sbywicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIikobCl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gYS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhIaShhLnNsaWNlU2VyaWFsaXplKGEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpKT9lKGwpOnIobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gcihsKX19ZnVuY3Rpb24gVUNhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiB0LmVudGVyKCJyZWZlcmVuY2UiKSx0LmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSxzfWZ1bmN0aW9uIHMobil7cmV0dXJuIG49PT05Mz8odC5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKG4pLHQuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksdC5leGl0KCJyZWZlcmVuY2UiKSxlKTpyKG4pfX12YXIgRjYsT0NhLFJDYSxGQ2EsZzRlPXUoKCk9PntqTGUoKTtVTGUoKTtXTGUoKTtHTGUoKTtZcigpO0cwKCk7eHAoKTtSeigpO0Y2PXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDpCQ2EscmVzb2x2ZVRvOkhDYSx0b2tlbml6ZTpxQ2F9LE9DYT17dG9rZW5pemU6VkNhfSxSQ2E9e3Rva2VuaXplOmpDYX0sRkNhPXt0b2tlbml6ZTpVQ2F9O2koQkNhLCJyZXNvbHZlQWxsTGFiZWxFbmQiKTtpKEhDYSwicmVzb2x2ZVRvTGFiZWxFbmQiKTtpKHFDYSwidG9rZW5pemVMYWJlbEVuZCIpO2koVkNhLCJ0b2tlbml6ZVJlc291cmNlIik7aShqQ2EsInRva2VuaXplUmVmZXJlbmNlRnVsbCIpO2koVUNhLCJ0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZCIpfSk7ZnVuY3Rpb24gV0NhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobCl7cmV0dXJuIHQuZW50ZXIoImxhYmVsSW1hZ2UiKSx0LmVudGVyKCJsYWJlbEltYWdlTWFya2VyIiksdC5jb25zdW1lKGwpLHQuZXhpdCgibGFiZWxJbWFnZU1hcmtlciIpLG59ZnVuY3Rpb24gbihsKXtyZXR1cm4gbD09PTkxPyh0LmVudGVyKCJsYWJlbE1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoImxhYmVsTWFya2VyIiksdC5leGl0KCJsYWJlbEltYWdlIiksbyk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBsPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGEucGFyc2VyLmNvbnN0cnVjdHM/cihsKTplKGwpfX12YXIgZURlLEpycj11KCgpPT57ZzRlKCk7ZURlPXtuYW1lOiJsYWJlbFN0YXJ0SW1hZ2UiLHJlc29sdmVBbGw6RjYucmVzb2x2ZUFsbCx0b2tlbml6ZTpXQ2F9O2koV0NhLCJ0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZSIpfSk7ZnVuY3Rpb24gR0NhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIHQuZW50ZXIoImxhYmVsTGluayIpLHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsTGluayIpLG59ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBhLnBhcnNlci5jb25zdHJ1Y3RzP3Iobyk6ZShvKX19dmFyIHREZSxlYXI9dSgoKT0+e2c0ZSgpO3REZT17bmFtZToibGFiZWxTdGFydExpbmsiLHJlc29sdmVBbGw6RjYucmVzb2x2ZUFsbCx0b2tlbml6ZTpHQ2F9O2koR0NhLCJ0b2tlbml6ZUxhYmVsU3RhcnRMaW5rIil9KTtmdW5jdGlvbiBZQ2EodCxlKXtyZXR1cm4gcjtmdW5jdGlvbiByKGEpe3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGEpLHQuZXhpdCgibGluZUVuZGluZyIpLFd0KHQsZSwibGluZVByZWZpeCIpfX12YXIgVnosdGFyPXUoKCk9PnthcygpO1lyKCk7Vno9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOllDYX07aShZQ2EsInRva2VuaXplTGluZUVuZGluZyIpfSk7ZnVuY3Rpb24gS0NhKHQsZSxyKXtsZXQgYT0wLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihkKXtyZXR1cm4gdC5lbnRlcigidGhlbWF0aWNCcmVhayIpLG8oZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gcz1kLGwoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PXM/KHQuZW50ZXIoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLGMoZCkpOmE+PTMmJihkPT09bnVsbHx8dXQoZCkpPyh0LmV4aXQoInRoZW1hdGljQnJlYWsiKSxlKGQpKTpyKGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT1zPyh0LmNvbnN1bWUoZCksYSsrLGMpOih0LmV4aXQoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLFJ0KGQpP1d0KHQsbCwid2hpdGVzcGFjZSIpKGQpOmwoZCkpfX12YXIgQjYsckRlPXUoKCk9PnthcygpO1lyKCk7QjY9e25hbWU6InRoZW1hdGljQnJlYWsiLHRva2VuaXplOktDYX07aShLQ2EsInRva2VuaXplVGhlbWF0aWNCcmVhayIpfSk7ZnVuY3Rpb24gWENhKHQsZSxyKXtsZXQgYT10aGlzLHM9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdLG49cyYmc1sxXS50eXBlPT09ImxpbmVQcmVmaXgiP3NbMl0uc2xpY2VTZXJpYWxpemUoc1sxXSwhMCkubGVuZ3RoOjAsbz0wO3JldHVybiBsO2Z1bmN0aW9uIGwobSl7bGV0IHY9YS5jb250YWluZXJTdGF0ZS50eXBlfHwobT09PTQyfHxtPT09NDN8fG09PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYodj09PSJsaXN0VW5vcmRlcmVkIj8hYS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fG09PT1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpFeihtKSl7aWYoYS5jb250YWluZXJTdGF0ZS50eXBlfHwoYS5jb250YWluZXJTdGF0ZS50eXBlPXYsdC5lbnRlcih2LHtfY29udGFpbmVyOiEwfSkpLHY9PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksbT09PTQyfHxtPT09NDU/dC5jaGVjayhCNixyLGQpKG0pOmQobSk7aWYoIWEuaW50ZXJydXB0fHxtPT09NDkpcmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksdC5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLGMobSl9cmV0dXJuIHIobSl9ZnVuY3Rpb24gYyhtKXtyZXR1cm4gRXoobSkmJisrbzwxMD8odC5jb25zdW1lKG0pLGMpOighYS5pbnRlcnJ1cHR8fG88MikmJihhLmNvbnRhaW5lclN0YXRlLm1hcmtlcj9tPT09YS5jb250YWluZXJTdGF0ZS5tYXJrZXI6bT09PTQxfHxtPT09NDYpPyh0LmV4aXQoImxpc3RJdGVtVmFsdWUiKSxkKG0pKTpyKG0pfWZ1bmN0aW9uIGQobSl7cmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtTWFya2VyIiksdC5jb25zdW1lKG0pLHQuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxhLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8bSx0LmNoZWNrKFEwLGEuaW50ZXJydXB0P3I6Zix0LmF0dGVtcHQoWkNhLGgscCkpfWZ1bmN0aW9uIGYobSl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxuKyssaChtKX1mdW5jdGlvbiBwKG0pe3JldHVybiBSdChtKT8odC5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksdC5jb25zdW1lKG0pLHQuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksaCk6cihtKX1mdW5jdGlvbiBoKG0pe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLnNpemU9bithLnNsaWNlU2VyaWFsaXplKHQuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLGUobSl9fWZ1bmN0aW9uIEpDYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCx0LmNoZWNrKFEwLHMsbik7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1hLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxhLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsV3QodCxlLCJsaXN0SXRlbUluZGVudCIsYS5jb250YWluZXJTdGF0ZS5zaXplKzEpKGwpfWkocywib25CbGFuayIpO2Z1bmN0aW9uIG4obCl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFSdChsKT8oYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxvKGwpKTooYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCx0LmF0dGVtcHQoUUNhLGUsbykobCkpfWkobiwibm90QmxhbmsiKTtmdW5jdGlvbiBvKGwpe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9ITAsYS5pbnRlcnJ1cHQ9dm9pZCAwLFd0KHQsdC5hdHRlbXB0KGJvLGUsciksImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkobCl9aShvLCJub3RJbkN1cnJlbnRJdGVtIil9ZnVuY3Rpb24gZXphKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBXdCh0LHMsImxpc3RJdGVtSW5kZW50IixhLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gcyhuKXtsZXQgbz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG8mJm9bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09YS5jb250YWluZXJTdGF0ZS5zaXplP2Uobik6cihuKX19ZnVuY3Rpb24gdHphKHQpe3QuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpfWZ1bmN0aW9uIHJ6YSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gV3QodCxzLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gcyhuKXtsZXQgbz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIVJ0KG4pJiZvJiZvWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIj9lKG4pOnIobil9fXZhciBibyxaQ2EsUUNhLHJhcj11KCgpPT57YXMoKTtZcigpO280ZSgpO3JEZSgpO2JvPXtjb250aW51YXRpb246e3Rva2VuaXplOkpDYX0sZXhpdDp0emEsbmFtZToibGlzdCIsdG9rZW5pemU6WENhfSxaQ2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6cnphfSxRQ2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6ZXphfTtpKFhDYSwidG9rZW5pemVMaXN0U3RhcnQiKTtpKEpDYSwidG9rZW5pemVMaXN0Q29udGludWF0aW9uIik7aShlemEsInRva2VuaXplSW5kZW50Iik7aSh0emEsInRva2VuaXplTGlzdEVuZCIpO2kocnphLCJ0b2tlbml6ZUxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gYXphKHQsZSl7bGV0IHI9dC5sZW5ndGgsYSxzLG47Zm9yKDtyLS07KWlmKHRbcl1bMF09PT0iZW50ZXIiKXtpZih0W3JdWzFdLnR5cGU9PT0iY29udGVudCIpe2E9cjticmVha310W3JdWzFdLnR5cGU9PT0icGFyYWdyYXBoIiYmKHM9cil9ZWxzZSB0W3JdWzFdLnR5cGU9PT0iY29udGVudCImJnQuc3BsaWNlKHIsMSksIW4mJnRbcl1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKG49cik7bGV0IG89e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi50W2FdWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbdC5sZW5ndGgtMV1bMV0uZW5kfX07cmV0dXJuIHRbc11bMV0udHlwZT0ic2V0ZXh0SGVhZGluZ1RleHQiLG4/KHQuc3BsaWNlKHMsMCxbImVudGVyIixvLGVdKSx0LnNwbGljZShuKzEsMCxbImV4aXQiLHRbYV1bMV0sZV0pLHRbYV1bMV0uZW5kPXsuLi50W25dWzFdLmVuZH0pOnRbYV1bMV09byx0LnB1c2goWyJleGl0IixvLGVdKSx0fWZ1bmN0aW9uIGl6YSh0LGUscil7bGV0IGE9dGhpcyxzO3JldHVybiBuO2Z1bmN0aW9uIG4oZCl7bGV0IGY9YS5ldmVudHMubGVuZ3RoLHA7Zm9yKDtmLS07KWlmKGEuZXZlbnRzW2ZdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJmEuZXZlbnRzW2ZdWzFdLnR5cGUhPT0ibGluZVByZWZpeCImJmEuZXZlbnRzW2ZdWzFdLnR5cGUhPT0iY29udGVudCIpe3A9YS5ldmVudHNbZl1bMV0udHlwZT09PSJwYXJhZ3JhcGgiO2JyZWFrfXJldHVybiFhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0mJihhLmludGVycnVwdHx8cCk/KHQuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lIikscz1kLG8oZCkpOnIoZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gdC5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLGwoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PXM/KHQuY29uc3VtZShkKSxsKToodC5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksUnQoZCk/V3QodCxjLCJsaW5lU3VmZml4IikoZCk6YyhkKSl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZD09PW51bGx8fHV0KGQpPyh0LmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksZShkKSk6cihkKX19dmFyIGI0ZSxhYXI9dSgoKT0+e2FzKCk7WXIoKTtiNGU9e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOmF6YSx0b2tlbml6ZTppemF9O2koYXphLCJyZXNvbHZlVG9TZXRleHRVbmRlcmxpbmUiKTtpKGl6YSwidG9rZW5pemVTZXRleHRVbmRlcmxpbmUiKX0pO3ZhciB4NGU9dSgoKT0+e05ycigpO09ycigpO280ZSgpO1JycigpO0ZycigpO0JycigpO3FycigpO1ZycigpO2pycigpO1VycigpO1dycigpO0dycigpO1lycigpO1FycigpO1hycigpO2c0ZSgpO0pycigpO2VhcigpO3RhcigpO3JhcigpO2FhcigpO3JEZSgpfSk7ZnVuY3Rpb24gYURlKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpjemEsY29udGludWF0aW9uOnt0b2tlbml6ZTpkemF9LGV4aXQ6dXphfX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6bHphfSw5Mzp7bmFtZToiZ2ZtUG90ZW50aWFsRm9vdG5vdGVDYWxsIixhZGQ6ImFmdGVyIix0b2tlbml6ZTpuemEscmVzb2x2ZVRvOm96YX19fX1mdW5jdGlvbiBuemEodCxlLHIpe2xldCBhPXRoaXMscz1hLmV2ZW50cy5sZW5ndGgsbj1hLnBhcnNlci5nZm1Gb290bm90ZXN8fChhLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG87Zm9yKDtzLS07KXtsZXQgYz1hLmV2ZW50c1tzXVsxXTtpZihjLnR5cGU9PT0ibGFiZWxJbWFnZSIpe289YzticmVha31pZihjLnR5cGU9PT0iZ2ZtRm9vdG5vdGVDYWxsInx8Yy50eXBlPT09ImxhYmVsTGluayJ8fGMudHlwZT09PSJsYWJlbCJ8fGMudHlwZT09PSJpbWFnZSJ8fGMudHlwZT09PSJsaW5rIilicmVha31yZXR1cm4gbDtmdW5jdGlvbiBsKGMpe2lmKCFvfHwhby5fYmFsYW5jZWQpcmV0dXJuIHIoYyk7bGV0IGQ9SGkoYS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6by5lbmQsZW5kOmEubm93KCl9KSk7cmV0dXJuIGQuY29kZVBvaW50QXQoMCkhPT05NHx8IW4uaW5jbHVkZXMoZC5zbGljZSgxKSk/cihjKToodC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoYyksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUoYykpfX1mdW5jdGlvbiBvemEodCxlKXtsZXQgcj10Lmxlbmd0aCxhO2Zvcig7ci0tOylpZih0W3JdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSImJnRbcl1bMF09PT0iZW50ZXIiKXthPXRbcl1bMV07YnJlYWt9dFtyKzFdWzFdLnR5cGU9ImRhdGEiLHRbciszXVsxXS50eXBlPSJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciI7bGV0IHM9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx0W3IrM11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbdC5sZW5ndGgtMV1bMV0uZW5kKX0sbj17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHRbciszXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbciszXVsxXS5lbmQpfTtuLmVuZC5jb2x1bW4rKyxuLmVuZC5vZmZzZXQrKyxuLmVuZC5fYnVmZmVySW5kZXgrKztsZXQgbz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG4uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx0W3QubGVuZ3RoLTFdWzFdLnN0YXJ0KX0sbD17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sby5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sby5lbmQpfSxjPVt0W3IrMV0sdFtyKzJdLFsiZW50ZXIiLHMsZV0sdFtyKzNdLHRbcis0XSxbImVudGVyIixuLGVdLFsiZXhpdCIsbixlXSxbImVudGVyIixvLGVdLFsiZW50ZXIiLGwsZV0sWyJleGl0IixsLGVdLFsiZXhpdCIsbyxlXSx0W3QubGVuZ3RoLTJdLHRbdC5sZW5ndGgtMV0sWyJleGl0IixzLGVdXTtyZXR1cm4gdC5zcGxpY2Uocix0Lmxlbmd0aC1yKzEsLi4uYyksdH1mdW5jdGlvbiBsemEodCxlLHIpe2xldCBhPXRoaXMscz1hLnBhcnNlci5nZm1Gb290bm90ZXN8fChhLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG49MCxvO3JldHVybiBsO2Z1bmN0aW9uIGwocCl7cmV0dXJuIHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbCIpLHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxjfWZ1bmN0aW9uIGMocCl7cmV0dXJuIHAhPT05ND9yKHApOih0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSx0LmNvbnN1bWUocCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSx0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKSx0LmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLGQpfWZ1bmN0aW9uIGQocCl7aWYobj45OTl8fHA9PT05MyYmIW98fHA9PT1udWxsfHxwPT09OTF8fEJyKHApKXJldHVybiByKHApO2lmKHA9PT05Myl7dC5leGl0KCJjaHVua1N0cmluZyIpO2xldCBoPXQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIik7cmV0dXJuIHMuaW5jbHVkZXMoSGkoYS5zbGljZVNlcmlhbGl6ZShoKSkpPyh0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5leGl0KCJnZm1Gb290bm90ZUNhbGwiKSxlKTpyKHApfXJldHVybiBCcihwKXx8KG89ITApLG4rKyx0LmNvbnN1bWUocCkscD09PTkyP2Y6ZH1mdW5jdGlvbiBmKHApe3JldHVybiBwPT09OTF8fHA9PT05Mnx8cD09PTkzPyh0LmNvbnN1bWUocCksbisrLGQpOmQocCl9fWZ1bmN0aW9uIGN6YSh0LGUscil7bGV0IGE9dGhpcyxzPWEucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGEucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbixvPTAsbDtyZXR1cm4gYztmdW5jdGlvbiBjKHYpe3JldHVybiB0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIiksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUodiksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGR9ZnVuY3Rpb24gZCh2KXtyZXR1cm4gdj09PTk0Pyh0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSx0LmNvbnN1bWUodiksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsZik6cih2KX1mdW5jdGlvbiBmKHYpe2lmKG8+OTk5fHx2PT09OTMmJiFsfHx2PT09bnVsbHx8dj09PTkxfHxCcih2KSlyZXR1cm4gcih2KTtpZih2PT09OTMpe3QuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgYj10LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cmV0dXJuIG49SGkoYS5zbGljZVNlcmlhbGl6ZShiKSksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUodiksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxofXJldHVybiBCcih2KXx8KGw9ITApLG8rKyx0LmNvbnN1bWUodiksdj09PTkyP3A6Zn1mdW5jdGlvbiBwKHYpe3JldHVybiB2PT09OTF8fHY9PT05Mnx8dj09PTkzPyh0LmNvbnN1bWUodiksbysrLGYpOmYodil9ZnVuY3Rpb24gaCh2KXtyZXR1cm4gdj09PTU4Pyh0LmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKHYpLHQuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLHMuaW5jbHVkZXMobil8fHMucHVzaChuKSxXdCh0LG0sImdmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UiKSk6cih2KX1mdW5jdGlvbiBtKHYpe3JldHVybiBlKHYpfX1mdW5jdGlvbiBkemEodCxlLHIpe3JldHVybiB0LmNoZWNrKFEwLGUsdC5hdHRlbXB0KHN6YSxlLHIpKX1mdW5jdGlvbiB1emEodCl7dC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBwemEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIFd0KHQscywiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiBzKG4pe2xldCBvPWEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09ImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09ND9lKG4pOnIobil9fXZhciBzemEsaWFyPXUoKCk9Pnt4NGUoKTthcygpO1lyKCk7eHAoKTtzemE9e3Rva2VuaXplOnB6YSxwYXJ0aWFsOiEwfTtpKGFEZSwiZ2ZtRm9vdG5vdGUiKTtpKG56YSwidG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwiKTtpKG96YSwicmVzb2x2ZVRvUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsIik7aShsemEsInRva2VuaXplR2ZtRm9vdG5vdGVDYWxsIik7aShjemEsInRva2VuaXplRGVmaW5pdGlvblN0YXJ0Iik7aShkemEsInRva2VuaXplRGVmaW5pdGlvbkNvbnRpbnVhdGlvbiIpO2kodXphLCJnZm1Gb290bm90ZURlZmluaXRpb25FbmQiKTtpKHB6YSwidG9rZW5pemVJbmRlbnQiKX0pO2Z1bmN0aW9uIHNhcih0LGUpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyh0KzEpKyhlPjE/Ii0iK2U6IiIpfWZ1bmN0aW9uIGlEZSh0KXtsZXQgZT10fHxoemEscj1lLmxhYmVsfHwiRm9vdG5vdGVzIixhPWUubGFiZWxUYWdOYW1lfHwiaDIiLHM9ZS5sYWJlbEF0dHJpYnV0ZXM9PT1udWxsfHxlLmxhYmVsQXR0cmlidXRlcz09PXZvaWQgMD8nY2xhc3M9InNyLW9ubHkiJzplLmxhYmVsQXR0cmlidXRlcyxuPWUuYmFja0xhYmVsfHxzYXIsbz1lLmNsb2JiZXJQcmVmaXg9PT1udWxsfHxlLmNsb2JiZXJQcmVmaXg9PT12b2lkIDA/InVzZXItY29udGVudC0iOmUuY2xvYmJlclByZWZpeDtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe3RoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLnB1c2goITEpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9fSxleGl0OntnZm1Gb290bm90ZURlZmluaXRpb24oKXtsZXQgbD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKSxjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKSxkPXRoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLGY9Yy5wb3AoKSxwPXRoaXMucmVzdW1lKCk7bHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIixsPXt9KSxmemEuY2FsbChsLGYpfHwobFtmXT1wKSxkLnBvcCgpLHRoaXMuc2V0RGF0YSgic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCksdGhpcy5zZXREYXRhKCJsYXN0V2FzVGFnIil9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKGwpe2xldCBjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKTtjfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIixjPVtdKSxjLnB1c2goSGkodGhpcy5zbGljZVNlcmlhbGl6ZShsKSkpLHRoaXMucmVzdW1lKCksdGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKGwpe2xldCBjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKSxkPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIiksZj1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKGwpKSxwO3RoaXMucmVzdW1lKCksY3x8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIsYz1bXSksZHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiLGQ9e30pO2xldCBoPWMuaW5kZXhPZihmKSxtPUswKGYudG9Mb3dlckNhc2UoKSk7aD09PS0xPyhjLnB1c2goZiksZFtmXT0xLHA9Yy5sZW5ndGgpOihkW2ZdKysscD1oKzEpO2xldCB2PWRbZl07dGhpcy50YWcoJzxzdXA+PGEgaHJlZj0iIycrbysiZm4tIittKyciIGlkPSInK28rImZucmVmLSIrbSsodj4xPyItIit2OiIiKSsnIiBkYXRhLWZvb3Rub3RlLXJlZj0iIiBhcmlhLWRlc2NyaWJlZGJ5PSJmb290bm90ZS1sYWJlbCI+JytTdHJpbmcocCkrIjwvYT48L3N1cD4iKX0sbnVsbCgpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKXx8W10sYz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpfHx7fSxkPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpfHx7fSxmPS0xO2ZvcihsLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPHNlY3Rpb24gZGF0YS1mb290bm90ZXM9IiIgY2xhc3M9ImZvb3Rub3RlcyI+PCcrYSsnIGlkPSJmb290bm90ZS1sYWJlbCInKyhzPyIgIitzOiIiKSsiPiIpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKSx0aGlzLnRhZygiPC8iK2ErIj4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8b2w+IikpOysrZjxsLmxlbmd0aDspe2xldCBwPWxbZl0saD1LMChwLnRvTG93ZXJDYXNlKCkpLG09MCx2PVtdO2Zvcig7KyttPD1jW3BdOyl2LnB1c2goJzxhIGhyZWY9IiMnK28rImZucmVmLSIraCsobT4xPyItIittOiIiKSsnIiBkYXRhLWZvb3Rub3RlLWJhY2tyZWY9IiIgYXJpYS1sYWJlbD0iJyt0aGlzLmVuY29kZSh0eXBlb2Ygbj09InN0cmluZyI/bjpuKGYsbSkpKyciIGNsYXNzPSJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiPlx1MjFBOScrKG0+MT8iPHN1cD4iK20rIjwvc3VwPiI6IiIpKyI8L2E+Iik7bGV0IGI9di5qb2luKCIgIiksZz0hMTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8bGkgaWQ9IicrbysiZm4tIitoKyciPicpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoZFtwXS5yZXBsYWNlKC88XC9wPig/OlxyP1xufFxyKT8kLyxmdW5jdGlvbih5KXtyZXR1cm4gZz0hMCwiICIrYit5fSkpLGd8fCh0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKGIpKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L2xpPiIpfWwubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L29sPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvc2VjdGlvbj4iKSl9fX19dmFyIGZ6YSxoemEsbmFyPXUoKCk9Pnt4cCgpO1owKCk7ZnphPXt9Lmhhc093blByb3BlcnR5LGh6YT17fTtpKHNhciwiZGVmYXVsdEJhY2tMYWJlbCIpO2koaURlLCJnZm1Gb290bm90ZUh0bWwiKX0pO3ZhciBvYXI9dSgoKT0+e2lhcigpO25hcigpfSk7ZnVuY3Rpb24gc0RlKCl7cmV0dXJue2VudGVyOntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjxkZWw+Iil9fSxleGl0OntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjwvZGVsPiIpfX19fXZhciBsYXI9dSgoKT0+e2koc0RlLCJnZm1TdHJpa2V0aHJvdWdoSHRtbCIpfSk7ZnVuY3Rpb24gbkRlKHQpe2xldCByPSh0fHx7fSkuc2luZ2xlVGlsZGUsYT17bmFtZToic3RyaWtldGhyb3VnaCIsdG9rZW5pemU6bixyZXNvbHZlQWxsOnN9O3JldHVybiByPT1udWxsJiYocj0hMCkse3RleHQ6ezEyNjphfSxpbnNpZGVTcGFuOntudWxsOlthXX0sYXR0ZW50aW9uTWFya2Vyczp7bnVsbDpbMTI2XX19O2Z1bmN0aW9uIHMobyxsKXtsZXQgYz0tMTtmb3IoOysrYzxvLmxlbmd0aDspaWYob1tjXVswXT09PSJlbnRlciImJm9bY11bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZvW2NdWzFdLl9jbG9zZSl7bGV0IGQ9Yztmb3IoO2QtLTspaWYob1tkXVswXT09PSJleGl0IiYmb1tkXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bZF1bMV0uX29wZW4mJm9bY11bMV0uZW5kLm9mZnNldC1vW2NdWzFdLnN0YXJ0Lm9mZnNldD09PW9bZF1bMV0uZW5kLm9mZnNldC1vW2RdWzFdLnN0YXJ0Lm9mZnNldCl7b1tjXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiLG9bZF1bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIjtsZXQgZj17dHlwZToic3RyaWtldGhyb3VnaCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvW2RdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW2NdWzFdLmVuZCl9LHA9e3R5cGU6InN0cmlrZXRocm91Z2hUZXh0IixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bZF1bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW2NdWzFdLnN0YXJ0KX0saD1bWyJlbnRlciIsZixsXSxbImVudGVyIixvW2RdWzFdLGxdLFsiZXhpdCIsb1tkXVsxXSxsXSxbImVudGVyIixwLGxdXSxtPWwucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsO20mJnJzKGgsaC5sZW5ndGgsMCx5cChtLG8uc2xpY2UoZCsxLGMpLGwpKSxycyhoLGgubGVuZ3RoLDAsW1siZXhpdCIscCxsXSxbImVudGVyIixvW2NdWzFdLGxdLFsiZXhpdCIsb1tjXVsxXSxsXSxbImV4aXQiLGYsbF1dKSxycyhvLGQtMSxjLWQrMyxoKSxjPWQraC5sZW5ndGgtMjticmVha319Zm9yKGM9LTE7KytjPG8ubGVuZ3RoOylvW2NdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmKG9bY11bMV0udHlwZT0iZGF0YSIpO3JldHVybiBvfWkocywicmVzb2x2ZUFsbFN0cmlrZXRocm91Z2giKTtmdW5jdGlvbiBuKG8sbCxjKXtsZXQgZD10aGlzLnByZXZpb3VzLGY9dGhpcy5ldmVudHMscD0wO3JldHVybiBoO2Z1bmN0aW9uIGgodil7cmV0dXJuIGQ9PT0xMjYmJmZbZi5sZW5ndGgtMV1bMV0udHlwZSE9PSJjaGFyYWN0ZXJFc2NhcGUiP2Modik6KG8uZW50ZXIoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLG0odikpfWZ1bmN0aW9uIG0odil7bGV0IGI9RDQoZCk7aWYodj09PTEyNilyZXR1cm4gcD4xP2Modik6KG8uY29uc3VtZSh2KSxwKyssbSk7aWYocDwyJiYhcilyZXR1cm4gYyh2KTtsZXQgZz1vLmV4aXQoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLHk9RDQodik7cmV0dXJuIGcuX29wZW49IXl8fHk9PT0yJiYhIWIsZy5fY2xvc2U9IWJ8fGI9PT0yJiYhIXksbCh2KX19aShuLCJ0b2tlbml6ZVN0cmlrZXRocm91Z2giKX12YXIgY2FyPXUoKCk9PntHMCgpO0tkZSgpO1J6KCk7aShuRGUsImdmbVN0cmlrZXRocm91Z2giKX0pO3ZhciBkYXI9dSgoKT0+e2xhcigpO2NhcigpfSk7ZnVuY3Rpb24gbERlKCl7cmV0dXJue2VudGVyOnt0YWJsZSh0KXtsZXQgZT10Ll9hbGlnbjt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGFibGU+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIixlKX0sdGFibGVCb2R5KCl7dGhpcy50YWcoIjx0Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIikscj1vRGVbdFtlXV07cj09PXZvaWQgMD90aGlzLmJ1ZmZlcigpOih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK3IrIj4iKSl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSxyPW9EZVt0W2VdXTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGgiK3IrIj4iKX0sdGFibGVSb3coKXt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIiwwKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dHI+Iil9fSxleGl0Ontjb2RlVGV4dERhdGEodCl7bGV0IGU9dGhpcy5zbGljZVNlcmlhbGl6ZSh0KTt0aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxtemEpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShlKSl9LHRhYmxlKCl7dGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIiksdGhpcy5zZXREYXRhKCJzbHVycEFsbExpbmVFbmRpbmdzIiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90YWJsZT4iKX0sdGFibGVCb2R5KCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7ZSBpbiB0Pyh0aGlzLnRhZygiPC90ZD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKzEpKTp0aGlzLnJlc3VtZSgpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTt0aGlzLnRhZygiPC90aD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIix0KzEpfSx0YWJsZVJvdygpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2Zvcig7ZTx0Lmxlbmd0aDspdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIitvRGVbdFtlXV0rIj48L3RkPiIpLGUrKzt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RyPiIpfX19fWZ1bmN0aW9uIG16YSh0LGUpe3JldHVybiBlPT09InwiP2U6dH12YXIgb0RlLHVhcj11KCgpPT57b0RlPXtub25lOiIiLGxlZnQ6JyBhbGlnbj0ibGVmdCInLHJpZ2h0OicgYWxpZ249InJpZ2h0IicsY2VudGVyOicgYWxpZ249ImNlbnRlciInfTtpKGxEZSwiZ2ZtVGFibGVIdG1sIik7aShtemEsInJlcGxhY2UiKX0pO2Z1bmN0aW9uIGd6YSh0LGUscixhKXtsZXQgcz0wO2lmKCEocj09PTAmJmEubGVuZ3RoPT09MCkpe2Zvcig7czx0Lm1hcC5sZW5ndGg7KXtpZih0Lm1hcFtzXVswXT09PWUpe3QubWFwW3NdWzFdKz1yLHQubWFwW3NdWzJdLnB1c2goLi4uYSk7cmV0dXJufXMrPTF9dC5tYXAucHVzaChbZSxyLGFdKX19dmFyIHY0ZSxwYXI9dSgoKT0+e3Y0ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFZGl0TWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1bXX1hZGQoZSxyLGEpe2d6YSh0aGlzLGUscixhKX1jb25zdW1lKGUpe2lmKHRoaXMubWFwLnNvcnQoZnVuY3Rpb24obixvKXtyZXR1cm4gblswXS1vWzBdfSksdGhpcy5tYXAubGVuZ3RoPT09MClyZXR1cm47bGV0IHI9dGhpcy5tYXAubGVuZ3RoLGE9W107Zm9yKDtyPjA7KXItPTEsYS5wdXNoKGUuc2xpY2UodGhpcy5tYXBbcl1bMF0rdGhpcy5tYXBbcl1bMV0pLHRoaXMubWFwW3JdWzJdKSxlLmxlbmd0aD10aGlzLm1hcFtyXVswXTthLnB1c2goZS5zbGljZSgpKSxlLmxlbmd0aD0wO2xldCBzPWEucG9wKCk7Zm9yKDtzOyl7Zm9yKGxldCBuIG9mIHMpZS5wdXNoKG4pO3M9YS5wb3AoKX10aGlzLm1hcC5sZW5ndGg9MH19O2koZ3phLCJhZGRJbXBsZW1lbnRhdGlvbiIpfSk7ZnVuY3Rpb24gZmFyKHQsZSl7bGV0IHI9ITEsYT1bXTtmb3IoO2U8dC5sZW5ndGg7KXtsZXQgcz10W2VdO2lmKHIpe2lmKHNbMF09PT0iZW50ZXIiKXNbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiJiZhLnB1c2godFtlKzFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiPyJsZWZ0Ijoibm9uZSIpO2Vsc2UgaWYoc1sxXS50eXBlPT09InRhYmxlQ29udGVudCIpe2lmKHRbZS0xXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIil7bGV0IG49YS5sZW5ndGgtMTthW25dPWFbbl09PT0ibGVmdCI/ImNlbnRlciI6InJpZ2h0In19ZWxzZSBpZihzWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciKWJyZWFrfWVsc2Ugc1swXT09PSJlbnRlciImJnNbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyImJihyPSEwKTtlKz0xfXJldHVybiBhfXZhciBoYXI9dSgoKT0+e2koZmFyLCJnZm1UYWJsZUFsaWduIil9KTtmdW5jdGlvbiBjRGUoKXtyZXR1cm57Zmxvdzp7bnVsbDp7bmFtZToidGFibGUiLHRva2VuaXplOmJ6YSxyZXNvbHZlQWxsOnh6YX19fX1mdW5jdGlvbiBiemEodCxlLHIpe2xldCBhPXRoaXMscz0wLG49MCxvO3JldHVybiBsO2Z1bmN0aW9uIGwoQil7bGV0IEM9YS5ldmVudHMubGVuZ3RoLTE7Zm9yKDtDPi0xOyl7bGV0ICQ9YS5ldmVudHNbQ11bMV0udHlwZTtpZigkPT09ImxpbmVFbmRpbmcifHwkPT09ImxpbmVQcmVmaXgiKUMtLTtlbHNlIGJyZWFrfWxldCB6PUM+LTE/YS5ldmVudHNbQ11bMV0udHlwZTpudWxsLEE9ej09PSJ0YWJsZUhlYWQifHx6PT09InRhYmxlUm93Ij9TOmM7cmV0dXJuIEE9PT1TJiZhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihCKTpBKEIpfWZ1bmN0aW9uIGMoQil7cmV0dXJuIHQuZW50ZXIoInRhYmxlSGVhZCIpLHQuZW50ZXIoInRhYmxlUm93IiksZChCKX1mdW5jdGlvbiBkKEIpe3JldHVybiBCPT09MTI0fHwobz0hMCxuKz0xKSxmKEIpfWZ1bmN0aW9uIGYoQil7cmV0dXJuIEI9PT1udWxsP3IoQik6dXQoQik/bj4xPyhuPTAsYS5pbnRlcnJ1cHQ9ITAsdC5leGl0KCJ0YWJsZVJvdyIpLHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoQiksdC5leGl0KCJsaW5lRW5kaW5nIiksbSk6cihCKTpSdChCKT9XdCh0LGYsIndoaXRlc3BhY2UiKShCKToobis9MSxvJiYobz0hMSxzKz0xKSxCPT09MTI0Pyh0LmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksdC5jb25zdW1lKEIpLHQuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLG89ITAsZik6KHQuZW50ZXIoImRhdGEiKSxwKEIpKSl9ZnVuY3Rpb24gcChCKXtyZXR1cm4gQj09PW51bGx8fEI9PT0xMjR8fEJyKEIpPyh0LmV4aXQoImRhdGEiKSxmKEIpKToodC5jb25zdW1lKEIpLEI9PT05Mj9oOnApfWZ1bmN0aW9uIGgoQil7cmV0dXJuIEI9PT05Mnx8Qj09PTEyND8odC5jb25zdW1lKEIpLHApOnAoQil9ZnVuY3Rpb24gbShCKXtyZXR1cm4gYS5pbnRlcnJ1cHQ9ITEsYS5wYXJzZXIubGF6eVthLm5vdygpLmxpbmVdP3IoQik6KHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyUm93Iiksbz0hMSxSdChCKT9XdCh0LHYsImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoQik6dihCKSl9ZnVuY3Rpb24gdihCKXtyZXR1cm4gQj09PTQ1fHxCPT09NTg/ZyhCKTpCPT09MTI0PyhvPSEwLHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksYik6XyhCKX1mdW5jdGlvbiBiKEIpe3JldHVybiBSdChCKT9XdCh0LGcsIndoaXRlc3BhY2UiKShCKTpnKEIpfWZ1bmN0aW9uIGcoQil7cmV0dXJuIEI9PT01OD8obis9MSxvPSEwLHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksdC5jb25zdW1lKEIpLHQuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx5KTpCPT09NDU/KG4rPTEseShCKSk6Qj09PW51bGx8fHV0KEIpP04oQik6XyhCKX1mdW5jdGlvbiB5KEIpe3JldHVybiBCPT09NDU/KHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksayhCKSk6XyhCKX1mdW5jdGlvbiBrKEIpe3JldHVybiBCPT09NDU/KHQuY29uc3VtZShCKSxrKTpCPT09NTg/KG89ITAsdC5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksdC5jb25zdW1lKEIpLHQuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSxNKToodC5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLE0oQikpfWZ1bmN0aW9uIE0oQil7cmV0dXJuIFJ0KEIpP1d0KHQsTiwid2hpdGVzcGFjZSIpKEIpOk4oQil9ZnVuY3Rpb24gTihCKXtyZXR1cm4gQj09PTEyND92KEIpOkI9PT1udWxsfHx1dChCKT8hb3x8cyE9PW4/XyhCKToodC5leGl0KCJ0YWJsZURlbGltaXRlclJvdyIpLHQuZXhpdCgidGFibGVIZWFkIiksZShCKSk6XyhCKX1mdW5jdGlvbiBfKEIpe3JldHVybiByKEIpfWZ1bmN0aW9uIFMoQil7cmV0dXJuIHQuZW50ZXIoInRhYmxlUm93IiksTyhCKX1mdW5jdGlvbiBPKEIpe3JldHVybiBCPT09MTI0Pyh0LmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksdC5jb25zdW1lKEIpLHQuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLE8pOkI9PT1udWxsfHx1dChCKT8odC5leGl0KCJ0YWJsZVJvdyIpLGUoQikpOlJ0KEIpP1d0KHQsTywid2hpdGVzcGFjZSIpKEIpOih0LmVudGVyKCJkYXRhIiksTChCKSl9ZnVuY3Rpb24gTChCKXtyZXR1cm4gQj09PW51bGx8fEI9PT0xMjR8fEJyKEIpPyh0LmV4aXQoImRhdGEiKSxPKEIpKToodC5jb25zdW1lKEIpLEI9PT05Mj9FOkwpfWZ1bmN0aW9uIEUoQil7cmV0dXJuIEI9PT05Mnx8Qj09PTEyND8odC5jb25zdW1lKEIpLEwpOkwoQil9fWZ1bmN0aW9uIHh6YSh0LGUpe2xldCByPS0xLGE9ITAscz0wLG49WzAsMCwwLDBdLG89WzAsMCwwLDBdLGw9ITEsYz0wLGQsZixwLGg9bmV3IHY0ZTtmb3IoOysrcjx0Lmxlbmd0aDspe2xldCBtPXRbcl0sdj1tWzFdO21bMF09PT0iZW50ZXIiP3YudHlwZT09PSJ0YWJsZUhlYWQiPyhsPSExLGMhPT0wJiYobWFyKGgsZSxjLGQsZiksZj12b2lkIDAsYz0wKSxkPXt0eXBlOiJ0YWJsZSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx2LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx2LmVuZCl9LGguYWRkKHIsMCxbWyJlbnRlciIsZCxlXV0pKTp2LnR5cGU9PT0idGFibGVSb3cifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhhPSEwLHA9dm9pZCAwLG49WzAsMCwwLDBdLG89WzAscisxLDAsMF0sbCYmKGw9ITEsZj17dHlwZToidGFibGVCb2R5IixzdGFydDpPYmplY3QuYXNzaWduKHt9LHYuc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHYuZW5kKX0saC5hZGQociwwLFtbImVudGVyIixmLGVdXSkpLHM9di50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8yOmY/MzoxKTpzJiYodi50eXBlPT09ImRhdGEifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKT8oYT0hMSxvWzJdPT09MCYmKG5bMV0hPT0wJiYob1swXT1vWzFdLHA9eTRlKGgsZSxuLHMsdm9pZCAwLHApLG49WzAsMCwwLDBdKSxvWzJdPXIpKTp2LnR5cGU9PT0idGFibGVDZWxsRGl2aWRlciImJihhP2E9ITE6KG5bMV0hPT0wJiYob1swXT1vWzFdLHA9eTRlKGgsZSxuLHMsdm9pZCAwLHApKSxuPW8sbz1bblsxXSxyLDAsMF0pKTp2LnR5cGU9PT0idGFibGVIZWFkIj8obD0hMCxjPXIpOnYudHlwZT09PSJ0YWJsZVJvdyJ8fHYudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGM9cixuWzFdIT09MD8ob1swXT1vWzFdLHA9eTRlKGgsZSxuLHMscixwKSk6b1sxXSE9PTAmJihwPXk0ZShoLGUsbyxzLHIscCkpLHM9MCk6cyYmKHYudHlwZT09PSJkYXRhInx8di50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyInx8di50eXBlPT09InRhYmxlRGVsaW1pdGVyRmlsbGVyIikmJihvWzNdPXIpfWZvcihjIT09MCYmbWFyKGgsZSxjLGQsZiksaC5jb25zdW1lKGUuZXZlbnRzKSxyPS0xOysrcjxlLmV2ZW50cy5sZW5ndGg7KXtsZXQgbT1lLmV2ZW50c1tyXTttWzBdPT09ImVudGVyIiYmbVsxXS50eXBlPT09InRhYmxlIiYmKG1bMV0uX2FsaWduPWZhcihlLmV2ZW50cyxyKSl9cmV0dXJuIHR9ZnVuY3Rpb24geTRlKHQsZSxyLGEscyxuKXtsZXQgbz1hPT09MT8idGFibGVIZWFkZXIiOmE9PT0yPyJ0YWJsZURlbGltaXRlciI6InRhYmxlRGF0YSIsbD0idGFibGVDb250ZW50IjtyWzBdIT09MCYmKG4uZW5kPU9iamVjdC5hc3NpZ24oe30scnkoZS5ldmVudHMsclswXSkpLHQuYWRkKHJbMF0sMCxbWyJleGl0IixuLGVdXSkpO2xldCBjPXJ5KGUuZXZlbnRzLHJbMV0pO2lmKG49e3R5cGU6byxzdGFydDpPYmplY3QuYXNzaWduKHt9LGMpLGVuZDpPYmplY3QuYXNzaWduKHt9LGMpfSx0LmFkZChyWzFdLDAsW1siZW50ZXIiLG4sZV1dKSxyWzJdIT09MCl7bGV0IGQ9cnkoZS5ldmVudHMsclsyXSksZj1yeShlLmV2ZW50cyxyWzNdKSxwPXt0eXBlOmwsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxkKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxmKX07aWYodC5hZGQoclsyXSwwLFtbImVudGVyIixwLGVdXSksYSE9PTIpe2xldCBoPWUuZXZlbnRzW3JbMl1dLG09ZS5ldmVudHNbclszXV07aWYoaFsxXS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxtWzFdLmVuZCksaFsxXS50eXBlPSJjaHVua1RleHQiLGhbMV0uY29udGVudFR5cGU9InRleHQiLHJbM10+clsyXSsxKXtsZXQgdj1yWzJdKzEsYj1yWzNdLXJbMl0tMTt0LmFkZCh2LGIsW10pfX10LmFkZChyWzNdKzEsMCxbWyJleGl0IixwLGVdXSl9cmV0dXJuIHMhPT12b2lkIDAmJihuLmVuZD1PYmplY3QuYXNzaWduKHt9LHJ5KGUuZXZlbnRzLHMpKSx0LmFkZChzLDAsW1siZXhpdCIsbixlXV0pLG49dm9pZCAwKSxufWZ1bmN0aW9uIG1hcih0LGUscixhLHMpe2xldCBuPVtdLG89cnkoZS5ldmVudHMscik7cyYmKHMuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIscyxlXSkpLGEuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIsYSxlXSksdC5hZGQocisxLDAsbil9ZnVuY3Rpb24gcnkodCxlKXtsZXQgcj10W2VdLGE9clswXT09PSJlbnRlciI/InN0YXJ0IjoiZW5kIjtyZXR1cm4gclsxXVthXX12YXIgZ2FyPXUoKCk9PnthcygpO1lyKCk7cGFyKCk7aGFyKCk7aShjRGUsImdmbVRhYmxlIik7aShiemEsInRva2VuaXplVGFibGUiKTtpKHh6YSwicmVzb2x2ZVRhYmxlIik7aSh5NGUsImZsdXNoQ2VsbCIpO2kobWFyLCJmbHVzaFRhYmxlRW5kIik7aShyeSwiZ2V0UG9pbnQiKX0pO3ZhciBiYXI9dSgoKT0+e3VhcigpO2dhcigpfSk7ZnVuY3Rpb24gZERlKCl7cmV0dXJue2V4aXQ6e2h0bWxGbG93RGF0YSh0KXt5YXIuY2FsbCh0aGlzLHQseGFyKX0saHRtbFRleHREYXRhKHQpe3lhci5jYWxsKHRoaXMsdCx2emEpfX19fWZ1bmN0aW9uIHlhcih0LGUpe2xldCByPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCYmKHI9ci5yZXBsYWNlKGUsIiZsdDskMSQyIikpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKX12YXIgeGFyLHZ6YSx3YXI9dSgoKT0+e3hhcj0vPChcLz8pKGlmcmFtZXxub2VtYmVkfG5vZnJhbWVzfHBsYWludGV4dHxzY3JpcHR8c3R5bGV8dGl0bGV8dGV4dGFyZWF8eG1wKSg/PVtcdFxuXGZcciAvPl0pL2dpLHZ6YT1uZXcgUmVnRXhwKCJeIit4YXIuc291cmNlLCJpIik7aShkRGUsImdmbVRhZ2ZpbHRlckh0bWwiKTtpKHlhciwiZXhpdEh0bWxEYXRhIil9KTt2YXIga2FyPXUoKCk9Pnt3YXIoKX0pO2Z1bmN0aW9uIHVEZSgpe3JldHVybntlbnRlcjp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPSIiICcpfX0sZXhpdDp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCIvPiIpfSx0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkKCl7dGhpcy50YWcoJ2NoZWNrZWQ9IiIgJyl9fX19dmFyIFNhcj11KCgpPT57aSh1RGUsImdmbVRhc2tMaXN0SXRlbUh0bWwiKX0pO2Z1bmN0aW9uIHBEZSgpe3JldHVybnt0ZXh0Ons5MTp5emF9fX1mdW5jdGlvbiB3emEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYS5wcmV2aW91cyE9PW51bGx8fCFhLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/cihjKToodC5lbnRlcigidGFza0xpc3RDaGVjayIpLHQuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSx0LmNvbnN1bWUoYyksdC5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksbil9ZnVuY3Rpb24gbihjKXtyZXR1cm4gQnIoYyk/KHQuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLHQuY29uc3VtZShjKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLG8pOmM9PT04OHx8Yz09PTEyMD8odC5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLHQuY29uc3VtZShjKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxvKTpyKGMpfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGM9PT05Mz8odC5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHQuY29uc3VtZShjKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2siKSxsKTpyKGMpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIHV0KGMpP2UoYyk6UnQoYyk/dC5jaGVjayh7dG9rZW5pemU6a3phfSxlLHIpKGMpOnIoYyl9fWZ1bmN0aW9uIGt6YSh0LGUscil7cmV0dXJuIFd0KHQsYSwid2hpdGVzcGFjZSIpO2Z1bmN0aW9uIGEocyl7cmV0dXJuIHM9PT1udWxsP3Iocyk6ZShzKX19dmFyIHl6YSxNYXI9dSgoKT0+e2FzKCk7WXIoKTt5emE9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOnd6YX07aShwRGUsImdmbVRhc2tMaXN0SXRlbSIpO2kod3phLCJ0b2tlbml6ZVRhc2tsaXN0Q2hlY2siKTtpKGt6YSwic3BhY2VUaGVuTm9uU3BhY2UiKX0pO3ZhciBDYXI9dSgoKT0+e1NhcigpO01hcigpfSk7ZnVuY3Rpb24gemFyKHQpe3JldHVybiBhNGUoW1BMZSgpLGFEZSgpLG5EZSh0KSxjRGUoKSxwRGUoKV0pfWZ1bmN0aW9uIE9wbih0KXtyZXR1cm4gaTRlKFtSTGUoKSxpRGUodCksc0RlKCksbERlKCksZERlKCksdURlKCldKX12YXIgX2FyPXUoKCk9PntzNGUoKTtJcnIoKTtvYXIoKTtkYXIoKTtiYXIoKTtrYXIoKTtDYXIoKTtpKHphciwiZ2ZtIik7aShPcG4sImdmbUh0bWwiKX0pO2Z1bmN0aW9uIGF5KHQpe2xldCBlPXRoaXMscj10fHxTemEsYT1lLmRhdGEoKSxzPWEubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGEubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbj1hLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChhLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG89YS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGEudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO3MucHVzaCh6YXIocikpLG4ucHVzaChETGUoKSksby5wdXNoKCRMZShyKSl9dmFyIFN6YSxUYXI9dSgoKT0+e1NycigpO19hcigpO1N6YT17fTtpKGF5LCJyZW1hcmtHZm0iKX0pO3ZhciBMYXI9dSgoKT0+e1RhcigpfSk7ZnVuY3Rpb24gZkRlKHQpe2xldCBlPXR8fHt9LHI9ITAsYT17fSxzPVtbXV0sbj1bXSxvPVtdLGM9aTRlKFt7ZW50ZXI6e2Jsb2NrUXVvdGU6Rixjb2RlRmVuY2VkOmRlLGNvZGVGZW5jZWRGZW5jZUluZm86Zyxjb2RlRmVuY2VkRmVuY2VNZXRhOmcsY29kZUluZGVudGVkOmZlLGNvZGVUZXh0OmdlLGNvbnRlbnQ6emUsZGVmaW5pdGlvbjp4ZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6VixkZWZpbml0aW9uTGFiZWxTdHJpbmc6ZyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6ZyxlbXBoYXNpczp3ZSxodG1sRmxvdzpudCxodG1sVGV4dDpMZSxpbWFnZTpXLGxhYmVsOmcsbGluazpwZSxsaXN0SXRlbU1hcmtlcjpDLGxpc3RJdGVtVmFsdWU6QixsaXN0T3JkZXJlZDpMLGxpc3RVbm9yZGVyZWQ6RSxwYXJhZ3JhcGg6RyxyZWZlcmVuY2U6ZyxyZXNvdXJjZTpVLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6aixyZXNvdXJjZVRpdGxlU3RyaW5nOmcsc2V0ZXh0SGVhZGluZzpHZSxzdHJvbmc6T2V9LGV4aXQ6e2F0eEhlYWRpbmc6RGUsYXR4SGVhZGluZ1NlcXVlbmNlOkhlLGF1dG9saW5rRW1haWw6WWksYXV0b2xpbmtQcm90b2NvbDpQYSxibG9ja1F1b3RlOlksY2hhcmFjdGVyRXNjYXBlVmFsdWU6c2UsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6WXQsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzpZdCxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTp6YSxjb2RlRmVuY2VkOlQsY29kZUZlbmNlZEZlbmNlOlEsY29kZUZlbmNlZEZlbmNlSW5mbzpELGNvZGVGZW5jZWRGZW5jZU1ldGE6Tyxjb2RlRmxvd1ZhbHVlOlRlLGNvZGVJbmRlbnRlZDpULGNvZGVUZXh0OmJlLGNvZGVUZXh0RGF0YTpzZSxkYXRhOnNlLGRlZmluaXRpb246ZWUsZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOmxlLGRlZmluaXRpb25MYWJlbFN0cmluZzpLLGRlZmluaXRpb25UaXRsZVN0cmluZzpuZSxlbXBoYXNpczpJZSxoYXJkQnJlYWtFc2NhcGU6cWUsaGFyZEJyZWFrVHJhaWxpbmc6cWUsaHRtbEZsb3c6dnQsaHRtbEZsb3dEYXRhOnNlLGh0bWxUZXh0OnZ0LGh0bWxUZXh0RGF0YTpzZSxpbWFnZTpKLGxhYmVsOnEsbGFiZWxUZXh0Om1lLGxpbmVFbmRpbmc6Y2UsbGluazpKLGxpc3RPcmRlcmVkOnosbGlzdFVub3JkZXJlZDpBLHBhcmFncmFwaDpaLHJlZmVyZW5jZTpPLHJlZmVyZW5jZVN0cmluZzpILHJlc291cmNlOk8scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzphZSxyZXNvdXJjZVRpdGxlU3RyaW5nOlgsc2V0ZXh0SGVhZGluZzpvZSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOl9lLHNldGV4dEhlYWRpbmdUZXh0Om90LHN0cm9uZzp5dCx0aGVtYXRpY0JyZWFrOnd0fX0sLi4uZS5odG1sRXh0ZW5zaW9uc3x8W11dKSxkPXtkZWZpbml0aW9uczphLHRpZ2h0U3RhY2s6b30sZj17YnVmZmVyOmcsZW5jb2RlOlMsZ2V0RGF0YTpiLGxpbmVFbmRpbmdJZk5lZWRlZDpfLG9wdGlvbnM6ZSxyYXc6TSxyZXN1bWU6eSxzZXREYXRhOnYsdGFnOmt9LHA9ZS5kZWZhdWx0TGluZUVuZGluZztyZXR1cm4gaDtmdW5jdGlvbiBoKEVlKXtsZXQgamU9LTEsc3I9MCxyYT1bXSxwYT1bXSx5YT1bXTtmb3IoOysramU8RWUubGVuZ3RoOykhcCYmKEVlW2plXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxFZVtqZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKSYmKHA9RWVbamVdWzJdLnNsaWNlU2VyaWFsaXplKEVlW2plXVsxXSkpLChFZVtqZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fEVlW2plXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKSYmKEVlW2plXVswXT09PSJlbnRlciI/cmEucHVzaChqZSk6bShFZS5zbGljZShyYS5wb3AoKSxqZSkpKSxFZVtqZV1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKEVlW2plXVswXT09PSJlbnRlciI/KHlhPUNzKHlhLEVlLnNsaWNlKHNyLGplKSksc3I9amUpOihwYT1DcyhwYSxFZS5zbGljZShzcixqZSsxKSksc3I9amUrMSkpO3BhPUNzKHBhLHlhKSxwYT1DcyhwYSxFZS5zbGljZShzcikpLGplPS0xO2xldCBmYT1wYTtmb3IoYy5lbnRlci5udWxsJiZjLmVudGVyLm51bGwuY2FsbChmKTsrK2plPEVlLmxlbmd0aDspe2xldCBDbj1jW2ZhW2plXVswXV0sem49ZmFbamVdWzFdLnR5cGUsQWU9Q25bem5dO0Rhci5jYWxsKENuLHpuKSYmQWUmJkFlLmNhbGwoe3NsaWNlU2VyaWFsaXplOmZhW2plXVsyXS5zbGljZVNlcmlhbGl6ZSwuLi5mfSxmYVtqZV1bMV0pfXJldHVybiBjLmV4aXQubnVsbCYmYy5leGl0Lm51bGwuY2FsbChmKSxzWzBdLmpvaW4oIiIpfWZ1bmN0aW9uIG0oRWUpe2xldCBqZT1FZS5sZW5ndGgsc3I9MCxyYT0wLHBhPSExLHlhO2Zvcig7KytzcjxqZTspe2xldCBmYT1FZVtzcl07aWYoZmFbMV0uX2NvbnRhaW5lcil5YT12b2lkIDAsZmFbMF09PT0iZW50ZXIiP3JhKys6cmEtLTtlbHNlIHN3aXRjaChmYVsxXS50eXBlKXtjYXNlImxpc3RJdGVtUHJlZml4Ijp7ZmFbMF09PT0iZXhpdCImJih5YT0hMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpicmVhaztjYXNlImxpbmVFbmRpbmdCbGFuayI6e2ZhWzBdPT09ImVudGVyIiYmIXJhJiYoeWE/eWE9dm9pZCAwOnBhPSEwKTticmVha31kZWZhdWx0OnlhPXZvaWQgMH19RWVbMF1bMV0uX2xvb3NlPXBhfWZ1bmN0aW9uIHYoRWUsamUpe2RbRWVdPWplfWZ1bmN0aW9uIGIoRWUpe3JldHVybiBkW0VlXX1mdW5jdGlvbiBnKCl7cy5wdXNoKFtdKX1mdW5jdGlvbiB5KCl7cmV0dXJuIHMucG9wKCkuam9pbigiIil9ZnVuY3Rpb24gayhFZSl7ciYmKHYoImxhc3RXYXNUYWciLCEwKSxzW3MubGVuZ3RoLTFdLnB1c2goRWUpKX1mdW5jdGlvbiBNKEVlKXt2KCJsYXN0V2FzVGFnIiksc1tzLmxlbmd0aC0xXS5wdXNoKEVlKX1mdW5jdGlvbiBOKCl7TShwfHxgCmApfWZ1bmN0aW9uIF8oKXtsZXQgRWU9c1tzLmxlbmd0aC0xXSxqZT1FZVtFZS5sZW5ndGgtMV0sc3I9amU/amUuY2hhckNvZGVBdChqZS5sZW5ndGgtMSk6bnVsbDtzcj09PTEwfHxzcj09PTEzfHxzcj09PW51bGx8fE4oKX1mdW5jdGlvbiBTKEVlKXtyZXR1cm4gYigiaWdub3JlRW5jb2RlIik/RWU6bjRlKEVlKX1mdW5jdGlvbiBPKCl7eSgpfWZ1bmN0aW9uIEwoRWUpe28ucHVzaCghRWUuX2xvb3NlKSxfKCksaygiPG9sIiksdigiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gRShFZSl7by5wdXNoKCFFZS5fbG9vc2UpLF8oKSxrKCI8dWwiKSx2KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBCKEVlKXtpZihiKCJleHBlY3RGaXJzdEl0ZW0iKSl7bGV0IGplPU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKEVlKSwxMCk7amUhPT0xJiZrKCcgc3RhcnQ9IicrUyhTdHJpbmcoamUpKSsnIicpfX1mdW5jdGlvbiBDKCl7YigiZXhwZWN0Rmlyc3RJdGVtIik/aygiPiIpOiQoKSxfKCksaygiPGxpPiIpLHYoImV4cGVjdEZpcnN0SXRlbSIpLHYoImxhc3RXYXNUYWciKX1mdW5jdGlvbiB6KCl7JCgpLG8ucG9wKCksTigpLGsoIjwvb2w+Iil9ZnVuY3Rpb24gQSgpeyQoKSxvLnBvcCgpLE4oKSxrKCI8L3VsPiIpfWZ1bmN0aW9uICQoKXtiKCJsYXN0V2FzVGFnIikmJiFiKCJzbHVycEFsbExpbmVFbmRpbmdzIikmJl8oKSxrKCI8L2xpPiIpLHYoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBGKCl7by5wdXNoKCExKSxfKCksaygiPGJsb2NrcXVvdGU+Iil9ZnVuY3Rpb24gWSgpe28ucG9wKCksXygpLGsoIjwvYmxvY2txdW90ZT4iKSx2KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gRygpe29bby5sZW5ndGgtMV18fChfKCksaygiPHA+IikpLHYoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBaKCl7b1tvLmxlbmd0aC0xXT92KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCk6aygiPC9wPiIpfWZ1bmN0aW9uIGRlKCl7XygpLGsoIjxwcmU+PGNvZGUiKSx2KCJmZW5jZXNDb3VudCIsMCl9ZnVuY3Rpb24gRCgpe2xldCBFZT15KCk7aygnIGNsYXNzPSJsYW5ndWFnZS0nK0VlKyciJyl9ZnVuY3Rpb24gUSgpe2xldCBFZT1iKCJmZW5jZXNDb3VudCIpfHwwO0VlfHwoaygiPiIpLHYoInNsdXJwT25lTGluZUVuZGluZyIsITApKSx2KCJmZW5jZXNDb3VudCIsRWUrMSl9ZnVuY3Rpb24gZmUoKXtfKCksaygiPHByZT48Y29kZT4iKX1mdW5jdGlvbiBUKCl7bGV0IEVlPWIoImZlbmNlc0NvdW50Iik7RWUhPT12b2lkIDAmJkVlPDImJmQudGlnaHRTdGFjay5sZW5ndGg+MCYmIWIoImxhc3RXYXNUYWciKSYmTigpLGIoImZsb3dDb2RlU2VlbkRhdGEiKSYmXygpLGsoIjwvY29kZT48L3ByZT4iKSxFZSE9PXZvaWQgMCYmRWU8MiYmXygpLHYoImZsb3dDb2RlU2VlbkRhdGEiKSx2KCJmZW5jZXNDb3VudCIpLHYoInNsdXJwT25lTGluZUVuZGluZyIpfWZ1bmN0aW9uIFcoKXtuLnB1c2goe2ltYWdlOiEwfSkscj12b2lkIDB9ZnVuY3Rpb24gcGUoKXtuLnB1c2goe30pfWZ1bmN0aW9uIG1lKEVlKXtuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShFZSl9ZnVuY3Rpb24gcSgpe25bbi5sZW5ndGgtMV0ubGFiZWw9eSgpfWZ1bmN0aW9uIEgoRWUpe25bbi5sZW5ndGgtMV0ucmVmZXJlbmNlSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShFZSl9ZnVuY3Rpb24gVSgpe2coKSxuW24ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPSIifWZ1bmN0aW9uIGooKXtnKCksdigiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gYWUoKXtuW24ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXkoKSx2KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBYKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gSigpe2xldCBFZT1uLmxlbmd0aC0xLGplPW5bRWVdLHNyPWplLnJlZmVyZW5jZUlkfHxqZS5sYWJlbElkLHJhPWplLmRlc3RpbmF0aW9uPT09dm9pZCAwP2FbSGkoc3IpXTpqZTtmb3Iocj0hMDtFZS0tOylpZihuW0VlXS5pbWFnZSl7cj12b2lkIDA7YnJlYWt9amUuaW1hZ2U/KGsoJzxpbWcgc3JjPSInK0swKHJhLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6TXphKSsnIiBhbHQ9IicpLE0oamUubGFiZWwpLGsoJyInKSk6aygnPGEgaHJlZj0iJytLMChyYS5kZXN0aW5hdGlvbixlLmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOiRhcikrJyInKSxrKHJhLnRpdGxlPycgdGl0bGU9IicrcmEudGl0bGUrJyInOiIiKSxqZS5pbWFnZT9rKCIgLz4iKTooaygiPiIpLE0oamUubGFiZWwpLGsoIjwvYT4iKSksbi5wb3AoKX1mdW5jdGlvbiB4ZSgpe2coKSxuLnB1c2goe30pfWZ1bmN0aW9uIEsoRWUpe3koKSxuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShFZSl9ZnVuY3Rpb24gVigpe2coKSx2KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBsZSgpe25bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHYoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIG5lKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gZWUoKXtsZXQgRWU9bltuLmxlbmd0aC0xXSxqZT1IaShFZS5sYWJlbElkKTt5KCksRGFyLmNhbGwoYSxqZSl8fChhW2plXT1uW24ubGVuZ3RoLTFdKSxuLnBvcCgpfWZ1bmN0aW9uIHplKCl7digic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIEhlKEVlKXtiKCJoZWFkaW5nUmFuayIpfHwodigiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpLmxlbmd0aCksXygpLGsoIjxoIitiKCJoZWFkaW5nUmFuayIpKyI+IikpfWZ1bmN0aW9uIEdlKCl7ZygpLHYoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBvdCgpe3YoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiBEZSgpe2soIjwvaCIrYigiaGVhZGluZ1JhbmsiKSsiPiIpLHYoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gX2UoRWUpe3YoImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKEVlKS5jaGFyQ29kZUF0KDApPT09NjE/MToyKX1mdW5jdGlvbiBvZSgpe2xldCBFZT15KCk7XygpLGsoIjxoIitiKCJoZWFkaW5nUmFuayIpKyI+IiksTShFZSksaygiPC9oIitiKCJoZWFkaW5nUmFuayIpKyI+Iiksdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHYoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gc2UoRWUpe00oUyh0aGlzLnNsaWNlU2VyaWFsaXplKEVlKSkpfWZ1bmN0aW9uIGNlKEVlKXtpZighYigic2x1cnBBbGxMaW5lRW5kaW5ncyIpKXtpZihiKCJzbHVycE9uZUxpbmVFbmRpbmciKSl7digic2x1cnBPbmVMaW5lRW5kaW5nIik7cmV0dXJufWlmKGIoImluQ29kZVRleHQiKSl7TSgiICIpO3JldHVybn1NKFModGhpcy5zbGljZVNlcmlhbGl6ZShFZSkpKX19ZnVuY3Rpb24gVGUoRWUpe00oUyh0aGlzLnNsaWNlU2VyaWFsaXplKEVlKSkpLHYoImZsb3dDb2RlU2VlbkRhdGEiLCEwKX1mdW5jdGlvbiBxZSgpe2soIjxiciAvPiIpfWZ1bmN0aW9uIG50KCl7XygpLExlKCl9ZnVuY3Rpb24gdnQoKXt2KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBMZSgpe2UuYWxsb3dEYW5nZXJvdXNIdG1sJiZ2KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiB3ZSgpe2soIjxlbT4iKX1mdW5jdGlvbiBPZSgpe2soIjxzdHJvbmc+Iil9ZnVuY3Rpb24gZ2UoKXt2KCJpbkNvZGVUZXh0IiwhMCksaygiPGNvZGU+Iil9ZnVuY3Rpb24gYmUoKXt2KCJpbkNvZGVUZXh0IiksaygiPC9jb2RlPiIpfWZ1bmN0aW9uIEllKCl7aygiPC9lbT4iKX1mdW5jdGlvbiB5dCgpe2soIjwvc3Ryb25nPiIpfWZ1bmN0aW9uIHd0KCl7XygpLGsoIjxociAvPiIpfWZ1bmN0aW9uIFl0KEVlKXt2KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixFZS50eXBlKX1mdW5jdGlvbiB6YShFZSl7bGV0IGplPXRoaXMuc2xpY2VTZXJpYWxpemUoRWUpLHNyPWIoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT90eShqZSxiKCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpOnZwKGplKTtNKFMoc3IpKSx2KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIil9ZnVuY3Rpb24gUGEoRWUpe2xldCBqZT10aGlzLnNsaWNlU2VyaWFsaXplKEVlKTtrKCc8YSBocmVmPSInK0swKGplLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6JGFyKSsnIj4nKSxNKFMoamUpKSxrKCI8L2E+Iil9ZnVuY3Rpb24gWWkoRWUpe2xldCBqZT10aGlzLnNsaWNlU2VyaWFsaXplKEVlKTtrKCc8YSBocmVmPSInK0swKCJtYWlsdG86IitqZSkrJyI+JyksTShTKGplKSksaygiPC9hPiIpfX12YXIgRGFyLCRhcixNemEsaERlPXUoKCk9PntPeigpO0cwKCk7czRlKCk7ZTRlKCk7TkxlKCk7eHAoKTtaMCgpO0Rhcj17fS5oYXNPd25Qcm9wZXJ0eSwkYXI9L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSxNemE9L15odHRwcz8kL2k7aShmRGUsImNvbXBpbGUiKX0pO2Z1bmN0aW9uIEN6YSh0KXtsZXQgZT10LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5jb250ZW50SW5pdGlhbCxhLHMpLHI7cmV0dXJuIGU7ZnVuY3Rpb24gYShsKXtpZihsPT09bnVsbCl7dC5jb25zdW1lKGwpO3JldHVybn1yZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShsKSx0LmV4aXQoImxpbmVFbmRpbmciKSxXdCh0LGUsImxpbmVQcmVmaXgiKX1mdW5jdGlvbiBzKGwpe3JldHVybiB0LmVudGVyKCJwYXJhZ3JhcGgiKSxuKGwpfWZ1bmN0aW9uIG4obCl7bGV0IGM9dC5lbnRlcigiY2h1bmtUZXh0Iix7Y29udGVudFR5cGU6InRleHQiLHByZXZpb3VzOnJ9KTtyZXR1cm4gciYmKHIubmV4dD1jKSxyPWMsbyhsKX1mdW5jdGlvbiBvKGwpe2lmKGw9PT1udWxsKXt0LmV4aXQoImNodW5rVGV4dCIpLHQuZXhpdCgicGFyYWdyYXBoIiksdC5jb25zdW1lKGwpO3JldHVybn1yZXR1cm4gdXQobCk/KHQuY29uc3VtZShsKSx0LmV4aXQoImNodW5rVGV4dCIpLG4pOih0LmNvbnN1bWUobCksbyl9fXZhciBBYXIsRWFyPXUoKCk9PnthcygpO1lyKCk7QWFyPXt0b2tlbml6ZTpDemF9O2koQ3phLCJpbml0aWFsaXplQ29udGVudCIpfSk7ZnVuY3Rpb24genphKHQpe2xldCBlPXRoaXMscj1bXSxhPTAscyxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChNKXtpZihhPHIubGVuZ3RoKXtsZXQgTj1yW2FdO3JldHVybiBlLmNvbnRhaW5lclN0YXRlPU5bMV0sdC5hdHRlbXB0KE5bMF0uY29udGludWF0aW9uLGMsZCkoTSl9cmV0dXJuIGQoTSl9ZnVuY3Rpb24gYyhNKXtpZihhKyssZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93KXtlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLHMmJmsoKTtsZXQgTj1lLmV2ZW50cy5sZW5ndGgsXz1OLFM7Zm9yKDtfLS07KWlmKGUuZXZlbnRzW19dWzBdPT09ImV4aXQiJiZlLmV2ZW50c1tfXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe1M9ZS5ldmVudHNbX11bMV0uZW5kO2JyZWFrfXkoYSk7bGV0IE89Tjtmb3IoO088ZS5ldmVudHMubGVuZ3RoOyllLmV2ZW50c1tPXVsxXS5lbmQ9ey4uLlN9LE8rKztyZXR1cm4gcnMoZS5ldmVudHMsXysxLDAsZS5ldmVudHMuc2xpY2UoTikpLGUuZXZlbnRzLmxlbmd0aD1PLGQoTSl9cmV0dXJuIGwoTSl9ZnVuY3Rpb24gZChNKXtpZihhPT09ci5sZW5ndGgpe2lmKCFzKXJldHVybiBoKE0pO2lmKHMuY3VycmVudENvbnN0cnVjdCYmcy5jdXJyZW50Q29uc3RydWN0LmNvbmNyZXRlKXJldHVybiB2KE0pO2UuaW50ZXJydXB0PSEhKHMuY3VycmVudENvbnN0cnVjdCYmIXMuX2dmbVRhYmxlRHluYW1pY0ludGVycnVwdEhhY2spfXJldHVybiBlLmNvbnRhaW5lclN0YXRlPXt9LHQuY2hlY2soSWFyLGYscCkoTSl9ZnVuY3Rpb24gZihNKXtyZXR1cm4gcyYmaygpLHkoYSksaChNKX1mdW5jdGlvbiBwKE0pe3JldHVybiBlLnBhcnNlci5sYXp5W2Uubm93KCkubGluZV09YSE9PXIubGVuZ3RoLG89ZS5ub3coKS5vZmZzZXQsdihNKX1mdW5jdGlvbiBoKE0pe3JldHVybiBlLmNvbnRhaW5lclN0YXRlPXt9LHQuYXR0ZW1wdChJYXIsbSx2KShNKX1mdW5jdGlvbiBtKE0pe3JldHVybiBhKyssci5wdXNoKFtlLmN1cnJlbnRDb25zdHJ1Y3QsZS5jb250YWluZXJTdGF0ZV0pLGgoTSl9ZnVuY3Rpb24gdihNKXtpZihNPT09bnVsbCl7cyYmaygpLHkoMCksdC5jb25zdW1lKE0pO3JldHVybn1yZXR1cm4gcz1zfHxlLnBhcnNlci5mbG93KGUubm93KCkpLHQuZW50ZXIoImNodW5rRmxvdyIse190b2tlbml6ZXI6cyxjb250ZW50VHlwZToiZmxvdyIscHJldmlvdXM6bn0pLGIoTSl9ZnVuY3Rpb24gYihNKXtpZihNPT09bnVsbCl7Zyh0LmV4aXQoImNodW5rRmxvdyIpLCEwKSx5KDApLHQuY29uc3VtZShNKTtyZXR1cm59cmV0dXJuIHV0KE0pPyh0LmNvbnN1bWUoTSksZyh0LmV4aXQoImNodW5rRmxvdyIpKSxhPTAsZS5pbnRlcnJ1cHQ9dm9pZCAwLGwpOih0LmNvbnN1bWUoTSksYil9ZnVuY3Rpb24gZyhNLE4pe2xldCBfPWUuc2xpY2VTdHJlYW0oTSk7aWYoTiYmXy5wdXNoKG51bGwpLE0ucHJldmlvdXM9bixuJiYobi5uZXh0PU0pLG49TSxzLmRlZmluZVNraXAoTS5zdGFydCkscy53cml0ZShfKSxlLnBhcnNlci5sYXp5W00uc3RhcnQubGluZV0pe2xldCBTPXMuZXZlbnRzLmxlbmd0aDtmb3IoO1MtLTspaWYocy5ldmVudHNbU11bMV0uc3RhcnQub2Zmc2V0PG8mJighcy5ldmVudHNbU11bMV0uZW5kfHxzLmV2ZW50c1tTXVsxXS5lbmQub2Zmc2V0Pm8pKXJldHVybjtsZXQgTz1lLmV2ZW50cy5sZW5ndGgsTD1PLEUsQjtmb3IoO0wtLTspaWYoZS5ldmVudHNbTF1bMF09PT0iZXhpdCImJmUuZXZlbnRzW0xdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7aWYoRSl7Qj1lLmV2ZW50c1tMXVsxXS5lbmQ7YnJlYWt9RT0hMH1mb3IoeShhKSxTPU87UzxlLmV2ZW50cy5sZW5ndGg7KWUuZXZlbnRzW1NdWzFdLmVuZD17Li4uQn0sUysrO3JzKGUuZXZlbnRzLEwrMSwwLGUuZXZlbnRzLnNsaWNlKE8pKSxlLmV2ZW50cy5sZW5ndGg9U319ZnVuY3Rpb24geShNKXtsZXQgTj1yLmxlbmd0aDtmb3IoO04tLSA+TTspe2xldCBfPXJbTl07ZS5jb250YWluZXJTdGF0ZT1fWzFdLF9bMF0uZXhpdC5jYWxsKGUsdCl9ci5sZW5ndGg9TX1mdW5jdGlvbiBrKCl7cy53cml0ZShbbnVsbF0pLG49dm9pZCAwLHM9dm9pZCAwLGUuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDB9fWZ1bmN0aW9uIF96YSh0LGUscil7cmV0dXJuIFd0KHQsdC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZG9jdW1lbnQsZSxyKSwibGluZVByZWZpeCIsdGhpcy5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KX12YXIgUGFyLElhcixOYXI9dSgoKT0+e2FzKCk7WXIoKTtHMCgpO1Bhcj17dG9rZW5pemU6enphfSxJYXI9e3Rva2VuaXplOl96YX07aSh6emEsImluaXRpYWxpemVEb2N1bWVudCIpO2koX3phLCJ0b2tlbml6ZUNvbnRhaW5lciIpfSk7ZnVuY3Rpb24gVHphKHQpe2xldCBlPXRoaXMscj10LmF0dGVtcHQoUTAsYSx0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxzLFd0KHQsdC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxzLHQuYXR0ZW1wdChWTGUscykpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gcjtmdW5jdGlvbiBhKG4pe2lmKG49PT1udWxsKXt0LmNvbnN1bWUobik7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nQmxhbmsiKSx0LmNvbnN1bWUobiksdC5leGl0KCJsaW5lRW5kaW5nQmxhbmsiKSxlLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHJ9ZnVuY3Rpb24gcyhuKXtpZihuPT09bnVsbCl7dC5jb25zdW1lKG4pO3JldHVybn1yZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShuKSx0LmV4aXQoImxpbmVFbmRpbmciKSxlLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHJ9fXZhciBPYXIsUmFyPXUoKCk9Pnt4NGUoKTthcygpO1lyKCk7T2FyPXt0b2tlbml6ZTpUemF9O2koVHphLCJpbml0aWFsaXplRmxvdyIpfSk7ZnVuY3Rpb24gRmFyKHQpe3JldHVybntyZXNvbHZlQWxsOkJhcih0PT09InRleHQiP0x6YTp2b2lkIDApLHRva2VuaXplOmV9O2Z1bmN0aW9uIGUocil7bGV0IGE9dGhpcyxzPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbdF0sbj1yLmF0dGVtcHQocyxvLGwpO3JldHVybiBvO2Z1bmN0aW9uIG8oZil7cmV0dXJuIGQoZik/bihmKTpsKGYpfWZ1bmN0aW9uIGwoZil7aWYoZj09PW51bGwpe3IuY29uc3VtZShmKTtyZXR1cm59cmV0dXJuIHIuZW50ZXIoImRhdGEiKSxyLmNvbnN1bWUoZiksY31mdW5jdGlvbiBjKGYpe3JldHVybiBkKGYpPyhyLmV4aXQoImRhdGEiKSxuKGYpKTooci5jb25zdW1lKGYpLGMpfWZ1bmN0aW9uIGQoZil7aWYoZj09PW51bGwpcmV0dXJuITA7bGV0IHA9c1tmXSxoPS0xO2lmKHApZm9yKDsrK2g8cC5sZW5ndGg7KXtsZXQgbT1wW2hdO2lmKCFtLnByZXZpb3VzfHxtLnByZXZpb3VzLmNhbGwoYSxhLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fWZ1bmN0aW9uIEJhcih0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKHIsYSl7bGV0IHM9LTEsbjtmb3IoOysrczw9ci5sZW5ndGg7KW49PT12b2lkIDA/cltzXSYmcltzXVsxXS50eXBlPT09ImRhdGEiJiYobj1zLHMrKyk6KCFyW3NdfHxyW3NdWzFdLnR5cGUhPT0iZGF0YSIpJiYocyE9PW4rMiYmKHJbbl1bMV0uZW5kPXJbcy0xXVsxXS5lbmQsci5zcGxpY2UobisyLHMtbi0yKSxzPW4rMiksbj12b2lkIDApO3JldHVybiB0P3QocixhKTpyfX1mdW5jdGlvbiBMemEodCxlKXtsZXQgcj0wO2Zvcig7KytyPD10Lmxlbmd0aDspaWYoKHI9PT10Lmxlbmd0aHx8dFtyXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmdFtyLTFdWzFdLnR5cGU9PT0iZGF0YSIpe2xldCBhPXRbci0xXVsxXSxzPWUuc2xpY2VTdHJlYW0oYSksbj1zLmxlbmd0aCxvPS0xLGw9MCxjO2Zvcig7bi0tOyl7bGV0IGQ9c1tuXTtpZih0eXBlb2YgZD09InN0cmluZyIpe2ZvcihvPWQubGVuZ3RoO2QuY2hhckNvZGVBdChvLTEpPT09MzI7KWwrKyxvLS07aWYobylicmVhaztvPS0xfWVsc2UgaWYoZD09PS0yKWM9ITAsbCsrO2Vsc2UgaWYoZCE9PS0xKXtuKys7YnJlYWt9fWlmKGUuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiZyPT09dC5sZW5ndGgmJihsPTApLGwpe2xldCBkPXt0eXBlOnI9PT10Lmxlbmd0aHx8Y3x8bDwyPyJsaW5lU3VmZml4IjoiaGFyZEJyZWFrVHJhaWxpbmciLHN0YXJ0OntfYnVmZmVySW5kZXg6bj9vOmEuc3RhcnQuX2J1ZmZlckluZGV4K28sX2luZGV4OmEuc3RhcnQuX2luZGV4K24sbGluZTphLmVuZC5saW5lLGNvbHVtbjphLmVuZC5jb2x1bW4tbCxvZmZzZXQ6YS5lbmQub2Zmc2V0LWx9LGVuZDp7Li4uYS5lbmR9fTthLmVuZD17Li4uZC5zdGFydH0sYS5zdGFydC5vZmZzZXQ9PT1hLmVuZC5vZmZzZXQ/T2JqZWN0LmFzc2lnbihhLGQpOih0LnNwbGljZShyLDAsWyJlbnRlciIsZCxlXSxbImV4aXQiLGQsZV0pLHIrPTIpfXIrK31yZXR1cm4gdH12YXIgSGFyLHFhcixWYXIsbURlPXUoKCk9PntIYXI9e3Jlc29sdmVBbGw6QmFyKCl9LHFhcj1GYXIoInN0cmluZyIpLFZhcj1GYXIoInRleHQiKTtpKEZhciwiaW5pdGlhbGl6ZUZhY3RvcnkiKTtpKEJhciwiY3JlYXRlUmVzb2x2ZXIiKTtpKEx6YSwicmVzb2x2ZUFsbExpbmVTdWZmaXhlcyIpfSk7dmFyIGdEZT17fTtWZShnRGUse2F0dGVudGlvbk1hcmtlcnM6KCk9Pk96YSxjb250ZW50SW5pdGlhbDooKT0+JHphLGRpc2FibGU6KCk9PlJ6YSxkb2N1bWVudDooKT0+RHphLGZsb3c6KCk9PkV6YSxmbG93SW5pdGlhbDooKT0+QXphLGluc2lkZVNwYW46KCk9Pk56YSxzdHJpbmc6KCk9Pkl6YSx0ZXh0OigpPT5QemF9KTt2YXIgRHphLCR6YSxBemEsRXphLEl6YSxQemEsTnphLE96YSxSemEsamFyPXUoKCk9Pnt4NGUoKTttRGUoKTtEemE9ezQyOmJvLDQzOmJvLDQ1OmJvLDQ4OmJvLDQ5OmJvLDUwOmJvLDUxOmJvLDUyOmJvLDUzOmJvLDU0OmJvLDU1OmJvLDU2OmJvLDU3OmJvLDYyOmw0ZX0sJHphPXs5MTpZTGV9LEF6YT17Wy0yXTpCeixbLTFdOkJ6LDMyOkJ6fSxFemE9ezM1OlpMZSw0MjpCNiw0NTpbYjRlLEI2XSw2MDpYTGUsNjE6YjRlLDk1OkI2LDk2OnU0ZSwxMjY6dTRlfSxJemE9ezM4OmQ0ZSw5MjpjNGV9LFB6YT17Wy01XTpWeixbLTRdOlZ6LFstM106VnosMzM6ZURlLDM4OmQ0ZSw0MjpGeiw2MDpbRkxlLEpMZV0sOTE6dERlLDkyOltLTGUsYzRlXSw5MzpGNiw5NTpGeiw5NjpCTGV9LE56YT17bnVsbDpbRnosSGFyXX0sT3phPXtudWxsOls0Miw5NV19LFJ6YT17bnVsbDpbXX19KTtmdW5jdGlvbiBVYXIodCxlLHIpe2xldCBhPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTpyJiZyLmxpbmV8fDEsY29sdW1uOnImJnIuY29sdW1ufHwxLG9mZnNldDpyJiZyLm9mZnNldHx8MH0scz17fSxuPVtdLG89W10sbD1bXSxjPSEwLGQ9e2F0dGVtcHQ6RShPKSxjaGVjazpFKEwpLGNvbnN1bWU6TixlbnRlcjpfLGV4aXQ6UyxpbnRlcnJ1cHQ6RShMLHtpbnRlcnJ1cHQ6ITB9KX0sZj17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6eSxldmVudHM6W10sbm93OmcscGFyc2VyOnQscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTp2LHNsaWNlU3RyZWFtOmIsd3JpdGU6bX0scD1lLnRva2VuaXplLmNhbGwoZixkKSxoO3JldHVybiBlLnJlc29sdmVBbGwmJm4ucHVzaChlKSxmO2Z1bmN0aW9uIG0oQSl7cmV0dXJuIG89Q3MobyxBKSxrKCksb1tvLmxlbmd0aC0xXSE9PW51bGw/W106KEIoZSwwKSxmLmV2ZW50cz15cChuLGYuZXZlbnRzLGYpLGYuZXZlbnRzKX1pKG0sIndyaXRlIik7ZnVuY3Rpb24gdihBLCQpe3JldHVybiBCemEoYihBKSwkKX1pKHYsInNsaWNlU2VyaWFsaXplIik7ZnVuY3Rpb24gYihBKXtyZXR1cm4gRnphKG8sQSl9aShiLCJzbGljZVN0cmVhbSIpO2Z1bmN0aW9uIGcoKXtsZXR7X2J1ZmZlckluZGV4OkEsX2luZGV4OiQsbGluZTpGLGNvbHVtbjpZLG9mZnNldDpHfT1hO3JldHVybntfYnVmZmVySW5kZXg6QSxfaW5kZXg6JCxsaW5lOkYsY29sdW1uOlksb2Zmc2V0Okd9fWkoZywibm93Iik7ZnVuY3Rpb24geShBKXtzW0EubGluZV09QS5jb2x1bW4seigpfWkoeSwiZGVmaW5lU2tpcCIpO2Z1bmN0aW9uIGsoKXtsZXQgQTtmb3IoO2EuX2luZGV4PG8ubGVuZ3RoOyl7bGV0ICQ9b1thLl9pbmRleF07aWYodHlwZW9mICQ9PSJzdHJpbmciKWZvcihBPWEuX2luZGV4LGEuX2J1ZmZlckluZGV4PDAmJihhLl9idWZmZXJJbmRleD0wKTthLl9pbmRleD09PUEmJmEuX2J1ZmZlckluZGV4PCQubGVuZ3RoOylNKCQuY2hhckNvZGVBdChhLl9idWZmZXJJbmRleCkpO2Vsc2UgTSgkKX19aShrLCJtYWluIik7ZnVuY3Rpb24gTShBKXtjPXZvaWQgMCxoPUEscD1wKEEpfWkoTSwiZ28iKTtmdW5jdGlvbiBOKEEpe3V0KEEpPyhhLmxpbmUrKyxhLmNvbHVtbj0xLGEub2Zmc2V0Kz1BPT09LTM/MjoxLHooKSk6QSE9PS0xJiYoYS5jb2x1bW4rKyxhLm9mZnNldCsrKSxhLl9idWZmZXJJbmRleDwwP2EuX2luZGV4Kys6KGEuX2J1ZmZlckluZGV4KyssYS5fYnVmZmVySW5kZXg9PT1vW2EuX2luZGV4XS5sZW5ndGgmJihhLl9idWZmZXJJbmRleD0tMSxhLl9pbmRleCsrKSksZi5wcmV2aW91cz1BLGM9ITB9aShOLCJjb25zdW1lIik7ZnVuY3Rpb24gXyhBLCQpe2xldCBGPSR8fHt9O3JldHVybiBGLnR5cGU9QSxGLnN0YXJ0PWcoKSxmLmV2ZW50cy5wdXNoKFsiZW50ZXIiLEYsZl0pLGwucHVzaChGKSxGfWkoXywiZW50ZXIiKTtmdW5jdGlvbiBTKEEpe2xldCAkPWwucG9wKCk7cmV0dXJuICQuZW5kPWcoKSxmLmV2ZW50cy5wdXNoKFsiZXhpdCIsJCxmXSksJH1pKFMsImV4aXQiKTtmdW5jdGlvbiBPKEEsJCl7QihBLCQuZnJvbSl9aShPLCJvbnN1Y2Nlc3NmdWxjb25zdHJ1Y3QiKTtmdW5jdGlvbiBMKEEsJCl7JC5yZXN0b3JlKCl9aShMLCJvbnN1Y2Nlc3NmdWxjaGVjayIpO2Z1bmN0aW9uIEUoQSwkKXtyZXR1cm4gRjtmdW5jdGlvbiBGKFksRyxaKXtsZXQgZGUsRCxRLGZlO3JldHVybiBBcnJheS5pc0FycmF5KFkpP1coWSk6InRva2VuaXplImluIFk/VyhbWV0pOlQoWSk7ZnVuY3Rpb24gVChIKXtyZXR1cm4gVTtmdW5jdGlvbiBVKGope2xldCBhZT1qIT09bnVsbCYmSFtqXSxYPWohPT1udWxsJiZILm51bGwsSj1bLi4uQXJyYXkuaXNBcnJheShhZSk/YWU6YWU/W2FlXTpbXSwuLi5BcnJheS5pc0FycmF5KFgpP1g6WD9bWF06W11dO3JldHVybiBXKEopKGopfX1mdW5jdGlvbiBXKEgpe3JldHVybiBkZT1ILEQ9MCxILmxlbmd0aD09PTA/WjpwZShIW0RdKX1mdW5jdGlvbiBwZShIKXtyZXR1cm4gVTtmdW5jdGlvbiBVKGope3JldHVybiBmZT1DKCksUT1ILEgucGFydGlhbHx8KGYuY3VycmVudENvbnN0cnVjdD1IKSxILm5hbWUmJmYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKEgubmFtZSk/cShqKTpILnRva2VuaXplLmNhbGwoJD9PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUoZiksJCk6ZixkLG1lLHEpKGopfX1mdW5jdGlvbiBtZShIKXtyZXR1cm4gYz0hMCxBKFEsZmUpLEd9ZnVuY3Rpb24gcShIKXtyZXR1cm4gYz0hMCxmZS5yZXN0b3JlKCksKytEPGRlLmxlbmd0aD9wZShkZVtEXSk6Wn19fWkoRSwiY29uc3RydWN0RmFjdG9yeSIpO2Z1bmN0aW9uIEIoQSwkKXtBLnJlc29sdmVBbGwmJiFuLmluY2x1ZGVzKEEpJiZuLnB1c2goQSksQS5yZXNvbHZlJiZycyhmLmV2ZW50cywkLGYuZXZlbnRzLmxlbmd0aC0kLEEucmVzb2x2ZShmLmV2ZW50cy5zbGljZSgkKSxmKSksQS5yZXNvbHZlVG8mJihmLmV2ZW50cz1BLnJlc29sdmVUbyhmLmV2ZW50cyxmKSl9aShCLCJhZGRSZXN1bHQiKTtmdW5jdGlvbiBDKCl7bGV0IEE9ZygpLCQ9Zi5wcmV2aW91cyxGPWYuY3VycmVudENvbnN0cnVjdCxZPWYuZXZlbnRzLmxlbmd0aCxHPUFycmF5LmZyb20obCk7cmV0dXJue2Zyb206WSxyZXN0b3JlOlp9O2Z1bmN0aW9uIFooKXthPUEsZi5wcmV2aW91cz0kLGYuY3VycmVudENvbnN0cnVjdD1GLGYuZXZlbnRzLmxlbmd0aD1ZLGw9Ryx6KCl9fWkoQywic3RvcmUiKTtmdW5jdGlvbiB6KCl7YS5saW5lIGluIHMmJmEuY29sdW1uPDImJihhLmNvbHVtbj1zW2EubGluZV0sYS5vZmZzZXQrPXNbYS5saW5lXS0xKX1pKHosImFjY291bnRGb3JQb3RlbnRpYWxTa2lwIil9ZnVuY3Rpb24gRnphKHQsZSl7bGV0IHI9ZS5zdGFydC5faW5kZXgsYT1lLnN0YXJ0Ll9idWZmZXJJbmRleCxzPWUuZW5kLl9pbmRleCxuPWUuZW5kLl9idWZmZXJJbmRleCxvO2lmKHI9PT1zKW89W3Rbcl0uc2xpY2UoYSxuKV07ZWxzZXtpZihvPXQuc2xpY2UocixzKSxhPi0xKXtsZXQgbD1vWzBdO3R5cGVvZiBsPT0ic3RyaW5nIj9vWzBdPWwuc2xpY2UoYSk6by5zaGlmdCgpfW4+MCYmby5wdXNoKHRbc10uc2xpY2UoMCxuKSl9cmV0dXJuIG99ZnVuY3Rpb24gQnphKHQsZSl7bGV0IHI9LTEsYT1bXSxzO2Zvcig7KytyPHQubGVuZ3RoOyl7bGV0IG49dFtyXSxvO2lmKHR5cGVvZiBuPT0ic3RyaW5nIilvPW47ZWxzZSBzd2l0Y2gobil7Y2FzZS01OntvPSJcciI7YnJlYWt9Y2FzZS00OntvPWAKYDticmVha31jYXNlLTM6e289YFxyCmA7YnJlYWt9Y2FzZS0yOntvPWU/IiAiOiIJIjticmVha31jYXNlLTE6e2lmKCFlJiZzKWNvbnRpbnVlO289IiAiO2JyZWFrfWRlZmF1bHQ6bz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pfXM9bj09PS0yLGEucHVzaChvKX1yZXR1cm4gYS5qb2luKCIiKX12YXIgV2FyPXUoKCk9PntZcigpO0cwKCk7UnooKTtpKFVhciwiY3JlYXRlVG9rZW5pemVyIik7aShGemEsInNsaWNlQ2h1bmtzIik7aShCemEsInNlcmlhbGl6ZUNodW5rcyIpfSk7ZnVuY3Rpb24ganoodCl7bGV0IGE9e2NvbnN0cnVjdHM6YTRlKFtnRGUsLi4uKHR8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6cyhBYXIpLGRlZmluZWQ6W10sZG9jdW1lbnQ6cyhQYXIpLGZsb3c6cyhPYXIpLGxhenk6e30sc3RyaW5nOnMocWFyKSx0ZXh0OnMoVmFyKX07cmV0dXJuIGE7ZnVuY3Rpb24gcyhuKXtyZXR1cm4gbztmdW5jdGlvbiBvKGwpe3JldHVybiBVYXIoYSxuLGwpfX19dmFyIGJEZT11KCgpPT57czRlKCk7RWFyKCk7TmFyKCk7UmFyKCk7bURlKCk7amFyKCk7V2FyKCk7aShqeiwicGFyc2UiKX0pO2Z1bmN0aW9uIFV6KHQpe2Zvcig7IXA0ZSh0KTspO3JldHVybiB0fXZhciB4RGU9dSgoKT0+e3FMZSgpO2koVXosInBvc3Rwcm9jZXNzIil9KTtmdW5jdGlvbiBXeigpe2xldCB0PTEsZT0iIixyPSEwLGE7cmV0dXJuIHM7ZnVuY3Rpb24gcyhuLG8sbCl7bGV0IGM9W10sZCxmLHAsaCxtO2ZvcihuPWUrKHR5cGVvZiBuPT0ic3RyaW5nIj9uLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKG98fHZvaWQgMCkuZGVjb2RlKG4pKSxwPTAsZT0iIixyJiYobi5jaGFyQ29kZUF0KDApPT09NjUyNzkmJnArKyxyPXZvaWQgMCk7cDxuLmxlbmd0aDspe2lmKEdhci5sYXN0SW5kZXg9cCxkPUdhci5leGVjKG4pLGg9ZCYmZC5pbmRleCE9PXZvaWQgMD9kLmluZGV4Om4ubGVuZ3RoLG09bi5jaGFyQ29kZUF0KGgpLCFkKXtlPW4uc2xpY2UocCk7YnJlYWt9aWYobT09PTEwJiZwPT09aCYmYSljLnB1c2goLTMpLGE9dm9pZCAwO2Vsc2Ugc3dpdGNoKGEmJihjLnB1c2goLTUpLGE9dm9pZCAwKSxwPGgmJihjLnB1c2gobi5zbGljZShwLGgpKSx0Kz1oLXApLG0pe2Nhc2UgMDp7Yy5wdXNoKDY1NTMzKSx0Kys7YnJlYWt9Y2FzZSA5Ontmb3IoZj1NYXRoLmNlaWwodC80KSo0LGMucHVzaCgtMik7dCsrPGY7KWMucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7Yy5wdXNoKC00KSx0PTE7YnJlYWt9ZGVmYXVsdDphPSEwLHQ9MX1wPWgrMX1yZXR1cm4gbCYmKGEmJmMucHVzaCgtNSksZSYmYy5wdXNoKGUpLGMucHVzaChudWxsKSksY319dmFyIEdhcix2RGU9dSgoKT0+e0dhcj0vW1wwXHRcblxyXS9nO2koV3osInByZXByb2Nlc3MiKX0pO2Z1bmN0aW9uIHFmbih0LGUscil7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIiYmKHI9ZSxlPXZvaWQgMCksZkRlKHIpKFV6KGp6KHIpLmRvY3VtZW50KCkud3JpdGUoV3ooKSh0LGUsITApKSkpfXZhciBZYXI9dSgoKT0+e2hEZSgpO2JEZSgpO3hEZSgpO3ZEZSgpO2hEZSgpO2JEZSgpO3hEZSgpO3ZEZSgpO2kocWZuLCJtaWNyb21hcmsiKX0pO2Z1bmN0aW9uIHlEZSh0LGUscil7cmV0dXJuIGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKHI9ZSxlPXZvaWQgMCksSHphKHIpKFV6KGp6KHIpLmRvY3VtZW50KCkud3JpdGUoV3ooKSh0LGUsITApKSkpfWZ1bmN0aW9uIEh6YSh0KXtsZXQgZT17dHJhbnNmb3JtczpbXSxjYW5Db250YWluRW9sczpbImVtcGhhc2lzIiwiZnJhZ21lbnQiLCJoZWFkaW5nIiwicGFyYWdyYXBoIiwic3Ryb25nIl0sZW50ZXI6e2F1dG9saW5rOm4oZWUpLGF1dG9saW5rUHJvdG9jb2w6RSxhdXRvbGlua0VtYWlsOkUsYXR4SGVhZGluZzpuKEspLGJsb2NrUXVvdGU6bihqKSxjaGFyYWN0ZXJFc2NhcGU6RSxjaGFyYWN0ZXJSZWZlcmVuY2U6RSxjb2RlRmVuY2VkOm4oYWUpLGNvZGVGZW5jZWRGZW5jZUluZm86byxjb2RlRmVuY2VkRmVuY2VNZXRhOm8sY29kZUluZGVudGVkOm4oYWUsbyksY29kZVRleHQ6bihYLG8pLGNvZGVUZXh0RGF0YTpFLGRhdGE6RSxjb2RlRmxvd1ZhbHVlOkUsZGVmaW5pdGlvbjpuKEopLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpvLGRlZmluaXRpb25MYWJlbFN0cmluZzpvLGRlZmluaXRpb25UaXRsZVN0cmluZzpvLGVtcGhhc2lzOm4oeGUpLGhhcmRCcmVha0VzY2FwZTpuKFYpLGhhcmRCcmVha1RyYWlsaW5nOm4oViksaHRtbEZsb3c6bihsZSxvKSxodG1sRmxvd0RhdGE6RSxodG1sVGV4dDpuKGxlLG8pLGh0bWxUZXh0RGF0YTpFLGltYWdlOm4obmUpLGxhYmVsOm8sbGluazpuKGVlKSxsaXN0SXRlbTpuKEhlKSxsaXN0SXRlbVZhbHVlOmgsbGlzdE9yZGVyZWQ6bih6ZSxwKSxsaXN0VW5vcmRlcmVkOm4oemUpLHBhcmFncmFwaDpuKEdlKSxyZWZlcmVuY2U6VCxyZWZlcmVuY2VTdHJpbmc6byxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOm8scmVzb3VyY2VUaXRsZVN0cmluZzpvLHNldGV4dEhlYWRpbmc6bihLKSxzdHJvbmc6bihvdCksdGhlbWF0aWNCcmVhazpuKF9lKX0sZXhpdDp7YXR4SGVhZGluZzpjKCksYXR4SGVhZGluZ1NlcXVlbmNlOl8sYXV0b2xpbms6YygpLGF1dG9saW5rRW1haWw6VSxhdXRvbGlua1Byb3RvY29sOkgsYmxvY2tRdW90ZTpjKCksY2hhcmFjdGVyRXNjYXBlVmFsdWU6QixjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpwZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOnBlLGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOm1lLGNoYXJhY3RlclJlZmVyZW5jZTpxLGNvZGVGZW5jZWQ6YyhnKSxjb2RlRmVuY2VkRmVuY2U6Yixjb2RlRmVuY2VkRmVuY2VJbmZvOm0sY29kZUZlbmNlZEZlbmNlTWV0YTp2LGNvZGVGbG93VmFsdWU6Qixjb2RlSW5kZW50ZWQ6Yyh5KSxjb2RlVGV4dDpjKEYpLGNvZGVUZXh0RGF0YTpCLGRhdGE6QixkZWZpbml0aW9uOmMoKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6TixkZWZpbml0aW9uTGFiZWxTdHJpbmc6ayxkZWZpbml0aW9uVGl0bGVTdHJpbmc6TSxlbXBoYXNpczpjKCksaGFyZEJyZWFrRXNjYXBlOmMoeiksaGFyZEJyZWFrVHJhaWxpbmc6Yyh6KSxodG1sRmxvdzpjKEEpLGh0bWxGbG93RGF0YTpCLGh0bWxUZXh0OmMoJCksaHRtbFRleHREYXRhOkIsaW1hZ2U6YyhHKSxsYWJlbDpkZSxsYWJlbFRleHQ6WixsaW5lRW5kaW5nOkMsbGluazpjKFkpLGxpc3RJdGVtOmMoKSxsaXN0T3JkZXJlZDpjKCksbGlzdFVub3JkZXJlZDpjKCkscGFyYWdyYXBoOmMoKSxyZWZlcmVuY2VTdHJpbmc6VyxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOkQscmVzb3VyY2VUaXRsZVN0cmluZzpRLHJlc291cmNlOmZlLHNldGV4dEhlYWRpbmc6YyhMKSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOk8sc2V0ZXh0SGVhZGluZ1RleHQ6UyxzdHJvbmc6YygpLHRoZW1hdGljQnJlYWs6YygpfX07WmFyKGUsKHR8fHt9KS5tZGFzdEV4dGVuc2lvbnN8fFtdKTtsZXQgcj17fTtyZXR1cm4gYTtmdW5jdGlvbiBhKG9lKXtsZXQgc2U9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxjZT17c3RhY2s6W3NlXSx0b2tlblN0YWNrOltdLGNvbmZpZzplLGVudGVyOmwsZXhpdDpkLGJ1ZmZlcjpvLHJlc3VtZTpmLGRhdGE6cn0sVGU9W10scWU9LTE7Zm9yKDsrK3FlPG9lLmxlbmd0aDspaWYob2VbcWVdWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQifHxvZVtxZV1bMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkIilpZihvZVtxZV1bMF09PT0iZW50ZXIiKVRlLnB1c2gocWUpO2Vsc2V7bGV0IG50PVRlLnBvcCgpO3FlPXMob2UsbnQscWUpfWZvcihxZT0tMTsrK3FlPG9lLmxlbmd0aDspe2xldCBudD1lW29lW3FlXVswXV07S2FyLmNhbGwobnQsb2VbcWVdWzFdLnR5cGUpJiZudFtvZVtxZV1bMV0udHlwZV0uY2FsbChPYmplY3QuYXNzaWduKHtzbGljZVNlcmlhbGl6ZTpvZVtxZV1bMl0uc2xpY2VTZXJpYWxpemV9LGNlKSxvZVtxZV1bMV0pfWlmKGNlLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBudD1jZS50b2tlblN0YWNrW2NlLnRva2VuU3RhY2subGVuZ3RoLTFdOyhudFsxXXx8UWFyKS5jYWxsKGNlLHZvaWQgMCxudFswXSl9Zm9yKHNlLnBvc2l0aW9uPXtzdGFydDp3cChvZS5sZW5ndGg+MD9vZVswXVsxXS5zdGFydDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSksZW5kOndwKG9lLmxlbmd0aD4wP29lW29lLmxlbmd0aC0yXVsxXS5lbmQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pfSxxZT0tMTsrK3FlPGUudHJhbnNmb3Jtcy5sZW5ndGg7KXNlPWUudHJhbnNmb3Jtc1txZV0oc2UpfHxzZTtyZXR1cm4gc2V9ZnVuY3Rpb24gcyhvZSxzZSxjZSl7bGV0IFRlPXNlLTEscWU9LTEsbnQ9ITEsdnQsTGUsd2UsT2U7Zm9yKDsrK1RlPD1jZTspe2xldCBnZT1vZVtUZV07c3dpdGNoKGdlWzFdLnR5cGUpe2Nhc2UibGlzdFVub3JkZXJlZCI6Y2FzZSJsaXN0T3JkZXJlZCI6Y2FzZSJibG9ja1F1b3RlIjp7Z2VbMF09PT0iZW50ZXIiP3FlKys6cWUtLSxPZT12b2lkIDA7YnJlYWt9Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOntnZVswXT09PSJlbnRlciImJih2dCYmIU9lJiYhcWUmJiF3ZSYmKHdlPVRlKSxPZT12b2lkIDApO2JyZWFrfWNhc2UibGluZVByZWZpeCI6Y2FzZSJsaXN0SXRlbVZhbHVlIjpjYXNlImxpc3RJdGVtTWFya2VyIjpjYXNlImxpc3RJdGVtUHJlZml4IjpjYXNlImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSI6YnJlYWs7ZGVmYXVsdDpPZT12b2lkIDB9aWYoIXFlJiZnZVswXT09PSJlbnRlciImJmdlWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgifHxxZT09PS0xJiZnZVswXT09PSJleGl0IiYmKGdlWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCJ8fGdlWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQiKSl7aWYodnQpe2xldCBiZT1UZTtmb3IoTGU9dm9pZCAwO2JlLS07KXtsZXQgSWU9b2VbYmVdO2lmKEllWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fEllWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIil7aWYoSWVbMF09PT0iZXhpdCIpY29udGludWU7TGUmJihvZVtMZV1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixudD0hMCksSWVbMV0udHlwZT0ibGluZUVuZGluZyIsTGU9YmV9ZWxzZSBpZighKEllWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fEllWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeCJ8fEllWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UifHxJZVsxXS50eXBlPT09ImJsb2NrUXVvdGVNYXJrZXIifHxJZVsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWt9d2UmJighTGV8fHdlPExlKSYmKHZ0Ll9zcHJlYWQ9ITApLHZ0LmVuZD1PYmplY3QuYXNzaWduKHt9LExlP29lW0xlXVsxXS5zdGFydDpnZVsxXS5lbmQpLG9lLnNwbGljZShMZXx8VGUsMCxbImV4aXQiLHZ0LGdlWzJdXSksVGUrKyxjZSsrfWlmKGdlWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiKXtsZXQgYmU9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZ2VbMV0uc3RhcnQpLGVuZDp2b2lkIDB9O3Z0PWJlLG9lLnNwbGljZShUZSwwLFsiZW50ZXIiLGJlLGdlWzJdXSksVGUrKyxjZSsrLHdlPXZvaWQgMCxPZT0hMH19fXJldHVybiBvZVtzZV1bMV0uX3NwcmVhZD1udCxjZX1mdW5jdGlvbiBuKG9lLHNlKXtyZXR1cm4gY2U7ZnVuY3Rpb24gY2UoVGUpe2wuY2FsbCh0aGlzLG9lKFRlKSxUZSksc2UmJnNlLmNhbGwodGhpcyxUZSl9fWZ1bmN0aW9uIG8oKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIGwob2Usc2UsY2Upe3RoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaChvZSksdGhpcy5zdGFjay5wdXNoKG9lKSx0aGlzLnRva2VuU3RhY2sucHVzaChbc2UsY2V8fHZvaWQgMF0pLG9lLnBvc2l0aW9uPXtzdGFydDp3cChzZS5zdGFydCksZW5kOnZvaWQgMH19ZnVuY3Rpb24gYyhvZSl7cmV0dXJuIHNlO2Z1bmN0aW9uIHNlKGNlKXtvZSYmb2UuY2FsbCh0aGlzLGNlKSxkLmNhbGwodGhpcyxjZSl9fWZ1bmN0aW9uIGQob2Usc2Upe2xldCBjZT10aGlzLnN0YWNrLnBvcCgpLFRlPXRoaXMudG9rZW5TdGFjay5wb3AoKTtpZihUZSlUZVswXS50eXBlIT09b2UudHlwZSYmKHNlP3NlLmNhbGwodGhpcyxvZSxUZVswXSk6KFRlWzFdfHxRYXIpLmNhbGwodGhpcyxvZSxUZVswXSkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgYCIrb2UudHlwZSsiYCAoIitncCh7c3RhcnQ6b2Uuc3RhcnQsZW5kOm9lLmVuZH0pKyIpOiBpdFx1MjAxOXMgbm90IG9wZW4iKTtjZS5wb3NpdGlvbi5lbmQ9d3Aob2UuZW5kKX1mdW5jdGlvbiBmKCl7cmV0dXJuIEk2KHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIHAoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGgob2Upe2lmKHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUpe2xldCBzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO3NlLnN0YXJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKG9lKSwxMCksdGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZT12b2lkIDB9fWZ1bmN0aW9uIG0oKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLmxhbmc9b2V9ZnVuY3Rpb24gdigpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UubWV0YT1vZX1mdW5jdGlvbiBiKCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIGcoKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnZhbHVlPW9lLnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT12b2lkIDB9ZnVuY3Rpb24geSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2UucmVwbGFjZSgvKFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gayhvZSl7bGV0IHNlPXRoaXMucmVzdW1lKCksY2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtjZS5sYWJlbD1zZSxjZS5pZGVudGlmaWVyPUhpKHRoaXMuc2xpY2VTZXJpYWxpemUob2UpKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIE0oKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnRpdGxlPW9lfWZ1bmN0aW9uIE4oKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnVybD1vZX1mdW5jdGlvbiBfKG9lKXtsZXQgc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZighc2UuZGVwdGgpe2xldCBjZT10aGlzLnNsaWNlU2VyaWFsaXplKG9lKS5sZW5ndGg7c2UuZGVwdGg9Y2V9fWZ1bmN0aW9uIFMoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBPKG9lKXtsZXQgc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKG9lKS5jb2RlUG9pbnRBdCgwKT09PTYxPzE6Mn1mdW5jdGlvbiBMKCl7dGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmc9dm9pZCAwfWZ1bmN0aW9uIEUob2Upe2xldCBjZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLFRlPWNlW2NlLmxlbmd0aC0xXTsoIVRlfHxUZS50eXBlIT09InRleHQiKSYmKFRlPURlKCksVGUucG9zaXRpb249e3N0YXJ0OndwKG9lLnN0YXJ0KSxlbmQ6dm9pZCAwfSxjZS5wdXNoKFRlKSksdGhpcy5zdGFjay5wdXNoKFRlKX1mdW5jdGlvbiBCKG9lKXtsZXQgc2U9dGhpcy5zdGFjay5wb3AoKTtzZS52YWx1ZSs9dGhpcy5zbGljZVNlcmlhbGl6ZShvZSksc2UucG9zaXRpb24uZW5kPXdwKG9lLmVuZCl9ZnVuY3Rpb24gQyhvZSl7bGV0IHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmF0SGFyZEJyZWFrKXtsZXQgY2U9c2UuY2hpbGRyZW5bc2UuY2hpbGRyZW4ubGVuZ3RoLTFdO2NlLnBvc2l0aW9uLmVuZD13cChvZS5lbmQpLHRoaXMuZGF0YS5hdEhhcmRCcmVhaz12b2lkIDA7cmV0dXJufSF0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZyYmZS5jYW5Db250YWluRW9scy5pbmNsdWRlcyhzZS50eXBlKSYmKEUuY2FsbCh0aGlzLG9lKSxCLmNhbGwodGhpcyxvZSkpfWZ1bmN0aW9uIHooKXt0aGlzLmRhdGEuYXRIYXJkQnJlYWs9ITB9ZnVuY3Rpb24gQSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2V9ZnVuY3Rpb24gJCgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2V9ZnVuY3Rpb24gRigpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2V9ZnVuY3Rpb24gWSgpe2xldCBvZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IHNlPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO29lLnR5cGUrPSJSZWZlcmVuY2UiLG9lLnJlZmVyZW5jZVR5cGU9c2UsZGVsZXRlIG9lLnVybCxkZWxldGUgb2UudGl0bGV9ZWxzZSBkZWxldGUgb2UuaWRlbnRpZmllcixkZWxldGUgb2UubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIEcoKXtsZXQgb2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCBzZT10aGlzLmRhdGEucmVmZXJlbmNlVHlwZXx8InNob3J0Y3V0IjtvZS50eXBlKz0iUmVmZXJlbmNlIixvZS5yZWZlcmVuY2VUeXBlPXNlLGRlbGV0ZSBvZS51cmwsZGVsZXRlIG9lLnRpdGxlfWVsc2UgZGVsZXRlIG9lLmlkZW50aWZpZXIsZGVsZXRlIG9lLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBaKG9lKXtsZXQgc2U9dGhpcy5zbGljZVNlcmlhbGl6ZShvZSksY2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtjZS5sYWJlbD10NGUoc2UpLGNlLmlkZW50aWZpZXI9SGkoc2UpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZGUoKXtsZXQgb2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXSxzZT10aGlzLnJlc3VtZSgpLGNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlPSEwLGNlLnR5cGU9PT0ibGluayIpe2xldCBUZT1vZS5jaGlsZHJlbjtjZS5jaGlsZHJlbj1UZX1lbHNlIGNlLmFsdD1zZX1mdW5jdGlvbiBEKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS51cmw9b2V9ZnVuY3Rpb24gUSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudGl0bGU9b2V9ZnVuY3Rpb24gZmUoKXt0aGlzLmRhdGEuaW5SZWZlcmVuY2U9dm9pZCAwfWZ1bmN0aW9uIFQoKXt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT0iY29sbGFwc2VkIn1mdW5jdGlvbiBXKG9lKXtsZXQgc2U9dGhpcy5yZXN1bWUoKSxjZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2NlLmxhYmVsPXNlLGNlLmlkZW50aWZpZXI9SGkodGhpcy5zbGljZVNlcmlhbGl6ZShvZSkpLnRvTG93ZXJDYXNlKCksdGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImZ1bGwifWZ1bmN0aW9uIHBlKG9lKXt0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT1vZS50eXBlfWZ1bmN0aW9uIG1lKG9lKXtsZXQgc2U9dGhpcy5zbGljZVNlcmlhbGl6ZShvZSksY2U9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsVGU7Y2U/KFRlPXR5KHNlLGNlPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOlRlPXZwKHNlKTtsZXQgcWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtxZS52YWx1ZSs9VGV9ZnVuY3Rpb24gcShvZSl7bGV0IHNlPXRoaXMuc3RhY2sucG9wKCk7c2UucG9zaXRpb24uZW5kPXdwKG9lLmVuZCl9ZnVuY3Rpb24gSChvZSl7Qi5jYWxsKHRoaXMsb2UpO2xldCBzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKG9lKX1mdW5jdGlvbiBVKG9lKXtCLmNhbGwodGhpcyxvZSk7bGV0IHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudXJsPSJtYWlsdG86Iit0aGlzLnNsaWNlU2VyaWFsaXplKG9lKX1mdW5jdGlvbiBqKCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBhZSgpe3JldHVybnt0eXBlOiJjb2RlIixsYW5nOm51bGwsbWV0YTpudWxsLHZhbHVlOiIifX1mdW5jdGlvbiBYKCl7cmV0dXJue3R5cGU6ImlubGluZUNvZGUiLHZhbHVlOiIifX1mdW5jdGlvbiBKKCl7cmV0dXJue3R5cGU6ImRlZmluaXRpb24iLGlkZW50aWZpZXI6IiIsbGFiZWw6bnVsbCx0aXRsZTpudWxsLHVybDoiIn19ZnVuY3Rpb24geGUoKXtyZXR1cm57dHlwZToiZW1waGFzaXMiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBLKCl7cmV0dXJue3R5cGU6ImhlYWRpbmciLGRlcHRoOjAsY2hpbGRyZW46W119fWZ1bmN0aW9uIFYoKXtyZXR1cm57dHlwZToiYnJlYWsifX1mdW5jdGlvbiBsZSgpe3JldHVybnt0eXBlOiJodG1sIix2YWx1ZToiIn19ZnVuY3Rpb24gbmUoKXtyZXR1cm57dHlwZToiaW1hZ2UiLHRpdGxlOm51bGwsdXJsOiIiLGFsdDpudWxsfX1mdW5jdGlvbiBlZSgpe3JldHVybnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gemUob2Upe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOm9lLnR5cGU9PT0ibGlzdE9yZGVyZWQiLHN0YXJ0Om51bGwsc3ByZWFkOm9lLl9zcHJlYWQsY2hpbGRyZW46W119fWZ1bmN0aW9uIEhlKG9lKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpvZS5fc3ByZWFkLGNoZWNrZWQ6bnVsbCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gR2UoKXtyZXR1cm57dHlwZToicGFyYWdyYXBoIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gb3QoKXtyZXR1cm57dHlwZToic3Ryb25nIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gRGUoKXtyZXR1cm57dHlwZToidGV4dCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIF9lKCl7cmV0dXJue3R5cGU6InRoZW1hdGljQnJlYWsifX19ZnVuY3Rpb24gd3AodCl7cmV0dXJue2xpbmU6dC5saW5lLGNvbHVtbjp0LmNvbHVtbixvZmZzZXQ6dC5vZmZzZXR9fWZ1bmN0aW9uIFphcih0LGUpe2xldCByPS0xO2Zvcig7KytyPGUubGVuZ3RoOyl7bGV0IGE9ZVtyXTtBcnJheS5pc0FycmF5KGEpP1phcih0LGEpOnF6YSh0LGEpfX1mdW5jdGlvbiBxemEodCxlKXtsZXQgcjtmb3IociBpbiBlKWlmKEthci5jYWxsKGUscikpc3dpdGNoKHIpe2Nhc2UiY2FuQ29udGFpbkVvbHMiOntsZXQgYT1lW3JdO2EmJnRbcl0ucHVzaCguLi5hKTticmVha31jYXNlInRyYW5zZm9ybXMiOntsZXQgYT1lW3JdO2EmJnRbcl0ucHVzaCguLi5hKTticmVha31jYXNlImVudGVyIjpjYXNlImV4aXQiOntsZXQgYT1lW3JdO2EmJk9iamVjdC5hc3NpZ24odFtyXSxhKTticmVha319fWZ1bmN0aW9uIFFhcih0LGUpe3Rocm93IHQ/bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgYCIrdC50eXBlKyJgICgiK2dwKHtzdGFydDp0LnN0YXJ0LGVuZDp0LmVuZH0pKyIpOiBhIGRpZmZlcmVudCB0b2tlbiAoYCIrZS50eXBlKyJgLCAiK2dwKHtzdGFydDplLnN0YXJ0LGVuZDplLmVuZH0pKyIpIGlzIG9wZW4iKTpuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBkb2N1bWVudCwgYSB0b2tlbiAoYCIrZS50eXBlKyJgLCAiK2dwKHtzdGFydDplLnN0YXJ0LGVuZDplLmVuZH0pKyIpIGlzIHN0aWxsIG9wZW4iKX12YXIgS2FyLFhhcj11KCgpPT57WmRlKCk7WWFyKCk7ZTRlKCk7U0xlKCk7eHAoKTtPeigpO09UZSgpO0thcj17fS5oYXNPd25Qcm9wZXJ0eTtpKHlEZSwiZnJvbU1hcmtkb3duIik7aShIemEsImNvbXBpbGVyIik7aSh3cCwicG9pbnQiKTtpKFphciwiY29uZmlndXJlIik7aShxemEsImV4dGVuc2lvbiIpO2koUWFyLCJkZWZhdWx0T25FcnJvciIpfSk7dmFyIEphcj11KCgpPT57WGFyKCl9KTtmdW5jdGlvbiBpeSh0KXtsZXQgZT10aGlzO2UucGFyc2VyPXI7ZnVuY3Rpb24gcihhKXtyZXR1cm4geURlKGEsey4uLmUuZGF0YSgic2V0dGluZ3MiKSwuLi50LGV4dGVuc2lvbnM6ZS5kYXRhKCJtaWNyb21hcmtFeHRlbnNpb25zIil8fFtdLG1kYXN0RXh0ZW5zaW9uczplLmRhdGEoImZyb21NYXJrZG93bkV4dGVuc2lvbnMiKXx8W119KX1pKHIsInBhcnNlciIpfXZhciBlaXI9dSgoKT0+e0phcigpO2koaXksInJlbWFya1BhcnNlIil9KTt2YXIgdGlyPXUoKCk9PntlaXIoKX0pO3ZhciByaXI9TnQoKHVobix3RGUpPT57KGZ1bmN0aW9uKCl7dmFyIHQ7dHlwZW9mIHdEZTwidSI/dD13RGUuZXhwb3J0cz1hOnQ9KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN8fCgwLGV2YWwpKCJ0aGlzIil9KSgpLHQuZm9ybWF0PWEsdC52c3ByaW50Zj1yLHR5cGVvZiBjb25zb2xlPCJ1IiYmdHlwZW9mIGNvbnNvbGUubG9nPT0iZnVuY3Rpb24iJiYodC5wcmludGY9ZSk7ZnVuY3Rpb24gZSgpe2NvbnNvbGUubG9nKGEuYXBwbHkobnVsbCxhcmd1bWVudHMpKX1pKGUsInByaW50ZiIpO2Z1bmN0aW9uIHIocyxuKXtyZXR1cm4gYS5hcHBseShudWxsLFtzXS5jb25jYXQobikpfWkociwidnNwcmludGYiKTtmdW5jdGlvbiBhKHMpe2Zvcih2YXIgbj0xLG89W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLGw9MCxjPXMubGVuZ3RoLGQ9IiIsZixwPSExLGgsbSx2PSExLGIsZz1pKGZ1bmN0aW9uKCl7cmV0dXJuIG9bbisrXX0sIm5leHRBcmciKSx5PWkoZnVuY3Rpb24oKXtmb3IodmFyIGs9IiI7L1xkLy50ZXN0KHNbbF0pOylrKz1zW2wrK10sZj1zW2xdO3JldHVybiBrLmxlbmd0aD4wP3BhcnNlSW50KGspOm51bGx9LCJzbHVycE51bWJlciIpO2w8YzsrK2wpaWYoZj1zW2xdLHApc3dpdGNoKHA9ITEsZj09Ii4iPyh2PSExLGY9c1srK2xdKTpmPT0iMCImJnNbbCsxXT09Ii4iPyh2PSEwLGwrPTIsZj1zW2xdKTp2PSEwLGI9eSgpLGYpe2Nhc2UiYiI6ZCs9cGFyc2VJbnQoZygpLDEwKS50b1N0cmluZygyKTticmVhaztjYXNlImMiOmg9ZygpLHR5cGVvZiBoPT0ic3RyaW5nInx8aCBpbnN0YW5jZW9mIFN0cmluZz9kKz1oOmQrPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoaCwxMCkpO2JyZWFrO2Nhc2UiZCI6ZCs9cGFyc2VJbnQoZygpLDEwKTticmVhaztjYXNlImYiOm09U3RyaW5nKHBhcnNlRmxvYXQoZygpKS50b0ZpeGVkKGJ8fDYpKSxkKz12P206bS5yZXBsYWNlKC9eMC8sIiIpO2JyZWFrO2Nhc2UiaiI6ZCs9SlNPTi5zdHJpbmdpZnkoZygpKTticmVhaztjYXNlIm8iOmQrPSIwIitwYXJzZUludChnKCksMTApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6ZCs9ZygpO2JyZWFrO2Nhc2UieCI6ZCs9IjB4IitwYXJzZUludChnKCksMTApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOmQrPSIweCIrcGFyc2VJbnQoZygpLDEwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTticmVhaztkZWZhdWx0OmQrPWY7YnJlYWt9ZWxzZSBmPT09IiUiP3A9ITA6ZCs9ZjtyZXR1cm4gZH1pKGEsImZvcm1hdCIpfSkoKX0pO2Z1bmN0aW9uIEg2KHQpe3JldHVybiBlLmRpc3BsYXlOYW1lPXQuZGlzcGxheU5hbWV8fHQubmFtZSxlO2Z1bmN0aW9uIGUociwuLi5hKXtsZXQgcz1yJiYoMCxhaXIuZGVmYXVsdCkociwuLi5hKTtyZXR1cm4gbmV3IHQocyl9aShlLCJGb3JtYXR0ZWRFcnJvciIpfXZhciBhaXIsR3osaWlyPXUoKCk9PnthaXI9R2EocmlyKCksMSksR3o9T2JqZWN0LmFzc2lnbihINihFcnJvcikse2V2YWw6SDYoRXZhbEVycm9yKSxyYW5nZTpINihSYW5nZUVycm9yKSxyZWZlcmVuY2U6SDYoUmVmZXJlbmNlRXJyb3IpLHN5bnRheDpINihTeW50YXhFcnJvciksdHlwZTpINihUeXBlRXJyb3IpLHVyaTpINihVUklFcnJvcil9KTtpKEg2LCJjcmVhdGUiKX0pO2Z1bmN0aW9uIHN5KHQpe2xldCBlPVtdLHI9LTEsYT1BcnJheS5pc0FycmF5KHQpP3Q6dD9bdF06WyJ5YW1sIl07Zm9yKDsrK3I8YS5sZW5ndGg7KWVbcl09VnphKGFbcl0pO3JldHVybiBlfWZ1bmN0aW9uIFZ6YSh0KXtsZXQgZT10O2lmKHR5cGVvZiBlPT0ic3RyaW5nIil7aWYoIXc0ZS5jYWxsKHNpcixlKSl0aHJvdyBHeigiTWlzc2luZyBtYXR0ZXIgZGVmaW5pdGlvbiBmb3IgYCVzYCIsZSk7ZT17dHlwZTplLG1hcmtlcjpzaXJbZV19fWVsc2UgaWYodHlwZW9mIGUhPSJvYmplY3QiKXRocm93IEd6KCJFeHBlY3RlZCBtYXR0ZXIgdG8gYmUgYW4gb2JqZWN0LCBub3QgYCVqYCIsZSk7aWYoIXc0ZS5jYWxsKGUsInR5cGUiKSl0aHJvdyBHeigiTWlzc2luZyBgdHlwZWAgaW4gbWF0dGVyIGAlamAiLGUpO2lmKCF3NGUuY2FsbChlLCJmZW5jZSIpJiYhdzRlLmNhbGwoZSwibWFya2VyIikpdGhyb3cgR3ooIk1pc3NpbmcgYG1hcmtlcmAgb3IgYGZlbmNlYCBpbiBtYXR0ZXIgYCVqYCIsZSk7cmV0dXJuIGV9dmFyIHc0ZSxzaXIsa0RlPXUoKCk9PntpaXIoKTt3NGU9e30uaGFzT3duUHJvcGVydHksc2lyPXt5YW1sOiItIix0b21sOiIrIn07aShzeSwidG9NYXR0ZXJzIik7aShWemEsIm1hdHRlciIpfSk7ZnVuY3Rpb24gTURlKHQpe2xldCBlPXN5KHQpLHI9e30sYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspe2xldCBzPWVbYV0sbj1TRGUocywib3BlbiIpLmNoYXJDb2RlQXQoMCksbz1qemEocyksbD1yW25dO0FycmF5LmlzQXJyYXkobCk/bC5wdXNoKG8pOnJbbl09W29dfXJldHVybntmbG93OnJ9fWZ1bmN0aW9uIGp6YSh0KXtsZXQgZT10LmFueXdoZXJlLHI9dC50eXBlLGE9cisiRmVuY2UiLHM9YSsiU2VxdWVuY2UiLG49cisiVmFsdWUiLG89e3Rva2VuaXplOmYscGFydGlhbDohMH0sbCxjPTA7cmV0dXJue3Rva2VuaXplOmQsY29uY3JldGU6ITB9O2Z1bmN0aW9uIGQocCxoLG0pe2xldCB2PXRoaXM7cmV0dXJuIGI7ZnVuY3Rpb24gYihPKXtsZXQgTD12Lm5vdygpO3JldHVybiBMLmNvbHVtbj09PTEmJihMLmxpbmU9PT0xfHxlKSYmKGw9U0RlKHQsIm9wZW4iKSxjPTAsTz09PWwuY2hhckNvZGVBdChjKSk/KHAuZW50ZXIocikscC5lbnRlcihhKSxwLmVudGVyKHMpLGcoTykpOm0oTyl9ZnVuY3Rpb24gZyhPKXtyZXR1cm4gYz09PWwubGVuZ3RoPyhwLmV4aXQocyksUnQoTyk/KHAuZW50ZXIoIndoaXRlc3BhY2UiKSx5KE8pKTprKE8pKTpPPT09bC5jaGFyQ29kZUF0KGMrKyk/KHAuY29uc3VtZShPKSxnKTptKE8pfWZ1bmN0aW9uIHkoTyl7cmV0dXJuIFJ0KE8pPyhwLmNvbnN1bWUoTykseSk6KHAuZXhpdCgid2hpdGVzcGFjZSIpLGsoTykpfWZ1bmN0aW9uIGsoTyl7cmV0dXJuIHV0KE8pPyhwLmV4aXQoYSkscC5lbnRlcigibGluZUVuZGluZyIpLHAuY29uc3VtZShPKSxwLmV4aXQoImxpbmVFbmRpbmciKSxsPVNEZSh0LCJjbG9zZSIpLGM9MCxwLmF0dGVtcHQobyxTLE0pKTptKE8pfWZ1bmN0aW9uIE0oTyl7cmV0dXJuIE89PT1udWxsfHx1dChPKT9fKE8pOihwLmVudGVyKG4pLE4oTykpfWZ1bmN0aW9uIE4oTyl7cmV0dXJuIE89PT1udWxsfHx1dChPKT8ocC5leGl0KG4pLF8oTykpOihwLmNvbnN1bWUoTyksTil9ZnVuY3Rpb24gXyhPKXtyZXR1cm4gTz09PW51bGw/bShPKToocC5lbnRlcigibGluZUVuZGluZyIpLHAuY29uc3VtZShPKSxwLmV4aXQoImxpbmVFbmRpbmciKSxwLmF0dGVtcHQobyxTLE0pKX1mdW5jdGlvbiBTKE8pe3JldHVybiBwLmV4aXQociksaChPKX19ZnVuY3Rpb24gZihwLGgsbSl7bGV0IHY9MDtyZXR1cm4gYjtmdW5jdGlvbiBiKE0pe3JldHVybiBNPT09bC5jaGFyQ29kZUF0KHYpPyhwLmVudGVyKGEpLHAuZW50ZXIocyksZyhNKSk6bShNKX1mdW5jdGlvbiBnKE0pe3JldHVybiB2PT09bC5sZW5ndGg/KHAuZXhpdChzKSxSdChNKT8ocC5lbnRlcigid2hpdGVzcGFjZSIpLHkoTSkpOmsoTSkpOk09PT1sLmNoYXJDb2RlQXQodisrKT8ocC5jb25zdW1lKE0pLGcpOm0oTSl9ZnVuY3Rpb24geShNKXtyZXR1cm4gUnQoTSk/KHAuY29uc3VtZShNKSx5KToocC5leGl0KCJ3aGl0ZXNwYWNlIiksayhNKSl9ZnVuY3Rpb24gayhNKXtyZXR1cm4gTT09PW51bGx8fHV0KE0pPyhwLmV4aXQoYSksaChNKSk6bShNKX19fWZ1bmN0aW9uIFNEZSh0LGUpe3JldHVybiB0Lm1hcmtlcj9uaXIodC5tYXJrZXIsZSkucmVwZWF0KDMpOm5pcih0LmZlbmNlLGUpfWZ1bmN0aW9uIG5pcih0LGUpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/dDp0W2VdfXZhciBvaXI9dSgoKT0+e1lyKCk7a0RlKCk7aShNRGUsImZyb250bWF0dGVyIik7aShqemEsImNyZWF0ZUNvbnN0cnVjdCIpO2koU0RlLCJmZW5jZSIpO2kobmlyLCJwaWNrIil9KTt2YXIgbGlyPXUoKCk9Pnt9KTt2YXIgQ0RlPXUoKCk9PntvaXIoKTtsaXIoKTtrRGUoKX0pO2Z1bmN0aW9uIF9EZSh0KXtsZXQgZT1zeSh0KSxyPXt9LGE9e30scz0tMTtmb3IoOysrczxlLmxlbmd0aDspe2xldCBuPWVbc107cltuLnR5cGVdPVV6YShuKSxhW24udHlwZV09V3phLGFbbi50eXBlKyJWYWx1ZSJdPUd6YX1yZXR1cm57ZW50ZXI6cixleGl0OmF9fWZ1bmN0aW9uIFV6YSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKHIpe3RoaXMuZW50ZXIoe3R5cGU6dC50eXBlLHZhbHVlOiIifSxyKSx0aGlzLmJ1ZmZlcigpfX1mdW5jdGlvbiBXemEodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07InZhbHVlImluIHIsdGhpcy5leGl0KHQpLHIudmFsdWU9ZS5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiBHemEodCl7dGhpcy5jb25maWcuZW50ZXIuZGF0YS5jYWxsKHRoaXMsdCksdGhpcy5jb25maWcuZXhpdC5kYXRhLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBURGUodCl7bGV0IGU9W10scj17fSxhPXN5KHQpLHM9LTE7Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbj1hW3NdO3Jbbi50eXBlXT1ZemEobik7bGV0IG89ekRlKG4sIm9wZW4iKTtlLnB1c2goe2F0QnJlYWs6ITAsY2hhcmFjdGVyOm8uY2hhckF0KDApLGFmdGVyOnI2KG8uY2hhckF0KDEpKX0pfXJldHVybnt1bnNhZmU6ZSxoYW5kbGVyczpyfX1mdW5jdGlvbiBZemEodCl7bGV0IGU9ekRlKHQsIm9wZW4iKSxyPXpEZSh0LCJjbG9zZSIpO3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIGUrKHMudmFsdWU/YApgK3MudmFsdWU6IiIpK2AKYCtyfX1mdW5jdGlvbiB6RGUodCxlKXtyZXR1cm4gdC5tYXJrZXI/Y2lyKHQubWFya2VyLGUpLnJlcGVhdCgzKTpjaXIodC5mZW5jZSxlKX1mdW5jdGlvbiBjaXIodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP3Q6dFtlXX12YXIgZGlyPXUoKCk9PnttcCgpO0NEZSgpO0cyZSgpO2koX0RlLCJmcm9udG1hdHRlckZyb21NYXJrZG93biIpO2koVXphLCJvcGVuZXIiKTtpKFd6YSwiY2xvc2UiKTtpKEd6YSwidmFsdWUiKTtpKFREZSwiZnJvbnRtYXR0ZXJUb01hcmtkb3duIik7aShZemEsImhhbmRsZXIiKTtpKHpEZSwiZmVuY2UiKTtpKGNpciwicGljayIpfSk7dmFyIHVpcj11KCgpPT57ZGlyKCl9KTtmdW5jdGlvbiBueSh0KXtsZXQgZT10aGlzLHI9dHx8S3phLGE9ZS5kYXRhKCkscz1hLm1pY3JvbWFya0V4dGVuc2lvbnN8fChhLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLG49YS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoYS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxvPWEudG9NYXJrZG93bkV4dGVuc2lvbnN8fChhLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTtzLnB1c2goTURlKHIpKSxuLnB1c2goX0RlKHIpKSxvLnB1c2goVERlKHIpKX12YXIgS3phLHBpcj11KCgpPT57dWlyKCk7Q0RlKCk7S3phPSJ5YW1sIjtpKG55LCJyZW1hcmtGcm9udG1hdHRlciIpfSk7dmFyIGZpcj11KCgpPT57cGlyKCl9KTt2YXIgTERlPXUoKCk9Pnt9KTt2YXIgaGlyLFp6YSx6NGUsbWlyPXUoKCk9PntMRGUoKTtoaXI9dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6Z2xvYmFsVGhpcyxaemE9aSgodCxlKT0+e2xldCByPWkoKHMsbik9Pih0LnNldChuLHMpLHMpLCJhcyIpLGE9aShzPT57aWYodC5oYXMocykpcmV0dXJuIHQuZ2V0KHMpO2xldFtuLG9dPWVbc107c3dpdGNoKG4pe2Nhc2UgMDpjYXNlLTE6cmV0dXJuIHIobyxzKTtjYXNlIDE6e2xldCBsPXIoW10scyk7Zm9yKGxldCBjIG9mIG8pbC5wdXNoKGEoYykpO3JldHVybiBsfWNhc2UgMjp7bGV0IGw9cih7fSxzKTtmb3IobGV0W2MsZF1vZiBvKWxbYShjKV09YShkKTtyZXR1cm4gbH1jYXNlIDM6cmV0dXJuIHIobmV3IERhdGUobykscyk7Y2FzZSA0OntsZXR7c291cmNlOmwsZmxhZ3M6Y309bztyZXR1cm4gcihuZXcgUmVnRXhwKGwsYykscyl9Y2FzZSA1OntsZXQgbD1yKG5ldyBNYXAscyk7Zm9yKGxldFtjLGRdb2YgbylsLnNldChhKGMpLGEoZCkpO3JldHVybiBsfWNhc2UgNjp7bGV0IGw9cihuZXcgU2V0LHMpO2ZvcihsZXQgYyBvZiBvKWwuYWRkKGEoYykpO3JldHVybiBsfWNhc2UgNzp7bGV0e25hbWU6bCxtZXNzYWdlOmN9PW87cmV0dXJuIHIobmV3IGhpcltsXShjKSxzKX1jYXNlIDg6cmV0dXJuIHIoQmlnSW50KG8pLHMpO2Nhc2UiQmlnSW50IjpyZXR1cm4gcihPYmplY3QoQmlnSW50KG8pKSxzKTtjYXNlIkFycmF5QnVmZmVyIjpyZXR1cm4gcihuZXcgVWludDhBcnJheShvKS5idWZmZXIsbyk7Y2FzZSJEYXRhVmlldyI6e2xldHtidWZmZXI6bH09bmV3IFVpbnQ4QXJyYXkobyk7cmV0dXJuIHIobmV3IERhdGFWaWV3KGwpLG8pfX1yZXR1cm4gcihuZXcgaGlyW25dKG8pLHMpfSwidW5wYWlyIik7cmV0dXJuIGF9LCJkZXNlcmlhbGl6ZXIiKSx6NGU9aSh0PT5aemEobmV3IE1hcCx0KSgwKSwiZGVzZXJpYWxpemUiKX0pO3ZhciBseSxRemEsWHphLFp6LF80ZSxKemEsVDRlLGdpcj11KCgpPT57TERlKCk7bHk9IiIse3RvU3RyaW5nOlF6YX09e30se2tleXM6WHphfT1PYmplY3QsWno9aSh0PT57bGV0IGU9dHlwZW9mIHQ7aWYoZSE9PSJvYmplY3QifHwhdClyZXR1cm5bMCxlXTtsZXQgcj1RemEuY2FsbCh0KS5zbGljZSg4LC0xKTtzd2l0Y2gocil7Y2FzZSJBcnJheSI6cmV0dXJuWzEsbHldO2Nhc2UiT2JqZWN0IjpyZXR1cm5bMixseV07Y2FzZSJEYXRlIjpyZXR1cm5bMyxseV07Y2FzZSJSZWdFeHAiOnJldHVybls0LGx5XTtjYXNlIk1hcCI6cmV0dXJuWzUsbHldO2Nhc2UiU2V0IjpyZXR1cm5bNixseV07Y2FzZSJEYXRhVmlldyI6cmV0dXJuWzEscl19cmV0dXJuIHIuaW5jbHVkZXMoIkFycmF5Iik/WzEscl06ci5pbmNsdWRlcygiRXJyb3IiKT9bNyxyXTpbMixyXX0sInR5cGVPZiIpLF80ZT1pKChbdCxlXSk9PnQ9PT0wJiYoZT09PSJmdW5jdGlvbiJ8fGU9PT0ic3ltYm9sIiksInNob3VsZFNraXAiKSxKemE9aSgodCxlLHIsYSk9PntsZXQgcz1pKChvLGwpPT57bGV0IGM9YS5wdXNoKG8pLTE7cmV0dXJuIHIuc2V0KGwsYyksY30sImFzIiksbj1pKG89PntpZihyLmhhcyhvKSlyZXR1cm4gci5nZXQobyk7bGV0W2wsY109Wnoobyk7c3dpdGNoKGwpe2Nhc2UgMDp7bGV0IGY9bztzd2l0Y2goYyl7Y2FzZSJiaWdpbnQiOmw9OCxmPW8udG9TdHJpbmcoKTticmVhaztjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6aWYodCl0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmFibGUgdG8gc2VyaWFsaXplICIrYyk7Zj1udWxsO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4gcyhbLTFdLG8pfXJldHVybiBzKFtsLGZdLG8pfWNhc2UgMTp7aWYoYyl7bGV0IGg9bztyZXR1cm4gYz09PSJEYXRhVmlldyI/aD1uZXcgVWludDhBcnJheShvLmJ1ZmZlcik6Yz09PSJBcnJheUJ1ZmZlciImJihoPW5ldyBVaW50OEFycmF5KG8pKSxzKFtjLFsuLi5oXV0sbyl9bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXQgaCBvZiBvKWYucHVzaChuKGgpKTtyZXR1cm4gcH1jYXNlIDI6e2lmKGMpc3dpdGNoKGMpe2Nhc2UiQmlnSW50IjpyZXR1cm4gcyhbYyxvLnRvU3RyaW5nKCldLG8pO2Nhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjpyZXR1cm4gcyhbYyxvLnZhbHVlT2YoKV0sbyl9aWYoZSYmInRvSlNPTiJpbiBvKXJldHVybiBuKG8udG9KU09OKCkpO2xldCBmPVtdLHA9cyhbbCxmXSxvKTtmb3IobGV0IGggb2YgWHphKG8pKSh0fHwhXzRlKFp6KG9baF0pKSkmJmYucHVzaChbbihoKSxuKG9baF0pXSk7cmV0dXJuIHB9Y2FzZSAzOnJldHVybiBzKFtsLG8udG9JU09TdHJpbmcoKV0sbyk7Y2FzZSA0OntsZXR7c291cmNlOmYsZmxhZ3M6cH09bztyZXR1cm4gcyhbbCx7c291cmNlOmYsZmxhZ3M6cH1dLG8pfWNhc2UgNTp7bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXRbaCxtXW9mIG8pKHR8fCEoXzRlKFp6KGgpKXx8XzRlKFp6KG0pKSkpJiZmLnB1c2goW24oaCksbihtKV0pO3JldHVybiBwfWNhc2UgNjp7bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXQgaCBvZiBvKSh0fHwhXzRlKFp6KGgpKSkmJmYucHVzaChuKGgpKTtyZXR1cm4gcH19bGV0e21lc3NhZ2U6ZH09bztyZXR1cm4gcyhbbCx7bmFtZTpjLG1lc3NhZ2U6ZH1dLG8pfSwicGFpciIpO3JldHVybiBufSwic2VyaWFsaXplciIpLFQ0ZT1pKCh0LHtqc29uOmUsbG9zc3k6cn09e30pPT57bGV0IGE9W107cmV0dXJuIEp6YSghKGV8fHIpLCEhZSxuZXcgTWFwLGEpKHQpLGF9LCJzZXJpYWxpemUiKX0pO3ZhciBrcCxMNGU9dSgoKT0+e21pcigpO2dpcigpO2twPXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KHQsZSk9PmUmJigianNvbiJpbiBlfHwibG9zc3kiaW4gZSk/ejRlKFQ0ZSh0LGUpKTpzdHJ1Y3R1cmVkQ2xvbmUodCk6KHQsZSk9Pno0ZShUNGUodCxlKSl9KTtmdW5jdGlvbiBiaXIodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyKXtsZXQgYT1yJiZyLnBvc2l0aW9uJiZyLnBvc2l0aW9uW3RdfHx7fTtpZih0eXBlb2YgYS5saW5lPT0ibnVtYmVyIiYmYS5saW5lPjAmJnR5cGVvZiBhLmNvbHVtbj09Im51bWJlciImJmEuY29sdW1uPjApcmV0dXJue2xpbmU6YS5saW5lLGNvbHVtbjphLmNvbHVtbixvZmZzZXQ6dHlwZW9mIGEub2Zmc2V0PT0ibnVtYmVyIiYmYS5vZmZzZXQ+LTE/YS5vZmZzZXQ6dm9pZCAwfX19ZnVuY3Rpb24gUXoodCl7bGV0IGU9JDRlKHQpLHI9RDRlKHQpO2lmKGUmJnIpcmV0dXJue3N0YXJ0OmUsZW5kOnJ9fXZhciBENGUsJDRlLHhpcj11KCgpPT57RDRlPWJpcigiZW5kIiksJDRlPWJpcigic3RhcnQiKTtpKGJpciwicG9pbnQiKTtpKFF6LCJwb3NpdGlvbiIpfSk7dmFyIEE0ZT11KCgpPT57eGlyKCl9KTt2YXIgcTYsRTRlLEVEZT11KCgpPT57cTY9WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSJdLEU0ZT17YW5jZXN0b3JzOnt0Ym9keTpbInRhYmxlIl0sdGQ6WyJ0YWJsZSJdLHRoOlsidGFibGUiXSx0aGVhZDpbInRhYmxlIl0sdGZvb3Q6WyJ0YWJsZSJdLHRyOlsidGFibGUiXX0sYXR0cmlidXRlczp7YTpbLi4ucTYsImRhdGFGb290bm90ZUJhY2tyZWYiLCJkYXRhRm9vdG5vdGVSZWYiLFsiY2xhc3NOYW1lIiwiZGF0YS1mb290bm90ZS1iYWNrcmVmIl0sImhyZWYiXSxibG9ja3F1b3RlOlsiY2l0ZSJdLGNvZGU6W1siY2xhc3NOYW1lIiwvXmxhbmd1YWdlLS4vXV0sZGVsOlsiY2l0ZSJdLGRpdjpbIml0ZW1TY29wZSIsIml0ZW1UeXBlIl0sZGw6Wy4uLnE2XSxoMjpbWyJjbGFzc05hbWUiLCJzci1vbmx5Il1dLGltZzpbLi4ucTYsImxvbmdEZXNjIiwic3JjIl0saW5wdXQ6W1siZGlzYWJsZWQiLCEwXSxbInR5cGUiLCJjaGVja2JveCJdXSxpbnM6WyJjaXRlIl0sbGk6W1siY2xhc3NOYW1lIiwidGFzay1saXN0LWl0ZW0iXV0sb2w6Wy4uLnE2LFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLHE6WyJjaXRlIl0sc2VjdGlvbjpbImRhdGFGb290bm90ZXMiLFsiY2xhc3NOYW1lIiwiZm9vdG5vdGVzIl1dLHNvdXJjZTpbInNyY1NldCJdLHN1bW1hcnk6Wy4uLnE2XSx0YWJsZTpbLi4ucTZdLHVsOlsuLi5xNixbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSwiKiI6WyJhYmJyIiwiYWNjZXB0IiwiYWNjZXB0Q2hhcnNldCIsImFjY2Vzc0tleSIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXhpcyIsImJvcmRlciIsImNlbGxQYWRkaW5nIiwiY2VsbFNwYWNpbmciLCJjaGFyIiwiY2hhck9mZiIsImNoYXJTZXQiLCJjaGVja2VkIiwiY2xlYXIiLCJjb2xTcGFuIiwiY29sb3IiLCJjb2xzIiwiY29tcGFjdCIsImNvb3JkcyIsImRhdGVUaW1lIiwiZGlyIiwiZW5jVHlwZSIsImZyYW1lIiwiaFNwYWNlIiwiaGVhZGVycyIsImhlaWdodCIsImhyZWZMYW5nIiwiaHRtbEZvciIsImlkIiwiaXNNYXAiLCJpdGVtUHJvcCIsImxhYmVsIiwibGFuZyIsIm1heExlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibXVsdGlwbGUiLCJuYW1lIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9wZW4iLCJwcm9tcHQiLCJyZWFkT25seSIsInJldiIsInJvd1NwYW4iLCJyb3dzIiwicnVsZXMiLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic3BhbiIsInN0YXJ0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidGl0bGUiLCJ1c2VNYXAiLCJ2QWxpZ24iLCJ2YWx1ZSIsIndpZHRoIl19LGNsb2JiZXI6WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwibmFtZSJdLGNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHByb3RvY29sczp7Y2l0ZTpbImh0dHAiLCJodHRwcyJdLGhyZWY6WyJodHRwIiwiaHR0cHMiLCJpcmMiLCJpcmNzIiwibWFpbHRvIiwieG1wcCJdLGxvbmdEZXNjOlsiaHR0cCIsImh0dHBzIl0sc3JjOlsiaHR0cCIsImh0dHBzIl19LHJlcXVpcmVkOntpbnB1dDp7ZGlzYWJsZWQ6ITAsdHlwZToiY2hlY2tib3gifX0sc3RyaXA6WyJzY3JpcHQiXSx0YWdOYW1lczpbImEiLCJiIiwiYmxvY2txdW90ZSIsImJyIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGkiLCJvbCIsInAiLCJwaWN0dXJlIiwicHJlIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic291cmNlIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidWwiLCJ2YXIiXX19KTtmdW5jdGlvbiBJRGUodCxlKXtsZXQgcj17dHlwZToicm9vdCIsY2hpbGRyZW46W119LGE9e3NjaGVtYTplP3suLi5FNGUsLi4uZX06RTRlLHN0YWNrOltdfSxzPXZpcihhLHQpO3JldHVybiBzJiYoQXJyYXkuaXNBcnJheShzKT9zLmxlbmd0aD09PTE/cj1zWzBdOnIuY2hpbGRyZW49czpyPXMpLHJ9ZnVuY3Rpb24gdmlyKHQsZSl7aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QiKXtsZXQgcj1lO3N3aXRjaCh0eXBlb2Ygci50eXBlPT0ic3RyaW5nIj9yLnR5cGU6IiIpe2Nhc2UiY29tbWVudCI6cmV0dXJuIGVfYSh0LHIpO2Nhc2UiZG9jdHlwZSI6cmV0dXJuIHRfYSh0LHIpO2Nhc2UiZWxlbWVudCI6cmV0dXJuIHJfYSh0LHIpO2Nhc2Uicm9vdCI6cmV0dXJuIGFfYSh0LHIpO2Nhc2UidGV4dCI6cmV0dXJuIGlfYSh0LHIpO2RlZmF1bHQ6fX19ZnVuY3Rpb24gZV9hKHQsZSl7aWYodC5zY2hlbWEuYWxsb3dDb21tZW50cyl7bGV0IHI9dHlwZW9mIGUudmFsdWU9PSJzdHJpbmciP2UudmFsdWU6IiIsYT1yLmluZGV4T2YoIi0tPiIpLG49e3R5cGU6ImNvbW1lbnQiLHZhbHVlOmE8MD9yOnIuc2xpY2UoMCxhKX07cmV0dXJuIFh6KG4sZSksbn19ZnVuY3Rpb24gdF9hKHQsZSl7aWYodC5zY2hlbWEuYWxsb3dEb2N0eXBlcyl7bGV0IHI9e3R5cGU6ImRvY3R5cGUifTtyZXR1cm4gWHoocixlKSxyfX1mdW5jdGlvbiByX2EodCxlKXtsZXQgcj10eXBlb2YgZS50YWdOYW1lPT0ic3RyaW5nIj9lLnRhZ05hbWU6IiI7dC5zdGFjay5wdXNoKHIpO2xldCBhPXlpcih0LGUuY2hpbGRyZW4pLHM9c19hKHQsZS5wcm9wZXJ0aWVzKTt0LnN0YWNrLnBvcCgpO2xldCBuPSExO2lmKHImJnIhPT0iKiImJighdC5zY2hlbWEudGFnTmFtZXN8fHQuc2NoZW1hLnRhZ05hbWVzLmluY2x1ZGVzKHIpKSYmKG49ITAsdC5zY2hlbWEuYW5jZXN0b3JzJiZTcC5jYWxsKHQuc2NoZW1hLmFuY2VzdG9ycyxyKSkpe2xldCBsPXQuc2NoZW1hLmFuY2VzdG9yc1tyXSxjPS0xO2ZvcihuPSExOysrYzxsLmxlbmd0aDspdC5zdGFjay5pbmNsdWRlcyhsW2NdKSYmKG49ITApfWlmKCFuKXJldHVybiB0LnNjaGVtYS5zdHJpcCYmIXQuc2NoZW1hLnN0cmlwLmluY2x1ZGVzKHIpP2E6dm9pZCAwO2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnIscHJvcGVydGllczpzLGNoaWxkcmVuOmF9O3JldHVybiBYeihvLGUpLG99ZnVuY3Rpb24gYV9hKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOnlpcih0LGUuY2hpbGRyZW4pfTtyZXR1cm4gWHooYSxlKSxhfWZ1bmN0aW9uIGlfYSh0LGUpe2xldCBhPXt0eXBlOiJ0ZXh0Iix2YWx1ZTp0eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIn07cmV0dXJuIFh6KGEsZSksYX1mdW5jdGlvbiB5aXIodCxlKXtsZXQgcj1bXTtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1lLHM9LTE7Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbj12aXIodCxhW3NdKTtuJiYoQXJyYXkuaXNBcnJheShuKT9yLnB1c2goLi4ubik6ci5wdXNoKG4pKX19cmV0dXJuIHJ9ZnVuY3Rpb24gc19hKHQsZSl7bGV0IHI9dC5zdGFja1t0LnN0YWNrLmxlbmd0aC0xXSxhPXQuc2NoZW1hLmF0dHJpYnV0ZXMscz10LnNjaGVtYS5yZXF1aXJlZCxuPWEmJlNwLmNhbGwoYSxyKT9hW3JdOnZvaWQgMCxvPWEmJlNwLmNhbGwoYSwiKiIpP2FbIioiXTp2b2lkIDAsbD1lJiZ0eXBlb2YgZT09Im9iamVjdCI/ZTp7fSxjPXt9LGQ7Zm9yKGQgaW4gbClpZihTcC5jYWxsKGwsZCkpe2xldCBmPWxbZF0scD13aXIodCxTaXIobixkKSxkLGYpO3A9PW51bGwmJihwPXdpcih0LFNpcihvLGQpLGQsZikpLHAhPW51bGwmJihjW2RdPXApfWlmKHMmJlNwLmNhbGwocyxyKSl7bGV0IGY9c1tyXTtmb3IoZCBpbiBmKVNwLmNhbGwoZixkKSYmIVNwLmNhbGwoYyxkKSYmKGNbZF09ZltkXSl9cmV0dXJuIGN9ZnVuY3Rpb24gd2lyKHQsZSxyLGEpe3JldHVybiBlP0FycmF5LmlzQXJyYXkoYSk/bl9hKHQsZSxyLGEpOmtpcih0LGUscixhKTp2b2lkIDB9ZnVuY3Rpb24gbl9hKHQsZSxyLGEpe2xldCBzPS0xLG49W107Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbz1raXIodCxlLHIsYVtzXSk7KHR5cGVvZiBvPT0ibnVtYmVyInx8dHlwZW9mIG89PSJzdHJpbmciKSYmbi5wdXNoKG8pfXJldHVybiBufWZ1bmN0aW9uIGtpcih0LGUscixhKXtpZighKHR5cGVvZiBhIT0iYm9vbGVhbiImJnR5cGVvZiBhIT0ibnVtYmVyIiYmdHlwZW9mIGEhPSJzdHJpbmciKSYmb19hKHQscixhKSl7aWYodHlwZW9mIGU9PSJvYmplY3QiJiZlLmxlbmd0aD4xKXtsZXQgcz0hMSxuPTA7Zm9yKDsrK248ZS5sZW5ndGg7KXtsZXQgbz1lW25dO2lmKG8mJnR5cGVvZiBvPT0ib2JqZWN0IiYmImZsYWdzImluIG8pe2lmKG8udGVzdChTdHJpbmcoYSkpKXtzPSEwO2JyZWFrfX1lbHNlIGlmKG89PT1hKXtzPSEwO2JyZWFrfX1pZighcylyZXR1cm59cmV0dXJuIHQuc2NoZW1hLmNsb2JiZXImJnQuc2NoZW1hLmNsb2JiZXJQcmVmaXgmJnQuc2NoZW1hLmNsb2JiZXIuaW5jbHVkZXMocik/dC5zY2hlbWEuY2xvYmJlclByZWZpeCthOmF9fWZ1bmN0aW9uIG9fYSh0LGUscil7bGV0IGE9dC5zY2hlbWEucHJvdG9jb2xzJiZTcC5jYWxsKHQuc2NoZW1hLnByb3RvY29scyxlKT90LnNjaGVtYS5wcm90b2NvbHNbZV06dm9pZCAwO2lmKCFhfHxhLmxlbmd0aD09PTApcmV0dXJuITA7bGV0IHM9U3RyaW5nKHIpLG49cy5pbmRleE9mKCI6Iiksbz1zLmluZGV4T2YoIj8iKSxsPXMuaW5kZXhPZigiIyIpLGM9cy5pbmRleE9mKCIvIik7aWYobjwwfHxjPi0xJiZuPmN8fG8+LTEmJm4+b3x8bD4tMSYmbj5sKXJldHVybiEwO2xldCBkPS0xO2Zvcig7KytkPGEubGVuZ3RoOyl7bGV0IGY9YVtkXTtpZihuPT09Zi5sZW5ndGgmJnMuc2xpY2UoMCxmLmxlbmd0aCk9PT1mKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFh6KHQsZSl7bGV0IHI9UXooZSk7ZS5kYXRhJiYodC5kYXRhPWtwKGUuZGF0YSkpLHImJih0LnBvc2l0aW9uPXIpfWZ1bmN0aW9uIFNpcih0LGUpe2xldCByLGE9LTE7aWYodClmb3IoOysrYTx0Lmxlbmd0aDspe2xldCBzPXRbYV0sbj10eXBlb2Ygcz09InN0cmluZyI/czpzWzBdO2lmKG49PT1lKXJldHVybiBzO249PT0iZGF0YSoiJiYocj1zKX1pZihlLmxlbmd0aD40JiZlLnNsaWNlKDAsNCkudG9Mb3dlckNhc2UoKT09PSJkYXRhIilyZXR1cm4gcn12YXIgU3AsTWlyPXUoKCk9PntMNGUoKTtBNGUoKTtFRGUoKTtTcD17fS5oYXNPd25Qcm9wZXJ0eTtpKElEZSwic2FuaXRpemUiKTtpKHZpciwidHJhbnNmb3JtIik7aShlX2EsImNvbW1lbnQiKTtpKHRfYSwiZG9jdHlwZSIpO2kocl9hLCJlbGVtZW50Iik7aShhX2EsInJvb3QiKTtpKGlfYSwidGV4dCIpO2koeWlyLCJjaGlsZHJlbiIpO2koc19hLCJwcm9wZXJ0aWVzIik7aSh3aXIsInByb3BlcnR5VmFsdWUiKTtpKG5fYSwicHJvcGVydHlWYWx1ZU1hbnkiKTtpKGtpciwicHJvcGVydHlWYWx1ZVByaW1pdGl2ZSIpO2kob19hLCJzYWZlUHJvdG9jb2wiKTtpKFh6LCJwYXRjaCIpO2koU2lyLCJmaW5kRGVmaW5pdGlvbiIpfSk7dmFyIENpcj11KCgpPT57TWlyKCk7RURlKCl9KTtmdW5jdGlvbiB6aXIodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAodC5hbGwoZSksITApfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIF9pcj11KCgpPT57aSh6aXIsImJsb2NrcXVvdGUiKX0pO2Z1bmN0aW9uIFRpcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJiciIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxyKSxbdC5hcHBseURhdGEoZSxyKSx7dHlwZToidGV4dCIsdmFsdWU6YApgfV19dmFyIExpcj11KCgpPT57aShUaXIsImhhcmRCcmVhayIpfSk7ZnVuY3Rpb24gRGlyKHQsZSl7bGV0IHI9ZS52YWx1ZT9lLnZhbHVlK2AKYDoiIixhPXt9LHM9ZS5sYW5nP2UubGFuZy5zcGxpdCgvXHMrLyk6W107cy5sZW5ndGg+MCYmKGEuY2xhc3NOYW1lPVsibGFuZ3VhZ2UtIitzWzBdXSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnJ9XX07cmV0dXJuIGUubWV0YSYmKG4uZGF0YT17bWV0YTplLm1ldGF9KSx0LnBhdGNoKGUsbiksbj10LmFwcGx5RGF0YShlLG4pLG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InByZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbbl19LHQucGF0Y2goZSxuKSxufXZhciAkaXI9dSgoKT0+e2koRGlyLCJjb2RlIil9KTtmdW5jdGlvbiBBaXIodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGVsIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIEVpcj11KCgpPT57aShBaXIsInN0cmlrZXRocm91Z2giKX0pO2Z1bmN0aW9uIElpcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBQaXI9dSgoKT0+e2koSWlyLCJlbXBoYXNpcyIpfSk7ZnVuY3Rpb24gTmlyKHQsZSl7bGV0IHI9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIsYT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLHM9YWwoYS50b0xvd2VyQ2FzZSgpKSxuPXQuZm9vdG5vdGVPcmRlci5pbmRleE9mKGEpLG8sbD10LmZvb3Rub3RlQ291bnRzLmdldChhKTtsPT09dm9pZCAwPyhsPTAsdC5mb290bm90ZU9yZGVyLnB1c2goYSksbz10LmZvb3Rub3RlT3JkZXIubGVuZ3RoKTpvPW4rMSxsKz0xLHQuZm9vdG5vdGVDb3VudHMuc2V0KGEsbCk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK3IrImZuLSIrcyxpZDpyKyJmbnJlZi0iK3MrKGw+MT8iLSIrbDoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKG8pfV19O3QucGF0Y2goZSxjKTtsZXQgZD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltjXX07cmV0dXJuIHQucGF0Y2goZSxkKSx0LmFwcGx5RGF0YShlLGQpfXZhciBPaXI9dSgoKT0+e1owKCk7aShOaXIsImZvb3Rub3RlUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBSaXIodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrZS5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIEZpcj11KCgpPT57aShSaXIsImhlYWRpbmciKX0pO2Z1bmN0aW9uIEJpcih0LGUpe2lmKHQub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCByPXt0eXBlOiJyYXciLHZhbHVlOmUudmFsdWV9O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX19dmFyIEhpcj11KCgpPT57aShCaXIsImh0bWwiKX0pO2Z1bmN0aW9uIEk0ZSh0LGUpe2xldCByPWUucmVmZXJlbmNlVHlwZSxhPSJdIjtpZihyPT09ImNvbGxhcHNlZCI/YSs9IltdIjpyPT09ImZ1bGwiJiYoYSs9IlsiKyhlLmxhYmVsfHxlLmlkZW50aWZpZXIpKyJdIiksZS50eXBlPT09ImltYWdlUmVmZXJlbmNlIilyZXR1cm5be3R5cGU6InRleHQiLHZhbHVlOiIhWyIrZS5hbHQrYX1dO2xldCBzPXQuYWxsKGUpLG49c1swXTtuJiZuLnR5cGU9PT0idGV4dCI/bi52YWx1ZT0iWyIrbi52YWx1ZTpzLnVuc2hpZnQoe3R5cGU6InRleHQiLHZhbHVlOiJbIn0pO2xldCBvPXNbcy5sZW5ndGgtMV07cmV0dXJuIG8mJm8udHlwZT09PSJ0ZXh0Ij9vLnZhbHVlKz1hOnMucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YX0pLHN9dmFyIFBEZT11KCgpPT57aShJNGUsInJldmVydCIpfSk7ZnVuY3Rpb24gcWlyKHQsZSl7bGV0IHI9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPXQuZGVmaW5pdGlvbkJ5SWQuZ2V0KHIpO2lmKCFhKXJldHVybiBJNGUodCxlKTtsZXQgcz17c3JjOmFsKGEudXJsfHwiIiksYWx0OmUuYWx0fTthLnRpdGxlIT09bnVsbCYmYS50aXRsZSE9PXZvaWQgMCYmKHMudGl0bGU9YS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczpzLGNoaWxkcmVuOltdfTtyZXR1cm4gdC5wYXRjaChlLG4pLHQuYXBwbHlEYXRhKGUsbil9dmFyIFZpcj11KCgpPT57WjAoKTtQRGUoKTtpKHFpciwiaW1hZ2VSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIGppcih0LGUpe2xldCByPXtzcmM6YWwoZS51cmwpfTtlLmFsdCE9PW51bGwmJmUuYWx0IT09dm9pZCAwJiYoci5hbHQ9ZS5hbHQpLGUudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1lLnRpdGxlKTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgVWlyPXUoKCk9PntaMCgpO2koamlyLCJpbWFnZSIpfSk7ZnVuY3Rpb24gV2lyKHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTt0LnBhdGNoKGUscik7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3JdfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIEdpcj11KCgpPT57aShXaXIsImlubGluZUNvZGUiKX0pO2Z1bmN0aW9uIFlpcih0LGUpe2xldCByPVN0cmluZyhlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksYT10LmRlZmluaXRpb25CeUlkLmdldChyKTtpZighYSlyZXR1cm4gSTRlKHQsZSk7bGV0IHM9e2hyZWY6YWwoYS51cmx8fCIiKX07YS50aXRsZSE9PW51bGwmJmEudGl0bGUhPT12b2lkIDAmJihzLnRpdGxlPWEudGl0bGUpO2xldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnMsY2hpbGRyZW46dC5hbGwoZSl9O3JldHVybiB0LnBhdGNoKGUsbiksdC5hcHBseURhdGEoZSxuKX12YXIgS2lyPXUoKCk9PntaMCgpO1BEZSgpO2koWWlyLCJsaW5rUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBaaXIodCxlKXtsZXQgcj17aHJlZjphbChlLnVybCl9O2UudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1lLnRpdGxlKTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczpyLGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIFFpcj11KCgpPT57WjAoKTtpKFppciwibGluayIpfSk7ZnVuY3Rpb24gSmlyKHQsZSxyKXtsZXQgYT10LmFsbChlKSxzPXI/bF9hKHIpOlhpcihlKSxuPXt9LG89W107aWYodHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgZj1hWzBdLHA7ZiYmZi50eXBlPT09ImVsZW1lbnQiJiZmLnRhZ05hbWU9PT0icCI/cD1mOihwPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxhLnVuc2hpZnQocCkpLHAuY2hpbGRyZW4ubGVuZ3RoPjAmJnAuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSkscC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6ZS5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLG4uY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgbD0tMTtmb3IoOysrbDxhLmxlbmd0aDspe2xldCBmPWFbbF07KHN8fGwhPT0wfHxmLnR5cGUhPT0iZWxlbWVudCJ8fGYudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksZi50eXBlPT09ImVsZW1lbnQiJiZmLnRhZ05hbWU9PT0icCImJiFzP28ucHVzaCguLi5mLmNoaWxkcmVuKTpvLnB1c2goZil9bGV0IGM9YVthLmxlbmd0aC0xXTtjJiYoc3x8Yy50eXBlIT09ImVsZW1lbnQifHxjLnRhZ05hbWUhPT0icCIpJiZvLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2xldCBkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczpuLGNoaWxkcmVuOm99O3JldHVybiB0LnBhdGNoKGUsZCksdC5hcHBseURhdGEoZSxkKX1mdW5jdGlvbiBsX2EodCl7bGV0IGU9ITE7aWYodC50eXBlPT09Imxpc3QiKXtlPXQuc3ByZWFkfHwhMTtsZXQgcj10LmNoaWxkcmVuLGE9LTE7Zm9yKDshZSYmKythPHIubGVuZ3RoOyllPVhpcihyW2FdKX1yZXR1cm4gZX1mdW5jdGlvbiBYaXIodCl7bGV0IGU9dC5zcHJlYWQ7cmV0dXJuIGU/P3QuY2hpbGRyZW4ubGVuZ3RoPjF9dmFyIGVzcj11KCgpPT57aShKaXIsImxpc3RJdGVtIik7aShsX2EsImxpc3RMb29zZSIpO2koWGlyLCJsaXN0SXRlbUxvb3NlIil9KTtmdW5jdGlvbiB0c3IodCxlKXtsZXQgcj17fSxhPXQuYWxsKGUpLHM9LTE7Zm9yKHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydCE9PTEmJihyLnN0YXJ0PWUuc3RhcnQpOysrczxhLmxlbmd0aDspe2xldCBvPWFbc107aWYoby50eXBlPT09ImVsZW1lbnQiJiZvLnRhZ05hbWU9PT0ibGkiJiZvLnByb3BlcnRpZXMmJkFycmF5LmlzQXJyYXkoby5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkmJm8ucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoInRhc2stbGlzdC1pdGVtIikpe3IuY2xhc3NOYW1lPVsiY29udGFpbnMtdGFzay1saXN0Il07YnJlYWt9fWxldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmUub3JkZXJlZD8ib2wiOiJ1bCIscHJvcGVydGllczpyLGNoaWxkcmVuOnQud3JhcChhLCEwKX07cmV0dXJuIHQucGF0Y2goZSxuKSx0LmFwcGx5RGF0YShlLG4pfXZhciByc3I9dSgoKT0+e2kodHNyLCJsaXN0Iil9KTtmdW5jdGlvbiBhc3IodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBpc3I9dSgoKT0+e2koYXNyLCJwYXJhZ3JhcGgiKX0pO2Z1bmN0aW9uIHNzcih0LGUpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjp0LndyYXAodC5hbGwoZSkpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIG5zcj11KCgpPT57aShzc3IsInJvb3QiKX0pO2Z1bmN0aW9uIG9zcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdHJvbmciLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC5hbGwoZSl9O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX12YXIgbHNyPXUoKCk9PntpKG9zciwic3Ryb25nIil9KTtmdW5jdGlvbiBjc3IodCxlKXtsZXQgcj10LmFsbChlKSxhPXIuc2hpZnQoKSxzPVtdO2lmKGEpe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0aGVhZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoW2FdLCEwKX07dC5wYXRjaChlLmNoaWxkcmVuWzBdLG8pLHMucHVzaChvKX1pZihyLmxlbmd0aD4wKXtsZXQgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGJvZHkiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKHIsITApfSxsPSQ0ZShlLmNoaWxkcmVuWzFdKSxjPUQ0ZShlLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKTtsJiZjJiYoby5wb3NpdGlvbj17c3RhcnQ6bCxlbmQ6Y30pLHMucHVzaChvKX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKHMsITApfTtyZXR1cm4gdC5wYXRjaChlLG4pLHQuYXBwbHlEYXRhKGUsbil9dmFyIGRzcj11KCgpPT57QTRlKCk7aShjc3IsInRhYmxlIil9KTtmdW5jdGlvbiB1c3IodCxlLHIpe2xldCBhPXI/ci5jaGlsZHJlbjp2b2lkIDAsbj0oYT9hLmluZGV4T2YoZSk6MSk9PT0wPyJ0aCI6InRkIixvPXImJnIudHlwZT09PSJ0YWJsZSI/ci5hbGlnbjp2b2lkIDAsbD1vP28ubGVuZ3RoOmUuY2hpbGRyZW4ubGVuZ3RoLGM9LTEsZD1bXTtmb3IoOysrYzxsOyl7bGV0IHA9ZS5jaGlsZHJlbltjXSxoPXt9LG09bz9vW2NdOnZvaWQgMDttJiYoaC5hbGlnbj1tKTtsZXQgdj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTpuLHByb3BlcnRpZXM6aCxjaGlsZHJlbjpbXX07cCYmKHYuY2hpbGRyZW49dC5hbGwocCksdC5wYXRjaChwLHYpLHY9dC5hcHBseURhdGEocCx2KSksZC5wdXNoKHYpfWxldCBmPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ciIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoZCwhMCl9O3JldHVybiB0LnBhdGNoKGUsZiksdC5hcHBseURhdGEoZSxmKX12YXIgcHNyPXUoKCk9PntpKHVzciwidGFibGVSb3ciKX0pO2Z1bmN0aW9uIGZzcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBoc3I9dSgoKT0+e2koZnNyLCJ0YWJsZUNlbGwiKX0pO2Z1bmN0aW9uIGdzcih0KXtsZXQgZT1TdHJpbmcodCkscj0vXHI/XG58XHIvZyxhPXIuZXhlYyhlKSxzPTAsbj1bXTtmb3IoO2E7KW4ucHVzaChtc3IoZS5zbGljZShzLGEuaW5kZXgpLHM+MCwhMCksYVswXSkscz1hLmluZGV4K2FbMF0ubGVuZ3RoLGE9ci5leGVjKGUpO3JldHVybiBuLnB1c2gobXNyKGUuc2xpY2Uocykscz4wLCExKSksbi5qb2luKCIiKX1mdW5jdGlvbiBtc3IodCxlLHIpe2xldCBhPTAscz10Lmxlbmd0aDtpZihlKXtsZXQgbj10LmNvZGVQb2ludEF0KGEpO2Zvcig7bj09PTl8fG49PT0zMjspYSsrLG49dC5jb2RlUG9pbnRBdChhKX1pZihyKXtsZXQgbj10LmNvZGVQb2ludEF0KHMtMSk7Zm9yKDtuPT09OXx8bj09PTMyOylzLS0sbj10LmNvZGVQb2ludEF0KHMtMSl9cmV0dXJuIHM+YT90LnNsaWNlKGEscyk6IiJ9dmFyIGNtbixkbW4sYnNyPXUoKCk9PntjbW49OSxkbW49MzI7aShnc3IsInRyaW1MaW5lcyIpO2kobXNyLCJ0cmltTGluZSIpfSk7ZnVuY3Rpb24geHNyKHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOmdzcihTdHJpbmcoZS52YWx1ZSkpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIHZzcj11KCgpPT57YnNyKCk7aSh4c3IsInRleHQiKX0pO2Z1bmN0aW9uIHlzcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciB3c3I9dSgoKT0+e2koeXNyLCJ0aGVtYXRpY0JyZWFrIil9KTtmdW5jdGlvbiBQNGUoKXt9dmFyIE5EZSxPRGU9dSgoKT0+e19pcigpO0xpcigpOyRpcigpO0VpcigpO1BpcigpO09pcigpO0ZpcigpO0hpcigpO1ZpcigpO1VpcigpO0dpcigpO0tpcigpO1FpcigpO2VzcigpO3JzcigpO2lzcigpO25zcigpO2xzcigpO2RzcigpO3BzcigpO2hzcigpO3ZzcigpO3dzcigpO05EZT17YmxvY2txdW90ZTp6aXIsYnJlYWs6VGlyLGNvZGU6RGlyLGRlbGV0ZTpBaXIsZW1waGFzaXM6SWlyLGZvb3Rub3RlUmVmZXJlbmNlOk5pcixoZWFkaW5nOlJpcixodG1sOkJpcixpbWFnZVJlZmVyZW5jZTpxaXIsaW1hZ2U6amlyLGlubGluZUNvZGU6V2lyLGxpbmtSZWZlcmVuY2U6WWlyLGxpbms6WmlyLGxpc3RJdGVtOkppcixsaXN0OnRzcixwYXJhZ3JhcGg6YXNyLHJvb3Q6c3NyLHN0cm9uZzpvc3IsdGFibGU6Y3NyLHRhYmxlQ2VsbDpmc3IsdGFibGVSb3c6dXNyLHRleHQ6eHNyLHRoZW1hdGljQnJlYWs6eXNyLHRvbWw6UDRlLHlhbWw6UDRlLGRlZmluaXRpb246UDRlLGZvb3Rub3RlRGVmaW5pdGlvbjpQNGV9O2koUDRlLCJpZ25vcmUiKX0pO2Z1bmN0aW9uIGtzcih0LGUpe2xldCByPVt7dHlwZToidGV4dCIsdmFsdWU6Ilx1MjFBOSJ9XTtyZXR1cm4gZT4xJiZyLnB1c2goe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN1cCIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhlKX1dfSkscn1mdW5jdGlvbiBTc3IodCxlKXtyZXR1cm4iQmFjayB0byByZWZlcmVuY2UgIisodCsxKSsoZT4xPyItIitlOiIiKX1mdW5jdGlvbiBNc3IodCl7bGV0IGU9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscj10Lm9wdGlvbnMuZm9vdG5vdGVCYWNrQ29udGVudHx8a3NyLGE9dC5vcHRpb25zLmZvb3Rub3RlQmFja0xhYmVsfHxTc3Iscz10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbHx8IkZvb3Rub3RlcyIsbj10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbFRhZ05hbWV8fCJoMiIsbz10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbFByb3BlcnRpZXN8fHtjbGFzc05hbWU6WyJzci1vbmx5Il19LGw9W10sYz0tMTtmb3IoOysrYzx0LmZvb3Rub3RlT3JkZXIubGVuZ3RoOyl7bGV0IGQ9dC5mb290bm90ZUJ5SWQuZ2V0KHQuZm9vdG5vdGVPcmRlcltjXSk7aWYoIWQpY29udGludWU7bGV0IGY9dC5hbGwoZCkscD1TdHJpbmcoZC5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGg9YWwocC50b0xvd2VyQ2FzZSgpKSxtPTAsdj1bXSxiPXQuZm9vdG5vdGVDb3VudHMuZ2V0KHApO2Zvcig7YiE9PXZvaWQgMCYmKyttPD1iOyl7di5sZW5ndGg+MCYmdi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KTtsZXQgaz10eXBlb2Ygcj09InN0cmluZyI/cjpyKGMsbSk7dHlwZW9mIGs9PSJzdHJpbmciJiYoaz17dHlwZToidGV4dCIsdmFsdWU6a30pLHYucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczp7aHJlZjoiIyIrZSsiZm5yZWYtIitoKyhtPjE/Ii0iK206IiIpLGRhdGFGb290bm90ZUJhY2tyZWY6IiIsYXJpYUxhYmVsOnR5cGVvZiBhPT0ic3RyaW5nIj9hOmEoYyxtKSxjbGFzc05hbWU6WyJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXX0sY2hpbGRyZW46QXJyYXkuaXNBcnJheShrKT9rOltrXX0pfWxldCBnPWZbZi5sZW5ndGgtMV07aWYoZyYmZy50eXBlPT09ImVsZW1lbnQiJiZnLnRhZ05hbWU9PT0icCIpe2xldCBrPWcuY2hpbGRyZW5bZy5jaGlsZHJlbi5sZW5ndGgtMV07ayYmay50eXBlPT09InRleHQiP2sudmFsdWUrPSIgIjpnLmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pLGcuY2hpbGRyZW4ucHVzaCguLi52KX1lbHNlIGYucHVzaCguLi52KTtsZXQgeT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToibGkiLHByb3BlcnRpZXM6e2lkOmUrImZuLSIraH0sY2hpbGRyZW46dC53cmFwKGYsITApfTt0LnBhdGNoKGQseSksbC5wdXNoKHkpfWlmKGwubGVuZ3RoIT09MClyZXR1cm57dHlwZToiZWxlbWVudCIsdGFnTmFtZToic2VjdGlvbiIscHJvcGVydGllczp7ZGF0YUZvb3Rub3RlczohMCxjbGFzc05hbWU6WyJmb290bm90ZXMiXX0sY2hpbGRyZW46W3t0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczp7Li4ua3AobyksaWQ6ImZvb3Rub3RlLWxhYmVsIn0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpzfV19LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJvbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAobCwhMCl9LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX19dmFyIFJEZT11KCgpPT57TDRlKCk7WjAoKTtpKGtzciwiZGVmYXVsdEZvb3Rub3RlQmFja0NvbnRlbnQiKTtpKFNzciwiZGVmYXVsdEZvb3Rub3RlQmFja0xhYmVsIik7aShNc3IsImZvb3RlciIpfSk7ZnVuY3Rpb24genNyKHQsZSl7bGV0IHI9ZXx8Y19hLGE9bmV3IE1hcCxzPW5ldyBNYXAsbj1uZXcgTWFwLG89ey4uLk5EZSwuLi5yLmhhbmRsZXJzfSxsPXthbGw6ZCxhcHBseURhdGE6dV9hLGRlZmluaXRpb25CeUlkOmEsZm9vdG5vdGVCeUlkOnMsZm9vdG5vdGVDb3VudHM6bixmb290bm90ZU9yZGVyOltdLGhhbmRsZXJzOm8sb25lOmMsb3B0aW9uczpyLHBhdGNoOmRfYSx3cmFwOmZfYX07cmV0dXJuIE56KHQsZnVuY3Rpb24oZil7aWYoZi50eXBlPT09ImRlZmluaXRpb24ifHxmLnR5cGU9PT0iZm9vdG5vdGVEZWZpbml0aW9uIil7bGV0IHA9Zi50eXBlPT09ImRlZmluaXRpb24iP2E6cyxoPVN0cmluZyhmLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCk7cC5oYXMoaCl8fHAuc2V0KGgsZil9fSksbDtmdW5jdGlvbiBjKGYscCl7bGV0IGg9Zi50eXBlLG09bC5oYW5kbGVyc1toXTtpZihGRGUuY2FsbChsLmhhbmRsZXJzLGgpJiZtKXJldHVybiBtKGwsZixwKTtpZihsLm9wdGlvbnMucGFzc1Rocm91Z2gmJmwub3B0aW9ucy5wYXNzVGhyb3VnaC5pbmNsdWRlcyhoKSl7aWYoImNoaWxkcmVuImluIGYpe2xldHtjaGlsZHJlbjpiLC4uLmd9PWYseT1rcChnKTtyZXR1cm4geS5jaGlsZHJlbj1sLmFsbChmKSx5fXJldHVybiBrcChmKX1yZXR1cm4obC5vcHRpb25zLnVua25vd25IYW5kbGVyfHxwX2EpKGwsZixwKX1pKGMsIm9uZSIpO2Z1bmN0aW9uIGQoZil7bGV0IHA9W107aWYoImNoaWxkcmVuImluIGYpe2xldCBoPWYuY2hpbGRyZW4sbT0tMTtmb3IoOysrbTxoLmxlbmd0aDspe2xldCB2PWwub25lKGhbbV0sZik7aWYodil7aWYobSYmaFttLTFdLnR5cGU9PT0iYnJlYWsiJiYoIUFycmF5LmlzQXJyYXkodikmJnYudHlwZT09PSJ0ZXh0IiYmKHYudmFsdWU9Q3NyKHYudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh2KSYmdi50eXBlPT09ImVsZW1lbnQiKSl7bGV0IGI9di5jaGlsZHJlblswXTtiJiZiLnR5cGU9PT0idGV4dCImJihiLnZhbHVlPUNzcihiLnZhbHVlKSl9QXJyYXkuaXNBcnJheSh2KT9wLnB1c2goLi4udik6cC5wdXNoKHYpfX19cmV0dXJuIHB9aShkLCJhbGwiKX1mdW5jdGlvbiBkX2EodCxlKXt0LnBvc2l0aW9uJiYoZS5wb3NpdGlvbj1Reih0KSl9ZnVuY3Rpb24gdV9hKHQsZSl7bGV0IHI9ZTtpZih0JiZ0LmRhdGEpe2xldCBhPXQuZGF0YS5oTmFtZSxzPXQuZGF0YS5oQ2hpbGRyZW4sbj10LmRhdGEuaFByb3BlcnRpZXM7aWYodHlwZW9mIGE9PSJzdHJpbmciKWlmKHIudHlwZT09PSJlbGVtZW50IilyLnRhZ05hbWU9YTtlbHNle2xldCBvPSJjaGlsZHJlbiJpbiByP3IuY2hpbGRyZW46W3JdO3I9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6YSxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOm99fXIudHlwZT09PSJlbGVtZW50IiYmbiYmT2JqZWN0LmFzc2lnbihyLnByb3BlcnRpZXMsa3AobikpLCJjaGlsZHJlbiJpbiByJiZyLmNoaWxkcmVuJiZzIT09bnVsbCYmcyE9PXZvaWQgMCYmKHIuY2hpbGRyZW49cyl9cmV0dXJuIHJ9ZnVuY3Rpb24gcF9hKHQsZSl7bGV0IHI9ZS5kYXRhfHx7fSxhPSJ2YWx1ZSJpbiBlJiYhKEZEZS5jYWxsKHIsImhQcm9wZXJ0aWVzIil8fEZEZS5jYWxsKHIsImhDaGlsZHJlbiIpKT97dHlwZToidGV4dCIsdmFsdWU6ZS52YWx1ZX06e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRpdiIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfWZ1bmN0aW9uIGZfYSh0LGUpe2xldCByPVtdLGE9LTE7Zm9yKGUmJnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7KythPHQubGVuZ3RoOylhJiZyLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHIucHVzaCh0W2FdKTtyZXR1cm4gZSYmdC5sZW5ndGg+MCYmci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxyfWZ1bmN0aW9uIENzcih0KXtsZXQgZT0wLHI9dC5jaGFyQ29kZUF0KGUpO2Zvcig7cj09PTl8fHI9PT0zMjspZSsrLHI9dC5jaGFyQ29kZUF0KGUpO3JldHVybiB0LnNsaWNlKGUpfXZhciBGRGUsY19hLF9zcj11KCgpPT57TDRlKCk7ZExlKCk7QTRlKCk7T0RlKCk7RkRlPXt9Lmhhc093blByb3BlcnR5LGNfYT17fTtpKHpzciwiY3JlYXRlU3RhdGUiKTtpKGRfYSwicGF0Y2giKTtpKHVfYSwiYXBwbHlEYXRhIik7aShwX2EsImRlZmF1bHRVbmtub3duSGFuZGxlciIpO2koZl9hLCJ3cmFwIik7aShDc3IsInRyaW1NYXJrZG93blNwYWNlU3RhcnQiKX0pO2Z1bmN0aW9uIEJEZSh0LGUpe2xldCByPXpzcih0LGUpLGE9ci5vbmUodCx2b2lkIDApLHM9TXNyKHIpLG49QXJyYXkuaXNBcnJheShhKT97dHlwZToicm9vdCIsY2hpbGRyZW46YX06YXx8e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfTtyZXR1cm4gcyYmKCJjaGlsZHJlbiJpbiBuLG4uY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSxzKSksbn12YXIgVHNyPXUoKCk9PnttcCgpO1JEZSgpO19zcigpO2koQkRlLCJ0b0hhc3QiKX0pO3ZhciBMc3I9dSgoKT0+e09EZSgpO1RzcigpO1JEZSgpfSk7dmFyIERzciwkc3I9dSgoKT0+e0Rzcj1bImFyZWEiLCJiYXNlIiwiYmFzZWZvbnQiLCJiZ3NvdW5kIiwiYnIiLCJjb2wiLCJjb21tYW5kIiwiZW1iZWQiLCJmcmFtZSIsImhyIiwiaW1hZ2UiLCJpbWciLCJpbnB1dCIsImtleWdlbiIsImxpbmsiLCJtZXRhIiwicGFyYW0iLCJzb3VyY2UiLCJ0cmFjayIsIndiciJdfSk7dmFyIEE0LEhEZT11KCgpPT57QTQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMubm9ybWFsPXIsdGhpcy5wcm9wZXJ0eT1lLGEmJih0aGlzLnNwYWNlPWEpfX07QTQucHJvdG90eXBlLm5vcm1hbD17fSxBNC5wcm90b3R5cGUucHJvcGVydHk9e30sQTQucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO2Z1bmN0aW9uIHFEZSh0LGUpe2xldCByPXt9LGE9e307Zm9yKGxldCBzIG9mIHQpT2JqZWN0LmFzc2lnbihyLHMucHJvcGVydHkpLE9iamVjdC5hc3NpZ24oYSxzLm5vcm1hbCk7cmV0dXJuIG5ldyBBNChyLGEsZSl9dmFyIEFzcj11KCgpPT57SERlKCk7aShxRGUsIm1lcmdlIil9KTtmdW5jdGlvbiBjeSh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXZhciBONGU9dSgoKT0+e2koY3ksIm5vcm1hbGl6ZSIpfSk7dmFyIHhuLFZEZT11KCgpPT57eG49Y2xhc3N7c3RhdGlje2kodGhpcywiSW5mbyIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5hdHRyaWJ1dGU9cix0aGlzLnByb3BlcnR5PWV9fTt4bi5wcm90b3R5cGUuYXR0cmlidXRlPSIiLHhuLnByb3RvdHlwZS5ib29sZWFuaXNoPSExLHhuLnByb3RvdHlwZS5ib29sZWFuPSExLHhuLnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQ9ITEseG4ucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkPSExLHhuLnByb3RvdHlwZS5kZWZpbmVkPSExLHhuLnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHk9ITEseG4ucHJvdG90eXBlLm51bWJlcj0hMSx4bi5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW49ITEseG4ucHJvdG90eXBlLnByb3BlcnR5PSIiLHhuLnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZD0hMSx4bi5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7dmFyIEp6PXt9O1ZlKEp6LHtib29sZWFuOigpPT5ocixib29sZWFuaXNoOigpPT5xaSxjb21tYU9yU3BhY2VTZXBhcmF0ZWQ6KCk9PkwxLGNvbW1hU2VwYXJhdGVkOigpPT5NcCxudW1iZXI6KCk9PmF0LG92ZXJsb2FkZWRCb29sZWFuOigpPT5PNGUsc3BhY2VTZXBhcmF0ZWQ6KCk9PlZhfSk7ZnVuY3Rpb24gVjYoKXtyZXR1cm4gMioqKytoX2F9dmFyIGhfYSxocixxaSxPNGUsYXQsVmEsTXAsTDEsZV89dSgoKT0+e2hfYT0wLGhyPVY2KCkscWk9VjYoKSxPNGU9VjYoKSxhdD1WNigpLFZhPVY2KCksTXA9VjYoKSxMMT1WNigpO2koVjYsImluY3JlbWVudCIpfSk7ZnVuY3Rpb24gRXNyKHQsZSxyKXtyJiYodFtlXT1yKX12YXIgakRlLGo2LFVEZT11KCgpPT57VkRlKCk7ZV8oKTtqRGU9T2JqZWN0LmtleXMoSnopLGo2PWNsYXNzIGV4dGVuZHMgeG57c3RhdGlje2kodGhpcywiRGVmaW5lZEluZm8iKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXtsZXQgbj0tMTtpZihzdXBlcihlLHIpLEVzcih0aGlzLCJzcGFjZSIscyksdHlwZW9mIGE9PSJudW1iZXIiKWZvcig7KytuPGpEZS5sZW5ndGg7KXtsZXQgbz1qRGVbbl07RXNyKHRoaXMsakRlW25dLChhJkp6W29dKT09PUp6W29dKX19fTtqNi5wcm90b3R5cGUuZGVmaW5lZD0hMDtpKEVzciwibWFyayIpfSk7ZnVuY3Rpb24gV2wodCl7bGV0IGU9e30scj17fTtmb3IobGV0W2Esc11vZiBPYmplY3QuZW50cmllcyh0LnByb3BlcnRpZXMpKXtsZXQgbj1uZXcgajYoYSx0LnRyYW5zZm9ybSh0LmF0dHJpYnV0ZXN8fHt9LGEpLHMsdC5zcGFjZSk7dC5tdXN0VXNlUHJvcGVydHkmJnQubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGEpJiYobi5tdXN0VXNlUHJvcGVydHk9ITApLGVbYV09bixyW2N5KGEpXT1hLHJbY3kobi5hdHRyaWJ1dGUpXT1hfXJldHVybiBuZXcgQTQoZSxyLHQuc3BhY2UpfXZhciBVNj11KCgpPT57TjRlKCk7VURlKCk7SERlKCk7aShXbCwiY3JlYXRlIil9KTt2YXIgV0RlLElzcj11KCgpPT57VTYoKTtlXygpO1dEZT1XbCh7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOnFpLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTpxaSxhcmlhQ2hlY2tlZDpxaSxhcmlhQ29sQ291bnQ6YXQsYXJpYUNvbEluZGV4OmF0LGFyaWFDb2xTcGFuOmF0LGFyaWFDb250cm9sczpWYSxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpWYSxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDpxaSxhcmlhRHJvcEVmZmVjdDpWYSxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOnFpLGFyaWFGbG93VG86VmEsYXJpYUdyYWJiZWQ6cWksYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjpxaSxhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpWYSxhcmlhTGV2ZWw6YXQsYXJpYUxpdmU6bnVsbCxhcmlhTW9kYWw6cWksYXJpYU11bHRpTGluZTpxaSxhcmlhTXVsdGlTZWxlY3RhYmxlOnFpLGFyaWFPcmllbnRhdGlvbjpudWxsLGFyaWFPd25zOlZhLGFyaWFQbGFjZWhvbGRlcjpudWxsLGFyaWFQb3NJblNldDphdCxhcmlhUHJlc3NlZDpxaSxhcmlhUmVhZE9ubHk6cWksYXJpYVJlbGV2YW50Om51bGwsYXJpYVJlcXVpcmVkOnFpLGFyaWFSb2xlRGVzY3JpcHRpb246VmEsYXJpYVJvd0NvdW50OmF0LGFyaWFSb3dJbmRleDphdCxhcmlhUm93U3BhbjphdCxhcmlhU2VsZWN0ZWQ6cWksYXJpYVNldFNpemU6YXQsYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6YXQsYXJpYVZhbHVlTWluOmF0LGFyaWFWYWx1ZU5vdzphdCxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0odCxlKXtyZXR1cm4gZT09PSJyb2xlIj9lOiJhcmlhLSIrZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pfSk7ZnVuY3Rpb24gUjRlKHQsZSl7cmV0dXJuIGUgaW4gdD90W2VdOmV9dmFyIEdEZT11KCgpPT57aShSNGUsImNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0iKX0pO2Z1bmN0aW9uIEY0ZSh0LGUpe3JldHVybiBSNGUodCxlLnRvTG93ZXJDYXNlKCkpfXZhciBZRGU9dSgoKT0+e0dEZSgpO2koRjRlLCJjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0iKX0pO3ZhciBQc3IsTnNyPXUoKCk9PntZRGUoKTtVNigpO2VfKCk7UHNyPVdsKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpNcCxhY2NlcHRDaGFyc2V0OlZhLGFjY2Vzc0tleTpWYSxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpocixhbGxvd1BheW1lbnRSZXF1ZXN0OmhyLGFsbG93VXNlck1lZGlhOmhyLGFsdDpudWxsLGFzOm51bGwsYXN5bmM6aHIsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6VmEsYXV0b0ZvY3VzOmhyLGF1dG9QbGF5OmhyLGJsb2NraW5nOlZhLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpocixjaXRlOm51bGwsY2xhc3NOYW1lOlZhLGNvbHM6YXQsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6cWksY29udHJvbHM6aHIsY29udHJvbHNMaXN0OlZhLGNvb3JkczphdHxNcCxjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDpocixkZWZlcjpocixkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6aHIsZG93bmxvYWQ6TzRlLGRyYWdnYWJsZTpxaSxlbmNUeXBlOm51bGwsZW50ZXJLZXlIaW50Om51bGwsZmV0Y2hQcmlvcml0eTpudWxsLGZvcm06bnVsbCxmb3JtQWN0aW9uOm51bGwsZm9ybUVuY1R5cGU6bnVsbCxmb3JtTWV0aG9kOm51bGwsZm9ybU5vVmFsaWRhdGU6aHIsZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6VmEsaGVpZ2h0OmF0LGhpZGRlbjpPNGUsaGlnaDphdCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxodG1sRm9yOlZhLGh0dHBFcXVpdjpWYSxpZDpudWxsLGltYWdlU2l6ZXM6bnVsbCxpbWFnZVNyY1NldDpudWxsLGluZXJ0OmhyLGlucHV0TW9kZTpudWxsLGludGVncml0eTpudWxsLGlzOm51bGwsaXNNYXA6aHIsaXRlbUlkOm51bGwsaXRlbVByb3A6VmEsaXRlbVJlZjpWYSxpdGVtU2NvcGU6aHIsaXRlbVR5cGU6VmEsa2luZDpudWxsLGxhYmVsOm51bGwsbGFuZzpudWxsLGxhbmd1YWdlOm51bGwsbGlzdDpudWxsLGxvYWRpbmc6bnVsbCxsb29wOmhyLGxvdzphdCxtYW5pZmVzdDpudWxsLG1heDpudWxsLG1heExlbmd0aDphdCxtZWRpYTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1pbkxlbmd0aDphdCxtdWx0aXBsZTpocixtdXRlZDpocixuYW1lOm51bGwsbm9uY2U6bnVsbCxub01vZHVsZTpocixub1ZhbGlkYXRlOmhyLG9uQWJvcnQ6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkF1eENsaWNrOm51bGwsb25CZWZvcmVNYXRjaDpudWxsLG9uQmVmb3JlUHJpbnQ6bnVsbCxvbkJlZm9yZVRvZ2dsZTpudWxsLG9uQmVmb3JlVW5sb2FkOm51bGwsb25CbHVyOm51bGwsb25DYW5jZWw6bnVsbCxvbkNhblBsYXk6bnVsbCxvbkNhblBsYXlUaHJvdWdoOm51bGwsb25DaGFuZ2U6bnVsbCxvbkNsaWNrOm51bGwsb25DbG9zZTpudWxsLG9uQ29udGV4dExvc3Q6bnVsbCxvbkNvbnRleHRNZW51Om51bGwsb25Db250ZXh0UmVzdG9yZWQ6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9ybURhdGE6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxhbmd1YWdlQ2hhbmdlOm51bGwsb25Mb2FkOm51bGwsb25Mb2FkZWREYXRhOm51bGwsb25Mb2FkZWRNZXRhZGF0YTpudWxsLG9uTG9hZEVuZDpudWxsLG9uTG9hZFN0YXJ0Om51bGwsb25NZXNzYWdlOm51bGwsb25NZXNzYWdlRXJyb3I6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlamVjdGlvbkhhbmRsZWQ6bnVsbCxvblJlc2V0Om51bGwsb25SZXNpemU6bnVsbCxvblNjcm9sbDpudWxsLG9uU2Nyb2xsRW5kOm51bGwsb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjpudWxsLG9uU2Vla2VkOm51bGwsb25TZWVraW5nOm51bGwsb25TZWxlY3Q6bnVsbCxvblNsb3RDaGFuZ2U6bnVsbCxvblN0YWxsZWQ6bnVsbCxvblN0b3JhZ2U6bnVsbCxvblN1Ym1pdDpudWxsLG9uU3VzcGVuZDpudWxsLG9uVGltZVVwZGF0ZTpudWxsLG9uVG9nZ2xlOm51bGwsb25VbmhhbmRsZWRSZWplY3Rpb246bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25XaGVlbDpudWxsLG9wZW46aHIsb3B0aW11bTphdCxwYXR0ZXJuOm51bGwscGluZzpWYSxwbGFjZWhvbGRlcjpudWxsLHBsYXlzSW5saW5lOmhyLHBvcG92ZXI6bnVsbCxwb3BvdmVyVGFyZ2V0Om51bGwscG9wb3ZlclRhcmdldEFjdGlvbjpudWxsLHBvc3RlcjpudWxsLHByZWxvYWQ6bnVsbCxyZWFkT25seTpocixyZWZlcnJlclBvbGljeTpudWxsLHJlbDpWYSxyZXF1aXJlZDpocixyZXZlcnNlZDpocixyb3dzOmF0LHJvd1NwYW46YXQsc2FuZGJveDpWYSxzY29wZTpudWxsLHNjb3BlZDpocixzZWFtbGVzczpocixzZWxlY3RlZDpocixzaGFkb3dSb290Q2xvbmFibGU6aHIsc2hhZG93Um9vdERlbGVnYXRlc0ZvY3VzOmhyLHNoYWRvd1Jvb3RNb2RlOm51bGwsc2hhcGU6bnVsbCxzaXplOmF0LHNpemVzOm51bGwsc2xvdDpudWxsLHNwYW46YXQsc3BlbGxDaGVjazpxaSxzcmM6bnVsbCxzcmNEb2M6bnVsbCxzcmNMYW5nOm51bGwsc3JjU2V0Om51bGwsc3RhcnQ6YXQsc3RlcDpudWxsLHN0eWxlOm51bGwsdGFiSW5kZXg6YXQsdGFyZ2V0Om51bGwsdGl0bGU6bnVsbCx0cmFuc2xhdGU6bnVsbCx0eXBlOm51bGwsdHlwZU11c3RNYXRjaDpocix1c2VNYXA6bnVsbCx2YWx1ZTpxaSx3aWR0aDphdCx3cmFwOm51bGwsd3JpdGluZ1N1Z2dlc3Rpb25zOm51bGwsYWxpZ246bnVsbCxhTGluazpudWxsLGFyY2hpdmU6VmEsYXhpczpudWxsLGJhY2tncm91bmQ6bnVsbCxiZ0NvbG9yOm51bGwsYm9yZGVyOmF0LGJvcmRlckNvbG9yOm51bGwsYm90dG9tTWFyZ2luOmF0LGNlbGxQYWRkaW5nOm51bGwsY2VsbFNwYWNpbmc6bnVsbCxjaGFyOm51bGwsY2hhck9mZjpudWxsLGNsYXNzSWQ6bnVsbCxjbGVhcjpudWxsLGNvZGU6bnVsbCxjb2RlQmFzZTpudWxsLGNvZGVUeXBlOm51bGwsY29sb3I6bnVsbCxjb21wYWN0OmhyLGRlY2xhcmU6aHIsZXZlbnQ6bnVsbCxmYWNlOm51bGwsZnJhbWU6bnVsbCxmcmFtZUJvcmRlcjpudWxsLGhTcGFjZTphdCxsZWZ0TWFyZ2luOmF0LGxpbms6bnVsbCxsb25nRGVzYzpudWxsLGxvd1NyYzpudWxsLG1hcmdpbkhlaWdodDphdCxtYXJnaW5XaWR0aDphdCxub1Jlc2l6ZTpocixub0hyZWY6aHIsbm9TaGFkZTpocixub1dyYXA6aHIsb2JqZWN0Om51bGwscHJvZmlsZTpudWxsLHByb21wdDpudWxsLHJldjpudWxsLHJpZ2h0TWFyZ2luOmF0LHJ1bGVzOm51bGwsc2NoZW1lOm51bGwsc2Nyb2xsaW5nOnFpLHN0YW5kYnk6bnVsbCxzdW1tYXJ5Om51bGwsdGV4dDpudWxsLHRvcE1hcmdpbjphdCx2YWx1ZVR5cGU6bnVsbCx2ZXJzaW9uOm51bGwsdkFsaWduOm51bGwsdkxpbms6bnVsbCx2U3BhY2U6YXQsYWxsb3dUcmFuc3BhcmVuY3k6bnVsbCxhdXRvQ29ycmVjdDpudWxsLGF1dG9TYXZlOm51bGwsZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6aHIsZGlzYWJsZVJlbW90ZVBsYXliYWNrOmhyLHByZWZpeDpudWxsLHByb3BlcnR5Om51bGwscmVzdWx0czphdCxzZWN1cml0eTpudWxsLHVuc2VsZWN0YWJsZTpudWxsfSxzcGFjZToiaHRtbCIsdHJhbnNmb3JtOkY0ZX0pfSk7dmFyIE9zcixSc3I9dSgoKT0+e0dEZSgpO1U2KCk7ZV8oKTtPc3I9V2woe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDpMMSxhY2NlbnRIZWlnaHQ6YXQsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOmF0LGFtcGxpdHVkZTphdCxhcmFiaWNGb3JtOm51bGwsYXNjZW50OmF0LGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDphdCxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczphdCxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OmF0LGNsYXNzTmFtZTpWYSxjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDphdCxkaWZmdXNlQ29uc3RhbnQ6YXQsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6YXQsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOmhyLGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOmF0LGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OmF0LGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6YXQsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6TXAsZzI6TXAsZ2x5cGhOYW1lOk1wLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzphdCxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6YXQsaG9yaXpPcmlnaW5YOmF0LGhvcml6T3JpZ2luWTphdCxpZDpudWxsLGlkZW9ncmFwaGljOmF0LGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDphdCxrOmF0LGsxOmF0LGsyOmF0LGszOmF0LGs0OmF0LGtlcm5lbE1hdHJpeDpMMSxrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOmF0LGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6YXQsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246YXQsb3ZlcmxpbmVUaGlja25lc3M6YXQscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDphdCxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpWYSxwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOmF0LHBvaW50c0F0WTphdCxwb2ludHNBdFo6YXQscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OkwxLHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOkwxLHJldjpMMSxyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczpMMSxyZXF1aXJlZEZlYXR1cmVzOkwxLHJlcXVpcmVkRm9udHM6TDEscmVxdWlyZWRGb3JtYXRzOkwxLHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6YXQsc3BlY3VsYXJFeHBvbmVudDphdCxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjphdCxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOmF0LHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTpMMSxzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDphdCxzdHJva2VPcGFjaXR5OmF0LHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6YXQsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTpMMSx0YWJJbmRleDphdCx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6YXQsdGFyZ2V0WTphdCx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjpMMSx0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjphdCx1bmRlcmxpbmVUaGlja25lc3M6YXQsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTphdCx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzphdCx2TWF0aGVtYXRpY2FsOmF0LHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOmF0LHZJZGVvZ3JhcGhpYzphdCx2ZXJzaW9uOm51bGwsdmVydEFkdlk6YXQsdmVydE9yaWdpblg6YXQsdmVydE9yaWdpblk6YXQsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDphdCx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06UjRlfSl9KTt2YXIgS0RlLEZzcj11KCgpPT57VTYoKTtLRGU9V2woe3Byb3BlcnRpZXM6e3hMaW5rQWN0dWF0ZTpudWxsLHhMaW5rQXJjUm9sZTpudWxsLHhMaW5rSHJlZjpudWxsLHhMaW5rUm9sZTpudWxsLHhMaW5rU2hvdzpudWxsLHhMaW5rVGl0bGU6bnVsbCx4TGlua1R5cGU6bnVsbH0sc3BhY2U6InhsaW5rIix0cmFuc2Zvcm0odCxlKXtyZXR1cm4ieGxpbms6IitlLnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgWkRlLEJzcj11KCgpPT57VTYoKTtZRGUoKTtaRGU9V2woe2F0dHJpYnV0ZXM6e3htbG5zeGxpbms6InhtbG5zOnhsaW5rIn0scHJvcGVydGllczp7eG1sbnNYTGluazpudWxsLHhtbG5zOm51bGx9LHNwYWNlOiJ4bWxucyIsdHJhbnNmb3JtOkY0ZX0pfSk7dmFyIFFEZSxIc3I9dSgoKT0+e1U2KCk7UURlPVdsKHtwcm9wZXJ0aWVzOnt4bWxCYXNlOm51bGwseG1sTGFuZzpudWxsLHhtbFNwYWNlOm51bGx9LHNwYWNlOiJ4bWwiLHRyYW5zZm9ybSh0LGUpe3JldHVybiJ4bWw6IitlLnNsaWNlKDMpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgcXNyPXUoKCk9Pnt9KTtmdW5jdGlvbiBYRGUodCxlKXtsZXQgcj1jeShlKSxhPWUscz14bjtpZihyIGluIHQubm9ybWFsKXJldHVybiB0LnByb3BlcnR5W3Qubm9ybWFsW3JdXTtpZihyLmxlbmd0aD40JiZyLnNsaWNlKDAsNCk9PT0iZGF0YSImJmdfYS50ZXN0KGUpKXtpZihlLmNoYXJBdCg0KT09PSItIil7bGV0IG49ZS5zbGljZSg1KS5yZXBsYWNlKFZzcix4X2EpO2E9ImRhdGEiK24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrbi5zbGljZSgxKX1lbHNle2xldCBuPWUuc2xpY2UoNCk7aWYoIVZzci50ZXN0KG4pKXtsZXQgbz1uLnJlcGxhY2UobV9hLGJfYSk7by5jaGFyQXQoMCkhPT0iLSImJihvPSItIitvKSxlPSJkYXRhIitvfX1zPWo2fXJldHVybiBuZXcgcyhhLGUpfWZ1bmN0aW9uIGJfYSh0KXtyZXR1cm4iLSIrdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHhfYSh0KXtyZXR1cm4gdC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX12YXIgbV9hLFZzcixnX2EsanNyPXUoKCk9PntVRGUoKTtWRGUoKTtONGUoKTttX2E9L1tBLVpdL2csVnNyPS8tW2Etel0vZyxnX2E9L15kYXRhWy1cdy46XSskL2k7aShYRGUsImZpbmQiKTtpKGJfYSwia2ViYWIiKTtpKHhfYSwiY2FtZWxjYXNlIil9KTt2YXIgVXNyLEI0ZSxKRGU9dSgoKT0+e0FzcigpO0lzcigpO05zcigpO1JzcigpO0ZzcigpO0JzcigpO0hzcigpO3FzcigpO2pzcigpO040ZSgpO1Vzcj1xRGUoW1dEZSxQc3IsS0RlLFpEZSxRRGVdLCJodG1sIiksQjRlPXFEZShbV0RlLE9zcixLRGUsWkRlLFFEZV0sInN2ZyIpfSk7ZnVuY3Rpb24gZSRlKHQsZSl7aWYodD10LnJlcGxhY2UoZS5zdWJzZXQ/U19hKGUuc3Vic2V0KTp2X2EsYSksZS5zdWJzZXR8fGUuZXNjYXBlT25seSlyZXR1cm4gdDtyZXR1cm4gdC5yZXBsYWNlKHlfYSxyKS5yZXBsYWNlKHdfYSxhKTtmdW5jdGlvbiByKHMsbixvKXtyZXR1cm4gZS5mb3JtYXQoKHMuY2hhckNvZGVBdCgwKS01NTI5NikqMTAyNCtzLmNoYXJDb2RlQXQoMSktNTYzMjArNjU1MzYsby5jaGFyQ29kZUF0KG4rMiksZSl9ZnVuY3Rpb24gYShzLG4sbyl7cmV0dXJuIGUuZm9ybWF0KHMuY2hhckNvZGVBdCgwKSxvLmNoYXJDb2RlQXQobisxKSxlKX19ZnVuY3Rpb24gU19hKHQpe2xldCBlPVdzci5nZXQodCk7cmV0dXJuIGV8fChlPU1fYSh0KSxXc3Iuc2V0KHQsZSkpLGV9ZnVuY3Rpb24gTV9hKHQpe2xldCBlPVtdLHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWUucHVzaCh0W3JdLnJlcGxhY2Uoa19hLCJcXCQmIikpO3JldHVybiBuZXcgUmVnRXhwKCIoPzoiK2Uuam9pbigifCIpKyIpIiwiZyIpfXZhciB2X2EseV9hLHdfYSxrX2EsV3NyLEdzcj11KCgpPT57dl9hPS9bIiYnPD5gXS9nLHlfYT0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csd19hPS9bXHgwMS1cdFx2XGZceDBFLVx4MUZceDdGXHg4MVx4OERceDhGXHg5MFx4OURceEEwLVx1RkZGRl0vZyxrX2E9L1t8XFx7fSgpW1xdXiQrKj8uXS9nLFdzcj1uZXcgV2Vha01hcDtpKGUkZSwiY29yZSIpO2koU19hLCJjaGFyYWN0ZXJzVG9FeHByZXNzaW9uQ2FjaGVkIik7aShNX2EsImNoYXJhY3RlcnNUb0V4cHJlc3Npb24iKX0pO2Z1bmN0aW9uIFlzcih0LGUscil7bGV0IGE9IiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gciYmZSYmIUNfYS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP2E6YSsiOyJ9dmFyIENfYSxLc3I9dSgoKT0+e0NfYT0vW1xkQS1GYS1mXS87aShZc3IsInRvSGV4YWRlY2ltYWwiKX0pO2Z1bmN0aW9uIFpzcih0LGUscil7bGV0IGE9IiYjIitTdHJpbmcodCk7cmV0dXJuIHImJmUmJiF6X2EudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKT9hOmErIjsifXZhciB6X2EsUXNyPXUoKCk9Pnt6X2E9L1xkLztpKFpzciwidG9EZWNpbWFsIil9KTt2YXIgWHNyLEpzcj11KCgpPT57WHNyPVsiQUVsaWciLCJBTVAiLCJBYWN1dGUiLCJBY2lyYyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQXVtbCIsIkNPUFkiLCJDY2VkaWwiLCJFVEgiLCJFYWN1dGUiLCJFY2lyYyIsIkVncmF2ZSIsIkV1bWwiLCJHVCIsIklhY3V0ZSIsIkljaXJjIiwiSWdyYXZlIiwiSXVtbCIsIkxUIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmMiLCJPZ3JhdmUiLCJPc2xhc2giLCJPdGlsZGUiLCJPdW1sIiwiUVVPVCIsIlJFRyIsIlRIT1JOIiwiVWFjdXRlIiwiVWNpcmMiLCJVZ3JhdmUiLCJVdW1sIiwiWWFjdXRlIiwiYWFjdXRlIiwiYWNpcmMiLCJhY3V0ZSIsImFlbGlnIiwiYWdyYXZlIiwiYW1wIiwiYXJpbmciLCJhdGlsZGUiLCJhdW1sIiwiYnJ2YmFyIiwiY2NlZGlsIiwiY2VkaWwiLCJjZW50IiwiY29weSIsImN1cnJlbiIsImRlZyIsImRpdmlkZSIsImVhY3V0ZSIsImVjaXJjIiwiZWdyYXZlIiwiZXRoIiwiZXVtbCIsImZyYWMxMiIsImZyYWMxNCIsImZyYWMzNCIsImd0IiwiaWFjdXRlIiwiaWNpcmMiLCJpZXhjbCIsImlncmF2ZSIsImlxdWVzdCIsIml1bWwiLCJsYXF1byIsImx0IiwibWFjciIsIm1pY3JvIiwibWlkZG90IiwibmJzcCIsIm5vdCIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjIiwib2dyYXZlIiwib3JkZiIsIm9yZG0iLCJvc2xhc2giLCJvdGlsZGUiLCJvdW1sIiwicGFyYSIsInBsdXNtbiIsInBvdW5kIiwicXVvdCIsInJhcXVvIiwicmVnIiwic2VjdCIsInNoeSIsInN1cDEiLCJzdXAyIiwic3VwMyIsInN6bGlnIiwidGhvcm4iLCJ0aW1lcyIsInVhY3V0ZSIsInVjaXJjIiwidWdyYXZlIiwidW1sIiwidXVtbCIsInlhY3V0ZSIsInllbiIsInl1bWwiXX0pO3ZhciBINGUsZW5yPXUoKCk9PntINGU9e25ic3A6Ilx4QTAiLGlleGNsOiJceEExIixjZW50OiJceEEyIixwb3VuZDoiXHhBMyIsY3VycmVuOiJceEE0Iix5ZW46Ilx4QTUiLGJydmJhcjoiXHhBNiIsc2VjdDoiXHhBNyIsdW1sOiJceEE4Iixjb3B5OiJceEE5IixvcmRmOiJceEFBIixsYXF1bzoiXHhBQiIsbm90OiJceEFDIixzaHk6Ilx4QUQiLHJlZzoiXHhBRSIsbWFjcjoiXHhBRiIsZGVnOiJceEIwIixwbHVzbW46Ilx4QjEiLHN1cDI6Ilx4QjIiLHN1cDM6Ilx4QjMiLGFjdXRlOiJceEI0IixtaWNybzoiXHhCNSIscGFyYToiXHhCNiIsbWlkZG90OiJceEI3IixjZWRpbDoiXHhCOCIsc3VwMToiXHhCOSIsb3JkbToiXHhCQSIscmFxdW86Ilx4QkIiLGZyYWMxNDoiXHhCQyIsZnJhYzEyOiJceEJEIixmcmFjMzQ6Ilx4QkUiLGlxdWVzdDoiXHhCRiIsQWdyYXZlOiJceEMwIixBYWN1dGU6Ilx4QzEiLEFjaXJjOiJceEMyIixBdGlsZGU6Ilx4QzMiLEF1bWw6Ilx4QzQiLEFyaW5nOiJceEM1IixBRWxpZzoiXHhDNiIsQ2NlZGlsOiJceEM3IixFZ3JhdmU6Ilx4QzgiLEVhY3V0ZToiXHhDOSIsRWNpcmM6Ilx4Q0EiLEV1bWw6Ilx4Q0IiLElncmF2ZToiXHhDQyIsSWFjdXRlOiJceENEIixJY2lyYzoiXHhDRSIsSXVtbDoiXHhDRiIsRVRIOiJceEQwIixOdGlsZGU6Ilx4RDEiLE9ncmF2ZToiXHhEMiIsT2FjdXRlOiJceEQzIixPY2lyYzoiXHhENCIsT3RpbGRlOiJceEQ1IixPdW1sOiJceEQ2Iix0aW1lczoiXHhENyIsT3NsYXNoOiJceEQ4IixVZ3JhdmU6Ilx4RDkiLFVhY3V0ZToiXHhEQSIsVWNpcmM6Ilx4REIiLFV1bWw6Ilx4REMiLFlhY3V0ZToiXHhERCIsVEhPUk46Ilx4REUiLHN6bGlnOiJceERGIixhZ3JhdmU6Ilx4RTAiLGFhY3V0ZToiXHhFMSIsYWNpcmM6Ilx4RTIiLGF0aWxkZToiXHhFMyIsYXVtbDoiXHhFNCIsYXJpbmc6Ilx4RTUiLGFlbGlnOiJceEU2IixjY2VkaWw6Ilx4RTciLGVncmF2ZToiXHhFOCIsZWFjdXRlOiJceEU5IixlY2lyYzoiXHhFQSIsZXVtbDoiXHhFQiIsaWdyYXZlOiJceEVDIixpYWN1dGU6Ilx4RUQiLGljaXJjOiJceEVFIixpdW1sOiJceEVGIixldGg6Ilx4RjAiLG50aWxkZToiXHhGMSIsb2dyYXZlOiJceEYyIixvYWN1dGU6Ilx4RjMiLG9jaXJjOiJceEY0IixvdGlsZGU6Ilx4RjUiLG91bWw6Ilx4RjYiLGRpdmlkZToiXHhGNyIsb3NsYXNoOiJceEY4Iix1Z3JhdmU6Ilx4RjkiLHVhY3V0ZToiXHhGQSIsdWNpcmM6Ilx4RkIiLHV1bWw6Ilx4RkMiLHlhY3V0ZToiXHhGRCIsdGhvcm46Ilx4RkUiLHl1bWw6Ilx4RkYiLGZub2Y6Ilx1MDE5MiIsQWxwaGE6Ilx1MDM5MSIsQmV0YToiXHUwMzkyIixHYW1tYToiXHUwMzkzIixEZWx0YToiXHUwMzk0IixFcHNpbG9uOiJcdTAzOTUiLFpldGE6Ilx1MDM5NiIsRXRhOiJcdTAzOTciLFRoZXRhOiJcdTAzOTgiLElvdGE6Ilx1MDM5OSIsS2FwcGE6Ilx1MDM5QSIsTGFtYmRhOiJcdTAzOUIiLE11OiJcdTAzOUMiLE51OiJcdTAzOUQiLFhpOiJcdTAzOUUiLE9taWNyb246Ilx1MDM5RiIsUGk6Ilx1MDNBMCIsUmhvOiJcdTAzQTEiLFNpZ21hOiJcdTAzQTMiLFRhdToiXHUwM0E0IixVcHNpbG9uOiJcdTAzQTUiLFBoaToiXHUwM0E2IixDaGk6Ilx1MDNBNyIsUHNpOiJcdTAzQTgiLE9tZWdhOiJcdTAzQTkiLGFscGhhOiJcdTAzQjEiLGJldGE6Ilx1MDNCMiIsZ2FtbWE6Ilx1MDNCMyIsZGVsdGE6Ilx1MDNCNCIsZXBzaWxvbjoiXHUwM0I1Iix6ZXRhOiJcdTAzQjYiLGV0YToiXHUwM0I3Iix0aGV0YToiXHUwM0I4Iixpb3RhOiJcdTAzQjkiLGthcHBhOiJcdTAzQkEiLGxhbWJkYToiXHUwM0JCIixtdToiXHUwM0JDIixudToiXHUwM0JEIix4aToiXHUwM0JFIixvbWljcm9uOiJcdTAzQkYiLHBpOiJcdTAzQzAiLHJobzoiXHUwM0MxIixzaWdtYWY6Ilx1MDNDMiIsc2lnbWE6Ilx1MDNDMyIsdGF1OiJcdTAzQzQiLHVwc2lsb246Ilx1MDNDNSIscGhpOiJcdTAzQzYiLGNoaToiXHUwM0M3Iixwc2k6Ilx1MDNDOCIsb21lZ2E6Ilx1MDNDOSIsdGhldGFzeW06Ilx1MDNEMSIsdXBzaWg6Ilx1MDNEMiIscGl2OiJcdTAzRDYiLGJ1bGw6Ilx1MjAyMiIsaGVsbGlwOiJcdTIwMjYiLHByaW1lOiJcdTIwMzIiLFByaW1lOiJcdTIwMzMiLG9saW5lOiJcdTIwM0UiLGZyYXNsOiJcdTIwNDQiLHdlaWVycDoiXHUyMTE4IixpbWFnZToiXHUyMTExIixyZWFsOiJcdTIxMUMiLHRyYWRlOiJcdTIxMjIiLGFsZWZzeW06Ilx1MjEzNSIsbGFycjoiXHUyMTkwIix1YXJyOiJcdTIxOTEiLHJhcnI6Ilx1MjE5MiIsZGFycjoiXHUyMTkzIixoYXJyOiJcdTIxOTQiLGNyYXJyOiJcdTIxQjUiLGxBcnI6Ilx1MjFEMCIsdUFycjoiXHUyMUQxIixyQXJyOiJcdTIxRDIiLGRBcnI6Ilx1MjFEMyIsaEFycjoiXHUyMUQ0Iixmb3JhbGw6Ilx1MjIwMCIscGFydDoiXHUyMjAyIixleGlzdDoiXHUyMjAzIixlbXB0eToiXHUyMjA1IixuYWJsYToiXHUyMjA3Iixpc2luOiJcdTIyMDgiLG5vdGluOiJcdTIyMDkiLG5pOiJcdTIyMEIiLHByb2Q6Ilx1MjIwRiIsc3VtOiJcdTIyMTEiLG1pbnVzOiJcdTIyMTIiLGxvd2FzdDoiXHUyMjE3IixyYWRpYzoiXHUyMjFBIixwcm9wOiJcdTIyMUQiLGluZmluOiJcdTIyMUUiLGFuZzoiXHUyMjIwIixhbmQ6Ilx1MjIyNyIsb3I6Ilx1MjIyOCIsY2FwOiJcdTIyMjkiLGN1cDoiXHUyMjJBIixpbnQ6Ilx1MjIyQiIsdGhlcmU0OiJcdTIyMzQiLHNpbToiXHUyMjNDIixjb25nOiJcdTIyNDUiLGFzeW1wOiJcdTIyNDgiLG5lOiJcdTIyNjAiLGVxdWl2OiJcdTIyNjEiLGxlOiJcdTIyNjQiLGdlOiJcdTIyNjUiLHN1YjoiXHUyMjgyIixzdXA6Ilx1MjI4MyIsbnN1YjoiXHUyMjg0IixzdWJlOiJcdTIyODYiLHN1cGU6Ilx1MjI4NyIsb3BsdXM6Ilx1MjI5NSIsb3RpbWVzOiJcdTIyOTciLHBlcnA6Ilx1MjJBNSIsc2RvdDoiXHUyMkM1IixsY2VpbDoiXHUyMzA4IixyY2VpbDoiXHUyMzA5IixsZmxvb3I6Ilx1MjMwQSIscmZsb29yOiJcdTIzMEIiLGxhbmc6Ilx1MjMyOSIscmFuZzoiXHUyMzJBIixsb3o6Ilx1MjVDQSIsc3BhZGVzOiJcdTI2NjAiLGNsdWJzOiJcdTI2NjMiLGhlYXJ0czoiXHUyNjY1IixkaWFtczoiXHUyNjY2IixxdW90OiciJyxhbXA6IiYiLGx0OiI8IixndDoiPiIsT0VsaWc6Ilx1MDE1MiIsb2VsaWc6Ilx1MDE1MyIsU2Nhcm9uOiJcdTAxNjAiLHNjYXJvbjoiXHUwMTYxIixZdW1sOiJcdTAxNzgiLGNpcmM6Ilx1MDJDNiIsdGlsZGU6Ilx1MDJEQyIsZW5zcDoiXHUyMDAyIixlbXNwOiJcdTIwMDMiLHRoaW5zcDoiXHUyMDA5Iix6d25qOiJcdTIwMEMiLHp3ajoiXHUyMDBEIixscm06Ilx1MjAwRSIscmxtOiJcdTIwMEYiLG5kYXNoOiJcdTIwMTMiLG1kYXNoOiJcdTIwMTQiLGxzcXVvOiJcdTIwMTgiLHJzcXVvOiJcdTIwMTkiLHNicXVvOiJcdTIwMUEiLGxkcXVvOiJcdTIwMUMiLHJkcXVvOiJcdTIwMUQiLGJkcXVvOiJcdTIwMUUiLGRhZ2dlcjoiXHUyMDIwIixEYWdnZXI6Ilx1MjAyMSIscGVybWlsOiJcdTIwMzAiLGxzYXF1bzoiXHUyMDM5Iixyc2FxdW86Ilx1MjAzQSIsZXVybzoiXHUyMEFDIn19KTt2YXIgdG5yLHJucj11KCgpPT57dG5yPVsiY2VudCIsImNvcHkiLCJkaXZpZGUiLCJndCIsImx0Iiwibm90IiwicGFyYSIsInRpbWVzIl19KTtmdW5jdGlvbiBpbnIodCxlLHIsYSl7bGV0IHM9U3RyaW5nLmZyb21DaGFyQ29kZSh0KTtpZihhbnIuY2FsbCh0JGUscykpe2xldCBuPXQkZVtzXSxvPSImIituO3JldHVybiByJiZYc3IuaW5jbHVkZXMobikmJiF0bnIuaW5jbHVkZXMobikmJighYXx8ZSYmZSE9PTYxJiZfX2EudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSk/bzpvKyI7In1yZXR1cm4iIn12YXIgYW5yLHQkZSxxNGUsX19hLHNucj11KCgpPT57SnNyKCk7ZW5yKCk7cm5yKCk7YW5yPXt9Lmhhc093blByb3BlcnR5LHQkZT17fTtmb3IocTRlIGluIEg0ZSlhbnIuY2FsbChINGUscTRlKSYmKHQkZVtINGVbcTRlXV09cTRlKTtfX2E9L1teXGRBLVphLXpdLztpKGluciwidG9OYW1lZCIpfSk7ZnVuY3Rpb24gbm5yKHQsZSxyKXtsZXQgYT1Zc3IodCxlLHIub21pdE9wdGlvbmFsU2VtaWNvbG9ucykscztpZigoci51c2VOYW1lZFJlZmVyZW5jZXN8fHIudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKHM9aW5yKHQsZSxyLm9taXRPcHRpb25hbFNlbWljb2xvbnMsci5hdHRyaWJ1dGUpKSwoci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFzKSYmci51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBuPVpzcih0LGUsci5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtuLmxlbmd0aDxhLmxlbmd0aCYmKGE9bil9cmV0dXJuIHMmJighci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fHMubGVuZ3RoPGEubGVuZ3RoKT9zOmF9dmFyIG9ucj11KCgpPT57S3NyKCk7UXNyKCk7c25yKCk7aShubnIsImZvcm1hdFNtYXJ0Iil9KTtmdW5jdGlvbiBsbnIodCl7cmV0dXJuIiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIGNucj11KCgpPT57aShsbnIsImZvcm1hdEJhc2ljIil9KTtmdW5jdGlvbiBFNCh0LGUpe3JldHVybiBlJGUodCxPYmplY3QuYXNzaWduKHtmb3JtYXQ6bm5yfSxlKSl9ZnVuY3Rpb24gUjhuKHQsZSl7cmV0dXJuIGUkZSh0LE9iamVjdC5hc3NpZ24oe2Zvcm1hdDpsbnJ9LGUpKX12YXIgZG5yPXUoKCk9PntHc3IoKTtvbnIoKTtjbnIoKTtpKEU0LCJzdHJpbmdpZnlFbnRpdGllcyIpO2koUjhuLCJzdHJpbmdpZnlFbnRpdGllc0xpZ2h0Iil9KTt2YXIgVjRlPXUoKCk9PntkbnIoKX0pO2Z1bmN0aW9uIHVucih0LGUscixhKXtyZXR1cm4gYS5zZXR0aW5ncy5ib2d1c0NvbW1lbnRzPyI8PyIrRTQodC52YWx1ZSxPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OkxfYX0pKSsiPiI6IjwhLS0iK3QudmFsdWUucmVwbGFjZShUX2EscykrIi0tPiI7ZnVuY3Rpb24gcyhuKXtyZXR1cm4gRTQobixPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OkRfYX0pKX19dmFyIFRfYSxMX2EsRF9hLHBucj11KCgpPT57VjRlKCk7VF9hPS9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2csTF9hPVsiPiJdLERfYT1bIjwiLCI+Il07aSh1bnIsImNvbW1lbnQiKX0pO2Z1bmN0aW9uIGZucih0LGUscixhKXtyZXR1cm4iPCEiKyhhLnNldHRpbmdzLnVwcGVyRG9jdHlwZT8iRE9DVFlQRSI6ImRvY3R5cGUiKSsoYS5zZXR0aW5ncy50aWdodERvY3R5cGU/IiI6IiAiKSsiaHRtbD4ifXZhciBobnI9dSgoKT0+e2koZm5yLCJkb2N0eXBlIil9KTtmdW5jdGlvbiBZOG4odCl7bGV0IGU9W10scj1TdHJpbmcodHx8IiIpLGE9ci5pbmRleE9mKCIsIikscz0wLG49ITE7Zm9yKDshbjspe2E9PT0tMSYmKGE9ci5sZW5ndGgsbj0hMCk7bGV0IG89ci5zbGljZShzLGEpLnRyaW0oKTsob3x8IW4pJiZlLnB1c2gobykscz1hKzEsYT1yLmluZGV4T2YoIiwiLHMpfXJldHVybiBlfWZ1bmN0aW9uIG1ucih0LGUpe2xldCByPWV8fHt9O3JldHVybih0W3QubGVuZ3RoLTFdPT09IiI/Wy4uLnQsIiJdOnQpLmpvaW4oKHIucGFkUmlnaHQ/IiAiOiIiKSsiLCIrKHIucGFkTGVmdD09PSExPyIiOiIgIikpLnRyaW0oKX12YXIgZ25yPXUoKCk9PntpKFk4biwicGFyc2UiKTtpKG1uciwic3RyaW5naWZ5Iil9KTtmdW5jdGlvbiBROG4odCl7bGV0IGU9U3RyaW5nKHR8fCIiKS50cmltKCk7cmV0dXJuIGU/ZS5zcGxpdCgvWyBcdFxuXHJcZl0rL2cpOltdfWZ1bmN0aW9uIGJucih0KXtyZXR1cm4gdC5qb2luKCIgIikudHJpbSgpfXZhciB4bnI9dSgoKT0+e2koUThuLCJwYXJzZSIpO2koYm5yLCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIFc2KHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCI/dC50eXBlPT09InRleHQiP3Zucih0LnZhbHVlKTohMTp2bnIodCl9ZnVuY3Rpb24gdm5yKHQpe3JldHVybiB0LnJlcGxhY2UoJF9hLCIiKT09PSIifXZhciAkX2EseW5yPXUoKCk9PnskX2E9L1sgXHRcblxmXHJdL2c7aShXNiwid2hpdGVzcGFjZSIpO2kodm5yLCJlbXB0eSIpfSk7dmFyIGo0ZT11KCgpPT57eW5yKCl9KTtmdW5jdGlvbiB3bnIodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyLGEscyl7bGV0IG49cj9yLmNoaWxkcmVuOkFfYSxvPShhfHwwKSt0LGw9bltvXTtpZighcylmb3IoO2wmJlc2KGwpOylvKz10LGw9bltvXTtyZXR1cm4gbH19dmFyIGlzLHIkZSxBX2EsYSRlPXUoKCk9PntqNGUoKTtpcz13bnIoMSksciRlPXducigtMSksQV9hPVtdO2kod25yLCJzaWJsaW5ncyIpfSk7ZnVuY3Rpb24gVTRlKHQpe3JldHVybiBlO2Z1bmN0aW9uIGUocixhLHMpe3JldHVybiBFX2EuY2FsbCh0LHIudGFnTmFtZSkmJnRbci50YWdOYW1lXShyLGEscyl9fXZhciBFX2EsaSRlPXUoKCk9PntFX2E9e30uaGFzT3duUHJvcGVydHk7aShVNGUsIm9taXNzaW9uIil9KTtmdW5jdGlvbiBzJGUodCxlLHIpe2xldCBhPWlzKHIsZSwhMCk7cmV0dXJuIWF8fGEudHlwZSE9PSJjb21tZW50IiYmIShhLnR5cGU9PT0idGV4dCImJlc2KGEudmFsdWUuY2hhckF0KDApKSl9ZnVuY3Rpb24gSV9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiFhfHxhLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gUF9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiFhfHxhLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gTl9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiBhP2EudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJhZGRyZXNzInx8YS50YWdOYW1lPT09ImFydGljbGUifHxhLnRhZ05hbWU9PT0iYXNpZGUifHxhLnRhZ05hbWU9PT0iYmxvY2txdW90ZSJ8fGEudGFnTmFtZT09PSJkZXRhaWxzInx8YS50YWdOYW1lPT09ImRpdiJ8fGEudGFnTmFtZT09PSJkbCJ8fGEudGFnTmFtZT09PSJmaWVsZHNldCJ8fGEudGFnTmFtZT09PSJmaWdjYXB0aW9uInx8YS50YWdOYW1lPT09ImZpZ3VyZSJ8fGEudGFnTmFtZT09PSJmb290ZXIifHxhLnRhZ05hbWU9PT0iZm9ybSJ8fGEudGFnTmFtZT09PSJoMSJ8fGEudGFnTmFtZT09PSJoMiJ8fGEudGFnTmFtZT09PSJoMyJ8fGEudGFnTmFtZT09PSJoNCJ8fGEudGFnTmFtZT09PSJoNSJ8fGEudGFnTmFtZT09PSJoNiJ8fGEudGFnTmFtZT09PSJoZWFkZXIifHxhLnRhZ05hbWU9PT0iaGdyb3VwInx8YS50YWdOYW1lPT09ImhyInx8YS50YWdOYW1lPT09Im1haW4ifHxhLnRhZ05hbWU9PT0ibWVudSJ8fGEudGFnTmFtZT09PSJuYXYifHxhLnRhZ05hbWU9PT0ib2wifHxhLnRhZ05hbWU9PT0icCJ8fGEudGFnTmFtZT09PSJwcmUifHxhLnRhZ05hbWU9PT0ic2VjdGlvbiJ8fGEudGFnTmFtZT09PSJ0YWJsZSJ8fGEudGFnTmFtZT09PSJ1bCIpOiFyfHwhKHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJhInx8ci50YWdOYW1lPT09ImF1ZGlvInx8ci50YWdOYW1lPT09ImRlbCJ8fHIudGFnTmFtZT09PSJpbnMifHxyLnRhZ05hbWU9PT0ibWFwInx8ci50YWdOYW1lPT09Im5vc2NyaXB0Inx8ci50YWdOYW1lPT09InZpZGVvIikpfWZ1bmN0aW9uIE9fYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0ibGkifWZ1bmN0aW9uIFJfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iZHQifHxhLnRhZ05hbWU9PT0iZGQiKSl9ZnVuY3Rpb24gRl9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iZHQifHxhLnRhZ05hbWU9PT0iZGQiKX1mdW5jdGlvbiBrbnIodCxlLHIpe2xldCBhPWlzKHIsZSk7cmV0dXJuIWF8fGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJycCJ8fGEudGFnTmFtZT09PSJydCIpfWZ1bmN0aW9uIEJfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0ib3B0Z3JvdXAifWZ1bmN0aW9uIEhfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09Im9wdGlvbiJ8fGEudGFnTmFtZT09PSJvcHRncm91cCIpfWZ1bmN0aW9uIHFfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGJvZHkifHxhLnRhZ05hbWU9PT0idGZvb3QiKSl9ZnVuY3Rpb24gVl9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGJvZHkifHxhLnRhZ05hbWU9PT0idGZvb3QiKX1mdW5jdGlvbiBqX2EodCxlLHIpe3JldHVybiFpcyhyLGUpfWZ1bmN0aW9uIFVfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0idHIifWZ1bmN0aW9uIFNucih0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09InRkInx8YS50YWdOYW1lPT09InRoIil9dmFyIHRfLG4kZT11KCgpPT57ajRlKCk7YSRlKCk7aSRlKCk7dF89VTRlKHtib2R5OlBfYSxjYXB0aW9uOnMkZSxjb2xncm91cDpzJGUsZGQ6Rl9hLGR0OlJfYSxoZWFkOnMkZSxodG1sOklfYSxsaTpPX2Esb3B0Z3JvdXA6Ql9hLG9wdGlvbjpIX2EscDpOX2EscnA6a25yLHJ0Omtucix0Ym9keTpWX2EsdGQ6U25yLHRmb290OmpfYSx0aDpTbnIsdGhlYWQ6cV9hLHRyOlVfYX0pO2kocyRlLCJoZWFkT3JDb2xncm91cE9yQ2FwdGlvbiIpO2koSV9hLCJodG1sIik7aShQX2EsImJvZHkiKTtpKE5fYSwicCIpO2koT19hLCJsaSIpO2koUl9hLCJkdCIpO2koRl9hLCJkZCIpO2koa25yLCJydWJ5RWxlbWVudCIpO2koQl9hLCJvcHRncm91cCIpO2koSF9hLCJvcHRpb24iKTtpKHFfYSwidGhlYWQiKTtpKFZfYSwidGJvZHkiKTtpKGpfYSwidGZvb3QiKTtpKFVfYSwidHIiKTtpKFNuciwiY2VsbHMiKX0pO2Z1bmN0aW9uIFdfYSh0KXtsZXQgZT1pcyh0LC0xKTtyZXR1cm4hZXx8ZS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIEdfYSh0KXtsZXQgZT1uZXcgU2V0O2ZvcihsZXQgYSBvZiB0LmNoaWxkcmVuKWlmKGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJiYXNlInx8YS50YWdOYW1lPT09InRpdGxlIikpe2lmKGUuaGFzKGEudGFnTmFtZSkpcmV0dXJuITE7ZS5hZGQoYS50YWdOYW1lKX1sZXQgcj10LmNoaWxkcmVuWzBdO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCJ9ZnVuY3Rpb24gWV9hKHQpe2xldCBlPWlzKHQsLTEsITApO3JldHVybiFlfHxlLnR5cGUhPT0iY29tbWVudCImJiEoZS50eXBlPT09InRleHQiJiZXNihlLnZhbHVlLmNoYXJBdCgwKSkpJiYhKGUudHlwZT09PSJlbGVtZW50IiYmKGUudGFnTmFtZT09PSJtZXRhInx8ZS50YWdOYW1lPT09ImxpbmsifHxlLnRhZ05hbWU9PT0ic2NyaXB0Inx8ZS50YWdOYW1lPT09InN0eWxlInx8ZS50YWdOYW1lPT09InRlbXBsYXRlIikpfWZ1bmN0aW9uIEtfYSh0LGUscil7bGV0IGE9ciRlKHIsZSkscz1pcyh0LC0xLCEwKTtyZXR1cm4gciYmYSYmYS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZ0XyhhLHIuY2hpbGRyZW4uaW5kZXhPZihhKSxyKT8hMTohIShzJiZzLnR5cGU9PT0iZWxlbWVudCImJnMudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiBaX2EodCxlLHIpe2xldCBhPXIkZShyLGUpLHM9aXModCwtMSk7cmV0dXJuIHImJmEmJmEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJ0aGVhZCJ8fGEudGFnTmFtZT09PSJ0Ym9keSIpJiZ0XyhhLHIuY2hpbGRyZW4uaW5kZXhPZihhKSxyKT8hMTohIShzJiZzLnR5cGU9PT0iZWxlbWVudCImJnMudGFnTmFtZT09PSJ0ciIpfXZhciBNbnIsQ25yPXUoKCk9PntqNGUoKTthJGUoKTtuJGUoKTtpJGUoKTtNbnI9VTRlKHtib2R5OllfYSxjb2xncm91cDpLX2EsaGVhZDpHX2EsaHRtbDpXX2EsdGJvZHk6Wl9hfSk7aShXX2EsImh0bWwiKTtpKEdfYSwiaGVhZCIpO2koWV9hLCJib2R5Iik7aShLX2EsImNvbGdyb3VwIik7aShaX2EsInRib2R5Iil9KTtmdW5jdGlvbiB6bnIodCxlLHIsYSl7bGV0IHM9YS5zY2hlbWEsbj1zLnNwYWNlPT09InN2ZyI/ITE6YS5zZXR0aW5ncy5vbWl0T3B0aW9uYWxUYWdzLG89cy5zcGFjZT09PSJzdmciP2Euc2V0dGluZ3MuY2xvc2VFbXB0eUVsZW1lbnRzOmEuc2V0dGluZ3Mudm9pZHMuaW5jbHVkZXModC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpLGw9W10sYztzLnNwYWNlPT09Imh0bWwiJiZ0LnRhZ05hbWU9PT0ic3ZnIiYmKGEuc2NoZW1hPUI0ZSk7bGV0IGQ9UV9hKGEsdC5wcm9wZXJ0aWVzKSxmPWEuYWxsKHMuc3BhY2U9PT0iaHRtbCImJnQudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/dC5jb250ZW50OnQpO3JldHVybiBhLnNjaGVtYT1zLGYmJihvPSExKSwoZHx8IW58fCFNbnIodCxlLHIpKSYmKGwucHVzaCgiPCIsdC50YWdOYW1lLGQ/IiAiK2Q6IiIpLG8mJihzLnNwYWNlPT09InN2ZyJ8fGEuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihjPWQuY2hhckF0KGQubGVuZ3RoLTEpLCghYS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxjPT09Ii8ifHxjJiZjIT09JyInJiZjIT09IiciKSYmbC5wdXNoKCIgIiksbC5wdXNoKCIvIikpLGwucHVzaCgiPiIpKSxsLnB1c2goZiksIW8mJighbnx8IXRfKHQsZSxyKSkmJmwucHVzaCgiPC8iK3QudGFnTmFtZSsiPiIpLGwuam9pbigiIil9ZnVuY3Rpb24gUV9hKHQsZSl7bGV0IHI9W10sYT0tMSxzO2lmKGUpe2ZvcihzIGluIGUpaWYoZVtzXSE9PW51bGwmJmVbc10hPT12b2lkIDApe2xldCBuPVhfYSh0LHMsZVtzXSk7biYmci5wdXNoKG4pfX1mb3IoOysrYTxyLmxlbmd0aDspe2xldCBuPXQuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP3JbYV0uY2hhckF0KHJbYV0ubGVuZ3RoLTEpOnZvaWQgMDthIT09ci5sZW5ndGgtMSYmbiE9PSciJyYmbiE9PSInIiYmKHJbYV0rPSIgIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gWF9hKHQsZSxyKXtsZXQgYT1YRGUodC5zY2hlbWEsZSkscz10LnNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnMmJnQuc2NoZW1hLnNwYWNlPT09Imh0bWwiPzA6MSxuPXQuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPzA6MSxvPXQucXVvdGUsbDtpZihhLm92ZXJsb2FkZWRCb29sZWFuJiYocj09PWEuYXR0cmlidXRlfHxyPT09IiIpP3I9ITA6KGEuYm9vbGVhbnx8YS5vdmVybG9hZGVkQm9vbGVhbikmJih0eXBlb2YgciE9InN0cmluZyJ8fHI9PT1hLmF0dHJpYnV0ZXx8cj09PSIiKSYmKHI9ISFyKSxyPT1udWxsfHxyPT09ITF8fHR5cGVvZiByPT0ibnVtYmVyIiYmTnVtYmVyLmlzTmFOKHIpKXJldHVybiIiO2xldCBjPUU0KGEuYXR0cmlidXRlLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6VzRlLm5hbWVbc11bbl19KSk7cmV0dXJuIHI9PT0hMHx8KHI9QXJyYXkuaXNBcnJheShyKT8oYS5jb21tYVNlcGFyYXRlZD9tbnI6Ym5yKShyLHtwYWRMZWZ0OiF0LnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c30pOlN0cmluZyhyKSx0LnNldHRpbmdzLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzJiYhcik/YzoodC5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCYmKGw9RTQocixPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7YXR0cmlidXRlOiEwLHN1YnNldDpXNGUudW5xdW90ZWRbc11bbl19KSkpLGwhPT1yJiYodC5zZXR0aW5ncy5xdW90ZVNtYXJ0JiZadihyLG8pPlp2KHIsdC5hbHRlcm5hdGl2ZSkmJihvPXQuYWx0ZXJuYXRpdmUpLGw9bytFNChyLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6KG89PT0iJyI/VzRlLnNpbmdsZTpXNGUuZG91YmxlKVtzXVtuXSxhdHRyaWJ1dGU6ITB9KSkrbyksYysobCYmIj0iK2wpKX12YXIgVzRlLF9ucj11KCgpPT57V1RlKCk7Z25yKCk7SkRlKCk7eG5yKCk7VjRlKCk7biRlKCk7Q25yKCk7VzRlPXtuYW1lOltbYAkKXGZcciAmLz0+YC5zcGxpdCgiIiksYAkKXGZcciAiJicvPT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJy88PT5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnLzw9PlxgYC5zcGxpdCgiIildXSx1bnF1b3RlZDpbW2AJClxmXHIgJj5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXV0sc2luZ2xlOltbIiYnIi5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsiXDAmJyIuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXSxkb3VibGU6W1snIiYnLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWydcMCImJy5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dfTtpKHpuciwiZWxlbWVudCIpO2koUV9hLCJzZXJpYWxpemVBdHRyaWJ1dGVzIik7aShYX2EsInNlcmlhbGl6ZUF0dHJpYnV0ZSIpfSk7ZnVuY3Rpb24gRzRlKHQsZSxyLGEpe3JldHVybiByJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0ic2NyaXB0Inx8ci50YWdOYW1lPT09InN0eWxlIik/dC52YWx1ZTpFNCh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30sYS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6Sl9hfSkpfXZhciBKX2EsbyRlPXUoKCk9PntWNGUoKTtKX2E9WyI8IiwiJiJdO2koRzRlLCJ0ZXh0Iil9KTtmdW5jdGlvbiBUbnIodCxlLHIsYSl7cmV0dXJuIGEuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sP3QudmFsdWU6RzRlKHQsZSxyLGEpfXZhciBMbnI9dSgoKT0+e28kZSgpO2koVG5yLCJyYXciKX0pO2Z1bmN0aW9uIERucih0LGUscixhKXtyZXR1cm4gYS5hbGwodCl9dmFyICRucj11KCgpPT57aShEbnIsInJvb3QiKX0pO2Z1bmN0aW9uIGVUYSh0KXt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIG5vZGUsIG5vdCBgIit0KyJgIil9ZnVuY3Rpb24gdFRhKHQpe2xldCBlPXQ7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCIrZS50eXBlKyJgIil9dmFyIEFucixFbnI9dSgoKT0+e2FMZSgpO3BucigpO2hucigpO19ucigpO0xucigpOyRucigpO28kZSgpO0Fucj1XZGUoInR5cGUiLHtpbnZhbGlkOmVUYSx1bmtub3duOnRUYSxoYW5kbGVyczp7Y29tbWVudDp1bnIsZG9jdHlwZTpmbnIsZWxlbWVudDp6bnIscmF3OlRucixyb290OkRucix0ZXh0Okc0ZX19KTtpKGVUYSwiaW52YWxpZCIpO2kodFRhLCJ1bmtub3duIil9KTtmdW5jdGlvbiBsJGUodCxlKXtsZXQgcj1lfHxyVGEsYT1yLnF1b3RlfHwnIicscz1hPT09JyInPyInIjonIic7aWYoYSE9PSciJyYmYSE9PSInIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcXVvdGUgYCIrYSsiYCwgZXhwZWN0ZWQgYCdgIG9yIGBcImAiKTtyZXR1cm57b25lOnNUYSxhbGw6blRhLHNldHRpbmdzOntvbWl0T3B0aW9uYWxUYWdzOnIub21pdE9wdGlvbmFsVGFnc3x8ITEsYWxsb3dQYXJzZUVycm9yczpyLmFsbG93UGFyc2VFcnJvcnN8fCExLGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczpyLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyc3x8ITEscXVvdGVTbWFydDpyLnF1b3RlU21hcnR8fCExLHByZWZlclVucXVvdGVkOnIucHJlZmVyVW5xdW90ZWR8fCExLHRpZ2h0QXR0cmlidXRlczpyLnRpZ2h0QXR0cmlidXRlc3x8ITEsdXBwZXJEb2N0eXBlOnIudXBwZXJEb2N0eXBlfHwhMSx0aWdodERvY3R5cGU6ci50aWdodERvY3R5cGV8fCExLGJvZ3VzQ29tbWVudHM6ci5ib2d1c0NvbW1lbnRzfHwhMSx0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6ci50aWdodENvbW1hU2VwYXJhdGVkTGlzdHN8fCExLHRpZ2h0U2VsZkNsb3Npbmc6ci50aWdodFNlbGZDbG9zaW5nfHwhMSxjb2xsYXBzZUVtcHR5QXR0cmlidXRlczpyLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzfHwhMSxhbGxvd0Rhbmdlcm91c0h0bWw6ci5hbGxvd0Rhbmdlcm91c0h0bWx8fCExLHZvaWRzOnIudm9pZHN8fERzcixjaGFyYWN0ZXJSZWZlcmVuY2VzOnIuY2hhcmFjdGVyUmVmZXJlbmNlc3x8YVRhLGNsb3NlU2VsZkNsb3Npbmc6ci5jbG9zZVNlbGZDbG9zaW5nfHwhMSxjbG9zZUVtcHR5RWxlbWVudHM6ci5jbG9zZUVtcHR5RWxlbWVudHN8fCExfSxzY2hlbWE6ci5zcGFjZT09PSJzdmciP0I0ZTpVc3IscXVvdGU6YSxhbHRlcm5hdGl2ZTpzfS5vbmUoQXJyYXkuaXNBcnJheSh0KT97dHlwZToicm9vdCIsY2hpbGRyZW46dH06dCx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBzVGEodCxlLHIpe3JldHVybiBBbnIodCxlLHIsdGhpcyl9ZnVuY3Rpb24gblRhKHQpe2xldCBlPVtdLHI9dCYmdC5jaGlsZHJlbnx8aVRhLGE9LTE7Zm9yKDsrK2E8ci5sZW5ndGg7KWVbYV09dGhpcy5vbmUoclthXSxhLHQpO3JldHVybiBlLmpvaW4oIiIpfXZhciByVGEsYVRhLGlUYSxJbnI9dSgoKT0+eyRzcigpO0pEZSgpO0VucigpO3JUYT17fSxhVGE9e30saVRhPVtdO2kobCRlLCJ0b0h0bWwiKTtpKHNUYSwib25lIik7aShuVGEsImFsbCIpfSk7dmFyIFBucj11KCgpPT57SW5yKCl9KTtmdW5jdGlvbiBkeSh0KXtsZXQgZT10aGlzLHtoYW5kbGVyczpyLHNhbml0aXplOmEsLi4uc309dHx8b1RhLG49ITEsbzt0eXBlb2YgYT09ImJvb2xlYW4iP249IWE6YSYmKG89YSksZS5jb21waWxlcj1sO2Z1bmN0aW9uIGwoYyxkKXtsZXQgZj1CRGUoYyx7aGFuZGxlcnM6cixhbGxvd0Rhbmdlcm91c0h0bWw6bn0pLHA9bj9mOklEZShmLG8pLGg9bCRlKHAsey4uLnMsYWxsb3dEYW5nZXJvdXNIdG1sOm59KTtyZXR1cm4gZC5leHRuYW1lJiYoZC5leHRuYW1lPSIuaHRtbCIpLGMmJmMudHlwZT09PSJyb290IiYmaCYmL1teXHJcbl0vLnRlc3QoaC5jaGFyQXQoaC5sZW5ndGgtMSkpP2grYApgOmh9aShsLCJjb21waWxlciIpfXZhciBvVGEsTm5yPXUoKCk9PntDaXIoKTtMc3IoKTtQbnIoKTtvVGE9e307aShkeSwicmVtYXJrSHRtbCIpfSk7dmFyIE9ucj11KCgpPT57Tm5yKCl9KTtmdW5jdGlvbiB1eSh0KXtsZXQgZT10aGlzO2UuY29tcGlsZXI9cjtmdW5jdGlvbiByKGEpe3JldHVybiBNTGUoYSx7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9aShyLCJjb21waWxlciIpfXZhciBSbnI9dSgoKT0+e3I0ZSgpO2kodXksInJlbWFya1N0cmluZ2lmeSIpfSk7dmFyIEZucj11KCgpPT57Um5yKCl9KTtmdW5jdGlvbiBsVGEodCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHI9YXJndW1lbnRzW2VdO2Zvcih2YXIgYSBpbiByKXIuaGFzT3duUHJvcGVydHkoYSkmJih0W2FdPXJbYV0pfXJldHVybiB0fWZ1bmN0aW9uIGMkZSh0LGUpe3JldHVybiBBcnJheShlKzEpLmpvaW4odCl9ZnVuY3Rpb24gQm5yKHQpe3JldHVybiB0LnJlcGxhY2UoL15cbiovLCIiKX1mdW5jdGlvbiBIbnIodCl7Zm9yKHZhciBlPXQubGVuZ3RoO2U+MCYmdFtlLTFdPT09YApgOyllLS07cmV0dXJuIHQuc3Vic3RyaW5nKDAsZSl9ZnVuY3Rpb24gcW5yKHQpe3JldHVybiBIbnIoQm5yKHQpKX1mdW5jdGlvbiBkJGUodCl7cmV0dXJuIHUkZSh0LGNUYSl9ZnVuY3Rpb24gam5yKHQpe3JldHVybiB1JGUodCxWbnIpfWZ1bmN0aW9uIGRUYSh0KXtyZXR1cm4gV25yKHQsVm5yKX1mdW5jdGlvbiB1VGEodCl7cmV0dXJuIHUkZSh0LFVucil9ZnVuY3Rpb24gcFRhKHQpe3JldHVybiBXbnIodCxVbnIpfWZ1bmN0aW9uIHUkZSh0LGUpe3JldHVybiBlLmluZGV4T2YodC5ub2RlTmFtZSk+PTB9ZnVuY3Rpb24gV25yKHQsZSl7cmV0dXJuIHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmUuc29tZShmdW5jdGlvbihyKXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5VGFnTmFtZShyKS5sZW5ndGh9KX1mdW5jdGlvbiBZNGUodCl7cmV0dXJuIHQ/dC5yZXBsYWNlKC8oXG4rXHMqKSsvZyxgCmApOiIifWZ1bmN0aW9uIEducih0KXt0aGlzLm9wdGlvbnM9dCx0aGlzLl9rZWVwPVtdLHRoaXMuX3JlbW92ZT1bXSx0aGlzLmJsYW5rUnVsZT17cmVwbGFjZW1lbnQ6dC5ibGFua1JlcGxhY2VtZW50fSx0aGlzLmtlZXBSZXBsYWNlbWVudD10LmtlZXBSZXBsYWNlbWVudCx0aGlzLmRlZmF1bHRSdWxlPXtyZXBsYWNlbWVudDp0LmRlZmF1bHRSZXBsYWNlbWVudH0sdGhpcy5hcnJheT1bXTtmb3IodmFyIGUgaW4gdC5ydWxlcyl0aGlzLmFycmF5LnB1c2godC5ydWxlc1tlXSl9ZnVuY3Rpb24gcCRlKHQsZSxyKXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIHM9dFthXTtpZihmVGEocyxlLHIpKXJldHVybiBzfX1mdW5jdGlvbiBmVGEodCxlLHIpe3ZhciBhPXQuZmlsdGVyO2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7aWYoYT09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4hMH1lbHNlIGlmKEFycmF5LmlzQXJyYXkoYSkpe2lmKGEuaW5kZXhPZihlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpPi0xKXJldHVybiEwfWVsc2UgaWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpe2lmKGEuY2FsbCh0LGUscikpcmV0dXJuITB9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJgZmlsdGVyYCBuZWVkcyB0byBiZSBhIHN0cmluZywgYXJyYXksIG9yIGZ1bmN0aW9uIil9ZnVuY3Rpb24gaFRhKHQpe3ZhciBlPXQuZWxlbWVudCxyPXQuaXNCbG9jayxhPXQuaXNWb2lkLHM9dC5pc1ByZXx8ZnVuY3Rpb24ocCl7cmV0dXJuIHAubm9kZU5hbWU9PT0iUFJFIn07aWYoISghZS5maXJzdENoaWxkfHxzKGUpKSl7Zm9yKHZhciBuPW51bGwsbz0hMSxsPW51bGwsYz1ZbnIobCxlLHMpO2MhPT1lOyl7aWYoYy5ub2RlVHlwZT09PTN8fGMubm9kZVR5cGU9PT00KXt2YXIgZD1jLmRhdGEucmVwbGFjZSgvWyBcclxuXHRdKy9nLCIgIik7aWYoKCFufHwvICQvLnRlc3Qobi5kYXRhKSkmJiFvJiZkWzBdPT09IiAiJiYoZD1kLnN1YnN0cigxKSksIWQpe2M9ZiRlKGMpO2NvbnRpbnVlfWMuZGF0YT1kLG49Y31lbHNlIGlmKGMubm9kZVR5cGU9PT0xKXIoYyl8fGMubm9kZU5hbWU9PT0iQlIiPyhuJiYobi5kYXRhPW4uZGF0YS5yZXBsYWNlKC8gJC8sIiIpKSxuPW51bGwsbz0hMSk6YShjKXx8cyhjKT8obj1udWxsLG89ITApOm4mJihvPSExKTtlbHNle2M9ZiRlKGMpO2NvbnRpbnVlfXZhciBmPVlucihsLGMscyk7bD1jLGM9Zn1uJiYobi5kYXRhPW4uZGF0YS5yZXBsYWNlKC8gJC8sIiIpLG4uZGF0YXx8ZiRlKG4pKX19ZnVuY3Rpb24gZiRlKHQpe3ZhciBlPXQubmV4dFNpYmxpbmd8fHQucGFyZW50Tm9kZTtyZXR1cm4gdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLGV9ZnVuY3Rpb24gWW5yKHQsZSxyKXtyZXR1cm4gdCYmdC5wYXJlbnROb2RlPT09ZXx8cihlKT9lLm5leHRTaWJsaW5nfHxlLnBhcmVudE5vZGU6ZS5maXJzdENoaWxkfHxlLm5leHRTaWJsaW5nfHxlLnBhcmVudE5vZGV9ZnVuY3Rpb24gbVRhKCl7dmFyIHQ9aCRlLkRPTVBhcnNlcixlPSExO3RyeXtuZXcgdCgpLnBhcnNlRnJvbVN0cmluZygiIiwidGV4dC9odG1sIikmJihlPSEwKX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gZ1RhKCl7dmFyIHQ9aShmdW5jdGlvbigpe30sIlBhcnNlciIpO3JldHVybiBiVGEoKT90LnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHI9bmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpO3JldHVybiByLmRlc2lnbk1vZGU9Im9uIixyLm9wZW4oKSxyLndyaXRlKGUpLHIuY2xvc2UoKSxyfTp0LnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHI9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTtyZXR1cm4gci5vcGVuKCksci53cml0ZShlKSxyLmNsb3NlKCkscn0sdH1mdW5jdGlvbiBiVGEoKXt2YXIgdD0hMTt0cnl7ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKS5vcGVuKCl9Y2F0Y2h7aCRlLkFjdGl2ZVhPYmplY3QmJih0PSEwKX1yZXR1cm4gdH1mdW5jdGlvbiB2VGEodCxlKXt2YXIgcjtpZih0eXBlb2YgdD09InN0cmluZyIpe3ZhciBhPXlUYSgpLnBhcnNlRnJvbVN0cmluZygnPHgtdHVybmRvd24gaWQ9InR1cm5kb3duLXJvb3QiPicrdCsiPC94LXR1cm5kb3duPiIsInRleHQvaHRtbCIpO3I9YS5nZXRFbGVtZW50QnlJZCgidHVybmRvd24tcm9vdCIpfWVsc2Ugcj10LmNsb25lTm9kZSghMCk7cmV0dXJuIGhUYSh7ZWxlbWVudDpyLGlzQmxvY2s6ZCRlLGlzVm9pZDpqbnIsaXNQcmU6ZS5wcmVmb3JtYXR0ZWRDb2RlP3dUYTpudWxsfSkscn1mdW5jdGlvbiB5VGEoKXtyZXR1cm4gbSRlPW0kZXx8bmV3IHhUYSxtJGV9ZnVuY3Rpb24gd1RhKHQpe3JldHVybiB0Lm5vZGVOYW1lPT09IlBSRSJ8fHQubm9kZU5hbWU9PT0iQ09ERSJ9ZnVuY3Rpb24ga1RhKHQsZSl7cmV0dXJuIHQuaXNCbG9jaz1kJGUodCksdC5pc0NvZGU9dC5ub2RlTmFtZT09PSJDT0RFInx8dC5wYXJlbnROb2RlLmlzQ29kZSx0LmlzQmxhbms9U1RhKHQpLHQuZmxhbmtpbmdXaGl0ZXNwYWNlPU1UYSh0LGUpLHR9ZnVuY3Rpb24gU1RhKHQpe3JldHVybiFqbnIodCkmJiF1VGEodCkmJi9eXHMqJC9pLnRlc3QodC50ZXh0Q29udGVudCkmJiFkVGEodCkmJiFwVGEodCl9ZnVuY3Rpb24gTVRhKHQsZSl7aWYodC5pc0Jsb2NrfHxlLnByZWZvcm1hdHRlZENvZGUmJnQuaXNDb2RlKXJldHVybntsZWFkaW5nOiIiLHRyYWlsaW5nOiIifTt2YXIgcj1DVGEodC50ZXh0Q29udGVudCk7cmV0dXJuIHIubGVhZGluZ0FzY2lpJiZLbnIoImxlZnQiLHQsZSkmJihyLmxlYWRpbmc9ci5sZWFkaW5nTm9uQXNjaWkpLHIudHJhaWxpbmdBc2NpaSYmS25yKCJyaWdodCIsdCxlKSYmKHIudHJhaWxpbmc9ci50cmFpbGluZ05vbkFzY2lpKSx7bGVhZGluZzpyLmxlYWRpbmcsdHJhaWxpbmc6ci50cmFpbGluZ319ZnVuY3Rpb24gQ1RhKHQpe3ZhciBlPXQubWF0Y2goL14oKFsgXHRcclxuXSopKFxzKikpKD86KD89XFMpW1xzXFNdKlxTKT8oKFxzKj8pKFsgXHRcclxuXSopKSQvKTtyZXR1cm57bGVhZGluZzplWzFdLGxlYWRpbmdBc2NpaTplWzJdLGxlYWRpbmdOb25Bc2NpaTplWzNdLHRyYWlsaW5nOmVbNF0sdHJhaWxpbmdOb25Bc2NpaTplWzVdLHRyYWlsaW5nQXNjaWk6ZVs2XX19ZnVuY3Rpb24gS25yKHQsZSxyKXt2YXIgYSxzLG47cmV0dXJuIHQ9PT0ibGVmdCI/KGE9ZS5wcmV2aW91c1NpYmxpbmcscz0vICQvKTooYT1lLm5leHRTaWJsaW5nLHM9L14gLyksYSYmKGEubm9kZVR5cGU9PT0zP249cy50ZXN0KGEubm9kZVZhbHVlKTpyLnByZWZvcm1hdHRlZENvZGUmJmEubm9kZU5hbWU9PT0iQ09ERSI/bj0hMTphLm5vZGVUeXBlPT09MSYmIWQkZShhKSYmKG49cy50ZXN0KGEudGV4dENvbnRlbnQpKSksbn1mdW5jdGlvbiBLNGUodCl7aWYoISh0aGlzIGluc3RhbmNlb2YgSzRlKSlyZXR1cm4gbmV3IEs0ZSh0KTt2YXIgZT17cnVsZXM6eG8saGVhZGluZ1N0eWxlOiJzZXRleHQiLGhyOiIqICogKiIsYnVsbGV0TGlzdE1hcmtlcjoiKiIsY29kZUJsb2NrU3R5bGU6ImluZGVudGVkIixmZW5jZToiYGBgIixlbURlbGltaXRlcjoiXyIsc3Ryb25nRGVsaW1pdGVyOiIqKiIsbGlua1N0eWxlOiJpbmxpbmVkIixsaW5rUmVmZXJlbmNlU3R5bGU6ImZ1bGwiLGJyOiIgICIscHJlZm9ybWF0dGVkQ29kZTohMSxibGFua1JlcGxhY2VtZW50OmkoZnVuY3Rpb24ocixhKXtyZXR1cm4gYS5pc0Jsb2NrP2AKCmA6IiJ9LCJibGFua1JlcGxhY2VtZW50Iiksa2VlcFJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocixhKXtyZXR1cm4gYS5pc0Jsb2NrP2AKCmArYS5vdXRlckhUTUwrYAoKYDphLm91dGVySFRNTH0sImtlZXBSZXBsYWNlbWVudCIpLGRlZmF1bHRSZXBsYWNlbWVudDppKGZ1bmN0aW9uKHIsYSl7cmV0dXJuIGEuaXNCbG9jaz9gCgpgK3IrYAoKYDpyfSwiZGVmYXVsdFJlcGxhY2VtZW50Iil9O3RoaXMub3B0aW9ucz1sVGEoe30sZSx0KSx0aGlzLnJ1bGVzPW5ldyBHbnIodGhpcy5vcHRpb25zKX1mdW5jdGlvbiBabnIodCl7dmFyIGU9dGhpcztyZXR1cm4gelRhLmNhbGwodC5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIsYSl7YT1uZXcga1RhKGEsZS5vcHRpb25zKTt2YXIgcz0iIjtyZXR1cm4gYS5ub2RlVHlwZT09PTM/cz1hLmlzQ29kZT9hLm5vZGVWYWx1ZTplLmVzY2FwZShhLm5vZGVWYWx1ZSk6YS5ub2RlVHlwZT09PTEmJihzPUxUYS5jYWxsKGUsYSkpLFFucihyLHMpfSwiIil9ZnVuY3Rpb24gVFRhKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMucnVsZXMuZm9yRWFjaChmdW5jdGlvbihyKXt0eXBlb2Ygci5hcHBlbmQ9PSJmdW5jdGlvbiImJih0PVFucih0LHIuYXBwZW5kKGUub3B0aW9ucykpKX0pLHQucmVwbGFjZSgvXltcdFxyXG5dKy8sIiIpLnJlcGxhY2UoL1tcdFxyXG5cc10rJC8sIiIpfWZ1bmN0aW9uIExUYSh0KXt2YXIgZT10aGlzLnJ1bGVzLmZvck5vZGUodCkscj1abnIuY2FsbCh0aGlzLHQpLGE9dC5mbGFua2luZ1doaXRlc3BhY2U7cmV0dXJuKGEubGVhZGluZ3x8YS50cmFpbGluZykmJihyPXIudHJpbSgpKSxhLmxlYWRpbmcrZS5yZXBsYWNlbWVudChyLHQsdGhpcy5vcHRpb25zKSthLnRyYWlsaW5nfWZ1bmN0aW9uIFFucih0LGUpe3ZhciByPUhucih0KSxhPUJucihlKSxzPU1hdGgubWF4KHQubGVuZ3RoLXIubGVuZ3RoLGUubGVuZ3RoLWEubGVuZ3RoKSxuPWAKCmAuc3Vic3RyaW5nKDAscyk7cmV0dXJuIHIrbithfWZ1bmN0aW9uIERUYSh0KXtyZXR1cm4gdCE9bnVsbCYmKHR5cGVvZiB0PT0ic3RyaW5nInx8dC5ub2RlVHlwZSYmKHQubm9kZVR5cGU9PT0xfHx0Lm5vZGVUeXBlPT09OXx8dC5ub2RlVHlwZT09PTExKSl9dmFyIGNUYSxWbnIsVW5yLHhvLGgkZSx4VGEsbSRlLHpUYSxfVGEsWjRlLFhucj11KCgpPT57aShsVGEsImV4dGVuZCIpO2koYyRlLCJyZXBlYXQiKTtpKEJuciwidHJpbUxlYWRpbmdOZXdsaW5lcyIpO2koSG5yLCJ0cmltVHJhaWxpbmdOZXdsaW5lcyIpO2kocW5yLCJ0cmltTmV3bGluZXMiKTtjVGE9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07aShkJGUsImlzQmxvY2siKTtWbnI9WyJBUkVBIiwiQkFTRSIsIkJSIiwiQ09MIiwiQ09NTUFORCIsIkVNQkVEIiwiSFIiLCJJTUciLCJJTlBVVCIsIktFWUdFTiIsIkxJTksiLCJNRVRBIiwiUEFSQU0iLCJTT1VSQ0UiLCJUUkFDSyIsIldCUiJdO2koam5yLCJpc1ZvaWQiKTtpKGRUYSwiaGFzVm9pZCIpO1Vucj1bIkEiLCJUQUJMRSIsIlRIRUFEIiwiVEJPRFkiLCJURk9PVCIsIlRIIiwiVEQiLCJJRlJBTUUiLCJTQ1JJUFQiLCJBVURJTyIsIlZJREVPIl07aSh1VGEsImlzTWVhbmluZ2Z1bFdoZW5CbGFuayIpO2kocFRhLCJoYXNNZWFuaW5nZnVsV2hlbkJsYW5rIik7aSh1JGUsImlzIik7aShXbnIsImhhcyIpO3hvPXt9O3hvLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQpe3JldHVybmAKCmArdCtgCgpgfSwicmVwbGFjZW1lbnQiKX0seG8ubGluZUJyZWFrPXtmaWx0ZXI6ImJyIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gci5icitgCmB9LCJyZXBsYWNlbWVudCIpfSx4by5oZWFkaW5nPXtmaWx0ZXI6WyJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1OdW1iZXIoZS5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKHIuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJmE8Myl7dmFyIHM9YyRlKGE9PT0xPyI9IjoiLSIsdC5sZW5ndGgpO3JldHVybmAKCmArdCtgCmArcytgCgpgfWVsc2UgcmV0dXJuYAoKYCtjJGUoIiMiLGEpKyIgIit0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5ibG9ja3F1b3RlPXtmaWx0ZXI6ImJsb2NrcXVvdGUiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ9cW5yKHQpLnJlcGxhY2UoL14vZ20sIj4gIiksYAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5saXN0PXtmaWx0ZXI6WyJ1bCIsIm9sIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUpe3ZhciByPWUucGFyZW50Tm9kZTtyZXR1cm4gci5ub2RlTmFtZT09PSJMSSImJnIubGFzdEVsZW1lbnRDaGlsZD09PWU/YApgK3Q6YAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5saXN0SXRlbT17ZmlsdGVyOiJsaSIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7dmFyIGE9ci5idWxsZXRMaXN0TWFya2VyKyIgICAiLHM9ZS5wYXJlbnROb2RlO2lmKHMubm9kZU5hbWU9PT0iT0wiKXt2YXIgbj1zLmdldEF0dHJpYnV0ZSgic3RhcnQiKSxvPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwocy5jaGlsZHJlbixlKTthPShuP051bWJlcihuKStvOm8rMSkrIi4gICJ9dmFyIGw9L1xuJC8udGVzdCh0KTtyZXR1cm4gdD1xbnIodCkrKGw/YApgOiIiKSx0PXQucmVwbGFjZSgvXG4vZ20sYApgKyIgIi5yZXBlYXQoYS5sZW5ndGgpKSxhK3QrKGUubmV4dFNpYmxpbmc/YApgOiIiKX0sInJlcGxhY2VtZW50Iil9LHhvLmluZGVudGVkQ29kZUJsb2NrPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmNvZGVCbG9ja1N0eWxlPT09ImluZGVudGVkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe3JldHVybmAKCiAgICBgK2UuZmlyc3RDaGlsZC50ZXh0Q29udGVudC5yZXBsYWNlKC9cbi9nLGAKICAgIGApK2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5mZW5jZWRDb2RlQmxvY2s9e2ZpbHRlcjppKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iZmVuY2VkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixzPShhLm1hdGNoKC9sYW5ndWFnZS0oXFMrKS8pfHxbbnVsbCwiIl0pWzFdLG49ZS5maXJzdENoaWxkLnRleHRDb250ZW50LG89ci5mZW5jZS5jaGFyQXQoMCksbD0zLGM9bmV3IFJlZ0V4cCgiXiIrbysiezMsfSIsImdtIiksZDtkPWMuZXhlYyhuKTspZFswXS5sZW5ndGg+PWwmJihsPWRbMF0ubGVuZ3RoKzEpO3ZhciBmPWMkZShvLGwpO3JldHVybmAKCmArZitzK2AKYCtuLnJlcGxhY2UoL1xuJC8sIiIpK2AKYCtmK2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5ob3Jpem9udGFsUnVsZT17ZmlsdGVyOiJociIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuYAoKYCtyLmhyK2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5pbmxpbmVMaW5rPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJpbmxpbmVkIiYmdC5ub2RlTmFtZT09PSJBIiYmdC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlKXt2YXIgcj1lLmdldEF0dHJpYnV0ZSgiaHJlZiIpO3ImJihyPXIucmVwbGFjZSgvKFsoKV0pL2csIlxcJDEiKSk7dmFyIGE9WTRlKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTtyZXR1cm4gYSYmKGE9JyAiJythLnJlcGxhY2UoLyIvZywnXFwiJykrJyInKSwiWyIrdCsiXSgiK3IrYSsiKSJ9LCJyZXBsYWNlbWVudCIpfSx4by5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJyZWZlcmVuY2VkIiYmdC5ub2RlTmFtZT09PSJBIiYmdC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe3ZhciBhPWUuZ2V0QXR0cmlidXRlKCJocmVmIikscz1ZNGUoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO3MmJihzPScgIicrcysnIicpO3ZhciBuLG87c3dpdGNoKHIubGlua1JlZmVyZW5jZVN0eWxlKXtjYXNlImNvbGxhcHNlZCI6bj0iWyIrdCsiXVtdIixvPSJbIit0KyJdOiAiK2ErczticmVhaztjYXNlInNob3J0Y3V0IjpuPSJbIit0KyJdIixvPSJbIit0KyJdOiAiK2ErczticmVhaztkZWZhdWx0OnZhciBsPXRoaXMucmVmZXJlbmNlcy5sZW5ndGgrMTtuPSJbIit0KyJdWyIrbCsiXSIsbz0iWyIrbCsiXTogIithK3N9cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5wdXNoKG8pLG59LCJyZXBsYWNlbWVudCIpLHJlZmVyZW5jZXM6W10sYXBwZW5kOmkoZnVuY3Rpb24odCl7dmFyIGU9IiI7cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5sZW5ndGgmJihlPWAKCmArdGhpcy5yZWZlcmVuY2VzLmpvaW4oYApgKStgCgpgLHRoaXMucmVmZXJlbmNlcz1bXSksZX0sImFwcGVuZCIpfSx4by5lbXBoYXNpcz17ZmlsdGVyOlsiZW0iLCJpIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIHQudHJpbSgpP3IuZW1EZWxpbWl0ZXIrdCtyLmVtRGVsaW1pdGVyOiIifSwicmVwbGFjZW1lbnQiKX0seG8uc3Ryb25nPXtmaWx0ZXI6WyJzdHJvbmciLCJiIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIHQudHJpbSgpP3Iuc3Ryb25nRGVsaW1pdGVyK3Qrci5zdHJvbmdEZWxpbWl0ZXI6IiJ9LCJyZXBsYWNlbWVudCIpfSx4by5jb2RlPXtmaWx0ZXI6aShmdW5jdGlvbih0KXt2YXIgZT10LnByZXZpb3VzU2libGluZ3x8dC5uZXh0U2libGluZyxyPXQucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJQUkUiJiYhZTtyZXR1cm4gdC5ub2RlTmFtZT09PSJDT0RFIiYmIXJ9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiIiO3Q9dC5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7Zm9yKHZhciBlPS9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KHQpPyIgIjoiIixyPSJgIixhPXQubWF0Y2goL2ArL2dtKXx8W107YS5pbmRleE9mKHIpIT09LTE7KXI9cisiYCI7cmV0dXJuIHIrZSt0K2Urcn0sInJlcGxhY2VtZW50Iil9LHhvLmltYWdlPXtmaWx0ZXI6ImltZyIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUpe3ZhciByPVk0ZShlLmdldEF0dHJpYnV0ZSgiYWx0IikpLGE9ZS5nZXRBdHRyaWJ1dGUoInNyYyIpfHwiIixzPVk0ZShlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSksbj1zPycgIicrcysnIic6IiI7cmV0dXJuIGE/IiFbIityKyJdKCIrYStuKyIpIjoiIn0sInJlcGxhY2VtZW50Iil9O2koWTRlLCJjbGVhbkF0dHJpYnV0ZSIpO2koR25yLCJSdWxlcyIpLEduci5wcm90b3R5cGU9e2FkZDppKGZ1bmN0aW9uKHQsZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpfSwiYWRkIiksa2VlcDppKGZ1bmN0aW9uKHQpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOnQscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0sImtlZXAiKSxyZW1vdmU6aShmdW5jdGlvbih0KXt0aGlzLl9yZW1vdmUudW5zaGlmdCh7ZmlsdGVyOnQscmVwbGFjZW1lbnQ6aShmdW5jdGlvbigpe3JldHVybiIifSwicmVwbGFjZW1lbnQiKX0pfSwicmVtb3ZlIiksZm9yTm9kZTppKGZ1bmN0aW9uKHQpe2lmKHQuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIGU7cmV0dXJuKGU9cCRlKHRoaXMuYXJyYXksdCx0aGlzLm9wdGlvbnMpKXx8KGU9cCRlKHRoaXMuX2tlZXAsdCx0aGlzLm9wdGlvbnMpKXx8KGU9cCRlKHRoaXMuX3JlbW92ZSx0LHRoaXMub3B0aW9ucykpP2U6dGhpcy5kZWZhdWx0UnVsZX0sImZvck5vZGUiKSxmb3JFYWNoOmkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0aGlzLmFycmF5Lmxlbmd0aDtlKyspdCh0aGlzLmFycmF5W2VdLGUpfSwiZm9yRWFjaCIpfTtpKHAkZSwiZmluZFJ1bGUiKTtpKGZUYSwiZmlsdGVyVmFsdWUiKTtpKGhUYSwiY29sbGFwc2VXaGl0ZXNwYWNlIik7aShmJGUsInJlbW92ZSIpO2koWW5yLCJuZXh0Iik7aCRlPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fTtpKG1UYSwiY2FuUGFyc2VIVE1MTmF0aXZlbHkiKTtpKGdUYSwiY3JlYXRlSFRNTFBhcnNlciIpO2koYlRhLCJzaG91bGRVc2VBY3RpdmVYIik7eFRhPW1UYSgpP2gkZS5ET01QYXJzZXI6Z1RhKCk7aSh2VGEsIlJvb3ROb2RlIik7aSh5VGEsImh0bWxQYXJzZXIiKTtpKHdUYSwiaXNQcmVPckNvZGUiKTtpKGtUYSwiTm9kZSIpO2koU1RhLCJpc0JsYW5rIik7aShNVGEsImZsYW5raW5nV2hpdGVzcGFjZSIpO2koQ1RhLCJlZGdlV2hpdGVzcGFjZSIpO2koS25yLCJpc0ZsYW5rZWRCeVdoaXRlc3BhY2UiKTt6VGE9QXJyYXkucHJvdG90eXBlLnJlZHVjZSxfVGE9W1svXFwvZywiXFxcXCJdLFsvXCovZywiXFwqIl0sWy9eLS9nLCJcXC0iXSxbL15cKyAvZywiXFwrICJdLFsvXig9KykvZywiXFwkMSJdLFsvXigjezEsNn0pIC9nLCJcXCQxICJdLFsvYC9nLCJcXGAiXSxbL15+fn4vZywiXFx+fn4iXSxbL1xbL2csIlxcWyJdLFsvXF0vZywiXFxdIl0sWy9ePi9nLCJcXD4iXSxbL18vZywiXFxfIl0sWy9eKFxkKylcLiAvZywiJDFcXC4gIl1dO2koSzRlLCJUdXJuZG93blNlcnZpY2UiKSxLNGUucHJvdG90eXBlPXt0dXJuZG93bjppKGZ1bmN0aW9uKHQpe2lmKCFEVGEodCkpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgc3RyaW5nLCBvciBhbiBlbGVtZW50L2RvY3VtZW50L2ZyYWdtZW50IG5vZGUuIik7aWYodD09PSIiKXJldHVybiIiO3ZhciBlPVpuci5jYWxsKHRoaXMsbmV3IHZUYSh0LHRoaXMub3B0aW9ucykpO3JldHVybiBUVGEuY2FsbCh0aGlzLGUpfSwidHVybmRvd24iKSx1c2U6aShmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMudXNlKHRbZV0pO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdCh0aGlzKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoInBsdWdpbiBtdXN0IGJlIGEgRnVuY3Rpb24gb3IgYW4gQXJyYXkgb2YgRnVuY3Rpb25zIik7cmV0dXJuIHRoaXN9LCJ1c2UiKSxhZGRSdWxlOmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5ydWxlcy5hZGQodCxlKSx0aGlzfSwiYWRkUnVsZSIpLGtlZXA6aShmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ydWxlcy5rZWVwKHQpLHRoaXN9LCJrZWVwIikscmVtb3ZlOmkoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucnVsZXMucmVtb3ZlKHQpLHRoaXN9LCJyZW1vdmUiKSxlc2NhcGU6aShmdW5jdGlvbih0KXtyZXR1cm4gX1RhLnJlZHVjZShmdW5jdGlvbihlLHIpe3JldHVybiBlLnJlcGxhY2UoclswXSxyWzFdKX0sdCl9LCJlc2NhcGUiKX07aShabnIsInByb2Nlc3MiKTtpKFRUYSwicG9zdFByb2Nlc3MiKTtpKExUYSwicmVwbGFjZW1lbnRGb3JOb2RlIik7aShRbnIsImpvaW4iKTtpKERUYSwiY2FuQ29udmVydCIpO1o0ZT1LNGV9KTt2YXIgcl89e307VmUocl8se2dmbTooKT0+dG9yLGhpZ2hsaWdodGVkQ29kZUJsb2NrOigpPT5iJGUsc3RyaWtldGhyb3VnaDooKT0+eCRlLHRhYmxlczooKT0+diRlLHRhc2tMaXN0SXRlbXM6KCk9PnkkZX0pO2Z1bmN0aW9uIGIkZSh0KXt0LmFkZFJ1bGUoImhpZ2hsaWdodGVkQ29kZUJsb2NrIix7ZmlsdGVyOmkoZnVuY3Rpb24oZSl7dmFyIHI9ZS5maXJzdENoaWxkO3JldHVybiBlLm5vZGVOYW1lPT09IkRJViImJkpuci50ZXN0KGUuY2xhc3NOYW1lKSYmciYmci5ub2RlTmFtZT09PSJQUkUifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihlLHIsYSl7dmFyIHM9ci5jbGFzc05hbWV8fCIiLG49KHMubWF0Y2goSm5yKXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK2EuZmVuY2UrbitgCmArci5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCthLmZlbmNlK2AKCmB9LCJyZXBsYWNlbWVudCIpfSl9ZnVuY3Rpb24geCRlKHQpe3QuYWRkUnVsZSgic3RyaWtldGhyb3VnaCIse2ZpbHRlcjpbImRlbCIsInMiLCJzdHJpa2UiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKGUpe3JldHVybiJ+IitlKyJ+In0sInJlcGxhY2VtZW50Iil9KX1mdW5jdGlvbiBnJGUodCl7dmFyIGU9dC5wYXJlbnROb2RlO3JldHVybiBlLm5vZGVOYW1lPT09IlRIRUFEInx8ZS5maXJzdENoaWxkPT09dCYmKGUubm9kZU5hbWU9PT0iVEFCTEUifHxFVGEoZSkpJiZBVGEuY2FsbCh0LmNoaWxkTm9kZXMsZnVuY3Rpb24ocil7cmV0dXJuIHIubm9kZU5hbWU9PT0iVEgifSl9ZnVuY3Rpb24gRVRhKHQpe3ZhciBlPXQucHJldmlvdXNTaWJsaW5nO3JldHVybiB0Lm5vZGVOYW1lPT09IlRCT0RZIiYmKCFlfHxlLm5vZGVOYW1lPT09IlRIRUFEIiYmL15ccyokL2kudGVzdChlLnRleHRDb250ZW50KSl9ZnVuY3Rpb24gZW9yKHQsZSl7dmFyIHI9JFRhLmNhbGwoZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMsZSksYT0iICI7cmV0dXJuIHI9PT0wJiYoYT0ifCAiKSxhK3QrIiB8In1mdW5jdGlvbiB2JGUodCl7dC5rZWVwKGZ1bmN0aW9uKHIpe3JldHVybiByLm5vZGVOYW1lPT09IlRBQkxFIiYmIWckZShyLnJvd3NbMF0pfSk7Zm9yKHZhciBlIGluIHB5KXQuYWRkUnVsZShlLHB5W2VdKX1mdW5jdGlvbiB5JGUodCl7dC5hZGRSdWxlKCJ0YXNrTGlzdEl0ZW1zIix7ZmlsdGVyOmkoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PSJjaGVja2JveCImJmUucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJMSSJ9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKGUscil7cmV0dXJuKHIuY2hlY2tlZD8iW3hdIjoiWyBdIikrIiAifSwicmVwbGFjZW1lbnQiKX0pfWZ1bmN0aW9uIHRvcih0KXt0LnVzZShbYiRlLHgkZSx2JGUseSRlXSl9dmFyIEpuciwkVGEsQVRhLHB5LHJvcj11KCgpPT57Sm5yPS9oaWdobGlnaHQtKD86dGV4dHxzb3VyY2UpLShbYS16MC05XSspLztpKGIkZSwiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siKTtpKHgkZSwic3RyaWtldGhyb3VnaCIpOyRUYT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZixBVGE9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LHB5PXt9O3B5LnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gZW9yKHQsZSl9LCJyZXBsYWNlbWVudCIpfSxweS50YWJsZVJvdz17ZmlsdGVyOiJ0ciIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUpe3ZhciByPSIiLGE9e2xlZnQ6IjotLSIscmlnaHQ6Ii0tOiIsY2VudGVyOiI6LToifTtpZihnJGUoZSkpZm9yKHZhciBzPTA7czxlLmNoaWxkTm9kZXMubGVuZ3RoO3MrKyl7dmFyIG49Ii0tLSIsbz0oZS5jaGlsZE5vZGVzW3NdLmdldEF0dHJpYnV0ZSgiYWxpZ24iKXx8IiIpLnRvTG93ZXJDYXNlKCk7byYmKG49YVtvXXx8bikscis9ZW9yKG4sZS5jaGlsZE5vZGVzW3NdKX1yZXR1cm5gCmArdCsocj9gCmArcjoiIil9LCJyZXBsYWNlbWVudCIpfSxweS50YWJsZT17ZmlsdGVyOmkoZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iVEFCTEUiJiZnJGUodC5yb3dzWzBdKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK3QrYAoKYH0sInJlcGxhY2VtZW50Iil9LHB5LnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0KXtyZXR1cm4gdH0sInJlcGxhY2VtZW50Iil9O2koZyRlLCJpc0hlYWRpbmdSb3ciKTtpKEVUYSwiaXNGaXJzdFRib2R5Iik7aShlb3IsImNlbGwiKTtpKHYkZSwidGFibGVzIik7aSh5JGUsInRhc2tMaXN0SXRlbXMiKTtpKHRvciwiZ2ZtIil9KTt2YXIgdyRlLGskZT11KCgpPT57dyRlPUdhKFZKdCgpLDEpO2tlcigpO0xhcigpO3RpcigpO2ZpcigpO09ucigpO0ZucigpO1hucigpO3JvcigpfSk7dmFyIFE0ZSxpb3I9dSgoKT0+e2skZSgpO1E0ZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk1kUGFyc2VkUmVzdWx0Iil9c3RhdGljIGFzeW5jIGNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKXtsZXQgcj1uZXcgdDtyZXR1cm4gYXdhaXQgci51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSkscn1hc3luYyB1cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7bGV0IHIsYT1hd2FpdCBBeigpLnVzZShpeSkudXNlKGF5KS51c2UobnksWyJ5YW1sIiwidG9tbCJdKS51c2UodXkpLnVzZShkeSkudXNlKCgpPT5zPT57Y29uc29sZS5kaXIocyk7bGV0IG49cy5jaGlsZHJlbi5maW5kKG89Pm8udHlwZT09PSJ5YW1sIik7biYmKHI9bi52YWx1ZSl9KS5wcm9jZXNzKGUpO3RoaXMuaHRtbD1hLnRvU3RyaW5nKCkscj90aGlzLmZyb250bWF0dGVyRGF0YT1hd2FpdCB3JGUueWFtbFN0cmluZ1RvT2JqZWN0KHIpOnRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fX19KTt2YXIgYV89e307VmUoYV8se1NtYXJ0TWFya2Rvd246KCk9PlMkZX0pO3ZhciBTJGUsc29yPXUoKCk9PntrJGUoKTtpb3IoKTtTJGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTbWFydE1hcmtkb3duIil9c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbChlKXtyZXR1cm4oYXdhaXQgbmV3IHQoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKXtyZXR1cm4gYXdhaXQgUTRlLmNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKX1odG1sVG9NYXJrZG93bihlKXtsZXQgcj1uZXcgWjRlKHtoZWFkaW5nU3R5bGU6ImF0eCIsY29kZUJsb2NrU3R5bGU6ImZlbmNlZCJ9KTtyZXR1cm4gci51c2Uocl8uZ2ZtKSxyLnR1cm5kb3duKGUpfX19KTt2YXIgdW9yPU50KGFjPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYWMuUGF0aEVycm9yPWFjLlRva2VuRGF0YT12b2lkIDAsYWMucGFyc2U9XyRlLGFjLmNvbXBpbGU9TlRhLGFjLm1hdGNoPVJUYSxhYy5wYXRoVG9SZWdleHA9bG9yLGFjLnN0cmluZ2lmeT1IVGE7dmFyIE0kZT0iLyIsQyRlPWkodD0+dCwiTk9PUF9WQUxVRSIpLG5vcj0vXlskX1xwe0lEX1N0YXJ0fV0kL3UseiRlPS9eWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dJC91LElUYT17InsiOiJ7IiwifSI6In0iLCIoIjoiKCIsIikiOiIpIiwiWyI6IlsiLCJdIjoiXSIsIisiOiIrIiwiPyI6Ij8iLCIhIjoiISJ9O2Z1bmN0aW9uIFBUYSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9be30oKVxbXF0rPyE6KlxcXS9nLCJcXCQmIil9aShQVGEsImVzY2FwZVRleHQiKTtmdW5jdGlvbiBYMCh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bLisqP14ke30oKVtcXXwvXFxdL2csIlxcJCYiKX1pKFgwLCJlc2NhcGUiKTt2YXIgWDRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRva2VuRGF0YSIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy50b2tlbnM9ZSx0aGlzLm9yaWdpbmFsUGF0aD1yfX07YWMuVG9rZW5EYXRhPVg0ZTt2YXIgRzY9Y2xhc3MgZXh0ZW5kcyBUeXBlRXJyb3J7c3RhdGlje2kodGhpcywiUGF0aEVycm9yIil9Y29uc3RydWN0b3IoZSxyKXtsZXQgYT1lO3ImJihhKz1gOiAke3J9YCksYSs9IjsgdmlzaXQgaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yIGZvciBpbmZvIixzdXBlcihhKSx0aGlzLm9yaWdpbmFsUGF0aD1yfX07YWMuUGF0aEVycm9yPUc2O2Z1bmN0aW9uIF8kZSh0LGU9e30pe2xldHtlbmNvZGVQYXRoOnI9QyRlfT1lLGE9Wy4uLnRdLHM9W10sbj0wLG89MDtmdW5jdGlvbiBsKCl7bGV0IGQ9IiI7aWYobm9yLnRlc3QoYVtuXSkpZG8gZCs9YVtuKytdO3doaWxlKHokZS50ZXN0KGFbbl0pKTtlbHNlIGlmKGFbbl09PT0nIicpe2xldCBmPW47Zm9yKDtuKys8YS5sZW5ndGg7KXtpZihhW25dPT09JyInKXtuKyssZj0wO2JyZWFrfWFbbl09PT0iXFwiJiZuKyssZCs9YVtuXX1pZihmKXRocm93IG5ldyBHNihgVW50ZXJtaW5hdGVkIHF1b3RlIGF0IGluZGV4ICR7Zn1gLHQpfWlmKCFkKXRocm93IG5ldyBHNihgTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBpbmRleCAke259YCx0KTtyZXR1cm4gZH1mb3IoaShsLCJuYW1lIik7bjxhLmxlbmd0aDspe2xldCBkPWFbbl0sZj1JVGFbZF07Zj9zLnB1c2goe3R5cGU6ZixpbmRleDpuKyssdmFsdWU6ZH0pOmQ9PT0iXFwiP3MucHVzaCh7dHlwZToiZXNjYXBlIixpbmRleDpuKyssdmFsdWU6YVtuKytdfSk6ZD09PSI6Ij9zLnB1c2goe3R5cGU6InBhcmFtIixpbmRleDpuKyssdmFsdWU6bCgpfSk6ZD09PSIqIj9zLnB1c2goe3R5cGU6IndpbGRjYXJkIixpbmRleDpuKyssdmFsdWU6bCgpfSk6cy5wdXNoKHt0eXBlOiJjaGFyIixpbmRleDpuKyssdmFsdWU6ZH0pfXMucHVzaCh7dHlwZToiZW5kIixpbmRleDpuLHZhbHVlOiIifSk7ZnVuY3Rpb24gYyhkKXtsZXQgZj1bXTtmb3IoOzspe2xldCBwPXNbbysrXTtpZihwLnR5cGU9PT1kKWJyZWFrO2lmKHAudHlwZT09PSJjaGFyInx8cC50eXBlPT09ImVzY2FwZSIpe2xldCBoPXAudmFsdWUsbT1zW29dO2Zvcig7bS50eXBlPT09ImNoYXIifHxtLnR5cGU9PT0iZXNjYXBlIjspaCs9bS52YWx1ZSxtPXNbKytvXTtmLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOnIoaCl9KTtjb250aW51ZX1pZihwLnR5cGU9PT0icGFyYW0ifHxwLnR5cGU9PT0id2lsZGNhcmQiKXtmLnB1c2goe3R5cGU6cC50eXBlLG5hbWU6cC52YWx1ZX0pO2NvbnRpbnVlfWlmKHAudHlwZT09PSJ7Iil7Zi5wdXNoKHt0eXBlOiJncm91cCIsdG9rZW5zOmMoIn0iKX0pO2NvbnRpbnVlfXRocm93IG5ldyBHNihgVW5leHBlY3RlZCAke3AudHlwZX0gYXQgaW5kZXggJHtwLmluZGV4fSwgZXhwZWN0ZWQgJHtkfWAsdCl9cmV0dXJuIGZ9cmV0dXJuIGkoYywiY29uc3VtZVVudGlsIiksbmV3IFg0ZShjKCJlbmQiKSx0KX1pKF8kZSwicGFyc2UiKTtmdW5jdGlvbiBOVGEodCxlPXt9KXtsZXR7ZW5jb2RlOnI9ZW5jb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjphPU0kZX09ZSxzPXR5cGVvZiB0PT0ib2JqZWN0Ij90Ol8kZSh0LGUpLG49b29yKHMudG9rZW5zLGEscik7cmV0dXJuIGkoZnVuY3Rpb24obD17fSl7bGV0W2MsLi4uZF09bihsKTtpZihkLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7ZC5qb2luKCIsICIpfWApO3JldHVybiBjfSwicGF0aCIpfWkoTlRhLCJjb21waWxlIik7ZnVuY3Rpb24gb29yKHQsZSxyKXtsZXQgYT10Lm1hcChzPT5PVGEocyxlLHIpKTtyZXR1cm4gcz0+e2xldCBuPVsiIl07Zm9yKGxldCBvIG9mIGEpe2xldFtsLC4uLmNdPW8ocyk7blswXSs9bCxuLnB1c2goLi4uYyl9cmV0dXJuIG59fWkob29yLCJ0b2tlbnNUb0Z1bmN0aW9uIik7ZnVuY3Rpb24gT1RhKHQsZSxyKXtpZih0LnR5cGU9PT0idGV4dCIpcmV0dXJuKCk9Plt0LnZhbHVlXTtpZih0LnR5cGU9PT0iZ3JvdXAiKXtsZXQgcz1vb3IodC50b2tlbnMsZSxyKTtyZXR1cm4gbj0+e2xldFtvLC4uLmxdPXMobik7cmV0dXJuIGwubGVuZ3RoP1siIl06W29dfX1sZXQgYT1yfHxDJGU7cmV0dXJuIHQudHlwZT09PSJ3aWxkY2FyZCImJnIhPT0hMT9zPT57bGV0IG49c1t0Lm5hbWVdO2lmKG49PW51bGwpcmV0dXJuWyIiLHQubmFtZV07aWYoIUFycmF5LmlzQXJyYXkobil8fG4ubGVuZ3RoPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHt0Lm5hbWV9IiB0byBiZSBhIG5vbi1lbXB0eSBhcnJheWApO3JldHVybltuLm1hcCgobyxsKT0+e2lmKHR5cGVvZiBvIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHt0Lm5hbWV9LyR7bH0iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuIGEobyl9KS5qb2luKGUpXX06cz0+e2xldCBuPXNbdC5uYW1lXTtpZihuPT1udWxsKXJldHVyblsiIix0Lm5hbWVdO2lmKHR5cGVvZiBuIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHt0Lm5hbWV9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVyblthKG4pXX19aShPVGEsInRva2VuVG9GdW5jdGlvbiIpO2Z1bmN0aW9uIFJUYSh0LGU9e30pe2xldHtkZWNvZGU6cj1kZWNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmE9TSRlfT1lLHtyZWdleHA6cyxrZXlzOm59PWxvcih0LGUpLG89bi5tYXAobD0+cj09PSExP0MkZTpsLnR5cGU9PT0icGFyYW0iP3I6Yz0+Yy5zcGxpdChhKS5tYXAocikpO3JldHVybiBpKGZ1bmN0aW9uKGMpe2xldCBkPXMuZXhlYyhjKTtpZighZClyZXR1cm4hMTtsZXQgZj1kWzBdLHA9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGg9MTtoPGQubGVuZ3RoO2grKyl7aWYoZFtoXT09PXZvaWQgMCljb250aW51ZTtsZXQgbT1uW2gtMV0sdj1vW2gtMV07cFttLm5hbWVdPXYoZFtoXSl9cmV0dXJue3BhdGg6ZixwYXJhbXM6cH19LCJtYXRjaCIpfWkoUlRhLCJtYXRjaCIpO2Z1bmN0aW9uIGxvcih0LGU9e30pe2xldHtkZWxpbWl0ZXI6cj1NJGUsZW5kOmE9ITAsc2Vuc2l0aXZlOnM9ITEsdHJhaWxpbmc6bj0hMH09ZSxvPVtdLGw9cz8iIjoiaSIsYz1bXTtmb3IobGV0IHAgb2YgY29yKHQsW10pKXtsZXQgaD10eXBlb2YgcD09Im9iamVjdCI/cDpfJGUocCxlKTtmb3IobGV0IG0gb2YgSjRlKGgudG9rZW5zLDAsW10pKWMucHVzaChGVGEobSxyLG8saC5vcmlnaW5hbFBhdGgpKX1sZXQgZD1gXig/OiR7Yy5qb2luKCJ8Iil9KWA7cmV0dXJuIG4mJihkKz1gKD86JHtYMChyKX0kKT9gKSxkKz1hPyIkIjpgKD89JHtYMChyKX18JClgLHtyZWdleHA6bmV3IFJlZ0V4cChkLGwpLGtleXM6b319aShsb3IsInBhdGhUb1JlZ2V4cCIpO2Z1bmN0aW9uIGNvcih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCByIG9mIHQpY29yKHIsZSk7ZWxzZSBlLnB1c2godCk7cmV0dXJuIGV9aShjb3IsInBhdGhzVG9BcnJheSIpO2Z1bmN0aW9uKko0ZSh0LGUscil7aWYoZT09PXQubGVuZ3RoKXJldHVybiB5aWVsZCByO2xldCBhPXRbZV07aWYoYS50eXBlPT09Imdyb3VwIilmb3IobGV0IHMgb2YgSjRlKGEudG9rZW5zLDAsci5zbGljZSgpKSl5aWVsZCpKNGUodCxlKzEscyk7ZWxzZSByLnB1c2goYSk7eWllbGQqSjRlKHQsZSsxLHIpfWkoSjRlLCJmbGF0dGVuIik7ZnVuY3Rpb24gRlRhKHQsZSxyLGEpe2xldCBzPSIiLG49IiIsbz0hMDtmb3IobGV0IGwgb2YgdCl7aWYobC50eXBlPT09InRleHQiKXtzKz1YMChsLnZhbHVlKSxuKz1sLnZhbHVlLG98fChvPWwudmFsdWUuaW5jbHVkZXMoZSkpO2NvbnRpbnVlfWlmKGwudHlwZT09PSJwYXJhbSJ8fGwudHlwZT09PSJ3aWxkY2FyZCIpe2lmKCFvJiYhbil0aHJvdyBuZXcgRzYoYE1pc3NpbmcgdGV4dCBiZWZvcmUgIiR7bC5uYW1lfSIgJHtsLnR5cGV9YCxhKTtsLnR5cGU9PT0icGFyYW0iP3MrPWAoJHtCVGEoZSxvPyIiOm4pfSspYDpzKz0iKFtcXHNcXFNdKykiLHIucHVzaChsKSxuPSIiLG89ITE7Y29udGludWV9fXJldHVybiBzfWkoRlRhLCJ0b1JlZ0V4cFNvdXJjZSIpO2Z1bmN0aW9uIEJUYSh0LGUpe3JldHVybiBlLmxlbmd0aDwyP3QubGVuZ3RoPDI/YFteJHtYMCh0K2UpfV1gOmAoPzooPyEke1gwKHQpfSlbXiR7WDAoZSl9XSlgOnQubGVuZ3RoPDI/YCg/Oig/ISR7WDAoZSl9KVteJHtYMCh0KX1dKWA6YCg/Oig/ISR7WDAoZSl9fCR7WDAodCl9KVtcXHNcXFNdKWB9aShCVGEsIm5lZ2F0ZSIpO2Z1bmN0aW9uIGRvcih0KXtsZXQgZT0iIixyPTA7ZnVuY3Rpb24gYShzKXtyZXR1cm4gcVRhKHMpJiZWVGEodFtyXSk/czpKU09OLnN0cmluZ2lmeShzKX1mb3IoaShhLCJuYW1lIik7cjx0Lmxlbmd0aDspe2xldCBzPXRbcisrXTtpZihzLnR5cGU9PT0idGV4dCIpe2UrPVBUYShzLnZhbHVlKTtjb250aW51ZX1pZihzLnR5cGU9PT0iZ3JvdXAiKXtlKz1geyR7ZG9yKHMudG9rZW5zKX19YDtjb250aW51ZX1pZihzLnR5cGU9PT0icGFyYW0iKXtlKz1gOiR7YShzLm5hbWUpfWA7Y29udGludWV9aWYocy50eXBlPT09IndpbGRjYXJkIil7ZSs9YCoke2Eocy5uYW1lKX1gO2NvbnRpbnVlfXRocm93IG5ldyBUeXBlRXJyb3IoYFVua25vd24gdG9rZW4gdHlwZTogJHtzLnR5cGV9YCl9cmV0dXJuIGV9aShkb3IsInN0cmluZ2lmeVRva2VucyIpO2Z1bmN0aW9uIEhUYSh0KXtyZXR1cm4gZG9yKHQudG9rZW5zKX1pKEhUYSwic3RyaW5naWZ5Iik7ZnVuY3Rpb24gcVRhKHQpe2xldFtlLC4uLnJdPXQ7cmV0dXJuIG5vci50ZXN0KGUpJiZyLmV2ZXJ5KGE9PnokZS50ZXN0KGEpKX1pKHFUYSwiaXNOYW1lU2FmZSIpO2Z1bmN0aW9uIFZUYSh0KXtyZXR1cm4gdCYmdC50eXBlPT09InRleHQiPyF6JGUudGVzdCh0LnZhbHVlWzBdKTohMH1pKFZUYSwiaXNOZXh0TmFtZVNhZmUiKX0pO3ZhciBUJGUsTCRlPXUoKCk9PntKQygpO2I0KCk7VCRlPUdhKHVvcigpLDEpfSk7dmFyIGUzZSxwb3I9dSgoKT0+e0wkZSgpO2UzZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJRdWVyeVBhcmFtcyIpfWNvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKGUscixhPSJyZXBsYWNlIil7dmFyIHM9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtzLnNldChlLHIpLGE9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IitzLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrcy50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKGUscj0icmVwbGFjZSIpe3ZhciBhPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7YS5kZWxldGUoZSkscj09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK2EudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IithLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0oZSl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVtlXX19fSk7dmFyICQ5bixEJGUsaG9yPXUoKCk9PntMJGUoKTtwb3IoKTskOW49aSh0PT57Y29uc29sZS5sb2coYCVjW1JvdXRlcl0lYyAke3R9YCwiY29sb3I6IHJnYigyNTUsIDEwNSwgMTAwKTsiLCJjb2xvcjogaW5oZXJpdCIpfSwicm91dGVMb2ciKSxEJGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTbWFydFJvdXRlciIpfWNvbnN0cnVjdG9yKGUscj0iIil7dGhpcy5vcHRpb25zPXtkZWJ1ZzohMX0sdGhpcy5xdWVyeVBhcmFtcz1uZXcgZTNlLHRoaXMucm91dGVzPVtdLHRoaXMub3B0aW9ucz17Li4udGhpcy5vcHRpb25zLC4uLmV9LHRoaXMuYmFzZVBhdGg9cix0aGlzLnBvcHN0YXRlTGlzdGVuZXI9YT0+e2EucHJldmVudERlZmF1bHQoKSx0aGlzLl9oYW5kbGVSb3V0ZVN0YXRlKCl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKX1jcmVhdGVTdWJSb3V0ZXIoZSxyKXtsZXQgYT1gJHt0aGlzLmJhc2VQYXRofSR7ZX1gO3JldHVybiBuZXcgdCh7Li4udGhpcy5vcHRpb25zLC4uLnJ9LGEpfWFzeW5jIHB1c2hVcmwoZT0iLyIscj17fSl7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDthIT09d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lP3dpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShyLHdpbmRvdy5kb2N1bWVudC50aXRsZSxhKTp3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUocix3aW5kb3cuZG9jdW1lbnQudGl0bGUsYSksYXdhaXQgdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfW9uKGUscil7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YCxzPXttYXRjaEZ1bmN0aW9uOlQkZS5tYXRjaChhKSxoYW5kbGVyOnJ9O3JldHVybiB0aGlzLnJvdXRlcy5wdXNoKHMpLGkoKCk9Pnt0aGlzLnJvdXRlcy5zcGxpY2UodGhpcy5yb3V0ZXMuaW5kZXhPZihzKSwxKX0sInJlbW92ZUZ1bmN0aW9uIil9YXN5bmMgX2hhbmRsZVJvdXRlU3RhdGUoKXtsZXQgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUscj10aGlzLnJvdXRlcy5maWx0ZXIoYT0+ISFhLm1hdGNoRnVuY3Rpb24oZSkpO2ZvcihsZXQgYSBvZiByKXtsZXQgcz1hLm1hdGNoRnVuY3Rpb24oZSk7YS5oYW5kbGVyKHsuLi5zLnZhbHVlT2YoKSxxdWVyeVBhcmFtczp0aGlzLnF1ZXJ5UGFyYW1zLmdldEFsbEFzT2JqZWN0KCl9KX19ZGVzdHJveSgpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKSx0aGlzLnJvdXRlcz1bXX19fSk7dmFyIFk2PXt9O1ZlKFk2LHtTbWFydFJvdXRlcjooKT0+RCRlfSk7dmFyIG1vcj11KCgpPT57aG9yKCl9KTt2YXIgZ29yPXUoKCk9Pnt1eigpO0l2KCl9KTtmdW5jdGlvbiBKMCh0LGUpe3JldHVybiB0Pj4+ZXx0PDwzMi1lfWZ1bmN0aW9uIFlUYSh0LGUpe2xldCByPWVbMF0sYT1lWzFdLHM9ZVsyXSxuPWVbM10sbz1lWzRdLGw9ZVs1XSxjPWVbNl0sZD1lWzddO2ZvcihsZXQgZj0wO2Y8NjQ7ZisrKXtpZihmPj0xNil7bGV0IHk9SjAodFtmLTE1XSw3KV5KMCh0W2YtMTVdLDE4KV50W2YtMTVdPj4+MyxrPUowKHRbZi0yXSwxNyleSjAodFtmLTJdLDE5KV50W2YtMl0+Pj4xMDt0W2ZdPXRbZi0xNl0reSt0W2YtN10raz4+PjB9bGV0IHA9SjAobyw2KV5KMChvLDExKV5KMChvLDI1KSxoPW8mbF5+byZjLG09ZCtwK2grV1RhW2ZdK3RbZl0+Pj4wLHY9SjAociwyKV5KMChyLDEzKV5KMChyLDIyKSxiPXImYV5yJnNeYSZzLGc9ditiPj4+MDtkPWMsYz1sLGw9byxvPW4rbT4+PjAsbj1zLHM9YSxhPXIscj1tK2c+Pj4wfWVbMF09ZVswXStyPj4+MCxlWzFdPWVbMV0rYT4+PjAsZVsyXT1lWzJdK3M+Pj4wLGVbM109ZVszXStuPj4+MCxlWzRdPWVbNF0rbz4+PjAsZVs1XT1lWzVdK2w+Pj4wLGVbNl09ZVs2XStjPj4+MCxlWzddPWVbN10rZD4+PjB9ZnVuY3Rpb24gJCRlKHQpe2xldCBlPVsuLi5HVGFdLHI9dC5sZW5ndGgsYT1yKjgscz1yJTY0PDU2PzU2LXIlNjQ6MTIwLXIlNjQsbj1uZXcgVWludDhBcnJheShyK3MrOCk7bi5zZXQodCksbltyXT0xMjg7bGV0IG89bmV3IERhdGFWaWV3KG4uYnVmZmVyKTtvLnNldFVpbnQzMihuLmxlbmd0aC04LDAsITEpLG8uc2V0VWludDMyKG4ubGVuZ3RoLTQsYT4+PjAsITEpO2ZvcihsZXQgYz0wO2M8bi5sZW5ndGg7Yys9NjQpe2xldCBkPW5ldyBBcnJheSg2NCk7Zm9yKGxldCBmPTA7ZjwxNjtmKyspZFtmXT1vLmdldFVpbnQzMihjK2YqNCwhMSk7WVRhKGQsZSl9bGV0IGw9IiI7Zm9yKGxldCBjPTA7Yzw4O2MrKylsKz1lW2NdLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIik7cmV0dXJuIGx9dmFyIFdUYSxHVGEsYm9yPXUoKCk9PntXVGE9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sR1RhPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07aShKMCwicm90ciIpO2koWVRhLCJzaGEyNTZUcmFuc2Zvcm0iKTtpKCQkZSwic2hhMjU2RmFsbGJhY2siKX0pO3ZhciBpXz17fTtWZShpXyx7bWQ1RnJvbVN0cmluZzooKT0+ZUxhLHNoYTI1NkZyb21CdWZmZXI6KCk9PlpUYSxzaGEyNTZGcm9tRmlsZTooKT0+SlRhLHNoYTI1NkZyb21TdHJlYW06KCk9PlhUYSxzaGEyNTZGcm9tU3RyaW5nOigpPT55b3Isc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PktUYSxzaGEyNjVGcm9tT2JqZWN0OigpPT5RVGF9KTt2YXIgeG9yLHZvcix5b3IsS1RhLFpUYSxRVGEsWFRhLEpUYSxlTGEsd29yPXUoKCk9Pntnb3IoKTtib3IoKTt4b3I9aSh0PT57bGV0IGU9W10scj1uZXcgRGF0YVZpZXcodCk7Zm9yKGxldCBhPTA7YTxyLmJ5dGVMZW5ndGg7YSs9NCl7bGV0IG49ci5nZXRVaW50MzIoYSkudG9TdHJpbmcoMTYpLG89IjAwMDAwMDAwIixsPShvK24pLnNsaWNlKC1vLmxlbmd0aCk7ZS5wdXNoKGwpfXJldHVybiBlLmpvaW4oIiIpfSwiaGV4Iiksdm9yPWkoKCk9PnR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8uc3VidGxlIT09dm9pZCAwLCJpc0NyeXB0b1N1YnRsZUF2YWlsYWJsZSIpLHlvcj1pKGFzeW5jIHQ9PntsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCk7aWYodm9yKCkpe2xldCByPWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4geG9yKHIpfWVsc2UgcmV0dXJuICQkZShlKX0sInNoYTI1NkZyb21TdHJpbmciKSxLVGE9aSh0PT57dGhyb3cgY29uc29sZS53YXJuKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3QgdHJ1bHkgc3luY2hyb25vdXMgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpLG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBVc2Ugc2hhMjU2RnJvbVN0cmluZyBpbnN0ZWFkLiIpfSwic2hhMjU2RnJvbVN0cmluZ1N5bmMiKSxaVGE9aShhc3luYyB0PT57aWYodm9yKCkpe2xldCBlO2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcz10O2U9cy5idWZmZXIuc2xpY2Uocy5ieXRlT2Zmc2V0LHMuYnl0ZU9mZnNldCtzLmJ5dGVMZW5ndGgpfWVsc2UgZT10O2xldCByPWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4geG9yKHIpfWVsc2V7bGV0IGU9dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/dDpuZXcgVWludDhBcnJheSh0KTtyZXR1cm4gJCRlKGUpfX0sInNoYTI1NkZyb21CdWZmZXIiKSxRVGE9aShhc3luYyB0PT57bGV0IGU9UXMuc3RyaW5naWZ5KHQpO3JldHVybiBhd2FpdCB5b3IoZSl9LCJzaGEyNjVGcm9tT2JqZWN0IiksWFRhPWkodD0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sInNoYTI1NkZyb21TdHJlYW0iKSxKVGE9aShhc3luYyB0PT57dGhyb3cgbmV3IEVycm9yKCJzaGEyNTZGcm9tRmlsZSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sInNoYTI1NkZyb21GaWxlIiksZUxhPWkoYXN5bmMgdD0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfSwibWQ1RnJvbVN0cmluZyIpfSk7dmFyIHQzZT11KCgpPT57d29yKCk7SXYoKTtLMSgpO2I0KCk7ZmRlKCl9KTt2YXIgc18sQSRlPXUoKCk9PntyM2UoKTtzXz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZUFjdGlvbiIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5zdGF0ZVBhcnRSZWY9ZSx0aGlzLmFjdGlvbkRlZj1yfXRyaWdnZXIoZSl7cmV0dXJuIHRoaXMuc3RhdGVQYXJ0UmVmLmRpc3BhdGNoQWN0aW9uKHRoaXMsZSl9fX0pO2Z1bmN0aW9uIHJMYSgpe3JldHVybiB0eXBlb2YgZG9jdW1lbnQ+InUiP1hoKCEwKTpuZXcgbHIodD0+e3QubmV4dCghZG9jdW1lbnQuaGlkZGVuKTtsZXQgZT1pKCgpPT50Lm5leHQoIWRvY3VtZW50LmhpZGRlbiksImhhbmRsZXIiKTtyZXR1cm4gZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZSksKCk9PmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGUpfSl9dmFyIGZ5LEUkZT11KCgpPT57SngoKTtpKHJMYSwiY3JlYXRlVmlzaWJpbGl0eU9ic2VydmFibGUiKTtmeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZVByb2Nlc3MiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RhdHVzU3ViamVjdD1uZXcgVngoImlkbGUiKSx0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249bnVsbCx0aGlzLnByb2Nlc3NpbmdRdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnN0YXRlUGFydFJlZj1lLHRoaXMucHJvZHVjZXJGbj1yLnByb2R1Y2VyLHRoaXMucmVkdWNlcj1yLnJlZHVjZXIsdGhpcy5zaWRlRWZmZWN0PXIuc2lkZUVmZmVjdCx0aGlzLmF1dG9QYXVzZU9wdGlvbj1yLmF1dG9QYXVzZT8/ITF9Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLnN0YXR1c1N1YmplY3QuZ2V0VmFsdWUoKX1nZXQgc3RhdHVzJCgpe3JldHVybiB0aGlzLnN0YXR1c1N1YmplY3QuYXNPYnNlcnZhYmxlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc3RhcnQgYSBkaXNwb3NlZCBwcm9jZXNzIik7dGhpcy5zdGF0dXMhPT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicnVubmluZyIpLHRoaXMuc3Vic2NyaWJlUHJvZHVjZXIoKSx0aGlzLnNldHVwQXV0b1BhdXNlKCkpfXBhdXNlKCl7aWYodGhpcy5zdGF0dXM9PT0iZGlzcG9zZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBhdXNlIGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzPT09InJ1bm5pbmciJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInBhdXNlZCIpLHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzdW1lIGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzPT09InBhdXNlZCImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicnVubmluZyIpLHRoaXMuc3Vic2NyaWJlUHJvZHVjZXIoKSl9ZGlzcG9zZSgpe3RoaXMuc3RhdHVzIT09ImRpc3Bvc2VkIiYmKHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpLHRoaXMudGVhcmRvd25BdXRvUGF1c2UoKSx0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgiZGlzcG9zZWQiKSx0aGlzLnN0YXR1c1N1YmplY3QuY29tcGxldGUoKSx0aGlzLnN0YXRlUGFydFJlZi5fcmVtb3ZlUHJvY2Vzcyh0aGlzKSl9c3Vic2NyaWJlUHJvZHVjZXIoKXt0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKTtsZXQgZT10aGlzLnByb2R1Y2VyRm4oKTt0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPWUuc3Vic2NyaWJlKHtuZXh0Omkocj0+e3RoaXMucHJvY2Vzc2luZ1F1ZXVlPXRoaXMucHJvY2Vzc2luZ1F1ZXVlLnRoZW4oYXN5bmMoKT0+e3RyeXtpZih0aGlzLnNpZGVFZmZlY3QpYXdhaXQgdGhpcy5zaWRlRWZmZWN0KHIpO2Vsc2UgaWYodGhpcy5yZWR1Y2VyKXtsZXQgYT10aGlzLnN0YXRlUGFydFJlZi5nZXRTdGF0ZSgpO2EhPT12b2lkIDAmJmF3YWl0IHRoaXMuc3RhdGVQYXJ0UmVmLnNldFN0YXRlKHRoaXMucmVkdWNlcihhLHIpKX19Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiU3RhdGVQcm9jZXNzIHZhbHVlIGhhbmRsaW5nIGVycm9yOiIsYSl9fSl9LCJuZXh0IiksZXJyb3I6aShyPT57Y29uc29sZS5lcnJvcigiU3RhdGVQcm9jZXNzIHByb2R1Y2VyIGVycm9yOiIsciksdGhpcy5zdGF0dXM9PT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicGF1c2VkIiksdGhpcy51bnN1YnNjcmliZVByb2R1Y2VyKCkpfSwiZXJyb3IiKX0pfXVuc3Vic2NyaWJlUHJvZHVjZXIoKXt0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uJiYodGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMucHJvZHVjZXJTdWJzY3JpcHRpb249bnVsbCl9c2V0dXBBdXRvUGF1c2UoKXtpZih0aGlzLnRlYXJkb3duQXV0b1BhdXNlKCksIXRoaXMuYXV0b1BhdXNlT3B0aW9uKXJldHVybjtsZXQgZT10aGlzLmF1dG9QYXVzZU9wdGlvbj09PSJ2aXNpYmlsaXR5Ij9yTGEoKTp0aGlzLmF1dG9QYXVzZU9wdGlvbjt0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbj1lLnN1YnNjcmliZShyPT57IXImJnRoaXMuc3RhdHVzPT09InJ1bm5pbmciP3RoaXMucGF1c2UoKTpyJiZ0aGlzLnN0YXR1cz09PSJwYXVzZWQiJiZ0aGlzLnJlc3VtZSgpfSl9dGVhcmRvd25BdXRvUGF1c2UoKXt0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbiYmKHRoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249bnVsbCl9fX0pO2Z1bmN0aW9uIGFMYSh0KXtyZXR1cm4gbmV3IGxyKGU9PntpZih0LmFib3J0ZWQpe2UubmV4dCgpLGUuY29tcGxldGUoKTtyZXR1cm59bGV0IHI9aSgoKT0+e2UubmV4dCgpLGUuY29tcGxldGUoKX0sImhhbmRsZXIiKTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsciksKCk9PnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHIpfSl9dmFyIG5fLHIzZT11KCgpPT57dDNlKCk7SngoKTtBJGUoKTtFJGUoKTtpKGFMYSwiZnJvbUFib3J0U2lnbmFsIik7bl89Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTdGF0ZVBhcnQiKX1zdGF0aWN7dGhpcy5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIPTEwfWNvbnN0cnVjdG9yKGUscil7dGhpcy5zdGF0ZT1uZXcgVngodm9pZCAwKSx0aGlzLmRpc3Bvc2VkPSExLHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkPSR0LmN1bXVsYXRpdmVEZWZlcigpLHRoaXMubXV0YXRpb25RdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5wcm9jZXNzZXM9W10sdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLm5hbWU9ZSxyJiYodGhpcy53ZWJTdG9yZU9wdGlvbnM9cil9YXN5bmMgaW5pdCgpe2lmKHRoaXMud2ViU3RvcmVPcHRpb25zKXt0aGlzLndlYlN0b3JlPW5ldyBRMi5XZWJTdG9yZSh0aGlzLndlYlN0b3JlT3B0aW9ucyksYXdhaXQgdGhpcy53ZWJTdG9yZS5pbml0KCk7bGV0IGU9YXdhaXQgdGhpcy53ZWJTdG9yZS5nZXQoU3RyaW5nKHRoaXMubmFtZSkpO2UmJnRoaXMudmFsaWRhdGVTdGF0ZShlKSYmKHRoaXMuc3RhdGVTdG9yZT1lLGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCkpfX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlU3RvcmV9YWRkTWlkZGxld2FyZShlKXtyZXR1cm4gdGhpcy5taWRkbGV3YXJlcy5wdXNoKGUpLCgpPT57bGV0IHI9dGhpcy5taWRkbGV3YXJlcy5pbmRleE9mKGUpO3IhPT0tMSYmdGhpcy5taWRkbGV3YXJlcy5zcGxpY2UociwxKX19YXN5bmMgc2V0U3RhdGUoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO3JldHVybiB0aGlzLm11dGF0aW9uUXVldWU9dGhpcy5tdXRhdGlvblF1ZXVlLnRoZW4oKCk9PnRoaXMuYXBwbHlTdGF0ZShlKSwoKT0+dGhpcy5hcHBseVN0YXRlKGUpKX1hc3luYyBhcHBseVN0YXRlKGUpe2xldCByPWU7Zm9yKGxldCBhIG9mIHRoaXMubWlkZGxld2FyZXMpcj1hd2FpdCBhKHIsdGhpcy5zdGF0ZVN0b3JlKTtpZighdGhpcy52YWxpZGF0ZVN0YXRlKHIpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGF0ZSBzdHJ1Y3R1cmUgZm9yIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSdgKTtyZXR1cm4gdGhpcy53ZWJTdG9yZSYmYXdhaXQgdGhpcy53ZWJTdG9yZS5zZXQoU3RyaW5nKHRoaXMubmFtZSksciksdGhpcy5zdGF0ZVN0b3JlPXIsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSx0aGlzLnN0YXRlU3RvcmV9dmFsaWRhdGVTdGF0ZShlKXtyZXR1cm4gZSE9bnVsbH1hc3luYyBub3RpZnlDaGFuZ2UoKXtsZXQgZT10aGlzLnN0YXRlU3RvcmU7aWYoZT09PXZvaWQgMClyZXR1cm47aWYodGhpcy5zbWFydHN0YXRlUmVmPy5pc0JhdGNoaW5nKXt0aGlzLnNtYXJ0c3RhdGVSZWYucmVnaXN0ZXJQZW5kaW5nTm90aWZpY2F0aW9uKHRoaXMpO3JldHVybn1sZXQgcj1pKGFzeW5jIGE9PmF3YWl0IGlfLnNoYTI1NkZyb21TdHJpbmcoUXMuc3RhYmxlT25lV2F5U3RyaW5naWZ5KGEpKSwiY3JlYXRlU3RhdGVIYXNoIik7dHJ5e2xldCBhPWF3YWl0IHIoZSk7aWYodGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaCYmYT09PXRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gpcmV0dXJuO3RoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2g9YX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBTdGF0ZSBoYXNoIGNvbXB1dGF0aW9uIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxhKX10aGlzLnN0YXRlLm5leHQoZSl9bm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSgpe3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJmNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPXNldFRpbWVvdXQoKCk9Pnt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy5zdGF0ZVN0b3JlIT09dm9pZCAwJiZ0aGlzLm5vdGlmeUNoYW5nZSgpLmNhdGNoKGU9Pntjb25zb2xlLmVycm9yKGBub3RpZnlDaGFuZ2VDdW11bGF0aXZlIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxlKX0pfSwwKX1zZWxlY3QoZSxyKXtsZXQgYT1yPy5zaWduYWwhPW51bGw7aWYoIWEpe2lmKGUpe2lmKHRoaXMuc2VsZWN0b3JDYWNoZS5oYXMoZSkpcmV0dXJuIHRoaXMuc2VsZWN0b3JDYWNoZS5nZXQoZSl9ZWxzZSBpZih0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlKXJldHVybiB0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlfWxldCBzPWV8fChjPT5jKSxuPVN5bWJvbCgic2VsZWN0b3ItZXJyb3IiKSxvPXRoaXMuc3RhdGUucGlwZSgkYS5yeGpzLm9wcy5maWx0ZXIoYz0+YyE9PXZvaWQgMCksJGEucnhqcy5vcHMubWFwKGM9Pnt0cnl7cmV0dXJuIHMoYyl9Y2F0Y2goZCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYFNlbGVjdG9yIGVycm9yIGluIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSc6YCxkKSxufX0pLCRhLnJ4anMub3BzLmZpbHRlcihjPT5jIT09biksUXgoKGMsZCk9PkpTT04uc3RyaW5naWZ5KGMpPT09SlNPTi5zdHJpbmdpZnkoZCkpKTtpZihhKXJldHVybiBvPW8ucGlwZShYeChhTGEoci5zaWduYWwpKSksbztsZXQgbD1vLnBpcGUoUjJlKHtidWZmZXJTaXplOjEscmVmQ291bnQ6ITB9KSk7cmV0dXJuIGU/dGhpcy5zZWxlY3RvckNhY2hlLnNldChlLGwpOnRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bCxsfWNyZWF0ZUFjdGlvbihlKXtyZXR1cm4gbmV3IHNfKHRoaXMsZSl9Y3JlYXRlQWN0aW9uQ29udGV4dChlKXtsZXQgcj10aGlzO3JldHVybntkaXNwYXRjaDppKGFzeW5jKGEscyk9PntpZihlPj10Lk1BWF9ORVNURURfRElTUEFUQ0hfREVQVEgpdGhyb3cgbmV3IEVycm9yKGBNYXhpbXVtIG5lc3RlZCBhY3Rpb24gZGlzcGF0Y2ggZGVwdGggKCR7dC5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIfSkgZXhjZWVkZWQuIENoZWNrIGZvciBjaXJjdWxhciBhY3Rpb24gZGlzcGF0Y2hlcy5gKTtsZXQgbj1yLmNyZWF0ZUFjdGlvbkNvbnRleHQoZSsxKSxvPWF3YWl0IGEuYWN0aW9uRGVmKHIscyxuKTtyZXR1cm4gci5hcHBseVN0YXRlKG8pfSwiZGlzcGF0Y2giKX19YXN5bmMgZGlzcGF0Y2hBY3Rpb24oZSxyKXtpZih0aGlzLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcihgU3RhdGVQYXJ0ICcke3RoaXMubmFtZX0nIGhhcyBiZWVuIGRpc3Bvc2VkYCk7YXdhaXQgdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQucHJvbWlzZTtsZXQgYT1pKGFzeW5jKCk9PntsZXQgcz10aGlzLmNyZWF0ZUFjdGlvbkNvbnRleHQoMCksbj1hd2FpdCBlLmFjdGlvbkRlZih0aGlzLHIscyk7cmV0dXJuIHRoaXMuYXBwbHlTdGF0ZShuKX0sImV4ZWN1dGUiKTtyZXR1cm4gdGhpcy5tdXRhdGlvblF1ZXVlPXRoaXMubXV0YXRpb25RdWV1ZS50aGVuKGEsYSl9YXN5bmMgd2FpdFVudGlsUHJlc2VudChlLHIpe2xldCBhLHM7dHlwZW9mIHI9PSJudW1iZXIiP2E9cjpyJiYoYT1yLnRpbWVvdXRNcyxzPXIuc2lnbmFsKTtsZXQgbj0kdC5kZWZlcigpLG89dGhpcy5zZWxlY3QoZSksbD0hMTtpZihzPy5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiQWJvcnRlZCIpO2xldCBjPW8uc3Vic2NyaWJlKHA9PntwIT1udWxsJiYhbCYmKGw9ITAsbi5yZXNvbHZlKHApKX0pLGQ7YSYmKGQ9c2V0VGltZW91dCgoKT0+e2x8fChsPSEwLGMudW5zdWJzY3JpYmUoKSxuLnJlamVjdChuZXcgRXJyb3IoYHdhaXRVbnRpbFByZXNlbnQgdGltZWQgb3V0IGFmdGVyICR7YX1tc2ApKSl9LGEpKTtsZXQgZj1zPygpPT57bHx8KGw9ITAsYy51bnN1YnNjcmliZSgpLGQmJmNsZWFyVGltZW91dChkKSxuLnJlamVjdChuZXcgRXJyb3IoIkFib3J0ZWQiKSkpfTp2b2lkIDA7cyYmZiYmcy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZik7dHJ5e3JldHVybiBhd2FpdCBuLnByb21pc2V9ZmluYWxseXtjLnVuc3Vic2NyaWJlKCksZCYmY2xlYXJUaW1lb3V0KGQpLHMmJmYmJnMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGYpfX1hc3luYyBzdGF0ZVNldHVwKGUpe2xldCByPWUodGhpcyk7dGhpcy5jdW11bGF0aXZlRGVmZXJyZWQuYWRkUHJvbWlzZShyKSxhd2FpdCB0aGlzLnNldFN0YXRlKGF3YWl0IHIpfWNyZWF0ZVByb2Nlc3MoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2xldCByPW5ldyBmeSh0aGlzLGUpO3JldHVybiB0aGlzLnByb2Nlc3Nlcy5wdXNoKHIpLGUuYXV0b1N0YXJ0JiZyLnN0YXJ0KCkscn1jcmVhdGVTY2hlZHVsZWRBY3Rpb24oZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2xldCByPW5ldyBmeSh0aGlzLHtwcm9kdWNlcjppKCgpPT5LU2UoZS5pbnRlcnZhbE1zKSwicHJvZHVjZXIiKSxzaWRlRWZmZWN0OmkoYXN5bmMoKT0+e2F3YWl0IGUuYWN0aW9uLnRyaWdnZXIoZS5wYXlsb2FkKX0sInNpZGVFZmZlY3QiKSxhdXRvUGF1c2U6ZS5hdXRvUGF1c2U/PyExfSk7cmV0dXJuIHRoaXMucHJvY2Vzc2VzLnB1c2gociksci5zdGFydCgpLHJ9X3JlbW92ZVByb2Nlc3MoZSl7bGV0IHI9dGhpcy5wcm9jZXNzZXMuaW5kZXhPZihlKTtyIT09LTEmJnRoaXMucHJvY2Vzc2VzLnNwbGljZShyLDEpfWRpc3Bvc2UoKXtpZighdGhpcy5kaXNwb3NlZCl7dGhpcy5kaXNwb3NlZD0hMDtmb3IobGV0IGUgb2ZbLi4udGhpcy5wcm9jZXNzZXNdKWUuZGlzcG9zZSgpO3RoaXMucHJvY2Vzc2VzLmxlbmd0aD0wLHRoaXMuc3RhdGUuY29tcGxldGUoKSx0aGlzLm11dGF0aW9uUXVldWU9UHJvbWlzZS5yZXNvbHZlKCksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiYmKGNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwpLHRoaXMubWlkZGxld2FyZXMubGVuZ3RoPTAsdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLndlYlN0b3JlPW51bGwsdGhpcy5zbWFydHN0YXRlUmVmPXZvaWQgMCx0aGlzLnN0YXRlU3RvcmU9dm9pZCAwfX19fSk7ZnVuY3Rpb24gSSRlKHQsZSl7cmV0dXJuIEdTZSh0Lm1hcChyPT5yLnNlbGVjdCgpKSkucGlwZShEMChyPT5lKC4uLnIpKSxReCgocixhKT0+SlNPTi5zdHJpbmdpZnkocik9PT1KU09OLnN0cmluZ2lmeShhKSkpfXZhciBQJGU9dSgoKT0+e3QzZSgpO0p4KCk7aShJJGUsImNvbXB1dGVkIil9KTt2YXIgTiRlLGtvcj11KCgpPT57dDNlKCk7cjNlKCk7UCRlKCk7TiRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0c3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uPW5ldyBNYXAsdGhpcy5iYXRjaERlcHRoPTAsdGhpcy5pc0ZsdXNoaW5nPSExLHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnM9bmV3IFNldH1nZXQgaXNCYXRjaGluZygpe3JldHVybiB0aGlzLmJhdGNoRGVwdGg+MH1yZWdpc3RlclBlbmRpbmdOb3RpZmljYXRpb24oZSl7dGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5hZGQoZSl9YXN5bmMgYmF0Y2goZSl7dGhpcy5iYXRjaERlcHRoKys7dHJ5e2F3YWl0IGUoKX1maW5hbGx5e2lmKHRoaXMuYmF0Y2hEZXB0aC0tLHRoaXMuYmF0Y2hEZXB0aD09PTAmJiF0aGlzLmlzRmx1c2hpbmcpe3RoaXMuaXNGbHVzaGluZz0hMDt0cnl7Zm9yKDt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLnNpemU+MDspe2xldCByPVsuLi50aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zXTt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmNsZWFyKCk7Zm9yKGxldCBhIG9mIHIpdHJ5e2F3YWl0IGEubm90aWZ5Q2hhbmdlKCl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcigiRXJyb3IgZmx1c2hpbmcgbm90aWZpY2F0aW9uIGZvciBzdGF0ZSBwYXJ0OiIscyl9fX1maW5hbGx5e3RoaXMuaXNGbHVzaGluZz0hMX19fX1jb21wdXRlZChlLHIpe3JldHVybiBJJGUoZSxyKX1kaXNwb3NlKCl7Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKHRoaXMuc3RhdGVQYXJ0TWFwKSl7bGV0IHI9dGhpcy5zdGF0ZVBhcnRNYXBbZV07ciYmci5kaXNwb3NlKCl9dGhpcy5zdGF0ZVBhcnRNYXA9e30sdGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uY2xlYXIoKSx0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmNsZWFyKCl9YXN5bmMgZ2V0U3RhdGVQYXJ0KGUscixhPSJzb2Z0Iil7bGV0IHM9dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZ2V0KGUpO2lmKHMpcmV0dXJuIHM7bGV0IG49dGhpcy5zdGF0ZVBhcnRNYXBbZV07aWYobilzd2l0Y2goYSl7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOm4uZGlzcG9zZSgpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG59ZWxzZSBpZihyPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgZG9lcyBub3QgZXhpc3QgYW5kIG5vIGluaXRpYWwgc3RhdGUgcHJvdmlkZWRgKTtsZXQgbz10aGlzLmNyZWF0ZVN0YXRlUGFydChlLHIsYSk7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uc2V0KGUsbyk7dHJ5e3JldHVybiBhd2FpdCBvfWZpbmFsbHl7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZGVsZXRlKGUpfX1hc3luYyBjcmVhdGVTdGF0ZVBhcnQoZSxyLGE9InNvZnQiKXtsZXQgcz1uZXcgbl8oZSxhPT09InBlcnNpc3RlbnQiP3tkYk5hbWU6InNtYXJ0c3RhdGUiLHN0b3JlTmFtZTplfTp2b2lkIDApO3Muc21hcnRzdGF0ZVJlZj10aGlzLGF3YWl0IHMuaW5pdCgpO2xldCBuPXMuZ2V0U3RhdGUoKTtyZXR1cm4gYT09PSJwZXJzaXN0ZW50IiYmbiE9PXZvaWQgMD9hd2FpdCBzLnNldFN0YXRlKHsuLi5yLC4uLm59KTphd2FpdCBzLnNldFN0YXRlKHIpLHRoaXMuc3RhdGVQYXJ0TWFwW2VdPXMsc319fSk7ZnVuY3Rpb24gaUxhKHQsZSl7bGV0e2NvbnRleHQ6cixzdGF0ZVBhcnQ6YSxzZWxlY3RvckZuOnN9PWUsbj1uZXcgU2V0LG89YS5zZWxlY3Qocykuc3Vic2NyaWJlKGQ9Pntmb3IobGV0IGYgb2YgbilmKGQpfSksbD1pKCgpPT57bGV0IGQ9YS5nZXRTdGF0ZSgpO2lmKGQhPT12b2lkIDApcmV0dXJuIHM/cyhkKTpkfSwiZ2V0VmFsdWUiKSxjPWkoZD0+e2xldCBmPWQscD1mLmRldGFpbDtpZighKCFwfHxwLmNvbnRleHQhPT1yKSlpZihmLnN0b3BQcm9wYWdhdGlvbigpLHAuc3Vic2NyaWJlKXtsZXQgaD1wLmNhbGxiYWNrO24uYWRkKGgpO2xldCBtPWkoKCk9Pm4uZGVsZXRlKGgpLCJ1bnN1YnNjcmliZSIpO2gobCgpLG0pfWVsc2UgcC5jYWxsYmFjayhsKCkpfSwiaGFuZGxlciIpO3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHQtcmVxdWVzdCIsYyksKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHQtcmVxdWVzdCIsYyksby51bnN1YnNjcmliZSgpLG4uY2xlYXIoKX19dmFyIFNvcj11KCgpPT57aShpTGEsImF0dGFjaENvbnRleHRQcm92aWRlciIpfSk7dmFyIEs2PXt9O1ZlKEs2LHtTbWFydHN0YXRlOigpPT5OJGUsU3RhdGVBY3Rpb246KCk9PnNfLFN0YXRlUGFydDooKT0+bl8sU3RhdGVQcm9jZXNzOigpPT5meSxhdHRhY2hDb250ZXh0UHJvdmlkZXI6KCk9PmlMYSxjb21wdXRlZDooKT0+SSRlfSk7dmFyIE1vcj11KCgpPT57a29yKCk7cjNlKCk7QSRlKCk7UCRlKCk7U29yKCk7RSRlKCl9KTt2YXIgQ29yPXUoKCk9Pnt9KTt2YXIgTyRlLHpvcj11KCgpPT57Q29yKCk7TyRlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiU21hcnR1cmwiKX1zdGF0aWMgY3JlYXRlRnJvbVVybChlLHIpe2xldCBhPW5ldyBVUkwoZSkscz17fSxuPVtdO2Euc2VhcmNoJiZhLnNlYXJjaC5yZXBsYWNlKCI/IiwiIikuc3BsaXQoIiYiKS5tYXAoZD0+e24ucHVzaCh7a2V5OmQuc3BsaXQoIj0iKVswXSx2YWx1ZTpkLnNwbGl0KCI9IilbMV19KX0pO2ZvcihsZXQgZCBvZiBuKXNbZC5rZXldPWQudmFsdWU7aWYocj8uc2VhcmNoUGFyYW1zKWZvcihsZXQgZCBvZiBPYmplY3Qua2V5cyhyLnNlYXJjaFBhcmFtcykpc1tkXT1yLnNlYXJjaFBhcmFtc1tkXTtsZXQgbz1hLnBhdGhuYW1lfHwiIjtpZihPYmplY3Qua2V5cyhzKS5sZW5ndGg+MCl7bys9Ij8iO2xldCBkPSEwO2ZvcihsZXQgZiBvZiBPYmplY3Qua2V5cyhzKSlkP2Q9ITE6bys9IiYiLG8rPWAke2Z9PSR7c1tmXX1gfWxldCBsPXsuLi5hLGhyZWY6YS5ocmVmLG9yaWdpbjphLm9yaWdpbixwcm90b2NvbDphLnByb3RvY29sLHVzZXJuYW1lOmEudXNlcm5hbWUscGFzc3dvcmQ6YS5wYXNzd29yZCxob3N0OmEuaG9zdCxob3N0bmFtZTphLmhvc3RuYW1lLHBvcnQ6YS5wb3J0LHBhdGg6byxwYXRobmFtZTphLnBhdGhuYW1lLHNlYXJjaDphLnNlYXJjaCxzZWFyY2hQYXJhbXM6cyxoYXNoOmEuaGFzaH07IWwucG9ydCYmbC5wcm90b2NvbD09PSJodHRwczoiJiYobC5wb3J0PSI0NDMiKSwhbC5wb3J0JiZsLnByb3RvY29sPT09Imh0dHA6IiYmKGwucG9ydD0iODAiKTtsZXQgYz1uZXcgdDtyZXR1cm4gT2JqZWN0LmFzc2lnbihjLGwpLGN9c3RhdGljIGNyZWF0ZUZyb21QYXJzZWRVcmwoZSl7bGV0IHI9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24ocixlKSxyfWNvbnN0cnVjdG9yKCl7dGhpcy5zZWFyY2hQYXJhbXM9e319Y2xvbmUoKXtsZXQgZT1uZXcgdDtyZXR1cm4gT2JqZWN0LmFzc2lnbihlLHRoaXMpLGUuc2VhcmNoUGFyYW1zPXsuLi50aGlzLnNlYXJjaFBhcmFtc30sZX1zZXQoZSxyKXtyZXR1cm4gdGhpc1tlXT1yLHRoaXN9dG9TdHJpbmcoKXtsZXQgZT0iIjtyZXR1cm4gdGhpcy51c2VybmFtZSYmIXRoaXMucGFzc3dvcmQmJihlPWAke3RoaXMudXNlcm5hbWV9QGApLHRoaXMudXNlcm5hbWUmJnRoaXMucGFzc3dvcmQmJihlPWAke3RoaXMudXNlcm5hbWV9OiR7dGhpcy5wYXNzd29yZH1AYCksYCR7dGhpcy5wcm90b2NvbH0vLyR7ZX0ke3RoaXMuaG9zdG5hbWV9OiR7dGhpcy5wb3J0fSR7dGhpcy5wYXRofWB9fX0pO3ZhciBaNj17fTtWZShaNix7U21hcnR1cmw6KCk9Pk8kZX0pO3ZhciBfb3I9dSgoKT0+e3pvcigpfSk7dmFyIGEzZSxRNixpM2U9dSgoKT0+e2EzZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEZWZlcnJlZCIpfWNsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxyKT0+e3RoaXMucmVzb2x2ZT1hPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKGEpfSx0aGlzLnJlamVjdD1hPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLHIoYSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxRNj1pKCgpPT5uZXcgYTNlLCJkZWZlciIpfSk7dmFyIHMzZSxzTGEsVG9yPXUoKCk9PntpM2UoKTtzM2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQ3VtdWxhdGl2ZURlZmVycmVkIil9Y29uc3RydWN0b3IoKXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXM9W10sdGhpcy5kZWZlcnJlZD1RNigpLHRoaXMucHJvbWlzZT10aGlzLmRlZmVycmVkLnByb21pc2Usc2V0VGltZW91dChhc3luYygpPT57Zm9yKDt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMubGVuZ3RoPjA7KWF3YWl0IHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5zaGlmdCgpO3RoaXMuZGVmZXJyZWQucmVzb2x2ZSgpfSwwKX1hZGRQcm9taXNlKGUpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5wdXNoKGUpfX0sc0xhPWkoKCk9Pm5ldyBzM2UsImN1bXVsYXRpdmVEZWZlciIpfSk7dmFyIFg2PXt9O1ZlKFg2LHtDdW11bGF0aXZlRGVmZXJyZWQ6KCk9PnMzZSxEZWZlcnJlZDooKT0+YTNlLGN1bXVsYXRpdmVEZWZlcjooKT0+c0xhLGRlZmVyOigpPT5RNixnZXRGaXJzdFRydWVPckZhbHNlOigpPT5kTGEsbWFwOigpPT5sTGEscmVqZWN0ZWRQcm9taXNlOigpPT5vTGEscmVzb2x2ZWRQcm9taXNlOigpPT5uTGEsdGltZW91dEFuZENvbnRpbnVlOigpPT5jTGEsdGltZW91dFdyYXA6KCk9Pkxvcn0pO3ZhciBuTGEsb0xhLGxMYSxMb3IsY0xhLGRMYSxSJGU9dSgoKT0+e2kzZSgpO1RvcigpO2kzZSgpO25MYT1pKHQ9PlByb21pc2UucmVzb2x2ZSh0KSwicmVzb2x2ZWRQcm9taXNlIiksb0xhPWkodD0+UHJvbWlzZS5yZWplY3QodCksInJlamVjdGVkUHJvbWlzZSIpLGxMYT1pKGFzeW5jKHQsZSk9PntsZXQgcj1bXSxhPVtdO2ZvcihsZXQgcyBvZiB0KXtsZXQgbj1lKHMpO3IucHVzaChuKSxuLnRoZW4obz0+e2EucHVzaChvKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKSxhfSwibWFwIiksTG9yPWkoYXN5bmModCxlLHI9ITApPT5uZXcgUHJvbWlzZSgoYSxzKT0+e3NldFRpbWVvdXQoKCk9PntyP3MobmV3IEVycm9yKCJ0aW1lb3V0IikpOmEobnVsbCl9LGUpLHQudGhlbihhLHMpfSksInRpbWVvdXRXcmFwIiksY0xhPWkoYXN5bmModCxlPTZlNCk9Pkxvcih0LGUsITEpLCJ0aW1lb3V0QW5kQ29udGludWUiKSxkTGE9aShhc3luYyB0PT57bGV0IGU9UTYoKTtmb3IobGV0IHIgb2YgdClyLnRoZW4oYT0+e2E9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX0sImdldEZpcnN0VHJ1ZU9yRmFsc2UiKX0pO3ZhciBGJGU9e307VmUoRiRlLHtUaW1lb3V0OigpPT5uM2UsZGVsYXlGb3I6KCk9PkRvcixkZWxheUZvclJhbmRvbTooKT0+dUxhfSk7dmFyIERvcix1TGEsbjNlLCRvcj11KCgpPT57UiRlKCk7RG9yPWkoYXN5bmModCxlLHI9ITEpPT4oYXdhaXQgbmV3IG4zZSh0LG51bGwscikucHJvbWlzZSxlKSwiZGVsYXlGb3IiKSx1TGE9aShhc3luYyh0LGUscixhPSExKT0+KGF3YWl0IERvcihNYXRoLnJhbmRvbSgpKihlLXQpK3QsbnVsbCxhKSxyKSwiZGVsYXlGb3JSYW5kb20iKSxuM2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVGltZW91dCIpfWNvbnN0cnVjdG9yKGUscixhPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9ZSx0aGlzLl9kZWZlcnJlZD1RNigpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShyKX0sZSksdGhpcy5zdGFydGVkPURhdGUubm93KCksYSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgZT10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gZT4wP2U6MH19fSk7dmFyIEFvcj11KCgpPT57fSk7dmFyIG8zZT11KCgpPT57ZWQoKX0pO3ZhciBsM2U9dSgoKT0+e2VkKCk7ZWQoKX0pO3ZhciBFb3I9dSgoKT0+e2VkKCl9KTt2YXIgSW9yPXUoKCk9Pnt9KTt2YXIgUG9yPXUoKCk9PntlZCgpfSk7dmFyIE5vcj11KCgpPT57ZWQoKX0pO3ZhciBPb3I9dSgoKT0+e30pO3ZhciBSb3I9dSgoKT0+e30pO3ZhciBCJGU9e307dmFyIGMzZT11KCgpPT57RW9yKCk7SW9yKCk7UG9yKCk7Tm9yKCk7T29yKCk7Um9yKCl9KTt2YXIgSCRlLEZvcj11KCgpPT57YzNlKCk7bzNlKCk7bDNlKCk7SCRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIklKb2IiKX19fSk7dmFyIEJvcj11KCgpPT57fSk7dmFyIEhvcj11KCgpPT57fSk7dmFyIHFvcj11KCgpPT57fSk7dmFyIFZvcj11KCgpPT57fSk7dmFyIHEkZT17fTt2YXIgViRlPXUoKCk9PntCb3IoKTtIb3IoKTtxb3IoKTtWb3IoKX0pO3ZhciBqb3I9dSgoKT0+e2okZSgpO2MzZSgpO1YkZSgpfSk7dmFyIFVvcj11KCgpPT57fSk7dmFyIFdvcj11KCgpPT57bDNlKCl9KTt2YXIgR29yPXUoKCk9Pnt9KTt2YXIgZDNlPXt9O1ZlKGQzZSx7SUpvYjooKT0+SCRlfSk7dmFyIGokZT11KCgpPT57QW9yKCk7bzNlKCk7bDNlKCk7Rm9yKCk7am9yKCk7VW9yKCk7V29yKCk7R29yKCl9KTt2YXIgWW9yPXUoKCk9Pnt9KTt2YXIgS29yPXUoKCk9Pnt9KTt2YXIgVSRlPXt9O3ZhciBab3I9dSgoKT0+e1lvcigpO0tvcigpfSk7dmFyIFFvcj11KCgpPT57fSk7dmFyIFhvcj11KCgpPT57fSk7dmFyIFckZT17fTt2YXIgSm9yPXUoKCk9PntRb3IoKTtYb3IoKX0pO3ZhciBHJGU9dSgoKT0+e2VkKCl9KTt2YXIgZTFyPXUoKCk9PntlZCgpfSk7dmFyIHQxcj11KCgpPT57RyRlKCl9KTt2YXIgWSRlPXt9O3ZhciByMXI9dSgoKT0+e0ckZSgpO2UxcigpO3QxcigpfSk7dmFyIGExcj11KCgpPT57fSk7dmFyIGkxcj11KCgpPT57fSk7dmFyIEskZT17fTt2YXIgczFyPXUoKCk9PnthMXIoKTtpMXIoKX0pO3ZhciBaJGU9dSgoKT0+e30pO3ZhciBRJGUsbjFyPXUoKCk9PntaJGUoKTtRJGU9Y2xhc3N7c3RhdGlje2kodGhpcywiSUNuYW1lRGVzY3JpcHRvciIpfX19KTt2YXIgbzFyPXUoKCk9Pnt9KTt2YXIgbDFyPXUoKCk9Pnt9KTt2YXIgYzFyPXUoKCk9Pnt9KTt2YXIgZDFyPXUoKCk9Pnt9KTt2YXIgdTFyPXUoKCk9Pnt9KTt2YXIgcDFyPXUoKCk9Pnt9KTt2YXIgZjFyPXUoKCk9Pnt9KTt2YXIgaDFyPXUoKCk9Pnt9KTt2YXIgbTFyPXUoKCk9Pnt9KTt2YXIgdTNlPXt9O1ZlKHUzZSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+USRlfSk7dmFyIGcxcj11KCgpPT57WiRlKCk7bjFyKCk7bzFyKCk7bDFyKCk7YzFyKCk7ZDFyKCk7dTFyKCk7cDFyKCk7ZjFyKCk7aDFyKCk7bTFyKCl9KTt2YXIgWCRlPXUoKCk9PntvM2UoKX0pO3ZhciBiMXI9dSgoKT0+e1gkZSgpfSk7dmFyIEokZT17fTt2YXIgeDFyPXUoKCk9PntiMXIoKTtYJGUoKX0pO3ZhciBlQWU9e307dmFyIHYxcj11KCgpPT57fSk7dmFyIHkxcj11KCgpPT57fSk7dmFyIHcxcj11KCgpPT57fSk7dmFyIGsxcj11KCgpPT57fSk7dmFyIHRBZT17fTt2YXIgUzFyPXUoKCk9Pnt5MXIoKTt3MXIoKTtrMXIoKX0pO3ZhciBNMXI9dSgoKT0+e30pO3ZhciByQWU9e307VmUockFlLHtidXNpbmVzczooKT0+ZDNlLGNvZGU6KCk9PlUkZSxjb250YWluZXI6KCk9PlckZSxjb250ZW50OigpPT5ZJGUsZGF0YWJhc2U6KCk9PnEkZSxmaW5hbmNlOigpPT5CJGUsZ2VuZXJhbDooKT0+SyRlLG5ldHdvcms6KCk9PnUzZSxzYWFzOigpPT5KJGUsc3RvcmFnZTooKT0+ZUFlLHdlYnNpdGU6KCk9PnRBZX0pO3ZhciBlZD11KCgpPT57aiRlKCk7Wm9yKCk7Sm9yKCk7ViRlKCk7YzNlKCk7cjFyKCk7czFyKCk7ZzFyKCk7eDFyKCk7djFyKCk7UzFyKCk7TTFyKCl9KTt2YXIgSTQ9dSgoKT0+eyRvcigpO1IkZSgpO2VkKCl9KTt2YXIgcDNlPXUoKCk9PntJNCgpfSk7dmFyIENwLG9fPXUoKCk9PntJNCgpO0NwPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZyIpfWFwcGVuZFRvRG9tKCl7IXRoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50JiYhdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUmJmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmKX1yZW1vdmVGcm9tRG9tKCl7dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQ/dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKTp0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKX19fSk7dmFyIEo2LGYzZT11KCgpPT57STQoKTtwM2UoKTtvXygpO0o2PWNsYXNzIHQgZXh0ZW5kcyBDcHtzdGF0aWN7aSh0aGlzLCJKc29uTGRUYWciKX1zdGF0aWMgY3JlYXRlQ29tcGFueUpzb25MZChlKXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJDb3Jwb3JhdGlvbiIsbmFtZTplLm5hbWUsYWx0ZXJuYXRlTmFtZTplLm5hbWUucmVwbGFjZSgiIEdtYkgiLCIiKSx1cmw6ZS5jb250YWN0LndlYnNpdGUsbG9nbzplLmNvbnRhY3QubG9nb1VybCxjb250YWN0UG9pbnQ6eyJAdHlwZSI6IkNvbnRhY3RQb2ludCIsdGVsZXBob25lOmUuY29udGFjdC5waG9uZSxjb250YWN0VHlwZToiY3VzdG9tZXIgc2VydmljZSIsYXJlYVNlcnZlZDoiREUiLGF2YWlsYWJsZUxhbmd1YWdlOlsiZW4iLCJHZXJtYW4iXX0sc2FtZUFzOltdfTtyZXR1cm4gZS5jb250YWN0LmZhY2Vib29rVXJsJiZyLnNhbWVBcy5wdXNoKGUuY29udGFjdC5mYWNlYm9va1VybCksZS5jb250YWN0LnR3aXR0ZXJVcmwmJnIuc2FtZUFzLnB1c2goZS5jb250YWN0LnR3aXR0ZXJVcmwpLG5ldyB0KHIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZUpzb25MZChlKXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJOZXdzQXJ0aWNsZSIsbWFpbkVudGl0eU9mUGFnZTp7IkB0eXBlIjoiV2ViUGFnZSIsIkBpZCI6d2luZG93LmxvY2F0aW9uLmhyZWZ9LGhlYWRsaW5lOiJBcnRpY2xlIGhlYWRsaW5lIixpbWFnZTpbZS5mZWF0dXJlZEltYWdlVXJsXSxkYXRlUHVibGlzaGVkOm5ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGRhdGVNb2RpZmllZDpuZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxhdXRob3I6eyJAdHlwZSI6IlBlcnNvbiIsbmFtZTpgJHtlLmF1dGhvci5maXJzdE5hbWV9ICR7ZS5hdXRob3Iuc3VyTmFtZX1gfSxwdWJsaXNoZXI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsbmFtZTplLmF1dGhvci5zdXJOYW1lLGxvZ286eyJAdHlwZSI6IkltYWdlT2JqZWN0Iix1cmw6ZS5hdXRob3Iuc3VyTmFtZX19LGRlc2NyaXB0aW9uOmUuYXV0aG9yLmZpcnN0TmFtZX07cmV0dXJuIG5ldyB0KHIpfXN0YXRpYyBjcmVhdGVQcm9kdWN0SnNvbkxkKGUscil7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiU29mdHdhcmVBcHBsaWNhdGlvbiIsbmFtZTplLm5hbWUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixvcGVyYXRpbmdTeXN0ZW06ZS5vcyxhcHBsaWNhdGlvbkNhdGVnb3J5OmUuY2F0ZWdvcnksb2ZmZXJzOnsiQHR5cGUiOiJPZmZlciIsbmFtZToiVXNlci1iYXNlZCBQbGFuIixwcmljZVNwZWNpZmljYXRpb246eyJAdHlwZSI6IlByb3BlcnR5VmFsdWVTcGVjaWZpY2F0aW9uIix2YWx1ZU5hbWU6Ik51bWJlciBvZiBVc2VycyIsdmFsdWVSZXF1aXJlZDohMCxwcmljZToiNC45OSIscHJpY2VDdXJyZW5jeToiRVVSIn19LHB1Ymxpc2hlcjp0aGlzLmNyZWF0ZUNvbXBhbnlKc29uTGQocikuZWxlbWVudFJlZi50ZXh0Q29udGVudCxzY3JlZW5zaG90OiJodHRwczovL3d3dy5zb2NpYWwuaW8vc2NyZWVuc2hvdC5wbmciLHVybDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvLyJ9O3JldHVybiBuZXcgdChhKX1jb25zdHJ1Y3RvcihlKXtzdXBlcigpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3IudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiIsci50ZXh0PUpTT04uc3RyaW5naWZ5KGUpLHRoaXMuZWxlbWVudFJlZj1yfX19KTt2YXIgQm8saDNlPXUoKCk9PntJNCgpO29fKCk7Qm89Y2xhc3MgdCBleHRlbmRzIENwe3N0YXRpY3tpKHRoaXMsIk9wZW5ncmFwaFRhZyIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhlKXtsZXQgcj1bXTtyZXR1cm4gci5wdXNoKG5ldyB0KCJvZzp1cmwiLGUudXJsKSksci5wdXNoKG5ldyB0KCJvZzp0aXRsZSIsZS50aXRsZSkpLHIucHVzaChuZXcgdCgib2c6ZGVzY3JpcHRpb24iLGUuY29udGVudCkpLHIucHVzaChuZXcgdCgib2c6aW1hZ2UiLGUuZmVhdHVyZWRJbWFnZVVybCkpLHJ9c3RhdGljIGNyZWF0ZVByb2R1Y3RPZ1RhZ3MoZSl7bGV0IHI9W107cmV0dXJuIHIucHVzaChuZXcgdCgib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSxyLnB1c2gobmV3IHQoIm9nOnRpdGxlIixgJHtlLm5hbWV9IC0gJHtlLnNsb2dhbn1gKSksci5wdXNoKG5ldyB0KCJvZzpzaXRlX25hbWUiLGUubmFtZSkpLHIucHVzaChuZXcgdCgib2c6ZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxyLnB1c2gobmV3IHQoIm9nOmltYWdlIixlLmxvZ29MaW5rKSkscn1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2Euc2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIsZSksYS5jb250ZW50PXIsdGhpcy5lbGVtZW50UmVmPWF9fX0pO3ZhciBoeSxhQWU9dSgoKT0+e29fKCk7ZjNlKCk7aDNlKCk7aUFlKCk7STQoKTtoeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUYWdMZXZlbCIpfXNldCB0aXRsZShlKXt0aGlzLnRpdGxlU3RvcmU9ZSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiYoZG9jdW1lbnQudGl0bGU9dGhpcy50aXRsZVN0b3JlKX1nZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy50aXRsZVN0b3JlfWNvbnN0cnVjdG9yKGUscil7dGhpcy50YWdzPVtdLHRoaXMuc3RhdGU9ImRpc2FibGVkIix0aGlzLnRhZ01hbmFnZXJSZWY9ZX1hZGRUYWcoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgciBvZiBlKXRoaXMuYWRkVGFnKHIpO2Vsc2UgdGhpcy50YWdzLnB1c2goZSksdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmZS5hcHBlbmRUb0RvbSgpfWFzeW5jIGFkZENvbXBhbnlJbmZvKGUpe3RoaXMuYWRkVGFnKEo2LmNyZWF0ZUNvbXBhbnlKc29uTGQoZSkpLHRoaXMuYWRkVGFnKG5ldyBCbygib2c6dHlwZSIsImJ1c2luZXNzLmJ1c2luZXNzIikpLHRoaXMuYWRkVGFnKG5ldyBCbygib2c6dGl0bGUiLGUubmFtZSkpLHRoaXMuYWRkVGFnKG5ldyBCbygib2c6dXJsIixlLmNvbnRhY3Qud2Vic2l0ZSkpLHRoaXMuYWRkVGFnKG5ldyBCbygib2c6aW1hZ2UiLGUuY29udGFjdC5sb2dvVXJsKSksdGhpcy5hZGRUYWcobmV3IEJvKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuY29udGFjdC5hZGRyZXNzLnN0cmVldE5hbWV9ICR7ZS5jb250YWN0LmFkZHJlc3MuaG91c2VOdW1iZXJ9YCkpLHRoaXMuYWRkVGFnKG5ldyBCbygiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmxvY2FsaXR5IixlLmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IEJvKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmNvbnRhY3QuYWRkcmVzcy5jaXR5KSksdGhpcy5hZGRUYWcobmV3IEJvKCJidXNpbmVzczpjb250YWN0X2RhdGE6cG9zdGFsX2NvZGUiLGUuY29udGFjdC5hZGRyZXNzLnBvc3RhbENvZGUpKSx0aGlzLmFkZFRhZyhuZXcgQm8oImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpjb3VudHJ5X25hbWUiLGUuY29udGFjdC5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcoSjYuY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKEJvLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLHIpe3RoaXMuYWRkVGFnKEo2LmNyZWF0ZVByb2R1Y3RKc29uTGQoZSxyKSksdGhpcy5hZGRUYWcoQm8uY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIEdsLHNBZT11KCgpPT57b18oKTtHbD1jbGFzcyBleHRlbmRzIENwe3N0YXRpY3tpKHRoaXMsIk1ldGFUYWciKX1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2EubmFtZT1lLGEuY29udGVudD1yLHRoaXMuZWxlbWVudFJlZj1hfX19KTt2YXIgbTNlLGlBZT11KCgpPT57YUFlKCk7STQoKTtwM2UoKTtzQWUoKTtmM2UoKTtoM2UoKTttM2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVGFnTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcgaHkodGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IGh5KHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cChlKXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IEdsKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgR2woInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksZS50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IEdsKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBHbCgidHdpdHRlcjpzaXRlIixlLnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgR2woInR3aXR0ZXI6Y3JlYXRvciIsZS50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBHbCgiZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxlLmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBHbCgiY2Fub25pY2FsIixlLmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKGUubGRDb21wYW55JiYhZS5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKGUubGRDb21wYW55KTticmVhaztjYXNlISFlLmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyhlLmxkUHJvZHVjdCxlLmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKGUpe2xldCByPW5ldyBoeSh0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHIudGl0bGU9ZS50aXRsZSxlLmRlc2NyaXB0aW9uJiZyLmFkZFRhZyhuZXcgR2woImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD1yLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCkscn1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBsXyxDMXI9dSgoKT0+e0k0KCk7cDNlKCk7aUFlKCk7YUFlKCk7bF89Y2xhc3N7c3RhdGlje2kodGhpcywiV2ViU2V0dXAiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRhZ01hbmFnZXI9bmV3IG0zZSx0aGlzLnJlYWR5RGVmZXJyZWQ9WDYuZGVmZXIoKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZD1YNi5kZWZlcigpLHRoaXMucmVhZHlQcm9taXNlPXRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMucmVhZHlGb3JTbWFydHNzclByb21pc2U9dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucHJvbWlzZSx0aGlzLm9wdGlvbnM9ZSx0aGlzLnNldHVwKCkudGhlbigoKT0+e3RoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9KX1hc3luYyBzZXR1cChlKXtlJiYodGhpcy5vcHRpb25zPWUpLGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXR1cCh0aGlzLm9wdGlvbnMubWV0YU9iamVjdCl9cmV2ZXJ0VG9CYXNlTGV2ZWwoKXt0aGlzLnRhZ01hbmFnZXIucmV2ZXJ0VG9CYXNlTGV2ZWwoKX1hc3luYyBzZXRTdWJMZXZlbChlKXtyZXR1cm4gYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldFN1YlBhZ2VMZXZlbChlKX1mbGFzaFRpdGxlKGUpe31pbmZvcm1SZWFkeUZvclNtYXJ0c3NyKCl7dGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHxjb25zb2xlLmVycm9yKCJZb3UgaGF2ZSBub3QgaW5kaWNhdGVkIHRoYXQgeW91IGluZm9ybSBzbWFydHNzciBieSBhIGRlZGljYXRlZCBzaWduYWwhIFBsZWFzZSBjb25zaWRlciBkb2luZyBzbyEiKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9fX0pO3ZhciBuQWUsejFyPXUoKCk9PntJNCgpO25BZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaXRsZSIpfX19KTt2YXIgb0FlPXt9O1ZlKG9BZSx7SnNvbkxkVGFnOigpPT5KNixNZXRhVGFnOigpPT5HbCxPcGVuZ3JhcGhUYWc6KCk9PkJvLFRpdGxlOigpPT5uQWUsV2ViU2V0dXA6KCk9PmxffSk7dmFyIGczZT11KCgpPT57QzFyKCk7c0FlKCk7aDNlKCk7ZjNlKCk7ejFyKCl9KTtmdW5jdGlvbiBfMXIodCxlLHIpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKGUscikpfWZ1bmN0aW9uIGhMYSh0LGUscil7cmV0dXJuKDEtcikqdCtyKmV9ZnVuY3Rpb24gbUxhKHQsZSxyLGEpe3JldHVybiBoTGEodCxlLDEtTWF0aC5leHAoLXIqYSkpfWZ1bmN0aW9uIGdMYSh0LGUpe3JldHVybih0JWUrZSklZX1mdW5jdGlvbiB4TGEodCxlKXtsZXQgcjtyZXR1cm4gZnVuY3Rpb24oLi4uYSl7bGV0IHM9dGhpcztjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KCgpPT57cj12b2lkIDAsdC5hcHBseShzLGEpfSxlKX19dmFyIGZMYSxiTGEsdkxhLFQxcixMMXIsenAseUxhLEQxcixjXywkMXI9dSgoKT0+e2ZMYT0iMS4zLjE3IjtpKF8xciwiY2xhbXAiKTtpKGhMYSwibGVycCIpO2kobUxhLCJkYW1wIik7aShnTGEsIm1vZHVsbyIpO2JMYT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJBbmltYXRlIil9aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKHQpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IGU9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPXQ7bGV0IHI9XzFyKDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO2U9cj49MTtsZXQgYT1lPzE6dGhpcy5lYXNpbmcocik7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSphfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPW1MYSh0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLHQpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApO2UmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLGUpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8odCxlLHtsZXJwOnIsZHVyYXRpb246YSxlYXNpbmc6cyxvblN0YXJ0Om4sb25VcGRhdGU6b30pe3RoaXMuZnJvbT10aGlzLnZhbHVlPXQsdGhpcy50bz1lLHRoaXMubGVycD1yLHRoaXMuZHVyYXRpb249YSx0aGlzLmVhc2luZz1zLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxuPy4oKSx0aGlzLm9uVXBkYXRlPW99fTtpKHhMYSwiZGVib3VuY2UiKTt2TGE9Y2xhc3N7c3RhdGlje2kodGhpcywiRGltZW5zaW9ucyIpfWNvbnN0cnVjdG9yKHQsZSx7YXV0b1Jlc2l6ZTpyPSEwLGRlYm91bmNlOmE9MjUwfT17fSl7dGhpcy53cmFwcGVyPXQsdGhpcy5jb250ZW50PWUsciYmKHRoaXMuZGVib3VuY2VkUmVzaXplPXhMYSh0aGlzLnJlc2l6ZSxhKSx0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpOih0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCkpLHRoaXMucmVzaXplKCl9d2lkdGg9MDtoZWlnaHQ9MDtzY3JvbGxIZWlnaHQ9MDtzY3JvbGxXaWR0aD0wO2RlYm91bmNlZFJlc2l6ZTt3cmFwcGVyUmVzaXplT2JzZXJ2ZXI7Y29udGVudFJlc2l6ZU9ic2VydmVyO2Rlc3Ryb3koKXt0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy53cmFwcGVyPT09d2luZG93JiZ0aGlzLmRlYm91bmNlZFJlc2l6ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpfXJlc2l6ZT1pKCgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfSwicmVzaXplIik7b25XcmFwcGVyUmVzaXplPWkoKCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9LCJvbldyYXBwZXJSZXNpemUiKTtvbkNvbnRlbnRSZXNpemU9aSgoKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfSwib25Db250ZW50UmVzaXplIik7Z2V0IGxpbWl0KCl7cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aC10aGlzLndpZHRoLHk6dGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5oZWlnaHR9fX0sVDFyPWNsYXNze3N0YXRpY3tpKHRoaXMsIkVtaXR0ZXIiKX1ldmVudHM9e307ZW1pdCh0LC4uLmUpe2xldCByPXRoaXMuZXZlbnRzW3RdfHxbXTtmb3IobGV0IGE9MCxzPXIubGVuZ3RoO2E8czthKyspclthXT8uKC4uLmUpfW9uKHQsZSl7cmV0dXJuIHRoaXMuZXZlbnRzW3RdPy5wdXNoKGUpfHwodGhpcy5ldmVudHNbdF09W2VdKSwoKT0+e3RoaXMuZXZlbnRzW3RdPXRoaXMuZXZlbnRzW3RdPy5maWx0ZXIocj0+ZSE9PXIpfX1vZmYodCxlKXt0aGlzLmV2ZW50c1t0XT10aGlzLmV2ZW50c1t0XT8uZmlsdGVyKHI9PmUhPT1yKX1kZXN0cm95KCl7dGhpcy5ldmVudHM9e319fSxMMXI9MTAwLzYsenA9e3Bhc3NpdmU6ITF9LHlMYT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU2Nyb2xsIil9Y29uc3RydWN0b3IodCxlPXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD10LHRoaXMub3B0aW9ucz1lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCx6cCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LHpwKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLHpwKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCx6cCl9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IFQxcjtvbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCx6cCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LHpwKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLHpwKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCx6cCl9b25Ub3VjaFN0YXJ0PWkodD0+e2xldHtjbGllbnRYOmUsY2xpZW50WTpyfT10LnRhcmdldFRvdWNoZXM/dC50YXJnZXRUb3VjaGVzWzBdOnQ7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT1yLHRoaXMubGFzdERlbHRhPXt4OjAseTowfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOjAsZGVsdGFZOjAsZXZlbnQ6dH0pfSwib25Ub3VjaFN0YXJ0Iik7b25Ub3VjaE1vdmU9aSh0PT57bGV0e2NsaWVudFg6ZSxjbGllbnRZOnJ9PXQudGFyZ2V0VG91Y2hlcz90LnRhcmdldFRvdWNoZXNbMF06dCxhPS0oZS10aGlzLnRvdWNoU3RhcnQueCkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcixzPS0oci10aGlzLnRvdWNoU3RhcnQueSkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcjt0aGlzLnRvdWNoU3RhcnQueD1lLHRoaXMudG91Y2hTdGFydC55PXIsdGhpcy5sYXN0RGVsdGE9e3g6YSx5OnN9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6YSxkZWx0YVk6cyxldmVudDp0fSl9LCJvblRvdWNoTW92ZSIpO29uVG91Y2hFbmQ9aSh0PT57dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDp0aGlzLmxhc3REZWx0YS54LGRlbHRhWTp0aGlzLmxhc3REZWx0YS55LGV2ZW50OnR9KX0sIm9uVG91Y2hFbmQiKTtvbldoZWVsPWkodD0+e2xldHtkZWx0YVg6ZSxkZWx0YVk6cixkZWx0YU1vZGU6YX09dCxzPWE9PT0xP0wxcjphPT09Mj90aGlzLndpbmRvdy53aWR0aDoxLG49YT09PTE/TDFyOmE9PT0yP3RoaXMud2luZG93LmhlaWdodDoxO2UqPXMscio9bixlKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHIqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIsdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTpyLGV2ZW50OnR9KX0sIm9uV2hlZWwiKTtvbldpbmRvd1Jlc2l6ZT1pKCgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fSwib25XaW5kb3dSZXNpemUiKX0sRDFyPWkodD0+TWF0aC5taW4oMSwxLjAwMS1NYXRoLnBvdygyLC0xMCp0KSksImRlZmF1bHRFYXNpbmciKSxjXz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMZW5pcyIpfV9pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IGJMYTtlbWl0dGVyPW5ldyBUMXI7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOnQ9d2luZG93LGNvbnRlbnQ6ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OnI9dCxzbW9vdGhXaGVlbDphPSEwLHN5bmNUb3VjaDpzPSExLHN5bmNUb3VjaExlcnA6bj0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om89MS43LGR1cmF0aW9uOmwsZWFzaW5nOmMsbGVycDpkPS4xLGluZmluaXRlOmY9ITEsb3JpZW50YXRpb246cD0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpoPXA9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOm09MSx3aGVlbE11bHRpcGxpZXI6dj0xLGF1dG9SZXNpemU6Yj0hMCxwcmV2ZW50OmcsdmlydHVhbFNjcm9sbDp5LG92ZXJzY3JvbGw6az0hMCxhdXRvUmFmOk09ITEsYW5jaG9yczpOPSExLGF1dG9Ub2dnbGU6Xz0hMSxhbGxvd05lc3RlZFNjcm9sbDpTPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Tz0hMSxuYWl2ZURpbWVuc2lvbnM6TD1PLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpFPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj1mTGEsKCF0fHx0PT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKHQ9d2luZG93KSx0eXBlb2YgbD09Im51bWJlciImJnR5cGVvZiBjIT0iZnVuY3Rpb24iP2M9RDFyOnR5cGVvZiBjPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbCE9Im51bWJlciImJihsPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjp0LGNvbnRlbnQ6ZSxldmVudHNUYXJnZXQ6cixzbW9vdGhXaGVlbDphLHN5bmNUb3VjaDpzLHN5bmNUb3VjaExlcnA6bix0b3VjaEluZXJ0aWFFeHBvbmVudDpvLGR1cmF0aW9uOmwsZWFzaW5nOmMsbGVycDpkLGluZmluaXRlOmYsZ2VzdHVyZU9yaWVudGF0aW9uOmgsb3JpZW50YXRpb246cCx0b3VjaE11bHRpcGxpZXI6bSx3aGVlbE11bHRpcGxpZXI6dixhdXRvUmVzaXplOmIscHJldmVudDpnLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOmssYXV0b1JhZjpNLGFuY2hvcnM6TixhdXRvVG9nZ2xlOl8sYWxsb3dOZXN0ZWRTY3JvbGw6UyxuYWl2ZURpbWVuc2lvbnM6TCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6RX0sdGhpcy5kaW1lbnNpb25zPW5ldyB2TGEodCxlLHthdXRvUmVzaXplOmJ9KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IHlMYShyLHt0b3VjaE11bHRpcGxpZXI6bSx3aGVlbE11bHRpcGxpZXI6dn0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1vZmYodCxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZih0LGUpfW9uU2Nyb2xsRW5kPWkodD0+e3QgaW5zdGFuY2VvZiBDdXN0b21FdmVudHx8KHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoInx8dGhpcy5pc1Njcm9sbGluZz09PSExKSYmdC5zdG9wUHJvcGFnYXRpb24oKX0sIm9uU2Nyb2xsRW5kIik7ZGlzcGF0Y2hTY3JvbGxlbmRFdmVudD1pKCgpPT57dGhpcy5vcHRpb25zLndyYXBwZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNjcm9sbGVuZCIse2J1YmJsZXM6dGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3csZGV0YWlsOntsZW5pc1Njcm9sbEVuZDohMH19KSl9LCJkaXNwYXRjaFNjcm9sbGVuZEV2ZW50Iik7Z2V0IG92ZXJmbG93KCl7bGV0IHQ9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVt0XX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9aSh0PT57dC5wcm9wZXJ0eU5hbWUuaW5jbHVkZXMoIm92ZXJmbG93IikmJnRoaXMuY2hlY2tPdmVyZmxvdygpfSwib25UcmFuc2l0aW9uRW5kIik7c2V0U2Nyb2xsKHQpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OnQsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDp0LGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9aSh0PT57bGV0IHI9dC5jb21wb3NlZFBhdGgoKS5maWx0ZXIoYT0+YSBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50JiZhLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTtpZih0aGlzLm9wdGlvbnMuYW5jaG9ycyl7bGV0IGE9ci5maW5kKHM9PnMuZ2V0QXR0cmlidXRlKCJocmVmIik/LmluY2x1ZGVzKCIjIikpO2lmKGEpe2xldCBzPWEuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYocyl7bGV0IG49dHlwZW9mIHRoaXMub3B0aW9ucy5hbmNob3JzPT0ib2JqZWN0IiYmdGhpcy5vcHRpb25zLmFuY2hvcnM/dGhpcy5vcHRpb25zLmFuY2hvcnM6dm9pZCAwLG89YCMke3Muc3BsaXQoIiMiKVsxXX1gO3RoaXMuc2Nyb2xsVG8obyxuKX19fXRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUmJnIuZmluZChzPT5zLmhvc3Q9PT13aW5kb3cubG9jYXRpb24uaG9zdCkmJnRoaXMucmVzZXQoKX0sIm9uQ2xpY2siKTtvblBvaW50ZXJEb3duPWkodD0+e3QuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfSwib25Qb2ludGVyRG93biIpO29uVmlydHVhbFNjcm9sbD1pKHQ9PntpZih0eXBlb2YgdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGw9PSJmdW5jdGlvbiImJnRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsKHQpPT09ITEpcmV0dXJuO2xldHtkZWx0YVg6ZSxkZWx0YVk6cixldmVudDphfT10O2lmKHRoaXMuZW1pdHRlci5lbWl0KCJ2aXJ0dWFsLXNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTpyLGV2ZW50OmF9KSxhLmN0cmxLZXl8fGEubGVuaXNTdG9wUHJvcGFnYXRpb24pcmV0dXJuO2xldCBzPWEudHlwZS5pbmNsdWRlcygidG91Y2giKSxuPWEudHlwZS5pbmNsdWRlcygid2hlZWwiKTt0aGlzLmlzVG91Y2hpbmc9YS50eXBlPT09InRvdWNoc3RhcnQifHxhLnR5cGU9PT0idG91Y2htb3ZlIjtsZXQgbz1lPT09MCYmcj09PTA7aWYodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmcyYmYS50eXBlPT09InRvdWNoc3RhcnQiJiZvJiYhdGhpcy5pc1N0b3BwZWQmJiF0aGlzLmlzTG9ja2VkKXt0aGlzLnJlc2V0KCk7cmV0dXJufWxldCBjPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0idmVydGljYWwiJiZyPT09MHx8dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmZT09PTA7aWYob3x8YylyZXR1cm47bGV0IGQ9YS5jb21wb3NlZFBhdGgoKTtkPWQuc2xpY2UoMCxkLmluZGV4T2YodGhpcy5yb290RWxlbWVudCkpO2xldCBmPXRoaXMub3B0aW9ucy5wcmV2ZW50O2lmKGQuZmluZChnPT5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0eXBlb2YgZj09ImZ1bmN0aW9uIiYmZj8uKGcpfHxnLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQiKXx8cyYmZy5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoIil8fG4mJmcuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC13aGVlbCIpfHx0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwmJnRoaXMuY2hlY2tOZXN0ZWRTY3JvbGwoZyx7ZGVsdGFYOmUsZGVsdGFZOnJ9KSkpKXJldHVybjtpZih0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCl7YS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCEodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmc3x8dGhpcy5vcHRpb25zLnNtb290aFdoZWVsJiZuKSl7dGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIix0aGlzLmFuaW1hdGUuc3RvcCgpLGEubGVuaXNTdG9wUHJvcGFnYXRpb249ITA7cmV0dXJufWxldCBoPXI7dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJib3RoIj9oPU1hdGguYWJzKHIpPk1hdGguYWJzKGUpP3I6ZTp0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiYoaD1lKSwoIXRoaXMub3B0aW9ucy5vdmVyc2Nyb2xsfHx0aGlzLm9wdGlvbnMuaW5maW5pdGV8fHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93JiZ0aGlzLmxpbWl0PjAmJih0aGlzLmFuaW1hdGVkU2Nyb2xsPjAmJnRoaXMuYW5pbWF0ZWRTY3JvbGw8dGhpcy5saW1pdHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PTAmJnI+MHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PXRoaXMubGltaXQmJnI8MCkpJiYoYS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMCksYS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7bGV0IG09cyYmdGhpcy5vcHRpb25zLnN5bmNUb3VjaCxiPXMmJmEudHlwZT09PSJ0b3VjaGVuZCI7YiYmKGg9TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpKk1hdGgucG93KE1hdGguYWJzKHRoaXMudmVsb2NpdHkpLHRoaXMub3B0aW9ucy50b3VjaEluZXJ0aWFFeHBvbmVudCkpLHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwraCx7cHJvZ3JhbW1hdGljOiExLC4uLm0/e2xlcnA6Yj90aGlzLm9wdGlvbnMuc3luY1RvdWNoTGVycDoxfTp7bGVycDp0aGlzLm9wdGlvbnMubGVycCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOnRoaXMub3B0aW9ucy5lYXNpbmd9fSl9LCJvblZpcnR1YWxTY3JvbGwiKTtyZXNpemUoKXt0aGlzLmRpbWVuc2lvbnMucmVzaXplKCksdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmVtaXQoKX1lbWl0KCl7dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIsdGhpcyl9b25OYXRpdmVTY3JvbGw9aSgoKT0+e2lmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0IT09bnVsbCYmKGNsZWFyVGltZW91dCh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCksdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbCksdGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtyZXR1cm59aWYodGhpcy5pc1Njcm9sbGluZz09PSExfHx0aGlzLmlzU2Nyb2xsaW5nPT09Im5hdGl2ZSIpe2xldCB0PXRoaXMuYW5pbWF0ZWRTY3JvbGw7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9dGhpcy5hbmltYXRlZFNjcm9sbC10LHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLmFuaW1hdGVkU2Nyb2xsLXQpLHRoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIiksdGhpcy5lbWl0KCksdGhpcy52ZWxvY2l0eSE9PTAmJih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PTAsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmVtaXQoKX0sNDAwKSl9fSwib25OYXRpdmVTY3JvbGwiKTtyZXNldCgpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHk9MCx0aGlzLmFuaW1hdGUuc3RvcCgpfXN0YXJ0KCl7aWYodGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpO3JldHVybn10aGlzLmludGVybmFsU3RhcnQoKX19aW50ZXJuYWxTdGFydCgpe3RoaXMuaXNTdG9wcGVkJiYodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuZW1pdCgpKX1zdG9wKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgib3ZlcmZsb3ciLCJjbGlwIik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdG9wKCl9fWludGVybmFsU3RvcCgpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuZW1pdCgpKX1yYWY9aSh0PT57bGV0IGU9dC0odGhpcy50aW1lfHx0KTt0aGlzLnRpbWU9dCx0aGlzLmFuaW1hdGUuYWR2YW5jZShlKi4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9LCJyYWYiKTtzY3JvbGxUbyh0LHtvZmZzZXQ6ZT0wLGltbWVkaWF0ZTpyPSExLGxvY2s6YT0hMSxwcm9ncmFtbWF0aWM6cz0hMCxsZXJwOm49cz90aGlzLm9wdGlvbnMubGVycDp2b2lkIDAsZHVyYXRpb246bz1zP3RoaXMub3B0aW9ucy5kdXJhdGlvbjp2b2lkIDAsZWFzaW5nOmw9cz90aGlzLm9wdGlvbnMuZWFzaW5nOnZvaWQgMCxvblN0YXJ0OmMsb25Db21wbGV0ZTpkLGZvcmNlOmY9ITEsdXNlckRhdGE6cH09e30pe2lmKCEoKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKSYmIWYpKXtpZih0eXBlb2YgdD09InN0cmluZyImJlsidG9wIiwibGVmdCIsInN0YXJ0IiwiIyJdLmluY2x1ZGVzKHQpKXQ9MDtlbHNlIGlmKHR5cGVvZiB0PT0ic3RyaW5nIiYmWyJib3R0b20iLCJyaWdodCIsImVuZCJdLmluY2x1ZGVzKHQpKXQ9dGhpcy5saW1pdDtlbHNle2xldCBoO2lmKHR5cGVvZiB0PT0ic3RyaW5nIj8oaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpLGh8fCh0PT09IiN0b3AiP3Q9MDpjb25zb2xlLndhcm4oIkxlbmlzOiBUYXJnZXQgbm90IGZvdW5kIix0KSkpOnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdD8ubm9kZVR5cGUmJihoPXQpLGgpe2lmKHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93KXtsZXQgdj10aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2UtPXRoaXMuaXNIb3Jpem9udGFsP3YubGVmdDp2LnRvcH1sZXQgbT1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Q9KHRoaXMuaXNIb3Jpem9udGFsP20ubGVmdDptLnRvcCkrdGhpcy5hbmltYXRlZFNjcm9sbH19aWYodHlwZW9mIHQ9PSJudW1iZXIiKXtpZih0Kz1lLHQ9TWF0aC5yb3VuZCh0KSx0aGlzLm9wdGlvbnMuaW5maW5pdGUpe2lmKHMpe3RoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5zY3JvbGw7bGV0IGg9dC10aGlzLmFuaW1hdGVkU2Nyb2xsO2g+dGhpcy5saW1pdC8yP3Q9dC10aGlzLmxpbWl0Omg8LXRoaXMubGltaXQvMiYmKHQ9dCt0aGlzLmxpbWl0KX19ZWxzZSB0PV8xcigwLHQsdGhpcy5saW1pdCk7aWYodD09PXRoaXMudGFyZ2V0U2Nyb2xsKXtjPy4odGhpcyksZD8uKHRoaXMpO3JldHVybn1pZih0aGlzLnVzZXJEYXRhPXA/P3t9LHIpe3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dCx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksdGhpcy5yZXNldCgpLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpLHRoaXMuZW1pdCgpLGQ/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSk7cmV0dXJufXN8fCh0aGlzLnRhcmdldFNjcm9sbD10KSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBsIT0iZnVuY3Rpb24iP2w9RDFyOnR5cGVvZiBsPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMuYW5pbWF0ZS5mcm9tVG8odGhpcy5hbmltYXRlZFNjcm9sbCx0LHtkdXJhdGlvbjpvLGVhc2luZzpsLGxlcnA6bixvblN0YXJ0OmkoKCk9PnthJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixjPy4odGhpcyl9LCJvblN0YXJ0Iiksb25VcGRhdGU6aSgoaCxtKT0+e3RoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PWgtdGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSksdGhpcy5hbmltYXRlZFNjcm9sbD1oLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSxzJiYodGhpcy50YXJnZXRTY3JvbGw9aCksbXx8dGhpcy5lbWl0KCksbSYmKHRoaXMucmVzZXQoKSx0aGlzLmVtaXQoKSxkPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpKX0sIm9uVXBkYXRlIil9KX19fXByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITF9KX1jaGVja05lc3RlZFNjcm9sbCh0LHtkZWx0YVg6ZSxkZWx0YVk6cn0pe2xldCBhPURhdGUubm93KCkscz10Ll9sZW5pcz8/PXt9LG4sbyxsLGMsZCxmLHAsaCxtPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb247aWYoYS0ocy50aW1lPz8wKT4yZTMpe3MudGltZT1EYXRlLm5vdygpO2xldCBfPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpO3MuY29tcHV0ZWRTdHlsZT1fO2xldCBTPV8ub3ZlcmZsb3dYLE89Xy5vdmVyZmxvd1k7aWYobj1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoUyksbz1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoTykscy5oYXNPdmVyZmxvd1g9bixzLmhhc092ZXJmbG93WT1vLCFuJiYhb3x8bT09PSJ2ZXJ0aWNhbCImJiFvfHxtPT09Imhvcml6b250YWwiJiYhbilyZXR1cm4hMTtkPXQuc2Nyb2xsV2lkdGgsZj10LnNjcm9sbEhlaWdodCxwPXQuY2xpZW50V2lkdGgsaD10LmNsaWVudEhlaWdodCxsPWQ+cCxjPWY+aCxzLmlzU2Nyb2xsYWJsZVg9bCxzLmlzU2Nyb2xsYWJsZVk9YyxzLnNjcm9sbFdpZHRoPWQscy5zY3JvbGxIZWlnaHQ9ZixzLmNsaWVudFdpZHRoPXAscy5jbGllbnRIZWlnaHQ9aH1lbHNlIGw9cy5pc1Njcm9sbGFibGVYLGM9cy5pc1Njcm9sbGFibGVZLG49cy5oYXNPdmVyZmxvd1gsbz1zLmhhc092ZXJmbG93WSxkPXMuc2Nyb2xsV2lkdGgsZj1zLnNjcm9sbEhlaWdodCxwPXMuY2xpZW50V2lkdGgsaD1zLmNsaWVudEhlaWdodDtpZighbiYmIW98fCFsJiYhY3x8bT09PSJ2ZXJ0aWNhbCImJighb3x8IWMpfHxtPT09Imhvcml6b250YWwiJiYoIW58fCFsKSlyZXR1cm4hMTtsZXQgdjtpZihtPT09Imhvcml6b250YWwiKXY9IngiO2Vsc2UgaWYobT09PSJ2ZXJ0aWNhbCIpdj0ieSI7ZWxzZXtsZXQgXz1lIT09MCxTPXIhPT0wO18mJm4mJmwmJih2PSJ4IiksUyYmbyYmYyYmKHY9InkiKX1pZighdilyZXR1cm4hMTtsZXQgYixnLHksayxNO2lmKHY9PT0ieCIpYj10LnNjcm9sbExlZnQsZz1kLXAseT1lLGs9bixNPWw7ZWxzZSBpZih2PT09InkiKWI9dC5zY3JvbGxUb3AsZz1mLWgseT1yLGs9byxNPWM7ZWxzZSByZXR1cm4hMTtyZXR1cm4oeT4wP2I8ZzpiPjApJiZrJiZNfWdldCByb290RWxlbWVudCgpe3JldHVybiB0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdz9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6dGhpcy5vcHRpb25zLndyYXBwZXJ9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5uYWl2ZURpbWVuc2lvbnM/dGhpcy5pc0hvcml6b250YWw/dGhpcy5yb290RWxlbWVudC5zY3JvbGxXaWR0aC10aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoOnRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMucm9vdEVsZW1lbnQuY2xpZW50SGVpZ2h0OnRoaXMuZGltZW5zaW9ucy5saW1pdFt0aGlzLmlzSG9yaXpvbnRhbD8ieCI6InkiXX1nZXQgaXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIn1nZXQgYWN0dWFsU2Nyb2xsKCl7bGV0IHQ9dGhpcy5vcHRpb25zLndyYXBwZXI7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsP3Quc2Nyb2xsWD8/dC5zY3JvbGxMZWZ0OnQuc2Nyb2xsWT8/dC5zY3JvbGxUb3B9Z2V0IHNjcm9sbCgpe3JldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGU/Z0xhKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5saW1pdCk6dGhpcy5hbmltYXRlZFNjcm9sbH1nZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5saW1pdD09PTA/MTp0aGlzLnNjcm9sbC90aGlzLmxpbWl0fWdldCBpc1Njcm9sbGluZygpe3JldHVybiB0aGlzLl9pc1Njcm9sbGluZ31zZXQgaXNTY3JvbGxpbmcodCl7dGhpcy5faXNTY3JvbGxpbmchPT10JiYodGhpcy5faXNTY3JvbGxpbmc9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RvcHBlZH1zZXQgaXNTdG9wcGVkKHQpe3RoaXMuX2lzU3RvcHBlZCE9PXQmJih0aGlzLl9pc1N0b3BwZWQ9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5faXNMb2NrZWR9c2V0IGlzTG9ja2VkKHQpe3RoaXMuX2lzTG9ja2VkIT09dCYmKHRoaXMuX2lzTG9ja2VkPXQsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU21vb3RoKCl7cmV0dXJuIHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIn1nZXQgY2xhc3NOYW1lKCl7bGV0IHQ9ImxlbmlzIjtyZXR1cm4gdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0Kz0iIGxlbmlzLWF1dG9Ub2dnbGUiKSx0aGlzLmlzU3RvcHBlZCYmKHQrPSIgbGVuaXMtc3RvcHBlZCIpLHRoaXMuaXNMb2NrZWQmJih0Kz0iIGxlbmlzLWxvY2tlZCIpLHRoaXMuaXNTY3JvbGxpbmcmJih0Kz0iIGxlbmlzLXNjcm9sbGluZyIpLHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIiYmKHQrPSIgbGVuaXMtc21vb3RoIiksdH11cGRhdGVDbGFzc05hbWUoKXt0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT1gJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKX1jbGVhblVwQ2xhc3NOYW1lKCl7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvbGVuaXMoLVx3Kyk/L2csIiIpLnRyaW0oKX19fSk7dmFyIEExcj1OdCgobEFlLGNBZSk9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgbEFlPT0ib2JqZWN0IiYmdHlwZW9mIGNBZTwidSI/Y0FlLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR8fHNlbGYsdC5Td2VldFNjcm9sbD1lKCkpfSkobEFlLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWkoZnVuY3Rpb24oKXtyZXR1cm4gdD1PYmplY3QuYXNzaWdufHxpKGZ1bmN0aW9uKEgpe2Zvcih2YXIgVSxqPTEsYWU9YXJndW1lbnRzLmxlbmd0aDtqPGFlO2orKyl7VT1hcmd1bWVudHNbal07Zm9yKHZhciBYIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsWCkmJihIW1hdPVVbWF0pfXJldHVybiBIfSwiX19hc3NpZ24iKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIl9fYXNzaWduIiksZT0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkscj1lP3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGE9KGZ1bmN0aW9uKCl7dmFyIHE9ITE7aWYoIWUpcmV0dXJuIHE7dHJ5e3ZhciBIPXdpbmRvdyxVPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDppKGZ1bmN0aW9uKCl7cT0hMH0sImdldCIpfSk7SC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFUpLEgucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxVKX1jYXRjaHt9cmV0dXJuIHF9KSgpLHM9aShmdW5jdGlvbihxKXtyZXR1cm4gdHlwZW9mIHE9PSJzdHJpbmcifSwiaXNTdHJpbmciKSxuPWkoZnVuY3Rpb24ocSl7cmV0dXJuIHR5cGVvZiBxPT0iZnVuY3Rpb24ifSwiaXNGdW5jdGlvbiIpLG89aShmdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkuaXNBcnJheShxKX0sImlzQXJyYXkiKSxsPWkoZnVuY3Rpb24ocSl7cmV0dXJuIW8ocSkmJnEtcGFyc2VGbG9hdChxKSsxPj0wfSwiaXNOdW1lcmljIiksYz1pKGZ1bmN0aW9uKHEsSCl7cmV0dXJuIHEmJnEuaGFzT3duUHJvcGVydHkoSCl9LCJoYXNQcm9wIiksZD1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOm51bGwsZj1lP3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCxwPU1hdGguY29zLGg9TWF0aC5zaW4sbT1NYXRoLnBvdyx2PU1hdGguc3FydCxiPU1hdGguUEksZz17bGluZWFyOmkoZnVuY3Rpb24ocSl7cmV0dXJuIHF9LCJsaW5lYXIiKSxlYXNlSW5RdWFkOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqKEgvPWFlKSpIK1V9LCJlYXNlSW5RdWFkIiksZWFzZU91dFF1YWQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taiooSC89YWUpKihILTIpK1V9LCJlYXNlT3V0UXVhZCIpLGVhc2VJbk91dFF1YWQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4oSC89YWUvMik8MT9qLzIqSCpIK1U6LWovMiooLS1IKihILTIpLTEpK1V9LCJlYXNlSW5PdXRRdWFkIiksZWFzZUluQ3ViaWM6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooSC89YWUpKkgqSCtVfSwiZWFzZUluQ3ViaWMiKSxlYXNlT3V0Q3ViaWM6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooKEg9SC9hZS0xKSpIKkgrMSkrVX0sImVhc2VPdXRDdWJpYyIpLGVhc2VJbk91dEN1YmljOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuKEgvPWFlLzIpPDE/ai8yKkgqSCpIK1U6ai8yKigoSC09MikqSCpIKzIpK1V9LCJlYXNlSW5PdXRDdWJpYyIpLGVhc2VJblF1YXJ0OmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqKEgvPWFlKSpIKkgqSCtVfSwiZWFzZUluUXVhcnQiKSxlYXNlT3V0UXVhcnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taiooKEg9SC9hZS0xKSpIKkgqSC0xKStVfSwiZWFzZU91dFF1YXJ0IiksZWFzZUluT3V0UXVhcnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4oSC89YWUvMik8MT9qLzIqSCpIKkgqSCtVOi1qLzIqKChILT0yKSpIKkgqSC0yKStVfSwiZWFzZUluT3V0UXVhcnQiKSxlYXNlSW5RdWludDppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBqKihILz1hZSkqSCpIKkgqSCtVfSwiZWFzZUluUXVpbnQiKSxlYXNlT3V0UXVpbnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooKEg9SC9hZS0xKSpIKkgqSCpIKzEpK1V9LCJlYXNlT3V0UXVpbnQiKSxlYXNlSW5PdXRRdWludDppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybihILz1hZS8yKTwxP2ovMipIKkgqSCpIKkgrVTpqLzIqKChILT0yKSpIKkgqSCpIKzIpK1V9LCJlYXNlSW5PdXRRdWludCIpLGVhc2VJblNpbmU6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taipwKEgvYWUqKGIvMikpK2orVX0sImVhc2VJblNpbmUiKSxlYXNlT3V0U2luZTppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBqKmgoSC9hZSooYi8yKSkrVX0sImVhc2VPdXRTaW5lIiksZWFzZUluT3V0U2luZTppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybi1qLzIqKHAoYipIL2FlKS0xKStVfSwiZWFzZUluT3V0U2luZSIpLGVhc2VJbkV4cG86aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gSD09PTA/VTpqKm0oMiwxMCooSC9hZS0xKSkrVX0sImVhc2VJbkV4cG8iKSxlYXNlT3V0RXhwbzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBIPT09YWU/VStqOmoqKC1tKDIsLTEwKkgvYWUpKzEpK1V9LCJlYXNlT3V0RXhwbyIpLGVhc2VJbk91dEV4cG86aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gSD09PTA/VTpIPT09YWU/VStqOihILz1hZS8yKTwxP2ovMiptKDIsMTAqKEgtMSkpK1U6ai8yKigtbSgyLC0xMCotLUgpKzIpK1V9LCJlYXNlSW5PdXRFeHBvIiksZWFzZUluQ2lyYzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybi1qKih2KDEtKEgvPWFlKSpIKS0xKStVfSwiZWFzZUluQ2lyYyIpLGVhc2VPdXRDaXJjOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqdigxLShIPUgvYWUtMSkqSCkrVX0sImVhc2VPdXRDaXJjIiksZWFzZUluT3V0Q2lyYzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybihILz1hZS8yKTwxPy1qLzIqKHYoMS1IKkgpLTEpK1U6ai8yKih2KDEtKEgtPTIpKkgpKzEpK1V9LCJlYXNlSW5PdXRDaXJjIil9LHk9aShmdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHEpOltdKX0sIiQkIiksaz1pKGZ1bmN0aW9uKHEpe3JldHVybiB5KHEpLnNoaWZ0KCl8fG51bGx9LCIkIiksTT1pKGZ1bmN0aW9uKHEpe3JldHVybiBxIGluc3RhbmNlb2YgRWxlbWVudH0sImlzRWxlbWVudCIpLE49aShmdW5jdGlvbihxKXtyZXR1cm4gcT09PXdpbmRvd30sImlzV2luZG93IiksXz1pKGZ1bmN0aW9uKHEpe3JldHVybiBxPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxxPT09ZG9jdW1lbnQuYm9keX0sImlzUm9vdENvbnRhaW5lciIpLFM9aShmdW5jdGlvbihxLEgpe2lmKE0oSCkpcmV0dXJuIHE9PT1IO2Zvcih2YXIgVT15KEgpLGo9VS5sZW5ndGg7LS1qPj0wJiZVW2pdIT09cTspO3JldHVybiBqPi0xfSwibWF0Y2hlcyIpLE89aShmdW5jdGlvbihxKXtyZXR1cm4gTWF0aC5tYXgocS5zY3JvbGxIZWlnaHQscS5jbGllbnRIZWlnaHQscS5vZmZzZXRIZWlnaHQpfSwiZ2V0SGVpZ2h0IiksTD1pKGZ1bmN0aW9uKHEpe3JldHVybiBNYXRoLm1heChxLnNjcm9sbFdpZHRoLHEuY2xpZW50V2lkdGgscS5vZmZzZXRXaWR0aCl9LCJnZXRXaWR0aCIpLEU9aShmdW5jdGlvbihxKXtyZXR1cm57d2lkdGg6TChxKSxoZWlnaHQ6TyhxKX19LCJnZXRTaXplIiksQj1pKGZ1bmN0aW9uKHEpe3ZhciBIPU4ocSl8fF8ocSk7cmV0dXJue3ZpZXdwb3J0Ont3aWR0aDpIP01hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk6cS5jbGllbnRXaWR0aCxoZWlnaHQ6SD93aW5kb3cuaW5uZXJIZWlnaHQ6cS5jbGllbnRIZWlnaHR9LHNpemU6SD97d2lkdGg6TWF0aC5tYXgoTChkb2N1bWVudC5ib2R5KSxMKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpLGhlaWdodDpNYXRoLm1heChPKGRvY3VtZW50LmJvZHkpLE8oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSl9OkUocSl9fSwiZ2V0Vmlld3BvcnRBbmRFbGVtZW50U2l6ZXMiKSxDPXt5OiJzY3JvbGxUb3AiLHg6InNjcm9sbExlZnQifSx6PXt5OiJwYWdlWU9mZnNldCIseDoicGFnZVhPZmZzZXQifSxBPWkoZnVuY3Rpb24ocSxIKXtyZXR1cm4gTihxKT9xW3pbSF1dOnFbQ1tIXV19LCJnZXRTY3JvbGwiKSwkPWkoZnVuY3Rpb24ocSxILFUpe2lmKE4ocSkpe3ZhciBqPVU9PT0ieSI7cS5zY3JvbGxUbyhqP3EucGFnZVhPZmZzZXQ6SCxqP0g6cS5wYWdlWU9mZnNldCl9ZWxzZSBxW0NbVV1dPUh9LCJzZXRTY3JvbGwiKSxGPWkoZnVuY3Rpb24ocSxIKXt2YXIgVT1xLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFUud2lkdGh8fFUuaGVpZ2h0KXt2YXIgaj17dG9wOjAsbGVmdDowfSxhZT12b2lkIDA7aWYoTihIKXx8XyhIKSlhZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsai50b3A9d2luZG93W3oueV0sai5sZWZ0PXdpbmRvd1t6LnhdO2Vsc2V7YWU9SDt2YXIgWD1hZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtqLnRvcD1YLnRvcCotMSthZVtDLnldLGoubGVmdD1YLmxlZnQqLTErYWVbQy54XX1yZXR1cm57dG9wOlUudG9wK2oudG9wLWFlLmNsaWVudFRvcCxsZWZ0OlUubGVmdCtqLmxlZnQtYWUuY2xpZW50TGVmdH19cmV0dXJuIFV9LCJnZXRPZmZzZXQiKSxZPShmdW5jdGlvbigpe3JldHVybiBlPyJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiOiJ3aGVlbCJ9KSgpLEc9aShmdW5jdGlvbihxKXtyZXR1cm4gcT09PSJ3aGVlbCI/WTpxfSwiZXZlbnROYW1lIiksWj1pKGZ1bmN0aW9uKHEsSCxVLGosYWUpe1Uuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3FbSF0oRyhYKSxqLGE/e3Bhc3NpdmU6YWV9OiExKX0pfSwiYXBwbHkiKSxkZT1pKGZ1bmN0aW9uKHEsSCxVLGope3JldHVybiBaKHEsImFkZEV2ZW50TGlzdGVuZXIiLEgsVSxqKX0sImFkZEV2ZW50IiksRD1pKGZ1bmN0aW9uKHEsSCxVLGope3JldHVybiBaKHEsInJlbW92ZUV2ZW50TGlzdGVuZXIiLEgsVSxqKX0sInJlbW92ZUV2ZW50IiksUT0vXihcK3wtKT0oXGQrKD86XC5cZCspPykkLyxmZT1pKGZ1bmN0aW9uKHEsSCl7dmFyIFU9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYoYyhxLCJ0b3AiKXx8YyhxLCJsZWZ0IikpVT10KHt9LFUscSk7ZWxzZSBpZihvKHEpKWlmKHEubGVuZ3RoPjEpVS50b3A9cVswXSxVLmxlZnQ9cVsxXTtlbHNlIGlmKHEubGVuZ3RoPT09MSlVLnRvcD1IP3FbMF06MCxVLmxlZnQ9SD8wOnFbMF07ZWxzZSByZXR1cm4gbnVsbDtlbHNlIGlmKGwocSkpSD9VLnRvcD1xOlUubGVmdD1xO2Vsc2UgaWYocyhxKSl7dmFyIGo9cS50cmltKCkubWF0Y2goUSk7aWYoIWopcmV0dXJuIG51bGw7dmFyIGFlPWpbMV0sWD1wYXJzZUludChqWzJdLDEwKTthZT09PSIrIj8oVS50b3A9SD9YOjAsVS5sZWZ0PUg/MDpYKTooVS50b3A9SD8tWDowLFUubGVmdD1IPzA6LVgpLFUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gVX0sInBhcnNlQ29vcmRpbmF0ZSIpLFQ9e3RyaWdnZXI6IltkYXRhLXNjcm9sbF0iLGhlYWRlcjoiW2RhdGEtc2Nyb2xsLWhlYWRlcl0iLGR1cmF0aW9uOjFlMyxlYXNpbmc6ImVhc2VPdXRRdWludCIsb2Zmc2V0OjAsdmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxjYW5jZWxsYWJsZTohMCx1cGRhdGVVUkw6ITEscHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLGJlZm9yZTpudWxsLGFmdGVyOm51bGwsY2FuY2VsOm51bGwsY29tcGxldGU6bnVsbCxzdGVwOm51bGx9LFc9ImNsaWNrIixwZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLG1lPShmdW5jdGlvbigpe2Z1bmN0aW9uIHEoSCxVKXt2YXIgaj10aGlzO3RoaXMuJGVsPW51bGwsdGhpcy5jdHg9eyR0cmlnZ2VyOm51bGwsb3B0czpudWxsLHByb2dyZXNzOiExLHBvczpudWxsLHN0YXJ0UG9zOm51bGwsZWFzaW5nOm51bGwsc3RhcnQ6MCxpZDowLGNhbmNlbDohMSxoYXNoOm51bGx9LHRoaXMubG9vcD1mdW5jdGlvbihYKXt2YXIgSj1qLHhlPUouJGVsLEs9Si5jdHg7aWYoSy5zdGFydHx8KEsuc3RhcnQ9WCksIUsucHJvZ3Jlc3N8fCF4ZSl7ai5zdG9wKCk7cmV0dXJufXZhciBWPUsub3B0cyxsZT1LLnBvcyxuZT1LLnN0YXJ0LGVlPUsuc3RhcnRQb3MsemU9Sy5lYXNpbmcsSGU9Vi5kdXJhdGlvbixHZT17dG9wOiJ5IixsZWZ0OiJ4In0sb3Q9WC1uZSxEZT1NYXRoLm1pbigxLE1hdGgubWF4KG90L0hlLDApKTtPYmplY3Qua2V5cyhsZSkuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIG9lPWxlW19lXSxzZT1lZVtfZV0sY2U9b2Utc2U7aWYoY2UhPT0wKXt2YXIgVGU9emUoRGUsSGUqRGUsMCwxLEhlKTskKHhlLE1hdGgucm91bmQoc2UrY2UqVGUpLEdlW19lXSl9fSksb3Q8PUhlPyhqLmhvb2soViwic3RlcCIsRGUpLEsuaWQ9cS5yYWYoai5sb29wKSk6ai5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihYKXtmb3IodmFyIEo9ai5vcHRzLHhlPVgudGFyZ2V0O3hlJiZ4ZSE9PWRvY3VtZW50O3hlPXhlLnBhcmVudE5vZGUpaWYoUyh4ZSxKLnRyaWdnZXIpKXt2YXIgSz1KU09OLnBhcnNlKHhlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwtb3B0aW9ucyIpfHwie30iKSxWPXhlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiKSxsZT1WfHx4ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxuZT10KHt9LEosSyksZWU9bmUucHJldmVudERlZmF1bHQsemU9bmUuc3RvcFByb3BhZ2F0aW9uLEhlPW5lLnZlcnRpY2FsLEdlPW5lLmhvcml6b250YWw7ZWUmJlgucHJldmVudERlZmF1bHQoKSx6ZSYmWC5zdG9wUHJvcGFnYXRpb24oKSxqLmN0eC4kdHJpZ2dlcj14ZSxHZSYmSGU/ai50byhsZSxuZSk6SGU/ai50b1RvcChsZSxuZSk6R2UmJmoudG9MZWZ0KGxlLG5lKTticmVha319LHRoaXMuaGFuZGxlU3RvcD1mdW5jdGlvbihYKXt2YXIgSj1qLmN0eCx4ZT1KLm9wdHM7eGUmJnhlLmNhbmNlbGxhYmxlPyhKLmNhbmNlbD0hMCxqLnN0b3AoKSk6WC5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9dCh7fSxULEh8fHt9KTt2YXIgYWU9bnVsbDtlJiYodHlwZW9mIFU9PSJzdHJpbmciP2FlPWsoVSk6VSE9bnVsbD9hZT1VOmFlPXdpbmRvdyksdGhpcy4kZWw9YWUsYWUmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIGkocSwiU3dlZXRTY3JvbGwiKSxxLmNyZWF0ZT1mdW5jdGlvbihILFUpe3JldHVybiBuZXcgcShILFUpfSxxLnByb3RvdHlwZS50bz1mdW5jdGlvbihILFUpe2lmKGUpe3ZhciBqPXRoaXMsYWU9ai4kZWwsWD1qLmN0eCxKPWoub3B0cyx4ZT1YLiR0cmlnZ2VyLEs9dCh7fSxKLFV8fHt9KSxWPUsub2Zmc2V0LGxlPUsudmVydGljYWwsbmU9Sy5ob3Jpem9udGFsLGVlPU0oSy5oZWFkZXIpP0suaGVhZGVyOmsoSy5oZWFkZXIpLHplPS9eIy8sSGU9cyhIKSYmemUudGVzdChIKT9IOm51bGw7aWYoWC5vcHRzPUssWC5jYW5jZWw9ITEsWC5oYXNoPUhlLHRoaXMuc3RvcCgpLCEhYWUpe3ZhciBHZT1mZShWLGxlKSxvdD1mZShILGxlKSxEZT17dG9wOjAsbGVmdDowfTtpZihvdClpZihvdC5yZWxhdGl2ZSl7dmFyIF9lPUEoYWUsbGU/InkiOiJ4Iik7RGUudG9wPWxlP19lK290LnRvcDpvdC50b3AsRGUubGVmdD1sZT9vdC5sZWZ0Ol9lK290LmxlZnR9ZWxzZSBEZT1vdDtlbHNlIGlmKHMoSCkmJkghPT0iIyIpe3ZhciBvZT1rKEgpO2lmKCFvZSlyZXR1cm47RGU9RihvZSxhZSl9R2UmJihEZS50b3ArPUdlLnRvcCxEZS5sZWZ0Kz1HZS5sZWZ0KSxlZSYmKERlLnRvcD1NYXRoLm1heCgwLERlLnRvcC1FKGVlKS5oZWlnaHQpKTt2YXIgc2U9QihhZSksY2U9c2Uudmlld3BvcnQsVGU9c2Uuc2l6ZTtpZihEZS50b3A9bGU/TWF0aC5tYXgoMCxNYXRoLm1pbihUZS5oZWlnaHQtY2UuaGVpZ2h0LERlLnRvcCkpOkEoYWUsInkiKSxEZS5sZWZ0PW5lP01hdGgubWF4KDAsTWF0aC5taW4oVGUud2lkdGgtY2Uud2lkdGgsRGUubGVmdCkpOkEoYWUsIngiKSx0aGlzLmhvb2soSywiYmVmb3JlIixEZSx4ZSk9PT0hMSl7WC5vcHRzPW51bGw7cmV0dXJufVgucG9zPURlLHRoaXMuc3RhcnQoSyksdGhpcy5iaW5kKCExLCEwKX19fSxxLnByb3RvdHlwZS50b1RvcD1mdW5jdGlvbihILFUpe3RoaXMudG8oSCx0KHt9LFV8fHt9LHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExfSkpfSxxLnByb3RvdHlwZS50b0xlZnQ9ZnVuY3Rpb24oSCxVKXt0aGlzLnRvKEgsdCh7fSxVfHx7fSx7dmVydGljYWw6ITEsaG9yaXpvbnRhbDohMH0pKX0scS5wcm90b3R5cGUudG9FbGVtZW50PWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcy4kZWw7IWV8fCFqfHx0aGlzLnRvKEYoSCxqKSxVfHx7fSl9LHEucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oSCl7SD09PXZvaWQgMCYmKEg9ITEpO3ZhciBVPXRoaXMsaj1VLiRlbCxhZT1VLmN0eCxYPWFlLnBvczshanx8IWFlLnByb2dyZXNzfHwocS5jYWYoYWUuaWQpLGFlLnByb2dyZXNzPSExLGFlLnN0YXJ0PTAsYWUuaWQ9MCxIJiZYJiYoJChqLFgubGVmdCwieCIpLCQoaixYLnRvcCwieSIpKSx0aGlzLmNvbXBsZXRlKCkpfSxxLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oSCl7aWYodGhpcy4kZWwpe3ZhciBVPXQoe30sdGhpcy5vcHRzLEgpO3RoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLm9wdHM9VSx0aGlzLmJpbmQoITAsITEpfX0scS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJGVsJiYodGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMuJGVsPW51bGwpfSxxLnByb3RvdHlwZS5vbkJlZm9yZT1mdW5jdGlvbihILFUpe3JldHVybiEwfSxxLnByb3RvdHlwZS5vblN0ZXA9ZnVuY3Rpb24oSCl7fSxxLnByb3RvdHlwZS5vbkFmdGVyPWZ1bmN0aW9uKEgsVSl7fSxxLnByb3RvdHlwZS5vbkNhbmNlbD1mdW5jdGlvbigpe30scS5wcm90b3R5cGUub25Db21wbGV0ZT1mdW5jdGlvbihIKXt9LHEucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKEgpe3ZhciBVPXRoaXMuY3R4O1Uub3B0cz1ILFUucHJvZ3Jlc3M9ITAsVS5lYXNpbmc9bihILmVhc2luZyk/SC5lYXNpbmc6Z1tILmVhc2luZ107dmFyIGo9dGhpcy4kZWwsYWU9e3RvcDpBKGosInkiKSxsZWZ0OkEoaiwieCIpfTtVLnN0YXJ0UG9zPWFlLFUuaWQ9cS5yYWYodGhpcy5sb29wKX0scS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgSD10aGlzLFU9SC4kZWwsaj1ILmN0eCxhZT1qLmhhc2gsWD1qLmNhbmNlbCxKPWoub3B0cyx4ZT1qLnBvcyxLPWouJHRyaWdnZXI7aWYoISghVXx8IUopKXtpZihhZSE9bnVsbCYmYWUhPT13aW5kb3cubG9jYXRpb24uaGFzaCl7dmFyIFY9Si51cGRhdGVVUkw7ZSYmciYmViE9PSExJiZ3aW5kb3cuaGlzdG9yeVtWPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLGFlKX10aGlzLnVuYmluZCghMSwhMCksai5vcHRzPW51bGwsai4kdHJpZ2dlcj1udWxsLFg/dGhpcy5ob29rKEosImNhbmNlbCIpOnRoaXMuaG9vayhKLCJhZnRlciIseGUsSyksdGhpcy5ob29rKEosImNvbXBsZXRlIixYKX19LHEucHJvdG90eXBlLmhvb2s9ZnVuY3Rpb24oSCxVKXtmb3IodmFyIGo9W10sYWU9MjthZTxhcmd1bWVudHMubGVuZ3RoO2FlKyspalthZS0yXT1hcmd1bWVudHNbYWVdO3ZhciBYLEo9SFtVXSx4ZSxLO3JldHVybiBuKEopJiYoeGU9Si5hcHBseSh0aGlzLGouY29uY2F0KFt0aGlzXSkpKSxLPShYPXRoaXMpWyJvbiIrKFVbMF0udG9VcHBlckNhc2UoKStVLnNsaWNlKDEpKV0uYXBwbHkoWCxqKSx4ZSE9PXZvaWQgMD94ZTpLfSxxLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcyxhZT1qLiRlbCxYPWouY3R4Lm9wdHM7YWUmJihIJiZkZShhZSxXLHRoaXMuaGFuZGxlQ2xpY2ssITEpLFUmJmRlKGFlLHBlLHRoaXMuaGFuZGxlU3RvcCxYP1guY2FuY2VsbGFibGU6ITApKX0scS5wcm90b3R5cGUudW5iaW5kPWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcyxhZT1qLiRlbCxYPWouY3R4Lm9wdHM7YWUmJihIJiZEKGFlLFcsdGhpcy5oYW5kbGVDbGljaywhMSksVSYmRChhZSxwZSx0aGlzLmhhbmRsZVN0b3AsWD9YLmNhbmNlbGxhYmxlOiEwKSl9LHEucmFmPWQscS5jYWY9ZixxfSkoKTtyZXR1cm4gbWV9KX0pO3ZhciBteSx3TGEsZ3k9dSgoKT0+e0tRdCgpO01kZSgpO3Q2KCk7SXYoKTtzb3IoKTtLMSgpO21vcigpO2I0KCk7TW9yKCk7bGRlKCk7X29yKCk7blRlKCk7ZzNlKCk7ZmRlKCk7dHooKTt3X2UoKTtKMGUoKTskMXIoKTtteT1HYShBMXIoKSwxKSx3TGE9e09iamVjdE1hcDpNNCxTdHJpbmdtYXA6YXosRmFzdE1hcDptNn19KTt2YXIgTWk9e307VmUoTWkse2NvbnRhaW5lckNvbnRleHRTdHlsZXM6KCk9Pk1MYSxjc3NGb3JDb25zdHJhaW50OigpPT5rTGEsY3NzRm9yQ29uc3RyYWludENvbnRhaW5lcjooKT0+U0xhLGNzc0ZvckNvbnRhaW5lcjooKT0+RjFyLGNzc0ZvckRlc2t0b3A6KCk9PkNMYSxjc3NGb3JOb3RlYm9vazooKT0+ekxhLGNzc0ZvclBoYWJsZXQ6KCk9PlRMYSxjc3NGb3JQaG9uZTooKT0+TExhLGNzc0ZvclRhYmxldDooKT0+X0xhLGNzc0ZvclZpZXdwb3J0OigpPT5lbSxkZXNrdG9wOigpPT5JMXIsbm90ZWJvb2s6KCk9PlAxcixwaGFibGV0OigpPT5PMXIscGhvbmU6KCk9PlIxcix0YWJsZXQ6KCk9Pk4xcn0pO3ZhciBJMXIsUDFyLE4xcixPMXIsUjFyLEUxcixlbSxGMXIsa0xhLFNMYSxNTGEsQ0xhLHpMYSxfTGEsVExhLExMYSxkQWU9dSgoKT0+e2J5KCk7UmwoKTtJMXI9MTYwMCxQMXI9MTI0MCxOMXI9MTAyNCxPMXI9NjAwLFIxcj00MDAsRTFyPWkodD0+e2xldCBlPVtdO3JldHVybiB0Lm1pbldpZHRoJiZlLnB1c2goYChtaW4td2lkdGg6ICR7dC5taW5XaWR0aH1weClgKSx0Lm1heFdpZHRoJiZlLnB1c2goYChtYXgtd2lkdGg6ICR7dC5tYXhXaWR0aH1weClgKSxlLmpvaW4oIiBhbmQgIil9LCJidWlsZENvbmRpdGlvbiIpLGVtPWkoKHQsZSk9PkdyKGAKICAgIEBjb250YWluZXIgd2NjVG9vbHNWaWV3cG9ydCAke2V9IHsKICAgICAgJHt0LmNzc1RleHR9CiAgICB9CiAgICBAbWVkaWEgJHtlfSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLCJjc3NGb3JWaWV3cG9ydCIpLEYxcj1pKCh0LGUscik9PkdyKGAKICAgIEBjb250YWluZXIgJHtyfSAke2V9IHsKICAgICAgJHt0LmNzc1RleHR9CiAgICB9CiAgYCksImNzc0ZvckNvbnRhaW5lciIpLGtMYT1pKHQ9PmU9PmVtKGUsRTFyKHQpKSwiY3NzRm9yQ29uc3RyYWludCIpLFNMYT1pKCh0LGUpPT5yPT5GMXIocixFMXIodCksZSksImNzc0ZvckNvbnN0cmFpbnRDb250YWluZXIiKSxNTGE9aSh0PT5yZWAKICA6aG9zdCB7CiAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7CiAgICBjb250YWluZXItbmFtZTogJHtHcih0KX07CiAgfQpgLCJjb250YWluZXJDb250ZXh0U3R5bGVzIiksQ0xhPWkodD0+ZW0odCxgKG1pbi13aWR0aDogJHtJMXJ9cHgpYCksImNzc0ZvckRlc2t0b3AiKSx6TGE9aSh0PT5lbSh0LGAobWF4LXdpZHRoOiAke1Axcn1weClgKSwiY3NzRm9yTm90ZWJvb2siKSxfTGE9aSh0PT5lbSh0LGAobWF4LXdpZHRoOiAke04xcn1weClgKSwiY3NzRm9yVGFibGV0IiksVExhPWkodD0+ZW0odCxgKG1heC13aWR0aDogJHtPMXJ9cHgpYCksImNzc0ZvclBoYWJsZXQiKSxMTGE9aSh0PT5lbSh0LGAobWF4LXdpZHRoOiAke1Ixcn1weClgKSwiY3NzRm9yUGhvbmUiKX0pO3ZhciB4M2UsQjFyPXUoKCk9PntneSgpO3gzZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTY3JvbGxlciIpfWRvbXRvb2xzSW5zdGFuY2U7ZGlzcG9zZWQ9ITE7c2Nyb2xsQ2FsbGJhY2tzPVtdO2xlbmlzSW5zdGFuY2U9bnVsbDtsZW5pc1Njcm9sbFVuc3Vic2NyaWJlPW51bGw7bmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZD0hMTtoYW5kbGVOYXRpdmVTY3JvbGw9aShlPT57dGhpcy5leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl9LCJoYW5kbGVOYXRpdmVTY3JvbGwiKTtoYW5kbGVMZW5pc1Njcm9sbD1pKGU9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX0sImhhbmRsZUxlbmlzU2Nyb2xsIik7Y29uc3RydWN0b3IoZSl7dGhpcy5kb210b29sc0luc3RhbmNlPWUsdGhpcy5hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpfXN3ZWV0U2Nyb2xsZXI9bmV3IG15LmRlZmF1bHQoe30pO2FzeW5jIHRvRWxlbWVudChlLHIpe3RoaXMuc3dlZXRTY3JvbGxlci50b0VsZW1lbnQoZSxyKSxyPy5kdXJhdGlvbiYmYXdhaXQgVHIuZGVsYXlGb3Ioci5kdXJhdGlvbil9YXN5bmMgZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCl7bGV0IGU9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLnNjcm9sbEJlaGF2aW9yLHI9ZG9jdW1lbnQuYm9keT9nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLnNjcm9sbEJlaGF2aW9yOiJhdXRvIjtpZihlPT09InNtb290aCJ8fHI9PT0ic21vb3RoIilyZXR1cm4hMDtsZXQgYT0kdC5kZWZlcigpLHM9MTIsbj0zLG89Ljc1LGw9MTIwMCxjPVtdLGQ9aShtPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixmKSx3aW5kb3cuY2xlYXJUaW1lb3V0KGgpLGEucmVzb2x2ZShtKX0sImZpbmFsaXplIik7ZnVuY3Rpb24gZihtKXtjLnB1c2gobS5kZWx0YVkpLGMubGVuZ3RoPj1zJiZwKCl9aShmLCJvbldoZWVsIik7ZnVuY3Rpb24gcCgpe2lmKGMubGVuZ3RoPDIpe2QoITEpO3JldHVybn1sZXQgbT1jLmxlbmd0aC0xLHY9MDtmb3IobGV0IGc9MDtnPG07ZysrKU1hdGguYWJzKGNbZysxXS1jW2ddKTw9biYmdisrO2xldCBiPXYvbTtkKGI+PW8pfWkocCwiYW5hbHl6ZUV2ZW50cyIpO2xldCBoPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57cCgpfSxsKTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixmLHtwYXNzaXZlOiEwfSksYS5wcm9taXNlfWFzeW5jIGVuYWJsZUxlbmlzU2Nyb2xsKGUpe2lmKHRoaXMuZGlzcG9zZWQpcmV0dXJuO3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5kaXNhYmxlTGVuaXNTY3JvbGwoKTtsZXQgcj1uZXcgY18oe2F1dG9SYWY6ITB9KTtpZihlPy5kaXNhYmxlT25OYXRpdmVTbW9vdGhTY3JvbGwmJmF3YWl0IHRoaXMuZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCkpe3IuZGVzdHJveSgpO3JldHVybn10aGlzLmxlbmlzSW5zdGFuY2U9cix0aGlzLmRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5hdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCl9ZGlzYWJsZUxlbmlzU2Nyb2xsKCl7dGhpcy5sZW5pc0luc3RhbmNlJiYodGhpcy5kZXRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlLmRlc3Ryb3koKSx0aGlzLmxlbmlzSW5zdGFuY2U9bnVsbCx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCkpfW9uU2Nyb2xsKGUpe3JldHVybiB0aGlzLnNjcm9sbENhbGxiYWNrcy5wdXNoKGUpLCgpPT57dGhpcy5zY3JvbGxDYWxsYmFja3M9dGhpcy5zY3JvbGxDYWxsYmFja3MuZmlsdGVyKHI9PnIhPT1lKX19ZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZvckVhY2goZT0+e3RyeXtlKCl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gc2Nyb2xsIGNhbGxiYWNrOiIscil9fSl9YXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWR8fHRoaXMuZGlzcG9zZWR8fCh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCksdGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkPSEwKX1kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3RoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKSx0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQ9ITEpfWF0dGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJiF0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmUmJih0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmU9dGhpcy5sZW5pc0luc3RhbmNlLm9uKCJzY3JvbGwiLHRoaXMuaGFuZGxlTGVuaXNTY3JvbGwpKX1kZXRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCl7dGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlJiYodGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlKCksdGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlPW51bGwpfWRpc3Bvc2UoKXt0aGlzLmRpc3Bvc2VkfHwodGhpcy5kaXNwb3NlZD0hMCx0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmxlbmlzSW5zdGFuY2U/LmRlc3Ryb3koKSx0aGlzLmxlbmlzSW5zdGFuY2U9bnVsbCx0aGlzLmRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5zY3JvbGxDYWxsYmFja3M9W10sdGhpcy5zd2VldFNjcm9sbGVyLmRlc3Ryb3koKSl9fX0pO3ZhciB2M2UsSDFyPXUoKCk9PntieSgpO2d5KCk7djNlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRoZW1lTWFuYWdlciIpfWRvbXRvb2xzUmVmO2dvQnJpZ2h0Qm9vbGVhbj0hMTtwcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2g9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIik7dGhlbWVPYnNlcnZhYmxlPW5ldyAkYS5yeGpzLlJlcGxheVN1YmplY3QoMSk7YXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb249bnVsbDtwcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXI9aShlPT57dGhpcy5nb0JyaWdodEJvb2xlYW49ZS5tYXRjaGVzLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX0sInByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlciIpO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tdG9vbHNSZWY9ZSx0aGlzLmdvQnJpZ2h0Qm9vbGVhbj10aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5tYXRjaGVzLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXIpLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1hc3luYyBlbmFibGVBdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZSgpe2F3YWl0IHRoaXMuZG9tdG9vbHNSZWYuZG9tUmVhZHkucHJvbWlzZSx0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9ufHwodGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe25leHQ6aShlPT57ZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kPWU/IiNmZmYiOiIjMDAwIn0sIm5leHQiKX0pKX11cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpe3RoaXMuZG9tdG9vbHNSZWYuZGlzcG9zZWR8fHRoaXMudGhlbWVPYnNlcnZhYmxlLm5leHQodGhpcy5nb0JyaWdodEJvb2xlYW4pfWdvQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49ITAsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWdvRGFyaygpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSExLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX10b2dnbGVEYXJrQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49IXRoaXMuZ29CcmlnaHRCb29sZWFuLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1kaXNwb3NlKCl7dGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2gucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlciksdGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPW51bGwsdGhpcy50aGVtZU9ic2VydmFibGUuY29tcGxldGUoKX19fSk7dmFyIEJlLHkzZSxxMXI9dSgoKT0+e2d5KCk7KGZ1bmN0aW9uKHQpe3RbdC5CYWNrc3BhY2U9OF09IkJhY2tzcGFjZSIsdFt0LlRhYj05XT0iVGFiIix0W3QuRW50ZXI9MTNdPSJFbnRlciIsdFt0LlNoaWZ0PTE2XT0iU2hpZnQiLHRbdC5DdHJsPTE3XT0iQ3RybCIsdFt0LkFsdD0xOF09IkFsdCIsdFt0LlBhdXNlQnJlYWs9MTldPSJQYXVzZUJyZWFrIix0W3QuQ2Fwc0xvY2s9MjBdPSJDYXBzTG9jayIsdFt0LkVzY2FwZT0yN109IkVzY2FwZSIsdFt0LlNwYWNlPTMyXT0iU3BhY2UiLHRbdC5QYWdlVXA9MzNdPSJQYWdlVXAiLHRbdC5QYWdlRG93bj0zNF09IlBhZ2VEb3duIix0W3QuRW5kPTM1XT0iRW5kIix0W3QuSG9tZT0zNl09IkhvbWUiLHRbdC5MZWZ0QXJyb3c9MzddPSJMZWZ0QXJyb3ciLHRbdC5VcEFycm93PTM4XT0iVXBBcnJvdyIsdFt0LlJpZ2h0QXJyb3c9MzldPSJSaWdodEFycm93Iix0W3QuRG93bkFycm93PTQwXT0iRG93bkFycm93Iix0W3QuSW5zZXJ0PTQ1XT0iSW5zZXJ0Iix0W3QuRGVsZXRlPTQ2XT0iRGVsZXRlIix0W3QuWmVybz00OF09Ilplcm8iLHRbdC5DbG9zZWRQYXJlbj00OF09IkNsb3NlZFBhcmVuIix0W3QuT25lPTQ5XT0iT25lIix0W3QuRXhjbGFtYXRpb25NYXJrPTQ5XT0iRXhjbGFtYXRpb25NYXJrIix0W3QuVHdvPTUwXT0iVHdvIix0W3QuQXRTaWduPTUwXT0iQXRTaWduIix0W3QuVGhyZWU9NTFdPSJUaHJlZSIsdFt0LlBvdW5kU2lnbj01MV09IlBvdW5kU2lnbiIsdFt0Lkhhc2g9NTFdPSJIYXNoIix0W3QuRm91cj01Ml09IkZvdXIiLHRbdC5Eb2xsYXJTaWduPTUyXT0iRG9sbGFyU2lnbiIsdFt0LkZpdmU9NTNdPSJGaXZlIix0W3QuUGVyY2VudFNpZ249NTNdPSJQZXJjZW50U2lnbiIsdFt0LlNpeD01NF09IlNpeCIsdFt0LkNhcmV0PTU0XT0iQ2FyZXQiLHRbdC5IYXQ9NTRdPSJIYXQiLHRbdC5TZXZlbj01NV09IlNldmVuIix0W3QuQW1wZXJzYW5kPTU1XT0iQW1wZXJzYW5kIix0W3QuRWlnaHQ9NTZdPSJFaWdodCIsdFt0LlN0YXI9NTZdPSJTdGFyIix0W3QuQXN0ZXJpaz01Nl09IkFzdGVyaWsiLHRbdC5OaW5lPTU3XT0iTmluZSIsdFt0Lk9wZW5QYXJlbj01N109Ik9wZW5QYXJlbiIsdFt0LkE9NjVdPSJBIix0W3QuQj02Nl09IkIiLHRbdC5DPTY3XT0iQyIsdFt0LkQ9NjhdPSJEIix0W3QuRT02OV09IkUiLHRbdC5GPTcwXT0iRiIsdFt0Lkc9NzFdPSJHIix0W3QuSD03Ml09IkgiLHRbdC5JPTczXT0iSSIsdFt0Lko9NzRdPSJKIix0W3QuSz03NV09IksiLHRbdC5MPTc2XT0iTCIsdFt0Lk09NzddPSJNIix0W3QuTj03OF09Ik4iLHRbdC5PPTc5XT0iTyIsdFt0LlA9ODBdPSJQIix0W3QuUT04MV09IlEiLHRbdC5SPTgyXT0iUiIsdFt0LlM9ODNdPSJTIix0W3QuVD04NF09IlQiLHRbdC5VPTg1XT0iVSIsdFt0LlY9ODZdPSJWIix0W3QuVz04N109IlciLHRbdC5YPTg4XT0iWCIsdFt0Llk9ODldPSJZIix0W3QuWj05MF09IloiLHRbdC5MZWZ0V2luZG93S2V5PTkxXT0iTGVmdFdpbmRvd0tleSIsdFt0LlJpZ2h0V2luZG93S2V5PTkyXT0iUmlnaHRXaW5kb3dLZXkiLHRbdC5TZWxlY3RLZXk9OTNdPSJTZWxlY3RLZXkiLHRbdC5OdW1wYWQwPTk2XT0iTnVtcGFkMCIsdFt0Lk51bXBhZDE9OTddPSJOdW1wYWQxIix0W3QuTnVtcGFkMj05OF09Ik51bXBhZDIiLHRbdC5OdW1wYWQzPTk5XT0iTnVtcGFkMyIsdFt0Lk51bXBhZDQ9MTAwXT0iTnVtcGFkNCIsdFt0Lk51bXBhZDU9MTAxXT0iTnVtcGFkNSIsdFt0Lk51bXBhZDY9MTAyXT0iTnVtcGFkNiIsdFt0Lk51bXBhZDc9MTAzXT0iTnVtcGFkNyIsdFt0Lk51bXBhZDg9MTA0XT0iTnVtcGFkOCIsdFt0Lk51bXBhZDk9MTA1XT0iTnVtcGFkOSIsdFt0Lk11bHRpcGx5PTEwNl09Ik11bHRpcGx5Iix0W3QuQWRkPTEwN109IkFkZCIsdFt0LlN1YnRyYWN0PTEwOV09IlN1YnRyYWN0Iix0W3QuRGVjaW1hbFBvaW50PTExMF09IkRlY2ltYWxQb2ludCIsdFt0LkRpdmlkZT0xMTFdPSJEaXZpZGUiLHRbdC5GMT0xMTJdPSJGMSIsdFt0LkYyPTExM109IkYyIix0W3QuRjM9MTE0XT0iRjMiLHRbdC5GND0xMTVdPSJGNCIsdFt0LkY1PTExNl09IkY1Iix0W3QuRjY9MTE3XT0iRjYiLHRbdC5GNz0xMThdPSJGNyIsdFt0LkY4PTExOV09IkY4Iix0W3QuRjk9MTIwXT0iRjkiLHRbdC5GMTA9MTIxXT0iRjEwIix0W3QuRjExPTEyMl09IkYxMSIsdFt0LkYxMj0xMjNdPSJGMTIiLHRbdC5OdW1Mb2NrPTE0NF09Ik51bUxvY2siLHRbdC5TY3JvbGxMb2NrPTE0NV09IlNjcm9sbExvY2siLHRbdC5TZW1pQ29sb249MTg2XT0iU2VtaUNvbG9uIix0W3QuRXF1YWxzPTE4N109IkVxdWFscyIsdFt0LkNvbW1hPTE4OF09IkNvbW1hIix0W3QuRGFzaD0xODldPSJEYXNoIix0W3QuUGVyaW9kPTE5MF09IlBlcmlvZCIsdFt0LlVuZGVyU2NvcmU9MTg5XT0iVW5kZXJTY29yZSIsdFt0LlBsdXNTaWduPTE4N109IlBsdXNTaWduIix0W3QuRm9yd2FyZFNsYXNoPTE5MV09IkZvcndhcmRTbGFzaCIsdFt0LlRpbGRlPTE5Ml09IlRpbGRlIix0W3QuR3JhdmVBY2NlbnQ9MTkyXT0iR3JhdmVBY2NlbnQiLHRbdC5PcGVuQnJhY2tldD0yMTldPSJPcGVuQnJhY2tldCIsdFt0LkNsb3NlZEJyYWNrZXQ9MjIxXT0iQ2xvc2VkQnJhY2tldCIsdFt0LlF1b3RlPTIyMl09IlF1b3RlIn0pKEJlfHwoQmU9e30pKTt5M2U9Y2xhc3N7c3RhdGlje2kodGhpcywiS2V5Ym9hcmQiKX1kb21Ob2RlO21hcENvbWJvc1RvSGFuZGxlcnM9bmV3IE1hcDtwcmVzc2VkS2V5cz1uZXcgU2V0O2xpc3RlbmluZz0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbU5vZGU9ZSx0aGlzLnN0YXJ0TGlzdGVuaW5nKCl9a2V5RW51bT1CZTtvbihlKXtsZXQgcj1uZXcgJGEucnhqcy5TdWJqZWN0O3JldHVybiB0aGlzLnJlZ2lzdGVyS2V5cyhlLHIpLHJ9dHJpZ2dlcktleVByZXNzKGUpe2xldCByPXRoaXMubm9ybWFsaXplS2V5cyhlKTtmb3IobGV0IGEgb2Ygcil0aGlzLnByZXNzZWRLZXlzLmFkZChhKTt0aGlzLmNoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKHRoaXMuY3JlYXRlS2V5Ym9hcmRFdmVudChyKSk7Zm9yKGxldCBhIG9mIHIpdGhpcy5wcmVzc2VkS2V5cy5kZWxldGUoYSl9c3RhcnRMaXN0ZW5pbmcoKXt0aGlzLmxpc3RlbmluZ3x8KHRoaXMuZG9tTm9kZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLHRoaXMuZG9tTm9kZS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oYW5kbGVLZXlVcCksdGhpcy5saXN0ZW5pbmc9ITApfXN0b3BMaXN0ZW5pbmcoKXt0aGlzLmxpc3RlbmluZyYmKHRoaXMuZG9tTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLHRoaXMuZG9tTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oYW5kbGVLZXlVcCksdGhpcy5saXN0ZW5pbmc9ITEpfWNsZWFyKCl7dGhpcy5zdG9wTGlzdGVuaW5nKCk7Zm9yKGxldCBlIG9mIHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy52YWx1ZXMoKSlmb3IobGV0IHIgb2YgZS5zdWJqZWN0cylyLmNvbXBsZXRlKCk7dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmNsZWFyKCksdGhpcy5wcmVzc2VkS2V5cy5jbGVhcigpfWRpc3Bvc2UoKXt0aGlzLmNsZWFyKCl9aGFuZGxlS2V5RG93bj1pKGU9PntsZXQgcj10aGlzLnJlc29sdmVLZXkoZSk7ciE9PW51bGwmJih0aGlzLnByZXNzZWRLZXlzLmFkZChyKSx0aGlzLmNoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKGUpKX0sImhhbmRsZUtleURvd24iKTtjaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyhlKXt0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZm9yRWFjaChyPT57aWYodGhpcy5hcmVBbGxLZXlzUHJlc3NlZChyLmtleXMpKWZvcihsZXQgYSBvZiByLnN1YmplY3RzKWEubmV4dChlKX0pfWhhbmRsZUtleVVwPWkoZT0+e2xldCByPXRoaXMucmVzb2x2ZUtleShlKTtyIT09bnVsbCYmdGhpcy5wcmVzc2VkS2V5cy5kZWxldGUocil9LCJoYW5kbGVLZXlVcCIpO2FyZUFsbEtleXNQcmVzc2VkKGUpe2xldCByPSEwO3JldHVybiBlLmZvckVhY2goYT0+e3RoaXMucHJlc3NlZEtleXMuaGFzKGEpfHwocj0hMSl9KSxyfXJlZ2lzdGVyS2V5cyhlLHIpe2xldCBhPXRoaXMubm9ybWFsaXplS2V5cyhlKSxzPWEuam9pbigiKyIpLG49dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmdldChzKTtpZighbil7dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLnNldChzLHtrZXlzOmEsc3ViamVjdHM6W3JdfSk7cmV0dXJufW4uc3ViamVjdHMucHVzaChyKX1ub3JtYWxpemVLZXlzKGUpe3JldHVyblsuLi5uZXcgU2V0KGUpXS5zb3J0KChyLGEpPT5yLWEpfXJlc29sdmVLZXkoZSl7cmV0dXJuIHRoaXMucmVzb2x2ZUtleUZyb21Db2RlKGUuY29kZSk/P3RoaXMucmVzb2x2ZUtleUZyb21LZXkoZS5rZXkpPz90aGlzLnJlc29sdmVLZXlGcm9tS2V5Q29kZShlLmtleUNvZGUpfXJlc29sdmVLZXlGcm9tQ29kZShlKXtpZighZSlyZXR1cm4gbnVsbDtpZihlLnN0YXJ0c1dpdGgoIktleSIpJiZlLmxlbmd0aD09PTQpcmV0dXJuIEJlW2Uuc2xpY2UoMyldPz9udWxsO2lmKGUuc3RhcnRzV2l0aCgiRGlnaXQiKSYmZS5sZW5ndGg9PT02KXJldHVybiB0aGlzLnJlc29sdmVLZXlGcm9tS2V5KGUuc2xpY2UoNSkpO3N3aXRjaChlKXtjYXNlIkJhY2tzcGFjZSI6cmV0dXJuIEJlLkJhY2tzcGFjZTtjYXNlIlRhYiI6cmV0dXJuIEJlLlRhYjtjYXNlIkVudGVyIjpjYXNlIk51bXBhZEVudGVyIjpyZXR1cm4gQmUuRW50ZXI7Y2FzZSJTaGlmdExlZnQiOmNhc2UiU2hpZnRSaWdodCI6cmV0dXJuIEJlLlNoaWZ0O2Nhc2UiQ29udHJvbExlZnQiOmNhc2UiQ29udHJvbFJpZ2h0IjpyZXR1cm4gQmUuQ3RybDtjYXNlIkFsdExlZnQiOmNhc2UiQWx0UmlnaHQiOnJldHVybiBCZS5BbHQ7Y2FzZSJQYXVzZSI6cmV0dXJuIEJlLlBhdXNlQnJlYWs7Y2FzZSJDYXBzTG9jayI6cmV0dXJuIEJlLkNhcHNMb2NrO2Nhc2UiRXNjYXBlIjpyZXR1cm4gQmUuRXNjYXBlO2Nhc2UiU3BhY2UiOnJldHVybiBCZS5TcGFjZTtjYXNlIlBhZ2VVcCI6cmV0dXJuIEJlLlBhZ2VVcDtjYXNlIlBhZ2VEb3duIjpyZXR1cm4gQmUuUGFnZURvd247Y2FzZSJFbmQiOnJldHVybiBCZS5FbmQ7Y2FzZSJIb21lIjpyZXR1cm4gQmUuSG9tZTtjYXNlIkFycm93TGVmdCI6cmV0dXJuIEJlLkxlZnRBcnJvdztjYXNlIkFycm93VXAiOnJldHVybiBCZS5VcEFycm93O2Nhc2UiQXJyb3dSaWdodCI6cmV0dXJuIEJlLlJpZ2h0QXJyb3c7Y2FzZSJBcnJvd0Rvd24iOnJldHVybiBCZS5Eb3duQXJyb3c7Y2FzZSJJbnNlcnQiOnJldHVybiBCZS5JbnNlcnQ7Y2FzZSJEZWxldGUiOnJldHVybiBCZS5EZWxldGU7Y2FzZSJNZXRhTGVmdCI6cmV0dXJuIEJlLkxlZnRXaW5kb3dLZXk7Y2FzZSJNZXRhUmlnaHQiOnJldHVybiBCZS5SaWdodFdpbmRvd0tleTtjYXNlIkNvbnRleHRNZW51IjpyZXR1cm4gQmUuU2VsZWN0S2V5O2Nhc2UiTnVtcGFkMCI6cmV0dXJuIEJlLk51bXBhZDA7Y2FzZSJOdW1wYWQxIjpyZXR1cm4gQmUuTnVtcGFkMTtjYXNlIk51bXBhZDIiOnJldHVybiBCZS5OdW1wYWQyO2Nhc2UiTnVtcGFkMyI6cmV0dXJuIEJlLk51bXBhZDM7Y2FzZSJOdW1wYWQ0IjpyZXR1cm4gQmUuTnVtcGFkNDtjYXNlIk51bXBhZDUiOnJldHVybiBCZS5OdW1wYWQ1O2Nhc2UiTnVtcGFkNiI6cmV0dXJuIEJlLk51bXBhZDY7Y2FzZSJOdW1wYWQ3IjpyZXR1cm4gQmUuTnVtcGFkNztjYXNlIk51bXBhZDgiOnJldHVybiBCZS5OdW1wYWQ4O2Nhc2UiTnVtcGFkOSI6cmV0dXJuIEJlLk51bXBhZDk7Y2FzZSJOdW1wYWRNdWx0aXBseSI6cmV0dXJuIEJlLk11bHRpcGx5O2Nhc2UiTnVtcGFkQWRkIjpyZXR1cm4gQmUuQWRkO2Nhc2UiTnVtcGFkU3VidHJhY3QiOnJldHVybiBCZS5TdWJ0cmFjdDtjYXNlIk51bXBhZERlY2ltYWwiOnJldHVybiBCZS5EZWNpbWFsUG9pbnQ7Y2FzZSJOdW1wYWREaXZpZGUiOnJldHVybiBCZS5EaXZpZGU7Y2FzZSJGMSI6cmV0dXJuIEJlLkYxO2Nhc2UiRjIiOnJldHVybiBCZS5GMjtjYXNlIkYzIjpyZXR1cm4gQmUuRjM7Y2FzZSJGNCI6cmV0dXJuIEJlLkY0O2Nhc2UiRjUiOnJldHVybiBCZS5GNTtjYXNlIkY2IjpyZXR1cm4gQmUuRjY7Y2FzZSJGNyI6cmV0dXJuIEJlLkY3O2Nhc2UiRjgiOnJldHVybiBCZS5GODtjYXNlIkY5IjpyZXR1cm4gQmUuRjk7Y2FzZSJGMTAiOnJldHVybiBCZS5GMTA7Y2FzZSJGMTEiOnJldHVybiBCZS5GMTE7Y2FzZSJGMTIiOnJldHVybiBCZS5GMTI7Y2FzZSJOdW1Mb2NrIjpyZXR1cm4gQmUuTnVtTG9jaztjYXNlIlNjcm9sbExvY2siOnJldHVybiBCZS5TY3JvbGxMb2NrO2Nhc2UiU2VtaWNvbG9uIjpyZXR1cm4gQmUuU2VtaUNvbG9uO2Nhc2UiRXF1YWwiOnJldHVybiBCZS5FcXVhbHM7Y2FzZSJDb21tYSI6cmV0dXJuIEJlLkNvbW1hO2Nhc2UiTWludXMiOnJldHVybiBCZS5EYXNoO2Nhc2UiUGVyaW9kIjpyZXR1cm4gQmUuUGVyaW9kO2Nhc2UiU2xhc2giOnJldHVybiBCZS5Gb3J3YXJkU2xhc2g7Y2FzZSJCYWNrcXVvdGUiOnJldHVybiBCZS5UaWxkZTtjYXNlIkJyYWNrZXRMZWZ0IjpyZXR1cm4gQmUuT3BlbkJyYWNrZXQ7Y2FzZSJCcmFja2V0UmlnaHQiOnJldHVybiBCZS5DbG9zZWRCcmFja2V0O2Nhc2UiUXVvdGUiOnJldHVybiBCZS5RdW90ZTtkZWZhdWx0OnJldHVybiBudWxsfX1yZXNvbHZlS2V5RnJvbUtleShlKXtpZighZSlyZXR1cm4gbnVsbDtpZihlLmxlbmd0aD09PTEpe2xldCByPWUudG9VcHBlckNhc2UoKTtpZihyPj0iQSImJnI8PSJaIilyZXR1cm4gQmVbcl0/P251bGw7c3dpdGNoKGUpe2Nhc2UiMCI6cmV0dXJuIEJlLlplcm87Y2FzZSIxIjpyZXR1cm4gQmUuT25lO2Nhc2UiMiI6cmV0dXJuIEJlLlR3bztjYXNlIjMiOnJldHVybiBCZS5UaHJlZTtjYXNlIjQiOnJldHVybiBCZS5Gb3VyO2Nhc2UiNSI6cmV0dXJuIEJlLkZpdmU7Y2FzZSI2IjpyZXR1cm4gQmUuU2l4O2Nhc2UiNyI6cmV0dXJuIEJlLlNldmVuO2Nhc2UiOCI6cmV0dXJuIEJlLkVpZ2h0O2Nhc2UiOSI6cmV0dXJuIEJlLk5pbmU7Y2FzZSIgIjpyZXR1cm4gQmUuU3BhY2U7Y2FzZSI7IjpyZXR1cm4gQmUuU2VtaUNvbG9uO2Nhc2UiPSI6cmV0dXJuIEJlLkVxdWFscztjYXNlIiwiOnJldHVybiBCZS5Db21tYTtjYXNlIi0iOnJldHVybiBCZS5EYXNoO2Nhc2UiLiI6cmV0dXJuIEJlLlBlcmlvZDtjYXNlIi8iOnJldHVybiBCZS5Gb3J3YXJkU2xhc2g7Y2FzZSJgIjpyZXR1cm4gQmUuVGlsZGU7Y2FzZSJbIjpyZXR1cm4gQmUuT3BlbkJyYWNrZXQ7Y2FzZSJdIjpyZXR1cm4gQmUuQ2xvc2VkQnJhY2tldDtjYXNlIiciOnJldHVybiBCZS5RdW90ZTtkZWZhdWx0OnJldHVybiBudWxsfX1zd2l0Y2goZSl7Y2FzZSJCYWNrc3BhY2UiOnJldHVybiBCZS5CYWNrc3BhY2U7Y2FzZSJUYWIiOnJldHVybiBCZS5UYWI7Y2FzZSJFbnRlciI6cmV0dXJuIEJlLkVudGVyO2Nhc2UiU2hpZnQiOnJldHVybiBCZS5TaGlmdDtjYXNlIkNvbnRyb2wiOnJldHVybiBCZS5DdHJsO2Nhc2UiQWx0IjpyZXR1cm4gQmUuQWx0O2Nhc2UiUGF1c2UiOnJldHVybiBCZS5QYXVzZUJyZWFrO2Nhc2UiQ2Fwc0xvY2siOnJldHVybiBCZS5DYXBzTG9jaztjYXNlIkVzY2FwZSI6cmV0dXJuIEJlLkVzY2FwZTtjYXNlIlBhZ2VVcCI6cmV0dXJuIEJlLlBhZ2VVcDtjYXNlIlBhZ2VEb3duIjpyZXR1cm4gQmUuUGFnZURvd247Y2FzZSJFbmQiOnJldHVybiBCZS5FbmQ7Y2FzZSJIb21lIjpyZXR1cm4gQmUuSG9tZTtjYXNlIkFycm93TGVmdCI6cmV0dXJuIEJlLkxlZnRBcnJvdztjYXNlIkFycm93VXAiOnJldHVybiBCZS5VcEFycm93O2Nhc2UiQXJyb3dSaWdodCI6cmV0dXJuIEJlLlJpZ2h0QXJyb3c7Y2FzZSJBcnJvd0Rvd24iOnJldHVybiBCZS5Eb3duQXJyb3c7Y2FzZSJJbnNlcnQiOnJldHVybiBCZS5JbnNlcnQ7Y2FzZSJEZWxldGUiOnJldHVybiBCZS5EZWxldGU7Y2FzZSJNZXRhIjpyZXR1cm4gQmUuTGVmdFdpbmRvd0tleTtjYXNlIkNvbnRleHRNZW51IjpyZXR1cm4gQmUuU2VsZWN0S2V5O2Nhc2UiTnVtTG9jayI6cmV0dXJuIEJlLk51bUxvY2s7Y2FzZSJTY3JvbGxMb2NrIjpyZXR1cm4gQmUuU2Nyb2xsTG9jaztkZWZhdWx0OnJldHVybiBudWxsfX1yZXNvbHZlS2V5RnJvbUtleUNvZGUoZSl7cmV0dXJuIHR5cGVvZiBlIT0ibnVtYmVyIj9udWxsOnR5cGVvZiBCZVtlXTwidSI/ZTpudWxsfWNyZWF0ZUtleWJvYXJkRXZlbnQoZSl7bGV0IHI9ZVtlLmxlbmd0aC0xXT8/QmUuRW50ZXIsYT10aGlzLmdldEtleURlc2NyaXB0b3Iocik7cmV0dXJuIG5ldyBLZXlib2FyZEV2ZW50KCJrZXlkb3duIix7a2V5OmEua2V5LGNvZGU6YS5jb2RlLGN0cmxLZXk6ZS5pbmNsdWRlcyhCZS5DdHJsKSxzaGlmdEtleTplLmluY2x1ZGVzKEJlLlNoaWZ0KSxhbHRLZXk6ZS5pbmNsdWRlcyhCZS5BbHQpLG1ldGFLZXk6ZS5pbmNsdWRlcyhCZS5MZWZ0V2luZG93S2V5KXx8ZS5pbmNsdWRlcyhCZS5SaWdodFdpbmRvd0tleSl9KX1nZXRLZXlEZXNjcmlwdG9yKGUpe3N3aXRjaChlKXtjYXNlIEJlLkN0cmw6cmV0dXJue2tleToiQ29udHJvbCIsY29kZToiQ29udHJvbExlZnQifTtjYXNlIEJlLlNoaWZ0OnJldHVybntrZXk6IlNoaWZ0Iixjb2RlOiJTaGlmdExlZnQifTtjYXNlIEJlLkFsdDpyZXR1cm57a2V5OiJBbHQiLGNvZGU6IkFsdExlZnQifTtjYXNlIEJlLkVudGVyOnJldHVybntrZXk6IkVudGVyIixjb2RlOiJFbnRlciJ9O2Nhc2UgQmUuU3BhY2U6cmV0dXJue2tleToiICIsY29kZToiU3BhY2UifTtkZWZhdWx0OntsZXQgcj1CZVtlXTtpZihyJiZyLmxlbmd0aD09PTEmJnI+PSJBIiYmcjw9IloiKXJldHVybntrZXk6ci50b0xvd2VyQ2FzZSgpLGNvZGU6YEtleSR7cn1gfTtpZihlPj1CZS5aZXJvJiZlPD1CZS5OaW5lKXtsZXQgYT1TdHJpbmcoZS1CZS5aZXJvKTtyZXR1cm57a2V5OmEsY29kZTpgRGlnaXQke2F9YH19cmV0dXJue2tleTpyPz8iVW5pZGVudGlmaWVkIixjb2RlOiJVbmlkZW50aWZpZWQifX19fX19KTt2YXIgdm8sYnk9dSgoKT0+e2d5KCk7ZEFlKCk7QjFyKCk7ZzNlKCk7SDFyKCk7cTFyKCk7dm89Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJEb21Ub29scyIpfXN0YXRpYyBpbml0aWFsaXphdGlvblByb21pc2U9bnVsbDtzdGF0aWMgYXN5bmMgc2V0dXBEb21Ub29scyhlPXt9KXtpZihlLmlnbm9yZUdsb2JhbCl7bGV0IHI9bmV3IHQoZSk7cmV0dXJuIGF3YWl0IHIuaW5pdGlhbGl6YXRpb25Qcm9taXNlLHJ9aWYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMmJiFnbG9iYWxUaGlzLmRlZXNEb21Ub29scy5kaXNwb3NlZClyZXR1cm4gYXdhaXQgZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlLGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2lmKCF0LmluaXRpYWxpemF0aW9uUHJvbWlzZSl7bGV0IHI9bmV3IHQoZSk7Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9cix0LmluaXRpYWxpemF0aW9uUHJvbWlzZT1yLmluaXRpYWxpemF0aW9uUHJvbWlzZS50aGVuKCgpPT5yKS5jYXRjaChhPT57dGhyb3cgZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9PT1yJiYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9dm9pZCAwKSx0LmluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsLGF9KX1yZXR1cm4gYXdhaXQgdC5pbml0aWFsaXphdGlvblByb21pc2V9c3RhdGljIGdldEdsb2JhbERvbVRvb2xzU3luYygpe2xldCBlPWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2lmKCFlfHxlLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcigiWW91IHRyaWVkIHRvIGFjY2VzcyBkb210b29scyBzeW5jaHJvbm91c2x5IHRvbyBlYXJseSIpO3JldHVybiBlfWVsZW1lbnRzPXtoZWFkRWxlbWVudDpudWxsLGJvZHlFbGVtZW50Om51bGx9O3dlYnNldHVwPW5ldyBsXyh7bWV0YU9iamVjdDp7dGl0bGU6IiJ9fSk7c21hcnRzdGF0ZT1uZXcgSzYuU21hcnRzdGF0ZTtkb21Ub29sc1N0YXRlUGFydD10aGlzLnNtYXJ0c3RhdGUuZ2V0U3RhdGVQYXJ0KCJkb210b29scyIse3ZpcnR1YWxWaWV3cG9ydDoibmF0aXZlIixqd3Q6IiJ9KTtyb3V0ZXI9bmV3IFk2LlNtYXJ0Um91dGVyKHtkZWJ1ZzohMX0pO2NvbnZlbmllbmNlPXt0eXBlZHJlcXVlc3Q6XzEsc21hcnRkZWxheTpUcixzbWFydGpzb246UXMsc21hcnR1cmw6WjZ9O2RlZXNDb21tcz1uZXcga3ouRGVlc0NvbW1zO3Njcm9sbGVyPW5ldyB4M2UodGhpcyk7dGhlbWVNYW5hZ2VyPW5ldyB2M2UodGhpcyk7a2V5Ym9hcmQ9bnVsbDtkaXNwb3NlZD0hMTtkb21Ub29sc1JlYWR5PSR0LmRlZmVyKCk7ZG9tUmVhZHk9JHQuZGVmZXIoKTtnbG9iYWxTdHlsZXNSZWFkeT0kdC5kZWZlcigpO2luaXRpYWxpemF0aW9uUHJvbWlzZTttYW5hZ2VkRG9tTm9kZXM9W107cmVhZHlTdGF0ZUNoYW5nZWRGdW5jPWkoKCk9Pnt0aGlzLnRyeU1hcmtEb21SZWFkeSgpfSwicmVhZHlTdGF0ZUNoYW5nZWRGdW5jIik7Y29uc3RydWN0b3IoZSl7dGhpcy5pbml0aWFsaXphdGlvblByb21pc2U9dGhpcy5pbml0aWFsaXplKCl9cnVuT25jZVByb21pc2VNYXA9bmV3IE1hcDthc3luYyBpbml0aWFsaXplKCl7dGhpcy50cnlNYXJrRG9tUmVhZHkoKSx0aGlzLmRvbVJlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsdGhpcy5yZWFkeVN0YXRlQ2hhbmdlZEZ1bmMpLHRoaXMuZG9tVG9vbHNSZWFkeS5zdGF0dXM9PT0icGVuZGluZyImJnRoaXMuZG9tVG9vbHNSZWFkeS5yZXNvbHZlKCl9dHJ5TWFya0RvbVJlYWR5KCl7dGhpcy5kaXNwb3NlZHx8dGhpcy5kb21SZWFkeS5zdGF0dXMhPT0icGVuZGluZyJ8fGRvY3VtZW50LnJlYWR5U3RhdGUhPT0iaW50ZXJhY3RpdmUiJiZkb2N1bWVudC5yZWFkeVN0YXRlIT09ImNvbXBsZXRlInx8IWRvY3VtZW50LmhlYWR8fCFkb2N1bWVudC5ib2R5fHwodGhpcy5lbGVtZW50cy5oZWFkRWxlbWVudD1kb2N1bWVudC5oZWFkLHRoaXMuZWxlbWVudHMuYm9keUVsZW1lbnQ9ZG9jdW1lbnQuYm9keSx0aGlzLmtleWJvYXJkfHwodGhpcy5rZXlib2FyZD1uZXcgeTNlKGRvY3VtZW50LmJvZHkpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLnJlYWR5U3RhdGVDaGFuZ2VkRnVuYyksdGhpcy5kb21SZWFkeS5yZXNvbHZlKCkpfXRyYWNrTWFuYWdlZERvbU5vZGUoZSl7cmV0dXJuIHRoaXMubWFuYWdlZERvbU5vZGVzLnB1c2goZSksZX1nZXRIZWFkT3JCb2R5RWxlbWVudCgpe2xldCBlPXRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnR8fGRvY3VtZW50LmhlYWR8fHRoaXMuZWxlbWVudHMuYm9keUVsZW1lbnR8fGRvY3VtZW50LmJvZHk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJEb21Ub29scyBjb3VsZCBub3QgZmluZCBhIERPTSB0YXJnZXQgZWxlbWVudCB0byBhdHRhY2ggcmVzb3VyY2VzIHRvIik7cmV0dXJuIGV9YXN5bmMgcnVuT25jZShlLHIpe2xldCBhPXRoaXMucnVuT25jZVByb21pc2VNYXAuZ2V0KGUpO3JldHVybiBhfHwoYT1Qcm9taXNlLnJlc29sdmUoKS50aGVuKGFzeW5jKCk9PmF3YWl0IHIoKSksdGhpcy5ydW5PbmNlUHJvbWlzZU1hcC5zZXQoZSxhKSksYXdhaXQgYX1hc3luYyBzZXRHbG9iYWxTdHlsZXMoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCByPXRoaXMudHJhY2tNYW5hZ2VkRG9tTm9kZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKTtyLnR5cGU9InRleHQvY3NzIixyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKSx0aGlzLmdldEhlYWRPckJvZHlFbGVtZW50KCkuYXBwZW5kQ2hpbGQocil9YXN5bmMgc2V0RXh0ZXJuYWxTY3JpcHQoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCByPSR0LmRlZmVyKCksYT10aGlzLnRyYWNrTWFuYWdlZERvbU5vZGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikpO2Euc3JjPWUsYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e3IucmVzb2x2ZSgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntyLnJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIGV4dGVybmFsIHNjcmlwdDogJHtlfWApKX0pLHRoaXMuZ2V0SGVhZE9yQm9keUVsZW1lbnQoKS5hcHBlbmQoYSksYXdhaXQgci5wcm9taXNlfWFzeW5jIHNldEV4dGVybmFsQ3NzKGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgcj0kdC5kZWZlcigpLGE9dGhpcy50cmFja01hbmFnZWREb21Ob2RlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSk7YS5yZWw9InN0eWxlc2hlZXQiLGEuY3Jvc3NPcmlnaW49ImFub255bW91cyIsYS5ocmVmPWUsYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e3IucmVzb2x2ZSgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntyLnJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIGV4dGVybmFsIHN0eWxlc2hlZXQ6ICR7ZX1gKSl9KSx0aGlzLmdldEhlYWRPckJvZHlFbGVtZW50KCkuYXBwZW5kKGEpLGF3YWl0IHIucHJvbWlzZX1hc3luYyBzZXRXZWJzaXRlSW5mbyhlKXthd2FpdCB0aGlzLndlYnNldHVwLnNldHVwKGUpLGF3YWl0IHRoaXMud2Vic2V0dXAucmVhZHlQcm9taXNlfWRpc3Bvc2UoKXtpZighdGhpcy5kaXNwb3NlZCl7dGhpcy5kaXNwb3NlZD0hMCxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLnJlYWR5U3RhdGVDaGFuZ2VkRnVuYyksdGhpcy5rZXlib2FyZD8uZGlzcG9zZSgpLHRoaXMua2V5Ym9hcmQ9bnVsbCx0aGlzLnNjcm9sbGVyLmRpc3Bvc2UoKSx0aGlzLnRoZW1lTWFuYWdlci5kaXNwb3NlKCk7Zm9yKGxldCBlIG9mIHRoaXMubWFuYWdlZERvbU5vZGVzKWUucmVtb3ZlKCk7dGhpcy5tYW5hZ2VkRG9tTm9kZXMubGVuZ3RoPTAsZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9PT10aGlzJiYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9dm9pZCAwLHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPW51bGwpfX19fSk7dmFyIHczZSxWMXIsajFyPXUoKCk9PntieSgpO1JsKCk7dzNlPSgoKT0+e2xldCB0PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIE9TIFgiKT09PS0xP3JlYGAuY3NzVGV4dDoiIjtyZXR1cm4gcmVgCiAgICAvKiB3aWR0aCAqLwogICAgOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgIHdpZHRoOiAwcHg7CiAgICB9CiAgICBib2R5IHsKICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOwogICAgfQogIGAuY3NzVGV4dH0pKCksVjFyPXJlYAogIC8qCiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJzsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxpY29ucy92NDIvZmxVaFJxNnR6WmNsUUVKLVZkZy1JdWlhRHNOY0loUTh0US53b2ZmMikKICAgICAgZm9ybWF0KCd3b2ZmMicpOwogIH0gKi8KCiAgLyogZ2xvYmFsIGJvZHkgc3R5bGVzICovCiAgYm9keSB7CiAgICBtYXJnaW46IDBweDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogc2Nyb2xsIGJhciBzdHlsZXMgKi8KICAke0dyKHczZSl9CmAuY3NzVGV4dH0pO3ZhciBaYT17fTtWZShaYSx7c2V0dXA6KCk9PkFMYSxzdGF0aWNTdHlsZXM6KCk9PkRMYSxzdHlsZXM6KCk9PiRMYX0pO3ZhciBETGEsJExhLEFMYSxVMXI9dSgoKT0+e2J5KCk7ajFyKCk7UmwoKTtETGE9cmVgCiAgKiB7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgOmhvc3QgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgfQoKICAke0dyKHczZSl9CmAsJExhPXdgCiAgPHN0eWxlPgogICAgKiB7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICB9CgogICAgJHt3M2V9CiAgPC9zdHlsZT4KYCxBTGE9aShhc3luYyh0LGU9e30pPT57bGV0IHI9YXdhaXQgdm8uc2V0dXBEb21Ub29scyhlKTtyZXR1cm4gYXdhaXQgci5ydW5PbmNlKCJlbGVtZW50QmFzaWNTZXR1cCIsYXN5bmMoKT0+e2F3YWl0IHIuc2V0R2xvYmFsU3R5bGVzKFYxcil9KSxyLmdsb2JhbFN0eWxlc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmci5nbG9iYWxTdHlsZXNSZWFkeS5yZXNvbHZlKCksYXdhaXQgci5nbG9iYWxTdHlsZXNSZWFkeS5wcm9taXNlLHJ9LCJzZXR1cCIpfSk7dmFyIGszZT17fTtWZShrM2Use2Nzc0dyaWRDb2x1bW5zOigpPT5FTGF9KTt2YXIgRUxhLFcxcj11KCgpPT57RUxhPWkoKHQsZSk9PntsZXQgcj0iIjtmb3IobGV0IGE9MDthPHQ7YSsrKXIrPWAgY2FsYygoMTAwJS8ke3R9KSAtICgke2UqKHQtMSl9cHgvJHt0fSkpYDtyZXR1cm4gcn0sImNzc0dyaWRDb2x1bW5zIil9KTt2YXIgY3I9e307VmUoY3Ise1N3ZWV0U2Nyb2xsOigpPT5teS5kZWZhdWx0LHNtYXJ0ZGVsYXk6KCk9PlRyLHNtYXJ0bWFya2Rvd246KCk9PmFfLHNtYXJ0cHJvbWlzZTooKT0+JHQsc21hcnRyb3V0ZXI6KCk9Plk2LHNtYXJ0cng6KCk9PiRhLHNtYXJ0c3RhdGU6KCk9Pks2LHNtYXJ0c3RyaW5nOigpPT5aMixzbWFydHVybDooKT0+WjYsdHlwZWRyZXF1ZXN0OigpPT5fMX0pO3ZhciBHMXI9dSgoKT0+e2d5KCl9KTt2YXIgWHQ9e307VmUoWHQse0RvbVRvb2xzOigpPT52byxUeXBlZFJlcXVlc3Q6KCk9PnZ6LGJyZWFrcG9pbnRzOigpPT5NaSxjc3M6KCk9PmszZSxlbGVtZW50QmFzaWM6KCk9PlphLHBsdWdpbnM6KCk9PmNyfSk7dmFyIE1yPXUoKCk9PnskcXQoKTtVMXIoKTtkQWUoKTtXMXIoKTtieSgpO01kZSgpO2czZSgpO0cxcigpfSk7dmFyIHVBZSxfcCxwQWU9dSgoKT0+e3VBZT1HYShLbGUoKSwxKTtiNCgpO1JsKCk7RHF0KCk7TXIoKTtfcD17Y3NzOnJlLHVuc2FmZUNTUzpHcixMaXRFbGVtZW50OmY0LHByb3BlcnR5OlB9fSk7dmFyIFMzZSxLMXI9dSgoKT0+e1JsKCk7cEFlKCk7TXIoKTtTM2U9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJDc3NNYW5hZ2VyIil9c3RhdGljIGluc3RhbmNlPW51bGw7c3RhdGljIGdldFNpbmdsZXRvbigpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1kb210b29sc1Byb21pc2U9dm8uc2V0dXBEb21Ub29scygpO2dvQnJpZ2h0PSExO2JkVmFyVHJpcGxldFN0b3JlPVtdO2NvbnN0cnVjdG9yKCl7dGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBlPT57ZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShhc3luYyByPT57dGhpcy5nb0JyaWdodD1yLGF3YWl0IGUuZG9tUmVhZHkucHJvbWlzZTtmb3IobGV0IGEgb2YgdGhpcy5iZFZhclRyaXBsZXRTdG9yZSlkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KGEuY3NzVmFyTmFtZSx0aGlzLmdvQnJpZ2h0P2EuYnJpZ2h0VmFsdWU6YS5kYXJrVmFsdWUpfSl9KX1nZXQgZGVmYXVsdFN0eWxlcygpe3JldHVybiBaYS5zdGF0aWNTdHlsZXN9Z2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhlKXtyZXR1cm4gZS5pc3x8ZS5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1jc3NGb3JEZXNrdG9wKGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtaW4td2lkdGg6ICR7TWkuZGVza3RvcH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhyKSkpOkdyKE1pLmNzc0ZvckRlc2t0b3AoZSkpfWNzc0Zvck5vdGVib29rKGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7TWkubm90ZWJvb2t9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MocikpKTpHcihNaS5jc3NGb3JOb3RlYm9vayhlKSl9Y3NzRm9yVGFibGV0KGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7TWkudGFibGV0fXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHIpKSk6R3IoTWkuY3NzRm9yVGFibGV0KGUpKX1jc3NGb3JQaGFibGV0KGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7TWkucGhhYmxldH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhyKSkpOkdyKE1pLmNzc0ZvclBoYWJsZXQoZSkpfWNzc0ZvclBob25lKGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7TWkucGhvbmV9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MocikpKTpHcihNaS5jc3NGb3JQaG9uZShlKSl9Y3NzRm9yQ29uc3RyYWludChlKXtyZXR1cm4gcj0+R3IoTWkuY3NzRm9yQ29uc3RyYWludChlKShyKSl9YmRUaGVtZShlLHIpe2xldCBhLHM7dm8uZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCk/cz12by5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuP2U6cjpzPXI7bGV0IG49dGhpcy5iZFZhclRyaXBsZXRTdG9yZS5maW5kKG89Pm8uZGFya1ZhbHVlPT09ciYmby5icmlnaHRWYWx1ZT09PWUpO2lmKG4pYT1uLmNzc1Zhck5hbWU7ZWxzZXtsZXQgbz17Y3NzVmFyTmFtZTpgLS0ke3VBZS51bmkoKX1gLGJyaWdodFZhbHVlOmUsZGFya1ZhbHVlOnJ9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChvKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIGw9Pnthd2FpdCBsLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShvLmNzc1Zhck5hbWUscyl9KSxhPW8uY3NzVmFyTmFtZX1yZXR1cm4gX3AudW5zYWZlQ1NTKGB2YXIoJHthfSwgJHtzfSlgKX1jc3NHcmlkQ29sdW1ucz1pKChlLHIpPT57bGV0IGE9IiI7Zm9yKGxldCBzPTA7czxlO3MrKylhKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHtyKihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIF9wLnVuc2FmZUNTUyhhKX0sImNzc0dyaWRDb2x1bW5zIil9fSk7dmFyIGZBZSxJTGEsUTFyLFBMYSxaMXIsTTNlLFRwLE5MYSxPTGEsWDFyPXUoKCk9PntWMigpO2ZBZT1TeW1ib2wuZm9yKCIiKSxJTGE9aSh0PT57aWYodD8ucj09PWZBZSlyZXR1cm4gdD8uXyRsaXRTdGF0aWMkfSwibyIpLFExcj1pKHQ9Pih7XyRsaXRTdGF0aWMkOnQscjpmQWV9KSwicyIpLFBMYT1pKCh0LC4uLmUpPT4oe18kbGl0U3RhdGljJDplLnJlZHVjZSgocixhLHMpPT5yKyhuPT57aWYobi5fJGxpdFN0YXRpYyQhPT12b2lkIDApcmV0dXJuIG4uXyRsaXRTdGF0aWMkO3Rocm93IEVycm9yKGBWYWx1ZSBwYXNzZWQgdG8gJ2xpdGVyYWwnIGZ1bmN0aW9uIG11c3QgYmUgYSAnbGl0ZXJhbCcgcmVzdWx0OiAke259LiBVc2UgJ3Vuc2FmZVN0YXRpYycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dAogICAgICAgICAgICB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuYCl9KShhKSt0W3MrMV0sdFswXSkscjpmQWV9KSwiaSIpLFoxcj1uZXcgTWFwLE0zZT1pKHQ9PihlLC4uLnIpPT57bGV0IGE9ci5sZW5ndGgscyxuLG89W10sbD1bXSxjLGQ9MCxmPSExO2Zvcig7ZDxhOyl7Zm9yKGM9ZVtkXTtkPGEmJihuPXJbZF0sKHM9SUxhKG4pKSE9PXZvaWQgMCk7KWMrPXMrZVsrK2RdLGY9ITA7ZCE9PWEmJmwucHVzaChuKSxvLnB1c2goYyksZCsrfWlmKGQ9PT1hJiZvLnB1c2goZVthXSksZil7bGV0IHA9by5qb2luKCIkJGxpdCQkIik7KGU9WjFyLmdldChwKSk9PT12b2lkIDAmJihvLnJhdz1vLFoxci5zZXQocCxlPW8pKSxyPWx9cmV0dXJuIHQoZSwuLi5yKX0sIm4iKSxUcD1NM2UodyksTkxhPU0zZShqa2UpLE9MYT1NM2UoVWtlKX0pO3ZhciBKMXI9dSgoKT0+e1gxcigpfSk7dmFyIHRkLHpzLFlsLFA0PXUoKCk9Pnt0ZD17QVRUUklCVVRFOjEsQ0hJTEQ6MixQUk9QRVJUWTozLEJPT0xFQU5fQVRUUklCVVRFOjQsRVZFTlQ6NSxFTEVNRU5UOjZ9LHpzPWkodD0+KC4uLmUpPT4oe18kbGl0RGlyZWN0aXZlJDp0LHZhbHVlczplfSksImUiKSxZbD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoZSl7fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQVQoZSxyLGEpe3RoaXMuXyRDdD1lLHRoaXMuXyRBTT1yLHRoaXMuXyRDaT1hfV8kQVMoZSxyKXtyZXR1cm4gdGhpcy51cGRhdGUoZSxyKX11cGRhdGUoZSxyKXtyZXR1cm4gdGhpcy5yZW5kZXIoLi4ucil9fX0pO3ZhciB4eSxDM2UsZWxyPXUoKCk9PntWMigpO1A0KCk7eHk9Y2xhc3MgZXh0ZW5kcyBZbHtzdGF0aWN7aSh0aGlzLCJlIil9Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD13aSxlLnR5cGUhPT10ZC5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PXdpfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PW9pKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgcj1bZV07cmV0dXJuIHIucmF3PXIsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczpyLHZhbHVlczpbXX19fTt4eS5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIix4eS5yZXN1bHRUeXBlPTE7QzNlPXpzKHh5KX0pO3ZhciB0bHI9dSgoKT0+e2VscigpfSk7dmFyIGhBZSxtQWU9dSgoKT0+e2hBZT1pKHQ9PihlLHIpPT57ciE9PXZvaWQgMD9yLmFkZEluaXRpYWxpemVyKCgpPT57Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHQsZSl9KTpjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX0sInQiKX0pO3ZhciBybHI9dSgoKT0+e21BZSgpfSk7ZnVuY3Rpb24gdWUodCl7cmV0dXJuKGUscik9PntpZihlLmlzPXQsZS5uYW1lKXtsZXQgYT1STGEoZS5uYW1lKTthIT09dCYmY29uc29sZS53YXJuKGBbZGVlcy1lbGVtZW50XSBDbGFzcyAiJHtlLm5hbWV9IiBrZWJhYi1jYXNlcyB0byAiJHthfSIgYnV0IHRhZyBpcyAiJHt0fSIuIENvbnRhaW5lciBxdWVyaWVzIHVzZSAuaXMgKCIke3R9IikuYCl9cmV0dXJuIGhBZSh0KShlLHIpfX12YXIgUkxhLGFscj11KCgpPT57cmxyKCk7UkxhPWkodD0+dC5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksImNhbWVsVG9LZWJhYiIpO2kodWUsImN1c3RvbUVsZW1lbnQiKX0pO2Z1bmN0aW9uIGllKHQpe3JldHVybiBQKHsuLi50LHN0YXRlOiEwLGF0dHJpYnV0ZTohMX0pfXZhciBpbHI9dSgoKT0+e2oyZSgpO2koaWUsInIiKX0pO2Z1bmN0aW9uIEZMYSh0KXtyZXR1cm4oZSxyKT0+e2xldCBhPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6ZVtyXTtPYmplY3QuYXNzaWduKGEsdCl9fXZhciBzbHI9dSgoKT0+e2koRkxhLCJ0Iil9KTt2YXIgS2wsdnk9dSgoKT0+e0tsPWkoKHQsZSxyKT0+KHIuY29uZmlndXJhYmxlPSEwLHIuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiZ0eXBlb2YgZSE9Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsciksciksImUiKX0pO2Z1bmN0aW9uIG5scih0LGUpe3JldHVybihyLGEscyk9PntsZXQgbj1pKG89Pm8ucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3Rvcih0KT8/bnVsbCwibyIpO2lmKGUpe2xldHtnZXQ6byxzZXQ6bH09dHlwZW9mIGE9PSJvYmplY3QiP3I6cz8/KCgpPT57bGV0IGM9U3ltYm9sKCk7cmV0dXJue2dldCgpe3JldHVybiB0aGlzW2NdfSxzZXQoZCl7dGhpc1tjXT1kfX19KSgpO3JldHVybiBLbChyLGEse2dldCgpe2xldCBjPW8uY2FsbCh0aGlzKTtyZXR1cm4gYz09PXZvaWQgMCYmKGM9bih0aGlzKSwoYyE9PW51bGx8fHRoaXMuaGFzVXBkYXRlZCkmJmwuY2FsbCh0aGlzLGMpKSxjfX0pfXJldHVybiBLbChyLGEse2dldCgpe3JldHVybiBuKHRoaXMpfX0pfX12YXIgb2xyPXUoKCk9Pnt2eSgpO2kobmxyLCJlIil9KTtmdW5jdGlvbiBsbHIodCl7cmV0dXJuKGUscik9PktsKGUscix7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KEJMYT8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSl9dmFyIEJMYSxjbHI9dSgoKT0+e3Z5KCk7aShsbHIsInIiKX0pO2Z1bmN0aW9uIGRscih0KXtyZXR1cm4oZSxyKT0+S2woZSxyLHthc3luYyBnZXQoKXtyZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IodCk/P251bGx9fSl9dmFyIHVscj11KCgpPT57dnkoKTtpKGRsciwiciIpfSk7ZnVuY3Rpb24gSExhKHQpe3JldHVybihlLHIpPT57bGV0e3Nsb3Q6YSxzZWxlY3RvcjpzfT10Pz97fSxuPSJzbG90IisoYT9gW25hbWU9JHthfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gS2woZSxyLHtnZXQoKXtsZXQgbz10aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IobiksbD1vPy5hc3NpZ25lZEVsZW1lbnRzKHQpPz9bXTtyZXR1cm4gcz09PXZvaWQgMD9sOmwuZmlsdGVyKGM9PmMubWF0Y2hlcyhzKSl9fSl9fXZhciBwbHI9dSgoKT0+e3Z5KCk7aShITGEsIm8iKX0pO2Z1bmN0aW9uIHFMYSh0KXtyZXR1cm4oZSxyKT0+e2xldHtzbG90OmF9PXQ/P3t9LHM9InNsb3QiKyhhP2BbbmFtZT0ke2F9XWA6Ijpub3QoW25hbWVdKSIpO3JldHVybiBLbChlLHIse2dldCgpe3JldHVybiB0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iocyk/LmFzc2lnbmVkTm9kZXModCk/P1tdfX0pfX12YXIgZmxyPXUoKCk9Pnt2eSgpO2kocUxhLCJuIil9KTt2YXIgaGxyPXUoKCk9PnttQWUoKTtqMmUoKTtpbHIoKTtzbHIoKTtvbHIoKTtjbHIoKTt1bHIoKTtwbHIoKTtmbHIoKX0pO3ZhciBtbHIsejNlLHllLGdscj11KCgpPT57cEFlKCk7UmwoKTttbHI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHozZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0seWU9KCgpPT57bGV0IHQ9X3AuTGl0RWxlbWVudCxlLHI9W10sYT1bXSxzLG49W10sbz1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e3N0YXRpY3tpKHRoaXMsIkRlZXNFbGVtZW50Iil9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHRbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W19wLnByb3BlcnR5KHt0eXBlOkJvb2xlYW59KV0scz1bX3AucHJvcGVydHkoKV0sbWxyKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ29CcmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZD0+ImdvQnJpZ2h0ImluIGQsImhhcyIpLGdldDppKGQ9PmQuZ29CcmlnaHQsImdldCIpLHNldDppKChkLGYpPT57ZC5nb0JyaWdodD1mfSwic2V0Iil9LG1ldGFkYXRhOmN9LHIsYSksbWxyKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tdG9vbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZD0+ImRvbXRvb2xzImluIGQsImhhcyIpLGdldDppKGQ9PmQuZG9tdG9vbHMsImdldCIpLHNldDppKChkLGYpPT57ZC5kb210b29scz1mfSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbyksYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGdldENvbnRhaW5lck5hbWUoKXtyZXR1cm4gdGhpcy5pc3x8dGhpcy5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1zdGF0aWMgY3NzRm9yQ29uc3RyYWludChjKXtyZXR1cm4gZD0+WHQuYnJlYWtwb2ludHMuY3NzRm9yQ29uc3RyYWludENvbnRhaW5lcihjLHRoaXMuZ2V0Q29udGFpbmVyTmFtZSgpKShkKX0jZT16M2UodGhpcyxyLCExKTtnZXQgZ29CcmlnaHQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZ29CcmlnaHQoYyl7dGhpcy4jZT1jfWRvbXRvb2xzUHJvbWlzZT16M2UodGhpcyxhKTsjdD16M2UodGhpcyxuLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKGMpe3RoaXMuI3Q9Y31yeFN1YnNjcmlwdGlvbnM9KHozZSh0aGlzLG8pLFtdKTt0aGVtZVN1YnNjcmlwdGlvbjtlbGVtZW50RG9tUmVhZHlEZWZlcnJlZD1YdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2VsZW1lbnREb21SZWFkeT10aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IoYz17fSl7c3VwZXIoKSx0aGlzLmRvbXRvb2xzUHJvbWlzZT1YdC5lbGVtZW50QmFzaWMuc2V0dXAodGhpcyxjKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGQ9Pnt0aGlzLmRvbXRvb2xzPWR9KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7bGV0IGM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy50aGVtZVN1YnNjcmlwdGlvbj1jLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGQ9Pnt0aGlzLmdvQnJpZ2h0PWQsdGhpcy50aGVtZUNoYW5nZWQmJnRoaXMudGhlbWVDaGFuZ2VkKGQpfSksdGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRoZW1lU3Vic2NyaXB0aW9uKTtmb3IobGV0IGQgb2YgdGhpcy5zdGFydHVwRnVuY3Rpb25zKWF3YWl0IGQoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudENvbm5lY3RlZCIpKX1maXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpLHRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXJ0dXBGdW5jdGlvbnM9W107cmVnaXN0ZXJTdGFydHVwRnVuY3Rpb24oYyl7dGhpcy5zdGFydHVwRnVuY3Rpb25zLnB1c2goYyl9Z2FyYmFnZUZ1bmN0aW9ucz1bXTtyZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihjKXt0aGlzLmdhcmJhZ2VGdW5jdGlvbnMucHVzaChjKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7Zm9yKGxldCBjIG9mIHRoaXMucnhTdWJzY3JpcHRpb25zKWMudW5zdWJzY3JpYmUoKTtmb3IobGV0IGMgb2YgdGhpcy5nYXJiYWdlRnVuY3Rpb25zKWF3YWl0IGMoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudERpc2Nvbm5lY3RlZCIpKX19fSkoKX0pO2Z1bmN0aW9uIGdBZSgpe3JldHVybiBmdW5jdGlvbih0KXtsZXQgZT10LmlzfHx0Lm5hbWUucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpLHI9dC5uYW1lP1ZMYSh0Lm5hbWUpOm51bGw7aWYociYmciE9PWUpe2xldCBuPWkobD0+bCYmbC5jc3NUZXh0JiZsLmNzc1RleHQuaW5jbHVkZXMoYEBjb250YWluZXIgJHtyfWApP0dyKGwuY3NzVGV4dC5yZXBsYWNlQWxsKGBAY29udGFpbmVyICR7cn1gLGBAY29udGFpbmVyICR7ZX1gKSk6bCwiZml4U3R5bGUiKSxvPXQuc3R5bGVzO0FycmF5LmlzQXJyYXkobyk/dC5zdHlsZXM9by5tYXAobik6byYmKHQuc3R5bGVzPW4obykpfWxldCBhPU1pLmNvbnRhaW5lckNvbnRleHRTdHlsZXMoZSkscz10LnN0eWxlcztyZXR1cm4gQXJyYXkuaXNBcnJheShzKT90LnN0eWxlcz1bLi4ucyxhXTpzP3Quc3R5bGVzPVtzLGFdOnQuc3R5bGVzPVthXSx0fX12YXIgVkxhLGJscj11KCgpPT57UmwoKTtNcigpO1ZMYT1pKHQ9PnQucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpLCJjYW1lbFRvS2ViYWIiKTtpKGdBZSwiY29udGFpbmVyUmVzcG9uc2l2ZSIpfSk7dmFyIGpMYSx4bHIsYkFlLFVMYSxXTGEsR0xhLFlMYSxLTGEseEFlLHZscixONCxpYyxaTGEsZF8sdkFlLHVfLHlBZSx5eT11KCgpPT57VjIoKTsoe0k6akxhfT1Xa2UpLHhscj1pKHQ9PnQsImkiKSxiQWU9aSh0PT50PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIiwibiIpLFVMYT17SFRNTDoxLFNWRzoyLE1BVEhNTDozfSxXTGE9aSgodCxlKT0+ZT09PXZvaWQgMD90Py5fJGxpdFR5cGUkIT09dm9pZCAwOnQ/Ll8kbGl0VHlwZSQ9PT1lLCJsIiksR0xhPWkodD0+dD8uXyRsaXRUeXBlJD8uaCE9bnVsbCwiZCIpLFlMYT1pKHQ9PnQ/Ll8kbGl0RGlyZWN0aXZlJCE9PXZvaWQgMCwiYyIpLEtMYT1pKHQ9PnQ/Ll8kbGl0RGlyZWN0aXZlJCwiZiIpLHhBZT1pKHQ9PnQuc3RyaW5ncz09PXZvaWQgMCwiciIpLHZscj1pKCgpPT5kb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSwicyIpLE40PWkoKHQsZSxyKT0+e2xldCBhPXQuXyRBQS5wYXJlbnROb2RlLHM9ZT09PXZvaWQgMD90Ll8kQUI6ZS5fJEFBO2lmKHI9PT12b2lkIDApe2xldCBuPWEuaW5zZXJ0QmVmb3JlKHZscigpLHMpLG89YS5pbnNlcnRCZWZvcmUodmxyKCkscyk7cj1uZXcgakxhKG4sbyx0LHQub3B0aW9ucyl9ZWxzZXtsZXQgbj1yLl8kQUIubmV4dFNpYmxpbmcsbz1yLl8kQU0sbD1vIT09dDtpZihsKXtsZXQgYztyLl8kQVE/Lih0KSxyLl8kQU09dCxyLl8kQVAhPT12b2lkIDAmJihjPXQuXyRBVSkhPT1vLl8kQVUmJnIuXyRBUChjKX1pZihuIT09c3x8bCl7bGV0IGM9ci5fJEFBO2Zvcig7YyE9PW47KXtsZXQgZD14bHIoYykubmV4dFNpYmxpbmc7eGxyKGEpLmluc2VydEJlZm9yZShjLHMpLGM9ZH19fXJldHVybiByfSwidiIpLGljPWkoKHQsZSxyPXQpPT4odC5fJEFJKGUsciksdCksInUiKSxaTGE9e30sZF89aSgodCxlPVpMYSk9PnQuXyRBSD1lLCJwIiksdkFlPWkodD0+dC5fJEFILCJNIiksdV89aSh0PT57dC5fJEFSKCksdC5fJEFBLnJlbW92ZSgpfSwiaCIpLHlBZT1pKHQ9Pnt0Ll8kQVIoKX0sImoiKX0pO2Z1bmN0aW9uIFFMYSh0KXt0aGlzLl8kQU4hPT12b2lkIDA/KF8zZSh0aGlzKSx0aGlzLl8kQU09dCx5bHIodGhpcykpOnRoaXMuXyRBTT10fWZ1bmN0aW9uIFhMYSh0LGU9ITEscj0wKXtsZXQgYT10aGlzLl8kQUgscz10aGlzLl8kQU47aWYocyE9PXZvaWQgMCYmcy5zaXplIT09MClpZihlKWlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCBuPXI7bjxhLmxlbmd0aDtuKyspcF8oYVtuXSwhMSksXzNlKGFbbl0pO2Vsc2UgYSE9bnVsbCYmKHBfKGEsITEpLF8zZShhKSk7ZWxzZSBwXyh0aGlzLHQpfXZhciBwXyxfM2UseWxyLEpMYSxpbCxUM2U9dSgoKT0+e3l5KCk7UDQoKTtQNCgpO3BfPWkoKHQsZSk9PntsZXQgcj10Ll8kQU47aWYocj09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IGEgb2YgcilhLl8kQU8/LihlLCExKSxwXyhhLGUpO3JldHVybiEwfSwicyIpLF8zZT1pKHQ9PntsZXQgZSxyO2Rve2lmKChlPXQuXyRBTSk9PT12b2lkIDApYnJlYWs7cj1lLl8kQU4sci5kZWxldGUodCksdD1lfXdoaWxlKHI/LnNpemU9PT0wKX0sIm8iKSx5bHI9aSh0PT57Zm9yKGxldCBlO2U9dC5fJEFNO3Q9ZSl7bGV0IHI9ZS5fJEFOO2lmKHI9PT12b2lkIDApZS5fJEFOPXI9bmV3IFNldDtlbHNlIGlmKHIuaGFzKHQpKWJyZWFrO3IuYWRkKHQpLEpMYShlKX19LCJyIik7aShRTGEsImgiKTtpKFhMYSwibiIpO0pMYT1pKHQ9Pnt0LnR5cGU9PXRkLkNISUxEJiYodC5fJEFQPz89WExhLHQuXyRBUT8/PVFMYSl9LCJjIiksaWw9Y2xhc3MgZXh0ZW5kcyBZbHtzdGF0aWN7aSh0aGlzLCJmIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRBTj12b2lkIDB9XyRBVChlLHIsYSl7c3VwZXIuXyRBVChlLHIsYSkseWxyKHRoaXMpLHRoaXMuaXNDb25uZWN0ZWQ9ZS5fJEFVfV8kQU8oZSxyPSEwKXtlIT09dGhpcy5pc0Nvbm5lY3RlZCYmKHRoaXMuaXNDb25uZWN0ZWQ9ZSxlP3RoaXMucmVjb25uZWN0ZWQ/LigpOnRoaXMuZGlzY29ubmVjdGVkPy4oKSksciYmKHBfKHRoaXMsZSksXzNlKHRoaXMpKX1zZXRWYWx1ZShlKXtpZih4QWUodGhpcy5fJEN0KSl0aGlzLl8kQ3QuXyRBSShlLHRoaXMpO2Vsc2V7bGV0IHI9Wy4uLnRoaXMuXyRDdC5fJEFIXTtyW3RoaXMuXyRDaV09ZSx0aGlzLl8kQ3QuXyRBSShyLHRoaXMsMCl9fWRpc2Nvbm5lY3RlZCgpe31yZWNvbm5lY3RlZCgpe319fSk7dmFyIEwzZT11KCgpPT57VDNlKCl9KTt2YXIgd0FlLHdscixlRGEsa2xyPXUoKCk9PntSbCgpO0wzZSgpO3dBZT1jbGFzcyBleHRlbmRzIGlse3N0YXRpY3tpKHRoaXMsIlJlc29sdmVEaXJlY3RpdmUiKX1wcm9taXNlO2hhc1Byb21pc2VTZXR0bGVkPSExO3JlbmRlcihlKXtyZXR1cm4gdGhpcy5wcm9taXNlIT09ZSYmKHRoaXMucHJvbWlzZT1lLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuaGFuZGxlUHJvbWlzZShlKSksb2l9aGFuZGxlUHJvbWlzZShlKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSExLGUudGhlbihyPT57dGhpcy5wcm9taXNlPT09ZSYmIXRoaXMuaGFzUHJvbWlzZVNldHRsZWQmJih0aGlzLnNldFZhbHVlKHIpLHRoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITApfSkuY2F0Y2gocj0+e3RoaXMucHJvbWlzZT09PWUmJiF0aGlzLmhhc1Byb21pc2VTZXR0bGVkJiYodGhpcy5zZXRWYWx1ZShyKSx0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITB9cmVjb25uZWN0ZWQoKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkfHx0aGlzLmhhbmRsZVByb21pc2UodGhpcy5wcm9taXNlKX19LHdscj16cyh3QWUpLGVEYT1pKHQ9Pndscih0KCkpLCJyZXNvbHZlRXhlYyIpfSk7dmFyIGtBZSx0RGEsU2xyPXUoKCk9PntSbCgpO0wzZSgpO2I0KCk7a0FlPWNsYXNzIGV4dGVuZHMgaWx7c3RhdGlje2kodGhpcywiU3Vic2NyaWJlRGlyZWN0aXZlIil9b2JzZXJ2YWJsZTtzdWI9bnVsbDtyZW5kZXIoZSl7cmV0dXJuIHRoaXMub2JzZXJ2YWJsZSE9PWUmJih0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKSx0aGlzLm9ic2VydmFibGU9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLnN1YnNjcmliZShlKSksb2l9c3Vic2NyaWJlKGUpe3RoaXMuc3ViPWUuc3Vic2NyaWJlKHI9Pnt0aGlzLnNldFZhbHVlKHIpfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5zdWI/LnVuc3Vic2NyaWJlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLnN1YnNjcmliZSh0aGlzLm9ic2VydmFibGUpfX0sdERhPXpzKGtBZSl9KTt2YXIgU0FlLE1scixDbHI9dSgoKT0+e1JsKCk7TDNlKCk7YjQoKTtTQWU9Y2xhc3MgZXh0ZW5kcyBpbHtzdGF0aWN7aSh0aGlzLCJTdWJzY3JpYmVXaXRoVGVtcGxhdGVEaXJlY3RpdmUiKX1vYnNlcnZhYmxlO3RlbXBsYXRlRm47c3ViPW51bGw7cmVuZGVyKGUscil7cmV0dXJuKHRoaXMub2JzZXJ2YWJsZSE9PWV8fHRoaXMudGVtcGxhdGVGbiE9PXIpJiYodGhpcy5zdWI/LnVuc3Vic2NyaWJlKCksdGhpcy5vYnNlcnZhYmxlPWUsdGhpcy50ZW1wbGF0ZUZuPXIsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5zdGFydFN1YnNjcmlwdGlvbigpKSxvaX1zdGFydFN1YnNjcmlwdGlvbigpe3RoaXMuc3ViPXRoaXMub2JzZXJ2YWJsZS5zdWJzY3JpYmUoZT0+e2xldCByPXRoaXMudGVtcGxhdGVGbihlKTt0aGlzLnNldFZhbHVlKHIpfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5zdWI/LnVuc3Vic2NyaWJlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLnN0YXJ0U3Vic2NyaXB0aW9uKCl9fSxNbHI9enMoU0FlKX0pO3ZhciBNQWUsdG0scm0sQ0FlPXUoKCk9PntNQWU9aShhc3luYyh0LGUpPT57Zm9yIGF3YWl0KGxldCByIG9mIHQpaWYoYXdhaXQgZShyKT09PSExKXJldHVybn0sInQiKSx0bT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJzIil9Y29uc3RydWN0b3IoZSl7dGhpcy5HPWV9ZGlzY29ubmVjdCgpe3RoaXMuRz12b2lkIDB9cmVjb25uZWN0KGUpe3RoaXMuRz1lfWRlcmVmKCl7cmV0dXJuIHRoaXMuR319LHJtPWNsYXNze3N0YXRpY3tpKHRoaXMsImkiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuWT12b2lkIDAsdGhpcy5aPXZvaWQgMH1nZXQoKXtyZXR1cm4gdGhpcy5ZfXBhdXNlKCl7dGhpcy5ZPz89bmV3IFByb21pc2UoZT0+dGhpcy5aPWUpfXJlc3VtZSgpe3RoaXMuWj8uKCksdGhpcy5ZPXRoaXMuWj12b2lkIDB9fX0pO3ZhciB6bHIsX2xyLEQzZSx6QWUsVGxyPXUoKCk9PntWMigpO3l5KCk7VDNlKCk7Q0FlKCk7UDQoKTt6bHI9aSh0PT4hYkFlKHQpJiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24iLCJuIiksX2xyPTEwNzM3NDE4MjMsRDNlPWNsYXNzIGV4dGVuZHMgaWx7c3RhdGlje2kodGhpcywiYyIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQ3d0PV9scix0aGlzLl8kQ2J0PVtdLHRoaXMuXyRDSz1uZXcgdG0odGhpcyksdGhpcy5fJENYPW5ldyBybX1yZW5kZXIoLi4uZSl7cmV0dXJuIGUuZmluZChyPT4hemxyKHIpKT8/b2l9dXBkYXRlKGUscil7bGV0IGE9dGhpcy5fJENidCxzPWEubGVuZ3RoO3RoaXMuXyRDYnQ9cjtsZXQgbj10aGlzLl8kQ0ssbz10aGlzLl8kQ1g7dGhpcy5pc0Nvbm5lY3RlZHx8dGhpcy5kaXNjb25uZWN0ZWQoKTtmb3IobGV0IGw9MDtsPHIubGVuZ3RoJiYhKGw+dGhpcy5fJEN3dCk7bCsrKXtsZXQgYz1yW2xdO2lmKCF6bHIoYykpcmV0dXJuIHRoaXMuXyRDd3Q9bCxjO2w8cyYmYz09PWFbbF18fCh0aGlzLl8kQ3d0PV9scixzPTAsUHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4oYXN5bmMgZD0+e2Zvcig7by5nZXQoKTspYXdhaXQgby5nZXQoKTtsZXQgZj1uLmRlcmVmKCk7aWYoZiE9PXZvaWQgMCl7bGV0IHA9Zi5fJENidC5pbmRleE9mKGMpO3A+LTEmJnA8Zi5fJEN3dCYmKGYuXyRDd3Q9cCxmLnNldFZhbHVlKGQpKX19KSl9cmV0dXJuIG9pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuXyRDSy5kaXNjb25uZWN0KCksdGhpcy5fJENYLnBhdXNlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLl8kQ0sucmVjb25uZWN0KHRoaXMpLHRoaXMuXyRDWC5yZXN1bWUoKX19LHpBZT16cyhEM2UpfSk7dmFyIExscj11KCgpPT57VGxyKCl9KTt2YXIgd3ksckRhLERscj11KCgpPT57VjIoKTtUM2UoKTtDQWUoKTtQNCgpO3d5PWNsYXNzIGV4dGVuZHMgaWx7c3RhdGlje2kodGhpcywibyIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQ0s9bmV3IHRtKHRoaXMpLHRoaXMuXyRDWD1uZXcgcm19cmVuZGVyKGUscil7cmV0dXJuIG9pfXVwZGF0ZShlLFtyLGFdKXtpZih0aGlzLmlzQ29ubmVjdGVkfHx0aGlzLmRpc2Nvbm5lY3RlZCgpLHI9PT10aGlzLl8kQ0opcmV0dXJuIG9pO3RoaXMuXyRDSj1yO2xldCBzPTAse18kQ0s6bixfJENYOm99PXRoaXM7cmV0dXJuIE1BZShyLGFzeW5jIGw9Pntmb3IoO28uZ2V0KCk7KWF3YWl0IG8uZ2V0KCk7bGV0IGM9bi5kZXJlZigpO2lmKGMhPT12b2lkIDApe2lmKGMuXyRDSiE9PXIpcmV0dXJuITE7YSE9PXZvaWQgMCYmKGw9YShsLHMpKSxjLmNvbW1pdFZhbHVlKGwscykscysrfXJldHVybiEwfSksb2l9Y29tbWl0VmFsdWUoZSxyKXt0aGlzLnNldFZhbHVlKGUpfWRpc2Nvbm5lY3RlZCgpe3RoaXMuXyRDSy5kaXNjb25uZWN0KCksdGhpcy5fJENYLnBhdXNlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLl8kQ0sucmVjb25uZWN0KHRoaXMpLHRoaXMuXyRDWC5yZXN1bWUoKX19LHJEYT16cyh3eSl9KTt2YXIgX0FlLCRscj11KCgpPT57UDQoKTtEbHIoKTt5eSgpO19BZT16cyhjbGFzcyBleHRlbmRzIHd5e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKHQpLHQudHlwZSE9PXRkLkNISUxEKXRocm93IEVycm9yKCJhc3luY0FwcGVuZCBjYW4gb25seSBiZSB1c2VkIGluIGNoaWxkIGV4cHJlc3Npb25zIil9dXBkYXRlKHQsZSl7cmV0dXJuIHRoaXMuXyRDdHQ9dCxzdXBlci51cGRhdGUodCxlKX1jb21taXRWYWx1ZSh0LGUpe2U9PT0wJiZ5QWUodGhpcy5fJEN0dCk7bGV0IHI9TjQodGhpcy5fJEN0dCk7aWMocix0KX19KX0pO3ZhciBBbHI9dSgoKT0+eyRscigpfSk7dmFyIFRBZSxFbHI9dSgoKT0+e1YyKCk7UDQoKTt5eSgpO1RBZT16cyhjbGFzcyBleHRlbmRzIFlse2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmtleT13aX1yZW5kZXIodCxlKXtyZXR1cm4gdGhpcy5rZXk9dCxlfXVwZGF0ZSh0LFtlLHJdKXtyZXR1cm4gZSE9PXRoaXMua2V5JiYoZF8odCksdGhpcy5rZXk9ZSkscn19KX0pO3ZhciBJbHI9dSgoKT0+e0VscigpfSk7dmFyIFBscixMQWUsTmxyPXUoKCk9PntWMigpO1A0KCk7eXkoKTtQbHI9aSgodCxlLHIpPT57bGV0IGE9bmV3IE1hcDtmb3IobGV0IHM9ZTtzPD1yO3MrKylhLnNldCh0W3NdLHMpO3JldHVybiBhfSwidSIpLExBZT16cyhjbGFzcyBleHRlbmRzIFlse2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKHQpLHQudHlwZSE9PXRkLkNISUxEKXRocm93IEVycm9yKCJyZXBlYXQoKSBjYW4gb25seSBiZSB1c2VkIGluIHRleHQgZXhwcmVzc2lvbnMiKX1kdCh0LGUscil7bGV0IGE7cj09PXZvaWQgMD9yPWU6ZSE9PXZvaWQgMCYmKGE9ZSk7bGV0IHM9W10sbj1bXSxvPTA7Zm9yKGxldCBsIG9mIHQpc1tvXT1hP2EobCxvKTpvLG5bb109cihsLG8pLG8rKztyZXR1cm57dmFsdWVzOm4sa2V5czpzfX1yZW5kZXIodCxlLHIpe3JldHVybiB0aGlzLmR0KHQsZSxyKS52YWx1ZXN9dXBkYXRlKHQsW2UscixhXSl7bGV0IHM9dkFlKHQpLHt2YWx1ZXM6bixrZXlzOm99PXRoaXMuZHQoZSxyLGEpO2lmKCFBcnJheS5pc0FycmF5KHMpKXJldHVybiB0aGlzLnV0PW8sbjtsZXQgbD10aGlzLnV0Pz89W10sYz1bXSxkLGYscD0wLGg9cy5sZW5ndGgtMSxtPTAsdj1uLmxlbmd0aC0xO2Zvcig7cDw9aCYmbTw9djspaWYoc1twXT09PW51bGwpcCsrO2Vsc2UgaWYoc1toXT09PW51bGwpaC0tO2Vsc2UgaWYobFtwXT09PW9bbV0pY1ttXT1pYyhzW3BdLG5bbV0pLHArKyxtKys7ZWxzZSBpZihsW2hdPT09b1t2XSljW3ZdPWljKHNbaF0sblt2XSksaC0tLHYtLTtlbHNlIGlmKGxbcF09PT1vW3ZdKWNbdl09aWMoc1twXSxuW3ZdKSxONCh0LGNbdisxXSxzW3BdKSxwKyssdi0tO2Vsc2UgaWYobFtoXT09PW9bbV0pY1ttXT1pYyhzW2hdLG5bbV0pLE40KHQsc1twXSxzW2hdKSxoLS0sbSsrO2Vsc2UgaWYoZD09PXZvaWQgMCYmKGQ9UGxyKG8sbSx2KSxmPVBscihsLHAsaCkpLGQuaGFzKGxbcF0pKWlmKGQuaGFzKGxbaF0pKXtsZXQgYj1mLmdldChvW21dKSxnPWIhPT12b2lkIDA/c1tiXTpudWxsO2lmKGc9PT1udWxsKXtsZXQgeT1ONCh0LHNbcF0pO2ljKHksblttXSksY1ttXT15fWVsc2UgY1ttXT1pYyhnLG5bbV0pLE40KHQsc1twXSxnKSxzW2JdPW51bGw7bSsrfWVsc2UgdV8oc1toXSksaC0tO2Vsc2UgdV8oc1twXSkscCsrO2Zvcig7bTw9djspe2xldCBiPU40KHQsY1t2KzFdKTtpYyhiLG5bbV0pLGNbbSsrXT1ifWZvcig7cDw9aDspe2xldCBiPXNbcCsrXTtiIT09bnVsbCYmdV8oYil9cmV0dXJuIHRoaXMudXQ9byxkXyh0LGMpLG9pfX0pfSk7dmFyIE9scj11KCgpPT57TmxyKCl9KTt2YXIgWmw9e307VmUoWmwse2FzeW5jQXBwZW5kOigpPT5fQWUsa2V5ZWQ6KCk9PlRBZSxyZXBlYXQ6KCk9PkxBZSxyZXNvbHZlOigpPT53bHIscmVzb2x2ZUV4ZWM6KCk9PmVEYSxzdWJzY3JpYmU6KCk9PnREYSxzdWJzY3JpYmVXaXRoVGVtcGxhdGU6KCk9Pk1scix1bnRpbDooKT0+ekFlfSk7dmFyIFJscj11KCgpPT57a2xyKCk7U2xyKCk7Q2xyKCk7TGxyKCk7QWxyKCk7SWxyKCk7T2xyKCl9KTt2YXIgeCx2ZT11KCgpPT57SzFyKCk7UmwoKTtKMXIoKTt0bHIoKTthbHIoKTtobHIoKTtNcigpO2dscigpO2JscigpO1JscigpO3g9UzNlLmdldFNpbmdsZXRvbigpfSk7dmFyIHNsLFZpLGppLE5lLGx0PXUoKCk9Pnt2ZSgpO3NsPXtjb2xvcnM6e2xpZ2h0OntiZ1ByaW1hcnk6ImhzbCgwIDAlIDEwMCUpIixiZ1NlY29uZGFyeToiaHNsKDAgMCUgOTglKSIsYmdUZXJ0aWFyeToiaHNsKDAgMCUgOTYlKSIsdGV4dFByaW1hcnk6ImhzbCgwIDAlIDMuOSUpIix0ZXh0U2Vjb25kYXJ5OiJoc2woMCAwJSAyMCUpIix0ZXh0TXV0ZWQ6ImhzbCgwIDAlIDQ1JSkiLHRleHRXYXJtOiIjNzg3MTZjIixib3JkZXJEZWZhdWx0OiJoc2woMCAwJSA4OS44JSkiLGJvcmRlclN1YnRsZToiaHNsKDAgMCUgOTMlKSIsYm9yZGVyU3Ryb25nOiJoc2woMCAwJSA4MCUpIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCIsYmFkZ2VEZWZhdWx0Qmc6IiNmNGY0ZjUiLGJhZGdlRGVmYXVsdEZnOiIjM2YzZjQ2IixiYWRnZVN1Y2Nlc3NCZzoiI2RjZmNlNyIsYmFkZ2VTdWNjZXNzRmc6IiMxNjY1MzQiLGJhZGdlV2FybmluZ0JnOiIjZmVmM2M3IixiYWRnZVdhcm5pbmdGZzoiIzkyNDAwZSIsYmFkZ2VFcnJvckJnOiIjZmVlMmUyIixiYWRnZUVycm9yRmc6IiM5OTFiMWIifSxkYXJrOntiZ1ByaW1hcnk6ImhzbCgwIDAlIDMuOSUpIixiZ1NlY29uZGFyeToiaHNsKDAgMCUgMy45JSkiLGJnVGVydGlhcnk6ImhzbCgwIDAlIDclKSIsdGV4dFByaW1hcnk6ImhzbCgwIDAlIDk4JSkiLHRleHRTZWNvbmRhcnk6ImhzbCgwIDAlIDYzLjklKSIsdGV4dE11dGVkOiJoc2woMCAwJSA1NSUpIix0ZXh0V2FybToiI2I1YTk5YSIsYm9yZGVyRGVmYXVsdDoiaHNsKDAgMCUgMTQuOSUpIixib3JkZXJTdWJ0bGU6ImhzbCgwIDAlIDExJSkiLGJvcmRlclN0cm9uZzoiaHNsKDAgMCUgMjAlKSIsYWNjZW50UHJpbWFyeToiIzNiODJmNiIsYWNjZW50U3VjY2VzczoiIzIyYzU1ZSIsYWNjZW50V2FybmluZzoiI2Y1OWUwYiIsYWNjZW50RXJyb3I6IiNlZjQ0NDQiLGJhZGdlRGVmYXVsdEJnOiIjMjcyNzJhIixiYWRnZURlZmF1bHRGZzoiI2ExYTFhYSIsYmFkZ2VTdWNjZXNzQmc6IiMxNDUzMmQiLGJhZGdlU3VjY2Vzc0ZnOiIjNGFkZTgwIixiYWRnZVdhcm5pbmdCZzoiIzQ1MWEwMyIsYmFkZ2VXYXJuaW5nRmc6IiNmYmJmMjQiLGJhZGdlRXJyb3JCZzoiIzQ1MGEwYSIsYmFkZ2VFcnJvckZnOiIjZjg3MTcxIn19LHNwYWNpbmc6e3hzOiI0cHgiLHNtOiI4cHgiLG1kOiIxMnB4IixsZzoiMTZweCIseGw6IjI0cHgiLCIyeGwiOiIzMnB4IiwiM3hsIjoiNDhweCJ9LHJhZGl1czp7eHM6IjJweCIsc206IjRweCIsbWQ6IjZweCIsbGc6IjhweCIseGw6IjEycHgiLGZ1bGw6Ijk5OXB4In0sc2hhZG93czp7eHM6IjAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpIixzbToiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSIsbWQ6IjAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpIixsZzoiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIn0sdHJhbnNpdGlvbnM6e2Zhc3Q6IjAuMXMiLGRlZmF1bHQ6IjAuMTVzIixzbG93OiIwLjJzIixzbG93ZXI6IjAuM3MifSxjb250cm9sSGVpZ2h0czp7c206IjMycHgiLG1kOiIzNnB4IixsZzoiNDBweCIseGw6IjQ4cHgifX0sVmk9c2wuY29sb3JzLmxpZ2h0LGppPXNsLmNvbG9ycy5kYXJrLE5lPXJlYAogIDpob3N0IHsKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQmFja2dyb3VuZCAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWJnLXByaW1hcnk6ICR7eC5iZFRoZW1lKFZpLmJnUHJpbWFyeSxqaS5iZ1ByaW1hcnkpfTsKICAgIC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnk6ICR7eC5iZFRoZW1lKFZpLmJnU2Vjb25kYXJ5LGppLmJnU2Vjb25kYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItYmctdGVydGlhcnk6ICR7eC5iZFRoZW1lKFZpLmJnVGVydGlhcnksamkuYmdUZXJ0aWFyeSl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgVGV4dCAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeTogJHt4LmJkVGhlbWUoVmkudGV4dFByaW1hcnksamkudGV4dFByaW1hcnkpfTsKICAgIC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeTogJHt4LmJkVGhlbWUoVmkudGV4dFNlY29uZGFyeSxqaS50ZXh0U2Vjb25kYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItdGV4dC1tdXRlZDogJHt4LmJkVGhlbWUoVmkudGV4dE11dGVkLGppLnRleHRNdXRlZCl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQm9yZGVyIChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQ6ICR7eC5iZFRoZW1lKFZpLmJvcmRlckRlZmF1bHQsamkuYm9yZGVyRGVmYXVsdCl9OwogICAgLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGU6ICR7eC5iZFRoZW1lKFZpLmJvcmRlclN1YnRsZSxqaS5ib3JkZXJTdWJ0bGUpfTsKICAgIC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nOiAke3guYmRUaGVtZShWaS5ib3JkZXJTdHJvbmcsamkuYm9yZGVyU3Ryb25nKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBXYXJtIFRleHQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci10ZXh0LXdhcm06ICR7eC5iZFRoZW1lKFZpLnRleHRXYXJtLGppLnRleHRXYXJtKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBBY2NlbnQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeTogJHt4LmJkVGhlbWUoVmkuYWNjZW50UHJpbWFyeSxqaS5hY2NlbnRQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItYWNjZW50LXN1Y2Nlc3M6ICR7eC5iZFRoZW1lKFZpLmFjY2VudFN1Y2Nlc3MsamkuYWNjZW50U3VjY2Vzcyl9OwogICAgLS1kZWVzLWNvbG9yLWFjY2VudC13YXJuaW5nOiAke3guYmRUaGVtZShWaS5hY2NlbnRXYXJuaW5nLGppLmFjY2VudFdhcm5pbmcpfTsKICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3I6ICR7eC5iZFRoZW1lKFZpLmFjY2VudEVycm9yLGppLmFjY2VudEVycm9yKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBCYWRnZSAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmc6ICR7eC5iZFRoZW1lKFZpLmJhZGdlRGVmYXVsdEJnLGppLmJhZGdlRGVmYXVsdEJnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1mZzogJHt4LmJkVGhlbWUoVmkuYmFkZ2VEZWZhdWx0RmcsamkuYmFkZ2VEZWZhdWx0RmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnOiAke3guYmRUaGVtZShWaS5iYWRnZVN1Y2Nlc3NCZyxqaS5iYWRnZVN1Y2Nlc3NCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtZmc6ICR7eC5iZFRoZW1lKFZpLmJhZGdlU3VjY2Vzc0ZnLGppLmJhZGdlU3VjY2Vzc0ZnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZzogJHt4LmJkVGhlbWUoVmkuYmFkZ2VXYXJuaW5nQmcsamkuYmFkZ2VXYXJuaW5nQmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS13YXJuaW5nLWZnOiAke3guYmRUaGVtZShWaS5iYWRnZVdhcm5pbmdGZyxqaS5iYWRnZVdhcm5pbmdGZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWJnOiAke3guYmRUaGVtZShWaS5iYWRnZUVycm9yQmcsamkuYmFkZ2VFcnJvckJnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmc6ICR7eC5iZFRoZW1lKFZpLmJhZGdlRXJyb3JGZyxqaS5iYWRnZUVycm9yRmcpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEludGVyYWN0aXZlIFN0YXRlcwogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWhvdmVyOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAtLWRlZXMtY29sb3ItYWN0aXZlOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAtLWRlZXMtY29sb3ItcHJlc3NlZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIil9OwogICAgLS1kZWVzLWNvbG9yLXJvdy1ob3ZlcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMDYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBGb2N1cyBSaW5nCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItZm9jdXMtcmluZzogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuNCkiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBUb29sdGlwIChpbnZlcnRlZCBjb250cmFzdCkKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci10b29sdGlwLWJnOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAtLWRlZXMtY29sb3ItdG9vbHRpcC1mZzogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgTGluawogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWxpbms6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgIC0tZGVlcy1jb2xvci1saW5rLWhvdmVyOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM5M2JiZmQiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBDb2RlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItY29kZS1iZzogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAtLWRlZXMtY29sb3ItY29kZS1ibG9jay1iZzogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgU2VsZWN0aW9uCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3Itc2VsZWN0aW9uOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFNjcm9sbGJhcgogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYjogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3ZlcjogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4yNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFNwYWNpbmcgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1zcGFjaW5nLXhzOiA0cHg7CiAgICAtLWRlZXMtc3BhY2luZy1zbTogOHB4OwogICAgLS1kZWVzLXNwYWNpbmctbWQ6IDEycHg7CiAgICAtLWRlZXMtc3BhY2luZy1sZzogMTZweDsKICAgIC0tZGVlcy1zcGFjaW5nLXhsOiAyNHB4OwogICAgLS1kZWVzLXNwYWNpbmctMnhsOiAzMnB4OwogICAgLS1kZWVzLXNwYWNpbmctM3hsOiA0OHB4OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIEJvcmRlciBSYWRpdXMgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1yYWRpdXMteHM6IDJweDsKICAgIC0tZGVlcy1yYWRpdXMtc206IDRweDsKICAgIC0tZGVlcy1yYWRpdXMtbWQ6IDZweDsKICAgIC0tZGVlcy1yYWRpdXMtbGc6IDhweDsKICAgIC0tZGVlcy1yYWRpdXMteGw6IDEycHg7CiAgICAtLWRlZXMtcmFkaXVzLWZ1bGw6IDk5OXB4OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFNoYWRvdyBFbGV2YXRpb24gU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1zaGFkb3cteHM6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgLS1kZWVzLXNoYWRvdy1zbTogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgIC0tZGVlcy1zaGFkb3ctbWQ6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgLS1kZWVzLXNoYWRvdy1sZzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFRyYW5zaXRpb24gRHVyYXRpb24gU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy10cmFuc2l0aW9uLWZhc3Q6IDAuMXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0OiAwLjE1czsKICAgIC0tZGVlcy10cmFuc2l0aW9uLXNsb3c6IDAuMnM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXI6IDAuM3M7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29udHJvbCBIZWlnaHQgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1zbTogMzJweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1tZDogMzZweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1sZzogNDBweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC14bDogNDhweDsKICB9CmB9KTt2YXIgRmxyPXUoKCk9Pnt9KTt2YXIgREFlPXUoKCk9PntzYygpO3NjKCl9KTt2YXIgQmxyPXUoKCk9Pnt9KTt2YXIgSGxyPXUoKCk9Pnt9KTt2YXIgcWxyPXUoKCk9Pnt9KTt2YXIgVmxyPXUoKCk9Pnt9KTt2YXIgJEFlPXt9O3ZhciBBQWU9dSgoKT0+e0JscigpO0hscigpO3FscigpO1ZscigpfSk7dmFyIGpscj11KCgpPT57QUFlKCk7JDNlKCl9KTt2YXIgVWxyPXUoKCk9PntzYygpfSk7dmFyIFdscj11KCgpPT57fSk7dmFyIEdscj11KCgpPT57c2MoKX0pO3ZhciBZbHI9dSgoKT0+e3NjKCl9KTt2YXIgS2xyPXUoKCk9Pnt9KTt2YXIgWmxyPXUoKCk9Pnt9KTt2YXIgUWxyPXUoKCk9Pnt9KTt2YXIgRUFlPXt9O3ZhciBBM2U9dSgoKT0+e1VscigpO1dscigpO0dscigpO1lscigpO0tscigpO1pscigpO1FscigpfSk7dmFyIFhscj11KCgpPT57QTNlKCk7REFlKCl9KTt2YXIgSmxyPXUoKCk9PnskM2UoKTtBM2UoKX0pO3ZhciBlMnI9dSgoKT0+e30pO3ZhciB0MnI9dSgoKT0+e30pO3ZhciBJQWU9e307dmFyICQzZT11KCgpPT57RmxyKCk7REFlKCk7amxyKCk7WGxyKCk7SmxyKCk7ZTJyKCk7dDJyKCl9KTt2YXIgcjJyPXUoKCk9Pnt9KTt2YXIgYTJyPXUoKCk9Pnt9KTt2YXIgUEFlPXt9O3ZhciBpMnI9dSgoKT0+e3IycigpO2EycigpfSk7dmFyIHMycj11KCgpPT57fSk7dmFyIG4ycj11KCgpPT57fSk7dmFyIE5BZT17fTt2YXIgbzJyPXUoKCk9PntzMnIoKTtuMnIoKX0pO3ZhciBPQWU9e307dmFyIGwycj11KCgpPT57fSk7dmFyIFJBZT11KCgpPT57c2MoKX0pO3ZhciBjMnI9dSgoKT0+e3NjKCl9KTt2YXIgZDJyPXUoKCk9PntSQWUoKX0pO3ZhciBGQWU9e307dmFyIHUycj11KCgpPT57UkFlKCk7YzJyKCk7ZDJyKCl9KTt2YXIgcDJyPXUoKCk9Pnt9KTt2YXIgZjJyPXUoKCk9Pnt9KTt2YXIgQkFlPXt9O3ZhciBoMnI9dSgoKT0+e3AycigpO2YycigpfSk7dmFyIEhBZT11KCgpPT57fSk7dmFyIHFBZSxtMnI9dSgoKT0+e0hBZSgpO3FBZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJQ25hbWVEZXNjcmlwdG9yIil9fX0pO3ZhciBnMnI9dSgoKT0+e30pO3ZhciBiMnI9dSgoKT0+e30pO3ZhciB4MnI9dSgoKT0+e30pO3ZhciB2MnI9dSgoKT0+e30pO3ZhciB5MnI9dSgoKT0+e30pO3ZhciB3MnI9dSgoKT0+e30pO3ZhciBrMnI9dSgoKT0+e30pO3ZhciBTMnI9dSgoKT0+e30pO3ZhciBNMnI9dSgoKT0+e30pO3ZhciBDMnI9dSgoKT0+e30pO3ZhciBFM2U9e307VmUoRTNlLHtJQ25hbWVEZXNjcmlwdG9yOigpPT5xQWV9KTt2YXIgejJyPXUoKCk9PntIQWUoKTttMnIoKTtnMnIoKTtiMnIoKTt4MnIoKTt2MnIoKTt5MnIoKTt3MnIoKTtrMnIoKTtTMnIoKTtNMnIoKTtDMnIoKX0pO3ZhciBWQWU9dSgoKT0+e30pO3ZhciBfMnI9dSgoKT0+e1ZBZSgpfSk7dmFyIGpBZT17fTt2YXIgVDJyPXUoKCk9PntfMnIoKTtWQWUoKX0pO3ZhciBVQWU9e307dmFyIEwycj11KCgpPT57fSk7dmFyIEQycj11KCgpPT57fSk7dmFyICQycj11KCgpPT57fSk7dmFyIEEycj11KCgpPT57fSk7dmFyIFdBZT17fTt2YXIgRTJyPXUoKCk9PntEMnIoKTskMnIoKTtBMnIoKX0pO3ZhciBJMnI9dSgoKT0+e30pO3ZhciBHQWU9e307VmUoR0FlLHtidXNpbmVzczooKT0+SUFlLGNvZGU6KCk9PlBBZSxjb250YWluZXI6KCk9Pk5BZSxjb250ZW50OigpPT5GQWUsZGF0YWJhc2U6KCk9PiRBZSxkZXNjcmlwdG9yczooKT0+T0FlLGZpbmFuY2U6KCk9PkVBZSxnZW5lcmFsOigpPT5CQWUsbmV0d29yazooKT0+RTNlLHNhYXM6KCk9PmpBZSxzdG9yYWdlOigpPT5VQWUsd2Vic2l0ZTooKT0+V0FlfSk7dmFyIHNjPXUoKCk9PnskM2UoKTtpMnIoKTtvMnIoKTtBQWUoKTtsMnIoKTtBM2UoKTt1MnIoKTtoMnIoKTt6MnIoKTtUMnIoKTtMMnIoKTtFMnIoKTtJMnIoKX0pO3ZhciB2bj11KCgpPT57SzEoKTtzYygpfSk7dmFyIFAycixOMnI9dSgoKT0+e3ZlKCk7dm4oKTtzcygpO1Aycj1pKCgpPT53YAo8c3R5bGU+CiAgLndpdGhNYXJnaW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IDIwcHg7CiAgfQogIC5kZW1vLWNvbnRhaW5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMjBweDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBtaW4taGVpZ2h0OiA0MDBweDsKICB9CiAgLmRlbW8tYXJlYSB7CiAgICBwYWRkaW5nOiA0MHB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgfQogIC5kZW1vLWFyZWE6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAyKTsKICB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJCYXNpYyBDb250ZXh0IE1lbnUgd2l0aCBOZXN0ZWQgU3VibWVudXMiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZpbGUiLGljb25OYW1lOiJmaWxlVGV4dCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXciLGljb25OYW1lOiJmaWxlUGx1cyIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtPIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBmaWxlIiksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6InNhdmUiLHNob3J0Y3V0OiJDbWQrUyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhwb3J0IGFzIFBERiIsaWNvbk5hbWU6ImRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IFBERiIpLCJhY3Rpb24iKX0se25hbWU6IkV4cG9ydCBhcyBIVE1MIixpY29uTmFtZToiY29kZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4cG9ydCBIVE1MIiksImFjdGlvbiIpfV19LHtuYW1lOiJFZGl0IixpY29uTmFtZToiZWRpdDMiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiQ3V0IixpY29uTmFtZToic2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpLCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5IiksImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZpbmQiLGljb25OYW1lOiJzZWFyY2giLHNob3J0Y3V0OiJDbWQrRiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZpbmQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToicmVwZWF0IixzaG9ydGN1dDoiQ21kK0giLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBsYWNlIiksImFjdGlvbiIpfV19LHtuYW1lOiJWaWV3IixpY29uTmFtZToiZXllIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ilpvb20gSW4iLGljb25OYW1lOiJ6b29tSW4iLHNob3J0Y3V0OiJDbWQrKyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKSwiYWN0aW9uIil9LHtuYW1lOiJab29tIE91dCIsaWNvbk5hbWU6Inpvb21PdXQiLHNob3J0Y3V0OiJDbWQrLSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gb3V0IiksImFjdGlvbiIpfSx7bmFtZToiUmVzZXQgWm9vbSIsaWNvbk5hbWU6Im1heGltaXplMiIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVzZXQgem9vbSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGdWxsIFNjcmVlbiIsaWNvbk5hbWU6Im1heGltaXplIixzaG9ydGN1dDoiRjExIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRnVsbCBzY3JlZW4iKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKSwiYWN0aW9uIil9LHtuYW1lOiJIZWxwIixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV0pfX0+CiAgICAgIDxoMz5SaWdodC1jbGljayBhbnl3aGVyZSBpbiB0aGlzIGFyZWE8L2gzPgogICAgICA8cD5BIGNvbnRleHQgbWVudSB3aXRoIG5lc3RlZCBzdWJtZW51cyB3aWxsIGFwcGVhcjwvcD4KICAgIDwvZGl2PgogIDwvZGVlcy1wYW5lbD4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJDb21wb25lbnQtU3BlY2lmaWMgQ29udGV4dCBNZW51Ij4KICAgIDxkZWVzLWJ1dHRvbiBzdHlsZT0ibWFyZ2luOiAyMHB4OyIgQGNvbnRleHRtZW51PSR7dD0+e0NyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHQsW3tuYW1lOiJCdXR0b24gQWN0aW9ucyIsaWNvbk5hbWU6Im1vdXNlUG9pbnRlciIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJDbGljayIsaWNvbk5hbWU6Im1vdXNlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ2xpY2sgYWN0aW9uIiksImFjdGlvbiIpfSx7bmFtZToiRG91YmxlIENsaWNrIixpY29uTmFtZToiemFwIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG91YmxlIGNsaWNrIiksImFjdGlvbiIpfSx7bmFtZToiTG9uZyBQcmVzcyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTG9uZyBwcmVzcyIpLCJhY3Rpb24iKX1dfSx7bmFtZToiQnV0dG9uIFN0YXRlIixpY29uTmFtZToidG9nZ2xlTGVmdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJFbmFibGUiLGljb25OYW1lOiJjaGVja0NpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkVuYWJsZSIpLCJhY3Rpb24iKX0se25hbWU6IkRpc2FibGUiLGljb25OYW1lOiJ4Q2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRGlzYWJsZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaG93IixpY29uTmFtZToiZXllIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2hvdyIpLCJhY3Rpb24iKX0se25hbWU6IkhpZGUiLGljb25OYW1lOiJleWVPZmYiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJIaWRlIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiRGlzYWJsZWQgQWN0aW9uIixpY29uTmFtZToiYmFuIixkaXNhYmxlZDohMCxhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVGhpcyBzaG91bGQgbm90IHJ1biIpLCJhY3Rpb24iKX0se25hbWU6IlByb3BlcnRpZXMiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkJ1dHRvbiBwcm9wZXJ0aWVzIiksImFjdGlvbiIpfV0pfX0+UmlnaHQtY2xpY2sgb24gdGhpcyBidXR0b248L2RlZXMtYnV0dG9uPgogIDwvZGVlcy1wYW5lbD4KCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iQWR2YW5jZWQgQ29udGV4dCBNZW51IEV4YW1wbGUiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZvcm1hdCIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiQm9sZCIsaWNvbk5hbWU6ImJvbGQiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkJvbGQiKSwiYWN0aW9uIil9LHtuYW1lOiJJdGFsaWMiLGljb25OYW1lOiJpdGFsaWMiLHNob3J0Y3V0OiJDbWQrSSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkl0YWxpYyIpLCJhY3Rpb24iKX0se25hbWU6IlVuZGVybGluZSIsaWNvbk5hbWU6InVuZGVybGluZSIsc2hvcnRjdXQ6IkNtZCtVIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVW5kZXJsaW5lIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZvbnQgU2l6ZSIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IHNpemUgbWVudSIpLCJhY3Rpb24iKX0se25hbWU6IkZvbnQgQ29sb3IiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRm9udCBjb2xvciBtZW51IiksImFjdGlvbiIpfV19LHtuYW1lOiJUcmFuc2Zvcm0iLGljb25OYW1lOiJzaHVmZmxlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRvIFVwcGVyY2FzZSIsaWNvbk5hbWU6ImFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVcHBlcmNhc2UiKSwiYWN0aW9uIil9LHtuYW1lOiJUbyBMb3dlcmNhc2UiLGljb25OYW1lOiJhcnJvd0Rvd24iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb3dlcmNhc2UiKSwiYWN0aW9uIil9LHtuYW1lOiJDYXBpdGFsaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNhcGl0YWxpemUiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEZWxldGUiKSwiYWN0aW9uIil9XSl9fT4KICAgICAgPGgzPkFkdmFuY2VkIE5lc3RlZCBNZW51IEV4YW1wbGU8L2gzPgogICAgICA8cD5UaGlzIHNob3dzIGRlZXBseSBuZXN0ZWQgc3VibWVudXMgYW5kIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIAogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IlN0YXRpYyBDb250ZXh0IE1lbnUgKEFsd2F5cyBWaXNpYmxlKSI+CiAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICBjbGFzcz0id2l0aE1hcmdpbiIKICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlciIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLHNob3J0Y3V0OiJDbWQrU2hpZnQrTiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBwcm9qZWN0IiksImFjdGlvbiIpfSx7bmFtZToiT3BlbiBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtPIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBwcm9qZWN0IiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlByb2plY3QgQWxwaGEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEFscGhhIiksImFjdGlvbiIpfSx7bmFtZToiUHJvamVjdCBCZXRhIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBCZXRhIiksImFjdGlvbiIpfSx7bmFtZToiUHJvamVjdCBHYW1tYSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gR2FtbWEiKSwiYWN0aW9uIil9XX1dfSx7bmFtZToiVG9vbHMiLGljb25OYW1lOiJ0b29sIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRlcm1pbmFsIixpY29uTmFtZToidGVybWluYWwiLHNob3J0Y3V0OiJDbWQrVCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRlcm1pbmFsIiksImFjdGlvbiIpfSx7bmFtZToiQ29uc29sZSIsaWNvbk5hbWU6Im1vbml0b3IiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvbnNvbGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXh0ZW5zaW9ucyIsaWNvbk5hbWU6InBhY2thZ2UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHRlbnNpb25zIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJzbGlkZXJzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJlZmVyZW5jZXMiKSwiYWN0aW9uIil9XX0KICAgID48L2RlZXMtY29udGV4dG1lbnU+CiAgPC9kZWVzLXBhbmVsPgo8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBmXyxPNCx5bixuYz11KCgpPT57dmUoKTtPbygpO2ZfPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxPND1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0seW49KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdpbmRvd2xheWVyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXaW5kb3dMYXllciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W2llKCldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxmXyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+Im9wdGlvbnMiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5vcHRpb25zLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00ub3B0aW9ucz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksZl8odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrZHJvcFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iYmFja2Ryb3BaSW5kZXgiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5iYWNrZHJvcFpJbmRleCwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmJhY2tkcm9wWkluZGV4PU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxmXyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImNvbnRlbnRaSW5kZXgiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5jb250ZW50WkluZGV4LCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uY29udGVudFpJbmRleD1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGgsbSksZl8odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJ2aXNpYmxlImluIE0sImhhcyIpLGdldDppKE09Pk0udmlzaWJsZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnZpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGZfKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwscikseT1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89aSgoKT0+d2A8ZGVlcy13aW5kb3dsYXllcj48L2RlZXMtd2luZG93bGF5ZXI+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGspe2xldCBNPVh0LkRvbVRvb2xzLmdldEdsb2JhbERvbVRvb2xzU3luYygpLE49bmV3IHk7cmV0dXJuIE4ub3B0aW9ucz17Li4uTi5vcHRpb25zLC4uLmt9LGRvY3VtZW50LmJvZHkuYXBwZW5kKE4pLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxOLnNob3coKSxOfSNlPU80KHRoaXMsbyx7Ymx1cjohMX0pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoayl7dGhpcy4jZT1rfSN0PShPNCh0aGlzLGwpLE80KHRoaXMsZCwxZTMpKTtnZXQgYmFja2Ryb3BaSW5kZXgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja2Ryb3BaSW5kZXgoayl7dGhpcy4jdD1rfSNyPShPNCh0aGlzLGYpLE80KHRoaXMsaCwxMDAxKSk7Z2V0IGNvbnRlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGVudFpJbmRleChrKXt0aGlzLiNyPWt9I2E9KE80KHRoaXMsbSksTzQodGhpcyxiLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmlzaWJsZShrKXt0aGlzLiNhPWt9Y29uc3RydWN0b3IoKXtzdXBlcigpLE80KHRoaXMsZyksWHQuZWxlbWVudEJhc2ljLnNldHVwKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7WHQuZWxlbWVudEJhc2ljLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgIC53aW5kb3dPdmVybGF5IHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMHB4OwogICAgICAgICAgbGVmdDogMHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMCk7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMSkgJHt0aGlzLm9wdGlvbnMuYmx1cj8iYmx1cigwcHgpIjoiIn07CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5iYWNrZHJvcFpJbmRleH07CiAgICAgICAgfQogICAgICAgIC5zbG90Q29udGVudCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5jb250ZW50WkluZGV4fTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2xvdENvbnRlbnQgPiAqIHsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudmlzaWJsZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMC45KSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDJweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IEBjbGljaz0ke3RoaXMuZGlzcGF0Y2hDbGlja2VkfSBjbGFzcz0id2luZG93T3ZlcmxheSAke3RoaXMudmlzaWJsZT8idmlzaWJsZSI6bnVsbH0iPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnZpc2libGU9ITB9LDEwMCl9ZGlzcGF0Y2hDbGlja2VkKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIpKX10b2dnbGVWaXNpYmlsaXR5KCl7dGhpcy52aXNpYmxlPSF0aGlzLnZpc2libGV9Z2V0Q29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLmNvbnRlbnRaSW5kZXh9YXN5bmMgc2hvdygpe2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuYmFja2Ryb3BaSW5kZXg9eXIuZ2V0TmV4dFpJbmRleCgpLHRoaXMuY29udGVudFpJbmRleD15ci5nZXROZXh0WkluZGV4KCkseXIucmVnaXN0ZXIodGhpcyx0aGlzLmJhY2tkcm9wWkluZGV4KSxhd2FpdCBrLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwfWFzeW5jIGhpZGUoKXthd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITF9YXN5bmMgZGVzdHJveSgpe2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2F3YWl0IHRoaXMuaGlkZSgpLGF3YWl0IGsuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLHlyLnVucmVnaXN0ZXIodGhpcyksdGhpcy5yZW1vdmUoKX1zdGF0aWN7TzQoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7ZnVuY3Rpb24gWUFlKHQsZSl7KGU9PW51bGx8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciByPTAsYT1BcnJheShlKTtyPGU7cisrKWFbcl09dFtyXTtyZXR1cm4gYX1mdW5jdGlvbiBpRGEodCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH1mdW5jdGlvbiBzRGEodCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gWUFlKHQpfWZ1bmN0aW9uIG5EYSh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE8ycih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgYT1lW3JdO2EuZW51bWVyYWJsZT1hLmVudW1lcmFibGV8fCExLGEuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBhJiYoYS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsRjJyKGEua2V5KSxhKX19ZnVuY3Rpb24gb0RhKHQsZSxyKXtyZXR1cm4gZSYmTzJyKHQucHJvdG90eXBlLGUpLHImJk8ycih0LHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHR9ZnVuY3Rpb24gSTNlKHQsZSl7dmFyIHI9dHlwZW9mIFN5bWJvbDwidSImJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKCFyKXtpZihBcnJheS5pc0FycmF5KHQpfHwocj1LQWUodCkpfHxlJiZ0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiKXtyJiYodD1yKTt2YXIgYT0wLHM9aShmdW5jdGlvbigpe30sIkYiKTtyZXR1cm57cyxuOmkoZnVuY3Rpb24oKXtyZXR1cm4gYT49dC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOnRbYSsrXX19LCJuIiksZTppKGZ1bmN0aW9uKGMpe3Rocm93IGN9LCJlIiksZjpzfX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX12YXIgbixvPSEwLGw9ITE7cmV0dXJue3M6aShmdW5jdGlvbigpe3I9ci5jYWxsKHQpfSwicyIpLG46aShmdW5jdGlvbigpe3ZhciBjPXIubmV4dCgpO3JldHVybiBvPWMuZG9uZSxjfSwibiIpLGU6aShmdW5jdGlvbihjKXtsPSEwLG49Y30sImUiKSxmOmkoZnVuY3Rpb24oKXt0cnl7b3x8ci5yZXR1cm49PW51bGx8fHIucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IG59fSwiZiIpfX1mdW5jdGlvbiBtcih0LGUscil7cmV0dXJuKGU9RjJyKGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09cix0fWZ1bmN0aW9uIGxEYSh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZQM2UodCxlKX1mdW5jdGlvbiBjRGEodCl7aWYodHlwZW9mIFN5bWJvbDwidSImJnRbU3ltYm9sLml0ZXJhdG9yXSE9bnVsbHx8dFsiQEBpdGVyYXRvciJdIT1udWxsKXJldHVybiBBcnJheS5mcm9tKHQpfWZ1bmN0aW9uIGREYSh0LGUpe3ZhciByPXQ9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sPCJ1IiYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYociE9bnVsbCl7dmFyIGEscyxuLG8sbD1bXSxjPSEwLGQ9ITE7dHJ5e2lmKG49KHI9ci5jYWxsKHQpKS5uZXh0LGU9PT0wKXtpZihPYmplY3QocikhPT1yKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KGE9bi5jYWxsKHIpKS5kb25lKSYmKGwucHVzaChhLnZhbHVlKSxsLmxlbmd0aCE9PWUpO2M9ITApO31jYXRjaChmKXtkPSEwLHM9Zn1maW5hbGx5e3RyeXtpZighYyYmci5yZXR1cm4hPW51bGwmJihvPXIucmV0dXJuKCksT2JqZWN0KG8pIT09bykpcmV0dXJufWZpbmFsbHl7aWYoZCl0aHJvdyBzfX1yZXR1cm4gbH19ZnVuY3Rpb24gdURhKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIHBEYSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gUjJyKHQsZSl7dmFyIHI9T2JqZWN0LmtleXModCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtlJiYoYT1hLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHMpLmVudW1lcmFibGV9KSksci5wdXNoLmFwcGx5KHIsYSl9cmV0dXJuIHJ9ZnVuY3Rpb24gc3QodCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHI9YXJndW1lbnRzW2VdIT1udWxsP2FyZ3VtZW50c1tlXTp7fTtlJTI/UjJyKE9iamVjdChyKSwhMCkuZm9yRWFjaChmdW5jdGlvbihhKXttcih0LGEsclthXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTpSMnIoT2JqZWN0KHIpKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGEpKX0pfXJldHVybiB0fWZ1bmN0aW9uIFAzZSh0LGUpe3JldHVybiBQM2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24ocixhKXtyZXR1cm4gci5fX3Byb3RvX189YSxyfSxQM2UodCxlKX1mdW5jdGlvbiBOM2UodCxlKXtyZXR1cm4gaURhKHQpfHxkRGEodCxlKXx8S0FlKHQsZSl8fHVEYSgpfWZ1bmN0aW9uIG9jKHQpe3JldHVybiBzRGEodCl8fGNEYSh0KXx8S0FlKHQpfHxwRGEoKX1mdW5jdGlvbiBmRGEodCxlKXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihyIT09dm9pZCAwKXt2YXIgYT1yLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKHR5cGVvZiBhIT0ib2JqZWN0IilyZXR1cm4gYTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybihlPT09InN0cmluZyI/U3RyaW5nOk51bWJlcikodCl9ZnVuY3Rpb24gRjJyKHQpe3ZhciBlPWZEYSh0LCJzdHJpbmciKTtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiP2U6ZSsiIn1mdW5jdGlvbiBPM2UodCl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gTzNlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxPM2UodCl9ZnVuY3Rpb24gS0FlKHQsZSl7aWYodCl7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiBZQWUodCxlKTt2YXIgcj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiByPT09Ik9iamVjdCImJnQuY29uc3RydWN0b3ImJihyPXQuY29uc3RydWN0b3IubmFtZSkscj09PSJNYXAifHxyPT09IlNldCI/QXJyYXkuZnJvbSh0KTpyPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP1lBZSh0LGUpOnZvaWQgMH19ZnVuY3Rpb24geW8oKXt5bz1pKGZ1bmN0aW9uKHMsbil7cmV0dXJuIG5ldyByKHMsdm9pZCAwLG4pfSwiX3dyYXBSZWdFeHAiKTt2YXIgdD1SZWdFeHAucHJvdG90eXBlLGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcihzLG4sbyl7dmFyIGw9UmVnRXhwKHMsbik7cmV0dXJuIGUuc2V0KGwsb3x8ZS5nZXQocykpLFAzZShsLHIucHJvdG90eXBlKX1pKHIsIkJhYmVsUmVnRXhwIik7ZnVuY3Rpb24gYShzLG4pe3ZhciBvPWUuZ2V0KG4pO3JldHVybiBPYmplY3Qua2V5cyhvKS5yZWR1Y2UoZnVuY3Rpb24obCxjKXt2YXIgZD1vW2NdO2lmKHR5cGVvZiBkPT0ibnVtYmVyIilsW2NdPXNbZF07ZWxzZXtmb3IodmFyIGY9MDtzW2RbZl1dPT09dm9pZCAwJiZmKzE8ZC5sZW5ndGg7KWYrKztsW2NdPXNbZFtmXV19cmV0dXJuIGx9LE9iamVjdC5jcmVhdGUobnVsbCkpfXJldHVybiBpKGEsImJ1aWxkR3JvdXBzIiksbERhKHIsUmVnRXhwKSxyLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKHMpe3ZhciBuPXQuZXhlYy5jYWxsKHRoaXMscyk7aWYobil7bi5ncm91cHM9YShuLHRoaXMpO3ZhciBvPW4uaW5kaWNlcztvJiYoby5ncm91cHM9YShvLHRoaXMpKX1yZXR1cm4gbn0sci5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdPWZ1bmN0aW9uKHMsbil7aWYodHlwZW9mIG49PSJzdHJpbmciKXt2YXIgbz1lLmdldCh0aGlzKTtyZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHMsbi5yZXBsYWNlKC9cJDwoW14+XSspKD58JCkvZyxmdW5jdGlvbihjLGQsZil7aWYoZj09PSIiKXJldHVybiBjO3ZhciBwPW9bZF07cmV0dXJuIEFycmF5LmlzQXJyYXkocCk/IiQiK3Auam9pbigiJCIpOnR5cGVvZiBwPT0ibnVtYmVyIj8iJCIrcDoiIn0pKX1pZih0eXBlb2Ygbj09ImZ1bmN0aW9uIil7dmFyIGw9dGhpcztyZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHMsZnVuY3Rpb24oKXt2YXIgYz1hcmd1bWVudHM7cmV0dXJuIHR5cGVvZiBjW2MubGVuZ3RoLTFdIT0ib2JqZWN0IiYmKGM9W10uc2xpY2UuY2FsbChjKSkucHVzaChhKGMsbCkpLG4uYXBwbHkodGhpcyxjKX0pfXJldHVybiB0W1N5bWJvbC5yZXBsYWNlXS5jYWxsKHRoaXMscyxuKX0seW8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG1fKHQpe3JldHVybiBuZXcgUHJveHkodCx7Z2V0OmkoZnVuY3Rpb24ocixhKXtyZXR1cm4gYSBpbiByP3JbYV06cltEbl19LCJnZXQiKX0pfWZ1bmN0aW9uIHRBYSh0KXt2YXIgZT1kaS5xdWVyeVNlbGVjdG9yKCJzY3JpcHRbIit0KyJdIik7aWYoZSlyZXR1cm4gZS5nZXRBdHRyaWJ1dGUodCl9ZnVuY3Rpb24gckFhKHQpe3JldHVybiB0PT09IiI/ITA6dD09PSJmYWxzZSI/ITE6dD09PSJ0cnVlIj8hMDp0fWZ1bmN0aW9uIGFBYSh0KXtyZXR1cm4gYl8ucHVzaCh0KSxmdW5jdGlvbigpe2JfLnNwbGljZShiXy5pbmRleE9mKHQpLDEpfX1mdW5jdGlvbiBpQWEodCl7aWYoISghdHx8IVI0KSl7dmFyIGU9ZGkuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvY3NzIiksZS5pbm5lckhUTUw9dDtmb3IodmFyIHI9ZGkuaGVhZC5jaGlsZE5vZGVzLGE9bnVsbCxzPXIubGVuZ3RoLTE7cz4tMTtzLS0pe3ZhciBuPXJbc10sbz0obi50YWdOYW1lfHwiIikudG9VcHBlckNhc2UoKTtbIlNUWUxFIiwiTElOSyJdLmluZGV4T2Yobyk+LTEmJihhPW4pfXJldHVybiBkaS5oZWFkLmluc2VydEJlZm9yZShlLGEpLHR9fWZ1bmN0aW9uIExjcigpe2Zvcih2YXIgdD0xMixlPSIiO3QtLSA+MDspZSs9c0FhW01hdGgucmFuZG9tKCkqNjJ8MF07cmV0dXJuIGV9ZnVuY3Rpb24gU3kodCl7Zm9yKHZhciBlPVtdLHI9KHR8fFtdKS5sZW5ndGg+Pj4wO3ItLTspZVtyXT10W3JdO3JldHVybiBlfWZ1bmN0aW9uIGNFZSh0KXtyZXR1cm4gdC5jbGFzc0xpc3Q/U3kodC5jbGFzc0xpc3QpOih0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpLnNwbGl0KCIgIikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSl9ZnVuY3Rpb24gRGNyKHQpe3JldHVybiIiLmNvbmNhdCh0KS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjMzk7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iil9ZnVuY3Rpb24gbkFhKHQpe3JldHVybiBPYmplY3Qua2V5cyh0fHx7fSkucmVkdWNlKGZ1bmN0aW9uKGUscil7cmV0dXJuIGUrIiIuY29uY2F0KHIsJz0iJykuY29uY2F0KERjcih0W3JdKSwnIiAnKX0sIiIpLnRyaW0oKX1mdW5jdGlvbiBCM2UodCl7cmV0dXJuIE9iamVjdC5rZXlzKHR8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZSsiIi5jb25jYXQociwiOiAiKS5jb25jYXQodFtyXS50cmltKCksIjsiKX0sIiIpfWZ1bmN0aW9uIGRFZSh0KXtyZXR1cm4gdC5zaXplIT09cmQuc2l6ZXx8dC54IT09cmQueHx8dC55IT09cmQueXx8dC5yb3RhdGUhPT1yZC5yb3RhdGV8fHQuZmxpcFh8fHQuZmxpcFl9ZnVuY3Rpb24gb0FhKHQpe3ZhciBlPXQudHJhbnNmb3JtLHI9dC5jb250YWluZXJXaWR0aCxhPXQuaWNvbldpZHRoLHM9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHIvMiwiIDI1NikiKX0sbj0idHJhbnNsYXRlKCIuY29uY2F0KGUueCozMiwiLCAiKS5jb25jYXQoZS55KjMyLCIpICIpLG89InNjYWxlKCIuY29uY2F0KGUuc2l6ZS8xNiooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplLzE2KihlLmZsaXBZPy0xOjEpLCIpICIpLGw9InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiIDAgMCkiKSxjPXt0cmFuc2Zvcm06IiIuY29uY2F0KG4sIiAiKS5jb25jYXQobywiICIpLmNvbmNhdChsKX0sZD17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoYS8yKi0xLCIgLTI1NikiKX07cmV0dXJue291dGVyOnMsaW5uZXI6YyxwYXRoOmR9fWZ1bmN0aW9uIGxBYSh0KXt2YXIgZT10LnRyYW5zZm9ybSxyPXQud2lkdGgsYT1yPT09dm9pZCAwP2VFZTpyLHM9dC5oZWlnaHQsbj1zPT09dm9pZCAwP2VFZTpzLG89dC5zdGFydENlbnRlcmVkLGw9bz09PXZvaWQgMD8hMTpvLGM9IiI7cmV0dXJuIGwmJkcycj9jKz0idHJhbnNsYXRlKCIuY29uY2F0KGUueC9EcC1hLzIsImVtLCAiKS5jb25jYXQoZS55L0RwLW4vMiwiZW0pICIpOmw/Yys9InRyYW5zbGF0ZShjYWxjKC01MCUgKyAiLmNvbmNhdChlLngvRHAsImVtKSwgY2FsYygtNTAlICsgIikuY29uY2F0KGUueS9EcCwiZW0pKSAiKTpjKz0idHJhbnNsYXRlKCIuY29uY2F0KGUueC9EcCwiZW0sICIpLmNvbmNhdChlLnkvRHAsImVtKSAiKSxjKz0ic2NhbGUoIi5jb25jYXQoZS5zaXplL0RwKihlLmZsaXBYPy0xOjEpLCIsICIpLmNvbmNhdChlLnNpemUvRHAqKGUuZmxpcFk/LTE6MSksIikgIiksYys9InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiZGVnKSAiKSxjfWZ1bmN0aW9uICRjcigpe3ZhciB0PXZjcixlPXljcixyPXF0LmNzc1ByZWZpeCxhPXF0LnJlcGxhY2VtZW50Q2xhc3Mscz1jQWE7aWYociE9PXR8fGEhPT1lKXt2YXIgbj1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdCh0LCJcXC0iKSwiZyIpLG89bmV3IFJlZ0V4cCgiXFwtLSIuY29uY2F0KHQsIlxcLSIpLCJnIiksbD1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdChlKSwiZyIpO3M9cy5yZXBsYWNlKG4sIi4iLmNvbmNhdChyLCItIikpLnJlcGxhY2UobywiLS0iLmNvbmNhdChyLCItIikpLnJlcGxhY2UobCwiLiIuY29uY2F0KGEpKX1yZXR1cm4gc31mdW5jdGlvbiB1RWUoKXtxdC5hdXRvQWRkQ3NzJiYhQWNyJiYoaUFhKCRjcigpKSxBY3I9ITApfWZ1bmN0aW9uIHVBYSh0KXtSNCYmKEgzZT9zZXRUaW1lb3V0KHQsMCk6RWNyLnB1c2godCkpfWZ1bmN0aW9uIHhfKHQpe3ZhciBlPXQudGFnLHI9dC5hdHRyaWJ1dGVzLGE9cj09PXZvaWQgMD97fTpyLHM9dC5jaGlsZHJlbixuPXM9PT12b2lkIDA/W106cztyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP0Rjcih0KToiPCIuY29uY2F0KGUsIiAiKS5jb25jYXQobkFhKGEpLCI+IikuY29uY2F0KG4ubWFwKHhfKS5qb2luKCIiKSwiPC8iKS5jb25jYXQoZSwiPiIpfWZ1bmN0aW9uIFBjcih0LGUscil7aWYodCYmdFtlXSYmdFtlXVtyXSlyZXR1cm57cHJlZml4OmUsaWNvbk5hbWU6cixpY29uOnRbZV1bcl19fWZ1bmN0aW9uIE5jcih0KXtyZXR1cm4gb2ModCkubGVuZ3RoIT09MT9udWxsOnQuY29kZVBvaW50QXQoMCkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIE9jcih0KXtyZXR1cm4gT2JqZWN0LmtleXModCkucmVkdWNlKGZ1bmN0aW9uKGUscil7dmFyIGE9dFtyXSxzPSEhYS5pY29uO3JldHVybiBzP2VbYS5pY29uTmFtZV09YS5pY29uOmVbcl09YSxlfSx7fSl9ZnVuY3Rpb24gZkVlKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOnt9LGE9ci5za2lwSG9va3Mscz1hPT09dm9pZCAwPyExOmEsbj1PY3IoZSk7dHlwZW9mIGxjLmhvb2tzLmFkZFBhY2s9PSJmdW5jdGlvbiImJiFzP2xjLmhvb2tzLmFkZFBhY2sodCxPY3IoZSkpOmxjLnN0eWxlc1t0XT1zdChzdCh7fSxsYy5zdHlsZXNbdF18fHt9KSxuKSx0PT09ImZhcyImJmZFZSgiZmEiLGUpfWZ1bmN0aW9uIG1BYSh0KXtyZXR1cm5+ZUFhLmluZGV4T2YodCl9ZnVuY3Rpb24gZ0FhKHQsZSl7dmFyIHI9ZS5zcGxpdCgiLSIpLGE9clswXSxzPXIuc2xpY2UoMSkuam9pbigiLSIpO3JldHVybiBhPT09dCYmcyE9PSIiJiYhbUFhKHMpP3M6bnVsbH1mdW5jdGlvbiBnRWUodCxlKXtyZXR1cm4oRmNyW3RdfHx7fSlbZV19ZnVuY3Rpb24gYkFhKHQsZSl7cmV0dXJuKEJjclt0XXx8e30pW2VdfWZ1bmN0aW9uIGltKHQsZSl7cmV0dXJuKFZjclt0XXx8e30pW2VdfWZ1bmN0aW9uIFVjcih0KXtyZXR1cm4gSGNyW3RdfHx7cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbH19ZnVuY3Rpb24geEFhKHQpe3ZhciBlPXFjclt0XSxyPWdFZSgiZmFzIix0KTtyZXR1cm4gZXx8KHI/e3ByZWZpeDoiZmFzIixpY29uTmFtZTpyfTpudWxsKXx8e3ByZWZpeDpudWxsLGljb25OYW1lOm51bGx9fWZ1bmN0aW9uICRwKCl7cmV0dXJuIG1FZX1mdW5jdGlvbiB2QWEodCl7dmFyIGU9RG4scj1SY3IucmVkdWNlKGZ1bmN0aW9uKGEscyl7cmV0dXJuIGFbc109IiIuY29uY2F0KHF0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChzKSxhfSx7fSk7cmV0dXJuIGZjci5mb3JFYWNoKGZ1bmN0aW9uKGEpeyh0LmluY2x1ZGVzKHJbYV0pfHx0LnNvbWUoZnVuY3Rpb24ocyl7cmV0dXJuIGhBYVthXS5pbmNsdWRlcyhzKX0pKSYmKGU9YSl9KSxlfWZ1bmN0aW9uIHEzZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj1lLmZhbWlseSxhPXI9PT12b2lkIDA/RG46cixzPUskYVthXVt0XTtpZihhPT09aF8mJiF0KXJldHVybiJmYWQiO3ZhciBuPUNjclthXVt0XXx8Q2NyW2FdW3NdLG89dCBpbiBsYy5zdHlsZXM/dDpudWxsLGw9bnx8b3x8bnVsbDtyZXR1cm4gbH1mdW5jdGlvbiB5QWEodCl7dmFyIGU9W10scj1udWxsO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIHM9Z0FhKHF0LmNzc1ByZWZpeCxhKTtzP3I9czphJiZlLnB1c2goYSl9KSx7aWNvbk5hbWU6cixyZXN0OmV9fWZ1bmN0aW9uIEdjcih0KXtyZXR1cm4gdC5zb3J0KCkuZmlsdGVyKGZ1bmN0aW9uKGUscixhKXtyZXR1cm4gYS5pbmRleE9mKGUpPT09cn0pfWZ1bmN0aW9uIFYzZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj1lLnNraXBMb29rdXBzLGE9cj09PXZvaWQgMD8hMTpyLHM9bnVsbCxuPUdjcih0LmZpbHRlcihmdW5jdGlvbihtKXtyZXR1cm4gWWNyLmluY2x1ZGVzKG0pfSkpLG89R2NyKHQuZmlsdGVyKGZ1bmN0aW9uKG0pe3JldHVybiFZY3IuaW5jbHVkZXMobSl9KSksbD1uLmZpbHRlcihmdW5jdGlvbihtKXtyZXR1cm4gcz1tLCFLMnIuaW5jbHVkZXMobSl9KSxjPU4zZShsLDEpLGQ9Y1swXSxmPWQ9PT12b2lkIDA/bnVsbDpkLHA9dkFhKG4pLGg9c3Qoc3Qoe30seUFhKG8pKSx7fSx7cHJlZml4OnEzZShmLHtmYW1pbHk6cH0pfSk7cmV0dXJuIHN0KHN0KHN0KHt9LGgpLE1BYSh7dmFsdWVzOnQsZmFtaWx5OnAsc3R5bGVzOnZfLGNvbmZpZzpxdCxjYW5vbmljYWw6aCxnaXZlblByZWZpeDpzfSkpLHdBYShhLHMsaCkpfWZ1bmN0aW9uIHdBYSh0LGUscil7dmFyIGE9ci5wcmVmaXgscz1yLmljb25OYW1lO2lmKHR8fCFhfHwhcylyZXR1cm57cHJlZml4OmEsaWNvbk5hbWU6c307dmFyIG49ZT09PSJmYSI/VWNyKHMpOnt9LG89aW0oYSxzKTtyZXR1cm4gcz1uLmljb25OYW1lfHxvfHxzLGE9bi5wcmVmaXh8fGEsYT09PSJmYXIiJiYhdl8uZmFyJiZ2Xy5mYXMmJiFxdC5hdXRvRmV0Y2hTdmcmJihhPSJmYXMiKSx7cHJlZml4OmEsaWNvbk5hbWU6c319ZnVuY3Rpb24gTUFhKHQpe3ZhciBlPXQudmFsdWVzLHI9dC5mYW1pbHksYT10LmNhbm9uaWNhbCxzPXQuZ2l2ZW5QcmVmaXgsbj1zPT09dm9pZCAwPyIiOnMsbz10LnN0eWxlcyxsPW89PT12b2lkIDA/e306byxjPXQuY29uZmlnLGQ9Yz09PXZvaWQgMD97fTpjLGY9cj09PWhfLHA9ZS5pbmNsdWRlcygiZmEtZHVvdG9uZSIpfHxlLmluY2x1ZGVzKCJmYWQiKSxoPWQuZmFtaWx5RGVmYXVsdD09PSJkdW90b25lIixtPWEucHJlZml4PT09ImZhZCJ8fGEucHJlZml4PT09ImZhLWR1b3RvbmUiO2lmKCFmJiYocHx8aHx8bSkmJihhLnByZWZpeD0iZmFkIiksKGUuaW5jbHVkZXMoImZhLWJyYW5kcyIpfHxlLmluY2x1ZGVzKCJmYWIiKSkmJihhLnByZWZpeD0iZmFiIiksIWEucHJlZml4JiZrQWEuaW5jbHVkZXMocikpe3ZhciB2PU9iamVjdC5rZXlzKGwpLmZpbmQoZnVuY3Rpb24oZyl7cmV0dXJuIFNBYS5pbmNsdWRlcyhnKX0pO2lmKHZ8fGQuYXV0b0ZldGNoU3ZnKXt2YXIgYj1GRGEuZ2V0KHIpLmRlZmF1bHRTaG9ydFByZWZpeElkO2EucHJlZml4PWIsYS5pY29uTmFtZT1pbShhLnByZWZpeCxhLmljb25OYW1lKXx8YS5pY29uTmFtZX19cmV0dXJuKGEucHJlZml4PT09ImZhInx8bj09PSJmYSIpJiYoYS5wcmVmaXg9JHAoKXx8ImZhcyIpLGF9ZnVuY3Rpb24gX0FhKHQsZSl7dmFyIHI9ZS5taXhvdXRzVG87cmV0dXJuIEtjcj10LE15PXt9LE9iamVjdC5rZXlzKEN5KS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pBYS5pbmRleE9mKGEpPT09LTEmJmRlbGV0ZSBDeVthXX0pLEtjci5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBzPWEubWl4b3V0P2EubWl4b3V0KCk6e307aWYoT2JqZWN0LmtleXMocykuZm9yRWFjaChmdW5jdGlvbihvKXt0eXBlb2Ygc1tvXT09ImZ1bmN0aW9uIiYmKHJbb109c1tvXSksTzNlKHNbb10pPT09Im9iamVjdCImJk9iamVjdC5rZXlzKHNbb10pLmZvckVhY2goZnVuY3Rpb24obCl7cltvXXx8KHJbb109e30pLHJbb11bbF09c1tvXVtsXX0pfSksYS5ob29rcyl7dmFyIG49YS5ob29rcygpO09iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24obyl7TXlbb118fChNeVtvXT1bXSksTXlbb10ucHVzaChuW29dKX0pfWEucHJvdmlkZXMmJmEucHJvdmlkZXMoQ3kpfSkscn1mdW5jdGlvbiBiRWUodCxlKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShyPjI/ci0yOjApLHM9MjtzPHI7cysrKWFbcy0yXT1hcmd1bWVudHNbc107dmFyIG49TXlbdF18fFtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24obyl7ZT1vLmFwcGx5KG51bGwsW2VdLmNvbmNhdChhKSl9KSxlfWZ1bmN0aW9uIHNtKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGU+MT9lLTE6MCksYT0xO2E8ZTthKyspclthLTFdPWFyZ3VtZW50c1thXTt2YXIgcz1NeVt0XXx8W107cy5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYXBwbHkobnVsbCxyKX0pfWZ1bmN0aW9uIEFwKCl7dmFyIHQ9YXJndW1lbnRzWzBdLGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBDeVt0XT9DeVt0XS5hcHBseShudWxsLGUpOnZvaWQgMH1mdW5jdGlvbiB4RWUodCl7dC5wcmVmaXg9PT0iZmEiJiYodC5wcmVmaXg9ImZhcyIpO3ZhciBlPXQuaWNvbk5hbWUscj10LnByZWZpeHx8JHAoKTtpZihlKXJldHVybiBlPWltKHIsZSl8fGUsUGNyKFpjci5kZWZpbml0aW9ucyxyLGUpfHxQY3IobGMuc3R5bGVzLHIsZSl9ZnVuY3Rpb24gajNlKHQsZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJhYnN0cmFjdCIse2dldDplfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImh0bWwiLHtnZXQ6aShmdW5jdGlvbigpe3JldHVybiB0LmFic3RyYWN0Lm1hcChmdW5jdGlvbihhKXtyZXR1cm4geF8oYSl9KX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIm5vZGUiLHtnZXQ6aShmdW5jdGlvbigpe2lmKFI0KXt2YXIgYT1kaS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS5pbm5lckhUTUw9dC5odG1sLGEuY2hpbGRyZW59fSwiZ2V0Iil9KSx0fWZ1bmN0aW9uIEFBYSh0KXt2YXIgZT10LmNoaWxkcmVuLHI9dC5tYWluLGE9dC5tYXNrLHM9dC5hdHRyaWJ1dGVzLG49dC5zdHlsZXMsbz10LnRyYW5zZm9ybTtpZihkRWUobykmJnIuZm91bmQmJiFhLmZvdW5kKXt2YXIgbD1yLndpZHRoLGM9ci5oZWlnaHQsZD17eDpsL2MvMix5Oi41fTtzLnN0eWxlPUIzZShzdChzdCh7fSxuKSx7fSx7InRyYW5zZm9ybS1vcmlnaW4iOiIiLmNvbmNhdChkLngrby54LzE2LCJlbSAiKS5jb25jYXQoZC55K28ueS8xNiwiZW0iKX0pKX1yZXR1cm5be3RhZzoic3ZnIixhdHRyaWJ1dGVzOnMsY2hpbGRyZW46ZX1dfWZ1bmN0aW9uIEVBYSh0KXt2YXIgZT10LnByZWZpeCxyPXQuaWNvbk5hbWUsYT10LmNoaWxkcmVuLHM9dC5hdHRyaWJ1dGVzLG49dC5zeW1ib2wsbz1uPT09ITA/IiIuY29uY2F0KGUsIi0iKS5jb25jYXQocXQuY3NzUHJlZml4LCItIikuY29uY2F0KHIpOm47cmV0dXJuW3t0YWc6InN2ZyIsYXR0cmlidXRlczp7c3R5bGU6ImRpc3BsYXk6IG5vbmU7In0sY2hpbGRyZW46W3t0YWc6InN5bWJvbCIsYXR0cmlidXRlczpzdChzdCh7fSxzKSx7fSx7aWQ6b30pLGNoaWxkcmVuOmF9XX1dfWZ1bmN0aW9uIElBYSh0KXt2YXIgZT1bImFyaWEtbGFiZWwiLCJhcmlhLWxhYmVsbGVkYnkiLCJ0aXRsZSIsInJvbGUiXTtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiByIGluIHR9KX1mdW5jdGlvbiB2RWUodCl7dmFyIGU9dC5pY29ucyxyPWUubWFpbixhPWUubWFzayxzPXQucHJlZml4LG49dC5pY29uTmFtZSxvPXQudHJhbnNmb3JtLGw9dC5zeW1ib2wsYz10Lm1hc2tJZCxkPXQuZXh0cmEsZj10LndhdGNoYWJsZSxwPWY9PT12b2lkIDA/ITE6ZixoPWEuZm91bmQ/YTpyLG09aC53aWR0aCx2PWguaGVpZ2h0LGI9W3F0LnJlcGxhY2VtZW50Q2xhc3Msbj8iIi5jb25jYXQocXQuY3NzUHJlZml4LCItIikuY29uY2F0KG4pOiIiXS5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIGQuY2xhc3Nlcy5pbmRleE9mKF8pPT09LTF9KS5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIF8hPT0iInx8ISFffSkuY29uY2F0KGQuY2xhc3Nlcykuam9pbigiICIpLGc9e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6c3Qoc3Qoe30sZC5hdHRyaWJ1dGVzKSx7fSx7ImRhdGEtcHJlZml4IjpzLCJkYXRhLWljb24iOm4sY2xhc3M6Yixyb2xlOmQuYXR0cmlidXRlcy5yb2xlfHwiaW1nIix2aWV3Qm94OiIwIDAgIi5jb25jYXQobSwiICIpLmNvbmNhdCh2KX0pfTshSUFhKGQuYXR0cmlidXRlcykmJiFkLmF0dHJpYnV0ZXNbImFyaWEtaGlkZGVuIl0mJihnLmF0dHJpYnV0ZXNbImFyaWEtaGlkZGVuIl09InRydWUiKSxwJiYoZy5hdHRyaWJ1dGVzW2FtXT0iIik7dmFyIHk9c3Qoc3Qoe30sZykse30se3ByZWZpeDpzLGljb25OYW1lOm4sbWFpbjpyLG1hc2s6YSxtYXNrSWQ6Yyx0cmFuc2Zvcm06byxzeW1ib2w6bCxzdHlsZXM6c3Qoe30sZC5zdHlsZXMpfSksaz1hLmZvdW5kJiZyLmZvdW5kP0FwKCJnZW5lcmF0ZUFic3RyYWN0TWFzayIseSl8fHtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOnt9fTpBcCgiZ2VuZXJhdGVBYnN0cmFjdEljb24iLHkpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX0sTT1rLmNoaWxkcmVuLE49ay5hdHRyaWJ1dGVzO3JldHVybiB5LmNoaWxkcmVuPU0seS5hdHRyaWJ1dGVzPU4sbD9FQWEoeSk6QUFhKHkpfWZ1bmN0aW9uIFFjcih0KXt2YXIgZT10LmNvbnRlbnQscj10LndpZHRoLGE9dC5oZWlnaHQscz10LnRyYW5zZm9ybSxuPXQuZXh0cmEsbz10LndhdGNoYWJsZSxsPW89PT12b2lkIDA/ITE6byxjPXN0KHN0KHt9LG4uYXR0cmlidXRlcykse30se2NsYXNzOm4uY2xhc3Nlcy5qb2luKCIgIil9KTtsJiYoY1thbV09IiIpO3ZhciBkPXN0KHt9LG4uc3R5bGVzKTtkRWUocykmJihkLnRyYW5zZm9ybT1sQWEoe3RyYW5zZm9ybTpzLHN0YXJ0Q2VudGVyZWQ6ITAsd2lkdGg6cixoZWlnaHQ6YX0pLGRbIi13ZWJraXQtdHJhbnNmb3JtIl09ZC50cmFuc2Zvcm0pO3ZhciBmPUIzZShkKTtmLmxlbmd0aD4wJiYoYy5zdHlsZT1mKTt2YXIgcD1bXTtyZXR1cm4gcC5wdXNoKHt0YWc6InNwYW4iLGF0dHJpYnV0ZXM6YyxjaGlsZHJlbjpbZV19KSxwfWZ1bmN0aW9uIFBBYSh0KXt2YXIgZT10LmNvbnRlbnQscj10LmV4dHJhLGE9c3Qoc3Qoe30sci5hdHRyaWJ1dGVzKSx7fSx7Y2xhc3M6ci5jbGFzc2VzLmpvaW4oIiAiKX0pLHM9QjNlKHIuc3R5bGVzKTtzLmxlbmd0aD4wJiYoYS5zdHlsZT1zKTt2YXIgbj1bXTtyZXR1cm4gbi5wdXNoKHt0YWc6InNwYW4iLGF0dHJpYnV0ZXM6YSxjaGlsZHJlbjpbZV19KSxufWZ1bmN0aW9uIHdFZSh0KXt2YXIgZT10WzBdLHI9dFsxXSxhPXQuc2xpY2UoNCkscz1OM2UoYSwxKSxuPXNbMF0sbz1udWxsO3JldHVybiBBcnJheS5pc0FycmF5KG4pP289e3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6IiIuY29uY2F0KHF0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChsRWUuR1JPVVApfSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cmlidXRlczp7Y2xhc3M6IiIuY29uY2F0KHF0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChsRWUuU0VDT05EQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6blswXX19LHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChxdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQobEVlLlBSSU1BUlkpLGZpbGw6ImN1cnJlbnRDb2xvciIsZDpuWzFdfX1dfTpvPXt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2ZpbGw6ImN1cnJlbnRDb2xvciIsZDpufX0se2ZvdW5kOiEwLHdpZHRoOmUsaGVpZ2h0OnIsaWNvbjpvfX1mdW5jdGlvbiBPQWEodCxlKXshU2NyJiYhcXQuc2hvd01pc3NpbmdJY29ucyYmdCYmY29uc29sZS5lcnJvcignSWNvbiB3aXRoIG5hbWUgIicuY29uY2F0KHQsJyIgYW5kIHByZWZpeCAiJykuY29uY2F0KGUsJyIgaXMgbWlzc2luZy4nKSl9ZnVuY3Rpb24ga0VlKHQsZSl7dmFyIHI9ZTtyZXR1cm4gZT09PSJmYSImJnF0LnN0eWxlRGVmYXVsdCE9PW51bGwmJihlPSRwKCkpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEscyl7aWYocj09PSJmYSIpe3ZhciBuPVVjcih0KXx8e307dD1uLmljb25OYW1lfHx0LGU9bi5wcmVmaXh8fGV9aWYodCYmZSYmeUVlW2VdJiZ5RWVbZV1bdF0pe3ZhciBvPXlFZVtlXVt0XTtyZXR1cm4gYSh3RWUobykpfU9BYSh0LGUpLGEoc3Qoc3Qoe30sTkFhKSx7fSx7aWNvbjpxdC5zaG93TWlzc2luZ0ljb25zJiZ0P0FwKCJtaXNzaW5nSWNvbkFic3RyYWN0Iil8fHt9Ont9fSkpfSl9ZnVuY3Rpb24gZTByKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKGFtKTpudWxsO3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ9ZnVuY3Rpb24gRkFhKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKHJFZSk6bnVsbCxyPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKGFFZSk6bnVsbDtyZXR1cm4gZSYmcn1mdW5jdGlvbiBCQWEodCl7cmV0dXJuIHQmJnQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC5jb250YWlucyYmdC5jbGFzc0xpc3QuY29udGFpbnMocXQucmVwbGFjZW1lbnRDbGFzcyl9ZnVuY3Rpb24gSEFhKCl7aWYocXQuYXV0b1JlcGxhY2VTdmc9PT0hMClyZXR1cm4gVzNlLnJlcGxhY2U7dmFyIHQ9VzNlW3F0LmF1dG9SZXBsYWNlU3ZnXTtyZXR1cm4gdHx8VzNlLnJlcGxhY2V9ZnVuY3Rpb24gcUFhKHQpe3JldHVybiBkaS5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix0KX1mdW5jdGlvbiBWQWEodCl7cmV0dXJuIGRpLmNyZWF0ZUVsZW1lbnQodCl9ZnVuY3Rpb24gdDByKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWUuY2VGbixhPXI9PT12b2lkIDA/dC50YWc9PT0ic3ZnIj9xQWE6VkFhOnI7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiBkaS5jcmVhdGVUZXh0Tm9kZSh0KTt2YXIgcz1hKHQudGFnKTtPYmplY3Qua2V5cyh0LmF0dHJpYnV0ZXN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3Muc2V0QXR0cmlidXRlKG8sdC5hdHRyaWJ1dGVzW29dKX0pO3ZhciBuPXQuY2hpbGRyZW58fFtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24obyl7cy5hcHBlbmRDaGlsZCh0MHIobyx7Y2VGbjphfSkpfSksc31mdW5jdGlvbiBqQWEodCl7dmFyIGU9IiAiLmNvbmNhdCh0Lm91dGVySFRNTCwiICIpO3JldHVybiBlPSIiLmNvbmNhdChlLCJGb250IEF3ZXNvbWUgZm9udGF3ZXNvbWUuY29tICIpLGV9ZnVuY3Rpb24gcjByKHQpe3QoKX1mdW5jdGlvbiBhMHIodCxlKXt2YXIgcj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOlUzZTtpZih0Lmxlbmd0aD09PTApcigpO2Vsc2V7dmFyIGE9cjByO3F0Lm11dGF0ZUFwcHJvYWNoPT09RyRhJiYoYT1McC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHIwciksYShmdW5jdGlvbigpe3ZhciBzPUhBYSgpLG49TUVlLmJlZ2luKCJtdXRhdGUiKTt0Lm1hcChzKSxuKCkscigpfSl9fWZ1bmN0aW9uIGkwcigpe0NFZT0hMH1mdW5jdGlvbiB6RWUoKXtDRWU9ITF9ZnVuY3Rpb24gczByKHQpe2lmKFcyciYmcXQub2JzZXJ2ZU11dGF0aW9ucyl7dmFyIGU9dC50cmVlQ2FsbGJhY2sscj1lPT09dm9pZCAwP1UzZTplLGE9dC5ub2RlQ2FsbGJhY2sscz1hPT09dm9pZCAwP1UzZTphLG49dC5wc2V1ZG9FbGVtZW50c0NhbGxiYWNrLG89bj09PXZvaWQgMD9VM2U6bixsPXQub2JzZXJ2ZU11dGF0aW9uc1Jvb3QsYz1sPT09dm9pZCAwP2RpOmw7RzNlPW5ldyBXMnIoZnVuY3Rpb24oZCl7aWYoIUNFZSl7dmFyIGY9JHAoKTtTeShkKS5mb3JFYWNoKGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PSJjaGlsZExpc3QiJiZwLmFkZGVkTm9kZXMubGVuZ3RoPjAmJiFlMHIocC5hZGRlZE5vZGVzWzBdKSYmKHF0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZvKHAudGFyZ2V0KSxyKHAudGFyZ2V0KSkscC50eXBlPT09ImF0dHJpYnV0ZXMiJiZwLnRhcmdldC5wYXJlbnROb2RlJiZxdC5zZWFyY2hQc2V1ZG9FbGVtZW50cyYmbyhbcC50YXJnZXRdLCEwKSxwLnR5cGU9PT0iYXR0cmlidXRlcyImJmUwcihwLnRhcmdldCkmJn5KJGEuaW5kZXhPZihwLmF0dHJpYnV0ZU5hbWUpKWlmKHAuYXR0cmlidXRlTmFtZT09PSJjbGFzcyImJkZBYShwLnRhcmdldCkpe3ZhciBoPVYzZShjRWUocC50YXJnZXQpKSxtPWgucHJlZml4LHY9aC5pY29uTmFtZTtwLnRhcmdldC5zZXRBdHRyaWJ1dGUockVlLG18fGYpLHYmJnAudGFyZ2V0LnNldEF0dHJpYnV0ZShhRWUsdil9ZWxzZSBCQWEocC50YXJnZXQpJiZzKHAudGFyZ2V0KX0pfX0pLFI0JiZHM2Uub2JzZXJ2ZShjLHtjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMCxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITB9KX19ZnVuY3Rpb24gVUFhKCl7RzNlJiZHM2UuZGlzY29ubmVjdCgpfWZ1bmN0aW9uIFdBYSh0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgic3R5bGUiKSxyPVtdO3JldHVybiBlJiYocj1lLnNwbGl0KCI7IikucmVkdWNlKGZ1bmN0aW9uKGEscyl7dmFyIG49cy5zcGxpdCgiOiIpLG89blswXSxsPW4uc2xpY2UoMSk7cmV0dXJuIG8mJmwubGVuZ3RoPjAmJihhW29dPWwuam9pbigiOiIpLnRyaW0oKSksYX0se30pKSxyfWZ1bmN0aW9uIEdBYSh0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVmaXgiKSxyPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWljb24iKSxhPXQuaW5uZXJUZXh0IT09dm9pZCAwP3QuaW5uZXJUZXh0LnRyaW0oKToiIixzPVYzZShjRWUodCkpO3JldHVybiBzLnByZWZpeHx8KHMucHJlZml4PSRwKCkpLGUmJnImJihzLnByZWZpeD1lLHMuaWNvbk5hbWU9cikscy5pY29uTmFtZSYmcy5wcmVmaXh8fChzLnByZWZpeCYmYS5sZW5ndGg+MCYmKHMuaWNvbk5hbWU9YkFhKHMucHJlZml4LHQuaW5uZXJUZXh0KXx8Z0VlKHMucHJlZml4LE5jcih0LmlubmVyVGV4dCkpKSwhcy5pY29uTmFtZSYmcXQuYXV0b0ZldGNoU3ZnJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYocy5pY29uTmFtZT10LmZpcnN0Q2hpbGQuZGF0YSkpLHN9ZnVuY3Rpb24gWUFhKHQpe3ZhciBlPVN5KHQuYXR0cmlidXRlcykucmVkdWNlKGZ1bmN0aW9uKHIsYSl7cmV0dXJuIHIubmFtZSE9PSJjbGFzcyImJnIubmFtZSE9PSJzdHlsZSImJihyW2EubmFtZV09YS52YWx1ZSkscn0se30pO3JldHVybiBlfWZ1bmN0aW9uIEtBYSgpe3JldHVybntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHRyYW5zZm9ybTpyZCxzeW1ib2w6ITEsbWFzazp7aWNvbk5hbWU6bnVsbCxwcmVmaXg6bnVsbCxyZXN0OltdfSxtYXNrSWQ6bnVsbCxleHRyYTp7Y2xhc3NlczpbXSxzdHlsZXM6e30sYXR0cmlidXRlczp7fX19fWZ1bmN0aW9uIG4wcih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e3N0eWxlUGFyc2VyOiEwfSxyPUdBYSh0KSxhPXIuaWNvbk5hbWUscz1yLnByZWZpeCxuPXIucmVzdCxvPVlBYSh0KSxsPWJFZSgicGFyc2VOb2RlQXR0cmlidXRlcyIse30sdCksYz1lLnN0eWxlUGFyc2VyP1dBYSh0KTpbXTtyZXR1cm4gc3Qoe2ljb25OYW1lOmEscHJlZml4OnMsdHJhbnNmb3JtOnJkLG1hc2s6e2ljb25OYW1lOm51bGwscHJlZml4Om51bGwscmVzdDpbXX0sbWFza0lkOm51bGwsc3ltYm9sOiExLGV4dHJhOntjbGFzc2VzOm4sc3R5bGVzOmMsYXR0cmlidXRlczpvfX0sbCl9ZnVuY3Rpb24gbzByKHQpe3ZhciBlPXF0LmF1dG9SZXBsYWNlU3ZnPT09Im5lc3QiP24wcih0LHtzdHlsZVBhcnNlcjohMX0pOm4wcih0KTtyZXR1cm5+ZS5leHRyYS5jbGFzc2VzLmluZGV4T2YoemNyKT9BcCgiZ2VuZXJhdGVMYXllcnNUZXh0Iix0LGUpOkFwKCJnZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24iLHQsZSl9ZnVuY3Rpb24gUUFhKCl7cmV0dXJuW10uY29uY2F0KG9jKGhjciksb2MoYmNyKSl9ZnVuY3Rpb24gbDByKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpudWxsO2lmKCFSNClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHI9ZGkuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdCxhPWkoZnVuY3Rpb24ocCl7cmV0dXJuIHIuYWRkKCIiLmNvbmNhdCh3Y3IsIi0iKS5jb25jYXQocCkpfSwiaGNsQWRkIikscz1pKGZ1bmN0aW9uKHApe3JldHVybiByLnJlbW92ZSgiIi5jb25jYXQod2NyLCItIikuY29uY2F0KHApKX0sImhjbFJlbW92ZSIpLG49cXQuYXV0b0ZldGNoU3ZnP1FBYSgpOksyci5jb25jYXQoT2JqZWN0LmtleXMoWkFhKSk7bi5pbmNsdWRlcygiZmEiKXx8bi5wdXNoKCJmYSIpO3ZhciBvPVsiLiIuY29uY2F0KHpjciwiOm5vdChbIikuY29uY2F0KGFtLCJdKSIpXS5jb25jYXQobi5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIi4iLmNvbmNhdChmLCI6bm90KFsiKS5jb25jYXQoYW0sIl0pIil9KSkuam9pbigiLCAiKTtpZihvLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBsPVtdO3RyeXtsPVN5KHQucXVlcnlTZWxlY3RvckFsbChvKSl9Y2F0Y2h7fWlmKGwubGVuZ3RoPjApYSgicGVuZGluZyIpLHMoImNvbXBsZXRlIik7ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGM9TUVlLmJlZ2luKCJvblRyZWUiKSxkPWwucmVkdWNlKGZ1bmN0aW9uKGYscCl7dHJ5e3ZhciBoPW8wcihwKTtoJiZmLnB1c2goaCl9Y2F0Y2gobSl7U2NyfHxtLm5hbWU9PT0iTWlzc2luZ0ljb24iJiZjb25zb2xlLmVycm9yKG0pfXJldHVybiBmfSxbXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGYscCl7UHJvbWlzZS5hbGwoZCkudGhlbihmdW5jdGlvbihoKXthMHIoaCxmdW5jdGlvbigpe2EoImFjdGl2ZSIpLGEoImNvbXBsZXRlIikscygicGVuZGluZyIpLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlKCksYygpLGYoKX0pfSkuY2F0Y2goZnVuY3Rpb24oaCl7YygpLHAoaCl9KX0pfWZ1bmN0aW9uIFhBYSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtvMHIodCkudGhlbihmdW5jdGlvbihyKXtyJiZhMHIoW3JdLGUpfSl9ZnVuY3Rpb24gSkFhKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT0oZXx8e30pLmljb24/ZTp4RWUoZXx8e30pLHM9ci5tYXNrO3JldHVybiBzJiYocz0oc3x8e30pLmljb24/czp4RWUoc3x8e30pKSx0KGEsc3Qoc3Qoe30scikse30se21hc2s6c30pKX19ZnVuY3Rpb24gbkVhKHQpe3ZhciBlPXQucmVwbGFjZShjMHIsIiIpO3JldHVybiBOY3Iob2MoZSlbMF18fCIiKX1mdW5jdGlvbiBvRWEodCl7dmFyIGU9dC5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LWZlYXR1cmUtc2V0dGluZ3MiKS5pbmNsdWRlcygic3MwMSIpLHI9dC5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50IiksYT1yLnJlcGxhY2UoYzByLCIiKSxzPWEuY29kZVBvaW50QXQoMCksbj1zPj1kMHJbMF0mJnM8PWQwclsxXSxvPWEubGVuZ3RoPT09Mj9hWzBdPT09YVsxXTohMTtyZXR1cm4gbnx8b3x8ZX1mdW5jdGlvbiBsRWEodCxlKXt2YXIgcj10LnJlcGxhY2UoL15bJyJdfFsnIl0kL2csIiIpLnRvTG93ZXJDYXNlKCksYT1wYXJzZUludChlKSxzPWlzTmFOKGEpPyJub3JtYWwiOmE7cmV0dXJuKF9FZVtyXXx8e30pW3NdfHxzRWFbcl19ZnVuY3Rpb24gcDByKHQsZSl7dmFyIHI9IiIuY29uY2F0KFckYSkuY29uY2F0KGUucmVwbGFjZSgiOiIsIi0iKSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEscyl7aWYodC5nZXRBdHRyaWJ1dGUocikhPT1udWxsKXJldHVybiBhKCk7dmFyIG49U3kodC5jaGlsZHJlbiksbz1uLmZpbHRlcihmdW5jdGlvbihTKXtyZXR1cm4gUy5nZXRBdHRyaWJ1dGUodEVlKT09PWV9KVswXSxsPUxwLmdldENvbXB1dGVkU3R5bGUodCxlKSxjPWwuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mYW1pbHkiKSxkPWMubWF0Y2goUSRhKSxmPWwuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC13ZWlnaHQiKSxwPWwuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpO2lmKG8mJiFkKXJldHVybiB0LnJlbW92ZUNoaWxkKG8pLGEoKTtpZihkJiZwIT09Im5vbmUiJiZwIT09IiIpe3ZhciBoPWwuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLG09bEVhKGMsZiksdj1uRWEoaCksYj1kWzBdLnN0YXJ0c1dpdGgoIkZvbnRBd2Vzb21lIiksZz1vRWEobCkseT1nRWUobSx2KSxrPXk7aWYoYil7dmFyIE09eEFhKHYpO00uaWNvbk5hbWUmJk0ucHJlZml4JiYoeT1NLmljb25OYW1lLG09TS5wcmVmaXgpfWlmKHkmJiFnJiYoIW98fG8uZ2V0QXR0cmlidXRlKHJFZSkhPT1tfHxvLmdldEF0dHJpYnV0ZShhRWUpIT09aykpe3Quc2V0QXR0cmlidXRlKHIsayksbyYmdC5yZW1vdmVDaGlsZChvKTt2YXIgTj1LQWEoKSxfPU4uZXh0cmE7Xy5hdHRyaWJ1dGVzW3RFZV09ZSxrRWUoeSxtKS50aGVuKGZ1bmN0aW9uKFMpe3ZhciBPPXZFZShzdChzdCh7fSxOKSx7fSx7aWNvbnM6e21haW46UyxtYXNrOldjcigpfSxwcmVmaXg6bSxpY29uTmFtZTprLGV4dHJhOl8sd2F0Y2hhYmxlOiEwfSkpLEw9ZGkuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO2U9PT0iOjpiZWZvcmUiP3QuaW5zZXJ0QmVmb3JlKEwsdC5maXJzdENoaWxkKTp0LmFwcGVuZENoaWxkKEwpLEwub3V0ZXJIVE1MPU8ubWFwKGZ1bmN0aW9uKEUpe3JldHVybiB4XyhFKX0pLmpvaW4oYApgKSx0LnJlbW92ZUF0dHJpYnV0ZShyKSxhKCl9KS5jYXRjaChzKX1lbHNlIGEoKX1lbHNlIGEoKX0pfWZ1bmN0aW9uIGNFYSh0KXtyZXR1cm4gUHJvbWlzZS5hbGwoW3Awcih0LCI6OmJlZm9yZSIpLHAwcih0LCI6OmFmdGVyIildKX1mdW5jdGlvbiBkRWEodCl7cmV0dXJuIHQucGFyZW50Tm9kZSE9PWRvY3VtZW50LmhlYWQmJiF+WSRhLmluZGV4T2YodC50YWdOYW1lLnRvVXBwZXJDYXNlKCkpJiYhdC5nZXRBdHRyaWJ1dGUodEVlKSYmKCF0LnBhcmVudE5vZGV8fHQucGFyZW50Tm9kZS50YWdOYW1lIT09InN2ZyIpfWZ1bmN0aW9uIGYwcih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITE7aWYoUjQpe3ZhciByO2lmKGUpcj10O2Vsc2UgaWYocXQuc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbilyPXQucXVlcnlTZWxlY3RvckFsbCgiKiIpO2Vsc2V7dmFyIGE9bmV3IFNldCxzPUkzZShkb2N1bWVudC5zdHlsZVNoZWV0cyksbjt0cnl7Zm9yKHMucygpOyEobj1zLm4oKSkuZG9uZTspe3ZhciBvPW4udmFsdWU7dHJ5e3ZhciBsPUkzZShvLmNzc1J1bGVzKSxjO3RyeXtmb3IobC5zKCk7IShjPWwubigpKS5kb25lOyl7dmFyIGQ9Yy52YWx1ZSxmPXBFYShkLnNlbGVjdG9yVGV4dCkscD1JM2UoZiksaDt0cnl7Zm9yKHAucygpOyEoaD1wLm4oKSkuZG9uZTspe3ZhciBtPWgudmFsdWU7YS5hZGQobSl9fWNhdGNoKGIpe3AuZShiKX1maW5hbGx5e3AuZigpfX19Y2F0Y2goYil7bC5lKGIpfWZpbmFsbHl7bC5mKCl9fWNhdGNoKGIpe3F0LnNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MmJmNvbnNvbGUud2FybigiRm9udCBBd2Vzb21lOiBjYW5ub3QgcGFyc2Ugc3R5bGVzaGVldDogIi5jb25jYXQoby5ocmVmLCIgKCIpLmNvbmNhdChiLm1lc3NhZ2UsYCkKSWYgaXQgZGVjbGFyZXMgYW55IEZvbnQgQXdlc29tZSBDU1MgcHNldWRvLWVsZW1lbnRzLCB0aGV5IHdpbGwgbm90IGJlIHJlbmRlcmVkIGFzIFNWRyBpY29ucy4gQWRkIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHRvIHRoZSA8bGluaz4sIGVuYWJsZSBzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuIGZvciBzbG93ZXIgYnV0IG1vcmUgdGhvcm91Z2ggRE9NIHBhcnNpbmcsIG9yIHN1cHByZXNzIHRoaXMgd2FybmluZyBieSBzZXR0aW5nIHNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MgdG8gZmFsc2UuYCkpfX19Y2F0Y2goYil7cy5lKGIpfWZpbmFsbHl7cy5mKCl9aWYoIWEuc2l6ZSlyZXR1cm47dmFyIHY9QXJyYXkuZnJvbShhKS5qb2luKCIsICIpO3RyeXtyPXQucXVlcnlTZWxlY3RvckFsbCh2KX1jYXRjaHt9fXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiLGcpe3ZhciB5PVN5KHIpLmZpbHRlcihkRWEpLm1hcChjRWEpLGs9TUVlLmJlZ2luKCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO2kwcigpLFByb21pc2UuYWxsKHkpLnRoZW4oZnVuY3Rpb24oKXtrKCksekVlKCksYigpfSkuY2F0Y2goZnVuY3Rpb24oKXtrKCksekVlKCksZygpfSl9KX19ZnVuY3Rpb24gZzByKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMDtyZXR1cm4gdC5hdHRyaWJ1dGVzJiYodC5hdHRyaWJ1dGVzLmZpbGx8fGUpJiYodC5hdHRyaWJ1dGVzLmZpbGw9ImJsYWNrIiksdH1mdW5jdGlvbiBnRWEodCl7cmV0dXJuIHQudGFnPT09ImciP3QuY2hpbGRyZW46W3RdfXZhciBCMnIsWkFlLEgycixxMnIsVjJyLGhEYSxqMnIsVTJyLExwLGRpLFcycixSM2UsSlNuLFI0LEcycixRQWUsbURhLGdEYSxZMnIsYkRhLEsycixEbixoXyxaMnIsUTJyLFgycixKMnIsZWNyLHRjcixyY3IsYWNyLGljcixzY3IsbmNyLG9jcixsY3IsY2NyLGRjcix1Y3IscGNyLHhEYSx2RGEseURhLHdEYSxrRGEsU0RhLE1EYSxDRGEsekRhLF9EYSxURGEsTERhLEREYSwkRGEsQURhLEVEYSxJRGEsUERhLE5EYSxmY3IsZU1uLE9EYSxSRGEsRkRhLEJEYSxoY3IsbWNyLEhEYSxxRGEsVkRhLGpEYSxVRGEsdE1uLFdEYSxHRGEsWURhLGdjcixYQWUsRjNlLEtEYSxaRGEsUURhLFhEYSxKRGEsZSRhLHQkYSxyJGEsYSRhLGkkYSxzJGEsbiRhLG8kYSxsJGEsYyRhLGQkYSx1JGEscCRhLGYkYSxoJGEsbSRhLGckYSxiJGEseCRhLHYkYSx5JGEsdyRhLGskYSxTJGEsTSRhLEMkYSx6JGEsXyRhLFQkYSxMJGEsRCRhLCQkYSxBJGEsRSRhLHJNbixJJGEsUCRhLE4kYSxPJGEsYU1uLFIkYSxGJGEsSkFlLEIkYSxiY3IsSCRhLHhjcixxJGEsViRhLGokYSxVJGEsRjQsZUVlLHZjcix5Y3IsYW0sdEVlLFckYSxyRWUsYUVlLHdjcixHJGEsWSRhLGtjcixTY3IsTWNyLEskYSxpRWUsQ2NyLHNFZSxuRWUsb0VlLGlNbixaJGEsemNyLFEkYSxYJGEsc01uLEokYSxsRWUsZUFhLGdfLFRjcixreSxxdCxiXyxEcCxyZCxzQWEsY0FhLEFjcixkQWEsQjQsbGMsRWNyLEljcixIM2UscEFhLHBFZSxoRWUsY2Msbk1uLG9Nbix2XyxmQWEsUmNyLGhBYSxtRWUsRmNyLEJjcixIY3IscWNyLFZjcixqY3IsV2NyLFljcixrQWEsU0FhLENBYSxLY3IsTXksQ3ksekFhLFpjcixUQWEsTEFhLERBYSxEMSwkQWEseUVlLE5BYSxYY3IsU0VlLHlfLFJBYSxKY3IsTUVlLFUzZSxXM2UsQ0VlLEczZSxaQWEsZUVhLHRFYSxyRWEsYUVhLGlFYSxjMHIsZDByLHUwcixfRWUsc0VhLHVFYSxwRWEsZkVhLGgwcixoRWEsbTByLG1FYSxURWUsYkVhLHhFYSx2RWEseUVhLHdFYSxrRWEsU0VhLE1FYSxDRWEsekVhLF9FYSxMRWUsVEVhLExFYSxERWEsX2NyLGIwcj11KCgpPT57aShZQWUsIl9hcnJheUxpa2VUb0FycmF5Iik7aShpRGEsIl9hcnJheVdpdGhIb2xlcyIpO2koc0RhLCJfYXJyYXlXaXRob3V0SG9sZXMiKTtpKG5EYSwiX2NsYXNzQ2FsbENoZWNrIik7aShPMnIsIl9kZWZpbmVQcm9wZXJ0aWVzIik7aShvRGEsIl9jcmVhdGVDbGFzcyIpO2koSTNlLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIpO2kobXIsIl9kZWZpbmVQcm9wZXJ0eSIpO2kobERhLCJfaW5oZXJpdHMiKTtpKGNEYSwiX2l0ZXJhYmxlVG9BcnJheSIpO2koZERhLCJfaXRlcmFibGVUb0FycmF5TGltaXQiKTtpKHVEYSwiX25vbkl0ZXJhYmxlUmVzdCIpO2kocERhLCJfbm9uSXRlcmFibGVTcHJlYWQiKTtpKFIyciwib3duS2V5cyIpO2koc3QsIl9vYmplY3RTcHJlYWQyIik7aShQM2UsIl9zZXRQcm90b3R5cGVPZiIpO2koTjNlLCJfc2xpY2VkVG9BcnJheSIpO2kob2MsIl90b0NvbnN1bWFibGVBcnJheSIpO2koZkRhLCJfdG9QcmltaXRpdmUiKTtpKEYyciwiX3RvUHJvcGVydHlLZXkiKTtpKE8zZSwiX3R5cGVvZiIpO2koS0FlLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiKTtpKHlvLCJfd3JhcFJlZ0V4cCIpO0Iycj1pKGZ1bmN0aW9uKCl7fSwibm9vcCIpLFpBZT17fSxIMnI9e30scTJyPW51bGwsVjJyPXttYXJrOkIycixtZWFzdXJlOkIycn07dHJ5e3R5cGVvZiB3aW5kb3c8InUiJiYoWkFlPXdpbmRvdyksdHlwZW9mIGRvY3VtZW50PCJ1IiYmKEgycj1kb2N1bWVudCksdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI8InUiJiYocTJyPU11dGF0aW9uT2JzZXJ2ZXIpLHR5cGVvZiBwZXJmb3JtYW5jZTwidSImJihWMnI9cGVyZm9ybWFuY2UpfWNhdGNoe31oRGE9WkFlLm5hdmlnYXRvcnx8e30sajJyPWhEYS51c2VyQWdlbnQsVTJyPWoycj09PXZvaWQgMD8iIjpqMnIsTHA9WkFlLGRpPUgycixXMnI9cTJyLFIzZT1WMnIsSlNuPSEhTHAuZG9jdW1lbnQsUjQ9ISFkaS5kb2N1bWVudEVsZW1lbnQmJiEhZGkuaGVhZCYmdHlwZW9mIGRpLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiImJnR5cGVvZiBkaS5jcmVhdGVFbGVtZW50PT0iZnVuY3Rpb24iLEcycj1+VTJyLmluZGV4T2YoIk1TSUUiKXx8flUyci5pbmRleE9mKCJUcmlkZW50LyIpLG1EYT0vZmEoa3xrZHxzfHJ8bHx0fGR8ZHJ8ZGx8ZHR8YnxzbHJ8c2xwcnx3c2J8dGx8bnN8bmRzfGVzfGd0fGpyfGpmcnxqZHJ8dXNifHVmc2J8dWRzYnxjcnxzc3xzcnxzbHxzdHxzZHN8c2RyfHNkbHxzZHQpP1tcLVwgXS8sZ0RhPS9Gb250ID9Bd2Vzb21lID8oWzU2NyBdKikoU29saWR8UmVndWxhcnxMaWdodHxUaGlufER1b3RvbmV8QnJhbmRzfEZyZWV8UHJvfFNoYXJwIER1b3RvbmV8U2hhcnB8S2l0fE5vdGRvZyBEdW98Tm90ZG9nfENoaXNlbHxFdGNofEdyYXBoaXRlfFRodW1icHJpbnR8SmVsbHkgRmlsbHxKZWxseSBEdW98SmVsbHl8VXRpbGl0eXxVdGlsaXR5IEZpbGx8VXRpbGl0eSBEdW98U2xhYiBQcmVzc3xTbGFifFdoaXRlYm9hcmQpPy4qL2ksWTJyPXtjbGFzc2ljOntmYToic29saWQiLGZhczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIixmYWI6ImJyYW5kcyIsImZhLWJyYW5kcyI6ImJyYW5kcyJ9LGR1b3RvbmU6e2ZhOiJzb2xpZCIsZmFkOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLCJmYS1kdW90b25lIjoic29saWQiLGZhZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFkbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYWR0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSxzaGFycDp7ZmE6InNvbGlkIixmYXNzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhc3I6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXN0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2ZhOiJzb2xpZCIsZmFzZHM6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFzZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzZGw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFzZHQ6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LHNsYWI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHI6InJlZ3VsYXIifSwic2xhYi1wcmVzcyI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHByOiJyZWd1bGFyIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoibGlnaHQiLGZhdGw6ImxpZ2h0In0sd2hpdGVib2FyZDp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhd3NiOiJzZW1pYm9sZCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoic29saWQiLGZhbnM6InNvbGlkIn0sIm5vdGRvZy1kdW8iOnsiZmEtc29saWQiOiJzb2xpZCIsZmFuZHM6InNvbGlkIn0sZXRjaDp7ImZhLXNvbGlkIjoic29saWQiLGZhZXM6InNvbGlkIn0sZ3JhcGhpdGU6eyJmYS10aGluIjoidGhpbiIsZmFndDoidGhpbiJ9LGplbGx5OnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhanI6InJlZ3VsYXIifSwiamVsbHktZmlsbCI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZnI6InJlZ3VsYXIifSwiamVsbHktZHVvIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpkcjoicmVndWxhciJ9LGNoaXNlbDp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWNyOiJyZWd1bGFyIn0sdXRpbGl0eTp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhdXNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVkc2I6InNlbWlib2xkIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVmc2I6InNlbWlib2xkIn19LGJEYT17R1JPVVA6ImR1b3RvbmUtZ3JvdXAiLFNXQVBfT1BBQ0lUWToic3dhcC1vcGFjaXR5IixQUklNQVJZOiJwcmltYXJ5IixTRUNPTkRBUlk6InNlY29uZGFyeSJ9LEsycj1bImZhLWNsYXNzaWMiLCJmYS1kdW90b25lIiwiZmEtc2hhcnAiLCJmYS1zaGFycC1kdW90b25lIiwiZmEtdGh1bWJwcmludCIsImZhLXdoaXRlYm9hcmQiLCJmYS1ub3Rkb2ciLCJmYS1ub3Rkb2ctZHVvIiwiZmEtY2hpc2VsIiwiZmEtZXRjaCIsImZhLWdyYXBoaXRlIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxEbj0iY2xhc3NpYyIsaF89ImR1b3RvbmUiLFoycj0ic2hhcnAiLFEycj0ic2hhcnAtZHVvdG9uZSIsWDJyPSJjaGlzZWwiLEoycj0iZXRjaCIsZWNyPSJncmFwaGl0ZSIsdGNyPSJqZWxseSIscmNyPSJqZWxseS1kdW8iLGFjcj0iamVsbHktZmlsbCIsaWNyPSJub3Rkb2ciLHNjcj0ibm90ZG9nLWR1byIsbmNyPSJzbGFiIixvY3I9InNsYWItcHJlc3MiLGxjcj0idGh1bWJwcmludCIsY2NyPSJ1dGlsaXR5IixkY3I9InV0aWxpdHktZHVvIix1Y3I9InV0aWxpdHktZmlsbCIscGNyPSJ3aGl0ZWJvYXJkIix4RGE9IkNsYXNzaWMiLHZEYT0iRHVvdG9uZSIseURhPSJTaGFycCIsd0RhPSJTaGFycCBEdW90b25lIixrRGE9IkNoaXNlbCIsU0RhPSJFdGNoIixNRGE9IkdyYXBoaXRlIixDRGE9IkplbGx5Iix6RGE9IkplbGx5IER1byIsX0RhPSJKZWxseSBGaWxsIixURGE9Ik5vdGRvZyIsTERhPSJOb3Rkb2cgRHVvIixERGE9IlNsYWIiLCREYT0iU2xhYiBQcmVzcyIsQURhPSJUaHVtYnByaW50IixFRGE9IlV0aWxpdHkiLElEYT0iVXRpbGl0eSBEdW8iLFBEYT0iVXRpbGl0eSBGaWxsIixORGE9IldoaXRlYm9hcmQiLGZjcj1bRG4saF8sWjJyLFEycixYMnIsSjJyLGVjcix0Y3IscmNyLGFjcixpY3Isc2NyLG5jcixvY3IsbGNyLGNjcixkY3IsdWNyLHBjcl0sZU1uPShRQWU9e30sbXIobXIobXIobXIobXIobXIobXIobXIobXIobXIoUUFlLERuLHhEYSksaF8sdkRhKSxaMnIseURhKSxRMnIsd0RhKSxYMnIsa0RhKSxKMnIsU0RhKSxlY3IsTURhKSx0Y3IsQ0RhKSxyY3IsekRhKSxhY3IsX0RhKSxtcihtcihtcihtcihtcihtcihtcihtcihtcihRQWUsaWNyLFREYSksc2NyLExEYSksbmNyLEREYSksb2NyLCREYSksbGNyLEFEYSksY2NyLEVEYSksZGNyLElEYSksdWNyLFBEYSkscGNyLE5EYSkpLE9EYT17Y2xhc3NpYzp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwiLDEwMDoiZmF0In0sZHVvdG9uZTp7OTAwOiJmYWQiLDQwMDoiZmFkciIsMzAwOiJmYWRsIiwxMDA6ImZhZHQifSxzaGFycDp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLDMwMDoiZmFzbCIsMTAwOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOns5MDA6ImZhc2RzIiw0MDA6ImZhc2RyIiwzMDA6ImZhc2RsIiwxMDA6ImZhc2R0In0sc2xhYjp7NDAwOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7NDAwOiJmYXNscHIifSx3aGl0ZWJvYXJkOns2MDA6ImZhd3NiIn0sdGh1bWJwcmludDp7MzAwOiJmYXRsIn0sbm90ZG9nOns5MDA6ImZhbnMifSwibm90ZG9nLWR1byI6ezkwMDoiZmFuZHMifSxldGNoOns5MDA6ImZhZXMifSxncmFwaGl0ZTp7MTAwOiJmYWd0In0sY2hpc2VsOns0MDA6ImZhY3IifSxqZWxseTp7NDAwOiJmYWpyIn0sImplbGx5LWZpbGwiOns0MDA6ImZhamZyIn0sImplbGx5LWR1byI6ezQwMDoiZmFqZHIifSx1dGlsaXR5Ons2MDA6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7NjAwOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7NjAwOiJmYXVmc2IifX0sUkRhPXsiRm9udCBBd2Vzb21lIDcgRnJlZSI6ezkwMDoiZmFzIiw0MDA6ImZhciJ9LCJGb250IEF3ZXNvbWUgNyBQcm8iOns5MDA6ImZhcyIsNDAwOiJmYXIiLG5vcm1hbDoiZmFyIiwzMDA6ImZhbCIsMTAwOiJmYXQifSwiRm9udCBBd2Vzb21lIDcgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA3IER1b3RvbmUiOns5MDA6ImZhZCIsNDAwOiJmYWRyIixub3JtYWw6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIjp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLG5vcm1hbDoiZmFzciIsMzAwOiJmYXNsIiwxMDA6ImZhc3QifSwiRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSI6ezkwMDoiZmFzZHMiLDQwMDoiZmFzZHIiLG5vcm1hbDoiZmFzZHIiLDMwMDoiZmFzZGwiLDEwMDoiZmFzZHQifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkiOns0MDA6ImZhanIiLG5vcm1hbDoiZmFqciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsIjp7NDAwOiJmYWpmciIsbm9ybWFsOiJmYWpmciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8iOns0MDA6ImZhamRyIixub3JtYWw6ImZhamRyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIiOns0MDA6ImZhc2xyIixub3JtYWw6ImZhc2xyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MiOns0MDA6ImZhc2xwciIsbm9ybWFsOiJmYXNscHIifSwiRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCI6ezMwMDoiZmF0bCIsbm9ybWFsOiJmYXRsIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyI6ezkwMDoiZmFucyIsbm9ybWFsOiJmYW5zIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8iOns5MDA6ImZhbmRzIixub3JtYWw6ImZhbmRzIn0sIkZvbnQgQXdlc29tZSA3IEV0Y2giOns5MDA6ImZhZXMiLG5vcm1hbDoiZmFlcyJ9LCJGb250IEF3ZXNvbWUgNyBHcmFwaGl0ZSI6ezEwMDoiZmFndCIsbm9ybWFsOiJmYWd0In0sIkZvbnQgQXdlc29tZSA3IENoaXNlbCI6ezQwMDoiZmFjciIsbm9ybWFsOiJmYWNyIn0sIkZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQiOns2MDA6ImZhd3NiIixub3JtYWw6ImZhd3NiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkiOns2MDA6ImZhdXNiIixub3JtYWw6ImZhdXNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvIjp7NjAwOiJmYXVkc2IiLG5vcm1hbDoiZmF1ZHNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCI6ezYwMDoiZmF1ZnNiIixub3JtYWw6ImZhdWZzYiJ9fSxGRGE9bmV3IE1hcChbWyJjbGFzc2ljIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImJyYW5kcyJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZHVvdG9uZSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWQiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc3MiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwLWR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzZHMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImNoaXNlbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWNyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJldGNoIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZ3JhcGhpdGUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFndCIsZGVmYXVsdFN0eWxlSWQ6InRoaW4iLHN0eWxlSWRzOlsidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjEwMH1dLFsiamVsbHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFqciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamRyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJqZWxseS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamZyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJub3Rkb2ciLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFucyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJub3Rkb2ctZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbmRzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNsYWIiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbInNsYWItcHJlc3MiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHByIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJ0aHVtYnByaW50Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdGwiLGRlZmF1bHRTdHlsZUlkOiJsaWdodCIsc3R5bGVJZHM6WyJsaWdodCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjMwMH1dLFsidXRpbGl0eSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ1dGlsaXR5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVkc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdWZzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ3aGl0ZWJvYXJkIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhd3NiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XV0pLEJEYT17Y2hpc2VsOntyZWd1bGFyOiJmYWNyIn0sY2xhc3NpYzp7YnJhbmRzOiJmYWIiLGxpZ2h0OiJmYWwiLHJlZ3VsYXI6ImZhciIsc29saWQ6ImZhcyIsdGhpbjoiZmF0In0sZHVvdG9uZTp7bGlnaHQ6ImZhZGwiLHJlZ3VsYXI6ImZhZHIiLHNvbGlkOiJmYWQiLHRoaW46ImZhZHQifSxldGNoOntzb2xpZDoiZmFlcyJ9LGdyYXBoaXRlOnt0aGluOiJmYWd0In0samVsbHk6e3JlZ3VsYXI6ImZhanIifSwiamVsbHktZHVvIjp7cmVndWxhcjoiZmFqZHIifSwiamVsbHktZmlsbCI6e3JlZ3VsYXI6ImZhamZyIn0sbm90ZG9nOntzb2xpZDoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7c29saWQ6ImZhbmRzIn0sc2hhcnA6e2xpZ2h0OiJmYXNsIixyZWd1bGFyOiJmYXNyIixzb2xpZDoiZmFzcyIsdGhpbjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7bGlnaHQ6ImZhc2RsIixyZWd1bGFyOiJmYXNkciIsc29saWQ6ImZhc2RzIix0aGluOiJmYXNkdCJ9LHNsYWI6e3JlZ3VsYXI6ImZhc2xyIn0sInNsYWItcHJlc3MiOntyZWd1bGFyOiJmYXNscHIifSx0aHVtYnByaW50OntsaWdodDoiZmF0bCJ9LHV0aWxpdHk6e3NlbWlib2xkOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6e3NlbWlib2xkOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7c2VtaWJvbGQ6ImZhdWZzYiJ9LHdoaXRlYm9hcmQ6e3NlbWlib2xkOiJmYXdzYiJ9fSxoY3I9WyJmYWsiLCJmYS1raXQiLCJmYWtkIiwiZmEta2l0LWR1b3RvbmUiXSxtY3I9e2tpdDp7ZmFrOiJraXQiLCJmYS1raXQiOiJraXQifSwia2l0LWR1b3RvbmUiOntmYWtkOiJraXQtZHVvdG9uZSIsImZhLWtpdC1kdW90b25lIjoia2l0LWR1b3RvbmUifX0sSERhPVsia2l0Il0scURhPSJraXQiLFZEYT0ia2l0LWR1b3RvbmUiLGpEYT0iS2l0IixVRGE9IktpdCBEdW90b25lIix0TW49bXIobXIoe30scURhLGpEYSksVkRhLFVEYSksV0RhPXtraXQ6eyJmYS1raXQiOiJmYWsifSwia2l0LWR1b3RvbmUiOnsiZmEta2l0LWR1b3RvbmUiOiJmYWtkIn19LEdEYT17IkZvbnQgQXdlc29tZSBLaXQiOns0MDA6ImZhayIsbm9ybWFsOiJmYWsifSwiRm9udCBBd2Vzb21lIEtpdCBEdW90b25lIjp7NDAwOiJmYWtkIixub3JtYWw6ImZha2QifX0sWURhPXtraXQ6e2ZhazoiZmEta2l0In0sImtpdC1kdW90b25lIjp7ZmFrZDoiZmEta2l0LWR1b3RvbmUifX0sZ2NyPXtraXQ6e2tpdDoiZmFrIn0sImtpdC1kdW90b25lIjp7ImtpdC1kdW90b25lIjoiZmFrZCJ9fSxGM2U9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSxLRGE9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1ncmFwaGl0ZSIsImZhLWplbGx5IiwiZmEtamVsbHktZmlsbCIsImZhLWplbGx5LWR1byIsImZhLXNsYWIiLCJmYS1zbGFiLXByZXNzIiwiZmEtdXRpbGl0eSIsImZhLXV0aWxpdHktZHVvIiwiZmEtdXRpbGl0eS1maWxsIl0sWkRhPSJjbGFzc2ljIixRRGE9ImR1b3RvbmUiLFhEYT0ic2hhcnAiLEpEYT0ic2hhcnAtZHVvdG9uZSIsZSRhPSJjaGlzZWwiLHQkYT0iZXRjaCIsciRhPSJncmFwaGl0ZSIsYSRhPSJqZWxseSIsaSRhPSJqZWxseS1kdW8iLHMkYT0iamVsbHktZmlsbCIsbiRhPSJub3Rkb2ciLG8kYT0ibm90ZG9nLWR1byIsbCRhPSJzbGFiIixjJGE9InNsYWItcHJlc3MiLGQkYT0idGh1bWJwcmludCIsdSRhPSJ1dGlsaXR5IixwJGE9InV0aWxpdHktZHVvIixmJGE9InV0aWxpdHktZmlsbCIsaCRhPSJ3aGl0ZWJvYXJkIixtJGE9IkNsYXNzaWMiLGckYT0iRHVvdG9uZSIsYiRhPSJTaGFycCIseCRhPSJTaGFycCBEdW90b25lIix2JGE9IkNoaXNlbCIseSRhPSJFdGNoIix3JGE9IkdyYXBoaXRlIixrJGE9IkplbGx5IixTJGE9IkplbGx5IER1byIsTSRhPSJKZWxseSBGaWxsIixDJGE9Ik5vdGRvZyIseiRhPSJOb3Rkb2cgRHVvIixfJGE9IlNsYWIiLFQkYT0iU2xhYiBQcmVzcyIsTCRhPSJUaHVtYnByaW50IixEJGE9IlV0aWxpdHkiLCQkYT0iVXRpbGl0eSBEdW8iLEEkYT0iVXRpbGl0eSBGaWxsIixFJGE9IldoaXRlYm9hcmQiLHJNbj0oWEFlPXt9LG1yKG1yKG1yKG1yKG1yKG1yKG1yKG1yKG1yKG1yKFhBZSxaRGEsbSRhKSxRRGEsZyRhKSxYRGEsYiRhKSxKRGEseCRhKSxlJGEsdiRhKSx0JGEseSRhKSxyJGEsdyRhKSxhJGEsayRhKSxpJGEsUyRhKSxzJGEsTSRhKSxtcihtcihtcihtcihtcihtcihtcihtcihtcihYQWUsbiRhLEMkYSksbyRhLHokYSksbCRhLF8kYSksYyRhLFQkYSksZCRhLEwkYSksdSRhLEQkYSkscCRhLCQkYSksZiRhLEEkYSksaCRhLEUkYSkpLEkkYT0ia2l0IixQJGE9ImtpdC1kdW90b25lIixOJGE9IktpdCIsTyRhPSJLaXQgRHVvdG9uZSIsYU1uPW1yKG1yKHt9LEkkYSxOJGEpLFAkYSxPJGEpLFIkYT17Y2xhc3NpYzp7ImZhLWJyYW5kcyI6ImZhYiIsImZhLWR1b3RvbmUiOiJmYWQiLCJmYS1saWdodCI6ImZhbCIsImZhLXJlZ3VsYXIiOiJmYXIiLCJmYS1zb2xpZCI6ImZhcyIsImZhLXRoaW4iOiJmYXQifSxkdW90b25lOnsiZmEtcmVndWxhciI6ImZhZHIiLCJmYS1saWdodCI6ImZhZGwiLCJmYS10aGluIjoiZmFkdCJ9LHNoYXJwOnsiZmEtc29saWQiOiJmYXNzIiwiZmEtcmVndWxhciI6ImZhc3IiLCJmYS1saWdodCI6ImZhc2wiLCJmYS10aGluIjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7ImZhLXNvbGlkIjoiZmFzZHMiLCJmYS1yZWd1bGFyIjoiZmFzZHIiLCJmYS1saWdodCI6ImZhc2RsIiwiZmEtdGhpbiI6ImZhc2R0In0sc2xhYjp7ImZhLXJlZ3VsYXIiOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7ImZhLXJlZ3VsYXIiOiJmYXNscHIifSx3aGl0ZWJvYXJkOnsiZmEtc2VtaWJvbGQiOiJmYXdzYiJ9LHRodW1icHJpbnQ6eyJmYS1saWdodCI6ImZhdGwifSxub3Rkb2c6eyJmYS1zb2xpZCI6ImZhbnMifSwibm90ZG9nLWR1byI6eyJmYS1zb2xpZCI6ImZhbmRzIn0sZXRjaDp7ImZhLXNvbGlkIjoiZmFlcyJ9LGdyYXBoaXRlOnsiZmEtdGhpbiI6ImZhZ3QifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJmYWpyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6ImZhamZyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoiZmFqZHIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoiZmFjciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7ImZhLXNlbWlib2xkIjoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6ImZhdWZzYiJ9fSxGJGE9e2NsYXNzaWM6WyJmYXMiLCJmYXIiLCJmYWwiLCJmYXQiLCJmYWQiXSxkdW90b25lOlsiZmFkciIsImZhZGwiLCJmYWR0Il0sc2hhcnA6WyJmYXNzIiwiZmFzciIsImZhc2wiLCJmYXN0Il0sInNoYXJwLWR1b3RvbmUiOlsiZmFzZHMiLCJmYXNkciIsImZhc2RsIiwiZmFzZHQiXSxzbGFiOlsiZmFzbHIiXSwic2xhYi1wcmVzcyI6WyJmYXNscHIiXSx3aGl0ZWJvYXJkOlsiZmF3c2IiXSx0aHVtYnByaW50OlsiZmF0bCJdLG5vdGRvZzpbImZhbnMiXSwibm90ZG9nLWR1byI6WyJmYW5kcyJdLGV0Y2g6WyJmYWVzIl0sZ3JhcGhpdGU6WyJmYWd0Il0samVsbHk6WyJmYWpyIl0sImplbGx5LWZpbGwiOlsiZmFqZnIiXSwiamVsbHktZHVvIjpbImZhamRyIl0sY2hpc2VsOlsiZmFjciJdLHV0aWxpdHk6WyJmYXVzYiJdLCJ1dGlsaXR5LWR1byI6WyJmYXVkc2IiXSwidXRpbGl0eS1maWxsIjpbImZhdWZzYiJdfSxKQWU9e2NsYXNzaWM6e2ZhYjoiZmEtYnJhbmRzIixmYWQ6ImZhLWR1b3RvbmUiLGZhbDoiZmEtbGlnaHQiLGZhcjoiZmEtcmVndWxhciIsZmFzOiJmYS1zb2xpZCIsZmF0OiJmYS10aGluIn0sZHVvdG9uZTp7ZmFkcjoiZmEtcmVndWxhciIsZmFkbDoiZmEtbGlnaHQiLGZhZHQ6ImZhLXRoaW4ifSxzaGFycDp7ZmFzczoiZmEtc29saWQiLGZhc3I6ImZhLXJlZ3VsYXIiLGZhc2w6ImZhLWxpZ2h0IixmYXN0OiJmYS10aGluIn0sInNoYXJwLWR1b3RvbmUiOntmYXNkczoiZmEtc29saWQiLGZhc2RyOiJmYS1yZWd1bGFyIixmYXNkbDoiZmEtbGlnaHQiLGZhc2R0OiJmYS10aGluIn0sc2xhYjp7ZmFzbHI6ImZhLXJlZ3VsYXIifSwic2xhYi1wcmVzcyI6e2Zhc2xwcjoiZmEtcmVndWxhciJ9LHdoaXRlYm9hcmQ6e2Zhd3NiOiJmYS1zZW1pYm9sZCJ9LHRodW1icHJpbnQ6e2ZhdGw6ImZhLWxpZ2h0In0sbm90ZG9nOntmYW5zOiJmYS1zb2xpZCJ9LCJub3Rkb2ctZHVvIjp7ZmFuZHM6ImZhLXNvbGlkIn0sZXRjaDp7ZmFlczoiZmEtc29saWQifSxncmFwaGl0ZTp7ZmFndDoiZmEtdGhpbiJ9LGplbGx5OntmYWpyOiJmYS1yZWd1bGFyIn0sImplbGx5LWZpbGwiOntmYWpmcjoiZmEtcmVndWxhciJ9LCJqZWxseS1kdW8iOntmYWpkcjoiZmEtcmVndWxhciJ9LGNoaXNlbDp7ZmFjcjoiZmEtcmVndWxhciJ9LHV0aWxpdHk6e2ZhdXNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6e2ZhdWRzYjoiZmEtc2VtaWJvbGQifSwidXRpbGl0eS1maWxsIjp7ZmF1ZnNiOiJmYS1zZW1pYm9sZCJ9fSxCJGE9WyJmYS1zb2xpZCIsImZhLXJlZ3VsYXIiLCJmYS1saWdodCIsImZhLXRoaW4iLCJmYS1kdW90b25lIiwiZmEtYnJhbmRzIiwiZmEtc2VtaWJvbGQiXSxiY3I9WyJmYSIsImZhcyIsImZhciIsImZhbCIsImZhdCIsImZhZCIsImZhZHIiLCJmYWRsIiwiZmFkdCIsImZhYiIsImZhc3MiLCJmYXNyIiwiZmFzbCIsImZhc3QiLCJmYXNkcyIsImZhc2RyIiwiZmFzZGwiLCJmYXNkdCIsImZhc2xyIiwiZmFzbHByIiwiZmF3c2IiLCJmYXRsIiwiZmFucyIsImZhbmRzIiwiZmFlcyIsImZhZ3QiLCJmYWpyIiwiZmFqZnIiLCJmYWpkciIsImZhY3IiLCJmYXVzYiIsImZhdWRzYiIsImZhdWZzYiJdLmNvbmNhdChLRGEsQiRhKSxIJGE9WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iLCJkdW90b25lIiwiYnJhbmRzIiwic2VtaWJvbGQiXSx4Y3I9WzEsMiwzLDQsNSw2LDcsOCw5LDEwXSxxJGE9eGNyLmNvbmNhdChbMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjBdKSxWJGE9WyJhdyIsImZ3IiwicHVsbC1sZWZ0IiwicHVsbC1yaWdodCJdLGokYT1bXS5jb25jYXQob2MoT2JqZWN0LmtleXMoRiRhKSksSCRhLFYkYSxbIjJ4cyIsInhzIiwic20iLCJsZyIsInhsIiwiMnhsIiwiYmVhdCIsImJvcmRlciIsImZhZGUiLCJiZWF0LWZhZGUiLCJib3VuY2UiLCJmbGlwLWJvdGgiLCJmbGlwLWhvcml6b250YWwiLCJmbGlwLXZlcnRpY2FsIiwiZmxpcCIsImludmVyc2UiLCJsYXllcnMiLCJsYXllcnMtYm90dG9tLWxlZnQiLCJsYXllcnMtYm90dG9tLXJpZ2h0IiwibGF5ZXJzLWNvdW50ZXIiLCJsYXllcnMtdGV4dCIsImxheWVycy10b3AtbGVmdCIsImxheWVycy10b3AtcmlnaHQiLCJsaSIsInB1bGwtZW5kIiwicHVsbC1zdGFydCIsInB1bHNlIiwicm90YXRlLTE4MCIsInJvdGF0ZS0yNzAiLCJyb3RhdGUtOTAiLCJyb3RhdGUtYnkiLCJzaGFrZSIsInNwaW4tcHVsc2UiLCJzcGluLXJldmVyc2UiLCJzcGluIiwic3RhY2stMXgiLCJzdGFjay0yeCIsInN0YWNrIiwidWwiLCJ3aWR0aC1hdXRvIiwid2lkdGgtZml4ZWQiLEYzZS5HUk9VUCxGM2UuU1dBUF9PUEFDSVRZLEYzZS5QUklNQVJZLEYzZS5TRUNPTkRBUlldKS5jb25jYXQoeGNyLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iIi5jb25jYXQodCwieCIpfSkpLmNvbmNhdChxJGEubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJ3LSIuY29uY2F0KHQpfSkpLFUkYT17IkZvbnQgQXdlc29tZSA1IEZyZWUiOns5MDA6ImZhcyIsNDAwOiJmYXIifSwiRm9udCBBd2Vzb21lIDUgUHJvIjp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwifSwiRm9udCBBd2Vzb21lIDUgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA1IER1b3RvbmUiOns5MDA6ImZhZCJ9fSxGND0iX19fRk9OVF9BV0VTT01FX19fIixlRWU9MTYsdmNyPSJmYSIseWNyPSJzdmctaW5saW5lLS1mYSIsYW09ImRhdGEtZmEtaTJzdmciLHRFZT0iZGF0YS1mYS1wc2V1ZG8tZWxlbWVudCIsVyRhPSJkYXRhLWZhLXBzZXVkby1lbGVtZW50LXBlbmRpbmciLHJFZT0iZGF0YS1wcmVmaXgiLGFFZT0iZGF0YS1pY29uIix3Y3I9ImZvbnRhd2Vzb21lLWkyc3ZnIixHJGE9ImFzeW5jIixZJGE9WyJIVE1MIiwiSEVBRCIsIlNUWUxFIiwiU0NSSVBUIl0sa2NyPVsiOjpiZWZvcmUiLCI6OmFmdGVyIiwiOmJlZm9yZSIsIjphZnRlciJdLFNjcj0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSkoKTtpKG1fLCJmYW1pbHlQcm94eSIpO01jcj1zdCh7fSxZMnIpO01jcltEbl09c3Qoc3Qoc3Qoc3Qoe30seyJmYS1kdW90b25lIjoiZHVvdG9uZSJ9KSxZMnJbRG5dKSxtY3Iua2l0KSxtY3JbImtpdC1kdW90b25lIl0pO0skYT1tXyhNY3IpLGlFZT1zdCh7fSxCRGEpO2lFZVtEbl09c3Qoc3Qoc3Qoc3Qoe30se2R1b3RvbmU6ImZhZCJ9KSxpRWVbRG5dKSxnY3Iua2l0KSxnY3JbImtpdC1kdW90b25lIl0pO0Njcj1tXyhpRWUpLHNFZT1zdCh7fSxKQWUpO3NFZVtEbl09c3Qoc3Qoe30sc0VlW0RuXSksWURhLmtpdCk7bkVlPW1fKHNFZSksb0VlPXN0KHt9LFIkYSk7b0VlW0RuXT1zdChzdCh7fSxvRWVbRG5dKSxXRGEua2l0KTtpTW49bV8ob0VlKSxaJGE9bURhLHpjcj0iZmEtbGF5ZXJzLXRleHQiLFEkYT1nRGEsWCRhPXN0KHt9LE9EYSksc01uPW1fKFgkYSksSiRhPVsiY2xhc3MiLCJkYXRhLXByZWZpeCIsImRhdGEtaWNvbiIsImRhdGEtZmEtdHJhbnNmb3JtIiwiZGF0YS1mYS1tYXNrIl0sbEVlPWJEYSxlQWE9W10uY29uY2F0KG9jKEhEYSksb2MoaiRhKSksZ189THAuRm9udEF3ZXNvbWVDb25maWd8fHt9O2kodEFhLCJnZXRBdHRyQ29uZmlnIik7aShyQWEsImNvZXJjZSIpLGRpJiZ0eXBlb2YgZGkucXVlcnlTZWxlY3Rvcj09ImZ1bmN0aW9uIiYmKF9jcj1bWyJkYXRhLWZhbWlseS1wcmVmaXgiLCJmYW1pbHlQcmVmaXgiXSxbImRhdGEtY3NzLXByZWZpeCIsImNzc1ByZWZpeCJdLFsiZGF0YS1mYW1pbHktZGVmYXVsdCIsImZhbWlseURlZmF1bHQiXSxbImRhdGEtc3R5bGUtZGVmYXVsdCIsInN0eWxlRGVmYXVsdCJdLFsiZGF0YS1yZXBsYWNlbWVudC1jbGFzcyIsInJlcGxhY2VtZW50Q2xhc3MiXSxbImRhdGEtYXV0by1yZXBsYWNlLXN2ZyIsImF1dG9SZXBsYWNlU3ZnIl0sWyJkYXRhLWF1dG8tYWRkLWNzcyIsImF1dG9BZGRDc3MiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cyIsInNlYXJjaFBzZXVkb0VsZW1lbnRzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtd2FybmluZ3MiLCJzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtZnVsbC1zY2FuIiwic2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiJdLFsiZGF0YS1vYnNlcnZlLW11dGF0aW9ucyIsIm9ic2VydmVNdXRhdGlvbnMiXSxbImRhdGEtbXV0YXRlLWFwcHJvYWNoIiwibXV0YXRlQXBwcm9hY2giXSxbImRhdGEta2VlcC1vcmlnaW5hbC1zb3VyY2UiLCJrZWVwT3JpZ2luYWxTb3VyY2UiXSxbImRhdGEtbWVhc3VyZS1wZXJmb3JtYW5jZSIsIm1lYXN1cmVQZXJmb3JtYW5jZSJdLFsiZGF0YS1zaG93LW1pc3NpbmctaWNvbnMiLCJzaG93TWlzc2luZ0ljb25zIl1dLF9jci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPU4zZSh0LDIpLHI9ZVswXSxhPWVbMV0scz1yQWEodEFhKHIpKTtzIT1udWxsJiYoZ19bYV09cyl9KSk7VGNyPXtzdHlsZURlZmF1bHQ6InNvbGlkIixmYW1pbHlEZWZhdWx0OkRuLGNzc1ByZWZpeDp2Y3IscmVwbGFjZW1lbnRDbGFzczp5Y3IsYXV0b1JlcGxhY2VTdmc6ITAsYXV0b0FkZENzczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50czohMSxzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzOiEwLHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW46ITEsb2JzZXJ2ZU11dGF0aW9uczohMCxtdXRhdGVBcHByb2FjaDoiYXN5bmMiLGtlZXBPcmlnaW5hbFNvdXJjZTohMCxtZWFzdXJlUGVyZm9ybWFuY2U6ITEsc2hvd01pc3NpbmdJY29uczohMH07Z18uZmFtaWx5UHJlZml4JiYoZ18uY3NzUHJlZml4PWdfLmZhbWlseVByZWZpeCk7a3k9c3Qoc3Qoe30sVGNyKSxnXyk7a3kuYXV0b1JlcGxhY2VTdmd8fChreS5vYnNlcnZlTXV0YXRpb25zPSExKTtxdD17fTtPYmplY3Qua2V5cyhUY3IpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHF0LHQse2VudW1lcmFibGU6ITAsc2V0OmkoZnVuY3Rpb24ocil7a3lbdF09cixiXy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKHF0KX0pfSwic2V0IiksZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4ga3lbdF19LCJnZXQiKX0pfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHF0LCJmYW1pbHlQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLHNldDppKGZ1bmN0aW9uKGUpe2t5LmNzc1ByZWZpeD1lLGJfLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHIocXQpfSl9LCJzZXQiKSxnZXQ6aShmdW5jdGlvbigpe3JldHVybiBreS5jc3NQcmVmaXh9LCJnZXQiKX0pLExwLkZvbnRBd2Vzb21lQ29uZmlnPXF0O2JfPVtdO2koYUFhLCJvbkNoYW5nZSIpO0RwPWVFZSxyZD17c2l6ZToxNix4OjAseTowLHJvdGF0ZTowLGZsaXBYOiExLGZsaXBZOiExfTtpKGlBYSwiaW5zZXJ0Q3NzIik7c0FhPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7aShMY3IsIm5leHRVbmlxdWVJZCIpO2koU3ksInRvQXJyYXkiKTtpKGNFZSwiY2xhc3NBcnJheSIpO2koRGNyLCJodG1sRXNjYXBlIik7aShuQWEsImpvaW5BdHRyaWJ1dGVzIik7aShCM2UsImpvaW5TdHlsZXMiKTtpKGRFZSwidHJhbnNmb3JtSXNNZWFuaW5nZnVsIik7aShvQWEsInRyYW5zZm9ybUZvclN2ZyIpO2kobEFhLCJ0cmFuc2Zvcm1Gb3JDc3MiKTtjQWE9YDpyb290LCA6aG9zdCB7CiAgLS1mYS1mb250LXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBGcmVlJzsKICAtLWZhLWZvbnQtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRnJlZSc7CiAgLS1mYS1mb250LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBQcm8nOwogIC0tZmEtZm9udC10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBQcm8nOwogIC0tZmEtZm9udC1kdW90b25lOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWJyYW5kczogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgQnJhbmRzJzsKICAtLWZhLWZvbnQtc2hhcnAtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2xhYi1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTbGFiJzsKICAtLWZhLWZvbnQtc2xhYi1wcmVzcy1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTbGFiIFByZXNzJzsKICAtLWZhLWZvbnQtd2hpdGVib2FyZC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgV2hpdGVib2FyZCc7CiAgLS1mYS1mb250LXRodW1icHJpbnQtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFRodW1icHJpbnQnOwogIC0tZmEtZm9udC1ub3Rkb2ctc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IE5vdGRvZyc7CiAgLS1mYS1mb250LW5vdGRvZy1kdW8tc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8nOwogIC0tZmEtZm9udC1ldGNoLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBFdGNoJzsKICAtLWZhLWZvbnQtZ3JhcGhpdGUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgR3JhcGhpdGUnOwogIC0tZmEtZm9udC1qZWxseS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSc7CiAgLS1mYS1mb250LWplbGx5LWZpbGwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHkgRmlsbCc7CiAgLS1mYS1mb250LWplbGx5LWR1by1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8nOwogIC0tZmEtZm9udC1jaGlzZWwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgQ2hpc2VsJzsKICAtLWZhLWZvbnQtdXRpbGl0eS1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSc7CiAgLS1mYS1mb250LXV0aWxpdHktZHVvLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBVdGlsaXR5IER1byc7CiAgLS1mYS1mb250LXV0aWxpdHktZmlsbC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBGaWxsJzsKfQoKLnN2Zy1pbmxpbmUtLWZhIHsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKICBkaXNwbGF5OiB2YXIoLS1mYS1kaXNwbGF5LCBpbmxpbmUtYmxvY2spOwogIGhlaWdodDogMWVtOwogIG92ZXJmbG93OiB2aXNpYmxlOwogIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLTJ4cyB7CiAgdmVydGljYWwtYWxpZ246IDAuMWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS14cyB7CiAgdmVydGljYWwtYWxpZ246IDBlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtc20gewogIHZlcnRpY2FsLWFsaWduOiAtMC4wNzE0Mjg1NzE0ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLWxnIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMmVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS14bCB7CiAgdmVydGljYWwtYWxpZ246IC0wLjI1ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLTJ4bCB7CiAgdmVydGljYWwtYWxpZ246IC0wLjMxMjVlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtcHVsbC1sZWZ0LAouc3ZnLWlubGluZS0tZmEgLmZhLXB1bGwtc3RhcnQgewogIGZsb2F0OiBpbmxpbmUtc3RhcnQ7CiAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtcmlnaHQsCi5zdmctaW5saW5lLS1mYSAuZmEtcHVsbC1lbmQgewogIGZsb2F0OiBpbmxpbmUtZW5kOwogIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLWxpIHsKICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7CiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSkpOwogIGluc2V0LWJsb2NrLXN0YXJ0OiAwLjI1ZW07IC8qIHN5bmNpbmcgdmVydGljYWwgYWxpZ25tZW50IHdpdGggV2ViIEZvbnQgcmVuZGVyaW5nICovCn0KCi5mYS1sYXllcnMtY291bnRlciwgLmZhLWxheWVycy10ZXh0IHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLmZhLWxheWVycyB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMWVtOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCwgMS4yNWVtKTsKfQouZmEtbGF5ZXJzIC5zdmctaW5saW5lLS1mYSB7CiAgaW5zZXQ6IDA7CiAgbWFyZ2luOiBhdXRvOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwp9CgouZmEtbGF5ZXJzLXRleHQgewogIGxlZnQ6IDUwJTsKICB0b3A6IDUwJTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwp9CgouZmEtbGF5ZXJzLWNvdW50ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZhLWNvdW50ZXItYmFja2dyb3VuZC1jb2xvciwgI2ZmMjUzYSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtY291bnRlci1ib3JkZXItcmFkaXVzLCAxZW0pOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS1mYS1jb3VudGVyLWxpbmUtaGVpZ2h0LCAxKTsKICBtYXgtd2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWF4LXdpZHRoLCA1ZW0pOwogIG1pbi13aWR0aDogdmFyKC0tZmEtY291bnRlci1taW4td2lkdGgsIDEuNWVtKTsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBhZGRpbmc6IHZhcigtLWZhLWNvdW50ZXItcGFkZGluZywgMC4yNWVtIDAuNWVtKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWNvdW50ZXItc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7Cn0KCi5mYS1sYXllcnMtYm90dG9tLXJpZ2h0IHsKICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0b3A6IGF1dG87CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7Cn0KCi5mYS1sYXllcnMtYm90dG9tLWxlZnQgewogIGJvdHRvbTogdmFyKC0tZmEtYm90dG9tLCAwKTsKICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTsKICByaWdodDogYXV0bzsKICB0b3A6IGF1dG87CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDsKfQoKLmZhLWxheWVycy10b3AtcmlnaHQgewogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLXRvcC1sZWZ0IHsKICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTsKICByaWdodDogYXV0bzsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKfQoKLmZhLTF4IHsKICBmb250LXNpemU6IDFlbTsKfQoKLmZhLTJ4IHsKICBmb250LXNpemU6IDJlbTsKfQoKLmZhLTN4IHsKICBmb250LXNpemU6IDNlbTsKfQoKLmZhLTR4IHsKICBmb250LXNpemU6IDRlbTsKfQoKLmZhLTV4IHsKICBmb250LXNpemU6IDVlbTsKfQoKLmZhLTZ4IHsKICBmb250LXNpemU6IDZlbTsKfQoKLmZhLTd4IHsKICBmb250LXNpemU6IDdlbTsKfQoKLmZhLTh4IHsKICBmb250LXNpemU6IDhlbTsKfQoKLmZhLTl4IHsKICBmb250LXNpemU6IDllbTsKfQoKLmZhLTEweCB7CiAgZm9udC1zaXplOiAxMGVtOwp9CgouZmEtMnhzIHsKICBmb250LXNpemU6IGNhbGMoMTAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxMCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTAgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEteHMgewogIGZvbnQtc2l6ZTogY2FsYygxMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDEyICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxMiAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS1zbSB7CiAgZm9udC1zaXplOiBjYWxjKDE0IC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDE0cHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTQgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDE0IC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLWxnIHsKICBmb250LXNpemU6IGNhbGMoMjAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAyMCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjAgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEteGwgewogIGZvbnQtc2l6ZTogY2FsYygyNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAyNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDI0ICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAyNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS0yeGwgewogIGZvbnQtc2l6ZTogY2FsYygzMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAzMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDMyICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAzMiAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS13aWR0aC1hdXRvIHsKICAtLWZhLXdpZHRoOiBhdXRvOwp9CgouZmEtZncsCi5mYS13aWR0aC1maXhlZCB7CiAgLS1mYS13aWR0aDogMS4yNWVtOwp9CgouZmEtdWwgewogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1saS1tYXJnaW4sIDIuNWVtKTsKICBwYWRkaW5nLWlubGluZS1zdGFydDogMDsKfQouZmEtdWwgPiBsaSB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouZmEtbGkgewogIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTsKICBsaW5lLWhlaWdodDogaW5oZXJpdDsKfQoKLyogSGVhZHMgVXA6IEJvcmRlcmVkIEljb25zIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiB0aGUgZnV0dXJlIQogIC0gVGhpcyBmZWF0dXJlIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlIG9mIEZvbnQgQXdlc29tZSAodjgpIQogIC0gWW91IG1heSBjb250aW51ZSB0byB1c2UgaXQgaW4gdGhpcyB2ZXJzaW9uICp2NyksIGJ1dCBpdCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gRm9udCBBd2Vzb21lIHY4LgoqLwovKiBOb3RlczoKKiAtLUB7di4kY3NzLXByZWZpeH0tYm9yZGVyLXdpZHRoID0gMS8xNiBieSBkZWZhdWx0ICh0byByZW5kZXIgYXMgfjFweCBiYXNlZCBvbiBhIDE2cHggZGVmYXVsdCBmb250LXNpemUpCiogLS1Ae3YuJGNzcy1wcmVmaXh9LWJvcmRlci1wYWRkaW5nID0KICAqKiAzLzE2IGZvciB2ZXJ0aWNhbCBwYWRkaW5nICh0byBnaXZlIH4ycHggb2YgdmVydGljYWwgd2hpdGVzcGFjZSBhcm91bmQgYW4gaWNvbiBjb25zaWRlcmluZyBpdCdzIHZlcnRpY2FsIGFsaWdubWVudCkKICAqKiA0LzE2IGZvciBob3Jpem9udGFsIHBhZGRpbmcgKHRvIGdpdmUgfjRweCBvZiBob3Jpem9udGFsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24pCiovCi5mYS1ib3JkZXIgewogIGJvcmRlci1jb2xvcjogdmFyKC0tZmEtYm9yZGVyLWNvbG9yLCAjZWVlKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYS1ib3JkZXItcmFkaXVzLCAwLjFlbSk7CiAgYm9yZGVyLXN0eWxlOiB2YXIoLS1mYS1ib3JkZXItc3R5bGUsIHNvbGlkKTsKICBib3JkZXItd2lkdGg6IHZhcigtLWZhLWJvcmRlci13aWR0aCwgMC4wNjI1ZW0pOwogIGJveC1zaXppbmc6IHZhcigtLWZhLWJvcmRlci1ib3gtc2l6aW5nLCBjb250ZW50LWJveCk7CiAgcGFkZGluZzogdmFyKC0tZmEtYm9yZGVyLXBhZGRpbmcsIDAuMTg3NWVtIDAuMjVlbSk7Cn0KCi5mYS1wdWxsLWxlZnQsCi5mYS1wdWxsLXN0YXJ0IHsKICBmbG9hdDogaW5saW5lLXN0YXJ0OwogIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9CgouZmEtcHVsbC1yaWdodCwKLmZhLXB1bGwtZW5kIHsKICBmbG9hdDogaW5saW5lLWVuZDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9CgouZmEtYmVhdCB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQ7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTsKfQoKLmZhLWJvdW5jZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJvdW5jZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuMjgsIDAuODQsIDAuNDIsIDEpKTsKfQoKLmZhLWZhZGUgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1mYWRlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpKTsKfQoKLmZhLWJlYXQtZmFkZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQtZmFkZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7Cn0KCi5mYS1mbGlwIHsKICBhbmltYXRpb24tbmFtZTogZmEtZmxpcDsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgZWFzZS1pbi1vdXQpOwp9CgouZmEtc2hha2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zaGFrZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTsKfQoKLmZhLXNwaW4gewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMnMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBsaW5lYXIpOwp9CgouZmEtc3Bpbi1yZXZlcnNlIHsKICAtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7Cn0KCi5mYS1wdWxzZSwKLmZhLXNwaW4tcHVsc2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgc3RlcHMoOCkpOwp9CgpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogIC5mYS1iZWF0LAogIC5mYS1ib3VuY2UsCiAgLmZhLWZhZGUsCiAgLmZhLWJlYXQtZmFkZSwKICAuZmEtZmxpcCwKICAuZmEtcHVsc2UsCiAgLmZhLXNoYWtlLAogIC5mYS1zcGluLAogIC5mYS1zcGluLXB1bHNlIHsKICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJlYXQgewogIDAlLCA5MCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgNDUlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYmVhdC1zY2FsZSwgMS4yNSkpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJvdW5jZSB7CiAgMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KICAxMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteCwgMS4xKSwgdmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXksIDAuOSkpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDMwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXgsIDAuOSksIHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXksIDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLWhlaWdodCwgLTAuNWVtKSk7CiAgfQogIDUwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXgsIDEuMDUpLCB2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS15LCAwLjk1KSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgNTclIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtcmVib3VuZCwgLTAuMTI1ZW0pKTsKICB9CiAgNjQlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtZmFkZSB7CiAgNTAlIHsKICAgIG9wYWNpdHk6IHZhcigtLWZhLWZhZGUtb3BhY2l0eSwgMC40KTsKICB9Cn0KQGtleWZyYW1lcyBmYS1iZWF0LWZhZGUgewogIDAlLCAxMDAlIHsKICAgIG9wYWNpdHk6IHZhcigtLWZhLWJlYXQtZmFkZS1vcGFjaXR5LCAwLjQpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgNTAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtZmFkZS1zY2FsZSwgMS4xMjUpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1mbGlwIHsKICA1MCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUzZCh2YXIoLS1mYS1mbGlwLXgsIDApLCB2YXIoLS1mYS1mbGlwLXksIDEpLCB2YXIoLS1mYS1mbGlwLXosIDApLCB2YXIoLS1mYS1mbGlwLWFuZ2xlLCAtMTgwZGVnKSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtc2hha2UgewogIDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7CiAgfQogIDQlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsKICB9CiAgOCUsIDI0JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMThkZWcpOwogIH0KICAxMiUsIDI4JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxOGRlZyk7CiAgfQogIDE2JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjJkZWcpOwogIH0KICAyMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMjJkZWcpOwogIH0KICAzMiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTEyZGVnKTsKICB9CiAgMzYlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDEyZGVnKTsKICB9CiAgNDAlLCAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLXNwaW4gewogIDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9Ci5mYS1yb3RhdGUtOTAgewogIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKfQoKLmZhLXJvdGF0ZS0xODAgewogIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Cn0KCi5mYS1yb3RhdGUtMjcwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOwp9CgouZmEtZmxpcC1ob3Jpem9udGFsIHsKICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTsKfQoKLmZhLWZsaXAtdmVydGljYWwgewogIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOwp9CgouZmEtZmxpcC1ib3RoLAouZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWwgewogIHRyYW5zZm9ybTogc2NhbGUoLTEsIC0xKTsKfQoKLmZhLXJvdGF0ZS1ieSB7CiAgdHJhbnNmb3JtOiByb3RhdGUodmFyKC0tZmEtcm90YXRlLWFuZ2xlLCAwKSk7Cn0KCi5zdmctaW5saW5lLS1mYSAuZmEtcHJpbWFyeSB7CiAgZmlsbDogdmFyKC0tZmEtcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKTsKICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpOwp9Cgouc3ZnLWlubGluZS0tZmEgLmZhLXNlY29uZGFyeSB7CiAgZmlsbDogdmFyKC0tZmEtc2Vjb25kYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpOwogIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1wcmltYXJ5IHsKICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtc2Vjb25kYXJ5IHsKICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpOwp9Cgouc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtcHJpbWFyeSwKLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXNlY29uZGFyeSB7CiAgZmlsbDogYmxhY2s7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1pbnZlcnNlIHsKICBmaWxsOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKfQoKLmZhLXN0YWNrIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgaGVpZ2h0OiAyZW07CiAgbGluZS1oZWlnaHQ6IDJlbTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICB3aWR0aDogMi41ZW07Cn0KCi5mYS1pbnZlcnNlIHsKICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0xeCB7CiAgLS1mYS13aWR0aDogMS4yNWVtOwogIGhlaWdodDogMWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXN0YWNrLTJ4IHsKICAtLWZhLXdpZHRoOiAyLjVlbTsKICBoZWlnaHQ6IDJlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgpOwp9CgouZmEtc3RhY2stMXgsCi5mYS1zdGFjay0yeCB7CiAgaW5zZXQ6IDA7CiAgbWFyZ2luOiBhdXRvOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiB2YXIoLS1mYS1zdGFjay16LWluZGV4LCBhdXRvKTsKfWA7aSgkY3IsImNzcyIpO0Fjcj0hMTtpKHVFZSwiZW5zdXJlQ3NzIik7ZEFhPXttaXhvdXQ6aShmdW5jdGlvbigpe3JldHVybntkb206e2NzczokY3IsaW5zZXJ0Q3NzOnVFZX19fSwibWl4b3V0IiksaG9va3M6aShmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246aShmdW5jdGlvbigpe3VFZSgpfSwiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIiksYmVmb3JlSTJzdmc6aShmdW5jdGlvbigpe3VFZSgpfSwiYmVmb3JlSTJzdmciKX19LCJob29rcyIpfSxCND1McHx8e307QjRbRjRdfHwoQjRbRjRdPXt9KSxCNFtGNF0uc3R5bGVzfHwoQjRbRjRdLnN0eWxlcz17fSksQjRbRjRdLmhvb2tzfHwoQjRbRjRdLmhvb2tzPXt9KSxCNFtGNF0uc2hpbXN8fChCNFtGNF0uc2hpbXM9W10pO2xjPUI0W0Y0XSxFY3I9W10sSWNyPWkoZnVuY3Rpb24oKXtkaS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixJY3IpLEgzZT0xLEVjci5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pfSwibGlzdGVuZXIiKSxIM2U9ITE7UjQmJihIM2U9KGRpLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KGRpLnJlYWR5U3RhdGUpLEgzZXx8ZGkuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSWNyKSk7aSh1QWEsImRvbXJlYWR5Iik7aSh4XywidG9IdG1sIik7aShQY3IsImljb25Gcm9tTWFwcGluZyIpO3BBYT1pKGZ1bmN0aW9uKGUscil7cmV0dXJuIGZ1bmN0aW9uKGEscyxuLG8pe3JldHVybiBlLmNhbGwocixhLHMsbixvKX19LCJiaW5kSW50ZXJuYWw0IikscEVlPWkoZnVuY3Rpb24oZSxyLGEscyl7dmFyIG49T2JqZWN0LmtleXMoZSksbz1uLmxlbmd0aCxsPXMhPT12b2lkIDA/cEFhKHIscyk6cixjLGQsZjtmb3IoYT09PXZvaWQgMD8oYz0xLGY9ZVtuWzBdXSk6KGM9MCxmPWEpO2M8bztjKyspZD1uW2NdLGY9bChmLGVbZF0sZCxlKTtyZXR1cm4gZn0sImZhc3RSZWR1Y2VPYmplY3QiKTtpKE5jciwidG9IZXgiKTtpKE9jciwibm9ybWFsaXplSWNvbnMiKTtpKGZFZSwiZGVmaW5lSWNvbnMiKTtoRWU9MSxjYz0yLG5Nbj1bW2NjLHlvKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi4qcGF0aC4qZD0iKFteIl0qKSIvLHtkMjoyLGQxOjN9KV0sW2NjLHlvKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi8se2QyOjJ9KV0sW2hFZSx5bygvcGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiLipkPSIoW14iXSspIi8se2QxOjF9KV1dLG9Nbj1bW2NjLHlvKC9wYXRoIGNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipkPSIoW14iXSspIi4qcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjI6MSxkMjoyLGF0dHIxOjMsZDE6NH0pXSxbY2MseW8oL3BhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi4qcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjIsYXR0cjI6MyxkMjo0fSldLFtjYyx5bygvcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjE6MSxkMToyfSldLFtjYyx5bygvcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMjoxLGQyOjJ9KV0sW2NjLHlvKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLyx7ZDI6MSxhdHRyMjoyLGQxOjMsYXR0cjE6NH0pXSxbY2MseW8oL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIvLHtkMToxLGF0dHIxOjIsZDI6MyxhdHRyMjo0fSldLFtjYyx5bygvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLyx7ZDE6MSxhdHRyMToyfSldLFtjYyx5bygvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIvLHtkMjoxLGF0dHIyOjJ9KV0sW2NjLHlvKC9wYXRoIGQ9IihbXiJdKykiLipwYXRoIGQ9IihbXiJdKykiLyx7ZDE6MSxkMjoyfSldLFtoRWUseW8oL3BhdGggZD0iKFteIl0rKSIvLHtkMToxfSldLFtoRWUseW8oL3BhdGggc3R5bGU9IihbXiJdKykiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXV0sdl89bGMuc3R5bGVzLGZBYT1sYy5zaGltcyxSY3I9T2JqZWN0LmtleXMobkVlKSxoQWE9UmNyLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0W2VdPU9iamVjdC5rZXlzKG5FZVtlXSksdH0se30pLG1FZT1udWxsLEZjcj17fSxCY3I9e30sSGNyPXt9LHFjcj17fSxWY3I9e307aShtQWEsImlzUmVzZXJ2ZWQiKTtpKGdBYSwiZ2V0SWNvbk5hbWUiKTtqY3I9aShmdW5jdGlvbigpe3ZhciBlPWkoZnVuY3Rpb24obil7cmV0dXJuIHBFZSh2XyxmdW5jdGlvbihvLGwsYyl7cmV0dXJuIG9bY109cEVlKGwsbix7fSksb30se30pfSwibG9va3VwIik7RmNyPWUoZnVuY3Rpb24ocyxuLG8pe2lmKG5bM10mJihzW25bM11dPW8pLG5bMl0pe3ZhciBsPW5bMl0uZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiB0eXBlb2YgYz09Im51bWJlciJ9KTtsLmZvckVhY2goZnVuY3Rpb24oYyl7c1tjLnRvU3RyaW5nKDE2KV09b30pfXJldHVybiBzfSksQmNyPWUoZnVuY3Rpb24ocyxuLG8pe2lmKHNbb109byxuWzJdKXt2YXIgbD1uWzJdLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gdHlwZW9mIGM9PSJzdHJpbmcifSk7bC5mb3JFYWNoKGZ1bmN0aW9uKGMpe3NbY109b30pfXJldHVybiBzfSksVmNyPWUoZnVuY3Rpb24ocyxuLG8pe3ZhciBsPW5bMl07cmV0dXJuIHNbb109byxsLmZvckVhY2goZnVuY3Rpb24oYyl7c1tjXT1vfSksc30pO3ZhciByPSJmYXIiaW4gdl98fHF0LmF1dG9GZXRjaFN2ZyxhPXBFZShmQWEsZnVuY3Rpb24ocyxuKXt2YXIgbz1uWzBdLGw9blsxXSxjPW5bMl07cmV0dXJuIGw9PT0iZmFyIiYmIXImJihsPSJmYXMiKSx0eXBlb2Ygbz09InN0cmluZyImJihzLm5hbWVzW29dPXtwcmVmaXg6bCxpY29uTmFtZTpjfSksdHlwZW9mIG89PSJudW1iZXIiJiYocy51bmljb2Rlc1tvLnRvU3RyaW5nKDE2KV09e3ByZWZpeDpsLGljb25OYW1lOmN9KSxzfSx7bmFtZXM6e30sdW5pY29kZXM6e319KTtIY3I9YS5uYW1lcyxxY3I9YS51bmljb2RlcyxtRWU9cTNlKHF0LnN0eWxlRGVmYXVsdCx7ZmFtaWx5OnF0LmZhbWlseURlZmF1bHR9KX0sImJ1aWxkIik7YUFhKGZ1bmN0aW9uKHQpe21FZT1xM2UodC5zdHlsZURlZmF1bHQse2ZhbWlseTpxdC5mYW1pbHlEZWZhdWx0fSl9KSxqY3IoKTtpKGdFZSwiYnlVbmljb2RlIik7aShiQWEsImJ5TGlnYXR1cmUiKTtpKGltLCJieUFsaWFzIik7aShVY3IsImJ5T2xkTmFtZSIpO2koeEFhLCJieU9sZFVuaWNvZGUiKTtpKCRwLCJnZXREZWZhdWx0VXNhYmxlUHJlZml4Iik7V2NyPWkoZnVuY3Rpb24oKXtyZXR1cm57cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbCxyZXN0OltdfX0sImVtcHR5Q2Fub25pY2FsSWNvbiIpO2kodkFhLCJnZXRGYW1pbHlJZCIpO2kocTNlLCJnZXRDYW5vbmljYWxQcmVmaXgiKTtpKHlBYSwibW92ZU5vbkZhQ2xhc3Nlc1RvUmVzdCIpO2koR2NyLCJzb3J0ZWRVbmlxdWVWYWx1ZXMiKTtZY3I9YmNyLmNvbmNhdChoY3IpO2koVjNlLCJnZXRDYW5vbmljYWxJY29uIik7aSh3QWEsImFwcGx5U2hpbUFuZEFsaWFzIik7a0FhPWZjci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1Ebnx8dCE9PWhffSksU0FhPU9iamVjdC5rZXlzKEpBZSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09RG59KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKEpBZVt0XSl9KS5mbGF0KCk7aShNQWEsImdldERlZmF1bHRDYW5vbmljYWxQcmVmaXgiKTtDQWE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe25EYSh0aGlzLHQpLHRoaXMuZGVmaW5pdGlvbnM9e319cmV0dXJuIGkodCwiTGlicmFyeSIpLG9EYSh0LFt7a2V5OiJhZGQiLHZhbHVlOmkoZnVuY3Rpb24oKXtmb3IodmFyIHI9dGhpcyxhPWFyZ3VtZW50cy5sZW5ndGgscz1uZXcgQXJyYXkoYSksbj0wO248YTtuKyspc1tuXT1hcmd1bWVudHNbbl07dmFyIG89cy5yZWR1Y2UodGhpcy5fcHVsbERlZmluaXRpb25zLHt9KTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3IuZGVmaW5pdGlvbnNbbF09c3Qoc3Qoe30sci5kZWZpbml0aW9uc1tsXXx8e30pLG9bbF0pLGZFZShsLG9bbF0pO3ZhciBjPW5FZVtEbl1bbF07YyYmZkVlKGMsb1tsXSksamNyKCl9KX0sImFkZCIpfSx7a2V5OiJyZXNldCIsdmFsdWU6aShmdW5jdGlvbigpe3RoaXMuZGVmaW5pdGlvbnM9e319LCJyZXNldCIpfSx7a2V5OiJfcHVsbERlZmluaXRpb25zIix2YWx1ZTppKGZ1bmN0aW9uKHIsYSl7dmFyIHM9YS5wcmVmaXgmJmEuaWNvbk5hbWUmJmEuaWNvbj97MDphfTphO3JldHVybiBPYmplY3Qua2V5cyhzKS5tYXAoZnVuY3Rpb24obil7dmFyIG89c1tuXSxsPW8ucHJlZml4LGM9by5pY29uTmFtZSxkPW8uaWNvbixmPWRbMl07cltsXXx8KHJbbF09e30pLGYubGVuZ3RoPjAmJmYuZm9yRWFjaChmdW5jdGlvbihwKXt0eXBlb2YgcD09InN0cmluZyImJihyW2xdW3BdPWQpfSkscltsXVtjXT1kfSkscn0sIl9wdWxsRGVmaW5pdGlvbnMiKX1dKX0pKCksS2NyPVtdLE15PXt9LEN5PXt9LHpBYT1PYmplY3Qua2V5cyhDeSk7aShfQWEsInJlZ2lzdGVyUGx1Z2lucyIpO2koYkVlLCJjaGFpbkhvb2tzIik7aShzbSwiY2FsbEhvb2tzIik7aShBcCwiY2FsbFByb3ZpZGVkIik7aSh4RWUsImZpbmRJY29uRGVmaW5pdGlvbiIpO1pjcj1uZXcgQ0FhLFRBYT1pKGZ1bmN0aW9uKCl7cXQuYXV0b1JlcGxhY2VTdmc9ITEscXQub2JzZXJ2ZU11dGF0aW9ucz0hMSxzbSgibm9BdXRvIil9LCJub0F1dG8iKSxMQWE9e2kyc3ZnOmkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e307cmV0dXJuIFI0PyhzbSgiYmVmb3JlSTJzdmciLGUpLEFwKCJwc2V1ZG9FbGVtZW50czJzdmciLGUpLEFwKCJpMnN2ZyIsZSkpOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiT3BlcmF0aW9uIHJlcXVpcmVzIGEgRE9NIG9mIHNvbWUga2luZC4iKSl9LCJpMnN2ZyIpLHdhdGNoOmkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30scj1lLmF1dG9SZXBsYWNlU3ZnUm9vdDtxdC5hdXRvUmVwbGFjZVN2Zz09PSExJiYocXQuYXV0b1JlcGxhY2VTdmc9ITApLHF0Lm9ic2VydmVNdXRhdGlvbnM9ITAsdUFhKGZ1bmN0aW9uKCl7JEFhKHthdXRvUmVwbGFjZVN2Z1Jvb3Q6cn0pLHNtKCJ3YXRjaCIsZSl9KX0sIndhdGNoIil9LERBYT17aWNvbjppKGZ1bmN0aW9uKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2lmKE8zZShlKT09PSJvYmplY3QiJiZlLnByZWZpeCYmZS5pY29uTmFtZSlyZXR1cm57cHJlZml4OmUucHJlZml4LGljb25OYW1lOmltKGUucHJlZml4LGUuaWNvbk5hbWUpfHxlLmljb25OYW1lfTtpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09PTIpe3ZhciByPWVbMV0uaW5kZXhPZigiZmEtIik9PT0wP2VbMV0uc2xpY2UoMyk6ZVsxXSxhPXEzZShlWzBdKTtyZXR1cm57cHJlZml4OmEsaWNvbk5hbWU6aW0oYSxyKXx8cn19aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZS5pbmRleE9mKCIiLmNvbmNhdChxdC5jc3NQcmVmaXgsIi0iKSk+LTF8fGUubWF0Y2goWiRhKSkpe3ZhciBzPVYzZShlLnNwbGl0KCIgIikse3NraXBMb29rdXBzOiEwfSk7cmV0dXJue3ByZWZpeDpzLnByZWZpeHx8JHAoKSxpY29uTmFtZTppbShzLnByZWZpeCxzLmljb25OYW1lKXx8cy5pY29uTmFtZX19aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgbj0kcCgpO3JldHVybntwcmVmaXg6bixpY29uTmFtZTppbShuLGUpfHxlfX19LCJpY29uIil9LEQxPXtub0F1dG86VEFhLGNvbmZpZzpxdCxkb206TEFhLHBhcnNlOkRBYSxsaWJyYXJ5OlpjcixmaW5kSWNvbkRlZmluaXRpb246eEVlLHRvSHRtbDp4X30sJEFhPWkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30scj1lLmF1dG9SZXBsYWNlU3ZnUm9vdCxhPXI9PT12b2lkIDA/ZGk6cjsoT2JqZWN0LmtleXMobGMuc3R5bGVzKS5sZW5ndGg+MHx8cXQuYXV0b0ZldGNoU3ZnKSYmUjQmJnF0LmF1dG9SZXBsYWNlU3ZnJiZEMS5kb20uaTJzdmcoe25vZGU6YX0pfSwiYXV0b1JlcGxhY2UiKTtpKGozZSwiZG9tVmFyaWFudHMiKTtpKEFBYSwiYXNJY29uIik7aShFQWEsImFzU3ltYm9sIik7aShJQWEsImlzTGFiZWxlZCIpO2kodkVlLCJtYWtlSW5saW5lU3ZnQWJzdHJhY3QiKTtpKFFjciwibWFrZUxheWVyc1RleHRBYnN0cmFjdCIpO2koUEFhLCJtYWtlTGF5ZXJzQ291bnRlckFic3RyYWN0Iik7eUVlPWxjLnN0eWxlcztpKHdFZSwiYXNGb3VuZEljb24iKTtOQWE9e2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyfTtpKE9BYSwibWF5YmVOb3RpZnlNaXNzaW5nIik7aShrRWUsImZpbmRJY29uIik7WGNyPWkoZnVuY3Rpb24oKXt9LCJub29wIiksU0VlPXF0Lm1lYXN1cmVQZXJmb3JtYW5jZSYmUjNlJiZSM2UubWFyayYmUjNlLm1lYXN1cmU/UjNlOnttYXJrOlhjcixtZWFzdXJlOlhjcn0seV89J0ZBICI3LjIuMCInLFJBYT1pKGZ1bmN0aW9uKGUpe3JldHVybiBTRWUubWFyaygiIi5jb25jYXQoeV8sIiAiKS5jb25jYXQoZSwiIGJlZ2lucyIpKSxmdW5jdGlvbigpe3JldHVybiBKY3IoZSl9fSwiYmVnaW4iKSxKY3I9aShmdW5jdGlvbihlKXtTRWUubWFyaygiIi5jb25jYXQoeV8sIiAiKS5jb25jYXQoZSwiIGVuZHMiKSksU0VlLm1lYXN1cmUoIiIuY29uY2F0KHlfLCIgIikuY29uY2F0KGUpLCIiLmNvbmNhdCh5XywiICIpLmNvbmNhdChlLCIgYmVnaW5zIiksIiIuY29uY2F0KHlfLCIgIikuY29uY2F0KGUsIiBlbmRzIikpfSwiZW5kIiksTUVlPXtiZWdpbjpSQWEsZW5kOkpjcn0sVTNlPWkoZnVuY3Rpb24oKXt9LCJub29wIik7aShlMHIsImlzV2F0Y2hlZCIpO2koRkFhLCJoYXNQcmVmaXhBbmRJY29uIik7aShCQWEsImhhc0JlZW5SZXBsYWNlZCIpO2koSEFhLCJnZXRNdXRhdG9yIik7aShxQWEsImNyZWF0ZUVsZW1lbnROUyIpO2koVkFhLCJjcmVhdGVFbGVtZW50Iik7aSh0MHIsImNvbnZlcnRTVkciKTtpKGpBYSwibm9kZUFzQ29tbWVudCIpO1czZT17cmVwbGFjZTppKGZ1bmN0aW9uKGUpe3ZhciByPWVbMF07aWYoci5wYXJlbnROb2RlKWlmKGVbMV0uZm9yRWFjaChmdW5jdGlvbihzKXtyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQwcihzKSxyKX0pLHIuZ2V0QXR0cmlidXRlKGFtKT09PW51bGwmJnF0LmtlZXBPcmlnaW5hbFNvdXJjZSl7dmFyIGE9ZGkuY3JlYXRlQ29tbWVudChqQWEocikpO3IucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoYSxyKX1lbHNlIHIucmVtb3ZlKCl9LCJyZXBsYWNlIiksbmVzdDppKGZ1bmN0aW9uKGUpe3ZhciByPWVbMF0sYT1lWzFdO2lmKH5jRWUocikuaW5kZXhPZihxdC5yZXBsYWNlbWVudENsYXNzKSlyZXR1cm4gVzNlLnJlcGxhY2UoZSk7dmFyIHM9bmV3IFJlZ0V4cCgiIi5jb25jYXQocXQuY3NzUHJlZml4LCItLioiKSk7aWYoZGVsZXRlIGFbMF0uYXR0cmlidXRlcy5pZCxhWzBdLmF0dHJpYnV0ZXMuY2xhc3Mpe3ZhciBuPWFbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihsLGMpe3JldHVybiBjPT09cXQucmVwbGFjZW1lbnRDbGFzc3x8Yy5tYXRjaChzKT9sLnRvU3ZnLnB1c2goYyk6bC50b05vZGUucHVzaChjKSxsfSx7dG9Ob2RlOltdLHRvU3ZnOltdfSk7YVswXS5hdHRyaWJ1dGVzLmNsYXNzPW4udG9Tdmcuam9pbigiICIpLG4udG9Ob2RlLmxlbmd0aD09PTA/ci5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik6ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLnRvTm9kZS5qb2luKCIgIikpfXZhciBvPWEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiB4XyhsKX0pLmpvaW4oYApgKTtyLnNldEF0dHJpYnV0ZShhbSwiIiksci5pbm5lckhUTUw9b30sIm5lc3QiKX07aShyMHIsInBlcmZvcm1PcGVyYXRpb25TeW5jIik7aShhMHIsInBlcmZvcm0iKTtDRWU9ITE7aShpMHIsImRpc2FibGVPYnNlcnZhdGlvbiIpO2koekVlLCJlbmFibGVPYnNlcnZhdGlvbiIpO0czZT1udWxsO2koczByLCJvYnNlcnZlIik7aShVQWEsImRpc2Nvbm5lY3QiKTtpKFdBYSwic3R5bGVQYXJzZXIiKTtpKEdBYSwiY2xhc3NQYXJzZXIiKTtpKFlBYSwiYXR0cmlidXRlc1BhcnNlciIpO2koS0FhLCJibGFua01ldGEiKTtpKG4wciwicGFyc2VNZXRhIik7WkFhPWxjLnN0eWxlcztpKG8wciwiZ2VuZXJhdGVNdXRhdGlvbiIpO2koUUFhLCJnZXRLbm93blByZWZpeGVzIik7aShsMHIsIm9uVHJlZSIpO2koWEFhLCJvbk5vZGUiKTtpKEpBYSwicmVzb2x2ZUljb25zIik7ZUVhPWkoZnVuY3Rpb24oZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9ci50cmFuc2Zvcm0scz1hPT09dm9pZCAwP3JkOmEsbj1yLnN5bWJvbCxvPW49PT12b2lkIDA/ITE6bixsPXIubWFzayxjPWw9PT12b2lkIDA/bnVsbDpsLGQ9ci5tYXNrSWQsZj1kPT09dm9pZCAwP251bGw6ZCxwPXIuY2xhc3NlcyxoPXA9PT12b2lkIDA/W106cCxtPXIuYXR0cmlidXRlcyx2PW09PT12b2lkIDA/e306bSxiPXIuc3R5bGVzLGc9Yj09PXZvaWQgMD97fTpiO2lmKGUpe3ZhciB5PWUucHJlZml4LGs9ZS5pY29uTmFtZSxNPWUuaWNvbjtyZXR1cm4gajNlKHN0KHt0eXBlOiJpY29uIn0sZSksZnVuY3Rpb24oKXtyZXR1cm4gc20oImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2ljb25EZWZpbml0aW9uOmUscGFyYW1zOnJ9KSx2RWUoe2ljb25zOnttYWluOndFZShNKSxtYXNrOmM/d0VlKGMuaWNvbik6e2ZvdW5kOiExLHdpZHRoOm51bGwsaGVpZ2h0Om51bGwsaWNvbjp7fX19LHByZWZpeDp5LGljb25OYW1lOmssdHJhbnNmb3JtOnN0KHN0KHt9LHJkKSxzKSxzeW1ib2w6byxtYXNrSWQ6ZixleHRyYTp7YXR0cmlidXRlczp2LHN0eWxlczpnLGNsYXNzZXM6aH19KX0pfX0sInJlbmRlciIpLHRFYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57aWNvbjpKQWEoZUVhKX19LCJtaXhvdXQiKSxob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6aShmdW5jdGlvbihyKXtyZXR1cm4gci50cmVlQ2FsbGJhY2s9bDByLHIubm9kZUNhbGxiYWNrPVhBYSxyfSwibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmkyc3ZnPWZ1bmN0aW9uKHIpe3ZhciBhPXIubm9kZSxzPWE9PT12b2lkIDA/ZGk6YSxuPXIuY2FsbGJhY2ssbz1uPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpuO3JldHVybiBsMHIocyxvKX0sZS5nZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb249ZnVuY3Rpb24ocixhKXt2YXIgcz1hLmljb25OYW1lLG49YS5wcmVmaXgsbz1hLnRyYW5zZm9ybSxsPWEuc3ltYm9sLGM9YS5tYXNrLGQ9YS5tYXNrSWQsZj1hLmV4dHJhO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihwLGgpe1Byb21pc2UuYWxsKFtrRWUocyxuKSxjLmljb25OYW1lP2tFZShjLmljb25OYW1lLGMucHJlZml4KTpQcm9taXNlLnJlc29sdmUoe2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyLGljb246e319KV0pLnRoZW4oZnVuY3Rpb24obSl7dmFyIHY9TjNlKG0sMiksYj12WzBdLGc9dlsxXTtwKFtyLHZFZSh7aWNvbnM6e21haW46YixtYXNrOmd9LHByZWZpeDpuLGljb25OYW1lOnMsdHJhbnNmb3JtOm8sc3ltYm9sOmwsbWFza0lkOmQsZXh0cmE6Zix3YXRjaGFibGU6ITB9KV0pfSkuY2F0Y2goaCl9KX0sZS5nZW5lcmF0ZUFic3RyYWN0SWNvbj1mdW5jdGlvbihyKXt2YXIgYT1yLmNoaWxkcmVuLHM9ci5hdHRyaWJ1dGVzLG49ci5tYWluLG89ci50cmFuc2Zvcm0sbD1yLnN0eWxlcyxjPUIzZShsKTtjLmxlbmd0aD4wJiYocy5zdHlsZT1jKTt2YXIgZDtyZXR1cm4gZEVlKG8pJiYoZD1BcCgiZ2VuZXJhdGVBYnN0cmFjdFRyYW5zZm9ybUdyb3VwaW5nIix7bWFpbjpuLHRyYW5zZm9ybTpvLGNvbnRhaW5lcldpZHRoOm4ud2lkdGgsaWNvbldpZHRoOm4ud2lkdGh9KSksYS5wdXNoKGR8fG4uaWNvbikse2NoaWxkcmVuOmEsYXR0cmlidXRlczpzfX19LCJwcm92aWRlcyIpfSxyRWE9e21peG91dDppKGZ1bmN0aW9uKCl7cmV0dXJue2xheWVyOmkoZnVuY3Rpb24ocil7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHM9YS5jbGFzc2VzLG49cz09PXZvaWQgMD9bXTpzO3JldHVybiBqM2Uoe3R5cGU6ImxheWVyIn0sZnVuY3Rpb24oKXtzbSgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7YXNzZW1ibGVyOnIscGFyYW1zOmF9KTt2YXIgbz1bXTtyZXR1cm4gcihmdW5jdGlvbihsKXtBcnJheS5pc0FycmF5KGwpP2wubWFwKGZ1bmN0aW9uKGMpe289by5jb25jYXQoYy5hYnN0cmFjdCl9KTpvPW8uY29uY2F0KGwuYWJzdHJhY3QpfSksW3t0YWc6InNwYW4iLGF0dHJpYnV0ZXM6e2NsYXNzOlsiIi5jb25jYXQocXQuY3NzUHJlZml4LCItbGF5ZXJzIildLmNvbmNhdChvYyhuKSkuam9pbigiICIpfSxjaGlsZHJlbjpvfV19KX0sImxheWVyIil9fSwibWl4b3V0Iil9LGFFYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57Y291bnRlcjppKGZ1bmN0aW9uKHIpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxzPWEudGl0bGUsbj1zPT09dm9pZCAwP251bGw6cyxvPWEuY2xhc3NlcyxsPW89PT12b2lkIDA/W106byxjPWEuYXR0cmlidXRlcyxkPWM9PT12b2lkIDA/e306YyxmPWEuc3R5bGVzLHA9Zj09PXZvaWQgMD97fTpmO3JldHVybiBqM2Uoe3R5cGU6ImNvdW50ZXIiLGNvbnRlbnQ6cn0sZnVuY3Rpb24oKXtyZXR1cm4gc20oImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2NvbnRlbnQ6cixwYXJhbXM6YX0pLFBBYSh7Y29udGVudDpyLnRvU3RyaW5nKCksdGl0bGU6bixleHRyYTp7YXR0cmlidXRlczpkLHN0eWxlczpwLGNsYXNzZXM6WyIiLmNvbmNhdChxdC5jc3NQcmVmaXgsIi1sYXllcnMtY291bnRlciIpXS5jb25jYXQob2MobCkpfX0pfSl9LCJjb3VudGVyIil9fSwibWl4b3V0Iil9LGlFYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57dGV4dDppKGZ1bmN0aW9uKHIpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxzPWEudHJhbnNmb3JtLG49cz09PXZvaWQgMD9yZDpzLG89YS5jbGFzc2VzLGw9bz09PXZvaWQgMD9bXTpvLGM9YS5hdHRyaWJ1dGVzLGQ9Yz09PXZvaWQgMD97fTpjLGY9YS5zdHlsZXMscD1mPT09dm9pZCAwP3t9OmY7cmV0dXJuIGozZSh7dHlwZToidGV4dCIsY29udGVudDpyfSxmdW5jdGlvbigpe3JldHVybiBzbSgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDpyLHBhcmFtczphfSksUWNyKHtjb250ZW50OnIsdHJhbnNmb3JtOnN0KHN0KHt9LHJkKSxuKSxleHRyYTp7YXR0cmlidXRlczpkLHN0eWxlczpwLGNsYXNzZXM6WyIiLmNvbmNhdChxdC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQob2MobCkpfX0pfSl9LCJ0ZXh0Iil9fSwibWl4b3V0IikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlTGF5ZXJzVGV4dD1mdW5jdGlvbihyLGEpe3ZhciBzPWEudHJhbnNmb3JtLG49YS5leHRyYSxvPW51bGwsbD1udWxsO2lmKEcycil7dmFyIGM9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShyKS5mb250U2l6ZSwxMCksZD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO289ZC53aWR0aC9jLGw9ZC5oZWlnaHQvY31yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtyLFFjcih7Y29udGVudDpyLmlubmVySFRNTCx3aWR0aDpvLGhlaWdodDpsLHRyYW5zZm9ybTpzLGV4dHJhOm4sd2F0Y2hhYmxlOiEwfSldKX19LCJwcm92aWRlcyIpfSxjMHI9bmV3IFJlZ0V4cCgnIicsInVnIiksZDByPVsxMTA1OTIwLDExMTIzMTldLHUwcj1zdChzdChzdChzdCh7fSx7Rm9udEF3ZXNvbWU6e25vcm1hbDoiZmFzIiw0MDA6ImZhcyJ9fSksUkRhKSxVJGEpLEdEYSksX0VlPU9iamVjdC5rZXlzKHUwcikucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS50b0xvd2VyQ2FzZSgpXT11MHJbZV0sdH0se30pLHNFYT1PYmplY3Qua2V5cyhfRWUpLnJlZHVjZShmdW5jdGlvbih0LGUpe3ZhciByPV9FZVtlXTtyZXR1cm4gdFtlXT1yWzkwMF18fG9jKE9iamVjdC5lbnRyaWVzKHIpKVswXVsxXSx0fSx7fSk7aShuRWEsImhleFZhbHVlRnJvbUNvbnRlbnQiKTtpKG9FYSwiaXNTZWNvbmRhcnlMYXllciIpO2kobEVhLCJnZXRQcmVmaXgiKTtpKHAwciwicmVwbGFjZUZvclBvc2l0aW9uIik7aShjRWEsInJlcGxhY2UiKTtpKGRFYSwicHJvY2Vzc2FibGUiKTt1RWE9aShmdW5jdGlvbihlKXtyZXR1cm4hIWUmJmtjci5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiBlLmluY2x1ZGVzKHIpfSl9LCJoYXNQc2V1ZG9FbGVtZW50IikscEVhPWkoZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107dmFyIHI9bmV3IFNldCxhPWUuc3BsaXQoLywoPyFbXigpXSpcKSkvKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMudHJpbSgpfSk7YT1hLmZsYXRNYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaW5jbHVkZXMoIigiKT9jOmMuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQudHJpbSgpfSl9KTt2YXIgcz1JM2UoYSksbjt0cnl7Zm9yKHMucygpOyEobj1zLm4oKSkuZG9uZTspe3ZhciBvPW4udmFsdWU7aWYodUVhKG8pKXt2YXIgbD1rY3IucmVkdWNlKGZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMucmVwbGFjZShkLCIiKX0sbyk7bCE9PSIiJiZsIT09IioiJiZyLmFkZChsKX19fWNhdGNoKGMpe3MuZShjKX1maW5hbGx5e3MuZigpfXJldHVybiByfSwicGFyc2VDU1NSdWxlRm9yUHNldWRvcyIpO2koZjByLCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO2ZFYT17aG9va3M6aShmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmkoZnVuY3Rpb24ocil7cmV0dXJuIHIucHNldWRvRWxlbWVudHNDYWxsYmFjaz1mMHIscn0sIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiKX19LCJob29rcyIpLHByb3ZpZGVzOmkoZnVuY3Rpb24oZSl7ZS5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24ocil7dmFyIGE9ci5ub2RlLHM9YT09PXZvaWQgMD9kaTphO3F0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZmMHIocyl9fSwicHJvdmlkZXMiKX0saDByPSExLGhFYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57ZG9tOnt1bndhdGNoOmkoZnVuY3Rpb24oKXtpMHIoKSxoMHI9ITB9LCJ1bndhdGNoIil9fX0sIm1peG91dCIpLGhvb2tzOmkoZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmkoZnVuY3Rpb24oKXtzMHIoYkVlKCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzIix7fSkpfSwiYm9vdHN0cmFwIiksbm9BdXRvOmkoZnVuY3Rpb24oKXtVQWEoKX0sIm5vQXV0byIpLHdhdGNoOmkoZnVuY3Rpb24ocil7dmFyIGE9ci5vYnNlcnZlTXV0YXRpb25zUm9vdDtoMHI/ekVlKCk6czByKGJFZSgibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIse29ic2VydmVNdXRhdGlvbnNSb290OmF9KSl9LCJ3YXRjaCIpfX0sImhvb2tzIil9LG0wcj1pKGZ1bmN0aW9uKGUpe3ZhciByPXtzaXplOjE2LHg6MCx5OjAsZmxpcFg6ITEsZmxpcFk6ITEscm90YXRlOjB9O3JldHVybiBlLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiAiKS5yZWR1Y2UoZnVuY3Rpb24oYSxzKXt2YXIgbj1zLnRvTG93ZXJDYXNlKCkuc3BsaXQoIi0iKSxvPW5bMF0sbD1uLnNsaWNlKDEpLmpvaW4oIi0iKTtpZihvJiZsPT09ImgiKXJldHVybiBhLmZsaXBYPSEwLGE7aWYobyYmbD09PSJ2IilyZXR1cm4gYS5mbGlwWT0hMCxhO2lmKGw9cGFyc2VGbG9hdChsKSxpc05hTihsKSlyZXR1cm4gYTtzd2l0Y2gobyl7Y2FzZSJncm93IjphLnNpemU9YS5zaXplK2w7YnJlYWs7Y2FzZSJzaHJpbmsiOmEuc2l6ZT1hLnNpemUtbDticmVhaztjYXNlImxlZnQiOmEueD1hLngtbDticmVhaztjYXNlInJpZ2h0IjphLng9YS54K2w7YnJlYWs7Y2FzZSJ1cCI6YS55PWEueS1sO2JyZWFrO2Nhc2UiZG93biI6YS55PWEueStsO2JyZWFrO2Nhc2Uicm90YXRlIjphLnJvdGF0ZT1hLnJvdGF0ZStsO2JyZWFrfXJldHVybiBhfSxyKX0sInBhcnNlVHJhbnNmb3JtU3RyaW5nIiksbUVhPXttaXhvdXQ6aShmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmkoZnVuY3Rpb24ocil7cmV0dXJuIG0wcihyKX0sInRyYW5zZm9ybSIpfX19LCJtaXhvdXQiKSxob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6aShmdW5jdGlvbihyLGEpe3ZhciBzPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLXRyYW5zZm9ybSIpO3JldHVybiBzJiYoci50cmFuc2Zvcm09bTByKHMpKSxyfSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbihyKXt2YXIgYT1yLm1haW4scz1yLnRyYW5zZm9ybSxuPXIuY29udGFpbmVyV2lkdGgsbz1yLmljb25XaWR0aCxsPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChuLzIsIiAyNTYpIil9LGM9InRyYW5zbGF0ZSgiLmNvbmNhdChzLngqMzIsIiwgIikuY29uY2F0KHMueSozMiwiKSAiKSxkPSJzY2FsZSgiLmNvbmNhdChzLnNpemUvMTYqKHMuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KHMuc2l6ZS8xNioocy5mbGlwWT8tMToxKSwiKSAiKSxmPSJyb3RhdGUoIi5jb25jYXQocy5yb3RhdGUsIiAwIDApIikscD17dHJhbnNmb3JtOiIiLmNvbmNhdChjLCIgIikuY29uY2F0KGQsIiAiKS5jb25jYXQoZil9LGg9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG8vMiotMSwiIC0yNTYpIil9LG09e291dGVyOmwsaW5uZXI6cCxwYXRoOmh9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6c3Qoe30sbS5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6c3Qoe30sbS5pbm5lciksY2hpbGRyZW46W3t0YWc6YS5pY29uLnRhZyxjaGlsZHJlbjphLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpzdChzdCh7fSxhLmljb24uYXR0cmlidXRlcyksbS5wYXRoKX1dfV19fX0sInByb3ZpZGVzIil9LFRFZT17eDowLHk6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn07aShnMHIsImZpbGxCbGFjayIpO2koZ0VhLCJkZUdyb3VwIik7YkVhPXtob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6aShmdW5jdGlvbihyLGEpe3ZhciBzPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2siKSxuPXM/VjNlKHMuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG8udHJpbSgpfSkpOldjcigpO3JldHVybiBuLnByZWZpeHx8KG4ucHJlZml4PSRwKCkpLHIubWFzaz1uLHIubWFza0lkPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2staWQiKSxyfSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RNYXNrPWZ1bmN0aW9uKHIpe3ZhciBhPXIuY2hpbGRyZW4scz1yLmF0dHJpYnV0ZXMsbj1yLm1haW4sbz1yLm1hc2ssbD1yLm1hc2tJZCxjPXIudHJhbnNmb3JtLGQ9bi53aWR0aCxmPW4uaWNvbixwPW8ud2lkdGgsaD1vLmljb24sbT1vQWEoe3RyYW5zZm9ybTpjLGNvbnRhaW5lcldpZHRoOnAsaWNvbldpZHRoOmR9KSx2PXt0YWc6InJlY3QiLGF0dHJpYnV0ZXM6c3Qoc3Qoe30sVEVlKSx7fSx7ZmlsbDoid2hpdGUifSl9LGI9Zi5jaGlsZHJlbj97Y2hpbGRyZW46Zi5jaGlsZHJlbi5tYXAoZzByKX06e30sZz17dGFnOiJnIixhdHRyaWJ1dGVzOnN0KHt9LG0uaW5uZXIpLGNoaWxkcmVuOltnMHIoc3Qoe3RhZzpmLnRhZyxhdHRyaWJ1dGVzOnN0KHN0KHt9LGYuYXR0cmlidXRlcyksbS5wYXRoKX0sYikpXX0seT17dGFnOiJnIixhdHRyaWJ1dGVzOnN0KHt9LG0ub3V0ZXIpLGNoaWxkcmVuOltnXX0saz0ibWFzay0iLmNvbmNhdChsfHxMY3IoKSksTT0iY2xpcC0iLmNvbmNhdChsfHxMY3IoKSksTj17dGFnOiJtYXNrIixhdHRyaWJ1dGVzOnN0KHN0KHt9LFRFZSkse30se2lkOmssbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W3YseV19LF89e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDpNfSxjaGlsZHJlbjpnRWEoaCl9LE5dfTtyZXR1cm4gYS5wdXNoKF8se3RhZzoicmVjdCIsYXR0cmlidXRlczpzdCh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdChNLCIpIiksbWFzazoidXJsKCMiLmNvbmNhdChrLCIpIil9LFRFZSl9KSx7Y2hpbGRyZW46YSxhdHRyaWJ1dGVzOnN9fX0sInByb3ZpZGVzIil9LHhFYT17cHJvdmlkZXM6aShmdW5jdGlvbihlKXt2YXIgcj0hMTtMcC5tYXRjaE1lZGlhJiYocj1McC5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXMpLGUubWlzc2luZ0ljb25BYnN0cmFjdD1mdW5jdGlvbigpe3ZhciBhPVtdLHM9e2ZpbGw6ImN1cnJlbnRDb2xvciJ9LG49e2F0dHJpYnV0ZVR5cGU6IlhNTCIscmVwZWF0Q291bnQ6ImluZGVmaW5pdGUiLGR1cjoiMnMifTthLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpzdChzdCh7fSxzKSx7fSx7ZDoiTTE1Ni41LDQ0Ny43bC0xMi42LDI5LjVjLTE4LjctOS41LTM1LjktMjEuMi01MS41LTM0LjlsMjIuNy0yMi43QzEyNy42LDQzMC41LDE0MS41LDQ0MCwxNTYuNSw0NDcuN3ogTTQwLjYsMjcySDguNSBjMS40LDIxLjIsNS40LDQxLjcsMTEuNyw2MS4xTDUwLDMyMS4yQzQ1LjEsMzA1LjUsNDEuOCwyODksNDAuNiwyNzJ6IE00MC42LDI0MGMxLjQtMTguOCw1LjItMzcsMTEuMS01NC4xbC0yOS41LTEyLjYgQzE0LjcsMTk0LjMsMTAsMjE2LjcsOC41LDI0MEg0MC42eiBNNjQuMywxNTYuNWM3LjgtMTQuOSwxNy4yLTI4LjgsMjguMS00MS41TDY5LjcsOTIuM2MtMTMuNywxNS42LTI1LjUsMzIuOC0zNC45LDUxLjUgTDY0LjMsMTU2LjV6IE0zOTcsNDE5LjZjLTEzLjksMTItMjkuNCwyMi4zLTQ2LjEsMzAuNGwxMS45LDI5LjhjMjAuNy05LjksMzkuOC0yMi42LDU2LjktMzcuNkwzOTcsNDE5LjZ6IE0xMTUsOTIuNCBjMTMuOS0xMiwyOS40LTIyLjMsNDYuMS0zMC40bC0xMS45LTI5LjhjLTIwLjcsOS45LTM5LjgsMjIuNi01Ni44LDM3LjZMMTE1LDkyLjR6IE00NDcuNywzNTUuNWMtNy44LDE0LjktMTcuMiwyOC44LTI4LjEsNDEuNSBsMjIuNywyMi43YzEzLjctMTUuNiwyNS41LTMyLjksMzQuOS01MS41TDQ0Ny43LDM1NS41eiBNNDcxLjQsMjcyYy0xLjQsMTguOC01LjIsMzctMTEuMSw1NC4xbDI5LjUsMTIuNiBjNy41LTIxLjEsMTIuMi00My41LDEzLjYtNjYuOEg0NzEuNHogTTMyMS4yLDQ2MmMtMTUuNyw1LTMyLjIsOC4yLTQ5LjIsOS40djMyLjFjMjEuMi0xLjQsNDEuNy01LjQsNjEuMS0xMS43TDMyMS4yLDQ2MnogTTI0MCw0NzEuNGMtMTguOC0xLjQtMzctNS4yLTU0LjEtMTEuMWwtMTIuNiwyOS41YzIxLjEsNy41LDQzLjUsMTIuMiw2Ni44LDEzLjZWNDcxLjR6IE00NjIsMTkwLjhjNSwxNS43LDguMiwzMi4yLDkuNCw0OS4yaDMyLjEgYy0xLjQtMjEuMi01LjQtNDEuNy0xMS43LTYxLjFMNDYyLDE5MC44eiBNOTIuNCwzOTdjLTEyLTEzLjktMjIuMy0yOS40LTMwLjQtNDYuMWwtMjkuOCwxMS45YzkuOSwyMC43LDIyLjYsMzkuOCwzNy42LDU2LjkgTDkyLjQsMzk3eiBNMjcyLDQwLjZjMTguOCwxLjQsMzYuOSw1LjIsNTQuMSwxMS4xbDEyLjYtMjkuNUMzMTcuNywxNC43LDI5NS4zLDEwLDI3Miw4LjVWNDAuNnogTTE5MC44LDUwIGMxNS43LTUsMzIuMi04LjIsNDkuMi05LjRWOC41Yy0yMS4yLDEuNC00MS43LDUuNC02MS4xLDExLjdMMTkwLjgsNTB6IE00NDIuMyw5Mi4zTDQxOS42LDExNWMxMiwxMy45LDIyLjMsMjkuNCwzMC41LDQ2LjEgbDI5LjgtMTEuOUM0NzAsMTI4LjUsNDU3LjMsMTA5LjQsNDQyLjMsOTIuM3ogTTM5Nyw5Mi40bDIyLjctMjIuN2MtMTUuNi0xMy43LTMyLjgtMjUuNS01MS41LTM0LjlsLTEyLjYsMjkuNSBDMzcwLjQsNzIuMSwzODQuNCw4MS41LDM5Nyw5Mi40eiJ9KX0pO3ZhciBvPXN0KHN0KHt9LG4pLHt9LHthdHRyaWJ1dGVOYW1lOiJvcGFjaXR5In0pLGw9e3RhZzoiY2lyY2xlIixhdHRyaWJ1dGVzOnN0KHN0KHt9LHMpLHt9LHtjeDoiMjU2IixjeToiMzY0IixyOiIyOCJ9KSxjaGlsZHJlbjpbXX07cmV0dXJuIHJ8fGwuY2hpbGRyZW4ucHVzaCh7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOnN0KHN0KHt9LG4pLHt9LHthdHRyaWJ1dGVOYW1lOiJyIix2YWx1ZXM6IjI4OzE0OzI4OzI4OzE0OzI4OyJ9KX0se3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpzdChzdCh7fSxvKSx7fSx7dmFsdWVzOiIxOzA7MTsxOzA7MTsifSl9KSxhLnB1c2gobCksYS5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6c3Qoc3Qoe30scykse30se29wYWNpdHk6IjEiLGQ6Ik0yNjMuNywzMTJoLTE2Yy02LjYsMC0xMi01LjQtMTItMTJjMC03MSw3Ny40LTYzLjksNzcuNC0xMDcuOGMwLTIwLTE3LjgtNDAuMi01Ny40LTQwLjJjLTI5LjEsMC00NC4zLDkuNi01OS4yLDI4LjcgYy0zLjksNS0xMS4xLDYtMTYuMiwyLjRsLTEzLjEtOS4yYy01LjYtMy45LTYuOS0xMS44LTIuNi0xNy4yYzIxLjItMjcuMiw0Ni40LTQ0LjcsOTEuMi00NC43YzUyLjMsMCw5Ny40LDI5LjgsOTcuNCw4MC4yIGMwLDY3LjYtNzcuNCw2My41LTc3LjQsMTA3LjhDMjc1LjcsMzA2LjYsMjcwLjMsMzEyLDI2My43LDMxMnoifSksY2hpbGRyZW46cj9bXTpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpzdChzdCh7fSxvKSx7fSx7dmFsdWVzOiIxOzA7MDswOzA7MTsifSl9XX0pLHJ8fGEucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOnN0KHN0KHt9LHMpLHt9LHtvcGFjaXR5OiIwIixkOiJNMjMyLjUsMTM0LjVsNywxNjhjMC4zLDYuNCw1LjYsMTEuNSwxMiwxMS41aDljNi40LDAsMTEuNy01LjEsMTItMTEuNWw3LTE2OGMwLjMtNi44LTUuMi0xMi41LTEyLTEyLjVoLTIzIEMyMzcuNywxMjIsMjMyLjIsMTI3LjcsMjMyLjUsMTM0LjV6In0pLGNoaWxkcmVuOlt7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOnN0KHN0KHt9LG8pLHt9LHt2YWx1ZXM6IjA7MDsxOzE7MDswOyJ9KX1dfSkse3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6Im1pc3NpbmcifSxjaGlsZHJlbjphfX19LCJwcm92aWRlcyIpfSx2RWE9e2hvb2tzOmkoZnVuY3Rpb24oKXtyZXR1cm57cGFyc2VOb2RlQXR0cmlidXRlczppKGZ1bmN0aW9uKHIsYSl7dmFyIHM9YS5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtc3ltYm9sIiksbj1zPT09bnVsbD8hMTpzPT09IiI/ITA6cztyZXR1cm4gci5zeW1ib2w9bixyfSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIil9LHlFYT1bZEFhLHRFYSxyRWEsYUVhLGlFYSxmRWEsaEVhLG1FYSxiRWEseEVhLHZFYV07X0FhKHlFYSx7bWl4b3V0c1RvOkQxfSk7d0VhPUQxLm5vQXV0byxrRWE9RDEuY29uZmlnLFNFYT1EMS5saWJyYXJ5LE1FYT1EMS5kb20sQ0VhPUQxLnBhcnNlLHpFYT1EMS5maW5kSWNvbkRlZmluaXRpb24sX0VhPUQxLnRvSHRtbCxMRWU9RDEuaWNvbixURWE9RDEubGF5ZXIsTEVhPUQxLnRleHQsREVhPUQxLmNvdW50ZXJ9KTt2YXIgJEVhLERFZSx4MHIsdjByLHkwcix3MHIsJEVlLGswcixTMHIsTTByLEMwcix6MHIsXzByLFQwcixMMHIsRDByLCQwcixBMHIsRTByLEkwcixQMHIsTjByLE8wcixSMHIsRjByLEIwcixIMHIscTByLFYwcixBRWUsajByLFUwcixXMHIsRzByLFkwcixLMHIsWjByLFEwcixYMHIsSjByLGVkcix0ZHIscmRyLGFkcixpZHIsc2RyLG5kcixvZHIsbGRyLEVFZSxjZHIsZGRyLHVkcixwZHIsZmRyLGhkcixtZHIsZ2RyLGJkcix4ZHIsdmRyLHlkcix3ZHIsa2RyLFNkcixNZHIsQ2RyLHpkcixfZHIsVGRyLExkcixJRWUsRGRyLCRkcixBZHIsRWRyLElkcixQZHIsTmRyLE9kcixSZHIsRmRyLEJkcixIZHIscWRyLFZkcixqZHIsVWRyLFdkcixHZHIsWWRyLEtkcixaZHIsUWRyLFhkcixKZHIsZTRyLHQ0cixyNHIsYTRyLGk0cixzNHIsbjRyLG80cixsNHIsYzRyLGQ0cix1NHIscDRyLGY0cixoNHIsbTRyLGc0cixLM2UsYjRyLHg0cixQRWUsdjRyLHk0cix3NHIsTkVlLGs0cixTNHIsWTNlLE00cixDNHIsT0VlLHo0cixfNHIsVDRyLEw0cixENHIsUkVlLCQ0cixBNHIsRTRyLEk0cixQNHIsTjRyLE80cixSNHIsRjRyLEI0cixGRWUsSDRyLHE0cixWNHIsajRyLFU0cixXNHIsRzRyLFk0cixLNHIsQkVlLFo0cixRNHIsWDRyLEo0cixlM3IsdDNyLHIzcixhM3IsSEVlLGkzcixzM3IsbjNyLHFFZSxvM3IsbDNyLGMzcixkM3IsdTNyLHAzcixmM3IsaDNyLG0zcixnM3IsYjNyLHgzcix2M3IseTNyLHczcixrM3IsUzNyLE0zcixDM3IsejNyLF8zcixUM3IsTDNyLEQzciwkM3IsQTNyLEUzcixWRWUsSTNyLFAzcixOM3IsTzNyLFIzcixGM3IsQjNyLGpFZSxIM3IscTNyLFYzcixqM3IsVTNyLFczcixHM3IsWTNyLEszcixaM3IsUTNyLFgzcixKM3IsZXVyLHR1cixydXIsYXVyLGl1cixzdXIsbnVyLG91cixsdXIsY3VyLGR1cix1dXIscHVyLGZ1cixodXIsbXVyLGd1cixidXIseHVyLHZ1cix5dXIsd3VyLGt1cixTdXIsTXVyLEN1cix6dXIsX3VyLFR1cixaM2UsTHVyLER1ciwkdXIsQXVyLEV1cixVRWUsSXVyLFB1cixOdXIsUTNlLE91cixSdXIsRnVyLEJ1cixIdXIscXVyLFdFZSxWdXIsanVyLFV1cixXdXIsR3VyLFl1cixLdXIsWnVyLFF1cixYdXIsSnVyLGVwcix0cHIscnByLGFwcixpcHIsd18sc3ByLG5wcixvcHIsbHByLGNwcixkcHIsdXByLHBwcixmcHIsaHByLG1wcixncHIsYnByLHhwcix2cHIseXByLHdwcixrcHIsU3ByLE1wcixDcHIsenByLF9wcixUcHIsTHByLERwciwkcHIsQXByLEVwcixJcHIsUHByLE5wcixPcHIsUnByLEZwcixCcHIsSHByLHFwcixWcHIsR0VlLGpwcixVcHIsV3ByLEdwcixZcHIsS3ByLFpwcixRcHIsWHByLEpwcixlZnIsdGZyLHJmcixhZnIsaWZyLFlFZSxzZnIsbmZyLG9mcixsZnIsY2ZyLGRmcixLRWUsdWZyLHBmcixmZnIsaGZyLG1mcixnZnIsYmZyLHhmcix2ZnIseWZyLHdmcixrZnIsU2ZyLE1mcixDZnIsemZyLF9mcixUZnIsTGZyLERmciwkZnIsQWZyLEVmcixJZnIsUGZyLE5mcixPZnIsUmZyLFpFZSxYM2UsRmZyLEJmcixIZnIscWZyLFZmcixqZnIsVWZyLFdmcixHZnIsWWZyLEtmcixaZnIsUUVlLFFmcixYZnIsSmZyLGVocix0aHIscmhyLGFocixpaHIsSjNlLHNocixuaHIsb2hyLGxocixjaHIsZGhyLHVocixwaHIsZmhyLGhocixtaHIsZ2hyLGJocixYRWUseGhyLHZocix5aHIsd2hyLGtocixTaHIsTWhyLENocix6aHIsX2hyLFRocixMaHIsRGhyLCRocixBaHIsRWhyLElocixKRWUsUGhyLE5ocixPaHIsZUllLFJocixGaHIsQmhyLEhocixldWUscWhyLHRJZSxWaHIsamhyLFVocixXaHIsR2hyLFlocixySWUsS2hyLFpocixRaHIsWGhyLEpocixlNnIsdDZyLHI2cixhNnIsaTZyLHM2cixuNnIsbzZyLGw2cixjNnIsZDZyLHU2cixwNnIsZjZyLGg2cixtNnIsZzZyLGI2cix4NnIsdjZyLGFJZSx5NnIsdzZyLGs2cixTNnIsTTZyLEM2cix6NnIsXzZyLGlJZSxUNnIsTDZyLEQ2ciwkNnIsQTZyLEU2cixJNnIsUDZyLE42cixPNnIsUjZyLEY2cixCNnIsSDZyLHNJZSxxNnIsVjZyLGo2cixVNnIsVzZyLEc2cixZNnIsSzZyLFo2cixRNnIsWDZyLEo2cixlbXIsdG1yLHJtcixuSWUsYW1yLGltcixzbXIsbm1yLG9tcixsbXIsY21yLGRtcix1bXIscG1yLGZtcixobXIsbW1yLGdtcix0dWUsYm1yLHhtcix2bXIseW1yLHdtcixrbXIsU21yLE1tcixDbXIsem1yLG9JZSxfbXIsVG1yLExtcixEbXIsJG1yLEFtcixFbXIsSW1yLFBtcixObXIsT21yLFJtcixGbXIsQm1yLEhtcixxbXIsVm1yLGptcixVbXIsV21yLEdtcixZbXIsS21yLFptcixRbXIsWG1yLEptcixlNXIsdDVyLHI1cixhNXIsaTVyLHM1cixuNXIsbzVyLGw1cixjNXIsZDVyLGxJZSx1NXIscDVyLGY1cixoNXIsbTVyLGNJZSxnNXIsYjVyLHg1cix2NXIseTVyLHc1cixBRWEsazVyPXUoKCk9PnskRWE9ImZhYiIsREVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1naXRodWIiLGljb246WzQ0OCw1MTIsWyJnaXRodWItc3F1YXJlIl0sImYwOTIiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI2NS44IDQwNy43YzAtMS44IDAtNiAuMS0xMS42IC4xLTExLjQgLjEtMjguOCAuMS00My43IDAtMTUuNi01LjItMjUuNS0xMS4zLTMwLjcgMzctNC4xIDc2LTkuMiA3Ni03My4xIDAtMTguMi02LjUtMjcuMy0xNy4xLTM5IDEuNy00LjMgNy40LTIyLTEuNy00NS0xMy45LTQuMy00NS43IDE3LjktNDUuNyAxNy45LTI2LjYtNy41LTU2LjYtNy41LTgzLjIgMCAwIDAtMzEuOC0yMi4yLTQ1LjctMTcuOS05LjEgMjIuOS0zLjUgNDAuNi0xLjcgNDUtMTAuNiAxMS43LTE1LjYgMjAuOC0xNS42IDM5IDAgNjMuNiAzNy4zIDY5IDc0LjMgNzMuMS00LjggNC4zLTkuMSAxMS43LTEwLjYgMjIuMy05LjUgNC4zLTMzLjggMTEuNy00OC4zLTEzLjktOS4xLTE1LjgtMjUuNS0xNy4xLTI1LjUtMTcuMS0xNi4yLS4yLTEuMSAxMC4yLTEuMSAxMC4yIDEwLjggNSAxOC40IDI0LjIgMTguNCAyNC4yIDkuNyAyOS43IDU2LjEgMTkuNyA1Ni4xIDE5LjcgMCA5IC4xIDIxLjcgLjEgMzAuNiAwIDQuOCAuMSA4LjYgLjEgMTAgMCA0LjMtMyA5LjUtMTEuNSA4LTY2LTIyLjEtMTEyLjItODQuOS0xMTIuMi0xNTguMyAwLTkxLjggNzAuMi0xNjEuNSAxNjItMTYxLjVTMzg4IDE2NS42IDM4OCAyNTcuNGMuMSA3My40LTQ0LjcgMTM2LjMtMTEwLjcgMTU4LjMtOC40IDEuNS0xMS41LTMuNy0xMS41LTh6bS05MC41LTU0LjhjLS4yLTEuNSAxLjEtMi44IDMtMy4yIDEuOS0uMiAzLjcgLjYgMy45IDEuOSAuMyAxLjMtMSAyLjYtMyAzLTEuOSAuNC0zLjctLjQtMy45LTEuN3ptLTkuMSAzLjJjLTIuMiAuMi0zLjctLjktMy43LTIuNCAwLTEuMyAxLjUtMi40IDMuNS0yLjQgMS45LS4yIDMuNyAuOSAzLjcgMi40IDAgMS4zLTEuNSAyLjQtMy41IDIuNHptLTE0LjMtMi4yYy0xLjktLjQtMy4yLTEuOS0yLjgtMy4yczIuNC0xLjkgNC4xLTEuNWMyIC42IDMuMyAyLjEgMi44IDMuNC0uNCAxLjMtMi40IDEuOS00LjEgMS4zem0tMTIuNS03LjNjLTEuNS0xLjMtMS45LTMuMi0uOS00LjEgLjktMS4xIDIuOC0uOSA0LjMgLjYgMS4zIDEuMyAxLjggMy4zIC45IDQuMS0uOSAxLjEtMi44IC45LTQuMy0uNnptLTguNS0xMGMtMS4xLTEuNS0xLjEtMy4yIDAtMy45IDEuMS0uOSAyLjgtLjIgMy43IDEuMyAxLjEgMS41IDEuMSAzLjMgMCA0LjEtLjkgLjYtMi42IDAtMy43LTEuNXptLTYuMy04LjhjLTEuMS0xLjMtMS4zLTIuOC0uNC0zLjUgLjktLjkgMi40LS40IDMuNSAuNiAxLjEgMS4zIDEuMyAyLjggLjQgMy41LS45IC45LTIuNCAuNC0zLjUtLjZ6bS02LTYuNGMtMS4zLS42LTEuOS0xLjctMS41LTIuNiAuNC0uNiAxLjUtLjkgMi44LS40IDEuMyAuNyAxLjkgMS44IDEuNSAyLjYtLjQgLjktMS43IDEuMS0yLjggLjR6Il19LHgwcj1ERWUsdjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoaW5rLXBlYWtzIixpY29uOls1NzYsNTEyLFtdLCJmNzMxIiwiTTQ2NS40IDQwOS40bDg3LjEtMTUwLjItMzItLjMtNTUuMSA5NS0yMDYuMi0zNTMuOS0yMzYuMiA0MDcuNCAzMiAuMyAyMDQuMi0zNTIuMSAyMDYuMiAzNTMuOHpNMTEwLjEgMzY1LjNsMzIuMSAwIDExNy40LTIwMi41IDIwMy40IDM0OS4xIDMyLjUgLjEtMjM1LjgtNDA0LjYtMTQ5LjYgMjU3Ljl6Il19LHkwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtZHJpdmUiLGljb246WzUxMiw1MTIsW10sImYzYWEiLCJNMzM5IDMxNC45TDE3NS40IDMyIDMzNi42IDMyIDUwMC4yIDMxNC45IDMzOSAzMTQuOXpNMjAxLjUgMzM4LjVsLTgwLjYgMTQxLjUgMzEwLjUgMCA4MC42LTE0MS41LTMxMC41IDB6TTE1NC4xIDY3LjRMMCAzMzguNSA4MC42IDQ4MCAyMzcgMjA4LjggMTU0LjEgNjcuNHoiXX0sdzByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF1dG9wcmVmaXhlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQxYyIsIk0zMTguNCAxNmwtMTYxIDQ4MCA3Ny41IDAgMjUuNC04MS40IDExOS41IDAgMjUuMiA4MS40IDc3LjUgMC0xNjQuMS00ODB6TTI3OC4xIDM1Ny45bDQxLjItMTMwLjQgMS41IDAgNDAuOSAxMzAuNC04My42IDB6TTY0MCA0MDVMNjMwIDM3My42IDQ2Mi4xIDM1OCA0ODEuNSA0MTQuNSA2NDAgNDA1ek0xNzcuOSAzNThMMTAgMzczLjcgMCA0MDUgMTU4LjUgNDE0LjQgMTc3LjkgMzU4eiJdfSwkRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpYWRlbyIsaWNvbjpbNDQ4LDUxMixbInZpYWRlby1zcXVhcmUiXSwiZjJhYSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTE4LjMgMzgxLjJjLTY4LTczLjYtMTkuOC0xOTYuMSA4MS4yLTE5Ni4xIDEzLjMgMCAyNi42IDIuMSAzOS4xIDYuNy00LjMgOC40LTcuMyAxNy42LTguNCAyNy4xLTkuNy00LjEtMjAuMi02LTMwLjctNi00OC44IDAtODQuNiA0MS43LTg0LjYgODguOSAwIDQzIDI4LjUgNzguNyA2OS41IDg1LjkgNjEuNS0yNCA3Mi45LTExNy42IDcyLjktMTc1IDAtNy4zIDAtMTQuOC0uNi0yMi4xLTExLjItMzIuOS0yNi42LTY0LjYtNDQuMi05NC41IDI3LjEgMTguMyA0MS45IDYyLjUgNDQuMiA5NC4xbDAgLjRjNy43IDIyLjUgMTEuOCA0Ni4yIDExLjggNzAgMCA1NC4xLTIxLjkgOTktNjguMyAxMjguMmwtMi40IC4yYzUwIDEgODYuMi0zOC42IDg2LjItODcuMiAwLTEyLjItMi4xLTI0LjMtNi45LTM1LjcgOS41LTEuOSAxOC41LTUuNiAyNi40LTEwLjUgMTUuMyAzNi42IDEyLjYgODcuMy0yMi44IDEyNS42LTQyLjQgNDYuMi0xMjAgNDYuNi0xNjIuNCAwek0yNzQuNiAyMTcuNmMyMS45LTEyIDQ5LjYtMzAuNyA2Mi4zLTUzIDEuNS0zIDQuMS04LjYgNC41LTEyLTEyLjUgMjcuOS00NC4yIDQ5LjgtNzMuOSA1Ni43LTQuNy03LjMtNy41LTE1LjUtNy41LTI0LjMgMC0xMC4zIDUuMi0yNC4xIDEyLjktMzEuNiA4LjMtNy45IDE4LTEwLjkgMjcuOS0xNC4xIDE2LTUuMSAzMi41LTEwLjMgNDQuNS0zNS45IDMyLjUgNDYuMiAxMy4xIDEzMC4zLTM2LjMgMTMwLjMtMTMuMyAwLTI1LjEtNy4xLTM0LjQtMTYuMXoiXX0sazByPSRFZSxTMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3BhbmVsIixpY29uOls2NDAsNTEyLFtdLCJmMzg4IiwiTTIxMC4zIDIyMC4yYy01LjYtMjQuOC0yNi45LTQxLjItNTEtNDEuMmwtMzcgMGMtNy4xIDAtMTIuNSA0LjUtMTQuMyAxMC45TDczLjEgMzIwIDk3LjggMzE5LjljNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDI1LjgtOTUuNyAxOS44IDBjOC40IDAgMTYuMiA1LjYgMTguMyAxNC44IDIuNSAxMC45LTUuOSAyMi42LTE4LjMgMjIuNmwtMTAuMyAwYy03IDAtMTIuNSA0LjYtMTQuMyAxMC44bC02LjQgMjMuOCAzMiAwYzM3LjIgMCA1OC4zLTM2LjIgNTEuNy02NS4zem0tMTU2LjUgMjhsMTguNiAwYzYuOSAwIDEyLjQtNC40IDE0LjMtMTAuOWw2LjItMjMuNi00MCAwQzMwIDIxMy43IDkgMjI3LjggMS43IDI1NC44LTcgMjg4LjYgMTguNSAzMjAgNTIgMzIwbDEyLjQgMCA3LjEtMjYuMWMxLjItNC40LTIuMi04LjMtNi40LTguM2wtMTEuMyAwYy0yNC43IDAtMjQuOS0zNy40IDAtMzcuNHptMjQ3LjUtMzQuOGwtNzcuOSAwLTMuNSAxMy40Yy0yLjQgOS42IDQuNSAxOC41IDE0LjIgMTguNWw1Ny41IDBjNCAwIDIuNCA0LjMgMi4xIDUuM2wtOC42IDMxLjhjLS40IDEuNC0uOSA1LjMtNS41IDUuM2wtMzQuOSAwYy01LjMgMC01LjMtNy45IDAtNy45bDIxLjYgMGM2LjggMCAxMi4zLTQuNiAxNC4yLTEwLjhsMy41LTEzLjItNDguNCAwYy0zOS4yIDAtNDMuNiA2My44LS43IDYzLjhsNTcuNSAuMmMxMS4yIDAgMjAuNi03LjIgMjMuNC0xNy44bDE0LTUxLjhjNC44LTE5LjItOS43LTM2LjgtMjguNS0zNi44ek02MzMuMSAxNzlsLTE4LjkgMGMtNC45IDAtOS4yIDMuMi0xMC40IDcuOUw1NjguMiAzMjBjMjAuNyAwIDM5LjgtMTMuOCA0NC45LTM0LjVsMjYuNS05OC4yYzEuMi00LjMtMi04LjMtNi41LTguM3pNMzk2LjggMjEzLjdsMCAuMS00OC4zIDAtMjYuMiA5OGMtMS4yIDQuNCAyLjIgOC4zIDYuNCA4LjNsMTguOSAwYzQuOCAwIDkuMi0zIDEwLjQtNy44bDE3LjItNjQgMTkuOCAwYzEyLjUgMCAyMS40IDExLjggMTguMSAyMy40bC0xMC42IDQwYy0xLjIgNC4zIDEuOSA4LjMgNi40IDguM2wxOS4xIDBjNC42IDAgOS4xLTIuOSAxMC4zLTcuOGw4LjgtMzMuMWM5LTMzLjEtMTUuOS02NS40LTUwLjMtNjUuNHptOTguMyA3NC42Yy0zLjYgMC02LTMuNC01LjEtNi43bDgtMzBjLjktMy45IDMuNy02IDcuOC02bDMyLjkgMGMyLjYgMCA0LjYgMi40IDMuOSA1LjFsLS43IDIuNmMtLjYgMi0xLjkgMy0zLjkgM2wtMjEuNiAwYy03IDAtMTIuNiA0LjYtMTQuMiAxMC44bC0zLjUgMTMgNTMuNCAwYzEwLjUgMCAyMC4zLTYuNiAyMy4yLTE3LjZsMy4yLTEyYzQuOS0xOS4xLTkuMy0zNi44LTI4LjMtMzYuOGwtNDcuMyAwYy0xNy45IDAtMzMuOCAxMi0zOC42IDI5LjZsLTEwLjggNDBjLTUgMTcuNyA4LjMgMzYuNyAyOC4zIDM2LjdsNjYuNyAwYzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2w1LjctMjEtNzMuMyAweiJdfSxNMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVuZGVsZXkiLGljb246WzY0MCw1MTIsW10sImY3YjMiLCJNNjI0LjYgMzI1LjJjLTEyLjMtMTIuNC0yOS43LTE5LjItNDguNC0xNy4yLTQzLjMtMS00OS43LTM0LjktMzcuNS05OC44IDIyLjgtNTcuNS0xNC45LTEzMS41LTg3LjQtMTMwLjgtNzcuNCAuNy04MS43IDgyLTEzMC45IDgyLTQ4LjEgMC01NC04MS4zLTEzMC45LTgyLTcyLjktLjgtMTEwLjEgNzMuMy04Ny40IDEzMC44IDEyLjIgNjMuOSA1LjggOTcuOC0zNy41IDk4LjgtMjEuMi0yLjMtMzcgNi41LTUzIDIyLjUtMTkuOSAxOS43LTE5LjMgOTQuOCA0Mi42IDEwMi42IDQ3LjEgNS45IDgxLjYtNDIuOSA2MS4yLTg3LjgtNDcuMy0xMDMuNyAxODUuOS0xMDYuMSAxNDYuNS04LjItLjEgLjEtLjIgLjItLjMgLjQtMjYuOCA0Mi44IDYuOCA5Ny40IDU4LjggOTUuMiA1Mi4xIDIuMSA4NS40LTUyLjYgNTguOC05NS4yLS4xLS4yLS4yLS4zLS4zLS40LTM5LjQtOTcuOSAxOTMuOC05NS41IDE0Ni41IDguMi00LjYgMTAtNi43IDIxLjMtNS43IDMzIDQuOSA1My40IDY4LjcgNzQuMSAxMDQuOSAzNS4yIDE3LjgtMTQuOCAyMy4xLTY1LjYgMC04OC4zek0zMjAuNyAzMDYuMWwtLjYgMGMtNDMuNCAwLTYyLjgtMzcuNS02Mi44LTYyLjggMC0zNC43IDI4LjItNjIuOCA2Mi44LTYyLjhsLjYgMGMzNC43IDAgNjIuOCAyOC4xIDYyLjggNjIuOCAwIDI1LTE5LjIgNjIuOC02Mi44IDYyLjh6Il19LEMwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcmFmdDJkaWdpdGFsIixpY29uOls1MTIsNTEyLFtdLCJmMzk2IiwiTTQ5NiAzOTguMWwtMTQ0LTgyLjIgMCA2NC43LTkxLjMgMGMzMC44LTM1IDgxLjgtOTUuOSAxMTEuOC0xNDkuMyAzNS4yLTYyLjYgMTYuMS0xMjMuNC0xMi44LTE1My4zLTQuNC00LjYtNjIuMi02Mi45LTE2Ni00MS4yLTU5LjEgMTIuNC04OS40IDQzLjQtMTA0LjMgNjcuMy0xMy4xIDIwLjktMTcgMzkuOC0xOC4yIDQ3LjctNS41IDMzIDE5LjQgNjcuMSA1Ni43IDY3LjEgMzEuNyAwIDU3LjMtMjUuNyA1Ny4zLTU3LjQgMC0yNy4xLTE5LjctNTIuMS00OC01Ni44IDEuOC03LjMgMTcuNy0yMS4xIDI2LjMtMjQuNyA0MS4xLTE3LjMgNzggNS4yIDgzLjMgMzMuNSA4LjMgNDQuMy0zNy4xIDkwLjQtNjkuNyAxMjcuNi03Ni42IDg3LTE0Mi44IDE1NS43LTE2MS4xIDE3NC44bDMzNi0uMSAwIDY0LjIgMTQ0LTgxLjl6TTM4NS45IDM3MWw0Ny4xIDI3LjItNDcuMSAyNy4yIDAtNTQuNHpNMTA1LjQgMTYxLjRhMjIuNCAyMi40IDAgMSAxIDQ0LjggMCAyMi40IDIyLjQgMCAxIDEgLTQ0LjggMHpNOTguNSAzODAuNWMyNS42LTI3LjQgOTcuNy0xMDQuNyAxNTAuOC0xNjkuOSAzNS4xLTQzLjEgNDAuMy04Mi40IDI4LjQtMTEyLjctNy40LTE4LjgtMTcuNS0zMC4yLTI0LjMtMzUuNyA0NS4zIDIuMSA2OCAyMy40IDgyLjIgMzguMyAwIDAgNDIuNCA0OC4yIDUuOCAxMTMuMy0zNyA2NS45LTExMC45IDE0Ny41LTEyOC41IDE2Ni43bC0xMTQuNCAweiJdfSx6MHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVwbHlkIixpY29uOls0NDgsNTEyLFtdLCJmM2U2IiwiTTMyMCA0ODBsLTE5MiAwQzU3LjYgNDgwIDAgNDIyLjQgMCAzNTJMMCAxNjBDMCA4OS42IDU3LjYgMzIgMTI4IDMybDE5MiAwYzcwLjQgMCAxMjggNTcuNiAxMjggMTI4bDAgMTkyYzAgNzAuNC01Ny42IDEyOC0xMjggMTI4ek0xOTMuNCAyNzMuMmMtNi4xLTItMTEuNi0zLjEtMTYuNC0zLjEtNy4yIDAtMTMuNSAxLjktMTguOSA1LjZzLTkuNiA5LTEyLjggMTUuOGwtMS4xIDAtNC4yLTE4LjMtMjggMCAwIDEzOC45IDM2LjEgMCAwLTg5LjdjMS41LTUuNCA0LjQtOS44IDguNy0xMy4yczkuOC01LjEgMTYuMi01LjFjNC42IDAgOS44IDEgMTUuNiAzLjFsNC44LTM0ek0zMDguNiAzNzYuNmMtMy4yIDIuNC03LjcgNC44LTEzLjcgNy4xcy0xMi44IDMuNS0yMC40IDMuNWMtMTIuMiAwLTIxLjEtMy0yNi41LTguOS01LjUtNS45LTguNS0xNC43LTktMjYuNGw4My4zIDBjLjktNC44IDEuNi05LjQgMi4xLTEzLjkgLjUtNC40IC43LTguNiAuNy0xMi41IDAtMTAuNy0xLjYtMTkuNy00LjctMjYuOS0zLjItNy4yLTcuMy0xMy0xMi41LTE3LjItNS4yLTQuMy0xMS4xLTcuMy0xNy44LTkuMi02LjctMS44LTEzLjUtMi44LTIwLjYtMi44LTIxLjEgMC0zNy41IDYuMS00OS4yIDE4LjNzLTE3LjUgMzAuNS0xNy41IDU1YzAgMjIuOCA1LjIgNDAuNyAxNS42IDUzLjcgMTAuNCAxMy4xIDI2LjggMTkuNiA0OS4yIDE5LjYgMTAuNyAwIDIwLjktMS41IDMwLjQtNC42czE3LjEtNi44IDIyLjYtMTEuMmwtMTItMjMuNnptLTIxLjgtNzAuM2MzLjggNS40IDUuMyAxMy4xIDQuNiAyMy4xbC01MS43IDBjLjktOS40IDMuNy0xNyA4LjItMjIuNnMxMS41LTguNSAyMS04LjVjOC4yLS4xIDE0LjEgMi42IDE3LjkgOHptNzkuOSAyLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNC05LjYtNS43LTE2LjctNS43Yy02LjcgMC0xMiAxLjktMTYuMSA1LjdzLTYuMSA4LjktNi4xIDE1LjQgMiAxMS43IDYuMSAxNS42em0wIDEwMC41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjQtOS42LTUuNy0xNi43LTUuN2MtNi43IDAtMTIgMS45LTE2LjEgNS43cy02LjEgOC45LTYuMSAxNS40YzAgNi42IDIgMTEuNyA2LjEgMTUuNnoiXX0sXzByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVtcGlyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMSIsIk0yOTUuNiA1NC4yYy0xMC44LTIuMi0yMi4xLTMuMy0zMy41LTMuNmwwLTE4LjJjNzguMSAyLjIgMTQ2LjEgNDQgMTg0LjYgMTA2LjZsLTE1LjggOS4xYy02LjEtOS43LTEyLjctMTguOC0yMC4yLTI3LjFsLTE4IDE1LjVjLTI2LTI5LjYtNjEuNC01MC43LTEwMS45LTU4LjRsNC44LTIzLjl6TTYxLjQgMzIyLjRsMjMtNy43Yy02LjQtMTguMy0xMC0zOC4yLTEwLTU4LjdzMy4zLTQwLjQgOS43LTU4LjdsLTIyLjctNy43YzMuNi0xMC44IDguMy0yMS4zIDEzLjYtMzFsLTE1LjgtOS4xQzQyIDE4MSAzMi4xIDIxNy41IDMyLjEgMjU2czEwIDc1IDI3LjEgMTA2LjZMNzUgMzUzLjVjLTUuMy0xMC05LjctMjAuMy0xMy42LTMxLjF6TTIyMS4xIDQzNGMtNDAuNC04LTc1LjgtMjkuMS0xMDEuOS01OC43bC0xOCAxNS44Yy03LjUtOC42LTE0LjQtMTcuNy0yMC4yLTI3LjRsLTE2IDkuNGMzOC41IDYyLjMgMTA2LjggMTA0LjMgMTg0LjkgMTA2LjZsMC0xOC4zYy0xMS4zLS4zLTIyLjctMS43LTMzLjUtMy42bDQuNy0yMy44ek0xMDEuMyAxMjAuOWwxOCAxNS41YzI2LTI5LjYgNjEuNC01MC43IDEwMS45LTU4LjRsLTQuNy0yMy44YzEwLjgtMi4yIDIyLjEtMy4zIDMzLjUtMy42bDAtMTguMkMxNzEuOSAzNC42IDEwMy45IDc2LjQgNjUuNCAxMzlsMTUuOCA5LjFjNi05LjcgMTIuNi0xOC45IDIwLjEtMjcuMnpNNDEwLjcgMzkxLjFsLTE4LTE1LjhjLTI2IDI5LjYtNjEuNCA1MC43LTEwMS45IDU4LjdsNC43IDIzLjhjLTEwLjggMS45LTIyLjEgMy4zLTMzLjUgMy42bDAgMTguM2M3OC4xLTIuMiAxNDYuNC00NC4zIDE4NC45LTEwNi42bC0xNi4xLTkuNGMtNS43IDkuNy0xMi42IDE4LjgtMjAuMSAyNy40ek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODMuOCAwYTIzNS44IDIzNS44IDAgMSAwIC00NzEuNiAwIDIzNS44IDIzNS44IDAgMSAwIDQ3MS42IDB6bS0zOS0xMDYuNkw0MzcgMTU4LjVjNS4zIDkuNyAxMCAyMC4yIDEzLjYgMzFsLTIyLjcgNy43YzYuNCAxOC4zIDkuNyAzOC4yIDkuNyA1OC43cy0zLjYgNDAuNC0xMCA1OC43bDIzIDcuN2MtMy45IDEwLjgtOC4zIDIxLTEzLjYgMzFsMTUuOCA5LjFDNDcwIDMzMSA0NzkuOSAyOTQuNSA0NzkuOSAyNTZzLTkuOS03NS0yNy4xLTEwNi42em0tMTgzIDE3Ny43YzE2LjMtMy4zIDMwLjQtMTEuNiA0MC43LTIzLjVsNTEuMiA0NC44YzExLjktMTMuNiAyMS4zLTI5LjMgMjcuMS00Ni44bC02NC4yLTIyLjFjMi41LTcuNSAzLjktMTUuMiAzLjktMjMuNXMtMS40LTE2LjEtMy45LTIzLjVsNjQuNS0yMi4xYy02LjEtMTcuNC0xNS41LTMzLjItMjcuNC00Ni44bC01MS4yIDQ0LjhjLTEwLjItMTEuOS0yNC40LTIwLjUtNDAuNy0yMy44bDEzLjMtNjYuNGMtOC42LTEuOS0xNy43LTIuOC0yNy4xLTIuOHMtMTguNSAuOC0yNy4xIDIuOGwxMy4zIDY2LjRjLTE2LjMgMy4zLTMwLjQgMTEuOS00MC43IDIzLjhsLTUxLjItNDQuOGMtMTEuOSAxMy42LTIxLjMgMjkuMy0yNy40IDQ2LjhsNjQuNSAyMi4xYy0yLjUgNy41LTMuOSAxNS4yLTMuOSAyMy41czEuNCAxNi4xIDMuOSAyMy41bC02NC4yIDIyLjFjNS44IDE3LjQgMTUuMiAzMy4yIDI3LjEgNDYuOGw1MS4yLTQ0LjhjMTAuMiAxMS45IDI0LjQgMjAuMiA0MC43IDIzLjVsLTEzLjMgNjYuN2M4LjYgMS43IDE3LjcgMi44IDI3LjEgMi44czE4LjUtMS4xIDI3LjEtMi44bC0xMy4zLTY2Ljd6Il19LFQwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2Nlc3NpYmxlLWljb24iLGljb246WzQ0OCw1MTIsWzYyMTA3XSwiZjM2OCIsIk00MjMuOSAyNTUuOEw0MTEgNDEzLjFjLTMuMyA0MC43LTYzLjkgMzUuMS02MC42LTQuOWwxMC0xMjIuNS00MS4xIDIuM2MxMC4xIDIwLjcgMTUuOCA0My45IDE1LjggNjguNSAwIDQxLjItMTYuMSA3OC43LTQyLjMgMTA2LjVsLTM5LjMtMzkuM2M1Ny45LTYzLjcgMTMuMS0xNjcuMi03NC0xNjcuMi0yNS45IDAtNDkuNSA5LjktNjcuMiAyNkw3MyAyNDMuMmMyMi0yMC43IDUwLjEtMzUuMSA4MS40LTQwLjJsNzUuMy04NS43LTQyLjYtMjQuOC01MS42IDQ2QzEwNS41IDE2NS4zIDY0LjkgMTIwIDk1IDkzLjFsNjgtNjAuN2M5LjgtOC44IDI0LjEtMTAuMiAzNS41LTMuNiAwIDAgMTM5LjMgODAuOSAxMzkuNSA4MS4xIDE2LjIgMTAuMSAyMC43IDM2IDYuMSA1Mi42bC01OC40IDY2LjUgMTA2LjEtNS45YzE4LjUtMS4xIDMzLjYgMTQuNCAzMi4xIDMyLjd6TTM1OSAxMDEuOEE1MC45IDUwLjkgMCAxIDAgMzU5IDAgNTAuOSA1MC45IDAgMSAwIDM1OSAxMDEuOHpNMTc5LjYgNDU2LjVjLTgwLjYgMC0xMjcuNC05MC42LTgyLjctMTU2LjFMNTcuMiAyNjAuN0MzNi40IDI4NyAyNCAzMjAuMyAyNCAzNTYuNCAyNCA0ODcuMSAxNzQuNyA1NTcuOCAyNzUuNCA0NzguOWwtMzkuNy0zOS43Yy0xNiAxMC45LTM1LjMgMTcuMy01Ni4xIDE3LjN6Il19LEwwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxdW9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjNCIsIk00NDAuNyAzODYuN2wtMjkuMyAwYy0xLjUgMTMuNS0xMC41IDMwLjgtMzMgMzAuOC0yMC41IDAtMzUuMy0xNC4yLTQ5LjUtMzUuOCA0NC4yLTM0LjIgNzQuNy04Ny41IDc0LjctMTUzIC4xLTExNy41LTk2LjYtMTk2LjctMTk4LjQtMTk2LjctOTkuNyAwLTE5Ny43IDc5LjctMTk3LjcgMTk2LjcgMCAxMzQuMSAxMzEuMyAyMjEuNiAyNDkgMTg5IDE5LjcgMzMuNiA0NS43IDYyLjMgOTUuMiA2Mi4zIDgxLjggMCA5MC44LTc1LjMgODktOTMuM3pNMjk3LjIgMzI5LjJjLTE5LjUtMjkuMi00My43LTUyLjItOTEuNS01Mi4yLTMwLjUgMC01NC4zIDEwLTY5IDIyLjhsMTIuMiAyNC4zYzYuMi0zIDEzLTQgMTkuOC00IDM1LjUgMCA1My43IDMwLjggNjkuMiA2MS4zLTEwIDMtMjAuNyA0LjItMzIuNyA0LjItNzUgMC0xMDcuNS01My0xMDcuNS0xNTYuNyAwLTEwNC40IDMyLjUtMTU3LjkgMTA3LjUtMTU3LjkgNzYuMiAwIDEwOC43IDUzLjUgMTA4LjcgMTU3LjcgLjEgNDEuOC01LjQgNzUuNi0xNi43IDEwMC41eiJdfSxEMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtamNiIixpY29uOls1NzYsNTEyLFtdLCJmMjRiIiwiTTQzMS41IDI0NC4zbDAtMzIuM2M0MS4yIDAgMzguNSAuMiAzOC41IC4yIDcuMyAxLjMgMTMuMyA3LjMgMTMuMyAxNiAwIDguOC02IDE0LjUtMTMuMyAxNS44LTEuMiAuNC0zLjMgLjMtMzguNSAuM3ptNDIuOCAyMC4yYy0yLjgtLjctMy4zLS41LTQyLjgtLjVsMCAzNWMzOS42IDAgNDAgLjIgNDIuOC0uNSA3LjUtMS41IDEzLjUtOCAxMy41LTE3IDAtOC43LTYtMTUuNS0xMy41LTE3ek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODIgMTkyLjNsLTU3IDBjMCA2Ny4xIDEwLjcgMTA5LjctMzUuOCAxMDkuNy0xOS41IDAtMzguOC01LjctNTcuMi0xNC44bDAgMjhjMzAgOC4zIDY4IDguMyA2OCA4LjMgOTcuOSAwIDgyLTQ3LjcgODItMTMxLjJ6bTE3OC41IDQuNWMtNjMuNC0xNi0xNjUtMTQuOS0xNjUgNTkuMyAwIDc3LjEgMTA4LjIgNzMuNiAxNjUgNTkuMmwwLTI4LjNDMzEyLjkgMzExLjcgMjUzIDMwOSAyNTMgMjU2czU5LjgtNTUuNiAxMDcuNS0zMS4ybDAtMjh6TTU0NCAyODYuNWMwLTE4LjUtMTYuNS0zMC41LTM4LTMybDAtLjhjMTkuNS0yLjcgMzAuMy0xNS41IDMwLjMtMzAuMiAwLTE5LTE1LjctMzAtMzctMzEgMCAwIDYuMy0uMy0xMjAuMy0uM2wwIDEyNy41IDEyMi43IDBjMjQuMyAuMSA0Mi4zLTEyLjkgNDIuMy0zMy4yeiJdfSwkMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmVkb3JhIixpY29uOls0NDgsNTEyLFtdLCJmNzk4IiwiTTAgMjU1LjhDLjEgMTMyLjIgMTAwLjMgMzIgMjI0IDMyUzQ0OCAxMzIuMyA0NDggMjU2IDM0Ny44IDQ3OS45IDIyNC4xIDQ4MEw1MC45IDQ4MEMyMi44IDQ4MCAuMSA0NTcuMyAwIDQyOS4ybDAgMCAwLTE3My40IDAgMHptMzQyLjYtNjMuMWMwLTM5LjctMzUuNi02OC41LTczLjItNjguNS0zNC45IDAtNjUuOCAyNi4zLTcwLjEgNTkuOS0uMiAzLjgtLjQgNS0uNCA4LjUtLjEgMjEuMSAwIDQyLjgtLjggNjQuNCAuOSAyNi4xIDEgNTIuMSAwIDc2LjYgMCAyNy4xLTE5LjQgNDUuNS00NC43IDQ1LjVzLTQ1LjgtMjAuMi00NS44LTQ1LjVjLjUtMjcuNyAyMi42LTQ1LjMgNDguNS00Ni4xbC4yIDAgMjYuMy0uMiAwLTM3LjMtMjYuMyAuMmMtNDcuMS0uNC04NC42IDM2LjUtODUuOSA4My40IDAgNDUuNiAzNy41IDgyLjkgODMgODIuOSA0MyAwIDc4LjctMzMuNiA4Mi42LTc1LjZsLjItNTMuNSAzMi42LS4zYzI1LjMgLjIgMjUtMzcuOC0uMi0zNy4zbC0zMi40IC4zYzAtNi40IC4xLTEyLjggLjEtMTkuMiAuMS0xMi43IC4xLTI1LjQtLjEtMzguMiAuMS0xNi41IDE1LjgtMzEuMiAzMy4yLTMxLjIgMTcuNSAwIDM1LjkgOC43IDM1LjkgMzEuMiAwIDMuMi0uMSA1LjEtLjMgNi4zLTEuOSAxMC41IDUuMiAyMC40IDE1LjcgMjEuOSAxMC42IDEuNSAyMC4yLTYuMSAyMS4yLTE2LjYgLjYtNC4yIC43LTcuOSAuNy0xMS42eiJdfSxBMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHVvbGluZ28iLGljb246WzU3Niw1MTIsW10sImU4MTIiLCJNNTA0LjMgMjMwLjVjMTAuNCA4OC41LTQzLjQgMTcyLjEtMTI4LjIgMTk5cy0xNzYuNi0xMC4zLTIxOC45LTg4LjdjLTcyIDMtMTM3LjQtMzkuOC0xNjMuMi0xMDUuNS0yLjYtNi42LTEuOS0xNCAxLjktMTkuOXMxMC4yLTkuNyAxNy4yLTEwLjFsOTYuMS02LTIzLjgtNzUuOWMtNi4zLTIwLTIuMi00MS45IDExLTU4LjNzMzMuNy0yNSA1NC41LTIzYzUyLjIgNSA4Ni44IDQuOCAxMDQtLjZTMzAwIDE2LjcgMzM5LTE2LjljMTUuOS0xMy43IDM3LjctMTguNSA1Ny44LTEyLjdzMzYuMSAyMS4zIDQyLjQgNDEuNEw0NjIuOCA4NyA1NDMuNiAzNy4zYzYtMy43IDEzLjQtNC4zIDE5LjktMS42czExLjMgOC4zIDEyLjkgMTUuMmMxNi4yIDY4LjItMTIuNCAxNDAuMy03Mi4xIDE3OS41ek0yNTguNSA0NzUuOWwwIDBjMTUuMSA3LjUgMjEuNSAyNS44IDE0LjIgNDFzLTI1LjQgMjEuOS00MC43IDE0LjlsLTQzLjktMjFjLTE1LjEtNy41LTIxLjUtMjUuOC0xNC4yLTQxczI1LjQtMjEuOSA0MC43LTE0LjlsNDMuOCAyMXpNNTY0LjYgMzQ1LjdjMTQuOCA4LjQgMjAgMjcuMyAxMS42IDQyLjJsLTIzLjkgNDIuNGMtOC43IDE0LjMtMjcuMSAxOS4yLTQxLjYgMTAuOXMtMTkuOS0yNi42LTEyLTQxLjRsMjMuOS00Mi40YzQtNy4xIDEwLjctMTIuNCAxOC42LTE0LjZzMTYuMy0xLjIgMjMuNCAyLjl6Il19LEUwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJzdGRyYWZ0IixpY29uOlszODQsNTEyLFtdLCJmM2ExIiwiTTM4NCAxOTJsLTY0IDAgMCAxMjgtMTI4IDAgMCAxMjgtMTkyIDAgMC0yNS42IDE2Ni40IDAgMC0xMjggMTI4IDAgMC0xMjggODkuNiAwIDAgMjUuNnptLTI1LjYgMzguNGwwIDEyOC0xMjggMCAwIDEyOC0xNjYuNCAwIDAgMjUuNiAxOTIgMCAwLTEyOCAxMjggMCAwLTE1My42LTI1LjYgMHptMjUuNiAxOTJsLTg5LjYgMCAwIDg5LjYgMjUuNiAwIDAtNjQgNjQgMCAwLTI1LjZ6TTAgMGwwIDM4NCAxMjggMCAwLTEyOCAxMjggMCAwLTEyOCAxMjggMCAwLTEyOC0zODQgMHoiXX0sSTByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZyZWVic2QiLGljb246WzQ0OCw1MTIsW10sImYzYTQiLCJNMzAzLjcgOTYuMmMxMS4xLTExLjEgMTE1LjUtNzcgMTM5LjItNTMuMiAyMy43IDIzLjctNDIuMSAxMjguMS01My4yIDEzOS4ycy0zOS40IC45LTYzLjEtMjIuOWMtMjMuOC0yMy43LTM0LjEtNTItMjIuOS02My4xek0xMDkuOSA2OC4xQzczLjYgNDcuNSAyMiAyNC42IDUuNiA0MS4xLTExIDU3LjcgMTIuNyAxMTAuNSAzMy41IDE0Ni44IDUyIDExNC42IDc4LjMgODcuNSAxMDkuOSA2OC4xek00MDYuNyAxNzRjMy4zIDExLjMgMi43IDIwLjctMi43IDI2LjEtMjAuMyAyMC4zLTg3LjUtMjctMTA5LjMtNzAuMS0xOC0zMi4zLTExLjEtNTMuNCAxNC45LTQ4LjcgNS43LTMuNiAxMi4zLTcuNiAxOS42LTExLjYtMjkuOC0xNS41LTYzLjYtMjQuMy05OS41LTI0LjMtMTE5LjEgMC0yMTUuNiA5Ni41LTIxNS42IDIxNS42IDAgMTE5IDk2LjUgMjE1LjYgMjE1LjYgMjE1LjZTNDQ1LjMgMzgwLjEgNDQ1LjMgMjYxYzAtMzguNC0xMC4xLTc0LjUtMjcuNy0xMDUuOC0zLjkgNy03LjYgMTMuMy0xMC45IDE4Ljh6Il19LFAwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvZHlzZWUiLGljb246WzUxMiw1MTIsW10sImU1YzYiLCJNNDA2LjcgNDYzYy00Mi4zIDMwLjgtOTQuNCA0OS0xNTAuNyA0OS0xMTEuMSAwLTIwNS43LTcwLjgtMjQxLjEtMTY5LjggMi40IDEuNyA1LjkgMy42IDcuOSA0LjQgMTYuMyA3LjQgNDAuMS01LjQgNjIuOS0yOC43IDYuOS02LjkgMTQuNC0xMi40IDIyLjgtMTcuMyAxOC4zLTExLjkgMzcuNi0yMC44IDU4LjQtMjcuMiAwIDAgMjIuMyAzNC4yIDQzLjEgNzQuOHMtMjIuMyA1NC0yNy4yIDU0Yy0uMyAwLS44IDAtMS41LS4xLTExLS41LTcwLTMtNTYgNTEuMSAxNC45IDU3LjQgOTcuNSAzNi42IDEzOS42IDguOXMzMS43LTExOC4zIDMxLjctMTE4LjNjNDEuMS02LjQgNTQgMzcuMSA1Ny45IDU5LjQgLjggNC42IDEuMSA5LjkgMS40IDE1LjUgMS4xIDIxLjIgMi4zIDQ1LjYgMzUuMyA0Ni40IDUuMyAwIDEwLjYtLjggMTUuNS0ybDAtLjF6bS05NS4zLTIzLjdjLTItLjUtMy41LTIuNS0zLTUgMS0yLjUgMy0zLjUgNS0zczMuNSAzIDMgNS0yLjUgMy41LTUgM3ptLTIwNy05NS42YzEuNS0uNSAzLjUgMSA0IDMgMCAyLTEgNC0zIDQtMS41IC41LTMuNS0xLTQtMy0uNS0xLjUgMS0zLjUgMy00ek00NTEuOCA0MjFjMzcuNS00NC42IDYwLjItMTAyLjIgNjAuMi0xNjUgMC02Ny41LTI2LjEtMTI4LjktNjguOC0xNzQuNy0uMSAyMy41LTYuMSA0OC4yLTE2LjggNjkuMi0xMS45IDIwLjMtNDkgNTguOS02OS44IDc4LjctLjcgLjMtMS4xIC45LTEuNSAxLjQtLjIgLjItLjMgLjQtLjUgLjYtNSA2LjktNCAxNi44IDMgMjEuOCAyMS4zIDE1LjggNTYuNCA0NS42IDU5LjQgNzIuOCAzLjUgMzQuOSAyNy45IDc1LjYgMzQuMiA4Ni4yIC44IDEuMyAxLjMgMi4xIDEuNCAyLjQgMCAyLjItLjQgNC4zLS44IDYuNWwwIC4xek0zOTAuNyAyNTFjLS41IDMgMSA1LjkgNCA2LjRzNS45LTEgNi40LTQtMS01LjktNC02LjRjLTMtMS01LjkgMS02LjQgNHptNjEuNC02MC45bC0xMS40IDUuNC0zIDEyLjktNS40LTExLjQtMTIuOS0zIDExLjQtNS40IDMtMTIuOSA1LjQgMTEuNCAxMi45IDN6TTM5NS41IDQxLjNjLTE2LjIgOC4yLTIyLjEgMzIuOC0yOSA2MS40LS4zIDEuNC0uNyAyLjgtMSA0LjItOS41IDM4LjUtMzAuNiAzNy42LTQxLjcgMzcuMi0xLjEgMC0yLS4xLTIuOS0uMS01LjEgMC02LTQtOC45LTE3LjEtMi42LTEyLjEtNi45LTMyLTE3LjktNjMuNi0yMi43LTY1LjgtODIuNy00OS40LTEyOC4yLTIyLjItNTUuMyAzMy4xLTM0LjQgMTAxLjktMTkuOCAxNDkuNCAuNyAyLjIgMS40IDQuNCAyIDYuNi00IDQtMTMuOCA3LjUtMjYgMTEuOS0xMi4xIDQuMy0yNi42IDkuNS00MC4zIDE2LjktMzMuOSAxOC03MC4zIDQ5LTc5LjggNjIuNi0xLjMtMTAuNy0yLTIxLjUtMi0zMi41IDAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgNTEuNCAwIDk5LjQgMTUuMiAxMzkuNSA0MS4zek01OC45IDE4OS42Yy0xLjUtMi00LjUtMy02LjQtMS41cy0zIDQuNS0xLjUgNi40IDQuNSAzIDYuNCAxLjVjMi41LTEuNSAzLTQuNSAxLjUtNi40ek0zMjcuMyA2NC45YzItMS41IDUtLjUgNi40IDEuNSAxLjUgMi41IDEgNS40LTEuNSA2LjQtMiAxLjUtNSAuNS02LjQtMS41cy0uNS01IDEuNS02LjR6TTk1LjEgMTA1Yy0uNSAxLjUgLjUgMyAyIDMgMS41IC41IDMtLjUgMy0yIC41LTEuNS0uNS0zLTItM3MtMyAuNS0zIDJ6bTg0LjctLjVjLTMuNS00My4xIDM3LjEtNTQgMzcuMS01NCA0NC4xLTE1LjQgNTYgNS45IDY2LjQgMzcuNnMzIDQyLjYtMzguNiA1OC45LTYxLjktNC41LTY0LjktNDIuNmwwIC4xem04OS42IDE0LjlsMSAwYzIuNSAwIDUtMiA1LTUgMi02LjkgMS0xNC40LTItMjAuOC0xLjUtMi00LTMuNS02LjQtMi41LTMgMS00LjUgNC0zLjUgNi45IDIgNC41IDMgOS45IDEuNSAxNC45LS41IDMgMS41IDUuOSA0LjUgNi40bC0uMSAuMXptLTkuOS00MS42Yy0yIDAtNC0xLTUtM3MtMi0zLjUtMy01Yy0yLTItMi01LjQgMC03LjRzNS40LTIgNy40IDBjMiAyLjUgMy41IDUgNSA3LjRzLjUgNS45LTIuNSA3LjRjLS42IDAtMSAuMi0xLjMgLjMtLjIgLjEtLjQgLjItLjYgLjJsMCAuMXoiXX0sTjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdnLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2MSIsIk0yNTcuNSA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMjA4IDM4Mi44bC0xMjUuNy0xMjUuNyAxMjUuNy0xMjUuNyAzNS4yIDM1LjQtMjQuMiAyNC4yLTExLjEtMTEuMS03Ny4yIDc3LjIgNzcuMiA3Ny4yIDI2LjYtMjYuNi01My4xLTUyLjkgMjQuNC0yNC40IDc3LjIgNzcuMi03NSA3NS4yem05OS0yLjJsLTM1LjItMzUuMiAyNC4xLTI0LjQgMTEuMSAxMS4xIDc3LjItNzcuMi03Ny4yLTc3LjItMjYuNSAyNi41IDUzLjEgNTIuOS0yNC40IDI0LjQtNzcuMi03Ny4yIDc1LTc1IDEyNS43IDEyNS43LTEyNS43IDEyNS42eiJdfSxPMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRmbGFyZSIsaWNvbjpbNjQwLDUxMixbXSwiZTA3ZCIsIk00MDcuOSAzMTkuOUwxNzcuMSAzMTdjLS43IDAtMS40LS4yLTItLjVzLTEuMi0uOC0xLjYtMS40Yy0uNC0uNi0uNy0xLjMtLjctMnMwLTEuNCAuMi0yLjFjLjQtMS4xIDEuMS0yLjEgMi4xLTIuOHMyLjEtMS4yIDMuMy0xLjJsMjMyLjktMi45YzI3LjYtMS4zIDU3LjUtMjMuNiA2OC01MC44bDEzLjMtMzQuNWMuNC0uOSAuNS0xLjkgLjUtMi45IDAtLjUtLjEtMS4xLS4yLTEuNi03LjQtMzIuMi0yNS02MS4xLTUwLjMtODIuM3MtNTYuNy0zMy43LTg5LjctMzUuNS02NS42IDcuMy05MyAyNS43LTQ4IDQ1LjMtNTguOCA3Ni41Yy0xMS4zLTguNS0yNC45LTEzLjMtMzktMTMuN3MtMjggMy41LTM5LjggMTEuNC0yMC44IDE5LjEtMjUuOSAzMi4zLTUuOSAyNy42LTIuNCA0MS4zYy01Mi4zIDEuNS05NC4yIDQ0LjEtOTQuMiA5Ni41IDAgNC43IC4zIDkuMyAxIDE0IC4yIDEuMSAuNyAyLjEgMS41IDIuOHMxLjkgMS4xIDIuOSAxLjFsNDI2LjEgLjFjMCAwIC4xIDAgLjEgMCAxLjIgMCAyLjMtLjQgMy4zLTEuMXMxLjYtMS43IDItMi45bDMuMy0xMS4zYzMuOS0xMy40IDIuNC0yNS44LTQuMS0zNC45LTYtOC40LTE2LjEtMTMuMy0yOC4yLTEzLjl6bTEwNS45LTk4LjhjLTIuMSAwLTQuMyAuMS02LjQgLjItLjggLjEtMS41IC4zLTIuMSAuOHMtMSAxLjEtMS4zIDEuOGwtOS4xIDMxLjJjLTMuOSAxMy40LTIuNCAyNS44IDQuMSAzNC45IDYgOC40IDE2LjEgMTMuMyAyOC4yIDEzLjlsNDkuMiAyLjljLjcgMCAxLjQgLjIgMiAuNXMxLjEgLjggMS41IDEuNGMuNCAuNiAuNyAxLjMgLjggMnMwIDEuNS0uMiAyLjFjLS40IDEuMS0xLjEgMi4xLTIuMSAyLjhzLTIuMSAxLjItMy4zIDEuMmwtNTEuMSAyLjljLTI3LjggMS4zLTU3LjcgMjMuNi02OC4xIDUwLjhsLTMuNyA5LjZjLS4yIC40LS4yIC44LS4yIDEuM3MuMiAuOCAuNCAxLjIgLjYgLjcgLjkgLjkgLjggLjMgMS4yIC4zYzAgMCAuMSAwIC4xIDBsMTc1LjkgMGMxIDAgMi0uMyAyLjgtLjlzMS40LTEuNSAxLjctMi40YzMuMS0xMS4xIDQuNy0yMi41IDQuNy0zNCAwLTY5LjMtNTYuNS0xMjUuNS0xMjYuMS0xMjUuNXoiXX0sUjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlcnJhbmsiLGljb246WzUxMiw1MTIsW10sImY1ZjciLCJNNDc3LjkgMTI4QzQ2My40IDEwMyAyODUuNSAwIDI1Ni41IDBzLTIwNi45IDEwMi44LTIyMS4zIDEyOC0xNC41IDIzMC44IDAgMjU2IDE5Mi40IDEyOCAyMjEuMyAxMjggMjA2LjgtMTAyLjkgMjIxLjMtMTI4IDE0LjUtMjMxIDAtMjU2ek0zMTYuNSA0MTQuMmMtNCAwLTQwLjktMzUuOC0zOC0zOC43IC45LS45IDYuMy0xLjUgMTcuNS0xLjggMC0yNi4yIC42LTY4LjYgLjktODYuMyAwLTItLjQtMy40LS40LTUuOGwtNzkuOSAwYzAgNy4xLS41IDM2LjIgMS40IDcyLjkgLjIgNC41LTEuNiA2LTUuNyA1LjktMTAuMSAwLTIwLjMtLjEtMzAuNC0uMS00LjEgMC01LjktMS41LTUuNy02LjEgLjktMzMuNCAzLTg0LS4yLTIxMi43bDAtMy4yYy05LjctLjQtMTYuNC0xLTE3LjMtMS44LTIuOS0yLjkgMzQuNS0zOC43IDM4LjUtMzguN3M0MS4yIDM1LjggMzguMyAzOC43Yy0uOSAuOS03LjkgMS41LTE2LjggMS44bDAgMy4yYy0yLjQgMjUuOC0yIDc5LjYtMi42IDEwNS40bDgwLjMgMGMwLTQuNiAuNC0zNC43LTEuMi04My42LS4xLTMuNCAxLTUuMiA0LjItNS4yIDExLjEtLjEgMjIuMi0uMSAzMy4yLS4xIDMuNSAwIDQuNiAxLjcgNC41IDUuNC0zLjcgMTkxLjMtLjcgMTc3LjktLjcgMjEwLjMgOC45IC40IDE2LjggMSAxNy43IDEuOCAyLjkgMi45LTMzLjYgMzguNy0zNy42IDM4LjdsMCAweiJdfSxGMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2t5YXRsYXMiLGljb246WzY0MCw1MTIsW10sImYyMTYiLCJNNjQwIDMyOS4zYzAgNjUuOS01Mi41IDExNC40LTExNy41IDExNC40LTE2NS45IDAtMTk2LjYtMjQ5LjctMzU5LjctMjQ5LjctMTQ2LjkgMC0xNDcuMSAyMTIuMiA1LjYgMjEyLjIgNDIuNSAwIDkwLjktMTcuOCAxMjUuMy00Mi41IDUuNi00LjEgMTYuOS0xNi4zIDIyLjgtMTYuM3MxMC45IDUgMTAuOSAxMC45YzAgNy44LTEzLjEgMTkuMS0xOC43IDI0LjEtNDAuOSAzNS42LTEwMC4zIDYxLjItMTU0LjcgNjEuMi04My40IC4xLTE1NC01OS0xNTQtMTQ0LjlTNjcuNSAxNDkuNiAxNTIuOCAxNDkuNmMxODUuMyAwIDIyMi41IDI0NS45IDM2MS45IDI0NS45IDk5LjkgMCA5NC44LTEzOS43IDMuNC0xMzkuNy0xNy41IDAtMzUgMTEuNi00Ni45IDExLjYtOC40IDAtMTUuOS03LjItMTUuOS0xNS42IDAtMTEuNiA1LjMtMjMuNyA1LjMtMzYuMyAwLTY2LjYtNTAuOS0xMTQuNy0xMTYuOS0xMTQuNy01My4xIDAtODAgMzYuOS04OC44IDM2LjktNi4yIDAtMTEuMi01LTExLjItMTEuMiAwLTUuNiA0LjEtMTAuMyA3LjgtMTQuNCAyNS4zLTI4LjggNjQuNy00My43IDEwMi44LTQzLjcgNzkuNCAwIDEzOS4xIDU4LjQgMTM5LjEgMTM3LjggMCA2LjktLjMgMTMuNy0xLjIgMjAuNiAxMS45LTMuMSAyNC4xLTQuNyAzNS45LTQuNyA2MC43IDAgMTExLjkgNDUuMyAxMTEuOSAxMDcuMnoiXX0sQjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlc2twcm8iLGljb246WzQ0OCw1MTIsW10sImYzOGYiLCJNMTIyIDQwNi4ybDg0IDBjMjMuMSAwIDQzLjktMy41IDYyLjYtMTAuNyAxOC43LTcuMSAzNC43LTE3LjEgNDgtMzAuMSAxMy4zLTEzLjQgMjMuNi0yOS4yIDMwLjctNDcuNSAzLjktOS42IDYuOC0xOS44IDguNi0zMC42bDczLjcgMGMtMi41IDIxLjMtNy43IDQxLjMtMTUuNSA2MC0xMS4xIDI3LjItMjYuOSA1MC44LTQ3LjMgNzAuOS0yMCAxOS42LTQ0LjIgMzQuOC03Mi42IDQ1LjRzLTYwIDE2LTk0LjcgMTZsLTE0OS44IC4yIDAtMTkyLjQgNzIuMy0uMiAwIDExOC44ek0xOTkuNCAzMmMzNC43IDAgNjYuMiA1LjQgOTQuNyAxNiAyOC41IDEwLjcgNTIuOSAyNi4xIDczLjMgNDYuMiAyMC40IDE5LjYgMzYuMiA0My4yIDQ3LjMgNzAuOSA3LjUgMTguMyAxMi40IDM4LjEgMTQuOSA1OS4zbC03My43LS4xYy0xLjktMTAuNS00LjctMjAuNS04LjYtMjkuOS03LjEtMTguNy0xNy4zLTM0LjUtMzAuNy00Ny41LTEzLjMtMTMuNC0yOS4zLTIzLjYtNDgtMzAuOC0xOC42LTcuMS0zOS41LTEwLjctNjIuNy0xMC43bC04NCAwIDAgMTE4LjgtNzIuMiAuMiAwLTE5Mi4zIDE0OS43LS4xeiJdfSxIMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVzb2x2aW5nIixpY29uOls1MTIsNTEyLFtdLCJmM2U3IiwiTTI4OS4yIDI3OC4yYzQ2LTEzLjMgNDkuNi0yMy41IDQ0LTQzLjRMMzIyIDE5NS41Yy02LjEtMjAuOS0xOC40LTI4LjEtNzEuMS0xMi44bC0xODguMiA1NC4xIDI4LjYgOTguNiAxOTcuOS01Ny4yek0yNTYuNSA4QzEzOS40IDggNDEuMiA4OC43IDE1LjIgMTk3LjVsMjIxLjktNjMuOWMzNC44LTEwLjIgNTQuMi0xMS43IDc5LjMtOC4yIDM2LjMgNi4xIDUyLjcgMjUgNjEuNCA1NS4ybDEwLjcgMzcuOGM4LjIgMjguMSAxIDUwLjYtMjMuNSA3My42LTE5LjQgMTcuNC0zMS4yIDI0LjUtNjEuNCAzMy4ybC05Mi42IDI2LjYgMjIwLjQgMjcuMSA5LjcgMzQuMi00OC4xIDEzLjMtMjg2LjgtMzcuMyAyMyA4MC4yQzE2NiA0OTEuMyAyMDkuNSA1MDQgMjU1LjUgNTA0IDM5Mi41IDUwNCA1MDQgMzkyLjYgNTA0IDI1NS43IDUwNSAxMTkuNCAzOTMuNSA4IDI1Ni41IDh6TTQ2LjMgMzg4LjZMOCAyNTYuOGMwIDQ4LjUgMTQuMyA5My40IDM4LjMgMTMxLjh6Il19LHEwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibGFja2JlcnJ5IixpY29uOls1MTIsNTEyLFtdLCJmMzdiIiwiTTE2NiAxMTYuOWMwIDIzLjQtMTYuNCA0OS4xLTcyLjUgNDkuMWwtNzAuMSAwIDIxLTg4LjggNjcuOCAwYzQyLjEgMCA1My44IDIzLjMgNTMuOCAzOS43ek0yOTIuMiA3Ny4ybC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yNS43IDcwLjEtNDkuMSAuMS0xNi40LTExLjYtMzkuNy01My43LTM5Ljd6TTg4LjggMjA4LjFsLTY3LjggMC0yMSA4OC44IDcwLjEgMGM1Ni4xIDAgNzIuNS0yMy40IDcyLjUtNDkuMSAwLTE2LjMtMTEuNy0zOS43LTUzLjgtMzkuN3ptMTgwLjEgMGwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My43LTM5Ljd6bTE4OS4zLTUzLjhsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIC4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3ptLTI4IDEzNy45bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1Ni4xIDAgNzAuMS0yMy40IDcwLjEtNDkuMSAwLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3pNMjQwLjggMzQ2bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1Ni4xIDAgNzAuMS0yNS43IDcwLjEtNDkuMSAuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6Il19LFYwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHJpcGUtcyIsaWNvbjpbMzg0LDUxMixbXSwiZjQyYSIsIk0xNTUuNiAxNTQuNmMwLTIyLjMgMTguNi0zMC45IDQ4LjQtMzAuOSA0My40IDAgOTguNSAxMy4zIDE0MS45IDM2LjdsMC0xMzQuM2MtNDcuMy0xOC45LTk0LjUtMjYuMS0xNDEuOC0yNi4xLTExNS43IDAtMTkyLjggNjAuNC0xOTIuOCAxNjEuNCAwIDE1Ny45IDIxNi44IDEzMi4zIDIxNi44IDIwMC40IDAgMjYuNC0yMi45IDM0LjktNTQuNyAzNC45LTQ3LjIgMC0xMDguMi0xOS41LTE1Ni4xLTQ1LjVsMCAxMjguNWM0OS4zIDIxLjMgMTAyLjMgMzIuMyAxNTYgMzIuNCAxMTguNiAwIDIwMC4zLTUxIDIwMC4zLTE1My42IDAtMTcwLjItMjE4LTEzOS43LTIxOC0yMDMuOXoiXX0sQUVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1iZWhhbmNlIixpY29uOls0NDgsNTEyLFsiYmVoYW5jZS1zcXVhcmUiXSwiZjFiNSIsIk0xNTUuMyAzMTguNGMxNy4yIDAgMzEuMi02LjEgMzEuMi0yNS40IDAtMTkuNy0xMS43LTI3LjQtMzAuMy0yNy41bC00NiAwIDAgNTIuOSA0NS4xIDB6bS01LjQtMTI5LjZsLTM5LjYgMCAwIDQ0LjggNDIuNyAwYzE1LjEgMCAyNS44LTYuNiAyNS44LTIyLjkgMC0xNy43LTEzLjctMjEuOS0yOC45LTIxLjl6bTEyOS41IDc0LjhsNjIuMiAwYy0xLjctMTguNS0xMS4zLTI5LjctMzAuNS0yOS43LTE4LjMgMC0zMC41IDExLjQtMzEuNyAyOS43ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMzQ5LjUgMTg1bC03Ny44IDAgMC0xOC45IDc3LjggMCAwIDE4Ljl6TTE5My43IDI0My43YzIzLjYgNi43IDM1IDI3LjUgMzUgNTEuNiAwIDM5LTMyLjcgNTUuNy02Ny42IDU1LjlsLTkzLjEgMCAwLTE5MiA5MC41IDBjMzIuOSAwIDYxLjQgOS4zIDYxLjQgNDcuNSAwIDE5LjMtOSAyOC44LTI2LjIgMzd6bTExOC43LTM4LjZjNDMuNSAwIDY3LjYgMzQuMyA2Ny42IDc1LjQgMCAxLjYtLjEgMy4zLS4yIDUgMCAuOC0uMSAxLjUtLjEgMi4ybC0xMDAuMiAwYzAgMjIuMiAxMS43IDM1LjMgMzQuMSAzNS4zIDExLjYgMCAyNi41LTYuMiAzMC4yLTE4LjFsMzMuNyAwYy0xMC40IDMxLjktMzEuOSA0Ni44LTY1LjEgNDYuOC00My44IDAtNzEuMS0yOS43LTcxLjEtNzMgMC00MS44IDI4LjctNzMuNiA3MS4xLTczLjZ6Il19LGowcj1BRWUsVTByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlcnZpY2VzdGFjayIsaWNvbjpbNTEyLDUxMixbXSwiZjNlYyIsIk05NiAyMTZjODEuNyAxMC4yIDI3My43IDEwMi4zIDMwNCAyMzJMOCA0NDhjOTkuNS04LjEgMTg0LjUtMTM3IDg4LTIzMnpNMTI4IDY0YzMyLjMgMzUuNiA0Ny43IDgzLjkgNDYuNCAxMzMuNiA4Mi45IDMzLjcgMjA3LjMgMTIzLjcgMjMzLjYgMjUwLjRsOTYgMEM0NjMuMyAyMzEuOSAyMzAuOCA3OS41IDEyOCA2NHoiXX0sVzByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJvY2tldGNoYXQiLGljb246WzU3Niw1MTIsW10sImYzZTgiLCJNMjg0LjUgMjI0LjhjLTYuNyAwLTEzLjMgMi4xLTE4LjkgNS44cy05LjkgOS4xLTEyLjUgMTUuNC0zLjIgMTMuMS0xLjkgMTkuNyA0LjYgMTIuNyA5LjQgMTcuNCAxMC45IDggMTcuNSA5LjMgMTMuNSAuNiAxOS43LTIgMTEuNS03IDE1LjMtMTIuNiA1LjctMTIuMiA1LjctMTguOWMwLTkuMS0zLjctMTcuOC0xMC4xLTI0LjJzLTE1LjEtMTAtMjQuMi05Ljl6bS0xMTAuNCAwYy02LjcgMC0xMy4zIDIuMS0xOC45IDUuOHMtOS45IDkuMS0xMi41IDE1LjQtMy4yIDEzLjEtMS45IDE5LjcgNC42IDEyLjcgOS40IDE3LjQgMTAuOSA4IDE3LjUgOS4zIDEzLjUgLjYgMTkuNy0yIDExLjUtNyAxNS4zLTEyLjYgNS43LTEyLjIgNS43LTE4LjljMC05LjEtMy43LTE3LjgtMTAuMS0yNC4ycy0xNS4xLTEwLTI0LjItMTBsMCAwem0yMjAuOSAwYTM0LjEgMzQuMSAwIDEgMCAuNCA2OC4yIDM0LjEgMzQuMSAwIDEgMCAtLjQtNjguMnptMTUzLjgtNTUuM2MtMTUuNS0yNC4yLTM3LjMtNDUuNi02NC43LTYzLjYtNTIuOS0zNC44LTEyMi40LTU0LTE5NS43LTU0LTI0LjIgMC00OC4zIDIuMS03MiA2LjQtMTQuOS0xNC4zLTMxLjUtMjYuNi00OS41LTM2LjYtNjYuOC0zMy4zLTEyNS42LTIwLjktMTU1LjMtMTAuMi0yLjMgLjgtNC4zIDIuMS01LjkgMy45cy0yLjcgMy45LTMuMyA2LjItLjUgNC43IC4xIDcuMSAxLjggNC40IDMuNSA2LjFDMjcgNTYuNSA2MS42IDk5LjMgNTMuMSAxMzguMyAyMCAxNzIuMiAyIDIxMyAyIDI1NS42IDIgMjk5IDIwIDMzOS44IDUzLjEgMzczLjcgNjEuNiA0MTIuNyAyNyA0NTUuNiA2IDQ3Ny4yIDQuMyA0NzkgMy4yIDQ4MS4xIDIuNSA0ODMuNHMtLjcgNC43LS4xIDcgMS43IDQuNSAzLjMgNi4yIDMuNiAzLjEgNS45IDMuOWMyOS43IDEwLjcgODguNSAyMy4xIDE1NS4zLTEwLjIgMTgtMTAgMzQuNy0yMi4zIDQ5LjUtMzYuNiAyMy44IDQuMyA0Ny45IDYuNCA3MiA2LjQgNzMuMyAwIDE0Mi44LTE5LjIgMTk1LjctNTQgMjcuNC0xOCA0OS4xLTM5LjQgNjQuNy02My42IDE3LjMtMjYuOSAyNi4xLTU1LjkgMjYuMS04Ni4xIDAtMzEtOC44LTYwLTI2LjEtODYuOWwwIDB6TTI4NS40IDQwOS45Yy0zMC4yIC4xLTYwLjMtMy44LTg5LjQtMTEuNWwtMjAuMSAxOS40Yy0xMS4yIDEwLjctMjMuNiAyMC0zNy4xIDI3LjYtMTYuNCA4LjItMzQuMiAxMy4zLTUyLjUgMTQuOSAxLTEuOCAxLjktMy42IDIuOC01LjQgMjAuMi0zNy4xIDI1LjYtNzAuNSAxNi4zLTEwMC4xLTMzLTI2LTUyLjgtNTkuMi01Mi44LTk1LjQgMC04My4xIDEwNC4zLTE1MC41IDIzMi44LTE1MC41czIzMi45IDY3LjQgMjMyLjkgMTUwLjVjMCA4My4xLTEwNC4zIDE1MC41LTIzMi45IDE1MC41eiJdfSxHMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmViZWwiLGljb246WzUxMiw1MTIsW10sImYxZDAiLCJNMjU2LjkgNTA0Yy0xMzkuMyAwLTI0Ny41LTExNi4yLTI0My4zLTI1NC4xIDIuOC03OS4yIDQzLjItMTUyLjIgMTE2LjUtMjAwLjQgLjMgMCAxLjktLjYgMS4xIC44LTUuOCA1LjUtMTExLjMgMTI5LjgtMTQuMSAyMjYuNCA0OS44IDQ5LjUgOTAgMi41IDkwIDIuNSAzOC41LTUwLjEtLjYtMTI1LjktLjYtMTI1LjktMTAtMjQuOS00NS43LTQwLjEtNDUuNy00MC4xbDI4LjgtMzEuOGMyNC40IDEwLjUgNDMuMiAzOC43IDQzLjIgMzguNyAuOC0yOS42LTIxLjktNjEuNC0yMS45LTYxLjRMMjU1LjUgOCAyOTkuOCA1OC4xYy0yMC41IDI4LjgtMjEuOSA2Mi42LTIxLjkgNjIuNiAxMy44LTIzIDQzLjUtMzkuMyA0My41LTM5LjNsMjguNSAzMS44Yy0yNy40IDguOS00NS40IDM5LjktNDUuNCAzOS45LTE1LjggMjguNS0yNy4xIDg5LjQgLjYgMTI3LjMgMzIuNCA0NC42IDg3LjctMi44IDg3LjctMi44IDEwMi43LTkxLjktMTAuNS0yMjUtMTAuNS0yMjUtNi4xLTUuNSAuOC0yLjggLjgtMi44IDUwLjEgMzYuNSAxMTQuNiA4NC40IDExNi4yIDIwNC44IDIgMTQ1LjYtOTkuOSAyNDkuNC0yNDIuNCAyNDkuNHoiXX0sWTByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13ZWItYXdlc29tZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY4MyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMzUgMTc3LjZsNTMgNDYuNCA1Mi4yLTEwLjRjLTIuNi0zLjktNC4yLTguNS00LjItMTMuNiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMtMTAuMyAyMy42LTIzLjIgMjRMMzA0LjUgMzQ5LjFjLTUuMiAxMS41LTE2LjYgMTguOS0yOS4yIDE4LjlsLTEwMi42IDBjLTEyLjYgMC0yNC03LjQtMjkuMi0xOC45TDg3LjIgMjI0Yy0xMi45LS40LTIzLjItMTEtMjMuMi0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgNS0xLjUgOS43LTQuMiAxMy42TDE2MCAyMjQgMjEzLjEgMTc3LjZjLTguOS00LjEtMTUtMTMuMS0xNS0yMy42IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZjMCAxMC41LTYuMiAxOS41LTE1LjEgMjMuNnoiXX0sSzByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imxpbmt0cmVlIixpY29uOls0NDgsNTEyLFtdLCJlN2Q4IiwiTTE2IDE3My40bDEyNS44IDAtODkuNC04NS40IDQ5LjUtNTEgODUuMiA4Ny44IDAtMTI0LjggNzMuOSAwIDAgMTI0LjggODUuMi04Ny42IDQ5LjQgNTAuOC04OS40IDg1LjIgMTI1LjcgMCAwIDcwLjUtMTI2LjQgMCA5MCA4Ny42LTQ5LjMgNDkuOC0xMjIuMi0xMjMtMTIyLjIgMTIzLTQ5LjUtNDkuNiA5MC04Ny42LTEyNi40IDAgMC03MC41ek0xODYuOSAzNDQuOGw3My45IDAgMCAxNjcuMi03My45IDAgMC0xNjcuMnoiXX0sWjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpbXBseWJ1aWx0IixpY29uOls1MTIsNTEyLFtdLCJmMjE1IiwiTTQ4MS42IDY0bC0xMDYgMEMzNjEuMSA2NCAzNDkgNzUuOCAzNDkgOTAuM2wwIDM5LjYtMTg1LjMgMCAwLTM5LjZjMC0xNC41LTEyLTI2LjMtMjYuNi0yNi4zbC0xMDYgMEMxNi41IDY0IDQuNyA3NS44IDQuNyA5MC4zbDAgMzMxLjRjMCAxNC41IDExLjggMjYuMyAyNi42IDI2LjNsNDUwLjQgMGMxNC44IDAgMjYuNi0xMS44IDI2LjYtMjYuM2wwLTMzMS40Yy0uMi0xNC41LTEyLTI2LjMtMjYuNy0yNi4zek0xNTAuNSAyMjIuN2E2Ni41IDY2LjUgMCAxIDEgLS4zIDEzMy4xIDY2LjUgNjYuNSAwIDEgMSAuMy0xMzMuMXptMjExLjkgLjFhNjYuNSA2Ni41IDAgMSAxIC4zIDEzMi45IDY2LjUgNjYuNSAwIDEgMSAtLjMtMTMyLjl6Il19LFEwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHViYmVyIixpY29uOls0NDgsNTEyLFtdLCJlNWM3IiwiTTEzNi41IDI5NC4ybDU4LjggMjIuOWM5LjEtMzYuOCAyNS40LTYxLjEgNTUtNjEuMSA0OS40IDAgNzEuNCA2My42IDE0Mi40IDYzLjYgMTUuNiAwIDM1LjktMi44IDU1LjMtMTMuM2wwIDYxLjdjMCA2MS44LTUwLjQgMTEyLTExMi4zIDExMkwwIDQ4MCA0MS44IDQyNCAwIDM2OCA0MS43IDMxMiAwIDI1Ni4xIDQxLjggMjAwLjEgMCAxNDQuMSA0MS44IDg4IDAgMzIgMzM1LjcgMzJDMzk3LjYgMzIgNDQ4IDgyLjMgNDQ4IDE0NC4xbDAgNTEuM2MtOS4yIDM2LjMtMjUuOSA2MC42LTU1IDYwLjYtNDkuNiAwLTcxLjYtNjMuNS0xNDIuNC02My41LTM1LjkgMC05NS4yIDE0LjYtMTE0LjEgMTAxLjZsMCAuMXoiXX0sWDByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcGVyIixpY29uOls2NDAsNTEyLFtdLCJmMzcxIiwiTTQyLjEgMjM5LjFjMjIuMiAwIDI5IDIuOCAzMy41IDE0LjZsLjggMCAwLTIyLjljMC0xMS4zLTQuOC0xNS40LTE3LjktMTUuNC0xMS4zIDAtMTQuNCAyLjUtMTUuMSAxMi44bC0zOC42IDBjLjMtMTMuOSAxLjUtMTkuMSA1LjgtMjQuNCA3LjMtOC44IDE4LjktMTEuOCA0Ni4xLTExLjggMzMgMCA0Ny4xIDUgNTMuOSAxOC45IDIgNC4zIDQgMTUuNiA0IDIzLjdsMCA3Ni4zLTM4LjMgMCAxLjMtMTkuMS0xIDBjLTUuMyAxNS42LTEzLjYgMjAuNC0zNS41IDIwLjQtMzAuMyAwLTQxLjEtMTAuMS00MS4xLTM3LjMgMC0yNS4yIDEyLjMtMzUuOCA0Mi4xLTM1Ljh6bTE3LjEgNDguMWMxMy4xIDAgMTYuOS0zIDE2LjktMTMuNCAwLTkuMS00LjMtMTEuNi0xOS42LTExLjYtMTMuMSAwLTE3LjkgMy0xNy45IDEyLjEtLjEgMTAuNCAzLjcgMTIuOSAyMC42IDEyLjl6TTEzNyAxOTIuM2wzOC4zIDAtMS41IDIwLjYgLjggMGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4yIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmwtLjggMCAwIDcwLjMtMzkuNSAwIDAtMTY5ek0yMTcuOSAyNTNjMC0yNy41LTMuMy0zMi41LTIwLjctMzIuNS0xNi45IDAtMjAuNyA1LTIwLjcgMjguNyAwIDI4IDMuNSAzMy41IDIxLjIgMzMuNSAxNi40IDAgMjAuMi01LjYgMjAuMi0yOS43em01Ny45LTYwLjdsMzguMyAwLTEuNSAyMC42IC44IDBjOS4xLTE3LjEgMTUuOS0yMC45IDM3LjUtMjAuOSAxNC40IDAgMjQuNyAzIDMxLjUgOS4xIDkuOCA4LjYgMTIuOCAyMC40IDEyLjggNDguMSAwIDMwLTMgNDMuMS0xMi4xIDUyLjktNi44IDcuMy0xNi40IDEwLjEtMzMuMyAxMC4xLTIwLjQgMC0yOS4yLTUuNS0zMy44LTIxLjJsLS44IDAgMCA3MC4zLTM5LjUgMCAwLTE2OSAuMSAwek0zNTYuNyAyNTNjMC0yNy41LTMuMy0zMi41LTIwLjctMzIuNS0xNi45IDAtMjAuNyA1LTIwLjcgMjguNyAwIDI4IDMuNSAzMy41IDIxLjIgMzMuNSAxNi40IDAgMjAuMi01LjYgMjAuMi0yOS43em01My44LTMuOGMwLTI1LjQgMy4zLTM3LjggMTIuMy00NS44IDguOC04LjEgMjIuMi0xMS4zIDQ1LjEtMTEuMyA0Mi44IDAgNTUuNyAxMi44IDU1LjcgNTUuN2wwIDExLjEtNzUuMyAwYy0uMyAyLS4zIDQtLjMgNC44IDAgMTYuOSA0LjUgMjEuOSAyMC4xIDIxLjkgMTMuOSAwIDE3LjktMyAxNy45LTEzLjlsMzcuNSAwIDAgMi4zYzAgOS44LTIuNSAxOC45LTYuOCAyNC43LTcuMyA5LjgtMTkuNiAxMy42LTQ0LjMgMTMuNi0yNy41IDAtNDEuNi0zLjMtNTAuNi0xMi4zLTguNS04LjUtMTEuMy0yMS4zLTExLjMtNTAuOHptNzYuNC0xMS42Yy0uMy0xLjgtLjMtMy4zLS4zLTMuOCAwLTEyLjMtMy4zLTE0LjYtMTkuNi0xNC42LTE0LjQgMC0xNy4xIDMtMTguMSAxNS4xbC0uMyAzLjMgMzguMyAwem01NS42LTQ1LjNsMzguMyAwLTEuOCAxOS45IC43IDBjNi44LTE0LjkgMTQuNC0yMC4yIDI5LjctMjAuMiAxMC44IDAgMTkuMSAzLjMgMjMuNCA5LjMgNS4zIDcuMyA2LjggMTQuNCA2LjggMzQgMCAxLjUgMCA1IC4yIDkuM2wtMzUgMGMuMy0xLjggLjMtMy4zIC4zLTQgMC0xNS40LTItMTkuNC0xMC4zLTE5LjQtNi4zIDAtMTAuOCAzLjMtMTMuMSA5LjMtMSAzLTEgNC4zLTEgMTIuM2wwIDY4LTM4LjMgMCAwLTExOC41IC4xIDB6Il19LEowcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtc2Nob2xhciIsaWNvbjpbNTEyLDUxMixbXSwiZTYzYiIsIk0zOTAuOSAyOTguNXMwIC4xIC4xIC4xYzkuMiAxOS40IDE0LjQgNDEuMSAxNC40IDY0LS4xIDgyLjUtNjYuOSAxNDkuNC0xNDkuNCAxNDkuNFMxMDYuNyA0NDUuMSAxMDYuNyAzNjIuN2MwLTIyLjkgNS4yLTQ0LjYgMTQuNC02NCAxLjctMy42IDMuNi03LjIgNS42LTEwLjcgNC40LTcuNiA5LjQtMTQuNyAxNS0yMS4zIDI3LjQtMzIuNiA2OC41LTUzLjMgMTE0LjQtNTMuMyAzMy42IDAgNjQuNiAxMS4xIDg5LjYgMjkuOSA5LjEgNi45IDE3LjQgMTQuNyAyNC44IDIzLjUgNS42IDYuNiAxMC42IDEzLjggMTUgMjEuMyAyIDMuNCAzLjggNyA1LjUgMTAuNWwtLjEtLjF6bTI2LjQtMTguOGMtMzAuMS01OC40LTkxLTk4LjQtMTYxLjMtOTguNHMtMTMxLjIgNDAtMTYxLjMgOTguNGwtOTQuNy03NyAyNTYtMjAyLjcgMjU2IDIwMi43LTk0LjcgNzcuMSAwLS4xeiJdfSxlZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFybiIsaWNvbjpbNTEyLDUxMixbXSwiZjdlMyIsIk00MDEuOSAzNDUuMmMtMzkgOS4zLTQ4LjQgMzIuMS0xMDQgNDcuNCAwIDAtMi43IDQtMTAuNCA1LjgtMTMuNCAzLjMtNjMuOSA2LTY4LjUgNi4xLTEyLjQgLjEtMTkuOS0zLjItMjItOC4yLTYuNC0xNS4zIDkuMi0yMiA5LjItMjItOC4xLTUtOS05LjktOS44LTguMS0yLjQgNS44LTMuNiAyMC4xLTEwLjEgMjYuNS04LjggOC45LTI1LjUgNS45LTM1LjMgLjgtMTAuOC01LjcgLjgtMTkuMiAuOC0xOS4ycy01LjggMy40LTEwLjUtMy42Yy02LTkuMy0xNy4xLTM3LjMgMTEuNS02Mi0xLjMtMTAuMS00LjYtNTMuNyA0MC42LTg1LjYgMCAwLTIwLjYtMjIuOC0xMi45LTQzLjMgNS0xMy40IDctMTMuMyA4LjYtMTMuOSA1LjctMi4yIDExLjMtNC42IDE1LjQtOS4xIDIwLjYtMjIuMiA0Ni44LTE4IDQ2LjgtMThzMTIuNC0zNy44IDIzLjktMzAuNGMzLjUgMi4zIDE2LjMgMzAuNiAxNi4zIDMwLjZzMTMuNi03LjkgMTUuMS01YzguMiAxNiA5LjIgNDYuNSA1LjYgNjUuMS02LjEgMzAuNi0yMS40IDQ3LjEtMjcuNiA1Ny41LTEuNCAyLjQgMTYuNSAxMCAyNy44IDQxLjMgMTAuNCAyOC42IDEuMSA1Mi43IDIuOCA1NS4zIC44IDEuNCAxMy43IC44IDM2LjQtMTMuMiAxMi44LTcuOSAyOC4xLTE2LjkgNDUuNC0xNyAxNi43LS41IDE3LjYgMTkuMiA0LjkgMjIuMnpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptNDE2LjcgNzUuMmMtMS43LTEzLjYtMTMuMi0yMy0yOC0yMi44LTIyIC4zLTQwLjUgMTEuNy01Mi44IDE5LjItNC44IDMtOC45IDUuMi0xMi40IDYuOCAzLjEtNDQuNS0yMi41LTczLjEtMjguNy03OS40IDcuOC0xMS4zIDE4LjQtMjcuOCAyMy40LTUzLjIgNC4zLTIxLjcgMy01NS41LTYuOS03NC41LTEuNi0zLjEtNy40LTExLjItMjEtNy40LTkuNy0yMC0xMy0yMi4xLTE1LjYtMjMuOC0xLjEtLjctMjMuNi0xNi40LTQxLjQgMjgtMTIuMiAuOS0zMS4zIDUuMy00Ny41IDIyLjgtMiAyLjItNS45IDMuOC0xMC4xIDUuNGwuMSAwYy04LjQgMy0xMi4zIDkuOS0xNi45IDIyLjMtNi41IDE3LjQgLjIgMzQuNiA2LjggNDUuNy0xNy44IDE1LjktMzcgMzkuOC0zNS43IDgyLjUtMzQgMzYtMTEuOCA3My01LjYgNzkuNi0xLjYgMTEuMSAzLjcgMTkuNCAxMiAyMy44IDEyLjYgNi43IDMwLjMgOS42IDQzLjkgMi44IDQuOSA1LjIgMTMuOCAxMC4xIDMwIDEwLjEgNi44IDAgNTgtMi45IDcyLjYtNi41IDYuOC0xLjYgMTEuNS00LjUgMTQuNi03LjEgOS44LTMuMSAzNi44LTEyLjMgNjIuMi0yOC43IDE4LTExLjcgMjQuMi0xNC4yIDM3LjYtMTcuNCAxMi45LTMuMiAyMS0xNS4xIDE5LjQtMjguMnoiXX0sdGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YWNrLW92ZXJmbG93IixpY29uOlszODQsNTEyLFtdLCJmMTZjIiwiTTI5MSAzMTFsLTE5NS43LTQxLjMtOC4yIDM5LjMgMTk1LjcgNDEgOC4yLTM5em01MS04N0wxODguNSA5NS43IDE2MyAxMjYuNSAzMTYuNSAyNTQuOCAzNDIgMjI0em0tMzEuMiAzOS43TDEyOS41IDE3OSAxMTIuOCAyMTUuNSAyOTQgMzAwIDMxMC44IDI2My43ek0yNjIuMyAzMmwtMzIgMjQgMTE5LjMgMTYwLjMgMzItMjQtMTE5LjMtMTYwLjN6bTIwLjUgMzI4bC0yMDAgMCAwIDM5LjcgMjAwIDAgMC0zOS43em0zOS43IDgwbC0yNzkuNSAwIDAtMTIwLTQwIDAgMCAxNjAgMzU5LjUgMCAwLTE2MC00MCAwIDAgMTIweiJdfSxyZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmx1ZXRvb3RoIixpY29uOlszODQsNTEyLFtdLCJmMjkzIiwiTTI2MC42IDE3MS4xbC00Mi45IDQyLjktLjMtODYgNDMuMiA0My4xek0yMTcuNCAzOTAuOWw0My4xLTQzLjEtNDIuOS00Mi45LS4yIDg2ek0zODQgMjU5LjRDMzg0IDQ2NSAzMTIuMSA1MTIgMTk4LjkgNTEyUzAgNDY1IDAgMjU5LjQgODMuNCAwIDE5Ni42IDAgMzg0IDUzLjkgMzg0IDI1OS40em0tMTU4LjUgMGw3OS40LTg4LjYtMTI1LjEtMTM0LjMgMCAxNzYuOS03My44LTczLjgtMjcgMjYuOSA5Mi43IDkzLTkyLjcgOTMgMjYuOSAyNi45IDczLjgtNzMuOCAyLjMgMTcwIDEyNy40LTEyNy41LTgzLjktODguN3oiXX0sYWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMtanAiLGljb246WzUxMiw1MTIsW10sImY0ZWEiLCJNMjU1LjcgOEMxMTEuNiA4IDggMTI0LjggOCAyNTYgOCAzOTIuNCAxMTkuOCA1MDQgMjU1LjcgNTA0IDM4NS45IDUwNCA1MDQgNDAzLjIgNTA0IDI1NiA1MDQgMTE3LjIgMzk2LjUgOCAyNTUuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIxLjEgMy00MS4yIDktNjAuM2wxMjcgNTYuNS0yNy45IDAgMCAzOC42IDU4LjEgMCA1LjcgMTEuOCAwIDE4LjctNjMuOCAwIDAgMzguNyA2My44IDAgMCA1NiA2MS43IDAgMC01NiA2NC4yIDAgMC0zNS43IDgxIDM2LjFjLTEuNSAyLjItNTcuMSA5OC4zLTE3NS4yIDk4LjN6bTg3LjYtMTM3LjNsLTU3LjYgMCAwLTE4LjcgMi45LTUuNiA1NC43IDI0LjN6bTYuNS01MS40bDAtMTcuOC0zOC42IDAgNjMtMTE2LTY1LjggMC00My40IDk2LTIzLTEwLjItMzkuNi04NS43LTY1LjggMCAyNy4zIDUxLTgxLjktMzYuNWMyNy44LTQ0LjEgODIuNi05OC4xIDE3My43LTk4LjEgMTEyLjggMCAyMDMgOTAgMjAzIDIwMy40IDAgMjEtMi43IDQwLjYtNy45IDU5TDM1MC40IDI3MHoiXX0saWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZGRpdCIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMSIsIk0wIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTYgMzk3LjQgNTEyIDI1NiA1MTJMMzcuMSA1MTJjLTEzLjcgMC0yMC41LTE2LjUtMTAuOS0yNi4yTDc1IDQzN0MyOC43IDM5MC43IDAgMzI2LjcgMCAyNTZ6TTM0OS42IDE1My42YzIzLjYgMCA0Mi43LTE5LjEgNDIuNy00Mi43cy0xOS4xLTQyLjctNDIuNy00Mi43Yy0yMC42IDAtMzcuOCAxNC42LTQxLjggMzQtMzQuNSAzLjctNjEuNCAzMy02MS40IDY4LjRsMCAuMmMtMzcuNSAxLjYtNzEuOCAxMi4zLTk5IDI5LjEtMTAuMS03LjgtMjIuOC0xMi41LTM2LjUtMTIuNS0zMyAwLTU5LjggMjYuOC01OS44IDU5LjggMCAyNCAxNC4xIDQ0LjYgMzQuNCA1NC4xIDIgNjkuNCA3Ny42IDEyNS4yIDE3MC42IDEyNS4yczE2OC43LTU1LjkgMTcwLjYtMTI1LjNjMjAuMi05LjYgMzQuMS0zMC4yIDM0LjEtNTQgMC0zMy0yNi44LTU5LjgtNTkuOC01OS44LTEzLjcgMC0yNi4zIDQuNi0zNi40IDEyLjQtMjcuNC0xNy02Mi4xLTI3LjctMTAwLTI5LjFsMC0uMmMwLTI1LjQgMTguOS00Ni41IDQzLjQtNDkuOSA0LjQgMTguOCAyMS4zIDMyLjggNDEuNSAzMi44bC4xIC4yek0xNzcuMSAyNDYuOWMxNi43IDAgMjkuNSAxNy42IDI4LjUgMzkuM3MtMTMuNSAyOS42LTMwLjMgMjkuNi0zMS40LTguOC0zMC40LTMwLjUgMTUuNC0zOC4zIDMyLjEtMzguM2wuMS0uMXptMTkwLjEgMzguM2MxIDIxLjctMTMuNyAzMC41LTMwLjQgMzAuNXMtMjkuMy03LjktMzAuMy0yOS42IDExLjgtMzkuMyAyOC41LTM5LjMgMzEuMiAxNi42IDMyLjEgMzguM2wuMSAuMXptLTQ4LjEgNTYuN2MtMTAuMyAyNC42LTM0LjYgNDEuOS02MyA0MS45cy01Mi43LTE3LjMtNjMtNDEuOWMtMS4yLTIuOSAuOC02LjIgMy45LTYuNSAxOC40LTEuOSAzOC4zLTIuOSA1OS4xLTIuOXM0MC43IDEgNTkuMSAyLjljMy4xIC4zIDUuMSAzLjYgMy45IDYuNXoiXX0sc2RyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvbm5lY3RkZXZlbG9wIixpY29uOls1NzYsNTEyLFtdLCJmMjBlIiwiTTU1MC44IDI0MWwtNTAuMS04Ni44YzEuMS0yLjEgMS45LTQuNiAxLjktNy4yIDAtOC02LjctMTQuNy0xNC43LTE1TDQzMi40IDM2LjFjLjUtMS42IDEuMS0zLjIgMS4xLTQuOCAwLTguNi03LTE1LjMtMTUuMy0xNS4zLTQuOCAwLTguOCAyLjEtMTEuOCA1LjZsLTEwNi42IDBjLTIuNy0zLjUtNi43LTUuNi0xMS41LTUuNnMtOC44IDIuMS0xMS41IDUuNmwtMTA2LjEgMGMtMi45LTMuNS03LTUuNi0xMS44LTUuNi04LjMgMC0xNS4zIDYuNy0xNS4zIDE1LjMgMCAxLjYgLjUgMy41IDEuMSA0LjhsLTU2IDk3LjJjLTUuNCAyLjQtOS4xIDcuNS05LjEgMTMuNyAwIC41IC4zIDEuMSAuMyAxLjZMMjYuNiAyNDAuN2MtNy4yIDEuMy0xMi42IDcuNS0xMi42IDE1IDAgNy4yIDUuMSAxMy40IDEyLjEgMTVsNTUuMiA5NS40Yy0uNSAxLjYtLjggMi45LS44IDQuOCAwIDcuMiA1LjEgMTMuNCAxMi4xIDE0LjdsNTEuNyA4OS43Yy0uNSAxLjYtMS4xIDMuNS0xLjEgNS40IDAgOC42IDcgMTUuMyAxNS4zIDE1LjMgNC44IDAgOC44LTIuMSAxMS41LTUuNGwxMDYuOSAwYzIuNyAzLjIgNyA1LjQgMTEuNSA1LjRzOC44LTIuMSAxMS41LTUuNGwxMDcuMSAwYzIuNyAyLjkgNi43IDQuOCAxMSA0LjggOC42IDAgMTUuMy03IDE1LjMtMTUuMyAwLTEuNi0uMy0yLjktLjgtNC4zbDUxLjctOTAuM2M3LTEuMyAxMi4xLTcuNSAxMi4xLTE0LjcgMC0xLjYtLjMtMy4yLS44LTQuOGw1NC45LTk1LjRjNy0xLjMgMTIuMy03LjUgMTIuMy0xNSAwLTcuMi01LjEtMTMuNC0xMS44LTE0Ljd6bS0zOTcgMjA5LjdsLTQzLjctNzUuOCA0My43IDAgMCA3NS44em0wLTgzLjhsLTQzLjcgMGMtLjMtMS4xLS44LTIuMS0xLjMtMy4ybDQ1LTQ3LjQgMCA1MC42em0wLTYyLjRsLTUwLjQgNTMuM2MtMS4zLS41LTIuNy0xLjMtNC0xLjZMNDMuNyAyNTkuOGMuNS0xLjMgLjUtMi43IC41LTRzMC0yLjQtLjMtMy41bDUyLTkwYzIuNy0uMyA1LjQtMS4xIDcuOC0yLjdsNTAuMSA1MiAwIDkyLjl6bTAtMTAyLjNMMTA4IDE1NC44YzEuMy0yLjEgMi4xLTQuOCAyLjEtNy44IDAtLjMtLjMtLjgtLjMtMS4xbDQzLjktMTUuOCAwIDcyLjF6bTAtODAuNmwtNDMuNyAxNS44IDQzLjctNzUuNSAwIDU5Ljd6bTMyNi41IDM5LjFsLjggMS4zLTM1LjQgMTY3LjEtNjMuOC02Ny4yIDk4LTEwMS41IC4zIC4zek0yOTIuMSAzNTUuMWwxMS41IDExLjgtMjIuOCAwIDExLjMtMTEuOHptLS4zLTExLjNsLTgzLjMtODUuNCA3OS42LTg0LjQgODMgODcuNi03OS4zIDgyLjJ6bTUuNCA1LjlsNzkuMy04Mi4yIDY3LjUgNzEuMy01LjkgMjguMS0xMjQgMC0xNi45LTE3LjF6TTQxMC43IDQ0LjRjMS4xIC41IDIuMSAxLjEgMy41IDEuM2w1Ny45IDEwMC43IDAgLjVjMCAyLjkgLjggNS42IDIuMSA3LjhsLTk3LjUgMTAxLjItODMtODcuNiAxMTcuMS0xMjR6bS05LjEtMi4xbC0xMTMuNiAxMjAuMy01Ny4xLTYwLjMgMTY2LjMtNjAgNC4zIDB6bS0xMjMuNSAwYzIuNyAyLjcgNi4yIDQuMyAxMC4yIDQuM3M3LjUtMS42IDEwLjItNC4zbDc1IDAtMTQ4LjQgNTMuNi01MC45LTUzLjYgMTAzLjkgMHpNMTYxLjkgNDcuOWwxLjEtMi4xYy45LS4yIDEuOC0uNSAyLjctLjhsNTEuMiA1My44LTU0LjkgMTkuOCAwLTcwLjd6bTAgNzkuM2w2MC44LTIyIDU5LjcgNjMuMi03OS42IDg0LjEtNDEtNDIuMSAwLTgzLjN6bTAgOTIuN2wzNi40IDM3LjgtMzYuNCAzOC4zIDAtNzYuMXptMCA4Ny45bDQyLjEtNDQuNSA4Mi44IDg2LTE3LjEgMTcuNy0xMDcuNyAwIDAtNTkuMnptNyAxNjIuMWMtMS42LTEuNi0zLjUtMi43LTUuOS0zLjVsLTEuMS0xLjYgMC04OS43IDk5LjkgMC05MS42IDk0LjgtMS4zIDB6bTEyOS45IDBjLTIuNy0yLjQtNi40LTQuMy0xMC40LTQuM3MtNy44IDEuOS0xMC40IDQuM2wtOTYuNCAwIDkxLjYtOTQuOCAzOC4zIDAgOTEuNiA5NC44LTEwNC4yIDB6bTEyMC0xMS44bC00LjMgNy41Yy0xLjMgLjMtMi40IC44LTMuNSAxLjNsLTg5LjItOTEuOSAxMTQuNCAwLTE3LjQgODN6bTEyLjktMjIuMmwxMi45LTYwLjggMjIgMC0zNC44IDYwLjh6bTM0LjgtNjguOGwtMjAuNCAwIDQuNi0yMS4yIDE3LjEgMTguMmMtLjUgLjgtMS4xIDEuOS0xLjMgMi45em02Ni4yLTEwNy40bC01NS40IDk2LjdjLTEuMyAuNS0yLjcgMS4xLTQgMS45bC0yMC42LTIyIDM0LjYtMTYzLjkgNDUuOCA3OS4zYy0uMyAxLjMtLjggMi43LS44IDQuMyAwIDEuMyAuMyAyLjQgLjUgMy43eiJdfSxuZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVzZWFyY2hnYXRlIixpY29uOls0NDgsNTEyLFtdLCJmNGY4IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTI2Mi4yIDM2Ni40Yy02LjYgMy0zMy4yIDYtNTAtMTQuMi05LjItMTAuNi0yNS4zLTMzLjMtNDIuMi02My42LTguOSAwLTE0LjcgMC0yMS40LS42bDAgNDYuNGMwIDIzLjUgNiAyMS4yIDI1LjggMjMuOWwwIDguMWMtNi45LS4zLTIzLjEtLjgtMzUuNi0uOC0xMy4xIDAtMjYuMSAuNi0zMy42IC44bDAtOC4xYzE1LjUtMi45IDIyLTEuMyAyMi0yMy45bDAtMTA5LjRjMC0yMi42LTYuNC0yMS0yMi0yMy45bDAtOC4xYzI1LjggMSA1My4xLS42IDcwLjktLjYgMzEuNyAwIDU1LjkgMTQuNCA1NS45IDQ1LjYgMCAyMS4xLTE2LjcgNDIuMi0zOS4yIDQ3LjUgMTMuNiAyNC4yIDMwIDQ1LjYgNDIuMiA1OC45IDcuMiA3LjggMTcuMiAxNC43IDI3LjIgMTQuN2wwIDcuM3ptMjIuOS0xMzVjLTIzLjMgMC0zMi4yLTE1LjctMzIuMi0zMi4ybDAtMzIuMmMwLTEyLjIgOC44LTMwLjQgMzQtMzAuNHMzMC40IDE3LjkgMzAuNCAxNy45bC0xMC43IDcuMnMtNS41LTEyLjUtMTkuNy0xMi41Yy03LjkgMC0xOS43IDcuMy0xOS43IDE5LjdsMCAyNi44YzAgMTMuNCA2LjYgMjMuMyAxNy45IDIzLjMgMTQuMSAwIDIxLjUtMTAuOSAyMS41LTI2LjhsLTE3LjkgMCAwLTEwLjcgMzAuNCAwYzAgMjAuNSA0LjcgNDkuOS0zNCA0OS45ek0xNjguNiAyNzYuMWMtOS40IDAtMTMuNi0uMy0yMC0uOGwwLTY5LjdjNi40LS42IDE1LS42IDIyLjUtLjYgMjMuMyAwIDM3LjIgMTIuMiAzNy4yIDM0LjUgMCAyMS45LTE1IDM2LjYtMzkuNyAzNi42eiJdfSxvZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2lnbmFsLW1lc3NlbmdlciIsaWNvbjpbNTEyLDUxMixbXSwiZTY2MyIsIk0yNTYgMGMtMTMuMyAwLTI2LjMgMS0zOS4xIDNsMy43IDIzLjdDMjMyLjEgMjQuOSAyNDQgMjQgMjU2IDI0czIzLjkgLjkgMzUuNCAyLjdMMjk1LjEgM0MyODIuMyAxIDI2OS4zIDAgMjU2IDB6bTYwLjggNy4zbC01LjcgMjMuM2MyMy40IDUuNyA0NS40IDE0LjkgNjUuNCAyNy4xbDEyLjUtMjAuNWMtMjIuMS0xMy40LTQ2LjQtMjMuNi03Mi4yLTI5Ljl6bTc2LjQgNjEuNmMxOS4xIDE0IDM2IDMwLjkgNTAuMSA1MC4xbDE5LjQtMTQuMkM0NDcgODMuNiA0MjguNCA2NSA0MDcuMyA0OS41TDM5My4xIDY4Ljh6bTgxLjcgNTQuMmwtMjAuNSAxMi41YzEyLjIgMjAgMjEuNCA0MiAyNy4xIDY1LjRsMjMuMy01LjdjLTYuMy0yNS44LTE2LjUtNTAuMS0yOS45LTcyLjJ6bTEwLjUgOTcuNWMxLjggMTEuNSAyLjcgMjMuNCAyLjcgMzUuNHMtLjkgMjMuOS0yLjcgMzUuNGwyMy43IDMuN2MxLjktMTIuNyAzLTI1LjggMy0zOS4xcy0xLTI2LjMtMy0zOS4xbC0yMy43IDMuN3ptLTMxIDE1NS45bDIwLjUgMTIuNWMxMy40LTIyLjEgMjMuNi00Ni40IDI5LjktNzIuMmwtMjMuMy01LjdjLTUuNyAyMy40LTE0LjkgNDUuNC0yNy4xIDY1LjR6bTguMiAzMC44bC0xOS40LTE0LjJjLTE0IDE5LjEtMzAuOSAzNi01MC4xIDUwLjFsMTQuMiAxOS40YzIxLjEtMTUuNSAzOS44LTM0LjEgNTUuMi01NS4yem0tODYuMSA0N2MtMjAgMTIuMi00MiAyMS40LTY1LjQgMjcuMWw1LjcgMjMuM2MyNS44LTYuMyA1MC4xLTE2LjUgNzIuMi0yOS45bC0xMi41LTIwLjV6TTI5NS4xIDUwOWwtMy43LTIzLjdDMjc5LjkgNDg3LjEgMjY4IDQ4OCAyNTYgNDg4cy0yMy45LS45LTM1LjQtMi43TDIxNi45IDUwOWMxMi43IDEuOSAyNS44IDMgMzkuMSAzczI2LjMtMSAzOS4xLTN6bS05NC4xLTI3LjZjLTE3LjYtNC4zLTM0LjQtMTAuNi01MC4xLTE4LjZsLTcuOC00LTMyLjggNy43IDUuNSAyMy40IDI0LjMtNS43YzE3LjQgOC45IDM1LjkgMTUuOCA1NS4zIDIwLjVsNS43LTIzLjN6TTk1LjQgNDk0LjZMOTAgNDcxLjMgNDguMyA0ODFjLTEwLjQgMi40LTE5LjctNi45LTE3LjMtMTcuM2w5LjctNDEuNi0yMy40LTUuNS05LjcgNDEuNkMxLjIgNDg2IDI2IDUxMC44IDUzLjggNTA0LjRsNDEuNi05Ljd6bS01MC05Mi45bDcuNy0zMi44LTQtNy44Yy04LTE1LjctMTQuMy0zMi41LTE4LjYtNTAuMUw3LjMgMzE2LjdDMTIgMzM2LjEgMTguOSAzNTQuNyAyNy43IDM3MmwtNS43IDI0LjMgMjMuNCA1LjV6TTMgMjk1LjFsMjMuNy0zLjdDMjQuOSAyNzkuOSAyNCAyNjggMjQgMjU2cy45LTIzLjkgMi43LTM1LjRMMyAyMTYuOUMxIDIyOS43IDAgMjQyLjcgMCAyNTZzMSAyNi4zIDMgMzkuMXptMjcuNi05NC4xYzUuNy0yMy40IDE0LjktNDUuNCAyNy4xLTY1LjRMMzcuMiAxMjMuMWMtMTMuNCAyMi4xLTIzLjYgNDYuNC0yOS45IDcyLjJsMjMuMyA1Ljd6bTE4LjktOTYuMmwxOS40IDE0LjJjMTQtMTkuMSAzMC45LTM2IDUwLjEtNTAuMUwxMDQuNyA0OS41QzgzLjYgNjUgNjUgODMuNiA0OS41IDEwNC43em04Ni4xLTQ3YzIwLTEyLjIgNDItMjEuNCA2NS40LTI3LjFMMTk1LjIgNy4zYy0yNS44IDYuMy01MC4xIDE2LjUtNzIuMiAyOS45bDEyLjUgMjAuNXpNMjU2IDQ2NGMxMTQuOSAwIDIwOC05My4xIDIwOC0yMDhTMzcwLjkgNDggMjU2IDQ4IDQ4IDE0MS4xIDQ4IDI1NmMwIDM2LjQgOS40IDcwLjcgMjUuOCAxMDAuNSAxLjYgMi45IDIuMSA2LjIgMS40IDkuNGwtMjEuNiA5Mi41IDkyLjUtMjEuNmMzLjItLjcgNi41LS4yIDkuNCAxLjQgMjkuOCAxNi41IDY0IDI1LjggMTAwLjUgMjUuOHoiXX0sbGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InhpbmciLGljb246WzM4NCw1MTIsW10sImYxNjgiLCJNMTYyLjcgMjEwYy0xLjggMy4zLTI1LjIgNDQuNC03MC4xIDEyMy41LTQuOSA4LjMtMTAuOCAxMi41LTE3LjcgMTIuNUw5LjggMzQ2Yy03LjcgMC0xMi4xLTcuNS04LjUtMTQuNGw2OS0xMjEuM2MuMiAwIC4yLS4xIDAtLjNMMjYuNCAxMzQuNGMtNC4zLTcuOCAuMy0xNC4xIDguNS0xNC4xbDY1LjEgMGM3LjMgMCAxMy4zIDQuMSAxOCAxMi4yTDE2Mi43IDIxMHpNMzgyLjYgNDYuMWwtMTQ0IDI1MyAwIC4zIDkxLjYgMTY2LjZjMy45IDcuMSAuMiAxNC4xLTguNSAxNC4xbC02NS4yIDBjLTcuNiAwLTEzLjYtNC0xOC0xMi4yTDE0Ni4xIDI5OS40YzMuMy01LjggNTEuNS05MC44IDE0NC44LTI1NS4yIDQuNi04LjEgMTAuNC0xMi4yIDE3LjUtMTIuMmw2NS43IDBjOCAwIDEyLjMgNi43IDguNSAxNC4xeiJdfSxFRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWpzIixpY29uOls0NDgsNTEyLFsianMtc3F1YXJlIl0sImYzYjkiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTE4MC45IDQ0NC45Yy0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNUwxNTIgMzg1LjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41bDAtMTQzLjEgNDIuMSAwIDAgMTQzLjdjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjV6bTg1LjgtNDNMMzAxIDM4Mi4xYzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42IDE3LjQgMCAyOC42LTguNyAyOC42LTIwLjggMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjUgMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjYgMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOC0xMi4zIDAtMjAuMSA3LjgtMjAuMSAxOCAwIDEyLjYgNy44IDE3LjcgMjUuOSAyNS42bDEwLjUgNC41YzM1LjggMTUuMyA1NS45IDMxIDU1LjkgNjYuMiAwIDM3LjgtMjkuOCA1OC42LTY5LjcgNTguNi0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDN6Il19LGNkcj1FRWUsZGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI4MCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0xODcgMTcyLjljLTE4LjQgMC0xOSA5LjktMTkgMjcuNGwwIDIzLjNjMCAyLjQtMy41IDQuNC0uNiA0LjRsNjcuNCAwLTExLjEgMzcuMy01NS43IDAgMCAxMTIuOWMwIDUuOC0yIDYuNyAzLjIgNy4zbDQzLjUgNC4xIDAgMjUuMS0xMzAuNyAwIDAtMjUuNyAyMS4zLTJjNS4yLS42IDYuNy0yLjMgNi43LTcuOWwwLTExMS40YzAtMi4zLTIuOS0yLjMtNS44LTIuM2wtMjIuMiAwIDAtMzcuNCAyOCAwIDAtMjFjMC00OS42IDI2LjUtNzAgNzcuMy03MCAzNC4xIDAgNjQuNyA4LjIgNjQuNyA1Mi44bC01MC43IDYuMWMuMy0xOC43LTQuNC0yMy0xNi4zLTIzem03NC4zIDI0MS44bDAtMjUuMSAyMC40LTIuNmM1LjItLjYgNy42LTEuNyA3LjYtNy4zbDAtMTA3LjljMC00LjEtMi45LTYuNy02LjctNy45bC0yNC4yLTYuNCA2LjctMjkuNSA4MC4yIDAgMCAxNTEuN2MwIDUuOC0yLjYgNi40IDIuOSA3LjNsMTUuNyAyLjYgMCAyNS4xLTEwMi42IDB6bTgwLjgtMjU1LjVsOSAzMy4yLTcuMyA3LjMtMzEuMi0xNi42LTMxLjIgMTYuNi03LjMtNy4zIDktMzMuMi0yMS44LTI0LjIgMy41LTkuNiAyNy43IDAgMTUuNS0yOCA5LjMgMCAxNS41IDI4IDI3LjcgMCAzLjUgOS42LTIxLjkgMjQuMnoiXX0sdWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVwcyIsaWNvbjpbMzg0LDUxMixbXSwiZjdlMCIsIk0xMDMuMiAzMDNjLTUuMiAzLjYtMzIuNiAxMy4xLTMyLjYtMTlsMC0xMDQtMzIuNyAwIDAgMTAyLjZjMCA3NC45IDgwLjIgNTEuMSA5Ny45IDM5bDAtMTQxLjYtMzIuNiAwIDAgMTIzek00IDc0LjhMNCAyOTUuN2MwIDEwMy43IDc0LjkgMTM1LjIgMTg3LjcgMTg0LjEgMTEyLjQtNDguOSAxODcuNy04MC4yIDE4Ny43LTE4NC4xbDAtMjIwLjlDMjYzLjEgMTMuMiA5Ny42IDI1LjIgNCA3NC44ek0zNjIuMSAyOTUuN2MwIDg2LjYtNTMuMiAxMTMuNi0xNzAuNCAxNjUuMy0xMTcuNS01MS44LTE3MC41LTc4LjctMTcwLjUtMTY1LjNsMC0xMjYuNGMxMDIuMy05My44IDIzMS42LTEwMCAzNDAuOS04OS44bDAgMjE2LjJ6TTE1Mi41IDE4OC4zbDAgMjEyLjggMzIuNyAwIDAtNjguN2MyNC40IDcuMyA3MS43LTIuNiA3MS43LTc4LjUgMC05Ny40LTgwLjctODAuOS0xMDQuNC02NS42em0zMi43IDExNy4zbDAtMTAwLjNjOC40LTQuMiAzOC40LTEyLjcgMzguNCA0OS4zIDAgNjcuOS0zNi40IDUxLjgtMzguNCA1MXptNzkuMS04Ni40Yy4xIDQ3LjMgNTEuNiA0Mi41IDUyLjIgNzAuNCAuNiAyMy41LTMwLjQgMjMtNTAuOCA0LjlsMCAzMC4xYzM2LjIgMjEuNSA4MS45IDguMSA4My4yLTMzLjUgMS43LTUxLjUtNTQuMS00Ni42LTUzLjQtNzMuMiAuNi0yMC4zIDMwLjYtMjAuNSA0OC41LTIuMmwwLTI4LjRjLTI4LjUtMjItNzkuOS05LjItNzkuNyAzMS45eiJdfSxwZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyYyIsIk0xNCAzMjUuM2MyLjMtNC4yIDUuMi00LjkgOS43LTIuNSAxMC40IDUuNiAyMC42IDExLjQgMzEuMiAxNi43IDQwLjYgMjAuMiA4My4zIDM1LjggMTI3LjQgNDYuMyAyMC44IDUgNDEuOSA5IDYzLjIgMTEuOCAzMS41IDQuMiA2My4yIDYgOTUgNS4yIDE3LjQtLjQgMzQuOC0xLjggNTIuMS0zLjggNTYuMi02LjYgMTExLjEtMjEgMTYzLjMtNDIuOCAyLjktMS4yIDUuOS0yIDkuMS0xLjIgNi43IDEuOCA5IDkgNC4xIDEzLjktMyAyLjctNi4yIDUuMi05LjYgNy40LTMwLjcgMjEuMS02NC4yIDM2LjQtOTkuNiA0Ny45LTI0LjUgNy45LTQ5LjYgMTMuOC03NS4xIDE3LjYtMTcuNiAyLjctMzUuNCA0LjMtNTMuMiA0LjgtLjggMC0xLjcgLjItMi41IC4zbC0yMS4xIDBjLS44LS4xLTEuNy0uMi0yLjUtLjMtMy42LS4yLTcuMi0uMy0xMC43LS40LTE2LjktLjgtMzMuNy0yLjUtNTAuNC01LjMtMjcuNC00LjUtNTQuMy0xMS41LTgwLjQtMjAuOS01My43LTE5LjQtMTAzLjEtNDguOS0xNDUuNi04Ny0xLjgtMS42LTMtMy44LTQuNC01LjdsMC0yek0xNzIgNjUuMWwtNC4zIC42Yy0xMy44IDEuNy0yNi44IDYuOS0zOCAxNS4xLTIuNCAxLjctNC42IDMuNS03LjEgNS40LS4yLS40LS4zLS45LS40LTEuNC0uNC0yLjctLjgtNS41LTEuMy04LjItLjctNC42LTMtNi42LTcuNi02LjZsLTExLjUgMGMtNi45IDAtOC4yIDEuMy04LjIgOC4ybDAgMjA5LjNjMCAxIDAgMiAuMSAzIC4yIDMgMiA0LjkgNC45IDUgNyAuMSAxNC4xIC4xIDIxLjEgMCAyLjkgMCA0LjctMiA1LTUgLjEtMSAuMS0yIC4xLTNsMC03Mi40YzEuMSAuOSAxLjcgMS40IDIuMiAxLjkgMTcuOSAxNC45IDM4LjUgMTkuOCA2MSAxNS40IDIwLjQtNCAzNC42LTE2LjUgNDMuOC0zNC45IDctMTMuOSA5LjktMjguNyAxMC4zLTQ0LjEgLjUtMTcuMS0xLjItMzMuOS04LjEtNDkuOC04LjUtMTkuNi0yMi42LTMyLjUtNDMuOS0zNi45LTMuMi0uNy02LjUtMS05LjgtMS41LTIuOC0uMS01LjUtLjEtOC4zLS4xek0xMjQuNiAxMDdjLS4xLS43IC4xLTEuMyAuNC0xLjlzLjgtMS4xIDEuMy0xLjRjMTMuNy05LjUgMjguOC0xNC41IDQ1LjYtMTMuMiAxNC45IDEuMSAyNy4xIDguNCAzMy41IDI1LjkgMy45IDEwLjcgNC45IDIxLjggNC45IDMzIDAgMTAuNC0uOCAyMC42LTQgMzAuNi02LjggMjEuMy0yMi40IDI5LjQtNDIuNiAyOC41LTE0LS42LTI2LjItNi0zNy40LTEzLjktLjYtLjMtMS0uOC0xLjMtMS40cy0uNC0xLjItLjQtMS45Yy4xLTE0LjEgMC0yOC4xIDAtNDIuMnMuMS0yOCAwLTQyLjF6TTMzMC4zIDY1LjFjLTEgLjEtMiAuMy0yLjkgLjQtOS43IC40LTE5LjQgMS44LTI4LjkgNC4xLTYuMSAxLjYtMTIgMy44LTE3LjkgNS44LTMuNiAxLjItNS40IDMuOC01LjMgNy43IC4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNC44IDIuMSA2LjEgNi44IDQuOSA3LjgtMiAxNS42LTQuMiAyMy41LTUuNyAxMi4zLTIuMyAyNC43LTMuMyAzNy4yLTEuNCA2LjUgMSAxMi42IDIuOSAxNi44IDguNCAzLjcgNC44IDUuMSAxMC41IDUuMyAxNi40IC4zIDguMyAuMiAxNi42IC4zIDI0LjkgMCAuNS0uMSAuOS0uMiAxLjQtLjUtLjEtLjkgMC0xLjMtLjEtMTAuNS0yLjYtMjEuMi00LjItMzItNC45LTExLjMtLjYtMjIuNSAuMS0zMy4zIDMuOS0xMi45IDQuNS0yMy4zIDEyLjMtMjkuNCAyNC45LTQuNyA5LjgtNS40IDIwLjItMy45IDMwLjcgMiAxNCA5IDI0LjggMjEuNCAzMS43IDExLjkgNi42IDI0LjggNy40IDM3LjkgNS40IDE1LjEtMi4zIDI4LjUtOC43IDQwLjMtMTguNCAuNS0uNCAxLS44IDEuNi0xLjEgLjYgMy44IDEuMSA3LjQgMS44IDExIC42IDMuMSAyLjUgNS4xIDUuNCA1LjIgNS40IC4xIDEwLjkgLjEgMTYuMyAwIDEuMyAwIDIuNS0uNSAzLjQtMS40czEuNC0yLjEgMS41LTMuM2MuMS0uOSAuMS0xLjkgLjEtMi44bDAtMTA2YzAtNC4zLS4zLTguNi0uOS0xMi45LTEuOS0xMi45LTcuNC0yMy41LTE5LTMwLjQtNi43LTQtMTQuMS02LTIxLjgtNy4xLTMuNi0uNS03LjItLjgtMTAuOC0xLjMtMy45IC4xLTcuOSAuMS0xMS45IC4xem0zNSAxMjcuN2MwIC42LS4xIDEuMi0uMyAxLjdzLS43IDEtMS4yIDEuM2MtMTEuMiA4LjEtMjMuNSAxMy41LTM3LjQgMTQuOS01LjcgLjYtMTEuNCAuNC0xNi44LTEuOC0zLTEuMS01LjYtMi45LTcuOC01LjJzLTMuNy01LjEtNC42LTguMWMtMi02LjMtMi0xMy4xLS4xLTE5LjQgMi41LTguMyA4LjQtMTMgMTYuNC0xNS42IDgtMi40IDE2LjUtMy4yIDI0LjgtMi4yIDguNCAuNyAxNi42IDIuMyAyNSAzLjQgMS42IC4yIDIuMSAxIDIuMSAyLjYtLjEgNC44IDAgOS41IDAgMTQuM3MtLjIgOS40LS4xIDE0LjF6TTYyNS4yIDMyMi4yYy0xLTUtNC44LTYuOS05LjEtOC4zLTYuOC0yLjEtMTMuOS0zLjUtMjEtMy45LTEzLjEtMS4xLTI2LjMtLjUtMzkuMiAxLjktMTQuMyAyLjctMjcuOSA3LjMtNDAgMTUuNi0xLjQgLjktMi43IDIuMS0zLjcgMy41LS40IC42LS42IDEuMy0uNyAxLjlzMCAxLjQgLjIgMi4xYy40IDEuNSAyLjEgMS45IDMuNiAxLjggLjcgMCAxLjUgMCAyLjItLjEgNy44LS44IDE1LjUtMS43IDIzLjMtMi41IDExLjQtMS4xIDIyLjktMS44IDM0LjMtLjkgNC45IC40IDkuNyAxLjMgMTQuNCAyLjcgNS4xIDEuNCA3LjQgNS4yIDcuNiAxMC40IC40IDgtMS40IDE1LjctMy41IDIzLjMtNC4xIDE1LjQtMTAgMzAuMy0xNS44IDQ1LjEtLjQgMS0uOCAyLTEgMy0uNSAyLjkgMS4yIDQuOCA0LjEgNC4xIDEuOC0uNCAzLjQtMS4zIDQuOC0yLjUgNC41LTQuMiA4LjgtOC43IDEyLjctMTMuNCAxMi44LTE2LjQgMjAuMy0zNS4zIDI0LjctNTUuNiAuOC0zLjYgMS40LTcuMyAyLjEtMTAuOWwwLTE3LjN6TTQ5My4xIDE5OWMtMTIuOS0zNS43LTI1LjgtNzEuNC0zOC43LTEwNy4yLTItNS43LTQuMi0xMS4zLTYuMy0xNi45LTEuMS0yLjktMy4yLTQuOC02LjQtNC44LTcuNi0uMS0xNS4yLS4yLTIyLjktLjEtMi41IDAtMy43IDItMy4yIDQuNSAuNSAyLjEgMS4xIDQuMSAxLjkgNi4xIDE5LjYgNDguNSAzOS4zIDk3IDU5LjEgMTQ1LjUgMS43IDQuMSAyLjEgNy42IC4yIDExLjgtMy4zIDcuMy01LjkgMTUtOS4zIDIyLjMtMyA2LjUtOCAxMS40LTE1LjIgMTMuMy01IDEuMy0xMC4yIDEuNy0xNS40IDEuMS0yLjUtLjItNS0uOC03LjUtMS0zLjQtLjItNS4xIDEuMy01LjIgNC44LS4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNS41IDIgOCA3LjQgOC45IDUuNiAxLjEgMTEuMiAxLjggMTYuOSAyIDE3LjEgLjQgMzAuNy02LjUgMzkuNS0yMS40IDMuNS01LjkgNi42LTEyIDkuMi0xOC40IDIzLjctNTkuOCA0Ny4yLTExOS43IDcwLjYtMTc5LjYgLjctMS44IDEuMy0zLjYgMS42LTUuNSAuNC0yLjgtLjktNC40LTMuNy00LjQtNi42LS4xLTEzLjMgMC0xOS45IDAtMS43LS4xLTMuNCAuMy00LjcgMS4zcy0yLjQgMi4zLTMgMy45Yy0uNSAxLjQtMS4xIDIuNy0xLjYgNC4xbC0zNC44IDEwMGMtMi41IDcuMi01LjEgMTQuNS03LjcgMjIuMi0uNC0xLjEtLjYtMS43LS45LTIuNHoiXX0sZmRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhbmRvcmEiLGljb246WzM4NCw1MTIsW10sImU3ZGEiLCJNMjAxLjMgMzJMMCAzMiAwIDQ4MCAxMjAuMiA0ODBjMTEuMiAwIDIwLjMtOS4xIDIwLjMtMjAuM2wwLTg2LjEgMzAuMSAwYzE0Ny4xIDAgMjA3LjMtODIuOSAyMDcuMy0xNzkuOSAwLTExOS43LTkwLjktMTYxLjgtMTc2LjUtMTYxLjh6Il19LGhkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuaWQiLGljb246WzQ0OCw1MTIsW10sImYxOWIiLCJNMjcxLjUgNDMybC02OCAzMkM4OC41IDQ1My43IDAgMzkyLjUgMCAzMTguMiAwIDI0Ni43IDgyLjUgMTg3LjIgMTkxLjcgMTczLjlsMCA0M2MtNzEuNSAxMi41LTEyNCA1My0xMjQgMTAxLjMgMCA1MSA1OC41IDkzLjMgMTM1LjcgMTAzbDAtMzQwIDY4LTMzLjIgMCAzODQgLjEgMHpNNDQ4IDI5MWwtMTMxLjMtMjguNSAzNi44LTIwLjdjLTE5LjUtMTEuNS00My41LTIwLTcwLTI0LjhsMC00M2M0Ni4yIDUuNSA4Ny43IDE5LjUgMTIwLjMgMzkuM2wzNS0xOS44IDkuMiA5Ny41eiJdfSxtZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidnNjbyIsaWNvbjpbNTEyLDUxMixbXSwiZTdkZCIsIk0zNTcuNiAyNTZjMC0yNy4xLTEwLjYtNTIuNS0yOS43LTcxLjdzLTQ0LjYtMjkuNy03MS43LTI5LjdsLS4xIDBjLTI3LjEgMC01Mi42IDEwLjYtNzEuNyAyOS43cy0yOS43IDQ0LjYtMjkuNyA3MS43YzAgMjcuMSAxMC42IDUyLjUgMjkuNyA3MS43IDE5LjIgMTkuMiA0NC42IDI5LjcgNzEuNyAyOS43bC4xIDBjMjcuMSAwIDUyLjYtMTAuNiA3MS43LTI5LjcgMTkuMi0xOS4yIDI5LjctNDQuNiAyOS43LTcxLjd6TTE3Ni4zIDQ4Mi4xYzIzIDguMSA0NyAxMi42IDcxLjYgMTMuNGwwLTU5LjFjLTE3LjEtLjctMzMuNS0zLjgtNDktOC45bC0yMi42IDU0LjZ6bTEzNy01NC42Yy0xNS41IDUuMS0zMiA4LjItNDkgOC45bDAgNTkuMWMyNC42LS44IDQ4LjYtNS4zIDcxLjYtMTMuNGwtMjIuNi01NC42ek05Mi41IDQzMS4yYzIwLjIgMTguOSA0My4zIDM0IDY4LjcgNDVsMjIuNS01NC41Yy0xOC4zLTcuOS0zNS4xLTE4LjgtNDkuOC0zMS45TDkyLjUgNDMxLjJ6bTI4NS45LTQxLjRjLTE0LjYgMTMuMi0zMS40IDI0LTQ5LjggMzEuOWwyMi41IDU0LjVjMjUuNC0xMSA0OC40LTI2LjEgNjguNy00NWwtNDEuNC00MS40ek0xNDUuNCAzNzguMmMxMy42IDEyLjEgMjkgMjEuOSA0NS44IDI5IDE4IDcuNiAzNy4xIDEyIDU2LjcgMTIuOWwwLTQ2LjhjLTI2LjQtMS44LTUwLjMtMTIuMy02OS4xLTI4LjZsLTMzLjQgMzMuNHptMTg4LTMzLjRjLTE4LjggMTYuMy00Mi43IDI2LjgtNjkuMSAyOC42bDAgNDYuOGMxOS42LS45IDM4LjctNS4zIDU2LjctMTIuOSAxNi44LTcuMSAzMi4yLTE2LjkgNDUuOC0yOWwtMzMuNC0zMy40ek0zOC41IDM1Ni42YzEwLjcgMjMuMiAyNSA0NC4zIDQyLjUgNjMuMWw0MS4zLTQxLjNjLTEyLjQtMTMuNC0yMi45LTI4LjYtMzAuOS00NS4yTDM4LjUgMzU2LjZ6bTM4Mi40LTIzLjVjLTggMTYuNi0xOC41IDMxLjktMzAuOSA0NS4ybDQxLjMgNDEuM2MxNy41LTE4LjcgMzEuOC0zOS45IDQyLjUtNjMuMWwtNTIuOS0yMy41em0tMzMxLTY5YzEuMSAxOC44IDUuNCAzNy4yIDEyLjggNTQuNSA3LjUgMTcuOCAxOCAzNCAzMS4yIDQ4LjJsMzMuNS0zMy41Yy0xNi40LTE4LjgtMjYuOS00Mi44LTI4LjctNjkuMmwtNDguOCAwem0yODMuNyAwYy0xLjggMjYuNC0xMi4zIDUwLjQtMjguNyA2OS4ybDMzLjUgMzMuNWMxMy4xLTE0LjIgMjMuNi0zMC40IDMxLjItNDguMiA3LjMtMTcuNCAxMS42LTM1LjcgMTIuNy01NC41bC00OC43IDB6bS0zNTcuMSAwYy45IDI2LjcgNi4xIDUyLjcgMTUuNiA3Ny41TDg1IDMxOC4yYy02LjQtMTctMTAuMy0zNS4xLTExLjMtNTRsLTU3LjEgMHptNDIyLjEgMGMtMSAxOC45LTUgMzcuMS0xMS4zIDU0bDUyLjggMjMuNWM5LjUtMjQuOCAxNC43LTUwLjggMTUuNi03Ny41bC01Ny4xIDB6TTMyLjEgMTcwLjRjLTkuNSAyNC44LTE0LjcgNTAuOC0xNS42IDc3LjVsNTcuMSAwYzEtMTguOSA1LTM3LjEgMTEuMy01NEwzMi4xIDE3MC40em0xMDEuNy0yNS4yYy0xMy4xIDE0LjItMjMuNiAzMC40LTMxLjIgNDguMi03LjMgMTcuNC0xMS42IDM1LjctMTIuOCA1NC41bDQ4LjggMGMxLjgtMjYuNCAxMi4zLTUwLjQgMjguNy02OS4ybC0zMy41LTMzLjV6bTIxMS4xIDMzLjVjMTYuNCAxOC44IDI2LjkgNDIuOCAyOC43IDY5LjJsNDguNyAwYy0xLjEtMTguOC01LjQtMzcuMi0xMi43LTU0LjUtNy41LTE3LjgtMTgtMzQtMzEuMi00OC4ybC0zMy41IDMzLjV6bTgyLjQgMTUuMmM2LjQgMTcgMTAuMyAzNS4xIDExLjMgNTRsNTcuMSAwYy0uOS0yNi43LTYuMS01Mi43LTE1LjYtNzcuNWwtNTIuOCAyMy41ek04MSA5Mi4zQzYzLjQgMTExIDQ5LjIgMTMyLjIgMzguNSAxNTUuNGw1Mi45IDIzLjVjOC0xNi42IDE4LjUtMzEuOSAzMC45LTQ1LjJMODEgOTIuM3ptMzA5IDQxLjNjMTIuNCAxMy40IDIyLjkgMjguNiAzMC45IDQ1LjJsNTIuOS0yMy41Yy0xMC43LTIzLjItMjUtNDQuMy00Mi41LTYzLjFMMzkwIDEzMy43ek0yNDggOTEuOGMtMTkuNiAuOS0zOC43IDUuMy01Ni43IDEyLjktMTYuOCA3LjEtMzIuMiAxNi45LTQ1LjggMjlsMzMuNCAzMy40YzE4LjgtMTYuMyA0Mi43LTI2LjggNjkuMS0yOC42bDAtNDYuN3ptMTYuMyA0Ni43YzI2LjQgMS44IDUwLjMgMTIuMyA2OS4xIDI4LjZsMzMuNC0zMy40Yy0xMy42LTEyLjEtMjktMjEuOS00NS44LTI5LTE4LTcuNi0zNy4xLTEyLTU2LjctMTIuOWwwIDQ2Ljd6TTE2MS4yIDM1LjhjLTI1LjQgMTEtNDguNCAyNi4xLTY4LjcgNDVsNDEuNCA0MS40YzE0LjctMTMuMiAzMS40LTI0IDQ5LjgtMzEuOUwxNjEuMiAzNS44ek0zMjguNiA5MC4zYzE4LjMgNy45IDM1LjEgMTguOCA0OS44IDMxLjlsNDEuNC00MS40Yy0yMC4yLTE4LjktNDMuMy0zNC02OC43LTQ1TDMyOC42IDkwLjN6TTI0OCAxNi40Yy0yNC42IC44LTQ4LjYgNS4zLTcxLjYgMTMuNGwyMi42IDU0LjZjMTUuNS01LjEgMzItOC4yIDQ5LTguOWwwLTU5LjF6bTE2LjMgNTkuMWMxNy4xIC43IDMzLjUgMy44IDQ5IDguOWwyMi42LTU0LjZjLTIzLTguMS00Ny0xMi42LTcxLjYtMTMuNGwwIDU5LjF6TTUxMi4yIDI2NC4ybC0uMiAwQzUwNy44IDM5OSAzOTkuMiA1MDcuNyAyNjQuMyA1MTEuOWwwIC4xLTE2LjMgMCAwLS4xQzExMy4xIDUwNy43IDQuNSAzOTkgLjIgMjY0LjFsLS4yIDAgMC0xNi4zIC4yIDBDNC41IDExMyAxMTMuMSA0LjMgMjQ4IC4xbDAtLjEgMTYuMyAwIDAgLjFDMzk5LjIgNC4zIDUwNy44IDExMyA1MTIgMjQ3LjlsLjIgMCAwIDE2LjN6Il19LGdkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbG9iYWxlYWtzIixpY29uOls0NDgsNTEyLFtdLCJlODVkIiwiTTQxMS4yIDMyLjJjMjAuMiAwIDM2LjggMTYuNiAzNi44IDM2LjlsMCAzNzMuOGMwIDIwLjItMTYuNiAzNi45LTM2LjggMzYuOWwtOTQuNCAwIDI4LTc5LjRjMy4xLTguOC0xLjYtMTguNy0xMC40LTIxLjgtMS42LS41LTIuNi0xLTQuMi0xcy0zLjYgMC01LjIgLjVjLTUuMiAxLTkuOSA1LjItMTEuOSAxMC45bC02LjIgMTYuNiAwLTY3LjVjMC0xMC45LTcuOC0xOS43LTE4LjItMjEuOGwtNy4yIDBjLS41IDAtMSAwLTEuNiAuNS0uNSAwLTEgLjUtMS42IC41LTIuNiAxLTUuMiAyLjYtNy4yIDQuMWwwLTQuMWMwLTUuNy0yLjYtMTAuNC01LjctMTRsLTEtMWMtMS0xLTIuNi0yLjEtNC4yLTIuNmwwLTI2LjVjMC01LjItNC4xLTkuMy05LjMtOS4zbC0zOS45IDBjLTYuNyAwLTExLjQtNy4zLTguMy0xMy41TDI4My4xIDg0LjFjMTQuNS0zMS4xIDQ1LjYtNTEuNCA4MC40LTUxLjlsNDcuNyAwem0tMTY2IDBjMTcuNiAwIDMwLjEgMTYuMSAyOCAzMi4yLTIuNiAzLjYtNC43IDcuOC02LjIgMTAuOUwxODYuNiAyNDEuNWMtOC44IDE4LjcgNC4yIDQwIDI0LjQgNDBsMzAuNiAwIDAgMTYuMWMtNy44IDMuMS0xMyAxMC45LTEzIDE5LjdsMCAzLjZjLTMuNi0zLjYtOC44LTUuNy0xNC41LTUuNy0xMS45IDAtMjEuOCA5LjktMjEuOCAyMS44bDAgMTkuMi0zLjEgMGMtOS4zIDAtMTcuMSA3LjgtMTcuMSAxNy4xbDAgMTA1LjktOTUuNCAwYy00MiAwLTcyLjYtNDAuNS02MS4yLTgxLjUgMS0zLjEgNC4yLTUuMiA3LjMtNC43bDIxLjIgMGMyNC40IDAgNDQuNi0yMC4yIDQ0LjYtNDUuMmwwLTQuMmMwLTI0LjktMTkuNy00NS4yLTQ0LjYtNDUuMi0uNSAwLTEtLjUtMS0xbDguOC0zMi43YzIuMS02LjItMi42LTExLjktOC44LTExLjlsLTMzLjIgMGMtNi43IDAtMTEuNC03LjMtOC4zLTEzLjVMNzYuNyA4NC43YzE2LjEtMzIuMiA0OC4yLTUyLjQgODQtNTIuNGw4NC41IDB6TTEzMy43IDE0NC40Yy0xMC40IDAtMTguNyA4LjMtMTguNyAxOC43IDAgOS45IDguMyAxOC43IDE4LjcgMTguNyAxMC40IDAgMTguNy04LjMgMTguNy0xOC43cy04LjMtMTguNy0xOC43LTE4Ljd6bTIwMi44IDBhMTguNiAxOC42IDAgMSAwIC0uMiAzNy4yIDE4LjYgMTguNiAwIDEgMCAuMi0zNy4yeiJdfSxiZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmVubW8iLGljb246WzY0MCw1MTIsW10sImU4NWEiLCJNNjcuOCAyMDIuN2MyLjQgNSAzLjkgMTEgMy45IDE5LjggMCAxNi4yLTExLjUgMzkuOC0yMC43IDU0LjlsLTkuOS03OS43LTQxIDMuOSAxOC44IDExMiA0Ni45IDBjMjAuNS0yNi45IDQ1LjgtNjUuMyA0NS44LTk0LjggMC05LjMtMS45LTE2LjYtNi4zLTIzLjdsLTM3LjQgNy41em0xMTMtNy4xYy00Mi44IDAtNjMuNSAzNy02My41IDcxLjkgMCAyNi45IDEyLjggNDguNSA0OC40IDQ4LjUgMTQgMCAyOC41LTMgMzcuOC03LjVsNS0zMy42Yy0xMy4yIDYuNy0yMy4zIDkuMy0zMy45IDkuMy05LjcgMC0xNy4xLTUuMi0xNy4xLTE4LjMgMjItLjIgNjAtOS4zIDYwLTM4LjggMC0xOC4zLTEzLjItMzEuNS0zNi43LTMxLjVsMCAwem0tMjIuNSA0OC45YzEuMS0xMi45IDExLTIyIDE4LjYtMjIgNC4zIDAgOCAyLjYgOCA3LjcgMCAxMC44LTE5IDE0LjItMjYuNiAxNC4ybDAgMHptMTUwLjItNDguOWMtMTUuMyAwLTI2LjEgNS44LTM0LjMgMTEuMmwtLjQtOS4zLTM0LjggMC0xOC40IDExNi4xIDQwLjIgMCAxMi43LTgxLjRjMy41LTEuNyA4LjYtNC4xIDEzLjgtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDYuNSAwIDIuMi0uNyA2LS45IDhsLTExLjIgNzEuMSA0MCAwIDEyLjMtNzcuNWMuNy00LjEgMS4zLTEwLjMgMS4zLTE0LjYgMC0xNS41LTcuMS0yNS45LTI3LjQtMjUuOXptMTgzLjIgMGMtMTQuOSAwLTI1LjcgNC41LTM3LjIgMTIuNy00LjEtNy4zLTEyLjMtMTIuNy0yNC44LTEyLjctMTQuNSAwLTI1LjMgNS44LTMzLjMgMTEuNmwtMS4xLTkuNy0zNC40IDAtMTguNCAxMTYuMSA0MC4yIDAgMTIuOC04MS40YzMuNS0xLjcgOC42LTQuMSAxMy44LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA3LjEgMCAxLjUtLjQgMy45LS42IDUuOGwtMTEuNCA3Mi42IDQwIDAgMTIuNy04MS40YzMuNy0xLjkgOC42LTQuMSAxMy42LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA3LjEgMCAxLjUtLjQgMy45LS43IDUuOGwtMTEuNCA3Mi42IDQwIDAgMTIuMy03Ny41Yy43LTQuMSAxLjMtMTAuMyAxLjMtMTQuNiAwLTE1LjUtNy4xLTI1LjktMjcuNy0yNS45bDAgMHptMTAyLjIgMGMtNDQuNyAwLTY0LjIgMzQuMy02NC4yIDcwLjkgMCAyNy44IDExLjIgNTAgNDUuMSA1MCA0NS44IDAgNjUtMzcuNSA2NS03My43IDAtMjcuNC0xMi4zLTQ3LjItNDYtNDcuMnptLTEzLjQgOTBjLTcuMSAwLTEwLjEtNi43LTEwLjEtMTcuNSAwLTE0LjIgMy4yLTQyIDE5LTQyIDcuMSAwIDkuNSA2LjUgOS41IDE1LjkgMCAxNC4yLTMuNSA0My41LTE4LjQgNDMuNXoiXX0seGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVidW50dSIsaWNvbjpbNTc2LDUxMixbXSwiZjdkZiIsIk00NjkuMiA3NWMwLTIwLjEtOC0zOS4zLTIyLjItNTMuNXMtMzMuNC0yMi4yLTUzLjUtMjIuMi0zOS4zIDgtNTMuNSAyMi4yLTIyLjIgMzMuNC0yMi4yIDUzLjVjMCAyMC4xIDggMzkuMyAyMi4xIDUzLjVzMzMuNCAyMi4xIDUzLjUgMjIuMSAzOS4zLTggNTMuNS0yMi4xIDIyLjEtMzMuNCAyMi4xLTUzLjVsLjEgMHptLTMxNSAxNjUuN2E3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTU3IDM0NmMxOC42IDQ2LjkgNTEgODcgOTMgMTE1LjFzOTEuNSA0Mi42IDE0MiA0MS43Yy0xNC43LTE4LjYtMjIuOS00MS41LTIzLjItNjUuMi02LjgtLjktMTMuMy0yLjEtMTkuNS0zLjQtMjYuOC01LjctNTEuOS0xNy4zLTczLjYtMzRzLTM5LjMtMzguMS01MS43LTYyLjVjLTIwLjkgOS45LTQ0LjUgMTIuOC02Ny4xIDguMmwuMSAuMXptMzk1LjEgODkuOGE3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTQ0NCAzNTEuNmMxOC41IDE0LjggMzEuNiAzNS4yIDM3LjIgNTguMiAzMy4zLTQxLjMgNTIuNi05Mi4yIDU0LjgtMTQ1LjJzLTEyLjUtMTA1LjQtNDIuMi0xNDkuNGMtOC42IDIxLjUtMjQgMzkuNi00My44IDUxLjYgMTUuNCAyOC42IDIyLjkgNjAuOCAyMS45IDkzLjJzLTEwLjcgNjQtMjggOTEuNmwuMSAwek0xMDEuMSAxMzUuNGMxMi40IDIuNyAyNC4zIDcuNSAzNS4xIDE0LjMgMTYuNi0yNC4yIDM4LjktNDQuMSA2NC44LTU4UzI1NS44IDcwLjQgMjg1LjIgNzBjLjItNS45IC45LTExLjkgMi0xNy43IDMuNi0xNi43IDExLjEtMzIuMyAyMS44LTQ1LjUtNDcuNy0zLjgtOTUuNCA2LTEzNy42IDI4LjVTOTQuMyA5MS43IDcwLjggMTMzLjRjMi43LS4yIDUuMy0uMyA4LS4zIDcuNSAwIDE1IC44IDIyLjQgMi4zbC0uMSAweiJdfSx2ZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhY29pbiIsaWNvbjpbMzg0LDUxMixbXSwiZjIzNyIsIk0zODQgMzJsLTY0IDAtODAuNyAxOTItOTQuNSAwLTgwLjgtMTkyLTY0IDAgNDggMTEyLTQ4IDAgMCA0OCA2OC41IDAgMTMuOCAzMi04Mi4zIDAgMCA0OCAxMDIuOCAwIDg5LjIgMjA4IDg5LjItMjA4IDEwMi44IDAgMC00OC04Mi4zIDAgMTMuOC0zMiA2OC41IDAgMC00OC00OCAwIDQ4LTExMnpNMTkyIDMzNmwtMjctNjQgNTQgMC0yNyA2NHoiXX0seWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InpoaWh1IixpY29uOls2NDAsNTEyLFtdLCJmNjNmIiwiTTE3MC41IDE0OC4xbDAgMjE3LjUgMjMuNCAwIDcuNyAyNi40IDQyLTI2LjQgNDkuNSAwIDAtMjE3LjUtMTIyLjcgMHptOTcuOCAxOTMuOWwtMjcuOSAwLTI3LjkgMTcuNS01LjEtMTcuNS0xMS45IDAgMC0xNzAuMyA3Mi44IDAgMCAxNzAuM3pNMTQ5LjggMjQ3LjdsLTUyLjMgMGMxLjctMjcuMSAyLjItNTEuNiAyLjItNzMuNWw1MS4yIDBzMi0yMi42LTguNi0yMi4zbC04OC41IDBjMy41LTEzLjEgNy45LTI2LjcgMTMuMS00MC43IDAgMC0yNC4xIDAtMzIuMyAyMS42LTMuNCA4LjktMTMuMiA0My4xLTMwLjcgNzguMSA1LjktLjYgMjUuNC0xLjIgMzYuOC0yMi4yIDIuMS01LjkgMi41LTYuNyA1LjEtMTQuNWwyOC45IDBjMCAxMC41LTEuMiA2Ni45LTEuNyA3My40bC01Mi4zIDBjLTExLjcgMC0xNS42IDIzLjYtMTUuNiAyMy42bDY1LjYgMGMtNC40IDQ5LjktMjggOTEuOS03MC44IDEyNS4xIDIwLjUgNS45IDQwLjktLjkgNTEtOS45IDAgMCAyMy0yMC45IDM1LjYtNjkuM2w1NCA2NC45czcuOS0yNi45LTEuMi00MGMtNy42LTguOS0yOC4xLTMzLjEtMzYuOC00MS44TDg3LjkgMzEyYzQuNC0xNCA3LTI3LjYgNy45LTQwLjdsNjEuNiAwcy0uMS0yMy42LTcuNi0yMy42bDAgMHptNDEyLTEuNmMyMC44LTI1LjYgNDUtNTguNiA0NS01OC42cy0xOC42LTE0LjgtMjcuNC00LjFjLTYgOC4yLTM2LjggNDguMi0zNi44IDQ4LjJsMTkuMiAxNC40ek00MTEuOCAxODdjLTktOC4yLTI1LjkgMi4xLTI1LjkgMi4xczM5LjUgNTUgNDEuMSA1Ny40bDE5LjUtMTMuN3MtMjUuNy0zNy42LTM0LjctNDUuOWwwIDAgMCAwek02NDAgMjU4LjRjLTE5LjggMC0xMzAuOSAuOS0xMzEuMSAuOWwwLTEwMWM0LjggMCAxMi40LS40IDIyLjgtMS4yIDQwLjktMi40IDcwLjEtNCA4Ny44LTQuOCAwIDAgMTIuMi0yNy4yLS42LTMzLjQtMy4xLTEuMi0yMy4yIDQuNi0yMy4yIDQuNnMtMTY1LjIgMTYuNS0yMzIuNCAxOGMxLjYgOC44IDcuNiAxNy4xIDE1LjggMTkuNiAxMy4zIDMuNSAyMi43IDEuNyA0OS4yIC45IDI0LjgtMS42IDQzLjctMi40IDU2LjUtMi40bDAgOTkuOC0xMzMuNSAwczIuOCAyMi4zIDI1LjUgMjIuOWwxMDcuOSAwIDAgNzAuOWMwIDE0LTExLjIgMjItMjQuNSAyMS4xLTE0LjEgLjEtMjYuMS0xLjEtNDEuNy0xLjggMiA0IDYuMyAxNC40IDE5LjMgMjEuOCA5LjkgNC44IDE2LjIgNi42IDI2IDYuNiAyOS42IDAgNDUuNy0xNy4zIDQ0LjktNDUuM2wwLTczLjMgMTIyLjQgMGM5LjcgMCA4LjctMjMuOCA4LjctMjMuOGwwIDB6Il19LHdkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW5kZXgiLGljb246WzI1Niw1MTIsW10sImY0MTMiLCJNMTUzLjEgMzE1LjhMNjUuNyA1MTIgMiA1MTIgOTggMzAyLjJDNTIuOSAyNzkuMyAyMi44IDIzNy44IDIyLjggMTYxLjEgMjIuNyA1My43IDkwLjggMCAxNzEuNyAwbDgyLjMgMCAwIDUxMi01NS4xIDAgMC0xOTYuMi00NS44IDB6TTE5OC45IDQ2LjVsLTI5LjQgMGMtNDQuNCAwLTg3LjQgMjkuNC04Ny40IDExNC42IDAgODIuMyAzOS40IDEwOC44IDg3LjQgMTA4LjhsMjkuNCAwIDAtMjIzLjR6Il19LGtkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhpdiIsaWNvbjpbNDQ4LDUxMixbXSwiZTY0MCIsIk05NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2TDk2IDMyem03Ny43IDIxNy4zYTYwLjEgNjAuMSAwIDEgMCAxMjAuMyAwIDYwLjEgNjAuMSAwIDEgMCAtMTIwLjMgMHpNMTE5LjEgMzg3LjhjLS4zLS44LS41LTEuNy0uNS0yLjZsMC0yNDQuM2MwLTEuOCAuNy0zLjYgMi00LjlzMy0yIDQuOS0ybDE2LjkgMGMxLjIgMCAyLjMgLjMgMy4zIC44czEuOSAxLjMgMi41IDIuM2wxNCAyMS44YzE5LjctMTUuNiA0NC41LTI1IDcxLjYtMjUgNjMuNiAwIDExNS4yIDUxLjYgMTE1LjIgMTE1LjJTMjk3LjUgMzY0LjUgMjMzLjggMzY0LjVjLTIyIDAtNDIuNi02LjItNjAuMS0xNi45bDAgMzcuNmMwIC45LS4yIDEuOC0uNSAyLjZzLS45IDEuNi0xLjUgMi4yLTEuNCAxLjEtMi4yIDEuNS0xLjcgLjUtMi42IC41bC00MS4zIDBjLS45IDAtMS44LS4yLTIuNi0uNXMtMS42LS45LTIuMi0xLjUtMS4xLTEuNC0xLjUtMi4yeiJdfSxTZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmFpIixpY29uOls1MTIsNTEyLFtdLCJlN2NmIiwiTTE5Ni40IDE4NS44bDAtNDguNmMwLTQuMSAxLjUtNy4yIDUuMS05LjJsOTcuOC01Ni4zYzEzLjMtNy43IDI5LjItMTEuMyA0NS42LTExLjMgNjEuNCAwIDEwMC40IDQ3LjYgMTAwLjQgOTguMyAwIDMuNiAwIDcuNy0uNSAxMS44TDM0My4zIDExMS4xYy02LjEtMy42LTEyLjMtMy42LTE4LjQgMEwxOTYuNCAxODUuOHpNNDI0LjcgMzc1LjJsMC0xMTYuMmMwLTcuMi0zLjEtMTIuMy05LjItMTUuOUwyODcgMTY4LjQgMzI5IDE0NC4zYzMuNi0yIDYuNy0yIDEwLjIgMEw0MzcgMjAwLjdjMjguMiAxNi40IDQ3LjEgNTEuMiA0Ny4xIDg1IDAgMzguOS0yMyA3NC44LTU5LjQgODkuNmwwIDB6TTE2Ni4yIDI3Mi44bC00Mi0yNC42Yy0zLjYtMi01LjEtNS4xLTUuMS05LjJsMC0xMTIuNmMwLTU0LjggNDItOTYuMyA5OC44LTk2LjMgMjEuNSAwIDQxLjUgNy4yIDU4LjQgMjBMMTc1LjQgMTA4LjVjLTYuMSAzLjYtOS4yIDguNy05LjIgMTUuOWwwIDE0OC41IDAgMHptOTAuNCA1Mi4ybC02MC4yLTMzLjggMC03MS43IDYwLjItMzMuOCA2MC4yIDMzLjggMCA3MS43LTYwLjIgMzMuOHptMzguNyAxNTUuN2MtMjEuNSAwLTQxLjUtNy4yLTU4LjQtMjBsMTAwLjktNTguNGM2LjEtMy42IDkuMi04LjcgOS4yLTE1LjlsMC0xNDguNSA0Mi41IDI0LjZjMy42IDIgNS4xIDUuMSA1LjEgOS4ybDAgMTEyLjZjMCA1NC44LTQyLjUgOTYuMy05OS4zIDk2LjNsMCAwek0xNzMuOCAzNjYuNUw3Ni4xIDMxMC4yYy0yOC4yLTE2LjQtNDcuMS01MS4yLTQ3LjEtODUgMC0zOS40IDIzLjYtNzQuOCA1OS45LTg5LjZsMCAxMTYuN2MwIDcuMiAzLjEgMTIuMyA5LjIgMTUuOWwxMjggNzQuMi00MiAyNC4xYy0zLjYgMi02LjcgMi0xMC4yIDB6bS01LjYgODRjLTU3LjkgMC0xMDAuNC00My41LTEwMC40LTk3LjMgMC00LjEgLjUtOC4yIDEtMTIuM2wxMDAuOSA1OC40YzYuMSAzLjYgMTIuMyAzLjYgMTguNCAwbDEyOC41LTc0LjIgMCA0OC42YzAgNC4xLTEuNSA3LjItNS4xIDkuMmwtOTcuOCA1Ni4zYy0xMy4zIDcuNy0yOS4yIDExLjMtNDUuNiAxMS4zbDAgMHptMTI3IDYwLjljNjIgMCAxMTMuNy00NCAxMjUuNC0xMDIuNCA1Ny4zLTE0LjkgOTQuMi02OC42IDk0LjItMTIzLjQgMC0zNS44LTE1LjQtNzAuNy00My05NS43IDIuNi0xMC44IDQuMS0yMS41IDQuMS0zMi4zIDAtNzMuMi01OS40LTEyOC0xMjgtMTI4LTEzLjggMC0yNy4xIDItNDAuNCA2LjctMjMtMjIuNS01NC44LTM2LjktODkuNi0zNi45LTYyIDAtMTEzLjcgNDQtMTI1LjQgMTAyLjQtNTcuMyAxNC44LTk0LjIgNjguNi05NC4yIDEyMy40IDAgMzUuOCAxNS40IDcwLjcgNDMgOTUuNy0yLjYgMTAuOC00LjEgMjEuNS00LjEgMzIuMyAwIDczLjIgNTkuNCAxMjggMTI4IDEyOCAxMy44IDAgMjcuMS0yIDQwLjQtNi43IDIzIDIyLjUgNTQuOCAzNi45IDg5LjYgMzYuOXoiXX0sTWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpdGgiLGljb246WzQ0OCw1MTIsW10sImY1MTIiLCJNMCAzMmw2OS43IDExOC44LTU4LjktMTEuNSA2OS44IDkxYy0zIDE3LTMgMzQuNCAwIDUxLjRsLTY5LjggOTEgNTguOS0xMS41LTY5LjcgMTE4LjggMTE4LjgtNjkuNy0xMS41IDU4LjkgOTEtNjkuOGMxNyAzIDM0LjUgMyA1MS41IDBsOTEgNjkuOC0xMS41LTU4LjkgMTE4LjcgNjkuNy02OS43LTExOC44IDU4LjkgMTEuNS02OS44LTkxYzMtMTcgMy0zNC40IDAtNTEuNGw2OS44LTkxLTU4LjkgMTEuNSA2OS43LTExOC44LTExOC43IDY5LjcgMTEuNS01OC45LTkxLjEgNjkuOWMtOC41LTEuNS0xNy4xLTIuMy0yNS43LTIuM3MtMTcuMiAuOC0yNS43IDIuM0wxMDcuMiA0Mi44IDExOC44IDEwMS43IDAgMzJ6TTIyNCAzODAuMmExMjQuMiAxMjQuMiAwIDEgMSAwLTI0OC40IDEyNC4yIDEyNC4yIDAgMSAxIDAgMjQ4LjR6bTAtMjExLjhhODcuNiA4Ny42IDAgMSAwIDAgMTc1LjEgODcuNiA4Ny42IDAgMSAwIDAtMTc1LjF6Il19LENkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqdWxpYSIsaWNvbjpbNjQwLDUxMixbXSwiZTg1MiIsIk0xMjQgNDA2LjVjMCAxNi4xLTEuOCAyOS4xLTUuNCAzOXMtOC44IDE3LjYtMTUuNSAyMy4xLTE0LjcgOS4xLTI0LjEgMTEtMTkuOCAyLjgtMzEuMiAyLjhjLTE1LjUgMC0yNy4zLTIuNC0zNS41LTcuM1MwIDQ2NC41IDAgNDU3LjdjMC01LjYgMi4zLTEwLjQgNi45LTE0LjNzMTAuOC01LjggMTguNS01LjhjNS44IDAgMTAuNCAxLjYgMTMuOSA0LjdzNi4zIDYuMiA4LjYgOS4zYzIuNiAzLjQgNC44IDUuNiA2LjUgNi44czMuNCAxLjcgNC44IDEuN2MzLjEgMCA1LjQtMS44IDctNS40czIuNC0xMC43IDIuNC0yMS4ybDAtMTk4LjcgNTUuNC0xNS4yIDAgMTg2Ljl6bTc4LjktMTgxLjZsMCAxMjcuOWMwIDMuNiAuNyA2LjkgMi4xIDEwczMuMyA1LjggNS43IDguMSA1LjIgNC4xIDguNSA1LjQgNi43IDIuMSAxMC40IDIuMWM0LjIgMCA4LjktMi4zIDE0LjctNi40IDkuMi02LjQgMTQuNy0xMC45IDE0LjctMTYuMWwwLTEzMSA1NS4xIDAgMCAxODEuNi01NS4xIDAgMC0xNi45Yy03LjMgNi4xLTE1IDExLTIzLjIgMTQuN3MtMTYuMiA1LjYtMjMuOSA1LjZjLTkgMC0xNy40LTEuNS0yNS4xLTQuNXMtMTQuNS03LTIwLjMtMTIuMi0xMC40LTExLjItMTMuNy0xOC4xYy0zLjMtNi45LTUtMTQuMy01LTIyLjJsMC0xMjcuOSA1NS4xIDB6TTM5MS40IDQwNi41bC01NC45IDAgMC0yNTQuNiA1NC45LTE1LjIgMCAyNjkuOHptMjIuOS0xNzEuN2w1NS4xLTE1LjIgMCAxODYuOS01NS4xIDAgMC0xNzEuN3ptMTcwLjMgNzcuOWMtNS4zIDIuMy0xMC43IDQuOS0xNi4xIDcuOXMtMTAuMyA2LjItMTQuNyA5LjgtOCA3LjMtMTAuOCAxMS40LTQuMSA4LjItNC4xIDEyLjZjMCAzLjQgLjQgNi42IDEuMyA5LjhzMi4xIDUuOCAzLjggOC4xIDMuNCA0LjEgNS4zIDUuNCA0IDIuMSA2LjMgMi4xYzQuNSAwIDkuMS0xLjQgMTMuNy00LjFzOS43LTYuMiAxNS40LTEwLjRsMC01Mi41ek02NDAgNDA2LjVsLTU1LjQgMCAwLTE0LjVjLTMuMSAyLjYtNiA1LTguOSA3LjFzLTYuMiA0LjEtOS44IDUuNy03LjcgMi45LTEyLjIgMy44Yy00LjUgLjktOS44IDEuMy0xNS45IDEuMy04LjQgMC0xNS45LTEuMi0yMi42LTMuNi02LjctMi40LTEyLjQtNS43LTE3LTkuOXMtOC4zLTkuMS0xMC44LTE0LjljLTIuNS01LjctMy44LTEyLTMuOC0xOC43IDAtNi45IDEuMy0xMy4yIDQtMTguOSAyLjctNS42IDYuMy0xMC43IDEwLjktMTUuMiA0LjYtNC41IDkuOS04LjUgMTYuMS0xMi4xczEyLjctNi44IDE5LjctOS44IDE0LjMtNS43IDIxLjktOC4yIDE1LjEtNC45IDIyLjUtNy4xbDYtMS41IDAtMTcuOWMwLTExLjYtMi4yLTE5LjgtNi42LTI0LjdzLTEwLjQtNy4zLTE3LjgtNy4zYy04LjcgMC0xNC44IDIuMS0xOC4xIDYuM3MtNS4xIDkuMy01LjEgMTUuMmMwIDMuNC0uNCA2LjctMS4xIDkuOS0uNyAzLjItMiA2LTMuNyA4LjVzLTQuMyA0LjQtNy42IDUuOGMtMy4zIDEuNS03LjUgMi4yLTEyLjUgMi4yLTcuNyAwLTE0LTIuMi0xOC45LTYuNi00LjgtNC40LTcuMy0xMC03LjMtMTYuOCAwLTYuMyAyLjEtMTIuMSA2LjQtMTcuNSA0LjMtNS40IDEwLTEwIDE3LjMtMTMuOSA3LjMtMy45IDE1LjYtNi45IDI1LjEtOS4yczE5LjYtMy40IDMwLjItMy40YzEzLjEgMCAyNC4zIDEuMiAzMy43IDMuNXMxNy4yIDUuNyAyMy4zIDEwIDEwLjYgOS42IDEzLjUgMTUuNyA0LjQgMTMgNC40IDIwLjZsMCAxMzYuMXpNNjAgMTcyLjlhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHpNNDUyLjIgOTVhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHptNDUgNzcuOWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwem0tODkuOSAwYTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6Il19LHpkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZmMtZGlyZWN0aW9uYWwiLGljb246WzUxMiw1MTIsW10sImU1MzAiLCJNMjExLjggNDg4LjZjMS42IDIuNSAyLjEgNS42IDEuNCA4LjUtLjYgMi45LTIuNCA1LjUtNC45IDcuMS0yLjYgMS42LTUuNiAyLjEtOC42IDEuNS02MS40LTEzLjktMTE1LjYtNDkuOS0xNTIuMi0xMDEuMlMtNS40IDI5MC4zIDEuNiAyMjcuN2M3LTYyLjcgMzYuOC0xMjAuNSA4My43LTE2Mi41IDQ2LjktNDIgMTA3LjctNjUuMiAxNzAuNy02NS4yIDEuNSAwIDIuMSAuMyA0LjMgLjkgMS40IC42IDEuOCAxLjQgMy43IDIuNSAxLjEgMS4xIDEuOSAyLjMgMi41IDMuNyAuNSAxLjQgLjggMi44IC44IDQuM2wwIDEwMSAyNC41LTI1LjljMS0xLjEgMi4yLTIgMy42LTIuNiAxLjMtLjYgMi44LS45IDQuMy0xIDEuNS0uMSAyLjkgLjIgNC4zIC43czIuNyAxLjMgMy44IDIuNGMxIDEgMS45IDIuMiAyLjUgMy42IC42IDEuMyAxIDIuOCAxIDQuM3MtLjIgMy0uNyA0LjNjLS42IDEuNC0xLjQgMi42LTIuNCAzLjdsLTQ0IDQ2LjZjLTEuMSAxLjEtMi4zIDItMy43IDIuNi0xLjUgLjYtMyAuOS01LjQgLjktLjYgMC0yLjItLjMtMy42LS45cy0yLjctMS41LTMuNy0yLjZsLTQ0LjEtNDYuNmMtMi0yLjItMy4xLTUuMS0zLTguMSAwLTMgMS4zLTYuNyAzLjUtNy45IDIuMi0yLjEgNS4xLTMuMiA4LjEtMy4xIDMgLjEgNS44IDEuMyA3LjkgMy41bDI0LjUgMjYgMC04OS41Yy01Ni40IDIuOC0xMDkuOCAyNS44LTE1MC41IDY1LTQwLjYgMzkuMS02NS43IDkxLjctNzAuNiAxNDcuOVMzNC40IDM0OC4xIDY3LjcgMzkzLjdjMzIuNCA0NS41IDgyIDc3LjUgMTM3IDg5LjkgMi45IC43IDUuNSAyLjUgNy4xIDV6TTE3MS40IDEyNi4xYy0uOCAxLjMtMS45IDIuNC0zLjEgMy4yLTIwLjUgMTMuOS0zNy4yIDMyLjYtNDguOCA1NC41cy0xNy43IDQ2LjMtMTcuNyA3MS4xIDYuMSA0OS4yIDE3LjcgNzAuMmMxMS42IDIyLjggMjguMyA0MS41IDQ4LjggNTUuNCAyLjUgMS43IDQuMiA0LjMgNC43IDcuMyAuNiAyLjktLjkgNi0xLjcgOC40LTEuNyAyLjUtNS4yIDQuMi03LjMgMy45LTIuOSAxLjQtNiAuOC04LjQtLjktMjMuNi0xNi00Mi44LTM3LjUtNTYuMS02Mi43LTEzLjMtMjUuMS0yMC4zLTUzLjEtMjAuMy04MS42IDAtMjguNCA3LTU2LjUgMjAuMy04MS42IDEzLjMtMjUuMiAzMi41LTQ2LjcgNTYuMS02Mi43IDEuMi0uOCAyLjYtMS40IDQtMS44IDEuNS0uMyAzLS4zIDQuNSAwIDEuNCAuMiAyLjggLjggNC4xIDEuNnMyLjMgMS45IDMuMiAzLjFjLjggMS4yIDEuNCAyLjYgMS43IDQuMXMuMyAzIDAgNC40Yy0uMyAxLjUtLjggMi45LTEuNyA0LjF6TTM0MC45IDM4My41Yy44LTEuMiAxLjktMi4zIDIuMi0zLjFsMC0uMWMyMS4zLTE0IDM4LTMyLjcgNDkuNi01NC42IDExLjUtMjEuOCAxNy41LTQ2LjIgMTcuNS03MC45cy02LTQ5LjEtMTcuNS03MWMtMTEuNi0yMi43LTI4LjMtNDAuNS00OS42LTU0LjUtLjMtLjgtMS40LTEuOS0yLjItMy4xLS44LTEuMy0xLjQtMi43LTEuNi00LjEtMS4yLTEuNS0uMy0zIDAtNC40IC4zLTEuNSAuOS0yLjkgMS43LTQuMSAuOS0xLjIgMS4xLTIuMyAzLjItMy4xIDEuMi0uOCAyLjYtMS4zIDQuMS0xLjZzMi45LS4zIDQuNCAwIDIuOCAuOSA0LjEgMS44YzIzLjQgMTYgNDIuNyAzNy41IDU1LjkgNjIuNiAxMy4zIDI1LjEgMTkuNCA1My4xIDE5LjQgODEuNSAwIDI4LjUtNi4xIDU2LjUtMTkuNCA4MS42LTEzLjIgMjUuMS0zMi41IDQ2LjYtNTUuOSA2Mi42LTEuMyAuOS0yLjYgMS41LTQuMSAxLjhzLTIuOSAuMy00LjQgMC0yLjktMS43LTQuMS0xLjZjLTIuMS0uOC0yLjMtMS45LTMuMi0zLjEtLjgtMS4yLTEuNC0yLjYtMS43LTQuMS0uMy0xLjQtMS4yLTIuOSAwLTQuNCAuMi0xLjQgLjgtMi44IDEuNi00LjF6TTMxMi4zIDYuM2M1Ni4yIDEyLjcgMTA2LjQgNDQgMTQyLjcgODguNyAzMC40IDM3LjYgNDkuNiA4MyA1NS4zIDEzMSA1LjYgNDgtMi40IDk2LjctMjMuMiAxNDAuMy0yMC45IDQzLjYtNTMuNiA4MC41LTk0LjUgMTA2LjMtNDAuOSAyNS43LTg4LjIgMzkuNC0xMzYuNiAzOS40LTEuNSAwLTIuOS0uMy00LjMtLjktMS40LS41LTIuNi0xLjQtMy43LTIuNC0xLjktMS4xLTEuOS0yLjMtMi40LTMuNy0uNi0xLjQtLjktMi44LS45LTQuM2wwLTk5LjItMjQuNSAyNmMtMi4xIDIuMi00LjkgMi42LTcuOSAzLjYtMyAuMS01LjktMS4xLTguMS00LTIuMi0xLjItMy41LTQtMy41LTctLjEtMyAxLTUuOSAzLTguMWw0NC4xLTQ2LjZjMS4zLTIuMiA1LjEtMy40IDcuMy0zLjQgNCAwIDYuOSAxLjIgOS4xIDMuNGw0NCA0Ni42YzIuMSAyLjIgMy4yIDUuMSAzLjEgOC4xcy0xLjQgNS44LTMuNSA3Yy0yLjIgMi45LTUuMSA0LjEtOC4xIDQtMy0xLTUuOS0xLjQtNy45LTMuNmwtMjQuNS0yNS45IDAgODcuNWM1Ni40LTIuOCAxMDkuOC0yNS44IDE1MC41LTY1IDQwLjctNDAgNjUuOC05MS43IDcwLjctMTQ3LjkgNC44LTU3LjEtMTAuOC0xMTIuMy00NC4xLTE1Ny45LTMzLjMtNDUuNi04Mi03Ny41LTEzNy04OS45LTEuNS0uMy0yLjgtLjktNC4xLTEuOC0xLjItLjktMi4yLTEuOS0zLTMuMi0uOC0xLjItMi4yLTIuNi0xLjYtNC4xLS4yLTEuNS0uMi0zIC4xLTQuNCAuNC0xLjQgMS0yLjggMS44LTQgLjktMS4yIDItMi4yIDMuMi0zIDEuMy0uOCAyLjctMS4zIDQuMS0xLjYgMS41LS4zIDMtLjIgNC40IC4xem00MC44IDI0OS44YzAgMzEuNC0xNy41IDYxLjEtNDkuMyA4My41LTIuMSAxLjUtNC44IDIuMy03LjQgMi0yLjctLjItNS4yLTEuMy03LTMuMmwtNzAuMS02OS44Yy0yLjItMi4xLTQuMi01LTMuNC04IDAtMyAxLjItNS45IDMuMy04IDIuMi0yLjEgNS0zLjMgOC0zLjNzNS45IDEuMiA4IDMuM2w2My4xIDYyLjhjMjAuOC0xNy4xIDMyLjItMzcuOSAzMi4yLTU5LjMgMC0yMy45LTE0LjEtNDctMzkuNy02NS4xLTIuNS0xLjctNC4xLTQuMy00LjYtNy4zLS41LTIuOSAuMS02IDEuOS04LjQgMS43LTIuNSA0LjMtNC4xIDcuMy00LjYgMi45LS41IDYgLjEgOC40IDEuOSAzMS44IDIyLjQgNDkuMyA1Mi4xIDQ5LjMgODMuNXpNMjE2LjcgMzQxLjVjLTMgLjUtNi0uMi04LjUtMS45LTMxLjctMjIuNC01MC4xLTUyLjEtNTAuMS04My41czE4LjQtNjEuMSA1MC4xLTgzLjVjMi4yLTEuNiA0LjktMi4zIDcuNS0yLjEgMi43IC4zIDUuMSAxLjQgNyAzLjNsNzAuMSA2OS44YzIuMSAyLjEgMy4zIDUgMy4zIDhzLTIgNS44LTMuMyA4Yy0yLjEgMi4xLTUgMy4zLTcuOSAzLjMtMyAwLTYuOC0xLjItOC0zLjNsLTYzLjEtNjIuOWMtMjAuOSAxNy4zLTMyLjIgMzgtMzIuMiA1OS40IDAgMjMgMTQuMSA0NyAzOS43IDY1IDIuNCAxLjggNC4xIDQuNCA0LjYgNy40IC41IDIuOS0uMiA1LjktMS45IDguNC0xLjcgMi40LTQuNCA0LjEtNy4zIDQuNnoiXX0sX2RyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtYnkiLGljb246WzUxMiw1MTIsW10sImY0ZTciLCJNMzIyLjkgMTk0LjRsMCAxMDEuNC0yOC4zIDAgMCAxMjAuNS03Ny4xIDAgMC0xMjAuNC0yOC4zIDAgMC0xMDEuNWMwLTQuNCAxLjYtOC4yIDQuNi0xMS4zIDMuMS0zLjEgNi45LTQuNyAxMS4zLTQuN2wxMDEuOSAwYzQuMSAwIDcuOCAxLjYgMTEuMSA0LjcgMy4xIDMuMiA0LjggNi45IDQuOCAxMS4zem0tMzIuNS02NC41YTM0LjUgMzQuNSAwIDEgMSAtNjkgLjggMzQuNSAzNC41IDAgMSAxIDY5LS44ek0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6Il19LFRkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bWJyYWNvIixpY29uOls1MTIsNTEyLFtdLCJmOGU4IiwiTTI1Ni4zIDhhMjQ4IDI0OCAwIDEgMCAtLjcgNDk2IDI0OCAyNDggMCAxIDAgLjctNDk2em0xNDUgMjY2Yy0uOCAyNy4xLTUuNCA0OC44LTE0IDY1cy0yMy4xIDI3LjktNDMuNSAzNWMtMjAuNCA3LjEtNDguOSAxMC42LTg1LjQgMTAuNWwtNC42IDBjLTM2LjUgLjEtNjUtMy4zLTg1LjQtMTAuNXMtMzQuOS0xOC44LTQzLjUtMzVjLTguNi0xNi4yLTEzLjItMzcuOS0xNC02NS0uNy0xMC4yLS43LTIwLjUgMC0zMC43IC40LTE0LjcgMS42LTI5LjMgMy42LTQzLjkgMS45LTEzLjQgMy42LTIyLjYgNS40LTMyIDEtNC45IDEuMy02LjQgMS44LTguNCAuMy0xLjEgLjktMi4xIDEuOC0yLjhzMi0xLjEgMy4xLTEuMWwuNyAwIDMyIDVjMS4yIC4yIDIuMiAuOCAzIDEuN3MxLjIgMi4xIDEuMiAzLjNjMCAuMyAwIC41IDAgLjhsLTEuNyA4LjhjLTEuNiA4LjgtMy4yIDIwLjEtNC44IDMzLjctMS43IDE0LTIuNSAyOC4xLTIuNiA0Mi4yLS4yIDI3IDIuNSA0Ni45IDguMSA1OS44IDIuOCA2LjQgNy4yIDEyIDEyLjYgMTYuNHMxMS45IDcuNCAxOC43IDguOGMxOC44IDQgMzguMSA1LjcgNTcuMyA1LjFsMTAuMyAwYzE5LjIgLjYgMzguNS0xLjIgNTcuMy01LjIgNi44LTEuNCAxMy4yLTQuNSAxOC42LTguOHM5LjctMTAgMTIuNS0xNi40YzUuNy0xMi45IDguNC0zMi45IDguMS01OS44LS4xLTE0LjEtMS0yOC4yLTIuNi00Mi4xLTEuNy0xMy42LTMuMy0yNC44LTQuOS0zMy43bC0xLjctOC44YzAtLjMgMC0uNSAwLS44IDAtMS4yIC40LTIuNCAxLjItMy4zczEuOC0xLjUgMy0xLjdsMzItNSAuOCAwYzEuMSAwIDIuMiAuNCAzLjEgMS4xczEuNSAxLjcgMS44IDIuOGMuNiAyIC44IDMuNiAxLjggOC40IDEuOCA5LjYgMy41IDE4LjggNS40IDMyIDIgMTQuNiAzLjIgMjkuMiAzLjYgNDMuOSAuNyAxMC4yIC43IDIwLjUgMCAzMC43bDAgMHoiXX0sTGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhvb2xpIixpY29uOls2NDAsNTEyLFtdLCJmNDI3IiwiTTE0NC41IDM1MmwzOC4zIC44Yy0xMy4yLTQuNi0yNi0xMC4yLTM4LjMtMTYuOGwwIDE2em01Ny43LTUuM2wwIDUuMy0xOS40IC44YzM2LjUgMTIuNSA2OS45IDE0LjIgOTQuNyA3LjItMTkuOSAuMi00NS44LTIuNi03NS4zLTEzLjN6TTYxMS4xIDIzMS41YzE1LjkgMCAyOC45LTEyLjkgMjguOS0yOC45cy0xMi45LTI0LjUtMjguOS0yNC41Yy0xNS45IDAtMjguOSA4LjYtMjguOSAyNC41czEyLjkgMjguOSAyOC45IDI4Ljl6TTU4Mi4xIDM1Mmw1Ny45IDAgMC0xMTAuNS01Ny45IDAgMCAxMTAuNXptLTczLjcgMGw1Ny45IDAgMC0xOTUuMy01Ny45IDI3LjMgMCAxNjh6bS0zMS0xMTkuNGMtMTguMi0xOC4yLTUwLjQtMTcuMS01MC40LTE3LjFzLTMyLjMtMS4xLTUwLjQgMTcuMWMtMTguMiAxOC4yLTE2LjggMzMuOS0xNi44IDUyLjZzLTEuNCAzNC4zIDE2LjggNTIuNSA1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuOC0zMy44IDE2LjgtNTIuNS0uMS0xOC44IDEuMy0zNC41LTE2LjgtNTIuNnptLTM5LjggNzEuOWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6TTMzMS40IDIzMi42Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMi0xLjEtNTAuNCAxNy4xYy0xLjkgMS45LTMuNyAzLjktNS4zIDYtMzguMi0yOS42LTcyLjUtNDYuNS0xMDIuMS02MS4xbDAtMjAuNy0yMi41IDEwLjZjLTU0LjQtMjIuMS04OS0xOC4yLTk3LjMgLjEgMCAwLTI0LjkgMzIuOCA2MS44IDExMC44bDAgNzMuNyA1Ny45IDAgMC0yOC42Yy02LjUtNC4yLTEzLTguNy0xOS40LTEzLjYtMTQuOC0xMS4yLTI3LjQtMjEuNi0zOC40LTMxLjRsMC0zMWMxMy4xIDE0LjcgMzAuNSAzMS40IDUzLjQgNTAuM2w0LjUgMy42IDAtMjkuOGMwLTYuOSAxLjctMTguMiAxMC44LTE4LjJzMTAuNiA2LjkgMTAuNiAxNWwwIDQ4LjdjMTggMTIuMiAzNy4zIDIyLjEgNTcuNyAyOS42bDAtOTMuOWMwLTE4LjctMTMuNC0zNy40LTQwLjYtMzcuNC0xNS44LS4xLTMwLjUgOC4yLTM4LjUgMjEuOWwwLTU0LjNjNDEuOSAyMC45IDgzLjkgNDYuNSA5OS45IDU4LjMtMTAuMiAxNC42LTkuMyAyOC4xLTkuMyA0My43IDAgMTguNy0xLjQgMzQuMyAxNi44IDUyLjVzNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjctMzMuOCAxNi43LTUyLjUgMC0xOC41IDEuNS0zNC4yLTE2LjctNTIuM3pNNjUuMiAxODRsMCA2My4zYy00OC43LTU0LjUtMzguOS03Ni0zNS4yLTc5LjEgMTMuNS0xMS40IDM3LjUtOCA2NC40IDIuMUw2NS4yIDE4NHpNMjkxLjcgMzA0LjVjMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjVsMC00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjlsMCA0MC40eiJdfSxJRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdCIsaWNvbjpbNDQ4LDUxMixbImdpdC1zcXVhcmUiXSwiZjFkMiIsIk0xMjAuOCAzMzUuNWMtNS45LS40LTEyLjYtLjgtMjAuMi0xLjMtMy4zIDQuMS02LjYgOC40LTYuNiAxMy41IDAgMTguNSA2NS41IDE4LjUgNjUuNS0xLjUgMC04LjMtNy40LTguNy0zOC44LTEwLjdsLjEgMHptNy44LTExNy45Yy0zMi4zIDAtMzMuNyA0NC41LS43IDQ0LjUgMzIuNSAwIDMxLjctNDQuNSAuNy00NC41ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjQzLjkgMTcyLjJjLTE0LjUgMC0yMi45LTguNC0yMi45LTIyLjlzOC40LTIyLjMgMjIuOS0yMi4zYzE0LjcgMCAyMy4xIDcuOCAyMy4xIDIyLjNzLTguNCAyMi45LTIzLjEgMjIuOXpNMTQ5LjYgMTk1bDQ5LjUgMCAwIDIxLjYtMjMuNCAxLjhjNC42IDUuOCA5LjQgMTQgOS40IDI1LjcgMCA0OC43LTU3LjIgNDcuMi03NC4yIDQyLjRsLTguNCAxMy40YzUgLjMgOS44IC42IDE0LjMgLjggNTYuMyAzLjIgODAuNSA0LjYgODAuNSAzOC41IDAgMjkuMi0yNS43IDQ1LjctNjkuOSA0NS43LTQ2IDAtNjMuNS0xMS42LTYzLjUtMzEuNyAwLTExLjQgNS4xLTE3LjUgMTQtMjUuOS04LjQtMy41LTExLjItOS45LTExLjItMTYuOCAwLTkuNiA3LjQtMTYuMyAyMy0zMC42bC4yLS4yYy0xMi40LTYuMS0yMS44LTE5LjMtMjEuOC0zOC4xIDAtNTEuNiA1Ni42LTUzLjMgODEuNi00Ni44bC0uMSAuMnpNMjcwLjUgMzAzLjFsMTMgMS44IDAgMjAuMS03Mi40IDAgMC0yMC4xYzIuNy0uNCA1LS43IDYuOS0uOSA5LjktMS4yIDEwLjEtMS4zIDEwLjEtNmwwLTc0LjdjMC00LjQtLjktNC43LTEwLjEtNy44LTEuOS0uNy00LjItMS40LTYuOS0yLjRsMi44LTIwLjYgNTIuNiAwIDAgMTA1LjVjMCA0LjEgLjIgNC42IDQuMSA1LjFsLS4xIDB6bTEwNi42LTEwLjRMMzg0IDMxNWMtMTAuOSA1LjQtMjYuOSAxMC4yLTQxLjQgMTAuMi0zMC4yIDAtNDEuNy0xMi4yLTQxLjctNDAuOWwwLTY2LjZjMC0uOCAwLTEuNC0uMi0xLjgtLjgtMS4yLTQuMi0uNy0xOS42LS43bDAtMjIuNmMyMi4zLTIuNSAzMS4yLTEzLjcgMzQtNDEuNGwyNC4yIDBjMCAzMy4zLS42IDM4IC43IDM4LjYgLjMgLjEgLjcgMCAxLjMgMGwzNS44IDAgMCAyNS40LTM3LjggMCAwIDYxLjZjLS4yIDYuMy0uOSAzMC40IDM3LjkgMTUuOWwtLjEgMHoiXX0sRGRyPUlFZSwkZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2Rub2tsYXNzbmlraSIsaWNvbjpbMzIwLDUxMixbXSwiZjI2MyIsIk0yNzUuMSAzMzRjLTI3LjQgMTcuNC02NS4xIDI0LjMtOTAgMjYuOWwyMC45IDIwLjYgNzYuMyA3Ni4zYzI3LjkgMjguNi0xNy41IDczLjMtNDUuNyA0NS43LTE5LjEtMTkuNC00Ny4xLTQ3LjQtNzYuMy03Ni42TDg0IDUwMy40Yy0yOC4yIDI3LjUtNzMuNi0xNy42LTQ1LjQtNDUuNyAxOS40LTE5LjQgNDcuMS00Ny40IDc2LjMtNzYuM2wyMC42LTIwLjZjLTI0LjYtMi42LTYyLjktOS4xLTkwLjYtMjYuOS0zMi42LTIxLTQ2LjktMzMuMy0zNC4zLTU5IDcuNC0xNC42IDI3LjctMjYuOSA1NC42LTUuNyAwIDAgMzYuMyAyOC45IDk0LjkgMjguOVMyNTUgMjY5LjIgMjU1IDI2OS4yYzI2LjktMjEuMSA0Ny4xLTguOSA1NC42IDUuNyAxMi40IDI1LjctMS45IDM4LTM0LjUgNTkuMXptMTQuNi0yMDQuN2ExMjkuNyAxMjkuNyAwIDEgMSAtMjU5LjQgLjQgMTI5LjcgMTI5LjcgMCAxIDEgMjU5LjQtLjR6bS0xOTMuNCAuNGE2My43IDYzLjcgMCAxIDAgMTI3LjQtLjQgNjMuNyA2My43IDAgMSAwIC0xMjcuNCAuNHoiXX0sQWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRydXBhbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFhOSIsIk0yNzIuMyAxMDguMUMyMzYuNSA3Mi41IDIwMi41IDM4LjQgMTkyLjQgMCAxODIuNCAzOC40IDE0OC4xIDcyLjUgMTEyLjQgMTA4LjEgNTguOCAxNjEuNy0xLjkgMjIyLjQtMS45IDMxMy40LTQuMyA0MjAuNyA4MC44IDUwOS42IDE4OC4xIDUxMnMxOTYuMi04Mi44IDE5OC41LTE5MC4xYy4xLTIuOCAuMS01LjYgMC04LjUgMC05MS4xLTYwLjgtMTUxLjctMTE0LjMtMjA1LjN6TTk4IDMzMS4xYy01LjkgNy41LTExIDE1LjYtMTUuMiAyNC4yLS4zIC43LS44IDEuMy0xLjMgMS44cy0xLjIgLjgtMiAxbC0xLjcgMGMtNC4zIDAtOS4yLTguNS05LjItOC41LTEuMy0yLTIuNS00LjItMy43LTYuNGwtLjgtMS44Yy0xMS4yLTI1LjctMS41LTYyLjMtMS41LTYyLjMgNC44LTE3LjggMTIuNy0zNC43IDIzLjItNDkuOSA2LjQtOS42IDEzLjUtMTguOSAyMS0yNy43bDkuMiA5LjIgNDMuNSA0NC40Yy44IC45IDEuMyAyLjEgMS4zIDMuM3MtLjUgMi40LTEuMyAzLjNMMTE0LjEgMzEyLjMgOTggMzMxLjF6bTk2LjYgMTI3LjNjLTEyLjktLjEtMjUuNi0zLjktMzYuNC0xMXMtMTkuNC0xNy4xLTI0LjYtMjguOS03LTI0LjktNS0zNy43IDcuNi0yNC43IDE2LjItMzQuNGMxNC4yLTE2LjkgMzEuNS0zMy41IDUwLjMtNTUuMyAyMi4zIDIzLjggMzYuOSA0MC4xIDUxLjIgNTggMS4xIDEuNCAyLjEgMi45IDMgNC40IDcuOCAxMS4xIDEyIDI0LjQgMTIgMzggMCA4LjgtMS43IDE3LjQtNSAyNS41cy04LjIgMTUuNS0xNC40IDIxLjctMTMuNSAxMS4xLTIxLjYgMTQuNS0xNi43IDUuMS0yNS41IDUuMWwtLjIgMHpNMzIwLjcgMzUxLjZjLS40IDEuNC0xLjIgMi42LTIuMyAzLjZzLTIuNCAxLjYtMy44IDEuOGwtMS4zIDBjLTIuNi0uOS00LjktMi43LTYuMy01LjEtMTEuNi0xNy41LTI0LjktMzMuOS0zOS41LTQ5bC0xNy44LTE4LjQtNTkuMS02MS4zYy0xMi40LTExLjUtMjQuMi0yMy42LTM1LjQtMzYuMy0uMy0uNS0uNi0uOS0uOS0xLjQtMi0yLjgtMy42LTUuOS00LjctOS4ybDAtMS44Yy0uOC01LS40LTEwLjEgMS4yLTE1czQuNC05LjIgOC0xMi43YzExLjQtMTEuNCAyMy0yMyAzMy44LTM0LjkgMTIgMTMuMyAyNC44IDI2IDM3LjQgMzguNiAyNS44IDI0IDQ5LjEgNTAuNSA2OS42IDc5LjEgMTcuMyAyNC41IDI2LjcgNTMuOCAyNyA4My44LS4xIDEyLjktMi4yIDI1LjgtNiAzOC4yeiJdfSxFZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxvZ2dlci1iIixpY29uOls0NDgsNTEyLFtdLCJmMzdkIiwiTTQ0Ni42IDIyMi43Yy0xLjgtOC02LjgtMTUuNC0xMi41LTE4LjUtMS44LTEtMTMtMi4yLTI1LTIuNy0yMC4xLS45LTIyLjMtMS4zLTI4LjctNS0xMC4xLTUuOS0xMi44LTEyLjMtMTIuOS0yOS41LS4xLTMzLTEzLjgtNjMuNy00MC45LTkxLjMtMTkuMy0xOS43LTQwLjktMzMtNjUuNS00MC41LTUuOS0xLjgtMTkuMS0yLjQtNjMuMy0yLjktNjkuNC0uOC04NC44IC42LTEwOC40IDEwLTQzLjUgMTcuMi03NC43IDUzLjgtODYuMSAxMDAuNi0yLjEgOC44LTIuNiAyMi45LTMuMSAxMDMuOS0uNiAxMDEuNSAuMSAxMTYuNCA2LjQgMTM2LjUgMTUuNiA0OS42IDU5LjkgODYuMyAxMDQuNCA5NC4zIDE0LjggMi43IDE5Ny4zIDMuMyAyMTYgLjggMzIuNS00LjQgNTgtMTcuNSA4MS45LTQxLjkgMTcuMy0xNy43IDI4LjEtMzYuOCAzNS4yLTYyLjEgNC45LTE3LjYgNC41LTE0Mi44IDIuNS0xNTEuN3pNMTI0LjUgMTU5LjFjNy44LTcuOSAxMC04LjIgNTguOC04LjIgNDMuOSAwIDQ1LjQgLjEgNTEuOCAzLjQgOS4zIDQuNyAxMy40IDExLjMgMTMuNCAyMS45IDAgOS41LTMuOCAxNi4yLTEyLjMgMjEuNi00LjYgMi45LTcuMyAzLjEtNTAuMyAzLjMtMjYuNSAuMi00Ny43LS40LTUwLjgtMS4yLTE2LjYtNC43LTIyLjgtMjguNS0xMC42LTQwLjh6TTMxNi4zIDM1OC45bC0xNC45IDIuNC03Ny41IC45Yy02OC4xIC44LTg3LjMtLjQtOTAuOS0yLTcuMS0zLjEtMTMuOC0xMS43LTE0LjktMTkuNC0xLjEtNy4zIDIuNi0xNy4zIDguMi0yMi40IDcuMS02LjQgMTAuMi02LjYgOTcuMy02LjcgODkuNi0uMSA4OS4xLS4xIDk3LjYgNy44IDEyLjEgMTEuMyA5LjUgMzEuMi00LjkgMzkuNHoiXX0sSWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludmlzaW9uIixpY29uOls0NDgsNTEyLFtdLCJmN2IwIiwiTTQwNy40IDMyTDQwLjYgMzJDMTguMiAzMiAwIDUwLjIgMCA3Mi42TDAgNDM5LjRDMCA0NjEuOCAxOC4yIDQ4MCA0MC42IDQ4MGwzNjYuOCAwYzIyLjQgMCA0MC42LTE4LjIgNDAuNi00MC42bDAtMzY2LjhDNDQ4IDUwLjIgNDI5LjggMzIgNDA3LjQgMzJ6TTE3Ni4xIDE0NS42Yy40IDIzLjQtMjIuNCAyNy4zLTI2LjYgMjcuNC0xNC45IDAtMjcuMS0xMi0yNy4xLTI3IC4xLTM1LjIgNTMuMS0zNS41IDUzLjctLjR6TTMzMi44IDM3N2MtNjUuNiAwLTM0LjEtNzQtMjUtMTA2LjYgMTQuMS00Ni40LTQ1LjItNTktNTkuOSAuN2wtMjUuOCAxMDMuMy00NS4xIDAgOC4xLTMyLjVjLTMxLjUgNTEuOC05NC42IDQ0LjQtOTQuNi00LjMgLjEtMTQuMyAuOS0xNCAyMy0xMDQuMWwtMzEuOCAwIDkuNy0zNS42IDc2LjQgMGMtMzMuNiAxMzMuNy0zMi42IDEyNi45LTMyLjkgMTM4LjIgMCAyMC45IDQwLjkgMTMuNSA1Ny40LTIzLjJsMTkuOC03OS40LTMyLjMgMCA5LjctMzUuNiA2OC44IDAtOC45IDQwLjVjNDAuNS03NS41IDEyNy45LTQ3LjggMTAxLjggMzgtMTQuMiA1MS4xLTE0LjYgNTAuNy0xNC45IDU4LjggMCAxNS41IDE3LjUgMjIuNiAzMS44LTE2LjlMMzg2IDMyNWMtMTAuNSAzNi43LTI5LjQgNTItNTMuMiA1MnoiXX0sUGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhY2Vib29rLWYiLGljb246WzMyMCw1MTIsW10sImYzOWUiLCJNODAgMjk5LjNsMCAyMTIuNyAxMTYgMCAwLTIxMi43IDg2LjUgMCAxOC05Ny44LTEwNC41IDAgMC0zNC42YzAtNTEuNyAyMC4zLTcxLjUgNzIuNy03MS41IDE2LjMgMCAyOS40IC40IDM3IDEuMmwwLTg4LjdDMjkxLjQgNCAyNTYuNCAwIDIzNi4yIDAgMTI5LjMgMCA4MCA1MC41IDgwIDE1OS40bDAgNDIuMS02NiAwIDAgOTcuOCA2NiAweiJdfSxOZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2VudG9zIixpY29uOls0NDgsNTEyLFtdLCJmNzg5IiwiTTI4OS42IDk3LjVsMzEuNiAzMS43LTc2LjMgNzYuNSAwLTEwOC4yIDQ0LjcgMHpNMTI3LjIgMTI5LjJsNzYuMyA3Ni41IDAtMTA4LjItNDQuNyAwLTMxLjYgMzEuN3ptNDEuNS00MS42bDQ0LjcgMCAwIDEyNy45IDEwLjggMTAuOCAxMC44LTEwLjggMC0xMjcuOSA0NC43IDAtNTUuNS01NS42LTU1LjUgNTUuNnptMjYuMiAxNjguMWwtMTAuOC0xMC44LTEyOC42IDAgMC00NC44LTU1LjUgNTUuNiA1NS41IDU1LjYgMC00NC44IDEyOC42IDAgMTAuOC0xMC44ek0yNzQuMiAyMzVsMTA3LjkgMCAwLTQ0LjgtMzEuNi0zMS43LTc2LjMgNzYuNXptMTczLjMgMjAuN2wtNTUuNS01NS42IDAgNDQuOC0xMjcuNyAwLTEwLjggMTAuOCAxMC44IDEwLjggMTI3LjcgMCAwIDQ0LjggNTUuNS01NS42ek02NS40IDE3Ni4ybDMyLjUtMzEuNyA5MC4zIDkwLjUgMTUuMyAwIDAtMTUuMy05MC4zLTkwLjUgMzEuNi0zMS43LTc5LjQgMCAwIDc4Ljd6TTM4Mi4xIDk3LjVsLTc4LjUgMCAzMS42IDMxLjctOTAuMyA5MC41IDAgMTUuMyAxNS4zIDAgOTAuMy05MC41IDMxLjYgMzEuNyAwLTc4Ljd6TTIwMy41IDQxMy45bDAtMTA4LjEtNzYuMyA3Ni41IDMxLjYgMzEuNyA0NC43IDAgMC0uMXpNNjUuNCAyMzVsMTA4LjggMC03Ni4zLTc2LjUtMzIuNSAzMS43IDAgNDQuOHpNMzgyLjEgMzM1LjJsLTMxLjYgMzEuNy05MC4zLTkwLjUtMTUuMyAwIDAgMTUuMyA5MC4zIDkwLjUtMzEuNiAzMS43IDc4LjUgMCAwLTc4Ljd6bTAtNTguOGwtMTA3LjkgMCA3Ni4zIDc2LjUgMzEuNi0zMS43IDAtNDQuOHpNMzIxLjIgMzgyLjJsLTc2LjMtNzYuNSAwIDEwOC4xIDQ0LjcgMCAzMS42LTMxLjZ6TTk3LjkgMzUyLjlsNzYuMy03Ni41LTEwOC44IDAgMCA0NC44IDMyLjUgMzEuN3ptMTgxLjggNzAuOWwtNDQuNyAwIDAtMTI3LjktMTAuOC0xMC44LTEwLjggMTAuOCAwIDEyNy45LTQ0LjcgMCA1NS41IDU1LjYgNTUuNS01NS42ek0xMTMuMiAzODIuMmw5MC4zLTkwLjUgMC0xNS4zLTE1LjMgMC05MC4zIDkwLjUtMzIuNS0zMS43IDAgNzguNyA3OS40IDAtMzEuNi0zMS43eiJdfSxPZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NhbGV3YXkiLGljb246WzQ0OCw1MTIsW10sImU4NTkiLCJNMjQzLjQgMTE3LjNsLTg0LjMgMGMtMTguNSAyLjEtMzIuNyAxNy41LTMzLjQgMzZsMCAxMjEuOWMwIDguMiAzLjIgMTUuMyA4LjUgMjAuN3MxMi41IDguNiAyMC42IDguNmMxNiAwIDI5LjItMTMuMiAyOS4yLTI5LjJsMC03Ny40YzAtMTIuMSAxMC0yMi4xIDIyLjEtMjIuMWwzOC4xIDBjOC4yIDAgMTUuMy0zLjIgMjAuNi04LjZzOC41LTEyLjggOC41LTIxYzAtMTYtMTMuOS0yOC45LTI5LjktMjguOXpNMjA1LjMgMzk1LjRsODQuMyAwYzE4LjUtMi4xIDMyLjctMTcuNSAzMy40LTM2bDAtMTIxLjljMC04LjItMy4yLTE1LjMtOC41LTIwLjdzLTEyLjUtOC42LTIwLjYtOC42Yy0xNiAwLTI5LjIgMTMuMi0yOS4yIDI5LjJsMCA3Ny40YzAgMTIuMS0xMCAyMi4xLTIyLjEgMjIuMWwtMzguMSAwYy04LjIgMC0xNS4zIDMuMi0yMC42IDguNnMtOC41IDEyLjgtOC41IDIxYy40IDE2IDEzLjkgMjguOSAyOS45IDI4Ljl6TTEwNC4zIDBMMjU3LjYgMGMxMDEgMCAxODIuNSA4MS42IDE4Mi4xIDE4Mi45bDAgMjQyLjhjLTQuNiA0Ni00MiA4Mi40LTg4LjIgODYuM0wxOTAgNTEyQzg5LjMgNTEyIDcuNSA0MzAgNy41IDMyOS4xTDcuNSA5N2MwLTUzLjUgNDMuNC05NyA5Ni44LTk3ek0zODEuNyAxODIuOWMwLTY4LjUtNTUuOS0xMjQuNC0xMjQuMi0xMjQuNGwtMTUzIDBDODMuMyA1OC41IDY2LjIgNzUuNiA2Ni4yIDk3bDAgMjMyLjFjMCA2OC44IDU1LjUgMTI0LjQgMTI0LjIgMTI0LjRsMTU4LjcgMGMxNi43LTIuMSAyOS45LTE1IDMyLjctMzEuNGwwLTIzOS4yeiJdfSxSZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYW1hem9uLXBheSIsaWNvbjpbNTc2LDUxMixbXSwiZjQyZCIsIk0xMjQuNyAyMDEuOGMuMS0xMS44IDAtMjMuNSAwLTM1LjNsMC0zNS4zYzAtMS4zIC40LTIgMS40LTIuNyAxMS41LTggMjQuMS0xMi4xIDM4LjItMTEuMSAxMi41IC45IDIyLjcgNyAyOC4xIDIxLjcgMy4zIDguOSA0LjEgMTguMiA0LjEgMjcuNyAwIDguNy0uNyAxNy4zLTMuNCAyNS42LTUuNyAxNy44LTE4LjcgMjQuNy0zNS43IDIzLjktMTEuNy0uNS0yMS45LTUtMzEuNC0xMS43LS45LS44LTEuNC0xLjYtMS4zLTIuOHptMTU0LjkgMTQuNmM0LjYgMS44IDkuMyAyIDE0LjEgMS41IDExLjYtMS4yIDIxLjktNS43IDMxLjMtMTIuNSAuOS0uNiAxLjMtMS4zIDEuMy0yLjUtLjEtMy45IDAtNy45IDAtMTEuOCAwLTQtLjEtOCAwLTEyIDAtMS40LS40LTItMS44LTIuMi03LS45LTEzLjktMi4yLTIwLjktMi45LTctLjYtMTQtLjMtMjAuOCAxLjktNi43IDIuMi0xMS43IDYuMi0xMy43IDEzLjEtMS42IDUuNC0xLjYgMTAuOCAuMSAxNi4yIDEuNiA1LjUgNS4yIDkuMiAxMC40IDExLjJ6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM2OC41IDEwMy45Yy40IDEuNyAuOSAzLjQgMS42IDUuMSAxNi41IDQwLjYgMzIuOSA4MS4zIDQ5LjUgMTIxLjkgMS40IDMuNSAxLjcgNi40IC4yIDkuOS0yLjggNi4yLTQuOSAxMi42LTcuOCAxOC43LTIuNiA1LjUtNi43IDkuNS0xMi43IDExLjItNC4yIDEuMS04LjUgMS4zLTEyLjkgLjktMi4xLS4yLTQuMi0uNy02LjMtLjgtMi44LS4yLTQuMiAxLjEtNC4zIDQtLjEgMi44LS4xIDUuNiAwIDguMyAuMSA0LjYgMS42IDYuNyA2LjIgNy41IDQuNyAuOCA5LjQgMS42IDE0LjIgMS43IDE0LjMgLjMgMjUuNy01LjQgMzMuMS0xNy45IDIuOS00LjkgNS42LTEwLjEgNy43LTE1LjQgMTkuOC01MC4xIDM5LjUtMTAwLjMgNTkuMi0xNTAuNSAuNi0xLjUgMS4xLTMgMS4zLTQuNiAuNC0yLjQtLjctMy42LTMuMS0zLjctNS42LS4xLTExLjEgMC0xNi43IDAtMy4xIDAtNS4zIDEuNC02LjQgNC4zLS40IDEuMS0uOSAyLjMtMS4zIDMuNGwtMjkuMSA4My43Yy0yLjEgNi4xLTQuMiAxMi4xLTYuNSAxOC42LS40LS45LS42LTEuNC0uOC0xLjktMTAuOC0yOS45LTIxLjYtNTkuOS0zMi40LTg5LjgtMS43LTQuNy0zLjUtOS41LTUuMy0xNC4yLS45LTIuNS0yLjctNC01LjQtNC02LjQtLjEtMTIuOC0uMi0xOS4yLS4xLTIuMiAwLTMuMyAxLjYtMi44IDMuN3pNMjQyLjQgMjA2YzEuNyAxMS43IDcuNiAyMC44IDE4IDI2LjYgOS45IDUuNSAyMC43IDYuMiAzMS43IDQuNiAxMi43LTEuOSAyMy45LTcuMyAzMy44LTE1LjUgLjQtLjMgLjgtLjYgMS40LTEgLjUgMy4yIC45IDYuMiAxLjUgOS4yIC41IDIuNiAyLjEgNC4zIDQuNSA0LjQgNC42IC4xIDkuMSAuMSAxMy43IDAgMi4zLS4xIDMuOC0xLjYgNC0zLjkgLjEtLjggLjEtMS42IC4xLTIuM2wwLTg4LjhjMC0zLjYtLjItNy4yLS43LTEwLjgtMS42LTEwLjgtNi4yLTE5LjctMTUuOS0yNS40LTUuNi0zLjMtMTEuOC01LTE4LjItNS45LTMtLjQtNi0uNy05LjEtMS4xbC0xMCAwYy0uOCAuMS0xLjYgLjMtMi41IC4zLTguMiAuNC0xNi4zIDEuNC0yNC4yIDMuNS01LjEgMS4zLTEwIDMuMi0xNSA0LjktMyAxLTQuNSAzLjItNC40IDYuNSAuMSAyLjgtLjEgNS42IDAgOC4zIC4xIDQuMSAxLjggNS4yIDUuNyA0LjEgNi41LTEuNyAxMy4xLTMuNSAxOS43LTQuOCAxMC4zLTEuOSAyMC43LTIuNyAzMS4xLTEuMiA1LjQgLjggMTAuNSAyLjQgMTQuMSA3IDMuMSA0IDQuMiA4LjggNC40IDEzLjcgLjMgNi45IC4yIDEzLjkgLjMgMjAuOCAwIC40LS4xIC43LS4yIDEuMi0uNCAwLS44IDAtMS4xLS4xLTguOC0yLjEtMTcuNy0zLjYtMjYuOC00LjEtOS41LS41LTE4LjkgLjEtMjcuOSAzLjItMTAuOCAzLjgtMTkuNSAxMC4zLTI0LjYgMjAuOC00LjEgOC4zLTQuNiAxNy0zLjQgMjUuOHpNOTguNyAxMDYuOWwwIDE3NS4zYzAgLjggMCAxLjcgLjEgMi41IC4yIDIuNSAxLjcgNC4xIDQuMSA0LjIgNS45IC4xIDExLjggLjEgMTcuNyAwIDIuNSAwIDQtMS43IDQuMS00LjEgLjEtLjggLjEtMS43IC4xLTIuNWwwLTYwLjdjLjkgLjcgMS40IDEuMiAxLjkgMS42IDE1IDEyLjUgMzIuMiAxNi42IDUxLjEgMTIuOSAxNy4xLTMuNCAyOC45LTEzLjkgMzYuNy0yOS4yIDUuOC0xMS42IDguMy0yNC4xIDguNy0zNyAuNS0xNC4zLTEtMjguNC02LjgtNDEuNy03LjEtMTYuNC0xOC45LTI3LjMtMzYuNy0zMC45LTIuNy0uNi01LjUtLjgtOC4yLTEuMmwtNyAwYy0xLjIgLjItMi40IC4zLTMuNiAuNS0xMS43IDEuNC0yMi4zIDUuOC0zMS44IDEyLjctMiAxLjQtMy45IDMtNS45IDQuNS0uMS0uNS0uMy0uOC0uNC0xLjItLjQtMi4zLS43LTQuNi0xLjEtNi45LS42LTMuOS0yLjUtNS41LTYuNC01LjZsLTkuNyAwYy01LjktLjEtNi45IDEtNi45IDYuOHpNNDkzLjYgMzM5Yy0yLjctLjctNS4xIDAtNy42IDEtNDMuOSAxOC40LTg5LjUgMzAuMi0xMzYuOCAzNS44LTE0LjUgMS43LTI5LjEgMi44LTQzLjcgMy4yLTI2LjYgLjctNTMuMi0uOC03OS42LTQuMy0xNy44LTIuNC0zNS41LTUuNy01My05LjktMzctOC45LTcyLjctMjEuNy0xMDYuNy0zOC44LTguOC00LjQtMTcuNC05LjMtMjYuMS0xNC0zLjgtMi4xLTYuMi0xLjUtOC4yIDIuMWwwIDEuN2MxLjIgMS42IDIuMiAzLjQgMy43IDQuOCAzNiAzMi4yIDc2LjYgNTYuNSAxMjIgNzIuOSAyMS45IDcuOSA0NC40IDEzLjcgNjcuMyAxNy41IDE0IDIuMyAyOCAzLjggNDIuMiA0LjUgMyAuMSA2IC4yIDkgLjQgLjcgMCAxLjQgLjIgMi4xIC4zbDE3LjcgMGMuNy0uMSAxLjQtLjMgMi4xLS4zIDE0LjktLjQgMjkuOC0xLjggNDQuNi00IDIxLjQtMy4yIDQyLjQtOC4xIDYyLjktMTQuNyAyOS42LTkuNiA1Ny43LTIyLjQgODMuNC00MC4xIDIuOC0xLjkgNS43LTMuOCA4LTYuMiA0LjMtNC40IDIuMy0xMC40LTMuMy0xMS45ek01NDQgMzExLjNjLS44LTQuMi00LTUuOC03LjYtNy01LjctMS45LTExLjYtMi44LTE3LjYtMy4zLTExLS45LTIyLS40LTMyLjggMS42LTEyIDIuMi0yMy40IDYuMS0zMy41IDEzLjEtMS4yIC44LTIuNCAxLjgtMy4xIDMtLjYgLjktLjcgMi4zLS41IDMuNCAuMyAxLjMgMS43IDEuNiAzIDEuNSAuNiAwIDEuMiAwIDEuOC0uMWwxOS41LTIuMWM5LjYtLjkgMTkuMi0xLjUgMjguOC0uOCA0LjEgLjMgOC4xIDEuMiAxMiAyLjIgNC4zIDEuMSA2LjIgNC40IDYuNCA4LjcgLjMgNi43LTEuMiAxMy4xLTIuOSAxOS41LTMuNSAxMi45LTguMyAyNS40LTEzLjMgMzcuOC0uMyAuOC0uNyAxLjctLjggMi41LS40IDIuNSAxIDQgMy40IDMuNSAxLjQtLjMgMy0xLjEgNC0yLjEgMy43LTMuNiA3LjUtNy4yIDEwLjYtMTEuMiAxMC43LTEzLjggMTctMjkuNiAyMC43LTQ2LjYgLjctMyAxLjItNi4xIDEuNy05LjEgLjItNC43IC4yLTkuNiAuMi0xNC41eiJdfSxGZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWJheSIsaWNvbjpbNjQwLDUxMixbXSwiZjRmNCIsIk02MDYuNSAxODkuNWwtNTQuOCAxMDkuOS01NC45LTEwOS45LTM3LjUgMCAxMC45IDIwLjZjLTExLjUtMTktMzUuOS0yNi02My4zLTI2LTMxLjggMC02Ny45IDguNy03MS41IDQzLjFsMzMuNyAwYzEuNC0xMy44IDE1LjctMjEuOCAzNS0yMS44IDI2IDAgNDEgOS42IDQxIDMzbDAgMy40Yy0xMi43IDAtMjggLjEtNDEuNyAuNC00Mi40IC45LTY5LjYgMTAtNzYuNyAzNC40IDEtNS4yIDEuNS0xMC42IDEuNS0xNi4yIDAtNTIuMS0zOS43LTc2LjItNzUuNC03Ni4yLTIxLjMgMC00MyA1LjUtNTguNyAyNC4ybDAtODAuNi0zMi4xIDAgMCAxNjkuNWMwIDEwLjMtLjYgMjIuOS0xLjEgMzMuMWwzMS41IDBjLjctNi4zIDEuMS0xMi45IDEuMS0xOS41IDEzLjYgMTYuNiAzNS40IDI0LjkgNTguNyAyNC45IDM2LjkgMCA2NC45LTIxLjkgNzMuMy01NC4yLS41IDIuOC0uNyA1LjgtLjcgOSAwIDI0LjEgMjEuMSA0NSA2MC42IDQ1IDI2LjYgMCA0NS44LTUuNyA2MS45LTI1LjUgMCA2LjYgLjMgMTMuMyAxLjEgMjAuMmwyOS44IDBjLS43LTguMi0xLTE3LjUtMS0yNi44bDAtNjUuNmMwLTkuMy0xLjctMTcuMi00LjgtMjMuOGw2MS41IDExNi4xLTI4LjUgNTQuMSAzNS45IDAgOTkuMi0xOTQuOC0zNCAwek0yNDQuMiAzMTMuOGMtMjkuNiAwLTUwLjItMjEuNS01MC4yLTUzLjggMC0zMi40IDIwLjYtNTMuOCA1MC4yLTUzLjggMjkuOCAwIDUwLjIgMjEuNCA1MC4yIDUzLjggMCAzMi4zLTIwLjQgNTMuOC01MC4yIDUzLjh6bTIwMC45LTQ3LjNjMCAzMC0xNy45IDQ4LjQtNTEuNiA0OC40LTI1LjEgMC0zNS0xMy40LTM1LTI1LjggMC0xOS4xIDE4LjEtMjQuNCA0Ny4yLTI1LjMgMTMuMS0uNSAyNy42LS42IDM5LjQtLjZsMCAzLjN6TTMzLjIgMjY4LjFsMTI4LjggMCAwLTguNWMwLTUxLjctMzMuMS03NS40LTc4LjQtNzUuNC01Ni44IDAtODMgMzAuOC04MyA3Ny42IDAgNDIuNSAyNS4zIDc0IDgyLjUgNzQgMzEuNCAwIDY4LTExLjcgNzQuNC00Ni4xbC0zMy4xIDBjLTEyIDM1LjgtODcuNyAzNi43LTkxLjItMjEuNnptOTUtMjEuNGwtOTQuNCAwYzYuOS01Ni42IDkyLjEtNTQuNyA5NC40IDB6Il19LEJkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb250YW8iLGljb246WzUxMiw1MTIsW10sImYyNmQiLCJNNDUuNCAzMDVjMTQuNCA2Ny4xIDI2LjQgMTI5IDY4LjIgMTc1TDM0IDQ4MGMtMTguNyAwLTM0LTE1LjItMzQtMzRMMCA2NkMwIDQ3LjMgMTUuMiAzMiAzNCAzMmw1Ny43IDBjLTEzLjggMTIuNi0yNi4xIDI3LjItMzYuOSA0My42LTQ1LjQgNzAtMjcgMTQ2LjgtOS40IDIyOS40ek00NzggMzJsLTkwLjIgMGMyMS40IDIxLjQgMzkuMiA0OS41IDUyLjcgODQuMUwzMDMuNCAxNDUuNGMtMTQuOS0yOS0zNy44LTUzLjMtODIuNi00My45LTI0LjYgNS4zLTQxIDE5LjMtNDguMyAzNC42LTguOCAxOC43LTEzLjIgMzkuOCA4LjIgMTQwLjMgMjEuMSAxMDAuMiAzMy43IDExNy43IDQ5LjUgMTMxLjIgMTIuOSAxMS4xIDMzLjQgMTcgNTguMyAxMS43IDQ0LjUtOS40IDU1LjctNDAuNyA1Ny40LTczLjJsMTM3LjQtMjkuNmMzLjIgNzEuNS0xOC43IDEyNS4yLTU3LjQgMTYzLjZsNTIuMSAwYzE4LjcgMCAzNC0xNS4yIDM0LTM0TDUxMiA2NmMwLTE4LjgtMTUuMi0zNC0zNC0zNHoiXX0sSGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsbG8iLGljb246WzUxMiw1MTIsW10sImY1ZjEiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zOTkuOCAyOTMuMkMzODMuMyAzNTguNSAzMjMuOCA0MDQuOCAyNTYgNDA0LjhTMTI4LjcgMzU4LjUgMTEyLjIgMjkzLjJjLTEuNi03LjQgMi41LTE1LjcgOS45LTE3LjRzMTUuNyAyLjUgMTcuNCA5LjljMTQgNTIuOSA2MiA5MC4xIDExNi42IDkwLjFzMTAyLjUtMzcuMiAxMTYuNi05MC4xYzEuNy03LjQgOS45LTEyLjQgMTcuNC05LjkgNy40IDEuNyAxMi40IDkuOSA5LjkgMTcuNHoiXX0scWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpc3RyaXgiLGljb246WzQ0OCw1MTIsW10sImYzZWUiLCJNNDQ4IDQ0OUwzMDEuMiAzMDAuMmMyMC0yNy45IDMxLjktNjIuMiAzMS45LTk5LjIgMC05My4xLTc0LjctMTY4LjktMTY2LjUtMTY4LjktOTEuOS0uMS0xNjYuNiA3NS43LTE2Ni42IDE2OC44Uzc0LjcgMzY5LjggMTY2LjUgMzY5LjhjMzkuOCAwIDc2LjMtMTQuMiAxMDUtMzcuOUw0MTcuNSA0ODAgNDQ4IDQ0OXpNMTY2LjUgMzMwLjhjLTcwLjYgMC0xMjguMS01OC4zLTEyOC4xLTEyOS45Uzk1LjkgNzEgMTY2LjUgNzEgMjk0LjYgMTI5LjMgMjk0LjYgMjAwLjkgMjM3LjIgMzMwLjggMTY2LjUgMzMwLjh6Il19LFZkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwZXJpc2NvcGUiLGljb246WzQ0OCw1MTIsW10sImYzZGEiLCJNMzcwIDYzLjZjLTM4LjYtNDEtODkuNS02My42LTE0My40LTYzLjYtMTE0LjcgMC0yMDguMSA5Ni4yLTIwOC4xIDIxNC40IDAgNzUuMSA1Ny44IDE1OS44IDgyLjcgMTkyLjcgMzYuNiA0OC40IDkxLjQgMTA0LjkgMTI1LjQgMTA0LjkgNDEuNiAwIDExMi45LTk0LjIgMTIwLjktMTA1IDI0LjYtMzMuMSA4Mi0xMTguMyA4Mi0xOTIuNiAwLTU2LjUtMjEuMS0xMTAuMS01OS41LTE1MC44ek0yMjYuNiA0OTMuOWMtNDIuNSAwLTE5MC0xNjcuMy0xOTAtMjc5LjQgMC0xMDcuNCA4My45LTE5Ni4zIDE5MC0xOTYuMyAxMDAuOCAwIDE4NC43IDg5IDE4NC43IDE5Ni4zIC4xIDExMi4xLTE0Ny40IDI3OS40LTE4NC43IDI3OS40ek0zMzggMjA2LjhjMCA1OS4xLTUxLjEgMTA5LjctMTEwLjggMTA5LjctMTAwLjYgMC0xNTAuNy0xMDguMi05Mi45LTE4MS44bDAgLjRjMCAyNC41IDIwLjEgNDQuNCA0NC44IDQ0LjRzNDQuOC0xOS45IDQ0LjgtNDQuNGMwLTE4LjItMTEuMS0zMy44LTI2LjktNDAuNyA3Ni42LTE5LjIgMTQxIDM5LjMgMTQxIDExMi40eiJdfSxqZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXhwZWRpdGVkc3NsIixpY29uOls1MTIsNTEyLFtdLCJmMjNlIiwiTTI1NiA0My40YTIxMi42IDIxMi42IDAgMSAwIDAgNDI1LjIgMjEyLjYgMjEyLjYgMCAxIDAgMC00MjUuMnpNMTU4LjYgMTc2LjNjMC01My43IDQzLjctOTcuNCA5Ny40LTk3LjRzOTcuNCA0My43IDk3LjQgOTcuNGwwIDI2LjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNmMwLTgyLjEtMTI0LTgyLjEtMTI0IDBsMCAyNi42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjYgLjIgMHpNMzk3LjcgMzgwYzAgOS43LTggMTcuNy0xNy43IDE3LjdsLTI0OCAwYy05LjcgMC0xNy43LTgtMTcuNy0xNy43bDAtMTQxLjdjMC05LjcgOC0xNy43IDE3LjctMTcuN2wyNDggMGM5LjcgMCAxNy43IDggMTcuNyAxNy43bDAgMTQxLjd6bS0yNDgtMTM3LjNsMCAxMzIuOWMwIDIuNS0xLjkgNC40LTQuNCA0LjRsLTguOSAwYy0yLjUgMC00LjQtMS45LTQuNC00LjRsMC0xMzIuOWMwLTIuNSAxLjktNC40IDQuNC00LjRsOC45IDBjMi41IDAgNC40IDEuOSA0LjQgNC40em0xNDEuNyA0OC43YzAgMTMtNy4yIDI0LjQtMTcuNyAzMC40bDAgMzEuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0zMS42Yy0xMC41LTYuMS0xNy43LTE3LjQtMTcuNy0zMC40IDAtMTkuNyAxNS44LTM1LjQgMzUuNC0zNS40czM1LjUgMTUuOCAzNS41IDM1LjR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCAxNy43YTIzMC4zIDIzMC4zIDAgMSAxIDAgNDYwLjYgMjMwLjMgMjMwLjMgMCAxIDEgMC00NjAuNnoiXX0sVWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5hcHN0ZXIiLGljb246WzUxMiw1MTIsW10sImYzZDIiLCJNMzA2LjMgMzczLjZjLTE0LjIgMTMuNi0zMS4zIDI0LjEtNTAuNCAzMC41LTE5LTYuNC0zNi4yLTE2LjktNTAuMy0zMC41bDEwMC43IDB6bTQ0LTE5OS42YzIwLTE2LjkgNDMuNi0yOS4yIDY5LjYtMzYuMmwwIDE2MS4yYzAgMjE5LjQtMzI4IDIxNy42LTMyOCAuM2wwLTE2MS42YzI1LjkgNi45IDQ5LjYgMTkuNiA2OS41IDM2LjQgNTYuOC00MCAxMzIuNS0zOS45IDE4OC45LS4xek0xNDEuNSAxMTUuNWM2NC40LTYwIDE2NC4zLTYwLjEgMjI4LjktLjItNy4xIDMuNS0xMy45IDcuMy0yMC42IDExLjUtNTguNy0zMC41LTEyOS4yLTMwLjQtMTg3LjkgLjEtNi4zLTQtMTMuOS04LjItMjAuNC0xMS40ek01MS44IDkzLjJsMCA2OS4zYy01OC40IDM2LjUtNTguNCAxMjEuMSAuMSAxNTguMyAyNi40IDI0NS4xIDM4MS43IDI0MC4zIDQwNy42IDEuNWwuMy0xLjdjNTguNy0zNi4zIDU4LjktMTIxLjcgLjItMTU4LjJsMC02OS4yYy0xNy4zIC41LTM0IDMtNTAuMSA3LjQtODItOTEuNS0yMjUuNS05MS41LTMwNy41IC4xLTE2LjMtNC40LTMzLjEtNy01MC42LTcuNXpNMjY3LjIgMzUyczM2LS4zIDYxLjMtMS41YzEwLjItLjUgMjEuMS00IDI1LjUtNi41IDI2LjMtMTUuMSAyNS40LTM5LjIgMjYuMi00Ny40LTc5LjUtLjYtOTkuOS0zLjktMTEzIDU1LjR6TTEzMS43IDI5Ni43Yy44IDguMi0uMSAzMi4zIDI2LjIgNDcuNCA0LjQgMi41IDE1LjIgNiAyNS41IDYuNSAyNS4zIDEuMSA2MS4zIDEuNSA2MS4zIDEuNS0xMy4yLTU5LjQtMzMuNy01Ni4xLTExMy01NS40ek0zMDAuOCA0MjAuMWMtMy4yLTUuMy02LjktNy4zLTYuOS03LjMtMjQuOCA3LjMtNTIuMiA2LjktNzUuOSAwIDAgMC0yLjkgMS41LTYuNCA2LjYtMi44IDQuMS0zLjcgOS42LTMuNyA5LjYgMjkuMSAxNy42IDY3LjEgMTcuNiA5Ni4yIDAtLjEtLjEtLjMtNC0zLjMtOC45eiJdfSxXZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVsaWNpb3VzIixpY29uOls0NDgsNTEyLFtdLCJmMWE1IiwiTTQ0Ni42IDY4Yy0uNC0xLjUtLjktMy0xLjQtNC41LS45LTIuNS0yLTQuOC0zLjMtNy4xLTEuNC0yLjQtMy00LjgtNC43LTYuOS0yLjEtMi41LTQuNC00LjgtNi45LTYuOC0xLjEtLjktMi4yLTEuNy0zLjMtMi41LTEuMy0uOS0yLjYtMS43LTQtMi40LTEuOC0xLTMuNi0xLjgtNS41LTIuNS0xLjctLjctMy41LTEuMy01LjQtMS43LTMuOC0xLTcuOS0xLjUtMTItMS41bC0zNTIgMEMyMS42IDMyIC4xIDUzLjUgLjEgODBsMCAzNTJjMCA0LjEgLjUgOC4yIDEuNSAxMiAyIDcuNyA1LjggMTQuNiAxMSAyMC4zIDEgMS4xIDIuMSAyLjIgMy4zIDMuMyA1LjcgNS4yIDEyLjYgOSAyMC4zIDExIDMuOCAxIDcuOSAxLjUgMTIgMS41bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyLjFjLS4xLTQuMS0uNi04LjItMS42LTEyek00MTYuMSA0MzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNzYgMCAwLTE5Mi0xOTIgMCAwLTE3NmMwLTguOCA3LjItMTYgMTYtMTZsMTc2IDAgMCAxOTIgMTkyIDAgMCAxNzZ6Il19LEdkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJndWlsZGVkIixpY29uOls0NDgsNTEyLFtdLCJlMDdlIiwiTTQ0My45IDY0TDUgNjRjMCAxMDMuMyAyMi4yIDE4MC4xIDQzLjQgMjIyLjQgNjQuMSAxMjcuOCAxNzYgMTYxLjYgMTc3LjMgMTYxLjYgNTUuNy0yMC41IDEwNC41LTU2LjMgMTQwLjYtMTAzLjUgMjUuOS0zMy45IDUzLjEtODcuMiA2NS45LTE0NS44bC0yNTkuOSAwYzQuMSAzNi40IDIyLjIgNjcuOSA0NS4xIDg2LjlsODguNiAwYy0xNyAyOC4yLTQ4LjIgNTQuNC04MC41IDY5LjUtMzEuMi0xMy4zLTY5LjEtNDYuNS05Ni41LTk4LjQtMjYuNy01My44LTI3LjEtMTA1LjktMjcuMS0xMDUuOWwzMzYuMSAwYzQtMjguOCA1LjktNTcuOSA1LjktODYuOXoiXX0sWWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9ic2lkaWFuIixpY29uOlszODQsNTEyLFtdLCJlODc5IiwiTTE0Mi4zIDMyMC4zYzM2LjEtOC4yIDcwLjMtMTEgMTAxLjMgLjcgMzEuOCAxMS45IDYxLjcgMzkuNiA4Ni43IDk2LTguMSAxNy43LTEyLjQgMzYuOS0xNC43IDUzLjgtMy4xIDIyLjktMjUuNCA0MC43LTQ3LjcgMzQuNi0zMS43LTguNy02OC4zLTIyLjMtMTAxLjMtMjQuOS00LjQtLjMtNTAuNi0zLjgtNTAuNi0zLjgtMS43LS4xLTMuNC0uNC01LjEtLjggMzEuNS02NC4yIDM4LjItMTE1LjEgMzEuMy0xNTUuNHpNNTUgMjE5LjVjMjIuMyAxNC44IDQ5LjUgMzcuOCA2NC4xIDczLjYgMTYuMSAzOS40IDE3LjggOTUuNy0yMS42IDE3Ni4xLTEtLjgtMi4xLTEuNy0zLTIuN0w3LjQgMzc2LjhjLTkuNS05LjgtMTIuMS0yNC40LTYuNS0zNi45IC42LTEuMyA0NC42LTk4LjMgNTQuMS0xMjAuNHptMjY0LjMtOTEuM2M0LjkgNi4yIDcuNCAxNCA3LjQgMjEuOSAuMSAyMC44IDEuOCA2My42IDEzLjMgOTEuMiAxMS4yIDI2LjggMzEuOCA1NS44IDQyLjUgNzAgNC4xIDUuNSA0LjggMTIuOSAxLjMgMTguNy03LjYgMTIuOC0yMi42IDM3LjUtNDMuOCA2OS4yLS4zIC40LS42IC45LS44IDEuMy0yNS4yLTUyLjItNTUuOS04MC43LTkwLjQtOTMuNi05LjYtMy42LTE5LjUtNi0yOS40LTcuMy0xNy44LTQ1LjgtMjMuMi03OS43LTIyLTEwNi40IDEuMi0yNy40IDkuMi00Ny44IDE4LjItNjYuMyA4LjktMTguMSAxOS44LTM1LjkgMjQuOS01NS43IDMuMi0xMi41IDQuMi0yNS44IDEuNy00MC45bDc3LjEgOTh6TTE4NC4yIDE0LjFjMTAuMy05LjIgMjQuNi0xMC44IDM2LjMtNS41IDkuNiAyNC42IDkuNyA0Mi44IDUuNiA1OC44LTQuNiAxNy44LTE0LjEgMzMtMjMuOSA1Mi44LTkuNiAxOS41LTE4LjQgNDItMTkuNyA3Mi4zLTEuMiAyNy45IDQuMSA2MS45IDIwLjQgMTA1LjgtMjEtLjYtNDIuNSAyLjYtNjMuNyA3LjQtMS43LTYuNC0zLjgtMTIuNC02LjEtMTguMi0xNy4zLTQyLjItNDkuOS02Ny45LTc0LjEtODMuMyAzLjEtMTguNyA4LjItNTUuNCAxMS42LTc3LjUgMS4yLTcuNiA0LjktMTQuNiAxMC43LTE5LjhMMTg0LjIgMTQuMXoiXX0sS2RyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inhib3giLGljb246WzUxMiw1MTIsW10sImY0MTIiLCJNMzY5LjkgMzE4LjJjNDQuMyA1NC4zIDY0LjcgOTguOCA1NC40IDExOC43LTcuOSAxNS4xLTU2LjcgNDQuNi05Mi42IDU1LjktMjkuNiA5LjMtNjguNCAxMy4zLTEwMC40IDEwLjItMzguMi0zLjctNzYuOS0xNy40LTExMC4xLTM5LTI3LjktMTguMi0zNC4yLTI1LjctMzQuMi00MC42IDAtMjkuOSAzMi45LTgyLjMgODkuMi0xNDIuMSAzMi0zMy45IDc2LjUtNzMuNyA4MS40LTcyLjYgOS40IDIuMSA4NC4zIDc1LjEgMTEyLjMgMTA5LjV6TTE4OC42IDE0My44Yy0yOS43LTI2LjktNTguMS01My45LTg2LjQtNjMuNC0xNS4yLTUuMS0xNi4zLTQuOC0yOC43IDguMS0yOS4yIDMwLjQtNTMuNSA3OS43LTYwLjMgMTIyLjQtNS40IDM0LjItNi4xIDQzLjgtNC4yIDYwLjUgNS42IDUwLjUgMTcuMyA4NS40IDQwLjUgMTIwLjkgOS41IDE0LjYgMTIuMSAxNy4zIDkuMyA5LjktNC4yLTExLS4zLTM3LjUgOS41LTY0IDE0LjMtMzkgNTMuOS0xMTIuOSAxMjAuMy0xOTQuNHptMzExLjYgNjMuNWMtMTYuOS04MC02Ny41LTEzMC4zLTc0LjYtMTMwLjMtNy4zIDAtMjQuMiA2LjUtMzYgMTMuOS0yMy4zIDE0LjUtNDEgMzEuNC02NC4zIDUyLjggNDIuNCA1My4zIDEwMi4yIDEzOS40IDEyMi45IDIwMi4zIDYuOCAyMC43IDkuNyA0MS4xIDcuNCA1Mi4zLTEuNyA4LjUtMS43IDguNSAxLjQgNC42IDYuMS03LjcgMTkuOS0zMS4zIDI1LjQtNDMuNSA3LjQtMTYuMiAxNS00MC4yIDE4LjYtNTguNyA0LjMtMjIuNSAzLjktNzAuOC0uOC05My40ek0xNDEuMyA0M2M0Ny43LTIuNSAxMDkuNyAzNC41IDExNC4zIDM1LjQgLjcgLjEgMTAuNC00LjIgMjEuNi05LjcgNjMuOS0zMS4xIDk0LTI1LjggMTA3LjQtMjUuMi02My45LTM5LjMtMTUyLjctNTAtMjMzLjktMTEuNy0yMy40IDExLjEtMjQgMTEuOS05LjQgMTEuMnoiXX0sWmRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVudGFwcGQiLGljb246WzY0MCw1MTIsW10sImY0MDUiLCJNNDAxLjUgNDkuOUMzMjEuNyAyMTAgMzE2LjkgMjAyLjQgMzEzLjYgMjIzLjFsLTUuMiAzMi44Yy0xLjkgMTItNi42IDIzLjUtMTMuNyAzMy40TDE0NS44IDQ5Ny4xYy03LjYgMTAuNi0yMC40IDE2LjItMzMuNCAxNC42LTQwLjMtNS03Ny44LTMyLjItOTUuMy02OC41LTUuNy0xMS44LTQuNS0yNS44IDMuMS0zNi40TDE2OS4xIDE5OC45YzcuMS05LjkgMTYuNC0xOCAyNy4yLTIzLjdsMjkuMy0xNS41YzE4LjUtOS44IDkuNy0xMS45IDEzNS42LTEzOC45IDEtNC44IDEtNy4zIDMuNi04IDMtLjcgNi42LTEgNi4zLTQuNmwtLjQtNC42Yy0uMi0xLjkgMS4zLTMuNiAzLjItMy42IDQuNS0uMSAxMy4yIDEuMiAyNS42IDEwIDEyLjMgOC45IDE2LjQgMTYuOCAxNy43IDIxLjEgLjYgMS44LS42IDMuNy0yLjQgNC4ybC00LjUgMS4xYy0zLjQgLjktMi41IDQuNC0yLjMgNy40IC4xIDIuOC0yLjMgMy42LTYuNSA2LjF6TTIzMC4zIDM2LjRjMy40IC45IDIuNSA0LjQgMi4zIDcuNC0uMiAyLjcgMi4xIDMuNSA2LjQgNiA3LjkgMTUuOSAxNS4zIDMwLjUgMjIuMiA0NCAuNyAxLjMgMi4zIDEuNSAzLjMgLjUgMTEuMi0xMiAyNC42LTI2LjIgNDAuNS00Mi42IDEuMy0xLjQgMS40LTMuNSAuMS00LjktOC04LjItMTYuNS0xNi45LTI1LjYtMjYuMS0xLTQuNy0xLTcuMy0zLjYtOC0zLS44LTYuNi0xLTYuMy00LjYgLjMtMy4zIDEuNC04LjEtMi44LTguMi00LjUtLjEtMTMuMiAxLjEtMjUuNiAxMC0xMi4zIDguOS0xNi40IDE2LjgtMTcuNyAyMS4xLTEuNCA0LjIgMy42IDQuNiA2LjggNS40ek02MjAuMiA0MDYuN0w0NzEuNCAxOTguOGMtMTMuMi0xOC41LTI2LjYtMjMuNC01Ni40LTM5LjEtMTEuMi01LjktMTQuMi0xMC45LTMwLjUtMjguOS0xLTEuMS0yLjktLjktMy42IC41LTQ2LjMgODguOC00Ny4xIDgyLjgtNDkgOTQuOC0xLjcgMTAuNy0xLjMgMjAgLjMgMjkuOCAxLjkgMTIgNi42IDIzLjUgMTMuNyAzMy40TDQ5NC44IDQ5Ny4yYzcuNiAxMC42IDIwLjIgMTYuMiAzMy4xIDE0LjcgNDAuMy00LjkgNzgtMzIgOTUuNy02OC42IDUuNC0xMS45IDQuMy0yNS45LTMuNC0zNi42eiJdfSxRZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBsdXMtZyIsaWNvbjpbNjQwLDUxMixbXSwiZjBkNSIsIk0zODYuMyAyMjguNWMxLjggOS43IDMuMSAxOS40IDMuMSAzMiAwIDEwOS44LTczLjYgMTg3LjUtMTg0LjQgMTg3LjUtMTA2LjEgMC0xOTItODUuOS0xOTItMTkyUzk4LjkgNjQgMjA1IDY0YzUxLjkgMCA5NS4xIDE4LjkgMTI4LjYgNTAuM2wtNTIuMSA1MGMtMTQuMS0xMy42LTM5LTI5LjYtNzYuNS0yOS42LTY1LjUgMC0xMTguOSA1NC4yLTExOC45IDEyMS4zUzEzOS41IDM3Ny4zIDIwNSAzNzcuM2M3NiAwIDEwNC41LTU0LjcgMTA5LTgyLjhsLTEwOSAwIDAtNjYgMTgxLjMgMCAwIDB6bTE4NS40IDYuNGwwLTU1LjctNTYgMCAwIDU1LjctNTUuNyAwIDAgNTYgNTUuNyAwIDAgNTUuNyA1NiAwIDAtNTUuNyA1NS43IDAgMC01Ni01NS43IDB6Il19LFhkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRodWItYWx0IixpY29uOls1MTIsNTEyLFtdLCJmMTEzIiwiTTIwMi4xIDMyOC43YzAgMjAuOS0xMC45IDU1LjEtMzYuNyA1NS4xcy0zNi43LTM0LjItMzYuNy01NS4xIDEwLjktNTUuMSAzNi43LTU1LjEgMzYuNyAzNC4yIDM2LjcgNTUuMXpNNDk2IDI3OC4yYzAgMzEuOS0zLjIgNjUuNy0xNy41IDk1LTM3LjkgNzYuNi0xNDIuMSA3NC44LTIxNi43IDc0LjgtNzUuOCAwLTE4Ni4yIDIuNy0yMjUuNi03NC44LTE0LjYtMjktMjAuMi02My4xLTIwLjItOTUgMC00MS45IDEzLjktODEuNSA0MS41LTExMy42LTUuMi0xNS44LTcuNy0zMi40LTcuNy00OC44IDAtMjEuNSA0LjktMzIuMyAxNC42LTUxLjggNDUuMyAwIDc0LjMgOSAxMDguOCAzNiAyOS02LjkgNTguOC0xMCA4OC43LTEwIDI3IDAgNTQuMiAyLjkgODAuNCA5LjIgMzQtMjYuNyA2My0zNS4yIDEwNy44LTM1LjIgOS44IDE5LjUgMTQuNiAzMC4zIDE0LjYgNTEuOCAwIDE2LjQtMi42IDMyLjctNy43IDQ4LjIgMjcuNSAzMi40IDM5IDcyLjMgMzkgMTE0LjJ6bS02NC4zIDUwLjVjMC00My45LTI2LjctODIuNi03My41LTgyLjYtMTguOSAwLTM3IDMuNC01NiA2LTE0LjkgMi4zLTI5LjggMy4yLTQ1LjEgMy4yLTE1LjIgMC0zMC4xLS45LTQ1LjEtMy4yLTE4LjctMi42LTM3LTYtNTYtNi00Ni44IDAtNzMuNSAzOC43LTczLjUgODIuNiAwIDg3LjggODAuNCAxMDEuMyAxNTAuNCAxMDEuM2w0OC4yIDBjNzAuMyAwIDE1MC42LTEzLjQgMTUwLjYtMTAxLjN6bS04Mi42LTU1LjFjLTI1LjggMC0zNi43IDM0LjItMzYuNyA1NS4xczEwLjkgNTUuMSAzNi43IDU1LjEgMzYuNy0zNC4yIDM2LjctNTUuMS0xMC45LTU1LjEtMzYuNy01NS4xeiJdfSxKZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2V0LXBvY2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZjI2NSIsIk00MDcuNiA2NGwtMzY3IDBDMTguNSA2NCAwIDgyLjUgMCAxMDQuNkwwIDIzOS44QzAgMzY0LjUgOTkuNyA0NjQgMjI0LjIgNDY0IDM0OC4yIDQ2NCA0NDggMzY0LjUgNDQ4IDIzOS44bDAtMTM1LjJDNDQ4IDgyLjIgNDMwLjMgNjQgNDA3LjYgNjR6bS0xNjIgMjY4LjVjLTEyLjQgMTEuOC0zMS40IDExLjEtNDIuNCAwLTExMy43LTEwOC45LTExNC45LTEwNS4xLTExNC45LTEyMy4yIDAtMTYuOSAxMy44LTMwLjcgMzAuNy0zMC43IDE3IDAgMTYuMSAzLjggMTA1LjIgODkuMyA5MC42LTg2LjkgODguNi04OS4zIDEwNS41LTg5LjNzMzAuNyAxMy44IDMwLjcgMzAuN2MwIDE3LjgtMi45IDE1LjctMTE0LjggMTIzLjJ6Il19LGU0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbGlkZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhNSIsIk0yNTIuOCAxNDguNmMwIDguOC0xLjYgMTcuNy0zLjQgMjYuNC01LjggMjcuOC0xMS42IDU1LjgtMTcuMyA4My42LTEuNCA2LjMtOC4zIDQuOS0xMy43IDQuOS0yMy44IDAtMzAuNS0yNi0zMC41LTQ1LjUgMC0yOS4zIDExLjItNjguMSAzOC41LTgzLjEgNC4zLTIuNSA5LjItNC4yIDE0LjEtNC4yIDExLjQgMCAxMi4zIDguMyAxMi4zIDE3Ljl6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM4NCAyNjdjMC01LjEtMjAuOC0zNy43LTI1LjUtMzkuNS0yLjItLjktNy4yLTIuMy05LjYtMi4zLTIzLjEgMC0zOC43IDEwLjUtNTguMiAyMS41bC0uNS0uNWM0LjMtMjkuNCAxNC42LTU3LjIgMTQuNi04Ny40IDAtNDQuNi0yMy44LTYyLjctNjcuNS02Mi43LTcxLjcgMC0xMDggNzAuOC0xMDggMTIzLjUgMCA1NC43IDMyIDg1IDg2LjMgODUgNy41IDAgNi45LS42IDYuOSAyLjMtMTAuNSA4MC4zLTU2LjUgODIuOS01Ni41IDU4LjkgMC0yNC40IDI4LTM2LjUgMjguMy0zOC0uMi03LjYtMjkuMy0xNy4yLTM2LjctMTcuMi0yMS4xIDAtMzIuNyAzMy0zMi43IDUwLjYgMCAzMi4zIDIwLjQgNTQuNyA1My4zIDU0LjcgNDguMiAwIDgzLjQtNDkuNyA5NC4zLTkxLjcgOS40LTM3LjcgNy0zOS40IDEyLjMtNDIuMSAyMC0xMC4xIDM1LjgtMTYuOCA1OC40LTE2LjggMTEuMSAwIDE5IDIuMyAzNi43IDUuMiAxLjggLjEgNC4xLTEuNyA0LjEtMy41eiJdfSx0NHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0eSIsaWNvbjpbNTEyLDUxMixbXSwiZjM3YSIsIk04Ni41IDY3LjJjOTUuNC04OS4yIDI0Ni4xLTkxLjIgMzQzLjEgMy44IDE0LjMgMTQuMS02LjQgMzcuMS0yMi40IDIxLjUtODQuOC04Mi40LTIxNS44LTgwLjMtMjk4LjktMy4yLTE2LjMgMTUuMS0zNi41LTguMy0yMS44LTIyLjF6bTk4LjkgNDE4LjZjMTkuMyA1LjcgMjkuMy0yMy42IDcuOS0zMC0xMTIuMi0zMy45LTE3NS44LTE0OS43LTE0Ny41LTI2MSA1LTE5LjYtMjQuOS0yOC4xLTMwLjItNy4xLTMyLjEgMTI3LjQgNDEuMSAyNTkuOCAxNjkuOCAyOTguMXptMTQ4LjEtMmMxMjEuOS00MC4yIDE5Mi45LTE2Ni45IDE2NC40LTI5MS00LjUtMTkuNy0zNC45LTEzLjgtMzAgNy45IDI0LjIgMTA3LjctMzcuMSAyMTcuOS0xNDMuMiAyNTMuNC0yMS4yIDctMTAuNCAzNiA4LjggMjkuN3ptLTYyLjktNzlsLjItNzEuOGMwLTguMi02LjYtMTQuOC0xNC44LTE0LjhzLTE0LjggNi43LTE0LjggMTQuOGwtLjIgNzEuOGMwIDguMiA2LjYgMTQuOCAxNC44IDE0LjhzMTQuOC02LjYgMTQuOC0xNC44em03MS0yNjljMi4xIDkwLjkgNC43IDEzMS45LTg1LjUgMTMyLjUtOTIuNS0uNy04Ni45LTQ0LjMtODUuNS0xMzIuNSAwLTIxLjgtMzIuNS0xOS42LTMyLjUgMGwwIDcxLjZjMCA2OS4zIDYwLjcgOTAuOSAxMTggOTAuMSA1Ny4zIC44IDExOC0yMC44IDExOC05MC4xbDAtNzEuNmMwLTE5LjYtMzIuNS0yMS44LTMyLjUgMHoiXX0scjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwZXhwbG9yZXIiLGljb246WzUxMiw1MTIsW10sImYyZGUiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptNDgwIDBhMjI0IDIyNCAwIDEgMCAtNDQ4IDAgMjI0IDIyNCAwIDEgMCA0NDggMHpNMTYwLjkgMTI0LjZsODYuOSAzNy4xLTM3LjEgODYuOS04Ni45LTM3LjEgMzcuMS04Ni45em0xMTAgMTY5LjFsNDYuNiA5NC0xNC42IDAtNTAtMTAwLTQ4LjkgMTAwLTE0IDAgNTEuMS0xMDYuOS0yMi4zLTkuNCA2LTE0IDY4LjYgMjkuMS02IDE0LjMtMTYuNS03LjF6TTI1OS4xIDE3Ny40bDY4LjYgMjkuNC0yOS40IDY4LjMtNjguMy0yOS4xIDI5LjEtNjguNnptODAuMyA0Mi45bDU0LjYgMjMuMS0yMy40IDU0LjMtNTQuMy0yMy4xIDIzLjEtNTQuM3oiXX0sYTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZ2Fwb3J0IixpY29uOls1MTIsNTEyLFtdLCJmNWEzIiwiTTIyMi41IDIwOS42bDAgNjYuMiAzMy41IDMzLjUgMzMuMy0zMy4zIDAtNjYuNC0zMy40LTMzLjQtMzMuNCAzMy40ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQwMS4xIDQyMi40bC0yNi4xIDE5LjItMjYtMTkuMiAwLTY1LjUtMzMuNC0zMy40LTMzLjQgMzMuNCAwIDY1LjUtMjYuMiAxOS4yLTI2LjEtMTkuMiAwLTY1LjUtMzMuNC0zMy40LTMzLjUgMzMuNCAwIDY1LjUtMjYuMSAxOS4yLTI2LjEtMTkuMiAwLTg3IDU5LjUtNTkuNSAwLTg3LjkgNTkuNS01OS41IDAtNzUuNiAyNi4xLTE5LjIgMjYuMSAxOS4yIDAgNzUuNiA1OS41IDU5LjUgMCA4Ny42IDU5LjcgNTkuNyAwIDg3LjEtLjEgMHoiXX0saTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxlZXRjb2RlIixpY29uOls0NDgsNTEyLFtdLCJlODZhIiwiTTIzNS40IDkuM0MyNDYuNS0yLjUgMjY1LjEtMy4yIDI3NyA3LjlzMTIuNSAyOS44IDEuNCA0MS42bC00MyA0NmMyMS41IDMuMyA0Mi4xIDExLjggNTkuMSAyNS42bDc0LjYgNjAuM2MxMi42IDEwLjIgMTQuNiAyOC44IDQuNCA0MS40cy0yOC43IDE0LjYtNDEuNCA0LjRsLTc0LjYtNjAuM2MtMjYuMi0yMS4xLTcxLjktMTguMi05NC41IDUuOUw4MSAyNjFjLTIxLjUgMjMtMTkuMSA2MCA1LjYgODQuMmw5MS4yIDg5LjRjMjQuOSAyNCA2NS42IDI0IDkwLjEtLjRsNTEuMS01MWMxMS41LTExLjUgMzAuMS0xMS41IDQxLjYgLjFzMTEuNCAzMC4yLS4xIDQxLjdsLTUxLjEgNTFjLTQ3LjEgNDcuMS0xMjQgNDcuNy0xNzEuOSAxLjZsLTkyLTkwLjJDLTEuNCAzNDEuMy02IDI2Ny45IDM4IDIyMC43TDIzNS40IDkuM3pNNDExLjcgMjczLjJjMTYuMiAwIDI5LjQgMTMuMiAyOS40IDI5LjVzLTEzLjIgMjkuNS0yOS40IDI5LjVsLTIxNi45IDBjLTE2LjIgMC0yOS40LTEzLjItMjkuNC0yOS41czEzLjItMjkuNSAyOS40LTI5LjVsMjE2LjkgMHoiXX0sczRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1kYiIsaWNvbjpbNTc2LDUxMixbXSwiZjhjYSIsIk0xNy40IDE2MC40bC0xMC40IDE5MS42IDQzLjkgMCA1LjYtNzkuOCAyNy45IDc5LjggNDQuNyAwIDI1LjUtNzcuNCA0LjggNzcuNCA0NS41IDAtMTIuOC0xOTEuNi00NS41IDAtNDAuNyAxMTcuMy00Mi4zLTExNy4zLTQ2LjMgMHptMjgxIDBsLTQ3LjkgMCAwIDE5MS42IDQ3LjkgMHM5NSAuOCA5NC4yLTk1LjhjLS44LTk0LjItOTQuMi05NS44LTk0LjItOTUuOGwwIDB6bS0xLjIgMTQ2LjVsMC0xMDIuMXM0NiA0LjMgNDYuOCA1MC42LTQ2LjggNTEuNS00Ni44IDUxLjVsMCAwem0yMzguMy03NC4yYzcuMi0xMS40IDEwLTI1IDgtMzguMy01LjMtMzUuOC01NS4xLTM0LjMtNTUuMS0zNC4zbC01MS45IDAgMCAxOTEuNiA0NS41IDBzODcgNC44IDg3LTYzLjhjMC00My4xLTMzLjUtNTUuMS0zMy41LTU1LjFsMCAwem0tNTEuOS0zMS45czEzLjYtMS42IDE2IDkuNmMxLjQgNi43LTQgMTItNCAxMmwtMTIgMCAwLTIxLjZ6bS0uMSAxMDkuNWwuMS0yNC45IDAtMTguMiAuMSAwczQxLjYtNC43IDQxLjIgMjIuNGMtLjMgMjUuNy00MS4zIDIwLjctNDEuMyAyMC43bDAgMHoiXX0sbjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhZ2U0IixpY29uOls1MTIsNTEyLFtdLCJmM2Q3IiwiTTI1NiA1MDRDMTE5IDUwNCA4IDM5MyA4IDI1NlMxMTkgOCAyNTYgOGMyMC45IDAgNDEuMyAyLjYgNjAuNyA3LjVMNTAuMyAzOTIgMjU2IDM5MiAyNTYgNTA0em0wLTE0My42bDAtMjEzLjYtMTQ5LjQgMjEzLjYgMTQ5LjQgMHpNMzUyIDM5MmwwIDkyLjdjNDUuNy0xOS4yIDg0LjUtNTEuNyAxMTEuNC05Mi43TDM1MiAzOTJ6bTU3LjQtMTM4LjJsLTIxLjIgOC40IDIxLjIgOC4zIDAtMTYuN3ptLTIwLjMgNTQuNWMtNi43IDAtOCA2LjMtOCAxMi45bDAgNy43IDE2LjIgMCAwLTEwYzAtNS45LTIuMy0xMC42LTguMi0xMC42ek01MDQgMjU2YzAgMzcuMy04LjIgNzIuNy0yMyAxMDQuNGwtMTI5IDAgMC0zMzMuMUM0NDEuMyA2NC44IDUwNCAxNTMuMSA1MDQgMjU2ek0zNjguNCAxNDMuNmw2OC4yIDAgMC00Ny42LTEzLjkgMCAwIDMyLjYtMTMuOSAwIDAtMjkuNi0xMy45IDAgMCAyOS42LTEyLjcgMCAwLTMyLjYtMTMuOSAwIDAgNDcuNiAuMSAwem02OC4xIDE4NS4zbC0yNi41IDAgMC0xMWMwLTE1LjQtNS42LTI1LjItMjAuOS0yNS4yLTE1LjQgMC0yMC43IDEwLjYtMjAuNyAyNS45bDAgMjUuMyA2OC4yIDAgMC0xNS0uMSAwem0wLTEwM2wtNjguMiAyOS43IDAgMTIuNCA2OC4yIDI5LjUgMC0xNi42LTE0LjQtNS43IDAtMjYuNSAxNC40LTUuOSAwLTE2Ljl6bS00LjgtNjguNWwtMzUuNiAwIDAgMjYuNiAxMy45IDAgMC0xMi4yIDExIDBjOC42IDE1LjggMS4zIDM1LjMtMTguNiAzNS4zLTIyLjUgMC0yOC4zLTI1LjMtMTUuNS0zNy43bC0xMS42LTEwLjZjLTE2LjIgMTcuNS0xMi4yIDYzLjkgMjcuMSA2My45IDM0IDAgNDQuNy0zNS45IDI5LjMtNjUuM3oiXX0sbzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZS1yZWQteWV0aSIsaWNvbjpbNTEyLDUxMixbXSwiZjY5ZCIsIk00ODguNyAyNDEuN2wyMC43IDcuMWMtOS42LTIzLjktMjMuOS0zNy0zMS43LTQ0LjhsNy4xLTE4LjJjLjIgMCAxMi4zLTI3LjgtMi41LTMwLjctLjYtMTEuMy02LjYtMjctMTguNC0yNy03LjYtMTAuNi0xNy43LTEyLjMtMzAuNy01LjktOS4xIDQuNC0xNy42IDEwLTI1LjMgMTYuNS01LjMtNi40LTMgLjQtMy0yOS44LTM3LjEtMjQuMy00NS40LTExLjctNzQuOCAzbC41IC41Yy0yMi03LjctNDUuMS0xMi4yLTY4LjQtMTMuMy01LjUtOC43LTE4LjYtMTkuMS0yNS4xLTI1LjFsMjQuOCA3LjFjLTUuNS01LjUtMjYuOC0xMi45LTM0LjItMTUuMiAxOC4yLTQuMSAyOS44LTIwLjggNDIuNS0zMy0zNC45LTEwLjEtNjcuOS01LjktOTcuOSAxMS44bDEyLTQ0LjItMS44LS41Yy0zMS42IDI0LjItMzMgNDEuOS0zMy43IDQ1LjUtLjktMi40LTYuMy0xOS42LTE1LjItMjctMy4zIDguMS0zLjUgMTcuMS0uNSAyNS4zIDMgOC40IDUuOSAxNC44IDguNCAxOC45LTE2LTMuMy0yOC4zLTQuOS00OS4yIDBsLTMuNyAwIDMzIDE0LjNjLTIwLjIgMTguOS0zNi4xIDQxLjktNDYuNyA2Ny40bC0xLjcgOC40IDEuNyAxLjcgNy42LTQuN2MtMy4zIDExLjYtNS4zIDE5LjQtNi42IDI1LjgtMTAuOSAxMi4yLTIwLjIgMjUuOC0yNy44IDQwLjMtMTUgMS0zMS44IDEwLjgtNDAuMyAxNC4zbDMgMy40IDI4LjggMWMtLjUgMS0uNyAyLjItMS4yIDMuMi03LjMgNi40LTM5LjggMzcuNy0zMyA4MC43bDIwLjItMjIuNGMuNSAxLjcgLjcgMy40IDEuMiA1LjIgMCAyNS41IC40IDg5LjYgNjQuOSAxNTAuNSA0My42IDQwIDk2IDYwLjIgMTU3LjUgNjAuMiAxMjEuNyAwIDIyMy04Ny4zIDIyMy0yMTEuNSA2LjgtOS43LTEuMiAzIDE2LjctMjUuMWwxMyAxNC4zIDIuNS0uNWMtMS44LTExLjctNC44LTIzLjEtOC45LTM0LjItMS41LTQuOC0zLjgtOS4zLTYuOC0xMy4zbDAgMHpNMzk4LjUgMTExLjJsLS41IDIxLjljNS41IDE4LjEgMTYuOSAxNy4yIDIyLjQgMTcuMmwtMy40LTQuNyAyMi40LTUuNGMtOSAuNS0xOCAuNS0yNyAwIDEyLjgtMi4xIDMzLjMtMjkgNDMtMTEuMyAzLjQgNy42IDYuNCAxNy4yIDkuMyAyNy44bDEuNy01LjljLTEuMy01LTEuOC0xMC4xLTEuNy0xNS4yIDUuNCAuNSA4LjggMy40IDkuMyAxMC4xIC41IDYuNCAxLjcgMTQuOCAzLjQgMjUuM2w0LjctMTEuM2M0LjYgMCA0LjUtMy42LTIuNSAyMC43LTIwLjktOC43LTM1LjEtOC40LTQ2LjUtOC40bDE4LjItMTZjLTI1LjMgOC4yLTMzIDEwLjgtNTQuOCAyMC45LTEuMS01LjQtNS0xMy41LTE2LTE5LjktMy4yIDMuOC0yLjggLjktLjcgMTQuOGwtMi41IDBjLTEuMi04LjItNC4xLTE2LTguNC0yMy4xbDQuMi0zLjRjOC40LTcuMSAxMS44LTE0LjMgMTAuNi0yMS45LS41LTYuNC01LjQtMTMuNS0xMy41LTIwLjcgNS42LTMuNCAxNS4yLS40IDI4LjMgOC41em0tMzkuNi0xMC4xYzIuNyAxLjkgMTEuNCA1LjQgMTguOSAxNy4yIDQuMiA4LjQgNCA5LjggMy40IDExLjEtLjUgMi40LS41IDQuMy0zIDcuMS0xLjcgMi41LTUuNCA0LjctMTEuOCA3LjYtNy42LTEzLTE2LjUtMjMuNi0yNy44LTMxLjJsMjAuMy0xMS44em0tMjY3LjQgNDJsMS4yLTEuN2MxLjItMi45IDQuMi03LjYgOS4zLTE1LjJsMi41LTMuNC0xMyAxMi4zIDUuNC00LjctMTAuMSA5LjMtNC4yIDEuMmMxMi4zLTI0LjEgMjMuMS00MS4zIDMyLjUtNTAuMiA5LjMtOS4zIDE2LTE2IDIwLjItMTkuNGwtNi40IDEuMmMtMTEuMy00LjItMTkuNC03LjEtMjQuOC04LjQgMi41LS41IDMuNy0uNSAzLjItLjUgMTAuMyAwIDE3LjUgLjUgMjAuOSAxLjIgNS4yIDEuNyAxMC42IDIuNSAxNiAyLjVsLjUtMS43LTguNC0zNS44IDEzLjUgMjljMi44LTQuNCA0LjgtOS4yIDUuOS0xNC4zIDEuNy02LjQgNS40LTEzIDEwLjEtMTkuNHM3LjYtMTAuNiA5LjMtMTEuM2MtMi42IDguMy00LjcgMTYuOC02LjQgMjUuM2wtMS43IDcuMS0uNSA0LjcgMi41IDIuNWMyMS45LTEzLjUgNDUuNS0xOS40IDcxLjMtMTguOWwyMS4xIC41Yy0xMS44IDEzLjUtMjcuOCAyMS45LTQ4LjUgMjQuOC03LjcgMS40LTE1LjYgMi40LTIzLjQgMi45bC0uMi0uNS0yLjUtMS4yYy00LjgtMS05LjctLjMtMTQgMi0yLjUtLjItNC45LS41LTcuMS0uN2wtMi41IDEuNyAuNSAxLjJjMiAuMiAzLjkgLjUgNi4yIC43bC0yIDMuNCAzLjQtLjUtMTAuNiAxMS4zYy00LjIgMy01LjQgNi40LTQuMiA5LjNsNS40LTMuNCAxLjIgMGM2LjEtOC4yIDE1LjItMTMuNiAyNS4zLTE1LjJsMC0zYzYuNCAuNSAxMyAxIDE5LjQgMS4yIDYuNCAwIDguNCAuNSA1LjQgMS4yIDcuMiA0IDE0LjEgOC42IDIwLjcgMTMuNSAxMy41IDEwLjEgMjMuNiAyMS45IDMwIDM1LjQgOC44IDE4LjIgMTMuNSAzNy4xIDEzLjUgNTYuNiAwIDkuNS0xIDE5LTMgMjguMy0zLjUgMTUuOS04LjkgMzEuMy0xNiA0NmwyLjUgLjVjMTguMi0xOS43IDQxLjktMTYgNDkuMi0xNmwtNi40IDUuOSAyMi40IDE3LjctMS43IDMwLjdjLTUuNC0xMi4zLTE2LjUtMjEuMS0zMy0yNy44IDE2LjUgMTQuOCAyMy42IDIxLjEgMjEuOSAyMC4yLTQuOC0yLjgtMy41LTEuOS0xMC44LTMuNyA0LjEgNC4xIDE3LjUgMTguOCAxOC4yIDIwLjdsLjIgLjItLjIgLjJjMCAxLjggMS42LTEuMi0xNCAyMi45LTc1LjItMTUuMy0xMDYuMy00Mi43LTE0MS4yLTYzLjJsMTEuOCAxLjJjLTExLjgtMTguNS0xNS42LTE3LjctMzguNC0yNi4xbDEwLjYtOC40Yy04LjgtMy0xOC4yLTMtMjguMyAuNWw3LjYtMTAuNi0xLjItMS43Yy0xNC45IDQuMy0xOS44IDkuMi0yMi42IDExLjMtMS4xLTUuNS0yLjgtMTIuNC0xMi4zLTI4LjhsLTEuMiAyNy0xMy4yLTVjMS41LTI1LjIgNS40LTUwLjUgMTMuMi03NC42ek0zNjggNDczLjFjLTQ5LjkgMjUtNTYuMSAyMi40LTU5IDIzLjktMjkuOC0xMS44LTUwLjktMzEuNy02My41LTU4LjhsMzAgMTYuNWMtOS44LTkuMy0xOC4zLTE2LjUtMzguNC00NC4zbDExLjggMjMuMS0xNy43LTcuNmMxNC4yIDIxLjEgMjMuNSA1MS43IDY2LjYgNzMuNS0xMjAuOCAyNC4yLTE5OS03Mi4xLTIwMC45LTc0LjMgMTEuMSA5LjIgMjIuOSAxNy41IDM1LjQgMjQuOCAzLjQgMS43IDcuMSAyLjUgMTAuMSAxLjJsLTE2LTIwLjdjOS4yIDQuMiA5LjUgNC41IDY5LjEgMjktNDIuNS0yMC43LTczLjgtNDAuOC05My4yLTYwLjItLjUgNi40LTEuMiAxMC4xLTEuMiAxMC4xIDguNyA3LjMgMTUuOCAxNi40IDIwLjcgMjYuNi0zOS0xOC45LTU3LjYtNDcuNi03MS4zLTgyLjYgNDkuOSA1NS4xIDExOC45IDM3LjUgMTIwLjUgMzcuMSAzNC44IDE2LjQgNjkuOSAyMy42IDExMy45IDEwLjYgMy4zIDAgMjAuMyAxNyAyNS4zIDM5LjFsNC4yLTMtMi41LTIzLjZjOSA5IDI0LjkgMjIuNiAzNC40IDEzLTE1LjYtNS4zLTIzLjUtOS41LTI5LjUtMzEuNyA0LjYgNC4yIDcuNiA5IDI3LjggMTVsMS4yLTEuMi0xMC41LTE0LjJjMTEuNy00LjgtMy41IDEgMzItMTAuOCA0LjMgMzQuMyA5IDQ5LjIgLjcgODkuNXpNNDgzLjMgMjU4LjdsLTIuNSAuNSAzIDkuM2MtMy41IDUuOS0yMy43IDQ0LjMtNzEuNiA3OS43LTM5LjUgMjkuOC03Ni42IDM5LjEtODAuOSA0MC4zbC03LjYtNy4xLTEuMiAzIDE0LjMgMTYtNy4xLTQuNyAzLjQgNC4yLTEuMiAwLTIxLjktMTMuNSA5LjMgMjYuNi0xOS0yNy45LTEuMiAyLjUgNy42IDI5Yy02LjEtOC4yLTIxLTMyLjYtNTYuOC0zOS42bDMyLjUgMjEuMmMtMzEuMiA0LjctNjMgMi41LTkzLjItNi40LTQuMi0xLjItOC45LTIuNS0xMy41LTQuMmwxLjItMy00NC44LTIyLjQgMjYuMSAyMi40Yy01Ny43IDkuMS0xMTMtMjUuNC0xMjYuNC04My40TDI5LjMgMjg0LjggNyAzMDcuMWMxOS41LTU3LjUgMjUuNi01Ny45IDUxLjQtNzAuMS05LjEtNS4zLTEuNi0zLjMtMzguNC05LjMgMTUuOC01LjggMzMtMTUuNCA3MyA1LjIgMS4yLS43IDIuNC0xLjMgMy43LTEuNyAuNi0zLjIgLjQtLjggMS0xMS44IDMuOSAxMCAzLjYgOC43IDMgOS4zbDEuNyAuNWMxMi43LTYuNSA4LjktNC41IDE3LTguOWwtNS40IDEzLjUgMjIuMy01LjgtOC40IDguNCAyLjUgMi41YzQuNS0xLjggMzAuMyAzLjQgNDAuOCAxNmwtMjMuNi0yLjVjMzkuNCAyMyA1MS41IDU0IDU1LjggNjkuNmwxLjctMS4yYy0yLjgtMjIuMy0xMi40LTMzLjktMTYtNDAuMSA0LjIgNSAzOS4yIDM0LjYgMTEwLjQgNDYtMTEuMy0uNS0yMy4xIDUuNC0zNC45IDE4LjlsNDYuNy0yMC4yLTkuMyAyMS45YzcuNi0xMC4xIDE0LjgtMjMuNiAyMS4yLTM5LjZsMC0uNSAxLjItMy0xLjIgMTZjMTMuNS00MS44IDI1LjMtNzguNSAzNS40LTEwOS43bDEzLjUtMjcuOCAwLTItNS40LTQuMiAxMC4xIDAgNS45IDQuMiAyLjUtMS4yLTMuNC0xNiAxMi4zIDE4LjkgNDEuOC0yMC4yLTE0LjggMTMgLjUgMi45IDE3LjctLjVjMTEuMSAuNCAyMi4xIDEuOCAzMyA0LjJsLTIzLjYgMi41LTEuMiAzIDI2LjYgMjMuMWM5LjkgOS45IDE4LjkgMjAuNiAyNyAzMi0xMS4yLTMuMy0xMC4zLTMuNC0yMS4yLTMuNGwxMi4zIDMyLjUtOC45LTEyLjh6bS02LjEtNzEuM2wtMy45IDEzLTE0LjMtMTEuOCAxOC4yLTEuMnptLTI1NC44IDcuMWMxLjcgMTAuNiA0LjcgMTcuNyA4LjggMjEuOS05LjMgNi42LTI3LjUgMTMuOS00Ni41IDE2bC41IDEuMmM4LjMgMS4zIDE2LjkgLjQgMjQuOC0yLjVsLTcuMSAxM2M0LjItMS43IDEwLjEtNy4xIDE3LjctMTQuOCAxMS45LTUuNSAxMi43LTUuMSAyMC4yLTE2LTEyLjctNi40LTE1LjctMTMuNy0xOC40LTE4Ljh6bTMuNy0xMDIuM2MtNi40LTMuNC0xMC42IDMtMTIuMyAxOC45czIuNSAyOS41IDExLjggMzkuNiAxOC4yIDEwLjYgMjYuMSAzIDMuNC0yMy42LTExLjMtNDcuN2MtMy41LTUuNy04LjQtMTAuNS0xNC4zLTEzLjhsMCAwem0tNC43IDQ2LjNjNS40IDIuMiAxMC41IDEuOSAxMi4zLTEwLjZsMC00LjctMS4yIC41Yy00LjMtMy4xLTIuNS00LjUtMS43LTYuMmwuNS0uNWMtLjktMS4yLTUtOC4xLTEyLjUgNC43LS41LTEzLjUgLjUtMjEuOSAzLTI0LjggMS4yLTIuNSA0LjctMS4yIDExLjMgNC4yIDYuNCA1LjQgMTEuMyAxNiAxNS4yIDMyLjUgNi41IDI4LTE5LjggMjYuMi0yNi45IDQuOXptLTQ1LTUuNWMxLjYgLjMgOS4zLTEuMSA5LjMtMTQuOGwtLjUgMGMtNS40LTEuMS0yLjItNS41LS43LTUuOS0xLjctMy0zLjQtNC4yLTUuNC00LjctOC4xIDAtMTEuNiAxMi43LTguMSAyMS4yIC41IDEuMSAxLjMgMiAyLjIgMi44czIgMS4yIDMuMiAxLjRsMCAwem00MC4xLTUwLjFsLTIuNSAuNSAuNSAzYzkuMS0uNSAxOC4xIDEuNSAyNi4xIDUuOS0yLjUtNS41LTEwLTE0LjMtMjguMy0xNC4zbC41IDIuNSAzLjcgMi40em0tNzEuOCA0OS40YzIxLjcgMTYuOCAxNi41IDIxLjQgNDYuNSAyMy42bC0yLjktNC43YzguNC03LjIgMTMuNy0xNy4zIDE0LjgtMjguMyAxLjctMTYtMS4yLTI5LjUtOC44LTQxLjNsMTMtNy42YzAtLjMgMC0uNi0uMS0uOXMtLjItLjYtLjQtLjhjLTIuMi0uOS00LjYtMS4yLTctLjlzLTQuNiAxLjItNi41IDIuNmMtMTIuNyA2LjctMjggMjAuOS0yOSAyMi40LTEuNyAxLjctMy40IDUuOS01LjQgMTMuNS0xLjkgNy43LTIuOSAxNS42LTIuOSAyMy42LTQuNy04LTEwLjUtNi40LTE5LjktNS45bDcuMSA3LjZjLTE2LjUgMC0yMy4zIDE1LjQtMjMuNiAxNiA2LjggMCA0LjYtNy42IDMwLTEyLjMtNC4zLTYuMy0zLjMtNS00LjktNi42em0xOC43LTE4LjdjMS4yLTcuNiAzLjQtMTMgNi40LTE3LjIgNS40LTYuNCAxMC42LTEwLjEgMTYtMTEuOCA0LjItMS43IDcuMSAxLjIgMTAuMSA5LjMgMi41IDguMiAzLjUgMTYuOCAzIDI1LjMtLjUgOS4zLTMuNCAxNy4yLTguNCAyMy4xLTIuOSAzLjQtNS40IDUuOS02LjQgNy42LTMuOCAuNC03LjYgLjItMTEuMy0uNWwtNy4xLTMuNC01LjQtNi40Yy44LTEwIDEuMy0xOC44IDMuMS0yNnptNDIgNTYuMWMtMzQuOCAxNC40LTM0LjcgMTQtMzYuMSAxNC4zLTIwLjggNC43LTE5LTI0LjQtMTguOS0yNC44bDUuOS0xLjItLjUtMi41Yy0yMC4yLTIuNi0zMSA0LjItMzIuNSA0LjkgLjUgLjUgMyAzLjQgNS45IDkuMyA0LjItNi40IDguOC0xMC4xIDE1LjItMTAuNi0xLjcgMTEuMi0xLjIgMjIuNyAxLjcgMzMuNyAuMSAuNSAyLjYgMTcuNCAyNy41IDI0LjEgMTEuMyAzIDI3IDEuMiA0OC45LTUuNGwtOS4yIC41Yy00LjItMTQuOC02LjQtMjQuOC01LjktMjkuNSAxMS4zLTguOCAyMS45LTExLjMgMzAuNy03LjZsMi41IDAtMTEuOC03LjYtNy4xIC41Yy01LjkgMS4yLTEyLjMgNC4yLTE5LjQgOC40bDMuMS02LjV6Il19LGw0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqaXJhIixpY29uOls1MTIsNTEyLFtdLCJmN2IxIiwiTTQ5OC41IDI0MS43Yy03Mi45LTcyLjctMTY5LjQtMTY5LjktMjQxLjUtMjQxLjctMTY1LjUgMTY0LjktMjQyLjUgMjQxLjctMjQyLjUgMjQxLjctNy45IDcuOS03LjkgMjAuNyAwIDI4LjcgMTMyLjggMTMyLjMgNjEuOCA2MS41IDI0Mi41IDI0MS42IDM3OS40LTM3OCAxNS43LTE2LjcgMjQxLjUtMjQxLjcgOC03LjkgOC0yMC43IDAtMjguNnpNMjU3IDMzMS43bC03Ni03NS43IDc2LTc1LjcgNzYgNzUuNy03NiA3NS43eiJdfSxjNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmVkZXgiLGljb246WzY0MCw1MTIsW10sImY3OTciLCJNNTg2IDI4NC41bDUzLjMtNTkuOS02Mi40IDAtMjEuNyAyNC44LTIyLjUtMjQuOC0xMTguNyAwIDAtMTYgNTYuMSAwIDAtNDguMS0xNTEuMiAwIDAgNzUuNS0uNSAwYy05LjYtMTEtMjEuNS0xNC44LTM1LjQtMTQuOC0yOC40IDAtNDkuOCAxOS40LTU3LjMgNDQuOS0xOC01OS40LTk3LjQtNTcuNi0xMjEuOS0xNGwwLTI0LjItNTQuOCAwIDAtMjYuMiA2MCAwIDAtNDEuMS0xMDkgMCAwIDE4NC40IDQ5IDAgMC03Ny41IDQ4LjkgMGMtMS41IDUuNy0yLjMgMTEuOC0yLjMgMTguMiAwIDczLjEgMTAyLjYgOTEuNCAxMzAuMiAyMy43bC00MiAwYy0xNC43IDIwLjktNDUuOCA4LjktNDUuOC0xNC42bDg1LjUgMGMzLjcgMzAuNSAyNy40IDU2LjkgNjAuMSA1Ni45IDE0LjEgMCAyNy02LjkgMzQuOS0xOC42bC41IDAgMCAxMS45IDIxMi4yIDAgMjIuMS0yNSAyMi4zIDI1IDY0LjQgMC01NC02MC41ek0xMzkuMyAyNjcuOWM2LjEtMjYuMyA0MS43LTI1LjYgNDYuNSAwbC00Ni41IDB6bTE1My40IDQ4LjljLTM0LjYgMC0zNC02Mi44IDAtNjIuOCAzMi42IDAgMzQuNSA2Mi44IDAgNjIuOHptMTY3LjggMTkuMWwtOTQuNCAwIDAtMTY2LjUgOTUgMCAwIDMwLjItNTYuMSAwIDAgMzMuOSA1NS41IDAgMCAyOC4xLTU2LjEgMCAwIDQ0LjcgNTYuMSAwIDAgMjkuNnptLTQ1LjktMzkuOGwwLTI0LjQgNTYuMSAwIDAtNDQgNTAuNyA1Ny01MC43IDU3IDAtNDUuNi01Ni4xIDB6bTEzOC42IDEwLjNsLTI2LjEgMjkuNS0zOC4xIDAgNDUuNi01MS4yLTQ1LjYtNTEuMiAzOS43IDAgMjYuNiAyOS4zIDI1LjYtMjkuMyAzOC41IDAtNDUuNCA1MSA0NiA1MS40LTQwLjUgMC0yNi4zLTI5LjV6Il19LGQ0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJldmVybm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjgzOSIsIk0xMjEuMSAxMzIuMmMxLjYgMjIuMy0xNy42IDIxLjYtMjEuNiAyMS42LTY4LjkgMC03My42LTEtODMuNiAzLjMtLjYgLjItLjcgMC0uNC0uNEwxMjQuMSA0Ni40Yy40LS40IC42LS4yIC40IC40LTQuNCAxMC0zLjQgMTUuMS0zLjQgODUuNHptNzkgMzA4Yy0xNC43LTM3LjEgMTMtNzYuOSA1Mi41LTc2LjYgMTcuNSAwIDIyLjYgMjMuMiA3LjkgMzEuNC02LjIgMy4zLTI0LjkgMS43LTI1LjEgMTkuMiAwIDE3LjEgMTkuNyAyNSAzMS4yIDI0LjkgNiAwIDExLjktMS4yIDE3LjUtMy41czEwLjYtNS43IDE0LjgtOS45IDcuNi05LjMgOS45LTE0LjggMy41LTExLjUgMy41LTE3LjVsMC0uMWMwLTExLjYtNy44LTQ3LjItNDcuNS01NS4zLTcuNy0xLjUtNjUtNi4zLTY4LjQtNTAuNS0zLjcgMTYuOS0xNy40IDYzLjUtNDMuMSA2OS4xLTguNyAxLjktNjkuNyA3LjYtMTEyLjktMzYuOCAwIDAtMTguNi0xNS4yLTI4LjItNTgtMy40LTE1LjctOS4zLTM5LjctMTEuMS02MiAwLTE4IDExLjEtMzAuNCAyNS4xLTMyLjIgODEgMCA5MCAyLjMgMTAxLTcuOCA5LjgtOS4yIDcuOC0xNS41IDcuOC0xMDIuOCAxLTguMyA3LjgtMzAuOCA1My40LTI0LjEgNiAuOSAzMS45IDQuMiAzNy41IDMwLjZMMjkwIDc0LjhjMjAuNCAzLjcgNzAuOSA3IDgwLjYgNTcuOSAyMi43IDEyMS4xIDguOSAyMzguNSA3LjggMjM4LjUtMTYgMTE0LjQtMTExLjEgMTA4LjktMTExLjEgMTA4LjktMTktLjItNTQuMi05LjQtNjcuMy0zOS44bDAgMHpNMjgxIDIzNS40Yy0xIDEuOS0yLjIgNiAuOSA3IDE0LjEgNC45IDM5LjggNi44IDQ1LjkgNS41IDMuMS0uMiAzLjEtNC40IDIuNS02LjYtMy41LTIxLjgtNDAuOC0yNi41LTQ5LjItNS45bDAgMHoiXX0sdTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzYiIsaWNvbjpbNjQwLDUxMixbXSwiZjI4NyIsIk02MzMuNSAyNTZjMCAzLjEtMS43IDYuMS00LjUgNy41TDUzOS45IDMxN2MtMS40IC44LTIuOCAxLjQtNC41IDEuNC0xLjQgMC0zLjEtLjMtNC41LTEuMS0yLjgtMS43LTQuNS00LjUtNC41LTcuOGwwLTM1LjYtMjMwLjcgMGMyNS4zIDM5LjYgNDAuNSAxMDYuOSA2OS42IDEwNi45bDI2LjcgMCAwLTI2LjhjMC01IDMuOS04LjkgOC45LTguOWw4OS4xIDBjNSAwIDguOSAzLjkgOC45IDguOWwwIDg5LjFjMCA1LTMuOSA4LjktOC45IDguOWwtODkuMSAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNy0yNi43IDBjLTc1LjQgMC04MS4xLTE0Mi41LTEyNC43LTE0Mi41bC0xMDAuMyAwYy04LjEgMzAuNi0zNS45IDUzLjUtNjkgNTMuNS0zOS4zLS4xLTcxLjMtMzIuMS03MS4zLTcxLjRzMzItNzEuMyA3MS4zLTcxLjNjMzMuMSAwIDYxIDIyLjggNjkgNTMuNSAzOS4xIDAgNDMuOSA5LjUgNzQuNi02MC40IDQwLjEtODkuMSA1OC4xLTgyLjEgMTA4LjktODIuMSA3LjUtMjAuOSAyNy0zNS42IDUwLjQtMzUuNiAyOS41IDAgNTMuNSAyMy45IDUzLjUgNTMuNXMtMjMuOSA1My41LTUzLjUgNTMuNWMtMjMuNCAwLTQyLjktMTQuOC01MC40LTM1LjZsLTI5LjggMGMtMjkuMSAwLTQ0LjMgNjcuNC02OS42IDEwNi45bDMwMi4xIDAgMC0zNS42YzAtMy4zIDEuNy02LjEgNC41LTcuOHM2LjQtMS40IDguOSAuM0w2MjkgMjQ4LjhjMi44IDEuMSA0LjUgNC4xIDQuNSA3LjJ6Il19LHA0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbmdyeWNyZWF0aXZlIixpY29uOls2NDAsNTEyLFtdLCJmMzZlIiwiTTY0MCAyMzguMmwtMy4yIDI4LjItMzQuNSAyLjMtMiAxOC4xIDM0LjUtMi4zLTMuMiAyOC4yLTM0LjQgMi4yLTIuMyAyMC4xIDM0LjQtMi4yLTMgMjYuMS02NC43IDQuMSAxMi43LTExMy4yLTQ3LjMgMTE1LjQtMzEuOSAyLTIzLjgtMTE3LjggMzAuMy0yIDEzLjYgNzkuNCAzMS43LTgyLjQgOTMuMS02LjJ6TTQyNi44IDM3MS41bDI4LjMtMS44IDEyLjktMTIwLjEtMjguNCAxLjktMTIuOCAxMjB6TTE2MiAzODguMWwtMTkuNC0zNi0zLjUgMzcuNC0yOC4yIDEuNyAyLjctMjkuMWMtMTEgMTgtMzIgMzQuMy01Ni45IDM1LjgtMzIuOCAyLTU5LjctMjAuOS01Ni40LTU4LjIgMi42LTI5LjMgMjYuNy02Mi44IDY3LjUtNjUuNCAzNy43LTIuNCA0Ny42IDIzLjIgNTEuMyAyOC44bDIuOC0zMC44IDM4LjktMi41YzIwLjEtMS4zIDM4LjcgMy43IDQyLjUgMjMuN2wyLjYtMjYuNiA2NC44LTQuMi0yLjcgMjcuOS0zNi40IDIuNC0xLjcgMTcuOSAzNi40LTIuMy0yLjcgMjcuOS0zNi40IDIuMy0xLjkgMTkuOSAzNi4zLTIuMy0yLjEgMjAuOCA1NS0xMTcuMiAyMy44LTEuNiAzMi4xIDExMC42IDguOS04NS42LTIyLjMgMS40IDIuOS0yNy45IDc1LTQuOS0zIDI4LTI0LjMgMS42LTkuNyA5MS45LTU4IDMuNy00LjMtMTUuNi0zOS40IDIuNS04IDE2LjMtMTI2LjIgNy43em0tNDQuMy03MC4ybC0yNi40IDEuN2MtNi43LTEyLjQtMTQuNC0xNi42LTI2LjMtMTUuOC0xOSAxLjItMzMuMyAxNy41LTM0LjYgMzMuMy0xLjQgMTYgNy4zIDMyLjUgMjguNyAzMS4yIDEyLjgtLjggMjEuMy04LjYgMjguOS0xOC45bDI3LTEuNyAyLjctMjkuOHptNTYuMS03LjdjMS4yLTEyLjktNy42LTEzLjYtMjYuMS0xMi40TDE0NSAzMjYuM2MxNC4yLS45IDI3LjUtMi4xIDI4LjgtMTYuMXpNMTk0LjkgMzgxbDUuOC02MGMtNSAxMy41LTE0LjcgMjEuMS0yNy45IDI2LjZMMTk0LjkgMzgxem0xMzUuNC00NWwtNy45LTM3LjgtMTUuOCAzOS4zIDIzLjctMS41ek0xNjAuMiAyNjEuNGwtNC4zLTE3LjUtMzkuNiAyLjYtOC4xIDE4LjItMzEuOSAyLjEgNTctMTIxLjkgMjMuOS0xLjYgMzAuNyAxMDIgOS45LTEwNC43IDI3LTEuOCAzNy44IDYzLjYgNi41LTY2LjYgMjguNS0xLjktNCA0MS4yYzcuNC0xMy41IDIyLjktNDQuNyA2My42LTQ3LjUgNDAuNS0yLjggNTIuNCAyOS4zIDUzLjQgMzAuM2wzLjMtMzIgMzkuMy0yLjdjMTIuNy0uOSAyNy44IC4zIDM2LjMgOS43bC00LjQtMTEuOSAzMi4yLTIuMiAxMi45IDQzLjIgMjMtNDUuNyAzMS0yLjItNDMuNiA3OC40LTQuOCA0NC4zLTI4LjQgMS45IDQuOC00NC4zLTE1LjgtNDNjMSAyMi4zLTkuMiA0MC4xLTMyIDQ5LjZsMjUuMiAzOC44LTM2LjQgMi40LTE5LjItMzYuOC00IDM4LjMtMjguNCAxLjkgMy4zLTMxLjVjLTYuNyA5LjMtMTkuNyAzNS40LTU5LjYgMzgtMjYuMiAxLjctNDUuNi0xMC4zLTU1LjQtMzkuMmwtNCA0MC4zLTI1IDEuNi0zNy42LTYzLjMtNi4zIDY2LjItNTYuOCAzLjd6bTI3Ni42LTgyLjFjMTAuMi0uNyAxNy41LTIuMSAyMS42LTQuMyA0LjUtMi40IDctNi40IDcuNi0xMi4xIC42LTUuMy0uNi04LjgtMy40LTEwLjQtMy42LTIuMS0xMC42LTIuOC0yMi45LTJsLTIuOSAyOC44ek0zMjcuNyAyMTRjNS42IDUuOSAxMi43IDguNSAyMS4zIDcuOSA0LjctLjMgOS4xLTEuOCAxMy4zLTQuMSA1LjUtMyAxMC42LTggMTUuMS0xNC4zbC0zNC4yIDIuMyAyLjQtMjMuOSA2My4xLTQuMyAxLjItMTItMzEuMiAyLjFjLTQuMS0zLjctNy44LTYuNi0xMS4xLTguMS00LTEuNy04LjEtMi44LTEyLjItMi41LTggLjUtMTUuMyAzLjYtMjIgOS4yLTcuNyA2LjQtMTIgMTQuNS0xMi45IDI0LjQtMS4xIDkuNiAxLjQgMTcuMyA3LjIgMjMuM3ptLTIwMS4zIDguMmwyMy44LTEuNi04LjMtMzcuNi0xNS41IDM5LjJ6Il19LGY0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXp1bmkiLGljb246WzUxMiw1MTIsW10sImYzY2MiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xNzYgMzU5LjljLTMxLjQgMTAuNi01OC44IDI3LjMtODAgNDguMkw5NiAxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDIyMy45ek0yOTYgMzUwYy0xMi45LTItMjYuMi0zLjEtMzkuOC0zLjEtMTMuOCAwLTI3LjIgMS4xLTQwLjIgMy4xbDAtMjE0YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMTR6bTEyMCA1Ny43Yy0yMS4yLTIwLjgtNDguNi0zNy40LTgwLTQ4TDMzNiAxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDI3MS43eiJdfSxoNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaXRjaC1pbyIsaWNvbjpbNTEyLDUxMixbXSwiZjgzYSIsIk03MS45IDM0LjhDNTAuMiA0Ny43IDcuNCA5Ni44IDcgMTA5LjdsMCAyMS4zYzAgMjcuMSAyNS4zIDUwLjggNDguMiA1MC44IDI3LjYgMCA1MC41LTIyLjggNTAuNS01MCAwIDI3LjEgMjIuMiA1MCA0OS44IDUwczQ5LTIyLjggNDktNTBjMCAyNy4xIDIzLjYgNTAgNTEuMiA1MGwuNSAwYzI3LjYgMCA1MS4yLTIyLjggNTEuMi01MCAwIDI3LjEgMjEuNSA1MCA0OSA1MHM0OS44LTIyLjggNDkuOC01MGMwIDI3LjEgMjMgNTAgNTAuNSA1MCAyMyAwIDQ4LjMtMjMuOCA0OC4zLTUwLjhsMC0yMS4zYy0uNC0xMi45LTQzLjItNjIuMS02NC45LTc1LTY3LjQtMi4zLTExNC4yLTIuNy0xODQtMi43UzkxLjEgMzMuMSA3MS45IDM0Ljh6TTIwNC4yIDE2OS4yYy0yMiAzOC40LTc3LjkgMzguNy05OS44IC4yLTEzLjIgMjMuMS00My4yIDMyLjEtNTYgMjcuNy0zLjkgNDAuMi0xMy43IDIzNy4xIDE3LjcgMjY5LjIgODAgMTguNyAzMDIuMSAxOC4xIDM3OS44IDAgMzEuNi0zMi4zIDIxLjMtMjMyIDE3LjctMjY5LjItMTIuOSA0LjQtNDIuOS00LjYtNTYtMjcuNy0yMiAzOC41LTc3LjggMzguMS05OS44LS4yLTcuMSAxMi41LTIzIDI4LjktNTEuOCAyOC45LTEwLjQgLjMtMjAuOC0yLjItMjkuOS03LjNzLTE2LjctMTIuNi0yMS45LTIxLjZsMCAwem0tNDEuNiA1My44YzE2LjUgMCAzMS4xIDAgNDkuMiAxOS44IDI5LjMtMyA1OC45LTMgODguMiAwIDE4LjItMTkuNyAzMi44LTE5LjcgNDkuMi0xOS43IDUyLjMgMCA2NS4yIDc3LjUgODMuOSAxNDQuNCAxNy4zIDYyLjItNS41IDYzLjctMzQgNjMuNy00Mi4xLTEuNi02NS41LTMyLjItNjUuNS02Mi44LTM5LjMgNi40LTEwMS45IDguOC0xNTUuNiAwIDAgMzAuNi0yMy4zIDYxLjItNjUuNSA2Mi44LTI4LjQtLjEtNTEuMi0xLjYtMzMuOS02My43IDE4LjctNjcgMzEuNi0xNDQuNCA4My45LTE0NC40bDAtLjF6TTI1NiAyNzAuOHMtNDQuNCA0MC44LTUyLjQgNTUuMmwyOS0xLjIgMCAyNS4zYzAgMS41IDIxLjMgLjIgMjMuMyAuMiAxMS42IC41IDIzLjMgMSAyMy4zLS4ybDAtMjUuMyAyOSAxLjJjLTgtMTQuNS01Mi40LTU1LjItNTIuNC01NS4ybC4xIDB6Il19LG00cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aW5kb3dzIixpY29uOls0NDgsNTEyLFtdLCJmMTdhIiwiTTAgOTMuN2wxODMuNi0yNS4zIDAgMTc3LjQtMTgzLjYgMCAwLTE1Mi4xek0wIDQxOC4zbDE4My42IDI1LjMgMC0xNzUuMi0xODMuNiAwIDAgMTQ5Ljl6bTIwMy44IDI4bDI0NC4yIDMzLjcgMC0yMTEuNi0yNDQuMiAwIDAgMTc3Ljl6bTAtMzgwLjZsMCAxODAuMSAyNDQuMiAwIDAtMjEzLjgtMjQ0LjIgMzMuN3oiXX0sZzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dW1ibGV1cG9uIixpY29uOls1MTIsNTEyLFtdLCJmMWE0IiwiTTUwMi45IDI2NmwwIDY5LjdjMCA2Mi4xLTUwLjMgMTEyLjQtMTEyLjQgMTEyLjQtNjEuOCAwLTExMi40LTQ5LjgtMTEyLjQtMTExLjNsMC03MC4yIDM0LjMgMTYgNTEuMS0xNS4yIDAgNzAuNmMwIDE0LjcgMTIgMjYuNSAyNi43IDI2LjVTNDE3IDM1Mi43IDQxNyAzMzhsMC03MiA4NS45IDB6TTI3OC4yIDIwNy44bDM0LjMgMTYgNTEuMS0xNS4yIDAtMzUuNmMwLTYwLjUtNTEuMS0xMDktMTEyLjEtMTA5LTYwLjggMC0xMTIuMSA0OC4yLTExMi4xIDEwOC4ybDAgMTYyLjRjMCAxNC45LTEyIDI2LjctMjYuNyAyNi43Uzg2IDM0OS41IDg2IDMzNC42bDAtNjguNi04NiAwIDAgNjkuN2MwIDYyIDUwLjMgMTEyLjMgMTEyLjQgMTEyLjMgNjEuNiAwIDExMi40LTQ5LjUgMTEyLjQtMTEwLjhsMC0xNjAuM2MwLTE0LjcgMTItMjYuNyAyNi43LTI2LjdzMjYuNyAxMiAyNi43IDI2LjdsMCAzMC45eiJdfSxLM2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlIixpY29uOls1MTIsNTEyLFtdLCJmMWEwIiwiTTUwMCAyNjEuOEM1MDAgNDAzLjMgNDAzLjEgNTA0IDI2MCA1MDQgMTIyLjggNTA0IDEyIDM5My4yIDEyIDI1NlMxMjIuOCA4IDI2MCA4YzY2LjggMCAxMjMgMjQuNSAxNjYuMyA2NC45bC02Ny41IDY0LjljLTg4LjMtODUuMi0yNTIuNS0yMS4yLTI1Mi41IDExOC4yIDAgODYuNSA2OS4xIDE1Ni42IDE1My43IDE1Ni42IDk4LjIgMCAxMzUtNzAuNCAxNDAuOC0xMDYuOWwtMTQwLjggMCAwLTg1LjMgMjM2LjEgMGMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHoiXX0sYjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvcmQiLGljb246WzU3Niw1MTIsW10sImYzOTIiLCJNNDkyLjUgNjkuOGMtLjItLjMtLjQtLjYtLjgtLjctMzguMS0xNy41LTc4LjQtMzAtMTE5LjctMzcuMS0uNC0uMS0uOCAwLTEuMSAuMXMtLjYgLjQtLjggLjhjLTUuNSA5LjktMTAuNSAyMC4yLTE0LjkgMzAuNi00NC42LTYuOC04OS45LTYuOC0xMzQuNCAwLTQuNS0xMC41LTkuNS0yMC43LTE1LjEtMzAuNi0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjItMS4xLS4yYy00MS4zIDcuMS04MS42IDE5LjYtMTE5LjcgMzcuMS0uMyAuMS0uNiAuNC0uOCAuNy03Ni4yIDExMy44LTk3LjEgMjI0LjktODYuOSAzMzQuNSAwIC4zIC4xIC41IC4yIC44cy4zIC40IC41IC42YzQ0LjQgMzIuOSA5NCA1OCAxNDYuOCA3NC4yIC40IC4xIC44IC4xIDEuMSAwcy43LS40IC45LS43YzExLjMtMTUuNCAyMS40LTMxLjggMzAtNDguOCAuMS0uMiAuMi0uNSAuMi0uOHMwLS41LS4xLS44LS4yLS41LS40LS42LS40LS4zLS43LS40Yy0xNS44LTYuMS0zMS4yLTEzLjQtNDUuOS0yMS45LS4zLS4yLS41LS40LS43LS42cy0uMy0uNi0uMy0uOSAwLS42IC4yLS45IC4zLS41IC42LS43YzMuMS0yLjMgNi4yLTQuNyA5LjEtNy4xIC4zLS4yIC42LS40IC45LS40cy43IDAgMSAuMWM5Ni4yIDQzLjkgMjAwLjQgNDMuOSAyOTUuNSAwIC4zLS4xIC43LS4yIDEtLjJzLjcgLjIgLjkgLjRjMi45IDIuNCA2IDQuOSA5LjEgNy4yIC4yIC4yIC40IC40IC42IC43cy4yIC42IC4yIC45LS4xIC42LS4zIC45LS40IC41LS42IC42Yy0xNC43IDguNi0zMCAxNS45LTQ1LjkgMjEuOC0uMiAuMS0uNSAuMi0uNyAuNHMtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjggLjEgLjUgLjIgLjhjOC44IDE3IDE4LjggMzMuMyAzMCA0OC44IC4yIC4zIC42IC42IC45IC43cy44IC4xIDEuMSAwYzUyLjktMTYuMiAxMDIuNi00MS4zIDE0Ny4xLTc0LjIgLjItLjIgLjQtLjQgLjUtLjZzLjItLjUgLjItLjhjMTIuMy0xMjYuOC0yMC41LTIzNi45LTg2LjktMzM0LjV6bS0zMDIgMjY3LjdjLTI5IDAtNTIuOC0yNi42LTUyLjgtNTkuMnMyMy40LTU5LjIgNTIuOC01OS4yYzI5LjcgMCA1My4zIDI2LjggNTIuOCA1OS4yIDAgMzIuNy0yMy40IDU5LjItNTIuOCA1OS4yem0xOTUuNCAwYy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuMiA1OS4yLTUyLjggNTkuMnoiXX0seDRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFtdLCJmMWQ0IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTIxLjIgMjI5LjJsLS4yIDBjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40em0yMTggNTMuOWwwIDEwMC45LTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzUyLjUgOTguMyA0OS4yIDEwMS4yIDU5LjMgMTI1LjYgMTIuMy0yNyA1LjgtMjQuNCA2MC42LTEyNS42bDM0LjggMC04MC44IDE1NS4xeiJdfSxQRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxldmVudHkiLGljb246WzY0MCw1MTIsWyIxMXR5Il0sImU3ZDYiLCJNNjE1LjMgMTY4LjVjMi4zIDAgNC42IC43IDYuNiAyLjIgMS45IDEuNCAzLjEgMy4zIDMuOCA1IDEuNCAzLjMgMS44IDcuMyAxLjggMTEuMyAwIDIuMi0uMyA0LjktLjcgNy42bDAgLjQtNTAuOSAyNjQuOSAwIDBjLTQgMjIuMS04LjUgMzkuNC0xMy42IDUxLjctNSAxMi4xLTEwLjkgMjEuNi0xOC42IDI3bDAgMGMtNy41IDUuMy0xNi45IDcuNy0yNy42IDhsLTMgMGMtMTYgMC0yOS4zLTQuMi0zNi45LTE0LjgtLjEtLjEtLjEtLjEtLjItLjItLjEtLjItLjMtLjQtLjUtLjZsMCAwYy0xLjgtMi40LTIuNS01LjItMi45LTcuNC0uNS0yLjgtLjctNi4xLS43LTkuOCAwLTcuMyAuNi0xMy41IDIuMS0xOC4yIDEuNC00LjQgNC44LTEwLjQgMTIuMi0xMC40bDEuMyAuMWMuMiAwIC40IC4xIC41IC4xIC4zIC4xIC42IC4xIC44IC4yIC42IC4xIDEuMyAuMyAyLjIgLjZsNy42IDIuMiAuMSAwIDcuNiAyLjFjLjkgLjIgMS43IC40IDIuMiAuNSAuNCAuMSAuNiAuMSAuNyAuMSAwIDAgLjEgMCAuMi0uMSAuMS0uMSAuNC0uMiAuOC0uNiAuOS0uOSAyLjItMi42IDMuNi01LjcgMi42LTUuOCA0LjItMTQuNyA0LjItMjcuNCAwLS43LS4zLTMuNC0xLjMtOC45LS45LTUuMS0yLjMtMTIuMi00LjItMjEuMWwtNTYtMjMyLjktLjEtLjQgMC0uM2MtLjQtMi43LS43LTUuMy0uNy03LjMgMC0zLjcgLjQtNy41IDEuNy0xMC42IC43LTEuNiAxLjgtMy40IDMuNS00LjkgMS45LTEuNSA0LjItMi4zIDYuNS0yLjNsMzQuNiAwYzQuNiAwIDguNyAxLjcgMTEuOSA1bDEuMyAxLjVjMS4yIDEuNiAyIDMuNCAyLjcgNS4yIC45IDIuNCAxLjUgNS4xIDIgOC4xbDMwLjQgMTYxLjIgMjMuOC0xNjBjLjgtNS44IDIuMi0xMS40IDUuMS0xNS4xIDMtMy44IDcuMi01LjggMTItNS44bDI0IDB6TTM3NS4xIDM0LjZjMi42IDAgNS4xIC43IDcuNCAyLjMgMi4yIDEuNSAzLjcgMy42IDQuNyA1LjcgMS45IDQgMi41IDkuMSAyLjUgMTQuNWwwIDExMS4yYzAgLjEgMCAuMiAwIC4zbDMyLjQgMGMyLjUgMCA1IC42IDcuMiAyLjEgMi4yIDEuNCAzLjcgMy40IDQuOCA1LjUgMiAzLjkgMi42IDguOCAyLjYgMTMuOWwwIDE1LjRjMCA1LS42IDkuOC0yLjYgMTMuNy0xLjEgMi0yLjYgNC00LjggNS40LTIuMiAxLjQtNC43IDItNy4xIDJsLTMyLjUgMCAwIDE0NS44YzAgMTAuOCAuNyAxOS41IDIgMjYuMiAxLjQgNi45IDMuMSAxMC45IDQuNyAxMi45IDEuMiAxLjUgMi4yIDIuNSAzLjEgMy4ybDIuMiAxLjQgLjEgLjEgMi45IC44YzEuMiAuMiAyLjYgLjMgNC4zIC4zbDIwLjMgMGM0LjUgMCA4LjkgMS43IDExLjggNS44IDIuNiAzLjYgMy4zIDguMSAzLjMgMTIuMmwwIDE3LjJjMCA0LjUtLjggOS4zLTMuNCAxMy4xLTMgNC4yLTcuNSA2LTEyLjMgNmwwIDAtMjkuMSAuMWMtOCAwLTE1LS42LTIxLjItMS43LTYuNy0xLjMtMTMuNC00LjEtMjAuMS04LjEtNy4yLTQuNC0xMy0xMC4zLTE3LjUtMTcuOC00LjUtNy41LTcuOS0xNy41LTEwLjUtMjkuNS0yLjYtMTIuMi0zLjktMjYuNi0zLjktNDNsMC0xNDQuOS0xMy40IDBjLTIuNCAwLTQuOS0uNi03LjEtMi0yLjItMS40LTMuNy0zLjQtNC44LTUuNC0yLTMuOS0yLjYtOC43LTIuNi0xMy43bDAtMTUuNGMwLTUuMSAuNi0xMCAyLjYtMTMuOSAxLjEtMi4xIDIuNi00IDQuOC01LjUgMi4yLTEuNSA0LjctMi4xIDcuMi0yLjFsMTMuNCAwIDAtLjYgNS4yLTExMS4yIDAtLjEgLjMtMy45Yy41LTMuOCAxLjMtNy40IDIuNy0xMC4zIDIuMS00LjIgNi03LjkgMTEuOC03LjlsMjguNiAwem0tMjY4IDExLjdjMS44IC4zIDMuNiAuOSA1LjMgMi4xIDIuMSAxLjUgMy41IDMuNSA0LjQgNS40IDEuNyAzLjcgMi4zIDguNCAyLjMgMTMuMmwwIDM3Ny44YzAgNi43LS42IDEyLjYtMi40IDE3LjEtLjkgMi4zLTIuMyA0LjctNC40IDYuNS0yLjMgMi01LjEgMy04LjEgM2wtNDMuNyAwYy0zIDAtNS44LTEuMS04LjEtMy4xLTIuMS0xLjktMy40LTQuMy00LjItNi41LTEuNy00LjUtMi4zLTEwLjMtMi4zLTE3bDAtMzE1LjhjLTQuOCAxLjItOC43IDIuMi0xMS41IDIuOS0xLjkgLjUtMy40IC44LTQuNCAxLjEtLjUgLjEtLjkgLjItMS4yIC4zLS4xIDAtLjMgLjEtLjUgLjEtLjEgMC0uMiAwLS4zIC4xIDAgMC0uMiAwLS4zIDAgMCAwLS4yIDAtLjQgMGwwIDBjLS4xIDAtLjMgMC0uNCAwLS4xIDAtLjIgMC0uMiAwLTIuMiAuMS00LjUtLjQtNi42LTEuNy0yLjMtMS40LTMuOC0zLjQtNC43LTUuMy0xLjgtMy43LTIuMy04LjQtMi4zLTEzbDAtMjcuNGMwLTQuNCAuNy04LjggMi42LTEyLjQgMi4xLTMuOSA1LjUtNi42IDkuOC03LjZsNzUuNS0xOS41YzEuNC0uNCAyLjktLjUgNC40LS41bDEuOCAuMXptMTQzLjgtLjVjMS44IC4zIDMuNiAuOSA1LjIgMi4xIDIuMSAxLjUgMy41IDMuNSA0LjQgNS40IDEuNyAzLjcgMi4yIDguNCAyLjIgMTMuMmwwIDM3Ny44YzAgNi43LS42IDEyLjYtMi40IDE3LjEtLjkgMi4zLTIuMyA0LjctNC40IDYuNS0yLjMgMi01LjEgMy04LjEgM2wtNDMuNyAwYy0zIDAtNS44LTEuMS04LjEtMy4xLTIuMS0xLjktMy40LTQuMy00LjItNi41LTEuNy00LjUtMi4zLTEwLjMtMi4zLTE3bDAtMzE1LjhjLTQuOCAxLjItOC43IDIuMi0xMS41IDIuOS0xLjkgLjUtMy40IC44LTQuNCAxLjEtLjUgLjEtLjkgLjItMS4yIC4zLS4xIDAtLjMgLjEtLjUgLjEtLjEgMC0uMiAwLS4zIC4xLS4xIDAtLjIgMC0uMyAwIDAgMC0uMiAwLS40IDBsMCAwYy0uMSAwLS4yIDAtLjMgMC0uMSAwLS4yIDAtLjMgMC0yLjIgLjEtNC41LS40LTYuNi0xLjctMi4zLTEuNC0zLjgtMy40LTQuNy01LjMtMS44LTMuNy0yLjMtOC4zLTIuMy0xM2wwLTI3LjRjMC00LjQgLjctOC43IDIuNi0xMi40IDIuMS0zLjkgNS41LTYuNiA5LjgtNy42bDc1LjQtMTkuNGMxLjQtLjQgMi45LS41IDQuNC0uNWwxLjggLjF6Il19LHY0cj1QRWUseTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlYW1zcGVhayIsaWNvbjpbNTc2LDUxMixbXSwiZjRmOSIsIk0xNTIuOCAzNy4yYy0zMi4yIDM4LjEtNTYuMSA4Mi42LTY5LjkgMTMwLjUgMCAuMi0uMSAuMy0uMSAuNS0zOS4zIDE2LjItNjYuOCA1NC44LTY2LjggOTkuOCAwIDU5LjYgNDguNCAxMDggMTA4IDEwOHMxMDgtNDguNCAxMDgtMTA4YzAtNTMuNS0zOC45LTk3LjktOTAtMTA2LjUgMTUuNy00MS44IDQwLjQtNzkuNiA3Mi4zLTExMC43IDEuOC0xLjYgNC0yLjYgNi4zLTMuMSAzNy4yLTExLjUgNzYuNy0xMy4zIDExNC44LTUuMiAxMTkuMyAyNS4xIDE5OC42IDEzOC4yIDE4MS43IDI1OC44LTguNCA2Mi42LTM4LjYgMTEyLjctODcuNyAxNTEuNC01MC4xIDM5LjctMTA3LjUgNTQuMy0xNzAuMiA1Mi4ybC0yNC0xYzEyLjQgMi44IDI1IDQuOSAzNy42IDYuMyA0MC43IDQuMiA4MS40IDIuMSAxMjAuMS0xMi41IDk0LTM1LjUgMTQ5LjMtMTAyLjMgMTYyLjktMjAyLjUgNC44LTUyLjYtNS44LTEwNS40LTMwLjgtMTUyLTcwLjQtMTMxLjktMjM0LjItMTgxLjYtMzY2LTExMS4yLTIuNCAxLjQtNC41IDMuMS02LjMgNS4ybC4xIDB6TTMwOS40IDQzMy45Yy0yLjEgMTEuNS00LjIgMjEuOS0xNC42IDMxLjMgNTMuMi0xIDEyMy4yLTI5LjIgMTYxLjgtOTcuMSAzOS43LTY5LjkgMzcuNi0xMzkuOS02LjMtMjA3LjgtMzYuNS01NS4zLTg5LjgtODIuNC0xNTYuNi04Ni42IDEuNSAyLjMgMy4yIDQuNCA1LjIgNi4zbDUuMiA2LjNjMjUuMSAzMS4zIDM3LjYgNjcuOSA0Mi44IDEwNy41IDIuMSAxNS43LTEgMzAuMy0xMy42IDQxLjgtNC4yIDMuMS01LjIgNi4zLTQuMiAxMC40bDcuMyAxNy43IDI5LjMgNTQuM2M1LjIgMTEuNSA0LjIgMTkuOC02LjMgMjguMi0zLjIgMi41LTYuNyA0LjYtMTAuNCA2LjNsLTE4LjggOC40IDMuMSAxMy42YzMuMSA2LjMgMSAxMi41LTMuMSAxNy43LTIuNSAyLjQtMy44IDUuOS0zLjEgOS40IDIuMSAxMS41LTIuMSAxOS44LTEyLjUgMjUuMS0yLjEgMS00LjIgNS4yLTUuMiA3LjNsMC0uMXptLTEzMy42LTMuMWMxNi43IDExLjUgMzQuNSAyMC45IDUzLjIgMjYuMSAyNCA1LjIgNDEuOC02LjMgNDQuOS0zMC4zIDEtOC40IDUuMi0xNC42IDEyLjUtMTcuNyA3LjMtNC4yIDguNC03LjMgMi4xLTEzLjZsLTkuNC04LjQgMTMuNi00LjJjNi4zLTIuMSA3LjMtNS4yIDUuMi0xMS41LTEuNC0zLTIuNC02LjItMy4xLTkuNC0zLjEtMTQuNi0yLjEtMTUuNyAxMS41LTE4LjggOC40LTMuMSAxNS43LTYuMyAyMS45LTEyLjUgMy4xLTIuMSAzLjEtNC4yIDEtOC40bC0xNi43LTMwLjNjLTEtMS45LTIuMS0zLjgtMy4xLTUuNy02LjQtMTEuNy0xMy0yMy42LTE1LjctMzcuMS0yLjEtOS40LTEtMTcuNyA4LjQtMjQgNS4yLTQuMiA4LjQtOS40IDguNC0xNi43LS40LTEwLjEtMS41LTIwLjMtMy4xLTMwLjMtNi4zLTM3LjYtMjMtNjguOS01MS4yLTk1LTUuMi00LjItOS40LTYuMy0xNi43LTQuMmwtMzUuNiAxMi43IDYgMy42YzYuMyAzLjcgMTIuMiA3LjMgMTcgMTIuMSAzMC4zIDI2LjEgNDEuOCA2MS42IDQ1LjkgMTAwLjIgMSA4LjQgMCAxNi43LTcuMyAyMS45LTguNCA1LjItMTAuNCAxMi41LTcuMyAyMC45IDQuOSAxMy4yIDEwLjQgMjYgMTYuNyAzOC42TDI5MS42IDMxOGMtNi4zIDguNC0xMy42IDExLjUtMjEuOSAxNC42LTEyLjUgMy4xLTE0LjYgNy4zLTEwLjQgMjAuOSAuNiAxLjUgMS40IDIuOCAyLjEgNC4yIDIuMSA1LjIgMSA4LjQtNC4yIDEwLjRsLTEyLjUgMy4xIDUuMiA0LjIgNC4yIDQuMmM0LjIgNS4yIDQuMiA4LjQtMi4xIDEwLjQtNy4zIDQuMi0xMS41IDkuNC0xMS41IDE3LjcgMCAxMi41LTcuMyAxOS44LTE4LjggMjQtMy44IDEtNy42IDEuNS0xMS41IDFsLTM0LjUtMi4xIC4xIC4yeiJdfSx3NHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VwcGxlIixpY29uOls2NDAsNTEyLFtdLCJmM2Y5IiwiTTY0MCAyNjIuNWMwIDY0LjEtMTA5IDExNi4xLTI0My41IDExNi4xLTI0LjggMC00OC42LTEuOC03MS4xLTUgNy43IC40IDE1LjUgLjYgMjMuNCAuNiAxMzQuNSAwIDI0My41LTU2LjkgMjQzLjUtMTI3LjEgMC0yOS40LTE5LjEtNTYuNC01MS4yLTc4IDYwIDIxLjEgOTguOSA1NS4xIDk4LjkgOTMuNHpNNDcuNyAyMjcuOWMtLjEtNzAuMiAxMDguOC0xMjcuMyAyNDMuMy0xMjcuNiA3LjkgMCAxNS42IC4yIDIzLjMgLjUtMjIuNS0zLjItNDYuMy00LjktNzEtNC45LTEzNC41IC40LTI0My40IDUyLjYtMjQzLjMgMTE2LjcgLjEgMzguMyAzOS4xIDcyLjMgOTkuMyA5My4zLTMyLjMtMjEuNS01MS41LTQ4LjYtNTEuNi03OHptNjAuMiAzOS45UzExOC40IDI4MSAxMzcuMiAyODFjMTcuOSAwIDI4LjQtMTEuNSAyOC40LTI1LjEgMC0yOC00MC4yLTI1LjEtNDAuMi0zOS43IDAtNS40IDUuMy05LjEgMTIuNS05LjEgNS43IDAgMTEuMyAyLjYgMTEuMyA2LjZsMCAzLjkgMTQuMiAwIDAtNy45YzAtMTIuMS0xNS40LTE2LjgtMjUuNC0xNi44LTE2LjUgMC0yOC41IDEwLjItMjguNSAyNC4xIDAgMjYuNiA0MC4yIDI1LjQgNDAuMiAzOS45IDAgNi42LTUuOCAxMC4xLTEyLjMgMTAuMS0xMS45IDAtMjAuNy0xMC4xLTIwLjctMTAuMWwtOC44IDEwLjl6bTEyMC44LTczLjZsMCA1NC40YzAgMTEuMy03LjEgMTcuOC0xNy44IDE3LjhzLTE3LjgtNi41LTE3LjgtMTcuN2wwLTU0LjUtMTUuOCAwIDAgNTVjMCAxOC45IDEzLjQgMzEuOSAzMy43IDMxLjkgMjAuMSAwIDMzLjQtMTMgMzMuNC0zMS45bDAtNTUtMTUuNyAwem0zNC40IDg1LjRsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjgtNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNS4xIDE0LjctMTQgMTQuN2wtMTIuNiAwem01NyA0M2wxNS44IDAgMC0yOS41IDE1LjUgMGMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhsLTM5LjEgMCAwIDEzLjQgNy44IDAgMCA3MnptMTUuNy00M2wwLTI5LjEgMTIuOSAwYzguNyAwIDEzLjcgNS43IDEzLjcgMTQuNCAwIDguOS01IDE0LjctMTQgMTQuN2wtMTIuNiAwem01Ny4xIDM0LjhjMCA1LjggMi40IDguMiA4LjIgOC4ybDM3LjYgMGM1LjggMCA4LjItMi40IDguMi04LjJsMC0xMy0xNC4zIDAgMCA1LjJjMCAxLjctMSAyLjYtMi42IDIuNmwtMTguNiAwYy0xLjcgMC0yLjYtMS0yLjYtMi42bDAtNjEuMmMwLTUuNy0yLjQtOC4yLTguMi04LjJsLTE1LjQgMCAwIDEzLjQgNS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDYxLjItLjEgMHptNjMuNCAwYzAgNS44IDIuNCA4LjIgOC4yIDguMmwzOC43IDBjNS43IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE5LjcgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTIwLjMgMjcuNyAwIDAtMTMuNC0yNy43IDAgMC0yMi40IDE5LjIgMGMxLjcgMCAyLjYgMSAyLjYgMi42bDAgNS4yIDE0LjIgMCAwLTEzYzAtNS43LTIuNS04LjItOC4yLTguMmwtNTEuNiAwIDAgMTMuNCA3LjggMCAwIDYzLjkgLjEgMHptNTguOS03NmwwIDUuOSAxLjYgMCAwLTUuOSAyLjcgMCAwLTEuMi03IDAgMCAxLjIgMi43IDB6bTUuNy0xLjJsMCA3LjEgMS41IDAgMC01LjcgMi4zIDUuNyAxLjMgMCAyLjMtNS43IDAgNS43IDEuNSAwIDAtNy4xLTIuMyAwLTIuMSA1LjEtMi4xLTUuMS0yLjQgMHoiXX0sTkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10d2l0dGVyIixpY29uOls0NDgsNTEyLFsidHdpdHRlci1zcXVhcmUiXSwiZjA4MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNTEuMyAxOTkuM2MwIDg2LjctNjYgMTg2LjYtMTg2LjYgMTg2LjYtMzcuMiAwLTcxLjctMTAuOC0xMDAuNy0yOS40IDUuMyAuNiAxMC40IC44IDE1LjggLjggMzAuNyAwIDU4LjktMTAuNCA4MS40LTI4LTI4LjgtLjYtNTMtMTkuNS02MS4zLTQ1LjUgMTAuMSAxLjUgMTkuMiAxLjUgMjkuNi0xLjItMzAtNi4xLTUyLjUtMzIuNS01Mi41LTY0LjRsMC0uOGM4LjcgNC45IDE4LjkgNy45IDI5LjYgOC4zLTktNi0xNi40LTE0LjEtMjEuNS0yMy42cy03LjgtMjAuMi03LjctMzFjMC0xMi4yIDMuMi0yMy40IDguOS0zMy4xIDMyLjMgMzkuOCA4MC44IDY1LjggMTM1LjIgNjguNi05LjMtNDQuNSAyNC04MC42IDY0LTgwLjYgMTguOSAwIDM1LjkgNy45IDQ3LjkgMjAuNyAxNC44LTIuOCAyOS04LjMgNDEuNi0xNS44LTQuOSAxNS4yLTE1LjIgMjgtMjguOCAzNi4xIDEzLjItMS40IDI2LTUuMSAzNy44LTEwLjItOC45IDEzLjEtMjAuMSAyNC43LTMyLjkgMzQgLjIgMi44IC4yIDUuNyAuMiA4LjV6Il19LGs0cj1ORWUsUzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbSIsaWNvbjpbNTEyLDUxMixbXSwiZTg4YSIsIk0zMDMuMyA1NC41bDAtMTIuMyA0LTMuNyA3LjktNy4yIDMuNS0zLjIgMTY4IDAgMTUuMSAxNS4xIDAgMzguOS0zLjUgMy42LTgwLjkgODIuOSA4Ni45IDg2LjktOTEuMiA5MS4yIDguOSAwIDcuNi04LjMgMS0uOWMxLjEtLjggMi41LTEuMiAzLjktMS4ybDI4LjkgMCAxLjUgLjJjMS41IC40IDIuOCAxLjIgMy44IDIuNWw3LjYgMTAuMmMxLjMgMS43IDEuNiAzLjkgMSA1LjlsLTIyLjMgNzIuNSAxLjIgMGMyLjIgMCA0LjIgMS4xIDUuNSAyLjlzMS41IDQuMSAuNyA2LjFMNDU5IDQ0NWMtMSAyLjYtMy40IDQuMi02LjIgNC4ybC00MC40IDBjLTIuMSAwLTQuMS0xLTUuMy0yLjdzLTEuNi0zLjktMS01LjlsMjAtNjMuMi0yMi4yIDAtMTYuMiA1MC43YzIuMSAuMSA0LjEgMS4xIDUuMyAyLjkgMS4yIDEuOCAxLjQgNC4yIC42IDYuMmwtMy4zIDcuOWMtMSAyLjUtMy41IDQuMS02LjEgNC4xbC0zNi44IDBjLTIuMSAwLTQuMS0xLTUuNC0yLjdzLTEuNi0zLjktMS01LjlsMTAtMzIuMS0yMy45IDIzLjhjLjMgMS4yIC4zIDIuNS0uMSAzLjhsLTIuOSA4LjZjLS45IDIuNy0zLjQgNC41LTYuMyA0LjVsLTcuNCAwLTU0LjYgNTQuNi04My44LTgzLjgtMzEuNiAzMi41LTMuNiAzLjctNDkuMiAwLTIuOC0xLjdjLTguOC01LjEtMTQuOC04LjUtMTcuOS0xMC4zbDAtMTI5LjMtNTguNS01OC41IDIuNi0yLjYgNTUuOS01NiAwLTk5LjQtMTIuNiAwLTEwLjgtMTAuOC0zLjYtMy42IDAtNDAuNyAzLjItMy41IDcuOS04LjUgMy43LTMuOSAxNjYuNiAwIDggOCAyNy40LTI3LjQgNDYuNCA0Ni40em0tMjUxLTUuNmwwIDMwLjMgOS40IDcuOCAxOC45IDAgMCAzNDcuOSAxMS40IDEwLjMgMzguMiAwIDkxLTkzYzAtLjQgLjEtLjggLjItMS4xbDIuNi0xMC41Yy43LTIuOSAzLjQtNSA2LjQtNWw3LjEgMCAxNS41LTE1LjktMi0yYy0xLjgtMS44LTIuNC00LjUtMS41LTYuOWw2LjktMTkuM2MuNC0xLjEgMS4xLTIgMS45LTIuOGw2LjktNS45YzEuMi0xIDIuOC0xLjYgNC4zLTEuNmwxOS43IDAgMS4zIC4yYy4xIDAgLjEgLjEgLjIgLjFsMTk5LjItMjAzLjUgMC0yOC43LTguMi03LjQtMTU2LjIgMC03LjggNy44IDAgMzAuNSA4LjIgNy40IDIxIDAtMTQ3IDE0Ni40IDAtMTQ2LjYgMTYuOSAwIDguNy04LjcgMC0yNy43LTcuNC05LjktMTU3LjYgMC04IDh6TTIyNy42IDM1Mi43bDE0LjggMC0zMS44IDkwLjkgNDUuMyAwIDMtOS42LTEyLjUgMCAzMS41LTkxLjktNDcuNiAwLTIuNiAxMC41em0xMzYuOSAxbC0xNi40IDAtMTAuNS0xMC44LTM1LjggMC0zLjMgOS44IDExLjggMC0zMC41IDg5LjkgMzguMSAwIDIuOS04LjYtOC44IDAgMjAtNjMgMzcuOCAwLTIyLjMgNzEuNiAzNi44IDAgMy4zLTcuOS04LjggMCAyMC4zLTY0IDM2LjEgMC0yMi43IDcxLjkgNDAuNCAwIDMuMy04LjYtMTAuMiAwIDI1LTgxLjEtNy41LTEwLjItMjguOSAwLTkuNSAxMC41LTE3LjQgMC05LjktMTAuOC0yMy4zIDAtOS44IDExLjJ6TTI2Mi41IDI5My42bC02LjkgMTkuMyA1LjMgNS4zIDIxLjMgMCA1LjYtNS42IDUuOS0yMC4zLTQuNi00LjYtMTkuNyAwLTYuOSA1Ljl6Il19LFkzZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0sTTRyPVkzZSxDNHI9WTNlLE9FZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXJzaW5kaGFuZHdlcmsiLGljb246WzQ0OCw1MTIsWyJ3c2giXSwiZTJkMCIsIk0xOC45IDQ3OS44bDgzLjQgMCAwLTExMi04My40IDQ3IDAgNjV6bTMyOSAwbDgyLjQgMCAwLTY1LTgyLjQtNDcgMCAxMTJ6bTAtNDQ4bDAgMjE5LjgtMTIzLjYtNzIuNC0xMjEuNyA3Mi40IDAtMjE5LjgtODMuNyAwIDAgMzYwLjggMjA1LjQtMTIyLjMgMjA2IDEyMi4zIDAtMzYwLjgtODIuMyAweiJdfSx6NHI9T0VlLF80cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ6b29tIixpY29uOls2NDAsNTEyLFtdLCJlODdiIiwiTTEzNC4yIDMyNi42bC0xMTQuNCAwYy04IDAtMTUuMi00LjgtMTguMy0xMi4yUy4xIDI5OC42IDUuOCAyOTIuOWw3OS4zLTc5LjMtNTYuOCAwQzEyLjcgMjEzLjYgMCAyMDEgMCAxODUuNGwxMDUuNSAwYzggMCAxNS4yIDQuOCAxOC4zIDEyLjJzMS40IDE1LjktNC4zIDIxLjZsLTc5LjMgNzkuMyA2NS43IDBjMTUuNiAwIDI4LjMgMTIuNiAyOC4zIDI4LjN6TTY0MCAyMzguM2MwLTMwLjQtMjQuNy01NS4xLTU1LjEtNTUuMS0xNi4yIDAtMzAuOSA3LjEtNDEgMTguMy0xMC4xLTExLjItMjQuNy0xOC4zLTQxLTE4LjMtMzAuNCAwLTU1LjEgMjQuNy01NS4xIDU1LjFsMCA4OC4zYzE1LjYgMCAyOC4zLTEyLjcgMjguMy0yOC4zbDAtNjBjMC0xNC44IDEyLTI2LjggMjYuOC0yNi44czI2LjggMTIgMjYuOCAyNi44bDAgNjBjMCAxNS42IDEyLjYgMjguMyAyOC4zIDI4LjNsMC04OC4zYzAtMTQuOCAxMi0yNi44IDI2LjgtMjYuOHMyNi44IDEyIDI2LjggMjYuOGwwIDYwYzAgMTUuNiAxMi42IDI4LjMgMjguMyAyOC4zbDAtODguM3pNMjg4LjIgMjU2YTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6bS0yNzQuMSAwYTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6Il19LFQ0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25mbHVlbmNlIixpY29uOls1MTIsNTEyLFtdLCJmNzhkIiwiTTIuOCA0MTIuMmMtNC41IDcuNi0yLjEgMTcuNSA1LjUgMjIuMmwxMDUuOSA2NS4yYzcuNyA0LjcgMTcuNyAyLjQgMjIuNC01LjMgMC0uMSAuMS0uMiAuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjggLjQgMjEuNy03LjcgLjEtLjEgLjEtLjMgLjItLjRsNTAuNC0xMTQuMWMzLjYtOC4xLS4xLTE3LjYtOC4xLTIxLjMtMjIuMi0xMC40LTY2LjItMzEuMi0xMDUuOS01MC4zLTI0Ny45LTEyMC42LTMzMC44IDQ1LjctMzczLjEgMTEyLjZ6TTUxMC4yIDEwMC4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjkgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIgLjMtLjQgLjYtLjYgMS02Ny4zIDExMi42LTgxLjEgOTUuNi0yODAuNiAuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEgLjEtLjEgLjMtLjIgLjRMMjIuNyAxNDEuM2MtMy42IDguMSAuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45eiJdfSxMNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNiIsIk04MS43IDE3Mi4zbC04MS43IDAgMCAxNzQuNCAxMzIuNyAwIDAtMjUwLjctNTEgMCAwIDc2LjN6bTAgMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3pNMzc4LjkgMTcyLjNsMCAxNzQuNCA4MS44IDAgMCAyOC41LTgxLjggMCAwIDQwLjggMTMzLjEgMCAwLTI0My43LTEzMy4xIDB6bTgxLjggMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3ptLTIzNS42IDQxbDgyLjEgMCAwIDI4LjUtODIuMSAwIDAgNDAuOCAxMzMuMyAwIDAtMjQzLjctMTMzLjMgMCAwIDE3NC40em01MS4yLTEzMy4zbDMwLjggMCAwIDkyLjMtMzAuOCAwIDAtOTIuM3pNMTUzLjMgOTZsNTEuMyAwIDAgNTEtNTEuMyAwIDAtNTF6bTAgNzYuM2w1MS4zIDAgMCAxNzQuNC01MS4zIDAgMC0xNzQuNHoiXX0sRDRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTgiLCJNMzMxLjUgMjM1LjdjMi4yIC45IDQuMiAxLjkgNi4zIDIuOCAyOS4yIDE0LjEgNTAuNiAzNS4yIDYxLjggNjEuNCAxNS43IDM2LjUgMTcuMiA5NS44LTMwLjMgMTQzLjItMzYuMiAzNi4yLTgwLjMgNTIuNS0xNDIuNiA1M2wtLjMgMGMtNzAuMi0uNS0xMjQuMS0yNC4xLTE2MC40LTcwLjItMzIuMy00MS00OC45LTk4LjEtNDkuNS0xNjkuNmwwLS41QzE3IDE4NC4zIDMzLjYgMTI3LjIgNjUuOSA4Ni4yIDEwMi4yIDQwLjEgMTU2LjIgMTYuNSAyMjYuNCAxNmwuMyAwYzcwLjMgLjUgMTI0LjkgMjQgMTYyLjMgNjkuOSAxOC40IDIyLjcgMzIgNTAgNDAuNiA4MS43bC00MC40IDEwLjhjLTcuMS0yNS44LTE3LjgtNDcuOC0zMi4yLTY1LjQtMjkuMi0zNS44LTczLTU0LjItMTMwLjUtNTQuNi01NyAuNS0xMDAuMSAxOC44LTEyOC4yIDU0LjQtMjYuMiAzMy4zLTM5LjggODEuNS00MC4zIDE0My4yIC41IDYxLjcgMTQuMSAxMDkuOSA0MC4zIDE0My4zIDI4IDM1LjYgNzEuMiA1My45IDEyOC4yIDU0LjQgNTEuNC0uNCA4NS40LTEyLjYgMTEzLjctNDAuOSAzMi4zLTMyLjIgMzEuNy03MS44IDIxLjQtOTUuOS02LjEtMTQuMi0xNy4xLTI2LTMxLjktMzQuOS0zLjcgMjYuOS0xMS44IDQ4LjMtMjQuNyA2NC44LTE3LjEgMjEuOC00MS40IDMzLjYtNzIuNyAzNS4zLTIzLjYgMS4zLTQ2LjMtNC40LTYzLjktMTYtMjAuOC0xMy44LTMzLTM0LjgtMzQuMy01OS4zLTIuNS00OC4zIDM1LjctODMgOTUuMi04Ni40IDIxLjEtMS4yIDQwLjktLjMgNTkuMiAyLjgtMi40LTE0LjgtNy4zLTI2LjYtMTQuNi0zNS4yLTEwLTExLjctMjUuNi0xNy43LTQ2LjItMTcuOGwtLjcgMGMtMTYuNiAwLTM5IDQuNi01My4zIDI2LjNsLTM0LjQtMjMuNmMxOS4yLTI5LjEgNTAuMy00NS4xIDg3LjgtNDUuMWwuOCAwYzYyLjYgLjQgOTkuOSAzOS41IDEwMy43IDEwNy43bC0uMiAuMiAuMSAwem0tMTU2IDY4LjhjMS4zIDI1LjEgMjguNCAzNi44IDU0LjYgMzUuMyAyNS42LTEuNCA1NC42LTExLjQgNTkuNS03My4yLTEzLjItMi45LTI3LjgtNC40LTQzLjQtNC40LTQuOCAwLTkuNiAuMS0xNC40IC40LTQyLjkgMi40LTU3LjIgMjMuMi01Ni4yIDQxLjhsLS4xIC4xeiJdfSxSRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3ByZXNzciIsaWNvbjpbNTEyLDUxMixbInJlbmRhY3QiXSwiZjNlNCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQyNy4zIDE2Ni42Yy0xNS4yIDM0LjUtMzAuNCA2OS00NS42IDEwMy41LTIuNCA1LjUtNi45IDguMi0xMyA4LjItMjMgMC00NiAuMS02OSAwLTUuMSAwLTguMiAxLjktMTAuMyA2LjctMTAuMiAyMy42LTIwLjYgNDctMzEgNzAuNS0xLjUgMy41LTQuMSA1LjMtNy45IDUuMy00NS45IDAtOTEuOSAwLTEzNy44IDAtMy4xIDAtNS42LTEuMS03LjctMy40LTExLjItMTIuMy0yMi41LTI0LjYtMzMuNy0zNi45LTIuNy0zLTIuOC02LjItMS4yLTkuNyA4LjctMTkuNSAxNy4zLTM5LjEgMjUuOS01OC43IDEyLjktMjkuNCAyNS45LTU4LjcgMzguNy04OC4xIDEuNy0zLjkgNC4zLTUuNyA4LjUtNS43IDE0LjIgLjEgMjguNSAwIDQyLjcgMCA2LjIgMCA5LjIgNC44IDYuNyAxMC42LTEzLjYgMzAuOC0yNy4yIDYxLjYtNDAuNyA5Mi4zLTUuNyAxMy0xMS40IDI2LTE3LjEgMzktMy45IDkgNy4xIDEyIDExIDUuNiAuMi0uNC0xLjQgNC4yIDMwLTY3LjcgMS40LTMuMSAzLjQtNC40IDYuOC00LjQgMTUuMiAuMSAzMC40IDAgNDUuNiAwIDUuNiAwIDcuOSAzLjYgNS43IDguNy04LjMgMTktMTYuNyAzNy45LTI1IDU2LjktNSAxMS40IDguMSAxMi41IDExLjMgNS4zIDAtLjEgMjcuOS02My4zIDMyLjItNzMuMiAyLTQuNiA1LjQtNi41IDEwLjMtNi41IDI2LjQgLjEgNTIuOSAwIDc5LjMgMCAxMi40IDAgMTMuOS0xMy42IDMuOS0xMy42LTI1LjMgMC01MC41IDAtNzUuOCAwLTYuMyAwLTcuOC0yLjUtNS4zLTguMyA1LjgtMTMuMSAxMS42LTI2LjEgMTcuMy0zOS4yIDEuNy00IDQuNS01LjggOC44LTUuOCAyMy4xIC4xIDI2IDAgMTMwLjggMCA2LjEgMCA4IDIuOCA1LjYgOC4zeiJdfSwkNHI9UkVlLEE0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5b2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJiMSIsIk05MS4zIDc2bDE4NiAwLTcgMTguOS0xNzkgMGMtMzkuNyAwLTcxLjkgMzEuNi03MS45IDcwLjNsMCAyMDUuNGMwIDM1LjQgMjQuOSA3MC4zIDg0IDcwLjNsMCAxOS4xLTEyLjEgMEM0MS4yIDQ2MCAwIDQxOS44IDAgMzcwLjVMMCAxNjUuMkMwIDExNS45IDQwLjcgNzYgOTEuMyA3NnpNMzIwLjQgMjBsNjYuNSAwYy0xNDMuOCAzNzguMS0xNDUuNyAzOTguOS0xODQuNyA0MzkuMy0yMC44IDIxLjYtNDkuMyAzMS43LTc4LjMgMzIuN2wwLTUxLjFjNDkuMi03LjcgNjQuNi00OS45IDY0LjYtNzUuMyAwLTIwLjEgLjYtMTIuNi04Mi4xLTIyMy4ybDYxLjQgMCA1MC40IDE1Ni42IDEwMi4yLTI3OXpNNDQ4IDE2MS41bDAgMjk4LjUtMjE0IDBjNi42LTkuNiAxMC43LTE2LjMgMTIuMS0xOS40bDE4Mi41IDAgMC0yNzkuMWMwLTMyLjUtMTcuMS01MS45LTQ4LjItNjIuOUwzODcuMSA4MWM0MS43IDEzLjYgNjAuOSA0My4xIDYwLjkgODAuNXoiXX0sRTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5pbWJsciIsaWNvbjpbMzg0LDUxMixbXSwiZjVhOCIsIk0yNDYuNiAzNTMuM2EyNyAyNyAwIDEgMSAwLTU0IDI3IDI3IDAgMSAxIDAgNTR6bS03OS40LTI3YTI3LjEgMjcuMSAwIDEgMSAtNTQuMyAwIDI3LjEgMjcuMSAwIDEgMSA1NC4zIDB6TTE5MS44IDE1OUMxNTcgMTU5IDg5LjQgMTc4LjggNTkuMiAyMjdMMTQgMCAxNCAzMzUuNUMxNCA0MzMuMSA5My42IDUxMiAxOTEuOCA1MTJTMzY5LjUgNDMzIDM2OS41IDMzNS41IDI5MC4xIDE1OSAxOTEuOCAxNTl6bTAgMzA4LjFjLTczLjMgMC0xMzIuNS01OC45LTEzMi41LTEzMS42czU5LjItMTMxLjYgMTMyLjUtMTMxLjYgMTMyLjUgNTguOSAxMzIuNSAxMzEuNS01OS4zIDEzMS42LTEzMi41IDEzMS42bDAgLjF6Il19LEk0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhlbGZlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTdkYiIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzNS43IDMxMS45bDQ3IDBjNDQuMiAwIDgwLjEtMzQuOSA4MC4xLTc4cy0zNS45LTc4LTgwLjEtNzhsLTY3LjggMGMtMjUuNSAwLTQ2LjIgMjAuMS00Ni4yIDQ1bDAgMTc1LjEgNjctNjQuMXoiXX0sUDRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhaG9vIixpY29uOls1MTIsNTEyLFtdLCJmMTllIiwiTTIyMy44IDE0MS4xbC01Ni43IDE0My4yLTU2LTE0My4yLTk2LjEgMCAxMDUuOCAyNDkuMS0zOC42IDg5LjggOTQuMiAwIDE0MC45LTMzOC45LTkzLjYgMHpNMzI5LjIgMjc2LjlhNTguMiA1OC4yIDAgMSAwIDAgMTE2LjQgNTguMiA1OC4yIDAgMSAwIDAtMTE2LjR6TTM5NC43IDMybC05MyAyMjMuNSAxMDQuOCAwIDkyLjYtMjIzLjUtMTA0LjQgMHoiXX0sTjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWVza3kiLGljb246WzU3Niw1MTIsW10sImU2NzEiLCJNNDA3LjggMjk0LjdjLTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zek0yODggMjI3LjFDMjYxLjkgMTc2LjQgMTkwLjkgODEuOSAxMjQuOSAzNS4zIDYxLjYtOS40IDM3LjUtMS43IDIxLjYgNS41IDMuMyAxMy44IDAgNDEuOSAwIDU4LjRTOS4xIDE5NCAxNSAyMTMuOWMxOS41IDY1LjcgODkuMSA4Ny45IDE1My4yIDgwLjcgMy4zLS41IDYuNi0uOSAxMC0xLjQtMy4zIC41LTYuNiAxLTEwIDEuNC05My45IDE0LTE3Ny4zIDQ4LjItNjcuOSAxNjkuOSAxMjAuMyAxMjQuNiAxNjQuOC0yNi43IDE4Ny43LTEwMy40IDIyLjkgNzYuNyA0OS4yIDIyMi41IDE4NS42IDEwMy40IDEwMi40LTEwMy40IDI4LjEtMTU2LTY1LjgtMTY5LjktMy4zLS40LTYuNy0uOC0xMC0xLjMgMy40IC40IDYuNyAuOSAxMCAxLjMgNjQuMSA3LjEgMTMzLjYtMTUuMSAxNTMuMi04MC43IDUuOS0xOS45IDE1LTEzOC45IDE1LTE1NS41cy0zLjMtNDQuNy0yMS42LTUyLjljLTE1LjgtNy4xLTQwLTE0LjktMTAzLjIgMjkuOC02Ni4xIDQ2LjYtMTM3LjEgMTQxLjEtMTYzLjIgMTkxLjh6Il19LE80cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY3JpYmQiLGljb246WzM4NCw1MTIsW10sImYyOGEiLCJNNDIuNiAyNTIuN2MtMTYuMS0xOS0yNC43LTQ1LjktMjQuOC03OS45IDAtMTAwLjQgNzUuMi0xNTMuMSAxNjcuMi0xNTMuMSA5OC42LTEuNiAxNTYuOCA0OSAxODQuMyA3MC42bC01MC41IDcyLjEtMzcuMy0yNC42IDI2LjktMzguNmMtMzYuNS0yNC03OS40LTM2LjUtMTIzLTM1LjgtNTAuNy0uOC0xMTEuNyAyNy4yLTExMS43IDc2LjIgMCAxOC43IDExLjIgMjAuNyAyOC42IDE1LjYgMjMuMy01LjMgNDEuOSAuNiA1NS44IDE0IDI2LjQgMjQuMyAyMy4yIDY3LjYtLjcgOTEuOS0yOS4yIDI5LjUtODUuMiAyNy4zLTExNC44LTguNHptMzE3LjcgNS45Yy0xNS41LTE4LjgtMzguOS0yOS40LTYzLjItMjguNi0zOC4xLTItNzEuMSAyOC03MC41IDY3LjItLjcgMTYuOCA2IDMzIDE4LjQgNDQuMyAxNC4xIDEzLjkgMzMgMTkuNyA1Ni4zIDE0LjQgMTcuNC01LjEgMjguNi0zLjEgMjguNiAxNS42IDAgNC4zLS41IDguNS0xLjQgMTIuNy0xNi43IDQwLjktNTkuNSA2NC40LTEyMS40IDY0LjQtNTEuOSAuMi0xMDIuNC0xNi40LTE0NC4xLTQ3LjNsMzMuNy0zOS40LTM1LjYtMjcuNC02MC44IDcxLjggMTUuNCAxMy44YzUyLjUgNDYuOCAxMjAuNCA3Mi41IDE5MC43IDcyLjIgNTEuNCAwIDk0LjQtMTAuNSAxMzMuNi00NC4xIDU3LjEtNTEuNCA1NC4yLTE0OS4yIDIwLjMtMTg5LjZ6Il19LFI0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXBkIixpY29uOls1MTIsNTEyLFtdLCJmNGVjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA0NDkuNWMtMTM5LjIgMC0yMzUuOC0xMzgtMTkwLjItMjY3LjlsNzguOCAzNS4xYy0yLjEgMTAuNS0zLjMgMjEuNS0zLjMgMzIuOSAwIDk5IDczLjkgMTI2LjkgMTIwLjQgMTI2LjkgMjIuOSAwIDUzLjUtNi43IDc5LjQtMjkuNUwzMDUgMzExLjFjLTUuNSA2LjMtMTcuNiAxNi43LTM2LjMgMTYuNy0zNy44IDAtNTMuNy0zOS45LTUzLjktNzEuOSAyMzAuNCAxMDIuNiAyMTYuNSA5Ni41IDIxNy45IDk2LjgtMzQuMyA2Mi40LTEwMC42IDEwNC44LTE3Ni43IDEwNC44em0xOTQuMi0xNTBsLTIyNC0xMDBjMTguOC0zNCA1NC45LTMwLjcgNzQuNy0xMWw0MC40LTQxLjZjLTI3LjEtMjMuMy01OC0yNy41LTc4LjEtMjcuNS00Ny40IDAtODAuOSAyMC41LTEwMC43IDUxLjZMODcuNiAxNDUuNmMzNi4xLTU0LjkgOTguMS05MS4yIDE2OC41LTkxLjIgMTExLjEgMCAyMDEuNSA5MC40IDIwMS41IDIwMS41IDAgMTgtMi40IDM1LjQtNi44IDUyLS4zLS4xLS40LS4yLS42LS40eiJdfSxGNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWFybHliaXJkcyIsaWNvbjpbNTEyLDUxMixbXSwiZjM5YSIsIk0zMjkuMyA0Ny41YzEuMi0xMyAyMS4zLTE0IDM2LjYtOC43IC45IC4zIDI2LjIgOS43IDE5IDE1LjItMjcuOS03LjQtNTYuNCAxOC4yLTU1LjYtNi41em0tMjAxIDYuOWMzMC43LTguMSA2MiAyMCA2MS4xLTcuMS0xLjMtMTQuMi0yMy40LTE1LjMtNDAuMi05LjYtMSAuMy0yOC43IDEwLjUtMjAuOSAxNi43ek0zMzUuNSAxNjBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyem0tMTU5LjcgMGExNiAxNiAwIDEgMCAwIDMyIDE2IDE2IDAgMSAwIDAtMzJ6TTQ5NC4zIDMyMy4yYy05LjkgMjQtNDAuNyAxMS02My45LTEuMi0xMy41IDY5LjEtNTguMSAxMTEuNC0xMjYuMyAxMjQuMiAuMyAuOS0yLS4xIDI0IDEgMzMuNiAxLjQgNjMuOC0zLjEgOTcuNC04LTE5LjgtMTMuOC0xMS40LTM3LjEtOS44LTM4LjEgMS40LS45IDE0LjcgMS43IDIxLjYgMTEuNSA4LjYtMTIuNSAyOC40LTE0LjggMzAuMi0xMy42IDEuNiAxLjEgNi42IDIwLjktNi45IDM0LjYgNC43LS45IDguMi0xLjYgOS44LTIuMSAyLjYtLjggMTcuNyAxMS4zIDMuMSAxMy4zLTE0LjMgMi4zLTIyLjYgNS4xLTQ3LjEgMTAuOC00NS45IDEwLjctODUuOSAxMS44LTExNy43IDEyLjhsMSAxMS42YzMuOCAxOC4xLTIzLjQgMjQuMy0yNy42IDYuMiAuOCAxNy45LTI3LjEgMjEuOC0yOC40LTFsLS41IDUuM2MtLjcgMTguNC0yOC40IDE3LjktMjguMy0uNi03LjUgMTMuNS0yOC4xIDYuOC0yNi40LTguNWwxLjItMTIuNGMtMzYuNyAuOS01OS43IDMuMS02MS44IDMuMS0yMC45IDAtMjAuOS0zMS42IDAtMzEuNiAyLjQgMCAyNy43IDEuMyA2My4yIDIuOC02MS4xLTE1LjUtMTAzLjctNTUtMTE0LjktMTE4LjItMjUgMTIuOC01Ny41IDI2LjgtNjguMiAuOC0xMC41LTI1LjQgMjEuNS00Mi42IDY2LjgtNzMuNCAuNy02LjYgMS42LTEzLjMgMi43LTE5LjgtMTQuNC0xOS42LTExLjYtMzYuMy0xNi4xLTYwLjQtMTYuOCAyLjQtMjMuMi05LjEtMjMuNi0yMy4xIC4zLTcuMyAyLjEtMTQuOSAyLjQtMTUuNCAxLjEtMS44IDEwLjEtMiAxMi43LTIuNiA2LTMxLjcgNTAuNi0zMy4yIDkwLjktMzQuNSAxOS43LTIxLjggNDUuMi00MS41IDgwLjktNDguMy0xNS4zLTE5LjQtMy40LTM5LjktMi40LTQwLjQgMS43LS44IDIxLjIgNC4zIDI2LjMgMjMuMiA1LjItOC44IDE4LjMtMTEuNCAxOS42LTEwLjcgMS4xIC42IDYuNCAxNS00LjkgMjUuOSA0MC4zIDMuNSA3Mi4yIDI0LjcgOTYgNTAuNyAzNi4xIDEuNSA3MS44IDUuOSA3Ny4xIDM0IDIuNyAuNiAxMS42IC44IDEyLjcgMi42IC4zIC41IDIuMSA4LjEgMi40IDE1LjQtLjUgMTMuOS02LjggMjUuNC0yMy42IDIzLjEtMy4yIDE3LjMtMi43IDMyLjktOC43IDQ3LjcgMi40IDExLjcgNCAyMy44IDQuOCAzNi40IDM3IDI1LjQgNzAuMyA0Mi41IDYwLjMgNjYuOXpNMjIzLjUgMTU5LjljLjktNDQtMzcuOS00Mi4yLTc4LjYtNDAuMy0yMS43IDEtMzguOSAxLjktNDUuNSAxMy45LTExLjQgMjAuOSA1LjkgOTIuOSAyMy4yIDEwMS4yIDkuOCA0LjcgNzMuNCA3LjkgODYuMy03LjEgOC4yLTkuNCAxNS00OS40IDE0LjYtNjcuN3ptNTIgNTguM2MtNC4zLTEyLjQtNi0zMC4xLTE1LjMtMzIuNy0yLS41LTktLjUtMTEgMC0xMCAyLjgtMTAuOCAyMi4xLTE3IDM3LjIgMTUuNCAwIDE5LjMgOS43IDIzLjcgOS43IDQuMyAwIDYuMy0xMS4zIDE5LjYtMTQuMnptMTM1LjctODQuN2MtNi42LTEyLjEtMjQuOC0xMi45LTQ2LjUtMTMuOS00MC4yLTEuOS03OC4yLTMuOC03Ny4zIDQwLjMtLjUgMTguMyA1IDU4LjMgMTMuMiA2Ny44IDEzIDE0LjkgNzYuNiAxMS44IDg2LjMgNy4xIDE1LjgtNy42IDM2LjUtNzguOSAyNC4zLTEwMS4zeiJdfSxCNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ltZm9ueWNhc3RzIixpY29uOls1NzYsNTEyLFtdLCJlOGFiIiwiTTI5My44IDM0Mi41YzMuNC0xLjUgNi44LTEuNSAxMC4yIDBsNTQuMiAyMi42YzIuNiAuOSA0LjcgMi42IDYuMiA0LjhzMi4zIDQuOCAyLjMgNy42YzAgMTkuNC0zLjYgMzcuMi0xMC43IDUzLjQtNi4yIDEzLjYtMTQuNSAyNS40LTI0LjggMzUuNi04LjcgOC41LTE3LjcgMTQuNi0yNy4xIDE4LjQtMy40IDEuNS02LjggMS41LTEwLjIgMC0xMC43LTQuMy0yMC42LTExLjMtMjkuNy0yMC45LTEwLTEwLjQtMTcuOC0yMi41LTIzLjUtMzYuNC02LjQtMTUuNi05LjYtMzIuMy05LjYtNTAgMC0yLjggLjctNS40IDIuMi03LjYgMS41LTIuMyAzLjYtMy45IDYuMi00LjhsNTQuMi0yMi42ek00NzkuNyA0ODMuOGE3MC4xIDcwLjEgMCAxIDEgMC0xNDAuMiA3MC4xIDcwLjEgMCAxIDEgMCAxNDAuMnpNMjQ0LjYgMzc3LjZjMCAxNS4zIDIuNiAyOS43IDcuOSA0My4yIDQuOSAxMi40IDExLjYgMjMuMyAyMC4xIDMyLjUgOC4xIDguOSAxNi45IDE1LjMgMjYuMyAxOS4yIDkuMi0zLjggMTcuOC0xMCAyNS43LTE4LjcgOC43LTkuMiAxNS40LTE5LjkgMjAuMy0zMi4yIDUuNS0xMy43IDguMi0yOC40IDguMi00NC4xbC01NC4yLTIyLjYtNTQuMiAyMi42em0yMzUuMS0yMC4zYTU2LjUgNTYuNSAwIDEgMCAwIDExMyA1Ni41IDU2LjUgMCAxIDAgMC0xMTN6bS0zNTIuOCAyLjNjNC4xIDAgNy42IDEuMyAxMC40IDMuOSAyLjggMi42IDQuMiA1LjkgNC4yIDkuNmwwIDE2LjQgMzEuMS0xOS4yYzEuNS0xLjEgMy4yLTEuNyA1LjEtMS43IDIuNCAwIDQuNiAuOCA2LjMgMi41czIuNyAzLjggMi43IDYuMmwwIDcyLjZjMCAyLjYtLjkgNC44LTIuNyA2LjVzLTMuOSAyLjUtNi4zIDIuNWMtMS45IDAtMy42LS42LTUuMS0xLjdsLTMxLjEtMTkuMiAwIDE2LjRjMCAzLjgtMS40IDctNC4yIDkuNnMtNi4zIDQtMTAuNCA0bC04OC4yIDBjLTQuMSAwLTcuNi0xLjMtMTAuNS00cy00LjItNS44LTQuMi05LjZsMC04MS4zYzAtMy44IDEuNC03IDQuMi05LjZzNi4zLTMuOSAxMC41LTMuOWw4OC4yIDB6bTE3MiA5Ny44Yy0xMS4zLTctMjAuNC0xNi40LTI3LjQtMjguMy03LjUtMTIuNC0xMS45LTI2LjYtMTMtNDIuNGw0MC40LTE3IDAgODcuNnpNMzcuNSAzNzMuNGwwIDgwLjhjLjIgLjIgLjYgLjMgMS4yIC4zbDg4LjIgMGMuNCAwIC43LS4xIDEuMS0uM2wwLTgwLjhjLS4yLS4yLS42LS4zLTEuMi0uM2wtODguMSAwYy0uNCAwLS44IC4xLTEuMiAuM3ptNDE4LjQgNS4xYzIuMy0xLjMgNC41LTEuMyA2LjggMGw0OS44IDMwLjJjMi4zIDEuMyAzLjQgMy4zIDMuNCA1LjlzLTEuMSA0LjYtMy40IDUuOWwtNDkuOCAyOC42Yy0yLjMgMS4zLTQuNSAxLjMtNi44IDBzLTMuNC0zLjMtMy40LTUuOWwwLTU4LjhjMC0yLjYgMS4xLTQuNiAzLjQtNS45ek0xNDEuNSA0MDUuNWwwIDE2LjQgMzEuNyAxOS44IDAtNTYtMzEuNyAxOS44ek00NTEuMSA1LjJjMzUuOC0xLjIgNjIuOSAxNS4xIDYzLjggNDAuOCAuNCAxMC45LTUuOSAzMi4yLTI3LjggMzMtMTYuMyAuNi0yNy42LTkuMi0yOC4xLTI0LjEtLjItNS40IDEuMi0xMC4yIDQuOS0xNS44IDMuNi03LjEgNC40LTcuOSA0LjMtMTEtLjMtOS40LTE0LjUtOS43LTE4LjMtOS41LTUzIDEuOC02Ni45IDczLjMtNzguMiAxMzEuNWwtNS42IDMwLjdjMzAuNSA0LjUgNTIuMi0xIDY0LjItOC44IDE3LTExLTQuOC0yMi40LTItMzUgMi44LTEyLjggMTQuNC0xOSAyMy43LTE5LjIgMTIuOS0uMyAyMi4yIDEzLjEgMjEuOSAyNi43LS41IDIyLjYtMzAuNCA1My42LTkwLjIgNTIuMy03LjMtLjItMTQtLjctMjAuMi0xLjRsLTExLjMgNjIuM2MtMyAxNC02LjMgMjkuNS0xMC43IDQ1LjhsMjA0IDAgLjkgLjFjLjMgLjEgLjYgLjEgLjggLjIgMi4yIC42IDQgMi41IDQuNSA0LjggLjYgMi44LTEgNi0zLjcgNy4yLS41IC4yLTEuMSAuNC0xLjcgLjUtLjMgMC0uNiAwLS45IC4xbC01MTUuMyAwYy0uNy0uMS0uOSAwLTEuNy0uMi0yLjUtLjctNC40LTMuMS00LjYtNS43LS4yLTIuMyAxLTQuNiAzLTUuOCAuNy0uNSAxLjYtLjggMi40LS45IC4zIDAgLjYgMCAuOC0uMWw0OC40IDBjLTE3LjItMTYuOC0yMC0zNy4yLTE2LTUwLjUgNS40LTE3LjYgMTkuNC0yMC45IDMzLTE2LjcgMTQuNiA0LjUgMjAuMyAyMi4zIDE2LjIgMzYtLjUgMS41LTEuMiAzLjktMi44IDcuMi0xLjcgMy44LTQuOCA3LjEtNi4yIDExLjUtMS41IDQuOSAuNyA5LjEgNC41IDEyLjZsNTguOSAwYzQuMi00IDcuNC05IDkuMS0xNC42IDUuMy0xNy01LjUtMjguOS0xMC0zMy41bC0yMS43LTIzLjJjLTkuOS0xMS4xLTMxLjctNDEuOS0yMS4xLTc2LjUgNC4xLTEzLjQgMTIuOC0yNy41IDI1LjMtMzYuOSAyNi41LTE5LjcgNTUuMy0yMyA4Mi43LTE1LjEgMzUuNSAxMC4yIDUyLjUgMzMuNyA3NC42IDUxLjggMTIuNC0zNi4zIDI5LjUtNzEuOSA1NS4zLTEwMS45IDIzLjMtMjcuMyA1NC42LTQ3LjEgOTAuNC00OC4zek0yMjkuNiAxMjEuM2MtMjIuMi02LTM1LjctLjktNDUuMiAxMS4yLTExLjMgMTQuMy03LjUgMzIuOCAzLjMgNDMuN2wxOCAxOS45YzIyIDI1LjUgMzQuMSA0NS4zIDI5LjYgNzItMi4yIDEzLjEtOC41IDI1LjItMTcuOSAzNS4zbDU0LjIgMGMxLTUuMSAyLTEwLjQgMy4xLTE1LjhsMy42LTIxLjljNS45LTI5LjQgMTIuNC02Mi4yIDIyLjMtOTQuOC0yNC4xLTE4LjEtMzguNS00MC43LTcwLjktNDkuNXoiXX0sRkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1vZG5va2xhc3NuaWtpIixpY29uOls0NDgsNTEyLFsib2Rub2tsYXNzbmlraS1zcXVhcmUiXSwiZjI2NCIsIk0yMjQgMTM3LjFjLTUuNC0uMy0xMC44IC42LTE1LjkgMi40cy05LjcgNC44LTEzLjYgOC41LTcgOC4yLTkuMiAxMy4yLTMuMiAxMC4zLTMuMiAxNS43IDEuMSAxMC44IDMuMiAxNS43IDUuMyA5LjUgOS4yIDEzLjIgOC42IDYuNiAxMy42IDguNSAxMC41IDIuNyAxNS45IDIuNGM1LjQgLjMgMTAuOC0uNiAxNS45LTIuNHM5LjctNC44IDEzLjYtOC41IDctOC4yIDkuMi0xMy4yIDMuMi0xMC4zIDMuMi0xNS43LTEuMS0xMC44LTMuMi0xNS43LTUuMy05LjUtOS4yLTEzLjItOC42LTYuNi0xMy42LTguNS0xMC41LTIuNy0xNS45LTIuNHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCAyNThhODEgODEgMCAxIDEgMC0xNjIuMSA4MSA4MSAwIDEgMSAwIDE2Mi4xem01OS4zIDYuMmMxNi44LTEzLjIgMjkuNS01LjUgMzQuMSAzLjYgNy44IDE2LTEuMSAyMy43LTIxLjUgMzctMTcuMSAxMC45LTQwLjcgMTUuMi01Ni4yIDE2LjhsMTMgMTIuOSA0Ny43IDQ3LjdjMTcuNCAxNy45LTExIDQ1LjgtMjguNiAyOC42LTEyLTEyLjItMjkuNS0yOS43LTQ3LjctNDcuOWwtNDcuNyA0Ny45Yy0xNy43IDE3LjItNDYtMTEtMjguNC0yOC42IDMuNy0zLjcgNy45LTcuOSAxMi41LTEyLjUgMTAuNC0xMC40IDIyLjYtMjIuNyAzNS4yLTM1LjJsMTIuOS0xMi45Yy0xNS40LTEuNi0zOS4zLTUuNy01Ni42LTE2LjgtMjAuMy0xMy4zLTI5LjMtMjAuOS0yMS40LTM3IDQuNi05LjEgMTcuMy0xNi44IDM0LjEtMy42IDAgMCAyMi43IDE4IDU5LjMgMThzNTkuMy0xOCA1OS4zLTE4eiJdfSxINHI9RkVlLHE0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXJrZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjYwZiIsIk01OTMuOCA1OS4xbC01NDcuNiAwQzIwLjcgNTkuMSAwIDc5LjggMCAxMDUuMkwwIDQwNi43YzAgMjUuNSAyMC43IDQ2LjIgNDYuMiA0Ni4ybDU0Ny43IDBjMjUuNSAwIDQ2LjItMjAuNyA0Ni4xLTQ2LjFsMC0zMDEuNmMwLTI1LjQtMjAuNy00Ni4xLTQ2LjItNDYuMXpNMzM4LjUgMzYwLjZsLTYxLjUgMCAwLTEyMC02MS41IDc2LjktNjEuNS03Ni45IDAgMTIwLTYxLjcgMCAwLTIwOS4yIDYxLjUgMCA2MS41IDc2LjkgNjEuNS03Ni45IDYxLjUgMCAwIDIwOS4yIC4yIDB6bTEzNS4zIDMuMWwtOTIuMy0xMDcuNyA2MS41IDAgMC0xMDQuNiA2MS41IDAgMCAxMDQuNiA2MS41IDAtOTIuMiAxMDcuN3oiXX0sVjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR5cG8zIixpY29uOls0NDgsNTEyLFtdLCJmNDJiIiwiTTE3OC43IDc4LjRjMC0yNC43IDUuNC0zMi40IDEzLjktMzkuNC02OS41IDguNS0xNDkuMyAzNC0xNzYuMyA2Ni40LTUuNCA3LjctOS4zIDIwLjgtOS4zIDM3LjEgMCAxMDMuNSAxMDYuOCAzMzcuNSAxODQuMSAzMzcuNSAzNi4zIDAgOTcuMy01OS41IDE0Ni43LTEzOS03IDIuMy0xMS42IDIuMy0xOC41IDIuMy01Ny4yIDAtMTQwLjYtMTk4LjUtMTQwLjYtMjY0Ljl6TTMwMS41IDMyYy0zMC4xIDAtNDEuNyA1LjQtNDEuNyAzNi4zIDAgNjYuNCA1My44IDE5OC41IDEwMS43IDE5OC41IDI2LjMgMCA3OC44LTk5LjcgNzguOC0xODIuMyAwLTQwLjktNjctNTIuNS0xMzguOC01Mi41eiJdfSxqNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiam9vbWxhIixpY29uOls0NDgsNTEyLFtdLCJmMWFhIiwiTS42IDkyLjFjMC0zMy4zIDI2LjgtNjAuMSA1OS44LTYwLjEgMzAgMCA1NC41IDIxLjkgNTkuMiA1MC4yIDMyLjYtNy42IDY3LjEgLjYgOTYuNSAzMGwtNDQuMyA0NC4zYy0yMC41LTIwLjUtNDIuNi0xNi4zLTU1LjQtMy41LTE0LjMgMTQuMy0xNC4zIDM3LjkgMCA1Mi4ybDk5LjUgOTkuNS00NCA0NC4zYy04Ny43LTg3LjItNDkuNy00OS43LTk5LjgtOTkuNy0yNi44LTI2LjUtMzUtNjQuOC0yNC44LTk4LjktMjYuOS01LjgtNDYuNy0yOS43LTQ2LjctNTguM3pNMTMwLjEgMjA4LjVsNDQuMyA0NC4zYzEwLTEwIDg5LjctODkuNyA5OS43LTk5LjggMTQuMy0xNC4zIDM3LjYtMTQuMyA1MS45IDAgMTIuOCAxMi44IDE3IDM1LTMuNSA1NS40bDQ0IDQ0LjNjMzEuMi0zMS4yIDM4LjUtNjcuNiAyOC45LTEwMS4yIDI5LjItNC4xIDUxLjktMjkuMiA1MS45LTU5LjUgMC0zMy4yLTI2LjgtNjAuMS01OS44LTYwLjEtMzAuMyAwLTU1LjQgMjIuNS01OS41IDUxLjYtMzMuOC05LjktNzEuNy0xLjUtOTguMyAyNS4xLTE4LjMgMTkuMS03MS4xIDcxLjUtOTkuNiA5OS45ek0zOTYuNCAzNjAuN2M4LjItMzIuNy0uOS02OC41LTI2LjMtOTMuOS0xMS44LTEyLjIgNSA0LjctOTkuNS05OS43bC00NC4zIDQ0LjMgOTkuNyA5OS43YzE0LjMgMTQuMyAxNC4zIDM3LjYgMCA1MS45LTEyLjggMTIuOC0zNSAxNy01NS40LTMuNWwtNDQgNDQuM2MyNy42IDMwLjIgNjggMzguOCAxMDIuNyAyOCA1LjUgMjcuNCAyOS43IDQ4LjEgNTguOSA0OC4xIDMzIDAgNTkuOC0yNi44IDU5LjgtNjAuMSAwLTMwLjItMjIuNS01NS01MS42LTU5LjF6bS04NC4zLTUzLjFsLTQ0LTQ0LjNjLTg3IDg2LjQtNTAuNCA1MC40LTk5LjcgOTkuOC0xNC4zIDE0LjMtMzcuNiAxNC4zLTUxLjkgMC0xMy4xLTEzLjQtMTYuOS0zNS4zIDMuMi01NS40bC00NC00NC4zYy0zMC4yIDMwLjItMzggNjUuMi0yOS41IDk4LjMtMjYuNyA2LTQ2LjIgMjkuOS00Ni4yIDU4LjIgMCAzMy4zIDI2LjggNjAuMSA1OS44IDYwLjEgMjguNiAwIDUyLjUtMTkuOCA1OC42LTQ2LjcgMzIuNyA4LjIgNjguNS0uNiA5NC4yLTI2IDMyLjEtMzIgMTIuMi0xMi40IDk5LjUtOTkuN3oiXX0sVTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlaXhpbiIsaWNvbjpbNTc2LDUxMixbXSwiZjFkNyIsIk0zODUuMiAxNjcuNmM2LjQgMCAxMi42IC4zIDE4LjggMS4xLTE2LjYtNzguNC0xMDAuNy0xMzYuNy0xOTYuMy0xMzYuNy0xMDcuMiAwLTE5NC43IDcyLjgtMTk0LjcgMTY1LjQgMCA1My40IDI5LjMgOTcuNSA3Ny45IDEzMS42bC0xOS4zIDU4LjYgNjgtMzQuMWMyNC40IDQuOCA0My44IDkuNyA2OC4yIDkuNyA2LjIgMCAxMi4xLS4zIDE4LjMtLjgtNC0xMi45LTYuMi0yNi42LTYuMi00MC44LS4xLTg0LjkgNzIuOS0xNTQgMTY1LjMtMTU0ek0yODAuNyAxMTQuN2MxNC41IDAgMjQuMiA5LjcgMjQuMiAyNC40IDAgMTQuNS05LjcgMjQuMi0yNC4yIDI0LjItMTQuOCAwLTI5LjMtOS43LTI5LjMtMjQuMiAuMS0xNC43IDE0LjYtMjQuNCAyOS4zLTI0LjR6TTE0NC4zIDE2My4zYy0xNC41IDAtMjkuMy05LjctMjkuMy0yNC4yIDAtMTQuOCAxNC44LTI0LjQgMjkuMy0yNC40IDE0LjggMCAyNC40IDkuNyAyNC40IDI0LjQgMCAxNC42LTkuNiAyNC4yLTI0LjQgMjQuMnpNNTYzIDMxOS40YzAtNzcuOS03Ny45LTE0MS4zLTE2NS40LTE0MS4zLTkyLjcgMC0xNjUuNCA2My40LTE2NS40IDE0MS4zUzMwNSA0NjAuNyAzOTcuNiA0NjAuN2MxOS4zIDAgMzguOS01LjEgNTguNi05LjlsNTMuNCAyOS4zLTE0LjgtNDguNkM1MzQgNDAyLjEgNTYzIDM2My4yIDU2MyAzMTkuNHpNMzQzLjkgMjk0LjljLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuOCAwIDI0LjQgOS43IDI0LjQgMTkuMyAwIDEwLTkuNyAxOS42LTI0LjQgMTkuNnptMTA3LjEgMGMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC41IDAgMjQuNCA5LjcgMjQuNCAxOS4zIC4xIDEwLTkuOSAxOS42LTI0LjQgMTkuNnoiXX0sVzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdydW50IixpY29uOlszODQsNTEyLFtdLCJmM2FkIiwiTTYxLjYgMTg5LjNjLTEuMSAxMCA1LjIgMTkuMSA1LjIgMTkuMSAuNy03LjUgMi4yLTEyLjggNC0xNi42IC40IDEwLjMgMy4yIDIzLjUgMTIuOCAzNC4xIDYuOSA3LjYgMzUuNiAyMy4zIDU0LjkgNi4xIDEgMi40IDIuMSA1LjMgMyA4LjUgMi45IDEwLjMtMi43IDI1LjMtMi43IDI1LjNzMTUuMS0xNy4xIDEzLjktMzIuNWMxMC44LS41IDIxLjQtOC40IDIxLjEtMTkuNSAwIDAtMTguOSAxMC40LTM1LjUtOC44LTkuNy0xMS4yLTQwLjktNDItODMuMS0zMS44IDQuMyAxIDguOSAyLjQgMTMuNSA0LjFsLS4xIDBjLTQuMiAyLTYuNSA3LjEtNyAxMnptMjguMy0xLjhjMTkuNSAxMSAzNy40IDI1LjcgNDQuOSAzNy01LjcgMy4zLTIxLjcgMTAuNC0zOC0xLjctMTAuMy03LjYtOS44LTI2LjItNi45LTM1LjN6TTIzMiAyMzMuM2MtMS4yIDE1LjUgMTMuOSAzMi41IDEzLjkgMzIuNXMtNS42LTE1LTIuNy0yNS4zYy45LTMuMiAyLTYgMy04LjUgMTkuMyAxNy4zIDQ4IDEuNSA1NC44LTYuMSA5LjYtMTAuNiAxMi4zLTIzLjggMTIuOC0zNC4xIDEuOCAzLjggMy40IDkuMSA0IDE2LjYgMCAwIDYuNC05LjEgNS4yLTE5LjEtLjYtNS0yLjktMTAtNy0xMS44bC0uMSAwYzQuNi0xLjggOS4yLTMuMiAxMy41LTQuMS00Mi4zLTEwLjItNzMuNCAyMC42LTgzLjEgMzEuOC0xNi43IDE5LjItMzUuNSA4LjgtMzUuNSA4LjgtLjIgMTAuOSAxMC40IDE4LjkgMjEuMiAxOS4zem02Mi43LTQ1LjhjMyA5LjEgMy40IDI3LjctNyAzNS40LTE2LjMgMTIuMS0zMi4yIDUtMzcuOSAxLjYgNy41LTExLjQgMjUuNC0yNiA0NC45LTM3em0tMTM0LjQgMjMxbC0yOS40IDBjLTUuNSAwLTguMiAxLjYtOS41IDIuOS0xLjkgMi0yLjIgNC43LS45IDguMSAzLjUgOS4xIDExLjQgMTYuNSAxMy43IDE4LjYgMy4xIDIuNyA3LjUgNC4zIDExLjggNC4zIDQuNCAwIDguMy0xLjcgMTEtNC42IDcuNS04LjIgMTEuOS0xNy4xIDEzLTE5LjggLjYtMS41IDEuMy00LjUtLjktNi44LTEuOC0xLjgtNC43LTIuNy04LjgtMi43ek0zNDkuNSAzMTcuM2MtMi40IDE3LjktMTMgMzMuOC0yNC42IDQzLjctMy4xLTIyLjctMy43LTU1LjUtMy43LTYyLjQgMC0xNC43IDkuNS0yNC41IDEyLjItMjYuMSAyLjUtMS41IDUuNC0zIDguMy00LjYgMTgtOS42IDQwLjQtMjEuNiA0MC40LTQzLjcgMC0xNi4yLTkuMy0yMy4yLTE1LjQtMjcuOC0uOC0uNi0xLjUtMS4xLTIuMi0xLjctMi4xLTEuNy0zLjctMy00LjMtNC40LTQuNC05LjgtMy42LTM0LjItMS43LTM3LjYgLjYtLjYgMTYuNy0yMC45IDExLjgtMzkuMi0yLTcuNC02LjktMTMuMy0xNC4xLTE3LTUuMy0yLjctMTEuOS00LjItMTkuNS00LjUtLjEtMi0uNS0zLjktLjktNS45LS42LTIuNi0xLjEtNS4zLS45LTguMSAuNC00LjcgLjgtOSAyLjItMTEuMyA4LjQtMTMuMyAyOC44LTE3LjYgMjktMTcuNmwxMi4zLTIuNC04LjEtOS41Yy0uMS0uMi0xNy4zLTE3LjUtNDYuMy0xNy41LTcuOSAwLTE2IDEuMy0yNC4xIDMuOS0yNC4yIDcuOC00Mi45IDMwLjUtNDkuNCAzOS4zLTMuMS0xLTYuMy0xLjktOS42LTIuNy00LjItMTUuOCA5LTM4LjUgOS0zOC41cy0xMy42LTMtMzMuNyAxNS4yYy0yLjYtNi41LTguMS0yMC41LTEuOC0zNy4yLTI5LjUgMTAuNC0zNi45IDI2LjMtMzkuMSA0MC43LTcuNi01LjQtNi43LTIzLjEtNy4yLTI3LjYtNy41IC45LTI5LjIgMjEuOS0yOC4yIDQ4LjMtMiAuNS0zLjkgMS4xLTUuOSAxLjctNi41LTguOC0yNS4xLTMxLjUtNDkuNC0zOS4zLTcuOS0yLjItMTYtMy41LTIzLjktMy41LTI5IDAtNDYuMSAxNy4zLTQ2LjMgMTcuNWwtOC4xIDkuNCAxMi4zIDIuNGMuMiAwIDIwLjYgNC4zIDI5IDE3LjYgMS40IDIuMiAxLjggNi42IDIuMiAxMS4zIC4yIDIuOC0uNCA1LjUtLjkgOC4xLS40IDEuOS0uOCAzLjktLjkgNS45LTcuNyAuMy0xNC4yIDEuOC0xOS41IDQuNS03LjIgMy43LTEyLjEgOS42LTE0LjEgMTctNSAxOC4yIDExLjIgMzguNSAxMS44IDM5LjIgMS45IDMuNCAyLjcgMjcuOC0xLjcgMzcuNi0uNiAxLjQtMi4yIDIuNy00LjMgNC40LS43IC41LTEuNCAxLjEtMi4yIDEuNy02LjEgNC42LTE1LjQgMTEuNy0xNS40IDI3LjggMCAyMi4xIDIyLjQgMzQuMSA0MC40IDQzLjcgMyAxLjYgNS44IDMuMSA4LjMgNC42IDIuNyAxLjYgMTIuMiAxMS40IDEyLjIgMjYuMSAwIDYuOS0uNiAzOS43LTMuNyA2Mi40LTExLjYtOS45LTIyLjItMjUuOS0yNC42LTQzLjggMCAwLTI5LjIgMjIuNi0yMC42IDcwLjggNS4yIDI5LjUgMjMuMiA0Ni4xIDQ3IDU0LjcgOC44IDE5LjEgMjkuNCA0NS43IDY3LjMgNDkuNiAxNC40IDExLjggMzQuNCAxOS41IDYzLjYgMTkuNWwuMiAwYzI5LjEgMCA0OS4xLTcuNyA2My42LTE5LjUgMzcuOS0zLjkgNTguNS0zMC41IDY3LjMtNDkuNiAyMy44LTguNyA0MS43LTI1LjIgNDctNTQuNyA4LjItNDguNC0yMS4xLTcwLjktMjEuMS03MC45ek0zMDYgMzcuN2M1LjYtMS44IDExLjYtMi43IDE3LjctMi43IDExIDAgMTkuOSAzIDI0LjcgNS0zLjEgMS40LTYuNCAzLjItOS43IDUuMy0yLjQtLjQtNS42LS44LTkuMi0uOC0xMC41IDAtMjAuNSAzLjEtMjguNyA4LjktMTIuMyA4LjctMTggMTYuOS0yMC43IDIyLjQtMi4yLTEuMy00LjUtMi41LTcuMS0zLjctMS42LS44LTMuMS0xLjUtNC43LTIuMiA2LjEtOS4xIDE5LjktMjYuNSAzNy43LTMyLjJ6bTIxIDE4LjJjLS44IDEtMS42IDIuMS0yLjMgMy4yLTMuMyA1LjItMy45IDExLjYtNC40IDE3LjgtLjUgNi40LTEuMSAxMi41LTQuNCAxNy00LjIgLjgtOC4xIDEuNy0xMS41IDIuNy0yLjMtMy4xLTUuNi03LTEwLjUtMTEuMiAxLjQtNC44IDUuNS0xNi4xIDEzLjUtMjIuNSA1LjYtNC4zIDEyLjItNi43IDE5LjYtN3pNNDUuOSA0NS4zYy0zLjMtMi4yLTYuNi00LTkuNy01LjMgNC44LTIgMTMuNy01IDI0LjctNSA2LjEgMCAxMiAuOSAxNy43IDIuNyAxNy44IDUuOCAzMS42IDIzLjIgMzcuNyAzMi4xLTEuNiAuNy0zLjIgMS40LTQuOCAyLjItMi41IDEuMi00LjkgMi41LTcuMSAzLjctMi42LTUuNC04LjMtMTMuNy0yMC43LTIyLjQtOC4zLTUuOC0xOC4yLTguOS0yOC44LTguOS0zLjQgLjEtNi42IC41LTkgLjl6TTkwLjYgODUuNGMtNC45IDQuMi04LjMgOC0xMC41IDExLjItMy40LS45LTcuMy0xLjktMTEuNS0yLjctMy4zLTQuNC0zLjgtMTAuNS00LjMtMTYuOS0uNS02LjItMS4xLTEyLjYtNC40LTE3LjgtLjctMS4xLTEuNS0yLjItMi4zLTMuMiA3LjQgLjMgMTQgMi42IDE5LjUgNyA4IDYuMyAxMi4xIDE3LjYgMTMuNSAyMi40ek01OC40IDI1OS45Yy0yLjctMS42LTUuNi0zLjEtOC40LTQuNi0xNC45LTgtMzAuMi0xNi4zLTMwLjItMzAuNSAwLTExLjEgNC4zLTE0LjYgOC45LTE4LjJsLjUtLjRjLjctLjYgMS40LTEuMiAyLjItMS44LS45IDcuMi0xLjkgMTMuMy0yLjcgMTQuOSAwIDAgMTIuMS0xNSAxNS43LTQ0LjMgMS40LTExLjUtMS4xLTM0LjMtNS4xLTQzIC4yIDQuOSAwIDkuOC0uMyAxNC40LS40LS44LS44LTEuNi0xLjMtMi4yLTMuMi00LTExLjgtMTcuNS05LjQtMjYuNiAuOS0zLjUgMy4xLTYgNi43LTcuOCAzLjgtMS45IDguOC0yLjkgMTUuMS0yLjkgMTIuMyAwIDI1LjkgMy43IDMyLjkgNiAyNS4xIDggNTUuNCAzMC45IDY0LjEgMzcuNyAuMiAuMiAuNCAuMyAuNCAuM2w1LjYgMy45LTMuNS01LjhjLS4yLS4zLTE5LjEtMzEuNC01My4yLTQ2LjUgMi0yLjkgNy40LTguMSAyMS42LTE1LjEgMjEuNC0xMC41IDQ2LjUtMTUuOCA3NC4zLTE1LjggMjcuOSAwIDUyLjkgNS4zIDc0LjMgMTUuOCAxNC4yIDYuOSAxOS42IDEyLjIgMjEuNiAxNS4xLTM0IDE1LjEtNTIuOSA0Ni4yLTUzLjEgNDYuNWwtMy41IDUuOCA1LjYtMy45cy4yLS4xIC40LS4zYzguNy02LjggMzktMjkuOCA2NC4xLTM3LjcgNy0yLjIgMjAuNi02IDMyLjktNiA2LjMgMCAxMS4zIDEgMTUuMSAyLjkgMy41IDEuOCA1LjcgNC40IDYuNyA3LjggMi41IDkuMS02LjEgMjIuNi05LjQgMjYuNi0uNSAuNi0uOSAxLjMtMS4zIDIuMi0uMy00LjYtLjUtOS41LS4zLTE0LjQtNCA4LjgtNi41IDMxLjUtNS4xIDQzIDMuNiAyOS4zIDE1LjcgNDQuMyAxNS43IDQ0LjMtLjgtMS42LTEuOC03LjctMi43LTE0LjkgLjcgLjYgMS41IDEuMiAyLjIgMS44bC41IC40YzQuNiAzLjcgOC45IDcuMSA4LjkgMTguMiAwIDE0LjItMTUuNCAyMi41LTMwLjIgMzAuNS0yLjkgMS41LTUuNyAzLjEtOC40IDQuNi04LjcgNS0xOCAxNi43LTE5LjEgMzQuMi0uOSAxNC42IC45IDQ5LjkgMy40IDc1LjktMTIuNCA0LjgtMjYuNyA2LjQtMzkuNyA2LjgtMi00LjEtMy45LTguNS01LjUtMTMuMS0uNy0yLTE5LjYtNTEuMS0yNi40LTYyLjIgNS41IDM5IDE3LjUgNzMuNyAyMy41IDg5LjYtMy41LS41LTcuMy0uNy0xMS43LS43bC0xMTcgMGMtNC40IDAtOC4zIC4zLTExLjcgLjcgNi0xNS45IDE4LjEtNTAuNiAyMy41LTg5LjYtNi44IDExLjItMjUuNyA2MC4zLTI2LjQgNjIuMi0xLjYgNC42LTMuNSA5LTUuNSAxMy4xLTEzLS40LTI3LjItMi0zOS43LTYuOCAyLjUtMjYgNC4zLTYxLjIgMy40LTc1LjktLjktMTcuNC0xMC4zLTI5LjItMTktMzQuMnpNMzUuMSA0MDQuNmMtMTIuMS0yMC04LjctNTQuMS0zLjctNTkuMSAxMC45IDM0LjQgNDcuMiA0NC4zIDc0LjQgNDUuNC0yLjcgNC4yLTUuMiA3LjYtNyAxMGwtMS40IDEuNGMtNy4yIDcuOC04LjYgMTguNS00LjEgMzEuOC0yMi43LS4xLTQ2LjMtOS44LTU4LjItMjkuNXptNDUuNyA0My41YzYgMS4xIDEyLjIgMS45IDE4LjYgMi40IDMuNSA4IDcuNCAxNS45IDEyLjMgMjMuMS0xNC40LTUuOS0yNC40LTE2LTMwLjktMjUuNXptMTExLjUgNTAuMWMtNjAuNi0uMS03OC4zLTQ1LjgtODQuOS02NC43LTMuNy0xMC41LTMuNC0xOC4yIC45LTIzLjEgMi45LTMuMyA5LjUtNy4yIDI0LjYtNy4ybDExOC44IDBjMTUuMSAwIDIxLjggMy45IDI0LjYgNy4yIDQuMiA0LjggNC41IDEyLjYgLjkgMjMuMS02LjYgMTguOC0yNC4zIDY0LjYtODQuOSA2NC43em04MC42LTI0LjZjNC45LTcuMiA4LjgtMTUuMSAxMi4zLTIzLjEgNi40LS41IDEyLjYtMS4zIDE4LjYtMi40LTYuNSA5LjUtMTYuNSAxOS42LTMwLjkgMjUuNXptNzYuNi02OWMtMTIgMTkuNy0zNS42IDI5LjMtNTguMSAyOS43IDQuNS0xMy4zIDMuMS0yNC4xLTQuMS0zMS44LS40LS41LS45LTEtMS40LTEuNS0xLjgtMi40LTQuMy01LjgtNy0xMCAyNy4yLTEuMiA2My41LTExIDc0LjQtNDUuNCA1IDUgOC40IDM5LjEtMy44IDU5ek0xOTIuMiAxODcuN2wuMiAwYzEyLjctLjEgMjcuMi0xNy44IDI3LjItMTcuOC05LjkgNi0xOC44IDguMS0yNy4zIDguMy04LjUtLjItMTcuNC0yLjMtMjcuMy04LjMgMCAwIDE0LjUgMTcuNiAyNy4yIDE3Ljh6bTYxLjcgMjMwLjdsLTI5LjQgMGMtNC4yIDAtNy4yIC45LTguOSAyLjctMi4yIDIuMy0xLjUgNS4yLS45IDYuNyAxIDIuNiA1LjUgMTEuMyAxMyAxOS4zIDIuNyAyLjkgNi42IDQuNSAxMSA0LjVzOC43LTEuNiAxMS44LTQuMmMyLjMtMiAxMC4yLTkuMiAxMy43LTE4LjEgMS4zLTMuMyAxLTYtLjktNy45LTEuMy0xLjMtNC0yLjktOS40LTN6Il19LEc0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXBwb3J0bm93IixpY29uOls2NDAsNTEyLFtdLCJlODMzIiwiTTAgMTkxLjlsMjAzLjktLjFjMS44LS42IDIuNS05LjUgMy4yLTEyLjIgMy4zLTEzLjUgOC40LTI2LjQgMTQuOC0zOC43bC0xNjAuMiAwIDAtNDguMiAyMzQuNSAwIDAgMzljLTUxLjIgMzYuMS01Ni40IDkyLjYtMjMuNiAxNDMuOSAzMy4xIDUxLjcgOTMuNCA4OC4xIDE0OS41IDExMC41IDY3LjgtMjUuMiAxNjQuOS04OS45IDE2OS40LTE2OS42IDMuMS01NS4zLTQyLjItMTAxLjgtOTguNy05MS44LTQxLjUgNy40LTYyLjEgNDYuNy01NC44IDg2LjRsLTQ4LjIgMGMtNy4zLTU2LjYgMjIuOC0xMTIuNiA3OC40LTEzMC4zIDc4LjctMjUuMSAxNTkuNSAyOCAxNzAuNCAxMDguOCAxNS4yIDExMi4zLTk1LjUgMTk5LjktMTg4LjEgMjM3LjgtNC40IDEuOC0yNC40IDEwLjEtMjcuNSAxMC4xbC0yODAuMyAwIDAtNDguMiAxNzguNSAwLTM4LjEtMjguOS0yMy4yLTIyLjEtMTk4LjMgMCAwLTQ4LjIgMTYzLjEgMGMtNy4xLTExLjYtMTIuMy0yNC4zLTE2LjEtMzcuNC0uNy0yLjUtMi4xLTEyLTMuOC0xMi42bC0yMDQuOS0uMSAwLTQ4LjIgMCAweiJdfSxZNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja3JtcyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlOSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQxMy40IDQyNy41bC05MCAwLTExMi0xMzEuM2MtMTcuOS0yMC40LTMuOS01Ni4xIDI2LjYtNTYuMWw3NS4zIDAtODQuNi05OS4zLTg0LjMgOTguOS05MCAwIDE0Ny4xLTE3Mi41YzE0LjQtMTguNCA0MS4zLTE3LjMgNTQuNSAwTDQxMy43IDI1Mi4zYzE5IDIyLjggMiA1Ny4yLTI3LjYgNTYuMS0uNiAwLTc0LjIgLjItNzQuMiAuMkw0MTMuNCA0MjcuNXoiXX0sSzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuc3BsYXNoIixpY29uOls0NDgsNTEyLFtdLCJlMDdjIiwiTTQ0OCAyMzAuMmwwIDI0OS44LTQ0OCAwIDAtMjQ5LjggMTQxLjEgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOSAxNDEuMSAwek0zMDYuOSAzMmwtMTY1LjcgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOXoiXX0sQkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1pbnN0YWdyYW0iLGljb246WzQ0OCw1MTIsWyJpbnN0YWdyYW0tc3F1YXJlIl0sImUwNTUiLCJNMTk0LjQgMjExLjdhNTMuMyA1My4zIDAgMSAwIDU5LjIgODguNiA1My4zIDUzLjMgMCAxIDAgLTU5LjItODguNnptMTQyLjMtNjguNGMtNS4yLTUuMi0xMS41LTkuMy0xOC40LTEyLTE4LjEtNy4xLTU3LjYtNi44LTgzLjEtNi41LTQuMSAwLTcuOSAuMS0xMS4yIC4xcy03LjIgMC0xMS40LS4xYy0yNS41LS4zLTY0LjgtLjctODIuOSA2LjUtNi45IDIuNy0xMy4xIDYuOC0xOC40IDEycy05LjMgMTEuNS0xMiAxOC40Yy03LjEgMTguMS02LjcgNTcuNy02LjUgODMuMiAwIDQuMSAuMSA3LjkgLjEgMTEuMXMwIDctLjEgMTEuMWMtLjIgMjUuNS0uNiA2NS4xIDYuNSA4My4yIDIuNyA2LjkgNi44IDEzLjEgMTIgMTguNHMxMS41IDkuMyAxOC40IDEyYzE4LjEgNy4xIDU3LjYgNi44IDgzLjEgNi41IDQuMSAwIDcuOS0uMSAxMS4yLS4xczcuMiAwIDExLjQgLjFjMjUuNSAuMyA2NC44IC43IDgyLjktNi41IDYuOS0yLjcgMTMuMS02LjggMTguNC0xMnM5LjMtMTEuNSAxMi0xOC40YzcuMi0xOCA2LjgtNTcuNCA2LjUtODMgMC00LjItLjEtOC4xLS4xLTExLjRzMC03LjEgLjEtMTEuNGMuMy0yNS41IC43LTY0LjktNi41LTgzLTIuNy02LjktNi44LTEzLjEtMTItMTguNGwwIC4yem0tNjcuMSA0NC41YzE4LjEgMTIuMSAzMC42IDMwLjkgMzQuOSA1Mi4ycy0uMiA0My41LTEyLjMgNjEuNmMtNiA5LTEzLjcgMTYuNi0yMi42IDIyLjZzLTE5IDEwLjEtMjkuNiAxMi4yYy0yMS4zIDQuMi00My41LS4yLTYxLjYtMTIuM3MtMzAuNi0zMC45LTM0LjktNTIuMiAuMi00My41IDEyLjItNjEuNiAzMC45LTMwLjYgNTIuMi0zNC45IDQzLjUgLjIgNjEuNiAxMi4ybC4xIDB6bTI5LjItMS4zYy0zLjEtMi4xLTUuNi01LjEtNy4xLTguNnMtMS44LTcuMy0xLjEtMTEuMSAyLjYtNy4xIDUuMi05LjggNi4xLTQuNSA5LjgtNS4yIDcuNi0uNCAxMS4xIDEuMSA2LjUgMy45IDguNiA3IDMuMiA2LjggMy4yIDEwLjZjMCAyLjUtLjUgNS0xLjQgNy4zcy0yLjQgNC40LTQuMSA2LjItMy45IDMuMi02LjIgNC4yLTQuOCAxLjUtNy4zIDEuNWMtMy44IDAtNy41LTEuMS0xMC42LTMuMmwtLjEgMHpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTM1NyAzODljLTE4LjcgMTguNy00MS40IDI0LjYtNjcgMjUuOS0yNi40IDEuNS0xMDUuNiAxLjUtMTMyIDAtMjUuNi0xLjMtNDguMy03LjItNjctMjUuOXMtMjQuNi00MS40LTI1LjgtNjdjLTEuNS0yNi40LTEuNS0xMDUuNiAwLTEzMiAxLjMtMjUuNiA3LjEtNDguMyAyNS44LTY3czQxLjUtMjQuNiA2Ny0yNS44YzI2LjQtMS41IDEwNS42LTEuNSAxMzIgMCAyNS42IDEuMyA0OC4zIDcuMSA2NyAyNS44czI0LjYgNDEuNCAyNS44IDY3YzEuNSAyNi4zIDEuNSAxMDUuNCAwIDEzMS45LTEuMyAyNS42LTcuMSA0OC4zLTI1LjggNjdsMCAuMXoiXX0sWjRyPUJFZSxRNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXItYWx0IixpY29uOls1MTIsNTEyLFtdLCJmNTBhIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA3LjhhMjQwLjIgMjQwLjIgMCAxIDEgMCA0ODAuNCAyNDAuMiAyNDAuMiAwIDEgMSAwLTQ4MC40em0wIDIwLjVhMjE5LjcgMjE5LjcgMCAxIDAgMCA0MzkuNCAyMTkuNyAyMTkuNyAwIDEgMCAwLTQzOS40em0wIDguMmEyMTEuNSAyMTEuNSAwIDEgMSAwIDQyMyAyMTEuNSAyMTEuNSAwIDEgMSAwLTQyM3ptMTg2LjIgMjYwYy00LjQgMTcuMS0xMS4yIDMzLjUtMjAuMSA0OC43bC03NC4xLTM1LjkgNjEuNSA1NC44Yy0xMC42IDE0LjEtMjMuMiAyNi42LTM3LjIgMzcuM2wtNTQuOC02MS42IDM1LjkgNzQuM2MtMTUuMiA5LTMxLjYgMTUuOC00OC42IDIwLjJsLTI3LjMtNzguNSA0LjggODIuOWMtOC42IDEuMi0xNy40IDEuOC0yNi4zIDEuOHMtMTcuNy0uNi0yNi4zLTEuOGw0LjgtODIuNS0yNy4yIDc4Yy0xNy4xLTQuNS0zMy40LTExLjMtNDguNy0yMC4ybDM1LjktNzQuMy01NC45IDYxLjZjLTE0LTEwLjctMjYuNi0yMy4yLTM3LjItMzcuM2w2MS42LTU0LjktNzQuMyAzNS45QzgwLjcgMzM4IDc0IDMyMS43IDY5LjUgMzA0LjZsNzcuOC0yNy4xLTgyLjIgNC44Yy0xLjItOC42LTEuOC0xNy4zLTEuOC0yNi4yIDAtOSAuNi0xNy44IDEuOC0yNi41bDgyLjQgNC44LTc3LjktMjcuMmM0LjUtMTcuMSAxMS4zLTMzLjUgMjAuMi00OC43bDc0LjIgMzUuOS02MS41LTU0LjljMTAuNy0xNCAyMy4yLTI2LjYgMzcuMy0zNy4ybDU0LjggNjEuNS0zNS44LTc0LjJjMTUuMi04LjkgMzEuNi0xNS43IDQ4LjYtMjAuMWwyNi45IDc3LjItNC43LTgxLjZjOC42LTEuMiAxNy40LTEuOCAyNi4zLTEuOHMxNy43IC42IDI2LjMgMS44bC00LjcgODIuMiAyNy03Ny44YzE3LjMgNC41IDMzLjYgMTEuNCA0OC42IDIwLjJsLTM1LjggNzQuMSA1NC43LTYxLjVjMTQuMSAxMC43IDI2LjYgMjMuMiAzNy4yIDM3LjJsLTYxLjQgNTQuOCA3NC4xLTM1LjljOC45IDE1LjIgMTUuNyAzMS42IDIwLjIgNDguNmwtNzcuOCAyNy4xIDgyLjItNC43YzEuMiA4LjcgMS44IDE3LjUgMS44IDI2LjUgMCA4LjktLjYgMTcuNi0xLjggMjYuMmwtODIuMS00LjcgNzcuNyAyNy4xeiJdfSxYNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnVsY3J1bSIsaWNvbjpbMjU2LDUxMixbXSwiZjUwYiIsIk02My44IDE2NC4xTDI4LjQgMjA3LjctNyAxNjQuMSAyOC40IDEyMC42IDYzLjggMTY0LjF6TTExMi4yIDBsLTIwLjUgMTk4LjItNTEgNTcuOCA1MSA1Ny44IDIwLjUgMTk4LjIgMC0yMTEuMS00MS4xLTQ0LjkgNDEuMS00NC45IDAtMjExLjF6bTc5LjcgMTY0LjFsMzUuNCA0My42IDM1LjQtNDMuNi0zNS40LTQzLjUtMzUuNCA0My41em0tNDguNSA0N2w0MS4xIDQ0LjktNDEuMSA0NC45IDAgMjExLjEgMjAuNi0xOTguMiA1MS01Ny44LTUxLTU3LjgtMjAuNi0xOTguMiAwIDIxMS4xeiJdfSxKNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJjaC1saW51eCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NyIsIk0yODguNy03LjhjLTI0LjEgNTktMzguNiA5Ny43LTY1LjQgMTU1IDE2LjQgMTcuNCAzNi42IDM3LjYgNjkuNCA2MC41LTM1LjItMTQuNS01OS4yLTI4LjktNzcuMi00NC0zNC4zIDcxLjYtODguMSAxNzMuNS0xOTcuMiAzNjkuNCA4NS43LTQ5LjUgMTUyLjItODAgMjE0LjEtOTEuNi0yLjctMTEuNC00LjEtMjMuOC00LTM2LjdsLjEtMi43YzEuNC01NC45IDI5LjktOTcuMiA2My44LTk0LjRzNjAuMiA0OS44IDU4LjggMTA0LjdjLS4zIDEwLjMtMS40IDIwLjItMy40IDI5LjQgNjEuMiAxMiAxMjcgNDIuNCAyMTEuNiA5MS4yLTE2LjctMzAuNy0zMS42LTU4LjMtNDUuOC04NC43LTIyLjQtMTcuNC00NS43LTM5LjktOTMuMy02NC40IDMyLjcgOC41IDU2LjMgMTguMyA3NC41IDI5LjMtMTQ0LjUtMjY5LjEtMTU2LjItMzA0LjgtMjA1LjgtNDIxLjF6Il19LGUzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRpdmVyc2UiLGljb246WzU3Niw1MTIsW10sImU4NjUiLCJNMzk0LjggNTI2LjlhNTQgNTQgMCAxIDEgNS44LTEwNy44IDU0IDU0IDAgMSAxIC01LjggMTA3Ljh6bS01MC4xLTgwLjZjLTUuNSAxMC45LTcuNCAyMy4zLTUuNiAzNS40TDE2OC43IDQ1NC40YzUuNS0xMC45IDcuNS0yMy4zIDUuNy0zNS40bDE3MC4zIDI3LjN6TTExMi43IDQ4MS42YTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44em0yNTcuNy02MS40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zbC03MC42LTcwLjkgMzMuNi0xNyA2Mi40IDYyLjd6TTQ4Ni4xIDI2MWM4LjcgOC42IDE5LjggMTQuMyAzMS45IDE2LjRMNDM5LjQgNDMwLjhjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuNEw0ODYuMSAyNjF6TTM3Ni43IDIxOS4zbDMwLjUgMTk1LjFjLTEyLjEtMS45LTI0LjUtLjEtMzUuNCA1LjNsLTMyLjItMjA2LjMgMzcuMiA2ek0zNTAuNCAzMjguOUwxNzQuMiA0MTguMmMtMi0xMi4xLTcuNi0yMy4yLTE2LjItMzJsMTg2LjYtOTQuNiA1LjggMzcuMnptLTE1Mi43LTIybC00MC4zIDc4LjdjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuM2w0NS42LTg5IDI2LjYgMjYuN3pNMTI0LjcgMzY5Yy0xMi4xLTEuOC0yNC40IC4yLTM1LjQgNS42TDYyLjcgMjA0LjNjMTIuMSAxLjggMjQuNS0uMSAzNS40LTUuNkwxMjQuNyAzNjl6bTE0Ny4xLTQ3LjhsLTMzLjYgMTctMTM5LjQtMTM5LjljMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0wyNzEuOCAzMjEuMnptMTk3LjUtOTIuOGMyIDEyLjEgNy42IDIzLjIgMTYuMiAzMS45bC04OS4zIDQ1LjItNS44LTM3LjIgNzguOS00MHptNTUuNiA0NC4zYTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44ek0yODQuNiA1OC43YzguNyA4LjYgMTkuOCAxNC4zIDMxLjggMTYuM2wtOTUuMyAxODYuMS0yNi42LTI2LjcgOTAtMTc1Ljh6TTQ3NC45IDE5Mi4xYy01LjUgMTAuOS03LjUgMjMuMy01LjcgMzUuM2wtMjA2LjQtMzMuMSAxNy4yLTMzLjUgMTk1IDMxLjN6TTY4LjcgMTk5LjZBNTQgNTQgMCAxIDEgNzQuNiA5MS44IDU0IDU0IDAgMSAxIDY4LjcgMTk5LjZ6bTQzMi0zMy40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zTDM1My41IDY5LjNjMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0w1MDAuNiAxNjYuMnpNMjI5LjMgMTUyLjZsLTE3LjIgMzMuNS04Ny40LTE0YzUuNC0xMC45IDcuNC0yMy4zIDUuNS0zNS40bDk5IDE1Ljl6bTEzOS41IDE1LjlsLTM3LjItNi0xMy42LTg3LjJjMTIuMSAxLjcgMjQuNS0uMyAzNS4zLTUuOWwxNS41IDk5LjF6TTI2Ny44IDI2LjJjMiAxMi4xIDcuNiAyMy4yIDE2LjIgMzEuOWwtMTUzLjkgNzhjLTItMTIuMS03LjYtMjMuMi0xNi4yLTMxLjlsMTUzLjktNzh6bTU1LjYgNDQuM2E1NCA1NCAwIDEgMSA1LjgtMTA3LjggNTQgNTQgMCAxIDEgLTUuOCAxMDcuOHoiXX0sdDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlLXJldmVyc2UiLGljb246WzQ0OCw1MTIsW10sImU2M2QiLCJNMjk4LjUgMGMzIDAgNS44IDEuMyA3LjggMy42bDM4LjEgNDRjLjUtLjEgMS0uMiAxLjUtLjMgOS4yLTEuNiAxOC42LTIuMiAyNy43LTEuMiAxMS42IDEuNCAyMS41IDUuNCAyOC45IDEyLjkgNy43IDcuOCAxNS40IDE1LjggMjIuNiAyMy42IDIuNSAyLjcgNC45IDUuMiA2LjkgNy40IC43IC44IDEuNCAxLjUgMS45IDIgMy40IDMuNyA0LjIgOC4xIDIuNyAxMS45bC05LjggMjQuNiAxMy4xIDM4LjFjLjcgMiAuOCA0LjEgLjIgNi4yLS4xIC40LS4xIC40LS41IDIuMWwtMS41IDUuOGMtMS42IDYuMy0zLjUgMTMuMy01LjQgMjAuOS01LjYgMjEuNi0xMS4yIDQzLjItMTYuNCA2My40LTEyLjkgNDkuOS0yMS40IDgyLjctMjMuNCA5MC45LTExLjEgNDQuNS0xOS45IDYwLTQ4LjMgODAuMy0yNC45IDE3LjgtNzYuOCA1My42LTg2LjggNjAtMSAuNi0yIDEuMy0zLjQgMi4zLS41IC40LTMuMiAyLjItMy45IDIuNy00LjkgMy4zLTguMyA1LjUtMTIuMSA3LjMtNC43IDIuMi05LjMgMy41LTEzLjkgMy41cy05LjEtMS4yLTEzLjktMy41Yy0zLjctMS44LTcuMi0zLjktMTIuMS03LjMtLjgtLjUtMy40LTIuNC0zLjktMi43LTEuNC0xLTIuNS0xLjctMy40LTIuMy0xMC02LjQtNjEuOS00Mi4xLTg2LjgtNjAtMjguNC0yMC40LTM3LjItMzUuOC00OC4zLTgwLjMtMi04LjItMTAuNS00MS0yMy4zLTkwLjUtNS4zLTIwLjYtMTAuOS00Mi4yLTE2LjUtNjMuOC0yLTcuNi0zLjgtMTQuNi01LjQtMjAuOWwtMS41LTUuOC0uNS0yLjFjLS41LTItLjQtNC4yIC4yLTYuMmwxMy4xLTM4LjEtOS45LTI0LjVjLTEuNS0zLjgtLjctOC4yIDItMTEuMiAxLjItMS4zIDEuOC0yIDIuNi0yLjggMi0yLjIgNC40LTQuNyA2LjktNy40IDcuMy03LjcgMTUtMTUuNyAyMi43LTIzLjUgNy40LTcuNSAxNy4zLTExLjYgMjguOS0xMi45IDkuMS0xLjEgMTguNS0uNSAyNy43IDEuMiAuNSAuMSAxIC4yIDEuNSAuM2wzOC4xLTQ0YzItMi40IDQuOC0zLjcgNy44LTMuN2wxNDggMHptLTQuNyAyMS4xbC0xMzguNiAwLTM5LjEgNDUuMWMtMi42IDMtNi43IDQuMy0xMC42IDMuMi0uMi0uMS0uNy0uMi0xLjUtLjQtMS4zLS4zLTIuOS0uNi00LjUtLjktNy40LTEuMy0xNC45LTEuOC0yMS43LTEtNy4zIC45LTEzIDMuMi0xNi42IDYuOS03LjYgNy43LTE1LjIgMTUuNi0yMi4zIDIzLjMtMS43IDEuOC0zLjMgMy41LTQuOCA1LjFsOC44IDIyYzEgMi40IDEgNSAuMiA3LjVMMjkuNyAxNzAuNmMuNCAxLjQgLjUgMS45IDEuMiA0LjggMS42IDYuMyAzLjUgMTMuMyA1LjQgMjAuOSA1LjYgMjEuNiAxMS4yIDQzLjIgMTYuNCA2My40IDEyLjkgNTAgMjEuNCA4Mi44IDIzLjQgOTEgMTAuMSA0MC4xIDE2LjQgNTEuMyA0MC4yIDY4LjMgMjQuNiAxNy42IDc2LjMgNTMuMiA4NS45IDU5LjMgMS4yIC44IDIuNSAxLjYgNCAyLjcgLjYgLjQgMy4yIDIuMiAzLjkgMi43IDQgMi44IDYuNyA0LjQgOS4yIDUuNiAyLjIgMSAzLjkgMS41IDUuMSAxLjVzMi45LS41IDUuMS0xLjVjMi41LTEuMiA1LjItMi44IDkuMi01LjYgLjctLjUgMy4zLTIuMyAzLjktMi43IDEuNi0xLjEgMi44LTEuOSA0LTIuNyA5LjYtNi4xIDYxLjMtNDEuNyA4NS45LTU5LjMgMjMuOC0xNy4xIDMwLjItMjguMiA0MC4xLTY4LjMgMi4xLTguMyAxMC41LTQxLjEgMjMuMy05MC43IDUuMy0yMC42IDEwLjktNDIuMiAxNi41LTYzLjggMi03LjYgMy44LTE0LjYgNS40LTIwLjkgLjctMi45IC45LTMuNCAxLjItNC44bC0xMy4zLTM4LjhjLS44LTIuNC0uOC01LjEgLjItNy41bDguOC0yMmMtMS41LTEuNi0zLjEtMy4zLTQuOC01LjEtNy4yLTcuNi0xNC43LTE1LjUtMjIuMy0yMy4zLTMuNy0zLjctOS4zLTYtMTYuNi02LjktNi44LS44LTE0LjQtLjMtMjEuNyAxLTEuNyAuMy0zLjIgLjYtNC41IC45LS44IC4yLTEuMyAuMy0xLjUgLjQtMy44IDEuMS03LjktLjItMTAuNi0zLjJMMjkzLjggMjEuMXpNMjI0LjUgMzE2YzIuOCAwIDIwLjkgNi41IDM1LjQgMTQuMXMyNSAxMyAyOC4zIDE1LjIgMS4zIDYuMi0xLjcgOC40LTQ0LjEgMzQuNi00OC4xIDM4LjItOS44IDkuNS0xMy44IDkuNS05LjgtNS45LTEzLjgtOS41LTQ1LjEtMzYtNDguMS0zOC4yLTUuMS02LjItMS43LTguNCAxMy45LTcuNSAyOC4zLTE1LjIgMzIuNS0xNC4xIDM1LjQtMTQuMWwtLjIgMHptLjEtMjMwLjdjLjcgMCA4LjggLjIgMjAuNSA0LjIgMTIuMyA0LjIgMjUuNyA5LjQgMzEuOSA5LjRzNTEuOS04LjkgNTEuOS04LjkgNTQuMiA2Ni43IDU0LjIgODEtNi44IDE4LTEzLjcgMjUuNC0zNi44IDM5LjgtNDAuNyA0My45LTExLjkgMTAuNS03LjEgMjEuOCAxMS43IDI1LjggMy45IDQwLjQtMjEgMjQuNC0yOS40IDIyLjgtMjguNC0xMi4yLTM1LjctMTcuMS0zMC41LTI0LjMtMzAuNS0zMS44IDI0LTIwLjggMjguNC0yMy45IDI0LjctMTQuOCAyNS4xLTE5LjQgLjMtNi01LjctMTcuNC0xNi43LTI2LjctMTQuOS0zNi44IDE5LjEtMTUuNCAzMS41LTIwLjIgMzYuMi0xMy43IDM5LjItMTUuMSAyLjItMi43LTYuOC0zLjYtMzQuNi00LjMtNDYuMS0xLjEtMzEuMiA4LjItMzIuOCAxMC45LTMgMi43LTEuNCAxMS44IDEwLjEgNTIuOCAxMC45IDYwLjYgMi40IDEyLjktNS44IDE0LjgtMjIuMSA1LjItMjYuOCA1LjItMTguNi0zLjMtMjYuOC01LjItNi42LTctNS44LTE0LjggOS4zLTUxLjUgMTAuOS02MC42IC4yLTkuMi0xLjQtMTEuOC0yMS4zLTcuNi0zMi44LTEwLjktMzcuMSAuMi00Ni4xIDEuMS05LjggMi4yLTYuOCAzLjYgMjYuOCAxMC40IDM5LjIgMTUuMSAyOS43IDEwIDMxLjUgMjAuMi05IDI1LjQtMTQuOSAzNi44LTYuMSAxMi44LTUuNyAxNy40IDIwLjYgMTYuNCAyNS4xIDE5LjQgMjguNCAxNi40IDI4LjQgMjMuOS0yMy4yIDI3LTMwLjUgMzEuOC0yNy4yIDE1LjQtMzUuNyAxNy4xLTIxLjctOC4yLTI5LjQtMjIuOC0uOC0yOS4xIDMuOS00MC40LTMuMy0xNy43LTcuMS0yMS44LTMzLjgtMzYuNS00MC43LTQzLjktMTMuNy0xMS4yLTEzLjctMjUuNCA1NC4yLTgxIDU0LjItODEgNDUuOCA4LjkgNTEuOSA4LjkgMTkuNS01LjIgMzEuOS05LjQgMjAuNi00LjIgMjAuNi00LjJsLS4zIDB6Il19LHIzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhbmV4IixpY29uOls1MTIsNTEyLFtdLCJmMzc0IiwiTTQ1My4yIDMybC0zMTIgMEMxMDIuMyAzMiA2NSA2My4yIDU3LjkgMTAxLjdMMS4zIDQxMC4zQy01LjggNDQ4LjggMjAgNDgwIDU5IDQ4MGwzMTIgMGMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN0w1MTEgMTAxLjhDNTE4IDYzLjIgNDkyLjIgMzIgNDUzLjIgMzJ6TTM5NSAzNzkuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlsLTIwLjUtMjkuNi02OC44LTk5LjggMTguOC0yOC45IDguOS00LjggMTAzLjEgMTEyLjQgNC45IDQuNWMxOS40LTE4LjggMzMuOC0zMi40IDMzLjgtMzIuNCA3LjctNi41IDIxLjUtMi45IDMwLjcgNy45IDkgMTAuNSAxMC42IDI0LjcgMi43IDMxLjMtMS44IDEuMy0xNS41IDExLjQtMzUuMyAyNS42bDQuNSA3LjMgOTQuOSAxMTkuNC02LjMgNy45eiJdfSxhM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnM4IixpY29uOls2NDAsNTEyLFtdLCJmM2Q1IiwiTTEwNC4zIDI2OS4ybDI2LjEgMCAwLTI2LjItMjYuMSAwIDAgMjYuMnpNMTU2LjggMjQzbC0uMS0yNi4yIDAtLjljLS4yLTEwLjQtNC40LTIwLjMtMTEuOS0yNy42cy0xNy41LTExLjMtMjcuOS0xMS4xLTIwLjMgNC40LTI3LjYgMTEuOC0xMS4zIDE3LjUtMTEuMiAyNy45bDAgLjIgMjYuNCAwIDAtLjJjLjEtMy40IDEuNS02LjYgMy45LTlzNS43LTMuNyA5LjEtMy43IDYuNyAxLjMgOS4xIDMuNyAzLjggNS42IDMuOSA5bDAgMjYuMiAyNi4zIDB6bTUyLjQgMjUuOGMwIDEyLTIuNCAyMy44LTYuOSAzNC45cy0xMS4zIDIxLjEtMTkuNyAyOS42LTE4LjUgMTUuMi0yOS42IDE5LjctMjIuOSA2LjktMzQuOSA2LjlsLS42IDBjLTI0LjIgMC00Ny4zLTkuNi02NC40LTI2LjdTMjYuMyAyOTMgMjYuMyAyNjguOGwtMjYuMyAwIDAgLjJjMCAxNS40IDMuMSAzMC43IDkgNDQuOXMxNC42IDI3LjIgMjUuNSAzOC4xIDIzLjkgMTkuNSAzOC4xIDI1LjQgMjkuNSA4LjkgNDQuOSA4LjlsLjggMGMxNS40IDAgMzAuNy0zIDQ0LjktOXMyNy4yLTE0LjYgMzguMS0yNS41IDE5LjUtMjMuOCAyNS40LTM4LjEgOC45LTI5LjUgOC45LTQ0LjlsMC0yNi0yNi4zIDAgMCAyNnptLTE1Ny4yIDBjLjEgMTcuMyA3IDMzLjkgMTkuMiA0Ni4xczI4LjggMTkuMSA0Ni4xIDE5LjEgMzMuOS02LjkgNDYuMS0xOS4xIDE5LjItMjguOCAxOS4yLTQ2LjFsLTI2LjMgMGMtLjIgMTAuMi00LjQgMjAtMTEuNyAyNy4ycy0xNy4xIDExLjItMjcuNCAxMS4yLTIwLjEtNC0yNy40LTExLjItMTEuNS0xNi45LTExLjctMjcuMmwwLTI2LTI2LjMgMCAwLTI2LjZjLjMtMTcuMyA3LjQtMzMuOCAxOS43LTQ1LjhzMjktMTguOCA0Ni4zLTE4LjYgMzMuOCA3LjIgNDUuOSAxOS41IDE4LjkgMjguOSAxOC45IDQ2LjJsMCAyNS4zIDI2LjMgMCAwLTI1LjNjMC0yNC4zLTkuNy00Ny43LTI2LjktNjQuOXMtNDAuNS0yNi45LTY0LjktMjYuOS00Ny43IDkuNy02NC45IDI2LjktMjYuOSA0MC41LTI2LjkgNjQuOWwwIDI1LjQgMjYuMyAwIDAgMjZ6bTQxOC40LTcxLjJjMTMuNyAwIDI0LjYgNi42IDMwLjEgMTguM2wuNyAxLjUgMjMuMi0xMS41LS42LTEuNGMtOC0xOS4zLTI4LjUtMzEuMy01My40LTMxLjMtMjMuMSAwLTQzLjYgMTEuNC01MSAyOC40LS4xIDI2LjktLjIgMjMuOSAwIDI0LjggNC43IDExIDE0LjYgMTkuNCAyOC43IDI0LjIgNi41IDIgMTMuMSAzLjMgMTkuOCA0IDUuNSAuNyAxMC42IDEuNCAxNS44IDMuMSA2LjQgMi4xIDEwLjUgNS4zIDEyLjggOS44bDAgOS45Yy0zLjcgNy41LTEzLjggMTIuMy0yNS44IDEyLjMtMTQuMyAwLTI2LTYuOS0zMS45LTE5bC0uNy0xLjUtMjMgMTEuNSAuNiAxLjRjNy45IDE5LjQgMjkuNiAzMiA1NS4zIDMyIDIzLjYgMCA0NC42LTExLjQgNTIuMy0yOC40bC4yLTI1LjktLjItLjdjLTQuOS0xMS0xNS4yLTE5LjYtMjguOS0yNC4yLTcuNy0yLjctMTQuMy0zLjYtMjAuNy00LjQtNS0uNS0xMC0xLjUtMTQuOC0yLjktNi4zLTEuOS0xMC40LTUuMS0xMi42LTkuNmwwLTguNGMzLjQtNy40IDEyLjktMTIuMSAyNC4yLTEyLjFsMCAwek0yODcuNiAzMTEuM2wyNi4xIDAgMC02OC40LTI2LjEgMCAwIDY4LjR6TTYzOS44IDI1OGMtMi45LTYuMy04LjMtMTItMTUuNC0xNi43IDUuNi0zLjggMTAuMS05LjEgMTMtMTUuM2wuMi0yNS4zLS4yLS43Yy03LjQtMTYtMjYuNy0yNi43LTQ4LjItMjYuN1M1NDguNSAxODQgNTQxLjEgMjAwbC0uMiAyNS4zIC4yIC43YzIuOSA2LjEgNy40IDExLjQgMTMgMTUuMy03LjIgNC43LTEyLjUgMTAuNS0xNS40IDE2LjdsLS4yIDI4LjkgLjIgLjdjNy42IDE2IDI3LjkgMjYuNyA1MC42IDI2LjdzNDMuMS0xMC43IDUwLjYtMjYuN2wuMi0yOC45LS4yLS43em0tNzMuMi01MC44YzMuNi02LjMgMTIuNi0xMC41IDIyLjYtMTAuNXMxOSA0LjIgMjIuNiAxMC41bDAgMTMuN2MtMy41IDYuMi0xMi42IDEwLjMtMjIuNiAxMC4zcy0xOS4xLTQuMi0yMi42LTEwLjNsMC0xMy43em00Ny4zIDcyLjJjLTMuOCA2LjYtMTMuMyAxMC45LTI0LjcgMTAuOS0xMS4xIDAtMjEtNC40LTI0LjctMTAuOWwwLTE2LjJjMy43LTYuMyAxMy41LTEwLjUgMjQuNy0xMC41IDExLjMgMCAyMC45IDQuMSAyNC43IDEwLjVsMCAxNi4yek0zNzYuNCAyNjZsLTU5LjgtODkuNy0yOSAwIDAgNDAuNiAyNi41IDAgMCAuNCA2Mi41IDk0LjEgMjUuNyAwIDAtMTM1LjEtMjUuOSAwIDAgODkuN3oiXX0sSEVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1waW50ZXJlc3QiLGljb246WzQ0OCw1MTIsWyJwaW50ZXJlc3Qtc3F1YXJlIl0sImYwZDMiLCJNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNzIuNiAwLTIuMi0uOGMtNS40LTQ4LjEtMy4xLTU3LjUgMTUuNy0xMzQuNyAzLjktMTYgOC41LTM1IDEzLjktNTcuOSAwIDAtNy4zLTE0LjgtNy4zLTM2LjUgMC03MC43IDc1LjUtNzggNzUuNS0yNSAwIDEzLjUtNS40IDMxLjEtMTEuMiA0OS44LTMuMyAxMC42LTYuNiAyMS41LTkuMSAzMi01LjcgMjQuNSAxMi4zIDQ0LjQgMzYuNCA0NC40IDQzLjcgMCA3Ny4yLTQ2IDc3LjItMTEyLjQgMC01OC44LTQyLjMtOTkuOS0xMDIuNi05OS45LTY5LjkgMC0xMTAuOSA1Mi40LTExMC45IDEwNi42IDAgMjEuMSA4LjIgNDMuNyAxOC4zIDU2IDIgMi40IDIuMyA0LjUgMS43IDctMS4xIDQuNy0zLjEgMTIuOS00LjcgMTkuMi0xIDQtMS44IDcuMy0yLjEgOC42LTEuMSA0LjUtMy41IDUuNS04LjIgMy4zLTMwLjYtMTQuMy00OS44LTU5LjEtNDkuOC05NS4xIDAtNzcuNSA1Ni4yLTE0OC42IDE2Mi4yLTE0OC42IDg1LjIgMCAxNTEuNCA2MC43IDE1MS40IDE0MS44IDAgODQuNi01My4zIDE1Mi43LTEyNy40IDE1Mi43LTI0LjkgMC00OC4zLTEyLjktNTYuMy0yOC4yIDAgMC0xMi4zIDQ2LjktMTUuMyA1OC40LTUgMTkuMy0xNy42IDQyLjktMjcuNCA1OS4zTDM4NCA0ODBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6Il19LGkzcj1IRWUsczNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWV0b290aC1iIixpY29uOlsyNTYsNTEyLFtdLCJmMjk0IiwiTTE2NC45IDI2MEwyNTcuNSAxNTYuNyAxMTEuNiAwIDExMS42IDIwNi4zIDI1LjQgMTIwLjItNiAxNTEuNiAxMDIuMSAyNjAtNiAzNjguNCAyNS40IDM5OS44IDExMS42IDMxMy43IDExNC4zIDUxMiAyNjIuOCAzNjMuNCAxNjQuOSAyNjB6bTQwLjktMTAzbC01MCA1MC0uMy0xMDAuMyA1MC4zIDUwLjN6bS01MCAxNTZsNTAgNTAtNTAuMyA1MC4zIC4zLTEwMC4zeiJdfSxuM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JpcGZpcmUiLGljb246WzMyMCw1MTIsW10sImYzYWMiLCJNODAuNSAzMDEuNGMwLTczLjggMTA1LjEtMTIyLjUgMTA1LjEtMjAzIDAtNDcuMS0zNC04OC0zOS4xLTkwLjQgLjQgMy4zIC42IDYuNyAuNiAxMCAwIDkyLjEtMTQ3LjEgMTUzLjktMTQ3LjEgMjY4LjYgMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6Il19LHFFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ29vZ2xlLXBsdXMiLGljb246WzQ0OCw1MTIsWyJnb29nbGUtcGx1cy1zcXVhcmUiXSwiZjBkNCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNNjQgMjU2YzAtNTUuMyA0NC43LTEwMCAxMDAtMTAwIDI3IDAgNDkuNSA5LjggNjcgMjYuMmwtMjcuMSAyNi4xYy03LjQtNy4xLTIwLjMtMTUuNC0zOS44LTE1LjQtMzQuMSAwLTYxLjkgMjguMi02MS45IDYzLjIgMCAzNC45IDI3LjggNjMuMiA2MS45IDYzLjIgMzkuNiAwIDU0LjQtMjguNSA1Ni44LTQzLjFsLTU2LjkgMCAwLTM0LjQgOTQuNCAwYzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjYtNTUuMyAwLTEwMC00NC43LTEwMC0xMDB6bTI5MSAxOC4ybDAgMjktMjkuMiAwIDAtMjktMjkgMCAwLTI5LjIgMjkgMCAwLTI5IDI5LjIgMCAwIDI5IDI5IDAgMCAyOS4yLTI5IDB6Il19LG8zcj1xRWUsbDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGVlIixpY29uOls1MTIsNTEyLFtdLCJlODYzIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zODUuNiAxMTMuOGwwIDAtMTc3IDBjLTUyLjQgMC05NC44IDQyLjQtOTQuOCA5NC44bDAgMTc3YzAgNyA1LjcgMTIuNiAxMi42IDEyLjZsMTg2LjUgMGM0Ny4xIDAgODUuMy0zOC4yIDg1LjMtODUuM2wwLTcyLjdjMC03LTUuNy0xMi42LTEyLjYtMTIuNmwtMTQ1LjQgMGMtNyAwLTEyLjYgNS43LTEyLjYgMTIuNmwwIDMxLjZjMCA2LjYgNS4xIDEyLjEgMTEuNiAxMi42bDEgMCA4OC41IDBjNi42IDAgMTIuMSA1LjEgMTIuNiAxMS42bDAgMSAwIDYuM2MwIDIwLjktMTcgMzcuOS0zNy45IDM3LjlsLTEyMC4xIDBjLTcgMC0xMi42LTUuNy0xMi42LTEyLjZsMC0xMjAuMWMwLTIwLjQgMTYuMS0zNy4xIDM2LjQtMzcuOWwxLjYgMCAxNzcgMGM3IDAgMTIuNi01LjcgMTIuNi0xMi42bDAtMzEuNmMwLTctNS42LTEyLjYtMTIuNi0xMi42eiJdfSxjM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieG1wcCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NCIsIk0wIDQ3LjJjMy41IDEzNy4xIDExNy4xIDI3OC42IDI1Mi45IDM1Ni43LTMxLjUgMjUtNjcuMiA0NC4xLTEwNi4yIDUzLjlsMCA1LjRjNTYuNC0yLjMgOTguMS0yMC4xIDE0MS4zLTQwLjcgNjUuNyAzNC42IDEyMi4yIDM5LjkgMTQxLjQgNDAuN2wwLTUuNGMtMzktOS44LTc0LjctMjguOC0xMDYuMi01My44IDEzNS43LTc4LjIgMjQ5LjMtMjE5LjggMjUyLjgtMzU2LjgtNTguNCAyNS43LTExOS4xIDQ0LjItMTgwLjEgNjIuM2wwIDBjMy40IDU5LTIwLjIgMTcwLjQtMTA3LjkgMjYyLjMtODguNC05Mi4zLTExMS4yLTIwNC4xLTEwNy44LTI2Mi4zbDAgMEMxMTcuNyA5Mi42IDU5LjMgNzAuMiAwIDQ3LjJ6TTkzLjkgOTdsNzMuNiAyMS44QzE2NS40IDIxNiAyMjYuOCAzNTggMzQxLjMgNDMyLjIgMTkwLjUgMzc2LjkgODkuOSAyMTUuNyA5My45IDk3em0zODguMyAwYzMuMyA5OS02NS42IDIyNC43LTE3MS43IDI5Ni40LTQuNy00LjEtOS4zLTguNC0xMy44LTEyLjcgNzctODAuMiAxMTMuMi0xODYuMyAxMTEuOS0yNjEuOUw0ODIuMSA5N3pNMjY0LjUgNDEwLjVjMyAxLjYgNS45IDMuMiA4LjkgNC43LTEyLjUgNi40LTI1LjQgMTIuMS0zOC42IDE3IDEwLjMtNi43IDIwLjItMTMuOSAyOS43LTIxLjd6Il19LGQzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHAtc3RvcmUiLGljb246WzUxMiw1MTIsW10sImYzNmYiLCJNMjU1LjkgMTIwLjlsOS4xLTE1LjdjNS42LTkuOCAxOC4xLTEzLjEgMjcuOS03LjVzMTMuMSAxOC4xIDcuNSAyNy45bC04Ny41IDE1MS41IDYzLjMgMGMyMC41IDAgMzIgMjQuMSAyMy4xIDQwLjhsLTE4NS41IDBjLTExLjMgMC0yMC40LTkuMS0yMC40LTIwLjRzOS4xLTIwLjQgMjAuNC0yMC40bDUyIDAgNjYuNi0xMTUuNC0yMC44LTM2LjFjLTUuNi05LjgtMi4zLTIyLjIgNy41LTI3LjkgOS44LTUuNiAyMi4yLTIuMyAyNy45IDcuNWw4LjkgMTUuN3ptLTc4LjcgMjE4bC0xOS42IDM0Yy01LjYgOS44LTE4LjEgMTMuMS0yNy45IDcuNXMtMTMuMS0xOC4xLTcuNS0yNy45bDE0LjYtMjUuMmMxNi40LTUuMSAyOS44LTEuMiA0MC40IDExLjZ6bTE2OC45LTYxLjdsNTMuMSAwYzExLjMgMCAyMC40IDkuMSAyMC40IDIwLjRTNDEwLjUgMzE4IDM5OS4yIDMxOGwtMjkuNSAwIDE5LjkgMzQuNWM1LjYgOS44IDIuMyAyMi4yLTcuNSAyNy45LTkuOCA1LjYtMjIuMiAyLjMtMjcuOS03LjUtMzMuNS01OC4xLTU4LjctMTAxLjYtNzUuNC0xMzAuNi0xNy4xLTI5LjUtNC45LTU5LjEgNy4yLTY5LjEgMTMuNCAyMyAzMy40IDU3LjcgNjAuMSAxMDR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDAgMjU2YTIxNiAyMTYgMCAxIDEgNDMyIDAgMjE2IDIxNiAwIDEgMSAtNDMyIDB6Il19LHUzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXgiLGljb246WzY0MCw1MTIsW10sImY1Y2YiLCJNMzkzLjQgMTMxLjdjMCAxMyAyLjEgMzIuNy0yOC43IDQzLjgtOS41IDMuNC0xNiA5LjctMTYgOS43IDAtMzEgNC43LTQyLjIgMTcuNC00OC45IDkuOC01LjEgMjcuMi00LjYgMjcuMi00LjZ6TTI3Ny42IDE2Ny4ybC0zNC4yIDEzMi43LTI4LjUtMTA4LjZjLTcuNy0zMi0yMC44LTQ4LjUtNDguNC00OC41LTI3LjQgMC00MC43IDE2LjItNDguNCA0OC41TDg5LjUgMjk5LjkgNTUuMyAxNjcuMkM0OS43IDE0MC41IDIzLjkgMTI5IDAgMTMyTDY1LjYgMzc5LjlzMjEuNiAxLjYgMzIuNS00YzE0LjItNy4yIDIxLTEyLjggMjkuNi00Ni42IDcuNy0zMC4xIDI5LjEtMTE4LjQgMzEuMS0xMjQuNyA0LjgtMTQuOSAxMS4xLTEzLjggMTUuNCAwIDIgNi4zIDIzLjUgOTQuNiAzMS4xIDEyNC43IDguNiAzMy43IDE1LjQgMzkuMyAyOS42IDQ2LjYgMTAuOCA1LjUgMzIuNSA0IDMyLjUgNEwzMzIuOSAxMzJjLTI0LjQtMy4xLTQ5LjggOC45LTU1LjMgMzUuM3ptMTE1LjggNS4ycy00LjEgNi4zLTEzLjUgMTEuNmMtNiAzLjQtMTEuOCA1LjYtMTggOC42LTE1LjEgNy4zLTEzLjIgMTMuOS0xMy4yIDM1LjJsMCAxNTIuMXMxNi42IDIuMSAyNy40LTMuNGMxMy45LTcuMSAxNy4xLTE0IDE3LjMtNDQuOGwwLTE1MC4zIDAgMCAwLTl6bTE2My40IDg0LjFMNjQwIDEzMi44cy0zNS4xLTYtNTIuNSA5LjhjLTEzLjMgMTIuMS0yNC40IDI5LjYtNTQuMiA3Mi41LS41IC43LTYuMyAxMC41LTEzLjEgMC0yOS4zLTQyLjItNDAuOC02MC4zLTU0LjItNzIuNS0xNy40LTE1LjgtNTIuNS05LjgtNTIuNS05LjhsODMuMiAxMjMuNy04MyAxMjMuNHMzNi42IDQuNiA1NC0xMS4yYzExLjUtMTAuNSAxNy42LTIwLjQgNTIuNS03MC43IDYuOC0xMC41IDEyLjYtLjggMTMuMSAwIDI5LjQgNDIuNCAzOS4yIDU4LjEgNTMuMSA3MC43IDE3LjQgMTUuOCA1My4zIDExLjIgNTMuMyAxMS4ybC04My0xMjMuNHoiXX0scDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludGVyY29tIixpY29uOls0NDgsNTEyLFtdLCJmN2FmIiwiTTM5MiAzMkw1NiAzMkMyNS4xIDMyIDAgNTcuMSAwIDg4TDAgNDI0YzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtMzM2YzAtMzAuOS0yNS4xLTU2LTU2LTU2ek0yODMuNyAxMTQuMWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTk5LjV6bS03NC42LTcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDIxNi41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMjE2LjV6bS03NC43IDcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTk5LjV6TTU5LjcgMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTM0LjNjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xMzQuM3pNMzgzLjEgMzcxLjhjLTcyLjggNjMtMjQxLjcgNjUuNC0zMTguMSAwLTE1LTEyLjggNC40LTM1LjUgMTkuNC0yMi43IDY1LjkgNTUuMyAyMTYuMSA1My45IDI3OS4zIDAgMTQuOS0xMi45IDM0LjMgOS44IDE5LjQgMjIuN3ptNS4yLTkzLjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xMzQuM2MwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDEzNC4zeiJdfSxmM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3RldXJvcGUiLGljb246WzU3Niw1MTIsW10sImY3NWQiLCJNMjUwLjcgMjExLjdsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOC0yLjMgNi44LTcuMiAuMSA1LjcgNC4zLTIgNi44em02My43IDBsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjItLjEtMi4zLTYuOC0yLjMgNi44LTcuMiAuMSA1LjcgNC4zLTEuOSA2Ljh6bS05MS4zIDUwLjVsLTMuNCAwYy00LjggMC0zLjggNC0zLjggMTIuMSAwIDQuNy0yLjMgNi4xLTUuOCA2LjFzLTUuOC0xLjQtNS44LTYuMWwwLTM2LjZjMC00LjcgMi4zLTYuMSA1LjgtNi4xczUuOCAxLjQgNS44IDYuMWMwIDcuMi0uNyAxMC41IDMuOCAxMC41bDMuNCAwYzQuNy0uMSAzLjgtMy45IDMuOC0xMi4zIDAtOS45LTYuNy0xNC4xLTE2LjgtMTQuMWwtLjIgMGMtMTAuMSAwLTE2LjggNC4yLTE2LjggMTQuMWwwIDQwLjFjMCAxMC40IDYuNyAxNC4xIDE2LjggMTQuMWwuMiAwYzEwLjEgMCAxNi44LTMuOCAxNi44LTE0LjEgMC05LjkgMS4xLTEzLjgtMy44LTEzLjh6bS04MC43IDE3LjRsLTE0LjcgMCAwLTE5LjMgMTEuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTExLjQgMCAwLTE4LjMgMTQuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTIxLjcgMGMtMi40LS4xLTMuNyAxLjMtMy43IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDIxLjkgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44em0tNDItMTguNWM0LjYtMiA3LjMtNiA3LjMtMTIuNGwwLTExLjljMC0xMC4xLTYuNy0xNC4xLTE2LjgtMTQuMWwtMTMuNCAwYy0yLjUgMC0zLjggMS4zLTMuOCAzLjhsMCA1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yMi45IDUuNiAwIDcuNCAyMy41Yy4yIDEgLjggMS44IDEuNiAyLjRzMS44IC45IDIuNyAuOGwzLjMgMGMyLjggMCA0LTEuOCAzLjItNC40bC04LjEtMjMuOXptLTMuOC0xNGMwIDQuOC0yLjUgNi4xLTYuMSA2LjFsLTUuOCAwIDAtMjAuOSA1LjggMGMzLjYgMCA2LjEgMS4zIDYuMSA2LjFsMCA4Ljd6TTE3Ni4xIDIyNmMtLjEtLjUtLjItMS0uNC0xLjRzLS42LS44LTEtMS4xLS44LS42LTEuMy0uNy0xLS4yLTEuNS0uMWwtNi45IDBjLS41IDAtMSAwLTEuNCAuMnMtLjkgLjQtMS4zIC43LS43IC43LS45IDEuMS0uNCAuOS0uNCAxLjRsLTExIDU5LjJjLS41IDIuNyAuOSA0LjEgMy40IDQuMWwzIDBjLjUgLjEgMSAwIDEuNS0uMnMuOS0uNCAxLjMtLjcgLjctLjcgLjktMS4yIC40LS45IC40LTEuNGwxLjgtMTEuMyAxMi4yIDAgMS44IDExLjNjMCAuNSAuMiAxIC40IDEuNHMuNSAuOSAuOSAxLjIgLjggLjYgMS4zIC43IDEgLjIgMS41IC4ybDMuNSAwYzIuNiAwIDMuOS0xLjQgMy40LTQuMUwxNzYuMSAyMjZ6bS0xMi4zIDM5LjNsNC43LTI5LjcgNC43IDI5LjctOS40IDB6bTg5LjMgMjAuMmwwLTUzLjIgNy41IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjUuOCAwYy0yLjUgMC0zLjggMS4zLTMuOCAzLjhsMCAyLjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDcuMyAwIDAgNTMuMmMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMy40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAgMHptMjQ4LS44bC0xOS40IDAgMC0yNi43IDE2LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xNi4xIDAgMC0yNS44IDE5LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0yMi4yIDBjLS4zLS4xLS41LS4xLS44IDBzLS41IC4yLS43IC40LS4zIC40LS40IC43LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjYgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbDAgMHpNNDA4IDIyMS44bC0uOCAwYy0xMC4xIDAtMTUuMyA0LjctMTUuMyAxNC4xbDAgNDAuMWMwIDkuMyA1LjIgMTQuMSAxNS4zIDE0LjFsLjggMGMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xbDAtNDAuMWMwLTkuNC01LjItMTQuMS0xNS4zLTE0LjFsMCAwem0xMC4yIDUyLjRjLS4xIDgtMyAxMS4xLTEwLjUgMTEuMXMtMTAuNS0zLjEtMTAuNS0xMS4xbDAtMzYuNmMwLTcuOSAzLTExLjEgMTAuNS0xMS4xczEwLjUgMy4yIDEwLjUgMTEuMWwwIDM2LjZ6bS00Ni41LTE0LjVjNi4xLTEuNiA5LjItNi4xIDkuMi0xMy4zbDAtOS43YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwtMTMuNyAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDEuMiAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNi0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLTI2LjkgMTEuNiAwIDEwLjQgMjcuMmMuMiAuNSAuNSAuOSAuOSAxLjFzLjkgLjQgMS40IC40bDEuNSAwYzEuNCAwIDItMSAxLjUtMi4zbC0xMC42LTI3LjN6bS02LjQtMy45bC0xMC4yIDAgMC0yOC41IDEwLjIgMGM3LjUgMCAxMC41IDMuMSAxMC41IDExLjFsMCA2LjRjMCA3LjgtMyAxMS0xMC41IDExbDAgMHptODUuOS0zMy4xbC0xMy43IDBjLS4zLS4xLS41LS4xLS44IDBzLS41IC4yLS43IC40LS4zIC40LS40IC43LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDEuMiAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNi0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLTI2LjEgMTAuNiAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC0xMC41YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMXptMTAuMiAyMi44YzAgNy45LTMgMTEuMS0xMC41IDExLjFsLTEwLjIgMCAwLTI5LjIgMTAuMiAwYzcuNS0uMSAxMC41IDMuMSAxMC41IDExbDAgNy4xek0yNTkuNiAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xek00ODcuMiAxNzEuOWMtMTEuNy00LjQtMjMuNS04LjEtMzUuNi0xMS4zIDE5LjYtNzggMTEuNi0xMzQuNy0yMi4zLTE1My45LTM0LjUtMTkuNC04NS45IDQuMy0xMzguMiA1NS4yIDMuNCAzLjMgNi44IDYuNyAxMC4yIDEwLjIgODIuNS04MCAxMTkuNi01My41IDEyMC45LTUyLjggMjIuNCAxMi43IDM2IDU1LjggMTUuNSAxMzcuOC0yNy44LTYuNC01Ni4xLTEwLjctODQuNi0xMy03MS45LTEwMC41LTE0MC42LTE0Mi4xLTE4Mi4yLTE0Mi4xLTMwLjggMC00My44IDIxLTQ3LjYgMjcuNy0xOC4xIDMyLTEzLjMgODQuMiAuMSAxMzMuOC03MC41IDIwLjMtMTIwLjcgNTQuMS0xMjAuMyA5NSAuNSA1OS42IDEwMy4yIDg3LjggMTIyLjEgOTIuOC0yMC41IDgxLjktMTAuMSAxMzUuNiAyMi4zIDE1My45IDI4IDE1LjggNzUuMSA2IDEzOC4yLTU1LjItMy40LTMuMy02LjgtNi43LTEwLjItMTAuMi04Mi41IDgwLTExOS43IDUzLjUtMTIwLjkgNTIuOC0yMi4zLTEyLjYtMzYtNTUuNi0xNS41LTEzNy45IDEyLjQgMi45IDQxLjggOS41IDg0LjYgMTMgNzEuOSAxMDAuNCAxNDAuNiAxNDIgMTgyLjEgMTQyIDMwLjggMCA0My44LTIxIDQ3LjYtMjcuNyAxOC0zMS45IDEzLjMtODQuMS0uMS0xMzMuOCAxNTIuMy00My44IDE1Ni4yLTEzMC4yIDMzLjktMTc2LjNsMCAwek0xMzYgMzYuOGMyLjktNS4xIDExLjktMjAuMyAzNC45LTIwLjMgMzYuOCAwIDk4LjggMzkuNiAxNjMuMyAxMjYuMi0zMS4zLTEuOC02Mi43LTEuNS05My45IC45IDEzLTE4LjMgMjcuMS0zNS44IDQyLjItNTIuNC0zLjQtMy41LTYuOC02LjktMTAuMi0xMC4yLTE4LjMgMjAuMi0zNS4zIDQxLjctNTAuNyA2NC4yLTI4LjUgMi43LTU2LjcgNy42LTg0LjQgMTQuNi0uMi0xLjQtMjQuMy04Mi4yLTEuMi0xMjNsMCAwek00NDAuOCA0NzUuMWMtMi45IDUuMS0xMS44IDIwLjMtMzQuOSAyMC4zLTM2LjcgMC05OC43LTM5LjQtMTYzLjMtMTI2LjIgMzEuMyAxLjggNjIuNyAxLjUgOTMuOS0uOS0xMyAxOC4zLTI3LjEgMzUuOC00Mi4yIDUyLjQgMy40IDMuNSA2LjggNi45IDEwLjIgMTAuMiAxOC40LTIwLjIgMzUuMy00MS43IDUwLjctNjQuMiA0Ny4zLTQuNyA4MC4zLTEzLjUgODQuNC0xNC42IDIyLjcgODQuNCA0LjUgMTE3IDEuMiAxMjN6bTkuMS0xMzguNmMtMy42LTExLjktNy43LTI0LjEtMTIuNC0zNi40LTIuMSAwLTQuMi0uNS02LjEtMS41cy0zLjUtMi40LTQuNi00LjJsLS4xIC4xYy0xLjYgMS41LTMuNCAyLjctNS40IDMuNiA1LjcgMTQuMyAxMC42IDI4LjQgMTQuNyA0Mi4yLTIzLjcgNi00Ny43IDEwLjMtNzIgMTMgMy41LTUuMyAxNy4yLTI2LjIgMzIuMi01NC4yLTIuMS0uOC00LjItMS45LTYtMy4yLTEuMSAxLjItMy42IDQuMi0xMC45IDQuMi02LjIgMTEuMi0xNy40IDMwLjktMzMuOSA1NS4yLTM3LjQgMy4zLTc1IDMuNi0xMTIuNCAxLTcuOS0xMS4yLTIxLjUtMzEuMS0zNi44LTU3LjgtMS0uNC0yLS45LTMtMS41LTEuOSAxLjYtMy45IDMuMi0xMi42IDMuMiA2LjMgMTEuMiAxNy41IDMwLjcgMzMuOCA1NC42LTI0LjMtMi4zLTQ4LjQtNi4yLTcyLjItMTEuNyAzLjktMTQgOC42LTI4LjMgMTQuMS00Mi45LTMuMiAwLTUuNCAuMi04LjQtMS0yLjIgLjgtNC42IDEuMS02LjkgMS00LjkgMTMuNC05LjEgMjYuNS0xMi43IDM5LjQtMTU5LjktNDIuNi0xNDAuMy0xMjMuNi0xLjUtMTY0IDMuNiAxMS45IDcuNyAyNC4xIDEyLjQgMzYuNCAxMC40IDAgMTIuOSAzLjQgMTQuNCA1LjMgLjctLjggMS40LTEuNiAyLjMtMi4yLTUuOC0xNC43LTEwLjktMjkuMi0xNS4yLTQzLjMgNy0xLjggMzIuNC04LjQgNzItMTMtMTUuOSAyNC4zLTI2LjcgNDMuOS0zMi44IDU1LjMgMy4xIDEuOCA1LjMgNC42IDYuNCA4IDIuNS0zLjcgNi4xLTYuNiAxMC4yLTguNCA2LjUtMTEuNyAxNy45LTMxLjkgMzQuOC01Ni45IDM3LjQtMy4zIDc1LTMuNiAxMTIuNC0xIDMxLjUgNDQuNiAyOC45IDQ4LjEgNDIuNSA2NC41IDIuNi0zLjUgNi4zLTYgMTAuNC03LjQtNi40LTExLjQtMTcuNi0zMS0zNC4zLTU1LjUgNDAuNCA0LjEgNjUgMTAgNzIuMiAxMS43LTQgMTQuNC04LjkgMjkuMi0xNC42IDQ0LjIgMi41IDEgNC44IDIuNCA2LjggNC4zbC4xIC4xYzEtMS41IDIuMy0yLjggMy44LTMuOHMzLjMtMS42IDUuMS0xLjhjNC45LTEzLjQgOS4yLTI2LjYgMTIuOC0zOS41IDExLjcgMy4xIDIzLjIgNi44IDM0LjUgMTEgMTA2LjEgMzkuOSA3NCA4Ny45IDcyLjYgOTAuNC0xOS44IDM1LjEtODAuMSA1NS4yLTEwNS43IDYyLjV6bS0xMTQuNC0xMTRsLTEuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS42IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNDkuOGMwIDcuOS0yLjYgMTEuMS0xMC4xIDExLjFzLTEwLjEtMy4xLTEwLjEtMTEuMWwwLTQ5LjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA1MS41YzAgOS42IDUgMTQuMSAxNS4xIDE0LjFsLjQgMGMxMC4xIDAgMTUuMS00LjYgMTUuMS0xNC4xbDAtNTEuNWMwLS4zLS4xLS41LS4yLS44cy0uMy0uNS0uNS0uNi0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMXpNMzIxLjggMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXptLTMxLjEgNy40bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXptNS4xLTMwLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwyMi41IDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS42LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uNC0uNy0uNC0uNS0uMS0uOC0uMWwwIDB6bS03LjQtOTkuNGwtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02Ljh6Il19LGgzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXplIixpY29uOls1MTIsNTEyLFtdLCJmODNmIiwiTTUwMi42IDIwMS43YzE0LjUgODUuOS0zMC45IDE2Ny45LTExMy4yIDIwOC4xIDEzIDM0LjEtMTIuNCA3MC4yLTQ4LjMgNzAuMi0xMy4yIDAtMjYtNS4xLTM1LjYtMTQuMnMtMTUuMy0yMS42LTE2LTM0LjhjLTYuNCAuMi02NC4yIDAtNzYuMy0uNi0uMyA2LjgtMS45IDEzLjUtNC43IDE5LjZzLTYuOSAxMS43LTExLjkgMTYuMy0xMC44IDguMi0xNy4yIDEwLjUtMTMuMiAzLjQtMTkuOSAzLjFjLTMzLjktMS40LTU4LTM0LjgtNDctNjcuOS0zNy4yLTEzLjEtNzIuNS0zNC45LTk5LjYtNzAuOC0xMy0xNy4zLS41LTQxLjggMjAuOC00MS44IDQ2LjMgMCAzMi4yLTU0LjIgNDMuMi0xMTAuMyAxOC40LTkzLjkgMTE2LjgtMTU3LjEgMjExLjctMTU3LjEgMTAyLjUgMCAxOTcuMiA3MC43IDIxNC4xIDE2OS43ek0zNzMuOSAzODguM2M0Mi0xOS4yIDgxLjMtNTYuNyA5Ni4zLTEwMi4xIDQwLjUtMTIzLjEtNjQuMi0yMjgtMTgxLjctMjI4LTgzLjQgMC0xNzAuMyA1NS40LTE4Ni4xIDEzNi05LjUgNDguOSA1IDEzMS40LTY4LjcgMTMxLjQgMjQuOSAzMy4xIDU4LjMgNTIuNiA5My43IDY0IDI0LjctMjEuOCA2My45LTE1LjUgNzkuOCAxNC4zIDE0LjIgMSA3OS4yIDEuMiA4Ny45IC44IDMuNS02LjkgOC41LTEyLjkgMTQuNy0xNy41czEzLjItNy45IDIwLjgtOS41IDE1LjQtMS40IDIyLjkgLjQgMTQuNSA1LjMgMjAuNSAxMC4yek0yMDUuNSAxODcuMWMwLTM0LjcgNTAuOC0zNC43IDUwLjggMHMtNTAuOCAzNC43LTUwLjggMHptMTE2LjYgMGMwLTM0LjcgNTAuOS0zNC43IDUwLjkgMHMtNTAuOSAzNC44LTUwLjkgMHpNMTk5LjUgMjU3LjhjLTMuNC0xNi45IDIyLjItMjIuMiAyNS42LTUuMmwuMSAuM2M0LjEgMjEuNCAyOS44IDQ0IDY0LjEgNDMuMSAzNS43LS45IDU5LjMtMjIuMiA2NC4xLTQyLjggNC41LTE2LjEgMjguNi0xMC40IDI1LjUgNi01LjIgMjIuMi0zMS4yIDYyLTkxLjUgNjIuOS00Mi42IDAtODAuOS0yNy44LTg3LjktNjQuMmwwIDB6Il19LG0zcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXJlbWl4IixpY29uOls1MTIsNTEyLFtdLCJmNGVlIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pNNDE4LjEgMjYwLjRsNC45IDIuMiAwIDcwYy03LjIgMy42LTYzLjQgMjcuNS02Ny4zIDI4LjgtNi41LTEuOC0xMTMuNy00Ni44LTEzNy4zLTU2LjJsLTY0LjIgMjYuNi02My4zLTI3LjUgMC02My44IDU5LjMtMjQuOGMtLjctLjctLjQgNS0uNC03MC40bDY3LjMtMjkuNyAxNTEuOSA2Mi45IDAgNjEuNiA0OS4xIDIwLjN6bS03MC40IDgxLjVsMC00My44LS40IDAgMC0xLjgtMTEzLjgtNDYuNSAwIDQ1LjIgMTEzLjggNDYuOSAwLS40IC40IC40em03LjUtNTcuNmwzOS45LTE2LjQtMzYuOC0xNS41LTM5IDE2LjQgMzUuOSAxNS41em01Mi4zIDM4LjFsMC00My00NC4zIDE4LjYgMCA0My40IDQ0LjMtMTl6Il19LGczcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiYW5kY2FtcCIsaWNvbjpbNTEyLDUxMixbXSwiZjJkNSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTQ4LjIgMzI2LjFsLTE4MSAwIDg0LjctMTU2LjEgMTgxIDAtODQuNyAxNTYuMXoiXX0sYjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13ZWItYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsW10sImU2ODQiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMjM1IDgxLjZsNTMgNDYuNCA1Mi4yLTEwLjRjLTIuNi0zLjktNC4yLTguNS00LjItMTMuNiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMtMTAuMyAyMy42LTIzLjIgMjRMMzA0LjUgMzQ5LjFjLTUuMiAxMS41LTE2LjYgMTguOS0yOS4yIDE4LjlsLTEwMi42IDBjLTEyLjYgMC0yNC03LjQtMjkuMi0xOC45TDg3LjIgMjI0Yy0xMi45LS40LTIzLjItMTEtMjMuMi0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgNS0xLjUgOS43LTQuMiAxMy42TDE2MCAyMjQgMjEzLjEgMTc3LjZjLTguOS00LjEtMTUtMTMuMS0xNS0yMy42IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZjMCAxMC41LTYuMiAxOS41LTE1LjEgMjMuNnoiXX0seDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbWVvLXYiLGljb246WzQ0OCw1MTIsW10sImYyN2QiLCJNNDQ3LjggMTUzLjZjLTIgNDMuNi0zMi40IDEwMy4zLTkxLjQgMTc5LjEtNjAuOSA3OS4yLTExMi40IDExOC44LTE1NC42IDExOC44LTI2LjEgMC00OC4yLTI0LjEtNjYuMy03Mi4zLTM1LjItMTI5LjItNTAuMi0yMDQuOS03OS4zLTIwNC45LTMuNCAwLTE1LjEgNy4xLTM1LjIgMjEuMUwwIDE2OC4yYzUxLjYtNDUuMyAxMDAuOS05NS43IDEzMS44LTk4LjUgMzQuOS0zLjQgNTYuMyAyMC41IDY0LjQgNzEuNSAyOC43IDE4MS41IDQxLjQgMjA4LjkgOTMuNiAxMjYuNyAxOC43LTI5LjYgMjguOC01Mi4xIDMwLjItNjcuNiA0LjgtNDUuOS0zNS44LTQyLjgtNjMuMy0zMSAyMi03Mi4xIDY0LjEtMTA3LjEgMTI2LjItMTA1LjEgNDUuOCAxLjIgNjcuNSAzMS4xIDY0LjkgODkuNHoiXX0sdjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmF2YSIsaWNvbjpbMzg0LDUxMixbXSwiZjQyOCIsIk0xNTguNCAwTDcgMjkyIDk2LjIgMjkyIDE1OC40IDE3NS45IDIyMC4xIDI5MiAzMDguNiAyOTIgMTU4LjQgMHpNMzA4LjYgMjkybC00My45IDg4LjItNDQuNi04OC4yLTY3LjYgMCAxMTIuMiAyMjAgMTExLjUtMjIwLTY3LjYgMHoiXX0seTNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuaXJlZ2lzdHJ5IixpY29uOlszODQsNTEyLFtdLCJmNDA0IiwiTTE5MiA0ODBjMzkuNSAwIDc2LjItMTEuOCAxMDYuOC0zMi4ybC0yMTMuNSAwQzExNS44IDQ2OC4yIDE1Mi41IDQ4MCAxOTIgNDgwek0xMDIuOSAyODYuOWwwLTEyLjQtMTAyLjkgMCAwIDEyLjRjMCAyLjUgMCA1IC4xIDcuNGwxMDMuMSAwYy0uMi0yLjQtLjMtNC45LS4zLTcuNHptMjAuNSA1N2wtMTE0LjkgMGMyLjYgOC41IDUuOCAxNi44IDkuNiAyNC44bDEzOC4zIDBjLTEyLjktNS43LTI0LjEtMTQuMi0zMy0yNC44em0tMTcuNy0zNC43bC0xMDQuNCAwYy45IDcuNiAyLjIgMTUgMy45IDIyLjNsMTA5LjcgMGMtNC02LjktNy4yLTE0LjQtOS4yLTIyLjN6bS0yLjgtNjkuM2wtMTAyLjkgMCAwIDE3LjMgMTAyLjkgMCAwLTE3LjN6bTAtMTczLjJsLTEwMi45IDAgMCA0LjkgMTAyLjkgMCAwLTQuOXptMC0zNC43bC0xMDIuOSAwIDAgMi41IDEwMi45IDAgMC0yLjV6bTAgNjkuM2wtMTAyLjkgMCAwIDcuNCAxMDIuOSAwIDAtNy40em0wIDEwNGwtMTAyLjkgMCAwIDE0LjggMTAyLjkgMCAwLTE0Ljh6bTAtNjkuM2wtMTAyLjkgMCAwIDkuOSAxMDIuOSAwIDAtOS45em0wIDM0LjZsLTEwMi45IDAgMCAxMi40IDEwMi45IDAgMC0xMi40ek0yNjkuMSAzMzEuNWwxMDkuNyAwYzEuOC03LjMgMy4xLTE0LjcgMy45LTIyLjNsLTEwNC40IDBjLTIuMSA3LjktNS4yIDE1LjQtOS4yIDIyLjN6bTEyLTE4NS43bDEwMi45IDAgMC05LjgtMTAyLjkgMCAwIDkuOHptMCAzNy4ybDEwMi45IDAgMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTc0LjNsMTAyLjkgMCAwLTcuNC0xMDIuOSAwIDAgNy40em0wLTc2LjdsMCAyLjUgMTAyLjkgMCAwLTIuNS0xMDIuOSAwek03OC4xIDQ0Mi45bDIyNy43IDBjMTEuOC04LjcgMjIuNy0xOC42IDMyLjItMjkuN2wtMjkzLjEgMGM5LjYgMTEgMjEuNCAyMSAzMy4yIDI5Ljd6bTIwMy0zNzEuM2wxMDIuOSAwIDAtNC45LTEwMi45IDAgMCA0Ljl6bTAgMTQ4LjVsMTAyLjkgMCAwLTE0LjgtMTAyLjkgMCAwIDE0Ljh6TTM4LjggNDA1LjdsMzA1LjMgMGM2LjctOC41IDEyLjYtMTcuNiAxNy44LTI3LjJMMjMgMzc4LjVjNS4yIDkuNiA5LjIgMTguNyAxNS44IDI3LjJ6bTE4OC44LTM3LjFsMTM5LjQgMGMzLjctOCA1LjgtMTYuMiA4LjUtMjQuOGwtMTE1IDBjLTguOCAxMC43LTIwLjEgMTkuMi0zMi45IDI0Ljh6bTUzLjUtODEuN2MwIDIuNS0uMSA1LS40IDcuNGwxMDMuMSAwYy4xLTIuNSAuMi00LjkgLjItNy40bDAtMTIuNC0xMDIuOSAwIDAgMTIuNHptMC0yOS43bDEwMi45IDAgMC0xNy4zLTEwMi45IDAgMCAxNy4zeiJdfSx3M3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGluZXJzLWNsdWIiLGljb246WzU3Niw1MTIsW10sImYyNGMiLCJNMjM5LjcgNzkuOWExNzUuOCAxNzUuOCAwIDEgMCAwIDM1MS42IDE3NS44IDE3NS44IDAgMSAwIDAtMzUxLjZ6TTE5OS44IDM1OS41Yy00MS43LTE1LjktNzEuNC01Ni40LTcxLjQtMTAzLjhzMjkuNy04Ny45IDcxLjQtMTA0LjFsMCAyMDcuOXptNzkuOCAuM2wwLTIwOC4yYzQxLjcgMTYuMiA3MS40IDU2LjcgNzEuNCAxMDQuMXMtMjkuNyA4Ny45LTcxLjQgMTA0LjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0zMjkuNyA0NDhsLTkwLjMgMEMxMzMuMiA0NDggNDUuNiAzNjIuNSA0NS42IDI1Ny44IDQ1LjYgMTQzLjIgMTMzLjIgNjQgMjM5LjQgNjRsOTAuMyAwYzEwNSAwIDIwMC43IDc5LjIgMjAwLjcgMTkzLjggMCAxMDQuNy05NS43IDE5MC4yLTIwMC43IDE5MC4yeiJdfSxrM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia3ViZXJuZXRlcyIsaWNvbjpbNTEyLDUxMixbXSwiZTg1NyIsIk0yNTYgMzE2LjFjMy41LS4xIDcuMiAyIDguOSA1LjFMMjkzIDM3MS43Yy0zLjYgMS4yLTcuMyAyLjMtMTEuMiAzLjEtMjEuNCA0LjktNDIuNyAzLjQtNjItMy4ybDI3LjktNTAuNGMxLjctMy4xIDQuOS01IDguMi01LjF6bTUwLjUtMjMuNGw1Ny4yIDkuN2MtOC40IDIzLjUtMjQuNCA0My45LTQ1LjggNTcuNWwtMjIuMi01My42Yy0yLTQuNyAuMS0xMC40IDQuOC0xMi42IDEuOS0uOSA0LjEtMS4zIDYtLjl6bS04OS4xIDcuN2MuNSAyLjEgLjMgNC4yLS41IDZsLTIxLjggNTMuM2MtMjAuNS0xMy4yLTM2LjktMzIuOS00NS43LTU3LjFsNTYuNy05LjZjNS4xLS45IDEwLjEgMi40IDExLjMgNy41em01OC44LTQxbC0zLjkgMTcuMS0xNS44IDcuNi0xNS45LTcuNy00LTE3LjEgMTEtMTMuNyAxNy43IDAgMTEgMTMuN3ptLTczLjctMTYuN2MzLjkgMy40IDQuNCA5LjUgMS4yIDEzLjYtMS4zIDEuNy0zLjEgMi44LTUgMy4zbC01NS4zIDE2LjJjLTIuOC0yNS43IDMuMy01MC43IDE2LjEtNzEuNmw0My4xIDM4LjZ6bTE1MC43LTM4LjVjNi40IDEwLjQgMTEuMiAyMiAxNC4xIDM0LjYgMi45IDEyLjQgMy42IDI0LjggMi40IDM2LjhsLTU1LjYtMTZjLTUtMS40LTguMS02LjctNi45LTExLjcgLjUtMi4xIDEuNi0zLjggMy4xLTUuMWw0Mi45LTM4LjV6bS0xMTMuOCA0LjRjLS4yIDUuMi00LjcgOS40LTkuOSA5LjQtMi4xIDAtNC4xLS43LTUuNy0xLjhsLTQ3LjMtMzMuNGMxNC41LTE0LjMgMzMuMS0yNC44IDU0LjUtMjkuNyAzLjktLjkgNy44LTEuNiAxMS43LTJsLTMuMyA1Ny42em0zMC44LTU3LjZjMjUgMy4xIDQ4LjEgMTQuNCA2NS44IDMxLjdsLTQ3LjEgMzMuMmMtNC4yIDMtMTAgMi4zLTEzLjMtMS44LTEuMy0xLjctMi0zLjYtMi4xLTUuNmwtMy4zLTU3LjV6TTI1NC41LTEuM2M1LjktLjMgMTEuNyAuOSAxNyAzLjRMNDU1IDg5LjdjNC43IDIuMyA4LjkgNS42IDEyLjIgOS43czUuNiA4LjggNi44IDEzLjlsNDUuMyAxOTYuOWMxLjIgNS4xIDEuMiAxMC40IDAgMTUuNXMtMy41IDkuOS02LjggMTMuOUwzODUuNiA0OTcuNmMtMy4zIDQuMS03LjUgNy40LTEyLjIgOS42cy0xMCAzLjQtMTUuMiAzLjRsLTIwMy42IDBjLTUuMyAwLTEwLjUtMS4yLTE1LjItMy40cy04LjktNS41LTEyLjItOS42TC4yIDMzOS43Yy0uNy0uOS0xLjQtMS44LTItMi44LTIuNi0zLjktNC4zLTguMy01LjEtMTIuOXMtLjctOS4zIC4zLTEzLjhMMzguNyAxMTMuNGMxLjItNS4xIDMuNS05LjkgNi44LTEzLjlzNy41LTcuNCAxMi4yLTkuN0wyNDEuMSAyLjFjNC4yLTIgOC44LTMuMiAxMy40LTMuNHptMS44IDY3Yy02LjEgMC0xMSA1LjUtMTEgMTIuMiAwIC4xIDAgLjIgMCAuMyAwIC45LS4xIDIgMCAyLjggLjEgMy45IDEgNi45IDEuNSAxMC40IC45IDcuNyAxLjcgMTQgMS4yIDE5LjktLjUgMi4yLTIuMSA0LjMtMy42IDUuN2wtLjIgNC42Yy02LjYgLjUtMTMuMiAxLjYtMTkuOCAzLjEtMjguNSA2LjUtNTMuMSAyMS4xLTcxLjggNDEtMS4yLS44LTMuMy0yLjMtNC0yLjgtMiAuMy00IC45LTYuNS0uNi00LjktMy4zLTkuNC03LjktMTQuOC0xMy40LTIuNS0yLjYtNC4zLTUuMS03LjItNy43LS43LS42LTEuNy0xLjQtMi40LTItMi4zLTEuOC01LTIuOC03LjctMi45LTMuNC0uMS02LjYgMS4yLTguOCAzLjktMy44IDQuNy0yLjUgMTIgMi43IDE2LjIgLjEgMCAuMSAuMSAuMiAuMSAuNyAuNiAxLjYgMS4zIDIuMyAxLjggMy4xIDIuMyA2IDMuNSA5LjEgNS4zIDYuNiA0LjEgMTIgNy40IDE2LjMgMTEuNSAxLjcgMS44IDIgNC45IDIuMiA2LjNsMy41IDMuMmMtMTguOCAyOC40LTI3LjYgNjMuNC0yMi40IDk5LjFsLTQuNiAxLjNjLTEuMiAxLjYtMi45IDQtNC43IDQuNy01LjYgMS44LTEyIDIuNC0xOS43IDMuMy0zLjYgLjMtNi43IC4xLTEwLjUgLjgtLjggLjItMiAuNC0yLjkgLjdsLS4xIDAtLjIgLjFjLTYuNSAxLjYtMTAuNyA3LjUtOS4zIDEzLjQgMS4zIDUuOSA3LjcgOS40IDE0LjIgOGwuMiAwYy4xIDAgLjEtLjEgLjItLjEgLjktLjIgMi4xLS40IDIuOC0uNiAzLjgtMSA2LjUtMi41IDkuOC0zLjggNy4zLTIuNiAxMy4zLTQuOCAxOS4yLTUuNiAyLjQtLjIgNSAxLjUgNi4zIDIuMmw0LjgtLjhjMTEgMzQuMSAzNC4xIDYxLjcgNjMuMyA3OS4xbC0yIDQuOGMuNyAxLjkgMS41IDQuNCAxIDYuMi0yLjEgNS41LTUuOCAxMS40LTkuOSAxNy45LTIgMy00LjEgNS4zLTUuOSA4LjgtLjQgLjgtMSAyLjEtMS40IDMtMi44IDYtLjggMTMgNC43IDE1LjYgNS41IDIuNiAxMi4yLS4xIDE1LjItNi4ybDAgMGMuNC0uOSAxLTIgMS40LTIuOCAxLjYtMy42IDIuMS02LjYgMy4yLTEwLjEgMi45LTcuMyA0LjUtMTQuOSA4LjUtMTkuNyAxLjEtMS4zIDIuOS0xLjggNC44LTIuM2wyLjUtNC41YzI1LjUgOS44IDU0IDEyLjQgODIuNSA1LjkgNi41LTEuNSAxMi44LTMuNCAxOC44LTUuNyAuNyAxLjIgMiAzLjYgMi4zIDQuMiAxLjkgLjYgMy45IC45IDUuNiAzLjQgMyA1LjEgNSAxMS4yIDcuNSAxOC41IDEuMSAzLjQgMS42IDYuNSAzLjIgMTAuMSAuNCAuOCAxIDIgMS40IDIuOCAyLjkgNi4xIDkuNyA4LjggMTUuMiA2LjIgNS40LTIuNiA3LjUtOS42IDQuNy0xNS42LS40LS45LTEtMi4xLTEuNC0zLTEuOC0zLjQtMy45LTUuNy01LjktOC43LTQuMi02LjUtNy42LTExLjktOS44LTE3LjQtLjktMi44IC4yLTQuNiAuOC02LjUtLjQtLjUtMS4zLTMuMi0xLjgtNC40IDMwLjQtMTcuOSA1Mi44LTQ2LjYgNjMuMy03OS42IDEuNCAuMiAzLjkgLjcgNC43IC44IDEuNy0xLjEgMy4yLTIuNSA2LjItMi4zIDUuOSAuOCAxMS45IDMgMTkuMiA1LjYgMy40IDEuMyA2LjEgMi44IDkuOCAzLjggLjggLjIgMS45IC40IDIuOCAuNiAuMSAwIC4xIDAgLjIgLjFsLjIgMGM2LjUgMS40IDEyLjgtMi4yIDE0LjItOHMtMi44LTExLjgtOS4zLTEzLjRjLS45LS4yLTIuMy0uNi0zLjItLjctMy44LS43LTYuOS0uNS0xMC41LS44LTcuNy0uOC0xNC0xLjQtMTkuNy0zLjItMi4zLS45LTQtMy43LTQuOC00LjhsLTQuNC0xLjNjMi4zLTE2LjYgMS43LTMzLjktMi4zLTUxLjMtNC0xNy41LTExLjEtMzMuNS0yMC42LTQ3LjYgMS4xLTEgMy4zLTIuOSAzLjktMy41IC4yLTIgMC00IDIuMS02LjIgNC4zLTQuMSA5LjgtNy40IDE2LjMtMTEuNSAzLjEtMS44IDYtMyA5LjEtNS4zIC43LS41IDEuNy0xLjMgMi40LTEuOSA1LjMtNC4yIDYuNS0xMS40IDIuNy0xNi4ycy0xMS4xLTUuMi0xNi40LTFjLS43IC42LTEuOCAxLjQtMi40IDItMi45IDIuNS00LjggNS03LjIgNy43LTUuNCA1LjUtOS45IDEwLjEtMTQuOCAxMy40LTIuMSAxLjItNS4zIC44LTYuNyAuN2wtNC4yIDNjLTIzLjgtMjUtNTYuMi00MS05MS4yLTQ0LjEtLjEtMS41LS4yLTQuMS0uMi00LjktMS40LTEuNC0zLjItMi41LTMuNi01LjUtLjUtNS45IC4zLTEyLjMgMS4zLTE5LjkgLjUtMy42IDEuNC02LjYgMS41LTEwLjQgMC0uOSAwLTIuMiAwLTMuMSAwLTYuNy00LjktMTIuMi0xMS0xMi4yeiJdfSxTM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGludGVyZXN0IixpY29uOls1MTIsNTEyLFtdLCJmMGQyIiwiTTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4LTI1LjYgMC01MC4yLTMuOS03My40LTExLjEgMTAuMS0xNi41IDI1LjItNDMuNSAzMC44LTY1IDMtMTEuNiAxNS40LTU5IDE1LjQtNTkgOC4xIDE1LjQgMzEuNyAyOC41IDU2LjggMjguNSA3NC44IDAgMTI4LjctNjguOCAxMjguNy0xNTQuMyAwLTgxLjktNjYuOS0xNDMuMi0xNTIuOS0xNDMuMi0xMDcgMC0xNjMuOSA3MS44LTE2My45IDE1MC4xIDAgMzYuNCAxOS40IDgxLjcgNTAuMyA5Ni4xIDQuNyAyLjIgNy4yIDEuMiA4LjMtMy4zIC44LTMuNCA1LTIwLjMgNi45LTI4LjEgLjYtMi41IC4zLTQuNy0xLjctNy4xLTEwLjEtMTIuNS0xOC4zLTM1LjMtMTguMy01Ni42IDAtNTQuNyA0MS40LTEwNy42IDExMi0xMDcuNiA2MC45IDAgMTAzLjYgNDEuNSAxMDMuNiAxMDAuOSAwIDY3LjEtMzMuOSAxMTMuNi03OCAxMTMuNi0yNC4zIDAtNDIuNi0yMC4xLTM2LjctNDQuOCA3LTI5LjUgMjAuNS02MS4zIDIwLjUtODIuNiAwLTE5LTEwLjItMzQuOS0zMS40LTM0LjktMjQuOSAwLTQ0LjkgMjUuNy00NC45IDYwLjIgMCAyMiA3LjQgMzYuOCA3LjQgMzYuOHMtMjQuNSAxMDMuOC0yOSAxMjMuMkMxNjEuNSA0MzcuMiAxNjMuNSA0NjcuNCAxNjUuNiA0ODcgNzMuNCA0NTAuOSA4IDM2MS4xIDggMjU2IDggMTE5IDExOSA4IDI1NiA4UzUwNCAxMTkgNTA0IDI1NnoiXX0sTTNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFsZ29saWEiLGljb246WzUxMiw1MTIsW10sImYzNmMiLCJNMjU2IDBjLTEzOS45IDAtMjU0IDExMi43LTI1NiAyNTIuMS0yIDE0MS41IDExMi45IDI1OC43IDI1NC41IDI1OS41IDQzLjcgLjMgODUuOS0xMC40IDEyMy4zLTMwLjcgMy42LTIgNC4yLTcgMS4xLTkuN2wtMjQtMjEuMmMtNC45LTQuMy0xMS44LTUuNS0xNy44LTMtMjYuMSAxMS4xLTU0LjUgMTYuOC04My43IDE2LjQtMTE0LjQtMS41LTIwNi45LTk2LjYtMjA1LjEtMjExIDEuOC0xMTIuOSA5NC4zLTIwNC4yIDIwNy43LTIwNC4ybDIwNy43IDAgMCAzNjktMTE3LjgtMTA0LjdjLTMuOC0zLjQtOS43LTIuNy0xMi43IDEuMy0xOC45IDI1LTQ5LjcgNDAuNi04My45IDM4LjItNDcuNS0zLjMtODUuOS00MS41LTg5LjUtODguOS00LjItNTYuNiA0MC42LTEwMy45IDk2LjMtMTAzLjkgNTAuNCAwIDkxLjkgMzguOCA5Ni4yIDg4IC40IDQuNCAyLjQgOC41IDUuNyAxMS40bDMwLjcgMjcuMmMzLjUgMy4xIDkgMS4yIDkuOS0zLjQgMi4yLTExLjggMy0yNC4yIDIuMS0zNi44LTQuOS03Mi02My4zLTEzMC0xMzUuNC0xMzQuNC04Mi43LTUuMS0xNTEuOCA1OS41LTE1NCAxNDAuNi0yLjEgNzguOSA2Mi42IDE0NyAxNDEuNiAxNDguNyAzMyAuNyA2My42LTkuNiA4OC4zLTI3LjZMNDk1IDUwOS40YzYuNiA1LjggMTcgMS4yIDE3LTcuN2wwLTQ5MmMwLTUuNC00LjQtOS43LTkuNy05LjdMMjU2IDB6Il19LEMzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFja3BhdGgiLGljb246WzQ0OCw1MTIsW10sImY4NDIiLCJNMjQ0LjYgMjMyLjRjMCA4LjUtNC4zIDIwLjUtMjEuMyAyMC41bC0xOS42IDAgMC00MS41IDE5LjYgMGMxNy4xIDAgMjEuMyAxMi40IDIxLjMgMjF6TTQ0OCAzMmwwIDQ0OC00NDggMCAwLTQ0OCA0NDggMHpNMTUxLjMgMjg3LjhjMC0yMS4yLTEyLjEtMzQuNS00Ni43LTQ0LjgtMjAuNi03LjQtMjYtMTAuOS0yNi0xOC42czctMTQuNiAyMC40LTE0LjZjMTQuMSAwIDIwLjggOC40IDIwLjggMTguNGwzMC43IDAgLjItLjZjLjUtMTkuNi0xNS4xLTQxLjYtNTEuMS00MS42LTIzLjQgMC01Mi42IDEwLjgtNTIuNiAzOC4zIDAgMTkuNCA5LjIgMzEuMyA1MC43IDQ0LjQgMTcuMyA2LjIgMjEuOSAxMC40IDIxLjkgMTkuNSAwIDE1LjItMTkuMSAxNC4yLTE5LjUgMTQuMi0yMC40IDAtMjUuNy05LjEtMjUuNy0yMS45bC0zMC44IDAtLjIgLjZjLS43IDMxLjMgMjguNCA0NS4yIDU2LjYgNDUuMiAzMCAwIDUxLjEtMTMuNiA1MS4xLTM4LjN6bTEyNS40LTU1LjZjMC0yNS4zLTE4LjQtNDUuNS01My40LTQ1LjVsLTUxLjggMCAwIDEzOC4yIDMyLjIgMCAwLTQ3LjQgMTkuNiAwYzMwLjMgMCA1My40LTE2IDUzLjQtNDUuNHpNMjk3LjkgMzI1bDQ5LjEtMTM4LjItMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwek00MDQuNSAxODYuOGwtMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwIDQ5LjEtMTM4LjJ6Il19LHozcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvY3RvcHVzLWRlcGxveSIsaWNvbjpbNTEyLDUxMixbXSwiZTA4MiIsIk00NTUuNyAzNDkuMmMtNDUuOS0zOS4xLTM2LjctNzcuOS0xNi4xLTEyOC4xIDM1LjctODctMjMuNS0xODYuOS0xMDkuNi0yMTIuOC05Mi45LTI3LjktMTk1LjcgMTYtMjMwLjMgMTA4LjgtOC43IDIzLjUtMTIuNSA0OC41LTExIDczLjUgMS43IDI5LjUgMTQuNyA1MyAyNC4xIDgwLjMgMTcuMiA1MC4yLTI4LjEgOTIuNy02Ni43IDExNy42LTQ2LjggMzAuMi0zNi4zIDM5LjktOC40IDQxLjkgMjMuNCAxLjcgNDQuNS00LjUgNjUuMy0xNSA5LjItNC42IDQwLjctMTguOSA0NS4xLTI4LjYtMTIuMiAyNi42LTM3IDcyLjctMjEuNSAxMDIuMSAxOS4xIDM2LjIgNjcuMS0zMS44IDc2LjctNDUuOCA4LjYtMTIuNiA0My04MS4zIDYzLjYtNDYuOSAxOC45IDMxLjQgOC42IDc2LjQgMzUuNyAxMDQuNiAzMi45IDM0LjIgNTEuMi0xOC4zIDUxLjQtNDQuMiAuMi0xNi40LTYuMS05NS45IDI5LjktNTkuOSAyMS40IDIxLjQgNTIuOSA3MS4yIDg4LjYgNjcgMzguNy00LjUtMjIuMS02OC0yOC4zLTc4LjcgNS40IDQuMyA1My43IDM0LjEgNTMuOCA5LjUgLjEtMTguOC0zMC4xLTM0LjctNDIuNS00NS4zeiJdfSxfM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFtbWVyIixpY29uOls1MTIsNTEyLFtdLCJmODQwIiwiTTUwMC43IDE1OS41Yy0uNC0xLjgtMS4yLTMuNC0yLjMtNC44cy0yLjUtMi42LTQuMS0zLjVjLTMuMS0xLjYtNi43LTItMTAuMS0xLjFsLTI2LjQgNi42IDAtLjItMjIuMyA1LjgtMS4yIC4zLS42LTIuMmMtMTUuNS01OC4zLTQ1LTExMS45LTg2LjEtMTU2LjItMi42LTIuNy02LjEtNC4yLTkuOC00LjNzLTcuMyAxLjMtMTAgMy44bC0xMDIuOSAxMDIuNy0xOTkuOSAwYy02LjYgMC0xMi45IDIuNi0xNy42IDcuM1MwIDEyNC44IDAgMTMxLjRsMCAyNDlDMCAzODcgMi42IDM5My4zIDcuMyAzOThzMTEgNy4zIDE3LjYgNy4zTDIyNSA0MDUuMyAzMjguMSA1MDhjMi42IDIuNiA2IDQgOS43IDRzNy4xLTEuNCA5LjctNGMuMS0uMSAuMi0uMyAuNC0uNCAyOS4zLTMxLjUgNTIuOC02Ny44IDY5LjYtMTA3LjQgNi45LTE2LjUgMTIuNy0zMy41IDE3LjMtNTAuOGwwIDAgMjAuNCA1LjMgMC0uMSAyOC4zIDcuM2MuOSAuMiAxLjcgLjQgMi42IC41IDEuNCAuMiAyLjggLjIgNC4xLS4xIDIuNS0uNSA0LjgtMS43IDYuNy0zLjRzMy4yLTQgMy44LTYuNWMxNS4yLTYzLjQgMTUuMi0xMjkuNiAuMS0xOTNsMCAwek0zMzcuMSAyNC43bDAgMCAwIDAgMCAwek0yMjYuOSAxODkuOGwtNTIuNiA5MS4zYy0xIDEuNy0xLjUgMy43LTEuNSA1LjdsMCA0Ni4yYzAgNS44LTIuMyAxMS40LTYuNSAxNS42cy05LjcgNi40LTE1LjYgNi40bC0zLjQgMGMtNS44IDAtMTEuNC0yLjMtMTUuNi02LjRzLTYuNS05LjctNi41LTE1LjZsMC00NS43YzAtMS45LS41LTMuOC0xLjQtNS41TDcyLjMgMTg5LjZjLTEuOS0zLjQtMi44LTcuMS0yLjgtMTFzMS4xLTcuNiAzLTEwLjkgNC43LTYuMSA4LjEtOCA3LjEtMi45IDExLTIuOWwzLjMgMGM0IDAgOCAxLjEgMTEuNSAzLjJzNi4zIDUuMSA4LjEgOC43bDM2LjQgNzAuMyAzNy41LTcwLjVjMS44LTMuNSA0LjYtNi40IDcuOS04LjRzNy4yLTMuMiAxMS4xLTMuMiA3LjggLjkgMTEuMiAyLjggNi4zIDQuNyA4LjIgOC4xYzIgMy4zIDMgNy4xIDMgMTFzLTEgNy43LTMgMTFsMCAwek0zMzcuMSAyNC43YzM1LjkgNDAuNiA2MS45IDg5IDc1LjggMTQxLjNsLjYgMi0xMTQuMSAyOS42IDAtNjYuMWMwLTYuNi0yLjctMTIuOS03LjMtMTcuNnMtMTEtNy4zLTE3LjYtNy4zbC0xOS40IDAgODIuMS04MS44ek0zOTcuNiAzOTJsMCAwIDAgMGMtMTQuNyAzNC44LTM1LjEgNjctNjAuMiA5NS4ybC04Mi4yLTgxLjkgMTkuMiAwYzYuNiAwIDEyLjktMi42IDE3LjYtNy4zczcuMy0xMSA3LjMtMTcuNmwwLTY2LjIgMTE0LjYgMjkuOWMtNC40IDE2LjMtOS44IDMyLjMtMTYuMyA0Ny45bDAgMHptODQtNTIuNGwwIDAtNTAuNi0xMy4xLTEzMS43LTM0LjMgMC03Mi41IDExOS43LTMxIDQuNS0xLjJjMjkuOS03LjcgNDkuMi0xMi44IDU4LjEtMTUuMSAxMiA1NS4xIDEyIDExMi4xIDAgMTY3LjJ6Il19LFQzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb2R4IixpY29uOls0NDgsNTEyLFtdLCJmMjg1IiwiTTM1NiAyNDEuOGwzNi43IDIzLjcgMCAyMTQuNS0xMzMtODMuOCA5Ni4zLTE1NC40ek00NDAgNzVsLTIxMy43IDAtMjMgMzcuOCAxNTMuNSA5Ni41IDgzLjItMTM0LjN6TTM1MSAyMTcuOGwtMjk1LjgtMTg1LjggMCAyMTQuNSA0NiAyOSAyNDkuOC01Ny43ek05NyAyOTQuMkw4IDQzNyAyMjEuNyA0MzcgMzQ2LjcgMjM2LjUgOTcgMjk0LjJ6Il19LEwzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdGhyZWFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxOSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yOTQuMiAyNDQuM2MxOS41IDkuMyAzMy43IDIzLjUgNDEuMiA0MC45IDEwLjQgMjQuMyAxMS40IDYzLjktMjAuMiA5NS40LTI0LjIgMjQuMS01My41IDM1LTk1LjEgMzUuM2wtLjIgMGMtNDYuOC0uMy04Mi44LTE2LjEtMTA2LjktNDYuOC0yMS41LTI3LjMtMzIuNi02NS40LTMzLTExMy4xbDAtLjJjLjQtNDcuNyAxMS41LTg1LjcgMzMtMTEzLjEgMjQuMi0zMC43IDYwLjItNDYuNSAxMDYuOS00Ni44bC4yIDBjNDYuOSAuMyA4My4zIDE2IDEwOC4yIDQ2LjYgMTIuMyAxNS4xIDIxLjMgMzMuMyAyNyA1NC40bC0yNi45IDcuMmMtNC43LTE3LjItMTEuOS0zMS45LTIxLjQtNDMuNi0xOS40LTIzLjktNDguNy0zNi4xLTg3LTM2LjQtMzggLjMtNjYuOCAxMi41LTg1LjUgMzYuMi0xNy41IDIyLjMtMjYuNiA1NC40LTI2LjkgOTUuNSAuMyA0MS4xIDkuNCA3My4zIDI2LjkgOTUuNSAxOC43IDIzLjggNDcuNCAzNiA4NS41IDM2LjIgMzQuMy0uMyA1Ni45LTguNCA3NS44LTI3LjMgMjEuNS0yMS41IDIxLjEtNDcuOSAxNC4yLTY0LTQtOS40LTExLjQtMTcuMy0yMS4zLTIzLjMtMi40IDE4LTcuOSAzMi4yLTE2LjUgNDMuMi0xMS40IDE0LjUtMjcuNyAyMi40LTQ4LjQgMjMuNS0xNS43IC45LTMwLjgtMi45LTQyLjYtMTAuNy0xMy45LTkuMi0yMi0yMy4yLTIyLjktMzkuNS0xLjctMzIuMiAyMy44LTU1LjMgNjMuNS01Ny42IDE0LjEtLjggMjcuMy0uMiAzOS41IDEuOS0xLjYtOS45LTQuOS0xNy43LTkuOC0yMy40LTYuNy03LjgtMTcuMS0xMS44LTMwLjgtMTEuOWwtLjQgMGMtMTEgMC0yNiAzLjEtMzUuNiAxNy42bC0yMy0xNS44YzEyLjgtMTkuNCAzMy42LTMwLjEgNTguNS0zMC4xbC42IDBjNDEuOCAuMyA2Ni42IDI2LjMgNjkuMSA3MS44IDEuNCAuNiAyLjggMS4yIDQuMiAxLjlsLjEgLjV6bS03MS44IDY3LjVjMTctLjkgMzYuNC03LjYgMzkuNy00OC44LTguOC0xLjktMTguNi0yLjktMjktMi45LTMuMiAwLTYuNCAuMS05LjYgLjMtMjguNiAxLjYtMzguMSAxNS41LTM3LjQgMjcuOSAuOSAxNi43IDE5IDI0LjUgMzYuNCAyMy42bC0uMS0uMXoiXX0sRDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9sZC1yZXB1YmxpYyIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMCIsIk0yNDMuOCAxMC4yYzcuNS0uMyAxNS0uMyAyMi41LS4xIDMuNiAuMSA3LjIgLjQgMTAuOCAuNyA0LjkgLjMgOS44IDEgMTQuNyAxLjYgMi45IC40IDUuOCAxIDguNyAxLjUgNy45IDEuMyAxNS43IDMuMyAyMy40IDUuNCAxMi4yIDMuNSAyNC4yIDcuOSAzNS44IDEzLjIgMjYuNiAxMi4yIDUwLjkgMjkuMiA3MS42IDQ5LjkgMjAgMjAuMSAzNi43IDQzLjUgNDguOSA2OS4yIDEuMSAyLjYgMi40IDUuMSAzLjUgNy43IDIuOCA2LjQgNS40IDEzIDcuNiAxOS42IDQuMSAxMi4zIDcuMyAyNSA5LjQgMzcuOCAuNiAzLjEgMSA2LjMgMS40IDkuNSAuNSAzLjggLjkgNy43IDEuMiAxMS42IC44IDguMyAuOCAxNi43IC44IDI1LjEtLjEgNS0uMyA5LjktLjcgMTQuOS0uMiAzLjQtLjUgNi44LTEgMTAuMS0uNCAyLjctLjYgNS41LTEuMSA4LjItLjkgNS4xLTEuNyAxMC4zLTIuOSAxNS40LTQuMSAxOC41LTEwLjMgMzYuNi0xOC41IDUzLjYtMTUuOCAzMi44LTM4LjggNjIuMi02Ny4xIDg1LjEtMTcuMyAxNC4xLTM2LjQgMjUuOS01Ni45IDM0LjktNi4yIDIuNy0xMi41IDUuMy0xOC45IDcuNC0zLjUgMS4yLTcgMi40LTEwLjYgMy40LTYuNiAxLjktMTMuMyAzLjYtMjAgNS00LjcgLjktOS4zIDEuNy0xNCAyLjUtNS4zIC43LTEwLjUgMS40LTE1LjggMS43LTYuNyAuNy0xMy40IC44LTIwLjEgLjgtNi44IDAtMTMuNi0uMS0yMC40LS44LTMuMy0uMi02LjYtLjUtOS44LTEtMi43LS40LTUuNS0uNi04LjItMS4xLTQuMS0uNy04LjItMS40LTEyLjQtMi4yLTQuMi0uOS04LjUtMS45LTEyLjctMy04LjYtMi4yLTE3LjEtNS0yNS40LTguMS0xMC41LTQuMS0yMC44LTguNy0zMC42LTE0LjItMi4xLTEuMi00LjMtMi4zLTYuNC0zLjYtMTEuMi02LjYtMjEuOS0xNC4xLTMxLjktMjIuMy0zNC43LTI4LjQtNjEuNC02Ni40LTc2LjQtMTA4LjctMy4xLTguNy01LjctMTcuNi03LjgtMjYuNy0xLjUtNi4yLTIuNS0xMi40LTMuNi0xOC43LS40LTIuMy0uNi00LjctMS03LjEtLjYtNC0uOC04LTEuMi0xMS45LS44LTkuNS0uNy0xOS0uNS0yOC41IC4xLTMuNSAuMy03IC43LTEwLjUgLjMtMy4yIC41LTYuNCAuOS05LjUgLjQtMi44IC43LTUuNiAxLjItOC40IC43LTMuOSAxLjMtNy45IDIuMS0xMS44IDMuNC0xNi41IDguNS0zMi43IDE1LjMtNDguMiAxLjItMi45IDIuNi01LjcgMy45LTguNiA4LjEtMTYuNyAxNy45LTMyLjYgMjkuNS00Ny4xIDIwLTI1LjQgNDUuMS00Ni43IDczLjMtNjIuNSA3LjUtNC4yIDE1LjItOCAyMy4xLTExLjQgMTUuOC02LjkgMzIuNC0xMiA0OS4zLTE1LjQgMy41LS43IDctMS4yIDEwLjYtMS44IDIuNi0uNSA1LjMtLjcgNy45LTEuMSAzLjUtLjUgNy4xLS43IDEwLjYtMSAyLjUtLjIgNC45LS40IDcuNC0uNXptOC42IDI0LjRjLTkuMiAuMS0xOC40IDEtMjcuNiAyLjItNy4zIDEuMS0xNC41IDIuNi0yMS43IDQuMy0xMy45IDMuNS0yNy41IDguMy00MC41IDE0LjQtMTAuNSA1LTIwLjYgMTAuNy0zMC4yIDE3LjItNC4yIDIuOS04LjQgNS44LTEyLjMgOS01LjEgNC0xMCA4LjItMTQuNyAxMi42LTIuNSAyLjItNC44IDQuNy03LjIgNy4xLTI4LjIgMjguOC00OC40IDY1LjQtNTcuNSAxMDQuNy0yIDguNC0zLjUgMTctNC40IDI1LjYtMS4xIDguOS0xLjQgMTcuOS0xLjQgMjYuOCAuMSA3LjEgLjQgMTQuMyAxLjIgMjEuNCAuNiA3LjEgMS45IDE0LjIgMy4yIDIxLjIgMS4xIDQuNiAyIDkuMyAzLjMgMTMuOSA2LjMgMjMuNCAxNi41IDQ1LjcgMzAuMSA2NS44IDguNiAxMyAxOC44IDI0LjkgMzAgMzUuOCAxNi4zIDE1LjggMzUgMjkgNTUuMyAzOS4yIDcuMyAzLjUgMTQuNyA2LjkgMjIuMyA5LjYgNSAxLjggMTAuMSAzLjYgMTUuMiA1IDExLjMgMy4yIDIyLjggNS42IDM0LjQgNy4xIDIuOSAuMyA1LjggLjYgOC43IC45IDEzLjggMS4xIDI3LjcgMSA0MS41LS40IDQuNC0uNiA4LjktMSAxMy4zLTEuOCAzLjYtLjcgNy4zLTEuMiAxMC45LTIuMSA0LjEtMSA4LjMtMS45IDEyLjQtMy4xIDI2LjUtNy4zIDUxLjYtMTkuNyA3My42LTM2LjIgMTUuOC0xMS44IDMwLTI1LjggNDIuMS00MS4zIDMuMy00IDYuMi04LjMgOS4xLTEyLjYgMy40LTUuMSA2LjYtMTAuMiA5LjYtMTUuNSAyLjQtNC40IDQuNy04LjkgNy0xMy40IDUuNy0xMi4xIDEwLjMtMjQuNiAxMy44LTM3LjUgMi42LTEwIDQuNy0yMC4yIDUuOS0zMC40IDEuOC0xMy41IDEuOS0yNy4xIDEuMy00MC43LS4zLTMuOS0uNy03LjgtMS0xMS43LTIuMi0xOS4xLTYuOC0zNy45LTEzLjgtNTUuOC02LTE1LjEtMTMuNS0yOS42LTIyLjYtNDMuMS0xMi43LTE4LjgtMjguMi0zNS43LTQ2LTQ5LjgtMjUtMjAtNTQuNS0zNC41LTg1LjYtNDIuMS03LjgtMS45LTE1LjctMy4zLTIzLjYtNC40LTMuOS0uNi03LjgtLjgtMTEuOC0xLjItNy40LS42LTE0LjgtLjctMjIuMi0uNnpNMTQ3LjMgODMuNWMxMy4zLTguOSAyOC4xLTE1LjQgNDMuMy0yMC4yLTMuMiAxLjgtNi40IDMuNC05LjUgNS4zLTExLjIgNi43LTIxLjUgMTQuOS0zMC40IDI0LjUtNi44IDcuNC0xMi44IDE1LjctMTcgMjQuOS0zLjMgNi45LTUuNiAxNC4yLTYuOSAyMS43LS45IDQuOC0xLjMgOS44LTEuMiAxNC44IC4xIDEzLjcgNC40IDI3LjEgMTEuMyAzOC44IDUuOSAxMC4yIDEzLjYgMTkuMyAyMi40IDI3LjMgNC45IDQuNCAxMC4yIDguMSAxNSAxMi42IDIuMyAyLjIgNC41IDQuNCA2LjQgNi45IDIuNiAzLjMgNC45IDcgNiAxMS4xIC45IDMgLjcgNi4yIC43IDkuMyAwIDQuMSAwIDguMiAwIDEyLjMgLjEgMy41IDAgNy4xIC4xIDEwLjYgLjEgMi40IDAgNC44IC4xIDcuMSAuMiA1LjggLjEgMTEuNSAuMSAxNy4zIC4xIDIuOSAwIDUuOCAuMSA4LjcgMCAxLjYgLjEgMy4zIDAgNC45LS45IC4xLTEuOCAuMi0yLjcgLjItMTEgMC0yMS45LTIuNi0zMi02LjktNi0yLjctMTEuOC01LjktMTcuMS05LjgtNS44LTQuMi0xMS4xLTktMTUuOC0xNC4zLTYuNS03LjItMTItMTUuNC0xNi42LTIzLjktMS4xLTItMi4yLTQtMy4yLTYuMS0xLjItMi42LTIuNi01LjEtMy43LTcuOC00LTkuNy02LjYtMTkuOS04LjEtMzAuMy0uNS00LjQtMS4xLTguOS0xLjItMTMuMy0uNy0xNS43IC44LTMxLjYgNC43LTQ2LjggMi4xLTguMiA0LjgtMTYuMiA4LjMtMjMuOCA2LjMtMTQuMiAxNS4zLTI3LjIgMjYuMy0zOC4yIDYuMy02LjIgMTMuMS0xMS44IDIwLjUtMTYuN3pNMzIyLjcgNjMuNGMyLjcgLjcgNS40IDEuNyA4LjEgMi43IDYuNCAyLjMgMTIuNyA0LjggMTguNyA4IDEzLjEgNi40IDI1LjMgMTQuOCAzNS44IDI1IDEwLjIgMTAgMTguNyAyMS42IDI1LjEgMzQuMyAxLjMgMi43IDIuNiA1LjUgMy44IDguMyA2LjMgMTUuMSAxMCAzMS4zIDExLjIgNDcuNiAuNCA0LjUgLjQgOS4xIC41IDEzLjYgLjEgMTEuNi0xLjUgMjMuMy00LjMgMzQuNS0yIDcuMy00LjMgMTQuNS03LjkgMjEuMi0zLjIgNi42LTYuNyAxMy4yLTEwLjggMTkuMi02LjkgMTAuNS0xNS42IDE5LjktMjUuOCAyNy4yLTEwLjUgNy42LTIyLjYgMTMtMzUuNCAxNS40LTMuNSAuNy03LjEgMS4xLTEwLjcgMS4yLTEuOCAuMS0zLjcgLjItNS42LS4xLS4zLTIuMSAwLTQuMyAwLTYuNSAwLTMuNyAuMS03LjQgLjEtMTEuMiAuMi03IDAtMTQuMSAuMi0yMS4xIDAtMi40IDAtNC44IDAtNy4xIC4yLTUuMSAwLTEwLjEgLjEtMTUuMiAuMS0zLS4yLTYgLjUtOSAuNy0yLjUgMS44LTQuOSAzLjEtNy4xIDQuNS03LjMgMTEuMS0xMyAxNy43LTE4LjMgNS40LTQuMiAxMC41LTguOCAxNS0xMy44IDcuNy04LjQgMTQuMi0xNy45IDE4LjgtMjguMyAyLjUtNS45IDQuNS0xMi4xIDUuNS0xOC41IC45LTQuNCAxLjEtOC44IDEtMTMuMyAwLTcuOC0xLjQtMTUuNi0zLjYtMjMuMi0xLjgtNS43LTQuMy0xMS4yLTcuMS0xNi40LTMuOS02LjktOC42LTEzLjMtMTQtMTkuMi05LjktMTAuOC0yMS44LTE5LjktMzQuNi0yNy4xLTEuOC0xLTMuOC0xLjgtNS42LTN6TTIyMS45IDEyMS45YzEtMS4yIDItMi4zIDMuMS0zLjQtLjYgLjktMS4zIDEuOC0yIDIuNy0zLjEgMy45LTUuNSA4LjMtNyAxMy4xLS45IDMuMy0xLjcgNi42LTEuNyAxMC0uMSAyLjUtLjEgNS4xIC4zIDcuNiAxLjEgNy42IDQuMyAxNC45IDguOCAyMS4xIDIgMi43IDQuMiA1LjMgNi45IDcuMyAxLjYgMS4zIDMuNSAyLjEgNS4zIDMgMy4xIDEuNyA2LjMgMy4yIDkuMSA1LjUgMi43IDIuMSA0LjYgNS4zIDQuNCA4LjggMCA3My43IDAgMTQ3LjMgMCAyMjEgMCAxLjQtLjEgMi43IDAgNCAuMSAxLjUgLjggMi44IDEuNSA0LjEgLjkgMS43IDEuOCAzLjMgMy4yIDQuNiAuOSAuOCAyIDEuNCAzLjIgMS4yIDEuNS0uMiAyLjctMS40IDMuNC0yLjYgMS0xLjUgMS43LTMuMiAyLjMtNC45IC44LTIuMSAuNC00LjQgLjUtNi42IC4xLTQgMC04LjEgLjEtMTIuMSAwLTUuOSAwLTExLjggLjEtMTcuNyAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMi00IDAtOC4xIC4xLTEyLjEgMC02IDAtMTIgLjEtMTggLjEtMy42IDAtNy4yIC4xLTEwLjkgLjEtMy45IDAtNy45IC4xLTExLjggMC02IDAtMTIgLjEtMTggLjItMy45IDAtNy45IC4yLTExLjggLjMgMS40IC4xIDIuOSAuMiA0LjQgLjIgMy42IC40IDcuMiAuOCAxMC44IC4zIDMuNCAuNCA2LjkgLjkgMTAuMyAuNCAzLjEgLjUgNi4yIDEgOS4zIC42IDQuMSAuOSA4LjIgMS41IDEyLjMgMS41IDkgMi44IDE4LjEgNS4xIDI3IDEuMSA0LjggMi40IDkuNiA0IDE0LjMgMi41IDcuOSA1LjcgMTUuNyAxMC4zIDIyLjYgMS43IDIuNiAzLjkgNSA2LjEgNy4yIC4zIC4yIC42IC41IC45IC43IC42IC4zIDEuMy0uMSAxLjctLjYgLjctLjkgMS4yLTEuOSAxLjctMi45IDQuMS03LjggOC4yLTE1LjYgMTIuMy0yMy4zIC43LTEuMyAxLjQtMi42IDIuNi0zLjYgMS44LTEuNiAzLjgtMi43IDYtMy42IDIuOS0xLjIgNS45LTIuMiA5LTIuNCA2LjYtLjYgMTMuMSAuNyAxOS42IDEuOCAzLjcgLjYgNy40IDEuMiAxMS4xIDEuNCAzLjcgLjEgNy41IC4xIDExLjItLjMgOC42LS45IDE3LTMgMjQuOS02LjIgNS4zLTIuMiAxMC41LTQuOCAxNS4zLTcuOSAxMS41LTcuMiAyMS41LTE2LjYgMzAtMjcgMS4yLTEuNCAyLjItMi45IDMuNS00LjMtMS4yIDMuMi0yLjcgNi40LTQuMiA5LjUtMS4zIDIuOS0yLjggNS42LTQuMyA4LjQtNS4yIDkuNi0xMSAxOC45LTE3LjggMjcuNS00IDUuMi04LjUgMTAuMS0xMy4zIDE0LjYtNi42IDYuMS0xNC4xIDExLjQtMjIuNCAxNC44LTguMiAzLjQtMTcuMyA0LjYtMjYuMSAzLjMtMy42LS42LTctMS43LTEwLjQtMi45LTIuOC0xLTUuNC0yLjQtOC0zLjctMy40LTEuNy02LjYtMy44LTkuNy02LjEgMi43IDMuMSA1LjcgNS45IDguNyA4LjYgNC4zIDMuOCA4LjcgNy4zIDEzLjYgMTAuMiA0IDIuNSA4LjMgNC40IDEyLjggNS41IDEuNSAuNCAzIC41IDQuNSAuNi0xLjMgMS4xLTIuNiAyLTQgMy05LjYgNi41LTIwIDExLjktMzAuNyAxNi40LTIwLjkgOC43LTQzLjIgMTQtNjUuNyAxNS4zLTQuNyAuMi05LjMgLjQtMTQgLjQtNS0uMS0xMC0uMS0xNC45LS43LTExLjItLjgtMjIuMy0yLjctMzMuMi01LjQtMTAuNC0yLjctMjAuNi02LjEtMzAuMy0xMC42LTguNy0zLjktMTcuMS04LjQtMjUtMTMuOC0xLjgtMS4zLTMuNy0yLjUtNS40LTQuMSA2LjYtMS4yIDEzLTMuNCAxOS02LjUgNS43LTIuOSAxMS02LjcgMTUuNi0xMS4xIDIuMi0yLjIgNC4zLTQuNiA2LjItNy4xLTMuNCAyLjEtNi45IDQuMi0xMC42IDUuOC00LjQgMi4yLTkuMSAzLjgtMTMuOCA1LTUuNyAxLjUtMTEuNyAxLjctMTcuNiAxLjEtOC4xLTEtMTUuOS00LjMtMjIuNS05LTQuMy0yLjktOC4yLTYuNC0xMi0xMC4xLTkuOS0xMC4yLTE4LjItMjEuOC0yNS43LTMzLjktMy45LTYuMy03LjUtMTIuNy0xMS4xLTE5LjItMS0yLTIuMS00LjEtMy4yLTYuMSAyLjggMi45IDUuNiA2IDguNCA4LjkgMTkuMiAxOS4yIDM3LjYgMzIuMyA1My43IDM1LjUgMy4xIC43IDYuMyAuNSA5LjUgLjggMi44IC4zIDUuNiAuMiA4LjMgLjMgNSAuMSAxMC4xIDAgMTUuMi0uMiAzLjYtLjIgNy4zLS43IDEwLjktMS4xIDIuMS0uMiA0LjEtLjcgNi4xLTEuMiAzLjktMSA4LjEtMSAxMS44IC42IDQuOCAxLjggOC40IDUuNiAxMS40IDkuNyAyLjIgMyA0LjEgNi4yIDUuNyA5LjYgMS4yIDIuNCAyLjUgNC44IDMuNiA3LjMgMSAyLjIgMi4yIDQuNCAzLjQgNi41IC43IDEgMS40IDIuMiAyLjYgMi42IDEuMS0uOCAxLjctMS45IDIuMy0zIDIuMS00LjIgMy40LTguNiA0LjktMTMgMi02LjYgMy44LTEzLjMgNS4yLTIwIDIuMi05LjMgMy4yLTE4LjcgNC41LTI4LjEgLjYtNCAuOC04IDEuMy0xMiAuOS0xMC42IDEuOS0yMS4zIDIuMi0zMS45IC4xLTEuOSAuMi0zLjcgLjMtNS42IDAtNC4zIC4yLTguNyAuMi0xMyAwLTIuNCAwLTQuOCAwLTcuMSAwLTUuMS0uMi0xMC4xLS4yLTE1LjItLjItNi42LS43LTEzLjItMS4zLTE5LjgtLjctNS45LTEuNS0xMS44LTMuMS0xNy41LTItNy43LTUuNi0xNS05LjgtMjEuOC0zLjItNS4xLTYuOC05LjktMTEuMS0xNC0zLjktMy45LTguNi03LjEtMTMuOS04LjQtMS41LS40LTMuMS0uNC00LjYtLjYgLjEtMyAuNy01LjkgMS4zLTguOCAxLjYtNy43IDMuOC0xNS4zIDYuOC0yMi42IDEuNS00IDMuNC03LjkgNS40LTExLjcgMy40LTYuNiA3LjYtMTIuOCAxMi41LTE4LjV6bTMxLjMgMS43Yy40LS4xIC43LS4xIDEuMS0uMiAuMiAxLjggLjEgMy42IC4xIDUuNGwwIDM4LjFjMCAxLjcgLjEgMy41LS4yIDUuMi0uNCAwLS43IDAtMS4xIDAtLjktMy44LTEuNy03LjYtMi42LTExLjMtLjQtMS41LS42LTMuMS0xLjEtNC42LTEuNy0uMi0zLjQtLjItNS4yLS4yLTUuMSAwLTEwLjEgMC0xNS4yIDAtMS43IDAtMy4zIC4xLTUgMCAwLS40LS4zLS45IC4yLTEuMiAxLjMtLjcgMi43LS45IDQuMS0xLjQgMy40LTEuMSA2LjktMi4yIDEwLjMtMy4zIDEuNC0uNSAyLjktLjcgNC4yLTEuNSAwLS42IDAtMS4xIDAtMS43LTEuMi0uNi0yLjUtLjktMy44LTEuMy0zLjEtMS02LjMtMi05LjQtMy0xLjgtLjYtMy43LTEtNS40LTEuOCAwLS40LS4xLS43LS4xLTEuMSA1LjEtLjIgMTAuMiAuMSAxNS4zLS4xIDMuNC0uMSA2LjcgLjEgMTAuMS0uMSAuMS0uNCAuMy0uOCAuNC0xLjIgMS4xLTQuOSAyLjMtOS44IDMuNC0xNC43em02LS4yYy40IDAgLjcgLjEgMS4xIC4yIDEgMy44IDEuNyA3LjggMi43IDExLjYgLjQgMS40IC42IDIuOSAxIDQuMyAyLjUgLjIgNS4xIDAgNy42IDAgNS4yIC4xIDEwLjMgLjEgMTUuNSAuMSAuOCAwIDEuNSAwIDIuMyAuMSAwIC40LS4xIC43LS4xIDEuMS0xLjggLjgtMy44IDEuMi01LjcgMS45LTMuNyAxLjItNy41IDIuNC0xMS4yIDMuNi0uNiAuMi0xLjEgLjQtMS43IC42LS4yIC42LS4yIDEuMS0uMSAxLjcgLjkgLjUgMS44IC44IDIuOCAxLjEgNC45IDEuNSA5LjcgMy4xIDE0LjYgNC42IC40IC4xIC44IC4zIDEuMSAuNSAuNCAuMyAuMiAuOCAuMiAxLjItMS43IC4xLTMuMyAwLTUgMC01LjIgMC0xMC4zIDAtMTUuNSAwLTEuNiAwLTMuMiAwLTQuOCAuMi0uNSAxLjctLjcgMy40LTEuMiA1LjEtLjkgMy42LTEuNSA3LjItMi41IDEwLjgtLjQgMC0uNyAwLTEuMSAuMS0uMy0xLjctLjItMy41LS4yLTUuMmwwLTM4LjFjMC0xLjgtLjEtMy42IC4xLTUuNHptLTE4NiA0NWMxLjEtMi4yIDIuMS00LjQgMy40LTYuNS0xLjggNy42LTIuOSAxNS4zLTMuNiAyMy0uOCA3LjctLjggMTUuNS0uNSAyMy4yIDEuMSAxOS45IDUuNSAzOS44IDE0LjIgNTcuOSAzIDYgNi40IDExLjggMTAuNSAxNy4xIDYuMSA3LjUgMTIuNSAxNC44IDE5LjggMjEuMSA0LjggNC4xIDEwIDcuOCAxNS41IDEwLjggMy4zIDEuNyA2LjUgMy40IDkuOSA0LjcgNSAyIDEwLjIgMy42IDE1LjQgNC45IDMuOCAxIDcuOCAxLjQgMTEuNSAyLjcgNSAxLjYgOS41IDQuNiAxMyA4LjQgNC45IDUuMiA4LjEgMTEuOSAxMC4yIDE4LjcgMSAyLjkgMS42IDUuOSAyLjIgOC45IC4yIC44IC4yIDEuNSAuMiAyLjMtNi41IDIuOC0xMy4zIDUuMS0yMC4zIDYuMi00LjEgLjgtOC4zIDEtMTIuNSAxLjEtMTAuMiAuMi0yMC41LTEuOC0zMC4xLTUuMS0zLjctMS40LTcuNS0yLjktMTEtNC43LTguMS0zLjgtMTUuNi04LjctMjIuNS0xNC41LTIuOS0yLjYtNS44LTUuMS04LjQtOC05LjItOS44LTE2LjMtMjEuNC0yMS44LTMzLjctMi40LTUuNS00LjYtMTEuMi02LjQtMTctMS4yLTMuOS0yLjQtNy45LTMuMy0xMS45LS43LTIuOS0xLjItNS45LTEuOS04LjktLjUtMi4xLS43LTQuMy0xLTYuNS0uOC01LjQtMS4zLTEwLjktMS4zLTE2LjQgLjEtNi4yIC4yLTEyLjQgMS4xLTE4LjUgLjQtMi45IC43LTUuNyAxLjItOC42IDEtNS43IDIuMS0xMS40IDMuNy0xNi45IDMuMS0xMS42IDcuNS0yMyAxMi43LTMzLjh6bTM2My43LTYuNGMxLjEgMS43IDEuOSAzLjUgMi44IDUuMyAyLjEgNC41IDQuMiA4LjkgNiAxMy41IDcuNiAxOC44IDEyLjMgMzguOCAxMyA1OSAwIDEuOCAuMSAzLjUgLjEgNS4zIC4xIDkuNi0xLjMgMTkuMS0zLjIgMjguNS0uNyAzLjYtMS41IDcuMi0yLjYgMTAuNy00IDE0LjctMTAgMjktMTguNCA0MS44LTguMiAxMi42LTE5IDIzLjUtMzEuOCAzMS40LTUuNyAzLjYtMTEuOCA2LjYtMTggOS4yLTUuOCAyLjItMTEuNyA0LTE3LjggNS4xLTYuNCAxLTEyLjkgMS41LTE5LjQgMS4yLTcuOS0uNS0xNS44LTIuMS0yMy4yLTQuOC0xLjktLjgtMy45LTEuNS01LjgtMi4zLS4yLTEuNSAuMi0zIC41LTQuNSAxLjItNS43IDMtMTEuNCA1LjctMTYuNiAyLjQtNC41IDUuNS04LjcgOS41LTExLjkgMi40LTIuMSA1LjItMy42IDguMi00LjggMy42LTEuNSA3LjUtMiAxMS4yLTIuOCA3LjItMS43IDE0LjQtMy45IDIxLjItNyAxMC4zLTQuNyAxOS43LTExLjQgMjcuNi0xOS41IDEuNi0xLjYgMy4yLTMuMiA0LjctNC45IDMuNC0zLjggNi43LTcuNiA5LjgtMTEuNSA3LjUtMTAuMSAxMi44LTIxLjYgMTYuNy0zMy41IDEuNi01LjMgMy4yLTEwLjYgNC4yLTE2LjEgLjYtMi45IDEtNS44IDEuNS04LjcgLjktNi4xIDEuNi0xMi4yIDEuNy0xOC40IC4xLTYuNiAuMS0xMy4zLS41LTE5LjktLjctOC0xLjktMTYtMy43LTIzLjh6Il19LCQzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXNlIixpY29uOls2NDAsNTEyLFtdLCJmN2Q2IiwiTTYwNC41IDIxMGExMC40IDEwLjQgMCAxIDEgLTExLjQtMTcuNCAxMC40IDEwLjQgMCAxIDEgMTEuNCAxNy40ek02MjEgMTg3LjJhMzguNSAzOC41IDAgMSAxIC03NSAxNy42IDM4LjUgMzguNSAwIDEgMSA3NS0xNy42ek00MzMuNyAzMzYuN2MzLjIgNC42IDUuOCA5IDcuMyAxMy40IDEgMy4xIDIuNCA3LjMgNS41IDguOSAuMiAuMSAuMyAuMiAuNSAuMiA1LjcgMi4xIDIwLjMgMS43IDIwLjMgMS43bDI2LjggMGMyLjMgMCAyMi40IDAgMjEuOS0yLjMtMi40LTEwLjgtMTQuOS0xMi43LTI0LjQtMTguMy04LjctNS4yLTE3LTExLjEtMjAuOC0yMS4zLTItNS4yLS44LTE3LjQgMi42LTIxLjggMi41LTMuMiA2LjEtNS4zIDEwLTYuMiA0LjMtLjkgOC44LS4xIDEzLjEgLjMgNS4zIC41IDEwLjYgMS41IDE1LjkgMi4yIDEwLjMgMS4zIDIwLjYgMS45IDMxIDEuNiAxNy4xLS41IDM0LjItMy4yIDUwLjQtOC43IDExLjMtMy44IDIyLjQtOC45IDMyLTE2LjEgMTAuOS04LjEgOC4xLTcuNC0zLTYuMi0xMy4zIDEuNC0yNi42IDEuNi0zOS45IC44LTEyLjQtLjctMjQuNy0yLjItMzUuOS03LjktOC44LTQuNi0xNi40LTkuMS0yMy40LTE2LjItMS0xLjEtMS43LTQuMiAuMi02LjIgMS45LTEuOSA1LjgtLjggNyAuMiAxMi4yIDEwLjIgMzAuNSAxOC42IDQ5LjMgMTkuNSAxMC4yIC41IDIwLjEgLjcgMzAuNCAuMyA1LjEtLjIgMTIuOC0uMiAxNy45LS4zIDIuNiAwIDkuOCAuNyAxMS4yLTIuMSAuNC0uOCAuNC0xLjggLjMtMi43LTEuNS00MC45LTQuNS04Ni45LTQ3LjMtMTA2LjUtMzEuOS0xNC42LTc5LjctMzcuMi05OS45LTQ2LjYtNC43LTIuMi0xMC4yIDEuMy0xMC4yIDYuNSAwIDEzLjYgLjcgMzMuMyAuNyA1MS4xLTkuNy05LjktMjYtMTYuMS0zOC40LTIxLjgtMTQuMS02LjUtMjguNy0xMi00My41LTE2LjYtMjkuOC05LjItNjAuNy0xNC45LTkxLjctMTgtMzUuMi0zLjUtNzEtMS44LTEwNS43IDUuMy01Ni45IDEyLjItMTEzLjEgMzkuNy0xNTUuNyA3OS44LTI2LjEgMjQuNi00Ni42IDU5LjctNDggOTUuMi0yIDUwLjMgMTIuMSA3Ny4zIDM4IDEwNS4yIDQxLjMgNDQuNCAxMzAuMiA1MC42IDE2Ni4yLTIgMTYuMi0yMy43IDE5LjctNTUuOCA4LTgyLTExLjgtMjYuMi0zOC44LTQ1LjEtNjcuNC00Ni0yMi4yLS43LTQ1LjkgMTAuNi01NC41IDMxLjEtNi41IDE1LjctMi44IDM1LjEgOSA0Ny4zIDQuNiA0LjggMTAuOSA4LjcgMTcuNyA3LjEgNC0uOSA3LjQtMy45IDgtOCAuOS02LTQuNC05LjktNy42LTE0LjUtNS44LTguMy00LjctMjAuOSAyLjctMjcuOSA2LjItNiAxNS4zLTcuOCAyMy45LTcuNyA4IDAgMTYuMiAxLjQgMjMuMSA1LjUgOS43IDUuNyAxNi4yIDE2LjIgMTguNCAyNy4yIDYuNyAzMy0yMC4yIDU5LjktNTYuNiA2Mi0xOC42IDEuMS0zNy42LTMuOC01Mi4xLTE1LjUtMzYuOS0yOS44LTQ1LjktOTAuMy0zLjgtMTIyLjcgNDAtMzAuNyA5MC40LTIyLjggMTIwLjItNi44IDIzLjggMTIuOCA0MS41IDMzLjYgNTUgNTYuNyA2LjcgMTEuNiAxMi41IDIzLjcgMTcuOCAzNi4xIDUuMSAxMS44IDkuOSAyMy44IDIwLjIgMzIuNSA2LjggNS44IDE1LjIgNS42IDI0LjEgNS42bDUwLjggMGM2LjkgMCA1LjItNC42IDIuMi03LjctNi43LTYuOS0xNi40LTguNC0yNS40LTEwLjktMjAuNS01LjYtMTguNC0zMi44LTEyLjctMzIuOCAxOC4zIDAgMTguOSAuNiAzNC45IC4zIDIzLjItLjMgMzAuMi0xLjcgNDguMyA1IDkuNyAzLjYgMTkgMTMuMSAyNS4xIDIxLjd6Il19LEEzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHAtc3RvcmUtaW9zIixpY29uOls0NDgsNTEyLFtdLCJmMzcwIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjcgMzg0LjVjLTUuNSA5LjYtMTcuOCAxMi44LTI3LjMgNy4zLTkuNi01LjUtMTIuOC0xNy44LTcuMy0yNy4zbDE0LjMtMjQuN2MxNi4xLTQuOSAyOS4zLTEuMSAzOS42IDExLjRMMTI3IDM4NC41em0xMzguOS01My45TDg0IDMzMC42Yy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1MSAwIDY1LjQtMTEzLjItMjAuNS0zNS40Yy01LjUtOS42LTIuMi0yMS44IDcuMy0yNy4zIDkuNi01LjUgMjEuOC0yLjIgMjcuMyA3LjNsOC45IDE1LjQgOC45LTE1LjRjNS41LTkuNiAxNy44LTEyLjggMjcuMy03LjMgOS42IDUuNSAxMi44IDE3LjggNy4zIDI3LjNsLTg1LjggMTQ4LjYgNjIuMSAwYzIwLjIgMCAzMS41IDIzLjcgMjIuNyA0MHptOTguMSAwbC0yOSAwIDE5LjYgMzMuOWM1LjUgOS42IDIuMiAyMS44LTcuMyAyNy4zLTkuNiA1LjUtMjEuOCAyLjItMjcuMy03LjMtMzIuOS01Ni45LTU3LjUtOTkuNy03NC0xMjguMS0xNi43LTI5LTQuOC01OCA3LjEtNjcuOCAxMy4xIDIyLjcgMzIuNyA1Ni43IDU4LjkgMTAybDUyIDBjMTEgMCAyMCA5IDIwIDIwIDAgMTEuMS05IDIwLTIwIDIweiJdfSxFM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWx0cmFseXRpY3MteW9sbyIsaWNvbjpbNTEyLDUxMixbXSwiZTg2ZiIsIk0zODMuNSAxMC44YzYxLjgtLjIgMTEyLjMgNTAuNiAxMTIuMyAxMTIuOS0uMiAyLjcgMCAwLS4xIDMuM2wuMyAuM2MtMS41IDg5LjktNTMgMTY4LjQtMTI3LjQgMjA4LjVsMCA1Mi44YzAgNjIuNi01MS4xIDExMy41LTExMy43IDExMi45LTYyLS42LTExMS40LTUyLjItMTExLjQtMTE0LjNsMC01MS4yYy00MC43LTIxLjktNzQuNS01NS4yLTk3LTk1LjYgMjMuMiAxNi41IDUxLjcgMjYgODIgMjUuOSA3OC42LS4yIDE0Mi4yLTY0IDE0Mi4zLTE0Mi41IC4xLTYyLjMgNTAuNS0xMTIuNyAxMTIuOS0xMTIuOXptLTI1NSAyMjUuOGExMTIuOSAxMTIuOSAwIDEgMSAwLTIyNS44IDExMi45IDExMi45IDAgMSAxIDAgMjI1Ljh6Il19LFZFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZHJpYmJibGUiLGljb246WzQ0OCw1MTIsWyJkcmliYmJsZS1zcXVhcmUiXSwiZjM5NyIsIk0xNjUuOSAxMzIuNWMtMzguMyAxOC02Ni44IDUzLjMtNzUuNyA5NS43IDYuMSAuMSA2Mi40IC4zIDEyNi40LTE2LjctMjIuNy00MC4yLTQ3LjEtNzQuMS01MC43LTc5em0yNi4xLTkuMWMzLjggNS4xIDI4LjYgMzguOSA1MSA4MCA0OC42LTE4LjMgNjkuMS00NS45IDcxLjYtNDkuNC0zMy42LTI5LjgtNzkuMy00MS4xLTEyMi42LTMwLjZ6TTI3Ny40IDM4MmMtMi0xMi0xMC01My44LTI5LjItMTAzLjYtNTUuMSAxOC44LTkzLjggNTYuNC0xMDguMSA4NS42IDQwLjUgMzEuNiA5My4zIDM2LjcgMTM3LjMgMTh6TTIyNy44IDIzMi42QzE1OS42IDI1MyA5My40IDI1Mi4yIDg3LjQgMjUybDAgNC4yYzAgMzUuMSAxMy4zIDY3LjEgMzUuMSA5MS40IDIyLjItMzcuOSA2Ny4xLTc3LjkgMTE2LjUtOTEuOC0zLjQtNy44LTcuMi0xNS41LTExLjEtMjMuMmwtLjEgMHptNzIuNSAxMzYuOWMzMC43LTIwLjcgNTIuNS01My42IDU4LjYtOTEuNi00LjYtMS41LTQyLjMtMTIuNy04NS4xLTUuOCAxNy45IDQ5LjEgMjUuMSA4OS4xIDI2LjUgOTcuNHptLTM0LjgtMTE5YzQ1LjUtNS43IDkwLjcgMy40IDk1LjIgNC40LS4zLTMyLjMtMTEuOC02MS45LTMwLjktODUuMS0yLjkgMy45LTI1LjggMzMuMi03Ni4zIDUzLjkgNC44IDkuOCA4LjMgMTcuOCAxMiAyNi44ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDk2YTE2MCAxNjAgMCAxIDEgMCAzMjAgMTYwIDE2MCAwIDEgMSAwLTMyMHoiXX0sSTNyPVZFZSxQM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWlraXQiLGljb246WzQ0OCw1MTIsW10sImY0MDMiLCJNNDQzLjkgMTI4bDAgMjU2LTIyNS45IDEyOC0yMTgtMTI4IDAtMjE0LjMgODcuNiA0NS4xIDAgMTE3IDEzMy41IDc1LjUgMTM1LjgtNzUuNSAwLTE1MS0xMDEuMS01Ny42IDg3LjYtNTMuMSAxMDAuNSA1Ny45ek0zMDguNiA0OS4xbC04NC44LTQ5LjEtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3oiXX0sTjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cGVycG93ZXJzIixpY29uOls0NDgsNTEyLFtdLCJmMmRkIiwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyek0zNjguMyAyNjQuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXoiXX0sTzNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlvdXR1YmUiLGljb246WzU3Niw1MTIsWzYxODAyXSwiZjE2NyIsIk01NDkuNyAxMjQuMUM1NDMuNSAxMDAuNCA1MjQuOSA4MS44IDUwMS40IDc1LjUgNDU4LjkgNjQgMjg4LjEgNjQgMjg4LjEgNjRTMTE3LjMgNjQgNzQuNyA3NS41QzUxLjIgODEuOCAzMi43IDEwMC40IDI2LjQgMTI0LjEgMTUgMTY3IDE1IDI1Ni40IDE1IDI1Ni40czAgODkuNCAxMS40IDEzMi4zYzYuMyAyMy42IDI0LjggNDEuNSA0OC4zIDQ3LjggNDIuNiAxMS41IDIxMy40IDExLjUgMjEzLjQgMTEuNXMxNzAuOCAwIDIxMy40LTExLjVjMjMuNS02LjMgNDItMjQuMiA0OC4zLTQ3LjggMTEuNC00Mi45IDExLjQtMTMyLjMgMTEuNC0xMzIuM3MwLTg5LjQtMTEuNC0xMzIuM3pNMjMyLjIgMzM3LjZsMC0xNjIuNCAxNDIuNyA4MS4yLTE0Mi43IDgxLjJ6Il19LFIzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbWJlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMyIsIk02MzkuOSAyNTQuNmMtMS4xLTEwLjctMTAuNy02LjgtMTAuNy02LjhzLTE1LjYgMTIuMS0yOS4zIDEwLjdjLTEzLjctMS4zLTkuNC0zMi05LjQtMzJzMy0yOC4xLTUuMS0zMC40Yy04LjEtMi40LTE4IDcuMy0xOCA3LjNzLTEyLjQgMTMuNy0xOC4zIDMxLjJsLTEuNiAuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNyAuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNSAuMy0xNi43LTExLjgtMTYuNy0xMS44czY4LTIzLjMgNDkuNC02OS4yYy04LjMtMTEuOC0xOC0xNS41LTMxLjctMTUuMy0xMy43IC4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWwxLjYgMHMtNS42IDQ4LjEgMyA2My43IDMwLjkgNS4zIDMwLjkgNS4zIDE1LjYtNy44IDE4LTEwLjJjMCAwIDE4LjUgMTUuOCA0NC42IDEyLjkgNTguMy0xMS41IDc5LjEtMjUuOSA3OS4xLTI1LjlzMTAgMjQuNCA0MS4xIDI2LjdjMzUuNSAyLjcgNTQuOC0xOC42IDU0LjgtMTguNnMtLjMgMTMuNSAxMi4xIDE4LjYgMjAuNy0yMi44IDIwLjctMjIuOGwyMC43LTU3LjIgMS45IDBzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42ek0zMzQuNyAxMzYuMXMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnoiXX0sRjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvb3RzdHJhcCIsaWNvbjpbNTc2LDUxMixbXSwiZjgzNiIsIk0zMzMuNSAyMDEuNGMwLTIyLjEtMTUuNi0zNC4zLTQzLTM0LjNsLTUwLjQgMCAwIDcxLjIgNDIuNSAwYzMyLjgtLjEgNTAuOS0xMy4zIDUwLjktMzYuOXpNNTE3IDE4OC42Yy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjEgMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUwxMjMuNyAzMmMtMzIuMSAwLTU1LjggMjguMS01NC43IDU4LjUgMSAyOS4zLS4zIDY3LjItOS44IDk4LjEtOS42IDMxLTI1LjcgNTAuNi01Mi4yIDUzLjFsMCAyOC41YzI2LjQgMi41IDQyLjYgMjIuMSA1Mi4yIDUzLjEgOS41IDMwLjkgMTAuOSA2OC44IDkuOCA5OC4xLTEuMSAzMC41IDIyLjcgNTguNSA1NC43IDU4LjVsMzI4LjcgMGMzMi4xIDAgNTUuOC0yOC4xIDU0LjctNTguNS0xLTI5LjMgLjMtNjcuMiA5LjgtOTguMSA5LjYtMzEgMjUuNy01MC42IDUyLjEtNTMuMWwwLTI4LjVjLTI2LjMtMi41LTQyLjUtMjIuMS01Mi01My4xek0zMDAuMiAzNzUuMWwtOTcuOSAwIDAtMjM4LjMgOTcuNCAwYzQzLjMgMCA3MS43IDIzLjQgNzEuNyA1OS40IDAgMjUuMy0xOS4xIDQ3LjktNDMuNSA1MS44bDAgMS4zYzMzLjIgMy42IDU1LjUgMjYuNiA1NS41IDU4LjMgMCA0Mi4xLTMxLjMgNjcuNS04My4yIDY3LjV6bS0xMC0xMDguN2wtNTAuMSAwIDAgNzguNCA1Mi4zIDBjMzQuMiAwIDUyLjMtMTMuNyA1Mi4zLTM5LjUgMC0yNS43LTE4LjYtMzguOS01NC41LTM4Ljl6Il19LEIzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMiLGljb246WzQ0OCw1MTIsW10sImYzYjQiLCJNMjIzLjYgODAuM2ExNzEuMyAxNzEuMyAwIDEgMCAuMiAzNDIuNSAxNzEuMyAxNzEuMyAwIDEgMCAtLjItMzQyLjV6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEgLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcgLjktMTI3IDIuNi0xMzMuNyAuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNiAuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkwxMDIuOCAzMkM0NS45IDMyIDAgNzcuOSAwIDEzNC44TDAgMzc3LjJDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBsMjQyLjQgMGM1NyAwIDEwMi44LTQ1LjkgMTAyLjgtMTAyLjhsMC0yNDIuNEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNTlhMTkyLjUgMTkyLjUgMCAxIDEgMCAzODUgMTkyLjUgMTkyLjUgMCAxIDEgMC0zODV6Il19LGpFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteGluZyIsaWNvbjpbNDQ4LDUxMixbInhpbmctc3F1YXJlIl0sImYxNjkiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTkzLjggMzIwLjJjLTUuNSAwLTguNy01LjMtNi0xMC4zbDQ5LjMtODYuN2MuMSAwIC4xLS4xIDAtLjJsLTMxLjQtNTRjLTMtNS42IC4yLTEwLjEgNi0xMC4xbDQ2LjYgMGM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMi0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjFsLTQ2LjYgMHptMTYzLjUtMzMuNGwwIC4yIDY1LjUgMTE5YzIuOCA1LjEgLjEgMTAuMS02IDEwLjFsLTQ2LjYgMGMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMS44LTMuMiAyMi45LTQwLjQgNjMuMy0xMTEuNiAxMS43LTIwLjcgMjUuMS00NC4zIDQwLjEtNzAuOCAzLjMtNS44IDcuNC04LjcgMTIuNS04LjdsNDYuOSAwYzUuNy0uMSA4LjggNC43IDYgMTBMMjU3LjMgMjg2Ljh6Il19LEgzcj1qRWUscTNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMtYWx0IixpY29uOlszODQsNTEyLFtdLCJmMzhiIiwiTTAgMzJMMzQuOSA0MjcuOCAxOTIgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyem0zMTMuMSA4MGwtNC44IDQ3LjMtMTE1LjMgNDkuMy0uMyAuMSAxMTEuNSAwLTEyLjggMTQ2LjYtOTguMiAyOC43LTk4LjgtMjkuMi02LjQtNzMuOSA0OC45IDAgMy4yIDM4LjMgNTIuNiAxMy4zIDU0LjctMTUuNCAzLjctNjEuNi0xNjYuMy0uNSAwLS4xLS4yIC4xLTMuNi00Ni4zIDExMi4xLTQ2LjcgNi41LTIuNy0xMjIuOSAwLTUuOC00Ny4zIDI0Mi4yIDB6Il19LFYzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmVzcGFjZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViZSIsIk0xODYuMSAzNDMuM2MtOS43IDkuNy05LjcgMjUuMyAwIDM0LjlzMjUuMyA5LjYgMzQuOSAwTDM3OC4zIDIyMS4xYzE5LjMtMTkuMyA1MC42LTE5LjMgNjkuOSAwczE5LjMgNTAuNiAwIDY5LjlMMjk0IDQ0NS4xYzE5LjMgMTkuMyA1MC41IDE5LjMgNjkuOCAwbDAgMCAxMTkuMy0xMTkuMmMzOC42LTM4LjYgMzguNi0xMDEuMSAwLTEzOS43LTM4LjYtMzguNi0xMDEuMi0zOC42LTEzOS43IDBMMTg2LjEgMzQzLjN6TTQzMC43IDIzOC41Yy05LjctOS43LTI1LjMtOS43LTM0LjkgMEwyMzguNSAzOTUuN2MtMTkuMyAxOS4zLTUwLjUgMTkuMy02OS44IDBsMCAwYy05LjYtOS42LTI1LjMtOS43LTM0LjkgMGwwIDBjLTkuNyA5LjYtOS43IDI1LjMgMCAzNC45bDAgMGMzOC42IDM4LjYgMTAxLjEgMzguNiAxMzkuNyAwTDQzMC43IDI3My41YzkuNi05LjcgOS42LTI1LjMgMC0zNC45em0tMjYyIDg3LjNMMzI1LjkgMTY4LjdjOS42LTkuNiA5LjYtMjUuMyAwLTM0LjktOS42LTkuNi0yNS4zLTkuNi0zNC45IDBMMTMzLjcgMjkwLjljLTE5LjMgMTkuMy01MC42IDE5LjMtNjkuOSAwbDAgMGMtMTkuMy0xOS4zLTE5LjMtNTAuNSAwLTY5LjhsMCAwIDE1NC4yLTE1NC4yYy0xOS4zLTE5LjMtNTAuNS0xOS4zLTY5LjggMGwwIDAtMTE5LjIgMTE5LjNjLTM4LjYgMzguNi0zOC42IDEwMS4xIDAgMTM5LjcgMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMHpNODEuMyAyNzMuNWM5LjYgOS42IDI1LjMgOS42IDM0LjkgMEwyNzMuNSAxMTYuM2MxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjggMGwwIDBjOS43IDkuNiAyNS4zIDkuNiAzNC45IDBzOS42LTI1LjMgMC0zNC45Yy0zOC42LTM4LjYtMTAxLjEtMzguNi0xMzkuNyAwTDgxLjMgMjM4LjVjLTkuNiA5LjYtOS42IDI1LjMgMCAzNC45bDAgMHoiXX0sajNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRyZWxsbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4MSIsIk0zOTIuMyAzMkw1Ni4xIDMyYy0zMSAwLTU2LjEgMjUuMS01Ni4xIDU2LS4xIDAgMC00IDAgMzM2IDAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNi4yIDBjMzAuOC0uMiA1NS43LTI1LjIgNTUuNy01NmwwLTMzNmMuMS0zMC44LTI0LjgtNTUuOC01NS42LTU2ek0xOTcgMzcxLjNjLS4yIDE0LjctMTIuMSAyNi42LTI2LjkgMjYuNmwtODIuNyAwYy0xNC44IC4xLTI2LjktMTEuOC0yNy0yNi42bDAtMjU0LjJjMC0xNC44IDEyLTI2LjkgMjYuOS0yNi45bDgyLjkgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAyNTQuMi0uMSAwem0xOTMuMS0xMTJjMCAxNC44LTEyIDI2LjktMjYuOSAyNi45bC04MSAwYy0xNC44IDAtMjYuOS0xMi0yNi45LTI2LjlsMC0xNDIuMWMwLTE0LjggMTItMjYuOSAyNi44LTI2LjlsODEuMSAwYzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOWwwIDE0Mi4xeiJdfSxVM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhZGVvIixpY29uOls0NDgsNTEyLFtdLCJmMmE5IiwiTTI3Ni40IDE1MC41bDAgLjdjLTE3LjktNTIuNi00Mi42LTEwMy40LTcwLjgtMTUxLjIgNDMuMyAyOS4yIDY3IDEwMCA3MC44IDE1MC41em0zMi43IDEyMS43YzcuNiAxOC4yIDExIDM3LjUgMTEgNTcgMCA3Ny43LTU3LjggMTQxLTEzNy44IDEzOS40bDMuOC0uM2M3NC4yLTQ2LjcgMTA5LjMtMTE4LjYgMTA5LjMtMjA1LjEgMC0zOC4xLTYuNS03NS45LTE4LjktMTEyIDEgMTEuNyAxIDIzLjcgMSAzNS40IDAgOTEuOC0xOC4xIDI0MS42LTExNi42IDI4MC02NS43LTExLjQtMTExLjMtNjguNi0xMTEuMy0xMzcuNCAwLTc1LjYgNTcuNC0xNDIuMyAxMzUuNC0xNDIuMyAxNi44IDAgMzMuNyAzLjEgNDkuMSA5LjYgMS43LTE1LjEgNi41LTI5LjkgMTMuNC00My4zLTE5LjktNy4yLTQxLjItMTAuNy02Mi41LTEwLjctMTYxLjUgMC0yMzguNyAxOTUuOS0xMjkuOSAzMTMuNyA2Ny45IDc0LjYgMTkyIDczLjkgMjU5LjggMCA1Ni42LTYxLjMgNjAuOS0xNDIuNCAzNi40LTIwMS0xMi43IDgtMjcuMSAxMy45LTQyLjIgMTd6TTQxOC4zIDExLjdjLTMxIDY2LjUtODEuMyA0Ny4yLTExNS44IDgwLjEtMTIuNCAxMi0yMC42IDM0LTIwLjYgNTAuNSAwIDE0LjEgNC41IDI3LjEgMTIgMzguOCA0Ny40LTExIDk4LjMtNDYgMTE4LjItOTAuNy0uNyA1LjUtNC44IDE0LjQtNy4yIDE5LjItMjAuMyAzNS43LTY0LjYgNjUuNi05OS43IDg0LjkgMTQuOCAxNC40IDMzLjcgMjUuOCA1NSAyNS44IDc5IDAgMTEwLjEtMTM0LjYgNTguMS0yMDguNnoiXX0sVzNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlYXJjaGVuZ2luIixpY29uOls0NDgsNTEyLFtdLCJmM2ViIiwiTTIxNC42IDEzMC4zbC02Ny4yIDI4LjIgMC0xMTUuMy01NC43IDE5MC4zIDU0LjctMjQuMiAwIDEzMC4zIDY3LjItMjA5LjN6TTEzMS40IDMzLjZsLTEuMyA0LjctMTUuMiA1Mi45Qzc0LjYgMTA2LjcgNDYgMTQ1LjggNDYgMTkxLjUgNDYgMjQzLjggODAuMyAyODcuNCAxMjkuNCAyOTdsMCA1My42QzUxLjUgMzQwLjEtNiAyNzIuNC02IDE5MS42LTYgMTExLjEgNTMuOCA0NC40IDEzMS40IDMzLjZ6TTQ0Mi44IDQ4MC44Yy0xMS4yIDExLjItMjMuMSAxMi4zLTI4LjYgMTAuNS01LjQtMS44LTI3LjEtMTkuOS02MC40LTQ0LjQtMzMuMy0yNC42LTMzLjYtMzUuNy00My01Ni43LTkuNC0yMC45LTMwLjQtNDIuNi01Ny41LTUyLjRsLTkuNy0xNC43Yy0yNC43IDE2LjktNTMgMjYuOS04MS4zIDI4LjdsMi4xLTYuNiAxNS45LTQ5LjVjNDYuNS0xMS45IDgwLjktNTQgODAuOS0xMDQuMiAwLTU0LjUtMzguNC0xMDIuMS05Ni0xMDcuMWwwLTUyLjFjODMuMiA1LjEgMTQ4LjggNzQuNSAxNDguOCAxNTkuMyAwIDMzLjYtMTEuMiA2NC43LTI5IDkwLjRsMTQuNiA5LjZjOS44IDI3LjEgMzEuNSA0OCA1Mi40IDU3LjRzMzIuMiA5LjcgNTYuOCA0M2MyNC42IDMzLjIgNDIuNyA1NC45IDQ0LjUgNjAuM3MuNyAxNy4zLTEwLjUgMjguNXptLTkuOS0xNy45YzAtNC40LTMuNi04LTgtOHMtOCAzLjYtOCA4IDMuNiA4IDggOCA4LTMuNiA4LTh6Il19LEczcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnJlYWwtZW5naW5lIixpY29uOls1MTIsNTEyLFtdLCJlODVjIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem02NS41LTExMy43bC0yNS4xLTI4LjMtNDIuNCA0Mi42Yy0yNC4xLS4zLTQ3LjktNi4yLTY5LjMtMTcuMnMtNDAuMS0yNi45LTU0LjUtNDYuM2M0LjUgMS40IDkuMiAyLjMgMTMuOSAyLjYgNi45IC4xIDE0LjUtMi40IDE0LjUtMTQuMWwwLTExNS4xYy4xLTMtLjUtNS45LTEuNy04LjZzLTMuMS01LTUuNC02LjktNS0zLjEtNy45LTMuNy01LjktLjUtOC44IC4yYy0xOS42IDQuNS0zNS4zIDUzLjUtMzUuMyA1My41LS4yLTIyLjYgNC41LTQ1IDEzLjgtNjUuNnMyMy0zOSA0MC4xLTUzLjhjMjIuNS0xOS41IDUwLjEtMzIuMiA3OS42LTM2LjctMjEuNCAxMi4yLTMzLjUgMzIuMS0zMy41IDQ4LjkgMCAyNi45IDE2LjIgMjMuNiAyMSAxOS43bDAgMTU1LjNjLjggMS45IDEuOSAzLjggMy4yIDUuNSAyLjEgMyA1IDUuNCA4LjIgN3M2LjkgMi41IDEwLjUgMi41YzE2LjIgMCAzNy4zLTE4LjUgMzcuMy0xOC41bDAtMTI1LjdjMC0xMi44LTkuNi0yOC4yLTE5LjMtMzMuNSAwIDAgMTcuOS0zLjIgMzEuNyA3LjQgMi42LTMuMiA1LjMtNi4yIDguMi05LjEgMzIuMi0zMS42IDYyLjUtNDAuNiA4Ny43LTQ1LjEgMCAwLTQ1LjkgMzYuMS00NS45IDg0LjUgMCAzNiAuOSAxMjMuOCAuOSAxMjMuOCAxNyAxNi40IDQyLjQtNy4zIDY1LjItMzAuOC00LjQgMjEuMy0yNCA3NS45LTg2LjYgMTA1LjR6Il19LFkzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYXlwYWwiLGljb246WzM4NCw1MTIsW10sImYxZWQiLCJNMTExLjkgMjk1LjljLTMuNSAxOS4yLTE3LjQgMTA4LjctMjEuNSAxMzQtLjMgMS44LTEgMi41LTMgMi41bC03NC42IDBjLTcuNiAwLTEzLjEtNi42LTEyLjEtMTMuOUw1OS4zIDQ2LjZjMS41LTkuNiAxMC4xLTE2LjkgMjAtMTYuOSAxNTIuMyAwIDE2NS4xLTMuNyAyMDQgMTEuNCA2MC4xIDIzLjMgNjUuNiA3OS41IDQ0IDE0MC4zLTIxLjUgNjIuNi03Mi41IDg5LjUtMTQwLjEgOTAuMy00My40IC43LTY5LjUtNy03NS4zIDI0LjJ6TTM1Ny42IDE1MmMtMS44LTEuMy0yLjUtMS44LTMgMS4zLTIgMTEuNC01LjEgMjIuNS04LjggMzMuNi0zOS45IDExMy44LTE1MC41IDEwMy45LTIwNC41IDEwMy45LTYuMSAwLTEwLjEgMy4zLTEwLjkgOS40LTIyLjYgMTQwLjQtMjcuMSAxNjkuNy0yNy4xIDE2OS43LTEgNy4xIDMuNSAxMi45IDEwLjYgMTIuOWw2My41IDBjOC42IDAgMTUuNy02LjMgMTcuNC0xNC45IC43LTUuNC0xLjEgNi4xIDE0LjQtOTEuMyA0LjYtMjIgMTQuMy0xOS43IDI5LjMtMTkuNyA3MSAwIDEyNi40LTI4LjggMTQyLjktMTEyLjMgNi41LTM0LjggNC42LTcxLjQtMjMuOC05Mi42eiJdfSxLM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWJsdWVza3kiLGljb246WzQ0OCw1MTIsW10sImU2YTMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDI0Ny40YzE0LjUtMzAgNTQtODUuOCA5MC43LTExMy4zIDI2LjUtMTkuOSA2OS4zLTM1LjIgNjkuMyAxMy43IDAgOS44LTUuNiA4Mi4xLTguOSA5My44LTExLjQgNDAuOC01MyA1MS4yLTkwIDQ0LjkgNjQuNyAxMSA4MS4yIDQ3LjUgNDUuNiA4NC02Ny41IDY5LjMtOTctMTcuNC0xMDQuNi0zOS42bC0uMy0uOWMtLjktMi42LTEuNC00LjEtMS44LTQuMXMtLjkgMS41LTEuOCA0LjFjLS4xIC4zLS4yIC42LS4zIC45LTcuNiAyMi4yLTM3LjEgMTA4LjgtMTA0LjYgMzkuNi0zNS41LTM2LjUtMTkuMS03MyA0NS42LTg0LTM3IDYuMy03OC42LTQuMS05MC00NC45LTMuMy0xMS43LTguOS04NC04LjktOTMuOCAwLTQ4LjkgNDIuOS0zMy41IDY5LjMtMTMuNyAzNi43IDI3LjUgNzYuMiA4My40IDkwLjcgMTEzLjN6Il19LFozcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkLWFuZC1kLWJleW9uZCIsaWNvbjpbNjQwLDUxMixbXSwiZjZjYSIsIk0zMTMuOCAyNDEuNWMxMy44IDAgMjEtMTAuMSAyNC44LTE3LjktMS0xLjEtNS00LjItNy40LTYuNi0yLjQgNC4zLTguMiAxMC43LTEzLjkgMTAuNy0xMC4yIDAtMTUuNC0xNC43LTMuMi0yNi42LS41LS4yLTQuMy0xLjgtOCAyLjQgMC0zIDEtNS4xIDIuMS02LjYtMy41IDEuMy05LjggNS42LTExLjQgNy45IC4yLTUuOCAxLjYtNy41IC42LTlsLS4yLS4ycy04LjUgNS42LTkuMyAxNC43YzAgMCAxLjEtMS42IDIuMS0xLjkgLjYtLjMgMS4zIDAgLjYgMS45LS4yIC42LTUuOCAxNS43IDUuMSAyNi0uNi0xLjYtMS45LTcuNiAyLjQtMS45LS4zIC4xIDUuOCA3LjEgMTUuNyA3LjF6bTUyLjQtMjEuMWMwLTQtNC45LTQuNC01LjYtNC41IDIgMy45IC45IDcuNSAuMiA5IDIuNS0uNCA1LjQtMS42IDUuNC00LjV6bTEwLjMgNS4yYzAtNi40LTYuMi0xMS40LTEzLjUtMTAuNyA4IDEuMyA1LjYgMTMuOC01IDExLjQgMy43LTIuNiAzLjItOS45LTEuMy0xMi41IDEuNCA0LjItMyA4LjItNy40IDQuNi0yLjQtMS45LTgtNi42LTEwLjYtOC42LTIuNC0yLjEtNS41LTEtNi42LTEuOC0xLjMtMS4xLS41LTMuOC0yLjItNS0xLjYtLjgtMy0uMy00LjgtMS0xLjYtLjYtMi43LTEuOS0yLjYtMy41LTIuNSA0LjQgMy40IDYuMyA0LjUgOC41IDEgMS45LS44IDQuOCA0IDguNSAxNC44IDExLjYgOS4xIDggMTAuNCAxOC4xIC42IDQuMyA0LjIgNi43IDYuNCA3LjQtMi4xLTEuOS0yLjktNi40IDAtOS4zIDAgMTMuOSAxOS4yIDEzLjMgMjMuMSA2LjQtMi40IDEuMS03LS4yLTktMS45IDcuNyAxIDE0LjItNC4xIDE0LjYtMTAuNnptLTM5LjQtMTguNGMyIC44IDEuNiAuNyA2LjQgNC41IDEwLjItMjQuNSAyMS43LTE1LjcgMjItMTUuNSAyLjItMS45IDkuOC0zLjggMTMuOC0yLjctMi40LTIuNy03LjUtNi4yLTEzLjMtNi4yLTQuNyAwLTcuNCAyLjItOCAxLjMtLjgtMS40IDMuMi0zLjQgMy4yLTMuNC01LjQgLjItOS42IDYuNy0xMS4yIDUuOS0xLjEtLjUgMS40LTMuNyAxLjQtMy43LTUuMSAyLjktOS4zIDkuMS0xMC4yIDEzIDQuNi01LjggMTMuOC05LjggMTkuNy05LTEwLjUgLjUtMTkuNSA5LjctMjMuOCAxNS44em0yNDIuNSA1MS45Yy0yMC43IDAtNDAgMS4zLTUwLjMgMi4xbDcuNCA4LjIgMCA3Ny4yLTcuNCA4LjJjMTAuNCAuOCAzMC45IDIuMSA1MS42IDIuMSA0Mi4xIDAgNTkuMS0yMC43IDU5LjEtNDguOSAwLTI5LjMtMjMuMi00OC45LTYwLjQtNDguOXptLTE1LjEgNzUuNmwwLTUzLjNjMzAuMS0zLjMgNDYuOCAzLjggNDYuOCAyNi4zIDAgMjUuNi0yMS40IDMwLjItNDYuOCAyN3pNMzAxLjYgMTgxYy0xLTMuNC0uMi02LjkgMS4xLTkuNCAxIDMgMi42IDYuNCA3LjUgOS0uNS0yLjQtLjItNS42IC41LTgtMS40LTUuNCAyLjEtOS45IDYuNC05LjkgNi45IDAgOC41IDguOCA0LjcgMTQuNCAyLjEgMy4yIDUuNSA1LjYgNy43IDcuOCAzLjItMy43IDUuNS05LjUgNS41LTEzLjggMC04LjItNS41LTE1LjktMTYuNy0xNi41LTIwLS45LTIwLjIgMTYuNi0yMCAxOC45IC41IDUuMiAzLjQgNy44IDMuMyA3LjV6bS0uNCA2Yy0uNSAxLjgtNyAzLjctMTAuMiA2LjkgNC44LTEgNy0uMiA3LjggMS44IC41IDEuNC0uMiAzLjQtLjUgNS42IDEuNi0xLjggNy01LjUgMTEtNi4yLTEtLjMtMy40LS44LTQuMy0uOCAyLjktMy40IDkuMy00LjUgMTIuOC0zLjctMi4yLS4yLTYuNyAxLjEtOC41IDIuNiAxLjYgLjMgMyAuNiA0LjMgMS4xLTIuMSAuOC00LjggMy40LTUuOCA2LjEgNy01IDEzLjEgNS4yIDcgOC4yIC44IC4yIDIuNyAwIDMuNS0uNS0uMyAxLjEtMS45IDMtMyAzLjQgMi45IDAgNy0xLjkgOC4yLTQuNiAwIDAtMS44IC42LTIuNi0uMnMuMy00LjMgLjMtNC4zYy0yLjMgMi45LTMuNC0xLjMtMS4zLTQuMi0xLS4zLTMuNS0uNi00LjYtLjUgMy4yLTEuMSAxMC40LTEuOCAxMS4yLS4zIC42IDEuMS0xIDMuNC0xIDMuNCA0LS41IDguMyAxLjEgNi43IDUuMSAyLjktMS40IDUuNS01LjkgNC44LTEwLjQtLjMgMS0xLjYgMi40LTIuOSAyLjcgLjItMS40LTEtMi4yLTEuOS0yLjYgMS43LTkuNi0xNC42LTE0LjItMTQuMS0yMy45LTEgMS4zLTEuOCA1LS44IDcuMSAyLjcgMy4yIDguNyA2LjcgMTAuMSAxMi4yLTIuNi02LjQtMTUuMS0xMS40LTE0LjYtMjAuMi0xLjYgMS42LTIuNiA3LjgtMS4zIDExIDIuNCAxLjQgNC41IDMuOCA0LjggNi4xLTIuMi01LjEtMTEuNC02LjEtMTMuOS0xMi4yLS42IDIuMi0uMyA1IDEgNi43IDAgMC0yLjItLjgtNy0uNiAxLjcgLjYgNS4xIDMuNSA0LjggNS4yem0yNS45IDcuNGMtMi43IDAtMy41LTIuMS00LjItNC4zIDMuMyAxLjMgNC4yIDQuMyA0LjIgNC4zem0zOC45IDMuN2wtMS0uNmMtMS4xLTEtMi45LTEuNC00LjctMS40LTIuOSAwLTUuOCAxLjMtNy41IDMuNC0uOCAuOC0xLjQgMS44LTIuMSAyLjZsMCAxNS43YzMuNSAyLjYgNy4xLTIuOSAzLTcuMiAxLjUgLjMgNC42IDIuNyA1LjEgMy4yIDAgMCAyLjYtLjUgNS0uNSAyLjEgMCAzLjkgLjMgNS42IDEuMWwwLTE4LjRjLTEuMSAuNS0yLjIgMS0yLjcgMS40bC0uNyAuN3pNNzkuOSAzMDUuOWMxNy4yLTQuNiAxNi4yLTE4IDE2LjItMTkuOSAwLTIwLjYtMjQuMS0yNS0zNy0yNWwtNTYuMSAwIDguMyA4LjYgMCAyOS41LTExLjMgMCAxMS40IDE0LjYgMCAzMi4zLTguNCA4LjZjNjEuNyAwIDczLjggMS41IDg2LjQtNS45IDYuNy00IDkuOS05LjggOS45LTE3LjYgMC01LjEgMi42LTE4LjgtMTkuNC0yNS4yek0zOC42IDI3OC40YzIwIDAgMjkuNi0uOCAyOS42IDkuMWwwIDNjMCAxMi4xLTE5IDguOC0yOS42IDguOGwwLTIwLjl6bTAgNTkuMmwwLTIyLjZjMTIuMiAwIDMyLjctMi4zIDMyLjcgOC44bDAgNC41IC4yIDBjMCAxMS4yLTEyLjUgOS4zLTMyLjkgOS4zem0xMDEuMi0xOS4zbDIzLjEgLjIgMC0uMiAxNC4xLTIxLjItMzcuMiAwIDAtMTQuOSA1Mi40IDAtMTQuMS0yMSAwLS4yLTczLjUgLjIgNy40IDguMiAwIDc3LjEtNy40IDguMiA4MS4yIDAgMTQuMS0yMS4yLTYwLjEgLjIgMC0xNS40em0yMTQuNy02MC4xYy03My45IDAtNzcuNSA5OS4zLS4zIDk5LjMgNzcuOSAwIDc0LjEtOTkuMyAuMy05OS4zem0tLjMgNzcuNWMtMzcuNCAwLTM2LjktNTUuMyAuMi01NS4zIDM2LjggLjEgMzguOCA1NS4zLS4yIDU1LjN6bS05MS4zLTguM2w0NC4xLTY2LjItNDEuNyAwIDYuMSA3LjItMjAuNSAzNy4yLS4zIDAtMjEtMzcuMiA2LjQtNy4yLTQ0LjkgMCA0NC4xIDY1LjggLjIgMTkuNC03LjcgOC4yIDQyLjYgMC03LjItOC4yLS4yLTE5ek0yMzQuNSAxNzYuMWMxLjYgMS4zIDIuOSAyLjQgMi45IDYuNmwwIDM4LjhjMCA0LjItLjggNS4zLTIuNyA2LjQtLjEgLjEtNy41IDQuNS03LjkgNC42bDM1LjEgMGMxMCAwIDE3LjQtMS41IDI2LTguNi0uNi01IC4yLTkuNSAuOC0xMiAwLS4yLTEuOCAxLjQtMi43IDMuNSAwLTUuNyAxLjYtMTUuNCA5LjYtMjAuNS0uMSAwLTMuNy0uOC05IDEuMSAyLTMuMSAxMC03LjkgMTAuNC03LjktOC4yLTI2LTM4LTIyLjktMzIuMi0yMi45LTMwLjkgMC0zMi42IC4zLTM5LjktNCAuMSAuOCAuNSA4LjIgOS42IDE0Ljl6bTIxLjUgNS41YzQuNiAwIDIzLjEtMy4zIDIzLjEgMTcuMyAwIDIwLjctMTguNCAxNy4zLTIzLjEgMTcuM2wwLTM0LjZ6bTIyOC45IDc5LjZsNyA4LjMgMCA0Mi41LS4zIDBjLTUuNC0xNC40LTQyLjMtNDEuNS00NS4yLTUwLjlsLTMxLjYgMCA3LjQgOC41IDAgNzYuOS03LjIgOC4zIDM5IDAtNy40LTguMiAwLTQ3LjQgLjMgMGMzLjcgMTAuNiA0NC41IDQyLjkgNDguNSA1NS42bDIxLjMgMCAwLTg1LjIgNy40LTguMy0zOS4yLS4xek0zNzguMiAxNjUuMWMtMzIuMiAwLTMyLjggLjItMzkuOS00IC4xIC43IC41IDguMyA5LjYgMTQuOSAzLjEgMiAyLjkgNC4zIDIuOSA5LjUgMS44LTEuMSAzLjgtMi4yIDYuMS0zLTEuMSAxLjEtMi43IDIuNy0zLjUgNC41IDEtMS4xIDcuNS01LjEgMTQuNi0zLjUtMS42IC4zLTQgMS4xLTYuMSAyLjkgLjEgMCAyLjEtMS4xIDcuNS0uM2wwLTQuM2M0LjcgMCAyMy4xLTMuNCAyMy4xIDE3LjMgMCAyMC41LTE4LjUgMTcuMy0xOS43IDE3LjMgNS43IDQuNCA1LjggMTIgMi4yIDE2LjNsLjMgMGMzMy40IDAgMzYuNy0yNy4zIDM2LjctMzQgMC0zLjgtMS4xLTMyLTMzLjgtMzMuNnoiXX0sUTNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pY3Jvc29mdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjYSIsIk0wIDMybDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6bTIzMy40IDBsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnpNMCAyNjUuNGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6Il19LFgzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHkiLGljb246WzMyMCw1MTIsW10sImY0MTciLCJNMTY1LjkgNDI3LjhjMTIuOSAxMS43IDMzLjcgMzMuMyAzMy4yIDUwLjcgMCAuOC0uMSAxLjYtLjEgMi41LTEuOCAxOS44LTE4LjggMzEuMS0zOS4xIDMxLTI1LS4xLTM5LjktMTYuOC0zOC43LTM1LjggMS0xNi4yIDIwLjUtMzYuNyAzMi40LTQ3LjYgMi4zLTIuMSAyLjctMi43IDUuNi0zLjYgMy40IDAgMy45IC4zIDYuNyAyLjh6TTMwMCA2Ny4zYy0xNi4zLTI1LjctMzguNi00MC42LTYzLjMtNTIuMS0yNS41LTEwLjctNTQuNi0xNS40LTc2LjYtMTUuMi00NC4xIDAtNzEuMiAxMy4yLTgxLjEgMTcuMy01My42IDI3LjktODQuNCA2OS45LTgyLjkgMTQxLjMgNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMyAuMWMyLjEtLjcgMS44LS41IDMuNS0yLjEgNTIuMy00OS4yIDE0MC43LTE0NS44IDE1NS45LTIxNS43IDctMzkuMiAzLjEtNzIuNS0yMC44LTExMi41ek0xNTQuOSAzNTEuOWMtMjgtNTEuMS02NS4yLTEzMC43LTY5LjMtMTg5LTMuNC00Ny41IDExLjQtMTMxLjIgNjkuMy0xMzYuN2wwIDMyNS43ek0yOTYuOCAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuMyAyNy44LTUxLjkgNjUuMi0xMzMuMyA2Ny4yLTE5MS45IDEuNi00NS45LTkuOC0xMDUuOC00OC0xMzEuNCA4OC44IDE4LjMgMTE1LjUgOTguMSA5OS43IDE1M3oiXX0sSjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXN0cmlwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFmNSIsIk00OTIuNCAyMjAuOGMtOC45IDAtMTguNyA2LjctMTguNyAyMi43bDM2LjcgMGMwLTE2LTkuMy0yMi43LTE4LTIyLjd6TTM3NSAyMjMuNGMtOC4yIDAtMTMuMyAyLjktMTcgN2wuMiA1Mi44YzMuNSAzLjcgOC41IDYuNyAxNi44IDYuNyAxMy4xIDAgMjEuOS0xNC4zIDIxLjktMzMuNCAwLTE4LjYtOS0zMy4yLTIxLjktMzMuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyMi4yIDI4MS4xYzAgMjUuNi0yMC4zIDQwLjEtNDkuOSA0MC4zLTEyLjIgMC0yNS42LTIuNC0zOC44LTguMWwwLTMzLjljMTIgNi40IDI3LjEgMTEuMyAzOC45IDExLjMgNy45IDAgMTMuNi0yLjEgMTMuNi04LjcgMC0xNy01NC0xMC42LTU0LTQ5LjkgMC0yNS4yIDE5LjItNDAuMiA0OC00MC4yIDExLjggMCAyMy41IDEuOCAzNS4zIDYuNWwwIDMzLjRjLTEwLjgtNS44LTI0LjUtOS4xLTM1LjMtOS4xLTcuNSAwLTEyLjEgMi4yLTEyLjEgNy43IDAgMTYgNTQuMyA4LjQgNTQuMyA1MC43ek0xOTEgMjI0LjVsLTI3IDAgMCA1MC41YzAgMjAuOSAyMi41IDE0LjQgMjcgMTIuNmwwIDI4LjljLTQuNyAyLjYtMTMuMyA0LjctMjQuOSA0LjctMjEuMSAwLTM2LjktMTUuNS0zNi45LTM2LjVsLjItMTEzLjkgMzQuNy03LjQgMCAzMC44IDI2LjkgMCAwIDMwLjN6bTc0IDIuNGMtNC41LTEuNS0xOC43LTMuNi0yNy4xIDcuNGwwIDg0LjQtMzUuNSAwIDAtMTI0LjUgMzAuNyAwIDIuMiAxMC41YzguMy0xNS4zIDI0LjktMTIuMiAyOS42LTEwLjVsLjEgMCAwIDMyLjd6bTQ0LjEgOTEuOGwtMzUuNyAwIDAtMTI0LjUgMzUuNyAwIDAgMTI0LjV6bTAtMTQyLjlsLTM1LjcgNy42IDAtMjguOSAzNS43LTcuNiAwIDI4Ljl6bTc0LjEgMTQ1LjVjLTEyLjQgMC0yMC01LjMtMjUuMS05bC0uMSA0MC4yLTM1LjUgNy41IDAtMTY1LjggMzEuMyAwIDEuOCA4LjhjNC45LTQuNSAxMy45LTExLjEgMjcuOC0xMS4xIDI0LjkgMCA0OC40IDIyLjUgNDguNCA2My44IDAgNDUuMS0yMy4yIDY1LjUtNDguNiA2NS42em0xNjAuNC01MS41bC02OS41IDBjMS42IDE2LjYgMTMuOCAyMS41IDI3LjYgMjEuNSAxNC4xIDAgMjUuMi0zIDM0LjktNy45bDAgMjguNmMtOS43IDUuMy0yMi40IDkuMi0zOS40IDkuMi0zNC42IDAtNTguOC0yMS43LTU4LjgtNjQuNSAwLTM2LjIgMjAuNS02NC45IDU0LjMtNjQuOSAzMy43IDAgNTEuMyAyOC43IDUxLjMgNjUuMSAwIDMuNS0uMyAxMC45LS40IDEyLjl6Il19LGV1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b3JkcHJlc3Mtc2ltcGxlIixpY29uOls1MTIsNTEyLFtdLCJmNDExIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzMgMjU2YzAtMzIuMyA2LjktNjMgMTkuMy05MC43TDE1OC43IDQ1Ni43Qzg0LjMgNDIwLjUgMzMgMzQ0LjIgMzMgMjU2ek0yNTYgNDc5Yy0yMS45IDAtNDMtMy4yLTYzLTkuMWw2Ni45LTE5NC40IDY4LjUgMTg3LjhjLjUgMS4xIDEgMi4xIDEuNiAzLjEtMjMuMSA4LjEtNDggMTIuNi03NCAxMi42em0zMC43LTMyNy41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtMjEuOSAwLTU4LjctMi44LTU4LjctMi44LTEyLS43LTEzLjQgMTcuNy0xLjQgMTguNCAwIDAgMTEuNCAxLjQgMjMuNCAyLjFsMzQuNyA5NS4yLTQ4LjggMTQ2LjMtODEuMi0yNDEuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTQuMiAwLTkuMS0uMS0xNC40LS4zIDM5LjktNjAuNSAxMDguNC0xMDAuNSAxODYuMy0xMDAuNSA1OCAwIDExMC45IDIyLjIgMTUwLjYgNTguNS0xLS4xLTEuOS0uMi0yLjktLjItMjEuOSAwLTM3LjQgMTkuMS0zNy40IDM5LjYgMCAxOC40IDEwLjYgMzMuOSAyMS45IDUyLjMgOC41IDE0LjggMTguNCAzMy45IDE4LjQgNjEuNSAwIDE5LjEtNy4zIDQxLjItMTcgNzIuMWwtMjIuMiA3NC4zLTgwLjctMjM5LjZ6bTgxLjQgMjk3LjJsNjguMS0xOTYuOWMxMi43LTMxLjggMTctNTcuMiAxNy03OS45IDAtOC4yLS41LTE1LjgtMS41LTIyLjkgMTcuNCAzMS44IDI3LjMgNjguMiAyNy4zIDEwNyAwIDgyLjMtNDQuNiAxNTQuMS0xMTAuOSAxOTIuN3oiXX0sdHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxzeSIsaWNvbjpbNjQwLDUxMixbXSwiZjIxMyIsIk01NDAgMjM3LjNjMy4xLTEyLjMgNC4zLTI0LjggNC4zLTM3LjQgMC05Mi41LTc1LjQtMTY3LjktMTY3LjktMTY3LjktNzcuMiAwLTE0NC42IDUzLTE2MyAxMjcuOC0xNS4zLTEzLjItMzQuOS0yMC41LTU1LjItMjAuNS00Ni4zIDAtODQgMzcuNy04NCA4NCAwIDcuNCAuOSAxNSAzLjEgMjIuNC00Mi45IDIwLjItNzAuOCA2My43LTcwLjggMTExLjIgMCA2OCA1NS41IDEyMy4yIDEyMy4yIDEyMy4ybDM4MS4yIDBjNjcuNyAwIDEyMy4yLTU1LjIgMTIzLjItMTIzLjIgMC01Ni40LTM4LjktMTA2LTk0LjEtMTE5LjV6TTIwMC4yIDQwMS42YzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTExMC45YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMTAuOXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTEzMS41YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMzEuNXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMxIDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xNjIuN2MwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMxIDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDE2Mi43em04NyAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTI4LjUgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTIyNC42YzAtOC42IDctMTUuNiAxNS4zLTE1LjZsMjguNSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjZsMCAyMjQuNnoiXX0scnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhc2hjdWJlIixpY29uOls0NDgsNTEyLFtdLCJmMjEwIiwiTTMyNi45IDEwNGwtMjE2LjIgMGMtNTEuMSAwLTkxLjIgNDMuMy05MS4yIDkzLjVsMCAyMjkuNWMwIDUwLjUgNDAuMSA4NSA5MS4yIDg1bDIyNy4yIDBjNTEuMSAwIDkxLjItMzQuNSA5MS4yLTg1bDAtNDI3LTEwMi4yIDEwNHpNMTU0LjIgNDE2LjVjLTE3LjcgMC0zMi40LTE1LjEtMzIuNC0zMi44bDAtMTQyLjljMC0xNy43IDE0LjctMzIuNSAzMi40LTMyLjVsMTQwLjcgMGMxNy43IDAgMzIgMTQuOCAzMiAzMi41bDAgMTIzLjUgNTEuMSA1Mi4zLTIyMy44IDAgMC0uMXoiXX0sYXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdHRlciIsaWNvbjpbMzg0LDUxMixbXSwiZjQyNiIsIk02Ni40IDMyMi41bC01MC40IDAgMC0zMjIuNSA1MC40IDAgMCAzMjIuNXpNMTY2LjkgNzYuMWwtNTAuNCAwIDAgNDM1LjkgNTAuNCAwIDAtNDM1Ljl6bTEwMC42IDBsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45ek0zNjggNzZsLTUwLjQgMCAwIDI0NyA1MC40IDAgMC0yNDd6Il19LGl1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2xmLXBhY2stYmF0dGFsaW9uIixpY29uOls0NDgsNTEyLFtdLCJmNTE0IiwiTTIzNi4yIDQ3MS41bDEwLjYgMTUuOCA1LjMtMTIuMyA1LjMgNyAwIDI5LjljMjEuMS03LjkgMjEuMS02Ni45IDI1LjUtOTcuMiA0LjYtMzEuOS0uOS05Mi44IDgxLjQtMTQ5LjEtOC45LTIzLjYtMTItNDkuNC0yLjYtODAgMjcuOSAzLjQgNTMuOSAxMC42IDYzLjMgNTQuMWwtMzAuMyA4LjRjMTEuMSAyMyAxNyA0Ni44IDEzLjIgNzIuMWwtMjcuMy03LTYuMiAzMy40LTE4LjUtNy04LjggMzMuNC0xOS40LTcgMjYuNCAyMS4xIDguOC0yOC4yIDI0LjYgNS4yIDctMzUuNiAyNi40IDE0LjVjLjItMjAgNy01OC4xLTguOC04NC41bDI2LjQgNS4zYzQtMjIuMS0yLjQtMzkuMi03LjktNTYuN2wyMi40IDkuN2MtLjQtMjUuMS0yOS45LTU2LjgtNjEuNi01OC41LTIwLjItMS4xLTU2LjctMjUuMi01NC4xLTUxLjkgMi0xOS45IDE3LjQtNDIuNiA0My4xLTQ5LjctNDQgMzYuNS05LjcgNjcuMyA1LjMgNzMuNSA0LjQtMTEuNCAxNy41LTY5LjEgMC0xMzAuMi00MC40IDIyLjktODkuNyA2NS4xLTkzLjIgMTQ3LjhsLTU4IDM4LjctMy41IDkzLjIgMTA3LjMtNTkuOCA3IDctMTcuNiAzLjUtNDQgMzguNy0xNS44LTUuMy0yOC4xIDQ5LjMtMy41IDExOS42IDIxLjEgMTUuOC0zMi41IDE1LjgtMzIuNi0xNS44IDIxLjEtMTUuOC0zLjUtMTE5LjYtMjguMi00OS4zLTE1LjggNS4zLTQ0LTM4LjctMTcuNi0zLjUgNy03IDEwNy4zIDU5LjgtMy41LTkzLjMtNTguMS0zOC43Yy0zLjUtODIuOC01Mi43LTEyNS05My4yLTE0Ny45LTE3LjUgNjEuMS00LjQgMTE4LjggMCAxMzAuMiAxNS02LjIgNDkuMy0zNyA1LjMtNzMuNSAyNS43IDcuMSA0MS4xIDI5LjggNDMuMSA0OS43IDIuNiAyNi43LTMzLjkgNTAuOC01NC4xIDUxLjktMzEuNyAxLjctNjEuMiAzMy40LTYxLjYgNTguNWwyMi40LTkuN0MxMy40IDIyNC43IDcgMjQxLjggMTEgMjYzLjlsMjYuNC01LjNjLTE1LjggMjYuNC05LjEgNjQuNC04LjggODQuNGwyNi40LTE0LjUgNyAzNS42IDI0LjYtNS4zIDguOCAyOC4yIDI2LjQtMjEuMS0xOS40IDctOC44LTMzLjQtMTguNSA3LTYuMi0zMy40LTI3LjMgN0MzOCAyOTQuOCA0My44IDI3MSA1NSAyNDhsLTMwLjMtOC40YzkuNC00My41IDM1LjUtNTAuOCA2My4zLTU0LjEgOS40IDMwLjYgNi4yIDU2LjUtMi42IDgwLjEgODIuMyA1Ni4zIDc2LjggMTE3LjIgODEuNCAxNDkuMSA0LjQgMzAuMyA0LjQgODkuMyAyNS41IDk3LjJsMC0yOS44IDUuMy03IDUuMyAxMi4zIDEwLjYtMTUuOCAxMS40IDIxLjEgMTEuNC0yMS4xIDAgMHptNzkuMi05NUwyOTkuNSAzNjZjNy41LTQuNCAxMy44LTguNCAxOS40LTEyLjMtLjYgNy4yLS4zIDEzLjgtMy41IDIyLjhsMCAwem0yOC4yLTQ5LjNjLS40IDEwLjktLjkgMjEuNy0xLjggMzEuNy03LjgtMS45LTE1LjYtMy44LTIxLjEtNyA4LjItNy45IDE1LjYtMTYuMyAyMi45LTI0LjdsMCAwem0yNC42IDUuM2MwLTEzLjQtMi4xLTI0LjItNS4zLTMzLjQtNS41IDkuNS0xMS43IDE4LjYtMTguNSAyNy4zbDIzLjggNi4yem0zLjUtODAuOWMxOS40IDEyLjggMjcuOCAzMy43IDI5LjkgNTYuMy0xMi4zLTQuNS0yNC42LTkuMy0zNy0xMC42IDUuMS0xMiA2LjYtMjguMSA3LTQ1LjdsMCAwem0tMS44LTQ1LjdjLjggMTQuMyAxLjggMjguOCAxLjggNDIuMiAxOS4yLTguMSAyOS44LTkuNyA0NC0xNC4xLTEwLjYtMTktMjcuMi0yNS41LTQ1LjgtMjguMmwwIDB6TTEzNC4yIDM3Ni41TDE1MCAzNjZjLTcuNS00LjQtMTMuOC04LjQtMTkuNC0xMi4zIC42IDcuMyAuMyAxMy45IDMuNSAyMi45bDAgMHpNMTA2IDMyNy4zYy40IDEwLjkgLjkgMjEuNyAxLjggMzEuNyA3LjgtMS45IDE1LjYtMy44IDIxLjEtNy04LjItNy45LTE1LjYtMTYuMy0yMi45LTI0Ljd6bS0yNC42IDUuM2MwLTEzLjQgMi0yNC4yIDUuMy0zMy40IDUuNSA5LjUgMTEuNyAxOC42IDE4LjUgMjcuM2wtMjMuOCA2LjJ6bS0zLjUtODAuOWMtMTkuNCAxMi44LTI3LjggMzMuNy0yOS45IDU2LjMgMTIuMy00LjUgMjQuNi05LjMgMzctMTAuNi01LTEyLTYuNi0yOC4xLTctNDUuN2wtLjEgMHptMS44LTQ1LjdjLS44IDE0LjMtMS44IDI4LjgtMS44IDQyLjItMTkuMi04LjEtMjkuOC05LjctNDQtMTQuMSAxMC42LTE5IDI3LjItMjUuNSA0NS44LTI4LjF6Il19LHN1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXN0Zm0iLGljb246WzUxMiw1MTIsW10sImYyMDIiLCJNMjI1LjggMzY3LjFsLTE4LjgtNTFzLTMwLjUgMzQtNzYuMiAzNGMtNDAuNSAwLTY5LjItMzUuMi02OS4yLTkxLjUgMC03Mi4xIDM2LjQtOTcuOSA3Mi4xLTk3LjkgNjYuNSAwIDc0LjggNTMuMyAxMDAuOSAxMzQuOSAxOC44IDU2LjkgNTQgMTAyLjYgMTU1LjQgMTAyLjYgNzIuNyAwIDEyMi0yMi4zIDEyMi04MC45IDAtNzIuOS02Mi43LTgwLjYtMTE1LTkyLjEtMjUuOC01LjktMzMuNC0xNi40LTMzLjQtMzQgMC0xOS45IDE1LjgtMzEuNyA0MS42LTMxLjcgMjguMiAwIDQzLjQgMTAuNiA0NS43IDM1LjhsNTguNi03Yy00LjctNTIuOC00MS4xLTc0LjUtMTAwLjktNzQuNS01Mi44IDAtMTA0LjQgMTkuOS0xMDQuNCA4My45IDAgMzkuOSAxOS40IDY1LjEgNjggNzYuOCA0NC45IDEwLjYgNzkuOCAxMy44IDc5LjggNDUuNyAwIDIxLjctMjEuMSAzMC41LTYxIDMwLjUtNTkuMiAwLTgzLjktMzEuMS05Ny45LTczLjktMzItOTYuOC00My42LTE2My0xNjEuMy0xNjMtODYuMSAwLTEzMS44IDU0LjUtMTMxLjggMTQ3LjIgMCA4OS4xIDQ1LjcgMTM3LjIgMTI3LjkgMTM3LjIgNjYuMiAwIDk3LjktMzEuMSA5Ny45LTMxLjF6Il19LG51cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9wd2FyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViNSIsIk00MDMuNSA0NTUuNGMtNDIuNiAzMS43LTk0LjQgNDguNy0xNDcuNSA0OC42LTEzNy4yIDAtMjQ4LTExMS0yNDgtMjQ4IDAtMTM3LjIgMTExLTI0OCAyNDgtMjQ4IDYxLjItLjEgMTIwLjIgMjIuNiAxNjUuNyA2My41IC42IC41IC45IDEuMiAxLjEgMS45cy4xIDEuNS0uMyAyLjItLjggMS4zLTEuNSAxLjYtMS40IC41LTIuMiAuNGMtMTguOC0yLjUtMzcuNy0zLjctNTYuNy0zLjctMTI5LjQgMC0yMjIuNCA1My41LTIyMi40IDE1NS40IDAgMTA5IDkyLjEgMTQ1LjkgMTc2LjggMTc4LjcgMzMuNiAxMyA2NS40IDI1LjQgODcgNDEuNiAuNCAuMyAuOCAuOCAxLjEgMS4zcy40IDEgLjQgMS42LS4xIDEuMS0uNCAxLjYtLjYgLjktMS4xIDEuM2wtLjEgMHpNNTAzIDIzMy4xYy0uMS0uOS0uNS0xLjgtMS4zLTIuNC01MS44LTQzLTkzLjYtNjAuNS0xNDQuNS02MC41LTg0LjEgMC04MC4zIDUyLjItODAuMyA1My42IDAgNDIuNiA1Mi4xIDYyIDExMi4zIDg0LjUgMzEuMSAxMS42IDYzLjIgMjMuNiA5Mi43IDM5LjkgLjQgLjIgLjkgLjQgMS40IC40czEgMCAxLjUtLjIgLjktLjQgMS4zLS44IC42LS44IC44LTEuMmMxNC4xLTM2IDE5LjUtNzQuOCAxNi0xMTMuM3oiXX0sb3VyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXIiLGljb246WzQ0OCw1MTIsW10sImYzN2MiLCJNMTYyLjQgMTk2YzQuOC00LjkgNi4yLTUuMSAzNi40LTUuMSAyNy4yIDAgMjguMSAuMSAzMi4xIDIuMSA1LjggMi45IDguMyA3IDguMyAxMy42IDAgNS45LTIuNCAxMC03LjYgMTMuNC0yLjggMS44LTQuNSAxLjktMzEuMSAyLjEtMTYuNCAuMS0yOS41LS4yLTMxLjUtLjgtMTAuMy0yLjktMTQuMS0xNy43LTYuNi0yNS4zem02MS40IDk0LjVjLTUzLjkgMC01NS44IC4yLTYwLjIgNC4xLTMuNSAzLjEtNS43IDkuNC01LjEgMTMuOSAuNyA0LjcgNC44IDEwLjEgOS4yIDEyIDIuMiAxIDE0LjEgMS43IDU2LjMgMS4ybDQ3LjktLjYgOS4yLTEuNWM5LTUuMSAxMC41LTE3LjQgMy4xLTI0LjQtNS4zLTQuNy01LTQuNy02MC40LTQuN3pNNDQ3LjIgNDIwLjZjLTMuNSAyOC40LTIzIDUwLjQtNTEuMSA1Ny41LTcuMiAxLjgtOS43IDEuOS0xNzIuOSAxLjgtMTU3LjggMC0xNjUuOS0uMS0xNzItMS44LTguNC0yLjItMTUuNi01LjUtMjIuMy0xMC01LjYtMy44LTEzLjktMTEuOC0xNy0xNi40LTMuOC01LjYtOC4yLTE1LjMtMTAtMjJTMCA0MjAuMyAwIDI1Ni4zYzAtMTYzLjEgMC0xNjYuNiAxLjgtMTczLjcgNi4zLTI0LjcgMjUuOS00My42IDUxLjItNDkuMiA3LjMtMS42IDMzMi4xLTEuOSAzNDAtLjMgMjEuMiA0LjMgMzcuOSAxNy4xIDQ3LjYgMzYuNCA3LjcgMTUuMyA3LTEuNSA3LjMgMTgwLjYgLjIgMTE1LjggMCAxNjQuNS0uNyAxNzAuNXpNMzYxLjggMjM1LjRjLTEuMS01LTQuMi05LjYtNy43LTExLjUtMS4xLS42LTgtMS4zLTE1LjUtMS43LTEyLjQtLjYtMTMuOC0uOC0xNy44LTMuMS02LjItMy42LTcuOS03LjYtOC0xOC4zIDAtMjAuNC04LjUtMzkuNC0yNS4zLTU2LjUtMTItMTIuMi0yNS4zLTIwLjUtNDAuNi0yNS4xLTMuNi0xLjEtMTEuOC0xLjUtMzkuMi0xLjgtNDIuOS0uNS01Mi41IC40LTY3LjEgNi4yLTI3IDEwLjctNDYuMyAzMy40LTUzLjQgNjIuNC0xLjMgNS40LTEuNiAxNC4yLTEuOSA2NC4zLS40IDYyLjggMCA3Mi4xIDQgODQuNSA5LjcgMzAuNyAzNy4xIDUzLjQgNjQuNiA1OC40IDkuMiAxLjcgMTIyLjIgMi4xIDEzMy43IC41IDIwLjEtMi43IDM1LjktMTAuOCA1MC43LTI1LjkgMTAuNy0xMC45IDE3LjQtMjIuOCAyMS44LTM4LjUgMy4yLTEwLjkgMi45LTg4LjQgMS43LTkzLjl6Il19LGx1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlZGdlIixpY29uOls1MTIsNTEyLFtdLCJmMjgyIiwiTTEyMC4xIDM3LjRjNDEtMjUuMiA4Ny42LTM4LjIgMTM0LjktMzcuNCAxNjggMCAyNTcgMTIzLjggMjU3IDIxOS41LS4xIDMyLjctMTMgNjMuOS0zNS45IDg3LjItMjIuOSAyMy4yLTU0IDM2LjUtODYuNyAzNy03NS4yIDAtOTEuNS0yMy4xLTkxLjUtMzIgMC0zLjggMS4yLTYuMiA0LjgtOS40bDEtMS4yIC40LTEuNmMxMC41LTExLjUgMTUuOS0yNi4yIDE1LjktNDEuNiAwLTc4LjctODIuMi0xNDIuNy0xODQtMTQyLjctMzcuNS0uMy03NC41IDguOS0xMDcuNSAyNi45IDI3LTU3LjUgODIuNy05Ny42IDkxLjMtMTAzLjggLjgtLjYgLjMtLjggLjMtLjh6bTE1LjYgMzE4LjFjLTEuNCAzMCA0LjYgNjAgMTYuNCA4Ny4yIDEzLjYgMjYuNCAzMi43IDUxIDU2LjUgNjkuMy01OS41LTExLjUtMTExLjUtNDMuOS0xNDkuNC04OS4zLTM4LjEtNDYuNC01OS4yLTEwNC4zLTU5LjItMTY0LjggMC01MS4yIDYyLjQtOTQuNCAxMzYtOTQuNCAzNi42LS42IDcyLjQgMTAuOSAxMDEuOCAzMi43bC0zLjYgMS4yYy01MS41IDE3LjYtOTguNSA5MC43LTk4LjUgMTU4LjF6TTQ2OS44IDQwMGwtLjcgLjFjLTExLjggMTguOC0yNS45IDM1LjEtNDIuMiA0OS41LTMwLjggMjgtNjguMSA0NS41LTEwOC44IDQ5LjktMTguNiAuMy0zNi44LTMuMi01My44LTExLjQtMjUuNi0xMC4zLTQ3LjEtMzAtNjEuNi01My0xNC40LTIzLjktMjEuMS01MS43LTE5LTc5LjYtLjYtMjAuMSA1LjQtNDAuMyAxNS01OC4yIDEzLjkgMzMuMSAzNy41IDYxLjMgNjcuNiA4MC44czY1LjUgMjkuNSAxMDEuNCAyOC42YzMxIC4zIDYyLjEtNi43IDkwLjItMjAuNWwxLjktLjljMy45LTIuMyA3LjctMy45IDExLjYgMCA0LjUgNC45IDEuOCA5LjItMS4yIDE0LS4yIC4yLS4zIC41LS40IC43eiJdfSxjdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW94aG9zdCIsaWNvbjpbNjQwLDUxMixbXSwiZjIwOCIsIk02MTYgMTYwbC02Ny4zIDBDNTExLjIgNzAuNyA0MjIuOSA4IDMyMCA4IDE4MyA4IDcyIDExOSA3MiAyNTYgNzIgMjcyLjQgNzMuNiAyODguNSA3Ni43IDMwNEwyNCAzMDRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDY3LjMgMGMzNy41IDg5LjMgMTI1LjggMTUyIDIyOC43IDE1MiAxMzcgMCAyNDgtMTExIDI0OC0yNDggMC0xNi40LTEuNi0zMi41LTQuNy00OGw1Mi43IDBjMTMuMyAwIDI0LTEwLjggMjQtMjQgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS05NiA5NmMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDAtNzUuNyAwLTE0MS42LTQyLTE3NS41LTEwNEw0MjQgMzUyYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yOTguMiAwYy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRMMjE2IDE2MGMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjk4LjIgMGMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6TTIxNiAyMzJsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAxMy4yLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEzLjIgMTAuNy0yNCAyNC0yNHoiXX0sZHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjaGxpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYSIsIk0zNTAuNSAxNTcuN2wtNTQuMi00Ni4xIDczLjQtMzkgNzguMyA0NC4yLTk3LjUgNDAuOXpNMTkyIDEyMi4xbDQ1LjctMjguMiAzNC43IDM0LjYtNTUuNCAyOS0yNS0zNS40em0tNjUuMSA2LjZsMzEuOS0yMi4xIDE3LjIgMjguNC0zNi43IDIyLjUtMTIuNC0yOC44em0tMjMuMyA4OC4ybC04LjgtMzQuOCAyOS42LTE4LjMgMTMuMSAzNS4zLTMzLjkgMTcuOHpNODIuNCAxMzMuMmwyMy45LTE4LjEgOC45IDI0LTI2LjcgMTguMy02LjEtMjQuMnpNNTkgMjA2LjVsLTMuNi0yOC40IDIyLjMtMTUuNSA2LjEgMjguNy0yNC44IDE1LjJ6TTI4LjQgMjIzLjFsMjAuOC0xMi44IDMuMyAzMy40LTIyLjkgMTItMS4yLTMyLjZ6TTEuNCAyNjhMMjAuNiAyNTcuOCAyMSAyOTYgMCAzMDQuOCAxLjQgMjY4em01OS4xIDU5LjNsLTI4LjMgOC4zLTEuNi00Ni44IDI1LjEtMTAuNyA0LjggNDkuMnpNOTkgMjYzLjJsLTMxLjEgMTMtNS4yLTQwLjggMjcuNC0xNC40IDguOSA0Mi4yek0xMjMuMiAzNzdsLTQxLjYgNS45LTguMS02My41IDM1LjItMTAuOCAxNC41IDY4LjR6bTI4LjUtMTM5LjlsMjEuMiA1Ny4xLTQ2LjIgMTMuNi0xMy43LTU0LjEgMzguNy0xNi42em04NS43IDIzMC41bC03MC45LTMuMy0yNC4zLTk1LjggNTUuMi04LjYgNDAgMTA3Ljd6TTE1Mi41IDE4Ny45bDQyLjItMjIuNCAyOCA0NS45LTUwLjggMjEuMy0xOS40LTQ0Ljh6bTQxIDk0LjlsNjEuMy0xOC43IDUyLjggODYuNi03OS44IDExLjMtMzQuMy03OS4yem01MS40LTg1LjZsNjcuMy0yOC44IDY1LjUgNjUuNC04OC42IDI2LjItNDQuMi02Mi44eiJdfSx1dXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZCIsaWNvbjpbNTc2LDUxMixbXSwiZjM4ZCIsIk04Mi45IDk4LjljLS42LTE3LjIgMi0zMy44IDEyLjctNDguMiAuMyA3LjQgMS4yIDE0LjUgNC4yIDIxLjYgNS45LTI3LjUgMTkuNy00OS4zIDQyLjMtNjUuNS0xLjkgNS45LTMuNSAxMS44LTMgMTcuNyA4LjctNy40IDE4LjgtMTcuOCA0NC40LTIyLjcgMTQuNy0yLjggMjkuNy0yIDQyLjEgMSAzOC41IDkuMyA2MSAzNC4zIDY5LjcgNzIuMyA1LjMgMjMuMSAuNyA0NS04LjMgNjYuNC01LjIgMTIuNC0xMiAyNC40LTIwLjcgMzUuMS0yLTEuOS0zLjktMy44LTUuOC01LjYtNDIuOC00MC44LTI2LjgtMjUuMi0zNy40LTM3LjQtMS4xLTEuMi0xLTIuMi0uMS0zLjYgOC4zLTEzLjUgMTEuOC0yOC4yIDEwLTQ0LTEuMS05LjgtNC4zLTE4LjktMTEuMy0yNi4yLTE0LjUtMTUuMy0zOS4yLTE1LTUzLjUgLjYtMTEuNCAxMi41LTE0LjEgMjcuNC0xMC45IDQzLjYgLjIgMS4zIC40IDIuNyAwIDMuOS0zLjQgMTMuNy00LjYgMjcuNi0yLjUgNDEuNiAuMSAuNSAuMSAxLjEgLjEgMS42IDAgLjMtLjEgLjUtLjIgMS4xLTIxLjgtMTEtMzYtMjguMy00My4yLTUyLjItOC4zIDE3LjgtMTEuMSAzNS41LTYuNiA1NC4xLTE1LjYtMTUuMi0yMS4zLTM0LjMtMjItNTUuMnpNNTUyLjUgMjIyLjFjLTExLjYtMTEuNi0yNS0yMC40LTQwLjEtMjYuNi0xMi44LTUuMi0yNi03LjktMzkuOS03LjEtMTAgLjYtMTkuNiAzLjEtMjkgNi40LTIuNSAuOS01LjEgMS42LTcuNyAyLjItNC45IDEuMi03LjMtMy4xLTQuNy02LjggMy4yLTQuNiAzLjQtNC4yIDE1LTEyIC42LS40IDEuMi0uOCAyLjItMS41bC0yLjUgMGMtLjYgMC0xLjIgLjItMS45IC4zLTE5LjMgMy4zLTMwLjcgMTUuNS00OC45IDI5LjYtMTAuNCA4LjEtMTMuOCAzLjgtMTItLjUgMS40LTMuNSAzLjMtNi43IDUuMS0xMCAxLTEuOCAyLjMtMy40IDMuNS01LjEtLjItLjItLjUtLjMtLjctLjUtMjcgMTguMy00Ni43IDQyLjQtNTcuNyA3My4zIC4zIC4zIC43IC42IDEgLjkgLjMtLjYgLjUtMS4yIC45LTEuNyAxMC40LTEyLjEgMjIuOC0yMS44IDM2LjYtMjkuOCAxOC4yLTEwLjYgMzcuNS0xOC4zIDU4LjctMjAuMiA0LjMtLjQgOC43LS4xIDEzLjEtLjEtMS44IC43LTMuNSAuOS01LjMgMS4xLTE4LjUgMi40LTM1LjUgOS01MS41IDE4LjUtMzAuMiAxNy45LTU0LjUgNDIuMi03NS4xIDcwLjQtLjMgLjQtLjQgLjktLjcgMS4zIDE0LjUgNS4zIDI0IDE3LjMgMzYuMSAyNS42IC4yLS4xIC4zLS4yIC40LS40bDEuMi0yLjdjMTIuMi0yNi45IDI3LTUyLjMgNDYuNy03NC41IDE2LjctMTguOCAzOC0yNS4zIDYyLjUtMjAgNS45IDEuMyAxMS40IDQuNCAxNy4yIDYuOCAyLjMtMS40IDUuMS0zLjIgOC00LjcgOC40LTQuMyAxNy40LTcgMjYuNy05IDE0LjctMy4xIDI5LjUtNC45IDQ0LjUtMS4zbDAtLjVjLS41LS40LTEuMi0uOC0xLjctMS40ek0zMTcuMSAzOTcuNmMtMzkuNC0zMy0yMi44LTE5LjUtNDIuNy0zNS42LS44IC45IDAtLjItMS45IDMtMTEuMiAxOS4xLTI1LjUgMzUuMy00NCA0Ny42LTEwLjMgNi44LTIxLjUgMTEuOC0zNC4xIDExLjgtMjEuNiAwLTM4LjItOS41LTQ5LjQtMjcuOC0xMi0xOS41LTEzLjMtNDAuNy04LjItNjIuNiA3LjgtMzMuOCAzMC4xLTU1LjIgMzguNi02NC4zLTE4LjctNi4yLTMzIDEuNy00Ni40IDEzLjkgLjgtMTMuOSA0LjMtMjYuMiAxMS44LTM3LjMtMjQuMyAxMC42LTQ1LjkgMjUtNjQuOCA0My45LS4zLTUuOCA1LjQtNDMuNyA1LjYtNDQuNyAuMy0yLjctLjYtNS4zLTMtNy40LTI0LjIgMjQuNy00NC41IDUxLjgtNTYuMSA4NC42IDcuNC01LjkgMTQuOS0xMS40IDIzLjYtMTYuMi04LjMgMjIuMy0xOS42IDUyLjgtNy44IDEwMS4xIDQuNiAxOSAxMS45IDM2LjggMjQuMSA1Mi4zIDIuOSAzLjcgNi4zIDYuOSA5LjUgMTAuMyAuMi0uMiAuNC0uMyAuNi0uNS0xLjQtNy0yLjItMTQuMS0xLjUtMjEuOSAyLjIgMy4yIDMuOSA2IDUuOSA4LjYgMTIuNiAxNiAyOC43IDI3LjQgNDcuMiAzNS42IDI1IDExLjMgNTEuMSAxMy4zIDc3LjkgOC42IDU0LjktOS43IDkwLjctNDguNiAxMTYtOTguOCAxLTEuOCAuNi0yLjktLjktNC4yem0xNzItNDYuNGMtOS41LTMuMS0yMi4yLTQuMi0yOC43LTIuOSA5LjkgNCAxNC4xIDYuNiAxOC44IDEyIDEyLjYgMTQuNCAxMC40IDM0LjctNS40IDQ1LjYtMTEuNyA4LjEtMjQuOSAxMC41LTM4LjkgOS4xLTEuMi0uMS0yLjMtLjQtMy0uNiAyLjgtMy43IDYtNyA4LjEtMTAuOCA5LjQtMTYuOCA1LjQtNDIuMS04LjctNTYuMS0yLjEtMi4xLTQuNi0zLjktNy01LjktLjMgMS4zLS4xIDIuMSAuMSAyLjggNC4yIDE2LjYtOC4xIDMyLjQtMjQuOCAzMS44LTcuNi0uMy0xMy45LTMuOC0xOS42LTguNS0xOS41LTE2LjEtMzkuMS0zMi4xLTU4LjUtNDguMy01LjktNC45LTEyLjUtOC4xLTIwLjEtOC43LTQuNi0uNC05LjMtLjYtMTMuOS0uOS01LjktLjQtOC44LTIuOC0xMC40LTguNC0uOS0zLjQtMS41LTYuOC0yLjItMTAuMi0xLjUtOC4xLTYuMi0xMy0xNC4zLTE0LjItNC40LS43LTguOS0xLTEzLjMtMS41LTEzLTEuNC0xOS44LTcuNC0yMi42LTIwLjMtNSAxMS0xLjYgMjIuNCA3LjMgMjkuOSA0LjUgMy44IDkuMyA3LjMgMTMuOCAxMS4yIDQuNiAzLjggNy40IDguNyA3LjkgMTQuOCAuNCA0LjcgLjggOS41IDEuOCAxNC4xIDIuMiAxMC42IDguOSAxOC40IDE3IDI1LjEgMTYuNSAxMy43IDMzIDI3LjMgNDkuNSA0MS4xIDE3LjkgMTUgMTMuOSAzMi44IDEzIDU2LS45IDIyLjkgMTIuMiA0Mi45IDMzLjUgNTEuMiAxIC40IDIgLjYgMy42IDEuMS0xNS43LTE4LjItMTAuMS00NC4xIC43LTUyLjMgLjMgMi4yIC40IDQuMyAuOSA2LjQgOS40IDQ0LjEgNDUuNCA2NC4yIDg1IDU2LjkgMTYtMi45IDMwLjYtOC45IDQyLjktMTkuOCAyLTEuOCAzLjctNC4xIDUuOS02LjUtMTkuMyA0LjYtMzUuOCAuMS01MC45LTEwLjYgLjctLjMgMS4zLS4zIDEuOS0uMyAyMS4zIDEuOCA0MC42LTMuNCA1Ny0xNy40IDE5LjUtMTYuNiAyNi42LTQyLjkgMTcuNC02Ni04LjMtMjAuMS0yMy42LTMyLjMtNDMuOC0zOC45ek05OS44IDE3OS4zYy01LjMtOS4yLTEzLjItMTUuNi0yMi4xLTIxLjMgMTMuNy0uNSAyNi42IC4yIDM5LjYgMy43LTctMTIuMi04LjUtMjQuNy01LTM4LjcgNS4zIDExLjkgMTMuNyAyMC4xIDIzLjYgMjYuOCAxOS43IDEzLjIgMzUuNyAxOS42IDQ2LjcgMzAuMiAzLjQgMy4zIDYuMyA3LjEgOS42IDEwLjktLjgtMi4xLTEuNC00LjEtMi4yLTYtNS0xMC42LTEzLTE4LjYtMjIuNi0yNS0xLjgtMS4yLTIuOC0yLjUtMy40LTQuNS0zLjMtMTIuNS0zLTI1LjEtLjctMzcuNiAxLTUuNSAyLjgtMTAuOSA0LjUtMTYuMyAuOC0yLjQgMi4zLTQuNiA0LTYuNiAuNiA2LjkgMCAyNS41IDE5LjYgNDYgMTAuOCAxMS4zIDIyLjQgMjEuOSAzMy45IDMyLjcgOSA4LjUgMTguMyAxNi43IDI1LjUgMjYuOCAxLjEgMS42IDIuMiAzLjMgMy44IDQuNy01LTEzLTE0LjItMjQuMS0yNC4yLTMzLjgtOS42LTkuMy0xOS40LTE4LjQtMjkuMi0yNy40LTMuMy0zLTQuNi02LjctNS4xLTEwLjktMS4yLTEwLjQgMC0yMC42IDQuMy0zMC4yIC41LTEgMS4xLTIgMS45LTMuMyAuNSA0LjIgLjYgNy45IDEuNCAxMS42IDQuOCAyMy4xIDIwLjQgMzYuMyA0OS4zIDYzLjUgMTAgOS40IDE5LjMgMTkuMiAyNS42IDMxLjYgNC44IDkuMyA3LjMgMTkgNS43IDI5LjYtLjEgLjYgLjUgMS43IDEuMSAyIDYuMiAyLjYgMTAgNi45IDkuNyAxNC4zIDcuNy0yLjYgMTIuNS04IDE2LjQtMTQuNSA0LjIgMjAuMi05LjEgNTAuMy0yNy4yIDU4LjcgLjQtNC41IDUtMjMuNC0xNi41LTI3LjctNi44LTEuMy0xMi44LTEuMy0yMi45LTIuMSA0LjctOSAxMC40LTIwLjYgLjUtMjIuNC0yNC45LTQuNi01Mi44IDEuOS01Ny44IDQuNiA4LjIgLjQgMTYuMyAxIDIzLjUgMy4zLTIgNi41LTQgMTIuNy01LjggMTguOS0xLjkgNi41IDIuMSAxNC42IDkuMyA5LjYgMS4yLS45IDIuMy0xLjkgMy4zLTIuNy0zLjEgMTcuOS0yLjkgMTUuOS0yLjggMTguMyAuMyAxMC4yIDkuNSA3LjggMTUuNyA3LjMtMi41IDExLjgtMjkuNSAyNy4zLTQ1LjQgMjUuOCA3LTQuNyAxMi43LTEwLjMgMTUuOS0xNy45LTYuNSAuOC0xMi45IDEuNi0xOS4yIDIuNGwtLjMtLjljNC43LTMuNCA4LTcuOCAxMC4yLTEzLjEgOC43LTIxLjEtMy42LTM4LTI1LTM5LjktOS4xLS44LTE3LjggLjgtMjUuOSA1LjUgNi4yLTE1LjYgMTcuMi0yNi42IDMyLjYtMzQuNS0xNS4yLTQuMy04LjktMi43LTI0LjYtNi4zIDE0LjYtOS4zIDMwLjItMTMuMiA0Ni41LTE0LjYtNS4yLTMuMi00OC4xLTMuNi03MC4yIDIwLjkgNy45IDEuNCAxNS41IDIuOCAyMy4yIDQuMi0yMy44IDctNDQgMTkuNy02Mi40IDM1LjYgMS4xLTQuOCAyLjctOS41IDMuMy0xNC4zIC42LTQuNSAuOC05LjIgLjEtMTMuNi0xLjUtOS40LTguOS0xNS4xLTE5LjctMTYuMy03LjktLjktMTUuNiAuMS0yMy4zIDEuMy0uOSAuMS0xLjcgLjMtMi45IDAgMTUuOC0xNC44IDM2LTIxLjcgNTMuMS0zMy41IDYtNC41IDYuOC04LjIgMy0xNC45em0xMjguNCAyNi44YzMuMyAxNiAxMi42IDI1LjUgMjMuOCAyNC4zLTQuNi0xMS4zLTEyLjEtMTkuNS0yMy44LTI0LjN6Il19LHB1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2dWVqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQxZiIsIk0zNTYuOSA2NC4zbC03Ni45IDAtNTYgODguNi00OC04OC42LTE3NiAwIDIyNCAzODMuNyAyMjQtMzgzLjctOTEuMSAwek01NS43IDk2LjNsNTMuOCAwIDExNC41IDE5OC4yIDExNC40LTE5OC4yIDUzLjggMC0xNjguMiAyODguMi0xNjguMy0yODguMnoiXX0sZnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1ldGEiLGljb246WzY0MCw1MTIsW10sImU0OWIiLCJNNjQwIDMxNy45YzAgOTEuMy0zOS40IDE0OC41LTExMC4zIDE0OC41LTYyLjYgMC05NS44LTM0LjYtMTU2LjktMTM2LjZsLTMxLjQtNTIuNmMtOC4zLTEyLjUtMTQuNS0yNC4yLTIxLjItMzUtMjAuMSAzMy44LTQ3LjEgODMtNDcuMSA4My02NyAxMTYuNi0xMDQuNiAxNDEuMi0xNTYuOSAxNDEuMi03Mi44IDAtMTE2LjItNTcuMy0xMTYuMi0xNDUuOSAwLTE0MyA3OS44LTI3OC4xIDE4My45LTI3OC4xIDUwLjIgMCA5My44IDI0LjcgMTQ0LjggODkuNSAzNy4xLTUwLjEgNzguMS04OS41IDEzMC42LTg5LjUgOTkuMSAwIDE4MC43IDEyNS43IDE4MC43IDI3NS41ek0yODcuNCAxOTIuMmMtNDIuOS02Mi4xLTcwLjktODAuNS0xMDQuNC04MC41LTYxLjkgMC0xMTMuOCAxMDYuMS0xMTMuOCAyMTAgMCA0OC41IDE4LjUgNzUuNyA0OS42IDc1LjcgMzAuMiAwIDQ5LTE5IDEwMy4yLTEwMy44IDAgMCAyNC43LTM5LjEgNjUuNC0xMDEuNHpNNTMxLjIgMzk3LjRjMzIuMiAwIDQ2LjktMjcuNSA0Ni45LTc0LjkgMC0xMjQuMi01NC4zLTIyNS40LTEyMy4yLTIyNS40LTMzLjIgMC02MS4xIDI1LjktOTQuOSA3OCA5LjQgMTMuOCAxOS4xIDI5IDI5LjMgNDUuNGwzNy41IDYyLjRjNTguNyA5NC4xIDczLjUgMTE0LjUgMTA0LjQgMTE0LjV6Il19LGh1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNoYXJlIixpY29uOls1MTIsNTEyLFtdLCJmNGYyIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTAxIDEzMi40YzcuOCAwIDEzLjcgNi4xIDEzLjcgMTMuN2wwIDE4Mi41YzAgNy43LTYuMSAxMy43LTEzLjcgMTMuN2wtMTM1LjEgMGMtNy43IDAtMTMuNy02LTEzLjctMTMuN2wwLTU0LTU0IDBjLTcuOCAwLTEzLjctNi0xMy43LTEzLjdsMC0xODIuNWMwLTguMiA2LjYtMTIuNyAxMi40LTEzLjdsMTM2LjQgMGM3LjcgMCAxMy43IDYgMTMuNyAxMy43bDAgNTQgNTQgMHpNMTY3LjkgMzAwLjNsNDAuNyAwIDAtMTAxLjRjMC03LjQgNS44LTEyLjYgMTItMTMuN2w1NS44IDAgMC00MC4zLTEwOC41IDAgMCAxNTUuNHptMTc2LjItODguMWwtMTA4LjUgMCAwIDE1NS40IDEwOC41IDAgMC0xNTUuNHoiXX0sbXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWRpb3ZpbmFyaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNmOCIsIk00ODAuNyAxODcuN2w0LjIgMjggMCAyOC0yNS4xIDQ0LjEtMzkuOCA3OC40LTU2LjEgNjcuNS03OS4xIDM3LjgtMTcuNyAyNC41LTcuNyAxMi05LjYgNHMxNy4zLTYzLjYgMTkuNC02My42IDIwLjMgLjcgMjAuMyAuN2w2Ni43LTM4LjYtOTIuNSAyNi4xLTU1LjkgMzYuOC0yMi44IDI4LTYuNiAxLjQgMjAuOC03My42IDYuOS01LjUgMjAuNyAxMi45IDg4LjMtNDUuMiA1Ni44LTUxLjUgMTQuOC02OC40LTEyNS40IDIzLjMgMTUuMi0xOC4yLTE3My40LTUzLjMgODEuOS0xMC41LTE2Ni0xMjIuOSAxMTQuOSAxOC4xLTEwMS4zLTEwOCAyNTIuOSAxMjYuNi0zMS41LTM4IDEyNC40IDc0LjQtMTQzLjMtOTkgMTguNyAzOC40LTQ5LjYtMTguMS00NS41LTg0LjMgMTk0LjYgMTIyLTQyLjktNTUuOCAxMDggOTYuNCAxMi04LjktMjEtMTYuNCA0LjItMzcuOCAzNy44LTEwLjQgMjkuMiAyNC43IDExLjUgNC4yLTcgNi4yIDguNSAxMi0xMy4xIDcuNC0xMC4zIDIwLjIgMTAuNSAyMy45eiJdfSxndXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0YnVja2V0IixpY29uOls1MTIsNTEyLFs2MTgxMF0sImYxNzEiLCJNMjIuMiAzMmMtMi4xIDAtNC4yIC40LTYuMSAxLjFzLTMuNyAxLjktNS4yIDMuNC0yLjcgMy4yLTMuNSA1LjEtMS4zIDQtMS4zIDYuMWMwIC45IC4xIDEuOSAuMiAyLjhMNzQuMSA0NjIuN2MuOCA1LjEgMy40IDkuNyA3LjMgMTNzOC44IDUuMiAxNCA1LjJsMzI1LjcgMGMzLjggLjEgNy41LTEuMyAxMC41LTMuN3M0LjktNS45IDUuNS05LjdMNTA1IDUwLjdjLjctNC4yLS4zLTguNC0yLjgtMTEuOXMtNi4yLTUuNy0xMC40LTYuNGMtLjktLjEtMS45LS4yLTIuOC0uMkwyMi4yIDMyek0zMDguMSAzMjkuOGwtMTA0IDAtMjguMS0xNDcgMTU3LjMgMC0yNS4yIDE0N3oiXX0sYnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZrIixpY29uOls0NDgsNTEyLFtdLCJmMTg5IiwiTTMxLjUgNjMuNUMwIDk1IDAgMTQ1LjcgMCAyNDdMMCAyNjVDMCAzNjYuMyAwIDQxNyAzMS41IDQ0OC41UzExMy43IDQ4MCAyMTUgNDgwbDE3LjkgMGMxMDEuNCAwIDE1Mi4xIDAgMTgzLjUtMzEuNVM0NDggMzY2LjMgNDQ4IDI2NWwwLTE3LjljMC0xMDEuNCAwLTE1Mi4xLTMxLjUtMTgzLjVTMzM0LjMgMzIgMjMzIDMyTDIxNSAzMkMxMTMuNyAzMiA2MyAzMiAzMS41IDYzLjV6TTc1LjYgMTY4LjNsNTEuMSAwYzEuNyA4NS41IDM5LjQgMTIxLjcgNjkuMyAxMjkuMmwwLTEyOS4yIDQ4LjIgMCAwIDczLjdjMjkuNS0zLjIgNjAuNS0zNi44IDcwLjktNzMuN2w0OC4yIDBjLTMuOSAxOS4yLTExLjggMzcuMy0yMy4xIDUzLjNzLTI1LjcgMjkuNS00Mi41IDM5LjZjMTguNyA5LjMgMzUuMiAyMi40IDQ4LjQgMzguNXMyMi45IDM0LjkgMjguMyA1NWwtNTMgMGMtNC45LTE3LjUtMTQuOC0zMy4xLTI4LjYtNDVzLTMwLjctMTkuNC00OC43LTIxLjZsMCA2Ni42LTUuOCAwYy0xMDIuMSAwLTE2MC4zLTcwLTE2Mi44LTE4Ni41eiJdfSx4dXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViIixpY29uOls1MTIsNTEyLFtdLCJmMDliIiwiTTE3My45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zIC4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUgLjMtNi4yIDIuM3ptNDQuMi0xLjdjLTIuOSAuNy00LjkgMi42LTQuNiA0LjkgLjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjUyLjggOGMtMTM4LjcgMC0yNDQuOCAxMDUuMy0yNDQuOCAyNDQgMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xIDEwMC0zMy4yIDE2Ny44LTEyOC4xIDE2Ny44LTIzOSAwLTEzOC43LTExMi41LTI0NC0yNTEuMi0yNDR6TTEwNS4yIDM1Mi45Yy0xLjMgMS0xIDMuMyAuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zIC4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNiAuNyA0LjMtLjcgLjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMyAuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMgLjctNC4zLTEuMy02LjItMi4yLTIuMy01LjItMi42LTYuNS0xem0tMTEuNC0xNC43Yy0xLjYgMS0xLjYgMy42IDAgNS45czQuMyAzLjMgNS42IDIuM2MxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnoiXX0sdnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGllcGllIixpY29uOls1MTIsNTEyLFtdLCJmMjg0IiwiTTQ0Mi41IDIwMi45YzMwLjcgMCAzMy41IDUzLjEtLjMgNTMuMWwtMTAuOCAwIDAgNDQuMy0yNi42IDAgMC05Ny40IDM3LjcgMHpNNDkyIDM1Mi42QzQ0OS45IDQ0NC41IDM3MC40IDUwNCAyNjggNTA0IDEzMSA1MDQgMjAgMzkzIDIwIDI1NlMxMzEgOCAyNjggOGM5Ny40IDAgMTcyLjggNTMuNyAyMTguMiAxMzguNEwzMDAuMiAyNTUuMiA0OTIgMzUyLjZ6bS0zOC41IDEyLjVsLTYwLjMtMzAuN2MtMjcuMSA0NC4zLTcwLjQgNzEuNC0xMjIuNCA3MS40LTgyLjUgMC0xNDkuMi02Ni43LTE0OS4yLTE0OC45IDAtODIuNSA2Ni43LTE0OS4yIDE0OS4yLTE0OS4yIDQ4LjQgMCA4OC45IDIzLjUgMTE2LjkgNjMuNGw1OS41LTM0LjZDNDA2LjUgNzMuOSAzNDIuNSAzNi41IDI2OCAzNi41IDE0Ni44IDM2LjUgNDguNSAxMzQuOCA0OC41IDI1NlMxNDYuOCA0NzUuNSAyNjggNDc1LjVjNzguNiAwIDE0Ni41LTQyLjEgMTg1LjUtMTEwLjR6Il19LHl1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmFlIiwiTTQ0MC4yIDIzLjJjLTI2LjcgNi44LTY4LjEgMjguNS0xMTQuNiA2Ny41LTMwLjktMTcuNS02NS44LTI2LjctMTAxLjQtMjYuNy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOCAyMDgtOTMuMSAyMDgtMjA4Yy4xLTU0LjEtMjEtMTA2LjEtNTguNy0xNDQuOC02LjYgOC41LTEyLjMgMTcuNy0xNyAyNy40IDI4LjkgMzIuMyA0NC44IDc0LjEgNDQuOSAxMTcuNCAwIDk3LjctNzkuNCAxNzcuMS0xNzcuMSAxNzcuMS0zMC44IDAtNjEtOC4xLTg3LjYtMjMuNCA4Mi45LTEwNy4zIDE1MC44LTM3LjggMTg0LjMtMjI2LjYgNS44LTMyLjYgMjgtOTQuMyAxMjYuMi0xNjAuMiA4LjEtNS40IDIuNC0xOC4xLTctMTUuN3pNMTA5LjMgNDA2LjRDODkuOCAzODkuOCA3NC4yIDM2OS4yIDYzLjUgMzQ2cy0xNi4zLTQ4LjUtMTYuMy03NGMwLTk3LjcgNzkuNC0xNzcuMSAxNzcuMS0xNzcuMSAyNi42IDAgNTIuOCA2LjEgNzYuNiAxNy44LTY2IDYyLjEtMTI2LjkgMTUyLjktMTkxLjYgMjkzLjh6Il19LHd1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXNwYmVycnktcGkiLGljb246WzQ0OCw1MTIsW10sImY3YmIiLCJNMzkyLjUgMjMyLjVsLTMuNy02LjVjLjEtNDYuNC0yMS40LTY1LjMtNDYuNS03OS43IDcuNi0yIDE1LjQtMy42IDE3LjYtMTMuMiAxMy4xLTMuMyAxNS44LTkuNCAxNy4xLTE1LjggMy40LTIuMyAxNC44LTguNyAxMy42LTE5LjcgNi40LTQuNCAxMC0xMC4xIDguMS0xOC4xIDYuOS03LjUgOC43LTEzLjcgNS44LTE5LjQgOC4zLTEwLjMgNC42LTE1LjYgMS4xLTIwLjkgNi4yLTExLjIgLjctMjMuMi0xNi42LTIxLjItNi45LTEwLjEtMjEuOS03LjgtMjQuMi03LjgtMi42LTMuMi02LTYtMTYuNS00LjctNi44LTYuMS0xNC40LTUtMjIuMy0yLjEtOS4zLTcuMy0xNS41LTEuNC0yMi42IC44LTExLjMtMy42LTEzLjkgMS4zLTE5LjQgMy40LTEyLjMtMi42LTE2LjEgMy0yMiA4LjlsLTYuOS0uMWMtMTguNiAxMC44LTI3LjggMzIuOC0zMS4xIDQ0LjEtMy4zLTExLjMtMTIuNS0zMy4zLTMxLjEtNDQuMWwtNi45IC4xYy01LjktNS45LTkuNy0xMS41LTIyLTguOS01LjYtMi04LjEtNy0xOS40LTMuNC00LjYtMS40LTguOS00LjQtMTMuOS00LjMtMi42IC4xLTUuNSAxLTguNyAzLjUtNy45LTMtMTUuNS00LTIyLjMgMi4xLTEwLjUtMS4zLTE0IDEuNC0xNi41IDQuNy0yLjMgMC0xNy4zLTIuMy0yNC4yIDcuOC0xNy4zLTItMjIuNyAxMC0xNi41IDIxLjItMy41IDUuNC03LjIgMTAuNyAxLjEgMjAuOS0yLjkgNS43LTEuMSAxMS45IDUuOCAxOS40LTEuOCA4IDEuOCAxMy43IDguMSAxOC4xLTEuMiAxMSAxMC4yIDE3LjQgMTMuNiAxOS43IDEuMyA2LjQgNCAxMi40IDE3LjEgMTUuOCAyLjIgOS41IDEwIDExLjIgMTcuNiAxMy4yLTI1LjEgMTQuNC00Ni42IDMzLjMtNDYuNSA3OS43bC0zLjcgNi41Yy0yOC44IDE3LjItNTQuNyA3Mi43LTE0LjIgMTE3LjcgMi42IDE0LjEgNy4xIDI0LjIgMTEgMzUuNCA1LjkgNDUuMiA0NC41IDY2LjMgNTQuNiA2OC44IDE0LjkgMTEuMiAzMC44IDIxLjggNTIuMiAyOS4yIDIwLjMgMjAuNiA0Mi4zIDI4LjQgNjQuMyAyOC40bDEgMGMyMi4xIDAgNDQtNy44IDY0LjItMjguNCAyMS41LTcuNCAzNy4zLTE4IDUyLjItMjkuMiAxMC4yLTIuNSA0OC43LTIzLjYgNTQuNi02OC44IDMuOS0xMS4yIDguNC0yMS4zIDExLTM1LjQgNDAuNi00NS4xIDE0LjctMTAwLjUtMTQtMTE3Ljd6bS0yMi4yLThjLTEuNSAxOC43LTk4LjktNjUuMS04Mi4xLTY3LjkgNDUuNy03LjUgODMuNiAxOS4yIDgyLjEgNjcuOXptLTQzIDkzLjFjLTI0LjUgMTUuOC01OS44IDUuNi03OC44LTIyLjhzLTE0LjYtNjQuMiA5LjktODAgNTkuOC01LjYgNzguOCAyMi44IDE0LjYgNjQuMi05LjkgODB6TTI1OS40IDI5LjNjLjggNC4yIDEuOCA2LjggMi45IDcuNiA1LjQtNS44IDkuOC0xMS43IDE2LjgtMTcuMyAwIDMuMy0xLjcgNi44IDIuNSA5LjQgMy43LTUgOC44LTkuNSAxNS41LTEzLjMtMy4yIDUuNi0uNiA3LjMgMS4yIDkuNiA1LjEtNC40IDEwLTguOCAxOS40LTEyLjMtMi42IDMuMS02LjIgNi4yLTIuNCA5LjggNS4zLTMuMyAxMC42LTYuNiAyMy4xLTguOS0yLjggMy4xLTguNyA2LjMtNS4xIDkuNCA2LjYtMi41IDE0LTQuNCAyMi4xLTUuNC0zLjkgMy4yLTcuMSA2LjMtMy45IDguOCA3LjEtMi4yIDE2LjktNS4xIDI2LjQtMi42bC02IDYuMWMtLjcgLjggMTQuMSAuNiAyMy45IC44LTMuNiA1LTcuMiA5LjctOS4zIDE4LjIgMSAxIDUuOCAuNCAxMC40IDAtNC43IDkuOS0xMi44IDEyLjMtMTQuNyAxNi42IDIuOSAyLjIgNi44IDEuNiAxMS4yIC4xLTMuNCA2LjktMTAuNCAxMS43LTE2IDE3LjMgMS40IDEgMy45IDEuNiA5LjcgLjktNS4yIDUuNS0xMS40IDEwLjUtMTguOCAxNSAxLjMgMS41IDUuOCAxLjUgMTAgMS42LTYuNyA2LjUtMTUuMyA5LjktMjMuNCAxNC4yIDQgMi43IDYuOSAyLjEgMTAgMi4xLTUuNyA0LjctMTUuNCA3LjEtMjQuNCAxMCAxLjcgMi43IDMuNCAzLjQgNy4xIDQuMS05LjUgNS4zLTIzLjIgMi45LTI3IDUuNiAuOSAyLjcgMy42IDQuNCA2LjcgNS44LTE1LjQgLjktNTcuMy0uNi02NS40LTMyLjMgMTUuNy0xNy4zIDQ0LjQtMzcuNSA5My43LTYyLjYtMzguNCAxMi44LTczIDMwLTEwMiA1My41LTM0LjMtMTUuOS0xMC44LTU1LjkgNS44LTcxLjh6TTIyNSAxNDMuOWMyNC4yLS4zIDU0LjEgMTcuOCA1NCAzNC43LS4xIDE1LTIxIDI3LjEtNTMuOCAyNi45LTMyLjEtLjQtNTMuNy0xNS4yLTUzLjYtMjkuOCAwLTExLjkgMjYuMi0zMi41IDUzLjQtMzEuOHpNMTAyIDEzMS4xYzMuNy0uNyA1LjQtMS41IDcuMS00LjEtOS0yLjgtMTguNy01LjMtMjQuNC0xMCAzLjEgMCA2IC43IDEwLTIuMS04LjEtNC4zLTE2LjctNy43LTIzLjQtMTQuMiA0LjItLjEgOC43IDAgMTAtMS42LTcuNC00LjUtMTMuNi05LjUtMTguOC0xNSA1LjggLjcgOC4zIC4xIDkuNy0uOS01LjYtNS42LTEyLjctMTAuNC0xNi0xNy4zIDQuMyAxLjUgOC4zIDIgMTEuMi0uMS0xLjktNC4yLTEwLTYuNy0xNC43LTE2LjYgNC42IC40IDkuNCAxIDEwLjQgMC0yLjEtOC41LTUuOC0xMy4zLTkuMy0xOC4yIDkuOC0uMSAyNC42IDAgMjMuOS0uOGwtNi02LjFjOS41LTIuNSAxOS4zIC40IDI2LjQgMi42IDMuMi0yLjUtLjEtNS42LTMuOS04LjggOC4xIDEuMSAxNS40IDIuOSAyMi4xIDUuNCAzLjUtMy4xLTIuMy02LjMtNS4xLTkuNCAxMi41IDIuMyAxNy44IDUuNiAyMy4xIDguOSAzLjgtMy42IC4yLTYuNy0yLjQtOS44IDkuNCAzLjQgMTQuMyA3LjkgMTkuNCAxMi4zIDEuNy0yLjMgNC40LTQgMS4yLTkuNiA2LjcgMy44IDExLjggOC4zIDE1LjUgMTMuMyA0LjEtMi42IDIuNS02LjIgMi41LTkuNCA3IDUuNiAxMS40IDExLjUgMTYuOCAxNy4zIDEuMS0uOCAyLTMuNCAyLjktNy42IDE2LjYgMTUuOSA0MC4xIDU1LjkgNiA3MS44LTI5LTIzLjUtNjMuNi00MC43LTEwMi01My41IDQ5LjMgMjUgNzggNDUuMyA5My43IDYyLjYtOCAzMS44LTUwIDMzLjItNjUuNCAzMi4zIDMuMS0xLjQgNS44LTMuMiA2LjctNS44LTQtMi44LTE3LjYtLjQtMjcuMi01LjZ6bTYwLjEgMjQuMWMxNi44IDIuOC04MC42IDg2LjUtODIuMSA2Ny45LTEuNS00OC43IDM2LjUtNzUuNSA4Mi4xLTY3Ljl6TTU4LjcgMzQyYy0yMy43LTE4LjgtMzEuMy03My43IDEyLjYtOTguMyAyNi41LTcgOSAxMDcuOC0xMi42IDk4LjN6bTkxIDk4LjJjLTEzLjMgNy45LTQ1LjggNC43LTY4LjgtMjcuOS0xNS41LTI3LjQtMTMuNS01NS4yLTIuNi02My40IDE2LjMtOS44IDQxLjUgMy40IDYwLjkgMjUuNiAxNi45IDIwIDI0LjYgNTUuMyAxMC41IDY1Ljd6TTEyMy4zIDMyMC41Yy0yNC41LTE1LjgtMjguOS01MS42LTkuOS04MHM1NC4zLTM4LjYgNzguOC0yMi44IDI4LjkgNTEuNiA5LjkgODBjLTE5LjEgMjguNC01NC40IDM4LjYtNzguOCAyMi44ek0yMjUuNSA0OTZjLTI5LjQgMS4yLTU4LjItMjMuNy01Ny44LTMyLjMtLjQtMTIuNyAzNS44LTIyLjYgNTkuMy0yMiAyMy43LTEgNTUuNiA3LjUgNTUuNyAxOC45IC41IDExLTI4LjggMzUuOS01Ny4yIDM1LjR6bTU4LjktMTI0LjljLjIgMjkuNy0yNi4yIDUzLjgtNTguOCA1NHMtNTkuMi0yMy44LTU5LjQtNTMuNGwwLS42Yy0uMi0yOS43IDI2LjItNTMuOCA1OC44LTU0czU5LjIgMjMuOCA1OS40IDUzLjRsMCAuNnptODIuMiA0Mi43Yy0yNS4zIDM0LjYtNTkuNiAzNS45LTcyLjMgMjYuMy0xMy4zLTEyLjQtMy4yLTUwLjkgMTUuMS03MiAyMC45LTIzLjMgNDMuMy0zOC41IDU4LjktMjYuNiAxMC41IDEwLjMgMTYuNyA0OS4xLTEuNyA3Mi4zem0yMi45LTczLjJjLTIxLjUgOS40LTM5LTEwNS4zLTEyLjYtOTguMyA0My45IDI0LjcgMzYuMyA3OS42IDEyLjYgOTguM3oiXX0sa3VyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMiLGljb246WzUxMiw1MTIsW10sImYxM2MiLCJNNDgwIDMybC02NCAzNjgtMjIzLjMgODAtMTkyLjctODAgMTkuNi05NC44IDgyIDAtOCA0MC42IDExNi40IDQ0LjQgMTM0LjEtNDQuNCAxOC44LTk3LjEtMzMzLjQgMCAxNi04MiAzMzMuNyAwIDEwLjUtNTIuNy0zMzMuNCAwIDE2LjMtODIgNDA3LjQgMHoiXX0sU3VyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1YnNwb3QiLGljb246WzQ0OCw1MTIsW10sImYzYjIiLCJNMjM1LjggMjExLjZjLTI1LjEgMjMuNy00MC44IDU3LjMtNDAuOCA5NC42IDAgMjkuMyA5LjcgNTYuMyAyNiA3OEwxNzEuNSA0MzRjLTQuNC0xLjYtOS4xLTIuNS0xNC0yLjUtMTAuOCAwLTIwLjkgNC4yLTI4LjUgMTEuOHMtMTEuOCAxNy44LTExLjggMjguNiA0LjIgMjAuOSAxMS44IDI4LjUgMTcuOCAxMS42IDI4LjUgMTEuNmMxMC44IDAgMjAuOS0zLjkgMjguNi0xMS42IDcuNi03LjYgMTEuOC0xNy44IDExLjgtMjguNSAwLTQuMi0uNi04LjItMS45LTEyLjFsNTAtNTAuMmMyMiAxNi45IDQ5LjQgMjYuOSA3OS4zIDI2LjkgNzEuOSAwIDEzMC01OC4zIDEzMC0xMzAuMiAwLTY1LjItNDcuNy0xMTkuMi0xMTAuMi0xMjguN2wwLTYxLjZjMTcuNS03LjQgMjguMi0yMy44IDI4LjItNDIuOSAwLTI2LjEtMjAuOS00Ny45LTQ3LTQ3LjlTMjc5LjYgNDcgMjc5LjYgNzMuMWMwIDE5LjEgMTAuNyAzNS41IDI4LjIgNDIuOWwwIDYxLjJjLTE1LjIgMi4xLTI5LjYgNi43LTQyLjcgMTMuNi0yNy42LTIwLjktMTE3LjUtODUuNy0xNjguOS0xMjQuOCAxLjItNC40IDItOSAyLTEzLjggMC0yOC44LTIzLjUtNTIuMi01Mi40LTUyLjItMjguOCAwLTUyLjIgMjMuNC01Mi4yIDUyLjIgMCAyOC45IDIzLjQgNTIuMyA1Mi4yIDUyLjMgOS44IDAgMTguOS0yLjkgMjYuOC03LjZMMjM1LjggMjExLjZ6bTg5LjUgMjUuNmE2OSA2OSAwIDEgMSAwIDEzOCA2OSA2OSAwIDEgMSAwLTEzOHoiXX0sTXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNtcGxpZCIsaWNvbjpbNjQwLDUxMixbXSwiZTM2MCIsIk0yMjYuMSAzODguMmMwLS43LS4yLTEuNS0uNi0yLjFzLTEtMS4xLTEuNy0xLjRjLS41LS4yLTEuMS0uNC0xLjYtLjRsLTE0OS42IDBjLTMuMSAwLTYuMi0uOC04LjktMi4ycy01LjEtMy41LTYuOS02LjEtMi45LTUuNS0zLjMtOC42IDAtNi4yIDEuMS05LjFMODEuNiAyNTUuN2MyLTcuMiA2LjItMTMuNSAxMi0xOC4yczEyLjktNy40IDIwLjQtNy44bDE0OC42IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuNC0xIC4zLTItLjEtMi45cy0xLjItMS42LTIuMS0yYy0uNC0uMi0uOS0uMy0xLjQtLjMtLjEgMC0uMSAwLS4yIDBsLTE0OC41IDBjLTIyLjIgMS4yLTQzLjQgOS4yLTYwLjggMjNzLTMwIDMyLjctMzYuMiA1NC4xTDMuNSAzNTguOGMtMy4yIDguNy00LjIgMTgtMyAyNy4xczQuNiAxNy45IDkuOSAyNS41IDEyLjMgMTMuOCAyMC41IDE4IDE3LjMgNi41IDI2LjUgNi42YzEgMCAxLjkgMCAyLjktLjFsMTQ4LjYgMGMxLjUtLjEgMi45LS43IDQtMS42czItMi4yIDIuNC0zLjZsMTAuNy00MS4xYy4yLS41IC4zLS45IC4zLTEuNHptODAuNS0zMDdjLjItLjQgLjMtLjkgLjMtMS40IDAtLjUtLjEtMS0uMy0xLjVzLS41LS45LS44LTEuMi0uOC0uNi0xLjItLjgtMS0uMy0xLjUtLjNsLTQxLjIgMGMtMS41IC4xLTIuOSAuNi00IDEuNnMtMiAyLjItMi40IDMuNmwtMjEuMyA4MC45IDUxLjEgMCAyMS40LTgwLjl6bS0xMjYuMyAyODdsNTEuMSAwIDMyLTEyMi42LTUxLjEgMC0zMiAxMjIuNnpNNTExLjkgNzkuN2MwLTEtLjUtMS45LTEuMi0yLjZzLTEuNy0xLjEtMi42LTEuMWMtLjEgMC0uMSAwLS4yIDBsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNC4xIDEuNXMtMiAyLjItMi41IDMuNkwzNjguOSA0MzAuNmMtLjIgLjQtLjMgLjktLjMgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjIgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNTExLjUgODEuMmMuMi0uNSAuMy0xIC4zLTEuNXpNMzI0LjYgMzg0LjVsLTQxIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjcgNDEuMWMtLjIgLjQtLjMgLjktLjMgMS40IDAgLjUgLjEgMSAuMyAxLjVzLjUgLjkgLjggMS4yIC44IC42IDEuMiAuOCAxIC4zIDEuNSAuM2MuMSAwIC4yIDAgLjMgMGw0MC45IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuMi0uNiAuMy0xLjIgLjMtMS44cy0uMy0xLjItLjYtMS43LS44LS45LTEuMy0xLjItMS4yLS40LTEuOC0uNGMtLjEgMC0uMiAwLS4zIDBsMCAwek02MzYgNzYuMWwtNDEgMGMtMS41IC4xLTIuOSAuNi00IDEuNXMtMiAyLjItMi40IDMuNkw0OTcuMSA0MzAuNmMtLjIgLjQtLjIgLjktLjIgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNjM5LjcgODEuMmMuMi0uNSAuMy0xIC4zLTEuNS0uMS0xLS41LTEuOS0xLjItMi41cy0xLjYtMS0yLjYtMWMtLjEgMC0uMSAwLS4yIDBsMC0uMXpNMzcxLjYgMjI1LjJsMTAuOC00MS4xYy4yLS40IC4yLS45IC4yLTEuNCAwLTEtLjQtMi0xLjEtMi43cy0xLjctMS4xLTIuNy0xLjFsLTQxLjMgMGMtMS41IC4xLTIuOSAuNy00IDEuNnMtMiAyLjItMi40IDMuNmwtMTAuOCA0MS4xYy0uMiAuNS0uMyAxLS4zIDEuNWwwIC4yYy4xIDEgLjUgMS44IDEuMiAyLjVzMS42IDEgMi42IDFjLjEgMCAuMiAwIC4zIDBsNDEuMSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNnoiXX0sQ3VyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR5YWxvZyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5OSIsIk0xNiAzMmwwIDExOS4yIDY0IDAgMC01NS4yIDEwNy4yIDBDMzAwLjYgOTYgMzY4IDE3Ni4yIDM2OCAyNTUuOSAzNjggMzMyIDMwOS40IDQxNiAxODcuMiA0MTZsLTE3MS4yIDAgMCA2NCAxNzEuMiAwQzM0Ny45IDQ4MCA0MzIgMzY3LjMgNDMyIDI1NS45IDQzMiAxOTcuMiA0MDkuOSAxNDIuNSAzNjkuNyAxMDEuNiAzMjQuOSA1NiAyNjEuNyAzMiAxODcuMiAzMkwxNiAzMnoiXX0senVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsZW1lbnRvciIsaWNvbjpbNTEyLDUxMixbXSwiZjQzMCIsIk0uNSAyNTZjMCAxNDEgMTEzLjYgMjU1IDI1NC42IDI1NSAxNDIgMCAyNTYtMTE0IDI1Ni0yNTUgMC0xNDAtMTE0LTI1My45LTI1Ni0yNTMuOS0xNDEgMC0yNTQuNiAxMTMuOS0yNTQuNiAyNTMuOXpNMTkyLjEgMTUwbDAgMjEzLTQzIDAgMC0yMTMgNDMgMHptNDIgMGwxMjggMCAwIDQzLTEyOCAwIDAtNDN6bTEyOCA4NWwwIDQzLTEyOCAwIDAtNDMgMTI4IDB6bS0xMjggODVsMTI4IDAgMCA0My0xMjggMCAwLTQzeiJdfSxfdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImYyYjAiLCJNMTMuMyAyMjkuMmMuMS0uMSAuMi0uMyAuMy0uNCAwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIyNC40IDk2LjZjLTcuMSAwLTE0LjYgLjYtMjEuNCAxLjdsMy43IDY3LjQtMjItNjRjLTE0LjMgMy43LTI3LjcgOS40LTQwIDE2LjZsMjkuNCA2MS40LTQ1LjEtNTAuOWMtMTEuNCA4LjktMjEuNyAxOS4xLTMwLjYgMzAuOWw1MC42IDQ1LjQtNjEuMS0yOS43Yy03LjEgMTIuMy0xMi45IDI1LjctMTYuNiA0MGw2NC4zIDIyLjYtNjgtNGMtLjkgNy4xLTEuNCAxNC42LTEuNCAyMnMuNiAxNC42IDEuNCAyMS43bDY3LjctNC02NCAyMi42YzMuNyAxNC4zIDkuNCAyNy43IDE2LjYgNDAuM0wxNDkgMzA2LjkgOTguMSAzNTJjOC45IDExLjcgMTkuMSAyMi4zIDMwLjkgMzAuOWw0NC45LTUwLjktMjkuNSA2MS40YzEyLjMgNy40IDI1LjcgMTMuMSA0MCAxNi45bDIyLjMtNjQuNi00IDY4YzcuMSAxLjEgMTQuNiAxLjcgMjEuNyAxLjcgNy40IDAgMTQuNi0uNiAyMS43LTEuN2wtNC02OC42IDIyLjYgNjUuMWMxNC4zLTQgMjcuNy05LjQgNDAtMTYuOWwtMjkuNC02MS4zIDQ0LjkgNTAuOWMxMS43LTguOSAyMi0xOS4xIDMwLjYtMzAuOWwtNTAuNi00NS4xIDYxLjEgMjkuNGM3LjEtMTIuMyAxMi45LTI1LjcgMTYuNi00MC4zbC02NC0yMi4zIDY3LjQgNGMxLjEtNy4xIDEuNC0xNC4zIDEuNC0yMS43cy0uMy0xNC45LTEuNC0yMmwtNjcuNyA0IDY0LTIyLjNjLTMuNy0xNC4zLTkuMS0yOC0xNi42LTQwLjNsLTYwLjkgMjkuNyA1MC42LTQ1LjRjLTguOS0xMS43LTE5LjEtMjItMzAuNi0zMC45bC00NS4xIDUwLjkgMjkuNC02MS4xYy0xMi4zLTcuNC0yNS43LTEzLjEtNDAtMTYuOWwtMjIuMyA2NC4zIDQtNjcuN2MtNy4xLTEuMi0xNC4zLTEuNy0yMS43LTEuN3pNNDQzLjggMTI4TDQ0My44IDM4NCAyMjQuNCA1MTIgNSAzODQgNSAxMjggMjI0LjQgMCA0NDMuOCAxMjh6bS0xNy4xIDEwLjNsLTIwMi4zLTExNy40LTIwMi4zIDExNy40IDAgMjM1LjEgMjAyLjMgMTE3LjcgMjAyLjMtMTE3LjcgMC0yMzUuMXpNMjI0LjQgMzcuMWwxODcuNyAxMDkuNCAwIDIxOC45LTE4Ny43IDEwOS41LTE4Ny43LTEwOS41IDAtMjE4LjggMTg3LjctMTA5LjV6bTAgNTAuOWMtOTIuMyAwLTE2Ni45IDc1LjEtMTY2LjkgMTY4IDAgOTIuNiA3NC42IDE2Ny43IDE2Ni45IDE2Ny43IDkyIDAgMTY2LjktNzUuMSAxNjYuOS0xNjcuNyAwLTkyLjktNzQuOS0xNjgtMTY2LjktMTY4eiJdfSxUdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJpYmJibGUiLGljb246WzUxMiw1MTIsW10sImYxN2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MjAgMTIyLjRjMjkuNSAzNiA0Ny40IDgyIDQ3LjggMTMyLTctMS41LTc3LTE1LjctMTQ3LjUtNi44LTUuOC0xNC0xMS4yLTI2LjQtMTguNi00MS42IDc4LjMtMzIgMTEzLjgtNzcuNSAxMTguMy04My41ek0zOTYuNCA5Ny45Yy0zLjggNS40LTM1LjcgNDguMy0xMTEgNzYuNS0zNC43LTYzLjgtNzMuMi0xMTYuMi03OS0xMjQgNjcuMi0xNi4yIDEzOCAxLjMgMTkwLjEgNDcuNXpNMTY1LjkgNjQuNmM1LjYgNy43IDQzLjQgNjAuMSA3OC41IDEyMi41LTk5LjEgMjYuMy0xODYuNCAyNS45LTE5NS44IDI1LjggMTMuNy02NS43IDU4LTEyMC40IDExNy4zLTE0OC4zek00NC4yIDI1Ni4zYzAtMi4yIDAtNC4zIC4xLTYuNSA5LjMgLjIgMTExLjkgMS41IDIxNy43LTMwLjEgNi4xIDExLjkgMTEuOSAyMy45IDE3LjIgMzUuOS03Ni42IDIxLjYtMTQ2LjIgODMuNS0xODAuNSAxNDIuMy0zMy44LTM3LjYtNTQuNS04Ny4yLTU0LjUtMTQxLjZ6TTEyNiA0MjMuNGMyMi4xLTQ1LjIgODIuMi0xMDMuNiAxNjcuNi0xMzIuOCAyOS43IDc3LjMgNDIgMTQyLjEgNDUuMiAxNjAuNi02OC4xIDI5LTE1MCAyMS4xLTIxMi44LTI3Ljl6bTI0OC40IDguNWMtMi4yLTEyLjktMTMuNC03NC45LTQxLjItMTUxIDY2LjQtMTAuNiAxMjQuNyA2LjggMTMxLjkgOS4xLTkuNCA1OC45LTQzLjMgMTA5LjgtOTAuOCAxNDJ6Il19LFozZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjA4YyIsIk00MTYgMzJMMzEuOSAzMkMxNC4zIDMyIDAgNDYuNSAwIDY0LjNMMCA0NDcuN0MwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwTDQxNiA0ODBjMTcuNiAwIDMyLTE0LjUgMzItMzIuM2wwLTM4My40QzQ0OCA0Ni41IDQzMy42IDMyIDQxNiAzMnpNMTM1LjQgNDE2bC02Ni40IDAgMC0yMTMuOCA2Ni41IDAgMCAyMTMuOC0uMSAwek0xMDIuMiA5NmEzOC41IDM4LjUgMCAxIDEgMCA3NyAzOC41IDM4LjUgMCAxIDEgMC03N3pNMzg0LjMgNDE2bC02Ni40IDAgMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yeiJdfSxMdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtcGF5cGFsIixpY29uOls1NzYsNTEyLFtdLCJmMWY0IiwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43bC00LjcgMGMtMS41IDAtMyAxLTMuMiAyLjdsLTQuMyAyNi43IDguMi0uM2MxMSAwIDE5LjUtMS41IDIxLjUtMTQuMiAyLjMtMTMuNC02LjItMTQuOS0xNy41LTE0Ljl6bTI4NCAwbC00LjUgMGMtMS44IDAtMyAxLTMuMiAyLjdsLTQuMiAyNi43IDgtLjNjMTMgMCAyMi0zIDIyLTE4LS4xLTEwLjYtOS42LTExLjEtMTguMS0xMS4xek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtNDAgMGMtMi41IDAtNSAyLTUuMiA0LjdMMzIgMjk0LjJjLS4zIDIgMS4yIDQgMy4yIDRsMTkgMGMyLjcgMCA1LjItMi45IDUuNS01LjdsNC41LTI2LjZjMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjYgMCA0Ni4xLTE3IDQ2LjEtNDUuOHptODQuMiA4LjhsLTE5IDBjLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0bDE3LjIgMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45ek0yNTMgMzIyLjFsNjMuNy05Mi42Yy41LS41IC41LTEgLjUtMS43IDAtMS43LTEuNS0zLjUtMy4yLTMuNWwtMTkuMiAwYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRsLTE4LjcgMGMtMS43IDAtMy4yIDEuOC0zLjIgMy41IDAgMS4yIDE5LjUgNTYuOCAyMS4yIDYyLjEtMi43IDMuOC0yMC41IDI4LjYtMjAuNSAzMS42IDAgMS44IDEuNSAzLjIgMy4yIDMuMmwxOS4yIDBjMS44LS4xIDMuNS0xLjEgNC41LTIuNnpNNDEyLjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhsLTM5LjcgMGMtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRsMjAuNSAwYzIgMCAzLjUtMS41IDQtMy4ybDQuNS0yOWMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNCAwIDQ1LjktMTcgNDUuOS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4zIDguMi01LjUtOC41LTE0LTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOS4zIDAgMjAuNS00LjkgMjYuNS0xMS45LS4zIDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMyAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTU0NCAxOTAuOWMwLTItMS41LTMuNS0zLjItMy41bC0xOC41IDBjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zIC41YzAgMS44IDEuNSAzLjUgMy41IDMuNWwxNi41IDBjMi41IDAgNS0yLjkgNS4yLTUuN2wxNi4yLTEwMS4yIDAtLjN6bS05MCA1MS44Yy0xMi4yIDAtMjEuNyA5LjctMjEuNyAyMiAwIDkuNyA3IDE1IDE2LjIgMTUgMTIgMCAyMS43LTkuMiAyMS43LTIxLjUgLjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXoiXX0sRHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRobCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5MCIsIk0yMzggMzAxLjJsNTguNyAwIDIyLjMtMzAuMi01OC43IDAtMjIuMyAzMC4yek0wIDI4Mi45bDAgNi40IDgxLjggMCA0LjctNi40LTg2LjUgMHpNMTcyLjkgMjcxYy04LjcgMC02LTMuNi00LjYtNS41IDIuOC0zLjggNy42LTEwLjQgMTAuNC0xNC4xczIuOC01LjktMi44LTUuOWwtNTEgMC00MS4xIDU1LjggMTAwLjEgMGMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2wtNjguMiAwem0zMTcuNS02LjlsMzkuMy01My40LTYyLjIgMC0zOS4zIDUzLjQgNjIuMiAwek05NS4zIDI3MWwtOTUuMyAwIDAgNi40IDkwLjYgMCA0LjctNi40em0xMTEtMjYuNmMtMi44IDMuOC03LjUgMTAuNC0xMC4zIDE0LjItMS40IDItNC4xIDUuNSA0LjYgNS41bDQ1LjYgMHM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40IC43LTM1LTI5LjItMzVsLTExNy45IDAtMjAuNCAyNy44IDExMS40IDBjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4ybDczLjEgMCA0LjctNi40LTc3LjggMCAwIDYuNHptMzIzIDBsNTguNyAwIDIyLjMtMzAuMi01OC43IDBjLS4xIDAtMjIuMyAzMC4yLTIyLjMgMzAuMnptMjIyIC4xbDk1IDAgMC02LjQtOTAuMyAwLTQuNyA2LjR6TTU2Ny4zIDI3MWwtNC43IDYuNCA3Ny40IDAgMC02LjQtNzIuNyAwem0tMTMuNSAxOC4zbDg2LjIgMCAwLTYuNC04MS41IDAtNC43IDYuNHpNMzg5LjYgMjEwLjdsLTIyLjUgMzAuNi0yNi4yIDAgMjIuNS0zMC42LTU4LjcgMC0zOS4zIDUzLjQgMTQzLjYgMCAzOS4zLTUzLjQtNTguNyAwek00MjMuMSAyNzFzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42bDk0LjMgMCAyMi4zLTMwLjMtMTMzLjQgMHoiXX0sJHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRleCIsaWNvbjpbNjQwLDUxMixbXSwiZTdmZiIsIk02MjAuOCA5NS40Yy0zMC44IC40LTQyLjEgMTYuNi00Ny43IDI0LjVsLS4xIC4xLTU1LjcgODAuNSA4Mi44IDEyMS4xYzcuNSAxMC42IDExLjMgMTIuNSAzNS40IDEyLjVsMCA5LjFjLTkuMS0uNy0yOC0uNy0zNy43LS43LTEyLjQgMC0zMC44IDAtNDIuOSAuN2wwLTkuMWMxMy4yLS44IDE2LjYtNy4zIDE2LjYtMTAuMiAwLTEuMSAwLTIuMy0zLTYuNGwtNjUuNS05Ni4zLTYwLjIgODcuOWMtMS45IDIuNy0zLjggNS40LTMuOCAxMC4yIDAgNi4xIDMuNCAxMy42IDE1IDE0LjdsMCA5LjFjLTkuNC0uNy0yNy4xLS43LTM3LjItLjdsLTIuOCAwLTExLjcgODIuNi0xOTUuOSAwIDAtOS4xYzI2LjcgMCAzMC45IDAgMzAuOS0xNi45bDAtMjAzLjJjMC0xNi45LTQuMy0xNi45LTMwLjktMTYuOWwwLTEwLjMgMTkuOCAwYy00LjgtNjEuMS0xMC44LTcxLjctNjgtNzEuOGwtMjAuNyAwYy02LjggMS41LTYuOCA2LjEtNi44IDE0LjRsMCAyMDVjMCAxMy42IDEuMSAxNy44IDMyLjQgMTcuOGwxMC41IDAgMCA5LjEtLjQgMGMtMTcuOS0uMy0zNi43LS43LTU0LjktLjdzLTM2LjkgLjMtNTQuOCAuN2wtLjYgMCAwLTkuMSAxMC43IDBjMzEuNyAwIDMyLjgtNC4xIDMyLjgtMTcuOGwwLTIwNWMwLTguNyAwLTEzLjItNy4yLTE0LjNsLTIwLjggMGMtNTguNCAwLTYzLjcgMTAuOS02OC42IDczLjNsLTYuOCAwIDYuMy04My4zIDIxNy41IDAgNi4xIDgxLjggMTY0LjEgMCA5IDgzLjMtNi44IDBjLTUuMy00OS44LTEyLjEtNzMtNzAuMy03M2wtNTEuNSAwYy0xNSAwLTE1LjggMS45LTE1LjggMTQuNmwwIDkzLjMgMzUuNSAwYzM1LjUgMCAzOC45LTEyLjggMzguOS00NGw2IDAgMCA5Ny45LTYgMGMwLTMxLjgtMy40LTQ0LjgtMzguOS00NC44bC0zNS41IDAgMCAxMDUuMmMwIDEzIC43IDE0LjggMTUuOCAxNC44bDUyLjIgMGM2MS4xIDAgNjkuOS0yNS44IDc3LjQtNzMuNi03LjcgMC0xNi4zIC4yLTIyLjIgLjdsMC05LjFjNy4yIDAgMzEuNy0uNCA0Ny44LTIzLjhsNjUuNS05NS43LTcyLjctMTA2LjdjLTguMy0xMS43LTE1LjEtMTIuNS0zNS44LTEyLjVsMC05LjFjOS4xIC43IDI3LjkgLjcgMzcuNyAuNyAxMi40IDAgMzAuOCAwIDQyLjktLjdsMCA5LjFjLTEyLjUgLjQtMTYuNiA2LjgtMTYuNiAxMC4yIDAgMS4xIC40IDIuMyAzIDYuNGw1NS43IDgxLjYgNDkuNy03Mi4xYzIuNy0zLjcgNC41LTYuOCA0LjUtMTEuMyAwLTYuMS0zLTEzLjYtMTUtMTQuOGwwLTkuMWM5LjQgLjcgMjQuOCAuNyAzNy4yIC43IDkgMCAyMy4zIDAgMzItLjdsMCA5LjF6Il19LEF1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbGF1ZGUiLGljb246WzUxMiw1MTIsW10sImU4NjEiLCJNMTAwLjQgMzQwLjVsMTAwLjctNTYuNSAxLjctNC45LTEuNy0yLjctNC45IDAtMTYuOC0xLTU3LjUtMS42LTQ5LjktMi4xLTQ4LjMtMi42LTEyLjItMi42LTExLjQtMTUgMS4yLTcuNSAxMC4yLTYuOSAxNC43IDEuM2MxOC45IDEuMyA0NS45IDMuMSA4MSA1LjZsMzUuMiAyLjEgNTIuMiA1LjQgOC4zIDAgMS4yLTMuNC0yLjgtMi4xLTIuMi0yLjEtNTAuMy0zNC4xLTU0LjQtMzYtMjguNS0yMC43LTE1LjQtMTAuNS03LjgtOS44LTMuNC0yMS41IDE0LTE1LjQgMTguOCAxLjMgNC44IDEuMyAxOSAxNC43IDQwLjcgMzEuNSA1My4xIDM5LjEgNy44IDYuNSAzLjEtMi4yIC40LTEuNi0zLjUtNS44LTI4LjktNTIuMi0zMC44LTUzLjEtMTMuNy0yMi0zLjYtMTMuMmMtMS4zLTUuNC0yLjItMTAtMi4yLTE1LjVsMTUuOS0yMS42IDguOC0yLjggMjEuMiAyLjggOC45IDcuOCAxMy4yIDMwLjIgMjEuNCA0Ny41IDMzLjIgNjQuNiA5LjcgMTkuMiA1LjIgMTcuOCAxLjkgNS40IDMuNCAwIDAtMy4xIDIuNy0zNi40IDUtNDQuNyA0LjktNTcuNSAxLjctMTYuMiA4LTE5LjQgMTUuOS0xMC41IDEyLjQgNS45IDEwLjIgMTQuNy0xLjQgOS41LTYuMSAzOS41LTExLjkgNjEuOS03LjggNDEuNSA0LjUgMCA1LjItNS4yIDIxLTI3LjggMzUuMi00NC4xIDE1LjUtMTcuNSAxOC4xLTE5LjMgMTEuNi05LjIgMjIgMCAxNi4yIDI0LjEtNy4zIDI0LjktMjIuNyAyOC43LTE4LjggMjQuNC0yNyAzNi4zLTE2LjggMjkgMS42IDIuMyA0LS40IDYwLjktMTMgMzIuOS01LjkgMzkuMy02LjcgMTcuOCA4LjMgMS45IDguNC03IDE3LjItNDIgMTAuNC00OS4yIDkuOC03My4zIDE3LjMtLjkgLjcgMSAxLjMgMzMgMy4xIDE0LjEgLjggMzQuNiAwIDY0LjQgNC44IDE2LjggMTEuMSAxMC4xIDEzLjYtMS43IDEwLjQtMjUuOSAxMy4yYy0xNS41LTMuNy01NC40LTEyLjktMTE2LjYtMjcuN2wtMjgtNy0zLjkgMCAwIDIuMyAyMy4zIDIyLjggNDIuNyAzOC42IDUzLjUgNDkuOCAyLjcgMTIuMy02LjkgOS43LTcuMy0xLTQ3LTM1LjQtMTguMS0xNS45LTQxLjEtMzQuNi0yLjcgMCAwIDMuNiA5LjUgMTMuOSA1MCA3NS4yIDIuNiAyMy0zLjYgNy41LTEzIDQuNS0xNC4yLTIuNi0yOS4zLTQxLjEtMzAuMi00Ni4zLTI0LjQtNDEuNS0zIDEuNy0xNC40IDE1NC44LTYuNyA3LjktMTUuNSA1LjktMTMtOS44LTYuOS0xNS45IDYuOS0zMS41IDguMy00MS4xIDYuNy0zMi43IDYuMS00MC42IDMuNi0xMy41LS4yLS45LTMgLjQtMzAuNiA0Mi00Ni41IDYyLjktMzYuOCAzOS40LTguOCAzLjUtMTUuMy03LjkgMS40LTE0LjEgOC41LTEyLjYgNTAuOS02NC44IDMwLjctNDAuMiAxOS44LTIzLjItLjEtMy40LTEuMiAwLTEzNS4zIDg3LjgtMjQuMSAzLjEtMTAuNC05LjcgMS4zLTE1LjkgNC45LTUuMiA0MC43LTI4LS4xIC4xIDAgLjF6Il19LEV1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9waWZ5IixpY29uOls0NDgsNTEyLFtdLCJlMDU3IiwiTTM4OC41IDEwNC4xYy0uMi0xLjEtLjctMi4xLTEuNS0yLjhzLTEuOC0xLjItMi45LTEuMmMtMiAwLTM3LjItLjgtMzcuMi0uOHMtMjEuNi0yMC44LTI5LjYtMjguOGwwIDQzMi43IDEyNS43LTMxLjJzLTU0LTM2NS41LTU0LjQtMzY3Ljl6TTI4OC45IDcwLjVjLTEuOS02LjEtNC4zLTExLjktNy4yLTE3LjYtMTAuNC0yMC0yNi0zMC45LTQ0LjQtMzAuOS0xLjMgMC0yLjcgLjEtNCAuNC0uNC0uOC0xLjItMS4yLTEuNi0yLTgtOC44LTE4LjQtMTIuOC0zMC44LTEyLjQtMjQgLjgtNDggMTgtNjcuMiA0OC44LTEzLjYgMjEuNi0yNCA0OC44LTI2LjggNzAuMS0yNy42IDguNC00Ni44IDE0LjQtNDcuMiAxNC44LTE0IDQuNC0xNC40IDQuOC0xNiAxOC0xLjIgMTAtMzggMjkxLjgtMzggMjkxLjhsMzAyLjYgNTIuNSAwLTQzOC4zYy0xLjUgLjEtMi45IC4yLTQuNCAuNCAwIDAtNS42IDEuNi0xNC44IDQuNHpNMjMzLjYgODcuN2MtMTYgNC44LTMzLjYgMTAuNC01MC44IDE1LjYgNC44LTE4LjggMTQuNC0zNy42IDI1LjYtNTAgNC40LTQuNCAxMC40LTkuNiAxNy4yLTEyLjggNi44IDE0LjQgOC40IDM0IDggNDcuMnpNMjAwLjggMjQuNGM1LS4yIDEwIDEuMSAxNC40IDMuNi02LjQgMy4yLTEyLjggOC40LTE4LjggMTQuNC0xNS4yIDE2LjQtMjYuOCA0Mi0zMS42IDY2LjUtMTQuNCA0LjQtMjguOCA4LjgtNDIgMTIuOCA4LjgtMzguNCA0MS4yLTk2LjQgNzgtOTcuMnpNMTU0LjQgMjQ0LjZjMS42IDI1LjYgNjkuMiAzMS4yIDczLjIgOTEuNyAyLjggNDcuNi0yNS4yIDgwLjEtNjUuNiA4Mi41LTQ4LjggMy4yLTc1LjYtMjUuNi03NS42LTI1LjZsMTAuNC00NHMyNi44IDIwLjQgNDguNCAxOC44YzE0LS44IDE5LjItMTIuNCAxOC44LTIwLjQtMi0zMy42LTU3LjItMzEuNi02MC44LTg2LjktMy4yLTQ2LjQgMjcuMi05My4zIDk0LjUtOTcuNyAyNi0xLjYgMzkuMiA0LjggMzkuMiA0LjhsLTE1LjIgNTcuNnMtMTcuMi04LTM3LjYtNi40Yy0yOS42IDItMzAgMjAuOC0yOS42IDI1LjZ6TTI0OS42IDgyLjljMC0xMi0xLjYtMjkuMi03LjItNDMuNiAxOC40IDMuNiAyNy4yIDI0IDMxLjIgMzYuNC03LjIgMi0xNS4yIDQuNC0yNCA3LjJ6Il19LFVFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcmVkZGl0IixpY29uOls0NDgsNTEyLFsicmVkZGl0LXNxdWFyZSJdLCJmMWEyIiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMzA1LjkgMTY2LjRjMjAuNiAwIDM3LjMtMTYuNyAzNy4zLTM3LjNzLTE2LjctMzcuMy0zNy4zLTM3LjNjLTE4IDAtMzMuMSAxMi44LTM2LjYgMjkuOC0zMC4yIDMuMi01My44IDI4LjgtNTMuOCA1OS45bDAgLjJjLTMyLjggMS40LTYyLjggMTAuNy04Ni42IDI1LjUtOC44LTYuOC0xOS45LTEwLjktMzItMTAuOS0yOC45IDAtNTIuMyAyMy40LTUyLjMgNTIuMyAwIDIxIDEyLjMgMzkgMzAuMSA0Ny40IDEuNyA2MC43IDY3LjkgMTA5LjYgMTQ5LjMgMTA5LjZzMTQ3LjYtNDguOSAxNDkuMy0xMDkuN2MxNy43LTguNCAyOS45LTI2LjQgMjkuOS00Ny4zIDAtMjguOS0yMy40LTUyLjMtNTIuMy01Mi4zLTEyIDAtMjMgNC0zMS45IDEwLjgtMjQtMTQuOS01NC4zLTI0LjItODcuNS0yNS40bDAtLjFjMC0yMi4yIDE2LjUtNDAuNyAzNy45LTQzLjcgMy45IDE2LjUgMTguNyAyOC43IDM2LjMgMjguN2wuMi0uMnpNMTU1IDI0OC4xYzE0LjYgMCAyNS44IDE1LjQgMjUgMzQuNHMtMTEuOCAyNS45LTI2LjUgMjUuOS0yNy41LTcuNy0yNi42LTI2LjcgMTMuNS0zMy41IDI4LjEtMzMuNWwwLS4xem0xNjYuNCAzMy41Yy45IDE5LTEyIDI2LjctMjYuNiAyNi43cy0yNS42LTYuOS0yNi41LTI1LjkgMTAuMy0zNC40IDI1LTM0LjQgMjcuMyAxNC42IDI4LjEgMzMuNWwwIC4xem0tNDIuMSA0OS42Yy05IDIxLjUtMzAuMyAzNi43LTU1LjEgMzYuN3MtNDYuMS0xNS4xLTU1LjEtMzYuN2MtMS4xLTIuNiAuNy01LjQgMy40LTUuNyAxNi4xLTEuNiAzMy41LTIuNSA1MS43LTIuNXMzNS42IC45IDUxLjcgMi41YzIuNyAuMyA0LjUgMy4xIDMuNCA1Ljd6Il19LEl1cj1VRWUsUHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMiLGljb246WzUxMiw1MTIsW10sImY0ZTgiLCJNMjU1LjYgOEMzOTUuNCA4IDUwNCAxMTUuOSA1MDQgMjU2IDUwNCA0MDMuMiAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS4xIDUwNCA4IDM5My4yIDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4ek02My44IDE4OS4xYy03LjQgMjAuNC0xMS4xIDQyLjctMTEuMSA2Ni45IDAgMTEwLjkgOTIuMSAyMDIuNCAyMDMuNyAyMDIuNCAxMjIuNCAwIDE3Ny4yLTEwMS44IDE3OC41LTEwNC4xbC05My40LTQxLjZjLTcuNyAzNy4xLTQxLjIgNTMtNjguMiA1NS40bDAgMzguMS0yOC44IDAgMC0zOC4yYy0yNy41LS4zLTUyLjYtMTAuMi03NS4zLTI5LjdsMzQuMS0zNC41YzMxLjcgMjkuNCA4Ni40IDMxLjggODYuNC0yLjIgMC02LjItMi4yLTExLjItNi42LTE1LjEtMTQuMi02LTEuOC0uMS0yMTkuMy05Ny40ek0yNTYuNCA1Mi4zQzIxOCA1Mi4zIDE0NCA2MSA4NS45IDE0NS4zbDk0LjggNDIuNWMxMC0zMS4zIDQwLjQtNDIuOSA2My44LTQ0LjNsMC0zOC4xIDI4LjggMCAwIDM4LjFjMjIuNyAxLjIgNDMuNCA4LjkgNjIgMjNMMzAzIDE5OS43Yy00Mi43LTI5LjktODMuNS04LTcwIDExLjEgNTMuNCAyNC4xIDQzLjggMTkuOCA5MyA0MS42bDEyNy4xIDU2LjdjNC4xLTE3LjQgNi4yLTM1LjEgNi4yLTUzLjEgMC01Ny0xOS44LTEwNS01OS4zLTE0My45LTM5LjMtMzkuOS04Ny4yLTU5LjgtMTQzLjYtNTkuOHoiXX0sTnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdhbGFjdGljLXJlcHVibGljIixpY29uOls1MTIsNTEyLFtdLCJmNTBjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDEgMCA0OTYgMjQ4IDI0OCAwIDEgMSAwLTQ5NnptMCAxNi41YTIzMS41IDIzMS41IDAgMSAwIDAgNDYyLjkgMjMxLjUgMjMxLjUgMCAxIDAgMC00NjIuOXptMjcuNiAyMS44bDAgMjQuNmMzMC4zIDQuNSA1OSAxNi4zIDgzLjYgMzQuNWwxNy40LTE3LjRjLTI4LjctMjIuMS02My4zLTM2LjktMTAxLTQxLjh6bS01NS40IC4xYy0zNy42IDQuOS03Mi4yIDE5LjgtMTAwLjkgNDEuOWwxNy4zIDE3LjQgLjEgMGMyNC4xLTE3LjggNTIuNi0zMC4xIDgzLjUtMzQuN2wwLTI0LjV6bTEyLjIgNTAuMmwwIDgyLjljLTEwIDItMTkuNCA1LjktMjcuNyAxMS40bC01OC42LTU4LjYtMjEuOSAyMS45IDU4LjcgNTguN2MtNS41IDguMi05LjQgMTcuNi0xMS41IDI3LjZsLTgyLjkgMCAwIDMxIDgyLjkgMGMyIDEwIDYgMTkuMyAxMS41IDI3LjVsLTU4LjcgNTguNyAyMS45IDIxLjkgNTguNi01OC42YzguNCA1LjYgMTcuOCA5LjUgMjcuNyAxMS41bDAgODIuOSAzMSAwIDAtODIuOWMxMC0yIDE5LjQtNi4xIDI3LjYtMTEuNWw1OC43IDU4LjcgMjEuOS0yMS45LTU4LjctNTguN2M1LjUtOC4yIDkuNS0xNy41IDExLjUtMjcuNWw4Mi45IDAgMC0zMS04Mi45IDBjLTItMTAtNi0xOS40LTExLjUtMjcuNmw1OC43LTU4LjctMjEuOS0yMS45LTU4LjcgNTguN2MtOC4yLTUuNS0xNy42LTkuNS0yNy42LTExLjVsMC04Mi45LTMxIDB6bTE4My4yIDMwLjdsLTE3LjQgMTcuNGMxOC4zIDI0LjYgMzAuMiA1My40IDM0LjcgODMuN2wyNC42IDBjLTUtMzcuNy0xOS44LTcyLjMtNDEuOS0xMDF6bS0zMzUuNiAuMWMtMjIuMSAyOC43LTM2LjkgNjMuMy00MS44IDEwMC45bDI0LjYgMGM0LjYtMzEgMTYuOC01OS40IDM0LjYtODMuNUw4OC4yIDEyNy40ek00Ni4zIDI4My43YzQuOSAzNy42IDE5LjcgNzIuMiA0MS44IDEwMC45bDE3LjQtMTcuNEM4Ny43IDM0My4xIDc1LjYgMzE0LjYgNzEgMjgzLjdsLTI0LjYgMCAwIDB6bTM5NC43IDBjLTQuNiAzMS0xNi44IDU5LjUtMzQuNyA4My42bDE3LjQgMTcuNGMyMi4xLTI4LjcgMzctNjMuMyA0MS45LTEwMWwtMjQuNiAwek0xNDQuNyA0MDYuNGwtMTcuNCAxNy40YzI4LjcgMjIuMSA2My4zIDM3IDEwMSA0MS45bDAtMjQuNmMtMzEtNC42LTU5LjUtMTYuOC04My42LTM0LjZ6bTIyMi41IDBjLTI0LjEgMTcuOC01Mi42IDMwLjEtODMuNiAzNC43bDAgMjQuNmMzNy43LTQuOSA3Mi4yLTE5LjggMTAxLTQxLjhsLTE3LjMtMTcuNC0uMSAweiJdfSxRM2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2siLGljb246WzUxMiw1MTIsWzYyZTNdLCJmMDlhIiwiTTUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3NiA4Mi43IDQ3Ni44IDE5NC4yIDUwNC41bDAtMTcwLjMtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE3NS45QzQxMy44IDQ5NC44IDUxMiAzODYuOSA1MTIgMjU2eiJdfSxPdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0bGFiIixpY29uOls1MTIsNTEyLFtdLCJmMjk2IiwiTTUwNCAyMDQuNmwtLjctMS44LTY5LjctMTgxLjhjLTEuNC0zLjYtMy45LTYuNi03LjItOC42LTIuNC0xLjYtNS4xLTIuNS04LTIuOHMtNS43IC4xLTguNCAxLjEtNS4xIDIuNy03LjEgNC44Yy0xLjkgMi4xLTMuMyA0LjctNC4xIDcuNGwtNDcgMTQ0LTE5MC41IDAtNDcuMS0xNDRjLS44LTIuOC0yLjItNS4zLTQuMS03LjQtMi0yLjEtNC40LTMuNy03LjEtNC44LTIuNi0xLTUuNS0xLjQtOC40LTEuMXMtNS42IDEuMi04IDIuOGMtMy4yIDItNS44IDUuMS03LjIgOC42TDkuOCAyMDIuOCA5IDIwNC42Yy0xMCAyNi4yLTExLjMgNTUtMy41IDgyIDcuNyAyNi45IDI0IDUwLjcgNDYuNCA2Ny42bC4zIC4yIC42IC40IDEwNiA3OS41YzM4LjUgMjkuMSA2Ni43IDUwLjMgODQuNiA2My45IDMuNyAxLjkgOC4zIDQuMyAxMyA0LjNzOS4zLTIuNCAxMy00LjNjMTcuOS0xMy41IDQ2LjEtMzQuOSA4NC42LTYzLjlsMTA2LjctNzkuOSAuMy0uM2MyMi40LTE2LjkgMzguNy00MC42IDQ1LjYtNjcuNSA4LjYtMjcgNy40LTU1LjgtMi42LTgyeiJdfSxSdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXEiLGljb246WzQ0OCw1MTIsW10sImYxZDYiLCJNNDM0LjEgNDIwLjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjEgNzIuMi01MSAxMDEuOCAxNi44IDUuMiA1NC44IDE5LjIgNDUuOCAzNC40LTcuMyAxMi4zLTEyNS41IDcuOS0xNTkuNiA0LTM0LjEgMy44LTE1Mi4zIDguMy0xNTkuNi00LTktMTUuMiAyOC45LTI5LjIgNDUuOC0zNC40LTM0LjktMjkuNS01MS4xLTcwLjQtNTEuMS0xMDEuOCAwIDAtMzMuMyA1NC4xLTQ0LjkgNTIuNy01LjQtLjYtMTIuNC0yOS42IDkuMy05OS43IDEwLjMtMzMgMjItNjAuNSA0MC4xLTEwNS44LTMuMS0xMTYuOSA0NS4yLTIxNSAxNjAuMy0yMTUgMTEzLjcgMCAxNjMuMiA5Ni4xIDE2MC4zIDIxNSAxOC4xIDQ1LjIgMjkuOSA3Mi45IDQwLjEgMTA1LjggMjEuOCA3MC4xIDE0LjcgOTkuMSA5LjMgOTkuN3oiXX0sRnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmlwZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyOSIsIk0xNjUgMTQ0LjdsLTQzLjMgOS4yLS4yIDE0Mi40YzAgMjYuMyAxOS44IDQzLjMgNDYuMSA0My4zIDE0LjYgMCAyNS4zLTIuNyAzMS4yLTUuOWwwLTMzLjhjLTUuNyAyLjMtMzMuNyAxMC41LTMzLjctMTUuN2wwLTYzLjIgMzMuNyAwIDAtMzcuOC0zMy43IDAtLjEtMzguNXptODkuMSA1MS42bC0yLjctMTMuMS0zOC40IDAgMCAxNTMuMiA0NC4zIDAgMC0xMDMuMWMxMC41LTEzLjggMjguMi0xMS4xIDMzLjktOS4zbDAtNDAuOGMtNi0yLjEtMjYuNy02LTM3LjEgMTMuMXpNMzQ2LjQgMTI0bC00NC42IDkuNSAwIDM2LjIgNDQuNi05LjUgMC0zNi4yek00NC45IDIyOC4zYzAtNi45IDUuOC05LjYgMTUuMS05LjcgMTMuNSAwIDMwLjcgNC4xIDQ0LjIgMTEuNGwwLTQxLjhjLTE0LjctNS44LTI5LjQtOC4xLTQ0LjEtOC4xLTM2IDAtNjAgMTguOC02MCA1MC4yIDAgNDkuMiA2Ny41IDQxLjIgNjcuNSA2Mi40IDAgOC4yLTcuMSAxMC45LTE3IDEwLjktMTQuNyAwLTMzLjctNi4xLTQ4LjYtMTQuMmwwIDQwYzE2LjUgNy4xIDMzLjIgMTAuMSA0OC41IDEwLjEgMzYuOSAwIDYyLjMtMTUuOCA2Mi4zLTQ3LjggMC01Mi45LTY3LjktNDMuNC02Ny45LTYzLjR6TTY0MCAyNjEuNmMwLTQ1LjUtMjItODEuNC02NC4yLTgxLjRzLTY3LjkgMzUuOS02Ny45IDgxLjFjMCA1My41IDMwLjMgNzguMiA3My41IDc4LjIgMjEuMiAwIDM3LjEtNC44IDQ5LjItMTEuNWwwLTMzLjRjLTEyLjEgNi4xLTI2IDkuOC00My42IDkuOC0xNy4zIDAtMzIuNS02LjEtMzQuNS0yNi45bDg2LjkgMGMuMi0yLjMgLjYtMTEuNiAuNi0xNS45em0tODcuOS0xNi44YzAtMjAgMTIuMy0yOC40IDIzLjQtMjguNCAxMC45IDAgMjIuNSA4LjQgMjIuNSAyOC40bC00NS45IDB6TTQzOS4yIDE4MC4yYy0xNy40IDAtMjguNiA4LjItMzQuOCAxMy45bC0yLjMtMTEtMzkuMSAwIDAgMjA0LjggNDQuNC05LjQgLjEtNTAuMmM2LjQgNC43IDE1LjkgMTEuMiAzMS40IDExLjIgMzEuOCAwIDYwLjgtMjMuMiA2MC44LTc5LjYgLjEtNTEuNi0yOS4zLTc5LjctNjAuNS03OS43ek00MjguNiAzMDIuN2MtMTAuNCAwLTE2LjYtMy44LTIwLjktOC40bC0uMy02NmM0LjYtNS4xIDExLTguOCAyMS4yLTguOCAxNi4yIDAgMjcuNCAxOC4yIDI3LjQgNDEuNCAuMSAyMy45LTEwLjkgNDEuOC0yNy40IDQxLjh6TTMwMS45IDMzNi40bDQ0LjYgMCAwLTE1My4yLTQ0LjYgMCAwIDE1My4yeiJdfSxCdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFpbHltb3Rpb24iLGljb246WzQ0OCw1MTIsW10sImUwNTIiLCJNMjk4LjkgMjY3Yy03LjQtNC4yLTE1LjgtNi4zLTI0LjQtNi4yLTEzLjIgMC0yNC40IDQuNC0zMy40IDEzLjNzLTEzLjYgMjAtMTMuNiAzMy40YzAgMTQuMSA0LjQgMjUuNiAxMy4zIDM0LjZzMjAgMTMuNCAzMy40IDEzLjRjMTMuNyAwIDI1LTQuNiAzNC4xLTEzLjhTMzIyIDMyMS4xIDMyMiAzMDcuNWMwLTguMi0yLjEtMTYuMy02LjEtMjMuNS00LTcuMS05LjgtMTMtMTctMTd6TTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM3NC43IDQwNS4zbC01My4xIDAgMC0yMy45LS43IDBjLTEwLjUgMTcuNS0yOS4xIDI2LjItNTUuOCAyNi4yLTE4LjQgMC0zNC43LTQuNC00OC45LTEzLjEtMTQuMS04LjYtMjUuNS0yMS0zMi45LTM1LjgtNy43LTE1LjEtMTEuNi0zMi4xLTExLjYtNTAuOSAwLTE4LjQgMy45LTM1LjEgMTEuOC01MC4yIDcuNS0xNC43IDE4LjktMjcuMSAzMi45LTM1LjggMTQuMS04LjcgMzAtMTMuMSA0Ny43LTEzLjEgMTAuMi0uMSAyMC4yIDEuNiAyOS43IDUuMiA4LjkgMy41IDE3LjIgOS4xIDI1IDE3bDAtNzcuOSA1NS44LTEyLjEgMCAyNjQuNHoiXX0sSHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0ZWFtIixpY29uOls1MTIsNTEyLFtdLCJmMWI2IiwiTTUwNCAyNTZjMCAxMzctMTExLjIgMjQ4LTI0OC40IDI0OC0xMTMuOCAwLTIwOS42LTc2LjMtMjM5LTE4MC40bDk1LjIgMzkuM2M2LjQgMzIuMSAzNC45IDU2LjQgNjguOSA1Ni40IDM5LjIgMCA3MS45LTMyLjQgNzAuMi03My41bDg0LjUtNjAuMmM1Mi4xIDEuMyA5NS44LTQwLjkgOTUuOC05My41IDAtNTEuNi00Mi05My41LTkzLjctOTMuNXMtOTMuNyA0Mi05My43IDkzLjVsMCAxLjItNTkuMiA4NS43Yy0xNS41LS45LTMwLjcgMy40LTQzLjUgMTIuMUw4IDIzNi4xQzE4LjIgMTA4LjQgMTI1LjEgOCAyNTUuNiA4IDM5Mi44IDggNTA0IDExOSA1MDQgMjU2ek0xNjMuNyAzODQuM2wtMzAuNS0xMi42YzUuNiAxMS42IDE1LjMgMjAuOCAyNy4yIDI1LjggMjYuOSAxMS4yIDU3LjgtMS42IDY5LTI4LjQgNS40LTEzIDUuNS0yNy4zIC4xLTQwLjNTMjE0IDMwNS42IDIwMSAzMDAuMmMtMTIuOS01LjQtMjYuNy01LjItMzguOS0uNmwzMS41IDEzYzE5LjggOC4yIDI5LjIgMzAuOSAyMC45IDUwLjctOC4zIDE5LjktMzEgMjkuMi01MC44IDIxek0zMzcuNSAxMjkuOGE2Mi4zIDYyLjMgMCAxIDEgMCAxMjQuNiA2Mi4zIDYyLjMgMCAxIDEgMC0xMjQuNnptLjEgMTA5YTQ2LjggNDYuOCAwIDEgMCAwLTkzLjYgNDYuOCA0Ni44IDAgMSAwIDAgOTMuNnoiXX0scXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZlbm1vLXYiLGljb246WzUxMiw1MTIsW10sImU4NWIiLCJNNDY2LjUgMTQuOGMxNy40IDI4LjcgMjUuMyA1OC4yIDI1LjMgOTUuNSAwIDExOS0xMDEuOSAyNzMuNS0xODQuNyAzODIuMWwtMTg4LjkgMC03NS44LTQ1MS41IDE2NS40LTE1LjcgNDAuMSAzMjEuM2MzNy40LTYwLjggODMuNi0xNTYuMyA4My42LTIyMS40IDAtMzUuNi02LjEtNTkuOS0xNS43LTc5LjlMNDY2LjUgMTQuOHoiXX0sV0VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNuYXBjaGF0IixpY29uOls1MTIsNTEyLFs2MjEyNCwic25hcGNoYXQtZ2hvc3QiXSwiZjJhYiIsIk00OTcuMSAzNjYuNmMtMy40LTkuMi05LjgtMTQuMS0xNy4xLTE4LjItMS40LS44LTIuNi0xLjUtMy43LTEuOS0yLjItMS4xLTQuNC0yLjItNi42LTMuNC0yMi44LTEyLjEtNDAuNi0yNy4zLTUzLTQ1LjQtMy41LTUuMS02LjYtMTAuNS05LjEtMTYuMS0xLjEtMy0xLTQuNy0uMi02LjMgLjgtMS4yIDEuNy0yLjIgMi45LTMgMy45LTIuNiA4LTUuMiAxMC43LTcgNC45LTMuMiA4LjgtNS43IDExLjItNy40IDkuNC02LjUgMTUuOS0xMy41IDIwLTIxLjMgMi45LTUuNCA0LjUtMTEuMyA0LjktMTcuNHMtLjYtMTIuMi0yLjgtMTcuOGMtNi4yLTE2LjMtMjEuNi0yNi40LTQwLjMtMjYuNC0zLjkgMC03LjkgLjQtMTEuNyAxLjItMSAuMi0yLjEgLjUtMy4xIC43IC4yLTExLjItLjEtMjIuOS0xLjEtMzQuNS0zLjUtNDAuOC0xNy44LTYyLjEtMzIuNy03OS4yLTkuNS0xMC43LTIwLjctMTkuNy0zMy4yLTI2LjctMjIuNi0xMi45LTQ4LjItMTkuNC03Ni4xLTE5LjRzLTUzLjQgNi41LTc2IDE5LjRjLTEyLjUgNy0yMy43IDE2LjEtMzMuMyAyNi44LTE0LjkgMTctMjkuMiAzOC40LTMyLjcgNzkuMi0xIDExLjYtMS4yIDIzLjQtMS4xIDM0LjUtMS0uMy0yLS41LTMuMS0uNy0zLjktLjgtNy44LTEuMi0xMS43LTEuMi0xOC43IDAtMzQuMSAxMC4xLTQwLjMgMjYuNC0yLjIgNS43LTMuMiAxMS44LTIuOCAxNy44czIgMTIgNC45IDE3LjRjNC4xIDcuOCAxMC43IDE0LjcgMjAgMjEuMyAyLjUgMS43IDYuNCA0LjIgMTEuMiA3LjQgMi42IDEuNyA2LjUgNC4yIDEwLjMgNi43IDEuMyAuOSAyLjQgMiAzLjMgMy4zIC44IDEuNiAuOCAzLjQtLjQgNi42LTIuNSA1LjUtNS41IDEwLjgtOC45IDE1LjgtMTIuMSAxNy43LTI5LjQgMzIuNi01MS40IDQ0LjYtMTEuNyA2LjItMjMuOSAxMC4zLTI5IDI0LjMtMy45IDEwLjUtMS4zIDIyLjUgOC41IDMyLjYgMy42IDMuOCA3LjggNi45IDEyLjQgOS40IDkuNiA1LjMgMTkuOCA5LjMgMzAuMyAxMi4xIDIuMiAuNiA0LjMgMS41IDYuMSAyLjcgMy42IDMuMSAzLjEgNy45IDcuOCAxNC44IDIuNCAzLjYgNS40IDYuNyA5IDkuMSAxMCA2LjkgMjEuMyA3LjQgMzMuMiA3LjggMTAuOCAuNCAyMyAuOSAzNi45IDUuNSA1LjggMS45IDExLjggNS42IDE4LjcgOS45IDE2LjcgMTAuMyAzOS42IDI0LjMgNzcuOCAyNC4zczYxLjMtMTQuMSA3OC4xLTI0LjRjNi45LTQuMiAxMi45LTcuOSAxOC41LTkuOCAxMy45LTQuNiAyNi4yLTUuMSAzNi45LTUuNSAxMS45LS41IDIzLjItLjkgMzMuMi03LjggNC4yLTIuOSA3LjctNi43IDEwLjItMTEuMiAzLjQtNS44IDMuNC05LjkgNi42LTEyLjggMS44LTEuMiAzLjctMi4xIDUuOC0yLjYgMTAuNy0yLjggMjEtNi45IDMwLjgtMTIuMiA0LjktMi42IDkuMy02LjEgMTMtMTAuMmwuMS0uMmM5LjItOS45IDExLjUtMjEuNSA3LjgtMzEuOHptLTM0IDE4LjNjLTIwLjcgMTEuNS0zNC41IDEwLjItNDUuMyAxNy4xLTkuMSA1LjktMy43IDE4LjUtMTAuMyAyMy4xLTguMSA1LjYtMzIuMi0uNC02My4yIDkuOS0yNS42IDguNS00MiAzMi44LTg4IDMyLjhzLTYyLTI0LjMtODguMS0zMi45Yy0zMS0xMC4zLTU1LjEtNC4yLTYzLjItOS45LTYuNi00LjYtMS4yLTE3LjItMTAuMy0yMy4xLTEwLjctNi45LTI0LjUtNS43LTQ1LjMtMTcuMS0xMy4yLTcuMy01LjctMTEuOC0xLjMtMTMuOSA3NS4xLTM2LjQgODcuMS05Mi42IDg3LjctOTYuNyAuNi01IDEuNC05LTQuMi0xNC4xLTUuNC01LTI5LjItMTkuNy0zNS44LTI0LjMtMTAuOS03LjYtMTUuNy0xNS4zLTEyLjItMjQuNiAyLjUtNi41IDguNS04LjkgMTQuOS04LjkgMiAwIDQgLjIgNiAuNyAxMiAyLjYgMjMuNyA4LjYgMzAuNCAxMC4yIC44IC4yIDEuNiAuMyAyLjUgLjMgMy42IDAgNC45LTEuOCA0LjYtNS45LS44LTEzLjEtMi42LTM4LjctLjYtNjIuNiAyLjgtMzIuOSAxMy40LTQ5LjIgMjYtNjMuNiA2LjEtNi45IDM0LjUtMzcgODguOS0zN1MzMzkgNzQuMiAzNDUgODEuMWMxMi42IDE0LjQgMjMuMiAzMC43IDI2IDYzLjYgMi4xIDIzLjkgLjMgNDkuNS0uNiA2Mi42LS4zIDQuMyAxIDUuOSA0LjYgNS45IC44IDAgMS43LS4xIDIuNS0uMyA2LjctMS42IDE4LjQtNy42IDMwLjQtMTAuMiAyLS40IDQtLjcgNi0uNyA2LjQgMCAxMi40IDIuNSAxNC45IDguOSAzLjUgOS40LTEuMiAxNy0xMi4yIDI0LjYtNi42IDQuNi0zMC40IDE5LjMtMzUuOCAyNC4zLTUuNiA1LjEtNC44IDkuMS00LjIgMTQuMiAuNSA0LjIgMTIuNSA2MC40IDg3LjcgOTYuNyA0LjQgMi4yIDExLjkgNi43LTEuMyAxNC4xeiJdfSxWdXI9V0VlLGp1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnYWxhY3RpYy1zZW5hdGUiLGljb246WzUxMiw1MTIsW10sImY1MGQiLCJNMjQ5LjkgMzMuNWwwIDI2LjFjLTEzLjYgMjAuNi0yMy45IDEwOC42LTI0LjUgMjE1LjMgMTEuNy0xNS42IDE5LjEtMzMuMyAxOS4xLTQ4LjJsMC0xNi45YzAtNS4zIC44LTEwLjUgMi4yLTE1LjYgLjYtMi4xIDEuNC00LjEgMi42LTUuOHMzLjQtMy44IDYuNy0zLjggNS40IDIuMSA2LjcgMy44YzEuMiAxLjggMiAzLjcgMi42IDUuOCAxLjQgNS4xIDIuMiAxMC4zIDIuMiAxNS42bDAgMTYuOWMwIDE0LjkgNy40IDMyLjYgMTkuMSA0OC4yLS42LTEwNi44LTEwLjktMTk0LjctMjQuNS0yMTUuM2wwLTI2LjEtMTIuMyAwek0yMjMuNSAxODEuM2MtOS41IDIuMS0xOC43IDUuMi0yNy41IDkuMSA4LjkgMTYuMSA5LjggMzIuNiAxLjcgMzcuMy04IDQuNi0yMS44LTQuMi0zMS40LTE5LjgtMTEuNiA4LjgtMjEuOSAxOS4zLTMwLjYgMzEuMSAxNC43IDkuNiAyMi45IDIyLjkgMTguMyAzMC43LTQuNSA3LjctMjAgNy4xLTM1LjUtMS01LjggMTMuMi05LjcgMjcuNS0xMS42IDQyLjQgOS43IC4yIDE4LjcgMi40IDI2LjIgNiAxNy44LS4zIDMyLjgtMiA0MC41LTQuMiA1LjYtMjYuNCAyMy00OC4yIDQ2LjMtNTkuNSAuNy0yNS42IDEuOS00OS43IDMuNS03Mi4xem02NSAwYzEuNiAyMi40IDIuNyA0Ni41IDMuNSA3Mi4xIDIzLjMgMTEuMyA0MC44IDMzLjIgNDYuMyA1OS41IDcuNyAyLjMgMjIuNyAzLjkgNDAuNSA0LjIgNy41LTMuNyAxNi41LTUuOCAyNi4yLTYtMS45LTE0LjktNS45LTI5LjItMTEuNy00Mi40LTE1LjQgOC4xLTMwLjkgOC43LTM1LjUgMS00LjYtNy43IDMuNi0yMS4xIDE4LjMtMzAuNy04LjctMTEuOC0xOS0yMi4zLTMwLjYtMzEuMS05LjUgMTUuNi0yMy40IDI0LjQtMzEuNCAxOS44LTguMS00LjYtNy4yLTIxLjIgMS43LTM3LjMtOC44LTMuOS0xOC03LTI3LjQtOS4xek0yNTYgMTg5LjljLTMuMiAwLTUuOSA4LjgtNi4xIDE5LjlsMCAwIDAgMTYuOWMwIDQxLjQtNDkgOTUtOTMuNSA5NS01MiAwLTEyMi44LTEuNC0xNTYuNCAyOS4ybDAgMi41YzkuNCAxNy4xIDIwLjYgMzMuMiAzMy4yIDQ4IDEyLjUtMjEuMSA1MS42LTQxIDEwOC00MS40IDQ1LjcgMSA3OSAyMC4zIDkwLjggNDAuOSAwIDAgMCAwIDAgLjEgNy43IDIuMSAxNS44IDMuMiAyNCAzLjIgOC4yIDAgMTYuNC0xLjEgMjQtMy4yIDAgMCAwIDAgMC0uMSAxMS43LTIwLjUgNDUuMS0zOS44IDkwLjgtNDAuOSA1Ni40IC40IDk1LjUgMjAuMyAxMDggNDEuNCAxMi42LTE0LjggMjMuOC0zMC45IDMzLjItNDhsMC0yLjVjLTMzLjYtMzAuNi0xMDQuNC0yOS4yLTE1Ni40LTI5LjItNDQuNSAwLTkzLjUtNTMuNi05My41LTk1bDAtMTYuOS0uMSAwYy0uMi0xMS4xLTIuOS0xOS45LTYuMS0xOS45em0wIDE3Ny45YTQwLjYgNDAuNiAwIDEgMSAwLTgxLjMgNDAuNiA0MC42IDAgMSAxIDAgODEuM3ptMC03My42YTMzIDMzIDAgMSAwIDAgNjUuOSAzMyAzMyAwIDEgMCAwLTY1Ljl6bTAgNTkuOGEyNi44IDI2LjggMCAxIDEgMC01My42IDI2LjggMjYuOCAwIDEgMSAwIDUzLjZ6bS0xMTQuOCAxM2MtMTAuMiAuMS0yMS42IC40LTMwLjUgMS43IC40IDQuNCAxLjUgMTguNiA3LjEgMjkuOCA5LjEtMi42IDE4LjQtMy45IDI3LjYtMy45IDQxLjMgLjkgNzEuNSAzNC40IDc4LjMgNzQuNWwuMSA0LjdjMTAuNCAxLjkgMjEuMiAyLjkgMzIuMiAyLjkgMTEgMCAyMS44LTEgMzIuMi0yLjlsLjEtNC43YzYuOC00MC4xIDM3LTczLjUgNzguMy03NC41IDkuMyAwIDE4LjUgMS4zIDI3LjYgMy45IDUuNi0xMS4xIDYuNy0yNS4zIDcuMS0yOS44LTguOS0xLjMtMjAuMy0xLjYtMzAuNS0xLjctMTguOCAuNC0zNS4yIDQuMi00OC42IDkuNy0xMi41IDE2LTI5LjIgMzAtNDkuNiAzMy4xLS4xIDAtLjIgMC0uMyAwIDAgMC0uMSAwLS4yIC4xLTUuMiAxLjEtMTAuNiAxLjYtMTYuMiAxLjYtNS41IDAtMTAuOS0uNS0xNi4yLTEuNi0uMSAwLS4xIDAtLjItLjEtLjEgMC0uMiAwLS4zIDAtMjAuNC0zLTM3LTE3LTQ5LjYtMzMuMS0xMy40LTUuNS0yOS45LTkuMi00OC42LTkuN3oiXX0sVXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBob2VuaXgtZnJhbWV3b3JrIixpY29uOls2NDAsNTEyLFtdLCJmM2RjIiwiTTIxMi45IDM0NC4zYzMuOC0uMSAyMi44LTEuNCAyNS42LTIuMi0yLjQtMi42LTQzLjYtMS02OC00OS42LTQuMy04LjYtNy41LTE3LjYtNi40LTI3LjYgMi45LTI1LjUgMzIuOS0zMCA1Mi0xOC41IDM2IDIxLjYgNjMuMyA5MS4zIDExMy43IDk3LjUgMzcgNC41IDg0LjYtMTcgMTA4LjItNDUuNC0uNi0uMS0uOC0uMi0xLS4xLS40IC4xLS44IC4yLTEuMSAuMy0zMy4zIDEyLjEtOTQuMyA5LjctMTM0LjctMTQuOC0zNy42LTIyLjgtNTMuMS01OC43LTUxLjgtNzQuNiAxLjgtMjEuMyAyMi45LTIzLjIgMzUuOS0xOS42IDE0LjQgMy45IDI0LjQgMTcuNiAzOC45IDI3LjQgMTUuNiAxMC40IDMyLjkgMTMuNyA1MS4zIDEwLjMgMTQuOS0yLjcgMzQuNC0xMi4zIDM2LjUtMTQuNS0xLjEtLjEtMS44LS4xLTIuNS0uMi02LjItLjYtMTIuNC0uOC0xOC41LTEuNy0xMTEuMi0xNi41LTEyOC45LTE2My42LTI1Mi41LTE3My4xLTQ0LjMtMy40LTk5LjQgOC4xLTEzNi4zIDM1LS44IC42LTEuNSAxLjItMi4yIDEuOCAuMSAuMiAuMSAuMyAuMiAuNSAuOCAwIDEuNi0uMSAyLjQtLjIgNi4zLTEgMTIuNS0uOCAxOC43IC4zIDIzLjggNC4zIDQ3LjcgMjMuMSA1NS45IDc2LjUgNS4zIDM0LjMtLjcgNTAuOCA4IDg2LjEgMTkgNzcuMSA5MSAxMDcuNiAxMjcuNyAxMDYuNHpNNzUuMyA2NC45Yy0uOS0xLS45LTEuMi0xLjMtMiAxMi4xLTIuNiAyNC4yLTQuMSAzNi42LTQuOC0xLjEgMTQuNy0yMi4yIDIxLjMtMzUuMyA2Ljh6TTI3Mi4yIDQxNS40Yy00Mi44IDEuMi05Mi0yNi43LTEyMy41LTYxLjQtNC42LTUtMTYuOC0yMC4yLTE4LjYtMjMuNGwuNC0uNGM2LjYgNC4xIDI1LjcgMTguNiA1NC44IDI3IDI0LjIgNyA0OC4xIDYuMyA3MS42LTMuMyAyMi43LTkuMyA0MS0uNSA0My4xIDIuOS0xOC41IDMuOC0yMC4xIDQuNC0yNCA3LjktNS4xIDQuNC00LjYgMTEuNyA3IDE3LjIgMjYuMiAxMi40IDYzLTIuOCA5Ny4yIDI1LjQgMi40IDIgOC4xIDcuOCAxMC4xIDEwLjctLjEgLjItLjMgLjMtLjQgLjUtNC44LTEuNS0xNi40LTcuNS00MC4yLTkuMy0yNC43LTItNDYuMyA1LjMtNzcuNSA2LjJ6TTQ0NyAxNjMuNGMxNi40LTUuMiA0MS4zLTEzLjQgNjYuNS0zLjMgMTYuMSA2LjUgMjYuMiAxOC43IDMyLjEgMzQuNiAzLjUgOS40IDUuMSAxOS43IDUuMSAyOC43LS4yIDAtLjQgMC0uNiAuMS0uMi0uNC0uNC0uOS0uNS0xLjMtNS0yMi0yOS45LTQzLjgtNjcuNi0yOS45LTUwLjIgMTguNi0xMzAuNCA5LjctMTc2LjktNDgtLjctLjktMi40LTEuNy0xLjMtMy4yIC4xLS4yIDIuMSAuNiAzIDEuMyAxOC4xIDEzLjQgMzguMyAyMS45IDYwLjMgMjYuMiAzMC41IDYuMSA1NC42IDIuOSA3OS45LTUuMnpNNTQ5LjcgMjgwLjljLTMyLjQgLjItMzMuOCA1MC4xLTEwMy42IDY0LjQtMTguMiAzLjctMzguNyA0LjYtNDQuOSA0LjJsMC0uNGMyLjgtMS41IDE0LjctMi42IDI5LjctMTYuNiA3LjktNy4zIDE1LjMtMTUuMSAyMi44LTIyLjkgMTkuNS0yMC4yIDQxLjQtNDIuMiA4MS45LTM5IDIzLjEgMS44IDI5LjMgOC4yIDM2LjEgMTIuNyAuMyAuMiAuNCAuNSAuNyAuOS0uNSAwLS43IC4xLS45IDAtNy0yLjctMTQuMy0zLjMtMjEuOC0zLjN6bS0xMi4zLTI0LjFjLS4xIC4yLS4xIC40LS4yIC42LTI4LjktNC40LTQ4LTcuOS02OC41IDQtMTcgOS45LTMxLjQgMjAuNS02MiAyNC40LTI3LjEgMy40LTQ1LjEgMi40LTY2LjEtOC0uMy0uMi0uNi0uNC0xLS42IDAtLjIgLjEtLjMgLjEtLjUgMjQuOSAzLjggMzYuNCA1LjEgNTUuNS01LjggMjIuMy0xMi45IDQwLjEtMjYuNiA3MS4zLTMxIDI5LjYtNC4xIDUxLjMgMi41IDcwLjkgMTYuOXpNMjY4LjYgOTcuM2MtLjYtLjYtMS4xLTEuMi0yLjEtMi4zIDcuNiAwIDI5LjctMS4yIDUzLjQgOC40IDE5LjcgOCAzMi4yIDIxIDUwLjIgMzIuOSAxMS4xIDcuMyAyMy40IDkuMyAzNi40IDguMSA0LjMtLjQgOC41LTEuMiAxMi44LTEuNyAuNC0uMSAuOSAwIDEuNSAuMy0uNiAuNC0xLjIgLjktMS44IDEuMi04LjEgNC0xNi43IDYuMy0yNS42IDcuMS0yNi4xIDIuNi01MC4zLTMuNy03My40LTE1LjQtMTkuMy05LjktMzYuNC0yMi45LTUxLjQtMzguNnpNNjQwIDMzNS43Yy0zLjUgMy4xLTIyLjcgMTEuNi00Mi43IDUuMy0xMi4zLTMuOS0xOS41LTE0LjktMzEuNi0yNC4xLTEwLTcuNi0yMC45LTcuOS0yOC4xLTguNCAuNi0uOCAuOS0xLjIgMS4yLTEuNCAxNC44LTkuMiAzMC41LTEyLjIgNDcuMy02LjUgMTIuNSA0LjIgMTkuMiAxMy41IDMwLjQgMjQuMiAxMC44IDEwLjQgMjEgOS45IDIzLjEgMTAuNSAuMS0uMSAuMiAwIC40IC40em0tMjEyLjUgMTM3YzIuMiAxLjIgMS42IDEuNSAxLjUgMi0xOC41LTEuNC0zMy45LTcuNi00Ni44LTIyLjItMjEuOC0yNC43LTQxLjctMjcuOS00OC42LTI5LjcgLjUtLjIgLjgtLjQgMS4xLS40IDEzLjEgLjEgMjYuMSAuNyAzOC45IDMuOSAyNS4zIDYuNCAzNSAyNS40IDQxLjYgMzUuMyAzLjIgNC44IDcuMyA4LjMgMTIuMyAxMS4xeiJdfSxXdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0IixpY29uOls1MTIsNTEyLFtdLCJmMWQzIiwiTTIxNi4zIDE1OC40bC03OS4zIDBjLTQwLTEwLjUtMTMwLjUtNy44LTEzMC41IDc0LjggMCAzMC4xIDE1IDUxLjIgMzUgNjEtMjUuMSAyMy0zNyAzMy44LTM3IDQ5LjIgMCAxMSA0LjUgMjEuMSAxNy45IDI2LjgtMTQuMyAxMy40LTIyLjQgMjMuMS0yMi40IDQxLjQgMCAzMi4xIDI4IDUwLjggMTAxLjYgNTAuOCA3MC44IDAgMTExLjgtMjYuNCAxMTEuOC03My4yIDAtNTguNy00NS4yLTU2LjUtMTUxLjYtNjNsMTMuNC0yMS42YzI3LjMgNy42IDExOC43IDEwIDExOC43LTY3LjkgMC0xOC43LTcuNy0zMS43LTE1LTQxLjFsMzcuNC0yLjggMC0zNC41ek0xNTIuOSA0MDAuM2MwIDMyLjEtMTA0LjkgMzIuMS0xMDQuOSAyLjQgMC04LjEgNS4zLTE1IDEwLjYtMjEuNSA3Ny43IDUuMyA5NC4zIDMuNCA5NC4zIDE5LjF6TTEwMi4xIDI2NS43Yy01Mi44IDAtNTAuNS03MS4yIDEuMi03MS4yIDQ5LjUgMCA1MC44IDcxLjItMS4yIDcxLjJ6TTIzNS40IDM2Ni4ybDAtMzIuMWMyNi43LTMuNyAyNy4yLTIgMjcuMi0xMWwwLTExOS41YzAtOC41LTIuMS03LjQtMjcuMi0xNi4zbDQuNS0zMi45IDg0LjIgMCAwIDE2OC43YzAgNi41IC40IDcuMyA2LjUgOC4xbDIwLjcgMi44IDAgMzIuMS0xMTUuOSAwem01Mi41LTI0NC4zYy0yMy4yIDAtMzYuNi0xMy40LTM2LjYtMzYuNnMxMy40LTM1LjggMzYuNi0zNS44YzIzLjYgMCAzNyAxMi42IDM3IDM1LjhzLTEzLjQgMzYuNi0zNyAzNi42ek01MTIgMzUwLjVjLTE3LjUgOC41LTQzLjEgMTYuMy02Ni4zIDE2LjMtNDguNCAwLTY2LjctMTkuNS02Ni43LTY1LjVsMC0xMDYuNWMwLTUuNCAxLTQuMS0zMS43LTQuMWwwLTM2LjJjMzUuOC00LjEgNTAtMjIgNTQuNS02Ni4zbDM4LjYgMGMwIDY1LjgtMS4zIDYxLjggMy4zIDYxLjhsNTcuMyAwIDAgNDAuNi02MC42IDAgMCA5Ny4xYzAgNi45LTQuOSA1MS40IDYwLjYgMjYuOGwxMSAzNS44eiJdfSxHdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3B0aW4tbW9uc3RlciIsaWNvbjpbNTc2LDUxMixbXSwiZjIzYyIsIk01NzIuOCA0MjEuNGM1LjYtOS41IDQuNy0xNS4yLTUuNC0xMS42LTMtNC45LTctOS41LTExLjEtMTMuOCAyLjktOS43LS43LTE0LjItMTAuOC05LjItNC42LTMuMi0xMC4zLTYuNS0xNS45LTkuMiAwLTE1LjEtMTEuNi0xMS42LTE3LjYtNS43LTEwLjQtMS41LTE4LjctLjMtMjYuOCA1LjcgLjMtNi41IC4zLTEzIC4zLTE5LjcgMTIuNiAwIDQwLjItMTEgNDUuOS0zNi4yIDEuNC02LjggMS42LTEzLjgtLjMtMjEuOS0zLTEzLjUtMTQuMy0yMS4zLTI1LjEtMjUuNy0uOC01LjktNy42LTE0LjMtMTQuOS0xNS45cy0xMi40IDQuOS0xNC4xIDEwLjNjLTguNSAwLTE5LjIgMi44LTIxLjEgOC40LTUuNC0uNS0xMS4xLTEuNC0xNi44LTEuOSAyLjctMS45IDUuNC0zLjUgOC40LTQuNiA1LjQtOS4yIDE0LjYtMTEuNCAyNS43LTExLjZsMC0yLjhjMTkuNS0uNSA0My01LjkgNTMuOC0xOC4xIDEyLjctMTMuOCAxNC42LTM3LjMgMTIuNC01NS4xLTIuNC0xNy4zLTkuNy0zNy42LTI0LjYtNDguMS04LjQtNS45LTIxLjYtLjgtMjIuNyA5LjUtMi4yIDE5LjYgMS4yIDMwLTM4LjYgMjUuMS0xMC4zLTIzLjgtMjQuNi00NC42LTQyLjctNjAtNjkuNi01OS43LTE2Ny43LTUzLjgtMjQ0LjItMzcuNiAxOS43IDQuNiA0MS4xIDguNiA1OS43IDE2LjUtMjYuMiAyLjQtNTIuNyAxMS4zLTc2LjIgMjMuMi0zMi44IDE3LTQ0IDI5LjktNTYuNyA0Mi40IDE0LjktMi4yIDI4LjktNS4xIDQzLjgtMy44LTkuNyA1LjQtMTguNCAxMi4yLTI2LjUgMjAtMjUuOCAuOS0yMy44LTUuMy0yNi4yLTI1LjktMS4xLTEwLjUtMTQuMy0xNS40LTIyLjctOS43LTI4LjEgMTkuOS0zMy41IDc5LjktMTIuMiAxMDMuNSAxMC44IDEyLjIgMzUuMSAxNy4zIDU0LjkgMTcuOC0uMyAxLjEtLjMgMS45LS4zIDIuNyAxMC44IC41IDE5LjUgMi43IDI0LjYgMTEuNiAzIDEuMSA1LjcgMi43IDguMSA0LjYtNS40IC41LTExLjEgMS40LTE2LjUgMS45LTMuMy02LjYtMTMuNy04LjEtMjEuMS04LjEtMS42LTUuNy02LjUtMTIuMi0xNC4xLTEwLjMtNi44IDEuOS0xNC4xIDEwLTE0LjkgMTUuOS0yMi41IDkuNS0zMC4xIDI2LjgtMjUuMSA0Ny42IDUuMyAyNC44IDMzIDM2LjIgNDUuOSAzNi4ybDAgMTkuN2MtNi42LTUtMTQuMy03LjUtMjYuOC01LjctNS41LTUuNS0xNy4zLTEwLjEtMTcuMyA1LjctNS45IDIuNy0xMS40IDUuOS0xNS45IDkuMi05LjgtNC45LTEzLjYtMS43LTExLjEgOS4yLTQuMSA0LjMtNy44IDguNi0xMS4xIDEzLjgtMTAuMi0zLjctMTEgMi4yLTUuNCAxMS42LTEuMSAzLjUtMS42IDctMS45IDEwLjgtLjUgMzEuNiA0NC42IDY0IDczLjUgNjUuMSAxNy4zIC41IDM0LjYtOC40IDQzLTIzLjUgMTEzLjIgNC45IDIyNi43IDQuMSAzNDAuMiAwIDguMSAxNS4xIDI1LjQgMjQuMyA0Mi43IDIzLjUgMjkuMi0xLjEgNzQuMy0zMy41IDczLjUtNjUuMSAuMi0zLjctLjctNy4yLTEuNy0xMC43ek00OTkgMTY3LjRjMS4xLTMgMi40LTguNCAyLjQtMTQuNiAwLTUuOSA2LjgtOC4xIDE0LjEtLjggMTEuMSAxMS42IDE0LjkgNDAuNSAxMy44IDUxLjEtNC4xLTEzLjYtMTMtMjktMzAuMy0zNS43em0tNC42IDYuN2MxOS41IDYuMiAyOC42IDI3LjYgMjkuNyA0OC45LTEuMSAyLjctMyA1LjQtNC45IDcuNi01LjcgNS45LTE1LjQgMTAtMjYuMiAxMi4yIDQuMy0yMS4zIC4zLTQ3LjMtMTIuNy02MyA0LjktLjggMTAuOS0yLjQgMTQuMS01Ljd6bS0yNC4xIDYuOGMxMy44IDExLjkgMjAgMzkuMiAxNC4xIDYzLjUtNC4xIC41LTguMSAuOC0xMS42IC44LTEuOS0yMS45LTYuOC00NC0xNC4zLTY0LjYgMy43IC4zIDguMSAuMyAxMS44IC4zek00Ny43IDIwM2MtMS4xLTEwLjUgMi40LTM5LjUgMTMuOC01MS4xIDctNy4zIDE0LjEtNS4xIDE0LjEgLjggMCA2LjIgMS40IDExLjYgMi40IDE0LjYtMTcuMyA2LjgtMjYuMiAyMi4yLTMwLjMgMzUuN3ptOS43IDI3LjZjLTEuOS0yLjItMy41LTQuOS00LjktNy42IDEuNC0yMS4zIDEwLjMtNDIuNyAyOS43LTQ4LjkgMy4yIDMuMiA5LjIgNC45IDE0LjEgNS43LTEzIDE1LjctMTcgNDEuNi0xMi43IDYzLTEwLjgtMi4yLTIwLjUtNi0yNi4yLTEyLjJ6bTQ3LjkgMTQuNmMtNC4xIDAtOC4xLS4zLTEyLjctLjgtNC42LTE4LjYtMS45LTM4LjkgNS40LTUzbDAgLjMgMTIuMi01LjFjNC45LTEuOSA5LjctMy44IDE0LjktNC45LTEwLjcgMTkuNy0xNy40IDQxLjMtMTkuOCA2My41em0xODQtMTAuNWE3Ni4xIDc2LjEgMCAxIDEgMC0xNTIuMiA3Ni4xIDc2LjEgMCAxIDEgMCAxNTIuMnptMTE1LjYgMjIuMWMtLjMgMTcuOC03IDQ4LjktMjMgNTctMTMuMiA2LjYtNi41LTcuNS0xNi41LTU4LjEgMTMuMyAuMyAyNi42IC4zIDM5LjUgMS4xem0tNTQtMS42Yy44IDQuOSAzLjggNDAuMy0xLjYgNDEuOS0xMS42IDMuNS00MCA0LjMtNTEuMS0xLjEtNC4xLTMtNC42LTM1LjktNC4zLTQxLjFsMCAuM2MxOC45LS4zIDM4LjEtLjMgNTcgMHpNMjc4LjUgMzA5Yy0xMyAzLjUtNDEuNiA0LjEtNTQuNi0xLjYtNi41LTIuNy0zLjgtNDIuNC0xLjktNTEuNiAxOS4yLS41IDM4LjQtLjUgNTcuOC0uOGwwIC4zYzEuMSA4LjMgMy4zIDUxLjItMS4zIDUzLjd6TTE3MiAyNTcuOWMxMi4yLS44IDI0LjYtMS40IDM2LjgtMS42LTIuNCAxNS40LTMgNDMuNS00LjkgNTIuMi0xLjEgNi44LTQuMyA2LjgtOS43IDQuMy0yMS45LTkuOC0yNy42LTM1LjItMjIuMi01NC45em0tMzUuNCAzMS4zYzcuOC0xLjEgMTUuNy0xLjkgMjMuNS0yLjcgMS42IDYuMiAzLjggMTEuOSA3IDE3LjYgMTAgMTcgNDQgMzUuNyA0NS4xIDcgNi4yIDE0LjkgNDAuOCAxMi4yIDU0LjkgMTAuOCAxNS43LTEuNCAyMy44LTEuNCAyNi44LTE0LjMgMTIuNCA0LjMgMzAuOCA0LjEgNDQgMyAxMS4zLS44IDIwLjgtLjUgMjQuNi04LjkgMS4xIDUuMSAxLjkgMTEuNiA0LjYgMTYuOCAxMC44IDIxLjMgMzcuMyAxLjQgNDYuOC0zMS42IDguNiAuOCAxNy42IDEuOSAyNi41IDIuNy0uNCAxLjMtMy44IDcuMyA3LjMgMTEuNi00Ny42IDQ3LTk1LjcgODcuOC0xNjMuMiAxMDctNjMuMi0yMC44LTExMi4xLTU5LjUtMTU1LjktMTA2LjUgOS42LTMuNCAxMC40LTguOCA4LTEyLjV6TTExNSA0NjEuN2MtMy44IDE3LjgtMjEuOSAyOS43LTM5LjcgMjguOS0xOS4yLS44LTQ2LjUtMTctNTkuMi0zNi41LTIuNy0zMS4xIDQzLjgtNjEuMyA2Ni4yLTU0LjYgMTQuOSA0LjMgMjcuOCAzMC44IDMzLjUgNTQgMCAzLS4zIDUuNy0uOCA4LjJ6bS04LjctNjZjLS41LTEzLjUtLjUtMjctLjMtNDAuNWwuMyAwYzIuNy0xLjYgNS43LTMuOCA3LjgtNi41IDYuNS0xLjYgMTMtNS4xIDE1LjEtOS4yIDMuMy03LjEtNy03LjUtNS40LTEyLjQgMi43LTEuMSA1LjctMi4yIDcuOC0zLjUgMjkuMiAyOS4yIDU4LjYgNTYuNSA5Ny4zIDc3LTM2LjggMTEuMy03Mi40IDI3LjYtMTA1LjkgNDctMS4yLTE4LjYtNy43LTM1LjktMTYuNy01MS45em0zMzcuNiA2NC42Yy0xMDMgMy41LTIwNi4yIDQuMS0zMDkuNCAwIDAgLjMgMCAuMy0uMyAuM2wwLS4zIC4zIDBjMzUuMS0yMS42IDcyLjItMzkuMiAxMTIuNC01MC44IDExLjYgNS4xIDIzIDkuNSAzNC45IDEzLjIgMi4yIC44IDIuMiAuOCA0LjMgMCAxNC4zLTQuMSAyOC40LTkuMiA0Mi4yLTE1LjQgNDEuNSAxMS43IDc4LjggMzEuNyAxMTUuNiA1M3ptMTAuNS0xMi40Yy0zNS45LTE5LjUtNzMtMzUuOS0xMTEuOS00Ny42IDM4LjEtMjAgNzEuOS00Ny4zIDEwMy41LTc2LjcgMi4yIDEuNCA0LjYgMi40IDcuNiAzLjIgMCAuOCAuMyAxLjkgLjUgMi40LTQuNiAyLjctNy44IDYuMi01LjkgMTAuMyAyLjIgMy44IDguNiA3LjYgMTUuMSA4LjkgMi40IDIuNyA1LjEgNS4xIDguMSA2LjggMCAxMy44LS4zIDI3LjYtLjggNDEuM2wuMy0uM2MtOS4zIDE1LjktMTUuNSAzNy0xNi41IDUxLjd6bTEwNS45IDYuMmMtMTIuNyAxOS41LTQwIDM1LjctNTkuMiAzNi41LTE5LjMgLjktNDAuNS0xMy4yLTQwLjUtMzcgNS43LTIzLjIgMTguOS00OS43IDMzLjUtNTQgMjIuNy02LjkgNjkuMiAyMy40IDY2LjIgNTQuNXpNMzczLjEgNzUuMmMtMy44LTcyLjEtMTAwLjgtNzkuNy0xMjYtMjMuNSA0NC42LTI0LjMgOTAuMy0xNS43IDEyNiAyMy41ek03NSA0MDcuMWMtMTUuNyAxLjYtNDkuNSAyNS40LTQ5LjUgNDMuMiAwIDExLjYgMTUuNyAxOS41IDMyLjIgMTQuOSAxMi4yLTMuMiAzMS4xLTE3LjYgMzUuOS0yNy4zIDYtMTEuNi0zLjctMzIuNy0xOC42LTMwLjh6TTI5MC45IDIzMC45YzI4LjYgMCA1MS45LTIxLjYgNTEuOS00OC40IDAtMzYuMS00MC41LTU4LjEtNzIuMi00NC4zIDkuNSAzIDE2LjUgMTEuNiAxNi41IDIxLjYgMCAyMy4zLTMzLjMgMzItNDYuNSAxMS4zLTcuMyAzNC4xIDE5LjQgNTkuOCA1MC4zIDU5Ljh6TTY4LjIgNDc0LjFjLjUgNi41IDEyLjIgMTIuNyAyMS42IDkuNSA2LjgtMi43IDE0LjYtMTAuNSAxNy4zLTE2LjIgMy03LTEuMS0yMC05LjctMTguNC04LjkgMS42LTI5LjcgMTYuNy0yOS4yIDI1LjF6bTQzMy4yLTY3Yy0xNC45LTEuOS0yNC42IDE5LjItMTguOSAzMC44IDQuOSA5LjcgMjQuMSAyNC4xIDM2LjIgMjcuMyAxNi41IDQuNiAzMi4yLTMuMiAzMi4yLTE0LjkgMC0xNy44LTMzLjgtNDEuNi00OS41LTQzLjJ6TTQ3OSA0NDljLTguNC0xLjYtMTIuNCAxMS4zLTkuNSAxOC40IDIuNCA1LjcgMTAuMyAxMy41IDE3LjMgMTYuMiA5LjIgMy4yIDIxLjEtMyAyMS4zLTkuNSAuOS04LjQtMjAuMi0yMy41LTI5LjEtMjUuMXoiXX0sWXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImplbmtpbnMiLGljb246WzQ0OCw1MTIsW10sImYzYjYiLCJNNDU1LjQgNDI1Yy0xLjQtMTEuMi0xOS0yMy4xLTI4LjItMzEuOS01LjEtNS0yOS0yMy4xLTMwLjQtMjkuOS0xLjQtNi42IDkuNy0yMS41IDEzLjMtMjguOSA1LjEtMTAuNyA4LjgtMjMuNyAxMS4zLTMyLjYgMTguOC02Ni4xIDIwLjctMTU2LjktNi4yLTIxMS4yLTEwLjItMjAuNi0zOC42LTQ5LTU2LjQtNjIuNS00Mi0zMS43LTExOS42LTM1LjMtMTcwLjEtMTYuNi0xNC4xIDUuMi0yNy44IDkuOC00MC4xIDE3LjEtMzMuMSAxOS40LTY4LjMgMzIuNS03OC4xIDcxLjYtMjQuMiAxMC44LTMxLjUgNDEuOC0zMC4zIDc3LjggLjIgNyA0LjEgMTUuOCAyLjcgMjIuNC0uNyAzLjMtNS4yIDcuNi02LjEgOS44LTExLjYgMjcuNy0yLjMgNjQgMTEuMSA4My43IDguMSAxMS45IDIxLjUgMjIuNCAzOS4yIDI1LjIgLjcgMTAuNiAzLjMgMTkuNyA4LjIgMzAuNCAzLjEgNi44IDE0LjcgMTkgMTAuNCAyNy43LTIuMiA0LjQtMjEgMTMuOC0yNy4zIDE3LjYtMjEuMSAxMi41LTM2LjQgMjAuMy01NS45IDM0LjMtMTIuNiA5LTMyLjMgMTAuMi0yOS4yIDMxLjEgMi4xIDE0LjEgMTAuMSAzMS42IDE0LjcgNDUuOCAuNyAyIDEuNCA0LjEgMi4xIDZsNDIyIDBjNC45LTE1LjMgOS43LTMwLjkgMTQuNi00Ny4yIDMuNC0xMS40IDEwLjItMjcuOCA4LjctMzkuN3pNMTc0LjIgMzMuN2MxLjgtLjUgMy40IC43IDQuOSAyLjQtLjIgNS4yLTUuNCA1LjEtOC45IDYuOC01LjQgNi43LTEzLjQgOS44LTIwIDE3LjItNi44IDcuNS0xNC40IDI3LjctMjMuNCAzMC00LjUgMS4xLTkuNy0uOC0xMy42LS41LTEwLjQgLjctMTcuNyA2LTI4LjMgNy41IDEzLjYtMjkuOSA1Ni4xLTU0IDg5LjMtNjMuNHpNNjkuNCAxMjcuM2MxMy41LTE0LjkgMzIuMS0yNC4xIDU0LjgtMjUuOSAxMS43IDI5LjctOC40IDY1LS45IDk3LjYgMi4zIDkuOSAxMC4yIDI1LjQtMi40IDI1LjcgLjMtMjguMy0zNC44LTQ2LjMtNjEuMy0yOS42LTEuOC0yMS41LTQuOS01MS43IDkuOC02Ny44em0zNi43IDIwMC4yYy0xLTQuMS0yLjctMTIuOS0yLjMtMTUuMSAxLjYtOC43IDE3LjEtMTIuNSAxMS0yNC43LTExLjMtLjEtMTMuOCAxMC4yLTI0LjEgMTEuMy0yNi43IDIuNi00NS42LTM1LjQtNDQuNC01OC40IDEtMTkuNSAxNy42LTM4LjIgNDAuMS0zNS44IDE2IDEuOCAyMS40IDE5LjIgMjQuNSAzNC43IDkuMiAuNSAyMi41LS40IDI2LjktNy42LS42LTE3LjUtOC44LTMxLjYtOC4yLTQ3LjcgMS0zMC4zIDE3LjUtNTcuNiA0LjgtODcuNCAxMy42LTMwLjkgNTMuNS01NS4zIDgzLjEtNzAgMzYuNi0xOC4zIDk0LjktMy43IDEyOS4zIDE1LjggMTkuNyAxMS4xIDM0LjQgMzIuNyA0OC4zIDUwLjctMTkuNS01LjgtMzYuMSA0LjItMzMuMSAyMC4zIDE2LjMtMTQuOSA0NC4yLS4yIDUyLjUgMTYuNCA3LjkgMTUuOCA3LjggMzkuMyA5IDYyLjggMi45IDU3LTEwLjQgMTE1LjktMzkuMSAxNTcuMS03LjcgMTEtMTQuMSAyMy0yNC45IDMwLjYtMjYgMTguMi02NS40IDM0LjctOTkuMiAyMy40LTQ0LjctMTUtNjUtNDQuOC04OS41LTc4LjggLjcgMTguNyAxMy44IDM0LjEgMjYuOCA0OC40IDExLjMgMTIuNSAyNSAyNi42IDM5LjcgMzIuNC0xMi4zLTIuOS0zMS4xLTMuOC0zNi4yIDcuMi0yOC42LTEuOS01NS4xLTQuOC02OC43LTI0LjItMTAuNi0xNS40LTIxLjQtNDEuNC0yNi4zLTYxLjR6bTIyMiAxMjQuMWM0LjEtMyAxMS4xLTIuOSAxNy40LTMuNi01LjQtMi43LTEzLTMuNy0xOS4zLTIuMi0uMS00LjItMi02LjgtMy4yLTEwLjIgMTAuNi0zLjggMzUuNS0yOC41IDQ5LjYtMjAuMyA2LjcgMy45IDkuNSAyNi4yIDEwLjEgMzcgLjQgOS0uOCAxOC00LjUgMjIuOC0xOC44LS42LTM1LjgtMi44LTUwLjctNyAuOS02LjEtMS0xMi4xIC42LTE2LjV6bS0xNy4yLTIwYy0xNi44IC44LTI2LTEuMi0zOC4zLTEwLjggLjItLjggMS40LS41IDEuNS0xLjQgMTggOCA0MC44LTMuMyA1OS00LjktNy45IDUuMS0xNC42IDExLjYtMjIuMiAxNy4xem0tMTIuMSAzMy4yYy0xLjYtOS40LTMuNS0xMi0yLjgtMjAuMiAyNS0xNi42IDI5LjcgMjguNiAyLjggMjAuMnpNMTk0LjMgNDM4LjZjLTExLjYtLjctNDguMS0xNC0zOC41LTIzLjcgOS40IDYuNSAyNy41IDQuOSA0MS4zIDcuMyAuOCA0LjQtMi44IDEwLjItMi44IDE2LjR6TTI2IDQ5Ny4xYy00LjMtMTIuNy05LjItMjUuMS0xNC44LTM2LjkgMzAuOC0yMy44IDY1LjMtNDguOSAxMDIuMi02My41IDIuOC0xLjEgMjMuMiAyNS40IDI2LjIgMjcuNiAxNi41IDExLjcgMzcgMjEgNTYuMiAzMC4yIDEuMiA4LjggMy45IDIwLjIgOC43IDM1LjUgLjcgMi4zIDEuNCA0LjcgMi4yIDcuMmwtMTgwLjcgMCAwLS4xem0yNDAuNiA1LjdsLS44IDBjLjMtLjIgLjUtLjQgLjgtLjVsMCAuNXptNy41LTUuN2MyLjEtMS40IDQuMy0yLjggNi40LTQuMyAxLjEgMS40IDIuMiAyLjggMy4yIDQuM2wtOS42IDB6bTE1LjEtMjQuN2MtMTAuOCA3LjMtMjAuNiAxOC4zLTMzLjMgMjUuMi02IDMuMy0yNyAxMS43LTMzLjQgMTAuMi0zLjYtLjgtMy45LTUuMy01LjQtOS41LTMuMS05LTEwLjEtMjMuNC0xMC44LTM3LS44LTE3LjItMi41LTQ2IDE2LTQyLjQgMTQuOSAyLjkgMzIuMyA5LjcgNDMuOSAxNi4xIDcuMSAzLjkgMTEuMSA4LjYgMjEuOSA5LjUtLjEgMS40LS4xIDIuOC0uMiA0LjMtNS45IDMuOS0xNS4zIDMuOC0yMS44IDcuMSA5LjUgLjQgMTcgMi43IDIzLjUgNS45LS4xIDMuNC0uMyA3LS40IDEwLjZ6bTUzLjQgMjQuN2wtMTQgMGMtLjEtMy4yLTIuOC01LjgtNi4xLTUuOHMtNS45IDIuNi02LjEgNS44bC0xNy40IDBjLTIuOC00LjQtNS43LTguNi04LjktMTIuNSAyLjEtMi4yIDQtNC43IDYtNi45IDkgMy43IDE0LjgtNC45IDIxLjctNC4yIDcuOSAuOCAxNC4yIDExLjcgMjUuNCAxMWwtLjYgMTIuNnptOC43IDBjLjItNCAuNC03LjggLjYtMTEuNSAxNS42LTcuMyAyOSAxLjMgMzUuNyAxMS41bC0zNi4zIDB6bTgzLjQtMzdjLTIuMyAxMS4yLTUuOCAyNC05LjkgMzcuMS0uMi0uMS0uNC0uMS0uNi0uMWwtMjcuOSAwYy42LTEuMSAxLjItMi4yIDEuOS0zLjMtMi42LTYuMS05LTguNy0xMC45LTE1LjUgMTIuMS0yMi43IDYuNS05My40LTI0LjItNzguNSA0LjMtNi4zIDE1LjYtMTEuNSAyMC44LTE5LjMgMTMgMTAuNCAyMC44IDIwLjMgMzMuMiAzMS40IDYuOCA2IDIwIDEzLjMgMjEuNCAyMy4xIC44IDUuNS0yLjYgMTguOS0zLjggMjUuMXpNMTkwLjUgMTMwLjVjNS40LTE0LjkgMjcuMi0zNC43IDQ1LTMyIDcuNyAxLjIgMTggOC4yIDEyLjIgMTcuNy0zMC4yLTctNDUuMiAxMi42LTU0LjQgMzMuMS04LjEtMi00LjktMTMuMS0yLjgtMTguOHptMTg0LjEgNjMuMWM4LjItMy42IDIyLjQtLjcgMjkuNi01LjMtNC4yLTExLjUtMTAuMy0yMS40LTkuMy0zNy43IC41IDAgMSAwIDEuNCAuMSA2LjggMTQuMiAxMi43IDI5LjIgMjEuNCA0MS43LTUuNyAxMy41LTQzLjYgMjUuNC00My4xIDEuMnptLTk2LjggMi43Yy02LjgtMTAuOS0xOS0zMi41LTE0LjUtNDUuMyA2LjUgMTEuOSA4LjYgMjQuNCAxNy44IDMzLjMgNC4xIDQgMTIuMiA5IDguMiAyMC4yLS45IDIuNy03LjggOC42LTExLjcgOS43LTE0LjQgNC4zLTQ3LjkgLjktMzYuNi0xNy4xIDExLjkgLjcgMjcuOSA3LjggMzYuOC0uOHptMjcuMyA3MGMzLjggNi42IDEuNCAxOC43IDEyLjEgMjAuNiAyMC4yIDMuNCA0My42LTEyLjMgNTguMS0xNy44IDktMTUuMi0uOC0yMC43LTguOS0zMC41LTE2LjYtMjAtMzguOC00NC44LTM4LTc0LjcgNi43LTQuOSA3LjMgNy40IDguMiA5LjcgOC43IDIwLjMgMzAuNCA0Ni4yIDQ2LjMgNjMuNSAzLjkgNC4zIDEwLjMgOC40IDExIDExLjIgMi4xIDguMi01LjQgMTgtNC41IDIzLjUtMjEuNyAxMy45LTQ1LjggMjkuMS04MS40IDI1LjYtNy40LTYuNy0xMC4zLTIxLjQtMi45LTMxLjF6bS0yMDEuMy05LjJjLTYuOC0zLjktOC40LTIxLTE2LjQtMjEuNC0xMS40LS43LTkuMyAyMi4yLTkuMyAzNS41LTcuOC03LjEtOS4yLTI5LjEtMy41LTQwLjMtNi42LTMuMi05LjUgMy42LTEzLjEgNS45IDQuNy0zNC4xIDQ5LjgtMTUuOCA0Mi4zIDIwLjN6bTI5OS42IDI4LjhjLTEwLjEgMTkuMi0yNC40IDQwLjQtNTQgNDEtLjYtNi4yLTEuMS0xNS42IDAtMTkuNCAyMi43LTIuMiAzNi42LTEzLjcgNTQtMjEuNnpNMjYxLjUgMjk4LjNjMTguOSA5LjkgNTMuNiAxMSA3OS4zIDEwLjIgMS40IDUuNiAxLjMgMTIuNiAxLjQgMTkuNC0zMyAxLjgtNzItNi40LTgwLjctMjkuNnpNMzUzLjcgMzQ1Yy0xLjcgNC4zLTUuMyA5LjMtOS44IDExLjEtMTIuMSA0LjktNDUuNiA4LjctNjIuNC0uMy0xMC43LTUuNy0xNy41LTE4LjUtMjMuNC0yNi0yLjgtMy42LTE2LjktMTIuOS0uMi0xMi45IDEzLjEgMzIuNyA1OCAyOSA5NS44IDI4LjF6Il19LEt1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzbGlkZXNoYXJlIixpY29uOls1MTIsNTEyLFtdLCJmMWU3IiwiTTE4Ny45IDE1My43Yy0zNCAwLTYxLjcgMjUuNy02MS43IDU3LjcgMCAzMS43IDI3LjcgNTcuNyA2MS43IDU3LjdzNjEuNy0yNiA2MS43LTU3LjdjMC0zMi0yNy43LTU3LjctNjEuNy01Ny43em0xNDMuNCAwYy0zNCAwLTYxLjcgMjUuNy02MS43IDU3LjcgMCAzMS43IDI3LjcgNTcuNyA2MS43IDU3LjcgMzQuMyAwIDYxLjctMjYgNjEuNy01Ny43IC4xLTMyLTI3LjQtNTcuNy02MS43LTU3Ljd6bTE1Ni42IDkwbC02IDQuMyAwLTE5OC4zYzAtMjcuNC0yMC42LTQ5LjctNDYtNDkuN0w3Ni44IDBjLTI1LjQgMC00NiAyMi4zLTQ2IDQ5LjdsMCAxOTguM2MtMi0xLjQtNC4zLTIuOS02LjMtNC4zLTE1LjEtMTAuNi0yNS4xIDQtMTYgMTcuNyAxOC4zIDIyLjYgNTMuMSA1MC4zIDEwNi4zIDcyLTU2LjMgMTkxLjcgMTM3LjQgMjIyLjMgMTM0LjMgMTI0LjEgMC0uNyAuMy01Ni42IC4zLTk2LjYgNS4xIDEuMSA5LjQgMi4zIDEzLjcgMy4xIDAgMzkuNyAuMyA5Mi44IC4zIDkzLjUtMy4xIDk4LjMgMTkwLjYgNjcuNyAxMzQuMy0xMjQgNTMuMS0yMS43IDg4LTQ5LjQgMTA2LjMtNzIgOS4xLTEzLjgtLjktMjguMy0xNi4xLTE3Ljh6bS0zMC41IDE5LjJjLTY4LjkgMzcuNC0xMjguMyAzMS4xLTE2MC42IDI5LjctMjMuNy0uOS0zMi42IDkuMS0zMy43IDI0LjktMTAuMy03LjctMTguNi0xNS41LTIwLjMtMTcuMS01LjEtNS40LTEzLjctOC0yNy4xLTcuNy0zMS43IDEuMS04OS43IDcuNC0xNTcuNC0yOGwwLTE5Mi40YzAtMzQuOSA4LjktNDUuNyA0MC42LTQ1LjdsMzE3LjcgMGMzMC4zIDAgNDAuOSAxMi45IDQwLjkgNDUuN2wwIDE5MC42LS4xIDB6Il19LFp1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1YmVyIixpY29uOls0NDgsNTEyLFtdLCJmNDAyIiwiTTQxNC4xIDMyTDMzLjkgMzJDMTUuMiAzMiAwIDQ3LjIgMCA2NS45TDAgNDQ2YzAgMTguOCAxNS4yIDM0IDMzLjkgMzRMNDE0IDQ4MGMxOC43IDAgMzMuOS0xNS4yIDMzLjktMzMuOWwwLTM4MC4yQzQ0OCA0Ny4yIDQzMi44IDMyIDQxNC4xIDMyek0yMzcuNiAzOTEuMUMxNjMgMzk4LjYgOTYuNCAzNDQuMiA4OC45IDI2OS42bDk0LjQgMCAwIDIwLjRjMCAzLjcgMyA2LjggNi44IDYuOGw2Ny45IDBjMy43IDAgNi44LTMgNi44LTYuOGwwLTY3LjljMC0zLjctMy02LjgtNi44LTYuOGwtNjcuOSAwYy0zLjcgMC02LjggMy02LjggNi44bDAgMjAuNC05NC40IDBjNy02OS40IDY1LjQtMTIyLjIgMTM1LjEtMTIyLjJzMTI4LjEgNTIuOCAxMzUuMSAxMjIuMmM3LjUgNzQuNS00Ni45IDE0MS4xLTEyMS41IDE0OC42eiJdfSxRdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnaXRhbC1vY2VhbiIsaWNvbjpbNTEyLDUxMixbXSwiZjM5MSIsIk04NyA0ODEuOGw3My43IDAgMC03My42LTczLjcgMCAwIDczLjZ6TTI1LjQgMzQ2LjZsMCA2MS42IDYxLjYgMCAwLTYxLjYtNjEuNiAwek00OTEuNiAxNzYuOUM0NjguNiAxMDIuNyA0MDkuMiA0My42IDMzNSAyMC4zIDE2NC45LTMyLjggOCA5My43IDggMjU1LjlsOTUuOCAwYzAtMTAxLjggMTAxLTE4MC41IDIwOC4xLTE0MS43IDM5LjcgMTQuMyA3MS41IDQ2LjEgODUuOCA4NS43IDM5LjEgMTA3LTM5LjcgMjA3LjgtMTQxLjQgMjA4bDAgLjMtLjMgMCAwIDk1LjhjMTYyLjYgMCAyODguOC0xNTYuOCAyMzUuNi0zMjcuMXptLTIzNS4zIDIzMWwwLTk1LjMtOTUuNiAwIDAgOTUuNiA5NS4zIDAgMC0uMyAuMyAweiJdfSxYdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic291bmRjbG91ZCIsaWNvbjpbNjQwLDUxMixbXSwiZjFiZSIsIk02NDAuMiAyOTguNmMtMS4zIDIzLjEtMTEuNSA0NC44LTI4LjQgNjAuNXMtMzkuMiAyNC40LTYyLjMgMjQuMWwtMjE4IDBjLTQuOCAwLTkuNC0yLTEyLjgtNS40cy01LjMtOC01LjMtMTIuOGwwLTIzNC44Yy0uMi00IC45LTggMy4xLTExLjRzNS4zLTYuMSA5LTcuN2MwIDAgMjAuMS0xMy45IDYyLjMtMTMuOSAyNS44IDAgNTEuMSA2LjkgNzMuMyAyMC4xIDE3LjMgMTAuMiAzMi4zIDIzLjggNDQuMSA0MC4xczIwIDM0LjggMjQuMiA1NC40YzcuNS0yLjEgMTUuMy0zLjIgMjMuMS0zLjIgMTEuNy0uMSAyMy4zIDIuMiAzNC4yIDYuN3MyMC41IDExLjMgMjguNyAxOS43IDE0LjYgMTguMyAxOC45IDI5LjMgNi4zIDIyLjYgNS45IDM0LjN6bS0zNTQtMTUzLjVjLjEtMSAwLTItLjMtMi45cy0uOC0xLjgtMS41LTIuNi0xLjUtMS4zLTIuNC0xLjdjLTEuOC0uOC00LS44LTUuOCAwLS45IC40LTEuNyAxLTIuNCAxLjdzLTEuMiAxLjYtMS41IDIuNi0uNCAxLjktLjMgMi45Yy02IDc4LjktMTAuNiAxNTIuOSAwIDIzMS42IC4yIDEuNyAxIDMuMyAyLjMgNC41IDIuNiAyLjQgNi44IDIuNCA5LjQgMCAxLjMtMS4yIDIuMS0yLjggMi4zLTQuNSAxMS4zLTc5LjQgNi42LTE1MiAwLTIzMS42bC4yIDB6bS00NCAyNy4zYy0uMi0xLjgtMS4xLTMuNS0yLjQtNC43cy0zLjEtMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjIgMi45LTIuNCA0LjdjLTcuOSA2Ny45LTcuOSAxMzYuNSAwIDIwNC40IC4zIDEuOCAxLjIgMy40IDIuNSA0LjVzMy4xIDEuOCA0LjggMS44IDMuNS0uNiA0LjgtMS44IDIuMi0yLjggMi41LTQuNWM4LjgtNjcuOCA4LjgtMTM2LjUgLjEtMjA0LjRsLjEgMHptLTQ0LjMtNi45Yy0uMi0xLjgtMS0zLjQtMi4zLTQuNnMtMy0xLjgtNC44LTEuOC0zLjUgLjctNC44IDEuOC0yLjEgMi44LTIuMyA0LjZjLTYuNyA3Mi0xMC4yIDEzOS4zIDAgMjExLjEgMCAxLjkgLjcgMy43IDIuMSA1czMuMSAyLjEgNSAyLjEgMy43LS43IDUtMi4xIDIuMS0zLjEgMi4xLTVjMTAuNS03Mi44IDcuMy0xMzguMiAuMS0yMTEuMWwtLjEgMHptLTQ0IDIwLjZjMC0xLjktLjgtMy44LTIuMS01LjJzLTMuMi0yLjEtNS4yLTIuMS0zLjggLjgtNS4yIDIuMS0yLjEgMy4yLTIuMSA1LjJjLTguMSA2My4zLTguMSAxMjcuNSAwIDE5MC44IC4yIDEuOCAxIDMuNCAyLjQgNC42czMuMSAxLjkgNC44IDEuOSAzLjUtLjcgNC44LTEuOSAyLjItMi44IDIuNC00LjZjOC44LTYzLjMgOC45LTEyNy41IC4zLTE5MC44bC0uMSAwem0tNDQuNSA0Ny42YzAtMS45LS44LTMuOC0yLjEtNS4xcy0zLjItMi4xLTUuMS0yLjEtMy44IC44LTUuMSAyLjEtMi4xIDMuMi0yLjEgNS4xYy0xMC41IDQ5LjItNS41IDkzLjkgLjQgMTQzLjYgLjMgMS42IDEuMSAzLjEgMi4zIDQuMnMyLjggMS43IDQuNSAxLjcgMy4yLS42IDQuNS0xLjcgMi4xLTIuNSAyLjMtNC4yYzYuNi01MC40IDExLjYtOTQuMSAuNC0xNDMuNnptLTQ0LjEtNy41Yy0uMi0xLjgtMS4xLTMuNS0yLjQtNC44cy0zLjItMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjIgMi45LTIuNCA0LjhjLTkuMyA1MC4yLTYuMiA5NC40IC4zIDE0NC41IC43IDcuNiAxMy42IDcuNSAxNC40IDAgNy4yLTUwLjkgMTAuNS05My44IC4zLTE0NC41bC0uMiAwek0yMC43IDI1MC44Yy0uMi0xLjgtMS4xLTMuNS0yLjQtNC44cy0zLjItMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjMgMi45LTIuNCA0LjhjLTguNSAzMy43LTUuOSA2MS42IC42IDk1LjQgLjIgMS43IDEgMy4zIDIuMyA0LjRzMi45IDEuOCA0LjcgMS44IDMuNC0uNiA0LjctMS44IDIuMS0yLjcgMi4zLTQuNGM3LjUtMzQuNSAxMS4yLTYxLjggLjQtOTUuNGwtLjIgMHoiXX0sSnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1maWdtYSIsaWNvbjpbNDQ4LDUxMixbXSwiZTdlNCIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNzMuNyA5NmMtMzMgMC01OS44IDI2LjgtNTkuOCA1OS44IDAgMjEgMTAuOCAzOS40IDI3LjIgNTAuMS0xNi40IDEwLjctMjcuMiAyOS4xLTI3LjIgNTAuMXMxMC44IDM5LjUgMjcuMiA1MC4xYy0xNi40IDEwLjctMjcuMiAyOS4xLTI3LjIgNTAuMSAwIDMzLjEgMjcuMSA1OS44IDYwLjEgNTkuOCAzMy4yIDAgNjAuNi0yNi45IDYwLjYtNjAuM2wwLTU1LjdjMTAuNiA5LjggMjQuOCAxNS44IDQwLjQgMTUuOGwxLjEgMGMzMyAwIDU5LjgtMjYuOCA1OS44LTU5LjggMC0yMS0xMC44LTM5LjUtMjcuMi01MC4xIDE2LjQtMTAuNyAyNy4yLTI5LjEgMjcuMi01MC4xIDAtMzMtMjYuOC01OS44LTU5LjgtNTkuOEwxNzMuNyA5NnptNDEuNiAyMTkuOGwwIDM5LjljMCAyMi42LTE4LjYgNDEtNDEuMyA0MS0yMi40IDAtNDAuNy0xOC4yLTQwLjctNDAuNSAwLTIyLjMgMTguMS00MC40IDQwLjMtNDAuNGw0MS43IDB6bTAtMTAwLjNsMCA4MC45LTQxLjcgMGMtMjIuMy0uMS00MC4zLTE4LjItNDAuMy00MC41IDAtMjIuMyAxOC4xLTQwLjUgNDAuNS00MC41bDQxLjYgMHptNjAuOCAwYzIyLjMgMCA0MC41IDE4LjEgNDAuNSA0MC41cy0xOC4xIDQwLjUtNDAuNSA0MC41bC0xLjEgMGMtMjIuMyAwLTQwLjQtMTguMS00MC40LTQwLjVzMTguMS00MC41IDQwLjQtNDAuNWwxLjEgMHptLTYwLjgtMTkuM2wtNDEuNiAwYy0yMi4zIDAtNDAuNS0xOC4xLTQwLjUtNDAuNHMxOC4xLTQwLjUgNDAuNS00MC41bDQxLjYgMCAwIDgwLjl6bTYwLjgtODAuOWMyMi4zIDAgNDAuNSAxOC4xIDQwLjUgNDAuNXMtMTguMSA0MC40LTQwLjUgNDAuNGwtNDEuNSAwIDAtODAuOSA0MS41IDB6Il19LGVwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNhIixpY29uOls1MTIsNTEyLFtdLCJmNGVmIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pNMTQ1LjcgMjIxYzEzLTgzLjkgODAuNS05NS43IDEwOC45LTk1LjcgOTkuOCAwIDEyNy41IDgyLjUgMTI3LjUgMTM0LjIgMCA2My42LTQxIDEzMi45LTEyOC45IDEzMi45LTM4LjkgMC05OS4xLTIwLTEwOS40LTk3bDYyLjUgMGMxLjUgMzAuMSAxOS42IDQ1LjIgNTQuNSA0NS4yIDIzLjMgMCA1OC0xOC4yIDU4LTgyLjggMC04Mi41LTQ5LjEtODAuNi01Ni43LTgwLjYtMzMuMSAwLTUxLjcgMTQuNi01NS44IDQzLjhsMTguMiAwLTQ5LjIgNDkuMi00OS00OS4yIDE5LjQgMHoiXX0sdHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNocm9tZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2OCIsIk0wIDI1NmMwLTQ2LjYgMTIuNS05MC40IDM0LjMtMTI4LjlMMTQ0LjEgMzE4LjNjMjEuOSAzOS4yIDYzLjggNjUuNyAxMTEuOSA2NS43IDE0LjMgMCAyNy4xLTIuMyA0MC44LTYuNkwyMjAuNSA1MDkuNkM5NS45IDQ5Mi4zIDAgMzg1LjMgMCAyNTZ6bTM2NS4xIDY1LjZjMTIuMy0xOS4yIDE4LjktNDIuNSAxOC45LTY1LjYgMC0zOC4yLTE2LjgtNzIuNS00My4zLTk2bDE1Mi43IDBjMTIgMjkuNiAxOC42IDYyLjEgMTguNiA5NiAwIDE0MS40LTExNC42IDI1NS4xLTI1NiAyNTZMMzY1LjEgMzIxLjZ6TTQ3Ny44IDEyOEwyNTYgMTI4Yy02Mi45IDAtMTEzLjcgNDQuMS0xMjUuNSAxMDIuN0w1NC4yIDk4LjVDMTAxIDM4LjUgMTc0IDAgMjU2IDAgMzUwLjggMCA0MzMuNSA1MS41IDQ3Ny44IDEyOHpNMzQ0IDI1NmE4OCA4OCAwIDEgMSAtMTc2IDAgODggODggMCAxIDEgMTc2IDB6Il19LHJwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0cmFkZS1mZWRlcmF0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmNTEzIiwiTTI1NiA4LjhhMjQ3LjIgMjQ3LjIgMCAxIDAgMCA0OTQuNCAyNDcuMiAyNDcuMiAwIDEgMCAwLTQ5NC40em0wIDExLjZhMjM1LjYgMjM1LjYgMCAxIDEgMCA0NzEuMiAyMzUuNiAyMzUuNiAwIDEgMSAwLTQ3MS4yek00MTEuMSAxNjMuMWwwLTQ2LjgtMTkzLjggMCAwIDgxLjctMTU1LjEgMCAzNi43IDQ2IDExNy43IDAgMCAxOTYuOCA0OC44IDAgMC0xOTUuOCA4My4zIDAgMC00Ny04My4zIDAgMC0zNC44IDE0NS43IDAgMC0uMXptLTczLjMgNDUuMWwwIDIzLjktODIuOSAwIDAgMTk3LjQtMjYuOCAwIDAtMTk3LjQtMTIzLjggMC0yMC4xLTIzLjkgMTQzLjkgMCAwLTgwLjYgMTcxLjggMCAwIDI0LjQtMTQ1IDAgMCA1Ni4yIDgyLjkgMHptLTE2MS4zLTY5bC0xMi40LTIwLjcgMi4xIDIzLjgtMjMuNSA1LjQgMjMuMyA1LjQtMi4xIDI0IDEyLjMtMjAuNSAyMi4yIDkuNS0xNS43LTE4LjEgMTUuOC0xOC4xLTIyIDkuM3ptLTI5LjYtMTkuN2w5LjMtMTEuNS0xMi43IDUuOS04LTEyLjQgMS43IDEzLjktMTQuMyAzLjggMTMuNyAyLjctLjggMTQuNyA2LjgtMTIuMiAxMy44IDUuMy05LjUtMTAuMnpNMzEyLjMgMjY0LjdsLTEzLjEgNS42LTcuMy0xMi4yIDEuMyAxNC4yLTEzLjkgMy4yIDEzLjkgMy4yLTEuMiAxNC4yIDcuMy0xMi4yIDEzLjEgNS41LTkuNC0xMC43IDkuMy0xMC44em0xMDYuOS03Ny4ybC0yMC45IDkuMS0xMi0xOS42IDIuMiAyMi43LTIyLjMgNS40IDIyLjIgNC45LTEuOCAyMi45IDExLjUtMTkuNiAyMS4yIDguOC0xNS4xLTE3IDE1LTE3LjZ6TTI1NiAyOS45YTIyNi4xIDIyNi4xIDAgMSAwIDAgNDUyLjIgMjI2LjEgMjI2LjEgMCAxIDAgMC00NTIuMnpNMzUwLjYgMTk2bDAgNTEtODMuMyAwIDAgMTk1LjctNTIuNyAwIDAtMTk2LjgtMTE2LjcgMC00MC00OS45IDE1Ny40IDAgMC04MS42IDE5Ny44IDAgMCA1MC43LTE0NS43IDAgMCAzMC45IDgzLjIgMHpNMjU2IDQzLjJjNjAuMyAwIDExNC44IDI1IDE1My42IDY1LjJsLTE5OS4xIDAgMCA4MS42LTE1Ny40IDBDODEuMSAxMDQuOCAxNjEuNCA0My4yIDI1NiA0My4yem0wIDQyNy4xYy0xMTcuOSAwLTIxMy42LTk1LjYtMjEzLjYtMjEzLjUgMC0yMS4yIDMuMS00MS44IDguOS02MS4xbDQzLjggNTYuMyAxMTQuNyAwIDAgMTk2LjggNjQuNiAwIDAtMTk1LjggODMuMyAwIDAtNjIuNy04My4yIDAgMC0xOS4yIDE0NS42IDAgMC01MC44YzMwLjggMzcgNDkuMyA4NC42IDQ5LjMgMTM2LjUgLjEgMTE3LjktOTUuNSAyMTMuNS0yMTMuNCAyMTMuNXpNMTg2LjggMjc1bC0xMS0yMS40IDEuNyAyNC41LTIzLjcgMy45IDIzLjggNS45LTMuNyAyMy44IDEzLTIwLjkgMjEuNSAxMC44LTE1LjgtMTguOCAxNi45LTE3LjEtMjIuNyA5LjN6Il19LGFwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2YWFkaW4iLGljb246WzQ0OCw1MTIsW10sImY0MDgiLCJNMjI0LjUgMTQwLjdDMjI2IDEyMy4xIDIyOS40IDg4IDI3NC4zIDg4bDk4LjYgMGMyMC43IDAgMzIuMS03LjggMzIuMS0yMS42bDAtMTIuM2MwLTEyLjIgOS4zLTIyLjEgMjEuNS0yMi4xUzQ0OCA0MS45IDQ0OCA1NC4xbDAgMzYuNWMwIDQyLjktMjEuNSA2Mi02Ni44IDYybC0xMDAuNSAwYy0zMC4xIDAtMzMgMTQuNy0zMyAyNy4xIDAgMS4zLS4xIDIuNS0uMiAzLjctLjcgMTIuMy0xMC45IDIyLjItMjMuNCAyMi4ycy0yMi43LTkuOC0yMy40LTIyLjJjLS4xLTEuMi0uMi0yLjQtLjItMy43IDAtMTIuMy0zLTI3LjEtMzMtMjcuMWwtMTAwLjcgMEMyMS41IDE1Mi42IDAgMTMzLjUgMCA5MC42TDAgNTQuMUMwIDQxLjkgOS40IDMyIDIxLjYgMzJzMjEuNSA5LjkgMjEuNSAyMi4xbDAgMTIuM0M0My4xIDgwLjIgNTQuNSA4OCA3NS4yIDg4bDk4LjYgMGM0NC44IDAgNDguMyAzNS4xIDQ5LjggNTIuN2wuOSAwek0yMjQgNDU2YzExLjUgMCAyMS40LTcgMjUuNy0xNi4zIDEuMS0xLjggOTcuMS0xNjkuNiA5OC4yLTE3MS40IDExLjktMTkuNi0zLjItNDQuMy0yNy4yLTQ0LjMtMTMuOSAwLTIzLjMgNi40LTI5LjggMjAuM0wyMjQgMzYyIDE1Ny4xIDI0NC4zYy02LjQtMTMuOS0xNS45LTIwLjMtMjkuOC0yMC4zLTI0IDAtMzkuMSAyNC42LTI3LjIgNDQuMyAxLjEgMS45IDk3LjEgMTY5LjYgOTguMiAxNzEuNCA0LjMgOS4zIDE0LjIgMTYuMyAyNS43IDE2LjN6Il19LGlwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXZpYW50YXJ0IixpY29uOlszMjAsNTEyLFtdLCJmMWJkIiwiTTMyMCA5My4ybC05OC4yIDE3OS4xIDcuNCA5LjUgOTAuOCAwIDAgMTI3LjctMTYwLjkgMC0xMy41IDkuMi00My43IDg0Yy0uMyAwLTguNiA4LjYtOS4yIDkuMmwtOTIuNyAwIDAtOTMuMiA5My4yLTE3OS40LTcuNC05LjItODUuOCAwIDAtMTI3LjYgMTU2IDAgMTMuNS05LjIgNDMuNy04NGMuMyAwIDguNi04LjYgOS4yLTkuMmw5Ny42IDAgMCA5My4xeiJdfSx3Xz17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRpdW0iLGljb246WzQ0OCw1MTIsWzYyNDA3LCJtZWRpdW0tbSJdLCJmMjNhIiwiTTM2OS40IDMyYzQzLjQgMCA3OC42IDM1LjIgNzguNiA3OC42bDAgODMuOGMtMS45LS4xLTMuOC0uMi01LjctLjJsLS40IDBjLTEwIDAtMjIuMyAyLjQtMzEuMSA2LjgtMTAgNC42LTE4LjcgMTEuNS0yNiAyMC42LTExLjggMTQuNi0xOC45IDM0LjMtMjAuNiA1Ni40LS4xIC43LS4xIDEuMy0uMiAycy0uMSAxLjItLjEgMS45Yy0uMSAxLjItLjEgMi40LS4xIDMuNiAwIDEuOS0uMSAzLjggMCA1LjggMS4yIDUwLjEgMjguMiA5MC4yIDc2LjMgOTAuMiAyLjcgMCA1LjMtLjEgNy45LS40bDAgMjAuNGMwIDQzLjQtMzUuMiA3OC42LTc4LjYgNzguNkw3OC42IDQ4MEMzNS4yIDQ4MCAwIDQ0NC44IDAgNDAxLjRMMCAxMTAuNkMwIDY3LjIgMzUuMiAzMiA3OC42IDMybDI5MC44IDB6TTgyLjMgMTM4LjlsLjMgLjFjMTMuMiAzIDE5LjggNy40IDE5LjggMjMuNGwwIDE4Ny4yYzAgMTYtNi43IDIwLjQtMTkuOSAyMy40bC0uMyAuMSAwIDIuOCA1Mi44IDAgMC0yLjgtLjMtLjFjLTEzLjItMy0xOS45LTcuNC0xOS45LTIzLjRsMC0xNzYuMyA4Ni4xIDIwMi41IDQuOSAwIDg4LjYtMjA4LjIgMCAxODYuNmMtMS4xIDEyLjYtNy44IDE2LjUtMTkuNyAxOS4ybC0uMyAuMSAwIDIuNyA5MS45IDAgMC0yLjctLjMtLjFjLTExLjktMi43LTE4LjctNi42LTE5LjktMTkuMmwtLjEtMTkxLjggLjEgMGMwLTE2IDYuNy0yMC40IDE5LjktMjMuNGwuMy0uMSAwLTIuNy03Mi4yIDAtNjcgMTU3LjQtNjctMTU3LjQtNzcuOCAwIDAgMi43ek00NDggMzQwLjNjLTI1LjEtNy40LTQzLTM1LjEtNDEuMi02Ny44bDAgMCA0MS4xIDAgMCA2Ny44em0tNi40LTEzNS42YzIuMyAwIDQuNCAuMyA2LjQgLjlsMCA1Ny40LTQwLjIgMGMxLjUtMzMuNiAxMy42LTU3LjkgMzMuOC01OC4zeiJdfSxzcHI9d18sbnByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5jYXJ0IixpY29uOls2NDAsNTEyLFtdLCJmMjNkIiwiTTMzMS44IDQ0MC40YTQ1LjggNDUuOCAwIDEgMSA5MS41IC4zIDQ1LjggNDUuOCAwIDEgMSAtOTEuNS0uM3pNMTY5LjQgMzk0LjlhNDUuNyA0NS43IDAgMSAwIC4zIDkxLjMgNDUuNyA0NS43IDAgMSAwIC0uMy05MS4zem0yOTEuNy0yNzBjLTMwMi4yIDAtMzc5LjItMTIuOC00NjEuMS05OS4yIDM0LjQgNTEuNyA1My4zIDE0OC45IDM3My4xIDE0NC4yIDMzMy4zLTUgMTMwIDg2LjEgNzAuOCAxODguOSAxODYuNy0xNjYuNyAzMTkuNC0yMzMuOSAxNy4yLTIzMy45eiJdfSxvcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieS1jb21iaW5hdG9yIixpY29uOls0NDgsNTEyLFtdLCJmMjNiIiwiTTQ0OCAzMmwwIDQ0OC00NDggMCAwLTQ0OCA0NDggMHpNMjM2IDI4Ny41bDc3LjUtMTQ1LjUtMzIuNyAwLTQ1LjggOTFjLTQuNyA5LjMtOSAxOC4zLTEyLjggMjYuOGwtMTIuMi0yNi44LTQ1LjItOTEtMzUgMCA3Ni43IDE0My44IDAgOTQuNSAyOS41IDAgMC05Mi44eiJdfSxscHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZjNjMCIsIk0zMTEgMTk2LjhsMCA4MS4zYzAgMi4xLTEuNiAzLjctMy43IDMuN2wtMTMgMGMtMS4zIDAtMi40LS43LTMtMS41TDI1NCAyMzAgMjU0IDI3OC4yYzAgMi4xLTEuNiAzLjctMy43IDMuN2wtMTMgMGMtMi4xIDAtMy43LTEuNi0zLjctMy43bDAtODEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdsMTIuOSAwYzEuMSAwIDIuNCAuNiAzIDEuNmwzNy4zIDUwLjMgMC00OC4yYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wxMyAwYzIuMS0uMSAzLjggMS42IDMuOCAzLjVsMCAuMXptLTkzLjctMy43bC0xMyAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMi4xIDEuNiAzLjcgMy43IDMuN2wxMyAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTgxLjNjMC0xLjktMS42LTMuNy0zLjctMy43em0tMzEuNCA2OC4xbC0zNS42IDAgMC02NC40YzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMTMgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDEgLjMgMS44IDEgMi41IC43IC42IDEuNSAxIDIuNSAxbDUyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xM2MwLTEuOS0xLjYtMy43LTMuNS0zLjdsLjEgMHptMTkzLjctNjguMWwtNTIuMyAwYy0xLjkgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMS45IDEuNiAzLjcgMy43IDMuN2w1Mi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTMuMWMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTM1LjUgMCAwLTEzLjYgMzUuNSAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzLjFjMC0yLjEtMS42LTMuNy0zLjctMy43bC0zNS41IDAgMC0xMy43IDM1LjUgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xM2MtLjEtMS45LTEuNy0zLjctMy43LTMuN2wuMSAwek01MTIgOTMuNGwwIDMyNmMtLjEgNTEuMi00Mi4xIDkyLjctOTMuNCA5Mi42bC0zMjYgMEM0MS40IDUxMS45LS4xIDQ2OS44IDAgNDE4LjZsMC0zMjZDLjEgNDEuNCA0Mi4yLS4xIDkzLjQgMGwzMjYgMGM1MS4yIC4xIDkyLjcgNDIuMSA5Mi42IDkzLjR6TTQ0MS42IDIzMy41YzAtODMuNC04My43LTE1MS4zLTE4Ni40LTE1MS4zUzY4LjggMTUwLjEgNjguOCAyMzMuNWMwIDc0LjcgNjYuMyAxMzcuNCAxNTUuOSAxNDkuMyAyMS44IDQuNyAxOS4zIDEyLjcgMTQuNCA0Mi4xLS44IDQuNy0zLjggMTguNCAxNi4xIDEwLjFzMTA3LjMtNjMuMiAxNDYuNS0xMDguMmMyNy0yOS43IDM5LjktNTkuOCAzOS45LTkzLjFsMC0uMnoiXX0sY3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFtaWxpYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM2ZCIsIk0yNDAuMiAzMmMtNjEuOSAwLTEzMS41IDE2LjktMTg0LjIgNTUuNC01LjEgMy4xLTkuMSA5LjItNy4yIDE5LjQgMS4xIDUuMSA1LjEgMjcuNCAxMC4yIDM5LjYgNC4xIDEwLjIgMTQuMiAxMC4yIDIwLjMgNi4xIDMyLjUtMjIuMyA5Ni41LTQ3LjcgMTUyLjMtNDcuNyA1Ny45IDAgNTguOSAyOC40IDU4LjkgNzMuMWwwIDM4LjVDMjAzLjEgMjI3LjcgNzguMyAyNTEgNDYuOCAyNjQuMiAxMS4zIDI4MC41IDE2LjQgMzU3LjcgMTYuNCAzNzZTMzEuNiA0ODAgMTQxLjMgNDgwYzQ3LjggMCAxMTMuNy0yMC43IDE1My4zLTQyLjFsMCAyNS40YzAgMyAyLjEgOC4yIDYuMSA5LjEgMy4xIDEgNTAuNyAyIDU5LjkgMnM2Mi41IC4zIDY2LjUtLjdjNC4xLTEgNS4xLTYuMSA1LjEtOS4xbDAtMjk2LjZjLS4xLTgwLjMtNTcuOS0xMzYtMTkyLTEzNnptNTAuMiAzNDhjLTIxLjQgMTMuMi00OC43IDI0LjQtNzkuMSAyNC40LTUyLjggMC01OC45LTMzLjUtNTktNDQuNyAwLTEyLjItMy00Mi43IDE4LjMtNTIuOSAyNC4zLTEzLjIgNzUuMS0yOS40IDExOS44LTMzLjVsMCAxMDYuN3oiXX0sZHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFzeW1tZXRyaWsiLGljb246WzU3Niw1MTIsW10sImYzNzIiLCJNNTE3LjUgMzA5LjJjMzguOC00MCA1OC4xLTgwIDU4LjUtMTE2LjEgLjgtNjUuNS01OS40LTExOC4yLTE2OS40LTEzNS0xMjguNy0xOS43LTI4OC41IDE1LjUtNDA2LjYgODIuNCA1Mi0yNi41IDExMC42LTQ4LjIgMTcwLjctNTguMiA3NC41LTIwLjUgMTUzLTI1LjQgMjIxLjMtMTQuOCAxNTIuNSAyMy44IDE5Ni44IDEyNy41IDk4LjggMjMxLjctMTAuMiAxMC44LTIyIDIxLjEtMzUgMzAuNkwzMDQuOSAxMDMuNCAxMTQuNyAzODguOWMtNjUuNi0yOS40LTc2LjUtOTAuMi0xOS4xLTE1MS4yIDIwLjgtMjIuMiA0OC4zLTQxLjkgNzkuNS01OC4xIDIwLTEyLjIgMzkuNy0yMi42IDYyLTMwLjctNjUuMSAyMC4zLTEyMi43IDUyLjktMTYxLjYgOTIuOS0yNy43IDI4LjYtNDEuNCA1Ny4xLTQxLjcgODIuOS0uNSAzNS4xIDIzLjQgNjUuMSA2OC40IDgzbC0zNC41IDUxLjcgMTAxLjYgMCAyMi0zNC40YzIyLjIgMSA0NS4zIDAgNjguNi0yLjdsLTIyLjggMzcuMSAxMzUuNSAwLTMyLjYtNTMuMWMxOC42LTUuMyAzNi45LTExLjUgNTQuNS0xOC43bDQ1LjkgNzEuOCAxMDEuNiAwLTczLjQtMTEwLjRjMTguNS0xMi4xIDM1LTI1LjUgNDguOS0zOS44ek0zMjkuOSAzODkuN2wtMjUtNDAuNi0zMi43IDUzLjNjLTIzLjQgMy41LTQ2LjcgNS4xLTY5LjIgNC40bDEwMS45LTE1OS4zIDc4LjcgMTIzYy0xNy4yIDcuNC0zNS4zIDEzLjktNTMuNyAxOS4yeiJdfSx1cHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhhYnJpY2F0b3IiLGljb246WzUxMiw1MTIsW10sImYzZGIiLCJNMzMxLjEgMjYyLjFsLS4xLTEzczIxLjctMTkuOCAyMS4xLTIxLjJsLTkuNS0yMGMtLjYtMS40LTI5LjUtLjUtMjkuNS0uNWwtOS40LTkuM3MuMi0yOC41LTEuMi0yOS4xbC0yMC4xLTkuMmMtMS40LS42LTIwLjcgMjEtMjAuNyAyMWwtMTMuMS0uMnMtMjAuNS0yMS40LTIxLjktMjAuOGwtMjAgOC4zYy0xLjQgLjUgLjIgMjguOSAuMiAyOC45bC05LjEgOS4xcy0yOS4yLS45LTI5LjcgLjRMMTYwIDIyNi4zYy0uNiAxLjQgMjEgMjEgMjEgMjFsLjEgMTIuOVMxNTkuNCAyODAgMTYwIDI4MS40bDkuNSAyMGMuNiAxLjQgMjkuNSAuNSAyOS41IC41bDkuNCA5LjNzLS4yIDMxLjggMS4yIDMyLjNsMjAuMSA4LjNjMS40IC42IDIwLjctMjMuNSAyMC43LTIzLjVsMTMuMSAuMnMyMC41IDIzLjggMjEuOCAyMy4zbDIwLTcuNWMxLjQtLjYtLjItMzIuMS0uMi0zMi4xbDkuMS05LjFzMjkuMiAuOSAyOS43LS41bDguMS0xOS44Yy43LTEuMS0yMC45LTIwLjctMjAuOS0yMC43em0tNDQuOS04LjdjLjcgMTcuMS0xMi44IDMxLjYtMzAuMSAzMi40cy0zMi4xLTEyLjUtMzIuOC0yOS42IDEyLjgtMzEuNiAzMC4xLTMyLjNjMTcuMy0uOCAzMi4xIDEyLjUgMzIuOCAyOS41em0yMDEuMi0zNy45bC05Ny05Ny0uMSAuMWMtNzUuMS03My4zLTE5NS40LTcyLjgtMjY5LjggMS42LTUwLjkgNTEtMjcuOCAyNy45LTk1LjcgOTUuMy0yMi4zIDIyLjMtMjIuMyA1OC43IDAgODEgNjkuOSA2OS40IDQ2LjQgNDYgOTcuNCA5N2wuMS0uMWM3NS4xIDczLjMgMTk1LjQgNzIuOSAyNjkuOC0xLjYgNTEtNTAuOSAyNy45LTI3LjkgOTUuMy05NS4zIDIyLjMtMjIuMyAyMi4zLTU4LjcgMC04MXpNMzYzLjUgMTQ4LjJhMTUyLjMgMTUyLjMgMCAxIDEgLTIxNSAyMTUuNiAxNTIuMyAxNTIuMyAwIDEgMSAyMTUtMjE1LjZ6Il19LHBwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJib3RzIixpY29uOls2NDAsNTEyLFtdLCJlMzQwIiwiTTg2LjMgMTk3LjhjLTgtLjEtMTUuOSAxLjctMjMuMSA1LjFzLTEzLjUgOC42LTE4LjQgMTQuOWwwLTYxLjljMC0yLjItLjktNC4zLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjguNCAwYy0yLjIgMC00LjMgLjktNS44IDIuNFMwIDE1My44IDAgMTU2TDAgMzMzLjZjMCAxLjEgLjIgMi4xIC42IDMuMXMxIDEuOSAxLjggMi43IDEuNyAxLjQgMi43IDEuOCAyLjEgLjYgMy4xIC42bDI4LjQgMGMxLjEgMCAyLjEtLjIgMy4xLS42czEuOS0xIDIuNy0xLjggMS40LTEuNyAxLjgtMi43IC42LTIuMSAuNi0zLjFsMC04LjFjMTEuNiAxMy40IDI1LjkgMTkuOCA0MS42IDE5LjggMzQuNiAwIDYxLjktMjYuMiA2MS45LTczLjggMC00NS45LTI3LTczLjYtNjEuOS03My42ek03MS41IDMwNS43Yy05LjYgMC0yMS4yLTQuOS0yNi43LTEyLjVsMC00M2M1LjUtNy42IDE3LjItMTIuOCAyNi43LTEyLjggMTcuNyAwIDMxLjEgMTMuMSAzMS4xIDM0IDAgMjEuMi0xMy40IDM0LjMtMzEuMSAzNC4zem0xNTYuNC01OWExNy40IDE3LjQgMCAxIDAgMCAzNC44IDE3LjQgMTcuNCAwIDEgMCAwLTM0Ljh6bTQ2LjEtOTBsMC00NC43YzIuOC0xLjIgNS4yLTMuMyA2LjYtNnMxLjktNS44IDEuMy04LjktMi4yLTUuNy00LjYtNy43LTUuNC0zLTguNC0zLTYuMSAxLjEtOC40IDMtNCA0LjctNC42IDcuNy0uMSA2LjEgMS4zIDguOSAzLjggNC44IDYuNiA2bDAgNDQuN2MtMjggMS4zLTU0LjQgMTMuNi03My42IDM0LjFzLTI5LjUgNDcuNy0yOC44IDc1LjggMTIuMyA1NC43IDMyLjQgNzQuMyA0NyAzMC42IDc1LjEgMzAuNiA1NS0xMSA3NS4xLTMwLjYgMzEuNy00Ni4zIDMyLjQtNzQuMy05LjctNTUuMy0yOC44LTc1LjgtNDUuNS0zMi44LTczLjYtMzQuMXptODYgMTA3LjRjMCAzMC41LTQwLjggNTUuMy05MS4xIDU1LjNzLTkxLjEtMjQuNy05MS4xLTU1LjMgNDAuOC01NS4zIDkxLjEtNTUuMyA5MS4xIDI0LjcgOTEuMSA1NS4zbDAgMHptLTUwLjIgMTcuNGMzLjQgMCA2LjgtMSA5LjctMi45czUuMS00LjYgNi40LTcuOCAxLjctNi43IDEtMTAuMS0yLjMtNi41LTQuOC04LjktNS41LTQuMS04LjktNC44LTYuOS0uMy0xMC4xIDEtNS45IDMuNS03LjggNi40LTIuOSA2LjItMi45IDkuN2MwIDQuNiAxLjggOSA1LjEgMTIuM3M3LjcgNS4xIDEyLjMgNS4xbDAgMHptMjcwLjktMzFjLTE0LjgtMi42LTIyLjQtMy44LTIyLjQtOS45IDAtNS41IDcuMy05LjkgMTcuNy05LjkgMTIuMiAuMSAyNC4yIDMuNiAzNC41IDEwLjEgMS44IDEuMiA0IDEuNiA2LjIgMS4xczQtMS43IDUuMS0zLjZjLjEtLjEgLjEtLjIgLjItLjNsOC42LTE0LjljMS4xLTEuOSAxLjQtNC4xIC44LTYuMXMtMS45LTMuOS0zLjctNWMtMTUuNy05LjQtMzMuNy0xNC4zLTUyLTE0LjEtMzkgMC02MC4yIDIxLjUtNjAuMiA0Ni4yIDAgMzYuMyAzMy43IDQxLjkgNTcuNiA0NS42IDEzLjQgMi4zIDI0LjEgNC40IDI0LjEgMTEgMCA2LjQtNS41IDEwLjgtMTguOSAxMC44LTEzLjYgMC0zMS02LjItNDIuNi0xMy42LS45LS42LTEuOS0xLTMtMS4ycy0yLjEtLjItMy4yIC4xLTIuMSAuNy0yLjkgMS4zLTEuNiAxLjQtMi4yIDIuM2MwIC4xLS4xIC4xLS4xIC4ybC0xMC4yIDE2LjljLTEuMSAxLjgtMS40IDQtMSA2czEuNyAzLjkgMy41IDVjMTUuMiAxMC4zIDM3LjcgMTYuNyA1OS40IDE2LjcgNDAuNCAwIDY0LTE5LjggNjQtNDYuNSAwLTM4LjEtMzUuNS00My45LTU5LjMtNDguM3ptLTk1LjkgNjAuOGMtLjUtMi0xLjgtMy43LTMuNi00LjhzLTMuOS0xLjUtNS45LTEuMWMtMS40IC4zLTIuOCAuNC00LjIgLjQtNy44IDAtMTIuNS02LjEtMTIuNS0xNC4ybDAtNTEuMiAyMC4zIDBjMi4yIDAgNC4yLS45IDUuOC0yLjRzMi40LTMuNiAyLjQtNS44bDAtMjIuN2MwLTIuMi0uOS00LjItMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yMC4zIDAgMC0zMC4yYzAtMi4yLS45LTQuMi0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTI4LjIgMGMtMi4yIDAtNC4yIC45LTUuOCAyLjRzLTIuNCAzLjYtMi40IDUuOGwwIDMwLjItMTUuMSAwYy0xLjEgMC0yLjEgLjItMy4xIC42cy0xLjkgMS0yLjYgMS44LTEuNCAxLjctMS44IDIuNi0uNiAyLS42IDMuMWwwIDIyLjdjMCAxLjEgLjIgMi4xIC42IDMuMXMxIDEuOSAxLjggMi42IDEuNyAxLjQgMi42IDEuOCAyIC42IDMuMSAuNmwxNS4xIDAgMCA2My43YzAgMjcgMTUuNCA0MS4zIDQzLjkgNDEuMyAxMi4yIDAgMjEuNC0yLjIgMjcuNi01LjQgMS42LS44IDIuOS0yLjIgMy43LTMuOXMuOS0zLjYgLjUtNS40bC01LTE5LjN6Il19LGZwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW5lIixpY29uOlszODQsNTEyLFtdLCJmMWNhIiwiTTM4NCAyNTQuN2wwIDUyLjFjLTE4LjQgNC4yLTM2LjkgNi4xLTUyLjEgNi4xLTM2LjkgNzcuNC0xMDMgMTQzLjgtMTI1LjEgMTU2LjItMTQgNy45LTI3LjEgOC40LTQyLjctLjgtMjcuMS0xNi4zLTEyOS45LTEwMC42LTE2NC4xLTM2NS42bDc0LjUgMGMxOC43IDE1OS4xIDY0LjUgMjQwLjcgMTE0LjggMzAxLjggMjcuOS0yNy45IDU0LjgtNjUuMSA3NS42LTEwNi45LTQ5LjgtMjUuMy04MC4xLTgwLjktODAuMS0xNDUuNiAwLTY1LjYgMzcuNy0xMTUuMSAxMDIuMi0xMTUuMSAxMTQuOSAwIDEwNi4yIDEyNy45IDgxLjYgMTgxLjUgMCAwLTQ2LjQgOS4yLTYzLjUtMjAuNSAzLjQtMTEuMyA4LjItMzAuOCA4LjItNDguNSAwLTMxLjMtMTEuMy00Ni42LTI4LjQtNDYuNi0xOC4yIDAtMzAuOCAxNy4xLTMwLjggNTAgLjEgNzkuMiA1OS40IDExOC43IDEyOS45IDEwMS45eiJdfSxocHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkcnQiLGljb246WzU3Niw1MTIsW10sImYzYzgiLCJNMTI5LjcgMjU2YzAgMTIxLjggODMuOSAyMjIuOCAxOTMuNSAyNDEuMS0xOC43IDQuNS0zOC4yIDYuOS01OC4yIDYuOS0xMzcuNiAwLTI0OS0xMTEtMjQ5LTI0OFMxMjcuNCA4IDI2NC45IDhjMjAuMSAwIDM5LjYgMi40IDU4LjIgNi45LTEwOS42IDE4LjMtMTkzLjQgMTE5LjMtMTkzLjQgMjQxLjF6TTQyNy4xIDM1Ni4zYy03Ny43IDU1LjQtMTc5LjYgNDcuNS0yNDAuNC0xNC42IDUuNSAxNC4xIDEyLjcgMjcuNyAyMS43IDQwLjUgNjEuNiA4OC4yIDE4Mi40IDEwOS4zIDI2OS43IDQ3czEwOC4xLTE4NC4zIDQ2LjUtMjcyLjZjLTktMTIuOS0xOS4zLTI0LjMtMzAuNS0zNC4yIDM3LjQgNzguOCAxMC43IDE3OC41LTY3IDIzMy45em0tMjE4LjgtMjQ0Yy0xLjQgMS0yLjcgMi4xLTQgMy4xIDY0LjMtMTcuOCAxMzUuOSA0IDE3OC45IDYwLjUgMzUuNyA0NyA0Mi45IDEwNi42IDI0LjQgMTU4IDU2LjctNTYuMiA2Ny42LTE0Mi4xIDIyLjMtMjAxLjgtNTAtNjUuNS0xNDkuMS03NC40LTIyMS42LTE5Ljh6TTMxMiAyMjRjLTQuNCAwLTgtMy42LTgtOGwwLTQwYzAtNC40LTMuNi04LTgtOGwtNDggMGMtNC40IDAtOCAzLjYtOCA4bDAgNDBjMCA0LjQtMy42IDgtOCA4bC00MCAwYy00LjQgMC04IDMuNi04IDhsMCA0OGMwIDQuNCAzLjYgOCA4IDhsNDAgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MGMwIDQuNCAzLjYgOCA4IDhsNDggMGM0LjQgMCA4LTMuNiA4LThsMC00MGMwLTQuNCAzLjYtOCA4LThsNDAgMGM0LjQgMCA4LTMuNiA4LThsMC00OGMwLTQuNC0zLjYtOC04LThsLTQwIDB6Il19LG1wcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvc2kiLGljb246WzUxMiw1MTIsW10sImY0MWEiLCJNOCAyNjYuNGMyLjMtMTM1LjggOTcuNC0yMzIuNCAyMTMuOC0yNDguMSAxMzguOC0xOC42IDI1NS42IDc1LjggMjc4IDIwMS4xIDIxLjMgMTE4LjgtNDQgMjMwLTE1MS42IDI3NC05LjMgMy44LTE0LjQgMS43LTE4LTcuNy0xNy44LTQ2LjMtMzUuNi05Mi42LTUzLjQtMTM5LTMuMS04LjEtMS0xMy4yIDctMTYuOCAyNC4yLTExIDM5LjMtMjkuNCA0My4zLTU1LjggMS41LTkuNyAxLTE5LjYtMS41LTI5LjFzLTYuOS0xOC40LTEyLjktMjYuMS0xMy42LTE0LjEtMjIuMi0xOC44LTE4LjEtNy41LTI3LjktOC4zYy0zOS0zLjQtNzEuOCAyMy43LTc3LjUgNTkuNy01LjIgMzMgMTEuMSA2My43IDQxLjkgNzcuNyA5LjYgNC40IDExLjUgOC42IDcuOCAxOC40LTE3LjkgNDYuNi0zNS44IDkzLjItNTMuNyAxMzkuOS0yLjYgNi45LTguMyA5LjMtMTUuNSA2LjUtNTIuNi0yMC4zLTEwMS40LTYxLTEzMC44LTExOS0yNC45LTQ5LjItMjUuMi04Ny43LTI2LjgtMTA4Ljd6bTIwLjktMS45Yy40IDYuNiAuNiAxNC4zIDEuMyAyMi4xIDYuMyA3MS45IDQ5LjYgMTQzLjUgMTMxIDE4My4xIDMuMiAxLjUgNC40IC44IDUuNi0yLjMgMTQuOS0zOS4xIDI5LjktNzguMiA0NS0xMTcuMyAxLjMtMy4zIC42LTQuOC0yLjQtNi43LTMxLjYtMTkuOS00Ny4zLTQ4LjUtNDUuNi04NiAxLTIxLjYgOS4zLTQwLjUgMjMuOC01Ni4zIDMwLTMyLjcgNzctMzkuOCAxMTUuNS0xNy42IDE1LjYgOSAyOC4yIDIyLjMgMzYuMiAzOC40czExLjIgMzQuMiA5IDUyYy0zLjYgMzAuNi0xOS4zIDUzLjktNDUuNyA2OS44LTIuNyAxLjYtMy41IDIuOS0yLjMgNiAxNS4yIDM5LjIgMzAuMyA3OC40IDQ1LjIgMTE3LjcgMS4yIDMuMSAyLjQgMy44IDUuNiAyLjMgMzUuNS0xNi42IDY1LjItNDAuMyA4OC4xLTcyIDM0LjgtNDguMiA0OS4xLTEwMS45IDQyLjMtMTYxLTEzLjctMTE3LjUtMTE5LjQtMjE0LjgtMjU1LjUtMTk4LTEwNi4xIDEzLTE5NS4zIDEwMi41LTE5Ny4xIDIyNS44eiJdfSxncHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2ciLGljb246WzUxMiw1MTIsW10sImYyNjAiLCJNMTc5LjIgMjMwLjRsMTAyLjQgMTAyLjQtMTAyLjQgMTAyLjQtMTc5LjItMTc5LjIgMTc5LjItMTc5LjIgNDQuOCA0NC44LTI1LjYgMjUuNi0xOS4yLTE5LjItMTI4IDEyOCAxMjggMTI4IDUxLjUtNTEuNS03Ny4xLTc2LjUgMjUuNi0yNS42ek0zMzIuOCA3Ni44bC0xMDIuNCAxMDIuNCAxMDIuNCAxMDIuNCAyNS42LTI1LjYtNzcuMS03Ni41IDUxLjUtNTEuNSAxMjggMTI4LTEyOCAxMjgtMTkuMi0xOS4yLTI1LjYgMjUuNiA0NC44IDQ0LjggMTc5LjItMTc5LjItMTc5LjItMTc5LjJ6Il19LGJwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXlzZWxsYWRzIixpY29uOls0NDgsNTEyLFtdLCJmMjBkIiwiTTIyNCAxNTAuN2w0Mi45IDE2MC43LTg1LjggMCA0Mi45LTE2MC43ek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zODIuNyA0MDUuM2wtOTQuNS0yOTguNy0xMjguNCAwLTk0LjUgMjk4LjcgOTAuNyAwIDExMS43LTkxLjYgMjQuMiA5MS42IDkwLjggMHoiXX0seHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbHVzIixpY29uOls1MTIsNTEyLFtdLCJmMmIzIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTg1LjMgMzgwYy0zMi45IDAtNjQuNC0xMy4xLTg3LjctMzYuM3MtMzYuMy01NC44LTM2LjMtODcuNyAxMy4xLTY0LjQgMzYuMy04Ny43IDU0LjgtMzYuMyA4Ny43LTM2LjNjMzEuMyAwIDYwLjEgMTEgODMgMzIuM2wtMzMuNiAzMi42Yy0xMy4yLTEyLjktMzEuMy0xOS4xLTQ5LjQtMTkuMS00Mi45IDAtNzcuMiAzNS41LTc3LjIgNzguMVMxNDIuMyAzMzQgMTg1LjMgMzM0YzMyLjYgMCA2NC45LTE5LjEgNzAuMS01My4zbC03MC4xIDAgMC00Mi42IDExNi45IDBjMS4zIDYuOCAxLjkgMTMuOCAxLjkgMjAuNyAwIDcwLjgtNDcuNSAxMjEuMi0xMTguOCAxMjEuMnpNNDE1LjUgMjczLjhsMCAzNS41LTM1LjUgMCAwLTM1LjUtMzUuNSAwIDAtMzUuNSAzNS41IDAgMC0zNS41IDM1LjUgMCAwIDM1LjUgMzUuMiAwIDAgMzUuNS0zNS4yIDB6Il19LHZwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY3JlZW5wYWwiLGljb246WzUxMiw1MTIsW10sImU1NzAiLCJNMjc4LjYgMjIuNWEyMi41IDIyLjUgMCAxIDEgLTQ1IDAgMjIuNSAyMi41IDAgMSAxIDQ1IDB6TTE5OC43IDI1OWE1Ny40IDU3LjQgMCAxIDEgMTE0LjggMCA1Ny40IDU3LjQgMCAxIDEgLTExNC44IDB6bTEzOC42IDkxYzIyLjMtMTkuOSAzNi41LTQ3LjMgMzkuOS03N2wxMTkuNSAwYy0zLjUgNjEuNC0zMC40IDExOS4yLTc1LjIgMTYxLjQtNDQuNyA0Mi4yLTEwMy45IDY1LjgtMTY1LjQgNjUuOFMxMzUuNCA0NzYuNiA5MC43IDQzNC40QzQ1LjkgMzkyLjIgMTkuMSAzMzQuNCAxNS41IDI3M2wxMTkuNyAwYzMuNCAyOS43IDE3LjYgNTcuMSAzOS45IDc3czUxLjIgMzAuOSA4MS4xIDMwLjljMjkgMCA1OC43LTExIDgxLjEtMzAuOXpNMjguMyAxNDEuN2EyMi41IDIyLjUgMCAxIDEgNDUtMS40IDIyLjUgMjIuNSAwIDEgMSAtNDUgMS40em00NTUuNi0uN2EyMi40IDIyLjQgMCAxIDEgLTQ0LjkgMCAyMi40IDIyLjQgMCAxIDEgNDQuOSAwek0zMTggOTUuM2MtMTcuMyAxMy44LTM5LjIgMjIuOC02MS45IDIyLjhzLTQ0LjYtOS02MS45LTIyLjhjLTE3LjMtMTQuNy0yOC44LTM1LjEtMzIuNC01Ny41IDE1LjEtNi40IDMwLjgtMTEuMyA0Ni45LTE0LjUgMCAxMi42IDUgMjQuNiAxMy45IDMzLjVzMjAuOSAxMy45IDMzLjUgMTMuOSAyNC42LTUgMzMuNS0xMy45IDEzLjktMjAuOSAxMy45LTMzLjVjMTYuMSAzLjIgMzEuOCA4LjEgNDYuOSAxNC41LTMuNiAyMi40LTE1LjEgNDIuOC0zMi40IDU3LjV6TTgyLjkgMjMxYy0yMS40IDcuNi00NC43IDcuNC02NS45LS42IDItMTYuMyA1LjYtMzIuMyAxMC44LTQ3LjkgNS40IDMuMSAxMS4zIDUuMSAxNy41IDYgNi4yIC44IDEyLjQgLjQgMTguNS0xLjIgNi0xLjcgMTEuNi00LjQgMTYuNi04LjJzOS4xLTguNSAxMi4yLTEzLjkgNS4xLTExLjQgNi0xNy41Yy44LTYuMiAuNC0xMi41LTEuMi0xOC41cy00LjQtMTEuNi04LjItMTYuNmMtMy44LTQuOS04LjUtOS4xLTEzLjktMTIuMiAxMC44LTEyLjMgMjIuOS0yMy41IDM2LTMzLjMgMTcuNiAxNC4zIDI5LjUgMzQuNSAzMy42IDU2LjhzLjEgNDUuNC0xMS4yIDY1Yy0xMS40IDE5LjYtMjkuNCAzNC41LTUwLjcgNDIuMXptMzQ2LjQgLjFjLTIxLjMtNy42LTM5LjMtMjIuNi01MC43LTQyLjItMTEuMy0xOS42LTE1LjItNDIuNy0xMS4xLTY1IDQuMS0yMi4yIDE2LTQyLjQgMzMuNS01Ni43IDEzLjEgOS44IDI1LjIgMjEgMzYgMzMuMy0xMC43IDYuNC0xOC40IDE2LjctMjEuNSAyOC44LTMuMiAxMi0yLjMgMjQuOCA0LjggMzUuNiA2LjIgMTAuOCAxNi40IDE4LjcgMjguNCAyMnMyNC45IDEuNyAzNS43LTQuM2M1LjMgMTUuNSA4LjkgMzEuNiAxMC45IDQ3LjgtMjIuMSA4LjEtNDQuNiA4LjMtNjYgLjd6Il19LHlwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaXRjb2luIixpY29uOls1MTIsNTEyLFtdLCJmMzc5IiwiTTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTM1NC4zLTM1LjNjNC45LTMzLTIwLjItNTAuNy01NC42LTYyLjZsMTEuMS00NC43LTI3LjItNi44LTEwLjkgNDMuNWMtNy4yLTEuOC0xNC41LTMuNS0yMS44LTUuMWwxMC45LTQzLjgtMjcuMi02LjgtMTEuMiA0NC43Yy01LjktMS4zLTExLjctMi43LTE3LjQtNC4xbDAtLjEtMzcuNS05LjQtNy4yIDI5LjFzMjAuMiA0LjYgMTkuOCA0LjljMTEgMi44IDEzIDEwIDEyLjcgMTUuOGwtMTIuNyA1MC45Yy44IC4yIDEuNyAuNSAyLjggLjktLjktLjItMS45LS41LTIuOS0uN2wtMTcuOCA3MS4zYy0xLjMgMy4zLTQuOCA4LjQtMTIuNSA2LjUgLjMgLjQtMTkuOC00LjktMTkuOC00LjlsLTEzLjUgMzEuMSAzNS40IDguOGM2LjYgMS43IDEzIDMuNCAxOS40IDVsLTExLjMgNDUuMiAyNy4yIDYuOCAxMS4yLTQ0LjdjNy4yIDIgMTQuNCAzLjggMjEuNyA1LjZsLTExLjEgNDQuNSAyNy4yIDYuOCAxMS4zLTQ1LjFjNDYuNCA4LjggODEuMyA1LjIgOTYtMzYuNyAxMS44LTMzLjgtLjYtNTMuMy0yNS02NiAxNy44LTQuMSAzMS4yLTE1LjggMzQuNy0zOS45em0tNjIuMiA4Ny4yYy04LjQgMzMuOC02NS4zIDE1LjUtODMuOCAxMC45bDE0LjktNTkuOWMxOC40IDQuNiA3Ny42IDEzLjcgNjguOCA0OXptOC40LTg3LjdjLTcuNyAzMC43LTU1IDE1LjEtNzAuNCAxMS4zbDEzLjUtNTQuM2MxNS40IDMuOCA2NC44IDExIDU2LjggNDN6Il19LHdwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzd2lmdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjhlMSIsIk00NDggMTU2LjFjMC00LjUtLjEtOS0uMi0xMy41LS4xLTkuOS0xLTE5LjctMi42LTI5LjQtMS43LTkuNy00LjgtMTkuMi05LjItMjgtOS0xNy43LTIzLjQtMzIuMS00MS4yLTQxLjEtOC44LTQuNS0xOC4zLTcuNi0yOC05LjItOS43LTEuNi0xOS42LTIuNS0yOS40LTIuNi00LjUtLjEtOS0uMi0xMy41LS4yTDEyNC4xIDMyYy00LjUgMC05IC4xLTEzLjUgLjItMi40IC4xLTQuOSAuMi03LjQgLjMtNy40IC4zLTE0LjggMS4xLTIyLjEgMi4zLTcuMyAxLjMtMTQuNCAzLjMtMjEuMiA2LjEtMi4zIDEtNC42IDItNi44IDMuMS02LjYgMy40LTEyLjggNy41LTE4LjQgMTIuMy0xLjkgMS42LTMuNyAzLjMtNS40IDUtNyA3LTEyLjkgMTUtMTcuNCAyMy44LTQuNCA4LjgtNy42IDE4LjMtOS4yIDI4LTEuNiA5LjctMi40IDE5LjYtMi41IDI5LjQtLjEgNC41LS4yIDktLjIgMTMuNUwwIDM1NS45YzAgNC41IC4xIDkgLjIgMTMuNSAuMSA5LjkgMSAxOS43IDIuNiAyOS40IDEuNyA5LjcgNC44IDE5LjIgOS4yIDI4IDkgMTcuNyAyMy40IDMyLjEgNDEuMSA0MS4xIDguOCA0LjQgMTguMyA3LjUgMjggOS4yIDkuNyAxLjYgMTkuNiAyLjUgMjkuNCAyLjYgNC41IC4xIDkgLjIgMTMuNSAuMmwxOTkuOCAwYzQuNSAwIDktLjEgMTMuNS0uMiA5LjktLjEgMTkuNy0xIDI5LjQtMi42IDkuNy0xLjcgMTkuMi00LjggMjgtOS4yIDE3LjctOSAzMi4xLTIzLjQgNDEuMS00MS4yIDQuNC04LjggNy42LTE4LjMgOS4yLTI4IDEuNi05LjcgMi41LTE5LjYgMi42LTI5LjQgLjEtNC41IC4yLTkgLjItMTMuNWwwLTE4My44YzAtNS40IDAtMTAuNyAwLTE2em0tNjkuOSAyNDFjLTIwLTM4LjktNTcuMi0yOS4zLTc2LjMtMTkuNS0xLjcgMS0zLjUgMi01LjIgM2wtLjQgLjJjLTM5LjUgMjEtOTIuNSAyMi41LTE0NS44LS40LTQzLjQtMTguOC04MC4xLTUwLjMtMTA1LjMtOTAuNCAxMi4zIDkuMSAyNS40IDE2LjkgMzkuMiAyMy40IDU2LjQgMjYuNCAxMTMgMjQuNSAxNTMgMC01Ny00My44LTEwNC42LTEwMS0xNDEuMS0xNDcuMi03LTguMS0xMy4yLTE2LjgtMTguOC0yNS45IDQzLjcgNDAgMTEyLjcgOTAuMiAxMzcuNSAxMDQuMS01Mi42LTU1LjUtOTguOS0xMjMuOS05Ni43LTEyMS43IDgyLjggODMuNCAxNTkuMiAxMzAuNiAxNTkuMiAxMzAuNiAyLjkgMS42IDUgMi44IDYuNyA0IDEuNi00LjEgMy04LjIgNC4yLTEyLjUgMTMuMi00OC4zLTEuNy0xMDMuNi0zNS4zLTE0OS4yIDc2LjggNDYuMSAxMjIuMiAxMzMuNyAxMDMuNiAyMDcuOC0uNCAxLjctMSAzLjQtMS40IDUuMSAzOC41IDQ3LjQgMjggOTguMiAyMy4xIDg4LjZsMCAweiJdfSxrcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlsZXMtcGlud2hlZWwiLGljb246WzUxMiw1MTIsW10sImU2OWYiLCJNMjUzLjUgMjQ2LjRMMTM3LjIgMTMwLjJjLS42LS42LTEtMS4zLTEuNC0ycy0uNS0xLjYtLjUtMi40IC4yLTEuNiAuNS0yLjQgLjgtMS40IDEuNC0yTDI1My42IDUuMWMuOS0uOSAyLTEuNSAzLjItMS43czIuNS0uMSAzLjYgLjMgMi4xIDEuMyAyLjggMi4zIDEuMSAyLjIgMS4xIDMuNWwwIDIzMi41YzAgMS4zLS4zIDIuNS0xIDMuNnMtMS43IDEuOS0yLjkgMi40LTIuNSAuNi0zLjcgLjMtMi40LS45LTMuMi0xLjl6bTQwLjMtNC40bDAtMTM0LjRjMC0uOCAuMS0xLjYgLjUtMi40cy44LTEuNSAxLjMtMi4xIDEuMy0xLjEgMi0xLjQgMS42LS41IDIuNC0uNWwxMzQuNCAwYzEuMiAwIDIuNSAuNCAzLjUgMS4xczEuOCAxLjcgMi4zIDIuOCAuNiAyLjQgLjMgMy42LS45IDIuMy0xLjcgMy4yTDMwNC4zIDI0Ni40Yy0uOSAuOC0yIDEuNC0zLjIgMS42cy0yLjQgLjEtMy41LS40LTIuMS0xLjMtMi44LTIuMy0xLjEtMi4yLTEuMS0zLjRsLjEgLjF6bTMwLjYgMzVjLTEuMiAwLTIuNS0uMy0zLjUtMXMtMS45LTEuNi0yLjQtMi44LS42LTIuNC0uNC0zLjYgLjgtMi4zIDEuNy0zLjJMNDA0IDE4Mi4yYy42LS42IDEuMy0xIDItMS40czEuNi0uNSAyLjQtLjUgMS42IC4yIDIuNCAuNSAxLjQgLjggMiAxLjRsODQuNCA4NC4yYy45IC45IDEuNSAyIDEuNyAzLjJzLjEgMi41LS4zIDMuNi0xLjMgMi4xLTIuMyAyLjgtMi4yIDEuMS0zLjUgMS4xbC0xNjguNSAwIC4xLS4xem05MC43IDEzMWwtOTUuMy05NS4yYy0uOS0uOS0xLjUtMi0xLjctMy4ycy0uMS0yLjUgLjQtMy43IDEuMy0yLjEgMi40LTIuOCAyLjMtMSAzLjUtMWw5NS4yIDBjMS43IDAgMy4yIC43IDQuNCAxLjhzMS44IDIuOCAxLjggNC40bDAgOTUuM2MwIDEuMi0uNCAyLjUtMS4xIDMuNXMtMS43IDEuOC0yLjggMi4zLTIuNCAuNi0zLjYgLjMtMi4zLS45LTMuMi0xLjd6TTE2LjggMzAyLjFsMjE2LjkgMGMxLjIgMCAyLjUgLjQgMy41IDEuMXMxLjggMS43IDIuMyAyLjggLjYgMi40IC4zIDMuNi0uOCAyLjMtMS43IDMuMkwxMjkuNyA0MjEuMmMtLjYgLjYtMS4zIDEtMiAxLjRzLTEuNiAuNS0yLjQgLjUtMS42LS4yLTIuNC0uNS0xLjQtLjgtMi0xLjRMMTIuMyAzMTIuOGMtLjktLjktMS41LTItMS43LTMuMnMtLjEtMi41IC40LTMuNiAxLjMtMi4xIDIuMy0yLjggMi4zLTEgMy41LTFsMC0uMXpNMjY0LjMgNDY1LjNjMCAuOC0uMiAxLjYtLjUgMi40cy0uOCAxLjUtMS40IDItMS4zIDEtMiAxLjQtMS42IC41LTIuNCAuNWwtMTI4IDBjLTEuMiAwLTIuNS0uNC0zLjUtMS4xcy0xLjgtMS43LTIuMy0yLjgtLjYtMi40LS4zLTMuNiAuOC0yLjMgMS43LTMuMmwxMjgtMTI4Yy45LS45IDItMS41IDMuMi0xLjdzMi41LS4xIDMuNiAuMyAyLjEgMS4zIDIuOCAyLjMgMS4xIDIuMiAxLjEgMy41bDAgMTI4em00MC0xMzIuNWw4Mi44IDgyLjdjLjYgLjYgMSAxLjMgMS40IDJzLjUgMS42IC41IDIuNC0uMiAxLjYtLjUgMi40LS44IDEuNC0xLjQgMkwzMDQuMyA1MDdjLS45IC45LTIgMS41LTMuMiAxLjdzLTIuNSAuMS0zLjYtLjMtMi4xLTEuMy0yLjgtMi4zLTEuMS0yLjItMS4xLTMuNWwwLTE2NS40YzAtMS4yIC40LTIuNSAxLjEtMy41czEuNy0xLjggMi44LTIuMyAyLjQtLjYgMy42LS4zIDIuMyAuOCAzLjIgMS43ek03OSAxMjIuNGMwLTEuMiAuMy0yLjUgMS0zLjVzMS43LTEuOCAyLjgtMi4zIDIuNC0uNiAzLjYtLjQgMi4zIC44IDMuMiAxLjdMMjM4LjEgMjY2LjRjLjkgLjkgMS41IDIgMS43IDMuMnMuMSAyLjUtLjMgMy42LTEuMyAyLjEtMi4zIDIuOC0yLjIgMS4xLTMuNSAxLjFsLTE0OC40IDBjLTEuNyAwLTMuMi0uNy00LjQtMS44cy0xLjgtMi44LTEuOC00LjRsMC0xNDguNC0uMS0uMXoiXX0sU3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxhcmF2ZWwiLGljb246WzUxMiw1MTIsW10sImYzYmQiLCJNNTA0LjYgMTE1LjhjLS4xLS4yLS4yLS41LS4zLS43LS4xLS40LS4zLS44LS41LTEuMi0uMi0uMi0uMy0uNS0uNS0uNy0uMi0uMy0uNS0uNi0uNy0uOS0uMi0uMi0uNS0uNC0uOC0uNi0uMy0uMi0uNi0uNS0uOS0uN0w0MDQuNiA1NS41Yy0xLjItLjctMi42LTEuMS00LTEuMXMtMi44IC40LTQgMS4xTDMwMC4zIDExMWMtLjMgLjItLjYgLjQtLjkgLjctLjMgLjItLjUgLjQtLjggLjYtLjMgLjMtLjUgLjYtLjcgLjktLjIgLjItLjQgLjQtLjUgLjctLjIgLjQtLjQgLjgtLjUgMS4yLS4xIC4yLS4yIC40LS4zIC43LS4yIC43LS4zIDEuNC0uMyAyLjFsMCAxMDUuMi04MC4yIDQ2LjIgMC0yMDUuOWMwLS43LS4xLTEuNC0uMy0yLjEtLjEtLjItLjItLjQtLjMtLjctLjEtLjQtLjMtLjgtLjUtMS4yLS4xLS4zLS40LS41LS41LS43LS4yLS4zLS41LS42LS43LS45LS4yLS4yLS41LS40LS44LS42LS4zLS4yLS42LS41LS45LS43TDExNS44IDEuMWMtMS4yLS43LTIuNi0xLjEtNC0xLjFzLTIuOCAuNC00IDEuMUwxMS41IDU2LjVjLS4zIC4yLS42IC40LS45IC43LS4zIC4yLS41IC40LS44IC42LS4zIC4zLS41IC42LS43IC45LS4yIC4zLS40IC41LS42IC43LS4yIC40LS40IC44LS41IDEuMi0uMSAuMi0uMiAuNC0uMyAuNy0uMiAuNy0uMyAxLjQtLjMgMi4xbDAgMzI5LjdjMCAxLjQgLjQgMi44IDEuMSA0czEuNyAyLjIgMi45IDIuOUwyMDQgNTEwLjljLjQgLjIgLjkgLjQgMS4zIC41IC4yIC4xIC40IC4yIC42IC4zIDEuMyAuNCAyLjggLjQgNC4xIDAgLjItLjEgLjQtLjIgLjYtLjIgLjUtLjIgMS0uMyAxLjQtLjZMNDA0LjYgNDAwLjFjMS4yLS43IDIuMi0xLjcgMi45LTIuOXMxLjEtMi42IDEuMS00bDAtMTA1LjMgOTIuMi01My4xYzEuMi0uNyAyLjItMS43IDIuOS0zczEuMS0yLjYgMS4xLTRsMC0xMDkuOGMwLS43LS4xLTEuNC0uMi0yLjF6TTExMS44IDE3LjNsODAuMiA0Ni4xLTgwLjIgNDYuMi04MC4yLTQ2LjIgODAuMi00Ni4yem04OC4yIDYwbDAgMjAxLjNjLTMzLjIgMTkuMS01OS45IDM0LjUtODAuMiA0Ni4ybDAtMjAxLjNDMTUzIDEwNC40IDE3OS43IDg5IDIwMCA3Ny4zem0wIDQxMi44TDIzLjUgMzg4LjUgMjMuNSA3Ny4zYzIwLjMgMTEuNyA0Ny4xIDI3LjEgODAuMiA0Ni4ybDAgMjE1LjJjMCAuMyAuMSAuNiAuMSAuOSAwIC40IC4xIC44IC4yIDEuMiAuMSAuMyAuMiAuNiAuNCAuOSAuMSAuMyAuMyAuNyAuNCAxIC4yIC4zIC40IC41IC42IC44IC4yIC4zIC40IC42IC43IC44IC4yIC4yIC41IC40IC44IC42IC4zIC4yIC42IC41IC45IC43bDkyLjIgNTIuMiAuMSA5Mi40em04LTEwNi4yTDEyOCAzMzguNmM1NC43LTMxLjUgMTEzLjUtNjUuMyAxNzYuMy0xMDEuNWw4MC4xIDQ2LjFDMzU1IDMwMCAyOTYuMiAzMzMuNSAyMDggMzgzLjl6bTE4NC41IDQuNmwtMTc2LjUgMTAxLjYgMC05Mi4zQzMxNy40IDM0MCAzNzYuMiAzMDYuNCAzOTIuNSAyOTdsMCA5MS40em0wLTExOS4xYy0yMC4zLTExLjYtNDcuMS0yNy04MC4yLTQ2LjFsMC05MS40YzIwLjMgMTEuNyA0Ny4xIDI3LjEgODAuMiA0Ni4ybDAgOTEuM3ptOC0xMDUuM2wtODAuMi00Ni4yIDgwLjItNDYuMiA4MC4yIDQ2LjEtODAuMiA0Ni4yem04IDEwNS4zbDAtOTEuM2MzMy4yLTE5LjEgNjAtMzQuNSA4MC4zLTQ2LjJsMCA5MS40LTgwLjMgNDYuMnoiXX0sTXByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwZm9ybXMiLGljb246WzQ0OCw1MTIsW10sImYyOTgiLCJNNDQ4IDc1LjJsMCAzNjEuN2MwIDI0LjMtMTkgNDMuMi00My4yIDQzLjJsLTM2MS42IDBDMTkuMyA0ODAgMCA0NjEuNCAwIDQzNi44TDAgNzUuMkMwIDUxLjEgMTguOCAzMiA0My4yIDMybDM2MS43IDBjMjQgMCA0My4xIDE4LjggNDMuMSA0My4yek00MTAuNyA0MzYuOGwwLTM2MS42YzAtMy0yLjYtNS44LTUuOC01LjhsLTkuMyAwLTExMC4zIDc0LjYtNjEuMy00OS45LTYxLjIgNDkuOS0xMTAuMy03NC43LTkuMyAwYy0zLjIgMC01LjggMi44LTUuOCA1LjhsMCAzNjEuN2MwIDMgMi42IDUuOCA1LjggNS44bDM2MS43IDBjMy4yIC4xIDUuOC0yLjcgNS44LTUuOHpNMTUwLjIgMTg2bDAgMzctNzMuNSAwIDAtMzcgNzMuNSAwem0wIDc0LjRsMCAzNy4zLTczLjUgMCAwLTM3LjMgNzMuNSAwem0xMS4xLTE0Ny4zbDU0LTQzLjctMTE4LjUgMCA2NC41IDQzLjd6bTIxMCA3Mi45bDAgMzctMTk2IDAgMC0zNyAxOTYgMHptMCA3NC40bDAgMzcuMy0xOTYgMCAwLTM3LjMgMTk2IDB6TTI4Ni43IDExMy4xbDY0LjUtNDMuNy0xMTguNCAwIDUzLjkgNDMuN3pNMzcxLjMgMzM1bDAgMzcuMy05OS40IDAgMC0zNy4zIDk5LjQgMHoiXX0sQ3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwZWFrZXItZGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZjgzYyIsIk0yMTMuOSAyOTZMMTAwIDI5NmMtMjYuNSAwLTUyLTEwLjUtNzAuNy0yOS4zUzAgMjIyLjUgMCAxOTYgMTAuNSAxNDQgMjkuMyAxMjUuMyA3My41IDk2IDEwMCA5NmwxMzIuOCAwYzEwLjYgMCAyMC44IDQuMiAyOC4zIDExLjdzMTEuNyAxNy43IDExLjcgMjguMy00LjIgMjAuOC0xMS43IDI4LjMtMTcuNyAxMS43LTI4LjMgMTEuN0w5OCAxNzZjLTI2LjUgMC0yNi40IDQwIDAgNDBsMTEzLjggMGMyNi41IDAgNTIgMTAuNSA3MC43IDI5LjNzMjkuMyA0NC4yIDI5LjMgNzAuNy0xMC41IDUyLTI5LjMgNzAuNy00NC4yIDI5LjMtNzAuNyAyOS4zTDQwIDQxNmMtMTAuNiAwLTIwLjgtNC4yLTI4LjMtMTEuN1MwIDM4Ni42IDAgMzc2IDQuMiAzNTUuMiAxMS43IDM0Ny43IDI5LjQgMzM2IDQwIDMzNmwxNzMuOSAwYzI2LjUgMCAyNi41LTQwIDAtNDB6TTI5OCA0MTZjMTMuNS05LjIgMjUtMjEgMzMuOC0zNC43czE0LjctMjkuMiAxNy4zLTQ1LjNsNjQuNiAwYzIuNiAwIDUuMi0uNiA3LjYtMS42czQuNi0yLjUgNi40LTQuNCAzLjMtNC4xIDQuMi02LjUgMS41LTUgMS40LTcuNmwwLTEyMGMwLTIuNi0uNS01LjItMS40LTcuNnMtMi40LTQuNi00LjItNi41LTQtMy4zLTYuNC00LjQtNS0xLjYtNy42LTEuNmwtMTE3LjIgMGM5LjctMTEuMSAxNS0yNS4zIDE1LTQwcy01LjMtMjguOS0xNS00MGwxMzYuOSAwYzQzLjQgMCA3OC42IDM1LjggNzguNiA4MGwwIDE2MGMwIDQ0LjItMzUuMiA4MC03OC42IDgwTDI5OCA0MTZ6Il19LHpwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbGlja3IiLGljb246WzQ0OCw1MTIsW10sImYxNmUiLCJNNDAwIDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE0NC41IDE5MmE2My41IDYzLjUgMCAxIDEgMCAxMjcgNjMuNSA2My41IDAgMSAxIDAtMTI3em0xNTkgMGE2My41IDYzLjUgMCAxIDEgMCAxMjcgNjMuNSA2My41IDAgMSAxIDAtMTI3eiJdfSxfcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtdmlzYSIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMCIsIk00NzAuMSAyMzEuM3M3LjYgMzcuMiA5LjMgNDVsLTMzLjQgMGMzLjMtOC45IDE2LTQzLjUgMTYtNDMuNS0uMiAuMyAzLjMtOS4xIDUuMy0xNC45bDIuOCAxMy40ek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xNTIuNSAzMzEuMmw2My4yLTE1NS4yLTQyLjUgMC0zOS4zIDEwNi00LjMtMjEuNS0xNC03MS40Yy0yLjMtOS45LTkuNC0xMi43LTE4LjItMTMuMWwtNjQuNyAwLS43IDMuMWMxNS44IDQgMjkuOSA5LjggNDIuMiAxNy4xbDM1LjggMTM1IDQyLjUgMHptOTQuNCAuMmwyNS4yLTE1NS40LTQwLjIgMC0yNS4xIDE1NS40IDQwLjEgMHptMTM5LjktNTAuOGMuMi0xNy43LTEwLjYtMzEuMi0zMy43LTQyLjMtMTQuMS03LjEtMjIuNy0xMS45LTIyLjctMTkuMiAuMi02LjYgNy4zLTEzLjQgMjMuMS0xMy40IDEzLjEtLjMgMjIuNyAyLjggMjkuOSA1LjlsMy42IDEuNyA1LjUtMzMuNmMtNy45LTMuMS0yMC41LTYuNi0zNi02LjYtMzkuNyAwLTY3LjYgMjEuMi02Ny44IDUxLjQtLjMgMjIuMyAyMCAzNC43IDM1LjIgNDIuMiAxNS41IDcuNiAyMC44IDEyLjYgMjAuOCAxOS4zLS4yIDEwLjQtMTIuNiAxNS4yLTI0LjEgMTUuMi0xNiAwLTI0LjYtMi41LTM3LjctOC4zbC01LjMtMi41LTUuNiAzNC45YzkuNCA0LjMgMjYuOCA4LjEgNDQuOCA4LjMgNDIuMiAuMSA2OS43LTIwLjggNzAtNTN6TTUyOCAzMzEuNGwtMzIuNC0xNTUuNC0zMS4xIDBjLTkuNiAwLTE2LjkgMi44LTIxIDEyLjlsLTU5LjcgMTQyLjUgNDIuMiAwczYuOS0xOS4yIDguNC0yMy4zbDUxLjYgMGMxLjIgNS41IDQuOCAyMy4zIDQuOCAyMy4zbDM3LjIgMHoiXX0sVHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVwd29yayIsaWNvbjpbNjQwLDUxMixbXSwiZTY0MSIsIk00OTMuOSAyOTUuNmMtNTAuMyAwLTgzLjUtMzguOS05Mi44LTUzLjkgMTEuOS05NS4zIDQ2LjgtMTI1LjQgOTIuOC0xMjUuNCA0NS41IDAgODAuOSAzNi40IDgwLjkgODkuN3MtMzUuNCA4OS43LTgwLjkgODkuN2wwLS4xem0wLTIzNy44Yy04MS45IDAtMTI3LjggNTMuNC0xNDEgMTA4LjQtMTQuOS0yOC0yNS45LTY1LjUtMzQuNS0xMDAuM2wtMTEzLjIgMCAwIDE0MWMwIDUxLjEtMjMuMyA4OS02OC44IDg5cy03MS42LTM3LjgtNzEuNi04OWwuNS0xNDEtNjUuMyAwIDAgMTQxYzAgNDEuMSAxMy4zIDc4LjQgMzcuNiAxMDUuMSAyNSAyNy41IDU5LjIgNDEuOCA5OC44IDQxLjggNzguOCAwIDEzMy44LTYwLjQgMTMzLjgtMTQ2LjlsMC05NC44YzguMiAzMS4yIDI3LjggOTEuMSA2NS4zIDE0My42bC0zNSAxOTkuNCA2Ni40IDAgMjMuMS0xNDEuM2M3LjYgNi4zIDE1LjcgMTIgMjQuMiAxNyAyMi4yIDE0IDQ3LjcgMjEuOSA3My45IDIyLjggMCAwIDQgLjIgNi4xIC4yIDgxLjIgMCAxNDUuOS02Mi45IDE0NS45LTE0Ny44UzU3NS4zIDU3LjkgNDk0LjEgNTcuOWwtLjItLjF6Il19LExwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrYWthby10YWxrIixpY29uOls1NzYsNTEyLFtdLCJlN2Q3IiwiTTI4OCAyLjVjMTU5LjEgMCAyODggMTAxLjcgMjg4IDIyNy4xIDAgMTI1LjQtMTI4LjkgMjI3LjEtMjg4IDIyNy4xLTE3LjUgMC0zNC42LTEuMi01MS4yLTMuNi0xNi42IDExLjctMTEyLjYgNzkuMS0xMjEuNyA4MC40IDAgMC0zLjcgMS40LTYuOS0uNHMtMi42LTYuNy0yLjYtNi43QzEwNi42IDUxOS44IDEzMC42IDQzNy4yIDEzNSA0MjEuOSA1My45IDM4MS44IDAgMzEwLjYgMCAyMjkuNSAwIDEwNC4xIDEyOC45IDIuNSAyODggMi41ek04Ni4yIDE2MS43Yy05IDAtMTYuMyA3LjMtMTYuMyAxNi4zczcuMyAxNi4zIDE2LjMgMTYuM2wyNS45IDAgMCA5OC43YzAgOC44IDcuNSAxNS45IDE2LjYgMTUuOXMxNi42LTcuMSAxNi42LTE1LjlsMC05OC43IDI1LjkgMGM5IDAgMTYuMy03LjMgMTYuMy0xNi4zcy03LjMtMTYuMy0xNi4zLTE2LjNsLTg1LjEgMHptMTQwLjggMGMtMTAuOCAuMi0xOS4zIDguNC0yMi4xIDE2LjRMMTY1LjIgMjgyLjdjLTUgMTUuNy0uNiAyMS41IDMuOSAyMy42IDMuMiAxLjUgNi45IDIuMyAxMC42IDIuMyA2LjkgMCAxMi4yLTIuOCAxMy44LTcuM2w4LjItMjEuNiA1MC43IDAgOC4yIDIxLjVjMS42IDQuNSA2LjkgNy4zIDEzLjggNy4zIDMuNyAwIDcuMy0uOCAxMC42LTIuMyA0LjYtMi4xIDktNy45IDMuOS0yMy42TDI0OS4yIDE3OC4xYy0yLjgtOC0xMS4zLTE2LjItMjIuMi0xNi40em0xODAuOSAwYy05LjIgMC0xNi42IDcuNS0xNi42IDE2LjZsMCAxMTMuN2MwIDkuMiA3LjUgMTYuNiAxNi42IDE2LjZzMTYuNi03LjUgMTYuNi0xNi42bDAtMzYuMiA1LjgtNS44IDM4LjkgNTEuNmMzLjIgNC4yIDggNi42IDEzLjMgNi42IDMuNiAwIDcuMS0xLjEgMTAtMy4zIDMuNS0yLjcgNS44LTYuNiA2LjQtMTFzLS41LTguOC0zLjItMTIuM2wtNDAuOS01NC4yIDM3LjktMzcuOGMyLjYtMi42IDMuOS02LjIgMy43LTEwLjEtLjItMy45LTItNy42LTQuOS0xMC41LTMuMS0zLjEtNy4zLTQuOS0xMS40LTQuOS0zLjYgMC02LjggMS4zLTkuMiAzLjdsLTQ2LjMgNDYuNCAwLTM1LjdjMC05LjItNy41LTE2LjYtMTYuNi0xNi42em0tOTEuMyAwYy05LjMgMC0xNi45IDcuNS0xNi45IDE2LjZsMCAxMTIuOGMwIDguNCA3LjEgMTUuMiAxNS45IDE1LjNsNTMuMyAwYzguOCAwIDE1LjktNi45IDE1LjktMTUuM3MtNy4yLTE1LjItMTUuOS0xNS4ybC0zNS4zIDAgMC05Ny42YzAtOS4yLTcuNi0xNi42LTE3LTE2LjZ6bS03MyA4OC42bC0zMy4yIDAgMTYuNi00Ny4xIDE2LjYgNDcuMXoiXX0sRHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZsdXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2OTQiLCJNNDI5LjUgMjM2LjNMMjkxLjcgMzc0LjEgNDI5LjUgNTEyIDI3MiA1MTJjLTM2LjEtMzYuMS04Mi4xLTgyLjEtMTM3LjktMTM3LjlsMTM3LjktMTM3LjggMTU3LjUgMHpNMjcyIDBMMTYgMjU2IDk0LjggMzM0LjggNDI5LjUgMCAyNzIgMHoiXX0sJHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1ZmZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjgzNyIsIk00MjguMiAzODAuN0wyMzEuNyA0NzguNWMtMi4zIDEtNC44IDEuNS03LjMgMS41cy01LS41LTcuMy0xLjVMMjAuNSAzODAuN2MtNC0yLTQtNS4zIDAtNy4zTDY3LjYgMzUwYzIuMy0xIDQuOC0xLjUgNy4zLTEuNXM1IC41IDcuMyAxLjVsMTM0LjggNjdjMi4zIDEgNC44IDEuNSA3LjMgMS41czUtLjUgNy4zLTEuNWwxMzQuOC02N2MyLjMtMSA0LjgtMS41IDcuMy0xLjVzNSAuNSA3LjMgMS41bDQ3LjEgMjMuNGM0IDIgNCA1LjIgMCA3LjJ6bTAtMTM2LjVsLTQ3LjEtMjMuNGMtMi4zLTEtNC44LTEuNS03LjMtMS41cy01IC41LTcuMyAxLjVMMjMxLjcgMjg3LjhjLTIuMyAxLTQuOCAxLjUtNy4zIDEuNXMtNS0uNS03LjMtMS41TDgyLjMgMjIwLjdjLTIuMy0xLTQuOC0xLjUtNy4zLTEuNXMtNSAuNS03LjMgMS41TDIwLjUgMjQ0LjFjLTQgMi00IDUuMyAwIDcuM2wxOTYuNSA5Ny44YzIuMyAxIDQuOCAxLjUgNy4zIDEuNXM1LS41IDcuMy0xLjVsMTk2LjUtOTcuOGM0LTIgNC01LjMgMC03LjN6TTIwLjUgMTMwLjRMMjE3IDIyMC43YzQuNyAxLjkgMTAgMS45IDE0LjcgMGwxOTYuNS05MC4zYzQtMS45IDQtNC45IDAtNi43TDIzMS43IDMzLjRjLTQuNy0xLjktMTAtMS45LTE0LjcgMEwyMC41IDEyMy43Yy00IDEuOC00IDQuOSAwIDYuN3oiXX0sQXByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyYXRpcGF5IixpY29uOls1MTIsNTEyLFtdLCJmMTg0IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMzc0LjMgMjMzLjdMMjU3LjcgMzkxLjMgMTQxLjMgMjMzLjdjLTktMTIuMy0xOS43LTUyIDE0LTc0LjMgMjktMTguNyA1Ni40LTQuMyA3MC43IDEyLjMgMTYuNCAxOC41IDQ4LjEgMTcuNCA2My43IDAgMTQuMy0xNi42IDQxLjctMzEgNzAuMy0xMi4zIDM0IDIyLjMgMjMuMyA2MS45IDE0LjIgNzQuM3oiXX0sRXByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wYXkiLGljb246WzY0MCw1MTIsW10sImUwNzkiLCJNMTA1LjcgMjE1bDAgNDEuMiA1Ny4xIDBjLTEuMiA2LjYtMy42IDEyLjktNy4yIDE4LjVzLTguNCAxMC40LTEzLjkgMTQuMWMtOS41IDYuNi0yMS43IDEwLjMtMzYgMTAuMy0yNy42IDAtNTAuOS0xOC45LTU5LjMtNDQuMi00LjQtMTMuMy00LjQtMjcuNyAwLTQxIDguNC0yNS41IDMxLjctNDQuNCA1OS4zLTQ0LjQgNy41LS4xIDE0LjkgMS4yIDIxLjkgNHMxMy4zIDYuOSAxOC42IDEyLjFMMTc2LjUgMTU1Yy0xOS4xLTE4LjEtNDQuNC0yOC4xLTcwLjctMjcuOC0xOS43IC4xLTM4LjkgNS43LTU1LjYgMTYuMXMtMzAuMSAyNS4zLTM4LjggNDNDMy45IDIwMS4yIDAgMjE3LjcgMCAyMzQuNHMzLjkgMzMuMiAxMS4zIDQ4LjFsMCAuMmM4LjcgMTcuNyAyMi4xIDMyLjUgMzguOCA0M3MzNS45IDE2IDU1LjYgMTZjMjguNSAwIDUyLjUtOS41IDcwLTI1LjkgMjAtMTguNiAzMS40LTQ2LjIgMzEuNC03OC45IDAtNy4zLS42LTE0LjYtMS44LTIxLjhsLTk5LjcgMHptMzg5LjQtNGMtMTAuMS05LjQtMjMuOS0xNC4xLTQxLjQtMTQuMS0yMi41IDAtMzkuMyA4LjMtNTAuNSAyNC45TDQyNC4xIDIzNWM3LjYtMTEuMyAxOC4xLTE3IDMxLjMtMTcgOC40IDAgMTYuNSAzLjIgMjIuNyA4LjggMyAyLjYgNS41IDUuOSA3LjEgOS42czIuNSA3LjYgMi41IDExLjdsMCA1LjVjLTkuMS01LjEtMjAuNi03LjgtMzQuNi03LjgtMTYuNCAwLTI5LjYgMy45LTM5LjUgMTEuOHMtMTQuOCAxOC4zLTE0LjggMzEuNmMtLjIgNS45IDEgMTEuOCAzLjQgMTcuMnM2IDEwLjIgMTAuNSAxNC4xYzkuMiA4LjMgMjEgMTIuNSAzNC44IDEyLjUgMTYuMyAwIDI5LjItNy4zIDM5LTIxLjlsMSAwIDAgMTcuNyAyMi42IDAgMC03OC43Yy4xLTE2LjYtNC45LTI5LjctMTUtMzl6bS0xOS4yIDg5LjNjLTMuNSAzLjUtNy42IDYuMy0xMi4yIDguMnMtOS41IDIuOS0xNC40IDIuOWMtNi43IC4xLTEzLjEtMi4xLTE4LjMtNi4yLTIuNC0xLjgtNC40LTQuMi01LjctNi45cy0yLTUuNy0yLTguN2MwLTcgMy4yLTEyLjggOS41LTE3LjRzMTQuNS03IDI0LjEtN2MxMy4yLS4yIDIzLjUgMi44IDMwLjggOC44IDAgMTAuMS00IDE4LjktMTEuNyAyNi40em0tOTMuNy0xNDJjLTUuMy01LjMtMTEuNi05LjUtMTguNi0xMi4zcy0xNC40LTQuMi0yMS45LTRsLTYyLjcgMCAwIDE4Ni43IDIzLjYgMCAwLTc1LjYgMzkgMGMxNiAwIDI5LjUtNS40IDQwLjUtMTUuOSAuOS0uOSAxLjgtMS44IDIuNi0yLjcgOS42LTEwLjUgMTQuOC0yNC40IDE0LjMtMzguNnMtNi42LTI3LjctMTYuOS0zNy42bDAgMHptLTE2LjYgNjIuMmMtMyAzLjItNi42IDUuNy0xMC42IDcuNHMtOC40IDIuNS0xMi43IDIuM2wtMzkuNiAwIDAtNjUuMiAzOS42IDBjOC41IDAgMTYuNiAzLjMgMjIuNiA5LjIgNi4xIDYuMSA5LjYgMTQuMyA5LjggMjNzLTMuMSAxNy05IDIzLjNsMCAwek02MTQuMyAyMDFsLTM2LjUgOTEuNy0uNSAwLTM3LjQtOTEuNy0yNS43IDAgNTEuOCAxMTkuNi0yOS40IDY0LjMgMjQuMyAwIDc5LTE4My45LTI1LjcgMHoiXX0sSXByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcGxlIixpY29uOlszODQsNTEyLFtdLCJmMTc5IiwiTTMxOS4xIDI2OC43Yy0uMi0zNi43IDE2LjQtNjQuNCA1MC04NC44LTE4LjgtMjYuOS00Ny4yLTQxLjctODQuNy00NC42LTM1LjUtMi44LTc0LjMgMjAuNy04OC41IDIwLjctMTUgMC00OS40LTE5LjctNzYuNC0xOS43LTU1LjggLjktMTE1LjEgNDQuNS0xMTUuMSAxMzMuMiAwIDI2LjIgNC44IDUzLjMgMTQuNCA4MS4yIDEyLjggMzYuNyA1OSAxMjYuNyAxMDcuMiAxMjUuMiAyNS4yLS42IDQzLTE3LjkgNzUuOC0xNy45IDMxLjggMCA0OC4zIDE3LjkgNzYuNCAxNy45IDQ4LjYtLjcgOTAuNC04Mi41IDEwMi42LTExOS4zLTY1LjItMzAuNy02MS43LTkwLTYxLjctOTEuOXpNMjYyLjUgMTA0LjVjMjcuMy0zMi40IDI0LjgtNjEuOSAyNC03Mi41LTI0LjEgMS40LTUyIDE2LjQtNjcuOSAzNC45LTE3LjUgMTkuOC0yNy44IDQ0LjMtMjUuNiA3MS45IDI2LjEgMiA0OS45LTExLjQgNjkuNS0zNC4zeiJdfSxQcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHVtYmxyIixpY29uOlszMjAsNTEyLFtdLCJmMTczIiwiTTMwOS45IDQ4MC4zYy0xMy42IDE0LjUtNTAgMzEuNy05Ny40IDMxLjctMTIwLjggMC0xNDctODguOC0xNDctMTQwLjZsMC0xNDQtNDcuNSAwYy01LjUgMC0xMC00LjUtMTAtMTBsMC02OGMwLTcuMiA0LjUtMTMuNiAxMS4zLTE2IDYyLTIxLjggODEuNS03NiA4NC4zLTExNy4xIC44LTExIDYuNS0xNi4zIDE2LjEtMTYuM2w3MC45IDBjNS41IDAgMTAgNC41IDEwIDEwbDAgMTE1LjIgODMgMGM1LjUgMCAxMCA0LjQgMTAgOS45bDAgODEuN2MwIDUuNS00LjUgMTAtMTAgMTBsLTgzLjQgMCAwIDEzMy4yYzAgMzQuMiAyMy43IDUzLjYgNjggMzUuOCA0LjgtMS45IDktMy4yIDEyLjctMi4yIDMuNSAuOSA1LjggMy40IDcuNCA3LjlsMjIgNjQuM2MxLjggNSAzLjMgMTAuNi0uNCAxNC41eiJdfSxOcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhvZW5peC1zcXVhZHJvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMSIsIk05NiA2My40YzQ2LjUtMzYuMSAxMDUuNi01Ni4xIDE2NC41LTU0LjYgMjkuNi0uNCA1OS4xIDUuNCA4Ni45IDE1LjMtMjQuMS00LjYtNDktNi4zLTczLjQtMi41LTQyLjkgNS4zLTgzIDI3LjItMTExLjggNTkuMiA1LjctMSAxMC44LTMuNyAxNi01LjkgMTguMS03LjkgMzcuNS0xMy4zIDU3LjItMTQuOCAxOS43LTIuMSAzOS42LS40IDU5LjMgMS45LTE0LjQgMi44LTI5LjEgNC42LTQzIDkuNi0zNC40IDExLjEtNjUuMyAzMy4yLTg2LjMgNjIuNi0xMy44IDE5LjctMjMuNiA0Mi45LTI0LjcgNjcuMS0uNCAxNi41IDUuMiAzNC44IDE5LjggNDQgMTEuMiA2LjggMjQuNiA5LjIgMzcuNSA2LjcgMTUuNC0yLjUgMzAuMS04LjYgNDMuNi0xNi4zIDExLjUtNi44IDIyLjctMTQuNiAzMi0yNC4zIDMuOC0zLjIgMi41LTguNCAyLjYtMTIuOC0yLjEtLjMtNC40LTEuMS02LjMgLjMtMTEuNCA2LjMtMjMuNCAxMS40LTM1LjggMTUuNC0yMCA2LjItNDIuMiA4LjUtNjIuMSAuOCAxMi44IDEuNyAyNi4xIC4zIDM3LjctNS40IDIwLjItOS43IDM2LjgtMjUuMiA1NC40LTM4LjggMjcuNy0yMS4zIDU3LjUtMzkuOSA4OC45LTU1LjMgMjUuNy0xMiA1Mi45LTIyLjggODEuNi0yNC4xLTE1LjYgMTMuNy0zMi4xIDI2LjUtNDYuOCA0MS40LTE0LjUgMTQtMjcuNSAyOS41LTQwLjEgNDUuMi0zLjUgNC42LTkgNi45LTEzLjYgMTAuMi0yMi40IDE1LTQwLjMgMzUuOC01MS45IDYwLjEtOS4zIDE5LjctMTQuNSA0MS45LTExLjggNjMuNiAxLjkgMTMuNyA4LjcgMjcuNiAyMC45IDM0LjkgMTIuOSA4IDI5IDguMSA0My41IDUuMSAzMi44LTcuNCA2MS40LTI4LjkgODEtNTUuOCAyMC40LTI3LjUgMzAuNS02Mi4yIDI5LjItOTYuMy0uNS03LjUtMS42LTE1LTEuNy0yMi41IDggMTkuNSAxNC44IDM5LjcgMTYuNiA2MC44IDIgMTQuMyAuNyAyOC44LTEuNiA0Mi45LTEuOSAxMS01LjcgMjEuNS03LjggMzIuNCAyMC40LTIyLjkgMzQtNTAuOSAzOS4zLTgxLjEgNS42LTM1LjUgLjctNzEuOS0xNC4yLTEwNC42IDIwLjggMzIgMzIuMyA2OS42IDM1LjcgMTA3LjUgLjUgMTIuNyAuNSAyNS41IDAgMzguMi0yLjggMzQuMy0xMi45IDY3LjYtMjkuNiA5Ny44LTI2LjEgNDcuMy02OCA4NS42LTExNy4yIDEwOC03OC4zIDM2LjItMTc0LjcgMzEuMy0yNDgtMTQuNy0zOS0yMy44LTcwLjYtNTgtOTEuNC05OC43LTE0LjctMjguOS0yMy4zLTYwLjUtMjUuNC05Mi45bDAtMzEuM0MzLjkgMTcyIDQwLjkgMTA1LjggOTYgNjMuNHptMjIyIDgwLjNjNS41LS45IDEwLjgtMi40IDE2LTQuNSA1LTEuOCA5LjItNS45IDEwLjMtMTEuMi05IDUtMTggOS45LTI2LjMgMTUuN3oiXX0sT3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNlbnRlcmNvZGUiLGljb246WzUxMiw1MTIsW10sImYzODAiLCJNMjAxLjggMjU0LjhhNjQuMSA2NC4xIDAgMSAxIDEyNy40IDEzLjggNjQuMSA2NC4xIDAgMSAxIC0xMjcuNC0xMy44em00MS42IDI0OC45Qzk2LjcgNDk2LTguMiAzNjUuNSAxMC4xIDIyNC4zIDIxLjMgMTM3LjcgNzUuOSA2Ny40IDE0OS4yIDMyLjMgMzEwLjItNDQuOCA0OTguOSA2OS43IDUwMy45IDI0OC45IDUwOCAzOTUuOSAzODUuNSA1MTEuMSAyNDMuNCA1MDMuN3ptMTc5LjktMTgwYzI3LjktMTE4LTE2MC41LTIwNS45LTIzNy4yLTIzNC4yLTU3LjUgNTYuMy02OS4xIDE4OC42LTMzLjggMzQ0LjQgNjguOCAxNS44IDE2OS4xLTI2LjQgMjcxLTExMC4yeiJdfSxScHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGViaWFuIixpY29uOls0NDgsNTEyLFtdLCJlNjBiIiwiTTM4MC40IDI0NS42YzMtNy42IDUuNS0xNCA1LjItMjQuNGwtNC4zIDljNC40LTEzLjIgNC0yNy4xIDMuNi00MC40LS4yLTYtLjMtMTEuOCAwLTE3LjRsLTEuOC0uNWMtMS41LTQ1LjItNDAuNi05My4xLTc1LjMtMTA5LjQtMzAtMTMuOC03Ni4xLTE2LjItOTcuMy01LjggMS4zLTEuMSA0LjItMiA2LjgtMi43bC4zLS4xYzMuMy0xIDYtMS43IDQtMi45LTE5LjIgMS45LTI0LjkgNS41LTMxLjEgOS40bC0uMSAwYy00LjYgMi45LTkuNSA2LTIwLjMgOC43LTMuNSAzLjQgMS43IDIgNS44IC45czcuMi0xLjktLjEgMi40Yy0zLjUgMS02LjYgMS4zLTkuNiAxLjZsLS4xIDBjLTguMyAuOC0xNS44IDEuNi0zMC43IDE3IC44IDEuMyAzLjQtLjIgNS4zLTEuM2wuMS0uMWMyLjMtMS40IDMuNC0yLTEuNyA0LjQtMTkuMS0yLjQtNjAuMyA0My43LTY5LjEgNTlsNC42IC44Yy0zLjIgOC02LjggMTQuOC0xMCAyMC44LTQuMyA4LjEtNy45IDE0LjktOC43IDIxLjMtLjMgNS4xLTEgMTEtMS43IDE3LjMtLjEgMS0uMiAyLS4zIDNsLS4xIC42Yy0zIDI3LjMtNi43IDYwLjggMy45IDczbC0xLjMgMTNjLjYgMS4yIDEuMSAyLjMgMS42IDMuNSAuMiAuNCAuNCAuOCAuNSAxLjEgMSAyLjEgMiA0LjIgMy4zIDYuMmwtMyAuMmM3IDIyLjEgMTAuOCAyMi41IDE1LjEgMjIuOSA0LjQgLjQgOS4zIC45IDE4LjcgMjQuMi0yLjctLjktNS41LTEuOS05LjQtNy4yLS41IDQuMSA1LjggMTYuMyAxMy4xIDI1LjhsLTMuMSAzLjZjMi4xIDMuNyA0LjggNi4yIDcuNiA4LjggMSAuOSAyLjEgMS45IDMuMSAyLjktMTEuOS02LjUgMy4yIDEzLjcgMTEuOSAyNS4yIC44IDEuMSAxLjUgMiAyLjIgMi45IDEuNCAxLjkgMi41IDMuNCAyLjkgNC4xbDIuNC00LjJjLS4zIDYuMSA0LjMgMTMuOSAxMy4xIDI0LjdsNy4zLS4zYzMgNiAxNCAxNi43IDIwLjcgMTcuMmwtNC40IDUuOGM4LjEgMi42IDEwLjMgNC4zIDEyLjcgNi4yIDIuNiAyLjEgNS40IDQuMyAxNi4xIDguMWwtNC4yLTcuNGMzLjUgMyA2LjIgNS45IDguOCA4LjdsLjEgLjFjNS4yIDUuNiA5LjkgMTAuNiAxOS43IDE1LjMgMTAuNyAzLjcgMTYuNiA0LjcgMjIuNyA1LjggLjMgMCAuNiAuMSAuOSAuMSA1LjQgLjggMTEuMiAxLjggMjAuOCA0LjUtMS4xLS4xLTIuMi0uMS0zLjMtLjEtMi4zLS4xLTQuNy0uMS03LS4xLTE0LjQtLjItMjkuMi0uNC00Mi43LTUuMi05Ni42LTI1LjctMTg0LjktMTM5LTE3OC40LTI1NS42LS42LTkuOS0uMy0yMC45IDAtMzAuNyAuNC0xMy41IC43LTI0LjgtMS42LTI4LjNsMS0zLjFjNS4zLTE3LjQgMTEuNy0zOC4yIDIzLjgtNjIuOGwtLjEtLjIgMC0uMWMuNCAuNCAzLjQgMy40IDguOC01LjggLjgtMS44IDEuNi0zLjcgMi40LTUuNiAuNS0xLjEgLjktMi4yIDEuNC0zLjIgMi41LTYuMSA1LjEtMTIuMyA4LjQtMTcuOWwyLjYtLjZjMS43LTEwLjEgMTctMjMuOCAyOS44LTM1LjJsMS4xLTFjNS43LTUuMSAxMC43LTkuNyAxMy42LTEzLjFsLjcgNC40YzE3LTE1LjkgNDQuNi0yNy41IDY1LjYtMzYuNGwuNS0uMmM0LjgtMiA5LjMtMy45IDEzLjMtNS43LTMuNCAzLjggMi4yIDIuNyAxMCAxIDQuOC0xIDEwLjQtMi4xIDE1LjMtMi40bC0zLjkgMi4xYy0yLjcgMS40LTUuNCAyLjgtOCA0LjYgOC4xLTIgMTEuNy0xLjQgMTUuNy0uOGwuMyAwYzMuNSAuNiA3LjMgMS4yIDE0LjYgLjItNS42IC44LTEyLjMgMy0xMS4yIDMuOCA3LjkgLjkgMTIuOC0uMSAxNy4yLTFsLjIgMGM1LjUtMS4xIDEwLjMtMiAxOS4zIC45bC0xLTQuOGM3LjMgMi42IDEyLjcgNC4zIDE3LjUgNS44bC41IC4xYzEwIDMgMTcuNiA1LjMgMzQuMiAxNC4xIDMuMiAuMiA1LjMtLjUgNy40LTEuMmwuMSAwYzMuNi0xLjEgNy0yLjEgMTUuMiAxLjIgLjMgLjUgLjUgMSAuNyAxLjQgLjEgLjIgLjIgLjUgLjMgLjdsMCAuMWMxIDIuNiAxLjggNC42IDE0LjYgMTIuMSAxLjctLjctMi43LTQuNy02LjQtOC4ybC0uMS0uMWMtLjItLjEtLjMtLjMtLjUtLjQgMzIuMiAxNy4zIDY3LjMgNTQuMSA3OCA5My41LTYtMTEuMS01LjItNS41LTQuMyAuNSAuNiA0IDEuMiA4LjEtLjIgNy41IDQuNSAxMi4xIDguMSAyNC41IDEwLjQgMzcuNGwtLjgtMi45LS4xLS4zYy0zLjMtMTEuOS05LjYtMzQuMy0xOS45LTQ5LjMtLjQgNC4zLTIuOCAzLjktNS4yIDMuNWwtLjEgMGMtMy4zLS42LTYuMi0xLjEtMS45IDEyLjYgMi42IDMuOCAzLjEgMi40IDMuNSAxLjEgLjUtMS41IC45LTIuNyA0LjcgNS4yIC4xIDQuMSAxIDguMiAyLjEgMTIuN2wuMSAuNmMuMSAuMyAuMSAuNSAuMiAuOGwuMSAuNmMuNiAyLjYgMS4zIDUuNCAxLjggOC40LTEuMS0uMi0yLjMtMi4yLTMuNC00LjItMS40LTIuNC0yLjgtNC43LTMuNy0zLjIgMi40IDExLjUgNi41IDE3LjQgOCAxOC4zLS4zIC42LS42IC43LTEuMSAuNy0uOCAwLTEuOCAuMS0xLjkgNS4zIC43IDEzLjcgMy4zIDEyLjUgNS4zIDExLjYgLjYtLjMgMS4yLS42IDEuNy0uNC0uNiAyLjUtMS42IDUuMS0yLjcgNy45LTIuOCA3LjEtNiAxNS40LTMuNCAyNi4xLS44LTMtMi02LTMuMS04LjlsLS4xLS40Yy0uMi0uNS0uNC0xLS42LTEuNS0uMy0uOC0uNi0xLjYtLjktMi4zLS42IDQuNC0uMyA3LjctLjEgMTAuNmwwIC43Yy40IDUuMyAuNyAxMC0zIDE5LjkgNC4zLTE0LjIgMy44LTI2LjktLjItMjAuOCAxIDEwLjktMy43IDIwLjQtOCAyOC45bC0uMSAuMmMtMy42IDcuMS02LjggMTMuNS01LjkgMTkuM2wtNS4yLTcuMWMtNy41IDEwLjktNyAxMy4zLTYuNSAxNS41bDAgLjFjLjUgMS45IDEgMy44LTMuNCAxMC44IDEuNy0yLjkgMS4zLTMuNiAxLTQuMi0uNC0uOC0uNy0xLjUgMS43LTUuMS0xLjYgLjEtNS41IDMuOS0xMC4xIDguNS0zLjkgMy45LTguNSA4LjQtMTIuOCAxMS44LTM3LjUgMzAuMS04Mi4zIDM0LTEyNS42IDE3LjggLjItMS0uMi0yLjEtMy4xLTQuMS0zNi44LTI4LjItNTguNS01Mi4xLTUwLjktMTA3LjUgMi4xLTEuNiAzLjYtNS44IDUuMy0xMC44bC4yLS40IC4xLS4zIDAtLjFjMi45LTguNCA2LjUtMTguOCAxNC4zLTIzLjggNy44LTE3LjMgMzEuMy0zMy4zIDU2LjQtMzMuNyAyNS42LTEuNCA0Ny4yIDEzLjcgNTguMSAyNy45LTE5LjgtMTguNC01Mi4xLTI0LTc5LjctMTAuNC0yOC4yIDEyLjctNDUgNDMuOC00Mi41IDc0LjcgLjMtLjQgLjYtLjYgLjktLjhsLjItLjJjLjYtLjUgMS4xLS45IDEuNC0zLjMtLjkgNjAuMiA2NC44IDEwNC4zIDExMi4xIDgybC42IDEuM2MxMi43LTMuNSAxNS45LTYuNSAyMC4zLTEwLjdsLjEtLjFjMi4yLTIuMSA0LjctNC41IDguOS03LjMtLjMgLjctMS4zIDEuNy0yLjQgMi43LTIuMiAyLjEtNC42IDQuNS0xLjYgNC42IDUtMS4zIDE4LjUtMTMuNCAyOC41LTIyLjMgLjYtLjUgMS4yLTEgMS43LTEuNSAxLjUtMS4zIDIuOC0yLjUgNC0zLjZsLjMtLjNjMS45LTQuMiAxLjYtNS42IDEuMy03bDAtLjFjLS40LTEuNi0uOC0zLjMgMi40LTkuNmw3LjMtMy43Yy44LTIuMSAxLjUtNC4xIDIuMi02IC4yLS42IC41LTEuMiAuNy0xLjhsLS40LS4yLS4xLS4xek0yNDggMzM0LjFjLTYtMy0xMy43LTguOS0xNC44LTExLjRsLS40IC4zYy0uMyAuNi0uNSAxLjMtLjIgMi4yLTEyLjItNS43LTIzLjQtMTQuMy0zMi42LTI0LjkgNC45IDcuMSAxMC4xIDE0LjEgMTcgMTkuNS02LjktMi4zLTE1LjEtMTEuOC0yMS42LTE5LjNsLS4xLS4xYy00LjMtNS03LjktOS4xLTkuNy05LjUgMTkuOCAzNS41IDgwLjUgNjIuMyAxMTIuMyA0OS0xNC43IC41LTMzLjQgLjMtNDkuOS01Ljh6bTc5LjMtMTE5LjdsLS4xLS4yYy0uNS0xLjUtMS4xLTMuMS0xLjctMy40IDEuNC01LjggNS40LTEwLjcgNC40IDQuNi0xIDMuOC0xLjggMS41LTIuNi0xem0tNC4yIDIyLjJjLTEuMyA3LjktNSAxNS41LTEwLjEgMjIuNSAuMi0yLTEuMi0yLjQtMi42LTIuOC0yLjktLjgtNS45LTEuNiA1LjYtMTYuMS0uNSAxLjktMi4xIDQuNi0zLjcgNy4zbC0uMyAuNGMtMy42IDUuOS02LjcgMTEgNCA0LjNsMS0xLjhjMi42LTQuNSA1LTguOCA2LTEzLjhsLjEgMHptLTU1LjYgMzMuOWM3LjEgLjYgMTQuMSAuNiAyMS0xLjEtMi41IDIuNC01LjIgNC44LTguMyA3LjItMTEuMS0xLjctMjEuMi02LTEyLjctNi4xem0tOTIuNiAxMS42YzMuNiA3LjEgNi40IDExLjUgOSAxNS43bC4xIC4yYzIuMyAzLjcgNC40IDcuMSA2LjggMTEuNy01LjEtNC4yLTguNy05LjUtMTIuNS0xNWwtLjMtLjVjLTEuNC0yLjEtMi44LTQuMi00LjQtNi4ybDEuMi01LjkgLjEgMHptNy41LTkuNmMxLjYgMy4zIDMuMiA2LjQgNS43IDkuMWwyLjYgNy43LTEuMy0yLjFjLTMuMi01LjMtNi4zLTEwLjYtOC0xNi43bDEgMnptMjM4LjktNDEuNmMtMi4zIDE3LjQtNy43IDM0LjYtMTYgNTAuMyA3LjYtMTQuOSAxMi41LTMwLjkgMTQuOC00Ny4ybDEuMi0zLjF6TTM1LjggMTEwLjZjLjQgLjggMS40IC41IDIuMyAuMyAxLjktLjUgMy42LS45LS4xIDcuNi0uNSAuMy0xIC43LTEuNSAxLTEuNCAuOS0yLjggMS45LTMuOSAzIDEuOS0zLjggMy41LTcuNCAzLjItMTEuOXpNMjUuNSAxNTIuM2MtLjcgMy43LTEuNSA3LjktMy40IDEzLjkgLjItMS45IDAtMy41LS4yLTQuOWwwLS4xYy0uNC0zLjQtLjctNi4zIDQuMy0xMi44LS4zIDEuMi0uNSAyLjUtLjcgMy44bDAgLjF6Il19LEZwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXN0b2RvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmNiIsIk00MzMgMTc5LjFjMC05Ny4yLTYzLjctMTI1LjctNjMuNy0xMjUuNy02Mi41LTI4LjctMjI4LjYtMjguNC0yOTAuNSAwIDAgMC02My43IDI4LjUtNjMuNyAxMjUuNyAwIDExNS43LTYuNiAyNTkuNCAxMDUuNiAyODkuMSA0MC41IDEwLjcgNzUuMyAxMyAxMDMuMyAxMS40IDUwLjgtMi44IDc5LjMtMTguMSA3OS4zLTE4LjFsLTEuNy0zNi45cy0zNi4zIDExLjQtNzcuMSAxMC4xYy00MC40LTEuNC04My00LjQtODkuNi01NC0uNi00LjYtLjktOS4zLS45LTEzLjkgODUuNiAyMC45IDE1OC43IDkuMSAxNzguNyA2LjcgNTYuMS02LjcgMTA1LTQxLjMgMTExLjItNzIuOSA5LjgtNDkuOCA5LTEyMS41IDktMTIxLjV6TTM1Ny45IDMwNC4zbC00Ni42IDAgMC0xMTQuMmMwLTQ5LjctNjQtNTEuNi02NCA2LjlsMCA2Mi41LTQ2LjMgMCAwLTYyLjVjMC01OC41LTY0LTU2LjYtNjQtNi45bDAgMTE0LjItNDYuNyAwYzAtMTIyLjEtNS4yLTE0Ny45IDE4LjQtMTc1IDI1LjktMjguOSA3OS44LTMwLjggMTAzLjggNi4xbDExLjYgMTkuNSAxMS42LTE5LjVjMjQuMS0zNy4xIDc4LjEtMzQuOCAxMDMuOC02LjEgMjMuNyAyNy4zIDE4LjQgNTMgMTguNCAxNzVsMCAweiJdfSxCcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2tldGNoIixpY29uOls1MTIsNTEyLFtdLCJmN2M2IiwiTTI3LjggMTYyLjJsLTE4LjUgMjQuOSA5MC41IDAgNi45LTEzMC43LTc4LjkgMTA1Ljh6TTM5Ni42IDQ1LjdMMjY4IDMyIDQwMy43IDE3OS4yIDM5Ni42IDQ1Ljd6TTExMi41IDIxOC4zbC0xMS4yLTIyLTkxLjEgMCAyMjQuOSAyNjEuNy0xMjIuNi0yMzkuN3ptMi0zMS4ybDI4NCAwQzM0MC42IDEyNC4zIDI5My4zIDcyLjkgMjU2LjYgMzNMMTE0LjUgMTg3LjF6bTI5Ny4zIDkuMWwtMTMzLjkgMjYxLjggMjI0LjgtMjYxLjctOTAuOSAwIDAtLjF6TTQxNS43IDY5bC05LjQtMTIuNiAuOSAxNy4zIDYuMSAxMTMuNCA5MC4zIDAtODcuOS0xMTguMXpNMTEzLjggOTMuNUwxMDkuMiAxNzkuMSAyNDUgMzIgMTE2LjQgNDUuNyAxMTMuOCA5My41ek00MDEuNSAxOTYuMmwtMjkwIDBjMTguMiAzNS42IDY2LjYgMTMwLjIgMTQ1LjEgMjgzLjhMNDAxLjUgMTk2LjJ6Il19LEhwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWItYXdlc29tZSIsaWNvbjpbNjQwLDUxMixbXSwiZTY4MiIsIk0zNzIuMiA1MmMwIDIwLjktMTIuNCAzOS0zMC4yIDQ3LjJMNDQ4IDE5MiA1NTIuNCAxNzEuMWMtNS4zLTcuNy04LjQtMTcuMS04LjQtMjcuMSAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjYtMjAuNiA0Ny4xLTQ2LjQgNDhMNDgxIDQ0Mi4zYy0xMC4zIDIzLTMzLjIgMzcuNy01OC40IDM3LjdsLTIwNS4yIDBjLTI1LjIgMC00OC0xNC44LTU4LjQtMzcuN0w0Ni40IDE5MkMyMC42IDE5MS4xIDAgMTcwIDAgMTQ0IDAgMTE3LjUgMjEuNSA5NiA0OCA5NnM0OCAyMS41IDQ4IDQ4YzAgMTAuMS0zLjEgMTkuNC04LjQgMjcuMUwxOTIgMTkyIDI5OC4xIDk5LjFjLTE3LjctOC4zLTMwLTI2LjMtMzAtNDcuMSAwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybC4xIDB6Il19LHFwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzYXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFlIiwiTTMwMS44IDM3OC45bDAgMHptMjQ5LjEtODdjLTIwLjEgMC00MCA0LjYtNTggMTMuNS01LjktMTEuOS0xMi0yMi4zLTEzLTMwLjEtMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjMtNi43LTI0IDIuNS0yNS4zIDUuOWMtMi4zIDYuMi00LjEgMTIuNi01LjMgMTkuMS0yLjMgMTEuNy0yNS44IDUzLjUtMzkuMSA3NS4zLTQuNC04LjUtOC4xLTE2LTguOS0yMi0xLjItOS4xLTIuNS0xNC41LTEuMS0yNS4zczcuNy0yNi4xIDcuNi0yNy4yLTEuNC02LjYtMTQuMy02LjctMjQgMi41LTI1LjMgNS45LTIuNyAxMS40LTUuMyAxOS4xLTMzLjkgNzcuMy00Mi4xIDk1LjRjLTQuMiA5LjItNy44IDE2LjYtMTAuNCAyMS42LS40IC44LS43IDEuMy0uOSAxLjcgLjMtLjUgLjUtMSAuNS0uOC0yLjIgNC4zLTMuNSA2LjctMy41IDYuN2wwIC4xYy0xLjcgMy4yLTMuNiA2LjEtNC41IDYuMS0uNiAwLTEuOS04LjQgLjMtMTkuOSA0LjctMjQuMiAxNS44LTYxLjggMTUuNy02My4xLS4xLS43IDIuMS03LjItNy4zLTEwLjctOS4xLTMuMy0xMi40IDIuMi0xMy4yIDIuMnMtMS40IDItMS40IDIgMTAuMS00Mi40LTE5LjQtNDIuNGMtMTguNCAwLTQ0IDIwLjItNTYuNiAzOC41LTcuOSA0LjMtMjUgMTMuNi00MyAyMy41LTYuOSAzLjgtMTQgNy43LTIwLjcgMTEuNC0uNS0uNS0uOS0xLTEuNC0xLjUtMzUuOC0zOC4yLTEwMS45LTY1LjItOTkuMS0xMTYuNSAxLTE4LjcgNy41LTY3LjggMTI3LjEtMTI3LjQgOTgtNDguOCAxNzYuMy0zNS40IDE4OS44LTUuNiAxOS40IDQyLjUtNDEuOSAxMjEuNi0xNDMuNyAxMzMtMzguOCA0LjMtNTkuMi0xMC43LTY0LjMtMTYuMy01LjMtNS45LTYuMS02LjItOC4xLTUuMS0zLjMgMS44LTEuMiA3IDAgMTAuMSAzIDcuOSAxNS41IDIxLjkgMzYuOCAyOC45IDE4LjcgNi4xIDY0LjIgOS41IDExOS4yLTExLjggNjEuOC0yMy44IDEwOS45LTkwLjEgOTUuOC0xNDUuNi0xNC40LTU2LjQtMTA3LjktNzQuOS0xOTYuMy00My41LTUyLjcgMTguNy0xMDkuNyA0OC4xLTE1MC43IDg2LjQtNDguNyA0NS42LTU2LjUgODUuMy01My4zIDEwMS45IDExLjQgNTguOSA5Mi42IDk3LjMgMTI1LjEgMTI1LjctMS42IC45LTMuMSAxLjctNC41IDIuNS0xNi4zIDguMS03OC4yIDQwLjUtOTMuNyA3NC43LTE3LjUgMzguOCAyLjkgNjYuNiAxNi4zIDcwLjQgNDEuOCAxMS42IDg0LjYtOS4zIDEwNy42LTQzLjZzMjAuMi03OS4xIDkuNi05OS41Yy0uMS0uMy0uMy0uNS0uNC0uOCA0LjItMi41IDguNS01IDEyLjgtNy41IDguMy00LjkgMTYuNC05LjQgMjMuNS0xMy4zLTQgMTAuOC02LjkgMjMuOC04LjQgNDIuNi0xLjggMjIgNy4zIDUwLjUgMTkuMSA2MS43IDUuMiA0LjkgMTEuNSA1IDE1LjQgNSAxMy44IDAgMjAtMTEuNCAyNi45LTI1IDguNS0xNi42IDE2LTM1LjkgMTYtMzUuOXMtOS40IDUyLjIgMTYuMyA1Mi4yYzkuNCAwIDE4LjgtMTIuMSAyMy0xOC4zbDAgLjFzLjItLjQgLjctMS4yYzEtMS41IDEuNS0yLjQgMS41LTIuNGwwLS4zYzMuOC02LjUgMTIuMS0yMS40IDI0LjYtNDYgMTYuMi0zMS44IDMxLjctNzEuNSAzMS43LTcxLjUgMS41IDguNyAzLjYgMTcuMyA2LjIgMjUuOCAyLjggOS41IDguNyAxOS45IDEzLjQgMzAtMy44IDUuMi02LjEgOC4yLTYuMSA4LjIgMCAuMSAwIC4xIC4xIC4yLTMgNC02LjQgOC4zLTkuOSAxMi41LTEyLjggMTUuMi0yOCAzMi42LTMwIDM3LjYtMi40IDUuOS0xLjggMTAuMyAyLjggMTMuNyAzLjQgMi42IDkuNCAzIDE1LjcgMi41IDExLjUtLjggMTkuNi0zLjYgMjMuNS01LjQgNy4yLTIuNiAxNC02LjEgMjAuMi0xMC42IDEyLjUtOS4yIDIwLjEtMjIuNCAxOS40LTM5LjgtLjQtOS42LTMuNS0xOS4yLTcuMy0yOC4yIDEuMS0xLjYgMi4zLTMuMyAzLjQtNSAxOS44LTI4LjkgMzUuMS02MC42IDM1LjEtNjAuNiAxLjUgOC43IDMuNiAxNy4zIDYuMiAyNS44IDIuNCA4LjEgNy4xIDE3IDExLjQgMjUuNy0xOC42IDE1LjEtMzAuMSAzMi42LTM0LjEgNDQuMS03LjQgMjEuMy0xLjYgMzAuOSA5LjMgMzMuMSA0LjkgMSAxMS45LTEuMyAxNy4xLTMuNSA3LjctMi42IDE1LTYuMyAyMS42LTExLjEgMTIuNS05LjIgMjQuNi0yMi4xIDIzLjgtMzkuNi0uMy03LjktMi41LTE1LjgtNS40LTIzLjQgMTUuNy02LjYgMzYuMS0xMC4yIDYyLjEtNy4yIDU1LjcgNi41IDY2LjYgNDEuMyA2NC41IDU1LjhzLTEzLjggMjIuNi0xNy43IDI1LTUuMSAzLjMtNC44IDUuMWMuNSAyLjYgMi4zIDIuNSA1LjYgMS45IDQuNi0uOCAyOS4yLTExLjggMzAuMy0zOC43IDEuNi0zNC0zMS4xLTcxLjQtODktNzEuMWwwIDB6TTEyMS44IDQzNi42Yy0xOC40IDIwLjEtNDQuMiAyNy43LTU1LjMgMjEuMy0xMS45LTYuOS03LjItMzYuNSAxNS41LTU3LjkgMTMuOC0xMyAzMS42LTI1IDQzLjQtMzIuNCAyLjctMS42IDYuNi00IDExLjQtNi45IC44LS41IDEuMi0uNyAxLjItLjcgLjktLjYgMS45LTEuMSAyLjktMS43IDguMyAzMC40IC4zIDU3LjItMTkuMSA3OC4zbDAgMHptMTM0LjQtOTEuNGMtNi40IDE1LjctMTkuOSA1NS43LTI4LjEgNTMuNi03LTEuOC0xMS4zLTMyLjMtMS40LTYyLjMgNS0xNS4xIDE1LjYtMzMuMSAyMS45LTQwLjEgMTAuMS0xMS4zIDIxLjItMTQuOSAyMy44LTEwLjQgMy41IDUuOS0xMi4yIDQ5LjQtMTYuMiA1OS4yem0xMTEgNTNjLTIuNyAxLjQtNS4yIDIuMy02LjQgMS42LS45LS41IDEuMS0yLjQgMS4xLTIuNHMxMy45LTE0LjkgMTkuNC0yMS43YzMuMi00IDYuOS04LjcgMTAuOS0xMy45IDAgLjUgLjEgMSAuMSAxLjYtLjEgMTcuOS0xNy4zIDMwLTI1LjEgMzQuOGwwIDB6bTg1LjYtMTkuNWMtMi0xLjQtMS43LTYuMSA1LTIwLjcgMi42LTUuNyA4LjYtMTUuMyAxOS0yNC41IDEuMiAzLjUgMS44IDcuMSAxLjkgMTAuOC0uMSAyMi41LTE2LjIgMzAuOS0yNS45IDM0LjRsMCAweiJdfSxWcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhyZWVtYSIsaWNvbjpbMzg0LDUxMixbXSwiZTg1ZiIsIk04Ny40IDQ0NS4xYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNFMxMDUuOSA1MTIgODcuNCA1MTIgNTQgNDk3IDU0IDQ3OC41IDY5IDQ0NS4xIDg3LjQgNDQ1LjF6bTEwOS4yIDBjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40cy0xNSAzMy41LTMzLjUgMzMuNS0zMy40LTE1LTMzLjQtMzMuNSAxNS0zMy40IDMzLjQtMzMuNHptMTA5LjMgMGMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRzLTE1IDMzLjUtMzMuNSAzMy41LTMzLjUtMTUtMzMuNS0zMy41IDE1LTMzLjQgMzMuNS0zMy40ek0xOTIuMyAuM2MxMDkuOCAwIDE5OS4yIDg5LjMgMTk5LjIgMTk5LjFTMzAyLjIgMzk4LjUgMTkyLjQgMzk4LjVjLTQwLjUgMC03OC4xLTEyLjEtMTA5LjYtMzIuOWwtNzYuNSAyNC41IDI0LjgtNzRDNy4zIDI4My40LTYuOCAyNDMtNi44IDE5OS40LTYuOCA4OS43IDgyLjUgLjMgMTkyLjMgLjN6bS4xIDkzLjdjLTMxLjYgMC01Ny4zIDI1LjgtNTcuMyA1Ny4zbDAgMjYuNy0xLjggMGMtMTAgMC0xOCA4LTE4IDE4bDAgNzIuM2MwIDEwIDggMTggMTggMThsMTE4LjEgMGMxMCAwIDE4LTggMTgtMThsLjEgMCAwLTcyLjNjMC0xMC04LjEtMTgtMTgtMThsLTEuOCAwIDAtMjYuN2MwLTMxLjYtMjUuOC01Ny4zLTU3LjMtNTcuM3ptLS4xIDIzLjVjMTguNiAwIDMzLjggMTUuMSAzMy44IDMzLjhsMCAyNi43LTY3LjYgMCAwLTI2LjdjMC0xOC42IDE1LjEtMzMuOCAzMy44LTMzLjh6Il19LEdFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2hhdHNhcHAiLGljb246WzQ0OCw1MTIsWyJ3aGF0c2FwcC1zcXVhcmUiXSwiZjQwYyIsIk05Mi4xIDI1NC42YzAgMjQuOSA3IDQ5LjIgMjAuMiA3MC4xbDMuMSA1LTEzLjMgNDguNiA0OS45LTEzLjEgNC44IDIuOWMyMC4yIDEyIDQzLjQgMTguNCA2Ny4xIDE4LjRsLjEgMGM3Mi42IDAgMTMzLjMtNTkuMSAxMzMuMy0xMzEuOCAwLTM1LjItMTUuMi02OC4zLTQwLjEtOTMuMi0yNS0yNS01OC0zOC43LTkzLjItMzguNy03Mi43IDAtMTMxLjggNTkuMS0xMzEuOSAxMzEuOHpNMjc0LjggMzMwYy0xMi42IDEuOS0yMi40IC45LTQ3LjUtOS45LTM2LjgtMTUuOS02MS44LTUxLjUtNjYuOS01OC43LS40LS42LS43LS45LS44LTEuMS0yLTIuNi0xNi4yLTIxLjUtMTYuMi00MSAwLTE4LjQgOS0yNy45IDEzLjItMzIuMyAuMy0uMyAuNS0uNSAuNy0uOCAzLjYtNCA3LjktNSAxMC42LTUgMi42IDAgNS4zIDAgNy42IC4xbC44IDBjMi4zIDAgNS4yIDAgOC4xIDYuOCAxLjIgMi45IDMgNy4zIDQuOSAxMS44IDMuMyA4IDYuNyAxNi4zIDcuMyAxNy42IDEgMiAxLjcgNC4zIC4zIDYuOS0zLjQgNi44LTYuOSAxMC40LTkuMyAxMy0zLjEgMy4yLTQuNSA0LjctMi4zIDguNiAxNS4zIDI2LjMgMzAuNiAzNS40IDUzLjkgNDcuMSA0IDIgNi4zIDEuNyA4LjYtMSAyLjMtMi42IDkuOS0xMS42IDEyLjUtMTUuNSAyLjYtNCA1LjMtMy4zIDguOS0yczIzLjEgMTAuOSAyNy4xIDEyLjljLjggLjQgMS41IC43IDIuMSAxIDIuOCAxLjQgNC43IDIuMyA1LjUgMy42IC45IDEuOSAuOSA5LjktMi40IDE5LjEtMy4zIDkuMy0xOS4xIDE3LjctMjYuNyAxOC44ek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTQ4LjEgMzkzLjlMNjQgNDE2IDg2LjUgMzMzLjhjLTEzLjktMjQtMjEuMi01MS4zLTIxLjItNzkuMyAuMS04Ny40IDcxLjItMTU4LjUgMTU4LjYtMTU4LjUgNDIuNCAwIDgyLjIgMTYuNSAxMTIuMiA0Ni41IDI5LjkgMzAgNDcuOSA2OS44IDQ3LjkgMTEyLjIgMCA4Ny40LTcyLjcgMTU4LjUtMTYwLjEgMTU4LjUtMjYuNiAwLTUyLjctNi43LTc1LjgtMTkuM3oiXX0sanByPUdFZSxVcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2t5cGUiLGljb246WzQ0OCw1MTIsW10sImYxN2UiLCJNNDI0LjcgMjk5LjhjMi45LTE0IDQuNy0yOC45IDQuNy00My44IDAtMTEzLjUtOTEuOS0yMDUuMy0yMDUuMy0yMDUuMy0xNC45IDAtMjkuNyAxLjctNDMuOCA0LjctMTktMTQuNy00Mi42LTIzLjQtNjguMy0yMy40LTYxLjggMC0xMTIgNTAuMi0xMTIgMTEyIDAgMjUuNyA4LjcgNDkuMyAyMy4zIDY4LjItMi45IDE0LTQuNyAyOC45LTQuNyA0My44IDAgMTEzLjUgOTEuOSAyMDUuMyAyMDUuMyAyMDUuMyAxNC45IDAgMjkuNy0xLjcgNDMuOC00LjcgMTkgMTQuNiA0Mi42IDIzLjMgNjguMiAyMy4zIDYxLjggMCAxMTItNTAuMiAxMTItMTEyIC4xLTI1LjYtOC42LTQ5LjItMjMuMi02OC4xek0yMzAuMSAzOTEuM2MtNjUuNiAwLTEyMC41LTI5LjItMTIwLjUtNjUgMC0xNiA5LTMwLjYgMjkuNS0zMC42IDMxLjIgMCAzNC4xIDQ0LjkgODguMSA0NC45IDI1LjcgMCA0Mi4zLTExLjQgNDIuMy0yNi4zIDAtMTguNy0xNi0yMS42LTQyLTI4LTYyLjUtMTUuNC0xMTcuOC0yMi0xMTcuOC04Ny4yIDAtNTkuMiA1OC42LTgxLjEgMTA5LjEtODEuMSA1NS4xIDAgMTEwLjggMjEuOSAxMTAuOCA1NS40IDAgMTYuOS0xMS40IDMxLjgtMzAuMyAzMS44LTI4LjMgMC0yOS4yLTMzLjUtNzUtMzMuNS0yNS43IDAtNDIgNy00MiAyMi41IDAgMTkuOCAyMC44IDIxLjggNjkuMSAzMyA0MS40IDkuMyA5MC43IDI2LjggOTAuNyA3Ny42IDAgNTkuMS01Ny4xIDg2LjUtMTEyIDg2LjV6Il19LFdwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbmd1bGFyIixpY29uOls0NDgsNTEyLFtdLCJmNDIwIiwiTTE4NS43IDI2OC4xbDc2LjIgMC0zOC4xLTkxLjYtMzguMSA5MS42ek0yMjMuOCAzMkwxNiAxMDYuNCA0Ny44IDM4Mi4xIDIyMy44IDQ4MCAzOTkuOCAzODIuMSA0MzEuNiAxMDYuNCAyMjMuOCAzMnpNMzU0IDM3My44bC00OC42IDAtMjYuMi02NS40LTExMC42IDAtMjYuMiA2NS40LTQ4LjcgMCAxMzAuMS0yOTIuMyAxMzAuMiAyOTIuM3oiXX0sR3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNpcmNsZS16dWxpcCIsaWNvbjpbNTEyLDUxMixbXSwiZTg1MSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnpNMjQzLjUgMjQwYzEuMi0xLjktLjktNC4yLTIuNi0yLjhsLTg5IDc5LjVjLTkuMiA3LjItMTUuMiAxOS4xLTE1LjIgMzIuNSAwIDIxLjkgMTYgMzkuOCAzNS43IDM5LjhsMTY3LjMgMGMxOS42IDAgMzUuNy0xNy45IDM1LjctMzkuOCAwLTIxLjktMTYuMS0zOS43LTM1LjctMzkuOGwtMTI2LjYgMGMtMS45IDAtMy0yLjMtMi4xLTQuMUwyNDMuNSAyNDB6TTE3Mi40IDEyMy4xYy0xOS42IDAtMzUuNyAxNy45LTM1LjcgMzkuOHMxNiAzOS44IDM1LjcgMzkuOGwxMjYuNiAwYzEuOSAwIDMuMSAyLjIgMi4yIDQuMUwyNjguNSAyNzJjLTEuMiAxLjkgLjkgNC4yIDIuNiAyLjhsODktNzkuNWM5LjItNy4yIDE1LjItMTkuMSAxNS4yLTMyLjUgMC0yMS45LTE2LTM5LjctMzUuNy0zOS44bC0xNjcuMyAweiJdfSxZcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbnN1c2UiLGljb246WzY0MCw1MTIsW10sImU2MmIiLCJNNDcxLjEgMTAyLjdzLS4zIDE4LjMtLjMgMjAuM2MtOS4xLTMtNzQuNC0yNC4xLTEzNS43LTI2LjMtNTEuOS0xLjgtMTIyLjgtNC4zLTIyMyA1Ny4zLTE5LjQgMTIuNC03My45IDQ2LjEtOTkuNiAxMDkuNy01LjUgMTMuMy0xMi42IDQzLjMtNS41IDcxLjQgMy4zIDEyLjggOC45IDI0LjkgMTYuNSAzNS43IDE3LjQgMjUgNDYuNiA0MS42IDc4LjEgNDQuNCA0NC40IDMuOSA3OC4xLTE2IDkwLTUzLjMgOC4yLTI1LjggMC02My42LTMxLjUtODIuOS0yNS42LTE1LjctNTMuMy0xMi4xLTY5LjItMS42LTEzLjkgOS4yLTIxLjggMjMuNS0yMS42IDM5LjIgLjMgMjcuOCAyNC4zIDQyLjYgNDEuNSA0Mi42IDUuNCAwIDEwLjctLjkgMTUuOC0yLjcgNi41LTEuOCAxMy4zLTYuNSAxMy4zLTE0LjkgMC0xMi4xLTExLjYtMTQuOC0xNi44LTEzLjktMi45IC41LTQuNSAyLTExLjggMi40LTItLjItMTItMy4xLTEyLTE0bDAtLjFjLjItMTIuMyAxMy4yLTE4IDI1LjUtMTYuOSAzMi4zIDIuOCA0Ny43IDQwLjcgMjguNSA2NS43LTE4LjMgMjMuNy03Ni42IDIzLjItOTkuNy0yMC40LTI2LTQ5LjIgMTIuNy0xMTEuMiA4Ny05OC40IDMzLjIgNS43IDgzLjYgMzUuNSAxMDIuNCAxMDQuM2w0NS45IDBjLTUuNy0xNy42LTguOS02OC4zIDQyLjctNjguMyA1Ni43IDAgNjMuOSAzOS45IDc5LjggNjguM2w0OC42IDBjLTEyLjgtMTguMy0yMS43LTM4LjctMTguOS01NS44IDUuNi0zMy44IDM5LjctMTguNCA4Mi40LTE3LjQgNjYuNSAuNCAxMDIuMS0yNyAxMDMuMS0yOCAzLjctMy4xIDYuNS0xNS44IDctMTcuNyAxLjMtNS4xLTMuMi0yLjQtMy4yLTIuNC04LjcgNS4yLTMwLjUgMTUuMi01MC45IDE1LjYtMjUuMyAuNS03Ni4yLTI1LjQtODEuNi0yOC4yLS4zLS40IC4xIDEuMi0xMS0yNS41IDg4LjQgNTguMyAxMTguMyA0MC41IDE0NS4yIDIxLjcgLjgtLjYgNC4zLTIuOSAzLjYtNS43LTEzLjgtNDguMS0yMi40LTYyLjctMzQuNS02OS42LTM3LTIxLjYtMTI1LTM0LjctMTI5LjItMzUuMyAuMS0uMS0uOS0uMy0uOSAuN3ptNjAuNCA3Mi44YTM3LjYgMzcuNiAwIDEgMSA3NS4yIDIuNiAzNy42IDM3LjYgMCAxIDEgLTc1LjItMi42em0zOC42LTI1LjNjLTMuNi0uMy03LjEgLjEtMTAuNSAxLjJzLTYuNSAyLjktOS4yIDUuMy00LjggNS4zLTYuMyA4LjUtMi40IDYuNy0yLjUgMTAuMyAuNSA3LjEgMS44IDEwLjQgMy4zIDYuMyA1LjggOC45IDUuNSA0LjUgOC44IDUuOSA2LjkgMiAxMC40IDEuOWMzLjYgLjMgNy4xLS4xIDEwLjUtMS4yczYuNS0yLjkgOS4yLTUuMyA0LjgtNS4zIDYuMy04LjUgMi40LTYuNyAyLjUtMTAuMy0uNS03LjEtMS44LTEwLjQtMy4zLTYuMy01LjgtOC45LTUuNS00LjUtOC44LTUuOS02LjktMi0xMC40LTEuOXptNC4zIDI4LjhjLTE1LjQgMC0xNS40LTE1LjYgMC0xNS42czE1LjQgMTUuNiAwIDE1LjZ6Il19LEtwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcm9wYm94IixpY29uOls1NzYsNTEyLFtdLCJmMTZiIiwiTTI4OC40IDExNi4zbC0xMzIgODQuMyAxMzIgODQuMy0xMzIgODQuMy0xMzIuNC04NS4xIDEzMi4zLTg0LjMtMTMyLjMtODMuNSAxMzIuMy04NC4zIDEzMi4xIDg0LjN6TTE1NS42IDM5NS43bDEzMi04NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi04NC4zek0yODguNCAyODQuMWwxMzItODQuMy0xMzItODMuNiAxMzEuMy04NC4yIDEzMi4zIDg0LjMtMTMyLjMgODQuMyAxMzIuMyA4NC4yLTEzMi4zIDg0LjMtMTMxLjMtODV6Il19LFpwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWV6ZXIiLGljb246WzUxMiw1MTIsW10sImUwNzciLCJNMTQuOCAxMDEuMUM2LjYgMTAxLjEgMCAxMjcuNiAwIDE2MC4zczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnpNNDQ4LjcgNDAuOWMtNy43IDAtMTQuNSAxNy4xLTE5LjQgNDQuMS03LjctNDYuNy0yMC4yLTc3LTM0LjItNzctMTYuOCAwLTMxLjEgNDIuOS0zOCAxMDUuNC02LjYtNDUuNC0xNi44LTc0LjItMjguMy03NC4yLTE2LjEgMC0yOS42IDU2LjktMzQuNyAxMzYuMi05LjQtNDAuOC0yMy4yLTY2LjMtMzguMy02Ni4zcy0yOC44IDI1LjUtMzguMyA2Ni4zYy01LjEtNzkuMy0xOC42LTEzNi4yLTM0LjctMTM2LjItMTEuNSAwLTIxLjcgMjguOC0yOC4zIDc0LjItNi42LTYyLjUtMjEuMi0xMDUuNC0zNy44LTEwNS40LTE0IDAtMjYuNSAzMC40LTM0LjIgNzctNC44LTI3LTExLjctNDQuMS0xOS40LTQ0LjEtMTQuMyAwLTI2IDU5LjItMjYgMTMyLjFTNDkgMzA1LjIgNjMuMyAzMDUuMmM1LjkgMCAxMS41LTkuOSAxNS44LTI2LjggNi45IDYxLjcgMjEuMiAxMDQuMSAzOCAxMDQuMSAxMyAwIDI0LjUtMjUuNSAzMi4xLTY1LjYgNS40IDc2LjMgMTguNiAxMzAuNCAzNC4yIDEzMC40IDkuNyAwIDE4LjYtMjEuNCAyNS4zLTU2LjQgNy45IDcyLjIgMjYuMyAxMjIuNyA0Ny43IDEyMi43czM5LjUtNTAuNSA0Ny43LTEyMi43YzYuNiAzNSAxNS42IDU2LjQgMjUuMyA1Ni40IDE1LjYgMCAyOC44LTU0LjEgMzQuMi0xMzAuNCA3LjcgNDAuMSAxOS40IDY1LjYgMzIuMSA2NS42IDE2LjYgMCAzMC45LTQyLjMgMzgtMTA0LjEgNC4zIDE2LjggOS43IDI2LjggMTUuOCAyNi44IDE0LjMgMCAyNi01OS4yIDI2LTEzMi4xUzQ2MyA0MC45IDQ0OC43IDQwLjl6bTQ4LjUgNjAuMmMtOC4yIDAtMTQuOCAyNi41LTE0LjggNTkuMnM2LjYgNTkuMiAxNC44IDU5LjIgMTQuOC0yNi41IDE0LjgtNTkuMi02LjYtNTkuMi0xNC44LTU5LjJ6Il19LFFwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nIixpY29uOls1MTIsNTEyLFtdLCJmNGYwIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMy42IDUzLjJjMi44LS4zIDExLjUgMSAxMS41IDExLjVsNi42IDEwNy4yIDQuOS01OS4zYzAtNiA0LjctMTAuNiAxMC42LTEwLjZzMTAuNiA0LjcgMTAuNiAxMC42YzAgMi41LS41LTUuNyA1LjcgODEuNWw1LjgtNjQuMmMuMy0yLjkgMi45LTkuMyAxMC4yLTkuMyAzLjggMCA5LjkgMi4zIDEwLjYgOC45bDExLjUgOTYuNSA1LjMtMTIuOGMxLjgtNC40IDUuMi02LjYgMTAuMi02LjZsNTggMCAwIDIxLjMtNTAuOSAwLTE4LjIgNDQuM2MtMy45IDkuOS0xOS41IDkuMS0yMC44LTMuMWwtNC0zMS45LTcuNSA5Mi42Yy0uMyAzLTMgOS4zLTEwLjIgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtMS45IC42IDUuOC02LjItNzcuOWwtNS4zIDcyLjJjLTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0yLjkgMC05LjgtMi0xMC42LTkuMyAwLTEuOSAuNSA2LjctNS44LTg3LjdMMjU1IDM4My45YzAgNi4zLTMuNiAxMi40LTEwLjYgMTIuNC01LjIgMC0xMC42LTQuMS0xMC42LTEyTDIyOCAyOTYuNmMtNS44IDkyLjUtNS4zIDg0LTUuMyA4NS45LTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLS43LS40LTEuMS0uNC0yLjZsLTYuMi04OC42LTQuOSA1Ni43Yy0uNyA2LjUtNi43IDkuMy0xMC42IDkuMy01LjggMC05LjYtNC4xLTEwLjYtOC45TDE1Ny43IDI3MmMtMiA0LTMuNSA4LjQtMTEuMSA4LjRsLTUxLjQgMCAwLTIxLjMgNDQuOCAwIDEzLjctMjcuOWM0LjQtOS45IDE4LjItNy4yIDE5LjkgMi43bDMuMSAyMC40IDguNC05Ny45YzAtNiA0LjgtMTAuNiAxMC42LTEwLjYgLjUgMCAxMC42LS4yIDEwLjYgMTIuNGw0LjkgNjkuMSA2LjYtOTIuNmMwLTEwLjEgOS41LTEwLjYgMTAuMi0xMC42IC42IDAgMTAuNiAuNyAxMC42IDEwLjZsNS4zIDgwLjYgNi4yLTk3LjljLjEtMS4xLS42LTEwLjMgOS45LTExLjV6Il19LFhwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqZWRpLW9yZGVyIixpY29uOls0NDgsNTEyLFtdLCJmNTBlIiwiTTM5OC45IDM3My42Yzk1LjktMTIyLjEgMTcuMi0yMzMuMSAxNy4yLTIzMy4xIDQ1LjQgODUuOC00MS40IDE3MC41LTQxLjQgMTcwLjUgMTA1LTE3MS41LTYwLjUtMjcxLjUtNjAuNS0yNzEuNSA5Ni45IDcyLjctMTAuMSAxOTAuNy0xMC4xIDE5MC43IDg1LjggMTU4LjQtNjguNiAyMzAuMS02OC42IDIzMC4xcy0uNC0xNi45LTIuMi04NS43YzQuMyA0LjUgMzQuNSAzNi4yIDM0LjUgMzYuMmwtMjQuMi00Ny40IDYyLjYtOS4xLTYyLjYtOS4xIDIwLjItNTUuNS0zMS40IDQ1LjljLTIuMi04Ny43LTcuOC0zMDUuMS03LjktMzA2LjkgMCAxLTUuNiAyMTktNy45IDMwNi45bC0zMS40LTQ1LjkgMjAuMiA1NS41LTYyLjYgOS4xIDYyLjYgOS4xLTI0LjIgNDcuNCAzNC41LTM2LjJjLTEuOCA2OC44LTIuMiA4NS43LTIuMiA4NS43UzU5LjEgMzg4LjYgMTQ0LjkgMjMwLjJjMCAwLTEwNy0xMTguMS0xMC4xLTE5MC43IDAgMC0xNjUuNSA5OS45LTYwLjUgMjcxLjUgMCAwLTg2LjgtODQuOC00MS40LTE3MC41IDAgMC03OC43IDExMSAxNy4yIDIzMy4xIDAgMC0yNi4yLTE2LjEtNDkuNC03Ny43IDAgMCAxNi45IDE4My4zIDIyMiAxODUuN2w0LjEgMGMyMDUtMi40IDIyMi0xODUuNyAyMjItMTg1LjctMjMuNiA2MS41LTQ5LjkgNzcuNy00OS45IDc3Ljd6Il19LEpwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyLXByb2plY3QiLGljb246WzU3Niw1MTIsW10sImY0ZjciLCJNNTc4LjUgMjI2LjZDNTc4LjUgMTE5LjEgNDQ4LjQgMzIgMjg4IDMyUy0yLjUgMTE5LjEtMi41IDIyNi42YzAgOTUuOCAxMDMuMyAxNzUuNCAyMzkuNCAxOTEuNWwwIDYxLjkgOTkuMSAwIDAtNjEuNWMyNC4zLTIuNyA0Ny42LTcuNCA2OS40LTEzLjlsNDAuMSA3NS40IDExMiAwLTY3LjQtMTEzLjdjNTQuNS0zNS40IDg4LjQtODQuOSA4OC40LTEzOS43ek0xMTEuNyAyNDEuMWMwLTczLjUgOTguOS0xMzMgMjIwLjgtMTMzczIxMS45IDQwLjcgMjExLjkgMTMzYzAgNTAuMS0yNi41IDg1LTcwLjMgMTA2LjQtMi40LTEuNi00LjctMi45LTYuNC0zLjctMTAuMi01LjItMjcuOC0xMC41LTI3LjgtMTAuNXM4Ni42LTYuNCA4Ni42LTkyLjctOTAuNi04Ny45LTkwLjYtODcuOWwtMTk5IDAgMCAyMDguM2MtNzQuMS0yMS41LTEyNS4yLTY3LjEtMTI1LjItMTE5Ljl6bTIyNS4xIDM4LjNsMC01NS42YzU3LjggMCA4Ny44LTYuOCA4Ny44IDI3LjMgMCAzNi41LTM4LjIgMjguMy04Ny44IDI4LjN6bS0uOSA3Mi41bDI2LjYgMGMxMC44IDAgMTguOSAxMS43IDI0IDE5LjItMTYuMSAxLjktMzMgMi44LTUwLjYgMi45bDAtMjIuMXoiXX0sZWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imluc3RhbG9kIixpY29uOls1MTIsNTEyLFtdLCJlMDgxIiwiTTE1My42IDQ4MGwyMzMuNyAwIDExNS40LTIwNC4yLTI5OC4zIDU3LjQtNTAuOCAxNDYuOHpNNTA1IDI0MC4xTDM4Ny40IDMyIDE1NS45IDMyIDM2MC41IDI2Ny45IDUwNSAyNDAuMXpNMTI0LjYgNDguOEw3LjUgMjU2IDEyMy41IDQ2MS4yIDIyNS45IDE2NS42IDEyNC42IDQ4Ljh6Il19LHRmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYW5hZGlhbi1tYXBsZS1sZWFmIixpY29uOls1MTIsNTEyLFtdLCJmNzg1IiwiTTM4My44IDM1MS43YzIuNS0yLjUgMTA1LjItOTIuNCAxMDUuMi05Mi40bC0xNy41LTcuNWMtMTAtNC45LTcuNC0xMS41LTUtMTcuNCAyLjQtNy42IDIwLjEtNjcuMyAyMC4xLTY3LjNzLTQ3LjcgMTAtNTcuNyAxMi41Yy03LjUgMi40LTEwLTIuNS0xMi41LTcuNXMtMTUtMzIuNC0xNS0zMi40LTUyLjYgNTkuOS01NS4xIDYyLjNjLTEwIDcuNS0yMC4xIDAtMTcuNi0xMCAwLTEwIDI3LjYtMTI5LjYgMjcuNi0xMjkuNnMtMzAuMSAxNy40LTQwLjEgMjIuNGMtNy41IDUtMTIuNiA1LTE3LjYtNS01LjEtNy41LTQyLjctNzkuOC00Mi43LTc5LjhzLTM3LjUgNzIuMy00Mi41IDc5LjhjLTUgMTAtMTAgMTAtMTcuNiA1LTEwLTUtNDAuMS0yMi40LTQwLjEtMjIuNFMxODMuMyAxODIgMTgzLjMgMTkyYzIuNSAxMC03LjUgMTcuNS0xNy42IDEwLTIuNS0yLjUtNTUuMS02Mi4zLTU1LjEtNjIuM3MtMTIuNSAyNy4zLTE1IDMyLjMtNSA5LjktMTIuNSA3LjVDNzMgMTc3IDI1LjQgMTY3IDI1LjQgMTY3UzQzIDIyNi43IDQ1LjUgMjM0LjNjMi40IDYgNSAxMi41LTUgMTcuNEwyMyAyNTkuM3MxMDIuNiA4OS45IDEwNS4yIDkyLjRjNS4xIDUgMTAgNy41IDUuMSAyMi41LTUuMSAxNS0xMC4xIDM1LjEtMTAuMSAzNS4xczk1LjItMjAuMSAxMDUuMy0yMi42YzguNy0uOSAxOC4zIDIuNSAxOC4zIDEyLjVTMjQxIDUxMiAyNDEgNTEybDMwIDBzLTUuOC0xMDIuNy01LjgtMTEyLjggOS41LTEzLjQgMTguNC0xMi41YzEwIDIuNSAxMDUuMiAyMi42IDEwNS4yIDIyLjZzLTUtMjAuMS0xMC0zNS4xIDAtMTcuNSA1LTIyLjV6Il19LHJmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJldGhlcmV1bSIsaWNvbjpbMzIwLDUxMixbXSwiZjQyZSIsIk0zMTEuOSAyNjAuOEwxNjAgMzUzLjYgOCAyNjAuOCAxNjAgMCAzMTEuOSAyNjAuOHpNMTYwIDM4My40TDggMjkwLjYgMTYwIDUxMiAzMTIgMjkwLjYgMTYwIDM4My40eiJdfSxhZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG91enoiLGljb246WzQ0OCw1MTIsW10sImYyN2MiLCJNMjc2IDMzMC43bC0xMDQuNiAwIDAgMTQ5LjMtMTU0LjMgMCAwLTQ0OCAxMDkuNSAwIDAgMTA0LjUgMzA1LjEgODUuNiAwIDI1Ny45LTE1NS43IDAgMC0xNDkuM3oiXX0saWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYmVyIixpY29uOls1MTIsNTEyLFtdLCJmNDA5IiwiTTQ0NC4zIDQ5LjljLTEyLjctMTEuNy02NC4xLTQ5LTE3OC43LTQ5LjUgMCAwLTEzNS4xLTguMS0yMDAuOSA1Mi4zLTM2LjYgMzYuNi00OS41IDkwLjMtNTAuOSAxNTYuOHMtMy4xIDE5MS4xIDExNyAyMjQuOWwuMSAwLS4xIDUxLjZzLS44IDIwLjkgMTMgMjUuMWMxNi42IDUuMiAyNi40LTEwLjcgNDIuMy0yNy44IDguNy05LjQgMjAuNy0yMy4yIDI5LjgtMzMuNyA4Mi4yIDYuOSAxNDUuMy04LjkgMTUyLjUtMTEuMiAxNi42LTUuNCAxMTAuNS0xNy40IDEyNS43LTE0MiAxNS44LTEyOC42LTcuNi0yMDkuOC00OS44LTI0Ni41ek00NTguMiAyODdjLTEyLjkgMTA0LTg5IDExMC42LTEwMyAxMTUuMS02IDEuOS02MS41IDE1LjctMTMxLjIgMTEuMiAwIDAtNTIgNjIuNy02OC4yIDc5LTUuMyA1LjMtMTEuMSA0LjgtMTEtNS43IDAtNi45IC40LTg1LjcgLjQtODUuN2wwIDBDNDMuNCAzNzIuNyA0OS40IDI2Ni42IDUwLjUgMjExLjFzMTEuNi0xMDEgNDIuNi0xMzEuNmM1NS43LTUwLjUgMTcwLjQtNDMgMTcwLjQtNDMgOTYuOSAuNCAxNDMuMyAyOS42IDE1NC4xIDM5LjQgMzUuNyAzMC42IDUzLjkgMTAzLjggNDAuNiAyMTEuMXptLTEzOS04MC44Yy40IDguNi0xMi41IDkuMi0xMi45IC42LTEuMS0yMi0xMS40LTMyLjctMzIuNi0zMy45LTguNi0uNS03LjgtMTMuNCAuNy0xMi45IDI3LjkgMS41IDQzLjQgMTcuNSA0NC44IDQ2LjJ6bTIwLjMgMTEuM2MxLTQyLjQtMjUuNS03NS42LTc1LjgtNzkuMy04LjUtLjYtNy42LTEzLjUgLjktMTIuOSA1OCA0LjIgODguOSA0NC4xIDg3LjggOTIuNS0uMSA4LjYtMTMuMSA4LjItMTIuOS0uM3ptNDcgMTMuNGMuMSA4LjYtMTIuOSA4LjctMTIuOSAuMS0uNi04MS41LTU0LjktMTI1LjktMTIwLjgtMTI2LjQtOC41LS4xLTguNS0xMi45IDAtMTIuOSA3My43IC41IDEzMyA1MS40IDEzMy43IDEzOS4yek0zNzUuMiAzMjlsMCAuMmMtMTAuOCAxOS0zMSA0MC01MS44IDMzLjNsLS4yLS4zYy0yMS4xLTUuOS03MC44LTMxLjUtMTAyLjItNTYuNS0xNi4yLTEyLjgtMzEtMjcuOS00Mi40LTQyLjQtMTAuMy0xMi45LTIwLjctMjguMi0zMC44LTQ2LjYtMjEuMy0zOC41LTI2LTU1LjctMjYtNTUuNy02LjctMjAuOCAxNC4yLTQxIDMzLjMtNTEuOGwuMiAwYzkuMi00LjggMTgtMy4yIDIzLjkgMy45IDAgMCAxMi40IDE0LjggMTcuNyAyMi4xIDUgNi44IDExLjcgMTcuNyAxNS4yIDIzLjggNi4xIDEwLjkgMi4zIDIyLTMuNyAyNi42bC0xMiA5LjZjLTYuMSA0LjktNS4zIDE0LTUuMyAxNHMxNy44IDY3LjMgODQuMyA4NC4zYzAgMCA5LjEgLjggMTQtNS4zbDkuNi0xMmM0LjYtNiAxNS43LTkuOCAyNi42LTMuNyAxNC43IDguMyAzMy40IDIxLjIgNDUuOCAzMi45IDcgNS43IDguNiAxNC40IDMuOCAyMy42eiJdfSxZRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXIiLGljb246WzQ0OCw1MTIsWyJzcXVhcmUta2lja3N0YXJ0ZXIiXSwiZjNiYiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAuOCAyMzNsLTIzLjMgMjMuMSAyMy4zIDIyLjljMjQuMSAyMy45IDI0LjEgNjMgMCA4Ni45cy02My40IDIzLjktODcuNiAwbC04LjUtOC40Yy0xMS4zIDE2LTI5LjcgMjYuNS01MC45IDI2LjUtMzQuMSAwLTYxLjktMjcuNS02MS45LTYxLjRsMC0xMzMuMmMwLTMzLjggMjcuNy02MS40IDYxLjktNjEuNCAyMS4xIDAgMzkuNiAxMC41IDUwLjkgMjYuNWw4LjUtOC40YzI0LjEtMjMuOSA2My40LTIzLjkgODcuNiAwczI0LjEgNjMgMCA4Ni45eiJdfSxzZnI9WUVlLG5mcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcG90aWZ5IixpY29uOls1MTIsNTEyLFtdLCJmMWJjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzU2LjcgMzcyLjljLTQuMiAwLTYuOC0xLjMtMTAuNy0zLjYtNjIuNC0zNy42LTEzNS0zOS4yLTIwNi43LTI0LjUtMy45IDEtOSAyLjYtMTEuOSAyLjYtOS43IDAtMTUuOC03LjctMTUuOC0xNS44IDAtMTAuMyA2LjEtMTUuMiAxMy42LTE2LjggODEuOS0xOC4xIDE2NS42LTE2LjUgMjM3IDI2LjIgNi4xIDMuOSA5LjcgNy40IDkuNyAxNi41cy03LjEgMTUuNC0xNS4yIDE1LjR6bTI2LjktNjUuNmMtNS4yIDAtOC43LTIuMy0xMi4zLTQuMi02Mi41LTM3LTE1NS43LTUxLjktMjM4LjYtMjkuNC00LjggMS4zLTcuNCAyLjYtMTEuOSAyLjYtMTAuNyAwLTE5LjQtOC43LTE5LjQtMTkuNHM1LjItMTcuOCAxNS41LTIwLjdjMjcuOC03LjggNTYuMi0xMy42IDk3LjgtMTMuNiA2NC45IDAgMTI3LjYgMTYuMSAxNzcgNDUuNSA4LjEgNC44IDExLjMgMTEgMTEuMyAxOS43LS4xIDEwLjgtOC41IDE5LjUtMTkuNCAxOS41em0zMS03Ni4yYy01LjIgMC04LjQtMS4zLTEyLjktMy45LTcxLjItNDIuNS0xOTguNS01Mi43LTI4MC45LTI5LjctMy42IDEtOC4xIDIuNi0xMi45IDIuNi0xMy4yIDAtMjMuMy0xMC4zLTIzLjMtMjMuNiAwLTEzLjYgOC40LTIxLjMgMTcuNC0yMy45IDM1LjItMTAuMyA3NC42LTE1LjIgMTE3LjUtMTUuMiA3MyAwIDE0OS41IDE1LjIgMjA1LjQgNDcuOCA3LjggNC41IDEyLjkgMTAuNyAxMi45IDIyLjYgMCAxMy42LTExIDIzLjMtMjMuMiAyMy4zeiJdfSxvZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVhbnB1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjIxMiIsIk0zODYuNiAxMTEuNWwxNS4xIDI0OS0xMS0uM2MtMzYuMi0uOC03MS42IDguOC0xMDIuNyAyOC0zMS0xOS4yLTY2LjQtMjgtMTAyLjctMjgtNDUuNiAwLTgyLjEgMTAuNy0xMjMuNSAyNy43TDkzLjIgMTI5LjZjMjguNS0xMS44IDYxLjUtMTguMSA5Mi4yLTE4LjEgNDEuMiAwIDczLjggMTMuMiAxMDIuNyA0Mi41IDI3LjctMjguMyA1OS00MS43IDk4LjUtNDIuNXpNNTY5LjIgNDQ4Yy0yNS41IDAtNDcuNS01LjItNzAuNS0xNS42LTM0LjMtMTUuNi03MC0yNS0xMDcuOS0yNS0zOSAwLTc0LjkgMTIuOS0xMDIuNyA0MC42LTI3LjctMjcuNy02My43LTQwLjYtMTAyLjctNDAuNi0zNy45IDAtNzMuNiA5LjMtMTA3LjkgMjUtMjIuMiA5LjktNDQuNyAxNS42LTY5LjIgMTUuNkw3IDQ0OCA0OS42IDk4LjljMzkuMy0yMi4yIDg3LTM0LjkgMTMyLjMtMzQuOSAzNy4xIDAgNzUuMiA3LjcgMTA2LjIgMjkuMSAzMS0yMS40IDY5LjItMjkuMSAxMDYuMi0yOS4xIDQ1LjMgMCA5MyAxMi42IDEzMi4zIDM0LjlMNTY5LjIgNDQ4em0tNDMuNC00NC43TDQ5MS44IDEyM2MtMzAuNy0xNC02Ny4yLTIxLjQtMTAxLTIxLjQtMzguNCAwLTc0LjQgMTIuMS0xMDIuNyAzOC43LTI4LjMtMjYuNi02NC4yLTM4LjctMTAyLjctMzguNy0zMy44IDAtNzAuMyA3LjQtMTAxIDIxLjRsLTM0IDI4MC4yYzQ3LjItMTkuNSA4Mi45LTMzLjUgMTM1LTMzLjUgMzcuNiAwIDcwLjggOS42IDEwMi43IDI5LjYgMzEuOC0yMCA2NS4xLTI5LjYgMTAyLjctMjkuNiA1Mi4yIDAgODcuOCAxNCAxMzUgMzMuNXoiXX0sbGZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImphdmEiLGljb246WzM4NCw1MTIsW10sImY0ZTQiLCJNMjc3LjggMzEyLjljOS44LTYuNyAyMy40LTEyLjUgMjMuNC0xMi41cy0zOC43IDctNzcuMiAxMC4yYy00Ny4xIDMuOS05Ny43IDQuNy0xMjMuMSAxLjMtNjAuMS04IDMzLTMwLjEgMzMtMzAuMXMtMzYuMS0yLjQtODAuNiAxOWMtNTIuNSAyNS40IDEzMCAzNyAyMjQuNSAxMi4xem0tODUuNC0zMi4xYy0xOS00Mi43LTgzLjEtODAuMiAwLTE0NS44IDEwMy43LTgxLjggNTAuNS0xMzUgNTAuNS0xMzUgMjEuNSA4NC41LTc1LjYgMTEwLjEtMTEwLjcgMTYyLjYtMjMuOSAzNS45IDExLjcgNzQuNCA2MC4yIDExOC4yek0zMDcgMTA0LjZjLjEgMC0xNzUuMiA0My44LTkxLjUgMTQwLjIgMjQuNyAyOC40LTYuNSA1NC02LjUgNTRzNjIuNy0zMi40IDMzLjktNzIuOUMyMTYgMTg4LjEgMTk1LjQgMTY5LjMgMzA3IDEwNC42em0tNi4xIDI3MC41Yy0uNSAxLTEuMiAxLjgtMiAyLjYgMTI4LjMtMzMuNyA4MS4xLTExOC45IDE5LjgtOTcuMy0zLjMgMS4yLTYuMiAzLjQtOC4yIDYuMyAzLjYtMS4zIDcuMy0yLjMgMTEtMyAzMS02LjUgNzUuNSA0MS41LTIwLjYgOTEuNHpNMzQ4IDQzNy40czE0LjUgMTEuOS0xNS45IDIxLjJjLTU3LjkgMTcuNS0yNDAuOCAyMi44LTI5MS42IC43LTE4LjMtNy45IDE2LTE5IDI2LjgtMjEuMyAxMS4yLTIuNCAxNy43LTIgMTcuNy0yLTIwLjMtMTQuMy0xMzEuMyAyOC4xLTU2LjQgNDAuMiAyMDQuMiAzMy4yIDM3Mi40LTE0LjkgMzE5LjQtMzguOHpNMTI0LjUgMzk2Yy03OC43IDIyIDQ3LjkgNjcuNCAxNDguMSAyNC41LTkuOC0zLjgtMTkuMi04LjQtMjguMi0xMy44LTQ0LjcgOC41LTY1LjQgOS4xLTEwNiA0LjUtMzMuNS0zLjgtMTMuOS0xNS4yLTEzLjktMTUuMnptMTc5LjggOTcuMmMtNzguNyAxNC44LTE3NS44IDEzLjEtMjMzLjMgMy42IDAtLjEgMTEuOCA5LjcgNzIuNCAxMy42IDkyLjIgNS45IDIzMy44LTMuMyAyMzcuMS00Ni45IDAgMC02LjQgMTYuNS03Ni4yIDI5Ljd6TTI2MC43IDM1M2MtNTkuMiAxMS40LTkzLjUgMTEuMS0xMzYuOCA2LjYtMzMuNS0zLjUtMTEuNi0xOS43LTExLjYtMTkuNy04Ni44IDI4LjggNDguMiA2MS40IDE2OS41IDI1LjktNy44LTIuOC0xNS03LjEtMjEuMS0xMi44eiJdfSxjZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmZjLXN5bWJvbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMSIsIk0zNjAuOSAzMi40YzcuNy0xLjMgMTUuNyAuNSAyMS4yIDUgODQuMSA1OC43IDEyOS45IDEzNi4zIDEyOS45IDIxNy43IDAgODMuMS00NS44IDE2MC44LTEyOS45IDIxOS41LTQuOCA0LTExLjcgNS45LTE4LjYgNS4zLTctLjYtMTMuNS0zLjYtMTguNC04LjVMMTYxLjcgMjg4LjdjLTUuNi01LjUtOC43LTEzLTkuNi0yMC45IDAtNy44IDQtMTUuMyA5LjUtMjAuOSA1LjYtNS41IDEzLjEtOC43IDIwLjktOC43IDcuOSAwIDE1LjQgMy4xIDIwLjkgOC42TDM2OC41IDQxMS4yYzU0LjYtNDQuNyA4NC4zLTk5LjIgODQuMy0xNTYuMSAwLTYxLjYtMzYuOS0xMjIuMi0xMDMuOS0xNjkuMy02LjQtNC41LTEwLjgtMTEuNC0xMi4xLTE5LjEtMS40LTcuNyAuNC0xNS43IDUtMjIuMSA0LjUtNi40IDExLjQtMTAuOCAxOS4xLTEyLjF6bS0yMDYgNDQ3LjJjLTcuNyAxLjMtMTUuNi0uNS0yMi4xLTUtODMuMS01OC43LTEyOS0xMzYuNC0xMjktMjE5LjUgMC04MS40IDQ1LjgtMTU5IDEyOS0yMTcuNyA1LjctNCAxMi42LTUuOSAxOS42LTUuMyA2LjkgLjYgMTMuNCAzLjYgMTguMyA4LjVMMzU0LjEgMjIzLjNjNS42IDUuNSA4LjcgMTMgOC43IDIwLjkgLjEgNi45LTMgMTUuMy04LjYgMjAuOS01LjUgNS41LTEzIDguNy0yMC45IDguNy03LjggMC0xNi4yLTMuMS0yMC45LTguNkwxNDcuMyAxMDAuN2MtNTQuNiA0NS4yLTg0LjMgOTkuMi04NC4zIDE1NC40IDAgNjMuNCAzNi45IDEyNCAxMDMuMSAxNzEuMSA3LjMgNC42IDExLjYgMTEuNCAxMyAxOS4yIDEuMyA3LjctLjUgMTUuNy01IDIyLjFzLTExLjQgMTAuNy0xOS4yIDEyLjF6Il19LGRmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2R1IixpY29uOls2NDAsNTEyLFtdLCJlMDg4IiwiTTE3OC40IDMzOS43bC0zNy4zIDAtMjguOS0xMTYuMi0uNSAwLTI4LjUgMTE2LjItMzggMC00NS4yLTE3MC44IDM3LjUgMCAyNyAxMTYuMiAuNSAwIDI5LjctMTE2LjIgMzUuMiAwIDI5LjIgMTE3LjcgLjUgMCAyOC0xMTcuNyAzNi44IDAtNDUuOSAxNzAuOHptOTMtMTI3YzM5IDAgNjQuMSAyNS44IDY0LjEgNjUuMyAwIDM5LjItMjUuMSA2NS02NC4xIDY1LTM4LjcgMC02My45LTI1LjgtNjMuOS02NSAwLTM5LjUgMjUuMS02NS4zIDYzLjktNjUuM3ptMCAxMDQuOGMyMy4yIDAgMzAuMS0xOS45IDMwLjEtMzkuNSAwLTE5LjktNi45LTM5LjctMzAuMS0zOS43LTI3LjcgMC0yOS45IDE5LjktMjkuOSAzOS43IDAgMTkuNiA2LjkgMzkuNSAyOS45IDM5LjV6bTE2My43IDYuNWwtLjUgMGMtNy45IDEzLjQtMjEuOCAxOS4xLTM3LjUgMTkuMS0zNy4zIDAtNTUuNS0zMi01NS41LTY2LjIgMC0zMy4yIDE4LjQtNjQuMSA1NC44LTY0LjEgMTQuNiAwIDI4LjkgNi4yIDM2LjggMTguNGwuMiAwIDAtNjIuMiAzNCAwIDAgMTcwLjgtMzIuMyAwIDAtMTUuOHptLTI5LjctODUuNmMtMjIuMiAwLTI5LjkgMTkuMS0yOS45IDM5LjUgMCAxOS40IDguOCAzOS43IDI5LjkgMzkuNyAyMi41IDAgMjkuMi0xOS42IDI5LjItMzkuOSAwLTIwLjEtNy4yLTM5LjItMjkuMi0zOS4yek01OTMgMzM5LjdsLTMyLjMgMCAwLTE3LjItLjcgMGMtOC42IDEzLjktMjMuNCAyMC42LTM3LjggMjAuNi0zNi4xIDAtNDUuMi0yMC4zLTQ1LjItNTAuOWwwLTc2LjEgMzQgMCAwIDY5LjhjMCAyMC4zIDYgMzAuNCAyMS44IDMwLjQgMTguNCAwIDI2LjMtMTAuMyAyNi4zLTM1LjRsMC02NC44IDM0IDAgMCAxMjMuNnptOS41LTM2LjhsMzcuNSAwIDAgMzYuOC0zNy41IDAgMC0zNi44eiJdfSxLRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXN0ZWFtIixpY29uOls0NDgsNTEyLFsic3RlYW0tc3F1YXJlIl0sImYxYjciLCJNMTY1LjYgMzA5LjFjMTguNiA3LjcgMjcuMyAyOC45IDE5LjYgNDcuNHMtMjkgMjcuMi00Ny42IDE5LjRsLTI4LjUtMTEuOGM1IDEwLjYgMTMuOCAxOS40IDI1LjQgMjQuMiAyNS4yIDEwLjUgNTQuMS0xLjQgNjQuNi0yNi41IDUuMS0xMi4xIDUuMS0yNS41IC4xLTM3LjctNS4xLTEyLjEtMTQuNS0yMS42LTI2LjctMjYuNy0xMi4xLTUtMjUtNC44LTM2LjQtLjVsMjkuNSAxMi4yek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDE0NC43IDExNi42IDQ4LjFjMTItOC4yIDI2LjItMTIuMSA0MC43LTExLjNsNTUuNC04MC4yIDAtMS4xYzAtNDguMiAzOS4zLTg3LjUgODcuNi04Ny41czg3LjYgMzkuMyA4Ny42IDg3LjVjMCA0OS4yLTQwLjkgODguNy04OS42IDg3LjVsLTc5IDU2LjNjMS42IDM4LjUtMjkuMSA2OC44LTY1LjcgNjguOC0zMS44IDAtNTguNS0yMi43LTY0LjUtNTIuN0wwIDMxOS4yIDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNDEuOSAxOTYuMmE1OC40IDU4LjQgMCAxIDAgMTE2LjggMCA1OC40IDU4LjQgMCAxIDAgLTExNi44IDB6bTEwMi40LS4xYTQzLjkgNDMuOSAwIDEgMSAtODcuOCAwIDQzLjkgNDMuOSAwIDEgMSA4Ny44IDB6Il19LHVmcj1LRWUscGZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMtZXUiLGljb246WzUxMiw1MTIsW10sImY0ZTkiLCJNMjU1LjcgOEMxMTEuNiA4IDggMTI0LjggOCAyNTYgOCAzOTIuMyAxMTkuNyA1MDQgMjU1LjcgNTA0IDM4NS45IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE3IDM5Ni40IDggMjU1LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMy4yIDMuNy00NS4yIDEwLjktNjZsNjUuNyAyOS4xLTQuNyAwIDAgMjkuNSAyMy4zIDBjMCA2LjItLjQgMy4yLS40IDE5LjVsLTIyLjggMCAwIDI5LjUgMjcgMGMxMS40IDY3IDY3LjIgMTAxLjMgMTI0LjYgMTAxLjMgMjYuNiAwIDUwLjYtNy45IDY0LjgtMTUuOGwtMTAtNDYuMWMtOC43IDQuNi0yOC4yIDEwLjgtNDcuMyAxMC44LTI4LjIgMC01OC4xLTEwLjktNjcuMy01MC4ybDkwLjMgMCAxMjguMyA1Ni44Yy0xLjUgMi4xLTU2LjIgMTA0LjMtMTc4LjggMTA0LjN6TTIzOS42IDI2OC4xbC0uNS0uNCAuOSAuNC0uNCAwem03Ny4yLTE5LjVsMy43IDAgMC0yOS41LTcwLjMgMC0yOC42LTEyLjZjMi41LTUuNSA1LjQtMTAuNSA4LjgtMTQuMyAxMi45LTE1LjggMzEuMS0yMi40IDUxLjEtMjIuNCAxOC4zIDAgMzUuMyA1LjQgNDYuMSAxMGwxMS42LTQ3LjNjLTE1LTYuNi0zNy0xMi40LTYyLjMtMTIuNC0zOSAwLTcyLjIgMTUuOC05NS45IDQyLjMtNS4zIDYuMS05LjggMTIuOS0xMy45IDIwLjFMODUuNSAxNDYuNGM2NC42LTk2LjggMTU3LjctOTMuNiAxNzAuNy05My42IDExMyAwIDIwMyA5MC4yIDIwMyAyMDMuNCAwIDE4LjctMi4xIDM2LjMtNi4zIDUyLjlMMzE2LjggMjQ4LjZ6Il19LGZmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJucG0iLGljb246WzU3Niw1MTIsW10sImYzZDQiLCJNMjg4IDI4OGwtMzIgMCAwLTY0IDMyIDAgMCA2NHpNNTc2IDE2MGwwIDE5Mi0yODggMCAwIDMyLTEyOCAwIDAtMzItMTYwIDAgMC0xOTIgNTc2IDB6TTE2MCAxOTJsLTEyOCAwIDAgMTI4IDY0IDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTEyOHptMTYwIDBsLTEyOCAwIDAgMTYwIDY0IDAgMC0zMiA2NCAwIDAtMTI4em0yMjQgMGwtMTkyIDAgMCAxMjggNjQgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC0xMjh6Il19LGhmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZHNjYWxlIixpY29uOls0NDgsNTEyLFtdLCJmMzgzIiwiTTMxOC4xIDE1NGwtOS40IDcuNmMtMjIuNS0xOS4zLTUxLjUtMzMuNi04My4zLTMzLjYtNzEuNiAwLTEyOS40IDYwLjgtMTI5LjQgMTMyLjMgMCA2LjYgLjQgMTMuMSAxLjQgMTkuNC0yLTU2IDQxLjgtOTcuNCA5Mi42LTk3LjQgMjQuMiAwIDQ2LjIgOS40IDYyLjYgMjQuN2wtMjUuMiAyMC40Yy04LjMtLjktMTYuOCAxLjgtMjMuMSA4LjEtMTEuMSAxMS0xMS4xIDI4LjkgMCA0MCAxMS4xIDExIDI4LjkgMTEgNDAgMCA2LjMtNi4zIDktMTQuOSA4LjEtMjMuMWw3NS4yLTg4LjhjNi4zLTYuNS0zLjMtMTUuOS05LjUtOS42ek0yMTMuNyAyNDYuNWExNCAxNCAwIDEgMSAyMC42IDE5IDE0IDE0IDAgMSAxIC0yMC42LTE5ek0yMjQgMzJhMjI0IDIyNCAwIDEgMCAwIDQ0OCAyMjQgMjI0IDAgMSAwIDAtNDQ4em0wIDY0YTE2MCAxNjAgMCAxIDEgMCAzMjAgMTYwIDE2MCAwIDEgMSAwLTMyMHoiXX0sbWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1lY28iLGljb246WzQ0OCw1MTIsW10sImY1YzYiLCJNMjAyLjkgOC40YzkuOS01LjcgMjYtNS44IDM2LS4yTDQzMCAxMTUuOWMxMCA1LjYgMTggMTkuNCAxOCAzMC45TDQ0OCAzNjRjMCAxMS40LTguMSAyNS4zLTE4IDMxTDIzOC44IDUwMy43Yy05LjkgNS43LTI2IDUuNi0zNS44LS4yTDE3LjkgMzk1LjFDOCAzODkuMyAwIDM3NS40IDAgMzY0TDAgMTQ2LjdjMC0xMS40IDgtMjUuNCAxNy45LTMxLjFMMjAyLjkgOC40ek0xMjUuNSAyMDguM2MtMTUuOSAwLTMxLjkgLjEtNDcuOCAuMWwwIDEwMS40IDE5LjEgMCAwLTI5LjggMjguNyAwYzQ5LjcgMCA0OS42LTcxLjcgMC03MS43ek0yNjUuNiAzMDguNmwtMzAuNy0zNC42YzM3LTcuNSAzNC44LTY1LjItMTAuOS02NS41LTE2LjEgMC0zMi4yLS4xLTQ4LjMtLjFsMCAxMDEuNiAxOS4xIDAgMC0zMy45IDE4LjQgMCAyOS42IDMzLjkgMjIuOCAwIDAtMS4zem0tNDEuNi04Mi4zYzIzLjMgMCAyMy4zIDMyLjUgMCAzMi41bC0yOS4xIDAgMC0zMi41IDI5LjEgMHptLTk1LjYtMS42YzIxLjIgMCAyMS4xIDM4LjkgMCAzOC45bC0zMi4zIDAgMC0zOC44IDMyLjMgMHptMTkyLjYtMTguMmMtNjguNSAwLTcxIDEwNS44IDAgMTA1LjggNjkuNSAwIDY5LjQtMTA1LjggMC0xMDUuOHptMCAxNy40YzQ0LjEgMCA0NC44IDcwLjkgMCA3MC45cy00NC40LTcwLjkgMC03MC45eiJdfSxnZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBsYXkiLGljb246WzQ0OCw1MTIsW10sImYzYWIiLCJNMjkzLjYgMjM0LjNMNzIuOSAxMyAzNTMuNyAxNzQuMiAyOTMuNiAyMzQuM3pNMTUuMyAwQzIuMyA2LjgtNi40IDE5LjItNi40IDM1LjNsMCA0NDEuM2MwIDE2LjEgOC43IDI4LjUgMjEuNyAzNS4zTDI3MS45IDI1NS45IDE1LjMgMHpNNDQwLjUgMjI1LjZsLTU4LjktMzQuMS02NS43IDY0LjUgNjUuNyA2NC41IDYwLjEtMzQuMWMxOC0xNC4zIDE4LTQ2LjUtMS4yLTYwLjh6TTcyLjkgNDk5TDM1My43IDMzNy44IDI5My42IDI3Ny43IDcyLjkgNDk5eiJdfSxiZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia29ydnVlIixpY29uOls0NDgsNTEyLFtdLCJmNDJmIiwiTTM4Ny42IDM0bC0zMjcgMEMyNy45IDM0IDEuMSA2MC44IDEuMSA5My41bDAgMzI3LjFjMCAzMi42IDI2LjggNTkuNCA1OS41IDU5LjRsMzI3LjEgMGMzMyAwIDU5LjUtMjYuOCA1OS41LTU5LjVsMC0zMjdDNDQ3LjEgNjAuOCA0MjAuMyAzNCAzODcuNiAzNHpNODguMiAxMjAuOGw5NiAwIDAgMTE2IDYxLjgtMTE2IDExMC45IDAtODEuMiAxMzItMTg3LjUgMCAwLTEzMnpNMjUwIDM5Mi45bC02NS43LTExMy42IDAgMTEzLjYtOTYgMCAwLTEzMC44IDE5MS41IDAgODguNiAxMzAuOC0xMTguNCAweiJdfSx4ZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidzNjIixpY29uOls2NDAsNTEyLFtdLCJlN2RlIiwiTTEwNS4yIDMwNS4zbDMwLjktMTA0LjdjNy45LTI2LjcgOC42LTQwLjYgLjItNjguOGwtMTAuMS0zMy45IDQ0LjEgMCA2MSAyMDcuNCA0NS43LTE1NS41YzEzLjMtNDUuMyAyMS4xLTUxLjkgNTkuNC01MS45bDEzMi44IDBjLTI0LjIgNDIuOS00OS4zIDg1LjItNzMuOSAxMjcuOSAyLjYgLjggNS4yIDEuOCA3LjcgMi44IDE3LjMgNy4xIDMyLjIgMTkuNCA0MiAzNS41IDExLjIgMTguNSAxNi44IDQwLjIgMTYuOCA2NS4yIDAgMzAuOC04LjIgNTYuOC0yNC42IDc3LjgtMTQuNSAxOC42LTM1IDI5LjUtNTguMiAzMS4yIDAgLjMtNS4yIC40LTUuOCAuNC0zOS43LS4xLTcwLjgtMzIuMS04My4xLTY4LjdsNDIuOSAwYzMuNSA1LjMgNi44IDEwLjcgMTEuMiAxNS41IDguMSA3LjMgMTguNSAxMC45IDI5LjMgMTEuMSAxMy4xIDAgMjMuMy05LjEgMjkuOS0xOS44IDguMS0xMy4yIDEyLjItMjkgMTIuMi00Ny41IDAtMTMuMS0xLjgtMjQuMy01LjMtMzMuNi0uOS0yLjMtMS45LTQuNS0zLTYuNi0xLjQtMi42LTIuOS01LjEtNC43LTcuNC0xMC4xLTEzLjItMjkuMy0xOS43LTQ3LjUtMTkuOGwtMjguMiAwIDcwLjMtMTIyLTM1LjYgMGMtNDMuMSAwLTM1LjktNS40LTUwLjQgNDMuM2wtNzUuNyAyNTUuMy00LjIgMC02My4xLTIxMS4xLTYzLjEgMjExLjEtNC4yIDAtMTAxLTM0MC43IDQ0LjIgMCA2MSAyMDcuNHpNNDY3IDMzNS43Yy4zIC42IDExLjMgMjAuMyAxOC4zIDMwLjMgNy4xIDEwLjEgMTkuOCAyMC45IDI0LjggMjQuNnMxOS4xIDEyLjUgMzQuMyAxMy45YzE1LjIgMS41IDIzLjMgLjIgMzguNy02LjYgMTUuNC02LjggMjcuOS0yMC40IDM0LjktMjguMSA2LjktNy42IDE3LjktMjcuMyAxOC4yLTI3LjdsMy4zIDE2LjhjMS43IDktMSAyMy43LTQuMSAzMC00LjMgOC42LTcuNiAxMy41LTE0IDIwLjMtNi4xIDYuNS0xNi43IDEzLjUtMjEuMyAxNi40LTQuNiAyLjktMjMuMSAxNS4xLTUwLjEgMTAuM3MtNDQuNy0yNS45LTUzLjktMzguMmMtOS44LTEzLjItMTYuNy0yOC4zLTE5LTMzLjItMy44LTguNC05LjktMjguMi0xMC4xLTI4Ljh6bTE2OS43LTIxOGMzLjMgMjAuMy0uMSAyOC43LTkuMSA0NmwtMTIuNyAyNC4yYy0uMy0uNi0xMC0yMC43LTI1LjktMzEuOS0xMy42LTkuNi0yMi41LTExLjctMzYuMy04LjgtMTcuOCAzLjctMzggMjUtNDYuOCA1MS4yLTEwLjUgMzEuNC0xMC43IDQ2LjYtMTEgNjAuNi0uNiAyMi40IDIuOSAzNS42IDIuOSAzNS42cy0xNS40LTI4LjUtMTUuMi03MC4xYy4xLTI5LjcgNC44LTU2LjcgMTguNS04My4zIDEyLjEtMjMuNCAzMC4xLTM3LjQgNDYuMS0zOS4xIDE2LjUtMS43IDI5LjYgNi4zIDM5LjcgMTQuOSAxMC42IDkgMjEuMyAyOC44IDIxLjMgMjguOGwyNC45LTQ5LjggMy42IDIxLjh6Il19LHZmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmF2IixpY29uOls1MTIsNTEyLFtdLCJmMmQ2IiwiTTMwMi42IDIxMC42YzQuNSA0LjUgNC41IDEyLjMgMCAxNi44bC0xMCAxMGMtNC41IDQuOS0xMi4zIDQuOS0xNy4xIDBsLTEwLjgtMTAuOGMtNC41LTQuOS00LjUtMTIuMyAwLTE3LjFsMTAtMTBjNC41LTQuNSAxMi4zLTQuNSAxNy4xIDBsMTAuOCAxMS4xem0tMzEuMi0yMC4zYTcuNyA3LjcgMCAxIDAgLTEwLjYtMTEgNy43IDcuNyAwIDEgMCAxMC42IDExem0tMjYuOCA1LjVhNy41IDcuNSAwIDEgMCAxMC43IDEwLjUgNy41IDcuNSAwIDEgMCAtMTAuNy0xMC41ek0zMTkuNCAxODJjLTIwLjUtMTQuOS0zNC45LTQ0LjYtMTIuMy03MC4zIDIyLjMtMjUuNyA0Mi0xNy44IDYxLjcgLjggMTIuMyAxMS43IDMwLjIgMjUuNyAxNy44IDQ5LjgtMTIuOSAyNC4zLTQ2LjYgMzQuMy02Ny4yIDE5Ljd6bTQ5LjItNDUuOWMtOS4yLTEwLjMtMjQuMSA3LjEtMTYgMTYuNiA3LjYgOS4zIDMzLjEgMi41IDE2LTE2LjZ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTQ0My43IDQ0YzIuNi0xNi42LTIwLjktMTcuMS0yNi0yNi41LTE0LTI0LjktMjguNi0zOC01Ni4zLTMxLjQgMTItOC4zIDI0LjMtNi4zIDI0LjMtNi4zIC4zLTYuNiAwLTEzLjQtOS43LTI1LjcgNC0xMi45IC4zLTIzLjEgLjMtMjMuMSAxNi04LjkgMjcuNy0yNS4yIDMwLTQ0LjYgMy43LTMyLTE5LjQtNjEuMS01MS40LTY0LjgtMjIuOC0yLjYtNDUuMSA3LjktNTYuMSAyNi41LTIzLjkgNDEuNCAxLjQgNzMuMiAyMy4xIDg0LTE0LjktMS40LTM1LjQtMTIuMy00MS40LTM1LjQtNi44LTI2LjUgMi45LTUxLjQgOS4yLTYzLjQgMCAwLTQuNS02LTguMy05LjIgMCAwLTE0LjIgMC0yNS40IDUuNSAxMi4zLTE1LjcgMjYtMTQuOSAyNi0xNC45IDAtNi42LS42LTE1LjQtMy43LTIyLjMtNS42LTExLjQtMjQuNi0xMy4zLTMyLjcgMi45IC4xLS4yIC4zLS40IC40LS41LTUuMiAxMi4zLTEuMSA1Ny43IDE3LjQgOTAtMi42IDEuNC05LjQgNi4zLTEzLjQgMTAuMy0yMi4zIDEwLTU4IDYyLjItNTggNjIuMi0yOS4xIDExLjEtNzkuNyA1Mi41LTcyLjkgODIuMyAuMyAzLjEgMS40IDUuNyAzLjEgNy43LTIuOSAyLjMtNS43IDUuMi04LjYgOC42LTEyLjMgMTQuMi01LjUgMzYuMyAxOC4zIDI1LjIgMTYuMy03LjQgMzAuNi0yMC45IDM3LjUtMzEuNCAwIDAtNS43LTUuMi0xNi44LTQuNSAyOC42LTYuOCAzNS40LTkuNyA0Ny43LTkuNCA4LjMgNCA4LjMtMzUuNCA4LjMtMzUuNCAwLTE1LjItMi4zLTMyLTExLjUtNDIuOCAxMi45IDEyLjYgMzAgMzMuOCAyOC45IDYyLjYtLjggMTguOS0xNS43IDIzLjctMTUuNyAyMy43LTkuNCAxNy4xLTQ0LjYgNjgtMzEuNCAxMDkuNCAwIDAtMTAtMTUuNC0xMC41LTIyLjgtMTggMjAtNDggNTQtMjUuNCA2Ni42IDI3LjUgMTUuMiAxMTIuMy05MS41IDEzMC4zLTE0Ni45IDM1LjctMjEuNSA1Ny4yLTQ4LjggNjYtNjcuMSAyMi43IDQ0LjkgOTguNCA5Ny41IDEwNC40IDYwLjl6Il19LHlmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhd3MiLGljb246WzY0MCw1MTIsW10sImYzNzUiLCJNMTgwLjQgMjAzYy0uNyAyMi42IDEwLjYgMzIuNyAxMC45IDM5LS4xIDEuMy0uNiAyLjUtMS4zIDMuNnMtMS43IDItMi44IDIuNmwtMTIuOCA5Yy0xLjcgMS4yLTMuNiAxLjgtNS42IDEuOS0uNCAwLTguMiAxLjgtMjAuNS0yNS42LTcuNSA5LjQtMTcgMTYuOS0yNy45IDIycy0yMi43IDcuNy0zNC43IDcuNWMtMTYuMyAuOS02MC40LTkuMi01OC4xLTU2LjItMS42LTM4LjMgMzQuMS02Mi4xIDcwLjktNjAgNy4xIDAgMjEuNiAuNCA0NyA2LjNsMC0xNS42YzIuNy0yNi41LTE0LjctNDctNDQuOC00My45LTIuNCAwLTE5LjQtLjUtNDUuOCAxMC4xLTcuNCAzLjQtOC4zIDIuOC0xMC44IDIuOC03LjQgMC00LjQtMjEuNS0yLjktMjQuMiA1LjItNi40IDM1LjktMTguNCA2NS45LTE4LjIgMjAuMS0xLjggNDAuMSA0LjQgNTUuNyAxNy4zIDYuMyA3LjEgMTEuMiAxNS40IDE0LjIgMjQuNHM0LjIgMTguNSAzLjUgMjhsMCA2OS4zek05NCAyMzUuNGMzMi40LS41IDQ2LjItMjAgNDkuMy0zMC41IDIuNS0xMC4xIDIuMS0xNi40IDIuMS0yNy40LTkuNy0yLjMtMjMuNi00LjktMzkuNi00LjktMTUuMi0xLjEtNDIuOCA1LjYtNDEuNyAzMi4zLTEuMiAxNi44IDExLjEgMzEuNCAzMCAzMC41em0xNzAuOSAyMy4xYy03LjkgLjctMTEuNS00LjktMTIuNy0xMC40TDIwMi40IDgzLjRjLTEtMi44LTEuNi01LjYtMS45LTguNi0uMi0xLjIgLjEtMi40IC44LTMuNHMxLjgtMS42IDMtMS44Yy4yIDAtMi4xIDAgMjIuMiAwIDguOC0uOSAxMS42IDYgMTIuNiAxMC40TDI3NC45IDIyMC44IDMwOC4xIDgwYy41LTMuMiAyLjktMTEuMSAxMi44LTEwLjJsMTcuMiAwYzIuMi0uMiAxMS4xLS41IDEyLjcgMTAuNEwzODQuMSAyMjIuNyA0MjEgODAuMWMuNS0yLjIgMi43LTExLjQgMTIuNy0xMC40bDE5LjcgMGMuOS0uMSA2LjItLjggNS4zIDguNi0uNCAxLjggMy40LTEwLjctNTIuOCAxNjkuOS0xLjEgNS41LTQuOCAxMS4xLTEyLjcgMTAuNGwtMTguNyAwYy0xMC45IDEuMi0xMi41LTkuNy0xMi43LTEwLjdsLTMzLjItMTM3LjEtMzIuOCAxMzdjLS4yIDEuMS0xLjcgMTEuOS0xMi43IDEwLjdsLTE4LjMgMCAwIDB6bTI3My41IDUuNmMtNS45IDAtMzMuOS0uMy01Ny40LTEyLjMtMi4zLTEtNC4zLTIuNi01LjctNC44cy0yLjEtNC42LTIuMS03LjFsMC0xMC43YzAtOC41IDYuMi02LjkgOC44LTUuOSAxMCA0LjEgMTYuNSA3LjEgMjguOCA5LjYgMzYuNyA3LjUgNTIuOC0yLjMgNTYuNy00LjUgMTMuMi03LjggMTQuMi0yNS43IDUuMy0zNC45LTEwLjUtOC44LTE1LjUtOS4xLTUzLjEtMjEtNC42LTEuMy00My43LTEzLjYtNDMuOC01Mi40LS42LTI4LjIgMjUtNTYuMiA2OS41LTU2IDEyLjcgMCA0Ni40IDQuMSA1NS42IDE1LjYgMS40IDIuMSAyIDQuNiAxLjkgN2wwIDEwLjFjMCA0LjQtMS42IDYuNy00LjkgNi43LTcuNy0uOS0yMS40LTExLjItNDkuMi0xMC44LTYuOS0uNC0zOS45IC45LTM4LjQgMjUtLjQgMTkgMjYuNiAyNi4xIDI5LjcgMjYuOSAzNi41IDExIDQ4LjYgMTIuOCA2My4xIDI5LjYgMTcuMSAyMi4yIDcuOSA0OC4zIDQuMyA1NS40LTE5LjEgMzcuNS02OC40IDM0LjQtNjkuMyAzNC40em00MC4yIDEwNC45Yy03MCA1MS43LTE3MS43IDc5LjItMjU4LjUgNzkuMi0xMTcuMSAuOC0yMzAuMy00Mi4zLTMxNy4zLTEyMC43LTYuNS01LjktLjgtMTQgNy4yLTkuNSA5Ni41IDU1LjIgMjA1LjcgODQuMiAzMTYuOSA4NC4xIDgzLS40IDE2NS4xLTE3LjMgMjQxLjYtNDkuNSAxMS44LTUgMjEuOCA3LjggMTAuMSAxNi40em0yOS4yLTMzLjNjLTktMTEuNS01OS4zLTUuNC04MS44LTIuNy02LjggLjgtNy45LTUuMS0xLjgtOS41IDQwLjEtMjguMiAxMDUuOS0yMC4xIDExMy40LTEwLjYgNy41IDkuNS0yLjEgNzUuNC0zOS42IDEwNi45LTUuOCA0LjktMTEuMyAyLjMtOC43LTQuMSA4LjQtMjEuMyAyNy40LTY4LjUgMTguNC04MHoiXX0sd2ZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdsaWRlLWciLGljb246WzQ0OCw1MTIsW10sImYyYTYiLCJNNDA3LjEgMjExLjJjLTMuNS0xLjQtMTEuNi0zLjgtMTUuNC0zLjgtMzcuMSAwLTYyLjIgMTYuOC05My41IDM0LjVsLS45LS45YzctNDcuMyAyMy41LTkxLjkgMjMuNS0xNDAuNCAwLTcxLjUtMzguMi0xMDAuNi0xMDguNC0xMDAuNi0xMTUuMSAwLTE3My40IDExMy43LTE3My40IDE5OC40IDAgODcuOSA1MS4zIDEzNi42IDEzOC42IDEzNi42IDEyIDAgMTEtMSAxMSAzLjgtMTYuOSAxMjguOS05MC44IDEzMy4xLTkwLjggOTQuNiAwLTM5LjIgNDUtNTguNiA0NS41LTYxLS4zLTEyLjItNDctMjcuNi01OC45LTI3LjYtMzMuOSAuMS01Mi40IDUxLjItNTIuNCA3OS4zIDAgNTEuOSAzMi44IDg3LjkgODUuNSA4Ny45IDc3LjQgMCAxMzQtNzcuOCAxNTEuNC0xNDUuNCAxNS4xLTYwLjUgMTEuMi02My4zIDE5LjctNjcuNiAzMi4yLTE2LjIgNTcuNS0yNyA5My44LTI3IDE3LjggMCAzMC41IDMuNyA1OC45IDguNCAyLjkgMCA2LjctMi45IDYuNy01LjggMC04LTMzLjQtNjAuNS00MC45LTYzLjR6TTIzMS44IDEyNi44Yy05LjMgNDQuNy0xOC42IDg5LjYtMjcuOCAxMzQuMy0yLjMgMTAuMi0xMy4zIDcuOC0yMiA3LjgtMzguMyAwLTQ5LTQxLjgtNDktNzMuMSAwLTQ3IDE4LTEwOS4zIDYxLjgtMTMzLjQgNy00LjEgMTQuOC02LjcgMjIuNi02LjcgMTguNiAwIDIwIDEzLjMgMjAgMjguNy0uMSAxNC4zLTIuNyAyOC41LTUuNiA0Mi40eiJdfSxrZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianNmaWRkbGUiLGljb246WzU3Niw1MTIsW10sImYxY2MiLCJNNTExLjEgMjM3LjVjLTQuNy0yLjYtNS43LTUuNy02LjQtMTAuOC0yLjQtMTYuNS0zLjUtMzMuNi05LjEtNDkuMS0zNS45LTEwMC0xNTQtMTQzLjQtMjQ2LjgtOTEuNi0yNy40IDE1LjItNDkgMzYuNC02NS41IDYzLjktMy4yLTEuNS01LjUtMi43LTcuOC0zLjctMzAuMS0xMi40LTU5LTEwLjEtODUuMyA5LjItMjUuNSAxOC43LTM2LjQgNDQuNS0zMi43IDc2LjQgLjQgMy0yIDcuNi00LjUgOS41LTM5LjcgMzAtNTYgNzguMS00MS45IDEyNC42IDEzLjggNDUuNiA1Ny41IDc5LjggMTA1LjYgODEuNCAzMC4zIDEgNjAuNiAuNSA5MSAuNSA4NCAwIDE2OC4xIC41IDI1Mi4xLS41IDUyLjctLjYgOTYuMS0zNi45IDEwOC4yLTg3LjMgMTEuNS00OC4xLTExLjEtOTcuMy01Ni44LTEyMi42em0yMS4xIDE1Ni45Yy0xOC4yIDIyLjQtNDIuMyAzNS4zLTcxLjMgMzUuNy01Ni45IC44LTExMy44IC4yLTE3MC43IC4yIDAgLjctMTYzIC4yLTE2My43IC4yLTQzLjktLjMtNzYuNy0xOS44LTk1LjItNjAtMTguOS00MS4yLTQtOTAuOCAzNC4yLTExNi4xIDkuMi02LjEgMTIuNS0xMS42IDEwLjEtMjMuMS01LjUtMjYuNCA0LjUtNDggMjYuNC02MyAyMy0xNS43IDQ3LjQtMTYuMSA3Mi0zLjEgMTAuMyA1LjQgMTQuNiAxMS42IDIyLjItMi41IDE0LjItMjYuNCAzNC42LTQ2LjcgNjAuNy02MS4zIDk3LjUtNTQuNCAyMjguNCA3LjYgMjMwLjIgMTMyLjcgLjEgOC4yIDIuNCAxMi40IDkuOCAxNS45IDU3LjYgMjYuOCA3NC41IDk2LjEgMzUuMSAxNDQuNXptLTg3LjgtODAuNWMtNS44IDMxLjItMzQuNiA1NS4xLTY2LjcgNTUuMS0xNyAwLTMyLjEtNi41LTQ0LjEtMTcuNy0yNy43LTI1LjctNzEuMS03NS05NS45LTkzLjQtMjAuMS0xNC45LTQyLTEyLjMtNjAuMyAzLjgtNTAgNDQuMSAxNS45IDEyMS44IDY3LjEgNzcuMiA0LjUtNCA3LjgtOS41IDEyLjctMTIuOCA4LjItNS41IDIwLjgtLjkgMTMuMiAxMC42LTE3LjQgMjYuMy00OS4zIDM4LjItNzguOSAyOS4zLTI4LjktOC43LTQ4LjgtMzYtNDguNi03MC4yIDEuMi0yMi41IDEyLjQtNDMuMSAzNS40LTU2IDIyLjYtMTIuNiA0Ni40LTEzLjEgNjcgMi41IDUwLjggMzguNSA3NS42IDgxLjcgMTA3LjMgMTAxLjIgMjQuNiAxNS4xIDU0LjMgNy40IDY4LjgtMTcuNSAyOC44LTQ5LjItMzQuNi0xMDUtNzguOS02My41LTQgMy43LTYuOSA4LjktMTEuNCAxMS43LTExIDYuOC0xNy4zLTQuMS0xMi44LTEwLjQgMjAuNy0yOC42IDUwLjUtNDAuNCA4My4zLTI4LjIgMzEuNCAxMS43IDQ5LjEgNDQuNCA0Mi44IDc4LjJ6Il19LFNmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrZXliYXNlIixpY29uOls0NDgsNTEyLFtdLCJmNGY1IiwiTTI4Ni4yIDQxOWExOCAxOCAwIDEgMCAwIDM2IDE4IDE4IDAgMSAwIDAtMzZ6TTM5OC4xIDI3MS40Yy05LjUtMTQuNi0zOS40LTUyLjQtODcuMy03My43LTYuMS0yLjctMTIuMi01LjEtMTguNC03LjMgNC4xLTkuOSA2LTIwLjYgNS44LTMxLjRzLTIuNy0yMS4zLTcuMi0zMS4xLTEwLjktMTguNS0xOC45LTI1LjctMTcuNC0xMi42LTI3LjYtMTZjLTEyLjQtNC4xLTIzLjMtNi0zMi40LTUuOC0uNi0yLTEuOS0xMSA5LjQtMzVsLTIyLjktMTMuNS01LjUgNy42Yy04LjcgMTIuMS0xNi45IDIzLjYtMjQuMyAzNC45LTIuNy0uNi01LjUtMS4xLTguMy0xLjItNDEuNS0yLjQtMzktMi4zLTQxLjEtMi4zLTUwLjYgMC01MC44IDUyLjEtNTAuOCA0NS45bC0yLjQgMzYuN2MtMS42IDI3IDE5LjggNTAuMiA0Ny42IDUxLjhsOC45IC41QzEwNiAyMTUuNSA5MC40IDIyNy41IDc2LjYgMjQxLjQgMTQgMzA0LjcgMTQgMzc0IDE0IDQyOS44bDAgMzMuNiAyMy4zLTI5LjhjMy4xIDEzLjEgOCAyNS44IDE0LjYgMzcuNiA1LjggMTAuMSAxNC45IDkuNCAxOS42IDcuMyA0LjItMS45IDEwLTYuOSAzLjgtMjAuMS04LTE2LjgtMTMuMy0zNC43LTE1LjgtNTMuMWw0Ni44LTU5LjgtMjQuNyA3NC4xYzU4LjItNDIuNCAxNTcuNC02MS44IDIzNi4yLTM4LjYgMzQuMiAxMC4xIDY3LjQgLjcgODQuNy0yMy44IC43LTEgMS4yLTIuMiAxLjgtMy4yIDEuOCA5LjQgMi43IDE4LjkgMi44IDI4LjQgMCAyMy4zLTMuNyA1Mi45LTE0LjkgODEuNi0yLjUgNi41IDEuOCAxNC41IDguNiAxNS43IDcuNCAxLjYgMTUuMy0zLjEgMTguNC0xMS4xIDkuNi0yNS41IDE0LjYtNTQuNiAxNC42LTg2LjIgMC0zOC42LTEzLTc3LjUtMzUuOS0xMTAuOXpNMTQyLjQgMTI4LjZsLTE1LjctLjktMS40IDIxLjggMTMuMSAuOGMtLjYgNi41LS41IDEzLjEgLjMgMTkuNmwtMjIuNC0xLjNjLTEuNi0uMS0zLjItLjUtNC43LTEuMXMtMi44LTEuNi0zLjktMi44LTEuOS0yLjYtMi41LTQuMS0uOC0zLjEtLjctNC43TDEwNyAxMTljMS0xMi4yIDEzLjktMTEuMyAxMy4zLTExLjNsMjkuMSAxLjdjLTIuOCA2LjItNS4xIDEyLjYtNyAxOS4yek0yOTAuOCAzMDAuOGMtMi4xIDEuNi00LjggMi40LTcuNSAyLjJzLTUuMS0xLjUtNi45LTMuNWwtOS43LTExLjUtMzQuNCAyN2MtMS42IDEuMy0zLjcgMS45LTUuOCAxLjdzLTQtMS4yLTUuMy0yLjhsLTE1LjgtMTguNmMtMS4yLTEuNi0xLjctMy41LTEuNS01LjRzMS4zLTMuNyAyLjgtNC45bDM0LjYtMjcuMi0xNC4xLTE2LjctMTcuMSAxMy41Yy0xLjYgMS4yLTMuNSAxLjgtNS41IDEuNnMtMy44LTEuMS01LjEtMi42YzAgMC0zLjctNC40LTMuOC00LjUtMS4yLTEuNi0xLjctMy41LTEuNS01LjVzMS4zLTMuNyAyLjgtNC45TDIxNCAyMjUuMnMtMTguNS0yMi0xOC42LTIyLjFjLS44LTEtMS4zLTIuMS0xLjctMy4zcy0uNC0yLjUtLjMtMy43IC42LTIuNCAxLjItMy41IDEuNS0yIDIuNS0yLjhjMi4xLTEuNyA0LjgtMi40IDcuNC0yLjJzNS4xIDEuNSA2LjkgMy42bDgxLjEgOTYuM2MuOCAxIDEuMyAyLjEgMS43IDMuM3MuNCAyLjUgLjMgMy43LS42IDIuNS0xLjIgMy41LTEuNSAyLjEtMi41IDIuOHpNMTg3LjQgNDE5YTE4IDE4IDAgMSAwIDAgMzYgMTggMTggMCAxIDAgMC0zNnoiXX0sTWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imx1bW9uLWRyb3AiLGljb246WzU3Niw1MTIsW10sImU3ZTMiLCJNNDgwIDMyYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5Nkw5NiA0NDhjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzODQgMHpNMzAyLjQgMTE0LjdjLTkuOC0xNi40LTIwLjUtMTYuNC0yOS42IDBsLTY4LjkgMTE0Yy0xMC43IDE1LjYtMTYuNCAzMi44LTE2LjQgNTIuNSAwIDUwLjkgNDQuMyA5NC4zIDEwMC4xIDk0LjMgNTUgMCAxMDAuOS00My41IDEwMC45LTk0LjMgMC0xOS43LTYuNi0zNy44LTE3LjItNTIuNWwtNjguOS0xMTR6Il19LENmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3JnZWpvIixpY29uOlszMjAsNTEyLFtdLCJlODYwIiwiTTI2MS41IDEuMmMzNCAwIDYxLjYgMjcuNiA2MS42IDYxLjZzLTI3LjYgNjEuNi02MS42IDYxLjZjLTIzIDAtNDMuMS0xMi43LTUzLjctMzEuNGwtMjguNSAwYy0yNCAwLTQ3IDkuNS02NCAyNi41cy0yNi41IDQwLTI2LjUgNjRsMCA0My41YzI2LTE5LjUgNTcuNy0zMC4yIDkwLjYtMzAuMmwyOC41IDBjMTAuNi0xOC43IDMwLjYtMzEuNCA1My43LTMxLjQgMzQgMCA2MS42IDI3LjYgNjEuNiA2MS42cy0yNy42IDYxLjYtNjEuNiA2MS42Yy0yMyAwLTQzLjEtMTIuNy01My43LTMxLjRsLTI4LjUgMGMtMjQgMC00NyA5LjUtNjQgMjYuNXMtMjYuNSA0MC0yNi41IDY0bDAgNDcuOGMxOC43IDEwLjYgMzEuNCAzMC42IDMxLjQgNTMuNiAwIDM0LTI3LjYgNjEuNi02MS42IDYxLjZTLTMgNDgzLjItMyA0NDkuMmMwLTIzIDEyLjctNDMuMSAzMS40LTUzLjZsMC0yMTJjMC00MCAxNS45LTc4LjQgNDQuMi0xMDYuN3M2Ni43LTQ0LjIgMTA2LjctNDQuMmwyOC41IDBjMTAuNi0xOC43IDMwLjYtMzEuNCA1My43LTMxLjR6TTU4LjYgNDIzLjljLTE0IDAtMjUuMyAxMS4zLTI1LjMgMjUuM3MxMS4zIDI1LjQgMjUuMyAyNS40IDI1LjQtMTEuNCAyNS40LTI1LjQtMTEuNC0yNS4zLTI1LjQtMjUuM3pNMjYxLjUgMjAxLjdhMjUuNCAyNS40IDAgMSAwIDAgNTAuNyAyNS40IDI1LjQgMCAxIDAgMC01MC43em0wLTE2NC4yYTI1LjQgMjUuNCAwIDEgMCAwIDUwLjcgMjUuNCAyNS40IDAgMSAwIDAtNTAuN3oiXX0semZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBvc3RncmVzcWwiLGljb246WzUxMiw1MTIsW10sImU4NTgiLCJNMjE5LjggMTcxLjNjMy45IC41IDEzLjEgMi43IDEyLjMgOC41LS44IDUuOS05LjIgOS4xLTE0LjIgOC40LTQuNy0uNy0xMy4yLTYuMS0xMi4zLTEyLjFsLjMtMi4xYzQuMiAwIDguMy0zLjUgMTMuOS0yLjd6bTE2OC4xLTMuNGMxMC44IDIuNi0xLjEgMTMuNS02LjggMTQuMy00LjMgLjYtMTIuMS0yLjItMTIuOC03LjQtMS03LjQgMTUuNy03LjkgMTkuNy02Ljl6bS0yMi0xNDAuOGMzNS43LS4zIDgxLjMgOS40IDExNC4zIDUxLjcgNy4yIDkuMiAxMCAyNCA5LjcgNDAuOS0uOCA0OS42LTI2IDEyOS40LTcwLjcgMTk3LjQgNC41IDIuOSAxNy42IDcuNCA1MS4xIC41IDUuNi0xLjIgMTIuNy0yLjIgMTcuNiAxLjYgMTguMiAxMy45LTE5LjYgMzUuMS0yOC40IDM5LjItMTMuMiA2LjItMzQuOCA5LjUtNTEuMiA4LjctMi4xLS4yLTQuMy0uMi02LjMtLjYtNS4xLTEuMS03LjQtMS04LjMtLjctMS4xIC4zLTEuNCAyLjktMS42IDMuOC0yLjggMjQuOS03LjcgNjQuNy0xMC43IDgyLTIuOCAxNi4zLTcuNyAyOS4zLTE3LjIgMzkuMi05LjUgOS45LTIyLjggMTUuNy00MC42IDE5LjUtMjIuMyA0LjgtMzcuOS0uMS00OC43LTkuMS0xMC4zLTguNy0xNS4yLTIwLjQtMTgtMjcuNC0xLjgtNC41LTMtMTEuNS00LTE5LjgtMi4zLTE5LjgtMy4zLTUwLjQtMy04My4zLTI0LjYgMjIuMS01NSAxNy4yLTY4LjIgMTMuOS0xMC41LTIuNi0zMy0xNi4xLTE3LjUtMjguNyAxMS45LTkuNyAzMC4zLTUuNSA0Mi4yLTE1IDIuNC0xLjkgMTEuNC0xMC42IDExLjQtMTMuNS0xMC0uMy0xOS42LTIuOS0yOC4xLTcuNS0xMy41IDE0LjUtMjYuNCAyOS41LTM5LjMgNDQuNi04LjMgOS45LTE3LjQgMTUuOC0yNy40IDE2LjItOS45IC40LTE4LjctNC42LTI2LjEtMTEuOC03LjMtNy4xLTE0LjEtMTcuMi0yMC40LTI5LTE5LTM1LjUtMzMuMi04Ni4xLTQyLjMtMTI2LjQtNi0yNi43LTkuNi00OS4xLTEwLjEtNTktMi4yLTQ0LjMgOC03NC4xIDI2LTkzLjIgMTcuOS0xOSA0Mi40LTI2IDY2LjEtMjcuNCAzNS42LTIgNzEgOC41IDg2LjYgMTMuOGw1IDEuOGMxNS45LTEwLjggMzYuMS0xNy40IDYxLjctMTcgMTMuMiAuMiAyNS41IDIuMiAzNi43IDQuMiAxOC42LTcuMSAzOS44LTkuNSA1OS40LTkuN3ptLTk2IDIwLjVjLTI0LjctLjQtNDIuOSA2LjUtNTYuNiAxNi44LS44IC42LTEuOCAxLTIuOCAxLjItMTQuNCAxMS44LTIzLjkgMjgtMzAuMyA0NC44LTcuMiAxOS4xLTEwIDM4LjUtMTEuMSA1MS41IDcuNi00LjMgMTcuOS04LjcgMjguNy0xMS4yIDEwLjUtMi40IDIyLjQtMy4yIDMyLjcgLjggMTAuOSA0LjIgMTkgMTMuMyAyMi4yIDI4LjEgNy41IDM0LjcgNi43IDU4LjIgMi43IDc1LjktNC44IDIxLTE2LjggMzkuNS0yMS45IDYwLjQgMy41LS45IDcuMS0uNiA5LjggLjFsNy4yIDIuOWM3LjcgNC40IDEyLjggMTMgMTQgMjEuNyAyIDYgLjEgMTQuMyAwIDIwLjYgNi43IDE2LjMgNy4yIDM2LjEgNi43IDUzLjMtLjcgMjUtMSA0MC4yIDMuMiA1MS43IDIuOSA3LjkgNC43IDE2LjQgMTAuNCAyMi44IDIuNiAzIDYuMSA1LjUgMTAuOSA2LjggMTguNSA1LjEgNDQtNC43IDU2LjYtMTguMiA3LjctOC4yIDEyLjMtMTkuMyAxMy40LTMzLjkgMS4xLTEzLjYgNC4yLTI3LjYgNi4zLTQxLjFsMi45LTguOGMxLjctMTQuOCAzLjQtMjkuNiA1LTQ0LjQtLjQtOS4xIC45LTE2LjEgMy45LTIxLjUgMy4xLTUuNyA3LjYtOC45IDExLjgtMTAuOCAxLjgtLjggMy45LTEuMiA1LjYtMi0xLjYtMi40LTMuNi00LjYtNS4zLTYuOC04LjItMTAuNC0xMy4zLTIyLjMtMTkuNy0zMy44LTguNS0xNS4yLTIzLjgtNDIuMi0zMC4xLTY3LjUtNC4xLTE2LjQtNC45LTM0LjUgNi00NyA5LjgtMTEuMiAyNi45LTE1LjUgNTEuOS0xMy0zLjQtMTAtMTEuNC0yNy41LTI0LjgtNDQuNy0xOC0yMy00NS43LTQ1LjktODUuNy01My4xLTcuMy0uOS0xNS4yLTEuNS0yMy42LTEuN3ptLTMyLjIgMjgyYy04IC43LTE1LjUgMTguMi0yMS43IDIzLjEtNi4yIDQuOS0xNC41IDcuNi0zMCAxMC43LTQuNSAuOS03LjcgMS45LTkuNyAyLjggMjIuMyAxNS44IDU4LjMgMy4yIDcyLjYtMTYuOCAxLjctMi40IDIuMS02IC41LTEwLjItMS43LTQuNS02LjQtMTAuMS0xMS45LTkuNnpNMTE3LjYgNDkuMmMtMjEuNiAxLjItNDIgNy41LTU2LjQgMjIuOC0xNC40IDE1LjItMjQuMiA0MC42LTIyLjEgODIuNSAuNCA4LjUgMy44IDMwIDkuOCA1Ni42IDguOSAzOS44IDIzLjcgOTAuMyA0MC42IDEyMi4yIDYgMTEuMSAxNy40IDMzIDMyLjggMzIuMyA0LjQtLjIgMTAuMS0yLjggMTctMTEgMTIuNi0xNC44IDI1LjItMjkuNSAzOC41LTQzLjctMTcuOS0xNS40LTI4LjUtNDAuMy0yNC44LTY3LjIgMy40LTI0LjMgLjUtNDguMiAxLjItNzIuNSAuNC0xMS45IDIuMy0zOC43IDEyLjYtNjUuOCA1LjktMTUuNSAxNC41LTMxLjMgMjcuNC00NC4yLTE2LjQtNS40LTQ3LjEtMTMuNS03Ni42LTExLjl6TTQwNS4xIDMyOC45Yy0zLjggMS4xLTYuNyAyLjItOC43IDUuOC0xLjMgMi40LTIuNSA2LjctMi4yIDE0LjIgNC44IDMuOSAxNC4xIDMuMyAxOS44IDMuMiAxMy45LS4yIDI5LjktMy4xIDM5LjMtNy41IDcuOS0zLjcgMTQuNy04LjMgMTktMTIuMi0zOC4yIDcuNy01NS40IDIuMS02My4yLTQuOC0xLjMgLjQtMi45IC45LTMuOSAxLjJ6TTIyNS4zIDE2NC45Yy0xNS40LTUuOS0zNS40IDEuOC00OC45IDkuNC0zLjYgMi02LjUgNC03LjkgNS4yIC40IDguOCAyLjggMzYuMS0xLjQgNjYuMy01LjEgMzYuNiAyMS43IDY2LjYgNTIuNSA2Ni43IDUuMS0yMC44IDE3LTM5LjIgMjEuOC02MC4xIDMuNS0xNS4zIDQuNS0zNi42LTIuNy02OS43LTIuMy0xMC41LTcuNC0xNS40LTEzLjQtMTcuN3pNMzcwLjEgNDIuMmMtMTUuMi0uMi0yOC44IDEuNy0zOS4yIDMuOCAyNiAxMS44IDQ1LjYgMjkuNyA1OS42IDQ3LjYgMTcuNCAyMi4yIDI2LjMgNDQuMSAyOSA1NSAuNyAyLjcgMS4zIDUuNyAuNSA4LjQgLjYgMTguOS00IDMxLjMtNC42IDQ5LjItLjQgMTIuOSAyLjkgMjguMSAzLjcgNDQuNyAuOCAxNS43LTEgMzIuNS0xMS4yIDQ5LjUgLjggMSAxLjYgMi4xIDIuNCAzLjEgMjYuOC00Mi4yIDQ2LTg4LjYgNTYuMy0xMjguNSA1LjUtMjEuNCA4LjQtNDAuNyA4LjctNTYuMSAuMi0xNS4yLTItMjUuNC01LjgtMzAuNC0yOC4zLTM2LjEtNjYuOC00NS44LTk5LjMtNDYuMnptMzUuNiAxMTkuNWMtMjUuMy0zLjItMzcuMyAxLjUtNDIuOCA3LjctNiA2LjgtNi44IDE4LjUtMi45IDM0LjEgNS43IDIyLjYgMjAuMSA0OC42IDI4LjcgNjQgMy42IDYuNCA2LjQgMTMuMSAxMCAxOS40IDUuNS0xMS43IDYuNi0yMy41IDYtMzUuNS0uNy0xNS00LjItMzAuMy0zLjctNDUuOGwuNC03LjRjMS4yLTE0LjMgNC4xLTI0LjYgNC4yLTM2LjV6Il19LF9mcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWVibHkiLGljb246WzUxMiw1MTIsW10sImY1Y2MiLCJNNDI1LjEgNjUuOGMtMzkuOSAwLTczLjMgMjUuNy04My43IDY0LjMtMTguMi01OC4xLTY1LjUtNjQuMy04NS02NC4zLTE5LjggMC02Ni44IDYuMy04NS4zIDY0LjMtMTAuNC0zOC42LTQzLjQtNjQuMy04My43LTY0LjMtNDkgMC04Ny41IDMzLjktODcuNSA3Ny4yIDAgMjkgNC4yIDMzLjMgNzcuMiAyMzMuNSAyMi40IDYwLjYgNjcuOCA2OS40IDkyLjcgNjkuNCAzOS4yIDAgNzAtMTkuNSA4NS45LTU0IDE1LjkgMzQuOCA0Ni43IDU0LjMgODUuOSA1NC4zIDI1IDAgNzAuNC05LjEgOTIuNy02OS43IDc2LjYtMjA4LjYgNzcuNS0yMDUuNiA3Ny41LTIyNy4yIC42LTQ4LjMtMzYtODMuNS04Ni45LTgzLjV6bTI2LjMgMTE0LjhMMzg1LjkgMzU3LjFjLTcuOSAyMS41LTIxLjIgMzcuMi00Ni4yIDM3LjItMjMuNCAwLTM3LjQtMTIuNC00NC0zMy45bC0zOS4zLTExNy40LTEgMC0zOS4zIDExNy40Yy03IDIxLjUtMjAuOSAzMy42LTQ0IDMzLjYtMjUgMC0zOC4zLTE1LjctNDYuMi0zNy4yTDYwLjkgMTgxLjZjLTUuNC0xNC44LTcuOS0yMy45LTcuOS0zNC41IDAtMTYuMyAxNS44LTI5LjQgMzguMy0yOS40IDE4LjcgMCAzMiAxMS44IDM2LjEgMjkuMWw0NCAxMzkuOCAxIDAgNDQuNy0xMzYuOGM2LTE5LjcgMTYuNS0zMi4xIDM5LTMyLjFzMzIuOSAxMi4xIDM5IDMyLjFsNDQuNyAxMzYuOCAxIDAgNDQtMTM5LjhjNC4xLTE3LjIgMTcuNC0yOS4xIDM2LjEtMjkuMSAyMi4yIDAgMzguMyAxMy4zIDM4LjMgMzUuNy0uMyA3LjktNC4xIDE2LTcuNiAyNy4yeiJdfSxUZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZG9ja2VyIixpY29uOls2NDAsNTEyLFtdLCJmMzk1IiwiTTM0OS45IDIzNi4zbC02Ni4xIDAgMC01OS40IDY2LjEgMCAwIDU5LjR6bTAtMjA0LjNsLTY2LjEgMCAwIDYwLjcgNjYuMSAwIDAtNjAuN3ptNzguMiAxNDQuOGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40ek0yNzEuOCAxMDQuN2wtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xem03OC4xIDBsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXptMjc2LjggMTAwYy0xNC40LTkuNy00Ny42LTEzLjItNzMuMS04LjQtMy4zLTI0LTE2LjctNDQuOS00MS4xLTYzLjdsLTE0LTkuMy05LjMgMTRjLTE4LjQgMjcuOC0yMy40IDczLjYtMy43IDEwMy44LTguNyA0LjctMjUuOCAxMS4xLTQ4LjQgMTAuN2wtNDM0LjcgMGMtOC43IDUwLjggNS44IDExNi44IDQ0IDE2Mi4xIDM3LjEgNDMuOSA5Mi43IDY2LjIgMTY1LjQgNjYuMiAxNTcuNCAwIDI3My45LTcyLjUgMzI4LjQtMjA0LjIgMjEuNCAuNCA2Ny42IC4xIDkxLjMtNDUuMiAxLjUtMi41IDYuNi0xMy4yIDguNS0xNy4xbC0xMy4zLTguOXpNMTE1LjYgMTc2LjhsLTY2IDAgMCA1OS40IDY2LjEgMCAwLTU5LjQtLjEgMHptNzguMSAwbC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6bTc4LjEgMGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40em0tNzguMS03Mi4xbC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6Il19LExmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYWdlbnRvIixpY29uOls0NDgsNTEyLFtdLCJmM2M0IiwiTTQ0NS45IDEyNy45bDAgMjU2LjEtNjMuNCAzNi41IDAtMjU1LjgtMTU4LjUtOTEuNi0xNTguNiA5MS42IC40IDI1NS45LTYzLjMtMzYuNiAwLTI1NS45IDIyMS45LTEyOC4xIDIyMS41IDEyNy45ek0yNTUuOCA0MjAuNWwtMzEuNiAxOC40LTMxLjgtMTguMiAwLTI1Ni02My4zIDM2LjYgLjEgMjU1LjkgOTQuOSA1NC45IDk1LjEtNTQuOSAwLTI1Ni02My40LTM2LjYgMCAyNTUuOXoiXX0sRGZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRvci1icm93c2VyIixpY29uOls1MTIsNTEyLFtdLCJlODM4IiwiTTI1Ni41IDQ2NS40bDAtMzFjOTguMy0uMyAxNzcuOS04MCAxNzcuOS0xNzguNFMzNTQuOCA3Ny45IDI1Ni41IDc3LjZsMC0zMUMzNzIgNDYuOCA0NjUuNCAxNDAuNSA0NjUuNCAyNTZTMzcyIDQ2NS4yIDI1Ni41IDQ2NS40em0wLTEwOC42YzU1LjQtLjMgMTAwLjMtNDUuMyAxMDAuMy0xMDAuOFMzMTIgMTU1LjUgMjU2LjUgMTU1LjJsMC0zMWM3Mi42IC4zIDEzMS40IDU5LjIgMTMxLjQgMTMxLjhTMzI5LjEgMzg3LjYgMjU2LjUgMzg3LjhsMC0zMXptMC0xNTUuMWMyOS43IC4zIDUzLjggMjQuNSA1My44IDU0LjNzLTI0IDU0LTUzLjggNTQuM2wwLTEwOC42ek0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAweiJdfSwkZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0LWFsdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0MSIsIk00MzkuNiAyMzYuMUwyNDQgNDAuNUMyMzguNiAzNSAyMzEuMiAzMiAyMjMuNiAzMnMtMTUgMy0yMC40IDguNGwtNDAuNyA0MC42IDUxLjUgNTEuNWMyNy4xLTkuMSA1Mi43IDE2LjggNDMuNCA0My43bDQ5LjcgNDkuN2MzNC4yLTExLjggNjEuMiAzMSAzNS41IDU2LjctMjYuNSAyNi41LTcwLjItMi45LTU2LTM3LjNsLTQ2LjMtNDYuMyAwIDEyMS45YzI1LjMgMTIuNSAyMi4zIDQxLjggOS4xIDU1LTYuNCA2LjQtMTUuMiAxMC4xLTI0LjMgMTAuMXMtMTcuOC0zLjYtMjQuMy0xMC4xYy0xNy42LTE3LjYtMTEuMS00Ni45IDExLjItNTZsMC0xMjNjLTIwLjgtOC41LTI0LjYtMzAuNy0xOC42LTQ1TDE0Mi42IDEwMSA4LjUgMjM1LjFDMyAyNDAuNiAwIDI0Ny45IDAgMjU1LjVzMyAxNSA4LjUgMjAuNEwyMDQuMSA0NzEuNmM1LjQgNS40IDEyLjcgOC40IDIwLjQgOC40czE1LTMgMjAuNC04LjRMNDM5LjYgMjc2LjljNS40LTUuNCA4LjQtMTIuOCA4LjQtMjAuNHMtMy0xNS04LjQtMjAuNHoiXX0sQWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3gtYnJvd3NlciIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNyIsIk0xMzAuMiAxMjcuNWwwIDB6bTM1MS40IDQ1LjRjLTEwLjYtMjUuNS0zMi4xLTUzLTQ4LjktNjEuNyAxMy43IDI2LjkgMjEuNyA1My45IDI0LjcgNzQgMCAuMSAwIC4zIC4xIC40LTI3LjYtNjguOC03NC40LTk2LjUtMTEyLjYtMTU2LjgtMTUtMjMuNy0xMC45LTI1LjItMTMuMS0yNC43bC0uMSAuMWMtNDYuNyAyNi03NS4zIDc4LjQtODIuNiAxMjIuNy0xNi42IC45LTMyLjkgNS00Ny45IDEyLjEtMS40IC42LTIuNSAxLjctMy4xIDNzLS45IDIuOC0uNiA0LjNjLjIgLjggLjYgMS42IDEuMSAyLjNzMS4yIDEuMyAxLjkgMS43IDEuNiAuNyAyLjQgLjggMS43IDAgMi41LS4zbC41LS4yYzE1LjUtNy4zIDMyLjQtMTEuMiA0OS41LTExLjMgNjIuOC0uNiA5Ny4yIDQ0IDEwNy42IDYyLjMtMTMtOS4yLTM2LjQtMTguMi01OC44LTE0LjMgODcuNyA0My45IDY0LjIgMTk0LjUtNTcuNCAxODkuMi01OS41LTIuNi05Ny4xLTUxLTEwMC41LTkwLjggMCAwIDExLjItNDEuOSA4MC42LTQxLjkgNy41IDAgMjguOS0yMC45IDI5LjMtMjctLjEtMi00Mi41LTE4LjktNTkuMS0zNS4yLTguOC04LjctMTMuMS0xMi45LTE2LjgtMTYuMS0yLTEuNy00LjEtMy4zLTYuMy00LjgtNS42LTE5LjUtNS44LTQwLS43LTU5LjYtMjUuMSAxMS40LTQ0LjYgMjkuNC01OC43IDQ1LjRsLS4xIDBjLTkuNy0xMi4yLTktNTIuNi04LjQtNjEuMS0uMS0uNS03LjIgMy43LTguMiA0LjMtOC42IDYuMS0xNi41IDEyLjktMjMuOCAyMC40LTE2LjMgMTYuNi00NC4xIDUwLjItNTUuNSAxMDEuMi00LjUgMjAuNC02LjggNDQuNC02LjggNTIuMyAwIDEzNC43IDEwOS4yIDI0My45IDI0My45IDI0My45IDEyMC42IDAgMjIzLTg3LjIgMjQwLjQtMjAyLjYgMTEuNi03Ni43LTE0LjctMTMxLjEtMTQuNy0xMzJ6Il19LEVmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZHNtaXRoIixpY29uOls1MTIsNTEyLFtdLCJmMzg0IiwiTTUxMiAyMjcuNkw1MTIgMjg0LjUgMjg0LjQgNTEyIDIyNy42IDUxMiAwIDI4NC40IDAgMjI3LjYgMjI3LjYgMCAyODQuNSAwIDUxMiAyMjcuNnptLTI1NiAxNjJjMTcuOCAuNSAzNS42LTIuNiA1Mi4yLTkuMXMzMS44LTE2LjIgNDQuNi0yOC43IDIzLTI3LjMgMjkuOS00My44IDEwLjUtMzQuMSAxMC41LTUyLTMuNi0zNS41LTEwLjUtNTItMTcuMS0zMS4zLTI5LjktNDMuOC0yOC0yMi4yLTQ0LjYtMjguNy0zNC40LTkuNi01Mi4yLTkuMWMtMTcuOC0uNS0zNS42IDIuNi01Mi4yIDkuMXMtMzEuOCAxNi4zLTQ0LjYgMjguNy0yMyAyNy4zLTI5LjkgNDMuOC0xMC41IDM0LjEtMTAuNSA1MiAzLjYgMzUuNSAxMC41IDUyIDE3LjEgMzEuMyAyOS45IDQzLjggMjggMjIuMiA0NC42IDI4LjcgMzQuNCA5LjYgNTIuMiA5LjF6Il19LElmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXphcmRzLW9mLXRoZS1jb2FzdCIsaWNvbjpbNjQwLDUxMixbXSwiZjczMCIsIk0yMTkuMiAzNDUuN2MtMS45IDEuNC0xMS4xIDguNC0uMyAyMy42IDQuNiA2LjQgMTQuMSAxMi44IDIxLjcgNi42IDYuNS00LjkgNy40LTEyLjkgLjMtMjMtNS41LTcuOC0xNC4zLTEyLjktMjEuNy03LjF6bTMzNi44IDc1LjljLS4zIDEuNy0uNiAxLjcgLjggMCAyLjEtNC4yIDQuMi0xMC4yIDUtMTkuOSAzLjEtMzguNS00MC4zLTcxLjUtMTAxLjMtNzgtNTQuNy02LTEyNC40IDkuMi0xODguOCA2MC41bC0uMyAxLjZjMi42IDUgNSAxMC43IDMuNCAyMS4ybC44IC4zYzYzLjktNTguNCAxMzEuMi03Ny4yIDE4NC40LTczLjggNTguNCAzLjcgMTAwIDM0IDEwMCA2OC4xIDAgMTAtMi42IDE1LjctMy45IDIwLjJ6TTM5Mi4zIDI0MC40Yy44IDcuMSA0LjIgMTAuMiA5LjIgMTAuNSA1LjUgLjMgOS40LTIuNiAxMC41LTYuNiAuOC0zLjQgMi4xLTI5LjggMi4xLTI5LjhTNDAyLjggMjIxIDM5OS4xIDIyNWMtMy43IDMuNy03LjMgOC40LTYuOCAxNS41em0tNTAtMTUxLjFjLTIwNC41IDAtMzI5LjIgMTM3LjUtMzQxLjUgMTUxLjktMSAuNS0xLjMgLjggLjggMS4zIDYwLjUgMTYuNSAxNTUuOCA4MS4yIDE5Ni4xIDIwMi4ybDEgLjNjNTUuMi02OS45IDE0MC45LTEyOC4xIDIzNy0xMjguMSA4MC45IDAgMTMwLjIgNDIuMiAxMzAuMiA4MC40IDAgMTguMy02LjYgMzMuNS0yMi4zIDQ2LjMgMCAxLS4yIC44IC44IC44IDE0LjctMTAuNyAyNy41LTI4LjggMjcuNS00OC4yIDAtMjIuOC0xMi4xLTM4LjItMTIuMS0zOC4yIDcuMSA3LjEgMTAuNyAxNi4yIDEwLjcgMTYuMiA1LjgtNDAuOSAyNy02Mi4zIDI3LTYyLjMtMi40LTkuNy02LjgtMTcuOC02LjgtMTcuOCA3LjYgOC4xIDE0LjQgMjcuNSAxNC40IDQxLjQgMCAxMC41LTMuNCAyMi44LTEyLjYgMzEuOWwuMyAuNWM4LjEtNSAxNi41LTE2LjggMTYuNS0zOCAwLTE1LjctNC43LTI1LjktNC43LTI1LjkgNS44LTUuMiAxMS4zLTkuMiAxNi0xMS44IC44IDMuNCAyLjEgOS43IDIuNCAxNC45IDAgMSAuOCAxLjggMSAwIC44LTUuOC0uMy0xNi4yLS4zLTE2LjUgNi0zLjEgOS43LTQuNSA5LjctNC41LTE1LjctMTEwLjMtMTQ0LTE5Ni45LTI5MS4yLTE5Ni45ek0yNDMgMzc4LjljLTExLjEgOS0yNC4yIDQuMS0zMC42LTQuMi03LjQtOS42LTYuOC0yNC4xIDQuMi0zMi41IDE0LjgtMTEuNCAyNy4xLS41IDMxLjIgNS41IC4zIC40IDEyLjEgMTYuNi00LjcgMzEuMnptMi4xLTEzNi40bDkuNC0xNy44IDExLjggNzEtMTIuNiA2LTI0LjYtMjguOCAxNC4xLTI2LjcgMy43IDQuNC0xLjgtOC4xem0xOC42IDExNy42bC0uMy0uM2MyLTQuMS0yLjUtNi42LTE3LjUtMzEuNy0xLjMtMi40LTMuMS0yLjktNC40LTIuNmwtLjMtLjVjNy45LTUuOCAxNS40LTEwLjIgMjUuNC0xNS43bC41IC4zYzEuMyAxLjggMi4xIDIuOSAzLjQgNC43bC0uMyAuNWMtMS0uMy0yLjQtLjgtNS4yIC4zLTIuMSAuOC03LjkgMy43LTEyLjMgNy42bDAgMS4zYzEuNiAyLjQgMy45IDYuNiA1LjggOS43bC4zIDBjMTAtNi4zIDcuNi00LjUgMTEuNS03LjlsLjMgMGMuNSAxLjggLjUgMS44IDEuOCA1LjVsLS4zIC4zYy0zLjEgLjYtNC43IC4zLTExLjUgNS41bDAgLjNjOS41IDE3IDExIDE2LjggMTIuNiAxNmwuMyAuM2MtMi4zIDEuNi02LjMgNC4yLTkuNyA2LjZ6TTMxOSAzMjcuNmMtMy4xIDEuNi02IDIuOS0xMCA1bC0uMy0uM2MxLjMtMi42IDEuMi0yLjctMTEuOC0zMi41bC0uMy0uM2MtLjIgMC04LjkgMy43LTEwIDcuM2wtLjUgMC0xLTUuOCAuMy0uNWM3LjMtNC42IDI1LjUtMTEuNiAyNy44LTEyLjZsLjUgLjMgMy4xIDUtLjMgLjVjLTMuNS0xLjgtNy40IC44LTEyLjMgMi42bDAgLjNjMTIuMyAzMiAxMi43IDMwLjYgMTQuNyAzMC42bDAgLjJ6bTQ0LjgtMTYuNWMtNC4yIDEtNS4yIDEuMy05LjcgMi45bC0uMy0uMyAuNS00LjVjLTEtMy40LTMuMS0xMS41LTMuNy0xMy42bC0uMy0uM2MtMy40IC44LTguOSAyLjYtMTIuOCAzLjlsLS4zIC4zYy44IDIuNiAzLjEgOS45IDQuMiAxMy45IC44IDIuNCAxLjggMi45IDIuOSAzLjFsMCAuNWMtMy43IDEtNy4xIDIuNi0xMC4yIDMuOWwtLjMtLjNjMS0xLjMgMS0yLjkgLjMtNS0xLTMuMS04LjEtMjMuOC05LjItMjcuMi0uNS0xLjgtMS42LTMuMS0yLjYtMy4xbDAtLjVjMy4xLTEgNi0yLjEgMTAuNy0zLjRsLjMgLjMtLjMgNC43YzEuMyAzLjkgMi40IDcuNiAzLjEgOS43bC4zIDBjMy45LTEuMyA5LjQtMi45IDEyLjgtMy45bC4zLS4zLTIuNi05LjRjLS41LTEuOC0xLTMuNC0yLjYtMy45bDAtLjNjNC40LTEgNy4zLTEuOCAxMC43LTIuNGwuMyAuM2MtMSAxLjMtMSAyLjktLjUgNC40IDEuNiA2LjMgNC43IDIwLjQgNi4zIDI2LjUgLjUgMi42IDEuOCAzLjQgMi42IDMuOXptMzIuMi02LjhsLS4zIC4zYy00LjcgLjUtMTQuMSAyLjQtMjIuNSA0LjJsLS4zLS4zIC44LTQuMmMtMS42LTcuOS0zLjQtMTguNi01LTI2LjItLjMtMS44LS44LTIuOS0yLjYtMy43bC44LS41YzkuMi0xLjYgMjAuMi0yLjQgMjQuOS0yLjZsLjMgLjNjLjUgMi40IC44IDMuMSAxLjYgNS41bC0uMyAuM2MtMS4xLTEuMS0zLjMtMy4yLTE2LjItLjhsLS4zIC4zYy4zIDEuNiAxIDYuNiAxLjYgOS45bC4zIC4zYzkuNS0xLjcgNC44LS4xIDEwLjctMi40bC4zIDBjMCAxLjYtLjMgMS44LS4zIDUuMmwtLjMgMGMtNC44LTEtMi4yLS45LTEwLjIgMGwtLjMgLjNjLjMgMi4xIDEuNiA5LjQgMi4xIDEyLjZsLjMgLjNjMS4yIC40IDE0LjItLjYgMTYuMi00LjdsLjMgMGMtLjUgMi40LTEgNC4yLTEuNiA2em0xMC43LTQ0LjVjLTQuNSAyLjQtOC4xIDIuOS0xMSAyLjktLjIgMC0xMS40IDEuMS0xNy41LTEwLTYuNy0xMC44LTEtMjUuMiA1LjUtMzEuNyA4LjgtOC4xIDIzLjQtMTAuMSAyOC41LTE3IDgtMTAuMy0xMy0yMi4zLTI5LjYtNS44bC0yLjYtMi45IDUuMi0xNi4yYzI1LjYtMS42IDQ1LjItMyA1MCAxNi4yIC44IDMuMSAwIDkuNC0uMyAxMi4xIDAgMi42LTEuOCAxOC44LTIuMSAyMy0uNSA0LjItLjggMTguMy0uOCAyMC43IC4zIDIuNCAuNSA0LjIgMS42IDUuNSAxLjYgMS44IDUuOCAxLjggNS44IDEuOGwtLjggNC43Yy0xMS44LTEuMS0xMC4zLS42LTIwLjQtMS0zLjItNS4xLTIuMi0zLjMtNC4yLTcuOSAwIDAtNC4yIDMuOS03LjMgNS41ek00NDMuOSAyODFjLTYuNC0xMC42LTE5LjgtNy4yLTIxLjcgNS41LTIuNiAxNy4xIDE0LjMgMTkuOCAyMC43IDEwLjJsLjMgLjNjLS41IDEuOC0xLjggNi0xLjggNi4zbC0uNSAuNWMtMTAuMyA2LjktMjguNS0yLjUtMjUuNy0xOC42IDEuOS0xMC45IDE0LjQtMTguOSAyOC44LTkuOWwuMyAuNWMwIDEuMS0uMyAzLjQtLjMgNS4zem01LjgtODcuN2wwLTYuNmMuNyAwIDE5LjYgMy4zIDI3LjggNy4zbC0xLjYgMTcuNXMxMC4yLTkuNCAxNS40LTEwLjdjNS4yLTEuNiAxNC45IDcuMyAxNC45IDcuM2wtMTEuMyAxMS4zYy0xMi4xLTYuNC0xOS42LS4xLTIwLjcgLjgtNS4zIDM4LjctOC42IDQyLjIgNC40IDQ2LjFsLS41IDQuN2MtMTcuNi00LjMtMTguNS00LjUtMzYuOS03LjNsLjgtNC43YzcuMyAwIDcuNS01LjMgNy42LTYuOCAwIDAgNS01My4yIDUtNTUuMyAwLTIuOS01LTMuNy01LTMuN3ptMTEgMTE0LjRjLTguMS0yLjEtMTQuMS0xMS0xMC43LTIwLjcgMy4xLTkuNCAxMi4zLTEyLjMgMTguOS0xMC4yIDkuMiAyLjYgMTIuOCAxMS44IDEwLjcgMTkuNC0yLjYgOC45LTkuNCAxMy45LTE4LjkgMTEuNXptNDIuMiA5LjdjLTIuNC0uNS03LjEtMi40LTguNi0yLjlsMC0uMyAxLjYtMS44Yy42LTguMiAuNi03LjMgLjMtNy42LTQuOC0xLjgtNi43LTIuNC03LjEtMi40LTEuMyAxLjgtMi45IDQuNS0zLjcgNS41bC0uOCAzLjQgMCAuM2MtMS4zLS4zLTMuOS0xLjMtNi0xLjZsMC0uMyAyLjYtMS44YzMuNC00LjcgMTAtMTQuMSAxMy45LTIwLjJsMC0yLjEgLjUtLjNjMi4xIC44IDUuNSAyLjEgNy42IDIuOSAuNSAuNSAuMi0xLjktMSAyNS4xLS4yIDEuOCAwIDIuNiAuOCAzLjl6bS00LjctODkuOGMxMS4zLTE4LjMgMzAuOC0xNi4yIDM0LTMuNGw3LjYtMjYuMmMyLjMtNi4yLTIuOC05LjktNC41LTExLjNsMS44LTMuN2MxMi4yIDEwLjQgMTYuNCAxNCAyMi41IDIwLjQtMjUuOSA3My4xLTMwLjggODAuOC0yNC42IDg0LjNsLTEuOCA0LjRjLTYuNC0zLjMtOC45LTQuNC0xNy44LTguNmwyLjEtNi44Yy0uMy0uMy0zLjkgMy45LTkuNyAzLjctMTkuMS0xLjMtMjIuOS0zMS43LTkuNy01Mi45em0yOS4zIDc5LjNjMC01LjctNi4zLTcuOS03LjktNS4yLTEuMyAyLjEgMSA1IDIuOSA4LjQgMS42IDIuNiAyLjYgNi4zIDEgOS40LTIuNiA2LjMtMTIuNCA1LjMtMTUuNC0uOCAwLS43LS4zIC4xIDEuOC00LjdsLjgtLjNjLS42IDUuNyA2LjEgOS42IDguNCA1IDEtMi4xLS41LTUuNS0yLjEtOC40LTEuNi0yLjYtMy43LTYuMy0xLjgtOS43IDIuNy01LjEgMTEuMy00LjUgMTQuNyAyLjRsMCAuNS0yLjQgMy40em0yMS4yIDEzLjRjLTItMy4zLS45LTIuMS00LjUtNC43bC0uMyAwYy0yLjQgNC4yLTUuOCAxMC41LTguNiAxNi4yLTEuMyAyLjQtMSAzLjQtLjggMy45bC0uMyAuMy01LjgtNC40IC4zLS4zIDIuMS0xLjNjMy4xLTUuOCA2LjYtMTIuMSA5LjItMTdsMC0uM2MtMi42LTItMS4yLTEuNS02LTEuOGwwLS4zIDMuMS0zLjQgLjMgMGMzLjcgMi40IDEwIDYuOCAxMi4zIDguOWwuMyAuMy0xLjMgMy45ek01NzUuOCAyNzZsLTIuOS0yLjljLjgtMi40IDEuOC01IDIuMS03LjYgLjctOS43LTExLjUtMTEuOC0xMS41LTUgMCA1IDcuOSAxOS40IDcuOSAyNy44IDAgMTAuMi01LjggMTUuNy0xMy45IDE2LjUtOC40IC44LTIwLjItMTAuNS0yMC4yLTEwLjVsNS0xNC40IDIuOSAyLjFjLTMgMTcuOCAxNy43IDIwLjQgMTMuMyA1LjItMS4xLTQtMTguNy0zNC4yIDIuMS0zOC4yIDEzLjYtMi40IDIzIDE2LjUgMjMgMTYuNUw1NzUuOCAyNzZ6bTM1LjYtMTAuMmMtMTEtMzAuNC02MC41LTEyNy41LTE5Mi0xMjkuNi01My40LTEtOTQuMyAxNS40LTEzMi44IDM4bDg1LjYtOS4yLTkxLjQgMjAuNyAyNS4xIDE5LjYtMy45LTE2LjVjNy41LTEuNyAzOS4xLTguNSA2Ni44LTguOWwtMjIuMyA4MC40YzEzLjYtLjcgMTktOSAxOS42LTIyLjhsNS0xIC4zIDI2LjdjLTIyLjUgMy4yLTM3LjMgNi43LTQ5LjUgOS45bDEzLjEtNDMuMi02MS41LTM2LjcgMi40IDguMSAxMC4yIDVjNi4zIDE4LjYgMTkuNCA1Ni42IDIwLjQgNTguNyAyIDQuMyAzLjIgNS44IDEyIDQuNWwxLjEgNWMtMTYuMSA0LjktMjMuNyA3LjYtMzkgMTQuNGwtMi40LTQuN2M0LjQtMi45IDguNy0zLjkgNS41LTEyLjgtMjMuNy02Mi41LTIxLjUtNTguMS0yMi44LTU5LjRsMi40LTQuNCAzMy41IDY3LjNjLTMuOC0xMS45IDEuNyAxLjctMzMtNzguOGwtNDEuOSA4OC41IDQuNy0xMy45LTM1LjktNDIuMiAyNy44IDkzLjUtMTEuOCA4LjRjLTExMS45LTEwMS43LTEwNS44LTk4LjQtMTEzLjctOTguNy01LjUtLjMtMTMuNiA1LjUtMTMuNiA1LjVsLTUtNmMzMC42LTIzLjUgMzEuNi0yNC4zIDU4LjQtNDIuN2w0LjIgNy4xcy01LjggNC4yLTcuOSA3LjFjLTUuOSA5LjMgMS43IDEzLjMgNjEuOCA3NS43bC0xOC44LTU4LjkgMzkuOC0xMC4yIDI1LjcgMzAuNiA0LjQtMTIuMy01LTI0LjYgMTMuMS0zLjQgLjUgMy4xIDMuNy0xMC41LTk0LjMgMjkuMyAxMS4zLTUtMTMuNi00Mi40IDE3LjMtOS4yIDMwLjEgMzYuMSAyOC41LTEzLjFjLTEuNC03LjUtMi41LTE0LjUtNC43LTE5LjZsMTcuMyAxMy45IDQuNy0yLjEtNTkuMi00Mi43IDIzLjEgMTEuNWMxOS02LjEgMjUuMi03LjUgMzIuMi05LjdsMi42IDExYy0xMi42IDEyLjYgMS40IDE2LjggNi41IDE5LjRsLTEzLjYtNjEgMTIgMjguM2M0LjItMS4zIDcuMy0yLjEgNy4zLTIuMWwyLjYgOC42cy0zLjEgMS02LjMgMi4xbDguOSAyMSAzMy44LTY1LjctMjAuNyA2MWM0Mi40LTI0LjEgODEuNC0zNi43IDEzMi0zNS45IDY3IDEgMTY3LjMgNDAuOCAxOTkuOCAxMzkuOCAuOCAyLjEgMCAyLjYtLjggLjN6bS00MDgtMTEzLjRzMS44LS41IDQuMi0xLjNsOS40IDcuNmMtLjQgMC0zLjQtLjMtMTEuMyAyLjRsLTIuNC04LjZ6bTE0My44IDM4LjVjLTEuNi0uNi0yNi41LTQuOC0zMy4zIDIwLjdsMjEuNyAxNyAxMS41LTM3Ljd6TTMxOC40IDY3LjFjLTU4LjQgMC0xMDYuMSAxMi0xMTUgMTQuNGwwIC44YzguNCAyLjEgMTQuNCA0LjIgMjEuMiAxMS44bDEuNiAuM2M2LjYtMS44IDQ5LTEzLjkgMTEwLjItMTMuOSAxODAuMiAwIDMwMS43IDExNi44IDMwMS43IDIyMy40bDAgMTBjMCAxLjMgLjggMi42IDEuMSAuNSAuNS0yLjEgLjgtOC42IC44LTE5LjYgLjMtODMuOC05Ni42LTIyNy42LTMyMS42LTIyNy42ek01MjkuNSAyMzYuOGMxLjMtNS44IDAtMTIuMy03LjMtMTMuMS05LjYtMS4xLTE2LjEgMjMuOC0xNyAzMy41LS44IDUuNS0xLjMgMTQuOSA2IDE0LjkgNC43IDAgOS43LS45IDE4LjMtMzUuNHpNNDY4IDI3OS43Yy0yLjYtLjgtOS40LS44LTEyLjYgMTAuNS0xLjggNi44IC41IDEzLjQgNiAxNC43IDMuNyAxLjEgOC45IC41IDExLjgtMTAuNyAyLjYtOS45LTEuOC0xMy42LTUuMi0xNC40em0yMyAyMWMxLjggLjUgMy4xIDEgNS44IDEuOCAwLTEuOCAuNS04LjQgLjgtMTIuMS0xIDEuMy01LjUgOC4xLTYuNiAxMGwwIC4zeiJdfSxQZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uZCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTk0IDE0NC4zbDAgNDIuNS0xODAuMyAwIDAtNDIuNSAxODAuMyAwem0wIDc5LjhsMCA0Mi41LTE4MC4zIDAgMC00Mi41IDE4MC4zIDB6Il19LE5mcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1c3BzIixpY29uOls1MTIsNTEyLFtdLCJmN2UxIiwiTTQyOC4zIDI0MS43YzI1LjgtNDEuMyAxNS4yLTQ4LjgtMTEuNy00OC44bC0yNyAwYy0uMSAwLTEuNS0xLjQtMTAuOSA4LTExLjIgNS42LTM3LjkgNi4zLTM3LjkgOC43IDAgNC41IDcwLjMtMy4xIDg4LjEgMCA5LjUgMS41LTEuNSAyMC40LTQuNCAzMi0uNSA0LjUgMi40IDIuMyAzLjggLjF6TTMxNi4yIDI2NC4zYzY0LTIxLjMgOTcuMy0yMy45IDEwMi0yNi4yIDQuNC0yLjktNC40LTYuNi0yNi4yLTUuOC01MS43IDIuMi0xMzcuNiAzNy4xLTE3Mi42IDUzLjlsLTMwLjctOTMuMyAxOTYuNiAwYy0yLjctMjguMi0xNTIuOS0yMi42LTMzNy45LTIyLjZMLTUgNDE1LjhjMTk2LjQtOTcuMyAyNTguOS0xMzAuMyAzMjEuMi0xNTEuNXpNNjIuNyA5NmMyNTMuMyA1My43IDMzMCA2NS43IDMzMi4xIDg1LjIgMzYuNCAwIDQ1LjkgMCA1Mi40IDYuNiAyMS4xIDE5LjctMTQuNiA2Ny43LTE0LjYgNjcuNy00LjQgMi45LTQwNi40IDE2MC4yLTQwNi40IDE2MC4yTDQ0OS4zIDQxNS43IDUxNyA5NiA2Mi43IDk2eiJdfSxPZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWxldHRlcmJveGQiLGljb246WzQ0OCw1MTIsW10sImU2MmUiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTA1LjEgMTg3QzY2LjQgMTg3IDM1IDIxOC4zIDM1IDI1N3MzMS40IDcwIDcwLjEgNzBjMjQuOCAwIDQ2LjUtMTIuOCA1OS0zMi4ybC41LS43LS40LS42Yy02LjUtMTAuNi0xMC4yLTIzLjEtMTAuMi0zNi41IDAtMTMuNiAzLjktMjYuMyAxMC42LTM3LjEtMTIuNC0xOS44LTM0LjQtMzIuOS01OS41LTMyLjl6TTIyNCAxODdjLTI0LjggMC00Ni41IDEyLjgtNTkgMzIuMmwtLjUgLjcgLjQgLjZjNi41IDEwLjYgMTAuMiAyMy4xIDEwLjIgMzYuNSAwIDEzLjYtMy45IDI2LjMtMTAuNiAzNy4xIDEyLjQgMTkuNyAzNC40IDMyLjkgNTkuNSAzMi45IDI0LjggMCA0Ni41LTEyLjggNTktMzIuMmwuNS0uNy0uNC0uNmMtNi41LTEwLjYtMTAuMi0yMy4xLTEwLjItMzYuNSAwLTEzLjYgMy45LTI2LjMgMTAuNi0zNy4xLTEyLjQtMTkuNy0zNC40LTMyLjktNTkuNS0zMi45em0xMTguOSAwYy0yNC44IDAtNDYuNSAxMi44LTU5IDMyLjJsLS41IC43IC40IC42YzYuNSAxMC42IDEwLjIgMjMuMSAxMC4yIDM2LjUgMCAxMy42LTMuOSAyNi4zLTEwLjYgMzcuMSAxMi40IDE5LjggMzQuNCAzMi45IDU5LjUgMzIuOSAzOC43IDAgNzAuMS0zMS4zIDcwLjEtNzBzLTMxLjQtNzAtNzAuMS03MHoiXX0sUmZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hbmRhbG9yaWFuIixpY29uOlszODQsNTEyLFtdLCJmNTBmIiwiTTIwMC42IDUxMS45Yy0xLTMuMy0xLjctMTUuOC0xLjQtMjQuNiAuNi0xNS45IDEtMjQuNyAxLjQtMjguOCAuNi02LjIgMi45LTIwLjcgMy4zLTIxLjQgLjYtMSAuNC0yNy45LS4yLTMzLjEtLjMtMi42LS42LTExLjktLjctMjAuNy0uMS0xNi41LS41LTIwLjEtMi43LTI0LjgtMS4xLTIuMy0xLjItMy44LTEtMTEuNCAuMi00LjIgLjEtOC41LS4zLTEyLjctMi0xMy0zLjUtMjcuNy0zLjItMzMuOXMuNC03LjEgMi4xLTkuN2MzLjEtNC43IDYuNS0xNCA4LjYtMjMuMyAyLjMtOS45IDMuOS0xNy4yIDQuNi0yMC43IDEuMS01LjEgMi42LTEwLjEgNC40LTE1LjEgMi4zLTYuMiAyLjUtMTUuNCAuNC0xNS40LS4zIDAtMS40IDEuMi0yLjQgMi43cy00LjggNC44LTguMyA3LjRjLTguNCA2LjEtMTEuNyA5LjQtMTIuNyAxMi42cy0xIDcuMi0uMiA3LjhjLjMgLjIgMS4zIDIuNCAyLjEgNC45IDEuNiA1IDEuOSAxMC4zIC43IDE1LjQtLjQgMS44LTEgNS41LTEuNSA4LjJzLTEgNi41LTEuMyA4LjJjLS4yIDEuNS0uNyAzLTEuNSA0LjMtMSAxLTEuMSAuOS0yLjEtLjUtLjctMS41LTEuMi0zLjEtMS40LTQuNy0uMi0xLjctMS42LTcuMS0zLjEtMTEuOS0zLjMtMTAuOS0zLjUtMTYuMi0xLTIxIC44LTEuNCAxLjQtMyAxLjctNC42IDAtMi40LTIuMi01LjMtNy40LTkuOS03LTYuMi04LjYtNy45LTEwLjItMTEuMy0xLjctMy42LTMuMS00LjEtNC41LTEuNS0xLjggMy0yLjYgOS4xLTMgMjJsLS4zIDEyLjIgMiAyLjJjMy4yIDMuNyAxMi4xIDE2LjUgMTMuOCAxOS44IDMuNCA2LjcgNC4zIDExLjcgNC40IDIzLjZzMSAyMi44IDIgMjQuN2MuNCAuNyAuNSAxLjQgLjMgMS41cy40IDIuMSAxLjMgNC4zYzEgMi45IDEuNyA1LjkgMi4xIDkgLjQgMy41IC45IDcgMS43IDEwLjQgMi4yIDkuNiAyLjggMTQuMSAyLjQgMjAuMS0uMiAzLjMtLjUgMTEuMS0uNyAxNy4zLTEuMyA0MS44LTEuOCA1OC0yIDYxLjItLjEgMi0uNCAxMS41LS42IDIxLjEtLjQgMTYuMy0xLjMgMjcuNC0yLjQgMjguNi0uNiAuNy04LjEtNC45LTEyLjUtOS41LTMuOC0zLjktNC00LjgtMi44LTkuOSAuNy0zIDIuMy0xOC4zIDMuMy0zMi42IC40LTQuOCAuOC0xMC41IDEtMTIuNyAuOC05LjQgMS43LTIwLjMgMi42LTM0LjggLjYtOC41IDEuMy0xNi40IDEuNy0xNy43cy45LTkuOSAxLjEtMTkuMWwuNC0xNi44LTIuMy00LjNjLTEuNy0zLjMtNC45LTYuOS0xMy4yLTE1LjMtNi02LjEtMTEuOC0xMi4zLTEyLjktMTMuOGwtMi0yLjggLjgtMTAuOWMxLjEtMTUuNyAxLjEtNDguNiAwLTU5LjFsLS45LTguNy0zLjMtNC41Yy01LjktOC4xLTUuOC03LjctNi4yLTMzLjMtLjEtNi4xLS40LTExLjUtLjYtMTIuMS0uOC0xLjktMy0yLjctOC41LTMtOC45LS42LTExLTEuOS0yMy44LTE0LjYtNi4yLTYtMTIuMy0xMi0xMy44LTEzLjItMi44LTIuNC0yLjgtMi0uNi05LjZsMS40LTQuNi0xLjctM2MtLjgtMS40LTEuNi0yLjgtMi42LTQuMS0xLjMtMS41LTUuNS0xMC45LTYtMTMuNS0uMi0uNy0uMi0xLjQtLjEtMi4xcy41LTEuMyAuOS0xLjhjMi4yLTIuOSAzLjQtNS43IDQuNS0xMC43IDIuMy0xMS4yIDcuNy0yNi4xIDEwLjYtMjkuMiAzLjItMy41IDcuNy0xIDkuNCA1IDEuMyA0LjggMS40IDkuOCAuMSAxOC42LS41IDMuNy0uOSA3LjQtMSAxMS4xIDAgNCAuMiA0LjcgMi4zIDcuNCAzLjMgNC40IDcuNyA3LjQgMTUuMiAxMC41IDEuNyAuNyAzLjMgMS43IDQuNyAyLjggMTEuMiAxMC43IDE4LjYgMTYuMiAyMi45IDE2LjkgNS4yIC44IDggNC41IDEwIDEzLjQgMS4zIDUuNyA0IDExLjEgNS41IDExLjEgMS4yLS4yIDIuMy0uNyAzLjMtMS40IDItMS4yIDIuMi0xLjcgMi4yLTQuMi0uMy02LS45LTExLjktMi0xNy44LS40LTEuNy0uOC00LjEtLjktNS40cy0uNi0zLjgtMS01LjdjLTIuNi0xMS4yLTMuNi0xNS41LTQuMS0xNi0xLjYtMi00LjEtMTAuMi00LjktMTUuOS0xLjYtMTEuMS00LTE0LjItMTIuOS0xNy40LTQuOS0xLjgtOS40LTQuNS0xMy4zLTcuOS0xLjItMS00LTMuMi02LjQtNS4xcy00LjQtMy41LTQuNi0zLjhjLS44LS43LTEuNy0xLjQtMi43LTItNi4yLTQuMi04LjgtNy0xMS4zLTEybC0yLjQtNWMtLjEtOC43LS4zLTE3LjMtLjQtMjZsNi45LTYuNmM0LTMuOCA4LjUtNy40IDEwLjYtOC40IDMuMy0xLjcgNC40LTEuOSAxMS40LTIgOC41LS4yIDEwLjEgMCAxMS43IDEuNnMxLjQgNi40LS4zIDguNWMtLjYgLjctMS4xIDEuNS0xLjMgMi4zIDAgLjYtMi42IDQuOS01LjQgOS0xLjEgMi4yLTEuOSA0LjUtMi40IDYuOCAyMC40IDEzLjQgMjEuNiAzLjggMTQuMSAyOWwxMS40IDIuNWMzLjEtOC43IDYuNS0xNy4zIDguNi0yNi4yIC4zLTcuNi0xMi00LjItMTUuNC04LjctMi4zLTUuOSAzLjEtMTQuMiA2LjEtMTkuMiAxLjYtMi4zIDYuNi00LjcgOC44LTQuMSAuOSAuMiA0LjItLjQgNy40LTEuMyAyLjUtLjggNS0xLjMgNy41LTEuNyAyLS4yIDQuMS0uNyA2LTEuMyAzLjctMS4xIDQuNS0xLjIgNi4zLS40IDEuOSAuNiAzLjggMS4xIDUuOCAxLjQgMi4xIC4zIDQuMSAuOSA2IDEuOSAxLjYgLjkgMy4zIDEuNyA1IDIuMiAyLjUgLjcgMyAuNiA3LTEuN0wyMjYgNS40IDIzNi43IDVjMTAuNC0uNCAxMC44LS41IDE1LjMtMi43TDI1Ni41IDAgMjU5IDEuNGMxLjggMSAzLjEgMi43IDQuOSA2IDIuNCA0LjUgMi40IDQuNiAxLjQgNy40LS45IDIuNC0uOSAzLjMtLjEgNi40IC41IDIgMS4yIDQgMi4xIDUuOSAuNiAxLjMgMS4xIDIuNiAxLjMgNCAuMyA0LjMgMCA1LjMtMi40IDYuOS0yLjIgMS41LTcgNy45LTcgOS4zLS4yIDEtLjYgMi0xLjEgMy01IDExLjUtNi44IDEzLjYtMTQuMyAxNy05LjIgNC4yLTEyLjMgNS4yLTE2LjIgNS4yLTMuMSAwLTQgLjItNC41IDEuMy0xLjIgMS40LTIuNSAyLjctNC4xIDMuNy0xLjggMS4yLTMuMyAyLjktNC40IDQuOC0uNSAxLjItMS40IDIuMi0yLjUgMi45LS45IC40LTEuOCAxLTIuNSAxLjctMi4yIDEuOS00LjYgMy43LTcgNS40LTMuMyAyLjMtNi45IDUtNy45IDYtLjcgLjctMS41IDEuMy0yLjQgMS43LS44IC40LTEuNiAuOS0yLjEgMS42LTEuMyAxLjQtMS41IDIuMS0xLjEgNC42IC4zIDIgLjggNCAxLjQgNS45IDEuMyAzLjggMS4zIDcuOSAwIDEwLjZzLS45IDYuNyAxLjQgOS42YzIgMi42IDIuMiA0LjYgLjcgOC44LS44IDIuOS0xLjEgNS45LTEuMSA4LjkgMCA0LjkgLjIgNi4zIDEuNSA4LjRzMS44IDIuNSAzLjIgMi4zYzItLjIgMi4zLTEuMSA0LjctMTIuMSAyLjItMTAgMy43LTExLjkgMTMuOC0xNy4xIDIuOS0xLjUgNy41LTQgMTAtNS40czYuOC0zLjcgOS40LTQuOWM1LjktMi42IDExLjItNi42IDE1LjItMTEuNyA3LjEtOC44IDEwLTE2LjIgMTIuOC0zMy4zIC40LTIuOCAxLjMtNS40IDIuOS03LjcgMS40LTIuMiAyLjQtNC43IDIuOS03LjMgMS01LjMgMi45LTkuMSA1LjYtMTEuNSA0LjctNC4yIDYtMS4xIDQuNiAxMC45LS41IDMuOS0xLjEgMTAuMy0xLjQgMTQuNGwtLjYgNy40YzMgMi43IDUuOSA1LjUgOC45IDguMmwuMSA4LjRjLjEgNC42IC41IDkuNSAuOSAxMC45bC44IDIuNS02LjQgNi4zYy04LjUgOC4zLTEyLjkgMTMuOS0xNi44IDIxLjYtMS44IDMuNS0zLjcgNy4xLTQuNCA4LTIuMiAzLjEtNi41IDEzLTguOCAyMC4zbC0yLjMgNy4yLTcgNi41Yy0zLjggMy42LTggNy4yLTkuMiA4LjItMyAyLjMtNC4zIDUuMS00LjMgMTAtLjEgMi41IC40IDUgMS42IDcuMyAuOCAxLjYgMS41IDMuMiAyLjEgNC44IC4zIDEgLjkgMiAxLjYgMi45IDEuNCAxLjYgMS45IDE2LjEgLjggMjMuMi0uNyA0LjUtMy42IDEyLTQuNyAxMi0xLjggMC00LjEgOS4zLTUuMSAyMC43LS4yIDItLjYgNS45LTEgOC43cy0xIDEwLTEuNCAxNmMtLjggMTIuMi0uMiAxOC44IDIgMjMuMiAzLjQgNi43IC41IDEyLjctMTEgMjIuOGwtNCAzLjUgLjEgNS4yYy4xIDMgLjQgNiAxLjEgOC45IDQuNiAxNiA0LjcgMTYuOSA0LjQgMzcuMS0uNSAyNi40LS4zIDQwLjMgLjYgNDQuMiAuNSAyLjMgLjkgNC42IDEuMSA3IC4yIDIgLjcgNS4zIDEuMSA3LjQgLjUgMi4zIC44IDExIC44IDIyLjdsMCAxOS4xLTEuOCAyLjZjLTIuNyAzLjktMTUuMSAxMy41LTE1LjUgMTIuM2wuMSAwem0yOS41LTQ1LjFjLS4yLS4zLS4zLTYuOS0uMy0xNC42IDAtMTQuMS0uOS0yNy41LTIuMy0zNC40LS40LTItLjgtOS43LS45LTE3LjEtLjItMTEuOS0xLjQtMjQuNC0yLjYtMjYuNC0uNy0xLjEtMy0xNy43LTMtMjEuMyAwLTQuMiAxLTYgNS4zLTkuMXM0LjktMy4xIDUuNS0uN2MuMyAxLjEgMS40IDUuNiAyLjYgMTAgMy45IDE1LjEgNC4xIDE2LjMgNCAyMS43LS4xIDUuOC0uMSA2LjEtMS43IDE3LjctMSA3LjEtMS4yIDEyLjQtMSAyOC40IC4yIDE5LjQtLjYgMzUuNy0yIDQxLjMtLjcgMi44LTIuOCA1LjUtMy40IDQuNGwtLjEgMHptLTcxLTM3LjZjLS44LTMuNi0xLjMtNy4yLTEuNy0xMC44cy0xLTcuMi0xLjctMTAuOGMtLjUtMi4xLS45LTQuMy0xLTYuNS0uMy0zLjItLjktNy41LTEuMy05LjUtMS00LjgtMy4zLTE5LjQtMy40LTIxLjEgMC0uNy0uMy00LS43LTcuNC0uNy02LjItLjgtMjcuNy0uMi0yOC4zIDEtMSA2LjYgMi44IDExLjMgNy40bDUuMyA1LjMtLjQgNi41Yy0uMiAzLjYtLjYgMTAuMi0uOCAxNC44LS41IDEzLjMtLjcgOC43LTEuNiAyOC40LS44IDE3LjQtMS45IDMxLjMtMi42IDMyLS4xIC4xLS4yIC4xLS4yIC4ycy0uMiAwLS4zIDAtLjIgMC0uMy0uMS0uMS0uMS0uMi0uMmwwIDB6TTcyIDE2Mi42YzIxLjEgMTIuOCAxNy44IDE0LjIgMjguNSAxNy43IDEzIDQuMyAxOC45IDcuMSAyMy4yIDE2LjktNDMuNyAzNi4xLTY5IDU3LjktNzYuNyA3MC45LTMxIDUyLTYgMTAxLjYgNjIuOCA4Ny4yLTE0LjIgMjkuMi03OCAyOC42LTk4LjctNC45LTI0LjctNDAtMjIuMS0xMTguMyA2MS0xODcuN2wwIDB6bTIxMC44IDE3OWM1Ni43IDYuOSA4Mi4zLTM3LjcgNDYuNS04OS4yIDAgMC0yNi45LTI5LjMtNjQuMy02OCAzLTE1LjUgOS41LTMyLjEgMzAuNi01My44IDg5LjIgNjMuNSA5MiAxNDEuNiA5Mi41IDE0OS40IDQuMyA3MC42LTc4LjcgOTEuMi0xMDUuMyA2MS43bDAgMHoiXX0sWkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNsYWNrIixpY29uOls0NDgsNTEyLFs2MjQ0Nywic2xhY2staGFzaCJdLCJmMTk4IiwiTTk0LjEgMzE1LjFjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFTMCAzNDEgMCAzMTUuMSAyMS4yIDI2OCA0Ny4xIDI2OGw0Ny4xIDAgMCA0Ny4xem0yMy43IDBjMC0yNS45IDIxLjItNDcuMSA0Ny4xLTQ3LjFTMjEyIDI4OS4yIDIxMiAzMTUuMWwwIDExNy44YzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xcy00Ny4xLTIxLjItNDcuMS00Ny4xbDAtMTE3Ljh6bTQ3LjEtMTg5Yy0yNS45IDAtNDcuMS0yMS4yLTQ3LjEtNDcuMVMxMzkgMzIgMTY0LjkgMzIgMjEyIDUzLjIgMjEyIDc5LjFsMCA0Ny4xLTQ3LjEgMHptMCAyMy43YzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xUzE5MC44IDI0NCAxNjQuOSAyNDRMNDcuMSAyNDRDMjEuMiAyNDQgMCAyMjIuOCAwIDE5Ni45czIxLjItNDcuMSA0Ny4xLTQ3LjFsMTE3LjggMHptMTg5IDQ3LjFjMC0yNS45IDIxLjItNDcuMSA0Ny4xLTQ3LjFTNDQ4IDE3MSA0NDggMTk2LjkgNDI2LjggMjQ0IDQwMC45IDI0NGwtNDcuMSAwIDAtNDcuMXptLTIzLjcgMGMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMVMyMzYgMjIyLjggMjM2IDE5Ni45bDAtMTE3LjhDMjM2IDUzLjIgMjU3LjIgMzIgMjgzLjEgMzJzNDcuMSAyMS4yIDQ3LjEgNDcuMWwwIDExNy44em0tNDcuMSAxODljMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFTMzA5IDQ4MCAyODMuMSA0ODAgMjM2IDQ1OC44IDIzNiA0MzIuOWwwLTQ3LjEgNDcuMSAwem0wLTIzLjdjLTI1LjkgMC00Ny4xLTIxLjItNDcuMS00Ny4xUzI1Ny4yIDI2OCAyODMuMSAyNjhsMTE3LjggMGMyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMXMtMjEuMiA0Ny4xLTQ3LjEgNDcuMWwtMTE3LjggMHoiXX0sWDNlPVpFZSxGZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5nZWxsaXN0IixpY29uOlszODQsNTEyLFtdLCJmMjA5IiwiTTMxNS42IDIxNS40YzExLjctMzIuNiA0NS40LTEyNi45IDQ1LjQtMTU3LjEgMC0yNi42LTE1LjctNDguOS00My43LTQ4LjktNDQuNiAwLTg0LjYgMTMxLjctOTcuMSAxNjMuMS05LjctMjguNS01NS4xLTE3Mi41LTk1LjEtMTcyLjUtMzEuMSAwLTQ1LjcgMjIuOS00NS43IDUxLjcgMCAzNS4zIDM0LjIgMTI2LjggNDYuNiAxNjItNi4zLTIuMy0xMy4xLTQuMy0yMC00LjMtMjMuNCAwLTQ4LjMgMjkuMS00OC4zIDUyLjYgMCA4LjkgNC45IDIxLjQgOCAyOS43LTM2LjkgMTAtNTEuMSAzNC42LTUxLjEgNzEuNy0uMSA3Mi4yIDY4LjMgMTQ4LjYgMTY0LjUgMTQ4LjYgMTE4IDAgMTkxLjQtODguNiAxOTEuNC0yMDIuOSAwLTQzLjEtNi45LTgyLTU0LjktOTMuN3pNMjgwLjIgMTA4YzQtMTIuMyAyMS4xLTY0LjMgMzcuMS02NC4zIDguNiAwIDEwLjkgOC45IDEwLjkgMTYgMCAxOS4xLTM4LjYgMTI0LjYtNDcuMSAxNDhsLTM0LTYgMzMuMS05My43ek0xMTAuOCA0OC4zYzAtMTEuOSAxNC41LTQ1LjcgNDYuMyA0Ny4xbDM0LjYgMTAwLjNjLTE1LjYtMS4zLTI3LjctMy0zNS40IDEuNC0xMC45LTI4LjgtNDUuNS0xMTkuNy00NS41LTE0OC44ek0xMDguNSAyNDRjMjkuMyAwIDY3LjEgOTQuNiA2Ny4xIDEwNy40IDAgNS4xLTQuOSAxMS40LTEwLjYgMTEuNC0yMC45IDAtNzYuOS03Ni45LTc2LjktOTcuNyAuMS03LjcgMTIuNy0yMS4xIDIwLjQtMjEuMXpNMjkyLjggNDMwLjNjLTI5LjEgMzItNjYuMyA0OC42LTEwOS43IDQ4LjYtNTkuNCAwLTEwNi4zLTMyLjYtMTI4LjktODguMy0xNy4xLTQzLjQgMy44LTY4LjMgMjAuNi02OC4zIDExLjQgMCA1NC4zIDYwLjMgNTQuMyA3My4xIDAgNC45LTcuNyA4LjMtMTEuNyA4LjMtMTYuMSAwLTIyLjQtMTUuNS01MS4xLTUxLjQtMjkuNyAyOS43IDIwLjUgODYuOSA1OC4zIDg2LjkgMjYuMSAwIDQzLjEtMjQuMiAzOC00MiAzLjcgMCA4LjMgLjMgMTEuNy0uNiAxLjEgMjcuMSA5LjEgNTkuNCA0MS43IDYxLjcgMC0uOSAyLTcuMSAyLTcuNCAwLTE3LjQtMTAuNi0zMi42LTEwLjYtNTAuMyAwLTI4LjMgMjEuNy01NS43IDQzLjctNzEuNyA4LTYgMTcuNy05LjcgMjcuMS0xMy4xIDkuNy0zLjcgMjAtOCAyNy40LTE1LjQtMS4xLTExLjItNS43LTIxLjEtMTYuOS0yMS4xLTI3LjcgMC0xMjAuNiA0LTEyMC42LTM5LjcgMC02LjcgLjEtMTMuMSAxNy40LTEzLjEgMzIuMyAwIDExNC4zIDggMTM4LjMgMjkuMSAxOC4xIDE2LjEgMjQuMyAxMTMuMi0zMSAxNzQuN3ptLTk4LjYtMTI2YzkuNyAzLjEgMTkuNyA0IDI5LjcgNi03LjQgNS40LTE0IDEyLTIwLjMgMTkuMS0yLjgtOC41LTYuMi0xNi44LTkuNC0yNS4xeiJdfSxCZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5kcm9pZCIsaWNvbjpbNTc2LDUxMixbXSwiZjE3YiIsIk00MjAuNSAyNTMuOWEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS0yNjUuMSAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMjczLjctOTYuNWw0Ny45LTgzYy44LTEuMSAxLjMtMi40IDEuNS0zLjhzLjItMi43LS4xLTQuMS0uOS0yLjYtMS43LTMuNy0xLjgtMi0zLTIuNy0yLjUtMS4xLTMuOS0xLjMtMi43IDAtNCAuNC0yLjUgMS4xLTMuNiAxLjktMS45IDItMi41IDMuMmwtNDguNSA4NC4xYy0zOC44LTE3LjQtODAuOC0yNi40LTEyMy4zLTI2LjRzLTg0LjUgOS0xMjMuMyAyNi40TDExNi4yIDY0LjRjLS42LTEuMi0xLjUtMi4zLTIuNS0zLjJzLTIuMy0xLjUtMy42LTEuOS0yLjctLjUtNC0uNC0yLjcgLjYtMy45IDEuMy0yLjIgMS42LTMgMi43LTEuNCAyLjQtMS43IDMuNy0uMyAyLjctLjEgNC4xIC44IDIuNiAxLjUgMy44bDQ3LjkgODNDNjQuNSAyMDIuMiA4LjIgMjg1LjUgMCAzODRsNTc2IDBjLTguMi05OC41LTY0LjUtMTgxLjgtMTQ2LjktMjI2LjZ6Il19LEhmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWV0dXAiLGljb246WzU3Niw1MTIsW10sImYyZTAiLCJNMTMxLjEgNDE0LjNjMS4xIDUuNy0yLjMgMTEuMS04IDEyLjMtNS40IDEuMS0xMC45LTIuMy0xMi04LTEuMS01LjQgMi4zLTExLjEgNy43LTEyLjNzMTEuMSAyLjMgMTIuMyA4em0xNDMuMSA3MS40Yy02LjMgNC42LTggMTMuNC0zLjcgMjAgNC42IDYuNiAxMy40IDguMyAyMCAzLjcgNi4zLTQuNiA4LTEzLjQgMy40LTIwLTQuMi02LjUtMTMuMS04LjMtMTkuNy0zLjd6bS04Ni00NjIuM2ExMS44IDExLjggMCAxIDAgLTQuOS0yMyAxMS44IDExLjggMCAxIDAgNC45IDIzek02Ni41IDIyNi4zYTIyLjIgMjIuMiAwIDEgMCAtMjQuNyAzNi45IDIyLjIgMjIuMiAwIDEgMCAyNC43LTM2Ljl6bTI3Mi0xNzAuOWEyMi4xIDIyLjEgMCAxIDAgLTIyLjQtMzggMjIuMSAyMi4xIDAgMSAwIDIyLjQgMzh6bS0xOTEuMSA1OGExNi45IDE2LjkgMCAxIDAgLTE4LjgtMjggMTYuOSAxNi45IDAgMSAwIDE4LjggMjh6bTM3Mi4zIDE1NmMtNy40IDEuNy0xMi4zIDkuMS0xMC42IDE2LjkgMS40IDcuNCA4LjkgMTIuMyAxNi4zIDEwLjYgNy40LTEuNCAxMi4zLTguOSAxMC42LTE2LjYtMS41LTcuNC04LjktMTIuMy0xNi4zLTEwLjl6bTM5LjctNTYuOGExMC4xIDEwLjEgMCAxIDAgLTE5LjggNC4zIDEwLjEgMTAuMSAwIDEgMCAxOS44LTQuM3ptLTgwLjMtNzMuN2ExOC44IDE4LjggMCAxIDAgMjAuNyAzMS4zIDE4LjggMTguOCAwIDEgMCAtMjAuNy0zMS4zem0tNi4zIDEzOS40YzI2LjMgNDMuMSAxNS4xIDEwMC0yNi4zIDEyOS4xLTE3LjQgMTIuMy0zNy4xIDE3LjctNTYuOSAxNy4xLTEyIDQ3LjEtNjkuNCA2NC42LTEwNS4xIDMyLjYtMS4xIC45LTIuNiAxLjctMy43IDIuOS0zOS4xIDI3LjEtOTIuMyAxNy40LTExOS40LTIyLjMtOS43LTE0LjMtMTQuNi0zMC42LTE1LjEtNDYuOS02NS40LTEwLjktOTAtOTQtNDEuMS0xMzkuNy0yOC4zLTQ2LjkgLjYtMTA3LjQgNTMuNC0xMTQuOSAyNS4xLTY2LjIgMTA3LjYtOTcuNiAxNjMuNi01NC4yIDY3LjQtMjIuMyAxMzYuMyAyOS40IDEzMC45IDEwMS4xIDQxLjEgMTIuNiA1Mi44IDY2LjkgMTkuNyA5NS4yem0tNzAgNzQuM2MtMy4xLTIwLjYtNDAuOS00LjYtNDMuMS0yNy4xLTMuMS0zMiA0My43LTEwMS4xIDQwLTEyOC0zLjQtMjQtMTkuNC0yOS4xLTMzLjQtMjkuNC0xMy40LS4zLTE2LjkgMi0yMS40IDQuNi0yLjkgMS43LTYuNiA0LjktMTEuNy0uMy02LjMtNi0xMS4xLTExLjctMTkuNC0xMi45LTEyLjMtMi0xNy43IDItMjYuNiA5LjctMy40IDIuOS0xMiAxMi45LTIwIDkuMS0zLjQtMS43LTE1LjQtNy43LTI0LTExLjQtMTYuMy03LjEtNDAgNC42LTQ4LjYgMjAtMTIuOSAyMi45LTM4IDExMy4xLTQxLjcgMTI1LjEtOC42IDI2LjYgMTAuOSA0OC42IDM2LjkgNDcuMSAxMS4xLS42IDE4LjMtNC42IDI1LjQtMTcuNCA0LTcuNCA0MS43LTEwNy43IDQ0LjYtMTEyLjYgMi0zLjQgOC45LTggMTQuNi01LjEgNS43IDMuMSA2LjkgOS40IDYgMTUuMS0xLjEgOS43LTI4IDcwLjktMjguOSA3Ny43LTMuNCAyMi45IDI2LjkgMjYuNiAzOC42IDQgMy43LTcuMSA0NS43LTkyLjYgNDkuNC05OC4zIDQuMy02LjMgNy40LTguMyAxMS43LTggMy4xIDAgOC4zIC45IDcuMSAxMC45LTEuNCA5LjQtMzUuMSA3Mi4zLTM4LjkgODcuNy00LjYgMjAuNiA2LjYgNDEuNCAyNC45IDUwLjYgMTEuNCA1LjcgNjIuNSAxNS43IDU4LjUtMTEuMXptNS43IDkyLjNhMjMuMyAyMy4zIDAgMSAwIDI2LjIgMzguNCAyMy4zIDIzLjMgMCAxIDAgLTI2LjItMzguNHoiXX0scWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucy1maSIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMiIsIk0xMTQuNCAyMjRsOTIuNCAwLTE1LjIgNTEuMi03Ni40IDAgMCAxNTcuOGMwIDgtMi44IDkuMiA0LjQgMTBsNTkuNiA1LjYgMCAzNC40LTE3OS4yIDAgMC0zNS4yIDI5LjItMi44YzcuMi0uOCA5LjItMy4yIDkuMi0xMC44bDAtMTU1LjhjMC0zLjItNC0zLjItOC0zLjJsLTMwLjQgMCAwLTUxLjIgMzguNCAwIDAtMjguOGMwLTY4IDM2LjQtOTYgMTA2LTk2IDQ2LjggMCA4OC44IDExLjIgODguOCA3Mi40TDE2My42IDE4MGMuNC0yNS42LTYtMzEuNi0yMi40LTMxLjYtMjUuMiAwLTI2IDEzLjYtMjYgMzcuNmwwIDMyYzAgMy4yLTQuOCA2LS44IDZ6TTM4NCA0ODNsLTE0MC44IDAgMC0zNC40IDI4LTMuNmM3LjItLjggMTAuNC0yLjQgMTAuNC0xMGwwLTE0OGMwLTUuNi00LTkuMi05LjItMTAuOGwtMzMuMi04LjggOS4yLTQwLjQgMTEwIDAgMCAyMDhjMCA4LTMuNiA4LjggNCAxMGwyMS42IDMuNiAwIDM0LjR6TTM1NCAxMzUuOGwxMi40IDQ1LjYtMTAgMTAtNDIuOC0yMi44LTQyLjggMjIuOC0xMC0xMCAxMi40LTQ1LjYtMzAtMzYuNCA0LjgtMTAgMzggMCAyMS4yLTM4LjQgMTIuOCAwIDIxLjIgMzguNCAzOCAwIDQuOCAxMy4yLTMwIDMzLjJ6Il19LFZmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWxmZWQiLGljb246WzU3Niw1MTIsW10sImYzZDgiLCJNMzg0LjkgMTkzLjljMC00Ny40LTU1LjItNDQuMi05NS40LTI5LjgtMS4zIDM5LjQtMi41IDgwLjctMyAxMTkuOCAuNyAyLjggMi42IDYuMiAxNS4xIDYuMiAzNi44IDAgODMuNC00Mi44IDgzLjMtOTYuMnpNMTkwLjQgMjY2LjFjLjIgMCA2LjUtMi43IDExLjItMi43IDI2LjYgMCAyMC43IDQ0LjEtMTQuNCA0NC4xLTIxLjUgMC0zNy4xLTE4LjEtMzcuMS00MyAwLTQyIDQyLjktOTUuNiAxMDAuNy0xMjYuNSAxLTEyLjQgMy0yMiAxMC41LTI4LjIgMTEuMi05IDI2LjYtMy41IDI5LjUgMTEuMSA3Mi4yLTIyLjIgMTM1LjIgMSAxMzUuMiA3MiAwIDc3LjktNzkuMyAxNTIuNi0xNDAuMSAxMzguMi0uMSAzOS40IC45IDc0LjQgMi43IDEwMGwwIC4yYy4yIDMuNCAuNiAxMi41LTUuMyAxOS4xLTkuNiAxMC42LTMzLjQgMTAtMzYuNC0yMi4zLTQuMS00NC40IC4yLTIwNi4xIDEuNC0yNDIuNS0yMS41IDE1LTU4LjUgNTAuMy01OC41IDc1LjkgLjIgMi41IC40IDQgLjYgNC42ek04IDE4MS4xcy0uMSAzNy40IDM4LjQgMzcuNGwzMCAwIDIyLjQgMjE3LjJzMCA0NC4zIDQ0LjcgNDQuM2wyODguOSAwczQ0LjctLjQgNDQuNy00NC4zbDIyLjQtMjE3LjIgMzAgMHMzOC40IDEuMiAzOC40LTM3LjRjMCAwIC4xLTM3LjQtMzguNC0zNy40bC0zMC4xIDBjLTcuMy0yNS42LTMwLjItNzQuMy0xMTkuNC03NC4zbC0yOCAwIDAtMTkuMXMtMi43LTE4LjQtMjEuMS0xOC40bC04NS44IDBTMjI0IDMxLjkgMjI0IDUwLjNsMCAxOS4xLTI4LjEgMHMtMTA1IDQuMi0xMjAuNSA3NC4zbC0yOSAwUzggMTQyLjUgOCAxODEuMXoiXX0samZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwYmVnaW5uZXIiLGljb246WzUxMiw1MTIsW10sImYyOTciLCJNNDYzLjIgMzIyLjRjNTYuMiA2NC4zIDQuMiAxNTcuNi05MS45IDE1Ny42LTM5LjYgMC03OC44LTE3LjctMTAwLjEtNTAtNi45IC40LTIyLjcgLjQtMjkuNiAwLTIxLjQgMzIuNC02MC42IDUwLTEwMC4xIDUwLTk1LjUgMC0xNDguMy05My05MS45LTE1Ny42LTc5LjEtMTMxLjkgMzEuMy0yOTAuNCAyMDYuOC0yOTAuNCAxNzUuNiAwIDI4NS45IDE1OC42IDIwNi44IDI5MC40em0tMzM5LjYtODNsNDEuNSAwIDAtNTguMS00MS41IDAgMCA1OC4xem0yMTcuMiA4Ni4xbDAtMjMuOGMtNjAuNSAyMC45LTEzMi40IDkuMi0xODcuNi0zNGwuMiAyNC45YzUxLjEgNDYuNCAxMzEuNyA1Ny45IDE4Ny4zIDMyLjl6TTE5MCAyMzkuNGwxNjYuMSAwIDAtNTguMS0xNjYuMSAwIDAgNTguMXoiXX0sVWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpYXNwb3JhIixpY29uOls0NDgsNTEyLFtdLCJmNzkxIiwiTTIxOS43IDM1NC42Yy0xLjQgMC04OCAxMTkuOS04OC43IDExOS45UzQ0LjQgNDE0IDQ0IDQxMy4zIDEzMC42IDI4Ny41IDEzMC42IDI4NS44YzAtMi4yLTEyOS42LTQ0LTEzNy42LTQ3LjEtMS4zLS41IDMxLjQtMTAxLjggMzEuNy0xMDIuMSAuNi0uNyAxNDQuNCA0NyAxNDUuNSA0NyAuNCAwIC45LS42IDEtMS4zIC40LTIgMS0xNDguNiAxLjctMTQ5LjYgLjgtMS4yIDEwNC41LS43IDEwNS4xLS4zIDEuNSAxIDMuNSAxNTYuMSA2LjEgMTU2LjEgMS40IDAgMTM4LjctNDcgMTM5LjMtNDYuMyAuOCAuOSAzMS45IDEwMi4yIDMxLjUgMTAyLjYtLjkgLjktMTQwLjIgNDcuMS0xNDAuNiA0OC44LS4zIDEuNCA4Mi44IDEyMi4xIDgyLjUgMTIyLjlzLTg1LjUgNjMuNS04Ni4zIDYzLjVjLTEtLjItODktMTI1LjUtOTAuOS0xMjUuNWwwIDB6Il19LFdmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwcm9kdWN0LWh1bnQiLGljb246WzUxMiw1MTIsW10sImYyODgiLCJNMzI2LjMgMjE4LjhjMCAyMC41LTE2LjcgMzcuMi0zNy4yIDM3LjJsLTcwLjMgMCAwLTc0LjQgNzAuMyAwYzIwLjUgMCAzNy4yIDE2LjcgMzcuMiAzNy4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNjcuOS0zNy4yYzAtNDcuOS0zOC45LTg2LjgtODYuOC04Ni44bC0xMTkuOSAwIDAgMjQ4IDQ5LjYgMCAwLTc0LjQgNzAuMyAwYzQ3LjkgMCA4Ni44LTM4LjkgODYuOC04Ni44eiJdfSxHZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXVwd29yayIsaWNvbjpbNDQ4LDUxMixbXSwiZTY3YyIsIk01NiAzMmwzMzYgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJ6TTI3MC45IDI3NC4yYzYuNi01Mi45IDI1LjktNjkuNSA1MS40LTY5LjUgMjUuMyAwIDQ0LjkgMjAuMiA0NC45IDQ5LjdzLTE5LjcgNDkuNy00NC45IDQ5LjdjLTI3LjkgMC00Ni4zLTIxLjUtNTEuNC0yOS45em0tMjYuNy00MS44Yy04LjItMTUuNS0xNC4zLTM2LjMtMTkuMi01NS42bC02Mi45IDAgMCA3OC4xYzAgMjguNC0xMi45IDQ5LjQtMzguMiA0OS40Uzg0LjEgMjgzLjQgODQuMSAyNTVsLjMtNzguMS0zNi4yIDAgMCA3OC4xYzAgMjIuOCA3LjQgNDMuNSAyMC45IDU4LjIgMTMuOSAxNS4yIDMyLjggMjMuMiA1NC44IDIzLjIgNDMuNyAwIDc0LjItMzMuNSA3NC4yLTgxLjVsMC01Mi41YzQuNiAxNy4zIDE1LjQgNTAuNSAzNi4yIDc5LjdsLTE5LjMgMTEwLjUgMzYuOCAwIDEyLjgtNzguNGM0LjIgMy41IDguNyA2LjYgMTMuNCA5LjQgMTIuMyA3LjggMjYuNCAxMi4yIDQwLjkgMTIuNmwzLjQgMGM0NS4xIDAgODAuOS0zNC45IDgwLjktODEuOXMtMzUuOS04Mi4yLTgwLjktODIuMmMtNDUuNCAwLTcwLjkgMjkuNy03OC4xIDYwLjFsMCAuMnoiXX0sWWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImN1dHRsZWZpc2giLGljb246WzQ0OCw1MTIsW10sImYzOGMiLCJNMzQ4IDMwNS41Yy0xNy41IDMxLjYtNTcuNCA1NC41LTk2IDU0LjUtNTYuNiAwLTEwNC00Ny40LTEwNC0xMDRzNDcuNC0xMDQgMTA0LTEwNGMzOC42IDAgNzguNSAyMi45IDk2IDU0LjUgMTMuNy01MC45IDQxLjctOTMuMyA4Ny0xMTcuOC00NS4zLTQ5LjYtMTEwLjUtODAuNy0xODMtODAuNy0xMzcgMC0yNDggMTExLTI0OCAyNDhTMTE1IDUwNCAyNTIgNTA0YzcyLjUgMCAxMzcuNy0zMS4xIDE4My04MC43LTQ1LjMtMjQuNS03My4zLTY2LjktODctMTE3Ljh6Il19LEtmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRhcHBzIixpY29uOlszMjAsNTEyLFtdLCJmM2M2IiwiTTExOC4zIDIzOC40YzMuNS0xMi41IDYuOS0zMy42IDEzLjItMzMuNiA4LjMgMS44IDkuNiAyMy40IDE4LjYgMzYuNiA0LjYtMjMuNSA1LjMtODUuMSAxNC4xLTg2LjcgOS0uNyAxOS43IDY2LjUgMjIgNzcuNSA5LjkgNC4xIDQ4LjkgNi42IDQ4LjkgNi42IDEuOSA3LjMtMjQgNy42LTQwIDcuOC00LjYgMTQuOC01LjQgMjcuNy0xMS40IDI4LTQuNyAuMi04LjItMjguOC0xNy41LTQ5LjZsLTkuNCA2NS41Yy00LjQgMTMtMTUuNS0yMi41LTIxLjktMzkuMy0zLjMtLjEtNjIuNC0xLjYtNDcuNi03LjhsMzEtNXpNMjI4IDQ0OGMyMS4yIDAgMjEuMi0zMiAwLTMyTDkyIDQxNmMtMjEuMiAwLTIxLjIgMzIgMCAzMmwxMzYgMHptLTI0IDY0YzIxLjIgMCAyMS4yLTMyIDAtMzJsLTg4IDBjLTIxLjIgMC0yMS4yIDMyIDAgMzJsODggMHptMzQuMi0xNDEuNWMzLjItMTguOSA1LjItMzYuNCAxMS45LTQ4LjggNy45LTE0LjcgMTYuMS0yOC4xIDI0LTQxIDI0LjYtNDAuNCA0NS45LTc1LjIgNDUuOS0xMjUuNSAwLTg1LjYtNzEuOC0xNTUuMi0xNjAtMTU1LjJTMCA2OS42IDAgMTU1LjJjMCA1MC4yIDIxLjMgODUuMSA0NS45IDEyNS41IDcuOSAxMi45IDE2IDI2LjMgMjQgNDEgNi43IDEyLjUgOC43IDI5LjggMTEuOSA0OC45IDMuNSAyMSAzNi4xIDE1LjcgMzIuNi01LjEtMy42LTIxLjctNS42LTQwLjctMTUuMy01OC42LTMyLjYtNjAuNC02Ni4xLTk1LjYtNjYuMS0xNTEuNyAwLTY3LjkgNTctMTIzLjIgMTI3LTEyMy4yUzI4NyA4Ny4zIDI4NyAxNTUuMmMwIDU2LjEtMzMuNSA5MS4zLTY2LjEgMTUxLjYtOS43IDE4LTExLjcgMzcuNC0xNS4zIDU4LjYtMy40IDIwLjYgMjkgMjYuNCAzMi42IDUuMXoiXX0sWmZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeCIsaWNvbjpbNTEyLDUxMixbXSwiZTQzYSIsIk0yNDIuNCAyOTIuNWM1LjQtNS40IDE0LjctNS40IDIwLjEgMGw3NyA3N2MxNC4yIDE0LjIgMzMuMSAyMiA1My4xIDIybDE1LjEgMC05Ny4xIDk3LjFjLTMwLjMgMjkuNS03OS41IDI5LjUtMTA5LjggMGwtOTcuNS05Ny40IDkuMyAwYzIwIDAgMzguOS03LjggNTMuMS0yMmw3Ni43LTc2Ljd6bTIwLjEtNzMuNmMtNi40IDUuNS0xNC42IDUuNi0yMC4xIDBsLTc2LjctNzYuN2MtMTQuMi0xNS4xLTMzLjEtMjItNTMuMS0yMmwtOS4zIDAgOTcuNC05Ny40YzMwLjQtMzAuMyA3OS42LTMwLjMgMTA5LjkgMGw5Ny4yIDk3LjEtMTUuMiAwYy0yMCAwLTM4LjkgNy44LTUzLjEgMjJsLTc3IDc3ek0xMTIuNiAxNDIuN2MxMy44IDAgMjYuNSA1LjYgMzcuMSAxNS40bDc2LjcgNzYuN2M3LjIgNi4zIDE2LjYgMTAuOCAyNi4xIDEwLjggOS40IDAgMTguOC00LjUgMjYtMTAuOGw3Ny03N2M5LjgtOS43IDIzLjMtMTUuMyAzNy4xLTE1LjNsMzcuNyAwIDU4LjMgNTguM2MzMC4zIDMwLjMgMzAuMyA3OS41IDAgMTA5LjhsLTU4LjMgNTguMy0zNy43IDBjLTEzLjggMC0yNy4zLTUuNi0zNy4xLTE1LjRsLTc3LTc3Yy0xMy45LTEzLjktMzguMi0xMy45LTUyLjEgLjFsLTc2LjcgNzYuNmMtMTAuNiA5LjgtMjMuMyAxNS40LTM3LjEgMTUuNGwtMzEuOCAwLTU4LTU4Yy0zMC4zLTMwLjMtMzAuMy03OS41IDAtMTA5LjhsNTgtNTguMSAzMS44IDB6Il19LFFFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHVtYmxyIixpY29uOls0NDgsNTEyLFsidHVtYmxyLXNxdWFyZSJdLCJmMTc0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYuOCA0MTZjLTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45bDAtOTAtMjkuNyAwYy0zLjQgMC02LjItMi44LTYuMi02LjJsMC00Mi41YzAtNC41IDIuOC04LjUgNy4xLTEwIDM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yIC41LTYuOSA0LjEtMTAuMiAxMC0xMC4ybDQ0LjMgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA3MiA1MS45IDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJsLTUyLjEgMCAwIDgzLjNjMCAyMS40IDE0LjggMzMuNSA0Mi41IDIyLjQgMy0xLjIgNS42LTIgOC0xLjQgMi4yIC41IDMuNiAyLjEgNC42IDQuOUwzMTggMzg3LjFjMSAzLjIgMiA2LjctLjMgOS4xLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOHoiXX0sUWZyPVFFZSxYZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3QiLGljb246WzUxMiw1MTIsW10sImY0MWIiLCJNNDE4LjIgMTc3LjJjLTUuNC0xLjgtMTAuOC0zLjUtMTYuMi01LjEgLjktMy43IDEuNy03LjQgMi41LTExLjEgMTIuMy01OS42IDQuMi0xMDcuNS0yMy4xLTEyMy4zLTI2LjMtMTUuMS02OS4yIC42LTExMi42IDM4LjQtNC4zIDMuNy04LjUgNy42LTEyLjUgMTEuNS0yLjctMi42LTUuNS01LjItOC4zLTcuNy00NS41LTQwLjQtOTEuMS01Ny40LTExOC40LTQxLjUtMjYuMiAxNS4yLTM0IDYwLjMtMjMgMTE2LjcgMS4xIDUuNiAyLjMgMTEuMSAzLjcgMTYuNy02LjQgMS44LTEyLjcgMy44LTE4LjYgNS45LTUzLjQgMTguNS05MS43IDQ3LjctOTEuNyA3Ny45IDAgMzEuMiA0MC44IDYyLjUgOTYuMyA4MS41IDQuNSAxLjUgOSAzIDEzLjYgNC4zLTEuNSA2LTIuOCAxMS45LTQgMTgtMTAuNSA1NS41LTIuMyA5OS41IDIzLjkgMTE0LjYgMjcgMTUuNiA3Mi40LS40IDExNi42LTM5LjEgMy41LTMuMSA3LTYuMyAxMC41LTkuNyA0LjQgNC4zIDkgOC40IDEzLjYgMTIuNCA0Mi44IDM2LjggODUuMSA1MS43IDExMS4yIDM2LjYgMjctMTUuNiAzNS44LTYyLjkgMjQuNC0xMjAuNS0uOS00LjQtMS45LTguOS0zLTEzLjUgMy4yLS45IDYuMy0xLjkgOS40LTIuOSA1Ny43LTE5LjEgOTkuNS01MCA5OS41LTgxLjcgMC0zMC4zLTM5LjQtNTkuNy05My44LTc4LjR6TTI4Mi45IDkyLjNjMzcuMi0zMi40IDcxLjktNDUuMSA4Ny43LTM2IDE2LjkgOS43IDIzLjQgNDguOSAxMi44IDEwMC40LS43IDMuNC0xLjQgNi43LTIuMyAxMC0yMi4yLTUtNDQuNy04LjYtNjcuMy0xMC42LTEzLTE4LjYtMjcuMi0zNi40LTQyLjYtNTMuMSAzLjktMy43IDcuNy03LjIgMTEuNy0xMC43ek0xNjcuMiAzMDcuNWM1LjEgOC43IDEwLjMgMTcuNCAxNS44IDI1LjktMTUuNi0xLjctMzEuMS00LjItNDYuNC03LjUgNC40LTE0LjQgOS45LTI5LjMgMTYuMy00NC41IDQuNiA4LjggOS4zIDE3LjUgMTQuMyAyNi4xek0xMzYuOSAxODcuMmMxNC40LTMuMiAyOS43LTUuOCA0NS42LTcuOC01LjMgOC4zLTEwLjUgMTYuOC0xNS40IDI1LjQtNC45IDguNS05LjcgMTcuMi0xNC4yIDI2LTYuMy0xNC45LTExLjYtMjkuNS0xNi00My42em0yNy40IDY4LjljNi42LTEzLjggMTMuOC0yNy4zIDIxLjQtNDAuNnMxNS44LTI2LjIgMjQuNC0zOC45YzE1LTEuMSAzMC4zLTEuNyA0NS45LTEuN3MzMSAuNiA0NS45IDEuN2M4LjUgMTIuNiAxNi42IDI1LjUgMjQuMyAzOC43czE0LjkgMjYuNyAyMS43IDQwLjRjLTYuNyAxMy44LTEzLjkgMjcuNC0yMS42IDQwLjgtNy42IDEzLjMtMTUuNyAyNi4yLTI0LjIgMzktMTQuOSAxLjEtMzAuNCAxLjYtNDYuMSAxLjZzLTMwLjktLjUtNDUuNi0xLjRjLTguNy0xMi43LTE2LjktMjUuNy0yNC42LTM5cy0xNC44LTI2LjgtMjEuNS00MC42em0xODAuNiA1MS4yYzUuMS04LjggOS45LTE3LjcgMTQuNi0yNi43IDYuNCAxNC41IDEyIDI5LjIgMTYuOSA0NC4zLTE1LjUgMy41LTMxLjIgNi4yLTQ3IDggNS40LTguNCAxMC41LTE3IDE1LjUtMjUuNnptMTQuNC03Ni41Yy00LjctOC44LTkuNS0xNy42LTE0LjUtMjYuMi00LjktOC41LTEwLTE2LjktMTUuMy0yNS4yIDE2LjEgMiAzMS41IDQuNyA0NS45IDgtNC42IDE0LjgtMTAgMjkuMi0xNi4xIDQzLjR6TTI1Ni4yIDExOC4zYzEwLjUgMTEuNCAyMC40IDIzLjQgMjkuNiAzNS44LTE5LjgtLjktMzkuNy0uOS01OS41IDAgOS44LTEyLjkgMTkuOS0yNC45IDI5LjktMzUuOHpNMTQwLjIgNTdjMTYuOC05LjggNTQuMSA0LjIgOTMuNCAzOSAyLjUgMi4yIDUgNC42IDcuNiA3LTE1LjUgMTYuNy0yOS44IDM0LjUtNDIuOSA1My4xLTIyLjYgMi00NSA1LjUtNjcuMiAxMC40LTEuMy01LjEtMi40LTEwLjMtMy41LTE1LjUtOS40LTQ4LjQtMy4yLTg0LjkgMTIuNi05NHpNMTE1LjcgMzIwLjZjLTQuMi0xLjItOC4zLTIuNS0xMi40LTMuOS0yMS4zLTYuNy00NS41LTE3LjMtNjMtMzEuMi0xMC4xLTctMTYuOS0xNy44LTE4LjgtMjkuOSAwLTE4LjMgMzEuNi00MS43IDc3LjItNTcuNiA1LjctMiAxMS41LTMuOCAxNy4zLTUuNSA2LjggMjEuNyAxNSA0MyAyNC41IDYzLjYtOS42IDIwLjktMTcuOSA0Mi41LTI0LjggNjQuNXptMTE2LjYgOThjLTE2LjUgMTUuMS0zNS42IDI3LjEtNTYuNCAzNS4zLTExLjEgNS4zLTIzLjkgNS44LTM1LjMgMS4zLTE1LjktOS4yLTIyLjUtNDQuNS0xMy41LTkyIDEuMS01LjYgMi4zLTExLjIgMy43LTE2LjcgMjIuNCA0LjggNDUgOC4xIDY3LjkgOS44IDEzLjIgMTguNyAyNy43IDM2LjYgNDMuMiA1My40LTMuMiAzLjEtNi40IDYuMS05LjYgOC45em0yNC41LTI0LjNjLTEwLjItMTEtMjAuNC0yMy4yLTMwLjMtMzYuMyA5LjYgLjQgMTkuNSAuNiAyOS41IC42IDEwLjMgMCAyMC40LS4yIDMwLjQtLjctOS4yIDEyLjctMTkuMSAyNC44LTI5LjYgMzYuNHptMTMwLjcgMzBjLS45IDEyLjItNi45IDIzLjYtMTYuNSAzMS4zLTE1LjkgOS4yLTQ5LjgtMi44LTg2LjQtMzQuMi00LjItMy42LTguNC03LjUtMTIuNy0xMS41IDE1LjMtMTYuOSAyOS40LTM0LjggNDIuMi01My42IDIyLjktMS45IDQ1LjctNS40IDY4LjItMTAuNSAxIDQuMSAxLjkgOC4yIDIuNyAxMi4yIDQuOSAyMS42IDUuNyA0NC4xIDIuNSA2Ni4zem0xOC4yLTEwNy41Yy0yLjggLjktNS42IDEuOC04LjUgMi42LTctMjEuOC0xNS42LTQzLjEtMjUuNS02My44IDkuNi0yMC40IDE3LjctNDEuNCAyNC41LTYyLjkgNS4yIDEuNSAxMC4yIDMuMSAxNSA0LjcgNDYuNiAxNiA3OS4zIDM5LjggNzkuMyA1OCAwIDE5LjYtMzQuOSA0NC45LTg0LjggNjEuNHpNMjU2IDMwMS44YTQ1LjggNDUuOCAwIDEgMCAwLTkxLjYgNDUuOCA0NS44IDAgMSAwIDAgOTEuNnoiXX0sSmZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1Z2dpbmctZmFjZSIsaWNvbjpbNTc2LDUxMixbXSwiZTg2OSIsIk0yODYuOCA4LjJjMTMwIDAgMjM1LjQgMTA1LjggMjM1LjQgMjM2LjMgMCAxNy43LTEuOSAzNS01LjYgNTEuNy0xLjQgNi41LTMuMSAxMi44LTUuMSAxOS4xIDYuNS0uNiAxMyAuNiAxOC43IDMuNSAxMi42IDYuNSAyMC4yIDIxLjcgMTguMiAzNS43LS43IDQuOS0yLjQgOS40LTQuOCAxMy41IDUuMiA0LjIgOSAxMC4xIDEwLjggMTcuMSAxLjQgNS41IDIuOSAxNy4xLTQuOCAyOC45IDUuOCA5LjIgNi42IDIwLjYgMi4yIDMwLjYtNi4yIDE0LjEtMjEuNyAyNS4zLTUxLjcgMzcuMy0zMi41IDEzLTY3LjEgMjEuOS0xMDIuMyAyMS45LTMyIDAtNTUuOS04LjktNzEtMjYuNC0xMyAyLjItMjYuMyAzLjQtNDAgMy40LTEyLjcgMC0yNS4yLTEtMzcuMy0yLjktMTUuMSAxNy4yLTM4LjggMjUuOS03MC42IDI1LjktMzUuMSAwLTcwLTktMTAyLjQtMjEuOS0zMC0xMi00NS41LTIzLjEtNTEuNy0zNy4zLTQuNC05LjktMy42LTIxLjQgMi4yLTMwLjYtNy43LTExLjktNi4zLTIzLjQtNC44LTI4LjkgMS44LTcgNS43LTEyLjkgMTAuOC0xNy4xLTIuNS00LjEtNC4xLTguNi00LjgtMTMuNS0xLjUtMTAuNCAyLTIwLjcgOS43LTI5LjIgNi4xLTYuNyAxNS4xLTEwLjMgMjQuMi0xMC4yLTEuOS02LjEtMy42LTEyLjQtNS0xOC43LTMuNy0xNi43LTUuNy0zNC01LjctNTEuOCAwLTEzMC41IDEwNS40LTIzNi4zIDIzNS40LTIzNi4zek0xMTcuNSAzMTFjLTEzLTguMi0yMi4xLTMuNi0xOSAxMy40czU3LjIgNTguMiA1MiA2Ny4yYy01LjIgOC44LTIzLjUtMTAuMS0yMy44LTEwLjUgMCAwLTU4LjItNTMuMS03MC44LTM5LjMtMTIuNiAxMy44IDkuNiAyNS40IDQxLjMgNDQuN3MzNC4yIDI0LjQgMjkuNyAzMS43LTc0LjUtNTItODEuMS0yNi44Yy02LjUgMjUuMSA3MS40IDMyLjQgNjYuNyA0OS44LTQuOCAxNy40LTU0LjktMzIuOC02NS4yLTEzLjMtMTAuMyAxOS42IDcwLjggNDIuNiA3MS40IDQyLjcgMjYuMiA2LjggOTIuNiAyMS4zIDExNS45LTEyLjkgMTYuNy0yNC42IDE1LjYtNDMuMS03LjQtNjYuMXMtMzYuMy01Ni43LTM2LjMtNTYuN2MwLS4yLTUtMTkuNS0xNi4zLTE3LjgtMTEuNCAxLjgtMTkuNyAzMSA0LjEgNDguOSAyMy44IDE3LjktNC43IDMwLTEzLjkgMTMuMy05LjItMTYuOC0zNC4yLTU5LjktNDcuMS02OC4yem0zNjAuNiAxMy40YzMuMS0xNy02LjEtMjEuNi0xOS0xMy40LTEzIDguMy0zNy45IDUxLjQtNDcuMSA2OC4ycy0zNy43IDQuNi0xMy45LTEzLjMgMTUuNC00Ny4xIDQuMS00OC45LTE2LjMgMTcuOC0xNi4zIDE3LjhjLS4xIC4yLTEzLjQgMzMuNy0zNi4zIDU2LjctMjIuOSAyMy0yNC4xIDQxLjUtNy40IDY2LjEgMjMuMiAzNC4yIDg5LjcgMTkuNyAxMTUuOSAxMi45IDEuNS0uNCA4MS42LTIzLjMgNzEuNC00Mi43LTEwLjMtMTkuNS02MC40IDMwLjYtNjUuMyAxMy4zLTQuOC0xNy4zIDczLjItMjQuNiA2Ni43LTQ5LjgtNi42LTI1LjEtNzYuNiAzNC4xLTgxLjEgMjYuOC00LjUtNy4zLTItMTIuNCAyOS43LTMxLjcgMzEuNy0xOS4zIDU0LTMwLjkgNDEuMy00NC43LTEyLjctMTMuOC03MC44IDM5LjMtNzAuOCAzOS4zLS40IC40LTE4LjYgMTkuMy0yMy44IDEwLjUtNS4zLTguOSA0OC45LTUwLjEgNTItNjcuMnpNMjg2LjggMzIuNmMtMTE2LjYgMC0yMTEuMSA5NC45LTIxMS4xIDIxMS45IDAgMTcuMSAyIDMzLjggNS44IDQ5LjcgMC0uMSAuMS0uMSAuMi0uMiA2LjEtNy40IDE0LjktMTEuNCAyNC43LTExLjQgMTcuNyAwIDMxLjEgMTEuOSA0MS41IDI0LjkgNi44LTkuNCAxNy4xLTE1IDI3LjktMTUgMjAuNyAwIDMzLjIgMTguMSAzNy45IDM0LjMgMi4zIDUuNSAxMy42IDMwLjUgMzAuNCA0Ny40IDI1LjcgMjUuOCAzMi4yIDUyLjQgMTkuNCA4MC45IDE2IDEuOCAzMi44IDEuNyA0OS4yLS4zLTEyLjUtMjguNC02LTU0LjkgMTkuNi04MC42IDE2LjktMTYuOSAyOC4xLTQxLjkgMzAuNS00Ny40IDQuNy0xNi4yIDE3LjItMzQuMyAzNy45LTM0LjMgMTAuOSAwIDIxLjIgNS42IDI3LjkgMTUgMTAuNC0xMyAyMy44LTI0LjkgNDEuNS0yNC45IDguNyAwIDE2LjYgMy4xIDIyLjUgOC45IDUtMjIgNi40LTQ1LjggNC4xLTY4LjctMTAuOC0xMDYuOS0xMDAuNy0xOTAuMy0yMTAtMTkwLjN6bTEuNSAyMzQuMmM0My42IDAgNzktNDIgNzktMTQuNSAwIDI3LjQtMTkuMiA4MC45LTc4LjggODAuOS0xOS4yIDAtMzQuMi01LjUtNDUuOC0xMy45LTIzLjItMTkuNC0zMy40LTQ4LjItMzMuNC02Ni45IDAtMjcuNCAzNS40IDE0LjUgNzkgMTQuNXptLTEzLjMgMjVjLTguMiAyLjQtMTUuNSA2LjgtMjEuNSAxMi42IDIyIDEyLjggNTAuNCAxMi45IDcxLjctMS4zLTUuNS00LjktMTItOC43LTE5LjEtMTEtNS4xLTEuNi0xMC40IDE1LjgtMTYgMTUuOC01LjIgMC0xMC4zLTE3LjYtMTUuMS0xNi4yek0xNDcuMSAyMTUuNWExOS44IDE5LjggMCAxIDEgMC0zOS42IDE5LjggMTkuOCAwIDEgMSAwIDM5LjZ6bTI4Mi40IDBhMTkuOCAxOS44IDAgMSAxIDAtMzkuNiAxOS44IDE5LjggMCAxIDEgMCAzOS42em0tMjQ0LTU1LjRjNy45LTE0LjkgMjYuMy0yMC41IDQxLjEtMTIuNnMyMC40IDI2LjQgMTIuNiA0MS4yYy0zLjcgNy0xNS41LTQuNC0yMi40LTEuOS03LjcgMi43LTEwLjggMTguNy0xOC42IDE0LjYtMTQuOC03LjktMjAuNC0yNi40LTEyLjYtNDEuMnptMTY0LjQtMTIuNmMxNC44LTcuOSAzMy4yLTIuMyA0MS4xIDEyLjZzMi4yIDMzLjMtMTIuNiA0MS4yYy03LjggNC4yLTEwLjktMTEuOC0xOC43LTE0LjYtNi45LTIuNC0xOC43IDktMjIuNCAxLjktNy45LTE0LjktMi4yLTMzLjMgMTIuNi00MS4yeiJdfSxlaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianhsIixpY29uOls0NDgsNTEyLFtdLCJlNjdiIiwiTTQxMi4yIDMyTDM1LjggMzJDMTYgMzIgMCA0OCAwIDY3LjhMMCA0NDQuMkMwIDQ2NCAxNiA0ODAgMzUuOCA0ODBsMzc2LjQgMGMxOS44IDAgMzUuOC0xNiAzNS44LTM1LjhsMC0zNzYuNEM0NDggNDggNDMyIDMyIDQxMi4yIDMyek0zNzguNiAzMzMuN2MwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAwem0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHoiXX0sdGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1saW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem01IDE3MC4ybDY2LjUgMCAwIDIxMy44LTY2LjUgMCAwLTIxMy44em03MS43LTY3LjdhMzguNSAzOC41IDAgMSAxIC03NyAwIDM4LjUgMzguNSAwIDEgMSA3NyAwek0zMTcuOSA0MTZsMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yLTY2LjQgMHoiXX0scmhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTZhMiIsIk0zNzYuMyAzMkwwIDMyIDAgNDA4LjNjMCAxOSA3LjYgMzcuMiAyMSA1MC43czMxLjcgMjEgNTAuNyAyMWwzMDQuNiAwYzE5IDAgMzcuMi03LjYgNTAuNy0yMXMyMS0zMS43IDIxLTUwLjdsMC0zMDQuNmMwLTE5LTcuNi0zNy4yLTIxLTUwLjdzLTMxLjctMjEtNTAuNy0yMXpNMzMyLjQgNDMxLjRjLTcuNy04LjUtMTEuNy0yMC43LTEyLTM2LjZsMzEuMyAwYy4yIDE0LjEgNS4xIDIxLjEgMTQuOCAyMS4xYzQuOSAwIDguNC0xLjYgMTAuNS00LjdjMi0zLjEgMy04IDMtMTQuOGMwLTUuNC0xLjMtOS45LTQtMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDM1MS4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjUgMTIuNWM3LjUgOC40IDExLjUgMjAuMyAxMS44IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00IDI3LjQtMTIuMyAzNS43Yy04LjIgOC4zLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwMSAwYy03LjctOC41LTExLjctMjAuNy0xMi0zNi42bDMxLjMgMGMuMiAxNC4xIDUuMSAyMS4xIDE0LjggMjEuMWM0LjkgMCA4LjQtMS42IDEwLjQtNC43YzItMy4xIDMtOCAzLTE0LjhjMC01LjQtMS4zLTkuOS0zLjktMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDI1MC4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjQgMTIuNWM3LjYgOC40IDExLjUgMjAuMyAxMS45IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00LjEgMjcuNC0xMi4zIDM1LjdzLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwNS42IDEuMWMtOC40LTcuNy0xMi41LTE5LjItMTIuNS0zNC41bDAtNzUuNGMwLTE1LjIgNC40LTI2LjcgMTMuMi0zNC42YzguOS03LjggMjAuNy0xMS44IDM1LjItMTEuOGMxNC4xIDAgMjUuMiA0IDMzLjQgMTJjOC4zIDggMTIuNSAyMCAxMi41IDM1LjlsMCA2LTMzLjEgMCAwLTUuOGMwLTYuMS0xLjMtMTAuNy00LTEzLjZjLTEuMS0xLjUtMi42LTIuNy00LjMtMy41cy0zLjUtMS4yLTUuNC0xLjFjLTUuNCAwLTkuMiAxLjgtMTEuNCA1LjZjLTIuMyA1LjItMy4zIDEwLjgtMyAxNi40bDAgNjUuNWMwIDEzLjcgNC44IDIwLjYgMTQuNCAyMC44YzQuNSAwIDcuOS0xLjYgMTAuMi00LjhjMi41LTQuMSAzLjctOC44IDMuNS0xMy42bDAtNC45IDMzLjEgMCAwIDUuMWMwIDEwLjYtMi4xIDE5LjUtNi4yIDI2LjZjLTQgNi45LTkuOSAxMi41LTE3LjEgMTZjLTcuNyAzLjctMTYuMSA1LjUtMjQuNiA1LjNjLTE0LjIgMC0yNS41LTMuOS0zMy44LTExLjZ6Il19LGFocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYXNobm9kZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ5OSIsIk0zNS43IDE3MS4xYy00Ni45IDQ2LTQ2LjkgMTIyLjkgMCAxNjkuOEwxNzEuNiA0NzYuOGM0NiA0Ni45IDEyMi45IDQ2LjkgMTY5LjggMEw0NzcuMyAzNDAuOWM0Ni45LTQ2LjkgNDYuOS0xMjMuOCAwLTE2OS44TDM0MS40IDM1LjJjLTQ2LjktNDYuOS0xMjMuOC00Ni45LTE2OS44IDBMMzUuNyAxNzEuMXpNMTk2IDE5Ni41YTg0LjUgODQuNSAwIDEgMSAxMjAgMTE5IDg0LjUgODQuNSAwIDEgMSAtMTIwLTExOXoiXX0saWhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZGRpdC1hbGllbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI4MSIsIk0zNzMgMTM4LjZjLTI1LjIgMC00Ni4zLTE3LjUtNTEuOS00MS0zMC42IDQuMy01NC4yIDMwLjctNTQuMiA2Mi40bDAgLjJjNDcuNCAxLjggOTAuNiAxNS4xIDEyNC45IDM2LjMgMTIuNi05LjcgMjguNC0xNS41IDQ1LjUtMTUuNSA0MS4zIDAgNzQuNyAzMy40IDc0LjcgNzQuNyAwIDI5LjgtMTcuNCA1NS41LTQyLjcgNjcuNS0yLjQgODYuOC05NyAxNTYuNi0yMTMuMiAxNTYuNlM0NS41IDQxMC4xIDQzIDMyMy40Yy0yNS40LTExLjktNDMtMzcuNy00My02Ny43IDAtNDEuMyAzMy40LTc0LjcgNzQuNy03NC43IDE3LjIgMCAzMyA1LjggNDUuNyAxNS42IDM0LTIxLjEgNzYuOC0zNC40IDEyMy43LTM2LjRsMC0uM2MwLTQ0LjMgMzMuNy04MC45IDc2LjgtODUuNSA0LjktMjQuMiAyNi4zLTQyLjQgNTIuMS00Mi40IDI5LjQgMCA1My4zIDIzLjkgNTMuMyA1My4zcy0yMy45IDUzLjMtNTMuMyA1My4zek0xNTcuNSAyNTUuM2MtMjAuOSAwLTM4LjkgMjAuOC00MC4yIDQ3LjlzMTcuMSAzOC4xIDM4IDM4LjEgMzYuNi05LjggMzcuOC0zNi45LTE0LjctNDkuMS0zNS43LTQ5LjFsLjEgMHpNMzk1IDMwMy4xYy0xLjItMjcuMS0xOS4yLTQ3LjktNDAuMi00Ny45cy0zNi45IDIyLTM1LjcgNDkuMSAxNi45IDM2LjkgMzcuOCAzNi45IDM5LjMtMTEgMzgtMzguMWwuMSAwem0tNjAuMSA3MC44YzEuNS0zLjYtMS03LjctNC45LTguMS0yMy0yLjMtNDcuOS0zLjYtNzMuOC0zLjZzLTUwLjggMS4zLTczLjggMy42Yy0zLjkgLjQtNi40IDQuNS00LjkgOC4xIDEyLjkgMzAuOCA0My4zIDUyLjQgNzguNyA1Mi40czY1LjgtMjEuNiA3OC43LTUyLjR6Il19LEozZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWt0b2siLGljb246WzQ0OCw1MTIsW10sImUwN2IiLCJNNDQ4LjUgMjA5LjljLTQ0IC4xLTg3LTEzLjYtMTIyLjgtMzkuMmwwIDE3OC43YzAgMzMuMS0xMC4xIDY1LjQtMjkgOTIuNnMtNDUuNiA0OC03Ni42IDU5LjYtNjQuOCAxMy41LTk2LjkgNS4zLTYwLjktMjUuOS04Mi43LTUwLjgtMzUuMy01Ni0zOS04OC45IDIuOS02Ni4xIDE4LjYtOTUuMiA0MC01Mi43IDY5LjYtNjcuNyA2Mi45LTIwLjUgOTUuNy0xNmwwIDg5LjljLTE1LTQuNy0zMS4xLTQuNi00NiAuNHMtMjcuOSAxNC42LTM3IDI3LjMtMTQgMjguMS0xMy45IDQzLjkgNS4yIDMxIDE0LjUgNDMuNyAyMi40IDIyLjEgMzcuNCAyNi45IDMxLjEgNC44IDQ2LS4xIDI4LTE0LjQgMzcuMi0yNy4xIDE0LjItMjguMSAxNC4yLTQzLjhsMC0zNDkuNCA4OCAwYy0uMSA3LjQgLjYgMTQuOSAxLjkgMjIuMiAzLjEgMTYuMyA5LjQgMzEuOSAxOC43IDQ1LjdzMjEuMyAyNS42IDM1LjIgMzQuNmMxOS45IDEzLjEgNDMuMiAyMC4xIDY3IDIwLjFsMCA4Ny40eiJdfSxzaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMTlhIiwiTTYxLjcgMTY5LjRsMTAxLjUgMjc4Yy03MS0zNC40LTExOS45LTEwNy4yLTExOS45LTE5MS40IDAtMzAuOSA2LjYtNjAuMSAxOC40LTg2LjZ6bTMzNy45IDc1LjljMC0yNi4zLTkuNC00NC41LTE3LjUtNTguNy0xMC44LTE3LjUtMjAuOS0zMi40LTIwLjktNDkuOSAwLTE5LjYgMTQuOC0zNy44IDM1LjctMzcuOCAuOSAwIDEuOCAuMSAyLjggLjItMzcuOS0zNC43LTg4LjMtNTUuOS0xNDMuNy01NS45LTc0LjMgMC0xMzkuNyAzOC4xLTE3Ny44IDk1LjkgNSAuMiA5LjcgLjMgMTMuNyAuMyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ny41IDIzMC40IDQ2LjYtMTM5LjYtMzMuMS05MC44Yy0xMS41LS43LTIyLjMtMi0yMi4zLTItMTEuNS0uNy0xMC4xLTE4LjIgMS4zLTE3LjUgMCAwIDM1LjEgMi43IDU2IDIuNyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ni45IDIyOC43IDIxLjItNzAuOWM5LTI5LjQgMTYtNTAuNSAxNi02OC43ek0yNTkuNyAyNzQuNkwxOTUuOSA0NjAuMWMxOS4xIDUuNiAzOS4yIDguNyA2MC4xIDguNyAyNC44IDAgNDguNS00LjMgNzAuNi0xMi4xLS42LS45LTEuMS0xLjktMS41LTIuOUwyNTkuNyAyNzQuNnptMTgzLTEyMC43Yy45IDYuOCAxLjQgMTQgMS40IDIxLjkgMCAyMS42LTQgNDUuOC0xNi4yIDc2LjJsLTY1IDE4Ny45YzYzLjMtMzYuOSAxMDUuOC0xMDUuNCAxMDUuOC0xODMuOSAwLTM3LTkuNC03MS44LTI2LTEwMi4xek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODQuNiAwYTIzNi42IDIzNi42IDAgMSAwIC00NzMuMiAwIDIzNi42IDIzNi42IDAgMSAwIDQ3My4yIDB6Il19LG5ocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpZGVhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTAxMyIsIk05My44IDE2NS41YTQ5LjEgNDkuMSAwIDEgMCAwIDk4LjEgNDkuMSA0OS4xIDAgMSAwIDAtOTguMXpNNTQuMyA0MjUuOGw3OC45IDAgMC0xNDAuNS03OC45IDAgMCAxNDAuNXpNMjA1LjggMjE0LjJjMC0yMC0xMC0yMi41LTE4LjctMjIuNWwtMTQgMCAwIDQ1LjggMTQgMGM5LjcgMCAxOC43LTIuOCAxOC43LTIzLjN6bTIwMS43IDQ2bDAtOTEuMyAyMi44IDAgMCA2OC42IDMzLjcgMEM0NTQuNiAxMTMuMSAzNTYuOCA4Ni4yIDI2Ny44IDg2LjJsLTk0LjggMCAwIDgyLjggMTQgMGMyNS42IDAgNDEuNSAxNy40IDQxLjUgNDUuMyAwIDI4LjgtMTUuNSA0Ni00MS41IDQ2bC0xNCAwIDAgMTY1LjYgOTQuOCAwYzE0NC42IDAgMTk0LjktNjcuMiAxOTYuNy0xNjUuNmwtNTcuMSAwem0tMTA5LjggMGwtNTYuMiAwIDAtOTEuMiA1NC40IDAgMCAyMi43LTMxLjcgMCAwIDEwLjYgMzAgMCAwIDIyLjctMzAgMCAwIDEyLjUgMzMuNSAwIDAgMjIuN3ptNzQuNyAwbC01LjItMTcuNy0yOS43IDAtNS4yIDE3LjctMjMuNyAwIDI3LjUtOTEuMyAzMi4zIDAgMjcuNSA5MS4zLTIzLjcgMHpNMjY3LjggMzJMLjEgMzIgLjEgNDgwIDI2Ny44IDQ4MGMxNjEuOCAwIDI1MS03OS43IDI1MS0yMjQuNSAwLTgzLjUtMzIuNi0yMjMuNS0yNTEtMjIzLjV6bTAgNDI2LjlsLTI0Ni42IDAgMC00MDUuOSAyNDYuNiAwYzE0Mi4xIDAgMjI5LjkgNjQuNiAyMjkuOSAyMDIuNCAwIDEzNC4xLTgxIDIwMy40LTIyOS45IDIwMy40em04My45LTI2NC45bC03LjUgMjUuOCAxNi40IDAtNy41LTI1LjgtMS40IDB6Il19LG9ocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLXBwIixpY29uOls0NDgsNTEyLFtdLCJmMWE3IiwiTTIwNS4zIDE3NC42YzAgMjEuMS0xNC4yIDM4LjEtMzEuNyAzOC4xLTcuMSAwLTEyLjgtMS4yLTE3LjItMy43bDAtNjhjNC40LTIuNyAxMC4xLTQuMiAxNy4yLTQuMiAxNy41IDAgMzEuNyAxNi45IDMxLjcgMzcuOHptNTIuNiA2N2MtNy4xIDAtMTIuOCAxLjUtMTcuMiA0LjJsMCA2OGM0LjQgMi41IDEwLjEgMy43IDE3LjIgMy43IDE3LjQgMCAzMS43LTE2LjkgMzEuNy0zNy44IDAtMjEuMS0xNC4zLTM4LjEtMzEuNy0zOC4xek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODUgMjU1LjFjNDEgMCA3NC4yLTM1LjYgNzQuMi03OS42UzIyNiA5NS45IDE4NSA5NS45Yy0xMiAwLTI0LjEgMy4yLTM0LjYgOC44bC00NS43IDAgMCAyMDYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjEgMTguMSA0LjggMjguNSA0Ljh6bTE1OC40IDI1LjNjMC00NC0zMy4yLTc5LjYtNzMuOS03OS42LTMuMiAwLTYuNCAuMi05LjYgLjctMy43IDEyLjUtMTAuMSAyMy44LTE5LjIgMzMuNC0xMy44IDE1LTMyLjIgMjMuOC01MS44IDI0LjhsMCAxNTYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjIgMTguMiA0LjcgMjguNyA0LjcgNDAuOCAwIDc0LTM1LjYgNzQtNzkuNnoiXX0sbGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzc3VubmFoIixpY29uOls1MTIsNTEyLFtdLCJmNDA3IiwiTTQ5Ni45IDI2OC4xYzAgNjMuOS0yNS40IDEyNS4yLTcwLjYgMTcwLjNTMzE5LjkgNTA5IDI1NiA1MDkgMTMwLjggNDgzLjUgODUuNyA0MzguNCAxNS4xIDMzMS45IDE1LjEgMjY4YzAtNjMuOSAyNS40LTEyNS4yIDcwLjYtMTcwLjRTMTkyLjIgMjcuMSAyNTYuMSAyNy4xIDM4MS4zIDUyLjQgNDI2LjUgOTcuNiA0OTcgMjA0LjEgNDk3IDI2OGwtLjEgLjF6TTM5LjUgMjY4Yy0uNiAyOC44IDQuNSA1Ny41IDE1LjEgODQuM3MyNi40IDUxLjIgNDYuNiA3MS44IDQ0LjIgMzcgNzAuOCA0OC4xIDU1LjEgMTYuOSA4My45IDE2LjkgNTcuNC01LjggODMuOS0xNi45IDUwLjYtMjcuNSA3MC44LTQ4LjEgMzYtNDUgNDYuNi03MS44IDE1LjctNTUuNSAxNS4xLTg0LjNjLjYtMjguOC00LjUtNTcuNS0xNS4xLTg0LjNzLTI2LjQtNTEuMi00Ni42LTcxLjgtNDQuMi0zNy03MC44LTQ4LjEtNTUuMS0xNi45LTgzLjktMTYuOS01Ny40IDUuOC04My45IDE2LjktNTAuNiAyNy41LTcwLjggNDguMS0zNiA0NS00Ni42IDcxLjgtMTUuNyA1NS41LTE1LjEgODQuM3ptMzg1LjkgNjMuM2MtMTIuNyAwLTIxLjYtMS45LTI2LjctNS45LTUuNS00LjMtOC4yLTEyLjMtOC4yLTIzLjhsMC05Ni41YzAtNi41LTUuMi0yMC4yLTE1LjctNDEuMiA3IDAgMTctOS4xIDMwLTI3LjJsMCAxNDcuOGMwIDExIDIuNCAxOS40IDcgMjUuMyAzLjcgNC43IDEwLjEgOC45IDE5IDEyLjYgMS4yIC40IDIuNiAuOSA0LjEgMS40IDIuOSAuOSA2LjMgMi4xIDEwLjMgMy41LTEuOCAyLjctOC4zIDQtMTkuOSA0bC4xIDB6bS0yMTkgMGMtMS4zIDIuNC0zLjYgNS41LTYuOCA5LjRsLTE4LjUgMjIuNWMtMS02LjEtNC0xMy05LjMtMjAuNnMtOS43LTExLjQtMTMuNC0xMS40bC04OS44IDBjMy4zLTUuMyA0LjktOC44IDQuOS0xMC44cy0uOC01LjMtMi40LTkuN2MtMS41LTQuNC0yLjQtOC41LTIuNC0xMi40IDAtNy40IDIuMS0xMy45IDYuMy0xOS4zbDIwLTI1LjYtNy4xLTE3LjcgMTYuMS0xOS44IDYuNyAxNi44IDgtMTAuM2MtMS44IDYuNC0yLjYgMTIuMy0yLjYgMTcuNyAwIDQuMiAyLjggMTMuMyA4LjMgMjcuM2wxNi4yIDQwLjcgMTcuNyAwYzIuOCAuNCA3LjcgNSAxNC42IDEzLjkgMS44IDIuNCA0LjMgNS44IDcuNyAxMC4yIDEuNCAxLjkgMi45IDMuOSA0LjYgNi4xIDEuMy0yLjMgMi00LjYgMi03LjEgMC0yLTEuMy02LjYtNC0xMy40TDE3OCAzMDQuMWMtNC0xMC42LTYuMS0xNy43LTYuMS0yMS4zIDAtNi4zIDEuOS0xMi4zIDUuOC0xNy45IC41LS42IDEtMS4zIDEuNS0xLjkgNC40LTUuNiA4LjgtMTEuMSAxMy4zLTE2LjUtMS4xIDQuNi0xLjcgOC43LTEuNyAxMiAwIDMuNyAxLjcgOS45IDUuMSAxOC44bDcuOSAyMC40YzEuOSA0LjcgMyA4LjIgMy43IDEwLjNsMjUuOSAwLS45LTIuNmMtMS40LTMuOS00LTctNy43LTkuM2wxNS42LTIwLjEgMTIuMyAzMiAxMy40IDAtNi4xLTE1LjhjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNy0yMC4xIDE3LjMgNDUuMiAxMy40IDAtMTEuNC0yOS40Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjYtMjAgMjIuNCA1OC43IDI2LjIgMGMxLjUgMCAzLTEuMSA0LjUtMy4xczIuMi00LjEgMi4yLTYuM2wwLTkzLjVjMC02LjUtNC41LTIwLjMtMTMuNy00MS4yIDUuNCAwIDE0LjEtOS4xIDI2LjItMjcuMmwwIDE2My41YzAgNy4yIC42IDEyIDEuNyAxNC42IDEuNiAzLjQgNS4zIDYuMiAxMS4xIDguMi0zLjkgNS42LTguNyA4LjUtMTQuNSA4LjVsLTE1NC44IDAtLjEtLjJ6bS05OC00NGMtMi43LTYuNy00LTExLjctNC0xNS0uNiAxLjItMi40IDMuNy01LjQgNy42LTEuNCAxLjktMi4yIDMuNy0yLjIgNS4zIDAgMi42IC44IDUuNyAyLjIgOS4zbDUuNiAxMy45YzUgMCA5IDAgMTEuOS0uMWwtOC4yLTIwLjkgLjEtLjF6bTEzLjUtNzIuNGMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAwem0tMjcuNiAwYy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bTg3IDI3LjVjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHoiXX0sY2hyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnQtYXdlc29tZS1hbHQiLGljb246WzUxMiw1MTIsW10sImYzYTMiLCJNMjA4IDIzNy40bC0yMi4yIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43bDIyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC01MS43YzAtMi4xLTEuNi0zLjctMy43LTMuN3ptMTE4LjIgMGwtMjIuMiAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2wyMi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtNTEuN2MtLjEtMi4xLTEuNy0zLjctMy43LTMuN3ptMTMyLTEyNS4xYy0yLjMtMy4yLTQuNi02LjQtNy4xLTkuNS05LjgtMTIuNS0yMC44LTI0LTMyLjgtMzQuNC00LjUtMy45LTkuMS03LjYtMTMuOS0xMS4yLTEuNi0xLjItMy4yLTIuMy00LjgtMy41LTI3LjYtMTkuNi01OS4zLTMzLjctOTMuNi00MC43LTE2LjItMy4zLTMyLjktNS01MC01cy0zMy45IDEuNy01MCA1Yy0zNC4zIDcuMS02NiAyMS4yLTkzLjMgNDAuOC0xLjYgMS4xLTMuMiAyLjMtNC44IDMuNS00LjggMy42LTkuNCA3LjMtMTMuOSAxMS4yLTMgMi42LTUuOSA1LjMtOC44IDhzLTUuNyA1LjUtOC40IDguNGMtNS41IDUuNy0xMC43IDExLjgtMTUuNiAxOC0yLjQgMy4xLTQuOCA2LjMtNy4xIDkuNS0yOC45IDQwLjYtNDUuOCA5MC4xLTQ1LjggMTQzLjYgMCAyIC4xIDQgLjEgNiAuMSAuNyAuMSAxLjMgLjEgMiAuMSAxLjMgLjEgMi43IC4yIDQgMCAuOCAuMSAxLjUgLjEgMi4zIDAgMS4zIC4xIDIuNSAuMiAzLjcgLjEgLjggLjEgMS42IC4yIDIuNCAuMSAxLjEgLjIgMi4zIC4zIDMuNSAwIC44IC4xIDEuNiAuMiAyLjQgLjEgMS4yIC4zIDIuNCAuNCAzLjYgLjEgLjggLjIgMS41IC4zIDIuMyAuMSAxLjMgLjMgMi42IC41IDMuOSAuMSAuNiAuMiAxLjMgLjMgMS45bC45IDUuN2MuMSAuNiAuMiAxLjEgLjMgMS43IC4zIDEuMyAuNSAyLjcgLjggNCAuMiAuOCAuMyAxLjYgLjUgMi40IC4yIDEgLjUgMi4xIC43IDMuMiAuMiAuOSAuNCAxLjcgLjYgMi42IC4yIDEgLjQgMiAuNyAzIC4yIC45IC41IDEuOCAuNyAyLjcgLjMgMSAuNSAxLjkgLjggMi45IC4zIC45IC41IDEuOCAuOCAyLjcgLjIgLjkgLjUgMS45IC44IDIuOHMuNSAxLjggLjggMi43Yy4zIDEgLjYgMS45IC45IDIuOCAuNiAxLjYgMS4xIDMuMyAxLjcgNC45IC40IDEgLjcgMS45IDEgMi44IC4zIDEgLjcgMiAxLjEgMyAuMyAuOCAuNiAxLjUgLjkgMi4zbDEuMiAzYy4zIC43IC42IDEuNSAuOSAyLjIgLjQgMSAuOSAyIDEuMyAzbC45IDIuMWMuNSAxIC45IDIgMS40IDMgLjMgLjcgLjYgMS4zIC45IDIgLjUgMSAxIDIuMSAxLjUgMy4xIC4yIC42IC41IDEuMSAuOCAxLjcgLjYgMS4xIDEuMSAyLjIgMS43IDMuMyAuMSAuMiAuMiAuMyAuMyAuNSAyLjIgNC4xIDQuNCA4LjIgNi44IDEyLjIgLjIgLjQgLjUgLjggLjcgMS4yIC43IDEuMSAxLjMgMi4yIDIgMy4zIC4zIC41IC42IC45IC45IDEuNCAuNiAxLjEgMS4zIDIuMSAyIDMuMiAuMyAuNSAuNiAuOSAuOSAxLjQgLjcgMS4xIDEuNCAyLjEgMi4xIDMuMiAuMiAuNCAuNSAuOCAuOCAxLjIgLjcgMS4xIDEuNSAyLjIgMi4zIDMuMyAuMiAuMiAuMyAuNSAuNSAuNyAzNy41IDUxLjcgOTQuNCA4OC41IDE2MCA5OS40IC45IC4xIDEuNyAuMyAyLjYgLjQgMSAuMiAyLjEgLjQgMy4xIC41czEuOSAuMyAyLjggLjRjMSAuMiAyIC4zIDMgLjQgLjkgLjEgMS45IC4yIDIuOSAuM3MxLjkgLjIgMi45IC4zIDIuMSAuMiAzLjEgLjNjLjkgLjEgMS44IC4xIDIuNyAuMiAxLjEgLjEgMi4zIC4xIDMuNCAuMiAuOCAwIDEuNyAuMSAyLjUgLjEgMS4zIDAgMi42IC4xIDMuOSAuMSAuNyAuMSAxLjQgLjEgMi4xIC4xIDIgLjEgNCAuMSA2IC4xczQtLjEgNi0uMWMuNyAwIDEuNC0uMSAyLjEtLjEgMS4zIDAgMi42IDAgMy45LS4xIC44IDAgMS43LS4xIDIuNS0uMSAxLjEtLjEgMi4zLS4xIDMuNC0uMiAuOSAwIDEuOC0uMSAyLjctLjIgMS0uMSAyLjEtLjIgMy4xLS4zczEuOS0uMiAyLjktLjNjLjktLjEgMS45LS4yIDIuOS0uM3MyLS4zIDMtLjQgMS45LS4zIDIuOC0uNGMxLS4yIDIuMS0uMyAzLjEtLjUgLjktLjEgMS43LS4zIDIuNi0uNCA2NS42LTExIDEyMi41LTQ3LjcgMTYwLjEtMTAyLjQgLjItLjIgLjMtLjUgLjUtLjcgLjgtMS4xIDEuNS0yLjIgMi4zLTMuMyAuMi0uNCAuNS0uOCAuOC0xLjIgLjctMS4xIDEuNC0yLjEgMi4xLTMuMiAuMy0uNSAuNi0uOSAuOS0xLjQgLjYtMS4xIDEuMy0yLjEgMi0zLjIgLjMtLjUgLjYtLjkgLjktMS40IC43LTEuMSAxLjMtMi4yIDItMy4zIC4yLS40IC41LS44IC43LTEuMiAyLjQtNCA0LjYtOC4xIDYuOC0xMi4yIC4xLS4yIC4yLS4zIC4zLS41IC42LTEuMSAxLjEtMi4yIDEuNy0zLjMgLjItLjYgLjUtMS4xIC44LTEuNyAuNS0xIDEtMi4xIDEuNS0zLjEgLjMtLjcgLjYtMS4zIC45LTIgLjUtMSAxLTIgMS40LTNsLjktMi4xYy41LTEgLjktMiAxLjMtMyAuMy0uNyAuNi0xLjUgLjktMi4ybDEuMi0zYy4zLS44IC42LTEuNSAuOS0yLjMgLjQtMSAuNy0yIDEuMS0zcy43LTEuOSAxLTIuOGMuNi0xLjYgMS4yLTMuMyAxLjctNC45IC4zLTEgLjYtMS45IC45LTIuOHMuNS0xLjggLjgtMi43Yy4yLS45IC41LTEuOSAuOC0yLjhzLjYtMS44IC44LTIuN2MuMy0xIC41LTEuOSAuOC0yLjkgLjItLjkgLjUtMS44IC43LTIuNyAuMi0xIC41LTIgLjctMyAuMi0uOSAuNC0xLjcgLjYtMi42IC4yLTEgLjUtMi4xIC43LTMuMiAuMi0uOCAuMy0xLjYgLjUtMi40IC4zLTEuMyAuNi0yLjcgLjgtNCAuMS0uNiAuMi0xLjEgLjMtMS43bC45LTUuN2MuMS0uNiAuMi0xLjMgLjMtMS45IC4xLTEuMyAuMy0yLjYgLjUtMy45IC4xLS44IC4yLTEuNSAuMy0yLjMgLjEtMS4yIC4zLTIuNCAuNC0zLjYgMC0uOCAuMS0xLjYgLjItMi40IC4xLTEuMSAuMi0yLjMgLjMtMy41IC4xLS44IC4xLTEuNiAuMi0yLjQgLjEgMS43IC4xIC41IC4yLS43IDAtLjggLjEtMS41IC4xLTIuMyAuMS0xLjMgLjItMi43IC4yLTQgLjEtLjcgLjEtMS4zIC4xLTIgLjEtMiAuMS00IC4xLTYgMC01My41LTE2LjktMTAzLTQ1LjgtMTQzLjd6TTQ0OCAzNzEuNWMtOS40IDE1LjUtMjAuNiAyOS45LTMzLjYgNDIuOS0yMC42IDIwLjYtNDQuNSAzNi43LTcxLjIgNDgtMTMuOSA1LjgtMjguMiAxMC4zLTQyLjkgMTMuMmwwLTc1LjhjMC01OC42LTg4LjYtNTguNi04OC42IDBsMCA3NS44Yy0xNC43LTIuOS0yOS03LjMtNDIuOS0xMy4yLTI2LjctMTEuMy01MC42LTI3LjQtNzEuMi00OC0xMy0xMy0yNC4yLTI3LjQtMzMuNi00Mi45bDAtNzEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjggMjkuNiAwIDAtMTQ0YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtNC44IDYuNS0zLjcgOS41LTMuN2wwLTkwLjJjLTQuNC0yLTcuNC02LjctNy40LTExLjUgMC0xNi44IDI1LjQtMTYuOCAyNS40IDAgMCA0LjgtMyA5LjQtNy40IDExLjVsMCAzLjljNi4zLTEuNCAxMi43LTIuMyAxOS4yLTIuMyA5LjQgMCAxOC40IDMuNSAyNi4zIDMuNSA3LjIgMCAxNS4yLTMuNSAxOS40LTMuNSAyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCA0OC40YzAgNS42LTE4LjcgNi41LTIyLjQgNi41LTguNiAwLTE2LjYtMy41LTI1LjQtMy41LTcgMC0xNC4xIDEuMi0yMC44IDIuOGwwIDMwLjdjMyAwIDkuNS0xLjEgOS41IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDE0NCAyOS41IDAgMC0yNS44YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgNzEuM3oiXX0sZGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1cm9tb2JlbGV4cGVydGUiLGljb246WzQ0OCw1MTIsW10sImYzN2YiLCJNMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTE2MCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTMyMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNNDQwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTAgMTkybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek00NDAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMCAzNTJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LHVocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaWxpYmlsaSIsaWNvbjpbNTEyLDUxMixbXSwiZTNkOSIsIk00ODguNiAxMDQuMWMxNi43IDE4LjEgMjQuNCAzOS43IDIzLjMgNjUuN2wwIDIwMi40Yy0uNCAyNi40LTkuMiA0OC4xLTI2LjUgNjUuMS0xNy4yIDE3LTM5LjEgMjUuOS02NS41IDI2LjdMOTIgNDY0Yy0yNi40LS44LTQ4LjItOS44LTY1LjMtMjcuMi0xNy4xLTE3LjQtMjYtNDAuMy0yNi43LTY4LjZMMCAxNjkuOGMuOC0yNiA5LjctNDcuNiAyNi43LTY1LjcgMTcuMS0xNi4zIDM4LjgtMjUuMyA2NS4zLTI2LjFsMjkuNCAwLTI1LjQtMjUuOGMtNS43LTUuNy04LjYtMTMtOC42LTIxLjhzMi45LTE2LjEgOC42LTIxLjggMTMtOC42IDIxLjktOC42IDE2LjEgMi45IDIxLjkgOC42bDczLjMgNjkuNCA4OCAwIDc0LjUtNjkuNEMzODEuNyAyLjkgMzg5LjIgMCAzOTggMHMxNi4xIDIuOSAyMS45IDguNmM1LjcgNS43IDguNiAxMyA4LjYgMjEuOHMtMi45IDE2LjEtOC42IDIxLjhMMzk0LjYgNzggNDIzLjkgNzhjMjYuNCAuOCA0OCA5LjggNjQuNyAyNi4xem0tMzguOCA2OS43Yy0uNC05LjYtMy43LTE3LjQtMTAuNy0yMy41LTUuMi02LjEtMTQtOS40LTIyLjctOS44bC0zMjAuNCAwYy05LjYgLjQtMTcuNCAzLjctMjMuNiA5LjgtNi4xIDYuMS05LjQgMTMuOS05LjggMjMuNWwwIDE5NC40YzAgOS4yIDMuMyAxNyA5LjggMjMuNXMxNC40IDkuOCAyMy42IDkuOGwzMjAuNCAwYzkuMiAwIDE3LTMuMyAyMy4zLTkuOHM5LjctMTQuMyAxMC4xLTIzLjVsMC0xOTQuNHpNMTg1LjUgMjE2LjVjNi4zIDYuMyA5LjcgMTQuMSAxMC4xIDIzLjJsMCAzMy4zYy0uNCA5LjItMy43IDE2LjktOS44IDIzLjItNi4yIDYuMy0xNCA5LjUtMjMuNiA5LjVzLTE3LjUtMy4yLTIzLjYtOS41LTkuNC0xNC05LjgtMjMuMmwwLTMzLjNjLjQtOS4xIDMuOC0xNi45IDEwLjEtMjMuMnMxMy4yLTkuNiAyMy4zLTEwYzkuMiAuNCAxNyAzLjcgMjMuMyAxMHptMTkxLjUgMGM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMnMtMTQgOS41LTIzLjYgOS41LTE3LjQtMy4yLTIzLjYtOS41Yy03LTYuMy05LjQtMTQtOS43LTIzLjJsMC0zMy4zYy4zLTkuMSAzLjctMTYuOSAxMC0yMy4yczE0LjEtOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEweiJdfSxwaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmVvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjYxMiIsIk0zODMuOCA1MTJsLTk1LjEgMC0xMDguMi0xNTQuNSAwIDkxLjEtODYuNCA2My40LTk3LjcgMCAwLTQ4Mi4yIDQwLjUtMjkuOCAxMDggMCAxMjMuNyAxNzYuMSAwLTExMi43IDg2LjQtNjMuNCA5Ny43IDAgMCA0NjEuNS02OC45IDUwLjV6TTcuMiAzNS4zbDAgNDYwLjcgNzItNTIuOSAwLTI0OS4xIDIxNS41IDMwNy42IDg0LjggMCA1Mi40LTM4LjItNzguMyAwLTMxNi4xLTQ1MC41LTMwLjIgMjIuM3pNODkuNyA1MDEuOWw4MC01OC44IDAtMTAxLTc5LjgtMTE0LjQgMCAyMjAuOS03Mi42IDUzLjMgNzIuMyAwIDAgMHpNNDkgMTAuOGwzMTAuNiA0NDIuNiA4Mi40IDAgMC00NDIuNi03OS44IDAgMCAzMTcuNi0yMjIuOS0zMTcuNi05MC4zIDB6TTI3OS40IDE5MS42bDcyIDEwMi44IDAtMjc4LjUtNzIgNTMgMCAxMjIuN3oiXX0sZmhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjZjYyIsIk0xMjAuMSAyMDguM2MtMy45LTIuOS03LjgtNC4zLTExLjYtNC4zbC0xNy40IDAgMCAxMDQuNSAxNy40IDBjMy45IDAgNy44LTEuNCAxMS42LTQuM3M1LjgtNy4zIDUuOC0xMy4xbDAtNjkuN2MwLTUuOC0yLTEwLjItNS44LTEzLjF6TTQwNC4xIDMyTDQzLjkgMzJDMTkuNyAzMiAuMSA1MS42IDAgNzUuOEwwIDQzNi4yQy4xIDQ2MC40IDE5LjcgNDgwIDQzLjkgNDgwbDM2MC4yIDBjMjQuMiAwIDQzLjgtMTkuNiA0My45LTQzLjhsMC0zNjAuNEM0NDcuOSA1MS42IDQyOC4zIDMyIDQwNC4xIDMyek0xNTQuMiAyOTEuMmMwIDE4LjgtMTEuNiA0Ny4zLTQ4LjQgNDcuM2wtNDYuNCAwIDAtMTY1LjUgNDcuNCAwYzM1LjQgMCA0Ny40IDI4LjUgNDcuNCA0Ny4zbDAgNzAuOXptMTAwLjctODguN2wtNTMuMyAwIDAgMzguNCAzMi42IDAgMCAyOS42LTMyLjYgMCAwIDM4LjQgNTMuMyAwIDAgMjkuNi02Mi4yIDBjLTExLjIgLjMtMjAuNC04LjUtMjAuNy0xOS43bDAtMTI1LjFjLS4zLTExLjEgOC42LTIwLjQgMTkuNy0yMC43bDYzLjIgMCAwIDI5LjV6TTM1OC41IDMxNy44Yy0xMy4yIDMwLjctMzYuOCAyNC42LTQ3LjQgMGwtMzguNS0xNDQuOCAzMi42IDAgMjkuNyAxMTMuNyAyOS42LTExMy43IDMyLjYgMC0zOC41IDE0NC44eiJdfSxoaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG90amFyIixpY29uOls1MTIsNTEyLFtdLCJmM2IxIiwiTTM2MS44IDBjMCAxMzEuNi04MC43IDE3Ni44LTE0MC4yIDIwOS40LS42IC4zLTEuMSAuNi0xLjYgLjktNTMuOCAzMC4yLTg4LjcgNDkuOC04OS42IDEyMmwtOTguMSAwYzAtMTMxLjUgODAuNy0xNzYuNyAxNDAuMi0yMDkuMyA1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OSAwek0zMDEuMyAzMDIuNmM1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OCAwYzAgMTMxLjYtODAuNyAxNzYuNy0xNDAuMiAyMDkuNC01NC44IDI5LjgtOTAuMyA1MC05MC4zIDEyM2wtOTggMGMwLTEzMS42IDgwLjctMTc2LjggMTQwLjItMjA5LjR6Il19LG1ocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkb2NodWIiLGljb246WzQ0OCw1MTIsW10sImYzOTQiLCJNNDEzLjkgMTYwTDI3MiAxNjAgMjcyIDE5LjYgNDEzLjkgMTYwek0zMjAgMTkybDAgMTMwYzAgNjYuOC0zNi41IDEwMC4xLTExMy4zIDEwMC4xbC05NC43IDAgMC0zMzcuMyA5NC43IDBjMTIgMCAyMy4xIC44IDMzLjEgMi41bDAtODRDMjI4LjkgMS4xIDIxNy40IDAgMjA1LjIgMEwxNiAwIDE2IDUxMiAyMDUuMiA1MTJDMzQ1LjcgNTEyIDQxNiA0NDcuNCA0MTYgMzE4LjFsMC0xMjYuMS05NiAweiJdfSxnaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8iLGljb246WzQ0OCw1MTIsW10sImY0MGEiLCJNNDAzLjIgMzJMNDQuOCAzMkMyMC4xIDMyIDAgNTIuMSAwIDc2LjhMMCA0MzUuMkMwIDQ1OS45IDIwLjEgNDgwIDQ0LjggNDgwbDM1OC40IDBjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0LjhsMC0zNTguNEM0NDggNTIuMSA0MjcuOSAzMiA0MDMuMiAzMnpNMzc3IDE4MC44Yy0xLjQgMzEuNS0yMy40IDc0LjctNjYgMTI5LjQtNDQgNTcuMi04MS4zIDg1LjgtMTExLjcgODUuOC0xOC45IDAtMzQuOC0xNy40LTQ3LjktNTIuMy0yNS41LTkzLjMtMzYuNC0xNDgtNTcuNC0xNDgtMi40IDAtMTAuOSA1LjEtMjUuNCAxNS4yTDUzLjQgMTkxLjNjMzcuMy0zMi44IDcyLjktNjkuMiA5NS4yLTcxLjIgMjUuMi0yLjQgNDAuNyAxNC44IDQ2LjUgNTEuNyAyMC43IDEzMS4yIDI5LjkgMTUxIDY3LjYgOTEuNiAxMy41LTIxLjQgMjAuOC0zNy43IDIxLjgtNDguOSAzLjUtMzMuMi0yNS45LTMwLjktNDUuOC0yMi40IDE1LjktNTIuMSA0Ni4zLTc3LjQgOTEuMi03NiAzMy4zIC45IDQ5IDIyLjUgNDcuMSA2NC43eiJdfSxiaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWF4Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmMTM2IiwiTTQ2MS4xIDQ0Mi43bC05Ny40IDAgNTEuOS0yNDIuN2MyLjMtMTAuMiAuOS0xOS41LTQuNC0yNS43LTUtNi4xLTEzLjctOS42LTI0LjItOS42bC00OS4zIDAtNTkuNSAyNzgtOTcuNCAwIDU5LjUtMjc4LTgzLjQgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtNDQuNi05NS40IDM3Mi4xIDBjMzkuNCAwIDc1LjMgMTYuMyA5OC4zIDQ0LjkgMjMuMyAyOC42IDMxLjggNjcuNCAyMy42IDEwNS45TDQ2MS4xIDQ0Mi43eiJdfSxYRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsWyJmb250LWF3ZXNvbWUtYWx0Il0sImYzNWMiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTU0IDU4YzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuOCAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0seGhyPVhFZSx2aHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BlYWthcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmMyIsIk02NC40IDM5MS44Qy0xNSAzMDMuNi03LjYgMTY3LjQgODEuMSA4Ny42czIyNC44LTczIDMwNC4yIDE1LjIgNzIgMjI0LjQtMTYuNiAzMDQuMWMtMTguNyAxNi45IDY0IDQzLjEgNDIgNTIuMy04Mi4xIDM0LjItMjUzLjkgMzUtMzQ2LjItNjcuNWwwIDB6TTI3Ny43IDE4MC4ybDM4LjUtNDAuOWMtOS42LTguOS0zMi0yNi44LTc2LjItMjcuNi01Mi4zLS45LTk1LjkgMjguMy05Ni44IDgwLS4yIDExLjMgLjMgMzYuNyAyOS40IDU0LjggMzQuNSAyMS40IDg2LjUgMjEuNSA4NiA1Mi4zLS40IDIxLjMtMjYuNCAyNS44LTM4LjYgMjUuNi0zIDAtMzAuMi0uNS00Ny42LTI0LjZsLTQwIDQyLjZjMjguMiAyNyA1OSAzMi42IDgzLjUgMzMgMTAuMiAuMiA5Ni40IC4zIDk3LjgtODEgLjMtMTUuOC0yLjEtMzkuNy0yOC45LTU2LjYtMzQuNC0yMS42LTg1LTE5LjQtODQuNC00OS43IC40LTIzLjMgMzEtMjUuNCAzNy41LTI1LjMgLjQgMCAyNi42IC4zIDM5LjYgMTcuNGwwIDB6Il19LHlocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYW50YXN5LWZsaWdodC1nYW1lcyIsaWNvbjpbNTEyLDUxMixbXSwiZjZkYyIsIk0yNTYgMzIuOUwzMi45IDI1NiAyNTYgNDc5LjEgNDc5LjEgMjU2IDI1NiAzMi45ek04OC4zIDI1NS44YzItMiAxMS45LTEyLjMgOTYuNS05Ny41IDQxLjQtNDEuOCA4Ni4yLTQzLjggMTE5LjgtMTguNyAyNC42IDE4LjQgNjIuMSA1OC45IDYyLjEgNTkgLjcgLjcgMS4xIDIuOSAuNiAzLjQtMTEuMyAxMS44LTIyLjcgMjMuNS0zMy41IDM0LjctMzQuMi0zMi4zLTQwLjUtMzguMi00OC41LTQ0LTE3LjgtMTIuNy00MS40LTEwLjEtNTcgNS4xLTIuMiAyLjEtMS44IDMuNCAuMSA1LjQgMi45IDIuOSAyOC4xIDI4LjMgMzUuMSAzNS44LTExLjkgMTEuNi0yMy43IDIzLTM1LjcgMzQuNy0xMi0xMi41LTI0LjUtMjUuNS0zNi41LTM4LjEtMjEuNCAyMS4xLTQxLjcgNDEuMS02MS44IDYxTDg4LjMgMjU1Ljh6TTMyMy4yIDM1Ny40Yy0zNS41IDM1LjQtNzguMSAzOC4xLTEwNyAyMC41LTIyLjEtMTMuNS0zOS40LTMyLjEtNzIuOS02Ni44IDEyLTEyLjQgMjMuOC0yNC40IDM1LjQtMzYuMyAzMyAzMS45IDM3LjEgMzYgNDQuNyA0Mi4xIDE4LjUgMTQuNyA0Mi41IDEzLjcgNTkuMy0xLjggMy43LTMuNCAzLjctMy42IC4xLTcuMi0xMC42LTEwLjctMjEuMi0yMS40LTMxLjgtMzIuMi0xLjMtMS4zLTMtMi41LS44LTQuNyAxMC44LTEwLjcgMjEuNS0yMS41IDMyLjItMzIuMyAuMy0uMyAuNi0uNCAxLjktMS4xIDEyLjQgMTIuOSAyNC45IDI1LjkgMzcuMiAzOC44IDIxLTIwLjcgNDEuMi00MC43IDYxLjMtNjAuNCAxMy43IDEzLjQgMjcuMSAyNi42IDQwLjkgNDAtMjAuMiAyMC45LTgxLjcgODIuNy0xMDAuNSAxMDEuNXpNMjU2IDBMMCAyNTYgMjU2IDUxMiA1MTIgMjU2IDI1NiAwek0xNiAyNTZMMjU2IDE2IDQ5NiAyNTYgMjU2IDQ5NiAxNiAyNTZ6Il19LHdocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW51eCIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YyIsIk0yMjAuOSAxMjMuM2MxIC41IDEuOCAxLjcgMyAxLjcgMS4xIDAgMi44LS40IDIuOS0xLjUgLjItMS40LTEuOS0yLjMtMy4yLTIuOS0xLjctLjctMy45LTEtNS41LS4xLS40IC4yLS44IC43LS42IDEuMSAuMyAxLjMgMi4zIDEuMSAzLjQgMS43ek0xOTkgMTI1YzEuMiAwIDItMS4yIDMtMS43IDEuMS0uNiAzLjEtLjQgMy41LTEuNiAuMi0uNC0uMi0uOS0uNi0xLjEtMS42LS45LTMuOC0uNi01LjUgLjEtMS4zIC42LTMuNCAxLjUtMy4yIDIuOSAuMSAxIDEuOCAxLjUgMi44IDEuNHpNNDIwIDQwMy44Yy0zLjYtNC01LjMtMTEuNi03LjItMTkuNy0xLjgtOC4xLTMuOS0xNi44LTEwLjUtMjIuNC0xLjMtMS4xLTIuNi0yLjEtNC0yLjktMS4zLS44LTIuNy0xLjUtNC4xLTIgOS4yLTI3LjMgNS42LTU0LjUtMy43LTc5LjEtMTEuNC0zMC4xLTMxLjMtNTYuNC00Ni41LTc0LjQtMTcuMS0yMS41LTMzLjctNDEuOS0zMy40LTcyIC41LTQ1LjkgNS4xLTEzMS4yLTc1LjgtMTMxLjMtMTAyLjQtLjItNzYuOCAxMDMuNC03Ny45IDEzNS4yLTEuNyAyMy40LTYuNCA0MS44LTIyLjUgNjQuNy0xOC45IDIyLjUtNDUuNSA1OC44LTU4LjEgOTYuNy02IDE3LjktOC44IDM2LjEtNi4yIDUzLjMtNi41IDUuOC0xMS40IDE0LjctMTYuNiAyMC4yLTQuMiA0LjMtMTAuMyA1LjktMTcgOC4zcy0xNCA2LTE4LjUgMTQuNWMtMi4xIDMuOS0yLjggOC4xLTIuOCAxMi40IDAgMy45IC42IDcuOSAxLjIgMTEuOCAxLjIgOC4xIDIuNSAxNS43IC44IDIwLjgtNS4yIDE0LjQtNS45IDI0LjQtMi4yIDMxLjcgMy44IDcuMyAxMS40IDEwLjUgMjAuMSAxMi4zIDE3LjMgMy42IDQwLjggMi43IDU5LjMgMTIuNSAxOS44IDEwLjQgMzkuOSAxNC4xIDU1LjkgMTAuNCAxMS42LTIuNiAyMS4xLTkuNiAyNS45LTIwLjIgMTIuNS0uMSAyNi4zLTUuNCA0OC4zLTYuNiAxNC45LTEuMiAzMy42IDUuMyA1NS4xIDQuMSAuNiAyLjMgMS40IDQuNiAyLjUgNi43bDAgLjFjOC4zIDE2LjcgMjMuOCAyNC4zIDQwLjMgMjMgMTYuNi0xLjMgMzQuMS0xMSA0OC4zLTI3LjkgMTMuNi0xNi40IDM2LTIzLjIgNTAuOS0zMi4yIDcuNC00LjUgMTMuNC0xMC4xIDEzLjktMTguMyAuNC04LjItNC40LTE3LjMtMTUuNS0yOS43ek0yMjMuOCA4Ny4zYzkuOC0yMi4yIDM0LjItMjEuOCA0NC0uNCA2LjUgMTQuMiAzLjYgMzAuOS00LjMgNDAuNC0xLjYtLjgtNS45LTIuNi0xMi42LTQuOSAxLjEtMS4yIDMuMS0yLjcgMy45LTQuNiA0LjgtMTEuOC0uMi0yNy05LjEtMjcuMy03LjMtLjUtMTMuOSAxMC44LTExLjggMjMtNC4xLTItOS40LTMuNS0xMy00LjQtMS02LjktLjMtMTQuNiAyLjktMjEuOHpNMTgzLjEgNzUuOGMxMC4xIDAgMjAuOCAxNC4yIDE5LjEgMzMuNS0zLjUgMS03LjEgMi41LTEwLjIgNC42IDEuMi04LjktMy4zLTIwLjEtOS42LTE5LjYtOC40IC43LTkuOCAyMS4yLTEuOCAyOC4xIDEgLjggMS45LS4yLTUuOSA1LjUtMTUuNi0xNC42LTEwLjUtNTIuMSA4LjQtNTIuMXptLTEzLjYgNjAuN2M2LjItNC42IDEzLjYtMTAgMTQuMS0xMC41IDQuNy00LjQgMTMuNS0xNC4yIDI3LjktMTQuMiA3LjEgMCAxNS42IDIuMyAyNS45IDguOSA2LjMgNC4xIDExLjMgNC40IDIyLjYgOS4zIDguNCAzLjUgMTMuNyA5LjcgMTAuNSAxOC4yLTIuNiA3LjEtMTEgMTQuNC0yMi43IDE4LjEtMTEuMSAzLjYtMTkuOCAxNi0zOC4yIDE0LjktMy45LS4yLTctMS05LjYtMi4xLTgtMy41LTEyLjItMTAuNC0yMC0xNS04LjYtNC44LTEzLjItMTAuNC0xNC43LTE1LjMtMS40LTQuOSAwLTkgNC4yLTEyLjN6bTMuMyAzMzRjLTIuNyAzNS4xLTQzLjkgMzQuNC03NS4zIDE4LTI5LjktMTUuOC02OC42LTYuNS03Ni41LTIxLjktMi40LTQuNy0yLjQtMTIuNyAyLjYtMjYuNGwwLS4yYzIuNC03LjYgLjYtMTYtLjYtMjMuOS0xLjItNy44LTEuOC0xNSAuOS0yMCAzLjUtNi43IDguNS05LjEgMTQuOC0xMS4zIDEwLjMtMy43IDExLjgtMy40IDE5LjYtOS45IDUuNS01LjcgOS41LTEyLjkgMTQuMy0xOCA1LjEtNS41IDEwLTguMSAxNy43LTYuOSA4LjEgMS4yIDE1LjEgNi44IDIxLjkgMTZsMTkuNiAzNS42YzkuNSAxOS45IDQzLjEgNDguNCA0MSA2OC45em0tMS40LTI1LjljLTQuMS02LjYtOS42LTEzLjYtMTQuNC0xOS42IDcuMSAwIDE0LjItMi4yIDE2LjctOC45IDIuMy02LjIgMC0xNC45LTcuNC0yNC45LTEzLjUtMTguMi0zOC4zLTMyLjUtMzguMy0zMi41LTEzLjUtOC40LTIxLjEtMTguNy0yNC42LTI5LjlzLTMtMjMuMy0uMy0zNS4yYzUuMi0yMi45IDE4LjYtNDUuMiAyNy4yLTU5LjIgMi4zLTEuNyAuOCAzLjItOC43IDIwLjgtOC41IDE2LjEtMjQuNCA1My4zLTIuNiA4Mi40IC42LTIwLjcgNS41LTQxLjggMTMuOC02MS41IDEyLTI3LjQgMzcuMy03NC45IDM5LjMtMTEyLjcgMS4xIC44IDQuNiAzLjIgNi4yIDQuMSA0LjYgMi43IDguMSA2LjcgMTIuNiAxMC4zIDEyLjQgMTAgMjguNSA5LjIgNDIuNCAxLjIgNi4yLTMuNSAxMS4yLTcuNSAxNS45LTkgOS45LTMuMSAxNy44LTguNiAyMi4zLTE1IDcuNyAzMC40IDI1LjcgNzQuMyAzNy4yIDk1LjcgNi4xIDExLjQgMTguMyAzNS41IDIzLjYgNjQuNiAzLjMtLjEgNyAuNCAxMC45IDEuNCAxMy44LTM1LjctMTEuNy03NC4yLTIzLjMtODQuOS00LjctNC42LTQuOS02LjYtMi42LTYuNSAxMi42IDExLjIgMjkuMiAzMy43IDM1LjIgNTkgMi44IDExLjYgMy4zIDIzLjcgLjQgMzUuNyAxNi40IDYuOCAzNS45IDE3LjkgMzAuNyAzNC44LTIuMi0uMS0zLjIgMC00LjIgMCAzLjItMTAuMS0zLjktMTcuNi0yMi44LTI2LjEtMTkuNi04LjYtMzYtOC42LTM4LjMgMTIuNS0xMi4xIDQuMi0xOC4zIDE0LjctMjEuNCAyNy4zLTIuOCAxMS4yLTMuNiAyNC43LTQuNCAzOS45LS41IDcuNy0zLjYgMTgtNi44IDI5LTMyLjEgMjIuOS03Ni43IDMyLjktMTE0LjMgNy4yem0yNTcuNC0xMS41Yy0uOSAxNi44LTQxLjIgMTkuOS02My4yIDQ2LjUtMTMuMiAxNS43LTI5LjQgMjQuNC00My42IDI1LjVzLTI2LjUtNC44LTMzLjctMTkuM2MtNC43LTExLjEtMi40LTIzLjEgMS4xLTM2LjMgMy43LTE0LjIgOS4yLTI4LjggOS45LTQwLjYgLjgtMTUuMiAxLjctMjguNSA0LjItMzguNyAyLjYtMTAuMyA2LjYtMTcuMiAxMy43LTIxLjEgLjMtLjIgLjctLjMgMS0uNSAuOCAxMy4yIDcuMyAyNi42IDE4LjggMjkuNSAxMi42IDMuMyAzMC43LTcuNSAzOC40LTE2LjMgOS0uMyAxNS43LS45IDIyLjYgNS4xIDkuOSA4LjUgNy4xIDMwLjMgMTcuMSA0MS42IDEwLjYgMTEuNiAxNCAxOS41IDEzLjcgMjQuNnpNMTczLjQgMTQ4LjdjMiAxLjkgNC43IDQuNSA4IDcuMSA2LjYgNS4yIDE1LjggMTAuNiAyNy4zIDEwLjYgMTEuNiAwIDIyLjUtNS45IDMxLjgtMTAuOCA0LjktMi42IDEwLjktNyAxNC44LTEwLjRzNS45LTYuMyAzLjEtNi42LTIuNiAyLjYtNiA1LjFjLTQuNCAzLjItOS43IDcuNC0xMy45IDkuOC03LjQgNC4yLTE5LjUgMTAuMi0yOS45IDEwLjJzLTE4LjctNC44LTI0LjktOS43Yy0zLjEtMi41LTUuNy01LTcuNy02LjktMS41LTEuNC0xLjktNC42LTQuMy00LjktMS40LS4xLTEuOCAzLjcgMS43IDYuNXoiXX0sa2hyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvdHRvbi1idXJlYXUiLGljb246WzUxMiw1MTIsW10sImY4OWUiLCJNNDc0LjMgMzMwLjRDNDUwLjYgNDIyLjMgMzgwLjEgNDc1IDI3Mi40IDQ3OC44bDAtNDkuMmMwLTQ4IDI2LjQtNzQuNCA3NC40LTc0LjQgNjIgMCA5OS4yLTM3LjIgOTkuMi05OS4yIDAtNjEuNC0zNi41LTk4LjMtOTcuNC05OS4xLTMzLTY5LjMtMTQ2LjUtNjQuNy0xNzcuMiAwLTYwLjkgLjgtOTcuNCAzNy43LTk3LjQgOTkuMSAwIDYyLjEgMzcuMyA5OS40IDk5LjQgOTkuNCA0OCAwIDc0LjYgMjYuMiA3NC42IDc0LjRsMCA0OS4yYy0xMzQuNC01LTIxMS4xLTg1LjEtMjExLjEtMjIzIDAtMTQxLjggODEuNC0yMjMuMiAyMjMuMi0yMjMuMiAxMTQuOCAwIDE4OS44IDUzLjIgMjE0LjcgMTQ4LjhsMjUuMyAwQzQ3My45IDcxLjUgMzg4LjIgOCAyNTkuOCA4IDEwNSA4IDEyIDEwMS4yIDEyIDI1NS44IDEyIDQxMS4xIDEwNS4yIDUwNC4zIDI1OS44IDUwNCAzODguMSA1MDQgNDczLjcgNDQwLjIgNDk5LjUgMzMwLjRsLTI1LjIgMHpNMzU3IDE4Mi4zYzQxLjQgMy40IDY0LjIgMjkgNjQuMiA3My43IDAgNDgtMjYuNCA3NC40LTc0LjQgNzQuNC0yOC42IDAtNDkuMy05LjYtNjEuNi0yNy4zIDgzLjEtMTYuNSA3NS42LTk5LjcgNzEuOC0xMjAuN3ptLTgxLjcgOTcuNGMtMi41LTEwLjMtMTYuMy04NyA1Ni4yLTk3IDIuMyAxMC4xIDE2LjUgODcuMS01Ni4zIDk3bDAgMHpNMjYwIDEzMmMyOC42IDAgNDkgOS43IDYxLjQgMjcuNi0yOC40IDUuNS00OS40IDIwLjYtNjEuNiA0My40LTEyLjItMjIuOS0zMy4yLTM4LTYxLjYtNDMuNCAxMi40LTE3LjcgMzMuMy0yNy40IDYxLjYtMjcuNGwuMi0uM3ptLTcxLjUgNTAuN2M3My4yIDEwLjYgNTguOSA4Ni44IDU2LjUgOTctNzIuNC05LjgtNTktODctNTYuMi05N2wtLjIgMHpNMTczLjIgMzMwLjRjLTQ4IDAtNzQuNC0yNi40LTc0LjQtNzQuNCAwLTQ0LjQgMjIuOS03MCA2NC4yLTczLjctNi44IDM3LjItMS40IDEwNi41IDcxLjYgMTIwLjctMTIuMSAxNy42LTMyLjggMjcuMy02MS4xIDI3LjNsLS4zIDB6bTUzLjIgMTIuNGMxNC4zLTcuNiAyNi0xOS4zIDMzLjYtMzMuNSA3LjggMTQuNSAxOS4zIDI1LjUgMzMuOCAzMy41LTE0LjQgNy42LTI2LjEgMTkuNC0zMy42IDMzLjgtOC0xNC41LTE5LjEtMjYuMi0zMy42LTMzLjhsLS4zIDB6Il19LFNocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtd2FsbGV0IixpY29uOls0NDgsNTEyLFtdLCJmMWVlIiwiTTE1Ni44IDEyNi44YzM3LjYgNjAuNiA2NC4yIDExMy4xIDg0LjMgMTYyLjUtOC4zIDMzLjgtMTguOCA2Ni41LTMxLjMgOTguMy0xMy4yLTUyLjMtMjYuNS0xMDEuMy01Ni0xNDguNSA2LjUtMzYuNCAyLjMtNzMuNiAzLTExMi4zek0xMDkuMyAyMDBsLTkzLjIgMGMtNi41IDAtMTAuNSA3LjUtNi41IDEyLjcgNDIuMiA1NC4zIDcxLjcgMTE3LjggOTEuNyAxODcuM2wxMDMuNSAwYy0xNi4yLTY5LjctMzguNy0xMzMuNy04Mi41LTE5My41LTMtNC04LTYuNS0xMy02LjV6bTQ3LjgtODhjNjguNSAxMDggMTMwIDIzNC41IDEzOC4yIDM2OEw0MDkgNDgwYy0xMi0xMzgtNjguNC0yNjUtMTQzLjItMzY4bC0xMDguNyAwek00MDguOSA0My41Yy0xLjgtNi44LTguMi0xMS41LTE1LjItMTEuNWwtODguMyAwYy01LjMgMC05IDUtNy44IDEwLjMgMTMuMiA0Ni41IDIyLjMgOTUuNSAyNi41IDE0NiA0OC4yIDg2LjIgNzkuNyAxNzguMyA5MC42IDI3MC44IDE1LjgtNjAuNSAyNS4zLTEzMy41IDI1LjMtMjAzIDAtNzMuNi0xMi4xLTE0NS4xLTMxLjEtMjEyLjZ6Il19LE1ocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3Vyc3F1YXJlIixpY29uOlszODQsNTEyLFtdLCJmMTgwIiwiTTMzMS4xIDNMNTcuOSAzQzIwLjQgMyA4IDMxLjMgOCA0OS4xTDggNDgyLjljMCAyMC4zIDEyLjEgMjcuNyAxOC4yIDMwLjEgNi4yIDIuNSAyMi44IDQuNiAzMi45LTcuMSAxMjguOS0xNDkuNCAxMzEuMS0xNTEuOSAxMzEuMS0xNTEuOSAzLjEtMy40IDMuNC0zLjEgNi44LTMuMWw4My40IDBjMzUuMSAwIDQwLjYtMjUuMiA0NC4zLTM5LjdsNDguNi0yNDNDMzgxLjggMjUuOCAzNzEuMSAzIDMzMS4xIDN6TTMxNC44IDc2LjhsLTExLjQgNTkuN2MtMS4yIDYuNS05LjUgMTMuMi0xNi45IDEzLjJsLTEwNi40IDBjLTEyIDAtMjAuNiA4LjMtMjAuNiAyMC4zbDAgMTNjMCAxMiA4LjYgMjAuNiAyMC42IDIwLjZsOTAuNCAwYzguMyAwIDE2LjYgOS4yIDE0LjggMTguMi0xLjggOC45LTEwLjUgNTMuOC0xMS40IDU4LjgtLjkgNC45LTYuOCAxMy41LTE2LjkgMTMuNWwtNzMuNSAwYy0xMy41IDAtMTcuMiAxLjgtMjYuNSAxMi42IDAgMC04LjkgMTEuNC04OS41IDEwOC4zLS45IC45LTEuOCAuNi0xLjgtLjNsMC0zMzguOGMwLTcuNyA2LjgtMTYuNiAxNi42LTE2LjZsMjE5IDBjOC4yIDAgMTUuNiA3LjcgMTMuNSAxNy41eiJdfSxDaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hpcnRzaW5idWxrIixpY29uOls0NDgsNTEyLFtdLCJmMjE0IiwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjQtNC40IDkuOXptMzkuNCAxNy41bDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0xNzIuMS0xNGw0LjQgOS45IDMwLjYtMTMuNC00LjQtOS45LTMwLjYgMTMuNHpNMTc5LjEgNDQ1bDMwLjMgMTMuNyA0LjQtOS45LTMwLjMtMTMuNC00LjQgOS42ek02MC40IDM5Mi44bDMwLjYgMTMuNCA0LjQtOS42LTMwLjYtMTMuNy00LjQgOS45em0yMTEuNCAzOC41bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40em0tMzkuMyAxNy41bDQuNCA5LjkgMzAuNi0xMy43LTQuNC05LjYtMzAuNiAxMy40em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy43ek0xNzAgNDYuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tNDcuMiAwbC0zMy42IDAgMCAxMC41IDMzLjUgMCAuMS0xMC41em0tNDcuMyAwbC0zMy4yIDAgMCAxMC41IDMzLjMgMC0uMS0xMC41em0xNDEuNSAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTk0LjUgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptLTk0LjYgMGwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em0xNDEuNSAwbC0zMy4zIDAgMCAxMC41IDMzLjMgMCAwLTEwLjV6TTUyLjggMzUxLjFsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptNzAtMjE1LjlsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS03MCAxMC42bDIyLjggMCAwLTEwLjUtMzMuNiAwIDAgMzMuNSAxMC44IDAgMC0yM3pNMjIxLjcgMzc0LjRhOTEuMyA5MS4zIDAgMSAwIDAtMTgyLjYgOTEuMyA5MS4zIDAgMSAwIDAgMTgyLjZ6TTE3My41IDI2My4zYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOS0uOSAwYy02LjQtOS45LTI0LjgtMTMuMS0zNS42LTEzLjEtOSAwLTI5LjggMS44LTI5LjggMTQuOSAwIDIxLjYgNzguNS0xMC4yIDc4LjUgMzcuOSAwIDI1LjQtMzEuNSAzMS4yLTUxIDMxLjItMTguMSAwLTMyLjQtMi45LTQ3LjItMTIuMmw5LTE4LjQgLjkgMGM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNGwtMTAuOCAwIDAgMzMuNiAxMC44IDAgMC0zMy42ek0zOTUuMiAzODQuNmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTUyLjggMzA3LjlsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMCAzLjdsMCA0MDYgMjIxLjcgOTguNiAyMjYuMy05OC42IDAtNDA2LTQ0OCAwek00MTguOCAzOTAuOGwtMTk2LjggODUuNy0xOTIuOC04NS43IDAtMjcwLjEgMzg5LjcgMCAwIDI3MC4xLS4xIDB6bTAtMjk5LjNsLTM4OS42IDAgMC01OC42IDM4OS43IDAgMCA1OC42LS4xIDB6TTUyLjggMjIxLjZsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptMCA0My4ybC0xMC44IDAgMCAzMy41IDEwLjggMCAwLTMzLjV6TTE3MCAxMzUuMmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41ek0zOTUuMiAyOTguM2wxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAtNDMuMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTIxNyAxMzUuMmwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41ek0zOTUuMiAyMTJsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0wIDEyOS41bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptLTEzMS0yMDYuM2wtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptODMuNyAzMy42bDEwLjggMCAwLTMzLjUtMzMuNSAwIDAgMTAuNSAyMi44IDAtLjEgMjN6bS0zNi40LTMzLjZsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXoiXX0semhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pbnRiaXQiLGljb246WzUxMiw1MTIsW10sImU2MmYiLCJNNzMuMiA1MTJsMC03My4xIDI5Mi41IDAgMC03My4yIDczLjIgMCAwLTE0Ni4zIDczLjEgMCAwLTIxOS40LTIxOS40IDAgMCA3My4xLTE0Ni4zIDAgMCA3My4yLTczLjEgMCAwIDI5Mi42LTczLjIgMCAwIDczLjEgNzMuMiAwem03My4xLTIxOS40bDczLjIgMCAwIDczLjEtNzMuMiAwIDAtNzMuMXptNzMuMi03My4xbDczLjEgMCAwIDczLjEtNzMuMiAwIDAtNzMuMiAuMSAuMXptNzMuMSAwbDAtNzMuMiA3My4yIDAgMCA3My4xLTczLjIgMCAwIC4xek0zNjUuNyA3My4xbDczLjIgMCAwIDczLjItNzMuMiAwIDAtNzMuMnoiXX0sX2hyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inp1bGlwIixpY29uOls0NDgsNTEyLFtdLCJlODUzIiwiTTQyNCA5OWMwIDIyLjYtMTAuMSA0Mi42LTI1LjUgNTQuOEwyNDkuMyAyODcuN2MtMi44IDIuNC02LjQtMS41LTQuNC00LjdsNTQuNy0xMTAuMWMxLjUtMy4xLS41LTYuOS0zLjYtNi45TDgzLjggMTY2QzUwLjkgMTY2IDI0IDEzNS45IDI0IDk5IDI0IDYyLjEgNTAuOSAzMiA4My44IDMybDI4MC40IDBDMzk3LjEgMzIgNDI0IDYyLjEgNDI0IDk5ek04My44IDQ4MGwyODAuNCAwYzMyLjkgMCA1OS44LTMwLjIgNTkuOC02N3MtMjYuOS02Ny01OS44LTY3bC0yMTIuMyAwYy0zLjEgMC01LjEtMy44LTMuNi02LjlMMjAzLjEgMjI5YzItMy4yLTEuNi03LjEtNC40LTQuN0w0OS41IDM1OC4yQzM0LjEgMzcwLjQgMjQgMzkwLjQgMjQgNDEzIDI0IDQ0OS44IDUwLjkgNDgwIDgzLjggNDgweiJdfSxUaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RheWxpbmtlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmNSIsIk0zODYuNyAyOTIuNWwyLjcgMi43LTE3MC0xNjcuM2MtMy41LTMuNS05LjctMy43LTEzLjgtLjVMMTQ4LjMgMTcxYy00LjIgMy4yLTQuNiA4LjctMS4xIDEyLjJsNjguMSA2NC4zYzMuNiAzLjUgOS45IDMuNyAxNCAuNWwuMS0uMWM0LjEtMy4yIDEwLjQtMyAxNCAuNWw4NCA4MS4zYzMuNiAzLjUgMy4yIDktLjkgMTIuMmwtOTMuMiA3NGMtNC4yIDMuMy0xMC41IDMuMS0xNC4yLS40TDY3LjIgMjY4Yy0zLjUtMy41LTkuNy0zLjctMTMuOS0uNUw3LjUgMzAyLjRjLTQuMiAzLjItNC43IDguNy0xLjIgMTIuMkwyMTUgNTEwLjdzNy40IDYuOCAxNy4zLS44TDQzMC4zIDM0NmM0LTMuMiA0LjQtOC43IC43LTEyLjJsLTQ0LjMtNDEuM3ptNTQuNS04My40TDIzMC43IDIuNWMtMS41LTEuMi04LTUuNS0xNi4zIDEuMUw3LjYgMTY1LjdjLTQuMiAzLjItNC44IDguNy0xLjIgMTIuMmw0Mi4zIDQxLjcgMTcxLjcgMTY1LjFjMy43IDMuNSAxMC4xIDMuNyAxNC4zIC40bDUwLjItMzguOC0uMy0uMyA3LjctNmM0LjItMy4yIDQuNi04LjcgLjktMTIuMmwtNTcuMS01NC40Yy0zLjYtMy41LTEwLTMuNy0xNC4yLS41bC0uMSAuMWMtNC4yIDMuMi0xMC41IDMuMS0xNC4yLS40TDExMyAxODAuOGMtMy42LTMuNS0zLjEtOC45IDEuMS0xMi4ybDkyLjItNzEuNWM0LjEtMy4yIDEwLjMtMyAxMy45IC41bDE2MC40IDE1OWMzLjcgMy41IDEwIDMuNyAxNC4xIC41bDQ1LjgtMzUuOGM0LjEtMy4yIDQuNC04LjcgLjctMTIuMnoiXX0sTGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlYmZsb3ciLGljb246WzY0MCw1MTIsW10sImU2NWMiLCJNNjQwIDY0bC0yMDQuMiAzOTkuMi0xOTEuOCAwIDg1LjUtMTY1LjUtMy44IDBDMjU1LjEgMzg5LjMgMTQ5LjkgNDQ5LjUgMCA0NjMuMkwwIDMwMC4xczk1LjktNS43IDE1Mi4zLTY0LjlsLTE1Mi4zIDAgMC0xNzEuMiAxNzEuMSAwIDAgMTQwLjggMy44IDAgNzAtMTQwLjggMTI5LjQgMCAwIDEzOS45IDMuOCAwIDcyLjYtMTM5LjkgMTg5LjMgMHoiXX0sRGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlbnJlbiIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YiIsIk0yMTQgMTY5LjFDMjE0IDI3OS41IDE1MyAzNzQuNSA2Ni40IDQxNi41IDMwIDM3My4yIDggMzE3LjcgOCAyNTYuNiA4IDEzMy45IDk3LjEgMzIuMiAyMTQgMTIuNWwwIDE1Ni42ek0yNTUgNTA0Yy00Mi45IDAtODMuMy0xMS0xMTguNS0zMC40IDU3LjItMzYuMSAxMDMuNC05MC43IDExOC41LTE1NC42IDE1LjUgNjMuOSA2MS43IDExOC41IDExOC44IDE1NC43LTM1LjEgMTkuMy03NS41IDMwLjMtMTE4LjggMzAuM3ptMTkwLjYtODcuNUMzNTkgMzc0LjUgMjk4IDI3OS42IDI5OCAxNjkuMWwwLTE1Ni42YzExNi45IDE5LjcgMjA2IDEyMS40IDIwNiAyNDQuMSAwIDYxLjEtMjIgMTE2LjYtNTguNCAxNTkuOXoiXX0sJGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtvLWZpIixpY29uOls1MTIsNTEyLFtdLCJlODU2IiwiTTI0OS44IDc1Yzg5LjggMCAxMTMgMS4xIDE0Ni4zIDQuNCA3OC4xIDcuOCAxMjMuNiA1NiAxMjMuNiAxMjUuMmwwIDguOWMwIDY0LjMtNDcuMSAxMTYuOS0xMTAuOCAxMjIuNC01IDE2LjYtMTIuOCAzMy4yLTIzLjMgNDkuOS0yNC40IDM3LjctNzMuMSA4NS4zLTE2Mi45IDg1LjNsLTE3LjcgMGMtNzMuMSAwLTEyOS43LTMxLjYtMTYzLjUtODkuMi0yOS45LTUwLjQtMzMuOC0xMDYuNC0zMy44LTE4MS4yIDAtNzMuNyA0NC40LTExMy42IDk2LjQtMTIwLjIgMzkuMy01IDg4LjEtNS41IDE0NS43LTUuNXptMCA0MS42Yy02MC40IDAtMTAzLjYgLjUtMTM2LjMgNS41LTQ2IDYuNy02NC4zIDMyLjctNjQuMyA3OS4ybC4yIDI1LjdjMS4yIDU3LjMgNy4xIDk3LjEgMjcuNSAxMzQuNSAyNi42IDQ5LjMgNzQuOCA2OC4yIDEyOS43IDY4LjJsMTcuMiAwYzcyIDAgMTA3LTM0LjkgMTI2LjMtNjUuNCA5LjQtMTUuNSAxNy43LTMyLjcgMjIuMi01NC4zbDMuMy0xMy44IDE5LjkgMGM0NC4zIDAgODIuNi0zNiA4Mi42LTgybDAtOC4zYzAtNTEuNS0zMi4yLTc4LjctODguMS04NS4zLTMxLjYtMi44LTUwLjQtMy45LTE0MC4yLTMuOXpNMjY3IDE2OS4yYzM4LjIgMCA2NC44IDMxLjYgNjQuOCA2NyAwIDMyLjctMTguMyA2MS00Mi4xIDgzLjEtMTUgMTUtMzkuMyAzMC41LTU1LjkgNDAuNS00LjQgMi44LTEwIDQuNC0xNi43IDQuNC01LjUgMC0xMC41LTEuNy0xNS41LTQuNC0xNi42LTEwLTQxLTI1LjUtNTYuNS00MC41LTIxLjgtMjAuOC0zOS4yLTQ2LjktNDEuMy03N2wtLjItNi4xYzAtMzUuNSAyNS41LTY3IDY0LjMtNjcgMjIuNyAwIDM4LjggMTEuNiA0OS4zIDI3LjcgMTEuNi0xNi4xIDI3LjItMjcuNyA0OS45LTI3Ljd6bTEyMi41LTMuOWMyOC4zIDAgNDMuOCAxNi42IDQzLjggNDMuMnMtMTUuNSA0Mi43LTQzLjggNDIuN2MtOC45IDAtMTMuOC01LTEzLjgtMTEuN2wwLTYyLjZjMC02LjcgNS0xMS42IDEzLjgtMTEuNnoiXX0sQWhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjViMiIsIk0xNTguNyAyNzQuOWE2NS42IDY1LjYgMCAxIDEgMTMxLjIgMCA2NS42IDY1LjYgMCAxIDEgLTEzMS4yIDB6bTI3MC43LTUuMWwtLjEgMGMtLjctMjkuMy03LjctNTguMi0yMC41LTg0LjZzLTMxLjItNDkuNy01My44LTY4LjRMMzA5LjYgMTQzYzIyIDE0LjIgNDAuMSAzMy44IDUyLjcgNTYuOHMxOS4xIDQ4LjggMTkuMSA3NS4xYzAgODYuNi03MC41IDE1Ny4xLTE1Ny4xIDE1Ny4xUzY3LjIgMzYxLjUgNjcuMiAyNzQuOWMwLTgxLjkgNjMtMTQ5LjMgMTQzLTE1Ni40bDAgMzkuMSAxMDguOC02Mi44LTEwOC44LTYyLjggMCAzOC4zYy0xMDYuNyA3LjItMTkxIDk2LTE5MSAyMDQuNiAwIDExMS42IDg5LjEgMjAyLjMgMjAwLjEgMjA1bDAgLjEgMjEwLjIgMCAwLTIxMC4yeiJdfSxFaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2V5Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmM2JhIiwiTTYzLjggNDA5LjNsNjAuNS01OWMzMi4xIDQyLjggNzEuMSA2NiAxMjYuNiA2Ny40IDMwLjUgLjcgNjAuMy03IDg2LjQtMjIuNCA1LjEgNS4zIDE4LjUgMTkuNSAyMC45IDIyLTMyLjIgMjAuNy02OS42IDMxLjEtMTA4LjEgMzAuMi00My4zLTEuMS04NC42LTE2LjctMTE3LjctNDQuNCAuMy0uNi0zOC4yIDM3LjUtMzguNiAzNy45IDkuNSAyOS44LTEzLjEgNjIuNC00Ni4zIDYyLjQtMjYuOC0uMS00Ny41LTIxLjctNDcuNS00OC41IDAtMzQuMyAzMy4xLTU2LjYgNjMuOC00NS42ek00MTguNyAxNTYuOWMxOS4xIDMxLjMgMjkuNiA2Ny40IDI4LjcgMTA0LTEuMSA0NC44LTE5IDg3LjUtNDguNiAxMjEgLjMgLjMgMjMuOCAyNS4yIDI0LjEgMjUuNSA5LjYtMS4zIDE5LjIgMiAyNS45IDkuMSAxMS4zIDEyIDEwLjkgMzAuOS0xLjEgNDIuNC0xMiAxMS4zLTMwLjkgMTAuOS00Mi40LTEuMS02LjctNy05LjQtMTYuOC03LjYtMjYuMy0yNC45LTI2LjYtNDQuNC00Ny4yLTQ0LjQtNDcuMiA0Mi43LTM0LjEgNjMuMy03OS42IDY0LjQtMTI0LjIgLjctMjguOS03LjItNTcuMi0yMS4xLTgyLjJsMjIuMS0yMXpNMTA0IDUzLjFjNi43IDcgOS40IDE2LjggNy42IDI2LjNsNDUuOSA0OC4xYy00LjcgMy44LTEzLjMgMTAuNC0yMi44IDIxLjMtMjUuNCAyOC41LTM5LjYgNjQuOC00MC43IDEwMi45LS43IDI4LjkgNi4xIDU3LjIgMjAgODIuNEw5MiAzNTUuNmMtMTkuMy0zMS42LTI4LjktNjcuNy0yNy44LTEwNC43IDEtNDQuNiAxOC4zLTg3LjYgNDcuNS0xMjEuMUw4Ni40IDEwMy40Yy05LjYgMS4zLTE5LjItMi0yNS45LTkuMS0xMS4zLTEyLTEwLjktMzAuOSAxLjEtNDIuNCAxMS45LTExLjIgMzAuNi0xMC45IDQyLjQgMS4yek00NjQuOSA4YzI2IDAgNDcuMSAyMi40IDQ3LjEgNDguM1M0OTAuOSAxMDQgNDY0LjkgMTA0Yy02LjMgLjEtMTQtMS4xLTE1LjktMS44bC02Mi45IDU5LjdjLTMyLjctNDMuNi03Ni43LTY1LjktMTI2LjktNjcuMi0zMC41LS43LTYwLjMgNi44LTg2LjIgMjIuNGwtMjEuMS0yMkMxODQuMSA3NC4zIDIyMS41IDY0IDI2MCA2NC45IDMwMy4zIDY2IDM0NC42IDgxLjYgMzc3LjcgMTA5LjVsNDEuMS0zOC42Yy0xLjUtNC43LTIuMi05LjYtMi4yLTE0LjUtLjEtMjYuNyAyMi4zLTQ4LjQgNDguMy00OC40ek0yNTYuNyAxMTMuNGM1LjUgMCAxMC45IC40IDE2LjQgMS4xIDc4LjEgOS44IDEzMy40IDgxLjEgMTIzLjggMTU5LjEtOS44IDc4LjEtODEuMSAxMzMuNC0xNTkuMSAxMjMuOC03OC4xLTkuOC0xMzMuNC04MS4xLTEyMy44LTE1OS4yIDkuMy03Mi40IDcwLjEtMTI0LjYgMTQyLjctMTI0Ljh6bS01OSAxMTkuNGMuNiAyMi43IDEyLjIgNDEuOCAzMi40IDUyLjJsLTExIDUxLjcgNzMuNyAwLTExLTUxLjdjMjAuMS0xMC45IDMyLjEtMjkgMzIuNC01Mi4yLS40LTMyLjgtMjUuOC01Ny41LTU4LjMtNTguMy0zMi4xIC44LTU3LjMgMjQuOC01OC4yIDU4LjN6Il19LElocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoaXJlLWEtaGVscGVyIixpY29uOls1MTIsNTEyLFtdLCJmM2IwIiwiTTQ0My4xIDBMNzEuOSAwQzY3LjkgMzcuMyAzNy40IDY3LjggMCA3MS43TDAgNDQzLjJjMzcuNCA0LjkgNjYgMzIuNCA3MS45IDY4LjhsMzcyLjIgMGMzLTM2LjQgMzIuNS02NS44IDY3LjktNjkuOGwwLTM3MC41QzQ3NS42IDY1LjggNDQ3IDM2LjQgNDQzLjEgMHptLTM3IDQwNC45Yy0zNi4zIDAtMTguOC0yLTU1LjEtMi0zNS44IDAtMjEgMi01Ni4xIDItNS45IDAtNC45LTguMiAwLTkuOCAyMi44LTcuNiAyMi45LTEwLjIgMjQuNi0xMi44IDEwLjQtMTUuNiA1LjktODMgNS45LTExMyAwLTUuMy02LjQtMTIuOC0xMy44LTEyLjhsLTExMS4yIDBjLTcuNCAwLTEzLjggNy41LTEzLjggMTIuOCAwIDMwLTQuNSA5Ny40IDUuOSAxMTMgMS43IDIuNSAxLjggNS4yIDI0LjYgMTIuOCA0LjkgMS42IDYgOS44IDAgOS44LTM1LjEgMC0yMC4zLTItNTYuMS0yLTM2LjMgMC0xOC44IDItNTUuMSAyLTcuOSAwLTUuOC0xMC44IDAtMTAuOCAxMC4yLTMuNCAxMy41LTMuNSAyMS43LTEzLjggNy43LTEyLjkgNy45LTQ0LjQgNy45LTEyNy44bDAtMTAxLjJjMC0yMi4yLTEyLjItMjguMy0yOC42LTMyLjQtOC44LTIuMi00LTExLjggMS0xMS44IDM2LjUgMCAyMC42IDIgNTcuMSAyIDMyLjcgMCAxNi41LTIgNDkuMi0yIDMuMyAwIDguNSA4LjMgMSAxMC44LTQuOSAxLjYtMjcuNiAzLjctMjcuNiAzOS4zIDAgNDUuNi0uMiA1NS44IDEgNjguOCAwIDEuMyAyLjMgMTIuOCAxMi44IDEyLjhsMTA5LjIgMGMxMC41IDAgMTIuOC0xMS41IDEyLjgtMTIuOCAxLjItMTMgMS0yMy4yIDEtNjguOCAwLTM1LjYtMjIuNy0zNy43LTI3LjYtMzkuMy03LjUtMi41LTIuMy0xMC44IDEtMTAuOCAzMi43IDAgMTYuNSAyIDQ5LjIgMiAzNi41IDAgMjAuNi0yIDU3LjEtMiA0LjkgMCA5LjkgOS42IDEgMTEuOC0xNi40IDQuMS0yOC42IDEwLjMtMjguNiAzMi40bDAgMTAxLjJjMCA4My40IC4xIDExNC45IDcuOSAxMjcuOCA4LjIgMTAuMiAxMS40IDEwLjQgMjEuNyAxMy44IDUuOCAwIDcuOCAxMC44IDAgMTAuOHoiXX0sSkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1oYWNrZXItbmV3cyIsaWNvbjpbNDQ4LDUxMixbImhhY2tlci1uZXdzLXNxdWFyZSJdLCJmM2FmIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yMSAyMjkuMnMuMS0uMSAuMS0uMiAuMS0uMiAuMi0uMmMwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIzOS4yIDM4NGwtMzEuNCAwIDAtMTAyLjctNzkuOC0xNTMuMyAzNy4zIDBjNDEuNSA3Ny43IDQ4LjEgOTUuOCA1NC4xIDExMiAxLjYgNC4zIDMuMSA4LjUgNS4yIDEzLjYgMy4yLTcgNS4xLTExLjkgNy4xLTE3LjMgNS45LTE1LjMgMTIuOC0zMy4yIDUzLjUtMTA4LjNsMzQuOCAwLTgwLjggMTU1LjEgMCAxMDAuOXoiXX0sUGhyPUpFZSxOaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQiLGljb246WzUxMiw1MTIsW10sImY0ZWQiLCJNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYgOCAzOTQuNSAxMjEuNiA1MDQgMjU1LjYgNTA0IDM4NS41IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE4LjEgMzk3LjQgOCAyNTUuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzI0LjcgMTg2bC01My4yIDAgMCAxMzcuMiA1My4yIDBjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVsLTE5LjkgMCAwLTc5LjcgMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjExLjcgMTg2bC02OC4yIDAgMCAxMzcuMyAzNC42IDAgMC00NC4zIDI3IDBjNTQuMSAwIDU3LjEtMzcuNSA1Ny4xLTQ2LjUgMC0zMS0xNi44LTQ2LjUtNTAuNS00Ni41em0tNC45IDY3LjNsLTI5LjIgMCAwLTQxLjYgMjguMyAwYzMwLjkgMCAyOC44IDQxLjYgLjkgNDEuNnoiXX0sT2hyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9yY2lkIixpY29uOls1MTIsNTEyLFtdLCJmOGQyIiwiTTI5NC43IDE4OC4ybC00NS45IDAgMCAxNTMuOCA0Ny41IDBjNjcuNiAwIDgzLjEtNTEuMyA4My4xLTc2LjkgMC00MS42LTI2LjUtNzYuOS04NC43LTc2Ljl6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc1LjIgMzY4LjhsLTI5LjggMCAwLTIwNy41IDI5LjggMCAwIDIwNy41ek0xNjAuMyA5OC41YTE5LjYgMTkuNiAwIDEgMSAwIDM5LjIgMTkuNiAxOS42IDAgMSAxIDAtMzkuMnpNMzAwIDM2OWwtODEgMCAwLTIwNy43IDgwLjYgMGM3Ni43IDAgMTEwLjQgNTQuOCAxMTAuNCAxMDMuOSAwIDUzLjMtNDEuNyAxMDMuOS0xMTAgMTAzLjl6Il19LGVJZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJib2FyZC1nYW1lLWdlZWsiLGljb246WzY0MCw1MTIsWyJiZ2ciXSwiZTg1NSIsIk0xNjguOCAxNjguM2wzMC4xLTguMi0xMi4zIDk4LjggMTYuNyAxNi4xLTM4LjkgOTEuMi0xMTEuOCA0MS4yLTUyLjYtMTMxLjggMTcuNy0xNy0xMC41LTg0LjMgMTkxLjItNzAuMy0yOS41IDY0LjN6bTE4MC42IDE2LjVjMTEuNiAwIDE5IDcuNCAxOSAxNy45bDAgMzEuNWMwIDkuNy02LjMgMTguOS0xOS41IDIyLjEgMTMuMSAzLjEgMjAuNSAxMiAyMC41IDIxLjRsMCAzMC45YzAgMTEuMS03LjQgMTguMS0xOSAxOC4xbC04OS4xIDAgMC0xNDEuOCA4OCAwek0yOTggMjk5LjhsMzMgMGMxLjUgMCAyLjEtMSAyLjEtMi4xbDAtMjYuOWMwLTEtLjYtMi4zLTIuMS0yLjNsLTMzIDAgMCAzMS4zem0wLTU3LjNsMzMgMGMxLjUgMCAyLjEtMS4xIDIuMS0yLjNsMC0yNC44YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDI5LjR6bTIwNC4xLTI3LjJsLTY1LjYgMGMtMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS43IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4zIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTctMTYuNS0xNi4ybDAtMTA5LjdjMC04LjYgNy40LTE2IDE2LjUtMTZsODcuOCAwIDAgMzAuNXptMTMyLjYgMGwtNjUuNiAwYy0xLjEgMC0yLjEgMS4xLTIuMSAyLjNsMCA3Ni4xYzAgMS4zIDEgMi4xIDIuMSAyLjFsMjkuNiAwYzEuNSAwIDIuMy0uOCAyLjMtMi4xbDAtMjQtMTkuMiAwIDEyLjgtMzAgNDAuMSAwIDAgNzAuOGMwIDkuMi03LjIgMTYuMi0xNi4zIDE2LjJsLTcxLjUgMGMtOS4xIDAtMTYuNS02LjktMTYuNS0xNi4ybDAtMTA5LjdjMC04LjYgNy40LTE2IDE2LjUtMTZsODcuOCAwIDAgMzAuNXoiXX0sUmhyPWVJZSxGaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmVoYW5jZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFiNCIsIk0yMzIgMjM3LjJjMzEuOC0xNS4yIDQ4LjQtMzguMiA0OC40LTc0IDAtNzAuNi01Mi42LTg3LjgtMTEzLjMtODcuOGwtMTY3LjEgMCAwIDM1NC40IDE3MS44IDBjNjQuNCAwIDEyNC45LTMwLjkgMTI0LjktMTAyLjkgMC00NC41LTIxLjEtNzcuNC02NC43LTg5Ljd6TTc3LjkgMTM1LjlsNzMuMSAwYzI4LjEgMCA1My40IDcuOSA1My40IDQwLjUgMCAzMC4xLTE5LjcgNDIuMi00Ny41IDQyLjJsLTc5IDAgMC04Mi43em04My4zIDIzMy43bC04My4zIDAgMC05Ny42IDg0LjkgMGMzNC4zIDAgNTYgMTQuMyA1NiA1MC42IDAgMzUuOC0yNS45IDQ3LTU3LjYgNDd6TTUxOS43IDEyOC45bC0xNDMuNyAwIDAtMzQuOSAxNDMuNyAwIDAgMzQuOXpNNTc2IDMwNS4yYzAtNzUuOS00NC40LTEzOS4yLTEyNC45LTEzOS4yLTc4LjIgMC0xMzEuMyA1OC44LTEzMS4zIDEzNS44IDAgNzkuOSA1MC4zIDEzNC43IDEzMS4zIDEzNC43IDYxLjMgMCAxMDEtMjcuNiAxMjAuMS04Ni4zbC02Mi4yIDBjLTYuNyAyMS45LTM0LjMgMzMuNS01NS43IDMzLjUtNDEuMyAwLTYzLTI0LjItNjMtNjUuM2wxODUuMSAwYy4zLTQuMiAuNi04LjcgLjYtMTMuMnpNMzkwLjQgMjc0YzIuMy0zMy43IDI0LjctNTQuOCA1OC41LTU0LjggMzUuNCAwIDUzLjIgMjAuOCA1Ni4yIDU0LjhsLTExNC43IDB6Il19LEJocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb25lcm8iLGljb246WzUxMiw1MTIsW10sImYzZDAiLCJNMzYwIDM4NGwxMDguNCAwQzQyNSA0NTUuOSAzNDYuMSA1MDQgMjU2IDUwNFM4NyA0NTUuOSA0My42IDM4NGwxMDguNCAwIDAtMTI3LjggMTA0IDEwNC44IDEwNC0xMDUgMCAxMjh6TTk2IDMzNmwwLTIwOCAxNTkuNCAxNTkuNCAxNjAuNi0xNTkuNCAwIDIwOCA3NC44IDBjOC41LTI1LjEgMTMuMi01MiAxMy4yLTgwIDAtMTM3LTExMS0yNDgtMjQ4LTI0OFM4IDExOSA4IDI1NmMwIDI4IDQuNiA1NC45IDEzLjIgODBMOTYgMzM2eiJdfSxIaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlnbWEiLGljb246WzM4NCw1MTIsW10sImY3OTkiLCJNMTQgOTUuOEMxNCA0Mi45IDU2LjkgMCAxMDkuOCAwTDI3NC4yIDBjNTIuOSAwIDk1LjggNDIuOSA5NS44IDk1LjggMCAzMy41LTE3LjIgNjMtNDMuMiA4MC4xIDI2IDE3LjEgNDMuMiA0Ni42IDQzLjIgODAuMSAwIDUyLjktNDIuOSA5NS44LTk1LjggOTUuOGwtMi4xIDBjLTI0LjggMC00Ny40LTkuNC02NC40LTI0LjlsMCA4OC4zYzAgNTMuNi00NCA5Ni44LTk3LjQgOTYuOC01Mi44IDAtOTYuMy00Mi44LTk2LjMtOTUuOCAwLTMzLjUgMTcuMi02MyA0My4yLTgwLjEtMjYtMTcuMS00My4yLTQ2LjYtNDMuMi04MC4xczE3LjItNjMgNDMuMi04MC4xQzMxLjIgMTU4LjggMTQgMTI5LjMgMTQgOTUuOHptMTYyLjMgOTUuOGwtNjYuNSAwYy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNCAwIDM1LjQgMjguNiA2NC4yIDY0IDY0LjRsNjYuOSAwIDAtMTI4Ljh6TTIwNy43IDI1NmMwIDM1LjYgMjguOCA2NC40IDY0LjQgNjQuNGwyLjEgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtMi4xIDBjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40em0tOTcuOSA5NS44bC0uNCAwYy0zNS40IC4yLTY0IDI5LTY0IDY0LjRzMjkuMiA2NC40IDY0LjkgNjQuNGMzNi4zIDAgNjYtMjkuNCA2Ni02NS41bDAtNjMuNC02Ni41IDB6bTAtMzIwLjRjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40czI4LjggNjQuNCA2NC40IDY0LjRsNjYuNSAwIDAtMTI4LjgtNjYuNSAwem05Ny45IDEyOC44bDY2LjUgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtNjYuNSAwIDAgMTI4Ljh6Il19LGV1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnN0YWdyYW0iLGljb246WzQ0OCw1MTIsW10sImYxNmQiLCJNMjI0LjMgMTQxYTExNSAxMTUgMCAxIDAgLS42IDIzMCAxMTUgMTE1IDAgMSAwIC42LTIzMHptLS42IDQwLjRhNzQuNiA3NC42IDAgMSAxIC42IDE0OS4yIDc0LjYgNzQuNiAwIDEgMSAtLjYtMTQ5LjJ6bTkzLjQtNDUuMWEyNi44IDI2LjggMCAxIDEgNTMuNiAwIDI2LjggMjYuOCAwIDEgMSAtNTMuNiAwem0xMjkuNyAyNy4yYy0xLjctMzUuOS05LjktNjcuNy0zNi4yLTkzLjktMjYuMi0yNi4yLTU4LTM0LjQtOTMuOS0zNi4yLTM3LTIuMS0xNDcuOS0yLjEtMTg0LjkgMC0zNS44IDEuNy02Ny42IDkuOS05My45IDM2LjFzLTM0LjQgNTgtMzYuMiA5My45Yy0yLjEgMzctMi4xIDE0Ny45IDAgMTg0LjkgMS43IDM1LjkgOS45IDY3LjcgMzYuMiA5My45czU4IDM0LjQgOTMuOSAzNi4yYzM3IDIuMSAxNDcuOSAyLjEgMTg0LjkgMCAzNS45LTEuNyA2Ny43LTkuOSA5My45LTM2LjIgMjYuMi0yNi4yIDM0LjQtNTggMzYuMi05My45IDIuMS0zNyAyLjEtMTQ3LjggMC0xODQuOHpNMzk5IDM4OGMtNy44IDE5LjYtMjIuOSAzNC43LTQyLjYgNDIuNi0yOS41IDExLjctOTkuNSA5LTEzMi4xIDlzLTEwMi43IDIuNi0xMzIuMS05Yy0xOS42LTcuOC0zNC43LTIyLjktNDIuNi00Mi42LTExLjctMjkuNS05LTk5LjUtOS0xMzIuMXMtMi42LTEwMi43IDktMTMyLjFjNy44LTE5LjYgMjIuOS0zNC43IDQyLjYtNDIuNiAyOS41LTExLjcgOTkuNS05IDEzMi4xLTlzMTAyLjctMi42IDEzMi4xIDljMTkuNiA3LjggMzQuNyAyMi45IDQyLjYgNDIuNiAxMS43IDI5LjUgOSA5OS41IDkgMTMyLjFzMi43IDEwMi43LTkgMTMyLjF6Il19LHFocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwZXJieXRlIixpY29uOls0NDgsNTEyLFtdLCJlMDgzIiwiTTMwNS4zIDI4NC42bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXpNMTQ5LjQgMTI4LjdsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0zNjYuNiAzMkw4MS40IDMyYy0yMS42IDAtNDIuMiA4LjYtNTcuNSAyMy45UzAgOTEuOCAwIDExMy40TDAgMzk4LjZjMCAyMS42IDguNiA0Mi4yIDIzLjkgNTcuNVM1OS44IDQ4MCA4MS40IDQ4MGwyODUuMyAwYzIxLjYgMCA0Mi4yLTguNiA1Ny41LTIzLjlTNDQ4IDQyMC4yIDQ0OCAzOTguNmwwLTI4NS4zYzAtMjEuNi04LjYtNDIuMi0yMy45LTU3LjVTMzg4LjIgMzIgMzY2LjYgMzJ6bTYzLjYgMzY2LjZjMCAxNi45LTYuNyAzMy0xOC43IDQ1cy0yOC4xIDE4LjYtNDUgMTguN2wtMjg1LjMgMGMtMTYuOSAwLTMzLTYuNy00NS0xOC43cy0xOC42LTI4LjEtMTguNy00NWwwLTI4NS4zYzAtMTYuOSA2LjctMzMgMTguNy00NXMyOC4xLTE4LjYgNDUtMTguN2wyODUuMyAwYzE2LjkgMCAzMyA2LjcgNDUgMTguN3MxOC42IDI4LjEgMTguNyA0NWwwIDI4NS4zem0tMTI1LTI2OS45bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXoiXX0sdEllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS12aW1lbyIsaWNvbjpbNDQ4LDUxMixbInZpbWVvLXNxdWFyZSJdLCJmMTk0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zMTguNSAzMDkuNWMtNDMuNSA1Ni41LTgwLjMgODQuOC0xMTAuNCA4NC44LTE4LjcgMC0zNC40LTE3LjItNDcuMy01MS42LTMuOC0xMy45LTcuMy0yNi45LTEwLjUtMzktMTguMi02OC4zLTI4LjYtMTA3LjQtNDYuMi0xMDcuNC0yLjQgMC0xMC44IDUtMjUuMSAxNS4xTDY0IDE5MmM3LTYuMSAxMy45LTEyLjQgMjAuNi0xOC41IDI5LjEtMjYuMyA1NS42LTUwLjMgNzMuNS01MS45IDI0LjktMi40IDQwLjIgMTQuNiA0NiA1MS4xIDIwLjUgMTI5LjYgMjkuNiAxNDkuMiA2Ni44IDkwLjUgMTMuNC0yMS4yIDIwLjYtMzcuMiAyMS41LTQ4LjMgMy40LTMyLjgtMjUuNi0zMC42LTQ1LjItMjIuMiAxNS43LTUxLjUgNDUuOC03Ni41IDkwLjEtNzUuMSAzMi45IDEgNDguNCAyMi40IDQ2LjUgNjQtMS40IDMxLjEtMjMuMiA3My44LTY1LjMgMTI3Ljl6Il19LFZocj10SWUsamhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InB1c2hlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMSIsIk00MTUuMSAxMTEuOWwtOTguNS05IDE0LTMzLjRjMTAuNC0yMy41LTEwLjgtNDAuNC0yOC43LTM3TDMwLjYgNzYuOWMtMTUuMSAyLjctMjYgMTguMy0yMS40IDM2LjZMMTE0LjMgNDYxLjhjNi41IDIxLjMgMzYuNyAyNC4yIDQ3LjcgN0wxOTcuMyAzODggNDMyLjUgMTU2LjdjMTYuNC0xNi44IDQuMy00Mi45LTE3LjQtNDQuOHpNMzA1LjcgNTMuNmM1LjEtLjcgNy41IDIuNSA1LjIgNy40bC0xNi44IDM5LjktMTc3LjQtMTYuMyAxODktMzF6TTMwLjggMTA3LjljLTMuMS01LjEgMS0xMCA2LjEtOS4xbDI0OC43IDIyLjctOTYuOSAyMzAuNy0xNTcuOS0yNDQuM3pNMTQ0LjEgNDU2LjRjLTIuNiA0LTcuOSAzLjEtOS40LTEuMkw1MS42IDE3OS43IDE3OS4zIDM3Ny4zYy03IDE1LTM1LjIgNzkuMS0zNS4yIDc5LjF6TTQxNi45IDE0MS45bC0xOTguNyAxOTUuNCA4OS43LTIxMy43IDEwNi40IDkuN2M0IDEuMSA1LjcgNS4zIDIuNiA4LjZ6Il19LFVocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXhjbG91ZCIsaWNvbjpbNjQwLDUxMixbXSwiZjI4OSIsIk0yMTMgMzQ2LjZsLTMzLjIgMCAwLTE1MS41IDYuMi0yMS42LTEwLjcgMC0zOC4xIDE3My4xLTYxIDAtMzguNC0xNzMuMS0xMC41IDAgNS45IDIxLjYgMCAxNTEuNS0zMy4yIDAgMC0xODEuNiA2NS43IDAgMzYuNiAxNzMuMSA4LjUgMCAzNi42LTE3My4xIDY1LjcgMCAwIDE4MS42em0zMzEuNS02M2wtODYgNjIuMSAwLTM4LjEgNzIuOS01MS44LTcyLjktNTEuOCAwLTM4LjEgODYgNjIuMyA5LjMgMCA4Ni4zLTYyLjMgMCAzOC4xLTczLjEgNTEuOCA3My4xIDUxLjggMCAzOC4xLTg2LjMtNjIuMS05LjMgMHpNNDMwLjIgMjcyLjNsLTE4MiAwIDAtMzMuMSAxODIgMCAwIDMzLjF6Il19LFdocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW5kZXgtaW50ZXJuYXRpb25hbCIsaWNvbjpbMzIwLDUxMixbXSwiZjQxNCIsIk0xMjkuNSA1MTJsMC0xNjYuMS0xMTEtMjk3LjkgNTUuOCAwIDgxLjggMjI5LjcgOTQuMS0yNzcuNyA1MS4zIDAtMTIwLjcgMzQ3LjggMCAxNjQuMi01MS4zIDB6Il19LEdocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoaXZlIixpY29uOls1MTIsNTEyLFtdLCJlMDdmIiwiTTI2MC40IDI1NC45TDEzMS41IDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjMtLjggLjEtMS4xIC4zLS42IC41LS44IC44TC4zIDI1NC45Yy0uMiAuMy0uMyAuNy0uMyAxLjFzLjEgLjggLjMgMS4xTDEyOS4xIDQ3OC45Yy4yIC4zIC41IC42IC44IC44cy43IC4zIDEuMSAuMyAuOC0uMSAxLjEtLjMgLjYtLjUgLjgtLjhMMjYwLjQgMjU3LjFjLjItLjMgLjMtLjcgLjMtMS4xcy0uMS0uOC0uMy0xLjF6bTM5LjEtMjUuN2MuMiAuMyAuNSAuNiAuOCAuOHMuNyAuMyAxLjEgLjNsNjYuNSAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44IC4zLS43IC4zLTEuMS0uMS0uOC0uMy0xLjFMMjU5LjEgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uM2wtNjYuNSAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjgtLjMgLjctLjMgMS4xIC4xIC44IC4zIDEuMUwyOTkuNCAyMjkuMnptMjEyLjMgMjUuN0wzODQuOSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zbC02Ni42IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOC0uMyAuNy0uMyAxLjEgLjEgLjggLjMgMS4xTDQ0MC43IDI1NiAzMTQuNSA0NzYuN2MtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMSAuNSAuNiAuOCAuOCAuNyAuMyAxLjEgLjNsNjYuNiAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44TDUxMS43IDI1Ny4xYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xek0zNjYgMjg0LjlsLTY2LjUgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44TDE4OC44IDQ3Ni43Yy0uMiAuMy0uMyAuNy0uMyAxLjFzLjEgLjggLjMgMS4xIC41IC42IC44IC44IC43IC4zIDEuMSAuM2w2Ni41IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjhMMzY3LjkgMjg4LjNjLjItLjMgLjMtLjcgLjMtMS4xcy0uMS0uOC0uMy0xLjEtLjUtLjYtLjgtLjgtLjctLjMtMS4xLS4zeiJdfSxZaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy16ZXJvIixpY29uOls1MTIsNTEyLFtdLCJmNGYzIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptLS40IDYwLjVjLTgxLjkgMC0xMDIuNSA3Ny4zLTEwMi41IDE0Mi44UzE3NC4xIDM5OC44IDI1NiAzOTguOCAzNTguNSAzMjEuNSAzNTguNSAyNTYgMzM3LjkgMTEzLjIgMjU2IDExMy4yem0wIDUzLjljMy4zIDAgNi40IC41IDkuMiAxLjIgNS45IDUuMSA4LjggMTIuMSAzLjEgMjEuOUwyMTMuOCAyOTAuNGMtMS43LTEyLjctMS45LTI1LjEtMS45LTM0LjQgMC0yOC44IDItODguOSA0NC4xLTg4Ljl6bTQwLjggNDYuMmMyLjkgMTUuNCAzLjMgMzEuNCAzLjMgNDIuNyAwIDI4LjktMiA4OC45LTQ0LjEgODguOS0xMy41IDAtMzIuNi03LjctMjAuMS0yNi40bDYwLjktMTA1LjJ6Il19LHJJZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc25hcGNoYXQiLGljb246WzQ0OCw1MTIsWyJzbmFwY2hhdC1zcXVhcmUiXSwiZjJhZCIsIk0zODQgMzJMNjQgMzJjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43UzAgNzkgMCA5NkwwIDQxNmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM1M0NyA0ODAgNjQgNDgwbDMyMCAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43UzQ0OCA0MzMgNDQ4IDQxNmwwLTMyMGMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM1M0MDEgMzIgMzg0IDMyem0tMy45IDMxOS4zbC0uMSAuMWMtMi41IDIuOC01LjQgNS4xLTguNyA2LjgtNi41IDMuNi0xMy40IDYuMy0yMC42IDguMi0xLjQgLjQtMi43IDEtMy45IDEuOC0yLjIgMS45LTIuMSA0LjYtNC40IDguNi0xLjcgMy00IDUuNS02LjggNy41LTYuNyA0LjYtMTQuMiA0LjktMjIuMiA1LjItNy4yIC4zLTE1LjQgLjYtMjQuNyAzLjctMy44IDEuMi03LjggMy43LTEyLjQgNi41LTExLjMgNi45LTI2LjcgMTYuNC01Mi4zIDE2LjRzLTQwLjktOS40LTUyLjEtMTYuM2MtNC43LTIuOS04LjctNS40LTEyLjUtNi42LTkuMy0zLjEtMTcuNS0zLjQtMjQuNy0zLjctOC0uMy0xNS41LS42LTIyLjItNS4yLTIuNC0xLjYtNC40LTMuNy02LTYuMS0zLjItNC42LTIuOS03LjgtNS4zLTkuOS0xLjMtLjgtMi42LTEuNS00LjEtMS44LTcuMS0xLjktMTMuOS00LjYtMjAuMy04LjEtMy4xLTEuNi01LjktMy44LTguMy02LjMtNi42LTYuOC04LjMtMTQuOC01LjctMjEuOCAzLjQtOS4zIDExLjYtMTIuMSAxOS40LTE2LjMgMTQuOC04IDI2LjMtMTguMSAzNC40LTI5LjkgMi4zLTMuMyA0LjMtNi45IDYtMTAuNiAuOC0yLjIgLjgtMy4zIC4yLTQuNC0uNi0uOS0xLjMtMS42LTIuMi0yLjItMi41LTEuNy01LjEtMy40LTYuOS00LjUtMy4zLTIuMS01LjktMy44LTcuNS01LTYuMy00LjQtMTAuNi05LTEzLjQtMTQuMi0xLjktMy42LTMtNy42LTMuMy0xMS42cy40LTguMSAxLjktMTEuOWM0LjEtMTAuOSAxNC41LTE3LjcgMjctMTcuNyAyLjYgMCA1LjMgLjMgNy44IC44IC43IC4yIDEuNCAuMyAyIC41LS4xLTcuNCAuMS0xNS40IC43LTIzLjEgMi40LTI3LjMgMTEuOS00MS42IDIxLjktNTMgNi40LTcuMiAxMy45LTEzLjIgMjIuMy0xNy45IDE1LjEtOC42IDMyLjItMTMgNTAuOS0xM3MzNS44IDQuNCA1MC45IDEzYzguMyA0LjcgMTUuOSAxMC44IDIyLjIgMTcuOSAxMCAxMS40IDE5LjUgMjUuNyAyMS45IDUzIC42IDcuNyAuOSAxNS40IC43IDIzLjEgLjctLjIgMS40LS4zIDIuMS0uNSAyLjYtLjYgNS4yLS44IDcuOC0uOCAxMi41IDAgMjIuOCA2LjggMjcgMTcuNyAxLjUgMy44IDIuMSA3LjkgMS45IDExLjlzLTEuNCA4LTMuMyAxMS42Yy0yLjcgNS4yLTcuMSA5LjktMTMuNCAxNC4yLTEuNyAxLjItNC4zIDIuOS03LjUgNS0xLjggMS4yLTQuNSAyLjktNy4yIDQuNy0uOCAuNS0xLjQgMS4yLTEuOSAyLS41IDEtLjUgMi4yIC4yIDQuMiAxLjcgMy44IDMuNyA3LjQgNi4xIDEwLjggOC4zIDEyLjEgMjAuMiAyMi4zIDM1LjUgMzAuNCAxLjUgLjggMyAxLjUgNC40IDIuMyAuNyAuMyAxLjYgLjggMi41IDEuMyA0LjkgMi43IDkuMiA2IDExLjUgMTIuMiAyLjUgNi45IDEgMTQuNy01LjIgMjEuM3ptLTE2LjctMTguNWMtNTAuMy0yNC4zLTU4LjMtNjEuOS01OC43LTY0LjctLjQtMy40LS45LTYgMi44LTkuNSAzLjYtMy4zIDE5LjUtMTMuMiAyNC0xNi4zIDcuMy01LjEgMTAuNS0xMC4yIDguMi0xNi41LTEuNy00LjMtNS43LTYtMTAtNi0xLjMgMC0yLjcgLjItNCAuNC04IDEuNy0xNS44IDUuOC0yMC40IDYuOS0uNSAuMS0xLjEgLjItMS43IC4yLTIuNCAwLTMuMy0xLjEtMy4xLTQgLjYtOC44IDEuOC0yNS45IC40LTQxLjktMS45LTIyLTktMzIuOS0xNy40LTQyLjYtNC4xLTQuNi0yMy4xLTI0LjctNTkuNS0yNC43cy01NS40IDIwLjEtNTkuNSAyNC44Yy04LjQgOS43LTE1LjUgMjAuNi0xNy40IDQyLjYtMS40IDE2LS4xIDMzLjEgLjQgNDEuOSAuMiAyLjgtLjcgNC0zLjEgNC0uNiAwLTEuMS0uMS0xLjctLjItNC41LTEuMS0xMi4zLTUuMS0yMC4zLTYuOS0xLjMtLjMtMi42LS40LTQtLjQtNC4zIDAtOC4zIDEuNi0xMCA2LTIuNCA2LjMgLjggMTEuNCA4LjIgMTYuNSA0LjQgMy4xIDIwLjQgMTMgMjQgMTYuMyAzLjcgMy40IDMuMiA2LjEgMi44IDkuNS0uNCAyLjgtOC40IDQwLjQtNTguNyA2NC43LTIuOSAxLjQtOCA0LjQgLjkgOS4zIDEzLjkgNy42IDIzLjEgNi44IDMwLjMgMTEuNCA2LjEgMy45IDIuNSAxMi40IDYuOSAxNS40IDUuNSAzLjggMjEuNi0uMyA0Mi4zIDYuNiAxNy40IDUuNyAyOC4xIDIyIDU5IDIyczQxLjgtMTYuMyA1OC45LTIyYzIwLjgtNi45IDM2LjktMi44IDQyLjMtNi42IDQuNC0zLjEgLjgtMTEuNSA2LjktMTUuNCA3LjItNC42IDE2LjQtMy44IDMwLjMtMTEuNSA4LjgtNC45IDMuOC03LjkgLjktOS40eiJdfSxLaHI9ckllLFpocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGVtZWlzbGUiLGljb246WzUxMiw1MTIsW10sImYyYjIiLCJNMjA4IDg4LjNjMC0xMCA2LjMtMjEuNyAxNy43LTIxLjcgMTEuMSAwIDE3LjcgMTEuNyAxNy43IDIxLjcgMCAxMC4zLTYuNiAyMS43LTE3LjcgMjEuNy0xMS40IDAtMTcuNy0xMS40LTE3LjctMjEuN3ptMzA0IDE2MGMwIDM2LTExLjQgMTAyLjMtMzYuMyAxMjkuNy0yMi45IDI0LjktODcuNCA2MS4xLTEyMC45IDcwLjZsLTEuMSAuMyAwIDMyLjZjMCAxNi4zLTEyLjYgMzAuNi0yOS4xIDMwLjYtMTAgMC0xOS40LTUuNy0yNC42LTE0LjMtNS40IDguNi0xNC45IDE0LjMtMjQuOSAxNC4zcy0xOS40LTUuNy0yNC45LTE0LjNjLTUuMSA4LjYtMTQuNiAxNC4zLTI0LjYgMTQuMy0xMC4zIDAtMTkuNC01LjctMjQuOS0xNC4zLTUuMSA4LjYtMTQuNiAxNC4zLTI0LjYgMTQuMy0xOC45IDAtMjkuNC0xNS43LTI5LjQtMzIuOS0xNi4zIDEyLjMtMzUuNyAxOS40LTU2LjYgMTkuNC0yMiAwLTQzLjQtOC4zLTYwLjMtMjIuOSAxMC4zLS4zIDIwLjYtMi4zIDMwLjMtNS43LTIwLjktNS43LTM5LjQtMTguOS01Mi0zNi4zIDIxLjQgNC42IDQ2LjIgMS43IDY3LjEtMTEuMS0yMi0yMi01Ni42LTU4LjktNjguNi04Ny40LTUuNy0xMy40LTYuOS0zMS40LTYuOS00NS43IDAtNDkuNyAyMC4zLTE2MCA4Ni4zLTE2MCAxMC42IDAgMTguOSA0LjkgMjMuMSAxNC45IDMuNy01LjQgNy43LTEwLjUgMTItMTUuNCAyLTIuNiA1LjctNS40IDcuMS04LjMgOC0xMi42IDExLjctMjEuMSAyMS43LTM0IDMyLjMtNDEuMSA4MS43LTY5LjQgMTM0LjktNjkuNCA2IDAgMTIgLjMgMTcuNyAxLjEgMTAuOS0xMS43IDI2LTE4LjMgNDEuNy0xOC4zIDE0LjYgMCAyOS43IDYgNDAgMTYuMyAuOSAuOSAxLjQgMi4zIDEuNCAzLjQgMCAzLjctMTAuMyAxMy40LTEyLjkgMTYuMyA0LjMgMS40IDE1LjcgNi45IDE1LjcgMTIgMCAyLjktMi45IDUuMS00LjYgNy4xIDMxLjQgMjcuNyA0OS40IDY3LjEgNTYuMyAxMDggNC4zLTUuMSAxMC4zLTguNiAxNy4xLTguNiAxMC42IDAgMjAuOSA3LjEgMjguNiAxNCAyMC45IDE4LjYgMjUuNyA1My4xIDI1LjcgNzkuN3pNMTg4IDg5LjRjMCAxOC4zIDEyLjYgMzcuMSAzMi4zIDM3LjFzMzIuMy0xOC45IDMyLjMtMzcuMWMwLTE4LTEyLjYtMzYuOS0zMi4zLTM2LjlTMTg4IDcxLjQgMTg4IDg5LjR6TTIzNy43IDE5NGMwLTE5LjcgMy43LTM5LjEgOC42LTU4LjMtNTIgNzkuNS0xMy41IDE4NC42IDY4LjkgMTg0LjYgMjEuNCAwIDQyLjYtNy43IDYwLTIwIDItNy40IDMuNy0xNC45IDMuNy0yMi42IDAtMTQuMy02LjMtMjEuNC0yMC42LTIxLjQtNC42IDAtOS4xIC45LTEzLjQgMS43LTYzLjMgMTIuNy0xMDcuMSAzLjctMTA3LjEtNjR6TTE5Ni42IDQ0OC45YzAtMTEuMS04LjktMjAuOS0yMC4zLTIwLjlzLTIwIDkuNy0yMCAyMC45bDAgMzIuNmMwIDExLjEgOC42IDIxLjEgMjAgMjEuMXMyMC4zLTkuNyAyMC4zLTIxLjFsMC0zMi42em00OS4xIDBjMC0xMS4xLTguNi0yMC45LTIwLTIwLjlzLTIwLjMgOS43LTIwLjMgMjAuOWwwIDMyLjZjMCAxMS4xIDguOSAyMS4xIDIwLjMgMjEuMXMyMC0xMCAyMC0yMS4xbDAtMzIuNnptNDkuNyAwYzAtMTEuMS04LjktMjAuOS0yMC4zLTIwLjlzLTIwLjMgOS43LTIwLjMgMjAuOWwwIDMyLjZjMCAxMS4xIDguOSAyMS4xIDIwLjMgMjEuMXMyMC4zLTkuNyAyMC4zLTIxLjFsMC0zMi42em00OS43IDBjMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLjMtMTAgMjAuMy0yMS4xbDAtMzIuNnpNNDIxLjcgMjg2Yy0zMC45IDU5LjEtOTAuMyAxMDIuNi0xNTguNiAxMDIuNi05Ni42IDAtMTYwLjYtODQuNi0xNjAuNi0xNzYuNiAwLTE2LjkgMi0zMy40IDYtNDkuNy0yMCAzMy43LTI5LjcgNzIuNi0yOS43IDExMS40IDAgNjAuMyAyNC45IDEyMS43IDcxLjQgMTYwLjkgNS4xLTkuNyAxNC45LTE2LjMgMjYtMTYuMyAxMCAwIDE5LjQgNS43IDI0LjYgMTQuMyA1LjQtOC42IDE0LjYtMTQuMyAyNC45LTE0LjMgMTAgMCAxOS40IDUuNyAyNC42IDE0LjMgNS40LTguNiAxNC45LTE0LjMgMjQuOS0xNC4zczE5LjQgNS43IDI0LjkgMTQuM2M1LjEtOC42IDE0LjYtMTQuMyAyNC42LTE0LjMgMTAuOSAwIDIwLjkgNi42IDI1LjcgMTYgNDMuNC0zNi4zIDY4LjYtOTIgNzEuNC0xNDguM3ptMTAuNi05OS43YzAtNTMuNy0zNC42LTEwNS43LTkyLjYtMTA1LjctMzAuMyAwLTU4LjYgMTUuMS03OC45IDM2LjktMjAgNjYuNC0yNy40IDEzNi42IDQxLjQgMTM2LjYgMjguOCAwIDk3LjQtMjguNSA4NC4zIDM2LjkgMjguOS0yNiA0NS43LTY1LjcgNDUuNy0xMDQuNnoiXX0sUWhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhcnQtbGFuZyIsaWNvbjpbNTEyLDUxMixbXSwiZTY5MyIsIk0zNzguNiA3OC45Yy0yLjgtLjEtNS42LS4yLTguNS0uMmwtMjY0LjEgMCAxNDMuMi03MmM3LjQtNC40IDE4LjgtNi43IDMwLjQtNi43IDEzLjUgMCAyOS40IDkuMiAzNyAxNi44bDYyIDYyIDAgLjF6TTEwNy4zIDk2LjVsMjYyLjggMGMxNiAwIDI1LjQgMS40IDM1LjQgOS4zbDEwNi41IDEwNi40IDAgMjA4LjgtNzkuMyAuNy0zMjUuNC0zMjUuMnpNOTYuNSAzNzNsMC0yNjIuMiAzMjMuOCAzMjMuOCAuNyA3Ny40LTIxMi4yIDAtOTguMS05OC4yQzk5LjQgNDAyLjUgOTYuNSAzOTguNSA5Ni41IDM3M3pNNzguNyAxMDUuM2wwIDI2Ny43YzAgMy4zIC4xIDYuMyAuMiA5LjFsLTYyLTYyQzYuNSAzMDkuMyAwIDI5NC4zIDAgMjc5LjYgMCAyNzIuOCAzLjkgMjYyLjEgNi43IDI1Nmw3Mi0xNTAuN3oiXX0sWGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlcGxveWRvZyIsaWNvbjpbNTEyLDUxMixbXSwiZjM4ZSIsIk0zODIuMiAxMzZsNTEuNyAwIDAgMjM5LjYtNTEuNyAwIDAtMjAuN2MtMTkuOCAyNC44LTUyLjggMjQuMS03My44IDE0LjctMjYuMi0xMS43LTQ0LjMtMzguMS00NC4zLTcxLjggMC0yOS44IDE0LjgtNTcuOSA0My4zLTcwLjggMjAuMi05LjEgNTIuNy0xMC42IDc0LjggMTIuOWwwLTEwMy45ek0zMTcuNSAyOTcuOGEzMy4yIDMzLjIgMCAxIDAgNjYuNCAxIDMzLjIgMzMuMiAwIDEgMCAtNjYuNC0xek0xODguNSAxMzZsNTEuNyAwIDAgMjM5LjYtNTEuNyAwIDAtMjAuN2MtMTkuOCAyNC44LTUyLjggMjQuMS03My44IDE0LjctMjYuMi0xMS43LTQ0LjMtMzguMS00NC4zLTcxLjggMC0yOS44IDE0LjgtNTcuOSA0My4zLTcwLjggMjAuMi05LjEgNTIuNy0xMC42IDc0LjggMTIuOWwwLTEwMy45ek0xMjMuOCAyOTcuOGEzMy4yIDMzLjIgMCAxIDAgNjYuNCAxIDMzLjIgMzMuMiAwIDEgMCAtNjYuNC0xek00NDggOTZjMTcuNSAwIDMyIDE0LjQgMzIgMzJsMCAyNTZjMCAxNy41LTE0LjQgMzItMzIgMzJMNjQgNDE2Yy0xNy41IDAtMzItMTQuNC0zMi0zMmwwLTI1NmMwLTE3LjUgMTQuNC0zMiAzMi0zMmwzODQgMHptMC0zMkw2NCA2NEMyOC44IDY0IDAgOTIuOCAwIDEyOEwwIDM4NGMwIDM1LjIgMjguOCA2NCA2NCA2NGwzODQgMGMzNS4yIDAgNjQtMjguOCA2NC02NGwwLTI1NmMwLTM1LjItMjguOC02NC02NC02NHoiXX0sSmhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZsaXBib2FyZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjQ0ZCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zNTguNCAyMTEuMmwtODkuNiAwIDAgODkuNi04OS42IDAgMCA4OS42LTg5LjYgMCAwLTI2OC44IDI2OC44IDAgMCA4OS42eiJdfSxlNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnV5LW4tbGFyZ2UiLGljb246WzU3Niw1MTIsW10sImY4YTYiLCJNMjg4LjIgMzJDMTMzLjUgMzIgOCAxMzIuMyA4IDI1NlMxMzMuNSA0ODAgMjg4LjIgNDgwIDU2OC40IDM3OS43IDU2OC40IDI1NiA0NDIuOSAzMiAyODguMiAzMnpNMjAyLjggMzg5LjJsLTEzOC41IDEuNCA3Ny4yLTI5MC43IDEzMy40IDBjNjMuMiAwIDg0LjkgMjguNiA3OCA3Mi44LS40IDIuMy0uOSA0LjYtMS41IDYuOS01LjYtMS4zLTExLjQtMS45LTE3LjItMS45LTQyLjMgMC03Ni43IDMzLjktNzYuNyA3NS43IDAgMzcuMSAyNy4xIDY4IDYyLjkgNzQuNS0xOC4yIDM3LjItNTYuMiA2MC45LTExNy43IDYxLjV6TTM1OC4yIDIwNy4xbDMyIDAtMjIuMiA5MC4zLTM1LjQgMC0xMS4yLTM1LjYtNy44IDM1LjYtMzcuOCAwIDI2LjYtOTAuMyAzMS4zIDAgMTUgMzYuOCA5LjQtMzYuOHpNNTA0LjEgMzg5LjJsLTE5Ny4xIDAgMTUuOC02MS4yYzMuOCAuNiA3LjYgLjggMTEuNSAuOCA0Mi4zIDAgNzYuNy0zMy45IDc2LjctNzUuNiAwLTMyLjYtMjEtNjAuNS01MC40LTcxLjFsMjEuMy04Mi40IDkyLjUgMC01MyAyMDUuNCAxMDMuOSAwLTIxLjIgODQuMXpNMjExLjkgMjY5LjRsLTI0LjcgMC0xMy44IDU2LjUgMjQuNyAwYzE2LjEgMCAzMi4xLTMuMiAzNy45LTI2LjYgNS42LTIyLjMtOC0yOS44LTI0LjEtMjkuOHpNMjMzLjIgMTcwbC0yMS4zIDAtMTEuNyA0Ny43IDIxLjQgMGMxOCAwIDM1LjQtMTQuNiAzOS4yLTMwLjEgNC42LTE4LjktOS41LTE3LjYtMjcuNi0xNy42eiJdfSx0NnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2F0Y2htYW4tbW9uaXRvcmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTA4NyIsIk0yNTYgMTZhMjQwIDI0MCAwIDEgMCAwIDQ4MCAyNDAgMjQwIDAgMSAwIDAtNDgwek0xMjEuNyA0MjkuMWMtNTEuNi00MC4yLTg0LjktMTAyLjgtODQuOS0xNzMuMSAwLTIxLjcgMy4yLTQzLjMgOS42LTY0LjFsMTAyLjktMTcuOS0uMSAxMS0xMy45IDJzLS4xIDEyLjUtLjEgMTkuNWMwIDIgLjQgNCAxLjIgNS44czIuMSAzLjQgMy43IDQuNmw5LjUgNy40LTI3LjcgMjA0Ljl6TTIyNy40IDE0NS45bDguNS03LjZzNi45LTUuNC0uMS05LjNjLTcuMi00LTM5LjUtMzQuNS0zOS41LTM0LjUtNS4zLTUuNS04LjMtNy4zLTE1LjUgMCAwIDAtMzIuMyAzMC41LTM5LjUgMzQuNS03LjEgNC0uMSA5LjMtLjEgOS4zbDguNSA3LjYgMCA0LjQtNzMuNS0xOS4yYzM5LjYtNTYuOSAxMDUuNS05NC4zIDE4MC05NC4zIDMxLjMgMCA2Mi4yIDYuNyA5MC42IDE5LjZzNTMuOCAzMS44IDc0LjMgNTUuNGwtMTkzLjUgMzcuNyAwLTMuNnptMzQuMSAzMjkuM2wtMzMuOS0yNTAuOSA5LjUtNy40YzEuNi0xLjIgMi44LTIuOCAzLjctNC42czEuMy0zLjggMS4yLTUuOGMwLTctLjEtMTkuNS0uMS0xOS41bC0xMy45LTItLjEtMTAuNSAyNDEuNyAzMS40YzMuOSAxNi40IDUuOCAzMy4zIDUuOCA1MC4xIDAgMTE5LjEtOTUuNCAyMTYuMi0yMTMuOCAyMTkuMXoiXX0scjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpcHMiLGljb246WzY0MCw1MTIsW10sImY0NTIiLCJNMjUxLjYgMTU3LjZjMC0xLjktLjktMi44LTIuOC0yLjhsLTQwLjkgMGMtMS42IDAtMi43IDEuNC0yLjcgMi44bDAgMjAxLjhjMCAxLjQgMS4xIDIuOCAyLjcgMi44bDQwLjkgMGMxLjkgMCAyLjgtLjkgMi44LTIuOGwwLTIwMS44ek0xNTYuNSAxNjhjLTE2LjEtMTEuOC0zNi4zLTE3LjktNjAuMy0xOC0xOC4xLS4xLTM0LjYgMy43LTQ5LjggMTEuNGwwLTgxLjJjMC0xLjgtLjktMi43LTIuOC0yLjdsLTQwLjkgMEMuOSA3Ny41IDAgNzguNCAwIDgwLjJMMCAzNTkuNGMwIDEuOSAuOSAyLjggMi43IDIuOGw0MSAwYzEuOSAwIDIuOC0uOSAyLjgtMi44bDAtMTM2LjFjMC0uOC0yLjgtMjcgNDUuOC0yNyA0OC41IDAgNDUuOCAyNi4xIDQ1LjggMjdsMCAxMjIuNmMwIDkgNy4zIDE2LjMgMTYuNCAxNi4zbDI3LjMgMGMxLjggMCAyLjctLjkgMi43LTIuOGwwLTEzNi4xYzAtMjMuNC05LjMtNDEuOC0yOC01NS4zek02MzQuOSAyNzguMWMtNi44LTE1LjctMTguNC0yNy0zNC45LTM0LjFsLTU3LjYtMjUuM2MtOC42LTMuNi05LjItMTEuMi0yLjYtMTYuMSA3LjQtNS41IDQ0LjMtMTMuOSA4NCA2LjggMS43IDEgNC0uMyA0LTIuNGwwLTQ0LjdjMC0xLjMtLjYtMi4xLTEuOS0yLjYtMTcuNy02LjYtMzYuMS05LjktNTUuMS05LjktMjYuNSAwLTQ1LjMgNS44LTU4LjUgMTUuNC0uNSAuNC0yOC40IDIwLTIyLjcgNTMuNyAzLjQgMTkuNiAxNS44IDM0LjIgMzcuMiA0My42TDU4MC40IDI4NmMxMS42IDUuMSAxNS4yIDEzLjMgMTIuMiAyMS4yLTMuNyA5LjEtMTMuMiAxMy42LTM2LjUgMTMuNi0yNC4zIDAtNDQuNy04LjktNTguNC0xOS4xLTIuMS0xLjQtNC40IC4yLTQuNCAyLjNsMCAzNC40YzAgMTAuNCA0LjkgMTcuMyAxNC42IDIwLjcgMTUuNiA1LjUgMzEuNiA4LjIgNDguMiA4LjIgMTIuNyAwIDI1LjgtMS4yIDM2LjMtNC4zIC43LS4zIDM2LTguOSA0NS42LTQ1LjggMy41LTEzLjUgMi40LTI2LjUtMy4xLTM5LjF6TTM3Ni4yIDE0OS44Yy0zMS43IDAtMTA0LjIgMjAuMS0xMDQuMiAxMDMuNWwwIDE4My41YzAgLjggLjYgMi43IDIuNyAyLjdsNDAuOSAwYzEuOSAwIDIuOC0uOSAyLjgtMi43bDAtODguOGMxNi41IDEyLjcgMzUuOCAxOS4xIDU3LjcgMTkuMSA2MC41IDAgMTA4LjctNDguNSAxMDguNy0xMDguNyAuMS02MC4zLTQ4LjItMTA4LjYtMTA4LjYtMTA4LjZ6bTAgNDYuNmE2Mi4yIDYyLjIgMCAxIDEgMCAxMjQuMyA2Mi4yIDYyLjIgMCAxIDEgMC0xMjQuM3pNMjI4LjMgNzIuNWMtMTUuOSAwLTI4LjggMTIuOS0yOC45IDI4LjkgMCAxNS42IDEyLjcgMjguOSAyOC45IDI4LjlzMjguOS0xMy4xIDI4LjktMjguOWMwLTE2LjItMTMtMjguOS0yOC45LTI4Ljl6Il19LGE2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZHZlcnNpZnkiLGljb246WzY0MCw1MTIsW10sImYzODUiLCJNMTYwLjYgMzA0YzguMiA2OC41IDY3LjQgMTE1LjUgMTQ2IDExMS4zIDUxLjIgNDMuMyAxMzYuOCA0NS44IDE4Ni40LTUuNiA2OS4yIDEuMSAxMTguNS00NC42IDEzMS41LTk5LjUgMTQuOC02Mi41LTE4LjItMTMyLjUtOTIuMS0xNTUuMS0zMy04OC4xLTEzMS40LTEwMS41LTE4Ni41LTg1LTU3LjMgMTcuMy04NC4zIDUzLjItOTkuMyAxMDkuNy03LjggMi43LTI2LjUgOC45LTQ1IDI0LjEgMTEuNyAwIDE1LjIgOC45IDE1LjIgMTkuNWwwIDIwLjRjMCAxMC43LTguNyAxOS41LTE5LjUgMTkuNWwtMjAuMiAwYy0xMC43IDAtMTkuNS02LTE5LjUtMTYuN2wwLTYuNi00Ni44IDBjLTMuOCAwLTEwLjggNC4zLTEwLjggMTEuOWwwIDQwLjRjMCA2LjQgNS4zIDExLjggMTEuNyAxMS44bDQ4LjkgMCAwLS4xek0zODggMzEyYy0xMC43IDQ2LjMgMjEuNyA3Mi40IDU1LjMgODYuOC0xMDcuMiAzMy44LTE3MS42LTUwLjgtMTM1LjMtMTEwLjgtMzMuMiAyMS42LTMzLjcgNzEuMi0yOS4yIDkyLjktMTcuOS0xMi40LTUzLjgtMzIuNC01Ny40LTc5LjgtMy0zOS45IDIxLjUtNzUuNyA1Ny05My45IDMwLjYtMTUuOCAxMDMuNS04LjUgMTMzLjYgNDAuOC0xNC4xLTQ4LTUzLjgtNzAuMS0xMDEuOC03NC44IDMwLjktMzAuNyA2NC40LTUwLjMgMTE0LjItNDMuNyA2OS44IDkuMyAxMzMuMiA4Mi44IDY3LjcgMTUwLjUgMzUtMTYuMyA0OC43LTU0LjQgNDcuNS03Ni45bDEwLjUgMTkuNmMxMS44IDIyIDE1LjIgNDcuNiA5LjQgNzItOS4yIDM5LTQwLjYgNjguOC03OS43IDc2LjUtMzIuMSA2LjMtODMuMS01LjEtOTEuOC01OS4yek0xNDAgMjA4bC0zOS44IDBjLTguOSAwLTE2LjItNy4zLTE2LjItMTYuMmwwLTM5LjZjMC04LjkgNy4zLTE2LjIgMTYuMi0xNi4ybDM5LjggMGM4LjkgMCAxNi4yIDcuMyAxNi4yIDE2LjJsMCAzOS42YzAgOC45LTcuMyAxNi4yLTE2LjIgMTYuMnpNMjIuMSAxNjhjLTUuNiAwLTEwLjEtNC41LTEwLjEtMTAuMWwwLTI3LjhjMC01LjYgNC41LTEwLjEgMTAuMS0xMC4xbDI3LjcgMGM1LjUgMCAxMC4xIDQuNSAxMC4xIDEwLjFsMCAyNy44YzAgNS42LTQuNSAxMC4xLTEwLjEgMTAuMWwtMjcuNyAwek0xODAgMTQyLjdsMC0yMS40YzAtNS4xIDQuMi05LjMgOS4zLTkuM2wyMS40IDBjNS4xIDAgOS4zIDQuMiA5LjMgOS4zbDAgMjEuNGMwIDUuMS00LjIgOS4zLTkuMyA5LjNsLTIxLjQgMGMtNS4xIDAtOS4zLTQuMi05LjMtOS4zek02OCAyMzUuNWwwIDI1YzAgNi4zLTUuMSAxMS41LTExLjQgMTEuNWwtMjUuMiAwYy02LjMgMC0xMS40LTUuMi0xMS40LTExLjVsMC0yNWMwLTYuMyA1LjEtMTEuNSAxMS40LTExLjVsMjUuMSAwYzYuNCAwIDExLjUgNS4yIDExLjUgMTEuNXoiXX0saTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2RyZWFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhOCIsIk0yOTkuOSAxOTEuMmM1LjEgMzcuMy00LjcgNzktMzUuOSAxMDAuNy0yMi4zIDE1LjUtNTIuOCAxNC4xLTcwLjggNS43LTM3LjEtMTcuMy00OS41LTU4LjYtNDYuOC05Ny4yIDQuMy02MC45IDQwLjktODcuOSA3NS4zLTg3LjUgNDYuOS0uMiA3MS44IDMxLjggNzguMiA3OC4zek00NDggODhsMCAzMzZjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNDgwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDg4QzAgNTcuMSAyNS4xIDMyIDU2IDMybDMzNiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2ek0zMzAgMzEzLjJzLS4xLTM0LS4xLTIxNy4zbC0yOSAwIDAgNDAuM2MtLjggLjMtMS4yLS41LTEuNi0xLjItOS42LTIwLjctMzUuOS00Ni4zLTc2LTQ2LTUxLjkgLjQtODcuMiAzMS4yLTEwMC42IDc3LjgtNC4zIDE0LjktNS44IDMwLjEtNS41IDQ1LjYgMS43IDc3LjkgNDUuMSAxMTcuOCAxMTIuNCAxMTUuMiAyOC45LTEuMSA1NC41LTE3IDY5LTQ1LjIgLjUtMSAxLjEtMS45IDEuNy0yLjkgLjIgLjEgLjQgLjEgLjYgLjIgLjMgMy44IC4yIDMwLjcgLjEgMzQuNS0uMiAxNC44LTIgMjkuNS03LjIgNDMuNS03LjggMjEtMjIuMyAzNC43LTQ0LjUgMzkuNS0xNy44IDMuOS0zNS42IDMuOC01My4yLTEuMi0yMS41LTYuMS0zNi41LTE5LTQxLjEtNDEuOC0uMy0xLjYtMS4zLTEuMy0yLjMtMS4zbC0yNi44IDBjLjggMTAuNiAzLjIgMjAuMyA4LjUgMjkuMiAyNC4yIDQwLjUgODIuNyA0OC41IDEyOC4yIDM3LjQgNDkuOS0xMi4zIDY3LjMtNTQuOSA2Ny40LTEwNi4zeiJdfSxzNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGlkYWwiLGljb246WzY0MCw1MTIsW10sImU3ZGMiLCJNMTA3LjIgNDhsLTEuMyAwYy0zMi4zIDMzLjEtNjUuNCA2NS41LTk4IDk4LjUtMi42IDIuOC02LjEgNS4xLTcuOSA4LjYgMzUuNiAzNS40IDcxIDcxIDEwNi42IDEwNi40IDM1LjQtMzUuMyA3MC43LTcwLjggMTA2LjEtMTA2LjFsMC0xLjMtNzMuMi03My4yQzEyOC44IDY5LjggMTE3LjMgNTkuNiAxMDcuMiA0OHptMjEzLjUgMGwtMS4zIDBjLTM0LjkgMzYuMS03MS41IDcxLTEwNi4zIDEwNy4yIDM1LjkgMzUuMSA3MSA3MSAxMDYuNyAxMDYuMyAzNC4zLTM0LjEgNjguNC02OC40IDEwMi42LTEwMi40IDEuNS0xLjUgMy4zLTIuOCA0LjEtNC44LTM0LjYtMzMuOC02OC40LTY4LjItMTAyLjYtMTAyLjEtMS4zLTEuMy0yLjMtMi42LTMuMy00LjF6bTIxMy41IDBsLTEuMyAwYy0xNy4yIDE4LTM1LjEgMzUuMy01Mi42IDUzLTE3LjkgMTcuNy0zNS40IDM1LjctNTMuNSA1My4zIC44IDIuMyAzIDMuNiA0LjYgNS41TDUzMy4zIDI2MS41YzM2LjEtMzQuOSA3MC44LTcxLjIgMTA2LjctMTA2LjEtLjUtMi4yLTIuNi0zLjUtNC01TDU1NS44IDcwLjJjLTcuMS03LjQtMTQuOS0xNC4yLTIxLjUtMjIuMnpNMzE5LjYgMjYxLjdjLTM0LjkgMzUuMS03MCA3MC0xMDQuOSAxMDQuOS0uMyAuNy0uNyAxLjctMSAyLjMgMjQgMjMuNyA0Ny43IDQ3LjUgNzEuNSA3MS4zIDExLjggMTEuMyAyMi44IDIzLjUgMzQuOSAzNC40IDguNC03LjQgMTYuNC0xNi40IDI0LjctMjQuMyAyNS41LTI1LjMgNTEtNTEgNzYuNS03Ni4zIDEuOC0yLjIgNC4zLTMuNiA1LjUtNi4zLTM1LjQtMzQuOS03MC41LTcwLjItMTA1LjYtMTA1LjRsLTEuNS0uN3oiXX0sbjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuaXR5IixpY29uOls0NDgsNTEyLFtdLCJlMDQ5IiwiTTI0My42IDkxLjZsODAuMSA0Ni44YzIuOSAxLjYgMyA2LjIgMCA3LjhsLTk1LjIgNTUuNmMtMi45IDEuNy02LjMgMS42LTkgMGwtOTUuMi01NS42Yy0yLjktMS42LTMtNi4zIDAtNy44bDgwLjEtNDYuOCAwLTkxLjYtMjA0LjQgMTE5LjQgMCAyMzguOCA3OC40LTQ1LjggMC05My42Yy0uMS0zLjMgMy44LTUuNyA2LjctMy45bDk1LjIgNTUuNmMyLjkgMS43IDQuNSA0LjcgNC41IDcuOGwwIDExMS4yYy4xIDMuMy0zLjggNS43LTYuNyAzLjlMOTggMzQ2LjggMTkuNiAzOTIuNiAyMjQgNTEyIDQyOC40IDM5Mi42IDM1MCAzNDYuOCAyNjkuOSAzOTMuNmMtMi44IDEuNy02LjgtLjUtNi43LTMuOWwwLTExMS4yYzAtMy4zIDEuOC02LjMgNC41LTcuOEwzNjIuOSAyMTVjMi44LTEuNyA2LjggLjUgNi43IDMuOWwwIDkzLjYgNzguNCA0NS44IDAtMjM4LjgtMjA0LjQtMTE5LjQgMCA5MS42eiJdfSxvNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGVuY2VudC13ZWlibyIsaWNvbjpbMzIwLDUxMixbXSwiZjFkNSIsIk00MC41IDQ5NS44YzEuNCAxOS45LTI3LjYgMjIuMi0yOS43IDIuOS0xMS42LTEyOS45IDMxLjEtMjM5LjUgMTAxLjQtMzEzLjItMTUuNi0zNCA5LjItNzcuMSA1MC42LTc3LjEgMzAuMyAwIDU1LjEgMjQuNiA1NS4xIDU1LjEgMCA0NC00OS41IDcwLjgtODYuOSA0NS4xLTY1LjcgNzEuMy0xMDEuNCAxNjkuOC05MC41IDI4Ny4yek0xNjAuMiAuMWMtMTI1LjkgMC0yMDQuMyAxMzQuMi0xNDguMyAyNDIuMyA4LjcgMTcuNCAzNS4zIDQuNSAyNi4zLTEzLjQtNDYuMy05Mi42IDIxLTE5OS4yIDEyMi0xOTkuMiA3NS40IDAgMTM2LjkgNjEuNCAxMzYuOSAxMzYuOSAwIDkwLjgtODYuOSAxNTMuOS0xNjcuNyAxMzMuMS0xOS4xLTQuMS0yNS42IDI0LjQtNi42IDI5LjEgMTEwLjcgMjMuMiAyMDQtNjAgMjA0LTE2Mi4zIDAtOTEuOS03NC42LTE2Ni41LTE2Ni42LTE2Ni41eiJdfSxsNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnJlZS1jb2RlLWNhbXAiLGljb246WzU3Niw1MTIsW10sImYyYzUiLCJNOTcuNCA5Ni4yYzEwLjQtMTAuNiAxNi0xNy4xIDE2LTIxLjkgMC0yLjgtMS45LTUuNS0zLjgtNy40LTIuNC0xLjgtNS40LTIuOC04LjQtMi44LTguNSAwLTIwLjkgOC44LTM1LjggMjUuNy00MS41IDQ3LjMtNjIuNyA5My4xLTYxLjggMTYwLjZTMjEgMzY3LjMgNTcuNiA0MTIuMmMxOC44IDIzLjYgMzMuMiAzNS44IDQzLjUgMzUuOCAzLjItLjMgNi4xLTEuNiA4LjQtMy44IDEuOS0yLjggMy44LTUuNiAzLjgtOC40IDAtNS42LTMuOS0xMi4yLTEzLjItMjAuNi00NC41LTQyLjMtNjcuMy05Ny02Ny41LTE2NS0uMi02MS40IDIxLjYtMTEyLjQgNjQuOC0xNTR6TTIzOS42IDQyMC4xYy42IC40IC45IC42IC45IC42bC0uOS0uNnptOTMuOCAuNmwuMi0uMWMtLjIgLjEtLjMgLjItLjIgLjF6bTMuMS0xNTguMmMtMTYuMi00LjIgNTAuNC04Mi45LTY4LjEtMTc3LjIgMCAwIDE1LjUgNDkuNC02Mi44IDE1OS42LTc0LjMgMTA0LjQgMjMuNSAxNjguNyAzNCAxNzUuMi02LjctNC4zLTQ3LjQtMzUuNyA5LjYtMTI4LjYgMTEtMTguMyAyNS41LTM0LjkgNDMuNS03Mi4yIDAgMCAxNS45IDIyLjQgNy42IDcxLjEtMTIuNSA3My42IDUzLjggNTIuNSA1NC44IDUzLjUgMjIuOCAyNi44LTE3LjcgNzMuNS0yMS42IDc2LjYgNS41LTMuNyAxMTcuNy03OCAzMy0xODguMS02IDYtMTMuOCAzNC4yLTMwIDMwLjF6TTUxMSA4OS43Yy0xNC45LTE2LjktMjcuNC0yNS43LTM1LjktMjUuNy0zIC4xLTUuOSAxLjEtOC40IDIuOC0xLjkgMS45LTMuOCA0LjctMy44IDcuNCAwIDQuOCA1LjYgMTEuMyAxNiAyMS45IDQzLjIgNDEuNiA2NSA5Mi42IDY0LjggMTU0LjEtLjIgNjgtMjMgMTIyLjYtNjcuNSAxNjUtOS4zIDguNC0xMy4yIDE0LjktMTMuMiAyMC42IDAgMi43IDEuOSA1LjYgMy44IDguNCAyLjMgMi4yIDUuMiAzLjYgOC40IDMuOCAxMC4zIDAgMjQuNy0xMi4xIDQzLjUtMzUuOCAzNi42LTQ0LjkgNTMuMS05NC40IDU0LjEtMTYxLjlTNTUyLjUgMTM3IDUxMSA4OS43eiJdfSxjNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieC10d2l0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjFiIiwiTTM1Ny4yIDQ4TDQyNy44IDQ4IDI3My42IDIyNC4yIDQ1NSA0NjQgMzEzIDQ2NCAyMDEuNyAzMTguNiA3NC41IDQ2NCAzLjggNDY0IDE2OC43IDI3NS41LTUuMiA0OCAxNDAuNCA0OCAyNDAuOSAxODAuOSAzNTcuMiA0OHpNMzMyLjQgNDIxLjhsMzkuMSAwLTI1Mi40LTMzMy44LTQyIDAgMjU1LjMgMzMzLjh6Il19LGQ2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGlja2VyLW11bGUiLGljb246WzU3Niw1MTIsW10sImYzZjciLCJNNTYxLjcgMTk5LjZsMCAwem0tNi4yLTc3LjRjLTcuNy0yMi4zLTUuMS03LjItMTMuNC0zNi45LTEuNi02LjUtMy42LTE0LjUtNi4yLTIwLTQuNC04LjctNC42LTcuNS00LjYtOS41IDAtNS4zIDMwLjctNDUuMyAxOS00Ni45LTUuNy0uNi0xMi4yIDExLjYtMjAuNiAxNy04LjYgNC4yLTggNS0xMC4zIDUtMi42IDAtNS43LTMtNi4yLTUtMi01LjcgMS45LTI1LjktMy42LTI1LjktMy42IDAtMTIuMyAyNC44LTE3IDI1LjgtNS4yIDEuMy0yNy45LTExLjQtNzUuMSAxOC0yNS4zIDEzLjItODYuOSA2NS4yLTg3IDY1LjMtNi43IDQuNy0yMCA0LjctMzUuNSAxNi00NC40IDMwLjEtMTA5LjYgOS40LTExMC43IDktMTEwLjYtMjYuOC0xMjgtMTUuMi0xNTkgMTEuNS0yMC44IDE3LjktMjMuNyAzNi41LTI0LjIgMzguOS00LjIgMjAuNCA1LjIgNDguMyA2LjcgNjQuMyAxLjggMTkuMy0yLjcgMTcuNyA3LjcgOTguMyAuNSAxIDQuMSAwIDUuMSAxLjUgMCA4LjQtMy44IDEyLjEtNC4xIDEzLTEuNSA0LjUtMS41IDEwLjUgMCAxNiAyLjMgOC4yIDguMiAzNy4yIDguMiA0Ni45IDAgNDEuOCAuNCA0NCAyLjYgNDkuNCAzLjkgMTAgMTIuNSA5LjEgMTcgMTIgMy4xIDMuNS0uNSA4LjUgMSAxMi41IC41IDIgMy42IDQgNi4yIDUgOS4yIDMuNiAyNyAuMyAyOS45LTIuNSAxLjYtMS41IC41LTQuNSAzLjEtNSA1LjEgMCAxMC44LS41IDE0LjQtMi41IDUuMS0yLjUgNC4xLTYgMS41LTEwLjUtLjQtLjgtNy0xMy4zLTkuOC0xNi0yLjEtMi01LjEtMy03LjItNC41LTUuOC00LjktMTAuMy0xOS40LTEwLjMtMTkuNS00LjYtMTkuNC0xMC4zLTQ2LjMtNC4xLTY2LjggNC42LTE3LjIgMzkuNS04Ny43IDM5LjYtODcuOCA0LjEtNi41IDE3LTExLjUgMjcuMy03IDYgMS45IDE5LjMgMjIgNjUuNCAzMC45IDQ3LjkgOC43IDk3LjQtMiAxMTIuMi0yIDIuOCAyLTEuOSAxMy0uNSAzOC45IDAgMjYuNC0uNCAxMy43LTQuMSAyOS45LTIuMiA5LjcgMy40IDIzLjItMS41IDQ2LjktMS40IDkuOC05LjkgMzIuNy04LjIgNDMuNCAuNSAxIDEgMiAxLjUgMy41IC41IDQuNSAxLjUgOC41IDQuNiAxMCA3LjMgMy42IDEyLTMuNSA5LjggMTEuNS0uNyAzLjEtMi42IDEyIDEuNSAxNSA0LjQgMy43IDMwLjYgMy40IDM2LjUgLjUgMi42LTEuNSAxLjYtNC41IDYuNC03LjQgMS45LS45IDExLjMtLjQgMTEuMy02LjUgLjMtMS44LTkuMi0xOS45LTkuMy0yMC0yLjYtMy41LTkuMi00LjUtMTEuMy04LTYuOS0xMC4xLTEuNy01Mi42IC41LTU5LjQgMy0xMSA1LjYtMjIuNCA4LjctMzIuNCAxMS00Mi41IDEwLjMtNTAuNiAxNi41LTY4LjMgLjgtMS44IDYuNC0yMy4xIDEwLjMtMjkuOSA5LjMtMTcgMjEuNy0zMi40IDMzLjUtNDcuNCAxOC0yMi45IDM0LTQ2LjkgNTItNjkuOCA2LjEtNyA4LjItMTMuNyAxOC04IDEwLjggNS43IDIxLjYgNyAzMS45IDE3IDE0LjYgMTIuOCAxMC4yIDE4LjIgMTEuOCAyMi45IDEuNSA1IDcuNyAxMC41IDE0LjkgOS41IDEwLjQtMiAxMy0yLjUgMTMuNC0yLjUgMi42LS41IDUuNy01IDcuMi04IDMuMS01LjUgNy4yLTkgNy4yLTE2LjUgMC03LjctLjQtMi44LTIwLjYtNTIuOXoiXX0sdTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR3aXRjaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjFlOCIsIk0zNTkuNCAxMDMuNWwtMzguNiAwIDAgMTA5LjcgMzguNiAwIDAtMTA5Ljd6TTI1My4yIDEwM2wtMzguNiAwIDAgMTA5LjggMzguNiAwIDAtMTA5Ljh6TTg5IDBsLTk2LjUgOTEuNCAwIDMyOS4yIDExNS44IDAgMCA5MS40IDk2LjUtOTEuNCA3Ny4zIDAgMTczLjgtMTY0LjYgMC0yNTYtMzY2LjkgMHpNNDE3LjMgMjM3LjhsLTc3LjIgNzMuMS03Ny4yIDAtNjcuNiA2NCAwLTY0LTg2LjkgMCAwLTI3NC4zIDMwOC45IDAgMCAyMDEuMnoiXX0scDZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtpY2tzdGFydGVyLWsiLGljb246WzQ0OCw1MTIsW10sImYzYmMiLCJNMzU2LjcgMjU2LjJsNDAuOC00MC41YzQyLjItNDEuOSA0Mi4yLTExMC4zIDAtMTUyLjFzLTExMS00MS45LTE1My4yIDBMMjI5LjMgNzguNEMyMDkuNiA1MC4zIDE3Ny4xIDMyIDE0MC4yIDMyIDgwLjUgMzIgMzIgODAuMiAzMiAxMzkuNWwwIDIzM2MwIDU5LjQgNDguNSAxMDcuNSAxMDguMiAxMDcuNSAzNy4xIDAgNjkuMy0xOC4zIDg5LTQ2LjRsMTQuOSAxNC43YzQyLjIgNDEuOSAxMTEgNDEuOSAxNTMuMiAwczQyLjItMTEwLjMgMC0xNTIuMWwtNDAuOC00MCAuMSAweiJdfSxmNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JpdGljYWwtcm9sZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjZjOSIsIk0yMjUuOCAwYy4zIC4yIDIxNi42IDEyNC41IDIxNy4xIDEyNC43IDMgMS4yIDMuNyAzLjUgMy43IDYuNi0uMSA4My40LS4xIDE2Ni45IDAgMjUwLjQgLjEgMS4yLS4yIDIuNC0uOCAzLjRzLTEuNSAxLjktMi42IDIuNGMtMjEuNCAxMi0yMDcuOSAxMTguMy0yMTguOSAxMjQuNmwtMyAwYy03OS4zLTQ1LjctMjE4LjMtMTI1LjQtMjE4LjQtMTI1LjUtLjYtLjMtMS4xLS43LTEuNC0xLjNzLS41LTEuMi0uNC0xLjljMC0uOSAwLTIyNS45LS4xLTI1My4xLS4xLTEgLjItMiAuNy0yLjlzMS4zLTEuNiAyLjItMkMyNy4yIDExMi4xIDIxMy4yIDYgMjI0LjEgMGwxLjggMHpNMjE1LjQgMjAuNGwtLjItLjJjLTY0LjcgMzYuOS0xMjkuNSA3My43LTE5NC4yIDExMC42IDAgLjEgLjEgLjIgLjEgLjRMNTIgMTQyLjljLTcuNyA2LTguMyA2LTEwLjYgNS4xLS4xIDAtMjQuMi05LjMtMjYuOC0xMGwwIDIzMC40Yy45LTEuNCA2NC4xLTExMC45IDY0LjEtMTExIDEuNi0yLjggMy0xLjkgOS4xLTEuNSAxLjQgLjEgMS41IC4yIC44IDEuNC00MS4yIDcxLjMtMzYuNCA2My02Ny41IDExNi45LS44IDEuNC0uNiAxLjEgMS4yIDEuMWwxODYuNSAwYzEuNCAwIDEuNy0uMiAxLjctMS42bDAtOC45YzAtMS4zIDIuNC0uOC0xOC40LTEtNy41LS4xLTE0LjEtMy4yLTIxLjQtMTIuNy03LjQtOS43LTE0LjYtMTkuNC0yMS44LTI5LjItMi4zLTMuMS0zLjQtMi40LTE2LjgtMi40LTEuOCAwLTEuOCAwLTEuOCAxLjggLjMgMjYuMiAuMiAyNS4zIDEgMzIuNyAuNSA0LjQgMi4yIDQuMiA5LjcgNC44IDMuMSAuMyAzLjkgNC4xIC41IDQuOS0xLjYgLjQtMzEuNiAuNS0zMy43LS4xLS41LS4xLTEtLjUtMS4zLS45cy0uNS0xLS40LTEuNiAuMy0xLjEgLjYtMS41IC45LS43IDEuNC0uOGMzLjMtLjggNi4yIC44IDYuNy00LjQgMS4zLTEzLjcgMS4yLTkgMS4xLTc5LjQgMC0xMC44LS40LTEyLjYtNS40LTEzLjYtMS4yLS4yLTMuNS0uMi00LjctLjYtMi45LTEtMi00LjggMS44LTQuOCAzMy43IDAgNDYuMS0xLjEgNTYuMSA0LjkgNy43IDQuNiAxMiAxMS41IDEyLjUgMjAuNCAuOSAxNC42LTYuNSAyMi4zLTE1IDMyLjYtLjIgLjEtLjMgLjMtLjQgLjVzLS4xIC40LS4xIC42IDAgLjQgLjEgLjYgLjIgLjQgLjQgLjVjMi42IDMuMiA1IDYuNiA3LjcgOS44IDI3LjYgMzMuMiAyNC4xIDMwLjUgNDEuMyAzMy4xIC45IC4xIDEtLjQgMS0xLjJsMC0xMWMwLTEgLjMtMS40IDEuNC0xLjMgNy44IDEuMiAxNS44IDEuMSAyMy42LS4zIDEuMS0uMSAxLjUgLjIgMS41IDEuMyAwIC4xIC45IDI2LjcgLjkgMjYuOCAwIDEuNSAuNyAxLjYgMS45IDEuNmwxODYuNyAwYy0yNy4yLTQ3LTU0LjItOTQtODEuMi0xNDAuOCAyLjMtLjctLjQgMCA2LjctMS40IDItLjQgMi4xLS40IDMuMSAxLjQgNy4zIDEyLjYgNzcuMyAxMzQgNzcuNCAxMzQuMWwwLTIzMC40Yy0xLjcgLjUtMTAzLjMgMzguNy0xMDUuOCAzOS43LTEuMSAuNC0xLjUgLjItMS45LS45LS42LTEuOS0xLjMtMy44LTIuMS01LjYtLjMtLjgtLjEtMS4xIC42LTEuNCAuMSAwIDk1LjUtMzUuOCAxMDMtMzguOC02NS40LTM3LjYtMTMwLjYtNzUtMTk2LTExMi42bDg2LjggMTUwLjQtLjMgLjNjLTkuNi0uOS0xMC41LTEuNi0xMS44LTMuOS0xLTEuNy03My41LTEyNy43LTgyLTE0Mi4yLTkuMSAxNC43LTgzLjYgMTQ2LjItODUuNCAxNDYuMy0yLjkgLjItNS45IC4xLTkuMiAuMSAyOC44LTQ5LjggNTcuNi05OS41IDg2LjItMTQ5bDAgMHptNTEuOSAxMjkuOWMxLjktLjEgMy43LS40IDUuNS0uOCAxLjctLjMgMi41IC4yIDIuNiAxLjkgMCAuMSAuMSAxOS4xLS45IDIwLjVzLTEuOSAxLjItMi42LS4yYy01LTkuNyA2LjItOS43LTM5LjEtMTItLjcgMC0xIC4yLTEgLjkgMCAuMSAzLjcgMTIyIDMuNyAxMjIuMSAwIC45IC41IDEuMiAxLjIgMS41IDMgMS4yIDUuOSAyLjUgOC43IDQgNy4zIDQuMyAxMS40IDEwLjggMTIuNCAxOS4zIDEuNCAxMS44LTIuOCAzNS44LTMyLjIgMzcuMS0yLjggLjEtMjguMyAxLjEtMzQuMS0yMy4zLTQuNy0xOS4zIDguMy0zMi43IDE5LjktMzYuNCAuNi0uMSAxLjItLjQgMS41LS45cy41LTEuMSAuNS0xLjdjLjEtNS42IDMtMTA3LjEgMy43LTEyMS4zIDAtMS4xLS42LTEuMi0xLjQtMS4xLTMyLjMgLjUtMzYuNy0uMy00MC4yIDguNS0yLjQgNi4yLTQuMSAxLjMtNCAuMiAxLjEtNiAyLjItMTIgMy4zLTE4IC40LTIuMSAxLjQtMi42IDMuNC0xLjkgNS42IDIuMSA2LjcgMS43IDM3LjIgMS45IDEuNyAwIDEuOC0uMSAxLjgtMS44IC43LTI3LjUgLjYtMjIuNiAxLTI5LjYgLjEtLjYtLjEtMS4yLS4zLTEuN3MtLjctLjktMS4zLTEuMWMtNS42LTIuOS04LjgtNy42LTguOS0xMy45LS40LTE0LjggMTcuNy0yMS43IDI3LjQtMTEuNSA2LjggNy4yIDUuOCAxOC45LTIuNSAyNC4yLS44IC40LTEuNCAxLjEtMS44IDEuOHMtLjYgMS42LS40IDIuNWMwIC42LS4xLTQuMyAxIDMwIDAgLjkgLjQgMS4xIDEuMiAxLjEgLjEgMCAyMy0uMSAzNC41LS40bDAtLjF6TTY4LjMgMTQxLjdjMTkuOC00LjUgMzIuNy0uNiA1Mi41IDEuNyAyLjggLjMgMy43IDEuMiAzLjYgNC0uMiA1LTEuMiAyMi4zLTEuMiAyMy4xIDAgLjUtLjIgMS0uNSAxLjRzLS43IC43LTEuMiAuOWMtNC4xIDEuNy0zLjYtNC40LTQtNy4zLTMuMS0yMi40LTczLjktMzIuNy03NC42IDI1LjQtLjMgMjMuOSAxNyA1My42IDU0LjEgNTAuOSAyNy4yLTIgMTktMjAuMiAyNC44LTIwLjUgLjQtLjEgLjkgMCAxLjMgLjFzLjggLjQgMS4xIC43IC41IC43IC42IDEuMiAuMSAuOSAwIDEuM2MtMS44IDEwLjgtMy40IDE5LTMuNCAxOS4yLTEuNSA5LjItODYuNyAyMi4xLTkzLjQtNDIuMS0yLjctMjUuOCAxMC40LTUzLjQgNDAuMy02MC4yem04MCA4Ny43bC0xOS41IDBjLS42IDAtMS4yLS4xLTEuNi0uNHMtLjgtLjgtMS0xLjRjMi40LTMuOCA1LjkgLjkgNS45LTYuMS0uMS0yNS44IC4yLTM4IC4yLTQwLjEgMC0zLjQtLjUtNC42LTMuMy00LjktNy0uNy0zLjEtMy40LTEuMS0zLjQgMTEuOC0uMSAyMi42LS4yIDMwIC43IDguOCAxLjEgMTYuNyAxMi42IDcuOSAyMi42LTIgMi4yLTQgNC40LTYuMSA2LjcgMSAxLjIgNi45IDguOCAxNy4zIDE5LjcgMi43IDIuOCA2LjIgMy41IDkuOSAzLjEgLjYgMCAxLjEtLjIgMS41LS42cy43LS45IC43LTEuNWMuMy0zLjQgLjMgNC43IC40LTQwLjYgMC01LjYtLjMtNi42LTMuMi02LjgtNC0uNC00LTIuMy0uNy0zLjRsMTkuMS0uMWMuMyAwIDQuNSAuNSAxIDMuNCAwIDAtLjIgMC0uMiAwLTMuNiAuMy0zLjkgMS00IDQuNi0uMyA0My45IC4xIDQwLjIgLjQgNDIuOCAuMSAuOCAuMyAyLjIgNS4xIDIuMSAyLjUgMCAzLjkgMy40IDAgMy40LTEwLjQgLjEtMjAuNyAwLTMxLjEgLjEtMTAuNyAwLTEzLjUtNi4yLTI0LjItMjAuOC0xLjYtMi4yLTguMy0yLjQtOC4yLS40IC45IDE2LjUgMCAxNy44IDQgMTcuNyA0LjgtLjEgNC43IDMuNiAuOCAzLjVsLjEgMHptMjc1LTEwLjFjLTEuMiA3LjEgLjIgMTAuNC01LjMgMTAuMy02MS41LS40LTQ3LjgtLjItNTAuNy0uMy0xLjItLjEtMi40LS40LTMuNi0uNy0yLjUtLjYgMS41LTEuMi0uNC01LjYtMS40LTMuNC0yLjgtNi44LTQuMS0xMC4yLS4xLS40LS40LS44LS43LTEuMXMtLjgtLjQtMS4zLS40Yy00LjktLjItOS43LS4yLTE0LjYgLjEtLjMgMC0uNiAuMi0uOSAuM3MtLjUgLjQtLjcgLjdjLTEuNiAzLjYtMy4xIDcuMy00LjUgMTEtMS4zIDMuMiA3LjkgMS4zIDEyLjIgMi4yIDMgLjYgNC41IDMuNyAuNyAzLjdsLTI2LjQgMGMtMi45IDAtMy4xLTMuMi0uNy0zLjIgMS4yIC4xIDIuNC0uMiAzLjUtLjlzMS45LTEuNSAyLjQtMi42YzEuNS0zIDIuOC02IDQuMS05LjEgMTguMi00Mi4xIDE3LjEtNDAuMiAxOC40LTQxLjYgLjItLjIgLjQtLjQgLjctLjZzLjYtLjIgLjgtLjIgLjYgLjEgLjggLjIgLjUgLjMgLjcgLjZjMi45IDMuMyAxOC40IDQ0LjcgMjMuNiA1MS45IDIgMi43IDUuNyAyIDYuNCAyIDMuNiAuMSA0LTEuMSA0LjEtNC4zIC4xLTEuOSAuMSAxLjIgLjEtNDEuMiAwLTQuNS0yLjQtMy43LTUuNi00LjMtLjMgMC0yLjYtLjYtLjEtMy4xIC4yLS4yLS45LS4yIDIxLjctLjIgMi4zIDAgNS4zIDIuOC0xLjIgMy40LS40IDAtLjcgMC0xLjEgLjJzLS42IC4zLS45IC42LS40IC42LS42IC45LS4yIC43LS4xIDEuMWMtLjEgMS42LS4yIDM4LjkgLjMgNDEuMiAuMiAuNyAuNiAxLjQgMS4yIDEuOHMxLjMgLjcgMi4xIC42YzEzLjMgLjQgMTQuOSAuNCAxNi0zLjQgMS43LTUuOCA0LjEtMi41IDMuNy0uMmwwIC4xek0zMTguNiAyODMuNmMtNC4yIDAtNC40LTMuNC0uNi0zLjQgMzUuOS0uMiAyOC4xIC40IDM3LjItLjYgMS43LS4yIDIuNCAuMiAyLjMgMS45LS4zIDMuNC0uNiA2LjgtMSAxMC4yLS4yIDIuMi0zLjIgMi42LTMuNC0uMi0uNC01LjMtMi4yLTQuNS0xNS42LTUuMS0xLjYtLjEtMS42IDAtMS42IDEuNWwwIDE2LjFjMCAxLjcgMCAxLjYgMS42IDEuNSAzLjEtLjIgMTAuMyAuMyAxNS43LTEuNSAuNS0uMiAzLjMtMS44IDMuMSAxLjggMCAuMi0uOCAxMC40LTEuMiAxMS40LS41IDEuMy0xLjkgMS41LTIuNiAuMy0xLjItMiAwLTUuMS0zLjctNS4zLTE1LjQtLjktMTIuOS0yLjUtMTIuOSA2IDAgMTIuMy0uOCAxNi4xIDMuOSAxNi4yIDE2LjYgLjUgMTQuNCAwIDE2LjQtNS43IC44LTIuNCAzLjUtMS44IDMuMiAuNi0uNCAzLjItLjggNi40LTEuMiA5LjYgMCAuNC0uMiAyLjQtNC43IDIuNC0zNy4yLS4xLTM0LjUtLjItMzUuMi0uMy0yLjctLjUtMi4yLTMgLjItMy40IDEuMS0uMiA0IC41IDQuMi0yLjYgMi40LTU2LjItLjEtNTEuMy0zLjktNTEuM2wwIDB6bS0uNC0xMDkuNWMyLjUgLjYgMy4xIDEuOCAzIDQuNi0uMyA1LjMtLjMgOS0uNiA5LjctLjcgMi4yLTMuMSAyLjEtMy4zLS4zLS40LTQuOC0zLTcuOC03LjYtOS4xLTI2LjMtNy43LTMyLjggMTUuNS0yNy4yIDMwLjIgNS45IDE1LjQgMjIgMTUuOSAyOC45IDEzLjggNS45LTEuOSA1LjktNi41IDYuOS03LjYgMS4yLTEuMyAyLjItMS44IDMuMSAxLjEgMCAuMSAuNiAxMS45LTYgMTIuNy0xLjYgLjItMTkuNCAzLjctMzIuNy0zLjQtMjEtMTEuMi0xNi43LTM1LjUtNi45LTQ1LjMgMTQtMTQuMSAzOS45LTcuMSA0Mi4zLTYuNWwwIDB6TTI4OS44IDI4MC4xYzMuMyAwIDMuNyAzIC4yIDMuNC0yLjYgLjMtNS0uNC01IDUuNSAwIDItLjIgMjkgLjQgNDEuNCAuMSAyLjMgMS4yIDMuNSAzLjQgMy43IDIyIDEuMiAxNS0xLjcgMTguOC02LjMgMS44LTIuMiAyLjggLjggMi44IDEuMSAuMyAxMy42LTQgMTIuNC01LjIgMTIuNGwtMzguMi0uMmMtMS45LS4yLTIuMS0zLS40LTMuNCAyLS41IDQuOSAuNCA1LjEtMi44IDEtMTUuOSAuNi00NC42IC4zLTQ3LjgtLjMtMy44LTIuOC0zLjMtNS43LTMuNy0yLjUtLjQtMi0zLjIgLjMtMy4yIDEuNCAwIDE4IDAgMjMuMSAwem0tMzEuNi01Ny44Yy4xIDQuMSAyLjkgMy41IDYgMy42IDIuNiAuMSAyLjUgMy40LS4xIDMuNC02LjUgMC0xMy43IDAtMjEuNi0uMS0zLjggMC0zLjQtMy40IDAtMy40IDQuNSAwIDMuMiAxLjYgMy40LTQ1LjUgMC01LjEtMy4zLTMuNS00LjctNC4yLTIuNi0xLjItMS40LTMuMSAuNC0zLjIgMS4zIDAgMjAuMi0uNCAyMS4yIC4yczEuOSAxLjYtLjQgMi45Yy0xIC41LTMuOS0uMy00LjIgMi41IDAgLjItLjggMS42LS4xIDQzLjhsMCAwek0yMjEuMyA0OTYuNmMuNSAuMyAxIC41IDEuNiAuNXMxLjEtLjIgMS42LS41YzE3LTkuOCAxODItMTAzLjYgMTk3LjQtMTEyLjUtLjEtLjQgMTEuMy0uMi0xODEuNS0uMy0xLjIgMC0xLjYgLjQtMS41IDEuNiAwIC4xIDEuMyA0NC41IDEuMiA1MC40LS4xIDIuNi0uNiA1LjItMS40IDcuNy0uNiAxLjggLjQtLjUtMTMuNSAzMi4yLS43IDEuNy0xIDIuMi0yLS4xLTQuMi0xMC4zLTguMy0yMC43LTEyLjYtMzEtMS41LTMuNC0yLjItNy4xLTItMTAuOCAuMi0yLjUgLjgtMTYuMSAxLjUtNDggMC0xLjkgMC0yLTItMmwtMTgzIDBjMi42IDEuNiAxNzguMyAxMDIuNiAxOTYgMTEyLjhsLjEgMHpNMTMwLjQgMzA3LjljMCAyLjQgLjQgMi44IDIuOCAzIDExLjUgMS4yIDIxIDMuNyAyNS42LTcuMyA2LTE0LjUgMi43LTM0LjQtMTIuNS0zOC44LTItLjYtMTYtMi44LTE1LjkgMS41IDAgOCAwIDExLjYgMCA0MS42em0xMDUuOC0xNWMwIDIuMSAxLjEgMzguNyAxLjEgMzkuMSAuMyA5LjktMjUuNiA1LjgtMjUuMi0yLjYgLjEtMiAxLjQtMzcuNCAxLjEtMzkuNC0xNC4xIDcuNC0xNC40IDQwLjIgNi40IDQ4LjggNCAxLjcgOC40IDEuOSAxMi41IC42czcuNi00IDkuOS03LjdjNC45LTcuOCA2LjgtMjkuNS01LjQtMzktLjEgLjEtLjIgLjEtLjQgLjFsMCAwem0tMTIuMy0xOThjLTkuOCAwLTkuNyAxNC44LS4xIDE0LjlzMTAuMS0xNC45IC4xLTE0LjlsMCAwek0xNDMuNyAxOTguNmMwIDEuOCAuNCAyLjQgMi4yIDIuNiAxMy42IDEuNCAxMi41LTExIDEyLjItMTMuNC0xLjctMTEuMi0xNC40LTEwLjItMTQuNC03LjggMCA0LjUgMCAxMy43IDAgMTguNnpNMzU2IDIwNWwtNi4xLTE1LjhjLTIuMiA1LjUtNC4yIDEwLjYtNi4yIDE1LjhsMTIuMyAweiJdfSxoNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RlYW0tc3ltYm9sIixpY29uOls0NDgsNTEyLFtdLCJmM2Y2IiwiTTI3My41IDE3Ny41YTYxIDYxIDAgMSAxIDEyMiAwIDYxIDYxIDAgMSAxIC0xMjIgMHptMTc0LjUgLjJjMCA2My01MSAxMTMuOC0xMTMuNyAxMTMuOEwyMjUgMzcxLjNjLTQgNDMtNDAuNSA3Ni44LTg0LjUgNzYuOC00MC41IDAtNzQuNy0yOC44LTgzLTY3TDAgMzU4IDAgMjUwLjcgOTcuMiAyOTBjMTUuMS05LjIgMzIuMi0xMy4zIDUyLTExLjVsNzEtMTAxLjdDMjIwLjcgMTE0LjUgMjcxLjcgNjQgMzM0LjIgNjQgMzk3IDY0IDQ0OCAxMTUgNDQ4IDE3Ny43ek0yMDMgMzYzYzAtMzQuNy0yNy44LTYyLjUtNjIuNS02Mi41LTQuNSAwLTkgLjUtMTMuNSAxLjVsMjYgMTAuNWMyNS41IDEwLjIgMzggMzkgMjcuNyA2NC41LTEwLjIgMjUuNS0zOS4yIDM4LTY0LjcgMjcuNS0xMC4yLTQtMjAuNS04LjMtMzAuNy0xMi4yIDEwLjUgMTkuNyAzMS4yIDMzLjIgNTUuMiAzMy4yIDM0LjcgMCA2Mi41LTI3LjggNjIuNS02Mi41ek00MTAuNSAxNzcuN2E3Ni40IDc2LjQgMCAxIDAgLTE1Mi44IDAgNzYuNCA3Ni40IDAgMSAwIDE1Mi44IDB6Il19LG02cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYWlsY2hpbXAiLGljb246WzQ0OCw1MTIsW10sImY1OWUiLCJNMzMxIDI0My41YzMuMS0uNCA2LjItLjQgOS4zIDAgMS43LTMuOCAyLTEwLjQgLjUtMTcuNi0yLjItMTAuNy01LjMtMTcuMS0xMS41LTE2LjFzLTYuNSA4LjctNC4yIDE5LjRjMS4zIDYgMy41IDExLjEgNiAxNC4zbDAgMHpNMjc3LjQgMjUyYzQuNSAyIDcuMiAzLjMgOC4zIDIuMSAxLjktMS45LTMuNS05LjQtMTIuMS0xMy4xLTUtMi4xLTEwLjQtMi44LTE1LjgtMi4ycy0xMC41IDIuNy0xNC44IDUuOGMtMyAyLjItNS44IDUuMi01LjQgNy4xIC45IDMuNyAxMC0yLjcgMjIuNi0zLjUgNy0uNCAxMi44IDEuOCAxNy4zIDMuN2wwIDB6bS05IDUuMWMtOS4xIDEuNC0xNSA2LjUtMTMuNSAxMC4xIC45IC4zIDEuMiAuOCA1LjItLjggNi0yLjMgMTIuNC0yLjkgMTguNy0xLjkgMi45IC4zIDQuMyAuNSA0LjktLjUgMS41LTIuMi01LjctOC0xNS40LTYuOWwwIDB6bTU0LjIgMTcuMWMzLjQtNi45LTEwLjktMTMuOS0xNC4zLTdzMTAuOSAxMy45IDE0LjMgN2wwIDB6bTE1LjctMjAuNWMtNy43LS4xLTggMTUuOC0uMyAxNS45czgtMTUuOCAuMy0xNmwwIDB6TTExOS41IDMzMi43Yy0xLjMgLjMtNiAxLjUtOC41LTIuMy01LjItOCAxMS4xLTIwLjQgMy0zNS44LTkuMS0xNy41LTI3LjgtMTMuNS0zNS01LjUtOC43IDkuNi04LjcgMjMuNS01IDI0LjEgNC4zIC42IDQuMS02LjUgNy40LTExLjYgLjktMS40IDIuMS0yLjYgMy41LTMuNnMzLTEuNiA0LjYtMiAzLjQtLjQgNSAwIDMuMyAxIDQuNyAxLjljMTEuNiA3LjYgMS40IDE3LjggMi4zIDI4LjYgMS40IDE2LjcgMTguNCAxNi40IDIxLjYgOSAuMi0uNCAuMy0uOCAuMy0xLjJzLS4yLS44LS41LTEuMWMwIC45IC43LTEuMy0zLjQtLjRsMCAwem0yOTkuNy0xNy4xYy0zLjMtMTEuNy0yLjYtOS4yLTYuOC0yMC41IDIuNC0zLjcgMTUuMy0yNC0zLjEtNDMuMy0xMC40LTEwLjktMzMuOS0xNi41LTQxLjEtMTguNS0xLjUtMTEuNCA0LjYtNTguNy0yMS41LTgzIDIwLjgtMjEuNiAzMy44LTQ1LjMgMzMuNy02NS43LS4xLTM5LjItNDguMi01MS0xMDcuNC0yNi41bC0xMi41IDUuM2MtLjEgMC0yMi43LTIyLjMtMjMuMS0yMi42LTY3LjUtNTguOS0yNzguOCAxNzUuOS0yMTEuMyAyMzIuOWwxNC44IDEyLjVjLTQgMTAuNy01LjQgMjIuMi00LjEgMzMuNSAzLjQgMzMuNCAzNiA2MC40IDY3LjUgNjAuNCA1Ny43IDEzMy4xIDI2Ny45IDEzMy4zIDMyMi4zIDMgMS43LTQuNSA5LjEtMjQuNiA5LjEtNDIuNHMtMTAuMS0yNS4zLTE2LjUtMjUuM2wwIDB6bS0zMTYgNDguMmMtMjIuOC0uNi00Ny41LTIxLjEtNDkuOS00NS41LTYuMi02MS4zIDc0LjMtNzUuMyA4NC0xMi4zIDQuNSAyOS42LTQuNyA1OC41LTM0LjEgNTcuOGwwIDB6TTg0LjcgMjQ5LjZjLTE1LjIgMy0yOC41IDExLjUtMzYuNyAyMy41LTQuOS00LjEtMTQtMTItMTUuNi0xNS0xMy0yNC44IDE0LjItNzMgMzMuMy0xMDAuMiA0Ny4xLTY3LjIgMTIwLjktMTE4LjEgMTU1LTEwOC45IDUuNSAxLjYgMjMuOSAyMi45IDIzLjkgMjIuOXMtMzQuMSAxOC45LTY1LjggNDUuM0MxMzYuMiAxNTAgMTA0IDE5Ny43IDg0LjcgMjQ5LjZ6TTMyMy42IDM1MC43cy0zNS43IDUuMy02OS41LTcuMWM2LjItMjAuMiAyNyA2LjEgOTYuNC0xMy44IDE1LjMtNC40IDM1LjQtMTMgNTEtMjUuNCAzLjQgNy44IDUuOCAxNS45IDcuMSAyNC4zIDMuNy0uNyAxNC4yLS41IDExLjQgMTguMS0zLjMgMTkuOS0xMS43IDM2LTI1LjkgNTAuOC04LjkgOS42LTE5LjQgMTcuNS0zMS4yIDIzLjMtNi41IDMuNC0xMy4zIDYuMy0yMC4zIDguNi01My41IDE3LjUtMTA4LjMtMS43LTEyNi00My0xLjQtMy4xLTIuNi02LjQtMy42LTkuNy03LjUtMjcuMi0xLjEtNTkuOCAxOC44LTgwLjQgMS4yLTEuMyAyLjUtMi45IDIuNS00LjgtLjItMS43LS44LTMuMy0xLjktNC41LTctMTAuMS0zMS4yLTI3LjQtMjYuMy02MC44IDMuNS0yNCAyNC41LTQwLjkgNDQuMS0zOS45bDUgLjNjOC41IC41IDE1LjkgMS42IDIyLjkgMS45IDExLjcgLjUgMjIuMi0xLjIgMzQuNi0xMS42IDQuMi0zLjUgNy42LTYuNSAxMy4zLTcuNSAyLjMtLjYgNC43LS43IDctLjNzNC42IDEuMiA2LjYgMi41YzEwIDYuNiAxMS40IDIyLjcgMTEuOSAzNC41IC4zIDYuNyAxLjEgMjMgMS40IDI3LjYgLjYgMTAuNyAzLjQgMTIuMiA5LjEgMTQgMy4yIDEgNi4yIDEuOCAxMC41IDMuMSAxMy4yIDMuNyAyMSA3LjUgMjYgMTIuMyAyLjUgMi41IDQuMiA1LjggNC43IDkuMyAxLjYgMTEuNC04LjggMjUuNC0zNi4zIDM4LjItNDYuNyAyMS43LTkzLjcgMTQuNC0xMDAuNSAxMy43LTIwLjItMi43LTMxLjYgMjMuMy0xOS41IDQxLjEgMjIuNiAzMy40IDEyMi40IDIwIDE1MS40LTIxLjQgLjctMSAuMS0xLjYtLjctMS00MS44IDI4LjYtOTcuMSAzOC4yLTEyOC41IDI2LTQuOC0xLjgtMTQuNy02LjQtMTUuOS0xNi43IDQzLjYgMTMuNSA3MSAuNyA3MSAuN3MyLTIuOC0uNi0yLjV6TTE3MS43IDE1Ny41YzE2LjctMTkuNCAzNy40LTM2LjIgNTUuOC00NS42IC4xLS4xIC4zLS4xIC41LS4xcy4zIC4xIC40IC4yIC4yIC4zIC4yIC40IDAgLjMtLjEgLjVjLTEuNSAyLjctNC4zIDguMy01LjIgMTIuNyAwIC4xIDAgLjMgMCAuNHMuMiAuMyAuMyAuNCAuMyAuMSAuNCAuMSAuMyAwIC40LS4xYzExLjUtNy44IDMxLjUtMTYuMiA0OS0xNy4zIC4yIDAgLjMgMCAuNSAuMXMuMiAuMiAuMyAuNCAuMSAuMyAwIC41LS4xIC4zLS4zIC40Yy0yLjkgMi4yLTUuNSA0LjgtNy43IDcuNy0uMSAuMS0uMSAuMi0uMSAuNHMwIC4zIC4xIC40IC4yIC4yIC4zIC4zIC4yIC4xIC40IC4xYzEyLjMgLjEgMjkuNyA0LjQgNDEgMTAuNyAuOCAuNCAuMiAxLjktLjYgMS43LTY5LjUtMTUuOS0xMjMuMSAxOC41LTEzNC41IDI2LjgtLjIgLjEtLjMgLjEtLjUgLjFzLS4zLS4xLS41LS4yLS4yLS4zLS4yLS41IC4xLS40IC4yLS41bC0uMSAweiJdfSxnNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHVtb24iLGljb246WzY0MCw1MTIsW10sImU3ZTIiLCJNNDUyLjUgMjIzLjVjOS44IDAgMTYuNSA2LjMgMTYuNSAxNi42bDAgMzEuOGMwIDEwLjMtNi42IDE2LjYtMTYuNiAxNi42bC01Ni4yIDBjLTkuOCAwLTE2LjUtNi4zLTE2LjUtMTYuNmwwLTMxLjhjMC0xMC4zIDYuNy0xNi42IDE2LjUtMTYuNmw1Ni4zIDB6bS0yNS43IDEzLjFjLTEuNS0yLjYtMy4yLTIuNi00LjYgMGwtMTAuNyAxNy42Yy0xLjcgMi40LTIuNiA1LjEtMi42IDguMiAwIDcuOSA2LjkgMTQuNiAxNS42IDE0LjYgOC41IDAgMTUuNi02LjcgMTUuNi0xNC42IDAtMy0xLTUuOC0yLjctOC4ybC0xMC43LTE3LjZ6TTg1LjggMjIzLjhjMSAwIDEuNSAuNiAxLjUgMS41bDAgNTAuMyA2NC42IDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgOS43YzAgLjktLjYgMS41LTEuNiAxLjVsLTc4LjQgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNjEuNGMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptODguMyAwYzEgMCAxLjUgLjYgMS41IDEuNWwwIDQ1YzAgNCAyIDUuMiA1LjcgNS4ybDQ2LjkgMGMzLjggMCA1LjctMS4zIDUuNy01LjJsMC00NWMwLS45IC41LTEuNSAxLjUtMS41bDEyLjMgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA0NmMwIDEwLjUtNS4zIDE2LjgtMTcuNiAxNi44bC01NCAwYy0xMi4zIDAtMTcuNi02LjMtMTcuNi0xNi44bDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDB6bTEwOC4yIDBjMSAwIDEuNiAuNSAyLjIgMS40bDMwLjUgNDYuNCAxLjQgMCAzMC41LTQ2LjRjLjYtLjkgMS4yLTEuNCAyLjItMS40bDE4IDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNjEuNGMwIC45LS41IDEuNS0xLjUgMS41bC0xMi4zIDBjLTEgMC0xLjYtLjYtMS42LTEuNWwwLTQzLjgtMS4xIDAtMjguNyA0My44Yy0uNiAuOS0xLjMgMS41LTIuNCAxLjVsLTEwLjcgMGMtMSAwLTEuNy0uNi0yLjMtMS41bC0yOC43LTQzLjgtMS4xIDAgMCA0My44YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNjEuNGMwLS45IC42LTEuNSAxLjYtMS41bDE3LjkgMHptMjE0LjQgMGMuOSAwIDEuMyAuNCAyLjIgMS4xbDUyLjcgNDYuMyAxLjMgMCAwLTQ2YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDYxLjRjMCAuOS0uNiAxLjUtMS42IDEuNWwtMTQuNCAwYy0xIDAtMS40LS40LTIuMy0xLjFsLTUyLjYtNDYuMy0xLjQgMCAwIDQ2YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNjEuNGMwLS45IC42LTEuNSAxLjYtMS41bDE0LjQgMHpNMzIwIDExNC4xYzg3LjkgMCAxNjcuNyAxNS43IDIyNS41IDQxbDIuNyAxLjJDNTg3LjEgMTczLjggNjQwIDIwNi41IDY0MCAyNTZzLTUyLjkgODIuMi05MS44IDk5LjZsLTIuNyAxLjJjLTU3LjggMjUuNC0xMzcuNiA0MS0yMjUuNSA0MS03Ni4yIDAtMTU1LjEtMTAuNS0yMjUuNS00MS0zOS42LTE3LjQtOTQuNS01MC4zLTk0LjUtMTAwLjhzNTQuOS04My41IDk0LjUtMTAwLjhjNzAuNC0zMC41IDE0OS4zLTQxIDIyNS41LTQxem0tODguOSAyMjljMjAuMyAyOSA1Mi44IDQ5LjYgODguOSA0OS42IDM2LjIgMCA2OC43LTIwLjYgODktNDkuN2wtMTc3LjkgLjF6bS05Ni4xIDBjNDMuMyAyOS43IDk2LjcgNDMuNSAxNDguNCA0OC0yNC4yLTkuMS00NC40LTI2LjctNTguNi00OC4xbC04OS45IDB6bTI4MC4zLS4xYy0xNC4yIDIxLjQtMzQuNCAzOS4xLTU4LjYgNDguMSA1MS44LTQuNSAxMDUuMy0xOC4zIDE0OC42LTQ4LjJsLTkwIDB6bS0zMzcuNCAuMWM0NC4xIDIzLjEgOTMuNyAzNS40IDE0Mi43IDQyLjYtMzMuNC04LjYtNjYuNS0yMS45LTk0LjQtNDIuNmwtNDguMyAwem00MzYuMi0uMmMtMjcuOSAyMC44LTYxLjEgMzQuMi05NC42IDQyLjggNDcuMy02LjkgODkuNi0xOC41IDEyMy45LTMzLjZsMS43LS44YzYuMS0yLjcgMTEuOS01LjUgMTcuNC04LjRsLTQ4LjUgMHpNNTIwIDE3My42YzEwLjcgOC43IDE5LjggMTguMSAyNyAyOC4yIC40IC42IC41IDEuMyAuMSAycy0xIDEtMS43IDFsLTEuNiAwYy0uNiAwLTEuMi0uMy0xLjUtLjgtNy45LTEwLjktMTguMi0yMS4xLTMwLjYtMzAuNGwtOTMuNSAwYzUuNCA4LjggOS45IDE4LjUgMTMuNCAyOC42IC4yIC42IC4xIDEuMi0uMiAxLjdzLS45IC44LTEuNiAuOGwtMS40IDBjLS44IDAtMS41LS41LTEuOC0xLjMtMy44LTEwLjctOC43LTIwLjgtMTQuNS0yOS45bC0xODQuMyAuMWMtNS44IDkuMS0xMC43IDE5LjEtMTQuNCAyOS44LS4zIC44LTEgMS4zLTEuOCAxLjNsLTEuNCAwYy0uNiAwLTEuMi0uMy0xLjYtLjhzLS41LTEuMS0uMi0xLjdjMy41LTEwLjIgOC0xOS43IDEzLjQtMjguNmwtOTMuNiAwYy0xMi4zIDkuMy0yMi42IDE5LjQtMzAuNCAzMC4zLS40IC41LS45IC44LTEuNSAuOGwtMS42IDBjLS43IDAtMS40LS40LTEuNy0xcy0uMy0xLjQgLjEtMmM3LjYtMTAuNSAxNi43LTE5LjkgMjYuOC0yOGwtNTEgMGMtMjguOSAxNi42LTYyIDQzLjMtNjMuNSA3OS43bDQ0LjcgMGMuNSAwIDEgLjIgMS4zIC42cy42IC44IC42IDEuM2wwIDEuM2MwIDEuMS0uOSAxLjktMS45IDEuOWwtNDQuNyAwQzYuOCAyOTUgNDAgMzIxLjcgNjkgMzM4LjNsNTAuOSAwYy0xMC4zLTguNC0xOS4xLTE3LjQtMjYuMS0yN2wtLjgtMS4xYy0uNC0uNi0uNS0xLjMtLjEtMnMxLTEgMS43LTFsMS42IDAgLjIgMGMuNSAuMSAxIC4zIDEuMyAuOCA3LjkgMTAuOSAxOC4xIDIxIDMwLjUgMzAuM2w5My42IDBjLTUuMy04LjgtOS44LTE4LjQtMTMuNC0yOC41LS4yLS42LS4xLTEuMiAuMi0xLjdzLjktLjggMS42LS44bDEuNCAwIC4yIDBjLjcgLjEgMS40IC42IDEuNyAxLjMgMy44IDEwLjcgOC42IDIwLjcgMTQuNCAyOS44bDE4NC41LS4xYzUuOC05LjEgMTAuNi0xOS4xIDE0LjQtMjkuN2wuMS0uMWMuMy0uNyAxLTEuMSAxLjctMS4xbDEuNCAwYy42IDAgMS4yIC4zIDEuNiAuOHMuNSAxLjIgLjIgMS43Yy0zLjUgMTAuMS04IDE5LjctMTMuMyAyOC41bDkzLjcgMGMxMi4zLTkuMyAyMi41LTE5LjQgMzAuMy0zMC4ybC4xLS4yYy40LS40IC45LS42IDEuNC0uNmwxLjYgMGMuNyAwIDEuNCAuNCAxLjcgMXMuMyAxLjQtLjEgMmMtNy4xIDEwLTE2LjEgMTkuMy0yNi43IDI3LjlsNTEuMSAwYzI4LjgtMTYuNiA2MS44LTQzLjMgNjMuNC03OS42bC00NC43IDBjLTEgMC0xLjktLjktMS45LTEuOWwwLTEuM2MwLTEuMSAuOS0xLjkgMS45LTEuOWw0NC43IDBjLTEuNi0zNi41LTM0LjktNjMuMy02My45LTc5LjlsLTUwLjkgMHpNMjIwLjUgMTI2LjJjLTQ5LjEgNy4xLTk4LjcgMTkuNS0xNDMgNDIuN2w0OC40IDBjMjcuOS0yMC44IDYxLTM0LjEgOTQuNS00Mi43em02Mi44LTUuNGMtNTEuOCA0LjUtMTA1LjIgMTguMy0xNDguNiA0OC4xbDkwIDBjMTQuMi0yMS40IDM0LjQtMzkgNTguNi00OC4xem0zNi42LTEuNmMtMzYuMiAwLTY4LjcgMjAuNi04OSA0OS43bDE3Ny45LS4xYy0yMC4zLTI5LjEtNTIuNy00OS42LTg4LjktNDkuNnptMzYuNiAxLjZjMjQuMiA5LjEgNDQuNCAyNi42IDU4LjUgNDhsODkuOCAwYy00My4zLTI5LjctOTYuNi00My41LTE0OC4zLTQ4em02Mi44IDUuNGMzMy40IDguNSA2Ni40IDIxLjkgOTQuMyA0Mi41bDQ4LjMgMGMtNDQuMS0yMy4xLTkzLjYtMzUuNC0xNDIuNi00Mi41eiJdfSxiNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnV0cml0aW9uaXgiLGljb246WzQ0OCw1MTIsW10sImYzZDYiLCJNMTEyIDguMVMyNDUuNC0uMSAyMzMgMTEyLjVjMCAwIDE5LjEtNzQuOSAxMDMtNDAuNiAwIDAtMTcuNyA3NC04OCA1NiAwIDAgMTQuNi01NC42IDY2LjEtNTYuNiAwIDAtMzkuOS0xMC4zLTgyLjEgNDguOCAwIDAtMTkuOC05NC41LTkzLjYtOTkuNyAwIDAgNzUuMiAxOS40IDc3LjYgMTA3LjUgMCAuMS0xMDYuNCA3LTEwNC0xMTkuOHpNNDI0IDMyMy43YzAgNDguNS05LjcgOTUuMy0zMiAxMzIuMy00Mi4yIDMwLjktMTA1IDQ4LTE2OCA0OC02Mi45IDAtMTI1LjgtMTcuMS0xNjgtNDgtMjIuMy0zNy0zMi04My44LTMyLTEzMi4zIDAtNDguNCAxNy43LTk0LjcgNDAtMTMxLjcgNDIuMi0zMC45IDk3LjEtNDguNiAxNjAtNDguNiA2MyAwIDExNy44IDE3LjYgMTYwIDQ4LjYgMjIuMyAzNyA0MCA4My4zIDQwIDEzMS43ek0xNDQgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjE2IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTI4OCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zNjAgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMzg0IDI1NmMtNC44LTIyLjMtNy40LTM2LjktMTYtNTYtMzguOC0xOS45LTkwLjUtMzItMTQ0LTMyUzExOC44IDE4MC4xIDgwIDIwMGMtOC44IDE5LjUtMTEuMiAzMy45LTE2IDU2IDQyLjItNy45IDk4LjctMTQuOCAxNjAtMTQuOHMxMTcuOCA2LjkgMTYwIDE0Ljh6Il19LHg2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nLXBsdXMiLGljb246WzUxMiw1MTIsW10sImY0ZjEiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xMDcgMjA1LjZjLTQuNyAwLTkgMi44LTEwLjcgNy4ybC00IDkuNS0xMS05Mi44Yy0xLjctMTMuOS0yMi0xMy40LTIzLjEgLjRsLTQuMyA1MS40LTUuMi02OC44Yy0xLjEtMTQuMy0yMi4xLTE0LjItMjMuMiAwbC0zLjUgNDQuOS01LjktOTQuM2MtLjktMTQuNS0yMi4zLTE0LjQtMjMuMiAwbC01LjEgODMuNy00LjMtNjYuM2MtLjktMTQuNC0yMi4yLTE0LjQtMjMuMiAwbC01LjMgODAuMi00LjEtNTdjLTEuMS0xNC4zLTIyLTE0LjMtMjMuMi0uMmwtNy43IDg5LjgtMS44LTEyLjJjLTEuNy0xMS40LTE3LjEtMTMuNi0yMi0zLjNsLTEzLjIgMjcuNy00My45IDAgMCAyMy4yIDUxLjMgMGM0LjQgMCA4LjQtMi41IDEwLjQtNi40bDEwLjcgNzMuMWMyIDEzLjUgMjEuOSAxMyAyMy4xLS43bDMuOC00My42IDUuNyA3OC4zYzEuMSAxNC40IDIyLjMgMTQuMiAyMy4yLS4xbDQuNi03MC40IDQuOCA3My4zYy45IDE0LjQgMjIuMyAxNC40IDIzLjItLjFsNC45LTgwLjUgNC41IDcxLjhjLjkgMTQuMyAyMi4xIDE0LjUgMjMuMiAuMmw0LjYtNTguNiA0LjkgNjQuNGMxLjEgMTQuMyAyMiAxNC4yIDIzLjEgLjFsNi44LTgzIDIuNyAyMi4zYzEuNCAxMS44IDE3LjcgMTQuMSAyMi4zIDMuMWwxOC00My40IDUwLjUgMCAwLTIzLjItNTguNCAuM3ptLTc4IDUuMmwtMjEuOSAwIDAgMjEuOWMwIDQuMS0zLjMgNy41LTcuNSA3LjUtNC4xIDAtNy41LTMuMy03LjUtNy41bDAtMjEuOS0yMS45IDBjLTQuMSAwLTcuNS0zLjMtNy41LTcuNSAwLTQuMSAzLjQtNy41IDcuNS03LjVsMjEuOSAwIDAtMjEuOWMwLTQuMSAzLjQtNy41IDcuNS03LjVzNy41IDMuMyA3LjUgNy41bDAgMjEuOSAyMS45IDBjNC4xIDAgNy41IDMuMyA3LjUgNy41IDAgNC4xLTMuNCA3LjUtNy41IDcuNXoiXX0sdjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZGhhdCIsaWNvbjpbNTEyLDUxMixbXSwiZjdiYyIsIk0zNDEuNSAyODUuNmMzMy43IDAgODIuMy02LjkgODIuMy00NyAuMi02LjcgLjktMS44LTIwLjktOTYuMi00LjYtMTkuMS04LjctMjcuOC00Mi4zLTQ0LjYtMjYuMS0xMy4zLTgyLjktMzUuNC05OS43LTM1LjQtMTUuNyAwLTIwLjIgMjAuMi0zOC45IDIwLjItMTggMC0zMS4zLTE1LjEtNDguMS0xNS4xLTE2LjEgMC0yNi43IDExLTM0LjggMzMuNi0yNy41IDc3LjYtMjYuMyA3NC4zLTI2LjEgNzguMyAwIDI0LjggOTcuNiAxMDYuMSAyMjguNSAxMDYuMXpNNDI5IDI1NC44YzQuNyAyMiA0LjcgMjQuMyA0LjcgMjcuMiAwIDM3LjctNDIuMyA1OC42LTk4IDU4LjYtMTI1LjcgLjEtMjM1LjktNzMuNi0yMzUuOS0xMjIuMyAwLTYuOCAxLjQtMTMuNSA0LjEtMTkuNy00NS4yIDIuMy0xMDMuOCAxMC4zLTEwMy44IDYyIDAgODQuNyAyMDAuNiAxODkgMzU5LjUgMTg5IDEyMS44IDAgMTUyLjUtNTUuMSAxNTIuNS05OC42IDAtMzQuMi0yOS42LTczLTgyLjktOTYuMnoiXX0sYUllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1waWVkLXBpcGVyIixpY29uOls0NDgsNTEyLFsicGllZC1waXBlci1zcXVhcmUiXSwiZTAxZSIsIk0zMi4xIDQxOWwtMzIgNjAuMiAuOC0zMjhDLjkgODUuMyA1NC4xIDMyIDEyMC4xIDMybDMyNy4yIDBDMzU0LjMgNjAuOSAyNTcuNCAxMjYuMiAxOTMuNCAyMDAuNiAxMjIuOCAyODIgODIuNyAzMzggMzIuMSA0MTl6bTQxNi0zODdTMzA1LjMgOTguOCAyNjEuNyAxOTkuMWMtMjMuMiA1My42LTI4LjkgMTE4LjEtNzEgMTU4LjYtMjguOSAyNy44LTY5LjggMzguMi0xMDUuMyA1Ni4zLTIzLjIgMTItNjYuNCA0MC41LTg0LjkgNjZsMzI4LjQgMGM2NiAwIDExOS4zLTUzLjMgMTE5LjMtMTE5LjItLjEgMC0uMS0zMjguOC0uMS0zMjguOHoiXX0seTZyPWFJZSx3NnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2hhdHNhcHAiLGljb246WzQ0OCw1MTIsW10sImYyMzIiLCJNMzgwLjkgOTcuMWMtNDEuOS00Mi05Ny43LTY1LjEtMTU3LTY1LjEtMTIyLjQgMC0yMjIgOTkuNi0yMjIgMjIyIDAgMzkuMSAxMC4yIDc3LjMgMjkuNiAxMTFMMCA0ODAgMTE3LjcgNDQ5LjFjMzIuNCAxNy43IDY4LjkgMjcgMTA2LjEgMjdsLjEgMGMxMjIuMyAwIDIyNC4xLTk5LjYgMjI0LjEtMjIyIDAtNTkuMy0yNS4yLTExNS02Ny4xLTE1N3ptLTE1NyAzNDEuNmMtMzMuMiAwLTY1LjctOC45LTk0LTI1LjdsLTYuNy00LTY5LjggMTguMyAxOC42LTY4LjEtNC40LTdjLTE4LjUtMjkuNC0yOC4yLTYzLjMtMjguMi05OC4yIDAtMTAxLjcgODIuOC0xODQuNSAxODQuNi0xODQuNSA0OS4zIDAgOTUuNiAxOS4yIDEzMC40IDU0LjFzNTYuMiA4MS4yIDU2LjEgMTMwLjVjMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42ek0zMjUuMSAzMDAuNWMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjhzLTE0LjMgMTgtMTcuNiAyMS44Yy0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43IC45LTYuOS0uNS05LjdzLTEyLjUtMzAuMS0xNy4xLTQxLjJjLTQuNS0xMC44LTkuMS05LjMtMTIuNS05LjUtMy4yLS4yLTYuOS0uMi0xMC42LS4ycy05LjcgMS40LTE0LjggNi45Yy01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zczE5LjkgNTMuNyAyMi42IDU3LjRjMi44IDMuNyAzOS4xIDU5LjcgOTQuOCA4My44IDM1LjIgMTUuMiA0OSAxNi41IDY2LjYgMTMuOSAxMC43LTEuNiAzMi44LTEzLjQgMzcuNC0yNi40czQuNi0yNC4xIDMuMi0yNi40Yy0xLjMtMi41LTUtMy45LTEwLjUtNi42eiJdfSxrNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW1kYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjJkOCIsIk04OS41IDMyMy42bC0zNS42IDAgMC0xMzcuNCAzNS42IDAgMCAxMzcuNHptNjYuNi03My4xbDkuMS02NC4zIDQ2LjMgMCAwIDEzNy40LTMxIDAgMC05Mi43LTEzLjQgOTIuNy0yMS4zIDAtMTMtOTAuNy0uMSA5MC43LTMxLjIgMCAwLTEzNy40IDQ2LjEgMGMuNSA4LjMgMi44IDE4LjEgNC4zIDI5LjRsNC4yIDM0Ljl6bTY3LjYgNzMuMWwwLTEzNy40IDI2LjYgMGMxNyAwIDI3IC45IDMzIDIuNCA2LjEgMS43IDEwLjcgNC4yIDEzLjkgNy45IDMuMSAzLjMgNS4xIDYuNiA1LjggMTIgLjkgNC40IDEuNCAxMy4xIDEuNCAyNi4ybDAgNDguMmMwIDEyLjMtLjcgMjAuNS0xLjkgMjQuNy0xLjEgNC4xLTMuMSA3LjQtNiA5LjctMi44IDIuNC02LjQgNC4xLTEwLjcgNS00LjIgLjgtMTAuNiAxLjMtMTkuMSAxLjNsLTQzIDB6bTM1LjUtMTEzLjlsMCA4OS40YzUuMSAwIDguMy0xIDkuNC0yLjMgMS4xLTIgMS44LTcuNiAxLjgtMTYuN2wwLTUzLjNjMC02LjItLjEtMTAuMi0uNy0xMi0uMy0xLjgtMS4yLTMtMi42LTQuNy0xLjQgMC00LjEtLjQtNy45LS40em01Ny4zIDExMy45bDAtMTM3LjQgMzQuMSAwIDAgNDMuOWMyLjktMi40IDYuMS00LjkgOS41LTYuNiAzLjYtMS41IDguOC0yLjQgMTIuOC0yLjQgNC44IDAgOC45IC44IDEyLjMgMi4yIDMuNCAxLjUgNiAzLjUgOCA2LjIgMS43IDIuNiAyLjcgNS4zIDMuMSA3LjggLjQgMi42LS4yIDgtLjIgMTYuMmwwIDM4LjZjMCA4LjIgLjIgMTQuMy0uOCAxOC40LTEuMSA0LTMuOCA3LjYtNy44IDkuNi00LjEgMy45LTguOSA1LjMtMTQuNiA1LjMtNCAwLTkuMi0uOS0xMi43LTIuNS0zLjUtMS44LTYuNy00LjUtOS42LThsLTIuMSA4LjctMzIgMHptNDUuMS0yMC43Yy43LTEuOCAxLTYgMS0xMi41bDAtMzUuNGMwLTUuNi0uMy05LjUtMS4xLTExLjItLjctMS45LTMuNy0yLjctNS44LTIuNy0yIDAtMy40IC44LTQuMSAyLjMtLjYgMS41LTEgNS40LTEgMTEuNmwwIDM2LjRjMCA2LjEgLjQgMTAgMS4yIDExLjYgLjYgMS43IDIuMSAyLjUgNC4xIDIuNSAyLjIgMCA0LjItLjggNS43LTIuNnpNNDE4LjQgMzJjMTUuNyAxLjIgMjguNyAxNS4yIDI4LjcgMzEuOWwwIDM4NC4yYzAgMTYuNC0xMS45IDMwLjQtMjguMiAzMS0uMyAwLS41IC45LS44IC45TDI5LjkgNDgwYy0uMyAwLS42LS45LS44LS4xLTE1LjctMS40LTI3LjktMTMuOC0yOS0zMC4yTDAgNjEuOEMxLjEgNDUuOSAxMy44IDMzLjEgMzAuMyAzMS4xbDM4Ny40IDBjLjIgMCAuNSAuOSAuNyAuOXpNMzAuMyA0MS4zQzE5IDQyIDEwIDUxIDkuMyA2Mi40bDAgMzg3LjNjLjQgNS40IDIuNyAxMC41IDYuNCAxNC4zIDMuOCAzLjkgOC44IDYuMyAxNC4yIDYuN2wzODguMiAwYzExLjUtMSAyMC42LTExLjYgMjAuNi0yMi42bDAtMzg0LjJjMC01LjctMi4xLTExLjMtNi0xNS41cy05LjMtNi44LTE1LTcuMmwtMzg3LjQgMHoiXX0sUzZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InB5dGhvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMiIsIk00MzkuOCAyMDAuNWMtNy43LTMwLjktMjIuMy01NC4yLTUzLjQtNTQuMmwtNDAuMSAwIDAgNDcuNGMwIDM2LjgtMzEuMiA2Ny44LTY2LjggNjcuOGwtMTA2LjggMGMtMjkuMiAwLTUzLjQgMjUtNTMuNCA1NC4zbDAgMTAxLjhjMCAyOSAyNS4yIDQ2IDUzLjQgNTQuMyAzMy44IDkuOSA2Ni4zIDExLjcgMTA2LjggMCAyNi45LTcuOCA1My40LTIzLjUgNTMuNC01NC4zbDAtNDAuNy0xMDYuNyAwIDAtMTMuNiAxNjAuMiAwYzMxLjEgMCA0Mi42LTIxLjcgNTMuNC01NC4yIDExLjItMzMuNSAxMC43LTY1LjcgMC0xMDguNnpNMjg2LjIgNDQ0LjdhMjAuNCAyMC40IDAgMSAxIDAtNDAuNyAyMC40IDIwLjQgMCAxIDEgMCA0MC43ek0xNjcuOCAyNDguMWwxMDYuOCAwYzI5LjcgMCA1My40LTI0LjUgNTMuNC01NC4zbDAtMTAxLjljMC0yOS0yNC40LTUwLjctNTMuNC01NS42LTM1LjgtNS45LTc0LjctNS42LTEwNi44IC4xLTQ1LjIgOC01My40IDI0LjctNTMuNCA1NS42bDAgNDAuNyAxMDYuOSAwIDAgMTMuNi0xNDcgMGMtMzEuMSAwLTU4LjMgMTguNy02Ni44IDU0LjItOS44IDQwLjctMTAuMiA2Ni4xIDAgMTA4LjYgNy42IDMxLjYgMjUuNyA1NC4yIDU2LjggNTQuMmwzNi43IDAgMC00OC44YzAtMzUuMyAzMC41LTY2LjQgNjYuOC02Ni40ek0xNjEuMiA2NC43YTIwLjQgMjAuNCAwIDEgMSAwIDQwLjggMjAuNCAyMC40IDAgMSAxIDAtNDAuOHoiXX0sTTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhc2gtYXBwIixpY29uOls0NDgsNTEyLFtdLCJlN2Q0IiwiTTQ0MC4zIDk2LjljLTkuNC0yNi41LTMwLjMtNDcuNC01Ni44LTU3LTI0LjEtNy45LTQ2LjMtNy45LTkxLjYtNy45TDE1NiAzMmMtNDQuOCAwLTY3LjIgMC05MS4zIDcuNS0yNi41IDkuNi00Ny40IDMwLjUtNTcgNTctNy43IDI0LjMtNy43IDQ2LjctNy43IDkxLjdMMCAzMjMuOGMwIDQ1LjIgMCA2Ny40IDcuNSA5MS41IDkuNiAyNi41IDMwLjUgNDcuNCA1NyA1NyAyNC4zIDcuNyA0Ni43IDcuNyA5MS42IDcuN2wxMzUuNyAwYzQ1IDAgNjcuNCAwIDkxLjYtNy43IDI2LjUtOS42IDQ3LjQtMzAuNSA1Ny01NyA3LjctMjQuMyA3LjctNDYuNyA3LjctOTEuNWwwLTEzNS41YzAtNDUgMC02Ny40LTcuNy05MS41ek0zMjMuMSAxODUuNGwtMjUuOCAyMS4xYy0yLjMgMS45LTUuNSAxLjUtNy4zLS45LTEzLjItMTYuMi0zMy43LTI1LjQtNTYuMS0yNS40LTI1IDAtNDAuNiAxMC45LTQwLjYgMjYuMi0uNCAxMi44IDExLjcgMTkuNiA0OS4xIDI3LjcgNDcuMiAxMCA2OC43IDI5LjcgNjguNyA2Mi43IDAgNDEuNC0zMy43IDcxLjktODYuNCA3NS4zbC01LjEgMjQuNWMtLjQgMi4zLTIuNiA0LjEtNS4xIDQuMWwtNDAuNiAwYy0zLjQgMC01LjgtMy4yLTUuMS02LjRsNi40LTI3LjNjLTI2LTcuNS00Ny4yLTIyLTU5LjMtMzkuNy0xLjUtMi4zLTEuMS01LjMgMS4xLTdsMjguMi0yMmMyLjMtMS45IDUuOC0xLjMgNy41IDEuMSAxNC45IDIwLjkgMzggMzMuMyA2NS43IDMzLjMgMjUgMCA0My44LTEyLjIgNDMuOC0yOS43IDAtMTMuNC05LjQtMTkuNi00MS4yLTI2LjItNTQuMi0xMS43LTc1LjgtMzEuOC03NS44LTY0LjkgMC0zOC40IDMyLjItNjcuMiA4MC45LTcxbDUuMy0yNS40Yy40LTIuMyAyLjYtNC4xIDUuMS00LjFsMzkuOSAwYzMuMiAwIDUuOCAzIDUuMSA2LjJsLTYuMiAyOC40YzIwLjkgNi40IDM4IDE3LjkgNDguNyAzMi4yIDEuNyAyLjEgMS4zIDUuMy0uOSA3eiJdfSxDNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGludGVyZXN0LXAiLGljb246WzM4NCw1MTIsW10sImYyMzEiLCJNMjA0IDYuNWMtMTAyLjYgMC0yMDQgNjguNC0yMDQgMTc5LjEgMCA3MC40IDM5LjYgMTEwLjQgNjMuNiAxMTAuNCA5LjkgMCAxNS42LTI3LjYgMTUuNi0zNS40IDAtOS4zLTIzLjctMjkuMS0yMy43LTY3LjggMC04MC40IDYxLjItMTM3LjQgMTQwLjQtMTM3LjQgNjguMSAwIDExOC41IDM4LjcgMTE4LjUgMTA5LjggMCA1My4xLTIxLjMgMTUyLjctOTAuMyAxNTIuNy0yNC45IDAtNDYuMi0xOC00Ni4yLTQzLjggMC0zNy44IDI2LjQtNzQuNCAyNi40LTExMy40IDAtNjYuMi05My45LTU0LjItOTMuOSAyNS44IDAgMTYuOCAyLjEgMzUuNCA5LjYgNTAuNy0xMy44IDU5LjQtNDIgMTQ3LjktNDIgMjA5LjEgMCAxOC45IDIuNyAzNy41IDQuNSA1Ni40IDMuNCAzLjggMS43IDMuNCA2LjkgMS41IDUwLjQtNjkgNDguNi04Mi41IDcxLjQtMTcyLjggMTIuMyAyMy40IDQ0LjEgMzYgNjkuMyAzNiAxMDYuMiAwIDE1My45LTEwMy41IDE1My45LTE5Ni44IDAtOTkuMy04NS44LTE2NC4xLTE4MC0xNjQuMXoiXX0sejZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndobWNzIixpY29uOls0NDgsNTEyLFtdLCJmNDBkIiwiTTQ0OCAxNjFsMC0yMS4zLTI4LjUtOC44LTIuMi0xMC40IDIwLjEtMjAuNy0xMC40LTE5LjQtMjkgNy41LTcuMi03LjUgNy41LTI4LjItMTkuMS0xMS42LTIxLjMgMjEtMTAuNy0zLjItNy0yNi40LTIyLjYgMC02LjIgMjYuNC0xMi4xIDMuMi0xOS43LTIxLTE5LjQgMTEgOC4xIDI3LjctOC4xIDguNC0yOC41LTcuNS0xMSAxOS4xIDIwLjcgMjEtMi45IDEwLjQtMjguNSA3LjgtLjMgMjEuNyAyOC44IDcuNSAyLjQgMTIuMS0yMC4xIDE5LjkgMTAuNCAxOC41IDI5LjYtNy41IDcuMiA4LjYtOC4xIDI2LjkgMTkuOSAxMS42IDE5LjQtMjAuNCAxMS42IDIuOSA2LjcgMjguNSAyMi42IC4zIDYuNy0yOC44IDExLjYtMy41IDIwLjcgMjEuNiAyMC40LTEyLjEtOC44LTI4IDcuOC04LjEgMjguOCA4LjggMTAuMy0yMC4xLTIwLjktMTguOCAyLjItMTIuMSAyOS4xLTd6TTMyOC44IDkyLjZhNTYuOCA1Ni44IDAgMSAxIDAgMTEzLjYgNTYuOCA1Ni44IDAgMSAxIDAtMTEzLjZ6bTcyLjMgMTMwbDQ2LjkgMTQuNSAwIDM5LjktNTUuMSAxMy40LTQuMSAyMi43IDM4LjkgMzUuMy0xOS4yIDM3LjktNTQtMTYuNy0xNC42IDE1LjIgMTYuNyA1Mi41LTM4LjMgMjIuNy0zOC45LTQwLjUtMjEuNyA2LjYtMTIuNiA1NC00Mi40LS41LTEyLjYtNTMuNi0yMS43LTUuNi0zNi40IDM4LjQtMzcuNC0yMS43IDE1LjItNTAuNS0xMy43LTE2LjEtNTUuNSAxNC4xLTE5LjctMzQuOCAzNy45LTM3LjQtNC44LTIyLjgtNTQtMTQuMSAuNS00MC45IDUzLjUtMTQuNyA1LjctMTkuNy0zOC45LTM5LjQgMjAuNy0zNS44IDUzLjYgMTQuMSAxNS4yLTE1LjctMTUuMi01MiAzNi40LTIwLjcgMzYuOCAzOS40IDIyLjctNi4xIDExLjYtNTIgNDIuNCAwIDExLjYgNDUuOS0yMi42LTUuOS02LjMtMS43LTMuMyA1LjctMTEgMTkuMS0zLjMgNS42IDQuNiA0LjYgMTcuMiAxNy40LS4zIDEtMjMuOCA2LjUtNi4yIDEuN2MwIDMuMi0uMSA5LjYtLjMgMTkuMy00Ny41IDEwLjQtODMuMyA1Mi44LTgzLjMgMTAzLjUgMCA1OC4zIDQ3LjMgMTA1LjcgMTA1LjcgMTA1LjcgNTAuNSAwIDkyLjctMzUuNCAxMDMuMi04Mi44IDkuOSAuMSAxNi42IC4yIDIwLjEgLjNsMS42LTYuNyA1LjYtMjQgMS45LS42IDE3LjEgMTcuOCA0LjcgNC45IDUuOC0zLjQgMjAuNC0xMi4xIDUuOC0zLjUtMi02LjUtNi44LTIxLjJ6Il19LF82cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqb2dldCIsaWNvbjpbNTEyLDUxMixbXSwiZjNiNyIsIk0zODYuMSA0NUMzNDUuNiAxOS45IDMwMC42IDggMjU2LjIgOCAxNzMgOCA5MS44IDQ5LjkgNDQuOSAxMjUuOS0yNyAyNDIuNSA5LjMgMzk1LjIgMTI1LjkgNDY3LjFzMjY5LjMgMzUuNiAzNDEuMi04MC45QzUzOSAyNjkuNiA1MDIuNyAxMTYuOCAzODYuMSA0NXptNTEuOCAzMjMuMmMtNDAuNCA2NS41LTExMC40IDEwMS41LTE4MiAxMDEuNS02LjggMC0xMy42LS40LTIwLjQtMS05LTEzLjYtMTkuOS0zMy4zLTIzLjctNDIuNC01LjctMTMuNy0yNy4yLTQ1LjYgMzEuMi02Ny4xIDUxLjctMTkuMSAxNzYuNy0xNi41IDIwOC44LTE3LjYtNCA5LTguNiAxNy45LTEzLjkgMjYuNnpNMjM3LjEgMjgxLjljLTU1LjUtMS40LTgxLjctMjAuOC01OC41LTQ4LjJzNTEuMS00MC43IDY4LjktNTEuMmMxNy45LTEwLjUgMjcuMy0zMy43LTIzLjYtMjkuNy0xMjguNiA4LjctMTY3LjMgOTkuMy0xNzguMyAxNDAuMi04LjgtNDkuNy0uMS0xMDIuNyAyOC41LTE0OS4xIDYxLjktMTAwLjUgMTkzLjUtMTMxLjcgMjk0LTY5LjggNzQuOCA0Ni4xIDExMS4yIDEzMC45IDk5LjMgMjEyLjctMjQuOS0uNS0xNzkuMy0zLjYtMjMwLjMtNC45em0xODMuOC01NC44Yy0yMi43LTYtNTcgMTEuMy04Ni43IDI3LjItMjkuNyAxNS44LTMxLjEgOC4yLTMxLjEgOC4yczQwLjItMjguMSA1MC43LTM0LjUgMzEuOS0xNCAxMy40LTI0LjZjLTMuMi0xLjgtNi43LTIuNy0xMC40LTIuNy0xNy44IDAtNDEuNSAxOC43LTY3LjUgMzUuNi0zMS41IDIwLjUtNjUuMyAzMS4zLTY1LjMgMzEuM0wzOTMuNSAyNjYgNDQwIDI0Mi42czMuNi05LjUtMTkuMS0xNS41eiJdfSxpSWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXlvdXR1YmUiLGljb246WzQ0OCw1MTIsWzYxNzk4LCJ5b3V0dWJlLXNxdWFyZSJdLCJmNDMxIiwiTTI4MiAyNTYuMmwtOTUuMi01NC4xIDAgMTA4LjIgOTUuMi01NC4xek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHptMTQuNCAxMzYuMWM3LjYgMjguNiA3LjYgODguMiA3LjYgODguMnMwIDU5LjYtNy42IDg4LjFjLTQuMiAxNS44LTE2LjUgMjcuNy0zMi4yIDMxLjktMjguMyA3LjctMTQyLjIgNy43LTE0Mi4yIDcuN3MtMTEzLjkgMC0xNDIuMi03LjZjLTE1LjctNC4yLTI4LTE2LjEtMzIuMi0zMS45LTcuNi0yOC42LTcuNi04OC4yLTcuNi04OC4yczAtNTkuNyA3LjYtODguMmM0LjItMTUuOCAxNi41LTI4LjIgMzIuMi0zMi40IDI4LjMtNy43IDE0Mi4yLTcuNyAxNDIuMi03LjdzMTEzLjkgMCAxNDIuMiA3LjdjMTUuNyA0LjIgMjggMTYuNiAzMi4yIDMyLjR6Il19LFQ2cj1pSWUsTDZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF0bGFzc2lhbiIsaWNvbjpbNTEyLDUxMixbXSwiZjc3YiIsIk0xNTIuMiAyMzYuNGMtNy43LTguMi0xOS43LTcuNy0yNC44IDIuOEwxLjYgNDkwLjJjLTUgMTAgMi40IDIxLjcgMTMuNCAyMS43bDE3NSAwYzUuOCAuMSAxMS0zLjIgMTMuNC04LjQgMzcuOS03Ny44IDE1LjEtMTk2LjMtNTEuMi0yNjcuMXpNMjQ0LjQgOC4xYy0xMjIuMyAxOTMuNC04LjUgMzQ4LjYgNjUgNDk1LjUgMi41IDUuMSA3LjcgOC40IDEzLjQgOC40TDQ5NyA1MTJjMTEuMiAwIDE4LjQtMTEuOCAxMy40LTIxLjcgMCAwLTIzNC41LTQ3MC42LTI0MC40LTQ4Mi4zLTUuMy0xMC42LTE4LjgtMTAuOC0yNS42IC4xeiJdfSxENnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlci1oYXQiLGljb246WzY0MCw1MTIsW10sImY0ZTUiLCJNNjQwIDI0LjljLTgwLjggNTMuNi04OS40IDkyLjUtOTYuNCAxMDQuNC02LjcgMTIuMi0xMS43IDYwLjMtMjMuMyA4My42LTExLjcgMjMuNi01NC4yIDQyLjItNjYuMSA1MC0xMS43IDcuOC0yOC4zIDM4LjEtNDEuOSA2NC4yLTEwOC4xLTQuNC0xNjcuNCAzOC44LTI1OS4yIDkzLjYgMjkuNC05LjcgNDMuMy0xNi43IDQzLjMtMTYuNyA5NC4yLTM2IDEzOS4zLTY4LjMgMjgxLjEtNDkuMiAxLjEgMCAxLjkgLjYgMi44IC44IDMuOSAyLjIgNS4zIDYuOSAzLjEgMTAuOGwtNTMuOSA5NS44Yy0yLjUgNC43LTcuOCA3LjItMTMuMSA2LjEtMTI2LjgtMjMuOC0yMjYuOSAxNy4zLTMxOC45IDE4LjYtNzMuNCAxLjEtOTcuNS0zMy41LTk3LjUtMzUuMSAwLTEuMSAuNi0xLjcgMS43LTEuNyAwIDAgMzguMyAwIDEwMy4xLTE1LjMgNzMuNi0xNDAuMyAxMzkuMi0xODkuNCAyMTAuNi0xODkuNCAwIDAgNzEuNyAwIDkwLjYgNjEuOSAyMi44LTM5LjcgMjguMy00OS4yIDI4LjMtNDkuMiA1LjMtOS40IDM1LTc3LjIgODYuNC0xNDEuNCA1MS41LTY0IDkwLjQtNzkuOSAxMTkuMy05MS44eiJdfSwkNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW50ZXJuZXQtZXhwbG9yZXIiLGljb246WzUxMiw1MTIsW10sImYyNmIiLCJNNDgzLjEgMTU5LjdjMTAuOS0yNC42IDIxLjQtNjAuNCAyMS40LTg3LjkgMC03Mi43LTc5LjYtOTguNC0yMDkuNy0zOC42LTEwNy42LTcuMi0yMTEuMiA3My43LTIzNy4xIDE4Ni41IDMwLjktMzQuOSA3OC4zLTgyLjMgMTIyLTEwMS4yLTU0LjMgNDguMy0xMDAuNiAxMDkuNC0xMzUuNyAxNzMuMi0yMC43IDM3LjktNDQgOTkuMi00NCAxNDUgMCA5OC42IDkyLjkgODYuNSAxODAuMyA0MiAzMS40IDE1LjQgNjYuNiAxNS42IDEwMS43IDE1LjYgOTcuMSAwIDE4NC4yLTU0LjMgMjE2LjgtMTQ2bC0xMjAuOCAwYy01Mi41IDg4LjYtMTk2LjggNTMtMTk2LjgtNDcuNGwzMjguOCAwYzYuNC00My42LTEuNy05NS43LTI2LjktMTQxLjJ6TTY0LjYgMzQ2LjlDODIuMyAzOTggMTE4LjMgNDQyLjcgMTY0LjggNDcwLjIgNzYuMSA1MTkuMS04LjQgNDk5LjMgNjQuNiAzNDYuOXpNMTgwLjUgMjM4YzItNTUuMiA1MC4zLTk0LjkgMTA0LTk0LjkgNTMuNCAwIDEwMiAzOS43IDEwNCA5NC45bC0yMDggMHpNMzY1LjEgNTAuNGMyMS40LTEwLjMgNDguNi0yMiA3Mi42LTIyIDMxLjQgMCA1NC4zIDIxLjcgNTQuMyA1My43IDAgMjAtNy40IDQ5LTE0LjYgNjcuOS0yNi4zLTQyLjMtNjYtODEuNi0xMTIuMy05OS42eiJdfSxBNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWlyYm5iIixpY29uOls0NDgsNTEyLFtdLCJmODM0IiwiTTIyNC41IDM3My4xYy0yNS4yLTMxLjctNDAuMS01OS40LTQ1LTgzLjItMjIuNS04OCAxMTIuNi04OCA5MC4xIDAtNS40IDI0LjItMjAuMyA1Mi00NSA4My4ybC0uMSAwem0xMzguMiA3My4yYy00Mi4xIDE4LjMtODMuNy0xMC45LTExOS4zLTUwLjUgMTAzLjktMTMwLjEgNDYuMS0yMDAtMTguOC0yMDAtNTQuOSAwLTg1LjIgNDYuNS03My4zIDEwMC41IDYuOSAyOS4yIDI1LjIgNjIuNCA1NC40IDk5LjUtMzIuNSAzNi02MC41IDUyLjctODUuMiA1NC45LTUwIDcuNC04OS4xLTQxLjEtNzEuMy05MS4xIDE1LjEtMzkuMiAxMTEuNy0yMzEuMiAxMTUuOS0yNDEuNiAxNS44LTMwLjEgMjUuNi01Ny40IDU5LjQtNTcuNCAzMi4zIDAgNDMuNCAyNS45IDYwLjQgNTkuOSAzNiA3MC42IDg5LjQgMTc3LjUgMTE0LjggMjM5LjEgMTMuMiAzMy4xLTEuNCA3MS4zLTM3IDg2LjZ6bTQ3LTEzNi4xYy0xMjguOS0yNzQuMy0xMzYtMjc4LjItMTg1LjEtMjc4LjItNDUuNSAwLTY0LjkgMzEuNy04NC43IDcyLjgtMTA2LjIgMjEyLjMtMTE2LjQgMjQyLjQtMTE3LjMgMjQ1LTI1LjIgNjkuMyAyNi43IDEzMC4yIDg5LjYgMTMwLjIgMjEuNyAwIDYwLjYtNi4xIDExMi40LTYyLjQgNTguNyA2My44IDEwMS4zIDYyLjQgMTEyLjQgNjIuNCA2Mi45IC4xIDExNC45LTYwLjkgODkuNi0xMzAuMiAwLTMuOS0xNi44LTM4LjktMTYuOC0zOS42bDAgMHoiXX0sRTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpzIixpY29uOls0NDgsNTEyLFtdLCJmM2I4IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTI0My44IDM4MS40YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41LTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41TDE1MiAzODUuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVsMC0xNDMuMSA0Mi4xIDAgMCAxNDMuN3ptOTkuNiA2My41Yy0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDNMMzAxIDM4Mi4xYzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42IDE3LjQgMCAyOC42LTguNyAyOC42LTIwLjggMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjUgMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjYgMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOC0xMi4zIDAtMjAuMSA3LjgtMjAuMSAxOCAwIDEyLjYgNy44IDE3LjcgMjUuOSAyNS42bDEwLjUgNC41YzM1LjggMTUuMyA1NS45IDMxIDU1LjkgNjYuMiAwIDM3LjgtMjkuOCA1OC42LTY5LjcgNTguNnoiXX0sSTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InF1aW5zY2FwZSIsaWNvbjpbNTEyLDUxMixbXSwiZjQ1OSIsIk0zMTMuNyA0NzQuNmwtMSAwYy00MS45IDAtODIuMS0xNi43LTExMS44LTQ2LjNzLTQ2LjMtNjkuOS00Ni4zLTExMS44IDE2LjctODIuMSA0Ni4zLTExMS44IDY5LjktNDYuMyAxMTEuOC00Ni4zYzk0LjkgMCAxNjguMiA4My4xIDE1NyAxNzYuNiA0IDUuMSA4LjIgOS42IDExLjIgMTUuMyAxMy40LTMwLjMgMjAuMy02Mi40IDIwLjMtOTcuNyAwLTEzNS4xLTEwOS41LTI0NC42LTI0NC42LTI0NC42UzEyLjEgMTE3LjUgMTIuMSAyNTIuNiAxMjEuNiA0OTcuMiAyNTYuNiA0OTcuMmMyMy44IC4yIDQ3LjYtMy4yIDcwLjQtMTAuMS01LjItMy41LTguOS04LjEtMTMuMy0xMi41em03OC4zLTE2OWE5OS4yIDk5LjIgMCAxIDAgMCAxOTguNCA5OS4yIDk5LjIgMCAxIDAgMC0xOTguNHoiXX0sUDZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFkdmVyc2FsIixpY29uOls1MTIsNTEyLFtdLCJmMzZhIiwiTTQ4Mi4xIDMyTDI4LjcgMzJDNS44IDMyIDAgMzcuOSAwIDYwLjlMMCA0NTEuMUMwIDQ3NC40IDUuOCA0ODAgMjguNyA0ODBsNDUzLjQgMGMyNC40IDAgMjkuOS01LjIgMjkuOS0yOS43bDAtMzg4LjFjMC0yNC42LTUuNC0zMC4yLTI5LjktMzAuMnpNMTc4LjQgMjIwLjNjLTI3LjUtMjAuMi03Mi4xLTguNy04NC4yIDIzLjQtNC4zIDExLjEtOS4zIDkuNS0xNy41IDguMy05LjctMS41LTE3LjItMy4yLTIyLjUtNS41LTI4LjgtMTEuNCA4LjYtNTUuMyAyNC45LTY0LjMgNDEuMS0yMS40IDgzLjQtMjIuMiAxMjUuMy00LjggNDAuOSAxNi44IDM0LjUgNTkuMiAzNC41IDEyOC41IDIuNyAyNS44LTQuMyA1OC4zIDkuMyA4OC44IDEuOSA0LjQgLjQgNy45LTIuNyAxMC43LTguNCA2LjctMzkuMyAyLjItNDYuNi03LjQtMS45LTIuMi0xLjgtMy42LTMuOS02LjItMy42LTMuOS03LjMtMi4yLTExLjkgMS01Ny40IDM2LjQtMTQwLjMgMjEuNC0xNDctNDMuMy0zLjEtMjkuMyAxMi40LTU3LjEgMzkuNi03MSAzOC4yLTE5LjUgMTEyLjItMTEuOCAxMTQtMzAuOSAxLjEtMTAuMi0xLjktMjAuMS0xMS4zLTI3LjN6bTI4Ni43IDIyMmMwIDE1LjEtMTEuMSA5LjktMTcuOCA5LjlsLTM5NC45IDBjLTcuNCAwLTE4LjIgNC44LTE3LjgtMTAuNyAuNC0xMy45IDEwLjUtOS4xIDE3LjEtOS4xIDEzMi4zLS40IDI2NC41LS40IDM5Ni44IDAgNi44IDAgMTYuNi00LjQgMTYuNiA5Ljl6bTMuOC0zNDAuNWwwIDI5MWMwIDUuNy0uNyAxMy45LTguMSAxMy45LTEyLjQtLjQtMjcuNSA3LjEtMzYuMS01LjYtNS44LTguNy03LjgtNC0xMi40LTEuMi01My40IDI5LjctMTI4LjEgNy4xLTE0NC40LTg1LjItNi4xLTMzLjQtLjctNjcuMSAxNS43LTEwMCAxMS44LTIzLjkgNTYuOS03Ni4xIDEzNi4xLTMwLjVsMC03MWMwLTI2LjItLjEtMjYuMiAyNi0yNi4yIDMuMSAwIDYuNiAuNCA5LjcgMCAxMC4xLS44IDEzLjYgNC40IDEzLjYgMTQuMy0uMSAuMi0uMSAuMy0uMSAuNXpNNDE3LjQgMzM0LjFjLTE5LjUgNDcuNi03Mi45IDQzLjMtOTAgNS4yLTE1LjEtMzMuMy0xNS41LTY4LjIgLjQtMTAxLjUgMTYuMy0zNC4xIDU5LjctMzUuNyA4MS41LTQuOCAyMC42IDI4LjggMTQuOSA4NC42IDguMSAxMDEuMXpNMTIyLjYgMzY5LjRjLTcuNS0xLjMtMzMtMy4zLTMzLjctMjcuOC0uNC0xMy45IDcuOC0yMyAxOS44LTI1LjggMjQuNC01LjkgNDkuMy05LjkgNzMuNy0xNC43IDguOS0yIDcuNCA0LjQgNy44IDkuNSAxLjQgMzMtMjYuMSA1OS4yLTY3LjYgNTguOHoiXX0sTjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMiLGljb246WzUxMiw1MTIsW10sImYyNWUiLCJNMjUzLjggMjE0LjlsLTMzLjIgMTcuM2MtOS40LTE5LjYtMjUuMi0xOS45LTI3LjUtMTkuOS0yMi4xIDAtMzMuMiAxNC42LTMzLjIgNDMuOCAwIDIzLjYgOS4yIDQzLjggMzMuMiA0My44IDE0LjUgMCAyNC42LTcuMSAzMC42LTIxLjNsMzAuNiAxNS41Yy02LjIgMTEuNS0yNS43IDM5LTY1LjEgMzktMjIuNiAwLTc0LTEwLjMtNzQtNzcgMC01OC43IDQzLTc3LjEgNzIuNi03Ny4xIDMwLjcgMCA1Mi43IDExLjkgNjYgMzUuOXptMTQzIDBsLTMyLjggMTcuM2MtOS41LTE5LjgtMjUuNy0xOS45LTI3LjktMTkuOS0yMi4xIDAtMzMuMiAxNC42LTMzLjIgNDMuOCAwIDIzLjUgOS4yIDQzLjggMzMuMiA0My44IDE0LjQgMCAyNC42LTcuMSAzMC41LTIxLjNsMzEgMTUuNWMtMi4xIDMuOC0yMS40IDM5LTY1LjEgMzktMjIuNyAwLTc0LTkuOS03NC03NyAwLTU4LjcgNDMtNzcuMSA3Mi42LTc3LjEgMzAuNyAwIDUyLjYgMTEuOSA2NS42IDM1Ljl6TTI1NS42IDhDMTEyLjcgOCA4IDEyMy4xIDggMjU2LjEgOCAzOTQuNSAxMjEuNiA1MDQuMSAyNTUuNiA1MDQuMSAzODUuNSA1MDQuMSA1MDQgNDAzLjIgNTA0IDI1Ni4xIDUwNCAxMTguMiAzOTcuNCA4IDI1NS42IDh6bS45IDQ1MC44Yy0xMTIuNSAwLTIwMy43LTkzLTIwMy43LTIwMi44IDAtMTA1LjQgODUuNC0yMDMuMyAyMDMuNy0yMDMuMyAxMTIuNSAwIDIwMi44IDg5LjUgMjAyLjggMjAzLjMgMCAxMjEuNy05OS43IDIwMi44LTIwMi44IDIwMi44eiJdfSxPNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm90aW9uIixpY29uOls1MTIsNTEyLFtdLCJlN2Q5IiwiTTk0LjkgMTAwLjJjMTQuOSAxMi4xIDIwLjUgMTEuMiA0OC42IDkuM0w0MDcuOCA5My42YzUuNiAwIC45LTUuNi0uOS02LjVMMzYyLjkgNTUuNGMtOC40LTYuNS0xOS42LTE0LTQxLjEtMTIuMUw2NS45IDYxLjljLTkuMyAuOS0xMS4yIDUuNi03LjUgOS4zbDM2LjQgMjguOXptMTUuOSA2MS42bDAgMjc4LjFjMCAxNC45IDcuNSAyMC41IDI0LjMgMTkuNmwyOTAuNS0xNi44YzE2LjgtLjkgMTguNy0xMS4yIDE4LjctMjMuM2wwLTI3Ni4yYzAtMTIuMS00LjctMTguNy0xNS0xNy43TDEyNS43IDE0My4xYy0xMS4yIC45LTE0LjkgNi41LTE0LjkgMTguN3ptMjg2LjcgMTQuOWMxLjkgOC40IDAgMTYuOC04LjQgMTcuOGwtMTQgMi44IDAgMjA1LjNjLTEyLjIgNi41LTIzLjQgMTAuMy0zMi43IDEwLjMtMTUgMC0xOC43LTQuNy0yOS45LTE4LjdsLTkxLjUtMTQzLjcgMCAxMzkgMjkgNi41czAgMTYuOC0yMy40IDE2LjhsLTY0LjQgMy43Yy0xLjktMy43IDAtMTMuMSA2LjUtMTQuOWwxNi44LTQuNyAwLTE4My44LTIzLjMtMS45Yy0xLjktOC40IDIuOC0yMC41IDE1LjktMjEuNWw2OS4xLTQuNyA5NS4zIDE0NS42IDAtMTI4LjgtMjQuMy0yLjhjLTEuOS0xMC4zIDUuNi0xNy43IDE0LjktMTguN2w2NC41LTMuOHpNNDQuNCAzNi43TDMxMC42IDE3LjFjMzIuNy0yLjggNDEuMS0uOSA2MS42IDE0bDg1IDU5LjdjMTQgMTAuMyAxOC43IDEzLjEgMTguNyAyNC4zbDAgMzI3LjZjMCAyMC41LTcuNSAzMi43LTMzLjYgMzQuNUwxMzMuMiA0OTUuOGMtMTkuNiAuOS0yOS0xLjktMzkuMi0xNC45TDMxLjQgMzk5LjdjLTExLjItMTQuOS0xNS45LTI2LjEtMTUuOS0zOS4ybDAtMjkxLjJjMC0xNi44IDcuNS0zMC44IDI4LjktMzIuN3oiXX0sUjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNocm9tZWNhc3QiLGljb246WzUxMiw1MTIsW10sImY4MzgiLCJNNDQ4IDY0TDY0LjIgNjRjLTIzLjYgMC00Mi43IDE5LjEtNDIuNyA0Mi43bDAgNjMuOSA0Mi43IDAgMC02My45IDM4My44IDAgMCAyOTguNi0xNDkuMiAwIDAgNDIuNyAxNDkuNCAwYzIzLjYgMCA0Mi43LTE5LjEgNDIuNy00Mi43bDAtMjk4LjZDNDkwLjkgODMuMSA0NzEuNiA2NCA0NDggNjR6TTIxLjUgMzgzLjZsMCA2My45IDYzLjkgMGMwLTM1LjMtMjguNi02My45LTYzLjktNjMuOXptMC04NWwwIDQyLjRjNTguOSAwIDEwNi42IDQ4LjEgMTA2LjYgMTA3bDQyLjcgMGMuMS04Mi40LTY2LjktMTQ5LjMtMTQ5LjMtMTQ5LjR6TTIxMy42IDQ0OGw0Mi43IDBDMjU1LjggMzE4LjUgMTUxIDIxMy43IDIxLjUgMjEzLjRsMCA0Mi40YzEwNi0uMiAxOTIgODYuMiAxOTIuMSAxOTIuMnoiXX0sRjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzLWh1YiIsaWNvbjpbNTEyLDUxMixbXSwiZTg2ZSIsIk0xMzAuNCAxNmM2MC45IDAgMTEwLjQgNDkuNSAxMTAuNCAxMTAuNGwwIDI0LjljNC44LS43IDkuNy0xIDE0LjYtMSA4OC4xLS4yIDE2NS4xIDQ5IDIwNS40IDEyMS4yLTIyLjgtMTYuMi01MC43LTI1LjQtODAuNC0yNS4zLTc3LjEgLjItMTM5LjUgNjIuNi0xMzkuNiAxMzkuNC0uMSA2MC45LTQ5LjUgMTEwLjMtMTEwLjcgMTEwLjUtNjAuNiAuMi0xMTAuMi00OS41LTExMC4yLTExMC41IC4yLTIuNiAwIDAgLjEtMy4ybDAtMjU2QzIwLjEgNjUuNSA2OS41IDE2IDEzMC40IDE2ek0zODAuMyA0OTZhMTEwLjQgMTEwLjQgMCAxIDEgMC0yMjAuOSAxMTAuNCAxMTAuNCAwIDEgMSAwIDIyMC45eiJdfSxCNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2lraXBlZGlhLXciLGljb246WzY0MCw1MTIsW10sImYyNjYiLCJNNjQwIDUxLjJsLS4zIDEyLjJjLTI4LjEgLjgtNDUgMTUuOC01NS44IDQwLjMtMjUgNTcuOC0xMDMuMyAyNDAtMTU1LjMgMzU4LjZsLTEzLjYgMC04MS45LTE5My4xYy0zMi41IDYzLjYtNjguMyAxMzAtOTkuMiAxOTMuMS0uMyAuMy0xNSAwLTE1LS4zLTQ2LjktMTA5LjctOTYuMS0yMTguNi0xNDMuMS0zMjguNi0xMS40LTI2LjctNDkuNC03MC03NS42LTY5LjcgMC0zLjEtLjMtMTAtLjMtMTQuMmwxNjEuOSAwIDAgMTMuOWMtMTkuMiAxLjEtNTIuOCAxMy4zLTQzLjMgMzQuMiAyMS45IDQ5LjcgMTAzLjYgMjQwLjMgMTI1LjYgMjg4LjYgMTUtMjkuNyA1Ny44LTEwOS4yIDc1LjMtMTQyLjgtMTMuOS0yOC4zLTU4LjYtMTMzLjktNzIuOC0xNjAtOS43LTE3LjgtMzYuMS0xOS40LTU1LjgtMTkuN2wwLTEzLjkgMTQyLjUgLjMgMCAxMy4xYy0xOS40IC42LTM4LjEgNy44LTI5LjQgMjYuMSAxOC45IDQwIDMwLjYgNjguMSA0OC4xIDEwNC43IDUuNi0xMC44IDM0LjctNjkuNCA0OC4xLTEwMC44IDguOS0yMC42LTMuOS0yOC42LTM4LjYtMjkuNCAuMy0zLjYgMC0xMC4zIC4zLTEzLjYgNDQuNC0uMyAxMTEuMS0uMyAxMjMuMS0uNmwwIDEzLjZDNDYyLjQgNjQgNDM5LjEgNzYgNDI2LjggOTQuOUwzNjcuNiAyMTcuN2M2LjQgMTYuMSA2My4zIDE0Mi44IDY5LjIgMTU2LjdMNTU5LjIgOTEuOGMtOC42LTIzLjEtMzYuNC0yOC4xLTQ3LjItMjguM2wwLTEzLjkgMTI3LjggMS4xIC4yIC41eiJdfSxINnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2l0cm94IixpY29uOls0NDgsNTEyLFtdLCJlNDRhIiwiTTIxMi40IDBsMCAwIDIzNS42IDAgMCAxMjgtMzg0IDBDNjQgNTcuNiAxNDEuOCAuNSAyMTIuNCAwem0yNC44IDE5MmwwIDBjNjkuOSAuNSAxNDYuNyA1Ny42IDE0Ni43IDEyOGwtMTczLjIgMCAwIDBDMTQwLjkgMzE5LjYgNjQgMjYyLjQgNjQgMTkybDE3My4zIDB6bS0xLjcgMzIwYzcwLjctLjUgMTQ4LjQtNTcuNiAxNDguNC0xMjhsLTM4NCAwIDAgMTI4IDIzNS42IDAgMCAweiJdfSxzSWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdGxhYiIsaWNvbjpbNDQ4LDUxMixbImdpdGxhYi1zcXVhcmUiXSwiZTVhZSIsIk0wIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZ6bTMzNy41IDEyLjVsNDQuNiAxMTYuNCAuNCAxLjJjNS42IDE2LjggNy4yIDM1LjIgMi4zIDUyLjUtNSAxNy4yLTE1LjQgMzIuNC0yOS44IDQzLjNsLS4yIC4xLTY4LjQgNTEuMi01NC4xIDQwLjljLS41IC4yLTEuMSAuNS0xLjcgLjgtMiAxLTQuNCAyLTYuNyAyLTMgMC02LjgtMS44LTguMy0yLjhsLTU0LjItNDAuOS02Ny45LTUwLjktLjQtLjMtLjItLjFjLTE0LjMtMTAuOC0yNC44LTI2LTI5LjctNDMuM3MtNC4yLTM1LjcgMi4yLTUyLjVsLjUtMS4yIDQ0LjctMTE2LjRjLjktMi4zIDIuNS00LjMgNC41LTUuNiAxLjYtMSAzLjQtMS42IDUuMi0xLjggMS4zLS43IDIuMS0uNCAzLjQgLjEgLjYgLjIgMS4yIC41IDIgLjcgMSAuNCAxLjYgLjkgMi40IDEuNSAuNiAuNCAxLjIgMSAyLjEgMS41IDEuMiAxLjQgMi4yIDMgMi43IDQuOGwyOS4yIDkyLjIgMTIyLjkgMCAzMC4yLTkyLjJjLjUtMS44IDEuNC0zLjQgMi42LTQuOHMyLjgtMi40IDQuNS0zLjFjMS43LS42IDMuNi0uOSA1LjQtLjdzMy42IC44IDUuMiAxLjhjMiAxLjMgMy43IDMuMyA0LjYgNS42eiJdfSxxNnI9c0llLFY2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9lbGFjZSIsaWNvbjpbNTEyLDUxMixbXSwiZTYwYyIsIk00MDUuMiAzMzFjMi4yLTEuMSA0LjQtMi4zIDYuNS0zLjdsOC4zLTQuOGMxLjUtMS4xIDQuNC0zLjQgOC43LTYuN2wuNS0uNWMzLjQtMy40IDcuMi01IDExLjMtNC45IDEuOCAwIDMuOSAuNSA2LjQgMS41bDMxLTI3LjVjLjktLjcgMS43LTEuMyAyLjYtMS44bC4yIDBjMy4zLTEuOSA2LTEuOCA4LjIgLjQgMy45IDIuMSA0LjIgNS42IC45IDEwLjZMNDU3LjIgMzIyYy4yIC41IC40IDEgLjQgMS41IC41IDIuMiAuMyA0LjQtLjUgNi42LS43IDEuNS0xLjggMi45LTMuMSA0LjItMS40IDEuNC0yLjcgMi44LTQuMiA0LjJMNDMxIDM1Mi4yYy0xLjcgMS4yLTMuNCAyLjMtNS4xIDMuMy0yLjEgMS4zLTQuMyAyLjUtNi42IDMuNi0xIC40LTEuOSAuOS0yLjkgMS4zLTUuOSAyLjUtMTEuOSA0LjItMTguMiA1LTIuOSAyNC41LTExLjMgNDcuMS0yNS4xIDY3LjgtMTcuNSAyNS43LTQxLjQgNDUuNC03MS44IDU4LjgtMzAuMiAxMy41LTYzIDIwLjItOTguMiAyMC4yLTQ4LjYtLjUtODgtMTEuNC0xMTguMi0zMi44LTM1LjEtMjUtNTIuNi01Ny45LTUyLjYtOTkuMWwwLTUuNmMxLjItMjguMSA5LjUtNTQuNiAyNC44LTc5LjggMTUuMS0yNC45IDM3LjEtNDEuNyA2Ni4xLTUwLjUgMTQuOS00LjQgMjkuOS02LjYgNDUtNi42IDE1LjUgMCAzMS42IDIuOSA0OC4xIDguNnMzNS4yIDE1LjUgNTUuOSAyOS41bDU0LjEgMzYuM2MxNS4xIDkuOCAyOC44IDE2LjUgNDEuMiAyMC0yLjYtMjUuMS0xMS43LTQ2LjYtMjcuMy02NC41LTE1LjctMTguMS0zNS42LTMxLjMtNTkuOS0zOS43TDI1NyAyMjBjLTIxLjQtNy41LTM3LjMtMTQuOS00Ny43LTIyLjItMjguMi0xOS4xLTQzLjgtNDUuMi00Ny03OC41bC0uNS05LjhjMC0zMi4xIDEzLTU4LjkgMzktODAuNSAyMy0xOS4zIDUwLjYtMjkgODIuNS0yOSAyNCAwIDQ1LjYgNi45IDY0LjcgMjAuOCAxOS4yIDE0IDMwLjEgMzMuOCAzMi42IDU5LjRsLjUgMTBjMCAxOC42LTQuOCAzNC41LTE0LjQgNDcuNy05LjggMTMuMi0xOC41IDE5LjktMjYgMTkuOS0xLjYtLjEtMy4xLS4zLTQuNS0uNmwtMzQgMzJjLTUuNSAzLTkuMiAyLjUtMTEuMS0xLjYtMS45LTIuMi0xLjgtNC45IC41LTguMmwuMi0uMmMuNS0uNyAxLjItMS41IDItMi40bDMxLjYtMzBjLS40LTEuNS0uNi0zLjEtLjYtNC44IDAtNC4xIDEuNi03LjYgNC45LTEwLjQgMTMuOC0xMi40IDIwLjgtMjYuNyAyMC44LTQyLjggMC0xNi02LjEtMjkuNS0xOC4yLTQwLjRzLTI4LjctMTYuNS00OS43LTE2LjhjLTI2LjIgMC00Ny44IDcuOS02NC43IDIzLjdTMTkyLjYgODkuOSAxOTIuNiAxMTJjMCAxNy44IDYuOSAzMy45IDIwLjYgNDguMyAxMy42IDE0LjIgMzQuNiAyNS40IDYzIDMzLjUgMzkuOCAxMS41IDcwLjIgMzEgOTEuMyA1OC4zIDE4LjcgMjQuMiAyOS4xIDUxLjMgMzEuMyA4MS40IDIuMi0uNyA0LjMtMS41IDYuNS0yLjZsLS4xIC4xek0yOTQuNCAxNzguN2MwIDEuMSAuNiAxLjYgMS44IDEuNiAuMSAwIDkuNy04LjkgMjguOC0yNi42IDAtMi40LTUuMSAuOS0xNS4zIDEwLTEwLjIgOS4yLTE1LjMgMTQuMi0xNS4zIDE0LjlsMCAuMXptOCA2LjRjMC0xLS41LTEuNS0xLjUtMS41LTEuMSAwLTIuMSAuNS0yLjkgMS42LTEuOS0uMS0zLjMgLjEtNC4yIC43LS40IC4yLS41IC41LS41IC43IDAgLjcgLjUgMS4zIDEuNSAxLjZsMy4zIDBjMi45LTEuMSA0LjQtMi4yIDQuNC0zLjNsLS4xIC4yek0zMjUgMTY1LjJjMC0yLjgtMS42LTIuOC00LjkgMC0xLjYgMS41LTMuNiAzLjUtNiA2LjItLjggLjYtMi42IDIuMi01LjMgNC45LTIuOCAyLjktNC4yIDQuNy00LjIgNS4zbC4yIDEuM2MuNyAuMiAxLjIgLjQgMS41IC40IC4xIDAgMy4zLTIuOSA5LjUtOC43czkuMy04LjkgOS4zLTkuM2wtLjEtLjF6bTE1OS43IDEyMGwtMzAuNiAyN2MxLjggMSAzLjIgMi40IDQgNC4ybDMwLjItMjdjLjItMS4yIC4xLTIuMi0uNS0yLjktLjYtLjUtMS42LS45LTMuMS0xLjN6bS0xLjYtLjlsLS43LS43LTI3IDIxLjkgMS42IDIgMjYtMjMuMSAuMS0uMXpNMzY2LjkgMzYzLjljLTgtMi4xLTE1LjQtNC42LTIyLjItNy41LTE1LjMtNi4yLTM0LjMtMTctNTctMzIuNGwtMzcuNC0yNS4zYy0xNS44LTEwLjEtMzAuMi0xNy42LTQzLjItMjIuNi0xMy4xLTQuOS0yNi03LjMtMzguNi03LjNsLTUuNSAwYy0zMi4yIDEuNy01Ny4yIDEzLjgtNzUgMzYuMi0xNi42IDIwLjgtMjUgNDUuMy0yNSA3My42IDAgMzEuOCAxMi44IDU2LjcgMzguMiA3NC43IDI1LjQgMTguMSA2MC4yIDI3LjEgMTA0LjQgMjcuMSAzNC43IDAgNjQtNi4yIDg3LjgtMTguNiAyMy43LTEyLjQgNDIuMS0yOC44IDU1LjItNDkuMiA5LjgtMTUuNSAxNS45LTMxLjggMTguMi00OC44bC4xIC4xeiJdfSxqNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbnN0cmVldG1hcCIsaWNvbjpbNTEyLDUxMixbXSwiZTg2YiIsIk02MSA0OTguN2MtNy4xLTEuOC0xMC44LTQuNy0yOS42LTIzLjYtMjIuNS0yMi40LTIzLjktMjQuNi0yMy45LTM2LjMgMC0xMy0zLjktOC40IDY3LjktODAuMyA3Mi41LTcyLjcgNjguNy02OS41IDgxLjktNjkuNSA2LjEgMCA3LjYgLjQgMTIuNSAyLjhsNS42IDIuOGMxMS43LTExLjcgMjMuNC0yMy40IDM1LjEtMzUuMWwtNC40LTYuOWMtOC42LTEzLjMtMTYuNi0zMi44LTIwLjMtNDguOS0xMC4yLTQ1LjQgLjgtOTMuMyAyOS44LTEyOS43IDUwLjEtNjIuOCAxNDAuMS03Ni43IDIwNi42LTMyIDM2LjUgMjQuNSA2MC4zIDYyLjUgNjcgMTA3IDEuNCA5LjQgMS40IDMxLjggMCA0MS44LTQuOSAzNC42LTE5LjcgNjQtNDQuNCA4OC43LTEyLjcgMTIuNy0yMyAyMC4xLTM5LjIgMjguMi0xOS4zIDkuNy0zNS43IDE0LjMtNTggMTYuMS0zMS43IDIuNi02Ni45LTYuMS05My44LTIzLjRsLTYuOS00LjRjLTExLjcgMTEuNy0yMy40IDIzLjQtMzUuMSAzNS4xbDIuOCA1LjZjMi41IDQuOSAyLjggNi40IDIuOCAxMi41IDAgMTMuMSAzLjEgOS40LTY5IDgxLjUtNTUuNiA1NS41LTY0LjEgNjMuNy02OC40IDY1LjctNS41IDIuNS0xMy45IDMuNC0xOSAyLjF6TTM1OS40IDI5Ni45YzQwLjEtNy4zIDc1LjEtMzQgOTIuNy03MC43IDI4LTU4LjQgOS4yLTEyNy00NC44LTE2My4zLTEyLjktOC43LTMwLjgtMTYtNDcuNy0xOS40LTExLjctMi40LTM2LjQtMi4xLTQ4LjYgLjUtMTguMiAzLjktMzQuOSAxMS4xLTQ5LjQgMjEuNC04LjkgNi40LTIzLjcgMjEuMS0yOS45IDI5LjktMzQuNiA0OS0zMS41IDExNC4xIDcuNyAxNTkuMyAyMC4xIDIzLjIgNDcuOCAzOC40IDc4LjYgNDMgMTAuMiAxLjUgMzEgMS4yIDQxLjUtLjh6bS0zNS41LTE3LjRjLTEzLjgtMi4yLTI1LjYtNS43LTM1LjEtMTAuNWwtNS40LTIuNyAwLTQ5LjktOS41IDBjLTguMiAwLTE5LjUgMS42LTI3LjcgNC0xLjEgLjMtMS41IDEuNi0xLjcgNC44bC0uMyA0LjQtNC4xLTcuOGMtOS0xNy4yLTEyLjItMzAuNy0xMi4yLTUxLjQgMC0xNiAxLjEtMjMuNCA1LjYtMzYuMyAyLjQtNi44IDguMi0xOC45IDEwLjgtMjIuMyAxLjEtMS41IDEuMi0xLjEgMS4zIDMuM2wwIDVjMTguOC0uMiAzNy42LS4zIDU2LjQtLjUgLjItNC43IC4zLTkuNSAuNS0xNC4ybC0xOSAwIDAtMzEgMy40LTEuN2M1LjYtMi44IDE1LjktNi43IDIxLjctOC4yIDMtLjggNi4xLTEuNiA2LjktMS44IDEuMi0uNCAxLjMgLjEgLjcgMy4zLTEuMiA2LjEtLjkgMjMgLjUgMjkgMi44IDExLjkgOS44IDIwLjcgMTkuMiAyNC4zIDUuNiAyLjEgMTYuMyAyLjYgMjIuNSAuOSA1LjktMS42IDEyLjUtNi40IDE1LjktMTEuNSA1LTcuNSA2LjctMTQuMSA3LjItMjcuMWwuNC0xMS40IDcgMy42YzggNC4yIDE3LjggMTEuMiAyNC45IDE4IDQuOCA0LjYgNSA0LjggNSA5LjJsMCA0LjUtMTguOSAwIDAgMTQuNiAzNSAwYzEuMyAyLjYgMi41IDUuMiAzLjggNy43bC05LjcgMGMtNi43IDAtMTIuNyAuNi0xOS40IDEuOWwtOS43IDEuOSAwIDcuMWMwIDMuOSAuMiA3LjEgLjMgNy4xczQuMS0uOCA4LjctMS43IDguNy0xLjcgOS4xLTEuN2MuNCAwIC44IDExLjMgLjggMjUuOGwwIDI1LjhjLTYuMiAuMi0xMi4zIC4zLTE4LjUgLjUtLjIgNC43LS4zIDkuNC0uNSAxNC4yIDEzLjUgLjIgMjcgLjMgNDAuNCAuNS0xIDIuMy0yIDQuNS0zIDYuOGwtMTAuNyAuMWMtOS45IC4xLTExLjEgLjItMTUuNiAyLjUtMTEuOCA1LjgtMTguMSAxOC45LTE4LjMgMzcuOWwtLjEgOS4zLTUuOCAzYy01IDIuNi0yMi42IDktMjQuOSA5LS41IDAtLjgtMTItLjgtMzAuNmwwLTMwLjYtOS40IDBjLTYgMC0xMi40IC42LTE3LjkgMS43LTEyLjYgMi42LTExLjUgMS43LTExLjUgOS41IDAgNSAuMyA2LjggMS4xIDYuOCAuNiAwIDQuNi0uOCA4LjgtMS43czgtMS43IDguMy0xLjcgLjYgMTEgLjYgMjQuNWwwIDI0LjUtNy41LS4xYy00LjEtLjEtOC41LS4zLTkuNy0uNXptLTM5LjQtNzEuNmM4LjktMy45IDE1LjYtMTIuOSAxOC4zLTI0LjQgMS42LTYuOSAxLjctMjIuNiAwLTMwLjItMi41LTEyLTkuNi0yMS4xLTE5LjMtMjQuOC02LjktMi42LTE4LjQtMi42LTI1LjMgMC05LjcgMy43LTE2LjQgMTIuOC0xOS4yIDI1LjYtMS42IDcuNS0xLjYgMjEuNCAwIDI4LjkgMi42IDEyLjUgMTAuNSAyMi4zIDIwLjYgMjUuNiA3IDIuMyAxOC45IDIgMjQuOS0uN3ptLTE5LjktMTQuNWMtMy41LTMtNS4yLTguOS01LjgtMjAuNi0uNi0xMC41IC42LTIxLjMgMi45LTI2IDItNC4zIDUuOC02LjQgMTAuNC02IDcuNCAuOCAxMC4zIDYuNSAxMS4xIDIyLjUgLjkgMTYuNy0xLjkgMjguOS03IDMxLjMtMy45IDEuOC04LjYgMS4zLTExLjYtMS4yem05NC45IDE1LjFjMTUtNC42IDIyLjgtMjAuMSAyMS45LTQzLjUtLjgtMTkuOS03LjktMzIuMS0yMS41LTM3LjItNS43LTIuMS0xOC0xLjgtMjQgLjUtOS42IDMuNy0xNi40IDEyLjQtMTkuMyAyNC43LTIgOC42LTEuMyAyOCAxLjMgMzUuMiA0IDExLjMgMTEuNiAxOC43IDIxLjQgMjEgNS44IDEuNCAxNC40IDEgMjAuMy0uOHptLTE2LjctMTQuMmMtNS0yLjctNy4zLTEzLjItNi41LTMwLjEgLjYtMTIuOCAxLjUtMTYuNyA0LjgtMjAuNCA0LjctNS4zIDEzLjYtMy44IDE2LjcgMi44IDMuNCA3LjMgNCAzMC4xIDEgNDAuMi0xLjcgNS43LTUuMiA4LjgtMTAuMSA4LjctMiAwLTQuNi0uNi01LjgtMS4zem0tODUuMiA1MS41Yy03LjMtNy42LTkuOS0xMS40LTguNC0xMS45IDIuOS0uOSAxMy45LTMuMSAxNC4yLTIuOCAuMiAuMiAuMiA0LjkgLjEgMTAuNGwtLjIgMTAuMS01LjYtNS45em0xNTYuNC0xLjJjLjctNiAzLjEtMTEuNSA1LjctMTMuMiAyLjktMS44IDYuNC0yLjYgOC0xLjcgMS4yIC43IC45IDEuNS0yLjQgNS45LTIuMSAyLjgtNS42IDctNy44IDkuNGwtNCA0LjMgLjUtNC43ek00MzguNCAxNjFsLjEtMzIuOSAyLjYgNy43YzUuMSAxNS4zIDYuOSAzMS44IDUuMSA0Ni42LTEuNCAxMS42LTEuNCAxMS41LTQuOSAxMS41bC0zIDAgLjEtMzIuOXpNMzQ0IDEwNi4yYy0yLjYtMS01LjMtNC44LTYuNS05LTEuMi00LTEuNS0yOC41LS40LTMzLjUgLjYtMyAuOS0zLjIgMy44LTMuMiA2LjIgMCAxOC4zIDIgMTguNyAzLjEgLjIgLjYgLjcgNC45IDEgOS41IC43IDkuNy0uNyAyMy4yLTIuOCAyNy42LTIuNCA1LjEtOC41IDcuNS0xMy43IDUuM3ptLTk0LjMtMi40Yy40LS44IDMuNy00LjYgNy4zLTguNGw2LjUtNi45YzAgNS42IDAgMTEuMiAuMSAxNi44bC03LjMgMGMtNi43IDAtNy4zLS4xLTYuNS0xLjV6bTM0LjQgMzQxLjdjLTI0LTYuOS00My45LTEyLjktNDQuMi0xMy4xLS41LS42IDI0LjMtODguNSAyNS4zLTg5LjYgLjUtLjUgODUuNCAyMy4zIDg4LjkgMjQuOSAxLjIgLjYtLjEgNS44LTEwLjYgNDIuNC02LjYgMjMtMTIuNCA0My4yLTEyLjggNDVzLTEuNCAzLjItMS45IDMuMS0yMC43LTUuOC00NC43LTEyLjd6TTM0Mi44IDQ1NmMwLTEuMSAyNC43LTg3LjMgMjUuMS04Ny42IC45LS43IDg3LjEtMjQuNyA4Ny40LTI0LjQgLjQgLjQtMjQuMSA4Ny4zLTI0LjcgODcuOS0uNCAuMy04My4yIDI0LTg1LjggMjQuNS0xLjEgLjItMS45IC4xLTEuOS0uNHpNMTk5LjYgNDE3LjVjMTctMTcuMSAzMi4yLTMyLjcgMzMuNy0zNC43IDMuNC00LjUgOC4yLTE0LjggOS41LTIwLjUgLjUtMi40IDEuMS03LjEgMS4yLTEwLjVsLjItNi4yIDMuNy0xYzItLjYgMy44LS45IDQtLjcgLjUgLjUtMjQuMyA4Ny0yNS4xIDg3LjgtLjQgLjMtMTMuNiA0LjMtMjkuNCA4LjhsLTI4LjcgOC4yIDMxLTMxLjF6bTE2Ni45LTYxLjZjLS4yLS4zLS43LTItMS4yLTMuN2wtLjktMy4yIDMuMi0uNWMyNy00LjYgNTUuOS0xNy4zIDc4LjctMzQuNSAzLjMtMi41IDUuMS0zLjQgNS4zLTIuNyAxLjEgMy4zIDUuNSAxOS4xIDUuNCAxOS4zLS43IC43LTkwLjIgMjUuOC05MC41IDI1LjR6TTYyLjkgMzI5LjhjLTEtLjgtMjMuOC03Ny45LTI1LjUtODYuNC0uMy0xLjcgMy0uOSA0My44IDEwLjggNDIuNyAxMi4yIDQ0LjIgMTIuNyA0NC44IDE0LjkgLjUgMiAuMiAyLjYtMi41IDQuNS0xLjcgMS4yLTE1LjUgMTQuNi0zMC43IDI5LjhzLTI3LjggMjcuNi0yOCAyNy42LTEuMS0uNS0xLjgtMS4xem0xNi41LTg4LjJjLTIzLjktNi45LTQzLjUtMTIuNi00My42LTEyLjYtLjMtLjIgMjUuMy04OS4zIDI1LjktODkuOCAuNC0uNCA4OS4xIDI0LjQgOTAgMjUuMiAuMiAuMi01LjQgMjAuNS0xMi40IDQ1LjEtMTEuNiA0MC43LTEyLjkgNDQuOC0xNC41IDQ0LjctMSAwLTIxLjMtNS43LTQ1LjItMTIuNnptNTkuNiAxMC44Yy4yLS42IDQuMy0xNC41IDguOS0zMC45bDguNS0yOS43IDEuMSA2LjVjMS45IDExLjIgNS4zIDIzLjkgOS4zIDM1LjEgMi4xIDUuOSAzLjggMTAuOSAzLjYgMTFzLTYuNyAyLTE0LjUgNC4zLTE0LjkgNC4yLTE1LjggNC41Yy0xLjEgLjMtMS41IC4xLTEuMi0uN3pNMTA2IDEzOS4xYy0yMy45LTYuOS00My43LTEyLjgtNDMuOS0xMy4yLS44LTEuMy0yNS4xLTg3LTI0LjctODcuNCAuNS0uNSA4Ni44IDI0LjMgODcuNiAyNS4xIC45IDEgMjUuOCA4OC4yIDI1LjEgODgtLjMgMC0yMC4xLTUuNy00NC0xMi42em00My4yLTM0LjVDMTM2LjUgNjAgMTM5IDY4LjggMTM3LjIgNjIuNWwzNC4xLTkuN2MxOC44LTUuNCAzNC43LTkuOSAzNS40LTEwLjJzLTEuNiAyLjgtNS4yIDYuOGMtMTkuMSAyMS4zLTMxLjUgNDQtMzkuNCA3MS45LTEuNSA1LjItMi43IDEwLjMtMi43IDExLjMgMCA1LjktMi4zLS41LTEwLjItMjh6Il19LFU2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWxsY2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJkYSIsIk0zNTMuNSAzMkw5NC44IDMyQzQyLjcgMzIgLjEgNzQuNiAuMSAxMjYuNmwwIDI1OC43Qy4xIDQzNy40IDQyLjcgNDgwIDk0LjggNDgwbDI1OC43IDBjNTIuMSAwIDk0LjctNDIuNiA5NC43LTk0LjZsMC0yNTguOGMwLTUyLTQyLjYtOTQuNi05NC43LTk0LjZ6bS01MCAzMTYuNGMtMjcuOSA0OC4yLTg5LjkgNjQuOS0xMzguMiAzNy4yLTIyLjkgMzkuOC01NC45IDguNi00Mi4zLTEzLjJsMTUuNy0yNy4yYzUuOS0xMC4zIDE5LjItMTMuOSAyOS41LTcuOSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDI3LjYgMTUuOSA2My40IDYuMyA3OS40LTIxLjMgMTUuOS0yNy42IDYuMy02My40LTIxLjMtNzkuNC0xNy44LTEwLjItLjYtLjQtMTguNi0xMC42LTI0LjYtMTQuMi0zLjQtNTEuOSAyMS42LTM3LjUgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyA0OC40IDI4IDY1LjEgOTAuMyAzNy4yIDEzOC41em0yMS44LTIwOC44Yy0xNyAyOS41LTE2LjMgMjguOC0xOSAzMS41LTYuNSA2LjUtMTYuMyA4LjctMjYuNSAzLjYtMTguNi0xMC44IC4xIC4xLTE4LjUtMTAuNy0yNy42LTE1LjktNjMuNC02LjMtNzkuNCAyMS4zcy02LjMgNjMuNCAyMS4zIDc5LjRjMCAwIDE4LjUgMTAuNiAxOC42IDEwLjYgMjQuNiAxNC4yIDMuNCA1MS45LTIxLjYgMzcuNS0xOC42LTEwLjggLjEgLjEtMTguNS0xMC43LTQ4LjItMjcuOC02NC45LTkwLjEtMzcuMS0xMzguNCAyNy45LTQ4LjIgODkuOS02NC45IDEzOC4yLTM3LjJsNC44LTguNGMxNC4zLTI0LjkgNTItMy4zIDM3LjcgMjEuNXoiXX0sVzZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjYiIsIk0wIDY0TDAgNDEyLjljMCA1Ni4yIDg4IDU4LjEgODggMGwwLTIzOC42YzcuOS01Mi45IDg4LTUwLjQgODggNi41bDAgMTc1LjNjMCA1Ny45IDk2IDU4IDk2IDBMMjcyIDI0MGM1LjMtNTQuNyA4OC01Mi41IDg4IDQuM2wwIDIzLjhjMCA1OS45IDg4IDU2LjYgODggMEw0NDggNjQgMCA2NHoiXX0sRzZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWFwcGxlLXBheSIsaWNvbjpbNTc2LDUxMixbXSwiZjQxNiIsIk0zMDIuMiAyMTguNGMwIDE3LjItMTAuNSAyNy4xLTI5IDI3LjFsLTI0LjMgMCAwLTU0LjIgMjQuNCAwYzE4LjQgMCAyOC45IDkuOCAyOC45IDI3LjF6TTM0OS43IDI4MWMwIDguMyA3LjIgMTMuNyAxOC41IDEzLjcgMTQuNCAwIDI1LjItOS4xIDI1LjItMjEuOWwwLTcuNy0yMy41IDEuNWMtMTMuMyAuOS0yMC4yIDUuOC0yMC4yIDE0LjR6TTU3NiA3OWwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0NzljLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNzlDMCA1Mi41IDIxLjUgMzEgNDggMzFsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTEyNy44IDE5Ny4yYzguNCAuNyAxNi44LTQuMiAyMi4xLTEwLjQgNS4yLTYuNCA4LjYtMTUgNy43LTIzLjctNy40IC4zLTE2LjYgNC45LTIxLjkgMTEuMy00LjggNS41LTguOSAxNC40LTcuOSAyMi44em02MC42IDc0LjVjLS4yLS4yLTE5LjYtNy42LTE5LjgtMzAtLjItMTguNyAxNS4zLTI3LjcgMTYtMjguMi04LjgtMTMtMjIuNC0xNC40LTI3LjEtMTQuNy0xMi4yLS43LTIyLjYgNi45LTI4LjQgNi45LTUuOSAwLTE0LjctNi42LTI0LjMtNi40LTEyLjUgLjItMjQuMiA3LjMtMzAuNSAxOC42LTEzLjEgMjIuNi0zLjQgNTYgOS4zIDc0LjQgNi4yIDkuMSAxMy43IDE5LjEgMjMuNSAxOC43IDkuMy0uNCAxMy02IDI0LjItNiAxMS4zIDAgMTQuNSA2IDI0LjMgNS45IDEwLjItLjIgMTYuNS05LjEgMjIuOC0xOC4yIDYuOS0xMC40IDkuOC0yMC40IDEwLTIxem0xMzUuNC01My40YzAtMjYuNi0xOC41LTQ0LjgtNDQuOS00NC44bC01MS4yIDAgMCAxMzYuNCAyMS4yIDAgMC00Ni42IDI5LjMgMGMyNi44IDAgNDUuNi0xOC40IDQ1LjYtNDV6bTkwIDIzLjdjMC0xOS43LTE1LjgtMzIuNC00MC0zMi40LTIyLjUgMC0zOS4xIDEyLjktMzkuNyAzMC41bDE5LjEgMGMxLjYtOC40IDkuNC0xMy45IDIwLTEzLjkgMTMgMCAyMC4yIDYgMjAuMiAxNy4ybDAgNy41LTI2LjQgMS42Yy0yNC42IDEuNS0zNy45IDExLjYtMzcuOSAyOS4xIDAgMTcuNyAxMy43IDI5LjQgMzMuNCAyOS40IDEzLjMgMCAyNS42LTYuNyAzMS4yLTE3LjRsLjQgMCAwIDE2LjQgMTkuNiAwIDAtNjggLjEgMHpNNTE2IDIxMC45bC0yMS41IDAtMjQuOSA4MC42LS40IDAtMjQuOS04MC42LTIyLjMgMCAzNS45IDk5LjMtMS45IDZjLTMuMiAxMC4yLTguNSAxNC4yLTE3LjkgMTQuMi0xLjcgMC00LjktLjItNi4yLS4zbDAgMTYuNGMxLjIgLjQgNi41IC41IDguMSAuNSAyMC43IDAgMzAuNC03LjkgMzguOS0zMS44TDUxNiAyMTAuOXoiXX0sWTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvbGFuYSIsaWNvbjpbNTEyLDUxMixbXSwiZTg1ZSIsIk01MTAuNSAzODUuMmwtODQuOSA4OC43Yy0xLjggMS45LTQuMSAzLjUtNi42IDQuNXMtNS4yIDEuNi03LjkgMS42TDguOSA0ODBjLTEuOSAwLTMuOC0uNS01LjQtMS42cy0yLjktMi41LTMuNi00LjItMS0zLjYtLjctNS41IDEuMi0zLjYgMi41LTQuOWw4NC45LTg4LjdjMS44LTEuOSA0LjEtMy41IDYuNS00LjVzNS4xLTEuNiA3LjgtMS42bDQwMi40IDBjMS45IDAgMy44IC41IDUuNCAxLjZzMi45IDIuNSAzLjYgNC4yIDEgMy42IC43IDUuNS0xLjIgMy42LTIuNSA0Ljl6TTQyNS43IDIwNi42Yy0xLjgtMS45LTQuMS0zLjUtNi42LTQuNXMtNS4yLTEuNi03LjktMS42bC00MDIuNCAwYy0xLjkgMC0zLjggLjUtNS40IDEuNnMtMi45IDIuNS0zLjYgNC4yLTEgMy42LS43IDUuNSAxLjIgMy42IDIuNSA0LjlsODQuOSA4OC43YzEuOCAxLjkgNC4xIDMuNSA2LjUgNC41czUuMSAxLjYgNy44IDEuNmw0MDIuNCAwYzEuOSAwIDMuOC0uNSA1LjQtMS42czIuOS0yLjUgMy42LTQuMiAxLTMuNiAuNy01LjUtMS4yLTMuNi0yLjUtNC45bC04NC45LTg4Ljd6TTguOSAxNDIuOWw0MDIuNCAwYzIuNyAwIDUuNC0uNSA3LjktMS42czQuNy0yLjYgNi42LTQuNWw4NC45LTg4LjdjMS4zLTEuNCAyLjItMy4xIDIuNS00LjlzLjEtMy43LS43LTUuNS0yLTMuMi0zLjYtNC4yLTMuNS0xLjYtNS40LTEuNkwxMDEgMzJjLTIuNyAwLTUuNCAuNS03LjggMS42cy00LjcgMi42LTYuNSA0LjVMMS43IDEyNi44Yy0xLjMgMS40LTIuMiAzLjEtMi41IDQuOXMtLjEgMy43IC43IDUuNSAyIDMuMiAzLjYgNC4yIDMuNSAxLjYgNS40IDEuNnoiXX0sSzZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR5cGVzY3JpcHQiLGljb246WzQ0OCw1MTIsW10sImU4NDAiLCJNMTYuOCAzMmw0MTQuNCAwYzkuMyAwIDE2LjggNy41IDE2LjggMTYuOGwwIDQxNC40YzAgOS4zLTcuNSAxNi44LTE2LjggMTYuOEwxNi44IDQ4MEM3LjUgNDgwIDAgNDcyLjUgMCA0NjMuMkwwIDQ4LjhDMCAzOS41IDcuNSAzMiAxNi44IDMyek0yNDkgMjcwLjNsMC0zNi43LTE1OS40IDAgMCAzNi43IDU2LjkgMCAwIDE2My42IDQ1LjMgMCAwLTE2My42IDU3LjIgMHptMTguMSAxNTkuM2M3LjMgMy43IDE1LjkgNi41IDI1LjkgOC40czIwLjUgMi44IDMxLjUgMi44YzEwLjggMCAyMS0xIDMwLjctMy4xczE4LjItNS40IDI1LjUtMTAuMSAxMy4xLTEwLjkgMTcuNC0xOC40IDYuNC0xNyA2LjQtMjguMmMwLTguMS0xLjItMTUuMi0zLjctMjEuM3MtNS45LTExLjUtMTAuNS0xNi4zLTEwLjEtOS0xNi41LTEyLjgtMTMuNy03LjMtMjEuNy0xMC43Yy01LjktMi40LTExLjItNC44LTE1LjktNy4xcy04LjctNC42LTExLjktNy01LjgtNC45LTcuNi03LjUtMi43LTUuNy0yLjctOWMwLTMuMSAuOC01LjggMi40LTguM3MzLjgtNC42IDYuNy02LjQgNi41LTMuMSAxMC43LTQuMSA4LjktMS41IDE0LjEtMS41YzMuNyAwIDcuNyAuMyAxMS45IC44czguNCAxLjQgMTIuNiAyLjYgOC4zIDIuNiAxMi4zIDQuNCA3LjcgMy44IDExIDYuMWwwLTQxLjhjLTYuOC0yLjYtMTQuMy00LjUtMjIuNC01LjhzLTE3LjQtMS45LTI3LjktMS45Yy0xMC43IDAtMjAuOCAxLjEtMzAuNCAzLjRzLTE4IDUuOC0yNS4yIDEwLjctMTMgMTEtMTcuMiAxOC41LTYuMyAxNi41LTYuMyAyNi45YzAgMTMuMyAzLjkgMjQuNyAxMS42IDM0LjFzMTkuNSAxNy40IDM1LjIgMjMuOWM2LjIgMi41IDExLjkgNSAxNy4zIDcuNHMxMCA0LjkgMTMuOCA3LjUgNyA1LjQgOS4yIDguNSAzLjQgNi42IDMuNCAxMC41YzAgMi45LS43IDUuNi0yLjEgOHMtMy41IDQuNi02LjQgNi40LTYuNCAzLjItMTAuNyA0LjMtOS4zIDEuNS0xNSAxLjVjLTkuNyAwLTE5LjQtMS43LTI4LjktNS4xcy0xOC40LTguNS0yNi42LTE1LjNsMCA0NC43eiJdfSxaNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnJhdmUiLGljb246WzQ0OCw1MTIsW10sImU2M2MiLCJNMTQ1LjYgMGwxNTcgMCA0NC43IDUwLjhzMzkuMy0xMC45IDU3LjggNy42IDMzLjggMzQuOSAzMy44IDM0LjlsLTEyIDI5LjUgMTUuMyA0My43cy00NC45IDE3MC4yLTUwLjEgMTkxYy0xMC40IDQwLjktMTcuNCA1Ni44LTQ2LjkgNzcuNXMtODIuOSA1Ni44LTkxLjYgNjIuMmMtMS45IDEuMi0zLjkgMi41LTUuOSAzLjktNy41IDUuMS0xNS44IDEwLjgtMjMuNSAxMC44cy0xNi4xLTUuNy0yMy41LTEwLjhjLTItMS40LTQtMi44LTUuOS0zLjktOC43LTUuNS02Mi4xLTQxLjUtOTEuNi02Mi4ycy0zNi41LTM2LjYtNDYuOS03Ny41Yy01LjMtMjAuOC01MC4xLTE5MS01MC4xLTE5MUwyMS41IDEyMi44IDkuMyA5My4zczE1LjMtMTYuNCAzMy44LTM0LjkgNTcuOC03LjYgNTcuOC03LjZMMTQ1LjYgMHptNzguNSA0MDcuNmMzLjcgMCA4LjktNC43IDEzLTguNCAuNi0uNSAxLjItMS4xIDEuNy0xLjUgNC4yLTMuNyA0Ny44LTM3LjUgNTEtMzkuOHM1LjQtNi41IDEuOS04LjdjLTIuOC0xLjctMTAtNS41LTIwLjMtMTAuOC0zLTEuNi02LjMtMy4yLTkuNy01LTE1LjQtOC0zNC41LTE0LjctMzcuNS0xNC43cy0yMi4xIDYuOC0zNy41IDE0LjdjLTMuNSAxLjgtNi43IDMuNS05LjcgNS0xMC4zIDUuMy0xNy42IDkuMS0yMC4zIDEwLjgtMy42IDIuMi0xLjQgNi40IDEuOSA4LjdzNDYuOCAzNi4xIDUxIDM5LjhjLjUgLjUgMS4xIDEgMS43IDEuNSA0LjEgMy43IDkuMyA4LjQgMTMgOC40bC0uMiAwem0wLTE2NS43YzQuNyAwIDE3LjYtMyAyNi40LTVsMi0uNWM3LjgtMS44IDcuMy02LjMgNi40LTEzLS4xLS44LS4yLTEuNi0uMy0yLjQtLjYtNi4xLTUuOC0zMy4xLTkuMS01MC4zLTEuMS01LjgtMi0xMC41LTIuNC0xMi45LTEuNS04LjEtLjYtOS40IC43LTExLjMgLjItLjMgLjUtLjcgLjctMS4xIDEuNC0yLjMgMTYtNi4yIDI3LjktOS41IDIuNS0uNyA0LjgtMS4zIDYuOS0xLjkgMTAuNi0zIDMyLjQtLjYgNDQuMiAuNiAxLjggLjIgMy40IC40IDQuNyAuNSA5LjYgLjkgMTAuNCAyLjMgNy4yIDMuOC0yLjMgMS4xLTE2LjIgNi4zLTI4LjcgMTAuOS00LjcgMS44LTkuMiAzLjUtMTIuOCA0LjgtMS41IC41LTMgMS4xLTQuNSAxLjctMTIuNSA0LjYtMjcuMiAxMC0yOC45IDE5LjQtMS41IDguMyA1LjIgMTkuOSAxMS4zIDMwLjMgMS42IDIuOCAzLjIgNS41IDQuNiA4LjEgNi4zIDExLjkgNi41IDEzLjMgNi4xIDE4LjEtLjQgMy45LTE0LjUgMTIuNy0yMi40IDE3LjYtMS44IDEuMS0zLjMgMi4xLTQuMiAyLjctLjggLjUtMi4xIDEuNC0zLjggMi40LTguNiA1LjItMjYuMyAxNi0yNi4zIDIyLjUgMCA3LjggMjQuNiAyOC4xIDMyLjQgMzMuMnMyOC45IDE2LjEgMzcuOSAxNy44IDIzLTguNSAzMS4yLTIzLjhjNy43LTE0LjQgMS43LTI4LjUtMy4yLTQwbC0uOS0yLjJjLTQuNS0xMC42IDEuOS0xNyA2LjItMjEuMyAuNS0uNSAxLTEgMS40LTEuNGw0My00NS43YzEuMy0xLjMgMi41LTIuNiAzLjctMy44IDUuOC01LjcgMTAuOC0xMC41IDEwLjgtMjIuOCAwLTE0LjktNTcuNS04NC41LTU3LjUtODQuNXMtNDguNSA5LjMtNTUuMSA5LjNjLTUuMiAwLTE1LjMtMy41LTI1LjgtNy4xLTIuNy0uOS01LjQtMS45LTgtMi43LTEzLTQuMy0yMS44LTQuNC0yMS44LTQuNHMtOC43IDAtMjEuOCA0LjRjLTIuNyAuOS01LjQgMS44LTggMi43LTEwLjUgMy42LTIwLjYgNy4xLTI1LjggNy4xLTYuNSAwLTU1LjEtOS4zLTU1LjEtOS4zcy01Ny41IDY5LjYtNTcuNSA4NC41YzAgMTIuMyA0LjkgMTcuMSAxMC44IDIyLjggMS4yIDEuMiAyLjUgMi40IDMuNyAzLjhsNDMuMSA0NS44Yy40IC41IC45IC45IDEuNCAxLjQgNC4zIDQuMyAxMC42IDEwLjcgNi4yIDIxLjNsLS45IDIuMmMtNC45IDExLjUtMTEgMjUuNi0zLjIgNDAgOC4yIDE1LjMgMjIuMiAyNS41IDMxLjIgMjMuOHMzMC4xLTEyLjcgMzcuOS0xNy44IDMyLjQtMjUuNCAzMi40LTMzLjJjMC02LjUtMTcuNy0xNy4zLTI2LjMtMjIuNS0xLjctMS0zLjEtMS45LTMuOC0yLjQtLjktLjYtMi40LTEuNS00LjItMi43LTcuOS00LjktMjItMTMuNy0yMi40LTE3LjYtLjQtNC44LS4zLTYuMiA2LjEtMTguMSAxLjMtMi41IDIuOS01LjMgNC42LTguMSA2LTEwLjQgMTIuOC0yMiAxMS4zLTMwLjMtMS43LTkuNC0xNi40LTE0LjgtMjguOS0xOS40LTEuNi0uNi0zLjEtMS4xLTQuNS0xLjctMy42LTEuNC04LjEtMy4xLTEyLjgtNC44bC0uMSAwYy0xMi41LTQuNy0yNi40LTkuOS0yOC43LTEwLjktMy4yLTEuNS0yLjMtMi44IDcuMi0zLjggMS4zLS4xIDIuOS0uMyA0LjctLjUgMTEuOC0xLjMgMzMuNi0zLjYgNDQuMi0uNiAyLjEgLjYgNC40IDEuMiA2LjkgMS45IDExLjkgMy4yIDI2LjUgNy4yIDI3LjkgOS41IC4yIC40IC41IC43IC43IDEuMSAxLjMgMS45IDIuMiAzLjIgLjcgMTEuMy0uNCAyLjQtMS4zIDcuMS0yLjQgMTIuOS0zLjMgMTcuMi04LjUgNDQuMi05LjEgNTAuMy0uMSAuOC0uMiAxLjctLjMgMi40LS44IDYuNy0xLjQgMTEuMiA2LjQgMTNsMiAuNWM4LjggMiAyMS44IDUgMjYuNCA1bDAtLjF6Il19LFE2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJldHN5IixpY29uOlszODQsNTEyLFtdLCJmMmQ3IiwiTTM4NCAzNDhjLTEuOCAxMC43LTEzLjggMTEwLTE1LjUgMTMyLTExNy45LTQuMy0yMTkuOS00LjctMzY4LjUgMGwwLTI1LjVjNDUuNS04LjkgNjAuNi04IDYxLTM1LjIgMS44LTcyLjMgMy41LTI0NC4xIDAtMzIyLTEtMjguNS0xMi4xLTI2LjgtNjEtMzZMMCAzNS44YzczLjkgMi40IDI1NS45IDguNiAzNjMtMy44LTMuNSAzOC4yLTcuOCAxMjYuNS03LjggMTI2LjVsLTIzLjIgMEMzMjAuOSAxMTUuNyAzMTMuMiA2OCAyNzcuMyA2OGwtMTM3IDBjLTEwLjIgMC0xMC43IDMuNS0xMC43IDkuOGwwIDE2My44YzU4IC41IDg4LjUtMi41IDg4LjUtMi41IDI5LjgtMSAyNy42LTguNSA0MC43LTY1LjNsMjUuOCAwYy00LjQgMTAxLjQtMy45IDYxLjgtMS44IDE2MC4zTDI1NyAzMzRjLTkuMi00MC4xLTkuMS02MS0zOS41LTYxLjUgMCAwLTIxLjUtMi04OC0ybDAgMTM5YzAgMjYgMTQuMyAzOC4zIDQ0LjMgMzguM2w4OS4zIDBjNjMuNiAwIDY2LjYtMjUgOTguNy05OS44bDIyLjIgMHoiXX0sWDZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ0YyIsaWNvbjpbMzg0LDUxMixbXSwiZjE1YSIsIk0zMTAuNCAyNDIuNmMyNy43LTE0LjIgNDUuNC0zOS40IDQxLjMtODEuMy01LjQtNTcuNC01Mi41LTc2LjYtMTE0LjgtODEuOWwwLTc5LjQtNDguNSAwIDAgNzcuMmMtMTIuNiAwLTI1LjUgLjMtMzguNCAuNmwwLTc3LjgtNDguNSAwIDAgNzkuNGMtMTcuOCAuNS0zOC42IC4zLTk3LjQgMGwwIDUxLjdjMzguMy0uNyA1OC40LTMuMSA2MyAyMS40bDAgMjE3LjRjLTIuOSAxOS41LTE4LjUgMTYuNy01My4zIDE2LjFMNCA0NDMuN2M4OC41IDAgOTcuNCAuMyA5Ny40IC4zbDAgNjggNDguNSAwIDAtNjcuMWMxMy4yIC4zIDI2LjIgLjMgMzguNCAuM2wwIDY2LjcgNDguNSAwIDAtNjhjODEuMy00LjQgMTM1LjYtMjQuOSAxNDIuOS0xMDEuNSA1LjctNjEuNC0yMy4zLTg4LjktNjkuMy05OS45ek0xNTAuOCAxMzQuNmMyNy40IDAgMTEzLjEtOC41IDExMy4xIDQ4LjUgMCA1NC41LTg1LjcgNDguMi0xMTMuMSA0OC4ybDAtOTYuN3ptMCAyNTEuOGwwLTEwNi41YzMyLjggMCAxMzMuMS05LjEgMTMzLjEgNTMuMyAwIDYwLjItMTAwLjQgNTMuMy0xMzMuMSA1My4zeiJdfSxKNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWRuIixpY29uOls1MTIsNTEyLFtdLCJmMTcwIiwiTTI1NiAxNjcuNWw2NC45IDk4LjgtMTI5LjggMCA2NC45LTk4Ljh6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTM5Ni4yIDgyLjdsLTE0OC4yLTIyMy4yLTE0OC4yIDIyMy4yIDMwLjQgMCAzMy42LTUxLjcgMTY4LjYgMCAzMy42IDUxLjcgMzAuMiAweiJdfSxlbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXgtdHdpdHRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxYSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yOTcuMSA4NGwtMTAzLjggMTE4LjYgMTIyLjEgMTYxLjQtOTUuNiAwLTc0LjgtOTcuOS04NS43IDk3LjktNDcuNSAwIDExMS0xMjYuOS0xMTcuMS0xNTMuMSA5OCAwIDY3LjcgODkuNSA3OC4yLTg5LjUgNDcuNSAwek0zMjMuMyAzNjcuNmwtMTY5LjktMjI0LjctMjguMyAwIDE3MS44IDIyNC43IDI2LjQgMHoiXX0sdG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1mb250LWF3ZXNvbWUiLGljb246WzQ0OCw1MTIsW10sImU1YWQiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTAgMTIyYzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuNyAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0scm1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnVtYmVlIixpY29uOls0NDgsNTEyLFtdLCJmMjExIiwiTTUuOCAzMDkuN0MyIDI5Mi43IDAgMjc1LjUgMCAyNTguMyAwIDEzNSA5OS44IDM1IDIyMy4xIDM1IDIzOS43IDM1IDI1Ni40IDM3IDI3Mi40IDQwLjUgMTQ5IDg3LjUgNTEuOSAxODYgNS44IDMwOS43ek0zOTguNyAxMjAuNWMtMTMuNy0xNy41LTI5LjctMzIuNy00Ny44LTQ1LjMtMTQ5LjYgNDQuMy0yNjYuMyAxNjIuMS0zMDkuNyAzMTIgMTIuNSAxOC4xIDI4IDM1LjYgNDUuMiA0OSA0My4xLTE1MS4zIDE2MS4yLTI3MS43IDMxMi4zLTMxNS43em0xNS44IDI1Mi43YzE1LjItMjUuMSAyNS40LTUzLjcgMjkuNS04Mi44LTc5LjQgNDIuOS0xNDUgMTEwLjYtMTg3LjYgMTkwLjMgMzAtNC40IDU4LjktMTUuMyA4NC42LTMxLjMgMzUgMTMuMSA3MC45IDI0LjMgMTA3IDMzLjYtOS4zLTM2LjUtMjAuNC03NC41LTMzLjUtMTA5Ljh6bTI5LjctMTQ1LjVjLTIuNi0xOS41LTcuOS0zOC43LTE1LjgtNTYuOC0xMzcuOSA0NS44LTI0Ni40IDE1Ni42LTI5MS4zIDI5NS4xIDE4LjEgNy42IDM3IDEyLjUgNTYuNiAxNS4yIDQ2LjMtMTE0LjEgMTM2LjgtMjA2LjggMjUwLjUtMjUzLjV6Il19LG5JZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiI0Mi1ncm91cCIsaWNvbjpbNjQwLDUxMixbImlubm9zb2Z0Il0sImUwODAiLCJNMzIwIDk2bDAgMzIwYzIxIDAgNDEuOC00LjEgNjEuMi0xMi4yczM3LTE5LjggNTEuOS0zNC43IDI2LjYtMzIuNSAzNC43LTUxLjkgMTIuMi00MC4yIDEyLjItNjEuMi00LjEtNDEuOC0xMi4yLTYxLjItMTkuOC0zNy4xLTM0LjctNTEuOS0zMi41LTI2LjYtNTEuOS0zNC43LTQwLjItMTIuMi02MS4yLTEyLjJ6TTAgMjU2TDE2MCA0MTYgMzIwIDI1NiAxNjAgOTYgMCAyNTZ6bTQ4MCAwYzAgMjEgNC4xIDQxLjggMTIuMiA2MS4yczE5LjggMzcgMzQuNyA1MS45IDMyLjUgMjYuNiA1MS45IDM0LjcgNDAuMiAxMi4yIDYxLjIgMTIuMmwwLTMyMGMtNDIuNCAwLTgzLjEgMTYuOS0xMTMuMSA0Ni45UzQ4MCAyMTMuNiA0ODAgMjU2eiJdfSxhbXI9bkllLGltcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVtYmxldXBvbi1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImYxYTMiLCJNMjY0IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDE3Ny41Yy05LjggMC0xNy44IDgtMTcuOCAxNy44bDAgMTA2LjljMCA0MC45LTMzLjkgNzMuOS03NC45IDczLjktNDEuNCAwLTc0LjktMzMuNS03NC45LTc0LjlsMC00Ni41IDU3LjMgMCAwIDQ1LjhjMCAxMCA4IDE3LjggMTcuOCAxNy44czE3LjgtNy45IDE3LjgtMTcuOGwwLTEwOC40YzAtNDAgMzQuMi03Mi4xIDc0LjctNzIuMSA0MC43IDAgNzQuNyAzMi4zIDc0LjcgNzIuNmwwIDIzLjctMzQuMSAxMC4xLTIyLjktMTAuNyAwLTIwLjZjLjEtOS42LTcuOS0xNy42LTE3LjctMTcuNnpNNDMxLjYgMzA5LjFjMCA0MS40LTMzLjUgNzQuOS03NC45IDc0LjktNDEuMiAwLTc0LjktMzMuMi03NC45LTc0LjJsMC00Ni44IDIyLjkgMTAuNyAzNC4xLTEwLjEgMCA0Ny4xYzAgOS44IDggMTcuNiAxNy44IDE3LjZzMTcuOC03LjkgMTcuOC0xNy42bDAtNDggNTcuMyAwYy0uMSA0NS45LS4xIDQ2LjQtLjEgNDYuNHoiXX0sc21yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN5bWZvbnkiLGljb246WzUxMiw1MTIsW10sImY4M2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zODkuNyAxNTEuNWMtMTEuNSAuNC0xOS40LTYuNC0xOS44LTE2LjktLjMtOS4yIDYuNy0xMy40IDYuNS0xOC45LS4yLTYuNS0xMC4yLTYuOC0xMi45LTYuNy0zOS44IDEuMy00OC42IDU3LTU4LjkgMTEzLjggMjEuNCAzLjIgMzYuNi0uNyA0NS4xLTYuMiAxMi03LjctMy4zLTE1LjctMS40LTI0LjYgNC0xOC4yIDMyLjYtMTkgMzIgNS4zLS40IDE3LjktMjUuOSA0MS44LTc3LjYgMzUuNy0xMC44IDU5LjUtMTguNCAxMTUtNTguMiAxNjEuNy0yOSAzNC41LTU4LjQgMzkuOC03MS42IDQwLjMtMjQuNiAuOS00MS0xMi4zLTQxLjYtMjkuOC0uNi0xNyAxNC40LTI2LjMgMjQuMy0yNi42IDIxLjktLjggMzAuMSAyNS43IDE0LjkgMzQtMTIuMSA5LjcgLjEgMTIuNiAyLjEgMTIuNiAxMC40LS40IDE3LjMtNS41IDIyLjItOSAyNC0yMCAzMy4yLTU0LjkgNDUuNC0xMTguMyA4LjItNDkuNyAxNy03OCAxOC4yLTgyLTE2LjktMTIuNy0yNy4xLTI4LjYtNDkuOC0zNC43LTE1LjYtNC4yLTI1LjEtLjYtMzEuOCA3LjgtNy45IDEwLTUuMyAyMyAyLjQgMzAuN2wxMi42IDE0YzE1LjUgMTcuOSAyNCAzMS45IDIwLjggNTAuNi01LjEgMjkuOS00MC43IDUyLjktODIuOSAzOS45LTM2LTExLjEtNDIuNy0zNi42LTM4LjQtNTAuNiA3LjUtMjQuMiA0Mi40LTExLjcgMzQuNiAxMy42LTIuOCA4LjYtNC45IDguNy02LjMgMTMuMS00LjYgMTQuOCA0MS44IDI4LjQgNTEtMS40IDQuNS0xNC41LTUuMy0yMS43LTIyLjItMzkuOS0yOC41LTMxLjctMTYtNjUuNSAyLjktNzkuNyA1Mi44LTM5LjQgMTAwLjUgMTcuNSAxMTAuNiAyNS44IDM3LjItMTA5IDEwMC41LTEwNS41IDEwMi40LTEwNS41IDI1LjItLjggNDQuMiAxMC42IDQ0LjggMjguNiAuMiA3LjctNC4yIDIyLjYtMTkuNSAyMy4xeiJdfSxubXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FsZXNmb3JjZSIsaWNvbjpbNjQwLDUxMixbXSwiZjgzYiIsIk0yNDkuNCAyNDUuNmwtMjYuNCAwYy43LTUuMiAzLjMtMTQuMSAxMy42LTE0LjEgNi44IDAgMTIgMy44IDEyLjcgMTQuMXpNMzg2IDIzMS44Yy0uNSAwLTE0LjEtMS44LTE0LjEgMjBzMTMuNiAyMCAxNC4xIDIwYzEzIDAgMTQuMS0xMy41IDE0LjEtMjAgMC0yMS44LTEzLjctMjAtMTQuMS0yMHpNMTQyLjggMjU1LjVjLTEuMSAuOS0yIDItMi41IDMuMnMtLjggMi43LS43IDRjMCA0LjggMi4xIDYuMSAzLjMgNyA0LjcgMy43IDE1LjEgMi4xIDIwLjkgMWwwLTE2LjljLTUuMy0xLjEtMTYuNy0yLTIwLjkgMS42ek02NDAuNSAyMzJjMCA4Ny42LTgwIDE1NC40LTE2NS40IDEzNi40LTE4LjQgMzMtNzAuNyA3MC44LTEzMi4yIDQxLjYtNDEuMiA5Ni0xNzcuOSA5Mi4yLTIxMy44LTUuMi0xMTkuNyAyMy45LTE3OC44LTEzOC40LTc1LjMtMTk5LjMtMzQuOC03OS40IDIyLjYtMTczLjYgMTE0LjMtMTczLjYgMTkuMSAwIDM3LjkgNC40IDU1IDEyLjlzMzIgMjAuNyA0My42IDM1LjhjMjAuNy0yMS40IDQ5LjQtMzQuOCA4MS4xLTM0LjggNDIuMyAwIDc5IDIzLjUgOTguOCA1OC42IDkyLjgtNDAuNyAxOTMuOCAyOC4yIDE5My44IDEyNy41ek0xMjAuOSAyNjMuOGMwLTExLjgtMTEuNy0xNS4yLTE3LjktMTcuMi01LjMtMi4xLTEzLjQtMy41LTEzLjQtOC45IDAtOS41IDE3LTYuNyAyNS4yLTIuMSAwIDAgMS4yIC43IDEuNi0uNSAuMi0uNyAyLjQtNi42IDIuNi03LjMgLjEtLjMgLjEtLjYtLjEtLjhzLS40LS41LS42LS42Yy0xMi4zLTcuNi00MC43LTguNS00MC43IDEyLjcgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNC43IDEuNiAxMy4yIDMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjMtLjUtLjItMS40LS43LTEuNiAuN2wtMi40IDcuNWMtLjUgLjkgLjIgMS4yIC4yIDEuNCAxLjggMS40IDEwLjMgNi42IDIyLjggNi42IDEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjFsMCAwem0zMi00Mi42Yy0xMC4xIDAtMTguNyAzLjItMjEuNCA1LjItLjEgLjEtLjIgLjItLjMgLjNzLS4xIC4yLS4xIC40IDAgLjMgMCAuNCAuMSAuMyAuMiAuNGwyLjYgNy4xYy4xIC4yIC4yIC41IC41IC42cy41IC4yIC43IC4xYy42IDAgNi44LTQgMTYuOS00IDQgMCA3LjEgLjcgOS4yIDIuNCAzLjYgMi44IDMuMSA4LjMgMy4xIDEwLjYtNC44LS4zLTE5LjEtMy40LTI5LjQgMy44LTIuMyAxLjYtNC4zIDMuOC01LjUgNi4zcy0xLjkgNS40LTEuOCA4LjJjMCA1LjkgMS41IDEwLjQgNi42IDE0LjQgMTIuMiA4LjIgMzYuMyAyIDM4LjEgMS40IDEuNi0uMyAzLjUtLjcgMy41LTEuOWwwLTMzLjljMC00LjYgLjMtMjEuNi0yMi44LTIxLjZsMCAuMXptNDYuNi0yMWMwLS4yIDAtLjMtLjEtLjVzLS4xLS4zLS4zLS40LS4yLS4yLS40LS4zLS4zLS4xLS41LS4xbC05LjggMGMtLjIgMC0uMyAwLS41IC4xcy0uMyAuMS0uNCAuMy0uMiAuMi0uMyAuNC0uMSAuMy0uMSAuNWwwIDc5YzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjkgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsLS4xLTc5em01NS43IDI4LjljLTIuMS0yLjMtNi44LTcuNS0xNy42LTcuNS0zLjUgMC0xNC4yIC4yLTIwLjcgOC45LTYuNCA3LjYtNi42IDE4LjEtNi42IDIxLjQgMCAzLjEgLjIgMTQuMyA3LjEgMjEuMiAyLjYgMi45IDkuMSA4LjIgMjIuOCA4LjIgMTAuOCAwIDE2LjUtMi4zIDE4LjYtMy44IC41LS4yIC43LS43IC4yLTEuOWwtMi4zLTYuOGMtLjEtLjMtLjMtLjUtLjYtLjZzLS41LS4yLS44LS4xYy0yLjYgLjktNi4zIDIuOC0xNS4zIDIuOC0xNy40IDAtMTYuOC0xNC43LTE2LjktMTYuN2wzNy4yIDBjLjMgMCAuNS0uMSAuNy0uM3MuNC0uNCAuNC0uN2MtLjMgMCAyLjEtMTQuNy02LjEtMjQuMmwwIDB6bTM2LjcgNTIuN2MxMy4yIDAgMjEuNC03LjEgMjEuNC0xOC4xIDAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTQuMS0xLjctMTMuNC0zLjQtMTMuNC04LjkgMC0zLjggMy4zLTYuNCA4LjUtNi40IDUuOCAuMSAxMS41IDEuNiAxNi43IDQuMiAwIDAgMS4yIC43IDEuNi0uNSAuMi0uNyAyLjQtNi42IDIuNi03LjMgLjEtLjMgLjEtLjYtLjEtLjhzLS40LS41LS42LS42Yy03LjktNC45LTE2LjctNC45LTIwLjItNC45LTEyIDAtMjAuNSA3LjMtMjAuNSAxNy42IDAgMTIuNSAxMS41IDE1LjQgMTcuOSAxNy4yIDYuMSAyIDEzLjIgMy4zIDEzLjIgOC43IDAgNC0zLjUgNy4xLTkuMiA3LjEtNi45IDAtMTMuNS0yLjItMTktNi40LS4xLS4xLS4zLS4yLS41LS4ycy0uNCAwLS41IC4xLS4zIC4yLS40IC4zLS4yIC4zLS4yIC41bC0yLjMgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuNyAxLjQgMTAuMyA2LjYgMjIuOCA2LjZsMCAwek0zNTcuNiAyMjRjMC0uNy0uMi0xLjItMS4yLTEuMmwtMTEuOCAwYzAtLjEgLjktOC45IDQuNS0xMi41IDQuMi00LjIgMTEuOC0xLjYgMTItMS42IDEuMiAuNSAxLjQgMCAxLjYtLjVsMi44LTcuOGMuNy0uOSAwLTEuMi0uMi0xLjQtNS4xLTItMTcuNC0yLjktMjQuNSA0LjItNS41IDUuNS03IDEzLjktOCAxOS41bC04LjUgMGMtLjMgMC0uNiAuMi0uOCAuNHMtLjMgLjUtLjQgLjhsLTEuNCA3LjhjMCAuNyAuMiAxLjIgMS4yIDEuMmw4LjIgMGMtOC41IDQ3LjktOC43IDUwLjItMTAuMyA1NS41LTEuMSAzLjYtMy4zIDYuOS01LjkgNy44LS4xIDAtMy45IDEuNy05LjYtLjIgMCAwLS45LS41LTEuNCAuNy0uMiAuNy0yLjYgNi44LTIuOCA3LjVzMCAxLjQgLjUgMS40YzUuMSAyIDEzIDEuOCAxNy45IDAgNi4zLTIuMyA5LjctNy45IDExLjUtMTIuOSAyLjgtNy43IDIuOC05LjggMTEuOC01OS43bDEyLjIgMGMuMyAwIC42LS4yIC44LS40cy4zLS41IC40LS44bDEuNC03Ljh6TTQxMSAyNDBjLS42LTEuNy01LjEtMTguMS0yNS4yLTE4LjEtMTUuMiAwLTIzIDEwLTI1LjIgMTguMS0xIDMtMy4yIDE0IDAgMjMuNSAuMSAuMyA0LjQgMTguMSAyNS4yIDE4LjEgMTUgMCAyMi45LTkuNiAyNS4yLTE4LjEgMy4yLTkuNiAxLTIwLjUgMC0yMy41em00NS40LTE2LjdjLTUtMS43LTE2LjYtMS45LTIyLjEgNS40bDAtNC41YzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuNCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNTUuM2MwIC4yIDAgLjMgLjEgLjVzLjEgLjMgLjMgLjQgLjIgLjIgLjQgLjMgLjMgLjEgLjUgLjFsOS42IDBjLjIgMCAuMyAwIC41LS4xcy4zLS4xIC40LS4zIC4yLS4yIC4zLS40IC4xLS4zIC4xLS41bDAtMjcuOGMwLTIuOSAuMS0xMS40IDQuNS0xNS4xIDQuOS00LjkgMTItMy40IDEzLjQtMy4xIC4zIDAgLjYtLjEgLjgtLjNzLjQtLjQgLjYtLjdjMS4yLTIuNiAyLjItNS4zIDMuMS04IC4xLS4zIC4xLS41IDAtLjhzLS4zLS41LS41LS42bDAgMHptNDYuOCA1NC4xbC0yLjEtNy4zYy0uNS0xLjItMS40LS43LTEuNC0uNy00LjIgMS44LTEwLjEgMS45LTExLjMgMS45LTQuNiAwLTE3LjItMS4xLTE3LjItMTkuOCAwLTYuMiAxLjgtMTkuOCAxNi41LTE5LjggMy45LS4xIDcuOCAuNSAxMS41IDEuNiAwIDAgLjkgLjUgMS4yLS43IC45LTIuNiAxLjYtNC41IDIuNi03LjUgLjItLjktLjUtMS4yLS43LTEuMi0xMS42LTMuOS0yMi4zLTIuNS0yNy44IDAtMS42IC43LTE2LjIgNi41LTE2LjIgMjcuNSAwIDIuOS0uNiAzMC4xIDI4LjkgMzAuMSA1LjMgMCAxMC42LTEgMTUuNS0yLjggLjItLjIgLjQtLjQgLjUtLjZzLjEtLjUgMC0uOGwwIDB6bTUzLjktMzkuNWMtLjgtMy01LjQtMTYuMi0yMi4zLTE2LjItMTYgMC0yMy41IDEwLjEtMjUuNiAxOC42LTEuMiAzLjgtMS43IDcuOC0xLjcgMTEuOCAwIDI1LjkgMTguOCAyOS40IDI5LjkgMjkuNCAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjQtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjYtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi45LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMiAwIC45LTcuMS0xLjQtMTUuNWwwIDB6bS0yMy4zLTYuNGMtMTAuMyAwLTEzIDktMTMuNiAxNC4xbDI2LjQgMGMtLjktMTEuOS03LjYtMTQuMS0xMi43LTE0LjFsMCAweiJdfSxvbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic291cmNldHJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjdkMyIsIk00MjcuNCAyMDNjMC0xMTIuMS05MC45LTIwMy0yMDMtMjAzLTExMi4xLS4yLTIwMyA5MC42LTIwMy4yIDIwMi42LS4xIDQzIDEzLjUgODQuOCAzOC43IDExOS42czYwLjkgNjAuNiAxMDEuOCA3My44bDAgMTAxLjdjMCAzLjggMS41IDcuNCA0LjIgMTAuMXM2LjMgNC4yIDEwLjEgNC4ybDk2LjQgMGMzLjggMCA3LjQtMS41IDEwLjEtNC4yczQuMi02LjMgNC4yLTEwLjFsMC0xMDEuNmM0MC44LTEzLjIgNzYuNS0zOSAxMDEuNy03My43czM4LjktNzYuNSAzOS0xMTkuNHptLTI3MS42IDBjMC05MC44IDEzNy4zLTkwLjggMTM3LjMgMC0uMSA4OS45LTEzNy4zIDkxLTEzNy4zIDB6Il19LGxtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbi1pbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjBlMSIsIk0xMDAuMyA0NDhsLTkyLjkgMCAwLTI5OS4xIDkyLjkgMCAwIDI5OS4xek01My44IDEwOC4xQzI0LjEgMTA4LjEgMCA4My41IDAgNTMuOCAwIDM5LjUgNS43IDI1LjkgMTUuOCAxNS44czIzLjgtMTUuOCAzOC0xNS44IDI3LjkgNS43IDM4IDE1LjggMTUuOCAyMy44IDE1LjggMzhjMCAyOS43LTI0LjEgNTQuMy01My44IDU0LjN6TTQ0Ny45IDQ0OGwtOTIuNyAwIDAtMTQ1LjZjMC0zNC43LS43LTc5LjItNDguMy03OS4yLTQ4LjMgMC01NS43IDM3LjctNTUuNyA3Ni43bDAgMTQ4LjEtOTIuOCAwIDAtMjk5LjEgODkuMSAwIDAgNDAuOCAxLjMgMGMxMi40LTIzLjUgNDIuNy00OC4zIDg3LjktNDguMyA5NCAwIDExMS4zIDYxLjkgMTExLjMgMTQyLjNsMCAxNjQuMy0uMSAweiJdfSxjbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaHRtbDUiLGljb246WzM4NCw1MTIsW10sImYxM2IiLCJNMCAzMkwzNC45IDQyNy44IDE5MS41IDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnpNMzA4LjIgMTU5LjlsLTE4My44IDAgNC4xIDQ5LjQgMTc1LjYgMC0xMy42IDE0OC40LTk3LjkgMjcgMCAuMy0xLjEgMC05OC43LTI3LjMtNi03NS44IDQ3LjcgMCAzLjUgMzguMSA1My41IDE0LjUgNTMuNy0xNC41IDYtNjIuMi0xNjYuOSAwLTEyLjgtMTQ1LjYgMjQxLjEgMC00LjQgNDcuN3oiXX0sZG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJ1c3QiLGljb246WzUxMiw1MTIsW10sImUwN2EiLCJNNTA4LjUgMjQ5LjhsLTIxLjgtMTMuNWMtLjItMi0uMy0zLjktLjUtNS45bDE4LjctMTcuNWMuOS0uOSAxLjYtMS45IDItMy4xcy41LTIuNSAuMi0zLjctLjgtMi40LTEuNi0zLjMtMS44LTEuNy0zLTIuMWwtMjQtOWMtLjUtMS45LTEuMS0zLjgtMS43LTUuNmwxNS0yMC44Yy43LTEgMS4yLTIuMiAxLjMtMy40czAtMi41LS41LTMuNy0xLjItMi4yLTIuMi0yLjktMi4xLTEuMy0zLjQtMS41bC0yNS40LTQuMmMtLjktMS43LTEuOC0zLjQtMi43LTUuMmwxMC43LTIzLjRjLjUtMS4xIC43LTIuNCAuNi0zLjZzLS41LTIuNC0xLjItMy41LTEuNi0xLjktMi44LTIuNS0yLjQtLjgtMy42LS44bC0yNS44IC45Yy0xLjItMS41LTIuNC0yLjktMy42LTQuNEw0MzkgODEuOGMuMy0xLjIgLjMtMi41LS4xLTMuN3MtMS0yLjMtMS45LTMuMi0yLTEuNS0zLjItMS45LTIuNS0uNC0zLjctLjFMNDA1IDc4LjljLTEuNC0xLjItMi45LTIuNC00LjQtMy42bC45LTI1LjhjLjEtMS4zLS4yLTIuNS0uOC0zLjZzLTEuNC0yLjEtMi41LTIuOC0yLjItMS4xLTMuNS0xLjItMi41IC4xLTMuNyAuNkwzNjcuNyA1My4yYy0xLjctLjktMy40LTEuOC01LjEtMi43bC00LjItMjUuNGMtLjItMS4yLS43LTIuNC0xLjUtMy40cy0xLjgtMS43LTIuOS0yLjItMi40LS43LTMuNy0uNS0yLjQgLjYtMy40IDEuM0wzMjYgMzUuM2MtMS45LS42LTMuOC0xLjEtNS42LTEuN2wtOS0yNGMtLjQtMS4yLTEuMi0yLjItMi4xLTNzLTIuMS0xLjQtMy4zLTEuNi0yLjUtLjItMy43IC4yLTIuMyAxLjEtMy4xIDJMMjgxLjYgMjUuOWMtMi0uMi0zLjktLjQtNS45LS41TDI2Mi4zIDMuNWMtLjctMS4xLTEuNi0xLjktMi43LTIuNnMtMi4zLS45LTMuNi0uOS0yLjUgLjMtMy42IC45LTIgMS41LTIuNyAyLjZMMjM2LjIgMjUuM2MtMiAuMi0zLjkgLjMtNS45IC42TDIxMi45IDcuMWMtLjktLjktMS45LTEuNi0zLjEtMnMtMi41LS41LTMuNy0uMi0yLjQgLjgtMy4zIDEuNi0xLjcgMS44LTIuMSAzbC05IDI0Yy0xLjkgLjYtMy44IDEuMS01LjcgMS43bC0yMC44LTE1Yy0xLS43LTIuMi0xLjItMy40LTEuM3MtMi41IDAtMy43IC41LTIuMiAxLjItMi45IDIuMi0xLjMgMi4xLTEuNSAzLjRsLTQuMiAyNS40Yy0xLjcgLjktMy40IDEuOC01LjIgMi43TDEyMC45IDQyLjZjLTEuMS0uNS0yLjQtLjctMy43LS42cy0yLjUgLjUtMy41IDEuMi0xLjkgMS43LTIuNSAyLjgtLjggMi40LS44IDMuNmwuOSAyNS44Yy0xLjUgMS4yLTMgMi40LTQuNCAzLjZMODEuOCA3M2MtMS4yLS4zLTIuNS0uMy0zLjcgLjFzLTIuMyAxLTMuMiAxLjktMS41IDItMS45IDMuMi0uNCAyLjUtLjEgMy43TDc4LjkgMTA3Yy0xLjIgMS40LTIuNCAyLjktMy42IDQuNGwtMjUuOC0uOWMtMS4zIDAtMi41IC4yLTMuNiAuOHMtMi4xIDEuNC0yLjggMi40LTEuMSAyLjItMS4yIDMuNSAuMSAyLjUgLjYgMy42bDEwLjcgMjMuNGMtLjkgMS43LTEuOCAzLjQtMi43IDUuMmwtMjUuNCA0LjFjLTEuMiAuMi0yLjQgLjctMy40IDEuNXMtMS43IDEuOC0yLjIgMi45LS43IDIuNC0uNSAzLjcgLjYgMi40IDEuMyAzLjRsMTUgMjAuOGMtLjYgMS45LTEuMSAzLjgtMS43IDUuN2wtMjQgOWMtMS4yIC40LTIuMiAxLjItMyAyLjFzLTEuNCAyLjEtMS42IDMuMy0uMiAyLjUgLjIgMy43IDEuMSAyLjMgMiAzLjFsMTguNyAxNy41Yy0uMiAyLS40IDMuOS0uNiA1LjlMMy41IDI0OS44Yy0xLjEgLjctMS45IDEuNi0yLjYgMi43cy0uOSAyLjMtLjkgMy42IC4zIDIuNSAuOSAzLjYgMS41IDIgMi42IDIuN2wyMS44IDEzLjVjLjIgMiAuMyAzLjkgLjYgNS45TDcuMSAyOTkuMWMtLjkgLjktMS42IDEuOS0yIDMuMXMtLjUgMi41LS4yIDMuNyAuOCAyLjQgMS42IDMuMyAxLjggMS43IDMgMi4xbDI0IDljLjYgMS45IDEuMSAzLjggMS43IDUuNmwtMTUgMjAuOGMtLjcgMS0xLjIgMi4yLTEuMyAzLjRzMCAyLjUgLjUgMy43IDEuMiAyLjIgMi4yIDIuOSAyLjEgMS4zIDMuNCAxLjVsMjUuNCA0LjJjLjkgMS43IDEuOCAzLjQgMi43IDUuMUw0Mi42IDM5MS4xYy0uNSAxLjEtLjcgMi40LS42IDMuNnMuNSAyLjUgMS4yIDMuNWMuNyAxLjEgMS42IDEuOSAyLjcgMi41czIuNCAuOCAzLjYgLjhsMjUuOC0uOWMxLjIgMS41IDIuNCAyLjkgMy42IDQuNEw3MyA0MzAuMmMtLjMgMS4yLS4zIDIuNSAuMSAzLjdzMSAyLjMgMS45IDMuMiAyIDEuNSAzLjIgMS45IDIuNSAuNCAzLjcgLjFsMjUuMi01LjljMS41IDEuMiAyLjkgMi40IDQuNCAzLjZsLS45IDI1LjhjMCAxLjMgLjIgMi41IC44IDMuNnMxLjQgMi4xIDIuNSAyLjggMi4yIDEuMSAzLjUgMS4yIDIuNS0uMSAzLjYtLjZsMjMuNC0xMC43YzEuNyAuOSAzLjQgMS44IDUuMSAyLjdsNC4yIDI1LjRjLjIgMS4yIC43IDIuNCAxLjUgMy40czEuOCAxLjggMi45IDIuMiAyLjQgLjcgMy43IC41IDIuNC0uNiAzLjQtMS4zbDIwLjgtMTVjMS45IC42IDMuOCAxLjEgNS42IDEuN2w5IDI0Yy40IDEuMiAxLjIgMi4yIDIuMSAzczIuMSAxLjQgMy4zIDEuNiAyLjUgLjIgMy43LS4yIDIuMy0xLjEgMy4xLTJsMTcuNS0xOC43YzIgLjIgMy45IC40IDUuOSAuNmwxMy41IDIxLjhjLjcgMS4xIDEuNiAxLjkgMi43IDIuNnMyLjMgLjkgMy42IC45IDIuNS0uMyAzLjYtLjkgMi0xLjUgMi43LTIuNmwxMy41LTIxLjhjMi0uMiAzLjktLjMgNS45LS42bDE3LjUgMTguN2MuOSAuOSAxLjkgMS42IDMuMSAyczIuNSAuNSAzLjcgLjIgMi40LS44IDMuMy0xLjYgMS43LTEuOCAyLjEtM2w5LTI0YzEuOS0uNiAzLjgtMS4xIDUuNi0xLjdsMjAuOCAxNWMxIC43IDIuMiAxLjIgMy40IDEuM3MyLjUgMCAzLjctLjUgMi4yLTEuMiAyLjktMi4yIDEuMy0yLjEgMS41LTMuNGw0LjItMjUuNGMxLjctLjkgMy40LTEuOCA1LjEtMi43bDIzLjQgMTAuN2MxLjEgLjUgMi40IC43IDMuNiAuNnMyLjQtLjUgMy41LTEuMiAxLjktMS42IDIuNS0yLjggLjgtMi40IC44LTMuNmwtLjktMjUuOGMxLjUtMS4yIDIuOS0yLjQgNC40LTMuNmwyNS4yIDUuOWMxLjIgLjMgMi41IC4zIDMuNy0uMXMyLjMtMSAzLjItMS45IDEuNS0yIDEuOS0zLjIgLjQtMi41IC4xLTMuN0w0MzMuMSA0MDVjMS4yLTEuNCAyLjQtMi45IDMuNi00LjRsMjUuOCAuOWMxLjMgLjEgMi41LS4yIDMuNi0uOHMyLjEtMS40IDIuOC0yLjVjLjctMSAxLjEtMi4yIDEuMi0zLjVzLS4xLTIuNS0uNi0zLjZsLTEwLjctMjMuNGMuOS0xLjcgMS44LTMuNCAyLjctNS4xbDI1LjQtNC4yYzEuMi0uMiAyLjQtLjcgMy40LTEuNXMxLjgtMS44IDIuMi0yLjkgLjctMi40IC41LTMuNy0uNi0yLjQtMS4zLTMuNGwtMTUtMjAuOGMuNi0xLjkgMS4xLTMuOCAxLjctNS42bDI0LTljMS4yLS40IDIuMi0xLjIgMy0yLjFzMS40LTIuMSAxLjYtMy4zIC4yLTIuNS0uMi0zLjctMS4xLTIuMy0yLTMuMWwtMTguNy0xNy41Yy4yLTEuOSAuNC0zLjkgLjYtNS45bDIxLjgtMTMuNWMxLjEtLjcgMS45LTEuNiAyLjYtMi43cy45LTIuMyAuOS0zLjYtLjMtMi41LS45LTMuNi0xLjUtMi0yLjYtMi43bDAgMHptLTE1MSAxMjkuMWMtMy42LS44LTcuNC0uMS0xMC41IDEuOXMtNS4zIDUuMi02IDguOGwtNy42IDM1LjdjLTI0LjYgMTEuMS01MS4zIDE2LjgtNzguMyAxNi43cy01My42LTYuMS03OC4xLTE3LjRsLTcuNi0zNS43Yy0uNC0xLjgtMS4xLTMuNS0yLjEtNXMtMi40LTIuOC0zLjktMy44LTMuMi0xLjctNS0yLTMuNi0uMy01LjQgLjFsLTMxLjUgNi44Yy01LjgtNi0xMS4zLTEyLjUtMTYuMy0xOS4ybDE1My4yIDBjMS43IDAgMi45LS4zIDIuOS0xLjlsMC01NC4yYzAtMS42LTEuMi0xLjktMi45LTEuOWwtNDQuOCAwIDAtMzQuNCA0OC41IDBjNC40IDAgMjMuNyAxLjMgMjkuOCAyNS45IDEuOSA3LjUgNi4yIDMyLjEgOS4xIDQwIDIuOSA4LjggMTQuNiAyNi41IDI3LjEgMjYuNWw3OSAwYy01LjMgNy4xLTExLjEgMTMuOC0xNy4zIDIwLjFsLTMyLjEtNi45em0yNS44IDM0LjVjMCAzLS45IDYtMi42IDguNXMtNCA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC44LTguOCAzLjEtNS4yIDUuNi02LjkgNS40LTIuNiA4LjUtMi42bC40IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHptLTIyNS42LS43YzAgMy0uOSA2LTIuNiA4LjVzLTQuMSA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC45LTguOCAzLjEtNS4yIDUuNi02LjggNS40LTIuNiA4LjUtMi42bC41IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHpNNjkuNiAyMzQuMmwzMi44LTE0LjZjMS43LS43IDMuMi0xLjggNC40LTMuMXMyLjItMi45IDIuOS00LjYgMS0zLjUgLjktNS4zLS41LTMuNi0xLjItNS4zbC02LjgtMTUuMiAyNi42IDAgMCAxMTkuNy01My42IDBjLTYuNi0yMy4yLTguNy00Ny42LTYuMS03MS42ek01OC4zIDE5OC4xYzAtMiAuNC00IDEuMi01LjhzMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjUgMGMzIC4xIDUuOSAxIDguMyAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LjEtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNGwwIDB6bTE1NS4yIDI0LjVsMC0zNS4zIDYzLjMgMGMzLjMgMCAyMy4xIDMuOCAyMy4xIDE4LjYgMCAxMi4zLTE1LjIgMTYuNy0yNy43IDE2LjdsLTU4LjcgMHpNMzk5IDMwNi43Yy05LjggMS4xLTIwLjYtNC4xLTIyLTEwLjEtNS44LTMyLjUtMTUuNC0zOS40LTMwLjYtNTEuNCAxOC45LTEyIDM4LjUtMjkuNiAzOC41LTUzLjMgMC0yNS41LTE3LjUtNDEuNi0yOS40LTQ5LjUtMTYuOC0xMS0zNS4zLTEzLjItNDAuMy0xMy4ybC0xOTguOSAwYzI3LjUtMzAuNyA2NC40LTUxLjUgMTA0LjktNTkuMmwyMy41IDI0LjZjMS4zIDEuMyAyLjggMi40IDQuNCAzLjFzMy41IDEuMSA1LjMgMS4yIDMuNi0uMyA1LjMtLjkgMy4yLTEuNyA0LjYtMi45bDI2LjMtMjVjMjYuOCA1IDUyLjEgMTUuOCA3NC4zIDMxLjZzNDAuNiAzNi4yIDU0LjEgNTkuOWwtMTggNDAuNmMtMS41IDMuNC0xLjUgNy4yLS4yIDEwLjZzMy45IDYuMiA3LjMgNy43bDM0LjYgMTUuM2MxLjEgMTAuOCAxLjIgMjEuNyAuNCAzMi41bC0xOS4zIDBjLTEuOSAwLTIuNyAxLjMtMi43IDMuMWwwIDguOGMwIDIwLjgtMTEuNyAyNS4zLTIyIDI2LjV6TTI0MCA2MC4yYzAtNCAxLjYtNy45IDQuNS0xMC43czYuNy00LjUgMTAuNy00LjVsLjQgMGMzIC4xIDUuOSAxIDguNCAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LTYgLjItOC43LS45LTUuMS0zLjEtNi44LTUuNi0yLjUtNS40LTIuNS04LjR6TTQzNi44IDIxNGMtMiAwLTQtLjQtNS44LTEuMnMtMy41LTEuOS00LjktMy4zLTIuNS0zLjEtMy4zLTQuOS0xLjItMy44LTEuMi01LjggLjQtNCAxLjItNS44IDEuOS0zLjUgMy4zLTQuOSAzLjEtMi41IDQuOS0zLjMgMy44LTEuMiA1LjgtMS4ybC40IDBjNCAuMSA3LjkgMS43IDEwLjcgNC42czQuNCA2LjggNC4zIDEwLjgtMS43IDcuOS00LjYgMTAuNy02LjggNC40LTEwLjggNC4zeiJdfSx1bXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG9ybmJpbGwiLGljb246WzUxMiw1MTIsW10sImY1OTIiLCJNNzYuOCAzNzAuM2MxIDcuOC0uNCAxNS44LTQuMSAyMi44cy05LjYgMTIuNi0xNi43IDE2LjEtMTUuMSA0LjctMjIuOSAzLjMtMTUtNS4xLTIwLjYtMTAuNy05LjItMTIuOS0xMC41LTIwLjcgMC0xNS44IDMuNi0yMi45IDkuMy0xMi44IDE2LjMtMTYuNSAxNS01IDIyLjktMy45Yy03OC4zLTExMS4zIDUyLTE5MC41IDUyLTE5MC41LTUuOSA0My04LjIgOTEuMi04LjIgOTEuMi02Ny4zIDQxLjUgLjkgNjQuMSAzOS44IDcyLjkgOS45IDI3IDI3LjggNTAuMiA1MS40IDY2LjdzNTEuNiAyNS4zIDgwLjMgMjUuM2MxLjkgMCAzLjgtLjIgNS43LS4zbC4xIDE4LjljLTk5LjIgMS40LTE1OC43LTI5LjEtMTg4LjktNTEuNnptMTA4LTMyNy43Yy45LTcuMi0uMi0xNC42LTMuNC0yMS4yLTMtNi4yLTcuNi0xMS41LTEzLjQtMTUuM3MtMTIuNS01LjktMTkuNC02LjItMTMuOCAxLjQtMTkuOCA0LjctMTEuMSA4LjMtMTQuNSAxNC4zLTUuMiAxMi44LTUgMTkuNyAyLjIgMTMuNyA1LjkgMTkuNSA4LjkgMTAuNiAxNS4xIDEzLjYgMTMuMSA0LjQgMjAgMy45Yy0yMi42IDI5LjktNTMuOCA4OS42LTUyLjQgMTkwbDIxLjgtLjJjMC0uOS0uMS0xLjgtLjEtMi43IDAtMjggOC40LTU1LjMgMjQuMS03OC41czM3LjktNDEuMiA2My44LTUxLjZjOC0zNy43IDMwLjctMTE0LjMgNzMuOC00NC4zIDAgMCA0OC4xIDIuNCA5MS4yIDguMiAwIDAtNzcuOC0xMjgtMTg3LjYtNTQuMWwwIDB6TTQ4OSAxNzYuOGM2LjMtMyAxMS43LTcuNyAxNS41LTEzLjZzNS45LTEyLjcgNi4xLTE5LjgtMS42LTE0LTUuMi0yMC04LjctMTEtMTQuOS0xNC4zLTEzLjItNC44LTIwLjItNC40LTEzLjggMi44LTE5LjUgNi45LTEwLjIgOS42LTEzIDE2LjEtMy43IDEzLjYtMi43IDIwLjVjLTMxLjctMjEuOS04OS44LTQ5LjEtMTgzLjQtNDcuN2wuMSAyMi41YzIuNy0uMiA1LjQtLjQgOC4xLS40IDI4LjEgMCA1NS42IDguNSA3OC45IDI0LjNzNDEuMiAzOC4zIDUxLjYgNjQuNWMzOS4xIDkgMTA1LjEgMzEuNiAzOC41IDcyLjUgMCAwLTIuMyA0OC4xLTguMiA5MS4yIDAgMCAxMzMuNC04MS4yIDQ5LTE5NC42IDYuNiAuNiAxMy4zLS42IDE5LjMtMy41bDAgMHpNMzc0LjQgNDM2LjJjMjEuNC0zMi41IDQ2LjQtODkuNyA0NS4xLTE3OS43bC0xOS41IC4xYy4xIDIuMSAuMyA0LjEgLjMgNi4yIDAgMjguNi04LjggNTYuNS0yNS4xIDgwcy0zOS41IDQxLjQtNjYuMyA1MS40Yy04LjkgMzktMzEuNCAxMDYuNy03Mi44IDM5LjUgMCAwLTQ4LjEtMi4zLTkxLjItOC4yIDAgMCA3OS45IDEzMS4zIDE5MS45IDUxIC4zIDQuOSAxLjUgOS42IDMuNiAxNCAyLjkgNi4xIDcuNSAxMS40IDEzLjEgMTUuMXMxMi4yIDYgMTkgNi40IDEzLjYtMS4xIDE5LjYtNC4yIDExLjEtNy44IDE0LjctMTMuNiA1LjYtMTIuNCA1LjctMTkuMi0xLjUtMTMuNS00LjgtMTkuNC04LjItMTAuOS0xNC4xLTE0LjMtMTIuNi01LjItMTkuNC01LjFsMC0uMXoiXX0scG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBocCIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1NyIsIk0zMjAgMTA0LjVjMTcxLjQgMCAzMDMuMiA3Mi4yIDMwMy4yIDE1MS41UzQ5MS4zIDQwNy41IDMyMCA0MDcuNUMxNDguNiA0MDcuNSAxNi44IDMzNS4zIDE2LjggMjU2UzE0OC43IDEwNC41IDMyMCAxMDQuNXptMC0xNi44QzE0My4zIDg3LjcgMCAxNjMgMCAyNTZTMTQzLjMgNDI0LjMgMzIwIDQyNC4zIDY0MCAzNDkgNjQwIDI1NiA0OTYuNyA4Ny43IDMyMCA4Ny43ek0yMTguMiAyNDIuNWMtNy45IDQwLjUtMzUuOCAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzggMCA2My44LTQuMSA1Ni40IDM0LjN6TTk3LjQgMzUwLjNsMzYuNyAwIDguNy00NC44YzQxLjEgMCA2Ni42IDMgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuNyAxNjguN3pNMjgzLjEgMTM2LjdsMzYuNSAwLTguNyA0NC44YzMxLjUgMCA2MC43LTIuMyA3NC44IDEwLjcgMTQuOCAxMy42IDcuNyAzMS04LjMgMTEzLjFsLTM3IDBjMTUuNC03OS40IDE4LjMtODYgMTIuNy05Mi01LjQtNS44LTE3LjctNC42LTQ3LjQtNC42bC0xOC44IDk2LjYtMzYuNSAwIDMyLjctMTY4LjZ6TTUwNSAyNDIuNWMtOCA0MS4xLTM2LjcgMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4LjIgMCA2My44LTQuMSA1Ni40IDM0LjN6TTM4NC4yIDM1MC4zbDM2LjggMCA4LjctNDQuOGM0My4yIDAgNjcuMSAyLjUgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuOCAxNjguN3oiXX0sZm1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc3F1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNSIsIk0yOTAuMiA1MTJjLTYyLjYgMC0xMTkuOS0yMi45LTE2NC4yLTYwLjhMMTcgNDY2LjEgNTkuMSAzNjIuMmMtMTQuNy0zMi40LTIyLjktNjguMy0yMi45LTEwNi4yIDAtMTQxLjQgMTEzLjctMjU2IDI1NC0yNTYgMTQwLjMgMCAyNTQgMTE0LjYgMjU0IDI1NiAwIDE0MS40LTExMy43IDI1Ni0yNTQgMjU2ek00MjguOSAyNTUuM2wwLS43QzQyOC45IDE4MC43IDM3Ni44IDEyOCAyODcgMTI4bC05NyAwIDAgMjU2IDk1LjYgMGM5MC41IDAgMTQzLjQtNTQuOSAxNDMuNC0xMjguN3pNMjg4IDMyMS4xbC0yOC40IDAgMC0xMzAuMiAyOC40IDBjNDEuNyAwIDY5LjMgMjMuOCA2OS4zIDY0LjdsMCAuN2MwIDQxLjMtMjcuNyA2NC43LTY5LjMgNjQuN3oiXX0saG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IjUwMHB4IixpY29uOlszODQsNTEyLFtdLCJmMjZlIiwiTTcxLjggMzQ0LjNjLTYuNS0xNC4yLTYuOS0xOC4zIDcuNC0yMy4xIDI1LjYtOCA4IDkuMiA0My4yIDQ5LjJsLjMgMCAwLTkzLjljMS4yLTUwLjIgNDQtOTIuMiA5Ny43LTkyLjIgNTMuOSAwIDk3LjcgNDMuNSA5Ny43IDk2LjggMCA2My40LTYwLjggMTEzLjItMTI4LjUgOTMuMy0xMC41LTQuMi0yLjEtMzEuNyA4LjUtMjguNiA1MyAwIDg5LjQtMTAuMSA4OS40LTY0LjQgMC02MS03Ny4xLTg5LjYtMTE2LjktNDQuNi0yMy41IDI2LjQtMTcuNiA0Mi4xLTE3LjYgMTU3LjYgNTAuNyAzMSAxMTguMyAyMiAxNjAuNC0yMC4xIDI0LjgtMjQuOCAzOC41LTU4IDM4LjUtOTMgMC0zNS4yLTEzLjgtNjguMi0zOC44LTkzLjMtMjQuOC0yNC44LTU3LjgtMzguNS05My4zLTM4LjVTMTUxIDE2My4zIDEyNi4zIDE4OGMtLjMgLjMtMTYgMTYuNS0yMS4yIDIzLjlsLS41IC42Yy0zLjMgNC43LTYuMyA5LjEtMjAuMSA2LjEtNi45LTEuNy0xNC4zLTUuOC0xNC4zLTExLjhMNzAuMiAyMGMwLTUgMy45LTEwLjUgMTAuNS0xMC41TDMyMiA5LjVjOC4zIDAgOC4zIDExLjYgOC4zIDE1LjEgMCAzLjkgMCAxNS4xLTguMyAxNS4xbC0yMjMuMiAwIDAgMTMyLjkgLjMgMGMxMDQuMi0xMDkuOCAyODIuOC0zNiAyODIuOCAxMDguOSAwIDE3OC4xLTI0NC44IDIyMC4zLTMxMC4xIDYyLjh6TTEzNS4xIDgzLjVjLS41IDQuMiA0LjYgMjQuNSAxNC42IDIwLjYgMTI0LjgtNDcuNSAyMDIuOCA0MC40IDIwOS40IDQwLjQgNC44IDAgMjIuOC0xNS4zIDE0LjMtMjIuOC05My4yLTg5LTIzNC41LTU3LTIzOC4zLTM4LjJ6TTM2MS41IDQxNC43Yy0xMTAgMTA5LjktMjk5IDYwLjgtMzMyLTEwNC4yIDAtMTIuMi0zMC40LTcuNC0yOC45IDMuMyAyNCAxNzMuNCAyNDYgMjU2LjkgMzgxLjYgMTIxLjMgNi45LTcuOC0xMi42LTI4LjQtMjAuNy0yMC40ek0xODIuMSAzMDYuNmMwIDQgNC4zIDcuMyA1LjUgOC41IDMgMyA2LjEgNC40IDguNSA0LjQgMy44IDAgMi42IC4yIDIyLjMtMTkuNSAxOS42IDE5LjMgMTkuMSAxOS41IDIyLjMgMTkuNSA1LjQgMCAxOC41LTEwLjQgMTAuNy0xOC4ybC0xNy4zLTE3LjMgMTguMi0xOC4yYzYuMy02LjgtMTAuMS0yMS44LTE2LjItMTUuN0wyMTguMiAyNjhjLTE4LjYtMTguOC0xOC40LTE5LjUtMjEuNS0xOS41LTUgMC0xOCAxMS43LTEyLjQgMTcuM0wyMDIuNSAyODRjLTE4LjEgMTcuOS0yMC40IDE5LjItMjAuNCAyMi42eiJdfSxtbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWZmaWxpYXRldGhlbWUiLGljb246WzUxMiw1MTIsW10sImYzNmIiLCJNMTU5LjcgMjM3LjRDMTA4LjQgMzA4LjMgNDMuMSAzNDguMiAxNCAzMjYuNi0xNS4yIDMwNC45IDIuOCAyMzAgNTQuMiAxNTkuMSAxMDUuNSA4OC4yIDE3MC44IDQ4LjMgMTk5LjkgNjkuOXMxMS4xIDk2LjYtNDAuMiAxNjcuNXptMzUxLjItNTcuM2MtNzMuOCAxMjMuNC0xOTEuOSAxODcuNy0yNjQuNSAxNDMuNi0yNS0xNS4yLTQxLjMtNDEuMi00OS03My44LTMzLjYgNjQuOC05Mi44IDExMy44LTE2NC4xIDEzMy4yIDQ5LjggNTkuMyAxMjQuMSA5Ni45IDIwNyA5Ni45IDE1MCAwIDI3MS42LTEyMy4xIDI3MS42LTI3NC45IC4xLTguNS0uMy0xNi44LTEtMjV6Il19LGdtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWQtcml2ZXIiLGljb246WzQ0OCw1MTIsW10sImYzZTMiLCJNMzUzLjIgMzJMOTQuOCAzMkM0Mi40IDMyIDAgNzQuNCAwIDEyNi44TDAgMzg1LjJDMCA0MzcuNiA0Mi40IDQ4MCA5NC44IDQ4MGwyNTguNCAwYzUyLjQgMCA5NC44LTQyLjQgOTQuOC05NC44bDAtMjU4LjRDNDQ4IDc0LjQgNDA1LjYgMzIgMzUzLjIgMzJ6TTE0NC45IDIwMC45bDAgNTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlsMC0xNTQuMmMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWwxNTQuMiAwYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNHptMTc2LjMgNzJsLTU2LjMgMGMtMTIuMy0uNi0yNC42IDExLjYtMjQgMjRsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45eiJdfSx0dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdHRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjA5OSIsIk00NTkuNCAxNTEuN2MuMyA0LjUgLjMgOS4xIC4zIDEzLjYgMCAxMzguNy0xMDUuNiAyOTguNi0yOTguNiAyOTguNi01OS41IDAtMTE0LjctMTcuMi0xNjEuMS00Ny4xIDguNCAxIDE2LjYgMS4zIDI1LjMgMS4zIDQ5LjEgMCA5NC4yLTE2LjYgMTMwLjMtNDQuOC00Ni4xLTEtODQuOC0zMS4yLTk4LjEtNzIuOCA2LjUgMSAxMyAxLjYgMTkuOCAxLjYgOS40IDAgMTguOC0xLjMgMjcuNi0zLjYtNDguMS05LjctODQuMS01Mi04NC4xLTEwM2wwLTEuM2MxNCA3LjggMzAuMiAxMi43IDQ3LjQgMTMuMy0yOC4zLTE4LjgtNDYuOC01MS00Ni44LTg3LjQgMC0xOS41IDUuMi0zNy40IDE0LjMtNTMgNTEuNyA2My43IDEyOS4zIDEwNS4zIDIxNi40IDEwOS44LTEuNi03LjgtMi42LTE1LjktMi42LTI0IDAtNTcuOCA0Ni44LTEwNC45IDEwNC45LTEwNC45IDMwLjIgMCA1Ny41IDEyLjcgNzYuNyAzMy4xIDIzLjctNC41IDQ2LjUtMTMuMyA2Ni42LTI1LjMtNy44IDI0LjQtMjQuNCA0NC44LTQ2LjEgNTcuOCAyMS4xLTIuMyA0MS42LTguMSA2MC40LTE2LjItMTQuMyAyMC44LTMyLjIgMzkuMy01Mi42IDU0LjN6Il19LGJtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3J0LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImYyODYiLCJNNDg5LjUgMjg3LjlsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTE3OC4zYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtNi04LTQuNi0xMS43LTQuNmwwLTM4YzguMy0yIDE3LjEtMy40IDI1LjctMy40IDEwLjkgMCAyMC45IDQuMyAzMS40IDQuMyA0LjYgMCAyNy43LTEuMSAyNy43LThsMC02MGMwLTIuNi0yLTQuNi00LjYtNC42LTUuMSAwLTE1LjEgNC4zLTI0IDQuMy05LjcgMC0yMC45LTQuMy0zMi42LTQuMy04IDAtMTYgMS4xLTIzLjcgMi45bDAtNC45YzUuNC0yLjYgOS4xLTguMyA5LjEtMTQuMyAwLTIwLjctMzEuNC0yMC44LTMxLjQgMCAwIDYgMy43IDExLjcgOS4xIDE0LjNsMCAxMTEuN2MtMy43IDAtMTEuNy0xLjQtMTEuNyA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi4zIDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAxNzguMy0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAyMTkuNSAxODIuOSAwIDAtOTZjMC03Mi42IDEwOS43LTcyLjYgMTA5LjcgMGwwIDk2IDE4Mi45IDAgMC0yMTkuNWMuMS0yLjYtMS45LTQuNi00LjUtNC42em0tMjg4LjEtNC41YzAgMi42LTIgNC42LTQuNiA0LjZsLTI3LjQgMGMtMi42IDAtNC42LTItNC42LTQuNmwwLTY0YzAtMi42IDItNC42IDQuNi00LjZsMjcuNCAwYzIuNiAwIDQuNiAyIDQuNiA0LjZsMCA2NHptMTQ2LjQgMGMwIDIuNi0yIDQuNi00LjYgNC42bC0yNy40IDBjLTIuNiAwLTQuNi0yLTQuNi00LjZsMC02NGMwLTIuNiAyLTQuNiA0LjYtNC42bDI3LjQgMGMyLjYgMCA0LjYgMiA0LjYgNC42bDAgNjR6Il19LHhtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXhlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTA1NiIsIk04Mi42IDc2LjFjLTMuOC01LjEtOC43LTkuNC0xNC4yLTEyLjVzLTExLjctNS4xLTE4LjEtNS43LTEyLjggLjEtMTguOCAyLjItMTEuNiA1LjMtMTYuMyA5LjZjLTE3LjYgMTYuMi0xOSA0My41LTQuOCA2Mi44bDkxLjggMTIzLTkyLjMgMTI0LjFjLTE0LjIgMTkuMy0xMy4xIDQ2LjYgNC43IDYyLjggNC43IDQuMyAxMC4zIDcuNiAxNi4zIDkuNnMxMi41IDIuOCAxOC44IDIuMiAxMi41LTIuNSAxOC4xLTUuNyAxMC40LTcuNCAxNC4yLTEyLjVMMjEwLjkgMjYyLjdjMS41LTIuMSAyLjMtNC42IDIuMy03LjFzLS44LTUtMi4zLTcuMUw4Mi42IDc2LjF6TTQzOC4yIDM3OS42bC05Mi4zLTEyNC4xIDkxLjgtMTIzYzE0LjItMTkuMiAxMi44LTQ2LjYtNC43LTYyLjgtNC43LTQuMy0xMC4zLTcuNi0xNi4zLTkuNnMtMTIuNS0yLjgtMTguOC0yLjItMTIuNSAyLjUtMTguMSA1LjctMTAuNCA3LjQtMTQuMiAxMi41bC0xMjggMTcyLjFjLTEuNSAyLjEtMi4zIDQuNi0yLjMgNy4xcy44IDUgMi4zIDcuMUwzNjYgNDM1LjljMy44IDUuMSA4LjcgOS40IDE0LjIgMTIuNXMxMS43IDUuMSAxOC4xIDUuNyAxMi44LS4xIDE4LjgtMi4yIDExLjYtNS4zIDE2LjMtOS42YzE3LjgtMTYuMiAxOS00My41IDQuNy02Mi44eiJdfSx2bXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHlmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjNjMyIsIk0wIDgxLjFsNzcuOCAwIDAgMjA4LjdjMCAzMy4xIDE1IDUyLjggMjcuMiA2MS0xMi43IDExLjEtNTEuMiAyMC45LTgwLjItMi44LTE3LTE0LTI0LjgtMzcuMy0yNC44LTU5TDAgODEuMXpNNDg1LjkgMjU0LjZsMC0yMiAyMy44IDAgMC03Ni44LTI2LjEgMGMtMTAuMS00Ni4zLTUxLjItODAuNy0xMDAuMy04MC43LTU2LjYgMC0xMDIuNyA0Ni0xMDIuNyAxMDIuN2wwIDE3OS4yYzE2IDIuMyAzNS40LS4zIDUxLjctMTQgMTcuMS0xNCAyNC44LTM3LjIgMjQuOC01OWwwLTYuNyAzOC44IDAgMC03Ni44LTM4LjggMCAwLTIzLjNjMC0zNC42IDUyLjItMzQuNiA1Mi4yIDBsMCA3Ny4xYzAgNTYuNiA0NiAxMDIuNyAxMDIuNyAxMDIuN2wwLTc2LjVjLTE0LjUgMC0yNi4xLTExLjctMjYuMS0yNS45em0tMjk0LjMtOTlsMCAxMTNjMCAxNS40LTIzLjggMTUuNC0yMy44IDBsMC0xMTMtNzYuOCAwIDAgMTMyLjdjMCAyMy44IDggNTQgNDUgNjMuOSAzNyA5LjggNTguMi0xMC42IDU4LjItMTAuNi0yLjEgMTMuNC0xNC41IDIzLjMtMzQuOSAyNS4zLTE1LjUgMS42LTM1LjItMy42LTQ1LTcuOGwwIDcwLjNjMjUuMSA3LjUgNTEuNSA5LjggNzcuNiA0LjcgNDcuMS05LjEgNzYuOC00OC40IDc2LjgtMTAwLjhsMC0xNzguMi03Ny4xIDAgMCAuNXoiXX0seW1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcGxlLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxNSIsIk0xMTYuOSAxNTguNWMtNy41IDguOS0xOS41IDE1LjktMzEuNSAxNC45LTEuNS0xMiA0LjQtMjQuOCAxMS4zLTMyLjYgNy41LTkuMSAyMC42LTE1LjYgMzEuMy0xNi4xIDEuMiAxMi40LTMuNyAyNC43LTExLjEgMzMuOHptMTAuOSAxNy4yYy0xNy40LTEtMzIuMyA5LjktNDAuNSA5LjktOC40IDAtMjEtOS40LTM0LjgtOS4xLTE3LjkgLjMtMzQuNSAxMC40LTQzLjYgMjYuNS0xOC44IDMyLjMtNC45IDgwIDEzLjMgMTA2LjMgOC45IDEzIDE5LjUgMjcuMyAzMy41IDI2LjggMTMuMy0uNSAxOC41LTguNiAzNC41LTguNiAxNi4xIDAgMjAuOCA4LjYgMzQuOCA4LjQgMTQuNS0uMyAyMy42LTEzIDMyLjUtMjYgMTAuMS0xNC44IDE0LjMtMjkuMSAxNC41LTI5LjktLjMtLjMtMjgtMTAuOS0yOC4zLTQyLjktLjMtMjYuOCAyMS45LTM5LjUgMjIuOS00MC4zLTEyLjUtMTguNi0zMi0yMC42LTM4LjgtMjEuMXptMTAwLjQtMzYuMmwwIDE5NC45IDMwLjMgMCAwLTY2LjYgNDEuOSAwYzM4LjMgMCA2NS4xLTI2LjMgNjUuMS02NC4zcy0yNi40LTY0LTY0LjEtNjRsLTczLjIgMHpNMjU4LjUgMTY1bDM0LjkgMGMyNi4zIDAgNDEuMyAxNCA0MS4zIDM4LjZzLTE1IDM4LjgtNDEuNCAzOC44bC0zNC44IDAgMC03Ny40ek00MjAuNyAzMzUuOWMxOSAwIDM2LjYtOS42IDQ0LjYtMjQuOWwuNiAwIDAgMjMuNCAyOCAwIDAtOTdjMC0yOC4xLTIyLjUtNDYuMy01Ny4xLTQ2LjMtMzIuMSAwLTU1LjkgMTguNC01Ni44IDQzLjZsMjcuMyAwYzIuMy0xMiAxMy40LTE5LjkgMjguNi0xOS45IDE4LjUgMCAyOC45IDguNiAyOC45IDI0LjVsMCAxMC44LTM3LjggMi4zYy0zNS4xIDIuMS01NC4xIDE2LjUtNTQuMSA0MS41IC4xIDI1LjIgMTkuNyA0MiA0Ny44IDQyem04LjItMjMuMWMtMTYuMSAwLTI2LjQtNy44LTI2LjQtMTkuNiAwLTEyLjMgOS45LTE5LjQgMjguOC0yMC41bDMzLjYtMi4xIDAgMTFjMCAxOC4yLTE1LjUgMzEuMi0zNiAzMS4yem0xMDIuNSA3NC42YzI5LjUgMCA0My40LTExLjMgNTUuNS00NS40bDUzLjEtMTQ5LTMwLjggMC0zNS42IDExNS4xLS42IDAtMzUuNi0xMTUuMS0zMS42IDAgNTEuMiAxNDEuOS0yLjggOC42Yy00LjYgMTQuNi0xMi4xIDIwLjMtMjUuNSAyMC4zLTIuNCAwLTctLjMtOC45LS41bDAgMjMuNGMxLjggLjQgOS4zIC43IDExLjYgLjd6Il19LHdtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcnRzdGF0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmNzdhIiwiTTIuMSAzNzcuNGw0MyA3NC4zYzQuMyA4LjUgMTAuOCAxNS43IDE4LjkgMjAuN3MxNy40IDcuNiAyNyA3LjZsMjg1LjQgMC01OS4yLTEwMi42LTMxNS4xIDB6TTUwMS45IDM1MEwzMzUuNyA1OS4zYy00LjQtOC4yLTEwLjktMTUuMS0xOC45LTIwUzI5OS43IDMyIDI5MC40IDMybC04OC40IDAgMjU3LjMgNDQ3LjYgNDAuNy03MC41YzEuOS0zLjIgMjEtMjkuNyAyLTU5LjF6TTI3NS4yIDMwNC41bC0xMTUuNS0yMDAtMTE1LjUgMjAwIDIzMSAweiJdfSxrbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZS1qcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkMyIsIk0yMjQuNSA1MDhjLTYuNyAwLTEzLjUtMS44LTE5LjQtNS4ybC02MS43LTM2LjVjLTkuMi01LjItNC43LTctMS43LTggMTIuMy00LjMgMTQuOC01LjIgMjcuOS0xMi43IDEuNC0uOCAzLjItLjUgNC42IC40bDQ3LjQgMjguMWMxLjcgMSA0LjEgMSA1LjcgMEw0MTIgMzY3LjVjMS43LTEgMi44LTMgMi44LTVsMC0yMTMuMmMwLTIuMS0xLjEtNC0yLjktNS4xTDIyNy4zIDM3LjdjLTEuNy0xLTQtMS01LjcgMEwzNy4xIDE0NC4zYy0xLjggMS0yLjkgMy0yLjkgNS4xbDAgMjEzLjFjMCAyIDEuMSA0IDIuOSA0LjlsNTAuNiAyOS4yYzI3LjUgMTMuNyA0NC4zLTIuNCA0NC4zLTE4LjdsMC0yMTAuNGMwLTMgMi40LTUuMyA1LjQtNS4zbDIzLjQgMGMyLjkgMCA1LjQgMi4zIDUuNCA1LjNsMCAyMTAuNWMwIDM2LjYtMjAgNTcuNi01NC43IDU3LjYtMTAuNyAwLTE5LjEgMC00Mi41LTExLjZMMjAuNiAzOTYuMWMtMTItNi45LTE5LjQtMTkuOC0xOS40LTMzLjdsMC0yMTMuMWMwLTEzLjggNy40LTI2LjggMTkuNC0zMy43TDIwNS4xIDljMTEuNy02LjYgMjcuMi02LjYgMzguOCAwTDQyOC42IDExNS43YzEyIDYuOSAxOS40IDE5LjggMTkuNCAzMy43bDAgMjEzLjFjMCAxMy44LTcuNCAyNi43LTE5LjQgMzMuN0wyNDMuOSA1MDIuOGMtNS45IDMuNC0xMi42IDUuMi0xOS40IDUuMnpNMzczLjYgMjk3LjljMC0zOS45LTI3LTUwLjUtODMuNy01OC01Ny40LTcuNi02My4yLTExLjUtNjMuMi0yNC45IDAtMTEuMSA0LjktMjUuOSA0Ny40LTI1LjkgMzcuOSAwIDUxLjkgOC4yIDU3LjcgMzMuOCAuNSAyLjQgMi43IDQuMiA1LjIgNC4ybDI0IDBjMS41IDAgMi45LS42IDMuOS0xLjdzMS41LTIuNiAxLjQtNC4xYy0zLjctNDQuMS0zMy02NC42LTkyLjItNjQuNi01Mi43IDAtODQuMSAyMi4yLTg0LjEgNTkuNSAwIDQwLjQgMzEuMyA1MS42IDgxLjggNTYuNiA2MC41IDUuOSA2NS4yIDE0LjggNjUuMiAyNi43IDAgMjAuNi0xNi42IDI5LjQtNTUuNSAyOS40LTQ4LjkgMC01OS42LTEyLjMtNjMuMi0zNi42LS40LTIuNi0yLjYtNC41LTUuMy00LjVsLTIzLjkgMGMtMyAwLTUuMyAyLjQtNS4zIDUuMyAwIDMxLjEgMTYuOSA2OC4yIDk3LjggNjguMiA1OC40LS4xIDkyLTIzLjIgOTItNjMuNHoiXX0sU21yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuY2hhcnRlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NCIsIk0xNzEuOCAyMzIuOGMxLjEgMCAyLjEtLjMgMy0uOXMxLjYtMS40IDItMi40YzIuMi05LjggNy40LTE4LjYgMTQuOS0yNS4zIDEuMi0uOCAxLjctMi41IDEuNy00LjEtLjEtLjctLjMtMS4zLS42LTEuOXMtLjktMS4xLTEuNC0xLjRMNzQuNSAxMjguNSAxNDkuMSA4NWMxLjUtLjggMi43LTIgMy42LTMuNXMxLjQtMy4xIDEuNC00LjhjMC0xLjctLjQtMy40LTEuMy00LjlzLTIuMi0yLjctMy43LTMuNEwxMjYuNyA1NS42Yy0xLjUtLjgtMy4xLTEuMi00LjgtMS4ycy0zLjMgLjQtNC44IDEuMkwxNyAxMTMuNmMtMS41IC44LTIuNyAyLTMuNiAzLjVzLTEuNCAzLjEtMS40IDQuOEwxMiAyMzdjMCAxLjcgLjQgMy40IDEuMyA0LjlzMi4yIDIuNyAzLjcgMy40bDIyLjQgMTIuOGMxLjUgLjkgMy4yIDEuMyA1IDEuMiAyLjQgLjEgNC44LS44IDYuNi0yLjUgMS44LTEuOSAyLjgtNC40IDIuOS03bDAtODUuMyAxMTUuOSA2Ny45Yy42IC4zIDEuNCAuNCAyLjEgLjR6TTMyMy40IDM3Ny43Yy0xLjcgLjEtMy40IC41LTUgMS4ybC03NC41IDQzLjEgMC0xMzQuMmMwLTIuOS0yLjktNS44LTYuMi00LjYtOS40IDIuOC0xOS41IDMtMjkgLjQtLjctLjItMS41LS4yLTIuMi0uMXMtMS40IC40LTIgLjktMS4xIDEtMS40IDEuNy0uNSAxLjQtLjUgMi4xbDAgMTMzLjMtNzQuNS00My4xYy0xLjUtLjktMy4yLTEuMy01LTEuMi0yLjUgMC00LjkgMS02LjcgMi44cy0yLjggNC4yLTIuOCA2LjdsMCAyNi4xYzAgMS43IC40IDMuNCAxLjMgNC45czIuMiAyLjcgMy43IDMuNGwxMDAuMiA1Ny42YzEuNSAuOSAzLjIgMS4zIDUgMS4yIDEuNyAwIDMuNC0uNCA1LTEuMmwxMDAuMi01Ny42YzEuNS0uOCAyLjctMiAzLjYtMy41czEuNC0zLjEgMS40LTQuOGwwLTI2LjFjLS44LTQuNi01LjQtOS4xLTEwLjQtOS4xek0yODYuMSA3OGEyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bTYzLjYtMTAuMWEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bTYzLjIgODMuN2EyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bS02My4yLTkuMmEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bS02My42IDgzLjJjNC41IDAgOS0xLjMgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuOCA4LjhzMi45IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6TTIyNCAyNjJjNC41IDAgOS0xLjQgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuNyA4LjhzMi44IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6bTE4OC45LTgyLjRjLTQuNiAwLTkgMS4zLTEyLjggMy45cy02LjcgNi4xLTguNSAxMC4zLTIuMiA4LjgtMS4zIDEzLjMgMy4xIDguNiA2LjMgMTEuOCA3LjMgNS40IDExLjggNi4zIDkuMSAuNCAxMy4zLTEuMyA3LjgtNC43IDEwLjMtOC41IDMuOS04LjIgMy45LTEyLjhjMC02LjEtMi40LTExLjktNi43LTE2LjNzLTEwLjItNi43LTE2LjMtNi43bDAgMHptMCA3Mi4zYy00LjYgMC05IDEuMy0xMi44IDMuOXMtNi43IDYuMS04LjUgMTAuMy0yLjIgOC44LTEuMyAxMy4zIDMuMSA4LjYgNi4zIDExLjggNy4zIDUuNCAxMS44IDYuMyA5LjEgLjQgMTMuMy0xLjMgNy44LTQuNyAxMC4zLTguNSAzLjktOC4yIDMuOS0xMi44YzAtNi4xLTIuNC0xMS45LTYuNy0xNi4zcy0xMC4yLTYuNy0xNi4zLTYuN2wwIDB6Il19LE1tcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwbGF5c3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNkZiIsIk01NzEgMzcyLjNjLTExLjMgMTQuMi0zOC44IDI0LjMtMzguOCAyNC4zbC0yMDUuMSA3My42IDAtNTQuMyAxNTAuOS01My44YzE3LjEtNi4xIDE5LjgtMTQuOCA1LjgtMTkuNC0xMy45LTQuNi0zOS4xLTMuMy01Ni4yIDIuOWwtMTAwLjUgMzUuNSAwLTU2LjRjMjMuMi03LjggNDcuMS0xMy42IDc1LjctMTYuOCA0MC45LTQuNSA5MC45IC42IDEzMC4yIDE1LjUgNDQuMiAxNCA0OS4yIDM0LjcgMzggNDguOXpNMzQ2LjYgMjc5LjhsMC0xMzljMC0xNi4zLTMtMzEuMy0xOC4zLTM1LjYtMTEuNy0zLjgtMTkgNy4xLTE5IDIzLjRsMCAzNDcuOS05My44LTI5LjggMC00MTQuN2MzOS45IDcuNCA5OCAyNC45IDEyOS4yIDM1LjQgNzkuNSAyNy4zIDEwNi40IDYxLjMgMTA2LjQgMTM3LjggMCA3NC41LTQ2IDEwMi44LTEwNC41IDc0LjZ6TTQzLjMgNDEwLjJjLTQ1LjQtMTIuOC01My0zOS41LTMyLjMtNTQuOCAxOS4xLTE0LjIgNTEuNy0yNC45IDUxLjctMjQuOWwxMzQuNS00Ny44IDAgNTQuNS05Ni44IDM0LjZjLTE3LjEgNi4xLTE5LjcgMTQuOC01LjggMTkuNHMzOS4xIDMuMyA1Ni4yLTIuOWw0Ni40LTE2LjkgMCA0OC44Yy01MS42IDkuMy0xMDEuNCA3LjMtMTUzLjktMTB6Il19LENtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaWNyb2Jsb2ciLGljb246WzQ0OCw1MTIsW10sImUwMWEiLCJNMzk5LjggMzYyLjJjMjkuNS0zNC43IDQ3LjEtNzguMyA0Ny4xLTEyNS44IDAtMTEzLTk5LjYtMjA0LjQtMjIyLjUtMjA0LjRTMiAxMjMuNSAyIDIzNi40IDEwMS42IDQ0MC45IDIyNC41IDQ0MC45YzI3IDAgNTMuOS00LjUgNzkuNC0xMy40IDEuNC0uNSAzLS41IDQuNS0uMXMyLjcgMS40IDMuNiAyLjZjMTguNiAyNS4xIDQ3LjYgNDIuNyA3OS45IDQ5LjkgMS4xIC4yIDIuMyAwIDMuMy0uNnMxLjctMS42IDEuOS0yLjhjLjEtLjYgLjEtMS4zIDAtMS45cy0uNC0xLjItLjgtMS43Yy0xMi4zLTE2LTE4LjctMzUuOC0xOC01NnM4LjQtMzkuNSAyMS43LTU0LjdsLS4yIC4xek0zMzAgMjEyLjRsLTU3LjMgNDMuNSAyMC44IDY4LjljLjQgMS4zIC40IDIuNy0uMSA0cy0xLjIgMi40LTIuMyAzLjItMi40IDEuMi0zLjggMS4yLTIuNy0uNC0zLjgtMS4ybC01OS4xLTQxLTU5LjEgNDEuMWMtMS4xIC44LTIuNCAxLjItMy44IDEuMnMtMi43LS40LTMuOC0xLjItMS45LTEuOS0yLjMtMy4yLS41LTIuNy0uMS00bDIwLjgtNjguOS01Ny4zLTQzLjVjLTEuMS0uOC0xLjktMS45LTIuMy0zLjJzLS40LTIuNyAwLTQgMS4yLTIuNCAyLjMtMy4yIDIuNC0xLjMgMy43LTEuM2w3MS45LTEuNSAyMy43LTY3LjljLjQtMS4zIDEuMy0yLjQgMi40LTMuMnMyLjQtMS4yIDMuOC0xLjIgMi43IC40IDMuOCAxLjIgMS45IDEuOSAyLjQgMy4ybDIzLjcgNjcuOSA3MS45IDEuNWMxLjQgMCAyLjcgLjQgMy44IDEuMnMxLjkgMS45IDIuMyAzLjIgLjQgMi43IDAgNC0xLjIgMi40LTIuMyAzLjNsMCAweiJdfSx6bXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0a3Jha2VuIixpY29uOls1NzYsNTEyLFtdLCJmM2E2IiwiTTU1Ny43IDExOC4xYy0yLjMtNi4xLTkuMy05LjItMTUuMy02LjYtNS43IDIuNC04LjUgOC45LTYuMyAxNC42IDEwLjkgMjkgMTYuOSA2MC41IDE2LjkgOTMuMyAwIDEzNC42LTEwMC4zIDI0NS43LTIzMC4yIDI2Mi43bDAtMTIzLjdjNy45LTEuNSAxNS41LTMuNiAyMy02LjJsMCAxMDRjMTA2LjctMjUuOSAxODUuOS0xMjIuMSAxODUuOS0yMzYuOCAwLTkxLjgtNTAuOC0xNzEuOC0xMjUuOC0yMTMuMy01LjctMy4yLTEzLS45LTE1LjkgNS0yLjcgNS41LS42IDEyLjIgNC43IDE1LjEgNjcuOSAzNy42IDExMy45IDExMCAxMTMuOSAxOTMuMiAwIDkzLjMtNTcuOSAxNzMuMS0xMzkuOCAyMDUuNGwwLTkyLjJjMTQuMi00LjUgMjQuOS0xNy43IDI0LjktMzMuNSAwLTEzLjEtNi44LTI0LjQtMTcuMy0zMC41IDguMy03OS41IDQ0LjUtNTguNiA0NC41LTgzLjlsMC0xNC43YzAtMzgtODcuOS0xNjEuOC0xMjktMTY0LjctMi41LS4yLTUtLjItNy42IDAtNDEuMiAzLTEyOS4xIDEyNi43LTEyOS4xIDE2NC43bDAgMTQuOGMwIDI1LjMgMzYuMyA0LjMgNDQuNSA4My45LTEwLjYgNi4xLTE3LjMgMTcuNC0xNy4zIDMwLjUgMCAxNS44IDEwLjYgMjkgMjQuOCAzMy41bDAgOTIuMmMtODEuOS0zMi4yLTEzOS44LTExMi0xMzkuOC0yMDUuNCAwLTgzLjEgNDYtMTU1LjUgMTEzLjktMTkzLjIgNS40LTMgNy40LTkuNiA0LjctMTUuMS0yLjktNS45LTEwLjEtOC4yLTE1LjktNS03NSA0MS41LTEyNS44IDEyMS41LTEyNS44IDIxMy4zIDAgMTE0LjcgNzkuMiAyMTAuOCAxODUuOSAyMzYuOGwwLTEwNGM3LjYgMi41IDE1LjEgNC42IDIzIDYuMmwwIDEyMy43Yy0xMjkuOC0xNy0yMzAuMi0xMjguMS0yMzAuMi0yNjIuNyAwLTMyLjggNi02NC4zIDE2LjktOTMuMyAyLjItNS44LS42LTEyLjItNi4zLTE0LjYtNi0yLjYtMTMgLjQtMTUuMyA2LjYtMTEuOCAzMS41LTE4LjMgNjUuNi0xOC4zIDEwMS4zIDAgMTU1LjEgMTIyLjYgMjgxLjYgMjc2LjMgMjg3LjhsMC0xNDUuOWM2LjggLjQgMTUgLjUgMjMuNCAwbDAgMTQ1LjhjMTUzLjctNi4xIDI3Ni4zLTEzMi42IDI3Ni4zLTI4Ny43IDAtMzUuNy02LjUtNjkuOC0xOC4zLTEwMS40ek0zNTcuOSAzMjIuOWEyMy43IDIzLjcgMCAxIDEgMC00Ny40IDIzLjcgMjMuNyAwIDEgMSAwIDQ3LjR6TTIxOC4xIDI3NS40YTIzLjcgMjMuNyAwIDEgMSAwIDQ3LjQgMjMuNyAyMy43IDAgMSAxIDAtNDcuNHoiXX0sb0llPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlbGVncmFtIixpY29uOls1MTIsNTEyLFs2MjQ2MiwidGVsZWdyYW0tcGxhbmUiXSwiZjJjNiIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM3MSAxNzYuN2MtMy43IDM5LjItMTkuOSAxMzQuNC0yOC4xIDE3OC4zLTMuNSAxOC42LTEwLjMgMjQuOC0xNi45IDI1LjQtMTQuNCAxLjMtMjUuMy05LjUtMzkuMy0xOC43LTIxLjgtMTQuMy0zNC4yLTIzLjItNTUuMy0zNy4yLTI0LjUtMTYuMS04LjYtMjUgNS4zLTM5LjUgMy43LTMuOCA2Ny4xLTYxLjUgNjguMy02Ni43IC4yLS43IC4zLTMuMS0xLjItNC40cy0zLjYtLjgtNS4xLS41Yy0yLjIgLjUtMzcuMSAyMy41LTEwNC42IDY5LjEtOS45IDYuOC0xOC45IDEwLjEtMjYuOSA5LjktOC45LS4yLTI1LjktNS0zOC42LTkuMS0xNS41LTUtMjcuOS03LjctMjYuOC0xNi4zIC42LTQuNSA2LjctOSAxOC40LTEzLjcgNzIuMy0zMS41IDEyMC41LTUyLjMgMTQ0LjYtNjIuMyA2OC45LTI4LjYgODMuMi0zMy42IDkyLjUtMzMuOCAyLjEgMCA2LjYgLjUgOS42IDIuOSAyIDEuNyAzLjIgNC4xIDMuNSA2LjcgLjUgMy4yIC42IDYuNSAuNCA5Ljh6Il19LF9tcj1vSWUsVG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzIixpY29uOls1MTIsNTEyLFtdLCJlODZkIiwiTTM5MS40IDM5LjdjNjUuOC0uMiAxMTguNiA1MS44IDEyMC40IDExNi42IC43IDI2LjQtMS41IDU0LjEtMy44IDc0LjEtMTcuMiAxNDguNi0xMjIuNCAyNDItMjUyLjQgMjQyLTk1LjQtLjEtMTc5LjQtNTIuNy0yMjMuMi0xMzAuNiAyNC40IDE3LjQgNTQuNSAyNy40IDg3LjYgMjcuNCA4My4yIC4xIDE1MS40LTY3LjQgMTUxLjItMTUwbC4xLTYwLjZjLS4yLTY1LjcgNTMuOS0xMTkgMTIwLjEtMTE4Ljl6TTExOS45IDEwMC4yYzY2LjIgMCAxMTkuOSA1My4zIDExOS45IDExOVMxODYuMSAzMzguMyAxMTkuOSAzMzguMyAwIDI4NSAwIDIxOS4zYzAtNjUuNyA1My43LTExOSAxMTkuOS0xMTl6Il19LExtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMtbm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjNiNSIsIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yIC44LTUuMiAzLTkuNiA3LjEtMTIuOSA0LjItMy41IDExLjgtNS41IDEzLjQtNS41IDIwNC0zOC4yIDIyOC45LTQzLjEgMjMyLjQtNDMuMSAxMS41LS44IDE4LjEgNiAxOC4xIDE3LjYgLjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6Il19LERtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFkIiwiTTYxMy4yIDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJsLTIwLjUgMCAwIDI0LjIgNi4zIDBjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM2wwIDEuNmMtMTUuOCAzLjctMjMuNiAxMy4xLTIzLjYgMzcuMyAwIDE4LjkgMS42IDM0LjIgMS42IDUxLjUgMCAxNy45LTMuNyAyMi42LTE3LjMgMjIuNmwwIC41LTYuMyAwIDAgMjUuMiAyMC41IDBjMjcuOCAwIDQwLjUtMTEgNDAuNS00NS4yIDAtMjIuNi0zLjItMzQuMi0zLjItNTQuNiAwLTExIDYuOC0yMi42IDI3LjMtMjMuNmwwLTI3LjNjLTIwLjUtLjctMjcuMy0xMi4zLTI3LjMtMjMuM3pNNTA3LjYgMjUxYy0xNS44LTYuMy0zMC41LTEwLTMwLjUtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjEgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxcy0yMi41LTQxLTQzLTQ3Ljh6TTE0OC43IDMxMC40Yy0zLjcgMC04LjQtMy4yLTguNC0xMy4xbDAtMTc4LjItNzQuNiAwYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZsMCAyNy4zYzIwLjUgLjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4ybDIwLjUgMCAwLTI0LjItNi4zIDBjLTEzLjEgMC0xNy4zLTUuMy0xNy4zLTIyLjZzMS42LTMyLjEgMS42LTUxLjVjMC0yNC4yLTcuOS0zMy42LTIzLjYtMzcuM2wwLTEuNmMxNS44LTMuNyAyMy42LTEzLjEgMjMuNi0zNy4zIDAtMTguOS0xLjYtMzQuMi0xLjYtNTEuNXMzLjctMjIuMSAxNy4zLTIyLjFsMTQuMSAwIDAgMTUwLjhjMCAzMi4xIDExIDUzLjEgNDMuMSA1My4xIDEwIDAgMTcuOS0xLjYgMjMuNi0zLjdsLTUuMy0zNC4yYy0zLjEgLjgtNC42IC44LTYuMiAuOHpNMzgwLjQgMjUxYy0xNi4zLTYuMy0zMS0xMC0zMS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMC41IDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MSAuMS0yOC45LTIyLjUtNDEtNDMtNDcuOHptLTE1NS02OC44Yy0zOC40IDAtNzUuMSAzMi4xLTc0LjEgODIuNSAwIDUyIDM0LjIgODIuNSA3OS4zIDgyLjUgMTguOSAwIDM5LjktNi44IDU2LjItMTcuOUwyNzEgMzAxLjVjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ybDk1LjIgMGMuNS0zLjcgMS42LTExIDEuNi0xOS40IC42LTQyLjYtMjIuNi03NS43LTY2LjctNzUuN3ptLTMwIDY2LjJjMy4yLTIxIDE1LjgtMzEgMzAuNS0zMSAxOC45IDAgMjYuMyAxMy4xIDI2LjMgMzFsLTU2LjggMHoiXX0sJG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3giLGljb246WzUxMiw1MTIsW10sImYyNjkiLCJNNTAzLjUgMjQxLjVjLS4xLTEuNi0uMi0zLjEtLjItNC43bDAtLjEtLjQtNC43IDAtLjFjLTEuMy0xMy45LTMuNy0yNy43LTcuMy00MS4yIDAtLjEgMC0uMS0uMS0uMmwtMS4xLTRjLS4xLS4yLS4xLS41LS4yLS42LS40LTEuMi0uNy0yLjUtMS4xLTMuNy0uMS0uMi0uMS0uNi0uMi0uOC0uNC0xLjItLjctMi40LTEuMS0zLjUtLjEtLjQtLjItLjYtLjQtMS0uNC0xLjItLjctMi4zLTEuMi0zLjVsLS40LTEuMWMtLjQtMS4xLS44LTIuMy0xLjItMy40LS4xLS4zLS4yLS43LS40LTEtLjUtMS4xLS44LTIuMy0xLjMtMy40LS4xLS4yLS4yLS42LS40LS44LS41LTEuMi0xLTIuMy0xLjQtMy41IDAtLjEtLjEtLjItLjEtLjQtMS42LTMuOC0zLjItNy43LTUtMTEuNGwtLjQtLjdjLS41LTEtLjgtMS44LTEuMy0yLjYtLjItLjUtLjUtMS4xLS43LTEuNi0uNC0uOC0uOC0xLjYtMS4yLTIuNC0uNC0uNi0uNi0xLjItMS0xLjhzLS44LTEuNC0xLjItMi4zYy0uNC0uNi0uNy0xLjMtMS4xLTEuOXMtLjgtMS40LTEuMi0yLjJjLS40LS43LS44LTEuNC0xLjItMi0uNC0uNy0uOC0xLjMtMS4yLTJzLS44LTEuMy0xLjItMi0uOC0xLjMtMS4yLTEuOS0uOC0xLjQtMS4zLTIuMmMtLjQtLjYtLjgtMS4yLTEuMi0xLjhsLTEuNC0yLjFjLS40LS42LS44LTEuMi0xLjItMS44LS41LS43LTEuMS0xLjYtMS42LTIuMy0uNC0uNS0uNy0xLjEtMS4xLTEuNmwtMS44LTIuNWMtLjQtLjUtLjYtLjgtMS0xLjMtMS0xLjMtMS44LTIuNS0yLjgtMy43LTcuMi05LjQtMTUtMTguMy0yMy41LTI2LjYtNS43LTYtMTEuOC0xMS41LTE4LjMtMTYuNy00LTMuNS04LjItNi43LTEyLjUtOS44LTcuNy01LjgtMTYtMTAuOC0yNC42LTE1LjEtMi40LTEuMy00LjgtMi41LTcuMi0zLjctMTcuNy04LjYtMzYuMy0xNS4yLTU1LjQtMTkuNi0xLjktLjQtMy44LS44LTUuNi0xLjJsLS4xIDBjLTEtLjEtMS44LS40LTIuOC0uNS0xMi41LTIuNC0yNS4yLTMuNy0zOC00bC0xMC42IDBjLTE1LjMgLjItMzAuNSAxLjktNDUuNSA1LTMzLjYgNy4xLTYzLjIgMjEuMi04Mi45IDM5LTEuMSAxLTEuOSAxLjctMi40IDIuMmwtLjUgLjUgLjEgMGMwIDAgLjEgMCAuMSAwczAtLjEgMC0uMWwtLjEgLjFjLjEtLjEgLjEtLjEgLjItLjEgMTQuNi04LjggMzQuOS0xNiA0OS40LTE5LjZsNS45LTEuNGMuNC0uMSAuOC0uMSAxLjItLjIgMS43LS40IDMuNC0uNyA1LjItMS4xIC4yIDAgLjYtLjEgLjgtLjEgNjQuMi0xMS43IDEzMi42IDcuNSAxODAuMiA1MyAxMC4zIDkuOCAxOS4zIDIwLjggMjYuOSAzMi44IDMwLjQgNDkuMiAyNy41IDExMS4xIDMuOCAxNDcuNi0zNC40IDUzLTExMS40IDcxLjMtMTU5IDI0LjgtMTYtMTUuNS0yNS4yLTM2LjctMjUuNi01OS0uMi0xMC43IDItMjEuMiA2LjItMzEgMS43LTMuOCAxMy4xLTI1LjcgMTguMi0yNC42LTEzLjEtMi44LTM3LjUgMi42LTU0LjcgMjguMi0xNS40IDIyLjktMTQuNSA1OC4yLTUgODMuMy02LTEyLjQtMTAuMS0yNS42LTEyLjEtMzkuMi0xMi4yLTgyLjYgNDMuMy0xNTMgOTQuMy0xNzAuNS0yNy41LTI0LTk2LjUtMjIuMy0xNDcuNyAxNS40LTI5LjkgMjItNTEuMiA1My4yLTYyLjUgOTAuNCAxLjctMjAuOSA5LjYtNTIuMSAyNS44LTgzLjktMTcuMiA4LjktMzkgMzctNDkuOCA2Mi45LTE1LjYgMzcuNC0yMSA4Mi4yLTE2LjEgMTI0LjggLjQgMy4yIC43IDYuNCAxLjEgOS42IDE5LjkgMTE3LjEgMTIyIDIwNi40IDI0NC44IDIwNi40IDEzNy4xIDAgMjQ4LjMtMTExLjIgMjQ4LjMtMjQ4LjQtLjEtNC41LS4yLTkuMS0uNS0xMy41eiJdfSxBbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FnZ2xlIixpY29uOlszMjAsNTEyLFtdLCJmNWZhIiwiTTMwNC4yIDUwMS41TDE1OC40IDMyMC4zIDI5OC4yIDE4NWMyLjYtMi43IDEuNy0xMC41LTUuMy0xMC41bC02OS4yIDBjLTMuNSAwLTcgMS44LTEwLjUgNS4zbC0xMzIuMyAxMzMuNyAwLTMwNmMwLTUtMi41LTcuNS03LjUtNy41TDIxLjUgMEMxNi41IDAgMTQgMi41IDE0IDcuNWwwIDQ5N2MwIDUgMi41IDcuNSA3LjUgNy41bDUxLjkgMGM1IDAgNy41LTIuNSA3LjUtNy41bDAtMTA5IDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zbDY2LjkgMGMzLjUgMCA1LjUtMSA2LTNsLTEuNC03LjZ6Il19LEVtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImYzOWYiLCJNMjU2LjYgOGMtMTQwIDAtMjQ4LjYgMTAyLjMtMjQ4LjYgMjQwLjYgMCA3Mi4zIDI5LjcgMTM0LjggNzguMSAxNzcuOSA4LjMgNy41IDYuNiAxMS45IDggNTguMiAuMSAzLjIgMSA2LjQgMi42IDkuMnMzLjkgNS4yIDYuNyA2LjkgNS45IDIuOCA5LjEgMyA2LjUtLjMgOS41LTEuNkMxNzQuOSA0NzkgMTc1LjYgNDc3LjIgMTg0LjYgNDc5LjYgMzM3LjggNTIxLjggNTA0IDQyMy43IDUwNCAyNDguNiA1MDQgMTEwLjMgMzk2LjYgOCAyNTYuNiA4ek00MDUuOCAxOTMuMWwtNzMgMTE1LjZjLTIuOCA0LjMtNi40IDguMS0xMC42IDExcy05LjEgNC44LTE0LjEgNS44LTEwLjMgLjgtMTUuMy0uNC05LjctMy40LTEzLjgtNi40bC01OC4xLTQzLjVjLTIuNi0xLjktNS44LTMtOS0zcy02LjQgMS4xLTkgM2wtNzguNCA1OS40Yy0xMC41IDcuOS0yNC4yLTQuNi0xNy4xLTE1LjdsNzMtMTE1LjZjMi44LTQuMyA2LjQtOC4xIDEwLjYtMTFzOS4xLTQuOCAxNC4xLTUuOCAxMC4zLS44IDE1LjMgLjQgOS43IDMuNCAxMy45IDYuNGw1OC4xIDQzLjVjMi42IDEuOSA1LjggMyA5IDNzNi40LTEuMSA5LTNsNzguNC01OS40YzEwLjQtOCAyNC4xIDQuNSAxNy4xIDE1LjZ6Il19LEltcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdWRpYmxlIixpY29uOls2NDAsNTEyLFtdLCJmMzczIiwiTTY0MCAxOTkuOWwwIDU0LTMyMCAyMDAtMzIwLTE5OS45IDAtNTQgMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjZzLTEzNS41IDM2LjctMTcyLjYgOTIuNGwuMyAwYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6TTIyNS40IDI5MC43YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMUMyMzUuNCA1Ni44IDQyMS44IDg0LjcgNTIxLjEgMjIzLjJsLjcgMSA0OC44LTMwLjRjLTUzLjUtODEuNy0xNDUuOC0xMzUuNy0yNTAuNy0xMzUuNy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnoiXX0sUG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhdHJlb24iLGljb246WzUxMiw1MTIsW10sImYzZDkiLCJNNDkwIDE1My44Yy0uMS02NS40LTUxLTExOS0xMTAuNy0xMzguMy03NC4yLTI0LTE3Mi0yMC41LTI0Mi45IDEyLjktODUuOCA0MC41LTExMi44IDEyOS4zLTExMy44IDIxNy44LS44IDcyLjggNi40IDI2NC40IDExNC42IDI2NS44IDgwLjMgMSA5Mi4zLTEwMi41IDEyOS41LTE1Mi4zIDI2LjQtMzUuNSA2MC41LTQ1LjUgMTAyLjQtNTUuOSA3Mi0xNy44IDEyMS4xLTc0LjcgMTIxLTE1MGwtLjEgMHoiXX0sTm1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZudiIsaWNvbjpbNjQwLDUxMixbXSwiZjQwYiIsIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJsMzIuOCAwYzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWwzMi44IDBjMjAuOCAwIDEwLjQgMTguMSAxMC40IDE4LjFMMTg2LjQgMzIxLjZTMTc0LjIgMzUyIDE0MCAzNTJsLTM1LjEgMHptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDM5Ny42IDIxMC4xUzM4Ny4yIDE5MiA0MDggMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOSAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDU4MS41IDMyMS42UzU2OS4zIDM1MiA1MzUuMSAzNTJsLTM1LjIgMHpNMzM3LjYgMTkyYzM0LjEgMCA0Ni40IDMwLjQgNDYuNCAzMC40bDU1LjkgMTExLjVTNDUwLjMgMzUyIDQyOS41IDM1MmwtMzIuOCAwYy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMS0yMS4xIDEzLjEtMjEuMSAxMy4xbC0zNi43IDc0LjVjLTUuNiA5LjQtOC40IDE4LjEtMTguOCAxOC4xbC0zMi45IDBjLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVTMjY4LjMgMTkyIDMwMi41IDE5MmwzNS4xIDB6Il19LE9tcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlbGluZXMiLGljb246WzM4NCw1MTIsW10sImYxOGMiLCJNMzg0LjEgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40IC41IDEuNiAuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIweiJdfSxSbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uIixpY29uOls0NDgsNTEyLFtdLCJmMjcwIiwiTTI1Ny43IDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2cy0zMi4zLTI1LjMtMzIuMy01Mi44bDAtMTQ3LjFDMzQxLjUgODkgMzE3IDMyIDIyOS4yIDMyIDE0MS4yIDMyIDk0LjUgODcgOTQuNSAxMzYuM2w3My41IDYuOGMxNi4zLTQ5LjUgNTQuMi00OS41IDU0LjItNDkuNSA0MC43LS4xIDM1LjUgMjkuOCAzNS41IDY5LjF6bTAgODYuOGMwIDgwLTg0LjIgNjgtODQuMiAxNy4yIDAtNDcuMiA1MC41LTU2LjcgODQuMi01Ny44bDAgNDAuNnpNMzkzLjcgNDEzYy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuNyA0MDguNSAxMC4yIDM3OWMtNi44LTcuNyAxLTExLjMgNS41LTguMyA3My4zIDQ0LjUgMTg3LjggMTE3LjggMzcyLjUgMzAuMyA3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xeiJdfSxGbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW52aXJhIixpY29uOls0NDgsNTEyLFtdLCJmMjk5IiwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM2w4MC45IDgxLjctMjYgMC03MC40LTcxLjJDMzEyLjYgNDEzIDIyNy4yIDQ0My4zIDEzNy4yIDM3MS44IDQ3IDMwMC4zIDUyIDIxNC43IDAgMzJ6TTc5LjcgNzhjLTQ5LjctMjMuNS01LjIgOS4yLTUuMiA5LjIgNDUuMiAzMS4yIDY2IDczLjcgOTAuMiAxMTkuOSAzMS41IDYwLjIgNzkgMTM5LjcgMTQ0LjIgMTY3LjcgNjUgMjggMzQuMiAxMi41IDYtOC41LTI4LjItMjEuMi02OC4yLTg3LTkxLTEzMC4yLTMxLjctNjAtNjEtMTE4LjYtMTQ0LjItMTU4LjF6Il19LEJtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5vZGUiLGljb246WzQ0OCw1MTIsW10sImYyYjgiLCJNMzY2LjMgMTg2LjlsLTU5LjUgMzYuOS0uOCAzNi45LTI5LjMtMTkuMy0zOS40IDI0LjNjMi4yIDU1LjIgMi41IDU5LjMgMi41IDU5LjVsLTk3LjIgNjUuNC0xNS4xLTEwNC43IDEwOC4xLTYyLTQwLjItMjYtNzUuNCAzOC41LTIxLTE0My4zIDEyOS00OS40LTkxLjMtNDMuNi0xMjUuNyAzOS40IDI3LjcgMTM0LjkgNDEuOSAzMi43LTMxLjggMTUuMSAyMC45IDEwMS40IDI5LjMgMjcuNy0yMC45IDEyLjYgMTYuOCA3OC44IDY2LjIgNjkuNmMtMTAuOC03NC44LTExLjctNzguNi0xMS43LTc4LjhsNzcuOS01NS4zQzI0NCAzNjUuNCAyNDIuMyAzNjcgMjQyLjMgMzY3bC44IDI0LjMgMzMuNSAyOC41LS44LTc3LjEgNDYuOS0zMy41IDI2LjgtMTguNC0yLjUgMzYgMjUuMSAxNy42IDYuNy03NC42IDU4LjctNDMuNi03MS4yLTM5LjR6Il19LEhtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2N1c29mdCIsaWNvbjpbNjQwLDUxMixbXSwiZjM2OSIsIk0zMjIuMSAyNTJsMC0xLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNyAuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNiAuNS0uNi0uMS0uMSAuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6TTQ4Mi4yIDM3Mi4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOCAuNS0xMTYuNSAuNi0xOS4yIC4xLTMyLjktLjMtMTkuMiAxNi45IDcuNyA5LjUgMjM0LjIgMjk5LjcgMjM5LjkgMzA2LjZ6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xIC4yLTkuNiAuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNiAuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcgLjggMzAwLjkgNjcuNiAzMDggNjkuMSAxNS42IDMuMyAzOC41IDEwLjUgNTMuNiAxLjcgMi4xLTEuMiAxMjMuOC03Ni40IDEyNS44LTc3LjggNS40LTQgNC4zLTYuOC0xLjctOC4yeiJdfSxxbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXJsYW5nIixpY29uOls2NDAsNTEyLFtdLCJmMzlkIiwiTTg3LjIgNTMuNWwtODcuMiAwIDAgNDA1IDEwMC40IDBjLTQ5LjctNTIuNi03OC44LTEyNS4zLTc4LjctMjEyLjEtLjEtNzYuNyAyNC0xNDIuNyA2NS41LTE5Mi45em0yMzguMiA5LjdjLTQ1LjkgLjEtODUuMSAzMy41LTg5LjIgODMuMmwxNjkuOSAwYy0xLjEtNDkuNy0zNC41LTgzLjEtODAuNy04My4yem0yMzAuNy05LjZsLjMgMC0uMS0uMS0uMiAuMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcgLjUgNiAuNSAxMS43IDAgMjQuMWwtMzcyLjQgMGMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44bDgwLjggMCAwLTQwNS04My42IDB6Il19LFZtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmlzb24iLGljb246WzUxMiw1MTIsW10sImU4NTQiLCJNNDM1LjEgMTYxLjdhMTMuOSAxMy45IDAgMSAxIDE5LjYtMTkuNyAxMy45IDEzLjkgMCAxIDEgLTE5LjYgMTkuN3pNMzY5LjcgOTcuOGMxMC40IDIuMSAyMC42IDUuMiAzMC40IDkuMiA2LjggMi44IDEwLjEgMTAuOCA3LjMgMTcuNy0yLjggNi43LTEwLjkgMTAuMS0xNy42IDcuMy04LjMtMy40LTE2LjgtNS44LTI1LjctNy44LTguNi0xLjctMTcuMy0yLjUtMjYtMi41LTE5LjMgMC0zNy4xLTEwLjMtNDYuNy0yNy04LjctMTUuMS0yMC42LTI4LjktMzQuNy0zOS43LTU5LjEtNDUuNS0xNDMuOC0zNC4zLTE4OS4yIDI1LTIuNiAzLjMtNi41IDUuMy0xMC43IDUuMy03LjQgMC0xMy41LTYuMS0xMy41LTEzLjUgMC0zLjIgMS4yLTYuMyAzLjItOC44IDEyLjktMTYuNyAyOC45LTMwLjcgNDcuMS00MS4yIDc3LjQtNDQuOCAxNzYuNC0xOC4yIDIyMS4xIDU5LjQgNC4zIDguMiAxMy43IDEzLjMgMjIuOCAxMy41IDEwLjggMCAyMS42IDEgMzIuMiAzLjF6TTM1IDI3MGM0LjYtOC4yIDQuNi0xOC4yIDAtMjYuNC0yMS45LTM2LjUtMjcuMy04Mi4zLTE2LjMtMTIzLjIgMS42LTUuOSA2LjktMTAgMTMtMTAgOC43IDAgMTUuMyA4LjcgMTMgMTctOS41IDM1LjQtMy40IDcxIDEzLjcgMTAyLjkgOS4zIDE2LjUgOS4zIDM2LjcgMCA1My4xLTguNyAxNS43LTE0LjggMzIuNC0xNy4yIDUwLjMtOS43IDczLjkgNDIuMyAxNDEuNyAxMTYuMiAxNTEuNCA3LjMgMSAxMi42IDcuOSAxMS42IDE1LjItMSA3LjMtNy44IDEyLjYtMTUuMSAxMS42LTIxLjEtMi44LTQxLjQtOS43LTU5LjgtMjAuMy03NS42LTQzLjYtMTA0LjktMTQ1LjgtNTkuMi0yMjEuNXpNMjE2LjkgNTA5Yy03LjQgMi0xNS4xLTIuNC0xNy4xLTkuOHMyLjUtMTUgOS45LTE2LjljOC41LTIuMiAxNy40IDQuNSAxNy40IDEzLjQgMCA2LjItNC4yIDExLjYtMTAuMiAxMy4zem0xMjIuMy05MWMtOS41IDAtMTguNCA1LTIzLjIgMTMuMi00LjkgOS40LTExLjcgMTguMi0xOC43IDI2LjJsMCAwYy03LjEgOC0xNC44IDE1LjItMjMuMiAyMS43LTUuOSA0LjUtMTQuNCAzLjQtMTktMi41cy0zLjQtMTQuNCAyLjUtMTguOWM3LTUuNCAxMy41LTExLjUgMTkuNC0xOC4xbDAgMGM1LjktNi42IDExLjEtMTMuOCAxNS41LTIxLjYgOS43LTE2LjcgMjcuNS0yNyA0Ni44LTI3IDE3LjggMCAzNS40LTMuNSA1MS44LTEwLjMgNjguMy0yOC4zIDEwMS4xLTEwOC4zIDczLjItMTc2LjUtLjYtMS42LTEtMy4zLTEtNSAwLTcuNCA2LjEtMTMuNSAxMy41LTEzLjUgNS40IDAgMTAuMyAzLjIgMTIuNCA4LjIgOC4yIDE5LjcgMTIuNCA0MC44IDEyLjQgNjIuMSAwIDg5LjUtNzIuNyAxNjIuMS0xNjIuNCAxNjIuMWwwIDB6bS0xMy4xLTI2OGMzLjktLjQgNy45LS42IDExLjktLjYgNTkuMyAwIDEwOC4yIDQ4LjcgMTA4LjIgMTA3LjhTMzk3LjMgMzY1IDMzOCAzNjVjLTQgMC03LjktLjItMTEuOC0uNi0yMi4yLTEuNy00My4zIDEwLjQtNTIuOSAzMC40LTE3LjIgMzkuMS01Ni4yIDY0LjUtOTkuMSA2NC41LTU5LjMgMC0xMDguMi00OC43LTEwOC4yLTEwNy44IDAtMjMuMiA3LjUtNDUuNyAyMS40LTY0LjMgMTIuMi0xOC4zIDEyLjEtNDIuMy0uNC02MC41LTEzLjYtMTguNS0yMC45LTQwLjgtMjAuOS02My43IDAtNTkuMSA0OC44LTEwNy44IDEwOC4yLTEwNy44IDQyLjggMCA4MS44IDI1LjQgOTkgNjQuNCA5LjYgMjAgMzAuNyAzMi4xIDUyLjkgMzAuNHpNMTA2LjggMzkzLjRjMTQuNCAyNS4yIDQxLjEgNDAuOCA2OS44IDQwLjggNDQuMiAwIDgwLjYtMzYuOCA4MC42LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjZjLTE0LjIgMC0yOC4xIDMuOC00MC4zIDEwLjktMzguMyAyMi40LTUxLjYgNzIuNy0yOS41IDExMS40ek0yNjggMjk4YzE0LjQgMjUuMiA0MS4xIDQwLjggNjkuOCA0MC44IDQ0LjIgMCA4MC42LTM2LjggODAuNi04MS42cy0zNi40LTgxLjYtODAuNi04MS42Yy0xNC4yIDAtMjguMSAzLjgtNDAuMyAxMC45LTM4LjMgMjIuNC01MS42IDcyLjctMjkuNSAxMTEuNHptLTkxLjItNTQuNmM0NC4yIDAgODAuNS0zNi44IDgwLjUtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNi04MC42IDM2LjgtODAuNiA4MS42YzAgNDQuNyAzNi40IDgxLjYgODAuNiA4MS42eiJdfSxqbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGlzY292ZXIiLGljb246WzU3Niw1MTIsW10sImYxZjIiLCJNNTIwLjQgMTk2LjFjMC03LjktNS41LTEyLjEtMTUuNi0xMi4xbC00LjkgMCAwIDI0LjkgNC43IDBjMTAuMyAwIDE1LjgtNC40IDE1LjgtMTIuOHpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4My45IDE3MC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjQtMTkuNiAwLTIyLjItMzIuOC0yLjIgMCAwIDMyLjgtMTYgMCAwLTgyek00MjggMTcxbDQ1LjMgMCAwIDE0LTI5LjMgMCAwIDE4LjIgMjguMyAwIDAgMTMuOC0yOC4zIDAgMCAyMi4yIDI5LjMgMCAwIDEzLjgtNDUuMyAwIDAtODJ6bS02OC43IDBsMjEuOSA1NS4yIDIyLjItNTUuMiAxNy41IDAtMzUuNSA4NC4yLTguNiAwLTM1LTg0LjIgMTcuNSAwem0tNTUuOSA4Ni4yYTQ0LjYgNDQuNiAwIDEgMSAwLTg5LjIgNDQuNiA0NC42IDAgMSAxIDAgODkuMnptLTQ5LjMtODMuMWwwIDE5Yy0yMC4xLTIwLjEtNDYuOC00LjctNDYuOCAxOSAwIDI1IDI3LjUgMzguNSA0Ni44IDE5LjJsMCAxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNsLTIzLjQgMCAwLTgyIDIzLjQgMGMyNi4xIDAgNDQuMSAxNyA0NC4xIDQxLjEgMCAxOC41LTEzLjIgNDAuOS00NC4xIDQwLjl6bTY3LjUgMGwtMTYgMCAwLTgyIDE2IDAgMCA4MnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVsLTQwMSAwYzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MGwwIDE0NXpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNmwtNC4yIDAgMCA1NC4yIDQuMiAwYzEwLjMgMCAxNy0yIDIxLjktNi40IDUuNy01LjIgOC45LTEyLjggOC45LTIwLjdzLTMuMi0xNS41LTguOS0yMC41eiJdfSxVbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FmYXJpIixpY29uOls1MTIsNTEyLFtdLCJmMjY3IiwiTTI3NC43IDI3NC43TDIzNy4zIDIzNy4zIDE2NiAzNDYgMjc0LjcgMjc0Ljd6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDExLjggMTgyLjhsMTQuOC02LjFjMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOCAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS4zLTIuNiAxLjdMNDE4IDE5Ny42Yy0yIC44LTQuMiAuOC02LjEgMHMtMy41LTIuNC00LjMtNC4zLS44LTQuMiAwLTYuMSAyLjQtMy41IDQuMy00LjN6TTMxNC40IDk0bDYuMS0xNC44Yy44LTIgMi40LTMuNSA0LjMtNC4zczQuMi0uOCA2LjEgMCAzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xbC02LjEgMTQuOGMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGMtMS0uNC0xLjktMS0yLjYtMS43cy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMXpNMjU2IDYwYzIuMSAwIDQuMiAuOCA1LjcgMi4zUzI2NCA2NS45IDI2NCA2OGwwIDE2YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTMjUzLjkgNjAgMjU2IDYwek0xODEgNzQuOWMxLS40IDItLjYgMy4xLS42czIuMSAuMiAzLjEgLjYgMS45IDEgMi42IDEuNyAxLjMgMS42IDEuNyAyLjZMMTk3LjYgOTRjLjQgMSAuNyAyIC43IDMuMXMtLjIgMi4xLS42IDMuMS0xIDEuOS0xLjcgMi42LTEuNiAxLjQtMi42IDEuOC0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjgtMS4zLTEuNy0xLjctMi43bC02LjEtMTQuOGMtLjgtMi0uOC00LjIgMC02LjFzMi40LTMuNSA0LjMtNC4zem0tNjMuNiA0Mi41YzEuNS0xLjUgMy41LTIuMyA1LjctMi4zczQuMiAuOCA1LjcgMi4zTDE0MCAxMjguN2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM2wtMTEuMy0xMS4zYy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuNnMuOC00LjEgMi4zLTUuNmwwIDB6TTYwIDI1NmMwLTIuMSAuOC00LjIgMi4zLTUuN1M2NS45IDI0OCA2OCAyNDhsMTYgMGMyLjEgMCA0LjIgLjggNS43IDIuM3MyLjMgMy41IDIuMyA1LjctLjggNC4yLTIuMyA1LjctMy41IDIuMy01LjcgMi4zbC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM1M2MCAyNTguMSA2MCAyNTZ6bTQwLjIgNzMuMmwtMTQuOCA2LjFjLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMSAxLTEuOSAxLjctMi42IDEuNi0xLjMgMi42LTEuN0w5NCAzMTQuNGMyLS44IDQuMi0uOCA2LjEgMHMzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xLTIuNCAzLjUtNC4zIDQuM3ptNC4zLTEzNmMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNmwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zIDQuMi0uOCA2LjEgMGwxNC44IDYuMWMyIC44IDMuNSAyLjQgNC4zIDQuM3MuOCA0LjIgMCA2LjFsMCAwek0xOTcuNiA0MThsLTYuMSAxNC44Yy0uNCAxLTEgMS45LTEuNyAyLjZzLTEuNiAxLjMtMi42IDEuNy0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjFsNi4xLTE0LjhjLjQtMSAxLTEuOSAxLjctMi43czEuNi0xLjQgMi42LTEuOCAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjggMS4zIDEuNyAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNyAzLjF6TTI2NCA0NDRjMCAyLjEtLjggNC4yLTIuMyA1LjdzLTMuNSAyLjMtNS43IDIuMy00LjItLjgtNS43LTIuMy0yLjMtMy41LTIuMy01LjdsMC0xNmMwLTIuMSAuOC00LjIgMi4zLTUuN3MzLjUtMi4zIDUuNy0yLjMgNC4yIC44IDUuNyAyLjMgMi4zIDMuNSAyLjMgNS43bDAgMTZ6bTY3LTYuOWMtMSAuNC0yIC42LTMuMSAuNnMtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNkwzMTQuNCA0MThjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zbDYuMSAxNC44Yy44IDIgLjggNC4yIDAgNi4xcy0yLjQgMy41LTQuMyA0LjN6bTYzLjYtNDIuNWMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNzLTQuMi0uOC01LjctMi4zTDM3MiAzODMuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjYgMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zbDExLjMgMTEuM2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZsMCAwek0yODYuMiAyODYuMkwxMTAuMyA0MDEuNyAyMjUuOCAyMjUuOCA0MDEuNyAxMTAuMyAyODYuMiAyODYuMnpNNDM3LjEgMzMxYy0uOCAyLTIuNCAzLjUtNC4zIDQuM3MtNC4yIC44LTYuMSAwbC0xNC44LTYuMWMtMi0uOC0zLjUtMi40LTQuMy00LjNzLS44LTQuMiAwLTYuMWMuNC0xIDEtMS45IDEuNy0yLjZzMS42LTEuMyAyLjYtMS43IDItLjYgMy4xLS42IDIuMSAuMiAzLjEgLjZsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xem02LjktNjdsLTE2IDBjLTIuMSAwLTQuMi0uOC01LjctMi4zcy0yLjMtMy41LTIuMy01LjcgLjgtNC4yIDIuMy01LjcgMy41LTIuMyA1LjctMi4zbDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM3oiXX0sV21yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwYWNlLWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImU1YWMiLCJNOTYgMjU2bDMyIDAgMCAyNTYtMTI4IDAgMC0xNjAgMzIgMCAwLTMyIDMyIDAgMC0zMiAzMiAwIDAtMzJ6bTQxNiA5NmwwIDE2MC0xMjggMCAwLTI1NiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwek0zMjAgNjRsMzIgMCAwIDM4NC0zMiAwIDAtMzItMTI4IDAgMCAzMi0zMiAwIDAtMzg0IDMyIDAgMC0zMiAzMiAwIDAtMzIgNjQgMCAwIDMyIDMyIDAgMCAzMnptLTMyIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxHbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxOSIsIk0zMTYuMyA0NTJjLTIuMSAwLTQuMi0uNi02LjEtMS42TDI5MSA0MzljLTIuOS0xLjYtMS41LTIuMi0uNS0yLjUgMy44LTEuMyA0LjYtMS42IDguNy00IC40LS4yIDEtLjEgMS40IC4xbDE0LjggOC44Yy41IC4zIDEuMyAuMyAxLjggMEwzNzUgNDA4Yy41LS4zIC45LS45IC45LTEuNmwwLTY2LjdjMC0uNy0uMy0xLjMtLjktMS42bC01Ny44LTMzLjNjLS41LS4zLTEuMi0uMy0xLjggMGwtNTcuOCAzMy4zYy0uNiAuMy0uOSAxLS45IDEuNmwwIDY2LjdjMCAuNiAuNCAxLjIgLjkgMS41bDE1LjggOS4xYzguNiA0LjMgMTMuOS0uOCAxMy45LTUuOGwwLTY1LjljMC0uOSAuNy0xLjcgMS43LTEuN2w3LjMgMGMuOSAwIDEuNyAuNyAxLjcgMS43bDAgNjUuOWMwIDExLjUtNi4yIDE4LTE3LjEgMTgtMy4zIDAtNiAwLTEzLjMtMy42bC0xNS4yLTguN2MtMy43LTIuMi02LjEtNi4yLTYuMS0xMC41bDAtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjVsMCA2Ni43YzAgNC4zLTIuMyA4LjQtNi4xIDEwLjVsLTU3LjggMzMuNGMtMS43IDEuMS0zLjggMS43LTYgMS43ek0zNjMgMzg2LjJjMC0xMi41LTguNC0xNS44LTI2LjItMTguMi0xOC0yLjQtMTkuOC0zLjYtMTkuOC03LjggMC0zLjUgMS41LTguMSAxNC44LTguMSAxMS45IDAgMTYuMyAyLjYgMTguMSAxMC42IC4yIC44IC44IDEuMyAxLjYgMS4zbDcuNSAwYy41IDAgLjktLjIgMS4yLS41IC4zLS40IC41LS44IC40LTEuMy0xLjItMTMuOC0xMC4zLTIwLjItMjguOC0yMC4yLTE2LjUgMC0yNi4zIDctMjYuMyAxOC42IDAgMTIuNyA5LjggMTYuMSAyNS42IDE3LjcgMTguOSAxLjkgMjAuNCA0LjYgMjAuNCA4LjMgMCA2LjUtNS4yIDkuMi0xNy40IDkuMi0xNS4zIDAtMTguNy0zLjgtMTkuOC0xMS40LS4xLS44LS44LTEuNC0xLjctMS40bC03LjUgMGMtLjkgMC0xLjcgLjctMS43IDEuNyAwIDkuNyA1LjMgMjEuMyAzMC42IDIxLjMgMTguNSAwIDI5LTcuMiAyOS0xOS44em01NC41LTUwLjFjMCA2LjEtNSAxMS4xLTExLjEgMTEuMXMtMTEuMS01LTExLjEtMTEuMWMwLTYuMyA1LjItMTEuMSAxMS4xLTExLjEgNi0uMSAxMS4xIDQuOCAxMS4xIDExLjF6bS0xLjggMGMwLTUuMi00LjItOS4zLTkuNC05LjMtNS4xIDAtOS4zIDQuMS05LjMgOS4zczQuMiA5LjQgOS4zIDkuNGM1LjItLjEgOS40LTQuMyA5LjQtOS40em0tNC41IDYuMmwtMi42IDBjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFsLTIuMiAwIDAgNS0yLjQgMCAwLTEyLjUgNC4zIDBjMS41IDAgNC40IDAgNC40IDMuMyAwIDIuMy0xLjUgMi44LTIuNCAzLjEgMS43IC4xIDEuOCAxLjIgMi4xIDIuOCAuMSAxIC4zIDIuNyAuNiAzLjN6bS0yLjgtOC44YzAtMS43LTEuMi0xLjctMS44LTEuN2wtMiAwIDAgMy41IDEuOSAwYzEuNiAwIDEuOS0xLjEgMS45LTEuOHpNMTM3LjMgMTkxYzAtMi43LTEuNC01LjEtMy43LTYuNEw3Mi4zIDE0OS4zYy0xLS42LTIuMi0uOS0zLjQtMWwtLjYgMGMtMS4yIDAtMi4zIC40LTMuNCAxTDMuNyAxODQuNkMxLjQgMTg1LjkgMCAxODguNCAwIDE5MWwuMSA5NWMwIDEuMyAuNyAyLjUgMS44IDMuMnMyLjUgLjcgMy43IDBMNDIgMjY4LjNjMi4zLTEuNCAzLjctMy44IDMuNy02LjRsMC00NC40YzAtMi42IDEuNC01LjEgMy43LTYuNGwxNS41LTguOWMxLjItLjcgMi40LTEgMy43LTFzMi42IC4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40bDAgNDQuNGMwIDIuNiAxLjQgNS4xIDMuNyA2LjRsMzYuNCAyMC45YzEuMSAuNyAyLjYgLjcgMy43IDAgMS4xLS42IDEuOC0xLjkgMS44LTMuMmwuMi05NXpNNDcyLjUgODcuM2wwIDE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjRsMC03MC44YzAtMi42IDEuNC01LjEgMy43LTYuNGw2MS4zLTM1LjRjMi4zLTEuMyA1LjEtMS4zIDcuNCAwbDE1LjMgOC44YzEuNyAxIDMuOS0uMyAzLjktMi4ybDAtOTRjMC0yLjggMy00LjYgNS41LTMuMmwzNi41IDIwLjRjMi4zIDEuMiAzLjggMy43IDMuOCA2LjR6bS00NiAxMjguOWMwLS43LS40LTEuMy0uOS0xLjZsLTIxLTEyLjJjLS42LS4zLTEuMy0uMy0xLjkgMGwtMjEgMTIuMmMtLjYgLjMtLjkgLjktLjkgMS42bDAgMjQuM2MwIC43IC40IDEuMyAuOSAxLjZsMjEgMTIuMWMuNiAuMyAxLjMgLjMgMS44IDBsMjEtMTIuMWMuNi0uMyAuOS0uOSAuOS0xLjZsMC0yNC4zIC4xIDB6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40bDAtMTcuMWMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40bDAgNzAuOGMwIDIuNyAxLjQgNS4xIDMuNyA2LjRsNjAuOSAzNC43YzIuMiAxLjMgNSAxLjMgNy4zIDBsMzYuOC0yMC41YzIuNS0xLjQgMi41LTUgMC02LjRMNTUwIDI0MS42Yy0xLjItLjctMS45LTEuOS0xLjktMy4ybDAtMjIuMmMwLTEuMyAuNy0yLjUgMS45LTMuMmwxOS4yLTExLjFjMS4xLS43IDIuNi0uNyAzLjcgMEw1OTIuMSAyMTNjMS4xIC43IDEuOSAxLjkgMS45IDMuMmwwIDE3LjRjMCAyLjggMy4xIDQuNiA1LjYgMy4ybDM2LjctMjEuM3pNNTU5IDIxOWMtLjQgLjMtLjcgLjctLjcgMS4ybDAgMTMuNmMwIC41IC4zIDEgLjcgMS4ybDExLjggNi44Yy40IC4zIDEgLjMgMS40IDBMNTg0IDIzNWMuNC0uMyAuNy0uNyAuNy0xLjJsMC0xMy42YzAtLjUtLjMtMS0uNy0xLjJsLTExLjgtNi44Yy0uNC0uMy0xLS4zLTEuNCAwTDU1OSAyMTl6TTMwNC44IDI2Mi41bDAtNzAuNGMwLTIuNi0xLjYtNS4xLTMuOS02LjRsLTYxLjEtMzUuMmMtMi4xLTEuMi01LTEuNC03LjQgMGwtNjEuMSAzNS4yYy0yLjMgMS4zLTMuOSAzLjctMy45IDYuNGwwIDcwLjRjMCAyLjggMS45IDUuMiA0IDYuNGw2MS4yIDM1LjJjMi40IDEuNCA1LjIgMS4zIDcuNCAwbDYxLTM1LjJjMS44LTEgMy4xLTIuNyAzLjYtNC43IC4xLS41IC4yLTEuMSAuMi0xLjd6TTIzMC41IDEzNy42bC0uOCAuNSAxLjEgMC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjcgMCAuOSAuNC0uMnoiXX0sWW1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGVwZW4iLGljb246WzUxMiw1MTIsW10sImYxY2IiLCJNNTAyLjMgMTU5LjdsLTIzNC0xNTZjLTgtNC45LTE2LjUtNS0yNC42IDBsLTIzNCAxNTZjLTYgNC05LjcgMTEuMS05LjcgMTguM0wwIDMzNGMwIDcuMSAzLjcgMTQuMyA5LjcgMTguM2wyMzQgMTU2YzggNC45IDE2LjUgNSAyNC42IDBsMjM0LTE1NmM2LTQgOS43LTExLjEgOS43LTE4LjNsMC0xNTZjMC03LjEtMy43LTE0LjMtOS43LTE4LjN6TTI3OCA2My4xbDE3Mi4zIDExNC45LTc2LjkgNTEuNC05NS40LTYzLjcgMC0xMDIuNnptLTQ0IDBMMjM0IDE2NS43IDEzOC42IDIyOS40IDYxLjcgMTc4IDIzNCA2My4xek00NCAyMTkuMUw5OS4xIDI1NiA0NCAyOTIuOCA0NCAyMTkuMXpNMjM0IDQ0OC44TDYxLjcgMzM0IDEzOC42IDI4Mi42IDIzNCAzNDYuMyAyMzQgNDQ4Ljh6TTI1NiAzMDhsLTc3LjctNTIgNzcuNy01MiA3Ny43IDUyLTc3LjcgNTJ6bTIyIDE0MC45bDAtMTAyLjYgOTUuNC02My43IDc2LjkgNTEuNC0xNzIuMyAxMTQuOXptMTkwLTE1NmwtNTUuMS0zNi45IDU1LjEtMzYuOSAwIDczLjd6Il19LEttcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXZlbHJ5IixpY29uOls1MTIsNTEyLFtdLCJmMmQ5IiwiTTQ5OC42IDIzNC4yYy0xLjItMTAuMy0xLjctMjAuOC0zLjctMzEtMi41LTEyLjQtNS43LTI0LjYtOS42LTM2LjYtNi44LTIwLjktMTcuMi00MC4zLTMwLjktNTcuNS01LjktNy42LTEyLjEtMTQuOC0xOC44LTIxLjctMTQuMS0xNC0zMC0yNi4xLTQ3LjEtMzYuMS0xNy44LTEwLjYtMzYuOC0xOC45LTU2LjctMjQuNy0xMS0zLjEtMjIuMy01LjQtMzMuNS03LjYtNi44LTEuMy0xMy43LTEuNy0yMC42LTIuNS0uMyAwLS42LS40LS45LS42LTEwLjggMC0yMS41IDAtMzIuMyAwLTIuNCAuNC00LjggLjktNy4yIDEuMi0xMS42IDEuMi0yMy4xIDMuNi0zNC4zIDcuMS0xMy44IDQuMS0yNy4xIDkuNi0zOS44IDE2LjQtMTMuMyA3LTI2LjEgMTUuMS0zOC4xIDI0LjItNi4yIDQuNi0xMi4zIDkuNC0xOCAxNC41LTEwLjIgOS4yLTIwLjQgMTguNC0yOS45IDI4LjMtMTIuOCAxMy4zLTI0LjEgMjguMS0zMy42IDQ0LTguNiAxNC0xNS41IDI5LTIwLjUgNDQuNi03LjIgMjIuNy0xMC4zIDQ2LjYtOS4yIDcwLjMgLjYgMTMuNSAyIDI2LjkgNC40IDQwLjIgMy40IDE4LjQgOSAzNi4zIDE2LjcgNTMuMyAxMy42IDI5LjIgMzIuMSA1MS41IDUwLjQgNjcuOSAxMi44IDExLjYgMjYuOCAyMS45IDQxLjggMzAuNiAxNy43IDEwLjQgMzYuNCAxOC45IDU1LjkgMjUuMyAxMy4zIDQuMyAyNi45IDcuNiA0MC42IDkuOCA2LjEgMSAxMi4zIDEuMyAxOC40IDEuOSAuNCAuMSAuOCAuMyAxLjIgLjZsMzIuMyAwYzIuNS0uNCA1LS45IDcuNS0xLjEgMTYuMy0xLjMgMzIuMS01LjMgNDcuNS0xMC43IDE3LjItNS45IDMzLjctMTMuOSA0OS0yMy44IDkuNy02LjQgMTkuNC0xMy4xIDI4LjctMjAuMSA1LjgtNC4zIDExLTkuNSAxNi4zLTE0LjUgNC0zLjcgNy44LTcuNiAxMS41LTExLjUgMTItMTIuNyAyMi42LTI2LjYgMzEuNC00MS42IDkuNS0xNiAxNy40LTMyLjkgMjIuMy01MC45IDIuOS0xMC40IDQuOS0yMSA3LTMxLjcgMS01LjMgMS4zLTEwLjcgMS45LTE2LjEgMC0uMyAuNC0uNiAuNi0uOWwwLTM3LjFjLS4yLS42LS40LTEuMi0uNi0xLjh6bS0xNjEuMS0xLjJzLTE2LjYtMy0yOC41LTNjLTI3LjIgMC0zMy42IDE0LjktMzMuNiAzN2wwIDkzLjctNzMuNSAwIDAtMTkwLjcgNzMuNSAwIDAgMzEuOWM4LjktMjYuOCAyNi44LTM2LjIgNjItMzYuMmwwIDY3LjN6Il19LFptcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbGlwYXkiLGljb246WzQ0OCw1MTIsW10sImY2NDIiLCJNMzc3LjcgMzJMNzAuMyAzMkMzMS40IDMyIDAgNjMuNCAwIDEwMi4zTDAgNDA5LjdDMCA0NDguNiAzMS40IDQ4MCA3MC4zIDQ4MGwzMDcuNSAwYzM4LjUgMCA2OS44LTMxLjEgNzAuMy02OS42LTQ2LTI1LjYtMTEwLjYtNjAuMy0xNzEuNi04OC40LTMyLjEgNDQtODQuMSA4MS0xNDguNiA4MS03MC42IDAtOTMuNy00NS4zLTk3LTc2LjQtNC0zOSAxNC45LTgxLjUgOTkuNS04MS41IDM1LjQgMCA3OS40IDEwLjIgMTI3LjEgMjUgMTYuNS0zMC4xIDI2LjUtNjAuMyAyNi41LTYwLjNsLTE3OC4yIDAgMC0xNi43IDkyLjEgMCAwLTMxLjItMTA5LjQgMCAwLTE5IDEwOS40IDAgMC01MC40IDUwLjkgMCAwIDUwLjQgMTA5LjQgMCAwIDE5LTEwOS40IDAgMCAzMS4yIDg4LjggMHMtMTUuMiA0Ni42LTM4LjMgOTAuOWM0OC45IDE2LjcgMTAwIDM2IDE0OC42IDUyLjdsMC0yMzQuNGMuMi0zOC43LTMxLjItNzAuMy02OS45LTcwLjN6TTQ3LjMgMzIzYzEgMjAuMiAxMC4yIDUzLjcgNjkuOSA1My43IDUyLjEgMCA5Mi42LTM5LjcgMTE3LjktNzIuOS00NC42LTE4LjctODQuNS0zMS40LTEwOS40LTMxLjQtNjcuNCAwLTc5LjQgMzMuMS03OC40IDUwLjZ6Il19LFFtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWV4IixpY29uOls1NzYsNTEyLFtdLCJmMWYzIiwiTTAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMS4xLTYxLjcgMC0zMS45LTM1LjEtMzEuOSAzNS4xLTIwMy43IDAgMC0xNjMuOC02NS44IDAgODEuNy0xODQuNyA3OC42IDAgMjguMSA2My4yIDAtNjMuMiA5Ny4yIDAgMTYuOSA0Ny42IDE3LTQ3LjYgNzUuNSAwIDAtMi40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJ6bTQ0MC40LTIxLjdsNDIuMi00Ni4zIDQyIDQ2LjMgNTEuNCAwLTY4LTcyLjEgNjgtNzIuMS01MC42IDAtNDIgNDYuNy00MS41LTQ2LjctNTEuNCAwIDY3LjUgNzIuNS02Ny40IDcxLjYgMC0zMy4xLTgzIDAgMC0yMi4yIDgwLjkgMCAwLTMyLjMtODAuOSAwIDAtMjIuNCA4MyAwIDAtMzMuMS0xMjIgMCAwIDE0My4yIDE3MS44IDB6bTk2LjMtNzJsMzkuMyA0MS45IDAtODMuMy0zOS4zIDQxLjR6bS0zNi4zLTkybDM2LjktMTAwLjYgMCAxMDAuNiAzOC43IDAgMC0xNDMuMy02MC4yIDAtMzIuMiA4OS4zLTMxLjktODkuMy02MS4yIDAgMCAxNDMuMS02My4yLTE0My4xLTUxLjIgMC02Mi40IDE0My4zIDQzIDAgMTEuOS0yOC43IDY1LjkgMCAxMiAyOC43IDgyLjcgMCAwLTEwMC4zIDM2LjggMTAwLjMgMzQuNCAwek0yODIgMTg1LjRsMTkuNS00Ni45IDE5LjQgNDYuOS0zOC45IDB6Il19LFhtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWFsdCIsaWNvbjpbNTc2LDUxMixbXSwiZjFhOCIsIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0LjkgMjcuNy01Ljd6TTM3OS45IDQ0My45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjcgNi4xLTEyLjYgMTEuOC0yNS44IDEyLjQtMzkuOWwtMiAyLjZjLTI4LjQgNTAtMzMgNjMuMi04MS4zIDEwMC0zMS45IDI0LjQtNjkuMiA0MC4yLTEwNi42IDU0LjZsLTYuMy0uMyAwLTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zIC45IC42LS42IC4zLTEuNHpNNDk2LjMgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOSAuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXpNMzAwLjEgNDI4LjJsMCAyNy4yIDExLjgtMy40LTIuOS0yMy44LTguOSAwek0yMzEuNCAyNzcuOGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjktMTMuOCAzLjV6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3oiXX0sSm1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxldHRlcmJveGQiLGljb246WzY0MCw1MTIsW10sImU2MmQiLCJNNTIxLjMgMTI4QzU4Ni45IDEyOCA2NDAgMTgxLjEgNjQwIDI0Ni42UzU4Ni45IDM2NS4yIDUyMS4zIDM2NS4yYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwek0zMjAgMTI4YzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMGMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHptLTIwMS4zIDBjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwQzUzLjEgMzY1LjEgMCAzMTIuMSAwIDI0Ni42UzUzLjEgMTI4IDExOC43IDEyOHoiXX0sZTVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZXJhIixpY29uOls1MTIsNTEyLFtdLCJmMjZhIiwiTTMyMS45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uMy0xMzEuNS02LjEtMjM2LjEtMTE0LjYtMjM2LjEtMjQ3LjcgMC0xMzcgMTExLTI0OCAyNDgtMjQ4bC44IDBjNjMuMSAuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40ek00MjMuNyA0MzAuNGMtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6Il19LHQ1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWlibyIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YSIsIk00MDcgMTc3LjZjNy42LTI0LTEzLjQtNDYuOC0zNy40LTQxLjctMjIgNC44LTI4LjgtMjguMS03LjEtMzIuOCA1MC4xLTEwLjkgOTIuMyAzNy4xIDc2LjUgODQuOC02LjggMjEuMi0zOC44IDEwLjgtMzItMTAuM3pNMjE0LjggNDQ2LjdjLTEwNi4zIDAtMjE0LjgtNTEuNC0yMTQuOC0xMzYuMyAwLTQ0LjMgMjgtOTUuNCA3Ni4zLTE0My43IDk5LjctOTkuNyAyMDMuMi0xMDAuOSAxNzMuNi01LjctNCAxMy4xIDEyLjMgNS43IDEyLjMgNiA3OS41LTMzLjYgMTQwLjUtMTYuOCAxMTQgNTEuNC0zLjcgOS40IDEuMSAxMC45IDguMyAxMy4xIDEzNS43IDQyLjMgMzQuOCAyMTUuMi0xNjkuNyAyMTUuMnpNMzU4LjUgMzAwLjRjLTUuNC01NS43LTc4LjUtOTQtMTYzLjQtODUuNy04NC44IDguNi0xNDguOCA2MC4zLTE0My40IDExNnM3OC41IDk0IDE2My40IDg1LjdjODQuOC04LjYgMTQ4LjgtNjAuMyAxNDMuNC0xMTZ6TTM0Ny45IDM1LjFjLTI1LjkgNS42LTE2LjggNDMuNyA4LjMgMzguMyA3Mi4zLTE1LjIgMTM0LjggNTIuOCAxMTEuNyAxMjQtNy40IDI0LjIgMjkuMSAzNyAzNy40IDEyIDMxLjktOTkuOC01NS4xLTE5NS45LTE1Ny40LTE3NC4zem0tNzguNSAzMTFjLTE3LjEgMzguOC02Ni44IDYwLTEwOS4xIDQ2LjMtNDAuOC0xMy4xLTU4LTUzLjQtNDAuMy04OS43IDE3LjctMzUuNCA2My4xLTU1LjQgMTAzLjQtNDUuMSA0MiAxMC44IDYzLjEgNTAuMiA0NiA4OC41em0tODYuMy0zMGMtMTIuOS01LjQtMzAgLjMtMzggMTIuOS04LjMgMTIuOS00LjMgMjggOC42IDM0IDEzLjEgNiAzMC44IC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNCAuNi0xNC4zIDUuNC0yLjkgNS4xLTEuNCAxMC42IDMuNyAxMi45IDUuMSAyIDExLjctLjMgMTQuNi01LjQgMi44LTUuMiAxLjEtMTAuOS00LTEyLjl6Il19LHI1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFkbWUiLGljb246WzU3Niw1MTIsW10sImY0ZDUiLCJNNTI4LjMgNDYuNWwtMTM5LjggMGMtNDguMSAwLTg5LjkgMzMuMy0xMDAuNCA4MC4zLTEwLjYtNDctNTIuMy04MC4zLTEwMC40LTgwLjNMNDggNDYuNUMyMS41IDQ2LjUgMCA2OCAwIDk0LjVMMCAzNDAuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGw4OS43IDBjMTAyLjIgMCAxMzIuNyAyNC40IDE0Ny4zIDc1IC43IDIuOCA1LjIgMi44IDYgMCAxNC43LTUwLjYgNDUuMi03NSAxNDcuMy03NWw4OS43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNDUuN2MwLTI2LjQtMjEuMy00Ny45LTQ3LjctNDguMXpNMjQyIDMxMS45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHpNNTAxLjMgMzExLjhjMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOC0uMSAweiJdfSxhNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29sYW5nIixpY29uOls2NDAsNTEyLFtdLCJlNDBmIiwiTTQwMC4xIDE5NC44Yy0xMC45IDIuOC0xOS45IDQuMy0yOS4xIDcuNi03LjMgMS45LTE0LjcgMy45LTIzLjIgNi4xbC0uNiAuMWMtNC4yIDEuMi00LjYgMS4zLTguNS0zLjItNC43LTUuMy04LjEtOC43LTE0LjYtMTEuOS0xOS43LTkuNi0zOC43LTYuOC01Ni40IDQuNy0yMS4yIDEzLjctMzIuMSAzNC0zMS44IDU5LjIgLjMgMjUgMTcuNCA0NS41IDQxLjIgNDguOSAyMiAyLjggMzkuOC00LjYgNTMuOC0yMC41IDIuMS0yLjYgNC01LjMgNi4xLTguMyAuOC0xIDEuNS0yLjEgMi4zLTMuM2wtNjAuMSAwYy02LjUgMC04LjEtNC01LjktOS4zIDQtOS43IDExLjUtMjUuOSAxNS45LTM0IC45LTEuOCAzLjEtNS44IDYuOS01LjhsMTAxLjEgMGM0LjUtMTMuNCAxMS44LTI2LjkgMjEuNi0zOS43IDIyLjctMjkuOSA0OS4zLTQ1LjUgODcuMi01MiAzMS44LTUuNiA2MS43LTIuNSA4OC45IDE1LjkgMjQuNiAxNi44IDM5LjggMzkuNiA0My45IDY5LjUgNS4zIDQyLjEtNi45IDc2LjMtMzYuNyAxMDUuNi0xOS43IDIwLjktNDQuOSAzNC03My45IDM5LjktNS42IDEtMTEuMSAxLjUtMTYuNSAyLTIuOSAuMi01LjcgLjUtOC41IC44LTI4LjMtLjYtNTQuMi04LjctNzYtMjcuNC0xNS4zLTEzLjMtMjUuOS0yOS42LTMxLjEtNDguNS0zLjcgNy4zLTggMTQuNC0xNCAyMS4xLTIxLjYgMjkuNi01MC45IDQ4LTg3LjkgNTIuOS0zMC42IDQuMS01OC45LTEuOC04My45LTIwLjUtMjMtMTcuNS0zNi4xLTQwLjUtMzkuNS02OS4yLTQuMS0zNCA1LjktNjUuNCAyNi40LTkxLjMgMjIuMi0yOSA1MS41LTQ3LjQgODcuMy01My45IDI5LjMtNi4yIDU3LjMtMS45IDgyLjYgMTUuMyAxNi41IDEwLjkgMjguMyAyNS44IDM2LjEgNDMuOSAxLjkgMi44IC42IDQuNC0zLjEgNS4zek00OC4zIDIwMC40Yy0xLjMgMC0xLjYtLjYtLjktMS42bDYuNi04LjRjLjYtLjkgMi4yLTEuNSAzLjQtMS41bDExMS4zIDBjMS4yIDAgMS41IC45IC45IDEuOGwtNS4zIDguMWMtLjYgMS0yLjIgMS45LTMuMSAxLjlsLTExMi44LS4zek0xLjIgMjI5LjFjLTEuMiAwLTEuNi0uNy0uOS0xLjZsNi41LTguNGMuNi0uOSAyLjItMS42IDMuNC0xLjZsMTQyLjEgMGMxLjIgMCAxLjggMSAxLjUgMS45bC0yLjUgNy41Yy0uMyAxLjItMS41IDEuOS0yLjggMS45TDEuMiAyMjkuMXptNzQuNSAyNi44Yy0uNiAuOS0uMyAxLjggLjkgMS44bDY4IC4zYy45IDAgMi4yLS45IDIuMi0yLjFsLjYtNy41YzAtMS4zLS42LTIuMi0xLjktMi4ybC02Mi4zIDBjLTEuMiAwLTIuNSAuOS0zLjEgMS45bC00LjQgNy44em01MDEuNS0xOGMtLjItMi42LS4zLTQuOC0uNy03LTUuNi0zMC44LTM0LTQ4LjMtNjMuNi00MS40LTI5IDYuNS00Ny43IDI0LjktNTQuNSA1NC4yLTUuNiAyNC4zIDYuMiA0OC45IDI4LjYgNTguOSAxNy4yIDcuNSAzNC4zIDYuNiA1MC44LTEuOSAyNC42LTEzLjYgMzgtMzIuNyAzOS42LTU5LjUtLjEtMS4yLS4xLTIuMy0uMi0zLjN6Il19LGk1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1leGNoYW5nZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4ZCIsIk0xOC4xIDMzMi4zbDQxMi43IDAgMCAyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4bC0xOSAwLTg2LjggODkuNyAwLTg5LjctMTc2LjMgMGMtMzYgMC02NS4zLTMwLjMtNjUuMy02OGwwLTIyem0wLTIzLjZsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXptMC0xMDkuNGw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1ek0zNjUuNCAwTDgzLjQgMGMtMzYgMC02NS4zIDMwLjMtNjUuMyA2Ny43bDAgMjIuMyA0MTIuNyAwIDAtMjIuM0M0MzAuNyAzMC4zIDQwMS40IDAgMzY1LjQgMHoiXX0sczVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1bHAiLGljb246WzI1Niw1MTIsW10sImYzYWUiLCJNMjEwIDM5MS4xbC0xNC4xIDI0LjYtNC42IDgwLjJjMCA4LjktMjguMyAxNi4xLTYzLjEgMTYuMXMtNjMuMS03LjItNjMuMS0xNi4xbC01LjgtNzkuNC0xNC45LTI1LjRjNDEuMiAxNy4zIDEyNiAxNi43IDE2NS42IDB6TTE0IDEzNy44TDI3LjYgMjYzLjNjNS45LTIwIDIwLjgtNDcgNDAtNTUuMiA2LjMtMi43IDEyLjctMi43IDE4LjcgLjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zIC4yLTMuMiA2LjMtMjIuMiA3LjMtMjUuMi0yIDIuMi00LjEgNC40LTYuNCA2LjYtNS40IDUuMS0xNC4xIDExLjgtMjEuNSAxMS44LTMuNCAwLTUuNi0uOS03LjctMi40bDcuNiA3OS42YzIgNSAzOS4yIDE3LjEgODguMiAxNy4xIDQ5LjEgMCA4Ni4zLTEyLjIgODguMi0xNy4xbDEwLjktOTQuNmMtNS43IDUuMi0xMi4zIDExLjYtMTkuNiAxNC44LTUuNCAyLjMtMTcuNCAzLjgtMTcuNC01LjcgMC01LjIgOS4xLTE0LjggMTQuNC0yMS41IDEuNC0xLjcgNC43LTUuOSA0LjctOC4xIDAtMi45LTYtMi4yLTExLjcgMi41LTMuMiAyLjctNi4yIDYuMy04LjcgOS43LTQuMyA2LTYuNiAxMS4yLTguNSAxNS41LTYuMiAxNC4yLTQuMSA4LjYtOS4xIDIyLTUgMTMuMy00LjIgMTEuOC01LjIgMTQtLjkgMS45LTIuMiAzLjUtNCA0LjUtMS45IDEtNC41IC45LTYuMS0uMy0uOS0uNi0xLjMtMS45LTEuMy0zLjcgMC0uOSAuMS0xLjggLjMtMi43IDEuNS02LjEgNy44LTE4LjEgMTUtMzQuMyAxLjYtMy43IDEtMi42IC44LTIuMy02LjIgNi0xMC45IDguOS0xNC40IDEwLjUtNS44IDIuNi0xMyAyLjYtMTQuNS00LjEtLjEtLjQtLjEtLjgtLjItMS4yLTExLjggOS4yLTI0LjMgMTEuNy0yMC04LjEtNC42IDguMi0xMi42IDE0LjktMjIuNCAxNC45LTQuMSAwLTcuMS0xLjQtOC42LTUuMS0yLjMtNS41IDEuMy0xNC45IDQuNi0yMy44IDEuNy00LjUgNC05LjkgNy4xLTE2LjIgMS42LTMuNCA0LjItNS40IDcuNi00LjUgLjYgLjIgMS4xIC40IDEuNiAuNyAyLjYgMS44IDEuNiA0LjUgLjMgNy4yLTMuOCA3LjUtNy4xIDEzLTkuMyAyMC44LS45IDMuMy0yIDkgMS41IDkgMi40IDAgNC43LS44IDYuOS0yLjQgNC42LTMuNCA4LjMtOC41IDExLjEtMTMuNSAyLTMuNiA0LjQtOC4zIDUuNi0xMi4zIC41LTEuNyAxLjEtMy4zIDEuOC00LjggMS4xLTIuNSAyLjYtNS4xIDUuMi01LjEgMS4zIDAgMi40IC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41IC40IDYuOS0yIDUuNi00LjcgMTAuNi02LjkgMTYuNy0xLjMgMy41LTIuNyA4LTIuNyAxMS43IDAgMy40IDMuNyAyLjYgNi44IDEuMiAyLjQtMS4xIDQuOC0yLjggNi44LTQuNSAxLjItNC45IC45LTMuOCAyNi40LTY4LjIgMS4zLTMuMyAzLjctNC43IDYuMS00LjcgMS4yIDAgMi4yIC40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMgLjUtLjQgLjktLjYgLjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMgLjgtMSAxLjctMS42IDIuNy0xLjYgMi44IDAgNC4yIDEuMiA0LjIgNCAwIDEuMS0uNyA1LjEtMS4xIDYuMiAxLjQtMS41IDIuOS0zIDQuNS00LjUgMTUtMTMuOSAyNS43LTYuOCAyNS43IC4yIDAgNy40LTguOSAxNy43LTEzLjggMjMuNC0xLjYgMS45LTQuOSA1LjQtNSA2LjQgMCAxLjMgLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zIC4yem0yMjkuNy04LjVjMCAyMS0yMzEuMiAyMS0yMzEuMiAwIDAtOC44IDUxLjgtMTUuOSAxMTUuNi0xNS45IDkgMCAxNy44IC4xIDI2LjMgLjRMMTY3IDY1LjEgMjI4LjMgLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xIC4xLTU3LjMgNjAuNS0xMCA0MC43YzM5LjkgMi42IDY3LjYgOC4xIDY3LjYgMTQuNnptLTY5LjQgNC42YzAtLjgtLjktMS41LTIuNS0yLjFsLS4yIC44YzAgMS4zLTUgMi40LTExLjEgMi40cy0xMS4xLTEuMS0xMS4xLTIuNGMwLS4xIDAtLjIgLjEtLjNsLjItLjdjLTEuOCAuNi0zIDEuNC0zIDIuMyAwIDIuMSA2LjIgMy43IDEzLjcgMy43IDcuNyAuMSAxMy45LTEuNiAxMy45LTMuN3oiXX0sbjVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InllbHAiLGljb246WzM4NCw1MTIsW10sImYxZTkiLCJNNDIuOSAyNDAuM2w5OS42IDQ4LjZjMTkuMiA5LjQgMTYuMiAzNy41LTQuNSA0Mi43TDMwLjUgMzU4LjVjLTMuMiAuOC02LjQgLjktOS42IC4zcy02LjItMS44LTguOS0zLjctNC45LTQuMy02LjYtNy4xLTIuNy01LjktMy4xLTkuMmMtMy4zLTI4LjgtLjItNTcuOSA5LTg1LjMgMS0zLjEgMi43LTUuOSA0LjktOC4zczQuOS00LjIgNy45LTUuNSA2LjItMS44IDkuNS0xLjggNi40IC45IDkuMyAyLjN6bTQ0IDIzOS4zYzIzLjggMTYuMyA1MC45IDI3LjMgNzkuNCAzMi4xIDMuMiAuNiA2LjUgLjQgOS42LS40czYuMS0yLjMgOC42LTQuNCA0LjYtNC42IDYtNy41IDIuMy02LjEgMi40LTkuNGwzLjktMTEwLjhjLjctMjEuMy0yNS41LTMxLjktMzkuOC0xNi4xTDgyLjggNDQ1LjVjLTIuMiAyLjQtMy44IDUuMy00LjggOC40cy0xLjMgNi40LS45IDkuNiAxLjUgNi4zIDMuMSA5LjEgMy45IDUuMiA2LjYgN2wwIDB6TTIzMi4yIDM2OS43bDU4LjggOTRjMS43IDIuOCA0IDUuMSA2LjggNi45czUuOCAzIDkgMy41IDYuNSAuMyA5LjctLjUgNi4xLTIuNCA4LjYtNC40YzIyLjMtMTguNCA0MC4zLTQxLjUgNTIuNy02Ny42IDEuNC0yLjkgMi4xLTYuMSAyLjItOS40cy0uNi02LjUtMS45LTkuNC0zLjItNS43LTUuNi03LjgtNS4yLTMuOS04LjMtNC45TDI1OC43IDMzNS43Yy0yMC4zLTYuNS0zNy44IDE1LjgtMjYuNSAzMy45ek0zODAuNiAyMzcuNGMtMTEuNS0yNi41LTI4LjctNTAuMi01MC40LTY5LjMtMi40LTIuMS01LjMtMy43LTguNC00LjdzLTYuNC0xLjItOS42LS44LTYuMyAxLjUtOS4xIDMuMi01LjEgNC02LjkgNi43bC02MiA5MS45Yy0xMS45IDE3LjcgNC43IDQwLjYgMjUuMiAzNC43TDM2NiAyNjguNmMzLjEtLjkgNi0yLjUgOC41LTQuNnM0LjUtNC43IDUuOC03LjcgMi4xLTYuMiAyLjItOS40LS42LTYuNS0xLjktOS41bDAgMHpNNjIuMSAzMC4yYy0yLjggMS40LTUuNCAzLjMtNy40IDUuN3MtMy42IDUuMi00LjUgOC4yLTEuMiA2LjItLjkgOS4zIDEuMyA2LjEgMi45IDguOUwxNTYuMyAyNDIuNmMxMS43IDIwLjIgNDIuNiAxMS45IDQyLjYtMTEuNGwwLTIwOC4zYzAtMy4xLS42LTYuMy0xLjgtOS4ycy0zLjEtNS41LTUuNC03LjYtNS0zLjgtOC00LjgtNi4xLTEuNC05LjMtMS4yYy0zOSAzLjEtNzcgMTMuMy0xMTIuMyAzMC4xeiJdfSxvNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29mb3JlIixpY29uOls0NDgsNTEyLFtdLCJmM2E3IiwiTTM0OCAzMTkuOGwtMTMuMiAwIDAgMzQuN2MtMjQuNSAyMy4xLTU2LjMgMzUuOC04OS45IDM1LjgtNzMuMiAwLTEzMi40LTYwLjItMTMyLjQtMTM0LjQgMC03NC4xIDU5LjItMTM0LjQgMTMyLjQtMTM0LjQgMzUuMyAwIDY4LjYgMTQgOTMuNiAzOS40bDYyLjMtNjMuM2MtNDEuOC00Mi4zLTk3LjEtNjUuNi0xNTYuMS02NS42LTEyMi43IDAtMjIwLjcgMTAwLjYtMjIwLjcgMjI0IDAgMTIyLjUgOTcgMjI0IDIyMC43IDIyNCA2My4yIDAgMTI0LjUtMjYuMiAxNzEtODIuNS0yLTI3LjYtMTMuNC03Ny43LTY3LjctNzcuN3pNMzM1LjkgMjA3LjNsLTEwNi4zIDAgMCA4OSAxMTguNCAwYzMzLjUgMCA2MC41IDE1LjEgNzYgNDEuOGwwLTMwLjZjMC02NS4yLTQwLjQtMTAwLjItODguMS0xMDAuMnoiXX0sbDVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF2aWF0byIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMSIsIk0xMDcuMiAyODMuNWwtMTktNDEuOC01Mi4xIDAtMTkgNDEuOC0xNy4xIDAgNjIuMi0xMzEuNCA2Mi4yIDEzMS40LTE3LjIgMHptLTQ1LTk4LjFsLTE5LjYgNDIuNSAzOS4yIDAtMTkuNi00Mi41ek0xNzQuOSAyODcuOGwtNjIuMi0xMzEuNCAxNy4xIDAgNDUuMSA5NiA0NS4xLTk2IDE3IDAtNjIuMSAxMzEuNHptODAuNi00LjNsMC0xMjcuMSAxNS41IDAgMCAxMjcuMS0xNS41IDB6TTQ2NC42IDE2Ny45bDAgMTE1LjYtMTcuMyAwIDAtMTE1LjYtNDEuMiAwIDAtMTEuNSA5OS42IDAgMCAxMS41LTQxLjEgMHpNNjQwIDIxOC44YzAgOS4yLTEuNyAxNy44LTUuMSAyNS44cy04LjIgMTUuMS0xNC4yIDIxLjEtMTMuMSAxMC44LTIxLjEgMTQuMi0xNi42IDUuMS0yNS44IDUuMS0xNy44LTEuNy0yNS44LTUuMS0xNS4xLTguMi0yMS4xLTE0LjItMTAuOC0xMy0xNC4yLTIxLjFjLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44IDguMi0xNS4xIDE0LjItMjEuMSAxMy04LjQgMjEuMS0xMS45YzgtMy40IDE2LjYtNS4xIDI1LjgtNS4xczE3LjggMS43IDI1LjggNS4xIDE1LjEgNS44IDIxLjEgMTEuOWM2IDYgMTAuNyAxMy4xIDE0LjIgMjEuMSAzLjQgOCA1LjEgMTYuNiA1LjEgMjUuOHptLTE1LjUgMGMwLTcuMy0xLjMtMTQtMy45LTIwLjNzLTYuMi0xMS43LTEwLjgtMTYuMy0xMC04LjItMTYuMi0xMC45LTEyLjgtNC0xOS44LTQtMTMuNiAxLjMtMTkuOCA0LTExLjYgNi4zLTE2LjIgMTAuOS04LjIgMTAtMTAuOCAxNi4zLTMuOSAxMy4xLTMuOSAyMC4zYzAgNy4zIDEuMyAxNCAzLjkgMjAuM3M2LjIgMTEuNyAxMC44IDE2LjMgMTAgOC4yIDE2LjIgMTAuOSAxMi44IDQgMTkuOCA0IDEzLjYtMS4zIDE5LjgtNCAxMS42LTYuMyAxNi4yLTEwLjkgOC4yLTEwIDEwLjgtMTYuMyAzLjktMTMuMSAzLjktMjAuM3ptLTk0LjggOTYuN2wwLTYuMyA4OC45LTEwLTI0Mi45IDEzLjRjLjYtMi4yIDEuMS00LjYgMS40LTcuMiAuMy0yIC41LTQuMiAuNi02LjVsNjQuOC04LjEtNjQuOSAxLjljMC0uNC0uMS0uNy0uMS0xLjEtMi44LTE3LjItMjUuNS0yMy43LTI1LjUtMjMuN2wtMS4xLTI2LjMgMjMuOCAwIDE5IDQxLjggMTcuMSAwLTYyLjItMTMxLjQtNjIuMiAxMzEuNCAxNy4xIDAgMTktNDEuOCAyMy42IDAtMS4xIDI2LjRzLTIyLjcgNi41LTI1LjUgMjMuN2MtLjEgLjMtLjEgLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMgLjMgNC40IC42IDYuNSAuMyAyLjYgLjggNSAxLjQgNy4ybC0yNDIuOS0xMy41IDg4LjkgMTAgMCA2LjNjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjMC02LjItNC42LTExLjMtMTAuNS0xMi4ybDAtNS44IDgwLjMgOSAwIDUuNGMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTQuOSAyOC40IDMuMiAwIDIzLjctNS45IDAgMCAxMy45IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy4yIDM4LjMgNC4zYzguMSAxMS40IDE5IDEzLjYgMTkgMTMuNmwtLjEgNi43LTUuMSAuMi0uMSAxMi4xIDQuMSAwIC4xLTUgNS4yIDAgLjEgNSA0LjEgMC0uMS0xMi4xLTUuMS0uMi0uMS02LjdzMTAuOS0yLjEgMTktMTMuNmwzOC4zLTQuMyAwIDIzLjItNS45IDAgMCAxMy44IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy43IDI4LjQtMy4yIDAgNC45Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yczEyLjQtMy40IDEyLjQtMTAuMmMwLTYtNC4zLTExLTkuOS0xMi4xbDAtNS40IDgwLjMtOSAwIDUuOGMtNS45IC45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40czEyLjQtNS42IDEyLjQtMTIuNGMtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3pNMzI4LjkgMjI3LjlsMTkuNi00Mi41IDE5LjYgNDIuNS0xNy45IDAtMS43LTQwLjMtMS43IDQwLjMtMTcuOSAweiJdfSxjNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFkbGV0IixpY29uOls2NDAsNTEyLFtdLCJlNGEwIiwiTTI5Ny45IDBsLjEgMGM3LjYgLjEgMTQuNCA0LjcgMTcuNSAxMS44bDEzMiAzMDguNSAuMy0uMSAuMiAuNC0yLjggMTAtNDIuOSAxNThjLTMuNyAxNi4yLTE5LjcgMjYuMy0zNS44IDIyLjZsLTY4LjQtMTUuNi02OC41IDE1LjZjLTE2LjEgMy43LTMyLjEtNi40LTM1LjgtMjIuNmwtNDIuOS0xNTgtMi43LTEwIC4xLS40IDEzMi4xLTMwOC40YzMtNyA5LjktMTEuNiAxNy41LTExLjh6TTE2MC4xIDMyMi4xbDEzMSAzOS4xIDYuOSAxMjIuNSA3LjktMTIxLjUgMTMwLjYtMzkuMyAuMi0uMS0xMzEgMjUuMS04LjYtMzIwLjItNS4yIDMyMC4yLTEzMS44LTI1Ljh6TTQyNiAyMjIuNmw5NC40LTQxIDczLjggMC0xNTcgMjQ3LjYgMzEuNi0xMDktNDIuOC05Ny42em0xNzEuNS00MS4ybDQxLjQgNzYuMmM0IDcuNS0zLjkgMTUuOS0xMS42IDEyLjJsLTQ3LjYtMjIuNyAxNy44LTY1Ljd6TTEyNy4zIDMxOC41TDE1OC43IDQzMCAxLjYgMTU0LjVjLTUuOS0xMC40IDUuNS0yMiAxNS45LTE2LjJsMTUxLjggODQuMi00Mi4xIDk2eiJdfSxkNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZS1sZWdhY3kiLGljb246WzQ0OCw1MTIsW10sImUwNzgiLCJNLTYgMjI4LjJsLjQtLjVjMCAuMiAwIC4zLS4xIC41bC0uMyAwem00NjAuNiAxNS41YzAtNDQtNy44LTg0LjUtMjguOC0xMjIuNC00MS03My40LTExMy42LTExMy4zLTE5OC42LTExMy4zLTEzOS45LS4zLTIxOC4zIDEwNS4yLTIzMi44IDIxOS43IDQyLjQtNjEuMyAxMTcuMS0xMjEuNCAyMjAuNC0xMjUgMCAwIDEwOS43IDAgOTkuNCAxMDVsLTE3NS44IDBjNi40LTM3LjQgMTguNS01OSAzNC4zLTc4LjktNzUgMzQuOS0xMjEuOCA5Ni4xLTEyMC44IDE4OC4zIC44IDcxLjUgNTAuMSAxNDQuOCAxMjAuOCAxNzIgODMuNCAzMS44IDE5Mi44IDcuMiAyNDAuMS0yMS4zbDAtMTA0LjRjLTgwLjkgNTYuNS0yNzAuOSA2MC45LTI3Mi4zLTY3LjZsMzE0LjEgMCAwLTUyLjF6Il19LGxJZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGFzdGZtIixpY29uOls0NDgsNTEyLFsibGFzdGZtLXNxdWFyZSJdLCJmMjAzIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yMTAuNyAyODAuOGMtMS44LTUuNS0zLjQtMTAuOC01LTE1LjktMTIuOS00MS45LTIxLTY4LjQtNTgtNjguNC0yMi40IDAtNDUuMSAxNi4xLTQ1LjEgNjEuMiAwIDM1LjIgMTggNTcuMiA0My4zIDU3LjIgMjguNiAwIDQ3LjYtMjEuMyA0Ny42LTIxLjNsMTEuNyAzMS45cy0xOS44IDE5LjQtNjEuMiAxOS40Yy01MS4zIDAtNzkuOS0zMC4xLTc5LjktODUuOCAwLTU3LjkgMjguNi05MiA4Mi41LTkyIDY3LjkgMCA3OS4zIDM1LjMgOTYuNCA4OC40IDEuNCA0LjQgMi45IDguOSA0LjQgMTMuNSA4LjggMjYuOCAyNC4yIDQ2LjIgNjEuMiA0Ni4yIDI0LjkgMCAzOC4xLTUuNSAzOC4xLTE5LjEgMC0xNy41LTE2LjktMjEuMi00MC0yNi40LTMuMi0uNy02LjUtMS40LTkuOS0yLjItMzAuNC03LjMtNDIuNS0yMy4xLTQyLjUtNDggMC00MCAzMi4zLTUyLjQgNjUuMi01Mi40IDM3LjQgMCA2MC4xIDEzLjYgNjMgNDYuNmwtMzYuNyA0LjRjLTEuNS0xNS44LTExLTIyLjQtMjguNi0yMi40LTE2LjEgMC0yNiA3LjMtMjYgMTkuOCAwIDExIDQuOCAxNy42IDIwLjkgMjEuMyAyLjIgLjUgNC41IDEgNi43IDEuNCAzMS4xIDYuNSA2NS4xIDEzLjcgNjUuMSA1Ni4xIC4xIDM2LjctMzAuNyA1MC42LTc2LjEgNTAuNi02My40IDAtODUuNC0yOC42LTk3LjEtNjQuMXoiXX0sdTVyPWxJZSxwNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzLWciLGljb246WzMyMCw1MTIsW10sImYzYTkiLCJNMTAuOCA0MDMuM2wyLjggMGMxMi43IDAgMjUuNSAwIDM4LjIgLjEgMS42IDAgMy4xLS40IDMuNiAyLjEgNy4xIDM0LjkgMzAgNTQuNiA2Mi45IDYzLjkgMjYuOSA3LjYgNTQuMSA3LjggODEuMyAxLjggMzMuOC03LjQgNTYtMjguMyA2OC02MC40IDgtMjEuNSAxMC43LTQzLjggMTEtNjYuNSAuMS01LjggLjMtNDctLjItNTIuOGwtLjktLjNjLS44IDEuNS0xLjcgMi45LTIuNSA0LjQtMjIuMSA0My4xLTYxLjMgNjcuNC0xMDUuNCA2OS4xLTEwMyA0LTE2OS40LTU3LTE3Mi0xNzYuMi0uNS0yMy43IDEuOC00Ni45IDguMy02OS43IDIwLjYtNzEuMSA3NC42LTExOC4yIDE1My45LTExOC44IDYxLjMtLjQgMTAxLjUgMzguNyAxMTYuMiA3MC4zIC41IDEuMSAxLjMgMi4zIDIuNCAxLjlsMC02MS42IDQ0LjMgMGMwIDI4MC4zIC4xIDMzMi4yIC4xIDMzMi4yLS4xIDc4LjUtMjYuNyAxNDMuNy0xMDMgMTYyLjItNjkuNSAxNi45LTE1OSA0LjgtMTk2LTU3LjItOC0xMy41LTExLjgtMjguMy0xMy00NC41ek0xNTcuMSAzNi41Yy01Mi41LS41LTEwOC41IDQwLjctMTE1IDEzMy44LTQuMSA1OSAxNC44IDEyMi4yIDcxLjUgMTQ4LjYgMjcuNiAxMi45IDc0LjMgMTUgMTA4LjMtOC43IDQ3LjYtMzMuMiA2Mi43LTk3IDU0LjgtMTU0LTkuNy03MS4xLTQ3LjgtMTIwLTExOS42LTExOS43eiJdfSxmNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtbWFzdGVyY2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMSIsIk00ODIuOSA0MTAuM2MwIDYuOC00LjYgMTEuNy0xMS4yIDExLjctNi44IDAtMTEuMi01LjItMTEuMi0xMS43czQuNC0xMS43IDExLjItMTEuN2M2LjYgMCAxMS4yIDUuMiAxMS4yIDExLjd6TTE3Mi4xIDM5OC42Yy03LjEgMC0xMS4yIDUuMi0xMS4yIDExLjdTMTY1IDQyMiAxNzIuMSA0MjJjNi41IDAgMTAuOS00LjkgMTAuOS0xMS43LS4xLTYuNS00LjQtMTEuNy0xMC45LTExLjd6bTExNy41LS4zYy01LjQgMC04LjcgMy41LTkuNSA4LjdsMTkuMSAwYy0uOS01LjctNC40LTguNy05LjYtOC43em0xMDcuOCAuM2MtNi44IDAtMTAuOSA1LjItMTAuOSAxMS43czQuMSAxMS43IDEwLjkgMTEuNyAxMS4yLTQuOSAxMS4yLTExLjdjMC02LjUtNC40LTExLjctMTEuMi0xMS43em0xMDUuOSAyNi4xYzAgLjMgLjMgLjUgLjMgMS4xIDAgLjMtLjMgLjUtLjMgMS4xLS4zIC4zLS4zIC41LS41IC44LS4zIC4zLS41IC41LTEuMSAuNS0uMyAuMy0uNSAuMy0xLjEgLjMtLjMgMC0uNSAwLTEuMS0uMy0uMyAwLS41LS4zLS44LS41LS4zLS4zLS41LS41LS41LS44LS4zLS41LS4zLS44LS4zLTEuMSAwLS41IDAtLjggLjMtMS4xIDAtLjUgLjMtLjggLjUtMS4xIC4zLS4zIC41LS4zIC44LS41IC41LS4zIC44LS4zIDEuMS0uMyAuNSAwIC44IDAgMS4xIC4zIC41IC4zIC44IC4zIDEuMSAuNXMuMiAuNiAuNSAxLjF6bS0yLjIgMS40Yy41IDAgLjUtLjMgLjgtLjMgLjMtLjMgLjMtLjUgLjMtLjhzMC0uNS0uMy0uOGMtLjMgMC0uNS0uMy0xLjEtLjNsLTEuNiAwIDAgMy41IC44IDAgMC0xLjQgLjMgMCAxLjEgMS40IC44IDAtMS4xLTEuM3pNNTc2IDgxbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MUMwIDU0LjUgMjEuNSAzMyA0OCAzM2w0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNjQgMjIwLjZjMCA3Ni41IDYyLjEgMTM4LjUgMTM4LjUgMTM4LjUgMjcuMiAwIDUzLjktOC4yIDc2LjUtMjMuMS03Mi45LTU5LjMtNzIuNC0xNzEuMiAwLTIzMC41LTIyLjYtMTUtNDkuMy0yMy4xLTc2LjUtMjMuMS03Ni40LS4xLTEzOC41IDYyLTEzOC41IDEzOC4yek0yODggMzI5LjRjNzAuNS01NSA3MC4yLTE2Mi4yIDAtMjE3LjUtNzAuMiA1NS4zLTcwLjUgMTYyLjYgMCAyMTcuNXpNMTQ1LjcgNDA1LjdjMC04LjctNS43LTE0LjQtMTQuNy0xNC43LTQuNiAwLTkuNSAxLjQtMTIuOCA2LjUtMi40LTQuMS02LjUtNi41LTEyLjItNi41LTMuOCAwLTcuNiAxLjQtMTAuNiA1LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwYzAtMTguOS0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMC4yIDguMiAzMC4ybDcuOSAwYzAtMTguMy0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMCA4LjIgMzAuMmw4LjIgMCAwLTIzLS4yIDB6TTE5MC42IDM5MmwtNy45IDAgMCA0LjRjLTIuNy0zLjMtNi41LTUuNC0xMS43LTUuNC0xMC4zIDAtMTguMiA4LjItMTguMiAxOS4zIDAgMTEuMiA3LjkgMTkuMyAxOC4yIDE5LjMgNS4yIDAgOS0xLjkgMTEuNy01LjRsMCA0LjYgNy45IDAgMC0zNi44em00MC41IDI1LjZjMC0xNS0yMi45LTguMi0yMi45LTE1LjIgMC01LjcgMTEuOS00LjggMTguNS0xLjFsMy4zLTYuNWMtOS40LTYuMS0zMC4yLTYtMzAuMiA4LjIgMCAxNC4zIDIyLjkgOC4zIDIyLjkgMTUgMCA2LjMtMTMuNSA1LjgtMjAuNyAuOGwtMy41IDYuM2MxMS4yIDcuNiAzMi42IDYgMzIuNi03LjV6bTM1LjQgOS4zbC0yLjItNi44Yy0zLjggMi4xLTEyLjIgNC40LTEyLjItNC4xbDAtMTYuNiAxMy4xIDAgMC03LjQtMTMuMSAwIDAtMTEuMi04LjIgMCAwIDExLjItNy42IDAgMCA3LjMgNy42IDAgMCAxNi43YzAgMTcuNiAxNy4zIDE0LjQgMjIuNiAxMC45em0xMy4zLTEzLjRsMjcuNSAwYzAtMTYuMi03LjQtMjIuNi0xNy40LTIyLjYtMTAuNiAwLTE4LjIgNy45LTE4LjIgMTkuMyAwIDIwLjUgMjIuNiAyMy45IDMzLjggMTQuMmwtMy44LTZjLTcuOCA2LjQtMTkuNiA1LjgtMjEuOS00Ljl6TTMzOC45IDM5MmMtNC42LTItMTEuNi0xLjgtMTUuMiA0LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwIDAtMjAuN2MwLTExLjYgOS41LTEwLjEgMTIuOC04LjRsMi40LTcuNnptMTAuNiAxOC4zYzAtMTEuNCAxMS42LTE1LjEgMjAuNy04LjRsMy44LTYuNWMtMTEuNi05LjEtMzIuNy00LjEtMzIuNyAxNSAwIDE5LjggMjIuNCAyMy44IDMyLjcgMTVsLTMuOC02LjVjLTkuMiA2LjUtMjAuNyAyLjYtMjAuNy04LjZ6TTQxNi4yIDM5MmwtOC4yIDAgMCA0LjRjLTguMy0xMS0yOS45LTQuOC0yOS45IDEzLjkgMCAxOS4yIDIyLjQgMjQuNyAyOS45IDEzLjlsMCA0LjYgOC4yIDAgMC0zNi44em0zMy43IDBjLTIuNC0xLjItMTEtMi45LTE1LjIgNC40bDAtNC40LTcuOSAwIDAgMzYuNyA3LjkgMCAwLTIwLjdjMC0xMSA5LTEwLjMgMTIuOC04LjRsMi40LTcuNnptNDAuMy0xNC45bC03LjkgMCAwIDE5LjNjLTguMi0xMC45LTI5LjktNS4xLTI5LjkgMTMuOSAwIDE5LjQgMjIuNSAyNC42IDI5LjkgMTMuOWwwIDQuNiA3LjkgMCAwLTUxLjd6bTcuNi03NS4xbDAgNC42IC44IDAgMC00LjYgMS45IDAgMC0uOC00LjYgMCAwIC44IDEuOSAwem02LjYgMTIzLjhjMC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMtLjUtLjgtLjgtMS4xcy0uOC0uNS0xLjEtLjhjLS41IDAtMS4xLS4zLTEuNi0uMy0uMyAwLS44IC4zLTEuNCAuMy0uNSAuMy0uOCAuNS0xLjEgLjgtLjUgLjMtLjggLjgtLjggMS4xLS4zIC41LS4zIDEuMS0uMyAxLjYgMCAuMyAwIC44IC4zIDEuNCAwIC4zIC4zIC44IC44IDEuMSAuMyAuMyAuNSAuNSAxLjEgLjggLjUgLjMgMS4xIC4zIDEuNCAuMyAuNSAwIDEuMSAwIDEuNi0uMyAuMy0uMyAuOC0uNSAxLjEtLjhzLjUtLjggLjgtMS4xYy4zLS42IC4zLTEuMSAuMy0xLjR6bTMuMi0xMjQuN2wtMS40IDAtMS42IDMuNS0xLjYtMy41LTEuNCAwIDAgNS40IC44IDAgMC00LjEgMS42IDMuNSAxLjEgMCAxLjQtMy41IDAgNC4xIDEuMSAwIDAtNS40em00LjQtODAuNWMwLTc2LjItNjIuMS0xMzguMy0xMzguNS0xMzguMy0yNy4yIDAtNTMuOSA4LjItNzYuNSAyMy4xIDcyLjEgNTkuMyA3My4yIDE3MS41IDAgMjMwLjUgMjIuNiAxNSA0OS41IDIzLjEgNzYuNSAyMy4xIDc2LjQgLjEgMTM4LjUtNjEuOSAxMzguNS0xMzguNHoiXX0saDVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvdXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5MyIsIk0yMjUuOSAzMkMxMDMuMyAzMiAwIDEzMC41IDAgMjUyLjEgMCAyNTYgLjEgNDgwIC4xIDQ4MGwyMjUuOC0uMkMzNDguNiA0NzkuOCA0NDggMzc3LjUgNDQ4IDI1NS45UzM0OC42IDMyIDIyNS45IDMyek0yMjQgMzg0Yy0xOS40IDAtMzcuOS00LjMtNTQuNC0xMi4xTDg4LjUgMzkyIDExMS40IDMxN2MtOS44LTE4LjEtMTUuNC0zOC45LTE1LjQtNjEgMC03MC43IDU3LjMtMTI4IDEyOC0xMjhzMTI4IDU3LjMgMTI4IDEyOC01Ny4zIDEyOC0xMjggMTI4eiJdfSxtNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2stdGllIixpY29uOls0NDgsNTEyLFtdLCJmMjdlIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTMxNi41IDM1Ny4ybC05Mi41IDg4LjctOTIuNS04OC43IDY0LjUtMTg0LTY0LjUtODYuNiAxODQuOSAwLTY0LjQgODYuNiA2NC41IDE4NHoiXX0sY0llPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1mYWNlYm9vayIsaWNvbjpbNDQ4LDUxMixbImZhY2Vib29rLXNxdWFyZSJdLCJmMDgyIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTguMiAwIDAtMTQ1LjgtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE0NS44IDEyOSAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxnNXI9Y0llLGI1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiYXR0bGUtbmV0IixpY29uOls1MTIsNTEyLFtdLCJmODM1IiwiTTQ0OC44IDIyNS42YzI2LjkgLjIgMzUuNi03LjQgMzguOS0xMi40IDEyLjUtMTYuMy03LjEtNDcuNi01Mi44LTcxLjMgMTcuOC0zMy42IDMwLjEtNjMuNyAzNi4zLTg1LjMgMy40LTExLjggMS4xLTE5IC41LTIwLjMtMS43IDEwLjUtMTUuOCA0OC41LTQ4LjIgMTAwLTI1LTExLjItNTYuNS0yMC4xLTkzLjgtMjMuOC04LjktMTYuOS0zNC45LTYzLjktNjAuNS04OC45LTE2LjgtMTYuNS0zMC4zLTIyLjYtNDAuOC0yMy41bDAgMGMtMTMuOC0xLjYtMjIuNyA1LjgtMjcuNCAxMS0xNy4yIDE4LjUtMjQuMyA0OC45LTI1IDg0LjEtNy4yLTEyLjMtMTcuMi0yNC42LTI4LjUtMjUuOWwtLjIgMGMtMjAuNy0zLjUtMzguNCAyOS4yLTM2IDgxLjMtMzguNCAxLjQtNzEgNS44LTkzIDExLjItOS45IDIuNC0xNi4yIDcuMy0xNy44IDkuNyAxLS40IDIyLjQtOS4yIDExMS42LTkuMiA1LjIgNTMgMjkuOCAxMDEuOCAyNiA5My4yLTkuNyAxNS40LTM4LjIgNjIuNC00Ny4zIDk3LjctNS45IDIyLjktNC40IDM3LjYgLjIgNDcuMSA1LjYgMTIuOCAxNi40IDE2LjcgMjMuMiAxOC4zIDI1IDUuNyA1NS40LTMuNiA4Ni43LTIxLjEtNy41IDEyLjgtMTMuOSAyOC41LTkuMSAzOS4zIDcuMyAxOS42IDQ0LjUgMTguNyA4OC40LTkuNCAyMC4yIDMyLjIgNDAuMSA1Ny45IDU1LjcgNzQuMSAyLjYgMi44IDUuNSA1LjIgOC44IDcuMSA1LjEgMy4yIDguNiAzLjQgOC42IDMuNC04LjItNi43LTM0LTM4LTYyLjUtOTEuOCAyMi4yLTE2IDQ1LjctMzguOSA2Ny41LTY5LjMgMTIyLjggNC42IDE0My4zLTI0LjggMTQ4LTMxLjYgMTQuNy0xOS45IDMuNC01Ny40LTU3LjMtOTMuN3pNMzcxIDMzMS44YzIzLjgtMzcuNyAzMC4zLTY3LjggMjkuNC05Mi4zIDI3LjkgMTcuNiA0Ny4yIDM3LjYgNDkuMSA1OC44IDEuMSAxMi45LTguMSAyOS4xLTc4LjUgMzMuNXpNMjE3LjEgMzg3LjdjOS44LTYuMiAxOS41LTEzLjEgMjkuMi0yMC41IDYuNyAxMy4zIDEzLjYgMjYuMSAyMC42IDM4LjItNDAuNiAyMS45LTY4LjggMTIuOC00OS44LTE3Ljd6bTIxNS0xNzEuM2MtMTAuMy01LjMtMjEuMi0xMC4zLTMyLjQtMTUgNy45LTEyLjEgMTUuNS0yNC40IDIyLjctMzYuOSAzOS4xIDI0LjEgNDUuOSA1My4yIDkuNiA1MS45ek0yNzkuNCAzOThjLTUuNS0xMS40LTExLTIzLjUtMTYuNS0zNi40IDQzLjIgMS4zIDYyLjQtMTguNyA2My4zLTIwLjQgMCAuMS0yNSAxNS42LTYyLjUgMTIuMiAzMC42LTI1LjYgNTkuMS01My43IDg1LjEtODQgOC43LTEwLjIgMTctMjAuNiAyNC45LTMxLjEtLjQtLjMtMS41LTMtMTYuNS0xMi01MS43IDYwLjMtMTAyLjMgOTgtMTMyLjggMTE1LjktMjAuNi0xMS4yLTQwLjgtMzEuOC01NS43LTYxLjUtMjAtMzkuOS0zMC04Mi40LTMxLjYtMTE2LjEgMTIuMyAuOSAyNS4zIDIuMiAzOC44IDMuOS0yMi4zIDM2LjgtMTQuNCA2My0xMy41IDY0LjIgMC0uMS0xLTI5LjIgMjAuMS01OS42IDkgNTIuNSAyNCAxMDMuOCA0NC43IDE1Mi44IC45LS40IDEuOCAuOSAxOC43LTguMi0yNi4zLTc0LjUtMzMuOC0xMzguMi0zNC0xNzMuNCAyMC0xMi40IDQ4LjItMTkuOCA4MS42LTE3LjggNDQuNiAyLjcgODYuNCAxNS4yIDExNi4zIDMwLjctNy4xIDEwLjQtMTQuOSAyMS4zLTIzLjMgMzIuNS0yMC43LTM3LjctNDcuMy00My45LTQ4LjktNDMuNyAuMSAwIDI1LjkgMTQuMSA0MS41IDQ3LjItMzcuNS0xMy44LTc2LjEtMjQuNC0xMTUuMy0zMS43LTEzLjEtMi40LTI2LjItNC40LTM5LjQtNi0uMSAuNC0xLjggMS44LTIuMiAyMC4zIDc3LjkgMTQuNSAxMzYuNiAzOS45IDE2Ny4yIDU3LjIgLjcgMjMuNi03IDUxLjYtMjUuNCA3OS42LTI0LjYgMzcuMy01Ni40IDY3LjItODQuOCA4NS40em0yNy40LTI4N2MtNDQuNi0xLjctNzMuNiA3LjQtOTQuNyAyMC43IDItNTIuMyAyMS4zLTc2LjQgMzguMi03NS4zIDE2LjktNC4yIDU0LjkgNTIuMiA1Ni41IDU0LjZ6bS0xMzAuNyAzLjFjLjUgMTIuMSAxLjYgMjQuNiAzLjIgMzcuMy0xNC42LS45LTI4LjctMS4zLTQyLjQtMS4zLS4xIDMuMi0uMS01MSAyNC43LTQ5LjZsLjEgMGM1LjggMS4xIDEwLjYgNi45IDE0LjQgMTMuNnptLTI4LjEgMTYyYzIwLjggMzkuNyA0My4zIDYwLjYgNjUuMyA3Mi4zLTQ2LjggMjQuOC03Ny41IDIwLTg0LjkgNC41LS4yLS4yLTExLjEtMTUuMyAxOS43LTc2LjhsMCAweiJdfSx4NXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmltb2JqZWN0IixpY29uOls0NDgsNTEyLFtdLCJmMzc4IiwiTTQxNiAzMkwzMiAzMkMxNC40IDMyIDAgNDYuNCAwIDY0TDAgNDQ4YzAgMTcuNiAxNC40IDMyIDMyIDMybDM4NCAwYzE3LjYgMCAzMi0xNC40IDMyLTMybDAtMzg0YzAtMTcuNi0xNC40LTMyLTMyLTMyek0zNTIgMjg5LjRjMCA0OS40LTExLjQgODIuNi0xMDMuOCA4Mi42bC0xNi45IDBjLTQ0LjEgMC02Mi40LTE0LjktNzAuNC0zOC44bC0uOSAwIDAgMzQuOC02NCAwIDAtMjMyIDY0IDAgMCA3NC43IDEuMSAwYzQuNi0zMC41IDM5LjctMzguOCA2OS43LTM4LjhsMTcuMyAwYzkyLjQgMCAxMDMuOCAzMy4xIDEwMy44IDgyLjVsMCAzNSAuMSAwem0tNjQtMjguOWwwIDIyLjljMCAyMS43LTMuNCAzMy44LTM4LjQgMzMuOGwtNDUuMyAwYy0yOC45IDAtNDQuMS02LjUtNDQuMS0zNS43bDAtMTljMC0yOS4zIDE1LjItMzUuNyA0NC4xLTM1LjdsNDUuMyAwYzM1LS4yIDM4LjQgMTIgMzguNCAzMy43eiJdfSx2NXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ZlbHRlIixpY29uOls0NDgsNTEyLFtdLCJlODY4IiwiTTIwMi4xIDI2LjRjNjYuOC00Mi42IDE1OS4zLTIyLjcgMjA2LjEgNDQuMyAxMS4xIDE1LjUgMTkgMzMuMSAyMy4yIDUxLjhzNC43IDM3LjkgMS4zIDU2LjdjLTMuMiAxOC0xMC4xIDM1LjEtMjAuMSA1MC4zIDE0LjYgMjcuOSAxOS42IDYwIDE0IDkxLTMuMyAxOC40LTEwLjQgMzYtMjAuOSA1MS41cy0yNC4xIDI4LjctMzkuOSAzOC43TDI0OC4zIDQ4NS42Yy02Ni44IDQyLjYtMTU5LjMgMjIuNy0yMDYuMS00NC4yLTExLjEtMTUuNS0xOS0zMy4yLTIzLjItNTEuOHMtNC43LTM3LjktMS4zLTU2LjdjMy4yLTE4IDEwLjEtMzUuMSAyMC4xLTUwLjMtMTQuNy0yNy45LTE5LjYtNjAtMTQtOTEuMSAzLjMtMTguNCAxMC40LTM2IDIwLjktNTEuNXMyNC4xLTI4LjcgMzkuOS0zOC43TDIwMi4xIDI2LjR6TTMxNS42IDY3LjJjLTE3LjktNi42LTM3LjQtNy42LTU1LjktMi44LTguNCAyLjMtMTYuNSA1LjgtMjMuOCAxMC41TDExOC41IDE0OS43Yy05LjUgNi0xNy43IDEzLjktMjQgMjMuM1M4NCAxOTIuOCA4MiAyMDMuOWMtMiAxMS4zLTEuNyAyMi45IC44IDM0LjFzNy4zIDIxLjggMTMuOSAzMS4yYzEwLjkgMTUuNyAyNi4zIDI3LjYgNDQuMiAzNC4zczM3LjQgNy42IDU1LjkgMi44YzguNC0yLjMgMTYuNS01LjggMjMuOC0xMC41bDQ0LjgtMjguNmMyLjItMS40IDQuNy0yLjUgNy4yLTMuMiA1LjYtMS40IDExLjQtMS4yIDE2LjggLjhzMTAgNS42IDEzLjMgMTAuM2MyIDIuOCAzLjUgNiA0LjIgOS40cy45IDYuOSAuMyAxMC4zYy0uNiAzLjMtMS45IDYuNS0zLjggOS4zLTEuOSAyLjgtNC40IDUuMi03LjIgN0wxNzguOCAzODYuMWMtMi4yIDEuNC00LjcgMi41LTcuMiAzLjItNS42IDEuNC0xMS40IDEuMi0xNi44LS44cy0xMC01LjYtMTMuMy0xMC4zYy0zLjYtNS4xLTUuMy0xMS4yLTQuNy0xNy40bC40LTQuNC00LjMtMS4zYy0xNi41LTUtMzIuMS0xMi43LTQ1LjktMjIuOWwtNi00LjQtMi4yIDYuN2MtMS4yIDMuNi0yLjEgNy4zLTIuOCAxMS0yIDExLjMtMS43IDIyLjkgLjggMzQuMXM3LjMgMjEuOCAxMy45IDMxLjFjMTAuOSAxNS43IDI2LjMgMjcuNiA0NC4yIDM0LjNzMzcuNCA3LjYgNTUuOCAyLjhjOC40LTIuMyAxNi41LTUuOCAyMy45LTEwLjVsMTE3LjMtNzQuOGM5LjUtNiAxNy43LTEzLjkgMjQtMjMuM3MxMC42LTE5LjkgMTIuNi0zMWMyLTExLjMgMS44LTIyLjktLjgtMzQuMXMtNy4zLTIxLjgtMTQtMzEuMWMtMTAuOS0xNS43LTI2LjMtMjcuNi00NC4yLTM0LjNzLTM3LjQtNy42LTU1LjktMi44Yy04LjQgMi4zLTE2LjUgNS44LTIzLjggMTAuNUwxODUgMjQ0LjhjLTIuMiAxLjQtNC42IDIuNS03LjIgMy4yLTUuNiAxLjQtMTEuNSAxLjItMTYuOC0uOHMtMTAtNS42LTEzLjMtMTAuM2MtMi0yLjgtMy40LTYtNC4yLTkuNHMtLjktNi45LS4yLTEwLjNjLjYtMy4zIDEuOS02LjUgMy44LTkuM3M0LjQtNS4yIDcuMi03bDExNy40LTc0LjhjMi4yLTEuNCA0LjctMi41IDcuMi0zLjIgNS42LTEuNCAxMS40LTEuMSAxNi44IC45czEwIDUuNiAxMy4zIDEwLjNjMy42IDUuMSA1LjIgMTEuMyA0LjcgMTcuNGwtLjQgNC40IDQuNCAxLjNjMTYuNSA1IDMyIDEyLjggNDUuOSAyM2w2IDQuNCAyLjItNi44YzEuMi0zLjYgMi4xLTcuMyAyLjgtMTEgMi0xMS4zIDEuOC0yMi45LS44LTM0LjFzLTcuMy0yMS44LTE0LTMxLjFjLTEwLjktMTUuNy0yNi4zLTI3LjYtNDQuMi0zNC4zeiJdfSx5NXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWRlc2twcm8iLGljb246WzQ0OCw1MTIsW10sImU4NDQiLCJNNDA4LjggMzJDNDMwLjQgMzIgNDQ4IDQ5LjYgNDQ4IDcxLjJsMCAzNjkuNmMwIDIxLjYtMTcuNiAzOS4yLTM5LjIgMzkuMkwzOS4yIDQ4MEMxNy42IDQ4MCAwIDQ2Mi40IDAgNDQwLjhMMCA3MS4yQzAgNDkuNiAxNy42IDMyIDM5LjIgMzJsMzY5LjYgMHpNMTEwLjkgMjc0LjFsMCAxMTQuNCA4OS4xLS4xYzIwLjYgMCAzOS40LTMuMiA1Ni4zLTkuNXMzMS4zLTE1LjQgNDMuMi0yN2MxMi4yLTExLjkgMjEuNi0yNiAyOC4yLTQyLjEgNC42LTExLjEgNy43LTIzIDkuMi0zNS43bC00My44IDBjLTEuMSA2LjQtMi44IDEyLjQtNS4xIDE4LjItNC4yIDEwLjktMTAuMyAyMC4zLTE4LjIgMjguMi03LjkgNy43LTE3LjQgMTMuNy0yOC42IDE3LjktMTEuMSA0LjMtMjMuNSA2LjQtMzcuMyA2LjRsLTUwIDAgMC03MC42LTQzIC4xem0wLTE1MS40bDAgMTE0LjQgNDMtLjEgMC03MC43IDUwIDBjMTMuNyAwIDI2LjIgMi4xIDM3LjMgNi40IDExLjEgNC4zIDIwLjYgMTAuMyAyOC42IDE4LjMgNy45IDcuNyAxNCAxNy4xIDE4LjIgMjguMiAyLjMgNS42IDQgMTEuNSA1LjEgMTcuOGw0My45IC4xYy0xLjQtMTIuNi00LjQtMjQuNC04LjktMzUuMy02LjYtMTYuNC0xNi0zMC41LTI4LjEtNDIuMi0xMi4xLTExLjktMjYuNy0yMS4xLTQzLjYtMjcuNS0xNi45LTYuNC0zNS43LTkuNS01Ni4zLTkuNWwtODkgLjF6Il19LHc1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0YWlsd2luZC1jc3MiLGljb246WzY0MCw1MTIsW10sImU4NjYiLCJNMzIwIDY0Yy04NS4zIDAtMTM4LjcgNDIuNy0xNjAgMTI4IDMyLTQyLjcgNjkuMy01OC43IDExMi00OCAyNC4zIDYuMSA0MS43IDIzLjggNjEgNDMuMyAzMS40IDMxLjggNjcuNyA2OC43IDE0NyA2OC43IDg1LjMgMCAxMzguNy00Mi43IDE2MC0xMjgtMzIgNDIuNy02OS4zIDU4LjctMTEyIDQ4LTI0LjMtNi4xLTQxLjctMjMuOC02MS00My4zLTMxLjQtMzEuOC02Ny43LTY4LjctMTQ3LTY4Ljd6TTE2MCAyNTZjLTg1LjMgMC0xMzguNyA0Mi43LTE2MCAxMjggMzItNDIuNyA2OS4zLTU4LjcgMTEyLTQ4IDI0LjMgNi4xIDQxLjcgMjMuOCA2MSA0My4zIDMxLjQgMzEuOCA2Ny43IDY4LjcgMTQ3IDY4LjcgODUuMyAwIDEzOC43LTQyLjcgMTYwLTEyOC0zMiA0Mi43LTY5LjMgNTguNy0xMTIgNDgtMjQuMy02LjEtNDEuNy0yMy44LTYxLTQzLjMtMzEuNC0zMS44LTY3LjctNjguNy0xNDctNjguN3oiXX0sQUVhPXtmYVNxdWFyZUdpdGh1YjpERWUsZmFHaXRodWJTcXVhcmU6eDByLGZhVGhpbmtQZWFrczp2MHIsZmFHb29nbGVEcml2ZTp5MHIsZmFBdXRvcHJlZml4ZXI6dzByLGZhU3F1YXJlVmlhZGVvOiRFZSxmYVZpYWRlb1NxdWFyZTprMHIsZmFDcGFuZWw6UzByLGZhTWVuZGVsZXk6TTByLGZhRHJhZnQyZGlnaXRhbDpDMHIsZmFSZXBseWQ6ejByLGZhRW1waXJlOl8wcixmYUFjY2Vzc2libGVJY29uOlQwcixmYVF1b3JhOkwwcixmYUNjSmNiOkQwcixmYUZlZG9yYTokMHIsZmFEdW9saW5nbzpBMHIsZmFGaXJzdGRyYWZ0OkUwcixmYUZyZWVic2Q6STByLGZhT2R5c2VlOlAwcixmYUdnQ2lyY2xlOk4wcixmYUNsb3VkZmxhcmU6TzByLGZhSGFja2VycmFuazpSMHIsZmFTa3lhdGxhczpGMHIsZmFEZXNrcHJvOkIwcixmYVJlc29sdmluZzpIMHIsZmFCbGFja2JlcnJ5OnEwcixmYVN0cmlwZVM6VjByLGZhU3F1YXJlQmVoYW5jZTpBRWUsZmFCZWhhbmNlU3F1YXJlOmowcixmYVNlcnZpY2VzdGFjazpVMHIsZmFSb2NrZXRjaGF0OlcwcixmYVJlYmVsOkcwcixmYVNxdWFyZVdlYkF3ZXNvbWU6WTByLGZhTGlua3RyZWU6SzByLGZhU2ltcGx5YnVpbHQ6WjByLGZhU3R1YmJlcjpRMHIsZmFBcHBlcjpYMHIsZmFHb29nbGVTY2hvbGFyOkowcixmYVlhcm46ZWRyLGZhU3RhY2tPdmVyZmxvdzp0ZHIsZmFCbHVldG9vdGg6cmRyLGZhQ3JlYXRpdmVDb21tb25zTmNKcDphZHIsZmFSZWRkaXQ6aWRyLGZhQ29ubmVjdGRldmVsb3A6c2RyLGZhUmVzZWFyY2hnYXRlOm5kcixmYVNpZ25hbE1lc3NlbmdlcjpvZHIsZmFYaW5nOmxkcixmYVNxdWFyZUpzOkVFZSxmYUpzU3F1YXJlOmNkcixmYUZvbnRpY29uczpkZHIsZmFVcHM6dWRyLGZhQW1hem9uUGF5OnBkcixmYVBhbmRvcmE6ZmRyLGZhT3BlbmlkOmhkcixmYVZzY286bWRyLGZhR2xvYmFsZWFrczpnZHIsZmFWZW5tbzpiZHIsZmFVYnVudHU6eGRyLGZhVmlhY29pbjp2ZHIsZmFaaGlodTp5ZHIsZmFZYW5kZXg6d2RyLGZhUGl4aXY6a2RyLGZhT3BlbmFpOlNkcixmYVNpdGg6TWRyLGZhSnVsaWE6Q2RyLGZhTmZjRGlyZWN0aW9uYWw6emRyLGZhQ3JlYXRpdmVDb21tb25zQnk6X2RyLGZhVW1icmFjbzpUZHIsZmFIb29saTpMZHIsZmFTcXVhcmVHaXQ6SUVlLGZhR2l0U3F1YXJlOkRkcixmYU9kbm9rbGFzc25pa2k6JGRyLGZhRHJ1cGFsOkFkcixmYUJsb2dnZXJCOkVkcixmYUludmlzaW9uOklkcixmYUZhY2Vib29rRjpQZHIsZmFDZW50b3M6TmRyLGZhU2NhbGV3YXk6T2RyLGZhQ2NBbWF6b25QYXk6UmRyLGZhRWJheTpGZHIsZmFDb250YW86QmRyLGZhRWxsbzpIZHIsZmFTaXN0cml4OnFkcixmYVBlcmlzY29wZTpWZHIsZmFFeHBlZGl0ZWRzc2w6amRyLGZhTmFwc3RlcjpVZHIsZmFEZWxpY2lvdXM6V2RyLGZhR3VpbGRlZDpHZHIsZmFPYnNpZGlhbjpZZHIsZmFYYm94OktkcixmYVVudGFwcGQ6WmRyLGZhR29vZ2xlUGx1c0c6UWRyLGZhR2l0aHViQWx0OlhkcixmYUdldFBvY2tldDpKZHIsZmFHbGlkZTplNHIsZmFCaXR5OnQ0cixmYVdwZXhwbG9yZXI6cjRyLGZhTWVnYXBvcnQ6YTRyLGZhTGVldGNvZGU6aTRyLGZhTWRiOnM0cixmYVBhZ2U0Om40cixmYVRoZVJlZFlldGk6bzRyLGZhSmlyYTpsNHIsZmFGZWRleDpjNHIsZmFFdmVybm90ZTpkNHIsZmFVc2I6dTRyLGZhQW5ncnljcmVhdGl2ZTpwNHIsZmFNaXp1bmk6ZjRyLGZhSXRjaElvOmg0cixmYVdpbmRvd3M6bTRyLGZhU3R1bWJsZXVwb246ZzRyLGZhR29vZ2xlOkszZSxmYURpc2NvcmQ6YjRyLGZhSGFja2VyTmV3czp4NHIsZmFFbGV2ZW50eTpQRWUsZmExMXR5OnY0cixmYVRlYW1zcGVhazp5NHIsZmFTdXBwbGU6dzRyLGZhU3F1YXJlVHdpdHRlcjpORWUsZmFUd2l0dGVyU3F1YXJlOms0cixmYVZpbTpTNHIsZmFGb250QXdlc29tZTpZM2UsZmFGb250QXdlc29tZUZsYWc6TTRyLGZhRm9udEF3ZXNvbWVMb2dvRnVsbDpDNHIsZmFXaXJzaW5kaGFuZHdlcms6T0VlLGZhV3NoOno0cixmYVpvb206XzRyLGZhQ29uZmx1ZW5jZTpUNHIsZmFEaWdnOkw0cixmYVRocmVhZHM6RDRyLGZhV3ByZXNzcjpSRWUsZmFSZW5kYWN0OiQ0cixmYVlvYXN0OkE0cixmYU5pbWJscjpFNHIsZmFQaXhlbGZlZDpJNHIsZmFZYWhvbzpQNHIsZmFCbHVlc2t5Ok40cixmYVNjcmliZDpPNHIsZmFDcmVhdGl2ZUNvbW1vbnNQZDpSNHIsZmFFYXJseWJpcmRzOkY0cixmYVN5bWZvbnljYXN0czpCNHIsZmFTcXVhcmVPZG5va2xhc3NuaWtpOkZFZSxmYU9kbm9rbGFzc25pa2lTcXVhcmU6SDRyLGZhTWFya2Rvd246cTRyLGZhVHlwbzM6VjRyLGZhSm9vbWxhOmo0cixmYVdlaXhpbjpVNHIsZmFHcnVudDpXNHIsZmFTdXBwb3J0bm93Okc0cixmYVJvY2tybXM6WTRyLGZhVW5zcGxhc2g6SzRyLGZhU3F1YXJlSW5zdGFncmFtOkJFZSxmYUluc3RhZ3JhbVNxdWFyZTpaNHIsZmFGaXJzdE9yZGVyQWx0OlE0cixmYUZ1bGNydW06WDRyLGZhQXJjaExpbnV4Oko0cixmYUZlZGl2ZXJzZTplM3IsZmFCcmF2ZVJldmVyc2U6dDNyLGZhQXZpYW5leDpyM3IsZmFOczg6YTNyLGZhU3F1YXJlUGludGVyZXN0OkhFZSxmYVBpbnRlcmVzdFNxdWFyZTppM3IsZmFCbHVldG9vdGhCOnMzcixmYUdyaXBmaXJlOm4zcixmYVNxdWFyZUdvb2dsZVBsdXM6cUVlLGZhR29vZ2xlUGx1c1NxdWFyZTpvM3IsZmFHaXRlZTpsM3IsZmFYbXBwOmMzcixmYUFwcFN0b3JlOmQzcixmYVdpeDp1M3IsZmFJbnRlcmNvbTpwM3IsZmFSZWFjdGV1cm9wZTpmM3IsZmFXYXplOmgzcixmYUNyZWF0aXZlQ29tbW9uc1JlbWl4Om0zcixmYUJhbmRjYW1wOmczcixmYVNxdWFyZVdlYkF3ZXNvbWVTdHJva2U6YjNyLGZhVmltZW9WOngzcixmYVN0cmF2YTp2M3IsZmFVbmlyZWdpc3RyeTp5M3IsZmFDY0RpbmVyc0NsdWI6dzNyLGZhS3ViZXJuZXRlczprM3IsZmFQaW50ZXJlc3Q6UzNyLGZhQWxnb2xpYTpNM3IsZmFTdGFja3BhdGg6QzNyLGZhT2N0b3B1c0RlcGxveTp6M3IsZmFZYW1tZXI6XzNyLGZhTW9keDpUM3IsZmFTcXVhcmVUaHJlYWRzOkwzcixmYU9sZFJlcHVibGljOkQzcixmYVN1c2U6JDNyLGZhQXBwU3RvcmVJb3M6QTNyLGZhVWx0cmFseXRpY3NZb2xvOkUzcixmYVNxdWFyZURyaWJiYmxlOlZFZSxmYURyaWJiYmxlU3F1YXJlOkkzcixmYVVpa2l0OlAzcixmYVN1cGVycG93ZXJzOk4zcixmYVlvdXR1YmU6TzNyLGZhRW1iZXI6UjNyLGZhQm9vdHN0cmFwOkYzcixmYUl0dW5lczpCM3IsZmFTcXVhcmVYaW5nOmpFZSxmYVhpbmdTcXVhcmU6SDNyLGZhQ3NzM0FsdDpxM3IsZmFTcXVhcmVzcGFjZTpWM3IsZmFUcmVsbG86ajNyLGZhVmlhZGVvOlUzcixmYVNlYXJjaGVuZ2luOlczcixmYVVucmVhbEVuZ2luZTpHM3IsZmFQYXlwYWw6WTNyLGZhU3F1YXJlQmx1ZXNreTpLM3IsZmFEQW5kREJleW9uZDpaM3IsZmFNaWNyb3NvZnQ6UTNyLGZhRmx5OlgzcixmYUNjU3RyaXBlOkozcixmYVdvcmRwcmVzc1NpbXBsZTpldXIsZmFTZWxsc3k6dHVyLGZhRGFzaGN1YmU6cnVyLGZhR2l0dGVyOmF1cixmYVdvbGZQYWNrQmF0dGFsaW9uOml1cixmYUxhc3RmbTpzdXIsZmFTaG9wd2FyZTpudXIsZmFCbG9nZ2VyOm91cixmYUVkZ2U6bHVyLGZhSW94aG9zdDpjdXIsZmFTY2hsaXg6ZHVyLGZhREFuZEQ6dXVyLGZhVnVlanM6cHVyLGZhTWV0YTpmdXIsZmFDcmVhdGl2ZUNvbW1vbnNTaGFyZTpodXIsZmFTdHVkaW92aW5hcmk6bXVyLGZhQml0YnVja2V0Omd1cixmYVZrOmJ1cixmYUdpdGh1Yjp4dXIsZmFDb2RpZXBpZTp2dXIsZmFQaWVkUGlwZXI6eXVyLGZhUmFzcGJlcnJ5UGk6d3VyLGZhQ3NzMzprdXIsZmFIdWJzcG90OlN1cixmYUNtcGxpZDpNdXIsZmFEeWFsb2c6Q3VyLGZhRWxlbWVudG9yOnp1cixmYUZpcnN0T3JkZXI6X3VyLGZhRHJpYmJibGU6VHVyLGZhTGlua2VkaW46WjNlLGZhQ2NQYXlwYWw6THVyLGZhRGhsOkR1cixmYVRleDokdXIsZmFDbGF1ZGU6QXVyLGZhU2hvcGlmeTpFdXIsZmFTcXVhcmVSZWRkaXQ6VUVlLGZhUmVkZGl0U3F1YXJlOkl1cixmYUNyZWF0aXZlQ29tbW9uc05jOlB1cixmYUdhbGFjdGljUmVwdWJsaWM6TnVyLGZhRmFjZWJvb2s6UTNlLGZhR2l0bGFiOk91cixmYVFxOlJ1cixmYVN0cmlwZTpGdXIsZmFEYWlseW1vdGlvbjpCdXIsZmFTdGVhbTpIdXIsZmFWZW5tb1Y6cXVyLGZhU25hcGNoYXQ6V0VlLGZhU25hcGNoYXRHaG9zdDpWdXIsZmFHYWxhY3RpY1NlbmF0ZTpqdXIsZmFQaG9lbml4RnJhbWV3b3JrOlV1cixmYUdpdDpXdXIsZmFPcHRpbk1vbnN0ZXI6R3VyLGZhSmVua2luczpZdXIsZmFTbGlkZXNoYXJlOkt1cixmYVViZXI6WnVyLGZhRGlnaXRhbE9jZWFuOlF1cixmYVNvdW5kY2xvdWQ6WHVyLGZhU3F1YXJlRmlnbWE6SnVyLGZhQ3JlYXRpdmVDb21tb25zU2E6ZXByLGZhQ2hyb21lOnRwcixmYVRyYWRlRmVkZXJhdGlvbjpycHIsZmFWYWFkaW46YXByLGZhRGV2aWFudGFydDppcHIsZmFNZWRpdW06d18sZmFNZWRpdW1NOnNwcixmYU9wZW5jYXJ0Om5wcixmYVlDb21iaW5hdG9yOm9wcixmYUxpbmU6bHByLGZhQW1pbGlhOmNwcixmYUFzeW1tZXRyaWs6ZHByLGZhUGhhYnJpY2F0b3I6dXByLGZhQm90czpwcHIsZmFWaW5lOmZwcixmYU1lZHJ0OmhwcixmYU9zaTptcHIsZmFHZzpncHIsZmFCdXlzZWxsYWRzOmJwcixmYUdvb2dsZVBsdXM6eHByLGZhU2NyZWVucGFsOnZwcixmYUJpdGNvaW46eXByLGZhU3dpZnQ6d3ByLGZhRmlsZXNQaW53aGVlbDprcHIsZmFMYXJhdmVsOlNwcixmYVdwZm9ybXM6TXByLGZhU3BlYWtlckRlY2s6Q3ByLGZhRmxpY2tyOnpwcixmYUNjVmlzYTpfcHIsZmFVcHdvcms6VHByLGZhS2FrYW9UYWxrOkxwcixmYUZsdXR0ZXI6RHByLGZhQnVmZmVyOiRwcixmYUdyYXRpcGF5OkFwcixmYUdvb2dsZVBheTpFcHIsZmFBcHBsZTpJcHIsZmFUdW1ibHI6UHByLGZhUGhvZW5peFNxdWFkcm9uOk5wcixmYUNlbnRlcmNvZGU6T3ByLGZhRGViaWFuOlJwcixmYU1hc3RvZG9uOkZwcixmYVNrZXRjaDpCcHIsZmFXZWJBd2Vzb21lOkhwcixmYVNhc3M6cXByLGZhVGhyZWVtYTpWcHIsZmFTcXVhcmVXaGF0c2FwcDpHRWUsZmFXaGF0c2FwcFNxdWFyZTpqcHIsZmFTa3lwZTpVcHIsZmFBbmd1bGFyOldwcixmYUNpcmNsZVp1bGlwOkdwcixmYU9wZW5zdXNlOllwcixmYURyb3Bib3g6S3ByLGZhRGVlemVyOlpwcixmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nOlFwcixmYUplZGlPcmRlcjpYcHIsZmFSUHJvamVjdDpKcHIsZmFJbnN0YWxvZDplZnIsZmFDYW5hZGlhbk1hcGxlTGVhZjp0ZnIsZmFFdGhlcmV1bTpyZnIsZmFIb3V6ejphZnIsZmFWaWJlcjppZnIsZmFLaWNrc3RhcnRlcjpZRWUsZmFTcXVhcmVLaWNrc3RhcnRlcjpzZnIsZmFTcG90aWZ5Om5mcixmYUxlYW5wdWI6b2ZyLGZhSmF2YTpsZnIsZmFOZmNTeW1ib2w6Y2ZyLGZhV29kdTpkZnIsZmFTcXVhcmVTdGVhbTpLRWUsZmFTdGVhbVNxdWFyZTp1ZnIsZmFDcmVhdGl2ZUNvbW1vbnNOY0V1OnBmcixmYU5wbTpmZnIsZmFDbG91ZHNjYWxlOmhmcixmYVRoZW1lY286bWZyLGZhR29vZ2xlUGxheTpnZnIsZmFLb3J2dWU6YmZyLGZhVzNjOnhmcixmYUdyYXY6dmZyLGZhQXdzOnlmcixmYUdsaWRlRzp3ZnIsZmFKc2ZpZGRsZTprZnIsZmFLZXliYXNlOlNmcixmYUx1bW9uRHJvcDpNZnIsZmFGb3JnZWpvOkNmcixmYVBvc3RncmVzcWw6emZyLGZhV2VlYmx5Ol9mcixmYURvY2tlcjpUZnIsZmFNYWdlbnRvOkxmcixmYVRvckJyb3dzZXI6RGZyLGZhR2l0QWx0OiRmcixmYUZpcmVmb3hCcm93c2VyOkFmcixmYUNsb3Vkc21pdGg6RWZyLGZhV2l6YXJkc09mVGhlQ29hc3Q6SWZyLGZhQ3JlYXRpdmVDb21tb25zTmQ6UGZyLGZhVXNwczpOZnIsZmFTcXVhcmVMZXR0ZXJib3hkOk9mcixmYU1hbmRhbG9yaWFuOlJmcixmYVNsYWNrOlpFZSxmYVNsYWNrSGFzaDpYM2UsZmFBbmdlbGxpc3Q6RmZyLGZhQW5kcm9pZDpCZnIsZmFNZWV0dXA6SGZyLGZhRm9udGljb25zRmk6cWZyLGZhUGFsZmVkOlZmcixmYVdwYmVnaW5uZXI6amZyLGZhRGlhc3BvcmE6VWZyLGZhUHJvZHVjdEh1bnQ6V2ZyLGZhU3F1YXJlVXB3b3JrOkdmcixmYUN1dHRsZWZpc2g6WWZyLGZhTWVkYXBwczpLZnIsZmFQaXg6WmZyLGZhU3F1YXJlVHVtYmxyOlFFZSxmYVR1bWJsclNxdWFyZTpRZnIsZmFSZWFjdDpYZnIsZmFIdWdnaW5nRmFjZTpKZnIsZmFKeGw6ZWhyLGZhU3F1YXJlTGlua2VkaW46dGhyLGZhQ3NzOnJocixmYUhhc2hub2RlOmFocixmYVJlZGRpdEFsaWVuOmlocixmYVRpa3RvazpKM2UsZmFXb3JkcHJlc3M6c2hyLGZhSWRlYWw6bmhyLGZhUGllZFBpcGVyUHA6b2hyLGZhVXNzdW5uYWg6bGhyLGZhRm9ydEF3ZXNvbWVBbHQ6Y2hyLGZhQnVyb21vYmVsZXhwZXJ0ZTpkaHIsZmFCaWxpYmlsaTp1aHIsZmFOZW9zOnBocixmYURldjpmaHIsZmFIb3RqYXI6aGhyLGZhRG9jaHViOm1ocixmYVZpbWVvOmdocixmYU1heGNkbjpiaHIsZmFTcXVhcmVGb250QXdlc29tZVN0cm9rZTpYRWUsZmFGb250QXdlc29tZUFsdDp4aHIsZmFTcGVha2FwOnZocixmYUZhbnRhc3lGbGlnaHRHYW1lczp5aHIsZmFMaW51eDp3aHIsZmFDb3R0b25CdXJlYXU6a2hyLGZhR29vZ2xlV2FsbGV0OlNocixmYUZvdXJzcXVhcmU6TWhyLGZhU2hpcnRzaW5idWxrOkNocixmYU1pbnRiaXQ6emhyLGZhWnVsaXA6X2hyLGZhU3RheWxpbmtlZDpUaHIsZmFXZWJmbG93OkxocixmYVJlbnJlbjpEaHIsZmFLb0ZpOiRocixmYVJldjpBaHIsZmFLZXljZG46RWhyLGZhSGlyZUFIZWxwZXI6SWhyLGZhU3F1YXJlSGFja2VyTmV3czpKRWUsZmFIYWNrZXJOZXdzU3F1YXJlOlBocixmYUNyZWF0aXZlQ29tbW9uc1BkQWx0Ok5ocixmYU9yY2lkOk9ocixmYUJvYXJkR2FtZUdlZWs6ZUllLGZhQmdnOlJocixmYUJlaGFuY2U6RmhyLGZhTW9uZXJvOkJocixmYUZpZ21hOkhocixmYUluc3RhZ3JhbTpldWUsZmFQZXJieXRlOnFocixmYVNxdWFyZVZpbWVvOnRJZSxmYVZpbWVvU3F1YXJlOlZocixmYVB1c2hlZDpqaHIsZmFNaXhjbG91ZDpVaHIsZmFZYW5kZXhJbnRlcm5hdGlvbmFsOldocixmYUhpdmU6R2hyLGZhQ3JlYXRpdmVDb21tb25zWmVybzpZaHIsZmFTcXVhcmVTbmFwY2hhdDpySWUsZmFTbmFwY2hhdFNxdWFyZTpLaHIsZmFUaGVtZWlzbGU6WmhyLGZhRGFydExhbmc6UWhyLGZhRGVwbG95ZG9nOlhocixmYUZsaXBib2FyZDpKaHIsZmFCdXlOTGFyZ2U6ZTZyLGZhV2F0Y2htYW5Nb25pdG9yaW5nOnQ2cixmYUhpcHM6cjZyLGZhQ2xvdWR2ZXJzaWZ5OmE2cixmYUdvb2RyZWFkczppNnIsZmFUaWRhbDpzNnIsZmFVbml0eTpuNnIsZmFUZW5jZW50V2VpYm86bzZyLGZhRnJlZUNvZGVDYW1wOmw2cixmYVhUd2l0dGVyOmM2cixmYVN0aWNrZXJNdWxlOmQ2cixmYVR3aXRjaDp1NnIsZmFLaWNrc3RhcnRlcks6cDZyLGZhQ3JpdGljYWxSb2xlOmY2cixmYVN0ZWFtU3ltYm9sOmg2cixmYU1haWxjaGltcDptNnIsZmFMdW1vbjpnNnIsZmFOdXRyaXRpb25peDpiNnIsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXM6eDZyLGZhUmVkaGF0OnY2cixmYVNxdWFyZVBpZWRQaXBlcjphSWUsZmFQaWVkUGlwZXJTcXVhcmU6eTZyLGZhV2hhdHNhcHA6dzZyLGZhSW1kYjprNnIsZmFQeXRob246UzZyLGZhQ2FzaEFwcDpNNnIsZmFQaW50ZXJlc3RQOkM2cixmYVdobWNzOno2cixmYUpvZ2V0Ol82cixmYVNxdWFyZVlvdXR1YmU6aUllLGZhWW91dHViZVNxdWFyZTpUNnIsZmFBdGxhc3NpYW46TDZyLGZhUGllZFBpcGVySGF0OkQ2cixmYUludGVybmV0RXhwbG9yZXI6JDZyLGZhQWlyYm5iOkE2cixmYUpzOkU2cixmYVF1aW5zY2FwZTpJNnIsZmFBZHZlcnNhbDpQNnIsZmFDcmVhdGl2ZUNvbW1vbnM6TjZyLGZhTm90aW9uOk82cixmYUNocm9tZWNhc3Q6UjZyLGZhVWx0cmFseXRpY3NIdWI6RjZyLGZhV2lraXBlZGlhVzpCNnIsZmFTaXRyb3g6SDZyLGZhU3F1YXJlR2l0bGFiOnNJZSxmYUdpdGxhYlNxdWFyZTpxNnIsZmFTaG9lbGFjZTpWNnIsZmFPcGVuc3RyZWV0bWFwOmo2cixmYVNlbGxjYXN0OlU2cixmYU1peDpXNnIsZmFDY0FwcGxlUGF5Okc2cixmYVNvbGFuYTpZNnIsZmFUeXBlc2NyaXB0Oks2cixmYUJyYXZlOlo2cixmYUV0c3k6UTZyLGZhQnRjOlg2cixmYUFkbjpKNnIsZmFTcXVhcmVYVHdpdHRlcjplbXIsZmFTcXVhcmVGb250QXdlc29tZTp0bXIsZmFGb3J1bWJlZTpybXIsZmE0Mkdyb3VwOm5JZSxmYUlubm9zb2Z0OmFtcixmYVN0dW1ibGV1cG9uQ2lyY2xlOmltcixmYVN5bWZvbnk6c21yLGZhU2FsZXNmb3JjZTpubXIsZmFTb3VyY2V0cmVlOm9tcixmYUxpbmtlZGluSW46bG1yLGZhSHRtbDU6Y21yLGZhUnVzdDpkbXIsZmFIb3JuYmlsbDp1bXIsZmFQaHA6cG1yLGZhRGlzcXVzOmZtcixmYTUwMHB4OmhtcixmYUFmZmlsaWF0ZXRoZW1lOm1tcixmYVJlZFJpdmVyOmdtcixmYVR3aXR0ZXI6dHVlLGZhRm9ydEF3ZXNvbWU6Ym1yLGZhTWl4ZXI6eG1yLGZhTHlmdDp2bXIsZmFBcHBsZVBheTp5bXIsZmFBcnRzdGF0aW9uOndtcixmYU5vZGVKczprbXIsZmFVbmNoYXJ0ZWQ6U21yLGZhUGxheXN0YXRpb246TW1yLGZhTWljcm9ibG9nOkNtcixmYUdpdGtyYWtlbjp6bXIsZmFUZWxlZ3JhbTpvSWUsZmFUZWxlZ3JhbVBsYW5lOl9tcixmYVVsdHJhbHl0aWNzOlRtcixmYUl0dW5lc05vdGU6TG1yLGZhTGVzczpEbXIsZmFGaXJlZm94OiRtcixmYUthZ2dsZTpBbXIsZmFGYWNlYm9va01lc3NlbmdlcjpFbXIsZmFBdWRpYmxlOkltcixmYVBhdHJlb246UG1yLGZhVm52Ok5tcixmYVBhZ2VsaW5lczpPbXIsZmFBbWF6b246Um1yLGZhRW52aXJhOkZtcixmYUxpbm9kZTpCbXIsZmFBY2N1c29mdDpIbXIsZmFFcmxhbmc6cW1yLGZhVW5pc29uOlZtcixmYUNjRGlzY292ZXI6am1yLGZhU2FmYXJpOlVtcixmYVNwYWNlQXdlc29tZTpXbXIsZmFOb2RlOkdtcixmYUNvZGVwZW46WW1yLGZhUmF2ZWxyeTpLbXIsZmFBbGlwYXk6Wm1yLGZhQ2NBbWV4OlFtcixmYVBpZWRQaXBlckFsdDpYbXIsZmFMZXR0ZXJib3hkOkptcixmYU9wZXJhOmU1cixmYVdlaWJvOnQ1cixmYVJlYWRtZTpyNXIsZmFHb2xhbmc6YTVyLGZhU3RhY2tFeGNoYW5nZTppNXIsZmFHdWxwOnM1cixmYVllbHA6bjVyLGZhR29mb3JlOm81cixmYUF2aWF0bzpsNXIsZmFQYWRsZXQ6YzVyLGZhRWRnZUxlZ2FjeTpkNXIsZmFTcXVhcmVMYXN0Zm06bEllLGZhTGFzdGZtU3F1YXJlOnU1cixmYUdvb2RyZWFkc0c6cDVyLGZhQ2NNYXN0ZXJjYXJkOmY1cixmYURpc2NvdXJzZTpoNXIsZmFCbGFja1RpZTptNXIsZmFTcXVhcmVGYWNlYm9vazpjSWUsZmFGYWNlYm9va1NxdWFyZTpnNXIsZmFCYXR0bGVOZXQ6YjVyLGZhQmltb2JqZWN0Ong1cixmYVN2ZWx0ZTp2NXIsZmFTcXVhcmVEZXNrcHJvOnk1cixmYVRhaWx3aW5kQ3NzOnc1cn19KTt2YXIgRUVhLGRJZSxTNXIsTTVyLHVJZSxDNXIsTV8sejVyLF81cixUNXIsTDVyLHBJZSxENXIsJDVyLEE1cixDXyxFNXIsZkllLEk1cixoSWUsUDVyLE41cixPNXIsUjVyLG1JZSxGNXIsZ0llLEI1cixiSWUsSDVyLHhJZSxxNXIsdkllLFY1cix5SWUsajVyLHdJZSxVNXIsVzVyLGtJZSxHNXIsU0llLFk1cixNSWUsSzVyLENJZSxaNXIsUTVyLHpJZSxYNXIsX0llLEo1cixUSWUsZThyLExJZSx0OHIsREllLHI4cixhOHIsaThyLHJ1ZSxzOHIsbjhyLG84cixsOHIsYzhyLGQ4cix1OHIscDhyLGF1ZSxmOHIsaDhyLCRJZSxtOHIsZzhyLGI4cix4OHIsdjhyLHk4cix3OHIsazhyLEFJZSxTOHIsTThyLEM4cix6eSx6OHIsXzhyLEVJZSxUOHIsTDhyLElJZSxEOHIsZHVlLCQ4cixBOHIsaXVlLEU4cixJOHIsUEllLFA4cixOOHIsTzhyLE5JZSxSOHIsT0llLEY4cixzdWUsQjhyLEg4cixSSWUscThyLEZJZSxWOHIsajhyLFU4cixCSWUsVzhyLEhJZSxHOHIscUllLFk4cixWSWUsSzhyLFo4cixROHIsWDhyLGpJZSxKOHIsZTdyLFVJZSx0N3IscjdyLFdJZSxhN3IsaTdyLEdJZSxzN3IsbjdyLG83cixrXyxsN3IsYzdyLGQ3cix6Xyx1N3IscDdyLGY3cixZSWUsaDdyLG03cixLSWUsZzdyLFpJZSxiN3IsU18seDdyLHY3cix5N3IsUUllLHc3cixudWUsazdyLFM3cixNN3IsQzdyLFhJZSx6N3Isb3VlLF83cixUN3IsSkllLEw3cixlUGUsRDdyLCQ3cix0UGUsQTdyLHJQZSxFN3IsbHVlLEk3cixQN3IsTjdyLF9fLE83cixSN3IsRjdyLEI3cixhUGUsSDdyLGlQZSxxN3Isc1BlLFY3cixuUGUsajdyLG9QZSxVN3IsbFBlLFc3cixjdWUsRzdyLFk3cixLN3IsWjdyLGNQZSxRN3IsZFBlLFg3cix1UGUsSjdyLHBQZSxlOXIsdDlyLHI5cixhOXIsaTlyLHM5cixuOXIsZlBlLG85cixoUGUsbDlyLGM5cixtUGUsZDlyLGdQZSx1OXIsYlBlLHA5cix1dWUsZjlyLHhQZSxoOXIsbTlyLHZQZSxnOXIseVBlLGI5cix4OXIsdjlyLHdQZSx5OXIsdzlyLGtQZSxrOXIsUzlyLE05cixDOXIsU1BlLHo5cixNUGUsXzlyLENQZSxUOXIsTDlyLEQ5cix6UGUsJDlyLF9QZSxBOXIsVFBlLEU5cixJOXIsTFBlLFA5cixEUGUsTjlyLE85ciwkUGUsUjlyLEY5cixCOXIsSUVhLEg5cj11KCgpPT57RUVhPSJmYXIiLGRJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtbWludXMiLGljb246WzQ0OCw1MTIsWzYxNzY3LCJtaW51cy1zcXVhcmUiXSwiZjE0NiIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTM2IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFM1cj1kSWUsTTVyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLWNoZWNrIixpY29uOls0NDgsNTEyLFtdLCJmMjc0IiwiTTMyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyem0yMzAuNyA2NS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjExLjQgMzc0LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSx1SWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI0MCAwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni00OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxDNXI9dUllLE1fPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhc3RlIixpY29uOls1MTIsNTEyLFsiZmlsZS1jbGlwYm9hcmQiXSwiZjBlYSIsIk02NCA0OGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC00OC0xMTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnptMTc2IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDEwNCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDUuNiAwYzguOC04LjYgMTktMTUuOCAzMC4yLTIxLjEgLjEtLjkgLjItMS45IC4yLTIuOXpNNDQ4IDQ2NGwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsMTAxLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0NjQgNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjI0IDIyNGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zbC01OC41LTU4LjVjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMMjg4IDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6Il19LHo1cj1NXyxfNXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJmMGE1IiwiTTY0IDEyOGwxNzcuNiAwYy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZsMCAxNi0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMjI0IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA0OGMwIDUyLjUtMzMuNyA5Ny4xLTgwLjcgMTEzLjQgLjUtMy4xIC43LTYuMiAuNy05LjQgMC0yMC05LjItMzcuOS0yMy42LTQ5LjcgNC45LTkgNy42LTE5LjQgNy42LTMwLjMgMC0xNS4xLTUuMy0yOS0xNC00MCA4LjgtMTEgMTQtMjQuOSAxNC00MGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MHptMzItODBsMCAwYy0xOCAwLTM0LjYgNi00OCAxNkw2NCA4MEMyOC43IDgwIDAgMTA4LjcgMCAxNDRzMjguNyA2NCA2NCA2NGw4MiAwYy0xLjMgNS4xLTIgMTAuNS0yIDE2IDAgMjUuMyAxNC43IDQ3LjIgMzYgNTcuNi0yLjYgNy00IDE0LjUtNCAyMi40IDAgMjAgOS4yIDM3LjkgMjMuNiA0OS43LTQuOSA5LTcuNiAxOS40LTcuNiAzMC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC00OGMwLTkyLjgtNzUuMi0xNjgtMTY4LTE2OGwtMjQgMHpNMjU2IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwek0yNDAgMjI0YzAgNS41IC43IDEwLjkgMiAxNmwtMzQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwzMiAwIDAgMTZ6bTI0IDY0bDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjQgMHoiXX0sVDVyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtZXhjZWwiLGljb246WzM4NCw1MTIsW10sImYxYzMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptOTkuMiAyNjUuNmMtOC0xMC42LTIzLTEyLjgtMzMuNi00LjhzLTEyLjggMjMtNC44IDMzLjZMMTYyIDM0NCAxMjQuOCAzOTMuNmMtOCAxMC42LTUuOCAyNS42IDQuOCAzMy42czI1LjYgNS44IDMzLjYtNC44TDE5MiAzODQgMjIwLjggNDIyLjRjOCAxMC42IDIzIDEyLjggMzMuNiA0LjhzMTIuOC0yMyA0LjgtMzMuNkwyMjIgMzQ0IDI1OS4yIDI5NC40YzgtMTAuNiA1LjgtMjUuNi00LjgtMzMuNnMtMjUuNi01LjgtMzMuNiA0LjhMMTkyIDMwNCAxNjMuMiAyNjUuNnoiXX0sTDVyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNjEuNCA2NEMyNy41IDY0IDAgOTEuNSAwIDEyNS40IDAgMTI2LjMgMCAxMjcuMSAuMSAxMjhMMCAxMjggMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTYtLjEgMGMwLS45IC4xLTEuNyAuMS0yLjYgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjRMNjEuNCA2NHpNNDY0IDE5Mi4zTDQ2NCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTkxLjcgMTU0LjggMTE3LjRjMzEuNCAyMy45IDc0LjkgMjMuOSAxMDYuNCAwTDQ2NCAxOTIuM3pNNDggMTI1LjRDNDggMTE4IDU0IDExMiA2MS40IDExMmwzODkuMiAwYzcuNCAwIDEzLjQgNiAxMy40IDEzLjQgMCA0LjItMiA4LjItNS4zIDEwLjdMMjgwLjIgMjcxLjVjLTE0LjMgMTAuOC0zNC4xIDEwLjgtNDguNCAwTDUzLjMgMTM2LjFjLTMuMy0yLjUtNS4zLTYuNS01LjMtMTAuN3oiXX0scEllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1kb3duIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWRvd24iXSwiZjE1MCIsIk0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDB6bTY0LTE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMHpNMjI0IDM1MmMtNi43IDAtMTMtMi44LTE3LjYtNy43bC0xMDQtMTEyYy02LjUtNy04LjItMTcuMi00LjQtMjUuOVMxMTAuNSAxOTIgMTIwIDE5MmwyMDggMGM5LjUgMCAxOC4yIDUuNyAyMiAxNC40czIuMSAxOC45LTQuNCAyNS45bC0xMDQgMTEyYy00LjUgNC45LTEwLjkgNy43LTE3LjYgNy43eiJdfSxENXI9cEllLCQ1cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMuMyAwYzEwLjQtMzYuOSA0NC40LTY0IDg0LjctNjRzNzQuMiAyNy4xIDg0LjcgNjRsMTAyLjYgMGM0LjktMTcuNCAxNS4xLTMyLjcgMjguNy00My45TDM2OCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTMuMyAzNjhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTUuNCAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQwLjYgNDAuNmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjR6TTQxNiAyNTZsMTEyIDAgMC0yMy40YzAtNC4yLTEuNy04LjMtNC43LTExLjNsLTQwLjYtNDAuNmMtMy0zLTcuMS00LjctMTEuMy00LjdsLTU1LjQgMCAwIDgwem0wIDQ4bDAgMzIuNGMyLjYtLjIgNS4zLS40IDgtLjQgNDAuMyAwIDc0LjIgMjcuMSA4NC43IDY0bDMuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwLTExMiAwek0xNTIgNDY0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMjcyIDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxBNXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5LjdDMTE4LjYgNDUuMyA1NiAxMTUuNCA1NiAyMDBsMCAxNC41YzAgMzcuNy0xMCA3NC43LTI5IDEwNy4zTDUuMSAzNTkuMkMxLjggMzY1IDAgMzcxLjUgMCAzNzguMiAwIDM5OS4xIDE2LjkgNDE2IDM3LjggNDE2bDM3Mi40IDBjMjAuOSAwIDM3LjgtMTYuOSAzNy44LTM3LjggMC02LjctMS44LTEzLjMtNS4xLTE5TDQyMSAzMjEuN2MtMTktMzIuNi0yOS02OS42LTI5LTEwNy4zbDAtMTQuNWMwLTg0LjYtNjIuNi0xNTQuNy0xNDQtMTY2LjNsMC05LjdjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTM5Mi40IDM2OGwtMzM2LjkgMCAxMi45LTIyLjFDOTEuNyAzMDYgMTA0IDI2MC42IDEwNCAyMTQuNWwwLTE0LjVjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBzMTIwIDUzLjcgMTIwIDEyMGwwIDE0LjVjMCA0Ni4yIDEyLjMgOTEuNSAzNS41IDEzMS40TDM5Mi40IDM2OHpNMTU2LjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sQ189e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWVzc2FnZSIsaWNvbjpbNTEyLDUxMixbImNvbW1lbnQtYWx0Il0sImYyN2EiLCJNMjAzLjcgNTEyLjlzMCAwIDAgMGwtMzcuOCAyNi43Yy03LjMgNS4yLTE2LjkgNS44LTI0LjkgMS43UzEyOCA1MjkgMTI4IDUyMGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzMjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZsLTEyMC40IDAtOTEuOSA2NC45em02NC4zLTEwNC4xYzguMS01LjcgMTcuOC04LjggMjcuNy04LjhMNDE2IDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiA4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTYgMGMxMC40IDAgMTkuMyA2LjYgMjIuNiAxNS45IC45IDIuNSAxLjQgNS4yIDEuNCA4LjFsMCA0OS43YzMyLjctMjMuMSA2My4zLTQ0LjcgOTEuOS02NC45eiJdfSxFNXI9Q18sZkllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZGl6enkiLGljb246WzUxMiw1MTIsWyJkaXp6eSJdLCJmNTY3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxJNXI9ZkllLGhJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0LTg4IDAgMCA4MCA3MiAwem0xNi0xMjhsMC04MC04OCAwIDAgODAgODggMHptLTEzNiAwbDAtODAtODAgMCAwIDgwIDgwIDB6bS0xMjggMGwwLTgwLTg4IDAgMCA4MCA4OCAwek00OCAzNTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNzIgMCAwLTgwLTg4IDB6bTEzNiAwbDAgODAgODAgMCAwLTgwLTgwIDB6TTEyMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHoiXX0sUDVyPWhJZSxONXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC11cCIsaWNvbjpbMzg0LDUxMixbOTc1N10sImYwYTYiLCJNNjQgNjRsMCAxNzcuNmM1LjItMSAxMC41LTEuNiAxNi0xLjZsMTYgMCAwLTE3NmMwLTguOC03LjItMTYtMTYtMTZTNjQgNTUuMiA2NCA2NHpNODAgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgNjYuMyA1My43IDEyMCAxMjAgMTIwbDQ4IDBjNTIuNSAwIDk3LjEtMzMuNyAxMTMuNC04MC43LTMuMSAuNS02LjIgLjctOS40IC43LTIwIDAtMzcuOS05LjItNDkuNy0yMy42LTkgNC45LTE5LjQgNy42LTMwLjMgNy42LTE1LjEgMC0yOS01LjMtNDAtMTQtMTEgOC44LTI0LjkgMTQtNDAgMTRsLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtODAgMHpNMCAzMjBsMCAwYzAtMTggNi0zNC42IDE2LTQ4TDE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBzNjQgMjguNyA2NCA2NGwwIDgyYzUuMS0xLjMgMTAuNS0yIDE2LTIgMjUuMyAwIDQ3LjIgMTQuNyA1Ny42IDM2IDctMi42IDE0LjUtNCAyMi40LTQgMjAgMCAzNy45IDkuMiA0OS43IDIzLjYgOS00LjkgMTkuNC03LjYgMzAuMy03LjYgMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDkyLjgtNzUuMiAxNjgtMTY4IDE2OGwtNDggMEM3NS4yIDUxMiAwIDQzNi44IDAgMzQ0bDAtMjR6bTMzNi02NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNMTYwIDI0MGM1LjUgMCAxMC45IC43IDE2IDJsMC0zNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDMyIDE2IDB6bTY0IDI0bDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjR6Il19LE81cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk03MiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTY4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwYzQuNSAwIDguOSAxLjMgMTIuNyAzLjZsNjQgNDBjNyA0LjQgMTEuMyAxMi4xIDExLjMgMjAuNGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAuNy00Ni45LTI5LjMtMTQ1LjEgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmwxMDQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkw3MiAyMDhjLTM5LjggMC03Mi0zMi4yLTcyLTcyUzMyLjIgNjQgNzIgNjRsMjA5LjYgMGM0Ni43IDAgOTAuOSAyMS41IDExOS43IDU4LjNsNzguNCAxMDAuMWMyMC45IDI2LjcgMzIuMyA1OS43IDMyLjMgOTMuN0w1MTIgNDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA3LjljMC0yMy4yLTcuOC00NS44LTIyLjEtNjQuMUwzNjMuNSAxNTEuOWMtMTkuNy0yNS4yLTQ5LjktMzkuOS04MS45LTM5LjlMNzIgMTEyeiJdfSxSNXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWZ1bGwiLGljb246WzUxMiw1MTIsWzEyODk5NywxMjg5OTgsMTI4OTk5LDEyOWUzLDEyOTAwMSwxMjkwMDIsMTI5MDAzLDExMDM1LDExMDM2XSwiZjQ1YyIsIk00NDggNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LG1JZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHoiXX0sRjVyPW1JZSxnSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYyYzUuMS0xLjMgMTAuNS0yIDE2LTJsMzIwIDBjNS41IDAgMTAuOSAuNyAxNiAybDAtMTYyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNNDggMzIwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAzMDRjLTguOCAwLTE2IDcuMi0xNiAxNnpNMCAzMjBMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTZ6bTIxNiA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxCNXI9Z0llLGJJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNTZsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxINXI9YkllLHhJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0Mi43YzAtNC4yLTEuNy04LjMtNC43LTExLjNMMzIwIDg2LjYgMzIwIDE3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHptODAgMGwwIDgwIDEyOCAwIDAtODAtMTI4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjQyLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjhjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w0NDggNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDMyMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LHE1cj14SWUsdkllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc1LjkgNDAuNyAxNDIuNCAxMDEuNSAxNzguNy0zLjYtMTAuOS01LjUtMjIuNi01LjUtMzQuN2wwLTM3LjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDM3LjVjMCAxMi4xLTEuOSAyMy44LTUuNSAzNC43IDYwLjgtMzYuMyAxMDEuNS0xMDIuNyAxMDEuNS0xNzguN3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjgtNzUuN2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXMxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjN6bTI2My42LTIxLjFjNC41IDYuOCAzLjEgMTUuOS0zLjEgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41ek0zMjAgNDE2bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sVjVyPXZJZSx5SWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE5My4xIDMyYy0xOC43IDAtMzYuMiA5LjQtNDYuNiAyNC45TDEyMC41IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNTYuNSAwLTI2LTM5LjFDMzU1LjEgNDEuNCAzMzcuNiAzMiAzMTguOSAzMkwxOTMuMSAzMnptLTYuNyA1MS42YzEuNS0yLjIgNC0zLjYgNi43LTMuNmwxMjUuNyAwYzIuNyAwIDUuMiAxLjMgNi43IDMuNmwzMy4yIDQ5LjhjNC41IDYuNyAxMS45IDEwLjcgMjAgMTAuN2w2OS4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsNjkuMyAwYzggMCAxNS41LTQgMjAtMTAuN2wzMy4yLTQ5Ljh6TTI1NiAzODRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0xOTIgMjcyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sajVyPXlJZSx3SWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0wIDI1NmMwLTI5LjYgNS01Ny45IDE0LjItODQuNGwxNy4zIDE2LjktNC42IDI3Yy00LjIgMjQuNCA1LjYgNDYuMiAyMiA1OS45IDkuOCAxMDUuOCA5OC44IDE4OC43IDIwNy4xIDE4OC43czE5Ny40LTgyLjggMjA3LjEtMTg4LjZjMTYuNC0xMy43IDI2LjEtMzUuNCAyMi01OS45bC00LjYtMjcgMTcuMy0xNi45YzkuMiAyNi40IDE0LjIgNTQuOCAxNC4yIDg0LjQgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2ek0yNTYgNDhjLTE1LjIgMC0zMCAxLjYtNDQuMyA0LjdMMjAxLjQgMzEuOEMxOTcgMjMgMTkxLjEgMTUuOCAxODQuMiAxMC4yIDIwNyAzLjYgMjMxLjEgMCAyNTYgMHM0OSAzLjYgNzEuOCAxMC4yQzMyMC45IDE1LjggMzE1IDIzIDMxMC42IDMxLjhMMzAwLjMgNTIuN0MyODYgNDkuNiAyNzEuMiA0OCAyNTYgNDh6TTM3Mi4yIDMwMi4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0zNTMuNyA1My4xYzUuOS0xMS45IDIyLjgtMTEuOSAyOC43IDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMzY4IDIxNiAzMjEuNSAyNDAuNWMtMTEuNyA2LjItMjUuNS0zLjgtMjMuMi0xNi45bDguOS01MS44LTM3LjctMzYuN2MtOS41LTkuMy00LjMtMjUuNCA4LjktMjcuM2w1Mi03LjYgMjMuMy00Ny4yem0tMTk1LjMgMGwyMy4zIDQ3LjIgNTIgNy42YzEzLjEgMS45IDE4LjQgMTggOC45IDI3LjNsLTM3LjcgMzYuNyA4LjkgNTEuOGMyLjIgMTMuMS0xMS41IDIzLTIzLjIgMTYuOUwxNDQgMjE2IDk3LjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMmM1LjktMTEuOSAyMi44LTExLjkgMjguNyAweiJdfSxVNXI9d0llLFc1cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDgwQzIyMi44IDgwIDE2OS4yIDEwOS42IDEyOC4xIDE0Ny43IDg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOC4xIDM2NC4zIDE2OS4yIDQwMi40IDIyMi44IDQzMiAyODggNDMyczExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NiA1MTMgMjI2IDQ4Ni40IDE4My41IDQ0Ny45IDE0Ny43IDQwNi44IDEwOS42IDM1My4yIDgwIDI4OCA4MHpNOTUuNCAxMTIuNkMxNDIuNSA2OC44IDIwNy4yIDMyIDI4OCAzMnMxNDUuNSAzNi44IDE5Mi42IDgwLjZjNDYuOCA0My41IDc4LjEgOTUuNCA5MyAxMzEuMSAzLjMgNy45IDMuMyAxNi43IDAgMjQuNi0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xLTQ3LjEgNDMuNy0xMTEuOCA4MC42LTE5Mi42IDgwLjZTMTQyLjUgNDQzLjIgOTUuNCAzOTkuNGMtNDYuOC00My41LTc4LjEtOTUuNC05My0xMzEuMS0zLjMtNy45LTMuMy0xNi43IDAtMjQuNiAxNC45LTM1LjcgNDYuMi04Ny43IDkzLTEzMS4xek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMjkuNi0xNi4xLTU1LjUtNDAtNjkuMy0xLjQgNTkuNy00OS42IDEwNy45LTEwOS4zIDEwOS4zIDEzLjggMjMuOSAzOS43IDQwIDY5LjMgNDB6bS03OS42LTg4LjRjMi41IC4zIDUgLjQgNy42IC40IDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMi42LS4yLTUuMS0uNC03LjYtMzcuNCAzLjktNjcuMiAzMy43LTcxLjEgNzEuMXptNDUuNi0xMTVjMTAuOC0zIDIyLjItNC41IDMzLjktNC41IDguOCAwIDE3LjUgLjkgMjUuOCAyLjYgLjMgLjEgLjUgLjEgLjggLjIgNTcuOSAxMi4yIDEwMS40IDYzLjcgMTAxLjQgMTI1LjIgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNjEuNiAwLTExMy00My41LTEyNS4yLTEwMS40LTEuOC04LjYtMi44LTE3LjUtMi44LTI2LjYgMC0xMSAxLjQtMjEuOCA0LTMyIC4yLS43IC4zLTEuMyAuNS0xLjkgMTEuOS00My40IDQ2LjEtNzcuNiA4OS41LTg5LjV6Il19LGtJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNDEuOCAxMi4zIDgwLjcgMzMuNiAxMTMuMyA4LjIgNDQuNyA0Ny4zIDc4LjYgOTQuMyA3OC43IDI0LjcgMTAuMyA1MS43IDE2IDgwLjEgMTYgMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4ek0yODggMzUyYy01LjUgMC0xMC45IC42LTE2IDEuOCAwLS42IDAtMS4yIDAtMS44IDAtMTYuMi00LTMxLjUtMTEuMS00NC45IDguNy0yIDE3LjgtMy4xIDI3LjEtMy4xIDQwLjIgMCA3NS43IDE5LjggOTcuNSA1MCA3LjcgMTAuOCA1LjMgMjUuOC01LjUgMzMuNXMtMjUuOCA1LjMtMzMuNS01LjVjLTEzLjEtMTguMi0zNC40LTMwLTU4LjUtMzB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODUuNCAyNzYuOGM2LjUgNy44IDEyLjYgMTYuMSAxOC4zIDI0LjYgOSAxMy40IDIwLjMgMzAuMiAyMC4zIDQ3LjQgMCAyOC4zLTIxLjUgNTEuMi00OCA1MS4ycy00OC0yMi45LTQ4LTUxLjJjMC0xNy4yIDExLjItMzQgMjAuMy00Ny40IDUuNy04LjUgMTEuOS0xNi43IDE4LjMtMjQuNiAyLjQtMi45IDUuNy00LjggOS40LTQuOHM3IDEuOSA5LjQgNC44eiJdfSxHNXI9a0llLFNJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNGwwIDU2LTQ4IDBjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNDYuNyAyMC43IDgwLjQgNDMuNiAxMDMuNCA4LjEgOC4yIDE2LjUgMTQuOSAyNC4zIDIwLjQgOS4yIDYuNSAyMS43IDUuNyAzMC4xLTEuOXMxMC4yLTIwIDQuNS0yOS44Yy0zLjYtNi4zLTYuNS0xNC45LTYuNS0yNi43IDAtMzYuMiAyOS4zLTY1LjUgNjUuNS02NS41bDQ2LjUgMCAwIDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDd6bTcgOTdsMC0yMi4xIDc4LjEgNzguMS03OC4xIDc4LjEgMC0yMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0TDMzOCAxOTJjLTUwLjkgMC05My45IDMzLjUtMTA4LjMgNzkuNi0zLjMtOS40LTUuMi0xOS44LTUuMi0zMS42IDAtNjEuOSA1MC4xLTExMiAxMTItMTEybDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR6bS0zMjAtOGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQgMHoiXX0sWTVyPVNJZSxNSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTI0MCA0MzJMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE3Ni04OCAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDg4ek0zODAuMSAzMjBMMjg4IDQxMi4xIDI4OCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjguMSAwek0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQyOS4zIDMzOC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6Il19LEs1cj1NSWUsQ0llPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgNDAwek03My4yIDM1Mmw2NC42IDAtNzkuNS04OC4zQzUxLjcgMjU2LjMgNDggMjQ2LjggNDggMjM2LjlMNDggMjA0YzAtMTYuMSAxMS45LTI5LjUgMjcuNC0zMS43IDExLjgtMS43IDIwLjYtMTEuOCAyMC42LTIzLjhMOTYgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjQgNy4yIDAgMTMuNiAzLjEgMTggOC4xIDQuNiA1LjIgMTEuMSA4LjEgMTggOC4xczEzLjQtMyAxOC04LjFjNC40LTUgMTAuOC04LjEgMTgtOC4xIDguNSAwIDE1LjkgNC40IDIwLjIgMTEuMSA2LjkgMTAuNyAyMC45IDE0LjIgMzIgOCAzLjUtMS45IDcuNC0zLjEgMTEuOC0zLjEgMTAuNiAwIDE5LjcgNi45IDIyLjggMTYuNiAzLjggMTEuNyAxNS45IDE4LjcgMjggMTYgMS43LS40IDMuNC0uNiA1LjItLjYgMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA5Mi4yYzAgMTQuNC0zLjUgMjguNS0xMC4yIDQxLjJsLTUyLjIgOTguNiA1NC4zIDAgNDAuMy03Ni4yYzEwLjQtMTkuNiAxNS44LTQxLjUgMTUuOC02My42bDAtOTIuMmMwLTM4LjQtMzAuMS02OS44LTY4LjEtNzEuOS0xMi45LTE5LjMtMzQuOS0zMi4xLTU5LjktMzIuMS01LjcgMC0xMS4yIC43LTE2LjUgMS45LTEyLjctMTEuMS0yOS4zLTE3LjktNDcuNS0xNy45LTEzLjEgMC0yNS40IDMuNS0zNiA5LjYtMTAuNi02LjEtMjIuOS05LjYtMzYtOS42LTM5LjggMC03MiAzMi4yLTcyIDcybDAgNTguN0MxOS43IDE0MyAwIDE3MS4yIDAgMjA0bDAgMzIuOWMwIDIxLjcgOCA0Mi43IDIyLjYgNTguOUw3My4yIDM1MnoiXX0sWjVyPUNJZSxRNXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTMyNS4zIDkwLjhjOS4xLTQuOCAyMC42LTMuMyAyOC4yIDQuM2wzOS44IDM5LjggMy43IDMuM2M5LjEgNy4xIDIwLjkgMTAgMzIuNCA3LjdsNDYuNC05LjMgMy41LS40YzgtLjQgMTUuOCAzLjIgMjAuNiA5LjggNS41IDcuNiA2LjEgMTcuNiAxLjYgMjUuOGwtMTEyLjYgMjAyLjYgNTEuNSA3MC45IDEuOCAyLjdjNCA2LjYgNi4yIDE0LjIgNi4yIDIyIDAgMjMuMy0xOC45IDQyLjEtNDIuMSA0Mi4xbC0yOTkuOCAwYy0yMS44IDAtMzkuOC0xNi42LTQxLjktMzcuOGwtLjItNC4zIC4xLTMuM2MuNi03LjcgMy40LTE1LjEgNy45LTIxLjRsNTEuNS03MC45LTExMi41LTIwMi42Yy00LjUtOC4yLTMuOS0xOC4zIDEuNi0yNS44czE0LjktMTEuMiAyNC4xLTkuNGw0Ni40IDkuM2MxMy4xIDIuNiAyNi43LTEuNSAzNi4xLTEwLjlMMTU5LjUgOTUgMTYzIDkyLjJjOC42LTUuOCAyMC4xLTUuNiAyOC41IDEuMWw0MCAzMiAyLjggMi4xYzE0LjQgOS42IDMzLjUgOC45IDQ3LjItMi4xbDQwLTMyIDMuOC0yLjV6TTE2NC43IDQwMGwtNDYuNiA2NCAyNzYuNyAwLTQ2LjYtNjQtMTgzLjYgMHpNMzExLjUgMTYyLjhjLTMwLjEgMjQuMS03Mi4xIDI1LjYtMTAzLjggNC41bC02LjItNC41LTIzLjMtMTguNi0yNC42IDI0LjZjLTE5LjggMTkuOC00Ny43IDI4LjktNzUuMSAyNC44bDg4LjEgMTU4LjUgMTc5LjggMCA4OC0xNTguNWMtMjUuNyAzLjgtNTEuNy0zLjktNzEuMS0yMWwtNC0zLjctMjQuNi0yNC42LTIzLjIgMTguNnpNMjU2LjUgNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgweiJdfSx6SWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRlYXJzIixpY29uOls2NDAsNTEyLFsxMjg1MTQsImdyaW4tdGVhcnMiXSwiZjU4OCIsIk01MDQuMSAzNTNDNTEyLjkgMzY3LjIgNTI1LjMgMzc5IDUzOS44IDM4Ny4yIDQ5NS4xIDQ2MiA0MTMuNCA1MTIgMzIwIDUxMlMxNDQuOSA0NjIgMTAwLjIgMzg3LjJjMTQuNi04LjIgMjYuOS0yMCAzNS44LTM0LjMgMzQuOSA2NiAxMDQuMiAxMTEgMTg0LjEgMTExczE0OS4yLTQ1IDE4NC4xLTExMXptMTYuNC0xNTIuNUM0OTYuMiAxMTIuNiA0MTUuNyA0OCAzMjAgNDhTMTQzLjggMTEyLjYgMTE5LjUgMjAwLjVjLTEwLjYtNC44LTIyLjctNi44LTM1LjQtNWwtMTMuNCAxLjlDOTcuMiA4NC4zIDE5OC44IDAgMzIwIDBTNTQyLjggODQuMyA1NjkuMyAxOTcuNGwtMTMuNC0xLjljLTEyLjctMS44LTI0LjggLjItMzUuNCA1ek00NTUuOCAzMjBjLTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44ek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAgMjguNC0yMyA1MS40LTUxLjQgNTEuNC0yNS42IDAtNDcuMy0xOC44LTUwLjktNDQuMUw1MzEgMjYxLjFjLTEuNS0xMC42IDcuNS0xOS42IDE4LjEtMTguMWw0Ni43IDYuN2MyNS4zIDMuNiA0NC4xIDI1LjMgNDQuMSA1MC45em0tNjQwIDBjMC0yNS42IDE4LjgtNDcuMyA0NC4xLTUwLjlMOTAuOSAyNDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDMzMy4yIDc3IDM1MiA1MS40IDM1MiAyMyAzNTIgMCAzMjkgMCAzMDAuNnoiXX0sWDVyPXpJZSxfSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGVuLXRvLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImVkaXQiXSwiZjA0NCIsIk00NDEgNTguOUw0NTMuMSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw0MjQgMTM0LjEgMzc3LjkgODggNDA3IDU4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6TTIwOS44IDI1Ni4yTDM0NCAxMjEuOSAzOTAuMSAxNjggMjU1LjggMzAyLjJjLTIuOSAyLjktNi41IDUtMTAuNCA2LjFsLTU4LjUgMTYuNyAxNi43LTU4LjVjMS4xLTMuOSAzLjItNy41IDYuMS0xMC40ek0zNzMuMSAyNUwxNzUuOCAyMjIuMmMtOC43IDguNy0xNSAxOS40LTE4LjMgMzEuMWwtMjguNiAxMDBjLTIuNCA4LjQtLjEgMTcuNCA2LjEgMjMuNnMxNS4yIDguNSAyMy42IDYuMWwxMDAtMjguNmMxMS44LTMuNCAyMi41LTkuNyAzMS4xLTE4LjNMNDg3IDEzOC45YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOEw0NzQuOSAyNUM0NDYuOC0zLjEgNDAxLjItMy4xIDM3My4xIDI1ek04OCA2NEMzOS40IDY0IDAgMTAzLjQgMCAxNTJMMCA0MjRjMCA0OC42IDM5LjQgODggODggODhsMjcyIDBjNDguNiAwIDg4LTM5LjQgODgtODhsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBMODggNDY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTI3MmMwLTIyLjEgMTcuOS00MCA0MC00MGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NHoiXX0sSjVyPV9JZSxUSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTMwLjIgMTUuOWMtOC44LTEwLjctMTguNS0yMC45LTI5LTMwLTMtMi42LTcuNC0yLjYtMTAuNCAwLTEwLjUgOS4xLTIwLjEgMTkuMy0yOSAzMC0xNC43IDE3LjgtMjkuOCA0MC4xLTI5LjggNjQuMSAwIDM2LjQgMjcuNiA2NCA2NCA2NHM2NC0yNy42IDY0LTY0YzAtMjQtMTUuMi00Ni4zLTI5LjgtNjQuMXptLTEzMiA4LjlDMzY0LjggOC45IDMyNy40IDAgMjg4IDAgMTQ2LjYgMCAzMiAxMTQuNiAzMiAyNTZTMTQ2LjYgNTEyIDI4OCA1MTIgNTQ0IDM5Ny40IDU0NCAyNTZjMC0yNC40LTMuNC00OC05LjgtNzAuNC0xMS45IDQuMi0yNC43IDYuNC0zOC4yIDYuNC0zLjQgMC02LjgtLjEtMTAuMi0uNCA2LjYgMjAuMyAxMC4yIDQxLjkgMTAuMiA2NC40IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM4MCAzNzAuOSA4MCAyNTYgMTczLjEgNDggMjg4IDQ4YzM0LjggMCA2Ny41IDguNSA5Ni4zIDIzLjYgMS40LTE3LjQgNi45LTMzLjEgMTMuOC00Ni44ek00MjMuOCAzMjBjNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDE5LjggNTUuOSA3My4xIDk1LjkgMTM1LjggOTUuOSA2Mi43IDAgMTE2LTQwLjEgMTM1LjgtOTZ6TTE4MCAyMDhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6bTE4OC0yOGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6Il19LGU4cj1USWUsTEllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sdDhyPUxJZSxESWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LHI4cj1ESWUsYThyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNMjkwLjUgMjg3LjdMNDkxLjQgODYuOSAzNTkgNDU2LjMgMjkwLjUgMjg3Ljd6TTQ1Ny40IDUzTDI1Ni42IDI1My44IDg4IDE4NS4zIDQ1Ny40IDUzek0zOC4xIDIxNi44bDIwNS44IDgzLjYgODMuNiAyMDUuOGM1LjMgMTMuMSAxOC4xIDIxLjcgMzIuMyAyMS43IDE0LjcgMCAyNy44LTkuMiAzMi44LTIzLjFMNTcwLjYgOGMzLjUtOS44IDEtMjAuNi02LjMtMjhzLTE4LjItOS44LTI4LTYuM0wzOS40IDE1MS43Yy0xMy45IDUtMjMuMSAxOC4xLTIzLjEgMzIuOCAwIDE0LjIgOC42IDI3IDIxLjcgMzIuM3oiXX0saThyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYXJ0IixpY29uOls1MTIsNTEyLFsxMjgxNTMsMTI4MTU0LDEyODE1NSwxMjgxNTYsMTI4NDIwLDEyOTI5MywxMjkyOTQsMTI5NTA1LDk4MjksMTAwODQsNjE1NzhdLCJmMDA0IiwiTTM3OC45IDgwYy0yNy4zIDAtNTMgMTMuMS02OSAzNS4ybC0zNC40IDQ3LjZjLTQuNSA2LjItMTEuNyA5LjktMTkuNCA5LjlzLTE0LjktMy43LTE5LjQtOS45bC0zNC40LTQ3LjZjLTE2LTIyLjEtNDEuNy0zNS4yLTY5LTM1LjItNDcgMC04NS4xIDM4LjEtODUuMSA4NS4xIDAgNDkuOSAzMiA5OC40IDY4LjEgMTQyLjMgNDEuMSA1MCA5MS40IDk0IDEyNS45IDEyMC4zIDMuMiAyLjQgNy45IDQuMiAxNCA0LjJzMTAuOC0xLjggMTQtNC4yYzM0LjUtMjYuMyA4NC44LTcwLjQgMTI1LjktMTIwLjMgMzYuMi00My45IDY4LjEtOTIuNCA2OC4xLTE0Mi4zIDAtNDctMzguMS04NS4xLTg1LjEtODUuMXpNMjcxIDg3LjFjMjUtMzQuNiA2NS4yLTU1LjEgMTA3LjktNTUuMSA3My41IDAgMTMzLjEgNTkuNiAxMzMuMSAxMzMuMSAwIDY4LjYtNDIuOSAxMjguOS03OS4xIDE3Mi44LTQ0LjEgNTMuNi05Ny4zIDEwMC4xLTEzMy44IDEyNy45LTEyLjMgOS40LTI3LjUgMTQuMS00My4xIDE0LjFzLTMwLjgtNC43LTQzLjEtMTQuMUMxNzYuNCA0MzggMTIzLjIgMzkxLjUgNzkuMSAzMzggNDIuOSAyOTQuMSAwIDIzMy43IDAgMTY1LjEgMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43eiJdfSxydWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA0OCAwIDAtNjQgMzg5LjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6TTgwIDQwMGwwLTI1NiAzNTYuNCAwLTQ4LjIgMTA4LjVjLTUuNSAxMi40LTUuNSAyNi42IDAgMzlMNDM2LjQgNDAwIDgwIDQwMHoiXX0sczhyPXJ1ZSxuOHI9cnVlLG84cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDY0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMzA0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwem0tNjQtMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0eiJdfSxsOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTk3LjUgNDAwbDUwLTE2MCAzNzkuNCAwLTUwIDE2MC0zNzkuNCAwem0xOTAuNyA0OEw0NzcgNDQ4YzIxIDAgMzkuNi0xMy42IDQ1LjgtMzMuN2w1MC0xNjBjOS43LTMwLjktMTMuNC02Mi4zLTQ1LjgtNjIuM2wtMzc5LjQgMGMtMjEgMC0zOS42IDEzLjYtNDUuOCAzMy43TDgwLjIgMjk0LjQgODAuMiA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjgyLjkgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2bDExNy4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDQ4IDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzMwLjkgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI3My4zIDQ0LjhDMjYyLjIgMzYuNSAyNDguOCAzMiAyMzQuOSAzMkw5Ni4yIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMHoiXX0sYzhyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxkOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMjg1LjctMTUuOGMxMC44IDIuNiAxOC40IDEyLjIgMTguNCAyMy4zbDAgMzg3LjFjMCA5LTUuMSAxNy4zLTEzLjEgMjEuNEwxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM0wxOTMuMSAxMjUuMyAyNTguOC0zLjNjNS05LjkgMTYuMi0xNSAyNy0xMi40ek0yNTYuMSAxMDcuNEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDkyLjItNDYuOSAwLTI3Mi42eiJdfSx1OHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTQwMi42IDUwLjJjLTUuNCAxLjctMTEuMyAxLjgtMTYuMi0uOS01LjgtMy4yLTExLjgtNi4yLTE3LjgtOC45LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMy44LTUuNS03LjgtMTAuOC0xMi0xNi0zLjUtNC40LTQuNS0xMC4yLTMuOC0xNS44IC4yLTEuOSAuNC0zLjkgLjQtNS45IDAtMjYuMS0yMS4yLTQ3LjItNDcuMi00Ny4yLTQuOSAwLTkuNyAuOC0xNC4yIDIuMnpNMzIuNSAxMzIuOWMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNi4xIDIuOC0xMiA1LjctMTcuOCA4LjktNC45IDIuNy0xMC45IDIuNi0xNi4yIC45LTQuNS0xLjQtOS4yLTIuMi0xNC4yLTIuMi0yNi4xIDAtNDcuMiAyMS4yLTQ3LjIgNDcuMiAwIDIgLjEgNCAuNCA1LjkgLjcgNS42LS4zIDExLjQtMy44IDE1LjgtNC4yIDUuMi04LjIgMTAuNS0xMiAxNnpNNDMyIDI4OGExNzYgMTc2IDAgMSAwIC0zNTIgMCAxNzYgMTc2IDAgMSAwIDM1MiAwek0zOTYuNSA0NjIuNUMzNTguMSA0OTMuNCAzMDkuMiA1MTIgMjU2IDUxMnMtMTAyLjEtMTguNi0xNDAuNS00OS41TDczIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Mi41LTQyLjVDNTAuNiAzOTAuMSAzMiAzNDEuMiAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTMuMi0xOC42IDEwMi4xLTQ5LjUgMTQwLjVMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Mi41LTQyLjV6TTI4MCAxODRsMCA5NC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy00LjUtNC41LTctMTAuNi03LTE3bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LHA4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMTY4IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDguNC0xLjQgMTYuNS00LjEgMjRMNDQwIDQzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxNjggODB6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJMMCAxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDI3MiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMzA0YzAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDQ4MHpNMTkyIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6bTE1MiAyNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMTYgMjU2bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGF1ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3NwaXRhbCIsaWNvbjpbNTc2LDUxMixbMTI3OTczLDYyNTg5LCJob3NwaXRhbC1hbHQiLCJob3NwaXRhbC13aWRlIl0sImYwZjgiLCJNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEwxNzYgMHpNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI3MmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI3MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTcyek0xMTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTk2IDMzNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMjAgMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNi0xMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjY0IDEwNGwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sZjhyPWF1ZSxoOHI9YXVlLCRJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTkybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTQ4IDExMmwwLTk2IDk2IDAgMCA5Ni05NiAweiJdfSxtOHI9JEllLGc4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk00OC4yIDY2LjhjLS4xLS44LS4yLTEuNy0uMi0yLjVsMC0uMmMwLTguOCA3LjItMTYgMTYtMTYgLjkgMCAxLjkgLjEgMi44IC4yIDcuNSAxLjMgMTMuMiA3LjkgMTMuMiAxNS44IDAgOC44LTcuMiAxNi0xNiAxNi03LjkgMC0xNC41LTUuNy0xNS44LTEzLjJ6TTAgNjRjMCAyNi45IDE2LjUgNDkuOSA0MCA1OS4zbDAgMTA1LjNjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NHptMzY4IDBhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMzI0LjcgODhjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAxMDUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTIwMS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMTA1LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMjAxLjMgMHpNMzg0IDI3MmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTgwIDI4OGMwIDcuOS01LjcgMTQuNS0xMy4yIDE1LjgtLjggLjEtMS43IC4yLTIuNSAuMmwtLjIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtLjkgLjEtMS45IC4yLTIuOCAxLjMtNy41IDcuOS0xMy4yIDE1LjgtMTMuMiA4LjggMCAxNiA3LjIgMTYgMTZ6bTQzNi43LTQwYzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTIwLjctNDggMCAwIDIwLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MGwtNTIuNyAwIDAgOS42YzEwLjcgMTAuOSAxOS4xIDIzLjkgMjQuNiAzOC40bDI4IDB6bTU5LjMtOGExNiAxNiAwIDEgMSAwLTMyIDE2IDE2IDAgMSAxIDAgMzJ6TTI3MS44IDQ1MC43YTE2IDE2IDAgMSAxIC0zMS41LTUuNSAxNiAxNiAwIDEgMSAzMS41IDUuNXptMzAxLjUgMTNjLTcuNS0xLjMtMTMuMi03LjktMTMuMi0xNS44IDAtOC44IDcuMi0xNiAxNi0xNiA3LjkgMCAxNC41IDUuNyAxNS44IDEzLjJsMCAuMWMuMSAuOSAuMiAxLjggLjIgMi43IDAgOC44LTcuMiAxNi0xNiAxNi0uOSAwLTEuOS0uMS0yLjgtLjJ6Il19LGI4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50IixpY29uOls1MTIsNTEyLFsxMjg0ODksNjE2NjldLCJmMDc1IiwiTTUxLjkgMzg0LjlDMTkuMyAzNDQuNiAwIDI5NC40IDAgMjQwIDAgMTA3LjUgMTE0LjYgMCAyNTYgMFM1MTIgMTA3LjUgNTEyIDI0MCAzOTcuNCA0ODAgMjU2IDQ4MGMtMzYuNSAwLTcxLjItNy4yLTEwMi42LTIwTDM3IDUwOS45Yy0zLjcgMS42LTcuNSAyLjEtMTEuNSAyLjEtMTQuMSAwLTI1LjUtMTEuNC0yNS41LTI1LjUgMC00LjMgMS4xLTguNSAzLjEtMTIuMmw0OC44LTg5LjR6bTM3LjMtMzAuMmMxMi4yIDE1LjEgMTQuMSAzNi4xIDQuOCA1My4ybC0xOCAzMy4xIDU4LjUtMjUuMWMxMS44LTUuMSAyNS4yLTUuMiAzNy4xLS4zIDI1LjcgMTAuNSA1NC4yIDE2LjQgODQuMyAxNi40IDExNy44IDAgMjA4LTg4LjggMjA4LTE5MlMzNzMuOCA0OCAyNTYgNDggNDggMTM2LjggNDggMjQwYzAgNDIuOCAxNS4xIDgyLjQgNDEuMiAxMTQuN3oiXX0seDhyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXBhd24iLGljb246WzM4NCw1MTIsWzk4MjNdLCJmNDQzIiwiTTE5Mi0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDI3LjYtOS4zIDUyLjktMjQuOSA3My4yIDkuOCAzIDE2LjkgMTIuMSAxNi45IDIyLjggMCAxMy4zLTEwLjcgMjQtMjQgMjRsLS42IDAgMjQuNiAxNjAgNTMuNiA2N2M2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNjMuNCA1MTJjLTI2LjIgMC00Ny40LTIxLjItNDcuNC00Ny40IDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZsNTMuNi02NyAyNC42LTE2MC0uNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjggNy4xLTE5LjggMTYuOS0yMi44LTE1LjYtMjAuMy0yNC45LTQ1LjYtMjQuOS03My4yIDAtNjYuMyA1My43LTEyMCAxMjAtMTIwek0xMTUuOSA0MDBsLTUxLjIgNjQgMjU0LjcgMC01MS4yLTY0LTE1Mi4yIDB6bTM2LjItMTg0LjdsLTIxIDEzNi43IDEyMS45IDAtMjEtMTM2LjctMS4xLTcuMy03Ny42IDAtMS4xIDcuM3pNMTkyIDE2YTcyIDcyIDAgMSAwIDAgMTQ0IDcyIDcyIDAgMSAwIDAtMTQ0eiJdfSx2OHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItcGx1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MSIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xMDQgNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0seThyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsaXBib2FyZCIsaWNvbjpbMzg0LDUxMixbMTI4MjAzXSwiZjMyOCIsIk0yMzIgOTZsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptMCA0OGMzNy4xIDAgNjcuNi0yOCA3MS42LTY0TDMyMCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzNTJjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNi40IDBjNCAzNiAzNC41IDY0IDcxLjYgNjRsODAgMHpNMjkxLjkgMzJDMjc5IDEyLjcgMjU3IDAgMjMyIDBMMTUyIDBjLTI1IDAtNDcgMTIuNy01OS45IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTI4LjEgMHoiXX0sdzhyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRodW1icy1kb3duIixpY29uOls1MTIsNTEyLFsxMjgwNzgsNjE1NzZdLCJmMTY1IiwiTTM2MCAzMmw3LjQgLjRjMzUgMy42IDYyLjUgMzIuMiA2NC40IDY3LjcgMTcuOCAxMS44IDMwLjEgMzEuNCAzMiA1My45bC4yIDZjMCA1LjctLjcgMTEuMi0yIDE2LjUgMTAuMiAxMS41IDE2LjggMjYuMyAxNy44IDQyLjdsLjIgNC44YzAgMTMuMi0zLjYgMjUuNC05LjggMzYgNC45IDguNCA4LjIgMTcuOSA5LjMgMjhsLjQgOGMwIDM3LjMtMjguMyA2Ny45LTY0LjYgNzEuNmwtNy40IC40LTEwOS43IDAgMTQuMSAzMCAzLjEgNy42YzEyLjUgMzUuNy0xLjggNzUuNS0zNC4yIDk1bC03LjIgMy45Yy0zNy41IDE3LjYtODEuNyAzLjYtMTAyLjYtMzEuMmwtLjYtLjktMi43LTUtLjYtMS4yLTMwLjEtNjRjLTkuNCAxNy44LTI4IDI5LjktNDkuNSAyOS45bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDE1MmMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEyLjQgMCAyMy45IDQuMSAzMy4yIDExIDEzLjItMjEuNCAzMi0zOS40IDU1LTUxLjZsMTIuMi02LjUgLjctLjMgNi42LTMuMiAuNy0uMyA3LjEtM2MxNi43LTYuNiAzNC41LTkuOSA1Mi42LTkuOUwzNjAgMzJ6TTI1NS45IDgwYy0xMiAwLTIzLjkgMi4zLTM1LjEgNi42bC00LjcgMi01LjMgMi42IDAgMC0xMi4yIDYuNWMtMjkuMiAxNS41LTQ4LjMgNDQuOS01MC43IDc3LjZsLS4yIDggMCAxMTIuOSAuMSA0LjFjLjUgOC4yIDIuNSAxNi4yIDYgMjMuN2w1Ni44IDEyMC45IDIuMSAzLjhjOC40IDEzLjcgMjYgMTkuMSA0MC44IDEyLjJsMi45LTEuNmMxMy03LjggMTguNy0yMy43IDEzLjctMzhsLTEuMi0zLTMwLjItNjQuMmMtMy41LTcuNC0yLjktMTYuMSAxLjUtMjMuMXMxMi0xMS4xIDIwLjItMTEuMWwxNDcuNSAwIDIuNC0uMWMxMS4zLTEuMSAyMC4zLTEwLjEgMjEuNC0yMS40bC4xLTIuNWMwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM0LjQtMy45IDcuNC05LjMgOC0xNS4zbC4yLTIuN2MwLTguNC00LjQtMTUuOS0xMS4yLTIwLjItMTAuNy02LjktMTQuMi0yMC45LTgtMzIgMS41LTIuNiAyLjUtNS42IDIuOS04LjZsLjItMy4yYzAtMTAuNi02LjktMTkuNi0xNi42LTIyLjgtMTEuNy0zLjgtMTguNy0xNS45LTE2LTI4IC4yLS45IC4zLTEuOCAuNC0yLjZsLjItMi42YzAtMTIuNC05LjUtMjIuNi0yMS42LTIzLjhMMzYwIDgwIDI1NS45IDgwek01NiAxNDRjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAweiJdfSxrOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNMjU2IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE2MCAzMjBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDE2Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LEFJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMjMwLjcgODkuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sUzhyPUFJZSxNOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk0yMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCA4MS44IDk4LjFjMjQuNyAyOS42IDM4LjIgNjcgMzguMiAxMDUuNiAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZsLTguNiA4LjYgNDYuNSA1OC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw0Ny40IDUxMkMyMS4yIDUxMiAwIDQ5MC44IDAgNDY0LjYgMCA0NTMuOSAzLjcgNDQzLjQgMTAuNCA0MzVsNDYuNS01OC4yLTguNi04LjZDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTIwIDQ4IDEwNCA0OEM5MC43IDQ4IDgwIDM3LjMgODAgMjRTOTAuNyAwIDEwNCAwTDIxNiAwek05NC40IDQwNi44bC00NS43IDU3LjIgMjIyLjcgMC00NS43LTU3LjEtNS41LTYuOS0xMjAuMyAwLTUuNSA2Ljh6TTE1Ni45IDc4LjdMNzUuMSAxNzYuOGMtMTUuMyAxOC40LTI0LjYgNDEtMjYuNyA2NC43TDQ4IDI1MS43YzAgMzEgMTIuMyA2MC43IDM0LjIgODIuN2wxNy43IDE3LjcgMTIwLjIgMGM2LjItNi4yIDEyLjEtMTIuMSAxNy44LTE3LjcgMjEuOS0yMS45IDM0LjItNTEuNiAzNC4yLTgyLjZsLS40LTEwLjJjLTEuNS0xNy02LjctMzMuMy0xNS4yLTQ4TDIwOSAyNDFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTEuOC01MS44LTYzLjctNzYuNS0zLjEtMy44LTMuMSAzLjh6Il19LEM4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNTEyIDQxNmMwIDM1LjMtMjguNSA2NC02My45IDY0TDY0IDQ4MGMtMzUuNCAwLTY0LTI4LjctNjQtNjRMMCAxNjRjLjEtMTUuNSA3LjgtMzAgMjAuNS0zOC44TDIwNi0yLjdjMzAuMS0yMC43IDY5LjgtMjAuNyA5OS45IDBMNDkxLjUgMTI1LjJjMTIuOCA4LjggMjAuNCAyMy4zIDIwLjUgMzguOGwwIDI1MnpNNjQgNDMybDM4NC4xIDBjOC44IDAgMTUuOS03LjEgMTUuOS0xNmwwLTE5MS43LTE1NC44IDExNy40Yy0zMS40IDIzLjktNzQuOSAyMy45LTEwNi40IDBMNDggMjI0LjMgNDggNDE2YzAgOC45IDcuMiAxNiAxNiAxNnpNNDYzLjYgMTY0LjRMMjc4LjcgMzYuOGMtMTMuNy05LjQtMzEuNy05LjQtNDUuNCAwTDQ4LjQgMTY0LjQgMjMxLjggMzAzLjVjMTQuMyAxMC44IDM0LjEgMTAuOCA0OC40IDBMNDYzLjYgMTY0LjR6Il19LHp5PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjE1MzIsInRpbWVzLWNpcmNsZSIsInhtYXJrLWNpcmNsZSJdLCJmMDU3IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sejhyPXp5LF84cj16eSxFSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXVwIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXVwIl0sImYxNTEiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIyNCA2NGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3oiXX0sVDhyPUVJZSxMOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTkuNCA0MzJsLTEzNC44IDBjLTE1LjggMC0yOC42LTEyLjgtMjguNi0yOC42IDAtNi40IDIuMS0xMi41IDYtMTcuNmw2Ny42LTg2LjlDMTc1IDI5MiAxODMuMyAyODggMTkyIDI4OHMxNyA0IDIyLjQgMTAuOUwyODIgMzg1LjljMy45IDUgNiAxMS4yIDYgMTcuNiAwIDE1LjgtMTIuOCAyOC42LTI4LjYgMjguNnpNMTEyIDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LElJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtcmlnaHQiXSwiZjE1MiIsIk00MDAgOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMHpNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42eiJdfSxEOHI9SUllLGR1ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4IDAgMTUuNCA0IDE5LjkgMTAuNmw1OC44IDg3LjQgMTAzLjQtMjAuMmM3LjgtMS41IDE1LjkgLjkgMjEuNiA2LjZzOC4xIDEzLjggNi42IDIxLjZMNDc4IDE3Ny4zIDU2NS40IDIzNi4xQzU3MiAyNDAuNSA1NzYgMjQ4IDU3NiAyNTZzLTQgMTUuNC0xMC42IDE5LjlMNDc4IDMzNC43IDQ5OC4yIDQzOGMxLjUgNy44LS45IDE1LjktNi42IDIxLjZzLTEzLjggOC4xLTIxLjYgNi42TDM2Ni43IDQ0NiAzMDcuOSA1MzMuNEMzMDMuNCA1NDAgMjk2IDU0NCAyODggNTQ0cy0xNS40LTQtMTkuOS0xMC42TDIwOS4zIDQ0NiAxMDUuOSA0NjYuMmMtNy44IDEuNS0xNS45LS45LTIxLjYtNi42cy04LjEtMTMuOC02LjYtMjEuNkw5OCAzMzQuNyAxMC42IDI3NS45QzQgMjcxLjQgMCAyNjQgMCAyNTZzNC0xNS40IDEwLjYtMTkuOUw5OCAxNzcuMyA3Ny44IDczLjljLTEuNS03LjggLjktMTUuOSA2LjYtMjEuNnMxMy44LTguMSAyMS42LTYuNmwxMDMuMyAyMC4yIDU4LjgtODcuNCAxLjgtMi4zQzI3NC40LTI5IDI4MS0zMiAyODgtMzJ6bS00Ny44IDEzOGMtNS40IDgtMTUgMTItMjQuNSAxMC4ybC04NC0xNi40IDE2LjQgODRjMS44IDkuNS0yLjIgMTkuMS0xMC4yIDI0LjVMNjcgMjU2IDEzOCAzMDMuOGM4IDUuNCAxMiAxNSAxMC4yIDI0LjVsLTE2LjQgODQgODQtMTYuNCAzLjUtLjRjOC4zLS40IDE2LjMgMy42IDIxIDEwLjZsNDcuOCA3MSA0Ny44LTcxIDIuMi0yLjhjNS42LTYuMSAxNC05IDIyLjMtNy4zbDg0IDE2LjQtMTYuNC04NGMtMS44LTkuNSAyLjItMTkuMSAxMC4yLTI0LjVsNzEtNDcuOC03MS00Ny44Yy04LTUuNC0xMi0xNS0xMC4yLTI0LjVsMTYuNC04NC04NCAxNi40Yy05LjUgMS44LTE5LjEtMi4yLTI0LjUtMTAuMmwtNDcuOC03MS00Ny44IDcxek0yODggMzc2YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMC0xOTJhNzIgNzIgMCAxIDAgMCAxNDQgNzIgNzIgMCAxIDAgMC0xNDR6Il19LCQ4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTI4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTM2IDcyYzguNSAwIDE2LjQgNC41IDIwLjcgMTEuOGw4MCAxMzZjNC40IDcuNCA0LjQgMTYuNiAuMSAyNC4xUzM1Mi42IDM4NCAzNDQgMzg0bC0yNDAgMGMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwxNy4yIDI0LjYgNDYuNS03OWM0LjMtNy4zIDEyLjItMTEuOCAyMC43LTExLjh6Il19LEE4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjk2LjUgMjkxLjFDMzIxIDI2NS4yIDMzNiAyMzAuNCAzMzYgMTkyIDMzNiAxMTIuNSAyNzEuNSA0OCAxOTIgNDhTNDggMTEyLjUgNDggMTkyYzAgMzguNCAxNSA3My4yIDM5LjUgOTkuMSAyMS4zIDIyLjQgNDQuOSA1NCA1My4zIDkyLjlsMTAyLjQgMGM4LjQtMzkgMzItNzAuNSA1My4zLTkyLjl6bTM0LjggMzNDMzA3LjcgMzQ5IDI4OCAzNzkuNCAyODggNDEzLjdsMCAxOC4zYzAgNDQuMi0zNS44IDgwLTgwIDgwbC0zMiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE4LjNDOTYgMzc5LjQgNzYuMyAzNDkgNTIuNyAzMjQuMSAyMCAyODkuNyAwIDI0My4yIDAgMTkyIDAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmMwIDUxLjItMjAgOTcuNy01Mi43IDEzMi4xek0xNDQgMTg0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNiAzOS40LTg4IDg4LTg4IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHoiXX0saXVlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImFkZHJlc3MtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDAsImNvbnRhY3QtY2FyZCIsInZjYXJkIl0sImYyYmIiLCJNNTEyIDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyMGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDQ0OCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDggMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0tMzIgNDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDB6TTM3NiAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAweiJdfSxFOHI9aXVlLEk4cj1pdWUsUEllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xNzYgMjQwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTkyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE4NCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxQOHI9UEllLE44cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtOC4zLTQuMy0xNi0xMS4zLTIwLjRzLTE1LjktNC44LTIzLjMtMS4xTDM1Mi41IDg4LjEgMTgwIDI5LjRjLTEzLjctNC43LTI4LjctMy44LTQxLjkgMi4zTDEzLjggOTAuM0M1LjQgOTQuMiAwIDEwMi43IDAgMTEyTDAgNDY0YzAgOC4yIDQuMiAxNS45IDExLjEgMjAuM3MxNS42IDQuOSAyMy4xIDEuNGwxMjcuMy01OS45IDE3MC43IDU2LjljMTMuNyA0LjYgMjguNSAzLjcgNDEuNi0yLjVsMTI0LjQtNTguNWM4LjQtNCAxMy44LTEyLjQgMTMuOC0yMS43bDAtMzUyek0xNDQgODIuMWwwIDI5OS05NiA0NS4yIDAtMjk5IDk2LTQ1LjJ6bTQ4IDMwMy4zbDAtMzAxLjEgMTI4IDQzLjUgMCAzMDAuMy0xMjgtNDIuN3pNMzY4IDEzNGw5Ni00Ny40IDAgMjk4LjItOTYgNDUuMiAwLTI5NnoiXX0sTzhyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtZG93biIsaWNvbjpbMzg0LDUxMixbXSwiZjBhNyIsIk02NCA0NDhsMC0xNzcuNmM1LjIgMSAxMC41IDEuNiAxNiAxLjZsMTYgMCAwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNnpNODAgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDQ4IDBjNTIuNSAwIDk3LjEgMzMuNyAxMTMuNCA4MC43LTMuMS0uNS02LjItLjctOS40LS43LTIwIDAtMzcuOSA5LjItNDkuNyAyMy42LTktNC45LTE5LjQtNy42LTMwLjMtNy42LTE1LjEgMC0yOSA1LjMtNDAgMTQtMTEtOC44LTI0LjktMTQtNDAtMTRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtODAgMHpNMCAxOTJsMCAwYzAgMTggNiAzNC42IDE2IDQ4bDAgMjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC04MmM1LjEgMS4zIDEwLjUgMiAxNiAyIDI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNiA3IDIuNiAxNC41IDQgMjIuNCA0IDIwIDAgMzcuOS05LjIgNDkuNy0yMy42IDkgNC45IDE5LjQgNy42IDMwLjMgNy42IDM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODhDMzg0IDc1LjIgMzA4LjggMCAyMTYgMEwxNjggMEM3NS4yIDAgMCA3NS4yIDAgMTY4bDAgMjR6bTMzNiA2NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NHpNMTYwIDI3MmM1LjUgMCAxMC45LS43IDE2LTJsMCAzNGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyIDE2IDB6bTY0LTI0bDAtNDBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjR6Il19LE5JZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUjhyPU5JZSxPSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZSIsaWNvbjpbNTEyLDUxMixbMTI4NTM5LCJncmluLXRvbmd1ZSJdLCJmNTg5IiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc0LjEgMzguOCAxMzkuMiA5Ny4xIDE3Ni0uNy01LjItMS4xLTEwLjYtMS4xLTE2bDAtNTMuNWMtMTAuMi0xMi42LTE4LjMtMjYuOS0yMy44LTQyLjQtNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC01LjUgMTUuNi0xMy42IDI5LjktMjMuOCA0Mi41bDAgNTMuNWMwIDUuNC0uNCAxMC44LTEuMSAxNiA1OC40LTM2LjggOTcuMS0xMDEuOSA5Ny4xLTE3NnptNDggMGMwIDExNi4zLTc3LjYgMjE0LjYtMTgzLjkgMjQ1LjctMTkuNSAxNi40LTQ0LjYgMjYuMy03Mi4xIDI2LjNzLTUyLjYtOS45LTcyLjEtMjYuM0M3Ny42IDQ3MC42IDAgMzcyLjMgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2ek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2IDIwOGwwLTM3LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCAzNy40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LEY4cj1PSWUsc3VlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZ1dGJvbCIsaWNvbjpbNTEyLDUxMixbOTkxNywiZnV0Ym9sLWJhbGwiLCJzb2NjZXItYmFsbCJdLCJmMWUzIiwiTTM4NyAyMjguM2MtNC40LTIuOC03LjYtNy05LjItMTEuOXMtMS40LTEwLjIgLjUtMTVMNDExLjYgMTE4Yy0xOS45LTIyLjQtNDQuNi00MC41LTcyLjQtNTIuN2wtNjkuMSA1Ny42Yy00IDMuMy05IDUuMS0xNC4xIDUuMXMtMTAuMi0xLjgtMTQuMS01LjFMMTcyLjggNjUuM2MtMjcuOCAxMi4yLTUyLjUgMzAuMy03Mi40IDUyLjdsMzMuNCA4My40YzEuOSA0LjggMi4xIDEwLjEgLjUgMTVzLTQuOSA5LjEtOS4yIDExLjlMNDkgMjc2LjJjMyAzMC45IDEyLjcgNTkuNyAyNy42IDg1LjJsODkuNy02YzUuMi0uMyAxMC4zIDEuMSAxNC41IDQuMnM3LjIgNy40IDguNCAxMi41bDIyIDg3LjJjMTQuNCAzLjIgMjkuNCA0LjggNDQuOCA0LjhzMzAuMy0xLjcgNDQuOC00LjhsMjItODcuMmMxLjMtNSA0LjItOS40IDguNC0xMi41czkuMy00LjUgMTQuNS00LjJsODkuNyA2YzE1LTI1LjQgMjQuNy01NC4zIDI3LjYtODUuMUwzODcgMjI4LjN6TTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnptNjIgMjIxYzguNCA2LjEgMTEuOSAxNi45IDguNyAyNi44bC0xOC4zIDU2LjNjLTMuMiA5LjktMTIuNCAxNi42LTIyLjggMTYuNmwtNTkuMiAwYy0xMC40IDAtMTkuNi02LjctMjIuOC0xNi42bC0xOC4zLTU2LjNjLTMuMi05LjkgLjMtMjAuNyA4LjctMjYuOGw0Ny45LTM0LjhjOC40LTYuMSAxOS44LTYuMSAyOC4yIDBMMzE4IDIyMXoiXX0sQjhyPXN1ZSxIOHI9c3VlLFJJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxxOHI9UkllLEZJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQwMGwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xNDkuMyAwYy0xNy4zIDAtMzQuMi01LjYtNDgtMTZMMjEyLjMgODMuMmMtMi44LTIuMS02LjEtMy4yLTkuNi0zLjJMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZ6bTM4NCA0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sVjhyPUZJZSxqOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTgwIDE5MmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA0Ny4xIDAgODkuNCAyMC40IDExOC43IDUyLjcgMTAuNi0zLjEgMjEuOC00LjcgMzMuMy00LjcgNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAxMy4yLTIuMSAyNS45LTYuMSAzNy44IDQxLjYgMjEuMSA3MC4xIDY0LjMgNzAuMSAxMTQuMiAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNTYuOCAzMi45LTEwNS45IDgwLjctMTI5LjQtLjQtNC44LS43LTkuNy0uNy0xNC42ek0yNDAgODBjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgOC40IC45IDE2LjYgMi43IDI0LjUgMi43IDEyLjEtNC4zIDI0LjMtMTYuMSAyOC4xLTM4LjcgMTIuNC02Ni42IDQ4LjctNjYuNiA5MS40IDAgNTMgNDMgOTYgOTYgOTZsMzA0IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zNy40LTI1LjctNjguOS02MC41LTc3LjYtNy41LTEuOS0xMy42LTcuMi0xNi41LTE0LjNzLTIuMS0xNS4yIDItMjEuN2M3LTExLjEgMTEtMjQuMiAxMS0zOC4zIDAtMzkuOC0zMi4yLTcyLTcyLTcyLTExLjEgMC0yMS41IDIuNS0zMC44IDYuOS0xMC41IDUtMjMuMSAxLjctMjkuOC03LjgtMjAuMy0yOC42LTUzLjctNDcuMS05MS4zLTQ3LjF6Il19LFU4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUiLGljb246WzUxMiw1MTIsWzEyODMwOCwxMjgzMDksMTI4OTkyLDEyODk5MywxMjg5OTQsMTI4OTk1LDEyODk5Niw5Njc5LDk4OTgsOTg5OSwxMTA0NCw2MTcwOCw2MTkxNV0sImYxMTEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxCSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTE4LCJncmluLXNxdWludCJdLCJmNTg1IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnptLTI0OS42LTE0M2M0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxXOHI9QkllLEhJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNNDA2LjUgMzk5LjZDMzg3LjQgMzUyLjkgMzQxLjUgMzIwIDI4OCAzMjBsLTY0IDBjLTUzLjUgMC05OS40IDMyLjktMTE4LjUgNzkuNi0zNS42LTM3LjMtNTcuNS04Ny45LTU3LjUtMTQzLjYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA1NS43LTIxLjkgMTA2LjItNTcuNSAxNDMuNnptLTQwLjEgMzIuN0MzMzQuNCA0NTIuNCAyOTYuNiA0NjQgMjU2IDQ2NHMtNzguNC0xMS42LTExMC41LTMxLjdjNy4zLTM2LjcgMzkuNy02NC4zIDc4LjUtNjQuM2w2NCAwYzM4LjggMCA3MS4yIDI3LjYgNzguNSA2NC4zek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0yNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgwem0tODgtNDBhODggODggMCAxIDAgMTc2IDAgODggODggMCAxIDAgLTE3NiAweiJdfSxHOHI9SEllLHFJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNjAgMzIwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTEwNC01NmwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sWThyPXFJZSxWSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZCIsaWNvbjpbNTEyLDUxMixbMTI5MzA2LDk5OTUsImhhbmQtcGFwZXIiXSwiZjI1NiIsIk0yNTYuNSAwYy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzYtNy0yLjYtMTQuNS00LTIyLjQtNC0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE2NS41LTIuNy0yLjdjLTI1LTI1LTY1LjUtMjUtOTAuNSAwcy0yNSA2NS41IDAgOTAuNUwxMDcgNDM3YzQ4IDQ4IDExMy4xIDc1IDE4MSA3NWwxNi41IDBjMS41IDAgMy0uMSA0LjUtLjQgOTEuNy02LjIgMTY1LTc5LjQgMTcxLjEtMTcxLjEgLjMtMS41IC40LTMgLjQtNC41bDAtMTc2YzAtMzUuMy0yOC43LTY0LTY0LTY0LTUuNSAwLTEwLjkgLjctMTYgMmwwLTJjMC0zNS4zLTI4LjctNjQtNjQtNjQtNy45IDAtMTUuNCAxLjQtMjIuNCA0LTEwLjQtMjEuMy0zMi4zLTM2LTU3LjYtMzZ6bS0xNiA5Ni4xbDAtLjEgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE3Mi45Yy0uMSAuNi0uMSAxLjMtLjIgMS45LTMuNCA2OS43LTU5LjMgMTI1LjYtMTI5IDEyOS0uNiAwLTEuMyAuMS0xLjkgLjJMMjg4IDQ2NEMyMzIuOSA0NjQgMTgwIDQ0Mi4xIDE0MSA0MDMuMUw1My4yIDMxNS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsNDMuNyA0My43YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTIyMy40YzAtOC44IDcuMi0xNiAxNi0xNiA4LjggMCAxNiA3LjEgMTYgMTUuOWwwIDEzNi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMzUuOXoiXX0sSzhyPVZJZSxaOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTE3MS41IDM4LjhDMTkyLjMgNCAyMzYuNS0xMCAyNzQgNy42bDcuMiAzLjhDMzE2IDMyLjMgMzMwIDc2LjUgMzEyLjQgMTE0bDAgMC0xNC4xIDMwIDEwOS43IDAgNy40IC40YzM2LjMgMy43IDY0LjYgMzQuNCA2NC42IDcxLjYgMCAxMy4yLTMuNiAyNS40LTkuOCAzNiA2LjEgMTAuNiA5LjcgMjIuOCA5LjggMzYgMCAxOC4zLTYuOSAzNC44LTE4IDQ3LjUgMS4zIDUuMyAyIDEwLjggMiAxNi41IDAgMjUuMS0xMi45IDQ3LTMyLjIgNTkuOS0xLjkgMzUuNS0yOS40IDY0LjItNjQuNCA2Ny43bC03LjQgLjQtMTA0LjEgMGMtMTggMC0zNS45LTMuNC01Mi42LTkuOWwtNy4xLTMtLjctLjMtNi42LTMuMi0uNy0uMy0xMi4yLTYuNWMtMTIuMy02LjUtMjMuMy0xNC43LTMyLjktMjQuMS00LjEgMjYuOS0yNy4zIDQ3LjQtNTUuMyA0Ny40bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIwMGMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEwLjggMCAyMC45IDMuMSAyOS41IDguNWw1MC4xLTEwNi41IC42LTEuMiAyLjctNSAuNi0uOXpNNTYgMTkyYy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHpNMjUzLjYgNTFjLTE0LjgtNi45LTMyLjMtMS42LTQwLjcgMTJsLTIuMiA0LTU2LjggMTIwLjljLTMuNSA3LjUtNS41IDE1LjUtNiAyMy43bC0uMSA0LjIgMCAxMTIuOSAuMiA3LjljMi40IDMyLjcgMjEuNCA2Mi4xIDUwLjcgNzcuN2wxMS41IDYuMSA2LjMgMy4xYzEyLjQgNS42IDI1LjggOC41IDM5LjQgOC41bDEwNC4xIDAgMi40LS4xYzEyLjEtMS4yIDIxLjYtMTEuNSAyMS42LTIzLjlsLS4yLTIuNmMtLjEtLjktLjItMS43LS40LTIuNi0yLjctMTIuMSA0LjMtMjQuMiAxNi0yOCA5LjctMy4xIDE2LjYtMTIuMiAxNi42LTIyLjggMC00LjMtMS4xLTguMi0zLjEtMTEuOC02LjMtMTEuMS0yLjgtMjUuMiA4LTMyIDYuOC00LjMgMTEuMi0xMS44IDExLjItMjAuMiAwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM1LjEtNC41IDguMi0xMC45IDguMi0xOGwtLjEtMi40Yy0xLjEtMTEuMy0xMC4xLTIwLjMtMjEuNC0yMS40bC0yLjQtLjEtMTQ3LjUgMGMtOC4yIDAtMTUuOC00LjItMjAuMi0xMS4xLTQuNC02LjktNS0xNS43LTEuNS0yMy4xTDI2OSA5My42YzctMTUgMS40LTMyLjctMTIuNS00MUwyNTMuNiA1MXoiXX0sUThyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTk2IDQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFg4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzOC43YzAgMTMuOC00LjUgMjcuMy0xMi44IDM4LjRsLTM1LjIgNDYuOSAwIDExMiA0MC44IDY4LjFjNC43IDcuOCA3LjIgMTYuNyA3LjIgMjUuOCAwIDI3LjctMjIuNCA1MC4xLTUwLjEgNTAuMUw1MC4xIDUxMmMtMjcuNyAwLTUwLjEtMjIuNC01MC4xLTUwLjEgMC05LjEgMi41LTE4IDcuMi0yNS44TDQ4IDM2OCA0OCAyNTYgMTIuOCAyMDkuMUM0LjUgMTk4IDAgMTg0LjUgMCAxNzAuN0wwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMHpNNDguMyA0NjAuOGwtLjMgMS4xYzAgMS4yIDEgMi4xIDIuMSAyLjFsMjgzLjggMGMxLjIgMCAyLjEtMSAyLjEtMi4xbC0uMy0xLjEtMzYuNS02MC44LTIxNC40IDAtMzYuNSA2MC44ek00OCAxNzAuN2MwIDIuNiAuNiA1LjEgMS44IDcuNGwxLjQgMi4yIDAgMCAzNS4yIDQ2LjkgOS42IDEyLjggMCAxMTIgMTkyIDAgMC0xMTIgOS42LTEyLjggMzUuMi00Ni45IDAgMCAxLjQtMi4yYzEuMi0yLjMgMS44LTQuOCAxLjgtNy40bDAtMTIyLjctNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDEyMi43eiJdfSxqSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYtODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCA0Ny4yLTM2IDY3LjItNTYgNzQuNWwwIDMuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTguMWMwLTIwLjUgMTQuOC0zNS4yIDMwLjEtNDAuMiA2LjQtMi4xIDEzLjItNS41IDE4LjItMTAuMyA0LjMtNC4yIDcuNy0xMCA3LjctMTkuNiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDM2OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxKOHI9akllLGU3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlIixpY29uOlszODQsNTEyLFsxMjgxOTYsMTI4NDU5LDYxNDYyXSwiZjE1YiIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxVSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk00MDAgNDA2LjFMNDAwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE1Mi42Yy0yOC43IDE1LTYxLjQgMjMuNC05NiAyMy40cy02Ny4zLTguNS05Ni0yMy40TDE2MCAyODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTguMUM3Mi42IDM2OC4yIDQ4IDMxNSA0OCAyNTYgNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCA1OS0yNC42IDExMi4yLTY0IDE1MC4xek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0sdDdyPVVJZSxyN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItbWludXMiLGljb246WzQ0OCw1MTIsW10sImYyNzIiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMzIgMTM2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sV0llPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtdGlyZWQiLGljb246WzUxMiw1MTIsWzEyODU1NSwidGlyZWQiXSwiZjVjOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni41IDY0LjNDMTk2LjEgMzAyLjEgMjIzLjggMjg4IDI1NiAyODhzNTkuOSAxNC4xIDc5LjUgMzIuM2MxOSAxNy44IDMyLjUgNDEuNyAzMi41IDYzLjcgMCA1LjQtMi43IDEwLjQtNy4yIDEzLjRzLTEwLjIgMy40LTE1LjIgMS4zbC0xNy4yLTcuNWMtMjIuOC0xMC00Ny41LTE1LjEtNzIuNC0xNS4xcy00OS42IDUuMi03Mi40IDE1LjFsLTE3LjIgNy41Yy00LjkgMi4yLTEwLjcgMS43LTE1LjItMS4zcy03LjItOC03LjItMTMuNGMwLTIyIDEzLjUtNDUuOSAzMi41LTYzLjd6TTEyMi42IDE1OS4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGE3cj1XSWUsaTdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDQ4IDEyOGwtMTc3LjYgMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTZsMCAxNiAxNzYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI0IDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMtNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsMCA0OGMwIDUyLjUgMzMuNyA5Ny4xIDgwLjcgMTEzLjQtLjUtMy4xLS43LTYuMi0uNy05LjQgMC0yMCA5LjItMzcuOSAyMy42LTQ5LjctNC45LTktNy42LTE5LjQtNy42LTMwLjMgMC0xNS4xIDUuMy0yOSAxNC00MC04LjgtMTEtMTQtMjQuOS0xNC00MGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODB6TTE5MiA2NGwwIDBjMTggMCAzNC42IDYgNDggMTZsMjA4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTgyIDBjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDI1LjMtMTQuNyA0Ny4yLTM2IDU3LjYgMi42IDcgNCAxNC41IDQgMjIuNCAwIDIwLTkuMiAzNy45LTIzLjYgNDkuNyA0LjkgOSA3LjYgMTkuNCA3LjYgMzAuMyAwIDM1LjMtMjguNyA2NC02NCA2NGwtODggMEM3NS4yIDQ0OCAwIDM3Mi44IDAgMjgwbDAtNDhDMCAxMzkuMiA3NS4yIDY0IDE2OCA2NGwyNCAwem02NCAzMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMHptMTYtMTc2YzAgNS41LS43IDEwLjktMiAxNmwzNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAgMTZ6bS0yNCA2NGwtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxHSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTEuMy0zODcuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTEwNCAxMDRjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRzOC4zIDkuOSAxNC44IDkuOWw3MiAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMDQgNzIgMGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtMTA0LTEwNHoiXX0sczdyPUdJZSxuN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1zY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1NyIsIk0uMiAyNzYuM2MtMS4yLTM1LjMgMjYuNC02NSA2MS43LTY2LjJsMy4zLS4xLTguMi0xLjhDMjIuNSAyMDAuNSAuNyAxNjYuMyA4LjMgMTMxLjhTNTAuMiA3NS41IDg0LjcgODMuMmwxNzMgMzguM2MyLjMtMi45IDQuNi01LjcgNy4xLTguNWwxOC40LTIwLjNDMjk5LjkgNzQuNSAzMjMuNSA2NCAzNDguMyA2NGwxMC4yIDBjNTQuMSAwIDEwNC4xIDI4LjcgMTMxLjMgNzUuNGwxLjUgMi42YzEzLjYgMjMuMiAyMC43IDQ5LjcgMjAuNyA3Ni42TDUxMiAzNDRjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTEwNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIuOCAuMi01LjYgLjUtOC4zLTE5LjQtMTEtMzIuNS0zMS44LTMyLjUtNTUuNyAwLS44IDAtMS42IDAtMi40TDY2LjQgMzM4Yy0zNS4zIDEuMi02NS0yNi40LTY2LjItNjEuN3ptNjMuNC0xOC4yYy04LjggLjMtMTUuNyA3LjctMTUuNCAxNi42czcuNyAxNS43IDE2LjUgMTUuNGwxNjEuNS01LjZjOS44LS4zIDE4LjcgNS4zIDIyLjcgMTQuMnMyLjIgMTkuMy00LjUgMjYuNGMtMi44IDIuOS00LjQgNi43LTQuNCAxMSAwIDguOCA3LjIgMTYgMTYgMTYgOS4xIDAgMTcuNCA1LjEgMjEuNSAxMy4zczMuMiAxNy45LTIuMyAyNS4xYy0yIDIuNy0zLjIgNi0zLjIgOS42IDAgOC44IDcuMiAxNiAxNiAxNmwxMDQgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTEyNS40YzAtMTguNC00LjktMzYuNS0xNC4yLTUyLjRsLTEuNS0yLjZjLTE4LjYtMzItNTIuOC01MS42LTg5LjgtNTEuNmwtMTAuMiAwYy0xMS4zIDAtMjIgNC44LTI5LjYgMTMuMWwwIDAtMTguNCAyMC4zYy0uNiAuNi0xLjEgMS4zLTEuNyAxLjlsNTcgMTMuMmM4LjYgMiAxNCAxMC42IDEyIDE5LjJzLTEwLjYgMTQtMTkuMiAxMkwyNjIuOCAxNzEuOCA3NC4zIDEzMGMtOC42LTEuOS0xNy4yIDMuNS0xOS4xIDEyLjJzMy41IDE3LjIgMTIuMiAxOS4xbDE4Ny41IDQxLjZjMTAuMiAyLjMgMTcuOCAxMC45IDE4LjcgMjEuNGwuMSAxYy42IDYuNi0xLjUgMTMuMS01LjggMTguMXMtMTAuNiA3LjktMTcuMiA4LjJMNjMuNiAyNTguMXoiXX0sbzdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImdlbSIsaWNvbjpbNTEyLDUxMixbMTI4MTQyXSwiZjNhNSIsIk0xNjguNSA3Mmw4Ny41IDkzIDg3LjUtOTMtMTc1IDB6TTM4My45IDk5LjFsLTcyLjMgNzYuOSAxMjkgMC01Ni42LTc2Ljl6bTUwIDEyNC45TDc4LjEgMjI0IDI1NiA0MjAuMyA0MzMuOSAyMjR6TTcxLjUgMTc2bDEyOSAwLTcyLjMtNzYuOS01Ni42IDc2Ljl6bTQzNC4zIDQwLjFsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MmM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNHoiXX0sa189e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVjdGFuZ2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MjE2NCwicmVjdGFuZ2xlLXRpbWVzIiwidGltZXMtcmVjdGFuZ2xlIiwid2luZG93LWNsb3NlIl0sImY0MTAiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0zMzQuMSA0OS45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00NC4xIDQ0LjEgNDQuMSA0NC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ0LjEtNDQuMS00NC4xIDQ0LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDQuMS00NC4xLTQ0LjEtNDQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ0LjEgNDQuMSA0NC4xLTQ0LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LGw3cj1rXyxjN3I9a18sZDdyPWtfLHpfPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRyYXNoLWNhbiIsaWNvbjpbNDQ4LDUxMixbNjE0NjAsInRyYXNoLWFsdCJdLCJmMmVkIiwiTTE2Ni4yLTE2Yy0xMy4zIDAtMjUuMyA4LjMtMzAgMjAuOEwxMjAgNDggMjQgNDhDMTAuNyA0OCAwIDU4LjcgMCA3MlMxMC43IDk2IDI0IDk2bDQwMCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwLTE2LjItNDMuMkMzMDcuMS03LjcgMjk1LjItMTYgMjgxLjgtMTZMMTY2LjItMTZ6TTMyIDE0NGwwIDMwNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMwNC00OCAwIDAgMzA0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMwNC00OCAwem0xNjAgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NnptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NnoiXX0sdTdyPXpfLHA3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzg1LjEgNDE5LjFDMzQ5LjcgNDQ3LjIgMzA0LjggNDY0IDI1NiA0NjRzLTkzLjctMTYuOC0xMjkuMS00NC45bDgwLjQtODAuNGMxNC4zIDguNCAzMSAxMy4zIDQ4LjggMTMuM3MzNC41LTQuOCA0OC44LTEzLjNsODAuNCA4MC40em02OC4xIC4yQzQ4OS45IDM3NC45IDUxMiAzMTguMSA1MTIgMjU2UzQ4OS45IDEzNy4xIDQ1My4yIDkyLjdMNDY1IDgxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNDE5LjMgNTguOEMzNzQuOSAyMi4xIDMxOC4xIDAgMjU2IDBTMTM3LjEgMjIuMSA5Mi43IDU4LjhMODEgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUzM3LjcgNzEuNiA0NyA4MUw1OC44IDkyLjdDMjIuMSAxMzcuMSAwIDE5My45IDAgMjU2UzIyLjEgMzc0LjkgNTguOCA0MTkuM0w0NyA0MzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMS44LTExLjhDMTM3LjEgNDg5LjkgMTkzLjkgNTEyIDI1NiA1MTJzMTE4LjktMjIuMSAxNjMuMy01OC44TDQzMSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS44LTExLjh6bS0zNC4xLTM0LjFsLTgwLjQtODAuNGM4LjQtMTQuMyAxMy4zLTMxIDEzLjMtNDguOHMtNC44LTM0LjUtMTMuMy00OC44bDgwLjQtODAuNEM0NDcuMiAxNjIuMyA0NjQgMjA3LjIgNDY0IDI1NnMtMTYuOCA5My43LTQ0LjkgMTI5LjF6TTM4NS4xIDkyLjlsLTgwLjQgODAuNGMtMTQuMy04LjQtMzEtMTMuMy00OC44LTEzLjNzLTM0LjUgNC44LTQ4LjggMTMuM0wxMjYuOSA5Mi45QzE2Mi4zIDY0LjggMjA3LjIgNDggMjU2IDQ4czkzLjcgMTYuOCAxMjkuMSA0NC45ek0xNzMuMyAzMDQuOEw5Mi45IDM4NS4xQzY0LjggMzQ5LjcgNDggMzA0LjggNDggMjU2czE2LjgtOTMuNyA0NC45LTEyOS4xbDgwLjQgODAuNGMtOC40IDE0LjMtMTMuMyAzMS0xMy4zIDQ4LjhzNC44IDM0LjUgMTMuMyA0OC44ek0yMDggMjU2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LGY3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb3B5cmlnaHQiLGljb246WzUxMiw1MTIsWzE2OV0sImYxZjkiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMtMjguMS0yOC4xLTI4LjEtNzMuNyAwLTEwMS44czczLjctMjguMSAxMDEuOCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtNDYuOS00Ni45LTEyMi44LTQ2LjktMTY5LjcgMHMtNDYuOSAxMjIuOCAwIDE2OS43IDEyMi44IDQ2LjkgMTY5LjcgMGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDB6Il19LFlJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwIDIwOCAyMDggMCAxIDEgLTQxNiAwem00NjQgMGEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTA0IDEwNGM0LjYgNC42IDExLjUgNS45IDE3LjQgMy41czkuOS04LjMgOS45LTE0LjhsMC03MiAxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMDQgMCAwLTcyYzAtNi41LTMuOS0xMi4zLTkuOS0xNC44cy0xMi45LTEuMS0xNy40IDMuNWwtMTA0IDEwNHoiXX0saDdyPVlJZSxtN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXIiLGljb246WzQ0OCw1MTIsWzEyODE5NywxMjgxOThdLCJmMTMzIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHpNNDggMjI0bDAgMTkyYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTItMzUyIDB6Il19LEtJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZyb3duLW9wZW4iLGljb246WzUxMiw1MTIsWzEyODU1MCwiZnJvd24tb3BlbiJdLCJmNTdhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGc3cj1LSWUsWkllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoYXJ0LWJhciIsaWNvbjpbNTEyLDUxMixbImJhci1jaGFydCJdLCJmMDgwIiwiTTQ4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgNDIuNyAwIDU2TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDgwIDQzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMNDggNTZ6bTEwNCA3MmwyMDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxNTIgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTAgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjcyIDB6Il19LGI3cj1aSWUsU189e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91c2UiLGljb246WzUxMiw1MTIsWzEyNzk2OCw2MzQ5OCw2MzUwMCwiaG9tZSIsImhvbWUtYWx0IiwiaG9tZS1sZy1hbHQiXSwiZjAxNSIsIk0yNDAgNi4xYzkuMS04LjIgMjIuOS04LjIgMzIgMGwyMzIgMjA4YzkuOSA4LjggMTAuNyAyNCAxLjggMzMuOXMtMjQgMTAuNy0zMy45IDEuOGwtOC03LjIgMCAyMDUuM2MwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjA1LjMtOCA3LjJjLTkuOSA4LjgtMjUgOC0zMy45LTEuOHMtOC0yNSAxLjgtMzMuOUwyNDAgNi4xem0xNiA1MC4xTDk2IDE5OS43IDk2IDQ0OGMwIDguOCA3LjIgMTYgMTYgMTZsNDggMCAwLTEwNGMwLTM5LjggMzIuMi03MiA3Mi03Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMTA0IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQ4LjMtMTYwLTE0My40ek0yMDggNDY0bDk2IDAgMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0eiJdfSx4N3I9U18sdjdyPVNfLHk3cj1TXyxRSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMzNC43IDM4NC42QzMxOS43IDM2OSAyOTMuNiAzNTIgMjU2IDM1MnMtNjMuNyAxNy03OC43IDMyLjZjLTkuMiA5LjYtMjQuNCA5LjktMzMuOSAuN3MtOS45LTI0LjQtLjctMzMuOWMyMi4xLTIzIDYwLTQ3LjQgMTEzLjMtNDcuNHM5MS4yIDI0LjQgMTEzLjMgNDcuNGM5LjIgOS42IDguOSAyNC44LS43IDMzLjlzLTI0LjggOC45LTMzLjktLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sdzdyPVFJZSxudWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidXNlciIsaWNvbjpbNDQ4LDUxMixbMTI4MTAwLDYyMTQ0LDYyNDcwLCJ1c2VyLWFsdCIsInVzZXItbGFyZ2UiXSwiZjAwNyIsIk0xNDQgMTI4YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHptMjA4IDBhMTI4IDEyOCAwIDEgMCAtMjU2IDAgMTI4IDEyOCAwIDEgMCAyNTYgMHpNNDggNDgwYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDk2IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2bC05NiAwQzc4LjggMzA0IDAgMzgyLjggMCA0ODBsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04eiJdfSxrN3I9bnVlLFM3cj1udWUsTTdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4MC4xLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3OC4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU3IDU3IDAgNzYuNS02Ni4yLTM4LjItMjAuOS03Ny44Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4yIDk4IDk4LjcgMTEwLjhsOC40IDMxLjUtNjcuNi0zOUMyOCA5Ni42IDEzLjMgMTAwLjUgNi43IDExMlM0IDEzOC4yIDE1LjUgMTQ0LjhsNjcuNiAzOS0zMS41IDguNGMtMTIuOCAzLjQtMjAuNCAxNi42LTE3IDI5LjRzMTYuNiAyMC40IDI5LjQgMTdsNzcuOC0yMC45IDY2LjIgMzguMi02Ni4yIDM4LjItNzcuOC0yMC45Yy0xMi44LTMuNC0yNiA0LjItMjkuNCAxN3M0LjIgMjYgMTcgMjkuNGwzMS41IDguNC02Ny42IDM5QzQgMzczLjggLjEgMzg4LjUgNi43IDQwMHMyMS4zIDE1LjQgMzIuOCA4LjhsNjcuNi0zOS04LjQgMzEuNWMtMy40IDEyLjggNC4yIDI2IDE3IDI5LjRzMjYtNC4yIDI5LjQtMTdsMjAuOS03Ny44IDY2LjItMzguMiAwIDc2LjUtNTcgNTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwyMy0yMyAwIDc4LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTc4LjEgMjMgMjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01Ny01NyAwLTc2LjUgNjYuMiAzOC4yIDIwLjkgNzcuOGMzLjQgMTIuOCAxNi42IDIwLjQgMjkuNCAxN3MyMC40LTE2LjYgMTctMjkuNGwtOC40LTMxLjUgNjcuNiAzOWMxMS41IDYuNiAyNi4yIDIuNyAzMi44LTguOHMyLjctMjYuMi04LjgtMzIuOGwtNjcuNi0zOSAzMS41LTguNGMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTc3LjggMjAuOS02Ni4yLTM4LjIgNjYuMi0zOC4yIDc3LjggMjAuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTMxLjUtOC40IDY3LjYtMzljMTEuNS02LjYgMTUuNC0yMS4zIDguOC0zMi44cy0yMS4zLTE1LjQtMzIuOC04LjhsLTY3LjYgMzkgOC40LTMxLjVjMy40LTEyLjgtNC4yLTI2LTE3LTI5LjRzLTI2IDQuMi0yOS40IDE3bC0yMC45IDc3LjgtNjYuMiAzOC4yIDAtNzYuNSA1Ny01N2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTc4LjF6Il19LEM3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJib29rbWFyayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc4LDYxNTkxXSwiZjAyZSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQxNy4xYzAgMjUuNi0yOC41IDQwLjgtNDkuOCAyNi42TDE5MiA0MTIuOCA0OS44IDUwNy43QzI4LjUgNTIxLjkgMCA1MDYuNiAwIDQ4MS4xTDAgNjR6TTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODcuMiAxMTcuNC03OC4yYzE2LjEtMTAuNyAzNy4xLTEwLjcgNTMuMiAwTDMzNiA0NTEuMiAzMzYgNjRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4eiJdfSxYSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LWxlZnQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtbGVmdCJdLCJmMTkxIiwiTTQ4IDQxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwem0xNiA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODB6bTY0LTIyNGMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnoiXX0sejdyPVhJZSxvdWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZHNoYWtlIixpY29uOls2NDAsNTEyLFsxMjkzMDksNjI2NjIsImhhbmRzaGFrZS1hbHQiLCJoYW5kc2hha2Utc2ltcGxlIl0sImYyYjUiLCJNNTk4LjEgNzUuNGMxMC43LTcuOCAxMy4xLTIyLjggNS4zLTMzLjVzLTIyLjgtMTMuMS0zMy41LTUuM2wtNzQuNSA1NC4yLTkuOS02LjZDNDY1LjggNzEgNDQyLjYgNjQgNDE4LjkgNjRsLTU5LjIgMC0uNCAwLTE0My42IDBjLTI2LjcgMC01Mi41IDguOS03My40IDI1LjFMNzAuMSAzNi42Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM3MtNS40IDI1LjcgNS4zIDMzLjVsODggNjRjOS42IDYuOSAyMi43IDUuOSAzMS4xLTIuNGwzLjktMy45YzEzLjUtMTMuNSAzMS44LTIxLjEgNTAuOS0yMS4xbDQ2LjMgMC05MS43IDkxLjdjLTE1LjYgMTUuNi0xNS42IDQwLjkgMCA1Ni42bC44IC44QzIxOCAzMDggMjk0IDMwOCAzNDAuOSAyNjEuMWwyNy4xLTI3LjEgOTcuOCA5Ny44YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC05LjggOS44LTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDI4IDI4Yy0xNy41IDEwLjQtMzcuMiAxNi43LTU3LjYgMTguNUwzMTMgMzk5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE1IDE1LTMuOCAwYy0zNi4xIDAtNzAuNy0xNC4zLTk2LjItMzkuOEw2NSAyNzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMMTYwLjIgNDQyLjFjMzQuNSAzNC41IDgxLjMgNTMuOSAxMzAuMSA1My45bDUxLjggMCAxIDEgMS0xIDUuNyAwYzQ4LjggMCA5NS42LTE5LjQgMTMwLjEtNTMuOWwxOS45LTE5LjljMS4yLTEuMiAyLjMtMi4zIDMuNC0zLjUgLjctLjUgMS4zLTEuMSAxLjktMS43TDYwOSAzMTNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTMuOCA1My44Yy00LjItMTIuOC0xMS4zLTI0LjktMjEuNS0zNS4xTDM4NSAxODNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC00NC4xIDQ0LjFjLTI2LjUgMjYuNS02OC41IDI4LTk2LjcgNC42bDk4LjctOTguN2MxMy40LTEzLjQgMzEuNi0yMSA1MC42LTIxLjFsOC41IDAgLjIgMCA1MC44IDBjMTQuMiAwIDI4LjEgNC4yIDM5LjkgMTIuMUw0ODIuNyAxNDBjOC40IDUuNiAxOS4zIDUuMyAyNy40LS42bDg4LTY0eiJdfSxfN3I9b3VlLFQ3cj1vdWUsSkllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTIxLCJzbWlsZS13aW5rIl0sImY0ZGEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxMN3I9SkllLGVQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50LXRlYXJzIixpY29uOls1MTIsNTEyLFsxMjkzMTUsImdyaW4tc3F1aW50LXRlYXJzIl0sImY1ODYiLCJNNDAzLjEgNDAzLjFjNjcuMi02Ny4yIDc4LjgtMTY4LjkgMzQuOS0yNDhsMzYuNy01LjJjNC41LS42IDguOC0xLjYgMTMuMS0yLjggNDQuNiA5NC45IDI3LjcgMjExLjUtNTAuNyAyOTBzLTE5NS4xIDk1LjMtMjkwIDUwLjdjMS4yLTQuMiAyLjEtOC42IDIuOC0xMy4xbDUuMi0zNi43Yzc5LjEgNDMuOSAxODAuOCAzMi4zIDI0OC0zNC45ek03NSA3NWM3OC40LTc4LjQgMTk1LjEtOTUuMyAyOTAtNTAuNy0xLjIgNC4yLTIuMSA4LjYtMi44IDEzLjFsLTUuMiAzNi43Yy03OS4xLTQzLjktMTgwLjgtMzIuMy0yNDggMzQuOXMtNzguOCAxNjguOS0zNC45IDI0OGwtMzYuNyA1LjJjLTQuNSAuNi04LjggMS42LTEzLjEgMi44LTQ0LjYtOTQuOS0yNy43LTIxMS41IDUwLjctMjkwek0zNzAuOSAyMDYuNWM1LjgtMTAuOSAyMS4xLTEyLjQgMjYuNC0xLjMgMjUuNiA1My41IDE2LjIgMTE5LjYtMjguMiAxNjMuOS00NC4zIDQ0LjMtMTEwLjMgNTMuNy0xNjMuOCAyOC4yLTExLjEtNS4zLTkuNi0yMC42IDEuMy0yNi40IDMyLTE3LjEgNjQuMi00MC44IDkzLjgtNzAuNCAyOS43LTI5LjcgNTMuNC02MS45IDcwLjUtOTR6TTkzLjMgMjgxLjljLTEuNy04IDIuOS0xNS45IDEwLjYtMTguNGw4NC42LTI4YzUuNy0xLjkgMTIuMS0uNCAxNi4zIDMuOXM1LjggMTAuNiAzLjkgMTYuM2wtMjggODQuNmMtMi42IDcuNy0xMC41IDEyLjMtMTguNCAxMC42cy0xMy40LTktMTIuNy0xNy4xbDMuOS00My4xLTQzLjEgMy45Yy04LjEgLjctMTUuNS00LjctMTcuMS0xMi43ek0yOTQuNiAxMTAuNGwtMy45IDQzLjEgNDMuMS0zLjljOC4xLS43IDE1LjUgNC43IDE3LjEgMTIuN3MtMi45IDE1LjktMTAuNiAxOC40bC04NC42IDI4Yy01LjcgMS45LTEyLjEgLjQtMTYuMy0zLjlzLTUuOC0xMC42LTMuOS0xNi4zbDI4LTg0LjZjMi42LTcuNyAxMC41LTEyLjMgMTguNC0xMC42czEzLjQgOSAxMi43IDE3LjF6TTUxMiA1MS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQyMS4xIDEwOWMtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQxMy4zIDE4LjggNDM1IDAgNDYwLjYgMCA0ODkgMCA1MTIgMjMgNTEyIDUxLjR6TTQ0LjEgNDA5LjdMOTAuOSA0MDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDQ5My4yIDc3IDUxMiA1MS40IDUxMiAyMyA1MTIgMCA0ODkgMCA0NjAuNiAwIDQzNSAxOC44IDQxMy4zIDQ0LjEgNDA5Ljd6Il19LEQ3cj1lUGUsJDdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtYXVkaW8iLGljb246WzM4NCw1MTIsW10sImYxYzciLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMjIxLjkgMjY3LjZjLTQuNyAxMC0uMyAyMS45IDkuNyAyNi42IDE5LjIgOC45IDMyLjQgMjguMyAzMi40IDUwLjhzLTEzLjIgNDEuOS0zMi40IDUwLjhjLTEwIDQuNy0xNC40IDE2LjYtOS43IDI2LjZzMTYuNiAxNC40IDI2LjYgOS43QzI4MS4yIDQxNi44IDMwNCAzODMuNiAzMDQgMzQ1cy0yMi44LTcxLjktNTUuNi04Ny4xYy0xMC00LjctMjEuOS0uMy0yNi42IDkuN3pNMTA0IDMwNWMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMTYgMHpNMjIzLjMgMzczYzkuOS01LjQgMTYuNy0xNiAxNi43LTI4LjFzLTYuNy0yMi43LTE2LjctMjguMWMtNy44LTQuMi0xNS4zIDMuMy0xNS4zIDEyLjFsMCAzMmMwIDguOCA3LjYgMTYuMyAxNS4zIDEyLjF6Il19LHRQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci14bWFyayIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLXRpbWVzIl0sImYyNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMTcxLjkgOTIuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxBN3I9dFBlLHJQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtZG93biIsaWNvbjpbNTEyLDUxMixbNjE0NjYsImFycm93LWFsdC1jaXJjbGUtZG93biJdLCJmMzU4IiwiTTI1NiA0NjRhMjA4IDIwOCAwIDEgMSAwLTQxNiAyMDggMjA4IDAgMSAxIDAgNDE2ek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTI0NC43IDM4Ny4zYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDEwNC0xMDRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNzIgMCAwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDQtNzIgMGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDEwNCAxMDR6Il19LEU3cj1yUGUsbHVlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtbGluZXMiLGljb246WzM4NCw1MTIsWzEyODQ0MSwxMjg0NjIsNjE2ODYsImZpbGUtYWx0IiwiZmlsZS10ZXh0Il0sImYxNWMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNTYgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEk3cj1sdWUsUDdyPWx1ZSxON3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNNzYuMiAyNTguN2M2LjEtMTUuMiA0LTMyLjYtNS42LTQ1LjktMTQuNS0yMC4xLTIyLjYtNDMuNy0yMi42LTY4LjggMC02Ni44IDYwLjUtMTI4IDE0NC0xMjhzMTQ0IDYxLjIgMTQ0IDEyOC02MC41IDEyOC0xNDQgMTI4Yy0xNS45IDAtMzEuMS0yLjMtNDUuMy02LjUtMTAuMy0zLjEtMjEuNC0yLjUtMzEuNCAxLjVsLTUwLjQgMjAuMiAxMS40LTI4LjV6TTAgMTQ0YzAgMzUuOCAxMS42IDY5LjEgMzEuNyA5Ni44TDEuOSAzMTUuMmMtMS4zIDMuMi0xLjkgNi42LTEuOSAxMCAwIDE0LjggMTIgMjYuOCAyNi44IDI2LjggMy40IDAgNi44LS43IDEwLTEuOWw5Ni4zLTM4LjVjMTguNiA1LjUgMzguNCA4LjQgNTguOSA4LjQgMTA2IDAgMTkyLTc4LjggMTkyLTE3NlMyOTgtMzIgMTkyLTMyIDAgNDYuOCAwIDE0NHpNMzg0IDUxMmMyMC42IDAgNDAuMy0zIDU4LjktOC40bDk2LjMgMzguNWMzLjIgMS4zIDYuNiAxLjkgMTAgMS45IDE0LjggMCAyNi44LTEyIDI2LjgtMjYuOCAwLTMuNC0uNy02LjgtMS45LTEwbC0yOS43LTc0LjRjMjAtMjcuOCAzMS43LTYxLjEgMzEuNy05Ni44IDAtODIuNC02MS43LTE1MS41LTE0NS0xNzAuNy0xLjYgMTYuMy01LjEgMzEuOS0xMC4xIDQ2LjkgNjMuOSAxNC44IDEwNy4yIDY3LjMgMTA3LjIgMTIzLjkgMCAyNS4xLTguMSA0OC43LTIyLjYgNjguOC05LjYgMTMuMy0xMS43IDMwLjYtNS42IDQ1LjlsMTEuNCAyOC41LTUwLjQtMjAuMmMtMTAtNC0yMS4xLTQuNS0zMS40LTEuNS0xNC4yIDQuMi0yOS40IDYuNS00NS4zIDYuNS03Mi4yIDAtMTI3LjEtNDUuNy0xNDAuNy0xMDEuMi0xNS42IDMuMi0zMS43IDUtNDguMSA1LjIgMTYuNCA4MS45IDk0LjcgMTQ0IDE4OC44IDE0NHoiXX0sX189e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtNDY0YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnptNzAuNyAxMjEuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDI0My40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sTzdyPV9fLFI3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjM5LjMgNDguN2MtMTA3LjEgOC41LTE5MS4zIDk4LjEtMTkxLjMgMjA3LjMgMCAxMTQuOSA5My4xIDIwOCAyMDggMjA4IDMzLjMgMCA2NC43LTcuOCA5Mi42LTIxLjctMTAzLjQtMjMuNC0xODAuNi0xMTUuOC0xODAuNi0yMjYuMyAwLTY1LjggMjcuNC0xMjUuMSA3MS4zLTE2Ny4zek0wIDI1NmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDE5LjQgMCAzOC40IDIuMiA1Ni43IDYuMyA5LjkgMi4yIDE3LjMgMTAuNSAxOC41IDIwLjVzLTQgMTkuOC0xMy4xIDI0LjRjLTYwLjYgMzAuMi0xMDIuMSA5Mi43LTEwMi4xIDE2NC44IDAgMTAxLjYgODIuNCAxODQgMTg0IDE4NCA1IDAgOS45LS4yIDE0LjgtLjYgMTAuMS0uOCAxOS42IDQuOCAyMy44IDE0LjFzMiAyMC4xLTUuMyAyNy4xQzM4Ny4zIDQ4NC44IDMyNC44IDUxMiAyNTYgNTEyIDExNC42IDUxMiAwIDM5Ny40IDAgMjU2eiJdfSxGN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvc2VkLWNhcHRpb25pbmciLGljb246WzUxMiw1MTIsW10sImYyMGEiLCJNNDQ4IDExMmM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHpNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTg4IDE0NGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0sQjdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImltYWdlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjMwMiIsIk00ODAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDB6TTE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDMyem04MCAxMTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTQwLjcgMy44Yy00LjMtNy4zLTEyLjItMTEuOC0yMC43LTExLjhzLTE2LjQgNC41LTIwLjcgMTEuOGwtNDYuNSA3OS0xNy4yLTI0LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMxOTEuMSAzMjAgMjAwIDMyMGwyNDAgMGM4LjYgMCAxNi42LTQuNiAyMC44LTEyLjFzNC4yLTE2LjctLjEtMjQuMWwtODAtMTM2ek00OCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMzguNyAwIDE1MkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNjAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI5NnoiXX0sYVBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTEwNC0xMDRjLTQuNi00LjYtMTEuNS01LjktMTcuNC0zLjVTMjU2IDE0NS41IDI1NiAxNTJsMCA3Mi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyYzAgNi41IDMuOSAxMi4zIDkuOSAxNC44czEyLjkgMS4xIDE3LjQtMy41bDEwNC0xMDR6Il19LEg3cj1hUGUsaVBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImlkLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQ3LCJkcml2ZXJzLWxpY2Vuc2UiXSwiZjJjMiIsIk00OCA0MTZsMC0yNTYgNDgwIDAgMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA4IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzc2IDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LHE3cj1pUGUsc1BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1wbGF5IixpY29uOls1MTIsNTEyLFs2MTQ2OSwicGxheS1jaXJjbGUiXSwiZjE0NCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIxMi41IDE0Ny41Yy03LjQtNC41LTE2LjctNC43LTI0LjMtLjVTMTc2IDE1OS4zIDE3NiAxNjhsMCAxNzZjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODh6TTI5OCAyNTZsLTc0IDQ1LjIgMC05MC40IDc0IDQ1LjJ6Il19LFY3cj1zUGUsblBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxqN3I9blBlLG9QZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJhZGRyZXNzLWJvb2siLGljb246WzUxMiw1MTIsWzYyMTM4LCJjb250YWN0LWJvb2siXSwiZjJiOSIsIk0zODQgNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw4MCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMjg4IDB6TTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjQwIDI0OGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptLTMyIDQwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTQ5NiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTE2IDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHoiXX0sVTdyPW9QZSxsUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzIixpY29uOlszODQsNTEyLFs5MjAzLDYyMDMyLCJob3VyZ2xhc3MtZW1wdHkiXSwiZjI1NCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDgxLjUgODEuNS04MS41IDgxLjVDNDggMzY2IDMyIDQwNC43IDMyIDQ0NWwwIDE5LTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOCAwIDAtMTljMC00MC4zLTE2LTc5LTQ0LjUtMTA3LjVsLTgxLjUtODEuNSA4MS41LTgxLjVDMzM2IDE0NiAzNTIgMTA3LjMgMzUyIDY3bDAtMTkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM3My4zIDAgMzYwIDBMMjQgMHpNMTkyIDI4OS45bDgxLjUgODEuNUMyOTMgMzkxIDMwNCA0MTcuNCAzMDQgNDQ1bDAgMTktMjI0IDAgMC0xOWMwLTI3LjYgMTEtNTQgMzAuNS03My41TDE5MiAyODkuOXptMC02Ny45bC04MS41LTgxLjVDOTEgMTIxIDgwIDk0LjYgODAgNjdsMC0xOSAyMjQgMCAwIDE5YzAgMjcuNi0xMSA1NC0zMC41IDczLjVMMTkyIDIyMi4xeiJdfSxXN3I9bFBlLGN1ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoZWFkcGhvbmVzIixpY29uOls0NDgsNTEyLFsxMjc5MTEsNjI4NjMsImhlYWRwaG9uZXMtYWx0IiwiaGVhZHBob25lcy1zaW1wbGUiXSwiZjAyNSIsIk00OCAyMjRjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZzMTc2IDc4LjggMTc2IDE3NmwwIDQ0LjhjLTE0LjEtOC4yLTMwLjUtMTIuOC00OC0xMi44bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTE3LjUgMC0zMy45IDQuNy00OCAxMi44TDQ4IDIyNHptMCAxMjhjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwIDEyOC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMyem0zNTIgMGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwIDAtMTI4IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6Il19LEc3cj1jdWUsWTdyPWN1ZSxLN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1wb3dlcnBvaW50IixpY29uOlszODQsNTEyLFtdLCJmMWM0IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTg4IDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDI4IDBjMzcuNiAwIDY4LTMwLjQgNjgtNjhzLTMwLjQtNjgtNjgtNjhsLTUyIDB6bTUyIDg4bC0yOCAwIDAtNDAgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6Il19LFo3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ3aW5kb3ctbWF4aW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ3MF0sImYyZDAiLCJNNDggMjI0bDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNmwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNjAtNDE2IDB6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6Il19LGNQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTAgMjQwYzAgNTQuNCAxOS4zIDEwNC42IDUxLjkgMTQ0LjlMMy4xIDQ3NC4zYy0yIDMuNy0zLjEgNy45LTMuMSAxMi4yIDAgMTQuMSAxMS40IDI1LjUgMjUuNSAyNS41IDQgMCA3LjgtLjYgMTEuNS0yLjFMMTUzLjQgNDYwYzMxLjQgMTIuOSA2Ni4xIDIwIDEwMi42IDIwIDE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwek05NCA0MDcuOWM5LjMtMTcuMSA3LjQtMzguMS00LjgtNTMuMi0yNi4xLTMyLjMtNDEuMi03MS45LTQxLjItMTE0LjcgMC0xMDMuMiA5MC4yLTE5MiAyMDgtMTkyczIwOCA4OC44IDIwOCAxOTItOTAuMiAxOTItMjA4IDE5MmMtMzAuMiAwLTU4LjctNS45LTg0LjMtMTYuNC0xMS45LTQuOS0yNS4zLTQuOC0zNy4xIC4zTDc2IDQ0MC45IDk0IDQwNy45ek0xNDQgMjcyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTgwIDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUTdyPWNQZSxkUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0zNjYuOSA0MzJjLjgtNS4yIDEuMS0xMC42IDEuMS0xNmwwLTUzLjVjMTAuMi0xMi42IDE4LjMtMjYuOSAyMy44LTQyLjUgNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDUuNSAxNS41IDEzLjYgMjkuOSAyMy44IDQyLjRsMCA1My41YzAgNS40IC40IDEwLjggMS4xIDE2LTU4LjQtMzYuOC05Ny4xLTEwMS45LTk3LjEtMTc2IDAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4YzAgNzQuMS0zOC44IDEzOS4yLTk3LjEgMTc2em0tMzguOCA2OS43QzQzNC40IDQ3MC42IDUxMiAzNzIuMyA1MTIgMjU2IDUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZDMCAzNzIuMyA3Ny42IDQ3MC42IDE4My45IDUwMS43IDIwMy40IDUxOC4xIDIyOC41IDUyOCAyNTYgNTI4czUyLjYtOS45IDcyLjEtMjYuM3pNMzIwIDM3OC42bDAgMzcuNGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGwwLTM3LjRjMC0xNC43IDExLjktMjYuNiAyNi42LTI2LjZsMiAwYzExLjMgMCAyMS4xIDcuOSAyMy42IDE4LjkgMi44IDEyLjYgMjAuOCAxMi42IDIzLjYgMCAyLjUtMTEuMSAxMi4zLTE4LjkgMjMuNi0xOC45bDIgMGMxNC43IDAgMjYuNiAxMS45IDI2LjYgMjYuNnpNMTMyIDIzMmMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHptMjI4LjQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggMGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6Il19LFg3cj1kUGUsdVBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0wIDI0QzAgMTAuNyAxMC43IDAgMjQgMEwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMTljMCA0MC4zLTE2IDc5LTQ0LjUgMTA3LjVsLTgxLjUgODEuNSA4MS41IDgxLjVDMzM2IDM2NiAzNTIgNDA0LjcgMzUyIDQ0NWwwIDE5IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMTljMC00MC4zIDE2LTc5IDQ0LjUtMTA3LjVsODEuNS04MS41LTgxLjUtODEuNUM0OCAxNDYgMzIgMTA3LjMgMzIgNjdsMC0xOS04IDBDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMTEwLjUgMzcxLjVjLTMuOSAzLjktNy41IDguMS0xMC43IDEyLjVsMTg0LjQgMGMtMy4yLTQuNC02LjgtOC42LTEwLjctMTIuNWwtODEuNS04MS41LTgxLjUgODEuNXpNODAuOCA0MzJjLS41IDQuMy0uOCA4LjYtLjggMTNsMCAxOSAyMjQgMCAwLTE5YzAtNC40LS4zLTguNy0uOC0xM0w4MC44IDQzMnpNMjU0LjEgMTYwbC0xMjQuMSAwIDYyLjEgNjIuMSA2Mi4xLTYyLjF6bTM5LjctNDhDMzAwLjQgOTguMSAzMDQgODIuNyAzMDQgNjdsMC0xOS0yMjQgMCAwIDE5YzAgMTUuNyAzLjYgMzEuMSAxMC4yIDQ1bDIwMy41IDB6Il19LEo3cj11UGUscFBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDE2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6bTE2IDExMmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjAgNDE2IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek04MCAzNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTE0NCAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxlOXI9cFBlLHQ5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTEzOC4zIDgwLjhjLTkuMi0zMy44IDEwLjUtNjguOCA0NC4zLTc4LjQgMzQtOS42IDY5LjQgMTAuMiA3OSA0NC4yTDI5MS45IDE1My43IDMwNS4xIDg0YzYuNi0zNC43IDQwLjEtNTcuNSA3NC44LTUwLjkgMzEuNCA2IDUzIDMzLjkgNTIgNjQuOSAxMC0yLjYgMjAuOC0yLjggMzEuNS0uMSAzNC4zIDguNiA1NS4xIDQzLjMgNDYuNiA3Ny42TDQ1NC43IDM5Ny4yQzQzNy44IDQ2NC43IDM3Ny4yIDUxMiAzMDcuNiA1MTJsLTMzLjcgMGMtNTYuOSAwLTExMi4yLTE5LTE1Ny4yLTUzLjlsLTkyLTcxLjZjLTI3LjktMjEuNy0zMi45LTYxLjktMTEuMi04OS44czYxLjktMzIuOSA4OS44LTExLjJsMTcgMTMuMi01MS44LTEzMS4yYy0xMy0zMi45IDMuMi03MC4xIDM2LTgzIDExLjEtNC40IDIyLjctNS40IDMzLjctMy43em03Ny4xLTIxLjJjLTIuNC04LjUtMTEuMi0xMy40LTE5LjctMTFzLTEzLjQgMTEuMi0xMSAxOS43bDU0LjggMTgyLjRjMy41IDEyLjMtMy4zIDI1LjItMTUuNCAyOS4zcy0yNS4zLTItMzAtMTMuOUwxNDIuOSAxMzguMWMtMy4yLTguMi0xMi41LTEyLjMtMjAuOC05cy0xMi4zIDEyLjUtOSAyMC44bDczLjMgMTg1LjZjMTIgMzAuMy0yMy43IDU3LTQ5LjQgMzdMNzMuOCAzMjMuNGMtNy01LjQtMTctNC4yLTIyLjUgMi44cy00LjIgMTcgMi44IDIyLjVsOTIgNzEuNmMzNi41IDI4LjQgODEuNCA0My44IDEyNy43IDQzLjhsMzMuNyAwYzQ3LjUgMCA4OS0zMi40IDEwMC41LTc4LjVsNTUuNC0yMjEuNmMyLjEtOC42LTMuMS0xNy4zLTExLjYtMTkuNHMtMTcuMyAzLjEtMTkuNCAxMS42bC0yNiAxMDRjLTIuOSAxMS43LTEzLjQgMTkuOS0yNS41IDE5LjktMTYuNSAwLTI4LjktMTUtMjUuOC0zMS4yTDM4My43IDk5YzEuNy04LjctNC0xNy4xLTEyLjctMTguN1MzNTQgODQuMyAzNTIuMyA5M0wzMjAuNSAyNjBjLTIuMiAxMS42LTEyLjQgMjAtMjQuMiAyMC0xMSAwLTIwLjctNy4zLTIzLjctMTcuOUwyMTUuNCA1OS42eiJdfSxyOXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny44LTg3LjhjMTcuNS0zLjMgMzAuOC0xOC43IDMwLjgtMzcuMSAwLTYuNy0xLjgtMTMuMy01LjEtMTlMNDg1IDMyMS43Yy0xOS0zMi42LTI5LTY5LjYtMjktMTA3LjNsMC0xNC41YzAtODQuNi02Mi42LTE1NC43LTE0NC0xNjYuM2wwLTkuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDkuN2MtNDIuMiA2LTc5LjQgMjcuOC0xMDUuNCA1OS4xTDQxLTI0Ljl6TTE5Mi44IDEyNi45QzIxNC43IDk4LjQgMjQ5LjIgODAgMjg4IDgwIDM1NC4zIDgwIDQwOCAxMzMuNyA0MDggMjAwbDAgMTQuNWMwIDQ2LjIgMTIuMyA5MS41IDM1LjUgMTMxLjRsMTIuOSAyMi4xLTIyLjYgMC0yNDEuMS0yNDEuMXpNMTMyLjUgMzQ1LjljMTkuNS0zMy40IDMxLjMtNzAuNyAzNC42LTEwOWwtNDYuNy00Ni43Yy0uMiAzLjMtLjMgNi42LS4zIDkuOWwwIDE0LjVjMCAzNy43LTEwIDc0LjctMjkgMTA3LjNMNjkuMSAzNTkuMmMtMy40IDUuOC01LjEgMTIuMy01LjEgMTkgMCAyMC45IDE2LjkgMzcuOCAzNy44IDM3LjhsMjQ0LjQgMC00OC00OC0xNzguNiAwIDEyLjktMjIuMXpNMjIwLjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sYTlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXIiLGljb246WzU3Niw1MTIsWzExMDg4LDYxNDQ2XSwiZjAwNSIsIk0yODguMS0zMmM5IDAgMTcuMyA1LjEgMjEuNCAxMy4xTDM4MyAxMjUuMyA1NDIuOSAxNTAuN2M4LjkgMS40IDE2LjMgNy43IDE5LjEgMTYuM3MuNSAxOC01LjggMjQuNEw0NDEuNyAzMDUuOSA0NjcgNDY1LjhjMS40IDguOS0yLjMgMTcuOS05LjYgMjMuMnMtMTcgNi4xLTI1IDJMMjg4LjEgNDE3LjYgMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNsMTU5LjktMjUuNCA3My42LTE0NC4yYzQuMS04IDEyLjQtMTMuMSAyMS40LTEzLjF6bTAgNzYuOEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDExMy4zLTU3LjZjNi44LTMuNSAxNC45LTMuNSAyMS44IDBsMTEzLjMgNTcuNi0xOS44LTEyNS41Yy0xLjItNy42IDEuMy0xNS4zIDYuNy0yMC43bDg5LjgtODkuOS0xMjUuNS0yMGMtNy42LTEuMi0xNC4xLTYtMTcuNi0xMi44TDI4OC4xIDQ0Ljh6Il19LGk5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbGFnIixpY29uOls0NDgsNTEyLFsxMjc5ODgsNjE3MjVdLCJmMDI0IiwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMCA4MC4zLTIwLjFjNDEuMS0xMC4zIDg0LjYtNS41IDEyMi41IDEzLjQgNDQuMiAyMi4xIDk1LjUgMjQuOCAxNDEuNyA3LjRsMzQuNy0xM2MxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI3OS43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTkuNiA0LjhjLTQ2LjMgMjMuMi0xMDAuOCAyMy4yLTE0Ny4xIDAtMzUuMS0xNy42LTc1LjQtMjItMTEzLjUtMTIuNUw0OCA1MiA0OCAyNHptMCA3Ny41bDk2LjYtMjQuMmMyNy02LjcgNTUuNS0zLjYgODAuNCA4LjggNTQuOSAyNy40IDExOC43IDI5LjcgMTc1IDYuOGwwIDI0MS44LTI0LjQgOS4xYy0zMy43IDEyLjYtNzEuMiAxMC43LTEwMy40LTUuNC00OC4yLTI0LjEtMTAzLjMtMzAuMS0xNTUuNi0xNy4xbC02OC42IDE3LjIgMC0yMzd6Il19LHM5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsZW1vbiIsaWNvbjpbNDQ4LDUxMixbMTI3ODE5XSwiZjA5NCIsIk0zNjggODBjLTMuMiAwLTYuMiAuNC04LjkgMS4zLTE5LjEgNS41LTQ2LjEgMTAuNy03NC4zIDMuMy01Ny40LTE0LjktMTI0LjYgNy40LTE3NC43IDU3LjVTMzcuNyAyNTkuNCA1Mi42IDMxNi44YzcuMyAyOC4yIDIuMiA1NS4yLTMuMyA3NC4zLS44IDIuOC0xLjMgNS44LTEuMyA4LjkgMCAxNy43IDE0LjMgMzIgMzIgMzIgMy4yIDAgNi4yLS40IDguOS0xLjMgMTkuMS01LjUgNDYuMS0xMC43IDc0LjMtMy4zIDU3LjQgMTQuOSAxMjQuNi03LjQgMTc0LjctNTcuNXM3Mi40LTExNy4zIDU3LjUtMTc0LjdjLTcuMy0yOC4yLTIuMi01NS4yIDMuMy03NC4zIC44LTIuOCAxLjMtNS44IDEuMy04LjkgMC0xNy43LTE0LjMtMzItMzItMzJ6bTAtNDhjNDQuMiAwIDgwIDM1LjggODAgODAgMCA3LjctMS4xIDE1LjItMy4xIDIyLjMtNC42IDE1LjgtNy4xIDMyLjktMyA0OC45IDIwLjEgNzcuNi0xMC45IDE2MS41LTcwIDIyMC43cy0xNDMuMSA5MC4yLTIyMC43IDcwYy0xNi00LjEtMzMtMS42LTQ4LjkgMy03LjEgMi0xNC42IDMuMS0yMi4zIDMuMS00NC4yIDAtODAtMzUuOC04MC04MCAwLTcuNyAxLjEtMTUuMiAzLjEtMjIuMyA0LjYtMTUuOCA3LjEtMzIuOSAzLTQ4LjktMjAuMS03Ny42IDEwLjktMTYxLjUgNzAtMjIwLjdTMjE5LjMgMTggMjk2LjggMzguMWMxNiA0LjEgMzMgMS42IDQ4LjktMyA3LjEtMiAxNC42LTMuMSAyMi4zLTMuMXpNMjQ2LjcgMTY3Yy01MiAxNS4yLTk2LjUgNTkuNy0xMTEuNyAxMTEuNy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM1M4NS4yIDI3OCA4OSAyNjUuM2MxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuMyAxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHoiXX0sbjlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1yZXN0b3JlIixpY29uOls1NzYsNTEyLFtdLCJmMmQyIiwiTTUxMiA4MEwyMjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2LTQ4IDAgMC0xNmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDggMCAwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTkyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzY4IDI4OGwtMzIwIDAgMCAxMjhjMCA4LjggNy4yIDE2IDE2IDE2bDI4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOHpNNjQgMTYwbDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LGZQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4taGVhcnRzIixpY29uOls1MTIsNTEyLFsxMjg1MjUsImdyaW4taGVhcnRzIl0sImY1ODQiLCJNNDY0IDI1NmMwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTNDggMzcwLjkgNDggMjU2YzAtMy41IC4xLTcuMSAuMy0xMC42LTE0LTEzLjktMjkuNy0zMy4xLTM5LjMtNTYuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NlM1MTIgMzk3LjQgNTEyIDI1NmMwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMtOS42IDIzLjctMjUuNCA0Mi44LTM5LjMgNTYuNyAuMiAzLjUgLjMgNyAuMyAxMC42ek0zNjggNTguOWMxMS43LTYgMjQuNS05LjYgMzcuNy0xMC42LTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjMTMuMiAxIDI2IDQuNiAzNy43IDEwLjYgMTMuOC03LjEgMjkuMy0xMC45IDQ1LjEtMTAuOWwyLjkgMGM4LjkgMCAxNy42IDEuMiAyNS44IDMuNSAxMi40LTIuMyAyNS4yLTMuNSAzOC4yLTMuNXMyNS44IDEuMiAzOC4yIDMuNWM4LjItMi4zIDE2LjktMy41IDI1LjgtMy41bDIuOSAwYzE1LjggMCAzMS4zIDMuOCA0NS4xIDEwLjl6bTQuMiAyNDMuNGMtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggMTkuOCA1NS45IDczLjEgOTUuOSAxMzUuOCA5NS45IDYyLjcgMCAxMTYtNDAuMSAxMzUuOC05NiA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3Ljh6TTMyMi45IDk2TDMyMCA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA1My40IDY2LjkgOTUuNyA4OSAxMDguMiA0LjQgMi41IDkuNiAyLjUgMTQgMCAyMi4xLTEyLjUgODktNTQuOCA4OS0xMDguMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMi45IDBjLTEzLjUgMC0yNi41IDUuNC0zNiAxNC45bC05LjEgOS4xLTkuMS05LjFjLTkuNS05LjUtMjIuNS0xNC45LTM2LTE0Ljl6bS0xODggMTQuOWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOUw5NiA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA1My40IDY2LjkgOTUuNyA4OSAxMDguMiA0LjQgMi41IDkuNiAyLjUgMTQgMCAyMi4xLTEyLjUgODktNTQuOCA4OS0xMDguMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMi45IDBjLTEzLjUgMC0yNi41IDUuNC0zNiAxNC45bC05LjEgOS4xLTkuMS05LjF6Il19LG85cj1mUGUsaFBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcy1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MzcsImtpc3MtYmVhbSJdLCJmNTk3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjQwIDE2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS02NC05MmMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGw5cj1oUGUsYzlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTIwOCA0OEw5NiA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmw4MCAwIDAgNDgtODAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyMjkuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM5Ny4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCAxNDkuNS00OCAwIDAtMTI4LTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTM0OC4xIDE2MEwyNTYgNjcuOSAyNTYgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMjQwIDM4MGwzMiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC0xMiAwIDAgMjhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4YzAtMTEgOS0yMCAyMC0yMHptMzIgODBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0xMiAwIDAgNDAgMTIgMHptOTYtODBsMzIgMGMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDY0YzAgMjguNy0yMy4zIDUyLTUyIDUybC0zMiAwYy0xMSAwLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiAxMjhjNi42IDAgMTItNS40IDEyLTEybDAtNjRjMC02LjYtNS40LTEyLTEyLTEybC0xMiAwIDAgODggMTIgMHptNzYtMTA4YzAtMTEgOS0yMCAyMC0yMGw0OCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtMjggMCAwIDI0IDI4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgNDRjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4eiJdfSxtUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpZGUiLGljb246WzUxMiw1MTIsWzEyODUxNSwiZ3Jpbi1hbHQiXSwiZjU4MSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTIyNCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em05NiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LGQ5cj1tUGUsZ1BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtc3F1aW50IixpY29uOls1MTIsNTEyLFsibGF1Z2gtc3F1aW50Il0sImY1OWIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMjUuMiA3Ni40Yy02LjUtMTQgNS0yOC40IDIwLjQtMjguNGwyMjAuOCAwYzE1LjQgMCAyNi44IDE0LjQgMjAuNCAyOC40LTIyLjggNDkuNC03Mi44IDgzLjYtMTMwLjggODMuNnMtMTA3LjktMzQuMi0xMzAuOC04My42em0tMi42LTE3My4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LHU5cj1nUGUsYlBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTM4NiA0MzkuNWMtMjkuMiAxNS42LTYyLjUgMjQuNS05OCAyNC41LTExNC45IDAtMjA4LTkzLjEtMjA4LTIwOFMxNzMuMiA0OCAyODggNDhjMTEzLjIgMCAyMDUuMiA5MC40IDIwNy45IDIwMi45IDE0LjMgMS41IDI4LjYgNiA0MS45IDEzLjcgMiAxLjIgNCAyLjQgNS45IDMuNyAuMi00LjEgLjMtOC4yIC4zLTEyLjMgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMzMiAxMTQuNiAzMiAyNTYgMTQ2LjYgNTEyIDI4OCA1MTJjNDEuNCAwIDgwLjUtOS44IDExNS4xLTI3LjMtNS44LTEyLjktMTItMjguNS0xNy4yLTQ1LjJ6TTI1NiAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtMTIuMy00LjYtMjMuNS0xMi4yLTMyIDcuNi04LjUgMTIuMi0xOS43IDEyLjItMzIgMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLTQ4LTQ4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTUyLTQ0bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHpNNTQyLjggMzUwYy0yLjItMTguMy0xMi45LTM0LjYtMjguOS00My44LTI4LjEtMTYuMi02My45LTYuNi04MC4xIDIxLjVsLTIuNyA0LjZjLTI0LjUgNDIuNSA3LjkgMTE3LjkgMjQuNCAxNTAuOCA1LjEgMTAuMSAxNS41IDE2LjEgMjYuOCAxNS41IDM2LjctMi4yIDExOC4yLTExLjcgMTQyLjgtNTQuMmwyLjctNC42YzE2LjItMjguMSA2LjYtNjMuOS0yMS41LTgwLjEtMTYtOS4yLTM1LjQtMTAuNC01Mi40LTMuMWwtOS44IDQuMi0xLjMtMTAuNnoiXX0scDlyPWJQZSx1dWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29weSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjNSIsIk0zODQgMzM2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzMuNSAwYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsNTguNSA1OC41YzMgMyA0LjcgNy4xIDQuNyAxMS4zTDQwMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2ek0xOTIgMzg0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTk3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzcwLjcgMTguN0MzNTguNyA2LjcgMzQyLjUgMCAzMjUuNSAwTDE5MiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTQ4IDAgMCAxNmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDAgMC00OC0xNiAweiJdfSxmOXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta2luZyIsaWNvbjpbNDQ4LDUxMixbOTgxOF0sImY0M2YiLCJNMjI0LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDgwIDE2MS44IDBjMjEuMSAwIDM4LjIgMTcuMSAzOC4yIDM4LjIgMCA2LjQtMS42IDEyLjctNC43IDE4LjNMMzU3LjIgMzc0LjUgNDA1LjYgNDM1YzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw3OS40IDUxMmMtMjYuMiAwLTQ3LjQtMjEuMi00Ny40LTQ3LjQgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNkw5MC44IDM3NC41IDQuNyAyMTYuNkMxLjYgMjEwLjkgMCAyMDQuNiAwIDE5OC4yIDAgMTc3LjEgMTcuMSAxNjAgMzguMiAxNjBsMTYxLjggMCAwLTgwLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMzEuOCA0MDBsLTMuNiA0LjQtNDcuNiA1OS42IDI4Ni42IDAtNDcuNi01OS42LTMuNi00LjQtMTg0LjMgMHptMS4xLTQ4LjVsLjMgLjUgMTgxLjYgMCAuMy0uNSA3OC4zLTE0My41LTMzOC43IDAgNzguMyAxNDMuNXoiXX0seFBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1wbHVzIixpY29uOls0NDgsNTEyLFs2MTg0NiwicGx1cy1zcXVhcmUiXSwiZjBmZSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMjAwIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LGg5cj14UGUsbTlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtY29kZSIsaWNvbjpbMzg0LDUxMixbXSwiZjFjOSIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0xNzAuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptODAtMzEuMmMtOC42LTEwLjEtMjMuOC0xMS4yLTMzLjgtMi42cy0xMS4yIDIzLjgtMi42IDMzLjhsMzQuNiA0MC40LTM0LjYgNDAuNGMtOC42IDEwLjEtNy41IDI1LjIgMi42IDMzLjhzMjUuMiA3LjUgMzMuOC0yLjZsNDgtNTZjNy43LTkgNy43LTIyLjIgMC0zMS4ybC00OC01NnoiXX0sdlBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGc5cj12UGUseVBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtMSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtYWx0Il0sImYzZDEiLCJNMTEyIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE2MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwyODggMGMwLTM1LjMgMjguNy02NCA2NC02NGwwLTE2MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsLTI4OCAwek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0yNTYgMTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0tMTYgNDRjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LGI5cj15UGUseDlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImV5ZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTE3Ni45IDExMS4xYzMyLjEtMTguOSA2OS4yLTMxLjEgMTExLjEtMzEuMSA2NS4yIDAgMTE4LjggMjkuNiAxNTkuOSA2Ny43IDM4LjUgMzUuNyA2NS4xIDc4LjMgNzguNiAxMDguMy0xMy42IDMwLTQwLjIgNzIuNS03OC42IDEwOC4zLTMuMSAyLjgtNi4yIDUuNi05LjQgOC40TDM5My44IDMyOGMxNC0yMC41IDIyLjItNDUuMyAyMi4yLTcyIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4LTI2LjcgMC01MS41IDguMi03MiAyMi4ybC0zOS4xLTM5LjF6bTE4MiAxODJsLTEwOC0xMDhjMTEuMS01LjggMjMuNy05LjEgMzcuMS05LjEgNDQuMiAwIDgwIDM1LjggODAgODAgMCAxMy40LTMuMyAyNi05LjEgMzcuMXpNMTAzLjQgMTczLjJsLTM0LTM0Yy0zMi42IDM2LjgtNTUgNzUuOC02Ni45IDEwNC41LTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNiAzNy4zIDAgNzEuMi03LjkgMTAxLjUtMjAuNkwzNTIuMiA0MjJjLTIwIDYuNC00MS40IDEwLTY0LjIgMTAtNjUuMiAwLTExOC44LTI5LjYtMTU5LjktNjcuNy0zOC41LTM1LjctNjUuMS03OC4zLTc4LjYtMTA4LjMgMTAuNC0yMy4xIDI4LjYtNTMuNiA1NC04Mi44eiJdfSx2OXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS13b3JkIixpY29uOlszODQsNTEyLFtdLCJmMWMyIiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTcxLjMgMjc0LjJjLTMuMi0xMi45LTE2LjItMjAuNy0yOS4xLTE3LjVTODUuNSAyNzMgODguNyAyODUuOGwzMiAxMjhjMi41IDEwLjIgMTEuNCAxNy41IDIxLjkgMTguMXMyMC4xLTUuNyAyMy44LTE1LjVsMjUuNS02OC4xIDI1LjUgNjguMWMzLjcgOS44IDEzLjMgMTYuMSAyMy44IDE1LjVzMTkuNC03LjkgMjEuOS0xOC4xbDMyLTEyOGMzLjItMTIuOS00LjYtMjUuOS0xNy41LTI5LjFzLTI1LjkgNC42LTI5LjEgMTcuNWwtMTMuMyA1My4yLTIwLjktNTUuOEMyMTEgMjYyLjIgMjAyIDI1NiAxOTIgMjU2cy0xOSA2LjItMjIuNSAxNS42bC0yMC45IDU1LjgtMTMuMy01My4yeiJdfSx3UGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1hbmdyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTQ0LCJhbmdyeSJdLCJmNTU2IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0xNDRjMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTBzLTc1LjcgMTkuOC05Ny41IDUwYy03LjcgMTAuOC01LjMgMjUuOCA1LjUgMzMuNXMyNS44IDUuMyAzMy41LTUuNWMxMy4xLTE4LjIgMzQuNC0zMCA1OC41LTMwem0tODAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0uMyA5LjcgMy4yYzEwLjUgMy41IDIxLjgtMi4yIDI1LjMtMTIuNnMtMi4yLTIxLjgtMTIuNi0yNS4zbC05Ni0zMmMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2wyOC45IDkuNmMtNC4xIDUuNC02LjYgMTIuMS02LjYgMTkuNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTkyLTMyYzAtNy4zLTIuNC0xNC02LjYtMTkuNGwyOC45LTkuNmMxMC41LTMuNSAxNi4xLTE0LjggMTIuNi0yNS4zcy0xNC44LTE2LjEtMjUuMy0xMi42bC05NiAzMmMtMTAuNSAzLjUtMTYuMSAxNC44LTEyLjYgMjUuM3MxNC44IDE2LjEgMjUuMyAxMi42bDkuNy0zLjIgMCAuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSx5OXI9d1BlLHc5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1rbmlnaHQiLGljb246WzQ0OCw1MTIsWzk4MjJdLCJmNDQxIiwiTTIzMi0zMmMxMTAuNSAwIDIwMCA4OS41IDIwMCAyMDBsMCAxMjcuN2MwIDE4LjktNi4xIDM3LjEtMTcuMiA1Mi4ybC01LjEgNi4yLTM2LjMgNDAuNyAzMi4xIDQwLjJjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42bC0uMiA0LjhjLTIuNCAyMy45LTIyLjYgNDIuNS00Ny4xIDQyLjVsLTI4OS4yIDAtNC44LS4yYy0yMy45LTIuNC00Mi41LTIyLjYtNDIuNS00Ny4xIDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZsMzcuNi00NyAwLTI0LjNjMC0yNC4zIDEwLjEtNDcuNiAyNy44LTY0LjJsNjMuNS01OS41LTE3LjQgMC0uMiAuMmMtMjAuMyAyMC4zLTQ5LjYgMjguMi03Ny4xIDIxLjFsLTUuNS0xLjZjLTMwLjktMTAuMy01Mi4zLTM4LTU0LjktNzAuMWwtLjItNi40IDAtMS40YzAtMTkuNyA3LjEtMzguOCAxOS45LTUzLjhsNzYuMS04OC44IDAtNDcuMSAuMS0yLjVDMTEzLjQtMjIuNiAxMjMuNi0zMiAxMzYtMzJsOTYgMHpNODAuNyA0NjRsMjg2LjYgMC0zOC40LTQ4LTIwOS45IDAtMzguNCA0OHpNMTYwIDQ4YzAgNS43LTIuMSAxMS4zLTUuOCAxNS42TDcyLjMgMTU5LjFDNjcgMTY1LjQgNjQgMTczLjQgNjQgMTgxLjdsMCAxLjQgLjQgNS4yYzEuOSAxMS45IDEwLjMgMjEuOSAyMS45IDI1LjhsNC41IDEuMWMxMC41IDEuOSAyMS4zLTEuNCAyOS05bDcuMi03LjIgMy43LTNjMy45LTIuNiA4LjUtNCAxMy4zLTRsODggMGM5LjggMCAxOC43IDYgMjIuMyAxNS4yczEuMyAxOS42LTUuOSAyNi4zbC0xMDcuOCAxMDFjLTguMSA3LjYtMTIuNyAxOC4xLTEyLjcgMjkuMmwwIDQuMyAyMDUuMiAwIDQwLjctNDUuOCAyLjMtMi44YzUuMS02LjggNy44LTE1LjIgNy44LTIzLjdMMzg0IDE2OGMwLTgzLjktNjguMS0xNTItMTUyLTE1MmwtNzIgMCAwIDMyem0zMiA3MmEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6Il19LGtQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTE2LCJncmluLWJlYW0iXSwiZjU4MiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxrOXI9a1BlLFM5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBlYWNlIixpY29uOls0NDgsNTEyLFs5OTk2XSwiZjI1YiIsIk0yMTkgMS40Yy0zNS4yLTMuNy02Ni42IDIxLjgtNzAuMyA1N2wtNi40IDYwLjYtMTcuNC00OS40QzExMy4yIDM2LjMgNzYuNiAxOC44IDQzLjMgMzAuNVMtNy42IDc4LjggNC4xIDExMi4xTDU2LjkgMjYyLjJDNDEuNyAyNzYuNyAzMi4yIDI5Ny4zIDMyLjIgMzIwbDAgMjRjMCA5Mi44IDc1LjIgMTY4IDE2OCAxNjhsNDggMGM5Mi44IDAgMTY4LTc1LjIgMTY4LTE2OGwwLTEyMGMwLTM1LjMtMjguNy02NC02NC02NC03LjkgMC0xNS40IDEuNC0yMi40IDQtMTAuNC0yMS4zLTMyLjMtMzYtNTcuNi0zNi0uNyAwLTEuNSAwLTIuMiAwbDUuOS01Ni4zYzMuNy0zNS4yLTIxLjgtNjYuNi01Ny03MC4zem0tLjIgMTU1LjRjLTYuNiAxMC4xLTEwLjUgMjIuMi0xMC41IDM1LjJsMCA0OGMwIC43IDAgMS40IDAgMi01LjEtMS4zLTEwLjUtMi0xNi0ybC03LjQgMC01LjQtMTUuMyAxNy0xNjEuM2MuOS04LjggOC44LTE1LjIgMTcuNi0xNC4yczE1LjIgOC44IDE0LjIgMTcuNmwtOS41IDkwLjF6TTc5LjYgODUuNmw1NC4zIDE1NC40LTIxLjcgMGMtNCAwLTggLjMtMTEuOSAuOUw0OS40IDk2LjJjLTIuOS04LjMgMS41LTE3LjUgOS44LTIwLjRzMTcuNSAxLjUgMjAuNCA5Ljh6TTI1Ni4yIDE5MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OHptMzguNCAxMDhjMTAuNCAyMS4zIDMyLjMgMzYgNTcuNiAzNiA1LjUgMCAxMC45LS43IDE2LTJsMCAxMGMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtNDggMGMtNjYuMyAwLTEyMC01My43LTEyMC0xMjBsMC0yNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw4MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0uNyAwLTEuNCAwLTIgNS4xIDEuMyAxMC41IDIgMTYgMiA3LjkgMCAxNS40LTEuNCAyMi40LTR6bTczLjYtMjhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDh6Il19LE05cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzA2LjcgNjkuMUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMyA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LEM5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUiLGljb246WzQ0OCw1MTIsWzk2MzIsOTcyMyw5NzI0LDYxNTkwXSwiZjBjOCIsIk0zODQgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LFNQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4iLGljb246WzUxMiw1MTIsWzEyODUxMiwiZ3JpbiJdLCJmNTgwIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSx6OXI9U1BlLE1QZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNtaWxlIixpY29uOls1MTIsNTEyLFsxMjg1NzgsInNtaWxlIl0sImYxMTgiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxfOXI9TVBlLENQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc3LjMgNjMuNEMxOTIuMyAzMzUgMjE4LjQgMzUyIDI1NiAzNTJzNjMuNy0xNyA3OC43LTMyLjZjOS4yLTkuNiAyNC40LTkuOSAzMy45LS43czkuOSAyNC40IC43IDMzLjljLTIyLjEgMjMtNjAgNDcuNC0xMTMuMyA0Ny40cy05MS4yLTI0LjQtMTEzLjMtNDcuNGMtOS4yLTkuNi04LjktMjQuOCAuNy0zMy45czI0LjgtOC45IDMzLjkgLjd6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxUOXI9Q1BlLEw5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXItY2xvc2VkIixpY29uOls1MTIsNTEyLFtdLCJlMTg1IiwiTTQ0OCA0MDBMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNDQgNDE2IDAgMCAxNDRjMCA4LjgtNy4yIDE2LTE2IDE2em0xNi0yMDhsLTQxNiAwIDAtOTZjMC04LjggNy4yLTE2IDE2LTE2bDEzOC43IDBjMy41IDAgNi44IDEuMSA5LjYgMy4yTDI1MC43IDExMmMxMy44IDEwLjQgMzAuNyAxNiA0OCAxNkw0NDggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4ek02NCA0NDhsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjk4LjcgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI0MS4xIDQ0LjhDMjMwIDM2LjUgMjE2LjUgMzIgMjAyLjcgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NHoiXX0sRDlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImtleWJvYXJkIixpY29uOls1NzYsNTEyLFs5ZTNdLCJmMTFjIiwiTTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjU2YzAgOC44IDcuMiAxNiAxNiAxNmw0NDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHpNMTc2IDMyMGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bS03Mi03MmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2eiJdfSx6UGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1yb2xsaW5nLWV5ZXMiLGljb246WzUxMiw1MTIsWzEyODU4MCwibWVoLXJvbGxpbmctZXllcyJdLCJmNWE1IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDM3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0xNjAgMjY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MCAwLTkuNSAzLjMtMTguMSA4LjgtMjUgMy4yIDE0LjMgMTYgMjUgMzEuMiAyNXMyOC0xMC43IDMxLjItMjVjNS41IDYuOCA4LjggMTUuNSA4LjggMjUgMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgNDBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE5Mi00MGMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC05LjUgMy4zLTE4LjEgOC44LTI1IDMuMiAxNC4zIDE2IDI1IDMxLjIgMjVzMjgtMTAuNyAzMS4yLTI1YzUuNSA2LjggOC44IDE1LjUgOC44IDI1IDAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDQwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYweiJdfSwkOXI9elBlLF9QZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW1hY2UiLGljb246WzUxMiw1MTIsWzEyODU1NiwiZ3JpbWFjZSJdLCJmNTdmIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZhMjU2IDI1NiAwIDEgMSAtNTEyIDAgMjU2IDI1NiAwIDEgMSA1MTIgMHpNMTUyIDM1MmMwIDExLjkgOC42IDIxLjggMjAgMjMuN2wwLTQ3LjNjLTExLjQgMS45LTIwIDExLjgtMjAgMjMuN3ptODQgMjRsMC00OC0yNCAwIDAgNDggMjQgMHptNjQgMGwwLTQ4LTI0IDAgMCA0OCAyNCAwem00MC0uM2MxMS40LTEuOSAyMC0xMS44IDIwLTIzLjdzLTguNi0yMS44LTIwLTIzLjdsMCA0Ny4zek0xNzYgMjg4bDE2MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xNjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NHptMC0xMTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sQTlyPV9QZSxUUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLWRvdCIsaWNvbjpbNTEyLDUxMixbMTI4MjgwLCJkb3QtY2lyY2xlIl0sImYxOTIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtNDY0YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnptMCAzMDRhOTYgOTYgMCAxIDEgMC0xOTIgOTYgOTYgMCAxIDEgMCAxOTJ6Il19LEU5cj1UUGUsSTlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk00MCA2NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00OCA1OS4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zbDMyOS4zIDBjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAyNjUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTMyOS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMjY1LjN6TTUxMiAwYy0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBMMTIzLjMgNDBDMTEzLjkgMTYuNSA5MC45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjQgMCA5MC45IDE2LjUgMTEzLjkgNDAgMTIzLjNsMCAyNjUuM2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI2LjkgMCA0OS45LTE2LjUgNTkuMy00MGwzMjkuMyAwYzkuNSAyMy41IDMyLjUgNDAgNTkuMyA0MCAzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yNjUuM2MyMy41LTkuNSA0MC0zMi41IDQwLTU5LjMgMC0zNS4zLTI4LjctNjQtNjQtNjR6TTQ4OCA2NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek02NCA0MjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MjQgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNMTkyIDE3Nmw4OCAwIDAgNTYtODggMCAwLTU2em0tOC00MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA3MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMDQgMHptNzIgMTg0bDAgMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMwIDE0LjYtMy45IDI4LjItMTAuNyA0MGwyNi43IDAgMCA1Ni04OCAwIDAtMTYuNGMtMi42IC4zLTUuMyAuNC04IC40bC0zMiAweiJdfSxMUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mbHVzaGVkIixpY29uOls1MTIsNTEyLFsxMjg1NjMsImZsdXNoZWQiXSwiZjU3OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMTYwIDI0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTIxNi0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xOTIgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEyOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjggMHpNMTYwIDE3NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTAgMTI4YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xNDQtODBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMTI4IDBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAweiJdfSxQOXI9TFBlLERQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdGFyLWhhbGYtc3Ryb2tlIixpY29uOls1NzYsNTEyLFsic3Rhci1oYWxmLWFsdCJdLCJmNWMwIiwiTTMwOS41LTE4LjljLTQuMS04LTEyLjQtMTMuMS0yMS40LTEzLjFzLTE3LjMgNS4xLTIxLjQgMTMuMUwxOTMuMSAxMjUuMyAzMy4yIDE1MC43Yy04LjkgMS40LTE2LjMgNy43LTE5LjEgMTYuM3MtLjUgMTggNS44IDI0LjRsMTE0LjQgMTE0LjUtMjUuMiAxNTkuOWMtMS40IDguOSAyLjMgMTcuOSA5LjYgMjMuMnMxNi45IDYuMSAyNSAyTDI4OC4xIDQxNy42IDQzMi40IDQ5MWM4IDQuMSAxNy43IDMuMyAyNS0yczExLTE0LjIgOS42LTIzLjJMNDQxLjcgMzA1LjkgNTU2LjEgMTkxLjRjNi40LTYuNCA4LjYtMTUuOCA1LjgtMjQuNHMtMTAuMS0xNC45LTE5LjEtMTYuM0wzODMgMTI1LjMgMzA5LjUtMTguOXpNMjY0LjEgOTEuOGwwIDI4NC4xLTEwMC4xIDUwLjkgMTkuOC0xMjUuNWMxLjItNy42LTEuMy0xNS4zLTYuNy0yMC43bC04OS44LTg5LjkgMTI1LjUtMjBjNy42LTEuMiAxNC4xLTYgMTcuNi0xMi44bDMzLjgtNjYuMnptNDggMjg0LjFsMC0yODQuMSAzMy44IDY2LjJjMy41IDYuOCAxMCAxMS42IDE3LjYgMTIuOGwxMjUuNSAyMC04OS44IDg5LjljLTUuNCA1LjQtNy45IDEzLjEtNi43IDIwLjdsMTkuOCAxMjUuNS0xMDAuMS01MC45eiJdfSxOOXI9RFBlLE85cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXZpZGVvIixpY29uOlszODQsNTEyLFtdLCJmMWM4IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDI4OGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sJFBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2giLGljb246WzUxMiw1MTIsWyJsYXVnaCJdLCJmNTk5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFI5cj0kUGUsRjlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjI1YSIsIk0xNjAgNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDEzNmMwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNCA4LjggMCAxNiA3LjIgMTYgMTYgMCAxMC4zIDYuNiAxOS41IDE2LjQgMjIuOHMyMC42LS4xIDI2LjgtOC4zYzMtMy45IDcuNi02LjQgMTIuOC02LjQgNy44IDAgMTQuMyA1LjYgMTUuNyAxMyAxLjYgOC4yIDcuMyAxNS4xIDE1LjEgMThzMTYuNyAxLjYgMjMuMy0zLjZjMi43LTIuMSA2LjEtMy40IDkuOS0zLjQgOC44IDAgMTYgNy4yIDE2IDE2bDAgMTIwYzAgMzkuOC0zMi4yIDcyLTcyIDcybC0xMTYuNiAwYy0zNy40IDAtNzIuNC0xOC43LTkzLjItNDkuOUw1MC43IDMxMi45Yy00LjktNy40LTIuOS0xNy4zIDQuNC0yMi4yczE3LjMtMi45IDIyLjIgNC40TDExNiAzNTMuMmM1LjkgOC44IDE2LjggMTIuNyAyNi45IDkuN3MxNy0xMi40IDE3LTIzTDE2MCA2NHpNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTk3LjdDOTEuMiAyMzggNTUuNSAyMzIuOCAyOC41IDI1MC43LS45IDI3MC40LTguOSAzMTAuMSAxMC44IDMzOS41TDc4LjMgNDQwLjhjMjkuNyA0NC41IDc5LjYgNzEuMiAxMzMuMSA3MS4yTDMyOCA1MTJjNjYuMyAwIDEyMC01My43IDEyMC0xMjBsMC0xMjBjMC0zNS4zLTI4LjctNjQtNjQtNjQtNC41IDAtOC44IC41LTEzIDEuMy0xMS43LTE1LjQtMzAuMi0yNS4zLTUxLTI1LjMtNi45IDAtMTMuNSAxLjEtMTkuNyAzLjEtMTEuNi0xNi40LTMwLjctMjcuMS01Mi4zLTI3LjEtMi43IDAtNS40IC4yLTggLjVMMjQwIDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0em00OCAzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6bTQ4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em04MCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnoiXX0sQjlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InJlZ2lzdGVyZWQiLGljb246WzUxMiw1MTIsWzE3NF0sImYyNWQiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDAgMTQ0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTYgMzQuNCAwIDQxIDY4LjNjNi44IDExLjQgMjEuNiAxNSAzMi45IDguMnMxNS0yMS42IDguMi0zMi45bC0zMC4yLTUwLjNjMjQuNi0xMS41IDQxLjYtMzYuNCA0MS42LTY1LjMgMC0zOS44LTMyLjItNzItNzItNzJsLTgwIDB6bTcyIDk2bC00OCAwIDAtNDggNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAweiJdfSxJRWE9e2ZhU3F1YXJlTWludXM6ZEllLGZhTWludXNTcXVhcmU6UzVyLGZhQ2FsZW5kYXJDaGVjazpNNXIsZmFGYWNlS2lzczp1SWUsZmFLaXNzOkM1cixmYVBhc3RlOk1fLGZhRmlsZUNsaXBib2FyZDp6NXIsZmFIYW5kUG9pbnRMZWZ0Ol81cixmYUZpbGVFeGNlbDpUNXIsZmFFbnZlbG9wZTpMNXIsZmFTcXVhcmVDYXJldERvd246cEllLGZhQ2FyZXRTcXVhcmVEb3duOkQ1cixmYVRydWNrOiQ1cixmYUJlbGw6QTVyLGZhTWVzc2FnZTpDXyxmYUNvbW1lbnRBbHQ6RTVyLGZhRmFjZURpenp5OmZJZSxmYURpenp5Okk1cixmYUNhbGVuZGFyRGF5czpoSWUsZmFDYWxlbmRhckFsdDpQNXIsZmFIYW5kUG9pbnRVcDpONXIsZmFIYW5kTGl6YXJkOk81cixmYVNxdWFyZUZ1bGw6UjVyLGZhQ2lyY2xlUGF1c2U6bUllLGZhUGF1c2VDaXJjbGU6RjVyLGZhSGFyZERyaXZlOmdJZSxmYUhkZDpCNXIsZmFGaWxlWmlwcGVyOmJJZSxmYUZpbGVBcmNoaXZlOkg1cixmYUZsb3BweURpc2s6eEllLGZhU2F2ZTpxNXIsZmFGYWNlR3JpblRvbmd1ZVNxdWludDp2SWUsZmFHcmluVG9uZ3VlU3F1aW50OlY1cixmYUNhbWVyYTp5SWUsZmFDYW1lcmFBbHQ6ajVyLGZhRmFjZUdyaW5TdGFyczp3SWUsZmFHcmluU3RhcnM6VTVyLGZhRXllOlc1cixmYUZhY2VTYWRUZWFyOmtJZSxmYVNhZFRlYXI6RzVyLGZhU2hhcmVGcm9tU3F1YXJlOlNJZSxmYVNoYXJlU3F1YXJlOlk1cixmYU5vdGVTdGlja3k6TUllLGZhU3RpY2t5Tm90ZTpLNXIsZmFIYW5kQmFja0Zpc3Q6Q0llLGZhSGFuZFJvY2s6WjVyLGZhQ2hlc3NRdWVlbjpRNXIsZmFGYWNlR3JpblRlYXJzOnpJZSxmYUdyaW5UZWFyczpYNXIsZmFQZW5Ub1NxdWFyZTpfSWUsZmFFZGl0Oko1cixmYUZhY2VHcmluQmVhbVN3ZWF0OlRJZSxmYUdyaW5CZWFtU3dlYXQ6ZThyLGZhQ2xvY2s6TEllLGZhQ2xvY2tGb3VyOnQ4cixmYUZhY2VMYXVnaFdpbms6REllLGZhTGF1Z2hXaW5rOnI4cixmYVBhcGVyUGxhbmU6YThyLGZhSGVhcnQ6aThyLGZhRm9udEF3ZXNvbWU6cnVlLGZhRm9udEF3ZXNvbWVGbGFnOnM4cixmYUZvbnRBd2Vzb21lTG9nb0Z1bGw6bjhyLGZhQ2xvbmU6bzhyLGZhRm9sZGVyT3BlbjpsOHIsZmFXaW5kb3dNaW5pbWl6ZTpjOHIsZmFTdGFySGFsZjpkOHIsZmFBbGFybUNsb2NrOnU4cixmYU5ld3NwYXBlcjpwOHIsZmFIb3NwaXRhbDphdWUsZmFIb3NwaXRhbEFsdDpmOHIsZmFIb3NwaXRhbFdpZGU6aDhyLGZhQ2lyY2xlU3RvcDokSWUsZmFTdG9wQ2lyY2xlOm04cixmYU9iamVjdFVuZ3JvdXA6ZzhyLGZhQ29tbWVudDpiOHIsZmFDaGVzc1Bhd246eDhyLGZhQ2FsZW5kYXJQbHVzOnY4cixmYUNsaXBib2FyZDp5OHIsZmFUaHVtYnNEb3duOnc4cixmYUlkQmFkZ2U6azhyLGZhU3F1YXJlQ2hlY2s6QUllLGZhQ2hlY2tTcXVhcmU6UzhyLGZhQ2hlc3NCaXNob3A6TThyLGZhRW52ZWxvcGVPcGVuOkM4cixmYUNpcmNsZVhtYXJrOnp5LGZhVGltZXNDaXJjbGU6ejhyLGZhWG1hcmtDaXJjbGU6XzhyLGZhU3F1YXJlQ2FyZXRVcDpFSWUsZmFDYXJldFNxdWFyZVVwOlQ4cixmYUZpbGVJbWFnZTpMOHIsZmFTcXVhcmVDYXJldFJpZ2h0OklJZSxmYUNhcmV0U3F1YXJlUmlnaHQ6RDhyLGZhU3VuOmR1ZSxmYUltYWdlOiQ4cixmYUxpZ2h0YnVsYjpBOHIsZmFBZGRyZXNzQ2FyZDppdWUsZmFDb250YWN0Q2FyZDpFOHIsZmFWY2FyZDpJOHIsZmFGYWNlTWVoOlBJZSxmYU1laDpQOHIsZmFNYXA6TjhyLGZhSGFuZFBvaW50RG93bjpPOHIsZmFGYWNlTWVoQmxhbms6TkllLGZhTWVoQmxhbms6UjhyLGZhRmFjZUdyaW5Ub25ndWU6T0llLGZhR3JpblRvbmd1ZTpGOHIsZmFGdXRib2w6c3VlLGZhRnV0Ym9sQmFsbDpCOHIsZmFTb2NjZXJCYWxsOkg4cixmYUZhY2VTdXJwcmlzZTpSSWUsZmFTdXJwcmlzZTpxOHIsZmFGb2xkZXI6RkllLGZhRm9sZGVyQmxhbms6VjhyLGZhQ2xvdWQ6ajhyLGZhQ2lyY2xlOlU4cixmYUZhY2VHcmluU3F1aW50OkJJZSxmYUdyaW5TcXVpbnQ6VzhyLGZhQ2lyY2xlVXNlcjpISWUsZmFVc2VyQ2lyY2xlOkc4cixmYVJlY3RhbmdsZUxpc3Q6cUllLGZhTGlzdEFsdDpZOHIsZmFIYW5kOlZJZSxmYUhhbmRQYXBlcjpLOHIsZmFUaHVtYnNVcDpaOHIsZmFCdWlsZGluZzpROHIsZmFDaGVzc1Jvb2s6WDhyLGZhQ2lyY2xlUXVlc3Rpb246akllLGZhUXVlc3Rpb25DaXJjbGU6SjhyLGZhRmlsZTplN3IsZmFGYWNlU2FkQ3J5OlVJZSxmYVNhZENyeTp0N3IsZmFDYWxlbmRhck1pbnVzOnI3cixmYUZhY2VUaXJlZDpXSWUsZmFUaXJlZDphN3IsZmFIYW5kUG9pbnRSaWdodDppN3IsZmFDaXJjbGVVcDpHSWUsZmFBcnJvd0FsdENpcmNsZVVwOnM3cixmYUhhbmRTY2lzc29yczpuN3IsZmFHZW06bzdyLGZhUmVjdGFuZ2xlWG1hcms6a18sZmFSZWN0YW5nbGVUaW1lczpsN3IsZmFUaW1lc1JlY3RhbmdsZTpjN3IsZmFXaW5kb3dDbG9zZTpkN3IsZmFUcmFzaENhbjp6XyxmYVRyYXNoQWx0OnU3cixmYUxpZmVSaW5nOnA3cixmYUNvcHlyaWdodDpmN3IsZmFDaXJjbGVMZWZ0OllJZSxmYUFycm93QWx0Q2lyY2xlTGVmdDpoN3IsZmFDYWxlbmRhcjptN3IsZmFGYWNlRnJvd25PcGVuOktJZSxmYUZyb3duT3BlbjpnN3IsZmFDaGFydEJhcjpaSWUsZmFCYXJDaGFydDpiN3IsZmFIb3VzZTpTXyxmYUhvbWU6eDdyLGZhSG9tZUFsdDp2N3IsZmFIb21lTGdBbHQ6eTdyLGZhRmFjZUZyb3duOlFJZSxmYUZyb3duOnc3cixmYVVzZXI6bnVlLGZhVXNlckFsdDprN3IsZmFVc2VyTGFyZ2U6UzdyLGZhU25vd2ZsYWtlOk03cixmYUJvb2ttYXJrOkM3cixmYVNxdWFyZUNhcmV0TGVmdDpYSWUsZmFDYXJldFNxdWFyZUxlZnQ6ejdyLGZhSGFuZHNoYWtlOm91ZSxmYUhhbmRzaGFrZUFsdDpfN3IsZmFIYW5kc2hha2VTaW1wbGU6VDdyLGZhRmFjZVNtaWxlV2luazpKSWUsZmFTbWlsZVdpbms6TDdyLGZhRmFjZUdyaW5TcXVpbnRUZWFyczplUGUsZmFHcmluU3F1aW50VGVhcnM6RDdyLGZhRmlsZUF1ZGlvOiQ3cixmYUNhbGVuZGFyWG1hcms6dFBlLGZhQ2FsZW5kYXJUaW1lczpBN3IsZmFDaXJjbGVEb3duOnJQZSxmYUFycm93QWx0Q2lyY2xlRG93bjpFN3IsZmFGaWxlTGluZXM6bHVlLGZhRmlsZUFsdDpJN3IsZmFGaWxlVGV4dDpQN3IsZmFDb21tZW50czpON3IsZmFDaXJjbGVDaGVjazpfXyxmYUNoZWNrQ2lyY2xlOk83cixmYU1vb246UjdyLGZhQ2xvc2VkQ2FwdGlvbmluZzpGN3IsZmFJbWFnZXM6QjdyLGZhQ2lyY2xlUmlnaHQ6YVBlLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpIN3IsZmFJZENhcmQ6aVBlLGZhRHJpdmVyc0xpY2Vuc2U6cTdyLGZhQ2lyY2xlUGxheTpzUGUsZmFQbGF5Q2lyY2xlOlY3cixmYUZhY2VMYXVnaEJlYW06blBlLGZhTGF1Z2hCZWFtOmo3cixmYUFkZHJlc3NCb29rOm9QZSxmYUNvbnRhY3RCb29rOlU3cixmYUhvdXJnbGFzczpsUGUsZmFIb3VyZ2xhc3NFbXB0eTpXN3IsZmFIZWFkcGhvbmVzOmN1ZSxmYUhlYWRwaG9uZXNBbHQ6RzdyLGZhSGVhZHBob25lc1NpbXBsZTpZN3IsZmFGaWxlUG93ZXJwb2ludDpLN3IsZmFXaW5kb3dNYXhpbWl6ZTpaN3IsZmFDb21tZW50RG90czpjUGUsZmFDb21tZW50aW5nOlE3cixmYUZhY2VHcmluVG9uZ3VlV2luazpkUGUsZmFHcmluVG9uZ3VlV2luazpYN3IsZmFIb3VyZ2xhc3NIYWxmOnVQZSxmYUhvdXJnbGFzczI6SjdyLGZhQ3JlZGl0Q2FyZDpwUGUsZmFDcmVkaXRDYXJkQWx0OmU5cixmYUhhbmRTcG9jazp0OXIsZmFCZWxsU2xhc2g6cjlyLGZhU3RhcjphOXIsZmFGbGFnOmk5cixmYUxlbW9uOnM5cixmYVdpbmRvd1Jlc3RvcmU6bjlyLGZhRmFjZUdyaW5IZWFydHM6ZlBlLGZhR3JpbkhlYXJ0czpvOXIsZmFGYWNlS2lzc0JlYW06aFBlLGZhS2lzc0JlYW06bDlyLGZhRmlsZVBkZjpjOXIsZmFGYWNlR3JpbldpZGU6bVBlLGZhR3JpbkFsdDpkOXIsZmFGYWNlTGF1Z2hTcXVpbnQ6Z1BlLGZhTGF1Z2hTcXVpbnQ6dTlyLGZhRmFjZUtpc3NXaW5rSGVhcnQ6YlBlLGZhS2lzc1dpbmtIZWFydDpwOXIsZmFDb3B5OnV1ZSxmYUNoZXNzS2luZzpmOXIsZmFTcXVhcmVQbHVzOnhQZSxmYVBsdXNTcXVhcmU6aDlyLGZhRmlsZUNvZGU6bTlyLGZhRmFjZUdyaW5XaW5rOnZQZSxmYUdyaW5XaW5rOmc5cixmYU1vbmV5QmlsbDE6eVBlLGZhTW9uZXlCaWxsQWx0OmI5cixmYUV5ZVNsYXNoOng5cixmYUZpbGVXb3JkOnY5cixmYUZhY2VBbmdyeTp3UGUsZmFBbmdyeTp5OXIsZmFDaGVzc0tuaWdodDp3OXIsZmFGYWNlR3JpbkJlYW06a1BlLGZhR3JpbkJlYW06azlyLGZhSGFuZFBlYWNlOlM5cixmYUNvbXBhc3M6TTlyLGZhU3F1YXJlOkM5cixmYUZhY2VHcmluOlNQZSxmYUdyaW46ejlyLGZhRmFjZVNtaWxlOk1QZSxmYVNtaWxlOl85cixmYUZhY2VTbWlsZUJlYW06Q1BlLGZhU21pbGVCZWFtOlQ5cixmYUZvbGRlckNsb3NlZDpMOXIsZmFLZXlib2FyZDpEOXIsZmFGYWNlUm9sbGluZ0V5ZXM6elBlLGZhTWVoUm9sbGluZ0V5ZXM6JDlyLGZhRmFjZUdyaW1hY2U6X1BlLGZhR3JpbWFjZTpBOXIsZmFDaXJjbGVEb3Q6VFBlLGZhRG90Q2lyY2xlOkU5cixmYU9iamVjdEdyb3VwOkk5cixmYUZhY2VGbHVzaGVkOkxQZSxmYUZsdXNoZWQ6UDlyLGZhU3RhckhhbGZTdHJva2U6RFBlLGZhU3RhckhhbGZBbHQ6TjlyLGZhRmlsZVZpZGVvOk85cixmYUZhY2VMYXVnaDokUGUsZmFMYXVnaDpSOXIsZmFIYW5kUG9pbnRlcjpGOXIsZmFSZWdpc3RlcmVkOkI5cn19KTt2YXIgUEVhLHE5cixWOXIsajlyLFU5cixXOXIsRzlyLFk5cixLOXIsWjlyLFE5cixwdWUsWDlyLEo5cixlZ3IsdGdyLEFQZSxyZ3IsRVBlLGFncixpZ3Isc2dyLElQZSxuZ3Isb2dyLGxncixjZ3Isal8sZGdyLHVncixQUGUscGdyLGZncixoZ3IsbWdyLGdncixiZ3IseGdyLHZncixOUGUseWdyLHdncixrZ3IsT1BlLFNncixNZ3IsQ2dyLHpncixfZ3IsVV8sVGdyLFJQZSxMZ3IsRGdyLGZ1ZSwkZ3IsQWdyLEZQZSxFZ3IsQlBlLElncixQZ3IsSFBlLE5ncixxUGUsT2dyLFZQZSxSZ3IsRmdyLEJncixIZ3IscWdyLFZncixqZ3IsalBlLFVncixXZ3IsR2dyLFlncixVUGUsS2dyLFpncixRZ3IsWGdyLEpncixlYnIsaHVlLHRicixyYnIsYWJyLG11ZSxpYnIsc2JyLG5icixXUGUsb2JyLGxicixjYnIsZGJyLEdQZSx1YnIsY3BlLHBicixkcGUsZmJyLGhicixZUGUsbWJyLEtQZSxnYnIsYmJyLGd1ZSx4YnIsdmJyLHlicix3YnIsa2JyLFNicixNYnIsQ2JyLHVwZSxXXyx6YnIsX2JyLFpQZSxUYnIsTGJyLFRfLERiciwkYnIsQWJyLFFQZSxFYnIsSWJyLFBicixYUGUsTmJyLEpQZSxPYnIsUmJyLEZicixCYnIsZU5lLEhicixxYnIsVmJyLHROZSxqYnIsck5lLFVicixXYnIsR2JyLFlicixidWUsS2JyLFpicixRYnIsWGJyLEpicixleHIsdHhyLGFOZSxyeHIsYXhyLGl4cixzeHIsbnhyLGlOZSxveHIsbHhyLExfLGN4cixkeHIsdXhyLHB4cixmeHIsaHhyLHh1ZSxteHIsZ3hyLGJ4cix4eHIsdnhyLHNOZSx5eHIsd3hyLGt4cixTeHIsTXhyLEN4cixuTmUsenhyLF94cixUeHIsTHhyLG9OZSxEeHIsJHhyLEF4cixsTmUsRXhyLEl4cixjTmUsUHhyLGROZSxOeHIsT3hyLHVOZSxSeHIsRnhyLHBOZSxCeHIsZk5lLEh4cixxeHIsR18sVnhyLFlfLGp4cixVeHIsdnVlLFd4cixHeHIsWXhyLGhOZSxLeHIsWnhyLG1OZSxReHIsWHhyLEp4cixldnIsZ05lLHR2cixydnIsYXZyLGl2cixzdnIsYk5lLG52cixvdnIsbHZyLGN2cix4TmUsZHZyLHZOZSx1dnIscHZyLGZ2cixodnIsbXZyLHlOZSxndnIsYnZyLHh2cix2dnIsd05lLHl2cix3dnIsa05lLGt2cixTTmUsU3ZyLE12cixDdnIsenZyLF92cixUdnIsTU5lLEx2cixEdnIsJHZyLEF2cixFdnIsQ05lLEl2cixQdnIsTnZyLE92cix6TmUsUnZyLF9OZSxGdnIscHBlLGZwZSxUTmUsQnZyLExOZSxIdnIscXZyLFZ2cixuVCxETmUsanZyLFV2cixXdnIsR3ZyLFl2cixLdnIsJE5lLFp2cixocGUsUXZyLFh2cixKdnIsZXlyLHR5cixBTmUscnlyLEVOZSxheXIsaXlyLHN5cixueXIsSU5lLG95cix5dWUsbHlyLGN5cixkeXIsUE5lLHV5cixweXIsZnlyLGh5cixOTmUsbXlyLGd5cixieXIseHlyLE9OZSx2eXIseXlyLHd5cixreXIsU3lyLE15cixDeXIsenlyLF95cixUeXIsTHlyLER5ciwkeXIsUk5lLEF5cixFeXIsSXlyLFB5cixOeXIsT3lyLFJ5cixGTmUsRnlyLEJ5cixIeXIsX3kscXlyLFZ5cixqeXIsVXlyLFd5cixCTmUsR3lyLEhOZSxZeXIscU5lLEt5cixWTmUsWnlyLGpOZSxReXIsS18sWHlyLFVOZSxKeXIsV05lLGV3cixHTmUsdHdyLHJ3cixhd3IsaXdyLFlOZSxzd3IsbndyLEtOZSxvd3IsbHdyLFpOZSxjd3IsZHdyLHV3cixwd3IsUU5lLGZ3cixod3IsbXdyLFhOZSxnd3IsYndyLERfLHh3cix2d3IseXdyLHd3cixrd3IsU3dyLEpOZSxNd3IsZU9lLEN3cix6d3IsX3dyLHRPZSxUd3IsTHdyLER3cixyT2UsJHdyLGFPZSxBd3Isd3VlLEV3cixJd3IsUHdyLE53cixPd3IsUndyLEZ3cixCd3IsSHdyLHF3cixWd3IsandyLFV3cixXd3IsJF8sR3dyLFl3cixLd3IsWndyLFF3cixYd3IsSndyLGVrcixpT2UsdGtyLHJrcixha3IsaWtyLHNrcixua3Isb2tyLGxrcixja3IsZGtyLHNPZSx1a3IscGtyLGZrcixoa3IsbWtyLGdrcixia3Isbk9lLHhrcixvT2UsdmtyLHlrcixsT2Usd2tyLGtrcixTa3IsTWtyLGNPZSxDa3IsemtyLF9rcixkT2UsVGtyLHVPZSxMa3IsRGtyLHBPZSwka3IsQWtyLEVrcixJa3IsZk9lLFBrcixOa3IsT2tyLG1wZSxSa3IsRmtyLEJrcixoT2UsSGtyLHFrcixWa3IsamtyLFVrcixtT2UsV2tyLEdrcixZa3IsS2tyLFprcixnT2UsUWtyLFhrcixKa3IsYk9lLGVTcix0U3Isa3VlLHJTcixhU3IsaVNyLHNTcix4T2UsblNyLG9TcixsU3Isdk9lLGNTcix5T2UsZFNyLHVTcixwU3IsZlNyLFpfLGhTcix3T2UsbVNyLGdTcixiU3IseFNyLHZTcixrT2UseVNyLFNPZSx3U3IsTU9lLGtTcixTU3IsU3VlLE1TcixDU3IsQ09lLHpTcixNdWUsX1NyLFRTcixMU3IsRFNyLCRTcixBU3IsRVNyLElTcix6T2UsUFNyLE5TcixPU3IsUlNyLEZTcixfT2UsQlNyLEhTcixxU3IsVE9lLFZTcixMT2UsalNyLERPZSxVU3IsV1NyLEdTcixZU3IsS1NyLFpTcixRU3IsJE9lLFhTcixKU3IsZU1yLHRNcixBT2Usck1yLGFNcixpTXIsc01yLG5NcixvTXIsRU9lLGxNcixjTXIsSU9lLGRNcix1TXIsUE9lLHBNcixmTXIsaE1yLG1NcixOT2UsZ01yLGJNcix4TXIsT09lLHZNcixST2UseU1yLHdNcixrTXIsU01yLEZPZSxNTXIsQ01yLHpNcixfTXIsVE1yLEJPZSxMTXIsSE9lLERNcixxT2UsJE1yLEFNcixWT2UsRU1yLGpPZSxJTXIsUE1yLE5NcixPTXIsUk1yLEZNcixCTXIsSE1yLHFNcixWTXIsak1yLEN1ZSxVTXIsV01yLCR5LEdNcixZTXIsS01yLHp1ZSxaTXIsUU1yLFhNcixKTXIsZUNyLHRDcixyQ3IsVU9lLGFDcixXT2UsaUNyLHNDcixuQ3IsR09lLG9DcixZT2UsbENyLGNDcixfdWUsZENyLHVDcixwQ3IsZkNyLFR5LGhDcixtQ3IsZ0NyLGJDcix4Q3IsdkNyLHlDcixLT2Usd0NyLGtDcixTQ3IsTUNyLFpPZSxDQ3IsekNyLF9DcixUQ3IsTENyLERDciwkQ3IsUU9lLEFDcixFQ3IsSUNyLFBDcixOQ3IsT0NyLFhPZSxSQ3IsZ3BlLEpPZSxGQ3IsQkNyLEhDcixlUmUscUNyLHRSZSxWQ3IsakNyLFVDcixyUmUsV0NyLEdDcixhUmUsWUNyLEtDcixaQ3IsUUNyLGlSZSxYQ3IsSkNyLGV6cix0enIscnpyLGF6cixzUmUsaXpyLHN6cixicGUsbnpyLG96cixuUmUsbHpyLGN6cixkenIsQV8sdXpyLHB6cixmenIsaHpyLEVfLG16cixnenIsYnpyLHh6cix2enIseXpyLG9SZSx3enIsVHVlLGt6cixTenIsTXpyLGxSZSxDenIsenpyLF96cixUenIsTHpyLER6ciwkenIsY1JlLEF6cix4cGUsRXpyLEl6cixQenIsZFJlLE56cix1UmUsT3pyLFJ6cixwUmUsRnpyLElfLEJ6cixIenIscXpyLFZ6cixqenIsVXpyLFd6cixHenIsWXpyLGZSZSxLenIsWnpyLFF6cixYenIsTHVlLEp6cixlX3IsaFJlLHRfcixyX3IsYV9yLG1SZSxpX3Isc19yLG5fcixnUmUsb19yLGxfcixjX3IsZF9yLHVfcixwX3IsZl9yLGhfcixtX3IsYlJlLGdfcix4UmUsYl9yLHhfcix2X3IseV9yLHdfcixrX3IsU19yLHZSZSxNX3IsQ19yLHpfcix5UmUsX19yLFRfcix3UmUsTF9yLGtSZSxEX3IsU1JlLCRfcixBX3IsRV9yLE1SZSxJX3IsQ1JlLFBfcix6UmUsTl9yLE9fcixfUmUsUl9yLFRSZSxGX3IsTFJlLEJfcixIX3IsRFJlLHFfcixWX3Isal9yLFVfcixXX3IsR19yLFlfcixLX3IsWl9yLFFfciwkUmUsWF9yLEFSZSxKX3IsRVJlLGVUcix0VHIsdnBlLHJUcixJUmUsYVRyLGlUcixzVHIsUFJlLG5UcixvVHIsTlJlLGxUcixRXyxjVHIsZFRyLHVUcixPUmUscFRyLFJSZSxmVHIsaFRyLEZSZSxtVHIsQlJlLGdUcixIUmUsYlRyLHhUcix2VHIseVRyLHdUcixxUmUsa1RyLFZSZSxTVHIsTVRyLENUcix6VHIsalJlLF9UcixUVHIsTFRyLFVSZSxEVHIsJFRyLEFUcixXUmUsRVRyLElUcixQVHIsTlRyLEdSZSxPVHIsUlRyLFlSZSxGVHIsQlRyLEhUcixLUmUscVRyLFZUcixqVHIsWlJlLFVUcixRUmUsV1RyLER1ZSxHVHIsWVRyLEtUcixYUmUsWlRyLFFUcixYVHIsSlJlLEpUcixlTHIsdExyLGVGZSxyTHIsYUxyLGlMcixzTHIsbkxyLG9McixsTHIsY0xyLGRMcix1THIscExyLGZMcix0RmUsaExyLHlwZSxtTHIsckZlLGdMcixiTHIseExyLHZMcixhRmUseUxyLHdMcixrTHIsU0xyLE1McixDTHIsekxyLFBfLF9McixUTHIsTExyLERMcixYXywkTHIsaUZlLEFMcixFTHIsSUxyLHNGZSxQTHIsTkxyLG5GZSxPTHIsUkxyLEZMcixCTHIsSExyLG9GZSxxTHIsbEZlLFZMcixqTHIsVUxyLGNGZSxXTHIsR0xyLFlMcixkRmUsS0xyLFpMcixRTHIsWExyLEpMcixlRHIsdERyLHVGZSxyRHIsd3BlLGFEcixpRHIsc0RyLHBGZSxuRHIsb0RyLGZGZSxsRHIsaEZlLGNEcixkRHIsdURyLG1GZSxwRHIsZ0ZlLGZEcixiRmUsaERyLG1Ecix4RmUsZ0RyLGJEcix4RHIsdkRyLHZGZSx5RHIsTl8sd0RyLGtEcixTRHIsTURyLHlGZSxDRHIsd0ZlLHpEcixfRHIsVERyLExEcixrRmUsRERyLE9fLCREcixBRHIsRURyLFNGZSxJRHIsUERyLE5EcixPRHIsTUZlLFJEcixDRmUsRkRyLEJEcixIRHIsekZlLHFEcixfRmUsVkRyLGpEcixURmUsVURyLExGZSxXRHIsREZlLEdEciwkRmUsWURyLEtEcixaRHIsUURyLEFGZSxYRHIsSkRyLGUkcix0JHIsciRyLGEkcixpJHIscyRyLEVGZSxuJHIsSUZlLG8kcixsJHIsYyRyLGQkcixQRmUsdSRyLHAkciwkdWUsZiRyLGgkcixtJHIsZyRyLGIkcix4JHIsdiRyLFJfLHkkcix3JHIsayRyLFMkcixNJHIsQyRyLHokcixfJHIsVCRyLEwkcixEJHIsJCRyLEEkcixBdWUsRSRyLEkkcixQJHIsTiRyLE8kcixSJHIsTkZlLEYkcixPRmUsQiRyLEgkcixxJHIsRXVlLFYkcixqJHIsVSRyLFJGZSxXJHIsSXVlLEckcixZJHIsSyRyLFokcixrcGUsUHVlLFEkcixYJHIsRkZlLEokcixlQXIsdEFyLHJBcixCRmUsYUFyLGlBcixIRmUsc0FyLG5BcixxRmUsb0FyLGxBcixjQXIsZEFyLHVBcixwQXIsTnVlLGZBcixoQXIsVkZlLG1BcixnQXIsYkFyLHhBcix2QXIseUFyLHdBcixrQXIsakZlLFNBcixNQXIsVUZlLENBcixXRmUsekFyLF9BcixFcCxUQXIsTEFyLERBciwkQXIsR0ZlLEFBcixFQXIsSUFyLFBBcixZRmUsTkFyLEtGZSxPQXIsT3VlLFJBcixGQXIsQkFyLFpGZSxIQXIsU3BlLHFBcixWQXIsUUZlLGpBcixSdWUsVUFyLFdBcixHQXIsWUFyLEtBcixaQXIsSl8sUUFyLFhBcixYRmUsSkFyLGVFcix0RXIsSkZlLHJFcixlQmUsYUVyLEZfLGlFcixzRXIsbkVyLG9FcixsRXIsY0VyLGRFcix0QmUsdUVyLHBFcixyQmUsZkVyLGFCZSxoRXIsaUJlLG1FcixnRXIsYkVyLHhFcix2RXIseUVyLHNCZSx3RXIsa0VyLFNFcixNRXIsQ0VyLG5CZSx6RXIsb0JlLF9FcixsQmUsVEVyLExFcixERXIsRnVlLCRFcixBRXIsRUVyLElFcixQRXIsY0JlLE5FcixkQmUsT0VyLFJFcixGRXIsQkVyLHVCZSxIRXIscEJlLHFFcixWRXIsQnVlLGpFcixVRXIsV0VyLEdFcixZRXIsZkJlLEtFcixaRXIsaEJlLFFFcixtQmUsWEVyLEpFcixlSXIsdElyLHJJcixhSXIsaUlyLHNJcixuSXIsb0lyLGdCZSxsSXIsY0lyLGRJcix1SXIsSHVlLHBJcixmSXIsaElyLG1JcixiQmUsZ0lyLGJJcix4QmUseElyLHZJcix5SXIsd0lyLHZCZSxrSXIsU0lyLE1JcixlVCxDSXIseklyLHF1ZSxfSXIsVElyLHlCZSxMSXIsRElyLCRJcixBSXIsRUlyLHdCZSxJSXIsUElyLGtCZSxOSXIsU0JlLE9JcixSSXIsRklyLEJJcixISXIsTUJlLHFJcixDQmUsVklyLHpCZSxqSXIsVUlyLFdJcixHSXIsX0JlLFlJcixLSXIsVEJlLFpJcixRSXIsWElyLExCZSxKSXIsZVByLFZ1ZSx0UHIsclByLERCZSxhUHIsJEJlLGlQcixBQmUsc1ByLE1wZSxFQmUsblByLElCZSxvUHIsbFByLGNQcixkUHIsdVByLHBQcixqdWUsZlByLGhQcixtUHIsUEJlLGdQcixiUHIseFByLFV1ZSx2UHIseVByLHdQcixrUHIsV3VlLFNQcixNUHIsQ1ByLHpQcixOQmUsX1ByLE9CZSxUUHIsTFByLERQciwkUHIsQVByLEd1ZSxFUHIsSVByLFBQcixOUHIsT1ByLFJQcixZdWUsRlByLEJQcixIUHIsUkJlLHFQcixWUHIsalByLFVQcixGQmUsV1ByLEdQcixZUHIsS1ByLFpQcixRUHIsQkJlLFhQcixKUHIsZU5yLHROcixIQmUsck5yLGFOcixCXyxpTnIsc05yLG5OcixxQmUsb05yLGxOcixjTnIsZE5yLHVOcixwTnIsZk5yLGhOcixtTnIsVkJlLGdOcixiTnIsakJlLHhOcix2TnIseU5yLFVCZSx3TnIsa05yLFNOcixNTnIsQ05yLFdCZSx6TnIsQ3BlLEdCZSxfTnIsVE5yLExOcixETnIsJE5yLFlCZSxBTnIsRU5yLElOcixQTnIsTk5yLEtCZSxPTnIsUk5yLEZOcixCTnIsSE5yLEt1ZSxxTnIsVk5yLGpOcixVTnIsV05yLFpCZSxHTnIsUUJlLFlOcixLTnIsWk5yLFp1ZSxRTnIsWE5yLEpOcixYQmUsZU9yLEpCZSx0T3Isck9yLGFPcixpT3Isc09yLG5PcixlSGUsb09yLGxPcix0SGUsY09yLHJIZSxkT3IsYUhlLHVPcixwT3IsaUhlLGZPcixzSGUsaE9yLG1PcixnT3IsYk9yLHhPcix2T3IseU9yLHdPcixrT3IsbkhlLFNPcixNT3IsUXVlLENPcix6T3Isb0hlLF9PcixUT3IsTE9yLGxIZSxET3IsJE9yLEFPcixFT3IsY0hlLElPcixQT3IsTk9yLE9PcixST3IsZEhlLEZPcixCT3IsSE9yLFh1ZSxxT3IsVk9yLGpPcixVT3IsV09yLEdPcixKdWUsWU9yLEtPcixaT3IsdUhlLFFPcixwSGUsWE9yLEpPcixlUnIsdFJyLGZIZSxyUnIsaEhlLGFScixpUnIsbUhlLHNScixuUnIsZ0hlLG9ScixsUnIsY1JyLGRScixiSGUsdVJyLHBScixmUnIsaFJyLHRULG1Scix6cGUsZ1JyLGJScix4UnIsdlJyLHhIZSx5UnIsdkhlLHdScixrUnIsU1JyLE1ScixIXyxDUnIselJyLF9ScixxXyxUUnIsTFJyLERScix5SGUsJFJyLEFScixlcGUsRVJyLElScixQUnIsTlJyLHdIZSxPUnIsUlJyLEZScixrSGUsQlJyLEhScixxUnIsVlJyLGpScixTSGUsVVJyLHRwZSxXUnIsR1JyLFlScixLUnIsWlJyLFFScixNSGUsWFJyLENIZSxKUnIsekhlLGVGcix0RnIsX0hlLHJGcixfcGUsVEhlLGFGcixpRnIsc0ZyLExIZSxuRnIsb0ZyLFRwZSxESGUsbEZyLGNGcixkRnIsdUZyLEx5LHBGcixmRnIsaEZyLG1GciwkSGUsZ0ZyLGJGcix4RnIsQUhlLHZGcix5RnIsd0ZyLGtGcixFSGUsU0ZyLE1GcixDRnIsekZyLF9GcixycGUsVEZyLExGcixyVCxERnIsSUhlLCRGcixQSGUsQUZyLEVGcixJRnIsUEZyLE5IZSxORnIsT0ZyLFJGcixGRnIsT0hlLEJGcixIRnIscUZyLFJIZSxWRnIsakZyLFVGcixXRnIsRkhlLEdGcixZRnIsS0ZyLEJIZSxaRnIsUUZyLFhGcixhVCxKRnIsZUJyLEhIZSx0QnIscUhlLHJCcixWSGUsYUJyLGpIZSxpQnIsc0JyLFVIZSxuQnIsb0JyLGxCcixjQnIsZEJyLHVCcixXSGUscEJyLGZCcixHSGUsaEJyLG1CcixZSGUsZ0JyLGJCcix4QnIsS0hlLHZCcix5QnIsd0JyLGtCcixTQnIsRHksTUJyLENCcix6QnIsX0JyLFRCcixMQnIsREJyLCRCcixBQnIsRUJyLElCcixQQnIsTkJyLE9CcixSQnIsRkJyLEJCcixaSGUsSEJyLHFCcixWQnIsakJyLFFIZSxVQnIsV0JyLEdCcixWXyxZQnIsS0JyLFpCcixRQnIsWEJyLFhIZSxKQnIsaVQsZUhyLHRIcixySHIsSkhlLGFIcixpSHIsc0hyLG5IcixlcWUsb0hyLGxIcix0cWUsY0hyLGRIcix1SHIscnFlLHBIcixmSHIsYXFlLGhIcixpcWUsbUhyLGdIcixiSHIseEhyLHZIcixzcWUseUhyLHdIcixrSHIsbnFlLFNIcixNSHIsQ0hyLHpIcixfSHIsVEhyLExIcixvcWUsREhyLGxxZSwkSHIsY3FlLEFIcixhcGUsRUhyLElIcixkcWUsUEhyLHVxZSxOSHIscHFlLE9IcixSSHIsRkhyLEJIcixISHIscUhyLGZxZSxWSHIsaHFlLGpIcixVSHIsV0hyLEdIcixZSHIsbXFlLEtIcixncWUsWkhyLGJxZSxRSHIseHFlLFhIcixKSHIsZXFyLHRxcix2cWUscnFyLGFxcixpcGUsaXFyLHNxcix5cWUsbnFyLG9xcixscXIsY3FyLHdxZSxkcXIsdXFyLHBxcixmcXIsa3FlLGhxcixBeSxtcXIsZ3FyLFNxZSxicXIsTXFlLHhxcix2cXIseXFyLHNwZSx3cXIsa3FyLFNxcixDcWUsTXFyLHpxZSxDcXIsX3FlLHpxcixUcWUsX3FyLFRxcixMcXIsRHFyLCRxcixBcXIsRXFyLG5wZSxJcXIsUHFyLE5xcixPcXIsUnFyLExxZSxGcXIsQnFyLEhxcixxcXIsVnFyLGpxcixEcWUsVXFyLFdxciwkcWUsR3FyLFlxcixvcGUsS3FyLFpxcixRcXIsc1QsWHFyLEpxcixlVnIsQXFlLHRWcixFcWUsclZyLGFWcixpVnIsc1ZyLG5WcixJcWUsb1ZyLGxWcixjVnIsZFZyLHVWcixscGUscFZyLGZWcixoVnIsbVZyLGdWcixQcWUsYlZyLE5xZSx4VnIsdlZyLE9xZSx5VnIsUnFlLHdWcixGcWUsa1ZyLEJxZSxTVnIsTVZyLEhxZSxDVnIselZyLF9WcixUVnIsTFZyLERWcixORWEsJFZyPXUoKCk9PntQRWE9ImZhcyIscTlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjAiLGljb246WzMyMCw1MTIsW10sIjMwIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MGwwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwTDAgMTkyek0xNjAgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2eiJdfSxWOXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMSIsaWNvbjpbMjU2LDUxMixbXSwiMzEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDY0IDAgMCAzMjAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sajlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjIiLGljb246WzM4NCw1MTIsW10sIjMyIiwiTTQ4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE3MSAwYzYwLjIgMCAxMDkgNDguOCAxMDkgMTA5IDAgNDMuOC0yNi4yIDgzLjMtNjYuNCAxMDAuNGwtMTM5LjEgNTlDMTE5IDMxNS40IDk2IDM1MC4yIDk2IDM4OC43bDAgMjcuMyAyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuM2MwLTY0LjIgMzguNC0xMjIuMiA5Ny41LTE0Ny4zbDEzOS4xLTU5YzE2LjYtNy4xIDI3LjQtMjMuNCAyNy40LTQxLjQgMC0yNC45LTIwLjItNDUtNDUtNDVMODAgOTZDNjIuMyA5NiA0OCA4MS43IDQ4IDY0eiJdfSxVOXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMyIsaWNvbjpbMzIwLDUxMixbXSwiMzMiLCJNODAgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDM4LjItMTYuOCA3Mi41LTQzLjMgOTYgMjYuNiAyMy41IDQzLjMgNTcuOCA0My4zIDk2IDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4TDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEw4MCAyODh6Il19LFc5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiI0IixpY29uOlszODQsNTEyLFtdLCIzNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjI0LTE5MiAwIDAtMjI0eiJdfSxHOXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNSIsaWNvbjpbMzIwLDUxMixbXSwiMzUiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAgMCAxMTIgMTIwIDBjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZTMjU5LjEgNDgwIDE4NCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1MiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHoiXX0sWTlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjYiLGljb246WzM4NCw1MTIsW10sIjM2IiwiTTI1NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODggMGMtNDguNiAwLTg4IDM5LjQtODggODhsMCAzMi4yYzIyLjktMTUuMyA1MC40LTI0LjIgODAtMjQuMmw0OCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI4Ny41IDQ4MCAyMDggNDgwbC00OCAwQzgwLjUgNDgwIDE2IDQxNS41IDE2IDMzNmwwLTE1MkMxNiAxMDAuMSA4NC4xIDMyIDE2OCAzMmw4OCAwek04MCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LEs5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiI3IixpY29uOlszMjAsNTEyLFtdLCIzNyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI1NiAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sWjlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjgiLGljb246WzMyMCw1MTIsW10sIjM4IiwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4IDAgMzQuNiAxMy43IDY2IDM2IDg5LTMxLjUgMjMuMy01MiA2MC44LTUyIDEwMyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw2NCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDIuMi0yMC41LTc5LjctNTItMTAzIDIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4bDE1LjkgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OC4xIDB6bTAtNjRMMTQ0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM1LjMtMjguNiA2NC02NCA2NHoiXX0sUTlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjkiLGljb246WzM4NCw1MTIsW10sIjM5IiwiTTIwOCAzMjBjMjkuNiAwIDU3LjEtOC45IDgwLTI0LjJsMCAzMi4yYzAgNDguNi0zOS40IDg4LTg4IDg4TDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMDQgMGM4My45IDAgMTUyLTY4LjEgMTUyLTE1MmwwLTE1Mi4xQzM1MS45IDk2LjQgMjg3LjUgMzIgMjA4IDMybC00OCAwQzgwLjUgMzIgMTYgOTYuNSAxNiAxNzZTODAuNSAzMjAgMTYwIDMyMGw0OCAwem04MC0xNDRjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODBsNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MHoiXX0scHVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbGxhci1zaWduIixpY29uOlszMjAsNTEyLFsxMjgxNzgsNjE3ODEsImRvbGxhciIsInVzZCJdLCIyNCIsIk0xMzYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTExNC45IDBjLTI0LjkgMC00NS4xIDIwLjItNDUuMSA0NS4xIDAgMjIuNSAxNi41IDQxLjUgMzguNyA0NC43bDkxLjYgMTMuMWM1My44IDcuNyA5My43IDUzLjcgOTMuNyAxMDggMCA2MC4zLTQ4LjkgMTA5LjEtMTA5LjEgMTA5LjFsLTEwLjkgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDAtNzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMzAuOSAwYzI0LjkgMCA0NS4xLTIwLjIgNDUuMS00NS4xIDAtMjIuNS0xNi41LTQxLjUtMzguNy00NC43bC05MS42LTEzLjFDNTUuOSAyNzMuNSAxNiAyMjcuNCAxNiAxNzMuMSAxNiAxMTIuOSA2NC45IDY0IDEyNS4xIDY0bDEwLjkgMCAwLTQweiJdfSxYOXI9cHVlLEo5cj1wdWUsZWdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvZyIsaWNvbjpbNTc2LDUxMixbMTI4MDIxXSwiZjZkMyIsIk0zMiAxMTJjMTYuNiAwIDMwLjIgMTIuNiAzMS44IDI4LjdsLjMgNi42QzY1LjggMTYzLjQgNzkuNCAxNzYgOTYgMTc2bDE3OS4xIDAgMTQwLjkgNjAuNCAwIDI0My42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzMS4zQzI5NiAzNjEgMjY4LjggMzY4IDI0MCAzNjhzLTU2LTctODAtMTkuM0wxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0NS42Yy0zNy4zLTEzLjItNjQtNDguNi02NC05MC40IDAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTUuOC0zMmM3LjcgMCAxNC45IDMuNiAxOS42IDkuOEwzOTIgMCA0NDQuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDMyIDU1MiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC02NCAwLTcgMjgtMTI0LjctNTMuNCAzMS42LTE0Ny4yQzMzNC4zLTIzLjkgMzQ0LjItMzIgMzU1LjgtMzJ6TTQ0OCA0NGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LHRncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb3ZpbmciLGljb246WzY0MCw1MTIsW10sImY0ZGYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OCAyNS4yIDAgNDgtMTAuNiA2NC0yNy42IDE2IDE3IDM4LjggMjcuNiA2NCAyNy42IDQwLjMgMCA3NC4yLTI3LjEgODQuNy02NGwxMzQuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjQgNDMgMCA3OC45LTMwLjkgODYuNS03MS43IDIwLTEwLjggMzMuNS0zMiAzMy41LTU2LjNsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1NzYgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00ODAgMTkybDUwLjcgMCA0NS4zIDQ1LjMgMCA1MC43LTk2IDAgMC05NnpNODggMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzkyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIxNiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxBUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlIixpY29uOls1MTIsNTEyLFsxMjgyNjAsInN5bmMtYWx0Il0sImYyZjEiLCJNNDgwLjEgMTkybDcuOSAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlM0NzcuOSAuMiA0NzEgN0w0MTkuMyA1OC44QzM3NSAyMi4xIDMxOCAwIDI1NiAwIDEyNyAwIDIwLjMgOTUuNCAyLjYgMjE5LjUgLjEgMjM3IDEyLjIgMjUzLjIgMjkuNyAyNTUuN3MzMy43LTkuNyAzNi4yLTI3LjFDNzkuMiAxMzUuNSAxNTkuMyA2NCAyNTYgNjQgMzAwLjQgNjQgMzQxLjIgNzkgMzczLjcgMTA0LjNMMzI3IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzMzQuMyAxOTIgMzQ0IDE5MmwxMzYuMSAwem0yOS40IDEwMC41YzIuNS0xNy41LTkuNy0zMy43LTI3LjEtMzYuMnMtMzMuNyA5LjctMzYuMiAyNy4xYy0xMy4zIDkzLTkzLjQgMTY0LjUtMTkwLjEgMTY0LjUtNDQuNCAwLTg1LjItMTUtMTE3LjctNDAuM0wxODUgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTc3LjcgMzIwIDE2OCAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA1MTEuOCA0MSA1MDVsNTEuOC01MS44QzEzNyA0ODkuOSAxOTQgNTEyIDI1NiA1MTIgMzg1IDUxMiA0OTEuNyA0MTYuNiA1MDkuNCAyOTIuNXoiXX0scmdyPUFQZSxFUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNzIgMjAwbDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sYWdyPUVQZSxpZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tanVzdGlmeSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOSIsIk00NDggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQ0OCA0NDhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyeiJdfSxzZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItY2hlY2siLGljb246WzQ0OCw1MTIsW10sImYyNzQiLCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0yMiAxNjEuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMTg5LjEgMzMxLjIgMTM3IDI3OS4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS45IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzQ3LjMgMTk1LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LElQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3MiLGljb246WzUxMiw1MTIsWzEyODUzNSwia2lzcyJdLCJmNTk2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgMjg4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni04MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxuZ3I9SVBlLG9ncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXRjaGVuLXNldCIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYSIsIk0yNDAgMTQ0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptNDQuNCAzMkMyNjkuOSAyNDAuMSAyMTIuNSAyODggMTQ0IDI4OCA2NC41IDI4OCAwIDIyMy41IDAgMTQ0UzY0LjUgMCAxNDQgMGM2OC41IDAgMTI1LjkgNDcuOSAxNDAuNCAxMTJsNzEuOCAwYzguOC05LjggMjEuNi0xNiAzNS44LTE2bDEwNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMTQuMiAwLTI3LTYuMi0zNS44LTE2bC03MS44IDB6TTE0NCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTYgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI4OCA0NjRsMC0xMTIgMjI0IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHpNNDggMzIwbDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAgMzIgMTYgMHpNMjQgNDY0bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sbGdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRuYSIsaWNvbjpbMzg0LDUxMixbMTI5NTE2XSwiZjQ3MSIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU3LjgtMjQuNCAxMDQuOC01Ny40IDE0NC41LTI0LjEgMjguOS01My44IDU1LjEtODMuNiA3OS41IDI5LjggMjQuNSA1OS41IDUwLjYgODMuNiA3OS41IDMzIDM5LjYgNTcuNCA4Ni43IDU3LjQgMTQ0LjUgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBDMCA0MjIuMiAyNC40IDM3NS4yIDU3LjQgMzM1LjUgODEuNSAzMDYuNiAxMTEuMiAyODAuNSAxNDEgMjU2IDExMS4yIDIzMS41IDgxLjUgMjA1LjQgNTcuNCAxNzYuNSAyNC40IDEzNi44IDAgODkuOCAwIDMyIDAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDI1NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSAzODRsLTE4Mi45IDBjLTguMiAxMC41LTE1LjEgMjEuMS0yMC42IDMybDIyNC4yIDBjLTUuNi0xMC45LTEyLjUtMjEuNS0yMC42LTMyek0yMzggMzM2Yy0xNC4zLTEzLTI5LjgtMjUuOC00Ni0zOS0xNi4yIDEzLjEtMzEuNyAyNi00NiAzOWw5MiAwek0xMDAuNSAxMjhsMTgyLjkgMGM4LjItMTAuNSAxNS4xLTIxLjEgMjAuNi0zMkw3OS45IDk2YzUuNiAxMC45IDEyLjUgMjEuNSAyMC42IDMyek0xNDYgMTc2YzE0LjMgMTMgMjkuOCAyNS44IDQ2IDM5IDE2LjItMTMuMSAzMS43LTI2IDQ2LTM5bC05MiAweiJdfSxjZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtcmVhY2hpbmciLGljb246WzM4NCw1MTIsW10sImU1OWQiLCJNMjU2IDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMTUyLjkgMTY5LjNjLTIzLjctOC40LTQ0LjUtMjQuMy01OC44LTQ1LjhMNzQuNiA5NC4yQzY0LjggNzkuNSA0NSA3NS42IDMwLjMgODUuNFMxMS42IDExNSAyMS40IDEyOS44TDQwLjkgMTU5YzE4LjEgMjcuMSA0Mi44IDQ4LjQgNzEuMSA2Mi40TDExMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU4LjRjMjkuMS0xNC4yIDU0LjQtMzYuMiA3Mi43LTY0LjJsMTguMi0yNy45YzkuNi0xNC44IDUuNC0zNC42LTkuNC00NC4zcy0zNC42LTUuNS00NC4zIDkuNEwyOTEgMTIyLjRjLTIxLjggMzMuNC01OC45IDUzLjYtOTguOCA1My42LTEyLjYgMC0yNC45LTItMzYuNi01LjgtLjktLjMtMS44LS43LTIuNy0uOXoiXX0sal89e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtMjI0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDY0IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yNDggMTEybC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptNDAgNDhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYweiJdfSxkZ3I9al8sdWdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1ldGVvciIsaWNvbjpbNTEyLDUxMixbOTczMl0sImY3NTMiLCJNNDkzLjcgLjlsLTE5NC4yIDc0LjcgMi4zLTI5LjNjMS0xMi44LTEyLjgtMjEuNS0yNC0xNS4xTDEwMS4zIDEzMy40QzM4LjYgMTY5LjcgMCAyMzYuNiAwIDMwOSAwIDQyMS4xIDkwLjkgNTEyIDIwMyA1MTIgMjc1LjQgNTEyIDM0Mi4zIDQ3My40IDM3OC42IDQxMC43TDQ4MC44IDIzNC4zYzYuNS0xMS4xLTIuMi0yNS0xNS4xLTI0bC0yOS4zIDIuMyA3NC43LTE5NC4yYy42LTEuNSAuOS0zLjIgLjktNC44IDAtNy41LTYtMTMuNS0xMy41LTEzLjUtMS43IDAtMy4zIC4zLTQuOCAuOXpNMTkyIDE5MmExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxQUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhcnMiLGljb246WzY0MCw1MTIsWyJjb2dzIl0sImYwODUiLCJNNDE1LjkgMjEwLjVjMTIuMi0zLjMgMjUgMi41IDMwLjUgMTMuOEw0NjUgMjYxLjljMTAuMyAxLjQgMjAuNCA0LjIgMjkuOSA4LjFsMzUtMjMuM2MxMC41LTcgMjQuNC01LjYgMzMuMyAzLjNsMTkuMiAxOS4yYzguOSA4LjkgMTAuMyAyMi45IDMuMyAzMy4zbC0yMy4zIDM0LjljMS45IDQuNyAzLjYgOS42IDUgMTQuNyAxLjQgNS4xIDIuMyAxMC4xIDMgMTUuMmwzNy43IDE4LjZjMTEuMyA1LjYgMTcuMSAxOC40IDEzLjggMzAuNWwtNyAyNi4yYy0zLjMgMTIuMS0xNC42IDIwLjMtMjcuMiAxOS41bC00Mi0yLjdjLTYuMyA4LjEtMTMuNiAxNS42LTIxLjkgMjJsMi43IDQxLjljLjggMTIuNi03LjQgMjQtMTkuNSAyNy4ybC0yNi4yIDdjLTEyLjIgMy4zLTI0LjktMi41LTMwLjUtMTMuOGwtMTguNi0zNy42Yy0xMC4zLTEuNC0yMC40LTQuMi0yOS45LTguMWwtMzUgMjMuM2MtMTAuNSA3LTI0LjQgNS42LTMzLjMtMy4zbC0xOS4yLTE5LjJjLTguOS04LjktMTAuMy0yMi44LTMuMy0zMy4zbDIzLjMtMzVjLTEuOS00LjctMy42LTkuNi01LTE0LjdzLTIuMy0xMC4yLTMtMTUuMmwtMzcuNy0xOC42Yy0xMS4zLTUuNi0xNy0xOC40LTEzLjgtMzAuNWw3LTI2LjJjMy4zLTEyLjEgMTQuNi0yMC4zIDI3LjItMTkuNWw0MS45IDIuN2M2LjMtOC4xIDEzLjYtMTUuNiAyMS45LTIybC0yLjctNDEuOGMtLjgtMTIuNiA3LjQtMjQgMTkuNS0yNy4ybDI2LjItN3pNNDQ4LjQgMzQwYTQ0IDQ0IDAgMSAwIC4xIDg4IDQ0IDQ0IDAgMSAwIC0uMS04OHpNMjI0LjktNDUuNWwyNi4yIDdjMTIuMSAzLjMgMjAuMyAxNC43IDE5LjUgMjcuMmwtMi43IDQxLjhjOC4zIDYuNCAxNS42IDEzLjggMjEuOSAyMmw0Mi0yLjdjMTIuNS0uOCAyMy45IDcuNCAyNy4yIDE5LjVsNyAyNi4yYzMuMiAxMi4xLTIuNSAyNC45LTEzLjggMzAuNWwtMzcuNyAxOC42Yy0uNyA1LjEtMS43IDEwLjItMyAxNS4ycy0zLjEgMTAtNSAxNC43bDIzLjMgMzVjNyAxMC41IDUuNiAyNC40LTMuMyAzMy4zTDMwNy4zIDI2MmMtOC45IDguOS0yMi44IDEwLjMtMzMuMyAzLjNMMjM5IDI0MmMtOS41IDMuOS0xOS42IDYuNy0yOS45IDguMWwtMTguNiAzNy42Yy01LjYgMTEuMy0xOC40IDE3LTMwLjUgMTMuOGwtMjYuMi03Yy0xMi4yLTMuMy0yMC4zLTE0LjctMTkuNS0yNy4ybDIuNy00MS45Yy04LjMtNi40LTE1LjYtMTMuOC0yMS45LTIybC00MiAyLjdjLTEyLjUgLjgtMjMuOS03LjQtMjcuMi0xOS41bC03LTI2LjJjLTMuMi0xMi4xIDIuNS0yNC45IDEzLjgtMzAuNWwzNy43LTE4LjZjLjctNS4xIDEuNy0xMC4xIDMtMTUuMiAxLjQtNS4xIDMtMTAgNS0xNC43TDU1LjEgNDYuNWMtNy0xMC41LTUuNi0yNC40IDMuMy0zMy4zTDc3LjYtNmM4LjktOC45IDIyLjgtMTAuMyAzMy4zLTMuM2wzNSAyMy4zYzkuNS0zLjkgMTkuNi02LjcgMjkuOS04LjFsMTguNi0zNy42YzUuNi0xMS4zIDE4LjMtMTcgMzAuNS0xMy44ek0xOTIuNCA4NGE0NCA0NCAwIDEgMCAwIDg4IDQ0IDQ0IDAgMSAwIDAtODh6Il19LHBncj1QUGUsZmdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXBsdXMiLGljb246WzU3Niw1MTIsWzU4NjA2XSwiZTQ5NCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0xNi0yMDhsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2eiJdfSxoZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNpY2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdhZCIsIk03NS44IDMwNC44TDEgMzUuN0MuMyAzMy4yIDAgMzAuNyAwIDI4LjIgMCAxMi42IDEyLjYgMCAyOC4yIDBMNDgyLjQgMGMxNi4zIDAgMjkuNiAxMy4yIDI5LjYgMjkuNiAwIDEuNi0uMSAzLjMtLjQgNC45TDQzNC42IDQ5Ni4xYy0xLjUgOS4yLTkuNSAxNS45LTE4LjggMTUuOS05LjIgMC0xNy4xLTYuNi0xOC43LTE1LjZMMzM2IDE2MCAzMDcuMiAzMDMuOWMtMS45IDkuMy0xMC4xIDE2LjEtMTkuNiAxNi4xLTkuMiAwLTE3LjItNi4yLTE5LjQtMTUuMUwyNDAgMTkyIDIxMC42IDM2OC4yYy0xLjUgOS4xLTkuNCAxNS44LTE4LjYgMTUuOHMtMTcuMS02LjctMTguNi0xNS44TDE0NCAxOTIgMTE1LjkgMzA0LjNjLTIuMyA5LjItMTAuNiAxNS43LTIwLjEgMTUuNy05LjMgMC0xNy41LTYuMi0yMC0xNS4yeiJdfSxtZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHJlbmQtdXAiLGljb246WzU3Niw1MTIsW10sImUwOTgiLCJNMzg0IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgyLjctMTY5LjQgMTY5LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDE5MiAyNjkuMyA1NC42IDQwNi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyMCAzMDYuNyA0NjYuNyAxNjAgMzg0IDE2MHoiXX0sZ2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTY5YSIsIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2YzMwLjcgMCA1NS42LTI0LjcgNTYtNTUuMmMtNy41LTEyLjktMTMuNS0yNi44LTE3LjYtNDEuNWMtNC4yLTQtOS4xLTcuMy0xNC40LTkuOWwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDEwLjUgNmM1LjUtMTUuMyAxMy4xLTI5LjUgMjIuNC00Mi41bC05LjEtNS4yYy4xLTEuNCAuMi0yLjggLjItNC4zYzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4Ljh6TTQ0MC41IDEzMkM0MjUgMTA1LjIgMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljLjQgLjMgLjggLjYgMS4zIC45YzIxLjctOS41IDQ1LjYtMTQuOCA3MC44LTE0LjhjMiAwIDQgMCA1LjkgLjFjMTIuMS0xNy4zIDEzLjgtNDAuNiAyLjYtNjAuMXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTQ3LjktMjI1YzQuMyAzLjcgNS40IDkuOSAyLjYgMTQuOUw0NTIuNCAzNTZsMzUuNiAwYzUuMiAwIDkuOCAzLjMgMTEuNCA4LjJzLS4xIDEwLjMtNC4yIDEzLjRsLTk2IDcyYy00LjUgMy40LTEwLjggMy4yLTE1LjEtLjZzLTUuNC05LjktMi42LTE0LjlMNDExLjYgMzgwIDM3NiAzODBjLTUuMiAwLTkuOC0zLjMtMTEuNC04LjJzLjEtMTAuMyA0LjItMTMuNGw5Ni03MmM0LjUtMy40IDEwLjgtMy4yIDE1LjEgLjZ6Il19LGJncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdWVzdGlvbiIsaWNvbjpbMzIwLDUxMixbMTAwNjcsMTAwNjgsNjE3MzZdLCIzZiIsIk02NCAxNjBjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDQyLjctMjcuOSA3OC45LTY2LjUgOTEuNC0yOC40IDkuMi02MS41IDM1LjMtNjEuNSA3Ni42bDAgMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0YzAtMS43IC42LTQuMSAzLjUtNy4zIDMtMy4zIDcuOS02LjUgMTMuNy04LjQgNjQuMy0yMC43IDExMC44LTgxIDExMC44LTE1Mi4zIDAtODguNC03MS42LTE2MC0xNjAtMTYwUzAgNzEuNiAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyem05NiAzNTJjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDAtNDAgMTcuOS00MCA0MCAxNy45IDQwIDQwIDQweiJdfSx4Z3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYm91bmQiLGljb246WzU3Niw1MTIsW10sImU0ZjkiLCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMkwwIDIxMy45YzAgMTQuMiA1LjEgMjcuOSAxNC4zIDM4LjdMOTkuNiAzNTIgOTYgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zLjYgMCA4NS4zLTk5LjVjOS4yLTEwLjggMTQuMy0yNC41IDE0LjMtMzguN0w1NzYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTIuOC02OS4zIDkyLjRjLTUuNyA3LjYtMTYuMSA5LjYtMjQuMiA0LjgtOS43LTUuNy0xMi4xLTE4LjctNS4xLTI3LjVMNDQxIDE4MGMxMC44LTEzLjUgOC45LTMzLjMtNC40LTQ0LjVzLTMzLTkuOC00NC41IDMuMmwtNDYuNyA1Mi41QzMyOSAyMDkuNyAzMjAgMjMzLjQgMzIwIDI1OC4xbDAgOTMuOS02NCAwIDAtOTMuOWMwLTI0LjYtOS00OC40LTI1LjQtNjYuOGwtNDYuNy01Mi41Yy0xMS41LTEzLTMxLjMtMTQuNC00NC41LTMuMlMxMjQuMiAxNjYuNCAxMzUgMTgwbDI3LjYgMzQuNWM3IDguOCA0LjcgMjEuOC01LjEgMjcuNS04LjEgNC44LTE4LjYgMi43LTI0LjItNC44TDY0IDE0NC44IDY0IDMyem02NCA0NDhsMCAzMiAxMjggMCAwLTMyIDY0IDAgMCAzMiAxMjggMCAwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMOTYgNDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDB6Il19LHZncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1sdWdnYWdlIixpY29uOls1MTIsNTEyLFtdLCJlNTU0IiwiTTI2NC4zIDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNsLTIyLjYgMjIuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDEyLjMtNyAyMy0xNy4yIDI4LjQtLjkgNC4yLTIuNCA4LjQtNC4zIDEyLjNsLTY5IDEzOC4xLS44LS40LTI3LjcgNTUuM2MtOS45IDE5LjgtMzMuOSAyNy44LTUzLjcgMTcuOUwxNC42IDUyMWMtMTkuOC05LjktMjcuOC0zMy45LTE3LjktNTMuN0w0Ny4zIDM2Ni4zYzkuOS0xOS44IDMzLjktMjcuOCA1My43LTE3LjlsMzAuNyAxNS4zIDI4LjMtNTYuNmMuMy0uNiAuNC0xLjIgLjQtMS44bDAtMTYuOWMwLS4yIDAtLjMgMC0uNWwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDQyMi4xIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNMNDQ4IDUwNy41YzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4yTDM3MiA0MjguNGMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3ptLjEgMTY1LjhjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNWwtNjguMyA2OC4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMzggNDIxLjFjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDI1Ni40IDM3MXoiXX0sTlBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbImZpbGUtZG93bmxvYWQiXSwiZjU2ZCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTc1IDQ0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTg2LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4Ni4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0eiJdfSx5Z3I9TlBlLHdncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYm9vdGgiLGljb246WzU3Niw1MTIsW10sImY3NTYiLCJNNDAgMjRBNTYgNTYgMCAxIDEgMTUyIDI0IDU2IDU2IDAgMSAxIDQwIDI0em01MS4xIDg4YzIzLjUgMCA0NS41IDExLjMgNTkuMSAzMC40bDQ4LjcgNjguMmM2IDguNCAxNS43IDEzLjQgMjYgMTMuNGwzMS4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzIwOS44IDM3My4zIDIyNCA0MDEuOCAyMjQgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDcwLjQgMzQ4LjhDNDYuMiAzMzAuNyAzMiAzMDIuMiAzMiAyNzJsMC0xMDAuOUMzMiAxMzguNSA1OC41IDExMiA5MS4xIDExMnpNMzIgNTEybDAtMTMyLjdjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMOTYgNDI4IDk2IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptNTQ0LTg4bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi0xNjggMGMtNy4xIDAtMTMuOC0zLjEtMTguNC04LjZzLTYuNS0xMi42LTUuMy0xOS42bDMwLjctMTc2LjctNjMuMS0xMzcuNiAwIDcyYy01LjItMS0xMC41LTEuNi0xNi0xLjZsLTMyIDAgMC0xMjBjMC0zMC45IDI1LjEtNTYgNTYtNTZMNTIwIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzNjh6TTI4OCAzMzZjNS41IDAgMTAuOC0uNiAxNi0xLjZMMzA0IDUyMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE4NCAzMiAweiJdfSxrZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jdXN0IixpY29uOls1NzYsNTEyLFtdLCJlNTIwIiwiTTMyOCAzMmMxMzcgMCAyNDggMTExIDI0OCAyNDhsMCA0MC0uNCA4LjJDNTcxLjUgMzY4LjUgNTM3LjQgNDAwIDQ5NiA0MDBsLTEyLjMgMCAyNS4yIDQ0LjFjNi42IDExLjUgMi42IDI2LjItOC45IDMyLjhzLTI2LjIgMi42LTMyLjctOC45bC0zOC44LTY3LjktODAuNCAwLTQ4LjIgNjkuN2MtNy41IDEwLjktMjIuNSAxMy42LTMzLjQgNi4xcy0xMy42LTIyLjUtNi4xLTMzLjRsMjkuMy00Mi4zLTc0LjUgMC01MS43IDcwLjJjLTcuOSAxMC43LTIyLjkgMTIuOS0zMy42IDUuMXMtMTIuOS0yMi45LTUuMS0zMy42bDQwLjUtNTUtNDMtMTYuNC03OS4zIDEwMC41Yy04LjIgMTAuNC0yMy4zIDEyLjItMzMuNyA0cy0xMi4yLTIzLjMtNC0zMy43bDI0MC0zMDQgMi4xLTIuM2M1LjItNS4xIDEyLjUtNy41IDE5LjktNi42IDguNCAxLjEgMTUuNiA2LjUgMTguOSAxNC4zbDIxLjcgNTAuNyA0MC45LTU1LjUgMi4xLTIuNGM1LjEtNS4zIDEyLjUtOCAyMC03LjIgOC41IDEgMTUuOSA2LjUgMTkuMyAxNC40bDQxLjggOTcuNSA2NC4yIDBjMTAuMiAwIDIwIDIgMjkgNS41LTE2LjQtOTQtOTguMy0xNjUuNS0xOTctMTY1LjVsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMHpNNDg4IDI5NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTQzLjUgMzMxLjFDMzYuMiAzMjEuNCAzMiAzMDkuNSAzMiAyOTYuOCAzMiAyNjUuNSA1Ny41IDI0MCA4OC45IDI0MGwyNy42IDAtNzIuOSA5MS4xek0yMjUuMSAyNDBsNDguMiAwIDEuNC0xLjktMTYuOS0zOS41LTMyLjcgNDEuNXptMTA3LjggMGw0Ni43IDAtMTcuMi00MC0yOS41IDQweiJdfSxPUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LXJpZ2h0Il0sImYzMGIiLCJNNTY2LjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAzOTYuOSAzODQgMzg0bDAtNjQtMzM2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJjMC0yNi41IDIxLjUtNDggNDgtNDhsMzM2IDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjh6Il19LFNncj1PUGUsTWdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWRyb3BsZXQiLGljb246WzU3Niw1MTIsW10sImU1OGMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjA4IDMwNGMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zMy4yIDM0LjUtNzggNTUuOC0xMDIuNCA4LjctMTAgMjMuOC0xMCAzMi41IDAgMjEuMiAyNC40IDU1LjggNjkuMSA1NS44IDEwMi40IDAgNDgtMzIuMiA3Mi03MiA3MnoiXX0sQ2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1tZWRpY2FsIixpY29uOls1NzYsNTEyLFtdLCJlMDVjIiwiTTI0MCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNTYgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC01NiAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTYtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwIDAtNTZ6TTY2LjcgMzg0bDQyLjUtNDIuNWMyNC0yNCA1Ni42LTM3LjUgOTAuNS0zNy41TDM1MiAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyLjYgMCAxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXM5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM0LjcgMHoiXX0semdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmwyMDggMCAwLTY0LTIwOCAwek0xOTIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bS02NC02NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bTg4LTk2bC0uNiAwYzUuNCA5LjQgOC42IDIwLjMgOC42IDMyIDAgMTMuMi00IDI1LjQtMTAuOCAzNS42IDI0LjkgOC43IDQyLjggMzIuNSA0Mi44IDYwLjQgMCAxMS43LTMuMSAyMi42LTguNiAzMmw4LjYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTYxLjdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC0xMS42LTExLjZDNDI5LjUgNzcuNSAzOTYuOSA2NCAzNjMgNjRsLTI3IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTU2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnoiXX0sX2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGN1bGF0b3IiLGljb246WzM4NCw1MTIsWzEyODQyNV0sImYxZWMiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNOTYgNjRsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2IDE2OGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek04OCAzNTJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjgtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHptODAgMjRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjMyLTI0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHoiXX0sVV89e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWludXMiLGljb246WzQ0OCw1MTIsWzgyMTEsODcyMiwxMDEzNCwic3VidHJhY3QiXSwiZjA2OCIsIk0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxUZ3I9VV8sUlBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXotYSIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAtYWx0Il0sImY4ODIiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0yODggNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgMjI0IDMyMCAyMjRsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYxIDMyIDQ0OCAzMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek00MTIuNiAyNzMuN0M0MDcuMiAyNjIuOCAzOTYuMSAyNTYgMzg0IDI1NnMtMjMuMiA2LjgtMjguNiAxNy43bC04MCAxNjBjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC04MC0xNjB6TTM4NCAzNTkuNmwyMC4yIDQwLjQtNDAuNCAwIDIwLjItNDAuNHoiXX0sTGdyPVJQZSxEZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjEzMSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQyNC43IDM1OC44QzQ1OC45IDMyNC4yIDQ4MCAyNzYuNiA0ODAgMjI0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDM5LjMtMTUuNyA3NC45LTQxLjMgMTAwLjlMMzU2LjggMjkxQzM3My42IDI3My43IDM4NCAyNTAgMzg0IDIyNGwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMwLjItMTUxLTE1MXptMjk4LjMgNDM0bC00MS40LTQxLjRjLTMuMyAuMi02LjUgLjMtOS44IC4zLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0bDAtMTAuMi00My42LTQzLjZjLTIuOCAzLjktNC40IDguNy00LjQgMTMuOGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOS4zLTEuMiAxOC40LTMgMjcuMy01LjR6Il19LGZ1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVuIixpY29uOls0NDgsNTEyLFsicGVuLXNxdWFyZSIsInBlbmNpbC1zcXVhcmUiXSwiZjE0YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjUuOCAxMzkuN2wxNC40IDE0LjRjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIzLjggMjMuOC03MS03MSAyMy44LTIzLjhjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDB6TTExOS45IDI4OWw5MS41LTkxLjYgNzEgNzEtOTEuNiA5MS41Yy00LjEgNC4xLTkuMiA3LTE0LjkgOC40bC02MC4xIDE1Yy01LjUgMS40LTExLjItLjItMTUuMi00LjJzLTUuNi05LjctNC4yLTE1LjJsMTUtNjAuMWMxLjQtNS42IDQuMy0xMC44IDguNC0xNC45eiJdfSwkZ3I9ZnVlLEFncj1mdWUsRlBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZmlzdCIsaWNvbjpbMzg0LDUxMixbOTk5NCwiZmlzdC1yYWlzZWQiXSwiZjZkZSIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMi02NCAwIDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgODAtNjQgMCAwLTgwem0xOTIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDUyLjMtMjUuMSA5OC44LTY0IDEyOGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03OC40Yy0xNy4zLTcuOS0zMy4yLTE4LjgtNDYuOS0zMi41TDM3LjUgMzU3LjVDMTMuNSAzMzMuNSAwIDMwMC45IDAgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxFZ3I9RlBlLEJQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNtcyIsaWNvbjpbNTEyLDUxMixbInNtcyJdLCJmN2NkIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0xNDAuOCAxNzIuOGwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnMxOC42LTQxLjYgNDEuNi00MS42em0xODguOCA0MS42YzAtMjMgMTguNi00MS42IDQxLjYtNDEuNmwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnptLTk4LjMtMzMuOGwyNC43IDQxLjEgMjQuNy00MS4xYzMuNy02LjIgMTEuMS05LjEgMTgtNy4yczExLjcgOC4yIDExLjcgMTUuNGwwIDEwMi40YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDQuNi04LjcgMTQuNWMtMi45IDQuOC04LjEgNy44LTEzLjcgNy44cy0xMC44LTMtMTMuNy03LjhsLTguNy0xNC41IDAgNDQuNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTEwMi40YzAtNy4yIDQuOC0xMy41IDExLjctMTUuNHMxNC4zIDEgMTggNy4yeiJdfSxJZ3I9QlBlLFBncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW0tY2FyZCIsaWNvbjpbMzg0LDUxMixbXSwiZjdjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyNTguNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDgwYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MCAxMjggMCAwLTcyLTk2IDB6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtNzItODAgMCAwIDQwem0yNTYgMGwwLTQwLTEyOCAwIDAgNzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDAgMCA3MiA4MCAwIDAtNDB6Il19LEhQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS1iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbOTg3OCwiYmFsYW5jZS1zY2FsZSJdLCJmMjRlIiwiTTM4NCAzMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzOTguNCA5NmMtNS4yIDI1LjgtMjIuOSA0Ny4xLTQ2LjQgNTcuM2wwIDI5NC43IDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMCAwLTI5NC43Yy0yMy41LTEwLjMtNDEuMi0zMS42LTQ2LjQtNTcuM0wxMjggOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDBjMTQuNi0xOS40IDM3LjgtMzIgNjQtMzJzNDkuNCAxMi42IDY0IDMyem01NS42IDI4OEw1ODQuNCAzMjAgNTEyIDE5NS44IDQzOS42IDMyMHpNNTEyIDQxNmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXpNMTI2LjggMTk1LjhMNTQuNCAzMjAgMTk5LjMgMzIwIDEyNi44IDE5NS44ek0uOSAzMzcuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45UzExLjcgMzgyIC45IDMzNy4xeiJdfSxOZ3I9SFBlLHFQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXIiLGljb246WzUxMiw1MTIsWzEyODY2NCwiYXV0b21vYmlsZSJdLCJmMWI5IiwiTTEzNS4yIDExNy40bC0yNi4xIDc0LjYgMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0zMjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDI1NmMwLTI2LjcgMTYuNC00OS42IDM5LjYtNTkuMnpNMTI4IDMwNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxPZ3I9cVBlLFZQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9wLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbImNyb3AtYWx0Il0sImY1NjUiLCJNMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMjA4IDAgMC0zNTJ6TTM4NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgNjQgMjA4IDAgMCAzNTJ6Il19LFJncj1WUGUsRmdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lZGFsIixpY29uOls0NDgsNTEyLFsxMjc5NDFdLCJmNWEyIiwiTTIyNC4zIDEyOEwxMzkuNy0xMi45Yy02LjUtMTAuOC0yMC4xLTE0LjctMzEuMy05LjFMMjEuOCAyMS4zQzkuOSAyNy4yIDUuMSA0MS42IDExIDUzLjVMODAuNiAxOTIuNmMtMzAuMSAzMy45LTQ4LjMgNzguNS00OC4zIDEyNy40IDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtNDguOS0xOC4zLTkzLjUtNDguMy0xMjcuNEw0MzcuNiA1My41YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMkwzNDAuMi0yMi4xYy0xMS4yLTUuNi0yNC45LTEuNi0zMS4zIDkuMUwyMjQuMyAxMjh6bTMwLjggMTQyLjVjMS40IDIuOCA0IDQuNyA3IDUuMWw1MC4xIDcuM2M3LjcgMS4xIDEwLjcgMTAuNSA1LjIgMTZsLTM2LjMgMzUuNGMtMi4yIDIuMi0zLjIgNS4yLTIuNyA4LjNsOC42IDQ5LjljMS4zIDcuNi02LjcgMTMuNS0xMy42IDkuOWwtNDQuOC0yMy42Yy0yLjctMS40LTYtMS40LTguNyAwbC00NC44IDIzLjZjLTYuOSAzLjYtMTQuOS0yLjItMTMuNi05LjlsOC42LTQ5LjljLjUtMy0uNS02LjEtMi43LTguM2wtMzYuMy0zNS40Yy01LjYtNS40LTIuNS0xNC44IDUuMi0xNmw1MC4xLTcuM2MzLS40IDUuNy0yLjQgNy01LjFsMjIuNC00NS40YzMuNC03IDEzLjMtNyAxNi44IDBsMjIuNCA0NS40eiJdfSxCZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsIixpY29uOls1NzYsNTEyLFsxMjgyMjBdLCJmNzBlIiwiTTAgMTEyQzAgNzAuNSAzMS42IDM2LjQgNzIgMzIuNGwwLS40IDI4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNzYtMTc2IDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgNjBjMCAyNC4zLTE5LjcgNDQtNDQgNDRzLTQ0LTE5LjctNDQtNDRsMC0yMjgtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OHpNMjM2LjggNDgwYzcuMS0xMy4xIDExLjItMjguMSAxMS4yLTQ0bDAtNjBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjI3LjIgMHpNODAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxIZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTY0IDI2Ni43Yy03LjQtMTEtMjIuMy0xNC0zMy4zLTYuN3MtMTQgMjIuMy02LjcgMzMuM0wxNjMuMiAzNTIgMTI0IDQxMC43Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMjgtNDIgMjggNDJjNy40IDExIDIyLjMgMTQgMzMuMyA2LjdzMTQtMjIuMyA2LjctMzMuM0wyMjAuOCAzNTIgMjYwIDI5My4zYzcuNC0xMSA0LjQtMjUuOS02LjctMzMuM3MtMjUuOS00LjQtMzMuMyA2LjdsLTI4IDQyLTI4LTQyeiJdfSxxZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyIixpY29uOls1MTIsNTEyLFtdLCJmMGIwIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzMyMCA0OTIuOSAzMjAgNDgwbDAtMTc4LjcgMTgyLjYtMTgyLjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0eiJdfSxWZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bSIsaWNvbjpbNTEyLDUxMixbMTI5MzQ1XSwiZjU2OSIsIk01MDEuMiA3Ni4xYzExLjEtNy4zIDE0LjItMjIuMSA2LjktMzMuMnMtMjIuMS0xNC4yLTMzLjItNi45TDM3MC4yIDEwNC41QzMzNS44IDk4LjcgMjk3IDk2IDI1NiA5NiAxMTQuNiA5NiAwIDEyOCAwIDIwOEwwIDM2OGMwIDMxLjMgMjcuNCA1OC44IDcyIDc4LjdMNzIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMTkuNGMzMyA4LjkgNzEuMSAxNC41IDExMiAxNi4xTDIzMiAzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMy41YzQwLjktMS42IDc5LTcuMiAxMTItMTYuMUwzOTIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDIuN2M0NC42LTE5LjkgNzItNDcuNCA3Mi03OC43bDAtMTYwYzAtNDEuMS0zMC4yLTY5LjUtNzguOC04Ny40bDY3LjktNDQuNXpNMzA3LjQgMTQ1LjZsLTY0LjYgNDIuM2MtMTEuMSA3LjMtMTQuMiAyMi4xLTYuOSAzMy4yczIyLjEgMTQuMiAzMy4yIDYuOWwxMTEuMS03Mi44YzE0LjcgMy4yIDI3LjkgNyAzOS40IDExLjUgMzguOCAxNS4xIDQ0LjQgMzAuNiA0NC40IDQxLjMgMCAuOC0yLjcgMTcuMi00NiAzNS45LTM4LjkgMTYuOC05NiAyOC4xLTE2MiAyOC4xUzEzMi45IDI2MC43IDk0IDI0My45Yy00My4zLTE4LjctNDYtMzUuMS00Ni0zNS45IDAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjMgMzguMy0xNC45IDk1LjQtMjIuNyAxNjMuNi0yMi43IDE4IDAgMzUuMSAuNSA1MS40IDEuNnoiXX0samdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1waW4iLGljb246WzMyMCw1MTIsWzEyODIwNV0sImYyNzYiLCJNMTkyIDI4NC40QzI1Ni4xIDI2OS45IDMwNCAyMTIuNSAzMDQgMTQ0IDMwNCA2NC41IDIzOS41IDAgMTYwIDBTMTYgNjQuNSAxNiAxNDRjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40TDEyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5NS42ek0xNjggOTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNCA0Ni42LTEwNCAxMDQtMTA0IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxqUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZC1mbGlwIixpY29uOls2NDAsNTEyLFsiYmFsYW5jZS1zY2FsZS1yaWdodCJdLCJmNTE2IiwiTTExOC4yIDYyLjRDMTAxLjUgNTYuOCA5Mi40IDM4LjYgOTggMjEuOVMxMjEuNy0zLjkgMTM4LjUgMS42bDExMyAzNy43YzEzLjktMjMuNSAzOS42LTM5LjMgNjguOS0zOS4zIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNyAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4ybDAgMzI2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIxLTkuMi0zNy4yLTI3LTQ0LjItNDlsLTEyNS45LTQyek0yMDAuOCAyODhMMTI4LjMgMTYzLjggNTUuOSAyODggMjAwLjggMjg4em0tNzIuNCA5NmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXptMzgyLjgtOTIuMmwtNzIuNCAxMjQuMiAxNDQuOSAwLTcyLjQtMTI0LjJ6bTEyNiAxNDEuM0M2MjYuNCA0NzggNTc0LjEgNTEyIDUxMS4yIDUxMnMtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjF6Il19LFVncj1qUGUsV2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImU0YmQiLCJNOS40IDkuNEMyMS45LTMuMSA0Mi4xLTMuMSA1NC42IDkuNEwxMjggODIuNyAxMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjcgMC03My40LTczLjRDLTMuMSA0Mi4xLTMuMSAyMS45IDkuNCA5LjR6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MDIuNiA1NC42TDQyOS4zIDEyOCA0NDggMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxOC43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tNDUuMyA0NDhMMzg0IDQyOS4zIDM4NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDAgNzMuNCA3My40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwek05LjQgNDU3LjRMODIuNyAzODQgNjQgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjctNzMuNCA3My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3oiXX0sR2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNDggNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMTUuMSA3LjEgMjkuMyAxOS4yIDM4LjRsMjA4IDE1NmMxNy4xIDEyLjggNDAuNSAxMi44IDU3LjYgMGwyMDgtMTU2YzEyLjEtOS4xIDE5LjItMjMuMyAxOS4yLTM4LjQgMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6TTAgMTk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTg4LTE5OC40IDE0OC44Yy0zNC4xIDI1LjYtODEuMSAyNS42LTExNS4yIDBMMCAxOTZ6Il19LFlncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWJ5IixpY29uOlszODQsNTEyLFtdLCJmNzdjIiwiTTEyMCA4OGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTcuNyAxNDQuNWMxMy0xNy45IDM4LTIxLjggNTUuOS04LjhMOTkuOCAxNjJjMjYuOCAxOS41IDU5LjEgMzAgOTIuMiAzMHM2NS40LTEwLjUgOTIuMi0zMGwzNi4yLTI2LjRjMTcuOS0xMyA0Mi45LTkgNTUuOSA4LjhzOSA0Mi45LTguOCA1NS45bC0zNi4yIDI2LjRjLTEzLjYgOS45LTI4LjEgMTguMi00My4zIDI1bDAgMzYuMy0xOTIgMCAwLTM2LjNjLTE1LjItNi43LTI5LjctMTUuMS00My4zLTI1TDE2LjUgMjAwLjNjLTE3LjktMTMtMjEuOC0zOC04LjgtNTUuOXpNOTcuNSAzMjkuM2w2MC42IDUzLTI2IDM3LjIgMjQuMyAyNC4zYzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC00OC00OEMzOCA0MzguNiAzNi4xIDQxNyA0Ny4yIDQwMS4xbDUwLjItNzEuOHptMTI4LjUgNTNsNjAuNi01MyA1MC4yIDcxLjhjMTEuMSAxNS45IDkuMiAzNy41LTQuNSA1MS4ybC00OCA0OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjQuMy0yNC4zLTI2LTM3LjJ6Il19LFVQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45UzExMC41IDE5MiAxMjAgMTkybDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6Il19LEtncj1VUGUsWmdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQiLGljb246WzUxMiw1MTIsW10sImU1N2QiLCJNMjYuOSAyMDYuOUwzLjcgNDQ0LjlDMS44IDQ2My43IDE2LjYgNDgwIDM1LjUgNDgwbDE3Mi43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjljMC04LjMgNi43LTE1IDE1LTE1IDUuNSAwIDEwLjYgMyAxMy4yIDcuOWw4Ni4xIDE1OWM4LjQgMTUuNSAyNC42IDI1LjEgNDIuMiAyNS4xbDY0LjEgMGMxOC45IDAgMzMuNy0xNi4zIDMxLjgtMzUuMUw0ODUuNiAyMDcuMWMtMS45LTE5LjYtMTIuOC0zNy4zLTI5LjUtNDcuOEwyODAuOSA0OC4zYy0xNS43LTEwLTM1LjgtOS45LTUxLjUgLjFMNTYuMSAxNTkuMmMtMTYuNSAxMC42LTI3LjMgMjguMi0yOS4yIDQ3Ljd6Il19LFFncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhIixpY29uOlszODQsNTEyLFs5N10sIjQxIiwiTTIyMS41IDUxLjdDMjE2LjYgMzkuOCAyMDQuOSAzMiAxOTIgMzJzLTI0LjYgNy44LTI5LjUgMTkuN2MtOTMuMyAyMjQtMTQ2LjcgMzUyLTE2MCAzODQtNi44IDE2LjMgLjkgMzUgMTcuMiA0MS44czM1LS45IDQxLjgtMTcuMmwzMS44LTc2LjMgMTk3LjMgMCAzMS44IDc2LjNjNi44IDE2LjMgMjUuNSAyNCA0MS44IDE3LjJzMjQtMjUuNSAxNy4yLTQxLjhjLTEzLjMtMzItNjYuNy0xNjAtMTYwLTM4NHpNMjY0IDMyMGwtMTQ0IDAgNzItMTcyLjggNzIgMTcyLjh6Il19LFhncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhY2h1dGUtYm94IixpY29uOls1MTIsNTEyLFtdLCJmNGNkIiwiTTEyOCAyMjRDMTI4IDE1Mi4yIDE0NC4zIDg4LjQgMTY5LjUgNDMuNCAxOTUuMS0yLjQgMjI2LjYtMjQgMjU2LTI0czYwLjkgMjEuNiA4Ni41IDY3LjRDMzY3LjcgODguNCAzODQgMTUyLjIgMzg0IDIyNGwtMTA0IDAgMCA5NiA4IDBjOS4zIDAgMTguMSAyIDI2IDUuNWwxMTguNC0xMDEuNS0uNSAwYzAtNzguNC0xNy43LTE1MC42LTQ3LjYtMjA0LTYuMS0xMS0xMi45LTIxLjMtMjAuMy0zMC45IDg2LjUgMzUuOSAxNDcuOCAxMTUuMSAxNDcuOCAyMTguOSAwIDctMy4xIDEzLjctOC40IDE4LjJMMzQ3LjQgMzYwLjFjMyA3LjQgNC42IDE1LjQgNC42IDIzLjlsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTguNCAxLjYtMTYuNSA0LjYtMjMuOUw4LjQgMjI2LjJDMy4xIDIyMS43IDAgMjE1IDAgMjA4IDAgMTA0LjIgNjEuMyAyNC45IDE0Ny44LTEwLjkgMTQwLjUtMS40IDEzMy43IDkgMTI3LjYgMjAgOTcuNyA3My40IDgwIDE0NS42IDgwIDIyNGwtLjUgMCAxMTguNCAxMDEuNWM4LTMuNSAxNi44LTUuNSAyNi01LjVsOCAwIDAtOTYtMTA0IDB6Il19LEpncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWFycm93LWRvd24iLGljb246WzY0MCw1MTIsW10sImYyMTgiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsNDUuMyAwYzI3LjEgMCA1MC4zIDE5LjQgNTUuMSA0NmwuNCAyIDE4Ny4yIDAgMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xIDE3Ny40IDBjMjAgMCAzNS4xIDE4LjIgMzEuNCAzNy45TDUzNy44IDIzNS44Yy01LjcgMzAuMy0zMi4xIDUyLjItNjIuOSA1Mi4ybC0zMDMuNiAwIDUuMSAyOC4zYzIuMSAxMS40IDEyIDE5LjcgMjMuNiAxOS43TDQ1NiAzMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1NS45IDBjLTM0LjggMC02NC42LTI0LjktNzAuOC01OS4xTDc3LjIgMzguNmMtLjctMy44LTQtNi42LTcuOS02LjZMMjQgMzJDMTAuNyAzMiAwIDIxLjMgMCA4ek0xNjAgNDY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTIyNCAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LGVicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGNhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0saHVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWFycm93LXVwIixpY29uOls1NzYsNTEyLFs2MjMzOCwiY2xvdWQtdXBsb2FkIiwiY2xvdWQtdXBsb2FkLWFsdCJdLCJmMGVlIiwiTTE0NCA0ODBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNjMuNCA0MS0xMTcuMiA5Ny45LTEzNi41LTEuMy03LjctMS45LTE1LjUtMS45LTIzLjUgMC03OS41IDY0LjUtMTQ0IDE0NC0xNDQgNTUuNCAwIDEwMy41IDMxLjMgMTI3LjYgNzcuMSAxNC4yLTguMyAzMC44LTEzLjEgNDguNC0xMy4xIDUzIDAgOTYgNDMgOTYgOTYgMCAxNS43LTMuOCAzMC42LTEwLjUgNDMuNyA0NCAyMC4zIDc0LjUgNjQuNyA3NC41IDExNi4zIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMHpNMzA1IDE5MWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sdGJyPWh1ZSxyYnI9aHVlLGFicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdCIsaWNvbjpbNTEyLDUxMixbNjE5NDZdLCI0MCIsIk0yNTYgNjRDMTUwIDY0IDY0IDE1MCA2NCAyNTZzODYgMTkyIDE5MiAxOTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NmwwIDMyYzAgNTMtNDMgOTYtOTYgOTYtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjktMjIuOCAyMS01My4zIDMzLjktODYuOCAzMy45LTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjhjMjcuOSAwIDUzLjcgOC45IDc0LjcgMjQuMSA1LjctNSAxMy4xLTguMSAyMS4zLTguMSAxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC0xMDYtODYtMTkyLTE5Mi0xOTJ6bTY0IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LG11ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmRpYW4tcnVwZWUtc2lnbiIsaWNvbjpbMzIwLDUxMixbImluZGlhbi1ydXBlZSIsImluciJdLCJlMWJjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTc2LjcgMGMxNy43IDE5LjggMzAuMSA0NC42IDM0LjcgNzJsNDIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDIgMGMtMTAuNCA2Mi4yLTYwLjggMTEwLjktMTIzLjggMTE4LjlMMjc0LjYgNDIyYzE0LjQgMTAuMyAxNy43IDMwLjMgNy40IDQ0LjZzLTMwLjMgMTcuNy00NC42IDcuNEwxMy40IDMxNEMyLjEgMzA2LTIuNyAyOTEuNSAxLjUgMjc4LjJTMTguMSAyNTYgMzIgMjU2bDgwIDBjMzUuOCAwIDY2LjEtMjMuNSA3Ni4zLTU2TDI0IDIwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNjQuMyAwYy0xMC4yLTMyLjUtNDAuNS01Ni03Ni4zLTU2TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LGlicj1tdWUsc2JyPW11ZSxuYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2siLGljb246WzU3Niw1MTIsWzEyODY2Niw5OTUxXSwiZjBkMSIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU1Ny4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek01MTIgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMTkyIDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxXUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZC11c2VyIixpY29uOls2NDAsNTEyLFsiY2hhbGtib2FyZC10ZWFjaGVyIl0sImY1MWMiLCJNMTkyIDM4NGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01MyA0My05NiA5Ni05Nmw5NiAwek01NDQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzMy4xLTI1LjIgNjAuNC01Ny41IDYzLjdsLTYuNSAuMy0yMTEuMSAwYy01LjEtMjQuMi0xNi4zLTQ2LjEtMzIuMS02NGw1MS4yIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMCAwLTI4OC0zNTIgMCAwIDU3LjNjLTE0LjgtNi0zMS05LjMtNDgtOS4zLTUuNCAwLTEwLjggLjMtMTYgMWwwLTQ5YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM1MiAwek0xNDQgMzUyYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxvYnI9V1BlLGxicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJmNGZjIiwiTTI4NiAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzggNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDB6TTU4NS43IDEwNS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVMNTIyLjEgMjc0LjljLTQuMiA1LjctMTAuNyA5LjQtMTcuNyA5LjhzLTE0LTIuMi0xOC45LTcuM2wtNDYuNC00OGMtOS4yLTkuNS05LTI0LjcgLjYtMzMuOSA5LjUtOS4yIDI0LjctOC45IDMzLjkgLjZsMjYuNSAyNy40IDg1LjYtMTE3Ljd6TTI1Ni4zIDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LGNicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW5pbmphIixpY29uOls0NDgsNTEyLFsxMjkzOTldLCJmNTA0IiwiTTM1MiAxMjhjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNTcuMiAwLTEwNS42LTM3LjUtMTIyLTg5LjMtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjgtMTUuOCAxNS44LTM4LjggMjAuNy01My42IDIyLjEtOC4xIC44LTE0LjYtNS43LTEzLjgtMTMuOCAxLjQtMTQuNyA2LjMtMzcuOCAyMi4xLTUzLjYgNS44LTUuOCAxMi42LTEwLjEgMTkuNi0xMy40LTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNC0xNS44LTE1LjgtMjAuNy0zOC44LTIyLjEtNTMuNi0uOC04LjEgNS43LTE0LjYgMTMuOC0xMy44IDE0LjcgMS40IDM3LjggNi4zIDUzLjYgMjIuMSA0LjggNC44IDguNyAxMC40IDExLjcgMTYuMSAyMS4zLTQxLjIgNjQuMy02OS40IDExMy44LTY5LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh6TTE0NCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0tMS40IDIxMWw2NyA1MC4yYzguNSA2LjQgMjAuMyA2LjQgMjguOCAwbDY3LTUwLjJjNi41LTQuOSAxNS4yLTYuMiAyMi42LTIuOCA2MS40IDI4LjIgMTA0LjEgOTAuMiAxMDQuMSAxNjIuMSAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0NS43IDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC03MiA0Mi43LTEzNCAxMDQuMS0xNjIuMSA3LjQtMy40IDE2LjEtMi4xIDIyLjYgMi44eiJdfSxkYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbnQtd2lsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTVhYSIsIk0zNDQtMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA2LjJjMjkuMyAxMi4yIDQ4IDQxLjMgNDggNzYuOSAwIDI3LjktMjUuMyA3NC44LTY2IDExMS43LTMuOCAzLjUtOC44IDUuMy0xNCA1LjNzLTEwLjItMS44LTE0LTUuM2MtNDAuNy0zNi44LTY2LTgzLjctNjYtMTExLjcgMC0zNS42IDE4LjctNjQuNyA0OC03Ni45bDAtNi4yYzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgNDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjk2YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgMzguMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zQzI1LjMgNDA1LjkgMCAzNTkgMCAzMzEuMSAwIDI5NS40IDE4LjcgMjY2LjQgNDggMjU0LjJMNDggMjE2YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDIwLjIgMCAzOS4zIDUgNTYgMTMuOEwyMjQgODhjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6Il19LEdQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWlnaHQtc2NhbGUiLGljb246WzQ0OCw1MTIsWyJ3ZWlnaHQiXSwiZjQ5NiIsIk0xMTYuNiAxOTJjLTMtMTAuMS00LjYtMjAuOS00LjYtMzIgMC02MS45IDUwLjEtMTEyIDExMi0xMTJTMzM2IDk4LjEgMzM2IDE2MGMwIDExLjEtMS42IDIxLjktNC42IDMybC03MSAwIDI0LjYtNDQuM2M2LjQtMTEuNiAyLjMtMjYuMi05LjMtMzIuNnMtMjYuMi0yLjMtMzIuNiA5LjNsLTM3LjYgNjcuNy04OC44IDB6TTEyOCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwQzI5My4zIDExLjkgMjYwIDAgMjI0IDBzLTY5LjMgMTEuOS05NiAzMnoiXX0sdWJyPUdQZSxjcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtcmlnaHQiLGljb246WzI1Niw1MTIsW10sImYwZGEiLCJNMjQ5LjMgMjM1LjhjMTAuMiAxMi42IDkuNSAzMS4xLTIuMiA0Mi44bC0xMjggMTI4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVM2NC41IDM5Ni45IDY0LjUgMzg0bDAtMjU2YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsMTI4IDEyOCAyLjIgMi40eiJdfSxwYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxvcmluLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxODQiLCJNMzE0LjcgMzJjLTM4LjggMC03My43IDIzLjMtODguNiA1OS4xTDE3MC43IDIyNCA2NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODAgMC00NS4xIDEwOC4zYy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN0wzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcuMyAwYzM4LjggMCA3My43LTIzLjMgODguNi01OS4xTDIxMy4zIDI4OCAzMjAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDQ1LjEtMTA4LjNjNS0xMS45IDE2LjYtMTkuNyAyOS41LTE5LjdMMzUyIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNy4zIDB6Il19LGRwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsIixpY29uOls0NDgsNTEyLFsxMjgyNzYsNjE2MDJdLCJmMGYzIiwiTTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMuMkMxMTkgNTAgNjQgMTE0LjYgNjQgMTkybDAgMjEuN2MwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRMNy44IDM1OC4zQzIuNyAzNjQuNiAwIDM3Mi40IDAgMzgwLjUgMCA0MDAuMSAxNS45IDQxNiAzNS41IDQxNmwzNzYuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0MDAuNCAzMDguNSAzODQgMjYxLjggMzg0IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTYyIDQ2NGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4czU0LjktMjAuNCA2Mi00OGwtMTI0IDB6Il19LGZicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXJpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzgiLCJNMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MS41YzcuOS0xIDE1LjktMS41IDI0LTEuNXMxNi4xIC41IDI0IDEuNUwyMTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU0YzU4LjkgMjMuOCAxMDMuMiA3NiAxMTYuMiAxMzkuNyAzLjUgMTcuMy03LjcgMzQuMi0yNSAzNy43cy0zNC4yLTcuNy0zNy43LTI1Yy02LjctMzMuMi0yNi40LTYxLjgtNTMuNC04MC4ybDAgODEuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwMS44Yy03LjgtMS41LTE1LjgtMi4yLTI0LTIuMnMtMTYuMiAuOC0yNCAyLjJMMTY4IDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgxLjhjLTMzLjggMjMtNTYgNjEuOS01NiAxMDUuOCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYuOSAwQzE4LjUgMzUwIDAgMzA1LjIgMCAyNTYgMCAxNzUuNCA0OS42IDEwNi40IDEyMCA3OGwwLTU0YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxoYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWlsbC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWVkIiwiTTI5Ny0yMi4yYzEyLjMgNSAxOC4yIDE5IDEzLjIgMzEuM2wtMjkgNzEuM0MzMzguOCA4NS4xIDM4NCAxMzMuMyAzODQgMTkybDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4LTYuNCAwLTEyLjUgMS4yLTE4IDMuNWwtMzAgNzMuOCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEuMi01Ny44IDE0Mi4yYy01IDEyLjMtMTkgMTguMi0zMS4zIDEzLjJzLTE4LjItMTktMTMuMi0zMS4zTDE2MCAyNTEuMyAxNjAgMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDE3LjcgMCA0MDBMMCAxMTJjMC0xNy43IDE0LjMtMzIgMzItMzIgMTAuOSAwIDIwLjUgNS40IDI2LjMgMTMuNyAxNi04LjcgMzQuMy0xMy43IDUzLjctMTMuNyAzMS4zIDAgNTkuNyAxMi45IDgwIDMzLjYgOS42LTkuOCAyMC45LTE3LjggMzMuNS0yMy41TDI2NS44LTljNS0xMi4zIDE5LTE4LjIgMzEuMy0xMy4yeiJdfSxZUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNub3dib2FyZGluZyIsaWNvbjpbNTc2LDUxMixbMTI3OTM4LCJzbm93Ym9hcmRpbmciXSwiZjdjZSIsIk00MjQuNSAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTY2LjQgNDUuNWMxMC4yLTE0LjQgMzAuMi0xNy45IDQ0LjYtNy43bDI3MiAxOTJjMTQuNCAxMC4yIDE3LjkgMzAuMiA3LjcgNDQuNnMtMzAuMiAxNy45LTQ0LjYgNy43bC05Mi4yLTY1LjEtNjIuMiA1My4zIDMyLjEgMjYuN2MxOC4yIDE1LjIgMjguOCAzNy43IDI4LjggNjEuNWwwIDg3LjggNzcuNSAxNS4yYzYuMiAxLjIgMTIuNiAuOSAxOC43LS44bDQxLjItMTEuOGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC00MS4yIDExLjhjLTEzLjQgMy44LTI3LjQgNC40LTQxLjEgMS44TDg3LjEgNDQzLjNjLTE3LjItMy40LTMzLTExLjgtNDUuMy0yNC4xTDE1LjUgMzkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjYuMiAyNi4yYzUuNiA1LjYgMTIuOCA5LjQgMjAuNiAxMWw2NC4yIDEyLjYgMC0xMjMuN2MwLTI3LjcgMTItNTQgMzIuOC03Mi4ybDY5LTYwLjQtODguMi02Mi4zQzE1OS42IDgwIDE1Ni4yIDYwIDE2Ni40IDQ1LjV6bTU4LjEgMzc1LjdsNjQgMTIuNSAwLTc1LjNjMC00LjctMi4xLTkuMy01LjgtMTIuM2wtNTguMi00OC41IDAgMTIzLjZ6Il19LG1icj1ZUGUsS1BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR0eSIsaWNvbjpbNTEyLDUxMixbInRlbGV0eXBlIl0sImYxZTQiLCJNNDUwLjIgMjY2LjhjMTUuOCA2LjUgMzQuMSAuMyA0Mi42LTE0LjZsMi40LTQuMmMyNy45LTQ4LjkgMjMuNi0xMTguOC0zMS4zLTE1NC41LTEyNi04Mi0yODkuNi04Mi00MTUuNiAwLTU0LjkgMzUuNy01OS4zIDEwNS43LTMxLjMgMTU0LjVsMi40IDQuMmM4LjUgMTQuOSAyNi43IDIxLjEgNDIuNiAxNC42bDgxLjktMzMuN2MxMy45LTUuNyAyMi40LTE5LjkgMjAuOS0zNC45bC01LjEtNTFjNjIuNS0yMSAxMzAuOC0xOS45IDE5Mi42IDMuM2wtNC44IDQ3LjdjLTEuNSAxNSA3IDI5LjIgMjAuOSAzNC45bDgxLjkgMzMuN3pNMzIgMzUyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTk2IDBhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHpNNjQgNDE2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMzUyIDMyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6TTI1NiAzMjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em02NCAzMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem0xMjgtMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0xMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGdicj1LUGUsYmJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJlY3RhbmdsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMjQgNzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTUyYzUzIDAgOTYgNDMgOTYgOTZsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjRjMC01MyA0My05NiA5Ni05NnptOTYtNjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTY4IDI3Mi4zYy0xNS4yIDIyLjgtMjQgNTAuMi0yNCA3OS43bDAgMjRjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC00Ni44IDBDODkuNiA0MDAgODAgMzkwLjQgODAgMzc4LjdMODAgMzY4YzAtNTAuMyAzOC43LTkxLjYgODgtOTUuN3pNNDI3LjkgNDAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtMjRjMC0yOS41LTguOC01Ni45LTI0LTc5LjcgNDkuMyA0LjEgODggNDUuMyA4OCA5NS43bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC00Ni44IDB6TTk2IDE5MmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSxndWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlIixpY29uOlszODQsNTEyLFsxMjgyNDEsIm1vYmlsZS1hbmRyb2lkIiwibW9iaWxlLXBob25lIl0sImYzY2UiLCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAwem03MiA0MTZsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0seGJyPWd1ZSx2YnI9Z3VlLHlicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdHVybi10by1kb3RzIixpY29uOls0NDgsNTEyLFtdLCJlNGMxIiwiTTI2NS40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDI4NS4zIDY0IDM1MiA2NGM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjYuNyAwIDI1LjQgMjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDgwLTgwem0tODIuNyAyNzJsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNjIuNyA0MDAgOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDgxLjcgMCA0NjRsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDY2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDB6TTMyMCAzNjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek02NCAxNjBhNjQgNjQgMCAxIDEgMC0xMjggNjQgNjQgMCAxIDEgMCAxMjh6Il19LHdicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleGNsYW1hdGlvbiIsaWNvbjpbMTI4LDUxMixbMTAwNjksMTAwNzEsNjE3MzhdLCIyMSIsIk02NCA0MzJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIC42IDAgMS4xIDAgMS43bC0xNiAzMDRjLS45IDE3LTE1IDMwLjMtMzIgMzAuM1MzMyAzNzAuNyAzMiAzNTMuN0wxNiA0OS43YzAtLjYgMC0xLjEgMC0xLjcgMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LGticj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaHVyY2giLGljb246WzUxMiw1MTIsWzk5NjJdLCJmNTFkIiwiTTI4MC04YzAtMTMuMy0xMC43LTI0LTI0LTI0UzIzMi0yMS4zIDIzMi04bDAgMjQtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgNDgtOTguNiA2NS44QzEyMCAxODYuNyAxMTIgMjAxLjYgMTEyIDIxNy43bDAgMzguMy03OS44IDQ1LjZDMTIuMyAzMTMgMCAzMzQuMiAwIDM1Ny4xTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDc0LjcgMCA4NS40IDAgMzIwIDBsNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTkwLjljMC0yMy0xMi4zLTQ0LjItMzIuMi01NS42TDQwMCAyNTYgNDAwIDIxNy43YzAtMTYtOC0zMS0yMS40LTM5LjlsLTk4LjYtNjUuOCAwLTQ4IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0yNHpNMjU2IDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LFNicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb2ZmIixpY29uOls1NzYsNTEyLFtdLCJmMjA0IiwiTTM4NCAxMjhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNDU0LjcgMzg0IDM4NCAzODRsLTE5MiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4bDE5MiAwek01NzYgMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyTDE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMTkyIDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sTWJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob2UtcHJpbnRzIixpY29uOls1NzYsNTEyLFtdLCJmNTRiIiwiTTI5NiAxOTJjLTIxLjEtMTIuMS00Mi4zLTI0LjItNzItMjkuM2wwLTE0MC4zQzI1Ny43IDEzIDMxMS40IDAgMzUyIDAgNDQ4IDAgNTc2IDQ4IDU3NiAxMjhzLTExOS42IDk2LTE3NiA5NmMtNDggMC03Ni0xNi0xMDQtMzJ6TTEyOCAzMmw0OCAwIDAgMTI4LTQ4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjR6TTIzMiAzMjBjMjgtMTYgNTYtMzIgMTA0LTMyIDU2LjQgMCAxNzYgMTYgMTc2IDk2UzM4NCA1MTIgMjg4IDUxMmMtNDAuNSAwLTk0LjMtMTMtMTI4LTIyLjRsMC0xNDAuM2MyOS43LTUuMiA1MC45LTE3LjMgNzItMjkuNHpNNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDQ4IDAgMCAxMjgtNDggMHoiXX0sQ2JyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGViIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LHVwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxsZXQiLGljb246WzUxMiw1MTIsW10sImY1NTUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw3MiAxMjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgMzJ6TTQxNiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxXXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZXNzYWdlIixpY29uOls1MTIsNTEyLFsiY29tbWVudC1hbHQiXSwiZjI3YSIsIk0wIDM1MkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDMyMCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5NmwtMTIwIDBjLTUuMiAwLTEwLjIgMS43LTE0LjQgNC44TDE2Ni40IDUzOS4yYy00LjIgMy4xLTkuMiA0LjgtMTQuNCA0LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2eiJdfSx6YnI9V18sX2JyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3BoeSIsaWNvbjpbNTEyLDUxMixbMTI3OTQyXSwiZjA5MSIsIk0xNDQuMyAwbDIyNCAwYzI2LjUgMCA0OC4xIDIxLjggNDcuMSA0OC4yLS4yIDUuMy0uNCAxMC42LS43IDE1LjhsNDkuNiAwYzI2LjEgMCA0OS4xIDIxLjYgNDcuMSA0OS44LTcuNSAxMDMuNy02MC41IDE2MC43LTExOCAxOTAuNS0xNS44IDguMi0zMS45IDE0LjMtNDcuMiAxOC44LTIwLjIgMjguNi00MS4yIDQzLjctNTcuOSA1MS44bDAgNzMuMSA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtNzMuMWMtMTYtNy43LTM1LjktMjItNTUuMy00OC4zLTE4LjQtNC44LTM4LjQtMTIuMS01Ny45LTIzLjEtNTQuMS0zMC4zLTEwMi45LTg3LjQtMTA5LjktMTg5LjktMS45LTI4LjEgMjEtNDkuNyA0Ny4xLTQ5LjdsNDkuNiAwYy0uMy01LjItLjUtMTAuNC0uNy0xNS44LTEtMjYuNSAyMC42LTQ4LjIgNDcuMS00OC4yek0xMDEuNSAxMTJsLTUyLjQgMGM2LjIgODQuNyA0NS4xIDEyNy4xIDg1LjIgMTQ5LjYtMTQuNC0zNy4zLTI2LjMtODYtMzIuOC0xNDkuNnpNMzgwIDI1Ni44YzQwLjUtMjMuOCA3Ny4xLTY2LjEgODMuMy0xNDQuOEw0MTEgMTEyYy02LjIgNjAuOS0xNy40IDEwOC4yLTMxIDE0NC44eiJdfSxaUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1kaXp6eSIsaWNvbjpbNTEyLDUxMixbImRpenp5Il0sImY1NjciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNC4xIDE1My45bDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwem0xOTIgMGwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHpNMjU2IDMwNGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sVGJyPVpQZSxMYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaWEiLGljb246WzY0MCw1MTIsW10sImUwNTkiLCJNMjU2LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTFjOC42IDIuMiAxNi45IDUuNiAyNC44IDEwLjNMMzExIDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02LjMgNi4zYzQuNiA3LjggOCAxNi4yIDEwLjMgMjQuOGwxMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMSAwYy0yLjIgOC42LTUuNiAxNi45LTEwLjMgMjQuOEwzNDUgMTUxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjEtMzAuMSAzMC4xIDQuMSA0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMWMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDIxNyAyNzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNi4zLTYuM2MtNy44IDQuNi0xNi4yIDgtMjQuOCAxMC4zbDAgMTFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMWMtOC42LTIuMi0xNi45LTUuNi0yNC44LTEwLjNMNzMgMzEzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDYuMy02LjNjLTQuNi03LjgtOC0xNi4yLTEwLjMtMjQuOGwtMTEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMSAwYzIuMi04LjYgNS42LTE2LjkgMTAuMy0yNC44TDM5IDE2OWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDEwMyAxMDVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOVMxOTEuNi0yLjMgMjAxIDdsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTI4IDI1NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI0MCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjk2IDQwbDAgMTFjOC42IDIuMiAxNi45IDUuNiAyNC44IDEwLjNMNTY3IDE5OWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDYwMSAzNDNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0wzMjkgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDYuMy02LjNjLTQuNi03LjgtOC0xNi4yLTEwLjMtMjQuOGwtMTEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMSAwYzIuMi04LjYgNS42LTE2LjkgMTAuMy0yNC44TDI5NSAzNjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xYzEwLTEwIDIwLTIwIDMwLjEtMzAuMUwzNTkgMjk3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMSAzMC4xLTMwLjEtNC4xLTQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDYuMyA2LjNjNy44LTQuNiAxNi4yLTggMjQuOC0xMC4zbDAtMTFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNNDQ4IDM4NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxUXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItZGVhZiIsaWNvbjpbNTEyLDUxMixbImRlYWYiLCJkZWFmbmVzcyIsImhhcmQtb2YtaGVhcmluZyJdLCJmMmE0IiwiTTUwMi42IDU0LjZsLTQwIDQwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w0MC00MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tMzIwIDMyMGwtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sRGJyPVRfLCRicj1UXyxBYnI9VF8sUVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1hcnJvd3MiLGljb246WzUxMiw1MTIsWyJwZW9wbGUtYXJyb3dzLWxlZnQtcmlnaHQiXSwiZTA2OCIsIk0zMiA2NEE2NCA2NCAwIDEgMSAxNjAgNjQgNjQgNjQgMCAxIDEgMzIgNjR6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMy4yIDAgNi40IC4yIDkuNSAuN0w5My4xIDIwNS4xQzY1IDIzMy4yIDY1IDI3OC44IDkzLjEgMzA2LjlsNTYgNTZjMy40IDMuNCA3IDYuNCAxMC45IDlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyMC42QzEyLjkgMzMyLjQgMCAzMTEuNyAwIDI4OGwwLTY0ek0zNTIgNjRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem02Ni45IDE0MS4xbC00NC40LTQ0LjRjMy4xLS41IDYuMy0uNyA5LjUtLjdsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNEw0ODAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFjMy45LTIuNiA3LjUtNS42IDEwLjktOWw1Ni01NmMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjh6TTMwMi44IDE3Ny44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMyODggMzIxLjcgMjg4IDMxMmwwLTI0LTY0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMyMjQgMTkwLjMgMjI0IDIwMGwwIDI0IDY0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6Il19LEVicj1RUGUsSWJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWNsYXBwaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMWE4IiwiTTM0NCA4bDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNFMzNDQtNS4zIDM0NCA4ek0yMjAgMTAuN2wzMiA0OGM3LjQgMTEgNC40IDI1LjktNi43IDMzLjNzLTI1LjkgNC40LTMzLjMtNi43bC0zMi00OGMtNy40LTExLTQuNC0yNS45IDYuNy0zMy4zUzIxMi42LS4zIDIyMCAxMC43ek0xMzUgMTE5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI5Mi43IDI0Mi43YzEwLjEgMTAuMSAyNy4zIDIuOSAyNy4zLTExLjNsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjQtNjQgMzguNC0xNDUuOCAyOC4zLTE5OC41LTI0LjRMNyAzNjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1MyA1M2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMUwyMyAyNjVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw5MyA5M2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMUw1NSAxODVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxMTcgMTE3YzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xbC05My05M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6TTQzMy4xIDQ4NC45Yy0yNC4yIDE0LjUtNTAuOSAyMi4xLTc3LjcgMjMuMSA0OC4xLTM5LjYgNzYuNi05OSA3Ni42LTE2Mi40bDAtOTguMWM4LjItLjEgMTYtNi40IDE2LTE2bDAtMzkuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTUzLjZjMCA1Ny4xLTMwIDExMC03OC45IDEzOS40ek00NTMuMyA0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6Il19LFBicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTRhOSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04My04MyAxMS40LTExLjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTEuMyAxMS4zLTIzLjgtMjMuOGMxNy45LTIzLjUgMjkuOS01MS43IDM0LjEtODIuM2wzMy42IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0zMy42IDBjLTQuMi0zMC43LTE2LjMtNTguOC0zNC4xLTgyLjNsMjMuOC0yMy44IDExLjMgMTEuM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDQwLjcgNDYuN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxMS4zIDExLjMtMjMuOCAyMy44QzM3MC44IDk3LjkgMzQyLjcgODUuOCAzMTIgODEuNmwwLTMzLjYgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzNDEuMyAwIDMyOCAwTDI0OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy42Yy0zMC43IDQuMi01OC44IDE2LjMtODIuMyAzNC4xTDE1Ny45IDkyIDE2OS4yIDgwLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwxMjMuOSA1OC4xIDQxLTI0Ljl6TTExMy42IDIzMmwtMzMuNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMzMuNiAwYzQuMiAzMC43IDE2LjMgNTguOCAzNC4xIDgyLjNsLTIzLjggMjMuOC0xMS4zLTExLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTYuNiA1Ni42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuMy0xMS4zIDIzLjgtMjMuOGMyMy41IDE3LjkgNTEuNyAyOS45IDgyLjMgMzQuMWwwIDMzLjYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwIDAtMzMuNmMxMy40LTEuOCAyNi40LTUuMiAzOC43LTkuOUwxMjMuNSAxOTMuM2MtNC43IDEyLjMtOCAyNS4yLTkuOSAzOC43eiJdfSxYUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItZGF5cyIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLWFsdCJdLCJmMDczIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMjQwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTEyOCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek02NCAzNjhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxOYnI9WFBlLEpQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kLXR1cm4tcmlnaHQiLGljb246WzUxMiw1MTIsWyJkaXJlY3Rpb25zIl0sImY1ZWIiLCJNMjE1IDE3TDE3IDIxNUM2LjEgMjI1LjkgMCAyNDAuNiAwIDI1NnM2LjEgMzAuMSAxNyA0MUwyMTUgNDk1YzEwLjkgMTAuOSAyNS42IDE3IDQxIDE3czMwLjEtNi4xIDQxLTE3TDQ5NSAyOTdjMTAuOS0xMC45IDE3LTI1LjYgMTctNDFzLTYuMS0zMC4xLTE3LTQxTDI5NyAxN0MyODYuMSA2LjEgMjcxLjQgMCAyNTYgMHMtMzAuMSA2LjEtNDEgMTd6TTM4NSAyNTdsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTc4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwYzAtMzkuOCAzMi4yLTcyIDcyLTcybDc4LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45eiJdfSxPYnI9SlBlLFJicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXVwIixpY29uOlszODQsNTEyLFs5NzU3XSwiZjBhNiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwUzk2IDE0LjMgOTYgMzJsMCAyMDgtNjQgMCAwLTIwOHpNMjI0IDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTY0LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDM3LjUgNDUzLjVDMTMuNSA0MjkuNSAwIDM5Ni45IDAgMzYzbDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxGYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmV6aWVyLWN1cnZlIixpY29uOls2NDAsNTEyLFtdLCJmNTViIiwiTTI5NiAxMzZsMC00OCA0OCAwIDAgNDgtNDggMHpNMjg4IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQtMTE4LjQgMEMxMTEuMiA2Mi43IDg5LjMgNDggNjQgNDggMjguNyA0OCAwIDc2LjcgMCAxMTJzMjguNyA2NCA2NCA2NGMyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzZsNjYuOSAwYy01OC45IDM5LjYtOTguOSAxMDUtMTA0IDE4MEw4MCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zLjMgMGM1LjktNjcgNDguNS0xMjMuNCAxMDcuNS0xNDkuMSA4LjYgMTIuNyAyMy4yIDIxLjEgMzkuOCAyMS4xbDY0IDBjMTYuNiAwIDMxLjEtOC40IDM5LjgtMjEuMSA1OSAyNS43IDEwMS42IDgyLjEgMTA3LjUgMTQ5LjFsLTMuMyAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNC41IDBjLTUtNzUtNDUuMS0xNDAuNC0xMDQtMTgwbDY2LjkgMGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0Yy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzZsLTExOC40IDAgMC00YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek04OCAzNzZsNDggMCAwIDQ4LTQ4IDAgMC00OHptNDE2IDQ4bDAtNDggNDggMCAwIDQ4LTQ4IDB6Il19LEJicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGFsZi1kcmVzcyIsaWNvbjpbMzg0LDUxMixbXSwiZTU0OCIsIk0xNDMuNC0zLjljOS43LTE2LjggMjcuOC0yOC4xIDQ4LjYtMjguMSAzMC45IDAgNTYgMjUuMSA1NiA1NiAwIDI1LjQtMTYuOSA0Ni44LTQwIDUzLjdsMCAwYy01LjEgMS41LTEwLjQgMi4zLTE2IDIuMy0zMC45IDAtNTYtMjUuMS01Ni01NmwwIDBjMC0xMC4xIDIuNy0xOS43IDcuNC0yNy45ek0zMTguMyAyOTkuMUwyNzIgMjM2LjcgMjcyIDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MCAwLS40IDAtMjM4LjZjMzYuMiA0LjQgNjkuMiAyMy40IDkxLjIgNTNsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0xNzYgMTEzbDAgMzk5YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTI1LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNDMtMTI5LTQ4LjMgNjUuMWMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjItMjkuNiA1NS4xLTQ4LjYgOTEuMi01M3oiXX0sZU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLWhvcml6b250YWwiLGljb246WzQ0OCw1MTIsWyJwb2xsLWgiXSwiZjY4MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjU2IDE1MmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bTcyIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMDggMHpNMTkyIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxIYnI9ZU5lLHFicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTZkIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFZicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk0wIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwyMzguNSAwYzM2LjggMCA3MS4yIDE4IDkyLjEgNDguMmwxMTMuNSAxNjRjMTMgMTguNyAxOS45IDQxIDE5LjkgNjMuOGwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzLjgtNzguMS01MC4yLTE2MS45IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhMNDggMTYwYy0yNi41IDAtNDgtMjEuNS00OC00OHoiXX0sdE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWxrYm9hcmQiLGljb246WzU3Niw1MTIsWyJibGFja2JvYXJkIl0sImY1MWIiLCJNOTYgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDY0ek00ODAgMzg0bC02NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTYwIDAgMC0yNTYgMzg0IDAgMCAyNTZ6Il19LGpicj10TmUsck5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLXJpZ2h0LWZyb20tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZXh0ZXJuYWwtbGluay1hbHQiXSwiZjM1ZCIsIk0yOTAuNCAxOS44QzI5NS40IDcuOCAzMDcuMSAwIDMyMCAwTDQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45TDQwMCAxNTcuMyAyNDYuNiAzMTAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMzU0LjcgMTEyIDI5Ny40IDU0LjZjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45ek0wIDE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGw4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA4MGMwIDQ0LjItMzUuOCA4MC04MCA4MEw4MCA1MTJjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgMTc2eiJdfSxVYnI9ck5lLFdicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtZnVsbCIsaWNvbjpbNTEyLDUxMixbMTI4OTk3LDEyODk5OCwxMjg5OTksMTI5ZTMsMTI5MDAxLDEyOTAwMiwxMjkwMDMsMTEwMzUsMTEwMzZdLCJmNDVjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sR2JyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3ZlciIsaWNvbjpbNTEyLDUxMixbXSwiZTEzOSIsIk0zMTAuNCAxNkMzNDYuNiAxNiAzNzYgNDUuNCAzNzYgODEuN2wwIDUuMmMwIDExLjItMi43IDIyLjMtNy44IDMyLjJsLTIuMyA0LjItMjAuMSAzMy41Yy0xLjEgMS45LTEuMiAzLjQtMS4xIDQuNSAuMiAxLjMgLjkgMi43IDIuMSAzLjlzMi42IDEuOSAzLjkgMi4xYzEuMSAuMiAyLjYgLjEgNC41LTEuMWwzMy41LTIwLjEgNC4yLTIuM2MxMC01LjEgMjEtNy44IDMyLjItNy44bDUuMiAwYzM2LjIgMCA2NS42IDI5LjQgNjUuNiA2NS43IDAgMTcuNC02LjkgMzQuMS0xOS4yIDQ2LjRsLTEuMyAxLjNjLTMuNyAzLjctMy43IDkuNiAwIDEzLjNsMS4zIDEuM2MxMi4zIDEyLjMgMTkuMiAyOSAxOS4yIDQ2LjQgMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjZsLTUuMiAwYy0xMi44IDAtMjUuNS0zLjUtMzYuNS0xMC4xbC0zMy41LTIwLjFjLTEuOS0xLjEtMy40LTEuMi00LjUtMS4xLTEuMyAuMi0yLjcgLjktMy45IDIuMXMtMS45IDIuNi0yLjEgMy45Yy0uMiAxLjEtLjEgMi42IDEuMSA0LjVsMjAuMSAzMy41YzYuNiAxMSAxMC4xIDIzLjYgMTAuMSAzNi41bDAgNS4yYzAgMzYuMi0yOS40IDY1LjYtNjUuNiA2NS42LTE3LjQgMC0zNC4xLTYuOS00Ni40LTE5LjJsLTEuMy0xLjNjLTMuNy0zLjctOS42LTMuNy0xMy4zIDBsLTEuMyAxLjNjLTEyLjMgMTIuMy0yOSAxOS4yLTQ2LjQgMTkuMi0zNi4yIDAtNjUuNi0yOS40LTY1LjctNjUuNmwwLTUuMmMwLTEyLjggMy41LTI1LjUgMTAuMS0zNi41bDIwLjEtMzMuNWMxLjEtMS45IDEuMi0zLjQgMS4xLTQuNS0uMi0xLjMtLjktMi43LTIuMS0zLjlzLTIuNi0xLjktMy45LTIuMWMtLjUtLjEtMS4yLS4xLTEuOSAwbC0yLjUgMS0zMy41IDIwLjFjLTExIDYuNi0yMy42IDEwLjEtMzYuNSAxMC4xbC01LjIgMEM0NS40IDM3NiAxNiAzNDYuNiAxNiAzMTAuNCAxNiAyOTMgMjIuOSAyNzYuMyAzNS4yIDI2NGwxLjMtMS4zIDEuMi0xLjVjMi4xLTMuMSAyLjEtNy4yIDAtMTAuM2wtMS4yLTEuNS0xLjMtMS4zQzIyLjkgMjM1LjggMTYgMjE5LjEgMTYgMjAxLjcgMTYgMTY1LjQgNDUuNCAxMzYgODEuNyAxMzZsNS4yIDBjMTIuOCAwIDI1LjUgMy41IDM2LjUgMTAuMWwzMy41IDIwLjEgMi41IDFjLjcgLjEgMS40IC4xIDEuOSAuMSAxLjMtLjIgMi43LS45IDMuOS0yLjFzMS45LTIuNiAyLjEtMy45Yy4xLS41IC4xLTEuMi0uMS0xLjlsLTEtMi41LTIwLjEtMzMuNWMtNi42LTExLTEwLjEtMjMuNi0xMC4xLTM2LjVsMC01LjJjMC0zNi4yIDI5LjQtNjUuNyA2NS43LTY1LjcgMTcuNCAwIDM0LjEgNi45IDQ2LjQgMTkuMmwxLjMgMS4zYzMuNyAzLjYgOS42IDMuNyAxMy4zIDBsMS4zLTEuMyA0LjgtNC40QzI4MC41IDIxLjMgMjk1LjEgMTYgMzEwLjQgMTZ6Il19LFlicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZWV0aC1vcGVuIixpY29uOls1MTIsNTEyLFtdLCJmNjJmIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA4MGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0wIDI3MmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMwNHptODAtMTYwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHptMTI4IDBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek04MCAxMTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHpNNDggMzg0bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6bTE0NCA0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTExMi0xNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnoiXX0sYnVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtc3RhZ2dlcmVkIixpY29uOls1MTIsNTEyLFsicmVvcmRlciIsInN0cmVhbSJdLCJmNTUwIiwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NnpNNjQgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxLYnI9YnVlLFpicj1idWUsUWJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhcmVob3VzZSIsaWNvbjpbNTc2LDUxMixbXSwiZjQ5NCIsIk0wIDE0Mi4xTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMzNy45YzAtMjcuNS0xNy42LTUyLTQzLjgtNjAuN0wzMDMuMiA1LjFjLTkuOS0zLjMtMjAuNS0zLjMtMzAuNCAwTDQzLjggODEuNEMxNy42IDkwLjEgMCAxMTQuNiAwIDE0Mi4xek00NjQgMjU2bC0zNTIgMCAwIDY0IDM1MiAwIDAtNjR6TTExMiA0MTZsMzUyIDAgMC02NC0zNTIgMCAwIDY0em0zNTIgMzJsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHoiXX0sWGJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN3YXRjaGJvb2siLGljb246WzUxMiw1MTIsW10sImY1YzMiLCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM2OGMwIDUzLTQzIDk2LTk2IDk2UzAgNDY5IDAgNDE2TDAgNDh6TTI0MCA0MDkuNmwwLTI3MS41IDQ4LjEtNDguMWMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGw2Ny45IDY3LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjQwIDQwOS42ek0yMDUuNSA1MTJsMTkyLTE5MiA2Ni42IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU4LjUgMHpNODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA2NHpNNjQgMjA4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LEpicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1wZ3JvdW5kIixpY29uOls1MTIsNTEyLFs5OTc4XSwiZjZiYiIsIk0zNDQuOCA1Mi4zYzExLjItMTMuNyA5LjItMzMuOC00LjUtNDVzLTMzLjgtOS4yLTQ1IDQuNWwtMzkuMiA0OC0zOS4yLTQ4QzIwNS42LTEuOSAxODUuNC00IDE3MS43IDcuMnMtMTUuNyAzMS40LTQuNSA0NWw0Ny40IDU4LTIwMiAyNDYuOUM0LjUgMzY3LjEgMCAzNzkuNiAwIDM5Mi42TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzkuNGMwLTEyLjktNC41LTI1LjUtMTIuNy0zNS41bC0yMDItMjQ2LjkgNDcuNC01OHpNMjU2IDI4OGwxMTIgMTI4LTIyNCAwIDExMi0xMjh6Il19LGV4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU1MiIsIk0xMDQuNSAyNGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bS04IDE4MS4zTDczLjkgMjI3LjljLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM1LjEtMzUuMWMyMi44LTIyLjggNTMuNi0zNS42IDg1LjgtMzUuNiAzNi45IDAgNzEuOCAxNi44IDk0LjggNDUuNkwyNjIuMyAxODBjNi4xIDcuNiAxNS4zIDEyIDI1IDEybDMzLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzMuMiAwYy0yOS4yIDAtNTYuNy0xMy4zLTc1LTM2bC0zLjgtNC43IDAgMTE1LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhMMTMwIDM0Ny41Yy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6TTk2LjYgMzcxYzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVMNTUuMSA1MzQuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjguMy02OC4zYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEw5Ni42IDM3MXpNNTA1LjUgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MnoiXX0sdHhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzZXMiLGljb246WzU3Niw1MTIsW10sImY1MzAiLCJNMTQzLjMgOTZjLTE0IDAtMjYuNSA5LjItMzAuNiAyMi42TDcwLjQgMjU2IDIyNCAyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsNjQgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNTMuNiAwLTQyLjMtMTM3LjRDNDU5LjIgMTA1LjIgNDQ2LjggOTYgNDMyLjcgOTZMNDAwIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyLjcgMGM0Mi4xIDAgNzkuNCAyNy41IDkxLjggNjcuOGw0NS40IDE0Ny41YzQuMSAxMy4yIDYuMSAyNi45IDYuMSA0MC43bDAgOTZjMCA1My00MyA5Ni05NiA5NmwtNjQgMGMtNTMgMC05Ni00My05Ni05NmwwLTMyLTY0IDAgMCAzMmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtOTZjMC0xMy44IDIuMS0yNy41IDYuMS00MC43TDUxLjUgOTkuOEM2My45IDU5LjUgMTAxLjEgMzIgMTQzLjMgMzJMMTc2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMi43IDB6TTY0IDMyMGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NC0xMjggMHptNDE2IDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQtMTI4IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAweiJdfSxhTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxOTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0scnhyPWFOZSxheHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVtb3J5IixpY29uOls1MTIsNTEyLFtdLCJmNTM4IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNy40QzAgMTQyLjIgNC40IDE0OCAxMC4xIDE1MS43IDIzLjMgMTYwLjMgMzIgMTc1LjEgMzIgMTkycy04LjcgMzEuNy0yMS45IDQwLjNDNC40IDIzNiAwIDI0MS44IDAgMjQ4LjZsMCA1NS40IDUxMiAwIDAtNTUuNGMwLTYuOC00LjQtMTIuNi0xMC4xLTE2LjMtMTMuMi04LjYtMjEuOS0yMy40LTIxLjktNDAuM3M4LjctMzEuNyAyMS45LTQwLjNjNS43LTMuNyAxMC4xLTkuNSAxMC4xLTE2LjNsMC03LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTUxMiA0MTZsMC02NC01MTIgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgODggMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTE2MCAxNjBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0saXhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnQiLGljb246WzUxMiw1MTIsWzEyNzg3M10sImYwNmIiLCJNMzIxLjUgNjguOEMzMjkuMSA1NS45IDM0Mi45IDQ4IDM1Ny44IDQ4bDIuMiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC03My4zIDAgMzQuOC01OS4yem0tMTMxIDBsMzQuOCA1OS4yLTczLjMgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGwyLjIgMGMxNC45IDAgMjguOCA3LjkgMzYuMyAyMC44em04OS42LTI0LjNsLTI0LjEgNDEtMjQuMS00MUMyMTUuNyAxNi45IDE4Ni4xIDAgMTU0LjIgMEwxNTIgMGMtNDguNiAwLTg4IDM5LjQtODggODggMCAxNC40IDMuNSAyOCA5LjYgNDBMMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTQxLjYgMGM2LjEtMTIgOS42LTI1LjYgOS42LTQwIDAtNDguNi0zOS40LTg4LTg4LTg4bC0yLjIgMGMtMzEuOSAwLTYxLjUgMTYuOS03Ny43IDQ0LjR6TTQ4MCAyNzJsLTIwMCAwIDAgMjA4IDEzNiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ0em0tMjQ4IDBsLTIwMCAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEzNiAwIDAtMjA4eiJdfSxzeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC13aGVhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyYSIsIk0xNzYtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnpNNTYgMGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDQ4QzQyLjcgNDggMzIgMzcuMyAzMiAyNFM0Mi43IDAgNTYgMHpNMjQgNzJsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTIwQzEwLjcgMTIwIDAgMTA5LjMgMCA5NlMxMC43IDcyIDI0IDcyem04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgMGMwLTguOCA3LjItMTYgMTYtMTYgNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwek00MDAtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnptODAgMTQ0YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxMTJjOC44IDAgMTYgNy4yIDE2IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDR6TTQ4IDQxNmwwIDQ4IDQ4IDBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTk2IDMwNGwtNDggMCAwIDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek00NjQgNDE2Yy0yNi41IDAtNDggMjEuNS00OCA0OGw0OCAwIDAtNDh6TTQxNiAzMDRjMCAyNi41IDIxLjUgNDggNDggNDhsMC00OC00OCAwem0tOTYgODBhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAweiJdfSxueHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVuZ2VvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkOSIsIk0zNDcuNSAxNDQuOGM2LjUgNS40IDEyLjUgMTEuMyAxOCAxNy43IDguNyAxMC4yIDIzLjcgMTQgMzUuMSA2LjlsNTQuMS0zMy44YzExLjItNyAxNC43LTIxLjcgNi45LTMyLjItMTUuMy0yMC41LTMzLjUtMzguNi01NC4xLTUzLjgtMTAuNC03LjYtMjQuNy00LjMtMzEuOCA2LjRsLTM1LjEgNTIuNmMtNy44IDExLjYtMy44IDI3LjMgNyAzNi4yek0zMjcuOCA0MS4xYzguNi0xMi45IDIuOS0zMC41LTEyLjItMzQuMS0xOS4xLTQuNi0zOS4xLTctNTkuNi03cy00MC40IDIuNC01OS42IDdjLTE1LjEgMy42LTIwLjggMjEuMi0xMi4yIDM0LjFsNDAgNjBjNS4yIDcuOCAxNC41IDExLjcgMjMuOSAxMS4yIDUuMi0uMyAxMC42LS4zIDE1LjggMCA5LjQgLjUgMTguNy0zLjQgMjMuOS0xMS4ybDQwLTYwek01MC41IDEwMy4zYy03LjkgMTAuNS00LjMgMjUuMyA2LjkgMzIuMmw1NC4xIDMzLjhjMTEuNCA3LjEgMjYuMyAzLjMgMzUuMS02LjkgNS41LTYuNCAxMS41LTEyLjMgMTgtMTcuNyAxMC44LTguOSAxNC44LTI0LjYgNy0zNi4yTDEzNi40IDU1LjljLTcuMS0xMC43LTIxLjUtMTQtMzEuOC02LjQtMjAuNiAxNS4xLTM4LjggMzMuMy01NC4xIDUzLjh6bTYyIDE0MS4xYy44LTkuOS0zLjMtMTkuOS0xMS44LTI1LjFMNDEgMTgyYy0xMi45LTgtMjkuOS0yLjMtMzMuNiAxMi41LTQuOSAxOS43LTcuNSA0MC4zLTcuNSA2MS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMy45IC4yLTcuOCAuNS0xMS42em0yODcuMSAwYy4zIDMuOCAuNSA3LjcgLjUgMTEuNmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTIxLjItMi42LTQxLjgtNy41LTYxLjYtMy42LTE0LjctMjAuNy0yMC41LTMzLjYtMTIuNWwtNTkuNyAzNy4zYy04LjQgNS4zLTEyLjYgMTUuMi0xMS44IDI1LjF6TTg4IDM1MmwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNDAwIDBsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNHptLTgwIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6bTE2MCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6Il19LGlOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsibWVka2l0Il0sImYwZmEiLCJNMTkyIDU2bDAgNDAgMTI4IDAgMC00MGMwLTQuNC0zLjYtOC04LThMMjAwIDQ4Yy00LjQgMC04IDMuNi04IDh6bS00OCA4bDAtOGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMTIgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQyNC0yMjQgMCAwLTQxNnpNOTYgMTc2bDAgMzA0LTMyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyIDAgMCA4MHpNNDE2IDQ4MGwwLTM4NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMiAwek0yNDQgMjA4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzNi0zNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMzYgMCAwIDM2YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM2IDM2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0zNiAwIDAtMzZjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxveHI9aU5lLGx4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYyIsIk0yMzItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE0NCAyMzYuN0w5Ny43IDI5OS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxNDIgMTMyIDE4MS43IDExMiAyMjQgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDMwNCAyMzYuNyAzMDQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc1LjN6TTM5MiAzODRjLTQuNCAwLTggMy42LTggOCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTI4YzAtNC40LTMuNi04LTgtOHoiXX0sTF89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2UiLGljb246WzUxMiw1MTIsWyJkYXNoYm9hcmQiLCJnYXVnZS1tZWQiLCJ0YWNob21ldGVyLWFsdC1hdmVyYWdlIl0sImY2MjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptLTE2IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQwMCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sY3hyPUxfLGR4cj1MXyx1eHI9TF8scHhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4tdGV4dCIsaWNvbjpbNTc2LDUxMixbXSwiZjY1OCIsIk0yODggMzMuOUw5Ni40IDE3NS44IDI1NC41IDI5M2M1LjMgMy45IDExLjIgNi45IDE3LjUgOC43TDI3MiA0NjRjMCA1LjUgLjUgMTAuOCAxLjMgMTZMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIzOS45YzAtMjAuMyA5LjYtMzkuNCAyNS45LTUxLjRMMjU0LjUtMjFjOS43LTcuMiAyMS40LTExIDMzLjUtMTFzMjMuOCAzLjkgMzMuNSAxMUw1MTguMSAxMjQuN2M3LjIgNS4zIDEzLjEgMTIgMTcuNCAxOS42LTIuNS0uMi01LS4zLTcuNS0uM0w0MzYuNiAxNDQgMjg4IDMzLjl6TTMyMCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTIyNHptODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAweiJdfSxmeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vbGJveCIsaWNvbjpbNTEyLDUxMixbMTI5NTIwXSwiZjU1MiIsIk0xNzYgNTZsMCA0MCAxNjAgMCAwLTQwYzAtNC40LTMuNi04LTgtOEwxODQgNDhjLTQuNCAwLTggMy42LTggOHpNMTI4IDk2bDAtNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzI4IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAyOC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw1MS45IDUxLjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3Ni4xLTEzNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xNDQgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtMTM2IDAgMC03Ni4xYzAtMTIuNyA1LjEtMjQuOSAxNC4xLTMzLjlsNTEuOS01MS45YzktOSAyMS4yLTE0LjEgMzMuOS0xNC4xTDEyOCA5NnpNMCA0MTZsMC05NiAxMzYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxNDQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxMzYgMCAwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6Il19LGh4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb3dlci1vZmYiLGljb246WzUxMiw1MTIsWzkyMTFdLCJmMDExIiwiTTI4OCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzIyNC0xNy43IDIyNCAwbDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMMjg4IDB6TTE0Ni4zIDk4LjRjMTQuNS0xMC4xIDE4LTMwLjEgNy45LTQ0LjZzLTMwLjEtMTgtNDQuNi03LjlDNDMuNCA5Mi4xIDAgMTY5IDAgMjU2IDAgMzk3LjQgMTE0LjYgNTEyIDI1NiA1MTJTNTEyIDM5Ny40IDUxMiAyNTZjMC04Ny00My40LTE2My45LTEwOS43LTIxMC4xLTE0LjUtMTAuMS0zNC40LTYuNi00NC42IDcuOXMtNi42IDM0LjQgNy45IDQ0LjZjNDkuOCAzNC44IDgyLjMgOTIuNCA4Mi4zIDE1Ny42IDAgMTA2LTg2IDE5Mi0xOTIgMTkyUzY0IDM2MiA2NCAyNTZjMC02NS4yIDMyLjUtMTIyLjkgODIuMy0xNTcuNnoiXX0seHVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hbCIsaWNvbjpbNTEyLDUxMixbMTI4MjQ2LCJzaWduYWwtNSIsInNpZ25hbC1wZXJmZWN0Il0sImYwMTIiLCJNNDg4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDB6TTM2MCAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAyNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHpNMTUyIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNNDggMzg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sbXhyPXh1ZSxneHI9eHVlLGJ4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BpbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYiIsIk00ODEuNyAyNDAuMWMtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5LjctMy4zIDQ3LTIzLjYgODkuNC01NC44IDEyMUwzNjEgMzU5Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAzNjYuMyAzMjAgMzc2bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtMzUtMzVjNDEuNy00Mi4yIDY4LjktOTguOCA3My40LTE2MS44IDEuMi0xNy42LTEyLTMyLjktMjkuNy0zNC4yek0zOSA0MUw3NCA3NmMtNDEuNyA0Mi4yLTY4LjkgOTguOC03My40IDE2MS44LTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yczMyLjktMTIgMzQuMi0yOS43YzMuMy00NyAyMy42LTg5LjQgNTQuOC0xMjFMMTUxIDE1M2M2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzE5MiAxNDUuNyAxOTIgMTM2bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDU2IDBDNDYuMyAwIDM3LjUgNS44IDMzLjggMTQuOFMzMi4yIDM0LjEgMzkgNDF6bTIwMS0xMC43Yy0xLjIgMTcuNiAxMiAzMi45IDI5LjcgMzQuMiA0NyAzLjMgODkuNCAyMy42IDEyMSA1NC44TDM1OSAxNTFjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMzY2LjMgMTkyIDM3NiAxOTJsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IDMyLjIgNDcxIDM5TDQzNiA3NGMtNDIuMi00MS43LTk4LjgtNjguOS0xNjEuOC03My40LTE3LjYtMS4yLTMyLjkgMTItMzQuMiAyOS43ek00MSA0NzNsMzUtMzVjNDIuMiA0MS43IDk4LjggNjguOSAxNjEuOCA3My40IDE3LjYgMS4yIDMyLjktMTIgMzQuMi0yOS43cy0xMi0zMi45LTI5LjctMzQuMmMtNDctMy4zLTg5LjQtMjMuNi0xMjEtNTQuOEwxNTMgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTQ1LjcgMzIwIDEzNiAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ1NmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA0NzkuOCA0MSA0NzN6Il19LHh4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqb2ludCIsaWNvbjpbNTc2LDUxMixbXSwiZjU5NSIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0yOTIuNyAzMjBjNS42IDAgMTAuNyAyLjkgMTMuNiA3LjZMMzk0LjYgNDcxYzEuMyAyLjEgMCA0LjktMi40IDUuMi0xNi4xIDIuNS0zMi40IDMuNy00OC43IDMuN2wtMzguMSAwYy01LjYgMC0xMC43LTIuOS0xMy42LTcuNmwtNzktMTI4LjRjLTYtOS44IDAtMjIuNiAxMS41LTIzLjMgNi43LS40IDEzLjQtLjYgMjAuMi0uNmw0OC4zIDB6TTQ1OS4zIDQ2NS45Yy02LjQgMS0xMi43LTEuOS0xNi4xLTcuNEwzNzQuMSAzNDYuMWMtNi43LTEwLjkgMS41LTI0LjcgMTQuMi0yMi45IDEuMyAuMiAyLjYgLjQgMy44IC42bDEzNi40IDIxYzI3LjMgNC4yIDQ3LjQgMjcuNyA0Ny40IDU1LjNzLTIwLjEgNTEuMS00Ny40IDU1LjNsLTY5LjIgMTAuNnpNMTM4LjcgMzM2YzYuNy0xLjUgMTMuNiAxLjQgMTcuMiA3LjJsNjguOSAxMTJjNi42IDEwLjctMS4yIDI0LjQtMTMuOCAyMy4xLTEzLTEuNC0yNS45LTMuNS0zOC42LTYuNUwzMS4yIDQzOS4yQzEyLjkgNDM1IDAgNDE4LjcgMCA0MDBzMTIuOS0zNSAzMS4yLTM5LjJMMTM4LjcgMzM2eiJdfSx2eHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhaWxsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJhMSIsIk04MCAxNDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wIDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAgNTZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODAtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwem0yNDgtODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0em01NiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODAgODAtMzUuOCA4MC04MHpNMzA0IDIzMmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAgMTA0YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTE5MmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sc05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2tldC1zaG9wcGluZyIsaWNvbjpbNTc2LDUxMixbInNob3BwaW5nLWJhc2tldCJdLCJmMjkxIiwiTTI4OCAwYzYuNiAwIDEyLjkgMi43IDE3LjQgNy41bDE0NCAxNTIgLjUgLjUgNzguMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTQuNS05LjYgMjYuNy0yMi44IDMwLjdMNDkxLjEgNDI5LjljLTYuNSAyOS4zLTMyLjUgNTAuMS02Mi41IDUwLjFsLTI4MS4zIDBjLTMwIDAtNTYtMjAuOC02Mi41LTUwLjFsLTQ2LTIwNy4yYy0xMy4yLTMuOS0yMi44LTE2LjItMjIuOC0zMC43IDAtMTcuNyAxNC4zLTMyIDMyLTMybDc4LjEgMCAuNS0uNSAxNDQtMTUyQzI3NS4xIDIuNyAyODEuNCAwIDI4OCAwem0wIDU4LjlMMTkyLjIgMTYwIDM4My44IDE2MCAyODggNTguOXpNMjA4IDI2NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyem04MC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTI4IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6Il19LHl4cj1zTmUsd3hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRjOCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTRjMC0zOC44IDI2LjQtNzIuNiA2NC04MmwwLTExMi00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6Il19LGt4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1hcnJpdmFsIixpY29uOls1NzYsNTEyLFsxMjg3NDhdLCJmNWFmIiwiTTM4Ni42IDE5My4xTDI2NS45IDMuN2MtNC44LTcuNi0xMi42LTEyLjgtMjEuNC0xNC4zbC00My4xLTcuNmMtMTAuOC0xLjktMjAuMiA3LjMtMTguNiAxOC4xbDI0IDE2MS42LTEwNS0xOC41LTMzLjgtNjEuOEM2NC41IDc0LjcgNTguMiA3MC4yIDUxLjEgNjlMMzQgNjZjLTkuOC0xLjctMTguOCA1LjktMTguOCAxNS44bC42IDEwNi4zYy4yIDMwLjkgMjIuNCA1Ny4zIDUyLjkgNjIuN2wxMy41IDIuNCAwIDAgNDE3LjYgNzMuNmMzMC41IDUuNCA1OS41LTE1IDY0LjktNDUuNHMtMTUtNTkuNS00NS40LTY0LjlMMzg2LjYgMTkzLjF6TTIyNCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xMzEuMi0xNS4zYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDh6Il19LFN4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXNoLXJlZ2lzdGVyIixpY29uOls1MTIsNTEyLFtdLCJmNzg4IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRzMjguNyA2NCA2NCA2NGw0OCAwIDAgMzItNTcgMGMtMzEuNiAwLTU4LjUgMjMuMS02My4zIDU0LjRMMS4xIDM2NC4xQy40IDM2OC44IDAgMzczLjYgMCAzNzguNEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY5LjZjMC00LjgtLjQtOS42LTEuMS0xNC40TDQ4OC4yIDIxNC40QzQ4My41IDE4My4xIDQ1Ni42IDE2MCA0MjUgMTYwbC0yMTcgMCAwLTMyIDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRTMjkxLjMgMCAyNTYgMEw5NiAwem0wIDQ4bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDk2IDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDgtMTYwYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTIwLTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTE2MCAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek0zMjggMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTI1NiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek00MjQgMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTM1MiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxNeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjcwYiIsIk02NCAyMDhjMCA3LjggNC40IDE4LjcgMTcuMSAzMC4zIDQ1LjQtMjQuMiAxMDcuNy0zOC4zIDE3NC45LTM4LjNzMTI5LjUgMTQuMSAxNzQuOSAzOC4zYzEyLjgtMTEuNiAxNy4xLTIyLjUgMTcuMS0zMC4zIDAtMTIuMy0xMC44LTMyLTQ3LjktNTAuNi0zNS4yLTE3LjYtODYuMS0yOS40LTE0NC4xLTI5LjRzLTEwOC45IDExLjgtMTQ0LjEgMjkuNEM3NC44IDE3NiA2NCAxOTUuNyA2NCAyMDh6bTE5MiA0MGMtNDcgMC04OS4zIDcuNi0xMjIuOSAxOS43IDMzLjIgMTIuNCA3NS43IDIwLjMgMTIyLjkgMjAuM3M4OS43LTcuOCAxMjIuOS0yMC4zQzM0NS4zIDI1NS42IDMwMyAyNDggMjU2IDI0OHpNMCAyMDhDMCAxNTguNCAzOS40IDEyMi4yIDgzLjMgMTAwLjIgMTI5LjEgNzcuMyAxOTAuMyA2NCAyNTYgNjRzMTI2LjkgMTMuMyAxNzIuNyAzNi4yYzQzLjkgMjIgODMuMyA1OC4yIDgzLjMgMTA3LjhsMCA5NmMwIDQ5LjYtMzkuNCA4NS44LTgzLjMgMTA3LjgtNDUuOSAyMi45LTEwNyAzNi4yLTE3Mi43IDM2LjJTMTI5LjEgNDM0LjcgODMuMyA0MTEuOEMzOS40IDM4OS44IDAgMzUzLjYgMCAzMDRsMC05NnoiXX0sQ3hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFxdWFyaXVzIixpY29uOls1NzYsNTEyLFtdLCJlODQ1IiwiTTQwMS43IDI5MS40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxMjggNjRjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM0w0MTYgMzU1LjggMzAyLjMgNDEyLjZjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxNjAgMzU1LjggNDYuMyA0MTIuNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOWwxMjgtNjRjOS00LjUgMTkuNi00LjUgMjguNiAwTDI4OCAzNDguMiA0MDEuNyAyOTEuNHptMy40LTE5My41YzguMi0zIDE3LjMtMi41IDI1LjIgMS41bDEyOCA2NGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDQxNiAxNjMuOCAzMDIuMyAyMjAuNmMtOSA0LjUtMTkuNiA0LjUtMjguNiAwTDE2MCAxNjMuOCA0Ni4zIDIyMC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDEyOC02NCAzLjQtMS41YzguMi0zIDE3LjMtMi41IDI1LjIgMS41bDExMy43IDU2LjggMTEzLjctNTYuOCAzLjQtMS41eiJdfSxuTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtbm9kZXMiLGljb246WzUxMiw1MTIsWyJzaGFyZS1hbHQiXSwiZjFlMCIsIk0zODQgMTkyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgNS40IC41IDEwLjggMS4zIDE2TDE1OS42IDE4NC4xYy0xNi45LTE1LTM5LjItMjQuMS02My42LTI0LjEtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNC40IDAgNDYuNi05LjEgNjMuNi0yNC4xTDI4OS4zIDQwMGMtLjkgNS4yLTEuMyAxMC41LTEuMyAxNiAwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2Yy0yNC40IDAtNDYuNiA5LjEtNjMuNiAyNC4xTDE5MC43IDI3MmMuOS01LjIgMS4zLTEwLjUgMS4zLTE2cy0uNS0xMC44LTEuMy0xNmwxMjkuNy03Mi4xYzE2LjkgMTUgMzkuMiAyNC4xIDYzLjYgMjQuMXoiXX0senhyPW5OZSxfeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxUeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlub2N1bGFycyIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNSIsIk0xMjggMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQgOTZsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTU5LjFjMC0zNC42IDkuNC02OC42IDI3LjItOTguMyAxMy43LTIyLjggMjIuNS00OC4yIDI1LjgtNzQuNkw2MC41IDE1NmMyLTE2IDE1LjYtMjggMzEuOC0yOGw5OS44IDB6bTIyNy44IDBjMTYuMSAwIDI5LjggMTIgMzEuOCAyOEw0NTkgMjE2YzMuMyAyNi40IDEyLjEgNTEuOCAyNS44IDc0LjYgMTcuOCAyOS43IDI3LjIgNjMuNyAyNy4yIDk4LjNsMCA1OS4xYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMjAgOTkuOCAwek0zMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMnptLTMyIDY0bDAgMTYwLTY0IDAgMC0xNjAgNjQgMHoiXX0sTHhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpcC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWM0IiwiTTM0MC44IDg4LjNjMTMuNC0xMS41IDE1LTMxLjcgMy41LTQ1LjFzLTMxLjctMTUtNDUuMS0zLjVMMTI4IDE4Ni40IDEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTY4LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDE2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTIyLjQgMTcxLjIgMTQ2LjdjMTMuNCAxMS41IDMzLjYgOS45IDQ1LjEtMy41czkuOS0zMy42LTMuNS00NS4xTDE3My4yIDI4MCAzNTIgMjgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3My4yIDIzMiAzNDAuOCA4OC4zeiJdfSxvTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjYwLjFDMTguMSAyNDcuNCA0MC4yIDI0MCA2NCAyNDBsMzIwIDBjMjMuOCAwIDQ1LjkgNy40IDY0IDIwLjFMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00NDggMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0ek0yMjQgMzg0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LER4cj1vTmUsJHhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhbmtpbmctc3RhciIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MSIsIk0zMjEuOCA1NC4xTDI5OC4yIDYuM2MtMy45LTguMy0xNi4xLTguNi0yMC40IDBsLTIzLjYgNDcuOC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjBjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDggMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDE2IDQzMmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh6Il19LEF4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwOCIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptLTMwLjUgNTZsNjEgMGM5LjcgMCAxNy41IDcuOCAxNy41IDE3LjUgMCA0LjItMS41IDguMi00LjIgMTEuNGwtMjcuNCAzMiAzMSAxMTUuMSAuNiAwIDM0LjYtMTM4LjVjMi4yLTguNyAxMS4xLTE0IDE5LjUtMTAuOCA2MS45IDIzLjYgMTA1LjkgODMuNiAxMDUuOSAxNTMuOCAwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNEw0My40IDUxMmMtMTUuMSAwLTI3LjQtMTIuMy0yNy40LTI3LjQgMC03MC4yIDQ0LTEzMC4yIDEwNS45LTE1My44IDguNC0zLjIgMTcuMyAyLjEgMTkuNSAxMC44bDM0LjYgMTM4LjUgLjYgMCAzMS0xMTUuMS0yNy40LTMyYy0yLjctMy4yLTQuMi03LjItNC4yLTExLjQgMC05LjcgNy44LTE3LjUgMTcuNS0xNy41eiJdfSxsTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMiLGljb246WzQ0OCw1MTIsWyJlbGxpcHNpcy1oIl0sImYxNDEiLCJNMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0xNjggMGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTIyNC01NmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0sRXhyPWxOZSxJeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzEiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTguNi01OC42YzEuMS00IDEuNi04LjIgMS42LTEyLjVsMC0xNTEuMmMtMTIuNSA0LjYtMjYuMSA3LjItNDAuNSA3LjItOC4xIDAtMTUuOS0uOC0yMy41LTIuNGwwIDY2LjQtMzAuMiAwLTEzNy41LTEzNy41YzIuOS0zLjYgNS41LTcuNCA3LjYtMTEuNSAxMS42IDIyIDM0LjcgMzcgNjEuMyAzNyAyNi44IDAgNDkuOC0xNS4xIDYxLjQtMzcuMSAxMS40IDIyLjEgMzQuNSAzNy4xIDYwLjggMzcuMSA0NS42IDAgNzguNC00My43IDY1LjYtODcuNUw1MTMuOCA3Mi4zQzUwNi44IDQ4LjQgNDg0LjkgMzIgNDYwIDMyTDExNiAzMmMtNS41IDAtMTAuOCAuOC0xNS45IDIuM0w0MS0yNC45ek0xNTEuNSAyMjEuM0w0OC43IDExOC42IDM4LjkgMTUyLjVjLTEyLjggNDMuNyAyMCA4Ny41IDY1LjYgODcuNSAxOC4xIDAgMzQuNy03LjEgNDctMTguN3pNNDEwLjIgNDgwbC0xMjgtMTI4LTE1NC4yIDAgMC02Ni40Yy03LjYgMS42LTE1LjUgMi40LTIzLjUgMi40LTE0LjQgMC0yOC0yLjYtNDAuNS03LjJMNjQgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI5OC4yIDB6Il19LGNOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJjZW50IixpY29uOls0NDgsNTEyLFs2MjEwMSw2Mjc4NSwicGVyY2VudGFnZSJdLCIyNSIsIk0xOTIgMTI4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDQ4IDM4NGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6TTQzOC42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTM4NCAzODRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMzg0LTM4NHoiXX0sUHhyPWNOZSxkTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS16aXBwZXIiLGljb246WzM4NCw1MTIsWyJmaWxlLWFyY2hpdmUiXSwiZjFjNiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA0OEM3NC43IDQ4IDY0IDU4LjcgNjQgNzJ6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTY0IDcybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sTnhyPWROZSxPeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzcGxheSIsaWNvbjpbNTEyLDUxMixbXSwiZTE2MyIsIk00NDggOTZsMCAyNTYtMzg0IDAgMC0yNTYgMzg0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sdU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imljb25zIixpY29uOls1MTIsNTEyLFsiaGVhcnQtbXVzaWMtY2FtZXJhLWJvbHQiXSwiZjg2ZCIsIk0xNzQuOSAyNzJjMTAuNyAwIDIwLjcgNS4zIDI2LjYgMTQuMmwxMS44IDE3LjggMjYuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNTJjMC0yNi41IDIxLjUtNDggNDgtNDhsMjYuNyAwIDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJsNjEuNyAwem0yNzguNi0xMmM1LjYtNC45IDEzLjktNS4zIDE5LjktLjlzOC4zIDEyLjQgNS4zIDE5LjNMNDQwLjMgMzY4IDQ5NiAzNjhjNi43IDAgMTIuNiA0LjEgMTUgMTAuNHMuNiAxMy4zLTQuNCAxNy43bC0xMjggMTEyYy01LjYgNC45LTEzLjkgNS4zLTE5LjkgLjlzLTguMy0xMi40LTUuMy0xOS4zbDM4LjUtODkuNy01NS44IDBjLTYuNyAwLTEyLjYtNC4xLTE1LTEwLjRzLS42LTEzLjMgNC40LTE3LjdsMTI4LTExMnpNMTQ0IDM2MGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6TTQ4My44IC40YzYuNS0xLjEgMTMuMSAuNCAxOC41IDQuNCA2LjEgNC41IDkuNyAxMS43IDkuNyAxOS4ybDAgMTUyLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42bDAtNDkuMy0xMTIgMzMuNiAwIDExMC4yLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42TDMwNCA3MmMwLTEwLjYgNy0yMCAxNy4xLTIzbDE2MC00OCAyLjctLjZ6TTE4OC45IDBDMjI2IDAgMjU2IDMwIDI1NiA2Ny4xbDAgNi4xYzAgNTYuMS03NS4yIDExMi4xLTExMC4zIDEzNS4zLTEwLjggNy4xLTI0LjYgNy4xLTM1LjQgMC0zNS4xLTIzLjEtMTEwLjMtNzkuMi0xMTAuMy0xMzUuM2wwLTYuMUMwIDMwIDMwIDAgNjcuMSAwIDg4LjIgMCAxMDggOS45IDEyMC43IDI2LjhsNy4zIDkuOCA3LjMtOS44QzE0OCA5LjkgMTY3LjggMCAxODguOSAweiJdfSxSeHI9dU5lLEZ4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci12ZXJ0aWNhbCIsaWNvbjpbMjU2LDUxMixbXSwiZjU0OCIsIk0wIDE2QzAtMTAuNSAyMS41LTMyIDQ4LTMybDE2MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjQtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTQ0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE2eiJdfSxwTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uLWRvdCIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQtYWx0Il0sImY1YTAiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek01MTIgMjI0Yy02Ni4zIDAtMTIwIDUyLjgtMTIwIDExNy45IDAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOXpNNDcyIDM0NGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxCeHI9cE5lLGZOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jcmFjayIsaWNvbjpbNTEyLDUxMixbMTI4MTQ4LCJoZWFydC1icm9rZW4iXSwiZjdhOSIsIk0xMzMuMSAzMmMxNy4zIDAgMzQuMiAzLjQgNDkuOSA5LjdsNTQuOCA4NS4yLTc1LjQgNzUuNGMtMS41IDEuNS0yLjQgMy42LTIuMyA1LjhzMSA0LjIgMi42IDUuN2wxMTIgMTA0YzIuOSAyLjcgNy40IDIuOSAxMC41IC4zczMuOC03IDEuNy0xMC40bC02MC40LTk4LjEgOTAuNy03NS42YzIuNi0yLjEgMy41LTUuNyAyLjQtOC44TDI5Ni40IDYwLjZDMzE5LjYgNDIuMyAzNDguNiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxMTIuMi0xMzkuOSAyNDIuNS0yMTIuOSAyOTguMi0xMi40IDkuNC0yNy42IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNi00My4xLTE0LjFDMTM5LjkgNDEwLjIgMCAyNzkuOSAwIDE2Ny43bDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyeiJdfSxIeHI9Zk5lLHF4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3ciLGljb246WzY0MCw1MTIsWzEyODAwNF0sImY2YzgiLCJNOTYgMjI0bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjEgMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDE0NCA2NEM3Ny43IDY0IDI0IDExNy43IDI0IDE4NGwwIDU0QzkuNCAyNDkuOCAwIDI2Ny44IDAgMjg4bDAgMTcuNmMwIDggNi40IDE0LjQgMTQuNCAxNC40IDMxLjggMCA1Ny42LTI1LjggNTcuNi01Ny42TDcyIDE4NGMwLTI0LjMgMTIuMS00NS44IDMwLjUtNTguOS00LjIgMTAuOC02LjUgMjIuNi02LjUgMzQuOWwwIDY0ek01NjAgMzM2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTE2Ni42IDE2Ni42Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMTc4LjcgMGMxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNiAwIDYtMi40IDExLjgtNi42IDE2bC0yMy40IDIzLjRDMzMyLjIgMjExLjggMzAyLjcgMjI0IDI3MiAyMjRzLTYwLjItMTIuMi04MS45LTMzLjlsLTIzLjQtMjMuNHoiXX0sR189e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnNzIixpY29uOls0NDgsNTEyLFsiZmVlZCJdLCJmMDllIiwiTTAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTYgMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAxNjBjMTU5LjEgMCAyODggMTI4LjkgMjg4IDI4OCAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LFZ4cj1HXyxZXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjgyNjksInNlYXJjaCJdLCJmMDAyIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6Il19LGp4cj1ZXyxVeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbiIsaWNvbjpbNjQwLDUxMixbXSwiZjZjMyIsIk00ODAgMGMxNC42IDAgMjguOCAxLjYgNDIuNSA0LjcgNy40IDEuNyAxMyA3LjggMTMuOSAxNS40cy0zIDE0LjktOS44IDE4LjNjLTQ1LjQgMjIuNi03Ni42IDY5LjUtNzYuNiAxMjMuNiAwIDc2LjIgNjEuOCAxMzggMTM4IDEzOCAzLjcgMCA3LjQtLjEgMTEuMS0uNCA3LjYtLjYgMTQuNyAzLjYgMTcuOCAxMC42czEuNSAxNS4xLTMuOSAyMC40Yy0yNiAyNS01OS4xIDQyLjctOTUuOSA0OS45LTExLjEtMjUuMy0zMC4yLTQ2LjMtNTQuMS01OS44LTcuNi02My40LTYxLjYtMTEyLjYtMTI3LjEtMTEyLjYtMTEuMiAwLTIyLjEgMS41LTMyLjUgNC4yLTQuOC00LjItOS45LTguMi0xNS4yLTExLjgtLjEtMi44LS4yLTUuNi0uMi04LjQgMC0xMDYgODYtMTkyIDE5Mi0xOTJ6bS0uMSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjcxLjkgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04NyA4MC05NC42LS40LTUyLjggNDIuOS05Ny4zIDk2LTk3LjMgMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjQgMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjQgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjktLjYgMTEuNy0xLjkgMTcuMiAzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43eiJdfSx2dWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94ZXMtc3RhY2tlZCIsaWNvbjpbNTEyLDUxMixbNjI2MjUsImJveGVzIiwiYm94ZXMtYWx0Il0sImY0NjgiLCJNMjI0IDBsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgNS41LS43IDEwLjktMiAxNmwtMjUyIDBjLTEuMy01LjEtMi0xMC41LTItMTZsMC0xMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMHptOTYgNTEyYy0xMS4yIDAtMjEuOC0yLjktMzEtOCA5LjUtMTYuNSAxNS0zNS42IDE1LTU2bDAtMTI4YzAtMjAuNC01LjUtMzkuNS0xNS01NiA5LjItNS4xIDE5LjctOCAzMS04bDMyIDAgMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMjggMHpNMCAzMjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDMyMHoiXX0sV3hyPXZ1ZSxHeHI9dnVlLFl4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWJyYW5jaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjEyNiIsIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuNyAxNzYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTc2IDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBTMCA0NzYuMiAwIDQzMmMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtMjA1LjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMzIgMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek04MCA0NTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxoTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuIixpY29uOls1MTIsNTEyLFsxMjg2ODMsImNhbmNlbCJdLCJmMDVlIiwiTTM2Ny4yIDQxMi41TDk5LjUgMTQ0LjhjLTIyLjQgMzEuNC0zNS41IDY5LjgtMzUuNSAxMTEuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0MS41IDAgNzkuOS0xMy4xIDExMS4yLTM1LjV6bTQ1LjMtNDUuM2MyMi40LTMxLjQgMzUuNS02OS44IDM1LjUtMTExLjIgMC0xMDYtODYtMTkyLTE5Mi0xOTItNDEuNSAwLTc5LjkgMTMuMS0xMTEuMiAzNS41TDQxMi41IDM2Ny4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxLeHI9aE5lLFp4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqdWctZGV0ZXJnZW50IixpY29uOlszODQsNTEyLFtdLCJlNTE5IiwiTTk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggOTZDNzQuNyA5NiA2NCA4NS4zIDY0IDcyUzc0LjcgNDggODggNDhsOCAwIDAtMjR6TTAgMjU2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDEyOCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZ6bTI1NiAwbDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxtTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHkiLGljb246WzUxMiw1MTIsWzYxNzE0LCJtYWlsLXJlcGx5Il0sImYzZTUiLCJNMjA0LjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjEtMi41IDEuNC01LjMgMS45LTguMSAxLjktMTAuOSAwLTE5LjctOC45LTE5LjctMTkuNyAwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNSA5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjcgMC01My00My05Ni05Ni05NmwtOTYgMCAwIDgwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45eiJdfSxReHI9bU5lLFh4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4tcGxhbnQtd2lsdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU3YSIsIk0xNjAgMGMtNS41IDAtMTAuNiAyLjgtMTMuNSA3LjRsLTEuMSAyLjEtMjQuOCA1NS40LTU2LjctMjEuN2MtNS45LTIuMi0xMi41LS44LTE3IDMuN1M0MSA1OCA0My4yIDYzLjlsMjEuNyA1Ni43LTU1LjQgMjQuOEMzLjcgMTQ4IDAgMTUzLjcgMCAxNjBzMy43IDEyIDkuNSAxNC42bDU1LjQgMjQuOC0yMS43IDU2LjdjLTIuMiA1LjktLjggMTIuNSAzLjcgMTdzMTEuMSA1LjkgMTcgMy43bDU2LjctMjEuNyAyNC44IDU1LjRjMi42IDUuOCA4LjMgOS41IDE0LjYgOS41czEyLTMuNyAxNC42LTkuNWwyNC44LTU1LjQgNTYuOCAyMS43YzUuOSAyLjIgMTIuNSAuOCAxNy0zLjdzNS45LTExLjEgMy43LTE3bC0yMS43LTU2LjcgNTUuNC0yNC44YzUuOC0yLjYgOS41LTguMyA5LjUtMTQuNnMtMy43LTEyLTkuNS0xNC42bC01NS40LTI0LjggMjEuNy01Ni43IC43LTIuMmMxLjItNS4zLS40LTEwLjktNC4zLTE0LjhzLTkuNS01LjUtMTQuOC00LjNsLTIuMiAuNy01Ni44IDIxLjctMjQuOC01NS40QzE3MiAzLjcgMTY2LjMgMCAxNjAgMHptMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzc2IDE2bDAgNTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtNTMuNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDIyLjdjLTkuOC00LjMtMjAuNi02LjctMzItNi43LTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjEuNGMtMTQuOCA3LjYtMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtMjEuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2LTQyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMDQgMCAwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxKeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaXVtIixpY29uOls1NzYsNTEyLFtdLCJlMDVhIiwiTTQwOCAxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMzNjAgMi43IDM2MCAxNmwwIDIzLjRjLTEzLjkgNS4zLTI2LjkgMTMuNS0zOC4yIDI0LjVMMzA1IDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOC0zMC4xIDMwLjEtMTYuOC0xNi44Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOGMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDE3NyAxNzVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMSAxMS4zLTE5LjIgMjQuMy0yNC41IDM4LjJMNDggMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2LjMgMGMxLjMgMTguMyA3LjEgMzYuNCAxNy40IDUyLjRMNzEgNDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTAuNi0xMC42YzE2IDEwLjMgMzQuMSAxNi4xIDUyLjQgMTcuNGwwIDE2LjNjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIzLjRjMTMuOS01LjMgMjYuOS0xMy41IDM4LjItMjQuNUwyNzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44IDMwLjEtMzAuMSAxNi44IDE2LjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjhjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM5OSAzMzdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMS0xMS4zIDE5LjItMjQuMyAyNC41LTM4LjJsMjMuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNi4zIDBjLTEuMy0xOC4zLTcuMS0zNi40LTE3LjQtNTIuNEw1MDUgNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NjAuNCA0OS43Yy0xNi0xMC4zLTM0LjEtMTYuMS01Mi40LTE3LjRMNDA4IDE2ek0xNjAgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTI3MiAyNDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxldnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjb3JkLXZpbnlsIixpY29uOls1MTIsNTEyLFtdLCJmOGQ5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTExMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGdOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDIuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNTIgNTAuN0MzNDAgMzguNyAzMjMuNyAzMiAzMDYuNyAzMkw2NCAzMnptMzIgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTIyNCAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LHR2cj1nTmUscnZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldHMtcG9ydGFibGUiLGljb246WzUxMiw1MTIsW10sImU1ODQiLCJNNjQgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNkMwIDI4LjcgMjguNyAwIDY0IDB6TTAgMTI4bDIyNCAwIDAgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjggMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1MDEuMyAwIDQ4OEwwIDEyOHpNMTI4IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzUyIDBsOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTIyNCAwIDAtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTI4OCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2MHpNNDE2IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sYXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im8iLGljb246WzQ0OCw1MTIsWzExMV0sIjRmIiwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZhMjI0IDIyNCAwIDEgMSAtNDQ4IDAgMjI0IDIyNCAwIDEgMSA0NDggMHoiXX0saXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGV0dGUiLGljb246WzUxMiw1MTIsWzEyNzkxMl0sImY1M2YiLCJNNTEyIDI1NmMwIC45IDAgMS44IDAgMi43LS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDMuNCAuNCA2LjcgMSA5LjkgMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOSA2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MiAwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjItMy41IC4xLTcgLjItMTAuNiAuMi0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2UzExNC42IDAgMjU2IDAgNTEyIDExNC42IDUxMiAyNTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI4OCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHN2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NV0sImYwOWMiLCJNMTI4IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0IDMxLjcgMCA1OCAyMyA2My4xIDUzLjMgMi45IDE3LjQgMTkuNCAyOS4yIDM2LjkgMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi45QzMwOC4xIDE0LjEgMjU1LjUtMzIgMTkyLTMyIDEyMS4zLTMyIDY0IDI1LjMgNjQgOTZsMCA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE5MiAwIDAtNjR6Il19LGJOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItbGlzdGVuIixpY29uOls1MTIsNTEyLFsiYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zIl0sImYyYTIiLCJNMzc5LjYgLjNjLTguOSAxLjItMTcuMiA2LjItMjIuNCAxNC4xLTYuOCAxMC40LTcgMjQuMS0uNCAzNC42IDUuNiA4LjkgMTUuNSAxMi43IDIzLjggMTguNSA3LjUgNS4yIDE3LjYgMTMuMiAyNy43IDI0LjIgMjAgMjEuNyAzOS41IDU0LjMgMzkuNSAxMDAuMyAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNjYtMjguNS0xMTMuNC01Ni41LTE0My43LTEzLjktMTUuMS0yNy44LTI2LjEtMzguMy0zMy4zLTExLTcuNi0yMy41LTE2LjYtMzcuNi0xNC43ek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnpNMCA0ODBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYwLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNODYuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6TTI0MCAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LG52cj1iTmUsb3ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtcHVsbC1yZXF1ZXN0IixpY29uOls1MTIsNTEyLFtdLCJlMTNjIiwiTTMyOCAyNGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTMjkzLjkgLjIgMjg3IDdMMjMxIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NiA1NmM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyOCAxNDUuNyAzMjggMTM2bDAtMjQgMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIxNC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM0w0NDggMTQ0YzAtNTMtNDMtOTYtOTYtOTZsLTI0IDAgMC0yNHpNNzIgODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNTYgNzMuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzE2IDM1LjggMTYgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zYy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTIwNS4zek03MiA0MzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMzQ0LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sbHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtleSIsaWNvbjpbNTEyLDUxMixbMTI4MjczXSwiZjA4NCIsIk0zMzYgMzUyYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2UzQzMy4yIDAgMzM2IDAgMTYwIDc4LjggMTYwIDE3NmMwIDE4LjcgMi45IDM2LjggOC4zIDUzLjdMNyAzOTFjLTQuNSA0LjUtNyAxMC42LTcgMTdsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjNi40IDAgMTIuNS0yLjUgMTctN2wzMy4zLTMzLjNjMTYuOSA1LjQgMzUgOC4zIDUzLjcgOC4zek0zNzYgOTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxjdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwiLGljb246WzUxMiw1MTIsWzEyODEyOF0sImY1NGMiLCJNNDE2IDQyNy40YzU4LjUtNDQgOTYtMTExLjYgOTYtMTg3LjQgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MFMwIDEwNy41IDAgMjQwYzAgNzUuOCAzNy41IDE0My40IDk2IDE4Ny40TDk2IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM2LjZ6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTI1Ni02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0seE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXVwIixpY29uOlszODQsNTEyLFs5ODk2LCJtYXJzLXN0cm9rZS12Il0sImYyMmEiLCJNMTkyIDI1NmExMTIgMTEyIDAgMSAwIDAgMjI0IDExMiAxMTIgMCAxIDAgMC0yMjR6TTE2IDM2OGMwLTg2LjMgNjIuMS0xNTguMSAxNDQuMS0xNzMuMS0uMS0uOS0uMS0xLjktLjEtMi45bDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjEuNC0yOCAyMi40Yy0xMy44IDExLTMzLjkgOC44LTQ1LTVzLTguOC0zMy45IDUtNDVsODAtNjRjMTEuNy05LjMgMjguMy05LjMgNDAgMGw4MCA2NGMxMy44IDExIDE2IDMxLjIgNSA0NXMtMzEuMiAxNi00NSA1bC0yOC0yMi40IDAgNjEuNCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxIDAgMS45LS4xIDIuOSA4MiAxNSAxNDQuMSA4Ni44IDE0NC4xIDE3My4xIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzE2IDQ2NS4yIDE2IDM2OHoiXX0sZHZyPXhOZSx2TmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1mbGFtZS1zaW1wbGUiLGljb246WzM4NCw1MTIsWyJidXJuIl0sImY0NmEiLCJNMzcyLjUgMjU2LjVsLS43LTEuOUMzMzcuOCAxNjAuOCAyODIgNzYuNSAyMDkuMSA4LjVsLTMuMy0zQzIwMi4xIDIgMTk3LjEgMCAxOTIgMHMtMTAuMSAyLTEzLjggNS41bC0zLjMgM0MxMDIgNzYuNSA0Ni4yIDE2MC44IDEyLjIgMjU0LjZsLS43IDEuOUMzLjkgMjc3LjMgMCAyOTkuNCAwIDMyMS42IDAgNDI2LjcgODYuOCA1MTIgMTkyIDUxMnMxOTItODUuMyAxOTItMTkwLjRjMC0yMi4yLTMuOS00NC4yLTExLjUtNjUuMXptLTkwLjggNDkuNWM0LjEgOS4zIDYuMiAxOS40IDYuMiAyOS41IDAgNTMtNDMgOTYuNS05NiA5Ni41cy05Ni00My41LTk2LTk2LjVjMC0xMC4xIDIuMS0yMC4zIDYuMi0yOS41bDEuOS00LjNjMTUuOC0zNS40IDM3LjktNjcuNyA2NS4zLTk1LjFsOC45LTguOWMzLjYtMy42IDguNS01LjYgMTMuNi01LjZzMTAgMiAxMy42IDUuNmw4LjkgOC45YzI3LjQgMjcuNCA0OS42IDU5LjcgNjUuMyA5NS4xbDEuOSA0LjN6Il19LHV2cj12TmUscHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUiLGljb246WzQ0OCw1MTIsWzEyNzc5NF0sImYxYmIiLCJNMjI0LTMyYzcgMCAxMy43IDMuMSAxOC4zIDguNWwxMzYgMTYwYzYuMSA3LjEgNy40IDE3LjEgMy41IDI1LjZTMzY5LjQgMTc2IDM2MCAxNzZsLTI0LjkgMCA3NS4yIDg4LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MDEuNCAzMDQgMzkyIDMwNGwtMzguNSAwIDg4LjggMTA0LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MzMuNCA0NDggNDI0IDQ0OGwtMTY4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTE2OCAwYy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDk0LjUgMzA0IDU2IDMwNGMtOS40IDAtMTcuOS01LjQtMjEuOC0xMy45cy0yLjYtMTguNSAzLjUtMjUuNkwxMTIuOSAxNzYgODggMTc2Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42bDEzNi0xNjBDMjEwLjMtMjguOSAyMTctMzIgMjI0LTMyeiJdfSxmdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21vZyIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZiIsIk0xNzYgMjg4Qzk2LjUgMjg4IDMyIDIyMy41IDMyIDE0NFM5Ni41IDAgMTc2IDBjMjcuMiAwIDUyLjYgNy41IDc0LjMgMjAuNiAyMC4xLTEzIDQ0LTIwLjYgNjkuNy0yMC42IDQ3LjQgMCA4OC43IDI1LjcgMTEwLjkgNjRsMS4xIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCA2MC4zLTQ3LjYgMTA5LjQtMTA3LjIgMTExLjktMjIuNiAyMC01Mi4zIDMyLjEtODQuOCAzMi4xLTMyLjUgMC02Mi4xLTEyLjEtODQuNy0zMkwxNzYgMjg4ek01MTIgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0TDI0IDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpNODggNDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTE3NiAwbDI4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0saHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InMiLGljb246WzMyMCw1MTIsWzExNV0sIjUzIiwiTTAgMTU3LjVDMCA4OC4yIDU2LjIgMzIgMTI1LjUgMzJMMjcyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDEyNS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MUwyMTAuMSAyMzBDMjcyLjkgMjM3LjkgMzIwIDI5MS4yIDMyMCAzNTQuNSAzMjAgNDIzLjggMjYzLjggNDgwIDE5NC41IDQ4MEw0OCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC0zMS0yMy4xLTU3LjItNTMuOS02MUwxMDkuOSAyODJDNDcuMSAyNzQuMSAwIDIyMC44IDAgMTU3LjV6Il19LG12cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZWRpIixpY29uOls1NzYsNTEyLFtdLCJmNjY5IiwiTTI0NiAzMTUuN2wtMjEuMi0zMS45Yy0yLjEtMy4yLTEuNy03LjQgMS0xMC4xczYuOS0zLjEgMTAuMS0xbDI5LjUgMTkuN2MyLjEgMS40IDQuOS0uMSA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41YzU5LjgtMTAuOCAxMDUuMS02My4xIDEwNS4xLTEyNiAwLTM3LTE1LjctNzAuNC00MC44LTkzLjctNy02LjUtNi41LTE4LjYgMS0yNC40IDM0LTI2LjMgNTUuOC02Ny41IDU1LjgtMTEzLjkgMC0xNi44LTIuOS0zMy04LjItNDgtNC42LTEzIDEwLjItMzAgMjEuNC0yMiA1My41IDM4IDkyLjcgOTQuOCAxMDcuOCAxNjAuNyAuNSAyLjEtLjIgNC4zLTEuNyA1LjlsLTI4LjQgMjguNGMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDI2IDBjMy40IDAgNi4yIDIuNiA2LjMgNiAuMSAzLjMgLjIgNi42IC4yIDEwIDAgMTcuNS0xLjcgMzQuNy00LjggNTEuMy0uMiAxLjItLjkgMi40LTEuNyAzLjNsLTQ2LjUgNDYuNWMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDE0LjYgMGM0LjYgMCA3LjcgNC44IDUuNyA5LTQ0LjUgODkuNS0xMzYuOSAxNTEtMjQzLjcgMTUxUzg4LjggNDUwLjUgNDQuMyAzNjFjLTIuMS00LjIgMS05IDUuNy05bDE0LjYgMGM1LjcgMCA4LjYtNi45IDQuNS0xMC45TDIyLjYgMjk0LjZjLS45LS45LTEuNS0yLTEuNy0zLjMtMy4yLTE2LjYtNC44LTMzLjgtNC44LTUxLjMgMC0zLjMgLjEtNi43IC4yLTEwIC4xLTMuNCAyLjktNiA2LjMtNmwyNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjQuNiAxODQuNmMtMS41LTEuNS0yLjItMy44LTEuNy01LjkgMTUuMi02NiA1NC4zLTEyMi44IDEwNy44LTE2MC43IDExLjMtOCAyNiA4LjkgMjEuNCAyMi01LjMgMTUtOC4yIDMxLjItOC4yIDQ4IDAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOSA3LjUgNS44IDggMTcuOSAxIDI0LjQtMjUuMSAyMy40LTQwLjggNTYuNy00MC44IDkzLjcgMCA2Mi45IDQ1LjQgMTE1LjIgMTA1LjEgMTI2bDIuMS02MS41Yy4xLTIuNi0yLjgtNC4yLTUtMi44bC0yNi4zIDE3LjZjLTMuMiAyLjEtNy40IDEuNy0xMC4xLTFzLTMuMS02LjktMS0xMC4xTDI0NiAzNTYuM2MxLjMtMS45IC4yLTQuNS0yLTQuOWwtMzcuNi03LjVjLTMuNy0uNy02LjQtNC02LjQtNy44czIuNy03LjEgNi40LTcuOGwzNy42LTcuNWMyLjItLjQgMy4zLTMgMi00Ljl6Il19LHlOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGlraW5nIixpY29uOls0NDgsNTEyLFsiaGlraW5nIl0sImY2ZWMiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjggMTczLjZjMC0zNCAyNy42LTYxLjYgNjEuNi02MS42IDIwLjMgMCAzOS43IDguMSA1NCAyMi40bDQ4LjIgNDguMmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzcuNSAwYzUuOCAwIDExLjMgMS42IDE2IDQuM2wwLTc2LjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI2OC4zYy00LjcgMi43LTEwLjIgNC4zLTE2IDQuM2wtMzcuNSAwYy0yNS41IDAtNDkuOS0xMC4xLTY3LjktMjguMWwtNi42LTYuNiAwIDEwOS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtMTAxem0tNC44IDIwMy43YzIuMyAyLjMgNC43IDQuNCA3LjEgNi41bDQ0LjkgMzguNWMtMy42IDguNC04LjUgMTYuMy0xNC40IDIzLjRMODguNiA1MzIuNWMtMTEuMyAxMy42LTMxLjUgMTUuNC00NS4xIDQuMXMtMTUuNC0zMS41LTQuMS00NS4xbDcyLjMtODYuN2MyLjYtMy4xIDQuNS02LjYgNS44LTEwLjRsNS43LTE3LjF6TTAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0IDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2eiJdfSxndnI9eU5lLGJ2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtdG8tbGluZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMzIgMHptODYuNiAxMzcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDY0IDIzNy4zIDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHptMjU2IDBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0Mi43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LHh2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MV0sImYyMjciLCJNMjg4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy05NSA5NWMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzAgNDAxLjIgMCAzMDQgNzguOCAxMjggMTc2IDEyOGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDk1LTk1LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE3NiA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0xNjAgNjRjLTYuOCAwLTEzLjQtLjQtMjAtMS4xIDIzLjYtMTguOSA0My4zLTQyLjUgNTcuNi02OS40IDQzLjMtMTUuNSA3NC40LTU2LjkgNzQuNC0xMDUuNSAwLTI1LjItOC4zLTQ4LjUtMjIuNC02Ny4yIDcuMSAyLjEgMTQuNiAzLjIgMjIuNCAzLjIgMTcgMCAzMi43LTUuMyA0NS43LTE0LjMgMTEuNyAyMy42IDE4LjMgNTAuMiAxOC4zIDc4LjMgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZ6TTUyOCAxNTcuM0w1MjggMzJjMC0xMS40LTIuNC0yMi4yLTYuNy0zMkw2MDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctNDggNDh6Il19LHZ2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aGVybW9tZXRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MSIsIk05NiAzODIuMWwwLTg4LjhjMC0xNC45IDUuOS0yOS4xIDE2LjQtMzkuNmwyMS43LTIxLjcgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA3LjgtNy44YzE5LjQtMTkuNCA0NS42LTMwLjIgNzMtMzAuMiA1NyAwIDEwMy4yIDQ2LjIgMTAzLjIgMTAzLjIgMCAyNy40LTEwLjkgNTMuNi0zMC4yIDczTDI1OC4zIDM5OS42Yy0xMC41IDEwLjUtMjQuNyAxNi40LTM5LjYgMTYuNGwtODguOCAwLTg5IDg5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMFMtMi4zIDQ4MC40IDcgNDcxbDg5LTg5eiJdfSx3TmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnRicnVzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mzk2LCJwYWludC1icnVzaCJdLCJmMWZjIiwiTTQ4MC41IDEwLjNMMjU5LjEgMTU4Yy0yOS4xIDE5LjQtNDcuNiA1MC45LTUwLjYgODUuMyA2Mi4zIDEyLjggMTExLjQgNjEuOSAxMjQuMyAxMjQuMyAzNC41LTMgNjUuOS0yMS41IDg1LjMtNTAuNkw1NjUuNyA5NS41YzYuNy0xMC4xIDEwLjMtMjEuOSAxMC4zLTM0LjEgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjQtMTIuMSAwLTI0IDMuNi0zNC4xIDEwLjN6TTI4OCA0MDBjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTNjQgMzM4LjEgNjQgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42IDEuOCAxNy41LTEwLjIgMzYuNC0yNy44IDM2LjRMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyeiJdfSx5dnI9d05lLHd2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXV0ZXIiLGljb246WzM4NCw1MTIsWzk5MDZdLCJmMjJjIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMSAwLTEuOS0uMS0yLjl6Il19LGtOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGhvbmUtZmxpcCIsaWNvbjpbNDQ4LDUxMixbInBob25lLXNxdWFyZS1hbHQiXSwiZjg3YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMzIgOTYuN2wyLjggLjhjMzIuMyA4LjggNTkuOSA0MC4xIDUxLjggNzguMi0xOC41IDg3LjUtODcuNCAxNTYuMy0xNzQuOSAxNzQuOS0zOC4xIDguMS02OS40LTE5LjUtNzguMi01MS44bC0uOC0yLjhjLTIuNy05LjggMi40LTIwLjEgMTEuOC0yNGw0OC43LTIwLjNjOC4zLTMuNCAxNy44LTEuMSAyMy41IDUuOWwxOS4zIDIzLjZjMzUuMS0xNy40IDYzLjQtNDYuNiA3OS42LTgyLjRsLTIyLjEtMThjLTYuOS01LjctOS4zLTE1LjItNS45LTIzLjVsMjAuMy00OC43YzMuOS05LjQgMTQuMi0xNC40IDI0LTExLjh6Il19LGt2cj1rTmUsU05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTAgMjU2YzAgMTA0LjQgNjIuNSAxOTQuMiAxNTIuMiAyMzQuMS01LjMtMTMtOC4yLTI3LjItOC4yLTQyLjFsMC02MS43Yy0xNi45LTE2LjUtMzAuMS0zNi43LTM4LjMtNTkuMy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTguMyAyMi42LTIxLjUgNDIuOC0zOC4zIDU5LjNsMCA2MS43YzAgMTQuOS0yLjkgMjkuMS04LjIgNDIuMSA4OS43LTM5LjggMTUyLjItMTI5LjYgMTUyLjItMjM0LjEgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMwIDExNC42IDAgMjU2em0xMjUuOC05MS43Yy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xczEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM3ptMjYzLjYtMjEuMWM0LjUgNi44IDMuMSAxNS45LTMuMSAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjV6TTMyMCA0NDhsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxTdnI9U05lLE12cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LWRvbGxhciIsaWNvbjpbNTEyLDUxMixbXSwiZjY1MSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHptNC0zNTJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LEN2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaXBwbyIsaWNvbjpbNjQwLDUxMixbMTI5NDM1XSwiZjZlZCIsIk00MDcgNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTcuMiAxNy4yYzEuOS0uMSAzLjktLjIgNS44LS4ybDMyIDBjMTEuMiAwIDIxLjkgMi4zIDMxLjYgNi41TDU0MyA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNTY0IDEwMS45YzcuNiAxMi4yIDEyIDI2LjcgMTIgNDIuMSAwIDEwLjIgNy40IDE4LjggMTYuNyAyMyAyNy45IDEyLjUgNDcuMyA0MC41IDQ3LjMgNzMgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYtNjQgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTcuNmMtMTEuOC0yLjQtMjIuNy03LjQtMzItMTQuNC0xLjUtMS4xLTIuOS0yLjMtNC4zLTMuNS0xNy0xNC43LTI3LjctMzYuNC0yNy43LTYwLjUgMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZjMCA0NC43IDI2LjIgODMuMiA2NCAxMDEuMmwwIDEwLjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc2Yy0xOS44IDcuNy00MS40IDEyLTY0IDEycy00NC4yLTQuMy02NC0xMmwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExOC45LTE4LjEgNDAuN2MtNS40IDEyLjEtMTkuNiAxNy42LTMxLjcgMTIuMlMtMy4zIDM2Mi40IDIuMSAzNTAuM0wyNCAzMDAuOWM1LjMtMTEuOSA4LTI0LjcgOC0zNy43IDAtMTA3LjUgODUuMi0xOTUuMiAxOTEuOC0xOTkuMWwuMi0uMSA2NCAwYzQxLjcgMCA4My40IDEyLjEgMTE3LjIgMjUuNyAxLjctMS44IDMuNS0zLjYgNS4zLTUuMkw0MDcgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em03MyAxODVhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptODggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek00ODAgMTQ0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnoiXX0senZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtZm9vZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRjNiIsIk0wIDE3NmMwLTM1LjMgMjguNy02NCA2NC02NCAuNSAwIDEuMSAwIDEuNiAwIDcuNC0zNi41IDM5LjctNjQgNzguNC02NCAxNSAwIDI5IDQuMSA0MC45IDExLjIgMTMuMy0yNS43IDQwLjEtNDMuMiA3MS4xLTQzLjJzNTcuOCAxNy42IDcxLjEgNDMuMmMxMi03LjEgMjYtMTEuMiA0MC45LTExLjIgMzguNyAwIDcxIDI3LjUgNzguNCA2NCAuNSAwIDEuMSAwIDEuNiAwIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMTEuNy0zLjEgMjIuNi04LjYgMzJMOC42IDIwOEMzLjEgMTk4LjYgMCAxODcuNyAwIDE3NnpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6Il19LF92cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtdmlydXMiLGljb246WzQ0OCw1MTIsW10sImU1NzgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMTYwIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTkyIDI0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFR2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zdW4tcmFpbiIsaWNvbjpbNjQwLDUxMixbMTI3NzgyXSwiZjc0MyIsIk0yNTQuOSA0NDguMmM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6bTEyMCAwYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnptMTIwIDBjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yek00NDguMyAxMjhjNDQuMiAwIDgwIDM1LjggODAgODAgMCA3LjUtMS4xIDE0LjctMyAyMS41IDI5LjggMTEuNiA1MSA0MC42IDUxIDc0LjUgMCA0NC4yLTM1LjggODAtODAgODBsLTE5MiAwLTguMi0uNGMtNDAuMy00LjEtNzEuOC0zOC4yLTcxLjgtNzkuNiAwLTM5IDI3LjktNzEuNSA2NC45LTc4LjUtLjUtMy4xLS45LTYuMi0uOS05LjUgMC0zMC45IDI1LjEtNTYgNTYtNTYgMTIuNCAwIDIzLjkgNC4xIDMzLjIgMTAuOSAxMy40LTI1LjUgNDAuMS00Mi45IDcwLjgtNDIuOXpNMjQwLjMtMzEuOGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMWw0Ny4zIDcwLjQgODMuMy0xNi4zYzUuMi0xIDEwLjYgLjcgMTQuMyA0LjQgMy44IDMuOCA1LjQgOS4yIDQuNCAxNC40bC04LjYgNDMuOGMtMTEuOSA1LjUtMjIuOCAxMi45LTMyLjQgMjEuNi01LjctMS0xMS43LTEuNS0xNy43LTEuNS0xNC4zIDAtMjggMy00MC40IDguMi0xNi45LTE1LTM5LjItMjQuMi02My42LTI0LjItNTMgMC05NiA0My05NiA5NiAwIDMwLjkgMTQuNiA1OC4yIDM3LjIgNzUuOC0zLjQgMTEuNS01LjIgMjMuNi01LjIgMzYuMiAwIDEzLjIgMiAyNS45IDUuNyAzNy45bC0yLjQtMy41LTgzLjIgMTYuM2MtNS4yIDEtMTAuNi0uNy0xNC4zLTQuNC0zLjgtMy44LTUuNC05LjItNC40LTE0LjRsMTYuMy04My4zLTcwLjQtNDcuNGMtNC40LTMtNy4xLTgtNy4xLTEzLjMgMC01LjMgMi42LTEwLjMgNy0xMy4ybDcwLjQtNDcuNC0xNi4zLTgzLjItLjItMmMtLjMtNC42IDEuMy05LjEgNC42LTEyLjQgMy44LTMuOCA5LjItNS40IDE0LjQtNC40bDgzLjIgMTYuMyA0Ny4zLTcwLjQgMS4yLTEuNmMzLTMuNSA3LjQtNS41IDEyLjEtNS41em0wIDE3NS44YzguNiAwIDE2LjYgMi4zIDIzLjYgNi4yLTkuNyAxMS45LTE2LjkgMjUuOS0yMC43IDQxLjMtMTUgOC4xLTI4LjIgMTkuMi0zOC44IDMyLjMtNy41LTguNS0xMi4yLTE5LjYtMTIuMi0zMS44IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxNTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctcmlnaHQiXSwiZjE3OCIsIk01NjYuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDY2LjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0MzQuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxMdnI9TU5lLER2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy11biIsaWNvbjpbNTEyLDUxMixbXSwiZTRkOSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjcyLTExMiAwYy0yMC45IDAtMzkuNSAxMC4xLTUxLjIgMjUuNi04LTYtMTgtOS42LTI4LjgtOS42LTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQgNjQgMCAwIDQ4LTE0NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek00MjcuNCAzODAuNWM5LTIuMSAxOC4zIDIuMiAyMi41IDEwLjVsMjYuMSA1Mi4yIDAtNDMuM2MwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDEyOGMwIDkuMy02LjQgMTcuMy0xNS40IDE5LjVzLTE4LjMtMi4yLTIyLjUtMTAuNUw0NTIgNDg0LjcgNDUyIDUyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC05LjMgNi40LTE3LjMgMTUuNC0xOS41ek0zMjQgNDAwbDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHoiXX0sJHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWxvdyIsaWNvbjpbNTEyLDUxMixbXSwiZjc2YiIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjguN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI4LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LEF2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb29yLW9wZW4iLGljb246WzQ0OCw1MTIsW10sImY1MmIiLCJNMjg4IDY0bDY0IDAgMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NGwtOTYgMCAwIDAtMTYwIDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MTZ6TTE2MCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sRXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWxlZnQiLGljb246WzQ0OCw1MTIsW10sImYwMzYiLCJNMjg4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sQ05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYSIsaWNvbjpbNTEyLDUxMixbNjIyNTgsImNhbWVyYS1hbHQiXSwiZjAzMCIsIk0xNDkuMSA2NC44TDEzOC43IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNzQuNyAwLTEwLjQtMzEuMkMzNTYuNCA0NS4yIDMzOC4xIDMyIDMxNy40IDMyTDE5NC42IDMyYy0yMC43IDAtMzkgMTMuMi00NS41IDMyLjh6TTI1NiAxOTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LEl2cj1DTmUsUHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJheXMiLGljb246WzY0MCw1MTIsW10sImU1OTMiLCJNMzEtMzNDMjEuNy0yMy42IDIxLjctOC40IDMxIDFMODcgNTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDY1LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNNjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw1MTkgMjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEw2MDkgMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNNjUgNTQ1bDU2LTU2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzEgNTExYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6bTU0NCAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC01Ni01NmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHpNMzIwIDIwOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMCAzMmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOGMwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMjE2LTgwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNNDUxLjIgMjYwLjRDNDY5LjQgMjg2LjMgNDgwIDMxNy45IDQ4MCAzNTJsMCA4YzAgOC40LTEuNCAxNi41LTQuMSAyNGw3OC44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01My00My05Ni05Ni05Ni0xMCAwLTE5LjcgMS41LTI4LjggNC40em0tMjYyLjQgMGMtOS4xLTIuOS0xOC44LTQuNC0yOC44LTQuNC01MyAwLTk2IDQzLTk2IDk2bDAgMTAuN2MwIDExLjggOS42IDIxLjMgMjEuMyAyMS4zbDc4LjggMGMtMi43LTcuNS00LjEtMTUuNi00LjEtMjRsMC04YzAtMzQuMSAxMC42LTY1LjcgMjguOC05MS42ek0yMTYgMTYwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHoiXX0sTnZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhaW5ib3ciLGljb246WzY0MCw1MTIsWzEyNzc1Ml0sImY3NWIiLCJNMzIwIDk2QzE3OC42IDk2IDY0IDIxMC42IDY0IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDMzLjcgMCA0MTZsMC02NEMwIDE3NS4zIDE0My4zIDMyIDMyMCAzMlM2NDAgMTc1LjMgNjQwIDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRDNTc2IDIxMC42IDQ2MS40IDk2IDMyMCA5NnptMCAxMTJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDR6TTI4OCAzNTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxPdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2l0ZW1hcCIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOCIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04IDAgMCA2NCAxMjAgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjAgMCAwIDgwIDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTgwLTEyMCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMzkuOCAzMi4yLTcyIDcyLTcybDEyMCAwIDAtNjQtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0eiJdfSx6TmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTYgMC0yNC40LTMuNC00OC4xLTkuOC03MC41IDE4LjYtMzYuMS0yLjctODMuNi00Ni43LTkwLTQ2LjktNTguMy0xMTguOS05NS41LTE5OS41LTk1LjVTMTAzLjQgMzcuMyA1Ni41IDk1LjVjLTQ0IDYuNC02NS4zIDUzLjktNDYuNyA5MC02LjQgMjIuNC05LjggNDYtOS44IDcwLjUgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6bS0zMS42LTIzMWM1LjMtMTAuNyAyMC41LTEwLjcgMjUuOCAwbDIwLjkgNDIuNCA0Ni43IDYuOGMxMS44IDEuNyAxNi41IDE2LjIgOCAyNC41bC0zMy44IDMzIDggNDYuNmMyIDExLjctMTAuMyAyMC43LTIwLjkgMTUuMmwtNDEuOC0yMi00MS44IDIyYy0xMC41IDUuNS0yMi45LTMuNC0yMC45LTE1LjJsOC00Ni42LTMzLjgtMzNjLTguNS04LjMtMy44LTIyLjggOC0yNC41bDQ2LjctNi44IDIwLjktNDIuNHptLTE5OC4yIDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40YzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDB6Il19LFJ2cj16TmUsX05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtdXAiLGljb246WzM4NCw1MTIsWyJzb3J0LWFzYyJdLCJmMGRlIiwiTTMyIDIyNGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxNzguNSA5LjQgMTY5LjRsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzM2NC45IDIyNCAzNTIgMjI0TDMyIDIyNHoiXX0sRnZyPV9OZSxwcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllIixpY29uOls1NzYsNTEyLFsxMjgwNjVdLCJmMDZlIiwiTTI4OCAzMmMtODAuOCAwLTE0NS41IDM2LjgtMTkyLjYgODAuNi00Ni44IDQzLjUtNzguMSA5NS40LTkzIDEzMS4xLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNnMxNDUuNS0zNi44IDE5Mi42LTgwLjZjNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjZ6TTE0NCAyNTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQ0LTY0YzAgMzUuMy0yOC43IDY0LTY0IDY0LTExLjUgMC0yMi4zLTMtMzEuNy04LjQtMSAxMC45LS4xIDIyLjEgMi45IDMzLjIgMTMuNyA1MS4yIDY2LjQgODEuNiAxMTcuNiA2Ny45czgxLjYtNjYuNCA2Ny45LTExNy42Yy0xMi4yLTQ1LjctNTUuNS03NC44LTEwMS4xLTcwLjggNS4zIDkuMyA4LjQgMjAuMSA4LjQgMzEuN3oiXX0sZnBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWxlZnQiLGljb246WzI1Niw1MTIsW10sImYwZDkiLCJNNy43IDIzNS44Yy0xMC4zIDEyLjYtOS41IDMxLjEgMi4yIDQyLjhsMTI4IDEyOGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMjU2YzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC0xMjggMTI4LTIuMiAyLjR6Il19LFROZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcHBsZS13aG9sZSIsaWNvbjpbNDQ4LDUxMixbMTI3ODIyLDEyNzgyMywiYXBwbGUtYWx0Il0sImY1ZDEiLCJNMjI0IDExMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODBsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYgMHpNMCAyODhjMC03Ni4zIDM1LjctMTYwIDExMi0xNjAgMjcuMyAwIDU5LjcgMTAuMyA4Mi43IDE5LjMgMTguOCA3LjMgMzkuOSA3LjMgNTguNyAwIDIyLjktOC45IDU1LjQtMTkuMyA4Mi43LTE5LjMgNzYuMyAwIDExMiA4My43IDExMiAxNjAgMCAxMjgtODAgMjI0LTE2MCAyMjQtMTYuNSAwLTM4LjEtNi42LTUxLjUtMTEuMy04LjEtMi44LTE2LjktMi44LTI1IDAtMTMuNCA0LjctMzUgMTEuMy01MS41IDExLjMtODAgMC0xNjAtOTYtMTYwLTIyNHoiXX0sQnZyPVROZSxMTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsLXRvcmFoIixpY29uOls1NzYsNTEyLFsidG9yYWgiXSwiZjZhMCIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMCA2OC45IDAgODYuNyAxMy40IDkzLjMgMzJsMzg5LjUgMGM2LjYtMTguNiAyNC40LTMyIDQ1LjMtMzIgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDgtMjAuOSAwLTM4LjctMTMuNC00NS4zLTMyTDkzLjMgNDgwYy02LjYgMTguNi0yNC40IDMyLTQ1LjMgMzItMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNMTc3LjkgMzAxYy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yYy0yLjYtNC4yLTcuMi02LjgtMTIuMi02LjhzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LEh2cj1MTmUscXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1MTAiLCJNNTI4IDIyNC4xYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxODUgMTcxLjhDNDQwLjIgMTk1IDQwMCAyNDQuOCA0MDAgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek0yNzIgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDk2IDAgMC04Ny4zYzAtMTYuNSA3LTMxLjUgMTguNC00Mi4xLTguNy05LTIwLjktMTQuNi0zNC40LTE0LjZsLTMyIDB6bTI1Ni00Ny45Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3LjljMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LFZ2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodC10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNGJhIiwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOEwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zOTAuNiAzNDIuNmw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTMzLjUgMCA5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTMzLjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwek01NzYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZ6Il19LG5UPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoIixpY29uOls0NDgsNTEyLFtdLCJmMWY4IiwiTTEzNi43IDUuOUwxMjggMzIgMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwLTguNy0yNi4xQzMwNi45LTcuMiAyOTQuNy0xNiAyODAuOS0xNkwxNjcuMS0xNmMtMTMuOCAwLTI2IDguOC0zMC40IDIxLjl6TTQxNiAxNDRMMzIgMTQ0IDUzLjEgNDY3LjFDNTQuNyA0OTIuNCA3NS43IDUxMiAxMDEgNTEyTDM0NyA1MTJjMjUuMyAwIDQ2LjMtMTkuNiA0Ny45LTQ0LjlMNDE2IDE0NHoiXX0sRE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc2FkLXRlYXIiLGljb246WzUxMiw1MTIsWzEyODU0Niwic2FkLXRlYXIiXSwiZjViNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNzEgOThjNS41LTEuMyAxMS4xLTIgMTctMiAyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MC0xMi41IDAtMjQuNiAxLjktMzUuOSA1LjUgOS44IDEyLjcgMTYuNSAyNy45IDE4LjkgNDQuNnpNMTc2IDI0MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xODUuNCAyOTIuOGMtMi40LTIuOS01LjctNC44LTkuNC00LjhzLTcgMS45LTkuNCA0LjhjLTYuNSA3LjgtMTIuNiAxNi4xLTE4LjMgMjQuNi05IDEzLjQtMjAuMyAzMC4yLTIwLjMgNDcuNCAwIDI4LjMgMjEuNSA1MS4yIDQ4IDUxLjJzNDgtMjIuOSA0OC01MS4yYzAtMTcuMi0xMS4yLTM0LTIwLjMtNDcuNC01LjctOC41LTExLjktMTYuNy0xOC4zLTI0LjZ6Il19LGp2cj1ETmUsVXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZheCIsaWNvbjpbNTEyLDUxMixbMTI4MjI0LDEyODQzOV0sImYxYWMiLCJNMTYwIDY0bDAgODAgNjQgMCAwLTgwIDE0Ni43IDAgNDUuMyA0NS4zIDAgMzQuNyA2NCAwIDAtMzQuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MTYgMTguN0M0MDQgNi43IDM4Ny43IDAgMzcwLjcgMEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMHptNDQ4IDY0bC0zMjAgMCAwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDI4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0wIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMzNiAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zMTIgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTQyNCAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek00MDAgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFd2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NDEiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sR3ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbXNhIixpY29uOls1MTIsNTEyLFtdLCJmNjY1IiwiTTM0LjYgMjg4TDgwIDI4OGM4LjggMCAxNi03LjIgMTYtMTZMOTYgNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDEzMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTE2NGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTY0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTMyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMDBjMCA4LjggNy4yIDE2IDE2IDE2bDQ1LjQgMGMxOS4xIDAgMzQuNiAxNS41IDM0LjYgMzQuNiAwIDguNi0zLjIgMTYuOS05IDIzLjNMNDE2LjYgNDQxYy00MS4xIDQ1LjItOTkuNCA3MS0xNjAuNiA3MVMxMzYuNiA0ODYuMiA5NS40IDQ0MUw5IDM0NS45Yy01LjgtNi40LTktMTQuNy05LTIzLjMgMC0xOS4xIDE1LjUtMzQuNiAzNC42LTM0LjZ6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yLTMuNiAzLjctNS40IDguNy01LjQgMTMuOHMxLjggMTAuMSA1LjQgMTMuOEMxNzkuMiAzODAuMiAyMTcuNiA0MTYgMjU2IDQxNnM3Ni44LTM1LjggOTAuNi01MC4yYzMuNi0zLjcgNS40LTguNyA1LjQtMTMuOHMtMS44LTEwLjEtNS40LTEzLjhDMzMyLjggMzIzLjggMjk0LjQgMjg4IDI1NiAyODh6bTAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxZdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LEt2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtY2hlY2siLGljb246WzM4NCw1MTIsW10sImY0NmMiLCJNMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMHptMjYuOSAyMTIuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjZzLTkuOCAyNC40LS42IDMzLjlsNDYuNCA0OGM0LjkgNS4xIDExLjggNy44IDE4LjkgNy4zczEzLjYtNC4xIDE3LjgtOS44TDI4OC4yIDI0Ni4xYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41ek0xMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0eiJdfSwkTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtZnJvbS1zcXVhcmUiLGljb246WzU3Niw1MTIsWzYxNTA5LCJzaGFyZS1zcXVhcmUiXSwiZjE0ZCIsIk0zODQuNSAyNGwwIDcyLTY0IDBjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOTMuNCA4Mi44IDEzNC44IDEwMC42IDE0Mi42IDIuMiAxIDQuNiAxLjQgNy4xIDEuNGwyLjUgMGM5LjggMCAxNy44LTggMTcuOC0xNy44IDAtOC4zLTUuOS0xNS41LTEyLjgtMjAuMy04LjktNi4yLTE5LjItMTguMi0xOS4yLTQwLjUgMC00NSAzNi41LTgxLjUgODEuNS04MS41bDMwLjUgMCAwIDcyYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNHptLTI3MiA3MmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMjU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMHoiXX0sWnZyPSROZSxocGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjZWlwdCIsaWNvbjpbMzg0LDUxMixbMTI5NTM0XSwiZjU0MyIsIk0xNCAyLjJDMjIuNS0xLjcgMzIuNS0uMyAzOS42IDUuOEw4MCA0MC40IDEyMC40IDUuOGM5LTcuNyAyMi4zLTcuNyAzMS4yIDBMMTkyIDQwLjQgMjMyLjQgNS44YzktNy43IDIyLjItNy43IDMxLjIgMEwzMDQgNDAuNCAzNDQuNCA1LjhjNy4xLTYuMSAxNy4xLTcuNSAyNS42LTMuNlMzODQgMTQuNiAzODQgMjRsMCA0NjRjMCA5LjQtNS41IDE3LjktMTQgMjEuOHMtMTguNSAyLjUtMjUuNi0zLjZsLTQwLjQtMzQuNi00MC40IDM0LjZjLTkgNy43LTIyLjIgNy43LTMxLjIgMGwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDgwIDQ3MS42IDM5LjYgNTA2LjJjLTcuMSA2LjEtMTcuMSA3LjUtMjUuNiAzLjZTMCA0OTcuNCAwIDQ4OEwwIDI0QzAgMTQuNiA1LjUgNi4xIDE0IDIuMnpNMTA0IDEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6TTgwIDM1MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxRdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXF1YWxzIixpY29uOls0NDgsNTEyLFs2Mjc2NF0sIjNkIiwiTTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHoiXX0sWHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tdXAiLGljb246WzQ0OCw1MTIsW10sImYwNzciLCJNMjAxLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMTczLjMgNTQuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTkyLTE5MnoiXX0sSnZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDc1IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg4LjYtODguNmMxLjctMTIuMS0yLTI0LjgtMTEuMy0zNC0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwYy0zMS4yIDMxLjItODQuNSA5LjEtODQuNS0zNSAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtOS4zLTkuMy0yMi0xMy0zNC0xMS4zTDQxLTI0Ljl6TTcyIDIxNmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtMjEuNCAxMi42LTM3LjYgMjkuMS00NS4xbC0yNDAtMjQwQzEwOS42IDIwMy40IDkzLjQgMjE2IDcyIDIxNnoiXX0sZXlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNzE1IiwiTTctMjVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMNTY5IDUwM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOUMtMi4zLS40LTIuMy0xNS42IDctMjV6Il19LHR5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleHBhbmQiLGljb246WzQ0OCw1MTIsW10sImYwNjUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTQ0OCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnoiXX0sQU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGUtc3RpY2t5IixpY29uOls0NDgsNTEyLFs2MjAyNiwic3RpY2t5LW5vdGUiXSwiZjI0OSIsIk02NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMTMuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzMjIuNyA0NjEuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0ODB6TTM4OS41IDMwNEwyOTYgMzA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkzLjUgMTE3LjUtMTE3LjV6Il19LHJ5cj1BTmUsRU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNvbHVtbnMiLGljb246WzQ0OCw1MTIsWyJjb2x1bW5zIl0sImYwZGIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTY0IDY0bDAgMjU2IDEyOCAwIDAtMjU2LTEyOCAwem0zMjAgMGwtMTI4IDAgMCAyNTYgMTI4IDAgMC0yNTZ6Il19LGF5cj1FTmUsaXlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zaGVsdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNTRmIiwiTTI3MS45IDQuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhDNi4yIDEzNy45IDAgMTQ4LjUgMCAxNjBMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCAxNzguNiAyNTYgNjguOSA0NDggMTc4LjYgNDQ4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTEuNS02LjItMjIuMS0xNi4xLTI3LjhsLTIyNC0xMjh6TTI1NiAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0tOCAxOTJsMTYgMCAwIDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzQuNSAyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zMy4yLTYxLjdDMzI5LjcgMjQ1LjEgMjk0LjQgMjI0IDI1NiAyMjRzLTczLjcgMjEuMS05MS45IDU0LjlsLTMzLjIgNjEuN2MtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMMjAwIDMxMy41IDIwMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTg4eiJdfSxzeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW5vdGNoIixpY29uOls1MTIsNTEyLFtdLCJmMWNlIiwiTTIyMi43IDMyLjFjNSAxNi45LTQuNiAzNC44LTIxLjUgMzkuOC03OS4zIDIzLjYtMTM3LjEgOTcuMS0xMzcuMSAxODQuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTg2LjktNTcuOC0xNjAuNC0xMzcuMS0xODQuMS0xNi45LTUtMjYuNi0yMi45LTIxLjUtMzkuOHMyMi45LTI2LjYgMzkuOC0yMS41QzQzNC45IDQyLjEgNTEyIDE0MCA1MTIgMjU2IDUxMiAzOTcuNCAzOTcuNCA1MTIgMjU2IDUxMlMwIDM5Ny40IDAgMjU2YzAtMTE2IDc3LjEtMjEzLjkgMTgyLjktMjQ1LjQgMTYuOS01IDM0LjggNC42IDM5LjggMjEuNXoiXX0sbnlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyIixpY29uOls1MTIsNTEyLFtdLCJmNzczIiwiTTQxMC42IDEyNC4xYzIwLjcgMTUuNiA0NiAzMC43IDc0LjIgMzQuNSAxMy4xIDEuOCAyNS4yLTcuNSAyNy0yMC42cy03LjUtMjUuMi0yMC42LTI3Yy0xNS45LTIuMS0zMy4yLTExLjMtNTEuNy0yNS4yLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTE4LjUgMTMuOS0zNS44IDIzLjEtNTEuNyAyNS4yLTEzLjEgMS44LTIyLjQgMTMuOC0yMC42IDI3czEzLjggMjIuNCAyNyAyMC42YzI4LjItMy44IDUzLjYtMTguOSA3NC4yLTM0LjUgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptMCAxNDRjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjctMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiAxNDRjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxJTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVsZXRlLWxlZnQiLGljb246WzY0MCw1MTIsWzkwMDMsImJhY2tzcGFjZSJdLCJmNTVhIiwiTTU3NiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjA1LjMgNjRjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDkuNCAyMzMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42TDE2MCA0MjkuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43TDUxMiA0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZ6TTI4NC4xIDE4OC4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LG95cj1JTmUseXVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyb29tLWJhbGwiLGljb246WzU3Niw1MTIsWyJxdWlkZGl0Y2giLCJxdWlkZGl0Y2gtYnJvb20tYmFsbCJdLCJmNDU4IiwiTTQ5NiA1NDRhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6TTEwNi44IDI3Ny4yYzMwLjYtMzAuNiA3My4xLTQ1LjkgMTE1LjgtNDIuMkwzNDEgMzUzLjNjMy43IDQyLjgtMTEuNiA4NS4yLTQyLjIgMTE1LjktMjcuNCAyNy40LTY0LjYgNDIuOC0xMDMuMyA0Mi44TDIyLjEgNTEyYy0xMi4yIDAtMjIuMS05LjktMjIuMS0yMi4xIDAtNi4zIDIuNy0xMi4zIDcuMy0xNi41TDEzMy43IDM1OS43YzQuMi0zLjctLjQtMTAuNC01LjQtNy45TDc3LjIgMzc3LjRjLTYuMSAzLTEzLjItMS40LTEzLjItOC4yIDAtMzEuNSAxMi41LTYxLjggMzQuOC04NGw4LTh6bTQxNy0yNzBjMTIuNi0xMC4zIDMxLjEtOS41IDQyLjggMi4yczEyLjQgMzAuMiAyLjIgNDIuOGwtMi4yIDIuNC0xOTIgMTkyIDM0LjggMzQuN2M0LjIgNC4yIDYuNiAxMCA2LjYgMTYgMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZsLTI5LjEgMC0xMDguMy0xMDguMyAwLTI5LjFjMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjYgNiAwIDExLjggMi40IDE2IDYuNmwzNC44IDM0LjcgMTkyLTE5MiAyLjQtMi4yeiJdfSxseXI9eXVlLGN5cj15dWUsZHlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImoiLGljb246WzMyMCw1MTIsWzEwNl0sIjRhIiwiTTI4OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwbDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFBOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHV0dGxlLXNwYWNlIixpY29uOls1NzYsNTEyLFsic3BhY2Utc2h1dHRsZSJdLCJmMTk3IiwiTTAgMzY4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTAgMGM0MC42IDAgODAuNC0xMSAxMTUuMi0zMS45bDEzMy41LTgwLjEtOTMuMyAwLTY0LjkgMzguOWMtMTQgOC40LTI4LjkgMTQuNy00NC41IDE5bDAtNjYuNGM5LjctNS42IDE3LjgtMTMuNyAyMy40LTIzLjRsMTk4LjggMGM2Ny4xIDAgMTI3LjgtMjAuNiAxNzAuMy03MC42IDQuNi01LjQgNC42LTEzLjMgMC0xOC44LTQyLjUtNTAuMS0xMDMuMi03MC42LTE3MC4zLTcwLjZsLTE5OC44IDBjLTUuNi05LjctMTMuNy0xNy44LTIzLjQtMjMuNGwwLTY2LjRjMTUuNiA0LjIgMzAuNiAxMC42IDQ0LjUgMTlsNjQuOSAzOC45IDkzLjMgMC0xMzMuNS04MC4xQzE3OC40IDQzIDEzOC42IDMyIDk4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCAzNjh6bTk2IDBsMCA2NC00OCAwIDAtNjQgNDggMHpNOTYgODBsMCA2NC00OCAwIDAtNjQgNDggMHpNNDE2IDIyNGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sdXlyPVBOZSxweXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieWluLXlhbmciLGljb246WzUxMiw1MTIsWzk3NzVdLCJmNmFkIiwiTTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgMzUyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC00NDhjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTYtOTYgNDMtOTYgOTYgNDMgOTYgOTYgOTZDMTUwIDQ0OCA2NCAzNjIgNjQgMjU2UzE1MCA2NCAyNTYgNjR6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sZnlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3AiLGljb246WzQ0OCw1MTIsWzkyMDldLCJmMDRkIiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0saHlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3dlbCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4OSIsIk00MDcuOSAxODEuNEwyNzcuMyAzMTIgMzQyLjYgMzc3LjRjNy45IDcuOSAxMS4xIDE5LjQgOC40IDMwLjNzLTEwLjggMTkuNi0yMS41IDIyLjlsLTI1NiA4MGMtMTEuNCAzLjUtMjMuOCAuNS0zMi4yLTcuOXMtMTEuNS0yMC44LTcuOS0zMi4ybDgwLTI1NmMzLjMtMTAuNyAxMi0xOC45IDIyLjktMjEuNXMyMi40IC41IDMwLjMgOC40TDIzMiAyNjYuNyAzNjIuNiAxMzYuMWMtMTQuMy0xNC42LTE0LjItMzggLjMtNTIuNWw5NS40LTk1LjRjMjYuOS0yNi45IDcwLjUtMjYuOSA5Ny41IDBzMjYuOSA3MC41IDAgOTcuNWwtOTUuNCA5NS40Yy0xNC41IDE0LjUtMzcuOSAxNC42LTUyLjUgLjN6Il19LE5OZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWJhY2stZmlzdCIsaWNvbjpbMzg0LDUxMixbImhhbmQtcm9jayJdLCJmMjU1IiwiTTcuNCAyNTMuNkMyLjYgMjQ1LjkgMCAyMzcuMSAwIDIyOGwwLTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OCAxNy4zIDAgMzIuNCA5LjEgNDAuOSAyMi44IDQuMy0yMi4xIDIzLjgtMzguOCA0Ny4xLTM4LjggMjMuNCAwIDQyLjkgMTYuOCA0Ny4xIDM4LjkgNy4zLTQuNCAxNS44LTYuOSAyNC45LTYuOSAyMi4xIDAgNDAuOCAxNSA0Ni4zIDM1LjQgNS41LTIuMiAxMS40LTMuNCAxNy43LTMuNCAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTM5LjYgNzkuMWMtMTAuOCAyMS43LTMzIDM1LjQtNTcuMiAzNS40TDk2IDM1MmMtMTYuNSAwLTMxLjgtOC40LTQwLjYtMjIuNGwtNDgtNzZ6TTMyIDQ4MGwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sbXlyPU5OZSxneXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtaGlnaCIsaWNvbjpbNTEyLDUxMixbXSwiZjc2OSIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDIxNiA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQ2NCA4MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zNTIgODBhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAweiJdfSxieXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JlYXRlci10aGFuIixpY29uOls1MTIsNTEyLFs2Mjc2OV0sIjNlIiwiTTM0LjkgNTAuNmMtNy40IDE2LS40IDM1LjEgMTUuNiA0Mi41TDQwMy42IDI1NiA1MC42IDQxOWMtMTYgNy40LTIzLjEgMjYuNC0xNS42IDQyLjVzMjYuNCAyMyA0Mi41IDE1LjZsNDE2LTE5MmMxMS4zLTUuMiAxOC42LTE2LjYgMTguNi0yOS4xcy03LjMtMjMuOC0xOC42LTI5LjFMNzcuNCAzNWMtMTYtNy40LTM1LjEtLjQtNDIuNSAxNS42eiJdfSx4eXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3J1dGNoIixpY29uOls1MTIsNTEyLFtdLCJmN2Y3IiwiTTI5Ny40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0xLjQtMS40LTE1OC42IDE1OC42Yy0xOCAxOC00Mi40IDI4LjEtNjcuOSAyOC4xbC01OSAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNC02MS43IDYxLjctOTIuOCA5Mi44LTkzLjMgOTMuMy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNi0xNiAwIDAgNzcuMy03Ny4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTU5YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45TDI5OC43IDU2IDI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zek0zNDQgMTAxLjNMMjYxLjMgMTg0IDMyOCAyNTAuNyA0MTAuNyAxNjggMzQ0IDEwMS4zem0tMTI4IDEyOGwtMzAuNiAzMC42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCA1My41IDUzLjUgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwyODIuNyAyOTYgMjE2IDIyOS4zeiJdfSxPTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VwdGFnb24iLGljb246WzU3Niw1MTIsWyJoZXB0YWdvbiJdLCJlODIwIiwiTTI2Ny40LTMxLjVjMTUuOS01LjUgMzMuNS00LjYgNDguOCAyLjdsMTcyLjQgODMgNi4zIDMuNWMxNC4yIDkgMjQuNSAyMy4zIDI4LjMgMzkuOWw0Mi42IDE4Ni41IDEuMiA3LjJjMS42IDE0LjMtMS43IDI4LjgtOS40IDQxLjFsLTQuMiA1LjktMTE5LjMgMTQ5LjZjLTEyLjEgMTUuMi0zMC42IDI0LjEtNTAgMjQuMWwtMTkxLjMgMGMtMTkuNSAwLTM3LjktOC45LTUwLTI0LjFMMjMuNSAzMzguNGMtMTIuMS0xNS4yLTE2LjctMzUuMi0xMi4zLTU0LjJsNDIuNi0xODYuNSAyLTdjNS42LTE1LjkgMTcuMi0yOSAzMi42LTM2LjRsMTcyLjQtODMgNi43LTIuN3oiXX0sdnlyPU9OZSx5eXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyZWV0LXZpZXciLGljb246WzUxMiw1MTIsW10sImYyMWQiLCJNMjU2IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTIyNCAxNjBsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xLjggMC0xMS4xIDk5LjVjLTEuOCAxNi4yLTE1LjUgMjguNS0zMS44IDI4LjVsLTM4LjcgMGMtMTYuMyAwLTMwLTEyLjMtMzEuOC0yOC41bC0xMS4xLTk5LjUtMS44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTQxMi40IDQwMC4yYy0xNi4xLTQuMi0zNC44LTcuNi01NS40LTEwLjJsNS4zLTQ3LjdjMjIuNyAyLjkgNDMuNyA2LjcgNjIuMSAxMS41IDIyLjQgNS44IDQyLjYgMTMuMyA1Ny44IDIzLjMgMTQuNyA5LjYgMjkuOCAyNC45IDI5LjggNDdzLTE1LjEgMzcuNC0yOS44IDQ3Yy0xNS4yIDkuOS0zNS41IDE3LjUtNTcuOCAyMy4zLTQ1LjEgMTEuNy0xMDUuMyAxNy44LTE2OC40IDE3LjhzLTEyMy4zLTYuMS0xNjguNC0xNy44QzY1LjIgNDg4LjQgNDUgNDgwLjkgMjkuOCA0NzEgMTUuMSA0NjEuNCAwIDQ0Ni4xIDAgNDI0czE1LjEtMzcuNCAyOS44LTQ3YzE1LjItOS45IDM1LjUtMTcuNSA1Ny44LTIzLjMgMTguNS00LjggMzkuNS04LjYgNjIuMS0xMS41TDE1NSAzOTBjLTIwLjYgMi42LTM5LjMgNi4xLTU1LjQgMTAuMi01Ni42IDE0LjYtNTYuNiAzMi45IDAgNDcuNSAzOS45IDEwLjMgOTUuOCAxNi4yIDE1Ni40IDE2LjJzMTE2LjUtNS45IDE1Ni40LTE2LjJjNTYuNi0xNC42IDU2LjYtMzIuOSAwLTQ3LjV6Il19LHd5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXZlLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZSIsIk02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI4OCA5NiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI4OC05NiAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0xMjh6Il19LGt5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1sZWZ0IixpY29uOlsyNTYsNTEyLFs4MjQ5XSwiZjEwNCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sU3lyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyIixpY29uOls1NzYsNTEyLFsxMjk2OTFdLCJmNTRhIiwiTTM1Mi4xIDE0Ni43bDAtNDkuNmMwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDQ4NS4yLTguN2M2LjMtNC4yIDE0LjgtMy40IDIwLjIgMmw0NS40IDQ1LjVjNS40IDUuNCA2LjIgMTMuOCAyIDIwLjJMNDczLjYgMTc3LjhjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMmwtNDkuNiAwLTkwLjcgOTAuN2MxNSAzMy4zIDguOSA3My45LTE4LjUgMTAxLjNMMTYyLjEgNTEwLjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDM0LjEgNDQ5LjljLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45TDE2MC4xIDI1NmMyNy40LTI3LjQgNjcuOS0zMy42IDEwMS4zLTE4LjVsOTAuNy05MC43eiJdfSxNeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhY3RvciIsaWNvbjpbNTc2LDUxMixbMTI4NjY4XSwiZjcyMiIsIk0xNjAgOTZsMCA5NiAxMzMuNCAwLTU3LjYtOTYtNzUuOCAwek05NiAyMjNMOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA3LjggMGMyMi41IDAgNDMuMyAxMS44IDU0LjkgMzEuMWw3Ny40IDEyOC45IDY0IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxLjVjMCAxNC4yLTYuMyAyNy44LTE3LjMgMzYuOWwtMzUgMjkuMmMyNi41IDE1LjIgNDQuMyA0My43IDQ0LjMgNzYuNCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTE0LjQgMy41LTI4IDkuNi00MGwtMTAxLjIgMGMtMyAxMy40LTcuOSAyNi0xNC40IDM3LjcgNy43IDkuNCA3LjIgMjMuNC0xLjYgMzIuMmwtMjIuNiAyMi42Yy04LjggOC44LTIyLjcgOS4zLTMyLjIgMS42LTkuMyA1LjItMTkuMyA5LjMtMjkuOCAxMi4zLTEuMiAxMi4xLTExLjQgMjEuNi0yMy45IDIxLjZsLTMyIDBjLTEyLjQgMC0yMi43LTkuNS0yMy45LTIxLjYtMTAuNS0zLTIwLjQtNy4yLTI5LjgtMTIuMy05LjQgNy43LTIzLjQgNy4yLTMyLjItMS42TDM1LjUgNDUzLjhjLTguOC04LjgtOS4zLTIyLjctMS42LTMyLjItNS4yLTkuMy05LjMtMTkuMy0xMi4zLTI5LjgtMTIuMS0xLjItMjEuNi0xMS40LTIxLjYtMjMuOWwwLTMyYzAtMTIuNCA5LjUtMjIuNyAyMS42LTIzLjkgMy0xMC41IDcuMi0yMC40IDEyLjMtMjkuOC03LjctOS40LTcuMi0yMy40IDEuNi0zMi4ybDIyLjYtMjIuNmM4LjgtOC44IDIyLjctOS4zIDMyLjItMS42IDEuOS0xIDMuNy0yIDUuNy0zem02NCA2NWE2NCA2NCAwIDEgMCAwIDEyOCA2NCA2NCAwIDEgMCAwLTEyOHpNNDQwIDQyNGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwIC04MCAweiJdfSxDeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjYiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LHp5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTIgNjQgMCAwIDM1MmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQ5Ny43IDAgNDgwIDBMMzIgMHpNMTYwIDY0bDAgMTI4LTY0IDAgMC0xMjggNjQgMHptMjU2IDBsMCAxMjgtNjQgMCAwLTEyOCA2NCAweiJdfSxfeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RldGhvc2NvcGUiLGljb246WzU3Niw1MTIsWzEyOTY1OF0sImYwZjEiLCJNMzIgNDhDMzIgMjEuNSA1My41IDAgODAgMGw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjgtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjM4LjMgMCAyNTYgMGw0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTkuMmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtODUuNWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDg1LjVjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYwIDQ2NS4yIDE2MCAzNjhsMC0xOS4yQzg3IDMzNCAzMiAyNjkuNCAzMiAxOTJMMzIgNDh6TTQ4MCAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxUeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9kY2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjZSIsIk0zMzYgMzU5LjhjMzkuMS0zMi4zIDY0LTgxLjEgNjQtMTM1LjggMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZTNDggMTI2LjggNDggMjI0QzQ4IDI3OC43IDcyLjkgMzI3LjUgMTEyIDM1OS44IDExMi40IDM3Ny40IDExNS4yIDQwMC4yIDExOC40IDQyMS42IDQ4IDM4My45IDAgMzA5LjUgMCAyMjQgMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgODUuNi00OCAxNTkuOS0xMTguNSAxOTcuNiAzLjMtMjEuNCA2LTQ0LjIgNi40LTYxLjh6bS0xNC01My40Yy04LjMtMTIuNi0xOS4yLTIxLjYtMzAuNC0yNy44LTIuMS0xLjEtNC4yLTIuMi02LjMtMy4yIDExLjctMTMuOSAxOC44LTMxLjkgMTguOC01MS41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMTkuNiA3LjEgMzcuNiAxOC44IDUxLjUtMi4xIDEtNC4yIDItNi4zIDMuMi0xMS4yIDYuMi0yMi4xIDE1LjItMzAuNCAyNy44LTE4LjgtMjIuMy0zMC4xLTUxLTMwLjEtODIuNCAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4YzAgMzEuNC0xMS4zIDYwLjItMzAuMSA4Mi40ek0yMjQgMzEyYzMyLjkgMCA2NCA4LjYgNjQgNDMuOCAwIDMzLTEyLjkgMTA0LjEtMjAuNiAxMzIuOS01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOCAwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTI4YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sTHlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXJpZ2h0LWRvdHMiLGljb246WzUxMiw1MTIsW10sImU0YjciLCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0Uzc4LjMgOTYgOTYgOTZMMTE0LjcgOTYgOS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxNDEuMyAxNjAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAzMnpNNDAzLjggNzAuMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek0yNzkuNyAxOTQuMmEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjIuMi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnpNMTU2LjIgMzE3LjhhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek03MC4xIDQwMy44YTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2MS42LTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHoiXX0sRHlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0yNTYgODBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01LjUgMTg1TDEyOCAzODQgNzEuOCA0NTQuM2MtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMkwzODQgMzg0IDUwNi41IDE4NWMzLjYtNS45IDUuNS0xMi43IDUuNS0xOS42bDAtLjZjMC0yMC4zLTE2LjUtMzYuOC0zNi44LTM2LjgtNy4zIDAtMTQuNCAyLjItMjAuNCA2LjJsLTE2LjkgMTEuM2MtMTIuNyA4LjUtMjkuNiA2LjgtNDAuNC00bC0zNC4xLTM0LjFDMzU2LjEgMTAwLjEgMzQ2LjIgOTYgMzM2IDk2cy0yMC4xIDQuMS0yNy4zIDExLjNsLTMwLjEgMzAuMWMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTMwLjEtMzAuMUMxOTYuMSAxMDAuMSAxODYuMiA5NiAxNzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzQuMSAzNC4xYy0xMC44IDEwLjgtMjcuNyAxMi41LTQwLjQgNEw1Ny4zIDEzNC4yYy02LjEtNC0xMy4yLTYuMi0yMC40LTYuMi0yMC4zIDAtMzYuOCAxNi41LTM2LjggMzYuOGwwIC42YzAgNi45IDEuOSAxMy43IDUuNSAxOS42eiJdfSwkeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYiIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxSTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMtdmVydGljYWwiLGljb246WzEyOCw1MTIsWyJlbGxpcHNpcy12Il0sImYxNDIiLCJNNjQgMTQ0YTU2IDU2IDAgMSAxIDAtMTEyIDU2IDU2IDAgMSAxIDAgMTEyem0wIDIyNGMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTExMmMwIDMwLjktMjUuMSA1Ni01NiA1NnMtNTYtMjUuMS01Ni01NiAyNS4xLTU2IDU2LTU2IDU2IDI1LjEgNTYgNTZ6Il19LEF5cj1STmUsRXlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZSIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek00MzIgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyMjhhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDEgMCAwIDQwem0wLTE4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sSXlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMyIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxQeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWFycm93LXVwLWZyb20tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzOSIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTMxOC4zIDI5OS4xbC00Ni4zLTYyLjQgMCAyNDMuMyAyNzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODAgMCAwLTI0My4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMjA4IDQ4MGwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDEyOCAzMiAwek01NjYuNiAxMDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMNDk2IDc3LjMgNDk2IDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0Ni43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6Il19LE55cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3QtZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1M2UiLCJNMzc4LjYgODEuOGM5LjgtMTQuNyA1LjgtMzQuNi04LjktNDQuNHMtMzQuNi01LjgtNDQuNCA4LjlMMjcwLjkgMTI4IDMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTYuMiAwLTg1LjMgMTI4LTExMC45IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjguMiAwLTMwLjggNDYuMmMtOS44IDE0LjctNS44IDM0LjYgOC45IDQ0LjRzMzQuNiA1LjggNDQuNC04LjlMMTc3LjEgMzg0IDQxNiAzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5Ni4yIDAgODUuMy0xMjggMTEwLjkgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjguMiAwIDMwLjgtNDYuMnoiXX0sT3lyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWluLXRyYW0iLGljb246WzM4NCw1MTIsWzEyODY1MF0sImU1YjQiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgtMTIwIDAgMCA2NCA0MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNjBjMCAzMS4yLTE0LjkgNTktMzggNzYuNWw2NC4zIDc2YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQuNi04OC4xYy0zLjYgLjQtNy4zIC42LTExLjEgLjZsLTEyOCAwYy0zLjggMC03LjUtLjItMTEuMS0uNkw0Mi4zIDUzNS41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw2NC4zLTc2QzQ2LjkgNDExIDMyIDM4My4yIDMyIDM1MmwwLTE2MGMwLTUzIDQzLTk2IDk2LTk2bDQwIDAgMC02NC0xMjAgMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1My4zIDAgNDBMMCA4ek0xMjggMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwem0zMiAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxSeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtZGVwYXJ0dXJlIixpY29uOls1NzYsNTEyLFsxMjg3NDddLCJmNWIwIiwiTTM3MiAxNDMuOUwxNzIuNyA0MC4yYy04LTQuMS0xNy4zLTQuOC0yNS43LTEuN2wtNDEuMSAxNWMtMTAuMyAzLjctMTMuOCAxNi40LTcuMSAyNUwyMDAuMyAyMDYuNCAxMDAuMSAyNDIuOCA0MCAyMDYuMmMtNi4yLTMuOC0xMy44LTQuNS0yMC43LTIuMUwzIDIxMC4xYy05LjQgMy40LTEzLjQgMTQuNS04LjMgMjMuMWw1My42IDkxLjhjMTUuNiAyNi43IDQ4LjEgMzguNCA3Ny4xIDI3LjhsMTIuOS00LjcgMCAwIDM5OC40LTE0NWMyOS4xLTEwLjYgNDQtNDIuNyAzMy41LTcxLjhzLTQyLjctNDQtNzEuOC0zMy41TDM3MiAxNDMuOXpNMzIuMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUxMiAweiJdfSxGTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtdG8tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24taW4tYWx0Il0sImYyZjYiLCJNMzQ1IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMDEgOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMTYwIDEwMi4zIDE2MCAxMTJsMCA4MC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMTIgMCAwIDgwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMkwzNDUgMjczem03IDE0M2MtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAweiJdfSxGeXI9Rk5lLEJ5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZC1jYXJkIixpY29uOlszODQsNTEyLFtdLCJmN2MyIiwiTTM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxMjUuMyAwQzEwOC4zIDAgOTIgNi43IDgwIDE4LjdMMTguNyA4MEM2LjcgOTIgMCAxMDguMyAwIDEyNS4zTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0ek0xNjAgODhsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEh5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1MGEiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjEgNDcuMi0xNzUuOCAxMTQuOC01LjEtMS44LTEwLjUtMi44LTE2LjItMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkxIDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00OTYgNDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LF95PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoZWtlbC1zaWduIixpY29uOls0NDgsNTEyLFs4MzYyLCJpbHMiLCJzaGVrZWwiLCJzaGVxZWwiLCJzaGVxZWwtc2lnbiJdLCJmMjBiIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0zMjAgNDgwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMjggMCAwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMHoiXX0scXlyPV95LFZ5cj1feSxqeXI9X3ksVXlyPV95LFd5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyYWRpbyIsaWNvbjpbNTEyLDUxMixbMTI4MjUxXSwiZjhkNyIsIk00OTQuOCAxNWMxMi43LTMuNyAyMC0xNy4xIDE2LjMtMjkuOFM0OTQtMzQuOCA0ODEuMy0zMUw1MS44IDk0LjlDNDIuNCA5Ny42IDMzLjkgMTAyLjEgMjYuNiAxMDggMTAuNSAxMTkuNyAwIDEzOC42IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIxOC41IDk2IDQ5NC44IDE1ek0zNjggMjA4YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek02NCAyNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggMjcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxCTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1kb3RzIixpY29uOls1MTIsNTEyLFsiYWxsZXJnaWVzIl0sImY0NjEiLCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6TTIwMCAzNTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptLTg4IDI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sR3lyPUJOZSxITmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1za3VsbCIsaWNvbjpbNDQ4LDUxMixbImJvb2stZGVhZCJdLCJmNmI3IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzIgMTYzLjJsMCAxMi44YzAgOC44LTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTIuOGMtMTkuNC0xMS43LTMyLTMwLjMtMzItNTEuMiAwLTM1LjMgMzUuOC02NCA4MC02NHM4MCAyOC43IDgwIDY0YzAgMjAuOS0xMi42IDM5LjUtMzIgNTEuMnpNMjA4IDExMmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTc0LjIgOTUuN2M0LjYgMTAuMSAuMSAyMS45LTkuOSAyNi41bC00Ny45IDIxLjggNDcuOSAyMS44YzEwLjEgNC42IDE0LjUgMTYuNCA5LjkgMjYuNXMtMTYuNCAxNC41LTI2LjUgOS45TDIyNCAyOTQgMTQ0LjMgMzMwLjJjLTEwLjEgNC42LTIxLjkgLjEtMjYuNS05LjlzLS4xLTIxLjkgOS45LTI2LjVsNDcuOS0yMS44LTQ3LjktMjEuOGMtMTAuMS00LjYtMTQuNS0xNi40LTkuOS0yNi41czE2LjQtMTQuNSAyNi41LTkuOUwyMjQgMjUwIDMwMy43IDIxMy44YzEwLjEtNC42IDIxLjktLjEgMjYuNSA5Ljl6Il19LFl5cj1ITmUscU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jay1rZXlob2xlIixpY29uOlszODQsNTEyLFsidW5sb2NrLWFsdCJdLCJmMTNlIiwiTTE5MiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NCAxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtNjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNjMuNSAwIDExNi4xIDQ2LjEgMTI2LjIgMTA2LjcgMi45IDE3LjQtOC44IDMzLjktMjYuMyAzNi45cy0zMy45LTguOC0zNi45LTI2LjNDMjUwIDU1LjEgMjIzLjcgMzIgMTkyIDMyem00MCAzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMHoiXX0sS3lyPXFOZSxWTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hcnJvdy11cCIsaWNvbjpbMzg0LDUxMixbImZpbGUtdXBsb2FkIl0sImY1NzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTIwOSAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC02NCA2NGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgODYuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODYuMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0eiJdfSxaeXI9Vk5lLGpOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdGVhcnMiLGljb246WzY0MCw1MTIsWzEyODUxNCwiZ3Jpbi10ZWFycyJdLCJmNTg4IiwiTTU1NC44IDIwMy40bDE2LjMgMi4zQzU0Ny43IDg4LjQgNDQ0LjIgMCAzMjAgMFM5Mi4zIDg4LjQgNjguOSAyMDUuN2wxNi4zLTIuM2MzNy01LjMgNjguNiAyNi40IDYzLjQgNjMuNGwtNi43IDQ2LjdjLTQuMSAyOS0yMS42IDUzLjItNDUuOCA2Ni44IDQzLjcgNzguNSAxMjcuNiAxMzEuNyAyMjMuOCAxMzEuN3MxODAuMS01My4xIDIyMy44LTEzMS43Yy0yNC4xLTEzLjUtNDEuNi0zNy44LTQ1LjgtNjYuOGwtNi43LTQ2LjdjLTUuMy0zNyAyNi40LTY4LjYgNjMuNC02My40ek00NzAuMyAzMjYuOUM0NDcuOSAzODguMiAzODkuMSA0MzIgMzIwIDQzMlMxOTIuMSAzODguMiAxNjkuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMXpNMjEyIDIwOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4em0xODgtMjhjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6TTY0MCAzMDAuNmMwLTI1LjYtMTguOC00Ny4zLTQ0LjEtNTAuOUw1NDkuMSAyNDNjLTEwLjYtMS41LTE5LjYgNy41LTE4LjEgMTguMWw2LjcgNDYuN2MzLjYgMjUuMyAyNS4zIDQ0LjEgNTAuOSA0NC4xIDI4LjQgMCA1MS40LTIzIDUxLjQtNTEuNHptLTY0MCAwQzAgMzI5IDIzIDM1MiA1MS40IDM1MiA3NyAzNTIgOTguNyAzMzMuMiAxMDIuMyAzMDcuOWw2LjctNDYuN2MxLjUtMTAuNi03LjUtMTkuNi0xOC4xLTE4LjFsLTQ2LjcgNi43QzE4LjggMjUzLjMgMCAyNzUgMCAzMDAuNnoiXX0sUXlyPWpOZSxLXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tdG8tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZWRpdCJdLCJmMDQ0IiwiTTQ3MS42IDIxLjdjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDM2OCA0Ni4xIDQ2NS45IDE0NCA0OTAuMyAxMTkuNmMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NzEuNiAyMS43em0tMjk5LjIgMjIwYy02LjEgNi4xLTEwLjggMTMuNi0xMy41IDIxLjlsLTI5LjYgODguOGMtMi45IDguNi0uNiAxOC4xIDUuOCAyNC42czE1LjkgOC43IDI0LjYgNS44bDg4LjgtMjkuNmM4LjItMi43IDE1LjctNy40IDIxLjktMTMuNUw0MzIgMTc3LjkgMzM0LjEgODAgMTcyLjQgMjQxLjd6TTk2IDY0QzQzIDY0IDAgMTA3IDAgMTYwTDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDY0eiJdfSxYeXI9S18sVU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWV1cm9wZSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLWV1cm9wZSJdLCJmN2EyIiwiTTI1Ni4yIDQ4YzExNC44IC4xIDIwNy44IDkzLjIgMjA3LjggMjA4IDAgMjIuMS0zLjQgNDMuNC05LjggNjMuNC0yIC40LTQuMSAuNi02LjIgLjZsLTIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC01MC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2bC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2cy03LjIgMTYtMTYgMTZsLTI1LjQgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmw3MC4xLTcwLjFjMi4xLTIuMSAzLjMtNSAzLjMtOCAwLTYuMi01LjEtMTEuMy0xMS4zLTExLjNsLTE0LjEgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmwyMy4xLTIzLjFjLjgtLjggMS42LTEuNSAyLjUtMi4yek00MzguNCAzNTYuMWMtMzIuOCA1OS42LTkzLjkgMTAxLjQtMTY1LjIgMTA3LjItLjctMi4zLTEuMS00LjgtMS4xLTcuMyAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjYuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC02Ni43YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDE0LjEgOS40IDIyLjYgOS40bDUuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDE2IDE2YzQuMiA0LjIgMTAgNi42IDE2IDYuNiA0LjggMCA5LjMgMS41IDEzIDQuMXpNMjU2IDUxMmwyNi4yLTEuM2MtOC42IC45LTE3LjMgMS4zLTI2LjIgMS4zem0yNi4yLTEuM0M0MTEuMyA0OTcuNiA1MTIgMzg4LjYgNTEyIDI1NiA1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMGwwIDBDMTE0LjYgMCAwIDExNC42IDAgMjU2IDAgMzgzLjUgOTMuMiA0ODkuMyAyMTUuMyA1MDguOCAyMjguNSA1MTAuOSAyNDIuMSA1MTIgMjU2IDUxMnpNMTg3LjMgMTIzLjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sSnlyPVVOZSxXTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTQ2LjItLjFjMTQuNyAxNy44IDI5LjggNDAuMSAyOS44IDY0LjEgMCAzNi40LTI3LjYgNjQtNjQgNjRzLTY0LTI3LjYtNjQtNjRjMC0yNCAxNS4yLTQ2LjMgMjkuOC02NC4xIDguOC0xMC43IDE4LjUtMjAuOCAyOS0zMCAzLTIuNiA3LjQtMi42IDEwLjQgMCAxMC41IDkuMSAyMC4xIDE5LjMgMjkgMzB6TTI4OCAwYzQyLjUgMCA4Mi42IDEwLjQgMTE3LjggMjguNy0zLjYgMTAuOS01LjggMjIuNy01LjggMzUuMyAwIDYyLjkgNDkuMSAxMTIgMTEyIDExMiA2LjQgMCAxMi43LS41IDE4LjgtMS41IDguNiAyNS42IDEzLjIgNTMgMTMuMiA4MS41IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMzIgMzk3LjQgMzIgMjU2IDE0Ni42IDAgMjg4IDB6TTQxOC43IDMwOC45QzM3OS41IDMyMS4xIDMzNS4xIDMyOCAyODggMzI4cy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgMjIuNCA2MS4zIDgxLjMgMTA1LjEgMTUwLjMgMTA1LjFzMTI3LjktNDMuOCAxNTAuMy0xMDUuMWM0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjF6TTIwOCAxODBjMTUuNSAwIDI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMTUuNSAxMi41LTI4IDI4LTI4em0xMzIgMjhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6Il19LGV3cj1XTmUsR05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1oYWxmLXN0cm9rZSIsaWNvbjpbNTEyLDUxMixbOTY4MCwiYWRqdXN0Il0sImYwNDIiLCJNNDQ4IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MmwwIDM4NGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sdHdyPUdOZSxyd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXRvLXBlcnNvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YyIsIk03MSAxMi41Yy04LjYgMS0xNSA4LjItMTUgMTYuOCAwIDkuMyA3LjUgMTYuOCAxNi43IDE2LjlsMTExLjQgMGM4LjgtLjEgMTUuOS03LjIgMTUuOS0xNkwyMDAgMTZjMC05LjUtOC4zLTE3LTE3LjgtMTUuOUw3MSAxMi41ek0xODkuNSA3OC4xbC0xMjIuOSAwYy0xLjYgNS43LTIuNSAxMS43LTIuNSAxNy45IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC02LjItLjktMTIuMi0yLjUtMTcuOXpNMzIgMjU2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMS44IDAgMy41LS4xIDUuMi0uNEw1MyAyMDguNkM0MC4xIDIyMC4zIDMyIDIzNy4yIDMyIDI1NnptMTkwLjIgNDIuNWMxLjEtMy4zIDEuOC02LjggMS44LTEwLjVsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMGMtMy43IDAtNy40IC4zLTEwLjkgLjlMMjIyLjIgMjk4LjV6TTM4NCAxNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0zMiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwek0yMTUuOCA0NTAuMWM1LjItNC42IDguMi0xMS4xIDguMi0xOC4xcy0zLTEzLjUtOC4yLTE4LjFsLTY0LTU2Yy03LjEtNi4yLTE3LjEtNy43LTI1LjctMy44UzExMiAzNjYuNiAxMTIgMzc2bDAgMzItODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4OCAwIDAgMzJjMCA5LjQgNS41IDE4IDE0LjEgMjEuOXMxOC42IDIuNCAyNS43LTMuOGw2NC01NnpNMjg4IDQzMS45YzAgNi45IDMgMTMuNSA4LjEgMTguMWw2NCA1Ni40YzcuMSA2LjIgMTcuMSA3LjggMjUuNyAzLjlTNDAwIDQ5Ny44IDQwMCA0ODguNGwwLTMyLjQgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTMyYzAtOS40LTUuNS0xOC0xNC4xLTIxLjlzLTE4LjYtMi40LTI1LjcgMy44bC02NCA1NmMtNS4yIDQuNS04LjIgMTEuMS04LjIgMTh6Il19LGF3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1jb2x1bW4tbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3OCIsIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiAzNjhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LGl3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1maWVsZC11biIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZSIsIk05NiAzMkM2MC43IDMyIDMyIDYwLjcgMzIgOTZsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwwIDQ4YzAgMjEuMSAxMy43IDM5LjEgMzIuNiA0NS41LS40IDMuNC0uNiA3LS42IDEwLjUgMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwxNDQuNyAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwuNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI0LjcgMC0xLjctNC4yLTQzLjgtMTA2LjNjLTEyLjMtMzAtNDEuNi00OS41LTc0LTQ5LjVsLTQwLjQgMEMzNjQuNCA0NC45IDM0My43IDMyIDMyMCAzMkw5NiAzMnpNMzg0IDIyNGwwLTk2IDMxLjkgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOWwzNS40IDg2LjEtODIuMSAwek0xNTIgMzUyYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMjgwIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTI1Ni42IDEzMi45bDI3LjQgNDEgMC0yOS45YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCA4LjgtNS44IDE2LjYtMTQuMiAxOS4xcy0xNy41LS43LTIyLjQtOGwtMjcuNC00MSAwIDI5LjljMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOTZjMC04LjggNS44LTE2LjYgMTQuMi0xOS4xczE3LjUgLjcgMjIuNCA4ek0xMzIgMTQ0bDAgNjRjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTY0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgNjRjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC02NGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHoiXX0sWU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sc3dyPVlOZSxud3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vayIsaWNvbjpbNDQ4LDUxMixbMTI4MjEyXSwiZjAyZCIsIk0zODQgNTEyTDk2IDUxMmMtNTMgMC05Ni00My05Ni05NkwwIDk2QzAgNDMgNDMgMCA5NiAwTDQwMCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM2wwIDY2LjdjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDB6TTk2IDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMCAwLTY0LTI1NiAwem0zMi0yMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQgNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxLTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LG93cj1LTmUsbHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLW1lYXRiYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNzNiIiwiTTAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjYuOSAwYzMuNS0xMi4xIDEwLjEtMjMuMyAxOS4yLTMyLjRsMS40LTEuNGMxNS0xNSAzNS4zLTIyLjkgNTYuMS0yMi4yIDE0LjItMTUuMSAzNC4yLTIzLjkgNTUuNC0yMy45bDIgMGMyMS4xIDAgNDEuMSA4LjggNTUuNCAyMy45IDIwLjgtLjYgNDEuMSA3LjMgNTYuMSAyMi4ybDEuNCAxLjRjOS4yIDkuMiAxNS43IDIwLjQgMTkuMiAzMi40bDI2LjkgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNTYuNSA0MjQuM2M5LjUgNi4zIDE0LjIgMTcuNyAxMS45IDI4LjgtMS44IDkuMiAxIDE4LjcgNy43IDI1LjNsMS40IDEuNGM2LjYgNi42IDE2LjEgOS41IDI1LjMgNy43IDExLjEtMi4yIDIyLjUgMi41IDI4LjggMTEuOSA1LjIgNy44IDE0IDEyLjUgMjMuMyAxMi41bDIgMGM5LjQgMCAxOC4xLTQuNyAyMy4zLTEyLjUgNi4zLTkuNSAxNy43LTE0LjIgMjguOC0xMS45IDkuMiAxLjggMTguNy0xIDI1LjMtNy43bDEuNC0xLjRjNi42LTYuNiA5LjUtMTYuMSA3LjctMjUuMy0yLjItMTEuMSAyLjUtMjIuNSAxMS45LTI4LjggNy44LTUuMiAxMi41LTE0IDEyLjUtMjMuM2wwLTJjMC05LjQtNC43LTE4LjEtMTIuNS0yMy4zLTkuNS02LjMtMTQuMi0xNy43LTExLjktMjguOCAxLjgtOS4yLTEtMTguNy03LjctMjUuM2wtMS40LTEuNGMtNi42LTYuNi0xNi4xLTkuNS0yNS4zLTcuNy0xMS4xIDIuMi0yMi41LTIuNS0yOC44LTExLjktNS4yLTcuOC0xNC0xMi41LTIzLjMtMTIuNWwtMiAwYy05LjQgMC0xOC4xIDQuNy0yMy4zIDEyLjUtNi4zIDkuNS0xNy43IDE0LjItMjguOCAxMS45LTkuMi0xLjgtMTguNyAxLTI1LjMgNy43bC0xLjQgMS40Yy02LjYgNi42LTkuNSAxNi4xLTcuNyAyNS4zIDIuMiAxMS4xLTIuNSAyMi41LTExLjkgMjguOC03LjggNS4yLTEyLjUgMTQtMTIuNSAyMy4zbDAgMmMwIDkuNCA0LjcgMTguMSAxMi41IDIzLjN6TTQ4IDQ0OGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQxNiAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sWk5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWFyZWEiLGljb246WzUxMiw1MTIsWyJhcmVhLWNoYXJ0Il0sImYxZmUiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnpNMjQwIDk2YzYuNyAwIDEzLjEgMi44IDE3LjcgNy44TDMyOC44IDE4MS4zIDM3NSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjNC41IDQuNSA3IDEwLjYgNyAxN2wwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMzA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTEyYzAtNiAyLjMtMTEuOCA2LjMtMTYuMmw4OC05NmM0LjUtNSAxMS03LjggMTcuNy03Ljh6Il19LGN3cj1aTmUsZHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1cGlhaC1zaWduIixpY29uOls1MTIsNTEyLFtdLCJlMjNkIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjU2LTMybDgwIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNDYxLjkgNDQ4IDQwMCA0NDhsLTQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptODAgMTYwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgOTYgNDggMHoiXX0sdXdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtd2lkdGgiLGljb246WzQ0OCw1MTIsW10sImYwMzUiLCJNNDAgMEMxNy45IDAgMCAxNy45IDAgNDBMMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTI4IDAgMCAxNjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTE2MCAxMjggMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC01NmMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwem03OC42IDQwNi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAyMjkuNSAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40LTIyOS41IDAgOS40LTkuNHoiXX0scHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhdGVsbGl0ZSIsaWNvbjpbNTEyLDUxMixbMTI4NzUyXSwiZjdiZiIsIk0xOTkgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OS40IDg5LjQgNTUtNTVjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDggNDhjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTU1IDU1IDg5LjQgODkuNGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtOTYgOTZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC04OS40LTg5LjQtMTUuNSAxNS41YzExLjQgMjQuNiAxNy44IDUyIDE3LjggODAuOSAwIDMxLjctNy43IDYxLjUtMjEuMiA4Ny44LTQuNyA5LTE2LjcgMTAuMy0yMy44IDMuMWwtOTYuMy05Ni4zLTYwIDYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2MC02MC05Ni4zLTk2LjNjLTcuMi03LjItNS45LTE5LjIgMy4xLTIzLjggMjYuMy0xMy42IDU2LjItMjEuMiA4Ny44LTIxLjIgMjguOSAwIDU2LjMgNi40IDgwLjkgMTcuOEwxOTIuNCAyMjYuMyAxMDMgMTM3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxOTkgN3ptMTcgNTAuOWwtNjIuMSA2Mi4xIDcyLjQgNzIuNCA2Mi4xLTYyLjEtNzIuNC03Mi40ek0zOTIgMzU4LjFsNjIuMS02Mi4xLTcyLjQtNzIuNC02Mi4xIDYyLjEgNzIuNCA3Mi40eiJdfSxRTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1taW51cyIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1taW51cyJdLCJmMDEwIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMTM2IDE4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGZ3cj1RTmUsaHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1ncm91cCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMyIsIk0yNTYgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptOTYgMzEyYzAgMjUtMTIuNyA0Ny0zMiA1OS45bDAgOTIuMWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05Mi4xQzE3Mi43IDM1OSAxNjAgMzM3IDE2MCAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6TTk2IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0xNiAyNDBsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCA3NS4zYzAgMS4yIDAgMi41IC4xIDMuNy04LjUgNy42LTE5LjcgMTIuMy0zMi4xIDEyLjNsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNTYuNkMxMi45IDM2NC40IDAgMzQzLjcgMCAzMjBsMC0zMmMwLTUzIDQzLTk2IDk2LTk2IDEyLjcgMCAyNC44IDIuNSAzNS45IDYuOS0xMi42IDIxLjQtMTkuOSA0Ni40LTE5LjkgNzMuMXpNMzY4IDQ2NGwwLTc1LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDU2LjZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTEyLjMgMC0yMy42LTQuNi0zMi4xLTEyLjMgMC0xLjIgLjEtMi41IC4xLTMuN3pNNDE2IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxtd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWJpbmFyeSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5YiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTQ0IDRjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMzIgMGMyLjIgMCA0IDEuOCA0IDRsMCA0OGMwIDIuMi0xLjggNC00IDRsLTMyIDBjLTIuMiAwLTQtMS44LTQtNGwwLTQ4em0xNDAtNDRjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNzYuNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTk2YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHpNMTMyIDI5NmMwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNzYuNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTk2YzAtMTEtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIwem05NiAyNGwwIDQ4YzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDMyIDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC00OGMwLTI0LjMtMTkuNy00NC00NC00NGwtMzIgMGMtMjQuMyAwLTQ0IDE5LjctNDQgNDR6bTQ0LTRsMzIgMGMyLjIgMCA0IDEuOCA0IDRsMCA0OGMwIDIuMi0xLjggNC00IDRsLTMyIDBjLTIuMiAwLTQtMS44LTQtNGwwLTQ4YzAtMi4yIDEuOC00IDQtNHoiXX0sWE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2tzLXRoZWF0ZXIiLGljb246WzU3Niw1MTIsWzEyNzkxNywidGhlYXRlci1tYXNrcyJdLCJmNjMwIiwiTS01IDExOEwyMy41IDI3OS43YzE0IDc5LjUgNzYuMyAxNDEuOCAxNTUuOCAxNTUuOGwxMi43IDIuMmMtMTYuNS0yOC42LTI3LjEtNjAuNy0zMC42LTk0LjVsLTI0LjEgNC4zYy05LjcgMS43LTE4LjgtNS44LTE2LjktMTUuNSA0LjgtMjQuNyAxOS4xLTQ2LjYgMzkuNy02MC45bDAtNzQuNmMtMS40IC44LTMgMS4zLTQuNyAxLjZsLTYzIDExLjFjLTguNyAxLjUtMTcuMy00LjQtMTUuOS0xMy4xIDMuMS0xOS42IDE4LjQtMzYgMzkuMS0zOS43IDE3LjItMyAzMy45IDMuNSA0NC42IDE1LjhsMC0yMi43YzAtMjIuNSA2LjktNTIuNCAzMi4zLTczLjQgMjYtMjEuNSA2Ny43LTQzLjkgMTI0LjktNTQuMi0zMC41LTE2LjMtODYuMy0zMi0xNjMuOC0xOC40LTgwLjMgMTQuMi0xMjggNTAuMS0xNTAuMSA3Ni4xLTkgMTAuNS0xMC44IDI0LjktOC40IDM4LjV6TTIwOCAxMzguN2wwIDE3NC44YzAgODAuNyA1MC41IDE1Mi45IDEyNi40IDE4MC40TDM2Mi4xIDUwNGMxNC4xIDUuMSAyOS42IDUuMSA0My43IDBMNDMzLjYgNDk0QzUwOS41IDQ2Ni40IDU2MCAzOTQuMyA1NjAgMzEzLjVsMC0xNzQuOGMwLTYuOS0yLjEtMTMuOC03LTE4LjYtMjIuNi0yMi41LTc4LjItNTYtMTY5LTU2cy0xNDYuNCAzMy42LTE2OSA1NmMtNC45IDQuOS03IDExLjctNyAxOC42em02Ni4xIDE4Ny4xYy0xLjQtNyA3LTExIDEyLjctNi42IDI2LjkgMjAuNiA2MC42IDMyLjkgOTcuMiAzMi45czcwLjItMTIuMyA5Ny4yLTMyLjljNS43LTQuNCAxNC4xLS40IDEyLjcgNi42LTEwLjEgNTEuNC01NS41IDkwLjMtMTA5LjkgOTAuM3MtOTkuOC0zOC44LTEwOS45LTkwLjN6bS41LTEwMS41QzI4MS4yIDIwNS41IDI5OSAxOTIgMzIwIDE5MnMzOC45IDEzLjUgNDUuNCAzMi4zYzIuOSA4LjQtNC41IDE1LjctMTMuNCAxNS43bC02NCAwYy04LjggMC0xNi4zLTcuNC0xMy40LTE1Ljd6TTQ4MCAyNDBsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuNyA2LjUtMTguOCAyNC40LTMyLjMgNDUuNC0zMi4zczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1Ljd6Il19LGd3cj1YTmUsYndyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNyIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgNDEyLjcgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMzM2IDc4LjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzMuNi0zMy42IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzMuNiAwIDAgMzMuNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzMuNiAzMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMzLjYgMCAwLTMzLjZjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LERfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWFzbC1pbnRlcnByZXRpbmciLGljb246WzY0MCw1MTIsWyJhbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyIsImFzbC1pbnRlcnByZXRpbmciLCJoYW5kcy1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyJdLCJmMmEzIiwiTTE1Ni42IDQ2LjNjNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOXMtMzUtMS41LTQyLjkgMTQuM0wxMy41IDE4OS40QzQuNiAyMDcuMiAwIDIyNi44IDAgMjQ2LjdMMCAyNTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsODAgMCAwLS4zYzM1LjItMi43IDY1LjQtMjIuOCA4Mi4xLTUxLjcgOC44LTE1LjMgMy42LTM0LjktMTEuNy00My43cy0zNC45LTMuNi00My43IDExLjdjLTcgMTItMTkuOSAyMC0zNC43IDIwLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBjMTQuOCAwIDI3LjcgOCAzNC43IDIwIDguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdzMjAuNS0yOC40IDExLjctNDMuN2MtMTIuOC0yMi4xLTMzLjYtMzkuMS01OC40LTQ3LjFsODAuOC0yMmMxNy00LjYgMjcuMS0yMi4yIDIyLjUtMzkuM3MtMjIuMi0yNy4xLTM5LjMtMjIuNWwtMTAwLjcgMjcuNSA4MS42LTY4YzEzLjYtMTEuMyAxNS40LTMxLjUgNC4xLTQ1LjFTMjQ5LjEtMy45IDIzNS41IDcuNGwtMTAxLjkgODQuOSAyMy00NnpNNDgzLjQgNDY1LjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w4NS45LTE3MS43YzguOS0xNy44IDEzLjUtMzcuNCAxMy41LTU3LjJsMC05LjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTgwIDAgMCAuM2MtMzUuMiAyLjctNjUuNCAyMi44LTgyLjEgNTEuNy04LjkgMTUuMy0zLjYgMzQuOSAxMS43IDQzLjdzMzQuOSAzLjYgNDMuNy0xMS43YzctMTIgMTkuOS0yMCAzNC43LTIwIDIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwYy0xNC44IDAtMjcuNy04LTM0LjctMjAtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjYtMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnoiXX0seHdyPURfLHZ3cj1EXyx5d3I9RF8sd3dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLXJvdy11bmxvY2siLGljb246WzY0MCw1MTIsW10sImU2OTEiLCJNMjU2IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTI1Ni03OWMtNDYuNyA1LjgtODUuNiAzNi44LTEwMi43IDc5bC0yNS4zIDAgMCA5MC44Yy0xMC4xIDE1LjItMTYgMzMuNC0xNiA1My4xbDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxMjggNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ5ek0xMjggMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptNDMyIDQ4Yy0uMS0xNy42LTE0LjQtMzEuOS0zMi0zMS45LTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODAgNDQuMiAwIDc5LjkgMzUuOCA4MCA3OS45bC00OCAweiJdfSxrd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ja2V0IixpY29uOls1MTIsNTEyLFtdLCJmMTM1IiwiTTEyOCAzMjBMMjQuNSAzMjBjLTI0LjkgMC00MC4yLTI3LjEtMjcuNC00OC41TDUwIDE4My4zQzU4LjcgMTY4LjggNzQuMyAxNjAgOTEuMiAxNjBsOTUgMGM3Ni4xLTEyOC45IDE4OS42LTEzNS40IDI2NS41LTEyNC4zIDEyLjggMS45IDIyLjggMTEuOSAyNC42IDI0LjYgMTEuMSA3NS45IDQuNiAxODkuNC0xMjQuMyAyNjUuNWwwIDk1YzAgMTYuOS04LjggMzIuNS0yMy4zIDQxLjJsLTg4LjIgNTIuOWMtMjEuMyAxMi44LTQ4LjUtMi42LTQ4LjUtMjcuNEwxOTIgMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0uMSAwek00MDAgMTYwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LFN3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHJpbXAiLGljb246WzUxMiw1MTIsWzEyOTQyNF0sImU0NDgiLCJNNzIgMzJDMzIuMiAzMiAwIDY0LjIgMCAxMDQgMCAxNDEuOSAyOS4zIDE3Mi45IDY2LjQgMTc1LjggNzcuNiAyNTcuMiAxNDcuNCAzMjAgMjMyIDMyMGw1NiAwIDAtMTkyLTIxNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM1OC43IDgwIDcyIDgwbDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDcyIDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMSAwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42IDAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEpOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW5nZS1zaWduIixpY29uOlszODQsNTEyLFs4Mzc2LCJ0ZW5nZSJdLCJmN2Q3IiwiTTAgNTZDMCA0Mi43IDEwLjcgMzIgMjQgMzJsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgODBDMTAuNyA4MCAwIDY5LjMgMCA1NnpNMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwIDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sTXdyPUpOZSxlT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiY2xpbmljLW1lZGljYWwiXSwiZjdmMiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjI0IDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sQ3dyPWVPZSx6d3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtc2xhc2giLGljb246WzY0MCw1MTIsW10sImUwNzMiLCJNNzMtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjkuNy0uMyAzOSA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIxLjggMjI0YzU2LjYtMSAxMDIuMi00Ny4yIDEwMi4yLTEwNCAwLTU3LjQtNDYuNi0xMDQtMTA0LTEwNC01Ni44IDAtMTAzIDQ1LjYtMTA0IDEwMi4yTDczLTI0Ljl6TTUxMiAyODhjLTE3LjIgMC0zMy43IDMuNC00OC43IDkuNmwxNzAgMTcwYzQuMi01LjQgNi43LTEyLjIgNi43LTE5LjZsMC0zMmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOHpNNTkuOSA5Ny43Yy0yMS41IDEyLjUtMzUuOSAzNS43LTM1LjkgNjIuMyAwIDM5LjggMzIuMiA3MiA3MiA3MiAyNi42IDAgNDkuOC0xNC40IDYyLjMtMzUuOUw1OS45IDk3Ljd6TTI1MC4yIDI4OEMxOTYuOCAzMTMuOSAxNjAgMzY4LjcgMTYwIDQzMmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1MC4yIDAtMTkyLTE5MnpNMTI4IDI4OEM1Ny4zIDI4OCAwIDM0NS4zIDAgNDE2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODYuNyAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTE2YzAtNTMuMiAyMC0xMDEuOCA1Mi45LTEzOC42LTExLjctMy41LTI0LjEtNS40LTM2LjktNS40ek02MTYgMTYwYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHoiXX0sX3dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNNTM2LjQtMjYuM2M5LjgtMy41IDIwLjYtMSAyOCA2LjNzOS44IDE4LjIgNi4zIDI4bC0xNzggNDk2LjljLTUgMTMuOS0xOC4xIDIzLjEtMzIuOCAyMy4xLTE0LjIgMC0yNy04LjYtMzIuMy0yMS43bC02NC4yLTE1OGMtNC41LTExLTIuNS0yMy42IDUuMi0zMi42bDk0LjUtMTEyLjRjNS4xLTYuMSA0LjctMTUtLjktMjAuNnMtMTQuNi02LTIwLjYtLjlMMjI5LjIgMjc2LjFjLTkuMSA3LjYtMjEuNiA5LjYtMzIuNiA1LjJMMzguMSAyMTYuOGMtMTMuMS01LjMtMjEuNy0xOC4xLTIxLjctMzIuMyAwLTE0LjcgOS4yLTI3LjggMjMuMS0zMi44bDQ5Ni45LTE3OHoiXX0sdE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stYXRsYXMiLGljb246WzQ0OCw1MTIsWyJhdGxhcyJdLCJmNTU4IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0zMTAuNiAyMDhMMjc5IDIwOGMtMS40IDIzLjEtNiA0NC4yLTEyLjYgNjEuMiAyMi43LTEyLjUgMzkuNC0zNC44IDQ0LjItNjEuMnptLTE3My4xIDBjNC44IDI2LjQgMjEuNSA0OC43IDQ0LjIgNjEuMi02LjctMTctMTEuMi0zOC0xMi42LTYxLjJsLTMxLjYgMHptNzYuNCA1NWM0LjUgOS42IDguMiAxMy44IDEwLjIgMTUuNSAyLTEuNyA1LjctNS44IDEwLjItMTUuNSA2LjItMTMuNCAxMS4xLTMyLjUgMTIuNy01NWwtNDUuOCAwYzEuNiAyMi41IDYuNSA0MS42IDEyLjcgNTV6bS0xMi43LTg3bDQ1LjggMGMtMS42LTIyLjUtNi41LTQxLjYtMTIuNy01NS00LjUtOS42LTguMi0xMy44LTEwLjItMTUuNS0yIDEuNy01LjcgNS44LTEwLjIgMTUuNS02LjIgMTMuNC0xMS4xIDMyLjUtMTIuNyA1NXptMTA5LjUgMGMtNC44LTI2LjQtMjEuNS00OC43LTQ0LjItNjEuMiA2LjcgMTcgMTEuMiAzOCAxMi42IDYxLjJsMzEuNiAwek0xNjkgMTc2YzEuNC0yMy4xIDYtNDQuMiAxMi42LTYxLjItMjIuNyAxMi41LTM5LjQgMzQuOC00NC4yIDYxLjJsMzEuNiAwek05NiAxOTJhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHoiXX0sVHdyPXRPZSxMd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUiLGljb246WzQ0OCw1MTIsW10sImYwY2UiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMC02LjUtLjNDMjUuMiA0NzYuNCAwIDQ0OS4xIDAgNDE2TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTY0IDMyMGwwIDk2IDEyOCAwIDAtOTYtMTI4IDB6bTE5MiAwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHpNNjQgMjU2bDEyOCAwIDAtOTYtMTI4IDAgMCA5NnptMTkyIDBsMTI4IDAgMC05Ni0xMjggMCAwIDk2eiJdfSxEd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQiLGljb246WzUxMiw1MTIsWzEyODE1MywxMjgxNTQsMTI4MTU1LDEyODE1NiwxMjg0MjAsMTI5MjkzLDEyOTI5NCwxMjk1MDUsOTgyOSwxMDA4NCw2MTU3OF0sImYwMDQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6Il19LHJPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi11cCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLXVwIl0sImYxMzkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM3NyAyNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODctODctODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzNzcgMjcxeiJdfSwkd3I9ck9lLGFPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWhhbGYiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTMiXSwiZjI0MiIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEF3cj1hT2Usd3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbNjI1MDEsNjI2OTQsImZvbnQtYXdlc29tZS1mbGFnIiwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbCJdLCJmMmI0IiwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTIgMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCA0MTkgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjQgMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzIgNDkzLjcgMTMzLjFjMS41LTMuNCAyLjMtNyAyLjMtMTAuNyAwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2eiJdfSxFd3I9d3VlLEl3cj13dWUsUHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRjdWZmcyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmOCIsIk0zMjAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyek0xOTIgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNTIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTZjMCAxIC4xIDEuOSAuMiAyLjktNzQuNyAyNi4zLTEyOC4yIDk3LjUtMTI4LjIgMTgxLjEgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC04My43LTUzLjUtMTU0LjgtMTI4LjItMTgxLjEgLjEtLjkgLjItMS45IC4yLTIuOWwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwek02NCAzMjBhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHptNDQ4IDBjMCA2Ni45LTUxLjMgMTIxLjgtMTE2LjYgMTI3LjUtMTQuMyAyMi44LTMyLjQgNDMuMS01My40IDU5LjkgMTMuNSAzIDI3LjYgNC42IDQyIDQuNiAxMDYgMCAxOTItODYgMTkyLTE5MiAwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEyLjMgMC0yMi40IDkuMi0yMy44IDIxLjEgMzAuMyAxOS4yIDU2LjEgNDUgNzUuMiA3NS40IDY1LjQgNS44IDExNi42IDYwLjYgMTE2LjYgMTI3LjV6TTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LE53cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtY293Ym95LXNpZGUiLGljb246WzY0MCw1MTIsW10sImY4YzEiLCJNNjQwIDM4OC4zYzAgMTYuOS03LjEgMzIuMi0xOC40IDQzLjFsLTM1LTIzLjMtMjkyLjctMTk1LjFjLTM2LjEtMjQuMS03OC42LTM2LjktMTIyLTM2LjlsLTMuOSAwYy0yLjcgMC01LjQgMC04IC4xbDIyLjItMTAwYzUuNy0yNS44IDI4LjYtNDQuMSA1NS00NC4xIDEyLjIgMCAyNC4xIDQgMzMuOCAxMS4zbDQuNyAzLjVjMjYuMyAxOS43IDYyLjQgMTkuNyA4OC42IDBsNC43LTMuNWM5LjgtNy4zIDIxLjYtMTEuMyAzMy44LTExLjMgMjYuNCAwIDQ5LjMgMTguMyA1NSA0NC4xbDMzIDE0OC41QzU3NC41IDIzMi4zIDY0MCAzMDIuNiA2NDAgMzg4LjN6TTE3MS45IDIyNGMzMy45IDAgNjcuMSAxMCA5NS40IDI4LjlMNTYwIDQ0OCA1NiA0NDhjLTMwLjkgMC01Ni0yNS4xLTU2LTU2IDAtOTIuOCA3NS4yLTE2OCAxNjgtMTY4bDMuOSAweiJdfSxPd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kdXN0cnkiLGljb246WzUxMiw1MTIsW10sImYyNzUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3OS44YzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xbC0xNTYuNiA4NC4zIDAtNjMuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxMjggMjE1LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxSd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluZXMtbGVhbmluZyIsaWNvbjpbMzg0LDUxMixbXSwiZTUxZSIsIk0xOTAuNCA3NC4xYzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC0xMjggMzg0Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDEyOC0zODR6bTcwLjktNDEuN2MtMTcuNC0yLjktMzMuOSA4LjktMzYuOCAyNi4zbC02NCAzODRjLTIuOSAxNy40IDguOSAzMy45IDI2LjMgMzYuOHMzMy45LTguOSAzNi44LTI2LjNsNjQtMzg0YzIuOS0xNy40LTguOS0zMy45LTI2LjMtMzYuOHpNMzUyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxGd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzc3BvcnQiLGljb246WzM4NCw1MTIsW10sImY1YWIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek05NiA0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMjc4LjYgMjA4Yy00LjggMjYuNC0yMS41IDQ4LjctNDQuMiA2MS4yIDYuNy0xNyAxMS4yLTM4IDEyLjYtNjEuMmwzMS42IDB6bS0xNzMuMSAwbDMxLjYgMGMxLjQgMjMuMSA2IDQ0LjIgMTIuNiA2MS4yLTIyLjctMTIuNS0zOS40LTM0LjgtNDQuMi02MS4yem03Ni40IDU1Yy02LjItMTMuNC0xMS4xLTMyLjUtMTIuNy01NWw0NS44IDBjLTEuNiAyMi41LTYuNSA0MS42LTEyLjcgNTUtNC41IDkuNi04LjIgMTMuOC0xMC4yIDE1LjUtMi0xLjctNS43LTUuOC0xMC4yLTE1LjV6bTAtMTQyYzQuNS05LjYgOC4yLTEzLjggMTAuMi0xNS41IDIgMS43IDUuNyA1LjggMTAuMiAxNS41IDYuMiAxMy40IDExLjEgMzIuNSAxMi43IDU1bC00NS44IDBjMS42LTIyLjUgNi41LTQxLjYgMTIuNy01NXptOTYuNyA1NUwyNDcgMTc2Yy0xLjQtMjMuMS02LTQ0LjItMTIuNi02MS4yIDIyLjcgMTIuNSAzOS40IDM0LjggNDQuMiA2MS4yek0xMzcgMTc2bC0zMS42IDBjNC44LTI2LjQgMjEuNS00OC43IDQ0LjItNjEuMi02LjcgMTctMTEuMiAzOC0xMi42IDYxLjJ6bTE4MyAxNmExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAweiJdfSxCd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5maW5pdHkiLGljb246WzY0MCw1MTIsWzg3MzQsOTg1NF0sImY1MzQiLCJNMCAyNTZjMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgNTAuNCAwIDk3LjggMjMuNyAxMjggNjRsMzIgNDIuNyAzMi00Mi43YzMwLjItNDAuMyA3Ny42LTY0IDEyOC02NCA4OC40IDAgMTYwIDcxLjYgMTYwIDE2MFM1NjguNCA0MTYgNDgwIDQxNmMtNTAuNCAwLTk3LjgtMjMuNy0xMjgtNjRsLTMyLTQyLjctMzIgNDIuN2MtMzAuMiA0MC4zLTc3LjYgNjQtMTI4IDY0LTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwem0yODAgMGwtNDMuMi01Ny42Yy0xOC4xLTI0LjItNDYuNi0zOC40LTc2LjgtMzguNC01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzMwLjIgMCA1OC43LTE0LjIgNzYuOC0zOC40TDI4MCAyNTZ6bTgwIDBsNDMuMiA1Ny42YzE4LjEgMjQuMiA0Ni42IDM4LjQgNzYuOCAzOC40IDUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0zMC4yIDAtNTguNyAxNC4yLTc2LjggMzguNEwzNjAgMjU2eiJdfSxId3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvbmUiLGljb246WzUxMiw1MTIsW10sImYyNGQiLCJNMjg4IDQ0OGwtMjI0IDAgMC0yMjQgNDggMCAwLTY0LTQ4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDgtNjQgMCAwIDQ4em0tNjQtOTZsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxxd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5M10sImYwNGUiLCJNMzcxLjcgNDMuMUMzNjAuMSAzMiAzNDMgMjguOSAzMjguMyAzNS4yUzMwNCA1NiAzMDQgNzJsMCAxMzYuMy0xNzIuMy0xNjUuMUMxMjAuMSAzMiAxMDMgMjguOSA4OC4zIDM1LjJTNjQgNTYgNjQgNzJsMCAzNjhjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlMMzA0IDMwMy43IDMwNCA0NDBjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlsMTkyLTE4NGM3LjktNy41IDEyLjMtMTggMTIuMy0yOC45cy00LjUtMjEuMy0xMi4zLTI4LjlsLTE5Mi0xODR6Il19LFZ3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtIixpY29uOls0NDgsNTEyLFsxMDldLCI0ZCIsIk0yMi43IDMzLjRjMTMuNS00LjEgMjguMSAxLjEgMzUuOSAxMi45TDIyNCAyOTQuMyAzODkuNCA0Ni4zYzcuOC0xMS43IDIyLjQtMTcgMzUuOS0xMi45UzQ0OCA0OS45IDQ0OCA2NGwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3OC4zLTEzMy40IDIwMC4xYy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuNyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDkuOSA5LjIgMzcuNSAyMi43IDMzLjR6Il19LGp3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLXNwaWtlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTU2OCIsIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjgtMjYuNiA0OS44TDY0IDM1MiA2NCAxMTYuOHpNMzIgMzg0bDU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sVXdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluIixpY29uOls1MTIsNTEyLFsxMjc5NTZdLCJmNmZjIiwiTTI1Ni41IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41LTcuMiAxMi4xLTIwLjMgMTkuNS0zNC4zIDE5LjVsLTQzMiAwYy0xNC4xIDAtMjcuMS03LjQtMzQuMy0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDAgMi45LTQuNkMyMzEuNyA2LjIgMjQzLjYgMCAyNTYuNSAwek0xNzAuNCAyNDkuOWwyNi44IDI2LjhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNDMuMy00My4zYzYtNiAxNC4xLTkuNCAyMi42LTkuNGw0Mi44IDAtNzIuMS0xMzMuNS04Ni4xIDE1OS40eiJdfSxXd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MiLGljb246WzUxMiw1MTIsW10sImY0MzkiLCJNMTY4IDU2bDAgNDAtNzguMSAwYy0xNC4zIDAtMjUuOSAxMS42LTI1LjkgMjUuOSAwIDQgLjkgOCAyLjcgMTEuNmwzMy40IDY2LjhjLTExLjQgMS44LTIwLjIgMTEuNy0yMC4yIDIzLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRsNS42IDAtMTMuNiAxMzYtNTYuMiA3MC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyNDguOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDI4OCAzODQgMjc0LjQgMjQ4IDI4MCAyNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjQgMC0xMS45LTguNy0yMS45LTIwLjItMjMuN2wzMy40LTY2LjhjMS44LTMuNiAyLjctNy42IDIuNy0xMS42IDAtMTQuMy0xMS42LTI1LjktMjUuOS0yNS45bC03OC4xIDAgMC00MCAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzI0NS4zIDggMjMyIDhsLTE2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMxNjgtMjEuMyAxNjgtOGwwIDE2LTE2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMHpNMzI1LjggMjc5LjZsOC41IDg1LjUgNDcuNCA1OS4yIDQuMiA1LjdjOS4yIDEzLjcgMTQuMSAyOS45IDE0LjEgNDYuNSAwIDEyLjctMi44IDI0LjgtNy45IDM1LjVsODMuMSAwYzIwLjMgMCAzNi44LTE2LjUgMzYuOC0zNi44IDAtNy4zLTIuMi0xNC40LTYuMi0yMC40bC0yNS44LTM4LjcgMC02NCAxMy4zLTEzLjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYtMzIgMCAwLTE2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCAyMi40LTEwLjIgNDIuNC0yNi4yIDU1LjZ6Il19LCRfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLXRocmVlLXF1YXJ0ZXJzIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMyIsInRoZXJtb21ldGVyLTMiLCJ0aGVybW9tZXRlci10aHJlZS1xdWFydGVycyJdLCJmMmM4IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM0wxMzYgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNTYuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LEd3cj0kXyxZd3I9JF8sS3dyPSRfLFp3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiIixpY29uOlszMjAsNTEyLFs5OF0sIjQyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuNyAxOC43LTIyLjMgMzAtNTEgMzAtODIuMyAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMTYwIDIyNGwtOTYgMCAwLTEyOCA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0ek02NCAyODhsMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMTI4eiJdfSxRd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLXZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDZjIiwiTTI1My40IDIuOUMyNDkuMiAxIDI0NC43IDAgMjQwIDBzLTkuMiAxLTEzLjQgMi45TDM4LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjUzLjQgMi45ek0yNDAgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjA4IDI2NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFh3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXRlY29pbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQzIiwiTTEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTU3LjktMzguNiAxMWMtMTIuNyAzLjYtMjAuMSAxNi45LTE2LjUgMjkuN3MxNi45IDIwLjEgMjkuNyAxNi41TDY0IDI3MS44IDY0IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xNjIuNSAxMzQuNi0zOC41YzEyLjctMy42IDIwLjEtMTYuOSAxNi41LTI5LjdzLTE2LjktMjAuMS0yOS43LTE2LjVMMTI4IDIwMy42IDEyOCA2NHoiXX0sSndyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZDYiLGljb246WzUxMiw1MTIsW10sImY2ZDEiLCJNMjI0LjQgOC4zQzI0NC0yLjggMjY4LTIuOCAyODcuNiA4LjNsMTc2IDk5LjdjMjAgMTEuNCAzMi40IDMyLjYgMzIuNCA1NS43bDAgMTk3LjRjMCAyMy0xMi40IDQ0LjMtMzIuNCA1NS43bC0xNzYgOTkuN2MtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBsLTE3Ni05OS43QzI4LjQgNDA1LjUgMTYgMzg0LjIgMTYgMzYxLjJsMC0xOTcuNGMwLTIzIDEyLjQtNDQuMyAzMi40LTU1LjdsMTc2LTk5Ljd6TTEwMi42IDE1NS42Yy04LjgtMy4xLTE4LjggLjMtMjMuOCA4LjZzLTMuMiAxOC43IDMuNiAyNWwzLjIgMi40IDE1MC4yIDkwLjIgMCAxNDguN2MwIDExIDkgMjAgMjAgMjAgMTEgMCAyMC05IDIwLTIwbDAtMTQ4LjcgMTUwLjMtOTAuMmM5LjUtNS43IDEyLjYtMTggNi45LTI3LjRzLTE4LTEyLjUtMjcuNC02LjlsLTE0OS43IDg5LjgtMTQ5LjctODkuOC0zLjctMS43eiJdfSxla3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC1saW5lcy12ZXJ0aWNhbCIsaWNvbjpbMTkyLDUxMixbXSwiZjdhNSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDY0em0xMjggMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0eiJdfSxpT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ29sZi1iYWxsLXRlZSIsaWNvbjpbMzg0LDUxMixbImdvbGYtYmFsbCJdLCJmNDUwIiwiTTI5OC41IDM4NC4xYzEyLjEgMS4yIDIxLjUgMTEuNSAyMS41IDIzLjlzLTkuNCAyMi42LTIxLjUgMjMuOWwtMi41IC4xLTgwIDAgMCA4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTg4LTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTIuNCA5LjQtMjIuNiAyMS41LTIzLjlsMi41LS4xIDIwOCAwIDIuNSAuMXpNMTkyIDBjMTA2IDAgMTkyIDg2IDE5MiAxOTIgMCA1Ny40LTI1LjIgMTA4LjgtNjUuMSAxNDRMNjUuMSAzMzZDMjUuMiAzMDAuOCAwIDI0OS40IDAgMTkyIDAgODYgODYgMCAxOTIgMHptMzIgMjQwYy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bTY0LTY0Yy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bS04MC0xNmMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2eiJdfSx0a3I9aU9lLHJrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uIixpY29uOls1NzYsNTEyLFsxMTA0M10sImYzMTIiLCJNMzMuNSAyMjAuM2MtMTIuNyAyMi4yLTEyLjcgNDkuNCAwIDcxLjVsOTYuMiAxNjguMWMxMi44IDIyLjQgMzYuNyAzNi4yIDYyLjUgMzYuMmwxOTEuNiAwYzI1LjggMCA0OS43LTEzLjggNjIuNS0zNi4ybDk2LjItMTY4LjFjMTIuNy0yMi4yIDEyLjctNDkuNCAwLTcxLjVMNDQ2LjMgNTIuMkM0MzMuNSAyOS44IDQwOS42IDE2IDM4My44IDE2TDE5Mi4yIDE2Yy0yNS44IDAtNDkuNyAxMy44LTYyLjUgMzYuMkwzMy41IDIyMC4zeiJdfSxha3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTU2IDIyNS42TDMyLjQgMjk2LjIgMzIuNCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRsMTE3LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTM2NS40IDBjLTQxLjMgMC03OCAyNi40LTkxLjEgNjUuNnpNNDc3LjggNDQ4TDk5IDQ0OGMtMzIuOCAwLTU1LjktMzIuMS00NS41LTYzLjJsNDgtMTQ0QzEwOCAyMjEuMiAxMjYuNCAyMDggMTQ3IDIwOGwzNzguOCAwYzMyLjggMCA1NS45IDMyLjEgNDUuNSA2My4ybC00OCAxNDRjLTYuNSAxOS42LTI0LjkgMzIuOC00NS41IDMyLjh6Il19LGlrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrYWFiYSIsaWNvbjpbNTEyLDUxMixbMTI4MzMxXSwiZjY2YiIsIk0yNTYgNTEuM0w5Mi44IDExMi40IDI0Ny41IDE3MS4xYzUuNSAyLjEgMTEuNSAyLjEgMTcgMEw0MTkuMiAxMTIuNCAyNTYgNTEuM3pNMCAxMjkuM2MwLTIwIDEyLjQtMzcuOSAzMS4xLTQ0LjlsMjA4LTc4YzEwLjktNC4xIDIyLjgtNC4xIDMzLjcgMGwyMDggNzhjMTguNyA3IDMxLjEgMjQuOSAzMS4xIDQ0LjlsMCAzNi0yNTMuMiA5NmMtMS44IC43LTMuOCAuNy01LjcgMGwtMjUzLjItOTYgMC0zNnptMCAxNDBsMC01Mi43IDIzNi4xIDg5LjZjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDIzNi4xLTg5LjYgMCA1Mi43LTEyOCA0OC42IDAgNTEuMyAxMjgtNDguNiAwIDYyLjJjMCAyMC0xMi40IDM3LjktMzEuMSA0NC45bC0yMDggNzhjLTEwLjkgNC4xLTIyLjggNC4xLTMzLjcgMGwtMjA4LTc4QzEyLjQgNDIwLjcgMCA0MDIuNyAwIDM4Mi43bDAtNjIuMiAxMjggNDguNiAwLTUxLjMtMTI4LTQ4LjZ6TTIzNi4xIDQxMC4xYzEyLjggNC45IDI2LjkgNC45IDM5LjcgMGw2MC4xLTIyLjggMC01MS4zLTc3LjIgMjkuM2MtMS44IC43LTMuOCAuNy01LjcgMGwtNzcuMi0yOS4zIDAgNTEuMyA2MC4xIDIyLjh6Il19LHNrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmciLGljb246WzU3Niw1MTIsW10sImY0YmQiLCJNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxua3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLXJpZ2h0IixpY29uOlsxOTIsNTEyLFtdLCJlODFjIiwiTTY0IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAweiJdfSxva3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLWRyb3BsZXQiLGljb246WzMyMCw1MTIsW10sImU0YzQiLCJNODAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTAzLjNjNjQuOSAyMC40IDExMiA4MSAxMTIgMTUyLjdsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTcxLjYgNDcuMS0xMzIuMyAxMTItMTUyLjdMMTEyIDMyQzk0LjMgMzIgODAgMTcuNyA4MCAwem04MCA0MTZjMzUuMyAwIDY0LTMyLjQgNjQtNjQgMC0yMS4yLTI4LjktNjQuNS00Ny45LTkwLjYtOC4xLTExLjEtMjQuMi0xMS4xLTMyLjMgMC0xOSAyNi4xLTQ3LjkgNjkuNC00Ny45IDkwLjYgMCAzMS42IDI4LjcgNjQgNjQgNjR6Il19LGxrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sY2tyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tcmlnaHQiLGljb246WzMyMCw1MTIsWzkwMDJdLCJmMDU0IiwiTTMxMS4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDMuMiAyNTYgNzMuOSA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6Il19LGRrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlZ2ciLGljb246WzM4NCw1MTIsWzEyOTM3MF0sImY3ZmIiLCJNMTkyIDQ5NkM4NiA0OTYgMCAzOTQgMCAyODggMCAxNzYgNjQgMTYgMTkyIDE2UzM4NCAxNzYgMzg0IDI4OGMwIDEwNi04NiAyMDgtMTkyIDIwOHpNMTU0LjggMTM0YzYuNS02IDctMTYuMSAxLTIyLjZzLTE2LjEtNy0yMi42LTFjLTIzLjkgMjEuOC00MS4xIDUyLjctNTIuMyA4NC4yLTExLjIgMzEuNi0xNi45IDY1LjEtMTYuOSA5My41IDAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNC41IDUtNTQuNCAxNS4xLTgyLjggMTAuMS0yOC41IDI1LTU0LjEgNDMuNy03MS4yeiJdfSxzT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZG9tZSIsaWNvbjpbNTEyLDUxMixbImxhbmRtYXJrLWFsdCJdLCJmNzUyIiwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIC45IDAgMS44IC4xIDIuNi04MC41IDEzLjQtMTQ0IDc2LjktMTU3LjUgMTU3LjRMNjQgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMTYwLTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDQ0OCA0MTYgNDQ4IDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMi43IDBjLTEzLjUtODAuNC03Ny0xNDMuOS0xNTcuNS0xNTcuNCAuMS0uOSAuMS0xLjcgLjEtMi42IDAtMTcuNy0xNC4zLTMyLTMyLTMyem04MCAyNTZsNjQgMCAwIDE2MC02NCAwIDAtMTYwek0yMjQgNDE2bDAtMTYwIDY0IDAgMCAxNjAtNjQgMHpNMTEyIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6Il19LHVrcj1zT2UscGtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvcm0iLGljb246WzQ0OCw1MTIsW10sImU1OTkiLCJNMjI0IDk2YzAtNTMgNDMtOTYgOTYtOTZsMzguNCAwQzQwNy45IDAgNDQ4IDQwLjEgNDQ4IDg5LjZMNDQ4IDM3NmMwIDc1LjEtNjAuOSAxMzYtMTM2IDEzNlMxNzYgNDUxLjEgMTc2IDM3NmwwLTgwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwbDAgMTY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4UzAgNDkwLjUgMCA0NjRMMCAyOTZjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZzMTM2IDYwLjkgMTM2IDEzNmwwIDgwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0xODQtMzIgMGMtNTMgMC05Ni00My05Ni05NnptMTQ0LThhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sZmtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItaW5qdXJlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjcyOCIsIk0yNDIuNyA4MEwzMzQgODBjLTEwLjctMjQuNi0yOS41LTQ0LjktNTIuOS01Ny42TDI0Mi43IDgwem0tLjktNzAuN0MyMzYgOC40IDIzMCA4IDIyNCA4IDE3NC44IDggMTMyLjUgMzcuNiAxMTQgODBsODAuNiAwIDQ3LjEtNzAuN3pNMjI0IDI0OGM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwtMjQwIDBjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjB6TTk4LjcgMzQxLjhDNDkuMyAzNzAuMiAxNiA0MjMuNSAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwxNTEgMC05NS44LTE3MC4yem00NS4xLTE3LjdsNDIuNyA3NS45IDg1LjUgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDExLjQtMi40IDIyLjItNi43IDMybDU5LjIgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTkwLjktNzMuNy0xNjQuNi0xNjQuNi0xNjQuNmwtODYuOSAwYy0xMi42IDAtMjQuOSAxLjQtMzYuNyA0LjF6TTIxMy41IDQ0OGwzNiA2NCAyMi41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU4LjUgMHoiXX0saGtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cmlrZXRocm91Z2giLGljb246WzUxMiw1MTIsW10sImYwY2MiLCJNOTYgMTU3LjVDOTYgODguMiAxNTIuMiAzMiAyMjEuNSAzMkwzNjggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMjIxLjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxbDQ0LjEgNS41IDIyMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4My4xIDBDMTAzIDIwNC42IDk2IDE4MS44IDk2IDE1Ny41ek0zNDkuMiAzMzZsNjUuNSAwYy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNSAwIDY5LjMtNTYuMiAxMjUuNS0xMjUuNSAxMjUuNUwxNDQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0Ni41IDBjMzQgMCA2MS41LTI3LjUgNjEuNS02MS41IDAtNi40LTEtMTIuNy0yLjgtMTguNXoiXX0sbWtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsb2ciLGljb246WzUxMiw1MTIsW10sImY3ODEiLCJNMjI0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0IDE0NS44IDAgMjY0IDExOC4yIDI2NCAyNjQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTkuMy05Ni43LTIxNi0yMTYtMjE2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek04MCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNiA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NFMyNTUuNSA1MTIgMTc2IDUxMiAzMiA0NDcuNSAzMiAzNjhsMC0yMjRjMC0yNi41IDIxLjUtNDggNDgtNDh6bTE2OCAwYzkyLjggMCAxNjggNzUuMiAxNjggMTY4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMy01My43LTEyMC0xMjAtMTIwLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGdrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2gtMjAiLGljb246WzQ0OCw1MTIsW10sImUwNmYiLCJNMTY4LjUgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMjUuM2MtMTA4IDExLjktMTkyIDEwMy41LTE5MiAyMTQuNyAwIDExOS4zIDk2LjcgMjE2IDIxNiAyMTZzMjE2LTk2LjcgMjE2LTIxNmMwLTM5LjgtMTAuOC03Ny4xLTI5LjYtMTA5LjJsMjguMi0yOC4yYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0yMy40IDIzLjRjLTMyLjktMzAuMi03NS4yLTUwLjMtMTIyLTU1LjVsMC0yNS4zIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwem0tNjAgMjQwYzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAzLjhjMCAxMS43LTMuMiAyMy4xLTkuMyAzM2wtNDMuOCA3MS4yIDMzLjEgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTU3LjggMGMtMTQuNSAwLTI2LjItMTEuNy0yNi4yLTI2LjIgMC00LjkgMS4zLTkuNiAzLjktMTMuOGw1Ni43LTkyLjFjMi4yLTMuNiAzLjQtNy44IDMuNC0xMi4xbDAtMy44YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMHptMTgwLTUyYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTI4LjcgMjMuMy01MiA1Mi01MnptLTEyIDUybDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyeiJdfSxia3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGlja3VwIixpY29uOls2NDAsNTEyLFsxMjg3NjNdLCJmNjNjIiwiTTM2My44IDk2bDU3LjYgOTYtMTMzLjQgMCAwLTk2IDc1LjggMHpNNDk2IDE5Mkw0MTguNiA2My4xQzQwNy4xIDQzLjggMzg2LjIgMzIgMzYzLjggMzJMMjU2IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOC0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMi40IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE2MC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDMyLjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek0xMTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6bTM3Ni00MGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LG5PZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWVkbGluZyIsaWNvbjpbNTEyLDUxMixbMTI3NzkzLCJzcHJvdXQiXSwiZjRkOCIsIk01MTIgMzJDNTEyIDE0MC4xIDQzNS40IDIzMC4zIDMzMy42IDI1MS40IDMyNS43IDE5My4zIDI5OS42IDE0MSAyNjEuMSAxMDAuNSAzMDEuMiA0MCAzNjkuOSAwIDQ0OCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzIgMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6Il19LHhrcj1uT2Usb09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYW5zZ2VuZGVyIixpY29uOls1NzYsNTEyLFs5ODk1LCJ0cmFuc2dlbmRlci1hbHQiXSwiZjIyNSIsIk0xMjgtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTcuOSAzMiAxMzYgNzAuMSAxNTEgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0xNSAxNSAxNC4yIDE0LjJjMjcuOS0yMy44IDY0LjItMzguMiAxMDMuOC0zOC4yIDM2LjcgMCA3MC42IDEyLjQgOTcuNiAzMy4yTDQ2Ni43IDMyIDQ0OCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTg0LjQgODQuNGMxMyAyMy4xIDIwLjQgNDkuOSAyMC40IDc4LjMgMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAzNS4yIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM1LjJjLTczLTE0LjgtMTI4LTc5LjQtMTI4LTE1Ni44IDAtMzEuNCA5LTYwLjcgMjQuNy04NS40bC0xNi43LTE2LjctMTUgMTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTUtMTUtMzguMS0zOC4xIDAgMzAuMWMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDExMy43IDAgOTZMMCAwQzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDB6TTI4OCAzMzZhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LHZrcj1vT2UseWtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTMwNC4xIDcuNmMwLTExLjEtNy42LTIwLjctMTguNC0yMy4zcy0yMS45IDIuNS0yNyAxMi40TDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjkxIDQxNi4xYzgtNC4xIDEzLjEtMTIuNCAxMy4xLTIxLjRsMC0zODcuMXoiXX0sbE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob3RvLWZpbG0iLGljb246WzY0MCw1MTIsWyJwaG90by12aWRlbyJdLCJmODdjIiwiTTE5MiA2NGMwLTM1LjMgMjguNy02NCA2NC02NEw1NzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0ek0zMjAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTU2LjUgMTEuNUM0NzIuMSAxMDAuNCA0NjQuNCA5NiA0NTYgOTZzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTQgODguMy0xNy45LTI1LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMyNzkuMSAyODggMjg4IDI4OGwyNTYgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0ek0xNDQgMTI4bDAgMTYwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEybDE5MiAwIDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwek01MiAxOTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHptMCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSx3a3I9bE9lLGtrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWN0dXJlLWluLXBpY3R1cmUiLGljb246WzUxMiw1MTIsW10sImU4MGIiLCJNNDQ4IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTEyLTY0IDAgMC0xMTItMzg0IDAgMCAzMjAgMTQ0IDAgMCA2NC0xNDQgMC02LjUtLjNjLTMwLjEtMy4xLTU0LjEtMjctNTcuMS01Ny4xTDAgNDE2IDAgOTZDMCA2Mi45IDI1LjIgMzUuNiA1Ny41IDMyLjNMNjQgMzIgNDQ4IDMyem0xNiAyMjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNjAgMHoiXX0sU2tyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1bXAtbWVkaWNhbCIsaWNvbjpbMzIwLDUxMixbXSwiZTA2YSIsIk05NiAwbDAgODAgMTI4IDAgMC0yNCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDggMjk2IDhsLTcyIDAgMC04YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwQzExMC4zLTMyIDk2LTE3LjcgOTYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTY0IDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sTWtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUiLGljb246WzQ0OCw1MTIsWzEyODI5M10sImYwNmQiLCJNMTYwLjUtMjYuNGM5LjMtNy44IDIzLTcuNSAzMS45IC45IDEyLjMgMTEuNiAyMy4zIDI0LjQgMzMuOSAzNy40IDEzLjUgMTYuNSAyOS43IDM4LjMgNDUuMyA2NC4yIDUuMi02LjggMTAtMTIuOCAxNC4yLTE3LjkgMS4xLTEuMyAyLjItMi43IDMuMy00LjEgNy45LTkuOCAxNy43LTIyLjEgMzAuOC0yMi4xIDEzLjQgMCAyMi44IDExLjkgMzAuOCAyMi4xIDEuMyAxLjcgMi42IDMuMyAzLjkgNC44IDEwLjMgMTIuNCAyNCAzMC4zIDM3LjcgNTIuNCAyNy4yIDQzLjkgNTUuNiAxMDYuNCA1NS42IDE3Ni42IDAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRTMCA0MTEuNyAwIDI4OGMwLTkxLjEgNDEuMS0xNzAgODAuNS0yMjUgMTkuOS0yNy43IDM5LjctNDkuOSA1NC42LTY1LjEgOC4yLTguNCAxNi41LTE2LjcgMjUuNS0yNC4yek0yMjUuNyA0MTZjMjUuMyAwIDQ3LjctNyA2OC44LTIxIDQyLjEtMjkuNCA1My40LTg4LjIgMjguMS0xMzQuNC00LjUtOS0xNi05LjYtMjIuNS0ybC0yNS4yIDI5LjNjLTYuNiA3LjYtMTguNSA3LjQtMjQuNy0uNS0xNy4zLTIyLjEtNDkuMS02Mi40LTY1LjMtODMtNS40LTYuOS0xNS4yLTgtMjEuNS0xLjktMTguMyAxNy44LTUxLjUgNTYuOC01MS41IDEwNC4zIDAgNjguNiA1MC42IDEwOS4yIDExMy43IDEwOS4yeiJdfSxjT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1wbHVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLXBsdXMiXSwiZjAwZSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIwOCAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sQ2tyPWNPZSx6a3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhc2siLGljb246WzQ0OCw1MTIsW10sImYwYzMiLCJNMjg4IDBMMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMyczE0LjMgMzIgMzIgMzJMMTI4IDIxNS41IDcuNSA0MjYuM0MyLjYgNDM1IDAgNDQ0LjcgMCA0NTQuNyAwIDQ4Ni40IDI1LjYgNTEyIDU3LjMgNTEybDMzMy40IDBjMzEuNiAwIDU3LjMtMjUuNiA1Ny4zLTU3LjMgMC0xMC0yLjYtMTkuOC03LjUtMjguNEwzMjAgMjE1LjUgMzIwIDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzMzNy43IDAgMzIwIDBMMjg4IDB6TTE5MiAyMTUuNWwwLTE1MS41IDY0IDAgMCAxNTEuNWMwIDExLjEgMi45IDIyLjEgOC40IDMxLjhsNDEuNiA3Mi43LTE2NCAwIDQxLjYtNzIuN2M1LjUtOS43IDguNC0yMC42IDguNC0zMS44eiJdfSxfa3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tcmlnaHQiLGljb246WzQ0OCw1MTIsW10sImYwMzgiLCJNNDQ4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDE5MiA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sZE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhYmxlLWNhciIsaWNvbjpbNTEyLDUxMixbMTI4NjczLDU3NTUxLCJ0cmFtIl0sImY3ZGEiLCJNMjg4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTYwIDI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTMyIDI4OGMwLTM1LjMgMjguNy02NCA2NC02NGwxMzYgMCAwLTk2LjItMTkzLjQgNTUuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDIyNC02NCAwIDAgMjI0LTY0YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTIwNi42IDU5IDAgMTA5LjkgMTM2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2MHptODAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDAgMC05Ni01NiAwem0xODQgOTZsMC05Ni04MCAwIDAgOTYgODAgMHptNDggMGw1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtNTYgMCAwIDk2eiJdfSxUa3I9ZE9lLHVPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbImZpcnN0LWFpZCJdLCJmNDc5IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2IDAgMC0zODQtMTYgMHptNjQgMGwwIDM4NCAyNTYgMCAwLTM4NC0yNTYgMHpNNDQ4IDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMCAwIDM4NCAxNiAwek0yMjQgMTg0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxMa3I9dU9lLERrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzIixpY29uOls0NDgsNTEyLFtdLCJmN2E0IiwiTTMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAyODh6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MHoiXX0scE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cmdlciIsaWNvbjpbNTEyLDUxMixbImhhbWJ1cmdlciJdLCJmODA1IiwiTTQ4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDI4OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNkw0OCAzODR6TTMyIDIwMmMwIDEyLjIgOS45IDIyIDIyIDIyTDQ1OCAyMjRjMTIuMiAwIDIyLTkuOSAyMi0yMiAwLTE3LjItMi42LTM0LjQtMTAuOC00OS41LTIyLjItNDAuOC04Mi4zLTEyMC41LTIxMy4yLTEyMC41UzY1IDExMS42IDQyLjggMTUyLjVDMzQuNiAxNjcuNiAzMiAxODQuOCAzMiAyMDJ6TTAgMzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTI1NiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTEyMCAxMjhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQ4LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sJGtyPXBPZSxBa3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd21hbiIsaWNvbjpbNjQwLDUxMixbOTczMSw5OTI0XSwiZjdkMCIsIk00MDMgMjExLjdjMzIuMi0yNC45IDUzLTYzLjkgNTMtMTA3LjcgMC03NS4xLTYwLjktMTM2LTEzNi0xMzZTMTg0IDI4LjkgMTg0IDEwNGMwIDQzLjkgMjAuOCA4Mi45IDUzIDEwNy43LTMyLjIgMTYuMy01OSA0MS44LTc2LjggNzMuMUwxMTIgMjY0LjIgMTEyIDIyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5LjYtMjIuNS05LjdjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41YzM2LjEgMTUuNSA3NS45IDMyLjUgMTE5LjQgNTEuMi0zLjkgMTQuOS02IDMwLjYtNiA0Ni43IDAgNzAgMzkuMSAxMzAuOCA5Ni42IDE2MS45IDcuOSA0LjMgMTYuOSA2LjEgMjUuOSA2LjFsMTIzIDBjOSAwIDE4LTEuOCAyNS45LTYuMSA1Ny41LTMxLjEgOTYuNi05MiA5Ni42LTE2MS45IDAtMTYuMi0yLjEtMzEuOC02LTQ2LjcgNDMuNS0xOC43IDgzLjQtMzUuNyAxMTkuNC01MS4yIDEyLjItNS4yIDE3LjgtMTkuMyAxMi42LTMxLjVzLTE5LjMtMTcuOC0zMS41LTEyLjZsLTIyLjUgOS43IDAtMTkuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLjItNDguMiAyMC42Yy0xNy45LTMxLjMtNDQuNi01Ni44LTc2LjgtNzMuMXpNMjk2IDQxNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNC0xMjBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yNDggODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNMzY4IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjkyLjIgMTU5LjNjLTIuNy00LjgtNC4yLTEwLjItNC4yLTE1LjcgMC0xNy41IDE0LjItMzEuNiAzMS42LTMxLjZsLjggMGMxNy41IDAgMzEuNiAxNC4yIDMxLjYgMzEuNiAwIDUuNS0xLjQgMTAuOS00LjIgMTUuN0wzMjcgMTk1LjhjLTMuMSA1LjQtMTAuOCA1LjQtMTMuOSAwbC0yMC45LTM2LjZ6Il19LEVrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3RlbCIsaWNvbjpbNTEyLDUxMixbMTI3OTc2XSwiZjU5NCIsIk0xNiAyNEMxNiAxMC43IDI2LjcgMCA0MCAwTDQ3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MTYgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDQwIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MTYtOCAwQzI2LjcgNDggMTYgMzcuMyAxNiAyNHptMjA4IDg4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTEyOCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem05NiAxMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzUyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTExMiAyMDhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMjQwLTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTI4OCAzODRsNDMuOCAwYzkuOSAwIDE3LjUtOSAxNC0xOC4yLTEzLjgtMzYuMS00OC44LTYxLjgtODkuNy02MS44cy03NS45IDI1LjctODkuNyA2MS44Yy0zLjUgOS4yIDQuMSAxOC4yIDE0IDE4LjJsNDMuOCAwIDAgODAgNjQgMCAwLTgweiJdfSxJa3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJpbnQiLGljb246WzUxMiw1MTIsWzEyODQyNCwxMjg0MzgsOTExM10sImYwMmYiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzQxLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w0Mi41IDQyLjVjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDM3LjUtMzg0IDAgMC04MHpNMCAyNTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek0xMjggNDE2bDAgMzIgMjU2IDAgMC05Ni0yNTYgMCAwIDY0ek00NTYgMjcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2xsZXliYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NTIsInZvbGxleWJhbGwtYmFsbCJdLCJmNDVmIiwiTTUxMiAyNTguOWMtMjMuNCA4LTQ3LjggMTMuMS03Mi42IDE1LjEgNS45LTk4LjYtMzAuNy0xOTEuMS05NC45LTI1OC4zIDk3LjggMzYgMTY3LjUgMTMwIDE2Ny41IDI0MC4zIDAgMSAwIDEuOSAwIDIuOXptLTUuOSA1MmMtNS4yIDIzLjctMTMuNiA0Ni4yLTI0LjkgNjYuOS05NC43IDUyLjItMjE0IDUwLTMwOC40LTEzLjYgMjEuNy0zMS4zIDQ5LjgtNTguOSA4My44LTgwLjUgNzkuNSA0MS42IDE2OC41IDQ5LjEgMjQ5LjUgMjcuMXpNMjc5LjcgMjQxLjZjLTMuNy04OS43LTQxLjctMTcwLjUtMTAxLjMtMjI5LjcgMjIuMy03LjEgNDYtMTEuMiA3MC41LTExLjkgOTIuNSA1NS45IDE1MC4zIDE2MC4zIDE0Mi40IDI3My44LTM4LTMuMi03NS45LTEzLjctMTExLjYtMzIuM3pNMTMwLjUgMzIuOEMxNDkuMSA0OS4xIDE2NS44IDY3LjcgMTc5LjkgODguMiA5MS41IDEzMi4zIDI5LjcgMjEwLjMgMy43IDI5OS41IDEuMyAyODUuMyAwIDI3MC44IDAgMjU2IDAgMTYwLjIgNTIuNiA3Ni43IDEzMC41IDMyLjh6bTczLjQgOTdjMTYuMyAzNC41IDI2LjEgNzIuNiAyNy45IDExMi44LTc1LjggNDgtMTI2LjggMTIxLjMtMTQ4LjMgMjAyLjUtMTcuNi0xNi4xLTMzLTM0LjYtNDUuNS01NSAyLjEtMTA4LjEgNjMuNy0yMTAuNCAxNjUuOS0yNjAuM3pNMjU2IDUxMmMtNDcuNyAwLTkyLjMtMTMtMTMwLjUtMzUuNyA0LjgtMjQuMyAxMi42LTQ4IDIzLjItNzAuNCA4Mi40IDU0LjQgMTgwLjggNjguOSAyNzEgNDctNDQuNCAzNy0xMDEuNSA1OS4yLTE2My43IDU5LjJ6Il19LFBrcj1mT2UsTmtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWZmaWMtbGlnaHQiLGljb246WzMyMCw1MTIsWzEyODY3OF0sImY2MzciLCJNNjQtMzJDMjguNy0zMiAwLTMuMyAwIDMyTDAgMzg0YzAgODguNCA3MS42IDE2MCAxNjAgMTYwczE2MC03MS42IDE2MC0xNjBsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQtMzJ6bTk2IDM5MmMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTEwNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6TTE2MCAxNTJhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6Il19LE9rcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NTUiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LG1wZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VycyIsaWNvbjpbNjQwLDUxMixbXSwiZjBjMCIsIk0zMjAgMTZhMTA0IDEwNCAwIDEgMSAwIDIwOCAxMDQgMTA0IDAgMSAxIDAtMjA4ek05NiA4OGE3MiA3MiAwIDEgMSAwIDE0NCA3MiA3MiAwIDEgMSAwLTE0NHpNMCA0MTZjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggMTIuOCAwIDI1LjIgMS45IDM2LjkgNS40LTMyLjkgMzYuOC01Mi45IDg1LjQtNTIuOSAxMzguNmwwIDE2YzAgMTEuNCAyLjQgMjIuMiA2LjcgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyem01MjEuMyA2NGM0LjMtOS44IDYuNy0yMC42IDYuNy0zMmwwLTE2YzAtNTMuMi0yMC0xMDEuOC01Mi45LTEzOC42IDExLjctMy41IDI0LjEtNS40IDM2LjktNS40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTg2LjcgMHpNNDcyIDE2MGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTE2MCA0MzJjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBzMTYwIDcxLjYgMTYwIDE2MGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sUmtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlcnRpZmljYXRlIixpY29uOls1NzYsNTEyLFtdLCJmMGEzIiwiTTIzOS4yLThjLTYuMS02LjItMTUtOC43LTIzLjQtNi40UzIwMC45LTUuNiAxOTguOCAyLjhMMTgzLjUgNjNjLTEuMSA0LjQtNS42IDctOS45IDUuN0wxMTMuOCA1MS45Yy04LjQtMi40LTE3LjQgMC0yMy41IDYuMXMtOC41IDE1LjEtNi4xIDIzLjVsMTYuOSA1OS44YzEuMiA0LjMtMS40IDguOC01LjcgOS45TDM1LjEgMTY2LjVjLTguNCAyLjEtMTUgOC43LTE3LjMgMTcuMXMuMiAxNy4zIDYuNCAyMy40bDQ0LjUgNDMuM2MzLjIgMy4xIDMuMiA4LjMgMCAxMS41TDI0LjMgMzA1LjFjLTYuMiA2LjEtOC43IDE1LTYuNCAyMy40czguOSAxNC45IDE3LjMgMTcuMWw2MC4yIDE1LjNjNC40IDEuMSA3IDUuNiA1LjcgOS45TDg0LjIgNDMwLjVjLTIuNCA4LjQgMCAxNy40IDYuMSAyMy41czE1LjEgOC41IDIzLjUgNi4xbDU5LjgtMTYuOWM0LjMtMS4yIDguOCAxLjQgOS45IDUuN2wxNS4zIDYwLjJjMi4xIDguNCA4LjcgMTUgMTcuMSAxNy4zczE3LjMtLjIgMjMuNC02LjRsNDMuMy00NC41YzMuMS0zLjIgOC4zLTMuMiAxMS41IDBMMzM3LjMgNTIwYzYuMSA2LjIgMTUgOC43IDIzLjQgNi40czE0LjktOC45IDE3LjEtMTcuM0wzOTMuMSA0NDljMS4xLTQuNCA1LjYtNyA5LjktNS43bDU5LjggMTYuOWM4LjQgMi40IDE3LjQgMCAyMy41LTYuMXM4LjUtMTUuMSA2LjEtMjMuNWwtMTYuOS01OS44Yy0xLjItNC4zIDEuNC04LjggNS43LTkuOWw2MC4yLTE1LjNjOC40LTIuMSAxNS04LjcgMTcuMy0xNy4xcy0uMi0xNy40LTYuNC0yMy40bC00NC41LTQzLjNjLTMuMi0zLjEtMy4yLTguMyAwLTExLjVsNDQuNS00My4zYzYuMi02LjEgOC43LTE1IDYuNC0yMy40cy04LjktMTQuOS0xNy4zLTE3LjFsLTYwLjItMTUuM2MtNC40LTEuMS03LTUuNi01LjctOS45bDE2LjktNTkuOGMyLjQtOC40IDAtMTcuNC02LjEtMjMuNXMtMTUuMS04LjUtMjMuNS02LjFMNDAzIDY4LjhjLTQuMyAxLjItOC44LTEuNC05LjktNS43TDM3Ny44IDIuOGMtMi4xLTguNC04LjctMTUtMTcuMS0xNy4zcy0xNy4zIC4yLTIzLjQgNi40TDI5NCAzNi41Yy0zLjEgMy4yLTguMyAzLjItMTEuNSAwTDIzOS4yLTh6Il19LEZrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGFybS1jbG9jayIsaWNvbjpbNTEyLDUxMixbOTIwMF0sImYzNGUiLCJNNTA0LjQgMTMyLjVjLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMjcuOC00MC02Ni4xLTcyLjItMTExLTkyLjYtMTAuNC00LjctMTMuNy0xOC4zLTQuMS0yNC42IDE1LTkuOSAzMy0xNS43IDUyLjMtMTUuNyA1Mi42IDAgOTUuMiA0Mi42IDk1LjIgOTUuMiAwIDEzLjItMi43IDI1LjgtNy42IDM3LjN6bS00NzEuOSAuNGMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNDQuOCAyMC40LTgzLjEgNTIuNi0xMTEgOTIuNnpNMzkwLjIgNDY3LjRDMzUyLjggNDk1LjQgMzA2LjMgNTEyIDI1NiA1MTJzLTk2LjgtMTYuNi0xMzQuMS00NC42TDg2LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDM1LjItMzUuMkM0OC42IDM4NC44IDMyIDMzOC4zIDMyIDI4OCAzMiAxNjQuMyAxMzIuMyA2NCAyNTYgNjRTNDgwIDE2NC4zIDQ4MCAyODhjMCA1MC4zLTE2LjYgOTYuOC00NC42IDEzNC4ybDM1LjIgMzUuMmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMzUuMi0zNS4yek0yODAgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTA0YzAgNi40IDIuNSAxMi41IDcgMTdsNTYgNTZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00OS00OSAwLTk0LjF6Il19LEJrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxpY29wdGVyLXN5bWJvbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMiIsIk00NDUuNCAyMjRsNjQuNyAwQzQ5NS42IDEwOC4yIDQwMy44IDE2LjQgMjg4IDJsMCA2NC43QzM2OC40IDgwLjEgNDMxLjkgMTQzLjYgNDQ1LjQgMjI0ek01MTAgMjg4bC02NC43IDBDNDMxLjkgMzY4LjQgMzY4LjQgNDMxLjkgMjg4IDQ0NS4zbDAgNjQuN2MxMTUuOC0xNC40IDIwNy42LTEwNi4yIDIyMi0yMjJ6TTIgMjg4QzE2LjQgNDAzLjggMTA4LjIgNDk1LjYgMjI0IDUxMGwwLTY0LjdDMTQzLjYgNDMxLjkgODAuMiAzNjguNCA2Ni43IDI4OEwyIDI4OHptMC02NGw2NC43IDBDODAuMiAxNDMuNiAxNDMuNiA4MC4xIDIyNCA2Ni43TDIyNCAyQzEwOC4yIDE2LjQgMTYuNCAxMDguMiAyIDIyNHptMjA2LTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA5NiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTk2IDAgMC02NHoiXX0saE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktY3JhY2siLGljb246WzUxMiw1MTIsWyJob3VzZS1kYW1hZ2UiXSwiZjZmMSIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTA1LjYgMC0zOC40LTY0IDgwLjgtNjcuM2M3LjgtNi41IDcuNi0xOC42LS40LTI0LjlMMjE4LjYgMjYzLjJjLTE0LjYtMTEuNS0zMy44IDctMjIuOCAyMkwyNTYgMzY4IDE3MC41IDQzOS4yYy02LjEgNS03LjUgMTMuOC0zLjUgMjAuNWwzMS4zIDUyLjItODYuNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6Il19LEhrcj1oT2UscWtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1taWxpdGFyeS1wb2ludGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YSIsIk0yMTQuOSAxNC4xQzIwMiAxNS4yIDE5MiAyNiAxOTIgMzkgMTkyIDUyLjggMjAzLjIgNjQgMjE3IDY0bDE1MSAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMwLjZDMzg0IDggMzc2IC43IDM2Ni43IDEuNEwyMTQuOSAxNC4xek0yMDggMTEyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZMMjA5LjYgOTZjLTEgNS4yLTEuNiAxMC41LTEuNiAxNnpNNDAgMjI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDE1MiAwIDAgODkuNCAxNjIuOC0xNjIuOGMtMTMuMy00LjMtMjcuMy02LjUtNDEuNi02LjVMNDAgMjI0em0zNDUuNyAyMC45bC0xNzEuMSAxNzEuMSAxNjkuNCAwIDAtNDYuMyA1My42IDkwLjZjMTEuMiAxOSAzNS44IDI1LjMgNTQuOCAxNC4xczI1LjMtMzUuOCAxNC4xLTU0LjhMNDMwLjMgMjkwLjhjLTExLjItMTktMjYuNi0zNC41LTQ0LjYtNDUuOXpNMTkyIDQ0OGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzItMTkyIDB6Il19LFZrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkYXRhYmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFjMCIsIk00NDggMjA1LjhjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0LTQ3IDE2LjgtMTA4LjcgMjYuMi0xNzQuNSAyNi4yUzk2LjQgMjQ2LjUgNDkuNSAyMjkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCAyODhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC04Mi4yem0wLTc3LjhsMC00OEM0NDggMzUuOCAzNDcuNyAwIDIyNCAwUzAgMzUuOCAwIDgwbDAgNDhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODB6TTM5OC41IDM4OS44QzM1MS42IDQwNi41IDI4OS45IDQxNiAyMjQgNDE2Uzk2LjQgNDA2LjUgNDkuNSAzODkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCA0MzJjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC02Ni4yYy0xNC44IDkuOC0zMS44IDE3LjctNDkuNSAyNHoiXX0samtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ld3NwYXBlciIsaWNvbjpbNTEyLDUxMixbMTI4MjQwXSwiZjFlYSIsIk0wIDQxNkwwIDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMTYwIDEyOGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTI0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDB6bS0yNC03MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNjAgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDB6Il19LFVrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1yYWluIixpY29uOls1MTIsNTEyLFsxMjc3ODMsOTkyNl0sImY3M2QiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTEuNiA2OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTE1MiAwYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTEyMS44IDY4LjJsMzAuMi02OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNnoiXX0sbU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1heGltaXplIixpY29uOls0NDgsNTEyLFsiZXhwYW5kLWFycm93cy1hbHQiXSwiZjMxZSIsIk0xNjggMzJMMjQgMzJDMTAuNyAzMiAwIDQyLjcgMCA1NkwwIDIwMGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSAyMjMuOCA0MSAyMTdsNDAtNDAgNzkgNzktNzkgNzktNDAtNDBjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMCAzMDIuMyAwIDMxMkwwIDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGM5LjcgMCAxOC41LTUuOCAyMi4yLTE0LjhzMS43LTE5LjMtNS4yLTI2LjJsLTQwLTQwIDc5LTc5IDc5IDc5LTQwIDQwYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzI3MC4zIDQ4MCAyODAgNDgwbDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMnMtMTkuMy0xLjctMjYuMiA1LjJsLTQwIDQwLTc5LTc5IDc5LTc5IDQwIDQwYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTNDQ4IDIwOS43IDQ0OCAyMDBsMC0xNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRMMjgwIDMyYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhTMjU2LjIgNjYuMSAyNjMgNzNsNDAgNDAtNzkgNzktNzktNzkgNDAtNDBjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMiAxNjggMzJ6Il19LFdrcj1tT2UsR2tyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWFycm93IixpY29uOls1MTIsNTEyLFtdLCJmMTI0IiwiTTQ3Ny45IDc1LjVjNC41LTExLjggMS43LTI1LjItNy4yLTM0LjFzLTIyLjMtMTEuOC0zNC4xLTcuMmwtNDE2IDE2MEM3LjkgMTk5LS4zIDIxMS4yIDAgMjI0LjdzOS4xIDI1LjQgMjEuOSAyOS42bDE3Ni44IDU4LjkgNTguOSAxNzYuOGM0LjMgMTIuOCAxNi4xIDIxLjYgMjkuNiAyMS45czI1LjctNy45IDMwLjYtMjAuNWwxNjAtNDE2eiJdfSxZa3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2l0eSIsaWNvbjpbNTc2LDUxMixbMTI3OTYxXSwiZjY0ZiIsIk0zMjAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMi00OCAwIDAtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3Mi02NCAwIDAtNzJDOTYgMTAuNyA4NS4zIDAgNzIgMFM0OCAxMC43IDQ4IDI0bDAgNzRjLTI3LjYgNy4xLTQ4IDMyLjItNDggNjJMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAgMC0xMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzIwIDB6bTY0IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2em0tMTYgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHptMTYgMTEybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6bTExMi0xNmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwek0yNTYgMzA0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6TTI0MCAxOTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMTI4IDMwNGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0xMTIgMTkyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6Il19LEtrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4LXJheSIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5NyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMzIwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0em0yODAgNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCA0OC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDAgMCA0OC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMCAwLTQ4IDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDAgMC00OCA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtMTZ6Il19LFprcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bWJyZWxsYS1iZWFjaCIsaWNvbjpbNTEyLDUxMixbMTI3OTU4XSwiZjVjYSIsIk00OTcuNSAzNDEuMWMtNS45IDE2LjctMjUuMyAyMy00MS4xIDE1LjFsLTE3OC4yLTg5LjEtMS42IDMuMi04OC44IDE3Ny43IDI5Mi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDg0LjIgMCAxMDMuMi0yMDYuMyAxLjYtMy4yLTE2NS40LTgyLjdjLTE1LjgtNy45LTIyLjQtMjcuMy0xMi41LTQyIDQ1LjktNjguNiAxMjQuMS0xMTMuOCAyMTIuOS0xMTMuOCAxNDEuNCAwIDI1NiAxMTQuNiAyNTYgMjU2IDAgMjkuOC01LjEgNTguNS0xNC41IDg1LjF6Il19LGdPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbiJdLCJmMDkwIiwiTTM1MiA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0tOS40IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wyNDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LFFrcj1nT2UsWGtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWRzZXQiLGljb246WzQ0OCw1MTIsW10sImY1OTAiLCJNMjI0IDY0Yy03OSAwLTE0NC43IDU3LjMtMTU3LjcgMTMyLjcgOS4zLTMgMTkuMy00LjcgMjkuNy00LjdsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwYy01MyAwLTk2LTQzLTk2LTk2bDAtNjRDMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0bDAgMTY4LjFjMCA2Ni4zLTUzLjggMTIwLTEyMC4xIDEyMGwtODcuOS0uMS0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAwIDQwIDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0yMC45Yy0xNC4xIDguMi0zMC41IDEyLjgtNDggMTIuOGwtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwYzEwLjQgMCAyMC4zIDEuNiAyOS43IDQuNy0xMy03NS4zLTc4LjYtMTMyLjctMTU3LjctMTMyLjd6Il19LEprcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGxvdGNoIixpY29uOls1MTIsNTEyLFtdLCJmNWJjIiwiTTIwOC41IDYyLjNsMjguMS0zNi45QzI0OC44IDkuNCAyNjcuOCAwIDI4OCAwIDMxNi41IDAgMzQxLjYgMTguNyAzNDkuOCA0NmwxNy44IDU5LjRjMTAuMyAzNC40IDM2LjEgNjIgNjkuOCA3NC42bDM5LjggMTQuOWMyMC45IDcuOSAzNC44IDI3LjkgMzQuOCA1MC4yIDAgMTYuOS03LjkgMzIuOC0yMS41IDQyLjlsLTY3LjMgNTAuNWMtMjQuMyAxOC4yLTM3LjIgNDcuOS0zMy44IDc4LjFsMi41IDIyLjdjNC4zIDM4LjctMjYgNzIuNi02NSA3Mi42LTE0LjggMC0yOS4zLTUuMS00MC45LTE0LjNsLTU1LjMtNDQuM2MtNC41LTMuNi05LjMtNi43LTE0LjUtOS4yLTE1LjgtNy45LTMzLjctMTAuNC01MS03LjNMODIuNCA0NTEuOWMtMzQuNiA2LjMtNjYuNC0yMC4zLTY2LjQtNTUuNCAwLTEzLjIgNC43LTI2IDEzLjEtMzYuMmwxMS4yLTEzLjRjMTQuNi0xNy40IDIyLjYtMzkuNCAyMi42LTYyLjEgMC0xOC44LTUuNS0zNy4yLTE1LjgtNTNMOC44IDE3My41QzMuMSAxNjQuNyAwIDE1NC40IDAgMTQzLjkgMCAxMTAuNSAzMC4xIDg1LjEgNjMgOTAuN2w1MS4zIDguN2MzNS45IDYuMSA3Mi4yLTguMiA5NC4yLTM3LjF6Il19LGJPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy1hbHQtdXAiXSwiZjMwYyIsIk0xMzcuNC0yMi42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDEyOCAxMjhjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzAwLjkgMTYwIDI4OCAxNjBsLTY0IDAgMCAzMzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzM2LTY0IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhTLjIgMTE0LjUgOS40IDEwNS40bDEyOC0xMjh6Il19LGVTcj1iT2UsdFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMiLGljb246WzQ0OCw1MTIsW10sImU2OTkiLCJNMjQ4IDEwNi42YzE4LjktOSAzMi0yOC4zIDMyLTUwLjZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMi44IDEuMy01LjUgMi45LTggNC43bC04MC4xLTQ1LjhjMS42LTIwLjgtOC42LTQxLjYtMjcuOS01Mi44QzU3LjIgOTYgMjMgMTA1LjIgNy41IDEzMlMxLjIgMTkzIDI4IDIwOC41YzEuMyAuOCAyLjYgMS41IDQgMi4xbDAgOTAuOGMtMS4zIC42LTIuNyAxLjMtNCAyLjFDMS4yIDMxOS04IDM1My4yIDcuNSAzODBTNTcuMiA0MTYgODQgNDAwLjVjMTkuMy0xMS4xIDI5LjQtMzIgMjcuOC01Mi44bDUwLjUtMjguOWMtMTEuNS0xMS4yLTE5LjktMjUuNi0yMy44LTQxLjdMODggMzA2LjFjLTIuNi0xLjgtNS4yLTMuMy04LTQuN2wwLTkwLjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtLjEgMS40LS4yIDIuOC0uMiA0LjNjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMTguOSA5LTMyIDI4LjMtMzIgNTAuNmMwIDMwLjkgMjUuMSA1NiA1NiA1NnM1Ni0yNS4xIDU2LTU2YzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtMS42IDIwLjggOC42IDQxLjYgMjcuOCA1Mi44YzI2LjggMTUuNSA2MSA2LjMgNzYuNS0yMC41czYuMy02MS0yMC41LTc2LjVjLTEuMy0uOC0yLjctMS41LTQtMi4xbDAtOTAuOGMxLjQtLjYgMi43LTEuMyA0LTIuMWMyNi44LTE1LjUgMzYtNDkuNyAyMC41LTc2LjVTMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljMi42IDEuOCA1LjIgMy4zIDggNC43bDAgOTAuOGMtMi44IDEuMy01LjUgMi45LTggNC42bC04MC4xLTQ1LjhjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHoiXX0sa3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhvc3BpdGFsIixpY29uOls1NzYsNTEyLFsxMjc5NzMsNjI1ODksImhvc3BpdGFsLWFsdCIsImhvc3BpdGFsLXdpZGUiXSwiZjBmOCIsIk0xMjggNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAwLTY0ek0yNzIgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDk2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMHpNMTI4IDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek0xMTIgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTUxMiAzNjhsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxyU3I9a3VlLGFTcj1rdWUsaVNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYXJhc3NpbmciLGljb246WzU3Niw1MTIsW10sImU1NDkiLCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNTkuNCAzMDQuNUw4OCAyNTYuOSA4OCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDQuNyA0Ny40IDU3LjFjMTEuMyAxMy42IDMxLjUgMTUuNSA0NS4xIDQuMnMxNS41LTMxLjUgNC4yLTQ1LjFsLTczLjctODguOWMtMTguMi0yMi00NS4zLTM0LjctNzMuOS0zNC43bC0zNS45IDBjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45ek00ODAgMjQwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ2NCAzNDRsMCA1OC43LTQxLjQtNDEuNGMtNy4zLTcuMy0xNy42LTEwLjYtMjcuOC05cy0xOC45IDguMS0yMy41IDE3LjNsLTQ4IDk2Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsMjguMS01Ni4zIDU0LjcgNTQuN2MxMi40IDEyLjQgMjkuMSAxOS4zIDQ2LjYgMTkuMyAzNi40IDAgNjUuOS0yOS41IDY1LjktNjUuOUw1NzYgMzQ0YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2ek0yODggNDhjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLS44IDQ5LjdjLTcuOS00LTE3LjUtLjctMjEuNSA3LjJzLS43IDE3LjUgNy4yIDIxLjVsNDggMjRjNy45IDQgMTcuNSAuNyAyMS41LTcuMnMuNy0xNy41LTcuMi0yMS41bC00OC0yNHoiXX0sc1NyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJlbmQtdXAiLGljb246WzUxMiw1MTIsW10sImU1MjkiLCJNNDgwIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMMzU0LjItMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDMuOSAwLTExMS4zIDExMS4zLTk1LjEtODEuNWMtOS03LjctMjIuMi03LjctMzEuMiAwbC0xMTIgOTZjLTEwLjEgOC42LTExLjIgMjMuOC0yLjYgMzMuOHMyMy44IDExLjIgMzMuOCAyLjZsOTYuNC04Mi42IDk2LjQgODIuNmM5LjUgOC4yIDIzLjcgNy42IDMyLjYtMS4zbDEyNy0xMjcgMCA0My45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMNDgwIDh6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMjU2em00Ny4zIDU2Yy0zLjQgMjAuMS0xOS4yIDM2LTM5LjQgMzkuNC00LjQgLjctOC0yLjktOC03LjNsMC0zMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4LjEgMy42IDcuMyA4em0wIDE0NC4xYy43IDQuNC0yLjkgOC03LjMgOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtMzJjMC00LjQgMy42LTguMSA4LTcuMyAyMC4xIDMuNCAzNiAxOS4yIDM5LjQgMzkuNHpNNDU2IDQxNi43YzQuNC0uNyA4IDIuOSA4IDcuM2wwIDMyYzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC4xLTMuNi03LjMtOCAzLjQtMjAuMSAxOS4yLTM2IDM5LjQtMzkuNHpNNDE2LjcgMzEyYy0uNy00LjQgMi45LTggNy4zLThsMzIgMGM0LjQgMCA4IDMuNiA4IDhsMCAzMmMwIDQuNC0zLjYgOC4xLTggNy4zLTIwLjEtMy40LTM2LTE5LjItMzkuNC0zOS40ek0xOTIgMzg0YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0seE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1ydWxlciIsaWNvbjpbNTEyLDUxMixbInBlbmNpbC1ydWxlciJdLCJmNWFlIiwiTTQwNCAwYzE5LjIgMCAzNy42IDcuNiA1MS4xIDIxLjJsMzUuNyAzNS43QzUwNC40IDcwLjQgNTEyIDg4LjggNTEyIDEwOHMtNy42IDM3LjYtMjEuMiA1MS4xTDQ0NS45IDIwNCAzMDggNjYuMSAzNTIuOSAyMS4yQzM2Ni40IDcuNiAzODQuOCAwIDQwNCAwek01OC45IDMxNS4xTDI3NC4xIDEwMCA0MTIgMjM3LjkgMTk2LjkgNDUzLjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4Ljd6TTIyNS40IDgwLjhMODAuOCAyMjUuNCAxMS43IDE1Ni4zYy0xNS42LTE1LjYtMTUuNi00MC45IDAtNTYuNmw4OC04OGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMGw1LjkgNS45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyAzNC45IDM0Ljl6TTQzMS4yIDI4Ni42bDM0LjkgMzQuOS01Ni4zIDU2LjNjLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zczIwLjUgNy44IDI4LjMgMGw1Ni4zLTU2LjMgNS45IDUuOWMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtODggODhjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwbC02OS4xLTY5LjEgMTQ0LjYtMTQ0LjZ6Il19LG5Tcj14T2Usb1NyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGVhdCIsaWNvbjpbNTEyLDUxMixbMTI4MjU3XSwiZjM2MyIsIk00NzAuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzM1MiAxOS4xIDM1MiAzMmwwIDMyLTE2MCAwQzg2IDY0IDAgMTUwIDAgMjU2IDAgMjczLjcgMTQuMyAyODggMzIgMjg4czMyLTE0LjMgMzItMzJjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsMTYwIDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0ek00MS40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxNjAgNDkyLjkgMTYwIDQ4MGwwLTMyIDE2MCAwYzEwNiAwIDE5Mi04NiAxOTItMTkyIDAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0xNjAgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NHoiXX0sbFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbmUiLGljb246WzY0MCw1MTIsWzEyOTQ2MF0sImY1ZDciLCJNMTk3LjQgMTYwYy0zLjkgMC03LjItMi44LTguMS02LjYtMTAuMi00Mi4xLTQ4LjEtNzMuNC05My4zLTczLjQtNTMgMC05NiA0My05NiA5NiAwIDI5LjEgMTIuOSA1NS4xIDMzLjMgNzIuNyA0LjMgMy43IDQuMyAxMC44IDAgMTQuNS0yMC40IDE3LjYtMzMuMyA0My43LTMzLjMgNzIuNyAwIDUzIDQzIDk2IDk2IDk2IDQ1LjIgMCA4My4xLTMxLjMgOTMuMy03My40IC45LTMuOCA0LjItNi42IDguMS02LjZsMjQ1LjEgMGMzLjkgMCA3LjIgMi44IDguMSA2LjYgMTAuMiA0Mi4xIDQ4LjEgNzMuNCA5My4zIDczLjQgNTMgMCA5Ni00MyA5Ni05NiAwLTI5LjEtMTIuOS01NS4xLTMzLjMtNzIuNy00LjMtMy43LTQuMy0xMC44IDAtMTQuNSAyMC40LTE3LjYgMzMuMy00My43IDMzLjMtNzIuNyAwLTUzLTQzLTk2LTk2LTk2LTQ1LjIgMC04My4xIDMxLjMtOTMuMyA3My40LS45IDMuOC00LjIgNi42LTguMSA2LjZsLTI0NS4xIDB6Il19LHZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWZsYW1lLWN1cnZlZCIsaWNvbjpbMzg0LDUxMixbImZpcmUtYWx0Il0sImY3ZTQiLCJNMTUzLjYgMjkuOWwxNi0yMS4zQzE3My42IDMuMiAxODAgMCAxODYuNyAwIDE5OC40IDAgMjA4IDkuNiAyMDggMjEuM2wwIDIyLjFjMCAxMy4xIDUuNCAyNS43IDE0LjkgMzQuN0wzMDcuNiAxNTlDMzU2LjQgMjA1LjYgMzg0IDI3MC4yIDM4NCAzMzcuNyAzODQgNDM0IDMwNiA1MTIgMjA5LjcgNTEyTDE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwbDAtMy44YzAtNDguOCAxOS40LTk1LjYgNTMuOS0xMzAuMWwzLjUtMy41YzQuMi00LjIgMTAtNi42IDE2LTYuNiAxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNkw5NiAyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTMuOWMwLTE4LTcuMi0zNS4zLTE5LjktNDhsLTM4LjYtMzguNmMtMjQtMjQtMzcuNS01Ni43LTM3LjUtOTAuNyAwLTI3LjcgOS01NC44IDI1LjYtNzYuOXoiXX0sY1NyPXZPZSx5T2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzLXNpbXBsZSIsaWNvbjpbNDQ4LDUxMixbImJ1cy1hbHQiXSwiZjU1ZSIsIk05NiAwQzQzIDAgMCA0MyAwIDk2TDAgMzg0YzAgMjkuOCAyMC40IDU0LjkgNDggNjJsMCAzNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMTkyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzRjMjcuNi03LjEgNDgtMzIuMiA0OC02MmwwLTI4OGMwLTUzLTQzLTk2LTk2LTk2TDk2IDB6TTY0IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxkU3I9eU9lLHVTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cy1tYXJzIixpY29uOls2NDAsNTEyLFs5ODkyXSwiZjIyOCIsIk00ODAtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyUzQ2Mi4zIDAgNDgwIDBMNTMwLjcgMCA0NzQgNTYuN2MtMjYuMy0xNS43LTU3LjEtMjQuNy05MC0yNC43LTM1LjQgMC02OC40IDEwLjUtOTYgMjguNS0yNy42LTE4LTYwLjYtMjguNS05Ni0yOC41LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzIzLjMtNC4zIDQ0LjktMTMuMSA2NC0yNS42IDI3LjYgMTggNjAuNiAyOC41IDk2IDI4LjUgOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzYgMC00MS4xLTE0LjEtNzktMzcuOC0xMDlMNTc2IDQ1LjMgNTc2IDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMNDgwLTY0ek0zMzYgMzA5LjJjMjAuMi0yOC42IDMyLTYzLjUgMzItMTAxLjJzLTExLjgtNzIuNi0zMi0xMDEuMmMxNC42LTYuOSAzMC44LTEwLjggNDgtMTAuOCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NDUuOSAzMjAgMzg0IDMyMGMtMTcuMiAwLTMzLjUtMy45LTQ4LTEwLjh6TTI4OCAxNTAuM2MxMC4yIDE2LjkgMTYgMzYuNiAxNiA1Ny43cy01LjggNDAuOS0xNiA1Ny43Yy0xMC4yLTE2LjktMTYtMzYuNi0xNi01Ny43czUuOC00MC45IDE2LTU3Ljd6bS00OC00My41Yy0yMC4yIDI4LjYtMzIgNjMuNS0zMiAxMDEuMnMxMS44IDcyLjYgMzIgMTAxLjJjLTE0LjUgNi45LTMwLjggMTAuOC00OCAxMC44LTYxLjkgMC0xMTItNTAuMS0xMTItMTEyUzEzMC4xIDk2IDE5MiA5NmMxNy4yIDAgMzMuNSAzLjkgNDggMTAuOHoiXX0scFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsZW5kZXIiLGljb246WzUxMiw1MTIsW10sImY1MTciLCJNMCA1NkMwIDI1LjEgMjUuMSAwIDU2IDBMNDM3LjYgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw0NTcuMSA4MCAzNDQgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwLTkuMS05Ni02Mi45IDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgNTZ6TTExNC4zIDE5MkwxMDAuNiA0OCA1NiA0OGMtNC40IDAtOCAzLjYtOCA4bDAgMTI4YzAgNC40IDMuNiA4IDggOGw1OC4zIDB6TTEzNiAzODRsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGZTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1IixpY29uOlszODQsNTEyLFsxMTddLCI1NSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxMDYtODYgMTkyLTE5MiAxOTJTMCAzOTQgMCAyODhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnoiXX0sWl89e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUiLGljb246WzUxMiw1MTIsWyJtYWlsLWZvcndhcmQiXSwiZjA2NCIsIk0zMDcuOCAxOC40Yy0xMiA1LTE5LjggMTYuNi0xOS44IDI5LjZsMCA4MC0xMTIgMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCAxMTMuMyA4MS41IDE2My45IDEwMC4yIDE3NC4xIDIuNSAxLjQgNS4zIDEuOSA4LjEgMS45IDEwLjkgMCAxOS43LTguOSAxOS43LTE5LjcgMC03LjUtNC4zLTE0LjQtOS44LTE5LjUtOS40LTguOC0yMi4yLTI2LjQtMjIuMi01Ni43IDAtNTMgNDMtOTYgOTYtOTZsOTYgMCAwIDgwYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02Ljl6Il19LGhTcj1aXyx3T2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtZmxpcCIsaWNvbjpbNTEyLDUxMixbMTI4MzgxLCJwaG9uZS1hbHQiXSwiZjg3OSIsIk0zNTEuOCAyNWM3LjgtMTguOCAyOC40LTI4LjkgNDguMS0yMy41bDUuNSAxLjVjNjQuNiAxNy42IDExOS44IDgwLjIgMTAzLjcgMTU2LjQtMzcuMSAxNzUtMTc0LjggMzEyLjctMzQ5LjggMzQ5LjgtNzYuMyAxNi4yLTEzOC44LTM5LjEtMTU2LjQtMTAzLjdsLTEuNS01LjVjLTUuNC0xOS43IDQuNy00MC4zIDIzLjUtNDguMWw5Ny4zLTQwLjVjMTYuNS02LjkgMzUuNi0yLjEgNDcgMTEuOGwzOC42IDQ3LjJjNzAuMy0zNC45IDEyNi44LTkzLjMgMTU5LjMtMTY0LjlsLTQ0LjEtMzYuMWMtMTMuOS0xMS4zLTE4LjYtMzAuNC0xMS44LTQ3TDM1MS44IDI1eiJdfSxtU3I9d09lLGdTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcG9ydGFibGUiLGljb246WzMyMCw1MTIsW10sImU1ODMiLCJNMCA2NGwwIDE2IDMyMCAwIDAtMTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjR6bTI0IDY0TDAgMTI4IDAgNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04IDIyNCAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzYwLTI5NiAwem0yMjQgOTZsMjQgMCAwIDk2LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LGJTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcHJlZ25hbnQiLGljb246WzM4NCw1MTIsW10sImUzMWUiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem04MCAzMjEuMmM4LjYtNC41IDE2LjgtMTAgMjQuMy0xNi41bDQtMy40YzIyLjYtMTkuNCAzNS43LTQ3LjcgMzUuNy03Ny42IDAtMzUuOS0xOC44LTY5LjEtNDkuNi04Ny42bC0zMC40LTE4LjIgMC0xLjhjMC00Ni41LTM3LjctODQuMS04NC4xLTg0LjEtMjguMSAwLTU0LjQgMTQuMS03MCAzNy41TDIxLjQgMjcwLjJjLTkuOCAxNC43LTUuOCAzNC42IDguOSA0NC40czM0LjYgNS44IDQ0LjQtOC45bDI5LTQzLjUtMzAuNSAxMTMuNWMtMi42IDkuNi0uNiAxOS45IDUuNSAyNy44Uzk0IDQxNiAxMDQgNDE2bDggMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMC44eiJdfSx4U3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVzcy10aGFuIixpY29uOls1MTIsNTEyLFs2Mjc3NF0sIjNjIiwiTTQ3Ny4xIDUwLjZjNy40IDE2IC40IDM1LjEtMTUuNiA0Mi41TDEwOC40IDI1NiA0NjEuNCA0MTljMTYgNy40IDIzIDI2LjQgMTUuNiA0Mi41cy0yNi40IDIzLTQyLjUgMTUuNmwtNDE2LTE5MkM3LjMgMjc5LjggMCAyNjguNSAwIDI1NlM3LjMgMjMyLjIgMTguNiAyMjdsNDE2LTE5MmMxNi03LjQgMzUuMS0uNCA0Mi41IDE1LjZ6Il19LHZTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdXBlcnNjcmlwdCIsaWNvbjpbNTc2LDUxMixbXSwiZjEyYiIsIk01NDQgMzJjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRsLTMyIDE2QzQ0OS45IDI3LjMgNDQzLjUgNDYuNSA0NTEuNCA2Mi4zIDQ1NyA3My41IDQ2OC4zIDgwIDQ4MCA4MGwwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMjh6TTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NnMxNC4zIDMyIDMyIDMybDE1LjMgMCA4OS42IDEyOC04OS42IDEyOC0xNS4zIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDI0MCAzMTEuOCAzMjUuOCA0MzQuNGM2IDguNiAxNS44IDEzLjYgMjYuMiAxMy42bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1LjMgMC04OS42LTEyOCA4OS42LTEyOCAxNS4zIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMjQwIDIwMC4yIDE1NC4yIDc3LjZDMTQ4LjIgNjkuMSAxMzguNCA2NCAxMjggNjRMOTYgNjR6Il19LGtPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNjBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0seVNyPWtPZSxTT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLWRvd24iLGljb246WzI1Niw1MTIsWyJhcnJvd3MtdiJdLCJmMDdkIiwiTTE1MC42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiA3Ny4zIDk2IDQzNC43IDU0LjYgMzkzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzYgNiAxNC4xIDkuNCAyMi42IDkuNHMxNi42LTMuNCAyMi42LTkuNGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNDEuNCA0MS40IDAtMzU3LjUgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSx3U3I9U09lLE1PZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb28tc3Rvcm0iLGljb246WzUxMiw1MTIsWyJwb28tYm9sdCJdLCJmNzVhIiwiTTI2OC45LTMxLjhjLTUuNS0uNy0xMSAxLjQtMTQuNSA1LjdzLTQuNiAxMC4xLTIuOCAxNS4zYzIuOCA4LjIgNC4zIDE2LjkgNC4zIDI2LjEgMCAyMS43LTguNSAzNy4yLTIxLjkgNDcuNi0xMy45IDEwLjgtMzQuMSAxNy01OC4xIDE3bC0yNCAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjggMy43IDI4LjggMTAuMiA0MS4xLTQyIDYuNi03NC4yIDQzLTc0LjIgODYuOSAwIDQ2LjYgMzYuMiA4NC43IDgxLjkgODcuOCAzLjEtMTIuNCA5LjktMjMuOCAxOS42LTMyLjVMMjQyLjcgMjI1YzEyLjItMTAuOSAyOC0xNyA0NC40LTE3IDQ0LjYgMCA3Ni41IDQzIDYzLjcgODUuN2wtMTIuNyA0Mi40YzI4LjggMS4yIDUyLjcgMjEuMSA1OS44IDQ3LjlsMjYuMiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4IDAtNDMuOS0zMi4xLTgwLjMtNzQuMi04Ni45IDYuNS0xMi4zIDEwLjItMjYuMiAxMC4yLTQxLjEgMC00OC42LTM5LjQtODgtODgtODhsLTkuNCAwYy45LTUuNCAxLjQtMTAuOSAxLjQtMTYuNiAwLTQ4LjctMzYuMS04OC45LTgzLjEtOTUuMnpNMTQ0LjYgNDE2bDYxLjggMC0zMS4yIDEwNC4xYy0zLjYgMTEuOSA1LjMgMjMuOSAxNy44IDIzLjkgNC42IDAgOS0xLjcgMTIuNC00LjdMMzQ2LjUgNDEyLjljMy41LTMuMSA1LjUtNy42IDUuNS0xMi40IDAtOS4yLTcuNC0xNi42LTE2LjYtMTYuNmwtNjEuOCAwIDMxLjItMTA0LjFjMy42LTExLjktNS4zLTIzLjktMTcuOC0yMy45LTQuNiAwLTkgMS43LTEyLjQgNC43TDEzMy41IDM4Ny4xYy0zLjUgMy4xLTUuNSA3LjYtNS41IDEyLjQgMCA5LjIgNy40IDE2LjYgMTYuNiAxNi42eiJdfSxrU3I9TU9lLFNTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWRlby1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjRlMiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNTMtMTUzIDAtMjIyLjJjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI5LjggNjQgNDEtMjQuOXpNMzIgMTI4bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzcuOCAwIDE1LjMtMS40IDIyLjItNEwzNiAxMDUuOGMtMi42IDYuOS00IDE0LjQtNCAyMi4yek00NjQgMzM2bDczLjUgNTguOGM0LjIgMy40IDkuNCA1LjIgMTQuOCA1LjIgMTMuMSAwIDIzLjctMTAuNiAyMy43LTIzLjdsMC0yNDAuNmMwLTEzLjEtMTAuNi0yMy43LTIzLjctMjMuNy01LjQgMC0xMC42IDEuOC0xNC44IDUuMkw0NjQgMTc2IDQ2NCAzMzZ6Il19LFN1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUteG1hcmsiLGljb246WzQ0OCw1MTIsWzEwMDYyLCJ0aW1lcy1zcXVhcmUiLCJ4bWFyay1zcXVhcmUiXSwiZjJkMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LE1Tcj1TdWUsQ1NyPVN1ZSxDT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWRyb3BsZXQiLGljb246WzU3Niw1MTIsWyJoYW5kLWhvbGRpbmctd2F0ZXIiXSwiZjRjMSIsIk0yNzUuNSA2LjZMMjA5LjIgMTAzQzE5OCAxMTkuMyAxOTIgMTM4LjYgMTkyIDE1OC4zbDAgMS43YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xLjdjMC0xOS44LTYtMzktMTcuMi01NS4zTDMwMC41IDYuNkMyOTcuNyAyLjUgMjkzIDAgMjg4IDBzLTkuNyAyLjUtMTIuNSA2LjZ6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSx6U3I9Q09lLE11ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3b24tc2lnbiIsaWNvbjpbNTEyLDUxMixbODM2MSwia3J3Iiwid29uIl0sImYxNTkiLCJNNjIuNCA1My45QzU2LjggMzcuMSAzOC43IDI4LjEgMjEuOSAzMy42Uy0zLjkgNTcuNCAxLjcgNzQuMUw1Ni45IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAuOSAwIDU2LjcgMTcwLjFjNC41IDEzLjUgMTcuNCAyMi40IDMxLjYgMjEuOXMyNi40LTEwLjQgMjkuOC0yNC4yTDIzMyAyODggMjc5IDI4OCAzMjEgNDU1LjhjMy40IDEzLjggMTUuNiAyMy43IDI5LjggMjQuMnMyNy4xLTguNCAzMS42LTIxLjlMNDM5LjEgMjg4IDQ4MCAyODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0LjkgMCA1NS4zLTE2NS45YzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC02MiAxODYuMS01NC42IDAtNDUuOS0xODMuOEMyODMuNSA0MiAyNzAuNyAzMiAyNTYgMzJzLTI3LjUgMTAtMzEgMjQuMkwxNzkgMjQwIDEyNC40IDI0MCA2Mi40IDUzLjl6bTc4IDIzNC4xbDI2LjYgMC0xMS40IDQ1LjYtMTUuMi00NS42ek0yNDUgMjQwbDExLTQ0LjEgMTEgNDQuMS0yMiAwem0xMDAgNDhsMjYuNiAwLTE1LjIgNDUuNi0xMS40LTQ1LjZ6Il19LF9Tcj1NdWUsVFNyPU11ZSxMU3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib2JqZWN0LXVuZ3JvdXAiLGljb246WzY0MCw1MTIsW10sImYyNDgiLCJNMzIgMTE5LjRDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDAgODcuNyAwIDEwOC40IDEyLjkgMTE5LjQgMzJsMjA5LjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDExMy4xYzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTExMy4xek0xMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMTEzLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDIwOS4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMTEzLjFjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNEwxMTkuNCA5NnpNNTQ0IDI3OS40Yy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRsLTI5LjIgMGMtNS4zLTE3LjctMTQuOC0zMy41LTI3LjQtNDYuNGwwLTE3LjYgNTYuNiAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjQuNiA2NCAwIDAgMjQuNmM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMXoiXX0sRFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQiLGljb246WzUxMiw1MTIsWzEyODQ4OSw2MTY2OV0sImYwNzUiLCJNNTEyIDI0MGMwIDEzMi41LTExNC42IDI0MC0yNTYgMjQwLTM3LjEgMC03Mi4zLTcuNC0xMDQuMS0yMC43TDMzLjUgNTEwLjFjLTkuNCA0LTIwLjIgMS43LTI3LjEtNS44Uy0yIDQ4NS44IDIuOCA0NzYuOGw0OC44LTkyLjJDMTkuMiAzNDQuMyAwIDI5NC4zIDAgMjQwIDAgMTA3LjUgMTE0LjYgMCAyNTYgMFM1MTIgMTA3LjUgNTEyIDI0MHoiXX0sJFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpbGwtYXZhbGFuY2hlIixpY29uOls1NzYsNTEyLFtdLCJlNTA3IiwiTTQ0MC4xIDQwMS45YzM0LjIgMjMuMSA4MS4xIDE5LjUgMTExLjQtMTAuOCAzNC40LTM0LjQgMzQuNC05MC4xIDAtMTI0LjUtMjcuOC0yNy44LTY5LjUtMzMuMS0xMDIuNi0xNi0xMS44IDYuMS0xNi40IDIwLjYtMTAuMyAzMi4zczIwLjYgMTYuNCAzMi4zIDEwLjNjMTUuMS03LjggMzQtNS4zIDQ2LjYgNy4zIDE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC04MS43LTgxLjdjMjIuMy0xNC4yIDM3LjEtMzkuMSAzNy4xLTY3LjUgMC0zMy45LTIxLjEtNjIuOS01MC45LTc0LjUgMS45LTYuOCAyLjktMTQgMi45LTIxLjUgMC00NC4yLTM1LjgtODAtODAtODAtMjcuMyAwLTUxLjUgMTMuNy02NS45IDM0LjYtNS44LTIwLTI0LjItMzQuNi00Ni4xLTM0LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA0IC41IDcuOSAxLjQgMTEuNkw0NDAuMSA0MDEuOXpNNDgwLjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMCAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek02OC43IDg3QzQzLjUgNjEuOCAuNCA3OS43IC40IDExNS4zTC40IDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjcgODd6Il19LEFTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdG8tZXllIixpY29uOls2NDAsNTEyLFtdLCJlNGJmIiwiTTE3NiA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDM4LjEtNjMtNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUzIxLjcgNTUuNiAzMSA2NWw2MyA2My0zOC4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTk2em0wIDQwMGwwLTk2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDM4LjEgMC02MyA2M2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDYzLTYzIDAgMzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0em0zMTIgMjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0zOC4xIDYzIDYzYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjMtNjMgMzguMSAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0ek00NjQgNTZsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zOC4xIDAgNjMtNjNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNjMgNjMgMC0zOC4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0ek0zMjAgMTIwYy01Ny4zIDAtOTkuNCAzNC0xMjUuNiA2NC4zLTIwIDIzLjEtMzIuNCA0NS44LTM3LjYgNTYuMS0yLjUgNS00LjkgOS43LTQuOSAxNS42czIuMyAxMC42IDQuOSAxNS42YzUuMiAxMC4zIDE3LjYgMzMgMzcuNiA1Ni4xIDI2LjIgMzAuMyA2OC4yIDY0LjMgMTI1LjYgNjQuM3M5OS40LTM0IDEyNS42LTY0LjNjMjAtMjMuMSAzMi40LTQ1LjggMzcuNi01Ni4xIDIuNS01IDQuOS05LjcgNC45LTE1LjZzLTIuMy0xMC42LTQuOS0xNS42Yy01LjItMTAuMy0xNy42LTMzLTM3LjYtNTYuMS0yNi4yLTMwLjMtNjguMi02NC4zLTEyNS42LTY0LjN6TTI1NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxFU3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd3Bsb3ciLGljb246WzY0MCw1MTIsW10sImY3ZDIiLCJNMTI4IDE2MGwwLTk2YzAtMzUuMyAyOC43LTY0IDY0LTY0TDI5Ni40IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsODcuNiAxNzUuMWM0LjQgOC45IDYuOCAxOC43IDYuOCAyOC42bDAgNTYuOSA4MCAwIDAtODBjMC00OC42IDM5LjQtODggODgtODggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgMjA4YzAgMjIuMSAxNy45IDQwIDQwIDQwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy00OC42IDAtODgtMzkuNC04OC04OGwwLTgwLTYzIDBjOS41IDE2LjUgMTUgMzUuNiAxNSA1NiAwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMjI0IDBjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyIDAtMzAuNSAxMi4yLTU4LjIgMzItNzguNEw2NCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6bTkxLjcgMzQuOWw0My42IDI5LjEgMTEzLjIgMC04MC0xNjAtMTA0LjQgMCAwIDEwOC44IDI3LjcgMjIuMXpNNDE2IDQwMGMwLTI2LjUtMjEuNS00OC00OC00OGwtMjI0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6bS0yODAgMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yMTYtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yMzIgNDAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LElTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1nYW50dCIsaWNvbjpbNTEyLDUxMixbXSwiZTBlNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNkw2NCA2NHptOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwem02NCAxMTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwek0zODQgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6Il19LHpPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWRlbyIsaWNvbjpbNTc2LDUxMixbInZpZGVvLWNhbWVyYSJdLCJmMDNkIiwiTTk2IDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw5NiA2NHpNNDY0IDMzNmw3My41IDU4LjhjNC4yIDMuNCA5LjQgNS4yIDE0LjggNS4yIDEzLjEgMCAyMy43LTEwLjYgMjMuNy0yMy43bDAtMjQwLjZjMC0xMy4xLTEwLjYtMjMuNy0yMy43LTIzLjctNS40IDAtMTAuNiAxLjgtMTQuOCA1LjJMNDY0IDE3NiA0NjQgMzM2eiJdfSxQU3I9ek9lLE5Tcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy04LjkgNTEuOS0yNCA3MiAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDI2LjcgMTYwIDU2LjIgNzAuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUw1MS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMODAgMzg0IDEwNi43IDIyNCA5NiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjLTE1LjEtMjAuMS0yNC00NS0yNC03MiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sT1NyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN5bmFnb2d1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMzXSwiZjY5YiIsIk0xNiA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzItMTI4IDAgMC0zMnptMCAzNjhsMC0yODggMTI4IDAgMTI2LjItODQuMmMxMC43LTcuMiAyNC44LTcuMiAzNS41IDBsMTI2LjIgODQuMiAxMjggMCAwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0ek01NjAgMTEybC0xMjggMCAwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMnpNMjI0IDM4NGwwIDgwIDEyOCAwIDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjR6bTY0LTE1MmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LFJTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0ZDIiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sRlNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sX09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWVsY2hhaXItbW92ZSIsaWNvbjpbNDQ4LDUxMixbIndoZWVsY2hhaXItYWx0Il0sImUyY2UiLCJNMzEyIDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMjA1LjQgMTI0LjFjLTYuNC01LjItMTUuNi00LjctMjEuNCAxLjFsLTMzLjQgMzMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTM4LjggODBjMjktMjkgNzUuMi0zMS40IDEwNy01LjVsODEuMyA2NmMyMS40IDE3LjQgMjMuOCA0OS4yIDUuMiA2OS41bC00MS44IDQ2IDk4IDBjMzAuMyAwIDUzIDI3LjcgNDcuMSA1Ny40TDQwNy40IDQ1NC4zYy0zLjUgMTcuMy0yMC4zIDI4LjYtMzcuNyAyNS4xcy0yOC42LTIwLjMtMjUuMS0zNy43TDM2OSAzMjAgMzE2LjggMzIwYzIuMSAxMC4zIDMuMiAyMSAzLjIgMzIgMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MiA3MS42IDE5MiAxNjAgMTkyYzYgMCAxMS45IC4zIDE3LjggMWw1MC40LTUwLjQtMjIuNy0xOC41ek0xNjAgNDQ4YTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyeiJdfSxCU3I9X09lLEhTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZjUwNSIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZDOTUuOCAzMDQgMTYgMzgzLjggMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMjUxLjUgMEMyNjEgNDY5LjQgMjQwIDQxNC41IDI0MCAzNTYuNGwwLTMxLjFjMC03LjMgMS0xNC41IDIuOS0yMS4zbC00OC42IDB6bTI1MSAxODQuNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LHFTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib2xkIixpY29uOlszODQsNTEyLFtdLCJmMDMyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwzMiAwIDAgMzIwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuNyAxOC43LTIyLjMgMzAtNTEgMzAtODIuMyAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMjg4IDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMCAwLTEyOCA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0ek0xMjggNDE2bDAtMTI4IDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xMjggMHoiXX0sVE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LXB1bHNlIixpY29uOls1MTIsNTEyLFsiaGVhcnRiZWF0Il0sImYyMWUiLCJNMjU2IDEwNy45TDI0MSA4Ny4xQzIxNiA1Mi41IDE3NS45IDMyIDEzMy4xIDMyIDU5LjYgMzIgMCA5MS42IDAgMTY1LjFsMCAyLjZjMCAyMy42IDYuMiA0OCAxNi42IDcyLjNsMTA2IDBjMy4yIDAgNi4xLTEuOSA3LjQtNC45bDMxLjgtNzYuM2MzLjctOC44IDEyLjMtMTQuNiAyMS44LTE0LjhzMTguMyA1LjQgMjIuMiAxNC4xbDUxLjMgMTEzLjkgNDEuNC04Mi44YzQuMS04LjEgMTIuNC0xMy4zIDIxLjUtMTMuM3MxNy40IDUuMSAyMS41IDEzLjNsMjMuMiA0Ni4zYzEuNCAyLjcgNC4xIDQuNCA3LjIgNC40bDEyMy42IDBjMTAuNS0yNC4zIDE2LjYtNDguNyAxNi42LTcyLjNsMC0yLjZDNTEyIDkxLjYgNDUyLjQgMzIgMzc4LjkgMzIgMzM2LjIgMzIgMjk2IDUyLjUgMjcxIDg3LjFsLTE1IDIwLjd6TTQ2OS42IDI4OGwtOTcuOCAwYy0yMS4yIDAtNDAuNi0xMi01MC4xLTMxbC0xLjctMy40LTQyLjUgODUuMWMtNC4xIDguMy0xMi43IDEzLjUtMjIgMTMuM3MtMTcuNi01LjctMjEuNC0xNC4xbC00OS4zLTEwOS41LTEwLjUgMjUuMmMtOC43IDIwLjktMjkuMSAzNC41LTUxLjcgMzQuNWwtODAuMiAwYzQ3LjIgNzMuOCAxMjMgMTQxLjcgMTcwLjQgMTc3LjkgMTIuNCA5LjQgMjcuNiAxNC4xIDQzLjEgMTQuMXMzMC44LTQuNiA0My4xLTE0LjFDMzQ2LjYgNDI5LjcgNDIyLjQgMzYxLjggNDY5LjYgMjg4eiJdfSxWU3I9VE9lLExPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcm9vdC12YXJpYWJsZSIsaWNvbjpbNTc2LDUxMixbInNxdWFyZS1yb290LWFsdCJdLCJmNjk4IiwiTTI4Mi42IDc4LjFjOC0yNy4zIDMzLTQ2LjEgNjEuNC00Ni4xbDIwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM0NCA5NiAyMzguNyA0NTdjLTMuNiAxMi4zLTE0LjEgMjEuMi0yNi44IDIyLjhzLTI1LjEtNC42LTMxLjUtMTUuNkw3Ny42IDI4OCAzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDUuNiAwYzIyLjggMCA0My44IDEyLjEgNTUuMyAzMS44bDY1LjIgMTExLjggODQuNC0yODkuNXpNMzkzLjQgMjMzLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDEuNCA0MS40IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC00MS40IDQxLjQgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC00MS40LTQxLjQtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w0MS40LTQxLjQtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3oiXX0salNyPUxPZSxET2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYnViYmxlcyIsaWNvbjpbNTEyLDUxMixbImhhbmRzLXdhc2giXSwiZTA1ZSIsIk0zODQgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xMjggNDY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTAgMTYwbC4xIDcyLjZjMCA0NC44IDE3LjYgODcuMSA0Ny45IDExOC40IC4zLTc3IDQwLjEtMTQ4LjQgMTA1LjQtMTg5LjNsMS45LTEuMmMtMi41LTMuNy0yLjgtOC42LS40LTEyLjdsNjItMTA3LjRjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhTMTgyIDUgMTc1LjQgMTYuNWwtNjggMTE3LjggMCAwIDAgMC00My4zIDc1IDAtNDkuM2MwLTE3LjctMTQuNC0zMi0zMi0zMlMwIDE0Mi40IDAgMTYwem0yMTMuNi0zNS45YzE0LjEtOC44IDI5LjgtMTIuNyA0NS4yLTEyLjFsMzYuNS02My4zYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOGwtNjcuMSAxMTYuMiAyNy0xNi45em04Ni41LTM1LjdsLTE2LjQgMjguNGMxNS4xIDUuNSAyOC42IDE1LjYgMzguMyAyOS43bDE5LjctMzQuMmM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4Ljh6bTQ2LjQgNjMuN2wtMTIuNSAyMS43YzIgOC42IDIuNSAxNy41IDEuNyAyNi4xbDQuMyAwIDAgMCAzNC40IDAgMTMuNy0yMy44YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHpNMjgzLjEgMTc1Yy05LjQtMTUtMjkuMS0xOS41LTQ0LjEtMTAuMmwtNjAuMiAzNy42QzEyNy4zIDIzNC43IDk2IDI5MS4yIDk2IDM1MmwwIDhjMCA4LjkgLjggMTcuNiAyLjIgMjYuMSAzNS40IDguMiA2MS44IDQwIDYxLjggNzcuOSAwIDYuMy0uNyAxMi41LTIuMSAxOC40IDI1LjIgMTguNiA1Ni40IDI5LjYgOTAuMSAyOS42bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05MiAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDEyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjQgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTU2IDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEzNiAwIDAgMCAwIDAtOTMuMiAwIDQ2LjItMjguOWMxNS05LjQgMTkuNS0yOS4xIDEwLjItNDQuMXoiXX0sVVNyPURPZSxXU3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFya2VyIixpY29uOls1MTIsNTEyLFtdLCJmNWExIiwiTTQwOC44IDBjLTI3LjQgMC01My42IDEwLjktNzMgMzAuMkwzMTguMSA0OCAzMDUgMzQuOWMtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDEwMyAxMzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwyMzcuMSA2OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI4NC4xIDgxLjkgMTg0IDE4Mi4xIDMyOS45IDMyOCA0ODEuOCAxNzYuMmMxOS40LTE5LjQgMzAuMi00NS42IDMwLjItNzMgMC01Ny00Ni4yLTEwMy4yLTEwMy4yLTEwMy4yek0xMDIuNCAyNjMuN2MtNDkuOSA0OS45LTgzLjMgMTE0LTk1LjUgMTgzLjVMLjQgNDgzLjhDLTEgNDkxLjYgMS41IDQ5OS40IDcgNTA1czEzLjQgOCAyMS4xIDYuN2wzNi43LTYuNWM2OS41LTEyLjMgMTMzLjYtNDUuNiAxODMuNS05NS41TDI5NiAzNjEuOSAxNTAuMSAyMTYgMTAyLjQgMjYzLjd6Il19LEdTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQiLGljb246WzM4NCw1MTIsWzEyODIwM10sImYzMjgiLCJNMzIwIDMybC04LjYgMEMzMDAuNCAxMi45IDI3OS43IDAgMjU2IDBMMTI4IDBDMTA0LjMgMCA4My42IDEyLjkgNzIuNiAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xMzYgMTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMHoiXX0sWVNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYWNlLW9mLXdvcnNoaXAiLGljb246WzUxMiw1MTIsW10sImY2N2YiLCJNMTYwIDc5bDAgODEtNDQuOCAzMy42QzEwMy4xIDIwMi43IDk2IDIxNi45IDk2IDIzMmwwIDQwLTYwLjYgMzAuM0MxMy43IDMxMy4yIDAgMzM1LjMgMCAzNTkuNkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCA3NC43IDAgODUuNCAwIDMyMCAwbDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OC40YzAtMjQuMi0xMy43LTQ2LjQtMzUuNC01Ny4yTDQxNiAyNzIgNDE2IDIzMmMwLTE1LjEtNy4xLTI5LjMtMTkuMi0zOC40TDM1MiAxNjAgMzUyIDc5YzAtOS41LTQuMi0xOC41LTExLjUtMjQuNkwyNzEuNC0zLjJjLTguOS03LjQtMjEuOC03LjQtMzAuNyAwTDE3MS41IDU0LjRDMTY0LjIgNjAuNSAxNjAgNjkuNSAxNjAgNzl6bTk2IDI0MWMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LEtTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5uYWJpcyIsaWNvbjpbNTEyLDUxMixbXSwiZjU1ZiIsIk0yNTYgMGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMSAxNS44IDIzLjUgMzYuNyA2My43IDQ5LjIgMTA5IDcuMyAyNi40IDExLjggNTUuMyAxMC4zIDg0IDExLjYtOC45IDIzLjctMTYuNyAzNS45LTIzLjcgNDEtMjMuMyA4NC40LTM2LjkgMTEyLjItNDIuNSA1LjItMSAxMC43IC42IDE0LjQgNC40czUuNCA5LjIgNC40IDE0LjVjLTUuNiAyNy43LTE5LjMgNzAuOS00Mi43IDExMS43LTkuMSAxNS45LTE5LjkgMzEuNy0zMi41IDQ2LjMgMjcuOSA2LjYgNTIuNSAxNy4yIDY3LjMgMjUuNCA1LjEgMi44IDguMiA4LjIgOC4yIDE0cy0zLjIgMTEuMi04LjIgMTRjLTE1LjIgOC40LTQwLjkgMTkuNS02OS44IDI2LjEtMjAuMiA0LjYtNDIuOSA3LjItNjUuMiA0LjZsOC4zIDMzLjJjMS41IDYuMS0uNiAxMi41LTUuNSAxNi40cy0xMS42IDQuNi0xNy4yIDEuOEwyODAgNDE3LjIgMjgwIDQ4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcwLjgtNTguNSAyOS4xYy01LjYgMi44LTEyLjMgMi4xLTE3LjItMS44cy03LTEwLjMtNS41LTE2LjRsOC4zLTMzLjJjLTIyLjIgMi42LTQ1IDAtNjUuMi00LjYtMjguOS02LjYtNTQuNS0xNy42LTY5LjgtMjYuMS01LjEtMi44LTguMi04LjItOC4yLTE0czMuMi0xMS4yIDguMi0xNGw2LjItMy4zYzE1LTcuNiAzNi44LTE2LjQgNjEuMS0yMi4yLTEyLjUtMTQuNS0yMy4zLTMwLjQtMzIuNC00Ni4yLTIzLjQtNDAuOC0zNy4xLTg0LTQyLjctMTExLjctMS4xLTUuMiAuNi0xMC43IDQuNC0xNC41czkuMi01LjQgMTQuNC00LjRjMjcuOSA1LjUgNzEuMiAxOS4yIDExMi4yIDQyLjUgMTIuMiA2LjkgMjQuMyAxNC44IDM1LjggMjMuNy0xLjQtMjguNyAzLjEtNTcuNiAxMC4zLTg0IDEyLjUtNDUuMyAzMy40LTg1LjUgNDkuMi0xMDlsMS4yLTEuNkMyNDYuOSAyIDI1MS4zIDAgMjU2IDB6Il19LFpTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtcm9vZiIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNyIsIk0zMDIuMy0xMi42Yy05LTQuNS0xOS42LTQuNS0yOC42IDBsLTI1NiAxMjhDMS45IDEyMy4zLTQuNSAxNDIuNSAzLjQgMTU4LjNzMjcuMSAyMi4yIDQyLjkgMTQuM0wyODggNTEuOCA1MjkuNyAxNzIuNmMxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlsLTI1Ni0xMjh6TTI4OCAyNzJhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTAgNDhjLTUzIDAtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtNTMtNDMtOTYtOTYtOTZ6TTE2MCAyNTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMzUyIDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTEyIDMzNmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAzMy4xYzAgMTcgMTMuOCAzMC45IDMwLjkgMzAuOWw4Ny44IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtNDhjMC0xOC40IDMuNS0zNiA5LjgtNTIuMi0xMi4yLTcuNS0yNi41LTExLjgtNDEuOC0xMS44ek00MjUuNCA0ODBsODcuOCAwYzE3IDAgMzAuOS0xMy44IDMwLjktMzAuOWwwLTMzLjFjMC00NC4yLTM1LjgtODAtODAtODAtMTUuMyAwLTI5LjYgNC4zLTQxLjggMTEuOCA2LjMgMTYuMiA5LjggMzMuOCA5LjggNTIuMmwwIDQ4YzAgMTEuNC0yLjQgMjIuMi02LjcgMzJ6Il19LFFTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaXNlYXNlIixpY29uOls1MTIsNTEyLFtdLCJmN2ZhIiwiTTIzNi41IDI5LjRMMjI0IDQ4Yy0yMCAzMC01My42IDQ4LTg5LjcgNDhMNjggOTZjLTM3LjUgMC02Ny45IDMwLjQtNjcuOSA2Ny45IDAgMTggNy4yIDM1LjIgMTkuOSA0Ny45bDI3IDI3YzExIDExIDE3LjIgMjUuOSAxNy4yIDQxLjUgMCAxNS44LTYuNCAzMC45LTE3LjcgNDJMMzMuNCAzMzUuMWMtMTEuMSAxMC44LTE3LjMgMjUuNy0xNy4zIDQxLjIgMCAzNi44IDM0LjEgNjQuMiA3MC4xIDU2LjJsNjIuMy0xMy44YzcuNy0xLjcgMTUuNy0yLjYgMjMuNi0yLjYgMzIuOCAwIDY0LjIgMTQuNiA4NS4yIDM5LjhsMzAuNSAzNi42YzEwLjQgMTIuNCAyNS43IDE5LjYgNDEuOSAxOS42IDMwLjEgMCA1NC41LTI0LjQgNTQuNS01NC41bDAtNTEuMmMwLTQxLjQgMjUuNC03OC41IDY0LTkzLjVsMjIuMi04LjZjMjUuMi05LjggNDEuOC0zNC4xIDQxLjgtNjEuMSAwLTI2LjQtMTUuOS01MC4zLTQwLjMtNjAuNUw0MjkgMTY0LjhjLTMzLjItMTMuOS01Ny42LTQzLTY1LjUtNzguMWwtNy45LTM1LjJjLTYuOC0zMC4xLTMzLjUtNTEuNS02NC4zLTUxLjUtMjIgMC00Mi42IDExLTU0LjggMjkuNHpNMTYwIDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSwkT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1iaWJsZSIsaWNvbjpbNDQ4LDUxMixbImJpYmxlIl0sImY2NDciLCJNOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiA1MTJ6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6TTE5MiA4MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMiA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxYU3I9JE9lLEpTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1ib2FyZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjQzYyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA2NGwwIDY0IDY0IDAgMC02NCA2NCAwIDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NC02NCAwIDAgNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwLTY0LTY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NCA2NCAwIDAtNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMHptNjQgMTI4bDY0IDAgMC02NC02NCAwIDAgNjR6bTAgNjRsMC02NC02NCAwIDAgNjQgNjQgMHptNjQgMGwtNjQgMCAwIDY0IDY0IDAgMC02NHptMCAwbDY0IDAgMC02NC02NCAwIDAgNjR6Il19LGVNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzIixpY29uOls1MTIsNTEyLFs5Nzk0XSwiZjIyMiIsIk0zMjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTk1IDk1YzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMzIgNDAxLjIgMzIgMzA0IDExMC44IDEyOCAyMDggMTI4YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsOTUtOTUtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMjA4IDQxNmExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LHRNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AiLGljb246WzY0MCw1MTIsWzEyODE4N10sImYxMDkiLCJNMTI4IDMyQzkyLjcgMzIgNjQgNjAuNyA2NCA5NmwwIDI0MCA2NCAwIDAtMjQwIDM4NCAwIDAgMjQwIDY0IDAgMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI4IDMyek0xOS4yIDM4NEM4LjYgMzg0IDAgMzkyLjYgMCA0MDMuMiAwIDQ0NS42IDM0LjQgNDgwIDc2LjggNDgwbDQ4Ni40IDBjNDIuNCAwIDc2LjgtMzQuNCA3Ni44LTc2LjggMC0xMC42LTguNi0xOS4yLTE5LjItMTkuMkwxOS4yIDM4NHoiXX0sQU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXIteG1hcmsiLGljb246WzU3Niw1MTIsWyJ1c2VyLXRpbWVzIl0sImYyMzUiLCJNMjU0LjEgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDQ2LjEgNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDB6TTUzMC4zIDEwOC4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45ek0yMjQuNCAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQweiJdfSxyTXI9QU9lLGFNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLXVzYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc0ZCIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMzYuMS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTIwLjMtOS00MS44LTE0LjctNjMuNi0xNi45bDAgMzIuMmMxNy40IDIuMSAzNC40IDYuNyA1MC42IDEzLjlsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2Mi00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNsLTYzLjUgMTMuNiAwIDMyLjcgNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2MS45LTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM2wtNjMuNSAxMy42IDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDMzLjVjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgNDAwIDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwem04MCA5NmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptLTMyIDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxpTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1taWRkbGUtZmluZ2VyIixpY29uOls0NDgsNTEyLFsxMjg0MDVdLCJmODA2IiwiTTIzMiAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDE2NC4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4yLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC01NS43Yy0yIDEuNC0zLjkgMy01LjggNC41TDU1IDI4NC44QzQwLjQgMjk3IDMyIDMxNSAzMiAzMzRMMzIgMzcyYzAgMzggMTYuOSA3NCA0Ni4xIDk4LjNsNS40IDQuNWMyOC44IDI0IDY1IDM3LjEgMTAyLjQgMzcuMUwzMDQgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDgtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuMy0xLjktMjQuOC0yMi42LTQ0LjMtNDcuOS00NC4zLTEyLjMgMC0yMy41IDQuNi0zMiAxMi4yTDI3MiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHoiXX0sc01yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vcnRhci1wZXN0bGUiLGljb246WzUxMiw1MTIsW10sImY1YTciLCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwIDM5Ny4zIDE2MCA1MDIuNiA1NC42YzExLjgtMTEuOCAxMi42LTMwLjggMS42LTQzLjV6TTMyIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMwIDgyLjUgNDMuNCAxNDcuNyAxMjMuOSAxNzYuMi0xMS4xIDEzLjktMTkuNCAzMC4zLTIzLjkgNDguMS00LjQgMTcuMSAxMC40IDMxLjcgMjguMSAzMS43bDE5MiAwYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43LTQuNS0xNy44LTEyLjgtMzQuMS0yMy45LTQ4LjEgODAuNS0yOC42IDEyMy45LTkzLjcgMTIzLjktMTc2LjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTkyeiJdfSxuTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLWNvdWdoIixpY29uOls1MTIsNTEyLFtdLCJlMDYxIiwiTTk2IDUxMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZsMSAwYzI2IDAgNDctMjEgNDctNDcgMC0xMS0zLjktMjEuNi0xMC45LTMwLjFMMjczLjMgMjAwQzI3MS40IDE5Ny42IDI3MC4xIDE5NC43IDI2OS43IDE5MS43IDI1NCA4My4zIDE2MC43IDAgNDggMCA0MC40IDAgMzIuOSAuNCAyNS40IDEuMSAxMC41IDIuNiAwIDE1LjkgMCAzMC45TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6bTE2LTMyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02My4xIDIzNy4ybC00MS41LTMuNWMtMTIuMi0xLTIxLjYtMTEuMi0yMS42LTIzLjQgMC0xMC44IDcuMy0yMC4yIDE3LjgtMjIuOGw0MC40LTEwLjFjMTkuMi00LjggMzcuOCA5LjcgMzcuOCAyOS41IDAgMTcuOC0xNS4yIDMxLjgtMzIuOSAzMC4zek00ODAgMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwIDI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0xMjggMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek00ODAgNTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwLTcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LG9Ncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNTU4IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgODIuMSA3NS4yQzQwOS43IDI0OC4xIDQwMCAyNzQuOSA0MDAgMzA0bDAgMjQuNGMtNy4zIDYuNi0xMy42IDE0LjItMTguNyAyMi43bC0zNy4zLTEyLjQgMCA5OS43IDI0IDE5LjIgMCAzOC4zYzAgMTMuNSAyLjggMjYuNCA3LjggMzguMUwyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNTYwIDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sRU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktdGhyZWUtcXVhcnRlcnMiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTQiXSwiZjI0MSIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjI0IDB6Il19LGxNcj1FT2UsY01yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZyYW5jLXNpZ24iLGljb246WzMyMCw1MTIsW10sImUxOGYiLCJNODAgMzJDNjIuMyAzMiA0OCA0Ni4zIDQ4IDY0bDAgMjU2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCA4OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwIDAtNjQgMTQ0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE0NCAwIDAtOTYgMTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgMzJ6Il19LElPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXItY2lyY2xlLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbImZ1bm5lbC1kb2xsYXIiXSwiZjY2MiIsIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQxNiAzMjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDUuOCAwYy01LjYgMC0xMC4yIDQuNi0xMC4yIDEwLjIgMCA0LjkgMy41IDkuMSA4LjMgMTBsNDUgOC4yYzIwIDMuNiAzNC42IDIxLjEgMzQuNiA0MS41IDAgMjMuMy0xOC45IDQyLjItNDIuMiA0Mi4ybC01LjggMCAwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04LTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTMuOCAwYzUuNiAwIDEwLjItNC42IDEwLjItMTAuMiAwLTQuOS0zLjUtOS4xLTguMy0xMGwtNDUtOC4yYy0yMC0zLjYtMzQuNi0yMS4xLTM0LjYtNDEuNSAwLTIyLjYgMTcuNy00MSA0MC00Mi4xbDAtOC4xeiJdfSxkTXI9SU9lLHVNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVlc2UiLGljb246WzUxMiw1MTIsW10sImY3ZWYiLCJNNTEyIDI0MC4ybDAgMTUuOC01MTIgMGMwLTIwIDEwLTM4LjcgMjYuNi00OS44TDI3NC45IDQwLjdjOC42LTUuNyAxOC42LTguNyAyOC45LTguNyAxMTUgMCAyMDguMiA5My4yIDIwOC4yIDIwOC4yem0wIDYzLjhsMCAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTExMiA1MTIgMHoiXX0sUE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1oIixpY29uOls1MTIsNTEyLFs5NDA1LCJob3NwaXRhbC1zeW1ib2wiXSwiZjQ3ZSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptOTYtMzQ0bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0scE1yPVBPZSxmTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sIixpY29uOls1NzYsNTEyLFsxMjc5NzldLCJmNTQ5IiwiTTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMTI3LjktMTE1LjFjMTguMy0xNi40IDQ2LTE2LjQgNjQuMiAwTDQ0OCAxMjggNTEyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyek0yMjQgMzc2bDAgODggMTI4IDAgMC04OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6bS0xMTIgOGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDM4NGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNMjg4IDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHoiXX0saE1yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZml2ZSIsaWNvbjpbNDQ4LDUxMixbOTg2MF0sImY1MjMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG1Ncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3JuYWRvIixpY29uOls0NDgsNTEyLFsxMjc3ODZdLCJmNzZmIiwiTTAgMzJMMCA0NS42QzAgNjIuNyAxLjcgNzkuNiA1IDk2bDM1Mi44IDBjMy4yLTYuOSA3LjUtMTMuMyAxMy0xOC44bDM4LjYtMzguNmM0LjItNC4yIDYuNi0xMCA2LjYtMTYgMC0xMi41LTEwLjEtMjIuNi0yMi42LTIyLjZMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6TTM1NS43IDE0NGwtMzM2IDBjMTIuNCAyOS43IDMwLjIgNTYuOCA1Mi43IDgwbDMzOS42IDAtNDcuMi02Mi45Yy0zLjktNS4yLTctMTEtOS4yLTE3LjF6TTI0Mi42IDMzNC43YzguMiA0LjggMTUuOCAxMC43IDIyLjUgMTcuM0w0NDUgMzUyYzItOS44IDMtMTkuOSAzLTMwLjEgMC0xNy4xLTIuOS0zNC04LjYtNDkuOUwxMzYgMjcyIDI0Mi42IDMzNC43ek0yOTQuMyA0MDBjNS4zIDE3IDYuNSAzNS4yIDMuNiA1M2wtNS45IDM1LjdjLTIgMTIuMiA3LjQgMjMuNCAxOS44IDIzLjQgNS4zIDAgMTAuNC0yLjEgMTQuMi01LjlsNzguMi03OC4yYzguNS04LjUgMTUuOC0xNy44IDIxLjktMjcuOWwtMTMxLjggMHoiXX0sTk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpldC1maWdodGVyIixpY29uOls1NzYsNTEyLFsiZmlnaHRlci1qZXQiXSwiZjBmYiIsIk00OTYuMiAyMDYuOGMtMTAuNy00LjUtMjIuMi02LjgtMzMuOC02LjhMMzYyIDIwMCAyNDggNDggMjk2IDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDAgMjk2IDBMMTUyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOCAwIDAgMTUyLTU0LjQgMC01Mi44LTY2Yy0zLTMuOC03LjYtNi0xMi41LTZMMTYgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZsMCA4OCA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgODhjMCA4LjggNy4yIDE2IDE2IDE2bDI0LjMgMGM0LjkgMCA5LjUtMi4yIDEyLjUtNmw1Mi44LTY2IDU0LjQgMCAwIDE1Mi04IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMTE0LTE1MiAxMDAuNCAwYzExLjYgMCAyMy4xLTIuMyAzMy44LTYuOGw2NS0yNy4xYzguOS0zLjcgMTQuOC0xMi41IDE0LjgtMjIuMnMtNS44LTE4LjQtMTQuOC0yMi4ybC02NS0yNy4xeiJdfSxnTXI9Tk9lLGJNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnMtZG93biIsaWNvbjpbNTEyLDUxMixbMTI4MDc4LDYxNTc2XSwiZjE2NSIsIk0zODQgMzJjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA2LjMtMS4zIDEyLjItMy40IDE3LjcgMjAuNCA1LjUgMzUuNCAyNC4xIDM1LjQgNDYuMyAwIDkuMS0yLjYgMTcuNi03IDI0LjkgMjIuMiA0LjIgMzkgMjMuNyAzOSA0Ny4xIDAgMTkuNy0xMS45IDM2LjYtMjguOSA0NCAxNyA3LjQgMjguOSAyNC4zIDI4LjkgNDQgMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwIDI4LjIgNzAuNGMyLjUgNi4zIDMuOCAxMy4xIDMuOCAxOS45bDAgNC4yYzAgMjcuMy0yMi4xIDQ5LjQtNDkuNCA0OS40LTE4LjcgMC0zNS44LTEwLjYtNDQuMi0yNy4zTDE3MC4xIDM1Ni4zYy02LjctMTMuMy0xMC4xLTI4LTEwLjEtNDIuOWwwLTE4Ni42YzAtMTkuNCA4LjktMzcuOCAyNC01MGwxMi4yLTkuN0MyMjQuNiA0NC40IDI1OS44IDMyIDI5Ni4xIDMyTDM4NCAzMnpNODAgOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDQ4IDB6Il19LHhNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicm9vbSIsaWNvbjpbNTc2LDUxMixbMTI5NTI5XSwiZjUxYSIsIk01NjYuNiA1NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xOTIgMTkyLTM0LjctMzQuN2MtNC4yLTQuMi0xMC02LjYtMTYtNi42LTEyLjUgMC0yMi42IDEwLjEtMjIuNiAyMi42bDAgMjkuMSAxMDguMyAxMDguMyAyOS4xIDBjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjYgMC02LTIuNC0xMS44LTYuNi0xNmwtMzQuNy0zNC43IDE5Mi0xOTJ6TTM0MS4xIDM1My40TDIyMi42IDIzNC45Yy00Mi43LTMuNy04NS4yIDExLjctMTE1LjggNDIuM2wtOCA4Yy0yMi4zIDIyLjMtMzQuOCA1Mi41LTM0LjggODQgMCA2LjggNy4xIDExLjIgMTMuMiA4LjJsNTEuMS0yNS41YzUtMi41IDkuNSA0LjEgNS40IDcuOUw3LjMgNDczLjRDMi43IDQ3Ny42IDAgNDgzLjYgMCA0ODkuOSAwIDUwMi4xIDkuOSA1MTIgMjIuMSA1MTJsMTczLjMgMGMzOC44IDAgNzUuOS0xNS40IDEwMy40LTQyLjggMzAuNi0zMC42IDQ1LjktNzMuMSA0Mi4zLTExNS44eiJdfSxPT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbXBvcnQiLGljb246WzM4NCw1MTIsWyJhcnJvdy1yaWdodC10by1maWxlIl0sImY1NmYiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCAyNDAgMTgyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xODIuMSAwIDAgOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnoiXX0sdk1yPU9PZSxST2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXRlbnNpbHMiLGljb246WzUxMiw1MTIsWzEyNzg2MCw2MTY4NSwiY3V0bGVyeSJdLCJmMmU3IiwiTTYzLjkgMTQuNEM2My4xIDYuMiA1Ni4yIDAgNDggMHMtMTUuMSA2LjItMTYgMTQuM0wxNy45IDE0OS43Yy0xLjMgNi0xLjkgMTIuMS0xLjkgMTguMiAwIDQ1LjkgMzUuMSA4My42IDgwIDg3LjdMOTYgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjQuNGM0NC45LTQuMSA4MC00MS44IDgwLTg3LjcgMC02LjEtLjYtMTIuMi0xLjktMTguMkwyMjMuOSAxNC4zQzIyMy4xIDYuMiAyMTYuMiAwIDIwOCAwcy0xNS4xIDYuMi0xNS45IDE0LjRMMTc4LjUgMTQ5LjljLS42IDUuNy01LjQgMTAuMS0xMS4xIDEwLjEtNS44IDAtMTAuNi00LjQtMTEuMi0xMC4yTDE0My45IDE0LjZDMTQzLjIgNi4zIDEzNi4zIDAgMTI4IDBzLTE1LjIgNi4zLTE1LjkgMTQuNkw5OS44IDE0OS44Yy0uNSA1LjgtNS40IDEwLjItMTEuMiAxMC4yLTUuOCAwLTEwLjYtNC40LTExLjEtMTAuMUw2My45IDE0LjR6TTQ0OCAwQzQzMiAwIDMyMCAzMiAzMjAgMTc2bDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0seU1yPVJPZSx3TXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHptOTYgMzUybDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNTIgNjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sa01yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaWRlciIsaWNvbjpbNTEyLDUxMixbMTI4Mzc1XSwiZjcxNyIsIk0zNjkuMy0zMWMxMS45LTMuNSAyNC40IDIuNyAyOSAxMy45bC44IDIuMyA0MCAxMzZjMi41IDguNCAuMSAxNy41LTYuMSAyMy43bC02NC4xIDY0LjEgNzYuNC0yMC44IDE5LjktNTkuOCAuOS0yLjNjNS0xMS4xIDE3LjctMTYuOCAyOS41LTEyLjkgMTEuOCAzLjkgMTguNSAxNi4xIDE1LjggMjhsLS43IDIuNC0yNCA3MmMtMi41IDcuNi04LjcgMTMuNC0xNi41IDE1LjZsLTkxLjEgMjQuOCA5MS4xIDI0LjhjNy43IDIuMSAxMy45IDggMTYuNSAxNS42bDI0IDcyIC43IDIuNGMyLjcgMTEuOS00LjEgMjQuMS0xNS44IDI4LTExLjggMy45LTI0LjUtMS44LTI5LjUtMTIuOWwtLjktMi4zLTE5LjktNTkuOC03Ni40LTIwLjggNjQuMSA2NC4xYzYuMSA2LjEgOC41IDE1LjEgNi4yIDIzLjRsLTQwIDE0NC0uOCAyLjNjLTQuNCAxMS4zLTE2LjggMTcuNy0yOC44IDE0LjQtMTItMy4zLTE5LjMtMTUuMi0xNy4yLTI3LjJsLjUtMi40IDM2LjItMTMwLjUtMzcuMi0zNy4yQzM1MSA0MDYgMzA4LjQgNDQ4IDI1NiA0NDhzLTk1LTQyLTk2LTk0LjFsLTM3IDM3IDM2IDEyMi4zIC42IDIuNGMyLjIgMTEuOS00LjkgMjMuOS0xNi44IDI3LjQtMTEuOSAzLjUtMjQuNC0yLjctMjktMTMuOWwtLjgtMi4zLTQwLTEzNmMtMi41LTguNC0uMS0xNy41IDYuMS0yMy44bDY0LjEtNjQuMS03Ni40IDIwLjgtMTkuOSA1OS44LS45IDIuM2MtNSAxMS4xLTE3LjcgMTYuOC0yOS41IDEyLjlzLTE4LjUtMTYuMS0xNS44LTI4bC43LTIuNCAyNC03MmMyLjUtNy42IDguNy0xMy40IDE2LjUtMTUuNmw5MS4xLTI0LjgtOTEuMS0yNC44Yy03LjctMi4xLTEzLjktOC0xNi41LTE1LjZsLTI0LTcyLS43LTIuNGMtMi43LTExLjkgNC4xLTI0LjEgMTUuOC0yOHMyNC41IDEuOCAyOS41IDEyLjlsLjkgMi4zIDE5LjkgNTkuOCA3Ni40IDIwLjgtNjQuMS02NC4xYy02LjItNi4yLTguNS0xNS4zLTYuMS0yMy43bDQwLTEzNiAuOC0yLjNjNC42LTExLjMgMTcuMS0xNy40IDI5LTEzLjkgMTEuOSAzLjUgMTkgMTUuNSAxNi44IDI3LjRsLS42IDIuNC0zNiAxMjIuMyA1MyA1M2MxLTQzLjMgMzYuNC03OC4xIDc5LjktNzguMXM3OC45IDM0LjggNzkuOSA3OC4ybDUzLjEtNTMuMS0zNi0xMjIuMy0uNi0yLjRjLTIuMi0xMiA0LjktMjMuOSAxNi44LTI3LjR6Il19LFNNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtcmV0cm8iLGljb246WzM4NCw1MTIsW10sImU1MjciLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em04MCA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOCAxOTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0em02NC03MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHpNMTY4IDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LEZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWducy1wb3N0IixpY29uOls1MTIsNTEyLFsibWFwLXNpZ25zIl0sImYyNzciLCJNMjU2LjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMCAwIDY0LTE1My40IDBjLTQuMiAwLTguMyAxLjctMTEuMyA0LjdsLTQ4IDQ4Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0OCA0OGMzIDMgNy4xIDQuNyAxMS4zIDQuN2wxNTMuNCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwIDAtNjQgMTUzLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDQ4LTQ4YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC00OC00OGMtMy0zLTcuMS00LjctMTEuMy00LjdsLTE1My40IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sTU1yPUZPZSxDTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JvdXAtYXJyb3dzLXJvdGF0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRmNiIsIk0zNy42IDEyMi4zYy0xMS41IDE4LjctMjAuNiAzOS0yNyA2MC41LTUgMTYuOSA0LjYgMzQuOCAyMS41IDM5LjhzMzQuOC00LjYgMzkuOC0yMS41YzE4LjQtNjEuOSA2Ny4zLTExMC44IDEyOS4yLTEyOS4yIDE2LjktNSAyNi42LTIyLjkgMjEuNS0zOS44UzE5OS44IDUuNiAxODIuOSAxMC42QzE2MS40IDE3IDE0MS4xIDI2LjEgMTIyLjMgMzcuNiAxMTIuMyAxNS40IDg5LjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDg5LjkgMTUuNCAxMTIuMyAzNy42IDEyMi4zem00MzYuNyAwYzIyLjItMTAgMzcuNi0zMi40IDM3LjYtNTguMyAwLTM1LjMtMjguNy02NC02NC02NC0yNS45IDAtNDguMyAxNS40LTU4LjMgMzcuNi0xOC43LTExLjUtMzktMjAuNi02MC41LTI3LTE2LjktNS0zNC44IDQuNi0zOS44IDIxLjVzNC42IDM0LjggMjEuNSAzOS44YzYxLjkgMTguNCAxMTAuOCA2Ny4zIDEyOS4yIDEyOS4yIDUgMTYuOSAyMi45IDI2LjYgMzkuOCAyMS41czI2LjYtMjIuOSAyMS41LTM5LjhjLTYuNC0yMS41LTE1LjUtNDEuOC0yNy02MC41ek01MTIgNDQ4YzAtMjUuOS0xNS40LTQ4LjMtMzcuNi01OC4zIDExLjUtMTguNyAyMC42LTM5IDI3LTYwLjUgNS0xNi45LTQuNi0zNC44LTIxLjUtMzkuOHMtMzQuOCA0LjYtMzkuOCAyMS41Yy0xOC40IDYxLjktNjcuMyAxMTAuOC0xMjkuMiAxMjkuMi0xNi45IDUtMjYuNiAyMi45LTIxLjUgMzkuOHMyMi45IDI2LjYgMzkuOCAyMS41YzIxLjUtNi40IDQxLjgtMTUuNSA2MC41LTI3IDEwIDIyLjIgMzIuNCAzNy42IDU4LjMgMzcuNiAzNS4zIDAgNjQtMjguNyA2NC02NHpNMzcuNiAzODkuN2MtMjIuMiAxMC0zNy42IDMyLjQtMzcuNiA1OC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI1LjkgMCA0OC4zLTE1LjQgNTguMy0zNy42IDE4LjcgMTEuNSAzOSAyMC42IDYwLjUgMjcgMTYuOSA1IDM0LjgtNC42IDM5LjgtMjEuNXMtNC42LTM0LjgtMjEuNS0zOS44Yy02MS45LTE4LjQtMTEwLjgtNjcuMy0xMjkuMi0xMjkuMi01LTE2LjktMjIuOS0yNi42LTM5LjgtMjEuNVM1LjYgMzEyLjIgMTAuNiAzMjkuMWM2LjQgMjEuNSAxNS41IDQxLjggMjcgNjAuNXpNMjU2IDE5MmMxNS42IDAgMzAgNS42IDQxLjEgMTQuOWwtMTUuMyAxNS4zYy02LjYgNi42LTEuOSAxNy44IDcuNCAxNy44bDYwLjUgMGM1LjcgMCAxMC40LTQuNyAxMC40LTEwLjRsMC02MC41YzAtOS4zLTExLjItMTMuOS0xNy44LTcuNGwtMTEuMiAxMS4yYy0xOS44LTE3LjktNDYuMi0yOC45LTc1LjEtMjguOS00My42IDAtODEuMyAyNC45LTk5LjggNjEuMS02IDExLjgtMS40IDI2LjMgMTAuNCAzMi4zczI2LjMgMS40IDMyLjMtMTAuNGMxMC42LTIwLjggMzIuMi0zNC45IDU3LTM0Ljl6bTU4LjYgOTMuMWMtMTAuNiAyMC44LTMyLjIgMzQuOS01NyAzNC45LTE1LjcgMC0zMC01LjYtNDEuMS0xNC45bDE1LjMtMTUuM2M2LjYtNi42IDEuOS0xNy44LTcuNC0xNy44TDE2NCAyNzJjLTUuNyAwLTEwLjQgNC43LTEwLjQgMTAuNGwwIDYwLjVjMCA5LjMgMTEuMiAxMy45IDE3LjggNy40bDExLjItMTEuMmMxOS44IDE3LjkgNDYuMiAyOC45IDc1LjEgMjguOSA0My42IDAgODEuMy0yNC45IDk5LjgtNjEuMSA2LTExLjggMS40LTI2LjMtMTAuNC0zMi4zcy0yNi4zLTEuNC0zMi4zIDEwLjR6Il19LHpNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BsaXQtdXAtYW5kLWxlZnQiLGljb246WzUxMiw1MTIsW10sImU0YmMiLCJNMzQyLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDQxLjQtNDEuNCAwIDE5NS45Yy0xOC44LTEwLjktNDAuNy0xNy4xLTY0LTE3LjFsLTExNC43IDAgNDEuNC00MS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAzMjAgMjI0IDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sX01yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwtZHJpcCIsaWNvbjpbNTc2LDUxMixbXSwiZjU3NiIsIk0zMDkuNyA3MS42bC02NC40IDY0LjQgMzMuNCAzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0zMy40LTMzLjQtOTYuNCA5Ni40Yy0yLjkgMi45LTUuMSA2LjUtNi4zIDEwLjNsMzIxLjUgMCA1My43LTUzLjdjNC45LTQuOSA3LjYtMTEuNSA3LjYtMTguM3MtMi43LTEzLjUtNy42LTE4LjNMMzQ2LjMgNzEuNkMzNDEuNSA2Ni43IDMzNC45IDY0IDMyOCA2NHMtMTMuNSAyLjctMTguMyA3LjZ6TTU4LjMgMjMyLjRsOTYuNC05Ni40LTQ5LjQtNDkuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwyMDAgOTAuNyAyNjQuNCAyNi4zQzI4MS4zIDkuNSAzMDQuMSAwIDMyOCAwczQ2LjcgOS41IDYzLjYgMjYuM0w1MTcuNyAxNTIuNEM1MzQuNSAxNjkuMyA1NDQgMTkyLjEgNTQ0IDIxNnMtOS41IDQ2LjctMjYuMyA2My42TDMxMS42IDQ4NS43QzI5NC43IDUwMi41IDI3MS45IDUxMiAyNDggNTEycy00Ni43LTkuNS02My42LTI2LjNMNTguMyAzNTkuNkM0MS41IDM0Mi43IDMyIDMxOS45IDMyIDI5NnM5LjUtNDYuNyAyNi4zLTYzLjZ6TTUxMiA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjUuMiAzMi42LTc5LjYgNTEuMi0xMDguNyA2LTkuNCAxOS41LTkuNCAyNS41IDAgMTguNyAyOS4xIDUxLjIgODMuNSA1MS4yIDEwOC43IDAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxUTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWhlYXJ0IixpY29uOls1MTIsNTEyLFtdLCJlNTc0IiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0yNDkuNiAxODMuNWw2LjQgOC41IDYuNC04LjVjMTEuMS0xNC44IDI4LjUtMjMuNSA0Ni45LTIzLjUgMzIuNCAwIDU4LjcgMjYuMyA1OC43IDU4LjdsMCA1LjNjMCA0OS4xLTY1LjggOTguMS05Ni41IDExOC4zLTkuNSA2LjItMjEuNSA2LjItMzAuOSAwLTMwLjctMjAuMi05Ni41LTY5LjMtOTYuNS0xMTguM2wwLTUuM2MwLTMyLjQgMjYuMy01OC43IDU4LjctNTguNyAxOC41IDAgMzUuOSA4LjcgNDYuOSAyMy41eiJdfSxCT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZy1ub3JkaWMiLGljb246WzU3Niw1MTIsWyJza2lpbmctbm9yZGljIl0sImY3Y2EiLCJNNDI0LjggMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTk5LjggMTkzLjdjNy42IDE1LjIgMS45IDMzLjYtMTIuNiA0MmwwIDE4MC4zLTMyIDAgMC0xNjQuMi0xMC4xIDVjLTI3LjQgMTMuNy02MC43IDYuMS03OS40LTE4LjJsLTE5LjYtMjUuNS0zOS41IDY4LjggMjQuOCAxMi40YzI5LjUgMTQuNyA0Mi45IDQ5LjUgMzEuMSA4MC4ybC0yOC4yIDczLjQgMTQ5LjQgMGM3LjkgMCAxNS42LTIuMyAyMi4yLTYuN2w3LjktNS4zYzExLTcuNCAyNS45LTQuNCAzMy4zIDYuN3M0LjQgMjUuOS02LjcgMzMuM2wtNy45IDUuM0M1NDMgNTA2LjkgNTI2IDUxMiA1MDguNiA1MTJsLTE4OS4xIDBjLS41IDAtMSAwLTEuNSAwTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4OCAwYzAtOC4yIDMuMS0xNi40IDkuNC0yMi42bDc0LjEtNzQuMSAxMC4yLTM1LjljMTEuMyAxOC4zIDI3LjcgMzMuOCA0OC40IDQ0LjJsNC44IDIuNC0xLjkgNi44Yy0zIDEwLjUtOC42IDIwLTE2LjMgMjcuN2wtNTEuNSA1MS41IDEwMS4zIDAgMzcuMS05Ni40LTU1LjYtMjcuOEMyMzAuNCAzMTkgMjE1LjMgMjY3IDIzOS4zIDIyNy4xbDM3LjctNjIuNy0yNy43LTcuN2MtOS0yLjUtMTguMSAzLjItMjAgMTIuM2wtNS45IDI5LjNjLTMuMSAxNS42LTE3LjEgMjYuMy0zMi41IDI1LjdsLTEzMCAyMDgtMzcuNyAwIDE0MC42LTIyNWMtMy40LTYuMy00LjYtMTMuOC0zLjEtMjEuM2w1LjktMjkuM2M5LjEtNDUuNiA1NS4xLTczLjggOTkuOS02MS40bDMyLjUgOWM0Ni43IDEzIDg4IDQwLjggMTE3LjYgNzkuM2wyNC45IDMyLjMgNDAuNC0yMC4yYzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjN6Il19LExNcj1CT2UsSE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jaGVjayIsaWNvbjpbNDQ4LDUxMixbOTc0NSw5OTg5LDYxNTEwLCJjaGVjay1zcXVhcmUiXSwiZjE0YSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0zNDIgMTQ1LjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDE4OS4xIDMxNS4yIDEzNyAyNjMuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOSA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM0Ny4zIDE3OS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41eiJdfSxETXI9SE9lLHFPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXRoIixpY29uOls1MTIsNTEyLFsxMjg3MDUsImJhdGh0dWIiXSwiZjJjZCIsIk05NiA3Ny4zYzAtNy4zIDUuOS0xMy4zIDEzLjMtMTMuMyAzLjUgMCA2LjkgMS40IDkuNCAzLjlsMTQuOSAxNC45Yy0zLjYgOS4xLTUuNSAxOC45LTUuNSAyOS4yIDAgMTkuOSA3LjIgMzggMTkuMiA1Mi01LjMgOS4yLTQgMjEuMSAzLjggMjkgOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMjg5IDg5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45LTcuOC03LjktMTkuOC05LjEtMjktMy44LTE0LTEyLTMyLjEtMTkuMi01Mi0xOS4yLTEwLjMgMC0yMC4yIDItMjkuMiA1LjVMMTYzLjkgMjIuNkMxNDkuNCA4LjEgMTI5LjcgMCAxMDkuMyAwIDY2LjYgMCAzMiAzNC42IDMyIDc3LjNMMzIgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNDhjMCAyOC40IDEyLjQgNTQgMzIgNzEuNkw2NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2IDI1NiAwIDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQwLjRjMTkuNi0xNy42IDMyLTQzLjEgMzItNzEuNmwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDI1NiA5NiA3Ny4zeiJdfSwkTXI9cU9lLEFNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1iaXNob3AiLGljb246WzMyMCw1MTIsWzk4MjFdLCJmNDNhIiwiTTY0IDM4NEw0OC4zIDM2OC4zQzE3LjQgMzM3LjQgMCAyOTUuNCAwIDI1MS43IDAgMjEzLjEgMTMuNSAxNzUuOCAzOC4yIDE0Ni4xTDEwNi43IDY0IDk2IDY0Qzc4LjMgNjQgNjQgNDkuNyA2NCAzMlM3OC4zIDAgOTYgMEwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDQ3LjYgNTcuMS04NS45IDg1LjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4Mi4zLTgyLjNjMTguNyAyNy4zIDI4LjcgNTkuNyAyOC43IDkzIDAgNDMuNy0xNy40IDg1LjctNDguMyAxMTYuNkwyNTYgMzg0IDMxMi4yIDQ1NC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDM1LjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw2NCAzODR6Il19LFZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24tYm90dGxlLW1lZGljYWwiLGljb246WzM4NCw1MTIsWyJwcmVzY3JpcHRpb24tYm90dGxlLWFsdCJdLCJmNDg2IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyek0zMiAxNDRsMzIwIDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNHpNMTYwIDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sRU1yPVZPZSxqT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJhdy1wb2x5Z29uIixpY29uOls1MTIsNTEyLFs1ODA1NSwidmVjdG9yLXBvbHlnb24iXSwiZjVlZSIsIk02NCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmwyNzMuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAzNC0yNi41IDYxLjgtNjAgNjMuOWwtMi4xIDIuOS03MS41IDk5LjFjMy42IDggNS42IDE2LjkgNS42IDI2LjJzLTIgMTguMi01LjYgMjYuMmwyLjIgMy4xIDY5LjMgOTYgMi4xIDIuOWMzMy41IDIuMSA2MCAyOS45IDYwIDYzLjkgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yNzMuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI3My4xQzEyLjkgMTA4LjQgMCA4Ny43IDAgNjQgMCAyOC43IDI4LjcgMCA2NCAwek0zOTQuMiA0MTMuNGwtNjUuNS05MC42LTIuMi0zLjFjLTIuMSAuMi00LjMgLjMtNi41IC4zLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMi4yIDAgNC40IC4xIDYuNSAuM2w2Ny43LTkzLjdjLS42LS45LTEuMS0xLjctMS42LTIuNkwxMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMjczLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDI3My4xIDBjLjUtLjkgMS4xLTEuOCAxLjYtMi42eiJdfSxJTXI9ak9lLFBNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpLWN1cnNvciIsaWNvbjpbMjU2LDUxMixbXSwiZjI0NiIsIk0uMSAyOS4zQy0xLjQgNDcgMTEuNyA2Mi40IDI5LjMgNjMuOWw4IC43QzcwLjUgNjcuMyA5NiA5NSA5NiAxMjguM2wwIDk1LjctMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgOTUuN2MwIDMzLjMtMjUuNSA2MS01OC43IDYzLjhsLTggLjdDMTEuNyA0NDkuNi0xLjQgNDY1IC4xIDQ4Mi43UzE3IDUxMy40IDM0LjcgNTExLjlsOC0uN2MzNC4xLTIuOCA2NC4yLTE4LjkgODUuNC00Mi45IDIxLjIgMjQgNTEuMiA0MCA4NS40IDQyLjlsOCAuN2MxNy42IDEuNSAzMy4xLTExLjYgMzQuNS0yOS4ycy0xMS42LTMzLjEtMjkuMi0zNC41bC04LS43QzE4NS41IDQ0NC43IDE2MCA0MTcgMTYwIDM4My43bDAtOTUuNyAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtOTUuN2MwLTMzLjMgMjUuNS02MSA1OC43LTYzLjhsOC0uN2MxNy42LTEuNSAzMC43LTE2LjkgMjkuMi0zNC41UzIzOS0xLjQgMjIxLjMgLjFsLTggLjdjLTM0LjEgMi44LTY0LjIgMTguOS04NS40IDQyLjktMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3oiXX0sTk1yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1wbHVzIixpY29uOls1NzYsNTEyLFtdLCJlNTAwIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6Il19LE9Ncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtZG9nIixpY29uOls1MTIsNTEyLFtdLCJlNTczIiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNjAuOSAyODYuMmM0LjggMS4yIDkuOSAxLjggMTUuMSAxLjggMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NCA0NC4yIDBjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN2w3LjIgMTQuMyA2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgNDQuMi0zNS44IDgwLTgwIDgwbC00OCAwIDAgNTAuN2MwIDcuMy01LjkgMTMuMy0xMy4zIDEzLjMtMS44IDAtMy42LS40LTUuMi0xLjFsLTk4LjctNDIuM2MtNi42LTIuOC0xMC44LTkuMy0xMC44LTE2LjQgMC0yLjggLjYtNS41IDEuOS04bDE1LTMwek0xNjAgMTYwbDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LFJNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4tZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1MzIiLCJNMjEuOSA5NC40QzUuMSA4OC44LTMuOSA3MC42IDEuNyA1My45UzI1LjQgMjguMSA0Mi4xIDMzLjZsMzg0IDEyOEM0MzkuMiAxNjYgNDQ4IDE3OC4yIDQ0OCAxOTJzLTguOCAyNi0yMS45IDMwLjRsLTM4NCAxMjhjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVMMzE0LjggMTkyIDIxLjkgOTQuNHpNNDE2IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDB6Il19LEZNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNjQuNCAxNzUuOEwyNTYgMzMuOSA0NDcuNiAxNzUuOCAyODkuNSAyOTNjLTkuNyA3LjItMjEuNCAxMS0zMy41IDExcy0yMy44LTMuOS0zMy41LTExTDY0LjQgMTc1Ljh6TTI1Ni0zMmMtMTIuMSAwLTIzLjggMy45LTMzLjUgMTFMMjUuOSAxMjQuN0M5LjYgMTM2LjggMCAxNTUuOCAwIDE3Ni4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjM5LjljMC0yMC4zLTkuNi0zOS40LTI1LjktNTEuNEwyODkuNS0yMWMtOS43LTcuMi0yMS40LTExLTMzLjUtMTF6Il19LEJNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VuZCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyZCIsIk0xMTIuNCAxNzkuMkMxNDIgMTI3LjcgMTk2LjggOTYgMjU2LjIgOTZzMTE0LjIgMzEuNyAxNDMuOSA4My4yTDUwOC43IDM2OGMxMi4zIDIxLjMtMy4xIDQ4LTI3LjcgNDhMMzEuNSA0MTZjLTI0LjYgMC00MC0yNi42LTI3LjctNDhMMTEyLjQgMTc5LjJ6Il19LEhNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2ljZW1haWwiLGljb246WzY0MCw1MTIsW10sImY4OTciLCJNMTQ0IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMjYzLjggMzIwYzE1LjMtMjIuOSAyNC4yLTUwLjQgMjQuMi04MCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDE2MC41IDAgMjQwIDY0LjUgMzg0IDE0NCAzODRsMzUyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTNTc1LjUgOTYgNDk2IDk2IDM1MiAxNjAuNSAzNTIgMjQwYzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwbC0xMTIuNSAwek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYweiJdfSxxTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NSIsIk0yMDAgNDY0bDAtMTcwLjFjMC0zLjktLjUtNy44LTEuNC0xMS42TDE0NC40IDY1LjRDMTYyLjEgNzcuMiAxODguMiA4OCAyMjQgODhzNjEuOS0xMC44IDc5LjYtMjIuNkwyNDkuNCAyODIuM2MtMSAzLjgtMS40IDcuNy0xLjQgMTEuNkwyNDggNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkzLjVjMC05LjUtMi44LTE4LjctOC4xLTI2LjZsLTQ3LjktNzEuOGMtNS4zLTcuOS04LjEtMTcuMS04LjEtMjYuNkwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuNSAwYy0uMyAwLS42IDAtMSAwLS42IDAtMS4yIDAtMS44IDAtMTguOCAwLTM0LjEgOS43LTQ0LjEgMTguOC05LjMgOC40LTI4LjUgMjEuMi02MS43IDIxLjJzLTUyLjQtMTIuOC02MS43LTIxLjJjLTEwLTkuMS0yNS4zLTE4LjgtNDQuMS0xOC44LS42IDAtMS4yIDAtMS44IDAtLjMgMC0uNiAwLTEgMEwxMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDk3LjVjMCA5LjUtMi44IDE4LjctOC4xIDI2LjZMOC4xIDI0My45QzIuOCAyNTEuOCAwIDI2MS4xIDAgMjcwLjVMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6Il19LFZNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdWRpby1kZXNjcmlwdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI5ZSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA5NmwwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgNDggMCAwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0em00OCAzMmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyLTQ4IDB6bTE1Mi05NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTQ4YzAtMzkuOC0zMi4yLTcyLTcyLTcybC00OCAwem00OCAxNDRsLTI0IDAgMC05NiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6Il19LGpNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3IixpY29uOls1NzYsNTEyLFsxMTldLCI1NyIsIk0yMC44IDM0YzE2LjUtNi4yIDM1IDIuMiA0MS4yIDE4LjdMMTcyLjIgMzQ2LjcgMjU3LjMgNTVjNC0xMy43IDE2LjUtMjMgMzAuNy0yM3MyNi43IDkuNCAzMC43IDIzTDQwMy44IDM0Ni43IDUxNCA1Mi44YzYuMi0xNi41IDI0LjYtMjQuOSA0MS4yLTE4LjdTNTgwLjIgNTguNyA1NzQgNzUuMmwtMTQ0IDM4NGMtNC44IDEyLjktMTcuNCAyMS4zLTMxLjIgMjAuN3MtMjUuNy05LjgtMjkuNS0yM0wyODggMTc4LjMgMjA2LjcgNDU3Yy0zLjkgMTMuMi0xNS44IDIyLjUtMjkuNSAyM3MtMjYuMy03LjgtMzEuMi0yMC43TDIgNzUuMkMtNC4yIDU4LjcgNC4yIDQwLjIgMjAuOCAzNHoiXX0sQ3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1kcm9wcGVyIixpY29uOls1MTIsNTEyLFsiZXllLWRyb3BwZXItZW1wdHkiLCJleWVkcm9wcGVyIl0sImYxZmIiLCJNMzQxLjYgMjkuMmwtMTAxLjYgMTAxLjYtOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDEwMS42LTEwMS42YzM5LTM5IDM5LTEwMi4yIDAtMTQxLjFzLTEwMi4yLTM5LTE0MS4xIDB6TTU1LjQgMzIzLjNjLTE1IDE1LTIzLjQgMzUuNC0yMy40IDU2LjZsMCA0Mi40LTI2LjYgMzkuOWMtOC41IDEyLjctNi44IDI5LjYgNCA0MC40czI3LjcgMTIuNSA0MC40IDRsMzkuOS0yNi42IDQyLjQgMGMyMS4yIDAgNDEuNi04LjQgNTYuNi0yMy40bDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNGMtMyAzLTcuMSA0LjctMTEuMyA0LjdsLTM2LjEgMCAwLTM2LjFjMC00LjIgMS43LTguMyA0LjctMTEuM2wxMDkuNC0xMDkuNC00NS4zLTQ1LjMtMTA5LjQgMTA5LjR6Il19LFVNcj1DdWUsV01yPUN1ZSwkeT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYxNTMyLCJ0aW1lcy1jaXJjbGUiLCJ4bWFyay1jaXJjbGUiXSwiZjA1NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sR01yPSR5LFlNcj0keSxLTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaWxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTA0MSIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2em00MDggMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTExMiAxMzZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTc2LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0yNjQgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LHp1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJraXNoLWxpcmEtc2lnbiIsaWNvbjpbNDQ4LDUxMixbInRyeSIsInR1cmtpc2gtbGlyYSJdLCJlMmJiIiwiTTE2MCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQzLjYgMTIxLjQtMzQuN2MxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0xMzQuNiAzOC41IDAgNDYuMSAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCAxNjIuNSA3MiAwYzUzIDAgOTYtNDMgOTYtOTYgMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2LjItMjUuNCA3LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wzOC42LTExIDAtNDYuMS0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC02MS45YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxaTXI9enVlLFFNcj16dWUsWE1yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbGNhbm8iLGljb246WzUxMiw1MTIsWzEyNzc1NV0sImY3NzAiLCJNMTYwIDE0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxNS43IDAgMzAgNS42IDQxLjIgMTUgMTEuMi0xOC42IDMxLjYtMzEgNTQuOC0zMXM0My42IDEyLjQgNTQuOCAzMWMxMS4xLTkuNCAyNS41LTE1IDQxLjItMTUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRjLTE0LjcgMC0yOC4zLTUtMzkuMS0xMy4zbC0zMiA0OEMyNzUuMyAxODcgMjY2IDE5MiAyNTYgMTkycy0xOS4zLTUtMjQuOS0xMy4zbC0zMi00OEMxODguMyAxMzkgMTc0LjcgMTQ0IDE2MCAxNDR6TTE0NCAzNTJsNDguNC0yNC4yYzEwLjItNS4xIDIxLjYtNy44IDMzLTcuOCAxOS42IDAgMzguNCA3LjggNTIuMiAyMS42bDMyLjUgMzIuNWM2LjMgNi4zIDE0LjkgOS45IDIzLjggOS45IDExLjMgMCAyMS44LTUuNiAyOC0xNWw5LjctMTQuNi01OS02Ni4zYy05LjEtMTAuMi0yMi4yLTE2LjEtMzUuOS0xNi4xbC00MS44IDBjLTEzLjcgMC0yNi44IDUuOS0zNS45IDE2LjFsLTU5LjkgNjcuNCA0LjctMy41em0xOS40LTk1LjhjMTguMi0yMC41IDQ0LjMtMzIuMiA3MS44LTMyLjJsNDEuOCAwYzI3LjQgMCA1My41IDExLjcgNzEuOCAzMi4ybDE1MC4yIDE2OWM4LjUgOS41IDEzLjIgMjEuOSAxMy4yIDM0LjcgMCAyOC44LTIzLjQgNTIuMi01Mi4yIDUyLjJMNTIuMiA1MTJDMjMuNCA1MTIgMCA0ODguNiAwIDQ1OS44IDAgNDQ3LjEgNC43IDQzNC43IDEzLjIgNDI1LjJsMTUwLjItMTY5eiJdfSxKTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1zcGFya2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjcyYiIsIk00NjQgNi4xYzkuNS04LjUgMjQtOC4xIDMzIC45bDggOGM5IDkgOS40IDIzLjUgLjkgMzNsLTg1LjggOTUuOWMtMi42IDIuOS00LjEgNi43LTQuMSAxMC43bDAgMjEuNGMwIDguOC03LjIgMTYtMTYgMTZsLTE1LjggMGMtNC42IDAtOC45IDEuOS0xMS45IDUuM0wxMDAuNyA1MDAuOWMtNi4zIDcuMS0xNS4zIDExLjEtMjQuOCAxMS4xLTguOCAwLTE3LjMtMy41LTIzLjUtOS44TDkuNyA0NTkuN2MtNi4yLTYuMi05LjctMTQuNy05LjctMjMuNSAwLTkuNSA0LTE4LjUgMTEuMS0yNC44bDExMS42LTk5LjhjMy40LTMgNS4zLTcuNCA1LjMtMTEuOWwwLTI3LjZjMC04LjggNy4yLTE2IDE2LTE2bDM0LjYgMGMzLjkgMCA3LjctMS41IDEwLjctNC4xTDQ2NCA2LjF6TTQzMiAyODhjMy42IDAgNi43IDIuNCA3LjcgNS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44bC0xNC44LTUxLjctNTEuNy0xNC44Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44ek04Ny43IDY5LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44LTE0LjggNTEuN2MtMSAzLjQtNC4xIDUuOC03LjcgNS44cy02LjctMi40LTcuNy01LjhMNTcuNSAxNjYuNSA1LjggMTUxLjdjLTMuNC0xLTUuOC00LjEtNS44LTcuN3MyLjQtNi43IDUuOC03LjdsNTEuNy0xNC44IDE0LjgtNTEuN2MxLTMuNCA0LjEtNS44IDcuNy01LjhzNi43IDIuNCA3LjcgNS44ek0yMDggMGMzLjcgMCA2LjkgMi41IDcuOCA2LjFsNi44IDI3LjMgMjcuMyA2LjhjMy42IC45IDYuMSA0LjEgNi4xIDcuOHMtMi41IDYuOS02LjEgNy44bC0yNy4zIDYuOC02LjggMjcuM2MtLjkgMy42LTQuMSA2LjEtNy44IDYuMXMtNi45LTIuNS03LjgtNi4xbC02LjgtMjcuMy0yNy4zLTYuOGMtMy42LS45LTYuMS00LjEtNi4xLTcuOHMyLjUtNi45IDYuMS03LjhsMjcuMy02LjggNi44LTI3LjNjLjktMy42IDQuMS02LjEgNy44LTYuMXoiXX0sZUNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUiLGljb246WzM4NCw1MTIsW10sImYxMzAiLCJNMTkyIDBDMTM5IDAgOTYgNDMgOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek00OCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxNzAuNyAwIDE4NGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOTQuNy0xMS44IDE2OC05Mi42IDE2OC0xOTAuNWwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggMzAzLjUgNDggMjI0bDAtNDB6Il19LHRDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93biIsaWNvbjpbNTc2LDUxMixbMTI4MDgxXSwiZjUyMSIsIk0zMTMgODcuMmM5LjItNy4zIDE1LTE4LjYgMTUtMzEuMiAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDEyLjYgNS45IDIzLjkgMTUgMzEuMkwxOTQuNiAxOTQuOGMtMTAgMTUuNy0zMS4zIDE5LjYtNDYuMiA4LjRMODguOSAxNTguN2M0LjUtNi40IDcuMS0xNC4zIDcuMS0yMi43IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMjEuOCAxNy41IDM5LjYgMzkuMiA0MEw4Ny44IDM5My41YzQuNyAzMS4zIDMxLjYgNTQuNSA2My4zIDU0LjVsMjczLjggMGMzMS43IDAgNTguNi0yMy4yIDYzLjMtNTQuNUw1MjAuOCAxNzZjMjEuNy0uNCAzOS4yLTE4LjIgMzkuMi00MCAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDguNCAyLjYgMTYuMyA3LjEgMjIuN2wtNTkuNCA0NC42Yy0xNC45IDExLjItMzYuMiA3LjMtNDYuMi04LjRMMzEzIDg3LjJ6Il19LHJDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LXR1cm4tbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU4MCIsIk0tLjUgMTEzbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzEtMzEgMzUwLjEgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMzUwLjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOVM4MC45LTIuMyA3MS41IDdMLS41IDc5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXpNNjAuMyAyOTIuNkwzNy4xIDQ3NmMtMi40IDE5LjEgMTIuNSAzNiAzMS43IDM2bDE1NC41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTcuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOWw2OC4yIDEzNi41YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNzEuOSAwYzE5LjMgMCAzNC4yLTE2LjkgMzEuNy0zNkw0NTIuNyAyOTIuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMjcxLjkgMTY5LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMNzUuNCAyNjkuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zeiJdfSxVT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZmFzdCIsaWNvbjpbNjQwLDUxMixbInNoaXBwaW5nLWZhc3QiXSwiZjQ4YiIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyIDUwLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w2MjEuMyAxOTJjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w2NDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zLjMgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTEwMi42IDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0zLjMgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC00OC00MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCAxNDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzEwLjcgOTYgMjQgOTZsNDAgMHpNNTc2IDI4OGwwLTUwLjctNDUuMy00NS4zLTUwLjcgMCAwIDk2IDk2IDB6TTI1NiA0MjRhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHptMjMyIDQwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sYUNyPVVPZSxXT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wZW4iLGljb246WzY0MCw1MTIsWyJ1c2VyLWVkaXQiXSwiZjRmZiIsIk0yNTYuMSAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NmMtOTguNSAwLTE3OC4zIDc5LjgtMTc4LjMgMTc4LjMgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMTk2LjUgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsNjcuMy02Ny4zYy0yOC0xOC4zLTYxLjQtMjguOS05Ny40LTI4LjlsLTU5LjQgMHpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44eiJdfSxpQ3I9V09lLHNDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNsb2NrIixpY29uOls1NzYsNTEyLFtdLCJmNGZkIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMzLjkgMCA3LjkgLjEgMTEuOCAuNC0xNi4yIDI4LjItMjUuNSA2MC44LTI1LjUgOTUuNiAwIDQxLjggMTMuNCA4MC41IDM2IDExMkw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQ0LTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sbkNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3dlciIsaWNvbjpbNTEyLDUxMixbMTI4NzAzXSwiZjJjYyIsIk02NCAxMzEuOWMwLTE5LjggMTYuMS0zNS45IDM1LjktMzUuOSA5LjUgMCAxOC42IDMuOCAyNS40IDEwLjVsMTYuMiAxNi4yYy0yMSAzOC45LTE3LjQgODcuNSAxMC45IDEyM0wxNTEgMjQ3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBMMzQ1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xLjMgMS4zYy0zNS41LTI4LjMtODQuMS0zMS45LTEyMy0xMC45TDE3MC41IDYxLjNDMTUxLjggNDIuNSAxMjYuNCAzMiA5OS45IDMyIDQ0LjcgMzIgMCA3Ni43IDAgMTMxLjlMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMxNi4xek0yNTYgMzUyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyLTMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sR09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC11cCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS11cCJdLCJmMTUxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAxNjBjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlTMzM3LjUgMzIwIDMyOCAzMjBsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6Il19LG9Dcj1HT2UsWU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1sb2NhdGlvbiIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQiXSwiZjU5ZiIsIk01NzYgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMNDEzLjUgNzcuNSAyMzQuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNzAuOCA4OC44IDY0IDk5LjkgNjQgMTEybDAgMzUyYzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzMuMyA1Ny44Yy00LjMtNi40LTguNS0xMy4xLTEyLjYtMTkuOS0xMS0xOC4zLTIxLjktMzkuMy0zMC02MS44bC0xMDEuMi0zMy43IDAtMjg0LjUgMTI4IDQyLjcgMCA5OS4zYzMxLTM1LjggNzctNTguNCAxMjgtNTguNCAyMi42IDAgNDQuMiA0LjQgNjQgMTIuNUw1NzYgNDh6TTM5MiAzNDEuOWMwIDY4LjkgNjQuMSAxNTAuNCA5OC42IDE4OS4zIDExLjYgMTMgMzEuMyAxMyA0Mi45IDAgMzQuNS0zOC45IDk4LjYtMTIwLjQgOTguNi0xODkuMyAwLTY1LjEtNTMuNy0xMTcuOS0xMjAtMTE3LjlTMzkyIDI3Ni44IDM5MiAzNDEuOXoiXX0sbENyPVlPZSxjQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWZhbmN5IixpY29uOls1MTIsNTEyLFsxMjgzOTUsMTAwMDJdLCJmNWFjIiwiTTM3My41IDI3LjFjMTUtMTcuMiAzNi43LTI3LjEgNTkuNi0yNy4xIDQzLjYgMCA3OSAzNS40IDc5IDc5IDAgMjIuOC05LjkgNDQuNi0yNy4xIDU5LjZMMjgzLjcgMzEzLjggMjczIDMwMyAyMDkgMjM5IDE5OC4yIDIyOC4zIDM3My41IDI3LjF6TTE2MS4xIDI1OUMxNjIgMjYwIDE4OCAyODYgMjM5IDMzN2wxMy45IDEzLjktMTcuMSA3NC4yYy0zLjkgMTcuMS0xNi45IDMwLjctMzMuOCAzNS40bC0xNjkuOCA0Ny41IDkyLjMtOTIuM2MxLjIgLjEgMi4zIC4yIDMuNSAuMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyYzAgMS4yIC4xIDIuNCAuMiAzLjVMMy45IDQ3OS44IDUxLjUgMzEwYzQuNy0xNi45IDE4LjMtMjkuOSAzNS40LTMzLjhMMTYxLjEgMjU5eiJdfSxfdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXVyby1zaWduIixpY29uOls0NDgsNTEyLFs4MzY0LCJldXIiLCJldXJvIl0sImYxNTMiLCJNNzMuMyAxOTJDMTAwLjggOTkuNSAxODYuNSAzMiAyODggMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtNjUuNiAwLTEyMiAzOS41LTE0Ni43IDk2TDI3MiAxOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0My4yIDBjLS41IDUuMy0uOCAxMC42LS44IDE2cy4zIDEwLjcgLjggMTZMMjcyIDI3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTMwLjcgMGMyNC43IDU2LjUgODEuMSA5NiAxNDYuNyA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xMDEuNSAwLTE4Ny4yLTY3LjUtMjE0LjctMTYwTDQwIDMyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNC42IDBjLS43LTEwLjUtLjctMjEuNSAwLTMyTDQwIDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzMy4zIDB6Il19LGRDcj1fdWUsdUNyPV91ZSxwQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTBiIiwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4yIDQ3LjItMTc1LjkgMTE0LjgtNS0xLjgtMTAuNS0yLjgtMTYuMS0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTAuOSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTU1LjMgMzQwLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnoiXX0sZkNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpcmEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM1Nl0sImYxOTUiLCJNODQuOSAyNTZsLTI4LjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMS42IDBDNTMuMiAxMjQuNyAxMTYuOCA0MiAyMDcuNiA0Mmw4LjIgMGMzMy42IDAgNjYuMiAxMS4zIDkyLjUgMzIuMmwxNi4xIDEyLjdjMTMuOSAxMSAxNi4yIDMxLjEgNS4yIDQ1cy0zMS4xIDE2LjItNDUgNS4ybC0xNi4xLTEyLjdjLTE1LTExLjktMzMuNi0xOC40LTUyLjgtMTguNGwtOC4yIDBjLTUzLjggMC05MC4xIDUyLjktNzMuNSAxMDJsMTYyLjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ1LjEgMGMyLjMgMTAuNiAzLjYgMjEuMyAzLjkgMzJsMTQxLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwxNTAgMzM2Yy00LjggMTguNi0xMi42IDM2LjUtMjMuNiA1Mi45bC0xOC4xIDI3LjEgMjEyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjcyIDBjLTExLjggMC0yMi42LTYuNS0yOC4yLTE2LjlzLTUtMjMgMS42LTMyLjlsNTEuMi03Ni44YzMuNy01LjYgNi45LTExLjQgOS40LTE3LjRsLTI2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzQuOCAwYy0uNS0xMC44LTIuNi0yMS42LTYuNC0zMnoiXX0sVHk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieWVuLXNpZ24iLGljb246WzM4NCw1MTIsWzE2NSwiY255IiwianB5Iiwicm1iIiwieWVuIl0sImYxNTciLCJNNzQuOSA0Ni43Yy05LjYtMTQuOS0yOS40LTE5LjItNDQuMi05LjZTMTEuNSA2Ni40IDIxLjEgODEuM0wxNDMuNyAyNzIgODggMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCAzMi03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTMyIDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU1LjcgMCAxMjIuNi0xOTAuN2M5LjYtMTQuOSA1LjMtMzQuNy05LjYtNDQuMnMtMzQuNy01LjMtNDQuMiA5LjZMMTkyIDIyOC44IDc0LjkgNDYuN3oiXX0saENyPVR5LG1Dcj1UeSxnQ3I9VHksYkNyPVR5LHhDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtb3BlbiIsaWNvbjpbNjQwLDUxMixbXSwiZjQ5ZSIsIk01NjAuMyAyMzcuMmMxMC40IDExLjggMjguMyAxNC40IDQxLjggNS41IDE0LjctOS44IDE4LjctMjkuNyA4LjktNDQuNGwtNDgtNzJjLTIuOC00LjItNi42LTcuNy0xMS4xLTEwLjJMMzUxLjQgNC43Yy0xOS4zLTEwLjctNDIuOC0xMC43LTYyLjIgMEw4OC44IDExNmMtNS40IDMtOS43IDcuNC0xMi42IDEyLjhMMjcuNyAyMTguN2MtMTIuNiAyMy40LTMuOCA1Mi41IDE5LjYgNjUuMWwzMyAxNy43IDAgNTMuM2MwIDIzIDEyLjQgNDQuMyAzMi40IDU1LjdsMTc2IDk5LjdjMTkuNiAxMS4xIDQzLjUgMTEuMSA2My4xIDBsMTc2LTk5LjdjMjAuMS0xMS40IDMyLjQtMzIuNiAzMi40LTU1LjdsMC0xMTcuNXptLTI0MC05LjhMMTcwLjIgMTQ0IDMyMC4zIDYwLjYgNDcwLjQgMTQ0IDMyMC4zIDIyNy40em0tNDEuNSA1MC4ybC0yMS4zIDQ2LjItMTY1LjgtODguOCAyNS40LTQ3LjIgMTYxLjcgODkuOHoiXX0sdkNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZpZWxkIixpY29uOls2NDAsNTEyLFtdLCJlNThkIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDIyNCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmw0MC40IDBjMzIuNCAwIDYxLjYgMTkuNiA3NCA0OS41bDQzLjggMTA2LjMgMS43IDQuMiAyNC43IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtLjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThsLTE0NC43IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMy42IC4yLTcuMSAuNi0xMC41LTE5LTYuNC0zMi42LTI0LjQtMzIuNi00NS41bDAtNDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMC0zMnptMzUyIDMybDAgOTYgODIuMSAwLTM1LjQtODYuMWMtMi41LTYtOC4zLTkuOS0xNC44LTkuOUwzODQgMTI4ek0xOTIgMzkyYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTI4MCA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LHlDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1waW4tbG9jayIsaWNvbjpbNTEyLDUxMixbXSwiZTUxZiIsIk0wIDE4OC42QzAgODQuNCA4NiAwIDE5MiAwIDI5NC4xIDAgMzc3LjYgNzguMyAzODMuNiAxNzcgMzIwLjcgMTg1LjEgMjcyIDIzOC44IDI3MiAzMDRsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgNzUuN2MtOS45IDExLjYtMTguOSAyMS43LTI2LjQgMjkuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bTI0MCA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMjg4IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sS09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1wcmF5aW5nIixpY29uOlszODQsNTEyLFsxMjg3MjAsInByYXkiXSwiZjY4MyIsIk0zMjAgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0yMDAuNyAyNjRsMjIuOSAzMS41YzYuNSA4LjkgMTYuMyAxNC43IDI3LjIgMTYuMXMyMS45LTEuNyAzMC40LTguN2w4OC03MmMxNy4xLTE0IDE5LjYtMzkuMiA1LjYtNTYuM3MtMzkuMi0xOS42LTU2LjMtNS42bC01NS4yIDQ1LjItMjYuMi0zNmMtMTUuNi0yMS41LTQwLjYtMzQuMi02Ny4yLTM0LjItMzAuOSAwLTU5LjIgMTcuMS03My42IDQ0LjRMNDcuOCAyODAuOWMtMjAuMiAzOC41LTkuNCA4NS45IDI1LjYgMTExLjhMMTI2LjYgNDMyIDQwIDQzMmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwyMDggMGMxNy4zIDAgMzIuNi0xMS4xIDM4LTI3LjVzLS4zLTM0LjQtMTQuMi00NC43bC0xMTYuMS04NS44IDQ1LTkweiJdfSx3Q3I9S09lLGtDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtbGlzdCIsaWNvbjpbMzg0LDUxMixbXSwiZjQ2ZCIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTI4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMiAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTAgMTI4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTk2IDQxNmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFNDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWNrLWRvbGxhciIsaWNvbjpbNTEyLDUxMixbMTI4MTc2XSwiZjgxZCIsIk0zMjggMTEybC0xNDQgMC0zNy4zLTc0LjVjLTEuOC0zLjYtMi43LTcuNi0yLjctMTEuNiAwLTE0LjMgMTEuNi0yNS45IDI1LjktMjUuOUwzNDIuMSAwYzE0LjMgMCAyNS45IDExLjYgMjUuOSAyNS45IDAgNC0uOSA4LTIuNyAxMS42TDMyOCAxMTJ6TTE2OS42IDE2MGwxNzIuOCAwIDQ4LjcgNDAuNkM0NTcuNiAyNTYgNDk2IDMzOCA0OTYgNDI0LjUgNDk2IDQ3Mi44IDQ1Ni44IDUxMiA0MDguNSA1MTJsLTMwNS4xIDBDNTUuMiA1MTIgMTYgNDcyLjggMTYgNDI0LjUgMTYgMzM4IDU0LjQgMjU2IDEyMC45IDIwMC42TDE2OS42IDE2MHpNMjYwIDIyNGMtMTEgMC0yMCA5LTIwIDIwbDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDIxNiAzODRjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjB6Il19LE1Dcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1zdW4iLGljb246WzU3Niw1MTIsW10sImU1MmYiLCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6TTQ5Ni41IDE2MGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHoiXX0sWk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXdpZGUtc2hvcnQiLGljb246WzU3Niw1MTIsWyJzb3J0LWFtb3VudC11cCJdLCJmMTYxIiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNMzIwIDQ4MGwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnoiXX0sQ0NyPVpPZSx6Q3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MiIsIk0yMjQgMTI4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDMzNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHpNMzkyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMGMtMTguMiAyNi0yOC44IDU3LjUtMjguOCA5MS42bDAgOGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTc4LjggMEM0MS42IDM2OCAzMiAzNTguNCAzMiAzNDYuN0wzMiAzMzZjMC01MyA0My05NiA5Ni05NiAxMCAwIDE5LjcgMS41IDI4LjggNC40ek03MiAxNDRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0wIDQ0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxfQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1vZi1kYXZpZCIsaWNvbjpbNTEyLDUxMixbMTAwMTddLCJmNjlhIiwiTTQxNS45IDMxMS45bC0yNy44IDQ4LjEgNTUuNyAwLTI3LjgtNDguMXpNMzgzLjYgMjU2bC02MC4yLTEwNC0xMzQuOCAwLTYwLjIgMTA0IDYwLjIgMTA0IDEzNC44IDAgNjAuMi0xMDR6bTY0LjcgMGw1OC40IDEwMC45YzMuNSA2IDUuMyAxMi44IDUuMyAxOS43IDAgMjEuNy0xNy42IDM5LjQtMzkuNCAzOS40bC0xMTcgMC02MS4zIDEwNS44QzI4Ni41IDUzNS42IDI3MS44IDU0NCAyNTYgNTQ0cy0zMC41LTguNC0zOC40LTIyLjJsLTYxLjMtMTA1LjgtMTE3IDBjLTIxLjcgMC0zOS40LTE3LjYtMzkuNC0zOS40IDAtNi45IDEuOC0xMy43IDUuMy0xOS43TDYzLjcgMjU2IDUuMyAxNTUuMUMxLjggMTQ5LjEgMCAxNDIuMyAwIDEzNS40IDAgMTEzLjYgMTcuNiA5NiAzOS40IDk2bDExNyAwIDYxLjMtMTA1LjhDMjI1LjUtMjMuNiAyNDAuMi0zMiAyNTYtMzJzMzAuNSA4LjQgMzguNCAyMi4ybDYxLjMgMTA1LjggMTE3IDBjMjEuNyAwIDM5LjQgMTcuNiAzOS40IDM5LjQgMCA2LjktMS44IDEzLjctNS4zIDE5LjdMNDQ4LjMgMjU2ek0zODguMSAxNTJsMjcuOCA0OC4xIDI3LjgtNDguMS01NS43IDB6TTI5MSA5NmwtMzUtNjAuNC0zNSA2MC40IDcwIDB6TTEyMy45IDE1MmwtNTUuNyAwIDI3LjggNDguMSAyNy44LTQ4LjF6TTk2LjEgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0yMjEgNDE2bDM1IDYwLjQgMzUtNjAuNC03MCAweiJdfSxUQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZXMtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4MSIsIk05NiAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgxLjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAyOTAuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMEMxMjQuNyAwIDk2IDI4LjcgOTYgNjRsMCAyODh6TTI4OCAxMTJsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEwNi43IDAgMTIwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzI4eiJdfSxMQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXVzdHJhbC1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMGE5IiwiTTI2Ni41IDI0MGwtODUgMCA0Mi41LTEwNi40IDQyLjUgMTA2LjR6bTY4LjkgMEwyNjIuOSA1OC4zQzI1Ni41IDQyLjQgMjQxLjEgMzIgMjI0IDMycy0zMi41IDEwLjQtMzguOSAyNi4zTDExMi42IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjEuNCAwLTE5LjIgNDgtNDIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDIzLjEgMC0yMC44IDUyLjFjLTYuNiAxNi40IDEuNCAzNSAxNy45IDQxLjZzMzUtMS40IDQxLjYtMTcuOWwzMC4zLTc1LjkgMjAwIDAgMzAuMyA3NS45YzYuNiAxNi40IDI1LjIgMjQuNCA0MS42IDE3LjlzMjQuNC0yNS4yIDE3LjktNDEuNkwzOTIuOSAzODQgNDE2IDM4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDIuMyAwLTE5LjItNDggNjEuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MC42IDB6bS00OS43IDQ4bDE5LjIgNDgtMTYxLjYgMCAxOS4yLTQ4IDEyMy4zIDB6Il19LERDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtdXNlciIsaWNvbjpbMzg0LDUxMixbXSwiZjdmMyIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTkyIDM0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNOTguMyA0MTNjLTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwYzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5eiJdfSwkQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTI4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05Mi42IDQ0OGwxOTguOCAwYzE1LjggMCAyOC42LTEyLjggMjguNi0yOC42IDAtNy4zLTIuOC0xNC40LTcuOS0xOS43TDIxNS4zIDI5Ny45Yy02LTYuMy0xNC40LTkuOS0yMy4yLTkuOWwtLjMgMGMtOC44IDAtMTcuMSAzLjYtMjMuMiA5LjlMNzEuOSAzOTkuN0M2Ni44IDQwNSA2NCA0MTIuMSA2NCA0MTkuNCA2NCA0MzUuMiA3Ni44IDQ0OCA5Mi42IDQ0OHoiXX0sUU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1yaWdodCJdLCJmMTUyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zMjAgMjU2YzAgNi43LTIuOCAxMy03LjcgMTcuNmwtMTEyIDEwNGMtNyA2LjUtMTcuMiA4LjItMjUuOSA0LjRTMTYwIDM2OS41IDE2MCAzNjBsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6Il19LEFDcj1RT2UsRUNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwiLGljb246WzUxMiw1MTIsWzEyOTUxNF0sImY0OTIiLCJNMzQyLjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzMDYuNyA2NCAyOC4xIDM0Mi42QzEwLjEgMzYwLjYgMCAzODUgMCA0MTAuNUwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDUuNSAwYzI1LjUgMCA0OS45LTEwLjEgNjcuOS0yOC4xbDI3OC42LTI3OC42IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHpNMjA1LjMgMjU2bDE0Ni43LTE0Ni43IDUwLjcgNTAuNy05NiA5Ni0xMDEuNSAweiJdfSxJQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsaWNvcHRlciIsaWNvbjpbNTc2LDUxMixbMTI4NjQxXSwiZjUzMyIsIk0xNzYgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTUyIDAgMCA0OC0yMjAuOCAwLTMyLjgtMzkuNEM2OS45IDgzLjIgNjMuMSA4MCA1NiA4MEwyNCA4MEMxNS43IDgwIDggODQuMyAzLjYgOTEuNHMtNC44IDE1LjktMS4xIDIzLjRsNDggOTZDNTQuNiAyMTguOSA2Mi45IDIyNCA3MiAyMjRsMTA3LjggMCAxMDQgMTQzLjFjMTUuMSAyMC43IDM5LjEgMzIuOSA2NC43IDMyLjlsNzUuNSAwYzc1LjEgMCAxMzYtNjAuOSAxMzYtMTM2UzQ5OS4xIDEyOCA0MjQgMTI4bC00OCAwIDAtNDggMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTc2IDMyek0zNzYgMTkybDQ4IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzJsLTQ4IDAgMC0xNDR6TTU1MiA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgNC40LTMuNiA4LTggOGwtMjcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFBDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaXR0ZW4iLGljb246WzQ0OCw1MTIsW10sImY3YjUiLCJNMzUyIDM4NEw2NCAzODQgNS40IDE3OC45QzEuOCAxNjYuNCAwIDE1My40IDAgMTQwLjMgMCA2Mi44IDYyLjggMCAxNDAuMyAwbDMuNCAwYzY2IDAgMTIzLjUgNDQuOSAxMzkuNSAxMDguOWwzMS40IDEyNS44IDE3LjYtMjAuMUMzNDQuOCAyMDAuMiAzNjIuOSAxOTIgMzgyIDE5MmwyLjggMGMzNC45IDAgNjMuMyAyOC4zIDYzLjMgNjMuMyAwIDE1LjktNiAzMS4yLTE2LjggNDIuOUwzNTIgMzg0ek0zMiA0NjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6Il19LE5Dcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXMtcHVtcCIsaWNvbjpbNTEyLDUxMixbOTk4MV0sImY1MmYiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyNTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MiA4IDBjNDguNiAwIDg4IDM5LjQgODggODhsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTU0Yy0yNy42LTcuMS00OC0zMi4yLTQ4LTYybDAtNTkuNS0yNS44LTI4LjNjLTguOS05LjgtOC4yLTI1IDEuNi0zMy45czI1LTguMiAzMy45IDEuNmw3MS43IDc4LjhjOS40IDEwLjMgMTQuNiAyMy43IDE0LjYgMzcuN0w1MTIgMzc2YzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcybDAtMzJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTggMCAwIDE2MS40YzkuMyAzLjMgMTYgMTIuMiAxNiAyMi42IDAgMTMuMy0xMC43IDI0LTI0IDI0TDQwIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC41IDYuNy0xOS4zIDE2LTIyLjZMMzIgNjR6TTk2IDgwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkwxMTIgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sT0NyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTRlOCIsIk02NCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MS40Yy0yNC40LTExLjItNTEuNC0xNy40LTgwLTE3LjQtODcuNyAwLTE2MS43IDU4LjgtMTg0LjcgMTM5LjItNy4xLTEuMy0xNC4xLTQuMi0yMC4xLTguOGwtMjA4LTE1NkM3MS4xIDE0MS4zIDY0IDEyNy4xIDY0IDExMnpNMzA0IDM2OGMwIDI4LjYgNi4yIDU1LjYgMTcuNCA4MEwxMjggNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE4OCAxOTguNCAxNDguOGMxMi42IDkuNCAyNi45IDE1LjQgNDEuNyAxNy45IDAgMS44LS4xIDMuNS0uMSA1LjN6bTQ4IDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LFhPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2thdGluZyIsaWNvbjpbNTEyLDUxMixbInNrYXRpbmciXSwiZjdjNSIsIk0zNjggNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMjggMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1MC4xIDBjNDkuOSAwIDc0LjkgNjAuMyAzOS42IDk1LjZsLTYzLjkgNjMuOSA2OS44IDMxYzE3LjMgNy43IDI4LjUgMjQuOSAyOC41IDQzLjlsMCA4NS42YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNzUuMi04Mi40LTM2LjZjLTQxLTE4LjItNTEtNzItMTkuMy0xMDMuN2w0MC40LTQwLjQtOTguNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODkuNCAzNjEuNGw3NS45LTc1LjljNy43IDE5LjcgMjEuNiAzNy4zIDQxIDQ5LjZsLTcxLjYgNzEuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6bTM0Ni41IDg3LjFjOC42IDIuMSAxMy44IDEwLjggMTEuNiAxOS40bC0uNCAxLjdjLTYuMiAyNC45LTI4LjYgNDIuNC01NC4zIDQyLjRMMzA0IDUxMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OC44IDBjMTEgMCAyMC42LTcuNSAyMy4zLTE4LjJsLjQtMS43YzIuMS04LjYgMTAuOC0xMy44IDE5LjQtMTEuNnpNMTQzLjIgNDg2LjNsLTYuMiAzLjFjLTIxLjYgMTAuOC00Ny42IDYuNi02NC42LTEwLjVMMTIuNyA0MTkuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDU5LjYgNTkuNmM3LjMgNy4zIDE4LjUgOS4xIDI3LjcgNC41bDYuMi0zLjFjNy45LTQgMTcuNS0uNyAyMS41IDcuMnMuNyAxNy41LTcuMiAyMS41eiJdfSxSQ3I9WE9lLGdwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4LjQgMCAxNi4zIDQuNCAyMC42IDExLjdMMzY0LjEgNzIuMyA0NjguOSA0NmM4LjItMiAxNi45IC40IDIyLjggNi4zUzUwMCA2NyA0OTggNzUuMWwtMjYuMyAxMDQuNyA5Mi43IDU1LjVjNy4yIDQuMyAxMS43IDEyLjIgMTEuNyAyMC42cy00LjQgMTYuMy0xMS43IDIwLjZMNDcxLjcgMzMyLjEgNDk4IDQzNi44YzIgOC4yLS40IDE2LjktNi4zIDIyLjhTNDc3IDQ2OCA0NjguOSA0NjZsLTEwNC43LTI2LjMtNTUuNSA5Mi43Yy00LjMgNy4yLTEyLjIgMTEuNy0yMC42IDExLjdzLTE2LjMtNC40LTIwLjYtMTEuN0wyMTEuOSA0MzkuNyAxMDcuMiA0NjZjLTguMiAyLTE2LjgtLjQtMjIuOC02LjNTNzYgNDQ1IDc4IDQzNi44bDI2LjItMTA0LjctOTIuNi01NS41QzQuNCAyNzIuMiAwIDI2NC40IDAgMjU2czQuNC0xNi4zIDExLjctMjAuNkwxMDQuMyAxNzkuOSA3OCA3NS4xYy0yLTguMiAuMy0xNi44IDYuMy0yMi44Uzk5IDQ0IDEwNy4yIDQ2bDEwNC43IDI2LjIgNTUuNS05Mi42IDEuOC0yLjZjNC41LTUuNyAxMS40LTkuMSAxOC44LTkuMXptMCAxNDRhMTQ0IDE0NCAwIDEgMCAwIDI4OCAxNDQgMTQ0IDAgMSAwIDAtMjg4em0wIDI0MGE5NiA5NiAwIDEgMSAwLTE5MiA5NiA5NiAwIDEgMSAwIDE5MnoiXX0sSk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsIixpY29uOls1MTIsNTEyLFsxMjkzNTgsOTkxOCwiYmFzZWJhbGwtYmFsbCJdLCJmNDMzIiwiTTIzMi40IDEuMWMtMTIyLjIgMTEuNC0yMTkuNSAxMDguNy0yMzAuOSAyMzAuOSAxNi4yLS4xIDMyLTEuOCA0Ny4yLTUgMTMtMi43IDI1LjcgNS41IDI4LjQgMTguNXMtNS41IDI1LjctMTguNSAyOC40Yy0xOC40IDMuOS0zNy42IDYtNTcuMSA2LjEgMTEuNCAxMjIuMiAxMDguNyAyMTkuNSAyMzAuOSAyMzAuOSAuMS0xOS41IDIuMi0zOC43IDYuMS01Ny4xIDIuNy0xMyAxNS41LTIxLjMgMjguNC0xOC41czIxLjMgMTUuNSAxOC41IDI4LjRjLTMuMiAxNS4yLTQuOSAzMS01IDQ3LjIgMTIyLjItMTEuNCAyMTkuNS0xMDguNyAyMzAuOS0yMzAuOS0xNi4yIC4xLTMyIDEuOC00Ny4yIDUtMTMgMi43LTI1LjctNS41LTI4LjQtMTguNXM1LjUtMjUuNyAxOC41LTI4LjRjMTguNC0zLjkgMzcuNi02IDU3LjEtNi4xLTExLjQtMTIyLjItMTA4LjctMjE5LjUtMjMwLjktMjMwLjktLjEgMTkuNS0yLjIgMzguNy02LjEgNTcuMS0yLjcgMTMtMTUuNSAyMS4zLTI4LjQgMTguNXMtMjEuMy0xNS41LTE4LjUtMjguNGMzLjItMTUuMiA0LjktMzEgNS00Ny4yem0yLjggMTUxLjRjLTIxLjQgMzIuOS00OS41IDYwLjktODIuMyA4Mi4zLTExLjEgNy4yLTI2IDQuMS0zMy4yLTdzLTQuMS0yNiA3LTMzLjJjMjcuMi0xNy43IDUwLjUtNDEgNjguMy02OC4zIDcuMi0xMS4xIDIyLjEtMTQuMyAzMy4yLTdzMTQuMyAyMi4xIDcgMzMuMnpNMzkzLjEgMjg0LjJjNy4yIDExLjEgNC4xIDI2LTcgMzMuMi0yNy4yIDE3LjctNTAuNSA0MS02OC4zIDY4LjMtNy4yIDExLjEtMjIuMSAxNC4zLTMzLjIgN3MtMTQuMy0yMi4xLTctMzMuMmMyMS40LTMyLjkgNDkuNS02MC45IDgyLjMtODIuMyAxMS4xLTcuMiAyNi00LjEgMzMuMiA3eiJdfSxGQ3I9Sk9lLEJDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA4MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTI3MiAyMjRjOC40IDAgMTYuMSA0LjQgMjAuNSAxMS41bDg4IDE0NGM0LjUgNy40IDQuNyAxNi43IC41IDI0LjNTMzY4LjcgNDE2IDM2MCA0MTZMODggNDE2Yy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDI2LjQgMzcuOCA2MS40LTEwMC41YzQuNC03LjEgMTIuMS0xMS41IDIwLjUtMTEuNXoiXX0sSENyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGRlZiIsaWNvbjpbMzg0LDUxMixbXSwiZTFmZSIsIk02NCAzOTAuM0wxNTMuNSAyNTYgNjQgMTIxLjcgNjQgMzkwLjN6TTEwMi41IDQ0OEwyODEuNSA0NDggMTkyIDMxMy43IDEwMi41IDQ0OHptMTI4LTE5MkwzMjAgMzkwLjMgMzIwIDEyMS43IDIzMC41IDI1NnpNMjgxLjUgNjRMMTAyLjUgNjQgMTkyIDE5OC4zIDI4MS41IDY0ek0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6Il19LGVSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNrZXRiYWxsIixpY29uOls1MTIsNTEyLFsxMjc5MzYsImJhc2tldGJhbGwtYmFsbCJdLCJmNDM0IiwiTTkyLjcgNTguOGw3OC40IDc4LjRjMTguMi0yNSAyOC45LTU1LjkgMjguOS04OS4yIDAtMTQuMS0xLjktMjcuNy01LjUtNDAuNi0zOCA5LjQtNzIuNiAyNy4yLTEwMS44IDUxLjR6TTU4LjggOTIuN2MtMjQuMiAyOS4yLTQyIDYzLjgtNTEuNCAxMDEuOCAxMi45IDMuNiAyNi41IDUuNSA0MC42IDUuNSAzMy4zIDAgNjQuMS0xMC43IDg5LjItMjguOUw1OC44IDkyLjd6TTI1NiAwYy00LjYgMC05LjIgLjEtMTMuNyAuNCAzLjcgMTUuMyA1LjcgMzEuMiA1LjcgNDcuNiAwIDQ2LjYtMTUuOSA4OS40LTQyLjYgMTIzLjRMMjU2IDIyMi4xIDQxOS4zIDU4LjhDMzc0LjkgMjIuMSAzMTguMSAwIDI1NiAwek00OCAyNDhjLTE2LjQgMC0zMi40LTItNDcuNi01LjctLjIgNC41LS40IDkuMS0uNCAxMy43IDAgNjIuMSAyMi4xIDExOC45IDU4LjggMTYzLjNMMjIyLjEgMjU2IDE3MS40IDIwNS40QzEzNy40IDIzMi4xIDk0LjYgMjQ4IDQ4IDI0OHptNDYzLjYgMjEuN2MuMi00LjUgLjQtOS4xIC40LTEzLjcgMC02Mi4xLTIyLjEtMTE4LjktNTguOC0xNjMuM0wyODkuOSAyNTYgMzQwLjYgMzA2LjZjMzQtMjYuNyA3Ni45LTQyLjYgMTIzLjQtNDIuNiAxNi40IDAgMzIuNCAyIDQ3LjYgNS43em0tNy4xIDQ3LjhjLTEyLjktMy42LTI2LjUtNS41LTQwLjYtNS41LTMzLjMgMC02NC4xIDEwLjctODkuMiAyOC45bDc4LjQgNzguNGMyNC4yLTI5LjIgNDItNjMuOCA1MS40LTEwMS44ek0zNDAuOSAzNzQuOGMtMTguMiAyNS0yOC45IDU1LjktMjguOSA4OS4yIDAgMTQuMSAxLjkgMjcuNyA1LjUgNDAuNiAzOC05LjQgNzIuNi0yNy4yIDEwMS44LTUxLjRsLTc4LjQtNzguNHptLTM0LjMtMzQuM0wyNTYgMjg5LjkgOTIuNyA0NTMuMmM0NC4zIDM2LjcgMTAxLjIgNTguOCAxNjMuMyA1OC44IDQuNiAwIDkuMi0uMSAxMy43LS40LTMuNy0xNS4zLTUuNy0zMS4yLTUuNy00Ny42IDAtNDYuNiAxNS45LTg5LjQgNDIuNi0xMjMuNHoiXX0scUNyPWVSZSx0UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuY2lsIixpY29uOls1MTIsNTEyLFs5OTk5LDYxNTA0LCJwZW5jaWwtYWx0Il0sImYzMDMiLCJNMzYuNCAzNTMuMmM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43bDE4MS4yLTE4MS4yIDMzLjktMzMuOWMxNi42IDE2LjYgNTEuMyA1MS4zIDEwNCAxMDRsMzMuOSAzMy45LTMzLjkgMzMuOS0xODEuMiAxODEuMmMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTAuNmMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJTLTEuNCA0ODkuMyAuOSA0ODFMMzYuNCAzNTMuMnptNTUuNi0zLjdjLTQuNCA0LjctNy42IDEwLjQtOS4zIDE2LjZsLTI0LjEgODYuOSA4Ni45LTI0LjFjNi40LTEuOCAxMi4yLTUuMSAxNy05LjdMOTEuOSAzNDkuNXptMzU0LTE0Ni4xYy0xNi42LTE2LjYtNTEuMy01MS4zLTEwNC0xMDRMMzA4IDY1LjVDMzM0LjUgMzkgMzQ5LjQgMjQuMSAzNTIuOSAyMC42IDM2Ni40IDcgMzg0LjgtLjYgNDA0LS42UzQ0MS42IDcgNDU1LjEgMjAuNmwzNS43IDM1LjdDNTA0LjQgNjkuOSA1MTIgODguMyA1MTIgMTA3LjRzLTcuNiAzNy42LTIxLjIgNTEuMWMtMy41IDMuNS0xOC40IDE4LjQtNDQuOSA0NC45eiJdfSxWQ3I9dFJlLGpDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1hcnJvdy1sb29wLWxlZnQiLGljb246WzY0MCw1MTIsW10sImU1NTEiLCJNMTYwIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek03My40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkwyOC4xIDE4Mi42QzEwLjEgMjAwLjYgMCAyMjUgMCAyNTAuNUwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnpNODUuOCA0MDcuM2MtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMOS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOEw4NS44IDQwNy4zek0zNTkgMzM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMxLTMxIDEwMi4xIDBjMS4yIDAgMi40LS4xIDMuNS0uMyA1Ni4xLTMuOSAxMDAuNS01MC42IDEwMC41LTEwNy43IDAtNTkuNi00OC40LTEwOC0xMDgtMTA4bC05MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDkyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTk4LjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC03MiA3MnoiXX0sVUNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2Utc2l4IixpY29uOls0NDgsNTEyLFs5ODYxXSwiZjUyNiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHJSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtZG93biIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS1kb3duIl0sImYxMDMiLCJNMjE0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE5MiA0MDIuNyAzMjkuNCAyNjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwem0xNjAtMzUybC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgMjEwLjcgMzI5LjQgNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxXQ3I9clJlLEdDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzeXJpbmdlIixpY29uOls1NzYsNTEyLFsxMjgxMzddLCJmNDhlIiwiTTQ5Ny41LTE3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE1IDE1LTQ2LjEgNDYuMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3IDctNzguMSA3OC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQxLTQxLTQ2LjEgNDYuMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00MS00MS0zNy43IDM3LjdjLTEwLjUgMTAuNS0xNi40IDI0LjctMTYuNCAzOS42bDAgODguOC01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LTU3IDg4LjggMGMxNC45IDAgMjkuMS01LjkgMzkuNi0xNi40bDIyOS43LTIyOS43IDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTYzLTYzIDQ2LjEtNDYuMSAxNSAxNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0eiJdfSxhUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlYXQtYXduIixpY29uOls1NzYsNTEyLFsid2hlYXQtYWx0Il0sImUyY2QiLCJNNzkuNyAyMzQuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwTDEzNC4xIDQ0NC4zIDQ5LjQgNTI5Yy05LjQgOS40LTI0LjUgOS40LTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xem0xMDQtMTA0YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMiA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsNDYuMSA0Ni4xYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk1LjIgMTVjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjJMNTI5LjIgNDkgNDE0LjcgMTYzLjRjNy43IDEgMTUuMiAzIDIyLjUgNS45TDQ5NS41IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMGwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xYzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsMzkgMzkgNTIuNy01Mi43YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTU4LjMgNTguM2MyLjggNy4xIDQuNyAxNC41IDUuNyAyMi4xTDQ5NS4yIDE1eiJdfSxZQ3I9YVJlLEtDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTIyZCIsIk0yMDAgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDE3My42IDE1OS4yYzYuNiA2LjEgMTAuNCAxNC42IDEwLjQgMjMuNmwwIDQzLjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJsLTE2Mi45LTU0LjMgMCA5OS43IDY2IDUyLjhjMy44IDMgNiA3LjYgNiAxMi41bDAgMTkuOGMwIDEwLjQtOS44IDE4LTE5LjkgMTUuNUwyNTYgNTEyIDE0Ny45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzI2LjcgMzk2LjQgMTYgMzg4LjcgMTYgMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjAwIDE1MS4zIDIwMCAyNHoiXX0sWkNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWNlbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNyIsIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem05NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNTIgMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnoiXX0sUUNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvY2tleS1wdWNrIixpY29uOls1MTIsNTEyLFtdLCJmNDUzIiwiTTI1NiAyNTZDMTE0LjYgMjU2IDAgMjEzIDAgMTYwczExNC42LTk2IDI1Ni05NiAyNTYgNDMgMjU2IDk2LTExNC42IDk2LTI1NiA5NnpNMCAzNTJMMCAyNDIuN2MxNi45IDEyLjMgMzcgMjIuMiA1OC4xIDMwLjEgNTMgMTkuOSAxMjMgMzEuMiAxOTcuOSAzMS4yczE0NC45LTExLjMgMTk3LjktMzEuMmMyMS4yLTcuOSA0MS4yLTE3LjggNTguMS0zMC4xTDUxMiAzNTJjMCA1My0xMTQuNiA5Ni0yNTYgOTZTMCA0MDUgMCAzNTJ6Il19LGlSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctbGVmdCIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1sZWZ0Il0sImYwYTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNSAyMzlsODAtODBjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zOSAzOSAxNTAuMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNTAuMSAwIDM5IDM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sWENyPWlSZSxKQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtYm9sdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU1YiIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTc3LjQtNzdjLTUuOC00LjItMTMuOC00LTE5LjQgLjVsLTgwIDY0Yy01LjMgNC4yLTcuNCAxMS40LTUuMSAxNy44UzQzMy4yIDQxNiA0NDAgNDE2bDMyLjkgMC0xNS45IDQyLjRjLTIuNSA2LjctLjIgMTQuMyA1LjYgMTguNnMxMy44IDQgMTkuNC0uNWw4MC02NGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44UzU1OC44IDM4NCA1NTIgMzg0bC0zMi45IDAgMTUuOS00Mi40YzIuNS02LjcgLjItMTQuMy01LjYtMTguNnoiXX0sZXpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlc3Ryb29tIixpY29uOls2NDAsNTEyLFtdLCJmN2JkIiwiTTgwIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE1NC44Yy04LjEgOS4yLTIxLjEgMTMuMi0zMy41IDkuNC0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDQuNCAxNTYuOSA4My42IDEyOCAxMjggMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMTIuNCAzLjktMjUuNC0uMi0zMy41LTkuNEwyMDAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTE2IDB6TTMyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDY0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00NjQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNDQwIDQ4MGwwLTk2LTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsOS0yNi45Yy0zLjIgMC02LjQtLjUtOS41LTEuNS0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDI4LjQgMTU2LjkgNDY3LjYgMTI4IDUxMiAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMS0zLjIgMS02LjQgMS41LTkuNSAxLjVsOSAyNi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMTcuOCAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0xNiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6Il19LHR6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhZCIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMjguMyAwIDU1LjQtNS43IDgwLTE1LjlsMC0uMiAwLTcyLjJjLTE0LjQgOS42LTMwLjYgMTYuNy00OCAyMC43bDAtMjU3LjljMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2em0yNzIgMzA0LjFsMCA0Ny45LTY0IDAgMC00Ny45YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTQxNi41IDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0scnpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpbWVsaW5lIixpY29uOls1NzYsNTEyLFtdLCJlMjljIiwiTTE2MCAxNjkuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzQ4IDUxLjggNDggOTZjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMCAwIDU0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtNTQuNyAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTU0LjdjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgNTQuNy0yNTYgMCAwLTU0Ljd6Il19LGF6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjkyLjkgMzg0YzcuMy0yMi4zIDIxLjktNDIuNSAzOC40LTU5LjkgMzIuNy0zNC40IDUyLjctODAuOSA1Mi43LTEzMi4xIDAtMTA2LTg2LTE5Mi0xOTItMTkyUzAgODYgMCAxOTJjMCA1MS4yIDIwIDk3LjcgNTIuNyAxMzIuMSAxNi41IDE3LjQgMzEuMiAzNy42IDM4LjQgNTkuOWwyMDEuNyAwek0yODggNDMybC0xOTIgMCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNnpNMTg0IDExMmMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LHNSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtcmlnaHQiXSwiZjBhOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNDEtMTU5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDM5LTM5LTE1MC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTUwLjEgMC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MHoiXX0saXpyPXNSZSxzenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1hbmQtdmVudXMiLGljb246WzUxMiw1MTIsWzk4OTNdLCJmMjI0IiwiTTM2OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzQuNy02MyA2M2MxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgODYuMy02Mi4xIDE1OC4xLTE0NCAxNzMuMWwwIDM0LjkgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzQuOWMtODEuOS0xNS0xNDQtODYuOC0xNDQtMTczLjEgMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzYgMzcgMCA3MS40IDExLjQgOTkuOCAzMWw2My02My0zNC43IDB6TTM1MiAyMDhhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHoiXX0sYnBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldHdvcmstd2lyZWQiLGljb246WzU3Niw1MTIsW10sImY2ZmYiLCJNMjQ4IDg4bDgwIDAgMCA0OC04MCAwIDAtNDh6bS04LTU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDAgMCAzMi0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMzItMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDAgMC0zMiAxOTIgMCAwIDMyLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwIDAtMzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0zMiAxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTk2IDB6TTQ0OCAzNzZsOCAwIDAgNDgtODAgMCAwLTQ4IDcyIDB6bS0yNTYgMGw4IDAgMCA0OC04MCAwIDAtNDggNzIgMHoiXX0sbnpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRkOCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBjLTEyLjUtMTQuNy0yMy4yLTMwLjgtMzEuOC00OGwtODkuNSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMCAwLTI2LjdjMC0xOC4xIDYuMS0zNS4yIDE2LjYtNDguOC0uNC0xLjQtLjYtMi45LS42LTQuNWwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDEgODYuNy0yOC45YzMuMS0xIDYuMi0xLjggOS4zLTIuNUw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQ0NS4zIDQ4OC41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sb3pyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUiLGljb246WzU3Niw1MTIsW10sImYxMjEiLCJNMzYwLjggMS4yYy0xNy00LjktMzQuNyA1LTM5LjYgMjJsLTEyOCA0NDhjLTQuOSAxNyA1IDM0LjcgMjIgMzkuNnMzNC43LTUgMzkuNi0yMmwxMjgtNDQ4YzQuOS0xNy01LTM0LjctMjItMzkuNnptNjQuNiAxMzYuMWMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNzMuNCA3My40LTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tMjc0LjcgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDE1MC42IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zeiJdfSxuUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlci1wb2ludGVkIixpY29uOls1MTIsNTEyLFsiZmVhdGhlci1hbHQiXSwiZjU2YiIsIk00NzUuMyAuMWM5LjktLjggMTkuNiAzIDI2LjYgMTBzMTAuOCAxNi43IDEwIDI2LjZjLTQgNDkuMy0xNy40IDEyNi4yLTQ2LjMgMTk5LjctMS44IDQuNS01LjUgNy45LTEwLjIgOS4zTDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDM4LjYgMGMxMiAwIDE5LjcgMTIuOCAxMy41IDIzLjEtNCA2LjctOC4zIDEzLjItMTIuNyAxOS42LTIgMi45LTUgNS04LjQgNi4xTDMxMC41IDM2NmMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDE2IDBjMTQuNiAwIDIxIDE3LjQgOC44IDI1LjQtNjggNDUtMTM3LjcgNDMuMy0xODIuNCAzMS4zLTEyLjctMy40LTI0LTkuOS0zNC40LTE3LjlMNDggNDk2Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJsODAtODAgLjUgLjVjLjctMS4zIDEuNi0yLjUgMi43LTMuNkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw4OS43IDMyNi4yYy04LjkgOC45LTI0IDQuNC0yNS04LjItNC4zLTUzLjIgOS4zLTEyMy4xIDcyLjYtMTg2LjQgOTEuMS05MS4xIDI1NC4yLTEyNC43IDMzNy45LTEzMS41eiJdfSxsenI9blJlLGN6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGR6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduYXR1cmUiLGljb246WzY0MCw1MTIsW10sImY1YjciLCJNMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNy44YzAgMjcuNy0yLjQgNTUuMy03LjEgODIuNWwtODQuNCAyNS4zYy00MC42IDEyLjItNjguNCA0OS42LTY4LjQgOTJsMCAzMi40LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIuNSAwYzQuMiAzNiAzNC44IDY0IDcyIDY0IDI2IDAgNTAtMTMuOSA2Mi45LTM2LjVsMTMuOS0yNC4zYzI2LjgtNDcgNDYuNS05Ny43IDU4LjQtMTUwLjVsOTQuNC0yOC4zLTEyLjUgMzcuNWMtMy4zIDkuOC0xLjYgMjAuNSA0LjQgMjguOFM0MDUuNyAzMjAgNDE2IDMyMGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODMuNiAwIDE4LTUzLjljMy44LTExLjMgLjktMjMuOC03LjQtMzIuNHMtMjAuNy0xMS44LTMyLjItOC40TDMxNi40IDE5OC4xYzIuNC0yMC43IDMuNi00MS40IDMuNi02Mi4zbDAtNy44YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyem0tOS4yIDE3N2w0OS0xNC43Yy0xMC40IDMzLjgtMjQuNSA2Ni40LTQyLjEgOTcuMmwtMTMuOSAyNC4zYy0xLjUgMi42LTQuMyA0LjMtNy40IDQuMy00LjcgMC04LjUtMy44LTguNS04LjVsMC03MS45YzAtMTQuMSA5LjMtMjYuNiAyMi44LTMwLjd6TTYxNiA0MTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI5Mi45IDBjLTYuNSAxNi4zLTEzLjcgMzIuMy0yMS42IDQ4TDYxNiA0MTZ6Il19LEFfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWFtZXJpY2FzIixpY29uOls1MTIsNTEyLFsxMjc3NTgsImVhcnRoIiwiZWFydGgtYW1lcmljYSIsImdsb2JlLWFtZXJpY2FzIl0sImY1N2QiLCJNNTUuNyAxOTkuN2wzMC45IDMwLjljNiA2IDE0LjEgOS40IDIyLjYgOS40bDIxLjUgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMzcuNWMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxMy4zIDEzLjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMTguN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMi43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ1LjMtNDUuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0zNC43YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDM0LjcgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0xOS43LTE5LjdDMjQyIDEzMCAyNDAgMTI1LjEgMjQwIDEyMHMyLTEwIDUuNy0xMy43bDE3LjMtMTcuM2M1LjgtNS44IDkuMS0xMy43IDkuMS0yMS45IDAtNy4yLTIuNC0xMy43LTYuNC0xOC45LTMuMi0uMS02LjQtLjItOS42LS4yLTk1LjQgMC0xNzUuNyA2NC4yLTIwMC4zIDE1MS43ek00NjQgMjU2YzAtMzQuNi04LjQtNjcuMi0yMy40LTk1LjgtNi40IC45LTEyLjcgMy45LTE3LjkgOS4xbC0xMy40IDEzLjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjQuMSAwYzIuNSAwIDUtLjMgNy4zLS44IC40LTUgLjUtMTAuMSAuNS0xNS4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSx1enI9QV8scHpyPUFfLGZ6cj1BXyxoenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fycm90IixpY29uOls2NDAsNTEyLFsxMjkzNjVdLCJmNzg3IiwiTTQ1My4xLTM2LjdMNDQwLjktMjQuNmMtMzEuMiAzMS4yLTMxLjIgODEuOSAwIDExMy4xIDE1LjYgMTUuNiAzMS4yIDMxLjIgNDYuOSA0Ni45IDMxLjIgMzEuMiA4MS45IDMxLjIgMTEzLjEgMGwxMi4xLTEyLjFjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNjAwLjkgODguNmMtMzEuMi0zMS4yLTgxLjktMzEuMi0xMTMuMSAwIDMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMUw0NzUuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNMzMxLjYgOTZjLTQ1LjIgMC04Ny4xIDIwLjQtMTE1IDU0LjNMMjczLjMgMjA3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTkxLjYgMTkzLjIgNjcuMiA0NjYuOGMtNS41IDEyLjEtMi45IDI2LjQgNi41IDM1LjlzMjMuNyAxMiAzNS45IDYuNWwxNDEuNi02NC40LTQzLjgtNDMuOGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjUgNTYuNSA5NS4zLTQzLjNjNTMuMS0yNC4xIDg3LjItNzcuMSA4Ny4yLTEzNS41IDAtODIuMi02Ni42LTE0OC44LTE0OC44LTE0OC44eiJdfSxFXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1mdWxsIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtNCIsInRoZXJtb21ldGVyLTQiLCJ0aGVybW9tZXRlci1mdWxsIl0sImYyYzciLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjEyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSxtenI9RV8sZ3pyPUVfLGJ6cj1FXyx4enI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LWxvY2siLGljb246WzY0MCw1MTIsW10sImU2N2EiLCJNMjU2IDI4OGwwLTY0IDE1My4zIDBjMTcuMS00Mi4yIDU2LTczLjIgMTAyLjctNzlsMC00OWMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0MS4zIDBjLS45LTUuMi0xLjMtMTAuNi0xLjMtMTYuMWwwLTQ3LjktMTEyIDAgMC02NCAxMTMuMyAwYzMuNy0yMiAxNC44LTQxLjQgMzAuNy01NS42bDAtOC40LTE0NCAwem0wLTE5MmwxOTIgMCAwIDY0LTE5MiAwIDAtNjR6TTU2MCAyNzIuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDE2IDM2OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sdnpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQtbGlnaHRuaW5nIixpY29uOlszODQsNTEyLFtdLCJlMGI3IiwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhMMjI4LjkgMGMxNSAwIDI3LjEgMTIuMSAyNy4xIDI3LjEgMCAzLjItLjYgNi41LTEuNyA5LjVMMjA4IDE2MCAzNDcuMyAxNjBjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjcgMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43bC0yLjkgMGMtMTUuNyAwLTI4LjUtMTIuOC0yOC41LTI4LjUgMC0yLjMgLjMtNC42IC45LTYuOUwxNzYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHl6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zaG93ZXJzLXdhdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNGU0IiwiTTI3OS4yIDU1LjdDMjYzLjkgMjIuOCAyMzAuNiAwIDE5MiAwIDEzOSAwIDk2IDQzIDk2IDk2IDYwLjcgOTYgMzIgMTI0LjcgMzIgMTYwczI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRsLTEuNiAwYy03LjQtMzYuNS0zOS43LTY0LTc4LjQtNjQtMjIuMiAwLTQyLjMgOS4xLTU2LjggMjMuN3pNNDEwLjYgNDc2LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwek0xMDAuMSAzMDMuNmM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NEMyOSAzNjUgMzUuOCAzNzguNiA0OC40IDM4Mi44czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMTIgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0eiJdfSxvUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctdXAiXSwiZjE3NiIsIk0xODIuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMjggNzcuMyAxMjggNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00MzQuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHoiXX0sd3pyPW9SZSxUdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04MCAyNTZsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMODAgMzg0Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI0MC00OGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgOTZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxrenI9VHVlLFN6cj1UdWUsTXpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXJpZ2h0IixpY29uOlsyNTYsNTEyLFs4MjUwXSwiZjEwNSIsIk0yNDcuMSAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTc5LjIgMjU2IDQxLjkgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHoiXX0sbFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE3NiAzMjBsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxDenI9bFJlLHp6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLWdyb3VuZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRiNSIsIk0zMDMgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OCA4OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00NyAwIDI3OC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjc4LjEtNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMzAzIDd6TTI0MCAxOTJsMCAxNjMuMWMtMTAuNi0yLjItMjEuMy0zLjItMzItMy4xLTMyLjUgLjItNjQuOSAxMC43LTkyLjMgMzEuNC04LjggNi42LTE1LjkgMTAuOS0yMS43IDEzLjVsLS44IC40Yy0zLjcgMS43LTYuNCAyLjktOS44IC4zLTYtNC41LTEyLjYtOC0xOS4zLTEwLjRMNjQgMjQwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDEyOCAwem0zMzYgNDhsMCAxNTUuMmMtMS4xIC44LTIuMiAxLjUtMy4zIDIuNC00LjEgMy4xLTguMyAuOC0xMi42LTEuNS0uNi0uMy0xLjItLjYtMS44LTEtNS4yLTIuNy0xMS4xLTYuNi0xOC0xMS43LTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTE1LjUgLjEtMzEgMi41LTQ2IDcuM2wwLTE2Ny4zIDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LF96cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDM0OS41IDc3LjUgMTcwLjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzYuOCA4OC44IDAgOTkuOSAwIDExMkwwIDQ2NGMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTc5LjQgNTkuOGM4LjEgMi43IDE2LjggMi4xIDI0LjQtMS43bDEyOC02NGMxMC44LTUuNCAxNy43LTE2LjUgMTcuNy0yOC42bDAtMzUyek0xOTIgMzc2LjlsMC0yODQuNSAxMjggNDIuNyAwIDI4NC41LTEyOC00Mi43eiJdfSxUenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjM0IiwiTTI4NS43IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3Ny43IDUxMkM2MS4zIDUxMiA0OCA0OTguNyA0OCA0ODIuMyA0OCAzODMuOCAxMjcuOCAzMDQgMjI2LjMgMzA0bDU5LjQgMHpNNTI4IDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDggNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDgtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQweiJdfSxMenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMiLGljb246WzM4NCw1MTIsWzk3OTJdLCJmMjIxIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtNjRjMC0xIDAtMS45LS4xLTIuOXoiXX0sRHpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tc3VjY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDdhIiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCA0ODBMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE2MCAxNjBsMC02NC05NiAwIDAgNjQgOTYgMHoiXX0sJHpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS1jb3VnaC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA2MiIsIk01MzUtMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTM3LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjUtMjUgMC00NDcuMmMwLTE1IDEwLjUtMjguMyAyNS40LTI5LjggNy40LS43IDE0LjktMS4xIDIyLjYtMS4xIDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMi4yIDIuNiAyMjcuNS0yMjcuNXpNMTMzLjggNTEyTDI4OCAzNTcuOCAyODggNDE2YzAgNTMtNDMgOTYtOTYgOTZsLTU4LjIgMHpNMTc2IDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMzNiA0MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS04OCA3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tNjQgNDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTI4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tODgtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sY1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJvamVjdCIsaWNvbjpbNTEyLDUxMixbInByb2plY3QtZGlhZ3JhbSJdLCJmNTQyIiwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDEyOCAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTEyOCAwIDAgMTZjMCA3LjMtMS43IDE0LjMtNC42IDIwLjVsNjguNiA5MS41IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTcuMyAxLjctMTQuMyA0LjYtMjAuNUwxMjggMjI0IDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHoiXX0sQXpyPWNSZSx4cGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVybWluYWwiLGljb246WzUxMiw1MTIsW10sImYxMjAiLCJNOS40IDExOC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE2MCAxNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDE0Ni43IDI1NiA5LjQgMTE4LjZ6TTIyNCAzODRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxFenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmlyZSIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYyIsIk00NDggMTkyYzE0LjEgLjQgMjMuOCAxMS40IDMyLjcgMjEuNyAyIDIuMyA0IDQuNiA2IDYuN2wxOSAxOS45IDEyLjItMTMuOGM1LjQtNi4xIDEzLjMtOC45IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4yIDI2LjIgODguMiAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMSA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDE0Ny41IDEzN2MtMTkuMi00LjMtNDAgLjUtNTUuNSAxNC40LTM2LjQgMzIuNi02Ny43IDY5LjgtOTAuMyAxMDYuNC0xMC4zIDE2LjYtMTkuNyAzNC45LTI2LjggNTMuN0wyNzIgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDY0LjYgMGM3LjMgMTcuMiAxNi44IDMzLjQgMjguMiA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTQ4OS4zIDM0My43Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuNyA1MS45LTU0LjcgODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtMzYuNS0zNy03My01NC43LTg4LjR6Il19LEl6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrIixpY29uOls1NzYsNTEyLFtdLCJmNmZhIiwiTTI4OCA2NEM2NCA2NCAwIDE2MCAwIDI3MlM4MCA0NDggMTc2IDQ0OGw4LjQgMGMyNC4yIDAgNDYuNC0xMy43IDU3LjItMzUuNGwyMy4yLTQ2LjNjNC40LTguOCAxMy4zLTE0LjMgMjMuMi0xNC4zczE4LjggNS41IDIzLjIgMTQuM2wyMy4yIDQ2LjNjMTAuOCAyMS43IDMzIDM1LjQgNTcuMiAzNS40bDguNCAwYzk2IDAgMTc2LTY0IDE3Ni0xNzZTNTEyIDY0IDI4OCA2NHpNOTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMzIwLTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxQenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaHVycmljYW5lIixpY29uOlszODQsNTEyLFtdLCJmNzUxIiwiTTAgMjA4QzAgMTA0LjQgNzUuNyAxOC41IDE3NC45IDIuNiAxODQgMS4yIDE5MiA4LjYgMTkyIDE3LjlsMCA2My4zYzAgOC40IDYuNSAxNS4zIDE0LjcgMTYuNSAxMDAuMyAxNC45IDE3Ny4zIDEwMS4zIDE3Ny4zIDIwNS43IDAgMTAzLjYtNzUuNyAxODkuNS0xNzQuOSAyMDUuNC05LjIgMS41LTE3LjEtNS45LTE3LjEtMTUuMmwwLTYzLjNDMTkyIDQyMS45IDE4NS41IDQxNSAxNzcuMyA0MTMuNyA3NyAzOTguOSAwIDMxMi40IDAgMjA4em0yODggNDhhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwem0tOTYtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxkUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYWZyaWNhIixpY29uOls1MTIsNTEyLFsxMjc3NTcsImdsb2JlLWFmcmljYSJdLCJmNTdjIiwiTTQ0Ny42IDE3NWMtMzEuNi03NC42LTEwNS41LTEyNy0xOTEuNi0xMjctMjIuMSAwLTQzLjQgMy41LTYzLjQgOS44LS40IDItLjYgNC4xLS42IDYuMmwwIDczLjRjMCAxMi41IDEwLjEgMjIuNiAyMi42IDIyLjYgNiAwIDExLjgtMi40IDE2LTYuNmwxNi0xNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsNS41IDBjMjguNSAwIDQyLjggMzQuNSAyMi42IDU0LjYtNiA2LTE0LjEgOS40LTIyLjYgOS40bC02MS41IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40bC0yMS4zIDIxLjNjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDIuNyAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDI5LjMtMjkuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0xOC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTZsMC0zNC43YzAtOC41LTMuNC0xNi42LTkuNC0yMi42bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDQ1IDBjMTIuNCAwIDIyLjctNy4xIDI4LTE3ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxOenI9ZFJlLHVSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnRhY2siLGljb246WzM4NCw1MTIsWzEyODIwNCwxMjgzOTIsInRodW1iLXRhY2siXSwiZjA4ZCIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOS41IDAgMTAuMyAxMzQuMWMzNy4xIDIxLjIgNjUuOCA1Ni40IDc4LjIgOTkuN2wzLjggMTMuNGMyLjggOS43IC44IDIwLTUuMiAyOC4xUzM2MiAzNTIgMzUyIDM1MkwzMiAzNTJjLTEwIDAtMTkuNS00LjctMjUuNS0xMi43cy04LTE4LjQtNS4yLTI4LjFMNSAyOTcuOGMxMi40LTQzLjMgNDEtNzguNSA3OC4yLTk5LjdMOTMuNSA2NCA2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6TTE2MCA0MDBsNjQgMCAwIDExMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTExMnoiXX0sT3pyPXVSZSxSenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC1kb3duIixpY29uOlszODQsNTEyLFtdLCJmMGE3IiwiTTMyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjA4LTY0IDAgMCAyMDh6TTIyNCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS02NCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE2MC05NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTk2LTg4bDAgLjZjOS40LTUuNCAyMC4zLTguNiAzMi04LjYgMTMuMiAwIDI1LjQgNCAzNS42IDEwLjggOC43LTI0LjkgMzIuNS00Mi44IDYwLjQtNDIuOCAxMS43IDAgMjIuNiAzLjEgMzIgOC42bDAtOC42QzM4NCA3MS42IDMxMi40IDAgMjI0IDBMMTYyLjMgMEMxMTkuOCAwIDc5LjEgMTYuOSA0OS4xIDQ2LjlMMzcuNSA1OC41QzEzLjUgODIuNSAwIDExNS4xIDAgMTQ5bDAgMjdjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODggMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGwtNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcyeiJdfSxwUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1tZWgtYmxhbmsiLGljb246WzUxMiw1MTIsWzEyODU2NiwibWVoLWJsYW5rIl0sImY1YTQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjA4LTQ4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTEyOCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEZ6cj1wUmUsSV89e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtZW1wdHkiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0wIiwidGhlcm1vbWV0ZXItMCIsInRoZXJtb21ldGVyLWVtcHR5Il0sImYyY2IiLCJNNjQgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NCA5NnptOTYgMzM2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHoiXX0sQnpyPUlfLEh6cj1JXyxxenI9SV8sVnpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci1ub25lIixpY29uOls0NDgsNTEyLFtdLCJmODUwIiwiTTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTE2MCAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTI4OCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyek0xNjAgNDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnpNMjg4IDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNNDE2IDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTAtMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzIgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek00MTYgMzUyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzIgMTYwYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek00MTYgMTYwYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHoiXX0sanpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpZ2hsaWdodGVyIixpY29uOls1NzYsNTEyLFtdLCJmNTkxIiwiTTMxNSAzMTVMNDczLjQgOTkuOSA0NDQuMSA3MC42IDIyOSAyMjkgMzE1IDMxNXptLTE4NyA1bDAgMCAwLTcxLjdjMC0xNS4zIDcuMi0yOS42IDE5LjUtMzguNkw0MjAuNiA4LjRDNDI4IDIuOSA0MzcgMCA0NDYuMiAwIDQ1Ny42IDAgNDY4LjUgNC41IDQ3Ni42IDEyLjZsNTQuOCA1NC44YzguMSA4LjEgMTIuNiAxOSAxMi42IDMwLjUgMCA5LjItMi45IDE4LjItOC40IDI1LjZMMzM0LjQgMzk2LjVjLTkgMTIuMy0yMy40IDE5LjUtMzguNiAxOS41bC03MS43IDAtMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNTAuNy01MC43Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxMjggMzIwek03IDQ2Ni4zbDUxLjctNTEuNyA3MC42IDcwLjYtMTkuNyAxOS43Yy00LjUgNC41LTEwLjYgNy0xNyA3TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjdjMC02LjQgMi41LTEyLjUgNy0xN3oiXX0sVXpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtd2F2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjUzYSIsIk0wIDQxOS42TDAgMTA5LjVjMC0yMy4yIDI0LjEtMzguNiA0Ni4zLTMyIDg3LjcgMjYuMiAxNDkuNyA1LjUgMjEyLjEtMTUuMyA2NC41LTIxLjUgMTI5LjQtNDMuMSAyMjMuMy0xMy4xIDE4LjUgNS45IDMwLjMgMjMuOCAzMC4zIDQzLjNsMCAzMTAuMWMwIDIzLjItMjQuMSAzOC42LTQ2LjIgMzItODcuNy0yNi4yLTE0OS44LTUuNS0yMTIuMSAxNS4zLTY0LjUgMjEuNS0xMjkuNCA0My4xLTIyMy4zIDEzLjEtMTguNS01LjktMzAuMy0yMy44LTMwLjMtNDMuM3pNMzM2IDI1NmMwLTUzLTM1LjgtOTYtODAtOTZzLTgwIDQzLTgwIDk2IDM1LjggOTYgODAgOTYgODAtNDMgODAtOTZ6TTEyMCA0MTMuNmM0LjQgMCA3LjktMy44IDcuMi04LjEtNC42LTI3LjgtMjctNDkuNS01NS4yLTUzLTQuNC0uNS04IDMuMS04IDcuNWwwIDM5LjljMCAzLjYgMi40IDYuOCA2IDcuNyAxNy45IDQuMiAzNC4zIDYuMSA1MCA2LjF6bTMxOC41LTUxLjFjNSAuOCA5LjUtMyA5LjUtOGwwLTQyLjZjMC00LjQtMy42LTguMS04LTcuNS0yNS4yIDMuMS00NS45IDIwLjktNTMuMiA0NC42LTEuNCA0LjcgMi4zIDkuMSA3LjIgOS4yIDE0LjIgLjQgMjkgMS43IDQ0LjQgNC4zek00NDggMTUybDAtMzkuOWMwLTMuNi0yLjUtNi44LTYtNy43LTE3LjktNC4yLTM0LjMtNi4xLTUwLTYuMS00LjQgMC03LjkgMy44LTcuMiA4LjEgNC42IDI3LjggMjcgNDkuNSA1NS4yIDUzIDQuNCAuNSA4LTMuMSA4LTcuNXpNMTI1LjIgMTYyLjljMS40LTQuNy0yLjMtOS4xLTcuMi05LjItMTQuMi0uNC0yOS0xLjctNDQuNC00LjMtNS0uOC05LjUgMy05LjUgOEw2NCAyMDBjMCA0LjQgMy42IDguMSA4IDcuNSAyNS4yLTMuMSA0NS45LTIwLjkgNTMuMi00NC42eiJdfSxXenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0LXBhcGVyLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDcyIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk0LjUtOTQuNWM0MC4yLTIzIDY5LjUtOTYuOSA2OS41LTE4NC42IDAtMTA2LTQzLTE5Mi05Ni0xOTJzLTk2IDg2LTk2IDE5MmMwIDI0LjEgMi4yIDQ3LjIgNi4zIDY4LjRMMzA0IDIzOC4yIDMwNCAyMjRjMC01OC45IDExLjgtMTE0LjUgMzMuMi0xNTcuMiA1LjktMTEuNyAxMy4xLTIzLjcgMjEuOS0zNC44TDEyOCAzMmMtOC4zIDAtMTYuNCAyLjEtMjQuMSA2LjFsLTYzLTYzek0zMiAyMjRsMCAyNjRjMCAzMC45IDI1LjEgNTYgNTYgNTZsMTYwIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC0xMTQuMi0yNTYtMjU2QzM3LjkgMTQ4LjIgMzIgMTg0LjcgMzIgMjI0em00MTYgNjRjLTE3LjcgMC0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NC0xNC4zIDY0LTMyIDY0eiJdfSxHenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1zaGllbGQiLGljb246WzU3Niw1MTIsW10sImU0ZjAiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDEuMiAwQzI2MSA0NjkuNCAyNDAgNDE0LjUgMjQwIDM1Ni40bDAtMzEuMWMwLTM0LjQgMjItNjUgNTQuNy03NS45bDExMi0zNy4zYzMuMS0xIDYuMi0xLjggOS4zLTIuNWwwLTM5LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6bTg3LjggMzEyLjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSxZenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC1oZWlnaHQiLGljb246WzU3Niw1MTIsW10sImYwMzQiLCJNNDAgMzJDMTcuOSAzMiAwIDQ5LjkgMCA3MmwwIDU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiA2NCAwIDAgMzIwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMjAgNjQgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC01NmMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAzMnpNNDM4LjYgMzYxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40IDAtMjI5LjUgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NGMtNi02LTE0LjEtOS40LTIyLjYtOS40cy0xNi42IDMuNC0yMi42IDkuNGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDIyOS41LTkuNC05LjR6Il19LGZSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlIixpY29uOls1MTIsNTEyLFsxMjg1MzksImdyaW4tdG9uZ3VlIl0sImY1ODkiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNiAyNDBsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxLenI9ZlJlLFp6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXNpZ25hdHVyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjU3MyIsIk02NC4xIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDI3Ny42IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNDI5LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDk3LjUtMTMyIDEzMi00Mi4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40LTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMMTMzLjMgNDA5Yy04LjMgMTAuMy02LjYgMjUuNSAzLjcgMzMuN3MyNS41IDYuNiAzMy43LTMuOGw0Ny4xLTU4LjggMTUuMiA1MC43YzMgMTAuMiAxMi40IDE3LjEgMjMgMTcuMWwzMS41IDBjLS45IDMuMS0xLjcgNi4zLTIuMyA5LjVsLTEwLjkgNTQuNS0xNDYuMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTM4NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRsOTMuNSAwLTExNy41LTExNy41em02MC4yIDQwOC40YzIuNS0xMi40IDguNi0yMy44IDE3LjUtMzIuN2wxMTguOS0xMTguOSA4MCA4MC0xMTguOSAxMTguOWMtOC45IDguOS0yMC4zIDE1LTMyLjcgMTcuNWwtNTkuNiAxMS45Yy0uOSAuMi0xLjkgLjMtMi45IC4zLTggMC0xNC42LTYuNS0xNC42LTE0LjYgMC0xIC4xLTEuOSAuMy0yLjlsMTEuOS01OS42em0yNjcuOC0xMjNsLTI4LjggMjguOC04MC04MCAyOC44LTI4LjhjMjIuMS0yMi4xIDU3LjktMjIuMSA4MCAwczIyLjEgNTcuOSAwIDgweiJdfSxRenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctd2hlYXQiLGljb246WzY0MCw1MTIsW10sImU0ZGIiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNDkuMyAwYy02LTE0LjgtOS4zLTMxLTkuMy00OCAwLTE3LjcgNy4yLTMzLjcgMTguOC00NS4zLTExLjktMTkuNC0xOC44LTQyLjMtMTguOC02Ni43IDAtMTcuNyA3LjItMzMuNyAxOC44LTQ1LjMtMTEuOS0xOS40LTE4LjgtNDIuMy0xOC44LTY2LjcgMC0yNS4yIDE0LjUtNDYuOSAzNS42LTU3LjQtMi40LTcuMS0zLjYtMTQuNy0zLjYtMjIuNmwwLTMyQzM2OCA5Ni43IDM4OCA3MC4xIDQxNS45IDYwLjEgNDEzLjkgMjYuNiAzODYgMCAzNTIgMEw5NiAwek0yMDggMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTM1MiAwbC0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTguOC03LjItMTYtMTYtMTZ6bTE2IDEyOGMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwem0wIDExMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwek00OTYgNTI4YzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZ6bS0xNi05NmM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwem0xNi0xMjhjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNTEyIDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0em05NiA2NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnpNNDQwIDEwNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFh6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1taW51cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZSIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjI0IDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xMjggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZ6Il19LEx1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmdXRib2wiLGljb246WzUxMiw1MTIsWzk5MTcsImZ1dGJvbC1iYWxsIiwic29jY2VyLWJhbGwiXSwiZjFlMyIsIk00MTcuMyAzNjAuMWwtNzEuNi00LjhjLTUuMi0uMy0xMC4zIDEuMS0xNC41IDQuMnMtNy4yIDcuNC04LjQgMTIuNWwtMTcuNiA2OS42QzI4OS41IDQ0NS44IDI3MyA0NDggMjU2IDQ0OHMtMzMuNS0yLjItNDkuMi02LjRMMTg5LjIgMzcyYy0xLjMtNS00LjMtOS40LTguNC0xMi41cy05LjMtNC41LTE0LjUtNC4ybC03MS42IDQuOGMtMTcuNi0yNy4yLTI4LjUtNTkuMi0zMC40LTkzLjZMMTI1IDIyOC4zYzQuNC0yLjggNy42LTcgOS4yLTExLjlzMS40LTEwLjItLjUtMTVsLTI2LjctNjYuNkMxMjggMTA5LjIgMTU1LjMgODkgMTg2LjcgNzYuOWw1NS4yIDQ2YzQgMy4zIDkgNS4xIDE0LjEgNS4xczEwLjItMS44IDE0LjEtNS4xbDU1LjItNDZjMzEuMyAxMi4xIDU4LjcgMzIuMyA3OS42IDU3LjlsLTI2LjcgNjYuNmMtMS45IDQuOC0yLjEgMTAuMS0uNSAxNXM0LjkgOS4xIDkuMiAxMS45bDYwLjcgMzguMmMtMS45IDM0LjQtMTIuOCA2Ni40LTMwLjQgOTMuNnpNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE0LjEtMzI1LjdjLTguNC02LjEtMTkuOC02LjEtMjguMiAwTDE5NCAyMjFjLTguNCA2LjEtMTEuOSAxNi45LTguNyAyNi44bDE4LjMgNTYuM2MzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZsNTkuMiAwYzEwLjQgMCAxOS42LTYuNyAyMi44LTE2LjZsMTguMy01Ni4zYzMuMi05LjktLjMtMjAuNy04LjctMjYuOGwtNDcuOS0zNC44eiJdfSxKenI9THVlLGVfcj1MdWUsaFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1wbHVzIixpY29uOls1MTIsNTEyLFsicGx1cy1jaXJjbGUiXSwiZjA1NSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjMyIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LHRfcj1oUmUscl9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyYXppbGlhbi1yZWFsLXNpZ24iLGljb246WzUxMiw1MTIsW10sImU0NmMiLCJNNDAwIDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDguOSAwYy0yNiAwLTQ3LjEgMjEuMS00Ny4xIDQ3LjEgMCAyMi41IDE1LjkgNDEuOCAzNy45IDQ2LjJsMzIuOCA2LjZjNTEuOSAxMC40IDg5LjMgNTYgODkuMyAxMDkgMCA1MC42LTMzLjggOTMuMy04MCAxMDYuN2wwIDIwLjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0LjkgMGMyNiAwIDQ3LjEtMjEuMSA0Ny4xLTQ3LjEgMC0yMi41LTE1LjktNDEuOC0zNy45LTQ2LjJsLTMyLjgtNi42Yy01MS45LTEwLjQtODkuMy01Ni04OS4zLTEwOSAwLTUwLjYgMzMuOC05My4yIDgwLTEwNi43TDM2OCA0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYweiJdfSxhX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1hbmQtY3Jlc2NlbnQiLGljb246WzUxMiw1MTIsWzk3NzBdLCJmNjk5IiwiTTAgMjU2YzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgMzMgMCA2NC42IDYuMyA5My42IDE3LjcgNy40IDIuOSAxMS41IDEwLjcgOS44IDE4LjRzLTguOCAxMy0xNi43IDEyLjRjLTQuOC0uMy05LjctLjUtMTQuNi0uNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOGM0LjkgMCA5LjgtLjIgMTQuNi0uNSA3LjktLjUgMTUgNC43IDE2LjcgMTIuNHMtMi40IDE1LjUtOS44IDE4LjRDMzIwLjYgNTA1LjcgMjg5IDUxMiAyNTYgNTEyIDExNC42IDUxMiAwIDM5Ny40IDAgMjU2ek0zNzUuNCAxMzcuNGMzLjUtNy4xIDEzLjctNy4xIDE3LjIgMGwzMS41IDYzLjhjMS40IDIuOCA0LjEgNC44IDcuMiA1LjNsNzAuNCAxMC4yYzcuOSAxLjEgMTEgMTAuOCA1LjMgMTYuNGwtNTAuOSA0OS42Yy0yLjMgMi4yLTMuMyA1LjQtMi44IDguNWwxMiA3MC4xYzEuMyA3LjgtNi45IDEzLjgtMTMuOSAxMC4xbC02My0zMy4xYy0yLjgtMS41LTYuMS0xLjUtOC45IDBsLTYzIDMzLjFjLTcgMy43LTE1LjMtMi4zLTEzLjktMTAuMWwxMi03MC4xYy41LTMuMS0uNS02LjMtMi44LTguNUwyNjEgMjMzLjFjLTUuNy01LjYtMi42LTE1LjIgNS4zLTE2LjRsNzAuNC0xMC4yYzMuMS0uNSA1LjgtMi40IDcuMi01LjNsMzEuNS02My44eiJdfSxtUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zdXJwcmlzZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU4LCJzdXJwcmlzZSJdLCJmNWMyIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS00OCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0saV9yPW1SZSxzX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9zcGl0YWwtdXNlciIsaWNvbjpbNjQwLDUxMixbXSwiZjgwZCIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43IDAgMjcuNyA4LjggNTMuNCAyMy44IDc0LjQtNTEuNSAyMS04Ny44IDcxLjYtODcuOCAxMzAuNyAwIDEgMCAxLjkgMCAyLjlsLTE3NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA2NHpNMjA4IDQwMGwwIDY0IDUzLjQgMGM3LjItMjkuNCAyMS4zLTU2LjEgNDAuNC03OC4zLTYuMS0xOS41LTI0LjMtMzMuNy00NS44LTMzLjctMjYuNSAwLTQ4IDIxLjUtNDggNDh6TTI0OCA4OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMHpNNDE2IDMwNGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTM1MiA1MTJjMC01MyA0My05NiA5Ni05Nmw5NiAwYzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sbl9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tdXAtbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTRiMCIsIk0yNjIuNiA0MjIuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwyNS40IDI1LjQgMC0xMTQuNy02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDI1NiAwIDAtMTE0LjctMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w4MC04MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMjUuNC0yNS40IDAgOTQuOGMtMjUuMyAyMC4zLTQyLjggNTAuMS00NyA4My45bC0xNDUgMCAwIDExNC43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0xOTIgMzJsMCAxNDQtNjQgMCAwLTE0NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00OTYgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxnUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyIixpY29uOls1MTIsNTEyLFsxMjgxOTMsMTI4NDQ3LDYxNzE2LCJmb2xkZXItYmxhbmsiXSwiZjA3YiIsIk02NCA0NDhsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjk4LjcgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI0MS4xIDQ0LjhDMjMwIDM2LjUgMjE2LjUgMzIgMjAyLjcgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NHoiXX0sb19yPWdSZSxsX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9sbHktYmVycnkiLGljb246WzUxMiw1MTIsW10sImY3YWEiLCJNMjU2LjIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0yNzcgMzgzLjhjMSAuMSAyLjEgLjIgMy4yIC4yIDM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjIuN2MwIDE2LjQgMTYgMjcuOSAzMS42IDIyLjhsMTIuOC00LjNjMTgtNiAzNy4zLTYuNSA1NS42LTEuNWwxOS40IDUuM2MxNy45IDQuOSAzNC40LTExLjYgMjkuNS0yOS41TDQ5NS45IDQ1MmMtNS0xOC4zLTQuNC0zNy42IDEuNS01NS42bDQuMy0xMi44YzUuMi0xNS41LTYuNC0zMS42LTIyLjgtMzEuNi0zNC42IDAtNjIuNy0yOC4xLTYyLjctNjIuN2wwLTMyYzAtMTYuNC0xNi0yNy45LTMxLjYtMjIuOGwtMTIuOCA0LjNjLTE4IDYtMzcuMyA2LjUtNTUuNiAxLjVsLTI5LjYtOC4xYy0yLjktLjgtNS45LTEtOC43LS43IDQuMiA5LjcgNS44IDIwLjggMy43IDMyLjNsLTYuMyAzNC44Yy0xLjUgOC40LTEuNCAxNyAuNSAyNS4zbDUuMyAyMy45YzIuOCAxMi43IDEuMSAyNS4yLTQgMzUuOXpNMTI3LjggMjM0LjVjLTE1LjUtNS4yLTMxLjYgNi40LTMxLjYgMjIuOGwwIDMyYzAgMzQuNi0yOC4xIDYyLjctNjIuNyA2Mi43LTE2LjQgMC0yNy45IDE2LTIyLjggMzEuNkwxNSAzOTYuNGM2IDE4IDYuNSAzNy4zIDEuNSA1NS42bC01LjMgMTkuNEM2LjQgNDg5LjQgMjIuOCA1MDUuOCA0MC43IDUwMWwxOS40LTUuM2MxOC4zLTUgMzcuNi00LjUgNTUuNiAxLjVsMTIuOCA0LjNjMTUuNSA1LjIgMzEuNi02LjQgMzEuNi0yMi44bDAtMzJjMC0zNC42IDI4LjEtNjIuNyA2Mi43LTYyLjcgMTYuNCAwIDI3LjktMTYgMjIuOC0zMS42bC00LjMtMTIuOGMtNi0xOC02LjUtMzcuMy0xLjUtNTUuNmw1LjMtMTkuNGM0LjktMTcuOS0xMS42LTM0LjQtMjkuNS0yOS41bC0xOS40IDUuM2MtMTguMyA1LTM3LjYgNC40LTU1LjYtMS41bC0xMi44LTQuM3pNMzg0LjIgMTQ0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LGNfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cy1kb3VibGUiLGljb246WzY0MCw1MTIsWzk4OTBdLCJmMjI2IiwiTTE5MiAyODhhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0zNjggMTc2YzAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIDEgLjEgMS45IC4xIDIuOWwwIDY0IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTY0YzAtMSAwLTEuOSAuMS0yLjktODItMTUtMTQ0LjEtODYuOC0xNDQuMS0xNzMuMSAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NlMzNjggNzguOCAzNjggMTc2ek0zNTcuNSAzMjdjMTQuNC0xNS44IDI2LjYtMzMuNyAzNi4xLTUzLjEgMTYuMSA5IDM0LjcgMTQuMSA1NC41IDE0LjEgNjEuOSAwIDExMi01MC4xIDExMi0xMTJTNTA5LjkgNjQgNDQ4IDY0Yy0xOS44IDAtMzguMyA1LjEtNTQuNSAxNC4xLTkuNS0xOS40LTIxLjYtMzcuMy0zNi4xLTUzLjEgMjYuNC0xNS45IDU3LjQtMjUgOTAuNS0yNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDg2LjMtNjIuMSAxNTguMS0xNDQuMSAxNzMuMSAuMSAuOSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS0yMS4xLTMuOS00MC45LTExLjUtNTguNi0yMi4yeiJdfSxkX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkLXF1ZXN0aW9uIixpY29uOlszODQsNTEyLFtdLCJlNGUzIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xOTIgMjQ4YzE2LjEgMCAyOS4yIDEzLjEgMjkuMiAyOS4yIDAgOC43LTMuMSAxMy45LTYuOSAxNy43LTQuNSA0LjQtMTAuNyA3LjUtMTYuOCA5LjUtMTQuOSA1LTI5LjUgMTkuMy0yOS41IDM5LjUgMCAxMy4zIDEwLjcgMjQgMjQgMjQgMTEuNSAwIDIxLjItOC4xIDIzLjUtMTkgMTkuMi03LjEgNTMuNy0yNi4zIDUzLjctNzEuOCAwLTQyLjYtMzQuNi03Ny4yLTc3LjItNzcuMnMtNzcuMiAzNC42LTc3LjIgNzcuMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTYuMSAxMy4xLTI5LjIgMjkuMi0yOS4yem0yOCAxNjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4eiJdfSx1X3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90ZG9nIixpY29uOls1MTIsNTEyLFsxMjc3ODldLCJmODBmIiwiTTI4OCAwYy0yMC41IDAtNDAuMSA4LjEtNTQuNiAyMi42TDIyLjYgMjMzLjRDOC4xIDI0Ny45IDAgMjY3LjUgMCAyODggMCAzMDAuMiAyLjkgMzEyLjEgOC4yIDMyMi43TDMyMi43IDguMkMzMTIuMSAyLjkgMzAwLjIgMCAyODggMHpNMjI0IDUxMmMyMC41IDAgNDAuMS04LjEgNTQuNi0yMi42TDQ4OS40IDI3OC42YzE0LjUtMTQuNSAyMi42LTM0LjEgMjIuNi01NC42IDAtMTIuMi0yLjktMjQuMS04LjItMzQuN0wxODkuMyA1MDMuOGMxMC43IDUuNCAyMi42IDguMiAzNC43IDguMnpNNDU2LjYgMTY4LjZjMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xcy04MS45LTMxLjItMTEzLjEgMGwtMjg4IDI4OGMtMzEuMiAzMS4yLTMxLjIgODEuOSAwIDExMy4xczgxLjkgMzEuMiAxMTMuMSAwbDI4OC0yODh6Il19LHBfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLWJyYWNrZXQiLGljb246WzQ0OCw1MTIsW10sImUwOWEiLCJNMjQ2LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMTkyIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjEwLjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDMzNC4zIDAgMzUybDAgNjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6Il19LGZfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Njb3BlIixpY29uOls1MTIsNTEyLFsxMjgzMDBdLCJmNjEwIiwiTTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjQgMzIgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFMzOTAuNyA0NDggMzIwIDQ0OEwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2LjkgMGMzMC40LTM0IDQ4LjktNzguOCA0OC45LTEyOCAwLTEwNi04Ni0xOTItMTkyLTE5MmwtMzIgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE3NiAwek0xMjAgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMHoiXX0saF9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkIixpY29uOls1NzYsNTEyLFs5NzI5XSwiZjBjMiIsIk0wIDMzNmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NGwzMDQgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTUxLjYtMzAuNS05Ni4xLTc0LjUtMTE2LjMgNi43LTEzLjEgMTAuNS0yOCAxMC41LTQzLjcgMC01My00My05Ni05Ni05Ni0xNy43IDAtMzQuMiA0LjgtNDguNCAxMy4xLTI0LjEtNDUuOC03Mi4yLTc3LjEtMTI3LjYtNzcuMS03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDggLjcgMTUuOSAxLjkgMjMuNS01Ni45IDE5LjItOTcuOSA3My4xLTk3LjkgMTM2LjV6Il19LG1fcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNlYmFsbC1iYXQtYmFsbCIsaWNvbjpbNTc2LDUxMixbXSwiZjQzMiIsIk00NjQuMSA1NDRhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6bTguNC01NzZjMTUuMSAwIDI5LjcgNS44IDQwLjcgMTYuMmw0Ny4yIDQ0LjhjMTIuNiAxMiAxOS4xIDI5IDE3LjUgNDYuMy0xLjIgMTMuMy03IDI1LjgtMTYuNSAzNS4yTDM2My4xIDMwOWMtNy4zIDcuMy0xNS43IDEzLjQtMjUgMThMMjA2IDM5M2MtOS4yIDQuNi0xNy43IDEwLjctMjUgMThsLTkyIDkyIDEuNyAxLjhjNy43IDkuNCA3LjEgMjMuMy0xLjcgMzIuMXMtMjIuNyA5LjMtMzIuMSAxLjdsLTEuOC0xLjctNDgtNDgtMS43LTEuOGMtNy43LTkuNC03LjEtMjMuMyAxLjctMzIuMXMyMi43LTkuMyAzMi4xLTEuN2wxLjggMS43IDkyLTkyYzcuMy03LjMgMTMuNC0xNS43IDE4LTI1bDY2LjEtMTMyLjFjNC42LTkuMiAxMC43LTE3LjcgMTgtMjVMNDMwLjgtMTQuN0M0NDEuOS0yNS44IDQ1Ni45LTMyIDQ3Mi41LTMyeiJdfSxiUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXJlYXIiLGljb246WzUxMiw1MTIsWyJjYXItYWx0Il0sImY1ZGUiLCJNMTY1LjQgOTZsMTgxLjIgMGMxMy42IDAgMjUuNyA4LjYgMzAuMiAyMS40bDI2LjEgNzQuNi0yOTMuOCAwIDI2LjEtNzQuNmM0LjUtMTIuOCAxNi42LTIxLjQgMzAuMi0yMS40em0tOTAuNiAuM0wzOS42IDE5Ni44QzE2LjQgMjA2LjQgMCAyMjkuMyAwIDI1NmwwIDk2YzAgMjMuNyAxMi45IDQ0LjQgMzIgNTUuNEwzMiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDI1NiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQwLjZjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNGwwLTk2YzAtMjYuNy0xNi40LTQ5LjYtMzkuNi01OS4yTDQzNy4yIDk2LjNDNDIzLjcgNTcuOCAzODcuNCAzMiAzNDYuNiAzMkwxNjUuNCAzMmMtNDAuOCAwLTc3LjEgMjUuOC05MC42IDY0LjN6TTIwOCAyODhsOTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTk2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDggMjgwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0zNjAtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sZ19yPWJSZSx4UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJ0YWNrLXNsYXNoIixpY29uOls1NzYsNTEyLFsidGh1bWItdGFjay1zbGFzaCJdLCJlNjhmIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDE3LjggMzUyIDQ0OCAzNTJjMTAgMCAxOS41LTQuNyAyNS41LTEyLjdzOC0xOC40IDUuMi0yOC4xTDQ3NSAyOTcuOGMtMTIuNC00My4zLTQxLTc4LjUtNzguMi05OS43TDM4Ni41IDY0IDQxNiA2NGMxNy43IDAgMzItMTQuMyAzMi0zMlM0MzMuNyAwIDQxNiAwTDE2MCAwYy03LjQgMC0xNC4xIDIuNS0xOS41IDYuNkwxOTAuMSA1Ni4zIDE4NS4zIDExOS40IDQxLTI0Ljl6TTI4Mi4yIDM1MkwxNDkuNyAyMTkuNmMtMjIuNyAyMC41LTM5LjggNDcuNC00OC43IDc4LjNsLTMuOCAxMy40Yy0yLjggOS43LS44IDIwIDUuMiAyOC4xUzExOCAzNTIgMTI4IDM1MmwxNTQuMiAwek0yNTYgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTItNjQgMCAwIDExMnoiXX0sYl9yPXhSZSx4X3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1cy1taW51cyIsaWNvbjpbMzg0LDUxMixbXSwiZTQzYyIsIk0yMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMjgtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDAgMC0xMjh6TTAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LHZfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MDkiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjEgNDcuMi0xNzUuOCAxMTQuOC01LjEtMS44LTEwLjUtMi44LTE2LjItMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkxIDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek01NTMuNCAzMzkuMWMtNy4xLTUuMi0xNy4xLTMuNi0yMi4zIDMuNWwtNTMgNzIuOC0yNi43LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjdzOC45LTIuOCAxMS43LTYuNmw2NC04OGM1LjItNy4xIDMuNi0xNy4xLTMuNS0yMi4zeiJdfSx5X3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItZGF5IixpY29uOls0NDgsNTEyLFtdLCJmNzgzIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAweiJdfSx3X3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlicmEiLGljb246WzUxMiw1MTIsW10sImU4NGIiLCJNNDgwIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDQ4IDB6TTI1NiAzMmM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDE2LjYtMi40IDMyLjctNi43IDQ4bDU0LjcgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTA0LjIgMGMtMTEuOCAwLTIyLjctNi41LTI4LjItMTYuOXMtNC45LTIzLjEgMS42LTMyLjljMTEuOS0xNy44IDE4LjgtMzkuMSAxOC44LTYyLjIgMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMTQ0IDE0Ni4xIDE0NCAyMDhjMCAyMy4xIDYuOSA0NC40IDE4LjggNjIuMiA2LjYgOS44IDcuMiAyMi41IDEuNiAzMi45UzE0OC4xIDMyMCAxMzYuMiAzMjBMMzIgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU0LjggMGMtNC4zLTE1LjMtNi44LTMxLjQtNi44LTQ4IDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2eiJdfSxrX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlIixpY29uOls1MTIsNTEyLFsxMjgzMDgsMTI4MzA5LDEyODk5MiwxMjg5OTMsMTI4OTk0LDEyODk5NSwxMjg5OTYsOTY3OSw5ODk4LDk4OTksMTEwNDQsNjE3MDgsNjE5MTVdLCJmMTExIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFNfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtdmlicmF0ZSIsaWNvbjpbNTc2LDUxMixbXSwiZTgxNiIsIk0zODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTkyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzg0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDM4NCAwek0yNDggNDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6TTQ4LjggMTMzLjRjOS40LTcuNyAyMy4zLTcuMSAzMi4xIDEuNyA5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMzEgMzEgMjUuNCAyNS40IDIuOSAzLjJjNi4zIDcuNyA5LjggMTcuNCA5LjggMjcuNCAwIDExLjUtNC42IDIyLjUtMTIuNyAzMC42bC0yNS40IDI1LjQgMzEgMzEgMS43IDEuOGM3LjcgOS40IDcuMSAyMy4zLTEuNyAzMi4xcy0yMi43IDkuMy0zMi4xIDEuN0w0NyAzNzcgMTIuNyAzNDIuNkM1LjYgMzM1LjUgMS4yIDMyNi4yIC4yIDMxNi4zTDAgMzEyIC4yIDMwNy43YzEtOS45IDUuNC0xOS4yIDEyLjUtMjYuM0wzOC4xIDI1NiAxMi43IDIzMC42QzUuNiAyMjMuNSAxLjIgMjE0LjIgLjIgMjA0LjNMMCAyMDAgLjIgMTk1LjdjMS05LjkgNS40LTE5LjIgMTIuNS0yNi4zTDQ3IDEzNSA0OC44IDEzMy40ek00OTUgMTM1YzguOC04LjggMjIuNy05LjMgMzIuMS0xLjdsMS44IDEuNyAzNC4zIDM0LjNjNy4xIDcuMSAxMS41IDE2LjQgMTIuNSAyNi4zbC4yIDQuMy0uMiA0LjNjLTEgOS45LTUuNCAxOS4yLTEyLjUgMjYuM2wtMjUuNCAyNS40IDI1LjQgMjUuNGM3LjEgNy4xIDExLjUgMTYuNCAxMi41IDI2LjNsLjIgNC4zLS4yIDQuM2MtMSA5LjktNS40IDE5LjItMTIuNSAyNi4zbC0zNC4zIDM0LjMtMS44IDEuN2MtOS40IDcuNy0yMy4zIDcuMS0zMi4xLTEuN3MtOS4zLTIyLjctMS43LTMyLjFsMS43LTEuOCAzMS0zMS0yNS40LTI1LjRjLTguMS04LjEtMTIuNy0xOS4xLTEyLjctMzAuNiAwLTEwIDMuNS0xOS43IDkuOC0yNy40bDIuOS0zLjIgMjUuNC0yNS40LTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sdlJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODUxOCwiZ3Jpbi1zcXVpbnQiXSwiZjU4NSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTEyMi42IDE0My4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LE1fcj12UmUsQ19yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLWJldHdlZW4tbGluZXMiLGljb246WzU3Niw1MTIsW10sImU1OTEiLCJNMjQgMTZsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNjRDMTAuNyA2NCAwIDUzLjMgMCA0MFMxMC43IDE2IDI0IDE2em0wIDQ0OGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTM5MiAxOTJhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0yNy4yIDEwMC40YzkuMS0yLjkgMTguOC00LjQgMjguOC00LjQgNTMgMCA5NiA0MyA5NiA5NmwwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNzguOCAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtOGMwLTM0LjEtMTAuNi02NS43LTI4LjgtOTEuNnptLTI2Mi40IDBDMTM4LjYgMzE4LjMgMTI4IDM0OS45IDEyOCAzODRsMCA4YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNzguOCAwQzQxLjYgNDE2IDMyIDQwNi40IDMyIDM5NC43TDMyIDM4NGMwLTUzIDQzLTk2IDk2LTk2IDEwIDAgMTkuNyAxLjUgMjguOCA0LjR6TTcyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE1Mi0xNmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTE3NiAzODRjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMmwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTh6Il19LHpfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTUxMyIsIk0zMDkuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzUwLjggMjcyIDY0IDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5NiAwYy0yMS4yLTI5LjUtMzQuMy02NS4zLTM1LjktMTA0TDI3MiA0MDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgMjAgMGMzNC45LTQ4LjUgOTEuNy04MCAxNTYtODAgMTAuNyAwIDIxLjEgLjkgMzEuMyAyLjVMMzA5LjggOC42ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDQwMHoiXX0seVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWxpc3QiLGljb246WzQ0OCw1MTIsWyJ0aC1saXN0Il0sImYwMGIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTY0IDBsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHpNNjQgMjI0bDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6TTY0IDM1MmwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0eiJdfSxfX3I9eVJlLFRfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzay12aWFsIixpY29uOls2NDAsNTEyLFtdLCJlNGYzIiwiTTE4NC42IDQxMS41Yy0zLjEgNy4zLTUuNCAxNC45LTYuOCAyMi42LTE0LjUgOC44LTMxLjUgMTMuOS00OS44IDEzLjktNTMgMC05Ni00My05Ni05NkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMjU1LjYtMzkuNCA5MS45ek05NiA2NGwwIDEyOCA2NCAwIDAtMTI4LTY0IDB6TTM1MiAwTDUxMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUzLjQgOTEuMyAyMTNjMi4zIDUuNCAzLjggMTEuMSA0LjQgMTdsLjMgLjYtLjMgMGMuMiAxLjggLjMgMy42IC4zIDUuNCAwIDMyLjMtMjYuMiA1OC42LTU4LjYgNTguNmwtMjY2LjkgMGMtMzIuMyAwLTU4LjYtMjYuMi01OC42LTU4LjYgMC0xLjggLjEtMy42IC4zLTUuNGwtLjMgMCAuMy0uNmMuNi01LjggMi4xLTExLjYgNC40LTE3TDMyMCAyMTcuNCAzMjAgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzMwMi4zIDAgMzIwIDBsMzIgMHpNNDUzLjIgMjQyLjZjLTMuNC04LTUuMi0xNi41LTUuMi0yNS4ybDAtMTUzLjQtNjQgMCAwIDE1My40YzAgOC43LTEuOCAxNy4yLTUuMiAyNS4ybC0zMy4yIDc3LjQgMTQwLjcgMC0zMy4yLTc3LjR6Il19LHdSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzUxMiw1MTIsWyJleGNsYW1hdGlvbi1jaXJjbGUiXSwiZjA2YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC0xOTJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wLTE5MmMtMTguMiAwLTMyLjcgMTUuNS0zMS40IDMzLjdsNy40IDEwNGMuOSAxMi42IDExLjQgMjIuMyAyMy45IDIyLjMgMTIuNiAwIDIzLTkuNyAyMy45LTIyLjNsNy40LTEwNGMxLjMtMTguMi0xMy4xLTMzLjctMzEuNC0zMy43eiJdfSxMX3I9d1JlLGtSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXhpIixpY29uOls1MTIsNTEyLFsxMjg2NjIsImNhYiJdLCJmMWJhIiwiTTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTguOSAwYy00MiAwLTc5LjEgMjcuMy05MS42IDY3LjRsLTIzIDczLjVDMTQuNSAyMTkuMSAwIDI0My45IDAgMjcyTDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAzMjAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNzZjMC0yOC4xLTE0LjUtNTIuOS0zNi40LTY3LjFsLTIzLTczLjVDNDQwLjEgOTEuMyA0MDIuOSA2NCAzNjAuOSA2NGwtOC45IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxOTIgMHpNMTUxLjEgMTI4bDIwOS45IDBjMTQgMCAyNi40IDkuMSAzMC41IDIyLjVsMTMgNDEuNS0yOTYuOSAwIDEzLTQxLjVjNC4yLTEzLjQgMTYuNS0yMi41IDMwLjUtMjIuNXpNOTYgMjcyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjg4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LERfcj1rUmUsU1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtc2xhc2giLGljb246WzU3Niw1MTIsWyJyZW1vdmUtZm9ybWF0Il0sImY4N2QiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjIuNyAyNTYuOSAzNjguMiA5NiA0NzEgOTYgNDY1IDEyMC4yYy00LjMgMTcuMSA2LjEgMzQuNSAyMy4zIDM4LjhzMzQuNS02LjEgMzguOC0yMy4zbDExLTQ0LjFDNTQ1LjYgNjEuMyA1MjIuNyAzMiA0OTEuNSAzMmwtMzE5IDBjLTE5LjggMC0zNy4zIDEyLjEtNDQuNSAzMC4xbC04Ny04N3pNMTgwLjQgMTE0LjVsNC42LTE4LjUgMTE2LjcgMC0zMC44IDEwOS05MC41LTkwLjV6TTI0MSAzMTAuOEwyMTEuMyA0MTYgMTYwIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDIuMiAwIDE1LjEtNTMuMy01MS45LTUxLjl6Il19LCRfcj1TUmUsQV9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1wdWxsaW5nIixpY29uOls1NzYsNTEyLFtdLCJlNTM1IiwiTTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMiA5LjggMCAxOC41LTQuNCAyNC40LTExLjJMODAuNCA0ODUuM2MyLjkgMTcuNCAxOS40IDI5LjIgMzYuOCAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjhsLTIwLjUtMTIyLjcgMTUuNyAwIDMwIDEzNC45YzMuOCAxNy4zIDIwLjkgMjguMSAzOC4yIDI0LjNzMjguMS0yMC45IDI0LjMtMzguMmwtNTcuMy0yNTggMTE2LjMgNTMuOGMuNSAuMyAxLjEgLjUgMS42IC43IDguNiAzLjYgMTggMy4xIDI1LjktLjcgMy40LTEuNiA2LjYtMy45IDkuMy02LjcgMy4xLTMuMiA1LjUtNyA3LjEtMTEuNCAuMS0uMyAuMi0uNyAuMy0xbDIuNS03LjVjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlsLTIxLjQtMTAuNy0xNS4zLTM2LjhjLTE3LjEtNDEuMS01Ny4zLTY3LjktMTAxLjktNjcuOS0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTI0LjQgMTAuOS00NC42IDI5LTU4LjEgNTEuNkwxNTcuMyAxMzYuOUMxNDQuNyAxMzEgMTMwLjkgMTI4IDExNyAxMjhsLTUzIDB6TTQ2NCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTM0OS43IDMzNS42bC0yNSA2Mi40LTU5LjQgNTkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzNzIuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42eiJdfSxFX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQiLGljb246WzU3Niw1MTIsWzkxOTRdLCJmMDRhIiwiTTIwNC4zIDQzLjFDMjE1LjkgMzIgMjMzIDI4LjkgMjQ3LjcgMzUuMlMyNzIgNTYgMjcyIDcybDAgMTM2LjMgMTcyLjMtMTY1LjFDNDU1LjkgMzIgNDczIDI4LjkgNDg3LjcgMzUuMlM1MTIgNTYgNTEyIDcybDAgMzY4YzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOUwyNzIgMzAzLjcgMjcyIDQ0MGMwIDE2LTkuNiAzMC41LTI0LjMgMzYuOHMtMzEuOCAzLjItNDMuNC03LjlsLTE5Mi0xODRDNC41IDI3Ny4zIDAgMjY2LjkgMCAyNTZzNC41LTIxLjMgMTIuMy0yOC45bDE5Mi0xODR6Il19LE1SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItYnVyc3QiLGljb246WzY0MCw1MTIsWyJjYXItY3Jhc2giXSwiZjVlMSIsIk0yMzIgMTYuMWwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHpNMzIgMTY4LjFsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHpNMjgxLjUgNzAuNmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwyODEuNSAzNi42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXptLTE4MSAyMTVsMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNjYuNiAyNTEuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwek02Ni42IDIuN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwxMDAuNSAyLjdDOTEuMS02LjcgNzYtNi43IDY2LjYgMi43ek0zNTIuOSAxNzUuNEw1MDUgMjE2LjJjNi40IDEuNyAxMS4xIDcuMyAxMS44IDEzLjlsNy4yIDc0LTIzMS41LTYyIDQzLjItNjAuNWMzLjktNS40IDEwLjctNy45IDE3LjItNi4yek0yMjMuNiAyMjguNWwtMi4xIDIuOWMtMjEuNyA1LjUtMzkuOSAyMi4zLTQ2LjEgNDUuNS00LjEgMTUuNS0xMi40IDQ2LjQtMjQuOCA5Mi43bC04LjMgMzAuOWMtNC42IDE3LjEgNS42IDM0LjYgMjIuNiAzOS4ybDE1LjUgNC4xYzE3LjEgNC42IDM0LjYtNS42IDM5LjItMjIuNmw4LjMtMzAuOSAyNzguMiA3NC41LTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42IDQuMS0xNS41IDEyLjQtNDYuNCAyNC44LTkyLjdsOC4zLTMwLjljNi4yLTIzLjItMS4xLTQ2LjgtMTcuMi02Mi41bC0uMy0zLjYtMTAtMTAzYy0zLjItMzMuMi0yNi43LTYwLjktNTguOS02OS41TDM2OS41IDExMy42Yy0zMi4yLTguNi02Ni40IDMuNi04NS44IDMwLjhsLTYwLjIgODQuMnptNDguNyA1Ny44YTMyIDMyIDAgMSAxIC0xNi42IDYxLjggMzIgMzIgMCAxIDEgMTYuNi02MS44em0yMDguMSA4OC45YTMyIDMyIDAgMSAxIDYxLjggMTYuNiAzMiAzMiAwIDEgMSAtNjEuOC0xNi42eiJdfSxJX3I9TVJlLENSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5rIixpY29uOls1NzYsNTEyLFsxMjgyNzksImNoYWluIl0sImYwYzEiLCJNNDE5LjUgOTZjLTE2LjYgMC0zMi43IDQuNS00Ni44IDEyLjctMTUuOC0xNi0zNC4yLTI5LjQtNTQuNS0zOS41IDI4LjItMjQgNjQuMS0zNy4yIDEwMS4zLTM3LjIgODYuNCAwIDE1Ni41IDcwIDE1Ni41IDE1Ni41IDAgNDEuNS0xNi41IDgxLjMtNDUuOCAxMTAuNmwtNzEuMSA3MS4xYy0yOS4zIDI5LjMtNjkuMSA0NS44LTExMC42IDQ1LjgtODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtMS41IDAtMyAuMS00LjUgLjUtMTcuNyAxNS4yLTMxLjYgMzIuOS0zMS4xczMxLjYgMTUuMiAzMS4xIDMyLjljMCAuOSAwIDEuOCAwIDIuNiAwIDUxLjEgNDEuNCA5Mi41IDkyLjUgOTIuNSAyNC41IDAgNDgtOS43IDY1LjQtMjcuMWw3MS4xLTcxLjFjMTcuMy0xNy4zIDI3LjEtNDAuOSAyNy4xLTY1LjQgMC01MS4xLTQxLjQtOTIuNS05Mi41LTkyLjV6TTI3NS4yIDE3My4zYy0xLjktLjgtMy44LTEuOS01LjUtMy4xLTEyLjYtNi41LTI3LTEwLjItNDIuMS0xMC4yLTI0LjUgMC00OCA5LjctNjUuNCAyNy4xTDkxLjEgMjU4LjJjLTE3LjMgMTcuMy0yNy4xIDQwLjktMjcuMSA2NS40IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDE2LjUgMCAzMi42LTQuNCA0Ni43LTEyLjYgMTUuOCAxNiAzNC4yIDI5LjQgNTQuNiAzOS41LTI4LjIgMjMuOS02NCAzNy4yLTEwMS4zIDM3LjItODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtNDEuNSAxNi41LTgxLjMgNDUuOC0xMTAuNmw3MS4xLTcxLjFjMjkuMy0yOS4zIDY5LjEtNDUuOCAxMTAuNi00NS44IDg2LjYgMCAxNTYuNSA3MC42IDE1Ni41IDE1Ni45IDAgMS4zIDAgMi42IDAgMy45LS40IDE3LjctMTUuMSAzMS42LTMyLjggMzEuMnMtMzEuNi0xNS4xLTMxLjItMzIuOGMwLS44IDAtMS41IDAtMi4zIDAtMzMuNy0xOC02My4zLTQ0LjgtNzkuNnoiXX0sUF9yPUNSZSx6UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQtc3RlcCIsaWNvbjpbMzg0LDUxMixbInN0ZXAtYmFja3dhcmQiXSwiZjA0OCIsIk0zNjMgMzYuOGMtMTIuOS03LTI4LjctNi4zLTQxIDEuOEw2NCAyMDguMSA2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTQ0LjEgMjU4IDE2OS42YzEyLjMgOC4xIDI4IDguOCA0MSAxLjhzMjEtMjAuNSAyMS0zNS4ybDAtMzY4YzAtMTQuNy04LjEtMjguMi0yMS0zNS4yeiJdfSxOX3I9elJlLE9fcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4IixpY29uOlszODQsNTEyLFsxMjBdLCI1OCIsIk0zNzYuNiA4NC41YzExLjMtMTMuNiA5LjUtMzMuOC00LjEtNDUuMXMtMzMuOC05LjUtNDUuMSA0LjFMMTkyIDIwNiA1Ni42IDQzLjVDNDUuMyAyOS45IDI1LjEgMjguMSAxMS41IDM5LjRTLTMuOSA3MC45IDcuNCA4NC41TDE1MC4zIDI1NiA3LjQgNDI3LjVjLTExLjMgMTMuNi05LjUgMzMuOCA0LjEgNDUuMXMzMy44IDkuNSA0NS4xLTQuMUwxOTIgMzA2IDMyNy40IDQ2OC41YzExLjMgMTMuNiAzMS41IDE1LjQgNDUuMSA0LjFzMTUuNC0zMS41IDQuMS00NS4xTDIzMy43IDI1NiAzNzYuNiA4NC41eiJdfSxfUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXVzZXIiLGljb246WzUxMiw1MTIsWzYyMTQyLCJ1c2VyLWNpcmNsZSJdLCJmMmJkIiwiTTM5OSAzODQuMkMzNzYuOSAzNDUuOCAzMzUuNCAzMjAgMjg4IDMyMGwtNjQgMGMtNDcuNCAwLTg4LjkgMjUuOC0xMTEgNjQuMiAzNS4yIDM5LjIgODYuMiA2My44IDE0MyA2My44czEwNy44LTI0LjcgMTQzLTYzLjh6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiAxNmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHoiXX0sUl9yPV9SZSxUUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWxpc3QiLGljb246WzUxMiw1MTIsWyJsaXN0LWFsdCJdLCJmMDIyIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em05NiAyNTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTIwLTU2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxGX3I9VFJlLExSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kIixpY29uOls1MTIsNTEyLFsxMjkzMDYsOTk5NSwiaGFuZC1wYXBlciJdLCJmMjU2IiwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIwOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI3MmMwIDEuNSAwIDMuMSAuMSA0LjZMNjcuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40Uy0zLjYgMzI1LjcgMTIuNCAzNDFMMTI0LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRsMTkuMiAwYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2bDAtMjA4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTEyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjA4eiJdfSxCX3I9TFJlLEhfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5jZXIiLGljb246WzUxMiw1MTIsW10sImU4NDciLCJNNDA4IDE1MmM1Ny40IDAgMTA0IDQ2LjYgMTA0IDEwNCAwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2LTU0LjMgMC0xMDQuOC0xNy0xNDYuMy00NS45LTE0LjUtMTAuMS0xOC0zMC4xLTcuOS00NC42czMwLjEtMTggNDQuNi03LjljMzEuMSAyMS43IDY4LjkgMzQuNCAxMDkuNyAzNC40IDY3LjkgMCAxMjcuNS0zNS4zIDE2MS43LTg4LjUtMy4yIC4zLTYuNCAuNS05LjcgLjUtNTcuNCAwLTEwNC00Ni42LTEwNC0xMDRzNDYuNi0xMDQgMTA0LTEwNHpNMjU2IDBjNTQuMyAwIDEwNC44IDE3IDE0Ni4zIDQ1LjkgMTQuNSAxMC4xIDE4IDMwLjEgNy45IDQ0LjZzLTMwLjEgMTgtNDQuNiA3LjljLTMxLjEtMjEuNy02OC45LTM0LjQtMTA5LjctMzQuNC02Ny45IDAtMTI3LjUgMzUuMi0xNjEuNyA4OC40IDMuMi0uMyA2LjQtLjQgOS43LS40IDU3LjQgMCAxMDQgNDYuNiAxMDQgMTA0UzE2MS40IDM2MCAxMDQgMzYwIDAgMzEzLjQgMCAyNTZDMCAyNTQuMSAwIDI1Mi4yIC4xIDI1MC40IDMuMSAxMTEuNiAxMTYuNSAwIDI1NiAwek0xMDQgMjE2YTQwIDQwIDAgMSAwIDAgODAgNDAgNDAgMCAxIDAgMC04MHptMzA0IDBhNDAgNDAgMCAxIDAgMCA4MCA0MCA0MCAwIDEgMCAwLTgweiJdfSxEUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmFuLXNodXR0bGUiLGljb246WzU3Niw1MTIsWzEyODY1Niwic2h1dHRsZS12YW4iXSwiZjViNiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDMzNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwuNCAwYzQgNDQuOSA0MS43IDgwIDg3LjYgODBzODMuNi0zNS4xIDg3LjYtODBsMTA0LjcgMGM0IDQ0LjkgNDEuNyA4MCA4Ny42IDgwIDQ2LjEgMCA4My45LTM1LjQgODcuNy04MC41IDMxLjctMy44IDU2LjMtMzAuOCA1Ni4zLTYzLjVsMC0xMDEuM2MwLTEzLjgtNC41LTI3LjMtMTIuOC0zOC40bC04MC0xMDYuN0M0NzEuMSA3My41IDQ1Mi4xIDY0IDQzMiA2NEw2NCA2NHpNNTA0IDIyNGwtMTIwIDAgMC05NiA0OCAwIDcyIDk2ek02NCAyMjRsMC05NiA5NiAwIDAgOTYtOTYgMHptMTYwIDBsMC05NiA5NiAwIDAgOTYtOTYgMHpNMzkyIDM5MmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0xNTIgMzUyYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0scV9yPURSZSxWX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhaXJzIixpY29uOls1NzYsNTEyLFtdLCJlMjg5IiwiTTM4NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZ6Il19LGpfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3JzZS1oZWFkIixpY29uOls1MTIsNTEyLFtdLCJmN2FiIiwiTTAgNDY0TDAgMzE2LjlDMCAyMDguNSA2OC4zIDExMS44IDE3MC41IDc1LjZMMzQwLjIgMTUuNWMyMS40LTcuNiA0My44IDguMyA0My44IDMwLjkgMCAxMS01LjUgMjEuMi0xNC42IDI3LjNMMzM2IDk2YzQ4LjEgMCA5MS4yIDI5LjggMTA4LjEgNzQuOWw0OC42IDEyOS41YzExLjggMzEuNCA0LjEgNjYuOC0xOS42IDkwLjUtMTYgMTYtMzcuOCAyNS4xLTYwLjUgMjUuMWwtMy40IDBjLTI2LjEgMC01MC45LTExLjYtNjcuNi0zMS43bC0zMi4zLTM4LjdjLTExLjcgNC4xLTI0LjIgNi40LTM3LjMgNi40bC0uMSAwYy02LjMgMC0xMi41LS41LTE4LjYtMS41LTMuNi0uNi03LjItMS40LTEwLjctMi4zbDAgMGMtMjguOS03LjgtNTMuMS0yNi44LTY3LjgtNTIuMi00LjQtNy43LTE0LjItMTAuMy0yMS45LTUuOHMtMTAuMyAxNC4yLTUuOCAyMS45YzI0IDQxLjUgNjguMyA3MCAxMTkuMyA3MS45bDQ3LjIgNzAuOGM0IDYuMSA2LjIgMTMuMiA2LjIgMjAuNCAwIDIwLjMtMTYuNSAzNi44LTM2LjggMzYuOEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek0zMjggMjI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sVV9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZhdWx0IixpY29uOls1MTIsNTEyLFtdLCJlMmM1IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwyNTYgMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yNTYgMjU2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNNjQgMjU2YTEyOCAxMjggMCAxIDEgMjU2IDAgMTI4IDEyOCAwIDEgMSAtMjU2IDB6bTM4NC00OGMwIDE3LjgtOS43IDMzLjMtMjQgNDEuNmwwIDc4LjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03OC40Yy0xNC4zLTguMy0yNC0yMy44LTI0LTQxLjYgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHoiXX0sV19yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMTM1IiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwxMjkuOCA2NCA0ODAgNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAyNS41LTE0LjkgNDcuNC0zNi40IDU3LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6bTM0NSAzMTFsMC03MC4yYzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDIyLjIgNDggNDh6bTYxLjUgNjEuNWMyMC4yLTguNCAzNC41LTI4LjQgMzQuNS01MS43IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMjIuMiAwIDQzLjcgNDMuN3pNMTMwLjMgMjAwLjFjLTEuNSA1LTIuMyAxMC40LTIuMyAxNS45bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMxOC4xIDAgMzQuMS04LjUgNDQuNC0yMS44TDM3OC4yIDQ0OCA5NiA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjU2YzAtNy44IDEuNC0xNS4zIDQtMjIuMmw5NC4zIDk0LjN6bTkzLjggOTMuOGMtLjEgLjctLjEgMS40LS4xIDIuMSAwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTUwLjIgNDguMSA0OC4xeiJdfSxHX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bS1zdGVlbHBhbiIsaWNvbjpbNTc2LDUxMixbXSwiZjU2YSIsIk0yODggMzJjMTU5LjEgMCAyODggNDggMjg4IDEyOGwwIDE5MmMwIDgwLTEyOC45IDEyOC0yODggMTI4UzAgNDMyIDAgMzUyTDAgMTYwQzAgODAgMTI4LjkgMzIgMjg4IDMyek01MjggMTYwYzAtOS45LTgtMjkuOS01NS00OS44LTE4LjYtNy45LTQwLjktMTQuNC02Ni0xOS40bC0yNy44IDQzLjZjLTcuMyAxMS41LTExLjIgMjQuOC0xMS4yIDM4LjQgMCAxNy41IDYuNCAzNC40IDE4LjEgNDcuNWw5LjggMTFjMjkuOC01LjIgNTUuOS0xMi41IDc3LjItMjEuNSA0Ny4xLTE5LjkgNTUtMzkuOSA1NS00OS44ek0zNDkuMiAyMzcuM2MtOC0yNi4yLTMyLjQtNDUuMy02MS4yLTQ1LjNzLTUzLjMgMTkuMS02MS4yIDQ1LjNjMTkuNCAxLjcgMzkuOSAyLjcgNjEuMiAyLjdzNDEuOC0uOSA2MS4yLTIuN3pNMTY5IDkwLjhjLTI1LjIgNS00Ny40IDExLjYtNjYgMTkuNC00Ny4xIDE5LjktNTUgMzkuOS01NSA0OS44czggMjkuOSA1NSA0OS44YzIxLjMgOSA0Ny40IDE2LjMgNzcuMiAyMS41bDkuOC0xMWMxMS42LTEzLjEgMTguMS0zMCAxOC4xLTQ3LjUgMC0xMy42LTMuOS0yNi45LTExLjItMzguNEwxNjkgOTAuOHptNTYuMy04Yy0uOSA0LjMtMS40IDguNy0xLjQgMTMuMiAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtNC41LS41LTktMS40LTEzLjItMTkuOC0xLjgtNDAuOC0yLjgtNjIuNi0yLjhzLTQyLjggMS02Mi42IDIuOHoiXX0sWV9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1icy11cCIsaWNvbjpbNTEyLDUxMixbMTI4MDc3LDYxNTc1XSwiZjE2NCIsIk04MCAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDQ4IDB6TTI3MC42IDE2QzI5Ny45IDE2IDMyMCAzOC4xIDMyMCA2NS40bDAgNC4yYzAgNi44LTEuMyAxMy42LTMuOCAxOS45TDI4OCAxNjAgNDQ4IDE2MGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDE5LjctMTEuOSAzNi42LTI4LjkgNDQgMTcgNy40IDI4LjkgMjQuMyAyOC45IDQ0IDAgMjMuNC0xNi44IDQyLjktMzkgNDcuMSA0LjQgNy4zIDcgMTUuOCA3IDI0LjkgMCAyMi4yLTE1IDQwLjgtMzUuNCA0Ni4zIDIuMiA1LjUgMy40IDExLjUgMy40IDE3LjcgMCAyNi41LTIxLjUgNDgtNDggNDhsLTg3LjkgMGMtMzYuMyAwLTcxLjYtMTIuNC05OS45LTM1LjFMMTg0IDQzNS4yYy0xNS4yLTEyLjEtMjQtMzAuNS0yNC01MGwwLTE4Ni42YzAtMTQuOSAzLjUtMjkuNiAxMC4xLTQyLjlMMjI2LjMgNDMuM0MyMzQuNyAyNi42IDI1MS44IDE2IDI3MC42IDE2eiJdfSxLX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhbXAiLGljb246WzUxMiw1MTIsW10sImY1YmYiLCJNMzEyIDIwMS44YzAtMTcuNCA5LjItMzMuMiAxOS45LTQ3IDEyLjYtMTYuMiAyMC4xLTM2LjYgMjAuMS01OC44IDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMjIuMSA3LjUgNDIuNSAyMC4xIDU4LjggMTAuNyAxMy44IDE5LjkgMjkuNiAxOS45IDQ3IDAgMjkuOS0yNC4zIDU0LjItNTQuMiA1NC4yTDExMiAyNTZjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtNjEuOS01MC4xLTExMi0xMTItMTEybC0zMy44IDBjLTI5LjkgMC01NC4yLTI0LjMtNTQuMi01NC4yek01NiA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNTYgNDY0eiJdfSxaX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVub3JhaCIsaWNvbjpbNjQwLDUxMixbXSwiZjY3NiIsIk0yMC44IDcuNEMyMi44IDIuOSAyNy4xIDAgMzIgMHM5LjIgMi45IDExLjIgNy40TDYxLjMgNDkuN2MxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFMNjQgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA4MS43IDAgNjRsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDIwLjggNy40em05NiAwQzExOC44IDIuOSAxMjMuMSAwIDEyOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMlM5NiA4MS43IDk2IDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwxMTYuOCA3LjR6bTc3LjggNDIuNEwyMTIuOCA3LjRDMjE0LjggMi45IDIxOS4xIDAgMjI0IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNMzA4LjggNy40QzMxMC44IDIuOSAzMTUuMSAwIDMyMCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMzA4LjggNy40em03Ny44IDQyLjRMNDA0LjggNy40QzQwNi44IDIuOSA0MTEuMSAwIDQxNiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTUwMC44IDcuNEM1MDIuOCAyLjkgNTA3LjEgMCA1MTIgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDUwMC44IDcuNHptNzcuOCA0Mi40TDU5Ni44IDcuNEM1OTguOCAyLjkgNjAzLjEgMCA2MDggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMiAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDAgMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE2MCAxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwIDAgNjQgMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyOCAwIDAtNjQtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFFfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZHJlbiIsaWNvbjpbNjQwLDUxMixbXSwiZTRlMSIsIk0xNjAuNSAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0tNzIgNDgwbDAtODAtMTcuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMUw4Ni43IDI4NS41IDU4IDMyMy4zYy0xMC43IDE0LjEtMzAuOCAxNi44LTQ0LjggNi4yUy0zLjcgMjk4LjcgNyAyODQuN0w2NS45IDIwN2MyMi40LTI5LjYgNTcuNS00NyA5NC42LTQ3czcyLjIgMTcuNCA5NC42IDQ3TDMxNCAyODQuN2MxMC43IDE0LjEgNy45IDM0LjItNi4yIDQ0LjhzLTM0LjIgNy45LTQ0LjgtNi4ybC0yOC43LTM3LjggMzEuMSA5My40YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMTcuOCAwIDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MC0xNiAwIDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6TTQ4MC41IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bS04IDM4NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTc5LjUtMTIuOSAyMC41Yy05LjQgMTUtMjkuMiAxOS40LTQ0LjEgMTBzLTE5LjQtMjkuMi0xMC00NC4xbDUxLjctODIuMWMxNy42LTI3LjkgNDguMy00NC45IDgxLjItNDQuOWwxMi4zIDBjMzMgMCA2My43IDE2LjkgODEuMiA0NC45TDYxOS42IDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMGwtMTIuOS0yMC41IDAgMTc5LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0xNiAweiJdfSwkUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtbGluZSIsaWNvbjpbNTEyLDUxMixbImxpbmUtY2hhcnQiXSwiZjIwMSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNkw2NCA2NHptNDA2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzMjAgMjEwLjcgMjYyLjYgMTUzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw3My40LTczLjQgNTcuNCA1Ny40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LFhfcj0kUmUsQVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1lbnZlbG9wZSIsaWNvbjpbNDQ4LDUxMixbImVudmVsb3BlLXNxdWFyZSJdLCJmMTk5IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOS4xIDI2Ny45TDEwOC40IDIwNy40Yy03LjctNC42LTEyLjQtMTIuOS0xMi40LTIxLjkgMC0xNC4xIDExLjQtMjUuNSAyNS41LTI1LjVsMjA0LjkgMGMxNC4xIDAgMjUuNSAxMS40IDI1LjUgMjUuNSAwIDktNC43IDE3LjMtMTIuNCAyMS45TDIzOC45IDI2Ny45Yy00LjUgMi43LTkuNiA0LjEtMTQuOSA0LjFzLTEwLjQtMS40LTE0LjktNC4xek0zNTIgMjM3LjNsMCA4Mi43YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC04Mi43IDk2LjcgNThDMjAyLjEgMzAxIDIxMyAzMDQgMjI0IDMwNHMyMS45LTMgMzEuMy04LjdsOTYuNy01OHoiXX0sSl9yPUFSZSxFUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuLXNtb2tpbmciLGljb246WzUxMiw1MTIsWzEyODY4NSwic21va2luZy1iYW4iXSwiZjU0ZCIsIk05OS41IDE0NC44bDc5LjIgNzkuMi01MC43IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTQ2LjcgMCA5Mi41IDkyLjVjLTMxLjQgMjIuNC02OS44IDM1LjUtMTExLjIgMzUuNS0xMDYgMC0xOTItODYtMTkyLTE5MiAwLTQxLjUgMTMuMS03OS45IDM1LjUtMTExLjJ6TTMzMy4zIDI4OGwtMzItMzIgODIuNyAwIDAgMzItNTAuNyAwem0zMiAzMmwxOC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwyNjkuMyAyMjQgMTQ0LjggOTkuNWMzMS40LTIyLjQgNjkuOC0zNS41IDExMS4yLTM1LjUgMTA2IDAgMTkyIDg2IDE5MiAxOTIgMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4yTDM2NS4zIDMyMHpNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI3MiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnMtNy4yLTE2LTE2LTE2eiJdfSxlVHI9RVJlLHRUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1mcm9udCIsaWNvbjpbNDQ4LDUxMixbXSwiZTJiNyIsIk0wIDExMkMwIDY3LjggMzUuOCAzMiA4MCAzMmwyODggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDI1NmMwIDI2LjItMTIuNiA0OS40LTMyIDY0bDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzItMTkyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OEMxMi42IDQxNy40IDAgMzk0LjIgMCAzNjhMMCAxMTJ6bTk2IDgwbDAgNjQgMjU2IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0zMiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjI0IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sdnBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LHJUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWxsc2V5ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjE0MCIsIk00NDggMjU2YTE5MiAxOTIgMCAxIDAgLTM4NCAwIDE5MiAxOTIgMCAxIDAgMzg0IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiA4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0yMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4ek0yMjQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LElSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1sZWZ0LWxvbmciLGljb246WzU3Niw1MTIsWyJsb25nLWFycm93LWxlZnQiXSwiZjE3NyIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjhjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNTQ0IDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDM0LjcgMCA3My40LTczLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjh6Il19LGFUcj1JUmUsaVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXJvb2siLGljb246WzM4NCw1MTIsWzk4MjBdLCJmNDQ3IiwiTTAgMzJMMCAxMzMuNWMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0w2NCAyMjQgNjQgMzg0IDcuOCA0NTQuM0MyLjcgNDYwLjYgMCA0NjguNCAwIDQ3Ni41IDAgNDk2LjEgMTUuOSA1MTIgMzUuNSA1MTJsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtNTYuMi03MC4zIDAtMTYwIDQ1LjMtNDUuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDM4NCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi00OCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyQzk2IDE0LjMgODEuNyAwIDY0IDBMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6Il19LHNUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJibGVuZGVyLXBob25lIixpY29uOls1NzYsNTEyLFtdLCJmNmI2IiwiTTE1MS40IDEzLjJjMTAuMiA1LjggMTQuNSAxOC40IDEwIDI5LjNMMTM4LjIgOTguOGMtMy45IDkuNi0xMy43IDE1LjQtMjQgMTQuNGwtMjAuMi0yQzc4LjcgMTUyLjkgNzggMTk4LjkgOTEuOSAyNDEuMWwyMi40LTIuMmMxMC4zLTEgMjAgNC44IDI0IDE0LjRsMjMuMiA1Ni4zYzQuNSAxMC45IC4yIDIzLjQtMTAgMjkuM2wtMi45IDEuNmMtMzMuNiAxOS4yLTgxLjcgMTYuMi0xMDYuMi0yMS42LTU2LjMtODYuNi01Ni4zLTE5OS4xIDAtMjg1LjcgMjQuNi0zNy43IDcyLjctNDAuNyAxMDYuMi0yMS42bDIuOSAxLjZ6TTIyNCAzMzZMMTkzLjcgMTcuNUMxOTIuOCA4LjEgMjAwLjIgMCAyMDkuNiAwbDMyNCAwYzIxLjMgMCAzNi42IDIwLjMgMzAuOCA0MC44TDU1My4xIDgwIDQ0MCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5OS40IDAtMTguMyA2NC04MS4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuNCAwLTI3LjQgOTYtMjU2IDB6bTggNDhsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFBSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLXVwIixpY29uOlszODQsNTEyLFsibGV2ZWwtdXAiXSwiZjE0OCIsIk0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzA2LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAweiJdfSxuVHI9UFJlLG9Ucj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaWN5Y2xlIixpY29uOls2NDAsNTEyLFsxMjg2OTBdLCJmMjA2IiwiTTMzMS43IDQzLjNDMzM2IDM2LjMgMzQzLjcgMzIgMzUyIDMybDEwNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NS42IDAgNzIuMiAxNDguNGMxMC43LTIuOSAyMS45LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOC0xMjgtNTcuMy0xMjgtMTI4YzAtNDIgMjAuMi03OS4yIDUxLjQtMTAyLjZsLTIwLjQtNDEuOS03My41IDE0N2MtMi4zIDQuOC02LjMgOC44LTExLjQgMTEuMi0uNiAuMy0xLjIgLjUtMS44IC43LTIuOSAxLjEtNS45IDEuNi04LjkgMS41TDI3MSAzNjhjLTcuOSA2My4xLTYxLjcgMTEyLTEyNyAxMTItNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhTNzMuMyAyMjQgMTQ0IDIyNGMxMC44IDAgMjEuMiAxLjMgMzEuMiAzLjhsMjguNS01Ni45LTExLjUtMjYuOS00MC4yIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMGM5LjYgMCAxOC4zIDUuNyAyMi4xIDE0LjVsMTQuMyAzMy41IDEyMy43IDAtMzcuNy03Ny41Yy0zLjYtNy40LTMuMi0xNi4yIDEuMi0yMy4yek0yMjguNSAyMjguN2wtNDUuNiA5MS4zIDg0LjggMC0zOS4xLTkxLjN6TTMwNS43IDI4N2w0Ny41LTk1LTg4LjIgMCA0MC43IDk1em0xNjguNyA3NS41bC0yOS43LTYxYy0xMi44IDEzLTIwLjcgMzAuOC0yMC43IDUwLjUgMCAzOS44IDMyLjIgNzIgNzIgNzJzNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyYy0yLjcgMC01LjUgLjItOC4xIC41bDI5LjcgNjFjNS44IDExLjkgLjggMjYuMy0xMS4xIDMyLjFzLTI2LjMgLjgtMzIuMS0xMS4xek0xNDkuMiAzNjhjLTIwLjIgMC0zMy40LTIxLjMtMjQuMy0zOS40bDI0LjItNDguNWMtMS43LS4xLTMuNC0uMi01LjEtLjItMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MmMzNC4zIDAgNjIuOS0yMy45IDcwLjItNTZsLTY1IDB6Il19LE5SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctZG93biIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1kb3duIl0sImYwYWIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIzOSAzNzdsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzkgMzkgMC0xNTAuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTUwLjEgMzktMzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04MCA4MGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6Il19LGxUcj1OUmUsUV89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhciIsaWNvbjpbNTEyLDUxMixbOTg4MSwiY29nIl0sImYwMTMiLCJNMTk1LjEgOS41QzE5OC4xLTUuMyAyMTEuMi0xNiAyMjYuNC0xNmw1OS44IDBjMTUuMiAwIDI4LjMgMTAuNyAzMS4zIDI1LjVMMzMyIDc5LjVjMTQuMSA2IDI3LjMgMTMuNyAzOS4zIDIyLjhsNjcuOC0yMi41YzE0LjQtNC44IDMwLjIgMS4yIDM3LjggMTQuNGwyOS45IDUxLjhjNy42IDEzLjIgNC45IDI5LjgtNi41IDM5LjlMNDQ3IDIzMy4zYy45IDcuNCAxLjMgMTUgMS4zIDIyLjdzLS41IDE1LjMtMS4zIDIyLjdsNTMuNCA0Ny41YzExLjQgMTAuMSAxNCAyNi44IDYuNSAzOS45bC0yOS45IDUxLjhjLTcuNiAxMy4xLTIzLjQgMTkuMi0zNy44IDE0LjRsLTY3LjgtMjIuNWMtMTIuMSA5LjEtMjUuMyAxNi43LTM5LjMgMjIuOGwtMTQuNCA2OS45Yy0zLjEgMTQuOS0xNi4yIDI1LjUtMzEuMyAyNS41bC01OS44IDBjLTE1LjIgMC0yOC4zLTEwLjctMzEuMy0yNS41bC0xNC40LTY5LjljLTE0LjEtNi0yNy4yLTEzLjctMzkuMy0yMi44TDczLjUgNDMyLjNjLTE0LjQgNC44LTMwLjItMS4yLTM3LjgtMTQuNEw1LjggMzY2LjFjLTcuNi0xMy4yLTQuOS0yOS44IDYuNS0zOS45bDUzLjQtNDcuNWMtLjktNy40LTEuMy0xNS0xLjMtMjIuN3MuNS0xNS4zIDEuMy0yMi43TDEyLjMgMTg1LjhjLTExLjQtMTAuMS0xNC0yNi44LTYuNS0zOS45TDM1LjcgOTQuMWM3LjYtMTMuMiAyMy40LTE5LjIgMzcuOC0xNC40bDY3LjggMjIuNWMxMi4xLTkuMSAyNS4zLTE2LjcgMzkuMy0yMi44TDE5NS4xIDkuNXpNMjU2LjMgMzM2YTgwIDgwIDAgMSAwIC0uNi0xNjAgODAgODAgMCAxIDAgLjYgMTYweiJdfSxjVHI9UV8sZFRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTIzIiwiTTQ2NC0zMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzNC43IDAtNjMgNjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC0zNy0xMS40LTcxLjQtMzEtOTkuOGw2My02MyAwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNjggOTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek0xOTAuOS0yMS45QzE4OC40LTI4IDE4Mi42LTMyIDE3Ni0zMnMtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NC03Ni4yLTIzLjFjLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM1MzMy44IDQ2LjUgMzcgNTIuMmwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yLTUuNiA3OS40Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE1Mi4xIDI2OGMtNS4zLTE5LjEtOC4xLTM5LjItOC4xLTYwIDAtNjUuNCAyOC0xMjQuMiA3Mi42LTE2NS4xTDE5MC45LTIxLjl6Il19LHVUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdHRlciIsaWNvbjpbNjQwLDUxMixbMTI5NDQ2XSwiZjcwMCIsIk0xODEuNSAxOTcuMWwxMi45IDYuNGM1LjkgMyAxMi40IDQuNSAxOS4xIDQuNSAyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNmwwLTIxLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjEuNGMwIDIzLjUgMTkuMSA0Mi42IDQyLjYgNDIuNiA2LjYgMCAxMy4xLTEuNSAxOS4xLTQuNSA5LjMtNC43IDE2LjQtOC4yIDIxLjItMTAuNkwxMzUuMSAxODVjLTQuNS0zLTcuMS04LTcuMS0xMy4zbDAtMy43YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzLjdjMCA1LjMtMi43IDEwLjMtNy4xIDEzLjNsLTExLjggNy45IDguNCA0LjJ6bS04LjYgNDkuNGwtMTIuOS02LjQtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42LTMuNiAwLTcuMS0uMi0xMC42LS42bDAgLjZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwxNjAgMCAwLTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNCA5LjQtNS40IDIwLjMtOC42IDMyLTguNmwwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDguOCAwIDE2IDcuMiAxNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05OS43YzAtNDguMi0zMC44LTkxLTc2LjYtMTA2LjNsLTguNS0yLjhjLTgtMi43LTEyLjYtMTEuMS0xMC40LTE5LjNzMTAuMy0xMy4yIDE4LjYtMTEuNmwxOS45IDRDNTc2IDg2LjEgNjQwIDE2NC4yIDY0MCAyNTQuOWwwIDEuMSAwIDBjMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNGwtMTYwLjYgMEMxMzIgNDgwIDMyIDM4MCAzMiAyNTYuNmwwLTM5LjhjLTEwLjEtMTQuNi0xNi0zMi4zLTE2LTUxLjRsMC0yMS40IDAtMS40QzYuNyAxMzkuMyAwIDEzMC41IDAgMTIwIDAgMTA2LjcgMTAuNyA5NiAyNCA5NmwyLjggMEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJsNjQgMGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0bDIuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTAuNS02LjcgMTkuMy0xNiAyMi42bDAgMS40IDAgMjEuNGMwIDEuNCAwIDIuOC0uMSA0LjMgMTItNi4yIDI1LjctOS42IDQwLjEtOS42bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDggNTYuNCAwYy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0bC0zMiAwYy00Mi4zIDAtNzguMi0yNy40LTkxLTY1LjMtNS4xIC45LTEwLjMgMS4zLTE1LjYgMS4zLTE0LjEgMC0yNy45LTMuMy00MC41LTkuNnpNOTYgMTI4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptMTEyIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6Il19LE9SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi1sZWZ0IixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtbGVmdCJdLCJmMTM3IiwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMjcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDg3IDg3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTY3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjcxIDEzNXoiXX0scFRyPU9SZSxSUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgNDcuMi0zNiA2Ny4yLTU2IDc0LjVsMCAzLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LjFjMC0yMC41IDE0LjgtMzUuMiAzMC4xLTQwLjIgNi40LTIuMSAxMy4yLTUuNSAxOC4yLTEwLjMgNC4zLTQuMiA3LjctMTAgNy43LTE5LjYgMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAzNjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sZlRyPVJSZSxoVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2Fsa2llLXRhbGtpZSIsaWNvbjpbMzg0LDUxMixbXSwiZjhlZiIsIk04OC0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDcyIDQ4IDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MC45YzAgOS45LTIuMyAxOS43LTYuOCAyOC42bC0yMC4yIDQwLjRjLTMuMyA2LjctNS4xIDE0LTUuMSAyMS41bDAgODQuN2MwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtODQuN2MwLTcuNS0xLjctMTQuOC01LjEtMjEuNUw2LjggMzAxLjVDMi4zIDI5Mi42IDAgMjgyLjggMCAyNzIuOUwwIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwxNiAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTMyIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxGUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncm91cCIsaWNvbjpbNTc2LDUxMixbMTI4MTAxLCJ1c2VyLWZyaWVuZHMiXSwiZjUwMCIsIk02NCAxMjhhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHpNMCA0NjRjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZzMTc2IDc4LjggMTc2IDE3NmwwIDZjMCAyMy4yLTE4LjggNDItNDIgNDJMNDIgNTEyYy0yMy4yIDAtNDItMTguOC00Mi00MmwwLTZ6TTQzMiA2NGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCAyMi40YzAgMjMtMTguNiA0MS42LTQxLjYgNDEuNmwtMTQ0LjggMGM2LjYtMTIuNSAxMC40LTI2LjggMTAuNC00MmwwLTZjMC01MS41LTE3LjQtOTguOS00Ni41LTEzNi43IDIyLjYtMTQuNyA0OS42LTIzLjMgNzguNS0yMy4zeiJdfSxtVHI9RlJlLEJSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5IixpY29uOls1MTIsNTEyLFs2MzQ5OSwiaG9tZS1sZyJdLCJlM2FmIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yNDAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDEyOCAwIDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDB6Il19LGdUcj1CUmUsSFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWZyb20tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24tb3V0LWFsdCJdLCJmMmY1IiwiTTUwNSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMzYxIDk1Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAxMDIuMyAzMjAgMTEybDAgODAtMTEyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTEyIDAgMCA4MGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJMNTA1IDI3M3pNMTYwIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5Nmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAweiJdfSxiVHI9SFJlLHhUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlIixpY29uOlszODQsNTEyLFsxMjgxOTYsMTI4NDU5LDYxNDYyXSwiZjE1YiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2eiJdfSx2VHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNjkiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTgzLjQtMTgzLjQgNy4xLTcuNyAxMjcuMyAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2cy0yNS4xLTU2LTU2LTU2TDM5Mi43IDIwMCAyMzMuNSAyNi40QzIyNy41IDE5LjggMjE4LjkgMTYgMjA5LjkgMTZsLTQzLjcgMGMtMTAuOSAwLTE4LjYgMTAuNy0xNS4yIDIxLjFMMTc1LjEgMTA5LjIgNDEtMjQuOXpNMTMwLjIgMjAwbC0yNC42IDAtNTIuOC02NmMtMy0zLjgtNy42LTYtMTIuNS02bC0xOS44IDBjLTEwLjQgMC0xOCA5LjgtMTUuNSAxOS45TDMyIDI1NiA1IDM2NC4xQzIuNCAzNzQuMiAxMC4xIDM4NCAyMC41IDM4NGwxOS44IDBjNC45IDAgOS41LTIuMiAxMi41LTZsNTIuOC02NiA5OS43IDAtNTQuMyAxNjIuOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xbDQzLjcgMGM5IDAgMTcuNS0zLjggMjMuNi0xMC40TDMyMC43IDM5MC41IDEzMC4yIDIwMHoiXX0seVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtaGVhdnkiLGljb246WzUxMiw1MTIsW10sImY3NDAiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTYuOCA3OS42bC0zMiA5NkM2Ni42IDUwOC4yIDUzIDUxNSA0MC40IDUxMC44UzIxIDQ5MyAyNS4yIDQ4MC40bDMyLTk2QzYxLjQgMzcxLjggNzUgMzY1IDg3LjYgMzY5LjJTMTA3IDM4NyAxMDIuOCAzOTkuNnptMTIwIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzE0MSA0OTMgMTQ1LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlMyMjcgMzg3IDIyMi44IDM5OS42em0xMTIgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMjUzIDQ5MyAyNTcuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzMzOSAzODcgMzM0LjggMzk5LjZ6bTEyMCAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMzNzMgNDkzIDM3Ny4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTNDU5IDM4NyA0NTQuOCAzOTkuNnoiXX0sd1RyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1mYWxsaW5nIixpY29uOls1MTIsNTEyLFtdLCJlNTQ2IiwiTTMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUuNGMwIDQ1LTIzLjYgODYuNi02Mi4xIDEwOS44bC00LjYgMi44QzEzMS40IDE4NC43IDk2IDI0Ny4xIDk2IDMxNC42TDk2IDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjkuNGMwLTE2LjcgMy4zLTMzIDkuNC00OEwzNTkuMiA1MDAuMmMxMS4xIDEzLjcgMzEuMyAxNS44IDQ1IDQuN3MxNS44LTMxLjMgNC43LTQ1TDI5NS4yIDMyMCA0MDAgMzIwIDQzOC40IDM3MS4yYzEwLjYgMTQuMSAzMC43IDE3IDQ0LjggNi40czE3LTMwLjcgNi40LTQ0LjhsLTQzLjItNTcuNkM0MzcuMyAyNjMuMSA0MjMuMSAyNTYgNDA4IDI1NmwtODkgMC02Mi45LTc1LjVjNDAuMy0zNiA2My45LTg3LjkgNjMuOS0xNDMuMWwwLTUuNHpNMTA0IDE0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnoiXX0scVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tZG93biIsaWNvbjpbMzg0LDUxMixbMTA1NDksImxldmVsLWRvd24tYWx0Il0sImYzYmUiLCJNMTY5LjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzMjAgMzIwIDMyMGwtNjQgMCAwLTE2MEMyNTYgNzEuNiAxODQuNCAwIDk2IDBMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJMMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwLTY0IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDEyOCAxMjh6Il19LGtUcj1xUmUsVlJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLXJpZ2h0LWFuZC1kb3duLWxlZnQtZnJvbS1jZW50ZXIiLGljb246WzUxMiw1MTIsWyJleHBhbmQtYWx0Il0sImY0MjQiLCJNMzQ0IDBMNDg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTMzM0LjMgMCAzNDQgMHpNMTY4IDUxMkwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDAgMzQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMlMzNC4xIDMyMC4yIDQxIDMyN2wzOSAzOSA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODcgODcgMzkgMzljNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMlMxNzcuNyA1MTIgMTY4IDUxMnoiXX0sU1RyPVZSZSxNVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci10YWciLGljb246WzY0MCw1MTIsW10sImY1MDciLCJNMjU2LjEgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTIyNi40IDMwNGw1OS40IDBjNi43IDAgMTMuMiAuNCAxOS43IDEuMS0uOSA0LjktMS40IDkuOS0xLjQgMTVsMCA5Mi4xYzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45bDMxLjkgMzEuOS0yODYuMyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3pNMzUyLjEgNDEyLjJsMC05Mi4xYzAtMTcuNyAxNC4zLTMyIDMyLTMybDkyLjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDk2IDk2YzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45bC03Ni4xIDc2LjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwbC05Ni05NmMtOS05LTE0LjEtMjEuMi0xNC4xLTMzLjl6bTEwNC00NC4yYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LENUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwYXJrbGVzIixpY29uOls2NDAsNTEyLFtdLCJlMDVkIiwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNzZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguMmMtMTkuMiA1LjQtMzQuNyAyMC40LTQwLjQgNDAuM2wtNi41IDIyLjctMjIuNyA2LjVjLTI1LjIgNy4yLTQyLjUgMzAuMi00Mi41IDU2LjQgMCAyMi4xIDEyLjQgNDIgMzEuNCA1MS45LTI3LjUgMTcuOC02MC4yIDI4LjEtOTUuNCAyOC4xbC0xOS4yIDBjLTU5LjYgMC0xMTYuOS0yMi45LTE2MC02NEw3Ni40IDM0MWMtMTYtMTUuMi0xNi42LTQwLjYtMS40LTU2LjZzNDAuNi0xNi42IDU2LjYtMS40bDYwLjUgNTcuNmMwLTEuNS0uMS0zLjEtLjEtNC42bDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIwOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTcuMyAzMjYuNmMtMS4xLTMuOS00LjctNi42LTguNy02LjZzLTcuNiAyLjctOC43IDYuNmwtNy4zIDI1LjQtMjUuNCA3LjNjLTMuOSAxLjEtNi42IDQuNy02LjYgOC43czIuNyA3LjYgNi42IDguN2wyNS40IDcuMyA3LjMgMjUuNGMxLjEgMy45IDQuNyA2LjYgOC43IDYuNnM3LjYtMi43IDguNy02LjZsNy4zLTI1LjQgMjUuNC03LjNjMy45LTEuMSA2LjYtNC43IDYuNi04LjdzLTIuNy03LjYtNi42LTguN2wtMjUuNC03LjMtNy4zLTI1LjR6TTEwNCAxMjBsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkwxMDQgMTY4IDkwLjIgMjE2LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1NiAxNjggNy43IDE1NC4yQzMuMSAxNTIuOSAwIDE0OC43IDAgMTQ0czMuMS04LjkgNy43LTEwLjJMNTYgMTIwIDY5LjggNzEuN0M3MS4xIDY3LjEgNzUuMyA2NCA4MCA2NHM4LjkgMy4xIDEwLjIgNy43TDEwNCAxMjB6TTU4NCA0MDhsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkw1ODQgNDU2IDU3MC4yIDUwNC4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTM2IDQ1NiA0ODcuNyA0NDIuMmMtNC42LTEuMy03LjctNS41LTcuNy0xMC4yczMuMS04LjkgNy43LTEwLjJMNTM2IDQwOCA1NDkuOCAzNTkuN2MxLjMtNC42IDUuNS03LjcgMTAuMi03LjdzOC45IDMuMSAxMC4yIDcuN0w1ODQgNDA4eiJdfSx6VHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWRvdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRiZSIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0LjlTMTc5LjEgNjQgMTkyIDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTY5LjQgMzkzLjRsNjQtNjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzMyLjkgNDQ4IDMyMCA0NDhsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45ek0zMiAyMjRsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVM2NCAzMzIuOSA2NCAzMjBsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0yOTcuNCA1NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w2NC02NGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM0NDggMTc5LjEgNDQ4IDE5MmwwIDMyIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtNjQtNjR6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxqUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZMMTYwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3MS43QzQ0LjQgNDIxLjYgMCAzNDQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgODgtNDQuNCAxNjUuNi0xMTIgMjExLjdMNDAwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5Ny40ek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSxfVHI9alJlLFRUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb25nLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxNjkiLCJNMjg4LTE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzIuMmMtMjIuOS0xNS4zLTUwLjQtMjQuMi04MC0yNC4yLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0Uzk2LjUgNDMyIDE3NiA0MzJjMzAgMCA1Ny44LTkuMSA4MC44LTI0LjggMy4zIDE0LjIgMTYgMjQuOCAzMS4yIDI0LjggMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMDQgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek05NiAyODhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0yNCA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgNDY0eiJdfSxMVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzQiLCJNMjg4IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTk2IDMxMmMwIDI1LTEyLjcgNDctMzIgNTkuOWwwIDQ0LjEtMTI4IDAgMC00NC4xQzIwNC43IDM1OSAxOTIgMzM3IDE5MiAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6bTE2IDEwNGwwLTI3LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDQwLjYtMTEyIDB6TTY0IDM3NS40QzQ0LjkgMzY0LjQgMzIgMzQzLjcgMzIgMzIwbDAtMzJjMC01MyA0My05NiA5Ni05NiAxMi43IDAgMjQuOCAyLjUgMzUuOSA2LjktMTIuNiAyMS40LTE5LjkgNDYuNC0xOS45IDczLjFsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCAyNy4zLTExMiAwIDAtNDAuNnpNMTI4IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0zMjAgMGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMjQgNDY0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sVVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1yc3MiLGljb246WzQ0OCw1MTIsWyJyc3Mtc3F1YXJlIl0sImYxNDMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTYgMTM2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDEzNyAwIDI0OCAxMTEgMjQ4IDI0OCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTExMC41LTg5LjUtMjAwLTIwMC0yMDAtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgODMuOSAwIDE1MiA2OC4xIDE1MiAxNTIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC01Ny40LTQ2LjYtMTA0LTEwNC0xMDQtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgMTIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LERUcj1VUmUsJFRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLW1pbnVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcyIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMjQgMjY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sQVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWRpYWdyYW0iLGljb246WzUxMiw1MTIsW10sImU2OTUiLCJNODAgMzJDNTMuNSAzMiAzMiA1My41IDMyIDgwczIxLjUgNDggNDggNDhsMTUyIDAgMCA0MC00OCA0OC03MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDcyIDAgNDggNDggMCA0MC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC00MCA0OC00OCA3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNjQtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNjRjMC0zOS44LTMyLjItNzItNzItNzJsLTcyIDAtNDgtNDggMC00MCAxNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw4MCAzMnoiXX0sV1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtdGlyZWQiLGljb246WzUxMiw1MTIsWzEyODU1NSwidGlyZWQiXSwiZjVjOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY0LjcgMzI4LjdjMjItMjIgNTMuOS00MC43IDkxLjMtNDAuN3M2OS4zIDE4LjcgOTEuMyA0MC43YzExLjEgMTEuMSAyMC4xIDIzLjQgMjYuNCAzNS40IDYuMiAxMS43IDEwLjMgMjQuNCAxMC4zIDM1LjkgMCA1LjItMi42IDEwLjItNi45IDEzLjJzLTkuOCAzLjctMTQuNyAxLjhsLTIwLjUtNy43Yy0yNi45LTEwLjEtNTUuNS0xNS4zLTg0LjMtMTUuM2wtMy4yIDBjLTI4LjggMC01Ny4zIDUuMi04NC4zIDE1LjNMMTQ5LjYgNDE1Yy00LjkgMS44LTEwLjQgMS4yLTE0LjctMS44UzEyOCA0MDUuMiAxMjggNDAwYzAtMTEuNiA0LjItMjQuMiAxMC4zLTM1LjkgNi4zLTEyIDE1LjMtMjQuMyAyNi40LTM1LjR6TTEyMi42IDE1OS4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LEVUcj1XUmUsSVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMDggMCAwLTY0IDIwOCAwek0zMjAgMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bTY0LTY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTI4OCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMHptLTg4LTk2bC42IDBjLTUuNCA5LjQtOC42IDIwLjMtOC42IDMyIDAgMTMuMiA0IDI1LjQgMTAuOCAzNS42LTI0LjkgOC43LTQyLjggMzIuNS00Mi44IDYwLjQgMCAxMS43IDMuMSAyMi42IDguNiAzMmwtOC42IDBDNzEuNiA0NDggMCAzNzYuNCAwIDI4OGwwLTYxLjdjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDExLjYtMTEuNkM4Mi41IDc3LjUgMTE1LjEgNjQgMTQ5IDY0bDI3IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MGwwLTU2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNTZjMCAzOS44IDMyLjIgNzIgNzIgNzJ6Il19LFBUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cCIsaWNvbjpbMzg0LDUxMixbODU5M10sImYwNjIiLCJNMjE0LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcwLjcgMTA1LjQgMTA1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHoiXX0sTlRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzLXN0YWNrZWQiLGljb246WzUxMiw1MTIsW10sImU0ZTYiLCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHptMzIgMzUybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMjAgMTkybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTE4Mi42LTMuOWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0NS4zIDQ1LjNjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTQ1LjMgNDUuM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMOTIuMSAyNzguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNDUuMy00NS4zek0zMiAzODRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxHUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtY29tYmF0YW50IixpY29uOls1NzYsNTEyLFsiY2hpbGQtcmlmbGUiXSwiZTRlMCIsIk0xNzYuNSAxMjhhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0xNiAzNTJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5Mi4yIDIwLjkgMzMuMmM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTM5LjktNjMuM0MyNjYuOCAxODQgMjIzLjMgMTYwIDE3Ni41IDE2MFM4Ni4yIDE4NCA2MS4zIDIyMy42TDIxLjQgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwbDIwLjktMzMuMiAwIDE5Mi4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OC41IDBsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN2wwLTExNi4zYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sT1RyPUdSZSxSVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdC1wYXRjaGVzIixpY29uOls0NDgsNTEyLFtdLCJlMDg2IiwiTTIwMCAyOTMuOUwyMDAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNzAuNWMwLTkuNSAyLjgtMTguNyA4LjEtMjYuNmw0Ny45LTcxLjhjNS4zLTcuOSA4LjEtMTcuMSA4LjEtMjYuNkw2NCA0OEM2NCAyMS41IDg1LjUgMCAxMTIgMGwzLjUgMGMuMyAwIC42IDAgMSAwIC42IDAgMS4yIDAgMS44IDAgMTguOCAwIDM0LjEgOS43IDQ0LjEgMTguOCA5LjMgOC40IDI4LjUgMjEuMiA2MS43IDIxLjJzNTIuNC0xMi44IDYxLjctMjEuMmMxMC05LjEgMjUuMy0xOC44IDQ0LjEtMTguOCAuNiAwIDEuMiAwIDEuOCAwIC4zIDAgLjYgMCAxIDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ny41YzAgOS41IDIuOCAxOC43IDguMSAyNi42bDQ3LjkgNzEuOGM1LjMgNy45IDguMSAxNy4xIDguMSAyNi42TDQ0OCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEwNCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3MC4xYzAtMy45IC41LTcuOCAxLjQtMTEuNkwzMDMuNiA2NS40QzI4NS45IDc3LjIgMjU5LjggODggMjI0IDg4cy02MS45LTEwLjgtNzkuNi0yMi42bDU0LjIgMjE2LjhjMSAzLjggMS40IDcuNyAxLjQgMTEuNnpNOTYgNDU2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNNjMuNSAyNTUuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3TDc5IDI4OCA2My41IDMwMy41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdzMTIuMyA0LjcgMTcgMEw5NiAzMDUgMTExLjUgMzIwLjVjNC43IDQuNyAxMi4zIDQuNyAxNyAwczQuNy0xMi4zIDAtMTdMMTEzIDI4OCAxMjguNSAyNzIuNWM0LjctNC43IDQuNy0xMi4zIDAtMTdzLTEyLjMtNC43LTE3IDBMOTYgMjcxIDgwLjUgMjU1LjVjLTQuNy00LjctMTIuMy00LjctMTcgMHpNMzA0IDI4MGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxZUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcy1lbXB0eSIsaWNvbjpbNTEyLDUxMixbImdsYXNzLW1hcnRpbmkiXSwiZjAwMCIsIk0zMiAzMkMxOS4xIDMyIDcuNCAzOS44IDIuNCA1MS44Uy4yIDc3LjUgOS40IDg2LjZsMjE0LjYgMjE0LjYgMCAxNDYuNy02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMTQ2LjcgMjE0LjYtMjE0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzIgNDgwIDMyTDMyIDMyek0yNTYgMjQyLjdMMTA5LjMgOTYgNDAyLjcgOTYgMjU2IDI0Mi43eiJdfSxGVHI9WVJlLEJUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduZXQiLGljb246WzQ0OCw1MTIsWzEyOTUyMl0sImYwNzYiLCJNMCAxNzZMMCAyODhDMCA0MTEuNyAxMDAuMyA1MTIgMjI0IDUxMlM0NDggNDExLjcgNDQ4IDI4OGwwLTExMi0xMjggMCAwIDExMmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExMi0xMjggMHptMC00OGwxMjggMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRsMCA2NHptMzIwIDBsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NHoiXX0sSFRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYmFycmllciIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgMjY2LjMgMTQ5LjIgOTYgNjQgOTYgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNS4yIDk2bC03NC4zIDAtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuM3pNMzYyLjggMjg4bDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zek0yMDIuOCA5NmwtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuMy03NC4zIDB6bTI4OCAxOTJsODUuMiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My43LTg1LjIgMTcwLjN6Il19LEtSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzLWRyYWZ0aW5nIixpY29uOls1MTIsNTEyLFsiZHJhZnRpbmctY29tcGFzcyJdLCJmNTY4IiwiTTk5LjMgMjU2LjFsNjkuNC0xMTkuOWMtNS42LTEyLjItOC44LTI1LjgtOC44LTQwLjIgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDE0LjMtMy4xIDI3LjktOC44IDQwLjJsNDQuNCA3Ni43Yy0yMy4xIDI2LTUzLjcgNDUuMS04OC40IDUzLjhMMjU2IDE5MS45IDE4Ny45IDMwOS41YzIxLjUgNi44IDQ0LjMgMTAuNSA2OC4xIDEwLjUgNzAuNyAwIDEzMy44LTMyLjcgMTc0LjktODQgMTEuMS0xMy44IDMxLjItMTYgNDUtNXMxNiAzMS4yIDUgNDVjLTUyLjcgNjUuOC0xMzMuOSAxMDgtMjI0LjggMTA4LTM1LjQgMC02OS40LTYuNC0xMDAuNy0xOC4xTDk4LjcgNDYzLjdDOTQgNDcxLjggODcgNDc4LjQgNzguNiA0ODIuNkwyMy4yIDUxMC4zYy01IDIuNS0xMC45IDIuMi0xNS42LS43UzAgNTAxLjUgMCA0OTZsMC01NS40YzAtOC40IDIuMi0xNi43IDYuNS0yNC4xbDYwLTEwMy43Yy0xMi44LTExLjItMjQuNi0yMy41LTM1LjMtMzYuOC0xMS4xLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1YzUuNyA3LjEgMTEuOCAxMy44IDE4LjIgMjAuMXpNMzgxLjEgNDA3LjljMzIuNS0xMyA2Mi40LTMxIDg4LjktNTIuOWwzNS42IDYxLjVjNC4yIDcuMyA2LjUgMTUuNiA2LjUgMjQuMWwwIDU1LjRjMCA1LjUtMi45IDEwLjctNy42IDEzLjZzLTEwLjYgMy4yLTE1LjYgLjdsLTU1LjQtMjcuN2MtOC40LTQuMi0xNS40LTEwLjgtMjAuMS0xOC45bC0zMi4zLTU1Ljh6TTI1NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxxVHI9S1JlLFZUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVyc29uLWNvbmZpbmVkIixpY29uOls0NDgsNTEyLFtdLCJlNTc3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTk2IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem04MCAxMDRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEwMi4xYzAgMzYuNC0yOS41IDY1LjktNjUuOSA2NS45LTE3LjUgMC0zNC4zLTYuOS00Ni42LTE5LjNsLTU0LjctNTQuNy0yOC4xIDU2LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsNDgtOTZjNC42LTkuMiAxMy4zLTE1LjYgMjMuNS0xNy4zczIwLjUgMS43IDI3LjggOWw0MS40IDQxLjQgMC01OC43eiJdfSxqVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhdGUtd2hlYXQiLGljb246WzUxMiw1MTIsW10sImU1NWEiLCJNMTc2IDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZjMC04LjggNy4yLTE2IDE2LTE2ek01NiA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM0Mi43IDY0IDU2IDY0ek0yNCAxMzZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTg0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgNDhjMC04LjggNy4yLTE2IDE2LTE2IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZ6TTQwMCAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTYwbDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zNTIgMTc2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTMuNSAzNDcuNkMxLjYgMzMyLjkgMTMgMzIwIDI3LjggMzIwbDQ1Ni40IDBjMTQuOCAwIDI2LjIgMTIuOSAyNC40IDI3LjYtNi4zIDUwLjItNDQuNCA4OS40LTkyLjYgOTguNGwwIDJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTJjLTQ4LjItOS04Ni4zLTQ4LjItOTIuNS05OC40eiJdfSxaUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbi1oYW5naW5nIixpY29uOls1MTIsNTEyLFsic2lnbiJdLCJmNGQ5IiwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTItMzIgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGwzMiAwIDAtMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHpNMjA4IDE3NmwyNDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjQwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxVVHI9WlJlLFFSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItYmF0dGVyeSIsaWNvbjpbNTEyLDUxMixbImJhdHRlcnktY2FyIl0sImY1ZGYiLCJNODAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE2IDB6TTM5MiAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMi0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTMyek02NCAyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMjE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sV1RyPVFSZSxEdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpcnQiLGljb246WzY0MCw1MTIsWzEyODA4NSwidC1zaGlydCIsInRzaGlydCJdLCJmNTUzIiwiTTMyMC4yIDExMmM0NC4yIDAgODAtMzUuOCA4MC04MGw1My41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNjE3LjYgMTY5LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTUwLjcgNTAuN2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNCAwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTkyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMjIuOSAyMTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTQxLjUgNTAuN2MxMi0xMiAyOC4zLTE4LjcgNDUuMy0xOC43bDUzLjUgMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHoiXX0sR1RyPUR1ZSxZVHI9RHVlLEtUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhZ3JhcGgiLGljb246WzQ0OCw1MTIsWzE4Ml0sImYxZGQiLCJNMTYwIDBMNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00MTYtNDggMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MC00OCAwQzcxLjYgMzIwIDAgMjQ4LjQgMCAxNjBTNzEuNiAwIDE2MCAweiJdfSxYUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGVzLWJ1bGsiLGljb246WzU3Niw1MTIsWyJtYWlsLWJ1bGsiXSwiZjY3NCIsIk0xMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDE2MCA4MCAwIDAtMzJjMC01MyA0My05NiA5Ni05NmwyMDggMCAwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDExMiAwek0yNDAgMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyIDgwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDExMiAxNjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtMjg4IDB6bTIwMCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMC40IDE1Ni42IDg2LjJjMS4xIC42IDIuMiAuOSAzLjQgLjlzMi40LS4zIDMuNC0uOUwzMjAgMzE0LjQgMzIwIDMwNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyNTZ6TTMyMCAzNjkuMkwxODYuNiA0NDIuNmMtOC4xIDQuNS0xNy4zIDYuOC0yNi42IDYuOHMtMTguNC0yLjQtMjYuNi02LjhMMCAzNjkuMiAwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk0Ljh6Il19LFpUcj1YUmUsUVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1aXRhciIsaWNvbjpbNTEyLDUxMixbXSwiZjdhNiIsIk00NjUgN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMzgzIDU1Yy0yLjQgMi40LTQuMyA1LjMtNS41IDguNWwtMTUuNCA0MS03Ny41IDc3LjZjLTQ1LjEtMjkuNC05OS4zLTMwLjItMTMxIDEuNi0xMSAxMS0xOCAyNC42LTIxLjQgMzkuNi0zLjcgMTYuNi0xOS4xIDMwLjctMzYuMSAzMS42LTI1LjYgMS4zLTQ5LjMgMTAuNy02Ny4zIDI4LjYtNDQuOCA0NC44LTM2LjQgMTI1LjggMTguNyAxODAuOVMxODMuNiA1MjggMjI4LjQgNDgzLjJjMTcuOS0xNy45IDI3LjQtNDEuNyAyOC42LTY3LjMgLjktMTcgMTUtMzIuMyAzMS42LTM2LjEgMTUtMy40IDI4LjYtMTAuNSAzOS42LTIxLjQgMzEuOC0zMS44IDMxLTg1LjkgMS42LTEzMWw3Ny42LTc3LjYgNDEtMTUuNGMzLjItMS4yIDYuMS0zLjEgOC41LTUuNWw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0NjUgN3pNMjA4IDI1NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LFhUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZSIsaWNvbjpbNTEyLDUxMixbMTI5NTIzXSwiZjBmMiIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDI0IDIyNCAwIDAtNDI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNDE2IDk2bDAgMzg0IDMyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDB6TTk2IDQ4MGwwLTM4NC0zMiAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMiAweiJdfSxKUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zbDEwNCAxMDRjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTU2IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMDQtMTA0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAweiJdfSxKVHI9SlJlLGVMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmIixpY29uOlszMjAsNTEyLFsxMDJdLCI0NiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSx0THI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieG1hcmtzLWxpbmVzIixpY29uOls2NDAsNTEyLFtdLCJlNTlhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2ek03IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNMjY1IDE2N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTV6TTQ1NSAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6Il19LGVGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1vY2VhbmlhIixpY29uOls1MTIsNTEyLFsiZ2xvYmUtb2NlYW5pYSJdLCJlNDdiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMTUwLjZjMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDEuNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2ek00MzIgMjU2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00MTEuMyAzNzkuM2wtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42ek0yMjQgNDMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6bS05Ni04MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOC43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ4LTQ4YzQuMi00LjIgMTAtNi42IDE2LTYuNmw2LjYgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNiA3LjItMTYgMTYtMTZsNi42IDBjNiAwIDExLjggMi40IDE2IDYuNmw0OCA0OGM2IDYgOS40IDE0LjEgOS40IDIyLjZsMCA1MC43YzAgMTcuNy0xNC4zIDMyLTMyIDMybC01MC43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xMy4zLTEzLjNjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEwxMjggMzUyeiJdfSxyTHI9ZUZlLGFMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGIzIiwiTTQxLTI1QzMxLjYtMzQuMyAxNi40LTM0LjMgNy0yNVMtMi4zLS40IDcgOUw1MzUgNTM3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNi05Ni42YzQ0LjQtNDMuMiA3MS42LTEwMS44IDcxLjYtMTY2LjUgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MC02MyAwLTEyMC44IDIxLjQtMTY1LjQgNTYuOEw0MS0yNXptMTkuNCAxNTVDNDIuMiAxNjMgMzIgMjAwLjMgMzIgMjM5LjkgMzIgMjk0LjIgNTEuMiAzNDQuMiA4My42IDM4NC40TDM0LjggNDc2LjdjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNVM1Ni4xIDUxNCA2NS41IDUxMGwxMTguNC01MC43YzMxLjggMTMuMyA2Ny4xIDIwLjcgMTA0LjEgMjAuNyAzNi40IDAgNzAuOS03LjEgMTAyLjMtMTkuOUw2MC4zIDEzMC4xeiJdfSxpTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxheSIsaWNvbjpbNDQ4LDUxMixbOTY1NF0sImYwNGIiLCJNOTEuMiAzNi45Yy0xMi40LTYuOC0yNy40LTYuNS0zOS42IC43UzMyIDU3LjkgMzIgNzJsMCAzNjhjMCAxNC4xIDcuNSAyNy4yIDE5LjYgMzQuNHMyNy4yIDcuNSAzOS42IC43bDMzNi0xODRjMTIuOC03IDIwLjgtMjAuNSAyMC44LTM1LjFzLTgtMjguMS0yMC44LTM1LjFsLTMzNi0xODR6Il19LHNMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsLWNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZTU5NiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYxLjRjLTY2LjEgMzAuMy0xMTIgOTcuMS0xMTIgMTc0LjYgMCAzOS43IDEyIDc2LjYgMzIuNyAxMDcuMi0xMC4zIDMuMS0yMS4zIDQuOC0zMi43IDQuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHptOTYgMzM2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxuTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjOSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LG9Mcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZWRpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUwZGYiLCJNMjMyIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjYuNUM4OC44IDczLjkgMTYgMTU2LjQgMTYgMjU2Uzg4LjggNDM4LjEgMTg0IDQ1My41bDAgMjYuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQuNmM0Ni44LTMuNyA4OS4xLTIzLjYgMTIxLjMtNTMuOSAxMi45LTEyLjEgMTMuNC0zMi40IDEuMy00NS4ycy0zMi40LTEzLjQtNDUuMi0xLjNjLTIwLjcgMTkuNi00Ny42IDMyLjctNzcuMyAzNi4ybDAtMjcwLjFjMjkuOCAzLjUgNTYuNiAxNi42IDc3LjMgMzYuMiAxMi45IDEyLjEgMzMuMSAxMS41IDQ1LjItMS4zczExLjUtMzMuMS0xLjMtNDUuMkMzMjEuMSA4MC4yIDI3OC44IDYwLjMgMjMyIDU2LjZMMjMyIDMyem0tNDggOTEuOGwwIDI2NC40QzEyNC4zIDM3My44IDgwIDMyMC4xIDgwIDI1NnM0NC4zLTExNy44IDEwNC0xMzIuMnoiXX0sbExyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1enpsZS1waWVjZSIsaWNvbjpbNTEyLDUxMixbMTI5NTEzXSwiZjEyZSIsIk0yMjQgMGMzNS4zIDAgNjQgMjEuNSA2NCA0OCAwIDEwLjQtNC40IDIwLTEyIDI3LjktNi42IDYuOS0xMiAxNS4zLTEyIDI0LjkgMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4ybDQ0LjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ0LjhjMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4yIDkuNSAwIDE4LTUuNCAyNC45LTEyIDcuOS03LjUgMTcuNS0xMiAyNy45LTEyIDI2LjUgMCA0OCAyOC43IDQ4IDY0cy0yMS41IDY0LTQ4IDY0Yy0xMC40IDAtMjAuMS00LjQtMjcuOS0xMi02LjktNi42LTE1LjMtMTItMjQuOS0xMi0xNSAwLTI3LjIgMTIuMi0yNy4yIDI3LjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMiAwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjggMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzQgMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzQgNy40IDUuNSAxMy4yIDEzLjUgMTMuMiAyMi44IDAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMmMwLTEyLjggMTAuNC0yMy4yIDIzLjItMjMuMiA5LjIgMCAxNy4zIDUuOCAyMi44IDEzLjIgOC43IDExLjYgMjAuNyAxOC44IDM0IDE4LjggMjYuNSAwIDQ4LTI4LjcgNDgtNjRzLTIxLjUtNjQtNDgtNjRjLTEzLjMgMC0yNS4zIDcuMi0zNCAxOC44LTUuNSA3LjQtMTMuNSAxMy4yLTIyLjggMTMuMi0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMkwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMDguOCAwYzE1IDAgMjcuMi0xMi4yIDI3LjItMjcuMiAwLTkuNS01LjQtMTgtMTItMjQuOS03LjUtNy45LTEyLTE3LjUtMTItMjcuOSAwLTI2LjUgMjguNy00OCA2NC00OHoiXX0sY0xyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC11biIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMyIsIk00NzkuNSAyMjRDNDcxLjIgOTguOSAzNjcuMiAwIDI0MCAwIDEwNy41IDAgMCAxMDcuNSAwIDI0MGwwIDU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NGwxMjcuMyAwIDEyOC42IDEyMS40YzQuNSA0LjIgMTAuNCA2LjYgMTYuNSA2LjZsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuNSAwLTEuNS0xLjUgMC0xNzQuNSAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtLjUgMHpNMzIwIDQxNy4ybC03OC03My43IDMyLjQtNTUuNSA0NS42IDAgMCAxMjkuMnpNMjg1LjMgMTAzLjFsMzQuNyA1MiAwLTQzLjJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRsLTM0LjctNTIgMCA0My4yYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40ek0xNjAgMTEybDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LGRMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzcy13YXRlciIsaWNvbjpbMzg0LDUxMixbXSwiZTRmNCIsIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek03MyAxNTYuNWwtNi42LTkyLjUgMjUxLjMgMC02LjYgOTIuNS0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMC0yMC45LTEwLjQtNDUuNS0xMC40LTY2LjQgMC0xOS40IDkuNy00Mi4yIDkuNy02MS42IDBMNzMgMTU2LjV6Il19LHVMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmYyIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFMzNjkuMiA0MTYgMzc2IDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM0OTQuOCAzODQgNDg4IDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LHBMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLXNvYXAiLGljb246WzMyMCw1MTIsW10sImUwNmIiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4ek0yMjQgMzQ0YzAgMzUuMy0yOC43IDU2LTY0IDU2cy02NC0yMC43LTY0LTU2YzAtMzIuNSAzNy04MC45IDUwLjktOTcuOSAzLjItMy45IDguMS02LjEgMTMuMS02LjFzOS45IDIuMiAxMy4xIDYuMUMxODcgMjYzLjEgMjI0IDMxMS41IDIyNCAzNDR6Il19LGZMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyIDAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOS03LjcgOC41LTEyLjMgMTkuOC0xMi4zIDMyLjEgMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjMtMjIuOC0yMi44LTUzLjYtMzUuNi04NS44LTM1LjZMMzM2IDY0Yy0yMS4zIDAtMzkuMyAxMy45LTQ1LjYgMzMuMWw3NC41IDIzLjdjOC40IDIuNyAxMy4xIDExLjcgMTAuNCAyMC4xcy0xMS43IDEzLjEtMjAuMSAxMC40bC02Ny4xLTIxLjQgMCAuMS0yMDQtNjQuMUM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjkgOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6Il19LHRGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb2xseSIsaWNvbjpbNTc2LDUxMixbImRvbGx5LWJveCJdLCJmNDcyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsNzIuOSAwIDkyLjEgMjc2LjJjLTIyLjUgMTcuNi0zNyA0NS0zNyA3NS44IDAgNTMgNDMgOTYgOTYgOTYgNTIuNCAwIDk1LjEtNDIgOTYtOTQuM2wyMDIuMS02Ny40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJMMzMxLjggMzU3Yy0xNy4yLTIyLjEtNDMuOS0zNi41LTc0LTM3TDE2NS43IDQzLjhDMTU2LjkgMTcuNiAxMzIuNSAwIDEwNC45IDBMMzIgMHpNMjA4IDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0yODAuNSA4OS4zYy0yNS4yIDguMi0zOSAzNS4zLTMwLjggNjAuNWwzOS42IDEyMS43YzguMiAyNS4yIDM1LjMgMzkgNjAuNSAzMC44bDEyMS43LTM5LjZjMjUuMi04LjIgMzktMzUuMyAzMC44LTYwLjVMNDYyLjggODAuNWMtOC4yLTI1LjItMzUuMy0zOS02MC41LTMwLjhMMjgwLjUgODkuM3oiXX0saExyPXRGZSx5cGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXJjbGlwIixpY29uOls1MTIsNTEyLFsxMjgyMDZdLCJmMGM2IiwiTTIyNC42IDEyLjhjNTYuMi01Ni4yIDE0Ny40LTU2LjIgMjAzLjYgMHM1Ni4yIDE0Ny40IDAgMjAzLjZsLTE2NCAxNjRjLTM0LjQgMzQuNC05MC4xIDM0LjQtMTI0LjUgMHMtMzQuNC05MC4xIDAtMTI0LjVMMjkyLjUgMTAzLjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxODUgMzAxLjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNjQtMTY0YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTE2NCAxNjRjLTUzLjEgNTMuMS01My4xIDEzOS4yIDAgMTkyLjNzMTM5LjIgNTMuMSAxOTIuMyAwTDQyOC4zIDI4NC4zYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMzQzLjQgNDU5LjZjLTc4LjEgNzguMS0yMDQuNyA3OC4xLTI4Mi44IDBzLTc4LjEtMjA0LjcgMC0yODIuOGwxNjQtMTY0eiJdfSxtTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVtb2NyYXQiLGljb246WzY0MCw1MTIsW10sImY3NDciLCJNNjQgMzJjMC04LjkgMy44LTIwLjkgNi4yLTI3LjMgMS0yLjggMy44LTQuNyA2LjgtNC43IDEuOSAwIDMuOCAuNyA1LjIgMi4xTDEyOCA0NS43IDE3My44IDIuMWMxLjQtMS4zIDMuMi0yLjEgNS4yLTIuMSAzIDAgNS44IDEuOCA2LjggNC43IDIuNCA2LjUgNi4yIDE4LjQgNi4yIDI3LjMgMCAyNi41LTIxLjkgNDItMjkuNSA0Ni42bDc2LjIgNzIuNmM2IDUuNyAxMy45IDguOCAyMi4xIDguOGwyMTkuMiAwIDMyIDBjNDAuMyAwIDc4LjIgMTkgMTAyLjQgNTEuMmwxOS4yIDI1LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNGwtMTkuMi0yNS42Yy01LjMtNy0xMS44LTEyLjgtMTkuMi0xN2wwIDg3LjQtMzUyIDAtNDAuNC05NC4zYy0zLjktOS4yLTE1LjMtMTIuNi0yMy42LTdsLTQyLjEgMjhjLTkuMSA2LjEtMTkuNyA5LjMtMzAuNyA5LjNsLTIgMEMyMy45IDI1NiAwIDIzMi4xIDAgMjAyLjcgMCAxOTAuNiA0LjEgMTc4LjkgMTEuNyAxNjkuNEw4Ny42IDc0LjZDNzguMSA2Ny40IDY0IDUzLjIgNjQgMzJ6TTU0NCAzNTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTYwIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjggMzUyIDB6TTI1NiAyODBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNDgtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMzY4IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHJGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYXJyb3ctdXAtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJleHRlcm5hbC1saW5rLXNxdWFyZSJdLCJmMTRjIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTI3MiAyOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTQuMSAwLTEwMyAxMDNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMDMtMTAzIDAgNTQuMXoiXX0sZ0xyPXJGZSxiTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVycnkiLGljb246WzY0MCw1MTIsW10sImU0ZWEiLCJNMjI0IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOC0uMSAwYy4xIC43IC4xIDEuMyAuMSAyIDAgMzAuMi03LjYgNTkuOC0yMiA4Ni4zbC0xMi43IDIzLjMtLjYgMWMtMjIuMy0xMS4zLTQ2LjUtMTYuOC03MC44LTE2LjctMzIuNSAuMi02NC45IDEwLjctOTIuNCAzMS40LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTIzLjYgLjItNDcuMSA1LjctNjguNyAxNi43bC0uNi0xLTEyLjctMjMuM2MtMTQuNC0yNi41LTIyLTU2LjItMjItODYuMyAwLS43IDAtMS40IC4xLTJsLS4xIDAgMC0xMjhjMC00NC4yIDM1LjgtODAgODAtODBsNDggMCAwLTMyek0xNjAgMjU2bDMyMCAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMjg4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMnpNNDAzLjQgNDc2LjFDMzc5LjEgNDk0LjMgMzUxLjEgNTEyIDMyMCA1MTJzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSx4THI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVpdG8iLGljb246WzU3Niw1MTIsW10sImU1MmIiLCJNMTc4LjUgNDk1LjJjLTcuNSA5LjYtMjEgMTIuMS0zMS4zIDUuM1MxMzMuNSA0ODAgMTM4LjkgNDY5bDEuMi0yLjIgMzYuMi01OCAwLTQxIC4zLTRjLjYtMy45IDIuMi03LjcgNC42LTEwLjlsMzkuMy01Mi4yLTY2LjIgNTkuNWMtMTcgMTUuMy0zOSAyMy43LTYxLjkgMjMuOGwtOC4xIDBjLTQ2LjYgMC04NC40LTM3LjgtODQuNC04NC40IDAtNDMgMzIuNC03OS4yIDc1LjEtODMuOWwxMzAuNS0xNC41LTQ0LjgtMzguMy0yLjQtMi40Yy01LjMtNi03LjMtMTQuNC01LjMtMjIuM2wxMy4zLTUzLjQtMjUuOS0zOC45LTEuMy0yLjFjLTUuOC0xMC44LTIuNy0yNC42IDcuNC0zMS43IDEwLjEtNy4xIDIzLjctNS4xIDMxLjQgNC4zbDEuNSAyIDMyIDQ4IDEuNCAyLjJjMi44IDUuMyAzLjUgMTEuNiAyLjEgMTcuNmwtMTIuMyA0OS4yIDUzLjMgNDUuNyAwLTI4LjhjMC0xMS44IDYuNS0yMi4xIDE2LTI3LjdsMC02MC41IC4zLTMuM2MxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjdzMTQuMiA1LjUgMTUuNyAxMi43bC4zIDMuMiAwIDYwLjVjOS42IDUuNSAxNiAxNS44IDE2IDI3LjdsMCAyOC45IDUzLjQtNDUuOC0xMi4zLTQ5LjJjLTEuNS01LjktLjctMTIuMiAyLjEtMTcuNmwxLjQtMi4yIDMyLTQ4IDEuNS0yYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCA0Ni42LTM3LjggODQuNC04NC40IDg0LjRsLTguMSAwYy0yMi44IDAtNDQuOS04LjUtNjEuOS0yMy44bC02Ni4xLTU5LjUgMzkuMiA1Mi4yYzIuNCAzLjIgNCA3IDQuNiAxMC45bC4zIDQgMCA0MSAzNi4yIDU4IDEuMiAyLjFjNS40IDExIDIgMjQuNy04LjMgMzEuNXMtMjMuOCA0LjQtMzEuMy01LjNsLTEuNC0yLTQwLTY0LTEuNi0zLjFjLTEuNC0zLjEtMi4xLTYuNi0yLjEtMTAuMWwwLTM5LjgtMzIuNC00My4xIDAgNzQuN2MwIDE3LjctMTQuMyAzMi0zMiAzMi0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc0LjYtMzIuMyA0MyAwIDM5LjhjMCAzLjUtLjcgNi45LTIuMSAxMC4xbC0xLjYgMy4xLTQwIDY0LTEuNCAyeiJdfSx2THI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNGQxIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDQuN2MtMzUuNyAyLjktNjguNSAxNS42LTk2IDM1LjRsMC00YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQgMGMtMTMuOCAxOS4yLTI0LjEgNDEtMzAuMSA2NC41LTEuOS0uNC0zLjktLjUtNS45LS41bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDc0LjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDAuNy02Ny4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwyOC43IDI4LjctODkuNCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDg5LjQgMC0yOC43IDI4LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni01NmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNTYtNTZjLTYuMi02LjItMTYuNC02LjItMjIuNiAweiJdfSxhRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NiwiYXJyb3dzLWFsdC1oIl0sImYzMzciLCJNNTAyLjYgNDA2LjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgNDkyLjkgMzUyIDQ4MGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3pNOS40IDE1MC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxNjAgMTkuMSAxNjAgMzJsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZ6Il19LHlMcj1hRmUsd0xyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDc0IiwiTTI5NiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtMTUuNi0xNS42LTQwLjktMTUuNi01Ni42IDBzLTE1LjYgNDAuOSAwIDU2LjZjMzEuMiAzMS4yIDkuMSA4NC41LTM1IDg0LjUtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtNDQuMSA1My4zLTY2LjEgODQuNS0zNSAxNS42IDE1LjYgNDAuOSAxNS42IDU2LjYgMHMxNS42LTQwLjkgMC01Ni42Yy0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwQzM0OS4zIDEwNi4xIDI5NiA4NC4xIDI5NiA0MHpNMTYwIDIyNGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxrTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VtIixpY29uOls1MTIsNTEyLFsxMjgxNDJdLCJmM2E1IiwiTTExNi43IDMzLjhjNC41LTYuMSAxMS43LTkuOCAxOS4zLTkuOGwyNDAgMGM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjRsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MnptMzguNSAzOS44Yy0zLjMgMi41LTQuMiA3LTIuMSAxMC41TDIxMC41IDE3OS44IDYzLjMgMTkyYy00LjEgLjMtNy4zIDMuOC03LjMgOHMzLjIgNy42IDcuMyA4bDE5MiAxNmMuNCAwIC45IDAgMS4zIDBsMTkyLTE2YzQuMS0uMyA3LjMtMy44IDcuMy04cy0zLjItNy42LTcuMy04bC0xNDcuMi0xMi4zIDU3LjQtOTUuNmMyLjEtMy41IDEuMi04LjEtMi4xLTEwLjVzLTcuOS0yLTEwLjcgMUwyNTYgMTcyLjIgMTY1LjkgNzQuNmMtMi44LTMtNy40LTMuNC0xMC43LTF6Il19LFNMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQiLGljb246WzQ0OCw1MTIsWzEyODcwMV0sImY3ZDgiLCJNMjQgMEMxMC43IDAgMCAxMC43IDAgMjRTMTAuNyA0OCAyNCA0OGw4IDAgMCAxNDguOWMtMS45IDEuNC0zLjggMi45LTUuNiA0LjQtMTUuNSAxMy4yLTI2LjQgMzEuNi0yNi40IDU0LjYgMCA0Ni45IDE0LjMgODQuMSAzNyAxMTIuNSAxNC4yIDE3LjcgMzEuMSAzMS4zIDQ4LjUgNDEuOEw2NS42IDQ2OS45Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44Uzg1LjcgNTEyIDk2IDUxMmwyNTYgMGMxMC4zIDAgMTkuOS00LjkgMjYtMTMuM3M3LjctMTkuMSA0LjQtMjguOGwtMTkuOC01OS41YzE3LjQtMTAuNSAzNC4zLTI0LjEgNDguNS00MS44IDIyLjctMjguNCAzNy02NS41IDM3LTExMi41IDAtMjMuMS0xMC45LTQxLjUtMjYuNC01NC42LTEuOC0xLjUtMy43LTMtNS42LTQuNGwwLTE0OC45IDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFM0MzcuMyAwIDQyNCAwTDI0IDB6TTk2IDgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIyNCAyODhjLTg4LjQgMC0xNjAtMTQuMy0xNjAtMzJzNzEuNi0zMiAxNjAtMzIgMTYwIDE0LjMgMTYwIDMyLTcxLjYgMzItMTYwIDMyeiJdfSxNTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLWxlZnQiLGljb246WzE5Miw1MTIsW10sImU4MWIiLCJNMTI4IDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjE2QzAgMTQ5LjcgNTMuNyA5NiAxMjAgOTZsOCAweiJdfSxDTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbHMiLGljb246WzU3Niw1MTIsW10sImUxZjMiLCJNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6bTE3NiA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMTYwIDE1MmwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDExMmMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTUwNCAxNTkuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNTEyIDI2NGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTQ4IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEzOC43IDAgMTUyTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM5MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjY0eiJdfSx6THI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0LWJ1dHRvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjEwYSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yMjQgNDAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUF89e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MjE2NCwicmVjdGFuZ2xlLXRpbWVzIiwidGltZXMtcmVjdGFuZ2xlIiwid2luZG93LWNsb3NlIl0sImY0MTAiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTE2NyAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LF9Mcj1QXyxUTHI9UF8sTExyPVBfLERMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3cmVuY2giLGljb246WzU3Niw1MTIsWzEyODI5NV0sImYwYWQiLCJNNTA5LjQgOTguNmM3LjYtNy42IDIwLjMtNS43IDI0LjEgNC4zIDYuOCAxNy43IDEwLjUgMzcgMTAuNSA1Ny4xIDAgODguNC03MS42IDE2MC0xNjAgMTYwLTE3LjUgMC0zNC40LTIuOC01MC4yLThMMTQ2LjkgNDk4LjljLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHMtMjguMS03My43IDAtMTAxLjhMMjMyIDIxMC4yYy01LjItMTUuOC04LTMyLjYtOC01MC4yIDAtODguNCA3MS42LTE2MCAxNjAtMTYwIDIwLjEgMCAzOS40IDMuNyA1Ny4xIDEwLjUgMTAgMy44IDExLjggMTYuNSA0LjMgMjQuMWwtODguNyA4OC43Yy0zIDMtNC43IDcuMS00LjcgMTEuM2wwIDQxLjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDg4LjctODguN3oiXX0sWF89e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2gtY2FuIixpY29uOls0NDgsNTEyLFs2MTQ2MCwidHJhc2gtYWx0Il0sImYyZWQiLCJNMTM2LjcgNS45QzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjF6TTMyIDE0NGwzODQgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0em04OCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSwkTHI9WF8saUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzIixpY29uOls0NDgsNTEyLFsidGgiXSwiZjAwYSIsIk0zODQgOTZsMCA2NC02NCAwIDAtNjQgNjQgMHptMCAxMjhsMCA2NC02NCAwIDAtNjQgNjQgMHptMCAxMjhsMCA2NC02NCAwIDAtNjQgNjQgMHpNMjU2IDI4OGwtNjQgMCAwLTY0IDY0IDAgMCA2NHptLTY0IDY0bDY0IDAgMCA2NC02NCAwIDAtNjR6bS02NC02NGwtNjQgMCAwLTY0IDY0IDAgMCA2NHpNNjQgMzUybDY0IDAgMCA2NC02NCAwIDAtNjR6bTAtMTkybDAtNjQgNjQgMCAwIDY0LTY0IDB6bTEyOCAwbDAtNjQgNjQgMCAwIDY0LTY0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LEFMcj1pRmUsRUxyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpYmJvbiIsaWNvbjpbMzg0LDUxMixbMTI3ODk1XSwiZjRkNiIsIk0yMzUuMSAwYzMzLjQgMCA2NC41IDE3LjQgODEuOSA0NS45IDEuMiAyIDEzIDIxLjMgMzUuMyA1Ny44IDIxLjEgMzQuNSAxOC4zIDc4LjUtNyAxMTBMMjc4LjMgMjk3LjcgMzY0LjUgNDA2YzUuNSA2LjkgNC40IDE2LjktMi41IDIyLjVsLTgwIDY0Yy02LjkgNS41LTE3IDQuNC0yMi41LTIuNUwzOC42IDIxMy44QzEzLjMgMTgyLjMgMTAuNSAxMzguMyAzMS42IDEwMy44IDU0IDY3LjIgNjUuNyA0Ny45IDY3IDQ1LjkgODQuNCAxNy40IDExNS40IDAgMTQ4LjkgMGw4Ni4zIDB6TTE5MiAxODkuMmw0OC42LTYxLjItOTcuMyAwIDQ4LjYgNjEuMnpNNzUgMzM2LjJsODYuMiAxMDcuOC0zNi44IDQ2Yy01LjUgNi45LTE1LjYgOC0yMi41IDIuNWwtODAtNjRjLTYuOS01LjUtOC0xNS42LTIuNS0yMi41TDc1IDMzNi4yeiJdfSxJTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZmxhZyIsaWNvbjpbNTEyLDUxMixbXSwiZTUxYyIsIk0zNTItMzJMMjQwLTMyYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNDQtMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDIyNC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjI0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwIDAtNjQgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTQ4IDIyNGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6Il19LHNGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1kb3duLWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvd3MtYWx0Il0sImYwYjIiLCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzE3OS4xIDEyOCAxOTIgMTI4bDMyIDAgMCA5Ni05NiAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxMjggMzMyLjkgMTI4IDMyMGwwLTMyIDk2IDAgMCA5Ni0zMiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzODQgMzIwIDM4NGwtMzIgMCAwLTk2IDk2IDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzg0IDE3OS4xIDM4NCAxOTJsMCAzMi05NiAwIDAtOTYgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHoiXX0sUExyPXNGZSxOTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXNpZGUiLGljb246WzY0MCw1MTIsWzEyODY2M10sImY1ZTQiLCJNMTQ3IDEwNi43bC0yOS44IDg1LjMgMTIyLjkgMCAwLTk2LTc3LjkgMGMtNi44IDAtMTIuOSA0LjMtMTUuMSAxMC43ek00OC42IDE5My45TDg2LjUgODUuNkM5Ny44IDUzLjUgMTI4LjEgMzIgMTYyLjEgMzJMMzYwIDMyYzI1LjIgMCA0OC45IDExLjkgNjQgMzJsOTYuMiAxMjguM0M1ODcuMSAxOTYuNSA2NDAgMjUyLjEgNjQwIDMyMGwwIDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNi40IDBjLTQgNDQuOS00MS43IDgwLTg3LjYgODBzLTgzLjYtMzUuMS04Ny42LTgwbC0xNDQuNyAwYy00IDQ0LjktNDEuNyA4MC04Ny42IDgwcy04My42LTM1LjEtODcuNi04MGwtLjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC04MGMwLTMwLjEgMjAuNy01NS4zIDQ4LjYtNjIuMXpNNDQwIDE5MmwtNjcuMi04OS42Yy0zLTQtNy44LTYuNC0xMi44LTYuNGwtNzIgMCAwIDk2IDE1MiAwek0xNTIgNDMyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMzYwLTQwYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LG5GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUiXSwiZjgyOSIsIk0xNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjFDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2ek0zMiAxNDRsMzg0IDAtMjEuMSAzMjMuMUMzOTMuMyA0OTIuNCAzNzIuMyA1MTIgMzQ3IDUxMkwxMDEgNTEyYy0yNS4zIDAtNDYuMy0xOS42LTQ3LjktNDQuOUwzMiAxNDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sT0xyPW5GZSxSTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlmZS1yaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMWNkIiwiTTM2Ny4yIDQxMi41QzMzNS45IDQzNC45IDI5Ny41IDQ0OCAyNTYgNDQ4cy03OS45LTEzLjEtMTExLjItMzUuNWw1OC01OGMxNS44IDguNiAzNCAxMy41IDUzLjMgMTMuNXMzNy40LTQuOSA1My4zLTEzLjVsNTggNTh6bTkwLjcgLjhjMzMuOC00My40IDU0LTk4IDU0LTE1Ny4zUzQ5MS44IDE0Mi4xIDQ1OCA5OC43YzktMTIuNSA3LjktMzAuMS0zLjQtNDEuM1M0MjUuOCA0NSA0MTMuMyA1NEMzNjkuOSAyMC4yIDMxNS4zIDAgMjU2IDBTMTQyLjEgMjAuMiA5OC43IDU0Yy0xMi41LTktMzAuMS03LjktNDEuMyAzLjRTNDUgODYuMiA1NCA5OC43QzIwLjIgMTQyLjEgMCAxOTYuNyAwIDI1NlMyMC4yIDM2OS45IDU0IDQxMy4zYy05IDEyLjUtNy45IDMwLjEgMy40IDQxLjNTODYuMiA0NjcgOTguNyA0NThjNDMuNCAzMy44IDk4IDU0IDE1Ny4zIDU0czExMy45LTIwLjIgMTU3LjMtNTRjMTIuNSA5IDMwLjEgNy45IDQxLjMtMy40czEyLjQtMjguOCAzLjQtNDEuM3ptLTQ1LjUtNDYuMWwtNTgtNThjOC42LTE1LjggMTMuNS0zNCAxMy41LTUzLjNzLTQuOS0zNy40LTEzLjUtNTMuM2w1OC01OEM0MzQuOSAxNzYuMSA0NDggMjE0LjUgNDQ4IDI1NnMtMTMuMSA3OS45LTM1LjUgMTExLjJ6TTM2Ny4yIDk5LjVsLTU4IDU4Yy0xNS44LTguNi0zNC0xMy41LTUzLjMtMTMuNXMtMzcuNCA0LjktNTMuMyAxMy41bC01OC01OEMxNzYuMSA3Ny4xIDIxNC41IDY0IDI1NiA2NHM3OS45IDEzLjEgMTExLjIgMzUuNXpNMTU3LjUgMzA5LjNsLTU4IDU4Qzc3LjEgMzM1LjkgNjQgMjk3LjUgNjQgMjU2czEzLjEtNzkuOSAzNS41LTExMS4ybDU4IDU4Yy04LjYgMTUuOC0xMy41IDM0LTEzLjUgNTMuM3M0LjkgMzcuNCAxMy41IDUzLjN6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sRkxyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvcHlyaWdodCIsaWNvbjpbNTEyLDUxMixbMTY5XSwiZjFmOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjA1LjEgMzA2LjljMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtNDYuOSA0Ni45LTEyMi44IDQ2LjktMTY5LjcgMHMtNDYuOS0xMjIuOCAwLTE2OS43IDEyMi44LTQ2LjkgMTY5LjcgMGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDBzLTI4LjEgNzMuNyAwIDEwMS44eiJdfSxCTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wcmVzY3JpcHRpb24iLGljb246WzM4NCw1MTIsW10sImY1NzIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDIyLjUgMCA1OC40IDU1LTMzLjQgMzEuNmMtOS42IDkuMS0xMC4xIDI0LjMtLjkgMzMuOXMyNC4zIDEwLjEgMzMuOSAuOWwzNS40LTMzLjUgMzUuNiAzMy41YzkuNyA5LjEgMjQuOCA4LjYgMzMuOS0xczguNi0yNC44LTEtMzMuOWwtMzMuNi0zMS42IDMzLjYtMzEuOGM5LjYtOS4xIDEwLjEtMjQuMyAuOS0zMy45cy0yNC4zLTEwLjEtMzMuOS0uOWwtMzUuNyAzMy43LTQwLjktMzguNWMxMi45LTExLjcgMjEuMS0yOC42IDIxLjEtNDcuNSAwLTM1LjMtMjguNy02NC02NC02NGwtNTYgMHptMzIgODBsLTggMCAwLTMyIDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTI0IDB6Il19LEhMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlcmFzZXIiLGljb246WzU3Niw1MTIsW10sImYxMmQiLCJNMTc4LjUgNDE2bDEyMyAwIDY1LjMtNjUuMy0xNzMuNS0xNzMuNS0xMjYuNyAxMjYuNyAxMTIgMTEyek0yMjQgNDgwbC00NS41IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDE3IDM0NUM2LjEgMzM0LjEgMCAzMTkuNCAwIDMwNHM2LjEtMzAuMSAxNy00MUwyNjMgMTdDMjczLjkgNi4xIDI4OC42IDAgMzA0IDBzMzAuMSA2LjEgNDEgMTdMNTI3IDE5OWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFsLTEzNSAxMzUgMTIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAweiJdfSxvRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLXN0YXJ0IixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTEiXSwiZjI1MSIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNMjg4IDQzN2wwIDExLTE5MiAwIDAtMTFjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsNjcuOS02Ny45IDY3LjkgNjcuOWMxOCAxOCAyOC4xIDQyLjQgMjguMSA2Ny45eiJdfSxxTHI9b0ZlLGxGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMTI0LjcgMjQ0LjdsMTA0LTEwNGM0LjYtNC42IDExLjUtNS45IDE3LjQtMy41czkuOSA4LjMgOS45IDE0LjhsMCA1NiA5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA1NmMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVsLTEwNC0xMDRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42eiJdfSxWTHI9bEZlLGpMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV6ZWlyby1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMTUyIiwiTTI0MCA5NmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCA3MS42IDQ3LjEgMTMyLjMgMTEyIDE1Mi43TDE5MiAyNTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTIuOCAwIDIzLjMgMTAuMSAyNCAyMi43IDE1LjUtOS41IDMzLjUtMTQuNyA1Mi4zLTE0LjdsMTEuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMS44IDBjLTE4LjggMC0zNi4xIDEwLTQ1LjQgMjYuMy00LjUgNy45LTYuOSAxNi44LTYuOSAyNS45bDAgNzUuOGM0Mi41IDAgODEuMS0xNi42IDEwOS44LTQzLjYgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJDMzUzLjcgNDU2LjggMjk5LjUgNDgwIDI0MCA0ODAgMTE2LjMgNDgwIDE2IDM3OS43IDE2IDI1NlMxMTYuMyAzMiAyNDAgMzJjNTkuNSAwIDExMy43IDIzLjIgMTUzLjcgNjEuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNDMzIxLjEgMTEyLjYgMjgyLjUgOTYgMjQwIDk2eiJdfSxVTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21va2luZyIsaWNvbjpbNTc2LDUxMixbMTI4Njg0XSwiZjQ4ZCIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0zMjAgNDQ4bDk2IDAgMC0zMi05NiAwIDAgMzJ6TTAgNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyem01NzYtNDBsMCAxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sY0ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLXZlcnRpY2FsIixpY29uOls0NDgsNTEyLFsicG9sbCJdLCJmNjgxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTU2IDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTg0IDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4ek0yMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjA4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxXTHI9Y0ZlLEdMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTQwIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnoiXX0sWUxyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpb2hhemFyZCIsaWNvbjpbNTc2LDUxMixbOTc2M10sImY3ODAiLCJNMjYwIDEyLjZjMC04LjMtNy42LTE0LjUtMTUuNS0xMi4xLTYwLjkgMTguOC0xMDUuMSA3NS44LTEwNS4xIDE0My4xIDAgMjUuMSA2LjEgNDguNyAxNyA2OS41LTIxIDEuOC00MiA4LjItNjEuNSAxOS41LTU3LjkgMzMuNi04NC44IDEwMC4yLTcwLjkgMTYyLjUgMS45IDguNCAxMS40IDEyIDE4LjkgNy42IDUtMi45IDcuNi04LjYgNy4xLTE0LjQtLjMtMy4zLS40LTYuNi0uNC0xMC4xIDAtMTIzLjUgMTg0LjQtMTIzLjUgMTg0LjQgMCAwIDg4LjQtOTQuNSAxMTMuNi0xNDguMiA3NS40LTQuNS0zLjItMTAuNS0zLjktMTUuMy0xLjEtNyA0LjEtOC42IDEzLjYtMi43IDE5LjEgNDYuNiA0My44IDExOCA1My45IDE3Ni4xIDIwLjIgMTcuOS0xMC40IDMyLjgtMjMuOSA0NC41LTM5LjQgMTEuNyAxNS42IDI2LjYgMjkuMSA0NC41IDM5LjQgNTguMSAzMy43IDEyOS41IDIzLjYgMTc2LjEtMjAuMiA1LjktNS41IDQuMy0xNS4xLTIuNy0xOS4xLTQuOC0yLjgtMTAuOC0yLjEtMTUuMyAxLjEtNTMuNyAzOC4yLTE0OC4yIDEzLTE0OC4yLTc1LjQgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgMy40LS4xIDYuOC0uNCAxMC4xLS41IDUuOCAyLjEgMTEuNSA3LjEgMTQuNCA3LjQgNC4zIDE3IC44IDE4LjktNy42IDEzLjktNjIuMi0xMy0xMjguOS03MC45LTE2Mi41LTE5LjUtMTEuMy00MC40LTE3LjctNjEuNS0xOS41IDEwLjktMjAuOCAxNy00NC40IDE3LTY5LjUgMC02Ny4zLTQ0LjItMTI0LjMtMTA1LjEtMTQzLjEtNy45LTIuNC0xNS41IDMuOC0xNS41IDEyLjEgMCA1LjkgNCAxMSA5LjUgMTMuMiA4My40IDMzLjYgNzAuOCAxNzguNC0zNy44IDE3OC40UzE2Ny4xIDU5LjQgMjUwLjUgMjUuOGM1LjUtMi4yIDkuNS03LjMgOS41LTEzLjJ6TTI0OC40IDI4OGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek00MzUgMzE3LjdjLTE2LjIgMC0zMS40IDUuNS00Mi4xIDE1LTEwLjEgOS4xLTE4LjEgMjMuNC0xOC4xIDQ1LjYgMCAyMS4xIDcuMiAzNSAxNi41IDQ0LjEgMzIuMi0yNC42IDU1LjUtNjAuNSA2My45LTEwMS44LTYuMy0xLjktMTMuMi0zLTIwLjItM3pNMjAyIDM3OC4zYzAtMjIuMy04LTM2LjYtMTguMS00NS42LTEwLjctOS42LTI1LjktMTUtNDIuMS0xNS03IDAtMTMuOSAxLTIwLjIgMyA4LjQgNDEuMyAzMS42IDc3LjIgNjMuOSAxMDEuOCA5LjQtOS4xIDE2LjUtMjMuMSAxNi41LTQ0LjJ6bTQxLjItMjI0LjNjOSAxMC4yIDIzLjIgMTguMiA0NS4yIDE4LjJzMzYuMi04IDQ1LjItMTguMmM2LjctNy42IDExLjUtMTcuNSAxMy42LTI4LjQtMTguMy02LjgtMzguMi0xMC41LTU4LjgtMTAuNXMtNDAuNSAzLjctNTguOCAxMC41YzIuMiAxMC45IDYuOSAyMC44IDEzLjYgMjguNXoiXX0sZEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwtY29uY2llcmdlIixpY29uOls1MTIsNTEyLFsxMjg3MTgsImNvbmNpZXJnZS1iZWxsIl0sImY1NjIiLCJNMjE2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy4zQzEyNC44IDE1Ni43IDQwLjIgMjQzLjcgMzIuNiAzNTJsNDQ2LjkgMEM0NzEuOCAyNDMuNyAzODcuMiAxNTYuNyAyODAgMTQ1LjNsMC0zMy4zIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6TTI0IDQwMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0NjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCA0MDB6Il19LEtMcj1kRmUsWkxyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWhvcml6b250YWwiLGljb246WzU3Niw1MTIsW10sImY1NDciLCJNNDggMzg0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAzODR6Il19LFFMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3JzZSIsaWNvbjpbNTc2LDUxMixbMTI4MDE0XSwiZjZmMCIsIk00NDggMjM4LjFsMC03OC4xIDE2IDAgOS44IDE5LjZjMTIuNSAyNS4xIDQyLjIgMzYuNCA2OC4zIDI2IDIwLjUtOC4yIDMzLjktMjggMzMuOS01MC4xTDU3NiA4MGMwLTE5LjEtOC40LTM2LjMtMjEuNy00OGw1LjcgMGM4LjggMCAxNi03LjIgMTYtMTZTNTY4LjggMCA1NjAgMEw0NDggMEMzNzcuMyAwIDMyMCA1Ny4zIDMyMCAxMjhsLTE3MS4yIDBDMTE4LjEgMTI4IDkxLjIgMTQ0LjMgNzYuMyAxNjguOCAzMy4yIDE3NC41IDAgMjExLjQgMCAyNTZsMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTZjMC0xMy40IDYuNi0yNS4yIDE2LjctMzIuNSAxLjYgMTMgNi4zIDI1LjQgMTMuNiAzNi40bDI4LjIgNDIuNGM4LjMgMTIuNCA2LjQgMjguNy0xLjIgNDEuNi0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDMzLjcgMGMyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43IDAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44TDMyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2NC4zYzE5LjItMTkuMiAzMS41LTQ1LjcgMzItNzUuN2wwIDAgMC0xLjl6TTQ5NiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LFhMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMzItMzIgMEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDQ4IDQ0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyLTEyOCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMjI0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyLTQ0OCAweiJdfSxKTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaGlsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYSIsIk0zMjAtMzJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTM4NC41IDE0OWwtMTkuOC0xNi43IDExLjEgODguOGMxLjYgMTMuMi03LjcgMjUuMS0yMC44IDI2LjhzLTI1LjEtNy43LTI2LjgtMjAuOGwtNC40LTM1LTcuNiAwLTQuNCAzNWMtMS42IDEzLjItMTMuNiAyMi41LTI2LjggMjAuOHMtMjIuNS0xMy42LTIwLjgtMjYuOGwxMS4xLTg4LjgtMTkuOCAxNi43Yy0xMC4xIDguNi0yNS4zIDcuMy0zMy44LTIuOHMtNy4zLTI1LjMgMi44LTMzLjhsMjcuOS0yMy42QzI3MS4zIDcyLjggMjk1LjMgNjQgMzIwIDY0czQ4LjcgOC44IDY3LjYgMjQuN2wyNy45IDIzLjZjMTAuMSA4LjYgMTEuNCAyMy43IDIuOCAzMy44cy0yMy43IDExLjQtMzMuOCAyLjh6Il19LGVEcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpdGFsaWMiLGljb246WzM4NCw1MTIsW10sImYwMzMiLCJNMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01OC43IDAtMTMzLjMgMzIwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMCAxMzMuMy0zMjAtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHREcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraGFuZGEiLGljb246WzUxMiw1MTIsWzk3NzJdLCJmNjZkIiwiTTI0MC43IDhjOC45LTcuNCAyMS44LTcuNCAzMC43IDBsMzcuOCAzMS41YzguNyA3LjMgMTEuMSAxOS42IDYgMjkuNi0xLjIgMi40LTIuOCA1LjUtNC42IDkuMiAzNC4yIDE5LjIgNTcuMyA1NS44IDU3LjMgOTcuOHMtMjMuMSA3OC42LTU3LjMgOTcuOGMxLjggMy43IDMuMyA2LjggNC42IDkuMiA1LjEgMTAgMi43IDIyLjMtNiAyOS42bC0zNy4yIDMxIDAgMTkuOGMyMi45LTE1LjcgNDguNC0zMy4zIDc2LjctNTIuNyA0Mi44LTI5LjQgNjguNC03OCA2OC40LTEzMGwwLTExLjFjMC0yMy45LTcuMS00Ny4zLTIwLjQtNjcuMi01LjEtNy43LTQuNi0xNy44IDEuNy0yNC42IDYuNi03LjEgMTcuMi04LjEgMjUuMi0yLjggMjcuNSAxOC4xIDg5LjQgNjcuNSA4OS40IDE0OS4xIDAgNDYuNS0yMC4yIDg4LjYtNDEuOCAxMjAuNC0yMS42IDMyLTQ1LjYgNTUtNTUuMyA2My44LTcuOCA3LjEtMTkgNy45LTI3LjYgM2wtNzAuOC00MC4zLTMyLjcgMjIuNSA0NS41IDMxLjNjMS44LS40IDMuNy0uNyA1LjctLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEyLjIgMC0yMi4zLTkuMS0yMy44LTIxbC00MC4yLTI3LjYgMCAyOC45YzkuNiA1LjUgMTYgMTUuOSAxNiAyNy43IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTEuOCA2LjQtMjIuMiAxNi0yNy43bDAtMjguMS00MC4zIDI3LjdjLTEuOCAxMS40LTExLjggMjAuMS0yMy43IDIwLjEtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyLjIgMCA0LjQgLjMgNi41IC45bDQ1LjgtMzEuNS0zMi43LTIyLjUtNzAuOCA0MC4zYy04LjcgNC45LTE5LjggNC4xLTI3LjYtMy05LjctOC44LTMzLjctMzEuOS01NS4zLTYzLjgtMjEuNS0zMS44LTQxLjgtNzMuOS00MS44LTEyMC40IDAtODEuNyA2MS45LTEzMS4xIDg5LjQtMTQ5LjEgOC4xLTUuMyAxOC42LTQuMyAyNS4yIDIuOCA2LjQgNi45IDYuOCAxNyAxLjcgMjQuNi0xMy4zIDE5LjktMjAuNCA0My4zLTIwLjQgNjcuMmwwIDExLjFjMCA1MS45IDI1LjYgMTAwLjYgNjguNCAxMzAgMjguNCAxOS42IDUzLjcgMzYuOSA3NS42IDUybDAtMTkuMS0zNy4yLTMxYy04LjctNy4zLTExLjEtMTkuNi02LTI5LjYgMS4yLTIuNCAyLjgtNS41IDQuNi05LjItMzQuMi0xOS4yLTU3LjMtNTUuOC01Ny4zLTk3LjhzMjMuMS03OC42IDU3LjMtOTcuOGMtMS44LTMuNy0zLjMtNi44LTQuNi05LjItNS4xLTEwLTIuNy0yMi4zIDYtMjkuNkwyNDAuNyA4ek0yMjAuMyAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xYzYuOC0xOS4yIDExLjgtMzguNCAxMS44LTUzLjFzLTQuOS0zMy45LTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xYy02LjggMTkuMi0xMS44IDM4LjQtMTEuOCA1My4xczQuOSAzMy45IDExLjggNTMuMXoiXX0sdUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZnJvd24tb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4NTUwLCJmcm93bi1vcGVuIl0sImY1N2EiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44eiJdfSxyRHI9dUZlLHdwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjayIsaWNvbjpbNDQ4LDUxMixbMTAwMDMsMTAwMDRdLCJmMDBjIiwiTTQzNC44IDcwLjFjMTQuMyAxMC40IDE3LjUgMzAuNCA3LjEgNDQuN2wtMjU2IDM1MmMtNS41IDcuNi0xNCAxMi4zLTIzLjQgMTMuMXMtMTguNS0yLjctMjUuMS05LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTAxLjUgMTAxLjUgMjM0LTMyMS43YzEwLjQtMTQuMyAzMC40LTE3LjUgNDQuNy03LjF6Il19LGFEcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaW5nZXJwcmludCIsaWNvbjpbNTEyLDUxMixbXSwiZjU3NyIsIk00OCAyNTZjMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4IDYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjUgOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDAgMTE0LjYgMCAwIDExNC42IDAgMjU2bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwem00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMWwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjYtMTUuMiA1LTE4LjcgMjMuNy04LjMgMzUuOSA3LjEgOC4zIDE4LjggMTAuOCAyOS40IDcuOSAxMC42LTIuOSAyMS44LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDI0LjljMCAyNS4yLTEuNSA1MC4zLTQuNCA3NS4zLTEuNyAxNC42IDkuNCAyNy44IDI0LjIgMjcuOCAxMS44IDAgMjEuOS04LjYgMjMuMy0yMC4zIDMuMy0yNy40IDUtNTUgNS04Mi43bDAtMjQuOWMwLTk3LjItNzguOC0xNzYtMTc2LTE3NnpNMTUwLjcgMTQ4LjdjLTkuMS0xMC42LTI1LjMtMTEuNC0zMy45LS40LTIzLjEgMjkuOC0zNi44IDY3LjEtMzYuOCAxMDcuN2wwIDI0LjljMCAyNC4yLTIuNiA0OC40LTcuOCA3MS45LTMuNCAxNS42IDcuOSAzMS4xIDIzLjkgMzEuMSAxMC41IDAgMTkuOS03IDIyLjItMTcuMyA2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOGwwLTI0LjljMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMSA3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NmwwIDI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjEtMy44IDE0LjMgNi43IDI5IDIxLjUgMjkgOS41IDAgMTcuOS02LjIgMjAuNC0xNS40IDEwLjUtMzkgMTUuOS03OS4yIDE1LjktMTE5LjdsMC0yNC45YzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAyNC45YzAgMzYuMy0zLjUgNzIuNC0xMC40IDEwNy45LTIuNyAxMy45IDcuNyAyNy4yIDIxLjggMjcuMiAxMC4yIDAgMTktNyAyMS0xNyA3LjctMzguOCAxMS42LTc4LjMgMTEuNi0xMTguMWwwLTI0LjljMC01My00My05Ni05Ni05NnptMjQgOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNC45YzAgNTkuOS0xMSAxMTkuMy0zMi41IDE3NS4ybC01LjkgMTUuM2MtNC44IDEyLjQgMS40IDI2LjMgMTMuOCAzMXMyNi4zLTEuNCAzMS0xMy44bDUuOS0xNS4zQzI2Ny45IDQxMS45IDI4MCAzNDYuNyAyODAgMjgwLjlsMC0yNC45eiJdfSxpRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcmdpbmctc3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjVlNyIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTI3LjdjLTMyLjUtMTAuMi01Ni00MC41LTU2LTc2LjNsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCAzMiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCAzNS44LTIzLjUgNjYuMS01NiA3Ni4zTDUyMCAzODBjMCAzNy42LTMwLjQgNjgtNjggNjhzLTY4LTMwLjQtNjgtNjhsMC0xMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwwIDEyOS40YzkuMyAzLjMgMTYgMTIuMiAxNiAyMi42IDAgMTMuMy0xMC43IDI0LTI0IDI0TDcyIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC41IDYuNy0xOS4zIDE2LTIyLjZMNjQgNjR6bTgyLjcgMTI1LjdsMzkgMC0yMC45IDY2LjljLTIuNCA3LjYgMy4zIDE1LjQgMTEuMyAxNS40IDIuOSAwIDUuNi0xIDcuOC0yLjlsOTQuNi04MmMzLjEtMi43IDQuOS02LjYgNC45LTEwLjcgMC03LjgtNi4zLTE0LjEtMTQuMS0xNC4xbC0zOSAwIDIwLjktNjYuOWMyLjQtNy42LTMuMy0xNS40LTExLjMtMTUuNC0yLjkgMC01LjYgMS03LjggMi45bC05NC42IDgyYy0zLjEgMi43LTQuOSA2LjYtNC45IDEwLjcgMCA3LjggNi4zIDE0LjEgMTQuMSAxNC4xeiJdfSxzRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJmNTAyIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMyOS43IDAgNTcuNyA3LjMgODIuMyAyMC4xbDAgNC4zYy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6bTMwMS43IC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0scEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1zY3JlZW4tYnV0dG9uIixpY29uOlszODQsNTEyLFsibW9iaWxlLWFsdCJdLCJmM2NkIiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHptNjQgMGwwIDMwNCAyMjQgMCAwLTMwNC0yMjQgMHpNMTkyIDQ3MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6Il19LG5Ecj1wRmUsb0RyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvci1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU0YWEiLCJNMzIwIDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6TTI4OCAwYy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM0w4MCAzMDcuOWMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxmRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctd2l0aC1jYW5lIixpY29uOls1NzYsNTEyLFsiYmxpbmQiXSwiZjI5ZCIsIk0yMjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2MCAyMDUuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNC40LTM0LjRjMjMuMi0yMy4yIDU0LjYtMzYuMiA4Ny4zLTM2LjIgMzYuMSAwIDcwLjMgMTUuOCA5My44IDQzLjFsNjguNiA4MGMxMS41IDEzLjQgOS45IDMzLjYtMy41IDQ1LjFzLTMzLjYgOS45LTQ1LjEtMy41bC01NS43LTY1IDAgMTE4LjYgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMTYwLjEgMzcxem0yMzMuNS02Mi4yYzEwLjYtOCAyNS42LTUuOCAzMy42IDQuOGwxNDQgMTkyYzggMTAuNiA1LjggMjUuNi00LjggMzMuNnMtMjUuNiA1LjgtMzMuNi00LjhsLTE0NC0xOTJjLTgtMTAuNi01LjgtMjUuNiA0LjgtMzMuNnoiXX0sbERyPWZGZSxoRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS13YXZlZm9ybSIsaWNvbjpbMzg0LDUxMixbImZpbGUtbWVkaWNhbC1hbHQiXSwiZjQ3OCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTYgNjAuMyAwIDQ4LjggNjIuN2M1LjEgNi42IDEzLjMgMTAgMjEuNiA5LjFzMTUuNS02LjEgMTkuMS0xMy42bDQyLjktOTEuMiA5LjkgMTkuOGM0LjEgOC4xIDEyLjQgMTMuMyAyMS41IDEzLjNsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTcuMiAwLTI1LjQtNTAuN2MtNC4xLTguMi0xMi42LTEzLjQtMjEuOC0xMy4zcy0xNy41IDUuNS0yMS40IDEzLjhsLTQ3LjMgMTAwLjYtMzItNDEuMUM4Ni40IDMwNy40IDc5LjQgMzA0IDcyIDMwNEwwIDMwNCAwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6Il19LGNEcj1oRmUsZERyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNyYWNrIixpY29uOls1MTIsNTEyLFtdLCJlM2IxIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODYuNCAwLTMxLjMtNTIuMmMtNC4xLTYuOC0yLjYtMTUuNSAzLjUtMjAuNUwyNTYgMzY4IDE5NS44IDI4NS4yYy0xMC45LTE1IDguMi0zMy41IDIyLjgtMjJsMTE3LjkgOTIuNmM4IDYuMyA4LjIgMTguNCAuNCAyNC45TDI1NiA0NDggMjk0LjQgNTEyIDQwMCA1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6Il19LHVEcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtd2l6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmNmU4IiwiTTY0IDQwMGw4NS43LTIwOC4yYzE3LTQxLjMgNDcuOC03NS4zIDg3LjItOTYuM0wzODMuOCAxNy4yYzEyLjMtNi42IDI2LjUgNC43IDIzIDE4LjJMMzY5LjYgMTc3LjhjLTEuMSA0LjEtMS42IDguMy0xLjYgMTIuNiAwIDYuMyAxLjIgMTIuNiAzLjYgMTguNWw3Ni40IDE5MS4xLTIwNy4xIDAgMTEuOC0zNS40IDQwLjQtMTMuNWM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMnMtNC40LTEzLTEwLjktMTUuMmwtNDAuNC0xMy41LTEzLjUtNDAuNEMyMzcgMjYwLjQgMjMwLjkgMjU2IDIyNCAyNTZzLTEzIDQuNC0xNS4yIDEwLjlsLTEzLjUgNDAuNC00MC40IDEzLjVDMTQ4LjQgMzIzIDE0NCAzMjkuMSAxNDQgMzM2czQuNCAxMyAxMC45IDE1LjJsNDAuNCAxMy41IDExLjggMzUuNC0xNDMuMSAwek0yNzkuNiAxNDEuNWMtMS4xLTMuMy00LjEtNS41LTcuNi01LjVzLTYuNSAyLjItNy42IDUuNWwtNi43IDIwLjItMjAuMiA2LjdjLTMuMyAxLjEtNS41IDQuMS01LjUgNy42czIuMiA2LjUgNS41IDcuNmwyMC4yIDYuNyA2LjcgMjAuMmMxLjEgMy4zIDQuMSA1LjUgNy42IDUuNXM2LjUtMi4yIDcuNi01LjVsNi43LTIwLjIgMjAuMi02LjdjMy4zLTEuMSA1LjUtNC4xIDUuNS03LjZzLTIuMi02LjUtNS41LTcuNmwtMjAuMi02LjctNi43LTIwLjJ6TTMyIDQ0OGw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LG1GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWRvY3RvciIsaWNvbjpbNDQ4LDUxMixbInVzZXItbWQiXSwiZjBmMCIsIk0yMjQgOGExMjAgMTIwIDAgMSAwIDAgMjQwIDEyMCAxMjAgMCAxIDAgMC0yNDB6bTYwIDMxMi44Yy01LjQtLjUtMTEtLjgtMTYuNi0uOGwtODYuOSAwYy01LjYgMC0xMS4xIC4zLTE2LjYgLjhsMCA2Ny41YzE2LjUgNy42IDI4IDI0LjMgMjggNDMuNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTE5LjQgMTEuNS0zNi4xIDI4LTQzLjZsMC01OC40QzYxIDM1MyAxNiA0MTMuNiAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwzNjEuMSAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtNzEtNDUtMTMxLjUtMTA4LTE1NC42bDAgMzcuNGMyMy4zIDguMiA0MCAzMC41IDQwIDU2LjZsMCAzMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0zMmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0zMmMwLTI2LjEgMTYuNy00OC4zIDQwLTU2LjZsMC00Ni42eiJdfSxwRHI9bUZlLGdGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1iYXIiLGljb246WzUxMiw1MTIsWyJiYXItY2hhcnQiXSwiZjA4MCIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA4MGwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTEybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sZkRyPWdGZSxiRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3ByYXktY2FuLXNwYXJrbGVzIixpY29uOls1NzYsNTEyLFsiYWlyLWZyZXNoZW5lciJdLCJmNWQwIiwiTTE2MCAzMmwwIDgwIDEyOCAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJMMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0wIDEyOGMtNTMgMC05NiA0My05NiA5NmwwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOGMwLTUzLTQzLTk2LTk2LTk2bC0xMjggMHptNjQgOTZhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTQ0OCA0OGMwLTEuNC0xLTMtMi4yLTMuNkw0MTYgMzIgNDAzLjYgMi4yQzQwMyAxIDQwMS40IDAgNDAwIDBzLTMgMS0zLjYgMi4yTDM4NCAzMiAzNTQuMiA0NC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDM4NCA2NCAzOTYuNCA5My44QzM5NyA5NSAzOTguNiA5NiA0MDAgOTZzMy0xIDMuNi0yLjJMNDE2IDY0IDQ0NS44IDUxLjZDNDQ3IDUxIDQ0OCA0OS40IDQ0OCA0OHptNzYuNCA0NS44QzUyNSA5NSA1MjYuNiA5NiA1MjggOTZzMy0xIDMuNi0yLjJMNTQ0IDY0IDU3My44IDUxLjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNiAwLTEuNC0xLTMtMi4yLTMuNkw1NDQgMzIgNTMxLjYgMi4yQzUzMSAxIDUyOS40IDAgNTI4IDBzLTMgMS0zLjYgMi4yTDUxMiAzMiA0ODIuMiA0NC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDUxMiA2NCA1MjQuNCA5My44em03LjIgMTAwLjRjLS42LTEuMi0yLjItMi4yLTMuNi0yLjJzLTMgMS0zLjYgMi4yTDUxMiAyMjQgNDgyLjIgMjM2LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNTEyIDI1NiA1MjQuNCAyODUuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDU0NCAyNTYgNTczLjggMjQzLjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNiAwLTEuNC0xLTMtMi4yLTMuNkw1NDQgMjI0IDUzMS42IDE5NC4yek01MTIgMTQ0YzAtMS40LTEtMy0yLjItMy42TDQ4MCAxMjggNDY3LjYgOTguMkM0NjcgOTcgNDY1LjQgOTYgNDY0IDk2cy0zIDEtMy42IDIuMkw0NDggMTI4IDQxOC4yIDE0MC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDQ0OCAxNjAgNDYwLjQgMTg5LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw0ODAgMTYwIDUwOS44IDE0Ny42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjZ6Il19LGhEcj1iRmUsbURyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaHQtc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTBhYyIsIk0xMzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MC03NC40IDBDMTYuOCA2NCAwIDgwLjggMCAxMDEuNkwwIDQwNi4zYzAgMjMgMTguNyA0MS43IDQxLjcgNDEuN2w3MC4zIDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNDggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTQwLjEtMjEuMS03NS4zLTUyLjctOTUuMSAxMy4xLTE4LjMgMjAuNy00MC43IDIwLjctNjQuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMTYgMCAwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMTIgMTI4bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtMTYgMHptLTQ4IDY0bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtNDggMHoiXX0seEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWFycm93LXVwIixpY29uOls1MTIsNTEyLFsidGVtcGVyYXR1cmUtdXAiXSwiZTA0MCIsIk02NC41IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NHMtMTQ0LTY0LjUtMTQ0LTE0NGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NC41IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjEyLjdjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMTIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00MzkuMSA5LjRsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTkuNC05LjQgMCAxNzguN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OC43LTkuNCA5LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY0LTY0YzYtNiAxNC4xLTkuNCAyMi42LTkuNHMxNi42IDMuNCAyMi42IDkuNHoiXX0sZ0RyPXhGZSxiRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2ViLWF3ZXNvbWUiLGljb246WzY0MCw1MTIsW10sImU2ODIiLCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MnoiXX0seERyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vbi1iaW5hcnkiLGljb246WzM4NCw1MTIsW10sImU4MDciLCJNMTkyIDU0NGMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzYgMC04Ni4zIDYyLjEtMTU4IDE0NC0xNzNsMC00Ny4yLTQ5LjcgMjQuOC0zIDEuM2MtMTUuMiA1LjctMzIuNS0uOC0zOS45LTE1LjctNy40LTE0LjgtMi4yLTMyLjYgMTEuNS00MS4zbDIuOC0xLjYgMzguOC0xOS40LTM4LjgtMTkuNGMtMTUuOC03LjktMjIuMi0yNy4xLTE0LjMtNDIuOSA3LjQtMTQuOCAyNC44LTIxLjQgNDAtMTUuNmwzIDEuMyA0OS43IDI0LjggMC00NC4yYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0NC4yIDQ5LjctMjQuOCAzLTEuM2MxNS4yLTUuOCAzMi41IC44IDM5LjkgMTUuNnMyLjIgMzIuNy0xMS41IDQxLjNsLTIuOCAxLjYtMzguNyAxOS40IDM4LjcgMTkuM2MxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45LTcuNCAxNC44LTI0LjcgMjEuNC0zOS45IDE1LjZsLTMtMS4zLTQ5LjctMjQuOCAwIDQ3LjJjODEuOSAxNS4xIDE0NCA4Ni44IDE0NCAxNzMgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZ6bTAtNjRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0eiJdfSx2RHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibiIsaWNvbjpbMzg0LDUxMixbMTEwXSwiNGUiLCJNMjEuMSAzMy45YzEyLjctNC42IDI2LjktLjcgMzUuNSA5LjZMMzIwIDM1OS42IDMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzg0YzAgMTMuNS04LjQgMjUuNS0yMS4xIDMwLjFzLTI2LjkgLjctMzUuNS05LjZMNjQgMTUyLjQgNjQgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDUwLjUgOC40IDM4LjUgMjEuMSAzMy45eiJdfSx2RmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cyJdLCJmMDQ3IiwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAxMTQuNy0xMTQuNyAwIDkuNC05LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDExNC43IDAgMCAxMTQuNy05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTExNC43IDExNC43IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTE0LjcgMCAwLTExNC43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LHlEcj12RmUsTl89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UiLGljb246WzUxMiw1MTIsWzEyNzk2OCw2MzQ5OCw2MzUwMCwiaG9tZSIsImhvbWUtYWx0IiwiaG9tZS1sZy1hbHQiXSwiZjAxNSIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yNDAgMzIwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ni0xMjggMCAwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx3RHI9Tl8sa0RyPU5fLFNEcj1OXyxNRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Bpbm5lciIsaWNvbjpbNTEyLDUxMixbXSwiZjExMCIsIk0yMDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMCA0MTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNDggMjA4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMzY4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTc1IDM2OS4xQTQ4IDQ4IDAgMSAxIDE0Mi45IDQzNyA0OCA0OCAwIDEgMSA3NSAzNjkuMXpNNzUgNzVBNDggNDggMCAxIDEgMTQyLjkgMTQyLjkgNDggNDggMCAxIDEgNzUgNzV6TTQzNyAzNjkuMUE0OCA0OCAwIDEgMSAzNjkuMSA0MzcgNDggNDggMCAxIDEgNDM3IDM2OS4xeiJdfSx5RmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F2ZWwiLGljb246WzU3Niw1MTIsWyJsZWdhbCJdLCJmMGUzIiwiTTE2OS42IDE1My40bC0xOC43LTE4LjdjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDI2NS42LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzI5LjYtNi42YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zTDIxNC45IDE1My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHpNMjc2IDIxMS43bC0zMS40LTMxLjQgMTEyLTExMiAxMTkuNCAxMTkuNC0xMTIgMTEyLTMxLjQtMzEuNC0yMzIgMjMyYy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNmwyMzItMjMyek0zOTAuOSAzNzQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMNTA1LjYgMjE0LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTguNyAxOC43YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zTDQ1NC45IDM5My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTguNy0xOC43eiJdfSxDRHI9eUZlLHdGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aWNrZXQtc2ltcGxlIixpY29uOls1NzYsNTEyLFsidGlja2V0LWFsdCJdLCJmM2ZmIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCA4LjgtNy40IDE1LjctMTUuNyAxOC42LTE4LjggNi41LTMyLjMgMjQuNC0zMi4zIDQ1LjRzMTMuNSAzOC45IDMyLjMgNDUuNGM4LjMgMi45IDE1LjcgOS44IDE1LjcgMTguNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NEMwIDMxMS4yIDcuNCAzMDQuMyAxNS43IDMwMS40IDM0LjUgMjk0LjkgNDggMjc3IDQ4IDI1NnMtMTMuNS0zOC45LTMyLjMtNDUuNEM3LjQgMjA3LjcgMCAyMDAuOCAwIDE5MmwwLTY0eiJdfSx6RHI9d0ZlLF9Ecj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3ZlIixpY29uOls1MTIsNTEyLFsxMjgzMzBdLCJmNGJhIiwiTTQ5NiA2NGMxMy4yIDAgMjAuNyAxNS4xIDEyLjggMjUuNkw0ODAgMTI4IDQ4MCAzMDRjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRsLTExMiAwLTQ2LjMgNDYuM2MtMTAuNCAxMC40LTI2LjUgMTIuNC0zOS4xIDQuOEw0MS41IDQ0MC45Yy0xNy0xMC4yLTE1LTM1LjUgMy40LTQyLjlMMTYwIDM1MkMyMy44IDMxMS4xIDcuNSAxNjkuOCAyMiA5NS43IDI1LjYgNzcuOSA0NS4zIDcxLjQgNjEuMyA4MC4yTDMyMCAyMjQgMzIwIDE0NGMwLTQ0LjIgMzUuOC04MCA4MC04MGw5NiAwem0tOTYgNTZhMjQgMjQgMCAxIDAgMCA0OCAyNCAyNCAwIDEgMCAwLTQ4ek0xODIuNS05LjZjMTIuNC0xMy43IDMzLjMtOC45IDQyLjUgNy4xbDU2LjQgOTguM2MtNS44IDE0LjQtOS4yIDMwLjEtOS40IDQ2LjVMMTM4LjEgNjhjMTAuMS0zMS42IDI3LTU4LjQgNDQuNC03Ny42eiJdfSxURHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFycC1kcm9wbGV0IixpY29uOls1MTIsNTEyLFtdLCJlNTdjIiwiTTI1NiAxNjBjMzUuMyAwIDY0LTI2LjkgNjQtNjAgMC0yNC0zMy43LTcwLjEtNTIuMi05My41LTYuMS03LjctMTcuNS03LjctMjMuNiAwLTE4LjUgMjMuNC01Mi4yIDY5LjUtNTIuMiA5My41IDAgMzMuMSAyOC43IDYwIDY0IDYwek0zNjggOTZjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMTQ0IDE1Ny45IDE0NCA5NmMwLTExLjEgMS42LTIxLjkgNC42LTMyTDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI3Ny41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjMgMzIyLjdjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04NC42IDBjMyAxMC4xIDQuNiAyMC45IDQuNiAzMnptODUuNSAxNzZMMzM2IDM4OS41IDMzNiAyOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTMuNSAwek05NiAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxMRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJlZS1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTg3IiwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDY0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNNTI4IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ4MGwwLTE2MC0xNiAwYy00NC4yIDAtODAtMzUuOC04MC04MCAwLTI2LjcgMTMuMS01MC4zIDMzLjItNjQuOS0uOC00LjktMS4yLTEwLTEuMi0xNS4xIDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA5NmMwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnoiXX0sa0ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tdXAiLGljb246WzM4NCw1MTIsWzEwNTQ4LCJsZXZlbC11cC1hbHQiXSwiZjNiZiIsIk0xNjkuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMzIuOSAxOTIgMzIwIDE5MmwtNjQgMCAwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwLTY0IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDEyOC0xMjh6Il19LEREcj1rRmUsT189e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtcXVhcnRlciIsaWNvbjpbMzIwLDUxMixbInRlbXBlcmF0dXJlLTEiLCJ0aGVybW9tZXRlci0xIiwidGhlcm1vbWV0ZXItcXVhcnRlciJdLCJmMmNhIiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM2wwLTI4LjdjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI4LjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSwkRHI9T18sQURyPU9fLEVEcj1PXyxTRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xpZGVycyIsaWNvbjpbNTEyLDUxMixbInNsaWRlcnMtaCJdLCJmMWRlIiwiTTMyIDY0QzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwyNjUuMyA2NEMyNTMgMzUuNyAyMjQuOCAxNiAxOTIgMTZzLTYxIDE5LjctNzMuMyA0OEwzMiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjQ2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OGw1NC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU0LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDIyNHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTQuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4TDQ4MCA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI0Ni43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDhzLTYxIDE5LjctNzMuMyA0OEwzMiAzODR6Il19LElEcj1TRmUsUERyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMyXSwiZjY3OCIsIk0xNzQuOCAyMjRsMjI2LjQgMGM0My41IDAgNzguOC0zNS4zIDc4LjgtNzguOCAwLTI1LjUtMTIuMy00OS40LTMzLjEtNjQuMkwyOTcuMy0yNS40Yy01LjYtMy45LTEzLTMuOS0xOC41IDBMMTI5LjEgODFDMTA4LjMgOTUuOCA5NiAxMTkuNyA5NiAxNDUuMiA5NiAxODguNyAxMzEuMyAyMjQgMTc0LjggMjI0ek01MTIgNTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNDQ4IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIwNi4zIDAgMjI0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwek0yNDAgMzg0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MC05NiAwIDAtODB6Il19LE5Ecj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoIixpY29uOlszODQsNTEyLFsxMDRdLCI0OCIsIk0zMjAgMjg4bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMjU2IDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAyNTYgMHoiXX0sT0RyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZm8iLGljb246WzE5Miw1MTIsW10sImYxMjkiLCJNNDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjI0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxNRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmciLGljb246WzM4NCw1MTIsWzEyODY5NCwid2Fsa2luZyJdLCJmNTU0IiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTA1LjQgMjI3LjlsMjIuNi0yMi42IDAgNjkuM2MwIDI4IDEyLjIgNTQuNyAzMy41IDcyLjlsNzEuNCA2MS4yYzUuOSA1LjEgOS44IDEyLjEgMTAuOSAxOS44bDEyLjYgODguMWMyLjUgMTcuNSAxOC43IDI5LjcgMzYuMiAyNy4yczI5LjctMTguNyAyNy4yLTM2LjJsLTEyLjYtODguMWMtMy4zLTIzLjEtMTQuOS00NC4xLTMyLjYtNTkuM2wtMzQuNS0yOS42IDAtMTE1LjIgMy44IDQuN2MxOC4yIDIyLjggNDUuOCAzNiA3NSAzNmwzMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMzLjIgMGMtOS43IDAtMTguOS00LjQtMjUtMTJsLTE3LjktMjIuNGMtMjMtMjguOC01Ny45LTQ1LjYtOTQuOC00NS42LTMyLjIgMC02My4xIDEyLjgtODUuOCAzNS42TDYwLjEgMTgyLjZDNDIuMSAyMDAuNiAzMiAyMjUgMzIgMjUwLjVMMzIgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNy41YzAtOC41IDMuNC0xNi42IDkuNC0yMi42em0xMi40IDE3OS40Yy0xLjUgNS4yLTQuMyAxMC04LjEgMTMuOEw0MS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOGwtMTAuNCAzNi4yeiJdfSxSRHI9TUZlLENGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLWRvd24iLGljb246WzM4NCw1MTIsWyJsZXZlbC1kb3duIl0sImYxNDkiLCJNMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMlMxNC4zIDAgMzIgMGw5NiAwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMDYuNyA3My40LTczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTYwIDQwMi43IDE2MCA5NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA2NHoiXX0sRkRyPUNGZSxCRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZCIsaWNvbjpbNTEyLDUxMixbMTI4NzM5XSwiZjAxOCIsIk0yMjMuOSAzMmwtNzYuMiAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkwxLjQgNDIwLjVDLTYuMSA0NTAuNyAxNi44IDQ4MCA0OCA0ODBsMTc1LjkgMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NCAxNzYuMSAwYzMxLjIgMCA1NC4xLTI5LjMgNDYuNi01OS41TDQyNi41IDgwLjZDNDE5LjQgNTIuMSAzOTMuOCAzMiAzNjQuMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptNjQgMTkybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxIRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BpcmFsIixpY29uOls1MTIsNTEyLFtdLCJlODBhIiwiTTExNS41IDcuNGMxMy42LTExLjMgMzMuOC05LjUgNDUuMSA0LjFzOS41IDMzLjgtNC4xIDQ1LjFDMTAwLjIgMTAzLjUgNjQgMTc1LjIgNjQgMjU2IDY0IDM2MiAxNTAgNDQ4IDI1NiA0NDhzMTkyLTg2IDE5Mi0xOTJjMC03NS4xLTYwLjktMTM2LTEzNi0xMzZTMTc2IDE4MC45IDE3NiAyNTZjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTQ4LjYgMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzExMiAzMzUuNSAxMTIgMjU2YzAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMHMyMDAgODkuNSAyMDAgMjAwYzAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NkMwIDE1NS44IDQ1IDY2LjEgMTE1LjUgNy40eiJdfSx6RmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptOTAuNi0xMTMuOWMtMjAuNC0yOC01My40LTQ2LjEtOTAuNi00Ni4xcy03MC4yIDE4LjEtOTAuNiA0Ni4xYy03LjggMTAuNy0yMi44IDEzLjEtMzMuNSA1LjNzLTEzLjEtMjIuOC01LjMtMzMuNUMxNTUuNyAzMzAgMjAyLjggMzA0IDI1NiAzMDRzMTAwLjMgMjYgMTI5LjQgNjUuOWM3LjggMTAuNyA1LjQgMjUuNy01LjMgMzMuNXMtMjUuNyA1LjQtMzMuNS01LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0scURyPXpGZSxfRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1nbGFzcy1lbXB0eSIsaWNvbjpbMzIwLDUxMixbIndpbmUtZ2xhc3MtYWx0Il0sImY1Y2UiLCJNNjQgMEM0OC43IDAgMzUuNiAxMC44IDMyLjYgMjUuN0wzLjIgMTczQzEuMSAxODMuNSAwIDE5NC4yIDAgMjA1bDAgM2MwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDExNS4yLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC0xMTUuMkMyNjUgMzUwIDMyMCAyODUuNCAzMjAgMjA4bDAtM2MwLTEwLjctMS4xLTIxLjQtMy4yLTMyTDI4Ny40IDI1LjdDMjg0LjQgMTAuOCAyNzEuMyAwIDI1NiAwTDY0IDB6bTEuOSAxODUuNkw5MC4yIDY0IDIyOS44IDY0IDI1NC4xIDE4NS42YzEuMyA2LjQgMS45IDEyLjkgMS45IDE5LjRsMCAzYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtM2MwLTYuNSAuNi0xMyAxLjktMTkuNHoiXX0sVkRyPV9GZSxqRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xhcHBlcmJvYXJkIixpY29uOls1MTIsNTEyLFtdLCJlMTMxIiwiTTQ0OCA2NGMyIDAgMy45IC4xIDUuOCAuM2wtOTUuNyA5NS43IDY3LjkgMCA3Mi03MmM4LjggMTEgMTQgMjQuOSAxNCA0MGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDcwLjEgMC05NiA5NiA2Ny45IDAgOTUtOTUgMS0xIDkyLjEgMC05NiA5NiA2Ny45IDAgOTUtOTUgMS0xIDg2LjEgMHoiXX0sVEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtc3RlcCIsaWNvbjpbMzg0LDUxMixbInN0ZXAtZm9yd2FyZCJdLCJmMDUxIiwiTTIxIDM2LjhjMTIuOS03IDI4LjctNi4zIDQxIDEuOEwzMjAgMjA4LjEgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQuMS0yNTggMTY5LjZjLTEyLjMgOC4xLTI4IDguOC00MSAxLjhTMCA0NTQuNyAwIDQ0MEwwIDcyQzAgNTcuMyA4LjEgNDMuOCAyMSAzNi44eiJdfSxVRHI9VEZlLExGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtdXAtcmlnaHQiLGljb246WzQ0OCw1MTIsWzg1OTksImV4dGVybmFsLWxpbmstc3F1YXJlLWFsdCJdLCJmMzYwIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTE2OCAxNjBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzUgMzUtNjcgNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDI0IDI0YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDY3LTY3IDM1IDM1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMzIwIDMyMS43IDMyMCAzMTJsMC0xMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEyOCAweiJdfSxXRHI9TEZlLERGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWpvdXJuYWwtd2hpbGxzIixpY29uOls0NDgsNTEyLFsiam91cm5hbC13aGlsbHMiXSwiZjY2YSIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMjc0LjEgOTkuMmMyLjYtMi42IDYuNy0zLjEgOS45LTEuMSAzMi4xIDIwIDUzLjQgNTUuNiA1My40IDk2LjIgMCA2Mi42LTUwLjcgMTEzLjMtMTEzLjMgMTEzLjNTMTEwLjcgMjU2LjkgMTEwLjcgMTk0LjNjMC00MC42IDIxLjQtNzYuMiA1My40LTk2LjIgMy4xLTIgNy4yLTEuNSA5LjkgMS4xczMuMSA2LjcgMS4yIDkuOGMtNS4yIDguNi04LjIgMTguNy04LjIgMjkuNSAwIDE1LjEgNS45IDI4LjggMTUuNSAzOS4xIDIuNSAyLjcgMi45IDYuNyAuOSA5LjctNC43IDcuNC03LjQgMTYuMS03LjQgMjUuNSAwIDIxLjYgMTQuMyAzOS45IDM0IDQ1LjlsMS0yNC44Yy03LjEtNC40LTExLjgtMTIuMi0xMS44LTIxLjEgMC05LjYgNS41LTE4IDEzLjUtMjIuMWwzLjMtODEuOGMuMi00LjMgMy43LTcuNyA4LTcuN3M3LjggMy40IDggNy43bDMuMyA4MS44YzggNC4xIDEzLjUgMTIuNCAxMy41IDIyLjEgMCA4LjktNC43IDE2LjctMTEuOCAyMS4xbDEgMjQuOGMxOS42LTYgMzMuOS0yNC4xIDM0LTQ1LjZsMC0uNmMtLjEtOS4zLTIuNy0xNy45LTcuNC0yNS4yLTEuOS0zLjEtMS42LTcuMSAuOS05LjcgOS42LTEwLjIgMTUuNS0yMy45IDE1LjUtMzkuMSAwLTEwLjgtMy0yMC45LTguMi0yOS41LTEuOS0zLjItMS40LTcuMiAxLjItOS44eiJdfSxHRHI9REZlLCRGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFtcGFnbmUtZ2xhc3NlcyIsaWNvbjpbNjQwLDUxMixbMTI5MzQ2LCJnbGFzcy1jaGVlcnMiXSwiZjc5ZiIsIk0xNTUuNiAxNy4zQzE2MyAzIDE3OS45LTMuNiAxOTUgMS45bDEyNSA0NS42IDEyNS00NS42YzE1LjEtNS41IDMyIDEuMSAzOS40IDE1LjRsNzguOCAxNTIuOWMyOC44IDU1LjggMTAuMyAxMjIuMy0zOC41IDE1Ni42bDMxLjMgODYuMiA0MS0xNWMxNi42LTYgMzUgMi41IDQxIDE5LjFzLTIuNSAzNS0xOS4xIDQxYy00Ny40IDE3LjMtOTQuOCAzNC41LTE0Mi4yIDUxLjgtMTYuNiA2LjEtMzUtMi41LTQxLTE5LjFzMi41LTM1IDE5LjEtNDFsNDEtMTUtMzEuMy04Ni4yYy01OS40IDUuMi0xMTYuMi0zMy45LTEzMC05NS4ybC0xNC42LTY0LjctMTQuNiA2NC43Yy0xMy44IDYxLjMtNzAuNiAxMDAuNC0xMzAgOTUuMmwtMzEuMyA4Ni4yIDQxIDE1YzE2LjYgNi4xIDI1LjIgMjQuNCAxOS4xIDQxcy0yNC40IDI1LjItNDEgMTkuMWMtNDcuNC0xNy4zLTk0LjgtMzQuNi0xNDIuMi01MS44LTE2LjYtNi4xLTI1LjItMjQuNC0xOS4xLTQxUzI2LjMgMzkyIDQyLjkgMzk4bDQxIDE1IDMxLjMtODYuMkM2Ni41IDI5Mi41IDQ4LjEgMjI2IDc2LjkgMTcwLjJMMTU1LjYgMTcuM3ptNDQgNTQuNGwtMjcuMiA1Mi44IDg5LjIgMzIuNSAxMy4xLTU3LjktNzUuMS0yNy40em0yNDAuOSAwbC03NS4xIDI3LjQgMTMuMSA1Ny45IDg5LjItMzIuNS0yNy4yLTUyLjh6Il19LFlEcj0kRmUsS0RyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bXBzdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNzkzIiwiTTEzMi4zIDY0TDEwNi43IDE5MiAyNCAxOTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC4xYzAtMi42IC40LTUuMSAxLjItNy42TDI2LjUgODAuNEMyOS44IDcwLjYgMzkgNjQgNDkuMyA2NGw4MyAwem0yMy40IDEyOGwyNS42LTEyOCA4Mi43IDAgMCAxMjgtMTA4LjMgMHpNMzEyIDY0bDgyLjcgMCAyNS42IDEyOC0xMDguMyAwIDAtMTI4em0xMzEuNyAwbDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTgyLjcgMC0yNS42LTEyOHpNMjUuNyAyNDBsNTI0LjcgMGMtLjQgMi4xLTEzLjMgNzMuNC0zOC45IDIxMy43LTMgMTYuMy0xNy45IDI3LjYtMzQuNCAyNi4xUzQ0OCA0NjQuNiA0NDggNDQ4bDAtMTYtMzIwIDAgMCAxNmMwIDE2LjYtMTIuNiAzMC40LTI5LjEgMzEuOVM2Ny41IDQ3MCA2NC41IDQ1My43QzM5IDMxMy4zIDI2IDI0Mi4xIDI1LjcgMjQweiJdfSxaRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNTAxIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSxRRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcHV0ZXIiLGljb246WzU3Niw1MTIsW10sImU0ZTUiLCJNMzQ4LjggMzJDMzQwLjcgNDYuMSAzMzYgNjIuNSAzMzYgODBsMCAxNi0yNzIgMCAwIDIyNCAyNzIgMCAwIDY0LTI3MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4NC44IDB6TTMzNiA0MzJjMCAxNy41IDQuNyAzMy45IDEyLjggNDhMMTIwIDQ4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMTYgMHpNNDMyIDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0yNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTU2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxBRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1tYWdpYyIsaWNvbjpbNTEyLDUxMixbIm1hZ2ljIl0sImYwZDAiLCJNMzk4LjUgMTIuMmwtODguMiA4OC4yIDEwMS4zIDEwMS4zIDg4LjItODguMkM1MDcuNiAxMDUuNiA1MTIgOTUgNTEyIDg0cy00LjQtMjEuNi0xMi4yLTI5LjVMNDU3LjUgMTIuMkM0NDkuNiA0LjQgNDM5IDAgNDI4IDBzLTIxLjYgNC40LTI5LjUgMTIuMnpNMjc2LjQgMTM0LjNMMTIuMiAzOTguNUM0LjQgNDA2LjQgMCA0MTcgMCA0MjhzNC40IDIxLjYgMTIuMiAyOS41bDQyLjMgNDIuM0M2Mi40IDUwNy42IDczIDUxMiA4NCA1MTJzMjEuNi00LjQgMjkuNS0xMi4yTDM3Ny43IDIzNS42IDI3Ni40IDEzNC4zeiJdfSxYRHI9QUZlLEpEcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbiIsaWNvbjpbNTEyLDUxMixbMTI5NTA0XSwiZjVkYyIsIk0xMjAgNTZjMC0zMC45IDI1LjEtNTYgNTYtNTZsMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMjkuOCAwLTU0LjktMjAuNC02Mi00OC0uNyAwLTEuMyAwLTIgMC00NC4yIDAtODAtMzUuOC04MC04MCAwLTE4IDYtMzQuNiAxNi00OC0xOS40LTE0LjYtMzItMzcuOC0zMi02NCAwLTMwLjkgMTcuNi01Ny44IDQzLjItNzEuMS03LjEtMTItMTEuMi0yNi0xMS4yLTQwLjkgMC00NC4yIDM1LjgtODAgODAtODBsMC0yNHptMjcyIDBsMCAyNGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDE1LTQuMSAyOS0xMS4yIDQwLjkgMjUuNyAxMy4zIDQzLjIgNDAuMSA0My4yIDcxLjEgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NCAxMCAxMy40IDE2IDMwIDE2IDQ4IDAgNDQuMi0zNS44IDgwLTgwIDgwLS43IDAtMS4zIDAtMiAwLTcuMSAyNy42LTMyLjIgNDgtNjIgNDhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6Il19LGUkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmllZmNhc2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ2OSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sdCRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTEyIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxyJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1jb21taXQiLGljb246WzU3Niw1MTIsW10sImYzODYiLCJNMjg4IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDMwIDM2MSAzNjUuNCA0MTYgMjg4IDQxNlMxNDYgMzYxIDEzMS4yIDI4OEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTkuMiAwQzE0NiAxNTEgMjEwLjYgOTYgMjg4IDk2czE0MiA1NSAxNTYuOCAxMjhsOTkuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05OS4yIDB6Il19LGEkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnJlYXN0ZmVlZGluZyIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYSIsIk0yMjQgMGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDM2LjggMzgyLjhMMzczLjUgNDYyYy0xNi42IDIwLjctNDYuOCAyNC4xLTY3LjUgNy41LTE3LjYtMTQuMS0yMi43LTM4LjEtMTMuNS01Ny43bC0uNy0uMWMtMzguOS01LjYtNzQuMy0yNS4xLTk5LjctNTQuOGwwLTM2LjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIC44IDAgMS42IC4xIDIuNGwxMDEuNCA1MC43YzIzLjcgMTEuOSAzMy4zIDQwLjcgMjEuNSA2NC40cy00MC43IDMzLjMtNjQuNCAyMS41TDI3LjIgNDI3LjNjLTEuMS0uNS0yLjItMS4xLTMuMy0xLjctNC45LTIuOC05LjItNi40LTEyLjYtMTAuNi00LjYtNS40LTcuOC0xMS43LTkuNi0xOC40LTMuMy0xMi0xLjktMjUuMiA0LjgtMzYuNiAuNi0xLjEgMS4zLTIuMiAyLTMuMkw3NS42IDI1Ni4xYzI2LjctNDAuMSA3MS43LTY0LjEgMTE5LjgtNjQuMWw3NS4yIDBjNDYuNSAwIDkwLjEgMjIuNSAxMTcuMiA2MC4zbDUwLjcgNzAuOWMyLjIgMyA0IDYuMSA1LjUgOS40IDIuOSA2LjcgNC4zIDEzLjggNCAyMC44LS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAweiJdfSxpJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJheXMiLGljb246WzUxMiw1MTIsW10sImU1NGQiLCJNMzEyLjUgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMzM4LjUgMTMyIDI5OC44IDExMiAyNTYuNSAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNmw0Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek03LjUgN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsODAgODBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxLjUgN0MzMi4xLTIuMyAxNi45LTIuMyA3LjUgN3ptNDY0IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMHpNNy41IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6bTQ2NCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsODAgODB6Il19LHMkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYW5hdC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQ1IiwiTTE5MiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MS41QzczLjMgMTA5LjMgMCAxOTAuMSAwIDI4OEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNjIuNSA0NC44LTExNC41IDEwNC0xMjUuOEwxNjggNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yOTMuOGM1OS4yIDExLjIgMTA0IDYzLjMgMTA0IDEyNS44bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC05Ny45LTczLjMtMTc4LjctMTY4LTE5MC41TDIxNiA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sRUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQiLGljb246WzM4NCw1MTIsWyJ1bnNvcnRlZCJdLCJmMGRjIiwiTTIuNCAyMDQuMmM1IDEyIDE2LjYgMTkuOCAyOS42IDE5LjhsMzIwIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45em0wIDEwMy41Yy01IDEyLTIuMiAyNS43IDYuOSAzNC45bDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzNjQuOSAyODggMzUyIDI4OEwzMiAyODhjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5Ljh6Il19LG4kcj1FRmUsSUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yYWRpYXRpb24iLGljb246WzUxMiw1MTIsWzk3NjIsInJhZGlhdGlvbi1hbHQiXSwiZjdiYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem04MCAwbDY0LjMgMGM4LjcgMCAxNS43LTcuMSAxNy4zLTE1LjYgNC40LTI0LjQgMTguMS00NS41IDM3LjItNTkuNyA3LjQtNS41IDEwLjYtMTUuNiA2LTIzLjZsLTMyLjUtNTYuM2MtNC4zLTcuNS0xMy45LTEwLjMtMjEuMi01LjUtNDguMiAzMS41LTgxLjMgODQuMi04Ni4zIDE0NC44LS43IDguOCA2LjUgMTYgMTUuMyAxNnptMTM3LjkgODkuOGMtOC41LTMuNy0xOC44LTEuNC0yMy41IDYuNmwtMzEgNTMuOGMtNC4zIDcuNS0xLjkgMTcuMiA1LjggMjEuMSAyNi4xIDEzLjIgNTUuNSAyMC43IDg2LjggMjAuN3M2MC43LTcuNSA4Ni44LTIwLjdjNy43LTMuOSAxMC4xLTEzLjYgNS44LTIxLjFsLTMxLTUzLjhjLTQuNi04LTE1LTEwLjMtMjMuNS02LjYtMTEuNyA1LTI0LjUgNy44LTM4LjEgNy44cy0yNi40LTIuOC0zOC4xLTcuOHpNMzUwLjQgMjQwLjRjMS42IDguNiA4LjUgMTUuNiAxNy4zIDE1LjZsNjQuMyAwYzguOCAwIDE2LjEtNy4yIDE1LjMtMTYtNS02MC42LTM4LjEtMTEzLjItODYuMy0xNDQuOC03LjMtNC44LTE2LjgtMi0yMS4yIDUuNUwzMDcuMyAxNTdjLTQuNiA4LTEuNCAxOC4xIDYgMjMuNiAxOS4xIDE0LjIgMzIuNyAzNS40IDM3LjIgNTkuN3pNMjU2IDMwNS43YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sbyRyPUlGZSxsJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLWNvZGUiLGljb246WzY0MCw1MTIsW10sImY1ZmMiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODEgMjA5bC0zMSAzMSAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00OC00OGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek0zOTMgMTc1bDQ4IDQ4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAweiJdfSxjJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luayIsaWNvbjpbNTEyLDUxMixbXSwiZTA2ZCIsIk0yODggOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAxOTItNjQgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDAtNDBjMC00LjQgMy42LTggOC04bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgNDAtNjQgMCAwLTE5MnoiXX0sZCRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20td2F0ZXItcHVtcCIsaWNvbjpbNjQwLDUxMixbXSwiZTRiNiIsIk0xNDQgMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTc2LTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNzkuNmMxNy42LTIgMzYgMi41IDUxLjMgMTQgMy40IDIuNiA2LjEgMS40IDkuOC0uM2wuOC0uNGM1LjctMi42IDEyLjktNi45IDIxLjctMTMuNSAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjMtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDYuOSA1LjIgMTIuOCA5IDE4IDExLjcgLjYgLjMgMS4yIC42IDEuOCAxIDQuMiAyLjMgOC41IDQuNiAxMi42IDEuNSAxMC43LTguMSAyMi45LTEyLjcgMzUuMy0xNC4xbDAtNzkuNWMwLTI2LjUtMjEuNS00OC00OC00OGwtNTYgMCAwLTE0Mi4xIDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0OTcgMzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC04OCA4OGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDAgMTQyLjEtMTM2IDAgMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTQ0IDMyek00NzQuNiA0NzYuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAweiJdfSxQRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1saW5lcy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbIm1pY3JvcGhvbmUtYWx0LXNsYXNoIl0sImY1MzkiLCJNNy0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDE1MSAxNTEgMC0zMC4yYzAtNTMgNDMtOTYgOTYtOTYgNTAuMyAwIDkxLjYgMzguNyA5NS43IDg4TDMyOCA4OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwIDAgNDgtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NS43IDBjLTEuOSAyMi45LTExLjggNDMuNC0yNi45IDU5bDMzLjkgMzMuOWMyNS41LTI2IDQxLjMtNjEuNiA0MS4zLTEwMC45bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgNTIuNi0yMS4xIDEwMC4yLTU1LjMgMTM0LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6TTI5Ny44IDM2Ny43bDQxLjQgNDEuNGMtOC44IDIuNC0xNy45IDQuMy0yNy4zIDUuNGwwIDQ5LjUgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ5LjVDMTY5LjMgNDAyLjcgOTYgMzIxLjkgOTYgMjI0bDAtNDBjMC01LjEgMS42LTkuOSA0LjQtMTMuOGw0My42IDQzLjYgMCAxMC4yYzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0IDMuMyAwIDYuNi0uMSA5LjgtLjN6Il19LHUkcj1QRmUscCRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlcnZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjE2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4em0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSwkdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlciIsaWNvbjpbNDQ4LDUxMixbMTI4MTAwLDYyMTQ0LDYyNDcwLCJ1c2VyLWFsdCIsInVzZXItbGFyZ2UiXSwiZjAwNyIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZDOTUuOCAzMDQgMTYgMzgzLjggMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTk4LjUtNzkuOC0xNzguMy0xNzguMy0xNzguM2wtNTkuNCAweiJdfSxmJHI9JHVlLGgkcj0kdWUsbSRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4OC4yIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2Mi4xLTE1LTE1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDQ5IDQ5IDAgNzAuNi02MS4yLTM1LjMtMTcuOS02Ni45Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4zIDk4IDk4LjcgMTEwLjhsNS41IDIwLjUtNTMuNy0zMUMzNS4yIDkxLjUgMTUuNiA5Ni43IDYuOCAxMTJzLTMuNiAzNC45IDExLjcgNDMuN2w1My43IDMxLTIwLjUgNS41Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w2Ni45LTE3LjkgNjEuMiAzNS4zLTYxLjIgMzUuMy02Ni45LTE3LjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDIwLjUgNS41LTUzLjcgMzFDMy4yIDM2NS4xLTIgMzg0LjcgNi44IDQwMHMyOC40IDIwLjYgNDMuNyAxMS43bDUzLjctMzEtNS41IDIwLjVjLTMuNCAxMi44IDQuMiAyNiAxNyAyOS40czI2LTQuMiAyOS40LTE3bDE3LjktNjYuOSA2MS4yLTM1LjMgMCA3MC42LTQ5IDQ5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTUtMTUgMCA2Mi4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Mi4xIDE1IDE1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDktNDkgMC03MC42IDYxLjIgMzUuMyAxNy45IDY2LjljMy40IDEyLjggMTYuNiAyMC40IDI5LjQgMTdzMjAuNC0xNi42IDE3LTI5LjRsLTUuNS0yMC41IDUzLjcgMzFjMTUuMyA4LjggMzQuOSAzLjYgNDMuNy0xMS43czMuNi0zNC45LTExLjctNDMuN2wtNTMuNy0zMSAyMC41LTUuNWMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTY2LjkgMTcuOS02MS4yLTM1LjMgNjEuMi0zNS4zIDY2LjkgMTcuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTIwLjUtNS41IDUzLjctMzFjMTUuMy04LjggMjAuNi0yOC40IDExLjctNDMuN3MtMjguNC0yMC41LTQzLjctMTEuN2wtNTMuNyAzMSA1LjUtMjAuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTE3LjkgNjYuOS02MS4yIDM1LjMgMC03MC42IDQ5LTQ5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTE1IDE1IDAtNjIuMXoiXX0sZyRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhdXJ1cyIsaWNvbjpbMzg0LDUxMixbXSwiZTg0ZiIsIk0zMzYtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCA1OC41LTI4LjYgMTEwLjMtNzIuNSAxNDIuMyA1My4yIDM0LjEgODguNSA5My44IDg4LjUgMTYxLjcgMCAxMDYtODYgMTkyLTE5MiAxOTJTMCA0MjYgMCAzMjBDMCAyNTIuMSAzNS4zIDE5Mi40IDg4LjUgMTU4LjMgNDQuNiAxMjYuMyAxNiA3NC41IDE2IDE2IDE2LTEuNyAzMC4zLTE2IDQ4LTE2UzgwLTEuNyA4MCAxNmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMlMzMDQgNzcuOSAzMDQgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE5MiAxOTJhMTI4IDEyOCAwIDEgMCAwIDI1NiAxMjggMTI4IDAgMSAwIDAtMjU2eiJdfSxiJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwtY3Jvc3Nib25lcyIsaWNvbjpbNDQ4LDUxMixbMTI4MzY5LDk3NjBdLCJmNzE0IiwiTTM4NCAxNDRDMzg0IDY0LjUgMzEyLjQgMCAyMjQgMFM2NCA2NC41IDY0IDE0NGMwIDQ3LjEgMjUuMSA4OC45IDY0IDExNS4ybDAgMjguOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4LjhjMzguOS0yNi4zIDY0LTY4LjEgNjQtMTE1LjJ6TTE2MCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDUuNSAzMzkuN2MtNi44LTE2LjMtMjUuNS0yNC00MS44LTE3LjJMMjI0IDM5Ny4zIDQ0LjMgMzIyLjVjLTE2LjMtNi44LTM1IC45LTQxLjggMTcuMnMuOSAzNSAxNy4yIDQxLjhMMTQwLjggNDMyIDE5LjcgNDgyLjVDMy40IDQ4OS4zLTQuMyA1MDggMi41IDUyNC4zczI1LjUgMjQgNDEuOCAxNy4yTDIyNCA0NjYuNyA0MDMuNyA1NDEuNWMxNi4zIDYuOCAzNS0uOSA0MS44LTE3LjJzLS45LTM1LTE3LjItNDEuOEwzMDcuMiA0MzIgNDI4LjMgMzgxLjVjMTYuMy02LjggMjQtMjUuNSAxNy4yLTQxLjh6Il19LHgkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXNvLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjIiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDY0LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgOTYgMGM2NS42IDAgMTIyLTM5LjUgMTQ2LjctOTZsMzcuMyAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNC44IDBjLjUtNS4zIC44LTEwLjYgLjgtMTZzLS4zLTEwLjctLjgtMTZsMjQuOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zNy4zIDBDMzYyIDcxLjUgMzA1LjYgMzIgMjQwIDMyTDExMiAzMnptMTk5LjYgOTZsLTE2Ny42IDAgMC0zMiA5NiAwYzI4LjQgMCA1NCAxMi40IDcxLjYgMzJ6TTE0NCAxNzZsMTkwLjcgMGMuOSA1LjIgMS4zIDEwLjUgMS4zIDE2cy0uNSAxMC44LTEuMyAxNmwtMTkwLjcgMCAwLTMyem0xNjcuNiA4MGMtMTcuNiAxOS42LTQzLjEgMzItNzEuNiAzMmwtOTYgMCAwLTMyIDE2Ny42IDB6Il19LHYkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzIixpY29uOlszMjAsNTEyLFsxMjc4NjNdLCJmNGUzIiwiTTMyLjYgMjUuN0MzNS42IDEwLjggNDguNyAwIDY0IDBMMjU2IDBjMTUuMyAwIDI4LjQgMTAuOCAzMS40IDI1LjdMMzE2LjggMTczYzIuMSAxMC41IDMuMiAyMS4yIDMuMiAzMmwwIDNjMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAxMTUuMiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTE1LjJDNTUgMzUwIDAgMjg1LjQgMCAyMDhsMC0zYzAtMTAuNyAxLjEtMjEuNCAzLjItMzJMMzIuNiAyNS43ek03Ny40IDEyOGwxNjUuMSAwLTEyLjgtNjQtMTM5LjUgMC0xMi44IDY0eiJdfSxSXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oYWxmIixpY29uOlszMjAsNTEyLFsxMjc3NzcsInRlbXBlcmF0dXJlLTIiLCJ0aGVybW9tZXRlci0yIiwidGhlcm1vbWV0ZXItaGFsZiJdLCJmMmM5IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM2wwLTkyLjdjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDkyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSx5JHI9Ul8sdyRyPVJfLGskcj1SXyxTJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGlja2V0IixpY29uOls1NzYsNTEyLFsxMjc5MDNdLCJmMTQ1IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNjRDMCAyMDAuOCA3LjQgMjA3LjcgMTUuNyAyMTAuNiAzNC41IDIxNy4xIDQ4IDIzNSA0OCAyNTZzLTEzLjUgMzguOS0zMi4zIDQ1LjRDNy40IDMwNC4zIDAgMzExLjIgMCAzMjBsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtOC44LTcuNC0xNS43LTE1LjctMTguNi0xOC44LTYuNS0zMi4zLTI0LjQtMzIuMy00NS40czEzLjUtMzguOSAzMi4zLTQ1LjRjOC4zLTIuOSAxNS43LTkuOCAxNS43LTE4LjZsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDMzNmwwLTE2MC0yNTYgMCAwIDE2MCAyNTYgMHpNMTEyIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyeiJdfSxNJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlYXQtYXduLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU5OCIsIk00OTYgNTc2YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNODEgNTI5Yy05LjQgOS4zLTI0LjUgOS4zLTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw4MSA1Mjl6bTMwLjItMjk0LjRjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4zIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2wxMiAxMmMtLjggNy0xLjIgMTQuMi0xLjIgMjEuNCAwIDIwIDMgMzkuMyA4LjcgNTcuNC0zNi44IDIxLjgtODUgMTctMTE2LjYtMTQuN0wxNjUuNiA0NDQuMyA4MSA1MjlDNjkuNyA1MTcuNyA1OC40IDUwNi4zIDQ3IDQ5NWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xek00OTYgNDc2YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6TTIxNS4yIDEzMC42YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMyA4My45IDI0LjItNS45IDUwLjEtMi4xIDcxLjkgMTAuOC0zMi4yIDI0LjktNTYuMiA1OS44LTY3LjQgMTAwLjEtMy44LTIuOC03LjUtNi0xMS05LjVsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNTI2LjcgMTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDAgOC44IDguOCA5LjMgMjIuNyAxLjcgMzIuMUw1NjAuNiA0OSA0NDYuMiAxNjMuNGM3LjcgMSAxNS4zIDMgMjIuNSA1LjlMNTI3IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljMy4yIDMuMiA0LjcgNy40IDQuNyAxMS42LTE3LjctNS40LTM2LjUtOC4zLTU1LjktOC4zLTM0LjIgMC02Ni4zIDguOS05NC4xIDI0LjZsLTkyLjctOTIuN2MtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS44bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMUw0NjUgNDkgNDA2LjcgMTA3LjNjMi44IDcuMSA0LjcgMTQuNSA1LjggMjIuMUw1MjYuNyAxNXoiXX0sQyRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10dXJuLXJpZ2h0IixpY29uOls0NDgsNTEyLFtdLCJlNGMwIiwiTTMxMy40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDMzOC43IDEyOCAxMjggMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgMjQxLjcgMCAyMjRsMC0zMkMwIDEyMS4zIDU3LjMgNjQgMTI4IDY0bDIxMC43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3ptLTk2IDI1NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDM4NCA5NiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OGwwLTMyYzAtNTMgNDMtOTYgOTYtOTZsMTQ2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zeiJdfSx6JHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FuZHktY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4NiIsIk00MjEuOCAzOS42QzQ1MiA4NS4yIDQ1Ni41IDE0Mi45IDQzNS4xIDE5MmwtMTY1LjQgMCA0MS40LTQxLjRjLjgtLjggMS41LTEuNiAyLjItMi40TDQyMS44IDM5LjZ6TTI2OCAxMDIuOWMtLjggLjctMS42IDEuNC0yLjQgMi4ybC0yOC4xIDI4LjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNUwxNzUgMTQuNkMyMjkuOS00MC4yIDMxNC41LTQ2LjcgMzc2LjUtNS42TDI2OCAxMDIuOXpNMTI1LjcgMzM2bDgwLTgwIDE4MSAwLTgyLjUgODIuNSAwLTIuNS0xNzguNSAwem0xMTcgNjRMMTQxLjQgNTAxLjNjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNWwxMC43LTEwLjcgMTgxIDB6Il19LF8kcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVlbGNoYWlyIixpY29uOls1MTIsNTEyLFtdLCJmMTkzIiwiTTEzNiA0MGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTExNy45IDE5Ny42bDEyLjYgNjNjLTM4LjYgMTIuNC02Ni41IDQ4LjctNjYuNSA5MS40IDAgNTMgNDMgOTYgOTYgOTYgMzUuNiAwIDY2LjctMTkuNCA4My4zLTQ4LjIgMi4zIC4xIDQuNiAuMiA3IC4ybDQuMSAwYzEgMCAyLjEgMCAzLjEgMGw1NS4yIDBjLTIwLjQgNjQuOS04MSAxMTItMTUyLjcgMTEyLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwIDAtNzMuOCA1MC0xMzUuOSAxMTcuOS0xNTQuNHptMTQ4LjYtMjguMWwyMy43IDExOC41IDYwLjUgMGMzMy4zIDAgNjMuMiAyMC43IDc0LjkgNTEuOWwyNS41IDY4IDE4LjctNi4yYzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMnMtMy41IDM0LjktMjAuMiA0MC41bC00OCAxNmMtMTYuMyA1LjQtMzQtMy00MC4xLTE5LjFsLTM2LjMtOTYuOWMtMi4zLTYuMi04LjMtMTAuNC0xNS0xMC40bC04Ni4xIDBjLS40IDAtLjggMC0xLjMgMGwtMTMuMSAwYy0zMC41IDAtNTYuOC0yMS41LTYyLjgtNTEuNEwxNjUuMyAxODkuN2MtNi40LTMxLjkgMTgtNjEuNyA1MC42LTYxLjcgMjQuNiAwIDQ1LjggMTcuNCA1MC42IDQxLjV6Il19LFQkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGVsbC1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZjg5MSIsIk0xMjAgMzJjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2OGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMTYgMHptNDAgMTI4bC02NCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwek0zMDQgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDcyIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC0yMy42LTkuMy00NS0yNC40LTYwLjggMTAuMy0xNC40IDE2LjQtMzIuMSAxNi40LTUxLjIgMC00OC42LTM5LjQtODgtODgtODhsLTY0IDB6bTY0IDExMmwtMzIgMCAwLTQ4IDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6TTMzNiAyNTZsMC00OCA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwem0yMzMgODRjMTEtMTMuOCA4LjgtMzMuOS01LTQ1cy0zMy45LTguOC00NSA1bC0xMDUuNyAxMzIuMS0zOC43LTM4LjdjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzYuNCA2LjQgMTUuMyA5LjggMjQuNCA5LjNzMTcuNS00LjkgMjMuMi0xMkw1NjkgMzQweiJdfSxMJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLW9mZiIsaWNvbjpbMzIwLDUxMixbXSwiZjAyNiIsIk05NiAzNTJsLTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDhsNDggMCAxMzQuMS0xMTkuMmM2LjQtNS43IDE0LjYtOC44IDIzLjEtOC44IDE5LjIgMCAzNC44IDE1LjYgMzQuOCAzNC44bDAgMzc4LjRjMCAxOS4yLTE1LjYgMzQuOC0zNC44IDM0LjgtOC41IDAtMTYuNy0zLjEtMjMuMS04LjhMOTYgMzUyeiJdfSxEJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibHVuZ3MiLGljb246WzU3Niw1MTIsWzEyOTcyOV0sImY2MDQiLCJNMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTQxLjktMzIgMTkuMiAwLTExNi43YzAtMjQuNS0xOS45LTQ0LjQtNDQuNC00NC40LTEyLjUgMC0yNC40IDUuMy0zMi44IDE0LjVsLTI2LjQgMjlDNDIuOSAxNjAuOCAwIDI3MS44IDAgMzg3bDAgMzAuNWMwIDUyLjIgNDIuMyA5NC41IDk0LjUgOTQuNSAyMiAwIDQzLjctNS4xIDYzLjQtMTVsNS0yLjVjMzcuNC0xOC43IDYxLTU2LjkgNjEtOTguOGwwLTEyOCA2NC0zOC40IDY0IDM4LjQgMCAxMjhjMCA0MS44IDIzLjYgODAuMSA2MSA5OC44bDUgMi41YzE5LjcgOS44IDQxLjQgMTUgNjMuNCAxNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDExOC4yLTMyLTE5LjIgMC0xNDEuOXoiXX0sJCRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDgwYzAgMTEuNSA2LjIgMjIuMiAxNi4yIDI3LjhzMjIuMyA1LjUgMzIuMi0uNEwxOTIgNDIxLjMgMzM1LjUgNTA3LjRjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzM4NCA0OTEuNSAzODQgNDgwbDAtNDE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LEEkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJjb2RlIixpY29uOls0NDgsNTEyLFtdLCJmMDJhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNzIgMzJsMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnptMjA4LThsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptLTk2IDBsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sQXVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3Qtb2wiLGljb246WzUxMiw1MTIsWyJsaXN0LTEtMiIsImxpc3QtbnVtZXJpYyJdLCJmMGNiIiwiTTAgNzJDMCA1OC44IDEwLjcgNDggMjQgNDhsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNCAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC04MC0yNCAwQzEwLjcgOTYgMCA4NS4zIDAgNzJ6TTMwLjQgMzAxLjJDNDEuOCAyOTIuNiA1NS43IDI4OCA3MCAyODhsNC45IDBjMzMuNyAwIDYxLjEgMjcuNCA2MS4xIDYxLjEgMCAxOS42LTkuNCAzNy45LTI1LjIgNDkuNGwtMjQgMTcuNSAzMy4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTkwLjcgMEMxMy4xIDQ2NCAwIDQ1MC45IDAgNDM0LjcgMCA0MjUuMyA0LjUgNDE2LjUgMTIuMSA0MTFsNzAuNS01MS4zYzMuNC0yLjUgNS40LTYuNCA1LjQtMTAuNiAwLTcuMi01LjktMTMuMS0xMy4xLTEzLjFMNzAgMzM2Yy0zLjkgMC03LjcgMS4zLTEwLjggMy42TDM4LjQgMzU1LjJjLTEwLjYgOC0yNS42IDUuOC0zMy42LTQuOFMtMSAzMjQuOCA5LjYgMzE2LjhsMjAuOC0xNS42ek0yMjQgNjRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sRSRyPUF1ZSxJJHI9QXVlLFAkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTVhMSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxOJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMiIsIk0yMjQuMy0yLjVjMTkuOC0xMS40IDQ0LjItMTEuNCA2NCAwTDQ2NC4yIDk5YzE5LjggMTEuNCAzMiAzMi42IDMyIDU1LjRsMCAyMDNjMCAyMi45LTEyLjIgNDQtMzIgNTUuNEwyODguMyA1MTQuNWMtMTkuOCAxMS40LTQ0LjIgMTEuNC02NCAwTDQ4LjUgNDEzYy0xOS44LTExLjQtMzItMzIuNi0zMi01NS40bDAtMjAzYzAtMjIuOSAxMi4yLTQ0IDMyLTU1LjRMMjI0LjMtMi41em0yMDcuOCAzNjBsMC0xNjYuMS0xNDMuOCA4MyAwIDE2Ni4xIDE0My44LTgzeiJdfSxPJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjRkYiIsIk00MTIuOCA0MTZjNDEuNS00MC43IDY3LjItOTcuMyA2Ny4yLTE2MCAwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0UzMyIDEzMi4zIDMyIDI1NiAxMzIuMyA0ODAgMjU2IDQ4MGwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTMxLjIgMHpNMjU2IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptNDggOTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sUiRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbWIiLGljb246WzU3Niw1MTIsWzEyODE2M10sImYxZTIiLCJNNDgwLTE2YzYuOSAwIDEzIDQuNCAxNS4yIDEwLjlsMTMuNSA0MC40IDQwLjQgMTMuNUM1NTUuNiA1MSA1NjAgNTcuMSA1NjAgNjRzLTQuNCAxMy0xMC45IDE1LjJsLTQwLjQgMTMuNS0xMy41IDQwLjRDNDkzIDEzOS42IDQ4Ni45IDE0NCA0ODAgMTQ0cy0xMy00LjQtMTUuMi0xMC45bC0xMy41LTQwLjQtNDAuNC0xMy41QzQwNC40IDc3IDQwMCA3MC45IDQwMCA2NHM0LjQtMTMgMTAuOS0xNS4ybDQwLjQtMTMuNSAxMy41LTQwLjRDNDY3LTExLjYgNDczLjEtMTYgNDgwLTE2ek0zMjEuNCA5Ny40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xMC45IDEwLjljNy45IDIyIDEyLjIgNDUuNyAxMi4yIDcwLjUgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzMyIDQxOC45IDMyIDMwNCAxMjUuMSA5NiAyNDAgOTZjMjQuNyAwIDQ4LjUgNC4zIDcwLjUgMTIuM2wxMC45LTEwLjl6TTE0NCAzMDRjMC01MyA0My05NiA5Ni05NiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHoiXX0sTkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjYWxlLXVuYmFsYW5jZWQiLGljb246WzY0MCw1MTIsWyJiYWxhbmNlLXNjYWxlLWxlZnQiXSwiZjUxNSIsIk01MTkuOCA2Mi40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVTNTE2LjMtMy45IDQ5OS42IDEuNmwtMTEzIDM3LjdjLTEzLjktMjMuNS0zOS42LTM5LjMtNjguOS0zOS4zLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgMyAuMiA1LjkgLjUgOC44TDExNS42IDEyOS42Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsMTM1LjUtNDUuMmM0LjUgMy4yIDkuMyA1LjkgMTQuNCA4LjJsMCAzMjYuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0yOTQuN2MyMS05LjIgMzcuMi0yNyA0NC4yLTQ5bDEyNS45LTQyek00MzcuMyAyODhsNzIuNC0xMjQuMiA3Mi40IDEyNC4yLTE0NC45IDB6bTcyLjQgOTZjNjIuOSAwIDExNS4yLTM0IDEyNi03OC45IDIuNi0xMS0xLTIyLjMtNi43LTMyLjFMNTMzLjggMTA5LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEwzOTAuNCAyNzMuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMSAxMC44IDQ0LjggNjMuMSA3OC45IDEyNiA3OC45ek0xMjYuOCAyOTEuOGw3Mi40IDEyNC4yLTE0NC45IDAgNzIuNC0xMjQuMnpNLjkgNDMzLjFDMTEuNyA0NzggNjQgNTEyIDEyNi44IDUxMnMxMTUuMi0zNCAxMjYtNzguOWMyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDE1MC45IDIzNy44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMNy42IDQwMS4xYy01LjcgOS44LTkuMyAyMS4xLTYuNyAzMi4xeiJdfSxGJHI9TkZlLE9GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1sZWZ0Il0sImYxOTEiLCJNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNnpNMTI4IDI1NmMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnoiXX0sQiRyPU9GZSxIJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVsZXIiLGljb246WzU3Niw1MTIsWzEyODIwN10sImY1NDUiLCJNMjA5LjEgNTE2LjJjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDI4LjEgNDAzLjFjLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45bDE3LTE3IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAzMy45LTMzLjkgNTAuOSA1MC45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTAuOS01MC45IDMzLjktMzMuOSA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMzMuOS0zMy45IDUwLjkgNTAuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTUwLjktNTAuOSAzMy45LTMzLjkgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDE3LTE3YzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwTDU0OC41IDEwOC45YzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45TDIwOS4xIDUxNi4yeiJdfSxxJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaSIsaWNvbjpbMzIwLDUxMixbMTA1XSwiNDkiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDk2IDAgMCAzMjAtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMCAwLTMyMCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxFdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLXhtYXJrIixpY29uOls1NzYsNTEyLFsidm9sdW1lLW11dGUiLCJ2b2x1bWUtdGltZXMiXSwiZjZhOSIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzY3IDE3NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNDcgNDctNDcgNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ3LTQ3IDQ3LTQ3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTQ3IDQ3LTQ3LTQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sViRyPUV1ZSxqJHI9RXVlLFUkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcmNod2F5IixpY29uOls1MTIsNTEyLFtdLCJmNTU3IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDAgMC0xMjhjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDEyOCAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTI3Mi00NDggMCAwIDI3MnoiXX0sUkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kaWdnaW5nIixpY29uOls1NzYsNTEyLFsiZGlnZ2luZyJdLCJmODVlIiwiTTIwOCA0MGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTEwLjUgMTgxLjNjNS45LTExLjkgMjAuMy0xNi43IDMyLjItMTAuN2wyNC42IDEyLjMgMTIuMi0yMC40YzE4LjktMzEuNSA1My4yLTUwLjUgODkuNi01MC41IDQ2LjIgMCA4Ny43IDMwLjUgMTAwLjUgNzUuNGwzMi4yIDExMi43IDkyLjkgNDYuNCAyNS44LTQzYzUuOC05LjYgMTYuMi0xNS41IDI3LjQtMTUuNXMyMS43IDUuOSAyNy40IDE1LjVsOTYgMTYwYzUuOSA5LjkgNi4xIDIyLjIgLjQgMzIuMlM1NTUuNSA1MTIgNTQ0IDUxMmwtMTkyIDBjLTExLjUgMC0yMi4yLTYuMi0yNy44LTE2LjJzLTUuNS0yMi4zIC40LTMyLjJMMzcwIDM4Ny44IDIxLjMgMjEzLjVjLTExLjktNS45LTE2LjctMjAuMy0xMC43LTMyLjJ6TTk0LjMgMzA3LjRsMTEyIDU2YzEwLjggNS40IDE3LjcgMTYuNSAxNy43IDI4LjZsMCA4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY4LjItNjEuMy0zMC43LTM2LjMgMTA5Yy01LjYgMTYuOC0yMy43IDI1LjgtNDAuNSAyMC4yUy0zLjkgNDg2LjYgMS43IDQ2OS45bDQ4LTE0NGMyLjktOC44IDkuNS0xNS45IDE4LjEtMTkuNHMxOC4zLTMuMiAyNi42IC45eiJdfSxXJHI9UkZlLEl1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1oaWdoIixpY29uOls1MTIsNTEyLFs2MjQ2MSwidGFjaG9tZXRlci1hbHQiLCJ0YWNob21ldGVyLWFsdC1mYXN0Il0sImY2MjUiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTI1NiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjR6TTE3NiAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNOTYgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzUyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LEckcj1JdWUsWSRyPUl1ZSxLJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VuZGVybGVzcyIsaWNvbjpbMzg0LDUxMixbXSwiZjIyZCIsIk0xOTIgMTI4YTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCAzMjBhMTkyIDE5MiAwIDEgMCAwLTM4NCAxOTIgMTkyIDAgMSAwIDAgMzg0eiJdfSxaJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc3VuIixpY29uOls2NDAsNTEyLFs5OTI1XSwiZjZjNCIsIk0yMDguMyAxOTJjNDMuMSAwIDgwLjUgMjQuNCA5OS4yIDYwLjEgMTQuNy0xNy4yIDM2LjQtMjguMSA2MC44LTI4LjEgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOS0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIwIDBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjctNzguNSA2Ni05MS4yLTEuMy02LjgtMi0xMy43LTItMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnptMTkyLTIyMy44YzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xbDQ3LjMgNzAuNCA4My4zLTE2LjNjNS4yLTEgMTAuNiAuNyAxNC4zIDQuNCAzLjggMy44IDUuNCA5LjIgNC40IDE0LjRsLTE2LjMgODMuMyA3MC40IDQ3LjNjNC40IDMgNy4xIDggNy4xIDEzLjMgMCA1LjMtMi42IDEwLjMtNyAxMy4ybC03MC40IDQ3LjMgMTQuNSA3NC4yYy0xNy4yLTIxLjctNDAuNC0zOC40LTY3LjItNDcuMy0yLjUtMTIuNy02LjktMjQuNi0xMi44LTM1LjcgOS42LTE0LjkgMTUuMi0zMi43IDE1LjItNTEuNyAwLTUzLTQzLTk2LTk2LTk2LTQ3LjkgMC04Ny42IDM1LjEtOTQuOCA4MC45LTIwLjktMTYtNDUuOS0yNy03My4xLTMxLjFsMjEuNS0xNC41LTE2LjMtODMuMi0uMy0yYy0uMy00LjYgMS4zLTkuMSA0LjYtMTIuNCAzLjgtMy44IDkuMi01LjQgMTQuNC00LjRsODMuMyAxNi4zIDQ3LjMtNzAuNCAxLjItMS42YzMtMy41IDcuNC01LjUgMTIuMS01LjV6bTAgMTc1LjhjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAzLjgtLjUgNy42LTEuNCAxMS4xLTIxLjctMTYuOS00OC45LTI3LjEtNzguNi0yNy4xLTQuNiAwLTkuMSAuMi0xMy41IC43IDYuNC0xOSAyNC4zLTMyLjcgNDUuNS0zMi43eiJdfSxrcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWzg1OTRdLCJmMDYxIiwiTTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3MC43IDAtMTA1LjQgMTA1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHoiXX0sUHVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzaGFrZSIsaWNvbjpbNTc2LDUxMixbMTI5MzA5LDYyNjYyLCJoYW5kc2hha2UtYWx0IiwiaGFuZHNoYWtlLXNpbXBsZSJdLCJmMmI1IiwiTTI2OC45IDg1LjJMMTUyLjMgMjE0LjhjLTQuNiA1LjEtNC40IDEzIC41IDE3LjkgMzAuNSAzMC41IDgwIDMwLjUgMTEwLjUgMGwzMS44LTMxLjhjNC4yLTQuMiA5LjUtNi41IDE0LjktNi45IDYuOC0uNiAxMy44IDEuNyAxOSA2LjlMNTA1LjYgMzc2IDU3NiAzMjAgNTc2IDMyIDQ2NCA5NiA0NDAuMiA4MC4xQzQyNC40IDY5LjYgNDA1LjkgNjQgMzg2LjkgNjRsLTcwLjQgMGMtMS4xIDAtMi4zIDAtMy40IC4xLTE2LjkgLjktMzIuOCA4LjUtNDQuMiAyMS4xek0xMTYuNiAxODIuN0wyMjMuNCA2NCAxODMuOCA2NGMtMjUuNSAwLTQ5LjkgMTAuMS02Ny45IDI4LjFMMTEyIDk2IDAgMzIgMCAzMjAgMTU2LjQgNDUwLjNjMjMgMTkuMiA1MiAyOS43IDgxLjkgMjkuN2wxNS43IDAtNy03Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDEgNDEgOSAwYzE5LjEgMCAzNy44LTQuMyA1NC44LTEyLjNMMzU5IDQ0MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMyIDMyIDE3LjUtMTcuNWM4LjktOC45IDExLjUtMjEuOCA3LjYtMzMuMWwtMTM3LjktMTM2LjgtMTQuOSAxNC45Yy00OS4zIDQ5LjMtMTI5LjEgNDkuMy0xNzguNCAwLTIzLTIzLTIzLjktNTkuOS0yLjItODR6Il19LFEkcj1QdWUsWCRyPVB1ZSxGRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZyIsaWNvbjpbNTc2LDUxMixbOTk3NSwic2tpaW5nIl0sImY3YzkiLCJNNDE2IDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMi43IDMwMC45YzYuMS0xMS44IDIwLjYtMTYuMyAzMi40LTEwLjJsMTk3LjggMTAyLjcgNjIuMy04Ny4yLTgyLTkyLjJjLTExLTEyLjQtMTYuMi0yNy41LTE2LjItNDIuNGwxMTEuNiA1My40IDQyLjkgNDguMmMxNC45IDE2LjcgMTYuMiA0MS42IDMuMiA1OS44bC02NC40IDkwLjIgMTI4LjMgNjYuNmMxMy42IDcuMSAyOS44IDcuMiA0My42IC4zbDE1LjItNy42YzExLjktNS45IDI2LjMtMS4xIDMyLjIgMTAuN3MxLjEgMjYuMy0xMC43IDMyLjJsLTE1LjIgNy42Yy0yNy41IDEzLjctNTkuOSAxMy41LTg3LjItLjdMMTIuOSAzMzMuM0MxLjIgMzI3LjItMy40IDMxMi43IDIuNyAzMDAuOXpNMTAzIDQ5LjZsMTggOC43IDguNy0xNy40YzQtNy45IDEzLjYtMTEuMSAyMS41LTcuMnMxMS4xIDEzLjYgNy4yIDIxLjVsLTguNSAxNyA4NC44IDQxIC40LS4yIDc2LjEtMzMuOGMzMS4zLTEzLjkgNjcuOS0uNyA4My4yIDI5LjlsMjguOSA1Ny44IDY4LjcgMjcuNWMxNi40IDYuNiAyNC40IDI1LjIgMTcuOCA0MS42cy0yNS4yIDI0LjQtNDEuNiAxNy44TDM5My44IDIyNGMtMTAuOS00LjQtMTkuOC0xMi42LTI1LjEtMjMuMWwtMTEuNS0yMy4xYy0xNi40IDkuNC0yNS45IDE0LjgtMjguNSAxNi4zbC03LjYtMy43LTE4NS42LTg5LjYtOS4yIDE4LjNjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnMtMTEuMS0xMy42LTcuMi0yMS41bDktMTcuOS0xNy42LTguNUM4MS4xIDc0LjYgNzcuOCA2NSA4MS42IDU3Uzk1IDQ1LjcgMTAzIDQ5LjZ6Il19LEokcj1GRmUsZUFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRjZSIsIk02NCA2NGw1MTIgMCAwIDExMmMtMzcuNiA5LjQtNjQgNDMuMi02NCA4MmwwIDc2LjRjLTIxLTkuNy00My41LTE0LjUtNjYtMTQuNC0xMCAuMS0yMC4xIDEuMS0zMCAzLjFsMC0zNS4xYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzIuN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMjcuNyAuMi01NS40IDcuOC04MCAyM2wwLTg1YzAtMzguOC0yNi40LTcyLjYtNjQtODJMNjQgNjR6TTQwMy40IDQ0NC4xQzM3OS4xIDQ2Mi4zIDM1MS4xIDQ4MCAzMjAgNDgwcy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sdEFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNyIsIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDIwOCAwIDAtMjcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMzA0IDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTUyMCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTgwYzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4MGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwem0tMTY4IDBsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtMjRjMC0xMS05LTIwLTIwLTIwbC04IDBjLTExIDAtMjAgOS0yMCAyMCAwIDYuNSAzLjEgMTIuNCA4IDE2bDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwyMC40IDBjMS45IDkuMSA5LjkgMTYgMTkuNiAxNiAxMSAwIDIwLTkgMjAtMjAgMC0xOS45LTE2LjEtMzYtMzYtMzZsLTI0IDBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0em0tOTAuMS0zMi45Yy00LjEtOC4zLTEzLjUtMTIuNy0yMi41LTEwLjVTMjIwIDM5MC43IDIyMCA0MDBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00My4zIDI2LjEgNTIuMmM0LjEgOC4zIDEzLjUgMTIuNyAyMi41IDEwLjVTMzI0IDUzNy4zIDMyNCA1MjhsMC0xMjhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgNDMuMy0yNi4xLTUyLjJ6Il19LHJBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZ2xvbyIsaWNvbjpbNTc2LDUxMixbXSwiZjdhZSIsIk0zMjAgMzMuOGwwIDEyNi4yLTI3MS41IDBjNTEuNy03Ny4yIDEzOS42LTEyOCAyMzkuNS0xMjggMTAuOCAwIDIxLjUgLjYgMzIgMS44ek0zNjggMTYwbDAtMTE2LjdjNjYgMTkgMTIyLjIgNjEgMTU5LjUgMTE2LjdMMzY4IDE2MHpNMjIuNiAyMDhsNzMuNCAwIDAgMTEyLTk2IDBjMC0zOS43IDgtNzcuNiAyMi42LTExMnpNMTc2IDMyMGwtMzIgMCAwLTExMiAyODggMCAwIDExMi0zMiAwIDAgNDggMTc2IDAgMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjQgMTc2IDAgMC00OHptMzA0IDBsMC0xMTIgNzMuNCAwQzU2OCAyNDIuNCA1NzYgMjgwLjMgNTc2IDMyMGwtOTYgMHpNMjg4IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4MCAxMjggMCAwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0eiJdfSxCRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvbGxhci10by1zbG90IixpY29uOls1NzYsNTEyLFsiZG9uYXRlIl0sImY0YjkiLCJNOTYgMjI0YTE5MiAxOTIgMCAxIDEgMzg0IDAgMTkyIDE5MiAwIDEgMSAtMzg0IDB6bTE3Ni05MmwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwyNDggMjcyYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwek00OCAzNDRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sYUFyPUJGZSxpQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieSIsaWNvbjpbMzg0LDUxMixbMTIxXSwiNTkiLCJNNTggNDUuNEM0Ny44IDMxIDI3LjggMjcuNyAxMy40IDM4Uy00LjMgNjguMiA2IDgyLjZMMTYwIDI5OC4zIDE2MCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0OS43IDE1NC0yMTUuN2MxMC4zLTE0LjQgNi45LTM0LjQtNy40LTQ0LjZTMzM2LjIgMzEgMzI2IDQ1LjRMMTkyIDIzMi45IDU4IDQ1LjR6Il19LEhGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODUyMSwic21pbGUtd2luayJdLCJmNGRhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sc0FyPUhGZSxuQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1mb3VyIixpY29uOls0NDgsNTEyLFs5ODU5XSwiZjUyNCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zNTIgMTYwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxxRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludC10ZWFycyIsaWNvbjpbNTc2LDUxMixbMTI5MzE1LCJncmluLXNxdWludC10ZWFycyJdLCJmNTg2IiwiTTU2MCAzNS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQ2OS4xIDkzYy0xMC42IDEuNS0xOS42LTcuNS0xOC4xLTE4LjFsNi43LTQ2LjdDNDYxLjMgMi44IDQ4My0xNiA1MDguNi0xNiA1MzctMTYgNTYwIDcgNTYwIDM1LjR6TTQwMy41IDY4LjFjLTYgNDIuMiAzMC4yIDc4LjQgNzIuNCA3Mi40bDM3LjgtNS40QzU2NS43IDIzMiA1NTAuOCAzNTUuMyA0NjkgNDM3cy0yMDUgOTYuNi0zMDEuOSA0NC43bDUuNC0zNy44YzYtNDIuMi0zMC4yLTc4LjQtNzIuNC03Mi40bC0zNy44IDUuNEMxMC4zIDI4MCAyNS4yIDE1Ni43IDEwNyA3NVMzMTItMjEuNyA0MDguOSAzMC4zbC01LjQgMzcuOHpNNDE3LjggMjAxYy0xOS4xIDM2LjQtNDUuNiA3Mi43LTc4LjkgMTA2cy02OS42IDU5LjgtMTA2IDc4LjljLTExLjEgNS44LTEyLjQgMjEuNC0xLjEgMjYuNiA1OS4yIDI3LjUgMTMxLjggMTYuOCAxODAuNi0zMnM1OS41LTEyMS40IDMyLTE4MC42Yy01LjMtMTEuMy0yMC44LTEwLTI2LjYgMS4xek0xMTMuOSAyNzAuNmMxLjcgOCA5IDEzLjQgMTcuMSAxMi43bDQzLjEtMy45LTMuOSA0My4xYy0uNyA4LjEgNC43IDE1LjUgMTIuNyAxNy4xczE1LjktMi45IDE4LjQtMTAuNmwyOC04NC42YzEuOS01LjcgLjQtMTIuMS0zLjktMTYuM3MtMTAuNi01LjgtMTYuMy0zLjlsLTg0LjYgMjhjLTcuNyAyLjYtMTIuMyAxMC41LTEwLjYgMTguNXpNMzE1LjIgOTkuMWMuNy04LjEtNC43LTE1LjUtMTIuNy0xNy4xcy0xNS45IDIuOS0xOC41IDEwLjZsLTI4IDg0LjZjLTEuOSA1LjctLjQgMTIuMSAzLjkgMTYuM3MxMC42IDUuOCAxNi4zIDMuOWw4NC42LTI4YzcuNy0yLjYgMTIuMy0xMC41IDEwLjYtMTguNHMtOS0xMy40LTE3LjEtMTIuN2wtNDMuMSAzLjkgMy45LTQzLjF6TTYwLjEgNDI1LjdsNDYuNy02LjdjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0MxMTQuNyA1MDkuMiA5MyA1MjggNjcuNCA1MjggMzkgNTI4IDE2IDUwNSAxNiA0NzYuNiAxNiA0NTEgMzQuOCA0MjkuMyA2MC4xIDQyNS43eiJdfSxvQXI9cUZlLGxBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWF1ZGlvIixpY29uOlszODQsNTEyLFtdLCJmMWM3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41em01My44IDE4NS4yYy05LjEtNi4zLTIxLjUtNC4xLTI3LjggNXMtNC4xIDIxLjUgNSAyNy44YzIzLjkgMTYuNyAzOS40IDQ0LjMgMzkuNCA3NS41cy0xNS42IDU4LjktMzkuNCA3NS41Yy05LjEgNi4zLTExLjMgMTguOC01IDI3LjhzMTguOCAxMS4zIDI3LjggNWMzNC4xLTIzLjggNTYuNi02My41IDU2LjYtMTA4LjNTMjk2IDI2Ny41IDI2MS44IDI0My43ek04MCAzMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMjQgMHptMTI4IDcyLjJjMCAxMC43IDEwLjUgMTguMiAxOC45IDExLjYgMTIuOS0xMC4zIDIxLjEtMjYuMSAyMS4xLTQzLjhzLTguMi0zMy41LTIxLjEtNDMuOGMtOC40LTYuNy0xOC45IC45LTE4LjkgMTEuNmwwIDY0LjV6Il19LGNBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1saW5lIixpY29uOls1MTIsNTEyLFtdLCJlNGI4IiwiTTIxNC42IDMxMC42bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDI3NC43IDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNDIuNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTI1NiAwbC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0yNDIuN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0zMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyeiJdfSxkQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZyIsaWNvbjpbNDQ4LDUxMixbMTAzXSwiNDciLCJNMjI0IDk2QzEzNS42IDk2IDY0IDE2Ny42IDY0IDI1NnM3MS42IDE2MCAxNjAgMTYwYzc3LjQgMCAxNDItNTUgMTU2LjgtMTI4TDI1NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ0IDBjMjUuOCAwIDQ5LjYgMjEuNCA0Ny4yIDUwLjYtOS41IDExNS0xMDUuOCAyMDUuNC0yMjMuMiAyMDUuNC0xMjMuNyAwLTIyNC0xMDAuMy0yMjQtMjI0UzEwMC4zIDMyIDIyNCAzMmM1Ny40IDAgMTA5LjcgMjEuNiAxNDkuMyA1NyAxMy4yIDExLjggMTQuMyAzMiAyLjUgNDUuMnMtMzIgMTQuMy00NS4yIDIuNUMzMDIuMyAxMTEuNCAyNjUgOTYgMjI0IDk2eiJdfSx1QXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmloYXJhIixpY29uOls1NzYsNTEyLFtdLCJmNmE3IiwiTTI3My42LTMuMmM4LjUtNi40IDIwLjMtNi40IDI4LjggMEw0NDMuMiAxMDIuNGM4LjMgNi4yIDE4LjQgOS42IDI4LjggOS42IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgNDggNTguNyA2NCAxMy4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQ4IDI0LjQgMzIgMTUuNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjIuMSAwIDE3LjktMzIgMC00OC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTMuMyAwIDU4LjctNjQgMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzEwLjQgMCAyMC41LTMuNCAyOC44LTkuNkwyNzMuNi0zLjJ6TTEyOCAzNjhsMzIwIDAgMC00OC0zMjAgMCAwIDQ4ek0zODQgMTYwbC0xOTIgMCAwIDQ4IDE5MiAwIDAtNDh6Il19LHBBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLWNoZWNrZXJlZCIsaWNvbjpbNDQ4LDUxMixbMTI3OTM3XSwiZjExZSIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMjc5LjdjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgMzg0IDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwek02NCAxODcuMWw2NC0xMy45IDAgNjUuNS02NCAxMy45IDAgNjUuNSA0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1LTguMi00LjEtMTYuOS03LTI1LjgtOC44bDAgNzIuNGMtMTMtLjQtMjYgLjgtMzguNyAzLjZsLTI1LjMgNS41IDAtNzUuMi02NCAxNiAwIDczLjF6TTMyMCAzMzUuN2MxNi44IDEuNSAzMy45LS43IDUwLTYuOGwxNC01LjIgMC03MS43LTcuOSAxLjhjLTE4LjQgNC4zLTM3LjMgNS43LTU2LjEgNC41bDAgNzcuNHptNjQtMTQ5LjRsMC03MC44Yy0yMC45IDYuMS00Mi40IDkuMS02NCA5LjFsMCA2OS40YzEzLjkgMS40IDI4IC41IDQxLjctMi42bDIyLjMtNS4yeiJdfSxOdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2Utc2ltcGxlIixpY29uOls1MTIsNTEyLFsiZ2F1Z2Utc2ltcGxlLW1lZCIsInRhY2hvbWV0ZXItYXZlcmFnZSJdLCJmNjI5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMyMCA5NmMwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3Mi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sZkFyPU51ZSxoQXI9TnVlLFZGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1sZWZ0IixpY29uOls1MTIsNTEyLFsiZXhjaGFuZ2UtYWx0Il0sImYzNjIiLCJNNTAyLjYgMTUwLjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgMjM2LjkgMzUyIDIyNGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAyNzUuMSAxNjAgMjg4bDAgNjQgMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02Ljl6Il19LG1Bcj1WRmUsZ0FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpbGxzIixpY29uOls1MTIsNTEyLFtdLCJmNDg0IiwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyLTk2IDAgMC0xMTJ6TTE3NiAzNjhjMC00OC43IDE4LjEtOTMuMiA0OC0xMjdsMC0xMjlDMjI0IDUwLjEgMTczLjkgMCAxMTIgMFMwIDUwLjEgMCAxMTJMMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTIgMzcuMyAwIDcwLjMtMTguMiA5MC43LTQ2LjMtMTctMjguNi0yNi43LTYyLTI2LjctOTcuN3ptNjQuNyA2Ny40YzQuNiA4LjcgMTYuMyA5LjcgMjMuMyAyLjdMNDM4LjEgMjY0YzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0yOTcuOSA0NzJjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40LTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgNDcyeiJdfSxiQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXhwbG9zaW9uIixpY29uOls1MTIsNTEyLFtdLCJlNGU5IiwiTTI1Ni0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTYwYzEyLjQgMCAyMi43IDkuNCAyMy45IDIxLjdMMjkzLjQgMjkxLjYgNDY3LjYgMTEuM2M2LjctMTAuNyAyMC41LTE0LjUgMzEuNy04LjVzMTUuOCAxOS41IDEwLjYgMzFMMzcyLjggMzM4LjZjMi4yIDIuMyA0LjMgNC43IDYuMyA3LjFsOTcuMi01NC43YzEwLjUtNS45IDIzLjYtMy4xIDMwLjkgNi40czYuMyAyMy0yLjIgMzEuNWwtODcgODctNzEuNCAwYy0xMy4yLTM3LjMtNDguNy02NC05MC41LTY0cy03Ny40IDI2LjctOTAuNSA2NGwtNzkuNiAwLTc1LjUtNTIuM0MuNiAzNTctMi44IDM0NC4xIDIuNCAzMzMuNXMxNy40LTE1LjkgMjguNy0xMi40bDk3LjIgMzAuNGMzLTMuOSA2LjEtNy42IDkuNC0xMS4zTDc1LjQgMjM2LjNjLTYuMS0xMC4xLTMuOS0yMy4xIDUuMS0zMC43czIyLjItNy41IDMxLjEgLjFMMjE0IDI5My42YzEuNS0uNCAzLS44IDQuNS0xLjFsMTMuNi0xNDIuN2MxLjItMTIuMyAxMS41LTIxLjcgMjMuOS0yMS43ek0zMiA0NjRsNDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMHoiXX0seEFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1kb3duLXRvLXBlb3BsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiOSIsIk0xMTMgMTUzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxNSA4OUM1LjcgNzkuNiA1LjcgNjQuNCAxNSA1NVMzOS42IDQ1LjcgNDkgNTVMNzIgNzguMSA3Mi04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6bTMyMCAwYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwzMzUgODljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMyAyMyAwLTg2LjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDg2LjEgMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02NCA2NHpNMjU2IDE5MmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptMCAxNjBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTUzIDQzLTk2IDk2LTk2ek0zMiAyODhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzUyIDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNODAgMzY4YzE1LjMgMCAyOS42IDQuMyA0MS44IDExLjgtNi4zIDE2LjItOS44IDMzLjgtOS44IDUyLjJsMCA0OGMwIDExLjQgMi40IDIyLjIgNi43IDMybC04Ny44IDBDMTMuOCA1MTIgMCA0OTguMiAwIDQ4MS4xTDAgNDQ4YzAtNDQuMiAzNS44LTgwIDgwLTgwek0zOTMuMyA1MTJjNC4zLTkuOCA2LjctMjAuNiA2LjctMzJsMC00OGMwLTE4LjQtMy41LTM2LTkuOC01Mi4yIDEyLjItNy41IDI2LjUtMTEuOCA0MS44LTExLjggNDQuMiAwIDgwIDM1LjggODAgODBsMCAzMy4xYzAgMTctMTMuOCAzMC45LTMwLjkgMzAuOWwtODcuOCAweiJdfSx2QXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtdmlld2ZpbmRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMxNDkuMyAwIDEzNiAwTDY0IDB6TTQ0MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQ0MCAwek00OCAzNzZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAzNjIuNyAwIDM3NmwwIDcyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTcyem01MjggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyYzAgOC44LTcuMiAxNi0xNiAxNmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzJ6TTI4OCAyMTZhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTAgNDBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtNTMtNDMtOTYtOTYtOTZ6bTE5Mi02NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNjggMjcyLjNjLTQ5LjMgNC4xLTg4IDQ1LjMtODggOTUuN2wwIDEwLjdjMCAxMS44IDkuNiAyMS4zIDIxLjMgMjEuM2w0Ni44IDBjLTIuNy03LjUtNC4xLTE1LjYtNC4xLTI0bDAtMjRjMC0yOS41IDguOC01Ni45IDI0LTc5Ljd6TTQyNy45IDQwMGw0Ni44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01MC4zLTM4LjctOTEuNi04OC05NS43IDE1LjIgMjIuOCAyNCA1MC4yIDI0IDc5LjdsMCAyNGMwIDguNC0xLjQgMTYuNS00LjEgMjR6TTE5MiAxOTJhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0seUFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1vbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTRkZCIsIk0yNDgtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyMDAtMjEuMyAyMDAtOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NHpNMTQ1LjMgMjA4bDE1Ny41IDBjNi43IDAgMTIuNiA0LjEgMTUgMTAuNGwyNi4xIDY5LjYtMjM5LjYgMCAyNi4xLTY5LjZjMi4zLTYuMiA4LjMtMTAuNCAxNS0xMC40ek0zNCAyOTIuOGwtMS4zIDMuNEMxMy4yIDMwNy4xIDAgMzI4IDAgMzUyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyODggMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0yNC0xMy4yLTQ0LjktMzIuOC01NS45bC0xLjMtMy40LTM2LjMtOTYuOWMtMTEuNy0zMS4yLTQxLjYtNTEuOS03NC45LTUxLjlsLTE1Ny41IDBjLTMzLjMgMC02My4yIDIwLjctNzQuOSA1MS45TDM0IDI5Mi44ek05NiAzMzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yMjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNyA3Qy0yLjMgMTYuNC0yLjMgMzEuNiA3IDQxTDU1IDg5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwUzk4LjMgNjQuNCA4OSA1NUw0MSA3QzMxLjYtMi4zIDE2LjQtMi4zIDcgN3pNNDA3IDdMMzU5IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlTNDE2LjQtMi4zIDQwNyA3eiJdfSx3QXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xlaWdoIixpY29uOls2NDAsNTEyLFtdLCJmN2NjIiwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NFM0Ni4zIDk2IDY0IDk2bDAgMTYwYzAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDY5LjUtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1MDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwIDAtNjRjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OC45IDBjLTQ4LjUgMC05Mi44LTI3LjQtMTE0LjUtNzAuOGwtMjUuMi01MC41QzIzNy43IDU5LjQgMTkzLjQgMzIgMTQ0LjkgMzJMNjQgMzJ6TTQzMiA0MTZsLTI1NiAwIDAtNjQgMjU2IDAgMCA2NHoiXX0sa0FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bWJiZWxsIixpY29uOls2NDAsNTEyLFtdLCJmNDRiIiwiTTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyIDI1NiAwIDAtMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxNiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYgMCAwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtMTEyLTI1NiAwIDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtMTYtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC0xNnoiXX0sakZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnktY2FycmlhZ2UiLGljb246WzUxMiw1MTIsWyJjYXJyaWFnZS1iYWJ5Il0sImY3N2QiLCJNNjQgMjA4bDAgODBjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTEyIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYtMzM2IDB6bS4yLTQ4bDIyMy44IDAgMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMjMyIDBDMTQxLjkgMCA2OC40IDcwLjkgNjQuMiAxNjB6TTE2MCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMjg4IDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sU0FyPWpGZSxNQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2l3aS1iaXJkIixpY29uOls1NzYsNTEyLFtdLCJmNTM1IiwiTTI5MS4yIDM4OC40YzMxLjItMTguOCA2NC43LTM2LjQgMTAxLjEtMzYuNGw1NS43IDBjNC42IDAgOS4xLS4yIDEzLjYtLjdsODUuMyAxMjEuOWM0IDUuNyAxMS4zIDguMiAxNy45IDYuMVM1NzYgNDcxIDU3NiA0NjRsMC0yNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTU1LjcgMEMzNTUuOSA5NiAzMjIuNCA3OC40IDI5MS4yIDU5LjYgMjYyLjMgNDIuMSAyMjguMyAzMiAxOTIgMzIgODYgMzIgMCAxMTggMCAyMjQgMCAyOTUuMSAzOC42IDM1Ny4xIDk2IDM5MC4zTDk2IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDZjMTUuMyAzLjkgMzEuNCA2IDQ4IDYgNS40IDAgMTAuNy0uMiAxNi0uN2wwIDQwLjdjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTUwLjljMTIuNC00LjQgMjQuMi0xMCAzNS4yLTE2Ljd6TTQ0OCAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxVRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXIteG1hcmsiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci10aW1lcyJdLCJmMjczIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjkxLjkgMjIwLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0zMy45IDMzLjktMzMuOS0zMy45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjkgMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzMuOS0zMy45IDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXoiXX0sQ0FyPVVGZSxXRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvd24iLGljb246WzUxMiw1MTIsWzYxNDY2LCJhcnJvdy1hbHQtY2lyY2xlLWRvd24iXSwiZjM1OCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTI0NC43IDM4Ny4zbC0xMDQtMTA0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40czguMy05LjkgMTQuOC05LjlsNTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiA1NiAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC0xMDQgMTA0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHoiXX0sekFyPVdGZSxfQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1tZWRpY2FsIixpY29uOlszODQsNTEyLFtdLCJmNDc3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNjAgMjgwbDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxFcD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4bWFyayIsaWNvbjpbMzg0LDUxMixbMTI4NDczLDEwMDA1LDEwMDA2LDEwMDYwLDIxNSwiY2xvc2UiLCJtdWx0aXBseSIsInJlbW92ZSIsInRpbWVzIl0sImYwMGQiLCJNNTUuMSA3My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxNDcuMiAyNTYgOS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5Mi41IDMwMS4zIDMyOS45IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjM3LjggMjU2IDM3NS4xIDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5Mi41IDIxMC43IDU1LjEgNzMuNHoiXX0sVEFyPUVwLExBcj1FcCxEQXI9RXAsJEFyPUVwLEdGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFwZXMiLGljb246WzUxMiw1MTIsWyJ0cmlhbmdsZS1jaXJjbGUtc3F1YXJlIl0sImY2MWYiLCJNMjU2IDBjMTEuMiAwIDIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzM2My41IDIyNCAzNTIgMjI0bC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMmw5Ni0xNjBDMjM0LjMgNS45IDI0NC44IDAgMjU2IDB6TTEyOCAyNzJhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0yMDAgMTZsMTEyIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTExMiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTExMmMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0sQUFyPUdGZSxFQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1vbmUiLGljb246WzQ0OCw1MTIsWzk4NTZdLCJmNTI1IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxJQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jay1vcGVuIixpY29uOls1NzYsNTEyLFtdLCJmM2MxIiwiTTM4NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4UzMyMCAyNS4zIDMyMCA5NmwwIDY0LTE2MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMCAwLTY0eiJdfSxQQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVwcGVyLWhvdCIsaWNvbjpbNTc2LDUxMixbMTI3Nzk4XSwiZjgxNiIsIk01NDUgNjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NzguOSA2My4yQzQ1Mi4zIDQzLjYgNDE5LjUgMzIgMzg0IDMyIDM0OC45IDMyIDMxNi41IDQzLjMgMjkwLjEgNjIuNCAyNzQuMSA3NC4xIDI4NC4yIDk2IDMwNCA5NmwyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgMTkuOCAyMS45IDI5LjkgMzMuNiAxMy45IDE5LjEtMjYuNCAzMC40LTU4LjggMzAuNC05My45IDAtMzUuNS0xMS42LTY4LjMtMzEuMi05NC45TDU0NSA2NXpNMjcwIDEzNS41bC0xNTkuNiAyMjhDMTAxLjMgMzc2LjQgODYuNyAzODQgNzEgMzg0bC03IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjcuMSAwYzY1LjcgMCAxMjkuNy0yMC4yIDE4My41LTU3LjhMNDQwLjUgMzA2LjFDNDM1IDI5NS45IDQzMiAyODQuMiA0MzIgMjcybC01NiAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTU2Yy0xMi4yIDAtMjMuOS0zLTM0LTguNXoiXX0sWUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyb3BsZXQtc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aW50LXNsYXNoIl0sImY1YzciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NjMuNiAzOTcuOGMxMC41LTIzLjggMTYuNC01MC4xIDE2LjQtNzcuOCAwLTkxLjItMTMwLjItMjc0LjEtMTY2LjYtMzIzLjUtNS45LTgtMTUuMi0xMi41LTI1LjItMTIuNWwtLjQgMGMtMTAgMC0xOS4zIDQuNS0yNS4yIDEyLjUtMTUuNiAyMS4yLTQ4LjUgNjYuOS04MC45IDExOS40TDQxLTI0Ljl6bTkyIDIyNy43Yy0yMS42IDQzLjgtMzcgODUuOS0zNyAxMTcuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0My40IDAgODMuNC0xNC40IDExNS41LTM4LjZMMTMzIDIwMi44eiJdfSxOQXI9WUZlLEtGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcm9wbGV0IixpY29uOlszODQsNTEyLFsxMjgxNjcsInRpbnQiXSwiZjA0MyIsIk0xOTIgNTEyQzg2IDUxMiAwIDQyNiAwIDMyMCAwIDIyOC44IDEzMC4yIDQ1LjkgMTY2LjYtMy41IDE3Mi41LTExLjUgMTgxLjgtMTYgMTkxLjgtMTZsLjQgMGMxMCAwIDE5LjMgNC41IDI1LjIgMTIuNSAzNi40IDQ5LjQgMTY2LjYgMjMyLjMgMTY2LjYgMzIzLjUgMCAxMDYtODYgMTkyLTE5MiAxOTJ6TTExMiAzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA3NS4xIDYwLjkgMTM2IDEzNiAxMzYgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4eiJdfSxPQXI9S0ZlLE91ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjg0NDEsMTI4NDYyLDYxNjg2LCJmaWxlLWFsdCIsImZpbGUtdGV4dCJdLCJmMTVjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMjAgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LFJBcj1PdWUsRkFyPU91ZSxCQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMtZG9sbGFyIixpY29uOls1NzYsNTEyLFtdLCJmNjUzIiwiTTE5MiAzMjBjMTA2IDAgMTkyLTc4LjggMTkyLTE3NlMyOTgtMzIgMTkyLTMyIDAgNDYuOCAwIDE0NGMwIDM5LjYgMTQuMyA3Ni4yIDM4LjQgMTA1LjZMMi44IDMxNi44Qy0yLjEgMzI2LjEtLjQgMzM3LjUgNyAzNDVzMTguOSA5LjIgMjguMiA0LjJMMTE2LjggMzA2YzIzLjEgOSA0OC41IDE0IDc1LjIgMTR6bTMuMiA0OGMxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0IDI2LjcgMCA1Mi4xLTUgNzUuMi0xNGw4MS42IDQzLjJjOS4zIDQuOSAyMC43IDMuMiAyOC4yLTQuMnM5LjItMTguOSA0LjItMjguMmwtMzUuNi02Ny4yYzI0LjEtMjkuNCAzOC40LTY2IDM4LjQtMTA1LjYgMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTExLjUgMTE1LjgtMTE1LjggMjAxLjItMjM1LjggMjAyLjd6TTE5NiAzMmMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN2MtMjUuMy00LjItNDMuOS0yNi4xLTQzLjktNTEuOCAwLTI4LjggMjMuMi01Mi4yIDUyLTUyLjVsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sWkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24iLGljb246WzUxMiw1MTIsWyJzZWFyY2gtbG9jYXRpb24iXSwiZjY4OSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNiA2IDcuMyAxNi44IDcuMyAyMi43IDAgMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LEhBcj1aRmUsU3BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZSIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek02NCAzODRsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTg4IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0Uzc0LjcgNjQgODggNjR6bTAgOTZsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0scUFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbnRhZ29uIixpY29uOls1NzYsNTEyLFtdLCJlNzkwIiwiTTMxNi40LTMuMWMtMTYuOC0xMi4yLTM5LjYtMTIuMi01Ni40IDBMMzUuMyAxNjAuMmMtMTYuOCAxMi4yLTIzLjkgMzMuOS0xNy40IDUzLjdsODUuOCAyNjQuMWM2LjQgMTkuOCAyNC45IDMzLjIgNDUuNyAzMy4ybDI3Ny43IDBjMjAuOCAwIDM5LjItMTMuNCA0NS43LTMzLjJsODUuOC0yNjQuMWM2LjQtMTkuOC0uNi00MS40LTE3LjQtNTMuN0wzMTYuNC0zLjF6Il19LFZBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXB1YmxpY2FuIixpY29uOls2NDAsNTEyLFtdLCJmNzVlIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJsMjI0IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCA2NC01NDQgMCAwLTY0em0xNTItMzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMjMyIDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjgwIDE2MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xMjggMjg4bDQxNiAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBsMC00OC0zMiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTkyIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjAgMTI4IDB6Il19LFFGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0Il0sImY1NGYiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTYuOCAxMTMuN2MzLjYgNy4yIDUuNSAxNS4xIDUuNSAyMy4yIDAgMjcuMy0yMS4yIDQ5LjctNDggNTEuNkw1MTIgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTk2IDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAweiJdfSxqQXI9UUZlLFJ1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxtIixpY29uOls0NDgsNTEyLFsxMjc5MDIsNjIzNjgsImZpbG0tYWx0IiwiZmlsbS1zaW1wbGUiXSwiZjAwOCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNNDggMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzA0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHoiXX0sVUFyPVJ1ZSxXQXI9UnVlLEdBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU0ZDQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDQ1NC42IDQwMHoiXX0sWUFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnRzIixpY29uOls1NzYsNTEyLFsxMjg0OTAsNjE2NzBdLCJmMDg2IiwiTTM4NCAxNDRjMCA5Ny4yLTg2IDE3Ni0xOTIgMTc2LTI2LjcgMC01Mi4xLTUtNzUuMi0xNEwzNS4yIDM0OS4yYy05LjMgNC45LTIwLjcgMy4yLTI4LjItNC4ycy05LjItMTguOS00LjItMjguMmwzNS42LTY3LjJDMTQuMyAyMjAuMiAwIDE4My42IDAgMTQ0IDAgNDYuOCA4Ni0zMiAxOTItMzJTMzg0IDQ2LjggMzg0IDE0NHptMCAzNjhjLTk0LjEgMC0xNzIuNC02Mi4xLTE4OC44LTE0NCAxMjAtMS41IDIyNC4zLTg2LjkgMjM1LjgtMjAyLjcgODMuMyAxOS4yIDE0NSA4OC4zIDE0NSAxNzAuNyAwIDM5LjYtMTQuMyA3Ni4yLTM4LjQgMTA1LjZsMzUuNiA2Ny4yYzQuOSA5LjMgMy4yIDIwLjctNC4yIDI4LjJzLTE4LjkgOS4yLTI4LjIgNC4yTDQ1OS4yIDQ5OGMtMjMuMSA5LTQ4LjUgMTQtNzUuMiAxNHoiXX0sS0FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZ3MiLGljb246WzU3Niw1MTIsW10sImYwMmMiLCJNNDAxLjIgMzkuMUw1NDkuNCAxODkuNGMyNy43IDI4LjEgMjcuNyA3My4xIDAgMTAxLjJMMzkzIDQ0OC45Yy05LjMgOS40LTI0LjUgOS41LTMzLjkgLjJzLTkuNS0yNC41LS4yLTMzLjlMNTE1LjMgMjU2LjhjOS4yLTkuMyA5LjItMjQuNCAwLTMzLjdMMzY3IDcyLjljLTkuMy05LjQtOS4yLTI0LjYgLjItMzMuOXMyNC42LTkuMiAzMy45IC4yek0zMi4xIDIyOS41TDMyLjEgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTMzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2wxNDQgMTQ0YzI1IDI1IDI1IDY1LjUgMCA5MC41TDI4NS40IDQxOC43Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtMTQ0LTE0NGMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM3ptMTQ0LTg1LjVhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sWkFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1biIsaWNvbjpbNTc2LDUxMixbXSwiZTE5YiIsIk01MjggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4LTQ0OCAwQzE0LjMgNjQgMCA3OC4zIDAgOTZMMCAyMDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAgMGMyMC44IDAgMzYuMSAxOS42IDMxIDM5LjhMMzMgNDQwLjJjLTIuNCA5LjYtLjIgMTkuNyA1LjggMjcuNVM1NC4xIDQ4MCA2NCA0ODBsOTYgMGMxNC43IDAgMjcuNS0xMCAzMS0yNC4yTDIxNyAzNTIgMzIxLjQgMzUyYzIzLjcgMCA0NC44LTE0LjkgNTIuNy0zNy4ybDI2LjctNzQuOCAzMS4xIDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjIuNi0yMi42IDY2LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOHpNMzIxLjQgMzA0bC05Mi41IDAgMTYtNjQgMTA1IDAtMjEgNTguN2MtMS4xIDMuMi00LjIgNS4zLTcuNSA1LjN6TTgwIDEyOGwzODQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw4MCAxNjBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6Il19LEpfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbNjE1MzMsImNoZWNrLWNpcmNsZSJdLCJmMDU4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zNzQgMTQ1LjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDIyMS4xIDMxNS4yIDE2OSAyNjMuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOCA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM3OS4zIDE3OS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41eiJdfSxRQXI9Sl8sWEFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjb3JwaW8iLGljb246WzY0MCw1MTIsW10sImU4NGUiLCJNMzY4IDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEybDAgMjg5LjdjMCA3LjkgNi40IDE0LjMgMTQuMyAxNC4zIDMuOSAwIDcuNi0xLjYgMTAuMi00LjNsNDAuMS00MS4xLTkuNy05LjdjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNTQyLjMgMzUyIDU1MiAzNTJsNjQgMCAyLjUgLjFjMTIuMSAxLjIgMjEuNSAxMS41IDIxLjUgMjMuOWwwIDY0LS4zIDMuNmMtMS4yIDguMi02LjcgMTUuMy0xNC41IDE4LjYtOSAzLjctMTkuMyAxLjYtMjYuMi01LjJsLTkuMS05LjEtMzkuNiA0MC42Yy0xNC43IDE1LjEtMzQuOSAyMy42LTU2IDIzLjYtNDMuMyAwLTc4LjMtMzUuMS03OC4zLTc4LjNMNDE2IDE0NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMwNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyMGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgOTQuMiAzMiA4MC42IDMyIDY0IDMyIDQ2LjMgNDYuMyAzMiA2NCAzMiA5MSAzMiAxMTUuMyA0My4xIDEzMi43IDYxIDE1Mi42IDQzIDE3OSAzMiAyMDggMzIgMjM5LjMgMzIgMjY3LjcgNDQuOSAyODggNjUuNyAzMDguMyA0NC45IDMzNi42IDMyIDM2OCAzMnoiXX0sWEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWNhcmQtY2xpcCIsaWNvbjpbNTc2LDUxMixbImlkLWNhcmQtYWx0Il0sImY0N2YiLCJNMjU2LTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NC0xMjggMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAzMmwxMTIgMCAwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzIgMTEyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0xNzYgNDAwYzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0yODggMjgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxKQXI9WEZlLGVFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzY4LjggMCAxMzEuMy0yNy4yIDE3Ny4zLTcxLjQgNy4zLTcgOS40LTE3LjkgNS4zLTI3LjFzLTEzLjctMTQuOS0yMy44LTE0LjFjLTQuOSAuNC05LjggLjYtMTQuOCAuNi0xMDEuNiAwLTE4NC04Mi40LTE4NC0xODQgMC03Mi4xIDQxLjUtMTM0LjYgMTAyLjEtMTY0LjggOS4xLTQuNSAxNC4zLTE0LjMgMTMuMS0yNC40UzMyMi42IDguNSAzMTIuNyA2LjNDMjk0LjQgMi4yIDI3NS40IDAgMjU2IDB6Il19LHRFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvaWwtd2VsbCIsaWNvbjpbNTc2LDUxMixbXSwiZTUzMiIsIk01MjguMyA2MS4zYy0xMS40LTQyLjctNTUuMy02OC05OC01Ni42TDQxNC45IDguOEMzOTcuOCAxMy40IDM4Ny43IDMxIDM5Mi4zIDQ4bDI0LjUgOTEuNC0xMDguMiAyOC4xLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzktMTMyLjIgMzQuMyAwLTM4LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNjQtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTM3LjMgMC02MS40LTE3NS40LTYyLjIgMTYuMSAyMi4xIDYzLjItNjYuNiAwIDE5LjktNTYuOS03NC42IDE5LjMtNDYuNyAxMzMuNS00MS4zIDAgMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxNi44LTQ4IDEwMC4yIDAgMTYuOCA0OC0xMzMuOCAweiJdfSxKRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFjaG9ncmFwaC1kaWdpdGFsIixpY29uOls1NzYsNTEyLFsiZGlnaXRhbC10YWNob2dyYXBoIl0sImY1NjYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAzNTJ6bTI1NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpNNDk2IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTg4IDMxMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTEwNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem01NiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHJFcj1KRmUsZUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldCIsaWNvbjpbNDQ4LDUxMixbInRhYmxldC1hbmRyb2lkIl0sImYzZmIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTg0IDQwMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxhRXI9ZUJlLEZfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1YmxlLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzODEsInJvdWJsZSIsInJ1YiIsInJ1YmxlIl0sImYxNTgiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDIwOC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCA0OC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE1MiAwIDAtNDggMTEyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTMzM1LjUgMzIgMjU2IDMyTDExMiAzMnpNMjU2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6Il19LGlFcj1GXyxzRXI9Rl8sbkVyPUZfLG9Fcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjIwYSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xNTIgODBsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODBjMC00LjQgMy42LTggOC04em0xNjggOGMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODB6Il19LGxFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4iLGljb246WzUxMiw1MTIsWzEyODM5NF0sImYzMDQiLCJNMzUyLjkgMjEuMkwzMDggNjYuMSA0NDUuOSAyMDQgNDkwLjggMTU5LjFDNTA0LjQgMTQ1LjYgNTEyIDEyNy4yIDUxMiAxMDhzLTcuNi0zNy42LTIxLjItNTEuMUw0NTUuMSAyMS4yQzQ0MS42IDcuNiA0MjMuMiAwIDQwNCAwcy0zNy42IDcuNi01MS4xIDIxLjJ6TTI3NC4xIDEwMEw1OC45IDMxNS4xYy0xMC43IDEwLjctMTguNSAyNC4xLTIyLjYgMzguN0wuOSA0ODEuNmMtMi4zIDguMyAwIDE3LjMgNi4yIDIzLjRzMTUuMSA4LjUgMjMuNCA2LjJsMTI3LjgtMzUuNWMxNC42LTQuMSAyNy45LTExLjggMzguNy0yMi42TDQxMiAyMzcuOSAyNzQuMSAxMDB6Il19LGNFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZSIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MiIsIk01MjAgMjAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2bC0xMjcuMyAwLTE1OS4yIDE3My42Yy02LjEgNi42LTE0LjYgMTAuNC0yMy42IDEwLjRsLTQzLjcgMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNTQuMy0xNjIuOS05OS43IDAtNTIuOCA2NmMtMyAzLjgtNy42IDYtMTIuNSA2bC0xOS44IDBjLTEwLjQgMC0xOC05LjgtMTUuNS0xOS45TDMyIDI1NiA1IDE0Ny45QzIuNCAxMzcuOCAxMC4xIDEyOCAyMC41IDEyOGwxOS44IDBjNC45IDAgOS41IDIuMiAxMi41IDZsNTIuOCA2NiA5OS43IDAtNTQuMy0xNjIuOUMxNDcuNiAyNi43IDE1NS4zIDE2IDE2Ni4yIDE2bDQzLjcgMGM5IDAgMTcuNSAzLjggMjMuNiAxMC40TDM5Mi43IDIwMCA1MjAgMjAweiJdfSxkRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2VzIixpY29uOls1NzYsNTEyLFtdLCJmMzAyIiwiTTk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZ6TTI0IDEyOGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDguOCA3LjIgMTYgMTYgMTZsMzYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTY4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTk2LjUgMTEuNWMtNC40LTcuMS0xMi4xLTExLjUtMjAuNS0xMS41cy0xNi4xIDQuNC0yMC41IDExLjVsLTU2LjMgOTIuMS0yNC41LTMwLjZjLTQuNi01LjctMTEuNC05LTE4LjctOXMtMTQuMiAzLjMtMTguNyA5bC02NCA4MGMtNS44IDcuMi02LjkgMTcuMS0yLjkgMjUuNFMxNzQuOCAzNTIgMTg0IDM1MmwyNzIgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0eiJdfSx0QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbiIsaWNvbjpbMzg0LDUxMixbIm1vYmlsZS1hbmRyb2lkLWFsdCJdLCJmM2NmIiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHpNMTI4IDQ0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzA0IDY0bC0yMjQgMCAwIDMwNCAyMjQgMCAwLTMwNHoiXX0sdUVyPXRCZSxwRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VhcmFuaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTlhIiwiTTE5MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyA3Ny4zIDAgMTU4LjEgMCAyNTZTNzMuMyA0MzQuNyAxNjggNDQ2LjVsMCA0MS41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjUgMC0xNy43LTE0LjMtMzItMzItMzJsLTEzNiAwIDAtOTMuOGMyNS4zIDQuOCA0Ny45IDE3IDY1LjYgMzQuMyAxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk3LjIgOTAuMiAyNTguOCA3MC44IDIxNiA2NS41TDIxNiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTY4IDEzMC4ybDAgMjUxLjVDMTA4LjggMzcwLjUgNjQgMzE4LjUgNjQgMjU2czQ0LjgtMTE0LjUgMTA0LTEyNS44em00OCAyNTEuNWwwLTkzLjggMTAwIDBjLTEyLjMgNDcuNi01MS4yIDg0LjUtMTAwIDkzLjh6Il19LHJCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWctc2hvcHBpbmciLGljb246WzQ0OCw1MTIsWyJzaG9wcGluZy1iYWciXSwiZjI5MCIsIk0xNjAgODBjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDQ4LTEyOCAwIDAtNDh6bS00OCA0OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwIDAtNDhjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMTEyIDE4LjEgMTEyIDgwbDAgNDh6bTI0IDQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMTUyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGZFcj1yQmUsYUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwem0zODcuMyAxMS4zbC0xMDQgMTA0Yy00LjYgNC42LTExLjUgNS45LTE3LjQgMy41UzI1NiAzNjYuNSAyNTYgMzYwbDAtNTYtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtNTZjMC02LjUgMy45LTEyLjMgOS45LTE0LjhzMTIuOS0xLjEgMTcuNCAzLjVsMTA0IDEwNGM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnoiXX0saEVyPWFCZSxpQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtdm9sdW1lIixpY29uOls1NzYsNTEyLFsidm9sdW1lLWNvbnRyb2wtcGhvbmUiXSwiZjJhMCIsIk0zNDQtMzJjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMjAgODhjMC0xMy4zIDEwLjctMjQgMjQtMjQgNzUuMSAwIDEzNiA2MC45IDEzNiAxMzYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODgtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTE0NC4xIDEuNGMxOS43LTUuNCA0MC4zIDQuNyA0OC4xIDIzLjVsNDAuNSA5Ny4zYzYuOSAxNi41IDIuMSAzNS42LTExLjggNDdsLTQ0LjEgMzYuMWMzMi41IDcxLjYgODkgMTMwIDE1OS4zIDE2NC45TDM3NC43IDMyM2MxMS4zLTEzLjkgMzAuNC0xOC42IDQ3LTExLjhMNTE5IDM1MS44YzE4LjggNy44IDI4LjkgMjguNCAyMy41IDQ4LjFsLTEuNSA1LjVDNTIzLjQgNDcwLjEgNDYwLjkgNTI1LjMgMzg0LjYgNTA5LjIgMjA5LjYgNDcyLjEgNzEuOSAzMzQuNCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjV6Il19LG1Fcj1pQmUsZ0VyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzIixpY29uOls1MTIsNTEyLFtdLCJmMWIzIiwiTTI4NC0xLjNjLTE3LjMtMTAtMzguNy0xMC01NiAwTDE0My44IDQ3LjNjLTE3LjMgMTAtMjggMjguNS0yOCA0OC41bDAgMTAxLjktODguMyA1MWMtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCA5Ny4zYzAgMjAgMTAuNyAzOC41IDI4IDQ4LjVsODQuMyA0OC42YzE3LjMgMTAgMzguNyAxMCA1NiAwbDg4LjMtNTEgODguMyA1MWMxNy4zIDEwIDM4LjcgMTAgNTYgMEw0ODQuNSA0NDNjMTcuMy0xMCAyOC0yOC41IDI4LTQ4LjVsMC05Ny4zYzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVsLTg4LjMtNTEgMC0xMDEuOWMwLTIwLTEwLjctMzguNS0yOC00OC41TDI4NC0xLjN6TTIzMiAyOTIuNmwwIDEwNi41LTg4LjMgNTFjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTIuMy01My4zem0yMzEuNCAuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNGwwIDk3LjNjMCAyLjktMS41IDUuNS00IDYuOWwtODQuMyA0OC42Yy0xLjIgLjctMi42IDEuMS00IDEuMWwwLTEwNS4zIDkxLjItNTIuNnpNMzQ4LjMgOTUuOGwwIDEwMS45LTkyLjMgNTMuMyAwLTEwNi41IDkxLjItNTIuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNHoiXX0sYkVyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lIixpY29uOls1MTIsNTEyLFsxMjgyMjIsMTI4Mzc5XSwiZjA5NSIsIk0xNjAuMiAyNUMxNTIuMyA2LjEgMTMxLjctMy45IDExMi4xIDEuNGwtNS41IDEuNWMtNjQuNiAxNy42LTExOS44IDgwLjItMTAzLjcgMTU2LjQgMzcuMSAxNzUgMTc0LjggMzEyLjcgMzQ5LjggMzQ5LjggNzYuMyAxNi4yIDEzOC44LTM5LjEgMTU2LjQtMTAzLjdsMS41LTUuNWM1LjQtMTkuNy00LjctNDAuMy0yMy41LTQ4LjFsLTk3LjMtNDAuNWMtMTYuNS02LjktMzUuNi0yLjEtNDcgMTEuOGwtMzguNiA0Ny4yQzIzMy45IDMzNS40IDE3Ny4zIDI3NyAxNDQuOCAyMDUuM0wxODkgMTY5LjNjMTMuOS0xMS4zIDE4LjYtMzAuNCAxMS44LTQ3TDE2MC4yIDI1eiJdfSx4RXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9yaWktZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbOTk2MV0sImY2YTEiLCJNMCA5NkwwIDI4LjVDMCAyMS42IDUuNiAxNiAxMi41IDE2IDE0LjggMTYgMTcgMTYuNiAxOSAxNy44TDU4IDQxLjJDODIuOSA1Ni4xIDExMS4zIDY0IDE0MC4zIDY0bDE2Ny40IDBjMjkgMCA1Ny41LTcuOSA4Mi4zLTIyLjhsMzktMjMuNGMxLjktMS4yIDQuMi0xLjggNi40LTEuOCA2LjkgMCAxMi41IDUuNiAxMi41IDEyLjVMNDQ4IDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgNjQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xOTIgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC02NEMyOC43IDE2MCAwIDEzMS4zIDAgOTZ6TTEyOCAyMjRsNjQgMCAwLTY0LTY0IDAgMCA2NHptMTI4IDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sdkVyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY29uIixpY29uOls1NzYsNTEyLFsxMjkzNjNdLCJmN2U1IiwiTTU1NyA5Ni43YzE0LjQgMTQuNCAxMi40IDM4LjQtNC4zIDUwLjJsLTY0LjYgNDUuN2MtNDMuNyAzMC45LTc5LjIgNzEuOS0xMDMuNCAxMTkuNmwtMjUuMyA0OS44Yy0yNS4xIDQ5LjMtNjIuMSA5MS41LTEwNy44IDEyMi42bC03NC4xIDUwLjZjLTEzLjEgOC45LTMwLjcgNy4zLTQxLjgtMy45bC00NC45LTQ0LjkgODYuNS02Ni41YzQyLjMtMzIuNSA3Ni43LTc0LjMgMTAwLjYtMTIybDI0LjUtNDkuMWMyNC41LTQ5IDYxLjgtOTAuNiAxMDcuOS0xMjAuMmwxMDguNy02OS45IDM4IDM4ek00ODQuMiAyMy45TDM4NC4zIDg4LjJjLTUzLjQgMzQuMy05Ni41IDgyLjQtMTI0LjkgMTM5LjFsLTI0LjUgNDkuMWMtMjAuNiA0MS4zLTUwLjMgNzcuMy04Ni45IDEwNS40bC05MS40IDcwLjMtMzYuOS0zNi45Yy0xNC40LTE0LjQtMTIuNC0zOC40IDQuMy01MC4ybDY0LjYtNDUuN2M0My43LTMwLjkgNzkuMi03MS45IDEwMy40LTExOS42bDI1LjMtNDkuOEMyNDIuMyAxMDAuOCAyNzkuMyA1OC42IDMyNSAyNy40bDc0LjEtNTAuNmMxMy4xLTguOSAzMC42LTcuMyA0MS44IDMuOWw0My4zIDQzLjN6Il19LHlFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZy1idXJzdCIsaWNvbjpbNTc2LDUxMixbXSwiZTU0NyIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDUuNGMwIDU1LjItMjMuNyAxMDctNjMuOSAxNDMuMWw2Mi45IDc1LjUgODkgMGMxNS4xIDAgMjkuMyA3LjEgMzguNCAxOS4ybDQzLjIgNTcuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40TDM2OCAzMjAgMjYzLjIgMzIwIDM3Ni44IDQ1OS44YzExLjEgMTMuNyA5LjEgMzMuOS00LjcgNDVzLTMzLjkgOS4xLTQ1LTQuN0wxMzcuNCAyNjYuNmMtNi4xIDE1LTkuNCAzMS4zLTkuNCA0OGwwIDY5LjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OS40YzAtNjcuNCAzNS40LTEyOS45IDkzLjItMTY0LjZsNC42LTIuOEMyMDAuNCAxMjQgMjI0IDgyLjQgMjI0IDM3LjRsMC01LjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2IDg4QTU2IDU2IDAgMSAxIDEyOCA4OCA1NiA1NiAwIDEgMSAxNiA4OHptMzc2LTcuOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OHptMTA0IDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwem0tNTQuNS05Ny41Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxzQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXVvdGUtcmlnaHQiLGljb246WzQ0OCw1MTIsWzgyMjEsInF1b3RlLXJpZ2h0LWFsdCJdLCJmMTBlIiwiTTQ0OCAyOTZjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnptLTI1NiAwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtOC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMzZ6Il19LHdFcj1zQmUsa0VyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUxNCIsIk00ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI2Ny41IDU5LjFMNDAwIDE4Ni45IDQwMCA1MDMuNGMtOS40IDUuNC0yMC4zIDguNi0zMiA4LjZsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE0NC0xOS45IDBDMTIuNiAzMDQgMCAyOTEuNCAwIDI3NS45IDAgMjY4LjMgMy4xIDI2MSA4LjYgMjU1LjdMMjEyLjUgNTkuMUMyMTkuOSA1MiAyMjkuNyA0OCAyNDAgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjA0LjggMjU2LjhsMCA0NC00NCAwYy05LjcgMC0xNy42IDcuOS0xNy42IDE3LjZsMCAzNS4yYzAgOS43IDcuOSAxNy42IDE3LjYgMTcuNmw0NCAwIDAgNDRjMCA5LjcgNy45IDE3LjYgMTcuNiAxNy42bDM1LjIgMGM5LjcgMCAxNy42LTcuOSAxNy42LTE3LjZsMC00NCA0NCAwYzkuNyAwIDE3LjYtNy45IDE3LjYtMTcuNmwwLTM1LjJjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC00NCAwIDAtNDRjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC0zNS4yIDBjLTkuNyAwLTE3LjYgNy45LTE3LjYgMTcuNnoiXX0sU0VyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjViMSIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMkwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNTAuNyAwIDEyOCAxMjgtMTA1LjQgMTA1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjg4IDM5Ny4zIDM5My40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMzMzLjMgMzUyIDQzOC42IDI0Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI4OCAzMDYuNyAyMDIuMiAyMjAuOUMyNTEuNCAyMDkuMSAyODggMTY0LjggMjg4IDExMiAyODggNTAuMSAyMzcuOSAwIDE3NiAwTDMyIDB6TTE3NiAxNjBsLTExMiAwIDAtOTYgMTEyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6Il19LE1Fcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXRocmVlIixpY29uOls0NDgsNTEyLFs5ODU4XSwiZjUyNyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjggNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxDRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNiIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjdsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNzYgMzg0bDAgODAgODAgMCAwLTY0LjFjMC0xMy43IDEuOS0yNyA1LjUtMzkuNi01LjctNS4yLTEzLjItOC4zLTIxLjUtOC4zbC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzA3IDIyNC4zYy0xLS4yLTItLjMtMy0uM2wtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjcgMGMyLjEtMjIuOCA4LjQtNDQuMyAxOC4zLTYzLjd6TTE0NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTQ0IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0zNTIgODAuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LG5CZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0NywiZHJpdmVycy1saWNlbnNlIl0sImYyYzIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NEwwIDk2em0wIDQ4bDU3NiAwIDAgMjcyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNDR6TTI0Ny4zIDQxNmMyMC4yIDAgMzUuMy0xOS40IDIyLjQtMzUtMTQuNy0xNy43LTM2LjktMjktNjEuNy0yOWwtNjQgMGMtMjQuOCAwLTQ3IDExLjMtNjEuNyAyOS0xMi45IDE1LjYgMi4yIDM1IDIyLjQgMzVsMTQyLjUgMHpNMTc2IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzYwIDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAweiJdfSx6RXI9bkJlLG9CZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGxheSIsaWNvbjpbNTEyLDUxMixbNjE0NjksInBsYXktY2lyY2xlIl0sImYxNDQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTg4LjMgMTQ3LjFjLTcuNiA0LjItMTIuMyAxMi4zLTEyLjMgMjAuOWwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OGMtNy40LTQuNS0xNi43LTQuNy0yNC4zLS41eiJdfSxfRXI9b0JlLGxCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxMywibGF1Z2gtYmVhbSJdLCJmNTlhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNzYgMTY0Yy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sVEVyPWxCZSxMRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVhZiIsaWNvbjpbNTEyLDUxMixbXSwiZjA2YyIsIk00NzEuMyA2LjdDNDc3LjcgLjYgNDg3LTEuNiA0OTUuNiAxLjIgNTA1LjQgNC41IDUxMiAxMy43IDUxMiAyNGwwIDE4Ni45YzAgMTMxLjItMTA4LjEgMjM3LjEtMjM4LjggMjM3LjEtNzcgMC0xNDMuNC00OS41LTE2Ny41LTExOC43LTM1LjQgMzAuOC01Ny43IDc2LjEtNTcuNyAxMjYuNyAwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDQ2OS4zIDAgNDU2QzAgMzgxLjEgMzguMiAzMTUuMSA5Ni4xIDI3Ni4zIDEzMS40IDI1Mi43IDE3My41IDI0MCAyMTYgMjQwbDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTM5LjcgMC03Ny4zIDguOC0xMTEgMjQuNSAyMy4zLTcwIDg5LjItMTIwLjUgMTY3LTEyMC41IDY2LjQgMCAxMTUuOC0yMi4xIDE0OC43LTQ0IDE5LjItMTIuOCAzNS41LTI4LjEgNTAuNy00NS4zeiJdfSxERXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS11c2VyIixpY29uOls1MTIsNTEyLFtdLCJlMDY1IiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0zMTIgMjU2YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMTQ0IDQzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHoiXX0sRnVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbInJlZG8tYWx0Iiwicm90YXRlLWZvcndhcmQiXSwiZjJmOSIsIk00ODggMTkybC0xNDQgMGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44cy0xLjctMTkuMyA1LjItMjYuMmw0Ni43LTQ2LjdjLTc1LjMtNTguNi0xODQuMy01My4zLTI1My41IDE1LjktNzUgNzUtNzUgMTk2LjUgMCAyNzEuNXMxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTQuMy05NC4zIDI0My43LTk5LjYgMzQ0LjMtMTYuMkw0NzEgN2M2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzUxMiAxNC4zIDUxMiAyNGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sJEVyPUZ1ZSxBRXI9RnVlLEVFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b290aCIsaWNvbjpbNDQ4LDUxMixbMTI5NDYzXSwiZjVjOSIsIk0xNDUgNS43TDIyNCAzMiAzMDMgNS43QzMxNC4zIDEuOSAzMjYgMCAzMzcuOSAwIDM5OC43IDAgNDQ4IDQ5LjMgNDQ4IDExMC4xbDAgNjguNWMwIDI5LjQtOS41IDU4LjEtMjcuMiA4MS42bC0xLjEgMS41Yy0xMi45IDE3LjItMjEuMyAzNy40LTI0LjMgNTguN0wzNzMuNyA0NzEuOWMtMy4zIDIzLTIzIDQwLjEtNDYuMiA0MC4xLTIyLjggMC00Mi4zLTE2LjUtNDYtMzlMMjYxLjMgMzUxLjZjLTMtMTguMi0xOC44LTMxLjYtMzcuMy0zMS42cy0zNC4yIDEzLjQtMzcuMyAzMS42TDE2Ni41IDQ3M2MtMy44IDIyLjUtMjMuMiAzOS00NiAzOS0yMy4yIDAtNDIuOS0xNy4xLTQ2LjItNDAuMUw1Mi42IDMyMC41Yy0zLTIxLjMtMTEuNC00MS41LTI0LjMtNTguN2wtMS4xLTEuNUM5LjUgMjM2LjcgMCAyMDguMSAwIDE3OC43bDAtNjguNUMwIDQ5LjMgNDkuMyAwIDExMC4xIDAgMTIyIDAgMTMzLjcgMS45IDE0NSA1Ljd6Il19LElFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LXdpbmRvdyIsaWNvbjpbNTEyLDUxMixbXSwiZTAwZCIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjE2IDIyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LFBFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3RvcmN5Y2xlIixpY29uOls2NDAsNTEyLFsxMjc5NDldLCJmMjFjIiwiTTI4MCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1Ni42IDAgMjIuNSA0OC43LTk1LjEgNzEuM2MtMzMuNC0yNS4xLTc1LTQwLTEyMC00MGwtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzc4LjUgMCAxNDMuMiA1OS42IDE1MS4yIDEzNmwtMjUuNCAwYy0xMS4yLTU5LjItNjMuMy0xMDQtMTI1LjgtMTA0LTcwLjcgMC0xMjggNTcuMy0xMjggMTI4UzczLjMgNDgwIDE0NCA0ODBjNjIuNSAwIDExNC41LTQ0LjggMTI1LjgtMTA0bDUwLjIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTIyLjVjMC00NS4xIDI1LjctODUuNCA2NS41LTEwNy43bDEyLjEgMjYuMWMtMzIuNCAyMy4yLTUzLjUgNjEuMi01My41IDEwNC4xIDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjgtNTcuMy0xMjgtMTI4LTEyOGMtMTAuNyAwLTIxIDEuMy0zMC45IDMuOEw0MzMuOCAxNjAgNDg4IDE2MGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC01My4zIDBjLTYuOSAwLTEzLjcgMi4yLTE5LjIgNi40bC0xNy4xIDEyLjgtMjQuNi01My4zQzM2OS45IDIxLjQgMzYxLjQgMTYgMzUyIDE2bC03MiAwek00NDUuOCAzMDAuNGwyOC40IDYxLjZjNS42IDEyIDE5LjggMTcuMyAzMS44IDExLjdzMTcuMy0xOS44IDExLjctMzEuOGwtMjguNS02MS42YzIuMi0uMiA0LjQtLjMgNi43LS4zIDM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcyLTcyLTMyLjItNzItNzJjMC0yMC4yIDguMy0zOC41IDIxLjgtNTEuNnpNMTQ0IDQyNGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmMzMS4zIDAgNTggMjAgNjcuOSA0OEwxNDQgMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjkgMGMtOS45IDI4LTM2LjYgNDgtNjcuOSA0OHoiXX0sY0JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLWZhc3QiLGljb246WzUxMiw1MTIsWzkxOTgsImZhc3QtYmFja3dhcmQiXSwiZjA0OSIsIk00OTIuMiA0NzcuNmMtMTIgNS0yNS43IDIuMi0zNC45LTYuOUwyODggMzAxLjMgMjg4IDQ0OGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOUw2NCAzMDEuMyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyUzY0IDQ2LjMgNjQgNjRMNjQgMjEwLjcgMjMzLjQgNDEuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMyODggNTEuMSAyODggNjRsMCAxNDYuNyAxNjkuNC0xNjkuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM1MTIgNTEuMSA1MTIgNjRsMCAzODRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnoiXX0sTkVyPWNCZSxkQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWRkcmVzcy1ib29rIixpY29uOls1MTIsNTEyLFs2MjEzOCwiY29udGFjdC1ib29rIl0sImYyYjkiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yMDggMjg4bDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6bTAgMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek00OTYgMzIwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxPRXI9ZEJlLFJFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWlsYm9hdCIsaWNvbjpbNTEyLDUxMixbXSwiZTQ0NSIsIk0yNDAgMzUuOWwwIDM0OC4xLTIyNCAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjg4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC04LjgtNy4yLTE2LTE2LTE2bC0yMDggMCAwLTQ4IDE2MS43IDBjMTIuOSAwIDIwLjUtMTQuNCAxMy4yLTI1TDI2OS4yIDI2LjljLTguOS0xMy0yOS4yLTYuNy0yOS4yIDl6TTE5MiAzMjBsMC0xODQuMmMwLTE2LjEtMjEtMjIuMS0yOS42LTguNUw0Ny4zIDMxMS41Yy02LjcgMTAuNyAxIDI0LjUgMTMuNiAyNC41TDE3NiAzMzZjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxGRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1ib29rbWFyayIsaWNvbjpbNDQ4LDUxMixbXSwiZTBiYiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDE2OS40YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42LTYgMC0xMS44LTIuNC0xNi02LjZMMjcyIDE0NCAyMzAuNiAxODUuNGMtNC4yIDQuMi0xMCA2LjYtMTYgNi42LTEyLjUgMC0yMi42LTEwLjEtMjIuNi0yMi42TDE5MiAwIDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxCRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1hcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTMwNSAyMjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSx1QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI3ODk3LCJtaWNyb3Bob25lLWFsdCJdLCJmM2M5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTYgNTAuMyAwIDkxLjYgMzguNyA5NS43IDg4TDIzMiA4OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwIDAgNDgtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NS43IDBjLTQuMSA0OS4zLTQ1LjMgODgtOTUuNyA4OC01MyAwLTk2LTQzLTk2LTk2TDk2IDk2ek0yNCAxNjBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOTcuOS03My4zIDE3OC43LTE2OCAxOTAuNWwwIDQ5LjUgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ5LjVDNzMuMyA0MDIuNyAwIDMyMS45IDAgMjI0bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEhFcj11QmUscEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGx5LWFsbCIsaWNvbjpbNTc2LDUxMixbIm1haWwtcmVwbHktYWxsIl0sImYxMjIiLCJNMzMyLjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCA0OCAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC0zMiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6TTIwNS42IDIzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNTQuNiAyMDggMjA1LjYgMzU4LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxMCAyMzEuMmMtNi40LTYtMTAtMTQuNC0xMC0yMy4yczMuNi0xNy4yIDEwLTIzLjJMMTcxLjYgMjMuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0scUVyPXBCZSxWRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5pdmVyc2FsLWFjY2VzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjI5YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNjEuNS04Ni4xYy0xMi4yLTUuMi0yNi4zIC40LTMxLjUgMTIuNnMuNCAyNi4zIDEyLjYgMzEuNWwxMS45IDUuMWMxNy4zIDcuNCAzNS4yIDEyLjkgNTMuNiAxNi4zbDAgNTAuMWMwIDQuMy0uNyA4LjYtMi4xIDEyLjZsLTI4LjcgODYuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyNC40LTczLjJjMS4zLTMuOCA0LjgtNi40IDguOC02LjRzNy42IDIuNiA4LjggNi40bDI0LjQgNzMuMmM0LjIgMTIuNiAxNy44IDE5LjQgMzAuNCAxNS4yUzMzOSAzOTcgMzM0LjggMzg0LjRsLTI4LjctODYuMWMtMS40LTQuMS0yLjEtOC4zLTIuMS0xMi42bDAtNTAuMWMxOC40LTMuNSAzNi4zLTguOSA1My42LTE2LjNsMTEuOS01LjFjMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNkwzMzguNyAxNzVjLTI2LjEgMTEuMi01NC4yIDE3LTgyLjcgMTdzLTU2LjUtNS44LTgyLjctMTdsLTExLjktNS4xek0yNTYgMTYwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sQnVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlciIsaWNvbjpbNTEyLDUxMixbMTI5NTMxLDYzMjYzLCJ0b2lsZXQtcGFwZXItYWx0IiwidG9pbGV0LXBhcGVyLWJsYW5rIl0sImY3MWUiLCJNMzI3LjEgMzJjLTguOCAxMS4xLTE2IDIzLjEtMjEuOSAzNC44LTIxLjQgNDIuNy0zMy4yIDk4LjQtMzMuMiAxNTcuMmwwIDI2NGMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA1NDRjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjI0QzAgMTE4IDQzIDMyIDk2IDMybDIzMS4xIDB6TTQxNiA0MTZjLTUzIDAtOTYtODYtOTYtMTkyczQzLTE5MiA5Ni0xOTIgOTYgODYgOTYgMTkyLTQzIDE5Mi05NiAxOTJ6bTAtMTI4YzE3LjcgMCAzMi0yOC43IDMyLTY0cy0xNC4zLTY0LTMyLTY0LTMyIDI4LjctMzIgNjQgMTQuMyA2NCAzMiA2NHoiXX0sakVyPUJ1ZSxVRXI9QnVlLFdFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ci1jYXJkYm9hcmQiLGljb246WzU3Niw1MTIsW10sImY3MjkiLCJNNTEyIDk2TDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDMzLjktMzMuOWM3LjItNy4yIDE3LjEtMTEuMyAyNy4zLTExLjNzMjAuMSA0LjEgMjcuMyAxMS4zbDMzLjkgMzMuOWMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43TDUxMiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTgwIDI0MGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTM1Mi02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sR0VyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpenphLXNsaWNlIixpY29uOls1MTIsNTEyLFtdLCJmODE4IiwiTTE2OS43IC45Yy0yMi44LTEuNi00MS45IDE0LTQ3LjUgMzQuN0wxMTIuNSA3MkMyOTMuMyA3Mi4zIDQzOS43IDIxOC43IDQ0MCAzOTkuNWwzNi40LTkuN2MyMC44LTUuNSAzNi4zLTI0LjcgMzQuNy00Ny41LTEyLjYtMTgyLjgtMTU4LjYtMzI4LjgtMzQxLjQtMzQxLjR6bTIyMiA0MTEuNWMuMi00LjEgLjMtOC4yIC4zLTEyLjQgMC0xNTQuNi0xMjUuNC0yODAtMjgwLTI4MC00LjEgMC04LjMgLjEtMTIuNCAuM0wuNSA0OTEuOWMtMS41IDUuNSAuMSAxMS40IDQuMSAxNS40czkuOSA1LjYgMTUuNCA0LjFsMzcxLjYtOTkuMXpNMTc2IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sWUVyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwcmF5LWNhbiIsaWNvbjpbNTc2LDUxMixbXSwiZjViZCIsIk0xOTIgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtMTI4IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMjU2YzAtNTMgNDMtOTYgOTYtOTZsMTI4IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIwOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjI0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjA4em0yNDAgODBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0zMjAgNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek01MTIgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0OCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxmQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWxvdyIsaWNvbjpbNDQ4LDUxMixbMTI4MjY0LCJ2b2x1bWUtZG93biJdLCJmMDI3IiwiTTQ4IDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEw5NiAxNjAgNDggMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek0zODAuNiAxODEuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM2MS4xIDIyNy42IDM2OCAyNDEgMzY4IDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQwMi4xIDMxMi45IDQxNiAyODYuMSA0MTYgMjU2cy0xMy45LTU2LjktMzUuNS03NC41eiJdfSxLRXI9ZkJlLFpFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zcyIsaWNvbjpbMzg0LDUxMixbMTI4MzI3LDEwMDEzXSwiZjY1NCIsIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MC04MCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDgwIDAgMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOCA4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgwIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHoiXX0saEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbiIsaWNvbjpbMzg0LDUxMixbMTI5NDg1LCJtYWxlIl0sImYxODMiLCJNMjQ4IDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdsNDYuMyA2Mi40YzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzI3NCAxMzIgMjM0LjMgMTEyIDE5MiAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zeiJdfSxRRXI9aEJlLG1CZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTFjMCA0Mi40LTE2LjkgODMuMS00Ni45IDExMy4xbC02Ny45IDY3LjkgNjcuOSA2Ny45YzMwIDMwIDQ2LjkgNzAuNyA0Ni45IDExMy4xbDAgMTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMTFjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDY3LjktNjcuOS02Ny45LTY3LjlDNDguOSAxNTguMSAzMiAxMTcuNCAzMiA3NWwwLTExQzE0LjMgNjQgMCA0OS43IDAgMzJ6TTk2IDY0bDAgMTFjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlsNjcuOSA2Ny45IDY3LjktNjcuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45bDAtMTEtMTkyIDB6bTAgMzg0bDE5MiAwIDAtMTFjMC0yNS41LTEwLjEtNDkuOS0yOC4xLTY3LjlsLTY3LjktNjcuOS02Ny45IDY3LjljLTE4IDE4LTI4LjEgNDIuNC0yOC4xIDY3LjlsMCAxMXoiXX0sWEVyPW1CZSxKRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaCIsaWNvbjpbNTc2LDUxMixbMTI4MDMxXSwiZjU3OCIsIk0xODAuNSAxNDEuNUMyMTkuNyAxMDguNSAyNzIuNiA4MCAzMzYgODBzMTE2LjMgMjguNSAxNTUuNSA2MS41YzM5LjEgMzMgNjYuOSA3Mi40IDgxIDk5LjggNC43IDkuMiA0LjcgMjAuMSAwIDI5LjMtMTQuMSAyNy40LTQxLjkgNjYuOC04MSA5OS44LTM5LjIgMzMuMS05MiA2MS41LTE1NS41IDYxLjVzLTExNi4zLTI4LjUtMTU1LjUtNjEuNWMtMTYuMi0xMy43LTMwLjUtMjguNS00Mi43LTQzLjFMNDguMSAzNzkuNmMtMTIuNSA3LjMtMjguNCA1LjMtMzguNy00LjlzLTEyLjQtMjYtNS4zLTM4LjZMNTAgMjU2IDQuMiAxNzUuOWMtNy4yLTEyLjYtNS0yOC40IDUuMy0zOC42czI2LjEtMTIuMiAzOC43LTQuOWw4OS43IDUyLjNjMTIuMi0xNC42IDI2LjUtMjkuNCA0Mi43LTQzLjF6TTQ0OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sZUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRydW1zdGljay1iaXRlIixpY29uOls1MTIsNTEyLFtdLCJmNmQ3IiwiTTE2MCAyNjUuMmMwIDguNS0zLjQgMTYuNi05LjQgMjIuNmwtMjYuOCAyNi44Yy0xMi4zIDEyLjMtMzIuNSAxMS40LTQ5LjQgNy4yLTQuNi0xLjEtOS41LTEuOC0xNC41LTEuOC0zMy4xIDAtNjAgMjYuOS02MCA2MHMyNi45IDYwIDYwIDYwYzYuMyAwIDEyIDUuNyAxMiAxMiAwIDMzLjEgMjYuOSA2MCA2MCA2MHM2MC0yNi45IDYwLTYwYzAtNS0uNi05LjgtMS44LTE0LjUtNC4yLTE2LjktNS4yLTM3LjEgNy4yLTQ5LjRsMjYuOC0yNi44YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw4OS4yIDBjNi4zIDAgMTIuNC0uMyAxOC41LTEgMTEuOS0xLjIgMTYuNC0xNS41IDEwLjgtMjYtOC41LTE1LjgtMTMuMy0zMy44LTEzLjMtNTMgMC02MS45IDUwLjEtMTEyIDExMi0xMTIgOCAwIDE1LjcgLjggMjMuMiAyLjQgMTEuNyAyLjUgMjQuMS01LjkgMjItMTcuNi0xNC43LTgyLjMtODYuNy0xNDQuOC0xNzMuMi0xNDQuOC05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NmwwIDg5LjJ6Il19LHRJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1zaW1wbGUiLGljb246WzUxMiw1MTIsW10sImU0NzMiLCJNMTkyIDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyek0wIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MnpNNDMyIDk2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxySXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXRvbSIsaWNvbjpbNDQ4LDUxMixbOTg4M10sImY1ZDIiLCJNMjI0IDM5OC44Yy0xMS44IDUuMS0yMy40IDkuNy0zNC45IDEzLjUgMTYuNyAzMy44IDMxIDM1LjcgMzQuOSAzNS43czE4LjEtMS45IDM0LjktMzUuN2MtMTEuNC0zLjktMjMuMS04LjQtMzQuOS0xMy41ek00MTQgMjU2YzMzIDQ1LjIgNDQuMyA5MC45IDIzLjYgMTI4LTIwLjIgMzYuMy02Mi41IDQ5LjMtMTE1LjIgNDMuMi0yMiA1Mi4xLTU1LjcgODQuOC05OC40IDg0LjhzLTc2LjQtMzIuNy05OC40LTg0LjhDNzIuOSA0MzMuMyAzMC42IDQyMC4zIDEwLjQgMzg0LTEwLjMgMzQ2LjkgMSAzMDEuMiAzNCAyNTYgMSAyMTAuOC0xMC4zIDE2NS4xIDEwLjQgMTI4IDMwLjYgOTEuNyA3Mi45IDc4LjcgMTI1LjYgODQuOCAxNDcuNiAzMi43IDE4MS4yIDAgMjI0IDBzNzYuNCAzMi43IDk4LjQgODQuOGM1Mi43LTYuMSA5NSA2LjggMTE1LjIgNDMuMiAyMC43IDM3LjEgOS40IDgyLjgtMjMuNiAxMjh6bS02NS44IDY3LjRjLTEuNyAxNC4yLTMuOSAyOC02LjcgNDEuMiAzMS44IDEuNCAzOC42LTguNyA0MC4yLTExLjcgMi4zLTQuMiA3LTE3LjktMTEuOS00OC4xLTYuOCA2LjMtMTQgMTIuNS0yMS42IDE4LjZ6bS02LjctMTc1LjljMi44IDEzLjEgNSAyNi45IDYuNyA0MS4yIDcuNiA2LjEgMTQuOCAxMi4zIDIxLjYgMTguNiAxOC45LTMwLjIgMTQuMi00NCAxMS45LTQ4LjEtMS42LTIuOS04LjQtMTMtNDAuMi0xMS43ek0yNTguOSA5OS43QzI0Mi4xIDY1LjkgMjI3LjkgNjQgMjI0IDY0cy0xOC4xIDEuOS0zNC45IDM1LjdjMTEuNCAzLjkgMjMuMSA4LjQgMzQuOSAxMy41IDExLjgtNS4xIDIzLjQtOS43IDM0LjktMTMuNXptLTE1OSA4OC45YzEuNy0xNC4zIDMuOS0yOCA2LjctNDEuMi0zMS44LTEuNC0zOC42IDguNy00MC4yIDExLjctMi4zIDQuMi03IDE3LjkgMTEuOSA0OC4xIDYuOC02LjMgMTQtMTIuNSAyMS42LTE4LjZ6TTc4LjIgMzA0LjhjLTE4LjkgMzAuMi0xNC4yIDQ0LTExLjkgNDguMSAxLjYgMi45IDguNCAxMyA0MC4yIDExLjctMi44LTEzLjEtNS0yNi45LTYuNy00MS4yLTcuNi02LjEtMTQuOC0xMi4zLTIxLjYtMTguNnpNMzA0IDI1NmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6bS04MC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGFJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwIixpY29uOlszMjAsNTEyLFsxMTJdLCI1MCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzI0OC40IDM1MiAxNjAgMzUybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyODhsOTYgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmwtOTYgMCAwIDE5MnoiXX0saUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpldC1maWdodGVyLXVwIixpY29uOls1MTIsNTEyLFtdLCJlNTE4IiwiTTIwNi44IDQ3LjhDMjAyLjMgNTguNSAyMDAgNzAgMjAwIDgxLjZsMCAxMDAuNC0xNTIgMTE0IDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAyMzQuNyAwIDI0OEwwIDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAxNTIgMCAwIDU0LjQtNjYgNTIuOGMtMy44IDMtNiA3LjYtNiAxMi41bDAgMjQuM2MwIDguOCA3LjIgMTYgMTYgMTZsODggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0LjNjMC00LjktMi4yLTkuNS02LTEyLjVsLTY2LTUyLjggMC01NC40IDE1MiAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDgtMTUyLTExNCAwLTEwMC40YzAtMTEuNi0yLjMtMjMuMS02LjgtMzMuOGwtMjcuMS02NUMyNzQuNC0yNi4yIDI2NS43LTMyIDI1Ni0zMnMtMTguNCA1LjgtMjIuMiAxNC44bC0yNy4xIDY1eiJdfSxzSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NjAiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sbklyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoZWV0LXBsYXN0aWMiLGljb246WzM4NCw1MTIsW10sImU1NzEiLCJNMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ5LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0wzNjUuMyAzODYuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OHptMjA4IDUuNWwwLTkzLjVjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTMuNSAwLTExNy41IDExNy41ek0xNTMgMTA1bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6bTk2IDMyTDEzNyAyNDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjE1IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6Il19LG9Jcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2IixpY29uOlszODQsNTEyLFsxMThdLCI1NiIsIk0xOS43IDM0LjVjMTYuMy02LjggMzUgLjkgNDEuOCAxNy4yTDE5MiAzNjQuOCAzMjIuNSA1MS43YzYuOC0xNi4zIDI1LjUtMjQgNDEuOC0xNy4yczI0IDI1LjUgMTcuMiA0MS44bC0xNjAgMzg0Yy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN3MtMjQuNi03LjgtMjkuNS0xOS43TDIuNSA3Ni4zYy02LjgtMTYuMyAuOS0zNSAxNy4yLTQxLjh6Il19LGdCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1zcXVhcmVzIl0sImYwM2EiLCJNNDAgNDhDMjYuNyA0OCAxNiA1OC43IDE2IDcybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDQwIDQ4ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNMTYgMjMybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNDAgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sbElyPWdCZSxjSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlzY2VzIixpY29uOls0NDgsNTEyLFtdLCJlODRjIiwiTTQwLjQgMTAuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTIgMi45IDIuNyAyOC4zIDI2LjcgNTMuNiA2Ny44IDIyLjMgMzYuMiA0NSA4Ni42IDUxLjEgMTQ3LjhsNjcuMyAwYzYuMS02MS4xIDI4LjgtMTExLjYgNTEuMS0xNDcuOCAyNS4zLTQxLjEgNTAuNy02NS4xIDUzLjYtNjcuOCAxMy0xMS45IDMzLjMtMTEuMSA0NS4yIDIgMTEuOSAxMyAxMSAzMy4zLTIgNDUuMi0xLjQgMS4zLTIyIDIxLjEtNDIuNCA1NC4yLTE3LjkgMjkuMS0zNS40IDY4LTQxLjIgMTE0LjJsOTQgMCAzLjMgLjJjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOHMtMTIuNiAzMC4yLTI4LjcgMzEuOGwtMy4zIC4yLTk0IDBjNS44IDQ2LjIgMjMuMyA4NS4xIDQxLjIgMTE0LjIgMjAuNCAzMy4xIDQxIDUyLjkgNDIuNCA1NC4yIDEzIDExLjkgMTMuOSAzMi4yIDIgNDUuMi0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDItMi45LTIuNy0yOC4zLTI2LjctNTMuNi02Ny44LTIyLjMtMzYuMi00NS04Ni42LTUxLjEtMTQ3LjhsLTY3LjMgMGMtNi4xIDYxLjEtMjguOCAxMTEuNi01MS4xIDE0Ny44LTI1LjMgNDEuMS01MC43IDY1LjEtNTMuNiA2Ny44LTEzIDExLjktMzMuMyAxMS4xLTQ1LjItMi0xMS45LTEzLTExLTMzLjMgMi00NS4yIDEuNC0xLjMgMjItMjEuMSA0Mi40LTU0LjIgMTcuOS0yOS4xIDM1LjQtNjggNDEuMi0xMTQuMmwtOTQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NCAwYy01LjgtNDYuMi0yMy4zLTg1LjEtNDEuMi0xMTQuMi0yMC40LTMzLjEtNDEtNTIuOS00Mi40LTU0LjItMTMtMTEuOS0xMy45LTMyLjItMi00NS4yeiJdfSxkSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29sYXItcGFuZWwiLGljb246WzU3Niw1MTIsW10sImY1YmEiLCJNMTIxLjggMzJjLTMwIDAtNTYgMjAuOC02Mi41IDUwLjFMOS42IDMwNi4xQy43IDM0Ni4xIDMxLjEgMzg0IDcyIDM4NGwxODQuMSAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDE4NC4xIDBjNDAuOSAwIDcxLjQtMzcuOSA2Mi41LTc3LjlsLTQ5LjgtMjI0QzUxMC40IDUyLjggNDg0LjUgMzIgNDU0LjUgMzJMMTIxLjggMzJ6TTI0NS42IDk2bDg1LjIgMCA3LjMgODgtOTkuOCAwIDcuMy04OHptLTU1LjUgODhsLTg3LjggMCAxOS42LTg4IDc1LjYgMC03LjMgODh6TTkxLjYgMjMybDk0LjUgMC03LjMgODgtMTA2LjcgMCAxOS42LTg4em0xNDIuNiAwbDEwNy44IDAgNy4zIDg4LTEyMi41IDAgNy4zLTg4em0xNTYgMGw5NC41IDAgMTkuNiA4OC0xMDYuNyAwLTcuMy04OHpNNDc0IDE4NGwtODcuOCAwLTcuMy04OCA3NS42IDAgMTkuNiA4OHoiXX0sdUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhbmQtbWluZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYiIsIk0zMTIgMGwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwyNjQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek0xNjAgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw4MCAwIDAtMzJ6TTEyIDExNC43YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43bDk2IDY0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zcy0yMi4zIDE0LTMzLjMgNi43bC05Ni02NGMtMTEtNy40LTE0LTIyLjMtNi43LTMzLjN6TTUzMC43IDEwOGMxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTk2IDY0Yy0xMSA3LjQtMjUuOSA0LjQtMzMuMy02LjdzLTQuNC0yNS45IDYuNy0zMy4zbDk2LTY0eiJdfSxIdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHBob25lcyIsaWNvbjpbNDQ4LDUxMixbMTI3OTExLDYyODYzLCJoZWFkcGhvbmVzLWFsdCIsImhlYWRwaG9uZXMtc2ltcGxlIl0sImYwMjUiLCJNNjQgMjI0YzAtODguNCA3MS42LTE2MCAxNjAtMTYwczE2MCA3MS42IDE2MCAxNjBsMCAzNy41Yy0xMC0zLjUtMjAuOC01LjUtMzItNS41bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTExLjIgMC0yMiAxLjktMzIgNS41TDY0IDIyNHoiXX0scElyPUh1ZSxmSXI9SHVlLGhJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMiLGljb246WzQ0OCw1MTIsWzEyODY1M10sImYyMDciLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxNzZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA0IDAgMCAxMTItMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDh6bTE4NCA4MGwwLTExMiAxMDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMDQgMHpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNTIgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LG1Jcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1MiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCAyNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcybC00OCAwem00OCA5NmwtMjQgMCAwLTQ4IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LGJCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1sZWZ0IixpY29uOls0NDgsNTEyLFs4MjIwLCJxdW90ZS1sZWZ0LWFsdCJdLCJmMTBkIiwiTTAgMjE2QzAgMTQ5LjcgNTMuNyA5NiAxMjAgOTZsOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjE2em0yNTYgMGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMGw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xMzZ6Il19LGdJcj1iQmUsYklyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tZG93biIsaWNvbjpbNDQ4LDUxMixbXSwiZjA3OCIsIk0yMDEuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxOTItMTkyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMzguNyA1NC42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyeiJdfSx4QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYXNpYSIsaWNvbjpbNTEyLDUxMixbMTI3NzU5LCJnbG9iZS1hc2lhIl0sImY1N2UiLCJNNTAgMjg0LjhjNC4yIDIuMSA5IDMuMiAxNCAzLjJsNTAuNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDEzLjMgMTMuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMTguNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQtMTAuNyAyNC0yNGwwLTQyLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsMTMuMy0xMy4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNkwzMDQgNTdjMC0xLjItLjEtMi4zLS4yLTMuNS0xNS40LTMuNi0zMS40LTUuNS00Ny44LTUuNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDggMCA5LjggLjcgMTkuNCAyIDI4Ljh6bTQwMy4zIDM3LjNjLTMuMi0xLjQtNi43LTIuMS0xMC41LTIuMUw0MzIgMzIwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzQuNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNGwtNDUuMyA0NS4zYy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNCAyLjIgMi4yIDQuNyA0LjEgNy4zIDUuNSAzOS4zLTI1LjQgNjkuNS02My42IDg0LjYtMTA4Ljh6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTEyOCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjcyIDI1NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnptNDgtMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2eiJdfSx4SXI9eEJlLHZJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZW50LXNpZ24iLGljb246WzM4NCw1MTIsW10sImUzZjUiLCJNMjA4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNS40YzQzLjYgNS4yIDgzIDI0LjUgMTEzLjMgNTMuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNjLTI0LjQtMjMtNTcuMi0zNy4xLTkzLjMtMzcuMS03NS4xIDAtMTM2IDYwLjktMTM2IDEzNnM2MC45IDEzNiAxMzYgMTM2YzM2LjIgMCA2OS0xNC4xIDkzLjMtMzcuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMkMzMjMgNDMwLjEgMjgzLjYgNDQ5LjQgMjQwIDQ1NC42bDAgMjUuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI4Qzg0LjcgNDMzLjUgMTYgMzUyLjggMTYgMjU2Uzg0LjcgNzguNSAxNzYgNjBsMC0yOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0seUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1jYXQiLGljb246WzUxMiw1MTIsW10sImU1NzIiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTE2MCAxNTQuNGMwLTUuOCA0LjctMTAuNCAxMC40LTEwLjRsLjIgMGMzLjQgMCA2LjUgMS42IDguNSA0LjNsNDAgNTMuM2MzIDQgNy44IDYuNCAxMi44IDYuNGw0OCAwYzUgMCA5LjgtMi40IDEyLjgtNi40bDQwLTUzLjNjMi0yLjcgNS4yLTQuMyA4LjUtNC4zbC4yIDBjNS44IDAgMTAuNCA0LjcgMTAuNCAxMC40TDM1MiAyNzJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xMTcuNnpNMjE2IDI4OGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTk2LTE2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LHdJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTZiIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LHZCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJ0aW5pLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjc4NjQsImdsYXNzLW1hcnRpbmktYWx0Il0sImY1N2IiLCJNMi40IDUxLjhDNy40IDM5LjggMTkuMSAzMiAzMiAzMmw0NDggMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45TDI4OCAzMDEuMyAyODggNDQ4IDM1MiA0NDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xNDYuNy0yMTQuNi0yMTQuNkMuMiA3Ny41LTIuNSA2My43IDIuNCA1MS44ek0zNTQuNyAxNDRsNDgtNDgtMjkzLjUgMCA0OCA0OCAxOTcuNSAweiJdfSxrSXI9dkJlLFNJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnIixpY29uOls0NDgsNTEyLFsxMjgyNjhdLCJmMWU2IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NGMwIDk1LjEtNjkuMiAxNzQuMS0xNjAgMTg5LjNsMCA2Ni43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxMDEuMiAzOTguMSAzMiAzMTkuMSAzMiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LE1Jcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYW5vcmFtYSIsaWNvbjpbNTc2LDUxMixbXSwiZTIwOSIsIk00My45IDQ4QzE5LjcgNDggMCA2Ny43IDAgOTEuOUwwIDQyMC4xYzAgMjQuMyAxOS43IDQzLjkgNDMuOSA0My45IDUuNSAwIDEwLjctMSAxNS43LTIuOSAxMi45LTQuOSAxMDMuNC0zNy4xIDIyOC40LTM3LjFzMjE1LjUgMzIuMyAyMjguNCAzNy4xYzUgMS45IDEwLjIgMi45IDE1LjcgMi45IDI0LjMgMCA0My45LTE5LjcgNDMuOS00My45bDAtMzI4LjJjMC0yNC4zLTE5LjctNDMuOS00My45LTQzLjktNS41IDAtMTAuNyAxLTE1LjcgMi45LTEyLjkgNC45LTEwMy40IDM3LjEtMjI4LjQgMzcuMVM3Mi41IDU1LjcgNTkuNiA1MC45QzU0LjYgNDkgNDkuNCA0OCA0My45IDQ4ek03MiAxNzZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMjY0LjEtMTZjNy41IDAgMTQuNiAzLjYgMTkuMSA5LjZMNDc5LjcgMzM2LjJjNS45IDcuOSA2LjQgMTguNSAxLjMgMjYuOXMtMTQuOCAxMi44LTI0LjUgMTEuMWMtNDUuOC03LjgtMTAzLjMtMTQuMi0xNjguNC0xNC4yLTY1LjYgMC0xMjMuNCA2LjUtMTY5LjMgMTQuNC05LjggMS43LTE5LjctMi45LTI0LjctMTEuNXMtNC4zLTE5LjQgMS45LTI3LjJMMTY1LjMgMjQ5YzQuNi01LjcgMTEuNS05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMjcuNSAzNC40IDg2LjctMTEzLjljNC42LTYgMTEuNy05LjUgMTkuMi05LjV6Il19LGVUPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrLXJvdGF0ZS1sZWZ0IixpY29uOls1NzYsNTEyLFsiaGlzdG9yeSJdLCJmMWRhIiwiTTI4OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlMzOTQgNDQ4IDI4OCA0NDhjLTY1LjIgMC0xMjIuOS0zMi41LTE1Ny42LTgyLjMtMTAuMS0xNC41LTMwLjEtMTgtNDQuNi03LjlzLTE4IDMwLjEtNy45IDQ0LjZDMTI0LjEgNDY4LjYgMjAxIDUxMiAyODggNTEyIDQyOS40IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NlM0MjkuNCAwIDI4OCAwQzIwMi4zIDAgMTI2LjUgNDIuMSA4MCAxMDYuN0w4MCA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxNiA2Mi4zIDE2IDgwbDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDI0LjYgMGMuNSAwIDEgMCAxLjUgMGw4NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zOC4zIDBDMTU0LjkgMTAyLjYgMjE3IDY0IDI4OCA2NHptMjQgODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY1LTY1IDAtOTQuMXoiXX0sQ0lyPWVULHpJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXItd2hlYXQiLGljb246WzMyMCw1MTIsW10sImU1MTciLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xMTIgMzJsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMTYwYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMjU2Yy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuN3pNMTEyIDM1MmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDIxLjggMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMiAyMS44IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMzUyYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6Il19LHF1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy1kb3duIixpY29uOls1NzYsNTEyLFs2MjMzNywiY2xvdWQtZG93bmxvYWQiLCJjbG91ZC1kb3dubG9hZC1hbHQiXSwiZjBlZCIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTM3NyAzMTNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxfSXI9cXVlLFRJcj1xdWUseUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLXJhbXAtYm94IixpY29uOls1NzYsNTEyLFsidHJ1Y2stbG9hZGluZyJdLCJmNGRlIiwiTTQwMCAzMmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNDguMi0yOTcuMiA4OS4yQzUuOSA0NTQuNC0zLjcgNDcyLjMgMS40IDQ4OS4yczIyLjkgMjYuNSAzOS44IDIxLjVsMzE1LjUtOTQuNiA0My43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4bDAtMzkyLTE3NiAwek01MjggNDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDBjMjIuMSAwIDM5LjkgMTcuOSA0MCAzOS45bDAgLjF6TTUxLjkgMTQ5LjVDMTguMSAxNTkuOC0uOSAxOTUuNiA5LjQgMjI5LjRsMjguMSA5MS44QzQ3LjggMzU1IDgzLjYgMzc0IDExNy40IDM2My43bDkxLjgtMjguMWMzMy44LTEwLjMgNTIuOC00Ni4xIDQyLjUtNzkuOWwtMjguMS05MS44Yy0xMC4zLTMzLjgtNDYuMS01Mi44LTc5LjktNDIuNUw1MS45IDE0OS41eiJdfSxMSXI9eUJlLERJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1kb3duIixpY29uOlszODQsNTEyLFs4OTY0XSwiZjEwNyIsIk0xNjkuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiAzMDYuNyA1NC42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiJdfSwkSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NWMiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxBSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZG93LW1heGltaXplIixpY29uOls1MTIsNTEyLFsxMjg0NzBdLCJmMmQwIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0yNCA2NGwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEVJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nLWNpcmNsZSIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYiIsIk0zMjAgMGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTYwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xIDEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOC03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGMyNC4xIDI0LjEgMzkuOSAzOS45IDQ3LjIgNDcuMmwwIDAgMjUuMyAyNS4zYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCA3OC45YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02Ni43IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDI4LjEgMzkzLjRDMTAuMSAzNzUuNCAwIDM1MSAwIDMyNS41TDAgMTA0QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDIyMS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w0MDAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTc4LjljMC0yOS43IDExLjgtNTguMiAzMi44LTc5LjJsMjUuMy0yNS4zIDAgMGM3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjItMTEgMTEtOS4yIDI5LjIgMy43IDM3LjggOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTYwIDEwNGMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0sd0JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbiIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXIiXSwiZjA0MSIsIk0xOTIgMEM4NiAwIDAgODQuNCAwIDE4OC42IDAgMzA3LjkgMTIwLjIgNDUwLjkgMTcwLjQgNTA1LjQgMTgyLjIgNTE4LjIgMjAxLjggNTE4LjIgMjEzLjYgNTA1LjQgMjYzLjggNDUwLjkgMzg0IDMwNy45IDM4NCAxODguNiAzODQgODQuNCAyOTggMCAxOTIgMHoiXX0sSUlyPXdCZSxQSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm93bGluZy1iYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNDM2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0yMDggMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS02NC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGtCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWZsYXRiZWQiLGljb246WzU3Niw1MTIsWyJkb2xseS1mbGF0YmVkIl0sImY0NzQiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI4OGMwIDM5LjggMjkuMSA3Mi44IDY3LjEgNzktMiA1LjMtMy4xIDExLTMuMSAxNyAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2bDE5Ny41IDBjLTEuOCA1LTIuNyAxMC40LTIuNyAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2bDM0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDAwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI4OEMxMjggMzUuOCA5Mi4yIDAgNDggMEwzMiAwek0yMjQgNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTc2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI0MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIyNCA2NHoiXX0sTklyPWtCZSxTQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtdXNlciIsaWNvbjpbNTEyLDUxMixbImhvbWUtdXNlciJdLCJlMWIwIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNDQgNDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2eiJdfSxPSXI9U0JlLFJJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnaG9zdCIsaWNvbjpbMzg0LDUxMixbMTI4MTIzXSwiZjZlMiIsIk00MC4xIDQ2Ny4xbC0xMS4yIDlDMjUuNyA0NzguNiAyMS44IDQ4MCAxNy44IDQ4MCA4IDQ4MCAwIDQ3MiAwIDQ2Mi4yTDAgMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmwwIDI3MC4yYzAgOS44LTggMTcuOC0xNy44IDE3LjgtNCAwLTcuOS0xLjQtMTEuMS0zLjlsLTExLjItOWMtMTMuNC0xMC43LTMyLjgtOS00NC4xIDMuOUwyNjkuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNmwtMjYuNi0zMC41Yy0xMi43LTE0LjYtMzUuNC0xNC42LTQ4LjIgMEwxNDEuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNkw4NC4yIDQ3MWMtMTEuMy0xMi45LTMwLjctMTQuNi00NC4xLTMuOXpNMTYwIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEZJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LW5vZGVzIixpY29uOls2NDAsNTEyLFtdLCJlNjk2IiwiTTQ4MCAyMDhDNTAzLjcgMjA4IDUyNS42IDIxNS4zIDU0My43IDIyNy45IDUzNi45IDEwMC45IDQyNSAwIDI4OCAwIDE0Ni42IDAgMzIgMTA3LjUgMzIgMjQwIDMyIDI5NC4zIDUxLjIgMzQ0LjMgODMuNiAzODQuNUwzNC44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN2MyNy4yIDExLjQgNTYuOSAxOC40IDg4LjEgMjAuMiAuMS0xOC45IDQuOS0zOCAxNS01NS41IDE3LjEtMjkuNyA0NS44LTQ4LjUgNzctNTQuMmw5LjItMTZjLTMuNC0xMC43LTUuMi0yMi01LjItMzMuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnpNMzI4LjYgNDQ4Yy0xNy43IDMwLjYtNy4yIDY5LjcgMjMuNCA4Ny40czY5LjcgNy4yIDg3LjQtMjMuNGMxLjUtMi42IDIuOC01LjMgMy45LThsNzMuMyAwYzEuMSAyLjcgMi40IDUuNCAzLjkgOCAxNy43IDMwLjYgNTYuOCA0MS4xIDg3LjQgMjMuNHM0MS4xLTU2LjggMjMuNC04Ny40Yy0xMy40LTIzLjItMzkuMS0zNC44LTY0LTMxLjRsLTE3LjYtMzAuN2MtMTEgMTEuNy0yNSAyMC42LTQwLjYgMjUuNmwxNi41IDI4LjljLTMuOCA0LjgtNi44IDEwLTkgMTUuNmwtNzMuNCAwYy0yLjItNS42LTUuMy0xMC44LTktMTUuNmwzMy01Ny43YzQuMSAuOCA4LjQgMS4zIDEyLjggMS4zIDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjRjMCAxMy40IDQuMSAyNS44IDExLjIgMzYuMWwtMzQuNiA2MC41Yy0yNS0zLjQtNTAuNiA4LjMtNjQgMzEuNHoiXX0sQklyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzgiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0zMTguMyAyOTkuMWwtNDYuMy02Mi40IDAgMjQzLjMgMjcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgwIDAgMC0yNDMuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiA0ODBsMzIgMCAwLTEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDEyOHpNNTY2LjYgMTY2LjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMNDMyIDE0Ni43IDQzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3oiXX0sSElyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NWYiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4eiJdfSxNQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXN3aW1taW5nIixpY29uOls2NDAsNTEyLFsxMjc5NDYsInN3aW1tZXIiXSwiZjVjNCIsIk01NTIgMTUyYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMjkzLjQgMTk4LjJsLTg4LjYgNzMuOWMxLjEgMCAyLjItLjEgMy4zLS4xIDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCA0LjggMCA5LjcgLjIgMTQuNSAuNi04LjMtMzAtMjQuMy01Ny43LTQ2LjgtODAuMi0xOC40LTE4LjQtNDAuNi0zMi43LTY1LTQxLjhsLTY4LjYtMjUuN2MtMjcuNC0xMC4zLTU4LTcuNS04My4xIDcuNmwtNTMuNSAzMi4xYy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOXMyOC43IDIwLjEgNDMuOSAxMUwyMzAgMTg3LjNjOC40LTUgMTguNi01LjkgMjcuNy0yLjVsMzUuNyAxMy40em0xMTAgMTgxLjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyAzODYuMyAxNy42IDM5NC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0scUlyPU1CZSxDQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1kb3RzIixpY29uOls1MTIsNTEyLFsxMjgxNzIsNjIwNzUsImNvbW1lbnRpbmciXSwiZjRhZCIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMTI4IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sVklyPUNCZSx6QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtcGllIixpY29uOls1NzYsNTEyLFsicGllLWNoYXJ0Il0sImYyMDAiLCJNNTEyLjQgMjQwbC0xNzYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzZjMC0xNy43IDE0LjQtMzIuMiAzMS45LTI5LjkgMTA3IDE0LjIgMTkxLjggOTkgMjA2IDIwNiAyLjMgMTcuNS0xMi4yIDMxLjktMjkuOSAzMS45ek0yMjIuNiAzNy4yYzE4LjEtMy44IDMzLjggMTEgMzMuOCAyOS41bDAgMTk3LjNjMCA1LjYgMiAxMSA1LjUgMTUuM0wzOTQgNDM4LjdjMTEuNyAxNC4xIDkuMiAzNS40LTYuOSA0NC4xLTM0LjEgMTguNi03My4yIDI5LjItMTE0LjcgMjkuMi0xMzIuNSAwLTI0MC0xMDcuNS0yNDAtMjQwIDAtMTE1LjUgODEuNS0yMTEuOSAxOTAuMi0yMzQuOHpNNDc3LjggMjg4bDY0IDBjMTguNSAwIDMzLjMgMTUuNyAyOS41IDMzLjgtMTAuMiA0OC40LTM1IDkxLjQtNjkuNiAxMjQuMi0xMi4zIDExLjctMzEuNiA5LjItNDIuNC0zLjlMMzc0LjkgMzQwLjRjLTE3LjMtMjAuOS0yLjQtNTIuNCAyNC42LTUyLjRsNzguMiAweiJdfSxqSXI9ekJlLFVJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmcm9nIixpY29uOls1NzYsNTEyLFtdLCJmNTJlIiwiTTM2OCAzMmM0MS43IDAgNzUuOSAzMS44IDc5LjcgNzIuNWw4NS42IDI2LjNjMjUuNCA3LjggNDIuOCAzMS4zIDQyLjggNTcuOSAwIDIxLjgtMTEuNyA0MS45LTMwLjcgNTIuN2wtMTQ0LjUgODIuMSA5Mi41IDkyLjUgNTAuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNEwzNDYuOSAzNjAuMmMxMS43LTM2IDMuMi03Ny4xLTI1LjQtMTA1LjctNDAuNi00MC42LTEwNi4zLTQwLjYtMTQ2LjktLjFMMTAxIDMyNC40Yy02LjQgNi4xLTYuNyAxNi4yLS42IDIyLjZzMTYuMiA2LjYgMjIuNiAuNmw3My44LTcwLjIgLjEtLjEgLjEtLjFjMy41LTMuNSA3LjMtNi42IDExLjMtOS4yIDI3LjktMTguNSA2NS45LTE1LjQgOTAuNSA5LjIgMjQuNyAyNC43IDI3LjcgNjIuOSA5IDkwLjktMi42IDMuOC01LjYgNy41LTkgMTAuOUwyNjEuOCA0MTYgMzUyIDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBDMjguNyA0ODAgMCA0NTEuMyAwIDQxNiAwIDI0OS42IDEyNyAxMTIuOSAyODkuMyA5Ny41IDI5Ni4yIDYwLjIgMzI4LjggMzIgMzY4IDMyem0wIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFdJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWJvdHRsZSIsaWNvbjpbMzIwLDUxMixbXSwiZjcyZiIsIk04MC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTEuOC02LjQgMjIuMi0xNiAyNy43bDAgMTQ1LjZjNTYuNSAyNC43IDk2IDgxLjEgOTYgMTQ2LjdsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTY1LjYgMzkuNS0xMjIgOTYtMTQ2LjdMOTYtNC4zQzg2LjQtOS44IDgwLTIwLjIgODAtMzJ6TTk2IDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMjg4eiJdfSxHSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5ib3giLGljb246WzUxMiw1MTIsW10sImYwMWMiLCJNOTEuOCAzMkM1OS45IDMyIDMyLjkgNTUuNCAyOC40IDg2LjlMLjYgMjgxLjJjLS40IDMtLjYgNi0uNiA5LjFMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMjUuN2MwLTMtLjItNi4xLS42LTkuMUw0ODMuNiA4Ni45QzQ3OS4xIDU1LjQgNDUyLjEgMzIgNDIwLjIgMzJMOTEuOCAzMnptMCA2NGwzMjguNSAwIDI3LjQgMTkyLTU5LjkgMGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtMTQuMyAyOC42Yy01LjQgMTAuOC0xNi41IDE3LjctMjguNiAxNy43bC0xMjAuNCAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43bC0xNC4zLTI4LjZjLTUuNC0xMC44LTE2LjUtMTcuNy0yOC42LTE3LjdMNjQuMyAyODggOTEuOCA5NnoiXX0sX0JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1oIixpY29uOls0NDgsNTEyLFsiaC1zcXVhcmUiXSwiZjBmZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAgMTY4bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sWUlyPV9CZSxLSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTNiMiIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yMjQgMjQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxUQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tcmlnaHQiLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1yaWdodCJdLCJmMTM4IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTI0MSAzNzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODctODctODctODdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMEwzNDUgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0MSAzNzd6Il19LFpJcj1UQmUsUUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY3N2IixpY29uOls1NzYsNTEyLFtdLCJmNmRkIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNjQgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptMTM2IDBjLTI4LjcgMC01MiAyMy4zLTUyIDUyczIzLjMgNTIgNTIgNTJjNi42IDAgMTIgNS40IDEyIDEycy01LjQgMTItMTIgMTJsLTMyIDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJzLTIzLjMtNTItNTItNTJjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMjQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI0IDB6bTk2IDBjLTExIDAtMjAgOS0yMCAyMGwwIDMxLjZjMCAzNS41IDEwLjUgNzAuMyAzMC4yIDk5LjhsNS4xIDcuN2MzLjcgNS42IDEwIDguOSAxNi42IDguOXMxMi45LTMuMyAxNi42LTguOWw1LjEtNy43YzE5LjctMjkuNiAzMC4yLTY0LjMgMzAuMi05OS44bDAtMzEuNmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMS42YzAgMTkuNi00LjEgMzguOS0xMiA1Ni43LTcuOS0xNy44LTEyLTM3LjEtMTItNTYuN2wwLTMxLjZjMC0xMS05LTIwLTIwLTIweiJdfSxYSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGF0LWNvd2JveSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMCIsIk0xODIuMiA3Ni4xTDEzMC44IDMwNy41QzE0NS41IDMyNC45IDE2Ny40IDMzNiAxOTIgMzM2bDI1NiAwYzI0LjYgMCA0Ni41LTExLjEgNjEuMi0yOC41TDQ1Ny44IDc2LjFjLTUuNy0yNS44LTI4LjYtNDQuMS01NS00NC4xLTEyLjIgMC0yNC4xIDQtMzMuOCAxMS4zbC00LjcgMy41Yy0yNi4zIDE5LjctNjIuNCAxOS43LTg4LjYgMEwyNzEgNDMuM2MtOS44LTcuMy0yMS42LTExLjMtMzMuOC0xMS4zLTI2LjQgMC00OS4zIDE4LjMtNTUgNDQuMXpNNjQgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjM4LjMgMCAyNTZDMCAzNjIgODYgNDQ4IDE5MiA0NDhsMjU2IDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTI1NiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHoiXX0sTEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTQwLCJncmluLXRvbmd1ZS13aW5rIl0sImY1OGIiLCJNMTUyLjIgNDkwLjFDNjIuNSA0NTAuMiAwIDM2MC40IDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDEwNC40LTYyLjUgMTk0LjItMTUyLjIgMjM0LjEgNS4zLTEzIDguMi0yNy4yIDguMi00Mi4xbDAtNjEuN2MxNi45LTE2LjUgMzAuMS0zNi43IDM4LjMtNTkuMyA0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjEtMzkuMiAxMi4yLTgzLjcgMTkuMS0xMzAuNyAxOS4xcy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgOC4zIDIyLjYgMjEuNSA0Mi44IDM4LjMgNTkuM2wwIDYxLjdjMCAxNC45IDIuOSAyOS4xIDguMiA0Mi4xek0xNTIgMjEybDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTg0IDYwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0zMjAgNDAyLjZsMCA0NS40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtNDUuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0zMzYgMTg0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sSklyPUxCZSxlUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibCIsaWNvbjpbMzIwLDUxMixbMTA4XSwiNGMiLCJNNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sVnVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWRlc2MiLCJzb3J0LWFtb3VudC1kb3duLWFsdCJdLCJmODg0IiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSx0UHI9VnVlLHJQcj1WdWUsREJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMTktNS42IDM3LjQtMTYgNTNMMTEyIDEyOGMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlsNjcuOS02Ny45IDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMiAxNC45TDExMiAzODR6Il19LGFQcj1EQmUsJEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwb29uIixpY29uOls1MTIsNTEyLFsxMjkzNDgsNjE4NzMsInV0ZW5zaWwtc3Bvb24iXSwiZjJlNSIsIk0yNDUuOCAyMjAuOWMtMTQuNS0xNy42LTIxLjgtMzkuMi0yMS44LTYwLjggMC04MC4yIDk2LTE2MC4yIDE5Mi0xNjAuMiA1MyAwIDk2IDQzIDk2IDk2IDAgOTYtODAgMTkyLTE2MC4yIDE5Mi0yMS42IDAtNDMuMi03LjMtNjAuOC0yMS44TDU0LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0NS44IDIyMC45eiJdfSxpUHI9JEJlLEFCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcmVkaXQtY2FyZCIsaWNvbjpbNTEyLDUxMixbMTI4MTc5LDYyMDgzLCJjcmVkaXQtY2FyZC1hbHQiXSwiZjA5ZCIsIk0wIDEyOGwwIDMyIDUxMiAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjh6bTAgODBMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYtNTEyIDB6TTY0IDM2MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTQ0IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LHNQcj1BQmUsTXBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZS1kb2xsYXIiLGljb246WzM4NCw1MTIsW10sImY1NzEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTY0IDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjRDNzQuNyA2NCA2NCA3NC43IDY0IDg4em0wIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0xMTIgNzZsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTUyIDQwMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHoiXX0sRUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwYWdoZXR0aS1tb25zdGVyLWZseWluZyIsaWNvbjpbNjQwLDUxMixbInBhc3RhZmFyaWFuaXNtIl0sImY2N2IiLCJNMjA4IDY0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDBjMCAxNi4yLTYgMzEuMS0xNiA0Mi4zbDE1LjYgMzEuMmMxOC43LTYgMzkuOS05LjUgNjQuNC05LjVzNDUuOCAzLjUgNjQuNCA5LjVMNDAwIDEwNi4zYy0xMC0xMS4zLTE2LTI2LjEtMTYtNDIuMyAwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjRjLTEuNyAwLTMuNC0uMS01LjEtLjJMNDI3LjggMTU4YzIxLjEgMTMuNiAzNy43IDMwLjIgNTEuNCA0Ni40IDcuMSA4LjMgMTMuNSAxNi42IDE5LjMgMjRsMS40IDEuOGM2LjMgOC4xIDExLjYgMTQuOCAxNi43IDIwLjQgMTAuNyAxMS43IDE2LjEgMTMuNCAxOS40IDEzLjQgMi41IDAgNC4zLS42IDcuMS0zLjMgMy43LTMuNSA3LjEtOC44IDEyLjUtMTcuNGwuNi0uOWM0LjYtNy40IDExLTE3LjYgMTkuNC0yNS43IDkuNy05LjMgMjIuOS0xNi43IDQwLjQtMTYuNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMi41IDAtNC4zIC42LTcuMSAzLjMtMy43IDMuNS03LjEgOC44LTEyLjUgMTcuNGwtLjYgLjljLTQuNiA3LjQtMTEgMTcuNi0xOS40IDI1LjctOS43IDkuMy0yMi45IDE2LjctNDAuNCAxNi43LTE4LjUgMC0zMi45LTguNS00NC4zLTE4LjYtMy4xIDQtNi42IDguMy0xMC41IDEyLjcgMS40IDQuMyAyLjggOC41IDQgMTIuNSAuOSAzIDEuOCA1LjggMi42IDguNiAzIDkuOCA1LjUgMTguMiA4LjYgMjUuOSAzLjkgOS44IDcuNCAxNS40IDEwLjggMTguNSAyLjYgMi40IDUuOSA0LjMgMTIuOCA0LjMgOC43IDAgMTYuOS00LjIgMzMuNy0xMy4yIDE1LTggMzUuNy0xOC44IDYyLjMtMTguOCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTMuNCAwLTI0LjcgNS4yLTM5LjcgMTMuMi0xIC42LTIuMSAxLjEtMy4yIDEuNy0xMy4xIDcuMS0zMS42IDE3LjEtNTMuMSAxNy4xLTE4LjQgMC0zMy42LTYuMS00NS41LTE3LjItMTEuMS0xMC4zLTE3LjktMjMuNy0yMi43LTM2LTMuNi05LTYuNy0xOS4xLTkuNS0yOC41LTE2LjQgMTIuMy0zNi4xIDIzLjYtNTguOSAzMS4zIDMuNiAxMC44IDguNCAyMy41IDE0LjQgMzYuMiA3LjUgMTUuOSAxNi4yIDMwLjQgMjUuOCA0MC41IDkuNiAxMC4yIDE3LjcgMTMuNyAyNC41IDEzLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI1LjIgMC00NS0xMy41LTU5LjUtMjguOC0xNC41LTE1LjQtMjUuNy0zNC45LTM0LjItNTMtOC0xNy0xNC4xLTMzLjgtMTguMy00Ni45LTUuMiAuNC0xMC42IC42LTE2IC42cy0xMC44LS4yLTE2LS42Yy00LjIgMTMtMTAuMyAyOS45LTE4LjMgNDYuOS04LjUgMTguMS0xOS44IDM3LjYtMzQuMiA1My0xNC40IDE1LjMtMzQuMyAyOC44LTU5LjUgMjguOC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzYuOCAwIDE1LTMuNSAyNC41LTEzLjcgOS41LTEwLjEgMTguMy0yNC42IDI1LjgtNDAuNSA1LjktMTIuNiAxMC43LTI1LjQgMTQuNC0zNi4yLTIyLjgtNy43LTQyLjUtMTktNTguOS0zMS4zLTIuOSA5LjQtNiAxOS41LTkuNSAyOC41LTQuOCAxMi4yLTExLjYgMjUuNi0yMi43IDM2LTExLjkgMTEuMS0yNy4xIDE3LjItNDUuNSAxNy4yLTEzLjEgMC0yNC41LTQuMS0zMy44LTguOS03LjktNC0xNS43LTkuMi0yMi4xLTEzLjVsMCAwLTIuNC0xLjZjLTE1LjMtMTAuMi0yNS44LTE2LTM3LjctMTYtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOC4xIDAgNDkuNiAxNC4yIDY0LjMgMjRsMi40IDEuNmM2LjkgNC42IDEyLjEgOC4xIDE3LjIgMTAuNyA1LjUgMi44IDkuMSAzLjYgMTIgMy42IDYuOCAwIDEwLjItMS45IDEyLjgtNC4zIDMuNC0zLjIgNy04LjggMTAuOC0xOC41IDMtNy43IDUuNi0xNi4xIDguNi0yNS45IC44LTIuNyAxLjctNS42IDIuNi04LjYgMS4yLTQgMi42LTguMiA0LTEyLjUtMy45LTQuNS03LjQtOC44LTEwLjUtMTIuNy0xMS40IDEwLjEtMjUuOSAxOC42LTQ0LjMgMTguNi0xNy41IDAtMzAuNy03LjQtNDAuNC0xNi43LTguNC04LjEtMTQuOC0xOC4zLTE5LjQtMjUuN2wtLjYtLjljLTUuNC04LjYtOC44LTEzLjktMTIuNS0xNy40LTIuOC0yLjctNC42LTMuMy03LjEtMy4zLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMTcuNSAwIDMwLjcgNy40IDQwLjQgMTYuNyA4LjQgOC4xIDE0LjggMTguMyAxOS40IDI1LjdsLjYgLjljNS40IDguNiA4LjggMTMuOSAxMi41IDE3LjQgMi44IDIuNyA0LjYgMy4zIDcuMSAzLjMgMy4zIDAgOC43LTEuNyAxOS40LTEzLjQgNS4xLTUuNiAxMC40LTEyLjMgMTYuNy0yMC40bDEuNC0xLjhjNS44LTcuNCAxMi4yLTE1LjcgMTkuMy0yNCAxMy44LTE2LjIgMzAuMy0zMi44IDUxLjQtNDYuNGwtMTUuMS0zMC4yYy0xLjcgLjEtMy40IC4yLTUuMSAuMi0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0IDY0IDI4LjcgNjQgNjR6bTIwOCAwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LG5Qcj1FQmUsSUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtY2l0cnVzIixpY29uOls2NDAsNTEyLFsiY29ja3RhaWwiXSwiZjU2MSIsIk01NzYgODBjMC00NC4yLTM1LjgtODAtODAtODAtMTggMC0zNC42IDYtNDggMTZsLTgxIDBjMjMuNi00Ny40IDcyLjUtODAgMTI5LTgwIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzU3NS41IDIyNCA0OTYgMjI0Yy02LjUgMC0xMy0uNC0xOS4zLTEuM2w2NC03NC43YzEuMS0xLjMgMi4yLTIuNyAzLjMtNC4xIDE5LjQtMTQuNiAzMi0zNy44IDMyLTY0ek02Ni45IDgyLjZDNzIuMiA3MS4zIDgzLjUgNjQgOTYgNjRsMzg0IDBjMTIuNSAwIDIzLjggNy4zIDI5LjEgMTguNnMzLjQgMjQuNy00LjggMzQuMmwtMTg0LjMgMjE1IDAgMTE2LjIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTExNi4yLTE4NC4zLTIxNWMtOC4xLTkuNS0xMC0yMi44LTQuOC0zNC4yek0xNjUuNiAxMjhMMjg4IDI3MC44IDQxMC40IDEyOCAxNjUuNiAxMjh6Il19LG9Qcj1JQmUsbFByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1bGxob3JuIixpY29uOls1MTIsNTEyLFsxMjgyMjYsMTI4MzYzXSwiZjBhMSIsIk00NjEuMiAxOC45QzQ3Mi43IDI0IDQ4MCAzNS40IDQ4MCA0OGwwIDQxNmMwIDEyLjYtNy4zIDI0LTE4LjggMjkuMXMtMjQuOCAzLjItMzQuMy01LjFsLTQ2LjYtNDAuN2MtNDMuNi0zOC4xLTk4LjctNjAuMy0xNTYuNC02M2wwIDk1LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZDNTcuMyAzODQgMCAzMjYuNyAwIDI1NlM1Ny4zIDEyOCAxMjggMTI4bDg0LjUgMGM2MS44LS4yIDEyMS40LTIyLjcgMTY3LjktNjMuM2w0Ni42LTQwLjdjOS40LTguMyAyMi45LTEwLjIgMzQuMy01LjF6TTIyNCAzMjBsMCAuMmM3MC4zIDIuNyAxMzcuOCAyOC41IDE5MiA3My40bDAtMjc1LjNjLTU0LjIgNDQuOS0xMjEuNyA3MC43LTE5MiA3My40TDIyNCAzMjB6Il19LGNQcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtdGlzc3VlIixpY29uOls1MTIsNTEyLFtdLCJlMDViIiwiTTEwMy45IDMybDE2MSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45bDE3LjQgNTIuMmM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDYwLjUgMGMyMS44IDAgMzcuMyAyMS40IDMwLjQgNDIuMUwzODQgMzIwIDEyOCAzMjAgNzIuNyA3MC45QzY4LjIgNTEgODMuNCAzMiAxMDMuOSAzMnpNNDggMjU2bDE2LjYgMCAxNi41IDc0LjRDODYgMzUyLjQgMTA1LjUgMzY4IDEyOCAzNjhsMjU2IDBjMjAuNyAwIDM5LTEzLjIgNDUuNS0zMi44bDI2LjQtNzkuMiA4LjEgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxkUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWF0dHJlc3MtcGlsbG93IixpY29uOls1NzYsNTEyLFtdLCJlNTI1IiwiTTI1NiA2NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwLTM4NHptNDggMzg0bDIwOCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yMDggMCAwIDM4NHpNNjQgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyeiJdfSx1UHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1sZWZ0IixpY29uOlszMjAsNTEyLFs5MDAxXSwiZjA1MyIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyNDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xOTIgMTkyeiJdfSxwUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbi1yYWluIixpY29uOls1NzYsNTEyLFtdLCJmNzNjIiwiTTQ0OCAwYy02OC42IDAtMTI3LjEgNDMuMS0xNDkuOCAxMDMuOCAxNy4xIDE0LjEgMjkuNiAzMy41IDM0LjkgNTUuOCAzOS45IDIxLjcgNjYuOSA2My45IDY2LjkgMTEyLjUgMCAxMy41LTIuMSAyNi41LTUuOSAzOC43IDE2LjkgNiAzNSA5LjMgNTMuOSA5LjMgNDMgMCA4Mi4xLTE3IDExMC44LTQ0LjYgNC42LTQuNCA1LjktMTEuMiAzLjMtMTdzLTguNi05LjMtMTQuOS04LjhjLTMgLjItNi4xIC40LTkuMiAuNC02My41IDAtMTE1LTUxLjUtMTE1LTExNSAwLTQ1LjEgMjYtODQuMiA2My44LTEwMyA1LjctMi44IDktOC45IDguMi0xNS4yUzQ4OS42IDUuMyA0ODMuNCAzLjlDNDcyIDEuNCA0NjAuMiAwIDQ0OCAwek0yNzIgMzUyYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzktMjcuOS03MS41LTY0LjgtNzguNiAuNS0zLjEgLjgtNi4yIC44LTkuNCAwLTMwLjktMjUuMS01Ni01Ni01Ni0xMi40IDAtMjMuOSA0LTMzLjEgMTAuOC0xMy40LTI1LjUtNDAuMS00Mi44LTcwLjktNDIuOC00NC4yIDAtODAgMzUuOC04MCA4MCAwIDcuNCAxIDE0LjYgMi45IDIxLjUtMjkuOCAxMS42LTUwLjkgNDAuNi01MC45IDc0LjUgMCA0NC4yIDM1LjggODAgODAgODBsMTkyIDB6TTY5IDQwMS4xYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJMMTcuMiA0ODAuNEMxMyA0OTMgMTkuOCA1MDYuNiAzMi40IDUxMC44czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHptMTIwIDBjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuNCA2NC4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6Il19LGp1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy1hc2MiLCJzb3J0LW51bWVyaWMtZG93biJdLCJmMTYyIiwiTTQxOC43IDM4YzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40ek0zNjUuMSA0MzAuNmwxMS43LTE4Yy0zMi45LTkuOS01Ni44LTQwLjUtNTYuOC03Ni42IDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAyMi45LTYuNiA0NS4zLTE5LjEgNjQuNWwtNDIuMSA2NC45Yy05LjYgMTQuOC0yOS40IDE5LjEtNDQuMyA5LjRzLTE5LjEtMjkuNC05LjQtNDQuM3pNNDI0IDMzNmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xNTAuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZ6Il19LGZQcj1qdWUsaFByPWp1ZSxtUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zcG9jayIsaWNvbjpbNTEyLDUxMixbMTI4NDA2XSwiZjI1OSIsIk0yMTQuOSAyMy43QzIxMC4zIDYuNiAxOTIuOC0zLjUgMTc1LjcgMS4xcy0yNy4yIDIyLjEtMjIuNiAzOS4yTDIwNiAyMzcuOGMyLjUgOS4yLTQuNSAxOC4yLTE0IDE4LjItNi40IDAtMTItNC4yLTEzLjktMTAuM0wxMzQuNiAxMDIuN2MtNS4xLTE2LjktMjMtMjYuNC0zOS45LTIxLjNzLTI2LjQgMjMtMjEuMyAzOS45bDYyLjggMjA2LjRjMi40IDcuOS03LjIgMTMuOC0xMy4yIDguMUw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4xIDBjLjEgMCAuMS0uMSAuMS0uMXMuMS0uMSAuMS0uMWM1OC4zLTMuNSAxMDguNi00My4yIDEyNS4zLTk5LjdsODEuMi0yNzVjNS0xNi45LTQuNy0zNC43LTIxLjYtMzkuOHMtMzQuNyA0LjctMzkuOCAyMS42TDQxMS41IDI0Ny4xYy0xLjYgNS4zLTYuNCA4LjktMTIgOC45LTcuOSAwLTEzLjgtNy4zLTEyLjItMTUuMWwzNi0xNzAuM2MzLjctMTcuMy03LjQtMzQuMy0yNC43LTM3LjlzLTM0LjMgNy40LTM3LjkgMjQuN0wzMjMuMSAyMzUuMWMtMi42IDEyLjItMTMuMyAyMC45LTI1LjggMjAuOS0xMS45IDAtMjIuNC04LTI1LjQtMTkuNWwtNTctMjEyLjh6Il19LFBCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLW1hZ2ljLXNwYXJrbGVzIixpY29uOls1NzYsNTEyLFsibWFnaWMtd2FuZC1zcGFya2xlcyJdLCJlMmNhIiwiTTI2My40LTI3TDI3OC4yIDkuOCAzMTUgMjQuNmMzIDEuMiA1IDQuMiA1IDcuNHMtMiA2LjItNSA3LjRMMjc4LjIgNTQuMiAyNjMuNCA5MWMtMS4yIDMtNC4yIDUtNy40IDVzLTYuMi0yLTcuNC01TDIzMy44IDU0LjIgMTk3IDM5LjRjLTMtMS4yLTUtNC4yLTUtNy40czItNi4yIDUtNy40TDIzMy44IDkuOCAyNDguNi0yN2MxLjItMyA0LjItNSA3LjQtNXM2LjIgMiA3LjQgNXpNMTEwLjcgNDEuN2wyMS41IDUwLjEgNTAuMSAyMS41YzUuOSAyLjUgOS43IDguMyA5LjcgMTQuN3MtMy44IDEyLjItOS43IDE0LjdsLTUwLjEgMjEuNS0yMS41IDUwLjFjLTIuNSA1LjktOC4zIDkuNy0xNC43IDkuN3MtMTIuMi0zLjgtMTQuNy05LjdMNTkuOCAxNjQuMiA5LjcgMTQyLjdDMy44IDE0MC4yIDAgMTM0LjQgMCAxMjhzMy44LTEyLjIgOS43LTE0LjdMNTkuOCA5MS44IDgxLjMgNDEuN0M4My44IDM1LjggODkuNiAzMiA5NiAzMnMxMi4yIDMuOCAxNC43IDkuN3pNNDY0IDMwNGM2LjQgMCAxMi4yIDMuOCAxNC43IDkuN2wyMS41IDUwLjEgNTAuMSAyMS41YzUuOSAyLjUgOS43IDguMyA5LjcgMTQuN3MtMy44IDEyLjItOS43IDE0LjdsLTUwLjEgMjEuNS0yMS41IDUwLjFjLTIuNSA1LjktOC4zIDkuNy0xNC43IDkuN3MtMTIuMi0zLjgtMTQuNy05LjdsLTIxLjUtNTAuMS01MC4xLTIxLjVjLTUuOS0yLjUtOS43LTguMy05LjctMTQuN3MzLjgtMTIuMiA5LjctMTQuN2w1MC4xLTIxLjUgMjEuNS01MC4xYzIuNS01LjkgOC4zLTkuNyAxNC43LTkuN3pNNDYwIDBjMTEgMCAyMS42IDQuNCAyOS41IDEyLjJsNDIuMyA0Mi4zQzUzOS42IDYyLjQgNTQ0IDczIDU0NCA4NHMtNC40IDIxLjYtMTIuMiAyOS41bC04OC4yIDg4LjItMTAxLjMtMTAxLjMgODguMi04OC4yQzQzOC40IDQuNCA0NDkgMCA0NjAgMHpNNDQuMiAzOTguNUwzMDguNCAxMzQuMyA0MDkuNyAyMzUuNiAxNDUuNSA0OTkuOEMxMzcuNiA1MDcuNiAxMjcgNTEyIDExNiA1MTJzLTIxLjYtNC40LTI5LjUtMTIuMkw0NC4yIDQ1Ny41QzM2LjQgNDQ5LjYgMzIgNDM5IDMyIDQyOHM0LjQtMjEuNiAxMi4yLTI5LjV6Il19LGdQcj1QQmUsYlByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjdmNSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMjE3LjYgMTUzLjZjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmwzOC40IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDQ4IDQ4IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDM4LjRjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtNDggMCAwIDQ4YzAgMTAuNi04LjYgMTkuMi0xOS4yIDE5LjJsLTM4LjQgMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTQ4LTQ4IDBjLTEwLjYgMC0xOS4yLTguNi0xOS4yLTE5LjJsMC0zOC40YzAtMTAuNiA4LjYtMTkuMiAxOS4yLTE5LjJsNDggMCAwLTQ4eiJdfSx4UHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny41LTg3LjVjMTcuMi0yLjQgMzAuNS0xNy4zIDMwLjUtMzUuMiAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtOS44LTEyLjJDNDY0LjQgMzA4LjUgNDQ4IDI2MS44IDQ0OCAyMTMuN2wwLTIxLjdjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhsMC0zLjJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzLjJjLTM4LjYgNy44LTcyLjIgMjkuNi05NS4yIDU5LjdMNDEtMjQuOXptODcgMjM4LjVjMCA0OC4xLTE2LjQgOTQuOC00Ni40IDEzMi40bC05LjggMTIuMmMtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMjM1LjMgMC0yMDYuOS0yMDYuOSAwIDQuNXpNMjg4IDUxMmMyOS44IDAgNTQuOS0yMC40IDYyLTQ4bC0xMjQgMGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4eiJdfSxVdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLXNsYXNoIixpY29uOls1NzYsNTEyLFs1NzQzOSwiaGFuZHNoYWtlLWFsdC1zbGFzaCIsImhhbmRzaGFrZS1zaW1wbGUtc2xhc2giXSwiZTA2MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0yODgtMjg4IDE0LjItMTQuMmM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjFsLTU1LjggNjIuMS0zNC0zNCA0NC4zLTQ5LjItMzkuNyAwYy0xNS4zIDAtMzAuMSAzLjYtNDMuNSAxMC40TDQxLTI0Ljl6TTAgNjkuOEwwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMjIuMiAwIDQzLjgtNS44IDYyLjgtMTYuNEwwIDY5Ljh6Il19LHZQcj1VdWUseVByPVV1ZSx3UHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLXdhdGVyIixpY29uOlszMjAsNTEyLFtdLCJlNGM1IiwiTTExMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwQzk0LjMgMzIgODAgMTcuNyA4MCAwczE0LjMtMzIgMzItMzJ6TTE2IDE0NGMwLTM1LjMgMjguNy02NCA2NC02NGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDI0LjEtMTMuMyA0NS4xLTMzIDU2IDE5LjcgMTAuOSAzMyAzMS45IDMzIDU2cy0xMy4zIDQ1LjEtMzMgNTZjMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NiAwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjQuMSAxMy4zLTQ1LjEgMzMtNTYtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZzMTMuMy00NS4xIDMzLTU2Yy0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2eiJdfSxrUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kMjAiLGljb246WzUxMiw1MTIsW10sImY2Y2YiLCJNMjI0LjQtOC4yYzE5LjYtMTEuMSA0My42LTExLjEgNjMuMSAwbDE5MiAxMDguOGMyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAyMTUuNmMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE5MiAxMDguOGMtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBMMzIuNCA0MjcuNUMxMi40IDQxNi4xIDAgMzk0LjggMCAzNzEuOEwwIDE1Ni4yYzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN0wyMjQuNC04LjJ6bTUyIDczLjJDMjY3IDQ5LjggMjQ1IDQ5LjggMjM1LjYgNjVsLTc2LjYgMTIzLjctODUuNC00Ni4zLTMuOC0xLjZjLTguOS0yLjctMTguOCAxLjEtMjMuNCA5LjZzLTIuNCAxOC45IDQuNyAyNC44bDMuMyAyLjMgODMuNCA0NS4yLTc0LjYgMTIwLjZDNTUuMyAzNTYuMiA2MSAzNzMgNzUgMzc4LjRsMTYxIDYxLjkgMCAzOS43YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMzkuNyAxNjEtNjEuOWMxNC01LjQgMTkuNy0yMi4yIDExLjgtMzVsLTc0LjctMTIwLjYgODMuNC00NS4yYzkuNy01LjMgMTMuMy0xNy40IDguMS0yNy4xcy0xNy40LTEzLjMtMjcuMS04LjFMMzUzIDE4OC43IDI3Ni40IDY1em0tNDcgMzI5LjlsLTEyMi00Ni45IDU0LjUtODguMSA2Ny41IDEzNXpNNDA0LjYgMzQ4bC0xMjIgNDYuOSA2Ny41LTEzNSA1NC41IDg4LjF6TTMxOS4zIDIzMkwyNTYgMzU4LjYgMTkyLjcgMjMyIDMxOS4zIDIzMnpNMzA4IDE5MmwtMTA0LjEgMCA1Mi04NCA1MiA4NHoiXX0sV3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS1kZXNjIiwic29ydC1hbHBoYS1kb3duLWFsdCJdLCJmODgxIiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjg4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgMTYwIDQ0OCAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOUwzNzAuOCA5NiAzMjAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00MTIuNiAyNzMuN2w4MCAxNjBjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtNy4yLTE0LjMtODguNCAwLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDgwLTE2MGM1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43czIzLjIgNi44IDI4LjYgMTcuN3pNMzg0IDM1OS42bC0yMC4yIDQwLjQgNDAuNCAwLTIwLjItNDAuNHoiXX0sU1ByPVd1ZSxNUHI9V3VlLENQcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicnVzaCIsaWNvbjpbMzg0LDUxMixbXSwiZjU1ZCIsIk0xNjIuNCA2Yy0xLjUtMy42LTUtNi04LjktNmwtMTkgMGMtMy45IDAtNy41IDIuNC04LjkgNkwxMDQuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDY2LjQgNmMtMS41LTMuNi01LTYtOC45LTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhsMCAyMDggMzg0IDAgMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjMwLjUgMGMtMy45IDAtNy41IDIuNC04LjkgNkwyMDAuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDE2Mi40IDZ6TTAgMzA0bDAgMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMCAwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC02NCA2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtMzg0IDB6TTE5MiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnoiXX0selByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWRhc2hlZC1saW5lLWFycm93LXJpZ2h0IixpY29uOls2NDAsNTEyLFtdLCJlNTUzIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNNDMyIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMzg0LTUuMyAzODQgOGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnptMCAxMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQwOCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTYwOSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxOQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LXVwLWFsdCJdLCJmODg1IiwiTTMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMHpNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSxfUHI9TkJlLE9CZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLXZlcnRpY2FsIixpY29uOlszMjAsNTEyLFsiZ3JpZC12ZXJ0aWNhbCJdLCJmNThlIiwiTTEyOCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHptMCAxOTJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4ek0wIDQyNGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTMyMCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEwyMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6TTE5MiAyMzJsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0zMjAgNDI0YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHoiXX0sVFByPU9CZSxMUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXR1bm5lbCIsaWNvbjpbNTEyLDUxMixbXSwiZTRkZSIsIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDIuOCAwYy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0bDAtMTEzLjFjMC0xMy41IDMuMS0yNi44IDktMzguOWwzOS43LTgwLjhjOS40LTE5LjEgMjguOS0zMS4zIDUwLjItMzEuM0wzMTcgMjI0YzIxLjMgMCA0MC44IDEyLjEgNTAuMiAzMS4zTDQwNyAzMzZjNS45IDEyLjEgOSAyNS40IDkgMzguOUw0MTYgNDg4YzAgOS42LTQuMiAxOC4xLTEwLjggMjRsNDIuOCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyQzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwek0zNjIuOCA1MTJjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0yNC0xOTIgMCAwIDI0YzAgOS42LTQuMiAxOC4xLTEwLjggMjRsMjEzLjcgMHptLTE3NS0yMzUuNWwtMjkuMyA1OS41IDE5NC45IDAtMjkuMy01OS41Yy0xLjMtMi43LTQuMS00LjUtNy4yLTQuNUwxOTUgMjcyYy0zIDAtNS44IDEuNy03LjIgNC41ek0xNzYgNDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTg0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LERQcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1jb2x1bW4iLGljb246WzUxMiw1MTIsW10sImUwZTMiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnpNMTQ0IDIyNGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE0NC02NGwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem04MCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTUxMiA5NmwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSwkUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fwcmljb3JuIixpY29uOls1NzYsNTEyLFtdLCJlODQ4IiwiTTI0MCAzMmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDY1LjJjMTguOC0xMC45IDQwLjctMTcuMiA2NC0xNy4yIDcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzUxOC43IDQ4MCA0NDggNDgwYy0zNS44IDAtNjguMi0xNC43LTkxLjQtMzguNC0yOC44IDQyLjUtNzcuNCA3MC40LTEzMi42IDcwLjQtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmM1MyAwIDk2LTQzIDk2LTk2bDAtMTc2YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0LTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgMzIgMzIgMzJDNzIuNiAzMiAxMDguOCA1MSAxMzIuMiA4MC41IDE1OC42IDUwLjcgMTk3LjEgMzIgMjQwIDMyek00NDggMjg4YTY0IDY0IDAgMSAwIDAgMTI4IDY0IDY0IDAgMSAwIDAtMTI4eiJdfSxBUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stYXJyb3ctcmlnaHQiLGljb246WzU3Niw1MTIsW10sImU1OGIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMzA1IDIyNWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LEd1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0diIsaWNvbjpbNTc2LDUxMixbNjM3MTcsInRlbGV2aXNpb24iLCJ0di1hbHQiXSwiZjI2YyIsIk02NCA5NmwwIDI0MCA0NDggMCAwLTI0MC00NDggMHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0MDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE2MCA0NDhsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxFUHI9R3VlLElQcj1HdWUsUFByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlY3Rpb24iLGljb246WzI1Niw1MTIsW10sImU0NDciLCJNMTEwIDBDNDkuMiAwIDAgNDkuMiAwIDExMCAwIDEzMy43IDcuNiAxNTUuOCAyMC41IDE3NCA3LjYgMTkyIDAgMjE0LjEgMCAyMzggMCAyOTEuNyAzOC45IDMzNy42IDkxLjkgMzQ2LjRsNjEuNyAxMC4zYzIyLjIgMy43IDM4LjQgMjIuOSAzOC40IDQ1LjMgMCAyNS40LTIwLjYgNDYtNDYgNDZsLTk4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTggMGM2MC43IDAgMTEwLTQ5LjIgMTEwLTExMCAwLTIzLjctNy42LTQ1LjktMjAuNS02NCAxMi45LTE4IDIwLjUtNDAuMSAyMC41LTY0IDAtNTMuOC0zOC45LTk5LjYtOTEuOS0xMDguNWwtNjEuNy0xMC4zQzgwLjIgMTUxLjYgNjQgMTMyLjQgNjQgMTEwIDY0IDg0LjYgODQuNiA2NCAxMTAgNjRsOTggMGMxNy43IDAgMzItMTQuMyAzMi0zMlMyMjUuNyAwIDIwOCAwTDExMCAwem03NC43IDI5OS4xYy02LjUtMi40LTEzLjQtNC4zLTIwLjUtNS41bC02MS43LTEwLjNjLTIyLjItMy43LTM4LjQtMjIuOS0zOC40LTQ1LjMgMC05LjIgMi43LTE3LjggNy40LTI1IDYuNSAyLjQgMTMuNCA0LjMgMjAuNSA1LjVsNjEuNyAxMC4zYzIyLjIgMy43IDM4LjQgMjIuOSAzOC40IDQ1LjMgMCA5LjItMi43IDE3LjgtNy40IDI1eiJdfSxOUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVhY2UiLGljb246WzUxMiw1MTIsWzk3NzRdLCJmNjdjIiwiTTIyNCA0NDUuM2wwLTEyMS44LTk0LjMgNzcuMWMyNi4xIDIyLjggNTguNSAzOC43IDk0LjMgNDQuN3pNODkuMiAzNTEuMUwyMjQgMjQwLjggMjI0IDY2LjdjLTkwLjggMTUuMi0xNjAgOTQuMi0xNjAgMTg5LjMgMCAzNC42IDkuMiA2Ny4xIDI1LjIgOTUuMXptMjkzLjEgNDkuNWwtOTQuMy03Ny4xIDAgMTIxLjhjMzUuNy02IDY4LjEtMjEuOSA5NC4zLTQ0Ljd6bTQwLjYtNDkuNWMxNi0yOCAyNS4yLTYwLjUgMjUuMi05NS4xIDAtOTUuMS02OS4yLTE3NC4xLTE2MC0xODkuM2wwIDE3NC4yIDEzNC44IDExMC4zek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxPUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTMwOS41LTE4LjljLTQuMS04LTEyLjQtMTMuMS0yMS40LTEzLjFzLTE3LjMgNS4xLTIxLjQgMTMuMUwxOTMuMSAxMjUuMyAzMy4yIDE1MC43Yy04LjkgMS40LTE2LjMgNy43LTE5LjEgMTYuM3MtLjUgMTggNS44IDI0LjRsMTE0LjQgMTE0LjUtMjUuMiAxNTkuOWMtMS40IDguOSAyLjMgMTcuOSA5LjYgMjMuMnMxNi45IDYuMSAyNSAyTDI4OC4xIDQxNy42IDQzMi40IDQ5MWM4IDQuMSAxNy43IDMuMyAyNS0yczExLTE0LjIgOS42LTIzLjJMNDQxLjcgMzA1LjkgNTU2LjEgMTkxLjRjNi40LTYuNCA4LjYtMTUuOCA1LjgtMjQuNHMtMTAuMS0xNC45LTE5LjEtMTYuM0wzODMgMTI1LjMgMzA5LjUtMTguOXoiXX0sUlByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMkwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTIxLjYgNjIuNy0xOC44YzQxLjktMTIuNiA4Ny4xLTguNyAxMjYuMiAxMC45IDQyLjcgMjEuNCA5Mi41IDI0IDEzNy4yIDcuMmwzNy4xLTEzLjljMTIuNS00LjcgMjAuOC0xNi42IDIwLjgtMzBsMC0yNDcuN2MwLTIzLTI0LjItMzgtNDQuOC0yNy43bC0xMS44IDUuOWMtNDQuOSAyMi41LTk3LjggMjIuNS0xNDIuOCAwLTM2LjQtMTguMi03OC4zLTIxLjgtMTE3LjItMTAuMUw2NCA1NC40IDY0IDMyeiJdfSxZdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJpYW5nbGUtZXhjbGFtYXRpb24iLGljb246WzUxMiw1MTIsWzk4ODgsImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiwid2FybmluZyJdLCJmMDcxIiwiTTI1NiAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNVM0ODYuMSA0ODAgNDcyIDQ4MEw0MCA0ODBjLTE0LjEgMC0yNy4yLTcuNC0zNC40LTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMGM3LTEyLjkgMjAuNS0yMSAzNS4yLTIxem0wIDM1MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjUgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LEZQcj1ZdWUsQlByPVl1ZSxIUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2YyIsIk02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI3NiAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC05MC45IDAgMC04OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzEgMCAxLjkgMCAyLjkgLjEgMjYuMy03NC42IDk3LjUtMTI4LjEgMTgxLjEtMTI4LjEgMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC0zMy40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwLTEyNy45LTExNS4xYy0xOC4zLTE2LjQtNDYtMTYuNC02NC4yIDBMMTI4IDEyOCA2NCAxMjh6bTY0IDI0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyek0xMTIgMjU2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZ6TTI4OCAxMjhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxSQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JhZHVhdGlvbi1jYXAiLGljb246WzU3Niw1MTIsWzEyNzg5MSwibW9ydGFyLWJvYXJkIl0sImYxOWQiLCJNNDggMTk1LjhsMjA5LjIgODYuMWM5LjggNCAyMC4yIDYuMSAzMC44IDYuMXMyMS0yLjEgMzAuOC02LjFsMjQyLjQtOTkuOGM5LTMuNyAxNC44LTEyLjQgMTQuOC0yMi4xcy01LjgtMTguNC0xNC44LTIyLjFMMzE4LjggMzguMUMzMDkgMzQuMSAyOTguNiAzMiAyODggMzJzLTIxIDIuMS0zMC44IDYuMUwxNC44IDEzNy45QzUuOCAxNDEuNiAwIDE1MC4zIDAgMTYwTDAgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNjAuMnptNDggNzEuN0w5NiAzODRjMCA1MyA4NiA5NiAxOTIgOTZzMTkyLTQzIDE5Mi05NmwwLTExNi42LTE0Mi45IDU4LjljLTE1LjYgNi40LTMyLjIgOS43LTQ5LjEgOS43cy0zMy41LTMuMy00OS4xLTkuN0w5NiAyNjcuNHoiXX0scVByPVJCZSxWUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUiLGljb246WzUxMiw1MTIsW10sImY1NGUiLCJNMzAuNyA3Mi4zQzM3LjYgNDguNCA1OS41IDMyIDg0LjQgMzJsMzQ0IDBjMjQuOSAwIDQ2LjggMTYuNCA1My44IDQwLjNsMjMuNCA4MC4yYzEyLjggNDMuNy0yMC4xIDg3LjUtNjUuNiA4Ny41LTI2LjMgMC00OS40LTE0LjktNjAuOC0zNy4xLTExLjYgMjEuOS0zNC42IDM3LjEtNjEuNCAzNy4xLTI2LjYgMC00OS43LTE1LTYxLjMtMzctMTEuNiAyMi0zNC43IDM3LTYxLjMgMzctMjYuOCAwLTQ5LjgtMTUuMS02MS40LTM3LjEtMTEuNCAyMi4xLTM0LjUgMzcuMS02MC44IDM3LjEtNDUuNiAwLTc4LjQtNDMuNy02NS42LTg3LjVMMzAuNyA3Mi4zek05Ni40IDM1MmwzMjAgMCAwLTY2LjRjNy42IDEuNiAxNS41IDIuNCAyMy41IDIuNCAxNC4zIDAgMjgtMi42IDQwLjUtNy4ybDAgMTUxLjJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTM1MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE1MS4yYzEyLjUgNC42IDI2LjEgNy4yIDQwLjUgNy4yIDguMSAwIDE1LjktLjggMjMuNS0yLjRsMCA2Ni40eiJdfSxqUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1hc3Ryb25hdXQiLGljb246WzQ0OCw1MTIsW10sImY0ZmIiLCJNMjI0IDMzNmM3NC42IDAgMTM4LjQtNDYuNCAxNjQtMTEybDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC00IDBDMzYyLjQgMzAuNCAyOTguNi0xNiAyMjQtMTZTODUuNiAzMC40IDYwIDk2bC00IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNCAwYzI1LjYgNjUuNiA4OS40IDExMiAxNjQgMTEyek0yMDggODBsMzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NnpNMTYgNDg0LjZDMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsNTIuNiAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OCA1Mi42IDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC01OS44LTMxLjktMTEyLjItNzkuNi0xNDEtMzYuNCAyNS41LTgwLjYgNDAuNC0xMjguNCA0MC40cy05Mi0xNC45LTEyOC40LTQwLjRDNDcuOSAzNzIuNCAxNiA0MjQuOCAxNiA0ODQuNnpNMTgzLjMgMTQxLjVjLS45LTMuMy0zLjktNS41LTcuMy01LjVzLTYuNCAyLjItNy4zIDUuNWwtNiAyMS4yLTIxLjIgNmMtMy4zIC45LTUuNSAzLjktNS41IDcuM3MyLjIgNi40IDUuNSA3LjNsMjEuMiA2IDYgMjEuMmMuOSAzLjMgMy45IDUuNSA3LjMgNS41czYuNC0yLjIgNy4zLTUuNWw2LTIxLjIgMjEuMi02YzMuMy0uOSA1LjUtMy45IDUuNS03LjNzLTIuMi02LjQtNS41LTcuM2wtMjEuMi02LTYtMjEuMnpNMTUyIDQ4OGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTIwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sVVByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWZsYWciLGljb246WzY0MCw1MTIsW10sImU0ZDUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTc2IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yODggMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEZCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtdWctc2F1Y2VyIixpY29uOls1NzYsNTEyLFsiY29mZmVlIl0sImYwZjQiLCJNNjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzUyIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNTE4LjcgMjg4IDQ0OCAyODhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMNjQgNjR6bTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NGwwIDEyOGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNjQgNDQ4bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sV1ByPUZCZSxHUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVtb24iLGljb246WzQ0OCw1MTIsWzEyNzgxOV0sImYwOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0LTYuNiAwLTEzIDEtMTkgMi45LTIyLjUgNy00OC4xIDE0LjktNzEgOS03NS4yLTE5LjEtMTU2LjQgMTEtMjEzLjcgNjguM1MtNy4yIDI1MC44IDExLjkgMzI2YzUuOCAyMi45LTIgNDguNC05IDcxLTEuOSA2LTIuOSAxMi40LTIuOSAxOSAwIDM1LjMgMjguNyA2NCA2NCA2NCA2LjYgMCAxMy0xIDE5LjEtMi45IDIyLjUtNyA0OC4xLTE0LjkgNzEtOSA3NS4yIDE5LjEgMTU2LjQtMTEgMjEzLjctNjguM1M0NTUuMiAyNjEuMiA0MzYuMSAxODZjLTUuOC0yMi45IDItNDguNCA5LTcxIDEuOS02IDIuOS0xMi40IDIuOS0xOS4xek0yMjIuNyAxNDNjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzYxLjIgMjU0IDY1IDI0MS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxZUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyYXZhbiIsaWNvbjpbNjQwLDUxMixbXSwiZjhmZiIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDE5MiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2ek0zNTIgMzUybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJ6TTE2MCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwem02NCAzMzZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxLUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicSIsaWNvbjpbNDQ4LDUxMixbMTEzXSwiNTEiLCJNNjQgMjU2YzAgODguNCA3MS42IDE2MCAxNjAgMTYwIDI4LjkgMCA1Ni03LjcgNzkuNC0yMS4xbC03Mi04Ni40Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsNzAuOSA4NS4xYzIwLjQtMjYuOCAzMi41LTYwLjMgMzIuNS05Ni42IDAtODguNC03MS42LTE2MC0xNjAtMTYwUzY0IDE2Ny42IDY0IDI1NnpNMzQ0LjkgNDQ0LjZDMzEwIDQ2NyAyNjguNSA0ODAgMjI0IDQ4MCAxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzIgNDQ4IDEzMi4zIDQ0OCAyNTZjMCA1Ni4xLTIwLjYgMTA3LjQtNTQuNyAxNDYuN2w0Ny4zIDU2LjhjMTEuMyAxMy42IDkuNSAzMy44LTQuMSA0NS4xcy0zMy44IDkuNS00NS4xLTQuMWwtNDYuNi01NS45eiJdfSxaUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc0XSwiZjAyMyIsIk0xMjggOTZsMCA2NCAxMjggMCAwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0ek02NCAxNjBsMC02NEM2NCAyNS4zIDEyMS4zLTMyIDE5Mi0zMlMzMjAgMjUuMyAzMjAgOTZsMCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxRUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnQtcm9sbGVyIixpY29uOls1MTIsNTEyLFtdLCJmNWFhIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA5NmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE4LjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtMTguN2MwLTQ0LjIgMzUuOC04MCA4MC04MGwxNjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxCQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWhpZ2giLGljb246WzY0MCw1MTIsWzEyODI2Niwidm9sdW1lLXVwIl0sImYwMjgiLCJNNTMzLjYgMzIuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzU1Ny41IDExMy44IDU5MiAxODAuOCA1OTIgMjU2cy0zNC41IDE0Mi4yLTg4LjcgMTg2LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNTk4LjUgNDI2LjcgNjQwIDM0Ni4yIDY0MCAyNTZTNTk4LjUgODUuMiA1MzMuNiAzMi41ek00NzMuMSAxMDdjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM0NzUuMyAxNzAuNyA0OTYgMjEwLjkgNDk2IDI1NnMtMjAuNyA4NS4zLTUzLjIgMTExLjhjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVjNDMuMi0zNS4yIDcwLjktODguOSA3MC45LTE0OXMtMjcuNy0xMTMuOC03MC45LTE0OXptLTYwLjUgNzQuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM5My4xIDIyNy42IDQwMCAyNDEgNDAwIDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQzNC4xIDMxMi45IDQ0OCAyODYuMSA0NDggMjU2cy0xMy45LTU2LjktMzUuNC03NC41ek04MCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMMTI4IDE2MCA4MCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6Il19LFhQcj1CQmUsSlByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1wbHVzIixpY29uOls1MTIsNTEyLFtdLCJmNjVlIiwiTTUxMiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDB6TTI1NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sZU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lcmN1cnkiLGljb246WzM4NCw1MTIsWzk3OTFdLCJmMjIzIiwiTTExNy00QzEwNi0xNy44IDg1LjgtMjAgNzIuMS05cy0xNiAzMS4yLTUgNDVDNzQuOSA0NS43IDgzLjcgNTQuNSA5My41IDYyLjEgNDYuNyA5My43IDE2IDE0Ny4zIDE2IDIwOCAxNiAyOTQuMyA3OC4xIDM2Ni4xIDE2MCAzODEuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzgxLjktMTUgMTQ0LTg2LjggMTQ0LTE3My4xIDAtNjAuNy0zMC43LTExNC4zLTc3LjUtMTQ1LjkgOS44LTcuNyAxOC43LTE2LjQgMjYuNC0yNi4xIDExLjEtMTMuOCA4LjgtMzMuOS01LTQ1UzI3OC0xNy44IDI2Ny00Yy0xNy42IDIyLTQ0LjcgMzYtNzUgMzZTMTM0LjcgMTggMTE3LTR6bTc1IDMyNGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJTMTMwLjEgOTYgMTkyIDk2IDMwNCAxNDYuMSAzMDQgMjA4YzAgNjEuOC01MC4xIDExMi0xMTEuOSAxMTJsLS4xIDB6Il19LHROcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3IiLGljb246WzU3Niw1MTIsWzk4NzVdLCJmMTNkIiwiTTI4OCA2NGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTE5MiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDI1Ny45YzYyLjktMTQuMyAxMTAuMi02OS43IDExMS45LTEzNi41bC0xNi4xIDE0LjFjLTEwIDguNy0yNS4xIDcuNy0zMy45LTIuM3MtNy43LTI1LjEgMi4zLTMzLjlsNjQtNTZjOS03LjkgMjIuNi03LjkgMzEuNiAwbDY0IDU2YzEwIDguNyAxMSAyMy45IDIuMyAzMy45cy0yMy45IDExLTMzLjkgMi4zTDQ5NiAzMDcuOUM0OTMuOSA0MjEgNDAxLjYgNTEyIDI4OCA1MTJTODIuMSA0MjEgODAgMzA3LjlMNjMuOCAzMjIuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNsLTE2LjEtMTQuMWMxLjggNjYuOCA0OS4xIDEyMi4yIDExMS45IDEzNi41bDAtMjU3LjljLTM3LjMtMTMuMi02NC00OC43LTY0LTkwLjV6Il19LEhCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGFya2luZyIsaWNvbjpbNDQ4LDUxMixbMTI3MzU5LCJwYXJraW5nIl0sImY1NDAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMTkyIDI1Nmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwIDAgNjR6bTQ4IDY0bC00OCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xODRjMC0yMi4xIDE3LjktNDAgNDAtNDBsNzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NnoiXX0sck5yPUhCZSxhTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFudWtpYWgiLGljb246WzY0MCw1MTIsWzEyODMzNF0sImY2ZTYiLCJNMzE0LjIgMy4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zem0tMjg4IDQ4QzIxLjEgNjAuMSA4IDg0LjYgOCAxMDQgOCAxMTcuMyAxOC43IDEyOCAzMiAxMjhzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek04OCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMjI5LjEgNjAuMSAyMTYgODQuNiAyMTYgMTA0ek0zOTQuMiA1MS4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek00NDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M0NTMuMSA2MC4xIDQ0MCA4NC42IDQ0MCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNTg0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3Ni0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDE3NC4zIDAgMTkybDAgOTZjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMCAwIDY0LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTY0IDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwLTE3NnoiXX0sQl89e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlLWxlZnQiLGljb246WzUxMiw1MTIsWyJyb3RhdGUtYmFjayIsInJvdGF0ZS1iYWNrd2FyZCIsInVuZG8tYWx0Il0sImYyZWEiLCJNMjQgMTkybDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDYuNy00Ni43Yzc1LjMtNTguNiAxODQuMy01My4zIDI1My41IDE1LjkgNzUgNzUgNzUgMTk2LjUgMCAyNzEuNXMtMTk2LjUgNzUtMjcxLjUgMGMtMTAuMi0xMC4yLTE5LTIxLjMtMjYuNC0zMy05LjUtMTQuOS0yOS4zLTE5LjMtNDQuMi05LjhzLTE5LjMgMjkuMy05LjggNDQuMkM0OS43IDQwOC43IDYxLjQgNDIzLjUgNzUgNDM3IDE3NSA1MzcgMzM3IDUzNyA0MzcgNDM3UzUzNyAxNzUgNDM3IDc1QzM0Mi44LTE5LjMgMTkzLjMtMjQuNyA5Mi43IDU4LjhMNDEgN0MzNC4xIC4yIDIzLjgtMS45IDE0LjggMS44UzAgMTQuMyAwIDI0TDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0eiJdfSxpTnI9Ql8sc05yPUJfLG5Ocj1CXyxxQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZGluZyIsaWNvbjpbNDQ4LDUxMixbImhlYWRlciJdLCJmMWRjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDExMiAyMjQgMCAwLTExMi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAzMjAgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTQ0LTIyNCAwIDAgMTQ0IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTMyMC0xNiAwQzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LG9Ocj1xQmUsbE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3NzaGFpcnMiLGljb246WzU3Niw1MTIsW10sImYwNWIiLCJNMjg4LTE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTguM2M5OC4xIDE0IDE3NS43IDkxLjYgMTg5LjcgMTg5LjdsMTguMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC4zIDBjLTE0IDk4LjEtOTEuNiAxNzUuNy0xODkuNyAxODkuN2wwIDE4LjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC4zQzE1Ny45IDQ2My43IDgwLjMgMzg2LjEgNjYuMyAyODhMNDggMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjMgMEM4MC4zIDEyNS45IDE1Ny45IDQ4LjMgMjU2IDM0LjNMMjU2IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMzEuMiAyODhjMTIuNyA2Mi43IDYyLjEgMTEyLjEgMTI0LjggMTI0LjhsMC0xMi44YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMi44YzYyLjctMTIuNyAxMTIuMS02Mi4xIDEyNC44LTEyNC44TDQzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTIuOCAwQzQzMi4xIDE2MS4zIDM4Mi43IDExMS45IDMyMCA5OS4ybDAgMTIuOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyLjhDMTkzLjMgMTExLjkgMTQzLjkgMTYxLjMgMTMxLjIgMjI0bDEyLjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTIuOCAwek0yODggMjA4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnoiXX0sY05yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1ub2RlcyIsaWNvbjpbNTEyLDUxMixbXSwiZTRlMiIsIk00MTguNCAxNTcuOWMzNS4zLTguMyA2MS42LTQwIDYxLjYtNzcuOSAwLTQ0LjItMzUuOC04MC04MC04MC00My40IDAtNzguNyAzNC41LTgwIDc3LjVMMTM2LjIgMTUxLjFDMTIxLjcgMTM2LjggMTAxLjkgMTI4IDgwIDEyOCAzNS44IDEyOCAwIDE2My44IDAgMjA4czM1LjggODAgODAgODBjMTIuMiAwIDIzLjgtMi43IDM0LjEtNy42TDI1OS43IDQwNy44Yy0yLjQgNy42LTMuNyAxNS44LTMuNyAyNC4yIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0yNy43LTE0LTUyLjEtMzUuNC02Ni40bDM3LjgtMjA3Ljd6TTE1Ni4zIDIzMi4yYzIuMi02LjkgMy41LTE0LjIgMy43LTIxLjdsMTgzLjgtNzMuNWMzLjYgMy41IDcuNCA2LjcgMTEuNiA5LjVMMzE3LjYgMzU0LjFjLTUuNSAxLjMtMTAuOCAzLjEtMTUuOCA1LjVMMTU2LjMgMjMyLjJ6Il19LGROcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctcmVzdG9yZSIsaWNvbjpbNTc2LDUxMixbXSwiZjJkMiIsIk01MTIgOTZMMTYwIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNjQgNDggMCAwLTE5MnpNMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNHptNjQgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sdU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InIiLGljb246WzMyMCw1MTIsWzExNF0sIjUyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCA5NS4zIDAgMTAyLjQgMTQ2LjRjMTAuMSAxNC41IDMwLjEgMTggNDQuNiA3LjlzMTgtMzAuMSA3LjktNDQuNkwyMzAuMSAzMDkuNUMyODIuOCAyODguMSAzMjAgMjM2LjQgMzIwIDE3NiAzMjAgOTYuNSAyNTUuNSAzMiAxNzYgMzJMMzIgMzJ6TTE3NiAyNTZsLTExMiAwIDAtMTYwIDExMiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgweiJdfSxwTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTE3YiIsIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sZk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdvcHVyYW0iLGljb246WzUxMiw1MTIsW10sImY2NjQiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4IDQwIDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4IDQ4IDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4IDQwIDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMzZjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNDggMCAwLTIyNC0zMiAwIDAtMTI4LTQ4IDAgMCAxMjggMzIgMCAwIDIyNC0yMjQgMCAwLTIyNCAzMiAwIDAtMTI4LTQ4IDAgMCAxMjgtMzIgMCAwIDIyNC00OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4TDk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yNTYgMjA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjA4IDQwMGwwIDY0IDk2IDAgMC02NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMjU2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyIDY0IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0saE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZiIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxtTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1vZi1saWZlIixpY29uOls1MTIsNTEyLFtdLCJmNjIxIiwiTTIwOC41IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNDAuOSAxMjItNzAuNGMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsMTYgMjcuN2M4LjggMTUuMyAzLjYgMzQuOS0xMS43IDQzLjdsLTEyMiA3MC40IDEyMiA3MC40YzE1LjMgOC44IDIwLjYgMjguNCAxMS43IDQzLjdsLTE2IDI3LjdjLTguOCAxNS4zLTI4LjQgMjAuNi00My43IDExLjdsLTEyMi03MC40IDAgMTQwLjljMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQwLjktMTIyIDcwLjRjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN2wtMTYtMjcuN2MtOC44LTE1LjMtMy42LTM0LjkgMTEuNy00My43bDEyMi03MC40LTEyMi03MC40Yy0xNS4zLTguOC0yMC41LTI4LjQtMTEuNy00My43bDE2LTI3LjdjOC44LTE1LjMgMjguNC0yMC41IDQzLjctMTEuN2wxMjIgNzAuNCAwLTE0MC45eiJdfSxWQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzaW5lc3MtdGltZSIsaWNvbjpbNjQwLDUxMixbImJyaWVmY2FzZS1jbG9jayJdLCJmNjRhIiwiTTI2NCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDMwNSAwYzMzLjgtMjkuOSA3OC4zLTQ4IDEyNy00OCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyNjQgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDI5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNi0xOTIgMCAwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTMuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0xNi42IDIuMS0zMi43IDYtNDhsLTIyIDB6bTM1MiA0OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek00OTYgMzIwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sZ05yPVZCZSxiTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1leHRpbmd1aXNoZXIiLGljb246WzUxMiw1MTIsWzEyOTUxOV0sImYxMzQiLCJNNTEyIDMyYzAtOS42LTQuMy0xOC43LTExLjctMjQuN1M0ODMuMS0xLjMgNDczLjcgLjZsLTE2MCAzMkMzMDEuNSAzNS4xIDI5MiA0NC4zIDI4OSA1NmwtNjUgMCAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI4LjRjLTU1LjMgMTIuMy0xMDEuMyA0OS41LTEyNS41IDk5LjEtNS44IDExLjktLjkgMjYuMyAxMS4xIDMyLjFzMjYuMyAuOSAzMi4xLTExLjFDNjIgMTQ2LjkgOTEuOCAxMjEuMSAxMjggMTEwbDAgMjguOGMtMzcuOCAxOC02NCA1Ni41LTY0IDEwMS4ybDAgMTI4IDIyNCAwIDAtMTI4YzAtNDQuNy0yNi4yLTgzLjItNjQtMTAxLjJsMC0zNC44IDY1IDBjMyAxMS43IDEyLjUgMjAuOSAyNC43IDIzLjRsMTYwIDMyYzkuNCAxLjkgMTkuMS0uNiAyNi42LTYuNlM1MTIgMTM3LjYgNTEyIDEyOGwwLTk2ek0yODggNDQ4bDAtMzItMjI0IDAgMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGw5NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0eiJdfSxqQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy1kb3duIl0sImYxNzUiLCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgNDM0LjcgMTkyIDBjMC0xNy43LTE0LjMtMzItMzItMzJTMTI4LTE3LjcgMTI4IDBsMCA0MzQuNy03My40LTczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjh6Il19LHhOcj1qQmUsdk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbWludXMiLGljb246WzY0MCw1MTIsW10sImY1MDMiLCJNMjg1LjcgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc3LjcgNTEyQzYxLjMgNTEyIDQ4IDQ5OC43IDQ4IDQ4Mi4zIDQ4IDM4My44IDEyNy44IDMwNCAyMjYuMyAzMDRsNTkuNCAwek0yNTYgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMzQ0LTk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMHoiXX0seU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWNoZWNrIixpY29uOls1MTIsNTEyLFtdLCJmNTNjIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTk2IDMxMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI3MiAweiJdfSxVQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbGFwdG9wIixpY29uOls2NDAsNTEyLFsibGFwdG9wLWhvdXNlIl0sImUwNjYiLCJNNDQ4IDI0MGwxOS45IDBjMTUuNSAwIDI4LjEtMTIuNiAyOC4xLTI4LjEgMC03LjYtMy4xLTE0LjktOC42LTIwLjJMMjgzLjUtNC45QzI3Ni4xLTEyIDI2Ni4zLTE2IDI1Ni0xNnMtMjAuMSA0LTI3LjUgMTEuMUwyNC42IDE5MS43QzE5LjEgMTk3IDE2IDIwNC4zIDE2IDIxMS45IDE2IDIyNy40IDI4LjYgMjQwIDQ0LjEgMjQwbDE5LjkgMCAwIDE0NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4NS43IDBjNy40LTYuNiAxNi40LTExLjQgMjYuMy0xNGwwLTEzMGMwLTUuNSAuNy0xMC45IDItMTZsLTEwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0IDE0NCAwek0zNTIgMzUybDE2MCAwIDAgMTI4LTE2MCAwIDAtMTI4em0tNjQtMzJsMCAxNjAtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI4OCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSx3TnI9VUJlLGtOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3dubG9hZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAxOSIsIk0yNTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuNy00MS40LTQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI1NiAyNDIuNyAyNTYgMzJ6TTY0IDMyMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC00Ni45IDAtNTYuNiA1Ni42Yy0zMS4yIDMxLjItODEuOSAzMS4yLTExMy4xIDBMMTEwLjkgMzIwIDY0IDMyMHptMzA0IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sU05yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhZ2l0dGFyaXVzIixpY29uOls0NDgsNTEyLFtdLCJlODRkIiwiTTQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgyLjgtMTQ2LjggMTQ2LjggNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4ycy0zMi44IDEyLjUtNDUuMyAwTDE5MiAzMzMuMyA1NC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjIgMHMtMTIuNS0zMi44IDAtNDUuMkwxNDYuOCAyODggMTA1LjQgMjQ2LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4yczMyLjgtMTIuNSA0NS4yIDBMMTkyIDI0Mi44IDMzOC44IDk2IDI1NiA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMHoiXX0sTU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvdWNoIixpY29uOls2NDAsNTEyLFtdLCJmNGI4IiwiTTE0NCAyNzJDMTQ0IDIyNC43IDEwOS44IDE4NS40IDY0LjggMTc3LjUgNzIgMTEzLjYgMTI2LjIgNjQgMTkyIDY0bDI1NiAwYzY1LjggMCAxMjAgNDkuNiAxMjcuMiAxMTMuNS00NSA4LTc5LjIgNDcuMi03OS4yIDk0LjVsMCAzMi0zNTIgMCAwLTMyek0wIDM4NEwwIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAgNDQ4IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6Il19LENOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWxvY2siLGljb246WzU3Niw1MTIsW10sImU1NjciLCJNMjU2IDMybC03Ni4zIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDMzLjQgNDIwLjVDMjUuOSA0NTAuNyA0OC44IDQ4MCA4MCA0ODBsMTc1LjkgMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyIDYuMSAwIDExLjggMS43IDE2LjcgNC43IDIuOC0yMy45IDE0LjMtNDUuMSAzMS40LTYwLjNsMC0yNC40YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4IDYuMiAwIDEyLjQgLjQgMTguNCAxLjNMNDU4LjUgODAuNkM0NTEuNCA1Mi4xIDQyNS44IDMyIDM5Ni4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em02NCAxOTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTE3NiA4MC4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek0zNTIgNDAwbDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zeiJdfSxXQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Npc3NvcnMiLGljb246WzUxMiw1MTIsWzk5ODQsOTk4Niw5OTg4LCJjdXQiXSwiZjBjNCIsIk0xOTIgMjU2bC0zOS41IDM5LjVjLTEyLjYtNC45LTI2LjItNy41LTQwLjUtNy41LTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyczUwLjEgMTEyIDExMiAxMTIgMTEyLTUwLjEgMTEyLTExMmMwLTE0LjMtMi43LTI3LjktNy41LTQwLjVMNDk5LjIgNzYuOGM3LjEtNy4xIDcuMS0xOC41IDAtMjUuNi0yOC4zLTI4LjMtNzQuMS0yOC4zLTEwMi40IDBMMjU2IDE5MiAyMTYuNSAxNTIuNWM0LjktMTIuNiA3LjUtMjYuMiA3LjUtNDAuNSAwLTYxLjktNTAuMS0xMTItMTEyLTExMlMwIDUwLjEgMCAxMTIgNTAuMSAyMjQgMTEyIDIyNGMxNC4zIDAgMjcuOS0yLjcgNDAuNS03LjVMMTkyIDI1NnptOTcuOSA5Ny45TDM5Ni44IDQ2MC44YzI4LjMgMjguMyA3NC4xIDI4LjMgMTAyLjQgMCA3LjEtNy4xIDcuMS0xOC41IDAtMjUuNmwtMTQ1LjMtMTQ1LjMtNjQgNjR6TTY0IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00OCAyNDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSx6TnI9V0JlLENwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWciLGljb246WzU3Niw1MTIsW10sImYxODgiLCJNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjRsLTEzNS4xIDBjLTE1LjcgMC0yOC40LTEyLjctMjguNC0yOC40bDAtMy42em0zNDUuNiAxMi44YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgMi42LS4xIDUuMy0uMiA3LjlsODMuNCA2Mi41YzE0LjEgMTAuNiAxNyAzMC43IDYuNCA0NC44cy0zMC43IDE3LTQ0LjggNi40bC02My4xLTQ3LjNjLTIzLjIgNDQuMi02Ni41IDc2LjItMTE3LjcgODMuOUwzMTIgMjgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjMwLjJjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzIuNS0xMC40IDYuNS0yMC4yIDExLjgtMjkuMUw0NC44IDE1My42Yy0xNC4xLTEwLjYtMTctMzAuNy02LjQtNDQuOHMzMC43LTE3IDQ0LjgtNi40TDE5MiAxODRjMTIuMy01LjEgMjUuOC04IDQwLThsMTEyIDBjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjR6Il19LEdCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dCJdLCJmMDhiIiwiTTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LF9Ocj1HQmUsVE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1oYW5kIixpY29uOls1NzYsNTEyLFtdLCJlNGY3IiwiTTQ2Ni44IDE4Ni41bDQyLjUtNDIuNSAzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwyMjMuNiAxNmMtMjkgMC01Ny4zIDkuMy04MC43IDI2LjVMMTYuMyAxMzUuOGMtMTcuOCAxMy4xLTIxLjYgMzguMS04LjUgNTUuOXMzOC4xIDIxLjYgNTUuOSA4LjVMMTgzLjQgMTEyIDI5NiAxMTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTcyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTUyLjIgMGMzMy45IDAgNjYuNS0xMy41IDkwLjUtMzcuNXptLTM1Ny41IDEzOUw2Ni43IDM2OCAzMiAzNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MDAgMjgwIDQwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sTE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cm9vcHdhZmVsIixpY29uOls1MTIsNTEyLFtdLCJmNTUxIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMxMi42IDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI1NiA5Ny42IDIyMi4xIDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzMuOSAzMy45LTQ1LjMgNDUuMy01Ni42LTU2LjZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNTYuNiA1Ni42LTQ1LjMgNDUuMy0zMy45LTMzLjljLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMOTcuNiAyNTYgNjMuNyAyODkuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSA0NS4zIDQ1LjMtNTYuNiA1Ni42Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNTYuNi01Ni42IDQ1LjMgNDUuMy0zMy45IDMzLjljLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMy45LTMzLjkgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDQ1LjMtNDUuMyA1Ni42IDU2LjZjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ni42LTU2LjYgNDUuMy00NS4zIDMzLjkgMzMuOWM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTMzLjktMzMuOSAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzMuOSAzMy45LTQ1LjMtNDUuMyA1Ni42LTU2LjZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtNTYuNiA1Ni42LTQ1LjMtNDUuMyAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6TTE0Mi45IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTY3LjkgNjcuOWw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6TTI3OC42IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTIyLjYtNjcuOWwtNDUuMyA0NS4zLTQ1LjMtNDUuMyA0NS4zLTQ1LjMgNDUuMyA0NS4zeiJdfSxETnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQiLGljb246WzMyMCw1MTIsW10sImYxYWUiLCJNOTYgNjRBNjQgNjQgMCAxIDEgMjI0IDY0IDY0IDY0IDAgMSAxIDk2IDY0em00OCAzMjBsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw4MCAyODcuOCA1OS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwUy00LjUgMzAxLjkgNC45IDI4N2wzOS45LTYzLjNDNjkuNyAxODQgMTEzLjIgMTYwIDE2MCAxNjBzOTAuMyAyNCAxMTUuMiA2My42TDMxNS4xIDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMEwyNDAgMjg3LjggMjQwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6Il19LCROcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpY2UtY3JlYW0iLGljb246WzM4NCw1MTIsWzEyNzg0OF0sImY4MTAiLCJNMzM1LjEgMTYwYy42LTUuMyAuOS0xMC42IC45LTE2IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzQ4IDY0LjUgNDggMTQ0YzAgNS40IC4zIDEwLjcgLjkgMTZsLS45IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLS45IDB6TTY0IDMwNEwxNjkuMiA1MjkuNWM0LjEgOC44IDEzIDE0LjUgMjIuOCAxNC41czE4LjYtNS43IDIyLjgtMTQuNUwzMjAgMzA0IDY0IDMwNHoiXX0sWUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXB1dGVyLW1vdXNlIixpY29uOlszODQsNTEyLFsxMjg0MzMsIm1vdXNlIl0sImY4Y2MiLCJNMCAxOTJsMTY4IDAgMC0xOTItOCAwQzcxLjYgMCAwIDcxLjYgMCAxNjBsMCAzMnptMCA0OEwwIDM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw2NCAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtMTEyLTM4NCAwem0zODQtNDhsMC0zMkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwbC04IDAgMCAxOTIgMTY4IDB6Il19LEFOcj1ZQmUsRU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldCIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNSIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNjQgMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDIyLjYgMjIuNiAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwIDAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzYuMSAwYy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4TDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNjQtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA2NCA5NiA2NGw5NiAweiJdfSxJTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXdhcmQiLGljb246WzQ0OCw1MTIsW10sImY1NTkiLCJNMjQ1LjktMjUuOWMtMTMuNC04LjItMzAuMy04LjItNDMuNyAwLTI0LjQgMTQuOS0zOS41IDE4LjktNjguMSAxOC4zLTE1LjctLjQtMzAuMyA4LjEtMzcuOSAyMS45LTEzLjcgMjUuMS0yNC44IDM2LjItNDkuOSA0OS45LTEzLjggNy41LTIyLjIgMjIuMi0yMS45IDM3LjkgLjcgMjguNi0zLjQgNDMuNy0xOC4zIDY4LjEtOC4yIDEzLjQtOC4yIDMwLjMgMCA0My43IDE0LjkgMjQuNCAxOC45IDM5LjUgMTguMyA2OC4xLS40IDE1LjcgOC4xIDMwLjMgMjEuOSAzNy45IDIyLjEgMTIuMSAzMy4zIDIyLjEgNDUuMSA0MS41TDQyLjcgNDU4LjVjLTUuOSAxMS45LTEuMSAyNi4zIDEwLjcgMzIuMmw4NiA0M2MxMS41IDUuNyAyNS41IDEuNCAzMS43LTkuOGw1Mi44LTk1LjEgNTIuOCA5NS4xYzYuMiAxMS4yIDIwLjIgMTUuNiAzMS43IDkuOGw4Ni00M2MxMS45LTUuOSAxNi43LTIwLjMgMTAuNy0zMi4ybC00OC42LTk3LjJjMTEuNy0xOS40IDIzLTI5LjQgNDUuMS00MS41IDEzLjgtNy41IDIyLjItMjIuMiAyMS45LTM3LjktLjctMjguNiAzLjQtNDMuNyAxOC4zLTY4LjEgOC4yLTEzLjQgOC4yLTMwLjMgMC00My43LTE0LjktMjQuNC0xOC45LTM5LjUtMTguMy02OC4xIC40LTE1LjctOC4xLTMwLjMtMjEuOS0zNy45LTI1LjEtMTMuNy0zNi4yLTI0LjgtNDkuOS00OS45LTcuNS0xMy44LTIyLjItMjIuMi0zNy45LTIxLjktMjguNiAuNy00My43LTMuNC02OC4xLTE4LjN6TTIyNCA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sUE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcm93bmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0NSIsIk0yNjQgODhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMzMuOSA2NS42YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMmwxMC45IDMyLjhjOS40IDI4LjMgMzMuMiA0OS41IDYyLjUgNTUuNiA1LjYgMS4yIDExLjMgMS44IDE3LjEgMS44bDg4IDBjMTcuMiAwIDM0LjMtMi44IDUwLjYtOC4ybDExNC40LTM4LjFjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVMNDIzLjcgMjI4LjVjLTguNCAyLjgtMTcgNS4xLTI1LjcgNi45bC0yNi41IDg4LjNjLTYuMSAzLjQtMTIuMSA3LjMtMTcuOSAxMS43LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI2LjItMTkuNy01Ni45LTMwLjItODcuOC0zMS4zbDIwLjItNjcuMmMtNTEuNS0xMC43LTkzLjUtNDguMS0xMTAuMi05OGwtMTAuOS0zMi44Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjV6TTQwMy40IDQxMi4xQzM3OS4xIDQzMC4zIDM1MS4xIDQ0OCAzMjAgNDQ4cy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sTk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImUwZDgiLCJNMTM4LjcgOTZsMTAuNC0zMS4yQzE1NS42IDQ1LjIgMTczLjkgMzIgMTk0LjYgMzJsMTIyLjggMGMyMC43IDAgMzkgMTMuMiA0NS41IDMyLjhMMzczLjMgOTYgNDQ4IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsNzQuNyAwek05NiAzMDUuOWMwIDMuOSAxLjQgNy43IDQgMTAuNmw0OCA1NGM2LjQgNy4yIDE3LjYgNy4yIDIzLjkgMGw0OC01NGMyLjYtMi45IDQtNi43IDQtMTAuNmwwLTEuOWMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjMC0zOS44IDMyLjItNzIgNzItNzIgNC40IDAgOC43IC40IDEyLjkgMS4ybDM0LjktMzkuM2MtMTQuNi02LjQtMzAuOC05LjktNDcuOC05LjktNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDEuOXptMTk2LTQ2LjVjLTIuNiAyLjktNCA2LjctNCAxMC42bDAgMS45YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzAgMzkuOC0zMi4yIDcyLTcyIDcyLTQuNCAwLTguNy0uNC0xMi45LTEuMmwtMzQuOSAzOS4zYzE0LjcgNi40IDMwLjggOS45IDQ3LjggOS45IDY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMS45YzAtMy45LTEuNC03LjctNC0xMC42bC00OC01NGMtNi40LTcuMi0xNy42LTcuMi0yMy45IDBsLTQ4IDU0eiJdfSxLQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWhlYXJ0cyIsaWNvbjpbNTEyLDUxMixbMTI4NTI1LCJncmluLWhlYXJ0cyJdLCJmNTg0IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMgNS41LTEzLjUgOC45LTI4LjQgOC45LTQ0LjcgMC01My00My05Ni05Ni05NmwtMi45IDBjLTIuNSAwLTUgLjEtNy40IC4zLTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjLTIuNS0uMi00LjktLjMtNy40LS4zTDk2IDQ4Yy01MyAwLTk2IDQzLTk2IDk2IDAgMTYuMyAzLjUgMzEuMiA4LjkgNDQuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTMyMi45IDk2YzEzLjUgMCAyNi41IDUuNCAzNiAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDB6bS0xODggMTQuOWw5LjEgOS4xIDkuMS05LjFjOS41LTkuNSAyMi41LTE0LjkgMzYtMTQuOWwyLjkgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDUzLjQtNjYuOSA5NS43LTg5IDEwOC4yLTQuNCAyLjUtOS42IDIuNS0xNCAwLTIyLjEtMTIuNS04OS01NC44LTg5LTEwOC4yIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDIuOSAwYzEzLjUgMCAyNi41IDUuNCAzNiAxNC45eiJdfSxPTnI9S0JlLFJOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWZyYWdtZW50IixpY29uOlszODQsNTEyLFtdLCJlNjk3IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjQwIDEyOCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTI4IDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6Il19LEZOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktcmlmbGUiLGljb246WzQ0OCw1MTIsW10sImU1NGIiLCJNMTI4IDM5YzAtMTMgMTAtMjMuOCAyMi45LTI0LjlMMzAyLjcgMS40QzMxMiAuNyAzMjAgOCAzMjAgMTcuNEwzMjAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2TDE1MyA2NGMtMTMuOCAwLTI1LTExLjItMjUtMjV6bTE3LjYgNTdsMTU2LjggMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTYgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC01LjUgLjYtMTAuOCAxLjYtMTZ6bTIyOCAzNjQuM0wzMjAgMzY5LjcgMzIwIDQ4MGMwIDEuMy0uMSAyLjUtLjIgMy44TDE0NS41IDIzNC45YzE2LjYtNy4xIDM0LjYtMTAuOSA1My4zLTEwLjlsNTAuNCAwYzE1LjkgMCAzMS4zIDIuOCA0NS44IDcuOUwzODkuOSA2Ny43Yy03LjctNC40LTEwLjMtMTQuMi01LjktMjEuOXMxNC4yLTEwLjMgMjEuOS01LjlsMjcuNyAxNmM3LjcgNC40IDEwLjMgMTQuMiA1LjkgMjEuOWwtNTUuNSA5Ni4xIDEuNiAuOWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43TDM2MC43IDI4MmMyIDIuOCAzLjkgNS44IDUuNyA4LjhsNzYuMSAxMjguOGMxMS4yIDE5IDQuOSA0My41LTE0LjEgNTQuOHMtNDMuNSA0LjktNTQuOC0xNC4xek0yODggNTEybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTAuMy01My42IDkwLjZjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMVMtNS43IDQzOC43IDUuNiA0MTkuN0w4MS43IDI5MC44YzkuNC0xNS44IDIxLjctMjkuMyAzNi00MEwyOTkuMSA1MTBjLTMuNSAxLjMtNy4yIDItMTEuMSAyek0yNjQgMzIwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sQk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvZ2dsZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNSIsIk0xOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJTNDkwIDY0IDM4NCA2NEwxOTIgNjR6bTE5MiA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sSE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imx1bmdzLXZpcnVzIixpY29uOls1NzYsNTEyLFtdLCJlMDY3IiwiTTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE1MS4zYzkuNi00LjggMjAuNS03LjUgMzItNy41czIyLjQgMi43IDMyIDcuNUwzMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ1MC4xIDQ1MWM4IDE4LjMgOC4xIDM5LjIgLjIgNTcuNSAxMC4yIDIuMyAyMC42IDMuNSAzMS4yIDMuNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDEzOS45YzEuMiAyLjIgMi4yIDQuNiAzLjEgNi45IDI2LjQtMTEuNiA1OC4zLTYuNiA3OS45IDE1czI2LjYgNTMuNiAxNSA3OS45QzQ3NyAzMjcuMiA0OTYgMzUzLjMgNDk2IDM4My44cy0xOSA1Ni43LTQ1LjkgNjcuMXpNMjIwLjkgMjIxLjhjLjktMi40IDItNC43IDMuMS02LjlsMC0xMzguNWMwLTI0LjUtMTkuOS00NC40LTQ0LjQtNDQuNC0xMi41IDAtMjQuNCA1LjMtMzIuOCAxNC41bC0yNi40IDI5QzQyLjkgMTYwLjggMCAyNzEuOCAwIDM4N2wwIDMwLjVjMCA1Mi4yIDQyLjMgOTQuNSA5NC41IDk0LjUgMTAuNSAwIDIxLTEuMiAzMS4yLTMuNS03LjktMTguMy03LjgtMzkuMyAuMi01Ny41LTI2LjktMTAuNC00NS45LTM2LjYtNDUuOS02Ny4xczE5LTU2LjcgNDUuOS02Ny4xYy0xMS42LTI2LjQtNi42LTU4LjMgMTUtNzkuOXM1My42LTI2LjYgNzkuOS0xNXpNMTUyIDQwOGMyOC44IDAgNDMuMiAzNC44IDIyLjkgNTUuMi05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBjMjAuNC0yMC40IDU1LjItNS45IDU1LjIgMjIuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMjguOCAzNC44LTQzLjIgNTUuMi0yMi45IDkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtMjAuNC0yMC40LTUuOS01NS4yIDIyLjktNTUuMiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtMjguOCAwLTQzLjItMzQuOC0yMi45LTU1LjIgOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMjAuNCAyMC40LTU1LjIgNS45LTU1LjItMjIuOSAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDI4LjgtMzQuOCA0My4yLTU1LjIgMjIuOS05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzIwLjQgMjAuNCA1LjkgNTUuMi0yMi45IDU1LjItMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMTA0LTgwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sS3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLXRlbm5pcy1wYWRkbGUtYmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTU1LCJwaW5nLXBvbmctcGFkZGxlLWJhbGwiLCJ0YWJsZS10ZW5uaXMiXSwiZjQ1ZCIsIk05NyAxMjdsNjcuNC02Ny40YzM4LjItMzguMiA5MC01OS42IDE0NC01OS42IDExMi41IDAgMjAzLjcgOTEuMiAyMDMuNyAyMDMuNiAwIDQ2LjQtMTUuOCA5MS4xLTQ0LjUgMTI3LTIzLjYtMTYuOC01Mi40LTI2LjctODMuNS0yNi43LTMxLjEgMC01OS45IDkuOS04My40IDI2LjZMOTcgMTI3ek0yNDAgNDQ4YzAgOS43IDEgMTkuMSAyLjggMjguMi0xOS44LTUuMi0zOC0xNS41LTUyLjctMzAuMi0xMi4yLTEyLjItMzEuOS0xMi4yLTQ0LjEgMEw5Ni42IDQ5NS40Yy0xMC42IDEwLjYtMjUgMTYuNi00MCAxNi42LTMxLjIgMC01Ni42LTI1LjMtNTYuNi01Ni42IDAtMTUgNi0yOS40IDE2LjYtNDBsNDkuNC00OS40YzEyLjItMTIuMiAxMi4yLTMxLjkgMC00NC4xLTIxLjctMjEuNy0zMy45LTUxLjItMzMuOS04MS45IDAtMjkuNCAxMS4xLTU3LjYgMzEuMS03OUwyNjYuNiAzNjQuNkMyNDkuOSAzODguMSAyNDAgNDE2LjkgMjQwIDQ0OHptMTQ0LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxxTnI9S3VlLFZOcj1LdWUsak5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveGVzLXBhY2tpbmciLGljb246WzU3Niw1MTIsW10sImU0YzciLCJNMjA4IDBsODAgMCAwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NiA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMDguOCAwYzguMi0xNC4xIDEyLjgtMzAuNSAxMi44LTQ4bDAtMTYwYzEwLTEzLjQgMTYtMzAgMTYtNDhsMC0zMmMwLTQ0LjItMzUuOC04MC04MC04MGwtMTc2IDAgMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMzIgMzM2bDMyMCAwIDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xMjh6TTQ4IDE5MmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sVU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaGFsa2JvYXJkIixpY29uOls2NDAsNTEyLFtdLCJlNTNkIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTc2IDUxMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMzYgMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC00OCAxOTIgMCAwIDE5Mi0xOTIgMCAwLTMyLTY0IDAgMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEwzNjggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NC0xMjIuNyAwYy00NS42IDAtODguNSAyMS42LTExNS42IDU4LjJMMTQuMyAyNjAuOWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LFdOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXR3byIsaWNvbjpbNDQ4LDUxMixbOTg1N10sImY1MjgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTM1MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFpCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjQ0LCJleGNoYW5nZSJdLCJmMGVjIiwiTTUwMi42IDE1MC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAyLjcgMTYwIDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzNzAuNyAwLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMzUyIDQ4MCAzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM3MC43IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxHTnI9WkJlLFFCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb290YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTQ0LCJmb290YmFsbC1iYWxsIl0sImY0NGUiLCJNMjYxLjEgMjIuNmMtODkgMTgtMTUwLjUgNjMuNC0xOTAgMTIzLjktMjMuMyAzNS42LTM4LjEgNzUuMy00Ni43IDExNS41TDI1MS45IDQ4OS40Yzg5LTE4IDE1MC41LTYzLjQgMTkwLjEtMTIzLjkgMjMuMy0zNS42IDM4LjEtNzUuMyA0Ni43LTExNS41TDI2MS4xIDIyLjZ6bTIzNiAxNjguMWMzLjItNDIuMyAuNy04My4zLTQuOC0xMTguNy00LjQtMjcuOC0yNi44LTQ4LTUzLjEtNTEuNi00My01LjktODIuMi03LjUtMTE3LjgtNS40TDQ5Ny4xIDE5MC42ek0xOTEuNyA0OTcuMUwxNS45IDMyMS40Yy0zLjIgNDIuMy0uNyA4My4zIDQuOCAxMTguNyA0LjQgMjcuOCAyNi44IDQ4IDUzLjEgNTEuNiA0MyA1LjkgODIuMiA3LjUgMTE3LjggNS40ek0yNzEuNSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxZTnI9UUJlLEtOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNjNiIiwiTTMzNiA5Nmw0OCA2NC0xMjggMCAwLTY0IDgwIDB6bTEyOCA2NEwzODcuMiA1Ny42QzM3NS4xIDQxLjUgMzU2LjEgMzIgMzM2IDMyTDIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5Ni0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDE4LjEgMTAuMSAzMy45IDI0LjkgNDIuMS0uNSA1LjcgMS4xIDExLjYgNC43IDE2LjQtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4zIDMxLjNsMTEuMyAxMS4zYzguNiA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS43LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4zLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMi40LTMuMiAzLjktNi44IDQuNS0xMC41bDExNC4yIDBjLjYgMy43IDIuMSA3LjMgNC41IDEwLjUtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4yIDMxLjNsMTEuMyAxMS4zYzguNSA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS44LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4yLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMy42LTQuOCA1LjItMTAuNyA0LjctMTYuNCAxNC44LTguMiAyNC45LTIzLjkgMjQuOS00Mi4xbDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTEyOCAzMzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sWk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFzdGVyaXNrIixpY29uOls0NDgsNTEyLFsxMDAzMyw2MTU0NV0sIjJhIiwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTY4LjYgMTQ0LTgzLjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43czMuNiAzNC45LTExLjcgNDMuN0wyODggMjU2IDQzMiAzMzkuMWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43cy0yOC40IDIwLjYtNDMuNyAxMS43TDI1NiAzMTEuNCAyNTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTY4LjYtMTQ0IDgzLjFjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN1MuNyAzNDggMTYgMzM5LjFMMTYwIDI1NiAxNiAxNzIuOUMuNyAxNjQtNC41IDE0NC41IDQuMyAxMjkuMVMzMi43IDEwOC42IDQ4IDExNy40TDE5MiAyMDAuNiAxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFp1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWZ1bGwiLGljb246WzY0MCw1MTIsWzEyODI2NywiYmF0dGVyeSIsImJhdHRlcnktNSJdLCJmMjQwIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDMwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0zMDQgMHoiXX0sUU5yPVp1ZSxYTnI9WnVlLEpOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1kcmVzcyIsaWNvbjpbMzIwLDUxMixbXSwiZTU5YyIsIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjQgNjQgNjQgMCAxIDAgMjI0IDY0ek04OCA0MDBsMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTYgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNy44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTMxLjEtOTMuNCAyOC43IDM3LjhjMTAuNyAxNC4xIDMwLjggMTYuOCA0NC44IDYuMnMxNi44LTMwLjcgNi4yLTQ0LjhMMjU0LjYgMjA3Yy0yMi40LTI5LjYtNTcuNS00Ny05NC42LTQ3cy03Mi4yIDE3LjQtOTQuNiA0N0w2LjUgMjg0LjdjLTEwLjcgMTQuMS03LjkgMzQuMiA2LjIgNDQuOHMzNC4yIDcuOSA0NC44LTYuMkw4Ni4yIDI4NS41IDU1IDM3OC45QzUxLjYgMzg5LjMgNTkuMyA0MDAgNzAuMiA0MDBMODggNDAweiJdfSxYQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGVPcj1YQmUsSkJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWNhbi1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUtYWx0Il0sImY4MmEiLCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sdE9yPUpCZSxyT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9udCIsaWNvbjpbNTEyLDUxMixbXSwiZjAzMSIsIk0yODUuMSA1MC43QzI3OS45IDM5LjMgMjY4LjUgMzIgMjU2IDMycy0yMy45IDcuMy0yOS4xIDE4LjdMNTkuNSA0MTYgNDggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTYuMSAwIDIyLTQ4IDIwOC4zIDAgMjIgNDgtNi4xIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTEuNSAwLTE2Ny40LTM2NS4zek0zMzAuOCAzMDRMMTgxLjIgMzA0IDI1NiAxNDAuOCAzMzAuOCAzMDR6Il19LGFPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JlLWhvbGUiLGljb246WzUxMiw1MTIsW10sImU0YzMiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjMyLjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTIzLjctMTIuOS00NC40LTMyLTU1LjRMMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0wIDM4NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjcyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE0NGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMzgxLjkgMTQ0IDMyMGwwLTE0NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODR6Il19LGlPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRhOCIsIk0xOTIgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDMzLjZjMzAuNyA0LjIgNTguOCAxNi4zIDgyLjMgMzQuMUwzODYuMSA5MiAzNzQuOCA4MC42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNiA1Ni42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTExLjMtMTEuMy0yMy44IDIzLjhjMTcuOSAyMy41IDI5LjkgNTEuNyAzNC4xIDgyLjNsMzMuNiAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTYtMzMuNiAwYy00LjIgMzAuNy0xNi4zIDU4LjgtMzQuMSA4Mi4zbDIzLjggMjMuOCAxMS4zLTExLjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01Ni42IDU2LjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTEuMy0xMS4zLTIzLjgtMjMuOGMtMjMuNSAxNy45LTUxLjcgMjkuOS04Mi4zIDM0LjFsMCAzMy42IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTMzLjZjLTMwLjctNC4yLTU4LjgtMTYuMy04Mi4zLTM0LjFsLTIzLjggMjMuOCAxMS4zIDExLjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw0Ni43IDQwOC43Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTEuMyAxMS4zIDIzLjgtMjMuOEM5Ny45IDMzOC44IDg1LjggMzEwLjcgODEuNiAyODBsLTMzLjYgMCAwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0UzAgMzA5LjMgMCAyOTZsMC04MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgMzMuNiAwYzQuMi0zMC43IDE2LjMtNTguOCAzNC4xLTgyLjNMOTIgMTI1LjkgODAuNiAxMzcuMmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1Ni42LTU2LjZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDEyNS45IDkyIDE0OS43IDExNS43YzIzLjUtMTcuOSA1MS43LTI5LjkgODIuMy0zNC4xbDAtMzMuNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzIgMjAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sc09yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNDAgMzgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0yOCAxMiAwYzMzLjEgMCA2MC0yNi45IDYwLTYwcy0yNi45LTYwLTYwLTYwbC0zMiAwem0zMiA4MGwtMTIgMCAwLTQwIDEyIDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwem05Ni04MGMtMTEgMC0yMCA5LTIwIDIwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMGwzMiAwYzI4LjcgMCA1Mi0yMy4zIDUyLTUybDAtNjRjMC0yOC43LTIzLjMtNTItNTItNTJsLTMyIDB6bTIwIDEyOGwwLTg4IDEyIDBjNi42IDAgMTIgNS40IDEyIDEybDAgNjRjMCA2LjYtNS40IDEyLTEyIDEybC0xMiAwem04OC0xMDhsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00NCAyOCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMjggMCAwLTI0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00OCAwYy0xMSAwLTIwIDktMjAgMjB6Il19LG5Pcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5ndWFnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFhYiIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05LjYgMC04LjQgMjMuMWMtMTYuNCA0NS4yLTQxLjEgODYuNS03Mi4yIDEyMiAxNC4yIDguOCAyOSAxNi42IDQ0LjQgMjMuNWw1MC40IDIyLjQgNjIuMi0xNDBjNS4xLTExLjYgMTYuNi0xOSAyOS4yLTE5czI0LjEgNy40IDI5LjIgMTlsMTI4IDI4OGM3LjIgMTYuMi0uMSAzNS4xLTE2LjIgNDIuMnMtMzUuMS0uMS00Mi4yLTE2LjJsLTIwLTQ1LTE1Ny41IDAtMjAgNDVjLTcuMiAxNi4yLTI2LjEgMjMuNC00Mi4yIDE2LjJzLTIzLjQtMjYuMS0xNi4yLTQyLjJsMzkuOC04OS41LTUwLjQtMjIuNGMtMjMtMTAuMi00NS0yMi40LTY1LjgtMzYuNC0yMS4zIDE3LjItNDQuNiAzMi4yLTY5LjUgNDQuN0w3OC4zIDM4MC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDM0LjUtMTcuM2MxNi4zLTguMiAzMS44LTE3LjcgNDYuNC0yOC4zLTEzLjgtMTIuNy0yNi44LTI2LjQtMzguOS00MC45TDgxLjYgMjI0LjdjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWwxMC4yIDEyLjJjMTEuNSAxMy45IDI0LjEgMjYuOCAzNy40IDM4LjcgMjcuNS0zMC40IDQ5LjItNjYuMSA2My41LTEwNS40bC41LTEuMi0yMTAuMyAwQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlMxNC4zIDY0IDMyIDY0bDk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDE2IDI3MC44TDM2NS43IDM4NCA0NjYuMyAzODQgNDE2IDI3MC44eiJdfSxlSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWhhbHZlZCIsaWNvbjpbNTEyLDUxMixbInNoaWVsZC1hbHQiXSwiZjNlZCIsIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuOCA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMi0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjItMTYuNyA4LTM2LjEgOC01Mi44IDAtMTcyLjQtODIuNS0yMTMuMS0yNjQtMjEzLjYtMzYzLjItLjEtMjYuMiAxNi4zLTQ3LjkgMzguMy01Ny4yTDI0Mi43IDIuOUMyNDYuOSAxIDI1MS40IDAgMjU2IDB6bTAgNjYuOGwwIDM3OC4xYzEzOC02Ni44IDE3NS4xLTIxNC44IDE3Ni0zMDMuNGwtMTc2LTc0LjYgMCAweiJdfSxvT3I9ZUhlLGxPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC11cCIsaWNvbjpbMzIwLDUxMixbXSwiZjBkOCIsIk0xNDAuMyAxMzUuMmMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDEuNCAzMjAgMjg4LjUgMzIwbC0yNTYgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuNyAyNzQuNSA5LjkgMjY1LjRsMTI4LTEyOCAyLjQtMi4yeiJdfSx0SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wZW4iLGljb246WzY0MCw1MTIsWzEyODIyMSwiZmlsZS1lZGl0Il0sImYzMWMiLCJNMTI4LjEgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ2LjIgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsMTMyLjItMTMyLjIgMC05Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDMyMi44IDE4LjdDMzEwLjggNi43IDI5NC41IDAgMjc3LjYgMEwxMjguMSAwek0zODkuNiAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC05My41IDExNy41IDExNy41ek0zMzIuMyA0NjYuOWwtMTEuOSA1OS42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjYgMSAwIDEuOS0uMSAyLjktLjNsNTkuNi0xMS45YzEyLjQtMi41IDIzLjgtOC42IDMyLjctMTcuNWwxMTguOS0xMTguOS04MC04MC0xMTguOSAxMTguOWMtOC45IDguOS0xNSAyMC4zLTE3LjUgMzIuN3ptMjY3LjgtMTIzYzIyLjEtMjIuMSAyMi4xLTU3LjkgMC04MHMtNTcuOS0yMi4xLTgwIDBsLTI4LjggMjguOCA4MCA4MCAyOC44LTI4Ljh6Il19LGNPcj10SGUsckhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1iaWtpbmciLGljb246WzU3Niw1MTIsWzEyODY5MiwiYmlraW5nIl0sImY4NGEiLCJNMzY4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyNTYgMzA1LjEgMjU2IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjYzIDIzMi45IDMyMy4zIDE4NC40IDM2NCAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTExMiA1MTJhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0zNTIgMGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LGRPcj1ySGUsYUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stb3Blbi1yZWFkZXIiLGljb246WzUxMiw1MTIsWyJib29rLXJlYWRlciJdLCJmNWRhIiwiTTI1NiAxNTJhODggODggMCAxIDAgMC0xNzYgODggODggMCAxIDAgMCAxNzZ6bTAgMjk4LjdsMC0xNDkuM2MxNi4zLTYuOCAzMi45LTEzLjcgNDkuNy0yMC43IDM5LTE2LjIgODAuOC0yNC42IDEyMy4xLTI0LjZsMTkuMiAwIDAgMTYwLTE5LjIgMGMtNTkuMSAwLTExNy43IDExLjctMTcyLjMgMzQuNWwtLjUgLjJ6TTI1NiAyMzJsLTI1LjEtMTAuNUMxODQuMSAyMDIgMTMzLjkgMTkyIDgzLjIgMTkyTDQ4IDE5MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUuMiAwYzUwLjcgMCAxMDAuOSAxMCAxNDcuNyAyOS41bDEyLjggNS4zYzcuOSAzLjMgMTYuNyAzLjMgMjQuNiAwbDEyLjgtNS4zYzQ2LjgtMTkuNSA5Ny0yOS41IDE0Ny43LTI5LjVsMzUuMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41TDI1NiAyMzJ6Il19LHVPcj1hSGUscE9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyLWRyb3BsZXQiLGljb246WzM4NCw1MTIsW10sImU0ZjUiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNODMgMjk3LjVMNjYuNCA2NCAzMTcuNiA2NCAzMDEgMjk3LjUgMjg4IDMwNGMtMjAuMSAxMC4xLTQzLjkgMTAuMS02NCAwcy00My45LTEwLjEtNjQgMC00My45IDEwLjEtNjQgMGwtMTMtNi41ek0yNTYgMTk2YzAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHM2NC0yNi45IDY0LTYweiJdfSxpSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItYnJvYWRjYXN0IixpY29uOls1NzYsNTEyLFsiYnJvYWRjYXN0LXRvd2VyIl0sImY1MTkiLCJNODcuOSAxMS41Yy0xMS4zLTYuOS0yNi4xLTMuMi0zMyA4LjEtMjQuOCA0MS0zOSA4OS4xLTM5IDE0MC40czE0LjIgOTkuNCAzOSAxNDAuNGM2LjkgMTEuMyAyMS42IDE1IDMzIDguMXMxNS0yMS42IDguMS0zM0M3NS43IDI0MS45IDY0IDIwMi4zIDY0IDE2MFM3NS43IDc4LjEgOTYuMSA0NC40YzYuOS0xMS4zIDMuMi0yNi4xLTguMS0zM3ptNDAwLjEgMGMtMTEuMyA2LjktMTUgMjEuNi04LjEgMzMgMjAuNCAzMy43IDMyLjEgNzMuMyAzMi4xIDExNS42cy0xMS43IDgxLjktMzIuMSAxMTUuNmMtNi45IDExLjMtMy4yIDI2LjEgOC4xIDMzczI2LjEgMy4yIDMzLTguMWMyNC44LTQxIDM5LTg5LjEgMzktMTQwLjRTNTQ1LjggNjAuNiA1MjEgMTkuNmMtNi45LTExLjMtMjEuNi0xNS0zMy04LjF6TTMyMCAyMTUuNGMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40IDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMjMuNyAxMi45IDQ0LjQgMzIgNTUuNEwyNTYgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNjQuNnpNMTgwLjIgOTFjNy4yLTExLjIgMy45LTI2LTcuMi0zMy4ycy0yNi0zLjktMzMuMiA3LjJjLTE3LjYgMjcuNC0yNy44IDYwLTI3LjggOTVzMTAuMiA2Ny42IDI3LjggOTVjNy4yIDExLjIgMjIgMTQuNCAzMy4yIDcuMnMxNC40LTIyIDcuMi0zMy4yYy0xMi44LTE5LjktMjAuMi00My42LTIwLjItNjlzNy40LTQ5LjEgMjAuMi02OXpNNDM2LjIgNjVjLTcuMi0xMS4yLTIyLTE0LjQtMzMuMi03LjJzLTE0LjQgMjItNy4yIDMzLjJjMTIuOCAxOS45IDIwLjIgNDMuNiAyMC4yIDY5cy03LjQgNDkuMS0yMC4yIDY5Yy03LjIgMTEuMi0zLjkgMjYgNy4yIDMzLjJzMjYgMy45IDMzLjItNy4yYzE3LjYtMjcuNCAyNy44LTYwIDI3LjgtOTVzLTEwLjItNjcuNi0yNy44LTk1eiJdfSxmT3I9aUhlLHNIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFycm93cy1hbHQiXSwiZjc4YyIsIk00NTYgMjI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzMyMi4xIDMyLjIgMzI5IDM5bDQwIDQwIDczLjQtNzMuNEM0NDYgMiA0NTAuOSAwIDQ1NiAwczEwIDIgMTMuNyA1LjdsMzYuNyAzNi43QzUxMCA0NiA1MTIgNTAuOSA1MTIgNTZzLTIgMTAtNS43IDEzLjdMNDMzIDE0MyA0NzMgMTgzYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDY1LjcgMjI0IDQ1NiAyMjR6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzIDMyOSA0NzNjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMjg4IDQ2NS43IDI4OCA0NTZsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTQ0IDB6bS0yNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC00MC00MC03My40IDczLjRDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNDYuMyAyODggNTYgMjg4bDE0NCAwek01NiAyMjRjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOFMzMi4yIDE4OS45IDM5IDE4M0w3OSAxNDMgNS43IDY5LjdDMiA2NiAwIDYxLjEgMCA1NlMyIDQ2IDUuNyA0Mi4zTDQyLjMgNS43QzQ2IDIgNTAuOSAwIDU2IDBTNjYgMiA2OS43IDUuN0wxNDMgNzkgMTgzIDM5YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMjI0IDQ2LjMgMjI0IDU2bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0TDU2IDIyNHoiXX0saE9yPXNIZSxtT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtdG8tY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTRiMyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwIDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE3Ni04MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE1MyAxNjdsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAweiJdfSxnT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLW1lZGljYWwiLGljb246WzY0MCw1MTIsW10sImY4MTIiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxiT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJlYWQtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY3ZWMiLCJNNjQgNDMybDAtMTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIxNi41IDUxMi0yMTYuNSA1MTIgMCAwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjg4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSx4T3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xvYmUiLGljb246WzUxMiw1MTIsWzEyNzc2MF0sImYwYWMiLCJNMzUxLjkgMjgwbC0xOTAuOSAwYzIuOSA2NC41IDE3LjIgMTIzLjkgMzcuNSAxNjcuNCAxMS40IDI0LjUgMjMuNyA0MS44IDM1LjEgNTIuNCAxMS4yIDEwLjUgMTguOSAxMi4yIDIyLjkgMTIuMnMxMS43LTEuNyAyMi45LTEyLjJjMTEuNC0xMC42IDIzLjctMjggMzUuMS01Mi40IDIwLjMtNDMuNSAzNC42LTEwMi45IDM3LjUtMTY3LjR6TTE2MC45IDIzMmwxOTAuOSAwQzM0OSAxNjcuNSAzMzQuNyAxMDguMSAzMTQuNCA2NC42IDMwMyA0MC4yIDI5MC43IDIyLjggMjc5LjMgMTIuMiAyNjguMSAxLjcgMjYwLjQgMCAyNTYuNCAwcy0xMS43IDEuNy0yMi45IDEyLjJjLTExLjQgMTAuNi0yMy43IDI4LTM1LjEgNTIuNC0yMC4zIDQzLjUtMzQuNiAxMDIuOS0zNy41IDE2Ny40em0tNDggMEMxMTYuNCAxNDYuNCAxMzguNSA2Ni45IDE3MC44IDE0LjcgNzguNyA0Ny4zIDEwLjkgMTMxLjIgMS41IDIzMmwxMTEuNCAwek0xLjUgMjgwYzkuNCAxMDAuOCA3Ny4yIDE4NC43IDE2OS4zIDIxNy4zLTMyLjMtNTIuMi01NC40LTEzMS43LTU3LjktMjE3LjNMMS41IDI4MHptMzk4LjQgMGMtMy41IDg1LjYtMjUuNiAxNjUuMS01Ny45IDIxNy4zIDkyLjEtMzIuNyAxNTkuOS0xMTYuNSAxNjkuMy0yMTcuM2wtMTExLjQgMHptMTExLjQtNDhDNTAxLjkgMTMxLjIgNDM0LjEgNDcuMyAzNDIgMTQuNyAzNzQuMyA2Ni45IDM5Ni40IDE0Ni40IDM5OS45IDIzMmwxMTEuNCAweiJdfSx2T3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW1pbnVzIixpY29uOls1MTIsNTEyLFtdLCJmNjVkIiwiTTQ0OCA0NDhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE4NCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSx5T3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzay1mYWNlIixpY29uOls2NDAsNTEyLFtdLCJlMWQ3IiwiTTMyMCA2NGMtMjcuMiAwLTUzLjggOC03Ni40IDIzLjFsLTM3LjEgMjQuOGMtMTUuOCAxMC41LTM0LjMgMTYuMS01My4zIDE2LjFMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDc4LjdjMCA2Mi42IDQ1LjIgMTE2IDEwNyAxMjYuM2w5Ny45IDE2LjNjMzMgMjIgNzIuNiAzNC43IDExNS4xIDM0LjdzODIuMi0xMi44IDExNS4xLTM0LjdMNTMzIDM5Ni45YzYxLjctMTAuMyAxMDctNjMuNyAxMDctMTI2LjNsMC03OC43YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04OS4yIDBjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzUuOSAzMzYuOWwtMTguNC0zLjFDODYuNiAzMjguNyA2NCAzMDIgNjQgMjcwLjdsMC03OC43IDQ4IDAgMCA0OGMwIDM1IDguNiA2Ny45IDIzLjkgOTYuOXptMzg2LjYtMy4xbC0xOC40IDMuMUM1MTkuNCAzMDcuOSA1MjggMjc1IDUyOCAyNDBsMC00OCA0OCAwIDAgNzguN2MwIDMxLjMtMjIuNiA1OC01My41IDYzLjF6TTE5MiAyMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNTYgNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx3T3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9uZyIsaWNvbjpbNTEyLDUxMixbXSwiZjU1YyIsIk00NDguNSAzODRjMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4zLTcuOSAxMS4xLTIxLjIgMTYuNy0zNC44IDE2LjdsLTI0My4zIDBjLTEzLjcgMC0yNi45LTUuNi0zNC44LTE2LjctMjIuNC0zMS40LTM1LjUtNjkuOC0zNS41LTExMS4zIDAtNzEuMSAzOC42LTEzMy4xIDk2LTE2Ni4zbDAtMTUzLjdjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuN2MxNC4yIDguMiAyNy4yIDE4LjIgMzguOCAyOS42bDM5LjMtMzkuMy03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNiAxNiAzMiAzMiA0OCA0OCA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03LTctNDMuMyA0My4zYzE3LjMgMjguOSAyNy4zIDYyLjYgMjcuMyA5OC44ek0yODguNSA2NGwtNjQgMCAwIDE5MC42LTMyIDE4LjVjLTE5LjUgMTEuMy0zNS43IDI3LjUtNDYuOSA0Ni45bDIyMS44IDBjLTExLjItMTkuNC0yNy40LTM1LjYtNDYuOS00Ni45bC0zMi0xOC41IDAtMTkwLjZ6Il19LGtPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWJyaWRnZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MyIsIk0zMiAzMmwyMDggMCAwIDY0LTI0IDAgMCA2NCAyNCAwIDAgMTI5LjNjLTQ1LjQgNy42LTgwIDQ3LjEtODAgOTQuN2wwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJ6TTg4IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6TTMzNiAzMmw3MiAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDcyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTcyIDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTcyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em05NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxuSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtOS0xIixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLXVwLWFsdCJdLCJmODg3IiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNMzY1LjEgMjA2LjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDExMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00Mi43IDE4MmMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTk2YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2eiJdfSxTT3I9bkhlLE1Pcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTJlIiwiTTI1Ni4zIDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTc3LjggMGM0LTE1LjQgMi40LTMyLjYtNi43LTQ4LjJMMzU0LjYgMjU2IDM2OC4zIDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTYuMSAwLTExLjQgMy40LTE0LjEgOC41bC00Mi42LTczYy02LTEwLjItMTQuMS0xOC0yMy4zLTIzLjNsMC01Ni4yem02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNjAgOTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptLTI3Mi02NC43bC02NS4xIDExMS42IDMzLjEgMzMuMSA0OC00OCA0MC40IDAtNTYuNC05Ni43em0tMjcuNi00Ny45YzEyLjMtMjEuMiA0Mi45LTIxLjIgNTUuMyAwTDQyMC4zIDQ2My45YzEyLjQgMjEuMy0yLjkgNDguMS0yNy42IDQ4LjFMNTYgNTEyYy0yNC43IDAtNDAuMS0yNi44LTI3LjYtNDguMUwxOTYuNyAxNzUuNHoiXX0sUXVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tOS0xIixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLWRlc2MiLCJzb3J0LW51bWVyaWMtZG93bi1hbHQiXSwiZjg4NiIsIk0yMzAuNiAzOTAuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTEzNC41LTE4NGwxMS43LTE4Yy0zMi45LTkuOS01Ni44LTQwLjUtNTYuOC03Ni42IDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAyMi45LTYuNiA0NS4zLTE5LjEgNjQuNWwtNDIuMSA2NC45Yy05LjYgMTQuOC0yOS40IDE5LjEtNDQuMyA5LjRzLTE5LjEtMjkuNC05LjQtNDQuM3pNNDI0IDExMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0tNS4zIDE4MmM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNmwwIDk2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTUxLjYtNS45IDJjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVsNDgtMTZjOS44LTMuMyAyMC41LTEuNiAyOC44IDQuNHoiXX0sQ09yPVF1ZSx6T3I9UXVlLG9IZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMjA4IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTEyOCA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LF9Pcj1vSGUsVE9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvb3AiLGljb246WzUxMiw1MTIsW10sImY2MTkiLCJNMjU0LjQgNi42YzMuNS00LjMgOS02LjUgMTQuNS01LjcgNDYuOSA2LjMgODMuMSA0Ni41IDgzLjEgOTUuMSAwIDExLjItMS45IDIyLTUuNSAzMmw1LjUgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDE5LjEtOC40IDM2LjMtMjEuNyA0OGwxMy43IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzIgMCAyMy4yLTExIDQzLjgtMjggNTcgMzQuMSA1LjcgNjAgMzUuMyA2MCA3MSAwIDM5LjgtMzIuMiA3Mi03MiA3Mkw3MiA1MTJjLTM5LjggMC03Mi0zMi4yLTcyLTcyIDAtMzUuNyAyNS45LTY1LjMgNjAtNzEtMTctMTMuMi0yOC0zMy44LTI4LTU3IDAtMzkuOCAzMi4yLTcyIDcyLTcybDEzLjcgMGMtMTMuMy0xMS43LTIxLjctMjguOS0yMS43LTQ4IDAtMzUuMyAyOC43LTY0IDY0LTY0bDE2LjIgMGM0NC4xLS4xIDc5LjgtMzUuOSA3OS44LTgwIDAtOS4yLTEuNS0xNy45LTQuMy0yNi4xLTEuOC01LjItLjgtMTEuMSAyLjgtMTUuNHoiXX0sTE9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRoYXJtYWNoYWtyYSIsaWNvbjpbNTEyLDUxMixbOTc4NF0sImY2NTUiLCJNMzM3LjggMjA1LjdsNDguNi00Mi41YzEzLjggMTkuMyAyMy40IDQxLjkgMjcuNCA2Ni4ybC02NC40IDQuM2MtMi40LTEwLjEtNi40LTE5LjUtMTEuNi0yOHptMTQwLjEgMTkuNWMtNS4zLTM4LjgtMjAuNi03NC41LTQzLjItMTA0LjNsLjgtLjdDNDQ5IDEwOC40IDQ0OS43IDg3LjYgNDM3IDc1cy0zMy40LTEyLTQ1LjIgMS41bC0uNyAuOGMtMjkuOC0yMi42LTY1LjUtMzcuOS0xMDQuMy00My4ybC4xLTEuMWMxLjItMTcuOS0xMy0zMy0zMC45LTMzcy0zMi4xIDE1LjItMzAuOSAzM2wuMSAxLjFjLTM4LjggNS4zLTc0LjUgMjAuNi0xMDQuMyA0My4ybC0uNy0uOEMxMDguNCA2MyA4Ny42IDYyLjMgNzUgNzVzLTEyIDMzLjQgMS41IDQ1LjJsLjggLjdjLTIyLjYgMjkuOC0zNy45IDY1LjUtNDMuMiAxMDQuM2wtMS4xLS4xYy0xNy45LTEuMi0zMyAxMy0zMyAzMC45czE1LjIgMzIuMSAzMyAzMC45bDEuMS0uMWM1LjMgMzguOCAyMC42IDc0LjUgNDMuMiAxMDQuM2wtLjggLjdDNjMgNDAzLjYgNjIuMyA0MjQuNCA3NSA0MzdzMzMuNCAxMiA0NS4yLTEuNWwuNy0uOGMyOS44IDIyLjYgNjUuNSAzNy45IDEwNC4zIDQzLjJsLS4xIDEuMWMtMS4yIDE3LjkgMTMgMzMgMzAuOSAzM3MzMi4xLTE1LjIgMzAuOS0zM2wtLjEtMS4xYzM4LjgtNS4zIDc0LjUtMjAuNiAxMDQuMy00My4ybC43IC44YzExLjggMTMuNSAzMi41IDE0LjIgNDUuMiAxLjVzMTItMzMuNC0xLjUtNDUuMmwtLjgtLjdjMjIuNi0yOS44IDM3LjktNjUuNSA0My4yLTEwNC4zbDEuMSAuMWMxNy45IDEuMiAzMy0xMyAzMy0zMC45cy0xNS4yLTMyLjEtMzMtMzAuOWwtMS4xIC4xek0xNjMuMiAxMjUuNmMxOS4zLTEzLjggNDEuOS0yMy40IDY2LjItMjcuNWw0LjMgNjQuNGMtMTAgMi40LTE5LjUgNi40LTI4IDExLjZsLTQyLjUtNDguNnptLTY1IDEwMy44YzQuMS0yNC40IDEzLjctNDYuOSAyNy41LTY2LjJsNDguNiA0Mi41Yy01LjMgOC41LTkuMiAxOC0xMS42IDI4bC02NC40LTQuM3ptMjcuNSAxMTkuNGMtMTMuOC0xOS4zLTIzLjQtNDEuOS0yNy41LTY2LjJsNjQuNC00LjNjMi40IDEwLjEgNi40IDE5LjUgMTEuNiAyOGwtNDguNiA0Mi41em0xMDMuOCA2NWMtMjQuNC00LjEtNDYuOS0xMy43LTY2LjItMjcuNGw0Mi41LTQ4LjZjOC41IDUuMyAxOCA5LjIgMjggMTEuNmwtNC4zIDY0LjR6bTExOS40LTI3LjRjLTE5LjMgMTMuOC00MS45IDIzLjQtNjYuMiAyNy40bC00LjMtNjQuNGMxMC0yLjQgMTkuNS02LjQgMjgtMTEuNmw0Mi41IDQ4LjZ6bTY1LTEwMy44Yy00LjEgMjQuNC0xMy43IDQ2LjktMjcuNCA2Ni4ybC00OC42LTQyLjVjNS4zLTguNiA5LjItMTggMTEuNi0yOGw2NC40IDQuM3ptLTY1LTE1Ni45bC00Mi41IDQ4LjZjLTguNi01LjMtMTgtOS4yLTI4LTExLjZsNC4zLTY0LjRjMjQuNCA0LjEgNDYuOSAxMy43IDY2LjIgMjcuNXpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGxIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXF1YXJ0ZXIiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTIiXSwiZjI0MyIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSxET3I9bEhlLCRPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmtoIixpY29uOlszMjAsNTEyLFs5NzY1XSwiZjY0NCIsIk05NiAxMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGMwIDQxLjYtMjAuNyA3Ni42LTQ2LjYgMTA0LjEtNS45IDYuMi0xMS44IDExLjgtMTcuNCAxNi43LTUuNi00LjktMTEuNS0xMC41LTE3LjQtMTYuNy0yNS45LTI3LjUtNDYuNi02Mi42LTQ2LjYtMTA0LjF6TTE2MCAwQzg5LjMgMCAzMiA1Ny4zIDMyIDEyOCAzMiAxODAuNCA1My41IDIyMy41IDc4LjggMjU2TDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDYuOCAwQzI2Ni41IDIyMy41IDI4OCAxODAuNCAyODggMTI4IDI4OCA1Ny4zIDIzMC43IDAgMTYwIDB6Il19LEFPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kIixpY29uOls1MTIsNTEyLFs5ODMwXSwiZjIxOSIsIk0xNyAyMTVMMjE1IDE3QzIyNS45IDYuMSAyNDAuNiAwIDI1NiAwczMwLjEgNi4xIDQxIDE3TDQ5NSAyMTVjMTAuOSAxMC45IDE3IDI1LjYgMTcgNDFzLTYuMSAzMC4xLTE3IDQxTDI5NyA0OTVjLTEwLjkgMTAuOS0yNS42IDE3LTQxIDE3cy0zMC4xLTYuMS00MS0xN0wxNyAyOTdDNi4xIDI4Ni4xIDAgMjcxLjQgMCAyNTZzNi4xLTMwLjEgMTctNDF6Il19LEVPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmMiLCJNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4LTg5LjYgMTI4LTE1LjMgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMjQwIDMxMS44IDMyNS44IDQzNC40YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwLTg5LjYtMTI4IDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwyNDAgMjAwLjIgMTU0LjIgNzcuNkMxNDguMiA2OS4xIDEzOC40IDY0IDEyOCA2NEw5NiA2NHpNNTQ0IDMyMGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjkgNS42IDExLjIgMTYuOSAxNy43IDI4LjYgMTcuN2wwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMjh6Il19LGNIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydXBlZS1zaWduIixpY29uOls0NDgsNTEyLFs4MzYwLCJydXBlZSJdLCJmMTU2IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjg1LjEtMzJsMzQuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC45IDBjLTcuMiAwLTEzLjEgNS45LTEzLjEgMTMuMSAwIDUuNyAzLjcgMTAuNyA5LjEgMTIuNWw0OS40IDE1LjljMzEuOSAxMC4zIDUzLjUgMzkuOSA1My41IDczLjQgMCA0Mi42LTM0LjUgNzcuMS03Ny4xIDc3LjFMMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1MC45IDBjNy4yIDAgMTMuMS01LjkgMTMuMS0xMy4xIDAtNS43LTMuNy0xMC43LTkuMS0xMi41bC00OS40LTE1LjljLTMxLjktMTAuMy01My41LTM5LjktNTMuNS03My40IDAtNDIuNiAzNC41LTc3LjEgNzcuMS03Ny4xeiJdfSxJT3I9Y0hlLFBPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmlmbGUiLGljb246WzUxMiw1MTIsW10sImU1NGUiLCJNNDE2IDBMMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0MzIgMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0yMjQgMjA4QzExOCAyMDggMzIgMjk0IDMyIDQwMGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTMyLjUgMTIuMS02Mi4xIDMyLTg0LjdsMCAxOTYuNyAxNjAgMCAwLTI5My4xYy0yMC03LjEtNDEuNi0xMC45LTY0LTEwLjl6TTI4MCA4OGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6Il19LE5Pcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkIixpY29uOlszODQsNTEyLFsxMDBdLCI0NCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRTMjgzLjcgNDgwIDE2MCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0ek02NCA5NmwwIDMyMCA5NiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwUzI0OC40IDk2IDE2MCA5Nkw2NCA5NnoiXX0sT09yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1uZmkiLGljb246WzQ0OCw1MTIsW10sImU1NzYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTMgMTcyLjNsMzUgNjMgMC01MS40YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNDRjMCAxMC45LTcuNCAyMC41LTE4IDIzLjJzLTIxLjctMi0yNy0xMS42bC0zNS02MyAwIDUxLjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMC45IDcuNC0yMC41IDE4LTIzLjJzMjEuNyAyIDI3IDExLjZ6TTIwOCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwIDMyIDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NHptMTkyIDBsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sUk9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoIixpY29uOls1MTIsNTEyLFtdLCJmNjJlIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNDQgMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em0xMjggMGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNODAgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMzIwIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek00OCAzMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZ6bTE0NCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTEyLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnoiXX0sZEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtZG9sbGFyIixpY29uOls1MTIsNTEyLFsic2VhcmNoLWRvbGxhciJdLCJmNjg4IiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjEyIDk2Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTY4IDI1NmMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0sRk9yPWRIZSxCT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXItZmlyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NCIsIk0xNjQuMyA2NEwxMzguNyAxOTIgNTYgMTkyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuMWMwLTIuNiAuNC01LjEgMS4yLTcuNkw1OC41IDgwLjRDNjEuOCA3MC42IDcxIDY0IDgxLjMgNjRsODMgMHptMjMuNCAxMjhsMjUuNi0xMjggODIuNyAwIDAgMTI4LTEwOC4zIDB6TTM0NCA2NGw4Mi43IDAgMTYgODBjLTE0LjcgLjItMjkuMyA1LjUtNDAuOSAxNS45LTExLjUgMTAuMy0yMi41IDIxLTMyLjggMzIuMWwtMjQuOSAwIDAtMTI4ek05NiAyNDBsMjMzLjIgMGMtNi40IDguOC0xMi4zIDE3LjYtMTcuNyAyNi4zLTIxLjQgMzQuNy0zOS41IDc2LjEtMzkuNSAxMTUuOCAwIDE3LjEgMi4xIDMzLjggNiA0OS45bC0xMjAuNCAwIDEuOSAxMC4zYzMuMiAxNy40LTguNCAzNC0yNS44IDM3LjJzLTM0LTguNC0zNy4yLTI1LjhDNzEgMzEzLjMgNTggMjQyLjEgNTcuNyAyNDBMOTYgMjQwem01MTItNzJjMCAxMS03LjQgMjAuMy0xNy41IDIzLjEtLjktLjgtMS43LTEuNi0yLjYtMi40LTIxLjgtMjAtNTQuMy0yMS44LTc4LTUuNS00LjItNC4zLTguNS04LjUtMTIuOS0xMi42bC0yMS4zLTEwNi42IDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjF6TTUwNS43IDI0MC4zTDUxOCAyMjYuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4xIDI2LjIgODguMSAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMiA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41czEzLjQgMy4yIDE4LjggNy41YzE0LjQgMTEuNCAzOC45IDQwLjcgMzguOSA0MC43ek01NDQgNDMyLjJjMC0zNi41LTM3LTczLTU0LjgtODguNC01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuOCA1MS45LTU0LjggODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxIT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXBsb2FkIixpY29uOls0NDgsNTEyLFtdLCJmMDkzIiwiTTI1NiAxMDkuM0wyNTYgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEwLjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyNTYgMTA5LjN6TTIyNCA0MDBjNDQuMiAwIDgwLTM1LjggODAtODBsODAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwYzAgNDQuMiAzNS44IDgwIDgwIDgwem0xNDQgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxYdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zbGFzaCIsaWNvbjpbNTc2LDUxMixbNjI3MTQsInVzZXItYWx0LXNsYXNoIiwidXNlci1sYXJnZS1zbGFzaCJdLCJmNTA2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzExLjUgMjQ1LjdjNTUtMTAuOSA5Ni41LTU5LjUgOTYuNS0xMTcuNyAwLTY2LjMtNTMuNy0xMjAtMTIwLTEyMC01OC4yIDAtMTA2LjggNDEuNS0xMTcuNyA5Ni41TDQxLTI0Ljl6TTIzNS42IDMwNS40QzE0Ny45IDMxNi42IDgwIDM5MS41IDgwIDQ4Mi4zIDgwIDQ5OC43IDkzLjMgNTEyIDEwOS43IDUxMmwzMzIuNSAwLTIwNi42LTIwNi42eiJdfSxxT3I9WHVlLFZPcj1YdWUsak9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWzg1OTJdLCJmMDYwIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OCA0ODAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNzAuNyAwIDEwNS40LTEwNS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSxVT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbC12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NyIsIk02NCAzMkM2NCAxNC4zIDc4LjMgMCA5NiAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUxLjdjLTE4LjUgMC0zNyA3LTUxLjEgMjEuMS0yMS42IDIxLjYtMjYuNiA1My42LTE1IDc5LjktMjYuOSAxMC40LTQ1LjkgMzYuNi00NS45IDY3LjFzMTkgNTYuNyA0NS45IDY3LjFjLTcuMyAxNi41LTggMzUuMi0yLjMgNTIuMi0xMy40IDUuNy0yOC4yIDguOC00My42IDguOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHpNMjgwIDQwOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOC44IDAgNDMuMi0zNC44IDIyLjktNTUuMi05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMjAuNCAyMC40IDU1LjIgNS45IDU1LjItMjIuOSAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMjguOCAzNC44IDQzLjIgNTUuMiAyMi45IDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMjAuNCAyMC40LTUuOSA1NS4yIDIyLjkgNTUuMiAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjguOCAwLTQzLjIgMzQuOC0yMi45IDU1LjIgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMjAuNC0yMC40LTU1LjItNS45LTU1LjIgMjIuOSAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTI4LjgtMzQuOC00My4yLTU1LjItMjIuOS05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzIwLjQtMjAuNCA1LjktNTUuMi0yMi45LTU1LjJ6bTEwNC0zMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFdPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay1kb3VibGUiLGljb246WzM4NCw1MTIsW10sImY1NjAiLCJNMjQ5LjkgNjYuOGMxMC40LTE0LjMgNy4yLTM0LjMtNy4xLTQ0LjdzLTM0LjMtNy4yLTQ0LjcgNy4xbC0xMDYgMTQ1LjctMzcuNS0zNy41Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM2LjYgNi42IDE1LjggMTAgMjUuMSA5LjNzMTcuOS01LjUgMjMuNC0xMy4xbDEyOC0xNzZ6bTEyOCAxMzZjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTcwIDIzMy43LTY5LjUtNjkuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxOTItMjY0eiJdfSxHT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGF3IixpY29uOls1MTIsNTEyLFtdLCJmMWIwIiwiTTIzNC41IDkyLjljMTQuMyA0Mi45LS4zIDg2LjItMzIuNiA5Ni44cy03MC4xLTE1LjYtODQuNC01OC41IC4zLTg2LjIgMzIuNi05Ni44IDcwLjEgMTUuNiA4NC40IDU4LjV6TTEwMC40IDE5OC42YzE4LjkgMzIuNCAxNC4zIDcwLjEtMTAuMiA4NC4xcy01OS43LS45LTc4LjUtMzMuMy0xNC4zLTcwLjEgMTAuMi04NC4xIDU5LjcgLjkgNzguNSAzMy4zek02OS4yIDQwMS4yQzEyMS42IDI1OS45IDIxNC43IDIyNCAyNTYgMjI0czEzNC40IDM1LjkgMTg2LjggMTc3LjJjMy42IDkuNyA1LjIgMjAuMSA1LjIgMzAuNWwwIDEuNmMwIDI1LjgtMjAuOSA0Ni43LTQ2LjcgNDYuNy0xMS41IDAtMjIuOS0xLjQtMzQtNC4ybC04OC0yMmMtMTUuMy0zLjgtMzEuMy0zLjgtNDYuNiAwbC04OCAyMmMtMTEuMSAyLjgtMjIuNSA0LjItMzQgNC4yLTI1LjggMC00Ni43LTIwLjktNDYuNy00Ni43bDAtMS42YzAtMTAuNCAxLjYtMjAuOCA1LjItMzAuNXpNNDIxLjggMjgyLjdjLTI0LjUtMTQtMjkuMS01MS43LTEwLjItODQuMXM1NC00Ny4zIDc4LjUtMzMuMyAyOS4xIDUxLjcgMTAuMiA4NC4xLTU0IDQ3LjMtNzguNSAzMy4zek0zMTAuMSAxODkuN2MtMzIuMy0xMC42LTQ2LjktNTMuOS0zMi42LTk2LjhzNTIuMS02OS4xIDg0LjQtNTguNSA0Ni45IDUzLjkgMzIuNiA5Ni44LTUyLjEgNjkuMS04NC40IDU4LjV6Il19LEp1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxtZXQtc2FmZXR5IixpY29uOls1NzYsNTEyLFsiaGFyZC1oYXQiLCJoYXQtaGFyZCJdLCJmODA3IiwiTTM1MiAyNjRsMC0yMDBjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg1LjlDOTAgMTA5LjggMzIgMTkxLjggMzIgMjg4bDAgNjQgNTEyIDAgMC02NGMtMS05NS4yLTU4LjQtMTc3LjctMTQ0LTIwOS44TDQwMCAyNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6TTQwIDQwMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGw0OTYgMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MEw0MCA0MDB6Il19LFlPcj1KdWUsS09yPUp1ZSxaT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZSIsaWNvbjpbMzIwLDUxMixbMTAxXSwiNDUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xMjggMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSx1SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTA3LjcgMzMyLjFDMTAyIDMxOCAxMTMuNCAzMDQgMTI4LjYgMzA0bDI1NC45IDBjMTUuMiAwIDI2LjYgMTQgMjAuOSAyOC4xLTIzLjggNTguNi04MS4yIDk5LjktMTQ4LjMgOTkuOXMtMTI0LjYtNDEuMy0xNDguMy05OS45em0xNS0xODguOGM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxRT3I9dUhlLHBIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxlZnQtYW5kLXVwLXJpZ2h0LXRvLWNlbnRlciIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFsdCJdLCJmNDIyIiwiTTQzOS41IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDUwLjIgMjQwIDQ0MC41IDI0MGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmwzOSAzOSA4Ny04N3pNNzIuNSAyNzJsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNjIuOCAyNzIgNzIuNSAyNzJ6Il19LFhPcj1wSGUsSk9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnRzIixpY29uOls1NzYsNTEyLFtdLCJmNzljIiwiTTIwMi0zMC42YzEyLjUgNC40IDE5IDE4LjEgMTQuNiAzMC42bC04LjIgMjMuMSAyNS40LTE4LjVjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVMMjMzLjggNjQgMjcyIDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMi4xYy01NC43IDEwLjQtOTYgNTguNC05NiAxMTZsMCAxLjljMCA4LjkgMSAxNy41IDIuOCAyNS45LTExLjkgMTcuOC0xOC44IDM5LjEtMTguOCA2Mi4xbDAgMTI4YzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMzguMiAwLTI4LjMtMjAuNkM0Ny4yIDM1LjYgNDQuOCAyMC42IDUyLjYgOS45Uzc1LjQtMy4yIDg2LjEgNC42bDI3LjQgMjAtOC4zLTI1QzEwMS0xMyAxMDcuOC0yNi42IDEyMC40LTMwLjhzMjYuMiAyLjYgMzAuNCAxNS4ybDkuOSAyOS44IDEwLjctMzAuMmM0LjQtMTIuNSAxOC4xLTE5IDMwLjYtMTQuNnpNNDg5LjkgMjA4Yy03LjUgMC0xNC41IDMuOC0xOC42IDEwLjFMNDQ2LjkgMjU2IDQ4OCAyNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xLjljMC0xMi4yLTkuOS0yMi4xLTIyLjEtMjIuMXpNMzg1LjEgMjU2bC0yNC40LTM3LjljLTQuMS02LjMtMTEuMS0xMC4xLTE4LjYtMTAuMS0xMi4yIDAtMjIuMSA5LjktMjIuMSAyMi4xbDAgMS45YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQxLjEgMHpNMjgxLjkgMjY4LjVjLTYuMy0xMC43LTkuOS0yMy4yLTkuOS0zNi41bDAtMS45YzAtMzguNyAzMS40LTcwLjEgNzAuMS03MC4xIDIzLjggMCA0NiAxMi4xIDU4LjkgMzIuMWwxNSAyMy4yIDE1LTIzLjJjMTIuOS0yMCAzNS4xLTMyLjEgNTguOS0zMi4xIDM4LjcgMCA3MC4xIDMxLjQgNzAuMSA3MC4xbDAgMS45YzAgMTMuMy0zLjYgMjUuOC05LjkgMzYuNSAxNS43IDExLjcgMjUuOSAzMC40IDI1LjkgNTEuNWwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNzIgMCAwLTIwOC00OCAwIDAgMjA4LTcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTI4YzAtMjEuMSAxMC4yLTM5LjggMjUuOS01MS41eiJdfSxlUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkIixpY29uOls1NzYsNTEyLFsxMjg3MTZdLCJmMjM2IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDIyNCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptODAgMTYwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sdFJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJhbnNmZXIiLGljb246WzY0MCw1MTIsW10sImU1MjgiLCJNMzEgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxMDMtMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDY3LjcgMCAwIDAgMzM4LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE3OC4yLTUuMS01LjFjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMC0yNy4yIDI3LjItMjguMSA3MC42LTIuOCA5OC45bDY3LjcgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS00MDYuMSAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3OC4yIDUuMSA1LjFjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDI3LjItMjcuMiAyOC4xLTcwLjYgMi44LTk4LjlsLTY3LjcgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDMxIDEwNXpNNDE2IDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bTg4LTY0LjVjNC40IC41IDgtMy4xIDgtNy41bDAtNDhjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04LjEgMy42LTcuNSA4IDMuNiAyOSAyNi42IDUxLjkgNTUuNSA1NS41em0tMzY4IDEyOWMtNC40LS41LTggMy4xLTggNy41bDAgNDhjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC4xLTMuNiA3LjUtOC0zLjYtMjktMjYuNi01MS45LTU1LjUtNTUuNXoiXX0sZkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ydW5uaW5nIixpY29uOls0NDgsNTEyLFsxMjc5MzksInJ1bm5pbmciXSwiZjcwYyIsIk0yNTYuNS0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTIzLjYgMTc2Yy0zLjMgMC02LjIgMi03LjQgNUw5NC4yIDIzNS45Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44cy0yNC40LTI1LjItMTcuOC00MS42bDIxLjktNTQuOUM2Ny43IDEyOS45IDk0LjEgMTEyIDEyMy42IDExMmw5Ny4zIDBjMjguNSAwIDU0LjggMTUuMSA2OS4xIDM5LjdsMzIuOCA1Ni4zIDYxLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjEuNiAwYy0yMi44IDAtNDMuOC0xMi4xLTU1LjMtMzEuOGwtMTAtMTcuMS0yMC43IDcwLjQgNzUuNCAyMi42YzI3LjcgOC4zIDQxLjggMzkgMzAuMSA2NS41TDI4NS43IDUwOWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmw0OS4yLTExMC44LTk1LjktMjguOGMtMzIuNy05LjgtNTItNDMuNy00My43LTc2LjhsMjIuNy05MC42LTM1LjkgMHptLTggMTgxYzEzLjMgMTQuOSAzMC43IDI2LjMgNTEuMiAzMi40bDQuNyAxLjQtNi45IDE5LjNjLTUuOCAxNi4zLTE2IDMwLjgtMjkuMyA0MS44TDUyLjkgNTE5LjhjLTEzLjYgMTEuMi0zMy44IDkuMy00NS00LjNzLTkuMy0zMy44IDQuMy00NWw4Mi40LTY3LjljNC41LTMuNyA3LjgtOC41IDkuOC0xMy45TDExNS42IDM1N3oiXX0sclJyPWZIZSxoSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tZG93biIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWRvd24iXSwiZjEzYSIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTEzNSAyNDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4NyA4NyA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMjczIDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTM1IDI0MXoiXX0sYVJyPWhIZSxpUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1udXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjgyZiIsIk05NiA0NC45YzAtMTIuNyA3LjUtMjQuMiAxOS4yLTI5LjNsOTYtNDJjOC4yLTMuNiAxNy41LTMuNiAyNS43IDBsOTYgNDJDMzQ0LjUgMjAuNyAzNTIgMzIuMiAzNTIgNDQuOWwwIDk5LjFjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhTOTYgMjE0LjcgOTYgMTQ0bDAtOTkuMXpNMzA0IDEyOGwtMTExLjYgMC0uNCAwLTQ4IDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwbDAtMTZ6TTIwOCAxNmwwIDE2LTE2IDBjLTQuNCAwLTggMy42LTggOGwwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwIDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTYgMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDAgMC0xNmMwLTQuNC0zLjYtOC04LThMMjE2IDhjLTQuNCAwLTggMy42LTggOHpNMTQyLjYgMzIzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44LTYxLjQgMjguMi0xMDQuMSA5MC4yLTEwNC4xIDE2Mi4xIDAgMTYuNCAxMy4zIDI5LjcgMjkuNyAyOS43bDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC02NyA1MC4yYy04LjUgNi40LTIwLjMgNi40LTI4LjggMGwtNjctNTAuMnoiXX0sbUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTU0My43IDI2OC4zYy4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy03LjYtMTcuMS0xNi4xLTM4LjgtMjEuOC02MS43LTcuNy0zMC41LTE0LjEtNzYuMiA4LjItMTE0LjdsMi43LTQuNmMyOS41LTUxIDk0LjctNjguNSAxNDUuNy0zOSAyIDEuMiA0IDIuNCA1LjkgMy43ek0yNDAgMzA0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIwOCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xNTIgMjBjLTExIDAtMjAgOS0yMCAyMHMtOSAyMC0yMCAyMC0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDB6TTU0Mi44IDM1MGMtMi4yLTE4LjMtMTIuOS0zNC42LTI4LjktNDMuOC0yOC4xLTE2LjItNjMuOS02LjYtODAuMSAyMS41bC0yLjcgNC42Yy0yNC41IDQyLjUgNy45IDExNy45IDI0LjQgMTUwLjggNS4xIDEwLjEgMTUuNSAxNi4xIDI2LjggMTUuNSAzNi43LTIuMiAxMTguMi0xMS43IDE0Mi44LTU0LjJsMi43LTQuNmMxNi4yLTI4LjEgNi42LTYzLjktMjEuNS04MC4xLTE2LTkuMi0zNS40LTEwLjQtNTIuNC0zLjFsLTkuOCA0LjItMS4zLTEwLjZ6Il19LHNScj1tSGUsblJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwiLGljb246WzUxMiw1MTIsW10sImY1NzUiLCJNMjk2IDY0YzYuOSAwIDEzLjUgMi43IDE4LjMgNy42TDQ0MC40IDE5Ny43YzQuOSA0LjkgNy42IDExLjUgNy42IDE4LjNzLTIuNyAxMy41LTcuNiAxOC4zTDM4Ni43IDI4OCA2NS4zIDI4OGMxLjMtMy45IDMuNC03LjQgNi4zLTEwLjNsOTYuNC05Ni40IDMzLjQgMzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNiAyNzcuNyA3MS42YzQuOS00LjkgMTEuNS03LjYgMTguMy03LjZ6TTEyMi43IDEzNkwyNi4zIDIzMi40QzkuNSAyNDkuMyAwIDI3Mi4xIDAgMjk2czkuNSA0Ni43IDI2LjMgNjMuNkwxNTIuNCA0ODUuN0MxNjkuMyA1MDIuNSAxOTIuMSA1MTIgMjE2IDUxMnM0Ni43LTkuNSA2My42LTI2LjNMNDg1LjcgMjc5LjZDNTAyLjUgMjYyLjcgNTEyIDIzOS45IDUxMiAyMTZzLTkuNS00Ni43LTI2LjMtNjMuNkwzNTkuNiAyNi4zQzM0Mi43IDkuNSAzMTkuOSAwIDI5NiAwcy00Ni43IDkuNS02My42IDI2LjNMMTY4IDkwLjcgMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2eiJdfSxnSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xLXdhdmUiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLXdhdmUtYWx0Il0sImY1M2IiLCJNMCAxMDkuNUwwIDQxOS42YzAgMTkuNCAxMS44IDM3LjMgMzAuMyA0My4zIDk0IDMwIDE1OC44IDguNCAyMjMuMy0xMy4xIDYyLjQtMjAuOCAxMjQuNC00MS41IDIxMi4xLTE1LjMgMjIuMiA2LjYgNDYuMi04LjggNDYuMi0zMmwwLTMxMC4xYzAtMTkuNC0xMS44LTM3LjMtMzAuMy00My4zLTk0LTMwLTE1OC44LTguNC0yMjMuMyAxMy4xLTYyLjQgMjAuOC0xMjQuNCA0MS41LTIxMi4xIDE1LjMtMjIuMi02LjYtNDYuMyA4LjgtNDYuMyAzMnpNMjU2IDM2OGMtNTMgMC05Ni01MC4xLTk2LTExMnM0My0xMTIgOTYtMTEyIDk2IDUwLjEgOTYgMTEyLTQzIDExMi05NiAxMTJ6TTEyNy4xIDQwNS41Yy43IDQuNC0yLjggOC4xLTcuMiA4LjEtMTUuNyAwLTMyLjEtMS44LTUwLTYuMS0zLjUtLjgtNi00LTYtNy43TDY0IDM2MGMwLTQuNCAzLjYtOC4xIDgtNy41IDI4LjEgMy41IDUwLjYgMjUuMiA1NS4yIDUzek00NDggMzU0LjZjMCA1LTQuNiA4LjgtOS41IDgtMTUuNC0yLjUtMzAuMi0zLjktNDQuNC00LjMtNC45LS4xLTguNy00LjUtNy4yLTkuMiA3LjMtMjMuNyAyOC00MS40IDUzLjItNDQuNiA0LjQtLjUgOCAzLjEgOCA3LjVsMCA0Mi42em0tOC0xOTUuMWMtMjguMS0zLjUtNTAuNi0yNS4yLTU1LjItNTMtLjctNC40IDIuOC04LjEgNy4yLTguMSAxNS43IDAgMzIuMSAxLjggNTAgNi4xIDMuNSAuOCA2IDQgNiA3LjdsMCAzOS45YzAgNC40LTMuNiA4LjEtOCA3LjV6bS0zMjIuMS01LjhjNC45IC4xIDguNyA0LjUgNy4yIDkuMi03LjMgMjMuNy0yOCA0MS40LTUzLjIgNDQuNi00LjQgLjUtOC0zLjEtOC03LjVsMC00Mi42YzAtNSA0LjYtOC44IDkuNS04IDE1LjQgMi41IDMwLjIgMy45IDQ0LjQgNC4zek0yNDAgMTg4Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxvUnI9Z0hlLGxScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyayIsaWNvbjpbNTEyLDUxMixbMTI3OTYzXSwiZjY2ZiIsIk0yMzguNyA1LjFjMTAuNS02LjggMjQuMS02LjggMzQuNiAwbDIyNCAxNDRjMTEuOSA3LjcgMTcuNCAyMi4zIDEzLjQgMzUuOXMtMTYuNSAyMy0zMC43IDIzbC0zMiAwIDAgMjA4IDUxLjIgMzguNGM4LjEgNiAxMi44IDE1LjUgMTIuOCAyNS42IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNmw1MS4yLTM4LjQgMCAwIDAtMjA4LTMyIDBjLTE0LjIgMC0yNi43LTkuNC0zMC43LTIzczEuNS0yOC4zIDEzLjQtMzUuOWwyMjQtMTQ0ek0zMzYgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHpNMjI0IDQxNmw2NCAwIDAtMjA4LTY0IDAgMCAyMDh6TTExMiAyMDhsMCAyMDggNjQgMCAwLTIwOC02NCAweiJdfSxjUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVzaWMiLGljb246WzUxMiw1MTIsWzEyNzkyNV0sImYwMDEiLCJNNDY4IDdjNy42IDYuMSAxMiAxNS4zIDEyIDI1bDAgMzA0YzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNmwwLTExNi43LTIyNCA0OS44IDAgMjA2LjNjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwIDQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDEyOCA5NmMwLTE1IDEwLjQtMjggMjUuMS0zMS4ybDI4OC02NGM5LjUtMi4xIDE5LjQgLjIgMjcgNi4zeiJdfSxkUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1tZWRpY2FsIixpY29uOls0NDgsNTEyLFtdLCJmN2U2IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xOTIgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxiSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2h1ZmZsZSIsaWNvbjpbNTEyLDUxMixbMTI4MjU2LCJyYW5kb20iXSwiZjA3NCIsIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAyMDQuOSAzODQgMTkybDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOGwtMzIuNCA0My4yLTQwLTUzLjMgMjEuMi0yOC4zQzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnpNMTU0IDI5Nmw0MCA1My4zLTIxLjIgMjguM0MxNTQuNyA0MDEuOCAxMjYuMiA0MTYgOTYgNDE2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNTQgMjk2ek00MzguNiA0NzAuNmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDQ2MC45IDM4NCA0NDhsMC0zMi0zMiAwYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40TDMyNi40IDMzOS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjR6Il19LHVScj1iSGUscFJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVuZGVybGluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjBjZCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyUzExMy43IDY0IDk2IDY0bDAgMTYwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzI3MC4zIDAgMjg4IDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMzMiAzMTIuNCAzMiAyMjRMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMCA0ODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sZlJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVzZXIiLGljb246WzY0MCw1MTIsW10sImU0ZGEiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0zMzkgMjI0LjNjLTEtLjItMi0uMy0zLS4zbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYuNyAwYzIuMS0yMi44IDguNC00NC4zIDE4LjMtNjMuN3pNMTc2IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTI0MCA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTM1MiA1MTJjMC01MyA0My05NiA5Ni05Nmw5NiAwYzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0saFJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYm90IixpY29uOls2NDAsNTEyLFsxMjkzMDJdLCJmNTQ0IiwiTTM1MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzI4OC0xNy43IDI4OCAwbDAgNjQtOTYgMGMtNTMgMC05NiA0My05NiA5NmwwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMjRjMC01My00My05Ni05Ni05NmwtOTYgMCAwLTY0ek0xNjAgMzY4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTIwIDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTIyNCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0xNDQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNjQgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZ6bTU0NC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LHRUPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMiLGljb246WzQ0OCw1MTIsWzEwMTMzLDYxNTQzLCJhZGQiXSwiMmIiLCJNMjU2IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYwLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTYweiJdfSxtUnI9dFQsenBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvcHkiLGljb246WzQ0OCw1MTIsW10sImYwYzUiLCJNMTkyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjAwLjZjMC0xNy40LTcuMS0zNC4xLTE5LjctNDYuMkwzNzAuNiAxNy44QzM1OC43IDYuNCAzNDIuOCAwIDMyNi4zIDBMMTkyIDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi02NCAwIDAgMTYtMTkyIDAgMC0yNTYgMTYgMCAwLTY0LTE2IDB6Il19LGdScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1raW5nIixpY29uOls0NDgsNTEyLFs5ODE4XSwiZjQzZiIsIk0yMjQtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjQgMTUzLjggMGMyMS4xIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDYuNC0xLjYgMTIuNy00LjcgMTguM0wzNTIgMzg0IDQwOC4yIDQ1NC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDY3LjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw5NiAzODQgNC43IDIxNi42QzEuNiAyMTAuOSAwIDIwNC42IDAgMTk4LjIgMCAxNzcuMSAxNy4xIDE2MCAzOC4yIDE2MGwxNTMuOCAwIDAtNjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGJScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbG9vZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZSIsIk00OTYgMjA4bDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDM0OCAxMC41QzM0MC4zIDMuNyAzMzAuMyAwIDMyMCAwcy0yMC4zIDMuNy0yOCAxMC41TDEyMS40IDE1OS44Yy02IDUuMi05LjQgMTIuOC05LjQgMjAuNyAwIDE1LjIgMTIuMyAyNy41IDI3LjUgMjcuNWw0LjUgMCAwIDk0LjRjMjAuMy05LjQgNDIuMS0xNC4yIDY0LTE0LjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDE2LjktLjEgMzMuOCAyLjYgNTAgOGwwLTg4em0tMjI0LThjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzQuNiA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQxOC4zIDE3LjYgNDI2LjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDUxNC4zIDE3LjYgNTIyLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSx4UnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYml0Y29pbi1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMGI0IiwiTTY0IDI0QzY0IDEwLjcgNzQuNyAwIDg4IDBzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDEuMWM1NC4zIDcuOCA5NiA1NC40IDk2IDExMC45IDAgMjQuMi03LjcgNDYuNi0yMC43IDY0LjkgMzEuNyAxOS44IDUyLjcgNTUgNTIuNyA5NS4xIDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0xNiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0zMiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0yMi4zIDBDMTguNyA0NDggMCA0MjkuMyAwIDQwNi4zTDAgMTAxLjZDMCA4MC44IDE2LjggNjQgMzcuNiA2NEw2NCA2NCA2NCAyNHptMCAyMDBsMTEyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTExMiAwIDAgOTZ6bTExMiA2NGwtMTEyIDAgMCA5NiAxNDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMzIgMHoiXX0sdlJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveCIsaWNvbjpbNDQ4LDUxMixbMTI4MjMwXSwiZjQ2NiIsIk0zNjkuNCAxMjhsLTM0LjMtNDgtMjIyLjEgMC0zNC4zIDQ4IDI5MC43IDB6TTAgMTQ4LjVjMC0xMy4zIDQuMi0yNi4zIDExLjktMzcuMkw2MC45IDQyLjhDNzIuOSAyNiA5Mi4zIDE2IDExMi45IDE2bDIyMi4xIDBjMjAuNyAwIDQwLjEgMTAgNTIuMSAyNi44bDQ4LjkgNjguNWM3LjggMTAuOSAxMS45IDIzLjkgMTEuOSAzNy4yTDQ0OCA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE0OC41eiJdfSx4SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSx5UnI9eEhlLHZIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodCIsaWNvbjpbNTc2LDUxMixbImFycm93cy1oIl0sImYwN2UiLCJNNDcwLjYgMzc0LjZsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w0MS40IDQxLjQtMzU3LjUgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNDEuNC00MS40IDM1Ny41IDAtNDEuNCA0MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSx3UnI9dkhlLGtScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYW4iLGljb246WzUxMiw1MTIsW10sImY4NjMiLCJNMTYwIDE0NGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxNTIuMmMxNS01LjMgMzEuMi04LjIgNDgtOC4yIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgOC44LTcuMiAxNi0xNiAxNmwtMTUyLjIgMGM1LjMgMTUgOC4yIDMxLjIgOC4yIDQ4IDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0LTguOCAwLTE2LTcuMi0xNi0xNmwwLTE1Mi4yYy0xNSA1LjMtMzEuMiA4LjItNDggOC4yLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtOC44IDcuMi0xNiAxNi0xNmwxNTIuMiAwYy01LjMtMTUtOC4yLTMxLjItOC4yLTQ4em05NiAxNDRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxTUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjUyMCIsIk00NTYuNSAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDM2LTM1NS4yIDI2Ni40Qy0uOCA0MDEtMy43IDQyMSA2LjkgNDM1LjJzMzAuNiAxNyA0NC44IDYuNGw3Ni44LTU3LjYgMTMxLjMgMCA0Ni42IDExMy4xIDEgMi4yYzUuNyAxMC43IDE4LjggMTUuNSAzMC4zIDEwLjhzMTcuMy0xNy4zIDEzLjktMjlsLS44LTIuMy0zOS4xLTk0LjkgNDAuOSAwYzEuMSAwIDIuMiAwIDMuMiAwbDQ2LjYgMTEzLjIgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTQyLTEwMkM0ODUuMyAzNTQuMSA1NDQuNSAyODAgNTQ0LjUgMTkybDAtNzIgODAuNS0yMC4xYzguNi0yLjEgMTMuOC0xMC44IDExLjYtMTkuNC03LjEtMjguNS0zMi43LTQ4LjUtNjIuMS00OC41bC01MC4xIDBDNTA4LjIgMTIuNSA0ODMuOCAwIDQ1Ni41IDB6bTAgNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxNUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU1YTAiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sSF89e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluay1zbGFzaCIsaWNvbjpbNTc2LDUxMixbImNoYWluLWJyb2tlbiIsImNoYWluLXNsYXNoIiwidW5saW5rIl0sImYxMjciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTIyLTEyMmM0LjItMy40IDguMy03LjEgMTIuMS0xMC45bDcxLjEtNzEuMWMyOS4zLTI5LjMgNDUuOC02OS4xIDQ1LjgtMTEwLjYgMC04Ni40LTcwLTE1Ni41LTE1Ni41LTE1Ni41LTM3LjMgMC03My4xIDEzLjMtMTAxLjMgMzcuMiAyMC4zIDEwLjEgMzguNyAyMy41IDU0LjUgMzkuNSAxNC4xLTguMyAzMC4yLTEyLjcgNDYuOC0xMi43IDUxLjEgMCA5Mi41IDQxLjQgOTIuNSA5Mi41IDAgMjQuNS05LjcgNDgtMjcuMSA2NS40bC03MS4xIDcxLjFjLTMuOSAzLjktOC4xIDcuNC0xMi42IDEwLjVsLTQ3LjUtNDcuNWMxNi41LS45IDI5LjctMTQuNCAzMC4yLTMxLjEgMC0xLjMgMC0yLjYgMC0zLjkgMC04Ni4zLTY5LjktMTU2LjktMTU2LjUtMTU2LjktMTkuMiAwLTM3LjkgMy41LTU1LjUgMTAuMkw0MS0yNC45ek0yMjUuOSAxNjBjLjYgMCAxLjEgMCAxLjcgMCAxNS4xIDAgMjkuNSAzLjcgNDIuMSAxMC4yIDEuOCAxLjIgMy42IDIuMyA1LjUgMy4xIDI2LjggMTYuMyA0NC44IDQ1LjkgNDQuOCA3OS42IDAgLjQgMCAuOCAwIDEuMkwyMjUuOSAxNjB6TTM0Ni4yIDQxNkwxOTIgMjYxLjhjMS4yIDg0LjYgNjkuNiAxNTIuOSAxNTQuMSAxNTQuMXpNMTM5LjcgMjA5LjVsLTQ1LjMtNDUuMy00OC42IDQ4LjZjLTI5LjMgMjkuMy00NS44IDY5LjEtNDUuOCAxMTAuNiAwIDg2LjQgNzAgMTU2LjUgMTU2LjUgMTU2LjUgMzcuMiAwIDczLjEtMTMuMyAxMDEuMy0zNy4yLTIwLjMtMTAuMS0zOC44LTIzLjUtNTQuNi0zOS41LTE0IDguMi0zMC4xIDEyLjYtNDYuNyAxMi42LTUxLjEgMC05Mi41LTQxLjQtOTIuNS05Mi41IDAtMjQuNSA5LjctNDggMjcuMS02NS40bDQ4LjYtNDguNnoiXX0sQ1JyPUhfLHpScj1IXyxfUnI9SF8scV89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcm90YXRlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NjM1LCJhcnJvdy1yaWdodC1yb3RhdGUiLCJhcnJvdy1yb3RhdGUtZm9yd2FyZCIsInJlZG8iXSwiZjAxZSIsIk00MzYuNyA3NC43TDQ0OCA4NS40IDQ0OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0Ny45IDAtNy42LTcuMmMtLjItLjItLjQtLjQtLjYtLjYtNzUtNzUtMTk2LjUtNzUtMjcxLjUgMHMtNzUgMTk2LjUgMCAyNzEuNSAxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTkuOS05OS45IDI2MS43LTEwMCAzNjEuNy0uM3oiXX0sVFJyPXFfLExScj1xXyxEUnI9cV8seUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1jbGlwIixpY29uOls1MTIsNTEyLFsicGVuLWFsdCJdLCJmMzA1IiwiTTQwNCAwYzE5LjIgMCAzNy42IDcuNiA1MS4xIDIxLjJsMzUuNyAzNS43QzUwNC40IDcwLjQgNTEyIDg4LjggNTEyIDEwOHMtNy42IDM3LjYtMjEuMiA1MS4xTDQ0NS45IDIwNCAzMDggNjYuMSAzNTIuOSAyMS4yQzM2Ni40IDcuNiAzODQuOCAwIDQwNCAwek0yNzQuMSAxMDBsMCAwIDEzNy45IDEzNy45LTIxNS4xIDIxNS4xYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMS4xYy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMnMtOC41LTE1LjEtNi4yLTIzLjRMMzYuNCAzNTMuOGM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43TDI0MC4xIDEzMy45IDIyMyAxMTYuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMODkgMjE3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE1NS4xIDgyLjljMjguMS0yOC4xIDczLjctMjguMSAxMDEuOCAwTDI3NC4xIDEwMHoiXX0sJFJyPXlIZSxBUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9vci1jbG9zZWQiLGljb246WzQ0OCw1MTIsWzEyODY4Ml0sImY1MmEiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjR6TTMyMCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxlcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtYXNjIiwic29ydC1hbW91bnQtZG93biJdLCJmMTYwIiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyMCA5NnoiXX0sRVJyPWVwZSxJUnI9ZXBlLFBScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1kb3duIixpY29uOlszMjAsNTEyLFtdLCJmMGQ3IiwiTTE0MC4zIDM3Ni44YzEyLjYgMTAuMiAzMS4xIDkuNSA0Mi44LTIuMmwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMwMS40IDE5MiAyODguNSAxOTJsLTI1NiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy43IDIzNy41IDkuOSAyNDYuNmwxMjggMTI4IDIuNCAyLjJ6Il19LE5Scj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrIixpY29uOlszMjAsNTEyLFsxMDddLCI0YiIsIk0zMTEgODYuM2MxMi4zLTEyLjcgMTItMzIuOS0uNy00NS4ycy0zMi45LTEyLTQ1LjIgLjdDMTQzLjQgMTY3LjIgNzYuNCAyMzYuMyA2NCAyNDlMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEwNyA2NC43LTY2LjcgMTMzIDE5MmMxMC4xIDE0LjUgMzAgMTguMSA0NC41IDguMXMxOC4xLTMwIDguMS00NC41TDE3NC4xIDIyNy40IDMxMSA4Ni4zeiJdfSx3SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stdG8tc2xvdCIsaWNvbjpbNTc2LDUxMixbInZvdGUteWVhIl0sImY3NzIiLCJNNTUyIDI4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDE2IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjU2IDB6bS0zNy4xIDg0LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42LTkuNSA5LjItOS44IDI0LjQtLjYgMzMuOWw0Ni40IDQ4YzQuOSA1LjEgMTEuOCA3LjggMTguOSA3LjNzMTMuNi00LjEgMTcuOC05LjhMMzg0LjIgMTUwLjFjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LE9Scj13SGUsUlJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpc2gtZmlucyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmMiIsIk0yNzUuMiAzOC40Yy0xMC42LTgtMjUtOC41LTM2LjMtMS41UzIyMiA1Ny4zIDIyNC42IDcwLjNsOS43IDQ4LjZjLTE5LjQgOS0zNi45IDE5LjktNTIuNCAzMS41LTE1LjMgMTEuNS0yOSAyMy45LTQwLjcgMzYuM0w0OC4xIDEzMi40Yy0xMi41LTcuMy0yOC40LTUuMy0zOC43IDQuOXMtMTIuNCAyNi01LjMgMzguNkw1MCAyNTYgNC4yIDMzNi4xYy03LjIgMTIuNi01IDI4LjQgNS4zIDM4LjZzMjYuMSAxMi4yIDM4LjcgNC45bDkzLjEtNTQuM2MxMS44IDEyLjMgMjUuNCAyNC44IDQwLjcgMzYuMyAxNS41IDExLjYgMzMgMjIuNSA1Mi40IDMxLjVsLTkuNyA0OC42Yy0yLjYgMTMgMy4xIDI2LjMgMTQuMyAzMy4zczI1LjYgNi41IDM2LjMtMS41bDc3LjYtNTguMmM1NC45LTQgMTAxLjUtMjcgMTM3LjItNTMuOCAzOS4yLTI5LjQgNjcuMi02NC43IDgxLjYtODkuNSA1LjgtOS45IDUuOC0yMi4yIDAtMzIuMS0xNC40LTI0LjgtNDIuNS02MC4xLTgxLjYtODkuNS0zNS44LTI2LjgtODIuMy00OS44LTEzNy4yLTUzLjhMMjc1LjIgMzguNHpNMzg0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxGUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcHJlc3MiLGljb246WzQ0OCw1MTIsW10sImYwNjYiLCJNMTYwIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzk2IDQ2LjMgOTYgNjRsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnpNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTM1MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHoiXX0sa0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAiXSwiZjE1ZSIsIk00MTIuNiA0OS43QzQwNy4yIDM4LjggMzk2LjEgMzIgMzg0IDMycy0yMy4yIDYuOC0yOC42IDE3LjdjLTUwLjcgMTAxLjMtNzcuMyAxNTQuNy04MCAxNjAtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjljLTIuNy01LjMtMjkuMy01OC43LTgwLTE2MHpNMzg0IDEzNS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40ek0yODggMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDUwLjcgMC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzMwNy4xIDQ4MCAzMjAgNDgwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01MC43IDAgNzMuNC03My40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ2MC45IDI4OCA0NDggMjg4bC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDI1LjQgMjUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC04MC04MHoiXX0sQlJyPWtIZSxIUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncmFkdWF0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwMSIsIk0yNDEuMy0xM2MtMTEuNC0yLjMtMjMuMS0yLjMtMzQuNSAwTDE5LjMgMjQuNUM4LjEgMjYuNyAwIDM2LjYgMCA0OCAwIDU4LjMgNi41IDY3LjMgMTYgNzAuNkwxNiAxNDQgLjMgMjIyLjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNmwzNC45IDBjOCAwIDE0LjYtNi41IDE0LjYtMTQuNiAwLTEtLjEtMS45LS4zLTIuOUw0OCAxNDQgNDggNzcuMyA5NiA4Ni45IDk2IDE0NGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtNTcuMSA3Ni43LTE1LjNDNDM5LjkgNjkuMyA0NDggNTkuNCA0NDggNDhzLTguMS0yMS4zLTE5LjMtMjMuNUwyNDEuMy0xM3pNMjI0IDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMTYwIDBjMCA0NC4yLTM1LjggODAtODAgODB6TTEyMC4xIDMyMC4xQzU4LjcgMzQ4LjMgMTYgNDEwLjMgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMTU0LjMgMCAwLTE0Ni01Ny40LTQzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44ek0yNDggNTEybDE1NC4zIDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC01Ny40IDQzIDAgMTQ2eiJdfSxxUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNTQuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptMTEyLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LFZScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2FwIixpY29uOls1MTIsNTEyLFsxMjk1MzJdLCJlMDZlIiwiTTIwOC0zMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTMyMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMzUyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMTYwbDExMiAwYzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDE2MCAyMjRjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTM1LjEtMTguOS02NS45LTQ3LTgyLjYgMTktMTkuOCAzMC43LTQ2LjYgMzEtNzYuMSA0NS40IDcuNiA4MCA0Ny4xIDgwIDk0LjdsMCAxMjhjMCA1My00MyA5Ni05NiA5Nkw5NiA0ODBjLTUzIDAtOTYtNDMtOTYtOTZMMCAyNTZjMC01MyA0My05NiA5Ni05NnptNjQgMTEybDE5MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHoiXX0salJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3ljbGUiLGljb246WzUxMiw1MTIsWzk4NDIsOTg1MCw5ODUxXSwiZjFiOCIsIk0xNTIuMyA2MEMxOTguNS0yMCAzMTQtMjAgMzYwLjIgNjBsMzcuMyA2NC42IDI3LjctMTZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNMNDM2LjkgMjIzYy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN2wtODcuNC0yMy40Yy05LjQtMi41LTE2LjMtMTAuNC0xNy42LTIwczMuNC0xOS4xIDExLjgtMjMuOWwyNy43LTE2LTM3LjMtNjQuNmMtMjEuNi0zNy4zLTc1LjQtMzcuMy05NyAwbC01LjMgOS4xYy04LjggMTUuMy0yOC40IDIwLjUtNDMuNyAxMS43UzEzOC4yIDg0LjUgMTQ3IDY5LjFsNS4zLTkuMXpNNDQ5LjcgMjc5LjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDUuMyA5LjFjNDYuMiA4MC0xMS41IDE4MC0xMDMuOSAxODBsLTc0LjYgMCAwIDMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJsMCAzMiA3NC42IDBjNDMuMSAwIDcwLjEtNDYuNyA0OC41LTg0bC01LjMtOS4xYy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjd6TTUxIDIzNS40bC0yNy43LTE2Yy04LjQtNC45LTEzLjEtMTQuMy0xMS44LTIzLjlzOC4yLTE3LjUgMTcuNi0yMEwxMTYuNSAxNTJjMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdsMjMuNCA4Ny40YzIuNSA5LjQtLjkgMTkuMy04LjYgMjUuM3MtMTguMiA2LjYtMjYuNiAxLjdsLTI3LjctMTYtMzcuMyA2NC42Yy0yMS42IDM3LjMgNS40IDg0IDQ4LjUgODRsMTAuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC42IDBDMjUuMyA0ODAtMzIuNCAzODAgMTMuOCAzMDBMNTEgMjM1LjR6Il19LFNIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2luayIsaWNvbjpbNTEyLDUxMixbImdyaW4td2luayJdLCJmNThjIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMzI4IDE5NmMtMTEgMC0yMCA5LTIwIDIwcy05IDIwLTIwIDIwLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMHpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFVScj1TSGUsdHBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyLWxhZGRlciIsaWNvbjpbNjQwLDUxMixbImxhZGRlci13YXRlciIsInN3aW1taW5nLXBvb2wiXSwiZjVjNSIsIk0zNzQuNSA0MDUuN2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOCAyNS43LTQuOCAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTI0LjIgMTguMy01Mi4zIDM1LjktODMuNCAzNS45cy01OS4xLTE3LjctODMuMy0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC42LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjN6TTUxMS44IDMyYzQ4LjMgMCA4OSAzNiA5NSA4My45bDEgOC4yYzIuMiAxNy41LTEwLjIgMzMuNS0yNy44IDM1LjdzLTMzLjUtMTAuMi0zNS43LTI3LjhsLTEtOC4yYy0yLTE1LjktMTUuNS0yNy44LTMxLjUtMjcuOC0xNy41IDAtMzEuOCAxNC4yLTMxLjggMzEuOGwwIDIxMS44Yy0yMy4xLTUuMS00NC45LTQuNC02NC0uNGwwLTUxLjItMTkyIDAgMCA0OC43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0xNi4yIC4xLTMyLjQgMi43LTQ4IDhsMC0yMTYuMmMwLTUyLjkgNDIuOS05NS44IDk1LjctOTUuOCA0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjcgMTQuMi0zMS43IDMxLjhsMCA5Ni4yIDE5MiAwIDAtOTYuMkM0MTYgNzQuOSA0NTguOSAzMiA1MTEuOCAzMnoiXX0sV1JyPXRwZSxHUnI9dHBlLFlScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW1pbmkiLGljb246WzQ0OCw1MTIsW10sImU4NDkiLCJNMzk1LjQgOGMxMy4yLTExLjcgMzMuMy0xMC41IDQ1LjEgMi43IDExLjcgMTMuMiAxMC41IDMzLjQtMi43IDQ1LjItMi43IDIuNC0yMy4xIDE5LjgtNTguMyAzNi44LTguMiA0LTE3LjIgNy45LTI3IDExLjZsMCAzMDMuMmM5LjggMy44IDE4LjggNy42IDI3IDExLjYgMTguMiA4LjggMzIuNCAxNy43IDQyLjIgMjQuNSAzIDIuMSA1LjUgNC4xIDcuNyA1LjcgMS4yIC45IDIuMyAxLjYgMy4yIDIuNCAuMiAuMSAuMyAuMiAuNSAuNCAxLjMgMS4xIDIuNCAyIDMuMiAyLjYgLjQgLjMgLjcgLjYgLjkgLjggLjEgLjEgLjMgLjIgLjMgLjMgMCAwIC4xIC4xIC4xIC4xbC4xIDAgMCAwIDAgMGMzLjMgMi45IDUuOSA2LjQgNy43IDEwLjIgNS40IDExLjMgMy44IDI1LjEtNSAzNS0uMyAuNC0uNyAuNy0xLjEgMS4xLTExLjkgMTIuMi0zMS4yIDEzLjEtNDQgMS43LS4zLS4zLTEuNS0xLjMtMy41LTIuOC0uNC0uMy0uOS0uNy0xLjUtMS4xLTEuOS0xLjQtNC4yLTMuMS03LjEtNS4xLTIuMi0xLjUtNC43LTMuMS03LjQtNC44LTYuNi00LjEtMTQuOC04LjgtMjQuNC0xMy41LTcuNC0zLjYtMTUuNi03LjItMjQuNy0xMC41LTEzLjYtNS4xLTI5LTkuNi00Ni4xLTEyLjktNS43LTEuMS0xMS42LTIuMS0xNy43LTIuOC0xMi4xLTEuNi0yNS0yLjUtMzguNi0yLjUtNTQuMiAwLTk3LjQgMTQuNC0xMjcgMjguOC0zLjQgMS42LTYuNSAzLjMtOS41IDQuOS01LjEgMi44LTkuNyA1LjQtMTMuOCA3LjktMy4zIDIuMS02LjMgNC04LjkgNS43LTEuNyAxLjItMy4yIDIuMy00LjYgMy4zLTEuOSAxLjQtMy41IDIuNS00LjYgMy40LTEuNCAxLjEtMi4yIDEuOC0yLjUgMi0xMy4yIDExLjctMzMuMyAxMC41LTQ1LjEtMi44LTIuMi0yLjUtNC01LjItNS4yLTguMXMtMi4xLTUuOS0yLjUtOC45Yy0xLjQtMTAuMiAyLjItMjAuOCAxMC40LTI4LjIgLjItLjIgLjYtLjUgMS4yLTEgLjEtLjEgLjItLjIgLjMtLjNsMy4yLTIuNmMxLjctMS4zIDMuNy0yLjggNi4yLTQuNiAxLjYtMS4yIDMuMy0yLjUgNS4yLTMuOCA5LjgtNi44IDI0LTE1LjcgNDIuMi0yNC41IDguMi00IDE3LjItNy45IDI3LTExLjZsMC0zMDMuMkM4Ni43IDEwMC42IDc3LjcgOTYuNyA2OS41IDkyLjggMzQuMyA3NS43IDE0IDU4LjMgMTEuMyA1NS45LTEuOSA0NC4yLTMuMSAyNCA4LjYgMTAuNyAyMC4zLTIuNSA0MC41LTMuNyA1My43IDggNTUuMSA5LjIgNzAuNyAyMi4yIDk3LjUgMzUuMiAxMjcuMSA0OS42IDE3MC4zIDY0IDIyNC41IDY0czk3LjQtMTQuNCAxMjctMjguOGMyNi44LTEzIDQyLjQtMjYgNDMuOC0yNy4yek0yODguNSAxMjIuM2MtMTkuNyAzLjUtNDEgNS43LTY0IDUuN3MtNDQuMy0yLjItNjQtNS43bDAgMjY3LjRjMTIuNi0yLjMgMjUuOS00IDM5LjktNC45IDcuOC0uNSAxNS44LS44IDI0LS44IDIzIDAgNDQuNCAyLjIgNjQgNS43bDAtMjY3LjR6Il19LEtScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3dlci1jZWxsIixpY29uOls1NzYsNTEyLFtdLCJlNTg1IiwiTTU5LjYgOS44QzQ3LjMgNC44IDMzLjMgMTAuNyAyOC40IDIzIDE1LjIgNTUuNSA4IDkwLjkgOCAxMjhzNy4yIDcyLjUgMjAuNCAxMDVjNSAxMi4zIDE5IDE4LjIgMzEuMyAxMy4yczE4LjItMTkgMTMuMi0zMS4zQzYyIDE4OC4yIDU2IDE1OC44IDU2IDEyOHM2LTYwLjIgMTYuOS04N2M1LTEyLjMtMS0yNi4zLTEzLjItMzEuM3ptNDU2LjggMGMtMTIuMyA1LTE4LjIgMTktMTMuMiAzMS4zIDEwLjkgMjYuOCAxNi45IDU2LjIgMTYuOSA4N3MtNiA2MC4yLTE2LjkgODdjLTUgMTIuMyAxIDI2LjMgMTMuMiAzMS4zczI2LjMtMSAzMS4zLTEzLjJjMTMuMS0zMi41IDIwLjQtNjcuOSAyMC40LTEwNXMtNy4yLTcyLjUtMjAuNC0xMDVjLTUtMTIuMy0xOS0xOC4yLTMxLjMtMTMuMnpNMzQwLjEgMTY1LjJjNy41LTEwLjUgMTEuOS0yMy4zIDExLjktMzcuMiAwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDEzLjkgNC40IDI2LjcgMTEuOSAzNy4yTDk4LjkgNDY2LjhjLTcuMyAxNi4xLS4yIDM1LjEgMTUuOSA0Mi40czM1LjEgLjIgNDIuNC0xNS45bDIwLjYtNDUuMiAyMjAuNiAwIDIwLjYgNDUuMmM3LjMgMTYuMSAyNi4zIDIzLjIgNDIuNCAxNS45czIzLjItMjYuMyAxNS45LTQyLjRMMzQwLjEgMTY1LjJ6TTM3Ni41IDQwMGwtMTc3IDAgMjEuOC00OCAxMzMuMyAwIDIxLjggNDh6TTI4OCAyMDUuM2w0NC44IDk4LjctODkuNyAwIDQ0LjgtOTguN3pNMTYzLjMgNzMuNmM1LjMtMTIuMS0uMi0yNi4zLTEyLjQtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjRDMTA5LjUgNzcgMTA0IDEwMS45IDEwNCAxMjhzNS41IDUxIDE1LjMgNzMuNmM1LjMgMTIuMSAxOS41IDE3LjcgMzEuNiAxMi40czE3LjctMTkuNSAxMi40LTMxLjZDMTU2IDE2NS44IDE1MiAxNDcuNCAxNTIgMTI4czQtMzcuOCAxMS4zLTU0LjR6TTQ1Ni43IDU0LjRjLTUuMy0xMi4xLTE5LjUtMTcuNy0zMS42LTEyLjRzLTE3LjcgMTkuNS0xMi40IDMxLjZDNDIwIDkwLjIgNDI0IDEwOC42IDQyNCAxMjhzLTQgMzcuOC0xMS4zIDU0LjRjLTUuMyAxMi4xIC4yIDI2LjMgMTIuNCAzMS42czI2LjMtLjIgMzEuNi0xMi40QzQ2Ni41IDE3OSA0NzIgMTU0LjEgNDcyIDEyOHMtNS41LTUxLTE1LjMtNzMuNnoiXX0sWlJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbG9uLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxNDAiLCJNMjEzLjggOC43YzEyLjkgMy4yIDIwLjcgMTYuMiAxNy41IDI5LjFsLTQuNiAxOC41YzE1LjQgLjggMzAuNCAzLjQgNDQuNyA3LjVsOS40LTM3LjZDMjgzLjkgMTMuMyAyOTcgNS41IDMwOS44IDguN1MzMzAuNSAyNSAzMjcuMyAzNy44TDMxNiA4Mi44YzEzLjUgNy44IDI2IDE3LjEgMzcuMiAyNy44IDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMy4xLTIuOS02LjQtNS44LTkuOC04LjRMMjM5LjIgMzkwYzI2LjktNC42IDUxLjEtMTcuMSA3MC4xLTM1LjEgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJjLTM0LjMgMzIuMy04MCA1Mi44LTEzMC41IDU0LjRsLTcuNSAyOS45Yy0zLjIgMTIuOS0xNi4yIDIwLjctMjkuMSAxNy41cy0yMC43LTE2LjItMTcuNS0yOS4xbDUuNi0yMi41Yy0xNS0zLjItMjkuNC04LTQyLjktMTQuNGwtMTIuMSA0OC41Yy0zLjIgMTIuOS0xNi4yIDIwLjctMjkuMSAxNy41UzY5LjUgNDg3IDcyLjcgNDc0LjJsMTYtNjMuOUM0NC4zIDM3My42IDE2IDMxOC4xIDE2IDI1NiAxNiAxNTkuMiA4NC44IDc4LjQgMTc2LjMgNjBsOC40LTMzLjhDMTg3LjkgMTMuMyAyMDEgNS41IDIxMy44IDguN3pNMTU4IDEzMi45Yy00Ni4xIDIxLjgtNzggNjguNy03OCAxMjMuMSAwIDMwLjUgMTAgNTguNiAyNi45IDgxLjNMMTU4IDEzMi45ek0xNDcuNCAzNzMuNGMxMyA3LjYgMjcuMyAxMy4xIDQyLjUgMTYuMWw2NS45LTI2My42Yy0xMi42LTMuOC0yNS45LTUuOS0zOS44LTUuOS0xLjggMC0zLjUgMC01LjMgLjFMMTQ3LjQgMzczLjR6Il19LFFScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtZmlsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUxZCIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEw0MTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4LTY0IDAgMC00OC0yODggMCAwIDE5MiAxMTIgMCAwIDk2LTE2My4yIDBDMzQuNCAzNTIgMCAzMTcuNiAwIDI3NS4yIDAgMjY0LjYgOC42IDI1NiAxOS4yIDI1Nkw2NCAyNTYgNjQgNjR6TTUyOS45IDI1Ny45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45TDU0NCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTI1NmMwLTI2LjUgMjEuNS00OCA0OC00OGw3Ni4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMSAyMCAyMCA0Ny45IDQ3LjkgODMuOSA4My45ek00MTYgMjcyYzAgOC44IDcuMiAxNiAxNiAxNmw2MC4xIDAtNzYuMS03Ni4xIDAgNjAuMXoiXX0sTUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaGFpIixpY29uOls1NzYsNTEyLFsiaGF5a2FsIl0sImY2NjYiLCJNMjg4LjQtOGMxMy4yIDAgMjUgOC4xIDI5LjggMjAuNGwzMS45IDgyIDc3LjItNDIuM2MxMS42LTYuMyAyNS44LTQuOSAzNS45IDMuNXMxNCAyMi4zIDkuNyAzNC44bC0yOC4yIDgzLjMgODYuMyAxNy4yYzEyLjkgMi42IDIzIDEyLjggMjUuMyAyNS44cy0zLjYgMjYuMS0xNC45IDMyLjlsLTc1LjIgNDUuNyA1NSA2OC42YzguMyAxMC4zIDkuMyAyNC42IDIuNyAzNnMtMTkuNSAxNy42LTMyLjYgMTUuNmwtODctMTMuMy0yIDg4Yy0uMyAxMy4yLTguNiAyNC44LTIxIDI5LjRzLTI2LjMgMS0zNS05bC01OC02Ni4xLTU4IDY2LjFjLTguNyA5LjktMjIuNiAxMy41LTM1IDlzLTIwLjgtMTYuMi0yMS0yOS40bC0yLTg4LTg3IDEzLjNjLTEzIDItMjYtNC4yLTMyLjYtMTUuNnMtNS41LTI1LjcgMi43LTM2bDU1LTY4LjYtNzUuMi00NS43Yy0xMS4zLTYuOC0xNy4yLTE5LjktMTQuOS0zMi45czEyLjMtMjMuMiAyNS4zLTI1LjhsODYuMy0xNy4yLTI4LjItODMuM2MtNC4yLTEyLjUtLjQtMjYuMyA5LjctMzQuOHMyNC40LTkuOSAzNS45LTMuNWw3Ny4xIDQyLjMgMzEuOS04MkMyNjMuMyAuMSAyNzUuMi04IDI4OC40LTh6bTAgMTIwLjJMMjczIDE1MS42Yy0zLjMgOC42LTEwLjIgMTUuMy0xOC45IDE4LjVzLTE4LjIgMi40LTI2LjMtMmwtMzctMjAuMyAxMy42IDQwYzMgOC43IDIgMTguMy0yLjYgMjYuM3MtMTIuNCAxMy42LTIxLjUgMTUuNGwtNDEuNCA4LjMgMzYuMSAyMS45YzcuOSA0LjggMTMuMyAxMi43IDE0LjkgMjEuOHMtLjggMTguNC02LjUgMjUuNmwtMjYuNCAzMyA0MS44LTYuNGM5LjEtMS40IDE4LjQgMS4yIDI1LjQgNy4xczExLjIgMTQuNiAxMS40IDIzLjhsLjkgNDIuMiAyNy45LTMxLjhjNi4xLTYuOSAxNC44LTEwLjkgMjQuMS0xMC45czE4IDQgMjQuMSAxMC45bDI3LjkgMzEuOCAuOS00Mi4yYy4yLTkuMiA0LjQtMTcuOSAxMS40LTIzLjhzMTYuMy04LjUgMjUuNC03LjFsNDEuOCA2LjQtMjYuNC0zM2MtNS44LTcuMi04LjItMTYuNS02LjYtMjUuNnM3LTE3IDE0LjktMjEuOGwzNi4xLTIxLjktNDEuNC04LjNjLTktMS44LTE2LjktNy40LTIxLjUtMTUuNHMtNS41LTE3LjYtMi42LTI2LjNsMTMuNi00MC0zNyAyMC4zYy04LjEgNC40LTE3LjcgNS4yLTI2LjMgMnMtMTUuNS05LjktMTguOS0xOC41bC0xNS4zLTM5LjR6Il19LFhScj1NSGUsQ0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtMSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtYWx0Il0sImYzZDEiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE5MiA4MGExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6TTY0IDE4NGwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDE0NGMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTQ0MCAxOTEuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNDQ4IDMyOGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTI0MCAxODhjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LEpScj1DSGUsekhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWJvbHQiLGljb246WzUxMiw1MTIsWzEyNzc4NSwidGh1bmRlcnN0b3JtIl0sImY3NmMiLCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwzOC42IDAgMTI0LjEtMTExYzEyLjItMTAuOSAyOC0xNyA0NC40LTE3IDQ0LjYgMCA3Ni41IDQzIDYzLjcgODUuN0wzNTQuMSAzMjAgNDE2IDMyMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNjAuNiA0MDBsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNjIuNSAzOTYuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTQ5LjUgMzcxLjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LGVGcj16SGUsdEZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV0aGVybmV0IixpY29uOls1MTIsNTEyLFtdLCJmNzk2IiwiTTAgMjI0TDAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sX0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhyeXZuaWEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM3MiwiaHJ5dm5pYSJdLCJmNmYyIiwiTTMzNiAxNDkuNEMzMzYgNzcgMjY4LjUgMjMuNSAxOTggNDAuMUw5My4yIDY0LjlDNzYgNjguOSA2NS40IDg2LjIgNjkuNCAxMDMuNHMyMS4zIDI3LjkgMzguNSAyMy44bDEwNC44LTI0LjdjMzAuMy03LjEgNTkuMyAxNS44IDU5LjMgNDYuOSAwIDE3LjYtOS42IDMzLjgtMjUgNDIuM2wtLjcgLjQtMjIyLjMgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIuNCAwYzUuNS0xMy4zIDguNC0yNy44IDguNC00Mi42ek0zNjAgMjcyTDI0IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy4zIDBjLTYuMSAxMy40LTkuMyAyOC4xLTkuMyA0My4zIDAgNjQuMSA1Ni45IDExMy40IDEyMC40IDEwNC4ybDEzNy45LTE5LjljMTcuNS0yLjUgMjkuNi0xOC43IDI3LjEtMzYuMnMtMTguOC0yOS42LTM2LjItMjcuMUwxNTkuMiA0MDQuMmMtMjQuOSAzLjYtNDcuMi0xNS43LTQ3LjItNDAuOSAwLTE1LjEgOC4yLTI4LjkgMjEuNC0zNi4ybDEzLTcuMSAyMTMuNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0eiJdfSxyRnI9X0hlLF9wZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleWUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0yMDQuNSAxMzguN2MyMy41LTE2LjggNTIuNC0yNi43IDgzLjUtMjYuNyA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDMxLjEtOS45IDU5LjktMjYuNyA4My41bC0zNC43LTM0LjdjMTIuNy0yMS40IDE3LTQ3LjcgMTAuMS03My43LTEzLjctNTEuMi02Ni40LTgxLjYtMTE3LjYtNjcuOS04LjYgMi4zLTE2LjcgNS43LTI0IDEwbC0zNC43LTM0Ljd6TTMyNS4zIDM5NS4xYy0xMS45IDMuMi0yNC40IDQuOS0zNy4zIDQuOS03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTEyLjkgMS43LTI1LjQgNC45LTM3LjNMNjkuNCAxMzkuMmMtMzIuNiAzNi44LTU1IDc1LjgtNjYuOSAxMDQuNS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjYgMzcuMyAwIDcxLjItNy45IDEwMS41LTIwLjZsLTY0LjItNjQuMnoiXX0sVEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtZmxhdGJlZC1zdWl0Y2FzZSIsaWNvbjpbNTc2LDUxMixbImx1Z2dhZ2UtY2FydCJdLCJmNTlkIiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDQ4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC43IDBjMS44IDUgMi43IDEwLjQgMi43IDE2IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNS42IDEtMTEgMi43LTE2bC0xOTcuNSAwYzEuOCA1IDIuNyAxMC40IDIuNyAxNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTYgMS4xLTExLjcgMy4xLTE3LTM4LjEtNi4yLTY3LjEtMzkuMi02Ny4xLTc5TDY0IDgwYzAtOC44LTcuMi0xNi0xNi0xNkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek0xNzYgMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDAgMC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01Nmw2NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMjQgMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE0NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjQwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTQ0ek0zODQgOTZsMC0yNGMwLTQuNC0zLjYtOC04LThsLTY0IDBjLTQuNCAwLTggMy42LTggOGwwIDI0IDgwIDB6Il19LGFGcj1USGUsaUZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhZGlhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjdiOSIsIk00NDYuMiAzNC41Yy0xNC4yLTEwLjEtMzMuNS00LjYtNDIuMiAxMC41TDMzMS42IDE3MC4zYzMxLjMgMTUuOCA1Mi44IDQ4LjMgNTIuOCA4NS43bDE0NCAwYzE3LjcgMCAzMi4yLTE0LjQgMzAuMS0zMS45LTkuMS03OC4xLTUxLjQtMTQ2LjEtMTEyLjMtMTg5LjZ6TTE3Mi43IDQ0LjlDMTY0IDI5LjggMTQ0LjcgMjQuMyAxMzAuNSAzNC41IDY5LjYgNzcuOSAyNy4zIDE0NS45IDE4LjIgMjI0LjEgMTYuMSAyNDEuNiAzMC43IDI1NiA0OC4zIDI1NmwxNDQgMGMwLTM3LjUgMjEuNS02OS45IDUyLjgtODUuN0wxNzIuNyA0NC45em0tOS40IDQxNi44Yy04LjcgMTUuMS0zLjggMzQuNSAxMiA0MS44IDM0LjQgMTUuNyA3Mi43IDI0LjUgMTEzIDI0LjVzNzguNi04LjggMTEzLTI0LjVjMTUuOC03LjIgMjAuNy0yNi43IDEyLTQxLjhMMzQxIDMzNi4zYy0xNS4xIDkuOS0zMy4yIDE1LjctNTIuNiAxNS43cy0zNy41LTUuOC01Mi42LTE1LjdMMTYzLjMgNDYxLjd6TTI4OC4zIDMwNGE0OCA0OCAwIDEgMCAtLjctOTYgNDggNDggMCAxIDAgLjcgOTZ6Il19LHNGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXdvcmQiLGljb246WzM4NCw1MTIsW10sImYxYzIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTEzNS40IDI3NC44Yy0yLjktMTIuOS0xNS43LTIxLjEtMjguNi0xOC4ycy0yMS4xIDE1LjctMTguMiAyOC42bDMyIDE0NGMyLjMgMTAuNSAxMS40IDE4LjIgMjIuMiAxOC44czIwLjYtNi4xIDI0LTE2LjRsMjUuMi03NS43IDI1LjIgNzUuN2MzLjQgMTAuMiAxMy4yIDE2LjkgMjQgMTYuNHMxOS45LTguMiAyMi4yLTE4LjhsMzItMTQ0YzIuOS0xMi45LTUuMy0yNS44LTE4LjItMjguNnMtMjUuOCA1LjMtMjguNiAxOC4ybC0xMy4yIDU5LjQtMjAuNi02MS44Yy0zLjMtOS44LTEyLjQtMTYuNC0yMi44LTE2LjRzLTE5LjUgNi42LTIyLjggMTYuNGwtMjAuNiA2MS44LTEzLjItNTkuNHoiXX0sTEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlZC1wdWxzZSIsaWNvbjpbNjQwLDUxMixbInByb2NlZHVyZXMiXSwiZjQ4NyIsIk01MzEuMi0yMi40TDU3MiAzMiA2MTYgMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDBjLTcuNiAwLTE0LjctMy42LTE5LjItOS42bC0yNC4xLTMyLjEtNDcgOTkuOWMtMy43IDcuOC0xMS4zIDEzLjEtMTkuOSAxMy43cy0xNi45LTMuNC0yMS43LTEwLjZMMzg3LjIgODAgMzQ0IDgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDU2IDBjOCAwIDE1LjUgNCAyMCAxMC43bDI0LjQgMzYuNiA0NS45LTk3LjVjMy42LTcuNiAxMC45LTEyLjggMTkuMy0xMy43czE2LjYgMi43IDIxLjYgOS41ek0zMjAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDkuNSAwIDI2LjYgMzkuOWMxNC40IDIxLjYgMzkuMyAzMy44IDY1LjIgMzEuOXM0OC44LTE3LjYgNTkuOC00MS4xTDUyNyAxMjkuMmM0NS45IDcuMiA4MSA0Ni45IDgxIDk0LjhsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyUzk2IDQ2LjMgOTYgNjRsMCAyMjQgMjI0IDAgMC0xMjh6TTE0NCAxOTJhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxuRnI9TEhlLG9Gcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU4MiIsIk01MzkuOSAzNTJsLTk1LjYgMC04LjQtNjYuMWMtMi45LTIzLjItMTUuOS00My45LTM1LjQtNTYuOEwyNTIuMiAxMzEuNWMtMTgtMTEuOS0zOS43LTE1LjctNjAuMS0xMS41IDIuNS00LjMgNS45LTcuOSAxMC4xLTEwLjdMMzUwLjYgMTEuNmMxMC43LTcgMjQuNS03IDM1LjIgMGwxNDguNCA5Ny43YzcuOCA1LjEgMTMgMTMuNCAxNC4yIDIyLjdsMjMuMyAxODRjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2ek00LjggNDc2bDIzLjMtMTg0YzEuMi05LjMgNi4zLTE3LjYgMTQuMi0yMi43bDE0OC40LTk3LjdjMTAuNy03IDI0LjUtNyAzNS4yIDBsMTQ4LjQgOTcuN2M3LjggNS4xIDEzIDEzLjQgMTQuMiAyMi43bDIzLjMgMTg0YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNmwtNDkuNyAwYy0xMS4yIDAtMjEuNS01LjgtMjcuMy0xNS40bC03Ny0xMjYuN2MtMS43LTIuOC00LjgtNC42LTguMS00LjYtNS4zIDAtOS41IDQuMy05LjUgOS41bDAgMTA1LjJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzYuNSA1MTJjLTE5LjMgMC0zNC4yLTE2LjktMzEuNy0zNnoiXX0sVHBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1ob3QiLGljb246WzU3Niw1MTIsWzk3NDldLCJmN2I2IiwiTTE1Mi0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMTgzLjUgMzEuNyAxNzYgMjQuMSAxNzYgOCAxNzYtNS4zIDE2NS4zLTE2IDE1Mi0xNnpNOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwYzQxLjggMCA3Ny40LTI2LjcgOTAuNS02NGw1LjUgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFM1MTguNyAxOTIgNDQ4IDE5Mkw5NiAxOTJ6TTQ0OCAzODRsMC0xMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTI4OCA4YzAtMTMuMy0xMC43LTI0LTI0LTI0UzI0MC01LjMgMjQwIDhjMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMjk1LjUgMzEuNyAyODggMjQuMSAyODggOHoiXX0sREhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQiLGljb246WzQ0OCw1MTIsWzk4ODksInphcCJdLCJmMGU3IiwiTTMzOC44LTkuOWMxMS45IDguNiAxNi4zIDI0LjIgMTAuOSAzNy44TDI3MS4zIDIyNCA0MTYgMjI0YzEzLjUgMCAyNS41IDguNCAzMC4xIDIxLjFzLjcgMjYuOS05LjYgMzUuNWwtMjg4IDI0MGMtMTEuMyA5LjQtMjcuNCA5LjktMzkuMyAxLjNzLTE2LjMtMjQuMi0xMC45LTM3LjhMMTc2LjcgMjg4IDMyIDI4OGMtMTMuNSAwLTI1LjUtOC40LTMwLjEtMjEuMXMtLjctMjYuOSA5LjYtMzUuNWwyODgtMjQwYzExLjMtOS40IDI3LjQtOS45IDM5LjMtMS4zeiJdfSxsRnI9REhlLGNGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXIiLGljb246WzMyMCw1MTIsW10sImU1MTYiLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTkyeiJdfSxkRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGxhbmUiLGljb246WzY0MCw1MTIsW10sImU1OGYiLCJNMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAzMjBjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuM2MwIDcuMSAuOSAxNC4xIDIuNyAyMC43TDE5MiA0ODAgODMuOSA1MDdDNzMuOCA1MDkuNiA2NCA1MDEuOSA2NCA0OTEuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNzQtNTkuMiAwLTU3LjYtMTIyLjEgNDguOEMxMS40IDM5NS40IDAgMzg3LjcgMCAzNzYuNGwwLTQ0YzAtOCAzLTE1LjYgOC4zLTIxLjVMMTQ0IDE2MS42IDE0NCA0OHptMjI0IDgwbDE5MiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYwYzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMtMTkuNC0xNC42LTMyLTM3LjgtMzItNjRsMC0xNjBjMC00NC4yIDM1LjgtODAgODAtODB6bTAgMTc2bDE5MiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyem0wIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LHVGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGVhcnQiLGljb246WzU3Niw1MTIsW10sImY0YmUiLCJNMjc5LjYgMzFDMjY1LjUgMTEuNSAyNDIuOSAwIDIxOC45IDAgMTc3LjUgMCAxNDQgMzMuNSAxNDQgNzQuOWwwIDIuNGMwIDY0LjQgODIgMTMzLjQgMTIyLjIgMTYzLjMgMTMgOS43IDMwLjUgOS43IDQzLjUgMCA0MC4yLTMwIDEyMi4yLTk4LjkgMTIyLjItMTYzLjNsMC0yLjRjMC00MS40LTMzLjUtNzQuOS03NC45LTc0LjktMjQgMC00Ni42IDExLjUtNjAuNyAzMUwyODggNDIuNyAyNzkuNiAzMXpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LEx5PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjM0LCJhcnJvdy1sZWZ0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1iYWNrIiwiYXJyb3ctcm90YXRlLWJhY2t3YXJkIiwidW5kbyJdLCJmMGUyIiwiTTI1NiA2NGMtNTYuOCAwLTEwNy45IDI0LjctMTQzLjEgNjRsNDcuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwwIDU0LjdDMTEwLjkgMzMuNiAxNzkuNSAwIDI1NiAwIDM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZTMzk3LjQgNTEyIDI1NiA1MTJjLTg3IDAtMTYzLjktNDMuNC0yMTAuMS0xMDkuNy0xMC4xLTE0LjUtNi42LTM0LjQgNy45LTQ0LjZzMzQuNC02LjYgNDQuNiA3LjljMzQuOCA0OS44IDkyLjQgODIuMyAxNTcuNiA4Mi4zIDEwNiAwIDE5Mi04NiAxOTItMTkyUzM2MiA2NCAyNTYgNjR6Il19LHBGcj1MeSxmRnI9THksaEZyPUx5LG1Gcj1MeSwkSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1hbmdyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTQ0LCJhbmdyeSJdLCJmNTU2IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTI1NiAzNjhjMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTBzLTc1LjcgMTkuOC05Ny41IDUwYy03LjcgMTAuOC01LjMgMjUuOCA1LjUgMzMuNXMyNS44IDUuMyAzMy41LTUuNWMxMy4xLTE4LjIgMzQuNC0zMCA1OC41LTMwem0tODAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0uMyA5LjcgMy4yYzEwLjUgMy41IDIxLjgtMi4yIDI1LjMtMTIuNnMtMi4yLTIxLjgtMTIuNi0yNS4zbC05Ni0zMmMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2wyOC45IDkuNmMtNC4xIDUuNC02LjYgMTIuMS02LjYgMTkuNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTkyLTMyYzAtNy4zLTIuNC0xNC02LjYtMTkuNGwyOC45LTkuNmMxMC41LTMuNSAxNi4xLTE0LjggMTIuNi0yNS4zcy0xNC44LTE2LjEtMjUuMy0xMi42bC05NiAzMmMtMTAuNSAzLjUtMTYuMSAxNC44LTEyLjYgMjUuM3MxNC44IDE2LjEgMjUuMyAxMi42bDkuNy0zLjIgMCAuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSxnRnI9JEhlLGJGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXJzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRkYyIsIk0zNy42IDQuMkMyOC0yLjMgMTUuMi0xLjEgNyA3Uy0yLjMgMjggNC4yIDM3LjZsMTEyIDE2My4zLTk5LjYgMzIuM0M2LjcgMjM2LjQgMCAyNDUuNiAwIDI1NnM2LjcgMTkuNiAxNi42IDIyLjhsMTAzLjEgMzMuNC01Mi45IDEwMC42Yy00LjkgOS4zLTMuMiAyMC43IDQuMyAyOC4xczE4LjggOS4yIDI4LjEgNC4zbDEwMC42LTUyLjkgMzMuNCAxMDMuMWMzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZzMTkuNi02LjcgMjIuOC0xNi42bDMzLjQtMTAzLjEgMTAwLjYgNTIuOWM5LjMgNC45IDIwLjcgMy4yIDI4LjEtNC4zczkuMi0xOC44IDQuMy0yOC4xbC01Mi45LTEwMC42IDEwMy4xLTMzLjRjOS45LTMuMiAxNi42LTEyLjQgMTYuNi0yMi44cy02LjctMTkuNi0xNi42LTIyLjhsLTEwNi41LTM0LjUgMjUuNy03MC40YzMuMi04LjggMS0xOC42LTUuNi0yNS4ycy0xNi40LTguOC0yNS4yLTUuNmwtNzAuNCAyNS43LTM0LjUtMTA2LjVDMjc1LjYgNi43IDI2Ni40IDAgMjU2IDBzLTE5LjYgNi43LTIyLjggMTYuNkwyMDAuOSAxMTYuMiAzNy42IDQuMnoiXX0seEZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InoiLGljb246WzM4NCw1MTIsWzEyMl0sIjVhIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzIwIDBjMTIuNCAwIDIzLjcgNy4yIDI5IDE4LjRzMy42IDI0LjUtNC40IDM0LjFMMTAwLjMgNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xMi40IDAtMjMuNy03LjItMjktMTguNHMtMy42LTI0LjUgNC40LTM0LjFMMjgzLjcgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sQUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmRhZ2UiLGljb246WzU3Niw1MTIsWzEyOTY1NywiYmFuZC1haWQiXSwiZjQ2MiIsIk00NjQgNDE2bDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMCAzMjB6TTQxNiA5NmwtMjU2IDAgMCAzMjAgMjU2IDAgMC0zMjB6TTY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMzIwLTQ4IDB6TTIxNiAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjE2IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSx2RnI9QUhlLHlGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NTYiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSx3RnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzLXNpZGUiLGljb246WzY0MCw1MTIsW10sImU4MWQiLCJNNDgwIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTUuNiAwYy0xMy4yIDM3LjMtNDguNiA2NC05MC40IDY0cy03Ny4zLTI2LjctOTAuNC02NGwtMTM5LjEgMGMtMTMuMiAzNy4zLTQ4LjcgNjQtOTAuNCA2NHMtNzcuMi0yNi43LTkwLjQtNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNDMgNDMgMCA5NiAwTDQ4MCAwek0xNjAgMzY4YTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnptMzIwIDBhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0wLTMwNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek0yNDggMjI0bDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwIDAgMTYwek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMCAwLTE2MC0xMDQgMHoiXX0sa0ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Z3MiLGljb246WzU3Niw1MTIsW10sImU0ZDAiLCJNNDQ3LjUgMTc0LjZjOC44LTguNCAyMi43LTguOSAzMi4yLS44czExIDIxLjkgNC4xIDMxLjlsLTEuNSAxLjktMjMgMjYuN2MyNi43IDEzLjUgNDYuMyAzOS4xIDUxLjQgNjkuNmwyNS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCAzMiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNS4zIDBjLTcuNiA0NS40LTQ3LjEgODAtOTQuNyA4MHMtODctMzQuNi05NC43LTgwTDI5NiA0MzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwYzUuMS0zMC41IDI0LjctNTYuMSA1MS40LTY5LjZsLTIyLjktMjYuN2MtOC42LTEwLjEtNy41LTI1LjIgMi42LTMzLjhzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44em0tMjU2LTE5MmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43QzIzMCA1NS45IDI0OS41IDgxLjUgMjU0LjcgMTEybDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI1LjMgMEM3MC41IDgxLjUgOTAgNTUuOSAxMTYuNyA0Mi40TDkzLjggMTUuNkM4NS4yIDUuNiA4Ni4zLTkuNiA5Ni40LTE4LjJzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44eiJdfSxFSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVlci1tdWctZW1wdHkiLGljb246WzU3Niw1MTIsWyJiZWVyIl0sImYwZmMiLCJNNjQgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMjg4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNiA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTA4LjJjMCAyNC4yLTEzLjcgNDYuNC0zNS40IDU3LjJMNDQ4IDM3MS44IDQ0OCAzODRjMCA1My00MyA5Ni05NiA5NmwtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMNjQgODB6TTQ0OCAzMDAuMmw2NC0zMiAwLTEwOC4yLTY0IDAgMCAxNDAuMnpNMTkyIDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6bTg4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHoiXX0sU0ZyPUVIZSxNRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZSIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxDRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhcGxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTVhZiIsIk02NDAgMjk5LjNMNjQwIDQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDAgMC00OC0zNTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTYuNi0zMC4yLTUuNGMtMTkuNi0zLjUtMzMuOC0yMC41LTMzLjgtNDAuNCAwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVjMzIuOC00My44IDg0LjQtNjkuNiAxMzkuMS02OS42IDI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0bDAtMTYtMzIwLTU3LjEgMCA3My4xIDMyMCAweiJdfSx6RnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MTEiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LF9Gcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuYWlyYS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMWY2IiwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRsMCAxOTItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQgODkuNSAwIDEwNy44IDE2MS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45UzM4NCA0NjIuMSAzODQgNDQ4bDAtMTQ0IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwLTEzOS44LTIwOS43ek0yOTQuNSAzMDRsMjUuNSAwIDAgMzguMy0yNS41LTM4LjN6TTE4NS41IDI1NmwtNTcuNSAwIDAtODYuMyA1Ny41IDg2LjN6Il19LHJwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aWZpIixpY29uOls1NzYsNTEyLFsid2lmaS0zIiwid2lmaS1zdHJvbmciXSwiZjFlYiIsIk0yODggOTZjLTkwLjkgMC0xNzMuMiAzNi0yMzMuNyA5NC42LTEyLjcgMTIuMy0zMyAxMi00NS4yLS43cy0xMi0zMyAuNy00NS4yQzgxLjcgNzQuOSAxNzkuOSAzMiAyODggMzJTNDk0LjMgNzQuOSA1NjYuMyAxNDQuN2MxMi43IDEyLjMgMTMgMzIuNiAuNyA0NS4ycy0zMi42IDEzLTQ1LjIgLjdDNDYxLjIgMTMyIDM3OC45IDk2IDI4OCA5NnpNMjQwIDQzMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0xNjggMzI2LjJjLTExLjcgMTMuMy0zMS45IDE0LjUtNDUuMiAyLjhzLTE0LjUtMzEuOS0yLjgtNDUuMkMxNjEgMjM3LjQgMjIxLjEgMjA4IDI4OCAyMDhzMTI3IDI5LjQgMTY4IDc1LjhjMTEuNyAxMy4zIDEwLjQgMzMuNS0yLjggNDUuMnMtMzMuNSAxMC40LTQ1LjItMi44QzM3OC42IDI5Mi45IDMzNS44IDI3MiAyODggMjcycy05MC42IDIwLjktMTIwIDU0LjJ6Il19LFRGcj1ycGUsTEZyPXJwZSxyVD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJtb25leS1jaGVjay1hbHQiXSwiZjUzZCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMjk2IDI4OGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bS0yNC04OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDggMTQ0YzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Qzk0LjUgMjY4IDc2IDI0Ni4xIDc2IDIyMC41IDc2IDE5MS43IDk5LjIgMTY4LjMgMTI4IDE2OGwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxERnI9clQsSUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1sb3ctdmlzaW9uIixpY29uOls1NzYsNTEyLFsibG93LXZpc2lvbiJdLCJmMmE4IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek04OCAxNTcuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwzMjguMiA0NjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDg4IDE1Ny45ek00NS43IDI1MS4zYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDE4MS45IDQ1NS41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NS43IDI1MS4zeiJdfSwkRnI9SUhlLFBIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtdXAiXSwiZjBhYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTctMzc3bDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTM5LTM5IDAgMTUwLjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNTAuMS0zOSAzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sQUZyPVBIZSxFRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhLXJldHJvIixpY29uOls1MTIsNTEyLFsxMjgyNDddLCJmMDgzIiwiTTAgNDE2bDAtMjA4IDEzNi4yIDBjMTMuNS0yMC4yIDMyLTM2LjggNTMuNy00OEwwIDE2MCAwIDEyNS43YzAtMzUuMyAyOC43LTY0IDY0LTY0bC4xIDBDNjUuMyA0NS4xIDc5LjEgMzIgOTYgMzJsMzIgMGMxNi45IDAgMzAuNyAxMy4xIDMxLjkgMjkuN2wzMi4xIDAgNTEuMi0yMy44YzguNC0zLjkgMTcuNi02IDI2LjktNkw0NDggMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NC0xOTAgMGMyMS43IDExLjIgNDAuMiAyNy44IDUzLjcgNDhsMTM2LjIgMCAwIDIwOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0yNTYgMTkyYTk2LjEgOTYuMSAwIDEgMCAwIDE5Mi4xIDk2LjEgOTYuMSAwIDEgMCAwLTE5Mi4xeiJdfSxJRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fwc3VsZXMiLGljb246WzU3Niw1MTIsW10sImY0NmIiLCJNOTYgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTItOTYgMCAwLTExMnptLTY0IDBsMCAyODhjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmwwLTEwNS44IDExNi4zIDE2OS41YzM1LjUgNTEuNyAxMDUuMyA2NC4zIDE1NiAyOC4xczYzLTEwNy41IDI3LjUtMTU5LjJMNDI3LjMgMTQ1LjNjLTM1LjUtNTEuNy0xMDUuMy02NC4zLTE1Ni0yOC4xLTUuNiA0LTEwLjcgOC40LTE1LjMgMTMuMWwwLTE4LjNDMjU2IDUwLjEgMjA1LjkgMCAxNDQgMFMzMiA1MC4xIDMyIDExMnpNMjk2LjYgMjQwLjJjLTE2LTIzLjMtMTAtNTUuMyAxMS45LTcxIDIxLjItMTUuMSA1MC41LTEwLjMgNjYgMTIuMmw2NyA5Ny42LTc5LjkgNTUuOS02NS05NC44eiJdfSxQRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9vIixpY29uOls1MTIsNTEyLFsxMjgxNjldLCJmMmZlIiwiTTI2OC45IC45Yy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuNGMyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xIDAgNDQuMS0zNS43IDc5LjktNzkuOCA4MEwxNjAgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE5LjEgOC40IDM2LjMgMjEuNyA0OEwxMDQgMjQwYy0zOS44IDAtNzIgMzIuMi03MiA3MiAwIDIzLjIgMTEgNDMuOCAyOCA1Ny0zNC4xIDUuNy02MCAzNS4zLTYwIDcxIDAgMzkuOCAzMi4yIDcyIDcyIDcybDM2OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyIDAtMzUuNy0yNS45LTY1LjMtNjAtNzEgMTctMTMuMiAyOC0zMy44IDI4LTU3IDAtMzkuOC0zMi4yLTcyLTcyLTcybC0xMy43IDBjMTMuMy0xMS43IDIxLjctMjguOSAyMS43LTQ4IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01LjUgMGMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNDguNi0zNi4yLTg4LjgtODMuMS05NS4xek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjQgMTA4LjNjMCAyLjQtLjcgNC44LTIuMiA2LjctOC4yIDEwLjUtMzkuNSA0NS05My44IDQ1cy04NS42LTM0LjYtOTMuOC00NWMtMS41LTEuOS0yLjItNC4zLTIuMi02LjcgMC02LjggNS41LTEyLjMgMTIuMy0xMi4zbDE2Ny40IDBjNi44IDAgMTIuMyA1LjUgMTIuMyAxMi4zeiJdfSxOSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lIixpY29uOls1MTIsNTEyLFsxMjgyNjUsInZvbHVtZS1tZWRpdW0iXSwiZjZhOCIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNNDQxLjEgMTA3Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNDQzLjMgMTcwLjcgNDY0IDIxMC45IDQ2NCAyNTZzLTIwLjcgODUuMy01My4yIDExMS44Yy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41YzQzLjItMzUuMiA3MC45LTg4LjkgNzAuOS0xNDlzLTI3LjctMTEzLjgtNzAuOS0xNDl6bS02MC41IDc0LjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzNjEuMSAyMjcuNiAzNjggMjQxIDM2OCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MDIuMSAzMTIuOSA0MTYgMjg2LjEgNDE2IDI1NnMtMTMuOS01Ni45LTM1LjUtNzQuNXoiXX0sTkZyPU5IZSxPRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxldmF0b3IiLGljb246WzUxMiw1MTIsW10sImUxNmQiLCJNMjkyLjctNC43bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTNDM4LjUtMzIgNDMyLTMyTDMwNC0zMmMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40em0tMTYwLTIyLjZsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40UzczLjUgNjQgODAgNjRsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sUkZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZyIsaWNvbjpbNTEyLDUxMixbMTI3OTkxXSwiZjAyYiIsIk0zMi41IDk2bDAgMTQ5LjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsMTkyIDE5MmMyNSAyNSA2NS41IDI1IDkwLjUgMEw0ODMuMiAzMzMuM2MyNS0yNSAyNS02NS41IDAtOTAuNWwtMTkyLTE5MkMyNzkuMiAzOC43IDI2MyAzMiAyNDYgMzJMOTYuNSAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTExMiAxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEZGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6Il19LE9IZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWFsdC1kb3duIl0sImYzMDkiLCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDAuOSAzNTIgMjg4IDM1MmwtNjQgMCAwLTMzNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMzYtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzOTcuNSA5LjQgNDA2LjZsMTI4IDEyOHoiXX0sQkZyPU9IZSxIRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFjdC1kaXNjIixpY29uOls1MTIsNTEyLFsxMjgxOTEsMTI4MTkyLDEyODQ0MF0sImY1MWYiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDMyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTk2LTMyYTk2IDk2IDAgMSAwIDE5MiAwIDk2IDk2IDAgMSAwIC0xOTIgMHptLTU2LTE2YzAtMzIuNCAxNi4zLTY2LjYgNDIuOC05My4yUzIwNy42IDEwNCAyNDAgMTA0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00Ny45IDAtOTMuNyAyMy41LTEyNy4xIDU2LjlTNTYgMTkyLjEgNTYgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6Il19LHFGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1yb2xsaW5nIixpY29uOlszODQsNTEyLFtdLCJmNWMxIiwiTTE0NCAyNGMwLTQuNCAzLjYtOCA4LThsODAgMGM0LjQgMCA4IDMuNiA4IDhsMCA3Mi05NiAwIDAtNzJ6TTMyMCA5NmwtMzIgMCAwLTcyYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC04MCAwQzEyMS4xLTMyIDk2LTYuOSA5NiAyNGwwIDcyLTMyIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NHpNMTIwIDIwOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sUkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stcXVyYW4iLGljb246WzQ0OCw1MTIsWyJxdXJhbiJdLCJmNjg3IiwiTTY0IDUxMmwyODggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzMzZjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwek0zNTIgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMCAwLTY0IDI1NiAwek0yNzMuMSAxNDQuNGMyLjUtNi4xIDExLjItNi4xIDEzLjcgMGwxMC4zIDI0LjggMjYuOCAyLjFjNi42IC41IDkuMiA4LjcgNC4yIDEzTDMwNy44IDIwMS45IDMxNCAyMjhjMS41IDYuNC01LjUgMTEuNS0xMS4xIDguMWwtMjIuOS0xNC0yMi45IDE0Yy01LjYgMy40LTEyLjYtMS42LTExLjEtOC4xbDYuMi0yNi4xLTIwLjQtMTcuNWMtNS00LjMtMi4zLTEyLjUgNC4yLTEzbDI2LjgtMi4xIDEwLjMtMjQuOHpNMTAwIDE5MmMwLTY4LjUgNTUuNS0xMjQgMTI0LTEyNCAyMy44IDAgNDYuMSA2LjcgNjUgMTguNCA0LjggMi45IDYuOSA4LjggNSAxNC4xcy03LjEgOC42LTEyLjcgOGMtMy4xLS4zLTYuMi0uNS05LjQtLjUtNDYuNCAwLTg0IDM3LjYtODQgODRzMzcuNiA4NCA4NCA4NGMzLjIgMCA2LjMtLjIgOS40LS41IDUuNi0uNiAxMC44IDIuNyAxMi43IDhzLS4zIDExLjItNSAxNC4xYy0xOC45IDExLjctNDEuMiAxOC40LTY1IDE4LjQtNjguNSAwLTEyNC01NS41LTEyNC0xMjR6Il19LFZGcj1SSGUsakZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmM2RkIiwiTTUzNS0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MzcuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwxNDEuNSAzNjguNkM4OS4yIDMxMC41IDUxLjYgMjM4LjggMzQuOCAxNTkuNCAxOC43IDgzLjEgNzMuOSAyMC42IDEzOC41IDIuOWw1LjUtMS41YzE5LjctNS40IDQwLjMgNC43IDQ4LjEgMjMuNWw0MC41IDk3LjNjNi45IDE2LjUgMi4xIDM1LjYtMTEuOCA0N2wtNDQuMSAzNi4xYzEyLjkgMjguNSAyOS42IDU0LjggNDkuNSA3OC41TDUzNS0yNC45em0tMTUwLjQgNTM0Yy02My0xMy40LTEyMS4zLTM5LjgtMTcxLjctNzYuM0wyOTcuOCAzNDhjMTIuMiA4LjIgMjUgMTUuNiAzOC4zIDIyLjJMMzc0LjcgMzIzYzExLjMtMTMuOSAzMC40LTE4LjYgNDctMTEuOEw1MTkgMzUxLjhjMTguOCA3LjggMjguOSAyOC40IDIzLjUgNDguMWwtMS41IDUuNWMtMTcuNiA2NC42LTgwLjIgMTE5LjgtMTU2LjQgMTAzLjd6Il19LFVGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NCIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LFdGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YTUiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTUuNiAxMTEuMWMtOC4yLTEuNi0xNi42LTIuNS0yNS4yLTIuNS01My43IDAtOTkuNyAzMy4xLTExOC43IDgwbC01Ny4zIDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LEZIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZS1wb3J0cmFpdCIsaWNvbjpbMzg0LDUxMixbInBvcnRyYWl0Il0sImYzZTAiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek04MCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6TTE5MiAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LEdGcj1GSGUsWUZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMCAwIDMyLjJjMTMuOCAuNiAyNy4yIDIuOCA0MCA2LjRsMCA1MC43Yy0xNC44LTYtMzEtOS4zLTQ4LTkuMy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLS40IC4zLS43IC42LTEuMSAxLTE3LjMtMjUtNDYuMi00MS4zLTc4LjktNDEuMy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjR6bTQyNCA2OC42bDAtMzYuNi04MCAwIDAgNjQgMTguOCAwYzE4LjItMTIuOCAzOC45LTIyLjIgNjEuMi0yNy40ek0yMTYgOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDBsLTgwIDAgMCA2NCA4MCAwIDAtNjR6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LEtGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1tZXIiLGljb246WzY0MCw1MTIsWzEyODI5Nl0sImY2ZTMiLCJNMjQ2LjkgMTguM0wyNzEgMy44YzIxLjYtMTMgNDYuMy0xOS44IDcxLjUtMTkuOCAzNi44IDAgNzIuMiAxNC42IDk4LjIgNDAuN2w2My45IDYzLjljMTUgMTUgMjMuNCAzNS40IDIzLjQgNTYuNmwwIDMwLjkgMTkuNyAxOS43IDAgMGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHMxNS42IDQwLjkgMCA1Ni42bC02NCA2NGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMNDY0IDI0MCA0MzMuMSAyNDBjLTIxLjIgMC00MS42LTguNC01Ni42LTIzLjRsLTQ5LjEtNDkuMWMtMTUtMTUtMjMuNC0zNS40LTIzLjQtNTYuNmwwLTEyLjdjMC0xMS4yLTUuOS0yMS43LTE1LjUtMjcuNGwtNDEuNi0yNWMtMTAuNC02LjItMTAuNC0yMS4yIDAtMjcuNHpNNTAuNyA0MDIuN2wyMjIuMS0yMjIuMSA5MC41IDkwLjUtMjIyLjEgMjIyLjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNXoiXX0sQkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cCJdLCJmMTYzIiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNNDE4LjcgMzhjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnpNMzY1LjEgNDMwLjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDMzNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxaRnI9QkhlLFFGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1rbmlnaHQiLGljb246WzM4NCw1MTIsWzk4MjJdLCJmNDQxIiwiTTE5Mi0zMmMxMDYgMCAxOTIgODYgMTkyIDE5MmwwIDEzMy41YzAgMTctNi44IDMzLjItMTguNyA0NS4yTDMyMCAzODQgMzcwLjggNDM0LjdjOC41IDguNSAxMy4yIDIwIDEzLjIgMzIgMCAyNS0yMC4zIDQ1LjItNDUuMiA0NS4zTDQ1LjMgNTEyYy0yNSAwLTQ1LjItMjAuMy00NS4yLTQ1LjMgMC0xMiA0LjgtMjMuNSAxMy4yLTMyTDY0IDM4NCA2NCAzNDkuNGMwLTE4LjcgOC4yLTM2LjQgMjIuMy00OC42bDg5LjctNzYuOC00OCAwLTEyLjEgMTIuMWMtMTIuNyAxMi43LTMwIDE5LjktNDggMTkuOS0zNy41IDAtNjcuOS0zMC40LTY3LjktNjcuOWwwLTguN2MwLTIyLjggOC4yLTQ0LjkgMjMuMS02Mi4zTDk2IDMyIDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNMTYwIDcyYTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHoiXX0sWEZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyLWNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZiIsIk0yODguNSAxMTJhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNMTQxLjIgNDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw1NiA1NmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNTYgNTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMjguNy0yOC43LTg5LjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OS40IDAtMjguNy0yOC43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzM2LjUgMTEyYzAgNzEuMS0zOC42IDEzMy4xLTk2IDE2Ni4zbDAgMTIuOGMyMi4xIDQuNSA0My40IDEzLjkgNjIuNCAyOC4yIDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgNi00LjUgMTIuNi04IDE5LjMtMTAuNGwwLTExNS4yIDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDQ0NC41IDEwLjVDNDM2LjggMy43IDQyNi44IDAgNDE2LjUgMHMtMjAuMyAzLjctMjggMTAuNUwzMjkuOSA2MS44YzQuMyAxNiA2LjYgMzIuOCA2LjYgNTAuMnptMzIgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzUuMSA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDM5MS44IDI2NiAzNzMuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDQ4Ny44IDI2NiA0NjkuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxhVD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1yaWdodC1mcm9tLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImV4dGVybmFsLWxpbmsiXSwiZjA4ZSIsIk0zMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4Mi43IDAtMjAxLjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zIDQ0OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2TDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgOTZ6Il19LEpGcj1hVCxlQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1hY3Jvc3MtbGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRhZiIsIk0yNjUuNCAxMDUuNGw5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMTE0LjcgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCAxMTQuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiA0MDIuNyA5NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtMTE0LjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3pNNDE2IDMzNmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0NCA2NCAwek05NiAxNzZMOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0NC02NCAweiJdfSxISGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sdEJyPUhIZSxxSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWFkIixpY29uOls1MTIsNTEyLFsiYWQiXSwiZjY0MSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDE4NGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNC03LjEgMC0xMy41LTMuMS0xNy45LTgtMTAuMiA1LjEtMjEuOCA4LTM0LjEgOC00MiAwLTc2LTM0LTc2LTc2czM0LTc2IDc2LTc2YzkuOSAwIDE5LjMgMS45IDI4IDUuM2wwLTIxLjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptLTQ4IDkyYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTE2MCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyIDQ4IDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6bTMyIDk2bC00OCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI0eiJdfSxyQnI9cUhlLFZIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXRhbmFraCIsaWNvbjpbNDQ4LDUxMixbInRhbmFraCJdLCJmODI3IiwiTTM1MiA1MTJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjYuN0MxMy40IDM3NC43IDAgMzU2LjkgMCAzMzZMMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzUyIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyMGMwIDUzLTQzIDk2LTk2IDk2em0zMi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDAgMCA2NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTEzLjkgMjI5Yy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yQzIzMy42IDY2LjYgMjI5IDY0IDIyNCA2NHMtOS42IDIuNi0xMi4yIDYuOGwtMzAuNSA0OS4yLTU2LjkgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgMi4zIC42IDQuNiAxLjkgNi42bDI3LjggNDUtMjcuOCA0NXoiXX0sYUJyPVZIZSxqSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90LXR1Yi1wZXJzb24iLGljb246WzQ0OCw1MTIsWyJob3QtdHViIl0sImY1OTMiLCJNMjQwIDQwYzAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMjAzLjUgOTMuMSAxOTIgNjcuMiAxOTIgNDAgMTkyIDI2LjcgMjAyLjcgMTYgMjE2IDE2czI0IDEwLjcgMjQgMjR6TTAgMzM2bDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkuNyAwYzguMSAwIDE2LjIgMS42IDIzLjggNC42bDEzNy4xIDU0LjhjNy42IDMgMTUuNiA0LjYgMjMuOCA0LjZMMzg0IDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzM2em05Ni0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MHptMTA0LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzI4IDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMzE1LjUgOTMuMSAzMDQgNjcuMiAzMDQgNDAgMzA0IDI2LjcgMzE0LjcgMTYgMzI4IDE2ek02NCA0MGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0saUJyPWpIZSxzQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1oYWxmLWRhc2hlZCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5OCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI1NiAzODQgMCAwLTE0OS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0wIDM1MmwwIDY0IDY0IDAgMC02NC02NCAwek02NCA1MTJsMC02NC02NCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0em0zMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bC02NCAwIDAgNjR6bTY0LTE2MGwtNjQgMCAwIDY0IDY0IDAgMC02NHoiXX0sVUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im91dGRlbnQiLGljb246WzQ0OCw1MTIsWyJkZWRlbnQiXSwiZjAzYiIsIk0uNCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBDMTQuOCA5NiAuNCA4MS43IC40IDY0em0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNLjQgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TS43IDI2OC42Yy04LjItNi40LTguMi0xOC45IDAtMjUuM2wxMDEuOS03OS4zYzEwLjUtOC4yIDI1LjgtLjcgMjUuOCAxMi42bDAgMTU4LjZjMCAxMy4zLTE1LjMgMjAuOC0yNS44IDEyLjZMLjcgMjY4LjZ6Il19LG5Ccj1VSGUsb0JyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02MS4zIDUxLjJMMTQzLjkgMjQwIDc0LjEgMjQwIDIuNyA3Ni44Qy00LjQgNjAuNiAzIDQxLjggMTkuMiAzNC43UzU0LjIgMzUgNjEuMyA1MS4yem0yNyAyMjEuM2wtLjItLjUgOTUuOSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDY5LjUgNDUzLjVDNDUuNSA0MjkuNSAzMiAzOTYuOSAzMiAzNjNsMC0yN2MwLTMyLjcgMjQuNi01OS43IDU2LjMtNjMuNXoiXX0sbEJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS12aXJ1cyIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NCIsIk0zMjkuNyA0NDhjLTUuMSAwLTkuNyAzLjctOS43IDguOGwwIDcuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjMuNmMwLTEyLjYtNS4xLTI0LjUtMTMuMS0zNC4yLTMxLjgtMzguNy01MC45LTg4LjItNTAuOS0xNDIuMiAwLTEyMy43IDEwMC4zLTIyNCAyMjQtMjI0IDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMzUuOCA0Mi45YzcgOC40IDEwLjkgMTkuMSAxMC45IDMwLjEgMCAyNS45LTIxIDQ3LTQ3IDQ3bC0xIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zOC4zIDB6TTIyNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAyMi45LTI3LjcgMzQuNC00My45IDE4LjItOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMxNi4yIDE2LjIgNC43IDQzLjktMTguMiA0My45LTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRjMjIuOSAwIDM0LjQgMjcuNyAxOC4yIDQzLjktOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzE2LjItMTYuMiA0My45LTQuNyA0My45IDE4LjIgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIyLjkgMjcuNy0zNC40IDQzLjktMTguMiA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTE2LjItMTYuMi00LjctNDMuOSAxOC4yLTQzLjkgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTIyLjkgMC0zNC40LTI3LjctMTguMi00My45IDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTE2LjIgMTYuMi00My45IDQuNy00My45LTE4LjIgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0zMiA4OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGNCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem01MC43LTE4Ni45TDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4yIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sZEJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1uaWIiLGljb246WzUxMiw1MTIsWzEwMDAxXSwiZjVhZCIsIk0zNjguNSAxOC4zbC01MC4xIDUwLjEgMTI1LjMgMTI1LjMgNTAuMS01MC4xYzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny43IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yNzkuMyA5Ny4ybC0uNSAuMS0xNDQuMSA0My4yYy0xOS45IDYtMzUuNyAyMS4yLTQyLjMgNDFMMy44IDQ0NS44Yy0yLjkgOC43LTEuOSAxOC4yIDIuNSAyNkwxNjEuNyAzMTYuNGMtMS4xLTQtMS42LTguMS0xLjYtMTIuNCAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDhjLTQuMyAwLTguNS0uNi0xMi40LTEuNkw0MC4zIDUwNS43YzcuOCA0LjQgMTcuMiA1LjQgMjYgMi41bDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgLjEtLjUtMTM1LjUtMTM1LjV6Il19LHVCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93cy1kb3duIixpY29uOls1MTIsNTEyLFtdLCJlNTgxIiwiTTE4NS41IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6bTI0OCA3Mmw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDB6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sV0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtZmFzdCIsaWNvbjpbNTEyLDUxMixbOTE5NywiZmFzdC1mb3J3YXJkIl0sImYwNTAiLCJNMTkuOCA0NzcuNmMxMiA1IDI1LjcgMi4yIDM0LjktNi45TDIyNCAzMDEuMyAyMjQgNDQ4YzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlMNDQ4IDMwMS4zIDQ0OCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0Ni43LTE2OS40LTE2OS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMyMjQgNTEuMSAyMjQgNjRMMjI0IDIxMC43IDU0LjYgNDEuNGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMCA1MS4xIDAgNjRMMCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnoiXX0scEJyPVdIZSxmQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvcCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNSIsIk00NDggMTA5LjNsNTQuNi01NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQwMi43IDY0IDE3NiA2NCAxNzYgMTI4IDMzOC43IDEyOCAxMjggMzM4LjcgMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMTYyLjcgMCAyMTAuNy0yMTAuNyAwIDMwNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjc0Ljd6Il19LEdIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGlza2V5LWdsYXNzIixpY29uOls0NDgsNTEyLFsxMjkzNDcsImdsYXNzLXdoaXNrZXkiXSwiZjdhMCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE5MiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAyNTZsMC0xNjAgMzIwIDAgMCAxNjAtMzIwIDB6Il19LGhCcj1HSGUsbUJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0sWUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbiIsaWNvbjpbNTEyLDUxMixbMTI4NTEyLCJncmluIl0sImY1ODAiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGdCcj1ZSGUsYkJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY29udHJhY3QiLGljb246WzM4NCw1MTIsW10sImY1NmMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNzAuMyAxNjBjLTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMNjkuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40eiJdfSx4QnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtdXAiLGljb246WzM4NCw1MTIsWzg5NjNdLCJmMTA2IiwiTTE2OS40IDEzNy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMTkyIDIwNS4zIDU0LjYgMzQyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjB6Il19LEtIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlIixpY29uOls1MTIsNTEyLFsxMjg1NzgsInNtaWxlIl0sImYxMTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSx2QnI9S0hlLHlCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MtYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1NDQiLCJNMjA4IDQwLjFjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0ek04IDE0NC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em05Mi41IDE0MS40bDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDY2LjYgMjUxLjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHpNNjYuNiAyLjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMTAwLjUgMi43QzkxLjEtNi43IDc2LTYuNyA2Ni42IDIuN3pNMzUyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0yNDYuMiAzODRsMjUuOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDI1LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtNDMtMTI5IDQ4LjMgNjUuMWMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUM0MzQgMTMyIDM5NC4zIDExMiAzNTIgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZsNDguMy02NS4xLTQzIDEyOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xeiJdfSx3QnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGl2aWRlIixpY29uOls0NDgsNTEyLFsxMDEzNSwyNDddLCJmNTI5IiwiTTIyNCA0OGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTY4IDQwOGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LGtCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWZvcmsiLGljb246WzQ0OCw1MTIsW10sImUxM2IiLCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMi43Yy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTMyIDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTcwLjctMzIgMEM5OC4xIDI4OCA0OCAyMzcuOSA0OCAxNzZsMC0yMi43QzE5LjcgMTQxIDAgMTEyLjggMCA4MCAwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjA4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjQ4IDQzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxTQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZCIsIk00NzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI4My41IDU5LjFsMTAwLjUgOTYuOSAwIDM1Ni0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNDQtMTkuOSAwYy0xNS41IDAtMjguMS0xMi42LTI4LjEtMjguMSAwLTcuNiAzLjEtMTQuOSA4LjYtMjAuMkwyMjguNSA1OS4xQzIzNS45IDUyIDI0NS43IDQ4IDI1NiA0OHMyMC4xIDQgMjcuNSAxMS4xek0yMzIgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sRHk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY29sdW1ucyIsaWNvbjpbNTEyLDUxMixbImJhbmsiLCJpbnN0aXR1dGlvbiIsIm11c2V1bSIsInVuaXZlcnNpdHkiXSwiZjE5YyIsIk0yNzEuOSAyMC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOGMtMTIuNiA3LjItMTguOCAyMi0xNS4xIDM2UzE3LjUgMjA4IDMyIDIwOGwzMiAwIDAgMjA4IDAgMC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjA4IDMyIDBjMTQuNSAwIDI3LjItOS44IDMwLjktMjMuOHMtMi41LTI4LjgtMTUuMS0zNmwtMjI0LTEyOHpNNDAwIDIwOGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6TTI1NiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE1Ccj1EeSxDQnI9RHksekJyPUR5LF9Ccj1EeSxUQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVnIixpY29uOls1NzYsNTEyLFtdLCJlNTY5IiwiTTI0IDY0bDU2IDAgMCAzODQtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMzItOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBDMTAuNyAxMTIgMCAxMDEuMyAwIDg4UzEwLjcgNjQgMjQgNjR6bTEwNCAwbDMyMCAwIDAgMzg0LTMyMCAwIDAtMzg0ek01NzYgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwLTM4NCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxMQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1tZXJnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4NyIsIk04MCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTMyLjQgOTcuMmMyOC0xMi40IDQ3LjYtNDAuNSA0Ny42LTczLjIgMC00NC4yLTM1LjgtODAtODAtODBTMCAzNS44IDAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zQzE5LjcgMzcxIDAgMzk5LjIgMCA0MzIgMCA0NzYuMiAzNS44IDUxMiA4MCA1MTJzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtODYuNmMyNi43IDIwLjEgNjAgMzIgOTYgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDggNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBjLTMyLjggMC02MSAxOS43LTczLjMgNDhMMjA4IDI0MGMtNDkuOSAwLTkxLTM4LjEtOTUuNi04Ni44ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zNDQgMjcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LERCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS10c3VuYW1pIixpY29uOls2NDAsNTEyLFtdLCJlNTE1IiwiTTI4OCAxNkMxNTUuNSAxNiA0OCAxMjMuNSA0OCAyNTZTMTU1LjUgNDk2IDI4OCA0OTZjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0xNC41IDEwLjktMzIuNCAxOS43LTQ5LjUgMjUuOC0xNi44IDYtMzQuOSAxMC4xLTQ5LjkgMTAuMWwtLjEgMEMxMjguOSA1NDMuOSAwIDQxNSAwIDI1NiAwIDk2LjkgMTI4LjktMzIgMjg4LTMyIDMwMS4zLTMyIDMxMi0yMS4zIDMxMi04cy0xMC43IDI0LTI0IDI0em00NC44IDE2Ni40bDk2LTcyYzExLjQtOC41IDI3LjEtOC41IDM4LjUgMGw5NS41IDcyYzggNiAxMi43IDE1LjUgMTIuNyAyNS41bC4zIDEyMS41Yy0yLjIgMS4zLTQuMyAyLjYtNi40IDQuMi00LjMgMy4xLTguNyAuOC0xMy4yLTEuNWwtMS4yLS42LS43LS4zYy01LjQtMi43LTExLjctNi42LTE4LjktMTEuNy0yOS41LTIxLjEtNjQuMy0zMS42LTk5LjEtMzEuNC0zNC4xIC4yLTY4LjEgMTAuNy05NyAzMS40LTcuOCA1LjYtMTMuOCA5LjMtMTkuMyAxMS4yTDMyMCAyMDhjMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNnptNTQuNiAyMjkuN2MtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjEtMTA2IDAtMTkyLTg2LTE5Mi0xOTJTMTgyIDY0IDI4OCA2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NGM3LjQgMCAxOS43LTIuMyAzMy43LTcuMyAxMy44LTQuOSAyNy4xLTExLjcgMzYuNy0xOC45IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNS40IDExLjYgMzUuMyAyMS4xIDU1IDI0LjQgMTkuNSAzLjMgMzcgLjQgNTEuMS0xMC4yIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjcuMyAyMC41LTU5LjIgMjQtODcuOSAxOS4yLTI4LjUtNC44LTU1LjQtMTgtNzUuOS0zMy40LTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSwkQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1jaGFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMiIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6bS0zMTIgOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAtOTZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAgNjRsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LEFCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bWJyZWxsYSIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOSIsIk0yNTYtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyYzEyNi4zIDE1LjcgMjI0IDEyMy41IDIyNCAyNTQgMCAzLjgtLjEgNy41LS4yIDExLjMtLjMgNi45LTUgMTIuOC0xMS43IDE0LjdzLTEzLjgtLjctMTcuNi02LjVjLTE0LjQtMjEuNC0zOC44LTM1LjUtNjYuNS0zNS41LTI5LjMgMC01NC45IDE1LjctNjguOSAzOS4zLTIuNyA0LjYtNy42IDcuNi0xMyA3LjhzLTEwLjUtMi4yLTEzLjctNi41Yy0xNC42LTE5LjgtMzgtMzIuNi02NC41LTMyLjZzLTQ5LjkgMTIuOC02NC41IDMyLjZjLTMuMiA0LjMtOC4zIDYuOC0xMy43IDYuNXMtMTAuMi0zLjItMTMtNy44Yy0xNC0yMy42LTM5LjYtMzkuMy02OC45LTM5LjMtMjcuNyAwLTUyLjEgMTQuMS02Ni41IDM1LjUtMy45IDUuNy0xMSA4LjQtMTcuNiA2LjVTLjUgMjc0LjIgLjIgMjY3LjNDLjEgMjYzLjUgMCAyNTkuOCAwIDI1NiAwIDEyNS41IDk3LjcgMTcuNyAyMjQgMmwwLTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyIDM2MGwwIDEwMi42YzAgNDUtMzYuNSA4MS40LTgxLjQgODEuNC0zMC44IDAtNTktMTcuNC03Mi44LTQ1bC0yLjMtNC43Yy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45czM1LTEuNSA0Mi45IDE0LjNsMi4zIDQuN2MzIDUuOSA5IDkuNiAxNS42IDkuNiA5LjYgMCAxNy40LTcuOCAxNy40LTE3LjRMMjI0IDMyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxFQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1yb2Nrc2xpZGUiLGljb246WzU3Niw1MTIsW10sImU1MDgiLCJNMjUyLjQgMTAzLjhsMjcgNDhjMi44IDUgOC4yIDguMiAxMy45IDguMmw1My4zIDBjNS44IDAgMTEuMS0zLjEgMTMuOS04LjJsMjctNDhjMi43LTQuOSAyLjctMTAuOCAwLTE1LjdsLTI3LTQ4Yy0yLjgtNS04LjItOC4yLTEzLjktOC4ybC01My4zIDBjLTUuOCAwLTExLjEgMy4xLTEzLjkgOC4ybC0yNyA0OGMtMi43IDQuOS0yLjcgMTAuOCAwIDE1Ljd6TTY4LjMgODdDNDMuMSA2MS44IDAgNzkuNyAwIDExNS4zTDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguMyA4N3pNNTA0LjIgNDAzLjZjNC45IDIuNyAxMC44IDIuNyAxNS43IDBsNDgtMjdjNS0yLjggOC4yLTguMiA4LjItMTMuOWwwLTUzLjNjMC01LjgtMy4xLTExLjEtOC4yLTEzLjlsLTQ4LTI3Yy00LjktMi43LTEwLjgtMi43LTE1LjcgMGwtNDggMjdjLTUgMi44LTguMiA4LjItOC4yIDEzLjlsMCA1My4zYzAgNS44IDMuMSAxMS4xIDguMiAxMy45bDQ4IDI3ek0xOTIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LElCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNlY3JldCIsaWNvbjpbNDQ4LDUxMixbMTI4MzczXSwiZjIxYiIsIk0xNzEtMTZjLTM2LjQgMC01Ny44IDU4LjMtNjguMyAxMTJMNzIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyYzAgMTcgMy4zIDMzLjIgOS4zIDQ4bC05LjMgMCAwIDAtMjAuNSAwYy0xNS4yIDAtMjcuNSAxMi4zLTI3LjUgMjcuNSAwIDMgLjUgNS45IDEuNCA4LjdsMjguOSA4Ni42QzQwLjIgMzc5LjYgMTYgNDI4LjEgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTU0LjItMjQuMi0xMDIuNy02Mi4zLTEzNS40bDI4LjktODYuNmMuOS0yLjggMS40LTUuNyAxLjQtOC43IDAtMTUuMi0xMi4zLTI3LjUtMjcuNS0yNy41bC0yMC41IDAgMCAwLTkuMyAwYzYtMTQuOCA5LjMtMzEgOS4zLTQ4bDAtMzIgMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzAuNyAwYy0xMC40LTUzLjctMzEuOS0xMTItNjguMy0xMTItOS42IDAtMTkgMy45LTI3LjUgOC4yLTguMiA0LjEtMTguNCA3LjgtMjUuNSA3LjhzLTE3LjMtMy43LTI1LjUtNy44QzE5MC0xMi4xIDE4MC42LTE2IDE3MS0xNnptOTMuNyA0ODQuNGwtMjQuOC03MC45IDI3LjktMzIuNWMyLjctMy4yIDQuMi03LjIgNC4yLTExLjQgMC05LjctNy44LTE3LjUtMTcuNS0xNy41bC02MSAwYy05LjcgMC0xNy41IDcuOC0xNy41IDE3LjUgMCA0LjIgMS41IDguMiA0LjIgMTEuNGwyNy45IDMyLjUtMjQuOCA3MC45LTU3LTE4MC40IDM1LjcgMGMxOC40IDEwLjIgMzkuNSAxNiA2MiAxNnM0My42LTUuOCA2Mi0xNmwzNS43IDAtNTcgMTgwLjR6TTIyNCAyNTZjLTM0LjcgMC02NC4yLTIyLjEtNzUuMy01MyA1LjcgMy4yIDEyLjMgNSAxOS4zIDVsMTIuNCAwYzE2LjUgMCAzMS4xLTEwLjYgMzYuMy0yNi4yIDIuMy03IDEyLjItNyAxNC41IDAgNS4yIDE1LjYgMTkuOSAyNi4yIDM2LjMgMjYuMmwxMi40IDBjNyAwIDEzLjYtMS44IDE5LjMtNS0xMS4xIDMwLjktNDAuNiA1My03NS4zIDUzeiJdfSxQQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFnZXIiLGljb246WzUxMiw1MTIsWzEyODIyM10sImY4MTUiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSxOQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZWZjYXNlIixpY29uOls1MTIsNTEyLFsxMjgxODhdLCJmMGIxIiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MGwwIDk2IDUxMiAwIDAtOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTUxMiAzMDRsLTE5MiAwIDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtMTkyIDAgMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMTJ6Il19LE9Ccj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cm93ZWwtYnJpY2tzIixpY29uOls1MTIsNTEyLFtdLCJlNThhIiwiTTIyNCAzMmMwLTExLjUtNi4yLTIyLjItMTYuMi0yNy44cy0yMi4zLTUuNS0zMi4yIC40bC0xNjAgOTZDNS45IDEwNi4zIDAgMTE2LjggMCAxMjhzNS45IDIxLjcgMTUuNSAyNy40bDE2MCA5NmM5LjkgNS45IDIyLjIgNi4xIDMyLjIgLjRTMjI0IDIzNS41IDIyNCAyMjRsMC02NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjU2IDAgMC02NHptOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwek0wIDQxNmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTIyNC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMHoiXX0sUkJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvY2tzIixpY29uOls1MTIsNTEyLFsxMjk1MTBdLCJmNjk2IiwiTTI1Mi44IDBMMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTEyIDAgMC0xNmMwLTE3LjUgNC43LTMzLjkgMTIuOC00OHpNMTI4IDExMmwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAxNS40IDAgMzAuNS0zLjcgNDQtMTAuNy0xNy42LTIzLjktMjgtNTMuNC0yOC04NS4zIDAtNDUuMyAyMS4zLTg4IDU3LjYtMTE1LjJsNjQtNDhjNC0zIDYuNC03LjggNi40LTEyLjhsMC0xMjgtMTEyIDB6bTE2MCAwbDAgMTI4YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4Yy0yNC4yIDE4LjEtMzguNCA0Ni42LTM4LjQgNzYuOCAwIDUzIDQzIDk2IDk2IDk2IDIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDExNS4yLTg2LjRDNDYxIDM4Mi4yIDQ4MCAzNDQuMyA0ODAgMzA0bDAtMTkyLTE5MiAwek00ODAgNjRsMC0xNmMwLTI2LjUtMjEuNS00OC00OC00OEwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNiAxOTIgMHoiXX0sRkJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InQiLGljb246WzM4NCw1MTIsWzExNl0sIjU0IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwxMjggMCAwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxCQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9jaGlwIixpY29uOls1MTIsNTEyLFtdLCJmMmRiIiwiTTE3NiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNTYgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMzNS4zIDAgNjQtMjguNyA2NC02NGw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtNTYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDBjMC0zNS4zLTI4LjctNjQtNjQtNjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MHpNMTYwIDEyOGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNiA0OGwwIDE2MCAxNjAgMCAwLTE2MC0xNjAgMHoiXX0sWkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1lZGljYWwiLGljb246WzU3Niw1MTIsWzEyODY1NywiYW1idWxhbmNlIl0sImYwZjkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTc2IDEzNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sSEJyPVpIZSxxQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib20iLGljb246WzU3Niw1MTIsWzEyODMyOV0sImY2NzkiLCJNMzg4LjcgNC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDE2IDE2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC0xNiAxNmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTE2LTE2Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNmwxNi0xNnpNMTc2IDE2MGMtMTAuOCAwLTIwLjggMy42LTI4LjggOS42LTE0LjEgMTAuNi0zNC4yIDcuOC00NC44LTYuNHMtNy44LTM0LjIgNi40LTQ0LjhjMTguNy0xNC4xIDQyLTIyLjQgNjcuMi0yMi40IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyIDAgMTcuMi0zLjkgMzMuNS0xMC44IDQ4bDQ5LjcgMGMxMi43IDAgMjQuOS01IDMzLjktMTQuMWwyMC43LTIwLjdjMTguNy0xOC43IDQ0LjEtMjkuMyA3MC42LTI5LjMgNTUuMiAwIDk5LjkgNDQuNyA5OS45IDk5LjlsMCA5Ni4xYzAgNTUuMi00NC44IDEwMC0xMDAgMTAwUzM1MiA0NDMuMiAzNTIgMzg4bDAtNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNGMwIDE5LjkgMTYuMSAzNiAzNiAzNnMzNi0xNi4xIDM2LTM2bDAtOTYuMWMwLTE5LjgtMTYuMS0zNS45LTM1LjktMzUuOS05LjUgMC0xOC42IDMuOC0yNS40IDEwLjVsLTIwLjcgMjAuN2MtMjEgMjEtNDkuNCAzMi44LTc5LjEgMzIuOGwtMjYuOCAwYzEyLjYgMTkuNiAxOS45IDQyLjggMTkuOSA2OCAwIDc1LjItNjUgMTMyLTE0MCAxMzJTNDAgNDYzLjIgNDAgMzg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJjMCAzNS4zIDMxLjcgNjggNzYgNjhzNzYtMzIuNyA3Ni02OC0zMS43LTY4LTc2LTY4bC0yMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6TTMzNy4xIDYwLjFjLTExLTEzLjgtMzEuMS0xNi4yLTQ1LTUuMnMtMTYuMiAzMS4xLTUuMiA0NUMzMTIuNiAxMzIuMiAzNTQuNCAxNTIgNDAwIDE1MnM4Ny40LTE5LjggMTEzLjEtNTIuMWMxMS0xMy44IDguNy0zNC01LjItNDVzLTM0LTguNy00NSA1LjJDNDUwLjMgNzYgNDI3LjUgODggNDAwIDg4cy01MC4zLTEyLTYyLjktMjcuOXoiXX0sVkJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1aXRvLW5ldCIsaWNvbjpbNjQwLDUxMixbXSwiZTUyYyIsIk01NzYgMzUyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDQ4IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCAxNi0uMSAyLjVDNTk4LjYgNTY2LjYgNTg4LjQgNTc2IDU3NiA1NzZzLTIyLjYtOS40LTIzLjktMjEuNWwtLjEtMi41IDAtMTYtNDggMCAwIDE2LS4xIDIuNUM1MDIuNiA1NjYuNiA0OTIuNCA1NzYgNDgwIDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC00OC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgNDggMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MjkuOSAxNi4zYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCAzLjktLjQgNy43LS45IDExLjUtNy4zLTMuNS0xNS4zLTUuOC0yMy44LTYuN0w1NzYgMzA0Yy0xOC41IDAtMzUuMyA3LTQ4IDE4LjQtMTEtOS45LTI1LjEtMTYuNS00MC42LTE4LjFMNDgwIDMwNGMtMzAuMyAwLTU2LjEgMTguNy02Ni44IDQ1LjItMTIuNSA1LTIzLjIgMTMuNC0zMS4xIDI0bC0zMC4yLTQwLjEgMCA3NC43YzAgMTcuNy0xNC4zIDMyLTMyIDMyLTE2LjYgMC0zMC4yLTEyLjYtMzEuOC0yOC43bC0uMi0zLjMgMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMmMtNy41IDkuNi0yMSAxMi4xLTMxLjMgNS4zLTEwLjMtNi44LTEzLjctMjAuNS04LjMtMzEuNWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC43LTM4LjMtMi40LTIuNGMtNS4yLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjItMi4xYy01LjctMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44IC4yLTMuMmMxLjEtMTAuNCA3LjItMTkuNCAxNS44LTI0LjRsMC02MC41IC4zLTMuMmMxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjggNy43IDAgMTQuMiA1LjUgMTUuNyAxMi44bC4zIDMuMiAwIDYwLjVjOC43IDUgMTQuOCAxNCAxNS44IDI0LjRsLjIgMy4yIDAgMjguOSA1My40LTQ1LjctMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMnpNNTA0IDQ4OGw0OCAwIDAtNDgtNDggMCAwIDQ4eiJdfSxqQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uLWJvdHRsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjQ4NSIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnpNMzIgMTQ0bDMyMCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNjR6Il19LFFIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1nZWFyIixpY29uOls2NDAsNTEyLFsidXNlcnMtY29nIl0sImY1MDkiLCJNMzIwIDIyNGExMDQgMTA0IDAgMSAwIDAtMjA4IDEwNCAxMDQgMCAxIDAgMCAyMDh6TTk2IDIzMmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHpNMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjQtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwek0xNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTU2LjggMGMtNy4xLTIxLjYtNi4zLTQ0LjQgMTAuNy02NC0xNC0xNi4yLTIwLjUtMzkuNy0xMS40LTYzLjMgNi42LTE3LjEgMTUuOS0zMy4xIDI3LjQtNDcuMyA1LjQtNi42IDExLjYtMTEuNyAxOC4zLTE1LjQtMjIuMS0xMS41LTQ3LjItMTgtNzMuOC0xOC04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHptNDY0LjYtNDQuMWM2LjMtMy42IDkuNS0xMS4xIDYuOC0xOC00LjgtMTIuNC0xMS41LTI0LjEtMTkuOS0zNC40LTQuNi01LjctMTIuNy02LjctMTktMy0yMS44IDEyLjYtNDguNi0yLjgtNDguNi0yOC4xIDAtNy4zLTQuOS0xMy44LTEyLjEtMTQuOS0xMi45LTItMjYuOC0yLTM5LjcgMC03LjIgMS4xLTEyLjEgNy42LTEyLjEgMTQuOSAwIDI1LjItMjYuOCA0MC43LTQ4LjYgMjguMS02LjMtMy42LTE0LjQtMi42LTE5IDMtOC40IDEwLjMtMTUuMSAyMi0xOS45IDM0LjQtMi42IDYuOCAuNSAxNC4zIDYuOCAxNy45IDIxLjkgMTIuNiAyMS45IDQzLjUgMCA1Ni4yLTYuMyAzLjYtOS41IDExLjEtNi44IDE3LjkgNC44IDEyLjQgMTEuNSAyNC4xIDE5LjkgMzQuNCA0LjYgNS43IDEyLjcgNi43IDE5IDMgMjEuOC0xMi42IDQ4LjYgMi45IDQ4LjYgMjguMSAwIDcuMyA0LjkgMTMuOCAxMi4xIDE0LjkgMTIuOSAyIDI2LjggMiAzOS43IDAgNy4yLTEuMSAxMi4xLTcuNiAxMi4xLTE0LjkgMC0yNS4yIDI2LjgtNDAuNyA0OC42LTI4LjEgNi4zIDMuNiAxNC40IDIuNiAxOS0zIDguNC0xMC4zIDE1LjEtMjIgMTkuOS0zNC40IDIuNi02LjgtLjUtMTQuMy02LjgtMTcuOS0yMS45LTEyLjYtMjEuOS00My41IDAtNTYuMnpNNDcyIDQxNmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxVQnI9UUhlLFdCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NSIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEdCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXVzZSIsaWNvbjpbMzg0LDUxMixbOTIwOF0sImYwNGMiLCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyem0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzNTJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHoiXX0sVl89e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhZmYtc25ha2UiLGljb246WzQ0OCw1MTIsWyJyb2QtYXNjbGVwaXVzIiwicm9kLXNuYWtlIiwic3RhZmYtYWVzY3VsYXBpdXMiXSwiZTU3OSIsIk0xOTIgMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjQgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMTYgMCAwLTY0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMCAxOTIgMzIgMGM1MyAwIDk2IDQzIDk2IDk2IDAgNDcuNi0zNC42IDg3LjEtODAgOTQuN2wwLTY3YzkuNi01LjUgMTYtMTUuOSAxNi0yNy43IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjQtMzIgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04Ny4xIDgwLTk0LjdsMCA2N2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjcgMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTE5Mi03Mi42IDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJsLTE2IDBDMjEuNSAxMjggMCAxMDYuNSAwIDgwUzIxLjUgMzIgNDggMzJsMTQ0IDB6Il19LFlCcj1WXyxLQnI9Vl8sWkJyPVZfLFFCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWdneS1iYW5rIixpY29uOls1NzYsNTEyLFtdLCJmNGQzIiwiTTI4OC0zMmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNNDggMzA0YzAtNzAuMSA0Ny0xMzEuNCAxMTcuMS0xNjQuOSAyNS4zIDQxLjMgNzAuOSA2OC45IDEyMi45IDY4LjkgNTUuNyAwIDEwNC4xLTMxLjcgMTI4LTc4IDE1LjgtMTEuMyAzNS4xLTE4IDU2LTE4bDE5LjUgMGMxMC40IDAgMTggOS44IDE1LjUgMTkuOWwtMTcuMSA2OC4zYzkuOSAxMi40IDE4LjIgMjUuNyAyNC40IDM5LjhsMjEuNyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNi41IDIyLTM4LjUgMzkuNi02NCA1MC43bDAgMjkuM2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzMgMGMtMTQuMyAwLTI2LjgtOS41LTMwLjgtMjMuMmwtNy4xLTI0LjgtODIuMyAwLTcuMSAyNC44QzIzNS44IDUwMi41IDIyMy4zIDUxMiAyMDkgNTEybC0zMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI5LjNDODcuNSA0MjYgNDggMzY5LjYgNDggMzA0em0zNzYgMTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxYQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9udW1lbnQiLGljb246WzM4NCw1MTIsW10sImY1YTYiLCJNMjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw5NSA0N2MtNC4xIDQuMS02LjUgOS40LTcgMTUuMUw1OC40IDQ0OCA0OCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjQgMC0yOS43LTM4NS44Yy0uNC01LjctMi45LTExLjEtNy0xNS4xTDIwOS0zM3pNMTI4IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sWEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy1yaWdodCIsaWNvbjpbNDQ4LDUxMixbMTg3LCJhbmdsZS1kb3VibGUtcmlnaHQiXSwiZjEwMSIsIk00MzkuMSAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzcxLjIgMjU2IDIzMy45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bS0zNTIgMTYwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE3OS4yIDI1NiA0MS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSxKQnI9WEhlLGlUPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRlc2t0b3AiLGljb246WzUxMiw1MTIsWzEyODQyMSw2MTcwNCwiZGVza3RvcC1hbHQiXSwiZjM5MCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0NCAwLTE2IDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAtMTYtNDggMTQ0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDk2bDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGVIcj1pVCx0SHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTU3IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sckhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJldHdlZXQiLGljb246WzU3Niw1MTIsW10sImYwNzkiLCJNMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsMzIgMCAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yMjQgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHpNNDU3LjQgNDcwLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNTU2LjkgMzUyIDU0NCAzNTJsLTMyIDAgMC0yMjRjMC01My00My05Ni05Ni05NkwyODggMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjQtMzIgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjR6Il19LEpIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdlYXIiLGljb246WzY0MCw1MTIsWyJ1c2VyLWNvZyJdLCJmNGZlIiwiTTI1Ni41IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNyAzMDRsNTkuNCAwIDEuNSAwYy0xMi45IDI2LjgtNy44IDU4LjIgMTEuNSA3OS41LTIwLjIgMjIuMy0yNC44IDU1LjgtOS40IDgzLjRsMjIuNSA0MC40Yy45IDEuNiAxLjkgMy4yIDIuOSA0LjdsLTIzNyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3ptMjA1LjktNTYuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNi4xYzAgMTguOSAyNC4xIDMyLjggNDAuNSAyMy40bDUtMi45YzExLjYtNi43IDI2LjUtMi42IDMzIDkuMWwyMi40IDQwLjJjNi4yIDExLjIgMi42IDI1LjItOC4yIDMybC00LjcgMi45Yy0xNi4yIDEwLjEtMTYuMiAzOS45IDAgNTAuMWw0LjYgMi45YzEwLjggNi44IDE0LjUgMjAuOCA4LjMgMzJMNjA3IDQ4My44Yy02LjUgMTEuNy0yMS40IDE1LjktMzMgOS4xbC00LjktMi45Yy0xNi40LTkuNS00MC41IDQuNS00MC41IDIzLjRsMCA2LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNS45YzAtMTktMjQuMi0zMy00MC43LTIzLjVsLTQuOCAyLjhjLTExLjYgNi43LTI2LjQgMi42LTMzLTkuMWwtMjIuNi00MC40Yy02LjItMTEuMi0yLjYtMjUuMyA4LjMtMzIuMWw0LjQtMi43YzE2LjMtMTAuMSAxNi4zLTQwLjEgMC01MC4ybC00LjUtMi44Yy0xMC45LTYuOC0xNC41LTIwLjktOC4zLTMyLjFsMjIuNS00MC4zYzYuNS0xMS43IDIxLjQtMTUuOCAzMi45LTkuMWw0LjggMi44YzE2LjUgOS41IDQwLjctNC41IDQwLjctMjMuNWwwLTUuOXptOTkuOSAxMzYuMmE1MiA1MiAwIDEgMCAtMTA0IDAgNTIgNTIgMCAxIDAgMTA0IDB6Il19LGFIcj1KSGUsaUhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci1hbGwiLGljb246WzQ0OCw1MTIsW10sImY4NGMiLCJNMzg0IDk2bDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwem0wIDE5MmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHpNMTkyIDIyNGwtMTI4IDAgMC0xMjggMTI4IDAgMCAxMjh6TTY0IDI4OGwxMjggMCAwIDEyOC0xMjggMCAwLTEyOHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sc0hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvaW5zIixpY29uOls1MTIsNTEyLFtdLCJmNTFlIiwiTTEyOCA5NmwwLTE2YzAtNDQuMiA4Ni04MCAxOTItODBTNTEyIDM1LjggNTEyIDgwbDAgMTZjMCAzMC42LTQxLjMgNTcuMi0xMDIgNzAuNy0yLjQtMi44LTQuOS01LjUtNy40LTgtMTUuNS0xNS4zLTM1LjUtMjYuOS01Ni40LTM1LjUtNDEuOS0xNy41LTk2LjUtMjcuMS0xNTQuMi0yNy4xLTIxLjkgMC00My4zIDEuNC02My44IDQuMS0uMi0xLjMtLjItMi43LS4yLTQuMXpNNDMyIDM1M2wwLTQ2LjJjMTUuMS0zLjkgMjkuMy04LjUgNDIuMi0xMy45IDEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6bTAtOTZsMC0zM2MwLTQuNS0uNC04LjgtMS0xMyAxNS41LTMuOSAzMC04LjYgNDMuMi0xNC4yczI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6TTAgMjQwbDAtMTZjMC00NC4yIDg2LTgwIDE5Mi04MHMxOTIgMzUuOCAxOTIgODBsMCAxNmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMjg0LjIgMCAyNDB6bTM4NCA5NmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMzgwLjIgMCAzMzZsMC0xNS40YzExLjYgOC4xIDI0LjUgMTQuNyAzNy44IDIwLjMgNDEuOSAxNy41IDk2LjUgMjcuMSAxNTQuMiAyNy4xczExMi4zLTkuNyAxNTQuMi0yNy4xYzEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40em0wIDgwLjZsMCAxNS40YzAgNDQuMi04NiA4MC0xOTIgODBTMCA0NzYuMiAwIDQzMmwwLTE1LjRjMTEuNiA4LjEgMjQuNSAxNC43IDM3LjggMjAuMyA0MS45IDE3LjUgOTYuNSAyNy4xIDE1NC4yIDI3LjFzMTEyLjMtOS43IDE1NC4yLTI3LjFjMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM3oiXX0sbkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlIixpY29uOls1NzYsNTEyLFs5ODk0XSwiZjIyOSIsIk00MTYtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTAuNyAwLTU4LjcgNTguNy0xNy40LTE3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE3LjQgMTcuNC0yMyAyM2MtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMS05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzZjMC0zNy0xMS40LTcxLjQtMzEtOTkuOGwyMy0yMyAxNy40IDE3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w0NTMuMyAxMzYgNTEyIDc3LjMgNTEyIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDU3NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQxNi0zMnpNMTI4IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAweiJdfSxlcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLWFuZ2xlIixpY29uOls1NzYsNTEyLFsiaGFuZHMtaGVscGluZyJdLCJmNGM0IiwiTTI2OC45IDUzLjJMMTUyLjMgMTgyLjhjLTQuNiA1LjEtNC40IDEzIC41IDE3LjkgMzAuNSAzMC41IDgwIDMwLjUgMTEwLjUgMGwzMS44LTMxLjhjNC4yLTQuMiA5LjUtNi41IDE0LjktNi45IDYuOC0uNiAxMy44IDEuNyAxOSA2LjlMNTA1LjYgMzQ0IDU3NiAyODggNTc2IDAgNDY0IDY0IDQ0MC4yIDQ4LjFDNDI0LjQgMzcuNiA0MDUuOSAzMiAzODYuOSAzMmwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE1MC43TDIyMy40IDMyIDE4My44IDMyYy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwwIDE5MiAwIDU0NCAxNDQgNDA4IDE1Ni40IDQxOC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0MDljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSxvSHI9ZXFlLGxIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duIixpY29uOlszODQsNTEyLFs4NTk1XSwiZjA2MyIsIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuNy0xMDUuNC0xMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sdHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWRvdCIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXItYWx0Il0sImYzYzUiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMFMzODQgODQuNCAzODQgMTg4LjZjMCAxMTkuMy0xMjAuMiAyNjIuMy0xNzAuNCAzMTYuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6Il19LGNIcj10cWUsZEhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTVkIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LHVIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb29raWUtYml0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjU2NCIsIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjYtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45LS45LTUuMy01LjMtOS4zLTEwLjYtMTAuMS01MS41LTguMi05Mi44LTQ3LjEtMTA0LjUtOTcuNC0xLjgtNy42LTgtMTMuNC0xNS43LTE0LjYtNTQuNi04LjctOTcuNy01Mi0xMDYuMi0xMDYuOHpNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0scnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyLXdyZW5jaCIsaWNvbjpbNTc2LDUxMixbInRvb2xzIl0sImY3ZDkiLCJNNzAuOC02LjdjNS40LTUuNCAxMy44LTYuMiAyMC4yLTJMMjA5LjkgNzAuNWM4LjkgNS45IDE0LjIgMTUuOSAxNC4yIDI2LjZsMCA0OS42IDkwLjggOTAuOGMzMy4zLTE1IDczLjktOC45IDEwMS4yIDE4LjVMNTQyLjIgMzgyLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTYwLjEgNjAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjg4LjEgMzg0Yy0yNy40LTI3LjQtMzMuNS02Ny45LTE4LjUtMTAxLjJsLTkwLjgtOTAuOC00OS42IDBjLTEwLjcgMC0yMC43LTUuMy0yNi42LTE0LjJMMjMuNCA1OC45Yy00LjItNi4zLTMuNC0xNC44IDItMjAuMkw3MC44LTYuN3ptMTQ1IDMwMy41Yy02LjMgMzYuOSAyLjMgNzUuOSAyNi4yIDEwNy4ybC05NC45IDk1Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44bDEzNS40LTEzNS41IDM1LjIgMzUuMXpNMzg0LjEgMGMyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFMMzg4LjggOTEuM2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w1Ni43LTU2LjdjNy42LTcuNSAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDQzLjItMTcuMiA4Mi4zLTQ1IDExMS4xbC00OS4xLTQ5LjFjLTMzLjEtMzMtNzguNS00NS43LTEyMS4xLTM4LjRsLTU2LjgtNTYuOCAwLTI5LjctLjItNWMtLjgtMTIuNC00LjQtMjQuMy0xMC41LTM0LjkgMjkuNC0zNSA3My40LTU3LjIgMTIyLjctNTcuM3oiXX0scEhyPXJxZSxmSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kZW50IixpY29uOls0NDgsNTEyLFtdLCJmMDNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTEyNy44IDI2OC42TDI1LjggMzQ3LjlDMTUuMyAzNTYuMSAwIDM0OC42IDAgMzM1LjNMMCAxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zeiJdfSxhcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycyIsaWNvbjpbNDQ4LDUxMixbIm5hdmljb24iXSwiZjBjOSIsIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxoSHI9YXFlLGlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1wcmF5aW5nIixpY29uOls2NDAsNTEyLFsicHJheWluZy1oYW5kcyJdLCJmNjg0IiwiTTIyNCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTIuNiA4OC4yLTExOS43YzEzLjEtMTcuOCA5LjMtNDIuOC04LjUtNTUuOXMtNDIuOC05LjMtNTUuOSA4LjVMMTA2LjUgMTQyLjlDODkuMyAxNjYuMiA4MCAxOTQuNSA4MCAyMjMuNmwwIDExMC43LTU4LjEgMTkuNEM4LjggMzU4IDAgMzcwLjIgMCAzODRsMCA5NmMwIDEwIDQuNyAxOS41IDEyLjcgMjUuNXMxOC40IDggMjguMSA1LjJsMTU0LjQtNDQuMWM1NS0xNS43IDkyLjgtNjUuOSA5Mi44LTEyMy4xTDI4OCAyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA3MnptMTkyIDBsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExOS42YzAgNTcuMiAzNy45IDEwNy40IDkyLjggMTIzLjFsMTU0LjQgNDQuMWM5LjcgMi44IDIwIC44IDI4LjEtNS4yUzY0MCA0OTAgNjQwIDQ4MGwwLTk2YzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC01OC4xLTE5LjQgMC0xMTAuN2MwLTI5LTkuMy01Ny4zLTI2LjUtODAuN0w0NDAuMiAxNi4zQzQyNy4xLTEuNSA0MDIuMS01LjMgMzg0LjMgNy44cy0yMS42IDM4LjEtOC41IDU1LjlMNDY0IDE4My40IDQ2NCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LG1Icj1pcWUsZ0hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzZXMiLGljb246WzY0MCw1MTIsW10sImUwNzYiLCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAzMC41IDM2LjkgNDUuOCA1OC41IDI0LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjEuNiAyMS42LTYuMyA1OC41IDI0LjIgNTguNSAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmMtMzAuNSAwLTQ1LjggMzYuOS0yNC4yIDU4LjUgMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBjLTIxLjYtMjEuNi01OC41LTYuMy01OC41IDI0LjIgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0zMC41LTM2LjktNDUuOC01OC41LTI0LjItMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNDNzcuOCAyNjAuOSA2Mi41IDIyNCAzMiAyMjQgMTQuMyAyMjQgMCAyMDkuNyAwIDE5MnMxNC4zLTMyIDMyLTMyYzMwLjUgMCA0NS44LTM2LjkgMjQuMi01OC41LTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBDMTIzLjEgNzcuOCAxNjAgNjIuNSAxNjAgMzIgMTYwIDE0LjMgMTc0LjMgMCAxOTIgMHpNMTQ0IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEyOCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yNDggNDBjMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTUwNCAzODRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sYkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1mbGFnIixpY29uOls1NzYsNTEyLFtdLCJlNTZlIiwiTTI1Ni04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTcyIDAgMCAxOS4yIDEyOCA3Ni44IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyOC03Ni44IDAtOTEuMnpNMjQwIDM4NGwwIDgwIDk2IDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMTEyIDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTIyNCAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0seEhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWRlbWFyayIsaWNvbjpbNjQwLDUxMixbODQ4Ml0sImYyNWMiLCJNMzQ2LjYgMTEwLjJjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzI4OCAxMTMuOSAyODggMTI4bDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNTAuMyA2OS40IDEwNC4xYzUuOSA4LjkgMTUuOSAxNC4yIDI2LjYgMTQuMnMyMC43LTUuMyAyNi42LTE0LjJMNTQ0IDIzMy43IDU0NCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NmMwLTE0LjEtOS4yLTI2LjUtMjIuNy0zMC42cy0yOC4xIDEuMS0zNS45IDEyLjlMNDQ4IDI2Mi4zIDM0Ni42IDExMC4yek0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmw2NCAwIDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA5NnoiXX0sdkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtYnVybmVyIixpY29uOls1MTIsNTEyLFtdLCJlNGYxIiwiTTI4MS43IDQ4LjNMMjk0IDM0LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNMzIwIDI0MC4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNOTIuOCAzMjBjMzcuNyA0OC4zIDk2LjEgODAgMTYzLjIgODAgNjYuNSAwIDEyNS4xLTMxLjcgMTYzLTgwbDQ1IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDQuOCAwek00NTYgNDAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LHNxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSx5SHI9c3FlLHdIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImU1N2YiLCJNLS41IDExM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNzItNzJjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMSAzMSAzMTAuMSAwIDU0LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwLS4xIDAtMjYyIDAgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNzItNzJ6TTM3LjEgNDc2TDYwLjMgMjkyLjZjMS4yLTkuNyA2LjgtMTguMyAxNS4xLTIzLjNMMjM4LjggMTcwYzEwLjItNi4yIDIyLjktNi4yIDMzLjEtLjFsMTY1LjUgOTkuNGM4LjQgNSAxNCAxMy43IDE1LjMgMjMuNEw0NzUuOSA0NzZjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2bC03MS45IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdMMjc1LjQgMzU3LjljLTEuOC0zLjYtNS41LTUuOS05LjUtNS45LTUuOSAwLTEwLjYgNC43LTEwLjYgMTAuNmwwIDExNy40YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY4LjggNTEyYy0xOS4zIDAtMzQuMi0xNi45LTMxLjctMzZ6Il19LGtIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3V0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRkNyIsIk01MTIgOTZjMCA1MC4yLTU5LjEgMTI1LjEtODQuNiAxNTUtMy44IDQuNC05LjQgNi4xLTE0LjUgNUwzMjAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTI3Ni40IDBjOC43LTkuOSAxOS4zLTIyLjYgMzAtMzYuOCA2LjMtOC40IDEyLjgtMTcuNiAxOS0yNy4yTDQxNiA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZsMzkuOCAwYy0yMS0zMS41LTM5LjgtNjcuNy0zOS44LTk2IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6TTExNy4xIDQ4OS4xYy0zLjggNC4zLTcuMiA4LjEtMTAuMSAxMS4zbC0xLjggMi0uMi0uMmMtNiA0LjYtMTQuNiA0LTIwLTEuOC0yNS4yLTI3LjQtODUtOTcuOS04NS0xNDguNCAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMzAtMjEuMSA2Ny00My41IDk3LjktMTAuNyAxNC43LTIxLjcgMjgtMzAuOCAzOC41bC0uNiAuN3pNMTI4IDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sbnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy11cCIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS11cCJdLCJmMTAyIiwiTTIxNC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAzMjkuNCAyNDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwem0xNjAgMzUybC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMzAxLjMgMzI5LjQgNDM4LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM3oiXX0sU0hyPW5xZSxNSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVja2V0IixpY29uOls0NDgsNTEyLFtdLCJlNGNmIiwiTTQ0My43IDIwOGMyLjcgNC43IDQuMyAxMC4yIDQuMyAxNiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNS4xIDAtMjIuNCAyMTNjLTIuNiAyNC40LTIzLjIgNDMtNDcuOCA0M2wtMjMzLjYgMGMtMjQuNiAwLTQ1LjItMTguNS00Ny44LTQzTDM3LjEgMjU2IDMyIDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01LjggMS42LTExLjMgNC4zLTE2bDQzOS40IDB6TTIyNC0xNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDMyLTQ4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLTQ4IDAgMC0zMkM4MCA0OC41IDE0NC41LTE2IDIyNC0xNnoiXX0sQ0hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzNyIsIk00MjYuMSA5NC40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJsLTM4NCAxMjhDOC44IDE2NiAwIDE3OC4yIDAgMTkyczguOCAyNiAyMS45IDMwLjRsMzg0IDEyOGMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwxMzMuMiAxOTIgNDI2LjEgOTQuNHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnoiXX0sekhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2IDUxMiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0yODhMMCAxNjAgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTZ6Il19LF9Icj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tdGhyb3VnaC13aW5kb3ciLGljb246WzY0MCw1MTIsW10sImU1YTkiLCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNC02MC41IDI0LjItMTAwLjEgODIuNy0xMDAuMSAxNDcuOWwwIDczLjgtNjQgMCAwLTMyMHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNCA0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC0yNi42IDAgNDIuNyA2NCAxNTAuOSAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRsLTg0LjItMTI2LjIgNzQuNiAwIDQwIDQ4em0tMTU5LjUgMGwtNzMuNSAwIDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LFRIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2ZiIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzMgMCA2MC4yIDI1IDYzLjYgNTcuMi0xNC43LTUuOS0zMC44LTkuMi00Ny42LTkuMi03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTMzMi4zIDM0MS41Yy02LTMuNS0xMi45LTUuNS0yMC4zLTUuNWwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA4OCA5NiAwIDAtNjQuMWMwLTIwLjggNC40LTQwLjUgMTIuMy01OC40ek0xMTIgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0yMjQtNDhhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01NjAgMzUybDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMHptLTExMiAyLjdsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjN6Il19LExIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1M2IiLCJNMjA0IDQwLjFjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0ek00IDE0NC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek05Ni41IDI4NS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMOTYuNSAyODUuNXpNNjIuNiAyLjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNjIuNiAzNi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNMzUyLjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTQ3OC43IDI5OS4xbC00Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3NS4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjUuMi0zMy45IDY1LTUzLjkgMTA3LjItNTMuOXM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnoiXX0sb3FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlZnQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LWxlZnQiXSwiZjMwYSIsIk05LjQgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTkyIDExNS4xIDE5MiAxMjhsMCA2NCAzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMzYgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xMjgtMTI4eiJdfSxESHI9b3FlLGxxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1jcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFsibG9jYXRpb24iXSwiZjYwMSIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAyNTZhMTYwIDE2MCAwIDEgMCAzMjAgMCAxNjAgMTYwIDAgMSAwIC0zMjAgMHptMTYwLTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSwkSHI9bHFlLGNxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZG90cy1mcm9tLWxpbmUiLGljb246WzUxMiw1MTIsWyJkaWFnbm9zZXMiXSwiZjQ3MCIsIk0xODQgNzJhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek0xNjAgMjk5LjNjLTE5LjkgMjIuNi0zMiA1Mi4yLTMyIDg0LjdsMCAzMi02NCAwIDAtMzJjMC0xMDYgODYtMTkyIDE5Mi0xOTJzMTkyIDg2IDE5MiAxOTJsMCAzMi02NCAwIDAtMzJjMC0zMi41LTEyLjEtNjIuMS0zMi04NC43bDAgMTE2LjctMTkyIDAgMC0xMTYuN3pNMjMyIDM4NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4LTEwNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yNCA0NjRsNDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek02NCAxODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDI0IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sQUhyPWNxZSxhcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2Utc2ltcGxlLWhpZ2giLGljb246WzUxMiw1MTIsWzYxNjY4LCJ0YWNob21ldGVyIiwidGFjaG9tZXRlci1mYXN0Il0sImY2MmEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMTYuMi02LTMxLjEtMTYtNDIuM2w2OS41LTEzOC45YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMnMtMjYuMy0xLjEtMzIuMiAxMC43TDI2MS4xIDI4OC4yYy0xLjctLjEtMy40LS4yLTUuMS0uMi0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0IDY0LTI4LjcgNjQtNjR6Il19LEVIcj1hcGUsSUhyPWFwZSxkcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLWxlZnQiLGljb246WzQ0OCw1MTIsWzE3MSwiYW5nbGUtZG91YmxlLWxlZnQiXSwiZjEwMCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHptMzUyLTE2MGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDI2OS4zIDI1NiA0MDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMHoiXX0sUEhyPWRxZSx1cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtZG93biIsaWNvbjpbNTEyLDUxMixbODU5NywxMTAyMSwiYXJyb3dzLWFsdC12Il0sImYzMzgiLCJNNDA2LjYgNTAyLjZsOTYtOTZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzUyIDQ4MCAzNTJsLTY0IDAgMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE1MC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsNjQgMCAwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwIDY0IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtOTYtOTZ6Il19LE5Icj11cWUscHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZW1wdHkiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTAiXSwiZjI0NCIsIk0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZsLTQxNiAwek0zMiAxNzZjMC00NC4yIDM1LjgtODAgODAtODBsNDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBsLTQxNiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTIyNHoiXX0sT0hyPXBxZSxSSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE2IDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNzYgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sRkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvb2tpZSIsaWNvbjpbNTEyLDUxMixbMTI3ODUwXSwiZjU2MyIsIk0yNDcuMiAxN2MtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45bC0xNC42LTgyLjhjLTMuOS0yMi4xLTE0LjYtNDIuMy0zMC43LTU3LjlMMzg4LjkgNTcuNWMtMTYuMS0xNS42LTM2LjYtMjUuNi01OC43LTI4LjdMMjQ3LjIgMTd6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEJIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2giLGljb246WzQ0OCw1MTIsWzkyMDFdLCJmMmYyIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptODAgMTg0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEhIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlamVjdCIsaWNvbjpbNDQ4LDUxMixbOTE2N10sImYwNTIiLCJNMjI0IDMyYzEzLjUgMCAyNi4zIDUuNiAzNS40IDE1LjZsMTc2IDE5MmMxMi45IDE0IDE2LjIgMzQuMyA4LjYgNTEuOFM0MTkgMzIwIDQwMCAzMjBMNDggMzIwYy0xOSAwLTM2LjMtMTEuMi00My45LTI4LjdzLTQuMy0zNy43IDguNi01MS44bDE3Ni0xOTJDMTk3LjcgMzcuNiAyMTAuNSAzMiAyMjQgMzJ6TTAgNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LHFIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUtZGlzaCIsaWNvbjpbNTEyLDUxMixbMTI4MjI1XSwiZjdjMCIsIk0yMzIgMGMxNTQuNiAwIDI4MCAxMjUuNCAyODAgMjgwIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzItMTMuMyAwLTI0LTEwLjctMjQtMjRTMjE4LjcgMCAyMzIgMHpNMjA4IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMDEuNiAwIDE4NCA4Mi40IDE4NCAxODQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC03NS4xLTYwLjktMTM2LTEzNi0xMzYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI2LjQgMTQyLjdjOC44LTE3LjkgMzIuNC0xOS45IDQ2LjUtNS44bDEyOC41IDEyOC41IDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyIDEyOC41IDEyOC41YzE0LjEgMTQuMSAxMiAzNy42LTUuOCA0Ni41LTM0LjIgMTYuOS03Mi42IDI2LjQtMTEzLjMgMjYuNC0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2IDAtNDAuNyA5LjUtNzkuMiAyNi40LTExMy4zeiJdfSxmcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1yb2xsaW5nLWV5ZXMiLGljb246WzUxMiw1MTIsWzEyODU4MCwibWVoLXJvbGxpbmctZXllcyJdLCJmNWE1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMzUybDEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMzItMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40IDAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxWSHI9ZnFlLGhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LWNoZWNrIixpY29uOls1MTIsNTEyLFsidGFza3MiXSwiZjBhZSIsIk0xMzMuOCAzNi4zYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDE1OCA0NyAxNTNMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5UzMxLjYgNjkuNyA0MSA3OWwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXptMCAxNjBjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMzE4IDQ3IDMxM0w3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45ek0yMjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02NCAzNzZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxqSHI9aHFlLFVIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWNrLXhtYXJrIixpY29uOls1MTIsNTEyLFtdLCJlNTZhIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0zMjMuOSAyODQuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTMzLjkgMzMuOS0zMy45LTMzLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45LTMzLjkgMzMuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOSAzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMy45LTMzLjkgMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45eiJdfSxXSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFzaHRhZyIsaWNvbjpbNTEyLDUxMixbNjIwOThdLCIyMyIsIk0yMTQuNyAuN2MxNy4zIDMuNyAyOC4zIDIwLjcgMjQuNiAzOGwtMTkuMSA4OS4zIDEyNi41IDAgMjItMTAyLjdDMzcyLjQgOCAzODkuNC0zIDQwNi43IC43czI4LjMgMjAuNyAyNC42IDM4TDQxMi4yIDEyOCA0ODAgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjcuNCAxMjggNjcuOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjIgMTAyLjdjLTMuNyAxNy4zLTIwLjcgMjguMy0zOCAyNC42cy0yOC4zLTIwLjctMjQuNi0zOGwxOS4xLTg5LjMtMTI2LjUgMC0yMiAxMDIuN2MtMy43IDE3LjMtMjAuNyAyOC4zLTM4IDI0LjZzLTI4LjMtMjAuNy0yNC42LTM4TDk5LjggMzg0IDMyIDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MS42IDAgMjcuNC0xMjgtNjcuOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgxLjYgMCAyMi0xMDIuN0MxODAuNCA4IDE5Ny40LTMgMjE0LjcgLjd6TTIwNi40IDE5MmwtMjcuNCAxMjggMTI2LjUgMCAyNy40LTEyOC0xMjYuNSAweiJdfSxHSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4iLGljb246WzM4NCw1MTIsWzEyODY0Nl0sImYyMzgiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE5MiAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxZSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FtZXBhZCIsaWNvbjpbNjQwLDUxMixbXSwiZjExYiIsIk00NDggNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJTNTU0IDQ0OCA0NDggNDQ4bC0yNTYgMEM4NiA0NDggMCAzNjIgMCAyNTZTODYgNjQgMTkyIDY0bDI1NiAwek0xOTIgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0MCA5NmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTY0LTk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHoiXX0sbXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtZXhwb3J0IixpY29uOls1NzYsNTEyLFsiYXJyb3ctcmlnaHQtZnJvbS1maWxlIl0sImY1NmUiLCJNOTYuNSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTk2IDc4LjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS03OC4xIDAgMC0xMzMuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTEuMiAxOC43QzI3OS4yIDYuNyAyNjMgMCAyNDYgMEw5Ni41IDB6TTM1OCAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwLjUgNTguNSAzNTggMTc2ek0yMjQuNSAzMjhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTA0IDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LEtIcj1tcWUsZ3FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTQwMCAzNTJjMCAyNS4yLTE5LjQgNDUuOC00NCA0Ny44bDAtOTUuN2MyNC42IDIgNDQgMjIuNyA0NCA0Ny44ek0yNzYgMzA0bDQwIDAgMCA5Ni00MCAwIDAtOTZ6bS04MCA5NmwwLTk2IDQwIDAgMCA5Ni00MCAwem0tNDAtOTUuOGwwIDk1LjdjLTI0LjYtMi00NC0yMi43LTQ0LTQ3LjhzMTkuNC00NS44IDQ0LTQ3Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWkhyPWdxZSxicWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tc3Vid2F5IixpY29uOlszODQsNTEyLFsic3Vid2F5Il0sImYyMzkiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMCAwLTE2MC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjE2IDI1Nmw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTcyIDAgMCAxNjB6TTk2IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTIyNC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxRSHI9YnFlLHhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG90IixpY29uOls1MTIsNTEyLFsxMjgyODAsImRvdC1jaXJjbGUiXSwiZjE5MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0zNTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LFhIcj14cWUsSkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwzMzcuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTMzNy4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjF6bTQ0OCAwYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xek0xNDQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yNTYgMzIwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sZXFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXAiLGljb246WzY0MCw1MTIsWzEyODY3NF0sImYyMWEiLCJNMjcyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAxMDguOC0yMS42IDguNmMtMTQuOCA1LjktMjIuNSAyMi40LTE3LjQgMzcuNSAxMC40IDMxLjMgMjYuOCA1OS4zIDQ3LjcgODMuMSAyMC4xLTkuMiA0MS43LTEzLjkgNjMuMy0xNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjRsMS42IDEuMiAwLTIxNS0xMDQgNDEuNiAwLTgzLjJjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgzLjItMTA0LTQxLjYgMCAyMTUgMS42LTEuMmMyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAyMi4zLS4xIDQ0LjYgNC41IDY1LjMgMTQgMjAuOS0yMy43IDM3LjMtNTEuOCA0Ny43LTgzLjEgNS0xNS4yLTIuNi0zMS42LTE3LjQtMzcuNUw1MTIgMjUyLjggNTEyIDE0NGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI3MiAwek00MDMuNCA0NzYuMWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSx0cXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYyIsaWNvbjpbMzg0LDUxMixbOTldLCI0MyIsIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zIDE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjggMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSx2cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBob25lIixpY29uOls0NDgsNTEyLFsicGhvbmUtc3F1YXJlIl0sImYwOTgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODggOTYuN2M5LjgtMi43IDIwLjEgMi40IDI0IDExLjhsMjAuMyA0OC43YzMuNCA4LjMgMS4xIDE3LjgtNS45IDIzLjVsLTIyLjEgMThjMTYuMiAzNS44IDQ0LjUgNjUgNzkuNiA4Mi40bDE5LjMtMjMuNmM1LjctNi45IDE1LjItOS4zIDIzLjUtNS45bDQ4LjcgMjAuM2M5LjQgMy45IDE0LjQgMTQuMiAxMS44IDI0bC0uOCAyLjhjLTguOCAzMi4zLTQwLjEgNTkuOS03OC4yIDUxLjgtODcuNS0xOC41LTE1Ni4zLTg3LjQtMTc0LjktMTc0LjktOC4xLTM4LjEgMTkuNS02OS40IDUxLjgtNzguMmwyLjgtLjh6Il19LHJxcj12cWUsYXFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWNvbWJpbmVkIixpY29uOls0NDgsNTEyLFtdLCJmNTQ2IiwiTTEgNDQxLjdDNS41IDQ2My41IDI0LjggNDgwIDQ4IDQ4MGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi02NCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC02NC03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMy4zIC4zIDYuNiAxIDkuN3oiXX0saXBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1yb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODQ3MiwicmVmcmVzaCIsInN5bmMiXSwiZjAyMSIsIk02NS45IDIyOC41YzEzLjMtOTMgOTMuNC0xNjQuNSAxOTAuMS0xNjQuNSA1MyAwIDEwMSAyMS41IDEzNS44IDU2LjIgLjIgLjIgLjQgLjQgLjYgLjZsNy42IDcuMi00Ny45IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My40LTExLjMtMTAuN0MzOTAuNSAyOC42IDMyNi41IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMXptNDQzLjUgNjRjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS01MyAwLTEwMS0yMS41LTEzNS44LTU2LjItLjItLjItLjQtLjQtLjYtLjZsLTcuNi03LjIgNDcuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMGMtOC41IDAtMTYuNyAzLjQtMjIuNyA5LjVTLS4xIDM0My43IDAgMzUyLjNsMSAxMjdjLjEgMTcuNyAxNC42IDMxLjkgMzIuMyAzMS43UzY1LjIgNDk2LjQgNjUgNDc4LjdsLS40LTUxLjUgMTAuNyAxMC4xYzQ2LjMgNDYuMSAxMTAuMiA3NC43IDE4MC43IDc0LjcgMTI5IDAgMjM1LjctOTUuNCAyNTMuNC0yMTkuNXoiXX0saXFyPWlwZSxzcXI9aXBlLHlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MiLGljb246WzM4NCw1MTIsWyJmZW1hbGUiXSwiZjE4MiIsIk0xMzYgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTIgMzg0bC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMjcwIDIzNCAzMTMgMzYyLjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0yNS44IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOHoiXX0sbnFyPXlxZSxvcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1vcGVuIixpY29uOls1MTIsNTEyLFsxMjgyMTQsMTI4MzY2XSwiZjUxOCIsIk0yNTYgMTQxLjNsMCAzMDkuMyAuNS0uMkMzMTEuMSA0MjcuNyAzNjkuNyA0MTYgNDI4LjggNDE2bDE5LjIgMCAwLTMyMC0xOS4yIDBjLTQyLjIgMC04NC4xIDguNC0xMjMuMSAyNC42LTE2LjggNy0zMy40IDEzLjktNDkuNyAyMC43ek0yMzAuOSA2MS41TDI1NiA3MiAyODEuMSA2MS41QzMyNy45IDQyIDM3OC4xIDMyIDQyOC44IDMyTDQ2NCAzMmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNWwtMTIuOCA1LjNjLTcuOSAzLjMtMTYuNyAzLjMtMjQuNiAwbC0xMi44LTUuM0MxODQuMSA0OTAgMTMzLjkgNDgwIDgzLjIgNDgwTDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNS4yIDBjNTAuNyAwIDEwMC45IDEwIDE0Ny43IDI5LjV6Il19LGxxcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItdHJlZSIsaWNvbjpbNTc2LDUxMixbXSwiZjgwMiIsIk00OCAyNEM0OCAxMC43IDM3LjMgMCAyNCAwUzAgMTAuNyAwIDI0TDAgMzkyYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE4NCAwIDAtNDgtMTg0IDBjLTQuNCAwLTgtMy42LTgtOGwwLTIzMiAxOTIgMCAwLTQ4LTE5MiAwIDAtODh6TTMzNiAyMjRsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtODIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtOC42LTguNmMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0wIDI4OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMjg4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OHoiXX0sY3FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcmdvIixpY29uOls2NDAsNTEyLFtdLCJlODUwIiwiTTM2OCAzMmM2MS45IDAgMTEyIDUwLjEgMTEyIDExMmwwIDI2LjhjMTQuNS02LjkgMzAuOC0xMC44IDQ4LTEwLjggNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNTg5LjkgMzg0IDUyOCAzODRsLTQ4IDAgMCAzMmMwIDE2LjYgMTIuNiAzMC4yIDI4LjcgMzEuOGw2LjYgLjNjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOCAwIDE3LjctMTQuMyAzMi0zMiAzMi01MyAwLTk2LTQzLTk2LTk2bDAtMzItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyek01MjggMjI0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQ4IDQ4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6Il19LHdxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtYXJjaGl2ZSIsaWNvbjpbNTEyLDUxMixbImFyY2hpdmUiXSwiZjE4NyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NkwwIDY0ek0zMiAxNzZsNDQ4IDAgMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI0MHptMTUyIDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sZHFyPXdxZSx1cXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1N2UiLCJNMTg1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xQzEyMCAyLjcgMTA5LjMtOCA5Ni04UzcyIDIuNyA3MiAxNmwwIDEwMi4xLTMxLTMxQzMxLjYgNzcuNyAxNi40IDc3LjcgNyA4N1MtMi4zIDExMS42IDcgMTIxbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyek0xNTUuOCAyNjAuNkwxMzIuMSA0NDggMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMi44LS40LTUuNS0xLThMNTQ4LjIgMjYwLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDM2Ny40IDEzNy45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDE3MC45IDIzNy4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6TTQ0OCA0NDhsLTk3LjEgMCAwLTE0OS40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45TDQ0OCA0NDh6Il19LHBxcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMjkiLCJNNjQgMTYwbDY0IDAgMC02NC02NCAwIDAgNjR6TTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwek02NCA0MTZsNjQgMCAwLTY0LTY0IDAgMCA2NHpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2ek0zMjAgOTZsMCA2NCA2NCAwIDAtNjQtNjQgMHpNMzA0IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMjg4IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem05NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0tMzIgMzJhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHoiXX0sZnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYWdvbiIsaWNvbjpbNjQwLDUxMixbMTI4MDA5XSwiZjZkNSIsIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjQtNDMuMy0zMi41Yy01LjUtNC4xLTcuOC0xMS4zLTUuNi0xNy45UzI5Ny4xIDAgMzA0IDBMNDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRsNTcuNiA3Ni44YzYuMiA4LjMgOS42IDE4LjQgOS42IDI4LjggMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxLjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdsLTEzLjMtMTMuMy0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xIDAgNjAuNi00OS4xIDEwOS44LTEwOS44IDEwOS44TDMyLjMgNTEyYy0zLjMgMC02LjYtLjQtOS42LTEuNC05LjItMi44LTE2LjctOS42LTIwLjQtMTguNi0xLjMtMy4zLTIuMi02LjktMi4zLTEwLjctLjItMy43IC4zLTcuMyAxLjMtMTAuNyAyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNCAzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xIDAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC0xMDIuNXpNNTEyIDcyLjNjMC0uMSAwLS4yIDAtLjNzMC0uMiAwLS4zbDAgLjZ6bS0xLjMgNy40TDQ2NC4zIDY4LjFjLS4yIDEuMy0uMyAyLjYtLjMgMy45IDAgMTMuMyAxMC43IDI0IDI0IDI0IDEwLjYgMCAxOS41LTYuOCAyMi43LTE2LjN6TTEzMC45IDExNi41YzE2LjMtMTQuNSA0MC40LTE2LjIgNTguNS00LjFsMTMwLjYgODcgMCAyNy41YzAgMzIuOCA4LjQgNjQuOCAyNCA5M2wtMjMyIDBjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdMMTcxIDIzMi4zIDE4LjQgMjU1LjhjLTcgMS4xLTEzLjktMi42LTE2LjktOVMuMSAyMzIuOCA1LjQgMjI4TDEzMC45IDExNi41eiJdfSxrcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLWVuZCIsaWNvbjpbMzg0LDUxMixbODk4NywiaG91cmdsYXNzLTMiXSwiZjI1MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45bC02Ny45IDY3LjktNjcuOS02Ny45QzEwNi4xIDEyNC45IDk2IDEwMC40IDk2IDc1eiJdfSxocXI9a3FlLEF5PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAiLGljb246WzUxMiw1MTIsWzU4MTE5LCJncmlkLWhvcml6b250YWwiLCJncmlwLWhvcml6b250YWwiXSwiZjU4ZCIsIk04OCA5NmMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDB6TTI4MCAyMjRsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0xOTIgMGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgMTkybC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHpNMjgwIDI4OGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDB6TTg4IDQxNmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6Il19LG1xcj1BeSxncXI9QXksU3FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci10b3AtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImJvcmRlci1zdHlsZSJdLCJmODUzIiwiTTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMzUyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OHptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyem0xNjAgMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0zODQgMTkyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGJxcj1TcWUsTXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3QtdWwiLGljb246WzUxMiw1MTIsWyJsaXN0LWRvdHMiXSwiZjBjYSIsIk00OCAxNDRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNNDggNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNOTYgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LHhxcj1NcWUsdnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb2JiZXJ5IixpY29uOls1NzYsNTEyLFtdLCJlNTM2IiwiTTQ4OC4yIDU5LjFDNDc4LjEgOTkuNiA0NDEuNyAxMjggNDAwIDEyOHMtNzguMS0yOC40LTg4LjItNjguOUwzMDMgMjQuMkMyOTguOCA3LjEgMjgxLjQtMy4zIDI2NC4yIDFTMjM2LjcgMjIuNiAyNDEgMzkuOGw4LjcgMzQuOWMxMSA0NCA0MC4yIDc5LjYgNzguMyA5OS42TDMyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDUuN2MzOC4xLTIwIDY3LjMtNTUuNiA3OC4zLTk5LjZMNTU5IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzUwMS4yIDcuMSA0OTcgMjQuMmwtOC43IDM0Ljl6TTQwMCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTggMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMCAuNiAwIDE5MS40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI3LjMgMTMgMjAuNWM1LjkgOS4yIDE2LjEgMTQuOSAyNyAxNC45bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwLjQgMC0zNy40LTU4LjlDMTU3LjYgMTQyIDEzMi4xIDEyOCAxMDQuNyAxMjhMNzIgMTI4eiJdfSx5cXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLWJ1dHRvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjEwYiIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6TTE5MiA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeiJdfSxzcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi1hLXoiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLWFzYyIsInNvcnQtYWxwaGEtZG93biJdLCJmMTVkIiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMTgyLTM0MC45YzUwLjcgMTAxLjMgNzcuMyAxNTQuNyA4MCAxNjAgNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtNy4yLTE0LjMtODguNCAwLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45YzIuNy01LjMgMjkuMy01OC43IDgwLTE2MCA1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43czIzLjIgNi44IDI4LjYgMTcuN3pNMzg0IDEzNS42bC0yMC4yIDQwLjQgNDAuNCAwLTIwLjItNDAuNHpNMjg4IDMyMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45TDM5Ny4zIDQxNiA0NDggNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlsNzMuNC03My40LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHdxcj1zcGUsa3FyPXNwZSxTcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjBkNiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0xOTIgMjRjMCA0LjQtMy42IDguMS04IDcuNS0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OHpNNjQgMzI4YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHptOC0xMzYuNWMtNC40IC41LTgtMy4xLTgtNy41bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNXptMzY4IDEyOWM0LjQtLjUgOCAzLjEgOCA3LjVsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjV6Il19LENxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbWludXMiLGljb246WzUxMiw1MTIsWyJtaW51cy1jaXJjbGUiXSwiZjA1NiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY4IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LE1xcj1DcWUsenFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXBvaW50ZXIiLGljb246WzQ0OCw1MTIsWyJtb3VzZS1wb2ludGVyIl0sImYyNDUiLCJNNzcuMyAyLjVjOC4xLTQuMSAxNy45LTMuMiAyNS4xIDIuM2wzMjAgMjM5LjljOC4zIDYuMiAxMS42IDE3IDguNCAyNi44cy0xMi40IDE2LjQtMjIuOCAxNi40bC0xNTIuMyAwIDg4LjkgMTc3LjdjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtODguOS0xNzcuNy05MS4zIDEyMS44Yy02LjIgOC4zLTE3IDExLjYtMjYuOCA4LjRTNjQgNDM0LjMgNjQgNDI0TDY0IDI0YzAtOS4xIDUuMS0xNy40IDEzLjMtMjEuNXoiXX0sQ3FyPXpxZSxfcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXNoYXJlLW5vZGVzIixpY29uOls0NDgsNTEyLFsic2hhcmUtYWx0LXNxdWFyZSJdLCJmMWUxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM2OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjQtMTUuNCAwLTI5LjUtNS40LTQwLjYtMTQuNWwtODUuMyA0Ni41IDg1LjMgNDYuNWMxMS05LjEgMjUuMi0xNC41IDQwLjYtMTQuNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0YzAtMi41IC4xLTQuOSAuNC03LjNMMTU4LjUgMzAwYy0xMS43IDEyLjMtMjguMiAyMC00Ni41IDIwLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMTguMyAwIDM0LjggNy43IDQ2LjUgMjBsODEuOS00NC43Yy0uMy0yLjQtLjQtNC45LS40LTcuMyAwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0eiJdfSx6cXI9X3FlLFRxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1sYXJnZSIsaWNvbjpbNDQ4LDUxMixbInRoLWxhcmdlIl0sImYwMDkiLCJNMzg0IDk2bC0xMjggMCAwIDEyOCAxMjggMCAwLTEyOHptNjQgMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOHpNNjQgMjg4bDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwem0xMjgtNjRsMC0xMjgtMTI4IDAgMCAxMjggMTI4IDB6bTY0IDY0bDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAweiJdfSxfcXI9VHFlLFRxcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXQiLGljb246WzU3Niw1MTIsWzEyODAwOF0sImY2YmUiLCJNNjQgOTZjNTMgMCA5NiA0MyA5NiA5NmwwIDg1LjhjMjkuNy00NC43IDc3LjgtNzYuMiAxMzMuNC04NCAyNS42IDYwIDg1LjIgMTAyLjEgMTU0LjYgMTAyLjEgMTAuOSAwIDIxLjYtMS4xIDMyLTMuMUw0ODAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQwLjgtMTM2IDEwOC44IDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE0NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMjI0YzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiAxNTguMiAzMiAxNDQuNiAzMiAxMjggMzIgMTEwLjMgNDYuMyA5NiA2NCA5NnpNNTMzLjggMy4yQzU0NC4yLTUuNSA1NjAgMS45IDU2MCAxNS41TDU2MCAxMjhjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMzM2IDE4OS45IDMzNiAxMjhsMC0xMTIuNWMwLTEzLjYgMTUuOC0yMSAyNi4yLTEyLjNMNDE2IDQ4IDQ4MCA0OCA1MzMuOCAzLjJ6TTQwMCAxMDhhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem05NiAwYTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHoiXX0sTHFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXdlZWsiLGljb246WzQ0OCw1MTIsW10sImY3ODQiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMHoiXX0sRHFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtY29tcGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZTEzYSIsIk0xOTguOCAxLjhjOS0zLjcgMTkuMy0xLjcgMjYuMiA1LjJsNTYgNTZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTU2IDU2Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzE4NCAxNDUuNyAxODQgMTM2bDAtMjQtMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMTQuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zIDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNMNjQgMTQ0YzAtNTMgNDMtOTYgOTYtOTZsMjQgMCAwLTI0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnpNMzkyIDgwYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6bS04IDczLjNjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zTDQ0OCAzNjhjMCA1My00MyA5Ni05NiA5NmwtMjQgMCAwIDI0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTU2LTU2Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw1Ni01NmM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzMyOCAzNjYuMyAzMjggMzc2bDAgMjQgMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIxNC43ek03MiA0MzJhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMCAtNDggMHoiXX0sJHFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlbyIsaWNvbjpbNTEyLDUxMixbXSwiZTg0YSIsIk0yNjAgMGM3Mi45IDAgMTMyIDU5LjEgMTMyIDEzMmwwIDUuNC0uMSAxLjQtMjMuOCAyNzBjLjQgMjEuNyAxOC4yIDM5LjIgNDAgMzkuMiAyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0MGMwIDU3LjQtNDYuNiAxMDQtMTA0IDEwNFMzMDQgNDY1LjQgMzA0IDQwOGwwLTEuNCAuMS0xLjQgMjMuOS0yNzAuNiAwLTIuNmMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDRjMCAzLjcgLjMgNy4zIC44IDExbDI5LjcgMTkzLjRjLjkgNi4xIDEuNCAxMi4yIDEuNCAxOC40bDAgOS4yYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzAgNDI5LjkgMCAzNjggNTAuMSAyNTYgMTEyIDI1NmMxMS43IDAgMjMgMS44IDMzLjcgNS4xTDEyOS42IDE1Ni43Yy0xLjEtNi44LTEuNi0xMy44LTEuNi0yMC43bDAtNEMxMjggNTkuMSAxODcuMSAwIDI2MCAwek0xMTIgMzIwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnoiXX0sQXFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTY2IiwiTTI4Ny45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjYgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OS4yYzM1LjItNDAgODYuNy02NS4yIDE0NC4yLTY1LjIgOSAwIDE3LjggLjYgMjYuNCAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjUgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxFcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFsbGV0IixpY29uOls1NzYsNTEyLFtdLCJmNDgyIiwiTTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTY0IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwem05NiA2NGwxMjggMCAwIDY0LTEyOCAwIDAtNjR6bTE5MiAwbDEyOCAwIDAgNjQtMTI4IDAgMC02NHoiXX0sbnBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNha2UtY2FuZGxlcyIsaWNvbjpbNDQ4LDUxMixbMTI3ODc0LCJiaXJ0aGRheS1jYWtlIiwiY2FrZSJdLCJmMWZkIiwiTTg2LjQtMTAuNUw2MS44IDMxLjZDNTggMzguMSA1NiA0NS42IDU2IDUzLjJMNTYgNTZjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCAzMS42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMjMzLjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjV6TTMxNy44IDMxLjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42bDAgMi44YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwzNjEuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNUwzMTcuOCAzMS42ek0xMjggMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNUMyNi43IDIyNi42IDAgMjYyLjIgMCAzMDRsMCAyMC44YzIwLjkgMS4zIDQxLjYgNy4zIDYwLjMgMThsNy4xIDQuMWMyNi4zIDE1IDU4LjkgMTMuNCA4My42LTQuMiA0My43LTMxLjIgMTAyLjMtMzEuMiAxNDYgMCAyNC42IDE3LjYgNTcuMyAxOS4zIDgzLjYgNC4ybDcuMS00LjFjMTguNy0xMC43IDM5LjMtMTYuNyA2MC4zLTE4bDAtMjAuOGMwLTQxLjgtMjYuNy03Ny40LTY0LTkwLjVsMC01My41YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4ek00NDggMzczYy0xMi43IDEuMi0yNS4xIDUtMzYuNSAxMS41bC03LjEgNC4xYy00Mi42IDI0LjMtOTUuNCAyMS43LTEzNS4zLTYuOC0yNy0xOS4zLTYzLjItMTkuMy05MC4yIDAtMzkuOSAyOC41LTkyLjcgMzEuMi0xMzUuMyA2LjhsLTcuMS00LjFDMjUuMSAzNzggMTIuNyAzNzQuMSAwIDM3M2wwIDc1YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzV6Il19LElxcj1ucGUsUHFyPW5wZSxOcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVnLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNDkwIiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyNDEuOCAxNzYgMzQ0IDE3NmMxNC4yIDAgMjcuNyAyLjggNDAgOGwxMDguOC04MS42YzE0LjEtMTAuNiAzNC4yLTcuNyA0NC44IDYuNHM3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgOS41LS44IDE4LjctMi40IDI3LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6TTM5OC4yIDQ2OGMtMjMuMiAyMi4xLTUzIDM3LjItODYuMiA0Mi4ybDAtMTI4LjQgODYuMiA4Ni4yek0yNjQgMzMzLjhsMCAxNzYuNGMtNTEuMi03LjctOTQuNS0zOS43LTExNy43LTgzLjlMODMuMiA0NzMuNmMtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw4My40LTYyLjVjLS4xLTIuNi0uMi01LjItLjItNy45bDAtMzItOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OC44IDBjMy4zLTEzLjkgOS4zLTI2LjcgMTcuNi0zNy44TDI2NCAzMzMuOHpNMzU1LjYgMTI4bC04Mi40IDAtNzIuMy03Mi4zQzIxNi4xIDIyLjggMjQ5LjQgMCAyODggMCAzNDEgMCAzODQgNDMgMzg0IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40eiJdfSxPcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFycCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3YiIsIk00NDggNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDkuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzODYuNyA0MjkuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwem01LjUgMjA4TDM2MCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXpNOTYgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJlZGVjZXNzb3IiLGljb246WzQ0OCw1MTIsW10sImU0NzciLCJNMjg5LjIgMTM3LjljMi41LTYgOC4zLTkuOSAxNC44LTkuOWw0MCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk4IDBjMS4zIDUuMSAyIDEwLjUgMiAxNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjQgNDAgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtNjQgNjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC02NC02NGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHpNMzg0IDM1MmwtMzIwIDAgMCA2NCAzMjAgMCAwLTY0em02NCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NHoiXX0sTHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTY4IDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tOC05NmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHptMjY0LTcyYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHptLTI4OCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTE5MiAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEZxcj1McWUsQnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tbmV4dCIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ3NiIsIk0zODQgMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEyOCAwIDAgNjQtMzIgMGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTMjk0LjUgMjg4IDI4OCAyODhsLTMyIDAgMC02NCAxMjggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM0IDBjNS42IDIxLjctLjUgNDUuMS0xNi43IDYxLjNsLTY0IDY0Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtNjQtNjRDOTguNiAzMzMuMSA5Mi40IDMwOS43IDk4IDI4OGwtMzQgMHoiXX0sSHFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvci1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU0YWMiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDE2LjYgMCAzMi43LTEuOSA0OC4yLTUuNi0yMC4zLTMwLjUtMzIuMi02Ny0zMi4yLTEwNi40IDAtMjcuMyA1LjctNTMuMyAxNi03Ni45bDAtMTM2LjZjMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2em0yMDggNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0scXFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NDMiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDQwMHoiXX0sVnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwYSIsaWNvbjpbNTc2LDUxMixbXSwiZjViYiIsIk0xNjkuNyAyMjcuNWMzNC4zIDE4LjcgNjQuNSA0NC4xIDg4LjggNzQuNSAxMS4xIDEzLjkgMjEgMjguOSAyOS40IDQ0LjggOC41LTE1LjkgMTguMy0zMC44IDI5LjQtNDQuOCAyNC4zLTMwLjUgNTQuNS01NS45IDg4LjgtNzQuNSA0MS43LTIyLjcgODkuNC0zNS41IDEzOS43LTM1LjVsOS45IDBjMTEuMSAwIDIwLjEgOSAyMC4xIDIwLjEgMCAxNDgtMTE5LjkgMjY3LjktMjY3LjkgMjY3LjlsLTQwLjIgMEMxMTkuOSA0ODAgMCAzNjAuMSAwIDIxMi4xIDAgMjAxIDkgMTkyIDIwLjEgMTkybDkuOSAwYzUwLjQgMCA5OC4xIDEyLjggMTM5LjcgMzUuNXpNMzAzLjkgMzhjMTYuOSAxNS45IDYxLjQgNjMuNCA4OSAxNDIuMy00MC4xIDIwLjItNzUuOCA0OC4yLTEwNC45IDgyLjEtMjkuMi0zMy45LTY0LjgtNjEuOC0xMDQuOS04Mi4xIDI3LjYtNzguOSA3Mi4yLTEyNi40IDg5LTE0Mi4zIDQuMy00LjEgMTAtNiAxNS45LTZzMTEuNiAyIDE1LjkgNnoiXX0sanFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyaWVzIixpY29uOls1MTIsNTEyLFtdLCJlODQ2IiwiTTQwMS42IDBjNjEuMyAwIDExMC40IDUwLjMgMTEwLjQgMTExIDAgMjkuNC0xMS42IDU3LjktMzIuNiA3OC44bC04LjggOC44Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjIgMHMtMTIuNS0zMi44IDAtNDUuMmw4LjgtOC44YzguOC04LjggMTMuOC0yMSAxMy44LTMzLjYgMC0yNS45LTIxLjEtNDctNDYuNC00Ny0yMi41IDAtNDEuNyAxNi4xLTQ1LjcgMzguMkwyODcuNSA0ODUuNmMwIC4xLS4xIC4zLS4xIC40LS4yIC44LS4zIDEuNi0uNSAyLjMtLjEgLjMtLjEgLjUtLjIgLjctLjIgLjYtLjQgMS4zLS43IDEuOS0uMiAuNS0uNCAxLS42IDEuNS0uMSAuMy0uMyAuNi0uNCAuOS0xLjYgMy41LTMuOCA2LjUtNi40IDkuMi0yIDItNC4yIDMuNy02LjYgNS4xLS4yIC4xLS4zIC4yLS41IC4zLS43IC40LTEuNCAuNy0yLjEgMS0uMyAuMS0uNiAuMy0uOSAuNC0uNSAuMi0xIC40LTEuNSAuNi0uNiAuMi0xLjIgLjUtMS45IC43LS4yIC4xLS41IC4yLS43IC4yLS44IC4yLTEuNiAuNC0yLjMgLjUtLjIgMC0uMyAuMS0uNCAuMS0uMiAwLS40IDAtLjYgLjEtLjcgLjEtMS4zIC4yLTIgLjItLjQgMC0uOCAuMS0xLjIgLjEtLjYgMC0xLjIgLjEtMS44IC4xLS42IDAtMS4yIDAtMS44LS4xLS40IDAtLjgtLjEtMS4yLS4xLS43LS4xLTEuNC0uMS0yLS4yLS4yIDAtLjQgMC0uNi0uMS0uMiAwLS4zLS4xLS41LS4xLS44LS4yLTEuNi0uMy0yLjMtLjUtLjMtLjEtLjUtLjEtLjgtLjItLjYtLjItMS4zLS40LTEuOS0uNy0uNS0uMi0xLS40LTEuNS0uNi0uMy0uMS0uNi0uMy0uOS0uNC0uNy0uMy0xLjQtLjctMi4xLTEtLjItLjEtLjMtLjItLjUtLjMtMi40LTEuNC00LjctMy4xLTYuNi01LjEtMi42LTIuNi00LjgtNS43LTYuNC05LjItLjEtLjItLjItLjMtLjItLjVsLS41LTEuMWMtLjEtLjMtLjItLjUtLjMtLjgtLjItLjYtLjUtMS4yLS43LTEuOS0uMS0uMi0uMi0uNS0uMi0uNy0uMi0uOC0uNC0xLjYtLjUtMi4zIDAtLjEtLjEtLjMtLjEtLjRMMTU2IDEwMi4yYy00LTIyLjEtMjMuMi0zOC4yLTQ1LjctMzguMi0yNS4zIDAtNDYuNCAyMS4xLTQ2LjQgNDcgMCAxMi42IDUgMjQuOCAxMy44IDMzLjZsOC44IDguOGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuMnMtMzIuOCAxMi41LTQ1LjIgMGwtOC44LTguOEMxMS42IDE2OC45IDAgMTQwLjMgMCAxMTEgMCA1MC4zIDQ5LjEgMCAxMTAuNCAwIDE2My44IDAgMjA5LjYgMzguMyAyMTkgOTFsMzcgMjA3IDM3LTIwN2M5LjQtNTIuNiA1NS4yLTkxIDEwOC43LTkxeiJdfSxEcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycy1wcm9ncmVzcyIsaWNvbjpbNDQ4LDUxMixbInRhc2tzLWFsdCJdLCJmODI4IiwiTTI4OCAxNjBsOTYgMCAwLTY0LTk2IDAgMCA2NHpNMCAxNjBMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNnpNMTYwIDQxNmwyMjQgMCAwLTY0LTIyNCAwIDAgNjR6TTAgNDE2bDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6Il19LFVxcj1EcWUsV3FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSwkcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UtcmlnaHQiLGljb246WzY0MCw1MTIsWzk4OTcsIm1hcnMtc3Ryb2tlLWgiXSwiZjIyYiIsIk0zMjAuNSAyNTZhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHpNMjA4LjUgODBjODYuMyAwIDE1OC4xIDYyLjEgMTczLjEgMTQ0LjEgMS0uMSAxLjktLjEgMi45LS4xbDE2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjEuNCAwLTIyLjQtMjhjLTExLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1bDY0IDgwYzkuMyAxMS43IDkuMyAyOC4zIDAgNDBsLTY0IDgwYy0xMSAxMy44LTMxLjIgMTYtNDUgNXMtMTYtMzEuMi01LTQ1bDIyLjQtMjgtNjEuNCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNiAwYy0xIDAtMS45IDAtMi45LS4xLTE1IDgyLTg2LjggMTQ0LjEtMTczLjEgMTQ0LjEtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NnoiXX0sR3FyPSRxZSxZcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItb2JzZXJ2YXRpb24iLGljb246WzQ0OCw1MTIsW10sImU1ODYiLCJNMjA5LjcgMy40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxNjAgODBjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS01LjYgMTEuMi0xNi45IDE3LjctMjguNiAxNy43bDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEzIDAgMzIgMTkyIDQ1IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1IDAgMzItMTkyLTEzIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjLTExLjcgMC0yMy02LjUtMjguNi0xNy43LTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlsMTYwLTgwek0zMTAuNyA0NDhsLTg2LjctNjEuOS04Ni43IDYxLjkgMTczLjQgMHptLTE1My0xOTJsLTMuNSAyMS4yIDY5LjkgNDkuOSA2OS45LTQ5LjktMy41LTIxLjItMTMyLjcgMHptLTEyLjMgNzMuOWwtMTAuMSA2MC42IDQ3LjUtMzMuOS0zNy40LTI2Ljd6bTExOS45IDI2LjdsNDcuNSAzMy45LTEwLjEtNjAuNi0zNy40IDI2Ljd6TTE1MiAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxvcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rlcmxpbmctc2lnbiIsaWNvbjpbMzg0LDUxMixbMTYzLCJnYnAiLCJwb3VuZC1zaWduIl0sImYxNTQiLCJNOTEuMyAyODhsLTM0LjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMS40IDBDMzcuMyAxNDcuMyAxMDUuMSA0MiAyMDcuNiA0Mmw4LjIgMGMzMy42IDAgNjYuMiAxMS4zIDkyLjUgMzIuMmwxNi4xIDEyLjdjMTMuOSAxMSAxNi4yIDMxLjEgNS4yIDQ1cy0zMS4xIDE2LjItNDUgNS4ybC0xNi4xLTEyLjdjLTE1LTExLjktMzMuNi0xOC40LTUyLjgtMTguNGwtOC4yIDBjLTU3LjMgMC05NC43IDU5LjktNjkuNyAxMTEuNCAzLjYgNy40IDYuNiAxNC45IDkuMSAyMi42bDE0OS41IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0MS4yIDBjMSAzNS4zLTguNyA3MC42LTI4LjkgMTAwLjlsLTE4LjEgMjcuMSAyMTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNzIgMGMtMTEuOCAwLTIyLjYtNi41LTI4LjItMTYuOXMtNS0yMyAxLjYtMzIuOWw1MS4yLTc2LjhjMTMuMS0xOS42IDE5LjItNDIuNiAxOC4yLTY1LjR6Il19LEtxcj1vcGUsWnFyPW9wZSxRcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmF1Y2V0LWRyaXAiLGljb246WzUxMiw1MTIsWzEyODY4OF0sImUwMDYiLCJNMjI0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMkw5NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmw5NiAwIDAgNjQtMTguNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNEwxMjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDAuMSAwYzIwLjIgMjkgNTMuOSA0OCA5MS45IDQ4czcxLjctMTkgOTEuOS00OGwzNi4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtODguNC03MS42LTE2MC0xNjAtMTYwbC0zMiAwLTIyLjYtMjIuNmMtNi02LTE0LjEtOS40LTIyLjYtOS40bC0xOC43IDAgMC02NCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MzYuOCA0NTUuNGwtMTguMiA0Mi40Yy0xLjggNC4xLTIuNyA4LjYtMi43IDEzLjFsMCAxLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEuMmMwLTQuNS0uOS04LjktMi43LTEzLjFsLTE4LjItNDIuNGMtMS45LTQuNS02LjMtNy40LTExLjItNy40cy05LjIgMi45LTExLjIgNy40eiJdfSxzVD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaW5mbyIsaWNvbjpbNTEyLDUxMixbImluZm8tY2lyY2xlIl0sImYwNWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDg4IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjQtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sWHFyPXNULEpxcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZWF0aGVyIixpY29uOls1MTIsNTEyLFsxMjk3MThdLCJmNTJkIiwiTTM1MiAwYzQxIDAgODAuMyAxNi4zIDEwOS4yIDQ1LjJsNS41IDUuNWMyOSAyOSA0NS4zIDY4LjMgNDUuMyAxMDkuMiAwIDI0LjEtNS43IDQ3LjYtMTYuMiA2OC44LTEuOSAzLjctNS4zIDYuNS05LjMgNy43TDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDMyLjIgMGMxNC4zIDAgMjEuNCAxNy4yIDExLjMgMjcuM2wtMjIuNCAyMi40Yy0xLjkgMS45LTQuMiAzLjItNi43IDRsLTgxIDI0LjNjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMiAxMy4yIDAgMTguOSAxNS43IDcuOCAyMi45LTQxLjEgMjYuNi04OS4zIDQxLjEtMTM5IDQxLjFsLTg2IDAtNDggNDhjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw3OS41IDMzNi41Yy01LjcgNS43LTE1LjUgMS43LTE1LjUtNi40IDAtNjcuOSAyNy0xMzMgNzUtMTgxTDI0Mi44IDQ1LjJDMjcxLjcgMTYuMyAzMTEgMCAzNTIgMHoiXX0sZVZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtcmljZSIsaWNvbjpbNTEyLDUxMixbXSwiZTJlYiIsIk0xNzYgNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTI0IDQ4bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTU2IDE2MGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0wIDI4My40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNCAwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHpNMjI0IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptLTk2IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTEwNCA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0yMTYgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI5NiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0xMjAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTM5MiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yOTYgMTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sQXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMjg4LjEgMzUzLjZjMTAgMCAxOS45IDIuMyAyOSA3bDc0LjQgMzcuOS0xMy04Mi41Yy0zLjItMjAuMiAzLjUtNDAuNyAxNy45LTU1LjJsNTktNTkuMS04Mi41LTEzLjFjLTIwLjItMy4yLTM3LjctMTUuOS00Ny0zNC4xbC0zOC03NC40IDAgMjczLjZ6TTQ1Ny40IDQ4OWMtNy4zIDUuMy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXMxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4yeiJdfSx0VnI9QXFlLEVxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1hcnJvdy1kb3duIixpY29uOls1MTIsNTEyLFsidGVtcGVyYXR1cmUtZG93biJdLCJlMDNmIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00MzkuMSAzMTAuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40cy0xNi42LTMuNC0yMi42LTkuNGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOS40IDkuNCAwLTE3OC43YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0eiJdfSxyVnI9RXFlLGFWcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLXZlbnRpbGF0b3IiLGljb246WzY0MCw1MTIsW10sImU1MjQiLCJNMTUyLjIgMTkyYy0xNS40IDM4LjMtMjQuMiA3Ny4yLTI0LjIgMTA4LjggMCAxMy4zIDEuNSAyNi4yIDQuNCAzOC43bC0xNy0zLjRjLTI5LjktNi01MS40LTMyLjItNTEuNC02Mi44bDAtODEuMyA4OC4yIDB6bTMyLjktNjRMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgxLjNjMCA2MSA0My4xIDExMy41IDEwMi45IDEyNS41bDY2LjMgMTMuM2MxOC43IDIyLjEgNDIuOSA0MCA3MC44IDUxLjhsMC04Ny44Yy0xMC4xLTE0LjItMTYtMzEuMy0xNi00OS43IDAtNDkuNSA0My0xMzQuNCA5Ni0xMzQuNCA1Mi41IDAgOTYgODQuOSA5NiAxMzQuNCAwIDE4LjQtNS45IDM1LjQtMTYgNDkuNmwwIDg3LjdjMjcuNi0xMS44IDUxLjctMjkuNiA3MC40LTUxLjZsNjYuNy0xMy4zYzU5LjgtMTIgMTAyLjktNjQuNSAxMDIuOS0xMjUuNWwwLTgxLjNjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTEyMS41IDBjLTM0LjgtNTQuMi04Mi41LTk2LTEzNC41LTk2LTUyLjYgMC0xMDAuMiA0MS44LTEzNC45IDk2em0zMDIuNSA2NGw4OC40IDAgMCA4MS4zYzAgMzAuNS0yMS41IDU2LjgtNTEuNCA2Mi44bC0xNyAzLjRjMi45LTEyLjQgNC41LTI1LjQgNC41LTM4LjcgMC0zMS42LTguOS03MC41LTI0LjQtMTA4Ljh6TTI4OCAzMjBsMCAxOTIgNjQgMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0saVZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTgwIDMwNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sc1ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLWRvd24iLGljb246WzU3Niw1MTIsW10sImUwOTciLCJNMzg0IDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDgyLjctMTY5LjQtMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE5MiAyNDIuNyA1NC42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDMyMCAyMDUuMyA0NjYuNyAzNTIgMzg0IDM1MnoiXX0sblZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC1jYW4iLGljb246WzY0MCw1MTIsW10sImY2MTMiLCJNMzIwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LjhjMCAxOSAxMS4yIDM2LjIgMjguNSA0My45bDY3LjUgMzAgMCAyMS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI1OS4xIDBjMTguNCAwIDM1LjgtNy45IDQ4LTIxLjdMNjMzLjUgMTg3LjdjMTIuMy0xMy45LS4zLTM1LjQtMTguNC0zMS41TDQ0OCAxOTIgMzk3LjUgMTY2LjhjLTguOS00LjQtMTguNy02LjgtMjguNi02LjhsLTgwLjkgMCAwLTMyIDMyIDB6TTk2IDIwOGwwIDg2LjEtNDgtMjEuMyAwLTY0LjggNDggMHoiXX0sSXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1jYXJyeS1ib3giLGljb246WzU3Niw1MTIsWyJwZW9wbGUtY2FycnkiXSwiZjRjZSIsIk02NC0zMkE1NiA1NiAwIDEgMSA2NCA4MCA1NiA1NiAwIDEgMSA2NC0zMnpNMCAxNzEuMWMwLTMyLjYgMjYuNS01OS4xIDU5LjEtNTkuMSAyMy41IDAgNDUuNSAxMS4zIDU5LjEgMzAuNGw0OC43IDY4LjJjNS44IDguMiAxNS4xIDEzLjEgMjUuMSAxMy40bDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxMC0uMyAxOS4zLTUuMiAyNS4xLTEzLjRsNDguNy02OC4yYzEzLjYtMTkuMSAzNS42LTMwLjQgNTkuMS0zMC40IDMyLjYgMCA1OS4xIDI2LjUgNTkuMSA1OS4xTDU3NiAyNzJjMCAzMC4yLTE0LjIgNTguNy0zOC40IDc2LjhsLTc2LjggNTcuNmMtOC4xIDYtMTIuOCAxNS41LTEyLjggMjUuNmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0zMC4yIDE0LjItNTguNyAzOC40LTc2LjhsNDEuNi0zMS4yIDAtODAuMS0yLjggMy45Yy0xOCAyNS4yLTQ3LjEgNDAuMi03OC4xIDQwLjJMMzUyIDI4OGMtLjYgMC0xLjMgMC0xLjktLjEtLjYgMC0xLjMgLjEtMS45IC4xbC0xMjAuNCAwYy0uNiAwLTEuMyAwLTEuOS0uMS0uNiAwLTEuMyAuMS0xLjkgLjFsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzE3Ny44IDM3My4zIDE5MiA0MDEuOCAxOTIgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDM4LjQgMzQ4LjhDMTQuMiAzMzAuNyAwIDMwMi4yIDAgMjcyTDAgMTcxLjF6TTAgMzc5LjNjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMNjQgNDI4IDY0IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDUyOS43IDAgNTEyTDAgMzc5LjN6TTU2OCAyNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6bTggNDg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODQgNTQuNC00MC44YzMuMy0yLjUgNi41LTUuMSA5LjYtNy45TDU3NiA1MTJ6Il19LG9Wcj1JcWUsbFZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWlyIixpY29uOls0NDgsNTEyLFsxMjk2ODFdLCJmNmMwIiwiTTE1MiAyNTZsMC0xODEuOGMtMjQuNSAyMC41LTQwIDUxLjQtNDAgODUuOGwwIDk2IDQwIDB6bTQ4IDBsNDggMCAwLTIwNS40Yy03LjctMS43LTE1LjgtMi42LTI0LTIuNnMtMTYuMyAuOS0yNCAyLjZMMjAwIDI1NnpNMjk2IDc0LjJsMCAxODEuOCA0MCAwIDAtOTZjMC0zNC40LTE1LjUtNjUuMi00MC04NS44ek0zMiAyNTZsMzIgMCAwLTk2QzY0IDcxLjYgMTM1LjYgMCAyMjQgMFMzODQgNzEuNiAzODQgMTYwbDAgOTYgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0yNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGNWcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kIixpY29uOls1MTIsNTEyLFtdLCJmNzJlIiwiTTI4OCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDMyIDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjggMGM0OC42IDAgODgtMzkuNCA4OC04OFM0MDguNiAwIDM2MCAwTDMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNjQgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTI4IDUxMmw0MCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4cy0zOS40LTg4LTg4LTg4TDMyIDMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnoiXX0sZFZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxheWVyLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJmNWZkIiwiTTIzMi41IDUuMmMxNC45LTYuOSAzMi4xLTYuOSA0NyAwbDIxOC42IDEwMWM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMTQ5LjhDNS40IDE0NS44IDAgMTM3LjMgMCAxMjhzNS40LTE3LjkgMTMuOS0yMS44TDIzMi41IDUuMnpNNDguMSAyMTguNGwxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSAyNzcuOEM1LjQgMjczLjggMCAyNjUuMyAwIDI1NnM1LjQtMTcuOSAxMy45LTIxLjhsMzQuMS0xNS44ek0xMy45IDM2Mi4ybDM0LjEtMTUuOCAxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSA0MDUuOEM1LjQgNDAxLjggMCAzOTMuMyAwIDM4NHM1LjQtMTcuOSAxMy45LTIxLjh6Il19LHVWcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtbWFzayIsaWNvbjpbNTEyLDUxMixbXSwiZTA2MyIsIk00NDUuOSAxOTNjLS4xLS40LS4yLS45LS4yLTEuMy0xNS43LTEwOC40LTEwOC45LTE5MS43LTIyMS43LTE5MS43LTg1IDAtMTU5IDQ3LjQtMTk2LjkgMTE3LjJMMjgzLjMgMjg4IDQ1NiAyODggNDQyLjkgMzM2IDMzNiAzMzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsOTguMiAwLTguNyAzMi04OS41IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAuNiAwYy02LjcgMTkuMS0yNC44IDMyLTQ1LjMgMzJMMjg4IDQ2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMDQuNS0yNDcuNS0xNjVDMyAxODIuMSAwIDIwMi43IDAgMjI0IDAgMjc4IDE5LjEgMzI3LjUgNTAuOSAzNjYuMiA1OC45IDM3NS45IDY0IDM4Ny44IDY0IDQwMC40TDY0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjcuMyAwIC43IDAgMTMxLjMgMGM0NC45IDAgODMuOC0zMS4xIDkzLjYtNzQuOWwzMy45LTE1MC4zYzMuMy0xNC40LS4zLTI5LjUtOS43LTQxTDQ0NS45IDE5M3pNMjg4IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxscGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMiLGljb246WzUxMiw1MTIsWyJzaWduLWxhbmd1YWdlIiwic2lnbmluZyJdLCJmMmE3IiwiTTUxMiAxNjBsLS4xIDcyLjZjMCA0NC44LTE3LjYgODcuMS00Ny45IDExOC40LS4zLTc3LTQwLjEtMTQ4LjQtMTA1LjQtMTg5LjNsLTEuOS0xLjJjMi41LTMuNyAyLjgtOC42IC40LTEyLjdsLTYyLTEwNy40Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOFMzMzAgNSAzMzYuNiAxNi41bDY4IDExNy44IDAgMCAwIDAgNDMuMyA3NSAuMS00OS4zYzAtMTcuNyAxNC40LTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ6TTI5OC40IDEyNC4yYy0xNC4xLTguOC0yOS44LTEyLjctNDUuMi0xMi4xTDIxNi43IDQ4LjhjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44bDY3LjEgMTE2LjItMjctMTYuOXpNMjExLjkgODguNWwxNi40IDI4LjRjLTE1LjEgNS41LTI4LjYgMTUuNi0zOC4zIDI5LjdsLTE5LjctMzQuMmMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6bS00Ni40IDYzLjdsMTIuNSAyMS43Yy0yIDguNi0yLjUgMTcuNS0xLjcgMjYuMWwtNC4zIDAgMCAwLTM0LjQgMC0xMy43LTIzLjhjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44ek0yMjguOSAxNzVjOS40LTE1IDI5LjEtMTkuNSA0NC4xLTEwLjJsNjAuMiAzNy42QzM4NC43IDIzNC43IDQxNiAyOTEuMiA0MTYgMzUybDAgOGMwIDgzLjktNjguMSAxNTItMTUyIDE1Mkw4OCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTIgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkw1NiA0NDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTI0IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMMjQgMzY4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE1NiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDI5NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMzYgMCAwIDAgMCAwIDkzLjIgMC00Ni4yLTI4LjljLTE1LTkuNC0xOS41LTI5LjEtMTAuMi00NC4xeiJdfSxwVnI9bHBlLGZWcj1scGUsaFZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldHMiLGljb246WzUxMiw1MTIsW10sImY0OTAiLCJNNDk1LjMgNzYuNmMtNC42LTguNy0xNi4zLTkuNy0yMy4zLTIuN0wyOTcuOSAyNDhjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40ek0yNDAuNyAyMTEuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDQwYzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0xNDQgMjI0Qzc5LjIgMjI0IDI0LjQgMjY2LjggNi4zIDMyNS42IDMuNCAzMzUuMSAxMSAzNDQgMjAuOSAzNDRsMjQ2LjIgMGM5LjkgMCAxNy41LTguOSAxNC42LTE4LjQtLjktMy0xLjktNS45LTMtOC43LTM3LjQtMTguMS02OC00OC04Ny04NC44LTE0LjktNS4yLTMwLjktOC4xLTQ3LjYtOC4xek0yODEuNyA0MTAuNGMyLjktOS41LTQuNy0xOC40LTE0LjYtMTguNEwyMC45IDM5MkMxMSAzOTIgMy40IDQwMC45IDYuMyA0MTAuNCAyNC40IDQ2OS4yIDc5LjIgNTEyIDE0NCA1MTJzMTE5LjYtNDIuOCAxMzcuNy0xMDEuNnoiXX0sbVZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1oYW5naW5nIixpY29uOls1MTIsNTEyLFtdLCJmNWNkIiwiTTIyNCA5NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjIuNSAzMmMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMTEuMiAxLjkgMjIgNS41IDMybC0yMS44IDBjLTI4LjMgMC01My4yIDE4LjUtNjEuMyA0NS42TDIuNCA0NDAuMkMuOCA0NDUuNCAwIDQ1MC44IDAgNDU2LjIgMCA0ODcgMjUgNTEyIDU1LjggNTEybDQwMC40IDBjMzAuOCAwIDU1LjgtMjUgNTUuOC01NS44IDAtNS40LS44LTEwLjgtMi40LTE2bC04MC0yNjYuNWMtOC4xLTI3LjEtMzMtNDUuNi02MS4zLTQ1LjZsLTIxLjggMHoiXX0sZ1ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UiLGljb246WzUxMiw1MTIsWzEyNzkyMl0sImY1MjIiLCJNMTQxLjQgMi4zQzEwMy04IDYzLjUgMTQuOCA1My4zIDUzLjJMMi41IDI0Mi43Qy03LjggMjgxLjEgMTUgMzIwLjYgNTMuNCAzMzAuOWwxODkuNSA1MC44YzM4LjQgMTAuMyA3Ny45LTEyLjUgODguMi01MC45bDUwLjgtMTg5LjVjMTAuMy0zOC40LTEyLjUtNzcuOS01MC45LTg4LjJMMTQxLjQgMi4zem0yMyAyMDUuN2EzMiAzMiAwIDEgMSA1NS40LTMyIDMyIDMyIDAgMSAxIC01NS40IDMyek03OS4yIDIyMC4zYTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bTE4NSA5Ni40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6bTktMjA4LjRhMzIgMzIgMCAxIDEgMzIgNTUuNCAzMiAzMiAwIDEgMSAtMzItNTUuNHptLTEyMSAxNC40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6TTQxOCAxOTJMMzc3LjQgMzQzLjJjLTE3LjIgNjQtODMgMTAyLTE0NyA4NC45bC0zOC4zLTEwLjMgMCAzMC4yYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQxOCAxOTJ6Il19LFBxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLXNsYXNoIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0LXNsYXNoIl0sImUwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTctNTcgMC0xOTAuM2MyNi44LTEuOSA0OC0yNC4zIDQ4LTUxLjYgMC04LTEuOS0xNi01LjUtMjMuMkw0OTcuNyA2Ny40QzQ4Ni44IDQ1LjcgNDY0LjcgMzIgNDQwLjQgMzJMMTM1LjYgMzJjLTEwLjcgMC0yMSAyLjctMzAuMiA3LjZMNDEtMjQuOXpNMzIxLjggMjU2TDQ0OCAyNTYgNDQ4IDM4Mi4yIDMyMS44IDI1NnpNMzUyIDQyMS44bC02NC02NCAwIDEwLjJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyIDU4LjIgMC0xMzQuOC0xMzQuOC0yOS45IDU5LjljLTMuNiA3LjItNS41IDE1LjEtNS41IDIzLjIgMCAyNy4zIDIxLjIgNDkuNyA0OCA1MS42TDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEwLjJ6Il19LGJWcj1QcWUsTnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtZG93biIsaWNvbjpbMzg0LDUxMixbInNvcnQtZGVzYyJdLCJmMGRkIiwiTTMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzMzMuNSA5LjQgMzQyLjZsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OHoiXX0seFZyPU5xZSx2VnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzZXRhLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjEiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDEwNC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAyMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjODAuMiAwIDE0Ni42LTU5IDE1OC4yLTEzNmwyNS44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1LjggMEMzODYuNiA5MSAzMjAuMiAzMiAyNDAgMzJMMTEyIDMyek0zMzMgMTY4bC0xODkgMCAwLTcyIDk2IDBjNDQuNyAwIDgyLjMgMzAuNiA5MyA3MnpNMTQ0IDIxNmwxODkgMGMtMTAuNyA0MS40LTQ4LjIgNzItOTMgNzJsLTk2IDAgMC03MnoiXX0sT3FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldC1zY3JlZW4tYnV0dG9uIixpY29uOls0NDgsNTEyLFsidGFibGV0LWFsdCJdLCJmM2ZhIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMjU2IDQzMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zODQgNjRsLTMyMCAwIDAgMjg4IDMyMCAwIDAtMjg4eiJdfSx5VnI9T3FlLFJxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZG9sbGFyIixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXVzZCJdLCJmNGMwIiwiTTI4OC0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMi0xLjggMGMtMzYuNiAwLTY2LjIgMjkuNy02Ni4yIDY2LjIgMCAzMy40IDI0LjkgNjEuNiA1OCA2NS43bDYxIDcuNmM1LjEgLjYgOSA1IDkgMTAuMiAwIDUuNy00LjYgMTAuMi0xMC4yIDEwLjJMMjQwIDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhzMTIuNSAyOCAyOCAyOGwyNCAwIDAgMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEyIDEuOCAwYzM2LjYgMCA2Ni4yLTI5LjcgNjYuMi02Ni4yIDAtMzMuNC0yNC45LTYxLjYtNTgtNjUuN2wtNjEtNy42Yy01LjEtLjYtOS01LTktMTAuMiAwLTUuNyA0LjYtMTAuMiAxMC4yLTEwLjJMMzI4IDc2YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC0xNiAwIDAtMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSx3VnI9UnFlLEZxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQiLGljb246WzUxMiw1MTIsWzEyODczNywic2hpZWxkLWJsYW5rIl0sImYxMzIiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAweiJdfSxrVnI9RnFlLEJxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoIixpY29uOls1MTIsNTEyLFsibGF1Z2giXSwiZjU5OSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTAxLjYgMzE0Yy0zLjctMTMuNyA3LjUtMjYgMjEuNy0yNmwyNjUuNCAwYzE0LjIgMCAyNS40IDEyLjMgMjEuNyAyNi0xOC41IDY4LTgwLjYgMTE4LTE1NC40IDExOFMxMjAgMzgyIDEwMS42IDMxNHpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxTVnI9QnFlLE1Wcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nIixpY29uOls2NDAsNTEyLFtdLCJmNGMyIiwiTTgwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MFMwIDgxLjkgMCAxMDRMMCAzMjUuNWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOUwxMjggNDkzLjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2w2Ni43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC03OC45YzAtMjkuNy0xMS44LTU4LjItMzIuOC03OS4ybC0yNS4zLTI1LjMgMCAwYy03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjIgMTEgMTEgOS4yIDI5LjItMy43IDM3LjgtOS43IDYuNS0yMi43IDUuMi0zMS0zLjFMOTguNyAzMDkuNWMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM0w4MCAxMDR6bTQ4MCAwbDAgMTYwLjJjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNsLTUxLjEgNTEuMWMtOC4zIDguMy0yMS4zIDkuNi0zMSAzLjEtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44IDcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjJsMCAwLTI1LjMgMjUuM2MtMjEgMjEtMzIuOCA0OS41LTMyLjggNzkuMmwwIDc4LjljMCAyNi41IDIxLjUgNDggNDggNDhsNjYuNyAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDk5LjktOTkuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45TDY0MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB6Il19LEhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LXNob3BwaW5nIixpY29uOls2NDAsNTEyLFsxMjg3MjIsInNob3BwaW5nLWNhcnQiXSwiZjA3YSIsIk0yNC0xNkMxMC43LTE2IDAtNS4zIDAgOFMxMC43IDMyIDI0IDMybDQ1LjMgMGMzLjkgMCA3LjIgMi44IDcuOSA2LjZsNTIuMSAyODYuM2M2LjIgMzQuMiAzNiA1OS4xIDcwLjggNTkuMUw0NTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNTUuOSAwYy0xMS42IDAtMjEuNS04LjMtMjMuNi0xOS43bC01LjEtMjguMyAzMDMuNiAwYzMwLjggMCA1Ny4yLTIxLjkgNjIuOS01Mi4yTDU2OC45IDY5LjlDNTcyLjYgNTAuMiA1NTcuNSAzMiA1MzcuNCAzMmwtNDEyLjcgMC0uNC0yYy00LjgtMjYuNi0yOC00Ni01NS4xLTQ2TDI0LTE2ek0yMDggNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxDVnI9SHFlLHpWcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvY3RhZ29uIixpY29uOls1MTIsNTEyLFsxMjg3MjFdLCJmMzA2IiwiTTE4OC42IC4xYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN0wxOS4yIDE0M0M3LjIgMTU1IC41IDE3MS4yIC41IDE4OC4ybDAgMTM1LjZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMMTQzLjQgNDkzLjJjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2wxMzUuNiAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My42IDM2OWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zbDAtMTM1LjZjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzY5LjUgMTguOGMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wxODguNiAuMXoiXX0sX1ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjI1YSIsIk0xMjggNDBjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE0OC4yYzguNS03LjYgMTkuNy0xMi4yIDMyLTEyLjIgMjAuNiAwIDM4LjIgMTMgNDUgMzEuMiA4LjgtOS4zIDIxLjItMTUuMiAzNS0xNS4yIDI1LjMgMCA0NiAxOS41IDQ3LjkgNDQuMyA4LjUtNy43IDE5LjgtMTIuMyAzMi4xLTEyLjMgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTg1LjMgMGMtNSAwLTkuOS0uMy0xNC43LTEtNTUuMy01LjYtMTA2LjItMzQtMTQwLTc5TDggMzM2Yy0xMy4zLTE3LjctOS43LTQyLjcgOC01NnM0Mi43LTkuNyA1NiA4bDU2IDc0LjcgMC0zMjIuN3pNMjQwIDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSxUVnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGw4MCAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjguOS0xNyA1My44LTQxLjYgNjUuM2wzMC4yIDUwLjNjNi44IDExLjQgMy4xIDI2LjEtOC4yIDMyLjlzLTI2LjEgMy4xLTMyLjktOC4ybC00MS02OC4zLTM0LjQgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0em03MiA5Nmw4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDAgMCA0OCA0OCAweiJdfSxMVnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2Utc2lnbmFsIixpY29uOls1NzYsNTEyLFtdLCJlMDEyIiwiTTUxNS45IDI0MGwtMTkuOSAwIDAgMTQ0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMzcgMGMtMjQtOTEuNy05My41LTE2NS0xODMtMTk0LjNsMC0xMy43LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjc2LjUtNC45QzI4My45LTEyIDI5My43LTE2IDMwNC0xNnMyMC4xIDQgMjcuNSAxMS4xTDUzNS40IDE5MS43YzUuNSA1LjMgOC42IDEyLjYgOC42IDIwLjIgMCAxNS41LTEyLjYgMjguMS0yOC4xIDI4LjF6TTI4MCAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwek0yNCAyODhjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0wIDQwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OC0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sRFZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmdsYWRlc2hpLXRha2Etc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTJlNiIsIk0zNiAzMi4zQzE4LjQgMzAuMSAyLjQgNDIuNSAuMyA2MFMxMC41IDkzLjYgMjggOTUuOGw3LjkgMWMxNiAyIDI4IDE1LjYgMjggMzEuOGwwIDMxLjUtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgMTc2YzAgNTMgNDMgOTYgOTYgOTZsMzIgMGMxMDYgMCAxOTItODYgMTkyLTE5MmwwLTMyYzAtNTMtNDMtOTYtOTYtOTZsLTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtMzEuNUMxMjggODAuMSA5MiAzOS4yIDQzLjkgMzMuMmwtNy45LTF6Il19LE5FYT17ZmEwOnE5cixmYTE6VjlyLGZhMjpqOXIsZmEzOlU5cixmYTQ6VzlyLGZhNTpHOXIsZmE2Olk5cixmYTc6SzlyLGZhODpaOXIsZmE5OlE5cixmYURvbGxhclNpZ246cHVlLGZhRG9sbGFyOlg5cixmYVVzZDpKOXIsZmFEb2c6ZWdyLGZhVHJ1Y2tNb3Zpbmc6dGdyLGZhUm90YXRlOkFQZSxmYVN5bmNBbHQ6cmdyLGZhU3F1YXJlTWludXM6RVBlLGZhTWludXNTcXVhcmU6YWdyLGZhQWxpZ25KdXN0aWZ5OmlncixmYUNhbGVuZGFyQ2hlY2s6c2dyLGZhRmFjZUtpc3M6SVBlLGZhS2lzczpuZ3IsZmFLaXRjaGVuU2V0Om9ncixmYURuYTpsZ3IsZmFDaGlsZFJlYWNoaW5nOmNncixmYVBhc3RlOmpfLGZhRmlsZUNsaXBib2FyZDpkZ3IsZmFNZXRlb3I6dWdyLGZhR2VhcnM6UFBlLGZhQ29nczpwZ3IsZmFGaWxlQ2lyY2xlUGx1czpmZ3IsZmFJY2ljbGVzOmhncixmYUFycm93VHJlbmRVcDptZ3IsZmFIZXhhZ29uTm9kZXNCb2x0OmdncixmYVF1ZXN0aW9uOmJncixmYUhhbmRzQm91bmQ6eGdyLGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2U6dmdyLGZhRmlsZUFycm93RG93bjpOUGUsZmFGaWxlRG93bmxvYWQ6eWdyLGZhUGVyc29uQm9vdGg6d2dyLGZhTG9jdXN0OmtncixmYVJpZ2h0TG9uZzpPUGUsZmFMb25nQXJyb3dBbHRSaWdodDpTZ3IsZmFUcnVja0Ryb3BsZXQ6TWdyLGZhSGFuZEhvbGRpbmdNZWRpY2FsOkNncixmYUhhbmRQb2ludExlZnQ6emdyLGZhQ2FsY3VsYXRvcjpfZ3IsZmFNaW51czpVXyxmYVN1YnRyYWN0OlRncixmYUFycm93VXBaQTpSUGUsZmFTb3J0QWxwaGFVcEFsdDpMZ3IsZmFNaWNyb3Bob25lU2xhc2g6RGdyLGZhU3F1YXJlUGVuOmZ1ZSxmYVBlblNxdWFyZTokZ3IsZmFQZW5jaWxTcXVhcmU6QWdyLGZhSGFuZEZpc3Q6RlBlLGZhRmlzdFJhaXNlZDpFZ3IsZmFDb21tZW50U21zOkJQZSxmYVNtczpJZ3IsZmFTaW1DYXJkOlBncixmYVNjYWxlQmFsYW5jZWQ6SFBlLGZhQmFsYW5jZVNjYWxlOk5ncixmYUNhcjpxUGUsZmFBdXRvbW9iaWxlOk9ncixmYUNyb3BTaW1wbGU6VlBlLGZhQ3JvcEFsdDpSZ3IsZmFNZWRhbDpGZ3IsZmFTY3JvbGw6QmdyLGZhRmlsZUV4Y2VsOkhncixmYUZpbHRlcjpxZ3IsZmFEcnVtOlZncixmYU1hcFBpbjpqZ3IsZmFTY2FsZVVuYmFsYW5jZWRGbGlwOmpQZSxmYUJhbGFuY2VTY2FsZVJpZ2h0OlVncixmYUFycm93c1RvQ2lyY2xlOldncixmYUVudmVsb3BlOkdncixmYUJhYnk6WWdyLGZhU3F1YXJlQ2FyZXREb3duOlVQZSxmYUNhcmV0U3F1YXJlRG93bjpLZ3IsZmFUZW50OlpncixmYUE6UWdyLGZhUGFyYWNodXRlQm94OlhncixmYUNhcnRBcnJvd0Rvd246SmdyLGZhQnJpZGdlQ2lyY2xlRXhjbGFtYXRpb246ZWJyLGZhQ2xvdWRBcnJvd1VwOmh1ZSxmYUNsb3VkVXBsb2FkOnRicixmYUNsb3VkVXBsb2FkQWx0OnJicixmYUF0OmFicixmYUluZGlhblJ1cGVlU2lnbjptdWUsZmFJbmRpYW5SdXBlZTppYnIsZmFJbnI6c2JyLGZhVHJ1Y2s6bmJyLGZhQ2hhbGtib2FyZFVzZXI6V1BlLGZhQ2hhbGtib2FyZFRlYWNoZXI6b2JyLGZhVXNlckNoZWNrOmxicixmYVVzZXJOaW5qYTpjYnIsZmFQbGFudFdpbHQ6ZGJyLGZhV2VpZ2h0U2NhbGU6R1BlLGZhV2VpZ2h0OnVicixmYUNhcmV0UmlnaHQ6Y3BlLGZhRmxvcmluU2lnbjpwYnIsZmFCZWxsOmRwZSxmYUxhcmlTaWduOmZicixmYU1pbGxTaWduOmhicixmYVBlcnNvblNub3dib2FyZGluZzpZUGUsZmFTbm93Ym9hcmRpbmc6bWJyLGZhVHR5OktQZSxmYVRlbGV0eXBlOmdicixmYVVzZXJzUmVjdGFuZ2xlOmJicixmYU1vYmlsZTpndWUsZmFNb2JpbGVBbmRyb2lkOnhicixmYU1vYmlsZVBob25lOnZicixmYUFycm93c1R1cm5Ub0RvdHM6eWJyLGZhRXhjbGFtYXRpb246d2JyLGZhQ2h1cmNoOmticixmYVRvZ2dsZU9mZjpTYnIsZmFTaG9lUHJpbnRzOk1icixmYUZpbGVDaXJjbGVFeGNsYW1hdGlvbjpDYnIsZmFXYWxsZXQ6dXBlLGZhTWVzc2FnZTpXXyxmYUNvbW1lbnRBbHQ6emJyLGZhVHJvcGh5Ol9icixmYUZhY2VEaXp6eTpaUGUsZmFEaXp6eTpUYnIsZmFCYWN0ZXJpYTpMYnIsZmFFYXJEZWFmOlRfLGZhRGVhZjpEYnIsZmFEZWFmbmVzczokYnIsZmFIYXJkT2ZIZWFyaW5nOkFicixmYVBlb3BsZUFycm93czpRUGUsZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQ6RWJyLGZhSGFuZHNDbGFwcGluZzpJYnIsZmFWaXJ1c0NvdmlkU2xhc2g6UGJyLGZhQ2FsZW5kYXJEYXlzOlhQZSxmYUNhbGVuZGFyQWx0Ok5icixmYURpYW1vbmRUdXJuUmlnaHQ6SlBlLGZhRGlyZWN0aW9uczpPYnIsZmFIYW5kUG9pbnRVcDpSYnIsZmFCZXppZXJDdXJ2ZTpGYnIsZmFQZXJzb25IYWxmRHJlc3M6QmJyLGZhU3F1YXJlUG9sbEhvcml6b250YWw6ZU5lLGZhUG9sbEg6SGJyLGZhU2Nob29sQ2lyY2xlWG1hcms6cWJyLGZhSGFuZExpemFyZDpWYnIsZmFDaGFsa2JvYXJkOnROZSxmYUJsYWNrYm9hcmQ6amJyLGZhVXBSaWdodEZyb21TcXVhcmU6ck5lLGZhRXh0ZXJuYWxMaW5rQWx0OlVicixmYVNxdWFyZUZ1bGw6V2JyLGZhQ2xvdmVyOkdicixmYVRlZXRoT3BlbjpZYnIsZmFCYXJzU3RhZ2dlcmVkOmJ1ZSxmYVJlb3JkZXI6S2JyLGZhU3RyZWFtOlpicixmYVdhcmVob3VzZTpRYnIsZmFTd2F0Y2hib29rOlhicixmYUNhbXBncm91bmQ6SmJyLGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQ6ZXhyLGZhR2xhc3Nlczp0eHIsZmFDaXJjbGVQYXVzZTphTmUsZmFQYXVzZUNpcmNsZTpyeHIsZmFNZW1vcnk6YXhyLGZhR2lmdDppeHIsZmFNb25leUJpbGxXaGVhdDpzeHIsZmFEdW5nZW9uOm54cixmYVN1aXRjYXNlTWVkaWNhbDppTmUsZmFNZWRraXQ6b3hyLGZhUGVyc29uQ2FuZTpseHIsZmFHYXVnZTpMXyxmYURhc2hib2FyZDpjeHIsZmFHYXVnZU1lZDpkeHIsZmFUYWNob21ldGVyQWx0QXZlcmFnZTp1eHIsZmFFbnZlbG9wZU9wZW5UZXh0OnB4cixmYVRvb2xib3g6ZnhyLGZhUG93ZXJPZmY6aHhyLGZhU2lnbmFsOnh1ZSxmYVNpZ25hbDU6bXhyLGZhU2lnbmFsUGVyZmVjdDpneHIsZmFBcnJvd3NTcGluOmJ4cixmYUpvaW50Onh4cixmYUJyYWlsbGU6dnhyLGZhQmFza2V0U2hvcHBpbmc6c05lLGZhU2hvcHBpbmdCYXNrZXQ6eXhyLGZhQnJpZGdlOnd4cixmYVBsYW5lQXJyaXZhbDpreHIsZmFDYXNoUmVnaXN0ZXI6U3hyLGZhUmluZzpNeHIsZmFBcXVhcml1czpDeHIsZmFTaGFyZU5vZGVzOm5OZSxmYVNoYXJlQWx0Onp4cixmYVBlcnNvbkNpcmNsZUV4Y2xhbWF0aW9uOl94cixmYUJpbm9jdWxhcnM6VHhyLGZhS2lwU2lnbjpMeHIsZmFIYXJkRHJpdmU6b05lLGZhSGRkOkR4cixmYVJhbmtpbmdTdGFyOiR4cixmYVVzZXJUaWU6QXhyLGZhRWxsaXBzaXM6bE5lLGZhRWxsaXBzaXNIOkV4cixmYVN0b3JlU2xhc2g6SXhyLGZhUGVyY2VudDpjTmUsZmFQZXJjZW50YWdlOlB4cixmYUZpbGVaaXBwZXI6ZE5lLGZhRmlsZUFyY2hpdmU6TnhyLGZhRGlzcGxheTpPeHIsZmFJY29uczp1TmUsZmFIZWFydE11c2ljQ2FtZXJhQm9sdDpSeHIsZmFSdWxlclZlcnRpY2FsOkZ4cixmYU1hcExvY2F0aW9uRG90OnBOZSxmYU1hcE1hcmtlZEFsdDpCeHIsZmFIZWFydENyYWNrOmZOZSxmYUhlYXJ0QnJva2VuOkh4cixmYUNvdzpxeHIsZmFSc3M6R18sZmFGZWVkOlZ4cixmYU1hZ25pZnlpbmdHbGFzczpZXyxmYVNlYXJjaDpqeHIsZmFDbG91ZE1vb246VXhyLGZhQm94ZXNTdGFja2VkOnZ1ZSxmYUJveGVzOld4cixmYUJveGVzQWx0Okd4cixmYUNvZGVCcmFuY2g6WXhyLGZhQmFuOmhOZSxmYUNhbmNlbDpLeHIsZmFKdWdEZXRlcmdlbnQ6WnhyLGZhUmVwbHk6bU5lLGZhTWFpbFJlcGx5OlF4cixmYVN1blBsYW50V2lsdDpYeHIsZmFCYWN0ZXJpdW06SnhyLGZhUmVjb3JkVmlueWw6ZXZyLGZhRmxvcHB5RGlzazpnTmUsZmFTYXZlOnR2cixmYVRvaWxldHNQb3J0YWJsZTpydnIsZmFPOmF2cixmYVBhbGV0dGU6aXZyLGZhVW5sb2NrOnN2cixmYUVhckxpc3RlbjpiTmUsZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zOm52cixmYUNvZGVQdWxsUmVxdWVzdDpvdnIsZmFLZXk6bHZyLGZhU2t1bGw6Y3ZyLGZhTWFyc1N0cm9rZVVwOnhOZSxmYU1hcnNTdHJva2VWOmR2cixmYUZpcmVGbGFtZVNpbXBsZTp2TmUsZmFCdXJuOnV2cixmYVRyZWU6cHZyLGZhU21vZzpmdnIsZmFTOmh2cixmYUplZGk6bXZyLGZhUGVyc29uSGlraW5nOnlOZSxmYUhpa2luZzpndnIsZmFBcnJvd3NVcFRvTGluZTpidnIsZmFNYXJzRG91YmxlOnh2cixmYVRoZXJtb21ldGVyOnZ2cixmYVBhaW50YnJ1c2g6d05lLGZhUGFpbnRCcnVzaDp5dnIsZmFOZXV0ZXI6d3ZyLGZhU3F1YXJlUGhvbmVGbGlwOmtOZSxmYVBob25lU3F1YXJlQWx0Omt2cixmYUZhY2VHcmluVG9uZ3VlU3F1aW50OlNOZSxmYUdyaW5Ub25ndWVTcXVpbnQ6U3ZyLGZhQ29tbWVudERvbGxhcjpNdnIsZmFIaXBwbzpDdnIsZmFCb3dsRm9vZDp6dnIsZmFTcXVhcmVWaXJ1czpfdnIsZmFDbG91ZFN1blJhaW46VHZyLGZhQXJyb3dSaWdodExvbmc6TU5lLGZhTG9uZ0Fycm93UmlnaHQ6THZyLGZhQnVpbGRpbmdVbjpEdnIsZmFUZW1wZXJhdHVyZUxvdzokdnIsZmFEb29yT3BlbjpBdnIsZmFBbGlnbkxlZnQ6RXZyLGZhQ2FtZXJhOkNOZSxmYUNhbWVyYUFsdDpJdnIsZmFVc2Vyc1JheXM6UHZyLGZhUmFpbmJvdzpOdnIsZmFTaXRlbWFwOk92cixmYUZhY2VHcmluU3RhcnM6ek5lLGZhR3JpblN0YXJzOlJ2cixmYVNvcnRVcDpfTmUsZmFTb3J0QXNjOkZ2cixmYUV5ZTpwcGUsZmFDYXJldExlZnQ6ZnBlLGZhQXBwbGVXaG9sZTpUTmUsZmFBcHBsZUFsdDpCdnIsZmFTY3JvbGxUb3JhaDpMTmUsZmFUb3JhaDpIdnIsZmFIb3VzZUxvY2s6cXZyLGZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lOlZ2cixmYVRyYXNoOm5ULGZhRmFjZVNhZFRlYXI6RE5lLGZhU2FkVGVhcjpqdnIsZmFGYXg6VXZyLGZhUGVyc29uQ2lyY2xlUGx1czpXdnIsZmFIYW1zYTpHdnIsZmFQZXJzb25DaXJjbGVRdWVzdGlvbjpZdnIsZmFDbGlwYm9hcmRDaGVjazpLdnIsZmFTaGFyZUZyb21TcXVhcmU6JE5lLGZhU2hhcmVTcXVhcmU6WnZyLGZhUmVjZWlwdDpocGUsZmFFcXVhbHM6UXZyLGZhQ2hldnJvblVwOlh2cixmYVZpcnVzU2xhc2g6SnZyLGZhU2xhc2g6ZXlyLGZhRXhwYW5kOnR5cixmYU5vdGVTdGlja3k6QU5lLGZhU3RpY2t5Tm90ZTpyeXIsZmFUYWJsZUNvbHVtbnM6RU5lLGZhQ29sdW1uczpheXIsZmFQZXJzb25TaGVsdGVyOml5cixmYUNpcmNsZU5vdGNoOnN5cixmYVdhdGVyOm55cixmYURlbGV0ZUxlZnQ6SU5lLGZhQmFja3NwYWNlOm95cixmYUJyb29tQmFsbDp5dWUsZmFRdWlkZGl0Y2g6bHlyLGZhUXVpZGRpdGNoQnJvb21CYWxsOmN5cixmYUo6ZHlyLGZhU2h1dHRsZVNwYWNlOlBOZSxmYVNwYWNlU2h1dHRsZTp1eXIsZmFZaW5ZYW5nOnB5cixmYVN0b3A6ZnlyLGZhVHJvd2VsOmh5cixmYUhhbmRCYWNrRmlzdDpOTmUsZmFIYW5kUm9jazpteXIsZmFUZW1wZXJhdHVyZUhpZ2g6Z3lyLGZhR3JlYXRlclRoYW46YnlyLGZhQ3J1dGNoOnh5cixmYVNlcHRhZ29uOk9OZSxmYUhlcHRhZ29uOnZ5cixmYVN0cmVldFZpZXc6eXlyLGZhV2F2ZVNxdWFyZTp3eXIsZmFBbmdsZUxlZnQ6a3lyLGZhU2NyZXdkcml2ZXI6U3lyLGZhVHJhY3RvcjpNeXIsZmFCcmlkZ2VDaXJjbGVYbWFyazpDeXIsZmFWaWFsczp6eXIsZmFTdGV0aG9zY29wZTpfeXIsZmFQb2RjYXN0OlR5cixmYUFycm93VXBSaWdodERvdHM6THlyLGZhQ2hlc3NRdWVlbjpEeXIsZmFBbmNob3JDaXJjbGVFeGNsYW1hdGlvbjokeXIsZmFFbGxpcHNpc1ZlcnRpY2FsOlJOZSxmYUVsbGlwc2lzVjpBeXIsZmFIZWFydENpcmNsZUV4Y2xhbWF0aW9uOkV5cixmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb246SXlyLGZhUGVyc29uQXJyb3dVcEZyb21MaW5lOlB5cixmYU5vdEVxdWFsOk55cixmYVRyYWluVHJhbTpPeXIsZmFQbGFuZURlcGFydHVyZTpSeXIsZmFSaWdodFRvQnJhY2tldDpGTmUsZmFTaWduSW5BbHQ6RnlyLGZhU2RDYXJkOkJ5cixmYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb246SHlyLGZhU2hla2VsU2lnbjpfeSxmYUlsczpxeXIsZmFTaGVrZWw6VnlyLGZhU2hlcWVsOmp5cixmYVNoZXFlbFNpZ246VXlyLGZhUmFkaW86V3lyLGZhSGFuZERvdHM6Qk5lLGZhQWxsZXJnaWVzOkd5cixmYUJvb2tTa3VsbDpITmUsZmFCb29rRGVhZDpZeXIsZmFVbmxvY2tLZXlob2xlOnFOZSxmYVVubG9ja0FsdDpLeXIsZmFGaWxlQXJyb3dVcDpWTmUsZmFGaWxlVXBsb2FkOlp5cixmYUZhY2VHcmluVGVhcnM6ak5lLGZhR3JpblRlYXJzOlF5cixmYVBlblRvU3F1YXJlOktfLGZhRWRpdDpYeXIsZmFFYXJ0aEV1cm9wZTpVTmUsZmFHbG9iZUV1cm9wZTpKeXIsZmFGYWNlR3JpbkJlYW1Td2VhdDpXTmUsZmFHcmluQmVhbVN3ZWF0OmV3cixmYUNpcmNsZUhhbGZTdHJva2U6R05lLGZhQWRqdXN0OnR3cixmYVBlcnNvbk1pbGl0YXJ5VG9QZXJzb246cndyLGZhVGFibGVDZWxsc0NvbHVtbkxvY2s6YXdyLGZhVHJ1Y2tGaWVsZFVuOml3cixmYUNsb2NrOllOZSxmYUNsb2NrRm91cjpzd3IsZmFCb29rOm53cixmYUZhY2VMYXVnaFdpbms6S05lLGZhTGF1Z2hXaW5rOm93cixmYUNsb3VkTWVhdGJhbGw6bHdyLGZhQ2hhcnRBcmVhOlpOZSxmYUFyZWFDaGFydDpjd3IsZmFSdXBpYWhTaWduOmR3cixmYVRleHRXaWR0aDp1d3IsZmFTYXRlbGxpdGU6cHdyLGZhTWFnbmlmeWluZ0dsYXNzTWludXM6UU5lLGZhU2VhcmNoTWludXM6ZndyLGZhUGVvcGxlR3JvdXA6aHdyLGZhU3F1YXJlQmluYXJ5Om13cixmYU1hc2tzVGhlYXRlcjpYTmUsZmFUaGVhdGVyTWFza3M6Z3dyLGZhQ2FydFBsdXM6YndyLGZhSGFuZHNBc2xJbnRlcnByZXRpbmc6RF8sZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzp4d3IsZmFBc2xJbnRlcnByZXRpbmc6dndyLGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzp5d3IsZmFUYWJsZUNlbGxzUm93VW5sb2NrOnd3cixmYVJvY2tldDprd3IsZmFTaHJpbXA6U3dyLGZhVGVuZ2VTaWduOkpOZSxmYVRlbmdlOk13cixmYUhvdXNlQ2hpbW5leU1lZGljYWw6ZU9lLGZhQ2xpbmljTWVkaWNhbDpDd3IsZmFVc2Vyc1NsYXNoOnp3cixmYVBhcGVyUGxhbmU6X3dyLGZhQm9va0F0bGFzOnRPZSxmYUF0bGFzOlR3cixmYVRhYmxlOkx3cixmYUhlYXJ0OkR3cixmYUNpcmNsZUNoZXZyb25VcDpyT2UsZmFDaGV2cm9uQ2lyY2xlVXA6JHdyLGZhQmF0dGVyeUhhbGY6YU9lLGZhQmF0dGVyeTM6QXdyLGZhRm9udEF3ZXNvbWU6d3VlLGZhRm9udEF3ZXNvbWVGbGFnOkV3cixmYUZvbnRBd2Vzb21lTG9nb0Z1bGw6SXdyLGZhSGFuZGN1ZmZzOlB3cixmYUhhdENvd2JveVNpZGU6TndyLGZhSW5kdXN0cnk6T3dyLGZhTGluZXNMZWFuaW5nOlJ3cixmYVBhc3Nwb3J0OkZ3cixmYUluZmluaXR5OkJ3cixmYUNsb25lOkh3cixmYUZvcndhcmQ6cXdyLGZhTTpWd3IsZmFSb2FkU3Bpa2VzOmp3cixmYU1vdW50YWluOlV3cixmYUNoZXNzOld3cixmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVyczokXyxmYVRlbXBlcmF0dXJlMzpHd3IsZmFUaGVybW9tZXRlcjM6WXdyLGZhVGhlcm1vbWV0ZXJUaHJlZVF1YXJ0ZXJzOkt3cixmYUI6WndyLGZhU2hpZWxkVmlydXM6UXdyLGZhTGl0ZWNvaW5TaWduOlh3cixmYURpY2VENjpKd3IsZmFHcmlwTGluZXNWZXJ0aWNhbDpla3IsZmFHb2xmQmFsbFRlZTppT2UsZmFHb2xmQmFsbDp0a3IsZmFIZXhhZ29uOnJrcixmYUZvbGRlck9wZW46YWtyLGZhS2FhYmE6aWtyLGZhSGFuZEhvbGRpbmc6c2tyLGZhU2luZ2xlUXVvdGVSaWdodDpua3IsZmFCb3R0bGVEcm9wbGV0Om9rcixmYVdpbmRvd01pbmltaXplOmxrcixmYUNoZXZyb25SaWdodDpja3IsZmFFZ2c6ZGtyLGZhTGFuZG1hcmtEb21lOnNPZSxmYUxhbmRtYXJrQWx0OnVrcixmYVdvcm06cGtyLGZhVXNlckluanVyZWQ6ZmtyLGZhU3RyaWtldGhyb3VnaDpoa3IsZmFCbG9nOm1rcixmYVN0b3B3YXRjaDIwOmdrcixmYVRydWNrUGlja3VwOmJrcixmYVNlZWRsaW5nOm5PZSxmYVNwcm91dDp4a3IsZmFUcmFuc2dlbmRlcjpvT2UsZmFUcmFuc2dlbmRlckFsdDp2a3IsZmFTdGFySGFsZjp5a3IsZmFQaG90b0ZpbG06bE9lLGZhUGhvdG9WaWRlbzp3a3IsZmFQaWN0dXJlSW5QaWN0dXJlOmtrcixmYVB1bXBNZWRpY2FsOlNrcixmYUZpcmU6TWtyLGZhTWFnbmlmeWluZ0dsYXNzUGx1czpjT2UsZmFTZWFyY2hQbHVzOkNrcixmYUZsYXNrOnprcixmYUFsaWduUmlnaHQ6X2tyLGZhQ2FibGVDYXI6ZE9lLGZhVHJhbTpUa3IsZmFLaXRNZWRpY2FsOnVPZSxmYUZpcnN0QWlkOkxrcixmYUdyaXBMaW5lczpEa3IsZmFCdXJnZXI6cE9lLGZhSGFtYnVyZ2VyOiRrcixmYVNub3dtYW46QWtyLGZhSG90ZWw6RWtyLGZhUHJpbnQ6SWtyLGZhVm9sbGV5YmFsbDpmT2UsZmFWb2xsZXliYWxsQmFsbDpQa3IsZmFUcmFmZmljTGlnaHQ6TmtyLGZhUGxhbmVDaXJjbGVDaGVjazpPa3IsZmFVc2VyczptcGUsZmFDZXJ0aWZpY2F0ZTpSa3IsZmFBbGFybUNsb2NrOkZrcixmYUhlbGljb3B0ZXJTeW1ib2w6QmtyLGZhSG91c2VDaGltbmV5Q3JhY2s6aE9lLGZhSG91c2VEYW1hZ2U6SGtyLGZhUGVyc29uTWlsaXRhcnlQb2ludGluZzpxa3IsZmFEYXRhYmFzZTpWa3IsZmFOZXdzcGFwZXI6amtyLGZhQ2xvdWRSYWluOlVrcixmYU1heGltaXplOm1PZSxmYUV4cGFuZEFycm93c0FsdDpXa3IsZmFMb2NhdGlvbkFycm93OkdrcixmYUNpdHk6WWtyLGZhWFJheTpLa3IsZmFVbWJyZWxsYUJlYWNoOlprcixmYUFycm93UmlnaHRUb0JyYWNrZXQ6Z09lLGZhU2lnbkluOlFrcixmYUhlYWRzZXQ6WGtyLGZhU3Bsb3RjaDpKa3IsZmFVcExvbmc6Yk9lLGZhTG9uZ0Fycm93QWx0VXA6ZVNyLGZhSGV4YWdvbk5vZGVzOnRTcixmYUhvc3BpdGFsOmt1ZSxmYUhvc3BpdGFsQWx0OnJTcixmYUhvc3BpdGFsV2lkZTphU3IsZmFQZXJzb25IYXJhc3Npbmc6aVNyLGZhTW9uZXlCaWxsVHJlbmRVcDpzU3IsZmFQZW5SdWxlcjp4T2UsZmFQZW5jaWxSdWxlcjpuU3IsZmFSZXBlYXQ6b1NyLGZhQm9uZTpsU3IsZmFGaXJlRmxhbWVDdXJ2ZWQ6dk9lLGZhRmlyZUFsdDpjU3IsZmFCdXNTaW1wbGU6eU9lLGZhQnVzQWx0OmRTcixmYVZlbnVzTWFyczp1U3IsZmFCbGVuZGVyOnBTcixmYVU6ZlNyLGZhU2hhcmU6Wl8sZmFNYWlsRm9yd2FyZDpoU3IsZmFQaG9uZUZsaXA6d09lLGZhUGhvbmVBbHQ6bVNyLGZhVG9pbGV0UG9ydGFibGU6Z1NyLGZhUGVyc29uUHJlZ25hbnQ6YlNyLGZhTGVzc1RoYW46eFNyLGZhU3VwZXJzY3JpcHQ6dlNyLGZhQ2lyY2xlU3RvcDprT2UsZmFTdG9wQ2lyY2xlOnlTcixmYUFycm93c1VwRG93bjpTT2UsZmFBcnJvd3NWOndTcixmYVBvb1N0b3JtOk1PZSxmYVBvb0JvbHQ6a1NyLGZhVmlkZW9TbGFzaDpTU3IsZmFTcXVhcmVYbWFyazpTdWUsZmFUaW1lc1NxdWFyZTpNU3IsZmFYbWFya1NxdWFyZTpDU3IsZmFIYW5kSG9sZGluZ0Ryb3BsZXQ6Q09lLGZhSGFuZEhvbGRpbmdXYXRlcjp6U3IsZmFXb25TaWduOk11ZSxmYUtydzpfU3IsZmFXb246VFNyLGZhT2JqZWN0VW5ncm91cDpMU3IsZmFDb21tZW50OkRTcixmYUhpbGxBdmFsYW5jaGU6JFNyLGZhQXJyb3dzVG9FeWU6QVNyLGZhU25vd3Bsb3c6RVNyLGZhQ2hhcnRHYW50dDpJU3IsZmFWaWRlbzp6T2UsZmFWaWRlb0NhbWVyYTpQU3IsZmFDaGVzc1Bhd246TlNyLGZhU3luYWdvZ3VlOk9TcixmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2s6UlNyLGZhQ2FsZW5kYXJQbHVzOkZTcixmYVdoZWVsY2hhaXJNb3ZlOl9PZSxmYVdoZWVsY2hhaXJBbHQ6QlNyLGZhVXNlclNoaWVsZDpIU3IsZmFCb2xkOnFTcixmYUhlYXJ0UHVsc2U6VE9lLGZhSGVhcnRiZWF0OlZTcixmYVNxdWFyZVJvb3RWYXJpYWJsZTpMT2UsZmFTcXVhcmVSb290QWx0OmpTcixmYUhhbmRzQnViYmxlczpET2UsZmFIYW5kc1dhc2g6VVNyLGZhTWFya2VyOldTcixmYUNsaXBib2FyZDpHU3IsZmFQbGFjZU9mV29yc2hpcDpZU3IsZmFDYW5uYWJpczpLU3IsZmFQZW9wbGVSb29mOlpTcixmYURpc2Vhc2U6UVNyLGZhQm9va0JpYmxlOiRPZSxmYUJpYmxlOlhTcixmYUNoZXNzQm9hcmQ6SlNyLGZhTWFyczplTXIsZmFMYXB0b3A6dE1yLGZhVXNlclhtYXJrOkFPZSxmYVVzZXJUaW1lczpyTXIsZmFGbGFnVXNhOmFNcixmYUhhbmRNaWRkbGVGaW5nZXI6aU1yLGZhTW9ydGFyUGVzdGxlOnNNcixmYUhlYWRTaWRlQ291Z2g6bk1yLGZhUGxhbmVMb2NrOm9NcixmYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzOkVPZSxmYUJhdHRlcnk0OmxNcixmYUZyYW5jU2lnbjpjTXIsZmFGaWx0ZXJDaXJjbGVEb2xsYXI6SU9lLGZhRnVubmVsRG9sbGFyOmRNcixmYUNoZWVzZTp1TXIsZmFDaXJjbGVIOlBPZSxmYUhvc3BpdGFsU3ltYm9sOnBNcixmYVNjaG9vbDpmTXIsZmFEaWNlRml2ZTpoTXIsZmFUb3JuYWRvOm1NcixmYUpldEZpZ2h0ZXI6Tk9lLGZhRmlnaHRlckpldDpnTXIsZmFUaHVtYnNEb3duOmJNcixmYUJyb29tOnhNcixmYUZpbGVJbXBvcnQ6T09lLGZhQXJyb3dSaWdodFRvRmlsZTp2TXIsZmFVdGVuc2lsczpST2UsZmFDdXRsZXJ5OnlNcixmYUlkQmFkZ2U6d01yLGZhU3BpZGVyOmtNcixmYU1vYmlsZVJldHJvOlNNcixmYVNpZ25zUG9zdDpGT2UsZmFNYXBTaWduczpNTXIsZmFHcm91cEFycm93c1JvdGF0ZTpDTXIsZmFBcnJvd3NTcGxpdFVwQW5kTGVmdDp6TXIsZmFGaWxsRHJpcDpfTXIsZmFTaGllbGRIZWFydDpUTXIsZmFQZXJzb25Ta2lpbmdOb3JkaWM6Qk9lLGZhU2tpaW5nTm9yZGljOkxNcixmYVNxdWFyZUNoZWNrOkhPZSxmYUNoZWNrU3F1YXJlOkRNcixmYUJhdGg6cU9lLGZhQmF0aHR1YjokTXIsZmFDaGVzc0Jpc2hvcDpBTXIsZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsOlZPZSxmYVByZXNjcmlwdGlvbkJvdHRsZUFsdDpFTXIsZmFEcmF3UG9seWdvbjpqT2UsZmFWZWN0b3JQb2x5Z29uOklNcixmYUlDdXJzb3I6UE1yLGZhSGVhcnRDaXJjbGVQbHVzOk5NcixmYVNoaWVsZERvZzpPTXIsZmFHcmVhdGVyVGhhbkVxdWFsOlJNcixmYUVudmVsb3BlT3BlbjpGTXIsZmFNb3VuZDpCTXIsZmFWb2ljZW1haWw6SE1yLGZhVmVzdDpxTXIsZmFBdWRpb0Rlc2NyaXB0aW9uOlZNcixmYVc6ak1yLGZhRXllRHJvcHBlcjpDdWUsZmFFeWVEcm9wcGVyRW1wdHk6VU1yLGZhRXllZHJvcHBlcjpXTXIsZmFDaXJjbGVYbWFyazokeSxmYVRpbWVzQ2lyY2xlOkdNcixmYVhtYXJrQ2lyY2xlOllNcixmYVRyYWlsZXI6S01yLGZhVHVya2lzaExpcmFTaWduOnp1ZSxmYVRyeTpaTXIsZmFUdXJraXNoTGlyYTpRTXIsZmFWb2xjYW5vOlhNcixmYVdhbmRTcGFya2xlczpKTXIsZmFNaWNyb3Bob25lOmVDcixmYUNyb3duOnRDcixmYVRlbnRBcnJvd1R1cm5MZWZ0OnJDcixmYVRydWNrRmFzdDpVT2UsZmFTaGlwcGluZ0Zhc3Q6YUNyLGZhVXNlclBlbjpXT2UsZmFVc2VyRWRpdDppQ3IsZmFVc2VyQ2xvY2s6c0NyLGZhU2hvd2VyOm5DcixmYVNxdWFyZUNhcmV0VXA6R09lLGZhQ2FyZXRTcXVhcmVVcDpvQ3IsZmFNYXBMb2NhdGlvbjpZT2UsZmFNYXBNYXJrZWQ6bENyLGZhUGVuRmFuY3k6Y0NyLGZhRXVyb1NpZ246X3VlLGZhRXVyOmRDcixmYUV1cm86dUNyLGZhSG91c2VDaXJjbGVYbWFyazpwQ3IsZmFMaXJhU2lnbjpmQ3IsZmFZZW5TaWduOlR5LGZhQ255OmhDcixmYUpweTptQ3IsZmFSbWI6Z0NyLGZhWWVuOmJDcixmYUJveE9wZW46eENyLGZhVHJ1Y2tGaWVsZDp2Q3IsZmFMb2NhdGlvblBpbkxvY2s6eUNyLGZhUGVyc29uUHJheWluZzpLT2UsZmFQcmF5OndDcixmYUNsaXBib2FyZExpc3Q6a0NyLGZhU2Fja0RvbGxhcjpTQ3IsZmFNb3VudGFpblN1bjpNQ3IsZmFBcnJvd1VwV2lkZVNob3J0OlpPZSxmYVNvcnRBbW91bnRVcDpDQ3IsZmFVc2Vyc0xpbmU6ekNyLGZhU3Rhck9mRGF2aWQ6X0NyLGZhTm90ZXNNZWRpY2FsOlRDcixmYUF1c3RyYWxTaWduOkxDcixmYUNsaXBib2FyZFVzZXI6RENyLGZhRmlsZUltYWdlOiRDcixmYVNxdWFyZUNhcmV0UmlnaHQ6UU9lLGZhQ2FyZXRTcXVhcmVSaWdodDpBQ3IsZmFWaWFsOkVDcixmYUhlbGljb3B0ZXI6SUNyLGZhTWl0dGVuOlBDcixmYUdhc1B1bXA6TkNyLGZhRW52ZWxvcGVDaXJjbGVDaGVjazpPQ3IsZmFQZXJzb25Ta2F0aW5nOlhPZSxmYVNrYXRpbmc6UkNyLGZhU3VuOmdwZSxmYUJhc2ViYWxsOkpPZSxmYUJhc2ViYWxsQmFsbDpGQ3IsZmFJbWFnZTpCQ3IsZmFOb3RkZWY6SENyLGZhQmFza2V0YmFsbDplUmUsZmFCYXNrZXRiYWxsQmFsbDpxQ3IsZmFQZW5jaWw6dFJlLGZhUGVuY2lsQWx0OlZDcixmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0OmpDcixmYURpY2VTaXg6VUNyLGZhQW5nbGVzRG93bjpyUmUsZmFBbmdsZURvdWJsZURvd246V0NyLGZhU3lyaW5nZTpHQ3IsZmFXaGVhdEF3bjphUmUsZmFXaGVhdEFsdDpZQ3IsZmFQbGFuZVVwOktDcixmYUFsaWduQ2VudGVyOlpDcixmYUhvY2tleVB1Y2s6UUNyLGZhQ2lyY2xlQXJyb3dMZWZ0OmlSZSxmYUFycm93Q2lyY2xlTGVmdDpYQ3IsZmFQbHVnQ2lyY2xlQm9sdDpKQ3IsZmFSZXN0cm9vbTplenIsZmFBbmNob3JMb2NrOnR6cixmYVRpbWVsaW5lOnJ6cixmYUxpZ2h0YnVsYjphenIsZmFDaXJjbGVBcnJvd1JpZ2h0OnNSZSxmYUFycm93Q2lyY2xlUmlnaHQ6aXpyLGZhTWFyc0FuZFZlbnVzOnN6cixmYU5ldHdvcmtXaXJlZDpicGUsZmFCdWlsZGluZ1NoaWVsZDpuenIsZmFDb2RlOm96cixmYUZlYXRoZXJQb2ludGVkOm5SZSxmYUZlYXRoZXJBbHQ6bHpyLGZhRmlsZUNpcmNsZVF1ZXN0aW9uOmN6cixmYVNpZ25hdHVyZTpkenIsZmFFYXJ0aEFtZXJpY2FzOkFfLGZhRWFydGg6dXpyLGZhRWFydGhBbWVyaWNhOnB6cixmYUdsb2JlQW1lcmljYXM6ZnpyLGZhQ2Fycm90Omh6cixmYVRlbXBlcmF0dXJlRnVsbDpFXyxmYVRlbXBlcmF0dXJlNDptenIsZmFUaGVybW9tZXRlcjQ6Z3pyLGZhVGhlcm1vbWV0ZXJGdWxsOmJ6cixmYVRhYmxlQ2VsbHNSb3dMb2NrOnh6cixmYUJvbHRMaWdodG5pbmc6dnpyLGZhQ2xvdWRTaG93ZXJzV2F0ZXI6eXpyLGZhQXJyb3dVcExvbmc6b1JlLGZhTG9uZ0Fycm93VXA6d3pyLGZhQWRkcmVzc0NhcmQ6VHVlLGZhQ29udGFjdENhcmQ6a3pyLGZhVmNhcmQ6U3pyLGZhQW5nbGVSaWdodDpNenIsZmFGYWNlTWVoOmxSZSxmYU1laDpDenIsZmFBcnJvd1VwRnJvbUdyb3VuZFdhdGVyOnp6cixmYU1hcDpfenIsZmFVc2VyUGx1czpUenIsZmFWZW51czpMenIsZmFEaWFncmFtU3VjY2Vzc29yOkR6cixmYUhlYWRTaWRlQ291Z2hTbGFzaDokenIsZmFEaWFncmFtUHJvamVjdDpjUmUsZmFQcm9qZWN0RGlhZ3JhbTpBenIsZmFUZXJtaW5hbDp4cGUsZmFIb3VzZUZpcmU6RXpyLGZhTWFzazpJenIsZmFIdXJyaWNhbmU6UHpyLGZhRWFydGhBZnJpY2E6ZFJlLGZhR2xvYmVBZnJpY2E6TnpyLGZhVGh1bWJ0YWNrOnVSZSxmYVRodW1iVGFjazpPenIsZmFIYW5kUG9pbnREb3duOlJ6cixmYUZhY2VNZWhCbGFuazpwUmUsZmFNZWhCbGFuazpGenIsZmFUZW1wZXJhdHVyZUVtcHR5OklfLGZhVGVtcGVyYXR1cmUwOkJ6cixmYVRoZXJtb21ldGVyMDpIenIsZmFUaGVybW9tZXRlckVtcHR5OnF6cixmYUJvcmRlck5vbmU6VnpyLGZhSGlnaGxpZ2h0ZXI6anpyLGZhTW9uZXlCaWxsV2F2ZTpVenIsZmFUb2lsZXRQYXBlclNsYXNoOld6cixmYUZpbGVTaGllbGQ6R3pyLGZhVGV4dEhlaWdodDpZenIsZmFGYWNlR3JpblRvbmd1ZTpmUmUsZmFHcmluVG9uZ3VlOkt6cixmYUZpbGVTaWduYXR1cmU6WnpyLGZhQnVpbGRpbmdXaGVhdDpRenIsZmFQbHVnQ2lyY2xlTWludXM6WHpyLGZhRnV0Ym9sOkx1ZSxmYUZ1dGJvbEJhbGw6SnpyLGZhU29jY2VyQmFsbDplX3IsZmFDaXJjbGVQbHVzOmhSZSxmYVBsdXNDaXJjbGU6dF9yLGZhQnJhemlsaWFuUmVhbFNpZ246cl9yLGZhU3RhckFuZENyZXNjZW50OmFfcixmYUZhY2VTdXJwcmlzZTptUmUsZmFTdXJwcmlzZTppX3IsZmFIb3NwaXRhbFVzZXI6c19yLGZhQXJyb3dEb3duVXBMb2NrOm5fcixmYUZvbGRlcjpnUmUsZmFGb2xkZXJCbGFuazpvX3IsZmFIb2xseUJlcnJ5OmxfcixmYVZlbnVzRG91YmxlOmNfcixmYUNsaXBib2FyZFF1ZXN0aW9uOmRfcixmYUhvdGRvZzp1X3IsZmFBcnJvd1VwRnJvbUJyYWNrZXQ6cF9yLGZhTWljcm9zY29wZTpmX3IsZmFDbG91ZDpoX3IsZmFCYXNlYmFsbEJhdEJhbGw6bV9yLGZhQ2FyUmVhcjpiUmUsZmFDYXJBbHQ6Z19yLGZhVGh1bWJ0YWNrU2xhc2g6eFJlLGZhVGh1bWJUYWNrU2xhc2g6Yl9yLGZhUGx1c01pbnVzOnhfcixmYUhvdXNlQ2lyY2xlQ2hlY2s6dl9yLGZhQ2FsZW5kYXJEYXk6eV9yLGZhTGlicmE6d19yLGZhQ2lyY2xlOmtfcixmYU1vYmlsZVZpYnJhdGU6U19yLGZhRmFjZUdyaW5TcXVpbnQ6dlJlLGZhR3JpblNxdWludDpNX3IsZmFVc2Vyc0JldHdlZW5MaW5lczpDX3IsZmFIb3VzZU1lZGljYWxDaXJjbGVYbWFyazp6X3IsZmFUYWJsZUxpc3Q6eVJlLGZhVGhMaXN0Ol9fcixmYUZsYXNrVmlhbDpUX3IsZmFDaXJjbGVFeGNsYW1hdGlvbjp3UmUsZmFFeGNsYW1hdGlvbkNpcmNsZTpMX3IsZmFUYXhpOmtSZSxmYUNhYjpEX3IsZmFUZXh0U2xhc2g6U1JlLGZhUmVtb3ZlRm9ybWF0OiRfcixmYVBlb3BsZVB1bGxpbmc6QV9yLGZhQmFja3dhcmQ6RV9yLGZhQ2FyQnVyc3Q6TVJlLGZhQ2FyQ3Jhc2g6SV9yLGZhTGluazpDUmUsZmFDaGFpbjpQX3IsZmFCYWNrd2FyZFN0ZXA6elJlLGZhU3RlcEJhY2t3YXJkOk5fcixmYVg6T19yLGZhQ2lyY2xlVXNlcjpfUmUsZmFVc2VyQ2lyY2xlOlJfcixmYVJlY3RhbmdsZUxpc3Q6VFJlLGZhTGlzdEFsdDpGX3IsZmFIYW5kOkxSZSxmYUhhbmRQYXBlcjpCX3IsZmFDYW5jZXI6SF9yLGZhVmFuU2h1dHRsZTpEUmUsZmFTaHV0dGxlVmFuOnFfcixmYVN0YWlyczpWX3IsZmFIb3JzZUhlYWQ6al9yLGZhVmF1bHQ6VV9yLGZhQ2xvc2VkQ2FwdGlvbmluZ1NsYXNoOldfcixmYURydW1TdGVlbHBhbjpHX3IsZmFUaHVtYnNVcDpZX3IsZmFTdGFtcDpLX3IsZmFNZW5vcmFoOlpfcixmYUNoaWxkcmVuOlFfcixmYUNoYXJ0TGluZTokUmUsZmFMaW5lQ2hhcnQ6WF9yLGZhU3F1YXJlRW52ZWxvcGU6QVJlLGZhRW52ZWxvcGVTcXVhcmU6Sl9yLGZhQmFuU21va2luZzpFUmUsZmFTbW9raW5nQmFuOmVUcixmYVRydWNrRnJvbnQ6dFRyLGZhQnVpbGRpbmc6dnBlLGZhQnVsbHNleWU6clRyLGZhQXJyb3dMZWZ0TG9uZzpJUmUsZmFMb25nQXJyb3dMZWZ0OmFUcixmYUNoZXNzUm9vazppVHIsZmFCbGVuZGVyUGhvbmU6c1RyLGZhQXJyb3dUdXJuVXA6UFJlLGZhTGV2ZWxVcDpuVHIsZmFCaWN5Y2xlOm9UcixmYUNpcmNsZUFycm93RG93bjpOUmUsZmFBcnJvd0NpcmNsZURvd246bFRyLGZhR2VhcjpRXyxmYUNvZzpjVHIsZmFNYXJzQW5kVmVudXNCdXJzdDpkVHIsZmFPdHRlcjp1VHIsZmFDaXJjbGVDaGV2cm9uTGVmdDpPUmUsZmFDaGV2cm9uQ2lyY2xlTGVmdDpwVHIsZmFDaXJjbGVRdWVzdGlvbjpSUmUsZmFRdWVzdGlvbkNpcmNsZTpmVHIsZmFXYWxraWVUYWxraWU6aFRyLGZhVXNlckdyb3VwOkZSZSxmYVVzZXJGcmllbmRzOm1UcixmYUhvdXNlQ2hpbW5leTpCUmUsZmFIb21lTGc6Z1RyLGZhUmlnaHRGcm9tQnJhY2tldDpIUmUsZmFTaWduT3V0QWx0OmJUcixmYUZpbGU6eFRyLGZhUGxhbmVTbGFzaDp2VHIsZmFDbG91ZFNob3dlcnNIZWF2eTp5VHIsZmFQZXJzb25GYWxsaW5nOndUcixmYVR1cm5Eb3duOnFSZSxmYUxldmVsRG93bkFsdDprVHIsZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyOlZSZSxmYUV4cGFuZEFsdDpTVHIsZmFVc2VyVGFnOk1UcixmYUhhbmRTcGFya2xlczpDVHIsZmFBcnJvd3NUb0RvdDp6VHIsZmFGYWNlU2FkQ3J5OmpSZSxmYVNhZENyeTpfVHIsZmFEb25nU2lnbjpUVHIsZmFQZW9wbGVMaW5lOkxUcixmYVNxdWFyZVJzczpVUmUsZmFSc3NTcXVhcmU6RFRyLGZhQ2FsZW5kYXJNaW51czokVHIsZmFDaGFydERpYWdyYW06QVRyLGZhRmFjZVRpcmVkOldSZSxmYVRpcmVkOkVUcixmYUhhbmRQb2ludFJpZ2h0OklUcixmYUFycm93VXA6UFRyLGZhQ3ViZXNTdGFja2VkOk5UcixmYUNoaWxkQ29tYmF0YW50OkdSZSxmYUNoaWxkUmlmbGU6T1RyLGZhVmVzdFBhdGNoZXM6UlRyLGZhTWFydGluaUdsYXNzRW1wdHk6WVJlLGZhR2xhc3NNYXJ0aW5pOkZUcixmYU1hZ25ldDpCVHIsZmFSb2FkQmFycmllcjpIVHIsZmFDb21wYXNzRHJhZnRpbmc6S1JlLGZhRHJhZnRpbmdDb21wYXNzOnFUcixmYVNxdWFyZVBlcnNvbkNvbmZpbmVkOlZUcixmYVBsYXRlV2hlYXQ6alRyLGZhU2lnbkhhbmdpbmc6WlJlLGZhU2lnbjpVVHIsZmFDYXJCYXR0ZXJ5OlFSZSxmYUJhdHRlcnlDYXI6V1RyLGZhU2hpcnQ6RHVlLGZhVFNoaXJ0OkdUcixmYVRzaGlydDpZVHIsZmFQYXJhZ3JhcGg6S1RyLGZhRW52ZWxvcGVzQnVsazpYUmUsZmFNYWlsQnVsazpaVHIsZmFHdWl0YXI6UVRyLGZhU3VpdGNhc2U6WFRyLGZhQ2lyY2xlVXA6SlJlLGZhQXJyb3dBbHRDaXJjbGVVcDpKVHIsZmFGOmVMcixmYVhtYXJrc0xpbmVzOnRMcixmYUVhcnRoT2NlYW5pYTplRmUsZmFHbG9iZU9jZWFuaWE6ckxyLGZhQ29tbWVudFNsYXNoOmFMcixmYVBsYXk6aUxyLGZhVmlhbENpcmNsZUNoZWNrOnNMcixmYUJyaWRnZUNpcmNsZUNoZWNrOm5McixmYUNlZGlTaWduOm9McixmYVB1enpsZVBpZWNlOmxMcixmYUhlbG1ldFVuOmNMcixmYUdsYXNzV2F0ZXI6ZExyLGZhSGVhcnRDaXJjbGVCb2x0OnVMcixmYVB1bXBTb2FwOnBMcixmYUhhbmRTY2lzc29yczpmTHIsZmFEb2xseTp0RmUsZmFEb2xseUJveDpoTHIsZmFQYXBlcmNsaXA6eXBlLGZhRGVtb2NyYXQ6bUxyLGZhU3F1YXJlQXJyb3dVcFJpZ2h0OnJGZSxmYUV4dGVybmFsTGlua1NxdWFyZTpnTHIsZmFGZXJyeTpiTHIsZmFNb3NxdWl0bzp4THIsZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQ6dkxyLGZhTGVmdFJpZ2h0OmFGZSxmYUFycm93c0FsdEg6eUxyLGZhVmlydXM6d0xyLGZhR2VtOmtMcixmYVRvaWxldDpTTHIsZmFTaW5nbGVRdW90ZUxlZnQ6TUxyLGZhTW9uZXlCaWxsczpDTHIsZmFUYWJsZXRCdXR0b246ekxyLGZhUmVjdGFuZ2xlWG1hcms6UF8sZmFSZWN0YW5nbGVUaW1lczpfTHIsZmFUaW1lc1JlY3RhbmdsZTpUTHIsZmFXaW5kb3dDbG9zZTpMTHIsZmFXcmVuY2g6RExyLGZhVHJhc2hDYW46WF8sZmFUcmFzaEFsdDokTHIsZmFUYWJsZUNlbGxzOmlGZSxmYVRoOkFMcixmYVJpYmJvbjpFTHIsZmFMYW5kbWFya0ZsYWc6SUxyLGZhVXBEb3duTGVmdFJpZ2h0OnNGZSxmYUFycm93c0FsdDpQTHIsZmFDYXJTaWRlOk5McixmYVRyYXNoQXJyb3dVcDpuRmUsZmFUcmFzaFJlc3RvcmU6T0xyLGZhTGlmZVJpbmc6UkxyLGZhQ29weXJpZ2h0OkZMcixmYUZpbGVQcmVzY3JpcHRpb246QkxyLGZhRXJhc2VyOkhMcixmYUhvdXJnbGFzc1N0YXJ0Om9GZSxmYUhvdXJnbGFzczE6cUxyLGZhQ2lyY2xlTGVmdDpsRmUsZmFBcnJvd0FsdENpcmNsZUxlZnQ6VkxyLGZhQ3J1emVpcm9TaWduOmpMcixmYVNtb2tpbmc6VUxyLGZhU3F1YXJlUG9sbFZlcnRpY2FsOmNGZSxmYVBvbGw6V0xyLGZhUGVyc29uQ2lyY2xlTWludXM6R0xyLGZhQmlvaGF6YXJkOllMcixmYUJlbGxDb25jaWVyZ2U6ZEZlLGZhQ29uY2llcmdlQmVsbDpLTHIsZmFSdWxlckhvcml6b250YWw6WkxyLGZhSG9yc2U6UUxyLGZhQ2FsZW5kYXI6WExyLGZhSGFuZHNIb2xkaW5nQ2hpbGQ6SkxyLGZhSXRhbGljOmVEcixmYUtoYW5kYTp0RHIsZmFGYWNlRnJvd25PcGVuOnVGZSxmYUZyb3duT3BlbjpyRHIsZmFDaGVjazp3cGUsZmFGaW5nZXJwcmludDphRHIsZmFDaGFyZ2luZ1N0YXRpb246aURyLGZhVXNlckxvY2s6c0RyLGZhTW9iaWxlU2NyZWVuQnV0dG9uOnBGZSxmYU1vYmlsZUFsdDpuRHIsZmFBbmNob3JDaXJjbGVDaGVjazpvRHIsZmFQZXJzb25XYWxraW5nV2l0aENhbmU6ZkZlLGZhQmxpbmQ6bERyLGZhRmlsZVdhdmVmb3JtOmhGZSxmYUZpbGVNZWRpY2FsQWx0OmNEcixmYUhvdXNlQ3JhY2s6ZERyLGZhSGF0V2l6YXJkOnVEcixmYVVzZXJEb2N0b3I6bUZlLGZhVXNlck1kOnBEcixmYUNoYXJ0QmFyOmdGZSxmYUJhckNoYXJ0OmZEcixmYVNwcmF5Q2FuU3BhcmtsZXM6YkZlLGZhQWlyRnJlc2hlbmVyOmhEcixmYUJhaHRTaWduOm1EcixmYVRlbXBlcmF0dXJlQXJyb3dVcDp4RmUsZmFUZW1wZXJhdHVyZVVwOmdEcixmYVdlYkF3ZXNvbWU6YkRyLGZhTm9uQmluYXJ5OnhEcixmYU46dkRyLGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0OnZGZSxmYUFycm93czp5RHIsZmFIb3VzZTpOXyxmYUhvbWU6d0RyLGZhSG9tZUFsdDprRHIsZmFIb21lTGdBbHQ6U0RyLGZhU3Bpbm5lcjpNRHIsZmFHYXZlbDp5RmUsZmFMZWdhbDpDRHIsZmFUaWNrZXRTaW1wbGU6d0ZlLGZhVGlja2V0QWx0OnpEcixmYURvdmU6X0RyLGZhVGFycERyb3BsZXQ6VERyLGZhVHJlZUNpdHk6TERyLGZhVHVyblVwOmtGZSxmYUxldmVsVXBBbHQ6RERyLGZhVGVtcGVyYXR1cmVRdWFydGVyOk9fLGZhVGVtcGVyYXR1cmUxOiREcixmYVRoZXJtb21ldGVyMTpBRHIsZmFUaGVybW9tZXRlclF1YXJ0ZXI6RURyLGZhU2xpZGVyczpTRmUsZmFTbGlkZXJzSDpJRHIsZmFNb3NxdWU6UERyLGZhSDpORHIsZmFJbmZvOk9EcixmYVBlcnNvbldhbGtpbmc6TUZlLGZhV2Fsa2luZzpSRHIsZmFBcnJvd1R1cm5Eb3duOkNGZSxmYUxldmVsRG93bjpGRHIsZmFSb2FkOkJEcixmYVNwaXJhbDpIRHIsZmFGYWNlRnJvd246ekZlLGZhRnJvd246cURyLGZhV2luZUdsYXNzRW1wdHk6X0ZlLGZhV2luZUdsYXNzQWx0OlZEcixmYUNsYXBwZXJib2FyZDpqRHIsZmFGb3J3YXJkU3RlcDpURmUsZmFTdGVwRm9yd2FyZDpVRHIsZmFTcXVhcmVVcFJpZ2h0OkxGZSxmYUV4dGVybmFsTGlua1NxdWFyZUFsdDpXRHIsZmFCb29rSm91cm5hbFdoaWxsczpERmUsZmFKb3VybmFsV2hpbGxzOkdEcixmYUNoYW1wYWduZUdsYXNzZXM6JEZlLGZhR2xhc3NDaGVlcnM6WURyLGZhRHVtcHN0ZXI6S0RyLGZhSGVhcnRDaXJjbGVYbWFyazpaRHIsZmFDb21wdXRlcjpRRHIsZmFXYW5kTWFnaWM6QUZlLGZhTWFnaWM6WERyLGZhQnJhaW46SkRyLGZhQnJpZWZjYXNlTWVkaWNhbDplJHIsZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbjp0JHIsZmFDb2RlQ29tbWl0OnIkcixmYVBlcnNvbkJyZWFzdGZlZWRpbmc6YSRyLGZhUGVyc29uUmF5czppJHIsZmFNYW5hdFNpZ246cyRyLGZhU29ydDpFRmUsZmFVbnNvcnRlZDpuJHIsZmFDaXJjbGVSYWRpYXRpb246SUZlLGZhUmFkaWF0aW9uQWx0Om8kcixmYUxhcHRvcENvZGU6bCRyLGZhU2luazpjJHIsZmFBcnJvd1VwRnJvbVdhdGVyUHVtcDpkJHIsZmFNaWNyb3Bob25lTGluZXNTbGFzaDpQRmUsZmFNaWNyb3Bob25lQWx0U2xhc2g6dSRyLGZhU2VydmVyOnAkcixmYVVzZXI6JHVlLGZhVXNlckFsdDpmJHIsZmFVc2VyTGFyZ2U6aCRyLGZhU25vd2ZsYWtlOm0kcixmYVRhdXJ1czpnJHIsZmFTa3VsbENyb3NzYm9uZXM6YiRyLGZhUGVzb1NpZ246eCRyLGZhV2luZUdsYXNzOnYkcixmYVRlbXBlcmF0dXJlSGFsZjpSXyxmYVRlbXBlcmF0dXJlMjp5JHIsZmFUaGVybW9tZXRlcjI6dyRyLGZhVGhlcm1vbWV0ZXJIYWxmOmskcixmYVRpY2tldDpTJHIsZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uOk0kcixmYUFycm93c1R1cm5SaWdodDpDJHIsZmFDYW5keUNhbmU6eiRyLGZhV2hlZWxjaGFpcjpfJHIsZmFTcGVsbENoZWNrOlQkcixmYVZvbHVtZU9mZjpMJHIsZmFMdW5nczpEJHIsZmFCb29rbWFyazokJHIsZmFCYXJjb2RlOkEkcixmYUxpc3RPbDpBdWUsZmFMaXN0MTI6RSRyLGZhTGlzdE51bWVyaWM6SSRyLGZhRmlsZUNpcmNsZVhtYXJrOlAkcixmYUN1YmU6TiRyLGZhVGFwZTpPJHIsZmFCb21iOlIkcixmYVNjYWxlVW5iYWxhbmNlZDpORmUsZmFCYWxhbmNlU2NhbGVMZWZ0OkYkcixmYVNxdWFyZUNhcmV0TGVmdDpPRmUsZmFDYXJldFNxdWFyZUxlZnQ6QiRyLGZhUnVsZXI6SCRyLGZhSTpxJHIsZmFWb2x1bWVYbWFyazpFdWUsZmFWb2x1bWVNdXRlOlYkcixmYVZvbHVtZVRpbWVzOmokcixmYUFyY2h3YXk6VSRyLGZhUGVyc29uRGlnZ2luZzpSRmUsZmFEaWdnaW5nOlckcixmYUdhdWdlSGlnaDpJdWUsZmFUYWNob21ldGVyQWx0OkckcixmYVRhY2hvbWV0ZXJBbHRGYXN0OlkkcixmYUdlbmRlcmxlc3M6SyRyLGZhQ2xvdWRTdW46WiRyLGZhQXJyb3dSaWdodDprcGUsZmFIYW5kc2hha2U6UHVlLGZhSGFuZHNoYWtlQWx0OlEkcixmYUhhbmRzaGFrZVNpbXBsZTpYJHIsZmFQZXJzb25Ta2lpbmc6RkZlLGZhU2tpaW5nOkokcixmYUJyaWRnZVdhdGVyOmVBcixmYUJ1aWxkaW5nTmdvOnRBcixmYUlnbG9vOnJBcixmYUNpcmNsZURvbGxhclRvU2xvdDpCRmUsZmFEb25hdGU6YUFyLGZhWTppQXIsZmFGYWNlU21pbGVXaW5rOkhGZSxmYVNtaWxlV2luazpzQXIsZmFEaWNlRm91cjpuQXIsZmFGYWNlR3JpblNxdWludFRlYXJzOnFGZSxmYUdyaW5TcXVpbnRUZWFyczpvQXIsZmFGaWxlQXVkaW86bEFyLGZhQXJyb3dzRG93blRvTGluZTpjQXIsZmFHOmRBcixmYVZpaGFyYTp1QXIsZmFGbGFnQ2hlY2tlcmVkOnBBcixmYUdhdWdlU2ltcGxlOk51ZSxmYUdhdWdlU2ltcGxlTWVkOmZBcixmYVRhY2hvbWV0ZXJBdmVyYWdlOmhBcixmYVJpZ2h0TGVmdDpWRmUsZmFFeGNoYW5nZUFsdDptQXIsZmFQaWxsczpnQXIsZmFFeHBsb3Npb246YkFyLGZhQXJyb3dzRG93blRvUGVvcGxlOnhBcixmYVVzZXJzVmlld2ZpbmRlcjp2QXIsZmFDYXJPbjp5QXIsZmFTbGVpZ2g6d0FyLGZhRHVtYmJlbGw6a0FyLGZhQmFieUNhcnJpYWdlOmpGZSxmYUNhcnJpYWdlQmFieTpTQXIsZmFLaXdpQmlyZDpNQXIsZmFDYWxlbmRhclhtYXJrOlVGZSxmYUNhbGVuZGFyVGltZXM6Q0FyLGZhQ2lyY2xlRG93bjpXRmUsZmFBcnJvd0FsdENpcmNsZURvd246ekFyLGZhRmlsZU1lZGljYWw6X0FyLGZhWG1hcms6RXAsZmFDbG9zZTpUQXIsZmFNdWx0aXBseTpMQXIsZmFSZW1vdmU6REFyLGZhVGltZXM6JEFyLGZhU2hhcGVzOkdGZSxmYVRyaWFuZ2xlQ2lyY2xlU3F1YXJlOkFBcixmYURpY2VPbmU6RUFyLGZhTG9ja09wZW46SUFyLGZhUGVwcGVySG90OlBBcixmYURyb3BsZXRTbGFzaDpZRmUsZmFUaW50U2xhc2g6TkFyLGZhRHJvcGxldDpLRmUsZmFUaW50Ok9BcixmYUZpbGVMaW5lczpPdWUsZmFGaWxlQWx0OlJBcixmYUZpbGVUZXh0OkZBcixmYUNvbW1lbnRzRG9sbGFyOkJBcixmYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uOlpGZSxmYVNlYXJjaExvY2F0aW9uOkhBcixmYUZpbGVJbnZvaWNlOlNwZSxmYVBlbnRhZ29uOnFBcixmYVJlcHVibGljYW46VkFyLGZhU2hvcDpRRmUsZmFTdG9yZUFsdDpqQXIsZmFGaWxtOlJ1ZSxmYUZpbG1BbHQ6VUFyLGZhRmlsbVNpbXBsZTpXQXIsZmFCdWlsZGluZ0NpcmNsZVhtYXJrOkdBcixmYUNvbW1lbnRzOllBcixmYVRhZ3M6S0FyLGZhR3VuOlpBcixmYUNpcmNsZUNoZWNrOkpfLGZhQ2hlY2tDaXJjbGU6UUFyLGZhU2NvcnBpbzpYQXIsZmFJZENhcmRDbGlwOlhGZSxmYUlkQ2FyZEFsdDpKQXIsZmFNb29uOmVFcixmYU9pbFdlbGw6dEVyLGZhVGFjaG9ncmFwaERpZ2l0YWw6SkZlLGZhRGlnaXRhbFRhY2hvZ3JhcGg6ckVyLGZhVGFibGV0OmVCZSxmYVRhYmxldEFuZHJvaWQ6YUVyLGZhUnVibGVTaWduOkZfLGZhUm91YmxlOmlFcixmYVJ1YjpzRXIsZmFSdWJsZTpuRXIsZmFDbG9zZWRDYXB0aW9uaW5nOm9FcixmYVBlbjpsRXIsZmFQbGFuZTpjRXIsZmFJbWFnZXM6ZEVyLGZhTW9iaWxlU2NyZWVuOnRCZSxmYU1vYmlsZUFuZHJvaWRBbHQ6dUVyLGZhR3VhcmFuaVNpZ246cEVyLGZhQmFnU2hvcHBpbmc6ckJlLGZhU2hvcHBpbmdCYWc6ZkVyLGZhQ2lyY2xlUmlnaHQ6YUJlLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpoRXIsZmFQaG9uZVZvbHVtZTppQmUsZmFWb2x1bWVDb250cm9sUGhvbmU6bUVyLGZhQ3ViZXM6Z0VyLGZhUGhvbmU6YkVyLGZhVG9yaWlHYXRlOnhFcixmYUJhY29uOnZFcixmYVBlcnNvbkZhbGxpbmdCdXJzdDp5RXIsZmFRdW90ZVJpZ2h0OnNCZSxmYVF1b3RlUmlnaHRBbHQ6d0VyLGZhSG91c2VNZWRpY2FsRmxhZzprRXIsZmFQcmVzY3JpcHRpb246U0VyLGZhRGljZVRocmVlOk1FcixmYUJ1aWxkaW5nTG9jazpDRXIsZmFJZENhcmQ6bkJlLGZhRHJpdmVyc0xpY2Vuc2U6ekVyLGZhQ2lyY2xlUGxheTpvQmUsZmFQbGF5Q2lyY2xlOl9FcixmYUZhY2VMYXVnaEJlYW06bEJlLGZhTGF1Z2hCZWFtOlRFcixmYUxlYWY6TEVyLGZhSG91c2VDaGltbmV5VXNlcjpERXIsZmFSb3RhdGVSaWdodDpGdWUsZmFSZWRvQWx0OiRFcixmYVJvdGF0ZUZvcndhcmQ6QUVyLGZhVG9vdGg6RUVyLGZhSG91c2VDaGltbmV5V2luZG93OklFcixmYU1vdG9yY3ljbGU6UEVyLGZhQmFja3dhcmRGYXN0OmNCZSxmYUZhc3RCYWNrd2FyZDpORXIsZmFBZGRyZXNzQm9vazpkQmUsZmFDb250YWN0Qm9vazpPRXIsZmFTYWlsYm9hdDpSRXIsZmFCb29rQm9va21hcms6RkVyLGZhTWFnbmlmeWluZ0dsYXNzQXJyb3dSaWdodDpCRXIsZmFNaWNyb3Bob25lTGluZXM6dUJlLGZhTWljcm9waG9uZUFsdDpIRXIsZmFSZXBseUFsbDpwQmUsZmFNYWlsUmVwbHlBbGw6cUVyLGZhVW5pdmVyc2FsQWNjZXNzOlZFcixmYVRvaWxldFBhcGVyOkJ1ZSxmYVRvaWxldFBhcGVyQWx0OmpFcixmYVRvaWxldFBhcGVyQmxhbms6VUVyLGZhVnJDYXJkYm9hcmQ6V0VyLGZhUGl6emFTbGljZTpHRXIsZmFTcHJheUNhbjpZRXIsZmFWb2x1bWVMb3c6ZkJlLGZhVm9sdW1lRG93bjpLRXIsZmFDcm9zczpaRXIsZmFQZXJzb246aEJlLGZhTWFsZTpRRXIsZmFIb3VyZ2xhc3M6bUJlLGZhSG91cmdsYXNzRW1wdHk6WEVyLGZhRmlzaDpKRXIsZmFEcnVtc3RpY2tCaXRlOmVJcixmYUNoYXJ0U2ltcGxlOnRJcixmYUF0b206cklyLGZhUDphSXIsZmFKZXRGaWdodGVyVXA6aUlyLGZhUGx1Z0NpcmNsZVhtYXJrOnNJcixmYVNoZWV0UGxhc3RpYzpuSXIsZmFWOm9JcixmYUxpc3Q6Z0JlLGZhTGlzdFNxdWFyZXM6bElyLGZhUGlzY2VzOmNJcixmYVNvbGFyUGFuZWw6ZElyLGZhTGFuZE1pbmVPbjp1SXIsZmFIZWFkcGhvbmVzOkh1ZSxmYUhlYWRwaG9uZXNBbHQ6cElyLGZhSGVhZHBob25lc1NpbXBsZTpmSXIsZmFCdXM6aElyLGZhRmlsZVBvd2VycG9pbnQ6bUlyLGZhUXVvdGVMZWZ0OmJCZSxmYVF1b3RlTGVmdEFsdDpnSXIsZmFDaGV2cm9uRG93bjpiSXIsZmFFYXJ0aEFzaWE6eEJlLGZhR2xvYmVBc2lhOnhJcixmYUNlbnRTaWduOnZJcixmYVNoaWVsZENhdDp5SXIsZmFTY2hvb2xDaXJjbGVDaGVjazp3SXIsZmFNYXJ0aW5pR2xhc3M6dkJlLGZhR2xhc3NNYXJ0aW5pQWx0OmtJcixmYVBsdWc6U0lyLGZhUGFub3JhbWE6TUlyLGZhQ2xvY2tSb3RhdGVMZWZ0OmVULGZhSGlzdG9yeTpDSXIsZmFKYXJXaGVhdDp6SXIsZmFDbG91ZEFycm93RG93bjpxdWUsZmFDbG91ZERvd25sb2FkOl9JcixmYUNsb3VkRG93bmxvYWRBbHQ6VElyLGZhVHJ1Y2tSYW1wQm94OnlCZSxmYVRydWNrTG9hZGluZzpMSXIsZmFBbmdsZURvd246RElyLGZhUGx1Z0NpcmNsZUNoZWNrOiRJcixmYVdpbmRvd01heGltaXplOkFJcixmYUhhbmRzSG9sZGluZ0NpcmNsZTpFSXIsZmFMb2NhdGlvblBpbjp3QmUsZmFNYXBNYXJrZXI6SUlyLGZhQm93bGluZ0JhbGw6UElyLGZhQ2FydEZsYXRiZWQ6a0JlLGZhRG9sbHlGbGF0YmVkOk5JcixmYUhvdXNlVXNlcjpTQmUsZmFIb21lVXNlcjpPSXIsZmFHaG9zdDpSSXIsZmFDb21tZW50Tm9kZXM6RklyLGZhUGVyc29uQXJyb3dEb3duVG9MaW5lOkJJcixmYVBsdWdDaXJjbGVQbHVzOkhJcixmYVBlcnNvblN3aW1taW5nOk1CZSxmYVN3aW1tZXI6cUlyLGZhQ29tbWVudERvdHM6Q0JlLGZhQ29tbWVudGluZzpWSXIsZmFDaGFydFBpZTp6QmUsZmFQaWVDaGFydDpqSXIsZmFGcm9nOlVJcixmYVdpbmVCb3R0bGU6V0lyLGZhSW5ib3g6R0lyLGZhU3F1YXJlSDpfQmUsZmFIU3F1YXJlOllJcixmYUhvdXNlTWVkaWNhbDpLSXIsZmFDaXJjbGVDaGV2cm9uUmlnaHQ6VEJlLGZhQ2hldnJvbkNpcmNsZVJpZ2h0OlpJcixmYUZpbGVDc3Y6UUlyLGZhSGF0Q293Ym95OlhJcixmYUZhY2VHcmluVG9uZ3VlV2luazpMQmUsZmFHcmluVG9uZ3VlV2luazpKSXIsZmFMOmVQcixmYUFycm93RG93blNob3J0V2lkZTpWdWUsZmFTb3J0QW1vdW50RGVzYzp0UHIsZmFTb3J0QW1vdW50RG93bkFsdDpyUHIsZmFIb3VyZ2xhc3NIYWxmOkRCZSxmYUhvdXJnbGFzczI6YVByLGZhU3Bvb246JEJlLGZhVXRlbnNpbFNwb29uOmlQcixmYUNyZWRpdENhcmQ6QUJlLGZhQ3JlZGl0Q2FyZEFsdDpzUHIsZmFGaWxlSW52b2ljZURvbGxhcjpNcGUsZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nOkVCZSxmYVBhc3RhZmFyaWFuaXNtOm5QcixmYU1hcnRpbmlHbGFzc0NpdHJ1czpJQmUsZmFDb2NrdGFpbDpvUHIsZmFCdWxsaG9ybjpsUHIsZmFCb3hUaXNzdWU6Y1ByLGZhTWF0dHJlc3NQaWxsb3c6ZFByLGZhQ2hldnJvbkxlZnQ6dVByLGZhQ2xvdWRNb29uUmFpbjpwUHIsZmFBcnJvd0Rvd24xOTpqdWUsZmFTb3J0TnVtZXJpY0FzYzpmUHIsZmFTb3J0TnVtZXJpY0Rvd246aFByLGZhSGFuZFNwb2NrOm1QcixmYVdhbmRNYWdpY1NwYXJrbGVzOlBCZSxmYU1hZ2ljV2FuZFNwYXJrbGVzOmdQcixmYUNvbW1lbnRNZWRpY2FsOmJQcixmYUJlbGxTbGFzaDp4UHIsZmFIYW5kc2hha2VTbGFzaDpVdWUsZmFIYW5kc2hha2VBbHRTbGFzaDp2UHIsZmFIYW5kc2hha2VTaW1wbGVTbGFzaDp5UHIsZmFCb3R0bGVXYXRlcjp3UHIsZmFEaWNlRDIwOmtQcixmYUFycm93RG93blpBOld1ZSxmYVNvcnRBbHBoYURlc2M6U1ByLGZhU29ydEFscGhhRG93bkFsdDpNUHIsZmFCcnVzaDpDUHIsZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQ6elByLGZhQXJyb3dVcFNob3J0V2lkZTpOQmUsZmFTb3J0QW1vdW50VXBBbHQ6X1ByLGZhR3JpcFZlcnRpY2FsOk9CZSxmYUdyaWRWZXJ0aWNhbDpUUHIsZmFDYXJUdW5uZWw6TFByLGZhQ2hhcnRDb2x1bW46RFByLGZhQ2Fwcmljb3JuOiRQcixmYVRydWNrQXJyb3dSaWdodDpBUHIsZmFUdjpHdWUsZmFUZWxldmlzaW9uOkVQcixmYVR2QWx0OklQcixmYVNlY3Rpb246UFByLGZhUGVhY2U6TlByLGZhU3RhcjpPUHIsZmFGbGFnOlJQcixmYVRyaWFuZ2xlRXhjbGFtYXRpb246WXVlLGZhRXhjbGFtYXRpb25UcmlhbmdsZTpGUHIsZmFXYXJuaW5nOkJQcixmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uOkhQcixmYUdyYWR1YXRpb25DYXA6UkJlLGZhTW9ydGFyQm9hcmQ6cVByLGZhU3RvcmU6VlByLGZhVXNlckFzdHJvbmF1dDpqUHIsZmFCdWlsZGluZ0ZsYWc6VVByLGZhTXVnU2F1Y2VyOkZCZSxmYUNvZmZlZTpXUHIsZmFMZW1vbjpHUHIsZmFDYXJhdmFuOllQcixmYVE6S1ByLGZhTG9jazpaUHIsZmFQYWludFJvbGxlcjpRUHIsZmFWb2x1bWVIaWdoOkJCZSxmYVZvbHVtZVVwOlhQcixmYUZvbGRlclBsdXM6SlByLGZhTWVyY3VyeTplTnIsZmFBbmNob3I6dE5yLGZhU3F1YXJlUGFya2luZzpIQmUsZmFQYXJraW5nOnJOcixmYUhhbnVraWFoOmFOcixmYVJvdGF0ZUxlZnQ6Ql8sZmFSb3RhdGVCYWNrOmlOcixmYVJvdGF0ZUJhY2t3YXJkOnNOcixmYVVuZG9BbHQ6bk5yLGZhSGVhZGluZzpxQmUsZmFIZWFkZXI6b05yLGZhQ3Jvc3NoYWlyczpsTnIsZmFDaXJjbGVOb2RlczpjTnIsZmFXaW5kb3dSZXN0b3JlOmROcixmYVI6dU5yLGZhRmlsdGVyQ2lyY2xlWG1hcms6cE5yLGZhR29wdXJhbTpmTnIsZmFIZWFydENpcmNsZU1pbnVzOmhOcixmYVN0YXJPZkxpZmU6bU5yLGZhQnVzaW5lc3NUaW1lOlZCZSxmYUJyaWVmY2FzZUNsb2NrOmdOcixmYUZpcmVFeHRpbmd1aXNoZXI6Yk5yLGZhQXJyb3dEb3duTG9uZzpqQmUsZmFMb25nQXJyb3dEb3duOnhOcixmYVVzZXJNaW51czp2TnIsZmFNb25leUNoZWNrOnlOcixmYUhvdXNlTGFwdG9wOlVCZSxmYUxhcHRvcEhvdXNlOndOcixmYURvd25sb2FkOmtOcixmYVNhZ2l0dGFyaXVzOlNOcixmYUNvdWNoOk1OcixmYVJvYWRMb2NrOkNOcixmYVNjaXNzb3JzOldCZSxmYUN1dDp6TnIsZmFCdWc6Q3BlLGZhQXJyb3dSaWdodEZyb21CcmFja2V0OkdCZSxmYVNpZ25PdXQ6X05yLGZhSGFuZEhvbGRpbmdIYW5kOlROcixmYVN0cm9vcHdhZmVsOkxOcixmYUNoaWxkOkROcixmYUljZUNyZWFtOiROcixmYUNvbXB1dGVyTW91c2U6WUJlLGZhTW91c2U6QU5yLGZhRmF1Y2V0OkVOcixmYUF3YXJkOklOcixmYVBlcnNvbkRyb3duaW5nOlBOcixmYUNhbWVyYVJvdGF0ZTpOTnIsZmFGYWNlR3JpbkhlYXJ0czpLQmUsZmFHcmluSGVhcnRzOk9OcixmYUZpbGVGcmFnbWVudDpSTnIsZmFQZXJzb25NaWxpdGFyeVJpZmxlOkZOcixmYVRvZ2dsZU9uOkJOcixmYUx1bmdzVmlydXM6SE5yLGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsOkt1ZSxmYVBpbmdQb25nUGFkZGxlQmFsbDpxTnIsZmFUYWJsZVRlbm5pczpWTnIsZmFCb3hlc1BhY2tpbmc6ak5yLGZhUGVyc29uQ2hhbGtib2FyZDpVTnIsZmFEaWNlVHdvOldOcixmYUFycm93UmlnaHRBcnJvd0xlZnQ6WkJlLGZhRXhjaGFuZ2U6R05yLGZhRm9vdGJhbGw6UUJlLGZhRm9vdGJhbGxCYWxsOllOcixmYVRydWNrTW9uc3RlcjpLTnIsZmFBc3RlcmlzazpaTnIsZmFCYXR0ZXJ5RnVsbDpadWUsZmFCYXR0ZXJ5OlFOcixmYUJhdHRlcnk1OlhOcixmYUNoaWxkRHJlc3M6Sk5yLGZhRmFjZUtpc3NCZWFtOlhCZSxmYUtpc3NCZWFtOmVPcixmYVRyYXNoQ2FuQXJyb3dVcDpKQmUsZmFUcmFzaFJlc3RvcmVBbHQ6dE9yLGZhRm9udDpyT3IsZmFCb3JlSG9sZTphT3IsZmFWaXJ1c0NvdmlkOmlPcixmYUZpbGVQZGY6c09yLGZhTGFuZ3VhZ2U6bk9yLGZhU2hpZWxkSGFsdmVkOmVIZSxmYVNoaWVsZEFsdDpvT3IsZmFDYXJldFVwOmxPcixmYUZpbGVQZW46dEhlLGZhRmlsZUVkaXQ6Y09yLGZhUGVyc29uQmlraW5nOnJIZSxmYUJpa2luZzpkT3IsZmFCb29rT3BlblJlYWRlcjphSGUsZmFCb29rUmVhZGVyOnVPcixmYUdsYXNzV2F0ZXJEcm9wbGV0OnBPcixmYVRvd2VyQnJvYWRjYXN0OmlIZSxmYUJyb2FkY2FzdFRvd2VyOmZPcixmYU1pbmltaXplOnNIZSxmYUNvbXByZXNzQXJyb3dzQWx0OmhPcixmYUFycm93UmlnaHRUb0NpdHk6bU9yLGZhTGFwdG9wTWVkaWNhbDpnT3IsZmFCcmVhZFNsaWNlOmJPcixmYUdsb2JlOnhPcixmYUZvbGRlck1pbnVzOnZPcixmYU1hc2tGYWNlOnlPcixmYUJvbmc6d09yLGZhUm9hZEJyaWRnZTprT3IsZmFBcnJvd1VwOTE6bkhlLGZhU29ydE51bWVyaWNVcEFsdDpTT3IsZmFNb3VudGFpbkNpdHk6TU9yLGZhQXJyb3dEb3duOTE6UXVlLGZhU29ydE51bWVyaWNEZXNjOkNPcixmYVNvcnROdW1lcmljRG93bkFsdDp6T3IsZmFGYWNlR3JpbldpZGU6b0hlLGZhR3JpbkFsdDpfT3IsZmFQb29wOlRPcixmYURoYXJtYWNoYWtyYTpMT3IsZmFCYXR0ZXJ5UXVhcnRlcjpsSGUsZmFCYXR0ZXJ5MjpET3IsZmFBbmtoOiRPcixmYURpYW1vbmQ6QU9yLGZhU3Vic2NyaXB0OkVPcixmYVJ1cGVlU2lnbjpjSGUsZmFSdXBlZTpJT3IsZmFQZXJzb25SaWZsZTpQT3IsZmFEOk5PcixmYVNxdWFyZU5maTpPT3IsZmFUZWV0aDpST3IsZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI6ZEhlLGZhU2VhcmNoRG9sbGFyOkZPcixmYUR1bXBzdGVyRmlyZTpCT3IsZmFVcGxvYWQ6SE9yLGZhVXNlclNsYXNoOlh1ZSxmYVVzZXJBbHRTbGFzaDpxT3IsZmFVc2VyTGFyZ2VTbGFzaDpWT3IsZmFBcnJvd0xlZnQ6ak9yLGZhVmlhbFZpcnVzOlVPcixmYUNoZWNrRG91YmxlOldPcixmYVBhdzpHT3IsZmFIZWxtZXRTYWZldHk6SnVlLGZhSGFyZEhhdDpZT3IsZmFIYXRIYXJkOktPcixmYUU6Wk9yLGZhRmFjZUxhdWdoU3F1aW50OnVIZSxmYUxhdWdoU3F1aW50OlFPcixmYURvd25MZWZ0QW5kVXBSaWdodFRvQ2VudGVyOnBIZSxmYUNvbXByZXNzQWx0OlhPcixmYUdpZnRzOkpPcixmYUJlZDplUnIsZmFNb25leUJpbGxUcmFuc2Zlcjp0UnIsZmFQZXJzb25SdW5uaW5nOmZIZSxmYVJ1bm5pbmc6clJyLGZhQ2lyY2xlQ2hldnJvbkRvd246aEhlLGZhQ2hldnJvbkNpcmNsZURvd246YVJyLGZhVXNlck51cnNlOmlScixmYUZhY2VLaXNzV2lua0hlYXJ0Om1IZSxmYUtpc3NXaW5rSGVhcnQ6c1JyLGZhRmlsbDpuUnIsZmFNb25leUJpbGwxV2F2ZTpnSGUsZmFNb25leUJpbGxXYXZlQWx0Om9ScixmYUxhbmRtYXJrOmxScixmYU11c2ljOmNScixmYUJvb2tNZWRpY2FsOmRScixmYVNodWZmbGU6YkhlLGZhUmFuZG9tOnVScixmYVVuZGVybGluZTpwUnIsZmFCdWlsZGluZ1VzZXI6ZlJyLGZhUm9ib3Q6aFJyLGZhUGx1czp0VCxmYUFkZDptUnIsZmFDb3B5OnpwZSxmYUNoZXNzS2luZzpnUnIsZmFIb3VzZUZsb29kV2F0ZXI6YlJyLGZhQml0Y29pblNpZ246eFJyLGZhQm94OnZScixmYVNxdWFyZVBsdXM6eEhlLGZhUGx1c1NxdWFyZTp5UnIsZmFBcnJvd3NMZWZ0UmlnaHQ6dkhlLGZhQXJyb3dzSDp3UnIsZmFGYW46a1JyLGZhQ3JvdzpTUnIsZmFGaWxlQ2lyY2xlQ2hlY2s6TVJyLGZhTGlua1NsYXNoOkhfLGZhQ2hhaW5Ccm9rZW46Q1JyLGZhQ2hhaW5TbGFzaDp6UnIsZmFVbmxpbms6X1JyLGZhQXJyb3dSb3RhdGVSaWdodDpxXyxmYUFycm93UmlnaHRSb3RhdGU6VFJyLGZhQXJyb3dSb3RhdGVGb3J3YXJkOkxScixmYVJlZG86RFJyLGZhUGVuQ2xpcDp5SGUsZmFQZW5BbHQ6JFJyLGZhRG9vckNsb3NlZDpBUnIsZmFBcnJvd0Rvd25XaWRlU2hvcnQ6ZXBlLGZhU29ydEFtb3VudEFzYzpFUnIsZmFTb3J0QW1vdW50RG93bjpJUnIsZmFDYXJldERvd246UFJyLGZhSzpOUnIsZmFDaGVja1RvU2xvdDp3SGUsZmFWb3RlWWVhOk9ScixmYUZpc2hGaW5zOlJScixmYUNvbXByZXNzOkZScixmYUFycm93VXBBWjprSGUsZmFTb3J0QWxwaGFVcDpCUnIsZmFVc2VyR3JhZHVhdGU6SFJyLGZhRmlsZUNvZGU6cVJyLGZhU29hcDpWUnIsZmFSZWN5Y2xlOmpScixmYUZhY2VHcmluV2luazpTSGUsZmFHcmluV2luazpVUnIsZmFXYXRlckxhZGRlcjp0cGUsZmFMYWRkZXJXYXRlcjpXUnIsZmFTd2ltbWluZ1Bvb2w6R1JyLGZhR2VtaW5pOllScixmYVRvd2VyQ2VsbDpLUnIsZmFDb2xvblNpZ246WlJyLGZhTGFwdG9wRmlsZTpRUnIsZmFCYWhhaTpNSGUsZmFIYXlrYWw6WFJyLGZhTW9uZXlCaWxsMTpDSGUsZmFNb25leUJpbGxBbHQ6SlJyLGZhQ2xvdWRCb2x0OnpIZSxmYVRodW5kZXJzdG9ybTplRnIsZmFFdGhlcm5ldDp0RnIsZmFIcnl2bmlhU2lnbjpfSGUsZmFIcnl2bmlhOnJGcixmYUV5ZVNsYXNoOl9wZSxmYUNhcnRGbGF0YmVkU3VpdGNhc2U6VEhlLGZhTHVnZ2FnZUNhcnQ6YUZyLGZhUmFkaWF0aW9uOmlGcixmYUZpbGVXb3JkOnNGcixmYUJlZFB1bHNlOkxIZSxmYVByb2NlZHVyZXM6bkZyLGZhVGVudHM6b0ZyLGZhTXVnSG90OlRwZSxmYUJvbHQ6REhlLGZhWmFwOmxGcixmYUphcjpjRnIsZmFUcnVja1BsYW5lOmRGcixmYUhhbmRIb2xkaW5nSGVhcnQ6dUZyLGZhQXJyb3dSb3RhdGVMZWZ0Okx5LGZhQXJyb3dMZWZ0Um90YXRlOnBGcixmYUFycm93Um90YXRlQmFjazpmRnIsZmFBcnJvd1JvdGF0ZUJhY2t3YXJkOmhGcixmYVVuZG86bUZyLGZhRmFjZUFuZ3J5OiRIZSxmYUFuZ3J5OmdGcixmYUJ1cnN0OmJGcixmYVo6eEZyLGZhQmFuZGFnZTpBSGUsZmFCYW5kQWlkOnZGcixmYVBsYW5lQ2lyY2xlRXhjbGFtYXRpb246eUZyLGZhQnVzU2lkZTp3RnIsZmFCdWdzOmtGcixmYUJlZXJNdWdFbXB0eTpFSGUsZmFCZWVyOlNGcixmYVBlcnNvbkNpcmNsZUNoZWNrOk1GcixmYVN0YXBsZXI6Q0ZyLGZhSG91c2VNZWRpY2FsQ2lyY2xlQ2hlY2s6ekZyLGZhTmFpcmFTaWduOl9GcixmYVdpZmk6cnBlLGZhV2lmaTM6VEZyLGZhV2lmaVN0cm9uZzpMRnIsZmFNb25leUNoZWNrRG9sbGFyOnJULGZhTW9uZXlDaGVja0FsdDpERnIsZmFFeWVMb3dWaXNpb246SUhlLGZhTG93VmlzaW9uOiRGcixmYUNpcmNsZUFycm93VXA6UEhlLGZhQXJyb3dDaXJjbGVVcDpBRnIsZmFDYW1lcmFSZXRybzpFRnIsZmFDYXBzdWxlczpJRnIsZmFQb286UEZyLGZhVm9sdW1lOk5IZSxmYVZvbHVtZU1lZGl1bTpORnIsZmFFbGV2YXRvcjpPRnIsZmFUYWc6UkZyLGZhRmlsZUNpcmNsZU1pbnVzOkZGcixmYURvd25Mb25nOk9IZSxmYUxvbmdBcnJvd0FsdERvd246QkZyLGZhQ29tcGFjdERpc2M6SEZyLGZhU3VpdGNhc2VSb2xsaW5nOnFGcixmYUJvb2tRdXJhbjpSSGUsZmFRdXJhbjpWRnIsZmFQaG9uZVNsYXNoOmpGcixmYVJvYWRDaXJjbGVDaGVjazpVRnIsZmFTaG9wTG9jazpXRnIsZmFJbWFnZVBvcnRyYWl0OkZIZSxmYVBvcnRyYWl0OkdGcixmYUJyaWRnZUxvY2s6WUZyLGZhSGFtbWVyOktGcixmYUFycm93VXAxOTpCSGUsZmFTb3J0TnVtZXJpY1VwOlpGcixmYUNoZXNzS25pZ2h0OlFGcixmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQ6WEZyLGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTphVCxmYUV4dGVybmFsTGluazpKRnIsZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmU6ZUJyLGZhRmFjZUdyaW5CZWFtOkhIZSxmYUdyaW5CZWFtOnRCcixmYVJlY3RhbmdsZUFkOnFIZSxmYUFkOnJCcixmYUJvb2tUYW5ha2g6VkhlLGZhVGFuYWtoOmFCcixmYUhvdFR1YlBlcnNvbjpqSGUsZmFIb3RUdWI6aUJyLGZhRmlsZUhhbGZEYXNoZWQ6c0JyLGZhT3V0ZGVudDpVSGUsZmFEZWRlbnQ6bkJyLGZhSGFuZFBlYWNlOm9CcixmYUhlYWRTaWRlVmlydXM6bEJyLGZhQ29tcGFzczpjQnIsZmFQZW5OaWI6ZEJyLGZhVGVudEFycm93c0Rvd246dUJyLGZhRm9yd2FyZEZhc3Q6V0hlLGZhRmFzdEZvcndhcmQ6cEJyLGZhQ3JvcDpmQnIsZmFXaGlza2V5R2xhc3M6R0hlLGZhR2xhc3NXaGlza2V5OmhCcixmYVNxdWFyZTptQnIsZmFGYWNlR3JpbjpZSGUsZmFHcmluOmdCcixmYUZpbGVDb250cmFjdDpiQnIsZmFBbmdsZVVwOnhCcixmYUZhY2VTbWlsZTpLSGUsZmFTbWlsZTp2QnIsZmFQZXJzb25EcmVzc0J1cnN0OnlCcixmYURpdmlkZTp3QnIsZmFDb2RlRm9yazprQnIsZmFIb3VzZUZsYWc6U0JyLGZhQnVpbGRpbmdDb2x1bW5zOkR5LGZhQmFuazpNQnIsZmFJbnN0aXR1dGlvbjpDQnIsZmFNdXNldW06ekJyLGZhVW5pdmVyc2l0eTpfQnIsZmFSdWc6VEJyLGZhQ29kZU1lcmdlOkxCcixmYUhvdXNlVHN1bmFtaTpEQnIsZmFNYWduaWZ5aW5nR2xhc3NDaGFydDokQnIsZmFVbWJyZWxsYTpBQnIsZmFIaWxsUm9ja3NsaWRlOkVCcixmYVVzZXJTZWNyZXQ6SUJyLGZhUGFnZXI6UEJyLGZhQnJpZWZjYXNlOk5CcixmYVRyb3dlbEJyaWNrczpPQnIsZmFTb2NrczpSQnIsZmFUOkZCcixmYU1pY3JvY2hpcDpCQnIsZmFUcnVja01lZGljYWw6WkhlLGZhQW1idWxhbmNlOkhCcixmYU9tOnFCcixmYU1vc3F1aXRvTmV0OlZCcixmYVByZXNjcmlwdGlvbkJvdHRsZTpqQnIsZmFVc2Vyc0dlYXI6UUhlLGZhVXNlcnNDb2c6VUJyLGZhUm9hZENpcmNsZUV4Y2xhbWF0aW9uOldCcixmYVBhdXNlOkdCcixmYVN0YWZmU25ha2U6Vl8sZmFSb2RBc2NsZXBpdXM6WUJyLGZhUm9kU25ha2U6S0JyLGZhU3RhZmZBZXNjdWxhcGl1czpaQnIsZmFQaWdneUJhbms6UUJyLGZhTW9udW1lbnQ6WEJyLGZhQW5nbGVzUmlnaHQ6WEhlLGZhQW5nbGVEb3VibGVSaWdodDpKQnIsZmFEZXNrdG9wOmlULGZhRGVza3RvcEFsdDplSHIsZmFQbGFuZUNpcmNsZVhtYXJrOnRIcixmYVJldHdlZXQ6ckhyLGZhVXNlckdlYXI6SkhlLGZhVXNlckNvZzphSHIsZmFCb3JkZXJBbGw6aUhyLGZhQ29pbnM6c0hyLGZhTWFyc1N0cm9rZTpuSHIsZmFIYW5kc2hha2VBbmdsZTplcWUsZmFIYW5kc0hlbHBpbmc6b0hyLGZhQXJyb3dEb3duOmxIcixmYUxvY2F0aW9uRG90OnRxZSxmYU1hcE1hcmtlckFsdDpjSHIsZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb246ZEhyLGZhQ29va2llQml0ZTp1SHIsZmFTY3Jld2RyaXZlcldyZW5jaDpycWUsZmFUb29sczpwSHIsZmFJbmRlbnQ6ZkhyLGZhQmFyczphcWUsZmFOYXZpY29uOmhIcixmYUhhbmRzUHJheWluZzppcWUsZmFQcmF5aW5nSGFuZHM6bUhyLGZhVmlydXNlczpnSHIsZmFTY2hvb2xGbGFnOmJIcixmYVRyYWRlbWFyazp4SHIsZmFGaXJlQnVybmVyOnZIcixmYUZhY2VTbWlsZUJlYW06c3FlLGZhU21pbGVCZWFtOnlIcixmYVRlbnRBcnJvd0xlZnRSaWdodDp3SHIsZmFSb3V0ZTprSHIsZmFBbmdsZXNVcDpucWUsZmFBbmdsZURvdWJsZVVwOlNIcixmYUJ1Y2tldDpNSHIsZmFMZXNzVGhhbkVxdWFsOkNIcixmYUZvbGRlckNsb3NlZDp6SHIsZmFQZXJzb25UaHJvdWdoV2luZG93Ol9IcixmYVNjaG9vbExvY2s6VEhyLGZhUGVyc29uQnVyc3Q6TEhyLGZhTGVmdExvbmc6b3FlLGZhTG9uZ0Fycm93QWx0TGVmdDpESHIsZmFMb2NhdGlvbkNyb3NzaGFpcnM6bHFlLGZhTG9jYXRpb246JEhyLGZhUGVyc29uRG90c0Zyb21MaW5lOmNxZSxmYURpYWdub3NlczpBSHIsZmFHYXVnZVNpbXBsZUhpZ2g6YXBlLGZhVGFjaG9tZXRlcjpFSHIsZmFUYWNob21ldGVyRmFzdDpJSHIsZmFBbmdsZXNMZWZ0OmRxZSxmYUFuZ2xlRG91YmxlTGVmdDpQSHIsZmFVcERvd246dXFlLGZhQXJyb3dzQWx0VjpOSHIsZmFCYXR0ZXJ5RW1wdHk6cHFlLGZhQmF0dGVyeTA6T0hyLGZhS2V5Ym9hcmQ6UkhyLGZhQ29va2llOkZIcixmYVN0b3B3YXRjaDpCSHIsZmFFamVjdDpISHIsZmFTYXRlbGxpdGVEaXNoOnFIcixmYUZhY2VSb2xsaW5nRXllczpmcWUsZmFNZWhSb2xsaW5nRXllczpWSHIsZmFMaXN0Q2hlY2s6aHFlLGZhVGFza3M6akhyLGZhU2Fja1htYXJrOlVIcixmYUhhc2h0YWc6V0hyLGZhVHJhaW46R0hyLGZhR2FtZXBhZDpZSHIsZmFGaWxlRXhwb3J0Om1xZSxmYUFycm93UmlnaHRGcm9tRmlsZTpLSHIsZmFGYWNlR3JpbWFjZTpncWUsZmFHcmltYWNlOlpIcixmYVRyYWluU3Vid2F5OmJxZSxmYVN1YndheTpRSHIsZmFDaXJjbGVEb3Q6eHFlLGZhRG90Q2lyY2xlOlhIcixmYU9iamVjdEdyb3VwOkpIcixmYVNoaXA6ZXFyLGZhQzp0cXIsZmFTcXVhcmVQaG9uZTp2cWUsZmFQaG9uZVNxdWFyZTpycXIsZmFSdWxlckNvbWJpbmVkOmFxcixmYUFycm93c1JvdGF0ZTppcGUsZmFSZWZyZXNoOmlxcixmYVN5bmM6c3FyLGZhUGVyc29uRHJlc3M6eXFlLGZhRmVtYWxlOm5xcixmYUJvb2tPcGVuOm9xcixmYUZvbGRlclRyZWU6bHFyLGZhVmlyZ286Y3FyLGZhQm94QXJjaGl2ZTp3cWUsZmFBcmNoaXZlOmRxcixmYVRlbnRBcnJvd0Rvd25Ub0xpbmU6dXFyLGZhUXJjb2RlOnBxcixmYURyYWdvbjpmcXIsZmFIb3VyZ2xhc3NFbmQ6a3FlLGZhSG91cmdsYXNzMzpocXIsZmFHcmlwOkF5LGZhR3JpZEhvcml6b250YWw6bXFyLGZhR3JpcEhvcml6b250YWw6Z3FyLGZhQm9yZGVyVG9wTGVmdDpTcWUsZmFCb3JkZXJTdHlsZTpicXIsZmFMaXN0VWw6TXFlLGZhTGlzdERvdHM6eHFyLGZhUGVvcGxlUm9iYmVyeTp2cXIsZmFNb2JpbGVCdXR0b246eXFyLGZhQXJyb3dEb3duQVo6c3BlLGZhU29ydEFscGhhQXNjOndxcixmYVNvcnRBbHBoYURvd246a3FyLGZhTW9uZXlCaWxsOlNxcixmYUNpcmNsZU1pbnVzOkNxZSxmYU1pbnVzQ2lyY2xlOk1xcixmYUFycm93UG9pbnRlcjp6cWUsZmFNb3VzZVBvaW50ZXI6Q3FyLGZhU3F1YXJlU2hhcmVOb2RlczpfcWUsZmFTaGFyZUFsdFNxdWFyZTp6cXIsZmFUYWJsZUNlbGxzTGFyZ2U6VHFlLGZhVGhMYXJnZTpfcXIsZmFDYXQ6VHFyLGZhQ2FsZW5kYXJXZWVrOkxxcixmYUNvZGVDb21wYXJlOkRxcixmYUxlbzokcXIsZmFSb2FkQ2lyY2xlWG1hcms6QXFyLGZhUGFsbGV0OkVxcixmYUNha2VDYW5kbGVzOm5wZSxmYUJpcnRoZGF5Q2FrZTpJcXIsZmFDYWtlOlBxcixmYUJ1Z1NsYXNoOk5xcixmYVRhcnA6T3FyLGZhRGlhZ3JhbVByZWRlY2Vzc29yOlJxcixmYUZhY2VGbHVzaGVkOkxxZSxmYUZsdXNoZWQ6RnFyLGZhRGlhZ3JhbU5leHQ6QnFyLGZhQW5jaG9yQ2lyY2xlWG1hcms6SHFyLGZhUGVyc29uQ2lyY2xlWG1hcms6cXFyLGZhU3BhOlZxcixmYUFyaWVzOmpxcixmYUJhcnNQcm9ncmVzczpEcWUsZmFUYXNrc0FsdDpVcXIsZmFIZWFydENpcmNsZUNoZWNrOldxcixmYU1hcnNTdHJva2VSaWdodDokcWUsZmFNYXJzU3Ryb2tlSDpHcXIsZmFUb3dlck9ic2VydmF0aW9uOllxcixmYVN0ZXJsaW5nU2lnbjpvcGUsZmFHYnA6S3FyLGZhUG91bmRTaWduOlpxcixmYUZhdWNldERyaXA6UXFyLGZhQ2lyY2xlSW5mbzpzVCxmYUluZm9DaXJjbGU6WHFyLGZhRmVhdGhlcjpKcXIsZmFCb3dsUmljZTplVnIsZmFTdGFySGFsZlN0cm9rZTpBcWUsZmFTdGFySGFsZkFsdDp0VnIsZmFUZW1wZXJhdHVyZUFycm93RG93bjpFcWUsZmFUZW1wZXJhdHVyZURvd246clZyLGZhTWFza1ZlbnRpbGF0b3I6YVZyLGZhRmlsZVZpZGVvOmlWcixmYUFycm93VHJlbmREb3duOnNWcixmYU9pbENhbjpuVnIsZmFQZW9wbGVDYXJyeUJveDpJcWUsZmFQZW9wbGVDYXJyeTpvVnIsZmFDaGFpcjpsVnIsZmFXaW5kOmNWcixmYUxheWVyR3JvdXA6ZFZyLGZhSGVhZFNpZGVNYXNrOnVWcixmYUhhbmRzOmxwZSxmYVNpZ25MYW5ndWFnZTpwVnIsZmFTaWduaW5nOmZWcixmYVRhYmxldHM6aFZyLGZhV2VpZ2h0SGFuZ2luZzptVnIsZmFEaWNlOmdWcixmYVNob3BTbGFzaDpQcWUsZmFTdG9yZUFsdFNsYXNoOmJWcixmYVNvcnREb3duOk5xZSxmYVNvcnREZXNjOnhWcixmYVBlc2V0YVNpZ246dlZyLGZhVGFibGV0U2NyZWVuQnV0dG9uOk9xZSxmYVRhYmxldEFsdDp5VnIsZmFIYW5kSG9sZGluZ0RvbGxhcjpScWUsZmFIYW5kSG9sZGluZ1VzZDp3VnIsZmFTaGllbGQ6RnFlLGZhU2hpZWxkQmxhbms6a1ZyLGZhRmFjZUxhdWdoOkJxZSxmYUxhdWdoOlNWcixmYUhhbmRzSG9sZGluZzpNVnIsZmFDYXJ0U2hvcHBpbmc6SHFlLGZhU2hvcHBpbmdDYXJ0OkNWcixmYU9jdGFnb246elZyLGZhSGFuZFBvaW50ZXI6X1ZyLGZhUmVnaXN0ZXJlZDpUVnIsZmFIb3VzZVNpZ25hbDpMVnIsZmFCYW5nbGFkZXNoaVRha2FTaWduOkRWcn19KTt2YXIgb1QscXFlPXUoKCk9PntvVD17eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsInN0cm9rZS13aWR0aCI6Miwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsInN0cm9rZS1saW5lam9pbiI6InJvdW5kIn19KTt2YXIgQVZyLElwLFZxZT11KCgpPT57cXFlKCk7QVZyPWkoKFt0LGUscl0pPT57bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gocz0+e2Euc2V0QXR0cmlidXRlKHMsU3RyaW5nKGVbc10pKX0pLHI/Lmxlbmd0aCYmci5mb3JFYWNoKHM9PntsZXQgbj1BVnIocyk7YS5hcHBlbmRDaGlsZChuKX0pLGF9LCJjcmVhdGVTVkdFbGVtZW50IiksSXA9aSgodCxlPXt9KT0+e2xldCBhPXsuLi5vVCwuLi5lfTtyZXR1cm4gQVZyKFsic3ZnIixhLHRdKX0sImNyZWF0ZUVsZW1lbnQiKX0pO3ZhciBqcWUsRVZyPXUoKCk9PntqcWU9aSh0PT57Zm9yKGxldCBlIGluIHQpaWYoZS5zdGFydHNXaXRoKCJhcmlhLSIpfHxlPT09InJvbGUifHxlPT09InRpdGxlIilyZXR1cm4hMDtyZXR1cm4hMX0sImhhc0ExMXlQcm9wIil9KTt2YXIgVXFlLElWcj11KCgpPT57VXFlPWkoKC4uLnQpPT50LmZpbHRlcigoZSxyLGEpPT4hIWUmJmUudHJpbSgpIT09IiImJmEuaW5kZXhPZihlKT09PXIpLmpvaW4oIiAiKS50cmltKCksIm1lcmdlQ2xhc3NlcyIpfSk7dmFyIFdxZSxQVnI9dSgoKT0+e1dxZT1pKHQ9PnQucmVwbGFjZSgvXihbQS1aXSl8W1xzLV9dKyhcdykvZywoZSxyLGEpPT5hP2EudG9VcHBlckNhc2UoKTpyLnRvTG93ZXJDYXNlKCkpLCJ0b0NhbWVsQ2FzZSIpfSk7dmFyIEdxZSxOVnI9dSgoKT0+e1BWcigpO0dxZT1pKHQ9PntsZXQgZT1XcWUodCk7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0sInRvUGFzY2FsQ2FzZSIpfSk7dmFyIE9WcixZcWUsTHBlLFJWcj11KCgpPT57VnFlKCk7cXFlKCk7RVZyKCk7SVZyKCk7TlZyKCk7T1ZyPWkodD0+QXJyYXkuZnJvbSh0LmF0dHJpYnV0ZXMpLnJlZHVjZSgoZSxyKT0+KGVbci5uYW1lXT1yLnZhbHVlLGUpLHt9KSwiZ2V0QXR0cnMiKSxZcWU9aSh0PT50eXBlb2YgdD09InN0cmluZyI/dDohdHx8IXQuY2xhc3M/IiI6dC5jbGFzcyYmdHlwZW9mIHQuY2xhc3M9PSJzdHJpbmciP3QuY2xhc3Muc3BsaXQoIiAiKTp0LmNsYXNzJiZBcnJheS5pc0FycmF5KHQuY2xhc3MpP3QuY2xhc3M6IiIsImdldENsYXNzTmFtZXMiKSxMcGU9aSgodCx7bmFtZUF0dHI6ZSxpY29uczpyLGF0dHJzOmF9KT0+e2xldCBzPXQuZ2V0QXR0cmlidXRlKGUpO2lmKHM9PW51bGwpcmV0dXJuO2xldCBuPUdxZShzKSxvPXJbbl07aWYoIW8pcmV0dXJuIGNvbnNvbGUud2FybihgJHt0Lm91dGVySFRNTH0gaWNvbiBuYW1lIHdhcyBub3QgZm91bmQgaW4gdGhlIHByb3ZpZGVkIGljb25zIG9iamVjdC5gKTtsZXQgbD1PVnIodCksYz1qcWUobCk/e306eyJhcmlhLWhpZGRlbiI6InRydWUifSxkPXsuLi5vVCwiZGF0YS1sdWNpZGUiOnMsLi4uYywuLi5hLC4uLmx9LGY9WXFlKGwpLHA9WXFlKGEpLGg9VXFlKCJsdWNpZGUiLGBsdWNpZGUtJHtzfWAsLi4uZiwuLi5wKTtoJiZPYmplY3QuYXNzaWduKGQse2NsYXNzOmh9KTtsZXQgbT1JcChvLGQpO3JldHVybiB0LnBhcmVudE5vZGU/LnJlcGxhY2VDaGlsZChtLHQpfSwicmVwbGFjZUVsZW1lbnQiKX0pO3ZhciBsVCxLcWU9dSgoKT0+e2xUPVtbInBhdGgiLHtkOiJtMTQgMTIgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV19KTt2YXIgY1QsWnFlPXUoKCk9PntjVD1bWyJwYXRoIix7ZDoibTE0IDExIDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE4IDE2VjcifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dfSk7dmFyIGRULFFxZT11KCgpPT57ZFQ9W1sicGF0aCIse2Q6Im0xNSAxNiAyLjUzNi03LjMyOGExLjAyIDEuMDIgMSAwIDEgMS45MjggMEwyMiAxNiJ9XSxbInBhdGgiLHtkOiJNMTUuNjk3IDE0aDUuNjA2In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciB1VCxYcWU9dSgoKT0+e3VUPVtbImNpcmNsZSIse2N4OiIxNiIsY3k6IjQiLHI6IjEifV0sWyJwYXRoIix7ZDoibTE4IDE5IDEtNy02IDEifV0sWyJwYXRoIix7ZDoibTUgOCAzLTMgNS41IDMtMi4zNiAzLjUifV0sWyJwYXRoIix7ZDoiTTQuMjQgMTQuNWE1IDUgMCAwIDAgNi44OCA2In1dLFsicGF0aCIse2Q6Ik0xMy43NiAxNy41YTUgNSAwIDAgMC02Ljg4LTYifV1dfSk7dmFyIHBULEpxZT11KCgpPT57cFQ9W1sicGF0aCIse2Q6Ik0yMiAxMmgtMi40OGEyIDIgMCAwIDAtMS45MyAxLjQ2bC0yLjM1IDguMzZhLjI1LjI1IDAgMCAxLS40OCAwTDkuMjQgMi4xOGEuMjUuMjUgMCAwIDAtLjQ4IDBsLTIuMzUgOC4zNkEyIDIgMCAwIDEgNC40OSAxMkgyIn1dXX0pO3ZhciBmVCxlVmU9dSgoKT0+e2ZUPVtbInBhdGgiLHtkOiJNMTggMTcuNWEyLjUgMi41IDAgMSAxLTQgMi4wM1YxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoiTTYuNiAxNS41NzJBMiAyIDAgMSAwIDEwIDE3di01In1dXX0pO3ZhciBoVCx0VmU9dSgoKT0+e2hUPVtbInBhdGgiLHtkOiJNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMSJ9XSxbInBhdGgiLHtkOiJtMTIgMTUgNSA2SDdaIn1dXX0pO3ZhciBubSxyVmU9dSgoKT0+e25tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Im05IDEzIDIgMiA0LTQifV1dfSk7dmFyIG1ULGFWZT11KCgpPT57bVQ9W1sicGF0aCIse2Q6Ik02Ljg3IDYuODdhOCA4IDAgMSAwIDExLjI2IDExLjI2In1dLFsicGF0aCIse2Q6Ik0xOS45IDE0LjI1YTggOCAwIDAgMC05LjE1LTkuMTUifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjI2IDE4LjY3IDQgMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCA0IDIgNiJ9XV19KTt2YXIgb20saVZlPXUoKCk9PntvbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXX0pO3ZhciBsbSxzVmU9dSgoKT0+e2xtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV1dfSk7dmFyIGdULG5WZT11KCgpPT57Z1Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTEyIDl2NGwyIDIifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV1dfSk7dmFyIGJULG9WZT11KCgpPT57YlQ9W1sicGF0aCIse2Q6Ik0xMSAyMWMwLTIuNSAyLTIuNSAyLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJtMTkgOC0uOCAzYTEuMjUgMS4yNSAwIDAgMS0xLjIgMUg3YTEuMjUgMS4yNSAwIDAgMS0xLjItMUw1IDgifV0sWyJwYXRoIix7ZDoiTTIxIDNhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgMjFjMC0yLjUgMi0yLjUgMi01In1dXX0pO3ZhciB4VCxsVmU9dSgoKT0+e3hUPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxMSAzIDExIDExIDE0IDggMTcgMTEgMTcgMyJ9XV19KTt2YXIgdlQsY1ZlPXUoKCk9Pnt2VD1bWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTEwIDE2djRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoiTTEwIDhWNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY0In1dLFsicGF0aCIse2Q6Ik0yMCAxNnYxYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMTQgOFY3YzAtMS4xLjktMiAyLTJoMmEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIHlULGRWZT11KCgpPT57eVQ9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Ik04IDEwSDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtNCJ9XSxbInBhdGgiLHtkOiJNOCAyMEg3YTIgMiAwIDAgMS0yLTJ2LTJjMC0xLjEuOS0yIDItMmgxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGgxYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0xIn1dXX0pO3ZhciB3VCx1VmU9dSgoKT0+e3dUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiOSIseDoiMTQiLHk6IjkiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMkgyIn1dXX0pO3ZhciBrVCxwVmU9dSgoKT0+e2tUPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiOSIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMlYyIn1dXX0pO3ZhciBTVCxmVmU9dSgoKT0+e1NUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE3IDdWMiJ9XSxbInBhdGgiLHtkOiJNNyAyMnYtMyJ9XSxbInBhdGgiLHtkOiJNNyA1VjIifV1dfSk7dmFyIE1ULGhWZT11KCgpPT57TVQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMCAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAydjIwIn1dXX0pO3ZhciBDVCxtVmU9dSgoKT0+e0NUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIwIn1dXX0pO3ZhciB6VCxnVmU9dSgoKT0+e3pUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XV19KTt2YXIgX1QsYlZlPXUoKCk9PntfVD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxMiIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDJ2MjAifV1dfSk7dmFyIFRULHhWZT11KCgpPT57VFQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI2Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJ2MjAifV1dfSk7dmFyIExULHZWZT11KCgpPT57TFQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiI5Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAyMlYyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dXX0pO3ZhciBEVCx5VmU9dSgoKT0+e0RUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE1Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAydjIwIn1dXX0pO3ZhciAkVCx3VmU9dSgoKT0+eyRUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiOSIseDoiMTQiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAySDIifV1dfSk7dmFyIEFULGtWZT11KCgpPT57QVQ9W1sicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjYiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiNiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMnYyMCJ9XV19KTt2YXIgRVQsU1ZlPXUoKCk9PntFVD1bWyJwYXRoIix7ZDoiTTIyIDE3aC0zIn1dLFsicGF0aCIse2Q6Ik0yMiA3aC01In1dLFsicGF0aCIse2Q6Ik01IDE3SDIifV0sWyJwYXRoIix7ZDoiTTcgN0gyIn1dLFsicmVjdCIse3g6IjUiLHk6IjE0Iix3aWR0aDoiMTQiLGhlaWdodDoiNiIscng6IjIifV0sWyJyZWN0Iix7eDoiNyIseToiNCIsd2lkdGg6IjEwIixoZWlnaHQ6IjYiLHJ4OiIyIn1dXX0pO3ZhciBJVCxNVmU9dSgoKT0+e0lUPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNMiA0aDIwIn1dXX0pO3ZhciBQVCxDVmU9dSgoKT0+e1BUPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV19KTt2YXIgTlQselZlPXUoKCk9PntOVD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE2IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV1dfSk7dmFyIE9ULF9WZT11KCgpPT57T1Q9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIyaDIwIn1dXX0pO3ZhciBSVCxUVmU9dSgoKT0+e1JUPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyaDIwIn1dXX0pO3ZhciBGVCxMVmU9dSgoKT0+e0ZUPVtbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiOSIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDIwSDIifV0sWyJwYXRoIix7ZDoiTTIyIDRIMiJ9XV19KTt2YXIgQlQsRFZlPXUoKCk9PntCVD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV0sWyJwYXRoIix7ZDoiTTIgM2gyMCJ9XV19KTt2YXIgSFQsJFZlPXUoKCk9PntIVD1bWyJwYXRoIix7ZDoiTTEwIDEwSDYifV0sWyJwYXRoIix7ZDoiTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuMjhhMSAxIDAgMCAwLS42ODQtLjk0OGwtMS45MjMtLjY0MWExIDEgMCAwIDEtLjU3OC0uNTAybC0xLjUzOS0zLjA3NkExIDEgMCAwIDAgMTYuMzgyIDhIMTQifV0sWyJwYXRoIix7ZDoiTTggOHY0In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dfSk7dmFyIHFULEFWZT11KCgpPT57cVQ9W1sicGF0aCIse2Q6Ik0xNiAxMmgzIn1dLFsicGF0aCIse2Q6Ik0xNy41IDEyYTggOCAwIDAgMS04IDhBNC41IDQuNSAwIDAgMSA1IDE1LjVjMC02IDgtNCA4LTguNWEzIDMgMCAxIDAtNiAwYzAgMyAyLjUgOC41IDEyIDEzIn1dXX0pO3ZhciBWVCxFVmU9dSgoKT0+e1ZUPVtbInBhdGgiLHtkOiJNMTAgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUifV0sWyJwYXRoIix7ZDoiTTIyIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dXX0pO3ZhciBqVCxJVmU9dSgoKT0+e2pUPVtbInBhdGgiLHtkOiJNMTAgMnY1LjYzMmMwIC40MjQtLjI3Mi43OTUtLjY1My45ODJBNiA2IDAgMCAwIDYgMTRjLjAwNiA0IDMgNyA1IDgifV0sWyJwYXRoIix7ZDoiTTEwIDVIOGEyIDIgMCAwIDAgMCA0aC42OCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1LjYzMmMwIC40MjQuMjcyLjc5NS42NTIuOTgyQTYgNiAwIDAgMSAxOCAxNGMwIDQtMyA3LTUgOCJ9XSxbInBhdGgiLHtkOiJNMTQgNWgyYTIgMiAwIDAgMSAwIDRoLS42OCJ9XSxbInBhdGgiLHtkOiJNMTggMjJINiJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dfSk7dmFyIFVULFBWZT11KCgpPT57VVQ9W1sicGF0aCIse2Q6Ik0xMiA2djE2In1dLFsicGF0aCIse2Q6Im0xOSAxMyAyLTFhOSA5IDAgMCAxLTE4IDBsMiAxIn1dLFsicGF0aCIse2Q6Ik05IDExaDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dXX0pO3ZhciBXVCxOVmU9dSgoKT0+e1dUPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIn1dLFsicGF0aCIse2Q6Ik03LjUgOCAxMCA5In1dLFsicGF0aCIse2Q6Im0xNCA5IDIuNS0xIn1dLFsicGF0aCIse2Q6Ik05IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoLjAxIn1dXX0pO3ZhciBHVCxPVmU9dSgoKT0+e0dUPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg4In1dLFsicGF0aCIse2Q6Ik04IDloMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgyIn1dXX0pO3ZhciBZVCxSVmU9dSgoKT0+e1lUPVtbInBhdGgiLHtkOiJNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0In1dLFsicGF0aCIse2Q6Ik03IDVhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxIDcgNyAwIDAgMS03IDdIOGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOSAxMnY1In1dLFsicGF0aCIse2Q6Ik0xNSAxMnY1In1dLFsicGF0aCIse2Q6Ik01IDIwYTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzIDEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xIn1dXX0pO3ZhciBLVCxGVmU9dSgoKT0+e0tUPVtbInBhdGgiLHtkOiJNMiAxMiA3IDIifV0sWyJwYXRoIix7ZDoibTcgMTIgNS0xMCJ9XSxbInBhdGgiLHtkOiJtMTIgMTIgNS0xMCJ9XSxbInBhdGgiLHtkOiJtMTcgMTIgNS0xMCJ9XSxbInBhdGgiLHtkOiJNNC41IDdoMTUifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dfSk7dmFyIFpULEJWZT11KCgpPT57WlQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNC4zMSA4IDUuNzQgOS45NCJ9XSxbInBhdGgiLHtkOiJNOS42OSA4aDExLjQ4In1dLFsicGF0aCIse2Q6Im03LjM4IDEyIDUuNzQtOS45NCJ9XSxbInBhdGgiLHtkOiJNOS42OSAxNiAzLjk1IDYuMDYifV0sWyJwYXRoIix7ZDoiTTE0LjMxIDE2SDIuODMifV0sWyJwYXRoIix7ZDoibTE2LjYyIDEyLTUuNzQgOS45NCJ9XV19KTt2YXIgUVQsSFZlPXUoKCk9PntRVD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dXX0pO3ZhciBYVCxxVmU9dSgoKT0+e1hUPVtbInBhdGgiLHtkOiJNMTIgNi41MjhWM2ExIDEgMCAwIDEgMS0xaDAifV0sWyJwYXRoIix7ZDoiTTE4LjIzNyAyMUExNSAxNSAwIDAgMCAyMiAxMWE2IDYgMCAwIDAtMTAtNC40NzJBNiA2IDAgMCAwIDIgMTFhMTUuMSAxNS4xIDAgMCAwIDMuNzYzIDEwIDMgMyAwIDAgMCAzLjY0OC42NDggNS41IDUuNSAwIDAgMSA1LjE3OCAwQTMgMyAwIDAgMCAxOC4yMzcgMjEifV1dfSk7dmFyIEpULFZWZT11KCgpPT57SlQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Im05IDE1IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEyIDEydjkifV1dfSk7dmFyIGVMLGpWZT11KCgpPT57ZUw9W1sicmVjdCIse3g6IjIiLHk6IjQiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDR2NCJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicGF0aCIse2Q6Ik02IDR2NCJ9XV19KTt2YXIgdEwsVVZlPXUoKCk9Pnt0TD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoibTkuNSAxNyA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSAxMiA1IDUifV1dfSk7dmFyIHJMLFdWZT11KCgpPT57ckw9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4In1dLFsicGF0aCIse2Q6Ik0xMCAxMmg0In1dXX0pO3ZhciBhTCxHVmU9dSgoKT0+e2FMPVtbInBhdGgiLHtkOiJNMTkgOVY2YTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTMgMTZhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41VjExYTIgMiAwIDAgMC00IDB6In1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dfSk7dmFyIGlMLFlWZT11KCgpPT57aUw9W1sicGF0aCIse2Q6Ik0xNCA4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxaDMuMjkzYS43MDcuNzA3IDAgMCAxIC41IDEuMjA3bC02LjkzOSA2LjkzOWExLjIwNyAxLjIwNyAwIDAgMS0xLjcwOCAwbC02Ljk0LTYuOTRhLjcwNy43MDcgMCAwIDEgLjUtMS4yMDZIOGExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgNGg2In1dXX0pO3ZhciBzTCxLVmU9dSgoKT0+e3NMPVtbInBhdGgiLHtkOiJNOSA1YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjZhMSAxIDAgMCAwIDEgMWgzLjI5M2EuNzA3LjcwNyAwIDAgMSAuNSAxLjIwN2wtNy4wODYgNy4wODZhMSAxIDAgMCAxLTEuNDE0IDBsLTcuMDg2LTcuMDg2YS43MDcuNzA3IDAgMCAxIC41LTEuMjA3SDhhMSAxIDAgMCAwIDEtMXoifV1dfSk7dmFyIG5MLFpWZT11KCgpPT57bkw9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNC43MDdhLjcwNy43MDcgMCAwIDAtMS4yMDctLjVsLTYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3bDYuOTQgNi45NGEuNzA3LjcwNyAwIDAgMCAxLjIwNy0uNVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOXY2In1dXX0pO3ZhciBvTCxRVmU9dSgoKT0+e29MPVtbInBhdGgiLHtkOiJNMTAuNzkzIDE5Ljc5M2EuNzA3LjcwNyAwIDAgMCAxLjIwNy0uNVYxNmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMS0xLTFWNC43MDdhLjcwNy43MDcgMCAwIDAtMS4yMDctLjVsLTYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3eiJ9XV19KTt2YXIgbEwsWFZlPXUoKCk9PntsTD1bWyJwYXRoIix7ZDoiTTExIDlhMSAxIDAgMCAwIDEtMVY0LjcwN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy0uNWw2Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi45NCA2Ljk0YS43MDcuNzA3IDAgMCAxLTEuMjA3LS41VjE2YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik00IDl2NiJ9XV19KTt2YXIgY0wsSlZlPXUoKCk9PntjTD1bWyJwYXRoIix7ZDoiTTEzLjIwNyAxOS43OTNhLjcwNy43MDcgMCAwIDEtMS4yMDctLjVWMTZhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMCAxLTFWNC43MDdhLjcwNy43MDcgMCAwIDEgMS4yMDctLjVsNi45NCA2Ljk0YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDd6In1dXX0pO3ZhciBkTCxlamU9dSgoKT0+e2RMPVtbInBhdGgiLHtkOiJNMTQgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xaDMuMjkzYS43MDcuNzA3IDAgMCAwIC41LTEuMjA3bC02LjkzOS02LjkzOWExLjIwNyAxLjIwNyAwIDAgMC0xLjcwOCAwbC02Ljk0IDYuOTRhLjcwNy43MDcgMCAwIDAgLjUgMS4yMDZIOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV19KTt2YXIgdUwsdGplPXUoKCk9Pnt1TD1bWyJwYXRoIix7ZDoiTTkgMTlhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTF2LTZhMSAxIDAgMCAxIDEtMWgzLjI5M2EuNzA3LjcwNyAwIDAgMCAuNS0xLjIwN2wtNy4wODYtNy4wODZhMSAxIDAgMCAwLTEuNDE0IDBsLTcuMDg2IDcuMDg2YS43MDcuNzA3IDAgMCAwIC41IDEuMjA3SDhhMSAxIDAgMCAxIDEgMXoifV1dfSk7dmFyIHBMLHJqZT11KCgpPT57cEw9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdi02aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAyMGg0In1dXX0pO3ZhciBmTCxhamU9dSgoKT0+e2ZMPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV19KTt2YXIgY20saWplPXUoKCk9PntjbT1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXX0pO3ZhciBoTCxzamU9dSgoKT0+e2hMPVtbInBhdGgiLHtkOiJNMTkgM0g1In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im02IDE1IDYgNiA2LTYifV1dfSk7dmFyIG1MLG5qZT11KCgpPT57bUw9W1sicGF0aCIse2Q6Ik0xNyA3IDcgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDE3SDdWNyJ9XV19KTt2YXIgZ0wsb2plPXUoKCk9PntnTD1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDQifV0sWyJwYXRoIix7ZDoiTTExIDhoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMTAifV1dfSk7dmFyIGJMLGxqZT11KCgpPT57Ykw9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAifV0sWyJwYXRoIix7ZDoiTTE3IDd2MTBINyJ9XV19KTt2YXIgeEwsY2plPXUoKCk9Pnt4TD1bWyJwYXRoIix7ZDoiTTEyIDJ2MTQifV0sWyJwYXRoIix7ZDoibTE5IDktNyA3LTctNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjIxIixyOiIxIn1dXX0pO3ZhciB2TCxkamU9dSgoKT0+e3ZMPVtbInBhdGgiLHtkOiJNMTIgMTdWMyJ9XSxbInBhdGgiLHtkOiJtNiAxMSA2IDYgNi02In1dLFsicGF0aCIse2Q6Ik0xOSAyMUg1In1dXX0pO3ZhciB5TCx1amU9dSgoKT0+e3lMPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoibTIxIDgtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTcgNHYxNiJ9XV19KTt2YXIgZG0scGplPXUoKCk9PntkbT1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSA4aDcifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV1dfSk7dmFyIHVtLGZqZT11KCgpPT57dW09W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTUgNGg1bC01IDZoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMThoLTUifV1dfSk7dmFyIHdMLGhqZT11KCgpPT57d0w9W1sicGF0aCIse2Q6Ik0xMiA1djE0In1dLFsicGF0aCIse2Q6Im0xOSAxMi03IDctNy03In1dXX0pO3ZhciBrTCxtamU9dSgoKT0+e2tMPVtbInBhdGgiLHtkOiJtOSA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTQifV0sWyJwYXRoIix7ZDoiTTIxIDE5VjUifV1dfSk7dmFyIFNMLGdqZT11KCgpPT57U0w9W1sicGF0aCIse2Q6Ik04IDMgNCA3bDQgNCJ9XSxbInBhdGgiLHtkOiJNNCA3aDE2In1dLFsicGF0aCIse2Q6Im0xNiAyMSA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik0yMCAxN0g0In1dXX0pO3ZhciBNTCxiamU9dSgoKT0+e01MPVtbInBhdGgiLHtkOiJNMyAxOVY1In1dLFsicGF0aCIse2Q6Im0xMyA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTQifV1dfSk7dmFyIENMLHhqZT11KCgpPT57Q0w9W1sicGF0aCIse2Q6Im0xMiAxOS03LTcgNy03In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg1In1dXX0pO3ZhciB6TCx2amU9dSgoKT0+e3pMPVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik0yMSAxMkg3In1dLFsicGF0aCIse2Q6Im0xNSAxOCA2LTYtNi02In1dXX0pO3ZhciBfTCx5amU9dSgoKT0+e19MPVtbInBhdGgiLHtkOiJtMTYgMyA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCA3SDQifV0sWyJwYXRoIix7ZDoibTggMjEtNC00IDQtNCJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV19KTt2YXIgVEwsd2plPXUoKCk9PntUTD1bWyJwYXRoIix7ZDoiTTE3IDEySDMifV0sWyJwYXRoIix7ZDoibTExIDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dfSk7dmFyIExMLGtqZT11KCgpPT57TEw9W1sicGF0aCIse2Q6Ik01IDEyaDE0In1dLFsicGF0aCIse2Q6Im0xMiA1IDcgNy03IDcifV1dfSk7dmFyIERMLFNqZT11KCgpPT57REw9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2LTZoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDIwaDQifV1dfSk7dmFyICRMLE1qZT11KCgpPT57JEw9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyAxMFY0aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGg0In1dLFsicmVjdCIse3g6IjE1Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV1dfSk7dmFyIHBtLENqZT11KCgpPT57cG09W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXX0pO3ZhciBBTCx6amU9dSgoKT0+e0FMPVtbInBhdGgiLHtkOiJtMjEgMTYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XV19KTt2YXIgRUwsX2plPXUoKCk9PntFTD1bWyJwYXRoIix7ZDoibTUgOSA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxNlYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dfSk7dmFyIElMLFRqZT11KCgpPT57SUw9W1sicGF0aCIse2Q6Im0xOCA5LTYtNi02IDYifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIFBMLExqZT11KCgpPT57UEw9W1sicGF0aCIse2Q6Ik03IDE3VjdoMTAifV0sWyJwYXRoIix7ZDoiTTE3IDE3IDcgNyJ9XV19KTt2YXIgZm0sRGplPXUoKCk9PntmbT1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV0sWyJwYXRoIix7ZDoiTTExIDE2aDcifV0sWyJwYXRoIix7ZDoiTTExIDIwaDEwIn1dXX0pO3ZhciBOTCwkamU9dSgoKT0+e05MPVtbInBhdGgiLHtkOiJNNyA3aDEwdjEwIn1dLFsicGF0aCIse2Q6Ik03IDE3IDE3IDcifV1dfSk7dmFyIE9MLEFqZT11KCgpPT57T0w9W1sicGF0aCIse2Q6Ik01IDNoMTQifV0sWyJwYXRoIix7ZDoibTE4IDEzLTYtNi02IDYifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTQifV1dfSk7dmFyIFJMLEVqZT11KCgpPT57Ukw9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjBoNCJ9XV19KTt2YXIgaG0sSWplPXUoKCk9PntobT1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE1IDRoNWwtNSA2aDUifV0sWyJwYXRoIix7ZDoiTTE1IDIwdi0zLjVhMi41IDIuNSAwIDAgMSA1IDBWMjAifV0sWyJwYXRoIix7ZDoiTTIwIDE4aC01In1dXX0pO3ZhciBGTCxQamU9dSgoKT0+e0ZMPVtbInBhdGgiLHtkOiJtNSAxMiA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1In1dXX0pO3ZhciBCTCxOamU9dSgoKT0+e0JMPVtbInBhdGgiLHtkOiJtNCA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTcgMTdWMyJ9XSxbInBhdGgiLHtkOiJtMTQgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxN1YzIn1dLFsicGF0aCIse2Q6Ik00IDIxaDE2In1dXX0pO3ZhciBITCxPamU9dSgoKT0+e0hMPVtbInBhdGgiLHtkOiJNMTIgNnYxMiJ9XSxbInBhdGgiLHtkOiJNMTcuMTk2IDkgNi44MDQgMTUifV0sWyJwYXRoIix7ZDoibTYuODA0IDkgMTAuMzkyIDYifV1dfSk7dmFyIHFMLFJqZT11KCgpPT57cUw9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCJ9XV19KTt2YXIgVkwsRmplPXUoKCk9PntWTD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjAuMiAyMC4yYzIuMDQtMi4wMy4wMi03LjM2LTQuNS0xMS45LTQuNTQtNC41Mi05Ljg3LTYuNTQtMTEuOS00LjUtMi4wNCAyLjAzLS4wMiA3LjM2IDQuNSAxMS45IDQuNTQgNC41MiA5Ljg3IDYuNTQgMTEuOSA0LjVaIn1dLFsicGF0aCIse2Q6Ik0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoifV1dfSk7dmFyIGpMLEJqZT11KCgpPT57akw9W1sicGF0aCIse2Q6Ik0yIDEwdjMifV0sWyJwYXRoIix7ZDoiTTYgNnYxMSJ9XSxbInBhdGgiLHtkOiJNMTAgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTQgOHY3In1dLFsicGF0aCIse2Q6Ik0xOCA1djEzIn1dLFsicGF0aCIse2Q6Ik0yMiAxMHYzIn1dXX0pO3ZhciBVTCxIamU9dSgoKT0+e1VMPVtbInBhdGgiLHtkOiJtMTUuNDc3IDEyLjg5IDEuNTE1IDguNTI2YS41LjUgMCAwIDEtLjgxLjQ3bC0zLjU4LTIuNjg3YTEgMSAwIDAgMC0xLjE5NyAwbC0zLjU4NiAyLjY4NmEuNS41IDAgMCAxLS44MS0uNDY5bDEuNTE0LTguNTI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiNiJ9XV19KTt2YXIgV0wscWplPXUoKCk9PntXTD1bWyJwYXRoIix7ZDoiTTIgMTNhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMFY0YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgMi0yIn1dXX0pO3ZhciBHTCxWamU9dSgoKT0+e0dMPVtbInBhdGgiLHtkOiJtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5In1dLFsicGF0aCIse2Q6Ik0xNSAxNS41YS41LjUgMCAwIDAgLjUuNUE2LjUgNi41IDAgMCAwIDIyIDkuNWEuNS41IDAgMCAwLS41LS41aC0xLjY3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNS4wNjItNS4wNjJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw5LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDUuMDYyIDUuMDYyQTIgMiAwIDAgMSAxNSAxMy44Mjh6In1dXX0pO3ZhciBZTCxqamU9dSgoKT0+e1lMPVtbInBhdGgiLHtkOiJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41In1dLFsicGF0aCIse2Q6Ik0xNSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTJoLjAxIn1dXX0pO3ZhciBtbSxVamU9dSgoKT0+e21tPVtbInBhdGgiLHtkOiJNMTMuNSAxMC41IDE1IDkifV0sWyJwYXRoIix7ZDoiTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1In1dLFsicGF0aCIse2Q6Ik00LjI5MyAxOS43MDcgNiAxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAxLjUtMS41In1dXX0pO3ZhciBLTCxXamU9dSgoKT0+e0tMPVtbInBhdGgiLHtkOiJNNCAxMGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHYxMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTggMTBoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg4In1dLFsicGF0aCIse2Q6Ik04IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTkgNlY0YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIFpMLEdqZT11KCgpPT57Wkw9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIFFMLFlqZT11KCgpPT57UUw9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTUuNCAxMGE0IDQgMCAxIDAgMCA0In1dXX0pO3ZhciBnbSxLamU9dSgoKT0+e2dtPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgWEwsWmplPXUoKCk9PntYTD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIEpMLFFqZT11KCgpPT57Skw9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNNyAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIn1dXX0pO3ZhciBlRCxYamU9dSgoKT0+e2VEPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTggOGg4In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgifV1dfSk7dmFyIHRELEpqZT11KCgpPT57dEQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE2Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiI4Iix5MjoiOCJ9XV19KTt2YXIgckQsZVVlPXUoKCk9PntyRD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im05IDggMyAzdjcifV0sWyJwYXRoIix7ZDoibTEyIDExIDMtMyJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik05IDE2aDYifV1dfSk7dmFyIGFELHRVZT11KCgpPT57YUQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgaUQsclVlPXUoKCk9PntpRD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciBzRCxhVWU9dSgoKT0+e3NEPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIG5ELGlVZT11KCgpPT57bkQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV19KTt2YXIgYm0sc1VlPXUoKCk9PntibT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE3Iix5MjoiMTcifV1dfSk7dmFyIG9ELG5VZT11KCgpPT57b0Q9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg1In1dLFsicGF0aCIse2Q6Ik05IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5In1dXX0pO3ZhciBsRCxvVWU9dSgoKT0+e2xEPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTExIDE3VjhoNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMyJ9XSxbInBhdGgiLHtkOiJNOSAxNmg0In1dXX0pO3ZhciBjRCxsVWU9dSgoKT0+e2NEPVtbInBhdGgiLHtkOiJNMTEgN3YxMGE1IDUgMCAwIDAgNS01In1dLFsicGF0aCIse2Q6Im0xNSA4LTYgMyJ9XSxbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiJ9XV19KTt2YXIgZEQsY1VlPXUoKCk9PntkRD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgdUQsZFVlPXUoKCk9Pnt1RD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dXX0pO3ZhciBwRCx1VWU9dSgoKT0+e3BEPVtbInBhdGgiLHtkOiJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjYiLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBmRCxwVWU9dSgoKT0+e2ZEPVtbInBhdGgiLHtkOiJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCJ9XV19KTt2YXIgaEQsZlVlPXUoKCk9PntoRD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTQuOTI5IDQuOTI5IDE5LjA3IDE5LjA3MSJ9XV19KTt2YXIgbUQsaFVlPXUoKCk9PnttRD1bWyJwYXRoIix7ZDoiTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUifV0sWyJwYXRoIix7ZDoiTTUuMTUgMTcuODljNS41Mi0xLjUyIDguNjUtNi44OSA3LTEyQzExLjU1IDQgMTEuNSAyIDEzIDJjMy4yMiAwIDUgNS41IDUgOCAwIDYuNS00LjIgMTItMTAuNDkgMTJDNS4xMSAyMiAyIDIyIDIgMjBjMC0xLjUgMS4xNC0xLjU1IDMuMTUtMi4xMVoifV1dfSk7dmFyIGdELG1VZT11KCgpPT57Z0Q9W1sicGF0aCIse2Q6Ik0xMCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTAuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTIifV0sWyJwYXRoIix7ZDoiTTYgNnYxMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXX0pO3ZhciBiRCxnVWU9dSgoKT0+e2JEPVtbInBhdGgiLHtkOiJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgeEQsYlVlPXUoKCk9Pnt4RD1bWyJwYXRoIix7ZDoiTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5IDIydi02In1dLFsicGF0aCIse2Q6Im0yMiAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciB2RCx4VWU9dSgoKT0+e3ZEPVtbInBhdGgiLHtkOiJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAxNy01IDUifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIHlELHZVZT11KCgpPT57eUQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDFNMTggMTJoLjAxIn1dXX0pO3ZhciB3RCx5VWU9dSgoKT0+e3dEPVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik04IDV2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoiTTE3IDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dfSk7dmFyIGtELHdVZT11KCgpPT57a0Q9W1sicGF0aCIse2Q6Ik0xMCAzYTQxIDQxIDAgMCAwIDAgMTgifV0sWyJwYXRoIix7ZDoiTTE0IDNhNDEgNDEgMCAwIDEgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42OC45MiAxNS4yNSAxNS4yNSAwIDAgMSAwIDE2LjE2QTIgMiAwIDAgMSAxNyAyMUg3YTIgMiAwIDAgMS0xLjY4LS45MiAxNS4yNSAxNS4yNSAwIDAgMSAwLTE2LjE2QTIgMiAwIDAgMSA3IDN6In1dLFsicGF0aCIse2Q6Ik0zLjg0IDE3aDE2LjMyIn1dLFsicGF0aCIse2Q6Ik0zLjg0IDdoMTYuMzIifV1dfSk7dmFyIFNELGtVZT11KCgpPT57U0Q9W1sicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBNRCxTVWU9dSgoKT0+e01EPVtbInBhdGgiLHtkOiJNMTAgNCA4IDYifV0sWyJwYXRoIix7ZDoiTTE3IDE5djIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XSxbInBhdGgiLHtkOiJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUifV1dfSk7dmFyIENELE1VZT11KCgpPT57Q0Q9W1sicGF0aCIse2Q6Im0xMSA3LTMgNWg0bC0zIDUifV0sWyJwYXRoIix7ZDoiTTE0Ljg1NiA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjkzNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTUuMTQgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyLjkzNiJ9XV19KTt2YXIgekQsQ1VlPXUoKCk9Pnt6RD1bWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE0di00In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIF9ELHpVZT11KCgpPT57X0Q9W1sicGF0aCIse2Q6Ik0xMCAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMHY0In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxMHY0In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIFRELF9VZT11KCgpPT57VEQ9W1sicGF0aCIse2Q6Ik0xMCAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTR2LTQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgTEQsVFVlPXUoKCk9PntMRD1bWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbInBhdGgiLHtkOiJNMTIuNTQzIDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuNjA1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmg2In1dLFsicGF0aCIse2Q6Ik03LjYwNiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMuNjA2In1dXX0pO3ZhciBERCxMVWU9dSgoKT0+e0REPVtbInBhdGgiLHtkOiJNMTAgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA3djYifV0sWyJwYXRoIix7ZDoiTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dXX0pO3ZhciAkRCxEVWU9dSgoKT0+eyREPVtbInBhdGgiLHtkOiJNIDIyIDE0IEwgMjIgMTAifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgQUQsJFVlPXUoKCk9PntBRD1bWyJwYXRoIix7ZDoiTTQuNSAzaDE1In1dLFsicGF0aCIse2Q6Ik02IDN2MTZhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMyJ9XSxbInBhdGgiLHtkOiJNNiAxNGgxMiJ9XV19KTt2YXIgRUQsQVVlPXUoKCk9PntFRD1bWyJwYXRoIix7ZDoiTTkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmExMy45NiAxMy45NiAwIDAgMCA5LjktNC4xIn1dLFsicGF0aCIse2Q6Ik0xMC43NSA1LjA5M0E2IDYgMCAwIDEgMjIgOGMwIDIuNDExLS42MSA0LjY4LTEuNjgzIDYuNjYifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDAgMCA2LjQ4NyAxLjIwOE0xMC42MiA1LjM0MWE0LjAxNSA0LjAxNSAwIDAgMSAyLjAzOSAyLjA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIElELEVVZT11KCgpPT57SUQ9W1sicGF0aCIse2Q6Ik0xMC4xNjUgNi41OThDOS45NTQgNy40NzggOS42NCA4LjM2IDkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmM3LjczMiAwIDE0LTYuMjY4IDE0LTE0YTYgNiAwIDAgMC0xMS44MzUtMS40MDJaIn1dLFsicGF0aCIse2Q6Ik01LjM0MSAxMC42MmE0IDQgMCAxIDAgNS4yNzktNS4yOCJ9XV19KTt2YXIgUEQsSVVlPXUoKCk9PntQRD1bWyJwYXRoIix7ZDoiTTIgMjB2LThhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjgifV0sWyJwYXRoIix7ZDoiTTQgMTBWNmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTIgNHY2In1dLFsicGF0aCIse2Q6Ik0yIDE4aDIwIn1dXX0pO3ZhciBORCxQVWU9dSgoKT0+e05EPVtbInBhdGgiLHtkOiJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDE4aDE4In1dXX0pO3ZhciBPRCxOVWU9dSgoKT0+e09EPVtbInBhdGgiLHtkOiJNMTEuNzcxIDYuMTA5YTIuNSAyLjUgMCAwIDEgMy4xMiAzLjEyIn1dLFsicGF0aCIse2Q6Ik0xNy44NTIgMTIuMTg1YTYuNSA2LjUgMCAwIDAtOS4wMzUtOS4wNCJ9XSxbInBhdGgiLHtkOiJNMTguMDEzIDE4LjAxM0MxNS4wMjkgMjAuMzQ5IDEwLjgzMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUifV0sWyJwYXRoIix7ZDoibTE4LjUgNiAyLjE5IDQuNWE2LjQ4IDYuNDggMCAwIDEtLjEzOSA0LjM5MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02LjM1NSA2LjM3YTcgNyAwIDAgMC0uMDc1LjIzYy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGMzLjM1NiAwIDYuOTkzLTEuMjY3IDkuODUtMy4xNTEifV1dfSk7dmFyIFJELE9VZT11KCgpPT57UkQ9W1sicGF0aCIse2Q6Ik0yIDR2MTYifV0sWyJwYXRoIix7ZDoiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIwIn1dLFsicGF0aCIse2Q6Ik02IDh2OSJ9XV19KTt2YXIgRkQsUlVlPXUoKCk9PntGRD1bWyJwYXRoIix7ZDoiTTE2LjQgMTMuN0E2LjUgNi41IDAgMSAwIDYuMjggNi42Yy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGM0IDAgOC40LTEuOCAxMS40LTQuMyJ9XSxbInBhdGgiLHtkOiJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjEyLjUiLGN5OiI4LjUiLHI6IjIuNSJ9XV19KTt2YXIgQkQsRlVlPXUoKCk9PntCRD1bWyJwYXRoIix7ZDoiTTEzIDEzdjUifV0sWyJwYXRoIix7ZDoiTTE3IDExLjQ3VjgifV0sWyJwYXRoIix7ZDoiTTE3IDExaDFhMyAzIDAgMCAxIDIuNzQ1IDQuMjExIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNy41MzYgNy41MzVDNi43NjYgNy42NDkgNi4xNTQgOCA1LjUgOGEyLjUgMi41IDAgMCAxLTEuNzY4LTQuMjY4In1dLFsicGF0aCIse2Q6Ik04LjcyNyAzLjIwNEM5LjMwNiAyLjc2NyA5Ljg4NSAyIDExIDJjMS41NiAwIDIgMS41IDMgMS41czEuNzItLjUgMi41LS41YTEgMSAwIDEgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVhMy4xNDkgMy4xNDkgMCAwIDAtLjg0Mi4xMiJ9XSxbInBhdGgiLHtkOiJNOSAxNC42VjE4In1dXX0pO3ZhciBIRCxCVWU9dSgoKT0+e0hEPVtbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIn1dLFsicGF0aCIse2Q6Ik05IDEydjYifV0sWyJwYXRoIix7ZDoiTTEzIDEydjYifV0sWyJwYXRoIix7ZDoiTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dXX0pO3ZhciBxRCxIVWU9dSgoKT0+e3FEPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xMS42OCAyLjAwOUE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M2MtLjgyNC0uODUtMS42NzgtMS43MzEtMi4yMS0zLjM0OCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIFZELHFVZT11KCgpPT57VkQ9W1sicGF0aCIse2Q6Ik0xOC41MTggMTcuMzQ3QTcgNyAwIDAgMSAxNCAxOSJ9XSxbInBhdGgiLHtkOiJNMTguOCA0QTExIDExIDAgMCAxIDIwIDkifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiNyJ9XSxbInJlY3QiLHt4OiI0Iix5OiIxNiIsd2lkdGg6IjEwIixoZWlnaHQ6IjYiLHJ4OiIyIn1dXX0pO3ZhciBqRCxWVWU9dSgoKT0+e2pEPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE2LjI0MyAzLjc1N0E2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0E5LjQgOS40IDAgMCAxIDE4LjY2NyAxMiJ9XV19KTt2YXIgVUQsalVlPXUoKCk9PntVRD1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTdINGExIDEgMCAwIDEtLjc0LTEuNjczQzQuNTkgMTMuOTU2IDYgMTIuNDk5IDYgOGE2IDYgMCAwIDEgLjI1OC0xLjc0MiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY2OCAzLjAxQTYgNiAwIDAgMSAxOCA4YzAgMi42ODcuNzcgNC42NTMgMS43MDcgNi4wNSJ9XV19KTt2YXIgV0QsVVVlPXUoKCk9PntXRD1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMTUgOGg2In1dLFsicGF0aCIse2Q6Ik0xOCA1djYifV0sWyJwYXRoIix7ZDoiTTIwLjAwMiAxNC40NjRhOSA5IDAgMCAwIC43MzguODYzQTEgMSAwIDAgMSAyMCAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSA4Ljc1LTUuMzMyIn1dXX0pO3ZhciBHRCxXVWU9dSgoKT0+e0dEPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi4zLS44LTQuMy0yLTYifV0sWyJwYXRoIix7ZDoiTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYifV0sWyJwYXRoIix7ZDoiTTQgMkMyLjggMy43IDIgNS43IDIgOCJ9XV19KTt2YXIgWUQsR1VlPXUoKCk9PntZRD1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNiJ9XV19KTt2YXIgeG0sWVVlPXUoKCk9Pnt4bT1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yMiAxNS0zLTMgMy0zIn1dLFsicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV1dfSk7dmFyIHZtLEtVZT11KCgpPT57dm09W1sicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiI4Iix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJtMiA5IDMgMy0zIDMifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjgiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgS0QsWlVlPXUoKCk9PntLRD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtMyAzIDMifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjE0Iix5OiIzIixyeDoiMSJ9XV19KTt2YXIgWkQsUVVlPXUoKCk9PntaRD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0xNSAyLTMgMy0zLTMifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjE0Iix5OiI4IixyeDoiMSJ9XV19KTt2YXIgUUQsWFVlPXUoKCk9PntRRD1bWyJwYXRoIix7ZDoiTTEyLjQwOSAxMy4wMTdBNSA1IDAgMCAxIDIyIDE1YzAgMy44NjYtNCA3LTkgNy00LjA3NyAwLTguMTUzLS44Mi0xMC4zNzEtMi40NjItLjQyNi0uMzE2LS42MzEtLjgzMi0uNjItMS4zNjJDMi4xMTggMTIuNzIzIDIuNjI3IDIgMTAgMmEzIDMgMCAwIDEgMyAzIDIgMiAwIDAgMS0yIDJjLTEuMTA1IDAtMS42NC0uNDQ0LTItMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTRhNSA1IDAgMCAwLTcuNTg0IDIifV0sWyJwYXRoIix7ZDoiTTkuOTY0IDYuODI1QzguMDE5IDcuOTc3IDkuNSAxMyA4IDE1In1dXX0pO3ZhciBYRCxKVWU9dSgoKT0+e1hEPVtbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTcuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjUuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjUiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjVWMTRsLTMtMyA0LTMgMiAzaDIifV1dfSk7dmFyIEpELGVXZT11KCgpPT57SkQ9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV0sWyJyZWN0Iix7eDoiNiIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBoNCJ9XSxbInBhdGgiLHtkOiJNNiAxNGgydjYifV0sWyJwYXRoIix7ZDoiTTE0IDRoMnY2In1dXX0pO3ZhciBlJCx0V2U9dSgoKT0+e2UkPVtbInBhdGgiLHtkOiJNMTAgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0yMCAyMWEyIDIgMCAwIDAgMi0ydi0zLjg1MWMwLTEuMzktMi0yLjk2Mi0yLTQuODI5VjhhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjExYTIgMiAwIDAgMCAyIDJ6In1dLFsicGF0aCIse2Q6Ik0gMjIgMTYgTCAyIDE2In1dLFsicGF0aCIse2Q6Ik00IDIxYTIgMiAwIDAgMS0yLTJ2LTMuODUxYzAtMS4zOSAyLTIuOTYyIDItNC44MjlWOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYxMWEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNOSA3VjRhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgdCQscldlPXUoKCk9Pnt0JD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMS45IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjcgMy40Yy0uOSAyLjUgMCA1LjIgMi4yIDYuN0M2LjUgOSAzLjcgOS42IDIgMTEuNiJ9XSxbInBhdGgiLHtkOiJtOC45IDEwLjEgMS40LjgifV0sWyJwYXRoIix7ZDoiTTE3LjMgMy40Yy45IDIuNSAwIDUuMi0yLjIgNi43IDIuNC0xLjIgNS4yLS42IDYuOSAxLjUifV0sWyJwYXRoIix7ZDoibTE1LjEgMTAuMS0xLjQuOCJ9XSxbInBhdGgiLHtkOiJNMTYuNyAyMC44Yy0yLjYtLjQtNC42LTIuNi00LjctNS4zLS4yIDIuNi0yLjEgNC44LTQuNyA1LjIifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjl2MS42In1dLFsicGF0aCIse2Q6Ik0xMy41IDUuNGMtMS0uMi0yLS4yLTMgMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNGMuNy0uNyAxLjItMS42IDEuNS0yLjUifV0sWyJwYXRoIix7ZDoiTTUuNSAxMy45Yy4zLjkuOCAxLjggMS41IDIuNSJ9XV19KTt2YXIgciQsYVdlPXUoKCk9PntyJD1bWyJwYXRoIix7ZDoiTTE2IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zLjQgMThIMTJhOCA4IDAgMCAwIDgtOFY3YTQgNCAwIDAgMC03LjI4LTIuM0wyIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA3IDIgLjUtMiAuNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTh2MyJ9XSxbInBhdGgiLHtkOiJNMTQgMTcuNzVWMjEifV0sWyJwYXRoIix7ZDoiTTcgMThhNiA2IDAgMCAwIDMuODQtMTAuNjEifV1dfSk7dmFyIGEkLGlXZT11KCgpPT57YSQ9W1sicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Im0xNyAxOCAxLjk1Ni0xMS40NjgifV0sWyJwYXRoIix7ZDoibTMgOCA3LjgyLTUuNjE1YTIgMiAwIDAgMSAyLjM2IDBMMjEgOCJ9XSxbInBhdGgiLHtkOiJNNCAxOGgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxOCA1LjA0NCA2LjUzMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIyIn1dXX0pO3ZhciBpJCxzV2U9dSgoKT0+e2kkPVtbInBhdGgiLHtkOiJNMTEuNzY3IDE5LjA4OWM0LjkyNC44NjggNi4xNC02LjAyNSAxLjIxNi02Ljg5NG0tMS4yMTYgNi44OTRMNS44NiAxOC4wNDdtNS45MDggMS4wNDItLjM0NyAxLjk3bTEuNTYzLTguODY0YzQuOTI0Ljg2OSA2LjE0LTYuMDI1IDEuMjE1LTYuODkzbS0xLjIxNSA2Ljg5My0zLjk0LS42OTRtNS4xNTUtNi4yTDguMjkgNC4yNm01LjkwOCAxLjA0Mi4zNDgtMS45N003LjQ4IDIwLjM2NGwzLjEyNi0xNy43MjcifV1dfSk7dmFyIHMkLG5XZT11KCgpPT57cyQ9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTUiLHI6IjcifV1dfSk7dmFyIG4kLG9XZT11KCgpPT57biQ9W1sicGF0aCIse2Q6Ik0zIDNoMTgifV0sWyJwYXRoIix7ZDoiTTIwIDdIOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTFIOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTloMTAifV0sWyJwYXRoIix7ZDoiTTggMTVoMTIifV0sWyJwYXRoIix7ZDoiTTQgM3YxNCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIG8kLGxXZT11KCgpPT57byQ9W1sicGF0aCIse2Q6Ik0xMCAyMlY3YTEgMSAwIDAgMC0xLTFINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtNWExIDEgMCAwIDAtMS0xSDIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXX0pO3ZhciBsJCxjV2U9dSgoKT0+e2wkPVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsibGluZSIse3gxOiIxOCIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIxMiIseTI6IjEyIn1dXX0pO3ZhciBjJCxkV2U9dSgoKT0+e2MkPVtbInBhdGgiLHtkOiJtMTcgMTctNSA1VjEybC01IDUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMTQuNSA5LjUgMTcgN2wtNS01djQuNSJ9XV19KTt2YXIgZCQsdVdlPXUoKCk9PntkJD1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMC01IDVWMmw1IDVMNyAxNyJ9XV19KTt2YXIgdSQscFdlPXUoKCk9Pnt1JD1bWyJwYXRoIix7ZDoiTTYgMTJoOWE0IDQgMCAwIDEgMCA4SDdhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoN2E0IDQgMCAwIDEgMCA4In1dXX0pO3ZhciBwJCxmV2U9dSgoKT0+e3AkPVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsicGF0aCIse2Q6Ik0yMC44MyAxNC44M2E0IDQgMCAwIDAgMC01LjY2In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIGYkLGhXZT11KCgpPT57ZiQ9W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV19KTt2YXIgaCQsbVdlPXUoKCk9PntoJD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMyIscjoiOSJ9XSxbInBhdGgiLHtkOiJNMTQuMzUgNC42NSAxNi4zIDIuN2EyLjQxIDIuNDEgMCAwIDEgMy40IDBsMS42IDEuNmEyLjQgMi40IDAgMCAxIDAgMy40bC0xLjk1IDEuOTUifV0sWyJwYXRoIix7ZDoibTIyIDItMS41IDEuNSJ9XV19KTt2YXIgbSQsZ1dlPXUoKCk9PnttJD1bWyJwYXRoIix7ZDoiTTE3IDEwYy43LS43IDEuNjkgMCAyLjUgMGEyLjUgMi41IDAgMSAwIDAtNSAuNS41IDAgMCAxLS41LS41IDIuNSAyLjUgMCAxIDAtNSAwYzAgLjgxLjcgMS44IDAgMi41bC03IDdjLS43LjctMS42OSAwLTIuNSAwYTIuNSAyLjUgMCAwIDAgMCA1Yy4yOCAwIC41LjIyLjUuNWEyLjUgMi41IDAgMSAwIDUgMGMwLS44MS0uNy0xLjggMC0yLjVaIn1dXX0pO3ZhciBnJCxiV2U9dSgoKT0+e2ckPVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOCAxMyA0LTcgNCA3In1dLFsicGF0aCIse2Q6Ik05LjEgMTFoNS43In1dXX0pO3ZhciBiJCx4V2U9dSgoKT0+e2IkPVtbInBhdGgiLHtkOiJNMTIgMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA2djMifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIHgkLHZXZT11KCgpPT57eCQ9W1sicGF0aCIse2Q6Ik0xMiA2djcifV0sWyJwYXRoIix7ZDoiTTE2IDh2MyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCA4djMifV1dfSk7dmFyIHYkLHlXZT11KCgpPT57diQ9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05IDkuNSAyIDIgNC00In1dXX0pO3ZhciB5JCx3V2U9dSgoKT0+e3kkPVtbInBhdGgiLHtkOiJNNSA3YTIgMiAwIDAgMC0yIDJ2MTEifV0sWyJwYXRoIix7ZDoiTTUuODAzIDE4SDVhMiAyIDAgMCAwIDAgNGg5LjVhLjUuNSAwIDAgMCAuNS0uNVYyMSJ9XSxbInBhdGgiLHtkOiJNOSAxNVY0YTIgMiAwIDAgMSAyLTJoOS41YS41LjUgMCAwIDEgLjUuNXYxNGEuNS41IDAgMCAxLS41LjVIMTFhMiAyIDAgMCAxIDAtNGgxMCJ9XV19KTt2YXIgeW0sa1dlPXUoKCk9Pnt5bT1bWyJwYXRoIix7ZDoiTTEyIDE3aDEuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJoMS41In1dLFsicGF0aCIse2Q6Ik0xMiAyaDEuNSJ9XSxbInBhdGgiLHtkOiJNMTcuNSAyMkgxOWExIDEgMCAwIDAgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNy41IDJIMTlhMSAxIDAgMCAxIDEgMXYxLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE0djNoLTIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgOC41VjEwIn1dLFsicGF0aCIse2Q6Ik00IDEwVjguNSJ9XSxbInBhdGgiLHtkOiJNNCAxOS41VjE0In1dLFsicGF0aCIse2Q6Ik00IDQuNUEyLjUgMi41IDAgMCAxIDYuNSAySDgifV0sWyJwYXRoIix7ZDoiTTggMjJINi41YTEgMSAwIDAgMSAwLTVIOCJ9XV19KTt2YXIgdyQsU1dlPXUoKCk9Pnt3JD1bWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgMTAgMyAzIDMtMyJ9XV19KTt2YXIgayQsTVdlPXUoKCk9PntrJD1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTJhNCA0IDAgMCAxIDggMHYyIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dXX0pO3ZhciBTJCxDV2U9dSgoKT0+e1MkPVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOC42MiA5LjhBMi4yNSAyLjI1IDAgMSAxIDEyIDYuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV19KTt2YXIgTSQseldlPXUoKCk9PntNJD1bWyJwYXRoIix7ZDoibTIwIDEzLjctMi4xLTIuMWEyIDIgMCAwIDAtMi44IDBMOS43IDE3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiMiJ9XV19KTt2YXIgQyQsX1dlPXUoKCk9PntDJD1bWyJwYXRoIix7ZDoiTTEzIDJINi41QTIuNSAyLjUgMCAwIDAgNCA0LjV2MTUifV0sWyJwYXRoIix7ZDoiTTE3IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTcgNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNS4yVjIxYTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxMCIscjoiMiJ9XV19KTt2YXIgeiQsVFdlPXUoKCk9Pnt6JD1bWyJwYXRoIix7ZDoiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIn1dLFsicmVjdCIse3g6IjEyIix5OiI2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgXyQsTFdlPXUoKCk9PntfJD1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgVCQsRFdlPXUoKCk9PntUJD1bWyJwYXRoIix7ZDoiTTEwIDJ2OGwzLTMgMyAzVjIifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIEwkLCRXZT11KCgpPT57TCQ9W1sicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im0xNiAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0yMiA2VjRhMSAxIDAgMCAwLTEtMWgtNWE0IDQgMCAwIDAtNCA0IDQgNCAwIDAgMC00LTRIM2ExIDEgMCAwIDAtMSAxdjEzYTEgMSAwIDAgMCAxIDFoNmEzIDMgMCAwIDEgMyAzIDMgMyAwIDAgMSAzLTNoNmExIDEgMCAwIDAgMS0xdi0xLjMifV1dfSk7dmFyIEQkLEFXZT11KCgpPT57RCQ9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aDIifV0sWyJwYXRoIix7ZDoiTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik02IDhoMiJ9XV19KTt2YXIgJCQsRVdlPXUoKCk9PnskJD1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiJ9XV19KTt2YXIgQSQsSVdlPXUoKCk9PntBJD1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXX0pO3ZhciBFJCxQV2U9dSgoKT0+e0UkPVtbInBhdGgiLHtkOiJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuODc5LTEuODc4In1dLFsicGF0aCIse2Q6Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIEkkLE5XZT11KCgpPT57SSQ9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDExaDgifV0sWyJwYXRoIix7ZDoiTTggN2g2In1dXX0pO3ZhciBQJCxPV2U9dSgoKT0+e1AkPVtbInBhdGgiLHtkOiJNMTAgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY3In1dLFsicGF0aCIse2Q6Ik0xNiA4VjZIOHYyIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dXX0pO3ZhciBOJCxSV2U9dSgoKT0+e04kPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAyIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXX0pO3ZhciBPJCxGV2U9dSgoKT0+e08kPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dXX0pO3ZhciBSJCxCV2U9dSgoKT0+e1IkPVtbInBhdGgiLHtkOiJNMTUgMTNhMyAzIDAgMSAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV1dfSk7dmFyIEYkLEhXZT11KCgpPT57RiQ9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dXX0pO3ZhciBCJCxxV2U9dSgoKT0+e0IkPVtbInBhdGgiLHtkOiJtMTQuNSA3LTUgNSJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOS41IDcgNSA1In1dXX0pO3ZhciBIJCxWV2U9dSgoKT0+e0gkPVtbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV1dfSk7dmFyIHEkLGpXZT11KCgpPT57cSQ9W1sicGF0aCIse2Q6Ik0xOSAxOXYxYTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguNjU2IDNIMTdhMiAyIDAgMCAxIDIgMnY4LjM0NCJ9XV19KTt2YXIgViQsVVdlPXUoKCk9PntWJD1bWyJwYXRoIix7ZDoiTTE1IDEwSDkifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgaiQsV1dlPXUoKCk9PntqJD1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBIOSJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dXX0pO3ZhciBVJCxHV2U9dSgoKT0+e1UkPVtbInBhdGgiLHtkOiJtMTQuNSA3LjUtNSA1In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoibTkuNSA3LjUgNSA1In1dXX0pO3ZhciBXJCxZV2U9dSgoKT0+e1ckPVtbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dXX0pO3ZhciBHJCxLV2U9dSgoKT0+e0ckPVtbInBhdGgiLHtkOiJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTggOHYxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djEifV0sWyJwYXRoIix7ZDoiTTE2IDh2MSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjkiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciBZJCxaV2U9dSgoKT0+e1kkPVtbInBhdGgiLHtkOiJNMTIgNlYySDgifV0sWyJwYXRoIix7ZDoiTTE1IDExdjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTZhMiAyIDAgMCAxLTIgMkg4LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgNCAyMC4yODZWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik05IDExdjIifV1dfSk7dmFyIEskLFFXZT11KCgpPT57SyQ9W1sicGF0aCIse2Q6Ik0xMy42NyA4SDE4YTIgMiAwIDAgMSAyIDJ2NC4zMyJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV0sWyJwYXRoIix7ZDoiTTggOEg2YTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjQxNC0uNTg2In1dLFsicGF0aCIse2Q6Ik05IDEzdjIifV0sWyJwYXRoIix7ZDoiTTkuNjcgNEgxMnYyLjMzIn1dXX0pO3ZhciBaJCxYV2U9dSgoKT0+e1okPVtbInBhdGgiLHtkOiJNMTIgOFY0SDgifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEyIix4OiI0Iix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxM3YyIn1dLFsicGF0aCIse2Q6Ik05IDEzdjIifV1dfSk7dmFyIFEkLEpXZT11KCgpPT57USQ9W1sicGF0aCIse2Q6Ik0xMCAzYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhNiA2IDAgMCAwIDEuMiAzLjZsLjYuOEE2IDYgMCAwIDEgMTcgMTN2OGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXYtOGE2IDYgMCAwIDEgMS4yLTMuNmwuNi0uOEE2IDYgMCAwIDAgMTAgNXoifV0sWyJwYXRoIix7ZDoiTTE3IDEzaC00YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDQifV1dfSk7dmFyIFgkLGVHZT11KCgpPT57WCQ9W1sicGF0aCIse2Q6Ik0xNyAzaDR2NCJ9XSxbInBhdGgiLHtkOiJNMTguNTc1IDExLjA4MmExMyAxMyAwIDAgMSAxLjA0OCA5LjAyNyAxLjE3IDEuMTcgMCAwIDEtMS45MTQuNTk3TDE0IDE3In1dLFsicGF0aCIse2Q6Ik03IDEwIDMuMjkgNi4yOWExLjE3IDEuMTcgMCAwIDEgLjYtMS45MSAxMyAxMyAwIDAgMSA5LjAzIDEuMDUifV0sWyJwYXRoIix7ZDoiTTcgMTRhMS43IDEuNyAwIDAgMC0xLjIwNy41bC0yLjY0NiAyLjY0NkEuNS41IDAgMCAwIDMuNSAxOEg1YTEgMSAwIDAgMSAxIDF2MS41YS41LjUgMCAwIDAgLjg1NC4zNTRMOS41IDE4LjIwN0ExLjcgMS43IDAgMCAwIDEwIDE3di0yYTEgMSAwIDAgMC0xLTF6In1dLFsicGF0aCIse2Q6Ik05LjcwNyAxNC4yOTMgMjEgMyJ9XV19KTt2YXIgSiQsdEdlPXUoKCk9PntKJD1bWyJwYXRoIix7ZDoiTTIxIDhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2WiJ9XSxbInBhdGgiLHtkOiJtMy4zIDcgOC43IDUgOC43LTUifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dXX0pO3ZhciBlQSxyR2U9dSgoKT0+e2VBPVtbInBhdGgiLHtkOiJNMi45NyAxMi45MkEyIDIgMCAwIDAgMiAxNC42M3YzLjI0YTIgMiAwIDAgMCAuOTcgMS43MWwzIDEuOGEyIDIgMCAwIDAgMi4wNiAwTDEyIDE5di01LjVsLTUtMy00LjAzIDIuNDJaIn1dLFsicGF0aCIse2Q6Im03IDE2LjUtNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Im03IDE2LjUgNS0zIn1dLFsicGF0aCIse2Q6Ik03IDE2LjV2NS4xNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTMuNVYxOWwzLjk3IDIuMzhhMiAyIDAgMCAwIDIuMDYgMGwzLTEuOGEyIDIgMCAwIDAgLjk3LTEuNzF2LTMuMjRhMiAyIDAgMCAwLS45Ny0xLjcxTDE3IDEwLjVsLTUgM1oifV0sWyJwYXRoIix7ZDoibTE3IDE2LjUtNS0zIn1dLFsicGF0aCIse2Q6Im0xNyAxNi41IDQuNzQtMi44NSJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNXY1LjE3In1dLFsicGF0aCIse2Q6Ik03Ljk3IDQuNDJBMiAyIDAgMCAwIDcgNi4xM3Y0LjM3bDUgMyA1LTNWNi4xM2EyIDIgMCAwIDAtLjk3LTEuNzFsLTMtMS44YTIgMiAwIDAgMC0yLjA2IDBsLTMgMS44WiJ9XSxbInBhdGgiLHtkOiJNMTIgOCA3LjI2IDUuMTUifV0sWyJwYXRoIix7ZDoibTEyIDggNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Ik0xMiAxMy41VjgifV1dfSk7dmFyIHRBLGFHZT11KCgpPT57dEE9W1sicGF0aCIse2Q6Ik0xNiAzaDNhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik04IDIxSDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMyJ9XV19KTt2YXIgd20saUdlPXUoKCk9Pnt3bT1bWyJwYXRoIix7ZDoiTTggM0g3YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMSAyIDJ2NWMwIDEuMS45IDIgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xIn1dXX0pO3ZhciByQSxzR2U9dSgoKT0+e3JBPVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoifV0sWyJwYXRoIix7ZDoiTTkgMTNhNC41IDQuNSAwIDAgMCAzLTQifV0sWyJwYXRoIix7ZDoiTTYuMDAzIDUuMTI1QTMgMyAwIDAgMCA2LjQwMSA2LjUifV0sWyJwYXRoIix7ZDoiTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2In1dLFsicGF0aCIse2Q6Ik0xMiAxM2g0In1dLFsicGF0aCIse2Q6Ik0xMiAxOGg2YTIgMiAwIDAgMSAyIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTIgOGg4In1dLFsicGF0aCIse2Q6Ik0xNiA4VjVhMiAyIDAgMCAxIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEzIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjMiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMjEiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiOCIscjoiLjUifV1dfSk7dmFyIGFBLG5HZT11KCgpPT57YUE9W1sicGF0aCIse2Q6Im0xMC44NTIgMTQuNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xMC44NTIgOS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuNzcyLjM4Mi45MjQifV0sWyJwYXRoIix7ZDoibTEzLjUzMSA4LjMwNS0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDAgMC01LjYzLTEuNDQ2IDMgMyAwIDAgMC0uMzY4IDEuNTcxIDQgNCAwIDAgMC0yLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTcuOTk4IDUuMTI1YTQgNCAwIDAgMSAyLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTkuNTA1IDEwLjI5NGE0IDQgMCAwIDEtMS41IDcuNzA2In1dLFsicGF0aCIse2Q6Ik00LjAzMiAxNy40ODNBNCA0IDAgMCAwIDExLjQ2NCAyMGMuMTgtLjMxMS44OTItLjMxMSAxLjA3MiAwYTQgNCAwIDAgMCA3LjQzMi0yLjUxNiJ9XSxbInBhdGgiLHtkOiJNNC41IDEwLjI5MUE0IDQgMCAwIDAgNiAxOCJ9XSxbInBhdGgiLHtkOiJNNi4wMDIgNS4xMjVhMyAzIDAgMCAwIC40IDEuMzc1In1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgaUEsb0dlPXUoKCk9PntpQT1bWyJwYXRoIix7ZDoiTTEyIDE4VjUifV0sWyJwYXRoIix7ZDoiTTE1IDEzYTQuMTcgNC4xNyAwIDAgMS0zLTQgNC4xNyA0LjE3IDAgMCAxLTMgNCJ9XSxbInBhdGgiLHtkOiJNMTcuNTk4IDYuNUEzIDMgMCAxIDAgMTIgNWEzIDMgMCAxIDAtNS41OTggMS41In1dLFsicGF0aCIse2Q6Ik0xNy45OTcgNS4xMjVhNCA0IDAgMCAxIDIuNTI2IDUuNzcifV0sWyJwYXRoIix7ZDoiTTE4IDE4YTQgNCAwIDAgMCAyLTcuNDY0In1dLFsicGF0aCIse2Q6Ik0xOS45NjcgMTcuNDgzQTQgNCAwIDEgMSAxMiAxOGE0IDQgMCAxIDEtNy45NjctLjUxNyJ9XSxbInBhdGgiLHtkOiJNNiAxOGE0IDQgMCAwIDEtMi03LjQ2NCJ9XSxbInBhdGgiLHtkOiJNNi4wMDMgNS4xMjVhNCA0IDAgMCAwLTIuNTI2IDUuNzcifV1dfSk7dmFyIHNBLGxHZT11KCgpPT57c0E9W1sicGF0aCIse2Q6Ik0xNiAzdjIuMTA3In1dLFsicGF0aCIse2Q6Ik0xNyA5YzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDIyIDE3YTUgNSAwIDAgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkMxMyAxMS41IDE2IDkgMTcgOSJ9XSxbInBhdGgiLHtkOiJNMjEgOC4yNzRWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuOTM4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDUuMjUzIn1dLFsicGF0aCIse2Q6Ik0zIDloOC4yMjgifV0sWyJwYXRoIix7ZDoiTTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNOCAzdjYifV1dfSk7dmFyIG5BLGNHZT11KCgpPT57bkE9W1sicGF0aCIse2Q6Ik0xMiA5djEuMjU4In1dLFsicGF0aCIse2Q6Ik0xNiAzdjUuNDYifV0sWyJwYXRoIix7ZDoiTTIxIDkuMTE4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg1Ljc1In1dLFsicGF0aCIse2Q6Ik0yMiAxNy41YzAgMi40OTktMS43NSAzLjc0OS0zLjgzIDQuNDc0YS41LjUgMCAwIDEtLjMzNS0uMDA1Yy0yLjA4NS0uNzItMy44MzUtMS45Ny0zLjgzNS00LjQ3VjE0YS41LjUgMCAwIDEgLjUtLjQ5OWMxIDAgMi4yNS0uNiAzLjEyLTEuMzZhLjYuNiAwIDAgMSAuNzYtLjAwMWMuODc1Ljc2NSAyLjEyIDEuMzYgMy4xMiAxLjM2YS41LjUgMCAwIDEgLjUuNXoifV0sWyJwYXRoIix7ZDoiTTMgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMyA5aDEyLjE0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNXY2In1dLFsicGF0aCIse2Q6Ik04IDN2NiJ9XV19KTt2YXIgb0EsZEdlPXUoKCk9PntvQT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOXY2In1dLFsicGF0aCIse2Q6Ik0xNiAxNXY2In1dLFsicGF0aCIse2Q6Ik0xNiAzdjYifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNOCAxNXY2In1dLFsicGF0aCIse2Q6Ik04IDN2NiJ9XV19KTt2YXIgbEEsdUdlPXUoKCk9PntsQT1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMiAxM2ExOC4xNSAxOC4xNSAwIDAgMS0yMCAwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIGNBLHBHZT11KCgpPT57Y0E9W1sicGF0aCIse2Q6Ik0xMCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0yMSAyMEgzIn1dLFsicGF0aCIse2Q6Ik02IDIwdjIifV0sWyJwYXRoIix7ZDoiTTggMTZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxMiJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTAiLHJ4OiIyIn1dXX0pO3ZhciBkQSxmR2U9dSgoKT0+e2RBPVtbInBhdGgiLHtkOiJNMTIgMTF2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoLTQifV0sWyJwYXRoIix7ZDoiTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTggNnYxNCJ9XSxbInBhdGgiLHtkOiJNNiA2djE0In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIHVBLGhHZT11KCgpPT57dUE9W1sicGF0aCIse2Q6Ik0xNiAyMFY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXX0pO3ZhciBwQSxtR2U9dSgoKT0+e3BBPVtbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTIifV1dfSk7dmFyIGZBLGdHZT11KCgpPT57ZkE9W1sicGF0aCIse2Q6Im0xNiAyMi0xLTQifV0sWyJwYXRoIix7ZDoiTTE5IDE0YTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwLTItMmgtM2ExIDEgMCAwIDEtMS0xVjRhMiAyIDAgMCAwLTQgMHY1YTEgMSAwIDAgMS0xIDFINmEyIDIgMCAwIDAtMiAydjFhMSAxIDAgMCAwIDEgMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTRINWwtMS45NzMgNi43NjdBMSAxIDAgMCAwIDQgMjJoMTZhMSAxIDAgMCAwIC45NzMtMS4yMzN6In1dLFsicGF0aCIse2Q6Im04IDIyIDEtNCJ9XV19KTt2YXIgaEEsYkdlPXUoKCk9PntoQT1bWyJwYXRoIix7ZDoibTExIDEwIDMgMyJ9XSxbInBhdGgiLHtkOiJNNi41IDIxQTMuNSAzLjUgMCAxIDAgMyAxNy41YTIuNjIgMi42MiAwIDAgMS0uNzA4IDEuNzkyQTEgMSAwIDAgMCAzIDIxeiJ9XSxbInBhdGgiLHtkOiJNOS45NjkgMTcuMDMxIDIxLjM3OCA1LjYyNGExIDEgMCAwIDAtMy4wMDItMy4wMDJMNi45NjcgMTQuMDMxIn1dXX0pO3ZhciBtQSx4R2U9dSgoKT0+e21BPVtbInBhdGgiLHtkOiJNNy4wMDEgMTUuMDg1QTEuNSAxLjUgMCAwIDEgOSAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiI4LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiI1LjUifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNC41IixyOiIyLjUifV1dfSk7dmFyIGdBLHZHZT11KCgpPT57Z0E9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTRhNCA0IDAgMCAxIDQgNHYxLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0xNy4xMjMgMTcuMTIzQTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSAxLjcyLTMuMjg3In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTMuMzQ0In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkuNzEyIDQuMDZBMyAzIDAgMCAxIDE1IDZ2MS4xMyJ9XV19KTt2YXIgYkEseUdlPXUoKCk9PntiQT1bWyJwYXRoIix7ZDoiTTEwIDE5LjY1NUE2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgNC00aDRhNCA0IDAgMCAxIDQgMy45NyJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIn1dXX0pO3ZhciB4QSx3R2U9dSgoKT0+e3hBPVtbInBhdGgiLHtkOiJNMTIgMjB2LTkifV0sWyJwYXRoIix7ZDoiTTE0IDdhNCA0IDAgMCAxIDQgNHYzYTYgNiAwIDAgMS0xMiAwdi0zYTQgNCAwIDAgMSA0LTR6In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTIxIDIxYTQgNCAwIDAgMC0zLjgxLTQifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTQifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIn1dXX0pO3ZhciB2QSxrR2U9dSgoKT0+e3ZBPVtbInBhdGgiLHtkOiJNMTAgMTJoNCJ9XSxbInBhdGgiLHtkOiJNMTAgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTYgMTBINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiAyMVY1YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjE2In1dXX0pO3ZhciB5QSxTR2U9dSgoKT0+e3lBPVtbInBhdGgiLHtkOiJNMTIgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTggMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNOSAyMnYtM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dfSk7dmFyIHdBLE1HZT11KCgpPT57d0E9W1sicGF0aCIse2Q6Ik00IDYgMiA3In1dLFsicGF0aCIse2Q6Ik0xMCA2aDQifV0sWyJwYXRoIix7ZDoibTIyIDctMi0xIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTFoMTYifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTggMjF2LTIifV1dfSk7dmFyIGtBLENHZT11KCgpPT57a0E9W1sicGF0aCIse2Q6Ik04IDZ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgNnY2In1dLFsicGF0aCIse2Q6Ik0yIDEyaDE5LjYifV0sWyJwYXRoIix7ZDoiTTE4IDE4aDNzLjUtMS43LjgtMi44Yy4xLS40LjItLjguMi0xLjIgMC0uNC0uMS0uOC0uMi0xLjJsLTEuNC01QzIwLjEgNi44IDE5LjEgNiAxOCA2SDRhMiAyIDAgMCAwLTIgMnYxMGgzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxOGg1In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTgiLHI6IjIifV1dfSk7dmFyIFNBLHpHZT11KCgpPT57U0E9W1sicGF0aCIse2Q6Ik0xMCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmguMDEifV0sWyJwYXRoIix7ZDoibTIgOSAyMC01In1dLFsicGF0aCIse2Q6Ik0xMiAxMlY2LjUifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEwIix4OiI0Iix5OiIxMiIscng6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV19KTt2YXIgTUEsX0dlPXUoKCk9PntNQT1bWyJwYXRoIix7ZDoiTTE3IDE5YTEgMSAwIDAgMS0xLTF2LTJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE5IDE0VjYuNWExIDEgMCAwIDAtNyAwdjExYTEgMSAwIDAgMS03IDBWMTAifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0zIDVWMyJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjZhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyA1VjMifV1dfSk7dmFyIENBLFRHZT11KCgpPT57Q0E9W1sicGF0aCIse2Q6Ik0xNiAxM0gzIn1dLFsicGF0aCIse2Q6Ik0xNiAxN0gzIn1dLFsicGF0aCIse2Q6Im03LjIgNy45LTMuMzg4IDIuNUEyIDIgMCAwIDAgMyAxMi4wMVYyMGExIDEgMCAwIDAgMSAxaDE2YTEgMSAwIDAgMCAxLTF2LTguNjU0YzAtMi0yLjQ0LTYuMDI2LTYuNDQtOC4wMjZhMSAxIDAgMCAwLTEuMDgyLjA1N0wxMC40IDUuNiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiMiJ9XV19KTt2YXIgekEsTEdlPXUoKCk9Pnt6QT1bWyJwYXRoIix7ZDoiTTIwIDIxdi04YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTQgMTZzLjUtMSAyLTEgMi41IDIgNCAyIDIuNS0yIDQtMiAyLjUgMiA0IDIgMi0xIDItMSJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XSxbInBhdGgiLHtkOiJNNyA4djMifV0sWyJwYXRoIix7ZDoiTTEyIDh2MyJ9XSxbInBhdGgiLHtkOiJNMTcgOHYzIn1dLFsicGF0aCIse2Q6Ik03IDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgNGguMDEifV1dfSk7dmFyIF9BLERHZT11KCgpPT57X0E9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjYiLHkyOiI2In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTQiLHkyOiIxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dXX0pO3ZhciBUQSwkR2U9dSgoKT0+e1RBPVtbInBhdGgiLHtkOiJNMTEgMTRoMXY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicmVjdCIse3g6IjMiLHk6IjQiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIExBLEFHZT11KCgpPT57TEE9W1sicGF0aCIse2Q6Im0xNCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djgifV0sWyJwYXRoIix7ZDoiTTIxIDExLjM1NFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4zNDMifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBEQSxFR2U9dSgoKT0+e0RBPVtbInBhdGgiLHtkOiJtMTQgMTggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMzQzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg5In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgJEEsSUdlPXUoKCk9PnskQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE0VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im0xNiAyMCAyIDIgNC00In1dXX0pO3ZhciBBQSxQR2U9dSgoKT0+e0FBPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im05IDE2IDIgMiA0LTQifV1dfSk7dmFyIEVBLE5HZT11KCgpPT57RUE9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgNy41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjUifV0sWyJwYXRoIix7ZDoiTTMgMTBoNSJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNiIscjoiNiJ9XV19KTt2YXIgSUEsT0dlPXUoKCk9PntJQT1bWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTkuMTQ4LS45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoibTE2LjQ3IDE0LjMwNS4zODIuOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjU5MlY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgUEEsUkdlPXUoKCk9PntQQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGguMDEifV1dfSk7dmFyIE5BLEZHZT11KCgpPT57TkE9W1sicGF0aCIse2Q6Ik0zIDIwYTIgMiAwIDAgMCAyIDJoMTBhMi40IDIuNCAwIDAgMCAxLjcwNi0uNzA2bDMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMjEgMTZWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE1IDIydi01YTEgMSAwIDAgMSAxLTFoNSJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV19KTt2YXIgT0EsQkdlPXUoKCk9PntPQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoNCJ9XV19KTt2YXIgUkEsSEdlPXUoKCk9PntSQT1bWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIEZBLHFHZT11KCgpPT57RkE9W1sicGF0aCIse2Q6Ik0xMi4xMjcgMjJINWEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjUuMTI1In1dLFsicGF0aCIse2Q6Ik0xNC42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSAxOCAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBCQSxWR2U9dSgoKT0+e0JBPVtbInBhdGgiLHtkOiJNNC4yIDQuMkEyIDIgMCAwIDAgMyA2djE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDEuODItMS4xOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTUuNVY2YTIgMiAwIDAgMC0yLTJIOS41In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoNyJ9XSxbInBhdGgiLHtkOiJNMjEgMTBoLTUuNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBIQSxqR2U9dSgoKT0+e0hBPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNHY0In1dXX0pO3ZhciBxQSxVR2U9dSgoKT0+e3FBPVtbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIFZBLFdHZT11KCgpPT57VkE9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC02In1dLFsicGF0aCIse2Q6Ik0xMyAxOEg3In1dLFsicGF0aCIse2Q6Ik03IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMThoLjAxIn1dXX0pO3ZhciBqQSxHR2U9dSgoKT0+e2pBPVtbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxMS43NVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4yNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIFVBLFlHZT11KCgpPT57VUE9W1sicGF0aCIse2Q6Ik0xMSAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTExIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Im0yMSAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTIxIDIydi00aC00In1dLFsicGF0aCIse2Q6Ik0yMSA4LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDQuMyJ9XSxbInBhdGgiLHtkOiJNMyAxMGg0In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgV0EsS0dlPXUoKCk9PntXQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDEzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im0xNyAyMiA1LTUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XV19KTt2YXIgR0EsWkdlPXUoKCk9PntHQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTQgMTQtNCA0In1dLFsicGF0aCIse2Q6Im0xMCAxNCA0IDQifV1dfSk7dmFyIFlBLFFHZT11KCgpPT57WUE9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV1dfSk7dmFyIEtBLFhHZT11KCgpPT57S0E9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE1LjcyNiAyMS4wMUEyIDIgMCAwIDEgMTQgMjJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTE4IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMiAxM2gyIn1dLFsicGF0aCIse2Q6Ik04IDhoMTQifV0sWyJyZWN0Iix7eDoiOCIseToiMyIsd2lkdGg6IjE0IixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgWkEsSkdlPXUoKCk9PntaQT1bWyJwYXRoIix7ZDoiTTEzLjk5NyA0YTIgMiAwIDAgMSAxLjc2IDEuMDVsLjQ4Ni45QTIgMiAwIDAgMCAxOC4wMDMgN0gyMGEyIDIgMCAwIDEgMiAydjlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDEuOTk3YTIgMiAwIDAgMCAxLjc1OS0xLjA0OGwuNDg5LS45MDRBMiAyIDAgMCAxIDEwLjAwNCA0eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIzIn1dXX0pO3ZhciBRQSxlWWU9dSgoKT0+e1FBPVtbInBhdGgiLHtkOiJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1In1dLFsicGF0aCIse2Q6Ik05LjY5NSA0LjAyNEEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQifV1dfSk7dmFyIFhBLHRZZT11KCgpPT57WEE9W1sicGF0aCIse2Q6Ik01LjcgMjFhMiAyIDAgMCAxLTMuNS0ybDguNi0xNGE2IDYgMCAwIDEgMTAuNCA2IDIgMiAwIDEgMS0zLjQ2NC0yIDIgMiAwIDEgMC0zLjQ2NC0yWiJ9XSxbInBhdGgiLHtkOiJNMTcuNzUgNyAxNSAyLjEifV0sWyJwYXRoIix7ZDoiTTEwLjkgNC44IDEzIDkifV0sWyJwYXRoIix7ZDoibTcuOSA5LjcgMiA0LjQifV0sWyJwYXRoIix7ZDoiTTQuOSAxNC43IDcgMTguOSJ9XV19KTt2YXIgSkEsclllPXUoKCk9PntKQT1bWyJwYXRoIix7ZDoiTTEwIDEwdjcuOSJ9XSxbInBhdGgiLHtkOiJNMTEuODAyIDYuMTQ1YTUgNSAwIDAgMSA2LjA1MyA2LjA1MyJ9XSxbInBhdGgiLHtkOiJNMTQgNi4xdjIuMjQzIn1dLFsicGF0aCIse2Q6Im0xNS41IDE1LjU3MS0uOTY0Ljk2NGE1IDUgMCAwIDEtNy4wNzEgMCA1IDUgMCAwIDEgMC03LjA3bC45NjQtLjk2NSJ9XSxbInBhdGgiLHtkOiJNMTYgN1YzYTEgMSAwIDAgMSAxLjcwNy0uNzA3IDIuNSAyLjUgMCAwIDAgMi4xNTIuNzE3IDEgMSAwIDAgMSAxLjEzMSAxLjEzMSAyLjUgMi41IDAgMCAwIC43MTcgMi4xNTJBMSAxIDAgMCAxIDIxIDhoLTQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCJ9XV19KTt2YXIgZUUsYVllPXUoKCk9PntlRT1bWyJwYXRoIix7ZDoiTTEwIDd2MTAuOSJ9XSxbInBhdGgiLHtkOiJNMTQgNi4xVjE3In1dLFsicGF0aCIse2Q6Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCJ9XSxbInBhdGgiLHtkOiJNMTYuNTM2IDcuNDY1YTUgNSAwIDAgMC03LjA3MiAwbC0yIDJhNSA1IDAgMCAwIDAgNy4wNyA1IDUgMCAwIDAgNy4wNzIgMGwyLTJhNSA1IDAgMCAwIDAtNy4wNyJ9XSxbInBhdGgiLHtkOiJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCJ9XV19KTt2YXIgdEUsaVllPXUoKCk9Pnt0RT1bWyJwYXRoIix7ZDoiTTEyIDIydi00YzEuNSAxLjUgMy41IDMgNiAzIDAtMS41LS41LTMuNS0yLTUifV0sWyJwYXRoIix7ZDoiTTEzLjk4OCA4LjMyN0MxMy45MDIgNi4wNTQgMTMuMzY1IDMuODIgMTIgMmE5LjMgOS4zIDAgMCAwLTEuNDQ1IDIuOSJ9XSxbInBhdGgiLHtkOiJNMTcuMzc1IDExLjcyNUMxOC44ODIgMTAuNTMgMjEgNy44NDEgMjEgNmMtMi4zMjQgMC01LjA4IDEuMjk2LTYuNjYyIDIuNjg0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxLjAyNCAxNS4zNzhBMTUgMTUgMCAwIDAgMjIgMTVjLS40MjYtMS4yNzktMi42Ny0yLjU1Ny00LjI1LTIuOTA3In1dLFsicGF0aCIse2Q6Ik02Ljk5NSA2Ljk5MkM1LjcxNCA2LjQgNC4yOSA2IDMgNmMwIDIgMi41IDUgNCA2LTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyJ9XV19KTt2YXIgckUsc1llPXUoKCk9PntyRT1bWyJwYXRoIix7ZDoiTTEyIDIydi00In1dLFsicGF0aCIse2Q6Ik03IDEyYy0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMgMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSAwIDAgMi41LjUgNi0xLS41LTEuNS0zLjUtMy01LTMgMS41LTEgNC00IDQtNi0yLjUgMC01LjUgMS41LTcgMyAwLTIuNS0uNS01LTItNy0xLjUgMi0yIDQuNS0yIDctMS41LTEuNS00LjUtMy03LTMgMCAyIDIuNSA1IDQgNiJ9XV19KTt2YXIgYUUsblllPXUoKCk9PnthRT1bWyJwYXRoIix7ZDoiTTEwLjUgNUgxOWEyIDIgMCAwIDEgMiAydjguNSJ9XSxbInBhdGgiLHtkOiJNMTcgMTFoLS41In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTcgMTFoNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWgyLjUifV1dfSk7dmFyIGttLG9ZZT11KCgpPT57a209W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDE1aDRNMTUgMTVoMk03IDExaDJNMTMgMTFoNCJ9XV19KTt2YXIgaUUsbFllPXUoKCk9PntpRT1bWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciBzRSxjWWU9dSgoKT0+e3NFPVtbInBhdGgiLHtkOiJNMTkgMTdoMmMuNiAwIDEtLjQgMS0xdi0zYzAtLjktLjctMS43LTEuNS0xLjlDMTguNyAxMC42IDE2IDEwIDE2IDEwcy0xLjMtMS40LTIuMi0yLjNjLS41LS40LTEuMS0uNy0xLjgtLjdINWMtLjYgMC0xLjEuNC0xLjQuOWwtMS40IDIuOUEzLjcgMy43IDAgMCAwIDIgMTJ2NGMwIC42LjQgMSAxIDFoMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTciLHI6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdoNiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiIyIn1dXX0pO3ZhciBuRSxkWWU9dSgoKT0+e25FPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Im0yMSA4LTIgMi0xLjUtMy43QTIgMiAwIDAgMCAxNS42NDYgNUg4LjRhMiAyIDAgMCAwLTEuOTAzIDEuMjU3TDUgMTAgMyA4In1dLFsicGF0aCIse2Q6Ik03IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTRoLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI4Iix4OiIzIix5OiIxMCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTUgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTkgMTh2MiJ9XV19KTt2YXIgb0UsdVllPXUoKCk9PntvRT1bWyJwYXRoIix7ZDoiTTE4IDE5VjlhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2OGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIgOWgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDIifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFhMSAxIDAgMCAxLTEgMUgxMHYtOWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY5In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgbEUscFllPXUoKCk9PntsRT1bWyJwYXRoIix7ZDoiTTEyIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0LjE3MiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsMy44MjggMy44MjhBMiAyIDAgMCAxIDIwIDcuODI4VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInJlY3QiLHt4OiI4Iix5OiIxMCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIGNFLGZZZT11KCgpPT57Y0U9W1sicGF0aCIse2Q6Ik0yLjI3IDIxLjdzOS44Ny0zLjUgMTIuNzMtNi4zNmE0LjUgNC41IDAgMCAwLTYuMzYtNi4zN0M1Ljc3IDExLjg0IDIuMjcgMjEuNyAyLjI3IDIxLjd6TTguNjQgMTRsLTIuMDUtMi4wNE0xNS4zNCAxNWwtMi40Ni0yLjQ2In1dLFsicGF0aCIse2Q6Ik0yMiA5cy0xLjMzLTItMy41LTJDMTYuODYgNyAxNSA5IDE1IDlzMS4zMyAyIDMuNSAyUzIyIDkgMjIgOXoifV0sWyJwYXRoIix7ZDoiTTE1IDJzLTIgMS4zMy0yIDMuNVMxNSA5IDE1IDlzMi0xLjg0IDItMy41QzE3IDMuMzMgMTUgMiAxNSAyeiJ9XV19KTt2YXIgZEUsaFllPXUoKCk9PntkRT1bWyJwYXRoIix7ZDoiTTEwIDl2NyJ9XSxbInBhdGgiLHtkOiJNMTQgNnYxMCJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTIuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XV19KTt2YXIgdUUsbVllPXUoKCk9Pnt1RT1bWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMjIgOXY3In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTIuNSIscjoiMy41In1dXX0pO3ZhciBwRSxnWWU9dSgoKT0+e3BFPVtbInBhdGgiLHtkOiJNMTUgMTFoNC41YTEgMSAwIDAgMSAwIDVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDNhMSAxIDAgMCAxIDAgNSJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV19KTt2YXIgZkUsYlllPXUoKCk9PntmRT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEwIixyOiIyIn1dLFsicGF0aCIse2Q6Im02IDIwIC43LTIuOUExLjQgMS40IDAgMCAxIDguMSAxNmg3LjhhMS40IDEuNCAwIDAgMSAxLjQgMWwuNyAzIn1dXX0pO3ZhciBoRSx4WWU9dSgoKT0+e2hFPVtbInBhdGgiLHtkOiJNMiA4VjZhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJoLTYifV0sWyJwYXRoIix7ZDoiTTIgMTJhOSA5IDAgMCAxIDggOCJ9XSxbInBhdGgiLHtkOiJNMiAxNmE1IDUgMCAwIDEgNCA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMi4wMSIseTE6IjIwIix5MjoiMjAifV1dfSk7dmFyIG1FLHZZZT11KCgpPT57bUU9W1sicGF0aCIse2Q6Ik0xMCA1VjMifV0sWyJwYXRoIix7ZDoiTTE0IDVWMyJ9XSxbInBhdGgiLHtkOiJNMTUgMjF2LTNhMyAzIDAgMCAwLTYgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAzdjgifV0sWyJwYXRoIix7ZDoiTTE4IDVINiJ9XSxbInBhdGgiLHtkOiJNMjIgMTFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgOXYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5In1dLFsicGF0aCIse2Q6Ik02IDN2OCJ9XV19KTt2YXIgZ0UseVllPXUoKCk9PntnRT1bWyJwYXRoIix7ZDoiTTEyIDVjLjY3IDAgMS4zNS4wOSAyIC4yNiAxLjc4LTIgNS4wMy0yLjg0IDYuNDItMi4yNiAxLjQuNTgtLjQyIDctLjQyIDcgLjU3IDEuMDcgMSAyLjI0IDEgMy40NEMyMSAxNy45IDE2Ljk3IDIxIDEyIDIxcy05LTMtOS03LjU2YzAtMS4yNS41LTIuNCAxLTMuNDQgMCAwLTEuODktNi40Mi0uNS03IDEuMzktLjU4IDQuNzIuMjMgNi41IDIuMjNBOS4wNCA5LjA0IDAgMCAxIDEyIDVaIn1dLFsicGF0aCIse2Q6Ik04IDE0di41In1dLFsicGF0aCIse2Q6Ik0xNiAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgMTYuMjVoMS41TDEyIDE3bC0uNzUtLjc1WiJ9XV19KTt2YXIgYkUsd1llPXUoKCk9PntiRT1bWyJwYXRoIix7ZDoibTEyLjMwOSA2LjY1MiA0Ljc5NyAyLjQwMWExIDEgMCAwIDEgLjQ0NyAxLjM0MWwtLjUwMSAxLjAwMS42MDUuNjA1aDIuNzI1YTEgMSAwIDAgMSAuODk0IDEuNDQ3bC0uNzI0IDEuNDQ4In1dLFsicGF0aCIse2Q6Im0xNS4xNjYgMTUuMTY2LS43MTkgMS40MzlhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOSAyLjkgMCAwIDEgLjg3My0xLjAzNyJ9XSxbInBhdGgiLHtkOiJNMiAxOWgzLjc2YTIgMiAwIDAgMCAxLjgtMS4xbDEuNDQxLTIuOTAyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIgMjF2LTQifV0sWyJwYXRoIix7ZDoiTTcgOWguMDEifV1dfSk7dmFyIHhFLGtZZT11KCgpPT57eEU9W1sicGF0aCIse2Q6Ik0xNi43NSAxMmgzLjYzMmExIDEgMCAwIDEgLjg5NCAxLjQ0N2wtMi4wMzQgNC4wNjlhMSAxIDAgMCAxLTEuNzA4LjEzNGwtMi4xMjQtMi45NyJ9XSxbInBhdGgiLHtkOiJNMTcuMTA2IDkuMDUzYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0zLjEwNiA2LjIxMWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45MiAyLjkyIDAgMCAxIDMuOTItMS4zeiJ9XSxbInBhdGgiLHtkOiJNMiAxOWgzLjc2YTIgMiAwIDAgMCAxLjgtMS4xTDkgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjF2LTQifV0sWyJwYXRoIix7ZDoiTTcgOWguMDEifV1dfSk7dmFyIFNtLFNZZT11KCgpPT57U209W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxMS4yMDdhLjUuNSAwIDAgMSAuMTQ2LS4zNTNsMi0yYS41LjUgMCAwIDEgLjcwOCAwbDMuMjkyIDMuMjkyYS41LjUgMCAwIDAgLjcwOCAwbDQuMjkyLTQuMjkyYS41LjUgMCAwIDEgLjg1NC4zNTNWMTZhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBNbSxNWWU9dSgoKT0+e01tPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgdkUsQ1llPXUoKCk9Pnt2RT1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExaDgifV0sWyJwYXRoIix7ZDoiTTcgMTZoMyJ9XSxbInBhdGgiLHtkOiJNNyA2aDEyIn1dXX0pO3ZhciB5RSx6WWU9dSgoKT0+e3lFPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMiJ9XSxbInBhdGgiLHtkOiJNNyA2aDMifV1dfSk7dmFyIENtLF9ZZT11KCgpPT57Q209W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmg4In1dLFsicGF0aCIse2Q6Ik03IDExaDEyIn1dLFsicGF0aCIse2Q6Ik03IDZoMyJ9XV19KTt2YXIgd0UsVFllPXUoKCk9Pnt3RT1bWyJwYXRoIix7ZDoiTTExIDEzdjQifV0sWyJwYXRoIix7ZDoiTTE1IDV2NCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgem0sTFllPXUoKCk9Pnt6bT1bWyJwYXRoIix7ZDoiTTkgNXY0In1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjYiLHg6IjciLHk6IjkiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik05IDE1djIifV0sWyJwYXRoIix7ZDoiTTE3IDN2MiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI4Iix4OiIxNSIseToiNSIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE3IDEzdjMifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dXX0pO3ZhciBfbSxEWWU9dSgoKT0+e19tPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjUiLHdpZHRoOiI0IixoZWlnaHQ6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI5IixyeDoiMSJ9XV19KTt2YXIga0UsJFllPXUoKCk9PntrRT1bWyJwYXRoIix7ZDoiTTEzIDE3VjkifV0sWyJwYXRoIix7ZDoiTTE4IDE3di0zIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxN1Y1In1dXX0pO3ZhciBUbSxBWWU9dSgoKT0+e1RtPVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTdWNSJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dfSk7dmFyIFNFLEVZZT11KCgpPT57U0U9W1sicGF0aCIse2Q6Ik0xMSAxM0g3In1dLFsicGF0aCIse2Q6Ik0xOSA5aC00In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNSIsd2lkdGg6IjQiLGhlaWdodDoiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjkiLHJ4OiIxIn1dXX0pO3ZhciBMbSxJWWU9dSgoKT0+e0xtPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTE4IDE3VjkifV0sWyJwYXRoIix7ZDoiTTEzIDE3VjUifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dfSk7dmFyIE1FLFBZZT11KCgpPT57TUU9W1sicGF0aCIse2Q6Ik0xMCA2aDgifV0sWyJwYXRoIix7ZDoiTTEyIDE2aDYifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik04IDExaDcifV1dfSk7dmFyIERtLE5ZZT11KCgpPT57RG09W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJtMTkgOS01IDUtNC00LTMgMyJ9XV19KTt2YXIgQ0UsT1llPXUoKCk9PntDRT1bWyJwYXRoIix7ZDoibTEzLjExIDcuNjY0IDEuNzggMi42NzIifV0sWyJwYXRoIix7ZDoibTE0LjE2MiAxMi43ODgtMy4zMjQgMS40MjQifV0sWyJwYXRoIix7ZDoibTIwIDQtNi4wNiAxLjUxNSJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciB6RSxSWWU9dSgoKT0+e3pFPVtbInBhdGgiLHtkOiJNNSAyMVYzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMVY5In1dLFsicGF0aCIse2Q6Ik0xOSAyMXYtNiJ9XV19KTt2YXIgJG0sRlllPXUoKCk9PnskbT1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjkifV1dfSk7dmFyIF9FLEJZZT11KCgpPT57X0U9W1sicGF0aCIse2Q6Ik0xMiAxNnY1In1dLFsicGF0aCIse2Q6Ik0xNiAxNHY3In1dLFsicGF0aCIse2Q6Ik0yMCAxMHYxMSJ9XSxbInBhdGgiLHtkOiJtMjIgMy04LjY0NiA4LjY0NmEuNS41IDAgMCAxLS43MDggMEw5LjM1NCA4LjM1NGEuNS41IDAgMCAwLS43MDcgMEwyIDE1In1dLFsicGF0aCIse2Q6Ik00IDE4djMifV0sWyJwYXRoIix7ZDoiTTggMTR2NyJ9XV19KTt2YXIgQW0sSFllPXUoKCk9PntBbT1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjkifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjMifV1dfSk7dmFyIEVtLHFZZT11KCgpPT57RW09W1sicGF0aCIse2Q6Ik02IDVoMTIifV0sWyJwYXRoIix7ZDoiTTQgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE5aDgifV1dfSk7dmFyIEltLFZZZT11KCgpPT57SW09W1sicGF0aCIse2Q6Ik0yMSAxMmMuNTUyIDAgMS4wMDUtLjQ0OS45NS0uOTk4YTEwIDEwIDAgMCAwLTguOTUzLTguOTUxYy0uNTUtLjA1NS0uOTk4LjM5OC0uOTk4Ljk1djhhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTIxLjIxIDE1Ljg5QTEwIDEwIDAgMSAxIDggMi44MyJ9XV19KTt2YXIgUG0salllPXUoKCk9PntQbT1bWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiI1LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjExLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTQuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV1dfSk7dmFyIFRFLFVZZT11KCgpPT57VEU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmMuNS0yIDEuNS03IDQtNyAyIDAgMiAzIDQgMyAyLjUgMCA0LjUtNSA1LTcifV1dfSk7dmFyIExFLFdZZT11KCgpPT57TEU9W1sicGF0aCIse2Q6Ik0xOCA2IDcgMTdsLTUtNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTAtNy41IDcuNUwxMyAxNiJ9XV19KTt2YXIgREUsR1llPXUoKCk9PntERT1bWyJwYXRoIix7ZDoiTTIwIDRMOSAxNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlMMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAxNUw0IDEwIn1dXX0pO3ZhciAkRSxZWWU9dSgoKT0+eyRFPVtbInBhdGgiLHtkOiJNMjAgNiA5IDE3bC01LTUifV1dfSk7dmFyIEFFLEtZZT11KCgpPT57QUU9W1sicGF0aCIse2Q6Ik0xNyAyMWExIDEgMCAwIDAgMS0xdi01LjM1YzAtLjQ1Ny4zMTYtLjg0NC43MjctMS4wNDFhNCA0IDAgMCAwLTIuMTM0LTcuNTg5IDUgNSAwIDAgMC05LjE4NiAwIDQgNCAwIDAgMC0yLjEzNCA3LjU4OGMuNDExLjE5OC43MjcuNTg1LjcyNyAxLjA0MVYyMGExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNNiAxN2gxMiJ9XV19KTt2YXIgRUUsWlllPXUoKCk9PntFRT1bWyJwYXRoIix7ZDoiTTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oifV0sWyJwYXRoIix7ZDoiTTcgMTRjMy4yMi0yLjkxIDQuMjktOC43NSA1LTEyIDEuNjYgMi4zOCA0Ljk0IDkgNSAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtNC4yOSAwLTcuMTQtMi4zMy0xMC03IDUuNzEgMCAxMCA0LjY3IDEwIDdaIn1dXX0pO3ZhciBJRSxRWWU9dSgoKT0+e0lFPVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTE1IDE4YzEuNS0uNjE1IDMtMi40NjEgMy00LjkyM0MxOCA4Ljc2OSAxNC41IDQuNDYyIDEyIDIgOS41IDQuNDYyIDYgOC43NyA2IDEzLjA3NyA2IDE1LjUzOSA3LjUgMTcuMzg1IDkgMTgifV0sWyJwYXRoIix7ZDoibTE2IDctMi41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dfSk7dmFyIFBFLFhZZT11KCgpPT57UEU9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY2LjgxOCJ9XV19KTt2YXIgTkUsSlllPXUoKCk9PntORT1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im0xNC41IDEwIDEuNSA4In1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Im04IDE4IDEuNS04In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiNCJ9XV19KTt2YXIgT0UsZUtlPXUoKCk9PntPRT1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNi41IDE4YzEtMiAyLjUtNSAyLjUtOWE3IDcgMCAwIDAtNy03SDYuNjM1YTEgMSAwIDAgMC0uNzY4IDEuNjRMNyA1bC0yLjMyIDUuODAyYTIgMiAwIDAgMCAuOTUgMi41MjZsMi44NyAxLjQ1NiJ9XSxbInBhdGgiLHtkOiJtMTUgNSAxLjQyNS0xLjQyNSJ9XSxbInBhdGgiLHtkOiJtMTcgOCAxLjUzLTEuNTMifV0sWyJwYXRoIix7ZDoiTTkuNzEzIDEyLjE4NSA3IDE4In1dXX0pO3ZhciBSRSx0S2U9dSgoKT0+e1JFPVtbInBhdGgiLHtkOiJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMiJ9XSxbInBhdGgiLHtkOiJtMjAgOS0zIDkifV0sWyJwYXRoIix7ZDoibTUuNTk0IDguMjA5IDIuNjE1IDMuNDAzYTEgMSAwIDAgMCAxLjc1LS4zMjlsMS41NjctNS4zNCJ9XSxbInBhdGgiLHtkOiJNNyAxOCA0IDkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiNyIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiNyIscjoiMiJ9XV19KTt2YXIgRkUscktlPXUoKCk9PntGRT1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJtMTcgMTgtMS05In1dLFsicGF0aCIse2Q6Ik02IDJ2NWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik02IDRoMTIifV0sWyJwYXRoIix7ZDoibTcgMTggMS05In1dXX0pO3ZhciBCRSxhS2U9dSgoKT0+e0JFPVtbInBhdGgiLHtkOiJtNiA5IDYgNiA2LTYifV1dfSk7dmFyIEhFLGlLZT11KCgpPT57SEU9W1sicGF0aCIse2Q6Im0xNyAxOC02LTYgNi02In1dLFsicGF0aCIse2Q6Ik03IDZ2MTIifV1dfSk7dmFyIHFFLHNLZT11KCgpPT57cUU9W1sicGF0aCIse2Q6Im03IDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoiTTE3IDZ2MTIifV1dfSk7dmFyIFZFLG5LZT11KCgpPT57VkU9W1sicGF0aCIse2Q6Im0xNSAxOC02LTYgNi02In1dXX0pO3ZhciBqRSxvS2U9dSgoKT0+e2pFPVtbInBhdGgiLHtkOiJtOSAxOCA2LTYtNi02In1dXX0pO3ZhciBVRSxsS2U9dSgoKT0+e1VFPVtbInBhdGgiLHtkOiJtMTggMTUtNi02LTYgNiJ9XV19KTt2YXIgV0UsY0tlPXUoKCk9PntXRT1bWyJwYXRoIix7ZDoibTcgMjAgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJtNyA0IDUgNSA1LTUifV1dfSk7dmFyIEdFLGRLZT11KCgpPT57R0U9W1sicGF0aCIse2Q6Im03IDYgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJtNyAxMyA1IDUgNS01In1dXX0pO3ZhciBZRSx1S2U9dSgoKT0+e1lFPVtbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV0sWyJwYXRoIix7ZDoibTE3IDcgNSA1LTUgNSJ9XSxbInBhdGgiLHtkOiJtNyA3LTUgNSA1IDUifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dXX0pO3ZhciBLRSxwS2U9dSgoKT0+e0tFPVtbInBhdGgiLHtkOiJtOSA3LTUgNSA1IDUifV0sWyJwYXRoIix7ZDoibTE1IDcgNSA1LTUgNSJ9XV19KTt2YXIgWkUsZktlPXUoKCk9PntaRT1bWyJwYXRoIix7ZDoibTIwIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTQgMTcgNS01LTUtNSJ9XV19KTt2YXIgUUUsaEtlPXUoKCk9PntRRT1bWyJwYXRoIix7ZDoibTExIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTE4IDE3LTUtNSA1LTUifV1dfSk7dmFyIFhFLG1LZT11KCgpPT57WEU9W1sicGF0aCIse2Q6Im02IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoibTEzIDE3IDUtNS01LTUifV1dfSk7dmFyIEpFLGdLZT11KCgpPT57SkU9W1sicGF0aCIse2Q6Im03IDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoibTcgOSA1LTUgNSA1In1dXX0pO3ZhciBlSSxiS2U9dSgoKT0+e2VJPVtbInBhdGgiLHtkOiJtMTcgMTEtNS01LTUgNSJ9XSxbInBhdGgiLHtkOiJtMTcgMTgtNS01LTUgNSJ9XV19KTt2YXIgdEkseEtlPXUoKCk9Pnt0ST1bWyJwYXRoIix7ZDoiTTEwIDloNCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y1In1dLFsicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoibTE4IDkgMy41MiAyLjE0N2ExIDEgMCAwIDEgLjQ4Ljg1NFYxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNi45OTlhMSAxIDAgMCAxIC40OC0uODU0TDYgOSJ9XSxbInBhdGgiLHtkOiJNNiAyMVY3YTEgMSAwIDAgMSAuMzc2LS43ODJsNS0zLjk5OWExIDEgMCAwIDEgMS4yNDkuMDAxbDUgNEExIDEgMCAwIDEgMTggN3YxNCJ9XV19KTt2YXIgckksdktlPXUoKCk9PntyST1bWyJwYXRoIix7ZDoiTTEyIDEySDNhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTMifV0sWyJwYXRoIix7ZDoiTTE4IDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtLjUuODY2In1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXX0pO3ZhciBhSSx5S2U9dSgoKT0+e2FJPVtbInBhdGgiLHtkOiJNMTcgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxNCJ9XSxbInBhdGgiLHtkOiJNMTggOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoiTTIxIDE2YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjIgOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoiTTcgMTJ2NCJ9XV19KTt2YXIgTm0sd0tlPXUoKCk9PntObT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxNiIseTI6IjE2In1dXX0pO3ZhciBPbSxrS2U9dSgoKT0+e09tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04IDEyIDQgNCA0LTQifV1dfSk7dmFyIFJtLFNLZT11KCgpPT57Um09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dfSk7dmFyIEZtLE1LZT11KCgpPT57Rm09W1sicGF0aCIse2Q6Ik0yIDEyYTEwIDEwIDAgMSAxIDEwIDEwIn1dLFsicGF0aCIse2Q6Im0yIDIyIDEwLTEwIn1dLFsicGF0aCIse2Q6Ik04IDIySDJ2LTYifV1dfSk7dmFyIEJtLENLZT11KCgpPT57Qm09W1sicGF0aCIse2Q6Ik0xMiAyMmExMCAxMCAwIDEgMSAxMC0xMCJ9XSxbInBhdGgiLHtkOiJNMjIgMjIgMTIgMTIifV0sWyJwYXRoIix7ZDoiTTIyIDE2djZoLTYifV1dfSk7dmFyIEhtLHpLZT11KCgpPT57SG09W1sicGF0aCIse2Q6Ik0yIDhWMmg2In1dLFsicGF0aCIse2Q6Im0yIDIgMTAgMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJBMTAgMTAgMCAxIDEgMiAxMiJ9XV19KTt2YXIgcW0sX0tlPXUoKCk9PntxbT1bWyJwYXRoIix7ZDoiTTIyIDEyQTEwIDEwIDAgMSAxIDEyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDIgMTIgMTIifV0sWyJwYXRoIix7ZDoiTTE2IDJoNnY2In1dXX0pO3ZhciBWbSxUS2U9dSgoKT0+e1ZtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTIgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBqbSxMS2U9dSgoKT0+e2ptPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XV19KTt2YXIgVW0sREtlPXUoKCk9PntVbT1bWyJwYXRoIix7ZDoiTTIxLjgwMSAxMEExMCAxMCAwIDEgMSAxNyAzLjMzNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSAzIDNMMjIgNCJ9XV19KTt2YXIgV20sJEtlPXUoKCk9PntXbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgR20sQUtlPXUoKCk9PntHbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE2IDEwLTQgNC00LTQifV1dfSk7dmFyIFltLEVLZT11KCgpPT57WW09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNCAxNi00LTQgNC00In1dXX0pO3ZhciBLbSxJS2U9dSgoKT0+e0ttPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXX0pO3ZhciBabSxQS2U9dSgoKT0+e1ptPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtOCAxNCA0LTQgNCA0In1dXX0pO3ZhciBpSSxOS2U9dSgoKT0+e2lJPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyMWExMCAxMCAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjc5IDE3LjYwOWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Ik02LjM5MSAyMC4yNzlhMTAgMTAgMCAwIDEtMi42OS0yLjcifV1dfSk7dmFyIFFtLE9LZT11KCgpPT57UW09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTYiLHkyOiIxNiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiI4In1dXX0pO3ZhciBzSSxSS2U9dSgoKT0+e3NJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgOGgtNmEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAxIDAgNEg4In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dXX0pO3ZhciBuSSxGS2U9dSgoKT0+e25JPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4YTkuOTMgOS45MyAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTcuNiAzLjcxYTkuOTUgOS45NSAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMjEuODIgMTAuMWE5LjkzIDkuOTMgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTIwLjI5IDE3LjZhOS45NSA5Ljk1IDAgMCAxLTIuNyAyLjY5In1dLFsicGF0aCIse2Q6Ik0xMy45IDIxLjgyYTkuOTQgOS45NCAwIDAgMS0zLjggMCJ9XSxbInBhdGgiLHtkOiJNNi40IDIwLjI5YTkuOTUgOS45NSAwIDAgMS0yLjY5LTIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xOCAxMy45YTkuOTMgOS45MyAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMy43MSA2LjRhOS45NSA5Ljk1IDAgMCAxIDIuNy0yLjY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIG9JLEJLZT11KCgpPT57b0k9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIGxJLEhLZT11KCgpPT57bEk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNyAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dfSk7dmFyIGNJLHFLZT11KCgpPT57Y0k9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE0aDEwIn1dXX0pO3ZhciBkSSxWS2U9dSgoKT0+e2RJPVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1In1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dLFsicGF0aCIse2Q6Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyJ9XSxbInBhdGgiLHtkOiJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCJ9XSxbInBhdGgiLHtkOiJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3In1dLFsicGF0aCIse2Q6Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgifV1dfSk7dmFyIHVJLGpLZT11KCgpPT57dUk9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXX0pO3ZhciBYbSxVS2U9dSgoKT0+e1htPVtbInBhdGgiLHtkOiJNMTUuNiAyLjdhMTAgMTAgMCAxIDAgNS43IDUuNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMy40IDEwLjYgMTkgNSJ9XV19KTt2YXIgSm0sV0tlPXUoKCk9PntKbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgcEksR0tlPXUoKCk9PntwST1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUifV0sWyJwYXRoIix7ZDoiTTE5LjA4IDE5LjA4QTEwIDEwIDAgMSAxIDQuOTIgNC45MiJ9XV19KTt2YXIgZTUsWUtlPXUoKCk9PntlNT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV19KTt2YXIgdDUsS0tlPXUoKCk9Pnt0NT1bWyJwYXRoIix7ZDoiTTEyLjY1NiA3SDEzYTMgMyAwIDAgMSAyLjk4NCAzLjMwNyJ9XSxbInBhdGgiLHtkOiJNMTMgMTNIOSJ9XSxbInBhdGgiLHtkOiJNMTkuMDcxIDE5LjA3MUExIDEgMCAwIDEgNC45MyA0LjkzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguMzU3IDIuNjg3YTEwIDEwIDAgMCAxIDEyLjk1NiAxMi45NTYifV0sWyJwYXRoIix7ZDoiTTkgMTdWOSJ9XV19KTt2YXIgcjUsWktlPXUoKCk9PntyNT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dfSk7dmFyIGE1LFFLZT11KCgpPT57YTU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiIxMCIseDI6IjEwIix5MToiMTUiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNCIseDI6IjE0Iix5MToiMTUiLHkyOiI5In1dXX0pO3ZhciBmSSxYS2U9dSgoKT0+e2ZJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgaTUsSktlPXUoKCk9PntpNT1bWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIHM1LGVaZT11KCgpPT57czU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XV19KTt2YXIgaEksdFplPXUoKCk9PntoST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEwIDE2VjkuNWExIDEgMCAwIDEgNSAwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDQifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV19KTt2YXIgbjUsclplPXUoKCk9PntuNT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNNy45OTggOS4wMDNhNSA1IDAgMSAwIDgtLjAwNSJ9XV19KTt2YXIgSDQsYVplPXUoKCk9PntIND1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIG81LGlaZT11KCgpPT57bzU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV1dfSk7dmFyIG1JLHNaZT11KCgpPT57bUk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dfSk7dmFyIGdJLG5aZT11KCgpPT57Z0k9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjYifV1dfSk7dmFyIGJJLG9aZT11KCgpPT57Ykk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMS4wNTEgNy42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjdsLTEuMTU2LTEuMTUyYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV1dfSk7dmFyIGw1LGxaZT11KCgpPT57bDU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXX0pO3ZhciBjNSxjWmU9dSgoKT0+e2M1PVtbInBhdGgiLHtkOiJNMTcuOTI1IDIwLjA1NmE2IDYgMCAwIDAtMTEuODUxLjAwMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBkNSxkWmU9dSgoKT0+e2Q1PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MiJ9XV19KTt2YXIgdTUsdVplPXUoKCk9Pnt1NT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Im05IDkgNiA2In1dXX0pO3ZhciB4SSxwWmU9dSgoKT0+e3hJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgdkksZlplPXUoKCk9Pnt2ST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTEgOWg0YTIgMiAwIDAgMCAyLTJWMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtNGEyIDIgMCAwIDEgMi0yaDQifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiMiJ9XV19KTt2YXIgeUksaFplPXUoKCk9Pnt5ST1bWyJwYXRoIix7ZDoibTEyLjI5NiAzLjQ2NCAzLjAyIDMuOTU2In1dLFsicGF0aCIse2Q6Ik0yMC4yIDYgMyAxMWwtLjktMi40Yy0uMy0xLjEuMy0yLjIgMS4zLTIuNWwxMy41LTRjMS4xLS4zIDIuMi4zIDIuNSAxLjN6In1dLFsicGF0aCIse2Q6Ik0zIDExaDE4djhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Im02LjE4IDUuMjc2IDMuMSAzLjg5OSJ9XV19KTt2YXIgd0ksbVplPXUoKCk9Pnt3ST1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtOSAxNCAyIDIgNC00In1dXX0pO3ZhciBrSSxnWmU9dSgoKT0+e2tJPVtbInBhdGgiLHtkOiJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6In1dLFsicGF0aCIse2Q6Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0In1dLFsicGF0aCIse2Q6Im0xNCAxMC01LjUgNS41In1dLFsicGF0aCIse2Q6Ik0xNCAxNy44NVYxMEg2LjE1In1dXX0pO3ZhciBTSSxiWmU9dSgoKT0+e1NJPVtbInBhdGgiLHtkOiJNMTYgMTR2Mi4ybDEuNiAxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYuODMyIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBNSSx4WmU9dSgoKT0+e01JPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxNEgxMSJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtNCA0IDQgNCJ9XV19KTt2YXIgQ0ksdlplPXUoKCk9PntDST1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNCJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXX0pO3ZhciB6SSx5WmU9dSgoKT0+e3pJPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDE0aDYifV1dfSk7dmFyIF9JLHdaZT11KCgpPT57X0k9W1sicGF0aCIse2Q6Ik0xMSAxNGgxMCJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MS4zNDQifV0sWyJwYXRoIix7ZDoibTE3IDE4IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMS43OTMtMS4xMTMifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIHA1LGtaZT11KCgpPT57cDU9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtLjUifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMS43MyAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aDEifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxMi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV19KTt2YXIgZjUsU1plPXUoKCk9PntmNT1bWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxLjM0IDE1LjY2NGExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik04IDIySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgVEksTVplPXUoKCk9PntUST1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxNGg2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3YtNiJ9XV19KTt2YXIgTEksQ1plPXUoKCk9PntMST1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMnYtMWg2djEifV0sWyJwYXRoIix7ZDoiTTExIDE3aDIifV0sWyJwYXRoIix7ZDoiTTEyIDExdjYifV1dfSk7dmFyIERJLHpaZT11KCgpPT57REk9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTE1IDExLTYgNiJ9XSxbInBhdGgiLHtkOiJtOSAxMSA2IDYifV1dfSk7dmFyICRJLF9aZT11KCgpPT57JEk9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV1dfSk7dmFyIEFJLFRaZT11KCgpPT57QUk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsMi00In1dXX0pO3ZhciBFSSxMWmU9dSgoKT0+e0VJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bC00LTIifV1dfSk7dmFyIElJLERaZT11KCgpPT57SUk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsLTItNCJ9XV19KTt2YXIgUEksJFplPXUoKCk9PntQST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NiJ9XV19KTt2YXIgTkksQVplPXUoKCk9PntOST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0LTIifV1dfSk7dmFyIE9JLEVaZT11KCgpPT57T0k9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZoNCJ9XV19KTt2YXIgUkksSVplPXUoKCk9PntSST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV1dfSk7dmFyIEZJLFBaZT11KCgpPT57Rkk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsMiA0In1dXX0pO3ZhciBCSSxOWmU9dSgoKT0+e0JJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnYxMCJ9XV19KTt2YXIgSEksT1plPXUoKCk9PntIST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwtMiA0In1dXX0pO3ZhciBxSSxSWmU9dSgoKT0+e3FJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bC00IDIifV1dfSk7dmFyIFZJLEZaZT11KCgpPT57Vkk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZIOCJ9XV19KTt2YXIgakksQlplPXUoKCk9PntqST1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIwIDEydjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEuMjUgOC4yQTEwIDEwIDAgMSAwIDE2IDIxLjE2In1dXX0pO3ZhciBVSSxIWmU9dSgoKT0+e1VJPVtbInBhdGgiLHtkOiJNMTIgNnY2bDIgMSJ9XSxbInBhdGgiLHtkOiJNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NyJ9XSxbInBhdGgiLHtkOiJtMTQgMTggNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTR2OCJ9XV19KTt2YXIgV0kscVplPXUoKCk9PntXST1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwxLjU2Ljc4In1dLFsicGF0aCIse2Q6Ik0xMy4yMjcgMjEuOTI1YTEwIDEwIDAgMSAxIDguNzY3LTkuNTg4In1dLFsicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtOCJ9XV19KTt2YXIgR0ksVlplPXUoKCk9PntHST1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIyIDEyYTEwIDEwIDAgMSAwLTExIDkuOTUifV0sWyJwYXRoIix7ZDoibTIyIDE2LTUuNSA1LjVMMTQgMTkifV1dfSk7dmFyIFlJLGpaZT11KCgpPT57WUk9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV19KTt2YXIgS0ksVVplPXUoKCk9PntLST1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwzLjY0NCAxLjgyMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMjEuOTIgMTMuMjY3YTEwIDEwIDAgMSAwLTguNjUzIDguNjUzIn1dXX0pO3ZhciBaSSxXWmU9dSgoKT0+e1pJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XV19KTt2YXIgUUksR1plPXUoKCk9PntRST1bWyJwYXRoIix7ZDoiTTEwIDkuMTdhMyAzIDAgMSAwIDAgNS42NiJ9XSxbInBhdGgiLHtkOiJNMTcgOS4xN2EzIDMgMCAxIDAgMCA1LjY2In1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dfSk7dmFyIFhJLFlaZT11KCgpPT57WEk9W1sicGF0aCIse2Q6Ik0xMiAxMnY0In1dLFsicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTguMTI4IDE2Ljk0OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTEgMSAwIDAgMSAwIDloLTEuNjQyIn1dXX0pO3ZhciBKSSxLWmU9dSgoKT0+e0pJPVtbInBhdGgiLHtkOiJNMjEgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNSA4aC0xLjc5QTcgNyAwIDEgMCAzIDEzLjYwNyJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0aDQifV0sWyJwYXRoIix7ZDoiTTggMTlhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjUgNC44MiA0LjgyIDAgMCAwLTMuNDEgMS40MUw3IDE1In1dXX0pO3ZhciBlUCxaWmU9dSgoKT0+e2VQPVtbInBhdGgiLHtkOiJtMTcgMTUtNS41IDUuNUw5IDE4In1dLFsicGF0aCIse2Q6Ik01LjUxNiAxNi4wN0E3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMy41MDEgNy4zMjcifV1dfSk7dmFyIHRQLFFaZT11KCgpPT57dFA9W1sicGF0aCIse2Q6Im0xMC44NTIgMTkuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Ik0xMy4xNDggMTkuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAyMC42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDE1Ljg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDE4LjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjIgMTUuMWE3IDcgMCAxIDEgOS45My05Ljg1OEE3IDcgMCAwIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMiJ9XSxbInBhdGgiLHtkOiJtOS4yMjggMTUuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS4yMjggMTguMTQ4LS45MjMuMzgzIn1dXX0pO3ZhciBoNSxYWmU9dSgoKT0+e2g1PVtbInBhdGgiLHtkOiJNMTIgMTN2OGwtNC00In1dLFsicGF0aCIse2Q6Im0xMiAyMSA0LTQifV0sWyJwYXRoIix7ZDoiTTQuMzkzIDE1LjI2OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi40MzYgOC4yODQifV1dfSk7dmFyIHJQLEpaZT11KCgpPT57clA9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik04IDE5djEifV0sWyJwYXRoIix7ZDoiTTggMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTl2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2MSJ9XV19KTt2YXIgYVAsZVFlPXUoKCk9PnthUD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDcifV0sWyJwYXRoIix7ZDoiTTE3IDIxSDkifV1dfSk7dmFyIGlQLHRRZT11KCgpPT57aVA9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHYyIn1dLFsicGF0aCIse2Q6Ik04IDE0djIifV0sWyJwYXRoIix7ZDoiTTE2IDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE2djIifV0sWyJwYXRoIix7ZDoiTTEyIDIyaC4wMSJ9XV19KTt2YXIgc1AsclFlPXUoKCk9PntzUD1bWyJwYXRoIix7ZDoiTTYgMTYuMzI2QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAuNSA4Ljk3MyJ9XSxbInBhdGgiLHtkOiJtMTMgMTItMyA1aDRsLTMgNSJ9XV19KTt2YXIgblAsYVFlPXUoKCk9PntuUD1bWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNiJ9XSxbInBhdGgiLHtkOiJNMyAyMGE1IDUgMCAxIDEgOC45LTRIMTNhMyAzIDAgMCAxIDIgNS4yNCJ9XSxbInBhdGgiLHtkOiJNNyAxOXYyIn1dXX0pO3ZhciBvUCxpUWU9dSgoKT0+e29QPVtbInBhdGgiLHtkOiJNMTMgMTZhMyAzIDAgMCAxIDAgNkg3YTUgNSAwIDEgMSA0LjktNnoifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNiJ9XV19KTt2YXIgbFAsc1FlPXUoKCk9PntsUD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTkuMiAyMiAzLTcifV0sWyJwYXRoIix7ZDoibTkgMTMtMyA3In1dLFsicGF0aCIse2Q6Im0xNyAxMy0zIDcifV1dfSk7dmFyIGNQLG5RZT11KCgpPT57Y1A9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHY2In1dLFsicGF0aCIse2Q6Ik04IDE0djYifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dfSk7dmFyIGRQLG9RZT11KCgpPT57ZFA9W1sicGF0aCIse2Q6Ik0xMC45NCA1LjI3NEE3IDcgMCAwIDEgMTUuNzEgMTBoMS43OWE0LjUgNC41IDAgMCAxIDQuMjIyIDYuMDU3In1dLFsicGF0aCIse2Q6Ik0xOC43OTYgMTguODFBNC41IDQuNSAwIDAgMSAxNy41IDE5SDlBNyA3IDAgMCAxIDUuNzkgNS43OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciB1UCxsUWU9dSgoKT0+e3VQPVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTloLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWguMDEifV1dfSk7dmFyIHBQLGNRZT11KCgpPT57cFA9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0In1dLFsicGF0aCIse2Q6Ik0xMSAyMHYyIn1dLFsicGF0aCIse2Q6Ik03IDE5djIifV1dfSk7dmFyIGZQLGRRZT11KCgpPT57ZlA9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0xMyAyMkg3YTUgNSAwIDEgMSA0LjktNkgxM2EzIDMgMCAwIDEgMCA2WiJ9XV19KTt2YXIgaFAsdVFlPXUoKCk9PntoUD1bWyJwYXRoIix7ZDoibTE3IDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIwLjk5NiAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy40OTUgOGgtMS43OWE3IDcgMCAxIDAtMTIuNzA5IDUuNjA3In1dLFsicGF0aCIse2Q6Ik03IDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtNyAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV1dfSk7dmFyIG01LHBRZT11KCgpPT57bTU9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Im04IDE3IDQtNCA0IDQifV1dfSk7dmFyIG1QLGZRZT11KCgpPT57bVA9W1sicGF0aCIse2Q6Ik0xNy41IDEyYTEgMSAwIDEgMSAwIDlIOS4wMDZhNyA3IDAgMSAxIDYuNzAyLTl6In1dLFsicGF0aCIse2Q6Ik0yMS44MzIgOUEzIDMgMCAwIDAgMTkgN2gtMi4yMDdhNS41IDUuNSAwIDAgMC0xMC43Mi42MSJ9XV19KTt2YXIgZ1AsaFFlPXUoKCk9PntnUD1bWyJwYXRoIix7ZDoiTTE3LjUgMTlIOWE3IDcgMCAxIDEgNi43MS05aDEuNzlhNC41IDQuNSAwIDEgMSAwIDlaIn1dXX0pO3ZhciBiUCxtUWU9dSgoKT0+e2JQPVtbInBhdGgiLHtkOiJNMTYuMTcgNy44MyAyIDIyIn1dLFsicGF0aCIse2Q6Ik00LjAyIDEyYTIuODI3IDIuODI3IDAgMSAxIDMuODEtNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiA0LjAyYTIuODI3IDIuODI3IDAgMSAxIDQuMTcgMy44MUEyLjgyNyAyLjgyNyAwIDEgMSAxOS45OCAxMmEyLjgyNyAyLjgyNyAwIDEgMS0zLjgxIDQuMTdBMi44MjcgMi44MjcgMCAxIDEgMTIgMTkuOThhMi44MjcgMi44MjcgMCAxIDEtNC4xNy0zLjgxQTEgMSAwIDEgMSA0IDEyIn1dLFsicGF0aCIse2Q6Im03LjgzIDcuODMgOC4zNCA4LjM0In1dXX0pO3ZhciB4UCxnUWU9dSgoKT0+e3hQPVtbInBhdGgiLHtkOiJNMTcuMjggOS4wNWE1LjUgNS41IDAgMSAwLTEwLjU2IDBBNS41IDUuNSAwIDEgMCAxMiAxNy42NmE1LjUgNS41IDAgMSAwIDUuMjgtOC42WiJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNjZMMTIgMjIifV1dfSk7dmFyIGc1LGJRZT11KCgpPT57ZzU9W1sicGF0aCIse2Q6Im0xOCAxNiA0LTQtNC00In1dLFsicGF0aCIse2Q6Im02IDgtNCA0IDQgNCJ9XSxbInBhdGgiLHtkOiJtMTQuNSA0LTUgMTYifV1dfSk7dmFyIHZQLHhRZT11KCgpPT57dlA9W1sicGF0aCIse2Q6Im0xNiAxOCA2LTYtNi02In1dLFsicGF0aCIse2Q6Im04IDYtNiA2IDYgNiJ9XV19KTt2YXIgeVAsdlFlPXUoKCk9Pnt5UD1bWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNiA4YTEgMSAwIDAgMSAxIDF2OGE0IDQgMCAwIDEtNCA0SDdhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTFoMTRhNCA0IDAgMSAxIDAgOGgtMSJ9XSxbInBhdGgiLHtkOiJNNiAydjIifV1dfSk7dmFyIHdQLHlRZT11KCgpPT57d1A9W1sicGF0aCIse2Q6Ik0xMy43NDQgMTcuNzM2YTYgNiAwIDEgMS03LjQ4LTcuNDgifV0sWyJwYXRoIix7ZDoiTTE1IDZoMXY0In1dLFsicGF0aCIse2Q6Im02LjEzNCAxNC43NjguODY2LS41IDIgMy40NjQifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI4IixyOiI2In1dXX0pO3ZhciBrUCx3UWU9dSgoKT0+e2tQPVtbInBhdGgiLHtkOiJNMTEgMTAuMjcgNyAzLjM0In1dLFsicGF0aCIse2Q6Im0xMSAxMy43My00IDYuOTMifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDEyaDgifV0sWyJwYXRoIix7ZDoibTE3IDIwLjY2LTEtMS43MyJ9XSxbInBhdGgiLHtkOiJtMTcgMy4zNC0xIDEuNzMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgMTctMS43My0xIn1dLFsicGF0aCIse2Q6Im0yMC42NiA3LTEuNzMgMSJ9XSxbInBhdGgiLHtkOiJtMy4zNCAxNyAxLjczLTEifV0sWyJwYXRoIix7ZDoibTMuMzQgNyAxLjczIDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dXX0pO3ZhciBxNCxrUWU9dSgoKT0+e3E0PVtbInBhdGgiLHtkOiJNMTAuNSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NS41In1dLFsicGF0aCIse2Q6Im0xNC4zIDE5LjYgMS0uNCJ9XSxbInBhdGgiLHtkOiJNMTUgM3Y3LjUifV0sWyJwYXRoIix7ZDoibTE1LjIgMTYuOS0uOS0uMyJ9XSxbInBhdGgiLHtkOiJtMTYuNiAyMS43LjMtLjkifV0sWyJwYXRoIix7ZDoibTE2LjggMTUuMy0uNC0xIn1dLFsicGF0aCIse2Q6Im0xOS4xIDE1LjIuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTkuNiAyMS43LS40LTEifV0sWyJwYXRoIix7ZDoibTIwLjcgMTYuOCAxLS40In1dLFsicGF0aCIse2Q6Im0yMS43IDE5LjQtLjktLjMifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBiNSxTUWU9dSgoKT0+e2I1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dfSk7dmFyIHg1LE1RZT11KCgpPT57eDU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV1dfSk7dmFyIFNQLENRZT11KCgpPT57U1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcuNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNi41IDN2MTgifV1dfSk7dmFyIE1QLHpRZT11KCgpPT57TVA9W1sicGF0aCIse2Q6Ik0xNCAzYTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im03IDE1IDMgMyJ9XSxbInBhdGgiLHtkOiJtNyAyMSAzLTNINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIENQLF9RZT11KCgpPT57Q1A9W1sicGF0aCIse2Q6Ik0xNSA2djEyYTMgMyAwIDEgMCAzLTNINmEzIDMgMCAxIDAgMyAzVjZhMyAzIDAgMSAwLTMgM2gxMmEzIDMgMCAxIDAtMy0zIn1dXX0pO3ZhciB6UCxUUWU9dSgoKT0+e3pQPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTYuMjQgNy43Ni0xLjgwNCA1LjQxMWEyIDIgMCAwIDEtMS4yNjUgMS4yNjVMNy43NiAxNi4yNGwxLjgwNC01LjQxMWEyIDIgMCAwIDEgMS4yNjUtMS4yNjV6In1dXX0pO3ZhciBfUCxMUWU9dSgoKT0+e19QPVtbInBhdGgiLHtkOiJNMTUuNTM2IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NiAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik0yLjI5NyAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRMNi4wODggOC45MTZhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik04LjkxNiAxNy45MTJhMSAxIDAgMCAwIDAgMS40MTVsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTVsLTIuMzc3LTIuMzc2YTEgMSAwIDAgMC0xLjQxNCAweiJ9XSxbInBhdGgiLHtkOiJNOC45MTYgNC42NzRhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweiJ9XV19KTt2YXIgVFAsRFFlPXUoKCk9PntUUD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjgiLHg6IjUiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNiJ9XV19KTt2YXIgTFAsJFFlPXUoKCk9PntMUD1bWyJwYXRoIix7ZDoiTTMgMjBhMSAxIDAgMCAxLTEtMXYtMWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMTZhOCA4IDAgMSAwLTE2IDAifV0sWyJwYXRoIix7ZDoiTTEyIDR2NCJ9XSxbInBhdGgiLHtkOiJNMTAgNGg0In1dXX0pO3ZhciBEUCxBUWU9dSgoKT0+e0RQPVtbInBhdGgiLHtkOiJtMjAuOSAxOC41NS04LTE1Ljk4YTEgMSAwIDAgMC0xLjggMGwtOCAxNS45OCJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxOSIscng6IjkiLHJ5OiIzIn1dXX0pO3ZhciB2NSxFUWU9dSgoKT0+e3Y1PVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNy45MTUgMjJhNiA2IDAgMCAwLTEyIDAifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgJFAsSVFlPXUoKCk9PnskUD1bWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHY3In1dLFsicGF0aCIse2Q6Ik03IDE0djcifV0sWyJwYXRoIix7ZDoiTTE3IDN2MyJ9XSxbInBhdGgiLHtkOiJNNyAzdjMifV0sWyJwYXRoIix7ZDoiTTEwIDE0IDIuMyA2LjMifV0sWyJwYXRoIix7ZDoibTE0IDYgNy43IDcuNyJ9XSxbInBhdGgiLHtkOiJtOCA2IDggOCJ9XV19KTt2YXIgQVAsUFFlPXUoKCk9PntBUD1bWyJwYXRoIix7ZDoiTTIyIDcuN2MwLS42LS40LTEuMi0uOC0xLjVsLTYuMy0zLjlhMS43MiAxLjcyIDAgMCAwLTEuNyAwbC0xMC4zIDZjLS41LjItLjkuOC0uOSAxLjR2Ni42YzAgLjUuNCAxLjIuOCAxLjVsNi4zIDMuOWExLjcyIDEuNzIgMCAwIDAgMS43IDBsMTAuMy02Yy41LS4zLjktMSAuOS0xLjVaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMS45VjE0TDIuMSA5LjEifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjktNi45In1dLFsicGF0aCIse2Q6Ik0xNCAxOS44di04LjEifV0sWyJwYXRoIix7ZDoiTTE4IDE3LjVWOS40In1dXX0pO3ZhciBFUCxOUWU9dSgoKT0+e0VQPVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjMifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgSVAsT1FlPXUoKCk9PntJUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTYgNiAwIDAgMCAwLTEydjEyeiJ9XV19KTt2YXIgUFAsUlFlPXUoKCk9PntQUD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAxIDAgMTAgMTAgNCA0IDAgMCAxLTUtNSA0IDQgMCAwIDEtNS01In1dLFsicGF0aCIse2Q6Ik04LjUgOC41di4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTUuNXYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEydi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMTd2LjAxIn1dLFsicGF0aCIse2Q6Ik03IDE0di4wMSJ9XV19KTt2YXIgTlAsRlFlPXUoKCk9PntOUD1bWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTIwIDEydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTgifV0sWyJwYXRoIix7ZDoibTQgOCAxNi00In1dLFsicGF0aCIse2Q6Im04Ljg2IDYuNzgtLjQ1LTEuODFhMiAyIDAgMCAxIDEuNDUtMi40M2wxLjk0LS40OGEyIDIgMCAwIDEgMi40MyAxLjQ2bC40NSAxLjgifV1dfSk7dmFyIE9QLEJRZT11KCgpPT57T1A9W1sicGF0aCIse2Q6Im0xMiAxNSAyIDIgNC00In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIFJQLEhRZT11KCgpPT57UlA9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTUiLHkyOiIxNSJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXX0pO3ZhciBGUCxxUWU9dSgoKT0+e0ZQPVtbImxpbmUiLHt4MToiMTUiLHgyOiIxNSIseTE6IjEyIix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxNSIseTI6IjE1In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIEJQLFZRZT11KCgpPT57QlA9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTgiLHkyOiIxMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXX0pO3ZhciBIUCxqUWU9dSgoKT0+e0hQPVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjEyIix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIHFQLFVRZT11KCgpPT57cVA9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIFZQLFdRZT11KCgpPT57VlA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik05LjE3IDE0LjgzYTQgNCAwIDEgMCAwLTUuNjYifV1dfSk7dmFyIGpQLEdRZT11KCgpPT57alA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MyAxNC44M2E0IDQgMCAxIDEgMC01LjY2In1dXX0pO3ZhciBVUCxZUWU9dSgoKT0+e1VQPVtbInBhdGgiLHtkOiJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCJ9XSxbInBhdGgiLHtkOiJtOSAxMC01IDUgNSA1In1dXX0pO3ZhciBXUCxLUWU9dSgoKT0+e1dQPVtbInBhdGgiLHtkOiJtMTUgMTAgNSA1LTUgNSJ9XSxbInBhdGgiLHtkOiJNNCA0djdhNCA0IDAgMCAwIDQgNGgxMiJ9XV19KTt2YXIgR1AsWlFlPXUoKCk9PntHUD1bWyJwYXRoIix7ZDoibTE0IDE1LTUgNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDRoLTdhNCA0IDAgMCAwLTQgNHYxMiJ9XV19KTt2YXIgWVAsUVFlPXUoKCk9PntZUD1bWyJwYXRoIix7ZDoiTTE0IDkgOSA0IDQgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBoLTdhNCA0IDAgMCAxLTQtNFY0In1dXX0pO3ZhciBLUCxYUWU9dSgoKT0+e0tQPVtbInBhdGgiLHtkOiJtMTAgMTUgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJNNCA0aDdhNCA0IDAgMCAxIDQgNHYxMiJ9XV19KTt2YXIgWlAsSlFlPXUoKCk9PntaUD1bWyJwYXRoIix7ZDoibTEwIDkgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJNNCAyMGg3YTQgNCAwIDAgMCA0LTRWNCJ9XV19KTt2YXIgUVAsZVhlPXUoKCk9PntRUD1bWyJwYXRoIix7ZDoiTTIwIDIwdi03YTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dXX0pO3ZhciBYUCx0WGU9dSgoKT0+e1hQPVtbInBhdGgiLHtkOiJtMTUgMTQgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNNCAyMHYtN2E0IDQgMCAwIDEgNC00aDEyIn1dXX0pO3ZhciBKUCxyWGU9dSgoKT0+e0pQPVtbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNyAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2gyIn1dLFsicGF0aCIse2Q6Ik0yIDdoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMjAgN2gyIn1dLFsicGF0aCIse2Q6Ik03IDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMnYyIn1dLFsicmVjdCIse3g6IjQiLHk6IjQiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJyZWN0Iix7eDoiOCIseToiOCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIGVOLGFYZT11KCgpPT57ZU49W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjEwIix5MjoiMTAifV1dfSk7dmFyIHROLGlYZT11KCgpPT57dE49W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEifV0sWyJwYXRoIix7ZDoiTTE3IDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XV19KTt2YXIgck4sc1hlPXUoKCk9PntyTj1bWyJwYXRoIix7ZDoiTTEwLjIgMThINC43NzRhMS41IDEuNSAwIDAgMS0xLjM1Mi0uOTcgMTEgMTEgMCAwIDEgLjEzMi02LjQ4NyJ9XSxbInBhdGgiLHtkOiJNMTggMTAuMlY0Ljc3NGExLjUgMS41IDAgMCAwLS45Ny0xLjM1MiAxMSAxMSAwIDAgMC02LjQ4Ni4xMzIifV0sWyJwYXRoIix7ZDoiTTE4IDVhNCAzIDAgMCAxIDQgMyAyIDIgMCAwIDEtMiAyIDEwIDEwIDAgMCAwLTUuMTM5IDEuNDIifV0sWyJwYXRoIix7ZDoiTTUgMThhMyA0IDAgMCAwIDMgNCAyIDIgMCAwIDAgMi0yIDEwIDEwIDAgMCAxIDEuNDItNS4xNCJ9XSxbInBhdGgiLHtkOiJNOC43MDkgMi41NTRhMTAgMTAgMCAwIDAtNi4xNTUgNi4xNTUgMS41IDEuNSAwIDAgMCAuNjc2IDEuNjI2bDkuODA3IDUuNDJhMiAyIDAgMCAwIDIuNzE4LTIuNzE4bC01LjQyLTkuODA3YTEuNSAxLjUgMCAwIDAtMS42MjYtLjY3NiJ9XV19KTt2YXIgYU4sblhlPXUoKCk9PnthTj1bWyJwYXRoIix7ZDoiTTYgMnYxNGEyIDIgMCAwIDAgMiAyaDE0In1dLFsicGF0aCIse2Q6Ik0xOCAyMlY4YTIgMiAwIDAgMC0yLTJIMiJ9XV19KTt2YXIgaU4sb1hlPXUoKCk9PntpTj1bWyJwYXRoIix7ZDoiTTQgOWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmg0YTEgMSAwIDAgMSAxIDF2NGEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtNGExIDEgMCAwIDEgMS0xaDRhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0yaC00YTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtMi0yaC0yYTIgMiAwIDAgMC0yIDJ2NGExIDEgMCAwIDEtMSAxeiJ9XV19KTt2YXIgc04sbFhlPXUoKCk9PntzTj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTgiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiI2Iix4MjoiMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI2Iix5MjoiMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTgifV1dfSk7dmFyIG5OLGNYZT11KCgpPT57bk49W1sicGF0aCIse2Q6Ik0xMS41NjIgMy4yNjZhLjUuNSAwIDAgMSAuODc2IDBMMTUuMzkgOC44N2ExIDEgMCAwIDAgMS41MTYuMjk0TDIxLjE4MyA1LjVhLjUuNSAwIDAgMSAuNzk4LjUxOWwtMi44MzQgMTAuMjQ2YTEgMSAwIDAgMS0uOTU2LjczNEg1LjgxYTEgMSAwIDAgMS0uOTU3LS43MzRMMi4wMiA2LjAyYS41LjUgMCAwIDEgLjc5OC0uNTE5bDQuMjc2IDMuNjY0YTEgMSAwIDAgMCAxLjUxNi0uMjk0eiJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV19KTt2YXIgb04sZFhlPXUoKCk9PntvTj1bWyJwYXRoIix7ZDoiTTEwIDIydi04In1dLFsicGF0aCIse2Q6Ik0yLjMzNiA4Ljg5IDEwIDE0bDExLjcxNS03LjAyOSJ9XSxbInBhdGgiLHtkOiJNMjIgMTRhMiAyIDAgMCAxLS45NzEgMS43MTVsLTEwIDZhMiAyIDAgMCAxLTIuMTM4LS4wNWwtNi00QTIgMiAwIDAgMSAyIDE2di02YTIgMiAwIDAgMSAuOTcxLTEuNzE1bDEwLTZhMiAyIDAgMCAxIDIuMTM4LjA1bDYgNEEyIDIgMCAwIDEgMjIgOHoifV1dfSk7dmFyIGxOLHVYZT11KCgpPT57bE49W1sicGF0aCIse2Q6Im02IDggMS43NSAxMi4yOGEyIDIgMCAwIDAgMiAxLjcyaDQuNTRhMiAyIDAgMCAwIDItMS43MkwxOCA4In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NyA2LjQ3IDAgMCAxIDUgMCA2LjQ3IDYuNDcgMCAwIDAgNSAwIn1dLFsicGF0aCIse2Q6Im0xMiA4IDEtNmgyIn1dXX0pO3ZhciBjTixwWGU9dSgoKT0+e2NOPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjMiLHkyOiI2In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMjEiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxOCIseTE6IjIxIix5MjoiMTgifV1dfSk7dmFyIGROLGZYZT11KCgpPT57ZE49W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTkgMyAwIDAgMCAxOCAwVjUifV1dfSk7dmFyIHVOLGhYZT11KCgpPT57dU49W1sicGF0aCIse2Q6Ik0xMSAxMS4zMWMxLjE3LjU2IDEuNTQgMS42OSAzLjUgMS42OSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTExLjc1IDE4Yy4zNS41IDEuNDUgMSAyLjc1IDEgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNNyAzYTEgMSAwIDAgMC0xIDF2MTZhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTFMMTAgNGExIDEgMCAwIDAtMS0xeiJ9XV19KTt2YXIgcE4sbVhlPXUoKCk9PntwTj1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgMyAwIDAgMCA1IDIuNjkifV0sWyJwYXRoIix7ZDoiTTIxIDkuM1Y1In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDYuNDcgMi44OCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NGg0In1dLFsicGF0aCIse2Q6Ik0xMyAyMGE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNWMtMS4zMyAwLTIuNTQuNTQtMy40MSAxLjQxTDEyIDE2In1dXX0pO3ZhciBmTixnWGU9dSgoKT0+e2ZOPVtbInBhdGgiLHtkOiJNMjEgMTEuNjkzVjUifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODc1LTEuODc1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgMyAwIDAgMCA4LjY5NyAyLjk5OCJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTkgMyAwIDAgMCA5LjI4IDIuOTk5In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dXX0pO3ZhciBoTixiWGU9dSgoKT0+e2hOPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgNVYxOUE5IDMgMCAwIDAgMTUgMjEuODQifV0sWyJwYXRoIix7ZDoiTTIxIDVWOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJMMTggMTdIMjJMMTkgMjIifV0sWyJwYXRoIix7ZDoiTTMgMTJBOSAzIDAgMCAwIDE0LjU5IDE0Ljg3In1dXX0pO3ZhciBtTix4WGU9dSgoKT0+e21OPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNSJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMjEgMTIifV1dfSk7dmFyIGdOLHZYZT11KCgpPT57Z049W1sicGF0aCIse2Q6Im0xMyAyMS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0yMCAxOEgxMCJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7eDoiNiIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiOCIscng6IjIuNSJ9XV19KTt2YXIgYk4seVhlPXUoKCk9PntiTj1bWyJwYXRoIix7ZDoiTTEwIDE4aDEwIn1dLFsicGF0aCIse2Q6Im0xNyAyMSAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt4OiIxNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiOCIscng6IjIuNSJ9XSxbInJlY3QiLHt4OiI2Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dXX0pO3ZhciB4Tix3WGU9dSgoKT0+e3hOPVtbInBhdGgiLHtkOiJNMTAgNWEyIDIgMCAwIDAtMS4zNDQuNTE5bC02LjMyOCA1Ljc0YTEgMSAwIDAgMCAwIDEuNDgxbDYuMzI4IDUuNzQxQTIgMiAwIDAgMCAxMCAxOWgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnoifV0sWyJwYXRoIix7ZDoibTEyIDkgNiA2In1dLFsicGF0aCIse2Q6Im0xOCA5LTYgNiJ9XV19KTt2YXIgdk4sa1hlPXUoKCk9Pnt2Tj1bWyJwYXRoIix7ZDoiTTEwLjE2MiAzLjE2N0ExMCAxMCAwIDAgMCAyIDEzYTIgMiAwIDAgMCA0IDB2LTFhMiAyIDAgMCAxIDQgMHY0YTIgMiAwIDAgMCA0IDB2LTRhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMCA0LS4wMDYgMTAgMTAgMCAwIDAtOC4xNjEtOS44MjYifV0sWyJwYXRoIix7ZDoiTTIwLjgwNCAxNC44NjlhOSA5IDAgMCAxLTE3LjYwOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XV19KTt2YXIgeU4sU1hlPXUoKCk9Pnt5Tj1bWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiNSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNi40OCAzLjY2YTEwIDEwIDAgMCAxIDEzLjg2IDEzLjg2In1dLFsicGF0aCIse2Q6Im02LjQxIDYuNDEgMTEuMTggMTEuMTgifV0sWyJwYXRoIix7ZDoiTTMuNjYgNi40OGExMCAxMCAwIDAgMCAxMy44NiAxMy44NiJ9XV19KTt2YXIgd04sTVhlPXUoKCk9Pnt3Tj1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDB6In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dfSk7dmFyIHk1LENYZT11KCgpPT57eTU9W1sicGF0aCIse2Q6Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAwWiJ9XSxbInBhdGgiLHtkOiJNOS4yIDkuMmguMDEifV0sWyJwYXRoIix7ZDoibTE0LjUgOS41LTUgNSJ9XSxbInBhdGgiLHtkOiJNMTQuNyAxNC44aC4wMSJ9XV19KTt2YXIga04selhlPXUoKCk9PntrTj1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFsLTcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAtMy40MSAwWiJ9XV19KTt2YXIgU04sX1hlPXUoKCk9PntTTj1bWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgTU4sVFhlPXUoKCk9PntNTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV19KTt2YXIgQ04sTFhlPXUoKCk9PntDTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDloLjAxIn1dLFsicGF0aCIse2Q6Ik05IDE1aC4wMSJ9XV19KTt2YXIgek4sRFhlPXUoKCk9Pnt6Tj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dXX0pO3ZhciBfTiwkWGU9dSgoKT0+e19OPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV19KTt2YXIgVE4sQVhlPXUoKCk9PntUTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXX0pO3ZhciBMTixFWGU9dSgoKT0+e0xOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIEROLElYZT11KCgpPT57RE49W1sicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxMiIseDoiMiIseToiMTAiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTcuOTIgMTQgMy41LTMuNWEyLjI0IDIuMjQgMCAwIDAgMC0zbC01LTQuOTJhMi4yNCAyLjI0IDAgMCAwLTMgMEwxMCA2In1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOWguMDEifV1dfSk7dmFyICROLFBYZT11KCgpPT57JE49W1sicGF0aCIse2Q6Ik0xMiAzdjE0In1dLFsicGF0aCIse2Q6Ik01IDEwaDE0In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXX0pO3ZhciBBTixOWGU9dSgoKT0+e0FOPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIEVOLE9YZT11KCgpPT57RU49W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik02IDEyYzAtMS43LjctMy4yIDEuOC00LjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTggMTJjMCAxLjctLjcgMy4yLTEuOCA0LjIifV1dfSk7dmFyIElOLFJYZT11KCgpPT57SU49W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXX0pO3ZhciBQTixGWGU9dSgoKT0+e1BOPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBOTixCWGU9dSgoKT0+e05OPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjEifV0sWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjEyIix5MjoiMTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOCIscjoiMSJ9XV19KTt2YXIgT04sSFhlPXUoKCk9PntPTj1bWyJwYXRoIix7ZDoibTEwIDE2IDEuNSAxLjUifV0sWyJwYXRoIix7ZDoibTE0IDgtMS41LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTUgMmMtMS43OTggMS45OTgtMi41MTggMy45OTUtMi44MDcgNS45OTMifV0sWyJwYXRoIix7ZDoibTE2LjUgMTAuNSAxIDEifV0sWyJwYXRoIix7ZDoibTE3IDYtMi44OTEtMi44OTEifV0sWyJwYXRoIix7ZDoiTTIgMTVjNi42NjctNiAxMy4zMzMgMCAyMC02In1dLFsicGF0aCIse2Q6Im0yMCA5IC44OTEuODkxIn1dLFsicGF0aCIse2Q6Ik0zLjEwOSAxNC4xMDkgNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi41IDEyLjUgMSAxIn1dLFsicGF0aCIse2Q6Im03IDE4IDIuODkxIDIuODkxIn1dLFsicGF0aCIse2Q6Ik05IDIyYzEuNzk4LTEuOTk4IDIuNTE4LTMuOTk1IDIuODA3LTUuOTkzIn1dXX0pO3ZhciBSTixxWGU9dSgoKT0+e1JOPVtbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMTZoMTIifV1dfSk7dmFyIEZOLFZYZT11KCgpPT57Rk49W1sicGF0aCIse2Q6Ik0xNSAyYy0xLjM1IDEuNS0yLjA5MiAzLTIuNSA0LjVMMTQgOCJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWMzLjMzMy0zIDYuNjY3LTMgMTAtMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA5IC44OTEuODkxIn1dLFsicGF0aCIse2Q6Ik0yMiA5Yy0xLjUgMS4zNS0zIDIuMDkyLTQuNSAyLjVsLTEtMSJ9XSxbInBhdGgiLHtkOiJNMy4xMDkgMTQuMTA5IDQgMTUifV0sWyJwYXRoIix7ZDoibTYuNSAxMi41IDEgMSJ9XSxbInBhdGgiLHtkOiJtNyAxOCAyLjg5MSAyLjg5MSJ9XSxbInBhdGgiLHtkOiJNOSAyMmMxLjM1LTEuNSAyLjA5Mi0zIDIuNS00LjVMMTAgMTYifV1dfSk7dmFyIEJOLGpYZT11KCgpPT57Qk49W1sicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNNC40MiAxMS4yNDdBMTMuMTUyIDEzLjE1MiAwIDAgMCA0IDE0LjU1NkM0IDE4LjcyOCA3LjU4MiAyMSAxMiAyMXM4LTIuMjcyIDgtNi40NDRhMTEuNzAyIDExLjcwMiAwIDAgMC0uNDkzLTMuMzA5In1dLFsicGF0aCIse2Q6Ik04IDE0di41In1dLFsicGF0aCIse2Q6Ik04LjUgOC41Yy0uMzg0IDEuMDUtMS4wODMgMi4wMjgtMi4zNDQgMi41LTEuOTMxLjcyMi0zLjU3Ni0uMjk3LTMuNjU2LTEtLjExMy0uOTk0IDEuMTc3LTYuNTMgNC03IDEuOTIzLS4zMjEgMy42NTEuODQ1IDMuNjUxIDIuMjM1QTcuNDk3IDcuNDk3IDAgMCAxIDE0IDUuMjc3YzAtMS4zOSAxLjg0NC0yLjU5OCAzLjc2Ny0yLjI3NyAyLjgyMy40NyA0LjExMyA2LjAwNiA0IDctLjA4LjcwMy0xLjcyNSAxLjcyMi0zLjY1NiAxLTEuMjYxLS40NzItMS44NTUtMS40NS0yLjIzOS0yLjUifV1dfSk7dmFyIEhOLFVYZT11KCgpPT57SE49W1sibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMiIseTI6IjIyIn1dLFsicGF0aCIse2Q6Ik0xNyA1SDkuNWEzLjUgMy41IDAgMCAwIDAgN2g1YTMuNSAzLjUgMCAwIDEgMCA3SDYifV1dfSk7dmFyIHFOLFdYZT11KCgpPT57cU49W1sicGF0aCIse2Q6Ik0yMC41IDEwYTIuNSAyLjUgMCAwIDEtMi40LTNIMThhMi45NSAyLjk1IDAgMCAxLTIuNi00LjQgMTAgMTAgMCAxIDAgNi4zIDcuMWMtLjMuMi0uOC4zLTEuMi4zIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIFZOLEdYZT11KCgpPT57Vk49W1sicGF0aCIse2Q6Ik0xMSAyMEgyIn1dLFsicGF0aCIse2Q6Ik0xMSA0LjU2MnYxNi4xNTdhMSAxIDAgMCAwIDEuMjQyLjk3TDE5IDIwVjUuNTYyYTIgMiAwIDAgMC0xLjUxNS0xLjk0bC00LTFBMiAyIDAgMCAwIDExIDQuNTYxeiJ9XSxbInBhdGgiLHtkOiJNMTEgNEg4YTIgMiAwIDAgMC0yIDJ2MTQifV0sWyJwYXRoIix7ZDoiTTE0IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLTMifV1dfSk7dmFyIGpOLFlYZT11KCgpPT57ak49W1sicGF0aCIse2Q6Ik0xMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDlWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMiAyMGg4In1dLFsicGF0aCIse2Q6Ik0yMCAxN3YtMmEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE3Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgVU4sS1hlPXUoKCk9PntVTj1bWyJwYXRoIix7ZDoiTTEwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggMjBWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XV19KTt2YXIgV04sWlhlPXUoKCk9PntXTj1bWyJjaXJjbGUiLHtjeDoiMTIuMSIsY3k6IjEyLjEiLHI6IjEifV1dfSk7dmFyIEdOLFFYZT11KCgpPT57R049W1sicGF0aCIse2Q6Ik0xMiAxNVYzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00In1dLFsicGF0aCIse2Q6Im03IDEwIDUgNSA1LTUifV1dfSk7dmFyIFlOLFhYZT11KCgpPT57WU49W1sicGF0aCIse2Q6Im0xMi45OSA2Ljc0IDEuOTMgMy40NCJ9XSxbInBhdGgiLHtkOiJNMTkuMTM2IDEyYTEwIDEwIDAgMCAxLTE0LjI3MSAwIn1dLFsicGF0aCIse2Q6Im0yMSAyMS0yLjE2LTMuODQifV0sWyJwYXRoIix7ZDoibTMgMjEgOC4wMi0xNC4yNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjIifV1dfSk7dmFyIEtOLEpYZT11KCgpPT57S049W1sicGF0aCIse2Q6Ik0xMCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi41IDEzLjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiA1YzAgOS00IDEyLTYgMTJzLTYtMy02LTEyYzAtMiAyLTMgNi0zczYgMSA2IDMifV0sWyJwYXRoIix7ZDoiTTE3LjQgOS45Yy0uOC44LTIgLjgtMi44IDAifV0sWyJwYXRoIix7ZDoiTTEwLjEgNy4xQzkgNy4yIDcuNyA3LjcgNiA4LjZjLTMuNSAyLTQuNyAzLjktMy43IDUuNiA0LjUgNy44IDkuNSA4LjQgMTEuMiA3LjQuOS0uNSAxLjktMi4xIDEuOS00LjcifV0sWyJwYXRoIix7ZDoiTTkuMSAxNi41Yy4zLTEuMSAxLjQtMS43IDIuNC0xLjQifV1dfSk7dmFyIFpOLGVKZT11KCgpPT57Wk49W1sicGF0aCIse2Q6Ik0xMCAxOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg1YTMgMyAwIDAgMS0zLTMgMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTEzIDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWExIDEgMCAwIDEgMSAxdjZhMSAxIDAgMCAxLTEgMWwtLjgxIDMuMjQyYTEgMSAwIDAgMS0uOTcuNzU4SDgifV0sWyJwYXRoIix7ZDoiTTE0IDRoM2ExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNMTggNmg0In1dLFsicGF0aCIse2Q6Im01IDEwLTIgOCJ9XSxbInBhdGgiLHtkOiJtNyAxOCAyLTgifV1dfSk7dmFyIFFOLHRKZT11KCgpPT57UU49W1sicGF0aCIse2Q6Ik0xMCAxMCA3IDcifV0sWyJwYXRoIix7ZDoibTEwIDE0LTMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAzIDMifV0sWyJwYXRoIix7ZDoiTTE0LjIwNSA0LjEzOWE0IDQgMCAxIDEgNS40MzkgNS44NjMifV0sWyJwYXRoIix7ZDoiTTE5LjYzNyAxNGE0IDQgMCAxIDEtNS40MzIgNS44NjgifV0sWyJwYXRoIix7ZDoiTTQuMzY3IDEwYTQgNCAwIDEgMSA1LjQzOC01Ljg2MiJ9XSxbInBhdGgiLHtkOiJNOS43OTUgMTkuODYyYTQgNCAwIDEgMS01LjQyOS01Ljg3MyJ9XSxbInJlY3QiLHt4OiIxMCIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIFhOLHJKZT11KCgpPT57WE49W1sicGF0aCIse2Q6Ik0xOC43MTUgMTMuMTg2QzE4LjI5IDExLjg1OCAxNy4zODQgMTAuNjA3IDE2IDkuNWMtMi0xLjYtMy41LTQtNC02LjVhMTAuNyAxMC43IDAgMCAxLS44ODQgMi41ODYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC43OTUgOC43OTdBMTEgMTEgMCAwIDEgOCA5LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgMTMuMjIyIDMuMjA4In1dXX0pO3ZhciBKTixhSmU9dSgoKT0+e0pOPVtbInBhdGgiLHtkOiJNMTIgMjJhNyA3IDAgMCAwIDctN2MwLTItMS0zLjktMy01LjVzLTMuNS00LTQtNi41Yy0uNSAyLjUtMiA0LjktNCA2LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgNyA3eiJ9XV19KTt2YXIgZU8saUplPXUoKCk9PntlTz1bWyJwYXRoIix7ZDoiTTcgMTYuM2MyLjIgMCA0LTEuODMgNC00LjA1IDAtMS4xNi0uNTctMi4yNi0xLjcxLTMuMTlTNy4yOSA2Ljc1IDcgNS4zYy0uMjkgMS40NS0xLjE0IDIuODQtMi4yOSAzLjc2UzMgMTEuMSAzIDEyLjI1YzAgMi4yMiAxLjggNC4wNSA0IDQuMDV6In1dLFsicGF0aCIse2Q6Ik0xMi41NiA2LjZBMTAuOTcgMTAuOTcgMCAwIDAgMTQgMy4wMmMuNSAyLjUgMiA0LjkgNCA2LjVzMyAzLjUgMyA1LjVhNi45OCA2Ljk4IDAgMCAxLTExLjkxIDQuOTcifV1dfSk7dmFyIHRPLHNKZT11KCgpPT57dE89W1sicGF0aCIse2Q6Ik0xNS40IDE1LjYzYTcuODc1IDYgMTM1IDEgMSA2LjIzLTYuMjMgNC41IDMuNDMgMTM1IDAgMC02LjIzIDYuMjMifV0sWyJwYXRoIix7ZDoibTguMjkgMTIuNzEtMi42IDIuNmEyLjUgMi41IDAgMSAwLTEuNjUgNC42NUEyLjUgMi41IDAgMSAwIDguNyAxOC4zbDIuNTktMi41OSJ9XV19KTt2YXIgck8sbkplPXUoKCk9PntyTz1bWyJwYXRoIix7ZDoibTIgMiA4IDgifV0sWyJwYXRoIix7ZDoibTIyIDItOCA4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjkiLHJ4OiIxMCIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTcgMTMuNHY3LjkifV0sWyJwYXRoIix7ZDoiTTEyIDE0djgifV0sWyJwYXRoIix7ZDoiTTE3IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSJ9XV19KTt2YXIgYU8sb0plPXUoKCk9PnthTz1bWyJwYXRoIix7ZDoiTTE3LjU5NiAxMi43NjhhMiAyIDAgMSAwIDIuODI5LTIuODI5bC0xLjc2OC0xLjc2N2EyIDIgMCAwIDAgMi44MjgtMi44MjlsLTIuODI4LTIuODI4YTIgMiAwIDAgMC0yLjgyOSAyLjgyOGwtMS43NjctMS43NjhhMiAyIDAgMSAwLTIuODI5IDIuODI5eiJ9XSxbInBhdGgiLHtkOiJtMi41IDIxLjUgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJtMjAuMSAzLjkgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJNNS4zNDMgMjEuNDg1YTIgMiAwIDEgMCAyLjgyOS0yLjgyOGwxLjc2NyAxLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTYuMzY0LTYuMzY0YTIgMiAwIDEgMC0yLjgyOSAyLjgyOWwxLjc2OCAxLjc2N2EyIDIgMCAwIDAtMi44MjggMi44Mjl6In1dLFsicGF0aCIse2Q6Im05LjYgMTQuNCA0LjgtNC44In1dXX0pO3ZhciBpTyxsSmU9dSgoKT0+e2lPPVtbInBhdGgiLHtkOiJNNiAxOC41YTMuNSAzLjUgMCAxIDAgNyAwYzAtMS41Ny45Mi0yLjUyIDIuMDQtMy40NiJ9XSxbInBhdGgiLHtkOiJNNiA4LjVjMC0uNzUuMTMtMS40Ny4zNi0yLjE0In1dLFsicGF0aCIse2Q6Ik04LjggMy4xNUE2LjUgNi41IDAgMCAxIDE5IDguNWMwIDEuNjMtLjQ0IDIuODEtMS4wOSAzLjc2In1dLFsicGF0aCIse2Q6Ik0xMi41IDZBMi41IDIuNSAwIDAgMSAxNSA4LjVNMTAgMTNhMiAyIDAgMCAwIDEuODItMS4xOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBzTyxjSmU9dSgoKT0+e3NPPVtbInBhdGgiLHtkOiJNNiA4LjVhNi41IDYuNSAwIDEgMSAxMyAwYzAgNi02IDYtNiAxMGEzLjUgMy41IDAgMSAxLTcgMCJ9XSxbInBhdGgiLHtkOiJNMTUgOC41YTIuNSAyLjUgMCAwIDAtNSAwdjFhMiAyIDAgMSAxIDAgNCJ9XV19KTt2YXIgbk8sZEplPXUoKCk9PntuTz1bWyJwYXRoIix7ZDoiTTcgMy4zNFY1YTMgMyAwIDAgMCAzIDMifV0sWyJwYXRoIix7ZDoiTTExIDIxLjk1VjE4YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAxLTItMnYtMWEyIDIgMCAwIDAtMi0ySDIuMDUifV0sWyJwYXRoIix7ZDoiTTIxLjU0IDE1SDE3YTIgMiAwIDAgMC0yIDJ2NC41NCJ9XSxbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCA5LjU0IDEzIn1dLFsicGF0aCIse2Q6Ik0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiI2IixyeDoiMSJ9XV19KTt2YXIgdzUsdUplPXUoKCk9Pnt3NT1bWyJwYXRoIix7ZDoiTTIxLjU0IDE1SDE3YTIgMiAwIDAgMC0yIDJ2NC41NCJ9XSxbInBhdGgiLHtkOiJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgM2EyIDIgMCAwIDEgMiAyYzAgMS4xLjkgMiAyIDJhMiAyIDAgMCAwIDItMmMwLTEuMS45LTIgMi0yaDMuMTcifV0sWyJwYXRoIix7ZDoiTTExIDIxLjk1VjE4YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAxLTItMnYtMWEyIDIgMCAwIDAtMi0ySDIuMDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIG9PLHBKZT11KCgpPT57b089W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTcgNyAwIDEgMCAxMCAxMCJ9XV19KTt2YXIgbE8sZkplPXUoKCk9PntsTz1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuMzQ3VjE0YzAtNi00LTEyLTgtMTItMS4wNzggMC0yLjE1Ny40MzYtMy4xNTcgMS4xOSJ9XSxbInBhdGgiLHtkOiJNNi4yMDYgNi4yMUM0Ljg3MSA4LjQgNCAxMS4yIDQgMTRhOCA4IDAgMCAwIDE0LjU2OCA0LjU2OCJ9XV19KTt2YXIgY08saEplPXUoKCk9PntjTz1bWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XSxbInBhdGgiLHtkOiJNMyA4YzAtMy41IDIuNS02IDYuNS02IDUgMCA0LjgzIDMgNy41IDVzNSAyIDUgNmMwIDQuNS0yLjUgNi41LTcgNi41LTIuNSAwLTIuNSAyLjUtNiAyLjVzLTctMi03LTUuNWMwLTMgMS41LTMgMS41LTVDMy41IDEwIDMgOSAzIDhaIn1dXX0pO3ZhciBkTyxtSmU9dSgoKT0+e2RPPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMiIscng6IjEwIixyeToiNiJ9XV19KTt2YXIgdU8sZ0plPXUoKCk9Pnt1Tz1bWyJwYXRoIix7ZDoiTTEyIDJDOCAyIDQgOCA0IDE0YTggOCAwIDAgMCAxNiAwYzAtNi00LTEyLTgtMTIifV1dfSk7dmFyIGs1LGJKZT11KCgpPT57azU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTkiLHI6IjEifV1dfSk7dmFyIFM1LHhKZT11KCgpPT57UzU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTIiLHI6IjEifV1dfSk7dmFyIHBPLHZKZT11KCgpPT57cE89W1sicGF0aCIse2Q6Ik01IDE1YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIn1dLFsicGF0aCIse2Q6Ik01IDlhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAifV1dfSk7dmFyIGZPLHlKZT11KCgpPT57Zk89W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiI1Iix5MToiNSIseTI6IjE5In1dXX0pO3ZhciBoTyx3SmU9dSgoKT0+e2hPPVtbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjE1Iix5MjoiMTUifV1dfSk7dmFyIG1PLGtKZT11KCgpPT57bU89W1sicGF0aCIse2Q6Ik0yMSAyMUg4YTIgMiAwIDAgMS0xLjQyLS41ODdsLTMuOTk0LTMuOTk5YTIgMiAwIDAgMSAwLTIuODI4bDEwLTEwYTIgMiAwIDAgMSAyLjgyOSAwbDUuOTk5IDZhMiAyIDAgMCAxIDAgMi44MjhMMTIuODM0IDIxIn1dLFsicGF0aCIse2Q6Im01LjA4MiAxMS4wOSA4LjgyOCA4LjgyOCJ9XV19KTt2YXIgZ08sU0plPXUoKCk9PntnTz1bWyJwYXRoIix7ZDoibTE1IDIwIDMtM2gyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY5YTIgMiAwIDAgMCAyIDJoMmwzIDN6In1dLFsicGF0aCIse2Q6Ik02IDh2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOHYxIn1dLFsicGF0aCIse2Q6Ik0xNCA4djEifV0sWyJwYXRoIix7ZDoiTTE4IDh2MSJ9XV19KTt2YXIgYk8sTUplPXUoKCk9PntiTz1bWyJwYXRoIix7ZDoiTTQgMTBoMTIifV0sWyJwYXRoIix7ZDoiTTQgMTRoOSJ9XSxbInBhdGgiLHtkOiJNMTkgNmE3LjcgNy43IDAgMCAwLTUuMi0yQTcuOSA3LjkgMCAwIDAgNiAxMmMwIDQuNCAzLjUgOCA3LjggOCAyIDAgMy44LS44IDUuMi0yIn1dXX0pO3ZhciB4TyxDSmU9dSgoKT0+e3hPPVtbInBhdGgiLHtkOiJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUifV0sWyJwYXRoIix7ZDoiTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTMifV0sWyJwYXRoIix7ZDoiTTMgN2gxMSJ9XSxbInBhdGgiLHtkOiJtOSAxMS0yIDNoM2wtMiAzIn1dXX0pO3ZhciB2Tyx6SmU9dSgoKT0+e3ZPPVtbInBhdGgiLHtkOiJtMTUgMTUgNiA2In1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dLFsicGF0aCIse2Q6Ik0zIDE2djVoNSJ9XSxbInBhdGgiLHtkOiJtMyAyMSA2LTYifV0sWyJwYXRoIix7ZDoiTTMgOFYzaDUifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV1dfSk7dmFyIHlPLF9KZT11KCgpPT57eU89W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJNMTAgMTQgMjEgMyJ9XSxbInBhdGgiLHtkOiJNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNiJ9XV19KTt2YXIgd08sVEplPXUoKCk9Pnt3Tz1bWyJwYXRoIix7ZDoiTTEwLjczMyA1LjA3NmExMC43NDQgMTAuNzQ0IDAgMCAxIDExLjIwNSA2LjU3NSAxIDEgMCAwIDEgMCAuNjk2IDEwLjc0NyAxMC43NDcgMCAwIDEtMS40NDQgMi40OSJ9XSxbInBhdGgiLHtkOiJNMTQuMDg0IDE0LjE1OGEzIDMgMCAwIDEtNC4yNDItNC4yNDIifV0sWyJwYXRoIix7ZDoiTTE3LjQ3OSAxNy40OTlhMTAuNzUgMTAuNzUgMCAwIDEtMTUuNDE3LTUuMTUxIDEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgNC40NDYtNS4xNDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIga08sTEplPXUoKCk9PntrTz1bWyJwYXRoIix7ZDoibTE1IDE4LS43MjItMy4yNSJ9XSxbInBhdGgiLHtkOiJNMiA4YTEwLjY0NSAxMC42NDUgMCAwIDAgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAgMTUtMS43MjYtMi4wNSJ9XSxbInBhdGgiLHtkOiJtNCAxNSAxLjcyNi0yLjA1In1dLFsicGF0aCIse2Q6Im05IDE4IC43MjItMy4yNSJ9XV19KTt2YXIgU08sREplPXUoKCk9PntTTz1bWyJwYXRoIix7ZDoiTTIuMDYyIDEyLjM0OGExIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDE5Ljg3NiAwIDEgMSAwIDAgMSAwIC42OTYgMTAuNzUgMTAuNzUgMCAwIDEtMTkuODc2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgTU8sJEplPXUoKCk9PntNTz1bWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY4LjVhLjUuNSAwIDAgMC0uNzY5LS40MjJsLTQuNDYyIDIuODQ0QS41LjUgMCAwIDEgMTUgMTAuNXYtMmEuNS41IDAgMCAwLS43NjktLjQyMkw5Ljc3IDEwLjkyMkEuNS41IDAgMCAxIDkgMTAuNVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIENPLEFKZT11KCgpPT57Q089W1sicGF0aCIse2Q6Ik0xMC44MjcgMTYuMzc5YTYuMDgyIDYuMDgyIDAgMCAxLTguNjE4LTcuMDAybDUuNDEyIDEuNDVhNi4wODIgNi4wODIgMCAwIDEgNy4wMDItOC42MThsLTEuNDUgNS40MTJhNi4wODIgNi4wODIgMCAwIDEgOC42MTggNy4wMDJsLTUuNDEyLTEuNDVhNi4wODIgNi4wODIgMCAwIDEtNy4wMDIgOC42MThsMS40NS01LjQxMloifV0sWyJwYXRoIix7ZDoiTTEyIDEydi4wMSJ9XV19KTt2YXIgek8sRUplPXUoKCk9Pnt6Tz1bWyJwYXRoIix7ZDoiTTEyIDZhMiAyIDAgMCAxIDMuNDE0LTEuNDE0bDYgNmEyIDIgMCAwIDEgMCAyLjgyOGwtNiA2QTIgMiAwIDAgMSAxMiAxOHoifV0sWyJwYXRoIix7ZDoiTTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDIgMTh6In1dXX0pO3ZhciBfTyxJSmU9dSgoKT0+e19PPVtbInBhdGgiLHtkOiJNMTIuNjcgMTlhMiAyIDAgMCAwIDEuNDE2LS41ODhsNi4xNTQtNi4xNzJhNiA2IDAgMCAwLTguNDktOC40OUw1LjU4NiA5LjkxNEEyIDIgMCAwIDAgNSAxMS4zMjhWMThhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTE2IDggMiAyMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxNUg5In1dXX0pO3ZhciBUTyxQSmU9dSgoKT0+e1RPPVtbInBhdGgiLHtkOiJNNCAzIDIgNXYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dLFsicGF0aCIse2Q6Ik02IDhoNCJ9XSxbInBhdGgiLHtkOiJNNiAxOGg0In1dLFsicGF0aCIse2Q6Im0xMiAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dLFsicGF0aCIse2Q6Ik0xNCA4aDQifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDQifV0sWyJwYXRoIix7ZDoibTIwIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV1dfSk7dmFyIExPLE5KZT11KCgpPT57TE89W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtNi44IDE1LTMuNSAyIn1dLFsicGF0aCIse2Q6Im0yMC43IDctMy41IDIifV0sWyJwYXRoIix7ZDoiTTYuOCA5IDMuMyA3In1dLFsicGF0aCIse2Q6Im0yMC43IDE3LTMuNS0yIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtOCAzIDgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTggMTguN2E5IDkgMCAxIDAtMTIgMCJ9XV19KTt2YXIgRE8sT0plPXUoKCk9PntETz1bWyJwYXRoIix7ZDoiTTEzLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjExLjUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTEifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggN1Y2In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgTTUsUkplPXUoKCk9PntNNT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTggNC00In1dLFsicGF0aCIse2Q6Ik04IDEwdjhoOCJ9XV19KTt2YXIgQzUsRkplPXUoKCk9PntDNT1bWyJwYXRoIix7ZDoiTTEzIDIyaDVhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTcuNjkgMTYuNDc5IDEuMjkgNC44OGEuNS41IDAgMCAxLS42OTguNTkxbC0xLjg0My0uODQ5YTEgMSAwIDAgMC0uODc5LjAwMWwtMS44NDYuODVhLjUuNSAwIDAgMS0uNjkyLS41OTNsMS4yOS00Ljg4In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxNCIscjoiMyJ9XV19KTt2YXIgJE8sQkplPXUoKCk9PnskTz1bWyJwYXRoIix7ZDoiTTE0LjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjgifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTExLjcgMTQuMiA3IDE3bC00LjctMi44In1dLFsicGF0aCIse2Q6Ik0zIDEzLjFhMiAyIDAgMCAwLS45OTkgMS43NnYzLjI0YTIgMiAwIDAgMCAuOTY5IDEuNzhMNiAyMS43YTIgMiAwIDAgMCAyLjAzLjAxTDExIDE5LjlhMiAyIDAgMCAwIDEtMS43NlYxNC45YTIgMiAwIDAgMC0uOTctMS43OEw4IDExLjNhMiAyIDAgMCAwLTIuMDMtLjAxeiJ9XSxbInBhdGgiLHtkOiJNNyAxN3Y1In1dXX0pO3ZhciB6NSxISmU9dSgoKT0+e3o1PVtbInBhdGgiLHtkOiJNMTQgMjJoNGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTUgMTRhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTkgMjJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XV19KTt2YXIgXzUscUplPXUoKCk9PntfNT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDEyYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTEgMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDAtMS0xIn1dXX0pO3ZhciBUNSxWSmU9dSgoKT0+e1Q1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYifV0sWyJwYXRoIix7ZDoiTTE2IDE4di0zIn1dXX0pO3ZhciBMNSxqSmU9dSgoKT0+e0w1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTQifV0sWyJwYXRoIix7ZDoiTTE2IDE4di02In1dXX0pO3ZhciBENSxVSmU9dSgoKT0+e0Q1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTMtMy41IDMuNS0yLTJMOCAxNyJ9XV19KTt2YXIgJDUsV0plPXUoKCk9PnskNT1bWyJwYXRoIix7ZDoiTTE1Ljk0MSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA0bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuNTEyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik00LjAxNyAxMS41MTJhNiA2IDAgMSAwIDguNDY2IDguNDc1In1dLFsicGF0aCIse2Q6Ik05IDE2YTEgMSAwIDAgMS0xLTF2LTRjMC0uNTUyLjQ1LTEuMDA4Ljk5NS0uOTE3YTYgNiAwIDAgMSA0LjkyMiA0LjkyMmMuMDkxLjU0NC0uMzY1Ljk5NS0uOTE3Ljk5NXoifV1dfSk7dmFyIEE1LEdKZT11KCgpPT57QTU9W1sicGF0aCIse2Q6Ik0xMC41IDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTQgMjAgMiAyIDQtNCJ9XV19KTt2YXIgQU8sWUplPXUoKCk9PntBTz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTkgMTUgMiAyIDQtNCJ9XV19KTt2YXIgRU8sS0plPXUoKCk9PntFTz1bWyJwYXRoIix7ZDoiTTE2IDIyaDJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYyLjg1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE0djIuMmwxLjYgMSJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTYiLHI6IjYifV1dfSk7dmFyIEU1LFpKZT11KCgpPT57RTU9W1sicGF0aCIse2Q6Ik00IDEyLjE1VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0zLjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im01IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgMjIgMy0zLTMtMyJ9XV19KTt2YXIgSU8sUUplPXUoKCk9PntJTz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDEyLjUgOCAxNWwyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTIuNSAyIDIuNS0yIDIuNSJ9XV19KTt2YXIgUE8sWEplPXUoKCk9PntQTz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dXX0pO3ZhciBJNSxKSmU9dSgoKT0+e0k1PVtbInBhdGgiLHtkOiJNMTUgOGExIDEgMCAwIDEtMS0xVjJhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4eiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC00LjE4MiJ9XSxbInBhdGgiLHtkOiJtMy4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoiTTQgMTAuNTkyVjRhMiAyIDAgMCAxIDItMmg4In1dLFsicGF0aCIse2Q6Im00LjIyOCAxNi44NTItLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTguMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtOC41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im05Ljc3MyAxNi44NTIuOTIyLS4zODMifV0sWyJwYXRoIix7ZDoibTkuNzczIDE5LjE0OC45MjIuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgTk8sZWV0PXUoKCk9PntOTz1bWyJwYXRoIix7ZDoiTTQgMTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDE2aDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTAgMjJoNCJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNiIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIE9PLHRldD11KCgpPT57T089W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMgMy0zIn1dXX0pO3ZhciBQNSxyZXQ9dSgoKT0+e1A1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgOXY0In1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIFJPLGFldD11KCgpPT57Uk89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoibTIwIDE3LTEuMjk2LTEuMjk2YTIuNDEgMi40MSAwIDAgMC0zLjQwOCAwTDkgMjIifV1dfSk7dmFyIEZPLGlldD11KCgpPT57Rk89W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMy42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSA3IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhMSAxIDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBWNCxzZXQ9dSgoKT0+e1Y0PVtbInBhdGgiLHtkOiJNNCA2LjgzNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMiAxOWEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAxLTQgMHYtNGE2IDYgMCAwIDEgMTIgMHY0YTIgMiAwIDAgMS00IDB2LTFhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgQk8sbmV0PXUoKCk9PntCTz1bWyJwYXRoIix7ZDoiTTQgMTFWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0yIDE1aDEwIn1dLFsicGF0aCIse2Q6Im05IDE4IDMtMy0zLTMifV1dfSk7dmFyIE41LG9ldD11KCgpPT57TjU9W1sicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik00IDEydjYifV0sWyJwYXRoIix7ZDoiTTQgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjQifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBPNSxjZXQ9dSgoKT0+e081PVtbInBhdGgiLHtkOiJNNCA5LjhWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTd2LTJhMiAyIDAgMCAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE3IixyeDoiMSJ9XV19KTt2YXIgUjUsZGV0PXUoKCk9PntSNT1bWyJwYXRoIix7ZDoiTTIwIDE0VjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dfSk7dmFyIEhPLHVldD11KCgpPT57SE89W1sicGF0aCIse2Q6Ik0xMS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjEwLjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDIwdi03bDMgMS40NzQifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBxTyxwZXQ9dSgoKT0+e3FPPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dXX0pO3ZhciBWTyxmZXQ9dSgoKT0+e1ZPPVtbInBhdGgiLHtkOiJNNC4yMjYgMjAuOTI1QTIgMiAwIDAgMCA2IDIyaDEyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4xMjcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTUgMTEtMyAzIn1dLFsicGF0aCIse2Q6Im01IDE3LTMtM2gxMCJ9XV19KTt2YXIgRjUsaGV0PXUoKCk9PntGNT1bWyJwYXRoIix7ZDoiTTE0LjM2NCAxMy42MzRhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZsNC4wMTMtNC4wMDlhMSAxIDAgMCAwLTMuMDA0LTMuMDA0eiJ9XSxbInBhdGgiLHtkOiJNMTQuNDg3IDcuODU4QTEgMSAwIDAgMSAxNCA3VjIifV0sWyJwYXRoIix7ZDoiTTIwIDE5LjY0NVYyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwyLjUxNiAyLjUxNiJ9XSxbInBhdGgiLHtkOiJNOCAxOGgxIn1dXX0pO3ZhciBCNSxtZXQ9dSgoKT0+e0I1PVtbInBhdGgiLHtkOiJNMTIuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2OS4zNCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAuMzc4IDEyLjYyMmExIDEgMCAwIDEgMyAzLjAwM0w4LjM2IDIwLjYzN2EyIDIgMCAwIDEtLjg1NC41MDZsLTIuODY3LjgzN2EuNS41IDAgMCAxLS42Mi0uNjJsLjgzNi0yLjg2OWEyIDIgMCAwIDEgLjUwNi0uODUzeiJ9XV19KTt2YXIgSDUsZ2V0PXUoKCk9PntINT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE1LjAzMyAxMy40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2di00LjcwNGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoifV1dfSk7dmFyIHE1LGJldD11KCgpPT57cTU9W1sicGF0aCIse2Q6Ik0xMS4zNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE0IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE3IDE2djYifV1dfSk7dmFyIGpPLHhldD11KCgpPT57ak89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik05IDE1aDYifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dXX0pO3ZhciBWNSx2ZXQ9dSgoKT0+e1Y1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik05LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzIn1dXX0pO3ZhciBqNSx5ZXQ9dSgoKT0+e2o1PVtbInBhdGgiLHtkOiJNMTEuMSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODkgMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djMuMjUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTIxIDIyLTIuODgtMi44OCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE3IixyOiIzIn1dXX0pO3ZhciBVTyx3ZXQ9dSgoKT0+e1VPPVtbInBhdGgiLHtkOiJNMjAgMTBWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmg0LjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNiAxNGEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMmEyIDIgMCAwIDAgMi0yIn1dXX0pO3ZhciBXTyxrZXQ9dSgoKT0+e1dPPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTQuNSIscjoiMi41In1dLFsicGF0aCIse2Q6Ik0xMy4zIDE2LjMgMTUgMTgifV1dfSk7dmFyIFU1LE1ldD11KCgpPT57VTU9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTEuNSAxMy41YTIuNSAyLjUgMCAwIDEgMCAzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMmE1IDUgMCAwIDEgMCA2In1dXX0pO3ZhciBHTyxDZXQ9dSgoKT0+e0dPPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMCAxMXYyIn1dLFsicGF0aCIse2Q6Ik04IDE3aDgifV0sWyJwYXRoIix7ZDoiTTE0IDE2djIifV1dfSk7dmFyIFlPLHpldD11KCgpPT57WU89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEzaDIifV0sWyJwYXRoIix7ZDoiTTE0IDEzaDIifV0sWyJwYXRoIix7ZDoiTTggMTdoMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTdoMiJ9XV19KTt2YXIgS08sX2V0PXUoKCk9PntLTz1bWyJwYXRoIix7ZDoiTTExIDIxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xdi04YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xVjhhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgNmEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMi0yQTIgMiAwIDAgMCAxNyAyaC0zYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXoifV1dfSk7dmFyIFpPLFRldD11KCgpPT57Wk89W1sicGF0aCIse2Q6Ik00IDExVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE4IDMtMy0zLTMifV1dfSk7dmFyIFFPLExldD11KCgpPT57UU89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im04IDE2IDItMi0yLTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aDQifV1dfSk7dmFyIFhPLERldD11KCgpPT57WE89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCA5SDgifV0sWyJwYXRoIix7ZDoiTTE2IDEzSDgifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDgifV1dfSk7dmFyIFc1LCRldD11KCgpPT57VzU9W1sicGF0aCIse2Q6Ik0xMiAyMmg2YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMyAxNnYtMS41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIC41LjVWMTYifV0sWyJwYXRoIix7ZDoiTTYgMjJoMiJ9XSxbInBhdGgiLHtkOiJNNyAxNHY4In1dXX0pO3ZhciBKTyxBZXQ9dSgoKT0+e0pPPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEgMThoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM3YtLjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYuNSJ9XV19KTt2YXIgZVIsRWV0PXUoKCk9PntlUj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV0sWyJwYXRoIix7ZDoibTE1IDE1LTMtMy0zIDMifV1dfSk7dmFyIHRSLElldD11KCgpPT57dFI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNiAyMmE0IDQgMCAwIDAtOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTUiLHI6IjMifV1dfSk7dmFyIEc1LFBldD11KCgpPT57RzU9W1sicGF0aCIse2Q6Ik00IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxNy44NDMgMy4wMzMtMS43NTVhLjY0LjY0IDAgMCAxIC45NjcuNTZ2NC43MDRhLjY1LjY1IDAgMCAxLS45NjcuNTZMMTAgMjAuMTU3In1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjYiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XV19KTt2YXIgclIsTmV0PXUoKCk9PntyUj1bWyJwYXRoIix7ZDoiTTQgMTEuNTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTEuOTUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDE1YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTggMTQuNTAyYS41LjUgMCAwIDAtLjgyNi0uMzgxbC0xLjg5MyAxLjYzMWExIDEgMCAwIDEtLjY1MS4yNDNIMy41YS41LjUgMCAwIDAtLjUuNTAxdjMuMDA2YS41LjUgMCAwIDAgLjUuNTAxaDEuMTI5YTEgMSAwIDAgMSAuNjUyLjI0M2wxLjg5MyAxLjYzM2EuNS41IDAgMCAwIC44MjYtLjM4eiJ9XV19KTt2YXIgWTUsT2V0PXUoKCk9PntZNT1bWyJwYXRoIix7ZDoiTTExIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTUgMTcgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNy01IDUifV1dfSk7dmFyIGFSLFJldD11KCgpPT57YVI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNC41IDEyLjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgMTIuNSA1IDUifV1dfSk7dmFyIGlSLEZldD11KCgpPT57aVI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dXX0pO3ZhciBzUixCZXQ9dSgoKT0+e3NSPVtbInBhdGgiLHtkOiJNMTUgMmgtNGEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoiTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eiJ9XSxbInBhdGgiLHtkOiJNNSA3YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAxLjczMi0xIn1dXX0pO3ZhciBuUixIZXQ9dSgoKT0+e25SPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgNy41aDQifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoiTTMgMTYuNWg0In1dLFsicGF0aCIse2Q6Ik0xNyAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNyA3LjVoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNWg0In1dXX0pO3ZhciBLNSxxZXQ9dSgoKT0+e0s1PVtbInBhdGgiLHtkOiJNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTMuMTJjMCAyLjM4IDAgNi4zOC0xIDguODgifV0sWyJwYXRoIix7ZDoiTTE3LjI5IDIxLjAyYy4xMi0uNi40My0yLjMuNS0zLjAyIn1dLFsicGF0aCIse2Q6Ik0yIDEyYTEwIDEwIDAgMCAxIDE4LTYifV0sWyJwYXRoIix7ZDoiTTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS44IDE2Yy4yLTIgLjEzMS01LjM1NCAwLTYifV0sWyJwYXRoIix7ZDoiTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMiJ9XSxbInBhdGgiLHtkOiJNOC42NSAyMmMuMjEtLjY2LjQ1LTEuMzIuNTctMiJ9XSxbInBhdGgiLHtkOiJNOSA2LjhhNiA2IDAgMCAxIDkgNS4ydjIifV1dfSk7dmFyIG9SLFZldD11KCgpPT57b1I9W1sicGF0aCIse2Q6Ik0xNSA2LjVWM2ExIDEgMCAwIDAtMS0xaC0yYTEgMSAwIDAgMC0xIDF2My41In1dLFsicGF0aCIse2Q6Ik05IDE4aDgifV0sWyJwYXRoIix7ZDoiTTE4IDNoLTMifV0sWyJwYXRoIix7ZDoiTTExIDNhNiA2IDAgMCAwLTYgNnYxMSJ9XSxbInBhdGgiLHtkOiJNNSAxM2g0In1dLFsicGF0aCIse2Q6Ik0xNyAxMGE0IDQgMCAwIDAtOCAwdjEwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0yWiJ9XV19KTt2YXIgbFIsamV0PXUoKCk9PntsUj1bWyJwYXRoIix7ZDoiTTE4IDEyLjQ3di4wM20wLS41di40N20tLjQ3NSA1LjA1NkE2Ljc0NCA2Ljc0NCAwIDAgMSAxNSAxOGMtMy41NiAwLTcuNTYtMi41My04LjUtNiAuMzQ4LTEuMjggMS4xMTQtMi40MzMgMi4xMjEtMy4zOG0zLjQ0NC0yLjA4OEE4LjgwMiA4LjgwMiAwIDAgMSAxNSA2YzMuNTYgMCA2LjA2IDIuNTQgNyA2LS4zMDkgMS4xNC0uNzg2IDIuMTc3LTEuNDEzIDMuMDU4In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzbTcuNDgtNC4zNzJBOS43NyA5Ljc3IDAgMCAxIDE2IDYuMDdtMCAxMS44NmE5Ljc3IDkuNzcgMCAwIDEtMS43MjgtMy42MTgifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOThNOC41MyAzaDUuMjdhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40TTIgMmwyMCAyMCJ9XV19KTt2YXIgY1IsVWV0PXUoKCk9PntjUj1bWyJwYXRoIix7ZDoiTTIgMTZzOS0xNSAyMC00QzExIDIzIDIgOCAyIDgifV1dfSk7dmFyIGRSLFdldD11KCgpPT57ZFI9W1sicGF0aCIse2Q6Ik02LjUgMTJjLjk0LTMuNDYgNC45NC02IDguNS02IDMuNTYgMCA2LjA2IDIuNTQgNyA2LS45NCAzLjQ3LTMuNDQgNi03IDZzLTcuNTYtMi41My04LjUtNloifV0sWyJwYXRoIix7ZDoiTTE4IDEydi41In1dLFsicGF0aCIse2Q6Ik0xNiAxNy45M2E5Ljc3IDkuNzcgMCAwIDEgMC0xMS44NiJ9XSxbInBhdGgiLHtkOiJNNyAxMC42N0M3IDggNS41OCA1Ljk3IDIuNzMgNS41Yy0xIDEuNS0xIDUgLjIzIDYuNS0xLjI0IDEuNS0xLjI0IDUtLjIzIDYuNUM1LjU4IDE4LjAzIDcgMTYgNyAxMy4zMyJ9XSxbInBhdGgiLHtkOiJNMTAuNDYgNy4yNkMxMC4yIDUuODggOS4xNyA0LjI0IDggM2g1LjhhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40In1dLFsicGF0aCIse2Q6Im0xNi4wMSAxNy45My0uMjMgMS40QTIgMiAwIDAgMSAxMy44IDIxSDkuNWE1Ljk2IDUuOTYgMCAwIDAgMS40OS0zLjk4In1dXX0pO3ZhciB1UixHZXQ9dSgoKT0+e3VSPVtbInBhdGgiLHtkOiJtMTcuNTg2IDExLjQxNC01LjkzIDUuOTNhMSAxIDAgMCAxLTgtOGwzLjEzNy0zLjEzN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy41VjEwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgOC41ODYgMjIgNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEwIixyOiIyIn1dXX0pO3ZhciBwUixZZXQ9dSgoKT0+e3BSPVtbInBhdGgiLHtkOiJNNCAxMWgxIn1dLFsicGF0aCIse2Q6Ik04IDE1YTIgMiAwIDAgMS00IDBWM2ExIDEgMCAwIDEgMS0xaC41QzE0IDIgMjAgOSAyMCAxOHY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjIifV1dfSk7dmFyIGZSLEtldD11KCgpPT57ZlI9W1sicGF0aCIse2Q6Ik0xNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCAyMlY0In1dLFsicGF0aCIse2Q6Ik03LjY1NiAySDhjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMC4zNDcifV1dfSk7dmFyIGhSLFpldD11KCgpPT57aFI9W1sicGF0aCIse2Q6Ik0xOCAyMlYyLjhhLjguOCAwIDAgMC0xLjE3LS43MUw1LjQ1IDcuNzhhLjguOCAwIDAgMCAwIDEuNDRMMTggMTUuNSJ9XV19KTt2YXIgbVIsUWV0PXUoKCk9PnttUj1bWyJwYXRoIix7ZDoiTTQgMjJWNGExIDEgMCAwIDEgLjQtLjhBNiA2IDAgMCAxIDggMmMzIDAgNSAyIDcuMzMzIDJxMiAwIDMuMDY3LS44QTEgMSAwIDAgMSAyMCA0djEwYTEgMSAwIDAgMS0uNC44QTYgNiAwIDAgMSAxNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV1dfSk7dmFyIGdSLFhldD11KCgpPT57Z1I9W1sicGF0aCIse2Q6Ik02IDIyVjIuOGEuOC44IDAgMCAxIDEuMTctLjcxbDExLjM4IDUuNjlhLjguOCAwIDAgMSAwIDEuNDRMNiAxNS41In1dXX0pO3ZhciBiUixKZXQ9dSgoKT0+e2JSPVtbInBhdGgiLHtkOiJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiJ9XSxbInBhdGgiLHtkOiJtNSAyMiAxNC00In1dLFsicGF0aCIse2Q6Im01IDE4IDE0IDQifV1dfSk7dmFyIHhSLGV0dD11KCgpPT57eFI9W1sicGF0aCIse2Q6Ik0xMiAzcTEgNCA0IDYuNXQzIDUuNWExIDEgMCAwIDEtMTQgMCA1IDUgMCAwIDEgMS0zIDEgMSAwIDAgMCA1IDBjMC0yLTEuNS0zLTEuNS01cTAtMiAyLjUtNCJ9XV19KTt2YXIgdlIsdHR0PXUoKCk9Pnt2Uj1bWyJwYXRoIix7ZDoiTTExLjY1MiA2SDE4In1dLFsicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnY0YTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy42NDkgMkgxN2ExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOGE0IDQgMCAwIDAtLjU1IDEuMDA3In1dXX0pO3ZhciB5UixydHQ9dSgoKT0+e3lSPVtbInBhdGgiLHtkOiJNMTIgMTN2MSJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOEE0IDQgMCAwIDAgMTYgMTJ2OGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1YzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDZoMTIifV1dfSk7dmFyIHdSLGF0dD11KCgpPT57d1I9W1sicGF0aCIse2Q6Ik0xMCAydjIuMzQzIn1dLFsicGF0aCIse2Q6Ik0xNCAydjYuMzQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMS43NTUtMi45Nmw1LjIyNy05LjU2MyJ9XSxbInBhdGgiLHtkOiJNNi40NTMgMTVIMTUifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dfSk7dmFyIGtSLGl0dD11KCgpPT57a1I9W1sicGF0aCIse2Q6Ik0xMCAydjYuMjkyYTcgNyAwIDEgMCA0IDBWMiJ9XSxbInBhdGgiLHtkOiJNNSAxNWgxNCJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV19KTt2YXIgU1Isc3R0PXUoKCk9PntTUj1bWyJwYXRoIix7ZDoiTTE0IDJ2NmEyIDIgMCAwIDAgLjI0NS45Nmw1LjUxIDEwLjA4QTIgMiAwIDAgMSAxOCAyMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuNTEtMTAuMDhBMiAyIDAgMCAwIDEwIDhWMiJ9XSxbInBhdGgiLHtkOiJNNi40NTMgMTVoMTEuMDk0In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXX0pO3ZhciBNUixudHQ9dSgoKT0+e01SPVtbInBhdGgiLHtkOiJtMyA3IDUgNS01IDVWNyJ9XSxbInBhdGgiLHtkOiJtMjEgNy01IDUgNSA1VjcifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXX0pO3ZhciBDUixvdHQ9dSgoKT0+e0NSPVtbInBhdGgiLHtkOiJtMTcgMy01IDUtNS01aDEwIn1dLFsicGF0aCIse2Q6Im0xNyAyMS01LTUtNSA1aDEwIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XV19KTt2YXIgelIsbHR0PXUoKCk9Pnt6Uj1bWyJwYXRoIix7ZDoiTTEyIDVhMyAzIDAgMSAxIDMgM20tMy0zYTMgMyAwIDEgMC0zIDNtMy0zdjFNOSA4YTMgMyAwIDEgMCAzIDNNOSA4aDFtNSAwYTMgMyAwIDEgMS0zIDNtMy0zaC0xbS0yIDN2LTEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJjNC4yIDAgNy0xLjY2NyA3LTUtNC4yIDAtNyAxLjY2Ny03IDVaIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmMtNC4yIDAtNy0xLjY2Ny03LTUgNC4yIDAgNyAxLjY2NyA3IDVaIn1dXX0pO3ZhciBfUixjdHQ9dSgoKT0+e19SPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNi41QTQuNSA0LjUgMCAxIDEgNy41IDEyIDQuNSA0LjUgMCAxIDEgMTIgNy41YTQuNSA0LjUgMCAxIDEgNC41IDQuNSA0LjUgNC41IDAgMSAxLTQuNSA0LjUifV0sWyJwYXRoIix7ZDoiTTEyIDcuNVY5In1dLFsicGF0aCIse2Q6Ik03LjUgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYuNSAxMkgxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTYuNVYxNSJ9XSxbInBhdGgiLHtkOiJtOCA4IDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgOS44OCAxNiA4In1dLFsicGF0aCIse2Q6Im04IDE2IDEuODgtMS44OCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMTQuMTIgMTYgMTYifV1dfSk7dmFyIFRSLGR0dD11KCgpPT57VFI9W1sicGF0aCIse2Q6Ik0yIDEyaDYifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC02In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im01IDE1IDMtMy0zLTMifV1dfSk7dmFyIExSLHV0dD11KCgpPT57TFI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgRFIscHR0PXUoKCk9PntEUj1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMgMy0zLTMifV1dfSk7dmFyICRSLGZ0dD11KCgpPT57JFI9W1siY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwLjkgMTkuOEEyIDIgMCAwIDAgMjIgMThWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyaDUuMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDE3di0yIn1dXX0pO3ZhciBBUixodHQ9dSgoKT0+e0FSPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Im05IDEzIDIgMiA0LTQifV1dfSk7dmFyIEVSLG10dD11KCgpPT57RVI9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXX0pO3ZhciBJUixndHQ9dSgoKT0+e0lSPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDIwIn1dXX0pO3ZhciBQUixidHQ9dSgoKT0+e1BSPVtbInBhdGgiLHtkOiJNMTAgMTAuNSA4IDEzbDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMC41IDIgMi41LTIgMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMnoifV1dfSk7dmFyIFo1LHh0dD11KCgpPT57WjU9W1sicGF0aCIse2Q6Ik0xMC4zIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45OGEyIDIgMCAwIDEgMS42OS45bC42NiAxLjJBMiAyIDAgMCAwIDEyIDZoOGEyIDIgMCAwIDEgMiAydjMuMyJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBOUix2dHQ9dSgoKT0+e05SPVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIxIn1dXX0pO3ZhciBPUix5dHQ9dSgoKT0+e09SPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im0xNSAxMy0zIDMtMy0zIn1dXX0pO3ZhciBSUix3dHQ9dSgoKT0+e1JSPVtbInBhdGgiLHtkOiJNMTggMTlhNSA1IDAgMCAxLTUtNXY4In1dLFsicGF0aCIse2Q6Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NSJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV1dfSk7dmFyIEZSLGt0dD11KCgpPT57RlI9W1sicGF0aCIse2Q6Ik0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV19KTt2YXIgQlIsU3R0PXUoKCk9PntCUj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xNCAxM2gzIn1dLFsicGF0aCIse2Q6Ik03IDEzaDMifV1dfSk7dmFyIEhSLE10dD11KCgpPT57SFI9W1sicGF0aCIse2Q6Ik0yIDlWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0yIDEzaDEwIn1dLFsicGF0aCIse2Q6Im05IDE2IDMtMy0zLTMifV1dfSk7dmFyIHFSLEN0dD11KCgpPT57cVI9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsicGF0aCIse2Q6Ik04IDEwdjQifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTE2IDEwdjYifV1dfSk7dmFyIFZSLHp0dD11KCgpPT57VlI9W1sicGF0aCIse2Q6Ik0xMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEuMzYifV0sWyJwYXRoIix7ZDoiTTE5IDEydjYifV0sWyJwYXRoIix7ZDoiTTE5IDE0aDIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgalIsX3R0PXUoKCk9PntqUj1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTQiLHk6IjE3IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTAgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYyLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MiJ9XV19KTt2YXIgVVIsVHR0PXUoKCk9PntVUj1bWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXX0pO3ZhciBXUixMdHQ9dSgoKT0+e1dSPVtbInBhdGgiLHtkOiJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjE1IixyOiIxIn1dXX0pO3ZhciBHUixEdHQ9dSgoKT0+e0dSPVtbInBhdGgiLHtkOiJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIFlSLCR0dD11KCgpPT57WVI9W1sicGF0aCIse2Q6Ik0yIDcuNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTEuNSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtNSAxMC0zIDMgMyAzIn1dXX0pO3ZhciBRNSxBdHQ9dSgoKT0+e1E1PVtbInBhdGgiLHtkOiJNMiAxMS41VjVhMiAyIDAgMCAxIDItMmgzLjljLjcgMCAxLjMuMyAxLjcuOWwuOCAxLjJjLjQuNiAxIC45IDEuNy45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtOS41In1dLFsicGF0aCIse2Q6Ik0xMS4zNzggMTMuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV1dfSk7dmFyIEtSLEV0dD11KCgpPT57S1I9W1sicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgWlIsSXR0PXUoKCk9PntaUj1bWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjEyLjUiLHI6IjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMy4zIDE0LjMgMTUgMTYifV1dfSk7dmFyIFFSLFB0dD11KCgpPT57UVI9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE1djUifV1dfSk7dmFyIFhSLE50dD11KCgpPT57WFI9W1sicGF0aCIse2Q6Ik0xMC43IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NC4xIn1dLFsicGF0aCIse2Q6Im0yMSAyMS0xLjktMS45In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV1dfSk7dmFyIEpSLE90dD11KCgpPT57SlI9W1sicGF0aCIse2Q6Ik0yIDkuMzVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoNyJ9XSxbInBhdGgiLHtkOiJtOCAxNiAzLTMtMy0zIn1dXX0pO3ZhciBlRixSdHQ9dSgoKT0+e2VGPVtbInBhdGgiLHtkOiJNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydi41In1dLFsicGF0aCIse2Q6Ik0xMiAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTEyIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoibTIyIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XV19KTt2YXIgdEYsRnR0PXUoKCk9Pnt0Rj1bWyJwYXRoIix7ZDoiTTIwIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0yLjVhMSAxIDAgMCAxLS44LS40bC0uOS0xLjJBMSAxIDAgMCAwIDE1IDNoLTJhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAyMWExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTIuOWExIDEgMCAwIDEtLjg4LS41NWwtLjQyLS44NWExIDEgMCAwIDAtLjkyLS42SDEzYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMyA1YTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMyAzdjEzYTIgMiAwIDAgMCAyIDJoMyJ9XV19KTt2YXIgckYsQnR0PXUoKCk9PntyRj1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJtOSAxMyAzLTMgMyAzIn1dXX0pO3ZhciBhRixIdHQ9dSgoKT0+e2FGPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTAuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE0LjUgMTAuNS01IDUifV1dfSk7dmFyIGlGLHF0dD11KCgpPT57aUY9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV1dfSk7dmFyIHNGLFZ0dD11KCgpPT57c0Y9W1sicGF0aCIse2Q6Ik0yMCA1YTIgMiAwIDAgMSAyIDJ2N2EyIDIgMCAwIDEtMiAySDlhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMi41YTEuNSAxLjUgMCAwIDEgMS4yLjZsLjYuOGExLjUgMS41IDAgMCAwIDEuMi42eiJ9XSxbInBhdGgiLHtkOiJNMyA4LjI2OGEyIDIgMCAwIDAtMSAxLjczOFYxOWEyIDIgMCAwIDAgMiAyaDExYTIgMiAwIDAgMCAxLjczMi0xIn1dXX0pO3ZhciBuRixqdHQ9dSgoKT0+e25GPVtbInBhdGgiLHtkOiJNNCAxNnYtMi4zOEM0IDExLjUgMi45NyAxMC41IDMgOGMuMDMtMi43MiAxLjQ5LTYgNC41LTZDOS4zNyAyIDEwIDMuOCAxMCA1LjVjMCAzLjExLTIgNS42Ni0yIDguNjhWMTZhMiAyIDAgMSAxLTQgMFoifV0sWyJwYXRoIix7ZDoiTTIwIDIwdi0yLjM4YzAtMi4xMiAxLjAzLTMuMTIgMS01LjYyLS4wMy0yLjcyLTEuNDktNi00LjUtNkMxNC42MyA2IDE0IDcuOCAxNCA5LjVjMCAzLjExIDIgNS42NiAyIDguNjhWMjBhMiAyIDAgMSAwIDQgMFoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDQifV0sWyJwYXRoIix7ZDoiTTQgMTNoNCJ9XV19KTt2YXIgb0YsVXR0PXUoKCk9PntvRj1bWyJwYXRoIix7ZDoiTTEyIDEySDVhMiAyIDAgMCAwLTIgMnY1In1dLFsicGF0aCIse2Q6Ik0xNSAxOWg3In1dLFsicGF0aCIse2Q6Ik0xNiAxOVYyIn1dLFsicGF0aCIse2Q6Ik02IDEyVjdhMiAyIDAgMCAxIDItMmgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDMuODI4IDMuODI4QTIgMiAwIDAgMSAxNiAxMC44MjgifV0sWyJwYXRoIix7ZDoiTTcgMTloNCJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgbEYsV3R0PXUoKCk9PntsRj1bWyJwYXRoIix7ZDoiTTQgMTRoNiJ9XSxbInBhdGgiLHtkOiJNNCAyaDEwIn1dLFsicmVjdCIse3g6IjQiLHk6IjE4Iix3aWR0aDoiMTYiLGhlaWdodDoiNCIscng6IjEifV0sWyJyZWN0Iix7eDoiNCIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBjRixHdHQ9dSgoKT0+e2NGPVtbInBhdGgiLHtkOiJtMTUgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyIn1dXX0pO3ZhciBkRixZdHQ9dSgoKT0+e2RGPVtbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMiIseTE6IjE4Iix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiMiIseTI6IjIyIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjE4Iix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciB1RixLdHQ9dSgoKT0+e3VGPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dfSk7dmFyIHBGLFp0dD11KCgpPT57cEY9W1sicGF0aCIse2Q6Ik0xNCAxM2gyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDAgNCAwdi02Ljk5OGEyIDIgMCAwIDAtLjU5LTEuNDJMMTggNSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgxMyJ9XSxbInBhdGgiLHtkOiJNMyA5aDExIn1dXX0pO3ZhciBmRixRdHQ9dSgoKT0+e2ZGPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI4Iix4OiI3Iix5OiI4IixyeDoiMSJ9XV19KTt2YXIgaEYsWHR0PXUoKCk9PntoRj1bWyJwYXRoIix7ZDoiTTEzLjM1NCAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwxLjIxOC0xLjM0OCJ9XSxbInBhdGgiLHtkOiJNMTYgNmg2In1dLFsicGF0aCIse2Q6Ik0xOSAzdjYifV1dfSk7dmFyIFg1LEp0dD11KCgpPT57WDU9W1sicGF0aCIse2Q6Ik0xMi41MzEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0djZhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFsLjQyNy0uNDczIn1dLFsicGF0aCIse2Q6Im0xNi41IDMuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIxLjUgMy41LTUgNSJ9XV19KTt2YXIgSjUsZXJ0PXUoKCk9PntKNT1bWyJwYXRoIix7ZDoiTTEwIDIwYTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxTDIxLjc0IDQuNjdBMSAxIDAgMCAwIDIxIDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHoifV1dfSk7dmFyIG1GLHRydD11KCgpPT57bUY9W1sicGF0aCIse2Q6Ik0yIDd2MTAifV0sWyJwYXRoIix7ZDoiTTYgNXYxNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTgiLHg6IjEwIix5OiIzIixyeDoiMiJ9XV19KTt2YXIgZ0YscnJ0PXUoKCk9PntnRj1bWyJwYXRoIix7ZDoiTTIgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTgiLHg6IjYiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAzdjE4In1dXX0pO3ZhciBiRixhcnQ9dSgoKT0+e2JGPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTkgMjFoMSJ9XV19KTt2YXIgeEYsaXJ0PXUoKCk9Pnt4Rj1bWyJwYXRoIix7ZDoiTTcgMmgxMCJ9XSxbInBhdGgiLHtkOiJNNSA2aDE0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dXX0pO3ZhciB2RixzcnQ9dSgoKT0+e3ZGPVtbInBhdGgiLHtkOiJNMyAyaDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV1dfSk7dmFyIHlGLG5ydD11KCgpPT57eUY9W1sibGluZSIse3gxOiI2Iix4MjoiMTAiLHkxOiIxMSIseTI6IjExIn1dLFsibGluZSIse3gxOiI4Iix4MjoiOCIseTE6IjkiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTguMDEiLHkxOiIxMCIseTI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNy4zMiA1SDYuNjhhNCA0IDAgMCAwLTMuOTc4IDMuNTljLS4wMDYuMDUyLS4wMS4xMDEtLjAxNy4xNTJDMi42MDQgOS40MTYgMiAxNC40NTYgMiAxNmEzIDMgMCAwIDAgMyAzYzEgMCAxLjUtLjUgMi0xbDEuNDE0LTEuNDE0QTIgMiAwIDAgMSA5LjgyOCAxNmg0LjM0NGEyIDIgMCAwIDEgMS40MTQuNTg2TDE3IDE4Yy41LjUgMSAxIDIgMWEzIDMgMCAwIDAgMy0zYzAtMS41NDUtLjYwNC02LjU4NC0uNjg1LTcuMjU4LS4wMDctLjA1LS4wMTEtLjEtLjAxNy0uMTUxQTQgNCAwIDAgMCAxNy4zMiA1eiJ9XV19KTt2YXIgd0Ysb3J0PXUoKCk9Pnt3Rj1bWyJwYXRoIix7ZDoiTTExLjE0NiAxNS44NTRhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDggMGwxLjU2IDEuNTZBMiAyIDAgMCAxIDE1IDE4LjgyOFYyMWExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF2LTIuMTcyYTIgMiAwIDAgMSAuNTg2LTEuNDE0eiJ9XSxbInBhdGgiLHtkOiJNMTguODI4IDE1YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC0xLjU2LTEuNTZhMS4yMDcgMS4yMDcgMCAwIDEgMC0xLjcwOGwxLjU2LTEuNTZBMiAyIDAgMCAxIDE4LjgyOCA5SDIxYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNNi41ODYgMTQuNDE0QTIgMiAwIDAgMSA1LjE3MiAxNUgzYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4eiJ9XSxbInBhdGgiLHtkOiJNOSAzYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjIuMTcyYTIgMiAwIDAgMS0uNTg2IDEuNDE0bC0xLjU2IDEuNTZhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDggMGwtMS41Ni0xLjU2QTIgMiAwIDAgMSA5IDUuMTcyeiJ9XV19KTt2YXIga0YsbHJ0PXUoKCk9PntrRj1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiMTAiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjEzIix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTguMDEiLHkxOiIxMSIseTI6IjExIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIFNGLGNydD11KCgpPT57U0Y9W1sicGF0aCIse2Q6Im0xMiAxNCA0LTQifV0sWyJwYXRoIix7ZDoiTTMuMzQgMTlhMTAgMTAgMCAxIDEgMTcuMzIgMCJ9XV19KTt2YXIgTUYsZHJ0PXUoKCk9PntNRj1bWyJwYXRoIix7ZDoibTE0IDEzLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNsOC4zODQtOC4zODEifV0sWyJwYXRoIix7ZDoibTE2IDE2IDYtNiJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxMC41LTgtOCJ9XSxbInBhdGgiLHtkOiJtOCA4IDYtNiJ9XSxbInBhdGgiLHtkOiJtOC41IDcuNSA4IDgifV1dfSk7dmFyIENGLHVydD11KCgpPT57Q0Y9W1sicGF0aCIse2Q6Ik0xMC41IDMgOCA5bDQgMTMgNC0xMy0yLjUtNiJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42LjhsMyA0YTIgMiAwIDAgMSAuMDEzIDIuMzgybC03Ljk5IDEwLjk4NmEyIDIgMCAwIDEtMy4yNDcgMGwtNy45OS0xMC45ODZBMiAyIDAgMCAxIDIuNCA3LjhsMi45OTgtMy45OTdBMiAyIDAgMCAxIDcgM3oifV0sWyJwYXRoIix7ZDoiTTIgOWgyMCJ9XV19KTt2YXIgekYscHJ0PXUoKCk9Pnt6Rj1bWyJwYXRoIix7ZDoiTTExLjUgMjFhNy41IDcuNSAwIDEgMSA3LjM1LTkifV0sWyJwYXRoIix7ZDoiTTEzIDEyVjMifV0sWyJwYXRoIix7ZDoiTTQgMjFoMTYifV0sWyJwYXRoIix7ZDoiTTkgMTJWMyJ9XV19KTt2YXIgX0YsZnJ0PXUoKCk9PntfRj1bWyJwYXRoIix7ZDoiTTkgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDJhOCA4IDAgMCAwLTggOHYxMmwzLTMgMi41IDIuNUwxMiAxOWwyLjUgMi41TDE3IDE5bDMgM1YxMGE4IDggMCAwIDAtOC04eiJ9XV19KTt2YXIgVEYsaHJ0PXUoKCk9PntURj1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTIwIDExdjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTgifV0sWyJwYXRoIix7ZDoiTTcuNSA3YTEgMSAwIDAgMSAwLTVBNC44IDggMCAwIDEgMTIgN2E0LjggOCAwIDAgMSA0LjUtNSAxIDEgMCAwIDEgMCA1In1dLFsicmVjdCIse3g6IjMiLHk6IjciLHdpZHRoOiIxOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgTEYsbXJ0PXUoKCk9PntMRj1bWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOVYzIn1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBERixncnQ9dSgoKT0+e0RGPVtbInBhdGgiLHtkOiJNNiAzdjEyIn1dLFsicGF0aCIse2Q6Ik0xOCA5YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoifV0sWyJwYXRoIix7ZDoiTTYgMjFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiJ9XSxbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5In1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XV19KTt2YXIgJEYsYnJ0PXUoKCk9PnskRj1bWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOVYzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIGU4LHhydD11KCgpPT57ZTg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIyMSIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIEFGLHZydD11KCgpPT57QUY9W1sicGF0aCIse2Q6Ik0xMiAzdjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NiJ9XV19KTt2YXIgRUYseXJ0PXUoKCk9PntFRj1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOEg3YTIgMiAwIDAgMS0yLTJWOSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMtMyAzIn1dXX0pO3ZhciBJRix3cnQ9dSgoKT0+e0lGPVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik0xMSAxOEg4YTIgMiAwIDAgMS0yLTJWOSJ9XV19KTt2YXIgUEYsa3J0PXUoKCk9PntQRj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE4IDl2MmMwIC42LS40IDEtMSAxSDdjLS42IDAtMS0uNC0xLTFWOSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2MyJ9XV19KTt2YXIgTkYsU3J0PXUoKCk9PntORj1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXY2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE1LjdBOSA5IDAgMCAwIDE5IDkifV1dfSk7dmFyIE9GLE1ydD11KCgpPT57T0Y9W1sicGF0aCIse2Q6Ik0xMiA2aDRhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik02IDEydjkifV0sWyJwYXRoIix7ZDoiTTkgMyAzIDkifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgUkYsQ3J0PXUoKCk9PntSRj1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiAyMVY5YTkgOSAwIDAgMCA5IDkifV1dfSk7dmFyIEZGLHpydD11KCgpPT57RkY9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2MTIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnY3In1dXX0pO3ZhciBCRixfcnQ9dSgoKT0+e0JGPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiA5djEyIn1dLFsicGF0aCIse2Q6Im0yMSAzLTYgNiJ9XSxbInBhdGgiLHtkOiJtMjEgOS02LTYifV0sWyJwYXRoIix7ZDoiTTE4IDExLjVWMTUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgSEYsVHJ0PXUoKCk9PntIRj1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMiAxOGgtNiJ9XV19KTt2YXIgcUYsTHJ0PXUoKCk9PntxRj1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgOXYxMiJ9XSxbInBhdGgiLHtkOiJNMTMgNmgzYTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV1dfSk7dmFyIFZGLERydD11KCgpPT57VkY9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE4IDZWNSJ9XSxbInBhdGgiLHtkOiJNMTggMTF2LTEifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiOSIseTI6IjIxIn1dXX0pO3ZhciBqRiwkcnQ9dSgoKT0+e2pGPVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsibGluZSIse3gxOiI2Iix4MjoiNiIseTE6IjkiLHkyOiIyMSJ9XV19KTt2YXIgVUYsQXJ0PXUoKCk9PntVRj1bWyJwYXRoIix7ZDoiTTUuMTE2IDQuMTA0QTEgMSAwIDAgMSA2LjExIDNoMTEuNzhhMSAxIDAgMCAxIC45OTQgMS4xMDVMMTcuMTkgMjAuMjFBMiAyIDAgMCAxIDE1LjIgMjJIOC44YTIgMiAwIDAgMS0yLTEuNzl6In1dLFsicGF0aCIse2Q6Ik02IDEyYTUgNSAwIDAgMSA2IDAgNSA1IDAgMCAwIDYgMCJ9XV19KTt2YXIgV0YsRXJ0PXUoKCk9PntXRj1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE1IixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTUiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE0IDE1YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDEzIDUgN2MuNy0xLjMgMS40LTIgMy0yIn1dLFsicGF0aCIse2Q6Ik0yMS41IDEzIDE5IDdjLS43LTEuMy0xLjUtMi0zLTIifV1dfSk7dmFyIEdGLElydD11KCgpPT57R0Y9W1sicGF0aCIse2Q6Ik0xNS42ODYgMTVBMTQuNSAxNC41IDAgMCAxIDEyIDIyYTE0LjUgMTQuNSAwIDAgMSAwLTIwIDEwIDEwIDAgMSAwIDkuNTQyIDEzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDguNSJ9XSxbInBhdGgiLHtkOiJNMjAgNlY0YTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNiIscng6IjEifV1dfSk7dmFyIFlGLFBydD11KCgpPT57WUY9W1sicGF0aCIse2Q6Ik0xMC4xMTQgNC40NjJBMTQuNSAxNC41IDAgMCAxIDEyIDJhMTAgMTAgMCAwIDEgOS4zMTMgMTMuNjQzIn1dLFsicGF0aCIse2Q6Ik0xNS41NTcgMTUuNTU2QTE0LjUgMTQuNSAwIDAgMSAxMiAyMiAxMCAxMCAwIDAgMSA0LjkyOSA0LjkyOSJ9XSxbInBhdGgiLHtkOiJNMTUuODkyIDEwLjIzNEExNC41IDE0LjUgMCAwIDAgMTIgMmExMCAxMCAwIDAgMC0zLjY0My42ODcifV0sWyJwYXRoIix7ZDoiTTE3LjY1NiAxMkgyMiJ9XSxbInBhdGgiLHtkOiJNMTkuMDcxIDE5LjA3MUExMCAxMCAwIDAgMSAxMiAyMiAxNC41IDE0LjUgMCAwIDEgOC40NCA4LjQ1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDEwIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIEtGLE5ydD11KCgpPT57S0Y9W1sicGF0aCIse2Q6Im0xNiAzIDUgNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMEExMCAxMCAwIDEgMSAxMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCA0LTEwIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XV19KTt2YXIgWkYsT3J0PXUoKCk9PntaRj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV1dfSk7dmFyIFFGLFJydD11KCgpPT57UUY9W1sicGF0aCIse2Q6Ik0xMiAxM1YybDggNC04IDQifV0sWyJwYXRoIix7ZDoiTTIwLjU2MSAxMC4yMjJhOSA5IDAgMSAxLTEyLjU1LTUuMjkifV0sWyJwYXRoIix7ZDoiTTguMDAyIDkuOTk3YTUgNSAwIDEgMCA4LjkgMi4wMiJ9XV19KTt2YXIgWEYsRnJ0PXUoKCk9PntYRj1bWyJwYXRoIix7ZDoiTTIgMTdoMThhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJIMiJ9XSxbInBhdGgiLHtkOiJNMiAyMVYzIn1dLFsicGF0aCIse2Q6Ik03IDE3djNhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTMifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTEiLHI6IjIifV1dfSk7dmFyIEpGLEJydD11KCgpPT57SkY9W1sicGF0aCIse2Q6Ik0yMS40MiAxMC45MjJhMSAxIDAgMCAwLS4wMTktMS44MzhMMTIuODMgNS4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA5LjA4YTEgMSAwIDAgMCAwIDEuODMybDguNTcgMy45MDhhMiAyIDAgMCAwIDEuNjYgMHoifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTYgMTIuNVYxNmE2IDMgMCAwIDAgMTIgMHYtMy41In1dXX0pO3ZhciBlQixIcnQ9dSgoKT0+e2VCPVtbInBhdGgiLHtkOiJNMjIgNVYybC01Ljg5IDUuODkifV0sWyJjaXJjbGUiLHtjeDoiMTYuNiIsY3k6IjE1Ljg5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjguMTEiLGN5OiI3LjQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTIuMzUiLGN5OiIxMS42NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMy45MSIsY3k6IjUuODUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTguMTUiLGN5OiIxMC4wOSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2LjU2IixjeToiMTMuMiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMC44IixjeToiMTcuNDQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIzIn1dXX0pO3ZhciB0OCxxcnQ9dSgoKT0+e3Q4PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XV19KTt2YXIgcjgsVnJ0PXUoKCk9PntyOD1bWyJwYXRoIix7ZDoiTTEyIDN2MTdhMSAxIDAgMCAxLTEgMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMSAxSDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE5IDIydi02In1dXX0pO3ZhciBhOCxqcnQ9dSgoKT0+e2E4PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNSA1In1dLFsicGF0aCIse2Q6Im0xNiAyMSA1LTUifV1dfSk7dmFyIGk4LFVydD11KCgpPT57aTg9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIHRCLFdydD11KCgpPT57dEI9W1sicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgajQsR3J0PXUoKCk9PntqND1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dfSk7dmFyIHJCLFlydD11KCgpPT57ckI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxNSIscjoiMSJ9XV19KTt2YXIgYUIsS3J0PXUoKCk9PnthQj1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE5IixyOiIxIn1dXX0pO3ZhciBpQixacnQ9dSgoKT0+e2lCPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgc0IsUXJ0PXUoKCk9PntzQj1bWyJwYXRoIix7ZDoiTTMgN1Y1YzAtMS4xLjktMiAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYzEuMSAwIDIgLjkgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJjMCAxLjEtLjkgMi0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWMtMS4xIDAtMi0uOS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiNyIseToiNyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiMTAiLHk6IjEyIixyeDoiMSJ9XV19KTt2YXIgbkIsWHJ0PXUoKCk9PntuQj1bWyJwYXRoIix7ZDoibTExLjkgMTIuMSA0LjUxNC00LjUxNCJ9XSxbInBhdGgiLHtkOiJNMjAuMSAyLjNhMSAxIDAgMCAwLTEuNCAwbC0xLjExNCAxLjExNEEyIDIgMCAwIDAgMTcgNC44Mjh2MS4zNDRhMiAyIDAgMCAxLS41ODYgMS40MTRBMiAyIDAgMCAxIDE3LjgyOCA3aDEuMzQ0YTIgMiAwIDAgMCAxLjQxNC0uNTg2TDIxLjcgNS4zYTEgMSAwIDAgMCAwLTEuNHoifV0sWyJwYXRoIix7ZDoibTYgMTYgMiAyIn1dLFsicGF0aCIse2Q6Ik04LjIzIDkuODVBMyAzIDAgMCAxIDExIDhhNSA1IDAgMCAxIDUgNSAzIDMgMCAwIDEtMS44NSAyLjc3bC0uOTIuMzhBMiAyIDAgMCAwIDEyIDE4YTQgNCAwIDAgMS00IDQgNiA2IDAgMCAxLTYtNiA0IDQgMCAwIDEgNC00IDIgMiAwIDAgMCAxLjg1LTEuMjN6In1dXX0pO3ZhciBvQixKcnQ9dSgoKT0+e29CPVtbInBhdGgiLHtkOiJNMTMuMTQ0IDIxLjE0NEE3LjI3NCAxMC40NDUgNDUgMSAwIDIuODU2IDEwLjg1NiJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ0IDIxLjE0NEE3LjI3NCA0LjM2NSA0NSAwIDAgMi44NTYgMTAuODU2YTcuMjc0IDQuMzY1IDQ1IDAgMCAxMC4yODggMTAuMjg4In1dLFsicGF0aCIse2Q6Ik0xNi41NjUgMTAuNDM1IDE4LjYgOC40YTIuNTAxIDIuNTAxIDAgMSAwIDEuNjUtNC42NSAyLjUgMi41IDAgMSAwLTQuNjYgMS42NmwtMi4wMjQgMi4wMjUifV0sWyJwYXRoIix7ZDoibTguNSAxNi41LTEtMSJ9XV19KTt2YXIgbEIsZWF0PXUoKCk9PntsQj1bWyJwYXRoIix7ZDoiTTEyIDE2SDRhMiAyIDAgMSAxIDAtNGgxNmEyIDIgMCAxIDEgMCA0aC00LjI1In1dLFsicGF0aCIse2Q6Ik01IDEyYTIgMiAwIDAgMS0yLTIgOSA3IDAgMCAxIDE4IDAgMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNSAxNmEyIDIgMCAwIDAtMiAyIDMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtMyAyIDIgMCAwIDAtMi0ycTAgMCAwIDAifV0sWyJwYXRoIix7ZDoibTYuNjcgMTIgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiJ9XV19KTt2YXIgY0IsdGF0PXUoKCk9PntjQj1bWyJwYXRoIix7ZDoibTE1IDEyLTkuMzczIDkuMzczYTEgMSAwIDAgMS0zLjAwMS0zTDEyIDkifV0sWyJwYXRoIix7ZDoibTE4IDE1IDQtNCJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxMS41LTEuOTE0LTEuOTE0QTIgMiAwIDAgMSAxOSA4LjE3MnYtLjM0NGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMS42NTctMS42NTdBNiA2IDAgMCAwIDEyLjUxNiAzSDlsMS4yNDMgMS4yNDNBNiA2IDAgMCAxIDEyIDguNDg1VjEwbDIgMmgxLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2TDE4LjUgMTQuNSJ9XV19KTt2YXIgZEIscmF0PXUoKCk9PntkQj1bWyJwYXRoIix7ZDoiTTExIDE1aDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE3In1dLFsicGF0aCIse2Q6Im03IDIxIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkifV0sWyJwYXRoIix7ZDoibTIgMTYgNiA2In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiOSIscjoiMi45In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI1IixyOiIzIn1dXX0pO3ZhciB1QixhYXQ9dSgoKT0+e3VCPVtbInBhdGgiLHtkOiJNMTIuMDM1IDE3LjAxMmEzIDMgMCAwIDAtMy0zbC0uMzExLS4wMDJhLjcyLjcyIDAgMCAxLS41MDUtMS4yMjlsMS4xOTUtMS4xOTVBMiAyIDAgMCAxIDEwLjgyOCAxMUgxMmEyIDIgMCAwIDAgMC00SDkuMjQzYTMgMyAwIDAgMC0yLjEyMi44NzlsLTIuNzA3IDIuNzA3QTQuODMgNC44MyAwIDAgMCAzIDE0YTggOCAwIDAgMCA4IDhoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHYyYTIgMiAwIDEgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjg4OCA5LjY2MkEyIDIgMCAwIDAgMTcgOFY1QTIgMiAwIDEgMCAxMyA1In1dLFsicGF0aCIse2Q6Ik05IDVBMiAyIDAgMSAwIDUgNVYxMCJ9XSxbInBhdGgiLHtkOiJNOSA3VjRBMiAyIDAgMSAxIDEzIDRWNy4yNjgifV1dfSk7dmFyIHM4LGlhdD11KCgpPT57czg9W1sicGF0aCIse2Q6Ik0xOCAxMS41VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTAgOS45VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjUifV0sWyJwYXRoIix7ZDoiTTYgMTRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtNGE4IDggMCAwIDEtOC04IDIgMiAwIDEgMSA0IDAifV1dfSk7dmFyIHBCLHNhdD11KCgpPT57cEI9W1sicGF0aCIse2Q6Ik0xMSAxNGgyYTIgMiAwIDAgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNiJ9XSxbInBhdGgiLHtkOiJtMTQuNDUgMTMuMzkgNS4wNS00LjY5NEMyMC4xOTYgOCAyMSA2Ljg1IDIxIDUuNzVhMi43NSAyLjc1IDAgMCAwLTQuNzk3LTEuODM3LjI3Ni4yNzYgMCAwIDEtLjQwNiAwQTIuNzUgMi43NSAwIDAgMCAxMSA1Ljc1YzAgMS4yLjgwMiAyLjI0OCAxLjUgMi45NDZMMTYgMTEuOTUifV0sWyJwYXRoIix7ZDoibTIgMTUgNiA2In1dLFsicGF0aCIse2Q6Im03IDIwIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTEgMSAwIDAgMC0yLjc1LTIuOTEifV1dfSk7dmFyIG44LG5hdD11KCgpPT57bjg9W1sicGF0aCIse2Q6Ik0xMSAxMmgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNCJ9XSxbInBhdGgiLHtkOiJtNyAxOCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45In1dLFsicGF0aCIse2Q6Im0yIDEzIDYgNiJ9XV19KTt2YXIgZkIsb2F0PXUoKCk9PntmQj1bWyJwYXRoIix7ZDoiTTE4IDEyLjVWMTBhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTFWOWEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTEwIDEwLjVWNWEyIDIgMCAxIDAtNCAwdjkifV0sWyJwYXRoIix7ZDoibTcgMTUtMS43Ni0xLjc2YTIgMiAwIDAgMC0yLjgzIDIuODJsMy42IDMuNkM3LjUgMjEuMTQgOS4yIDIyIDEyIDIyaDJhOCA4IDAgMCAwIDgtOFY3YTIgMiAwIDEgMC00IDB2NSJ9XV19KTt2YXIgaEIsbGF0PXUoKCk9PntoQj1bWyJwYXRoIix7ZDoiTTEyIDNWMiJ9XSxbInBhdGgiLHtkOiJtMTUuNCAxNy40IDMuMi0yLjhhMiAyIDAgMSAxIDIuOCAyLjlsLTMuNiAzLjNjLS43LjgtMS43IDEuMi0yLjggMS4yaC00Yy0xLjEgMC0yLjEtLjQtMi44LTEuMmwtMS4zMDItMS40NjRBMSAxIDAgMCAwIDYuMTUxIDE5SDUifV0sWyJwYXRoIix7ZDoiTTIgMTRoMTJhMiAyIDAgMCAxIDAgNGgtMiJ9XSxbInBhdGgiLHtkOiJNNCAxMGgxNiJ9XSxbInBhdGgiLHtkOiJNNSAxMGE3IDcgMCAwIDEgMTQgMCJ9XSxbInBhdGgiLHtkOiJNNSAxNHY2YTEgMSAwIDAgMS0xIDFIMiJ9XV19KTt2YXIgbUIsY2F0PXUoKCk9PnttQj1bWyJwYXRoIix7ZDoiTTE4IDExVjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMFY0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMC41VjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTE4IDhhMiAyIDAgMSAxIDQgMHY2YTggOCAwIDAgMS04IDhoLTJjLTIuOCAwLTQuNS0uODYtNS45OS0yLjM0bC0zLjYtMy42YTIgMiAwIDAgMSAyLjgzLTIuODJMNyAxNSJ9XV19KTt2YXIgZ0IsZGF0PXUoKCk9PntnQj1bWyJwYXRoIix7ZDoiTTIuMDQ4IDE4LjU2NkEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45NTItMi40MzRsLTItOUEyIDIgMCAwIDAgMTggOEg2YTIgMiAwIDAgMC0xLjk1MiAxLjU2NnoifV0sWyJwYXRoIix7ZDoiTTggMTFWNmE0IDQgMCAwIDEgOCAwdjUifV1dfSk7dmFyIGJCLHVhdD11KCgpPT57YkI9W1sicGF0aCIse2Q6Im0xMSAxNyAyIDJhMSAxIDAgMSAwIDMtMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTQgMi41IDIuNWExIDEgMCAxIDAgMy0zbC0zLjg4LTMuODhhMyAzIDAgMCAwLTQuMjQgMGwtLjg4Ljg4YTEgMSAwIDEgMS0zLTNsMi44MS0yLjgxYTUuNzkgNS43OSAwIDAgMSA3LjA2LS44N2wuNDcuMjhhMiAyIDAgMCAwIDEuNDIuMjVMMjEgNCJ9XSxbInBhdGgiLHtkOiJtMjEgMyAxIDExaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDMgMiAxNGw2LjUgNi41YTEgMSAwIDEgMCAzLTMifV0sWyJwYXRoIix7ZDoiTTMgNGg4In1dXX0pO3ZhciB4QixwYXQ9dSgoKT0+e3hCPVtbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicGF0aCIse2Q6Im0xNiA2LTQgNC00LTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV19KTt2YXIgdkIsZmF0PXUoKCk9Pnt2Qj1bWyJwYXRoIix7ZDoibTE2IDYtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOGguMDEifV1dfSk7dmFyIHlCLGhhdD11KCgpPT57eUI9W1sicGF0aCIse2Q6Ik0xMCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIuMjEyIDExLjU3N2EyIDIgMCAwIDAtLjIxMi44OTZWMThhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01LjUyN2EyIDIgMCAwIDAtLjIxMi0uODk2TDE4LjU1IDUuMTFBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiJ9XSxbInBhdGgiLHtkOiJNMjEuOTQ2IDEyLjAxM0gyLjA1NCJ9XSxbInBhdGgiLHtkOiJNNiAxNmguMDEifV1dfSk7dmFyIHdCLG1hdD11KCgpPT57d0I9W1sicGF0aCIse2Q6Ik0xMCAxMFY1YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE0IDZhNiA2IDAgMCAxIDYgNnYzIn1dLFsicGF0aCIse2Q6Ik00IDE1di0zYTYgNiAwIDAgMSA2LTYifV0sWyJyZWN0Iix7eDoiMiIseToiMTUiLHdpZHRoOiIyMCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIga0IsZ2F0PXUoKCk9PntrQj1bWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxMCIseDI6IjgiLHkxOiIzIix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTQiLHkxOiIzIix5MjoiMjEifV1dfSk7dmFyIFNCLGJhdD11KCgpPT57U0I9W1sicGF0aCIse2Q6Ik0xNCAxOGEyIDIgMCAwIDAtNCAwIn1dLFsicGF0aCIse2Q6Im0xOSAxMS0yLjExLTYuNjU3YTIgMiAwIDAgMC0yLjc1Mi0xLjE0OGwtMS4yNzYuNjFBMiAyIDAgMCAxIDEyIDRIOC41YTIgMiAwIDAgMC0xLjkyNSAxLjQ1Nkw1IDExIn1dLFsicGF0aCIse2Q6Ik0yIDExaDIwIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBNQix4YXQ9dSgoKT0+e01CPVtbInBhdGgiLHtkOiJtNS4yIDYuMiAxLjQgMS40In1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEzaDIifV0sWyJwYXRoIix7ZDoibTE3LjQgNy42IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoiTTIyIDE3SDIifV0sWyJwYXRoIix7ZDoiTTIyIDIxSDIifV0sWyJwYXRoIix7ZDoiTTE2IDEzYTQgNCAwIDAgMC04IDAifV0sWyJwYXRoIix7ZDoiTTEyIDVWMi41In1dXX0pO3ZhciBDQix2YXQ9dSgoKT0+e0NCPVtbInBhdGgiLHtkOiJNMTAgMTJINiJ9XSxbInBhdGgiLHtkOiJNMTAgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eiJ9XSxbInBhdGgiLHtkOiJNNiAxNVY5In1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dfSk7dmFyIHpCLHlhdD11KCgpPT57ekI9W1sicGF0aCIse2Q6Ik0yMiA5YTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWgxbDIgMmgxMmwyLTJoMWExIDEgMCAwIDAgMS0xWiJ9XSxbInBhdGgiLHtkOiJNNy41IDEyaDkifV1dfSk7dmFyIF9CLHdhdD11KCgpPT57X0I9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTRjMC00IDQtMyA0LTYgMC0xLjUtMi0yLjUtNC0xIn1dXX0pO3ZhciBUQixrYXQ9dSgoKT0+e1RCPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTAuNWMxLjctMSAzLjUgMCAzLjUgMS41YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE3IDE3LjVjMiAxLjUgNCAuMyA0LTEuNWEyIDIgMCAwIDAtMi0yIn1dXX0pO3ZhciBMQixTYXQ9dSgoKT0+e0xCPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoibTE3IDEyIDMtMnY4In1dXX0pO3ZhciBEQixNYXQ9dSgoKT0+e0RCPVtbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTB2M2ExIDEgMCAwIDAgMSAxaDMifV0sWyJwYXRoIix7ZDoiTTIxIDEwdjgifV0sWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dXX0pO3ZhciAkQixDYXQ9dSgoKT0+eyRCPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3IDEzdi0zaDQifV0sWyJwYXRoIix7ZDoiTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNyJ9XV19KTt2YXIgQUIsemF0PXUoKCk9PntBQj1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwYy0yIDItMyAzLjUtMyA2In1dXX0pO3ZhciBFQixfYXQ9dSgoKT0+e0VCPVtbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNNiAyMFY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMFY0In1dXX0pO3ZhciBJQixUYXQ9dSgoKT0+e0lCPVtbInBhdGgiLHtkOiJNMjEgMTRoLTEuMzQzIn1dLFsicGF0aCIse2Q6Ik05LjEyOCAzLjQ3QTkgOSAwIDAgMSAyMSAxMnYzLjM0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgMjAuNDE0QTIgMiAwIDAgMSAxOSAyMWgtMWEyIDIgMCAwIDEtMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAyLjYzNi02LjM2NCJ9XV19KTt2YXIgUEIsTGF0PXUoKCk9PntQQj1bWyJwYXRoIix7ZDoiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDE4IDB2N2EyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzIn1dXX0pO3ZhciBOQixEYXQ9dSgoKT0+e05CPVtbInBhdGgiLHtkOiJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUifV1dfSk7dmFyIE9CLCRhdD11KCgpPT57T0I9W1sicGF0aCIse2Q6Ik0xMi40MDkgNS44MjRjLS43MDIuNzkyLTEuMTUgMS40OTYtMS40MTUgMi4xNjZsMi4xNTMgMi4xNTZhLjUuNSAwIDAgMSAwIC43MDdsLTIuMjkzIDIuMjkzYS41LjUgMCAwIDAgMCAuNzA3TDEyIDE1In1dLFsicGF0aCIse2Q6Ik0xMy41MDggMjAuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc3LjYuNiAwIDAgMCAuODE4LjAwMUE1LjUgNS41IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjV6In1dXX0pO3ZhciBSQixBYXQ9dSgoKT0+e1JCPVtbInBhdGgiLHtkOiJNMTkuNDE0IDE0LjQxNEMyMSAxMi44MjggMjIgMTEuNSAyMiA5LjVhNS41IDUuNSAwIDAgMC05LjU5MS0zLjY3Ni42LjYgMCAwIDEtLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyIDkuNWMwIDIuMyAxLjUgNCAzIDUuNWw1LjUzNSA1LjM2MmEyIDIgMCAwIDAgMi44NzkuMDUyIDIuMTIgMi4xMiAwIDAgMC0uMDA0LTMgMi4xMjQgMi4xMjQgMCAxIDAgMy0zIDIuMTI0IDIuMTI0IDAgMCAwIDMuMDA0IDAgMiAyIDAgMCAwIDAtMi44MjhsLTEuODgxLTEuODgyYTIuNDEgMi40MSAwIDAgMC0zLjQwOSAwbC0xLjcxIDEuNzFhMiAyIDAgMCAxLTIuODI4IDAgMiAyIDAgMCAxIDAtMi44MjhsMi44MjMtMi43NjIifV1dfSk7dmFyIEZCLEVhdD11KCgpPT57RkI9W1sicGF0aCIse2Q6Im0xNC44NzYgMTguOTktMS4zNjggMS4zMjNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjQ0IDEuNTcyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dXX0pO3ZhciBCQixJYXQ9dSgoKT0+e0JCPVtbInBhdGgiLHtkOiJNMTAuNSA0Ljg5M2E1LjUgNS41IDAgMCAxIDEuMDkxLjkzMS41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDEuODcyLTEuMDAyIDMuMzU2LTIuMTg3IDQuNjU1In1dLFsicGF0aCIse2Q6Im0xNi45NjcgMTYuOTY3LTMuNDU5IDMuMzQ2YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDIuNzQ3LTQuNzYxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIEhCLFBhdD11KCgpPT57SEI9W1sicGF0aCIse2Q6Im0xNC40NzkgMTkuMzc0LS45NzEuOTM5YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjIxOSAxLjQ5In1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dLFsicGF0aCIse2Q6Ik0xOCAxMnY2In1dXX0pO3ZhciBxQixOYXQ9dSgoKT0+e3FCPVtbInBhdGgiLHtkOiJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSJ9XV19KTt2YXIgVkIsT2F0PXUoKCk9PntWQj1bWyJwYXRoIix7ZDoiTTIgOS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41bC01LjQ5MiA1LjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjUifV0sWyJwYXRoIix7ZDoiTTMuMjIgMTNIOS41bC41LTEgMiA0LjUgMi03IDEuNSAzLjVoNS4yNyJ9XV19KTt2YXIgakIsUmF0PXUoKCk9PntqQj1bWyJwYXRoIix7ZDoiTTExIDhjMi0zLTItMyAwLTYifV0sWyJwYXRoIix7ZDoiTTE1LjUgOGMyLTMtMi0zIDAtNiJ9XSxbInBhdGgiLHtkOiJNNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTE4IDE2di00In1dLFsicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMifV0sWyJwYXRoIix7ZDoiTTUgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTkgMjB2MiJ9XV19KTt2YXIgVUIsRmF0PXUoKCk9PntVQj1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XV19KTt2YXIgV0IsQmF0PXUoKCk9PntXQj1bWyJwYXRoIix7ZDoiTTExIDE3djQifV0sWyJwYXRoIix7ZDoiTTE0IDN2OGEyIDIgMCAwIDAgMiAyaDUuODY1In1dLFsicGF0aCIse2Q6Ik0xNyAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xOCAxN2E0IDQgMCAwIDAgNC00IDggNiAwIDAgMC04LTYgNiA1IDAgMCAwLTYgNXYzYTIgMiAwIDAgMCAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yIDEwdjUifV0sWyJwYXRoIix7ZDoiTTYgM2gxNiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxNCJ9XSxbInBhdGgiLHtkOiJNOCAxM0gyIn1dXX0pO3ZhciBHQixIYXQ9dSgoKT0+e0dCPVtbInBhdGgiLHtkOiJtOSAxMS02IDZ2M2g5bDMtMyJ9XSxbInBhdGgiLHtkOiJtMjIgMTItNC42IDQuNmEyIDIgMCAwIDEtMi44IDBsLTUuMi01LjJhMiAyIDAgMCAxIDAtMi44TDE0IDQifV1dfSk7dmFyIFlCLHFhdD11KCgpPT57WUI9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJwYXRoIix7ZDoiTTEyIDd2NWw0IDIifV1dfSk7dmFyIEtCLFZhdD11KCgpPT57S0I9W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTQgMjAuNTdjLjUyLjI0IDIuNDQgMS4xMiA0LjA4IDEuMzcuNDYuMDYuODYtLjI1LjktLjcxLjEyLTEuNTItLjMtMy40My0uNS00LjI4In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC43LS4yNiJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNSJ9XSxbInBhdGgiLHtkOiJNMjAuNTcgMTEuMTRjLjI0LjUyIDEuMTIgMi40NCAxLjM3IDQuMDguMDQuMy0uMDguNTktLjMxLjc1In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCJ9XSxbInBhdGgiLHtkOiJNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OGExMCAxMCAwIDAgMSA5Ljk4IDEuNThjLjQzLjM1LjQuOTYtLjEyIDEuMTctMS41LjYtNC4zLjk4LTYuMDcgMS4wNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBaQixqYXQ9dSgoKT0+e1pCPVtbInBhdGgiLHtkOiJNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS41NS4wMyAxLS40Mi45Ny0uOTctLjA2LTEuMjctLjI2LTMuNS0uODUtNS4xOCJ9XSxbInBhdGgiLHtkOiJNMTEuNSA2LjVjMS42NCAwIDUtLjM4IDYuNzEtMS4wNy41Mi0uMi41NS0uODIuMTItMS4xN0ExMCAxMCAwIDAgMCA0LjI2IDE4LjMzYy4zNS40My45Ni40IDEuMTctLjEyLjY5LTEuNzEgMS4wNy01LjA3IDEuMDctNi43MSAxLjM0LjQ1IDMuMS45IDQuODguNjJhLjg4Ljg4IDAgMCAwIC43My0uNzRjLjMtMi4xNC0uMTUtMy41LS42MS00Ljg4In1dLFsicGF0aCIse2Q6Ik0xNS42MiAxNi45NWMuMi44NS42MiAyLjc2LjUgNC4yOGEuNzcuNzcgMCAwIDEtLjkuNyAxNi42NCAxNi42NCAwIDAgMS00LjA4LTEuMzYifV0sWyJwYXRoIix7ZDoiTTE2LjEzIDIxLjA1YzEuNjUuNjMgMy42OC44NCA0Ljg3LjkxYS45LjkgMCAwIDAgLjk2LS45NiAxNy42OCAxNy42OCAwIDAgMC0uOS00Ljg3In1dLFsicGF0aCIse2Q6Ik0xNi45NCAxNS42MmMuODYuMiAyLjc3LjYyIDQuMjkuNWEuNzcuNzcgMCAwIDAgLjctLjkgMTYuNjQgMTYuNjQgMCAwIDAtMS4zNi00LjA4In1dLFsicGF0aCIse2Q6Ik0xNy45OSA1LjUyYTIwLjgyIDIwLjgyIDAgMCAxIDMuMTUgNC41LjguOCAwIDAgMS0uNjggMS4xM2MtMi4zMy4yLTUuMy0uMzItOC4yNy0xLjU3In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTMgMyAzYS43LjcgMCAwIDEgMC0xIn1dLFsicGF0aCIse2Q6Ik05LjU4IDEyLjE4YzEuMjQgMi45OCAxLjc3IDUuOTUgMS41NyA4LjI4YS44LjggMCAwIDEtMS4xMy42OCAyMC44MiAyMC44MiAwIDAgMS00LjUtMy4xNSJ9XV19KTt2YXIgUUIsVWF0PXUoKCk9PntRQj1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xNCA5aC00In1dLFsicGF0aCIse2Q6Ik0xOCAxMWgyYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE4IDIxVjVhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTYifV1dfSk7dmFyIFhCLFdhdD11KCgpPT57WEI9W1sicGF0aCIse2Q6Ik0xMCAyMnYtNi41NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDNWMjIifV0sWyJwYXRoIix7ZDoiTTE1IDE2YTUgNSAwIDAgMC02IDAifV0sWyJwYXRoIix7ZDoiTTE2IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDdoLjAxIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dfSk7dmFyIEpCLEdhdD11KCgpPT57SkI9W1sicGF0aCIse2Q6Ik01IDIyaDE0In1dLFsicGF0aCIse2Q6Ik01IDJoMTQifV0sWyJwYXRoIix7ZDoiTTE3IDIydi00LjE3MmEyIDIgMCAwIDAtLjU4Ni0xLjQxNEwxMiAxMmwtNC40MTQgNC40MTRBMiAyIDAgMCAwIDcgMTcuODI4VjIyIn1dLFsicGF0aCIse2Q6Ik03IDJ2NC4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRMMTIgMTJsNC40MTQtNC40MTRBMiAyIDAgMCAwIDE3IDYuMTcyVjIifV1dfSk7dmFyIGVILFlhdD11KCgpPT57ZUg9W1sicGF0aCIse2Q6Ik04LjYyIDEzLjhBMi4yNSAyLjI1IDAgMSAxIDEyIDEwLjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dfSk7dmFyIHRILEthdD11KCgpPT57dEg9W1sicGF0aCIse2Q6Ik0xMCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJWOC45NjQifV0sWyJwYXRoIix7ZDoiTTE1IDEyYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LTJhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTguNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAyaC01YTIgMiAwIDAgMS0yLTJ2LTIifV1dfSk7dmFyIHJILFphdD11KCgpPT57ckg9W1sicGF0aCIse2Q6Ik0xMi4zNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MS0xLjUzbDctNmEyIDIgMCAwIDEgMi41OCAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2Mi4zNSJ9XSxbInBhdGgiLHtkOiJNMTQuOCAxMi40QTEgMSAwIDAgMCAxNCAxMmgtNGExIDEgMCAwIDAtMSAxdjgifV0sWyJwYXRoIix7ZDoiTTE1IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV1dfSk7dmFyIGFILFFhdD11KCgpPT57YUg9W1sicGF0aCIse2Q6Ik05LjUgMTMuODY2YTQgNCAwIDAgMSA1IC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Ik03IDEwLjc1NGE4IDggMCAwIDEgMTAgMCJ9XV19KTt2YXIgbzgsWGF0PXUoKCk9PntvOD1bWyJwYXRoIix7ZDoiTTE1IDIxdi04YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY4In1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dXX0pO3ZhciBsOCxKYXQ9dSgoKT0+e2w4PVtbInBhdGgiLHtkOiJNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTEyLjE0IDExYTMuNSAzLjUgMCAxIDEgNi43MSAwIn1dLFsicGF0aCIse2Q6Ik0xNS41IDYuNWEzLjUgMy41IDAgMSAwLTcgMCJ9XV19KTt2YXIgYzgsZWl0PXUoKCk9PntjOD1bWyJwYXRoIix7ZDoibTcgMTEgNC4wOCAxMC4zNWExIDEgMCAwIDAgMS44NCAwTDE3IDExIn1dLFsicGF0aCIse2Q6Ik0xNyA3QTUgNSAwIDAgMCA3IDcifV0sWyJwYXRoIix7ZDoiTTE3IDdhMiAyIDAgMCAxIDAgNEg3YTIgMiAwIDAgMSAwLTQifV1dfSk7dmFyIGlILHRpdD11KCgpPT57aUg9W1sicGF0aCIse2Q6Ik0xMy41IDhoLTMifV0sWyJwYXRoIix7ZDoibTE1IDItMSAyaDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYuODk5IDIyQTUgNSAwIDAgMCA3LjEgMjIifV0sWyJwYXRoIix7ZDoibTkgMiAzIDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV19KTt2YXIgc0gscml0PXUoKCk9PntzSD1bWyJwYXRoIix7ZDoiTTE2IDEwaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE0aDIifV0sWyJwYXRoIix7ZDoiTTYuMTcgMTVhMyAzIDAgMCAxIDUuNjYgMCJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTEiLHI6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgbkgsYWl0PXUoKCk9PntuSD1bWyJwYXRoIix7ZDoiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSJ9XSxbInBhdGgiLHtkOiJtMTQgMTkgMyAzdi01LjUifV0sWyJwYXRoIix7ZDoibTE3IDIyIDMtMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgb0gsaWl0PXUoKCk9PntvSD1bWyJwYXRoIix7ZDoiTTIxIDl2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjIiLHkxOiI1Iix5MjoiNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSJ9XV19KTt2YXIgbEgsc2l0PXUoKCk9PntsSD1bWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XSxbInBhdGgiLHtkOiJNMTAuNDEgMTAuNDFhMiAyIDAgMSAxLTIuODMtMi44MyJ9XSxbImxpbmUiLHt4MToiMTMuNSIseDI6IjYiLHkxOiIxMy41Iix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjE1In1dLFsicGF0aCIse2Q6Ik0zLjU5IDMuNTlBMS45OSAxLjk5IDAgMCAwIDMgNXYxNGEyIDIgMCAwIDAgMiAyaDE0Yy41NSAwIDEuMDUyLS4yMiAxLjQxLS41OSJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNWEyIDIgMCAwIDAtMi0ySDkifV1dfSk7dmFyIGNILG5pdD11KCgpPT57Y0g9W1sicGF0aCIse2Q6Ik0xNSAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dLFsicGF0aCIse2Q6Ik0yMSAxMi4xN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XSxbInBhdGgiLHtkOiJtNiAyMSA1LTUifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dfSk7dmFyIGRILG9pdD11KCgpPT57ZEg9W1sicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuNVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNy41In1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciB1SCxsaXQ9dSgoKT0+e3VIPVtbInBhdGgiLHtkOiJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIn1dLFsicGF0aCIse2Q6Im0xNCAxOS41IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDIydi01LjUifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dfSk7dmFyIHBILGNpdD11KCgpPT57cEg9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMjFoMmEyIDIgMCAwIDAgMi0yIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYzIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJtNSAyMSA0LjE0NC00LjE0NGExLjIxIDEuMjEgMCAwIDEgMS43MTIgMEwxMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAzaDMifV0sWyJyZWN0Iix7eDoiMyIseToiMTEiLHdpZHRoOiIxMCIsaGVpZ2h0OiIxMCIscng6IjEifV1dfSk7dmFyIGZILGRpdD11KCgpPT57Zkg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXX0pO3ZhciBoSCx1aXQ9dSgoKT0+e2hIPVtbInBhdGgiLHtkOiJtMjIgMTEtMS4yOTYtMS4yOTZhMi40IDIuNCAwIDAgMC0zLjQwOCAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik00IDhhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTIifV0sWyJjaXJjbGUiLHtjeDoiMTMiLGN5OiI3IixyOiIxIixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjE0IixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgbUgscGl0PXUoKCk9PnttSD1bWyJwYXRoIix7ZDoiTTEyIDN2MTIifV0sWyJwYXRoIix7ZDoibTggMTEgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNOCA1SDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00In1dXX0pO3ZhciBnSCxmaXQ9dSgoKT0+e2dIPVtbInBvbHlsaW5lIix7cG9pbnRzOiIyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTIifV0sWyJwYXRoIix7ZDoiTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiJ9XV19KTt2YXIgYkgsaGl0PXUoKCk9PntiSD1bWyJwYXRoIix7ZDoiTTYgM2gxMiJ9XSxbInBhdGgiLHtkOiJNNiA4aDEyIn1dLFsicGF0aCIse2Q6Im02IDEzIDguNSA4In1dLFsicGF0aCIse2Q6Ik02IDEzaDMifV0sWyJwYXRoIix7ZDoiTTkgMTNjNi42NjcgMCA2LjY2Ny0xMCAwLTEwIn1dXX0pO3ZhciB4SCxtaXQ9dSgoKT0+e3hIPVtbInBhdGgiLHtkOiJNNiAxNmM1IDAgNy04IDEyLThhNCA0IDAgMCAxIDAgOGMtNSAwLTctOC0xMi04YTQgNCAwIDEgMCAwIDgifV1dfSk7dmFyIHZILGdpdD11KCgpPT57dkg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgOGguMDEifV1dfSk7dmFyIHlILGJpdD11KCgpPT57eUg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgN2guMDEifV0sWyJwYXRoIix7ZDoiTTE3IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTdoLjAxIn1dXX0pO3ZhciB3SCx4aXQ9dSgoKT0+e3dIPVtbImxpbmUiLHt4MToiMTkiLHgyOiIxMCIseTE6IjQiLHkyOiI0In1dLFsibGluZSIse3gxOiIxNCIseDI6IjUiLHkxOiIyMCIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI0Iix5MjoiMjAifV1dfSk7dmFyIGtILHZpdD11KCgpPT57a0g9W1sicGF0aCIse2Q6Im0xNiAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCAxMGE4IDggMCAxIDAtOCA4aDgifV1dfSk7dmFyIFNILHlpdD11KCgpPT57U0g9W1sicGF0aCIse2Q6Ik00IDEwYTggOCAwIDEgMSA4IDhINCJ9XSxbInBhdGgiLHtkOiJtOCAyMi00LTQgNC00In1dXX0pO3ZhciBNSCx3aXQ9dSgoKT0+e01IPVtbInBhdGgiLHtkOiJNMTIgOS41VjIxbTAtMTEuNUw2IDNtNiA2LjVMMTggMyJ9XSxbInBhdGgiLHtkOiJNNiAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMWgxMiJ9XV19KTt2YXIgQ0gsa2l0PXUoKCk9PntDSD1bWyJwYXRoIix7ZDoiTTIxIDE3YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0yWiJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTVWOSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIHpILFNpdD11KCgpPT57ekg9W1sicGF0aCIse2Q6Ik01IDN2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDN2OCJ9XSxbInBhdGgiLHtkOiJNMTkgM3YxOCJ9XV19KTt2YXIgX0gsTWl0PXUoKCk9PntfSD1bWyJwYXRoIix7ZDoiTTE4IDE3YTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMjAuOTcgMy42MWEuNDUuNDUgMCAwIDAtLjU4LS41OEMxMC4yIDYuNiA2LjYgMTAuMiAzLjAzIDIwLjM5YS40NS40NSAwIDAgMCAuNTguNThDMTMuOCAxNy40IDE3LjQgMTMuOCAyMC45NyAzLjYxIn1dLFsicGF0aCIse2Q6Im02LjcwNyA2LjcwNyAxMC41ODYgMTAuNTg2In1dLFsicGF0aCIse2Q6Ik03IDVhMiAyIDAgMSAwLTIgMmgxYTEgMSAwIDAgMCAxLTF6In1dXX0pO3ZhciBUSCxDaXQ9dSgoKT0+e1RIPVtbInBhdGgiLHtkOiJNMi41ODYgMTcuNDE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0YTYuNSA2LjUgMCAxIDAtNC00eiJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBMSCx6aXQ9dSgoKT0+e0xIPVtbInBhdGgiLHtkOiJNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6In1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJtOS40IDEwLjYtNi44MTQgNi44MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTQifV1dfSk7dmFyIERILF9pdD11KCgpPT57REg9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NCJ9XV19KTt2YXIgJEgsVGl0PXUoKCk9PnskSD1bWyJwYXRoIix7ZDoibTE1LjUgNy41IDIuMyAyLjNhMSAxIDAgMCAwIDEuNCAwbDIuMS0yLjFhMSAxIDAgMCAwIDAtMS40TDE5IDQifV0sWyJwYXRoIix7ZDoibTIxIDItOS42IDkuNiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNS41IixyOiI1LjUifV1dfSk7dmFyIEFILExpdD11KCgpPT57QUg9W1sicGF0aCIse2Q6Ik0gMjAgNCBBMiAyIDAgMCAxIDIyIDYifV0sWyJwYXRoIix7ZDoiTSAyMiA2IEwgMjIgMTYuNDEifV0sWyJwYXRoIix7ZDoiTSA3IDE2IEwgMTYgMTYifV0sWyJwYXRoIix7ZDoiTSA5LjY5IDQgTCAyMCA0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dfSk7dmFyIEVILERpdD11KCgpPT57RUg9W1sicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XV19KTt2YXIgSUgsJGl0PXUoKCk9PntJSD1bWyJwYXRoIix7ZDoiTTEyIDJ2NSJ9XSxbInBhdGgiLHtkOiJNMTQuODI5IDE1Ljk5OGEzIDMgMCAxIDEtNS42NTggMCJ9XSxbInBhdGgiLHtkOiJNMjAuOTIgMTQuNjA2QTEgMSAwIDAgMSAyMCAxNkg0YTEgMSAwIDAgMS0uOTItMS4zOTRsMy03QTEgMSAwIDAgMSA3IDdoMTBhMSAxIDAgMCAxIC45Mi42MDZ6In1dXX0pO3ZhciBQSCxBaXQ9dSgoKT0+e1BIPVtbInBhdGgiLHtkOiJNMTAuMjkzIDIuMjkzYTEgMSAwIDAgMSAxLjQxNCAwbDIuNSAyLjUgNS45OTQgMS4yMjdhMSAxIDAgMCAxIC41MDYgMS42ODdsLTcgN2ExIDEgMCAwIDEtMS42ODctLjUwNmwtMS4yMjctNS45OTQtMi41LTIuNWExIDEgMCAwIDEgMC0xLjQxNHoifV0sWyJwYXRoIix7ZDoibTE0LjIwNyA0Ljc5My0zLjQxNCAzLjQxNCJ9XSxbInBhdGgiLHtkOiJNMyAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtOS4wODYgNi41LTQuNzkzIDQuNzkzYTEgMSAwIDAgMC0uMTggMS4xN0w3IDE4In1dXX0pO3ZhciBOSCxFaXQ9dSgoKT0+e05IPVtbInBhdGgiLHtkOiJNMTIgMTB2MTIifV0sWyJwYXRoIix7ZDoiTTE3LjkyOSA3LjYyOUExIDEgMCAwIDEgMTcgOUg3YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgOSAyaDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNOSAyMmg2In1dXX0pO3ZhciBPSCxJaXQ9dSgoKT0+e09IPVtbInBhdGgiLHtkOiJNMTkuOTI5IDE4LjYyOUExIDEgMCAwIDEgMTkgMjBIOWExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDExIDEzaDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNNiAzYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik04IDZoNGEyIDIgMCAwIDEgMiAydjUifV1dfSk7dmFyIFJILFBpdD11KCgpPT57Ukg9W1sicGF0aCIse2Q6Ik0xOS45MjkgOS42MjlBMSAxIDAgMCAxIDE5IDExSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSA0aDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNNiAxNWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg1YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggMThoNGEyIDIgMCAwIDAgMi0ydi01In1dXX0pO3ZhciBGSCxOaXQ9dSgoKT0+e0ZIPVtbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNNC4wNzcgMTAuNjE1QTEgMSAwIDAgMCA1IDEyaDE0YTEgMSAwIDAgMCAuOTIzLTEuMzg1bC0zLjA3Ny03LjM4NEEyIDIgMCAwIDAgMTUgMkg5YTIgMiAwIDAgMC0xLjg0NiAxLjIzWiJ9XSxbInBhdGgiLHtkOiJNOCAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xeiJ9XV19KTt2YXIgQkgsT2l0PXUoKCk9PntCSD1bWyJwYXRoIix7ZDoibTEyIDggNi0zLTYtM3YxMCJ9XSxbInBhdGgiLHtkOiJtOCAxMS45OS01LjUgMy4xNGExIDEgMCAwIDAgMCAxLjc0bDguNSA0Ljg2YTIgMiAwIDAgMCAyIDBsOC41LTQuODZhMSAxIDAgMCAwIDAtMS43NEwxNiAxMiJ9XSxbInBhdGgiLHtkOiJtNi40OSAxMi44NSAxMS4wMiA2LjMifV0sWyJwYXRoIix7ZDoiTTE3LjUxIDEyLjg1IDYuNSAxOS4xNSJ9XV19KTt2YXIgSEgsUml0PXUoKCk9PntISD1bWyJwYXRoIix7ZDoiTTEwIDE4di03In1dLFsicGF0aCIse2Q6Ik0xMS4xMiAyLjE5OGEyIDIgMCAwIDEgMS43Ni4wMDZsNy44NjYgMy44NDdjLjQ3Ni4yMzMuMzEuOTQ5LS4yMi45NDlIMy40NzRjLS41MyAwLS42OTUtLjcxNi0uMjItLjk0OXoifV0sWyJwYXRoIix7ZDoiTTE0IDE4di03In1dLFsicGF0aCIse2Q6Ik0xOCAxOHYtNyJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XSxbInBhdGgiLHtkOiJNNiAxOHYtNyJ9XV19KTt2YXIgcUgsRml0PXUoKCk9PntxSD1bWyJwYXRoIix7ZDoibTUgOCA2IDYifV0sWyJwYXRoIix7ZDoibTQgMTQgNi02IDItMyJ9XSxbInBhdGgiLHtkOiJNMiA1aDEyIn1dLFsicGF0aCIse2Q6Ik03IDJoMSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS0xMC01IDEwIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGg2In1dXX0pO3ZhciBWSCxCaXQ9dSgoKT0+e1ZIPVtbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3g6IjMiLHk6IjQiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIGQ4LEhpdD11KCgpPT57ZDg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNCIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciBqSCxxaXQ9dSgoKT0+e2pIPVtbInBhdGgiLHtkOiJNMTggNWEyIDIgMCAwIDEgMiAydjguNTI2YTIgMiAwIDAgMCAuMjEyLjg5N2wxLjA2OCAyLjEyN2ExIDEgMCAwIDEtLjkgMS40NUgzLjYyYTEgMSAwIDAgMS0uOS0xLjQ1bDEuMDY4LTIuMTI3QTIgMiAwIDAgMCA0IDE1LjUyNlY3YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0yMC4wNTQgMTUuOTg3SDMuOTQ2In1dXX0pO3ZhciBVSCxWaXQ9dSgoKT0+e1VIPVtbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi00In1dLFsicGF0aCIse2Q6Ik03IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEifV0sWyJwYXRoIix7ZDoiTTMuMzQgMTRBNi44IDYuOCAwIDAgMSAyIDEwYzAtNC40MiA0LjQ4LTggMTAtOHMxMCAzLjU4IDEwIDhhNy4xOSA3LjE5IDAgMCAxLS4zMyAyIn1dLFsicGF0aCIse2Q6Ik01IDE4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoifV0sWyJwYXRoIix7ZDoiTTE0LjMzIDIyaC0uMDlhLjM1LjM1IDAgMCAxLS4yNC0uMzJ2LTEwYS4zNC4zNCAwIDAgMSAuMzMtLjM0Yy4wOCAwIC4xNS4wMy4yMS4wOGw3LjM0IDZhLjMzLjMzIDAgMCAxLS4yMS41OWgtNC40OWwtMi41NyAzLjg1YS4zNS4zNSAwIDAgMS0uMjguMTR6In1dXX0pO3ZhciBXSCxqaXQ9dSgoKT0+e1dIPVtbInBhdGgiLHtkOiJNMy43MDQgMTQuNDY3YTEwIDggMCAxIDEgMy4xMTUgMi4zNzUifV0sWyJwYXRoIix7ZDoiTTcgMjJhNSA1IDAgMCAxLTItMy45OTQifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE2IixyOiIyIn1dXX0pO3ZhciBHSCxVaXQ9dSgoKT0+e0dIPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTggMTNhNiA2IDAgMCAxLTYgNSA2IDYgMCAwIDEtNi01aDEyWiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dXX0pO3ZhciBZSCxXaXQ9dSgoKT0+e1lIPVtbInBhdGgiLHtkOiJNMTMgMTMuNzRhMiAyIDAgMCAxLTIgMEwyLjUgOC44N2ExIDEgMCAwIDEgMC0xLjc0TDExIDIuMjZhMiAyIDAgMCAxIDIgMGw4LjUgNC44N2ExIDEgMCAwIDEgMCAxLjc0eiJ9XSxbInBhdGgiLHtkOiJtMjAgMTQuMjg1IDEuNS44NDVhMSAxIDAgMCAxIDAgMS43NEwxMyAyMS43NGEyIDIgMCAwIDEtMiAwbC04LjUtNC44N2ExIDEgMCAwIDEgMC0xLjc0bDEuNS0uODQ1In1dXX0pO3ZhciB1OCxHaXQ9dSgoKT0+e3U4PVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oifV0sWyJwYXRoIix7ZDoiTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3In1dXX0pO3ZhciBLSCxZaXQ9dSgoKT0+e0tIPVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6In1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY2In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4In1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIn1dXX0pO3ZhciBaSCxLaXQ9dSgoKT0+e1pIPVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV1dfSk7dmFyIFFILFppdD11KCgpPT57UUg9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTQgNGg3In1dLFsicGF0aCIse2Q6Ik0xNCA5aDcifV0sWyJwYXRoIix7ZDoiTTE0IDE1aDcifV0sWyJwYXRoIix7ZDoiTTE0IDIwaDcifV1dfSk7dmFyIFhILFFpdD11KCgpPT57WEg9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjkiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIxNCIseToiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XV19KTt2YXIgSkgsWGl0PXUoKCk9PntKSD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBlcSxKaXQ9dSgoKT0+e2VxPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIxNCIscng6IjEifV1dfSk7dmFyIHRxLGVzdD11KCgpPT57dHE9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiOSIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNyIseDoiMTYiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgcnEsdHN0PXUoKCk9PntycT1bWyJwYXRoIix7ZDoiTTIgMjJjMS4yNS0uOTg3IDIuMjctMS45NzUgMy45LTIuMmE1LjU2IDUuNTYgMCAwIDEgMy44IDEuNSA0IDQgMCAwIDAgNi4xODctMi4zNTMgMy41IDMuNSAwIDAgMCAzLjY5LTUuMTE2QTMuNSAzLjUgMCAwIDAgMjAuOTUgOCAzLjUgMy41IDAgMSAwIDE2IDMuMDVhMy41IDMuNSAwIDAgMC01LjgzMSAxLjM3MyAzLjUgMy41IDAgMCAwLTUuMTE2IDMuNjkgNCA0IDAgMCAwLTIuMzQ4IDYuMTU1QzMuNDk5IDE1LjQyIDQuNDA5IDE2LjcxMiA0LjIgMTguMSAzLjkyNiAxOS43NDMgMy4wMTQgMjAuNzMyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTIgMjIgMTcgNyJ9XV19KTt2YXIgYXEscnN0PXUoKCk9PnthcT1bWyJwYXRoIix7ZDoiTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFoifV0sWyJwYXRoIix7ZDoiTTIgMjFjMC0zIDEuODUtNS4zNiA1LjA4LTZDOS41IDE0LjUyIDEyIDEzIDEzIDEyIn1dXX0pO3ZhciBpcSxhc3Q9dSgoKT0+e2lxPVtbInBhdGgiLHtkOiJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjEyIix4OiI4Iix5OiIxMCIscng6IjEifV1dfSk7dmFyIHNxLGlzdD11KCgpPT57c3E9W1sicGF0aCIse2Q6Ik03IDJhMSAxIDAgMCAwLS44IDEuNiAxNCAxNCAwIDAgMSAwIDE2LjhBMSAxIDAgMCAwIDcgMjJoMTBhMSAxIDAgMCAwIC44LTEuNiAxNCAxNCAwIDAgMSAwLTE2LjhBMSAxIDAgMCAwIDE3IDJ6In1dXX0pO3ZhciBucSxzc3Q9dSgoKT0+e25xPVtbInBhdGgiLHtkOiJNMTMuNDMzIDJhMSAxIDAgMCAxIC44MjQuNDQ4IDE4IDE4IDAgMCAxIDAgMTkuMTA0IDEgMSAwIDAgMS0uODI0LjQ0OGgtMi44NjZhMSAxIDAgMCAxLS44MjQtLjQ0OCAxOCAxOCAwIDAgMSAwLTE5LjEwNEExIDEgMCAwIDEgMTAuNTY3IDJ6In1dXX0pO3ZhciBvcSxuc3Q9dSgoKT0+e29xPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMjAuNCAxOC45Yy4yLjUtLjEgMS4xLS42IDEuM2wtMS45LjdjLS41LjItMS4xLS4xLTEuMy0uNkwxMS4xIDUuMWMtLjItLjUuMS0xLjEuNi0xLjNsMS45LS43Yy41LS4yIDEuMS4xIDEuMy42WiJ9XV19KTt2YXIgbHEsb3N0PXUoKCk9PntscT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTE0LjgzIDkuMTcgNC4yNC00LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyAxNC44MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTkuMTcgMTQuODMtNC4yNCA0LjI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dfSk7dmFyIGNxLGxzdD11KCgpPT57Y3E9W1sicGF0aCIse2Q6Im0xNiA2IDQgMTQifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MTQifV0sWyJwYXRoIix7ZDoiTTggOHYxMiJ9XSxbInBhdGgiLHtkOiJNNCA0djE2In1dXX0pO3ZhciBkcSxjc3Q9dSgoKT0+e2RxPVtbInBhdGgiLHtkOiJNMTQgMTJoMnY4In1dLFsicGF0aCIse2Q6Ik0xNCAyMGg0In1dLFsicGF0aCIse2Q6Ik02IDEyaDQifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNOCAyMFY4YTQgNCAwIDAgMSA3LjQ2NC0yIn1dXX0pO3ZhciB1cSxkc3Q9dSgoKT0+e3VxPVtbInBhdGgiLHtkOiJNMTYuOCAxMS4yYy44LS45IDEuMi0yIDEuMi0zLjJhNiA2IDAgMCAwLTkuMy01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTYuMyA2LjNhNC42NyA0LjY3IDAgMCAwIDEuMiA1LjJjLjcuNyAxLjMgMS41IDEuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTAgMjJoNCJ9XV19KTt2YXIgcHEsdXN0PXUoKCk9PntwcT1bWyJwYXRoIix7ZDoiTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dXX0pO3ZhciBmcSxwc3Q9dSgoKT0+e2ZxPVtbInBhdGgiLHtkOiJNIDMgMTIgTCAxNSAxMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBocSxmc3Q9dSgoKT0+e2hxPVtbInBhdGgiLHtkOiJNNyAzLjVjNS0yIDcgMi41IDMgNEMxLjUgMTAgMiAxNSA1IDE2YzUgMiA5LTEwIDE0LTdzLjUgMTMuNS00IDEyYy01LTIuNS41LTExIDYtMiJ9XV19KTt2YXIgbXEsaHN0PXUoKCk9PnttcT1bWyJwYXRoIix7ZDoiTTExIDVoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMTkgNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgNWgyIn1dXX0pO3ZhciBncSxtc3Q9dSgoKT0+e2dxPVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDcifV0sWyJwYXRoIix7ZDoiTTE1IDdoMmE1IDUgMCAwIDEgNCA4In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIGJxLGdzdD11KCgpPT57YnE9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgN2gyIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMSAxIDAgMTBoLTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIHhxLGJzdD11KCgpPT57eHE9W1sicGF0aCIse2Q6Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSJ9XV19KTt2YXIgdnEseHN0PXUoKCk9Pnt2cT1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggMiAyIDQtNCJ9XV19KTt2YXIgeXEsdnN0PXUoKCk9Pnt5cT1bWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMyAxNyAyIDIgNC00In1dLFsicGF0aCIse2Q6Im0zIDcgMiAyIDQtNCJ9XV19KTt2YXIgd3EseXN0PXUoKCk9Pnt3cT1bWyJwYXRoIix7ZDoiTTMgNWg4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAzLTMgMyAzIn1dXX0pO3ZhciBrcSx3c3Q9dSgoKT0+e2txPVtbInBhdGgiLHtkOiJNMyA1aDgifV0sWyJwYXRoIix7ZDoiTTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWg4In1dLFsicGF0aCIse2Q6Im0xNSA4IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE1IDE2IDMgMyAzLTMifV1dfSk7dmFyIFNxLGtzdD11KCgpPT57U3E9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTE2IDEySDMifV0sWyJwYXRoIix7ZDoiTTkgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxMmEyIDIgMCAwIDEtMiAyaC02In1dXX0pO3ZhciBNcSxTc3Q9dSgoKT0+e01xPVtbInBhdGgiLHtkOiJNMTAgNWgxMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoiTTEwIDE5aDExIn1dLFsicGF0aCIse2Q6Im0zIDEwIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoibTMgMjAgMy0zLTMtMyJ9XV19KTt2YXIgQ3EsTXN0PXUoKCk9PntDcT1bWyJwYXRoIix7ZDoiTTEyIDVIMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDhWMiJ9XV19KTt2YXIgenEsQ3N0PXUoKCk9Pnt6cT1bWyJwYXRoIix7ZDoiTTIgNWgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dXX0pO3ZhciBVNCx6c3Q9dSgoKT0+e1U0PVtbInBhdGgiLHtkOiJNMjEgNUgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDExIn1dLFsicGF0aCIse2Q6Im03IDgtNCA0IDQgNCJ9XV19KTt2YXIgVzQsX3N0PXUoKCk9PntXND1bWyJwYXRoIix7ZDoiTTIxIDVIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDEySDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxOUgxMSJ9XSxbInBhdGgiLHtkOiJtMyA4IDQgNC00IDQifV1dfSk7dmFyIF9xLFRzdD11KCgpPT57X3E9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciBUcSxMc3Q9dSgoKT0+e1RxPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNlY1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIExxLERzdD11KCgpPT57THE9W1sicGF0aCIse2Q6Ik0xMSA1aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTloMTAifV0sWyJwYXRoIix7ZDoiTTQgNGgxdjUifV0sWyJwYXRoIix7ZDoiTTQgOWgyIn1dLFsicGF0aCIse2Q6Ik02LjUgMjBIMy40YzAtMSAyLjYtMS45MjUgMi42LTMuNWExLjUgMS41IDAgMCAwLTIuNi0xLjAyIn1dXX0pO3ZhciBEcSwkc3Q9dSgoKT0+e0RxPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciAkcSxBc3Q9dSgoKT0+eyRxPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik03IDEySDMifV0sWyJwYXRoIix7ZDoiTTcgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTB2NGg0In1dXX0pO3ZhciBBcSxFc3Q9dSgoKT0+e0FxPVtbInBhdGgiLHtkOiJNMyA1aDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloMTMifV0sWyJwYXRoIix7ZDoibTE2IDgtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02In1dXX0pO3ZhciBFcSxJc3Q9dSgoKT0+e0VxPVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIElxLFBzdD11KCgpPT57SXE9W1sicGF0aCIse2Q6Ik04IDVoMTMifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTJhMiAyIDAgMCAwIDIgMmgzIn1dXX0pO3ZhciBQcSxOc3Q9dSgoKT0+e1BxPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNS41IDkuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIwLjUgOS41LTUgNSJ9XV19KTt2YXIgTnEsT3N0PXUoKCk9PntOcT1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTIuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XV19KTt2YXIgT3EsUnN0PXUoKCk9PntPcT1bWyJwYXRoIix7ZDoiTTMgNWguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA1aDEzIn1dLFsicGF0aCIse2Q6Ik04IDEyaDEzIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEzIn1dXX0pO3ZhciBwOCxGc3Q9dSgoKT0+e3A4PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYifV1dfSk7dmFyIFJxLEJzdD11KCgpPT57UnE9W1sicGF0aCIse2Q6Ik0yMiAxMmExIDEgMCAwIDEtMTAgMCAxIDEgMCAwIDAtMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyAyMC43YTEgMSAwIDEgMSA1LTguNyAxIDEgMCAxIDAgNS04LjYifV0sWyJwYXRoIix7ZDoiTTcgMy4zYTEgMSAwIDEgMSA1IDguNiAxIDEgMCAxIDAgNSA4LjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIEZxLEhzdD11KCgpPT57RnE9W1sicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoibTE2LjIgNy44IDIuOS0yLjkifV0sWyJwYXRoIix7ZDoiTTE4IDEyaDQifV0sWyJwYXRoIix7ZDoibTE2LjIgMTYuMiAyLjkgMi45In1dLFsicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Im00LjkgMTkuMSAyLjktMi45In1dLFsicGF0aCIse2Q6Ik0yIDEyaDQifV0sWyJwYXRoIix7ZDoibTQuOSA0LjkgMi45IDIuOSJ9XV19KTt2YXIgQnEscXN0PXUoKCk9PntCcT1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBIcSxWc3Q9dSgoKT0+e0hxPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yNGE3IDcgMCAwIDAtOC4xMy04LjEzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMmgzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy4wNSA3LjA1YTcgNyAwIDAgMCA5LjkgOS45In1dXX0pO3ZhciBxcSxqc3Q9dSgoKT0+e3FxPVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dXX0pO3ZhciBmOCxVc3Q9dSgoKT0+e2Y4PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDkuMzMtMi41In1dXX0pO3ZhciBWcSxXc3Q9dSgoKT0+e1ZxPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjEwIix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyJ9XV19KTt2YXIgaDgsR3N0PXUoKCk9PntoOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDkuOS0xIn1dXX0pO3ZhciBqcSxZc3Q9dSgoKT0+e2pxPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTEiLHg6IjMiLHk6IjExIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0In1dXX0pO3ZhciBVcSxLc3Q9dSgoKT0+e1VxPVtbInBhdGgiLHtkOiJtMTAgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCJ9XV19KTt2YXIgV3EsWnN0PXUoKCk9PntXcT1bWyJwYXRoIix7ZDoiTTMgNWgxIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDEifV0sWyJwYXRoIix7ZDoiTTMgMTloMSJ9XSxbInBhdGgiLHtkOiJNOCA1aDEifV0sWyJwYXRoIix7ZDoiTTggMTJoMSJ9XSxbInBhdGgiLHtkOiJNOCAxOWgxIn1dLFsicGF0aCIse2Q6Ik0xMyA1aDgifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV1dfSk7dmFyIEdxLFFzdD11KCgpPT57R3E9W1sicGF0aCIse2Q6Ik02IDIwYTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOCAxOFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBZcSxYc3Q9dSgoKT0+e1lxPVtbInBhdGgiLHtkOiJtMTYgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQifV1dfSk7dmFyIEtxLEpzdD11KCgpPT57S3E9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDExYTIgMiAwIDAgMCA0IDAgNCA0IDAgMCAwLTggMCA2IDYgMCAwIDAgMTIgMCJ9XV19KTt2YXIgWnEsZW50PXUoKCk9PntacT1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciBRcSx0bnQ9dSgoKT0+e1FxPVtbInBhdGgiLHtkOiJtMTIgMTUgNCA0In1dLFsicGF0aCIse2Q6Ik0yLjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMDI5LTYuMDI5YTEgMSAwIDEgMSAzIDNsLTYuMDI5IDYuMDI5YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjM2NS02LjM2N0ExIDEgMCAwIDAgOC43MTYgNC4yODJ6In1dLFsicGF0aCIse2Q6Im01IDggNCA0In1dXX0pO3ZhciBYcSxybnQ9dSgoKT0+e1hxPVtbInBhdGgiLHtkOiJNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV1dfSk7dmFyIEpxLGFudD11KCgpPT57SnE9W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV19KTt2YXIgZVYsaW50PXUoKCk9PntlVj1bWyJwYXRoIix7ZDoiTTIxLjIgOC40Yy41LjM4LjguOTcuOCAxLjZ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIC44LTEuNmw4LTZhMiAyIDAgMCAxIDIuNCAwbDggNloifV0sWyJwYXRoIix7ZDoibTIyIDEwLTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiAxMCJ9XV19KTt2YXIgbTgsc250PXUoKCk9PnttOD1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDE1LjI4Yy4yLS40LjUtLjguOS0xYTIuMSAyLjEgMCAwIDEgMi42LjRjLjMuNC41LjguNSAxLjMgMCAxLjMtMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXX0pO3ZhciB0VixubnQ9dSgoKT0+e3RWPVtbInBhdGgiLHtkOiJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuNS0xLjUifV1dfSk7dmFyIHJWLG9udD11KCgpPT57clY9W1sicGF0aCIse2Q6Ik0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0yMCAxNHY0In1dLFsicGF0aCIse2Q6Ik0yMCAyMnYuMDEifV1dfSk7dmFyIGFWLGxudD11KCgpPT57YVY9W1sicGF0aCIse2Q6Im0yMiA3LTguOTkxIDUuNzI3YTIgMiAwIDAgMS0yLjAwOSAwTDIgNyJ9XSxbInJlY3QiLHt4OiIyIix5OiI0Iix3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHJ4OiIyIn1dXX0pO3ZhciBpVixjbnQ9dSgoKT0+e2lWPVtbInBhdGgiLHtkOiJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoibTE3IDE3IDQgNCJ9XSxbInBhdGgiLHtkOiJtMjEgMTctNCA0In1dXX0pO3ZhciBzVixkbnQ9dSgoKT0+e3NWPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOS41QzIgNyA0IDUgNi41IDVIMThjMi4yIDAgNCAxLjggNCA0djhaIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjE1LDkgMTgsOSAxOCwxMSJ9XSxbInBhdGgiLHtkOiJNNi41IDVDOSA1IDExIDcgMTEgOS41VjE3YTIgMiAwIDAgMS0yIDIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI3Iix5MToiMTAiLHkyOiIxMCJ9XV19KTt2YXIgblYsdW50PXUoKCk9PntuVj1bWyJwYXRoIix7ZDoiTTE3IDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAxLTEuNzMyIn1dLFsicGF0aCIse2Q6Im0yMiA1LjUtNi40MTkgNC4xNzlhMiAyIDAgMCAxLTIuMTYyIDBMNyA1LjUifV0sWyJyZWN0Iix7eDoiNyIseToiMyIsd2lkdGg6IjE1IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgb1YscG50PXUoKCk9PntvVj1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTQifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjE0In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV19KTt2YXIgbFYsZm50PXUoKCk9PntsVj1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dXX0pO3ZhciBjVixobnQ9dSgoKT0+e2NWPVtbInBhdGgiLHtkOiJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTggMiAyIDQtNCJ9XV19KTt2YXIgZFYsbW50PXUoKCk9PntkVj1bWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIC40NDUtLjgzMmwzLTJhMSAxIDAgMCAxIDEuMTEgMGwzIDJBMSAxIDAgMCAxIDIyIDE3djRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTE4IDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgLjYwMS4yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtMyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciB1VixnbnQ9dSgoKT0+e3VWPVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIHBWLGJudD11KCgpPT57cFY9W1sicGF0aCIse2Q6Ik0xOC45NzcgMTRDMTkuNiAxMi43MDEgMjAgMTEuMzQzIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XV19KTt2YXIgZlYseG50PXUoKCk9PntmVj1bWyJwYXRoIix7ZDoiTTEyLjc1IDcuMDlhMyAzIDAgMCAxIDIuMTYgMi4xNiJ9XSxbInBhdGgiLHtkOiJNMTcuMDcyIDE3LjA3MmMtMS42MzQgMi4xNy0zLjUyNyAzLjkxMi00LjQ3MSA0LjcyN2ExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMS40MzItNC41NjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMyJ9XSxbInBhdGgiLHtkOiJNOS4xMyA5LjEzYTMgMyAwIDAgMCAzLjc0IDMuNzQifV1dfSk7dmFyIGc4LHZudD11KCgpPT57Zzg9W1sicGF0aCIse2Q6Ik0xNy45NyA5LjMwNEE4IDggMCAwIDAgMiAxMGMwIDQuNjkgNC44ODcgOS41NjIgNy4wMjIgMTEuNDY4In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMCIscjoiMyJ9XV19KTt2YXIgaFYseW50PXUoKCk9PntoVj1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIG1WLHdudD11KCgpPT57bVY9W1sicGF0aCIse2Q6Ik0xOS45MTQgMTEuMTA1QTcuMjk4IDcuMjk4IDAgMCAwIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTV2NiJ9XV19KTt2YXIgZ1Ysa250PXUoKCk9PntnVj1bWyJwYXRoIix7ZDoiTSAxMi4yNDggMjEuOTY5IGEgMSAxIDAgMCAxIC0wLjg0OSAtMC4xNyBDIDkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwIGEgOCA4IDAgMCAxIDE2IDAgQyAyMCAxMC40MiAxOS45NjEgMTAuODQxIDE5Ljg4OCAxMS4yNjIifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODgtMS44OCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIGJWLFNudD11KCgpPT57YlY9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoibTE0LjUgNy41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dfSk7dmFyIHhWLE1udD11KCgpPT57eFY9W1sicGF0aCIse2Q6Ik0xOS43NTIgMTEuOTAxQTcuNzggNy43OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMTkgMTkgMCAwIDAgLjA5LS4wNzcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxNS41LTUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAyMC41LTUtNSJ9XV19KTt2YXIgdlYsQ250PXUoKCk9Pnt2Vj1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciB5Vix6bnQ9dSgoKT0+e3lWPVtbInBhdGgiLHtkOiJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIn1dXX0pO3ZhciB3VixfbnQ9dSgoKT0+e3dWPVtbInBhdGgiLHtkOiJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxMiJ9XSxbInBhdGgiLHtkOiJNMTUgNS43NjRWMTIifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBrVixUbnQ9dSgoKT0+e2tWPVtbInBhdGgiLHtkOiJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0djE1In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBTVixMbnQ9dSgoKT0+e1NWPVtbInBhdGgiLHtkOiJtMTQgNiA0IDQifV0sWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Im0yMSAzLTcuNzUgNy43NSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjYifV1dfSk7dmFyIE1WLERudD11KCgpPT57TVY9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJtMjEgMy02Ljc1IDYuNzUifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxNCIscjoiNiJ9XV19KTt2YXIgQ1YsJG50PXUoKCk9PntDVj1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2MTEifV0sWyJwYXRoIix7ZDoibTE5IDMtNyA4LTctOFoifV1dfSk7dmFyIHpWLEFudD11KCgpPT57elY9W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjEgMy03IDcifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dfSk7dmFyIF9WLEVudD11KCgpPT57X1Y9W1sicGF0aCIse2Q6Ik04IDNINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDhWNWEyIDIgMCAwIDAtMi0yaC0zIn1dLFsicGF0aCIse2Q6Ik0zIDE2djNhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0xNiAyMWgzYTIgMiAwIDAgMCAyLTJ2LTMifV1dfSk7dmFyIFRWLEludD11KCgpPT57VFY9W1sicGF0aCIse2Q6Ik03LjIxIDE1IDIuNjYgNy4xNGEyIDIgMCAwIDEgLjEzLTIuMkw0LjQgMi44QTIgMiAwIDAgMSA2IDJoMTJhMiAyIDAgMCAxIDEuNi44bDEuNiAyLjE0YTIgMiAwIDAgMSAuMTQgMi4yTDE2Ljc5IDE1In1dLFsicGF0aCIse2Q6Ik0xMSAxMiA1LjEyIDIuMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNS44OC05LjgifV0sWyJwYXRoIix7ZDoiTTggN2g4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yaC0uNSJ9XV19KTt2YXIgTFYsUG50PXUoKCk9PntMVj1bWyJwYXRoIix7ZDoiTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djYifV1dfSk7dmFyIERWLE5udD11KCgpPT57RFY9W1sicGF0aCIse2Q6Ik0xMSA2YTEzIDEzIDAgMCAwIDguNC0yLjhBMSAxIDAgMCAxIDIxIDR2MTJhMSAxIDAgMCAxLTEuNi44QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0In1dLFsicGF0aCIse2Q6Ik04IDZ2OCJ9XV19KTt2YXIgJFYsT250PXUoKCk9PnskVj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgQVYsUm50PXUoKCk9PntBVj1bWyJwYXRoIix7ZDoiTTEyIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDE4di0yIn1dLFsicGF0aCIse2Q6Ik0yIDExaDEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTIwLjUgMTFIMjIifV0sWyJwYXRoIix7ZDoiTTQgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjIwIixoZWlnaHQ6IjEwIixyeDoiMiJ9XV19KTt2YXIgRVYsRm50PXUoKCk9PntFVj1bWyJwYXRoIix7ZDoiTTQgNWgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxOWgxNiJ9XV19KTt2YXIgSVYsQm50PXUoKCk9PntJVj1bWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjEwLjNhNCA0IDAgMCAxLTEuMTcyIDIuODcyTDQgMjIifV0sWyJwYXRoIix7ZDoibTIwIDIyLTUtNSJ9XV19KTt2YXIgUFYsSG50PXUoKCk9PntQVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIE5WLHFudD11KCgpPT57TlY9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBPVixWbnQ9dSgoKT0+e09WPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCJ9XV19KTt2YXIgUlYsam50PXUoKCk9PntSVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDUuMDA0IDIuMjI0IDMgMyAwIDAgMS0uODMyIDIuMDgzbC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ1LS4wMDF6In1dXX0pO3ZhciBGVixVbnQ9dSgoKT0+e0ZWPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgQlYsV250PXUoKCk9PntCVj1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1In1dXX0pO3ZhciBIVixHbnQ9dSgoKT0+e0hWPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBiOCxZbnQ9dSgoKT0+e2I4PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIHFWLEtudD11KCgpPT57cVY9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJtMTAgMTUtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNNyAxMmg4YTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgVlYsWm50PXUoKCk9PntWVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgalYsUW50PXUoKCk9PntqVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgVVYsWG50PXUoKCk9PntVVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBXVixKbnQ9dSgoKT0+e1dWPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNy43IDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJtOSAxMSAyIDIgNC00In1dXX0pO3ZhciBHVixlb3Q9dSgoKT0+e0dWPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMtMy0zLTMifV1dfSk7dmFyIFlWLHRvdD11KCgpPT57WVY9W1sicGF0aCIse2Q6Ik0xNCAzaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0yIDE2djUuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMS4xNDktMS4xNDkifV0sWyJwYXRoIix7ZDoiTTIwIDE5YTIgMiAwIDAgMCAyLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTIyIDZWNWEyIDIgMCAwIDAtMi0yIn1dLFsicGF0aCIse2Q6Ik00IDNhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDIifV0sWyJwYXRoIix7ZDoiTTggM2gyIn1dXX0pO3ZhciBLVixyb3Q9dSgoKT0+e0tWPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV19KTt2YXIgWlYsYW90PXUoKCk9PntaVj1bWyJwYXRoIix7ZDoiTTEyLjcgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQuNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIFFWLGlvdD11KCgpPT57UVY9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41In1dXX0pO3ZhciBYVixzb3Q9dSgoKT0+e1hWPVtbInBhdGgiLHtkOiJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE1Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgSlYsbm90PXUoKCk9PntKVj1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dXX0pO3ZhciBlaixvb3Q9dSgoKT0+e2VqPVtbInBhdGgiLHtkOiJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0In1dXX0pO3ZhciB0aixsb3Q9dSgoKT0+e3RqPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA4djYifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XV19KTt2YXIgcmosY290PXUoKCk9Pntyaj1bWyJwYXRoIix7ZDoiTTE0IDE0YTIgMiAwIDAgMCAyLTJWOGgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE0YTIgMiAwIDAgMCAyLTJWOEg4In1dXX0pO3ZhciBhaixkb3Q9dSgoKT0+e2FqPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyJ9XV19KTt2YXIgaWosdW90PXUoKCk9Pntpaj1bWyJwYXRoIix7ZDoiTTEyIDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xNiAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMTYgOSA2LTYifV1dfSk7dmFyIHNqLHBvdD11KCgpPT57c2o9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTVoNiJ9XSxbInBhdGgiLHtkOiJNNyA3aDgifV1dfSk7dmFyIG5qLGZvdD11KCgpPT57bmo9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXX0pO3ZhciBvaixob3Q9dSgoKT0+e29qPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xNC41IDguNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA4LjUgNSA1In1dXX0pO3ZhciBsaixtb3Q9dSgoKT0+e2xqPVtbInBhdGgiLHtkOiJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSJ9XV19KTt2YXIgY2osZ290PXUoKCk9Pntjaj1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XV19KTt2YXIgZGosYm90PXUoKCk9Pntkaj1bWyJwYXRoIix7ZDoiTTEyIDExLjRWOS4xIn1dLFsicGF0aCIse2Q6Im0xMiAxNyA2LjU5LTYuNTkifV0sWyJwYXRoIix7ZDoibTE1LjA1IDUuNy0uMjE4LS42OTFhMyAzIDAgMCAwLTUuNjYzIDBMNC40MTggMTkuNjk1QTEgMSAwIDAgMCA1LjM3IDIxaDEzLjI1M2ExIDEgMCAwIDAgLjk1MS0xLjMxTDE4LjQ1IDE2LjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciB1aix4b3Q9dSgoKT0+e3VqPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMifV0sWyJwYXRoIix7ZDoiTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiJ9XV19KTt2YXIgcGosdm90PXUoKCk9Pntwaj1bWyJwYXRoIix7ZDoiTTEyIDE5djMifV0sWyJwYXRoIix7ZDoiTTE5IDEwdjJhNyA3IDAgMCAxLTE0IDB2LTIifV0sWyJyZWN0Iix7eDoiOSIseToiMiIsd2lkdGg6IjYiLGhlaWdodDoiMTMiLHJ4OiIzIn1dXX0pO3ZhciB4OCx5b3Q9dSgoKT0+e3g4PVtbInBhdGgiLHtkOiJtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMiJ9XSxbInBhdGgiLHtkOiJNMTYuNSAyMS4xNzRDMTUuNSAyMC41IDE0LjM3MiAyMCAxMyAyMGMtMi4wNTggMC0zLjkyOCAyLjM1Ni02IDItMi4wNzItLjM1Ni0yLjc3NS0zLjM2OS0xLjUtNC41In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiNyIscjoiNSJ9XV19KTt2YXIgZmosd290PXUoKCk9Pntmaj1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE3aDQifV0sWyJwYXRoIix7ZDoiTTEwIDdoNCJ9XSxbInBhdGgiLHtkOiJNMTggMTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMThoMiJ9XSxbInBhdGgiLHtkOiJNMTggNmgyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDIifV0sWyJwYXRoIix7ZDoiTTQgMThoMiJ9XSxbInBhdGgiLHtkOiJNNCA2aDIifV0sWyJyZWN0Iix7eDoiNiIseToiMiIsd2lkdGg6IjEyIixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgaGosa290PXUoKCk9Pntoaj1bWyJwYXRoIix7ZDoiTTYgMThoOCJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XSxbInBhdGgiLHtkOiJNMTQgMjJhNyA3IDAgMSAwIDAtMTRoLTEifV0sWyJwYXRoIix7ZDoiTTkgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMmEyIDIgMCAwIDEtMi0yVjZoNnY0YTIgMiAwIDAgMS0yIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiA2VjNhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgbWosU290PXUoKCk9Pnttaj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI3Iix4OiI2Iix5OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTggOHY3In1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJwYXRoIix7ZDoiTTE4IDE5djIifV1dfSk7dmFyIGdqLE1vdD11KCgpPT57Z2o9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTE4LjE3MiA2YTIgMiAwIDAgMSAxLjQxNC41ODZsMi4wNiAyLjA2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDhsLTIuMDYgMi4wNmEyIDIgMCAwIDEtMS40MTQuNTg2SDRhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTF6In1dXX0pO3ZhciBiaixDb3Q9dSgoKT0+e2JqPVtbInBhdGgiLHtkOiJNOCAyaDgifV0sWyJwYXRoIix7ZDoiTTkgMnYxLjM0M00xNSAydjIuNzg5YTQgNCAwIDAgMCAuNjcyIDIuMjE5bC42NTYuOTg0YTQgNCAwIDAgMSAuNjcyIDIuMjJ2MS4xMzFNNy44IDcuOGwtLjEyOC4xOTJBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIHhqLHpvdD11KCgpPT57eGo9W1sicGF0aCIse2Q6Ik04IDJoOCJ9XSxbInBhdGgiLHtkOiJNOSAydjIuNzg5YTQgNCAwIDAgMS0uNjcyIDIuMjE5bC0uNjU2Ljk4NEE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTkuNzg5YTQgNCAwIDAgMC0uNjcyLTIuMjE5bC0uNjU2LS45ODRBNCA0IDAgMCAxIDE1IDQuNzg4VjIifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NzIgNi40NzIgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV1dfSk7dmFyIHZqLF9vdD11KCgpPT57dmo9W1sicGF0aCIse2Q6Im0xNCAxMCA3LTcifV0sWyJwYXRoIix7ZDoiTTIwIDEwaC02VjQifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik00IDE0aDZ2NiJ9XV19KTt2YXIgeWosVG90PXUoKCk9Pnt5aj1bWyJwYXRoIix7ZDoiTTggM3YzYTIgMiAwIDAgMS0yIDJIMyJ9XSxbInBhdGgiLHtkOiJNMjEgOGgtM2EyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoiTTMgMTZoM2EyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV19KTt2YXIgd2osTG90PXUoKCk9Pnt3aj1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV1dfSk7dmFyIGtqLERvdD11KCgpPT57a2o9W1sicGF0aCIse2Q6Ik0xMSA2IDggOSJ9XSxbInBhdGgiLHtkOiJtMTYgNy04IDgifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgU2osJG90PXUoKCk9PntTaj1bWyJwYXRoIix7ZDoiTTEwIDYuNiA4LjYgOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMTUgNy41IDkuNSAxMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiI4In1dXX0pO3ZhciBNaixBb3Q9dSgoKT0+e01qPVtbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgQ2osRW90PXUoKCk9PntDaj1bWyJwYXRoIix7ZDoiTTExIDEzYTMgMyAwIDEgMSAyLjgzLTRIMTRhMiAyIDAgMCAxIDAgNHoifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciB6aixJb3Q9dSgoKT0+e3pqPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDcuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0In1dLFsicGF0aCIse2Q6Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDcuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIF9qLFBvdD11KCgpPT57X2o9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMiAxMi4zMDdWMTVhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDguNjkzIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dXX0pO3ZhciBUaixOb3Q9dSgoKT0+e1RqPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIExqLE9vdD11KCgpPT57TGo9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xNyAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMS4xODQtMS44MjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLS4yOTMgMS4wNDIifV1dfSk7dmFyIERqLFJvdD11KCgpPT57RGo9W1sicGF0aCIse2Q6Ik0xMCAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xNCAxM1Y3In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgJGosRm90PXUoKCk9Pnskaj1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgQWosQm90PXUoKCk9PntBaj1bWyJwYXRoIix7ZDoiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTl2LTMuOTYgMy4xNSJ9XSxbInBhdGgiLHtkOiJNNyAxOWg1In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiMTIiLHJ4OiIyIn1dXX0pO3ZhciBFaixIb3Q9dSgoKT0+e0VqPVtbInBhdGgiLHtkOiJNNS41IDIwSDgifV0sWyJwYXRoIix7ZDoiTTE3IDloLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxNiIseDoiMTIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjEifV1dfSk7dmFyIElqLHFvdD11KCgpPT57SWo9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiI3Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV19KTt2YXIgUGosVm90PXUoKCk9PntQaj1bWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIE5qLGpvdD11KCgpPT57Tmo9W1sicGF0aCIse2Q6Im0xNC41IDEyLjUtNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIuNSA1LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciBPaixVb3Q9dSgoKT0+e09qPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIyMSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTciLHkyOiIyMSJ9XV19KTt2YXIgUmosV290PXUoKCk9PntSaj1bWyJwYXRoIix7ZDoiTTE4IDVoNCJ9XSxbInBhdGgiLHtkOiJNMjAgM3Y0In1dLFsicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXX0pO3ZhciBGaixHb3Q9dSgoKT0+e0ZqPVtbInBhdGgiLHtkOiJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSJ9XV19KTt2YXIgQmosWW90PXUoKCk9PntCaj1bWyJwYXRoIix7ZDoibTE4IDE0LTEtMyJ9XSxbInBhdGgiLHtkOiJtMyA5IDYgMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDEuOTkgMS44MSJ9XSxbInBhdGgiLHtkOiJNOCAxN2gzYTEgMSAwIDAgMCAxLTEgNiA2IDAgMCAxIDYtNiAxIDEgMCAwIDAgMS0xdi0uNzVBNSA1IDAgMCAwIDE3IDUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTciLHI6IjMifV1dfSk7dmFyIEhqLEtvdD11KCgpPT57SGo9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XSxbInBhdGgiLHtkOiJNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5In1dXX0pO3ZhciBxaixab3Q9dSgoKT0+e3FqPVtbInBhdGgiLHtkOiJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oifV1dfSk7dmFyIFZqLFFvdD11KCgpPT57Vmo9W1sicGF0aCIse2Q6Ik0xMiA3LjMxOFYxMCJ9XSxbInBhdGgiLHtkOiJNNSAxMHY1YTcgNyAwIDAgMCAxNCAwVjljMC0zLjUyNy0yLjYwOC02LjUxNS02LTcifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjQiLHI6IjIifV1dfSk7dmFyIGpqLFhvdD11KCgpPT57amo9W1sicGF0aCIse2Q6Ik0xMiA2di4zNDMifV0sWyJwYXRoIix7ZDoiTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCJ9XSxbInBhdGgiLHtkOiJNMTkgMTMuMzQzVjlBNyA3IDAgMCAwIDguNTYgMi45MDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV19KTt2YXIgVWosSm90PXUoKCk9PntVaj1bWyJwYXRoIix7ZDoibTE1LjU1IDguNDUgNS4xMzggMi4wODdhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjNMOC40NSAxNS41NTEifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJtNi44MTYgMTEuNTI4LTIuNzc5LTYuODRhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDYuODQgMi43NzkifV1dfSk7dmFyIFdqLGUxdD11KCgpPT57V2o9W1sicGF0aCIse2Q6Ik0yLjAzNCAyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0NEw4LjIwNCA3LjU0NWExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NiAzLjQ0M2EuNS41IDAgMCAxLS45NDQuMDMzeiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dLFsicGF0aCIse2Q6Im0xMS44IDExLjggOC40IDguNCJ9XV19KTt2YXIgR2osdDF0PXUoKCk9PntHaj1bWyJwYXRoIix7ZDoiTTQuMDM3IDQuNjg4YS40OTUuNDk1IDAgMCAxIC42NTEtLjY1MWwxNiA2LjVhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjN6In1dXX0pO3ZhciBZaixyMXQ9dSgoKT0+e1lqPVtbInBhdGgiLHtkOiJNMTQgNC4xIDEyIDYifV0sWyJwYXRoIix7ZDoibTUuMSA4LTIuOS0uOCJ9XSxbInBhdGgiLHtkOiJtNiAxMi0xLjkgMiJ9XSxbInBhdGgiLHtkOiJNNy4yIDIuMiA4IDUuMSJ9XSxbInBhdGgiLHtkOiJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiJ9XV19KTt2YXIgS2osYTF0PXUoKCk9PntLaj1bWyJwYXRoIix7ZDoiTTEyIDcuMzE4VjEwIn1dLFsicGF0aCIse2Q6Ik0xOSAxMHY1YTcgNyAwIDAgMS0xNCAwVjljMC0zLjUyNyAyLjYwOC02LjUxNSA2LTcifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiI0IixyOiIyIn1dXX0pO3ZhciBaaixpMXQ9dSgoKT0+e1pqPVtbInBhdGgiLHtkOiJNMTIuNTg2IDEyLjU4NiAxOSAxOSJ9XSxbInBhdGgiLHtkOiJNMy42ODggMy4wMzdhLjQ5Ny40OTcgMCAwIDAtLjY1MS42NTFsNi41IDE1Ljk5OWEuNTAxLjUwMSAwIDAgMCAuOTQ3LS4wNjJsMS41NjktNi4wODNhMiAyIDAgMCAxIDEuNDQ4LTEuNDc5bDYuMTI0LTEuNTc5YS41LjUgMCAwIDAgLjA2My0uOTQ3eiJ9XV19KTt2YXIgUWosczF0PXUoKCk9PntRaj1bWyJyZWN0Iix7eDoiNSIseToiMiIsd2lkdGg6IjE0IixoZWlnaHQ6IjIwIixyeDoiNyJ9XSxbInBhdGgiLHtkOiJNMTIgNnY0In1dXX0pO3ZhciB2OCxuMXQ9dSgoKT0+e3Y4PVtbInBhdGgiLHtkOiJNNSAzdjE2aDE2In1dLFsicGF0aCIse2Q6Im01IDE5IDYtNiJ9XSxbInBhdGgiLHtkOiJtMiA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE4IDE2IDMgMy0zIDMifV1dfSk7dmFyIFhqLG8xdD11KCgpPT57WGo9W1sicGF0aCIse2Q6Ik0xMSAxOUg1di02In1dLFsicGF0aCIse2Q6Ik0xMyA1aDZ2NiJ9XSxbInBhdGgiLHtkOiJNMTkgNSA1IDE5In1dXX0pO3ZhciBKaixsMXQ9dSgoKT0+e0pqPVtbInBhdGgiLHtkOiJNMTkgMTN2NmgtNiJ9XSxbInBhdGgiLHtkOiJNNSAxMVY1aDYifV0sWyJwYXRoIix7ZDoibTUgNSAxNCAxNCJ9XV19KTt2YXIgZVUsYzF0PXUoKCk9PntlVT1bWyJwYXRoIix7ZDoiTTExIDE5SDVWMTMifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV19KTt2YXIgdFUsZDF0PXUoKCk9Pnt0VT1bWyJwYXRoIix7ZDoiTTE5IDEzVjE5SDEzIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIHJVLHUxdD11KCgpPT57clU9W1sicGF0aCIse2Q6Ik04IDE4TDEyIDIyTDE2IDE4In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciBhVSxwMXQ9dSgoKT0+e2FVPVtbInBhdGgiLHtkOiJNNiA4TDIgMTJMNiAxNiJ9XSxbInBhdGgiLHtkOiJNMiAxMkgyMiJ9XV19KTt2YXIgaVUsZjF0PXUoKCk9PntpVT1bWyJwYXRoIix7ZDoiTTE4IDhMMjIgMTJMMTggMTYifV0sWyJwYXRoIix7ZDoiTTIgMTJIMjIifV1dfSk7dmFyIHNVLGgxdD11KCgpPT57c1U9W1sicGF0aCIse2Q6Im0xOCA4IDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dXX0pO3ZhciBuVSxtMXQ9dSgoKT0+e25VPVtbInBhdGgiLHtkOiJNNSAxMVY1SDExIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIG9VLGcxdD11KCgpPT57b1U9W1sicGF0aCIse2Q6Ik0xMyA1SDE5VjExIn1dLFsicGF0aCIse2Q6Ik0xOSA1TDUgMTkifV1dfSk7dmFyIGxVLGIxdD11KCgpPT57bFU9W1sicGF0aCIse2Q6Ik04IDZMMTIgMkwxNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciBjVSx4MXQ9dSgoKT0+e2NVPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XV19KTt2YXIgZFUsdjF0PXUoKCk9PntkVT1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoibTE5IDkgMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXX0pO3ZhciB1VSx5MXQ9dSgoKT0+e3VVPVtbImNpcmNsZSIse2N4OiI4IixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjJsNyA0In1dXX0pO3ZhciBwVSx3MXQ9dSgoKT0+e3BVPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiAxOFYyIn1dXX0pO3ZhciBmVSxrMXQ9dSgoKT0+e2ZVPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJwYXRoIix7ZDoibTkgOSAxMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciBoVSxTMXQ9dSgoKT0+e2hVPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIG1VLE0xdD11KCgpPT57bVU9W1sicGF0aCIse2Q6Ik05LjMxIDkuMzEgNSAyMWw3LTQgNyA0LTEuMTctMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTQuNTMgOC44OCAxMiAybC0xLjE3IDMuMTcifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgZ1UsQzF0PXUoKCk9PntnVT1bWyJwb2x5Z29uIix7cG9pbnRzOiIxMiAyIDE5IDIxIDEyIDE3IDUgMjEgMTIgMiJ9XV19KTt2YXIgYlUsejF0PXUoKCk9PntiVT1bWyJwYXRoIix7ZDoiTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzIn1dLFsicGF0aCIse2Q6Ik0xNy4zOSAxMS43MyAyMiAybC05LjczIDQuNjEifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgeFUsXzF0PXUoKCk9Pnt4VT1bWyJwb2x5Z29uIix7cG9pbnRzOiIzIDExIDIyIDIgMTMgMjEgMTEgMTMgMyAxMSJ9XV19KTt2YXIgdlUsVDF0PXUoKCk9Pnt2VT1bWyJyZWN0Iix7eDoiMTYiLHk6IjE2Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJyZWN0Iix7eDoiOSIseToiMiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTUgMTZ2LTNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjMifV0sWyJwYXRoIix7ZDoiTTEyIDEyVjgifV1dfSk7dmFyIHlVLEwxdD11KCgpPT57eVU9W1sicGF0aCIse2Q6Ik0xNSAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggMTRoLTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjEwIix5OiI2IixyeDoiMSJ9XV19KTt2YXIgd1UsRDF0PXUoKCk9Pnt3VT1bWyJwYXRoIix7ZDoiTTEyIDJ2MTAifV0sWyJwYXRoIix7ZDoibTguNSA0IDcgNCJ9XSxbInBhdGgiLHtkOiJtOC41IDggNy00In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV1dfSk7dmFyIGtVLCQxdD11KCgpPT57a1U9W1sicGF0aCIse2Q6Ik02IDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNiJ9XSxbInBhdGgiLHtkOiJNOS40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTEyLjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XSxbInBhdGgiLHtkOiJNMTYuMzcgMmEyMC4xNiAyMC4xNiAwIDAgMSAwIDIwIn1dXX0pO3ZhciBTVSxBMXQ9dSgoKT0+e1NVPVtbInBhdGgiLHtkOiJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCJ9XSxbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciBNVSxFMXQ9dSgoKT0+e01VPVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMTUgN2g1In1dLFsicGF0aCIse2Q6Ik0xNSAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSAxN2g1In1dXX0pO3ZhciBDVSxJMXQ9dSgoKT0+e0NVPVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOS41IDhoNSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDE2In1dLFsicGF0aCIse2Q6Ik05LjUgMTZIMTQifV1dfSk7dmFyIHpVLFAxdD11KCgpPT57elU9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjIwIn1dXX0pO3ZhciBfVSxOMXQ9dSgoKT0+e19VPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEifV0sWyJwYXRoIix7ZDoiTTEzIDIyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNCAxNHYtMiJ9XSxbInBhdGgiLHtkOiJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXX0pO3ZhciBUVSxPMXQ9dSgoKT0+e1RVPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxOCIseDoiNCIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTBoNiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDUifV1dfSk7dmFyIExVLFIxdD11KCgpPT57TFU9W1sicGF0aCIse2Q6Ik0xMiA0VjIifV0sWyJwYXRoIix7ZDoiTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyYTcuMDEgNy4wMSAwIDAgMCA0LjEyNS0yLjkzOSJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2My4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDEyYy0xLjM0OS0uNTczLTEuOTA1LTEuMDA1LTIuNS0yLS41NDYuOTAyLTEuMDQ4IDEuMzUzLTIuNSAyLTEuMDE4LS42NDQtMS40Ni0xLjA4LTItMi0xLjAyOC43MS0xLjY5LjkxOC0zIDEgMS4wODEtMS4wNDggMS43NTctMi4wMyAyLTMgLjE5NC0uNzc2Ljg0LTEuNTUxIDEuNzktMi4yMW0xMS42NTQgNS45OTdjLjg4Ny0uNDU3IDEuMjgtLjg5MSAxLjU1Ni0xLjc4NyAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNC0uNzQgMC0xLjQ2MS4wNjgtMi4xNS4xOTIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgRFUsRjF0PXUoKCk9PntEVT1bWyJwYXRoIix7ZDoiTTEyIDRWMiJ9XSxbInBhdGgiLHtkOiJNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJBNy4wMDMgNy4wMDMgMCAwIDAgMTkgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDRDOCA0IDQuNSA2IDQgOGMtLjI0My45Ny0uOTE5IDEuOTUyLTIgMyAxLjMxLS4wODIgMS45NzItLjI5IDMtMSAuNTQuOTIuOTgyIDEuMzU2IDIgMiAxLjQ1Mi0uNjQ3IDEuOTU0LTEuMDk4IDIuNS0yIC41OTUuOTk1IDEuMTUxIDEuNDI3IDIuNSAyIDEuMzEtLjYyMSAxLjg2Mi0xLjA1OCAyLjUtMiAuNjI5Ljk3NyAxLjE2MiAxLjQyMyAyLjUgMiAxLjIwOS0uNTQ4IDEuNjgtLjk2NyAyLTIgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTRaIn1dXX0pO3ZhciB5OCxCMXQ9dSgoKT0+e3k4PVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6In1dXX0pO3ZhciAkVSxIMXQ9dSgoKT0+eyRVPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgdzgscTF0PXUoKCk9Pnt3OD1bWyJwYXRoIix7ZDoiTTEwIDE1VjkifV0sWyJwYXRoIix7ZDoiTTE0IDE1VjkifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXX0pO3ZhciBrOCxWMXQ9dSgoKT0+e2s4PVtbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dLFsicGF0aCIse2Q6Im05IDkgNiA2In1dXX0pO3ZhciBBVSxqMXQ9dSgoKT0+e0FVPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIEVVLFUxdD11KCgpPT57RVU9W1sicGF0aCIse2Q6Ik0zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEifV1dfSk7dmFyIElVLFcxdD11KCgpPT57SVU9W1sicGF0aCIse2Q6Ik0zIDNoNmw2IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE0IDNoNyJ9XV19KTt2YXIgUFUsRzF0PXUoKCk9PntQVT1bWyJwYXRoIix7ZDoiTTEyIDEyVjRhMSAxIDAgMCAxIDEtMWg2LjI5N2ExIDEgMCAwIDEgLjY1MSAxLjc1OWwtNC42OTYgNC4wMjUifV0sWyJwYXRoIix7ZDoibTEyIDIxLTcuNDE0LTcuNDE0QTIgMiAwIDAgMSA0IDEyLjE3MlY2LjQxNWExLjAwMiAxLjAwMiAwIDAgMSAxLjcwNy0uNzA3TDIwIDIwLjAwOSJ9XSxbInBhdGgiLHtkOiJtMTIuMjE0IDMuMzgxIDguNDE0IDE0Ljk2NmExIDEgMCAwIDEtLjE2NyAxLjE5OWwtMS4xNjggMS4xNjNhMSAxIDAgMCAxLS43MDYuMjkxSDYuMzUxYTEgMSAwIDAgMS0uNjI1LS4yMTlMMy4yNSAxOC44YTEgMSAwIDAgMSAuNjMxLTEuNzgxbDQuMTY1LjAyNyJ9XV19KTt2YXIgTlUsWTF0PXUoKCk9PntOVT1bWyJwYXRoIix7ZDoiTTIwLjM0MSA2LjQ4NEExMCAxMCAwIDAgMSAxMC4yNjYgMjEuODUifV0sWyJwYXRoIix7ZDoiTTMuNjU5IDE3LjUxNkExMCAxMCAwIDAgMSAxMy43NCAyLjE1MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIE9VLEsxdD11KCgpPT57T1U9W1sicGF0aCIse2Q6Ik0xMiAzdjYifV0sWyJwYXRoIix7ZDoiTTE2Ljc2IDNhMiAyIDAgMCAxIDEuOCAxLjFsMi4yMyA0LjQ3OWEyIDIgMCAwIDEgLjIxLjg5MVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY5LjQ3MmEyIDIgMCAwIDEgLjIxMS0uODk0TDUuNDUgNC4xQTIgMiAwIDAgMSA3LjI0IDN6In1dLFsicGF0aCIse2Q6Ik0zLjA1NCA5LjAxM2gxNy44OTMifV1dfSk7dmFyIFJVLFoxdD11KCgpPT57UlU9W1sicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTcgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMTI3VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43MjlsNyA0YTIgMiAwIDAgMCAyIC4wMDFsMS4zMi0uNzUzIn1dLFsicGF0aCIse2Q6Ik0zLjI5IDcgMTIgMTJsOC43MS01In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA4Ljk5NyA1LjE0OCJ9XV19KTt2YXIgRlUsUTF0PXUoKCk9PntGVT1bWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0yMSAxM1Y4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBCVSxYMXQ9dSgoKT0+e0JVPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTkifV0sWyJwYXRoIix7ZDoiTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6In1dXX0pO3ZhciBIVSxKMXQ9dSgoKT0+e0hVPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE0djYifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjUzNVY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBxVSxlbHQ9dSgoKT0+e3FVPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoibTE2LjUgMTQuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE2LjUgMTkuNSA1LTUifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjVWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuMTMtLjA3NCJ9XSxbInBhdGgiLHtkOiJNMy4yOSA3IDEyIDEybDguNzEtNSJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOC45OTcgNS4xNDgifV1dfSk7dmFyIFZVLHRsdD11KCgpPT57VlU9W1sicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBhdGgiLHtkOiJNMjAuMjcgMTguMjcgMjIgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjQ5OFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbC45OC0uNTU5In1dLFsicGF0aCIse2Q6Ik0zLjI5IDcgMTIgMTJsOC43MS01In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA4Ljk5NyA1LjE0OCJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTYuNSIscjoiMi41In1dXX0pO3ZhciBqVSxybHQ9dSgoKT0+e2pVPVtbInBhdGgiLHtkOiJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV1dfSk7dmFyIFVVLGFsdD11KCgpPT57VVU9W1sicGF0aCIse2Q6Ik0xMSA3IDYgMiJ9XSxbInBhdGgiLHtkOiJNMTguOTkyIDEySDIuMDQxIn1dLFsicGF0aCIse2Q6Ik0yMS4xNDUgMTguMzhBMy4zNCAzLjM0IDAgMCAxIDIwIDE2LjVhMy4zIDMuMyAwIDAgMS0xLjE0NSAxLjg4Yy0uNTc1LjQ2LS44NTUgMS4wMi0uODU1IDEuNTk1QTIgMiAwIDAgMCAyMCAyMmEyIDIgMCAwIDAgMi0yLjAyNWMwLS41OC0uMjg1LTEuMTMtLjg1NS0xLjU5NSJ9XSxbInBhdGgiLHtkOiJtOC41IDQuNSAyLjE0OC0yLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDcuMjk2IDcuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTcuNTkyIDcuNTkyYTMuNjE1IDMuNjE1IDAgMCAxLTUuMTEyIDBsLTMuODg4LTMuODg4YTMuNjE1IDMuNjE1IDAgMCAxIDAtNS4xMTJMNS42NyA3LjMzIn1dXX0pO3ZhciBXVSxpbHQ9dSgoKT0+e1dVPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDE2di0yYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI2Iix4OiI4Iix5OiIxNiIscng6IjEifV1dfSk7dmFyIFM4LHNsdD11KCgpPT57Uzg9W1sicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjlINlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDEyYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAwIDAgMiAyaDJhMSAxIDAgMCAxIDEgMXYyLjlhMiAyIDAgMSAwIDQgMFYxN2ExIDEgMCAwIDEgMS0xaDJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xIn1dXX0pO3ZhciBHVSxubHQ9dSgoKT0+e0dVPVtbInBhdGgiLHtkOiJtMTQuNjIyIDE3Ljg5Ny0xMC42OC0yLjkxMyJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweiJ9XSxbInBhdGgiLHtkOiJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUifV1dfSk7dmFyIFlVLG9sdD11KCgpPT57WVU9W1sicGF0aCIse2Q6Ik0xMiAyMmExIDEgMCAwIDEgMC0yMCAxMCA5IDAgMCAxIDEwIDkgNSA1IDAgMCAxLTUgNWgtMi4yNWExLjc1IDEuNzUgMCAwIDAtMS40IDIuOGwuMy40YTEuNzUgMS43NSAwIDAgMS0xLjQgMi44eiJ9XSxbImNpcmNsZSIse2N4OiIxMy41IixjeToiNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiOC41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBLVSxsbHQ9dSgoKT0+e0tVPVtbInBhdGgiLHtkOiJNMTEuMjUgMTcuMjVoMS41TDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJtMTUgMTIgMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCA2LjVhLjUuNSAwIDAgMC0uNS0uNSJ9XSxbInBhdGgiLHtkOiJNMjAuNjkgOS42N2E0LjUgNC41IDAgMSAwLTcuMDQtNS41IDguMzUgOC4zNSAwIDAgMC0zLjMgMCA0LjUgNC41IDAgMSAwLTcuMDQgNS41QzIuNDkgMTEuMiAyIDEyLjg4IDIgMTQuNSAyIDE5LjQ3IDYuNDggMjIgMTIgMjJzMTAtMi41MyAxMC03LjVjMC0xLjYyLS40OC0zLjMtMS4zLTQuODMifV0sWyJwYXRoIix7ZDoiTTYgNi41YS40OTUuNDk1IDAgMCAxIC41LS41In1dLFsicGF0aCIse2Q6Im05IDEyLTIgMiJ9XV19KTt2YXIgWlUsY2x0PXUoKCk9PntaVT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJtMTUgOC0zIDMtMy0zIn1dXX0pO3ZhciBNOCxkbHQ9dSgoKT0+e004PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XV19KTt2YXIgUVUsdWx0PXUoKCk9PntRVT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV19KTt2YXIgWFUscGx0PXUoKCk9PntYVT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dXX0pO3ZhciBDOCxmbHQ9dSgoKT0+e0M4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE1LTMtMyAzLTMifV1dfSk7dmFyIHo4LGhsdD11KCgpPT57ejg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTR2MSJ9XSxbInBhdGgiLHtkOiJNOSAxOXYyIn1dLFsicGF0aCIse2Q6Ik05IDN2MiJ9XSxbInBhdGgiLHtkOiJNOSA5djEifV1dfSk7dmFyIF84LG1sdD11KCgpPT57Xzg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTQgOSAzIDMtMyAzIn1dXX0pO3ZhciBKVSxnbHQ9dSgoKT0+e0pVPVtbInBhdGgiLHtkOiJNMTUgMTBWOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTV2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0xNSA1VjMifV0sWyJwYXRoIix7ZDoiTTkgMTBWOSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNOSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNOSA1VjMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgVDgsYmx0PXUoKCk9PntUOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dXX0pO3ZhciBlVyx4bHQ9dSgoKT0+e2VXPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Im04IDkgMyAzLTMgMyJ9XV19KTt2YXIgTDgsdmx0PXUoKCk9PntMOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTUgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNSA5djEifV1dfSk7dmFyIHRXLHlsdD11KCgpPT57dFc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV1dfSk7dmFyIHJXLHdsdD11KCgpPT57clc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dfSk7dmFyIGFXLGtsdD11KCgpPT57YVc9W1sicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTE5IDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBpVyxTbHQ9dSgoKT0+e2lXPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zIDMgMyJ9XV19KTt2YXIgRDgsTWx0PXUoKCk9PntEOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgOWgyIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XV19KTt2YXIgc1csQ2x0PXUoKCk9PntzVz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Im0xNSAxNC0zIDMtMy0zIn1dXX0pO3ZhciBuVyx6bHQ9dSgoKT0+e25XPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV1dfSk7dmFyIG9XLF9sdD11KCgpPT57b1c9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxMiJ9XV19KTt2YXIgbFcsVGx0PXUoKCk9PntsVz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgJDgsTGx0PXUoKCk9PnskOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik05IDIxVjkifV1dfSk7dmFyIGNXLERsdD11KCgpPT57Y1c9W1sicGF0aCIse2Q6Im0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MSJ9XV19KTt2YXIgZFcsJGx0PXUoKCk9PntkVz1bWyJwYXRoIix7ZDoiTTggMjFzLTQtMy00LTkgNC05IDQtOSJ9XSxbInBhdGgiLHtkOiJNMTYgM3M0IDMgNCA5LTQgOS00IDkifV1dfSk7dmFyIHVXLEFsdD11KCgpPT57dVc9W1sicGF0aCIse2Q6Ik0xMSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xNS4yODIgMTlhMSAxIDAgMCAwIC45NDgtLjY4bDIuMzctNi45ODhhNyA3IDAgMSAwLTEzLjIgMGwyLjM3IDYuOTg4YTEgMSAwIDAgMCAuOTQ4LjY4eiJ9XSxbInBhdGgiLHtkOiJNOSA5YTMgMyAwIDEgMSA2IDAifV1dfSk7dmFyIHBXLEVsdD11KCgpPT57cFc9W1sicmVjdCIse3g6IjE0Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiIxOCIscng6IjEifV0sWyJyZWN0Iix7eDoiNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dXX0pO3ZhciBmVyxJbHQ9dSgoKT0+e2ZXPVtbInBhdGgiLHtkOiJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkifV0sWyJwYXRoIix7ZDoiTTQgM2guMDEifV0sWyJwYXRoIix7ZDoiTTIyIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCJ9XSxbInBhdGgiLHtkOiJtMjIgMTMtLjgyLS4zM2MtLjg2LS4zNC0xLjgyLjItMS45OCAxLjExYy0uMTEuNy0uNzIgMS4yMi0xLjQzIDEuMjJIMTcifV0sWyJwYXRoIix7ZDoibTExIDIgLjMzLjgyYy4zNC44Ni0uMiAxLjgyLTEuMTEgMS45OEM5LjUyIDQuOSA5IDUuNTIgOSA2LjIzVjcifV0sWyJwYXRoIix7ZDoiTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMloifV1dfSk7dmFyIGhXLFBsdD11KCgpPT57aFc9W1siY2lyY2xlIix7Y3g6IjExIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxMGE1IDUgMCAwIDEgNSA1djMuNWEzLjUgMy41IDAgMCAxLTYuODQgMS4wNDVRNi41MiAxNy40OCA0LjQ2IDE2Ljg0QTMuNSAzLjUgMCAwIDEgNS41IDEwWiJ9XV19KTt2YXIgbVcsTmx0PXUoKCk9PnttVz1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDZoNiJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXX0pO3ZhciBBOCxPbHQ9dSgoKT0+e0E4PVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV19KTt2YXIgZ1csUmx0PXUoKCk9PntnVz1bWyJwYXRoIix7ZDoibTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MiJ9XSxbInBhdGgiLHtkOiJtMTIuODI5IDcuMTcyIDQuMzU5LTQuMzQ2YTEgMSAwIDEgMSAzLjk4NiAzLjk4NmwtNC4zNTMgNC4zNTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgRTgsRmx0PXUoKCk9PntFOD1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyIGJXLEJsdD11KCgpPT57Ylc9W1sicGF0aCIse2Q6Ik0xNS43MDcgMjEuMjkzYTEgMSAwIDAgMS0xLjQxNCAwbC0xLjU4Ni0xLjU4NmExIDEgMCAwIDEgMC0xLjQxNGw1LjU4Ni01LjU4NmExIDEgMCAwIDEgMS40MTQgMGwxLjU4NiAxLjU4NmExIDEgMCAwIDEgMCAxLjQxNHoifV0sWyJwYXRoIix7ZDoibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCJ9XSxbInBhdGgiLHtkOiJtMi4zIDIuMyA3LjI4NiA3LjI4NiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiIyIn1dXX0pO3ZhciB4VyxIbHQ9dSgoKT0+e3hXPVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyIHZXLHFsdD11KCgpPT57dlc9W1sicGF0aCIse2Q6Im0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIifV0sWyJwYXRoIix7ZDoibTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzIn1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciB5VyxWbHQ9dSgoKT0+e3lXPVtbInBhdGgiLHtkOiJNMTMgNyA4LjcgMi43YTIuNDEgMi40MSAwIDAgMC0zLjQgMEwyLjcgNS4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNEw3IDEzIn1dLFsicGF0aCIse2Q6Im04IDYgMi0yIn1dLFsicGF0aCIse2Q6Im0xOCAxNiAyLTIifV0sWyJwYXRoIix7ZDoibTE3IDExIDQuMyA0LjNjLjk0Ljk0Ljk0IDIuNDYgMCAzLjRsLTIuNiAyLjZjLS45NC45NC0yLjQ2Ljk0LTMuNCAwTDExIDE3In1dLFsicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XV19KTt2YXIgd1csamx0PXUoKCk9Pnt3Vz1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXX0pO3ZhciBrVyxVbHQ9dSgoKT0+e2tXPVtbInBhdGgiLHtkOiJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoifV1dfSk7dmFyIFNXLFdsdD11KCgpPT57U1c9W1sibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiNi41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV19KTt2YXIgTVcsR2x0PXUoKCk9PntNVz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsicGF0aCIse2Q6Im05IDIwIDMtNiAzIDYifV0sWyJwYXRoIix7ZDoibTYgOCA2IDIgNi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY0In1dXX0pO3ZhciBDVyxZbHQ9dSgoKT0+e0NXPVtbInBhdGgiLHtkOiJNMjAgMTFINCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDcifV1dfSk7dmFyIHpXLEtsdD11KCgpPT57elc9W1sicGF0aCIse2Q6Ik0xMyAyYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTEzIDZhNSA1IDAgMCAxIDUgNSJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIF9XLFpsdD11KCgpPT57X1c9W1sicGF0aCIse2Q6Ik0xNCA2aDgifV0sWyJwYXRoIix7ZDoibTE4IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFRXLFFsdD11KCgpPT57VFc9W1sicGF0aCIse2Q6Ik0xNiAydjZoNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXX0pO3ZhciBMVyxYbHQ9dSgoKT0+e0xXPVtbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV19KTt2YXIgRFcsSmx0PXUoKCk9PntEVz1bWyJwYXRoIix7ZDoiTTEwLjEgMTMuOWExNCAxNCAwIDAgMCAzLjczMiAyLjY2OCAxIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDIgMTggMTggMCAwIDEtMTIuNzI4LTUuMjcyIn1dLFsicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuNzYgMTMuNTgyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIC4yNDQuNDczIn1dXX0pO3ZhciAkVyxlMnQ9dSgoKT0+eyRXPVtbInBhdGgiLHtkOiJtMTYgOCA2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDhWMmgtNiJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIEFXLHQydD11KCgpPT57QVc9W1sicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV19KTt2YXIgRVcscjJ0PXUoKCk9PntFVz1bWyJsaW5lIix7eDE6IjkiLHgyOiI5Iix5MToiNCIseTI6IjIwIn1dLFsicGF0aCIse2Q6Ik00IDdjMC0xLjcgMS4zLTMgMy0zaDEzIn1dLFsicGF0aCIse2Q6Ik0xOCAyMGMtMS43IDAtMy0xLjMtMy0zVjQifV1dfSk7dmFyIElXLGEydD11KCgpPT57SVc9W1sicGF0aCIse2Q6Ik0xOC41IDhjLTEuNCAwLTIuNi0uOC0zLjItMkE2Ljg3IDYuODcgMCAwIDAgMiA5djExYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtOC41QzIyIDkuNiAyMC40IDggMTguNSA4In1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0IDE0djQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djQifV1dfSk7dmFyIFBXLGkydD11KCgpPT57UFc9W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkuOTk5In1dLFsicGF0aCIse2Q6Ik0xNS45NzMgNC4wMjdBMTMgMTMgMCAwIDAgNS45MDIgMi4zNzNjLTEuMzk4LjM0Mi0xLjA5MiAyLjE1OC4yNzcgMi42MDFhMTkuOSAxOS45IDAgMCAxIDUuODIyIDMuMDI0In1dLFsicGF0aCIse2Q6Ik0xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5In1dLFsicGF0aCIse2Q6Ik0xOC4zNTIgMy4zNTJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMGwtNS4yOTYgNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDUuMjk2LTUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDR6In1dXX0pO3ZhciBOVyxzMnQ9dSgoKT0+e05XPVtbInBhdGgiLHtkOiJNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNyIseDoiMTIiLHk6IjEzIixyeDoiMiJ9XV19KTt2YXIgT1csbjJ0PXUoKCk9PntPVz1bWyJwYXRoIix7ZDoiTTIgMTBoNlY0In1dLFsicGF0aCIse2Q6Im0yIDQgNiA2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY3YTIgMiAwIDAgMC0yLTJoLTcifV0sWyJwYXRoIix7ZDoiTTMgMTR2MmEyIDIgMCAwIDAgMiAyaDMifV0sWyJyZWN0Iix7eDoiMTIiLHk6IjE0Iix3aWR0aDoiMTAiLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIFJXLG8ydD11KCgpPT57Ulc9W1sicGF0aCIse2Q6Ik0xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4djFhMiAyIDAgMCAwIDIgMmgxIn1dXX0pO3ZhciBGVyxsMnQ9dSgoKT0+e0ZXPVtbInBhdGgiLHtkOiJNMTQgM3YxMSJ9XSxbInBhdGgiLHtkOiJNMTQgOWgtM2EzIDMgMCAwIDEgMC02aDkifV0sWyJwYXRoIix7ZDoiTTE4IDN2MTEifV0sWyJwYXRoIix7ZDoiTTIyIDE4SDJsNC00In1dLFsicGF0aCIse2Q6Im02IDIyLTQtNCJ9XV19KTt2YXIgQlcsYzJ0PXUoKCk9PntCVz1bWyJwYXRoIix7ZDoiTTEwIDN2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDlIN2ExIDEgMCAwIDEgMC02aDgifV0sWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoibTE4IDE0IDQgNEgyIn1dLFsicGF0aCIse2Q6Im0yMiAxOC00IDQifV1dfSk7dmFyIEhXLGQydD11KCgpPT57SFc9W1sicGF0aCIse2Q6Ik0xMyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMyJ9XV19KTt2YXIgcVcsdTJ0PXUoKCk9PntxVz1bWyJwYXRoIix7ZDoiTTE4IDExaC00YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTYgN3YxM2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY3In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI1Iix4OiI0Iix5OiIyIixyeDoiMSJ9XV19KTt2YXIgVlcscDJ0PXUoKCk9PntWVz1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik05IDl2MS43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMSJ9XV19KTt2YXIgalcsZjJ0PXUoKCk9PntqVz1bWyJwYXRoIix7ZDoibTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WiJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA3IDcifV1dfSk7dmFyIFVXLGgydD11KCgpPT57VVc9W1sicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik05IDEwLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDQgMSAxIDAgMCAxIDEgMXoifV1dfSk7dmFyIFdXLG0ydD11KCgpPT57V1c9W1sicGF0aCIse2Q6Im0xMiA5LTguNDE0IDguNDE0QTIgMiAwIDAgMCAzIDE4LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMy44MjggMjFoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMTUgMTIifV0sWyJwYXRoIix7ZDoibTE4IDkgLjQuNGExIDEgMCAxIDEtMyAzbC0zLjgtMy44YTEgMSAwIDEgMSAzLTNsLjQuNCAzLjQtMy40YTEgMSAwIDEgMSAzIDN6In1dLFsicGF0aCIse2Q6Im0yIDIyIC40MTQtLjQxNCJ9XV19KTt2YXIgR1csZzJ0PXUoKCk9PntHVz1bWyJwYXRoIix7ZDoibTEyIDE0LTEgMSJ9XSxbInBhdGgiLHtkOiJtMTMuNzUgMTguMjUtMS4yNSAxLjQyIn1dLFsicGF0aCIse2Q6Ik0xNy43NzUgNS42NTRhMTUuNjggMTUuNjggMCAwIDAtMTIuMTIxIDEyLjEyIn1dLFsicGF0aCIse2Q6Ik0xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNyJ9XSxbInBhdGgiLHtkOiJNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6In1dXX0pO3ZhciBZVyxiMnQ9dSgoKT0+e1lXPVtbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XSxbInBhdGgiLHtkOiJNMy43NyAxMC43NyAyIDlsMi00LjUgMS4xLjU1Yy41NS4yOC45Ljg0LjkgMS40NXMuMzUgMS4xNy45IDEuNDVMOCA4LjVsMy02IDEuMDUuNTNhMiAyIDAgMCAxIDEuMDkgMS41MmwuNzIgNS40YTIgMiAwIDAgMCAxLjA5IDEuNTJsNC40IDIuMmMuNDIuMjIuNzguNTUgMS4wMS45NmwuNiAxLjAzYy40OS44OC0uMDYgMS45OC0xLjA2IDIuMWwtMS4xOC4xNWMtLjQ3LjA2LS45NS0uMDItMS4zNy0uMjRMNC4yOSAxMS4xNWEyIDIgMCAwIDEtLjUyLS4zOFoifV1dfSk7dmFyIEtXLHgydD11KCgpPT57S1c9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik02LjM2IDE3LjQgNCAxN2wtMi00IDEuMS0uNTVhMiAyIDAgMCAxIDEuOCAwbC4xNy4xYTIgMiAwIDAgMCAxLjggMEw4IDEyIDUgNmwuOS0uNDVhMiAyIDAgMCAxIDIuMDkuMmw0LjAyIDNhMiAyIDAgMCAwIDIuMS4ybDQuMTktMi4wNmEyLjQxIDIuNDEgMCAwIDEgMS43My0uMTdMMjEgN2ExLjQgMS40IDAgMCAxIC44NyAxLjk5bC0uMzguNzZjLS4yMy40Ni0uNi44NC0xLjA3IDEuMDhMNy41OCAxNy4yYTIgMiAwIDAgMS0xLjIyLjE4WiJ9XV19KTt2YXIgWlcsdjJ0PXUoKCk9PntaVz1bWyJwYXRoIix7ZDoiTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41QzIxIDYgMjEuNSA0IDIxIDNjLTEtLjUtMyAwLTQuNSAxLjVMMTMgOCA0LjggNi4yYy0uNS0uMS0uOS4xLTEuMS41bC0uMy41Yy0uMi41LS4xIDEgLjMgMS4zTDkgMTJsLTIgM0g0bC0xIDEgMyAyIDIgMyAxLTF2LTNsMy0yIDMuNSA1LjNjLjMuNC44LjUgMS4zLjNsLjUtLjJjLjQtLjMuNi0uNy41LTEuMnoifV1dfSk7dmFyIFFXLHkydD11KCgpPT57UVc9W1sicGF0aCIse2Q6Ik01IDVhMiAyIDAgMCAxIDMuMDA4LTEuNzI4bDExLjk5NyA2Ljk5OGEyIDIgMCAwIDEgLjAwMyAzLjQ1OGwtMTIgN0EyIDIgMCAwIDEgNSAxOXoifV1dfSk7dmFyIFhXLHcydD11KCgpPT57WFc9W1sicGF0aCIse2Q6Ik05IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMnY2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWiJ9XV19KTt2YXIgSTgsazJ0PXUoKCk9PntJOD1bWyJwYXRoIix7ZDoiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNy41IDEzLjUgMTAgMTEifV0sWyJwYXRoIix7ZDoiTTEwLjUgMTYuNSAxMyAxNCJ9XSxbInBhdGgiLHtkOiJtMTggMy00IDRoNmwtNCA0In1dXX0pO3ZhciBKVyxTMnQ9dSgoKT0+e0pXPVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XV19KTt2YXIgZUcsTTJ0PXUoKCk9PntlRz1bWyJwYXRoIix7ZDoiTTMgMnYxYzAgMSAyIDEgMiAyUzMgNiAzIDdzMiAxIDIgMi0yIDEtMiAyIDIgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAuODMgOC44M2E0IDQgMCAwIDAtNS42Ni01LjY2bC0xMiAxMmE0IDQgMCAxIDAgNS42NiA1LjY2WiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNjZWMjJhNCA0IDAgMCAwIDQtNFY2In1dXX0pO3ZhciB0RyxDMnQ9dSgoKT0+e3RHPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE1IDhWMiJ9XSxbInBhdGgiLHtkOiJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgOFYyIn1dXX0pO3ZhciByRyx6MnQ9dSgoKT0+e3JHPVtbInBhdGgiLHtkOiJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNGE1IDUgMCAxIDEgOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgYUcsXzJ0PXUoKCk9PnthRz1bWyJwYXRoIix7ZDoiTTEwIDQuNVY0YTIgMiAwIDAgMC0yLjQxLTEuOTU3In1dLFsicGF0aCIse2Q6Ik0xMy45IDguNGEyIDIgMCAwIDAtMS4yNi0xLjI5NSJ9XSxbInBhdGgiLHtkOiJNMjEuNyAxNi4yQTggOCAwIDAgMCAyMiAxNHYtM2EyIDIgMCAxIDAtNCAwdi0xYTIgMiAwIDAgMC0zLjYzLTEuMTU4In1dLFsicGF0aCIse2Q6Im03IDE1LTEuOC0xLjhhMiAyIDAgMCAwLTIuNzkgMi44Nkw2IDE5LjdhNy43NCA3Ljc0IDAgMCAwIDYgMi4zaDJhOCA4IDAgMCAwIDUuNjU3LTIuMzQzIn1dLFsicGF0aCIse2Q6Ik02IDZ2OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBpRyxUMnQ9dSgoKT0+e2lHPVtbInBhdGgiLHtkOiJNMTggOGEyIDIgMCAwIDAgMC00IDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMCAwIDQifV0sWyJwYXRoIix7ZDoiTTEwIDIyIDkgOCJ9XSxbInBhdGgiLHtkOiJtMTQgMjIgMS0xNCJ9XSxbInBhdGgiLHtkOiJNMjAgOGMuNSAwIC45LjQuOCAxbC0yLjYgMTJjLS4xLjUtLjcgMS0xLjIgMUg3Yy0uNiAwLTEuMS0uNC0xLjItMUwzLjIgOWMtLjEtLjYuMy0xIC44LTFaIn1dXX0pO3ZhciBzRyxMMnQ9dSgoKT0+e3NHPVtbInBhdGgiLHtkOiJNMTguNiAxNC40Yy44LS44LjgtMiAwLTIuOGwtOC4xLTguMWE0Ljk1IDQuOTUgMCAxIDAtNy4xIDcuMWw4LjEgOC4xYy45LjcgMi4xLjcgMi45LS4xWiJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS41LTUuNSJ9XV19KTt2YXIgbkcsRDJ0PXUoKCk9PntuRz1bWyJwYXRoIix7ZDoiTTIyIDE0YTggOCAwIDAgMS04IDgifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41VjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBvRywkMnQ9dSgoKT0+e29HPVtbInBhdGgiLHtkOiJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djE0In1dLFsicGF0aCIse2Q6Ik02IDIxaDEyIn1dLFsicGF0aCIse2Q6Ik02IDEzaDEwIn1dXX0pO3ZhciBsRyxBMnQ9dSgoKT0+e2xHPVtbInBhdGgiLHtkOiJNMTIgMnYxMCJ9XSxbInBhdGgiLHtkOiJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0In1dXX0pO3ZhciBjRyxFMnQ9dSgoKT0+e2NHPVtbInBhdGgiLHtkOiJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUifV0sWyJwYXRoIix7ZDoiTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBkRyxJMnQ9dSgoKT0+e2RHPVtbInBhdGgiLHtkOiJNMiAzaDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAzdjExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoibTcgMjEgNS01IDUgNSJ9XV19KTt2YXIgdUcsUDJ0PXUoKCk9Pnt1Rz1bWyJwYXRoIix7ZDoiTTEzLjUgMjJIN2ExIDEgMCAwIDEtMS0xdi02YTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXYuNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dXX0pO3ZhciBwRyxOMnQ9dSgoKT0+e3BHPVtbInBhdGgiLHtkOiJNMTIuNTMxIDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDYuMzc3In1dLFsicGF0aCIse2Q6Im0xNi41IDE2LjUgNSA1In1dLFsicGF0aCIse2Q6Im0xNi41IDIxLjUgNS01In1dLFsicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MS41In1dLFsicGF0aCIse2Q6Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiJ9XV19KTt2YXIgZkcsTzJ0PXUoKCk9PntmRz1bWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dLFsicmVjdCIse3g6IjYiLHk6IjE0Iix3aWR0aDoiMTIiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIGhHLFIydD11KCgpPT57aEc9W1sicGF0aCIse2Q6Ik01IDcgMyA1In1dLFsicGF0aCIse2Q6Ik05IDZWMyJ9XSxbInBhdGgiLHtkOiJtMTMgNyAyLTIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEzIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMS44MyAxMkgyMGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgyLjE3In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgyIn1dXX0pO3ZhciBtRyxGMnQ9dSgoKT0+e21HPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA5djExIn1dLFsicGF0aCIse2Q6Ik0yIDloMTNhMiAyIDAgMCAxIDIgMnY5In1dXX0pO3ZhciBnRyxCMnQ9dSgoKT0+e2dHPVtbInBhdGgiLHtkOiJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiJ9XV19KTt2YXIgYkcsSDJ0PXUoKCk9PntiRz1bWyJwYXRoIix7ZDoiTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFoifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dfSk7dmFyIHhHLHEydD11KCgpPT57eEc9W1sicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjE2Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNSIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC0zYTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMjEgMjF2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA3djNhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0zIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE2di4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMXYtMSJ9XV19KTt2YXIgdkcsVjJ0PXUoKCk9Pnt2Rz1bWyJwYXRoIix7ZDoiTTE2IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dXX0pO3ZhciB5RyxqMnQ9dSgoKT0+e3lHPVtbInBhdGgiLHtkOiJNMTMgMTZhMyAzIDAgMCAxIDIuMjQgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMWgtOGE0IDQgMCAwIDEtNC00IDcgNyAwIDAgMSA3LTdoLjJMOS42IDYuNGExIDEgMCAxIDEgMi44LTIuOEwxNS44IDdoLjJjMy4zIDAgNiAyLjcgNiA2djFhMiAyIDAgMCAxLTIgMmgtMWEzIDMgMCAwIDAtMyAzIn1dLFsicGF0aCIse2Q6Ik0yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik03LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMifV1dfSk7dmFyIHdHLFUydD11KCgpPT57d0c9W1sicGF0aCIse2Q6Ik0xOS4wNyA0LjkzQTEwIDEwIDAgMCAwIDYuOTkgMy4zNCJ9XSxbInBhdGgiLHtkOiJNNCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMi4yOSA5LjYyQTEwIDEwIDAgMSAwIDIxLjMxIDguMzUifV0sWyJwYXRoIix7ZDoiTTE2LjI0IDcuNzZBNiA2IDAgMSAwIDguMjMgMTYuNjcifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgMTEuNjZBNiA2IDAgMCAxIDE1Ljc3IDE2LjY3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEwLjU5IDUuNjYtNS42NiJ9XV19KTt2YXIga0csVzJ0PXUoKCk9PntrRz1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDY0MWE0IDQgMCAwIDEtNCAwTDcuNTI3ODYgMTkuNzQ1OTcgQSAxIDEgMCAwIDAgNy45OTMwMyAyMS4xNjIxMSAxMCAxMCAwIDAgMCAxNi4wMDY5NyAyMS4xNjIxMSAxIDEgMCAwIDAgMTYuNDcyMTQgMTkuNzQ1OTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6In1dXX0pO3ZhciBTRyxHMnQ9dSgoKT0+e1NHPVtbInBhdGgiLHtkOiJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSJ9XV19KTt2YXIgTUcsWTJ0PXUoKCk9PntNRz1bWyJwYXRoIix7ZDoiTTEzLjQxNCAxMy40MTRhMiAyIDAgMSAxLTIuODI4LTIuODI4In1dLFsicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDEuNzQ0IDQuNTcyIn1dLFsicGF0aCIse2Q6Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMi4yMzQgMTAuNzIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV1dfSk7dmFyIENHLEsydD11KCgpPT57Q0c9W1sicGF0aCIse2Q6Ik01IDE2djIifV0sWyJwYXRoIix7ZDoiTTE5IDE2djIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIHpHLFoydD11KCgpPT57ekc9W1sicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDAgOC40NzgifV0sWyJwYXRoIix7ZDoiTTE5LjA3NSA0LjkzM2ExMCAxMCAwIDAgMSAwIDE0LjEzNCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgX0csUTJ0PXUoKCk9PntfRz1bWyJwYXRoIix7ZDoiTTQuOSAxNi4xQzEgMTIuMiAxIDUuOCA0LjkgMS45In1dLFsicGF0aCIse2Q6Ik03LjggNC43YTYuMTQgNi4xNCAwIDAgMC0uOCA3LjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xNi4yIDQuOGMyIDIgMi4yNiA1LjExLjggNy40NyJ9XSxbInBhdGgiLHtkOiJNMTkuMSAxLjlhOS45NiA5Ljk2IDAgMCAxIDAgMTQuMSJ9XSxbInBhdGgiLHtkOiJNOS41IDE4aDUifV0sWyJwYXRoIix7ZDoibTggMjIgNC0xMSA0IDExIn1dXX0pO3ZhciBURyxYMnQ9dSgoKT0+e1RHPVtbInBhdGgiLHtkOiJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEzLjQxIDQuMTggNC4xOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBMRyxKMnQ9dSgoKT0+e0xHPVtbInBhdGgiLHtkOiJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCJ9XSxbInBhdGgiLHtkOiJNNiAxN2E2IDYgMCAwIDEgMTIgMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgREcsZWN0PXUoKCk9PntERz1bWyJwYXRoIix7ZDoiTTEzIDIySDRhMiAyIDAgMCAxIDAtNGgxMiJ9XSxbInBhdGgiLHtkOiJNMTMuMjM2IDE4YTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE2LjgyIDMuOTRhMyAzIDAgMSAxIDMuMjM3IDQuODY4bDEuODE1IDIuNTg3YTEuNSAxLjUgMCAwIDEtMS41IDIuMWwtMi44NzItLjQ1M2EzIDMgMCAwIDAtMy41IDMifV0sWyJwYXRoIix7ZDoiTTE3IDQuOTg4YTMgMyAwIDEgMC01LjIgMi4wNTJBNyA3IDAgMCAwIDQgMTQuMDE1IDQgNCAwIDAgMCA4IDE4In1dXX0pO3ZhciAkRyx0Y3Q9dSgoKT0+eyRHPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIEFHLHJjdD11KCgpPT57QUc9W1sicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MjggMTQuODI5YTQgNCAwIDAgMS01LjY1NiAwIDQgNCAwIDAgMSAwLTUuNjU3IDQgNCAwIDAgMSA1LjY1NiAwIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBFRyxhY3Q9dSgoKT0+e0VHPVtbInBhdGgiLHtkOiJNMTUuODI4IDE0LjgyOWE0IDQgMCAwIDEtNS42NTYgMCA0IDQgMCAwIDEgMC01LjY1NyA0IDQgMCAwIDEgNS42NTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg1In1dXX0pO3ZhciBJRyxpY3Q9dSgoKT0+e0lHPVtbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbInBhdGgiLHtkOiJNOSA3YTQgNCAwIDAgMSAwIDhIOGwzIDIifV1dfSk7dmFyIFBHLHNjdD11KCgpPT57UEc9W1sicGF0aCIse2Q6Im0xMiAxMCAzLTMifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dLFsicGF0aCIse2Q6Im05IDcgMyAzdjcifV1dfSk7dmFyIE5HLG5jdD11KCgpPT57Tkc9W1sicGF0aCIse2Q6Ik0xMCAxN1Y5LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxM2g1In1dLFsicGF0aCIse2Q6Ik04IDE3aDcifV1dfSk7dmFyIE9HLG9jdD11KCgpPT57T0c9W1sicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDExaDVhMiAyIDAgMCAwIDAtNGgtM3YxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dXX0pO3ZhciBSRyxsY3Q9dSgoKT0+e1JHPVtbInBhdGgiLHtkOiJNMTAgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWN2g1In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDE1aDUifV1dfSk7dmFyIEZHLGNjdD11KCgpPT57Rkc9W1sicGF0aCIse2Q6Ik0xMyAxNkg4In1dLFsicGF0aCIse2Q6Ik0xNCA4SDgifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIEJHLGRjdD11KCgpPT57Qkc9W1sicGF0aCIse2Q6Ik0xMiAxN1Y3In1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDAgMCAwIDRoNGEyIDIgMCAwIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIEhHLHVjdD11KCgpPT57SEc9W1sicGF0aCIse2Q6Ik0xMCA3djEwYTUgNSAwIDAgMCA1LTUifV0sWyJwYXRoIix7ZDoibTE0IDgtNiAzIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBQOCxwY3Q9dSgoKT0+e1A4PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dfSk7dmFyIHFHLGZjdD11KCgpPT57cUc9W1sicGF0aCIse2Q6Ik0xNCA0djE2SDNhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTF6In1dLFsiY2lyY2xlIix7Y3g6IjE0IixjeToiMTIiLHI6IjgifV1dfSk7dmFyIFZHLGhjdD11KCgpPT57Vkc9W1sicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgakcsbWN0PXUoKCk9PntqRz1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgVUcsZ2N0PXUoKCk9PntVRz1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgV0csYmN0PXUoKCk9PntXRz1bWyJwYXRoIix7ZDoiTTcgMTlINC44MTVhMS44MyAxLjgzIDAgMCAxLTEuNTctLjg4MSAxLjc4NSAxLjc4NSAwIDAgMS0uMDA0LTEuNzg0TDcuMTk2IDkuNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTloOC4yMDNhMS44MyAxLjgzIDAgMCAwIDEuNTU2LS44OSAxLjc4NCAxLjc4NCAwIDAgMCAwLTEuNzc1bC0xLjIyNi0yLjEyIn1dLFsicGF0aCIse2Q6Im0xNCAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik04LjI5MyAxMy41OTYgNy4xOTYgOS41IDMuMSAxMC41OTgifV0sWyJwYXRoIix7ZDoibTkuMzQ0IDUuODExIDEuMDkzLTEuODkyQTEuODMgMS44MyAwIDAgMSAxMS45ODUgM2ExLjc4NCAxLjc4NCAwIDAgMSAxLjU0Ni44ODhsMy45NDMgNi44NDMifV0sWyJwYXRoIix7ZDoibTEzLjM3OCA5LjYzMyA0LjA5NiAxLjA5OCAxLjA5Ny00LjA5NiJ9XV19KTt2YXIgR0cseGN0PXUoKCk9PntHRz1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDlIOS41QTUuNSA1LjUgMCAwIDAgNCAxNC41QTUuNSA1LjUgMCAwIDAgOS41IDIwSDEzIn1dXX0pO3ZhciBZRyx2Y3Q9dSgoKT0+e1lHPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIEtHLHljdD11KCgpPT57S0c9W1sicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIFpHLHdjdD11KCgpPT57Wkc9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIFFHLGtjdD11KCgpPT57UUc9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dXX0pO3ZhciBYRyxTY3Q9dSgoKT0+e1hHPVtbInBhdGgiLHtkOiJNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDcifV0sWyJwYXRoIix7ZDoiTTggMTZIM3Y1In1dLFsicGF0aCIse2Q6Ik0zIDEyQzMgOS41MSA0IDcuMjYgNS42NCA1LjY0In1dLFsicGF0aCIse2Q6Im0zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQifV0sWyJwYXRoIix7ZDoiTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NyJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV1dfSk7dmFyIEpHLE1jdD11KCgpPT57Skc9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XV19KTt2YXIgZVksQ2N0PXUoKCk9PntlWT1bWyJwYXRoIix7ZDoiTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WiJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNMTUgN3Y2In1dXX0pO3ZhciB0WSx6Y3Q9dSgoKT0+e3RZPVtbInBhdGgiLHtkOiJNMTcgM3YxMCJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgNS41IDguNjYgNSJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgMTAuNSA4LjY2LTUifV0sWyJwYXRoIix7ZDoiTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoifV1dfSk7dmFyIHJZLF9jdD11KCgpPT57clk9W1sicGF0aCIse2Q6Ik00IDdWNGgxNnYzIn1dLFsicGF0aCIse2Q6Ik01IDIwaDYifV0sWyJwYXRoIix7ZDoiTTEzIDQgOCAyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNS01IDUifV1dfSk7dmFyIGFZLFRjdD11KCgpPT57YVk9W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTBoMXY0In1dXX0pO3ZhciBpWSxMY3Q9dSgoKT0+e2lZPVtbInBhdGgiLHtkOiJtMiA5IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEzIDE4SDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Im0yMiAxNS0zIDMtMy0zIn1dLFsicGF0aCIse2Q6Ik0xMSA2aDZhMiAyIDAgMCAxIDIgMnYxMCJ9XV19KTt2YXIgc1ksRGN0PXUoKCk9PntzWT1bWyJwYXRoIix7ZDoibTE3IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0In1dLFsicGF0aCIse2Q6Im03IDIyLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLTQgNEgzIn1dXX0pO3ZhciBuWSwkY3Q9dSgoKT0+e25ZPVtbInBhdGgiLHtkOiJNMTQgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE0IDRhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBhMSAxIDAgMCAxLTEtMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTIxIDRhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgOWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im0zIDcgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIG9ZLEFjdD11KCgpPT57b1k9W1sicGF0aCIse2Q6Ik0xNCA0YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE1IDEwYTEgMSAwIDAgMS0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDRhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgOWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im0zIDcgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIGxZLEVjdD11KCgpPT57bFk9W1sicGF0aCIse2Q6Im0xMiAxNy01LTUgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxOHYtMmE0IDQgMCAwIDAtNC00SDcifV0sWyJwYXRoIix7ZDoibTcgMTctNS01IDUtNSJ9XV19KTt2YXIgY1ksSWN0PXUoKCk9PntjWT1bWyJwYXRoIix7ZDoiTTIwIDE4di0yYTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJtOSAxNy01LTUgNS01In1dXX0pO3ZhciBkWSxQY3Q9dSgoKT0+e2RZPVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMjIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDIyIDE4eiJ9XV19KTt2YXIgdVksTmN0PXUoKCk9Pnt1WT1bWyJwYXRoIix7ZDoiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTggMi41Ny0zLjUifV0sWyJwYXRoIix7ZDoiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41MyAxMiAxMS4yMiJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoifV1dfSk7dmFyIHBZLE9jdD11KCgpPT57cFk9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xMiA1VjMifV0sWyJwYXRoIix7ZDoiTTEyIDl2MyJ9XSxbInBhdGgiLHtkOiJNMi4wNzcgMTguNDQ5QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjkyNC0yLjU1bC00LTE0QTIgMiAwIDAgMCAxNiAzSDhhMiAyIDAgMCAwLTEuOTI0IDEuNDV6In1dXX0pO3ZhciBmWSxSY3Q9dSgoKT0+e2ZZPVtbInBhdGgiLHtkOiJNMTIgMTV2NXMzLjAzLS41NSA0LTJjMS4wOC0xLjYyIDAtNSAwLTUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNi41Yy0xLjUgMS4yNi0yIDUtMiA1czMuNzQtLjUgNS0yYy43MS0uODQuNy0yLjEzLS4wOS0yLjkxYTIuMTggMi4xOCAwIDAgMC0yLjkxLS4wOSJ9XSxbInBhdGgiLHtkOiJNOSAxMmEyMiAyMiAwIDAgMSAyLTMuOTVBMTIuODggMTIuODggMCAwIDEgMjIgMmMwIDIuNzItLjc4IDcuNS02IDExYTIyLjQgMjIuNCAwIDAgMS00IDJ6In1dLFsicGF0aCIse2Q6Ik05IDEySDRzLjU1LTMuMDMgMi00YzEuNjItMS4wOCA1IC4wNSA1IC4wNSJ9XV19KTt2YXIgaFksRmN0PXUoKCk9PntoWT1bWyJwYXRoIix7ZDoibTE1IDEzIDMuNzA4IDcuNDE2In1dLFsicGF0aCIse2Q6Ik0zIDE5YTE1IDE1IDAgMCAwIDE4IDAifV0sWyJwYXRoIix7ZDoibTMgMiAzLjIxIDkuNjMzQTIgMiAwIDAgMCA4LjEwOSAxM0gxOCJ9XSxbInBhdGgiLHtkOiJtOSAxMy0zLjcwOCA3LjQxNiJ9XV19KTt2YXIgbVksQmN0PXUoKCk9PnttWT1bWyJwYXRoIix7ZDoiTTYgMTlWNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTlWNi44In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtNy44In1dLFsicGF0aCIse2Q6Ik0xOCA1djQifV0sWyJwYXRoIix7ZDoiTTE4IDE5di02In1dLFsicGF0aCIse2Q6Ik0yMiAxOVY5In1dLFsicGF0aCIse2Q6Ik0yIDE5VjlhNCA0IDAgMCAxIDQtNGMyIDAgNCAxLjMzIDYgNHM0IDQgNiA0YTQgNCAwIDEgMC0zLTYuNjUifV1dfSk7dmFyIGdZLEhjdD11KCgpPT57Z1k9W1sicGF0aCIse2Q6Ik0xNyAxMGgtMWE0IDQgMCAxIDEgNC00di41MzQifV0sWyJwYXRoIix7ZDoiTTE3IDZoMWE0IDQgMCAwIDEgMS40MiA3Ljc0bC0yLjI5Ljg3YTYgNiAwIDAgMS01LjMzOS0xMC42OGwyLjA2OS0xLjMxIn1dLFsicGF0aCIse2Q6Ik00LjUgMTdjMi44LS41IDQuNCAwIDUuNS44czEuOCAyLjIgMi4zIDMuN2MtMiAuNC0zLjUuNC00LjgtLjMtMS4yLS42LTIuMy0xLjktMy00LjIifV0sWyJwYXRoIix7ZDoiTTkuNzcgMTJDNCAxNSAyIDIyIDIgMjIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiI4IixyOiIyIn1dXX0pO3ZhciBOOCxxY3Q9dSgoKT0+e044PVtbInBhdGgiLHtkOiJNMTYuNDY2IDcuNUMxNS42NDMgNC4yMzcgMTMuOTUyIDIgMTIgMiA5LjIzOSAyIDcgNi40NzcgNyAxMnMyLjIzOSAxMCA1IDEwYy4zNDIgMCAuNjc3LS4wNjkgMS0uMiJ9XSxbInBhdGgiLHtkOiJtMTUuMTk0IDEzLjcwNyAzLjgxNCAxLjg2LTEuODYgMy44MTQifV0sWyJwYXRoIix7ZDoiTTE5IDE1LjU3Yy0xLjgwNC44ODUtNC4yNzQgMS40My03IDEuNDMtNS41MjMgMC0xMC0yLjIzOS0xMC01czQuNDc3LTUgMTAtNWM0LjgzOCAwIDguODczIDEuNzE4IDkuOCA0In1dXX0pO3ZhciBiWSxWY3Q9dSgoKT0+e2JZPVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xMiA5aDIifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc0IDkuNzQgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciB4WSxqY3Q9dSgoKT0+e3hZPVtbInBhdGgiLHtkOiJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiJ9XV19KTt2YXIgdlksVWN0PXUoKCk9Pnt2WT1bWyJwYXRoIix7ZDoiTTEyIDVINmEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoibTkgOCAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik00IDE0djRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XV19KTt2YXIgeVksV2N0PXUoKCk9Pnt5WT1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XV19KTt2YXIgd1ksR2N0PXUoKCk9Pnt3WT1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dXX0pO3ZhciBrWSxZY3Q9dSgoKT0+e2tZPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIn1dLFsicGF0aCIse2Q6Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyJ9XSxbInBhdGgiLHtkOiJNMTUgNWgtNC4zIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgU1ksS2N0PXUoKCk9PntTWT1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE5IixyOiIzIn1dLFsicGF0aCIse2Q6Ik05IDE5aDguNWEzLjUgMy41IDAgMCAwIDAtN2gtMTFhMy41IDMuNSAwIDAgMSAwLTdIMTUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dXX0pO3ZhciBNWSxaY3Q9dSgoKT0+e01ZPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02LjAxIDE4SDYifV0sWyJwYXRoIix7ZDoiTTEwLjAxIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAifV0sWyJwYXRoIix7ZDoiTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAifV1dfSk7dmFyIE84LFFjdD11KCgpPT57Tzg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV1dfSk7dmFyIFI4LFhjdD11KCgpPT57Ujg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVIMyJ9XV19KTt2YXIgQ1ksSmN0PXUoKCk9PntDWT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgNy41SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2LjVIMyJ9XV19KTt2YXIgelksZTB0PXUoKCk9Pnt6WT1bWyJwYXRoIix7ZDoiTTQgMTFhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNNCA0YTE2IDE2IDAgMCAxIDE2IDE2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgX1ksdDB0PXUoKCk9PntfWT1bWyJwYXRoIix7ZDoiTTEwIDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xNCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2LTMifV0sWyJwYXRoIix7ZDoiTTIgOFY0In1dLFsicGF0aCIse2Q6Ik0yMiA2SDIifV0sWyJwYXRoIix7ZDoiTTIyIDhWNCJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMyJ9XSxbInJlY3QiLHt4OiIyIix5OiIxMiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIyIn1dXX0pO3ZhciBUWSxyMHQ9dSgoKT0+e1RZPVtbInBhdGgiLHtkOiJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNSAyLTIifV0sWyJwYXRoIix7ZDoibTExLjUgOS41IDItMiJ9XSxbInBhdGgiLHtkOiJtOC41IDYuNSAyLTIifV0sWyJwYXRoIix7ZDoibTE3LjUgMTUuNSAyLTIifV1dfSk7dmFyIExZLGEwdD11KCgpPT57TFk9W1sicGF0aCIse2Q6Ik02IDExaDhhNCA0IDAgMCAwIDAtOEg5djE4In1dLFsicGF0aCIse2Q6Ik02IDE1aDgifV1dfSk7dmFyIERZLGkwdD11KCgpPT57RFk9W1sicGF0aCIse2Q6Ik0xMCAydjE1In1dLFsicGF0aCIse2Q6Ik03IDIyYTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAwIDEgMSAxIDQgNCAwIDAgMS00IDR6In1dLFsicGF0aCIse2Q6Ik05LjE1OSAyLjQ2YTEgMSAwIDAgMSAxLjUyMS0uMTkzbDkuOTc3IDguOThBMSAxIDAgMCAxIDIwIDEzSDRhMSAxIDAgMCAxLS44MjQtMS41Njd6In1dXX0pO3ZhciAkWSxzMHQ9dSgoKT0+eyRZPVtbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIn1dLFsicGF0aCIse2Q6Ik0xMS4zOCAxMmEyLjQgMi40IDAgMCAxLS40LTQuNzcgMi40IDIuNCAwIDAgMSAzLjItMi43NyAyLjQgMi40IDAgMCAxIDMuNDctLjYzIDIuNCAyLjQgMCAwIDEgMy4zNyAzLjM3IDIuNCAyLjQgMCAwIDEtMS4xIDMuNyAyLjUxIDIuNTEgMCAwIDEgLjAzIDEuMSJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNC00In1dLFsicGF0aCIse2Q6Ik0xMC45IDcuMjVBMy45OSAzLjk5IDAgMCAwIDQgMTBjMCAuNzMuMiAxLjQxLjU0IDIifV1dfSk7dmFyIEFZLG4wdD11KCgpPT57QVk9W1sicGF0aCIse2Q6Im0yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTUuMjUifV0sWyJwYXRoIix7ZDoiTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOSJ9XSxbInBhdGgiLHtkOiJtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI0Iix4OiIyIix5OiIxMSIscng6IjEifV1dfSk7dmFyIEVZLG8wdD11KCgpPT57RVk9W1sicGF0aCIse2Q6Ik00IDEwYTcuMzEgNy4zMSAwIDAgMCAxMCAxMFoifV0sWyJwYXRoIix7ZDoibTkgMTUgMy0zIn1dLFsicGF0aCIse2Q6Ik0xNyAxM2E2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxM0ExMCAxMCAwIDAgMCAxMSAzIn1dXX0pO3ZhciBJWSxsMHQ9dSgoKT0+e0lZPVtbInBhdGgiLHtkOiJtMTMuNSA2LjUtMy4xNDgtMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw2LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0TDkuNSAxMC41In1dLFsicGF0aCIse2Q6Ik0xNi41IDcuNSAxOSA1In1dLFsicGF0aCIse2Q6Im0xNy41IDEwLjUgMy4xNDggMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDEtMS43MDQgMEwxMy41IDE0LjUifV0sWyJwYXRoIix7ZDoiTTkgMjFhNiA2IDAgMCAwLTYtNiJ9XSxbInBhdGgiLHtkOiJNOS4zNTIgMTAuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw0LjI5Ni00LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwLTEuNzA0bC0yLjI5Ni0yLjI5NmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAweiJ9XV19KTt2YXIgUFksYzB0PXUoKCk9PntQWT1bWyJwYXRoIix7ZDoibTIwIDE5LjUtNS41IDEuMiJ9XSxbInBhdGgiLHtkOiJNMTQuNSA0djExLjIyYTEgMSAwIDAgMCAxLjI0Mi45N0wyMCAxNS4yIn1dLFsicGF0aCIse2Q6Im0yLjk3OCAxOS4zNTEgNS41NDktMS4zNjNBMiAyIDAgMCAwIDEwIDE2VjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwIDQgMTMuNSJ9XV19KTt2YXIgTlksZDB0PXUoKCk9PntOWT1bWyJwYXRoIix7ZDoiTTEwIDJ2M2ExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE4IDE4di02YTEgMSAwIDAgMC0xLTFoLTZhMSAxIDAgMCAwLTEgMXY2In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg0YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNOCAxOGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5LjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDIuODI4IDIuODI4QTIgMiAwIDAgMSAyMiA2LjgyOFYxNmEyIDIgMCAwIDEtMi4wMSAyeiJ9XV19KTt2YXIgT1ksdTB0PXUoKCk9PntPWT1bWyJwYXRoIix7ZDoiTTEzIDEzSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik0xNCA4aDEifV0sWyJwYXRoIix7ZDoiTTE3IDIxdi00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxIDIwLjQxQTIgMiAwIDAgMSAxOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgLjU5LTEuNDEifV0sWyJwYXRoIix7ZDoiTTI5LjUgMTEuNXM1IDUgNCA1In1dLFsicGF0aCIse2Q6Ik05IDNoNi4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTUifV1dfSk7dmFyIFJZLHAwdD11KCgpPT57Ulk9W1sicGF0aCIse2Q6Ik0xNS4yIDNhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik03IDN2NGExIDEgMCAwIDAgMSAxaDcifV1dfSk7dmFyIEY4LGYwdD11KCgpPT57Rjg9W1sicGF0aCIse2Q6Ik01IDd2MTFhMSAxIDAgMCAwIDEgMWgxMSJ9XSxbInBhdGgiLHtkOiJNNS4yOTMgMTguNzA3IDExIDEzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjIifV1dfSk7dmFyIEZZLGgwdD11KCgpPT57Rlk9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Im0xOSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3In1dLFsicGF0aCIse2Q6Ik0zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEifV0sWyJwYXRoIix7ZDoibTUgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XV19KTt2YXIgQlksbTB0PXUoKCk9PntCWT1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVIOXYtNSJ9XSxbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoiTTIxIDMgOSAxNSJ9XV19KTt2YXIgSFksZzB0PXUoKCk9PntIWT1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNyA3djEwIn1dXX0pO3ZhciBxWSxiMHQ9dSgoKT0+e3FZPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgVlkseDB0PXUoKCk9PntWWT1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV1dfSk7dmFyIGpZLHYwdD11KCgpPT57alk9W1sicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNC4xNzIgNC4zMDZsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDQ5IDB6In1dXX0pO3ZhciBVWSx5MHQ9dSgoKT0+e1VZPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dXX0pO3ZhciBXWSx3MHQ9dSgoKT0+e1dZPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTEuOS0xLjkifV1dfSk7dmFyIEdZLGswdD11KCgpPT57R1k9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV1dfSk7dmFyIFlZLFMwdD11KCgpPT57WVk9W1sicGF0aCIse2Q6Ik0xNyAxMnY0YTEgMSAwIDAgMS0xIDFoLTQifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTE3IDhWNyJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgS1ksTTB0PXUoKCk9PntLWT1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgWlksQzB0PXUoKCk9PntaWT1bWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggNC45MzNWMjEifV0sWyJwYXRoIix7ZDoibTQgNiA3LjEwNi0zLjc5YTIgMiAwIDAgMSAxLjc4OCAwTDIwIDYifV0sWyJwYXRoIix7ZDoibTYgMTEtMy41MiAyLjE0N2ExIDEgMCAwIDAtLjQ4Ljg1NFYxOWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLS40OC0uODUzTDE4IDExIn1dLFsicGF0aCIse2Q6Ik02IDQuOTMzVjIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XV19KTt2YXIgUVksejB0PXUoKCk9PntRWT1bWyJwYXRoIix7ZDoiTTUuNDIgOS40MiA4IDEyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xNCA2LTguNTggOC41OCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEwLjggMTQuOCAxNCAxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBYWSxfMHQ9dSgoKT0+e1hZPVtbInBhdGgiLHtkOiJNMjEgNGgtMy41bDIgMTEuMDUifV0sWyJwYXRoIix7ZDoiTTYuOTUgMTdoNS4xNDJjLjUyMyAwIC45NS0uNDA2IDEuMDYzLS45MTZhNi41IDYuNSAwIDAgMSA1LjM0NS01LjAwOSJ9XSxbImNpcmNsZSIse2N4OiIxOS41IixjeToiMTcuNSIscjoiMi41In1dLFsiY2lyY2xlIix7Y3g6IjQuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV19KTt2YXIgSlksVDB0PXUoKCk9PntKWT1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTguMTIgOC4xMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMjAgNCA4LjEyIDE1Ljg4In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTQuOCAxNC44IDIwIDIwIn1dXX0pO3ZhciBlSyxMMHQ9dSgoKT0+e2VLPVtbInBhdGgiLHtkOiJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoibTIyIDMtNSA1In1dLFsicGF0aCIse2Q6Im0xNyAzIDUgNSJ9XV19KTt2YXIgdEssRDB0PXUoKCk9Pnt0Sz1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNyA4IDUtNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2g1djUifV1dfSk7dmFyIHJLLCQwdD11KCgpPT57cks9W1sicGF0aCIse2Q6Ik0xNSAxMmgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQifV0sWyJwYXRoIix7ZDoiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyJ9XV19KTt2YXIgYUssQTB0PXUoKCk9PnthSz1bWyJwYXRoIix7ZDoiTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0In1dLFsicGF0aCIse2Q6Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMifV1dfSk7dmFyIGlLLEUwdD11KCgpPT57aUs9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTEgMTVoLjAxIn1dXX0pO3ZhciBzSyxJMHQ9dSgoKT0+e3NLPVtbInBhdGgiLHtkOiJtOCAxMSAyIDIgNC00In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dfSk7dmFyIG5LLFAwdD11KCgpPT57bks9W1sicGF0aCIse2Q6Im0xMyAxMy41IDItMi41LTItMi41In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik05IDguNSA3IDExbDIgMi41In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV1dfSk7dmFyIG9LLE4wdD11KCgpPT57b0s9W1sicGF0aCIse2Q6Im0xMy41IDguNS01IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgbEssTzB0PXUoKCk9PntsSz1bWyJwYXRoIix7ZDoibTEzLjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgY0ssUjB0PXUoKCk9PntjSz1bWyJwYXRoIix7ZDoibTIxIDIxLTQuMzQtNC4zNCJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXX0pO3ZhciBkSyxGMHQ9dSgoKT0+e2RLPVtbInBhdGgiLHtkOiJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIn1dXX0pO3ZhciBCOCxCMHQ9dSgoKT0+e0I4PVtbInBhdGgiLHtkOiJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTYifV1dfSk7dmFyIHVLLEgwdD11KCgpPT57dUs9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIHBLLHEwdD11KCgpPT57cEs9W1sicGF0aCIse2Q6Ik0xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXoifV0sWyJwYXRoIix7ZDoibTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzkifV1dfSk7dmFyIGZLLFYwdD11KCgpPT57Zks9W1sicGF0aCIse2Q6Im0xNiAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Im04IDggNC00IDQgNCJ9XV19KTt2YXIgaEssajB0PXUoKCk9PntoSz1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTggOC00IDQgNCA0In1dXX0pO3ZhciBtSyxVMHQ9dSgoKT0+e21LPVtbInBhdGgiLHtkOiJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV1dfSk7dmFyIGdLLFcwdD11KCgpPT57Z0s9W1sicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMTRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0xMyA2LTQgNmg2bC00IDYifV1dfSk7dmFyIGJLLEcwdD11KCgpPT57Yks9W1sicGF0aCIse2Q6Ik03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUifV0sWyJwYXRoIix7ZDoiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoifV0sWyJwYXRoIix7ZDoiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIHhLLFkwdD11KCgpPT57eEs9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTgiLHkyOiIxOCJ9XV19KTt2YXIgdkssSzB0PXUoKCk9Pnt2Sz1bWyJwYXRoIix7ZDoiTTE0IDE3SDUifV0sWyJwYXRoIix7ZDoiTTE5IDdoLTkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiMyJ9XV19KTt2YXIgeUssWjB0PXUoKCk9Pnt5Sz1bWyJwYXRoIix7ZDoiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIHdLLFEwdD11KCgpPT57d0s9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOSIscjoiMyJ9XSxbImxpbmUiLHt4MToiOC41OSIseDI6IjE1LjQyIix5MToiMTMuNTEiLHkyOiIxNy40OSJ9XSxbImxpbmUiLHt4MToiMTUuNDEiLHgyOiI4LjU5Iix5MToiNi41MSIseTI6IjEwLjQ5In1dXX0pO3ZhciBrSyxYMHQ9dSgoKT0+e2tLPVtbInBhdGgiLHtkOiJNOC4zIDEwYS43LjcgMCAwIDEtLjYyNi0xLjA3OUwxMS40IDNhLjcuNyAwIDAgMSAxLjE5OC0uMDQzTDE2LjMgOC45YS43LjcgMCAwIDEtLjU3MiAxLjFaIn1dLFsicmVjdCIse3g6IjMiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTcuNSIscjoiMy41In1dXX0pO3ZhciBTSyxKMHQ9dSgoKT0+e1NLPVtbInBhdGgiLHtkOiJNMTIgMnYxMyJ9XSxbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04In1dXX0pO3ZhciBNSyxlZHQ9dSgoKT0+e01LPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjMiLHgyOiIyMSIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5Iix5MToiOSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiOSIseTI6IjIxIn1dXX0pO3ZhciBDSyx0ZHQ9dSgoKT0+e0NLPVtbInBhdGgiLHtkOiJNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQifV1dfSk7dmFyIHpLLHJkdD11KCgpPT57eks9W1sicGF0aCIse2Q6Ik0xMiAxMlY5YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTE2IDIwdi0zYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDE2In1dLFsicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Ik00IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTQgNGgxNiJ9XV19KTt2YXIgX0ssYWR0PXUoKCk9PntfSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgVEssaWR0PXUoKCk9PntUSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im00LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MiJ9XV19KTt2YXIgTEssc2R0PXUoKCk9PntMSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIERLLG5kdD11KCgpPT57REs9W1sicGF0aCIse2Q6Ik0xMSAyMmMtMy44MDYtMS40NS03LTMuOTY2LTctOVY2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY0In1dLFsicGF0aCIse2Q6Ik0xNC45MjMgMTYuNTQ3IDE0IDE2LjE2NCJ9XSxbInBhdGgiLHtkOiJtMTQuOTIzIDE4Ljg0My0uOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNMTYuNTQ3IDE0LjkyMyAxNi4xNjQgMTQifV0sWyJwYXRoIix7ZDoibTE2LjU0NyAyMC40NjctLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE4Ljg0MyAxNC45MjMuMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjIyNSAyMS4zOTEtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTYuNTQ3LjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTguODQzLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTcuNjk1IixjeToiMTcuNjk1IixyOiIzIn1dXX0pO3ZhciAkSyxvZHQ9dSgoKT0+eyRLPVtbInBhdGgiLHtkOiJtMTAuOTI5IDE0LjQ2Ny0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJNMTAuOTI5IDguOTIzIDEwLjU0NiA4In1dLFsicGF0aCIse2Q6Ik0xMy4yMjUgOC45MjMgMTMuNjA4IDgifV0sWyJwYXRoIix7ZDoibTEzLjYwNyAxNS4zOTEtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0xNC44NDkgMTAuNTQ3LjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC44NDkgMTIuODQzLjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05LjMwNSAxMC41NDctLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjMwNSAxMi44NDMtLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTIuMDc3IixjeToiMTEuNjk1IixyOiIzIn1dXX0pO3ZhciBBSyxsZHQ9dSgoKT0+e0FLPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgRUssY2R0PXUoKCk9PntFSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYyIn1dXX0pO3ZhciBJSyxkZHQ9dSgoKT0+e0lLPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik01IDVhMSAxIDAgMCAwLTEgMXY3YzAgNSAzLjUgNy41IDcuNjcgOC45NGExIDEgMCAwIDAgLjY3LjAxYzIuMzUtLjgyIDQuNDgtMS45NyA1LjktMy43MSJ9XSxbInBhdGgiLHtkOiJNOS4zMDkgMy42NTJBMTIuMjUyIDEyLjI1MiAwIDAgMCAxMS4yNCAyLjI4YTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY3YTkuNzg0IDkuNzg0IDAgMCAxLS4wOCAxLjI2NCJ9XV19KTt2YXIgUEssdWR0PXUoKCk9PntQSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XV19KTt2YXIgTksscGR0PXUoKCk9PntOSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dfSk7dmFyIEg4LGZkdD11KCgpPT57SDg9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXX0pO3ZhciBPSyxoZHQ9dSgoKT0+e09LPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV1dfSk7dmFyIHE4LG1kdD11KCgpPT57cTg9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV19KTt2YXIgUkssZ2R0PXUoKCk9PntSSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dXX0pO3ZhciBGSyxiZHQ9dSgoKT0+e0ZLPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiAydjcuNSJ9XSxbInBhdGgiLHtkOiJtMTkgNS01LjIzIDUuMjMifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC03LjUifV0sWyJwYXRoIix7ZDoibTE5IDE5LTUuMjMtNS4yMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTQuNVYyMiJ9XSxbInBhdGgiLHtkOiJNMTAuMjMgMTMuNzcgNSAxOSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwLjIzIDEwLjIzIDUgNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyLjUifV1dfSk7dmFyIEJLLHhkdD11KCgpPT57Qks9W1sicGF0aCIse2Q6Ik0xMiAxMC4xODlWMTQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTNWN2EyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xOS4zOCAyMEExMS42IDExLjYgMCAwIDAgMjEgMTRsLTguMTg4LTMuNjM5YTIgMiAwIDAgMC0xLjYyNCAwTDMgMTRhMTEuNiAxMS42IDAgMCAwIDIuODEgNy43NiJ9XSxbInBhdGgiLHtkOiJNMiAyMWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMXMxLjIgMSAyLjUgMWMyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV1dfSk7dmFyIEhLLHZkdD11KCgpPT57SEs9W1sicGF0aCIse2Q6Ik0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiJ9XV19KTt2YXIgcUsseWR0PXUoKCk9PntxSz1bWyJwYXRoIix7ZDoiTTE2IDEwYTQgNCAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTMuMTAzIDYuMDM0aDE3Ljc5NCJ9XSxbInBhdGgiLHtkOiJNMy40IDUuNDY3YTIgMiAwIDAgMC0uNCAxLjJWMjBhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjYuNjY3YTIgMiAwIDAgMC0uNC0xLjJsLTItMi42NjdBMiAyIDAgMCAwIDE3IDJIN2EyIDIgMCAwIDAtMS42Ljh6In1dXX0pO3ZhciBWSyx3ZHQ9dSgoKT0+e1ZLPVtbInBhdGgiLHtkOiJtMTUgMTEtMSA5In1dLFsicGF0aCIse2Q6Im0xOSAxMS00LTcifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJwYXRoIix7ZDoibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQifV0sWyJwYXRoIix7ZDoiTTQuNSAxNS41aDE1In1dLFsicGF0aCIse2Q6Im01IDExIDQtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMSAxIDkifV1dfSk7dmFyIGpLLGtkdD11KCgpPT57aks9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiIyMSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIxIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyIn1dXX0pO3ZhciBVSyxTZHQ9dSgoKT0+e1VLPVtbInBhdGgiLHtkOiJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiJ9XSxbInBhdGgiLHtkOiJNMyAyMmExIDEgMCAwIDEtMS0xdi0zLjU4NmExIDEgMCAwIDEgLjI5My0uNzA3bDMuMzU1LTMuMzU1YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsMy4yOTYgMy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMy4zNTUgMy4zNTVhMSAxIDAgMCAxLS43MDcuMjkzeiJ9XSxbInBhdGgiLHtkOiJtOSAxNSA3Ljg3OS03Ljg3OCJ9XV19KTt2YXIgV0ssTWR0PXUoKCk9PntXSz1bWyJwYXRoIix7ZDoibTQgNCAyLjUgMi41In1dLFsicGF0aCIse2Q6Ik0xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA1IDUgMTUifV0sWyJwYXRoIix7ZDoiTTE0IDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAxM3YuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYuMDEifV0sWyJwYXRoIix7ZDoiTTIwIDExdi4wMSJ9XV19KTt2YXIgR0ssQ2R0PXUoKCk9PntHSz1bWyJwYXRoIix7ZDoiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtMiJ9XSxbInBhdGgiLHtkOiJNMTggMjB2LTMifV0sWyJwYXRoIix7ZDoiTTIgMTNoMjAifV0sWyJwYXRoIix7ZDoiTTYgMjB2LTMifV1dfSk7dmFyIFlLLHpkdD11KCgpPT57WUs9W1sicGF0aCIse2Q6Ik0xMSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEzIDIyYy41LS41IDEuMTItMSAyLjUtMS0xLjM4IDAtMi0uNS0yLjUtMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmEzLjI4IDMuMjggMCAwIDEtMy4yMjcgMS43OThsLTYuMTctLjU2MUEyLjM4NyAyLjM4NyAwIDEgMCA0LjM4NyA4SDE1LjVhMSAxIDAgMCAxIDAgMTMgMSAxIDAgMCAwIDAtNUgxMmE3IDcgMCAwIDEtNy03VjgifV0sWyJwYXRoIix7ZDoiTTE0IDhhOC41IDguNSAwIDAgMSAwIDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2YzIgMCA0LjUtNCA0LTYifV1dfSk7dmFyIEtLLF9kdD11KCgpPT57S0s9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDZtLTYtNnY0LjhtMC00LjhoNC44In1dLFsicGF0aCIse2Q6Ik05IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYifV0sWyJwYXRoIix7ZDoiTTkgNC4yVjltMCAwSDQuMk05IDkgMyAzIn1dXX0pO3ZhciBaSyxUZHQ9dSgoKT0+e1pLPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41In1dLFsicGF0aCIse2Q6Ik0xNC41IDE0LjUgMTIgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoifV1dfSk7dmFyIFFLLExkdD11KCgpPT57UUs9W1sicGF0aCIse2Q6Im0xOCAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUifV1dfSk7dmFyIFhLLERkdD11KCgpPT57WEs9W1sicGF0aCIse2Q6Ik0xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTIifV1dfSk7dmFyIEpLLCRkdD11KCgpPT57Sks9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV1dfSk7dmFyIGVaLEFkdD11KCgpPT57ZVo9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XV19KTt2YXIgdFosRWR0PXUoKCk9Pnt0Wj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XV19KTt2YXIgclosSWR0PXUoKCk9PntyWj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dXX0pO3ZhciBhWixQZHQ9dSgoKT0+e2FaPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTcgMjB2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi04In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY4In1dLFsicGF0aCIse2Q6Ik0yMiA0djE2In1dXX0pO3ZhciBpWixOZHQ9dSgoKT0+e2laPVtbInBhdGgiLHtkOiJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWgxOCJ9XV19KTt2YXIgc1osT2R0PXUoKCk9PntzWj1bWyJwYXRoIix7ZDoiTTEwIDlINEwyIDdsMi0yaDYifV0sWyJwYXRoIix7ZDoiTTE0IDVoNmwyIDItMiAyaC02In1dLFsicGF0aCIse2Q6Ik0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XV19KTt2YXIgblosUmR0PXUoKCk9PntuWj1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MyJ9XSxbInBhdGgiLHtkOiJNMi4zNTQgMTAuMzU0YTEuMjA3IDEuMjA3IDAgMCAxIDAtMS43MDhsMi4wNi0yLjA2QTIgMiAwIDAgMSA1LjgyOCA2aDEyLjM0NGEyIDIgMCAwIDEgMS40MTQuNTg2bDIuMDYgMi4wNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4bC0yLjA2IDIuMDZhMiAyIDAgMCAxLTEuNDE0LjU4Nkg1LjgyOGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIG9aLEZkdD11KCgpPT57b1o9W1sicGF0aCIse2Q6Ik03IDE4di02YTUgNSAwIDEgMSAxMCAwdjYifV0sWyJwYXRoIix7ZDoiTTUgMjFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMTguNSA0LjUgMTggNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0xMiAydjEifV0sWyJwYXRoIix7ZDoibTQuOTI5IDQuOTI5LjcwNy43MDcifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV1dfSk7dmFyIGxaLEJkdD11KCgpPT57bFo9W1sicGF0aCIse2Q6Ik0xNy45NzEgNC4yODVBMiAyIDAgMCAxIDIxIDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgMjBWNCJ9XV19KTt2YXIgY1osSGR0PXUoKCk9PntjWj1bWyJwYXRoIix7ZDoiTTIxIDR2MTYifV0sWyJwYXRoIix7ZDoiTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XV19KTt2YXIgZFoscWR0PXUoKCk9PntkWj1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV19KTt2YXIgdVosVmR0PXUoKCk9Pnt1Wj1bWyJwYXRoIix7ZDoiTTExIDE2LjU4NlYxOWExIDEgMCAwIDEtMSAxSDJMMTguMzcgMy42M2ExIDEgMCAxIDEgMyAzbC05LjY2MyA5LjY2M2ExIDEgMCAwIDEtMS40MTQgMEw4IDE0In1dXX0pO3ZhciBwWixqZHQ9dSgoKT0+e3BaPVtbInBhdGgiLHtkOiJtMTIuNSAxNy0uNS0xLS41IDFoMXoifV0sWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwIDEuNTYtMy4yNSA4IDggMCAxIDAtMTEuMTIgMEEyIDIgMCAwIDAgOCAyMHYxYTEgMSAwIDAgMCAxIDF6In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dXX0pO3ZhciBmWixVZHQ9dSgoKT0+e2ZaPVtbInBhdGgiLHtkOiJNMTAgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xNCAzdjQifV0sWyJwYXRoIix7ZDoiTTE2IDE3djQifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC05In1dLFsicGF0aCIse2Q6Ik0yMSAxOWgtNSJ9XSxbInBhdGgiLHtkOiJNMjEgNWgtNyJ9XSxbInBhdGgiLHtkOiJNOCAxMHY0In1dLFsicGF0aCIse2Q6Ik04IDEySDMifV1dfSk7dmFyIFY4LFdkdD11KCgpPT57Vjg9W1sicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi05In1dLFsicGF0aCIse2Q6Ik0xMiA4VjMifV0sWyJwYXRoIix7ZDoiTTE3IDE2aDQifV0sWyJwYXRoIix7ZDoiTTE5IDEyVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi01In1dLFsicGF0aCIse2Q6Ik0zIDE0aDQifV0sWyJwYXRoIix7ZDoiTTUgMTBWMyJ9XSxbInBhdGgiLHtkOiJNNSAyMXYtNyJ9XV19KTt2YXIgaFosR2R0PXUoKCk9PntoWj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyLjY2NyA4IDEwIDEyaDRsLTIuNjY3IDQifV1dfSk7dmFyIG1aLFlkdD11KCgpPT57bVo9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTMgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik0xNi40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XV19KTt2YXIgZ1osS2R0PXUoKCk9PntnWj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XV19KTt2YXIgYlosWmR0PXUoKCk9PntiWj1bWyJwYXRoIix7ZDoiTTIyIDExdjFhMTAgMTAgMCAxIDEtOS0xMCJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XV19KTt2YXIgeFosUWR0PXUoKCk9Pnt4Wj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgdlosWGR0PXUoKCk9Pnt2Wj1bWyJwYXRoIix7ZDoiTTIgMTNhNiA2IDAgMSAwIDEyIDAgNCA0IDAgMSAwLTggMCAyIDIgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTJjNC40IDAgOC0zLjYgOC04VjdhMiAyIDAgMSAwLTQgMHY2In1dLFsicGF0aCIse2Q6Ik0xOCAzIDE5LjEgNS4yIn1dLFsicGF0aCIse2Q6Ik0yMiAzIDIwLjkgNS4yIn1dXX0pO3ZhciB5WixKZHQ9dSgoKT0+e3laPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNmgtNCJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNi41TDE0IDE1In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDQifV1dfSk7dmFyIHdaLGU0dD11KCgpPT57d1o9W1sicGF0aCIse2Q6Ik0xMC41IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMkg3YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5LjI5IDE0Ljc2QTYuNjcgNi42NyAwIDAgMSAxNyAxMWE2LjYgNi42IDAgMCAxLTIuMjkgMy43NmMtMS4xNS45Mi0xLjcxIDIuMDQtMS43MSAzLjE5IDAgMi4yMiAxLjggNC4wNSA0IDQuMDVzNC0xLjgzIDQtNC4wNWMwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5In1dLFsicGF0aCIse2Q6Ik05LjYwNyAyMUg2YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIDItMmg3VjdhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIga1osdDR0PXUoKCk9PntrWj1bWyJwYXRoIix7ZDoiTTIwIDlWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yIDE2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTQgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgNHY5In1dXX0pO3ZhciBTWixyNHQ9dSgoKT0+e1NaPVtbInBhdGgiLHtkOiJNMTEgMmgyIn1dLFsicGF0aCIse2Q6Im0xNC4yOCAxNC00LjU2IDgifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuNTU4LTRINC41NTgifV0sWyJwYXRoIix7ZDoiTTMgMTB2MiJ9XSxbInBhdGgiLHtkOiJNNi4yNDUgMTUuMDRBMiAyIDAgMCAxIDggMTRoMTJhMSAxIDAgMCAxIC44NjQgMS41MDVsLTMuMTEgNS40NTdBMiAyIDAgMCAxIDE2IDIySDRhMSAxIDAgMCAxLS44NjMtMS41MDZ6In1dLFsicGF0aCIse2Q6Ik03IDJhNCA0IDAgMCAxLTQgNCJ9XSxbInBhdGgiLHtkOiJtOC42NiA3LjY2IDEuNDEgMS40MSJ9XV19KTt2YXIgTVosYTR0PXUoKCk9PntNWj1bWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTkuNSAxMiAyMiA2In1dLFsicGF0aCIse2Q6Ik0xNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzMgMS42MiJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MiJ9XSxbInBhdGgiLHtkOiJNNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzQgMS42MiJ9XV19KTt2YXIgQ1osaTR0PXUoKCk9PntDWj1bWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXX0pO3ZhciB6WixzNHQ9dSgoKT0+e3paPVtbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUifV1dfSk7dmFyIF9aLG40dD11KCgpPT57X1o9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV1dfSk7dmFyIGo4LG80dD11KCgpPT57ajg9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV0sWyJwYXRoIix7ZDoiTTIwIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjIgNGgtNCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIFRaLGw0dD11KCgpPT57VFo9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XV19KTt2YXIgTFosYzR0PXUoKCk9PntMWj1bWyJwYXRoIix7ZDoiTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCJ9XSxbInBhdGgiLHtkOiJNMTkuOCAxNy44YTcuNSA3LjUgMCAwIDAgLjAwMy0xMC42MDMifV0sWyJwYXRoIix7ZDoiTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NSJ9XV19KTt2YXIgRFosZDR0PXUoKCk9PntEWj1bWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMjFjMS4xIDAgMS4xLTEgMi4zLTFzMS4xIDEgMi4zIDFjMS4xIDAgMS4xLTEgMi4zLTEgMS4xIDAgMS4xIDEgMi4zIDEgMS4xIDAgMS4xLTEgMi4zLTEgMS4xIDAgMS4xIDEgMi4zIDEgMS4xIDAgMS4xLTEgMi4zLTEifV1dfSk7dmFyICRaLHU0dD11KCgpPT57JFo9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNiAyMCAyIDIgNC00In1dXX0pO3ZhciBBWixwNHQ9dSgoKT0+e0FaPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBFWixmNHQ9dSgoKT0+e0VaPVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik01IDE3QTEyIDEyIDAgMCAxIDE3IDUifV1dfSk7dmFyIElaLGg0dD11KCgpPT57SVo9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNOCAzSDN2NSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XV19KTt2YXIgUFosbTR0PXUoKCk9PntQWj1bWyJwYXRoIix7ZDoiTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYifV0sWyJwYXRoIix7ZDoibTcgMTAuNTYgMTIuNTU4LTMuNjQyQTIgMiAwIDAgMCAxOS4wMTggM0g1YTIgMiAwIDAgMC0uNTU4IDMuOTIxbDEuMTE1LjMyQTIgMiAwIDAgMSA3IDkuMTYzdjcuMTc4In1dXX0pO3ZhciBOWixnNHQ9dSgoKT0+e05aPVtbInBhdGgiLHtkOiJtMTUgMTAuNDIgNC44LTUuMDcifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDMifV0sWyJwYXRoIix7ZDoiTTkuNSAyMiAyMS40MTQgOS40MTVBMiAyIDAgMCAwIDIxLjIgNi40bC01LjYxLTQuMjA4QTEgMSAwIDAgMCAxNCAzdjJhMiAyIDAgMCAxLTEuMzk0IDEuOTA2TDguNjc3IDguMDUzQTEgMSAwIDAgMCA4IDljLS4xNTUgNi4zOTMtMi4wODIgOS00IDlhMiAyIDAgMCAwIDAgNGgxNCJ9XV19KTt2YXIgT1osYjR0PXUoKCk9PntPWj1bWyJwYXRoIix7ZDoiTTE1LjI5NSAxOS41NjIgMTYgMjIifV0sWyJwYXRoIix7ZDoibTE3IDE2IDMuNzU4IDIuMDk4In1dLFsicGF0aCIse2Q6Im0xOSAxMi41IDMuMDI2LS41OTgifV0sWyJwYXRoIix7ZDoiTTcuNjEgNi4zYTMgMyAwIDAgMC0zLjkyIDEuM2wtMS4zOCAyLjc5YTMgMyAwIDAgMCAxLjMgMy45MWw2Ljg5IDMuNTk3YTEgMSAwIDAgMCAxLjM0Mi0uNDQ3bDMuMTA2LTYuMjExYTEgMSAwIDAgMC0uNDQ3LTEuMzQxeiJ9XSxbInBhdGgiLHtkOiJNOCA5VjIifV1dfSk7dmFyIFJaLHg0dD11KCgpPT57Ulo9W1sicGF0aCIse2Q6Ik0zIDNoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMSA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNCIseDoiMTUiLHk6IjUifV0sWyJwYXRoIix7ZDoibTE5IDkgMiAydjEwYzAgLjYtLjQgMS0xIDFoLTZjLS42IDAtMS0uNC0xLTFWMTFsMi0yIn1dLFsicGF0aCIse2Q6Im0xMyAxNCA4LTIifV0sWyJwYXRoIix7ZDoibTEzIDE5IDgtMiJ9XV19KTt2YXIgRlosdjR0PXUoKCk9PntGWj1bWyJwYXRoIix7ZDoiTTE0IDkuNTM2VjdhNCA0IDAgMCAxIDQtNGgxLjVhLjUuNSAwIDAgMSAuNS41VjVhNCA0IDAgMCAxLTQgNCA0IDQgMCAwIDAtNCA0YzAgMiAxIDMgMSA1YTUgNSAwIDAgMS0xIDMifV0sWyJwYXRoIix7ZDoiTTQgOWE1IDUgMCAwIDEgOCA0IDUgNSAwIDAgMS04LTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIFU4LHk0dD11KCgpPT57VTg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINyJ9XV19KTt2YXIgVzgsdzR0PXUoKCk9PntXOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgOC04IDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2SDhWOCJ9XV19KTt2YXIgRzgsazR0PXUoKCk9PntHOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtOCA4IDggOCJ9XSxbInBhdGgiLHtkOiJNMTYgOHY4SDgifV1dfSk7dmFyIFk4LFM0dD11KCgpPT57WTg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXX0pO3ZhciBLOCxNNHQ9dSgoKT0+e0s4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dfSk7dmFyIFo4LEM0dD11KCgpPT57Wjg9W1sicGF0aCIse2Q6Ik0xMyAyMWg2YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Im0zIDIxIDktOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUgzdi02In1dXX0pO3ZhciBROCx6NHQ9dSgoKT0+e1E4PVtbInBhdGgiLHtkOiJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTIxIDIxLTktOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTV2NmgtNiJ9XV19KTt2YXIgWDgsXzR0PXUoKCk9PntYOD1bWyJwYXRoIix7ZDoiTTEzIDNoNmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi02In1dLFsicGF0aCIse2Q6Im0zIDMgOSA5In1dLFsicGF0aCIse2Q6Ik0zIDlWM2g2In1dXX0pO3ZhciBCWixUNHQ9dSgoKT0+e0JaPVtbInBhdGgiLHtkOiJtMTAgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxMSJ9XSxbInBhdGgiLHtkOiJNMyA4VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0zIn1dXX0pO3ZhciBKOCxMNHQ9dSgoKT0+e0o4PVtbInBhdGgiLHtkOiJNMjEgMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNiJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDkifV0sWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dXX0pO3ZhciBIWixENHQ9dSgoKT0+e0haPVtbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoibTE3IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIxIDYuMzQ0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0xLjM0NCJ9XV19KTt2YXIgZTcsJDR0PXUoKCk9PntlNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dXX0pO3ZhciB0NyxBNHQ9dSgoKT0+e3Q3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDE2VjhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTYgOCA4In1dXX0pO3ZhciByNyxFNHQ9dSgoKT0+e3I3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDhoOHY4In1dLFsicGF0aCIse2Q6Im04IDE2IDgtOCJ9XV19KTt2YXIgYTcsSTR0PXUoKCk9PnthNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XV19KTt2YXIgaTcsUDR0PXUoKCk9PntpNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04LjUgMTQgNy00In1dLFsicGF0aCIse2Q6Im04LjUgMTAgNyA0In1dXX0pO3ZhciBzNyxONHQ9dSgoKT0+e3M3PVtbImxpbmUiLHt4MToiNSIseTE6IjMiLHgyOiIxOSIseTI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHkxOiI1Iix4MjoiMyIseTI6IjE5In1dLFsibGluZSIse3gxOiIyMSIseTE6IjUiLHgyOiIyMSIseTI6IjE5In1dLFsibGluZSIse3gxOiI5Iix5MToiMjEiLHgyOiIxMCIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNCIseTE6IjIxIix4MjoiMTUiLHkyOiIyMSJ9XSxbInBhdGgiLHtkOiJNIDMgNSBBMiAyIDAgMCAxIDUgMyJ9XSxbInBhdGgiLHtkOiJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1In1dLFsicGF0aCIse2Q6Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkifV0sWyJwYXRoIix7ZDoiTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciBuNyxPNHQ9dSgoKT0+e243PVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXX0pO3ZhciBvNyxSNHQ9dSgoKT0+e283PVtbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBHNCxGNHQ9dSgoKT0+e0c0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDhoNyJ9XSxbInBhdGgiLHtkOiJNOCAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMSAxNmg1In1dXX0pO3ZhciBsNyxCNHQ9dSgoKT0+e2w3PVtbInBhdGgiLHtkOiJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQifV0sWyJwYXRoIix7ZDoibTkgMTEgMyAzTDIyIDQifV1dfSk7dmFyIGM3LEg0dD11KCgpPT57Yzc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgZDcscTR0PXUoKCk9PntkNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV19KTt2YXIgdTcsVjR0PXUoKCk9Pnt1Nz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgcDcsajR0PXUoKCk9PntwNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXX0pO3ZhciBmNyxVNHQ9dSgoKT0+e2Y3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIGg3LFc0dD11KCgpPT57aDc9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgcVosRzR0PXUoKCk9PntxWj1bWyJwYXRoIix7ZDoiTTEwIDkuNSA4IDEybDIgMi41In1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Im0xNCA5LjUgMiAyLjUtMiAyLjUifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV1dfSk7dmFyIFZaLFk0dD11KCgpPT57Vlo9W1sicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dXX0pO3ZhciBtNyxLNHQ9dSgoKT0+e203PVtbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dXX0pO3ZhciBnNyxaNHQ9dSgoKT0+e2c3PVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMiJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYyIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV1dfSk7dmFyIFk0LFE0dD11KCgpPT57WTQ9W1sicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dXX0pO3ZhciBqWixYNHQ9dSgoKT0+e2paPVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV19KTt2YXIgYjcsSjR0PXUoKCk9PntiNz1bWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV1dfSk7dmFyIHg3LGUzdD11KCgpPT57eDc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTYiLHkyOiIxNiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiI4In1dXX0pO3ZhciB2Nyx0M3Q9dSgoKT0+e3Y3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIHk3LHIzdD11KCgpPT57eTc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV1dfSk7dmFyIHc3LGEzdD11KCgpPT57dzc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3YzIgMCAyLjgtMSAyLjgtMi44VjEwYzAtMiAxLTMuMyAzLjItMyJ9XSxbInBhdGgiLHtkOiJNOSAxMS4yaDUuNyJ9XV19KTt2YXIgazcsaTN0PXUoKCk9PntrNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dXX0pO3ZhciBTNyxzM3Q9dSgoKT0+e1M3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDd2MTAifV0sWyJwYXRoIix7ZDoiTTExIDd2MTAifV0sWyJwYXRoIix7ZDoibTE1IDcgMiAxMCJ9XV19KTt2YXIgTTcsbjN0PXUoKCk9PntNNz1bWyJwYXRoIix7ZDoiTTggMTZWOC41YS41LjUgMCAwIDEgLjktLjNsMi43IDMuNTk5YS41LjUgMCAwIDAgLjggMGwyLjctMy42YS41LjUgMCAwIDEgLjkuM1YxNiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBDNyxvM3Q9dSgoKT0+e0M3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDhoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTAifV1dfSk7dmFyIHo3LGwzdD11KCgpPT57ejc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgXzcsYzN0PXUoKCk9PntfNz1bWyJwYXRoIix7ZDoiTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6In1dLFsicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XV19KTt2YXIgVDcsZDN0PXUoKCk9PntUNz1bWyJwYXRoIix7ZDoiTTMuNiAzLjZBMiAyIDAgMCAxIDUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0uNTkgMS40MSJ9XSxbInBhdGgiLHtkOiJNMyA4LjdWMTlhMiAyIDAgMCAwIDIgMmgxMC4zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTEzIDEzYTMgMyAwIDEgMCAwLTZIOXYyIn1dLFsicGF0aCIse2Q6Ik05IDE3di0yLjMifV1dfSk7dmFyIEw3LHUzdD11KCgpPT57TDc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV19KTt2YXIgVVoscDN0PXUoKCk9PntVWj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgZGMsZjN0PXUoKCk9PntkYz1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTguMzc1IDIuNjI1YTEgMSAwIDAgMSAzIDNsLTkuMDEzIDkuMDE0YTIgMiAwIDAgMS0uODUzLjUwNWwtMi44NzMuODRhLjUuNSAwIDAgMS0uNjItLjYybC44NC0yLjg3M2EyIDIgMCAwIDEgLjUwNi0uODUyeiJ9XV19KTt2YXIgRDcsaDN0PXUoKCk9PntENz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV19KTt2YXIgJDcsbTN0PXUoKCk9PnskNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aDEwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2EyIDIgMCAwIDEtMi0yVjcifV1dfSk7dmFyIEE3LGczdD11KCgpPT57QTc9W1sicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV1dfSk7dmFyIEU3LGIzdD11KCgpPT57RTc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBJNyx4M3Q9dSgoKT0+e0k3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMkg5LjVhMi41IDIuNSAwIDAgMSAwLTVIMTcifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE2IDd2MTAifV1dfSk7dmFyIFA3LHYzdD11KCgpPT57UDc9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgV1oseTN0PXUoKCk9PntXWj1bWyJwYXRoIix7ZDoiTTcgMTJoMmwyIDUgMi0xMGg0In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIEdaLHczdD11KCgpPT57R1o9W1sicGF0aCIse2Q6Ik0yMSAxMWE4IDggMCAwIDAtOC04In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXX0pO3ZhciBONyxrM3Q9dSgoKT0+e043PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciBPNyxTM3Q9dSgoKT0+e083PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4LjlWN0g4bDQgNS00IDVoOHYtMS45In1dXX0pO3ZhciBSNyxNM3Q9dSgoKT0+e1I3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dfSk7dmFyIEY3LEMzdD11KCgpPT57Rjc9W1sicGF0aCIse2Q6Ik04IDE5SDVjLTEgMC0yLTEtMi0yVjdjMC0xIDEtMiAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgNWgzYzEgMCAyIDEgMiAydjEwYzAgMS0xIDItMiAyaC0zIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNCIseTI6IjIwIn1dXX0pO3ZhciBCNyx6M3Q9dSgoKT0+e0I3PVtbInBhdGgiLHtkOiJNNSA4VjVjMC0xIDEtMiAyLTJoMTBjMSAwIDIgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2M2MwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMnYtMyJ9XSxbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgWVosXzN0PXUoKCk9PntZWj1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgS1osVDN0PXUoKCk9PntLWj1bWyJwYXRoIix7ZDoiTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNmMtMS4xIDAtMi0uOS0yLTJ2LTRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjE0Iix5OiIxNCIscng6IjIifV1dfSk7dmFyIFpaLEwzdD11KCgpPT57Wlo9W1sicGF0aCIse2Q6Ik0xMS4wMzUgNy42OWExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBRWixEM3Q9dSgoKT0+e1FaPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXX0pO3ZhciBINywkM3Q9dSgoKT0+e0g3PVtbInBhdGgiLHtkOiJtNyAxMSAyLTItMi0yIn1dLFsicGF0aCIse2Q6Ik0xMSAxM2g0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dXX0pO3ZhciBxNyxBM3Q9dSgoKT0+e3E3PVtbInBhdGgiLHtkOiJNMTggMjFhNiA2IDAgMCAwLTEyIDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBWNyxFM3Q9dSgoKT0+e1Y3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIGo3LEkzdD11KCgpPT57ajc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBYWixQM3Q9dSgoKT0+e1haPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBKWixOM3Q9dSgoKT0+e0paPVtbInBhdGgiLHtkOiJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIn1dXX0pO3ZhciBlUSxPM3Q9dSgoKT0+e2VRPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTQgMmEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmgtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMFY4In1dLFsicGF0aCIse2Q6Ik0yIDRhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMjAgOGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTggMmgyIn1dXX0pO3ZhciB0USxSM3Q9dSgoKT0+e3RRPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV1dfSk7dmFyIHJRLEYzdD11KCgpPT57clE9W1sicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXoifV1dfSk7dmFyIGFRLEIzdD11KCgpPT57YVE9W1sicGF0aCIse2Q6Ik0xMiAzYzcuMiAwIDkgMS44IDkgOXMtMS44IDktOSA5LTktMS44LTktOSAxLjgtOSA5LTkifV1dfSk7dmFyIGlRLEgzdD11KCgpPT57aVE9W1sicGF0aCIse2Q6Ik0xMy43NyAzLjA0M2EzNCAzNCAwIDAgMC0zLjU0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjc3MSAyMC45NTZhMzMgMzMgMCAwIDEtMy41NDEuMDAxIn1dLFsicGF0aCIse2Q6Ik0yMC4xOCAxNy43NGMtLjUxIDEuMTUtMS4yOSAxLjkzLTIuNDM5IDIuNDQifV0sWyJwYXRoIix7ZDoiTTIwLjE4IDYuMjU5Yy0uNTEtMS4xNDgtMS4yOTEtMS45MjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNMjAuOTU3IDEwLjIzYTMzIDMzIDAgMCAxIDAgMy41NCJ9XSxbInBhdGgiLHtkOiJNMy4wNDMgMTAuMjNhMzQgMzQgMCAwIDAgLjAwMSAzLjU0MSJ9XSxbInBhdGgiLHtkOiJNNi4yNiAyMC4xNzljLTEuMTUtLjUwOC0xLjkzLTEuMjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNNi4yNiAzLjgyYy0xLjE0OS41MS0xLjkzIDEuMjkxLTIuNDQgMi40NCJ9XV19KTt2YXIgc1EscTN0PXUoKCk9PntzUT1bWyJwYXRoIix7ZDoiTTE1LjIzNiAyMmEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIwYTMgMyAwIDAgMSAzLTNoMWEyIDIgMCAwIDAgMi0ydi0yYTQgNCAwIDAgMC00LTRWNCJ9XSxbInBhdGgiLHtkOiJNMTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTQgNCAwIDAgMC00IDQgNyA3IDAgMCAwLTcgN2MwLTUgNC01IDQtMTAuNWE0LjUgNC41IDAgMSAwLTkgMCAyLjUgMi41IDAgMCAwIDUgMEM3IDEwIDMgMTEgMyAxN2MwIDIuOCAyLjIgNSA1IDVoMTAifV1dfSk7dmFyIG5RLFYzdD11KCgpPT57blE9W1sicGF0aCIse2Q6Ik0xNCAxM1Y4LjVDMTQgNyAxNSA3IDE1IDVhMyAzIDAgMCAwLTYgMGMwIDIgMSAyIDEgMy41VjEzIn1dLFsicGF0aCIse2Q6Ik0yMCAxNS41YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtMTFBMi41IDIuNSAwIDAgMCA0IDE1LjVWMTdhMSAxIDAgMCAwIDEgMWgxNGExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNSAyMmgxNCJ9XV19KTt2YXIgb1EsajN0PXUoKCk9PntvUT1bWyJwYXRoIix7ZDoiTTEyIDE4LjMzOGEyLjEgMi4xIDAgMCAwLS45ODcuMjQ0TDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlBLjUzLjUzIDAgMCAxIDEyIDIifV1dfSk7dmFyIGxRLFUzdD11KCgpPT57bFE9W1sicGF0aCIse2Q6Im0xMC4zNDQgNC42ODggMS4xODEtMi4zOTNhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMiAyLjEyIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy4yMzcgMy4xNTIifV0sWyJwYXRoIix7ZDoibTE3Ljk0NSAxNy45NDUuNDMgMi41MDVhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIgMi4xMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhOCA4IDAgMCAwIC40LS4wOTkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgY1EsVzN0PXUoKCk9PntjUT1bWyJwYXRoIix7ZDoiTTExLjUyNSAyLjI5NWEuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyMyAyLjEyMyAwIDAgMCAxLjU5NSAxLjE2bDUuMTY2Ljc1NmEuNTMuNTMgMCAwIDEgLjI5NC45MDRsLTMuNzM2IDMuNjM4YTIuMTIzIDIuMTIzIDAgMCAwLS42MTEgMS44NzhsLjg4MiA1LjE0YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyMiAyLjEyMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMjIgMi4xMjIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyMiAyLjEyMiAwIDAgMCAxLjU5Ny0xLjE2eiJ9XV19KTt2YXIgZFEsRzN0PXUoKCk9PntkUT1bWyJwYXRoIix7ZDoiTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMjBWNCJ9XV19KTt2YXIgdVEsWTN0PXUoKCk9Pnt1UT1bWyJwYXRoIix7ZDoiTTEwLjAyOSA0LjI4NUEyIDIgMCAwIDAgNyA2djEyYTIgMiAwIDAgMCAzLjAyOSAxLjcxNWw5Ljk5Ny01Ljk5OGEyIDIgMCAwIDAgLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgNHYxNiJ9XV19KTt2YXIgcFEsSzN0PXUoKCk9PntwUT1bWyJwYXRoIix7ZDoiTTExIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNSAydjIifV0sWyJwYXRoIix7ZDoiTTUgM0g0YTIgMiAwIDAgMC0yIDJ2NGE2IDYgMCAwIDAgMTIgMFY1YTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTggMTVhNiA2IDAgMCAwIDEyIDB2LTMifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxMCIscjoiMiJ9XV19KTt2YXIgZlEsWjN0PXUoKCk9PntmUT1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEifV1dfSk7dmFyIGhRLFEzdD11KCgpPT57aFE9W1sicGF0aCIse2Q6Ik0xMS4yNjQgMi4yMDVBNCA0IDAgMCAwIDYuNDIgNC4yMTFsLTQgOGE0IDQgMCAwIDAgMS4zNTkgNS4xMTdsNiA0YTQgNCAwIDAgMCA0LjQzOCAwbDYtNGE0IDQgMCAwIDAgMS41NzYtNC41OTJsLTItNmE0IDQgMCAwIDAtMi41My0yLjUzeiJ9XSxbInBhdGgiLHtkOiJNMTEuOTkgMjIgMTQgMTJsNy44MjIgMy4xODQifV0sWyJwYXRoIix7ZDoiTTE0IDEyIDguNDcgMi4zMDIifV1dfSk7dmFyIG1RLFgzdD11KCgpPT57bVE9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dXX0pO3ZhciBnUSxKM3Q9dSgoKT0+e2dRPVtbInBhdGgiLHtkOiJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCJ9XSxbInBhdGgiLHtkOiJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUifV1dfSk7dmFyIGJRLGV1dD11KCgpPT57YlE9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIyMCIseDoiMTQiLHk6IjIiLHJ4OiIyIn1dXX0pO3ZhciB4USx0dXQ9dSgoKT0+e3hRPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNiIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjYiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XV19KTt2YXIgdlEscnV0PXUoKCk9Pnt2UT1bWyJwYXRoIix7ZDoiTTE2IDRIOWEzIDMgMCAwIDAtMi44MyA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmE0IDQgMCAwIDEgMCA4SDYifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIHlRLGF1dD11KCgpPT57eVE9W1sicGF0aCIse2Q6Im00IDUgOCA4In1dLFsicGF0aCIse2Q6Im0xMiA1LTggOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTloLTRjMC0xLjUuNDQtMiAxLjUtMi41UzIwIDE1LjMzIDIwIDE0YzAtLjQ3LS4xNy0uOTMtLjQ4LTEuMjlhMi4xMSAyLjExIDAgMCAwLTIuNjItLjQ0Yy0uNDIuMjQtLjc0LjYyLS45IDEuMDcifV1dfSk7dmFyIHdRLGl1dD11KCgpPT57d1E9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyA2LjM0M2guMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyA2LjM0M2guMDEifV1dfSk7dmFyIGtRLHN1dD11KCgpPT57a1E9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDN2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgxIn1dLFsicGF0aCIse2Q6Im0xOC4zNjQgNS42MzYtLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTYuMzQzIDE3LjY1Ny0uNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtNS42MzYgNS42MzYuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtMTcuNjU3IDE3LjY1Ny43MDcuNzA3In1dXX0pO3ZhciBTUSxudXQ9dSgoKT0+e1NRPVtbInBhdGgiLHtkOiJNMTAgMjF2LTEifV0sWyJwYXRoIix7ZDoiTTEwIDRWMyJ9XSxbInBhdGgiLHtkOiJNMTAgOWEzIDMgMCAwIDAgMCA2In1dLFsicGF0aCIse2Q6Im0xNCAyMCAxLjI1LTIuNUwxOCAxOCJ9XSxbInBhdGgiLHtkOiJtMTQgNCAxLjI1IDIuNUwxOCA2In1dLFsicGF0aCIse2Q6Im0xNyAyMS0zLTYgMS41LTNIMjIifV0sWyJwYXRoIix7ZDoibTE3IDMtMyA2IDEuNSAzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDEifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Im0zLjY0IDE4LjM2LjctLjcifV0sWyJwYXRoIix7ZDoibTQuMzQgNi4zNC0uNy0uNyJ9XV19KTt2YXIgTVEsb3V0PXUoKCk9PntNUT1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQuODM3IDE2LjM4NWE2IDYgMCAxIDEtNy4yMjMtNy4yMjJjLjYyNC0uMTQ3Ljk3LjY2LjcxNSAxLjI0OGE0IDQgMCAwIDAgNS4yNiA1LjI1OWMuNTg5LS4yNTUgMS4zOTYuMDkgMS4yNDguNzE1In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtNC00In1dLFsicGF0aCIse2Q6Im0xOSA1LTEuMjU2IDEuMjU2In1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dXX0pO3ZhciBDUSxsdXQ9dSgoKT0+e0NRPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE3LjY2IDE3LjY2IDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im02LjM0IDE3LjY2LTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV1dfSk7dmFyIHpRLGN1dD11KCgpPT57elE9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dfSk7dmFyIF9RLGR1dD11KCgpPT57X1E9W1sicGF0aCIse2Q6Ik0xMiAxMFYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDEwLjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyAxMC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV0sWyJwYXRoIix7ZDoibTE2IDYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMThhNCA0IDAgMCAwLTggMCJ9XV19KTt2YXIgVFEsdXV0PXUoKCk9PntUUT1bWyJwYXRoIix7ZDoibTQgMTkgOC04In1dLFsicGF0aCIse2Q6Im0xMiAxOS04LTgifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC00YzAtMS41LjQ0Mi0yIDEuNS0yLjVTMjAgOC4zMzQgMjAgNy4wMDJjMC0uNDcyLS4xNy0uOTMtLjQ4NC0xLjI5YTIuMTA1IDIuMTA1IDAgMCAwLTIuNjE3LS40MzZjLS40Mi4yMzktLjczOC42MTQtLjg5OSAxLjA2In1dXX0pO3ZhciBMUSxwdXQ9dSgoKT0+e0xRPVtbInBhdGgiLHtkOiJNMTAgMjFWM2g4In1dLFsicGF0aCIse2Q6Ik02IDE2aDkifV0sWyJwYXRoIix7ZDoiTTEwIDkuNWg3In1dXX0pO3ZhciBEUSxmdXQ9dSgoKT0+e0RRPVtbInBhdGgiLHtkOiJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0gNyAxN2guMDEifV0sWyJwYXRoIix7ZDoibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgifV1dfSk7dmFyICRRLGh1dD11KCgpPT57JFE9W1sicGF0aCIse2Q6Ik0xMSAxOUg0YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDUifV0sWyJwYXRoIix7ZDoiTTEzIDVoN2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJtNiAyIDMgMy0zIDMifV1dfSk7dmFyIEFRLG11dD11KCgpPT57QVE9W1sicGF0aCIse2Q6Im0xMSAxOS02LTYifV0sWyJwYXRoIix7ZDoibTUgMjEtMi0yIn1dLFsicGF0aCIse2Q6Im04IDE2LTQgNCJ9XSxbInBhdGgiLHtkOiJNOS41IDE3LjUgMjEgNlYzaC0zTDYuNSAxNC41In1dXX0pO3ZhciBFUSxndXQ9dSgoKT0+e0VRPVtbInBhdGgiLHtkOiJtMTggMiA0IDQifV0sWyJwYXRoIix7ZDoibTE3IDcgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSA0IDQifV0sWyJwYXRoIix7ZDoibTUgMTktMyAzIn1dLFsicGF0aCIse2Q6Im0xNCA0IDYgNiJ9XV19KTt2YXIgSVEsYnV0PXUoKCk9PntJUT1bWyJwb2x5bGluZSIse3BvaW50czoiMTQuNSAxNy41IDMgNiAzIDMgNiAzIDE3LjUgMTQuNSJ9XSxbImxpbmUiLHt4MToiMTMiLHgyOiIxOSIseTE6IjE5Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjAiLHkxOiIxNiIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIxIix5MToiMjEiLHkyOiIxOSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxNC41IDYuNSAxOCAzIDIxIDMgMjEgNiAxNy41IDkuNSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjkiLHkxOiIxNCIseTI6IjE4In1dLFsibGluZSIse3gxOiI3Iix4MjoiNCIseTE6IjE3Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI1Iix5MToiMTkiLHkyOiIyMSJ9XV19KTt2YXIgUFEseHV0PXUoKCk9PntQUT1bWyJwYXRoIix7ZDoiTTkgM0g1YTIgMiAwIDAgMC0yIDJ2NG02LTZoMTBhMiAyIDAgMCAxIDIgMnY0TTkgM3YxOG0wIDBoMTBhMiAyIDAgMCAwIDItMlY5TTkgMjFINWEyIDIgMCAwIDEtMi0yVjltMCAwaDE4In1dXX0pO3ZhciBOUSx2dXQ9dSgoKT0+e05RPVtbInBhdGgiLHtkOiJNMTIgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dfSk7dmFyIE9RLHl1dD11KCgpPT57T1E9W1sicGF0aCIse2Q6Ik0xMiAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOVYzIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV19KTt2YXIgUlEsd3V0PXUoKCk9PntSUT1bWyJwYXRoIix7ZDoiTTE0IDE0djIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgOHYyIn1dLFsicGF0aCIse2Q6Ik0yIDE1aDgifV0sWyJwYXRoIix7ZDoiTTIgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDloOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTVoLTQifV0sWyJwYXRoIix7ZDoiTTIyIDNoLTJhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLTQifV0sWyJwYXRoIix7ZDoiTTUgM3YxOCJ9XV19KTt2YXIgRlEsa3V0PXUoKCk9PntGUT1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgNWguMDEifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLjAxIn1dXX0pO3ZhciBCUSxTdXQ9dSgoKT0+e0JRPVtbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE1SDMifV1dfSk7dmFyIEhRLE11dD11KCgpPT57SFE9W1sicGF0aCIse2Q6Ik0xNCAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMTUgMnY0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEwaDIifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgMjJ2LTZhMiAyIDEzNSAwIDEgMi0yaDE0YTIgMiA0NSAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTMgMnYyYTIgMiA0NSAwIDAgMiAyaDE0YTIgMiAxMzUgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDIifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTkgMnY0In1dXX0pO3ZhciBxUSxDdXQ9dSgoKT0+e3FRPVtbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV1dfSk7dmFyIFZRLHp1dD11KCgpPT57VlE9W1sicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxNCIseDoiMyIseToiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTUgNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTZhMiAyIDAgMCAxLTIgMmgtMi40In1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XV19KTt2YXIgalEsX3V0PXUoKCk9PntqUT1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxOCIseTI6IjE4In1dXX0pO3ZhciBVUSxUdXQ9dSgoKT0+e1VRPVtbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiNSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxN2gxMCJ9XSxbInBhdGgiLHtkOiJtMy40NiAxMC41NCA3LjA4LTcuMDgifV1dfSk7dmFyIFdRLEx1dD11KCgpPT57V1E9W1sicGF0aCIse2Q6Ik0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBHUSxEdXQ9dSgoKT0+e0dRPVtbInBhdGgiLHtkOiJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjUiLGN5OiI2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dfSk7dmFyIFlRLCR1dD11KCgpPT57WVE9W1sicGF0aCIse2Q6Ik00IDR2MTYifV1dfSk7dmFyIEtRLEF1dD11KCgpPT57S1E9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XV19KTt2YXIgWlEsRXV0PXUoKCk9PntaUT1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dXX0pO3ZhciBRUSxJdXQ9dSgoKT0+e1FRPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDR2MTYifV1dfSk7dmFyIFhRLFB1dD11KCgpPT57WFE9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMjIgNiAyIDE4In1dXX0pO3ZhciBKUSxOdXQ9dSgoKT0+e0pRPVtbImNpcmNsZSIse2N4OiIxNyIsY3k6IjQiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTE1LjU5IDUuNDEgNS40MSAxNS41OSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTciLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDIycy00LTktMS41LTExLjVTMjIgMTIgMjIgMTIifV1dfSk7dmFyIGVYLE91dD11KCgpPT57ZVg9W1sicGF0aCIse2Q6Im0xMC4wNjUgMTIuNDkzLTYuMTggMS4zMThhLjkzNC45MzQgMCAwIDEtMS4xMDgtLjcwMmwtLjUzNy0yLjE1YTEuMDcgMS4wNyAwIDAgMSAuNjkxLTEuMjY1bDEzLjUwNC00LjQ0In1dLFsicGF0aCIse2Q6Im0xMy41NiAxMS43NDcgNC4zMzItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTYgMjEtMy4xMDUtNi4yMSJ9XSxbInBhdGgiLHtkOiJNMTYuNDg1IDUuOTRhMiAyIDAgMCAxIDEuNDU1LTIuNDI1bDEuMDktLjI3MmExIDEgMCAwIDEgMS4yMTIuNzI3bDEuNTE1IDYuMDZhMSAxIDAgMCAxLS43MjcgMS4yMTNsLTEuMDkuMjcyYTIgMiAwIDAgMS0yLjQyNS0xLjQ1NXoifV0sWyJwYXRoIix7ZDoibTYuMTU4IDguNjMzIDEuMTE0IDQuNDU2In1dLFsicGF0aCIse2Q6Im04IDIxIDMuMTA1LTYuMjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XV19KTt2YXIgdFgsUnV0PXUoKCk9Pnt0WD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciByWCxGdXQ9dSgoKT0+e3JYPVtbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNEg3bC01IDhoMjBaIn1dLFsicGF0aCIse2Q6Ik04IDE0djgifV0sWyJwYXRoIix7ZDoibTkgMTQgNSA4In1dXX0pO3ZhciBhWCxCdXQ9dSgoKT0+e2FYPVtbInBhdGgiLHtkOiJNMy41IDIxIDE0IDMifV0sWyJwYXRoIix7ZDoiTTIwLjUgMjEgMTAgMyJ9XSxbInBhdGgiLHtkOiJNMTUuNSAyMSAxMiAxNWwtMy41IDYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV1dfSk7dmFyIGlYLEh1dD11KCgpPT57aVg9W1sicGF0aCIse2Q6Ik0xMiAxOWg4In1dLFsicGF0aCIse2Q6Im00IDE3IDYtNi02LTYifV1dfSk7dmFyIFU3LHF1dD11KCgpPT57VTc9W1sicGF0aCIse2Q6Ik0yMSA3IDYuODIgMjEuMThhMi44MyAyLjgzIDAgMCAxLTMuOTktLjAxYTIuODMgMi44MyAwIDAgMSAwLTRMMTcgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoiTTEyIDE2SDQifV1dfSk7dmFyIHNYLFZ1dD11KCgpPT57c1g9W1sicGF0aCIse2Q6Ik0xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dLFsicGF0aCIse2Q6Ik0xNC41IDE2aC01In1dXX0pO3ZhciBXNyxqdXQ9dSgoKT0+e1c3PVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNyAxMkg3In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1In1dXX0pO3ZhciBuWCxVdXQ9dSgoKT0+e25YPVtbInBhdGgiLHtkOiJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNMyAyaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJoNyJ9XSxbInBhdGgiLHtkOiJNOSAxNkg0In1dLFsicGF0aCIse2Q6Ik0yMCAxNmgtNSJ9XV19KTt2YXIgRzcsV3V0PXUoKCk9PntHNz1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlINyJ9XV19KTt2YXIgWTcsR3V0PXUoKCk9PntZNz1bWyJwYXRoIix7ZDoiTTMgNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XV19KTt2YXIgSzQsWXV0PXUoKCk9PntLND1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTlIMyJ9XV19KTt2YXIgb1gsS3V0PXUoKCk9PntvWD1bWyJwYXRoIix7ZDoiTTEyIDIwaC0xYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxLTIgMkg2In1dLFsicGF0aCIse2Q6Ik0xMyA4aDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTcifV0sWyJwYXRoIix7ZDoiTTUgMTZINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJNNiA0aDFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTkgNnYxMiJ9XV19KTt2YXIgbFgsWnV0PXUoKCk9PntsWD1bWyJwYXRoIix7ZDoiTTE3IDIyaC0xYTQgNCAwIDAgMS00LTRWNmE0IDQgMCAwIDEgNC00aDEifV0sWyJwYXRoIix7ZDoiTTcgMjJoMWE0IDQgMCAwIDAgNC00di0xIn1dLFsicGF0aCIse2Q6Ik03IDJoMWE0IDQgMCAwIDEgNCA0djEifV1dfSk7dmFyIEs3LFF1dD11KCgpPT57Szc9W1sicGF0aCIse2Q6Ik0xNSA1aDYifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoibTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTIifV0sWyJwYXRoIix7ZDoiTTMuOTIgMTBoNi4xNiJ9XV19KTt2YXIgY1gsWHV0PXUoKCk9PntjWD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE1IixyOiIzIn1dLFsicGF0aCIse2Q6Im0yMSAxOS0xLjktMS45In1dXX0pO3ZhciBkWCxKdXQ9dSgoKT0+e2RYPVtbInBhdGgiLHtkOiJNMTcgNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkg4In1dLFsicGF0aCIse2Q6Ik0yMSAxOUg4In1dLFsicGF0aCIse2Q6Ik0zIDEydjcifV1dfSk7dmFyIFo3LGVwdD11KCgpPT57Wjc9W1sicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWg2In1dLFsicGF0aCIse2Q6Ik0zIDVoMTgifV1dfSk7dmFyIHVYLHRwdD11KCgpPT57dVg9W1sicGF0aCIse2Q6Ik0yIDEwczMtMyAzLTgifV0sWyJwYXRoIix7ZDoiTTIyIDEwcy0zLTMtMy04In1dLFsicGF0aCIse2Q6Ik0xMCAyYzAgNC40LTMuNiA4LTggOCJ9XSxbInBhdGgiLHtkOiJNMTQgMmMwIDQuNCAzLjYgOCA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTBzMiAyIDIgNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTIgMi0yIDUifV0sWyJwYXRoIix7ZDoiTTggMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dXX0pO3ZhciBwWCxycHQ9dSgoKT0+e3BYPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoiTTEwLjU4NSAxNUgxMCJ9XSxbInBhdGgiLHtkOiJNMiAxMmg2LjVMMTAgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDIifV1dfSk7dmFyIGZYLGFwdD11KCgpPT57Zlg9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDhhNCA0IDAgMCAwLTEuNjQ1IDcuNjQ3In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV1dfSk7dmFyIGhYLGlwdD11KCgpPT57aFg9W1sicGF0aCIse2Q6Ik0xNCA0djEwLjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAwWiJ9XV19KTt2YXIgbVgsc3B0PXUoKCk9PnttWD1bWyJwYXRoIix7ZDoiTTkgMTguMTIgMTAgMTRINC4xN2EyIDIgMCAwIDEtMS45Mi0yLjU2bDIuMzMtOEEyIDIgMCAwIDEgNi41IDJIMjBhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuNzZhMiAyIDAgMCAwLTEuNzkgMS4xMUwxMiAyMmEzLjEzIDMuMTMgMCAwIDEtMy0zLjg4WiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWMiJ9XV19KTt2YXIgZ1gsbnB0PXUoKCk9PntnWD1bWyJwYXRoIix7ZDoiTTE1IDUuODggMTQgMTBoNS44M2EyIDIgMCAwIDEgMS45MiAyLjU2bC0yLjMzIDhBMiAyIDAgMCAxIDE3LjUgMjJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAyLTJoMi43NmEyIDIgMCAwIDAgMS43OS0xLjExTDEyIDJhMy4xMyAzLjEzIDAgMCAxIDMgMy44OFoifV0sWyJwYXRoIix7ZDoiTTcgMTB2MTIifV1dfSk7dmFyIGJYLG9wdD11KCgpPT57Ylg9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIHhYLGxwdD11KCgpPT57eFg9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dfSk7dmFyIHZYLGNwdD11KCgpPT57dlg9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMSAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAxIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciB5WCxkcHQ9dSgoKT0+e3lYPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIHdYLHVwdD11KCgpPT57d1g9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSA5LjUgNSA1In1dXX0pO3ZhciBrWCxwcHQ9dSgoKT0+e2tYPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDE0LjUgNS01In1dXX0pO3ZhciBTWCxmcHQ9dSgoKT0+e1NYPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMgNXYyIn1dLFsicGF0aCIse2Q6Ik0xMyAxN3YyIn1dLFsicGF0aCIse2Q6Ik0xMyAxMXYyIn1dXX0pO3ZhciBNWCxocHQ9dSgoKT0+e01YPVtbInBhdGgiLHtkOiJNMTAuNSAxN2gxLjIyN2EyIDIgMCAwIDAgMS4zNDUtLjUyTDE4IDEyIn1dLFsicGF0aCIse2Q6Im0xMiAxMy41IDMuNzk0LjUwNiJ9XSxbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciBDWCxtcHQ9dSgoKT0+e0NYPVtbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciB6WCxncHQ9dSgoKT0+e3pYPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcifV0sWyJwYXRoIix7ZDoiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XV19KTt2YXIgX1gsYnB0PXUoKCk9PntfWD1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTQgMTNhOCA4IDAgMCAxIDgtNyA4IDggMCAxIDEtNS4zIDE0TDQgMTcuNiJ9XSxbInBhdGgiLHtkOiJNOSAxN0g0djUifV1dfSk7dmFyIFRYLHhwdD11KCgpPT57VFg9W1sibGluZSIse3gxOiIxMCIseDI6IjE0Iix5MToiMiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTUiLHkxOiIxNCIseTI6IjExIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjgifV1dfSk7dmFyIExYLHZwdD11KCgpPT57TFg9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXX0pO3ZhciBEWCx5cHQ9dSgoKT0+e0RYPVtbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIzIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjcifV1dfSk7dmFyICRYLHdwdD11KCgpPT57JFg9W1sicGF0aCIse2Q6Ik03IDEyaDEzYTEgMSAwIDAgMSAxIDEgNSA1IDAgMCAxLTUgNWgtLjU5OGEuNS41IDAgMCAwLS40MjQuNzY1bDEuNTQ0IDIuNDdhLjUuNSAwIDAgMS0uNDI0Ljc2NUg1LjQwMmEuNS41IDAgMCAxLS40MjQtLjc2NUw3IDE4In1dLFsicGF0aCIse2Q6Ik04IDE4YTUgNSAwIDAgMS01LTVWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnY4In1dXX0pO3ZhciBBWCxrcHQ9dSgoKT0+e0FYPVtbInBhdGgiLHtkOiJNMTAgMTVoNCJ9XSxbInBhdGgiLHtkOiJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyJ9XSxbInBhdGgiLHtkOiJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIn1dLFsicGF0aCIse2Q6Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XV19KTt2YXIgRVgsU3B0PXUoKCk9PntFWD1bWyJwYXRoIix7ZDoiTTE2IDEydjQifV0sWyJwYXRoIix7ZDoiTTE2IDZhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0IDRBMiAyIDAgMCAxIDIyIDEydjdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIC41ODYtMS40MTRsNC00QTIgMiAwIDAgMSA4IDZ6In1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTggMTJ2NCJ9XV19KTt2YXIgSVgsTXB0PXUoKCk9PntJWD1bWyJwYXRoIix7ZDoiTTIxIDRIMyJ9XSxbInBhdGgiLHtkOiJNMTggOEg2In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg5In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgtNiJ9XSxbInBhdGgiLHtkOiJNMTEgMjBIOSJ9XV19KTt2YXIgUFgsQ3B0PXUoKCk9PntQWD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTEiLHJ4OiIzIixyeToiMiJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMi41IixyeDoiMTAiLHJ5OiI4LjUifV1dfSk7dmFyIE5YLHpwdD11KCgpPT57Tlg9W1sicGF0aCIse2Q6Ik0xMiAyMHYtNiJ9XSxbInBhdGgiLHtkOiJNMTkuNjU2IDE0SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDEyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTkuNjU2IDRIMjBhMiAyIDAgMCAxIDIgMnYxMC4zNDQifV1dfSk7dmFyIE9YLF9wdD11KCgpPT57T1g9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dXX0pO3ZhciBSWCxUcHQ9dSgoKT0+e1JYPVtbInBhdGgiLHtkOiJNMjIgN2gtMiJ9XSxbInBhdGgiLHtkOiJNNi41IDNoMTFBMi41IDIuNSAwIDAgMSAyMCA1LjVWMjBhMSAxIDAgMCAxLTEgMWgtOWExIDEgMCAwIDEtMS0xVjUuNWExIDEgMCAwIDAtNSAwVjE3YTEgMSAwIDAgMCAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNOSA3SDIifV1dfSk7dmFyIEZYLExwdD11KCgpPT57Rlg9W1sicGF0aCIse2Q6Ik0xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaIn1dLFsicGF0aCIse2Q6Ik04IDEzdjkifV0sWyJwYXRoIix7ZDoiTTE2IDIydi05In1dLFsicGF0aCIse2Q6Im05IDYgMSA3In1dLFsicGF0aCIse2Q6Im0xNSA2LTEgNyJ9XSxbInBhdGgiLHtkOiJNMTIgNlYyIn1dLFsicGF0aCIse2Q6Ik0xMyAyaC0yIn1dXX0pO3ZhciBCWCxEcHQ9dSgoKT0+e0JYPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBIWCwkcHQ9dSgoKT0+e0hYPVtbInBhdGgiLHtkOiJtMTAgMTEgMTEgLjlhMSAxIDAgMCAxIC44IDEuMWwtLjY2NSA0LjE1OGExIDEgMCAwIDEtLjk4OC44NDJIMjAifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC01In1dLFsicGF0aCIse2Q6Ik0xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMifV0sWyJwYXRoIix7ZDoiTTMgNGg4LjEyOWExIDEgMCAwIDEgLjk5Ljg2M0wxMyAxMS4yNDYifV0sWyJwYXRoIix7ZDoiTTQgMTFWNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTAuMVY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE1IixyOiI1In1dXX0pO3ZhciBxWCxBcHQ9dSgoKT0+e3FYPVtbInBhdGgiLHtkOiJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIn1dLFsicGF0aCIse2Q6Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0In1dLFsicGF0aCIse2Q6Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoifV0sWyJwYXRoIix7ZDoiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIn1dXX0pO3ZhciBWWCxFcHQ9dSgoKT0+e1ZYPVtbInBhdGgiLHtkOiJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIn1dLFsicGF0aCIse2Q6Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgifV0sWyJwYXRoIix7ZDoiTTEwIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoifV0sWyJwYXRoIix7ZDoibTkgMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAyIDMifV1dfSk7dmFyIGpYLElwdD11KCgpPT57alg9W1sicGF0aCIse2Q6Ik04IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xIn1dLFsicGF0aCIse2Q6Im05IDE1LTEtMSJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgMS0xIn1dLFsicGF0aCIse2Q6Ik05IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaIn1dLFsicGF0aCIse2Q6Im04IDE5LTIgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAzIn1dXX0pO3ZhciBVWCxQcHQ9dSgoKT0+e1VYPVtbInBhdGgiLHtkOiJNMiAxNyAxNyAyIn1dLFsicGF0aCIse2Q6Im0yIDE0IDggOCJ9XSxbInBhdGgiLHtkOiJtNSAxMSA4IDgifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoibTExIDUgOCA4In1dLFsicGF0aCIse2Q6Im0xNCAyIDggOCJ9XSxbInBhdGgiLHtkOiJNNyAyMiAyMiA3In1dXX0pO3ZhciBRNyxOcHQ9dSgoKT0+e1E3PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDExaDE2In1dLFsicGF0aCIse2Q6Ik0xMiAzdjgifV0sWyJwYXRoIix7ZDoibTggMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xOCAyMi0yLTMifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV1dfSk7dmFyIFdYLE9wdD11KCgpPT57V1g9W1sicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNCAyMGgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMmg0djQifV0sWyJwYXRoIix7ZDoibTIgMiA3LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTIgNS4zNTVWMmgzLjM1NyJ9XSxbInBhdGgiLHtkOiJtMjIgMi03LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTggNSA1IDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV19KTt2YXIgR1gsUnB0PXUoKCk9PntHWD1bWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBZWCxGcHQ9dSgoKT0+e1lYPVtbInBhdGgiLHtkOiJNMTAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik0zIDZoMTgifV0sWyJwYXRoIix7ZDoiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIEtYLEJwdD11KCgpPT57S1g9W1sicGF0aCIse2Q6Ik04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dXX0pO3ZhciBYNyxIcHQ9dSgoKT0+e1g3PVtbInBhdGgiLHtkOiJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1In1dLFsicGF0aCIse2Q6Ik0xMSAxNS41Yy41IDIuNS0uMTcgNC41LTEgNi41aDRjMi01LjUtLjUtMTItMS0xNCJ9XV19KTt2YXIgWlgscXB0PXUoKCk9PntaWD1bWyJwYXRoIix7ZDoibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0zIn1dXX0pO3ZhciBRWCxWcHQ9dSgoKT0+e1FYPVtbInBhdGgiLHtkOiJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiJ9XSxbInBhdGgiLHtkOiJNNyAxNnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41In1dXX0pO3ZhciBYWCxqcHQ9dSgoKT0+e1hYPVtbInBhdGgiLHtkOiJNMTYgMTdoNnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTctOC41LTguNS01IDVMMiA3In1dXX0pO3ZhciBKWCxVcHQ9dSgoKT0+e0pYPVtbInBhdGgiLHtkOiJNMTQuODI4IDE0LjgyOCAyMSAyMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDktNC00LTYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dXX0pO3ZhciBlSixXcHQ9dSgoKT0+e2VKPVtbInBhdGgiLHtkOiJNMTYgN2g2djYifV0sWyJwYXRoIix7ZDoibTIyIDctOC41IDguNS01LTVMMiAxNyJ9XV19KTt2YXIgSjcsR3B0PXUoKCk9PntKNz1bWyJwYXRoIix7ZDoibTIxLjczIDE4LTgtMTRhMiAyIDAgMCAwLTMuNDggMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgdEosWXB0PXUoKCk9Pnt0Sj1bWyJwYXRoIix7ZDoiTTEwLjE3IDQuMTkzYTIgMiAwIDAgMSAzLjY2Ni4wMTMifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDIifV0sWyJwYXRoIix7ZDoibTE1Ljg3NCA3Ljc0MyAxIDEuNzMyIn1dLFsicGF0aCIse2Q6Im0xOC44NDkgMTIuOTUyIDEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQifV0sWyJwYXRoIix7ZDoiTTQuMDI0IDIxYTIgMiAwIDAgMS0xLjgzOS0yLjgzOSJ9XSxbInBhdGgiLHtkOiJtNS4xMzYgMTIuOTUyLTEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTggMjFoMiJ9XSxbInBhdGgiLHtkOiJtOC4xMDIgNy43NDMtMSAxLjczMiJ9XV19KTt2YXIgckosS3B0PXUoKCk9PntySj1bWyJwYXRoIix7ZDoiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIn1dXX0pO3ZhciBhSixacHQ9dSgoKT0+e2FKPVtbInBhdGgiLHtkOiJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIn1dXX0pO3ZhciBpSixRcHQ9dSgoKT0+e2lKPVtbInBhdGgiLHtkOiJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2In1dLFsicGF0aCIse2Q6Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2In1dXX0pO3ZhciBzSixYcHQ9dSgoKT0+e3NKPVtbInBhdGgiLHtkOiJNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDkifV0sWyJwYXRoIix7ZDoiTTE1IDE5SDkifV0sWyJwYXRoIix7ZDoiTTE5IDE5aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MkwxOC4zIDkuMzhhMSAxIDAgMCAwLS43OC0uMzhIMTQifV0sWyJwYXRoIix7ZDoiTTIgMTN2NWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTQgMyAyLjE1IDUuMTVhLjQ5NS40OTUgMCAwIDAgLjM1Ljg2aDIuMTVhLjQ3LjQ3IDAgMCAxIC4zNS44NkwzIDkuMDIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIG5KLEpwdD11KCgpPT57bko9W1sicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMThIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciBvSixlZnQ9dSgoKT0+e29KPVtbInBhdGgiLHtkOiJNMTUgNCA1IDkifV0sWyJwYXRoIix7ZDoibTE1IDguNS0xMCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmE5IDkgMCAwIDEtOSA5VjMifV1dfSk7dmFyIGxKLHRmdD11KCgpPT57bEo9W1sicGF0aCIse2Q6Ik0xMCAxMi4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NGE4IDggMCAwIDEtMS4wNyA0In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgY0oscmZ0PXUoKCk9PntjSj1bWyJwYXRoIix7ZDoibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIn1dLFsicGF0aCIse2Q6Ik00LjgyIDcuOSA4IDEwIn1dLFsicGF0aCIse2Q6Ik0xNS4xOCA3LjkgMTIgMTAifV0sWyJwYXRoIix7ZDoiTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMiJ9XV19KTt2YXIgZEosYWZ0PXUoKCk9PntkSj1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIGU5LGlmdD11KCgpPT57ZTk9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIHVKLHNmdD11KCgpPT57dUo9W1sicGF0aCIse2Q6Ik0xNCAxNi41YS41LjUgMCAwIDAgLjUuNWguNWEyIDIgMCAwIDEgMCA0SDlhMiAyIDAgMCAxIDAtNGguNWEuNS41IDAgMCAwIC41LS41di05YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41VjhhMiAyIDAgMCAxLTQgMFY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS00IDB2LS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41WiJ9XV19KTt2YXIgcEosbmZ0PXUoKCk9PntwSj1bWyJwYXRoIix7ZDoibTE3IDItNSA1LTUtNSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTUiLHg6IjIiLHk6IjciLHJ4OiIyIn1dXX0pO3ZhciBmSixvZnQ9dSgoKT0+e2ZKPVtbInBhdGgiLHtkOiJNMTIgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV19KTt2YXIgaEosbGZ0PXUoKCk9PntoSj1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMC45OTIgMTNhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTE5LjkyMyAwQTEgMSAwIDAgMCAzIDEzeiJ9XV19KTt2YXIgbUosY2Z0PXUoKCk9PnttSj1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNS45NjEgNS45NTdhMTAuMjggMTAuMjggMCAwIDAtMy45MjIgNS43NjlBMSAxIDAgMCAwIDMgMTNoMTAifV1dfSk7dmFyIGdKLGRmdD11KCgpPT57Z0o9W1sicGF0aCIse2Q6Ik02IDR2NmE2IDYgMCAwIDAgMTIgMFY0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciBiSix1ZnQ9dSgoKT0+e2JKPVtbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dLFsicGF0aCIse2Q6Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIn1dXX0pO3ZhciB4SixwZnQ9dSgoKT0+e3hKPVtbInBhdGgiLHtkOiJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIn1dLFsicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjEifV1dfSk7dmFyIHZKLGZmdD11KCgpPT57dko9W1sicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtOS05IDkgOSAwIDAgMC02IDIuM0wzIDEzIn1dXX0pO3ZhciB5SixoZnQ9dSgoKT0+e3lKPVtbInBhdGgiLHtkOiJNMTYgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV1dfSk7dmFyIHdKLG1mdD11KCgpPT57d0o9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjExIix5OiIxNCIscng6IjEifV1dfSk7dmFyIGtKLGdmdD11KCgpPT57a0o9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOFYyIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTktMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJtMTUgNS0zLTMtMyAzIn1dXX0pO3ZhciB0OSxiZnQ9dSgoKT0+e3Q5PVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgN2ExIDEgMCAwIDAtMS0xaC0yYTIgMiAwIDAgMS0xLjE0My0uMzU5TDEzLjE0MyAyLjM2YTIgMiAwIDAgMC0yLjI4Ni0uMDAxTDYuMTQzIDUuNjRBMiAyIDAgMCAxIDUgNkgzYTEgMSAwIDAgMC0xIDF2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIFNKLHhmdD11KCgpPT57U0o9W1sicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiJ9XV19KTt2YXIgTUosdmZ0PXUoKCk9PntNSj1bWyJwYXRoIix7ZDoibTE4Ljg0IDEyLjI1IDEuNzItMS43MWgtLjAyYTUuMDA0IDUuMDA0IDAgMCAwLS4xMi03LjA3IDUuMDA2IDUuMDA2IDAgMCAwLTYuOTUgMGwtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Im01LjE3IDExLjc1LTEuNzEgMS43MWE1LjAwNCA1LjAwNCAwIDAgMCAuMTIgNy4wNyA1LjAwNiA1LjAwNiAwIDAgMCA2Ljk1IDBsMS43MS0xLjcxIn1dLFsibGluZSIse3gxOiI4Iix4MjoiOCIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIyIix4MjoiNSIseTE6IjgiLHkyOiI4In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTkiLHkyOiIyMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIENKLHlmdD11KCgpPT57Q0o9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im0xNyA4LTUtNS01IDUifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV1dfSk7dmFyIHpKLHdmdD11KCgpPT57eko9W1sicGF0aCIse2Q6Im0xOSA1IDMtMyJ9XSxbInBhdGgiLHtkOiJtMiAyMiAzLTMifV0sWyJwYXRoIix7ZDoiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIn1dLFsicGF0aCIse2Q6Ik03LjUgMTMuNSAxMCAxMSJ9XSxbInBhdGgiLHtkOiJNMTAuNSAxNi41IDEzIDE0In1dLFsicGF0aCIse2Q6Im0xMiA2IDYgNiAyLjMtMi4zYTIuNCAyLjQgMCAwIDAgMC0zLjRsLTIuNi0yLjZhMi40IDIuNCAwIDAgMC0zLjQgMFoifV1dfSk7dmFyIF9KLGtmdD11KCgpPT57X0o9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTQuNyAxOS4zIDE5IDUifV0sWyJwYXRoIix7ZDoibTIxIDMtMyAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTkuMjYgNy42OCA1IDEybDIgNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNSAyIDMuNS0zLjUifV0sWyJwYXRoIix7ZDoibTE4IDEyIDEtMSAxIDEtMSAxWiJ9XV19KTt2YXIgVEosU2Z0PXUoKCk9PntUSj1bWyJwYXRoIix7ZDoiTTEwIDE1SDZhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Im0xNC4zMDUgMTYuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxMy44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTIuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDE3Ljc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDEyLjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMTguNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDEzLjg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2LjE0OC45MjQuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIExKLE1mdD11KCgpPT57TEo9W1sicGF0aCIse2Q6Ik0yMCAxMXY2In1dLFsicGF0aCIse2Q6Ik0yMCAxM2gyIn1dLFsicGF0aCIse2Q6Ik0zIDIxdi0yYTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgMi4wNzIuNTc4In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBESixDZnQ9dSgoKT0+e0RKPVtbInBhdGgiLHtkOiJtMTYgMTEgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XV19KTt2YXIgJEosemZ0PXUoKCk9PnskSj1bWyJwYXRoIix7ZDoiTTE5IDE2di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNOS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbInJlY3QiLHt4OiIxMyIseToiMTYiLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIuODk5In1dXX0pO3ZhciBBSixfZnQ9dSgoKT0+e0FKPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIEVKLFRmdD11KCgpPT57RUo9W1sicGF0aCIse2Q6Ik0xMS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBJSixMZnQ9dSgoKT0+e0lKPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIxOSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIHI5LERmdD11KCgpPT57cjk9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dfSk7dmFyIGE5LCRmdD11KCgpPT57YTk9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgUEosQWZ0PXUoKCk9PntQSj1bWyJwYXRoIix7ZDoiTTE5IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDEzaDIifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEyLjg2OC02LjM0OSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgaTksRWZ0PXUoKCk9PntpOT1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTloLTYifV1dfSk7dmFyIE5KLElmdD11KCgpPT57Tko9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMC44MjEtNy40ODcifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV1dfSk7dmFyIHM5LFBmdD11KCgpPT57czk9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXX0pO3ZhciBPSixOZnQ9dSgoKT0+e09KPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuOS0xLjkifV1dfSk7dmFyIG45LE9mdD11KCgpPT57bjk9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMS44NzMtNyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTctNSA1In1dXX0pO3ZhciBvOSxSZnQ9dSgoKT0+e285PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTggOCAwIDAgMC0xNiAwIn1dXX0pO3ZhciBSSixGZnQ9dSgoKT0+e1JKPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XV19KTt2YXIgRkosQmZ0PXUoKCk9PntGSj1bWyJwYXRoIix7ZDoiTTE2LjA1MSAxMi42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJwYXRoIix7ZDoiTTggMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBCSixIZnQ9dSgoKT0+e0JKPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTciLHgyOiIyMiIseTE6IjgiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNyIseTE6IjgiLHkyOiIxMyJ9XV19KTt2YXIgSEoscWZ0PXUoKCk9PntISj1bWyJwYXRoIix7ZDoiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBsOSxWZnQ9dSgoKT0+e2w5PVtbInBhdGgiLHtkOiJNMTggMjFhOCA4IDAgMCAwLTE2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0yMiAyMGMwLTMuMzctMi02LjUtNC04YTUgNSAwIDAgMC0uNDUtOC4zIn1dXX0pO3ZhciBxSixqZnQ9dSgoKT0+e3FKPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQifV0sWyJwYXRoIix7ZDoiTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIGM5LFVmdD11KCgpPT57Yzk9W1sicGF0aCIse2Q6Im0xNiAyLTIuMyAyLjNhMyAzIDAgMCAwIDAgNC4ybDEuOCAxLjhhMyAzIDAgMCAwIDQuMiAwTDIyIDgifV0sWyJwYXRoIix7ZDoiTTE1IDE1IDMuMyAzLjNhNC4yIDQuMiAwIDAgMCAwIDZsNy4zIDcuM2MuNy43IDIgLjcgMi44IDBMMTUgMTVabTAgMCA3IDcifV0sWyJwYXRoIix7ZDoibTIuMSAyMS44IDYuNC02LjMifV0sWyJwYXRoIix7ZDoibTE5IDUtNyA3In1dXX0pO3ZhciBkOSxXZnQ9dSgoKT0+e2Q5PVtbInBhdGgiLHtkOiJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3In1dXX0pO3ZhciBWSixHZnQ9dSgoKT0+e1ZKPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMiA1aDIwIn1dLFsicGF0aCIse2Q6Ik0zIDN2MiJ9XSxbInBhdGgiLHtkOiJNNyAzdjIifV0sWyJwYXRoIix7ZDoiTTE3IDN2MiJ9XSxbInBhdGgiLHtkOiJNMjEgM3YyIn1dLFsicGF0aCIse2Q6Im0xOSA1LTcgNy03LTcifV1dfSk7dmFyIGpKLFlmdD11KCgpPT57ako9W1sicGF0aCIse2Q6Ik0xMyA2djVhMSAxIDAgMCAwIDEgMWg2LjEwMmExIDEgMCAwIDEgLjcxMi4yOThsLjg5OC45MWExIDEgMCAwIDEgLjI4OC43MDJWMTdhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNNSAxOEgzYTEgMSAwIDAgMS0xLTFWOGEyIDIgMCAwIDEgMi0yaDEyYzEuMSAwIDIuMS44IDIuNCAxLjhsMS4xNzYgNC4yIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dfSk7dmFyIFVKLEtmdD11KCgpPT57VUo9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgV0osWmZ0PXUoKCk9PntXSj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTcuOSA3LjkgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEwLjYgMi43LTIuNyJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im03LjkgMTYuMSAyLjctMi43In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEzLjQgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBHSixRZnQ9dSgoKT0+e0dKPVtbInBhdGgiLHtkOiJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAifV0sWyJwYXRoIix7ZDoiTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIn1dLFsicGF0aCIse2Q6Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIn1dLFsicmVjdCIse3g6IjE3Iix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMTciLHk6IjIiLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgWUosWGZ0PXUoKCk9PntZSj1bWyJwYXRoIix7ZDoiTTE2IDhxNiAwIDYtNi02IDAtNiA2In1dLFsicGF0aCIse2Q6Ik0xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMiAyYTI2LjYgMjYuNiAwIDAgMSAxMCAyMGMuOS02LjgyIDEuNS05LjUgNC0xNCJ9XV19KTt2YXIgS0osSmZ0PXUoKCk9PntLSj1bWyJwYXRoIix7ZDoiTTE4IDExYy0xLjUgMC0yLjUuNS0zIDIifV0sWyJwYXRoIix7ZDoiTTQgNmEyIDIgMCAwIDAtMiAydjRhNSA1IDAgMCAwIDUgNSA4IDggMCAwIDEgNSAyIDggOCAwIDAgMSA1LTIgNSA1IDAgMCAwIDUtNVY4YTIgMiAwIDAgMC0yLTJoLTNhOCA4IDAgMCAwLTUgMiA4IDggMCAwIDAtNS0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMWMxLjUgMCAyLjUuNSAzIDIifV1dfSk7dmFyIFpKLGVodD11KCgpPT57Wko9W1sicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNyAyaDR2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMi01LjQ2IDUuNDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNSJ9XV19KTt2YXIgUUosdGh0PXUoKCk9PntRSj1bWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjkiLHI6IjYifV1dfSk7dmFyIFhKLHJodD11KCgpPT57WEo9W1sicGF0aCIse2Q6Im0yIDggMiAyLTIgMiAyIDItMiAyIn1dLFsicGF0aCIse2Q6Im0yMiA4LTIgMiAyIDItMiAyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4djEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxMC4zNFY2YzAtLjU1LS40NS0xLTEtMWgtNC4zNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBKSixhaHQ9dSgoKT0+e0pKPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjUiLHJ4OiIxIn1dXX0pO3ZhciBlZWUsaWh0PXUoKCk9PntlZWU9W1sicGF0aCIse2Q6Ik0xMC42NiA2SDE0YTIgMiAwIDAgMSAyIDJ2Mi41bDUuMjQ4LTMuMDYyQS41LjUgMCAwIDEgMjIgNy44N3Y4LjE5NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgdGVlLHNodD11KCgpPT57dGVlPVtbInBhdGgiLHtkOiJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIHJlZSxuaHQ9dSgoKT0+e3JlZT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTQiLHI6IjIifV1dfSk7dmFyIGFlZSxvaHQ9dSgoKT0+e2FlZT1bWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTIxIDdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgaWVlLGxodD11KCgpPT57aWVlPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxMiIscjoiNCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjE4Iix5MToiMTYiLHkyOiIxNiJ9XV19KTt2YXIgc2VlLGNodD11KCgpPT57c2VlPVtbInBhdGgiLHtkOiJNMTEuMSA3LjFhMTYuNTUgMTYuNTUgMCAwIDEgMTAuOSA0In1dLFsicGF0aCIse2Q6Ik0xMiAxMmExMi42IDEyLjYgMCAwIDEtOC43IDUifV0sWyJwYXRoIix7ZDoiTTE2LjggMTMuNmExNi41NSAxNi41NSAwIDAgMS05IDcuNSJ9XSxbInBhdGgiLHtkOiJNMjAuNyAxN2ExMi44IDEyLjggMCAwIDAtOC43LTUgMTMuMyAxMy4zIDAgMCAxIDAtMTAifV0sWyJwYXRoIix7ZDoiTTYuMyAzLjhhMTYuNTUgMTYuNTUgMCAwIDAgMS45IDExLjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIG5lZSxkaHQ9dSgoKT0+e25lZT1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV1dfSk7dmFyIG9lZSx1aHQ9dSgoKT0+e29lZT1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCAxOC4zNjRhOSA5IDAgMCAwIDAtMTIuNzI4In1dXX0pO3ZhciBsZWUscGh0PXUoKCk9PntsZWU9W1sicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCA1LjYzNmE5IDkgMCAwIDEgMS44ODkgOS45NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im03IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEifV0sWyJwYXRoIix7ZDoiTTkuODI4IDQuMTcyQS42ODYuNjg2IDAgMCAxIDExIDQuNjU3di42ODYifV1dfSk7dmFyIGNlZSxmaHQ9dSgoKT0+e2NlZT1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsibGluZSIse3gxOiIyMiIseDI6IjE2Iix5MToiOSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxNiIseDI6IjIyIix5MToiOSIseTI6IjE1In1dXX0pO3ZhciBkZWUsaGh0PXUoKCk9PntkZWU9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XV19KTt2YXIgdWVlLG1odD11KCgpPT57dWVlPVtbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oifV0sWyJwYXRoIix7ZDoiTTIyIDE5SDIifV1dfSk7dmFyIHBlZSxnaHQ9dSgoKT0+e3BlZT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMyAxMWgzYy44IDAgMS42LjMgMi4xLjlsMS4xLjljMS42IDEuNiA0LjEgMS42IDUuNyAwbDEuMS0uOWMuNS0uNSAxLjMtLjkgMi4xLS45SDIxIn1dXX0pO3ZhciB1OSxiaHQ9dSgoKT0+e3U5PVtbInBhdGgiLHtkOiJNMTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDdoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTQifV1dfSk7dmFyIGZlZSx4aHQ9dSgoKT0+e2ZlZT1bWyJwYXRoIix7ZDoiTTE5IDdWNGExIDEgMCAwIDAtMS0xSDVhMiAyIDAgMCAwIDAgNGgxNWExIDEgMCAwIDEgMSAxdjRoLTNhMiAyIDAgMCAwIDAgNGgzYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTIgMiAwIDAgMCAyIDJoMTVhMSAxIDAgMCAwIDEtMXYtNCJ9XV19KTt2YXIgaGVlLHZodD11KCgpPT57aGVlPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Im05IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTUifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjkiLHI6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgcDkseWh0PXUoKCk9PntwOT1bWyJwYXRoIix7ZDoibTIxLjY0IDMuNjQtMS4yOC0xLjI4YTEuMjEgMS4yMSAwIDAgMC0xLjcyIDBMMi4zNiAxOC42NGExLjIxIDEuMjEgMCAwIDAgMCAxLjcybDEuMjggMS4yOGExLjIgMS4yIDAgMCAwIDEuNzIgMEwyMS42NCA1LjM2YTEuMiAxLjIgMCAwIDAgMC0xLjcyIn1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJNNSA2djQifV0sWyJwYXRoIix7ZDoiTTE5IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyA4SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC00In1dLFsicGF0aCIse2Q6Ik0xMSAzSDkifV1dfSk7dmFyIG1lZSx3aHQ9dSgoKT0+e21lZT1bWyJwYXRoIix7ZDoiTTE1IDRWMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZ2LTIifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0yMCA5aDIifV0sWyJwYXRoIix7ZDoiTTE3LjggMTEuOCAxOSAxMyJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjggNi4yIDE5IDUifV0sWyJwYXRoIix7ZDoibTMgMjEgOS05In1dLFsicGF0aCIse2Q6Ik0xMi4yIDYuMiAxMSA1In1dXX0pO3ZhciBnZWUsa2h0PXUoKCk9PntnZWU9W1sicGF0aCIse2Q6Ik0xOCAyMVYxMGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMSJ9XSxbInBhdGgiLHtkOiJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMS4xMzItMS44MDNsNy45NS0zLjk3NGEyIDIgMCAwIDEgMS44MzcgMGw3Ljk0OCAzLjk3NEEyIDIgMCAwIDEgMjIgOHoifV0sWyJwYXRoIix7ZDoiTTYgMTNoMTIifV0sWyJwYXRoIix7ZDoiTTYgMTdoMTIifV1dfSk7dmFyIGJlZSxTaHQ9dSgoKT0+e2JlZT1bWyJwYXRoIix7ZDoiTTMgNmgzIn1dLFsicGF0aCIse2Q6Ik0xNyA2aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMjAiLHg6IjMiLHk6IjIiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTIuNSAyLjUgMCAwIDAgMC01IDIuNSAyLjUgMCAwIDEgMC01In1dXX0pO3ZhciB4ZWUsTWh0PXUoKCk9Pnt4ZWU9W1sicGF0aCIse2Q6Ik0xMiAxMHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoibTE2LjEzIDcuNjYtLjgxLTQuMDVhMiAyIDAgMCAwLTItMS42MWgtMi42OGEyIDIgMCAwIDAtMiAxLjYxbC0uNzggNC4wNSJ9XSxbInBhdGgiLHtkOiJtNy44OCAxNi4zNi44IDRhMiAyIDAgMCAwIDIgMS42MWgyLjcyYTIgMiAwIDAgMCAyLTEuNjFsLjgxLTQuMDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XV19KTt2YXIgdmVlLENodD11KCgpPT57dmVlPVtbInBhdGgiLHtkOiJNMTIgMTBMMTIgMiJ9XSxbInBhdGgiLHtkOiJNMTYgNkwxMiAxMEw4IDYifV0sWyJwYXRoIix7ZDoiTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjFDMi42IDIxLjUgMy4yIDIyIDQuNSAyMkM3IDIyIDcgMjAgOS41IDIwQzEyLjEgMjAgMTEuOSAyMiAxNC41IDIyQzE3IDIyIDE3IDIwIDE5LjUgMjBDMjAuOCAyMCAyMS40IDIwLjUgMjIgMjEifV1dfSk7dmFyIHllZSx6aHQ9dSgoKT0+e3llZT1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMiAxNWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXX0pO3ZhciB3ZWUsX2h0PXUoKCk9Pnt3ZWU9W1sicGF0aCIse2Q6Ik0xOSA1YTIgMiAwIDAgMC0yIDJ2MTEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNNyAxM2gxMCJ9XSxbInBhdGgiLHtkOiJNNyA5aDEwIn1dLFsicGF0aCIse2Q6Ik05IDVhMiAyIDAgMCAwLTIgMnYxMSJ9XV19KTt2YXIga2VlLFRodD11KCgpPT57a2VlPVtbInBhdGgiLHtkOiJNMiA2Yy42LjUgMS4yIDEgMi41IDFDNyA3IDcgNSA5LjUgNWMyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XV19KTt2YXIgU2VlLExodD11KCgpPT57U2VlPVtbInBhdGgiLHtkOiJtMTAuNTg2IDUuNDE0LTUuMTcyIDUuMTcyIn1dLFsicGF0aCIse2Q6Im0xOC41ODYgMTMuNDE0LTUuMTcyIDUuMTcyIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBNZWUsRGh0PXUoKCk9PntNZWU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV1dfSk7dmFyIENlZSwkaHQ9dSgoKT0+e0NlZT1bWyJwYXRoIix7ZDoiTTE3IDE3aC01Yy0xLjA5LS4wMi0xLjk0LjkyLTIuNSAxLjlBMyAzIDAgMSAxIDIuNTcgMTUifV0sWyJwYXRoIix7ZDoiTTkgMy40YTQgNCAwIDAgMSA2LjUyLjY2In1dLFsicGF0aCIse2Q6Im02IDE3IDMuMS01LjhhMi41IDIuNSAwIDAgMCAuMDU3LTIuMDUifV0sWyJwYXRoIix7ZDoiTTIwLjMgMjAuM2E0IDQgMCAwIDEtMi4zLjcifV0sWyJwYXRoIix7ZDoiTTE4LjYgMTNhNCA0IDAgMCAxIDMuMzU3IDMuNDE0In1dLFsicGF0aCIse2Q6Im0xMiA2IC42IDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgemVlLEFodD11KCgpPT57emVlPVtbInBhdGgiLHtkOiJNMTggMTYuOThoLTUuOTljLTEuMSAwLTEuOTUuOTQtMi40OCAxLjlBNCA0IDAgMCAxIDIgMTdjLjAxLS43LjItMS40LjU3LTIifV0sWyJwYXRoIix7ZDoibTYgMTcgMy4xMy01Ljc4Yy41My0uOTcuMS0yLjE4LS41LTMuMWE0IDQgMCAxIDEgNi44OS00LjA2In1dLFsicGF0aCIse2Q6Im0xMiA2IDMuMTMgNS43M0MxNS42NiAxMi43IDE2LjkgMTMgMTggMTNhNCA0IDAgMCAxIDAgOCJ9XV19KTt2YXIgX2VlLEVodD11KCgpPT57X2VlPVtbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6In1dLFsicGF0aCIse2Q6Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIFRlZSxJaHQ9dSgoKT0+e1RlZT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02LjUgOGEyIDIgMCAwIDAtMS45MDUgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOFoifV1dfSk7dmFyIExlZSxQaHQ9dSgoKT0+e0xlZT1bWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoibTE2IDgtMS4xNyAxLjE3In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoibTggOC0uNTMuNTNhMy41IDMuNSAwIDAgMCAwIDQuOTRMOSAxNWwxLjUzLTEuNTNjLjU1LS41NS44OC0xLjI1Ljk4LTEuOTcifV0sWyJwYXRoIix7ZDoiTTEwLjkxIDUuMjZjLjE1LS4yNi4zNC0uNTEuNTYtLjczTDEzIDNsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgLjI4IDQuNjIifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoibTE2IDE2LS41My41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjQ5IDMuNDkgMCAwIDEgMS45Ny0uOTgifV0sWyJwYXRoIix7ZDoiTTE4Ljc0IDEzLjA5Yy4yNi0uMTUuNTEtLjM0LjczLS41NkwyMSAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDAtNC42Mi0uMjgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgRGVlLE5odD11KCgpPT57RGVlPVtbInBhdGgiLHtkOiJNMiAyMiAxNiA4In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dLFsicGF0aCIse2Q6Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XV19KTt2YXIgJGVlLE9odD11KCgpPT57JGVlPVtbImNpcmNsZSIse2N4OiI3IixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNCA3djgifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXX0pO3ZhciBBZWUsUmh0PXUoKCk9PntBZWU9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiA3LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNNSAxMS44NThhMTAgMTAgMCAwIDEgMTEuNS0xLjc4NSJ9XSxbInBhdGgiLHtkOiJNOC41IDE1LjQyOWE1IDUgMCAwIDEgMi40MTMtMS4zMSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBFZWUsRmh0PXUoKCk9PntFZWU9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgSWVlLEJodD11KCgpPT57SWVlPVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dfSk7dmFyIFBlZSxIaHQ9dSgoKT0+e1BlZT1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSA1LjE3LTIuNjkifV0sWyJwYXRoIix7ZDoiTTE5IDEyLjg1OWExMCAxMCAwIDAgMC0yLjAwNy0xLjUyMyJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDQuMTc3LTIuNjQzIn1dLFsicGF0aCIse2Q6Ik0yMiA4LjgyYTE1IDE1IDAgMCAwLTExLjI4OC0zLjc2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBOZWUscWh0PXUoKCk9PntOZWU9W1sicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxMC41LTIuMjIyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSAzLTEuNDA2In1dXX0pO3ZhciBPZWUsVmh0PXUoKCk9PntPZWU9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV1dfSk7dmFyIFJlZSxqaHQ9dSgoKT0+e1JlZT1bWyJwYXRoIix7ZDoiTTExLjk2NSAxMC4xMDV2NEwxMy41IDEyLjVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xMS45NjUgMTQuMTA1aDQifV0sWyJwYXRoIix7ZDoiTTE3Ljk2NSAxOC4xMDVoNEwyMC40MyAxOS43MWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik0yMS45NjUgMjIuMTA1di00In1dLFsicGF0aCIse2Q6Ik01IDEyLjg2YTEwIDEwIDAgMCAxIDMtMi4wMzIifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjloLjAxIn1dXX0pO3ZhciBGZWUsVWh0PXUoKCk9PntGZWU9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dfSk7dmFyIEJlZSxXaHQ9dSgoKT0+e0JlZT1bWyJwYXRoIix7ZDoiTTEwIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTIuOCAyMS42QTIgMiAwIDEgMCAxNCAxOEgyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDEwYTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoibTYgNiA0IDQgNC00In1dXX0pO3ZhciBIZWUsR2h0PXUoKCk9PntIZWU9W1sicGF0aCIse2Q6Ik0xMi44IDE5LjZBMiAyIDAgMSAwIDE0IDE2SDIifV0sWyJwYXRoIix7ZDoiTTE3LjUgOGEyLjUgMi41IDAgMSAxIDIgNEgyIn1dLFsicGF0aCIse2Q6Ik05LjggNC40QTIgMiAwIDEgMSAxMSA4SDIifV1dfSk7dmFyIHFlZSxZaHQ9dSgoKT0+e3FlZT1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTVhNSA1IDAgMCAwIDUtNWMwLTItLjUtNC0yLThIOWMtMS41IDQtMiA2LTIgOGE1IDUgMCAwIDAgNSA1WiJ9XV19KTt2YXIgVmVlLEtodD11KCgpPT57VmVlPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDNtNyAwaC0xLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNNy4zMDcgNy4zMDdBMTIuMzMgMTIuMzMgMCAwIDAgNyAxMGE1IDUgMCAwIDAgNy4zOTEgNC4zOTFNOC42MzggMi45ODFDOC43NSAyLjY2OCA4Ljg3MiAyLjM0IDkgMmg2YzEuNSA0IDIgNiAyIDggMCAuNDA3LS4wNS44MDktLjE0NSAxLjE5OCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBqZWUsWmh0PXUoKCk9PntqZWU9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExdjRhMiAyIDAgMCAwIDIgMmg0In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjEzIix5OiIxMyIscng6IjIifV1dfSk7dmFyIFVlZSxRaHQ9dSgoKT0+e1VlZT1bWyJwYXRoIix7ZDoibTE5IDEyLTEuNSAzIn1dLFsicGF0aCIse2Q6Ik0xOS42MyAxOC44MSAyMiAyMCJ9XSxbInBhdGgiLHtkOiJNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6In1dXX0pO3ZhciBXZWUsWGh0PXUoKCk9PntXZWU9W1sicGF0aCIse2Q6Ik0xNC43IDYuM2ExIDEgMCAwIDAgMCAxLjRsMS42IDEuNmExIDEgMCAwIDAgMS40IDBsMy4xMDYtMy4xMDVjLjMyLS4zMjIuODYzLS4yMi45ODMuMjE4YTYgNiAwIDAgMS04LjI1OSA3LjA1N2wtNy45MSA3LjkxYTEgMSAwIDAgMS0yLjk5OS0zbDcuOTEtNy45MWE2IDYgMCAwIDEgNy4wNTctOC4yNTljLjQzOC4xMi41NC42NjIuMjE5Ljk4NHoifV1dfSk7dmFyIEdlZSxKaHQ9dSgoKT0+e0dlZT1bWyJwYXRoIix7ZDoiTTE4IDYgNiAxOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIn1dXX0pO3ZhciBZZWUsZTZ0PXUoKCk9PntZZWU9W1sicGF0aCIse2Q6Ik0xOCA0SDYifV0sWyJwYXRoIix7ZDoiTTE4IDggNiAyMCJ9XSxbInBhdGgiLHtkOiJtNiA4IDEyIDEyIn1dXX0pO3ZhciBLZWUsdDZ0PXUoKCk9PntLZWU9W1sicGF0aCIse2Q6Ik0xMC41MTMgNC44NTYgMTMuMTIgMi4xN2EuNS41IDAgMCAxIC44Ni40NmwtMS4zNzcgNC4zMTcifV0sWyJwYXRoIix7ZDoiTTE1LjY1NiAxMEgyMGExIDEgMCAwIDEgLjc4IDEuNjNsLTEuNzIgMS43NzMifV0sWyJwYXRoIix7ZDoiTTE2LjI3MyAxNi4yNzMgMTAuODggMjEuODNhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTRINGExIDEgMCAwIDEtLjc4LTEuNjNsNC41MDctNC42NDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgWmVlLHI2dD11KCgpPT57WmVlPVtbInBhdGgiLHtkOiJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiJ9XV19KTt2YXIgUWVlLGE2dD11KCgpPT57UWVlPVtbInBhdGgiLHtkOiJtMiAxMCAyLjQ1Ni0zLjY4NGEuNy43IDAgMCAxIDEuMTA2LS4wMTNsMi4zOSAzLjQxM2EuNy43IDAgMCAwIDEuMDk2LS4wMDFsMi40MDItMy40MzJhLjcuNyAwIDAgMSAxLjA5OCAwbDIuNDAyIDMuNDMyYS43LjcgMCAwIDAgMS4wOTggMGwyLjM4OS0zLjQxM2EuNy43IDAgMCAxIDEuMTA2LjAxM0wyMiAxMCJ9XSxbInBhdGgiLHtkOiJtMiAxOC4wMDIgMi40NTYtMy42ODRhLjcuNyAwIDAgMSAxLjEwNi0uMDEzbDIuMzkgMy40MTNhLjcuNyAwIDAgMCAxLjA5NyAwbDIuNDAyLTMuNDMyYS43LjcgMCAwIDEgMS4wOTggMGwyLjQwMiAzLjQzMmEuNy43IDAgMCAwIDEuMDk4IDBsMi4zODktMy40MTNhLjcuNyAwIDAgMSAxLjEwNi4wMTNMMjIgMTguMDAyIn1dXX0pO3ZhciBYZWUsaTZ0PXUoKCk9PntYZWU9W1sicGF0aCIse2Q6Ik0xMiA3LjVhNC41IDQuNSAwIDEgMSA1IDQuNSJ9XSxbInBhdGgiLHtkOiJNNyAxMmE0LjUgNC41IDAgMSAxIDUtNC41VjIxIn1dXX0pO3ZhciBKZWUsczZ0PXUoKCk9PntKZWU9W1sicGF0aCIse2Q6Ik0yMSAxNC41QTkgNi41IDAgMCAxIDUuNSAxOSJ9XSxbInBhdGgiLHtkOiJNMyA5LjVBOSA2LjUgMCAwIDEgMTguNSA1In1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNC41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiOS41IixyOiIzLjUifV1dfSk7dmFyIGV0ZSxuNnQ9dSgoKT0+e2V0ZT1bWyJwYXRoIix7ZDoiTTExIDIxYTMgMyAwIDAgMCAzLTNWNi41YTEgMSAwIDAgMC03IDAifV0sWyJwYXRoIix7ZDoiTTcgMTlWNmEzIDMgMCAwIDAtMy0zaDAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgdHRlLG82dD11KCgpPT57dHRlPVtbInBhdGgiLHtkOiJNMTYgNC41MjV2MTQuOTQ4In1dLFsicGF0aCIse2Q6Ik0yMCAzQTE3IDE3IDAgMCAxIDQgMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWExNyAxNyAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik04IDQuNTI1djE0Ljk0OCJ9XV19KTt2YXIgcnRlLGw2dD11KCgpPT57cnRlPVtbInBhdGgiLHtkOiJNMTAgMTZjMC00LTMtNC41LTMtOGE1IDUgMCAwIDEgMTAgMGMwIDMuNDY2LTMgNi4xOTYtMyAxMGEzIDMgMCAwIDAgNiAwIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNiIscjoiMyJ9XV19KTt2YXIgYXRlLGM2dD11KCgpPT57YXRlPVtbInBhdGgiLHtkOiJNMyAxNmg2Ljg1N2MuMTYyLS4wMTIuMTktLjMyMy4wMzgtLjM4YTYgNiAwIDEgMSA0LjIxMiAwYy0uMTUzLjA1Ny0uMTI1LjM2OC4wMzguMzhIMjEifV0sWyJwYXRoIix7ZDoiTTMgMjBoMTgifV1dfSk7dmFyIGl0ZSxkNnQ9dSgoKT0+e2l0ZT1bWyJwYXRoIix7ZDoiTTMgMTBBNi4wNiA2LjA2IDAgMCAxIDEyIDEwIEE2LjA2IDYuMDYgMCAwIDAgMjEgMTAifV0sWyJwYXRoIix7ZDoiTTYgM3YxMmE2IDYgMCAwIDAgMTIgMFYzIn1dXX0pO3ZhciBzdGUsdTZ0PXUoKCk9PntzdGU9W1sicGF0aCIse2Q6Ik0xOSAyMWExNSAxNSAwIDAgMSAwLTE4In1dLFsicGF0aCIse2Q6Ik0yMCAxMkg0In1dLFsicGF0aCIse2Q6Ik01IDNhMTUgMTUgMCAwIDEgMCAxOCJ9XV19KTt2YXIgbnRlLHA2dD11KCgpPT57bnRlPVtbInBhdGgiLHtkOiJNMTUgM2g2djYifV0sWyJwYXRoIix7ZDoiTTIxIDMgMyAyMSJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgb3RlLGY2dD11KCgpPT57b3RlPVtbInBhdGgiLHtkOiJNMTAgMTlWNS41YTEgMSAwIDAgMSA1IDBWMTdhMiAyIDAgMCAwIDIgMmg1bC0zLTMifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMgMyJ9XSxbInBhdGgiLHtkOiJNNSAxOVY1LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNSA1LjVBMi41IDIuNSAwIDAgMCAyLjUgMyJ9XV19KTt2YXIgbHRlLGg2dD11KCgpPT57bHRlPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiI2In1dLFsicGF0aCIse2Q6Ik0xOCAzQTYgNiAwIDAgMSA2IDMifV1dfSk7dmFyIGN0ZSxtNnQ9dSgoKT0+e2N0ZT1bWyJwYXRoIix7ZDoiTTExIDUuNWExIDEgMCAwIDEgNSAwVjE2YTUgNSAwIDAgMCA1IDUifV0sWyJwYXRoIix7ZDoiTTE2IDExLjVhMSAxIDAgMCAxIDUgMFYxNmE1IDUgMCAwIDEtNSA1In1dLFsicGF0aCIse2Q6Ik02IDE5VjZhMyAzIDAgMCAwLTMtM2gwIn1dLFsicGF0aCIse2Q6Ik02IDUuNWExIDEgMCAwIDEgNSAwVjE5In1dXX0pO3ZhciBkdGUsZzZ0PXUoKCk9PntkdGU9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTYuNjUiLHkxOiIyMSIseTI6IjE2LjY1In1dLFsibGluZSIse3gxOiIxMSIseDI6IjExIix5MToiOCIseTI6IjE0In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTQiLHkxOiIxMSIseTI6IjExIn1dXX0pO3ZhciB1dGUsYjZ0PXUoKCk9Pnt1dGU9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTYuNjUiLHkxOiIyMSIseTI6IjE2LjY1In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTQiLHkxOiIxMSIseTI6IjExIn1dXX0pO3ZhciBmOT17fTtWZShmOSx7QUFycm93RG93bjooKT0+bFQsQUFycm93VXA6KCk9PmNULEFMYXJnZVNtYWxsOigpPT5kVCxBY2Nlc3NpYmlsaXR5OigpPT51VCxBY3Rpdml0eTooKT0+cFQsQWN0aXZpdHlTcXVhcmU6KCk9PlU4LEFpclZlbnQ6KCk9PmZULEFpcnBsYXk6KCk9PmhULEFsYXJtQ2hlY2s6KCk9Pm5tLEFsYXJtQ2xvY2s6KCk9PmdULEFsYXJtQ2xvY2tDaGVjazooKT0+bm0sQWxhcm1DbG9ja01pbnVzOigpPT5sbSxBbGFybUNsb2NrT2ZmOigpPT5tVCxBbGFybUNsb2NrUGx1czooKT0+b20sQWxhcm1NaW51czooKT0+bG0sQWxhcm1QbHVzOigpPT5vbSxBbGFybVNtb2tlOigpPT5iVCxBbGJ1bTooKT0+eFQsQWxlcnRDaXJjbGU6KCk9Pk5tLEFsZXJ0T2N0YWdvbjooKT0+eTgsQWxlcnRUcmlhbmdsZTooKT0+SjcsQWxpZ25DZW50ZXI6KCk9Plc3LEFsaWduQ2VudGVySG9yaXpvbnRhbDooKT0+dlQsQWxpZ25DZW50ZXJWZXJ0aWNhbDooKT0+eVQsQWxpZ25FbmRIb3Jpem9udGFsOigpPT53VCxBbGlnbkVuZFZlcnRpY2FsOigpPT5rVCxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyOigpPT5TVCxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlRW5kOigpPT5NVCxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQ6KCk9PkNULEFsaWduSG9yaXpvbnRhbEp1c3RpZnlDZW50ZXI6KCk9PnpULEFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQ6KCk9Pl9ULEFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydDooKT0+VFQsQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ6KCk9PkxULEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbjooKT0+RFQsQWxpZ25KdXN0aWZ5OigpPT5ZNyxBbGlnbkxlZnQ6KCk9Pks0LEFsaWduUmlnaHQ6KCk9Pkc3LEFsaWduU3RhcnRIb3Jpem9udGFsOigpPT4kVCxBbGlnblN0YXJ0VmVydGljYWw6KCk9PkFULEFsaWduVmVydGljYWxEaXN0cmlidXRlQ2VudGVyOigpPT5FVCxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZDooKT0+UFQsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydDooKT0+SVQsQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXI6KCk9Pk5ULEFsaWduVmVydGljYWxKdXN0aWZ5RW5kOigpPT5PVCxBbGlnblZlcnRpY2FsSnVzdGlmeVN0YXJ0OigpPT5SVCxBbGlnblZlcnRpY2FsU3BhY2VBcm91bmQ6KCk9PkZULEFsaWduVmVydGljYWxTcGFjZUJldHdlZW46KCk9PkJULEFtYnVsYW5jZTooKT0+SFQsQW1wZXJzYW5kOigpPT5xVCxBbXBlcnNhbmRzOigpPT5WVCxBbXBob3JhOigpPT5qVCxBbmNob3I6KCk9PlVULEFuZ3J5OigpPT5XVCxBbm5veWVkOigpPT5HVCxBbnRlbm5hOigpPT5LVCxBbnZpbDooKT0+WVQsQXBlcnR1cmU6KCk9PlpULEFwcFdpbmRvdzooKT0+ZUwsQXBwV2luZG93TWFjOigpPT5RVCxBcHBsZTooKT0+WFQsQXJjaGl2ZTooKT0+ckwsQXJjaGl2ZVJlc3RvcmU6KCk9PkpULEFyY2hpdmVYOigpPT50TCxBcmVhQ2hhcnQ6KCk9PlNtLEFybWNoYWlyOigpPT5hTCxBcnJvd0JpZ0Rvd246KCk9PnNMLEFycm93QmlnRG93bkRhc2g6KCk9PmlMLEFycm93QmlnTGVmdDooKT0+b0wsQXJyb3dCaWdMZWZ0RGFzaDooKT0+bkwsQXJyb3dCaWdSaWdodDooKT0+Y0wsQXJyb3dCaWdSaWdodERhc2g6KCk9PmxMLEFycm93QmlnVXA6KCk9PnVMLEFycm93QmlnVXBEYXNoOigpPT5kTCxBcnJvd0Rvd246KCk9PndMLEFycm93RG93bjAxOigpPT5wTCxBcnJvd0Rvd24xMDooKT0+ZkwsQXJyb3dEb3duQVo6KCk9PmNtLEFycm93RG93bkF6OigpPT5jbSxBcnJvd0Rvd25DaXJjbGU6KCk9Pk9tLEFycm93RG93bkZyb21MaW5lOigpPT5oTCxBcnJvd0Rvd25MZWZ0OigpPT5tTCxBcnJvd0Rvd25MZWZ0RnJvbUNpcmNsZTooKT0+Rm0sQXJyb3dEb3duTGVmdEZyb21TcXVhcmU6KCk9Plo4LEFycm93RG93bkxlZnRTcXVhcmU6KCk9Plc4LEFycm93RG93bk5hcnJvd1dpZGU6KCk9PmdMLEFycm93RG93blJpZ2h0OigpPT5iTCxBcnJvd0Rvd25SaWdodEZyb21DaXJjbGU6KCk9PkJtLEFycm93RG93blJpZ2h0RnJvbVNxdWFyZTooKT0+UTgsQXJyb3dEb3duUmlnaHRTcXVhcmU6KCk9Pkc4LEFycm93RG93blNxdWFyZTooKT0+WTgsQXJyb3dEb3duVG9Eb3Q6KCk9PnhMLEFycm93RG93blRvTGluZTooKT0+dkwsQXJyb3dEb3duVXA6KCk9PnlMLEFycm93RG93bldpZGVOYXJyb3c6KCk9PmRtLEFycm93RG93blpBOigpPT51bSxBcnJvd0Rvd25aYTooKT0+dW0sQXJyb3dMZWZ0OigpPT5DTCxBcnJvd0xlZnRDaXJjbGU6KCk9PlJtLEFycm93TGVmdEZyb21MaW5lOigpPT5rTCxBcnJvd0xlZnRSaWdodDooKT0+U0wsQXJyb3dMZWZ0U3F1YXJlOigpPT5LOCxBcnJvd0xlZnRUb0xpbmU6KCk9Pk1MLEFycm93UmlnaHQ6KCk9PkxMLEFycm93UmlnaHRDaXJjbGU6KCk9PlZtLEFycm93UmlnaHRGcm9tTGluZTooKT0+ekwsQXJyb3dSaWdodExlZnQ6KCk9Pl9MLEFycm93UmlnaHRTcXVhcmU6KCk9PmU3LEFycm93UmlnaHRUb0xpbmU6KCk9PlRMLEFycm93VXA6KCk9PkZMLEFycm93VXAwMTooKT0+REwsQXJyb3dVcDEwOigpPT4kTCxBcnJvd1VwQVo6KCk9PnBtLEFycm93VXBBejooKT0+cG0sQXJyb3dVcENpcmNsZTooKT0+am0sQXJyb3dVcERvd246KCk9PkFMLEFycm93VXBGcm9tRG90OigpPT5FTCxBcnJvd1VwRnJvbUxpbmU6KCk9PklMLEFycm93VXBMZWZ0OigpPT5QTCxBcnJvd1VwTGVmdEZyb21DaXJjbGU6KCk9PkhtLEFycm93VXBMZWZ0RnJvbVNxdWFyZTooKT0+WDgsQXJyb3dVcExlZnRTcXVhcmU6KCk9PnQ3LEFycm93VXBOYXJyb3dXaWRlOigpPT5mbSxBcnJvd1VwUmlnaHQ6KCk9Pk5MLEFycm93VXBSaWdodEZyb21DaXJjbGU6KCk9PnFtLEFycm93VXBSaWdodEZyb21TcXVhcmU6KCk9Pko4LEFycm93VXBSaWdodFNxdWFyZTooKT0+cjcsQXJyb3dVcFNxdWFyZTooKT0+YTcsQXJyb3dVcFRvTGluZTooKT0+T0wsQXJyb3dVcFdpZGVOYXJyb3c6KCk9PlJMLEFycm93VXBaQTooKT0+aG0sQXJyb3dVcFphOigpPT5obSxBcnJvd3NVcEZyb21MaW5lOigpPT5CTCxBc3RlcmlzazooKT0+SEwsQXN0ZXJpc2tTcXVhcmU6KCk9Pmk3LEF0U2lnbjooKT0+cUwsQXRvbTooKT0+VkwsQXVkaW9MaW5lczooKT0+akwsQXVkaW9XYXZlZm9ybTooKT0+V0wsQXdhcmQ6KCk9PlVMLEF4ZTooKT0+R0wsQXhpczNEOigpPT5tbSxBeGlzM2Q6KCk9Pm1tLEJhYnk6KCk9PllMLEJhY2twYWNrOigpPT5LTCxCYWRnZTooKT0+dUQsQmFkZ2VBbGVydDooKT0+WkwsQmFkZ2VDZW50OigpPT5RTCxCYWRnZUNoZWNrOigpPT5nbSxCYWRnZURvbGxhclNpZ246KCk9PlhMLEJhZGdlRXVybzooKT0+SkwsQmFkZ2VIZWxwOigpPT5ibSxCYWRnZUluZGlhblJ1cGVlOigpPT5lRCxCYWRnZUluZm86KCk9PnRELEJhZGdlSmFwYW5lc2VZZW46KCk9PnJELEJhZGdlTWludXM6KCk9PmFELEJhZGdlUGVyY2VudDooKT0+aUQsQmFkZ2VQbHVzOigpPT5zRCxCYWRnZVBvdW5kU3Rlcmxpbmc6KCk9Pm5ELEJhZGdlUXVlc3Rpb25NYXJrOigpPT5ibSxCYWRnZVJ1c3NpYW5SdWJsZTooKT0+b0QsQmFkZ2VTd2lzc0ZyYW5jOigpPT5sRCxCYWRnZVR1cmtpc2hMaXJhOigpPT5jRCxCYWRnZVg6KCk9PmRELEJhZ2dhZ2VDbGFpbTooKT0+cEQsQmFsbG9vbjooKT0+ZkQsQmFuOigpPT5oRCxCYW5hbmE6KCk9Pm1ELEJhbmRhZ2U6KCk9PmdELEJhbmtub3RlOigpPT55RCxCYW5rbm90ZUFycm93RG93bjooKT0+YkQsQmFua25vdGVBcnJvd1VwOigpPT54RCxCYW5rbm90ZVg6KCk9PnZELEJhckNoYXJ0OigpPT5BbSxCYXJDaGFydDI6KCk9PiRtLEJhckNoYXJ0MzooKT0+TG0sQmFyQ2hhcnQ0OigpPT5UbSxCYXJDaGFydEJpZzooKT0+X20sQmFyQ2hhcnRIb3Jpem9udGFsOigpPT5DbSxCYXJDaGFydEhvcml6b250YWxCaWc6KCk9Pk1tLEJhcmNvZGU6KCk9PndELEJhcnJlbDooKT0+a0QsQmFzZWxpbmU6KCk9PlNELEJhdGg6KCk9Pk1ELEJhdHRlcnk6KCk9PiRELEJhdHRlcnlDaGFyZ2luZzooKT0+Q0QsQmF0dGVyeUZ1bGw6KCk9Pl9ELEJhdHRlcnlMb3c6KCk9PnpELEJhdHRlcnlNZWRpdW06KCk9PlRELEJhdHRlcnlQbHVzOigpPT5MRCxCYXR0ZXJ5V2FybmluZzooKT0+REQsQmVha2VyOigpPT5BRCxCZWFuOigpPT5JRCxCZWFuT2ZmOigpPT5FRCxCZWQ6KCk9PlJELEJlZERvdWJsZTooKT0+UEQsQmVkU2luZ2xlOigpPT5ORCxCZWVmOigpPT5GRCxCZWVmT2ZmOigpPT5PRCxCZWVyOigpPT5IRCxCZWVyT2ZmOigpPT5CRCxCZWxsOigpPT5ZRCxCZWxsRG90OigpPT5xRCxCZWxsRWxlY3RyaWM6KCk9PlZELEJlbGxNaW51czooKT0+akQsQmVsbE9mZjooKT0+VUQsQmVsbFBsdXM6KCk9PldELEJlbGxSaW5nOigpPT5HRCxCZXR3ZWVuSG9yaXpvbmFsRW5kOigpPT54bSxCZXR3ZWVuSG9yaXpvbmFsU3RhcnQ6KCk9PnZtLEJldHdlZW5Ib3Jpem9udGFsRW5kOigpPT54bSxCZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0OigpPT52bSxCZXR3ZWVuVmVydGljYWxFbmQ6KCk9PktELEJldHdlZW5WZXJ0aWNhbFN0YXJ0OigpPT5aRCxCaWNlcHNGbGV4ZWQ6KCk9PlFELEJpa2U6KCk9PlhELEJpbmFyeTooKT0+SkQsQmlub2N1bGFyczooKT0+ZSQsQmlvaGF6YXJkOigpPT50JCxCaXJkOigpPT5yJCxCaXJkaG91c2U6KCk9PmEkLEJpdGNvaW46KCk9PmkkLEJsZW5kOigpPT5zJCxCbGluZHM6KCk9Pm4kLEJsb2NrczooKT0+byQsQmx1ZXRvb3RoOigpPT5kJCxCbHVldG9vdGhDb25uZWN0ZWQ6KCk9PmwkLEJsdWV0b290aE9mZjooKT0+YyQsQmx1ZXRvb3RoU2VhcmNoaW5nOigpPT5wJCxCb2xkOigpPT51JCxCb2x0OigpPT5mJCxCb21iOigpPT5oJCxCb25lOigpPT5tJCxCb29rOigpPT5GJCxCb29rQTooKT0+ZyQsQm9va0FsZXJ0OigpPT5iJCxCb29rQXVkaW86KCk9PngkLEJvb2tDaGVjazooKT0+diQsQm9va0NvcHk6KCk9PnkkLEJvb2tEYXNoZWQ6KCk9PnltLEJvb2tEb3duOigpPT53JCxCb29rSGVhZHBob25lczooKT0+ayQsQm9va0hlYXJ0OigpPT5TJCxCb29rSW1hZ2U6KCk9Pk0kLEJvb2tLZXk6KCk9PkMkLEJvb2tMb2NrOigpPT56JCxCb29rTWFya2VkOigpPT5UJCxCb29rTWludXM6KCk9Pl8kLEJvb2tPcGVuOigpPT4kJCxCb29rT3BlbkNoZWNrOigpPT5MJCxCb29rT3BlblRleHQ6KCk9PkQkLEJvb2tQbHVzOigpPT5BJCxCb29rU2VhcmNoOigpPT5FJCxCb29rVGVtcGxhdGU6KCk9PnltLEJvb2tUZXh0OigpPT5JJCxCb29rVHlwZTooKT0+UCQsQm9va1VwOigpPT5PJCxCb29rVXAyOigpPT5OJCxCb29rVXNlcjooKT0+UiQsQm9va1g6KCk9PkIkLEJvb2ttYXJrOigpPT5XJCxCb29rbWFya0NoZWNrOigpPT5IJCxCb29rbWFya01pbnVzOigpPT5WJCxCb29rbWFya09mZjooKT0+cSQsQm9va21hcmtQbHVzOigpPT5qJCxCb29rbWFya1g6KCk9PlUkLEJvb21Cb3g6KCk9PkckLEJvdDooKT0+WiQsQm90TWVzc2FnZVNxdWFyZTooKT0+WSQsQm90T2ZmOigpPT5LJCxCb3R0bGVXaW5lOigpPT5RJCxCb3dBcnJvdzooKT0+WCQsQm94OigpPT5KJCxCb3hTZWxlY3Q6KCk9PmI3LEJveGVzOigpPT5lQSxCcmFjZXM6KCk9PndtLEJyYWNrZXRzOigpPT50QSxCcmFpbjooKT0+aUEsQnJhaW5DaXJjdWl0OigpPT5yQSxCcmFpbkNvZzooKT0+YUEsQnJpY2tXYWxsOigpPT5vQSxCcmlja1dhbGxGaXJlOigpPT5zQSxCcmlja1dhbGxTaGllbGQ6KCk9Pm5BLEJyaWVmY2FzZTooKT0+dUEsQnJpZWZjYXNlQnVzaW5lc3M6KCk9PmxBLEJyaWVmY2FzZUNvbnZleW9yQmVsdDooKT0+Y0EsQnJpZWZjYXNlTWVkaWNhbDooKT0+ZEEsQnJpbmdUb0Zyb250OigpPT5wQSxCcnVzaDooKT0+aEEsQnJ1c2hDbGVhbmluZzooKT0+ZkEsQnViYmxlczooKT0+bUEsQnVnOigpPT54QSxCdWdPZmY6KCk9PmdBLEJ1Z1BsYXk6KCk9PmJBLEJ1aWxkaW5nOigpPT55QSxCdWlsZGluZzI6KCk9PnZBLEJ1czooKT0+a0EsQnVzRnJvbnQ6KCk9PndBLENhYmxlOigpPT5NQSxDYWJsZUNhcjooKT0+U0EsQ2FrZTooKT0+ekEsQ2FrZVNsaWNlOigpPT5DQSxDYWxjdWxhdG9yOigpPT5fQSxDYWxlbmRhcjooKT0+WUEsQ2FsZW5kYXIxOigpPT5UQSxDYWxlbmRhckFycm93RG93bjooKT0+TEEsQ2FsZW5kYXJBcnJvd1VwOigpPT5EQSxDYWxlbmRhckNoZWNrOigpPT5BQSxDYWxlbmRhckNoZWNrMjooKT0+JEEsQ2FsZW5kYXJDbG9jazooKT0+RUEsQ2FsZW5kYXJDb2c6KCk9PklBLENhbGVuZGFyRGF5czooKT0+UEEsQ2FsZW5kYXJGb2xkOigpPT5OQSxDYWxlbmRhckhlYXJ0OigpPT5GQSxDYWxlbmRhck1pbnVzOigpPT5SQSxDYWxlbmRhck1pbnVzMjooKT0+T0EsQ2FsZW5kYXJPZmY6KCk9PkJBLENhbGVuZGFyUGx1czooKT0+cUEsQ2FsZW5kYXJQbHVzMjooKT0+SEEsQ2FsZW5kYXJSYW5nZTooKT0+VkEsQ2FsZW5kYXJTZWFyY2g6KCk9PmpBLENhbGVuZGFyU3luYzooKT0+VUEsQ2FsZW5kYXJYOigpPT5HQSxDYWxlbmRhclgyOigpPT5XQSxDYWxlbmRhcnM6KCk9PktBLENhbWVyYTooKT0+WkEsQ2FtZXJhT2ZmOigpPT5RQSxDYW5kbGVzdGlja0NoYXJ0OigpPT56bSxDYW5keTooKT0+ZUUsQ2FuZHlDYW5lOigpPT5YQSxDYW5keU9mZjooKT0+SkEsQ2FubmFiaXM6KCk9PnJFLENhbm5hYmlzT2ZmOigpPT50RSxDYXB0aW9uczooKT0+a20sQ2FwdGlvbnNPZmY6KCk9PmFFLENhcjooKT0+c0UsQ2FyRnJvbnQ6KCk9PmlFLENhclRheGlGcm9udDooKT0+bkUsQ2FyYXZhbjooKT0+b0UsQ2FyZFNpbTooKT0+bEUsQ2Fycm90OigpPT5jRSxDYXNlTG93ZXI6KCk9PmRFLENhc2VTZW5zaXRpdmU6KCk9PnVFLENhc2VVcHBlcjooKT0+cEUsQ2Fzc2V0dGVUYXBlOigpPT5mRSxDYXN0OigpPT5oRSxDYXN0bGU6KCk9Pm1FLENhdDooKT0+Z0UsQ2N0djooKT0+eEUsQ2N0dk9mZjooKT0+YkUsQ2hhcnRBcmVhOigpPT5TbSxDaGFydEJhcjooKT0+Q20sQ2hhcnRCYXJCaWc6KCk9Pk1tLENoYXJ0QmFyRGVjcmVhc2luZzooKT0+dkUsQ2hhcnRCYXJJbmNyZWFzaW5nOigpPT55RSxDaGFydEJhclN0YWNrZWQ6KCk9PndFLENoYXJ0Q2FuZGxlc3RpY2s6KCk9PnptLENoYXJ0Q29sdW1uOigpPT5MbSxDaGFydENvbHVtbkJpZzooKT0+X20sQ2hhcnRDb2x1bW5EZWNyZWFzaW5nOigpPT5rRSxDaGFydENvbHVtbkluY3JlYXNpbmc6KCk9PlRtLENoYXJ0Q29sdW1uU3RhY2tlZDooKT0+U0UsQ2hhcnRHYW50dDooKT0+TUUsQ2hhcnRMaW5lOigpPT5EbSxDaGFydE5ldHdvcms6KCk9PkNFLENoYXJ0Tm9BeGVzQ29sdW1uOigpPT4kbSxDaGFydE5vQXhlc0NvbHVtbkRlY3JlYXNpbmc6KCk9PnpFLENoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZzooKT0+QW0sQ2hhcnROb0F4ZXNDb21iaW5lZDooKT0+X0UsQ2hhcnROb0F4ZXNHYW50dDooKT0+RW0sQ2hhcnRQaWU6KCk9PkltLENoYXJ0U2NhdHRlcjooKT0+UG0sQ2hhcnRTcGxpbmU6KCk9PlRFLENoZWNrOigpPT4kRSxDaGVja0NoZWNrOigpPT5MRSxDaGVja0NpcmNsZTooKT0+VW0sQ2hlY2tDaXJjbGUyOigpPT5XbSxDaGVja0xpbmU6KCk9PkRFLENoZWNrU3F1YXJlOigpPT5sNyxDaGVja1NxdWFyZTI6KCk9PmM3LENoZWZIYXQ6KCk9PkFFLENoZXJyeTooKT0+RUUsQ2hlc3NCaXNob3A6KCk9PklFLENoZXNzS2luZzooKT0+UEUsQ2hlc3NLbmlnaHQ6KCk9Pk9FLENoZXNzUGF3bjooKT0+TkUsQ2hlc3NRdWVlbjooKT0+UkUsQ2hlc3NSb29rOigpPT5GRSxDaGV2cm9uRG93bjooKT0+QkUsQ2hldnJvbkRvd25DaXJjbGU6KCk9PkdtLENoZXZyb25Eb3duU3F1YXJlOigpPT5kNyxDaGV2cm9uRmlyc3Q6KCk9PkhFLENoZXZyb25MYXN0OigpPT5xRSxDaGV2cm9uTGVmdDooKT0+VkUsQ2hldnJvbkxlZnRDaXJjbGU6KCk9PlltLENoZXZyb25MZWZ0U3F1YXJlOigpPT51NyxDaGV2cm9uUmlnaHQ6KCk9PmpFLENoZXZyb25SaWdodENpcmNsZTooKT0+S20sQ2hldnJvblJpZ2h0U3F1YXJlOigpPT5wNyxDaGV2cm9uVXA6KCk9PlVFLENoZXZyb25VcENpcmNsZTooKT0+Wm0sQ2hldnJvblVwU3F1YXJlOigpPT5mNyxDaGV2cm9uc0Rvd246KCk9PkdFLENoZXZyb25zRG93blVwOigpPT5XRSxDaGV2cm9uc0xlZnQ6KCk9PlFFLENoZXZyb25zTGVmdFJpZ2h0OigpPT5LRSxDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzOigpPT5ZRSxDaGV2cm9uc1JpZ2h0OigpPT5YRSxDaGV2cm9uc1JpZ2h0TGVmdDooKT0+WkUsQ2hldnJvbnNVcDooKT0+ZUksQ2hldnJvbnNVcERvd246KCk9PkpFLENodXJjaDooKT0+dEksQ2lnYXJldHRlOigpPT5hSSxDaWdhcmV0dGVPZmY6KCk9PnJJLENpcmNsZTooKT0+eEksQ2lyY2xlQWxlcnQ6KCk9Pk5tLENpcmNsZUFycm93RG93bjooKT0+T20sQ2lyY2xlQXJyb3dMZWZ0OigpPT5SbSxDaXJjbGVBcnJvd091dERvd25MZWZ0OigpPT5GbSxDaXJjbGVBcnJvd091dERvd25SaWdodDooKT0+Qm0sQ2lyY2xlQXJyb3dPdXRVcExlZnQ6KCk9PkhtLENpcmNsZUFycm93T3V0VXBSaWdodDooKT0+cW0sQ2lyY2xlQXJyb3dSaWdodDooKT0+Vm0sQ2lyY2xlQXJyb3dVcDooKT0+am0sQ2lyY2xlQ2hlY2s6KCk9PldtLENpcmNsZUNoZWNrQmlnOigpPT5VbSxDaXJjbGVDaGV2cm9uRG93bjooKT0+R20sQ2lyY2xlQ2hldnJvbkxlZnQ6KCk9PlltLENpcmNsZUNoZXZyb25SaWdodDooKT0+S20sQ2lyY2xlQ2hldnJvblVwOigpPT5abSxDaXJjbGVEYXNoZWQ6KCk9PmlJLENpcmNsZURpdmlkZTooKT0+UW0sQ2lyY2xlRG9sbGFyU2lnbjooKT0+c0ksQ2lyY2xlRG90OigpPT5vSSxDaXJjbGVEb3REYXNoZWQ6KCk9Pm5JLENpcmNsZUVsbGlwc2lzOigpPT5sSSxDaXJjbGVFcXVhbDooKT0+Y0ksQ2lyY2xlRmFkaW5nQXJyb3dVcDooKT0+ZEksQ2lyY2xlRmFkaW5nUGx1czooKT0+dUksQ2lyY2xlR2F1Z2U6KCk9PlhtLENpcmNsZUhlbHA6KCk9Pkg0LENpcmNsZU1pbnVzOigpPT5KbSxDaXJjbGVPZmY6KCk9PnBJLENpcmNsZVBhcmtpbmc6KCk9PmU1LENpcmNsZVBhcmtpbmdPZmY6KCk9PnQ1LENpcmNsZVBhdXNlOigpPT5hNSxDaXJjbGVQZXJjZW50OigpPT5yNSxDaXJjbGVQaWxlOigpPT5mSSxDaXJjbGVQbGF5OigpPT5pNSxDaXJjbGVQbHVzOigpPT5zNSxDaXJjbGVQb3VuZFN0ZXJsaW5nOigpPT5oSSxDaXJjbGVQb3dlcjooKT0+bjUsQ2lyY2xlUXVlc3Rpb25NYXJrOigpPT5INCxDaXJjbGVTbGFzaDooKT0+bUksQ2lyY2xlU2xhc2gyOigpPT5vNSxDaXJjbGVTbGFzaGVkOigpPT5vNSxDaXJjbGVTbWFsbDooKT0+Z0ksQ2lyY2xlU3RhcjooKT0+YkksQ2lyY2xlU3RvcDooKT0+bDUsQ2lyY2xlVXNlcjooKT0+ZDUsQ2lyY2xlVXNlclJvdW5kOigpPT5jNSxDaXJjbGVYOigpPT51NSxDaXJjdWl0Qm9hcmQ6KCk9PnZJLENpdHJ1czooKT0+a0ksQ2xhcHBlcmJvYXJkOigpPT55SSxDbGlwYm9hcmQ6KCk9PiRJLENsaXBib2FyZENoZWNrOigpPT53SSxDbGlwYm9hcmRDbG9jazooKT0+U0ksQ2xpcGJvYXJkQ29weTooKT0+TUksQ2xpcGJvYXJkRWRpdDooKT0+ZjUsQ2xpcGJvYXJkTGlzdDooKT0+Q0ksQ2xpcGJvYXJkTWludXM6KCk9PnpJLENsaXBib2FyZFBhc3RlOigpPT5fSSxDbGlwYm9hcmRQZW46KCk9PmY1LENsaXBib2FyZFBlbkxpbmU6KCk9PnA1LENsaXBib2FyZFBsdXM6KCk9PlRJLENsaXBib2FyZFNpZ25hdHVyZTooKT0+cDUsQ2xpcGJvYXJkVHlwZTooKT0+TEksQ2xpcGJvYXJkWDooKT0+REksQ2xvY2s6KCk9PlpJLENsb2NrMTooKT0+QUksQ2xvY2sxMDooKT0+RUksQ2xvY2sxMTooKT0+SUksQ2xvY2sxMjooKT0+UEksQ2xvY2syOigpPT5OSSxDbG9jazM6KCk9Pk9JLENsb2NrNDooKT0+UkksQ2xvY2s1OigpPT5GSSxDbG9jazY6KCk9PkJJLENsb2NrNzooKT0+SEksQ2xvY2s4OigpPT5xSSxDbG9jazk6KCk9PlZJLENsb2NrQWxlcnQ6KCk9PmpJLENsb2NrQXJyb3dEb3duOigpPT5VSSxDbG9ja0Fycm93VXA6KCk9PldJLENsb2NrQ2hlY2s6KCk9PkdJLENsb2NrRmFkaW5nOigpPT5ZSSxDbG9ja1BsdXM6KCk9PktJLENsb3NlZENhcHRpb246KCk9PlFJLENsb3VkOigpPT5nUCxDbG91ZEFsZXJ0OigpPT5YSSxDbG91ZEJhY2t1cDooKT0+SkksQ2xvdWRDaGVjazooKT0+ZVAsQ2xvdWRDb2c6KCk9PnRQLENsb3VkRG93bmxvYWQ6KCk9Pmg1LENsb3VkRHJpenpsZTooKT0+clAsQ2xvdWRGb2c6KCk9PmFQLENsb3VkSGFpbDooKT0+aVAsQ2xvdWRMaWdodG5pbmc6KCk9PnNQLENsb3VkTW9vbjooKT0+b1AsQ2xvdWRNb29uUmFpbjooKT0+blAsQ2xvdWRPZmY6KCk9PmRQLENsb3VkUmFpbjooKT0+Y1AsQ2xvdWRSYWluV2luZDooKT0+bFAsQ2xvdWRTbm93OigpPT51UCxDbG91ZFN1bjooKT0+ZlAsQ2xvdWRTdW5SYWluOigpPT5wUCxDbG91ZFN5bmM6KCk9PmhQLENsb3VkVXBsb2FkOigpPT5tNSxDbG91ZHk6KCk9Pm1QLENsb3ZlcjooKT0+YlAsQ2x1YjooKT0+eFAsQ29kZTooKT0+dlAsQ29kZTI6KCk9Pmc1LENvZGVTcXVhcmU6KCk9Pmg3LENvZGVYbWw6KCk9Pmc1LENvZmZlZTooKT0+eVAsQ29nOigpPT5rUCxDb2luczooKT0+d1AsQ29sdW1uczooKT0+eDUsQ29sdW1uczI6KCk9Png1LENvbHVtbnMzOigpPT5iNSxDb2x1bW5zM0NvZzooKT0+cTQsQ29sdW1uczQ6KCk9PlNQLENvbHVtbnNTZXR0aW5nczooKT0+cTQsQ29tYmluZTooKT0+TVAsQ29tbWFuZDooKT0+Q1AsQ29tcGFzczooKT0+elAsQ29tcG9uZW50OigpPT5fUCxDb21wdXRlcjooKT0+VFAsQ29uY2llcmdlQmVsbDooKT0+TFAsQ29uZTooKT0+RFAsQ29uc3RydWN0aW9uOigpPT4kUCxDb250YWN0OigpPT5FUCxDb250YWN0MjooKT0+djUsQ29udGFjdFJvdW5kOigpPT52NSxDb250YWluZXI6KCk9PkFQLENvbnRyYXN0OigpPT5JUCxDb29raWU6KCk9PlBQLENvb2tpbmdQb3Q6KCk9Pk5QLENvcHk6KCk9PnFQLENvcHlDaGVjazooKT0+T1AsQ29weU1pbnVzOigpPT5SUCxDb3B5UGx1czooKT0+RlAsQ29weVNsYXNoOigpPT5CUCxDb3B5WDooKT0+SFAsQ29weWxlZnQ6KCk9PlZQLENvcHlyaWdodDooKT0+alAsQ29ybmVyRG93bkxlZnQ6KCk9PlVQLENvcm5lckRvd25SaWdodDooKT0+V1AsQ29ybmVyTGVmdERvd246KCk9PkdQLENvcm5lckxlZnRVcDooKT0+WVAsQ29ybmVyUmlnaHREb3duOigpPT5LUCxDb3JuZXJSaWdodFVwOigpPT5aUCxDb3JuZXJVcExlZnQ6KCk9PlFQLENvcm5lclVwUmlnaHQ6KCk9PlhQLENwdTooKT0+SlAsQ3JlYXRpdmVDb21tb25zOigpPT50TixDcmVkaXRDYXJkOigpPT5lTixDcm9pc3NhbnQ6KCk9PnJOLENyb3A6KCk9PmFOLENyb3NzOigpPT5pTixDcm9zc2hhaXI6KCk9PnNOLENyb3duOigpPT5uTixDdWJvaWQ6KCk9Pm9OLEN1cFNvZGE6KCk9PmxOLEN1cmx5QnJhY2VzOigpPT53bSxDdXJyZW5jeTooKT0+Y04sQ3lsaW5kZXI6KCk9PmROLERhbTooKT0+dU4sRGF0YWJhc2U6KCk9Pm1OLERhdGFiYXNlQmFja3VwOigpPT5wTixEYXRhYmFzZVNlYXJjaDooKT0+Zk4sRGF0YWJhc2VaYXA6KCk9PmhOLERlY2ltYWxzQXJyb3dMZWZ0OigpPT5nTixEZWNpbWFsc0Fycm93UmlnaHQ6KCk9PmJOLERlbGV0ZTooKT0+eE4sRGVzc2VydDooKT0+dk4sRGlhbWV0ZXI6KCk9PnlOLERpYW1vbmQ6KCk9PmtOLERpYW1vbmRNaW51czooKT0+d04sRGlhbW9uZFBlcmNlbnQ6KCk9Pnk1LERpYW1vbmRQbHVzOigpPT5TTixEaWNlMTooKT0+TU4sRGljZTI6KCk9PkNOLERpY2UzOigpPT5UTixEaWNlNDooKT0+ek4sRGljZTU6KCk9Pl9OLERpY2U2OigpPT5MTixEaWNlczooKT0+RE4sRGlmZjooKT0+JE4sRGlzYzooKT0+UE4sRGlzYzI6KCk9PkFOLERpc2MzOigpPT5FTixEaXNjQWxidW06KCk9PklOLERpdmlkZTooKT0+Tk4sRGl2aWRlQ2lyY2xlOigpPT5RbSxEaXZpZGVTcXVhcmU6KCk9Png3LERuYTooKT0+T04sRG5hT2ZmOigpPT5GTixEb2NrOigpPT5STixEb2c6KCk9PkJOLERvbGxhclNpZ246KCk9PkhOLERvbnV0OigpPT5xTixEb29yQ2xvc2VkOigpPT5VTixEb29yQ2xvc2VkTG9ja2VkOigpPT5qTixEb29yT3BlbjooKT0+Vk4sRG90OigpPT5XTixEb3RTcXVhcmU6KCk9PnY3LERvd25sb2FkOigpPT5HTixEb3dubG9hZENsb3VkOigpPT5oNSxEcmFmdGluZ0NvbXBhc3M6KCk9PllOLERyYW1hOigpPT5LTixEcmlsbDooKT0+Wk4sRHJvbmU6KCk9PlFOLERyb3BsZXQ6KCk9PkpOLERyb3BsZXRPZmY6KCk9PlhOLERyb3BsZXRzOigpPT5lTyxEcnVtOigpPT5yTyxEcnVtc3RpY2s6KCk9PnRPLER1bWJiZWxsOigpPT5hTyxFYXI6KCk9PnNPLEVhck9mZjooKT0+aU8sRWFydGg6KCk9Pnc1LEVhcnRoTG9jazooKT0+bk8sRWNsaXBzZTooKT0+b08sRWRpdDooKT0+ZGMsRWRpdDI6KCk9PkU4LEVkaXQzOigpPT5BOCxFZ2c6KCk9PnVPLEVnZ0ZyaWVkOigpPT5jTyxFZ2dPZmY6KCk9PmxPLEVsbGlwc2U6KCk9PmRPLEVsbGlwc2lzOigpPT5TNSxFbGxpcHNpc1ZlcnRpY2FsOigpPT5rNSxFcXVhbDooKT0+aE8sRXF1YWxBcHByb3hpbWF0ZWx5OigpPT5wTyxFcXVhbE5vdDooKT0+Zk8sRXF1YWxTcXVhcmU6KCk9Pnk3LEVyYXNlcjooKT0+bU8sRXRoZXJuZXRQb3J0OigpPT5nTyxFdXJvOigpPT5iTyxFdkNoYXJnZXI6KCk9PnhPLEV4cGFuZDooKT0+dk8sRXh0ZXJuYWxMaW5rOigpPT55TyxFeWU6KCk9PlNPLEV5ZUNsb3NlZDooKT0+a08sRXllT2ZmOigpPT53TyxGYWN0b3J5OigpPT5NTyxGYW46KCk9PkNPLEZhc3RGb3J3YXJkOigpPT56TyxGZWF0aGVyOigpPT5fTyxGZW5jZTooKT0+VE8sRmVycmlzV2hlZWw6KCk9PkxPLEZpbGU6KCk9PmlSLEZpbGVBcmNoaXZlOigpPT5ETyxGaWxlQXVkaW86KCk9PlY0LEZpbGVBdWRpbzI6KCk9PlY0LEZpbGVBeGlzM0Q6KCk9Pk01LEZpbGVBeGlzM2Q6KCk9Pk01LEZpbGVCYWRnZTooKT0+QzUsRmlsZUJhZGdlMjooKT0+QzUsRmlsZUJhckNoYXJ0OigpPT5MNSxGaWxlQmFyQ2hhcnQyOigpPT5UNSxGaWxlQm94OigpPT4kTyxGaWxlQnJhY2VzOigpPT5fNSxGaWxlQnJhY2VzQ29ybmVyOigpPT56NSxGaWxlQ2hhcnRDb2x1bW46KCk9PlQ1LEZpbGVDaGFydENvbHVtbkluY3JlYXNpbmc6KCk9Pkw1LEZpbGVDaGFydExpbmU6KCk9PkQ1LEZpbGVDaGFydFBpZTooKT0+JDUsRmlsZUNoZWNrOigpPT5BTyxGaWxlQ2hlY2syOigpPT5BNSxGaWxlQ2hlY2tDb3JuZXI6KCk9PkE1LEZpbGVDbG9jazooKT0+RU8sRmlsZUNvZGU6KCk9PklPLEZpbGVDb2RlMjooKT0+RTUsRmlsZUNvZGVDb3JuZXI6KCk9PkU1LEZpbGVDb2c6KCk9Pkk1LEZpbGVDb2cyOigpPT5JNSxGaWxlRGlmZjooKT0+UE8sRmlsZURpZ2l0OigpPT5OTyxGaWxlRG93bjooKT0+T08sRmlsZUVkaXQ6KCk9PkI1LEZpbGVFeGNsYW1hdGlvblBvaW50OigpPT5QNSxGaWxlSGVhZHBob25lOigpPT5WNCxGaWxlSGVhcnQ6KCk9PkZPLEZpbGVJbWFnZTooKT0+Uk8sRmlsZUlucHV0OigpPT5CTyxGaWxlSnNvbjooKT0+XzUsRmlsZUpzb24yOigpPT56NSxGaWxlS2V5OigpPT5ONSxGaWxlS2V5MjooKT0+TjUsRmlsZUxpbmVDaGFydDooKT0+RDUsRmlsZUxvY2s6KCk9Pk81LEZpbGVMb2NrMjooKT0+TzUsRmlsZU1pbnVzOigpPT5xTyxGaWxlTWludXMyOigpPT5SNSxGaWxlTWludXNDb3JuZXI6KCk9PlI1LEZpbGVNdXNpYzooKT0+SE8sRmlsZU91dHB1dDooKT0+Vk8sRmlsZVBlbjooKT0+QjUsRmlsZVBlbkxpbmU6KCk9PkY1LEZpbGVQaWVDaGFydDooKT0+JDUsRmlsZVBsYXk6KCk9Pkg1LEZpbGVQbHVzOigpPT5qTyxGaWxlUGx1czI6KCk9PnE1LEZpbGVQbHVzQ29ybmVyOigpPT5xNSxGaWxlUXVlc3Rpb246KCk9PlY1LEZpbGVRdWVzdGlvbk1hcms6KCk9PlY1LEZpbGVTY2FuOigpPT5VTyxGaWxlU2VhcmNoOigpPT5XTyxGaWxlU2VhcmNoMjooKT0+ajUsRmlsZVNlYXJjaENvcm5lcjooKT0+ajUsRmlsZVNpZ25hbDooKT0+VTUsRmlsZVNpZ25hdHVyZTooKT0+RjUsRmlsZVNsaWRlcnM6KCk9PkdPLEZpbGVTcHJlYWRzaGVldDooKT0+WU8sRmlsZVN0YWNrOigpPT5LTyxGaWxlU3ltbGluazooKT0+Wk8sRmlsZVRlcm1pbmFsOigpPT5RTyxGaWxlVGV4dDooKT0+WE8sRmlsZVR5cGU6KCk9PkpPLEZpbGVUeXBlMjooKT0+VzUsRmlsZVR5cGVDb3JuZXI6KCk9Plc1LEZpbGVVcDooKT0+ZVIsRmlsZVVzZXI6KCk9PnRSLEZpbGVWaWRlbzooKT0+SDUsRmlsZVZpZGVvMjooKT0+RzUsRmlsZVZpZGVvQ2FtZXJhOigpPT5HNSxGaWxlVm9sdW1lOigpPT5yUixGaWxlVm9sdW1lMjooKT0+VTUsRmlsZVdhcm5pbmc6KCk9PlA1LEZpbGVYOigpPT5hUixGaWxlWDI6KCk9Plk1LEZpbGVYQ29ybmVyOigpPT5ZNSxGaWxlczooKT0+c1IsRmlsbTooKT0+blIsRmlsdGVyOigpPT5KNSxGaWx0ZXJYOigpPT5YNSxGaW5nZXJwcmludDooKT0+SzUsRmluZ2VycHJpbnRQYXR0ZXJuOigpPT5LNSxGaXJlRXh0aW5ndWlzaGVyOigpPT5vUixGaXNoOigpPT5kUixGaXNoT2ZmOigpPT5sUixGaXNoU3ltYm9sOigpPT5jUixGaXNoaW5nSG9vazooKT0+dVIsRmlzaGluZ1JvZDooKT0+cFIsRmxhZzooKT0+bVIsRmxhZ09mZjooKT0+ZlIsRmxhZ1RyaWFuZ2xlTGVmdDooKT0+aFIsRmxhZ1RyaWFuZ2xlUmlnaHQ6KCk9PmdSLEZsYW1lOigpPT54UixGbGFtZUtpbmRsaW5nOigpPT5iUixGbGFzaGxpZ2h0OigpPT55UixGbGFzaGxpZ2h0T2ZmOigpPT52UixGbGFza0NvbmljYWw6KCk9PlNSLEZsYXNrQ29uaWNhbE9mZjooKT0+d1IsRmxhc2tSb3VuZDooKT0+a1IsRmxpcEhvcml6b250YWw6KCk9Pm43LEZsaXBIb3Jpem9udGFsMjooKT0+TVIsRmxpcFZlcnRpY2FsOigpPT5vNyxGbGlwVmVydGljYWwyOigpPT5DUixGbG93ZXI6KCk9Pl9SLEZsb3dlcjI6KCk9PnpSLEZvY3VzOigpPT5MUixGb2xkSG9yaXpvbnRhbDooKT0+VFIsRm9sZFZlcnRpY2FsOigpPT5EUixGb2xkZXI6KCk9PmlGLEZvbGRlckFyY2hpdmU6KCk9PiRSLEZvbGRlckNoZWNrOigpPT5BUixGb2xkZXJDbG9jazooKT0+RVIsRm9sZGVyQ2xvc2VkOigpPT5JUixGb2xkZXJDb2RlOigpPT5QUixGb2xkZXJDb2c6KCk9Plo1LEZvbGRlckNvZzI6KCk9Plo1LEZvbGRlckRvdDooKT0+TlIsRm9sZGVyRG93bjooKT0+T1IsRm9sZGVyRWRpdDooKT0+UTUsRm9sZGVyR2l0OigpPT5CUixGb2xkZXJHaXQyOigpPT5SUixGb2xkZXJIZWFydDooKT0+RlIsRm9sZGVySW5wdXQ6KCk9PkhSLEZvbGRlckthbmJhbjooKT0+cVIsRm9sZGVyS2V5OigpPT5WUixGb2xkZXJMb2NrOigpPT5qUixGb2xkZXJNaW51czooKT0+VVIsRm9sZGVyT3BlbjooKT0+R1IsRm9sZGVyT3BlbkRvdDooKT0+V1IsRm9sZGVyT3V0cHV0OigpPT5ZUixGb2xkZXJQZW46KCk9PlE1LEZvbGRlclBsdXM6KCk9PktSLEZvbGRlclJvb3Q6KCk9PlFSLEZvbGRlclNlYXJjaDooKT0+WFIsRm9sZGVyU2VhcmNoMjooKT0+WlIsRm9sZGVyU3ltbGluazooKT0+SlIsRm9sZGVyU3luYzooKT0+ZUYsRm9sZGVyVHJlZTooKT0+dEYsRm9sZGVyVXA6KCk9PnJGLEZvbGRlclg6KCk9PmFGLEZvbGRlcnM6KCk9PnNGLEZvb3RwcmludHM6KCk9Pm5GLEZvcmtLbmlmZTooKT0+ZDksRm9ya0tuaWZlQ3Jvc3NlZDooKT0+YzksRm9ya2xpZnQ6KCk9Pm9GLEZvcm06KCk9PmxGLEZvcm1JbnB1dDooKT0+UDgsRm9yd2FyZDooKT0+Y0YsRnJhbWU6KCk9PmRGLEZyb3duOigpPT51RixGdWVsOigpPT5wRixGdWxsc2NyZWVuOigpPT5mRixGdW5jdGlvblNxdWFyZTooKT0+dzcsRnVubmVsOigpPT5KNSxGdW5uZWxQbHVzOigpPT5oRixGdW5uZWxYOigpPT5YNSxHYWxsZXJ5SG9yaXpvbnRhbDooKT0+Z0YsR2FsbGVyeUhvcml6b250YWxFbmQ6KCk9Pm1GLEdhbGxlcnlUaHVtYm5haWxzOigpPT5iRixHYWxsZXJ5VmVydGljYWw6KCk9PnZGLEdhbGxlcnlWZXJ0aWNhbEVuZDooKT0+eEYsR2FtZXBhZDooKT0+a0YsR2FtZXBhZDI6KCk9PnlGLEdhbWVwYWREaXJlY3Rpb25hbDooKT0+d0YsR2FudHRDaGFydDooKT0+RW0sR2FudHRDaGFydFNxdWFyZTooKT0+RzQsR2F1Z2U6KCk9PlNGLEdhdWdlQ2lyY2xlOigpPT5YbSxHYXZlbDooKT0+TUYsR2VtOigpPT5DRixHZW9yZ2lhbkxhcmk6KCk9PnpGLEdob3N0OigpPT5fRixHaWZ0OigpPT5URixHaXRCcmFuY2g6KCk9PiRGLEdpdEJyYW5jaE1pbnVzOigpPT5MRixHaXRCcmFuY2hQbHVzOigpPT5ERixHaXRDb21taXQ6KCk9PmU4LEdpdENvbW1pdEhvcml6b250YWw6KCk9PmU4LEdpdENvbW1pdFZlcnRpY2FsOigpPT5BRixHaXRDb21wYXJlOigpPT5JRixHaXRDb21wYXJlQXJyb3dzOigpPT5FRixHaXRGb3JrOigpPT5QRixHaXRHcmFwaDooKT0+TkYsR2l0TWVyZ2U6KCk9PlJGLEdpdE1lcmdlQ29uZmxpY3Q6KCk9Pk9GLEdpdFB1bGxSZXF1ZXN0OigpPT5qRixHaXRQdWxsUmVxdWVzdEFycm93OigpPT5GRixHaXRQdWxsUmVxdWVzdENsb3NlZDooKT0+QkYsR2l0UHVsbFJlcXVlc3RDcmVhdGU6KCk9PnFGLEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c6KCk9PkhGLEdpdFB1bGxSZXF1ZXN0RHJhZnQ6KCk9PlZGLEdsYXNzV2F0ZXI6KCk9PlVGLEdsYXNzZXM6KCk9PldGLEdsb2JlOigpPT5aRixHbG9iZTI6KCk9Pnc1LEdsb2JlTG9jazooKT0+R0YsR2xvYmVPZmY6KCk9PllGLEdsb2JlWDooKT0+S0YsR29hbDooKT0+UUYsR3B1OigpPT5YRixHcmFiOigpPT5zOCxHcmFkdWF0aW9uQ2FwOigpPT5KRixHcmFwZTooKT0+ZUIsR3JpZDooKT0+ajQsR3JpZDJYMjooKT0+aTgsR3JpZDJYMkNoZWNrOigpPT50OCxHcmlkMlgyUGx1czooKT0+cjgsR3JpZDJYMlg6KCk9PmE4LEdyaWQyeDI6KCk9Pmk4LEdyaWQyeDJDaGVjazooKT0+dDgsR3JpZDJ4MlBsdXM6KCk9PnI4LEdyaWQyeDJYOigpPT5hOCxHcmlkM1gzOigpPT5qNCxHcmlkM3gyOigpPT50QixHcmlkM3gzOigpPT5qNCxHcmlwOigpPT5pQixHcmlwSG9yaXpvbnRhbDooKT0+ckIsR3JpcFZlcnRpY2FsOigpPT5hQixHcm91cDooKT0+c0IsR3VpdGFyOigpPT5uQixIYW06KCk9Pm9CLEhhbWJ1cmdlcjooKT0+bEIsSGFtbWVyOigpPT5jQixIYW5kOigpPT5tQixIYW5kQ29pbnM6KCk9PmRCLEhhbmRGaXN0OigpPT51QixIYW5kR3JhYjooKT0+czgsSGFuZEhlYXJ0OigpPT5wQixIYW5kSGVscGluZzooKT0+bjgsSGFuZE1ldGFsOigpPT5mQixIYW5kUGxhdHRlcjooKT0+aEIsSGFuZGJhZzooKT0+Z0IsSGFuZHNoYWtlOigpPT5iQixIYXJkRHJpdmU6KCk9PnlCLEhhcmREcml2ZURvd25sb2FkOigpPT54QixIYXJkRHJpdmVVcGxvYWQ6KCk9PnZCLEhhcmRIYXQ6KCk9PndCLEhhc2g6KCk9PmtCLEhhdEdsYXNzZXM6KCk9PlNCLEhhemU6KCk9Pk1CLEhkOigpPT5DQixIZG1pUG9ydDooKT0+ekIsSGVhZGluZzooKT0+RUIsSGVhZGluZzE6KCk9PkxCLEhlYWRpbmcyOigpPT5fQixIZWFkaW5nMzooKT0+VEIsSGVhZGluZzQ6KCk9PkRCLEhlYWRpbmc1OigpPT4kQixIZWFkaW5nNjooKT0+QUIsSGVhZHBob25lT2ZmOigpPT5JQixIZWFkcGhvbmVzOigpPT5QQixIZWFkc2V0OigpPT5OQixIZWFydDooKT0+cUIsSGVhcnRDcmFjazooKT0+T0IsSGVhcnRIYW5kc2hha2U6KCk9PlJCLEhlYXJ0TWludXM6KCk9PkZCLEhlYXJ0T2ZmOigpPT5CQixIZWFydFBsdXM6KCk9PkhCLEhlYXJ0UHVsc2U6KCk9PlZCLEhlYXRlcjooKT0+akIsSGVsaWNvcHRlcjooKT0+V0IsSGVscENpcmNsZTooKT0+SDQsSGVscGluZ0hhbmQ6KCk9Pm44LEhleGFnb246KCk9PlVCLEhpZ2hsaWdodGVyOigpPT5HQixIaXN0b3J5OigpPT5ZQixIb21lOigpPT5vOCxIb3A6KCk9PlpCLEhvcE9mZjooKT0+S0IsSG9zcGl0YWw6KCk9PlFCLEhvdGVsOigpPT5YQixIb3VyZ2xhc3M6KCk9PkpCLEhvdXNlOigpPT5vOCxIb3VzZUhlYXJ0OigpPT5lSCxIb3VzZVBsdWc6KCk9PnRILEhvdXNlUGx1czooKT0+ckgsSG91c2VXaWZpOigpPT5hSCxJY2VDcmVhbTooKT0+YzgsSWNlQ3JlYW0yOigpPT5sOCxJY2VDcmVhbUJvd2w6KCk9Pmw4LEljZUNyZWFtQ29uZTooKT0+YzgsSWRDYXJkOigpPT5zSCxJZENhcmRMYW55YXJkOigpPT5pSCxJbWFnZTooKT0+ZkgsSW1hZ2VEb3duOigpPT5uSCxJbWFnZU1pbnVzOigpPT5vSCxJbWFnZU9mZjooKT0+bEgsSW1hZ2VQbGF5OigpPT5jSCxJbWFnZVBsdXM6KCk9PmRILEltYWdlVXA6KCk9PnVILEltYWdlVXBzY2FsZTooKT0+cEgsSW1hZ2VzOigpPT5oSCxJbXBvcnQ6KCk9Pm1ILEluYm94OigpPT5nSCxJbmRlbnQ6KCk9Plc0LEluZGVudERlY3JlYXNlOigpPT5VNCxJbmRlbnRJbmNyZWFzZTooKT0+VzQsSW5kaWFuUnVwZWU6KCk9PmJILEluZmluaXR5OigpPT54SCxJbmZvOigpPT52SCxJbnNwZWN0OigpPT5fNyxJbnNwZWN0aW9uUGFuZWw6KCk9PnlILEl0YWxpYzooKT0+d0gsSXRlcmF0aW9uQ2N3OigpPT5rSCxJdGVyYXRpb25DdzooKT0+U0gsSmFwYW5lc2VZZW46KCk9Pk1ILEpveXN0aWNrOigpPT5DSCxLYW5iYW46KCk9PnpILEthbmJhblNxdWFyZTooKT0+azcsS2FuYmFuU3F1YXJlRGFzaGVkOigpPT5tNyxLYXlhazooKT0+X0gsS2V5OigpPT4kSCxLZXlSb3VuZDooKT0+VEgsS2V5U3F1YXJlOigpPT5MSCxLZXlib2FyZDooKT0+RUgsS2V5Ym9hcmRNdXNpYzooKT0+REgsS2V5Ym9hcmRPZmY6KCk9PkFILExhbXA6KCk9PkZILExhbXBDZWlsaW5nOigpPT5JSCxMYW1wRGVzazooKT0+UEgsTGFtcEZsb29yOigpPT5OSCxMYW1wV2FsbERvd246KCk9Pk9ILExhbXBXYWxsVXA6KCk9PlJILExhbmRQbG90OigpPT5CSCxMYW5kbWFyazooKT0+SEgsTGFuZ3VhZ2VzOigpPT5xSCxMYXB0b3A6KCk9PmpILExhcHRvcDI6KCk9PmQ4LExhcHRvcE1pbmltYWw6KCk9PmQ4LExhcHRvcE1pbmltYWxDaGVjazooKT0+VkgsTGFzc286KCk9PldILExhc3NvU2VsZWN0OigpPT5VSCxMYXVnaDooKT0+R0gsTGF5ZXJzOigpPT51OCxMYXllcnMyOigpPT5ZSCxMYXllcnMzOigpPT51OCxMYXllcnNQbHVzOigpPT5LSCxMYXlvdXQ6KCk9PiQ4LExheW91dERhc2hib2FyZDooKT0+WEgsTGF5b3V0R3JpZDooKT0+WkgsTGF5b3V0TGlzdDooKT0+UUgsTGF5b3V0UGFuZWxMZWZ0OigpPT5KSCxMYXlvdXRQYW5lbFRvcDooKT0+ZXEsTGF5b3V0VGVtcGxhdGU6KCk9PnRxLExlYWY6KCk9PmFxLExlYWZ5R3JlZW46KCk9PnJxLExlY3Rlcm46KCk9PmlxLExlbnNDb25jYXZlOigpPT5zcSxMZW5zQ29udmV4OigpPT5ucSxMZXR0ZXJUZXh0OigpPT5LNyxMaWJyYXJ5OigpPT5jcSxMaWJyYXJ5QmlnOigpPT5vcSxMaWJyYXJ5U3F1YXJlOigpPT5TNyxMaWZlQnVveTooKT0+bHEsTGlnYXR1cmU6KCk9PmRxLExpZ2h0YnVsYjooKT0+cHEsTGlnaHRidWxiT2ZmOigpPT51cSxMaW5lQ2hhcnQ6KCk9PkRtLExpbmVEb3RSaWdodEhvcml6b250YWw6KCk9PmZxLExpbmVTcXVpZ2dsZTooKT0+aHEsTGluZVN0eWxlOigpPT5tcSxMaW5rOigpPT54cSxMaW5rMjooKT0+YnEsTGluazJPZmY6KCk9PmdxLExpc3Q6KCk9Pk9xLExpc3RDaGVjazooKT0+dnEsTGlzdENoZWNrczooKT0+eXEsTGlzdENoZXZyb25zRG93blVwOigpPT53cSxMaXN0Q2hldnJvbnNVcERvd246KCk9PmtxLExpc3RDb2xsYXBzZTooKT0+TXEsTGlzdEVuZDooKT0+U3EsTGlzdEZpbHRlcjooKT0+enEsTGlzdEZpbHRlclBsdXM6KCk9PkNxLExpc3RJbmRlbnREZWNyZWFzZTooKT0+VTQsTGlzdEluZGVudEluY3JlYXNlOigpPT5XNCxMaXN0TWludXM6KCk9Pl9xLExpc3RNdXNpYzooKT0+VHEsTGlzdE9yZGVyZWQ6KCk9PkxxLExpc3RQbHVzOigpPT5EcSxMaXN0UmVzdGFydDooKT0+JHEsTGlzdFN0YXJ0OigpPT5BcSxMaXN0VG9kbzooKT0+RXEsTGlzdFRyZWU6KCk9PklxLExpc3RWaWRlbzooKT0+TnEsTGlzdFg6KCk9PlBxLExvYWRlcjooKT0+RnEsTG9hZGVyMjooKT0+cDgsTG9hZGVyQ2lyY2xlOigpPT5wOCxMb2FkZXJQaW53aGVlbDooKT0+UnEsTG9jYXRlOigpPT5xcSxMb2NhdGVGaXhlZDooKT0+QnEsTG9jYXRlT2ZmOigpPT5IcSxMb2NhdGlvbkVkaXQ6KCk9Pmc4LExvY2s6KCk9PmpxLExvY2tLZXlob2xlOigpPT5WcSxMb2NrS2V5aG9sZU9wZW46KCk9PmY4LExvY2tPcGVuOigpPT5oOCxMb2dJbjooKT0+VXEsTG9nT3V0OigpPT5ZcSxMb2dzOigpPT5XcSxMb2xsaXBvcDooKT0+S3EsTHVnZ2FnZTooKT0+R3EsTVNxdWFyZTooKT0+TTcsTWFnbmV0OigpPT5RcSxNYWlsOigpPT5hVixNYWlsQ2hlY2s6KCk9PlpxLE1haWxNaW51czooKT0+WHEsTWFpbE9wZW46KCk9PmVWLE1haWxQbHVzOigpPT5KcSxNYWlsUXVlc3Rpb246KCk9Pm04LE1haWxRdWVzdGlvbk1hcms6KCk9Pm04LE1haWxTZWFyY2g6KCk9PnRWLE1haWxXYXJuaW5nOigpPT5yVixNYWlsWDooKT0+aVYsTWFpbGJveDooKT0+c1YsTWFpbHM6KCk9Pm5WLE1hcDooKT0+a1YsTWFwTWludXM6KCk9Pm9WLE1hcFBpbjooKT0+dlYsTWFwUGluQ2hlY2s6KCk9PmNWLE1hcFBpbkNoZWNrSW5zaWRlOigpPT5sVixNYXBQaW5Ib3VzZTooKT0+ZFYsTWFwUGluTWludXM6KCk9PnBWLE1hcFBpbk1pbnVzSW5zaWRlOigpPT51VixNYXBQaW5PZmY6KCk9PmZWLE1hcFBpblBlbjooKT0+ZzgsTWFwUGluUGx1czooKT0+bVYsTWFwUGluUGx1c0luc2lkZTooKT0+aFYsTWFwUGluU2VhcmNoOigpPT5nVixNYXBQaW5YOigpPT54VixNYXBQaW5YSW5zaWRlOigpPT5iVixNYXBQaW5uZWQ6KCk9PnlWLE1hcFBsdXM6KCk9PndWLE1hcnM6KCk9Pk1WLE1hcnNTdHJva2U6KCk9PlNWLE1hcnRpbmk6KCk9PkNWLE1heGltaXplOigpPT5fVixNYXhpbWl6ZTI6KCk9PnpWLE1lZGFsOigpPT5UVixNZWdhcGhvbmU6KCk9PkRWLE1lZ2FwaG9uZU9mZjooKT0+TFYsTWVoOigpPT4kVixNZW1vcnlTdGljazooKT0+QVYsTWVudTooKT0+RVYsTWVudVNxdWFyZTooKT0+QzcsTWVyZ2U6KCk9PklWLE1lc3NhZ2VDaXJjbGU6KCk9PlVWLE1lc3NhZ2VDaXJjbGVDaGVjazooKT0+UFYsTWVzc2FnZUNpcmNsZUNvZGU6KCk9Pk5WLE1lc3NhZ2VDaXJjbGVEYXNoZWQ6KCk9Pk9WLE1lc3NhZ2VDaXJjbGVIZWFydDooKT0+UlYsTWVzc2FnZUNpcmNsZU1vcmU6KCk9PkZWLE1lc3NhZ2VDaXJjbGVPZmY6KCk9PkJWLE1lc3NhZ2VDaXJjbGVQbHVzOigpPT5IVixNZXNzYWdlQ2lyY2xlUXVlc3Rpb246KCk9PmI4LE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms6KCk9PmI4LE1lc3NhZ2VDaXJjbGVSZXBseTooKT0+cVYsTWVzc2FnZUNpcmNsZVdhcm5pbmc6KCk9PlZWLE1lc3NhZ2VDaXJjbGVYOigpPT5qVixNZXNzYWdlU3F1YXJlOigpPT5jaixNZXNzYWdlU3F1YXJlQ2hlY2s6KCk9PldWLE1lc3NhZ2VTcXVhcmVDb2RlOigpPT5HVixNZXNzYWdlU3F1YXJlRGFzaGVkOigpPT5ZVixNZXNzYWdlU3F1YXJlRGlmZjooKT0+S1YsTWVzc2FnZVNxdWFyZURvdDooKT0+WlYsTWVzc2FnZVNxdWFyZUhlYXJ0OigpPT5RVixNZXNzYWdlU3F1YXJlTG9jazooKT0+WFYsTWVzc2FnZVNxdWFyZU1vcmU6KCk9PkpWLE1lc3NhZ2VTcXVhcmVPZmY6KCk9PmVqLE1lc3NhZ2VTcXVhcmVQbHVzOigpPT50aixNZXNzYWdlU3F1YXJlUXVvdGU6KCk9PnJqLE1lc3NhZ2VTcXVhcmVSZXBseTooKT0+YWosTWVzc2FnZVNxdWFyZVNoYXJlOigpPT5paixNZXNzYWdlU3F1YXJlVGV4dDooKT0+c2osTWVzc2FnZVNxdWFyZVdhcm5pbmc6KCk9Pm5qLE1lc3NhZ2VTcXVhcmVYOigpPT5vaixNZXNzYWdlc1NxdWFyZTooKT0+bGosTWV0cm9ub21lOigpPT5kaixNaWM6KCk9PnBqLE1pYzI6KCk9Png4LE1pY09mZjooKT0+dWosTWljVm9jYWw6KCk9Png4LE1pY3JvY2hpcDooKT0+ZmosTWljcm9zY29wZTooKT0+aGosTWljcm93YXZlOigpPT5taixNaWxlc3RvbmU6KCk9PmdqLE1pbGs6KCk9PnhqLE1pbGtPZmY6KCk9PmJqLE1pbmltaXplOigpPT55aixNaW5pbWl6ZTI6KCk9PnZqLE1pbnVzOigpPT53aixNaW51c0NpcmNsZTooKT0+Sm0sTWludXNTcXVhcmU6KCk9Pno3LE1pcnJvclJlY3Rhbmd1bGFyOigpPT5raixNaXJyb3JSb3VuZDooKT0+U2osTW9uaXRvcjooKT0+T2osTW9uaXRvckNoZWNrOigpPT5NaixNb25pdG9yQ2xvdWQ6KCk9PkNqLE1vbml0b3JDb2c6KCk9PnpqLE1vbml0b3JEb3Q6KCk9Pl9qLE1vbml0b3JEb3duOigpPT5UaixNb25pdG9yT2ZmOigpPT5MaixNb25pdG9yUGF1c2U6KCk9PkRqLE1vbml0b3JQbGF5OigpPT4kaixNb25pdG9yU21hcnRwaG9uZTooKT0+QWosTW9uaXRvclNwZWFrZXI6KCk9PkVqLE1vbml0b3JTdG9wOigpPT5JaixNb25pdG9yVXA6KCk9PlBqLE1vbml0b3JYOigpPT5OaixNb29uOigpPT5GaixNb29uU3RhcjooKT0+UmosTW9yZUhvcml6b250YWw6KCk9PlM1LE1vcmVWZXJ0aWNhbDooKT0+azUsTW90b3JiaWtlOigpPT5CaixNb3VudGFpbjooKT0+cWosTW91bnRhaW5Tbm93OigpPT5IaixNb3VzZTooKT0+UWosTW91c2VMZWZ0OigpPT5WaixNb3VzZU9mZjooKT0+amosTW91c2VQb2ludGVyOigpPT5aaixNb3VzZVBvaW50ZXIyOigpPT5HaixNb3VzZVBvaW50ZXIyT2ZmOigpPT5VaixNb3VzZVBvaW50ZXJCYW46KCk9PldqLE1vdXNlUG9pbnRlckNsaWNrOigpPT5ZaixNb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWQ6KCk9Pmc3LE1vdXNlUmlnaHQ6KCk9PktqLE1vdmU6KCk9PmRVLE1vdmUzRDooKT0+djgsTW92ZTNkOigpPT52OCxNb3ZlRGlhZ29uYWw6KCk9PlhqLE1vdmVEaWFnb25hbDI6KCk9PkpqLE1vdmVEb3duOigpPT5yVSxNb3ZlRG93bkxlZnQ6KCk9PmVVLE1vdmVEb3duUmlnaHQ6KCk9PnRVLE1vdmVIb3Jpem9udGFsOigpPT5zVSxNb3ZlTGVmdDooKT0+YVUsTW92ZVJpZ2h0OigpPT5pVSxNb3ZlVXA6KCk9PmxVLE1vdmVVcExlZnQ6KCk9Pm5VLE1vdmVVcFJpZ2h0OigpPT5vVSxNb3ZlVmVydGljYWw6KCk9PmNVLE11c2ljOigpPT5oVSxNdXNpYzI6KCk9PnVVLE11c2ljMzooKT0+cFUsTXVzaWM0OigpPT5mVSxOYXZpZ2F0aW9uOigpPT54VSxOYXZpZ2F0aW9uMjooKT0+Z1UsTmF2aWdhdGlvbjJPZmY6KCk9Pm1VLE5hdmlnYXRpb25PZmY6KCk9PmJVLE5ldHdvcms6KCk9PnZVLE5ld3NwYXBlcjooKT0+eVUsTmZjOigpPT5rVSxOb25CaW5hcnk6KCk9PndVLE5vdGVib29rOigpPT56VSxOb3RlYm9va1BlbjooKT0+U1UsTm90ZWJvb2tUYWJzOigpPT5NVSxOb3RlYm9va1RleHQ6KCk9PkNVLE5vdGVwYWRUZXh0OigpPT5UVSxOb3RlcGFkVGV4dERhc2hlZDooKT0+X1UsTnV0OigpPT5EVSxOdXRPZmY6KCk9PkxVLE9jdGFnb246KCk9PkFVLE9jdGFnb25BbGVydDooKT0+eTgsT2N0YWdvbk1pbnVzOigpPT4kVSxPY3RhZ29uUGF1c2U6KCk9Pnc4LE9jdGFnb25YOigpPT5rOCxPbWVnYTooKT0+RVUsT3B0aW9uOigpPT5JVSxPcmJpdDooKT0+TlUsT3JpZ2FtaTooKT0+UFUsT3V0ZGVudDooKT0+VTQsUGFja2FnZTooKT0+alUsUGFja2FnZTI6KCk9Pk9VLFBhY2thZ2VDaGVjazooKT0+UlUsUGFja2FnZU1pbnVzOigpPT5GVSxQYWNrYWdlT3BlbjooKT0+QlUsUGFja2FnZVBsdXM6KCk9PkhVLFBhY2thZ2VTZWFyY2g6KCk9PlZVLFBhY2thZ2VYOigpPT5xVSxQYWludEJ1Y2tldDooKT0+VVUsUGFpbnRSb2xsZXI6KCk9PldVLFBhaW50YnJ1c2g6KCk9PkdVLFBhaW50YnJ1c2gyOigpPT5TOCxQYWludGJydXNoVmVydGljYWw6KCk9PlM4LFBhbGV0dGU6KCk9PllVLFBhbG10cmVlOigpPT5YNyxQYW5kYTooKT0+S1UsUGFuZWxCb3R0b206KCk9PlFVLFBhbmVsQm90dG9tQ2xvc2U6KCk9PlpVLFBhbmVsQm90dG9tRGFzaGVkOigpPT5NOCxQYW5lbEJvdHRvbUluYWN0aXZlOigpPT5NOCxQYW5lbEJvdHRvbU9wZW46KCk9PlhVLFBhbmVsTGVmdDooKT0+VDgsUGFuZWxMZWZ0Q2xvc2U6KCk9PkM4LFBhbmVsTGVmdERhc2hlZDooKT0+ejgsUGFuZWxMZWZ0SW5hY3RpdmU6KCk9Pno4LFBhbmVsTGVmdE9wZW46KCk9Pl84LFBhbmVsTGVmdFJpZ2h0RGFzaGVkOigpPT5KVSxQYW5lbFJpZ2h0OigpPT5yVyxQYW5lbFJpZ2h0Q2xvc2U6KCk9PmVXLFBhbmVsUmlnaHREYXNoZWQ6KCk9Pkw4LFBhbmVsUmlnaHRJbmFjdGl2ZTooKT0+TDgsUGFuZWxSaWdodE9wZW46KCk9PnRXLFBhbmVsVG9wOigpPT5uVyxQYW5lbFRvcEJvdHRvbURhc2hlZDooKT0+YVcsUGFuZWxUb3BDbG9zZTooKT0+aVcsUGFuZWxUb3BEYXNoZWQ6KCk9PkQ4LFBhbmVsVG9wSW5hY3RpdmU6KCk9PkQ4LFBhbmVsVG9wT3BlbjooKT0+c1csUGFuZWxzTGVmdEJvdHRvbTooKT0+b1csUGFuZWxzTGVmdFJpZ2h0OigpPT5iNSxQYW5lbHNSaWdodEJvdHRvbTooKT0+bFcsUGFuZWxzVG9wQm90dG9tOigpPT5SOCxQYW5lbHNUb3BMZWZ0OigpPT4kOCxQYXBlcmNsaXA6KCk9PmNXLFBhcmVudGhlc2VzOigpPT5kVyxQYXJraW5nQ2lyY2xlOigpPT5lNSxQYXJraW5nQ2lyY2xlT2ZmOigpPT50NSxQYXJraW5nTWV0ZXI6KCk9PnVXLFBhcmtpbmdTcXVhcmU6KCk9Pkw3LFBhcmtpbmdTcXVhcmVPZmY6KCk9PlQ3LFBhcnR5UG9wcGVyOigpPT5mVyxQYXVzZTooKT0+cFcsUGF1c2VDaXJjbGU6KCk9PmE1LFBhdXNlT2N0YWdvbjooKT0+dzgsUGF3UHJpbnQ6KCk9PmhXLFBjQ2FzZTooKT0+bVcsUGVuOigpPT5FOCxQZW5Cb3g6KCk9PmRjLFBlbkxpbmU6KCk9PkE4LFBlbk9mZjooKT0+Z1csUGVuU3F1YXJlOigpPT5kYyxQZW5Ub29sOigpPT5iVyxQZW5jaWw6KCk9PndXLFBlbmNpbExpbmU6KCk9PnhXLFBlbmNpbE9mZjooKT0+dlcsUGVuY2lsUnVsZXI6KCk9PnlXLFBlbnRhZ29uOigpPT5rVyxQZXJjZW50OigpPT5TVyxQZXJjZW50Q2lyY2xlOigpPT5yNSxQZXJjZW50RGlhbW9uZDooKT0+eTUsUGVyY2VudFNxdWFyZTooKT0+RDcsUGVyc29uU3RhbmRpbmc6KCk9Pk1XLFBoaWxpcHBpbmVQZXNvOigpPT5DVyxQaG9uZTooKT0+QVcsUGhvbmVDYWxsOigpPT56VyxQaG9uZUZvcndhcmRlZDooKT0+X1csUGhvbmVJbmNvbWluZzooKT0+VFcsUGhvbmVNaXNzZWQ6KCk9PkxXLFBob25lT2ZmOigpPT5EVyxQaG9uZU91dGdvaW5nOigpPT4kVyxQaTooKT0+RVcsUGlTcXVhcmU6KCk9PiQ3LFBpYW5vOigpPT5JVyxQaWNrYXhlOigpPT5QVyxQaWN0dXJlSW5QaWN0dXJlOigpPT5PVyxQaWN0dXJlSW5QaWN0dXJlMjooKT0+TlcsUGllQ2hhcnQ6KCk9PkltLFBpZ2d5QmFuazooKT0+UlcsUGlsY3JvdzooKT0+SFcsUGlsY3Jvd0xlZnQ6KCk9PkZXLFBpbGNyb3dSaWdodDooKT0+QlcsUGlsY3Jvd1NxdWFyZTooKT0+STcsUGlsbDooKT0+alcsUGlsbEJvdHRsZTooKT0+cVcsUGluOigpPT5VVyxQaW5PZmY6KCk9PlZXLFBpcGV0dGU6KCk9PldXLFBpenphOigpPT5HVyxQbGFuZTooKT0+WlcsUGxhbmVMYW5kaW5nOigpPT5ZVyxQbGFuZVRha2VvZmY6KCk9PktXLFBsYXk6KCk9PlFXLFBsYXlDaXJjbGU6KCk9Pmk1LFBsYXlTcXVhcmU6KCk9PkE3LFBsdWc6KCk9PnRHLFBsdWcyOigpPT5YVyxQbHVnWmFwOigpPT5JOCxQbHVnWmFwMjooKT0+STgsUGx1czooKT0+SlcsUGx1c0NpcmNsZTooKT0+czUsUGx1c1NxdWFyZTooKT0+RTcsUG9ja2V0S25pZmU6KCk9PmVHLFBvZGNhc3Q6KCk9PnJHLFBvaW50ZXI6KCk9Pm5HLFBvaW50ZXJPZmY6KCk9PmFHLFBvcGNvcm46KCk9PmlHLFBvcHNpY2xlOigpPT5zRyxQb3VuZFN0ZXJsaW5nOigpPT5vRyxQb3dlcjooKT0+bEcsUG93ZXJDaXJjbGU6KCk9Pm41LFBvd2VyT2ZmOigpPT5jRyxQb3dlclNxdWFyZTooKT0+UDcsUHJlc2VudGF0aW9uOigpPT5kRyxQcmludGVyOigpPT5mRyxQcmludGVyQ2hlY2s6KCk9PnVHLFByaW50ZXJYOigpPT5wRyxQcm9qZWN0b3I6KCk9PmhHLFByb3BvcnRpb25zOigpPT5tRyxQdXp6bGU6KCk9PmdHLFB5cmFtaWQ6KCk9PmJHLFFyQ29kZTooKT0+eEcsUXVvdGU6KCk9PnZHLFJhYmJpdDooKT0+eUcsUmFkYXI6KCk9PndHLFJhZGlhdGlvbjooKT0+a0csUmFkaWNhbDooKT0+U0csUmFkaW86KCk9PnpHLFJhZGlvT2ZmOigpPT5NRyxSYWRpb1JlY2VpdmVyOigpPT5DRyxSYWRpb1Rvd2VyOigpPT5fRyxSYWRpdXM6KCk9PlRHLFJhaW5ib3c6KCk9PkxHLFJhdDooKT0+REcsUmF0aW86KCk9PiRHLFJlY2VpcHQ6KCk9PkJHLFJlY2VpcHRDZW50OigpPT5BRyxSZWNlaXB0RXVybzooKT0+RUcsUmVjZWlwdEluZGlhblJ1cGVlOigpPT5JRyxSZWNlaXB0SmFwYW5lc2VZZW46KCk9PlBHLFJlY2VpcHRQb3VuZFN0ZXJsaW5nOigpPT5ORyxSZWNlaXB0UnVzc2lhblJ1YmxlOigpPT5PRyxSZWNlaXB0U3dpc3NGcmFuYzooKT0+UkcsUmVjZWlwdFRleHQ6KCk9PkZHLFJlY2VpcHRUdXJraXNoTGlyYTooKT0+SEcsUmVjdGFuZ2xlQ2lyY2xlOigpPT5xRyxSZWN0YW5nbGVFbGxpcHNpczooKT0+UDgsUmVjdGFuZ2xlR29nZ2xlczooKT0+VkcsUmVjdGFuZ2xlSG9yaXpvbnRhbDooKT0+akcsUmVjdGFuZ2xlVmVydGljYWw6KCk9PlVHLFJlY3ljbGU6KCk9PldHLFJlZG86KCk9PktHLFJlZG8yOigpPT5HRyxSZWRvRG90OigpPT5ZRyxSZWZyZXNoQ2N3OigpPT5RRyxSZWZyZXNoQ2N3RG90OigpPT5aRyxSZWZyZXNoQ3c6KCk9PkpHLFJlZnJlc2hDd09mZjooKT0+WEcsUmVmcmlnZXJhdG9yOigpPT5lWSxSZWdleDooKT0+dFksUmVtb3ZlRm9ybWF0dGluZzooKT0+clksUmVwZWF0OigpPT5zWSxSZXBlYXQxOigpPT5hWSxSZXBlYXQyOigpPT5pWSxSZXBsYWNlOigpPT5vWSxSZXBsYWNlQWxsOigpPT5uWSxSZXBseTooKT0+Y1ksUmVwbHlBbGw6KCk9PmxZLFJld2luZDooKT0+ZFksUmliYm9uOigpPT51WSxSb2FkOigpPT5wWSxSb2NrZXQ6KCk9PmZZLFJvY2tpbmdDaGFpcjooKT0+aFksUm9sbGVyQ29hc3RlcjooKT0+bVksUm9zZTooKT0+Z1ksUm90YXRlM0Q6KCk9Pk44LFJvdGF0ZTNkOigpPT5OOCxSb3RhdGVDY3c6KCk9PnlZLFJvdGF0ZUNjd0tleTooKT0+YlksUm90YXRlQ2N3U3F1YXJlOigpPT54WSxSb3RhdGVDdzooKT0+d1ksUm90YXRlQ3dTcXVhcmU6KCk9PnZZLFJvdXRlOigpPT5TWSxSb3V0ZU9mZjooKT0+a1ksUm91dGVyOigpPT5NWSxSb3dzOigpPT5POCxSb3dzMjooKT0+TzgsUm93czM6KCk9PlI4LFJvd3M0OigpPT5DWSxSc3M6KCk9PnpZLFJ1bGVyOigpPT5UWSxSdWxlckRpbWVuc2lvbkxpbmU6KCk9Pl9ZLFJ1c3NpYW5SdWJsZTooKT0+TFksU2FpbGJvYXQ6KCk9PkRZLFNhbGFkOigpPT4kWSxTYW5kd2ljaDooKT0+QVksU2F0ZWxsaXRlOigpPT5JWSxTYXRlbGxpdGVEaXNoOigpPT5FWSxTYXVkaVJpeWFsOigpPT5QWSxTYXZlOigpPT5SWSxTYXZlQWxsOigpPT5OWSxTYXZlT2ZmOigpPT5PWSxTY2FsZTooKT0+RlksU2NhbGUzRDooKT0+RjgsU2NhbGUzZDooKT0+RjgsU2NhbGluZzooKT0+QlksU2NhbjooKT0+S1ksU2NhbkJhcmNvZGU6KCk9PkhZLFNjYW5FeWU6KCk9PnFZLFNjYW5GYWNlOigpPT5WWSxTY2FuSGVhcnQ6KCk9PmpZLFNjYW5MaW5lOigpPT5VWSxTY2FuUXJDb2RlOigpPT5ZWSxTY2FuU2VhcmNoOigpPT5XWSxTY2FuVGV4dDooKT0+R1ksU2NhdHRlckNoYXJ0OigpPT5QbSxTY2hvb2w6KCk9PlpZLFNjaG9vbDI6KCk9PnQ5LFNjaXNzb3JzOigpPT5KWSxTY2lzc29yc0xpbmVEYXNoZWQ6KCk9PlFZLFNjaXNzb3JzU3F1YXJlOigpPT5ONyxTY2lzc29yc1NxdWFyZURhc2hlZEJvdHRvbTooKT0+czcsU2Nvb3RlcjooKT0+WFksU2NyZWVuU2hhcmU6KCk9PnRLLFNjcmVlblNoYXJlT2ZmOigpPT5lSyxTY3JvbGw6KCk9PmFLLFNjcm9sbFRleHQ6KCk9PnJLLFNlYXJjaDooKT0+Y0ssU2VhcmNoQWxlcnQ6KCk9PmlLLFNlYXJjaENoZWNrOigpPT5zSyxTZWFyY2hDb2RlOigpPT5uSyxTZWFyY2hTbGFzaDooKT0+b0ssU2VhcmNoWDooKT0+bEssU2VjdGlvbjooKT0+ZEssU2VuZDooKT0+cEssU2VuZEhvcml6b25hbDooKT0+QjgsU2VuZEhvcml6b250YWw6KCk9PkI4LFNlbmRUb0JhY2s6KCk9PnVLLFNlcGFyYXRvckhvcml6b250YWw6KCk9PmZLLFNlcGFyYXRvclZlcnRpY2FsOigpPT5oSyxTZXJ2ZXI6KCk9PnhLLFNlcnZlckNvZzooKT0+bUssU2VydmVyQ3Jhc2g6KCk9PmdLLFNlcnZlck9mZjooKT0+YkssU2V0dGluZ3M6KCk9PnlLLFNldHRpbmdzMjooKT0+dkssU2hhcGVzOigpPT5rSyxTaGFyZTooKT0+U0ssU2hhcmUyOigpPT53SyxTaGVldDooKT0+TUssU2hlbGw6KCk9PkNLLFNoZWx2aW5nVW5pdDooKT0+ekssU2hpZWxkOigpPT5SSyxTaGllbGRBbGVydDooKT0+X0ssU2hpZWxkQmFuOigpPT5USyxTaGllbGRDaGVjazooKT0+TEssU2hpZWxkQ2xvc2U6KCk9PnE4LFNoaWVsZENvZzooKT0+JEssU2hpZWxkQ29nQ29ybmVyOigpPT5ESyxTaGllbGRFbGxpcHNpczooKT0+QUssU2hpZWxkSGFsZjooKT0+RUssU2hpZWxkTWludXM6KCk9Pk5LLFNoaWVsZE9mZjooKT0+SUssU2hpZWxkUGx1czooKT0+UEssU2hpZWxkUXVlc3Rpb246KCk9Pkg4LFNoaWVsZFF1ZXN0aW9uTWFyazooKT0+SDgsU2hpZWxkVXNlcjooKT0+T0ssU2hpZWxkWDooKT0+cTgsU2hpcDooKT0+QkssU2hpcFdoZWVsOigpPT5GSyxTaGlydDooKT0+SEssU2hvcHBpbmdCYWc6KCk9PnFLLFNob3BwaW5nQmFza2V0OigpPT5WSyxTaG9wcGluZ0NhcnQ6KCk9PmpLLFNob3ZlbDooKT0+VUssU2hvd2VySGVhZDooKT0+V0ssU2hyZWRkZXI6KCk9PkdLLFNocmltcDooKT0+WUssU2hyaW5rOigpPT5LSyxTaHJ1YjooKT0+WkssU2h1ZmZsZTooKT0+UUssU2lkZWJhcjooKT0+VDgsU2lkZWJhckNsb3NlOigpPT5DOCxTaWRlYmFyT3BlbjooKT0+XzgsU2lnbWE6KCk9PlhLLFNpZ21hU3F1YXJlOigpPT5PNyxTaWduYWw6KCk9PmFaLFNpZ25hbEhpZ2g6KCk9PkpLLFNpZ25hbExvdzooKT0+ZVosU2lnbmFsTWVkaXVtOigpPT50WixTaWduYWxaZXJvOigpPT5yWixTaWduYXR1cmU6KCk9PmlaLFNpZ25wb3N0OigpPT5uWixTaWducG9zdEJpZzooKT0+c1osU2lyZW46KCk9Pm9aLFNraXBCYWNrOigpPT5sWixTa2lwRm9yd2FyZDooKT0+Y1osU2t1bGw6KCk9PnBaLFNsYXNoOigpPT5kWixTbGFzaFNxdWFyZTooKT0+UjcsU2xpY2U6KCk9PnVaLFNsaWRlcnM6KCk9PlY4LFNsaWRlcnNIb3Jpem9udGFsOigpPT5mWixTbGlkZXJzVmVydGljYWw6KCk9PlY4LFNtYXJ0cGhvbmU6KCk9PmdaLFNtYXJ0cGhvbmVDaGFyZ2luZzooKT0+aFosU21hcnRwaG9uZU5mYzooKT0+bVosU21pbGU6KCk9PnhaLFNtaWxlUGx1czooKT0+YlosU25haWw6KCk9PnZaLFNub3dmbGFrZTooKT0+eVosU29hcERpc3BlbnNlckRyb3BsZXQ6KCk9PndaLFNvZmE6KCk9PmtaLFNvbGFyUGFuZWw6KCk9PlNaLFNvcnRBc2M6KCk9PmZtLFNvcnREZXNjOigpPT5kbSxTb3VwOigpPT5NWixTcGFjZTooKT0+Q1osU3BhZGU6KCk9PnpaLFNwYXJrbGU6KCk9Pl9aLFNwYXJrbGVzOigpPT5qOCxTcGVha2VyOigpPT5UWixTcGVlY2g6KCk9PkxaLFNwZWxsQ2hlY2s6KCk9PiRaLFNwZWxsQ2hlY2syOigpPT5EWixTcGxpbmU6KCk9PkVaLFNwbGluZVBvaW50ZXI6KCk9PkFaLFNwbGl0OigpPT5JWixTcGxpdFNxdWFyZUhvcml6b250YWw6KCk9PkY3LFNwbGl0U3F1YXJlVmVydGljYWw6KCk9PkI3LFNwb29sOigpPT5QWixTcG9ydFNob2U6KCk9Pk5aLFNwb3RsaWdodDooKT0+T1osU3ByYXlDYW46KCk9PlJaLFNwcm91dDooKT0+RlosU3F1YXJlOigpPT5YWixTcXVhcmVBY3Rpdml0eTooKT0+VTgsU3F1YXJlQXJyb3dEb3duOigpPT5ZOCxTcXVhcmVBcnJvd0Rvd25MZWZ0OigpPT5XOCxTcXVhcmVBcnJvd0Rvd25SaWdodDooKT0+RzgsU3F1YXJlQXJyb3dMZWZ0OigpPT5LOCxTcXVhcmVBcnJvd091dERvd25MZWZ0OigpPT5aOCxTcXVhcmVBcnJvd091dERvd25SaWdodDooKT0+UTgsU3F1YXJlQXJyb3dPdXRVcExlZnQ6KCk9Plg4LFNxdWFyZUFycm93T3V0VXBSaWdodDooKT0+SjgsU3F1YXJlQXJyb3dSaWdodDooKT0+ZTcsU3F1YXJlQXJyb3dSaWdodEVudGVyOigpPT5CWixTcXVhcmVBcnJvd1JpZ2h0RXhpdDooKT0+SFosU3F1YXJlQXJyb3dVcDooKT0+YTcsU3F1YXJlQXJyb3dVcExlZnQ6KCk9PnQ3LFNxdWFyZUFycm93VXBSaWdodDooKT0+cjcsU3F1YXJlQXN0ZXJpc2s6KCk9Pmk3LFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzOigpPT5zNyxTcXVhcmVDZW50ZXJsaW5lRGFzaGVkSG9yaXpvbnRhbDooKT0+bjcsU3F1YXJlQ2VudGVybGluZURhc2hlZFZlcnRpY2FsOigpPT5vNyxTcXVhcmVDaGFydEdhbnR0OigpPT5HNCxTcXVhcmVDaGVjazooKT0+YzcsU3F1YXJlQ2hlY2tCaWc6KCk9Pmw3LFNxdWFyZUNoZXZyb25Eb3duOigpPT5kNyxTcXVhcmVDaGV2cm9uTGVmdDooKT0+dTcsU3F1YXJlQ2hldnJvblJpZ2h0OigpPT5wNyxTcXVhcmVDaGV2cm9uVXA6KCk9PmY3LFNxdWFyZUNvZGU6KCk9Pmg3LFNxdWFyZURhc2hlZDooKT0+YjcsU3F1YXJlRGFzaGVkQm90dG9tOigpPT5WWixTcXVhcmVEYXNoZWRCb3R0b21Db2RlOigpPT5xWixTcXVhcmVEYXNoZWRLYW5iYW46KCk9Pm03LFNxdWFyZURhc2hlZE1vdXNlUG9pbnRlcjooKT0+ZzcsU3F1YXJlRGFzaGVkVGV4dDooKT0+WTQsU3F1YXJlRGFzaGVkVG9wU29saWQ6KCk9PmpaLFNxdWFyZURpdmlkZTooKT0+eDcsU3F1YXJlRG90OigpPT52NyxTcXVhcmVFcXVhbDooKT0+eTcsU3F1YXJlRnVuY3Rpb246KCk9Pnc3LFNxdWFyZUdhbnR0Q2hhcnQ6KCk9Pkc0LFNxdWFyZUthbmJhbjooKT0+azcsU3F1YXJlTGlicmFyeTooKT0+UzcsU3F1YXJlTTooKT0+TTcsU3F1YXJlTWVudTooKT0+QzcsU3F1YXJlTWludXM6KCk9Pno3LFNxdWFyZU1vdXNlUG9pbnRlcjooKT0+XzcsU3F1YXJlUGFya2luZzooKT0+TDcsU3F1YXJlUGFya2luZ09mZjooKT0+VDcsU3F1YXJlUGF1c2U6KCk9PlVaLFNxdWFyZVBlbjooKT0+ZGMsU3F1YXJlUGVyY2VudDooKT0+RDcsU3F1YXJlUGk6KCk9PiQ3LFNxdWFyZVBpbGNyb3c6KCk9Pkk3LFNxdWFyZVBsYXk6KCk9PkE3LFNxdWFyZVBsdXM6KCk9PkU3LFNxdWFyZVBvd2VyOigpPT5QNyxTcXVhcmVSYWRpY2FsOigpPT5XWixTcXVhcmVSb3VuZENvcm5lcjooKT0+R1osU3F1YXJlU2Npc3NvcnM6KCk9Pk43LFNxdWFyZVNpZ21hOigpPT5PNyxTcXVhcmVTbGFzaDooKT0+UjcsU3F1YXJlU3BsaXRIb3Jpem9udGFsOigpPT5GNyxTcXVhcmVTcGxpdFZlcnRpY2FsOigpPT5CNyxTcXVhcmVTcXVhcmU6KCk9PllaLFNxdWFyZVN0YWNrOigpPT5LWixTcXVhcmVTdGFyOigpPT5aWixTcXVhcmVTdG9wOigpPT5RWixTcXVhcmVUZXJtaW5hbDooKT0+SDcsU3F1YXJlVXNlcjooKT0+ajcsU3F1YXJlVXNlclJvdW5kOigpPT5xNyxTcXVhcmVYOigpPT5WNyxTcXVhcmVzRXhjbHVkZTooKT0+SlosU3F1YXJlc0ludGVyc2VjdDooKT0+ZVEsU3F1YXJlc1N1YnRyYWN0OigpPT50USxTcXVhcmVzVW5pdGU6KCk9PnJRLFNxdWlyY2xlOigpPT5hUSxTcXVpcmNsZURhc2hlZDooKT0+aVEsU3F1aXJyZWw6KCk9PnNRLFN0YW1wOigpPT5uUSxTdGFyOigpPT5jUSxTdGFySGFsZjooKT0+b1EsU3Rhck9mZjooKT0+bFEsU3RhcnM6KCk9Pmo4LFN0ZXBCYWNrOigpPT5kUSxTdGVwRm9yd2FyZDooKT0+dVEsU3RldGhvc2NvcGU6KCk9PnBRLFN0aWNrZXI6KCk9PmZRLFN0aWNreU5vdGU6KCk9Pm1RLFN0b25lOigpPT5oUSxTdG9wQ2lyY2xlOigpPT5sNSxTdG9yZTooKT0+Z1EsU3RyZXRjaEhvcml6b250YWw6KCk9PnhRLFN0cmV0Y2hWZXJ0aWNhbDooKT0+YlEsU3RyaWtldGhyb3VnaDooKT0+dlEsU3Vic2NyaXB0OigpPT55USxTdWJ0aXRsZXM6KCk9PmttLFN1bjooKT0+Q1EsU3VuRGltOigpPT53USxTdW5NZWRpdW06KCk9PmtRLFN1bk1vb246KCk9Pk1RLFN1blNub3c6KCk9PlNRLFN1bnJpc2U6KCk9PnpRLFN1bnNldDooKT0+X1EsU3VwZXJzY3JpcHQ6KCk9PlRRLFN3YXRjaEJvb2s6KCk9PkRRLFN3aXNzRnJhbmM6KCk9PkxRLFN3aXRjaENhbWVyYTooKT0+JFEsU3dvcmQ6KCk9PkFRLFN3b3JkczooKT0+SVEsU3lyaW5nZTooKT0+RVEsVGFibGU6KCk9PnFRLFRhYmxlMjooKT0+UFEsVGFibGVDZWxsc01lcmdlOigpPT5PUSxUYWJsZUNlbGxzU3BsaXQ6KCk9Pk5RLFRhYmxlQ29sdW1uc1NwbGl0OigpPT5SUSxUYWJsZUNvbmZpZzooKT0+cTQsVGFibGVPZkNvbnRlbnRzOigpPT5GUSxUYWJsZVByb3BlcnRpZXM6KCk9PkJRLFRhYmxlUm93c1NwbGl0OigpPT5IUSxUYWJsZXQ6KCk9PmpRLFRhYmxldFNtYXJ0cGhvbmU6KCk9PlZRLFRhYmxldHM6KCk9PlVRLFRhZzooKT0+V1EsVGFnczooKT0+R1EsVGFsbHkxOigpPT5ZUSxUYWxseTI6KCk9PktRLFRhbGx5MzooKT0+WlEsVGFsbHk0OigpPT5RUSxUYWxseTU6KCk9PlhRLFRhbmdlbnQ6KCk9PkpRLFRhcmdldDooKT0+dFgsVGVsZXNjb3BlOigpPT5lWCxUZW50OigpPT5hWCxUZW50VHJlZTooKT0+clgsVGVybWluYWw6KCk9PmlYLFRlcm1pbmFsU3F1YXJlOigpPT5INyxUZXN0VHViZTooKT0+c1gsVGVzdFR1YmUyOigpPT5VNyxUZXN0VHViZURpYWdvbmFsOigpPT5VNyxUZXN0VHViZXM6KCk9Pm5YLFRleHQ6KCk9Pks0LFRleHRBbGlnbkNlbnRlcjooKT0+VzcsVGV4dEFsaWduRW5kOigpPT5HNyxUZXh0QWxpZ25KdXN0aWZ5OigpPT5ZNyxUZXh0QWxpZ25TdGFydDooKT0+SzQsVGV4dEN1cnNvcjooKT0+bFgsVGV4dEN1cnNvcklucHV0OigpPT5vWCxUZXh0SW5pdGlhbDooKT0+SzcsVGV4dFF1b3RlOigpPT5kWCxUZXh0U2VhcmNoOigpPT5jWCxUZXh0U2VsZWN0OigpPT5ZNCxUZXh0U2VsZWN0aW9uOigpPT5ZNCxUZXh0V3JhcDooKT0+WjcsVGhlYXRlcjooKT0+dVgsVGhlcm1vbWV0ZXI6KCk9PmhYLFRoZXJtb21ldGVyU25vd2ZsYWtlOigpPT5wWCxUaGVybW9tZXRlclN1bjooKT0+ZlgsVGh1bWJzRG93bjooKT0+bVgsVGh1bWJzVXA6KCk9PmdYLFRpY2tldDooKT0+U1gsVGlja2V0Q2hlY2s6KCk9PmJYLFRpY2tldE1pbnVzOigpPT54WCxUaWNrZXRQZXJjZW50OigpPT52WCxUaWNrZXRQbHVzOigpPT55WCxUaWNrZXRTbGFzaDooKT0+a1gsVGlja2V0WDooKT0+d1gsVGlja2V0czooKT0+Q1gsVGlja2V0c1BsYW5lOigpPT5NWCxUaW1lcjooKT0+VFgsVGltZXJPZmY6KCk9PnpYLFRpbWVyUmVzZXQ6KCk9Pl9YLFRvZ2dsZUxlZnQ6KCk9PkxYLFRvZ2dsZVJpZ2h0OigpPT5EWCxUb2lsZXQ6KCk9PiRYLFRvb2xDYXNlOigpPT5BWCxUb29sYm94OigpPT5FWCxUb3JuYWRvOigpPT5JWCxUb3J1czooKT0+UFgsVG91Y2hwYWQ6KCk9Pk9YLFRvdWNocGFkT2ZmOigpPT5OWCxUb3dlbFJhY2s6KCk9PlJYLFRvd2VyQ29udHJvbDooKT0+RlgsVG95QnJpY2s6KCk9PkJYLFRyYWN0b3I6KCk9PkhYLFRyYWZmaWNDb25lOigpPT5xWCxUcmFpbjooKT0+UTcsVHJhaW5Gcm9udDooKT0+algsVHJhaW5Gcm9udFR1bm5lbDooKT0+VlgsVHJhaW5UcmFjazooKT0+VVgsVHJhbUZyb250OigpPT5RNyxUcmFuc2dlbmRlcjooKT0+V1gsVHJhc2g6KCk9PkdYLFRyYXNoMjooKT0+WVgsVHJlZURlY2lkdW91czooKT0+S1gsVHJlZVBhbG06KCk9Plg3LFRyZWVQaW5lOigpPT5aWCxUcmVlczooKT0+UVgsVHJlbmRpbmdEb3duOigpPT5YWCxUcmVuZGluZ1VwOigpPT5lSixUcmVuZGluZ1VwRG93bjooKT0+SlgsVHJpYW5nbGU6KCk9PmFKLFRyaWFuZ2xlQWxlcnQ6KCk9Pko3LFRyaWFuZ2xlRGFzaGVkOigpPT50SixUcmlhbmdsZVJpZ2h0OigpPT5ySixUcm9waHk6KCk9PmlKLFRydWNrOigpPT5uSixUcnVja0VsZWN0cmljOigpPT5zSixUdXJraXNoTGlyYTooKT0+b0osVHVybnRhYmxlOigpPT5sSixUdXJ0bGU6KCk9PmNKLFR2OigpPT5wSixUdjI6KCk9PmU5LFR2TWluaW1hbDooKT0+ZTksVHZNaW5pbWFsUGxheTooKT0+ZEosVHlwZTooKT0+ZkosVHlwZU91dGxpbmU6KCk9PnVKLFVtYnJlbGxhOigpPT5oSixVbWJyZWxsYU9mZjooKT0+bUosVW5kZXJsaW5lOigpPT5nSixVbmRvOigpPT52SixVbmRvMjooKT0+YkosVW5kb0RvdDooKT0+eEosVW5mb2xkSG9yaXpvbnRhbDooKT0+eUosVW5mb2xkVmVydGljYWw6KCk9PmtKLFVuZ3JvdXA6KCk9PndKLFVuaXZlcnNpdHk6KCk9PnQ5LFVubGluazooKT0+TUosVW5saW5rMjooKT0+U0osVW5sb2NrOigpPT5oOCxVbmxvY2tLZXlob2xlOigpPT5mOCxVbnBsdWc6KCk9PnpKLFVwbG9hZDooKT0+Q0osVXBsb2FkQ2xvdWQ6KCk9Pm01LFVzYjooKT0+X0osVXNlcjooKT0+SEosVXNlcjI6KCk9Pm85LFVzZXJDaGVjazooKT0+REosVXNlckNoZWNrMjooKT0+cjksVXNlckNpcmNsZTooKT0+ZDUsVXNlckNpcmNsZTI6KCk9PmM1LFVzZXJDb2c6KCk9PlRKLFVzZXJDb2cyOigpPT5hOSxVc2VyS2V5OigpPT5MSixVc2VyTG9jazooKT0+JEosVXNlck1pbnVzOigpPT5BSixVc2VyTWludXMyOigpPT5pOSxVc2VyUGVuOigpPT5FSixVc2VyUGx1czooKT0+SUosVXNlclBsdXMyOigpPT5zOSxVc2VyUm91bmQ6KCk9Pm85LFVzZXJSb3VuZENoZWNrOigpPT5yOSxVc2VyUm91bmRDb2c6KCk9PmE5LFVzZXJSb3VuZEtleTooKT0+UEosVXNlclJvdW5kTWludXM6KCk9Pmk5LFVzZXJSb3VuZFBlbjooKT0+TkosVXNlclJvdW5kUGx1czooKT0+czksVXNlclJvdW5kU2VhcmNoOigpPT5PSixVc2VyUm91bmRYOigpPT5uOSxVc2VyU2VhcmNoOigpPT5SSixVc2VyU3F1YXJlOigpPT5qNyxVc2VyU3F1YXJlMjooKT0+cTcsVXNlclN0YXI6KCk9PkZKLFVzZXJYOigpPT5CSixVc2VyWDI6KCk9Pm45LFVzZXJzOigpPT5xSixVc2VyczI6KCk9Pmw5LFVzZXJzUm91bmQ6KCk9Pmw5LFV0ZW5zaWxzOigpPT5kOSxVdGVuc2lsc0Nyb3NzZWQ6KCk9PmM5LFV0aWxpdHlQb2xlOigpPT5WSixWYW46KCk9PmpKLFZhcmlhYmxlOigpPT5VSixWYXVsdDooKT0+V0osVmVjdG9yU3F1YXJlOigpPT5HSixWZWdhbjooKT0+WUosVmVuZXRpYW5NYXNrOigpPT5LSixWZW51czooKT0+UUosVmVudXNBbmRNYXJzOigpPT5aSixWZXJpZmllZDooKT0+Z20sVmlicmF0ZTooKT0+SkosVmlicmF0ZU9mZjooKT0+WEosVmlkZW86KCk9PnRlZSxWaWRlb09mZjooKT0+ZWVlLFZpZGVvdGFwZTooKT0+cmVlLFZpZXc6KCk9PmFlZSxWb2ljZW1haWw6KCk9PmllZSxWb2xsZXliYWxsOigpPT5zZWUsVm9sdW1lOigpPT5kZWUsVm9sdW1lMTooKT0+bmVlLFZvbHVtZTI6KCk9Pm9lZSxWb2x1bWVPZmY6KCk9PmxlZSxWb2x1bWVYOigpPT5jZWUsVm90ZTooKT0+dWVlLFdhbGxldDooKT0+ZmVlLFdhbGxldDI6KCk9PnU5LFdhbGxldENhcmRzOigpPT5wZWUsV2FsbGV0TWluaW1hbDooKT0+dTksV2FsbHBhcGVyOigpPT5oZWUsV2FuZDooKT0+bWVlLFdhbmQyOigpPT5wOSxXYW5kU3BhcmtsZXM6KCk9PnA5LFdhcmVob3VzZTooKT0+Z2VlLFdhc2hpbmdNYWNoaW5lOigpPT5iZWUsV2F0Y2g6KCk9PnhlZSxXYXZlczooKT0+a2VlLFdhdmVzQXJyb3dEb3duOigpPT52ZWUsV2F2ZXNBcnJvd1VwOigpPT55ZWUsV2F2ZXNMYWRkZXI6KCk9PndlZSxXYXlwb2ludHM6KCk9PlNlZSxXZWJjYW06KCk9Pk1lZSxXZWJob29rOigpPT56ZWUsV2ViaG9va09mZjooKT0+Q2VlLFdlaWdodDooKT0+VGVlLFdlaWdodFRpbGRlOigpPT5fZWUsV2hlYXQ6KCk9PkRlZSxXaGVhdE9mZjooKT0+TGVlLFdob2xlV29yZDooKT0+JGVlLFdpZmk6KCk9PkZlZSxXaWZpQ29nOigpPT5BZWUsV2lmaUhpZ2g6KCk9PkVlZSxXaWZpTG93OigpPT5JZWUsV2lmaU9mZjooKT0+UGVlLFdpZmlQZW46KCk9Pk5lZSxXaWZpU3luYzooKT0+UmVlLFdpZmlaZXJvOigpPT5PZWUsV2luZDooKT0+SGVlLFdpbmRBcnJvd0Rvd246KCk9PkJlZSxXaW5lOigpPT5xZWUsV2luZU9mZjooKT0+VmVlLFdvcmtmbG93OigpPT5qZWUsV29ybTooKT0+VWVlLFdyYXBUZXh0OigpPT5aNyxXcmVuY2g6KCk9PldlZSxYOigpPT5HZWUsWENpcmNsZTooKT0+dTUsWExpbmVUb3A6KCk9PlllZSxYT2N0YWdvbjooKT0+azgsWFNxdWFyZTooKT0+VjcsWmFwOigpPT5aZWUsWmFwT2ZmOigpPT5LZWUsWm9kaWFjQXF1YXJpdXM6KCk9PlFlZSxab2RpYWNBcmllczooKT0+WGVlLFpvZGlhY0NhbmNlcjooKT0+SmVlLFpvZGlhY0NhcHJpY29ybjooKT0+ZXRlLFpvZGlhY0dlbWluaTooKT0+dHRlLFpvZGlhY0xlbzooKT0+cnRlLFpvZGlhY0xpYnJhOigpPT5hdGUsWm9kaWFjT3BoaXVjaHVzOigpPT5pdGUsWm9kaWFjUGlzY2VzOigpPT5zdGUsWm9kaWFjU2FnaXR0YXJpdXM6KCk9Pm50ZSxab2RpYWNTY29ycGlvOigpPT5vdGUsWm9kaWFjVGF1cnVzOigpPT5sdGUsWm9kaWFjVmlyZ286KCk9PmN0ZSxab29tSW46KCk9PmR0ZSxab29tT3V0OigpPT51dGV9KTt2YXIgRlZyPXUoKCk9PntLcWUoKTtacWUoKTtRcWUoKTtYcWUoKTtKcWUoKTtlVmUoKTt0VmUoKTtyVmUoKTthVmUoKTtpVmUoKTtzVmUoKTtuVmUoKTtvVmUoKTtsVmUoKTtjVmUoKTtkVmUoKTt1VmUoKTtwVmUoKTtmVmUoKTtoVmUoKTttVmUoKTtnVmUoKTtiVmUoKTt4VmUoKTt2VmUoKTt5VmUoKTt3VmUoKTtrVmUoKTtTVmUoKTtNVmUoKTtDVmUoKTt6VmUoKTtfVmUoKTtUVmUoKTtMVmUoKTtEVmUoKTskVmUoKTtBVmUoKTtFVmUoKTtJVmUoKTtQVmUoKTtOVmUoKTtPVmUoKTtSVmUoKTtGVmUoKTtCVmUoKTtIVmUoKTtxVmUoKTtWVmUoKTtqVmUoKTtVVmUoKTtXVmUoKTtHVmUoKTtZVmUoKTtLVmUoKTtaVmUoKTtRVmUoKTtYVmUoKTtKVmUoKTtlamUoKTt0amUoKTtyamUoKTthamUoKTtpamUoKTtzamUoKTtuamUoKTtvamUoKTtsamUoKTtjamUoKTtkamUoKTt1amUoKTtwamUoKTtmamUoKTtoamUoKTttamUoKTtnamUoKTtiamUoKTt4amUoKTt2amUoKTt5amUoKTt3amUoKTtramUoKTtTamUoKTtNamUoKTtDamUoKTt6amUoKTtfamUoKTtUamUoKTtMamUoKTtEamUoKTskamUoKTtBamUoKTtFamUoKTtJamUoKTtQamUoKTtOamUoKTtPamUoKTtSamUoKTtGamUoKTtCamUoKTtIamUoKTtxamUoKTtWamUoKTtqamUoKTtVamUoKTtXamUoKTtHamUoKTtZamUoKTtLamUoKTtaamUoKTtRamUoKTtYamUoKTtKamUoKTtlVWUoKTt0VWUoKTtyVWUoKTthVWUoKTtpVWUoKTtzVWUoKTtuVWUoKTtvVWUoKTtsVWUoKTtjVWUoKTtkVWUoKTt1VWUoKTtwVWUoKTtmVWUoKTtoVWUoKTttVWUoKTtnVWUoKTtiVWUoKTt4VWUoKTt2VWUoKTt5VWUoKTt3VWUoKTtrVWUoKTtTVWUoKTtNVWUoKTtDVWUoKTt6VWUoKTtfVWUoKTtUVWUoKTtMVWUoKTtEVWUoKTskVWUoKTtBVWUoKTtFVWUoKTtJVWUoKTtQVWUoKTtOVWUoKTtPVWUoKTtSVWUoKTtGVWUoKTtCVWUoKTtIVWUoKTtxVWUoKTtWVWUoKTtqVWUoKTtVVWUoKTtXVWUoKTtHVWUoKTtZVWUoKTtLVWUoKTtaVWUoKTtRVWUoKTtYVWUoKTtKVWUoKTtlV2UoKTt0V2UoKTtyV2UoKTthV2UoKTtpV2UoKTtzV2UoKTtuV2UoKTtvV2UoKTtsV2UoKTtjV2UoKTtkV2UoKTt1V2UoKTtwV2UoKTtmV2UoKTtoV2UoKTttV2UoKTtnV2UoKTtiV2UoKTt4V2UoKTt2V2UoKTt5V2UoKTt3V2UoKTtrV2UoKTtTV2UoKTtNV2UoKTtDV2UoKTt6V2UoKTtfV2UoKTtUV2UoKTtMV2UoKTtEV2UoKTskV2UoKTtBV2UoKTtFV2UoKTtJV2UoKTtQV2UoKTtOV2UoKTtPV2UoKTtSV2UoKTtGV2UoKTtCV2UoKTtIV2UoKTtxV2UoKTtWV2UoKTtqV2UoKTtVV2UoKTtXV2UoKTtHV2UoKTtZV2UoKTtLV2UoKTtaV2UoKTtRV2UoKTtYV2UoKTtKV2UoKTtlR2UoKTt0R2UoKTtyR2UoKTthR2UoKTtpR2UoKTtzR2UoKTtuR2UoKTtvR2UoKTtsR2UoKTtjR2UoKTtkR2UoKTt1R2UoKTtwR2UoKTtmR2UoKTtoR2UoKTttR2UoKTtnR2UoKTtiR2UoKTt4R2UoKTt2R2UoKTt5R2UoKTt3R2UoKTtrR2UoKTtTR2UoKTtNR2UoKTtDR2UoKTt6R2UoKTtfR2UoKTtUR2UoKTtMR2UoKTtER2UoKTskR2UoKTtBR2UoKTtFR2UoKTtJR2UoKTtQR2UoKTtOR2UoKTtPR2UoKTtSR2UoKTtGR2UoKTtCR2UoKTtIR2UoKTtxR2UoKTtWR2UoKTtqR2UoKTtVR2UoKTtXR2UoKTtHR2UoKTtZR2UoKTtLR2UoKTtaR2UoKTtRR2UoKTtYR2UoKTtKR2UoKTtlWWUoKTt0WWUoKTtyWWUoKTthWWUoKTtpWWUoKTtzWWUoKTtuWWUoKTtvWWUoKTtsWWUoKTtjWWUoKTtkWWUoKTt1WWUoKTtwWWUoKTtmWWUoKTtoWWUoKTttWWUoKTtnWWUoKTtiWWUoKTt4WWUoKTt2WWUoKTt5WWUoKTt3WWUoKTtrWWUoKTtTWWUoKTtNWWUoKTtDWWUoKTt6WWUoKTtfWWUoKTtUWWUoKTtMWWUoKTtEWWUoKTskWWUoKTtBWWUoKTtFWWUoKTtJWWUoKTtQWWUoKTtOWWUoKTtPWWUoKTtSWWUoKTtGWWUoKTtCWWUoKTtIWWUoKTtxWWUoKTtWWWUoKTtqWWUoKTtVWWUoKTtXWWUoKTtHWWUoKTtZWWUoKTtLWWUoKTtaWWUoKTtRWWUoKTtYWWUoKTtKWWUoKTtlS2UoKTt0S2UoKTtyS2UoKTthS2UoKTtpS2UoKTtzS2UoKTtuS2UoKTtvS2UoKTtsS2UoKTtjS2UoKTtkS2UoKTt1S2UoKTtwS2UoKTtmS2UoKTtoS2UoKTttS2UoKTtnS2UoKTtiS2UoKTt4S2UoKTt2S2UoKTt5S2UoKTt3S2UoKTtrS2UoKTtTS2UoKTtNS2UoKTtDS2UoKTt6S2UoKTtfS2UoKTtUS2UoKTtMS2UoKTtES2UoKTskS2UoKTtBS2UoKTtFS2UoKTtJS2UoKTtQS2UoKTtOS2UoKTtPS2UoKTtSS2UoKTtGS2UoKTtCS2UoKTtIS2UoKTtxS2UoKTtWS2UoKTtqS2UoKTtVS2UoKTtXS2UoKTtHS2UoKTtZS2UoKTtLS2UoKTtaS2UoKTtRS2UoKTtYS2UoKTtKS2UoKTtlWmUoKTt0WmUoKTtyWmUoKTthWmUoKTtpWmUoKTtzWmUoKTtuWmUoKTtvWmUoKTtsWmUoKTtjWmUoKTtkWmUoKTt1WmUoKTtwWmUoKTtmWmUoKTtoWmUoKTttWmUoKTtnWmUoKTtiWmUoKTt4WmUoKTt2WmUoKTt5WmUoKTt3WmUoKTtrWmUoKTtTWmUoKTtNWmUoKTtDWmUoKTt6WmUoKTtfWmUoKTtUWmUoKTtMWmUoKTtEWmUoKTskWmUoKTtBWmUoKTtFWmUoKTtJWmUoKTtQWmUoKTtOWmUoKTtPWmUoKTtSWmUoKTtGWmUoKTtCWmUoKTtIWmUoKTtxWmUoKTtWWmUoKTtqWmUoKTtVWmUoKTtXWmUoKTtHWmUoKTtZWmUoKTtLWmUoKTtaWmUoKTtRWmUoKTtYWmUoKTtKWmUoKTtlUWUoKTt0UWUoKTtyUWUoKTthUWUoKTtpUWUoKTtzUWUoKTtuUWUoKTtvUWUoKTtsUWUoKTtjUWUoKTtkUWUoKTt1UWUoKTtwUWUoKTtmUWUoKTtoUWUoKTttUWUoKTtnUWUoKTtiUWUoKTt4UWUoKTt2UWUoKTt5UWUoKTt3UWUoKTtrUWUoKTtTUWUoKTtNUWUoKTtDUWUoKTt6UWUoKTtfUWUoKTtUUWUoKTtMUWUoKTtEUWUoKTskUWUoKTtBUWUoKTtFUWUoKTtJUWUoKTtQUWUoKTtOUWUoKTtPUWUoKTtSUWUoKTtGUWUoKTtCUWUoKTtIUWUoKTtxUWUoKTtWUWUoKTtqUWUoKTtVUWUoKTtXUWUoKTtHUWUoKTtZUWUoKTtLUWUoKTtaUWUoKTtRUWUoKTtYUWUoKTtKUWUoKTtlWGUoKTt0WGUoKTtyWGUoKTthWGUoKTtpWGUoKTtzWGUoKTtuWGUoKTtvWGUoKTtsWGUoKTtjWGUoKTtkWGUoKTt1WGUoKTtwWGUoKTtmWGUoKTtoWGUoKTttWGUoKTtnWGUoKTtiWGUoKTt4WGUoKTt2WGUoKTt5WGUoKTt3WGUoKTtrWGUoKTtTWGUoKTtNWGUoKTtDWGUoKTt6WGUoKTtfWGUoKTtUWGUoKTtMWGUoKTtEWGUoKTskWGUoKTtBWGUoKTtFWGUoKTtJWGUoKTtQWGUoKTtOWGUoKTtPWGUoKTtSWGUoKTtGWGUoKTtCWGUoKTtIWGUoKTtxWGUoKTtWWGUoKTtqWGUoKTtVWGUoKTtXWGUoKTtHWGUoKTtZWGUoKTtLWGUoKTtaWGUoKTtRWGUoKTtYWGUoKTtKWGUoKTtlSmUoKTt0SmUoKTtySmUoKTthSmUoKTtpSmUoKTtzSmUoKTtuSmUoKTtvSmUoKTtsSmUoKTtjSmUoKTtkSmUoKTt1SmUoKTtwSmUoKTtmSmUoKTtoSmUoKTttSmUoKTtnSmUoKTtiSmUoKTt4SmUoKTt2SmUoKTt5SmUoKTt3SmUoKTtrSmUoKTtTSmUoKTtNSmUoKTtDSmUoKTt6SmUoKTtfSmUoKTtUSmUoKTtMSmUoKTtESmUoKTskSmUoKTtBSmUoKTtFSmUoKTtJSmUoKTtQSmUoKTtOSmUoKTtPSmUoKTtSSmUoKTtGSmUoKTtCSmUoKTtISmUoKTtxSmUoKTtWSmUoKTtqSmUoKTtVSmUoKTtXSmUoKTtHSmUoKTtZSmUoKTtLSmUoKTtaSmUoKTtRSmUoKTtYSmUoKTtKSmUoKTtlZXQoKTt0ZXQoKTtyZXQoKTthZXQoKTtpZXQoKTtzZXQoKTtuZXQoKTtvZXQoKTtjZXQoKTtkZXQoKTt1ZXQoKTtwZXQoKTtmZXQoKTtoZXQoKTttZXQoKTtnZXQoKTtiZXQoKTt4ZXQoKTt2ZXQoKTt5ZXQoKTt3ZXQoKTtrZXQoKTtNZXQoKTtDZXQoKTt6ZXQoKTtfZXQoKTtUZXQoKTtMZXQoKTtEZXQoKTskZXQoKTtBZXQoKTtFZXQoKTtJZXQoKTtQZXQoKTtOZXQoKTtPZXQoKTtSZXQoKTtGZXQoKTtCZXQoKTtIZXQoKTtxZXQoKTtWZXQoKTtqZXQoKTtVZXQoKTtXZXQoKTtHZXQoKTtZZXQoKTtLZXQoKTtaZXQoKTtRZXQoKTtYZXQoKTtKZXQoKTtldHQoKTt0dHQoKTtydHQoKTthdHQoKTtpdHQoKTtzdHQoKTtudHQoKTtvdHQoKTtsdHQoKTtjdHQoKTtkdHQoKTt1dHQoKTtwdHQoKTtmdHQoKTtodHQoKTttdHQoKTtndHQoKTtidHQoKTt4dHQoKTt2dHQoKTt5dHQoKTt3dHQoKTtrdHQoKTtTdHQoKTtNdHQoKTtDdHQoKTt6dHQoKTtfdHQoKTtUdHQoKTtMdHQoKTtEdHQoKTskdHQoKTtBdHQoKTtFdHQoKTtJdHQoKTtQdHQoKTtOdHQoKTtPdHQoKTtSdHQoKTtGdHQoKTtCdHQoKTtIdHQoKTtxdHQoKTtWdHQoKTtqdHQoKTtVdHQoKTtXdHQoKTtHdHQoKTtZdHQoKTtLdHQoKTtadHQoKTtRdHQoKTtYdHQoKTtKdHQoKTtlcnQoKTt0cnQoKTtycnQoKTthcnQoKTtpcnQoKTtzcnQoKTtucnQoKTtvcnQoKTtscnQoKTtjcnQoKTtkcnQoKTt1cnQoKTtwcnQoKTtmcnQoKTtocnQoKTttcnQoKTtncnQoKTticnQoKTt4cnQoKTt2cnQoKTt5cnQoKTt3cnQoKTtrcnQoKTtTcnQoKTtNcnQoKTtDcnQoKTt6cnQoKTtfcnQoKTtUcnQoKTtMcnQoKTtEcnQoKTskcnQoKTtBcnQoKTtFcnQoKTtJcnQoKTtQcnQoKTtOcnQoKTtPcnQoKTtScnQoKTtGcnQoKTtCcnQoKTtIcnQoKTtxcnQoKTtWcnQoKTtqcnQoKTtVcnQoKTtXcnQoKTtHcnQoKTtZcnQoKTtLcnQoKTtacnQoKTtRcnQoKTtYcnQoKTtKcnQoKTtlYXQoKTt0YXQoKTtyYXQoKTthYXQoKTtpYXQoKTtzYXQoKTtuYXQoKTtvYXQoKTtsYXQoKTtjYXQoKTtkYXQoKTt1YXQoKTtwYXQoKTtmYXQoKTtoYXQoKTttYXQoKTtnYXQoKTtiYXQoKTt4YXQoKTt2YXQoKTt5YXQoKTt3YXQoKTtrYXQoKTtTYXQoKTtNYXQoKTtDYXQoKTt6YXQoKTtfYXQoKTtUYXQoKTtMYXQoKTtEYXQoKTskYXQoKTtBYXQoKTtFYXQoKTtJYXQoKTtQYXQoKTtOYXQoKTtPYXQoKTtSYXQoKTtGYXQoKTtCYXQoKTtIYXQoKTtxYXQoKTtWYXQoKTtqYXQoKTtVYXQoKTtXYXQoKTtHYXQoKTtZYXQoKTtLYXQoKTtaYXQoKTtRYXQoKTtYYXQoKTtKYXQoKTtlaXQoKTt0aXQoKTtyaXQoKTthaXQoKTtpaXQoKTtzaXQoKTtuaXQoKTtvaXQoKTtsaXQoKTtjaXQoKTtkaXQoKTt1aXQoKTtwaXQoKTtmaXQoKTtoaXQoKTttaXQoKTtnaXQoKTtiaXQoKTt4aXQoKTt2aXQoKTt5aXQoKTt3aXQoKTtraXQoKTtTaXQoKTtNaXQoKTtDaXQoKTt6aXQoKTtfaXQoKTtUaXQoKTtMaXQoKTtEaXQoKTskaXQoKTtBaXQoKTtFaXQoKTtJaXQoKTtQaXQoKTtOaXQoKTtPaXQoKTtSaXQoKTtGaXQoKTtCaXQoKTtIaXQoKTtxaXQoKTtWaXQoKTtqaXQoKTtVaXQoKTtXaXQoKTtHaXQoKTtZaXQoKTtLaXQoKTtaaXQoKTtRaXQoKTtYaXQoKTtKaXQoKTtlc3QoKTt0c3QoKTtyc3QoKTthc3QoKTtpc3QoKTtzc3QoKTtuc3QoKTtvc3QoKTtsc3QoKTtjc3QoKTtkc3QoKTt1c3QoKTtwc3QoKTtmc3QoKTtoc3QoKTttc3QoKTtnc3QoKTtic3QoKTt4c3QoKTt2c3QoKTt5c3QoKTt3c3QoKTtrc3QoKTtTc3QoKTtNc3QoKTtDc3QoKTt6c3QoKTtfc3QoKTtUc3QoKTtMc3QoKTtEc3QoKTskc3QoKTtBc3QoKTtFc3QoKTtJc3QoKTtQc3QoKTtOc3QoKTtPc3QoKTtSc3QoKTtGc3QoKTtCc3QoKTtIc3QoKTtxc3QoKTtWc3QoKTtqc3QoKTtVc3QoKTtXc3QoKTtHc3QoKTtZc3QoKTtLc3QoKTtac3QoKTtRc3QoKTtYc3QoKTtKc3QoKTtlbnQoKTt0bnQoKTtybnQoKTthbnQoKTtpbnQoKTtzbnQoKTtubnQoKTtvbnQoKTtsbnQoKTtjbnQoKTtkbnQoKTt1bnQoKTtwbnQoKTtmbnQoKTtobnQoKTttbnQoKTtnbnQoKTtibnQoKTt4bnQoKTt2bnQoKTt5bnQoKTt3bnQoKTtrbnQoKTtTbnQoKTtNbnQoKTtDbnQoKTt6bnQoKTtfbnQoKTtUbnQoKTtMbnQoKTtEbnQoKTskbnQoKTtBbnQoKTtFbnQoKTtJbnQoKTtQbnQoKTtObnQoKTtPbnQoKTtSbnQoKTtGbnQoKTtCbnQoKTtIbnQoKTtxbnQoKTtWbnQoKTtqbnQoKTtVbnQoKTtXbnQoKTtHbnQoKTtZbnQoKTtLbnQoKTtabnQoKTtRbnQoKTtYbnQoKTtKbnQoKTtlb3QoKTt0b3QoKTtyb3QoKTthb3QoKTtpb3QoKTtzb3QoKTtub3QoKTtvb3QoKTtsb3QoKTtjb3QoKTtkb3QoKTt1b3QoKTtwb3QoKTtmb3QoKTtob3QoKTttb3QoKTtnb3QoKTtib3QoKTt4b3QoKTt2b3QoKTt5b3QoKTt3b3QoKTtrb3QoKTtTb3QoKTtNb3QoKTtDb3QoKTt6b3QoKTtfb3QoKTtUb3QoKTtMb3QoKTtEb3QoKTskb3QoKTtBb3QoKTtFb3QoKTtJb3QoKTtQb3QoKTtOb3QoKTtPb3QoKTtSb3QoKTtGb3QoKTtCb3QoKTtIb3QoKTtxb3QoKTtWb3QoKTtqb3QoKTtVb3QoKTtXb3QoKTtHb3QoKTtZb3QoKTtLb3QoKTtab3QoKTtRb3QoKTtYb3QoKTtKb3QoKTtlMXQoKTt0MXQoKTtyMXQoKTthMXQoKTtpMXQoKTtzMXQoKTtuMXQoKTtvMXQoKTtsMXQoKTtjMXQoKTtkMXQoKTt1MXQoKTtwMXQoKTtmMXQoKTtoMXQoKTttMXQoKTtnMXQoKTtiMXQoKTt4MXQoKTt2MXQoKTt5MXQoKTt3MXQoKTtrMXQoKTtTMXQoKTtNMXQoKTtDMXQoKTt6MXQoKTtfMXQoKTtUMXQoKTtMMXQoKTtEMXQoKTskMXQoKTtBMXQoKTtFMXQoKTtJMXQoKTtQMXQoKTtOMXQoKTtPMXQoKTtSMXQoKTtGMXQoKTtCMXQoKTtIMXQoKTtxMXQoKTtWMXQoKTtqMXQoKTtVMXQoKTtXMXQoKTtHMXQoKTtZMXQoKTtLMXQoKTtaMXQoKTtRMXQoKTtYMXQoKTtKMXQoKTtlbHQoKTt0bHQoKTtybHQoKTthbHQoKTtpbHQoKTtzbHQoKTtubHQoKTtvbHQoKTtsbHQoKTtjbHQoKTtkbHQoKTt1bHQoKTtwbHQoKTtmbHQoKTtobHQoKTttbHQoKTtnbHQoKTtibHQoKTt4bHQoKTt2bHQoKTt5bHQoKTt3bHQoKTtrbHQoKTtTbHQoKTtNbHQoKTtDbHQoKTt6bHQoKTtfbHQoKTtUbHQoKTtMbHQoKTtEbHQoKTskbHQoKTtBbHQoKTtFbHQoKTtJbHQoKTtQbHQoKTtObHQoKTtPbHQoKTtSbHQoKTtGbHQoKTtCbHQoKTtIbHQoKTtxbHQoKTtWbHQoKTtqbHQoKTtVbHQoKTtXbHQoKTtHbHQoKTtZbHQoKTtLbHQoKTtabHQoKTtRbHQoKTtYbHQoKTtKbHQoKTtlMnQoKTt0MnQoKTtyMnQoKTthMnQoKTtpMnQoKTtzMnQoKTtuMnQoKTtvMnQoKTtsMnQoKTtjMnQoKTtkMnQoKTt1MnQoKTtwMnQoKTtmMnQoKTtoMnQoKTttMnQoKTtnMnQoKTtiMnQoKTt4MnQoKTt2MnQoKTt5MnQoKTt3MnQoKTtrMnQoKTtTMnQoKTtNMnQoKTtDMnQoKTt6MnQoKTtfMnQoKTtUMnQoKTtMMnQoKTtEMnQoKTskMnQoKTtBMnQoKTtFMnQoKTtJMnQoKTtQMnQoKTtOMnQoKTtPMnQoKTtSMnQoKTtGMnQoKTtCMnQoKTtIMnQoKTtxMnQoKTtWMnQoKTtqMnQoKTtVMnQoKTtXMnQoKTtHMnQoKTtZMnQoKTtLMnQoKTtaMnQoKTtRMnQoKTtYMnQoKTtKMnQoKTtlY3QoKTt0Y3QoKTtyY3QoKTthY3QoKTtpY3QoKTtzY3QoKTtuY3QoKTtvY3QoKTtsY3QoKTtjY3QoKTtkY3QoKTt1Y3QoKTtwY3QoKTtmY3QoKTtoY3QoKTttY3QoKTtnY3QoKTtiY3QoKTt4Y3QoKTt2Y3QoKTt5Y3QoKTt3Y3QoKTtrY3QoKTtTY3QoKTtNY3QoKTtDY3QoKTt6Y3QoKTtfY3QoKTtUY3QoKTtMY3QoKTtEY3QoKTskY3QoKTtBY3QoKTtFY3QoKTtJY3QoKTtQY3QoKTtOY3QoKTtPY3QoKTtSY3QoKTtGY3QoKTtCY3QoKTtIY3QoKTtxY3QoKTtWY3QoKTtqY3QoKTtVY3QoKTtXY3QoKTtHY3QoKTtZY3QoKTtLY3QoKTtaY3QoKTtRY3QoKTtYY3QoKTtKY3QoKTtlMHQoKTt0MHQoKTtyMHQoKTthMHQoKTtpMHQoKTtzMHQoKTtuMHQoKTtvMHQoKTtsMHQoKTtjMHQoKTtkMHQoKTt1MHQoKTtwMHQoKTtmMHQoKTtoMHQoKTttMHQoKTtnMHQoKTtiMHQoKTt4MHQoKTt2MHQoKTt5MHQoKTt3MHQoKTtrMHQoKTtTMHQoKTtNMHQoKTtDMHQoKTt6MHQoKTtfMHQoKTtUMHQoKTtMMHQoKTtEMHQoKTskMHQoKTtBMHQoKTtFMHQoKTtJMHQoKTtQMHQoKTtOMHQoKTtPMHQoKTtSMHQoKTtGMHQoKTtCMHQoKTtIMHQoKTtxMHQoKTtWMHQoKTtqMHQoKTtVMHQoKTtXMHQoKTtHMHQoKTtZMHQoKTtLMHQoKTtaMHQoKTtRMHQoKTtYMHQoKTtKMHQoKTtlZHQoKTt0ZHQoKTtyZHQoKTthZHQoKTtpZHQoKTtzZHQoKTtuZHQoKTtvZHQoKTtsZHQoKTtjZHQoKTtkZHQoKTt1ZHQoKTtwZHQoKTtmZHQoKTtoZHQoKTttZHQoKTtnZHQoKTtiZHQoKTt4ZHQoKTt2ZHQoKTt5ZHQoKTt3ZHQoKTtrZHQoKTtTZHQoKTtNZHQoKTtDZHQoKTt6ZHQoKTtfZHQoKTtUZHQoKTtMZHQoKTtEZHQoKTskZHQoKTtBZHQoKTtFZHQoKTtJZHQoKTtQZHQoKTtOZHQoKTtPZHQoKTtSZHQoKTtGZHQoKTtCZHQoKTtIZHQoKTtxZHQoKTtWZHQoKTtqZHQoKTtVZHQoKTtXZHQoKTtHZHQoKTtZZHQoKTtLZHQoKTtaZHQoKTtRZHQoKTtYZHQoKTtKZHQoKTtlNHQoKTt0NHQoKTtyNHQoKTthNHQoKTtpNHQoKTtzNHQoKTtuNHQoKTtvNHQoKTtsNHQoKTtjNHQoKTtkNHQoKTt1NHQoKTtwNHQoKTtmNHQoKTtoNHQoKTttNHQoKTtnNHQoKTtiNHQoKTt4NHQoKTt2NHQoKTt5NHQoKTt3NHQoKTtrNHQoKTtTNHQoKTtNNHQoKTtDNHQoKTt6NHQoKTtfNHQoKTtUNHQoKTtMNHQoKTtENHQoKTskNHQoKTtBNHQoKTtFNHQoKTtJNHQoKTtQNHQoKTtONHQoKTtPNHQoKTtSNHQoKTtGNHQoKTtCNHQoKTtINHQoKTtxNHQoKTtWNHQoKTtqNHQoKTtVNHQoKTtXNHQoKTtHNHQoKTtZNHQoKTtLNHQoKTtaNHQoKTtRNHQoKTtYNHQoKTtKNHQoKTtlM3QoKTt0M3QoKTtyM3QoKTthM3QoKTtpM3QoKTtzM3QoKTtuM3QoKTtvM3QoKTtsM3QoKTtjM3QoKTtkM3QoKTt1M3QoKTtwM3QoKTtmM3QoKTtoM3QoKTttM3QoKTtnM3QoKTtiM3QoKTt4M3QoKTt2M3QoKTt5M3QoKTt3M3QoKTtrM3QoKTtTM3QoKTtNM3QoKTtDM3QoKTt6M3QoKTtfM3QoKTtUM3QoKTtMM3QoKTtEM3QoKTskM3QoKTtBM3QoKTtFM3QoKTtJM3QoKTtQM3QoKTtOM3QoKTtPM3QoKTtSM3QoKTtGM3QoKTtCM3QoKTtIM3QoKTtxM3QoKTtWM3QoKTtqM3QoKTtVM3QoKTtXM3QoKTtHM3QoKTtZM3QoKTtLM3QoKTtaM3QoKTtRM3QoKTtYM3QoKTtKM3QoKTtldXQoKTt0dXQoKTtydXQoKTthdXQoKTtpdXQoKTtzdXQoKTtudXQoKTtvdXQoKTtsdXQoKTtjdXQoKTtkdXQoKTt1dXQoKTtwdXQoKTtmdXQoKTtodXQoKTttdXQoKTtndXQoKTtidXQoKTt4dXQoKTt2dXQoKTt5dXQoKTt3dXQoKTtrdXQoKTtTdXQoKTtNdXQoKTtDdXQoKTt6dXQoKTtfdXQoKTtUdXQoKTtMdXQoKTtEdXQoKTskdXQoKTtBdXQoKTtFdXQoKTtJdXQoKTtQdXQoKTtOdXQoKTtPdXQoKTtSdXQoKTtGdXQoKTtCdXQoKTtIdXQoKTtxdXQoKTtWdXQoKTtqdXQoKTtVdXQoKTtXdXQoKTtHdXQoKTtZdXQoKTtLdXQoKTtadXQoKTtRdXQoKTtYdXQoKTtKdXQoKTtlcHQoKTt0cHQoKTtycHQoKTthcHQoKTtpcHQoKTtzcHQoKTtucHQoKTtvcHQoKTtscHQoKTtjcHQoKTtkcHQoKTt1cHQoKTtwcHQoKTtmcHQoKTtocHQoKTttcHQoKTtncHQoKTticHQoKTt4cHQoKTt2cHQoKTt5cHQoKTt3cHQoKTtrcHQoKTtTcHQoKTtNcHQoKTtDcHQoKTt6cHQoKTtfcHQoKTtUcHQoKTtMcHQoKTtEcHQoKTskcHQoKTtBcHQoKTtFcHQoKTtJcHQoKTtQcHQoKTtOcHQoKTtPcHQoKTtScHQoKTtGcHQoKTtCcHQoKTtIcHQoKTtxcHQoKTtWcHQoKTtqcHQoKTtVcHQoKTtXcHQoKTtHcHQoKTtZcHQoKTtLcHQoKTtacHQoKTtRcHQoKTtYcHQoKTtKcHQoKTtlZnQoKTt0ZnQoKTtyZnQoKTthZnQoKTtpZnQoKTtzZnQoKTtuZnQoKTtvZnQoKTtsZnQoKTtjZnQoKTtkZnQoKTt1ZnQoKTtwZnQoKTtmZnQoKTtoZnQoKTttZnQoKTtnZnQoKTtiZnQoKTt4ZnQoKTt2ZnQoKTt5ZnQoKTt3ZnQoKTtrZnQoKTtTZnQoKTtNZnQoKTtDZnQoKTt6ZnQoKTtfZnQoKTtUZnQoKTtMZnQoKTtEZnQoKTskZnQoKTtBZnQoKTtFZnQoKTtJZnQoKTtQZnQoKTtOZnQoKTtPZnQoKTtSZnQoKTtGZnQoKTtCZnQoKTtIZnQoKTtxZnQoKTtWZnQoKTtqZnQoKTtVZnQoKTtXZnQoKTtHZnQoKTtZZnQoKTtLZnQoKTtaZnQoKTtRZnQoKTtYZnQoKTtKZnQoKTtlaHQoKTt0aHQoKTtyaHQoKTthaHQoKTtpaHQoKTtzaHQoKTtuaHQoKTtvaHQoKTtsaHQoKTtjaHQoKTtkaHQoKTt1aHQoKTtwaHQoKTtmaHQoKTtoaHQoKTttaHQoKTtnaHQoKTtiaHQoKTt4aHQoKTt2aHQoKTt5aHQoKTt3aHQoKTtraHQoKTtTaHQoKTtNaHQoKTtDaHQoKTt6aHQoKTtfaHQoKTtUaHQoKTtMaHQoKTtEaHQoKTskaHQoKTtBaHQoKTtFaHQoKTtJaHQoKTtQaHQoKTtOaHQoKTtPaHQoKTtSaHQoKTtGaHQoKTtCaHQoKTtIaHQoKTtxaHQoKTtWaHQoKTtqaHQoKTtVaHQoKTtXaHQoKTtHaHQoKTtZaHQoKTtLaHQoKTtaaHQoKTtRaHQoKTtYaHQoKTtKaHQoKTtlNnQoKTt0NnQoKTtyNnQoKTthNnQoKTtpNnQoKTtzNnQoKTtuNnQoKTtvNnQoKTtsNnQoKTtjNnQoKTtkNnQoKTt1NnQoKTtwNnQoKTtmNnQoKTtoNnQoKTttNnQoKTtnNnQoKTtiNnQoKTt9KTt2YXIgYWQ9e307VmUoYWQse0FBcnJvd0Rvd246KCk9PmxULEFBcnJvd1VwOigpPT5jVCxBTGFyZ2VTbWFsbDooKT0+ZFQsQWNjZXNzaWJpbGl0eTooKT0+dVQsQWN0aXZpdHk6KCk9PnBULEFjdGl2aXR5U3F1YXJlOigpPT5VOCxBaXJWZW50OigpPT5mVCxBaXJwbGF5OigpPT5oVCxBbGFybUNoZWNrOigpPT5ubSxBbGFybUNsb2NrOigpPT5nVCxBbGFybUNsb2NrQ2hlY2s6KCk9Pm5tLEFsYXJtQ2xvY2tNaW51czooKT0+bG0sQWxhcm1DbG9ja09mZjooKT0+bVQsQWxhcm1DbG9ja1BsdXM6KCk9Pm9tLEFsYXJtTWludXM6KCk9PmxtLEFsYXJtUGx1czooKT0+b20sQWxhcm1TbW9rZTooKT0+YlQsQWxidW06KCk9PnhULEFsZXJ0Q2lyY2xlOigpPT5ObSxBbGVydE9jdGFnb246KCk9Pnk4LEFsZXJ0VHJpYW5nbGU6KCk9Pko3LEFsaWduQ2VudGVyOigpPT5XNyxBbGlnbkNlbnRlckhvcml6b250YWw6KCk9PnZULEFsaWduQ2VudGVyVmVydGljYWw6KCk9PnlULEFsaWduRW5kSG9yaXpvbnRhbDooKT0+d1QsQWxpZ25FbmRWZXJ0aWNhbDooKT0+a1QsQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUNlbnRlcjooKT0+U1QsQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZDooKT0+TVQsQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZVN0YXJ0OigpPT5DVCxBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyOigpPT56VCxBbGlnbkhvcml6b250YWxKdXN0aWZ5RW5kOigpPT5fVCxBbGlnbkhvcml6b250YWxKdXN0aWZ5U3RhcnQ6KCk9PlRULEFsaWduSG9yaXpvbnRhbFNwYWNlQXJvdW5kOigpPT5MVCxBbGlnbkhvcml6b250YWxTcGFjZUJldHdlZW46KCk9PkRULEFsaWduSnVzdGlmeTooKT0+WTcsQWxpZ25MZWZ0OigpPT5LNCxBbGlnblJpZ2h0OigpPT5HNyxBbGlnblN0YXJ0SG9yaXpvbnRhbDooKT0+JFQsQWxpZ25TdGFydFZlcnRpY2FsOigpPT5BVCxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlcjooKT0+RVQsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVFbmQ6KCk9PlBULEFsaWduVmVydGljYWxEaXN0cmlidXRlU3RhcnQ6KCk9PklULEFsaWduVmVydGljYWxKdXN0aWZ5Q2VudGVyOigpPT5OVCxBbGlnblZlcnRpY2FsSnVzdGlmeUVuZDooKT0+T1QsQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydDooKT0+UlQsQWxpZ25WZXJ0aWNhbFNwYWNlQXJvdW5kOigpPT5GVCxBbGlnblZlcnRpY2FsU3BhY2VCZXR3ZWVuOigpPT5CVCxBbWJ1bGFuY2U6KCk9PkhULEFtcGVyc2FuZDooKT0+cVQsQW1wZXJzYW5kczooKT0+VlQsQW1waG9yYTooKT0+alQsQW5jaG9yOigpPT5VVCxBbmdyeTooKT0+V1QsQW5ub3llZDooKT0+R1QsQW50ZW5uYTooKT0+S1QsQW52aWw6KCk9PllULEFwZXJ0dXJlOigpPT5aVCxBcHBXaW5kb3c6KCk9PmVMLEFwcFdpbmRvd01hYzooKT0+UVQsQXBwbGU6KCk9PlhULEFyY2hpdmU6KCk9PnJMLEFyY2hpdmVSZXN0b3JlOigpPT5KVCxBcmNoaXZlWDooKT0+dEwsQXJlYUNoYXJ0OigpPT5TbSxBcm1jaGFpcjooKT0+YUwsQXJyb3dCaWdEb3duOigpPT5zTCxBcnJvd0JpZ0Rvd25EYXNoOigpPT5pTCxBcnJvd0JpZ0xlZnQ6KCk9Pm9MLEFycm93QmlnTGVmdERhc2g6KCk9Pm5MLEFycm93QmlnUmlnaHQ6KCk9PmNMLEFycm93QmlnUmlnaHREYXNoOigpPT5sTCxBcnJvd0JpZ1VwOigpPT51TCxBcnJvd0JpZ1VwRGFzaDooKT0+ZEwsQXJyb3dEb3duOigpPT53TCxBcnJvd0Rvd24wMTooKT0+cEwsQXJyb3dEb3duMTA6KCk9PmZMLEFycm93RG93bkFaOigpPT5jbSxBcnJvd0Rvd25BejooKT0+Y20sQXJyb3dEb3duQ2lyY2xlOigpPT5PbSxBcnJvd0Rvd25Gcm9tTGluZTooKT0+aEwsQXJyb3dEb3duTGVmdDooKT0+bUwsQXJyb3dEb3duTGVmdEZyb21DaXJjbGU6KCk9PkZtLEFycm93RG93bkxlZnRGcm9tU3F1YXJlOigpPT5aOCxBcnJvd0Rvd25MZWZ0U3F1YXJlOigpPT5XOCxBcnJvd0Rvd25OYXJyb3dXaWRlOigpPT5nTCxBcnJvd0Rvd25SaWdodDooKT0+YkwsQXJyb3dEb3duUmlnaHRGcm9tQ2lyY2xlOigpPT5CbSxBcnJvd0Rvd25SaWdodEZyb21TcXVhcmU6KCk9PlE4LEFycm93RG93blJpZ2h0U3F1YXJlOigpPT5HOCxBcnJvd0Rvd25TcXVhcmU6KCk9Plk4LEFycm93RG93blRvRG90OigpPT54TCxBcnJvd0Rvd25Ub0xpbmU6KCk9PnZMLEFycm93RG93blVwOigpPT55TCxBcnJvd0Rvd25XaWRlTmFycm93OigpPT5kbSxBcnJvd0Rvd25aQTooKT0+dW0sQXJyb3dEb3duWmE6KCk9PnVtLEFycm93TGVmdDooKT0+Q0wsQXJyb3dMZWZ0Q2lyY2xlOigpPT5SbSxBcnJvd0xlZnRGcm9tTGluZTooKT0+a0wsQXJyb3dMZWZ0UmlnaHQ6KCk9PlNMLEFycm93TGVmdFNxdWFyZTooKT0+SzgsQXJyb3dMZWZ0VG9MaW5lOigpPT5NTCxBcnJvd1JpZ2h0OigpPT5MTCxBcnJvd1JpZ2h0Q2lyY2xlOigpPT5WbSxBcnJvd1JpZ2h0RnJvbUxpbmU6KCk9PnpMLEFycm93UmlnaHRMZWZ0OigpPT5fTCxBcnJvd1JpZ2h0U3F1YXJlOigpPT5lNyxBcnJvd1JpZ2h0VG9MaW5lOigpPT5UTCxBcnJvd1VwOigpPT5GTCxBcnJvd1VwMDE6KCk9PkRMLEFycm93VXAxMDooKT0+JEwsQXJyb3dVcEFaOigpPT5wbSxBcnJvd1VwQXo6KCk9PnBtLEFycm93VXBDaXJjbGU6KCk9PmptLEFycm93VXBEb3duOigpPT5BTCxBcnJvd1VwRnJvbURvdDooKT0+RUwsQXJyb3dVcEZyb21MaW5lOigpPT5JTCxBcnJvd1VwTGVmdDooKT0+UEwsQXJyb3dVcExlZnRGcm9tQ2lyY2xlOigpPT5IbSxBcnJvd1VwTGVmdEZyb21TcXVhcmU6KCk9Plg4LEFycm93VXBMZWZ0U3F1YXJlOigpPT50NyxBcnJvd1VwTmFycm93V2lkZTooKT0+Zm0sQXJyb3dVcFJpZ2h0OigpPT5OTCxBcnJvd1VwUmlnaHRGcm9tQ2lyY2xlOigpPT5xbSxBcnJvd1VwUmlnaHRGcm9tU3F1YXJlOigpPT5KOCxBcnJvd1VwUmlnaHRTcXVhcmU6KCk9PnI3LEFycm93VXBTcXVhcmU6KCk9PmE3LEFycm93VXBUb0xpbmU6KCk9Pk9MLEFycm93VXBXaWRlTmFycm93OigpPT5STCxBcnJvd1VwWkE6KCk9PmhtLEFycm93VXBaYTooKT0+aG0sQXJyb3dzVXBGcm9tTGluZTooKT0+QkwsQXN0ZXJpc2s6KCk9PkhMLEFzdGVyaXNrU3F1YXJlOigpPT5pNyxBdFNpZ246KCk9PnFMLEF0b206KCk9PlZMLEF1ZGlvTGluZXM6KCk9PmpMLEF1ZGlvV2F2ZWZvcm06KCk9PldMLEF3YXJkOigpPT5VTCxBeGU6KCk9PkdMLEF4aXMzRDooKT0+bW0sQXhpczNkOigpPT5tbSxCYWJ5OigpPT5ZTCxCYWNrcGFjazooKT0+S0wsQmFkZ2U6KCk9PnVELEJhZGdlQWxlcnQ6KCk9PlpMLEJhZGdlQ2VudDooKT0+UUwsQmFkZ2VDaGVjazooKT0+Z20sQmFkZ2VEb2xsYXJTaWduOigpPT5YTCxCYWRnZUV1cm86KCk9PkpMLEJhZGdlSGVscDooKT0+Ym0sQmFkZ2VJbmRpYW5SdXBlZTooKT0+ZUQsQmFkZ2VJbmZvOigpPT50RCxCYWRnZUphcGFuZXNlWWVuOigpPT5yRCxCYWRnZU1pbnVzOigpPT5hRCxCYWRnZVBlcmNlbnQ6KCk9PmlELEJhZGdlUGx1czooKT0+c0QsQmFkZ2VQb3VuZFN0ZXJsaW5nOigpPT5uRCxCYWRnZVF1ZXN0aW9uTWFyazooKT0+Ym0sQmFkZ2VSdXNzaWFuUnVibGU6KCk9Pm9ELEJhZGdlU3dpc3NGcmFuYzooKT0+bEQsQmFkZ2VUdXJraXNoTGlyYTooKT0+Y0QsQmFkZ2VYOigpPT5kRCxCYWdnYWdlQ2xhaW06KCk9PnBELEJhbGxvb246KCk9PmZELEJhbjooKT0+aEQsQmFuYW5hOigpPT5tRCxCYW5kYWdlOigpPT5nRCxCYW5rbm90ZTooKT0+eUQsQmFua25vdGVBcnJvd0Rvd246KCk9PmJELEJhbmtub3RlQXJyb3dVcDooKT0+eEQsQmFua25vdGVYOigpPT52RCxCYXJDaGFydDooKT0+QW0sQmFyQ2hhcnQyOigpPT4kbSxCYXJDaGFydDM6KCk9PkxtLEJhckNoYXJ0NDooKT0+VG0sQmFyQ2hhcnRCaWc6KCk9Pl9tLEJhckNoYXJ0SG9yaXpvbnRhbDooKT0+Q20sQmFyQ2hhcnRIb3Jpem9udGFsQmlnOigpPT5NbSxCYXJjb2RlOigpPT53RCxCYXJyZWw6KCk9PmtELEJhc2VsaW5lOigpPT5TRCxCYXRoOigpPT5NRCxCYXR0ZXJ5OigpPT4kRCxCYXR0ZXJ5Q2hhcmdpbmc6KCk9PkNELEJhdHRlcnlGdWxsOigpPT5fRCxCYXR0ZXJ5TG93OigpPT56RCxCYXR0ZXJ5TWVkaXVtOigpPT5URCxCYXR0ZXJ5UGx1czooKT0+TEQsQmF0dGVyeVdhcm5pbmc6KCk9PkRELEJlYWtlcjooKT0+QUQsQmVhbjooKT0+SUQsQmVhbk9mZjooKT0+RUQsQmVkOigpPT5SRCxCZWREb3VibGU6KCk9PlBELEJlZFNpbmdsZTooKT0+TkQsQmVlZjooKT0+RkQsQmVlZk9mZjooKT0+T0QsQmVlcjooKT0+SEQsQmVlck9mZjooKT0+QkQsQmVsbDooKT0+WUQsQmVsbERvdDooKT0+cUQsQmVsbEVsZWN0cmljOigpPT5WRCxCZWxsTWludXM6KCk9PmpELEJlbGxPZmY6KCk9PlVELEJlbGxQbHVzOigpPT5XRCxCZWxsUmluZzooKT0+R0QsQmV0d2Vlbkhvcml6b25hbEVuZDooKT0+eG0sQmV0d2Vlbkhvcml6b25hbFN0YXJ0OigpPT52bSxCZXR3ZWVuSG9yaXpvbnRhbEVuZDooKT0+eG0sQmV0d2Vlbkhvcml6b250YWxTdGFydDooKT0+dm0sQmV0d2VlblZlcnRpY2FsRW5kOigpPT5LRCxCZXR3ZWVuVmVydGljYWxTdGFydDooKT0+WkQsQmljZXBzRmxleGVkOigpPT5RRCxCaWtlOigpPT5YRCxCaW5hcnk6KCk9PkpELEJpbm9jdWxhcnM6KCk9PmUkLEJpb2hhemFyZDooKT0+dCQsQmlyZDooKT0+ciQsQmlyZGhvdXNlOigpPT5hJCxCaXRjb2luOigpPT5pJCxCbGVuZDooKT0+cyQsQmxpbmRzOigpPT5uJCxCbG9ja3M6KCk9Pm8kLEJsdWV0b290aDooKT0+ZCQsQmx1ZXRvb3RoQ29ubmVjdGVkOigpPT5sJCxCbHVldG9vdGhPZmY6KCk9PmMkLEJsdWV0b290aFNlYXJjaGluZzooKT0+cCQsQm9sZDooKT0+dSQsQm9sdDooKT0+ZiQsQm9tYjooKT0+aCQsQm9uZTooKT0+bSQsQm9vazooKT0+RiQsQm9va0E6KCk9PmckLEJvb2tBbGVydDooKT0+YiQsQm9va0F1ZGlvOigpPT54JCxCb29rQ2hlY2s6KCk9PnYkLEJvb2tDb3B5OigpPT55JCxCb29rRGFzaGVkOigpPT55bSxCb29rRG93bjooKT0+dyQsQm9va0hlYWRwaG9uZXM6KCk9PmskLEJvb2tIZWFydDooKT0+UyQsQm9va0ltYWdlOigpPT5NJCxCb29rS2V5OigpPT5DJCxCb29rTG9jazooKT0+eiQsQm9va01hcmtlZDooKT0+VCQsQm9va01pbnVzOigpPT5fJCxCb29rT3BlbjooKT0+JCQsQm9va09wZW5DaGVjazooKT0+TCQsQm9va09wZW5UZXh0OigpPT5EJCxCb29rUGx1czooKT0+QSQsQm9va1NlYXJjaDooKT0+RSQsQm9va1RlbXBsYXRlOigpPT55bSxCb29rVGV4dDooKT0+SSQsQm9va1R5cGU6KCk9PlAkLEJvb2tVcDooKT0+TyQsQm9va1VwMjooKT0+TiQsQm9va1VzZXI6KCk9PlIkLEJvb2tYOigpPT5CJCxCb29rbWFyazooKT0+VyQsQm9va21hcmtDaGVjazooKT0+SCQsQm9va21hcmtNaW51czooKT0+ViQsQm9va21hcmtPZmY6KCk9PnEkLEJvb2ttYXJrUGx1czooKT0+aiQsQm9va21hcmtYOigpPT5VJCxCb29tQm94OigpPT5HJCxCb3Q6KCk9PlokLEJvdE1lc3NhZ2VTcXVhcmU6KCk9PlkkLEJvdE9mZjooKT0+SyQsQm90dGxlV2luZTooKT0+USQsQm93QXJyb3c6KCk9PlgkLEJveDooKT0+SiQsQm94U2VsZWN0OigpPT5iNyxCb3hlczooKT0+ZUEsQnJhY2VzOigpPT53bSxCcmFja2V0czooKT0+dEEsQnJhaW46KCk9PmlBLEJyYWluQ2lyY3VpdDooKT0+ckEsQnJhaW5Db2c6KCk9PmFBLEJyaWNrV2FsbDooKT0+b0EsQnJpY2tXYWxsRmlyZTooKT0+c0EsQnJpY2tXYWxsU2hpZWxkOigpPT5uQSxCcmllZmNhc2U6KCk9PnVBLEJyaWVmY2FzZUJ1c2luZXNzOigpPT5sQSxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9PmNBLEJyaWVmY2FzZU1lZGljYWw6KCk9PmRBLEJyaW5nVG9Gcm9udDooKT0+cEEsQnJ1c2g6KCk9PmhBLEJydXNoQ2xlYW5pbmc6KCk9PmZBLEJ1YmJsZXM6KCk9Pm1BLEJ1ZzooKT0+eEEsQnVnT2ZmOigpPT5nQSxCdWdQbGF5OigpPT5iQSxCdWlsZGluZzooKT0+eUEsQnVpbGRpbmcyOigpPT52QSxCdXM6KCk9PmtBLEJ1c0Zyb250OigpPT53QSxDYWJsZTooKT0+TUEsQ2FibGVDYXI6KCk9PlNBLENha2U6KCk9PnpBLENha2VTbGljZTooKT0+Q0EsQ2FsY3VsYXRvcjooKT0+X0EsQ2FsZW5kYXI6KCk9PllBLENhbGVuZGFyMTooKT0+VEEsQ2FsZW5kYXJBcnJvd0Rvd246KCk9PkxBLENhbGVuZGFyQXJyb3dVcDooKT0+REEsQ2FsZW5kYXJDaGVjazooKT0+QUEsQ2FsZW5kYXJDaGVjazI6KCk9PiRBLENhbGVuZGFyQ2xvY2s6KCk9PkVBLENhbGVuZGFyQ29nOigpPT5JQSxDYWxlbmRhckRheXM6KCk9PlBBLENhbGVuZGFyRm9sZDooKT0+TkEsQ2FsZW5kYXJIZWFydDooKT0+RkEsQ2FsZW5kYXJNaW51czooKT0+UkEsQ2FsZW5kYXJNaW51czI6KCk9Pk9BLENhbGVuZGFyT2ZmOigpPT5CQSxDYWxlbmRhclBsdXM6KCk9PnFBLENhbGVuZGFyUGx1czI6KCk9PkhBLENhbGVuZGFyUmFuZ2U6KCk9PlZBLENhbGVuZGFyU2VhcmNoOigpPT5qQSxDYWxlbmRhclN5bmM6KCk9PlVBLENhbGVuZGFyWDooKT0+R0EsQ2FsZW5kYXJYMjooKT0+V0EsQ2FsZW5kYXJzOigpPT5LQSxDYW1lcmE6KCk9PlpBLENhbWVyYU9mZjooKT0+UUEsQ2FuZGxlc3RpY2tDaGFydDooKT0+em0sQ2FuZHk6KCk9PmVFLENhbmR5Q2FuZTooKT0+WEEsQ2FuZHlPZmY6KCk9PkpBLENhbm5hYmlzOigpPT5yRSxDYW5uYWJpc09mZjooKT0+dEUsQ2FwdGlvbnM6KCk9PmttLENhcHRpb25zT2ZmOigpPT5hRSxDYXI6KCk9PnNFLENhckZyb250OigpPT5pRSxDYXJUYXhpRnJvbnQ6KCk9Pm5FLENhcmF2YW46KCk9Pm9FLENhcmRTaW06KCk9PmxFLENhcnJvdDooKT0+Y0UsQ2FzZUxvd2VyOigpPT5kRSxDYXNlU2Vuc2l0aXZlOigpPT51RSxDYXNlVXBwZXI6KCk9PnBFLENhc3NldHRlVGFwZTooKT0+ZkUsQ2FzdDooKT0+aEUsQ2FzdGxlOigpPT5tRSxDYXQ6KCk9PmdFLENjdHY6KCk9PnhFLENjdHZPZmY6KCk9PmJFLENoYXJ0QXJlYTooKT0+U20sQ2hhcnRCYXI6KCk9PkNtLENoYXJ0QmFyQmlnOigpPT5NbSxDaGFydEJhckRlY3JlYXNpbmc6KCk9PnZFLENoYXJ0QmFySW5jcmVhc2luZzooKT0+eUUsQ2hhcnRCYXJTdGFja2VkOigpPT53RSxDaGFydENhbmRsZXN0aWNrOigpPT56bSxDaGFydENvbHVtbjooKT0+TG0sQ2hhcnRDb2x1bW5CaWc6KCk9Pl9tLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+a0UsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5UbSxDaGFydENvbHVtblN0YWNrZWQ6KCk9PlNFLENoYXJ0R2FudHQ6KCk9Pk1FLENoYXJ0TGluZTooKT0+RG0sQ2hhcnROZXR3b3JrOigpPT5DRSxDaGFydE5vQXhlc0NvbHVtbjooKT0+JG0sQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT56RSxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9PkFtLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9Pl9FLENoYXJ0Tm9BeGVzR2FudHQ6KCk9PkVtLENoYXJ0UGllOigpPT5JbSxDaGFydFNjYXR0ZXI6KCk9PlBtLENoYXJ0U3BsaW5lOigpPT5URSxDaGVjazooKT0+JEUsQ2hlY2tDaGVjazooKT0+TEUsQ2hlY2tDaXJjbGU6KCk9PlVtLENoZWNrQ2lyY2xlMjooKT0+V20sQ2hlY2tMaW5lOigpPT5ERSxDaGVja1NxdWFyZTooKT0+bDcsQ2hlY2tTcXVhcmUyOigpPT5jNyxDaGVmSGF0OigpPT5BRSxDaGVycnk6KCk9PkVFLENoZXNzQmlzaG9wOigpPT5JRSxDaGVzc0tpbmc6KCk9PlBFLENoZXNzS25pZ2h0OigpPT5PRSxDaGVzc1Bhd246KCk9Pk5FLENoZXNzUXVlZW46KCk9PlJFLENoZXNzUm9vazooKT0+RkUsQ2hldnJvbkRvd246KCk9PkJFLENoZXZyb25Eb3duQ2lyY2xlOigpPT5HbSxDaGV2cm9uRG93blNxdWFyZTooKT0+ZDcsQ2hldnJvbkZpcnN0OigpPT5IRSxDaGV2cm9uTGFzdDooKT0+cUUsQ2hldnJvbkxlZnQ6KCk9PlZFLENoZXZyb25MZWZ0Q2lyY2xlOigpPT5ZbSxDaGV2cm9uTGVmdFNxdWFyZTooKT0+dTcsQ2hldnJvblJpZ2h0OigpPT5qRSxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PkttLENoZXZyb25SaWdodFNxdWFyZTooKT0+cDcsQ2hldnJvblVwOigpPT5VRSxDaGV2cm9uVXBDaXJjbGU6KCk9PlptLENoZXZyb25VcFNxdWFyZTooKT0+ZjcsQ2hldnJvbnNEb3duOigpPT5HRSxDaGV2cm9uc0Rvd25VcDooKT0+V0UsQ2hldnJvbnNMZWZ0OigpPT5RRSxDaGV2cm9uc0xlZnRSaWdodDooKT0+S0UsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+WUUsQ2hldnJvbnNSaWdodDooKT0+WEUsQ2hldnJvbnNSaWdodExlZnQ6KCk9PlpFLENoZXZyb25zVXA6KCk9PmVJLENoZXZyb25zVXBEb3duOigpPT5KRSxDaHVyY2g6KCk9PnRJLENpZ2FyZXR0ZTooKT0+YUksQ2lnYXJldHRlT2ZmOigpPT5ySSxDaXJjbGU6KCk9PnhJLENpcmNsZUFsZXJ0OigpPT5ObSxDaXJjbGVBcnJvd0Rvd246KCk9Pk9tLENpcmNsZUFycm93TGVmdDooKT0+Um0sQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+Rm0sQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9PkJtLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5IbSxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PnFtLENpcmNsZUFycm93UmlnaHQ6KCk9PlZtLENpcmNsZUFycm93VXA6KCk9PmptLENpcmNsZUNoZWNrOigpPT5XbSxDaXJjbGVDaGVja0JpZzooKT0+VW0sQ2lyY2xlQ2hldnJvbkRvd246KCk9PkdtLENpcmNsZUNoZXZyb25MZWZ0OigpPT5ZbSxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PkttLENpcmNsZUNoZXZyb25VcDooKT0+Wm0sQ2lyY2xlRGFzaGVkOigpPT5pSSxDaXJjbGVEaXZpZGU6KCk9PlFtLENpcmNsZURvbGxhclNpZ246KCk9PnNJLENpcmNsZURvdDooKT0+b0ksQ2lyY2xlRG90RGFzaGVkOigpPT5uSSxDaXJjbGVFbGxpcHNpczooKT0+bEksQ2lyY2xlRXF1YWw6KCk9PmNJLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9PmRJLENpcmNsZUZhZGluZ1BsdXM6KCk9PnVJLENpcmNsZUdhdWdlOigpPT5YbSxDaXJjbGVIZWxwOigpPT5INCxDaXJjbGVNaW51czooKT0+Sm0sQ2lyY2xlT2ZmOigpPT5wSSxDaXJjbGVQYXJraW5nOigpPT5lNSxDaXJjbGVQYXJraW5nT2ZmOigpPT50NSxDaXJjbGVQYXVzZTooKT0+YTUsQ2lyY2xlUGVyY2VudDooKT0+cjUsQ2lyY2xlUGlsZTooKT0+ZkksQ2lyY2xlUGxheTooKT0+aTUsQ2lyY2xlUGx1czooKT0+czUsQ2lyY2xlUG91bmRTdGVybGluZzooKT0+aEksQ2lyY2xlUG93ZXI6KCk9Pm41LENpcmNsZVF1ZXN0aW9uTWFyazooKT0+SDQsQ2lyY2xlU2xhc2g6KCk9Pm1JLENpcmNsZVNsYXNoMjooKT0+bzUsQ2lyY2xlU2xhc2hlZDooKT0+bzUsQ2lyY2xlU21hbGw6KCk9PmdJLENpcmNsZVN0YXI6KCk9PmJJLENpcmNsZVN0b3A6KCk9Pmw1LENpcmNsZVVzZXI6KCk9PmQ1LENpcmNsZVVzZXJSb3VuZDooKT0+YzUsQ2lyY2xlWDooKT0+dTUsQ2lyY3VpdEJvYXJkOigpPT52SSxDaXRydXM6KCk9PmtJLENsYXBwZXJib2FyZDooKT0+eUksQ2xpcGJvYXJkOigpPT4kSSxDbGlwYm9hcmRDaGVjazooKT0+d0ksQ2xpcGJvYXJkQ2xvY2s6KCk9PlNJLENsaXBib2FyZENvcHk6KCk9Pk1JLENsaXBib2FyZEVkaXQ6KCk9PmY1LENsaXBib2FyZExpc3Q6KCk9PkNJLENsaXBib2FyZE1pbnVzOigpPT56SSxDbGlwYm9hcmRQYXN0ZTooKT0+X0ksQ2xpcGJvYXJkUGVuOigpPT5mNSxDbGlwYm9hcmRQZW5MaW5lOigpPT5wNSxDbGlwYm9hcmRQbHVzOigpPT5USSxDbGlwYm9hcmRTaWduYXR1cmU6KCk9PnA1LENsaXBib2FyZFR5cGU6KCk9PkxJLENsaXBib2FyZFg6KCk9PkRJLENsb2NrOigpPT5aSSxDbG9jazE6KCk9PkFJLENsb2NrMTA6KCk9PkVJLENsb2NrMTE6KCk9PklJLENsb2NrMTI6KCk9PlBJLENsb2NrMjooKT0+TkksQ2xvY2szOigpPT5PSSxDbG9jazQ6KCk9PlJJLENsb2NrNTooKT0+RkksQ2xvY2s2OigpPT5CSSxDbG9jazc6KCk9PkhJLENsb2NrODooKT0+cUksQ2xvY2s5OigpPT5WSSxDbG9ja0FsZXJ0OigpPT5qSSxDbG9ja0Fycm93RG93bjooKT0+VUksQ2xvY2tBcnJvd1VwOigpPT5XSSxDbG9ja0NoZWNrOigpPT5HSSxDbG9ja0ZhZGluZzooKT0+WUksQ2xvY2tQbHVzOigpPT5LSSxDbG9zZWRDYXB0aW9uOigpPT5RSSxDbG91ZDooKT0+Z1AsQ2xvdWRBbGVydDooKT0+WEksQ2xvdWRCYWNrdXA6KCk9PkpJLENsb3VkQ2hlY2s6KCk9PmVQLENsb3VkQ29nOigpPT50UCxDbG91ZERvd25sb2FkOigpPT5oNSxDbG91ZERyaXp6bGU6KCk9PnJQLENsb3VkRm9nOigpPT5hUCxDbG91ZEhhaWw6KCk9PmlQLENsb3VkTGlnaHRuaW5nOigpPT5zUCxDbG91ZE1vb246KCk9Pm9QLENsb3VkTW9vblJhaW46KCk9Pm5QLENsb3VkT2ZmOigpPT5kUCxDbG91ZFJhaW46KCk9PmNQLENsb3VkUmFpbldpbmQ6KCk9PmxQLENsb3VkU25vdzooKT0+dVAsQ2xvdWRTdW46KCk9PmZQLENsb3VkU3VuUmFpbjooKT0+cFAsQ2xvdWRTeW5jOigpPT5oUCxDbG91ZFVwbG9hZDooKT0+bTUsQ2xvdWR5OigpPT5tUCxDbG92ZXI6KCk9PmJQLENsdWI6KCk9PnhQLENvZGU6KCk9PnZQLENvZGUyOigpPT5nNSxDb2RlU3F1YXJlOigpPT5oNyxDb2RlWG1sOigpPT5nNSxDb2ZmZWU6KCk9PnlQLENvZzooKT0+a1AsQ29pbnM6KCk9PndQLENvbHVtbnM6KCk9Png1LENvbHVtbnMyOigpPT54NSxDb2x1bW5zMzooKT0+YjUsQ29sdW1uczNDb2c6KCk9PnE0LENvbHVtbnM0OigpPT5TUCxDb2x1bW5zU2V0dGluZ3M6KCk9PnE0LENvbWJpbmU6KCk9Pk1QLENvbW1hbmQ6KCk9PkNQLENvbXBhc3M6KCk9PnpQLENvbXBvbmVudDooKT0+X1AsQ29tcHV0ZXI6KCk9PlRQLENvbmNpZXJnZUJlbGw6KCk9PkxQLENvbmU6KCk9PkRQLENvbnN0cnVjdGlvbjooKT0+JFAsQ29udGFjdDooKT0+RVAsQ29udGFjdDI6KCk9PnY1LENvbnRhY3RSb3VuZDooKT0+djUsQ29udGFpbmVyOigpPT5BUCxDb250cmFzdDooKT0+SVAsQ29va2llOigpPT5QUCxDb29raW5nUG90OigpPT5OUCxDb3B5OigpPT5xUCxDb3B5Q2hlY2s6KCk9Pk9QLENvcHlNaW51czooKT0+UlAsQ29weVBsdXM6KCk9PkZQLENvcHlTbGFzaDooKT0+QlAsQ29weVg6KCk9PkhQLENvcHlsZWZ0OigpPT5WUCxDb3B5cmlnaHQ6KCk9PmpQLENvcm5lckRvd25MZWZ0OigpPT5VUCxDb3JuZXJEb3duUmlnaHQ6KCk9PldQLENvcm5lckxlZnREb3duOigpPT5HUCxDb3JuZXJMZWZ0VXA6KCk9PllQLENvcm5lclJpZ2h0RG93bjooKT0+S1AsQ29ybmVyUmlnaHRVcDooKT0+WlAsQ29ybmVyVXBMZWZ0OigpPT5RUCxDb3JuZXJVcFJpZ2h0OigpPT5YUCxDcHU6KCk9PkpQLENyZWF0aXZlQ29tbW9uczooKT0+dE4sQ3JlZGl0Q2FyZDooKT0+ZU4sQ3JvaXNzYW50OigpPT5yTixDcm9wOigpPT5hTixDcm9zczooKT0+aU4sQ3Jvc3NoYWlyOigpPT5zTixDcm93bjooKT0+bk4sQ3Vib2lkOigpPT5vTixDdXBTb2RhOigpPT5sTixDdXJseUJyYWNlczooKT0+d20sQ3VycmVuY3k6KCk9PmNOLEN5bGluZGVyOigpPT5kTixEYW06KCk9PnVOLERhdGFiYXNlOigpPT5tTixEYXRhYmFzZUJhY2t1cDooKT0+cE4sRGF0YWJhc2VTZWFyY2g6KCk9PmZOLERhdGFiYXNlWmFwOigpPT5oTixEZWNpbWFsc0Fycm93TGVmdDooKT0+Z04sRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5iTixEZWxldGU6KCk9PnhOLERlc3NlcnQ6KCk9PnZOLERpYW1ldGVyOigpPT55TixEaWFtb25kOigpPT5rTixEaWFtb25kTWludXM6KCk9PndOLERpYW1vbmRQZXJjZW50OigpPT55NSxEaWFtb25kUGx1czooKT0+U04sRGljZTE6KCk9Pk1OLERpY2UyOigpPT5DTixEaWNlMzooKT0+VE4sRGljZTQ6KCk9PnpOLERpY2U1OigpPT5fTixEaWNlNjooKT0+TE4sRGljZXM6KCk9PkROLERpZmY6KCk9PiROLERpc2M6KCk9PlBOLERpc2MyOigpPT5BTixEaXNjMzooKT0+RU4sRGlzY0FsYnVtOigpPT5JTixEaXZpZGU6KCk9Pk5OLERpdmlkZUNpcmNsZTooKT0+UW0sRGl2aWRlU3F1YXJlOigpPT54NyxEbmE6KCk9Pk9OLERuYU9mZjooKT0+Rk4sRG9jazooKT0+Uk4sRG9nOigpPT5CTixEb2xsYXJTaWduOigpPT5ITixEb251dDooKT0+cU4sRG9vckNsb3NlZDooKT0+VU4sRG9vckNsb3NlZExvY2tlZDooKT0+ak4sRG9vck9wZW46KCk9PlZOLERvdDooKT0+V04sRG90U3F1YXJlOigpPT52NyxEb3dubG9hZDooKT0+R04sRG93bmxvYWRDbG91ZDooKT0+aDUsRHJhZnRpbmdDb21wYXNzOigpPT5ZTixEcmFtYTooKT0+S04sRHJpbGw6KCk9PlpOLERyb25lOigpPT5RTixEcm9wbGV0OigpPT5KTixEcm9wbGV0T2ZmOigpPT5YTixEcm9wbGV0czooKT0+ZU8sRHJ1bTooKT0+ck8sRHJ1bXN0aWNrOigpPT50TyxEdW1iYmVsbDooKT0+YU8sRWFyOigpPT5zTyxFYXJPZmY6KCk9PmlPLEVhcnRoOigpPT53NSxFYXJ0aExvY2s6KCk9Pm5PLEVjbGlwc2U6KCk9Pm9PLEVkaXQ6KCk9PmRjLEVkaXQyOigpPT5FOCxFZGl0MzooKT0+QTgsRWdnOigpPT51TyxFZ2dGcmllZDooKT0+Y08sRWdnT2ZmOigpPT5sTyxFbGxpcHNlOigpPT5kTyxFbGxpcHNpczooKT0+UzUsRWxsaXBzaXNWZXJ0aWNhbDooKT0+azUsRXF1YWw6KCk9PmhPLEVxdWFsQXBwcm94aW1hdGVseTooKT0+cE8sRXF1YWxOb3Q6KCk9PmZPLEVxdWFsU3F1YXJlOigpPT55NyxFcmFzZXI6KCk9Pm1PLEV0aGVybmV0UG9ydDooKT0+Z08sRXVybzooKT0+Yk8sRXZDaGFyZ2VyOigpPT54TyxFeHBhbmQ6KCk9PnZPLEV4dGVybmFsTGluazooKT0+eU8sRXllOigpPT5TTyxFeWVDbG9zZWQ6KCk9PmtPLEV5ZU9mZjooKT0+d08sRmFjdG9yeTooKT0+TU8sRmFuOigpPT5DTyxGYXN0Rm9yd2FyZDooKT0+ek8sRmVhdGhlcjooKT0+X08sRmVuY2U6KCk9PlRPLEZlcnJpc1doZWVsOigpPT5MTyxGaWxlOigpPT5pUixGaWxlQXJjaGl2ZTooKT0+RE8sRmlsZUF1ZGlvOigpPT5WNCxGaWxlQXVkaW8yOigpPT5WNCxGaWxlQXhpczNEOigpPT5NNSxGaWxlQXhpczNkOigpPT5NNSxGaWxlQmFkZ2U6KCk9PkM1LEZpbGVCYWRnZTI6KCk9PkM1LEZpbGVCYXJDaGFydDooKT0+TDUsRmlsZUJhckNoYXJ0MjooKT0+VDUsRmlsZUJveDooKT0+JE8sRmlsZUJyYWNlczooKT0+XzUsRmlsZUJyYWNlc0Nvcm5lcjooKT0+ejUsRmlsZUNoYXJ0Q29sdW1uOigpPT5UNSxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5MNSxGaWxlQ2hhcnRMaW5lOigpPT5ENSxGaWxlQ2hhcnRQaWU6KCk9PiQ1LEZpbGVDaGVjazooKT0+QU8sRmlsZUNoZWNrMjooKT0+QTUsRmlsZUNoZWNrQ29ybmVyOigpPT5BNSxGaWxlQ2xvY2s6KCk9PkVPLEZpbGVDb2RlOigpPT5JTyxGaWxlQ29kZTI6KCk9PkU1LEZpbGVDb2RlQ29ybmVyOigpPT5FNSxGaWxlQ29nOigpPT5JNSxGaWxlQ29nMjooKT0+STUsRmlsZURpZmY6KCk9PlBPLEZpbGVEaWdpdDooKT0+Tk8sRmlsZURvd246KCk9Pk9PLEZpbGVFZGl0OigpPT5CNSxGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+UDUsRmlsZUhlYWRwaG9uZTooKT0+VjQsRmlsZUhlYXJ0OigpPT5GTyxGaWxlSW1hZ2U6KCk9PlJPLEZpbGVJbnB1dDooKT0+Qk8sRmlsZUpzb246KCk9Pl81LEZpbGVKc29uMjooKT0+ejUsRmlsZUtleTooKT0+TjUsRmlsZUtleTI6KCk9Pk41LEZpbGVMaW5lQ2hhcnQ6KCk9PkQ1LEZpbGVMb2NrOigpPT5PNSxGaWxlTG9jazI6KCk9Pk81LEZpbGVNaW51czooKT0+cU8sRmlsZU1pbnVzMjooKT0+UjUsRmlsZU1pbnVzQ29ybmVyOigpPT5SNSxGaWxlTXVzaWM6KCk9PkhPLEZpbGVPdXRwdXQ6KCk9PlZPLEZpbGVQZW46KCk9PkI1LEZpbGVQZW5MaW5lOigpPT5GNSxGaWxlUGllQ2hhcnQ6KCk9PiQ1LEZpbGVQbGF5OigpPT5INSxGaWxlUGx1czooKT0+ak8sRmlsZVBsdXMyOigpPT5xNSxGaWxlUGx1c0Nvcm5lcjooKT0+cTUsRmlsZVF1ZXN0aW9uOigpPT5WNSxGaWxlUXVlc3Rpb25NYXJrOigpPT5WNSxGaWxlU2NhbjooKT0+VU8sRmlsZVNlYXJjaDooKT0+V08sRmlsZVNlYXJjaDI6KCk9Pmo1LEZpbGVTZWFyY2hDb3JuZXI6KCk9Pmo1LEZpbGVTaWduYWw6KCk9PlU1LEZpbGVTaWduYXR1cmU6KCk9PkY1LEZpbGVTbGlkZXJzOigpPT5HTyxGaWxlU3ByZWFkc2hlZXQ6KCk9PllPLEZpbGVTdGFjazooKT0+S08sRmlsZVN5bWxpbms6KCk9PlpPLEZpbGVUZXJtaW5hbDooKT0+UU8sRmlsZVRleHQ6KCk9PlhPLEZpbGVUeXBlOigpPT5KTyxGaWxlVHlwZTI6KCk9Plc1LEZpbGVUeXBlQ29ybmVyOigpPT5XNSxGaWxlVXA6KCk9PmVSLEZpbGVVc2VyOigpPT50UixGaWxlVmlkZW86KCk9Pkg1LEZpbGVWaWRlbzI6KCk9Pkc1LEZpbGVWaWRlb0NhbWVyYTooKT0+RzUsRmlsZVZvbHVtZTooKT0+clIsRmlsZVZvbHVtZTI6KCk9PlU1LEZpbGVXYXJuaW5nOigpPT5QNSxGaWxlWDooKT0+YVIsRmlsZVgyOigpPT5ZNSxGaWxlWENvcm5lcjooKT0+WTUsRmlsZXM6KCk9PnNSLEZpbG06KCk9Pm5SLEZpbHRlcjooKT0+SjUsRmlsdGVyWDooKT0+WDUsRmluZ2VycHJpbnQ6KCk9Pks1LEZpbmdlcnByaW50UGF0dGVybjooKT0+SzUsRmlyZUV4dGluZ3Vpc2hlcjooKT0+b1IsRmlzaDooKT0+ZFIsRmlzaE9mZjooKT0+bFIsRmlzaFN5bWJvbDooKT0+Y1IsRmlzaGluZ0hvb2s6KCk9PnVSLEZpc2hpbmdSb2Q6KCk9PnBSLEZsYWc6KCk9Pm1SLEZsYWdPZmY6KCk9PmZSLEZsYWdUcmlhbmdsZUxlZnQ6KCk9PmhSLEZsYWdUcmlhbmdsZVJpZ2h0OigpPT5nUixGbGFtZTooKT0+eFIsRmxhbWVLaW5kbGluZzooKT0+YlIsRmxhc2hsaWdodDooKT0+eVIsRmxhc2hsaWdodE9mZjooKT0+dlIsRmxhc2tDb25pY2FsOigpPT5TUixGbGFza0NvbmljYWxPZmY6KCk9PndSLEZsYXNrUm91bmQ6KCk9PmtSLEZsaXBIb3Jpem9udGFsOigpPT5uNyxGbGlwSG9yaXpvbnRhbDI6KCk9Pk1SLEZsaXBWZXJ0aWNhbDooKT0+bzcsRmxpcFZlcnRpY2FsMjooKT0+Q1IsRmxvd2VyOigpPT5fUixGbG93ZXIyOigpPT56UixGb2N1czooKT0+TFIsRm9sZEhvcml6b250YWw6KCk9PlRSLEZvbGRWZXJ0aWNhbDooKT0+RFIsRm9sZGVyOigpPT5pRixGb2xkZXJBcmNoaXZlOigpPT4kUixGb2xkZXJDaGVjazooKT0+QVIsRm9sZGVyQ2xvY2s6KCk9PkVSLEZvbGRlckNsb3NlZDooKT0+SVIsRm9sZGVyQ29kZTooKT0+UFIsRm9sZGVyQ29nOigpPT5aNSxGb2xkZXJDb2cyOigpPT5aNSxGb2xkZXJEb3Q6KCk9Pk5SLEZvbGRlckRvd246KCk9Pk9SLEZvbGRlckVkaXQ6KCk9PlE1LEZvbGRlckdpdDooKT0+QlIsRm9sZGVyR2l0MjooKT0+UlIsRm9sZGVySGVhcnQ6KCk9PkZSLEZvbGRlcklucHV0OigpPT5IUixGb2xkZXJLYW5iYW46KCk9PnFSLEZvbGRlcktleTooKT0+VlIsRm9sZGVyTG9jazooKT0+alIsRm9sZGVyTWludXM6KCk9PlVSLEZvbGRlck9wZW46KCk9PkdSLEZvbGRlck9wZW5Eb3Q6KCk9PldSLEZvbGRlck91dHB1dDooKT0+WVIsRm9sZGVyUGVuOigpPT5RNSxGb2xkZXJQbHVzOigpPT5LUixGb2xkZXJSb290OigpPT5RUixGb2xkZXJTZWFyY2g6KCk9PlhSLEZvbGRlclNlYXJjaDI6KCk9PlpSLEZvbGRlclN5bWxpbms6KCk9PkpSLEZvbGRlclN5bmM6KCk9PmVGLEZvbGRlclRyZWU6KCk9PnRGLEZvbGRlclVwOigpPT5yRixGb2xkZXJYOigpPT5hRixGb2xkZXJzOigpPT5zRixGb290cHJpbnRzOigpPT5uRixGb3JrS25pZmU6KCk9PmQ5LEZvcmtLbmlmZUNyb3NzZWQ6KCk9PmM5LEZvcmtsaWZ0OigpPT5vRixGb3JtOigpPT5sRixGb3JtSW5wdXQ6KCk9PlA4LEZvcndhcmQ6KCk9PmNGLEZyYW1lOigpPT5kRixGcm93bjooKT0+dUYsRnVlbDooKT0+cEYsRnVsbHNjcmVlbjooKT0+ZkYsRnVuY3Rpb25TcXVhcmU6KCk9Pnc3LEZ1bm5lbDooKT0+SjUsRnVubmVsUGx1czooKT0+aEYsRnVubmVsWDooKT0+WDUsR2FsbGVyeUhvcml6b250YWw6KCk9PmdGLEdhbGxlcnlIb3Jpem9udGFsRW5kOigpPT5tRixHYWxsZXJ5VGh1bWJuYWlsczooKT0+YkYsR2FsbGVyeVZlcnRpY2FsOigpPT52RixHYWxsZXJ5VmVydGljYWxFbmQ6KCk9PnhGLEdhbWVwYWQ6KCk9PmtGLEdhbWVwYWQyOigpPT55RixHYW1lcGFkRGlyZWN0aW9uYWw6KCk9PndGLEdhbnR0Q2hhcnQ6KCk9PkVtLEdhbnR0Q2hhcnRTcXVhcmU6KCk9Pkc0LEdhdWdlOigpPT5TRixHYXVnZUNpcmNsZTooKT0+WG0sR2F2ZWw6KCk9Pk1GLEdlbTooKT0+Q0YsR2VvcmdpYW5MYXJpOigpPT56RixHaG9zdDooKT0+X0YsR2lmdDooKT0+VEYsR2l0QnJhbmNoOigpPT4kRixHaXRCcmFuY2hNaW51czooKT0+TEYsR2l0QnJhbmNoUGx1czooKT0+REYsR2l0Q29tbWl0OigpPT5lOCxHaXRDb21taXRIb3Jpem9udGFsOigpPT5lOCxHaXRDb21taXRWZXJ0aWNhbDooKT0+QUYsR2l0Q29tcGFyZTooKT0+SUYsR2l0Q29tcGFyZUFycm93czooKT0+RUYsR2l0Rm9yazooKT0+UEYsR2l0R3JhcGg6KCk9Pk5GLEdpdE1lcmdlOigpPT5SRixHaXRNZXJnZUNvbmZsaWN0OigpPT5PRixHaXRQdWxsUmVxdWVzdDooKT0+akYsR2l0UHVsbFJlcXVlc3RBcnJvdzooKT0+RkYsR2l0UHVsbFJlcXVlc3RDbG9zZWQ6KCk9PkJGLEdpdFB1bGxSZXF1ZXN0Q3JlYXRlOigpPT5xRixHaXRQdWxsUmVxdWVzdENyZWF0ZUFycm93OigpPT5IRixHaXRQdWxsUmVxdWVzdERyYWZ0OigpPT5WRixHbGFzc1dhdGVyOigpPT5VRixHbGFzc2VzOigpPT5XRixHbG9iZTooKT0+WkYsR2xvYmUyOigpPT53NSxHbG9iZUxvY2s6KCk9PkdGLEdsb2JlT2ZmOigpPT5ZRixHbG9iZVg6KCk9PktGLEdvYWw6KCk9PlFGLEdwdTooKT0+WEYsR3JhYjooKT0+czgsR3JhZHVhdGlvbkNhcDooKT0+SkYsR3JhcGU6KCk9PmVCLEdyaWQ6KCk9Pmo0LEdyaWQyWDI6KCk9Pmk4LEdyaWQyWDJDaGVjazooKT0+dDgsR3JpZDJYMlBsdXM6KCk9PnI4LEdyaWQyWDJYOigpPT5hOCxHcmlkMngyOigpPT5pOCxHcmlkMngyQ2hlY2s6KCk9PnQ4LEdyaWQyeDJQbHVzOigpPT5yOCxHcmlkMngyWDooKT0+YTgsR3JpZDNYMzooKT0+ajQsR3JpZDN4MjooKT0+dEIsR3JpZDN4MzooKT0+ajQsR3JpcDooKT0+aUIsR3JpcEhvcml6b250YWw6KCk9PnJCLEdyaXBWZXJ0aWNhbDooKT0+YUIsR3JvdXA6KCk9PnNCLEd1aXRhcjooKT0+bkIsSGFtOigpPT5vQixIYW1idXJnZXI6KCk9PmxCLEhhbW1lcjooKT0+Y0IsSGFuZDooKT0+bUIsSGFuZENvaW5zOigpPT5kQixIYW5kRmlzdDooKT0+dUIsSGFuZEdyYWI6KCk9PnM4LEhhbmRIZWFydDooKT0+cEIsSGFuZEhlbHBpbmc6KCk9Pm44LEhhbmRNZXRhbDooKT0+ZkIsSGFuZFBsYXR0ZXI6KCk9PmhCLEhhbmRiYWc6KCk9PmdCLEhhbmRzaGFrZTooKT0+YkIsSGFyZERyaXZlOigpPT55QixIYXJkRHJpdmVEb3dubG9hZDooKT0+eEIsSGFyZERyaXZlVXBsb2FkOigpPT52QixIYXJkSGF0OigpPT53QixIYXNoOigpPT5rQixIYXRHbGFzc2VzOigpPT5TQixIYXplOigpPT5NQixIZDooKT0+Q0IsSGRtaVBvcnQ6KCk9PnpCLEhlYWRpbmc6KCk9PkVCLEhlYWRpbmcxOigpPT5MQixIZWFkaW5nMjooKT0+X0IsSGVhZGluZzM6KCk9PlRCLEhlYWRpbmc0OigpPT5EQixIZWFkaW5nNTooKT0+JEIsSGVhZGluZzY6KCk9PkFCLEhlYWRwaG9uZU9mZjooKT0+SUIsSGVhZHBob25lczooKT0+UEIsSGVhZHNldDooKT0+TkIsSGVhcnQ6KCk9PnFCLEhlYXJ0Q3JhY2s6KCk9Pk9CLEhlYXJ0SGFuZHNoYWtlOigpPT5SQixIZWFydE1pbnVzOigpPT5GQixIZWFydE9mZjooKT0+QkIsSGVhcnRQbHVzOigpPT5IQixIZWFydFB1bHNlOigpPT5WQixIZWF0ZXI6KCk9PmpCLEhlbGljb3B0ZXI6KCk9PldCLEhlbHBDaXJjbGU6KCk9Pkg0LEhlbHBpbmdIYW5kOigpPT5uOCxIZXhhZ29uOigpPT5VQixIaWdobGlnaHRlcjooKT0+R0IsSGlzdG9yeTooKT0+WUIsSG9tZTooKT0+bzgsSG9wOigpPT5aQixIb3BPZmY6KCk9PktCLEhvc3BpdGFsOigpPT5RQixIb3RlbDooKT0+WEIsSG91cmdsYXNzOigpPT5KQixIb3VzZTooKT0+bzgsSG91c2VIZWFydDooKT0+ZUgsSG91c2VQbHVnOigpPT50SCxIb3VzZVBsdXM6KCk9PnJILEhvdXNlV2lmaTooKT0+YUgsSWNlQ3JlYW06KCk9PmM4LEljZUNyZWFtMjooKT0+bDgsSWNlQ3JlYW1Cb3dsOigpPT5sOCxJY2VDcmVhbUNvbmU6KCk9PmM4LElkQ2FyZDooKT0+c0gsSWRDYXJkTGFueWFyZDooKT0+aUgsSW1hZ2U6KCk9PmZILEltYWdlRG93bjooKT0+bkgsSW1hZ2VNaW51czooKT0+b0gsSW1hZ2VPZmY6KCk9PmxILEltYWdlUGxheTooKT0+Y0gsSW1hZ2VQbHVzOigpPT5kSCxJbWFnZVVwOigpPT51SCxJbWFnZVVwc2NhbGU6KCk9PnBILEltYWdlczooKT0+aEgsSW1wb3J0OigpPT5tSCxJbmJveDooKT0+Z0gsSW5kZW50OigpPT5XNCxJbmRlbnREZWNyZWFzZTooKT0+VTQsSW5kZW50SW5jcmVhc2U6KCk9Plc0LEluZGlhblJ1cGVlOigpPT5iSCxJbmZpbml0eTooKT0+eEgsSW5mbzooKT0+dkgsSW5zcGVjdDooKT0+XzcsSW5zcGVjdGlvblBhbmVsOigpPT55SCxJdGFsaWM6KCk9PndILEl0ZXJhdGlvbkNjdzooKT0+a0gsSXRlcmF0aW9uQ3c6KCk9PlNILEphcGFuZXNlWWVuOigpPT5NSCxKb3lzdGljazooKT0+Q0gsS2FuYmFuOigpPT56SCxLYW5iYW5TcXVhcmU6KCk9Pms3LEthbmJhblNxdWFyZURhc2hlZDooKT0+bTcsS2F5YWs6KCk9Pl9ILEtleTooKT0+JEgsS2V5Um91bmQ6KCk9PlRILEtleVNxdWFyZTooKT0+TEgsS2V5Ym9hcmQ6KCk9PkVILEtleWJvYXJkTXVzaWM6KCk9PkRILEtleWJvYXJkT2ZmOigpPT5BSCxMYW1wOigpPT5GSCxMYW1wQ2VpbGluZzooKT0+SUgsTGFtcERlc2s6KCk9PlBILExhbXBGbG9vcjooKT0+TkgsTGFtcFdhbGxEb3duOigpPT5PSCxMYW1wV2FsbFVwOigpPT5SSCxMYW5kUGxvdDooKT0+QkgsTGFuZG1hcms6KCk9PkhILExhbmd1YWdlczooKT0+cUgsTGFwdG9wOigpPT5qSCxMYXB0b3AyOigpPT5kOCxMYXB0b3BNaW5pbWFsOigpPT5kOCxMYXB0b3BNaW5pbWFsQ2hlY2s6KCk9PlZILExhc3NvOigpPT5XSCxMYXNzb1NlbGVjdDooKT0+VUgsTGF1Z2g6KCk9PkdILExheWVyczooKT0+dTgsTGF5ZXJzMjooKT0+WUgsTGF5ZXJzMzooKT0+dTgsTGF5ZXJzUGx1czooKT0+S0gsTGF5b3V0OigpPT4kOCxMYXlvdXREYXNoYm9hcmQ6KCk9PlhILExheW91dEdyaWQ6KCk9PlpILExheW91dExpc3Q6KCk9PlFILExheW91dFBhbmVsTGVmdDooKT0+SkgsTGF5b3V0UGFuZWxUb3A6KCk9PmVxLExheW91dFRlbXBsYXRlOigpPT50cSxMZWFmOigpPT5hcSxMZWFmeUdyZWVuOigpPT5ycSxMZWN0ZXJuOigpPT5pcSxMZW5zQ29uY2F2ZTooKT0+c3EsTGVuc0NvbnZleDooKT0+bnEsTGV0dGVyVGV4dDooKT0+SzcsTGlicmFyeTooKT0+Y3EsTGlicmFyeUJpZzooKT0+b3EsTGlicmFyeVNxdWFyZTooKT0+UzcsTGlmZUJ1b3k6KCk9PmxxLExpZ2F0dXJlOigpPT5kcSxMaWdodGJ1bGI6KCk9PnBxLExpZ2h0YnVsYk9mZjooKT0+dXEsTGluZUNoYXJ0OigpPT5EbSxMaW5lRG90UmlnaHRIb3Jpem9udGFsOigpPT5mcSxMaW5lU3F1aWdnbGU6KCk9PmhxLExpbmVTdHlsZTooKT0+bXEsTGluazooKT0+eHEsTGluazI6KCk9PmJxLExpbmsyT2ZmOigpPT5ncSxMaXN0OigpPT5PcSxMaXN0Q2hlY2s6KCk9PnZxLExpc3RDaGVja3M6KCk9PnlxLExpc3RDaGV2cm9uc0Rvd25VcDooKT0+d3EsTGlzdENoZXZyb25zVXBEb3duOigpPT5rcSxMaXN0Q29sbGFwc2U6KCk9Pk1xLExpc3RFbmQ6KCk9PlNxLExpc3RGaWx0ZXI6KCk9PnpxLExpc3RGaWx0ZXJQbHVzOigpPT5DcSxMaXN0SW5kZW50RGVjcmVhc2U6KCk9PlU0LExpc3RJbmRlbnRJbmNyZWFzZTooKT0+VzQsTGlzdE1pbnVzOigpPT5fcSxMaXN0TXVzaWM6KCk9PlRxLExpc3RPcmRlcmVkOigpPT5McSxMaXN0UGx1czooKT0+RHEsTGlzdFJlc3RhcnQ6KCk9PiRxLExpc3RTdGFydDooKT0+QXEsTGlzdFRvZG86KCk9PkVxLExpc3RUcmVlOigpPT5JcSxMaXN0VmlkZW86KCk9Pk5xLExpc3RYOigpPT5QcSxMb2FkZXI6KCk9PkZxLExvYWRlcjI6KCk9PnA4LExvYWRlckNpcmNsZTooKT0+cDgsTG9hZGVyUGlud2hlZWw6KCk9PlJxLExvY2F0ZTooKT0+cXEsTG9jYXRlRml4ZWQ6KCk9PkJxLExvY2F0ZU9mZjooKT0+SHEsTG9jYXRpb25FZGl0OigpPT5nOCxMb2NrOigpPT5qcSxMb2NrS2V5aG9sZTooKT0+VnEsTG9ja0tleWhvbGVPcGVuOigpPT5mOCxMb2NrT3BlbjooKT0+aDgsTG9nSW46KCk9PlVxLExvZ091dDooKT0+WXEsTG9nczooKT0+V3EsTG9sbGlwb3A6KCk9PktxLEx1Z2dhZ2U6KCk9PkdxLE1TcXVhcmU6KCk9Pk03LE1hZ25ldDooKT0+UXEsTWFpbDooKT0+YVYsTWFpbENoZWNrOigpPT5acSxNYWlsTWludXM6KCk9PlhxLE1haWxPcGVuOigpPT5lVixNYWlsUGx1czooKT0+SnEsTWFpbFF1ZXN0aW9uOigpPT5tOCxNYWlsUXVlc3Rpb25NYXJrOigpPT5tOCxNYWlsU2VhcmNoOigpPT50VixNYWlsV2FybmluZzooKT0+clYsTWFpbFg6KCk9PmlWLE1haWxib3g6KCk9PnNWLE1haWxzOigpPT5uVixNYXA6KCk9PmtWLE1hcE1pbnVzOigpPT5vVixNYXBQaW46KCk9PnZWLE1hcFBpbkNoZWNrOigpPT5jVixNYXBQaW5DaGVja0luc2lkZTooKT0+bFYsTWFwUGluSG91c2U6KCk9PmRWLE1hcFBpbk1pbnVzOigpPT5wVixNYXBQaW5NaW51c0luc2lkZTooKT0+dVYsTWFwUGluT2ZmOigpPT5mVixNYXBQaW5QZW46KCk9Pmc4LE1hcFBpblBsdXM6KCk9Pm1WLE1hcFBpblBsdXNJbnNpZGU6KCk9PmhWLE1hcFBpblNlYXJjaDooKT0+Z1YsTWFwUGluWDooKT0+eFYsTWFwUGluWEluc2lkZTooKT0+YlYsTWFwUGlubmVkOigpPT55VixNYXBQbHVzOigpPT53VixNYXJzOigpPT5NVixNYXJzU3Ryb2tlOigpPT5TVixNYXJ0aW5pOigpPT5DVixNYXhpbWl6ZTooKT0+X1YsTWF4aW1pemUyOigpPT56VixNZWRhbDooKT0+VFYsTWVnYXBob25lOigpPT5EVixNZWdhcGhvbmVPZmY6KCk9PkxWLE1laDooKT0+JFYsTWVtb3J5U3RpY2s6KCk9PkFWLE1lbnU6KCk9PkVWLE1lbnVTcXVhcmU6KCk9PkM3LE1lcmdlOigpPT5JVixNZXNzYWdlQ2lyY2xlOigpPT5VVixNZXNzYWdlQ2lyY2xlQ2hlY2s6KCk9PlBWLE1lc3NhZ2VDaXJjbGVDb2RlOigpPT5OVixNZXNzYWdlQ2lyY2xlRGFzaGVkOigpPT5PVixNZXNzYWdlQ2lyY2xlSGVhcnQ6KCk9PlJWLE1lc3NhZ2VDaXJjbGVNb3JlOigpPT5GVixNZXNzYWdlQ2lyY2xlT2ZmOigpPT5CVixNZXNzYWdlQ2lyY2xlUGx1czooKT0+SFYsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uOigpPT5iOCxNZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrOigpPT5iOCxNZXNzYWdlQ2lyY2xlUmVwbHk6KCk9PnFWLE1lc3NhZ2VDaXJjbGVXYXJuaW5nOigpPT5WVixNZXNzYWdlQ2lyY2xlWDooKT0+alYsTWVzc2FnZVNxdWFyZTooKT0+Y2osTWVzc2FnZVNxdWFyZUNoZWNrOigpPT5XVixNZXNzYWdlU3F1YXJlQ29kZTooKT0+R1YsTWVzc2FnZVNxdWFyZURhc2hlZDooKT0+WVYsTWVzc2FnZVNxdWFyZURpZmY6KCk9PktWLE1lc3NhZ2VTcXVhcmVEb3Q6KCk9PlpWLE1lc3NhZ2VTcXVhcmVIZWFydDooKT0+UVYsTWVzc2FnZVNxdWFyZUxvY2s6KCk9PlhWLE1lc3NhZ2VTcXVhcmVNb3JlOigpPT5KVixNZXNzYWdlU3F1YXJlT2ZmOigpPT5laixNZXNzYWdlU3F1YXJlUGx1czooKT0+dGosTWVzc2FnZVNxdWFyZVF1b3RlOigpPT5yaixNZXNzYWdlU3F1YXJlUmVwbHk6KCk9PmFqLE1lc3NhZ2VTcXVhcmVTaGFyZTooKT0+aWosTWVzc2FnZVNxdWFyZVRleHQ6KCk9PnNqLE1lc3NhZ2VTcXVhcmVXYXJuaW5nOigpPT5uaixNZXNzYWdlU3F1YXJlWDooKT0+b2osTWVzc2FnZXNTcXVhcmU6KCk9PmxqLE1ldHJvbm9tZTooKT0+ZGosTWljOigpPT5waixNaWMyOigpPT54OCxNaWNPZmY6KCk9PnVqLE1pY1ZvY2FsOigpPT54OCxNaWNyb2NoaXA6KCk9PmZqLE1pY3Jvc2NvcGU6KCk9PmhqLE1pY3Jvd2F2ZTooKT0+bWosTWlsZXN0b25lOigpPT5naixNaWxrOigpPT54aixNaWxrT2ZmOigpPT5iaixNaW5pbWl6ZTooKT0+eWosTWluaW1pemUyOigpPT52aixNaW51czooKT0+d2osTWludXNDaXJjbGU6KCk9PkptLE1pbnVzU3F1YXJlOigpPT56NyxNaXJyb3JSZWN0YW5ndWxhcjooKT0+a2osTWlycm9yUm91bmQ6KCk9PlNqLE1vbml0b3I6KCk9Pk9qLE1vbml0b3JDaGVjazooKT0+TWosTW9uaXRvckNsb3VkOigpPT5DaixNb25pdG9yQ29nOigpPT56aixNb25pdG9yRG90OigpPT5faixNb25pdG9yRG93bjooKT0+VGosTW9uaXRvck9mZjooKT0+TGosTW9uaXRvclBhdXNlOigpPT5EaixNb25pdG9yUGxheTooKT0+JGosTW9uaXRvclNtYXJ0cGhvbmU6KCk9PkFqLE1vbml0b3JTcGVha2VyOigpPT5FaixNb25pdG9yU3RvcDooKT0+SWosTW9uaXRvclVwOigpPT5QaixNb25pdG9yWDooKT0+TmosTW9vbjooKT0+RmosTW9vblN0YXI6KCk9PlJqLE1vcmVIb3Jpem9udGFsOigpPT5TNSxNb3JlVmVydGljYWw6KCk9Pms1LE1vdG9yYmlrZTooKT0+QmosTW91bnRhaW46KCk9PnFqLE1vdW50YWluU25vdzooKT0+SGosTW91c2U6KCk9PlFqLE1vdXNlTGVmdDooKT0+VmosTW91c2VPZmY6KCk9PmpqLE1vdXNlUG9pbnRlcjooKT0+WmosTW91c2VQb2ludGVyMjooKT0+R2osTW91c2VQb2ludGVyMk9mZjooKT0+VWosTW91c2VQb2ludGVyQmFuOigpPT5XaixNb3VzZVBvaW50ZXJDbGljazooKT0+WWosTW91c2VQb2ludGVyU3F1YXJlRGFzaGVkOigpPT5nNyxNb3VzZVJpZ2h0OigpPT5LaixNb3ZlOigpPT5kVSxNb3ZlM0Q6KCk9PnY4LE1vdmUzZDooKT0+djgsTW92ZURpYWdvbmFsOigpPT5YaixNb3ZlRGlhZ29uYWwyOigpPT5KaixNb3ZlRG93bjooKT0+clUsTW92ZURvd25MZWZ0OigpPT5lVSxNb3ZlRG93blJpZ2h0OigpPT50VSxNb3ZlSG9yaXpvbnRhbDooKT0+c1UsTW92ZUxlZnQ6KCk9PmFVLE1vdmVSaWdodDooKT0+aVUsTW92ZVVwOigpPT5sVSxNb3ZlVXBMZWZ0OigpPT5uVSxNb3ZlVXBSaWdodDooKT0+b1UsTW92ZVZlcnRpY2FsOigpPT5jVSxNdXNpYzooKT0+aFUsTXVzaWMyOigpPT51VSxNdXNpYzM6KCk9PnBVLE11c2ljNDooKT0+ZlUsTmF2aWdhdGlvbjooKT0+eFUsTmF2aWdhdGlvbjI6KCk9PmdVLE5hdmlnYXRpb24yT2ZmOigpPT5tVSxOYXZpZ2F0aW9uT2ZmOigpPT5iVSxOZXR3b3JrOigpPT52VSxOZXdzcGFwZXI6KCk9PnlVLE5mYzooKT0+a1UsTm9uQmluYXJ5OigpPT53VSxOb3RlYm9vazooKT0+elUsTm90ZWJvb2tQZW46KCk9PlNVLE5vdGVib29rVGFiczooKT0+TVUsTm90ZWJvb2tUZXh0OigpPT5DVSxOb3RlcGFkVGV4dDooKT0+VFUsTm90ZXBhZFRleHREYXNoZWQ6KCk9Pl9VLE51dDooKT0+RFUsTnV0T2ZmOigpPT5MVSxPY3RhZ29uOigpPT5BVSxPY3RhZ29uQWxlcnQ6KCk9Pnk4LE9jdGFnb25NaW51czooKT0+JFUsT2N0YWdvblBhdXNlOigpPT53OCxPY3RhZ29uWDooKT0+azgsT21lZ2E6KCk9PkVVLE9wdGlvbjooKT0+SVUsT3JiaXQ6KCk9Pk5VLE9yaWdhbWk6KCk9PlBVLE91dGRlbnQ6KCk9PlU0LFBhY2thZ2U6KCk9PmpVLFBhY2thZ2UyOigpPT5PVSxQYWNrYWdlQ2hlY2s6KCk9PlJVLFBhY2thZ2VNaW51czooKT0+RlUsUGFja2FnZU9wZW46KCk9PkJVLFBhY2thZ2VQbHVzOigpPT5IVSxQYWNrYWdlU2VhcmNoOigpPT5WVSxQYWNrYWdlWDooKT0+cVUsUGFpbnRCdWNrZXQ6KCk9PlVVLFBhaW50Um9sbGVyOigpPT5XVSxQYWludGJydXNoOigpPT5HVSxQYWludGJydXNoMjooKT0+UzgsUGFpbnRicnVzaFZlcnRpY2FsOigpPT5TOCxQYWxldHRlOigpPT5ZVSxQYWxtdHJlZTooKT0+WDcsUGFuZGE6KCk9PktVLFBhbmVsQm90dG9tOigpPT5RVSxQYW5lbEJvdHRvbUNsb3NlOigpPT5aVSxQYW5lbEJvdHRvbURhc2hlZDooKT0+TTgsUGFuZWxCb3R0b21JbmFjdGl2ZTooKT0+TTgsUGFuZWxCb3R0b21PcGVuOigpPT5YVSxQYW5lbExlZnQ6KCk9PlQ4LFBhbmVsTGVmdENsb3NlOigpPT5DOCxQYW5lbExlZnREYXNoZWQ6KCk9Pno4LFBhbmVsTGVmdEluYWN0aXZlOigpPT56OCxQYW5lbExlZnRPcGVuOigpPT5fOCxQYW5lbExlZnRSaWdodERhc2hlZDooKT0+SlUsUGFuZWxSaWdodDooKT0+clcsUGFuZWxSaWdodENsb3NlOigpPT5lVyxQYW5lbFJpZ2h0RGFzaGVkOigpPT5MOCxQYW5lbFJpZ2h0SW5hY3RpdmU6KCk9Pkw4LFBhbmVsUmlnaHRPcGVuOigpPT50VyxQYW5lbFRvcDooKT0+blcsUGFuZWxUb3BCb3R0b21EYXNoZWQ6KCk9PmFXLFBhbmVsVG9wQ2xvc2U6KCk9PmlXLFBhbmVsVG9wRGFzaGVkOigpPT5EOCxQYW5lbFRvcEluYWN0aXZlOigpPT5EOCxQYW5lbFRvcE9wZW46KCk9PnNXLFBhbmVsc0xlZnRCb3R0b206KCk9Pm9XLFBhbmVsc0xlZnRSaWdodDooKT0+YjUsUGFuZWxzUmlnaHRCb3R0b206KCk9PmxXLFBhbmVsc1RvcEJvdHRvbTooKT0+UjgsUGFuZWxzVG9wTGVmdDooKT0+JDgsUGFwZXJjbGlwOigpPT5jVyxQYXJlbnRoZXNlczooKT0+ZFcsUGFya2luZ0NpcmNsZTooKT0+ZTUsUGFya2luZ0NpcmNsZU9mZjooKT0+dDUsUGFya2luZ01ldGVyOigpPT51VyxQYXJraW5nU3F1YXJlOigpPT5MNyxQYXJraW5nU3F1YXJlT2ZmOigpPT5UNyxQYXJ0eVBvcHBlcjooKT0+ZlcsUGF1c2U6KCk9PnBXLFBhdXNlQ2lyY2xlOigpPT5hNSxQYXVzZU9jdGFnb246KCk9Pnc4LFBhd1ByaW50OigpPT5oVyxQY0Nhc2U6KCk9Pm1XLFBlbjooKT0+RTgsUGVuQm94OigpPT5kYyxQZW5MaW5lOigpPT5BOCxQZW5PZmY6KCk9PmdXLFBlblNxdWFyZTooKT0+ZGMsUGVuVG9vbDooKT0+YlcsUGVuY2lsOigpPT53VyxQZW5jaWxMaW5lOigpPT54VyxQZW5jaWxPZmY6KCk9PnZXLFBlbmNpbFJ1bGVyOigpPT55VyxQZW50YWdvbjooKT0+a1csUGVyY2VudDooKT0+U1csUGVyY2VudENpcmNsZTooKT0+cjUsUGVyY2VudERpYW1vbmQ6KCk9Pnk1LFBlcmNlbnRTcXVhcmU6KCk9PkQ3LFBlcnNvblN0YW5kaW5nOigpPT5NVyxQaGlsaXBwaW5lUGVzbzooKT0+Q1csUGhvbmU6KCk9PkFXLFBob25lQ2FsbDooKT0+elcsUGhvbmVGb3J3YXJkZWQ6KCk9Pl9XLFBob25lSW5jb21pbmc6KCk9PlRXLFBob25lTWlzc2VkOigpPT5MVyxQaG9uZU9mZjooKT0+RFcsUGhvbmVPdXRnb2luZzooKT0+JFcsUGk6KCk9PkVXLFBpU3F1YXJlOigpPT4kNyxQaWFubzooKT0+SVcsUGlja2F4ZTooKT0+UFcsUGljdHVyZUluUGljdHVyZTooKT0+T1csUGljdHVyZUluUGljdHVyZTI6KCk9Pk5XLFBpZUNoYXJ0OigpPT5JbSxQaWdneUJhbms6KCk9PlJXLFBpbGNyb3c6KCk9PkhXLFBpbGNyb3dMZWZ0OigpPT5GVyxQaWxjcm93UmlnaHQ6KCk9PkJXLFBpbGNyb3dTcXVhcmU6KCk9Pkk3LFBpbGw6KCk9PmpXLFBpbGxCb3R0bGU6KCk9PnFXLFBpbjooKT0+VVcsUGluT2ZmOigpPT5WVyxQaXBldHRlOigpPT5XVyxQaXp6YTooKT0+R1csUGxhbmU6KCk9PlpXLFBsYW5lTGFuZGluZzooKT0+WVcsUGxhbmVUYWtlb2ZmOigpPT5LVyxQbGF5OigpPT5RVyxQbGF5Q2lyY2xlOigpPT5pNSxQbGF5U3F1YXJlOigpPT5BNyxQbHVnOigpPT50RyxQbHVnMjooKT0+WFcsUGx1Z1phcDooKT0+STgsUGx1Z1phcDI6KCk9Pkk4LFBsdXM6KCk9PkpXLFBsdXNDaXJjbGU6KCk9PnM1LFBsdXNTcXVhcmU6KCk9PkU3LFBvY2tldEtuaWZlOigpPT5lRyxQb2RjYXN0OigpPT5yRyxQb2ludGVyOigpPT5uRyxQb2ludGVyT2ZmOigpPT5hRyxQb3Bjb3JuOigpPT5pRyxQb3BzaWNsZTooKT0+c0csUG91bmRTdGVybGluZzooKT0+b0csUG93ZXI6KCk9PmxHLFBvd2VyQ2lyY2xlOigpPT5uNSxQb3dlck9mZjooKT0+Y0csUG93ZXJTcXVhcmU6KCk9PlA3LFByZXNlbnRhdGlvbjooKT0+ZEcsUHJpbnRlcjooKT0+ZkcsUHJpbnRlckNoZWNrOigpPT51RyxQcmludGVyWDooKT0+cEcsUHJvamVjdG9yOigpPT5oRyxQcm9wb3J0aW9uczooKT0+bUcsUHV6emxlOigpPT5nRyxQeXJhbWlkOigpPT5iRyxRckNvZGU6KCk9PnhHLFF1b3RlOigpPT52RyxSYWJiaXQ6KCk9PnlHLFJhZGFyOigpPT53RyxSYWRpYXRpb246KCk9PmtHLFJhZGljYWw6KCk9PlNHLFJhZGlvOigpPT56RyxSYWRpb09mZjooKT0+TUcsUmFkaW9SZWNlaXZlcjooKT0+Q0csUmFkaW9Ub3dlcjooKT0+X0csUmFkaXVzOigpPT5URyxSYWluYm93OigpPT5MRyxSYXQ6KCk9PkRHLFJhdGlvOigpPT4kRyxSZWNlaXB0OigpPT5CRyxSZWNlaXB0Q2VudDooKT0+QUcsUmVjZWlwdEV1cm86KCk9PkVHLFJlY2VpcHRJbmRpYW5SdXBlZTooKT0+SUcsUmVjZWlwdEphcGFuZXNlWWVuOigpPT5QRyxSZWNlaXB0UG91bmRTdGVybGluZzooKT0+TkcsUmVjZWlwdFJ1c3NpYW5SdWJsZTooKT0+T0csUmVjZWlwdFN3aXNzRnJhbmM6KCk9PlJHLFJlY2VpcHRUZXh0OigpPT5GRyxSZWNlaXB0VHVya2lzaExpcmE6KCk9PkhHLFJlY3RhbmdsZUNpcmNsZTooKT0+cUcsUmVjdGFuZ2xlRWxsaXBzaXM6KCk9PlA4LFJlY3RhbmdsZUdvZ2dsZXM6KCk9PlZHLFJlY3RhbmdsZUhvcml6b250YWw6KCk9PmpHLFJlY3RhbmdsZVZlcnRpY2FsOigpPT5VRyxSZWN5Y2xlOigpPT5XRyxSZWRvOigpPT5LRyxSZWRvMjooKT0+R0csUmVkb0RvdDooKT0+WUcsUmVmcmVzaENjdzooKT0+UUcsUmVmcmVzaENjd0RvdDooKT0+WkcsUmVmcmVzaEN3OigpPT5KRyxSZWZyZXNoQ3dPZmY6KCk9PlhHLFJlZnJpZ2VyYXRvcjooKT0+ZVksUmVnZXg6KCk9PnRZLFJlbW92ZUZvcm1hdHRpbmc6KCk9PnJZLFJlcGVhdDooKT0+c1ksUmVwZWF0MTooKT0+YVksUmVwZWF0MjooKT0+aVksUmVwbGFjZTooKT0+b1ksUmVwbGFjZUFsbDooKT0+blksUmVwbHk6KCk9PmNZLFJlcGx5QWxsOigpPT5sWSxSZXdpbmQ6KCk9PmRZLFJpYmJvbjooKT0+dVksUm9hZDooKT0+cFksUm9ja2V0OigpPT5mWSxSb2NraW5nQ2hhaXI6KCk9PmhZLFJvbGxlckNvYXN0ZXI6KCk9Pm1ZLFJvc2U6KCk9PmdZLFJvdGF0ZTNEOigpPT5OOCxSb3RhdGUzZDooKT0+TjgsUm90YXRlQ2N3OigpPT55WSxSb3RhdGVDY3dLZXk6KCk9PmJZLFJvdGF0ZUNjd1NxdWFyZTooKT0+eFksUm90YXRlQ3c6KCk9PndZLFJvdGF0ZUN3U3F1YXJlOigpPT52WSxSb3V0ZTooKT0+U1ksUm91dGVPZmY6KCk9PmtZLFJvdXRlcjooKT0+TVksUm93czooKT0+TzgsUm93czI6KCk9Pk84LFJvd3MzOigpPT5SOCxSb3dzNDooKT0+Q1ksUnNzOigpPT56WSxSdWxlcjooKT0+VFksUnVsZXJEaW1lbnNpb25MaW5lOigpPT5fWSxSdXNzaWFuUnVibGU6KCk9PkxZLFNhaWxib2F0OigpPT5EWSxTYWxhZDooKT0+JFksU2FuZHdpY2g6KCk9PkFZLFNhdGVsbGl0ZTooKT0+SVksU2F0ZWxsaXRlRGlzaDooKT0+RVksU2F1ZGlSaXlhbDooKT0+UFksU2F2ZTooKT0+UlksU2F2ZUFsbDooKT0+TlksU2F2ZU9mZjooKT0+T1ksU2NhbGU6KCk9PkZZLFNjYWxlM0Q6KCk9PkY4LFNjYWxlM2Q6KCk9PkY4LFNjYWxpbmc6KCk9PkJZLFNjYW46KCk9PktZLFNjYW5CYXJjb2RlOigpPT5IWSxTY2FuRXllOigpPT5xWSxTY2FuRmFjZTooKT0+VlksU2NhbkhlYXJ0OigpPT5qWSxTY2FuTGluZTooKT0+VVksU2NhblFyQ29kZTooKT0+WVksU2NhblNlYXJjaDooKT0+V1ksU2NhblRleHQ6KCk9PkdZLFNjYXR0ZXJDaGFydDooKT0+UG0sU2Nob29sOigpPT5aWSxTY2hvb2wyOigpPT50OSxTY2lzc29yczooKT0+SlksU2Npc3NvcnNMaW5lRGFzaGVkOigpPT5RWSxTY2lzc29yc1NxdWFyZTooKT0+TjcsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9PnM3LFNjb290ZXI6KCk9PlhZLFNjcmVlblNoYXJlOigpPT50SyxTY3JlZW5TaGFyZU9mZjooKT0+ZUssU2Nyb2xsOigpPT5hSyxTY3JvbGxUZXh0OigpPT5ySyxTZWFyY2g6KCk9PmNLLFNlYXJjaEFsZXJ0OigpPT5pSyxTZWFyY2hDaGVjazooKT0+c0ssU2VhcmNoQ29kZTooKT0+bkssU2VhcmNoU2xhc2g6KCk9Pm9LLFNlYXJjaFg6KCk9PmxLLFNlY3Rpb246KCk9PmRLLFNlbmQ6KCk9PnBLLFNlbmRIb3Jpem9uYWw6KCk9PkI4LFNlbmRIb3Jpem9udGFsOigpPT5COCxTZW5kVG9CYWNrOigpPT51SyxTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5mSyxTZXBhcmF0b3JWZXJ0aWNhbDooKT0+aEssU2VydmVyOigpPT54SyxTZXJ2ZXJDb2c6KCk9Pm1LLFNlcnZlckNyYXNoOigpPT5nSyxTZXJ2ZXJPZmY6KCk9PmJLLFNldHRpbmdzOigpPT55SyxTZXR0aW5nczI6KCk9PnZLLFNoYXBlczooKT0+a0ssU2hhcmU6KCk9PlNLLFNoYXJlMjooKT0+d0ssU2hlZXQ6KCk9Pk1LLFNoZWxsOigpPT5DSyxTaGVsdmluZ1VuaXQ6KCk9PnpLLFNoaWVsZDooKT0+UkssU2hpZWxkQWxlcnQ6KCk9Pl9LLFNoaWVsZEJhbjooKT0+VEssU2hpZWxkQ2hlY2s6KCk9PkxLLFNoaWVsZENsb3NlOigpPT5xOCxTaGllbGRDb2c6KCk9PiRLLFNoaWVsZENvZ0Nvcm5lcjooKT0+REssU2hpZWxkRWxsaXBzaXM6KCk9PkFLLFNoaWVsZEhhbGY6KCk9PkVLLFNoaWVsZE1pbnVzOigpPT5OSyxTaGllbGRPZmY6KCk9PklLLFNoaWVsZFBsdXM6KCk9PlBLLFNoaWVsZFF1ZXN0aW9uOigpPT5IOCxTaGllbGRRdWVzdGlvbk1hcms6KCk9Pkg4LFNoaWVsZFVzZXI6KCk9Pk9LLFNoaWVsZFg6KCk9PnE4LFNoaXA6KCk9PkJLLFNoaXBXaGVlbDooKT0+RkssU2hpcnQ6KCk9PkhLLFNob3BwaW5nQmFnOigpPT5xSyxTaG9wcGluZ0Jhc2tldDooKT0+VkssU2hvcHBpbmdDYXJ0OigpPT5qSyxTaG92ZWw6KCk9PlVLLFNob3dlckhlYWQ6KCk9PldLLFNocmVkZGVyOigpPT5HSyxTaHJpbXA6KCk9PllLLFNocmluazooKT0+S0ssU2hydWI6KCk9PlpLLFNodWZmbGU6KCk9PlFLLFNpZGViYXI6KCk9PlQ4LFNpZGViYXJDbG9zZTooKT0+QzgsU2lkZWJhck9wZW46KCk9Pl84LFNpZ21hOigpPT5YSyxTaWdtYVNxdWFyZTooKT0+TzcsU2lnbmFsOigpPT5hWixTaWduYWxIaWdoOigpPT5KSyxTaWduYWxMb3c6KCk9PmVaLFNpZ25hbE1lZGl1bTooKT0+dFosU2lnbmFsWmVybzooKT0+closU2lnbmF0dXJlOigpPT5pWixTaWducG9zdDooKT0+blosU2lnbnBvc3RCaWc6KCk9PnNaLFNpcmVuOigpPT5vWixTa2lwQmFjazooKT0+bFosU2tpcEZvcndhcmQ6KCk9PmNaLFNrdWxsOigpPT5wWixTbGFzaDooKT0+ZFosU2xhc2hTcXVhcmU6KCk9PlI3LFNsaWNlOigpPT51WixTbGlkZXJzOigpPT5WOCxTbGlkZXJzSG9yaXpvbnRhbDooKT0+ZlosU2xpZGVyc1ZlcnRpY2FsOigpPT5WOCxTbWFydHBob25lOigpPT5nWixTbWFydHBob25lQ2hhcmdpbmc6KCk9PmhaLFNtYXJ0cGhvbmVOZmM6KCk9Pm1aLFNtaWxlOigpPT54WixTbWlsZVBsdXM6KCk9PmJaLFNuYWlsOigpPT52WixTbm93Zmxha2U6KCk9PnlaLFNvYXBEaXNwZW5zZXJEcm9wbGV0OigpPT53WixTb2ZhOigpPT5rWixTb2xhclBhbmVsOigpPT5TWixTb3J0QXNjOigpPT5mbSxTb3J0RGVzYzooKT0+ZG0sU291cDooKT0+TVosU3BhY2U6KCk9PkNaLFNwYWRlOigpPT56WixTcGFya2xlOigpPT5fWixTcGFya2xlczooKT0+ajgsU3BlYWtlcjooKT0+VFosU3BlZWNoOigpPT5MWixTcGVsbENoZWNrOigpPT4kWixTcGVsbENoZWNrMjooKT0+RFosU3BsaW5lOigpPT5FWixTcGxpbmVQb2ludGVyOigpPT5BWixTcGxpdDooKT0+SVosU3BsaXRTcXVhcmVIb3Jpem9udGFsOigpPT5GNyxTcGxpdFNxdWFyZVZlcnRpY2FsOigpPT5CNyxTcG9vbDooKT0+UFosU3BvcnRTaG9lOigpPT5OWixTcG90bGlnaHQ6KCk9Pk9aLFNwcmF5Q2FuOigpPT5SWixTcHJvdXQ6KCk9PkZaLFNxdWFyZTooKT0+WFosU3F1YXJlQWN0aXZpdHk6KCk9PlU4LFNxdWFyZUFycm93RG93bjooKT0+WTgsU3F1YXJlQXJyb3dEb3duTGVmdDooKT0+VzgsU3F1YXJlQXJyb3dEb3duUmlnaHQ6KCk9Pkc4LFNxdWFyZUFycm93TGVmdDooKT0+SzgsU3F1YXJlQXJyb3dPdXREb3duTGVmdDooKT0+WjgsU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6KCk9PlE4LFNxdWFyZUFycm93T3V0VXBMZWZ0OigpPT5YOCxTcXVhcmVBcnJvd091dFVwUmlnaHQ6KCk9Pko4LFNxdWFyZUFycm93UmlnaHQ6KCk9PmU3LFNxdWFyZUFycm93UmlnaHRFbnRlcjooKT0+QlosU3F1YXJlQXJyb3dSaWdodEV4aXQ6KCk9PkhaLFNxdWFyZUFycm93VXA6KCk9PmE3LFNxdWFyZUFycm93VXBMZWZ0OigpPT50NyxTcXVhcmVBcnJvd1VwUmlnaHQ6KCk9PnI3LFNxdWFyZUFzdGVyaXNrOigpPT5pNyxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczooKT0+czcsU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6KCk9Pm43LFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRWZXJ0aWNhbDooKT0+bzcsU3F1YXJlQ2hhcnRHYW50dDooKT0+RzQsU3F1YXJlQ2hlY2s6KCk9PmM3LFNxdWFyZUNoZWNrQmlnOigpPT5sNyxTcXVhcmVDaGV2cm9uRG93bjooKT0+ZDcsU3F1YXJlQ2hldnJvbkxlZnQ6KCk9PnU3LFNxdWFyZUNoZXZyb25SaWdodDooKT0+cDcsU3F1YXJlQ2hldnJvblVwOigpPT5mNyxTcXVhcmVDb2RlOigpPT5oNyxTcXVhcmVEYXNoZWQ6KCk9PmI3LFNxdWFyZURhc2hlZEJvdHRvbTooKT0+VlosU3F1YXJlRGFzaGVkQm90dG9tQ29kZTooKT0+cVosU3F1YXJlRGFzaGVkS2FuYmFuOigpPT5tNyxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6KCk9Pmc3LFNxdWFyZURhc2hlZFRleHQ6KCk9Plk0LFNxdWFyZURhc2hlZFRvcFNvbGlkOigpPT5qWixTcXVhcmVEaXZpZGU6KCk9Png3LFNxdWFyZURvdDooKT0+djcsU3F1YXJlRXF1YWw6KCk9Pnk3LFNxdWFyZUZ1bmN0aW9uOigpPT53NyxTcXVhcmVHYW50dENoYXJ0OigpPT5HNCxTcXVhcmVLYW5iYW46KCk9Pms3LFNxdWFyZUxpYnJhcnk6KCk9PlM3LFNxdWFyZU06KCk9Pk03LFNxdWFyZU1lbnU6KCk9PkM3LFNxdWFyZU1pbnVzOigpPT56NyxTcXVhcmVNb3VzZVBvaW50ZXI6KCk9Pl83LFNxdWFyZVBhcmtpbmc6KCk9Pkw3LFNxdWFyZVBhcmtpbmdPZmY6KCk9PlQ3LFNxdWFyZVBhdXNlOigpPT5VWixTcXVhcmVQZW46KCk9PmRjLFNxdWFyZVBlcmNlbnQ6KCk9PkQ3LFNxdWFyZVBpOigpPT4kNyxTcXVhcmVQaWxjcm93OigpPT5JNyxTcXVhcmVQbGF5OigpPT5BNyxTcXVhcmVQbHVzOigpPT5FNyxTcXVhcmVQb3dlcjooKT0+UDcsU3F1YXJlUmFkaWNhbDooKT0+V1osU3F1YXJlUm91bmRDb3JuZXI6KCk9PkdaLFNxdWFyZVNjaXNzb3JzOigpPT5ONyxTcXVhcmVTaWdtYTooKT0+TzcsU3F1YXJlU2xhc2g6KCk9PlI3LFNxdWFyZVNwbGl0SG9yaXpvbnRhbDooKT0+RjcsU3F1YXJlU3BsaXRWZXJ0aWNhbDooKT0+QjcsU3F1YXJlU3F1YXJlOigpPT5ZWixTcXVhcmVTdGFjazooKT0+S1osU3F1YXJlU3RhcjooKT0+WlosU3F1YXJlU3RvcDooKT0+UVosU3F1YXJlVGVybWluYWw6KCk9Pkg3LFNxdWFyZVVzZXI6KCk9Pmo3LFNxdWFyZVVzZXJSb3VuZDooKT0+cTcsU3F1YXJlWDooKT0+VjcsU3F1YXJlc0V4Y2x1ZGU6KCk9PkpaLFNxdWFyZXNJbnRlcnNlY3Q6KCk9PmVRLFNxdWFyZXNTdWJ0cmFjdDooKT0+dFEsU3F1YXJlc1VuaXRlOigpPT5yUSxTcXVpcmNsZTooKT0+YVEsU3F1aXJjbGVEYXNoZWQ6KCk9PmlRLFNxdWlycmVsOigpPT5zUSxTdGFtcDooKT0+blEsU3RhcjooKT0+Y1EsU3RhckhhbGY6KCk9Pm9RLFN0YXJPZmY6KCk9PmxRLFN0YXJzOigpPT5qOCxTdGVwQmFjazooKT0+ZFEsU3RlcEZvcndhcmQ6KCk9PnVRLFN0ZXRob3Njb3BlOigpPT5wUSxTdGlja2VyOigpPT5mUSxTdGlja3lOb3RlOigpPT5tUSxTdG9uZTooKT0+aFEsU3RvcENpcmNsZTooKT0+bDUsU3RvcmU6KCk9PmdRLFN0cmV0Y2hIb3Jpem9udGFsOigpPT54USxTdHJldGNoVmVydGljYWw6KCk9PmJRLFN0cmlrZXRocm91Z2g6KCk9PnZRLFN1YnNjcmlwdDooKT0+eVEsU3VidGl0bGVzOigpPT5rbSxTdW46KCk9PkNRLFN1bkRpbTooKT0+d1EsU3VuTWVkaXVtOigpPT5rUSxTdW5Nb29uOigpPT5NUSxTdW5Tbm93OigpPT5TUSxTdW5yaXNlOigpPT56USxTdW5zZXQ6KCk9Pl9RLFN1cGVyc2NyaXB0OigpPT5UUSxTd2F0Y2hCb29rOigpPT5EUSxTd2lzc0ZyYW5jOigpPT5MUSxTd2l0Y2hDYW1lcmE6KCk9PiRRLFN3b3JkOigpPT5BUSxTd29yZHM6KCk9PklRLFN5cmluZ2U6KCk9PkVRLFRhYmxlOigpPT5xUSxUYWJsZTI6KCk9PlBRLFRhYmxlQ2VsbHNNZXJnZTooKT0+T1EsVGFibGVDZWxsc1NwbGl0OigpPT5OUSxUYWJsZUNvbHVtbnNTcGxpdDooKT0+UlEsVGFibGVDb25maWc6KCk9PnE0LFRhYmxlT2ZDb250ZW50czooKT0+RlEsVGFibGVQcm9wZXJ0aWVzOigpPT5CUSxUYWJsZVJvd3NTcGxpdDooKT0+SFEsVGFibGV0OigpPT5qUSxUYWJsZXRTbWFydHBob25lOigpPT5WUSxUYWJsZXRzOigpPT5VUSxUYWc6KCk9PldRLFRhZ3M6KCk9PkdRLFRhbGx5MTooKT0+WVEsVGFsbHkyOigpPT5LUSxUYWxseTM6KCk9PlpRLFRhbGx5NDooKT0+UVEsVGFsbHk1OigpPT5YUSxUYW5nZW50OigpPT5KUSxUYXJnZXQ6KCk9PnRYLFRlbGVzY29wZTooKT0+ZVgsVGVudDooKT0+YVgsVGVudFRyZWU6KCk9PnJYLFRlcm1pbmFsOigpPT5pWCxUZXJtaW5hbFNxdWFyZTooKT0+SDcsVGVzdFR1YmU6KCk9PnNYLFRlc3RUdWJlMjooKT0+VTcsVGVzdFR1YmVEaWFnb25hbDooKT0+VTcsVGVzdFR1YmVzOigpPT5uWCxUZXh0OigpPT5LNCxUZXh0QWxpZ25DZW50ZXI6KCk9Plc3LFRleHRBbGlnbkVuZDooKT0+RzcsVGV4dEFsaWduSnVzdGlmeTooKT0+WTcsVGV4dEFsaWduU3RhcnQ6KCk9Pks0LFRleHRDdXJzb3I6KCk9PmxYLFRleHRDdXJzb3JJbnB1dDooKT0+b1gsVGV4dEluaXRpYWw6KCk9Pks3LFRleHRRdW90ZTooKT0+ZFgsVGV4dFNlYXJjaDooKT0+Y1gsVGV4dFNlbGVjdDooKT0+WTQsVGV4dFNlbGVjdGlvbjooKT0+WTQsVGV4dFdyYXA6KCk9Plo3LFRoZWF0ZXI6KCk9PnVYLFRoZXJtb21ldGVyOigpPT5oWCxUaGVybW9tZXRlclNub3dmbGFrZTooKT0+cFgsVGhlcm1vbWV0ZXJTdW46KCk9PmZYLFRodW1ic0Rvd246KCk9Pm1YLFRodW1ic1VwOigpPT5nWCxUaWNrZXQ6KCk9PlNYLFRpY2tldENoZWNrOigpPT5iWCxUaWNrZXRNaW51czooKT0+eFgsVGlja2V0UGVyY2VudDooKT0+dlgsVGlja2V0UGx1czooKT0+eVgsVGlja2V0U2xhc2g6KCk9PmtYLFRpY2tldFg6KCk9PndYLFRpY2tldHM6KCk9PkNYLFRpY2tldHNQbGFuZTooKT0+TVgsVGltZXI6KCk9PlRYLFRpbWVyT2ZmOigpPT56WCxUaW1lclJlc2V0OigpPT5fWCxUb2dnbGVMZWZ0OigpPT5MWCxUb2dnbGVSaWdodDooKT0+RFgsVG9pbGV0OigpPT4kWCxUb29sQ2FzZTooKT0+QVgsVG9vbGJveDooKT0+RVgsVG9ybmFkbzooKT0+SVgsVG9ydXM6KCk9PlBYLFRvdWNocGFkOigpPT5PWCxUb3VjaHBhZE9mZjooKT0+TlgsVG93ZWxSYWNrOigpPT5SWCxUb3dlckNvbnRyb2w6KCk9PkZYLFRveUJyaWNrOigpPT5CWCxUcmFjdG9yOigpPT5IWCxUcmFmZmljQ29uZTooKT0+cVgsVHJhaW46KCk9PlE3LFRyYWluRnJvbnQ6KCk9PmpYLFRyYWluRnJvbnRUdW5uZWw6KCk9PlZYLFRyYWluVHJhY2s6KCk9PlVYLFRyYW1Gcm9udDooKT0+UTcsVHJhbnNnZW5kZXI6KCk9PldYLFRyYXNoOigpPT5HWCxUcmFzaDI6KCk9PllYLFRyZWVEZWNpZHVvdXM6KCk9PktYLFRyZWVQYWxtOigpPT5YNyxUcmVlUGluZTooKT0+WlgsVHJlZXM6KCk9PlFYLFRyZW5kaW5nRG93bjooKT0+WFgsVHJlbmRpbmdVcDooKT0+ZUosVHJlbmRpbmdVcERvd246KCk9PkpYLFRyaWFuZ2xlOigpPT5hSixUcmlhbmdsZUFsZXJ0OigpPT5KNyxUcmlhbmdsZURhc2hlZDooKT0+dEosVHJpYW5nbGVSaWdodDooKT0+ckosVHJvcGh5OigpPT5pSixUcnVjazooKT0+bkosVHJ1Y2tFbGVjdHJpYzooKT0+c0osVHVya2lzaExpcmE6KCk9Pm9KLFR1cm50YWJsZTooKT0+bEosVHVydGxlOigpPT5jSixUdjooKT0+cEosVHYyOigpPT5lOSxUdk1pbmltYWw6KCk9PmU5LFR2TWluaW1hbFBsYXk6KCk9PmRKLFR5cGU6KCk9PmZKLFR5cGVPdXRsaW5lOigpPT51SixVbWJyZWxsYTooKT0+aEosVW1icmVsbGFPZmY6KCk9Pm1KLFVuZGVybGluZTooKT0+Z0osVW5kbzooKT0+dkosVW5kbzI6KCk9PmJKLFVuZG9Eb3Q6KCk9PnhKLFVuZm9sZEhvcml6b250YWw6KCk9PnlKLFVuZm9sZFZlcnRpY2FsOigpPT5rSixVbmdyb3VwOigpPT53SixVbml2ZXJzaXR5OigpPT50OSxVbmxpbms6KCk9Pk1KLFVubGluazI6KCk9PlNKLFVubG9jazooKT0+aDgsVW5sb2NrS2V5aG9sZTooKT0+ZjgsVW5wbHVnOigpPT56SixVcGxvYWQ6KCk9PkNKLFVwbG9hZENsb3VkOigpPT5tNSxVc2I6KCk9Pl9KLFVzZXI6KCk9PkhKLFVzZXIyOigpPT5vOSxVc2VyQ2hlY2s6KCk9PkRKLFVzZXJDaGVjazI6KCk9PnI5LFVzZXJDaXJjbGU6KCk9PmQ1LFVzZXJDaXJjbGUyOigpPT5jNSxVc2VyQ29nOigpPT5USixVc2VyQ29nMjooKT0+YTksVXNlcktleTooKT0+TEosVXNlckxvY2s6KCk9PiRKLFVzZXJNaW51czooKT0+QUosVXNlck1pbnVzMjooKT0+aTksVXNlclBlbjooKT0+RUosVXNlclBsdXM6KCk9PklKLFVzZXJQbHVzMjooKT0+czksVXNlclJvdW5kOigpPT5vOSxVc2VyUm91bmRDaGVjazooKT0+cjksVXNlclJvdW5kQ29nOigpPT5hOSxVc2VyUm91bmRLZXk6KCk9PlBKLFVzZXJSb3VuZE1pbnVzOigpPT5pOSxVc2VyUm91bmRQZW46KCk9Pk5KLFVzZXJSb3VuZFBsdXM6KCk9PnM5LFVzZXJSb3VuZFNlYXJjaDooKT0+T0osVXNlclJvdW5kWDooKT0+bjksVXNlclNlYXJjaDooKT0+UkosVXNlclNxdWFyZTooKT0+ajcsVXNlclNxdWFyZTI6KCk9PnE3LFVzZXJTdGFyOigpPT5GSixVc2VyWDooKT0+QkosVXNlclgyOigpPT5uOSxVc2VyczooKT0+cUosVXNlcnMyOigpPT5sOSxVc2Vyc1JvdW5kOigpPT5sOSxVdGVuc2lsczooKT0+ZDksVXRlbnNpbHNDcm9zc2VkOigpPT5jOSxVdGlsaXR5UG9sZTooKT0+VkosVmFuOigpPT5qSixWYXJpYWJsZTooKT0+VUosVmF1bHQ6KCk9PldKLFZlY3RvclNxdWFyZTooKT0+R0osVmVnYW46KCk9PllKLFZlbmV0aWFuTWFzazooKT0+S0osVmVudXM6KCk9PlFKLFZlbnVzQW5kTWFyczooKT0+WkosVmVyaWZpZWQ6KCk9PmdtLFZpYnJhdGU6KCk9PkpKLFZpYnJhdGVPZmY6KCk9PlhKLFZpZGVvOigpPT50ZWUsVmlkZW9PZmY6KCk9PmVlZSxWaWRlb3RhcGU6KCk9PnJlZSxWaWV3OigpPT5hZWUsVm9pY2VtYWlsOigpPT5pZWUsVm9sbGV5YmFsbDooKT0+c2VlLFZvbHVtZTooKT0+ZGVlLFZvbHVtZTE6KCk9Pm5lZSxWb2x1bWUyOigpPT5vZWUsVm9sdW1lT2ZmOigpPT5sZWUsVm9sdW1lWDooKT0+Y2VlLFZvdGU6KCk9PnVlZSxXYWxsZXQ6KCk9PmZlZSxXYWxsZXQyOigpPT51OSxXYWxsZXRDYXJkczooKT0+cGVlLFdhbGxldE1pbmltYWw6KCk9PnU5LFdhbGxwYXBlcjooKT0+aGVlLFdhbmQ6KCk9Pm1lZSxXYW5kMjooKT0+cDksV2FuZFNwYXJrbGVzOigpPT5wOSxXYXJlaG91c2U6KCk9PmdlZSxXYXNoaW5nTWFjaGluZTooKT0+YmVlLFdhdGNoOigpPT54ZWUsV2F2ZXM6KCk9PmtlZSxXYXZlc0Fycm93RG93bjooKT0+dmVlLFdhdmVzQXJyb3dVcDooKT0+eWVlLFdhdmVzTGFkZGVyOigpPT53ZWUsV2F5cG9pbnRzOigpPT5TZWUsV2ViY2FtOigpPT5NZWUsV2ViaG9vazooKT0+emVlLFdlYmhvb2tPZmY6KCk9PkNlZSxXZWlnaHQ6KCk9PlRlZSxXZWlnaHRUaWxkZTooKT0+X2VlLFdoZWF0OigpPT5EZWUsV2hlYXRPZmY6KCk9PkxlZSxXaG9sZVdvcmQ6KCk9PiRlZSxXaWZpOigpPT5GZWUsV2lmaUNvZzooKT0+QWVlLFdpZmlIaWdoOigpPT5FZWUsV2lmaUxvdzooKT0+SWVlLFdpZmlPZmY6KCk9PlBlZSxXaWZpUGVuOigpPT5OZWUsV2lmaVN5bmM6KCk9PlJlZSxXaWZpWmVybzooKT0+T2VlLFdpbmQ6KCk9PkhlZSxXaW5kQXJyb3dEb3duOigpPT5CZWUsV2luZTooKT0+cWVlLFdpbmVPZmY6KCk9PlZlZSxXb3JrZmxvdzooKT0+amVlLFdvcm06KCk9PlVlZSxXcmFwVGV4dDooKT0+WjcsV3JlbmNoOigpPT5XZWUsWDooKT0+R2VlLFhDaXJjbGU6KCk9PnU1LFhMaW5lVG9wOigpPT5ZZWUsWE9jdGFnb246KCk9Pms4LFhTcXVhcmU6KCk9PlY3LFphcDooKT0+WmVlLFphcE9mZjooKT0+S2VlLFpvZGlhY0FxdWFyaXVzOigpPT5RZWUsWm9kaWFjQXJpZXM6KCk9PlhlZSxab2RpYWNDYW5jZXI6KCk9PkplZSxab2RpYWNDYXByaWNvcm46KCk9PmV0ZSxab2RpYWNHZW1pbmk6KCk9PnR0ZSxab2RpYWNMZW86KCk9PnJ0ZSxab2RpYWNMaWJyYTooKT0+YXRlLFpvZGlhY09waGl1Y2h1czooKT0+aXRlLFpvZGlhY1Bpc2NlczooKT0+c3RlLFpvZGlhY1NhZ2l0dGFyaXVzOigpPT5udGUsWm9kaWFjU2NvcnBpbzooKT0+b3RlLFpvZGlhY1RhdXJ1czooKT0+bHRlLFpvZGlhY1ZpcmdvOigpPT5jdGUsWm9vbUluOigpPT5kdGUsWm9vbU91dDooKT0+dXRlLGNyZWF0ZUVsZW1lbnQ6KCk9PklwLGNyZWF0ZUljb25zOigpPT54NnQsaWNvbnM6KCk9PmY5fSk7dmFyIHg2dCxEcGU9dSgoKT0+e1JWcigpO0ZWcigpO1ZxZSgpO0txZSgpO1pxZSgpO1FxZSgpO1hxZSgpO0pxZSgpO2VWZSgpO3RWZSgpO3JWZSgpO2FWZSgpO2lWZSgpO3NWZSgpO25WZSgpO29WZSgpO2xWZSgpO2NWZSgpO2RWZSgpO3VWZSgpO3BWZSgpO2ZWZSgpO2hWZSgpO21WZSgpO2dWZSgpO2JWZSgpO3hWZSgpO3ZWZSgpO3lWZSgpO3dWZSgpO2tWZSgpO1NWZSgpO01WZSgpO0NWZSgpO3pWZSgpO19WZSgpO1RWZSgpO0xWZSgpO0RWZSgpOyRWZSgpO0FWZSgpO0VWZSgpO0lWZSgpO1BWZSgpO05WZSgpO09WZSgpO1JWZSgpO0ZWZSgpO0JWZSgpO0hWZSgpO3FWZSgpO1ZWZSgpO2pWZSgpO1VWZSgpO1dWZSgpO0dWZSgpO1lWZSgpO0tWZSgpO1pWZSgpO1FWZSgpO1hWZSgpO0pWZSgpO2VqZSgpO3RqZSgpO3JqZSgpO2FqZSgpO2lqZSgpO3NqZSgpO25qZSgpO29qZSgpO2xqZSgpO2NqZSgpO2RqZSgpO3VqZSgpO3BqZSgpO2ZqZSgpO2hqZSgpO21qZSgpO2dqZSgpO2JqZSgpO3hqZSgpO3ZqZSgpO3lqZSgpO3dqZSgpO2tqZSgpO1NqZSgpO01qZSgpO0NqZSgpO3pqZSgpO19qZSgpO1RqZSgpO0xqZSgpO0RqZSgpOyRqZSgpO0FqZSgpO0VqZSgpO0lqZSgpO1BqZSgpO05qZSgpO09qZSgpO1JqZSgpO0ZqZSgpO0JqZSgpO0hqZSgpO3FqZSgpO1ZqZSgpO2pqZSgpO1VqZSgpO1dqZSgpO0dqZSgpO1lqZSgpO0tqZSgpO1pqZSgpO1FqZSgpO1hqZSgpO0pqZSgpO2VVZSgpO3RVZSgpO3JVZSgpO2FVZSgpO2lVZSgpO3NVZSgpO25VZSgpO29VZSgpO2xVZSgpO2NVZSgpO2RVZSgpO3VVZSgpO3BVZSgpO2ZVZSgpO2hVZSgpO21VZSgpO2dVZSgpO2JVZSgpO3hVZSgpO3ZVZSgpO3lVZSgpO3dVZSgpO2tVZSgpO1NVZSgpO01VZSgpO0NVZSgpO3pVZSgpO19VZSgpO1RVZSgpO0xVZSgpO0RVZSgpOyRVZSgpO0FVZSgpO0VVZSgpO0lVZSgpO1BVZSgpO05VZSgpO09VZSgpO1JVZSgpO0ZVZSgpO0JVZSgpO0hVZSgpO3FVZSgpO1ZVZSgpO2pVZSgpO1VVZSgpO1dVZSgpO0dVZSgpO1lVZSgpO0tVZSgpO1pVZSgpO1FVZSgpO1hVZSgpO0pVZSgpO2VXZSgpO3RXZSgpO3JXZSgpO2FXZSgpO2lXZSgpO3NXZSgpO25XZSgpO29XZSgpO2xXZSgpO2NXZSgpO2RXZSgpO3VXZSgpO3BXZSgpO2ZXZSgpO2hXZSgpO21XZSgpO2dXZSgpO2JXZSgpO3hXZSgpO3ZXZSgpO3lXZSgpO3dXZSgpO2tXZSgpO1NXZSgpO01XZSgpO0NXZSgpO3pXZSgpO19XZSgpO1RXZSgpO0xXZSgpO0RXZSgpOyRXZSgpO0FXZSgpO0VXZSgpO0lXZSgpO1BXZSgpO05XZSgpO09XZSgpO1JXZSgpO0ZXZSgpO0JXZSgpO0hXZSgpO3FXZSgpO1ZXZSgpO2pXZSgpO1VXZSgpO1dXZSgpO0dXZSgpO1lXZSgpO0tXZSgpO1pXZSgpO1FXZSgpO1hXZSgpO0pXZSgpO2VHZSgpO3RHZSgpO3JHZSgpO2FHZSgpO2lHZSgpO3NHZSgpO25HZSgpO29HZSgpO2xHZSgpO2NHZSgpO2RHZSgpO3VHZSgpO3BHZSgpO2ZHZSgpO2hHZSgpO21HZSgpO2dHZSgpO2JHZSgpO3hHZSgpO3ZHZSgpO3lHZSgpO3dHZSgpO2tHZSgpO1NHZSgpO01HZSgpO0NHZSgpO3pHZSgpO19HZSgpO1RHZSgpO0xHZSgpO0RHZSgpOyRHZSgpO0FHZSgpO0VHZSgpO0lHZSgpO1BHZSgpO05HZSgpO09HZSgpO1JHZSgpO0ZHZSgpO0JHZSgpO0hHZSgpO3FHZSgpO1ZHZSgpO2pHZSgpO1VHZSgpO1dHZSgpO0dHZSgpO1lHZSgpO0tHZSgpO1pHZSgpO1FHZSgpO1hHZSgpO0pHZSgpO2VZZSgpO3RZZSgpO3JZZSgpO2FZZSgpO2lZZSgpO3NZZSgpO25ZZSgpO29ZZSgpO2xZZSgpO2NZZSgpO2RZZSgpO3VZZSgpO3BZZSgpO2ZZZSgpO2hZZSgpO21ZZSgpO2dZZSgpO2JZZSgpO3hZZSgpO3ZZZSgpO3lZZSgpO3dZZSgpO2tZZSgpO1NZZSgpO01ZZSgpO0NZZSgpO3pZZSgpO19ZZSgpO1RZZSgpO0xZZSgpO0RZZSgpOyRZZSgpO0FZZSgpO0VZZSgpO0lZZSgpO1BZZSgpO05ZZSgpO09ZZSgpO1JZZSgpO0ZZZSgpO0JZZSgpO0hZZSgpO3FZZSgpO1ZZZSgpO2pZZSgpO1VZZSgpO1dZZSgpO0dZZSgpO1lZZSgpO0tZZSgpO1pZZSgpO1FZZSgpO1hZZSgpO0pZZSgpO2VLZSgpO3RLZSgpO3JLZSgpO2FLZSgpO2lLZSgpO3NLZSgpO25LZSgpO29LZSgpO2xLZSgpO2NLZSgpO2RLZSgpO3VLZSgpO3BLZSgpO2ZLZSgpO2hLZSgpO21LZSgpO2dLZSgpO2JLZSgpO3hLZSgpO3ZLZSgpO3lLZSgpO3dLZSgpO2tLZSgpO1NLZSgpO01LZSgpO0NLZSgpO3pLZSgpO19LZSgpO1RLZSgpO0xLZSgpO0RLZSgpOyRLZSgpO0FLZSgpO0VLZSgpO0lLZSgpO1BLZSgpO05LZSgpO09LZSgpO1JLZSgpO0ZLZSgpO0JLZSgpO0hLZSgpO3FLZSgpO1ZLZSgpO2pLZSgpO1VLZSgpO1dLZSgpO0dLZSgpO1lLZSgpO0tLZSgpO1pLZSgpO1FLZSgpO1hLZSgpO0pLZSgpO2VaZSgpO3RaZSgpO3JaZSgpO2FaZSgpO2laZSgpO3NaZSgpO25aZSgpO29aZSgpO2xaZSgpO2NaZSgpO2RaZSgpO3VaZSgpO3BaZSgpO2ZaZSgpO2haZSgpO21aZSgpO2daZSgpO2JaZSgpO3haZSgpO3ZaZSgpO3laZSgpO3daZSgpO2taZSgpO1NaZSgpO01aZSgpO0NaZSgpO3paZSgpO19aZSgpO1RaZSgpO0xaZSgpO0RaZSgpOyRaZSgpO0FaZSgpO0VaZSgpO0laZSgpO1BaZSgpO05aZSgpO09aZSgpO1JaZSgpO0ZaZSgpO0JaZSgpO0haZSgpO3FaZSgpO1ZaZSgpO2paZSgpO1VaZSgpO1daZSgpO0daZSgpO1laZSgpO0taZSgpO1paZSgpO1FaZSgpO1haZSgpO0paZSgpO2VRZSgpO3RRZSgpO3JRZSgpO2FRZSgpO2lRZSgpO3NRZSgpO25RZSgpO29RZSgpO2xRZSgpO2NRZSgpO2RRZSgpO3VRZSgpO3BRZSgpO2ZRZSgpO2hRZSgpO21RZSgpO2dRZSgpO2JRZSgpO3hRZSgpO3ZRZSgpO3lRZSgpO3dRZSgpO2tRZSgpO1NRZSgpO01RZSgpO0NRZSgpO3pRZSgpO19RZSgpO1RRZSgpO0xRZSgpO0RRZSgpOyRRZSgpO0FRZSgpO0VRZSgpO0lRZSgpO1BRZSgpO05RZSgpO09RZSgpO1JRZSgpO0ZRZSgpO0JRZSgpO0hRZSgpO3FRZSgpO1ZRZSgpO2pRZSgpO1VRZSgpO1dRZSgpO0dRZSgpO1lRZSgpO0tRZSgpO1pRZSgpO1FRZSgpO1hRZSgpO0pRZSgpO2VYZSgpO3RYZSgpO3JYZSgpO2FYZSgpO2lYZSgpO3NYZSgpO25YZSgpO29YZSgpO2xYZSgpO2NYZSgpO2RYZSgpO3VYZSgpO3BYZSgpO2ZYZSgpO2hYZSgpO21YZSgpO2dYZSgpO2JYZSgpO3hYZSgpO3ZYZSgpO3lYZSgpO3dYZSgpO2tYZSgpO1NYZSgpO01YZSgpO0NYZSgpO3pYZSgpO19YZSgpO1RYZSgpO0xYZSgpO0RYZSgpOyRYZSgpO0FYZSgpO0VYZSgpO0lYZSgpO1BYZSgpO05YZSgpO09YZSgpO1JYZSgpO0ZYZSgpO0JYZSgpO0hYZSgpO3FYZSgpO1ZYZSgpO2pYZSgpO1VYZSgpO1dYZSgpO0dYZSgpO1lYZSgpO0tYZSgpO1pYZSgpO1FYZSgpO1hYZSgpO0pYZSgpO2VKZSgpO3RKZSgpO3JKZSgpO2FKZSgpO2lKZSgpO3NKZSgpO25KZSgpO29KZSgpO2xKZSgpO2NKZSgpO2RKZSgpO3VKZSgpO3BKZSgpO2ZKZSgpO2hKZSgpO21KZSgpO2dKZSgpO2JKZSgpO3hKZSgpO3ZKZSgpO3lKZSgpO3dKZSgpO2tKZSgpO1NKZSgpO01KZSgpO0NKZSgpO3pKZSgpO19KZSgpO1RKZSgpO0xKZSgpO0RKZSgpOyRKZSgpO0FKZSgpO0VKZSgpO0lKZSgpO1BKZSgpO05KZSgpO09KZSgpO1JKZSgpO0ZKZSgpO0JKZSgpO0hKZSgpO3FKZSgpO1ZKZSgpO2pKZSgpO1VKZSgpO1dKZSgpO0dKZSgpO1lKZSgpO0tKZSgpO1pKZSgpO1FKZSgpO1hKZSgpO0pKZSgpO2VldCgpO3RldCgpO3JldCgpO2FldCgpO2lldCgpO3NldCgpO25ldCgpO29ldCgpO2NldCgpO2RldCgpO3VldCgpO3BldCgpO2ZldCgpO2hldCgpO21ldCgpO2dldCgpO2JldCgpO3hldCgpO3ZldCgpO3lldCgpO3dldCgpO2tldCgpO01ldCgpO0NldCgpO3pldCgpO19ldCgpO1RldCgpO0xldCgpO0RldCgpOyRldCgpO0FldCgpO0VldCgpO0lldCgpO1BldCgpO05ldCgpO09ldCgpO1JldCgpO0ZldCgpO0JldCgpO0hldCgpO3FldCgpO1ZldCgpO2pldCgpO1VldCgpO1dldCgpO0dldCgpO1lldCgpO0tldCgpO1pldCgpO1FldCgpO1hldCgpO0pldCgpO2V0dCgpO3R0dCgpO3J0dCgpO2F0dCgpO2l0dCgpO3N0dCgpO250dCgpO290dCgpO2x0dCgpO2N0dCgpO2R0dCgpO3V0dCgpO3B0dCgpO2Z0dCgpO2h0dCgpO210dCgpO2d0dCgpO2J0dCgpO3h0dCgpO3Z0dCgpO3l0dCgpO3d0dCgpO2t0dCgpO1N0dCgpO010dCgpO0N0dCgpO3p0dCgpO190dCgpO1R0dCgpO0x0dCgpO0R0dCgpOyR0dCgpO0F0dCgpO0V0dCgpO0l0dCgpO1B0dCgpO050dCgpO090dCgpO1J0dCgpO0Z0dCgpO0J0dCgpO0h0dCgpO3F0dCgpO1Z0dCgpO2p0dCgpO1V0dCgpO1d0dCgpO0d0dCgpO1l0dCgpO0t0dCgpO1p0dCgpO1F0dCgpO1h0dCgpO0p0dCgpO2VydCgpO3RydCgpO3JydCgpO2FydCgpO2lydCgpO3NydCgpO25ydCgpO29ydCgpO2xydCgpO2NydCgpO2RydCgpO3VydCgpO3BydCgpO2ZydCgpO2hydCgpO21ydCgpO2dydCgpO2JydCgpO3hydCgpO3ZydCgpO3lydCgpO3dydCgpO2tydCgpO1NydCgpO01ydCgpO0NydCgpO3pydCgpO19ydCgpO1RydCgpO0xydCgpO0RydCgpOyRydCgpO0FydCgpO0VydCgpO0lydCgpO1BydCgpO05ydCgpO09ydCgpO1JydCgpO0ZydCgpO0JydCgpO0hydCgpO3FydCgpO1ZydCgpO2pydCgpO1VydCgpO1dydCgpO0dydCgpO1lydCgpO0tydCgpO1pydCgpO1FydCgpO1hydCgpO0pydCgpO2VhdCgpO3RhdCgpO3JhdCgpO2FhdCgpO2lhdCgpO3NhdCgpO25hdCgpO29hdCgpO2xhdCgpO2NhdCgpO2RhdCgpO3VhdCgpO3BhdCgpO2ZhdCgpO2hhdCgpO21hdCgpO2dhdCgpO2JhdCgpO3hhdCgpO3ZhdCgpO3lhdCgpO3dhdCgpO2thdCgpO1NhdCgpO01hdCgpO0NhdCgpO3phdCgpO19hdCgpO1RhdCgpO0xhdCgpO0RhdCgpOyRhdCgpO0FhdCgpO0VhdCgpO0lhdCgpO1BhdCgpO05hdCgpO09hdCgpO1JhdCgpO0ZhdCgpO0JhdCgpO0hhdCgpO3FhdCgpO1ZhdCgpO2phdCgpO1VhdCgpO1dhdCgpO0dhdCgpO1lhdCgpO0thdCgpO1phdCgpO1FhdCgpO1hhdCgpO0phdCgpO2VpdCgpO3RpdCgpO3JpdCgpO2FpdCgpO2lpdCgpO3NpdCgpO25pdCgpO29pdCgpO2xpdCgpO2NpdCgpO2RpdCgpO3VpdCgpO3BpdCgpO2ZpdCgpO2hpdCgpO21pdCgpO2dpdCgpO2JpdCgpO3hpdCgpO3ZpdCgpO3lpdCgpO3dpdCgpO2tpdCgpO1NpdCgpO01pdCgpO0NpdCgpO3ppdCgpO19pdCgpO1RpdCgpO0xpdCgpO0RpdCgpOyRpdCgpO0FpdCgpO0VpdCgpO0lpdCgpO1BpdCgpO05pdCgpO09pdCgpO1JpdCgpO0ZpdCgpO0JpdCgpO0hpdCgpO3FpdCgpO1ZpdCgpO2ppdCgpO1VpdCgpO1dpdCgpO0dpdCgpO1lpdCgpO0tpdCgpO1ppdCgpO1FpdCgpO1hpdCgpO0ppdCgpO2VzdCgpO3RzdCgpO3JzdCgpO2FzdCgpO2lzdCgpO3NzdCgpO25zdCgpO29zdCgpO2xzdCgpO2NzdCgpO2RzdCgpO3VzdCgpO3BzdCgpO2ZzdCgpO2hzdCgpO21zdCgpO2dzdCgpO2JzdCgpO3hzdCgpO3ZzdCgpO3lzdCgpO3dzdCgpO2tzdCgpO1NzdCgpO01zdCgpO0NzdCgpO3pzdCgpO19zdCgpO1RzdCgpO0xzdCgpO0RzdCgpOyRzdCgpO0FzdCgpO0VzdCgpO0lzdCgpO1BzdCgpO05zdCgpO09zdCgpO1JzdCgpO0ZzdCgpO0JzdCgpO0hzdCgpO3FzdCgpO1ZzdCgpO2pzdCgpO1VzdCgpO1dzdCgpO0dzdCgpO1lzdCgpO0tzdCgpO1pzdCgpO1FzdCgpO1hzdCgpO0pzdCgpO2VudCgpO3RudCgpO3JudCgpO2FudCgpO2ludCgpO3NudCgpO25udCgpO29udCgpO2xudCgpO2NudCgpO2RudCgpO3VudCgpO3BudCgpO2ZudCgpO2hudCgpO21udCgpO2dudCgpO2JudCgpO3hudCgpO3ZudCgpO3ludCgpO3dudCgpO2tudCgpO1NudCgpO01udCgpO0NudCgpO3pudCgpO19udCgpO1RudCgpO0xudCgpO0RudCgpOyRudCgpO0FudCgpO0VudCgpO0ludCgpO1BudCgpO05udCgpO09udCgpO1JudCgpO0ZudCgpO0JudCgpO0hudCgpO3FudCgpO1ZudCgpO2pudCgpO1VudCgpO1dudCgpO0dudCgpO1ludCgpO0tudCgpO1pudCgpO1FudCgpO1hudCgpO0pudCgpO2VvdCgpO3RvdCgpO3JvdCgpO2FvdCgpO2lvdCgpO3NvdCgpO25vdCgpO29vdCgpO2xvdCgpO2NvdCgpO2RvdCgpO3VvdCgpO3BvdCgpO2ZvdCgpO2hvdCgpO21vdCgpO2dvdCgpO2JvdCgpO3hvdCgpO3ZvdCgpO3lvdCgpO3dvdCgpO2tvdCgpO1NvdCgpO01vdCgpO0NvdCgpO3pvdCgpO19vdCgpO1RvdCgpO0xvdCgpO0RvdCgpOyRvdCgpO0FvdCgpO0VvdCgpO0lvdCgpO1BvdCgpO05vdCgpO09vdCgpO1JvdCgpO0ZvdCgpO0JvdCgpO0hvdCgpO3FvdCgpO1ZvdCgpO2pvdCgpO1VvdCgpO1dvdCgpO0dvdCgpO1lvdCgpO0tvdCgpO1pvdCgpO1FvdCgpO1hvdCgpO0pvdCgpO2UxdCgpO3QxdCgpO3IxdCgpO2ExdCgpO2kxdCgpO3MxdCgpO24xdCgpO28xdCgpO2wxdCgpO2MxdCgpO2QxdCgpO3UxdCgpO3AxdCgpO2YxdCgpO2gxdCgpO20xdCgpO2cxdCgpO2IxdCgpO3gxdCgpO3YxdCgpO3kxdCgpO3cxdCgpO2sxdCgpO1MxdCgpO00xdCgpO0MxdCgpO3oxdCgpO18xdCgpO1QxdCgpO0wxdCgpO0QxdCgpOyQxdCgpO0ExdCgpO0UxdCgpO0kxdCgpO1AxdCgpO04xdCgpO08xdCgpO1IxdCgpO0YxdCgpO0IxdCgpO0gxdCgpO3ExdCgpO1YxdCgpO2oxdCgpO1UxdCgpO1cxdCgpO0cxdCgpO1kxdCgpO0sxdCgpO1oxdCgpO1ExdCgpO1gxdCgpO0oxdCgpO2VsdCgpO3RsdCgpO3JsdCgpO2FsdCgpO2lsdCgpO3NsdCgpO25sdCgpO29sdCgpO2xsdCgpO2NsdCgpO2RsdCgpO3VsdCgpO3BsdCgpO2ZsdCgpO2hsdCgpO21sdCgpO2dsdCgpO2JsdCgpO3hsdCgpO3ZsdCgpO3lsdCgpO3dsdCgpO2tsdCgpO1NsdCgpO01sdCgpO0NsdCgpO3psdCgpO19sdCgpO1RsdCgpO0xsdCgpO0RsdCgpOyRsdCgpO0FsdCgpO0VsdCgpO0lsdCgpO1BsdCgpO05sdCgpO09sdCgpO1JsdCgpO0ZsdCgpO0JsdCgpO0hsdCgpO3FsdCgpO1ZsdCgpO2psdCgpO1VsdCgpO1dsdCgpO0dsdCgpO1lsdCgpO0tsdCgpO1psdCgpO1FsdCgpO1hsdCgpO0psdCgpO2UydCgpO3QydCgpO3IydCgpO2EydCgpO2kydCgpO3MydCgpO24ydCgpO28ydCgpO2wydCgpO2MydCgpO2QydCgpO3UydCgpO3AydCgpO2YydCgpO2gydCgpO20ydCgpO2cydCgpO2IydCgpO3gydCgpO3YydCgpO3kydCgpO3cydCgpO2sydCgpO1MydCgpO00ydCgpO0MydCgpO3oydCgpO18ydCgpO1QydCgpO0wydCgpO0QydCgpOyQydCgpO0EydCgpO0UydCgpO0kydCgpO1AydCgpO04ydCgpO08ydCgpO1IydCgpO0YydCgpO0IydCgpO0gydCgpO3EydCgpO1YydCgpO2oydCgpO1UydCgpO1cydCgpO0cydCgpO1kydCgpO0sydCgpO1oydCgpO1EydCgpO1gydCgpO0oydCgpO2VjdCgpO3RjdCgpO3JjdCgpO2FjdCgpO2ljdCgpO3NjdCgpO25jdCgpO29jdCgpO2xjdCgpO2NjdCgpO2RjdCgpO3VjdCgpO3BjdCgpO2ZjdCgpO2hjdCgpO21jdCgpO2djdCgpO2JjdCgpO3hjdCgpO3ZjdCgpO3ljdCgpO3djdCgpO2tjdCgpO1NjdCgpO01jdCgpO0NjdCgpO3pjdCgpO19jdCgpO1RjdCgpO0xjdCgpO0RjdCgpOyRjdCgpO0FjdCgpO0VjdCgpO0ljdCgpO1BjdCgpO05jdCgpO09jdCgpO1JjdCgpO0ZjdCgpO0JjdCgpO0hjdCgpO3FjdCgpO1ZjdCgpO2pjdCgpO1VjdCgpO1djdCgpO0djdCgpO1ljdCgpO0tjdCgpO1pjdCgpO1FjdCgpO1hjdCgpO0pjdCgpO2UwdCgpO3QwdCgpO3IwdCgpO2EwdCgpO2kwdCgpO3MwdCgpO24wdCgpO28wdCgpO2wwdCgpO2MwdCgpO2QwdCgpO3UwdCgpO3AwdCgpO2YwdCgpO2gwdCgpO20wdCgpO2cwdCgpO2IwdCgpO3gwdCgpO3YwdCgpO3kwdCgpO3cwdCgpO2swdCgpO1MwdCgpO00wdCgpO0MwdCgpO3owdCgpO18wdCgpO1QwdCgpO0wwdCgpO0QwdCgpOyQwdCgpO0EwdCgpO0UwdCgpO0kwdCgpO1AwdCgpO04wdCgpO08wdCgpO1IwdCgpO0YwdCgpO0IwdCgpO0gwdCgpO3EwdCgpO1YwdCgpO2owdCgpO1UwdCgpO1cwdCgpO0cwdCgpO1kwdCgpO0swdCgpO1owdCgpO1EwdCgpO1gwdCgpO0owdCgpO2VkdCgpO3RkdCgpO3JkdCgpO2FkdCgpO2lkdCgpO3NkdCgpO25kdCgpO29kdCgpO2xkdCgpO2NkdCgpO2RkdCgpO3VkdCgpO3BkdCgpO2ZkdCgpO2hkdCgpO21kdCgpO2dkdCgpO2JkdCgpO3hkdCgpO3ZkdCgpO3lkdCgpO3dkdCgpO2tkdCgpO1NkdCgpO01kdCgpO0NkdCgpO3pkdCgpO19kdCgpO1RkdCgpO0xkdCgpO0RkdCgpOyRkdCgpO0FkdCgpO0VkdCgpO0lkdCgpO1BkdCgpO05kdCgpO09kdCgpO1JkdCgpO0ZkdCgpO0JkdCgpO0hkdCgpO3FkdCgpO1ZkdCgpO2pkdCgpO1VkdCgpO1dkdCgpO0dkdCgpO1lkdCgpO0tkdCgpO1pkdCgpO1FkdCgpO1hkdCgpO0pkdCgpO2U0dCgpO3Q0dCgpO3I0dCgpO2E0dCgpO2k0dCgpO3M0dCgpO240dCgpO280dCgpO2w0dCgpO2M0dCgpO2Q0dCgpO3U0dCgpO3A0dCgpO2Y0dCgpO2g0dCgpO200dCgpO2c0dCgpO2I0dCgpO3g0dCgpO3Y0dCgpO3k0dCgpO3c0dCgpO2s0dCgpO1M0dCgpO000dCgpO0M0dCgpO3o0dCgpO180dCgpO1Q0dCgpO0w0dCgpO0Q0dCgpOyQ0dCgpO0E0dCgpO0U0dCgpO0k0dCgpO1A0dCgpO040dCgpO080dCgpO1I0dCgpO0Y0dCgpO0I0dCgpO0g0dCgpO3E0dCgpO1Y0dCgpO2o0dCgpO1U0dCgpO1c0dCgpO0c0dCgpO1k0dCgpO0s0dCgpO1o0dCgpO1E0dCgpO1g0dCgpO0o0dCgpO2UzdCgpO3QzdCgpO3IzdCgpO2EzdCgpO2kzdCgpO3MzdCgpO24zdCgpO28zdCgpO2wzdCgpO2MzdCgpO2QzdCgpO3UzdCgpO3AzdCgpO2YzdCgpO2gzdCgpO20zdCgpO2czdCgpO2IzdCgpO3gzdCgpO3YzdCgpO3kzdCgpO3czdCgpO2szdCgpO1MzdCgpO00zdCgpO0MzdCgpO3ozdCgpO18zdCgpO1QzdCgpO0wzdCgpO0QzdCgpOyQzdCgpO0EzdCgpO0UzdCgpO0kzdCgpO1AzdCgpO04zdCgpO08zdCgpO1IzdCgpO0YzdCgpO0IzdCgpO0gzdCgpO3EzdCgpO1YzdCgpO2ozdCgpO1UzdCgpO1czdCgpO0czdCgpO1kzdCgpO0szdCgpO1ozdCgpO1EzdCgpO1gzdCgpO0ozdCgpO2V1dCgpO3R1dCgpO3J1dCgpO2F1dCgpO2l1dCgpO3N1dCgpO251dCgpO291dCgpO2x1dCgpO2N1dCgpO2R1dCgpO3V1dCgpO3B1dCgpO2Z1dCgpO2h1dCgpO211dCgpO2d1dCgpO2J1dCgpO3h1dCgpO3Z1dCgpO3l1dCgpO3d1dCgpO2t1dCgpO1N1dCgpO011dCgpO0N1dCgpO3p1dCgpO191dCgpO1R1dCgpO0x1dCgpO0R1dCgpOyR1dCgpO0F1dCgpO0V1dCgpO0l1dCgpO1B1dCgpO051dCgpO091dCgpO1J1dCgpO0Z1dCgpO0J1dCgpO0h1dCgpO3F1dCgpO1Z1dCgpO2p1dCgpO1V1dCgpO1d1dCgpO0d1dCgpO1l1dCgpO0t1dCgpO1p1dCgpO1F1dCgpO1h1dCgpO0p1dCgpO2VwdCgpO3RwdCgpO3JwdCgpO2FwdCgpO2lwdCgpO3NwdCgpO25wdCgpO29wdCgpO2xwdCgpO2NwdCgpO2RwdCgpO3VwdCgpO3BwdCgpO2ZwdCgpO2hwdCgpO21wdCgpO2dwdCgpO2JwdCgpO3hwdCgpO3ZwdCgpO3lwdCgpO3dwdCgpO2twdCgpO1NwdCgpO01wdCgpO0NwdCgpO3pwdCgpO19wdCgpO1RwdCgpO0xwdCgpO0RwdCgpOyRwdCgpO0FwdCgpO0VwdCgpO0lwdCgpO1BwdCgpO05wdCgpO09wdCgpO1JwdCgpO0ZwdCgpO0JwdCgpO0hwdCgpO3FwdCgpO1ZwdCgpO2pwdCgpO1VwdCgpO1dwdCgpO0dwdCgpO1lwdCgpO0twdCgpO1pwdCgpO1FwdCgpO1hwdCgpO0pwdCgpO2VmdCgpO3RmdCgpO3JmdCgpO2FmdCgpO2lmdCgpO3NmdCgpO25mdCgpO29mdCgpO2xmdCgpO2NmdCgpO2RmdCgpO3VmdCgpO3BmdCgpO2ZmdCgpO2hmdCgpO21mdCgpO2dmdCgpO2JmdCgpO3hmdCgpO3ZmdCgpO3lmdCgpO3dmdCgpO2tmdCgpO1NmdCgpO01mdCgpO0NmdCgpO3pmdCgpO19mdCgpO1RmdCgpO0xmdCgpO0RmdCgpOyRmdCgpO0FmdCgpO0VmdCgpO0lmdCgpO1BmdCgpO05mdCgpO09mdCgpO1JmdCgpO0ZmdCgpO0JmdCgpO0hmdCgpO3FmdCgpO1ZmdCgpO2pmdCgpO1VmdCgpO1dmdCgpO0dmdCgpO1lmdCgpO0tmdCgpO1pmdCgpO1FmdCgpO1hmdCgpO0pmdCgpO2VodCgpO3RodCgpO3JodCgpO2FodCgpO2lodCgpO3NodCgpO25odCgpO29odCgpO2xodCgpO2NodCgpO2RodCgpO3VodCgpO3BodCgpO2ZodCgpO2hodCgpO21odCgpO2dodCgpO2JodCgpO3hodCgpO3ZodCgpO3lodCgpO3dodCgpO2todCgpO1NodCgpO01odCgpO0NodCgpO3podCgpO19odCgpO1RodCgpO0xodCgpO0RodCgpOyRodCgpO0FodCgpO0VodCgpO0lodCgpO1BodCgpO05odCgpO09odCgpO1JodCgpO0ZodCgpO0JodCgpO0hodCgpO3FodCgpO1ZodCgpO2podCgpO1VodCgpO1dodCgpO0dodCgpO1lodCgpO0todCgpO1podCgpO1FodCgpO1hodCgpO0podCgpO2U2dCgpO3Q2dCgpO3I2dCgpO2E2dCgpO2k2dCgpO3M2dCgpO242dCgpO282dCgpO2w2dCgpO2M2dCgpO2Q2dCgpO3U2dCgpO3A2dCgpO2Y2dCgpO2g2dCgpO202dCgpO2c2dCgpO2I2dCgpO3g2dD1pKCh7aWNvbnM6dD17fSxuYW1lQXR0cjplPSJkYXRhLWx1Y2lkZSIsYXR0cnM6cj17fSxyb290OmE9ZG9jdW1lbnQsaW5UZW1wbGF0ZXM6c309e30pPT57aWYoIU9iamVjdC52YWx1ZXModCkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgUGxlYXNlIHByb3ZpZGUgYW4gaWNvbnMgb2JqZWN0LgpJZiB5b3Ugd2FudCB0byB1c2UgYWxsIHRoZSBpY29ucyB5b3UgY2FuIGltcG9ydCBpdCBsaWtlOgogXGBpbXBvcnQgeyBjcmVhdGVJY29ucywgaWNvbnMgfSBmcm9tICdsdWNpZGUnOwpsdWNpZGUuY3JlYXRlSWNvbnMoe2ljb25zfSk7XGBgKTtpZih0eXBlb2YgYT4idSIpdGhyb3cgbmV3IEVycm9yKCJgY3JlYXRlSWNvbnMoKWAgb25seSB3b3JrcyBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIik7aWYoQXJyYXkuZnJvbShhLnF1ZXJ5U2VsZWN0b3JBbGwoYFske2V9XWApKS5mb3JFYWNoKG89PkxwZShvLHtuYW1lQXR0cjplLGljb25zOnQsYXR0cnM6cn0pKSxzJiZBcnJheS5mcm9tKGEucXVlcnlTZWxlY3RvckFsbCgidGVtcGxhdGUiKSkuZm9yRWFjaChsPT54NnQoe2ljb25zOnQsbmFtZUF0dHI6ZSxhdHRyczpyLHJvb3Q6bC5jb250ZW50LGluVGVtcGxhdGVzOnN9KSksZT09PSJkYXRhLWx1Y2lkZSIpe2xldCBvPWEucXVlcnlTZWxlY3RvckFsbCgiW2ljb24tbmFtZV0iKTtvLmxlbmd0aD4wJiYoY29uc29sZS53YXJuKCJbTHVjaWRlXSBTb21lIGljb25zIHdlcmUgZm91bmQgd2l0aCB0aGUgbm93IGRlcHJlY2F0ZWQgaWNvbi1uYW1lIGF0dHJpYnV0ZS4gVGhlc2Ugd2lsbCBzdGlsbCBiZSByZXBsYWNlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJ1dCB3aWxsIG5vIGxvbmdlciBiZSBzdXBwb3J0ZWQgaW4gdjEuMCBhbmQgeW91IHNob3VsZCBzd2l0Y2ggdG8gZGF0YS1sdWNpZGUiKSxBcnJheS5mcm9tKG8pLmZvckVhY2gobD0+THBlKGwse25hbWVBdHRyOiJpY29uLW5hbWUiLGljb25zOnQsYXR0cnM6cn0pKSl9fSwiY3JlYXRlSWNvbnMiKX0pO3ZhciBCVnIsSFZyPXUoKCk9Pnt2ZSgpO0tyKCk7RHBlKCk7QlZyPWkoKCk9PntsZXQgdD1PYmplY3Qua2V5cygkcGUuZmEpO2NvbnNvbGUubG9nKCJGaXJzdCBmZXcgTHVjaWRlIGtleXM6IixPYmplY3Qua2V5cyhhZCkuc2xpY2UoMCw1KSk7bGV0IGU9T2JqZWN0LmtleXMoYWQpLmZpbHRlcihuPT57bGV0IG89blswXT09PW5bMF0udG9VcHBlckNhc2UoKSYmblswXSE9PW5bMF0udG9Mb3dlckNhc2UoKSxsPXR5cGVvZiBhZFtuXT09ImZ1bmN0aW9uIixjPSFbImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVJY29ucyIsImRlZmF1bHQiXS5pbmNsdWRlcyhuKTtyZXR1cm4gbCYmbyYmY30pLm1hcChuPT5uLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpK24uc2xpY2UoMSkpO2lmKGNvbnNvbGUubG9nKGBGb3VuZCAke2UubGVuZ3RofSBMdWNpZGUgaWNvbnNgKSxlLmxlbmd0aD09PTAmJihjb25zb2xlLmxvZygiVHJ5aW5nIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGZpbmQgTHVjaWRlIGljb25zIiksZjkpKXtsZXQgbj1mOXx8e307ZS5wdXNoKC4uLk9iamVjdC5rZXlzKG4pKSxjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gaWNvbnMgdmlhIGFsdGVybmF0aXZlIG1ldGhvZGApfWxldCByPWkoKCk9PntsZXQgbj10Lm1hcChkPT5gZmE6JHtkfWApLG89ZS5tYXAoZD0+YGx1Y2lkZToke2R9YCksbD1bLi4ubiwuLi5vXSxjPWwuam9pbihgCmApO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGMpLnRoZW4oKCk9PntsZXQgZj13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldCxwPWYudGV4dENvbnRlbnQ7Zi50ZXh0Q29udGVudD1gXHUyNzEzIENvcGllZCAke2wubGVuZ3RofSBpY29uIG5hbWVzIWAsc2V0VGltZW91dCgoKT0+e2YudGV4dENvbnRlbnQ9cH0sMmUzKX0pfSwiY29weUFsbEljb25OYW1lcyIpLGE9aShuPT57bGV0IG89bi50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksbD1uLnRhcmdldC5jbG9zZXN0KCIuZGVtb0NvbnRhaW5lciIpO2wucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXIiKS5mb3JFYWNoKGQ9PntsZXQgZj1kLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIik7bz09PSIifHxmJiZmLmluY2x1ZGVzKG8pP2QuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6ZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLGwucXVlcnlTZWxlY3RvckFsbCgiLnNlY3Rpb24tY29udGFpbmVyIikuZm9yRWFjaChkPT57bGV0IGY9ZC5xdWVyeVNlbGVjdG9yQWxsKCIuaWNvbkNvbnRhaW5lcjpub3QoLmhpZGRlbikiKS5sZW5ndGgscD1kLnF1ZXJ5U2VsZWN0b3IoIi5pY29uLWNvdW50Iik7aWYocCl7bGV0IGg9ZC5jbGFzc0xpc3QuY29udGFpbnMoImZhLXNlY3Rpb24iKT90Lmxlbmd0aDplLmxlbmd0aDtwLnRleHRDb250ZW50PWY9PT1oP2Ake2h9IGljb25zYDpgJHtmfSBvZiAke2h9IGljb25zYH19KX0sInNlYXJjaEljb25zIikscz1pKChuLG8pPT57bGV0IGw9YCR7b306JHtufWA7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQobCkudGhlbigoKT0+e2xldCBmPXdpbmRvdy5ldmVudC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRvb2x0aXAiKTtmJiYoZi50ZXh0Q29udGVudD0iQ29waWVkISIsc2V0VGltZW91dCgoKT0+e2YudGV4dENvbnRlbnQ9IkNsaWNrIHRvIGNvcHkifSwyZTMpKX0pfSwiY29weUljb25OYW1lIik7cmV0dXJuIHdgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBiYWNrZ3JvdW5kOiAjMTExMTExOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuc2VhcmNoLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoIHsKICAgICAgZmxleDogMTsKICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIAogICAgI2ljb25TZWFyY2g6Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgICBib3JkZXItY29sb3I6ICNlNDAwMmI7CiAgICB9CiAgICAKICAgIC5jb3B5LWFsbC1idXR0b24gewogICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogI2M0MDAxYjsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICAgIAogICAgZGVlcy1pY29uIHsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICB9CgogICAgLmljb25Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMHB4IDE2cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgICB9CgogICAgLmljb25OYW1lIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiAjY2NjOwogICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWF4LXdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzMzMzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAuYXBpLW5vdGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjZTQwMDJiOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBwYWRkaW5nOiAxMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQwMDJiOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI4LCAwLCA0MywgMC4xKTsKICAgIH0KICAgIAogICAgLmljb24tY291bnQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjODg4OwogICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIH0KICAgIAogICAgLmljb25zLWdyaWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgIAogICAgLmNvcHktdG9vbHRpcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHRvcDogLTMwcHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIC5jb3B5LXRvb2x0aXAgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KICAgIAogICAgLmhpZGRlbiB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaWNvblNlYXJjaCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBpY29ucy4uLiIgQGlucHV0PSR7YX0+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYWxsLWJ1dHRvbiIgQGNsaWNrPSR7cn0+8J+TiyBDb3B5IEFsbCBJY29uIE5hbWVzPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iYXBpLW5vdGUiPgogICAgICBOZXcgQVBJOiBVc2UgPGNvZGU+aWNvbj0iZmE6aWNvbk5hbWUiPC9jb2RlPiBvciA8Y29kZT5pY29uPSJsdWNpZGU6aWNvbk5hbWUiPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmljb25GQTwvY29kZT4uIAogICAgICBDbGljayBhbnkgaWNvbiB0byBjb3B5IGl0cyBuZXcgZm9ybWF0IHRvIGNsaXBib2FyZC4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBmYS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgRm9udEF3ZXNvbWUgSWNvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1jb3VudCI+JHt0Lmxlbmd0aH0gaWNvbnM8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpY29ucy1ncmlkIj4KICAgICAgICAke3QubWFwKG49PntsZXQgbz1gZmE6JHtufWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBmYS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5zKG4sImZhIil9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke299IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uTmFtZSI+ZmE6JHtufTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGFpbmVyIGx1Y2lkZS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgTHVjaWRlIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7ZS5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHtlLm1hcChuPT57bGV0IG89YGx1Y2lkZToke259YDtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uQ29udGFpbmVyIGx1Y2lkZS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5zKG4sImx1Y2lkZSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtvfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmx1Y2lkZToke259PC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10b29sdGlwIj5DbGljayB0byBjb3B5PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgYH0sImRlbW9GdW5jIil9KTtmdW5jdGlvbiBSRWEoKXtJeS5zaXplPnFWciYmQXJyYXkuZnJvbShJeS5rZXlzKCkpLnNsaWNlKDAscVZyLzUpLmZvckVhY2goZT0+SXkuZGVsZXRlKGUpKX12YXIgRXksdWMsT0VhLCRwZSxJeSxxVnIsVlZyLEtyPXUoKCk9Pnt2ZSgpO01yKCk7bHQoKTtiMHIoKTtrNXIoKTtIOXIoKTskVnIoKTtIVnIoKTtEcGUoKTtEcGUoKTtFeT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdWM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LE9FYT17YXJyb3dSaWdodDprcGUsYXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTphVCxiZWxsOmRwZSxidWc6Q3BlLGJ1aWxkaW5nOnZwZSxjYXJldExlZnQ6ZnBlLGNhcmV0UmlnaHQ6Y3BlLGNoZWNrOndwZSxjaXJjbGVJbmZvOnNULGNpcmNsZUNoZWNrOl9fLGNpcmNsZUNoZWNrU29saWQ6Sl8sY2lyY2xlWG1hcms6enksY2lyY2xlWG1hcmtTb2xpZDokeSxjbG9ja1JvdGF0ZUxlZnQ6ZVQsY29weTp1dWUsY29weVNvbGlkOnpwZSxkZXNrdG9wOmlULGV5ZTpwcGUsZXllU2xhc2g6X3BlLGZpbGVJbnZvaWNlOlNwZSxmaWxlSW52b2ljZURvbGxlcjpNcGUsZ2VhcjpRXyxncmlwOkF5LG1hZ25pZnlpbmdHbGFzczpZXyxtZXNzYWdlOkNfLG1lc3NhZ2VTb2xpZDpXXyxtb25leUNoZWNrRG9sbGFyOnJULG11Z0hvdDpUcGUsbWludXM6VV8sbmV0d29ya1dpcmVkOmJwZSxwYXBlcmNsaXA6eXBlLHBhc3RlOk1fLHBhc3RlU29saWQ6al8scGVuVG9TcXVhcmU6S18scGx1czp0VCxyZWNlaXB0OmhwZSxyc3M6R18sc2hhcmU6Wl8sc3VuOmR1ZSxzdW5Tb2xpZDpncGUsdGVybWluYWw6eHBlLHRyYXNoOm5ULHRyYXNoU29saWQ6blQsdHJhc2hDYW46el8sdHJhc2hDYW5Tb2xpZDpYXyx1c2VyczptcGUsd2FsbGV0OnVwZSx4bWFyazpFcCxmYWNlYm9vazpRM2UsZ29vZ2xlOkszZSxpbnN0YWdyYW06ZXVlLGxpbmtlZGluOlozZSxtZWRpdW06d18sc2xhY2s6WDNlLHRpa3RvazpKM2UsdHdpdHRlcjp0dWV9LCRwZT17ZmE6T0VhfSxJeT1uZXcgTWFwLHFWcj01MDA7aShSRWEsImxpbWl0Q2FjaGVTaXplIik7VlZyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pY29uIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJY29uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmkoUz0+UywiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOmkoUz0+UywidG9BdHRyaWJ1dGUiKX19KV0sYz1bUCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmkoUz0+UywiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOmkoUz0+UywidG9BdHRyaWJ1dGUiKX19KV0scD1bUCh7dHlwZTpOdW1iZXJ9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpOdW1iZXJ9KV0sRXkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uRkEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imljb25GQSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmljb25GQSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmljb25GQT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksRXkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpY29uImluIFMsImhhcyIpLGdldDppKFM9PlMuaWNvbiwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmljb249T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLEV5KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imljb25TaXplImluIFMsImhhcyIpLGdldDppKFM9PlMuaWNvblNpemUsImdldCIpLHNldDppKChTLE8pPT57Uy5pY29uU2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksRXkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY29sb3IiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jb2xvciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmNvbG9yPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxFeSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cm9rZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdHJva2VXaWR0aCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN0cm9rZVdpZHRoLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc3Ryb2tlV2lkdGg9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEV5KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89QlZyO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPXVjKHRoaXMsbyx2b2lkIDApO2dldCBpY29uRkEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaWNvbkZBKF8pe3RoaXMuI2U9X30jdD0odWModGhpcyxsKSx1Yyh0aGlzLGQsdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgaWNvbihfKXt0aGlzLiN0PV99I3I9KHVjKHRoaXMsZiksdWModGhpcyxoLHZvaWQgMCkpO2dldCBpY29uU2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBpY29uU2l6ZShfKXt0aGlzLiNyPV99I2E9KHVjKHRoaXMsbSksdWModGhpcyxiLCJjdXJyZW50Q29sb3IiKSk7Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGNvbG9yKF8pe3RoaXMuI2E9X30jaT0odWModGhpcyxnKSx1Yyh0aGlzLGssMikpO2dldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBzdHJva2VXaWR0aChfKXt0aGlzLiNpPV99bGFzdEljb249KHVjKHRoaXMsTSksbnVsbCk7bGFzdEljb25TaXplPW51bGw7bGFzdENvbG9yPW51bGw7bGFzdFN0cm9rZVdpZHRoPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLFphLnNldHVwKCl9Z2V0RWZmZWN0aXZlSWNvbigpe3JldHVybiB0aGlzLmljb24/dGhpcy5pY29uOnRoaXMuaWNvbkZBP3RoaXMuaWNvbkZBLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT90aGlzLmljb25GQTpgZmE6JHt0aGlzLmljb25GQX1gOm51bGx9cGFyc2VJY29uU3RyaW5nKF8pe2xldCBTPV8udG9Mb3dlckNhc2UoKTtyZXR1cm4gUy5zdGFydHNXaXRoKCJmYToiKT97dHlwZToiZmEiLG5hbWU6Xy5zdWJzdHJpbmcoMyl9OlMuc3RhcnRzV2l0aCgibHVjaWRlOiIpP3t0eXBlOiJsdWNpZGUiLG5hbWU6Xy5zdWJzdHJpbmcoNyl9Ont0eXBlOiJsdWNpZGUiLG5hbWU6X319cmVuZGVyTHVjaWRlSWNvbihfKXtsZXQgUz1gbHVjaWRlOiR7X306JHt0aGlzLmljb25TaXplfToke3RoaXMuY29sb3J9OiR7dGhpcy5zdHJva2VXaWR0aH1gO2lmKEl5LmhhcyhTKSlyZXR1cm4gSXkuZ2V0KFMpfHwiIjt0cnl7bGV0IE89Xy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStfLnNsaWNlKDEpO2lmKCFhZFtPXSlyZXR1cm4gY29uc29sZS53YXJuKGBMdWNpZGUgaWNvbiAnJHtPfScgbm90IGZvdW5kIGluIGx1Y2lkZUljb25zIG9iamVjdGApLCIiO2xldCBMPUlwKGFkW09dLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoIUwpcmV0dXJuIGNvbnNvbGUud2FybihgY3JlYXRlRWxlbWVudCByZXR1cm5lZCBlbXB0eSByZXN1bHQgZm9yICR7T31gKSwiIjtsZXQgRT1MLm91dGVySFRNTDtyZXR1cm4gSXkuc2V0KFMsRSksUkVhKCksRX1jYXRjaChPKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uICR7X306YCxPKSxgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIke3RoaXMuaWNvblNpemV9IiBoZWlnaHQ9IiR7dGhpcy5pY29uU2l6ZX0iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIke3RoaXMuY29sb3J9IiBzdHJva2Utd2lkdGg9IiR7dGhpcy5zdHJva2VXaWR0aH0iIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtc2l6ZT0iNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgZmlsbD0iJHt0aGlzLmNvbG9yfSI+JHtffTwvdGV4dD4KICAgICAgPC9zdmc+YH19c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBJbXByb3ZlIHJlbmRlcmluZyBwZXJmb3JtYW5jZSAqLwogICAgICAjaWNvbkNvbnRhaW5lciBzdmcgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyAvKiBIZWxwcyB3aXRoIGFuaW1hdGlvbnMgKi8KICAgICAgICBjb250YWluOiBzdHJpY3Q7IC8qIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiAqLwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtaYS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICAjaWNvbkNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogJHt0aGlzLmljb25TaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGlkPSJpY29uQ29udGFpbmVyIj48L2Rpdj4KICAgIGB9dXBkYXRlZCgpe3RoaXMuaWNvblNpemV8fCh0aGlzLmljb25TaXplPXBhcnNlSW50KGdsb2JhbFRoaXMuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5mb250U2l6ZS5yZXBsYWNlKC9cRC9nLCIiKSkpO2xldCBfPXRoaXMuZ2V0RWZmZWN0aXZlSWNvbigpO2lmKHRoaXMubGFzdEljb249PT1fJiZ0aGlzLmxhc3RJY29uU2l6ZT09PXRoaXMuaWNvblNpemUmJnRoaXMubGFzdENvbG9yPT09dGhpcy5jb2xvciYmdGhpcy5sYXN0U3Ryb2tlV2lkdGg9PT10aGlzLnN0cm9rZVdpZHRoKXJldHVybjt0aGlzLmxhc3RJY29uPV8sdGhpcy5sYXN0SWNvblNpemU9dGhpcy5pY29uU2l6ZSx0aGlzLmxhc3RDb2xvcj10aGlzLmNvbG9yLHRoaXMubGFzdFN0cm9rZVdpZHRoPXRoaXMuc3Ryb2tlV2lkdGg7bGV0IFM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIjaWNvbkNvbnRhaW5lciIpO2lmKCEoIVN8fCFfKSl0cnl7bGV0e3R5cGU6TyxuYW1lOkx9PXRoaXMucGFyc2VJY29uU3RyaW5nKF8pO2lmKE89PT0ibHVjaWRlIil7Uy5pbm5lckhUTUw9IiI7dHJ5e2xldCBFPUwuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrTC5zbGljZSgxKTtpZihhZFtFXSl7bGV0IEI9SXAoYWRbRV0se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZihCKXtTLmFwcGVuZENoaWxkKEIpO3JldHVybn19dGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIGVsZW1lbnQgZm9yICR7RX1gKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKCJFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb246IixFKTtsZXQgQj10aGlzLnJlbmRlckx1Y2lkZUljb24oTCk7QiYmKFMuaW5uZXJIVE1MPUIpfX1lbHNle2xldCBFPSRwZS5mYVtMXTtpZihFKXtsZXQgQj1MRWUoRSkuaHRtbFswXTtTLmlubmVySFRNTD1CfWVsc2UgY29uc29sZS53YXJuKGBGb250QXdlc29tZSBpY29uIG5vdCBmb3VuZDogJHtMfWApfX1jYXRjaChPKXtjb25zb2xlLmVycm9yKGBFcnJvciB1cGRhdGluZyBpY29uICR7X306YCxPKX19YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubGFzdEljb249bnVsbCx0aGlzLmxhc3RJY29uU2l6ZT1udWxsLHRoaXMubGFzdENvbG9yPW51bGwsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9bnVsbH1zdGF0aWN7dWMoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIGpWcix2NnQsQ3Isc3M9dSgoKT0+e3ZuKCk7TjJyKCk7dmUoKTtNcigpO25jKCk7T28oKTtLcigpO2x0KCk7alZyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx2NnQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LENyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1jb250ZXh0bWVudSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ29udGV4dG1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGpWcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibWVudUl0ZW1zImluIGYsImhhcyIpLGdldDppKGY9PmYubWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YubWVudUl0ZW1zPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxqVnIobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1QMnI7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGNvbnRleHRNZW51RGVhY3RpdmF0ZWQ9ITE7c3RhdGljIGFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO3N0YXRpYyBpbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZD0+e2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47ZC5wcmV2ZW50RGVmYXVsdCgpLGMuYWNjdW11bGF0ZWRNZW51SXRlbXM9W107bGV0IGY9ZC5jb21wb3NlZFBhdGgoKTtmb3IobGV0IHAgb2YgZilpZihwLmdldENvbnRleHRNZW51SXRlbXMpe2xldCBoPXAuZ2V0Q29udGV4dE1lbnVJdGVtcygpO2gmJmgubGVuZ3RoPjAmJihjLmFjY3VtdWxhdGVkTWVudUl0ZW1zLmxlbmd0aD4wJiZjLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goe2RpdmlkZXI6ITB9KSxjLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goLi4uaCkpfWMub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZCxjLmFjY3VtdWxhdGVkTWVudUl0ZW1zKX0pfXN0YXRpYyBhc3luYyBvcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhkLGYpe2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHA9bmV3IGM7cC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHAuc3R5bGUuekluZGV4PVN0cmluZyhqcy5vdmVybGF5LmNvbnRleHRNZW51KSxwLnN0eWxlLm9wYWNpdHk9IjAiLHAuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIscC5tZW51SXRlbXM9ZixwLndpbmRvd0xheWVyPWF3YWl0IHluLmNyZWF0ZUFuZFNob3coKSxwLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYyB5PT57eS50YXJnZXQuY2xvc2VzdCgiZGVlcy1jb250ZXh0bWVudSIpfHxhd2FpdCBwLmRlc3Ryb3koKX0pLGRvY3VtZW50LmJvZHkuYXBwZW5kKHApLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGg9cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPXdpbmRvdy5pbm5lcldpZHRoLHY9d2luZG93LmlubmVySGVpZ2h0LGI9ZC5jbGllbnRZLGc9ZC5jbGllbnRYO2craC53aWR0aD5tJiYoZz1tLWgud2lkdGgtMTApLGIraC5oZWlnaHQ+diYmKGI9di1oLmhlaWdodC0xMCksZzwxMCYmKGc9MTApLGI8MTAmJihiPTEwKSxwLnN0eWxlLnRvcD1gJHtifXB4YCxwLnN0eWxlLmxlZnQ9YCR7Z31weGAscC5zdHlsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iixhd2FpdCBjci5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHAuc3R5bGUub3BhY2l0eT0iMSIscC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkifSNlPXY2dCh0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKGQpe3RoaXMuI2U9ZH13aW5kb3dMYXllcj12NnQodGhpcyxsKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDI4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWVudWl0ZW0uaGFzLXN1Ym1lbnU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAn4oC6JzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAubWVudWl0ZW06YWN0aXZlOm5vdCguaGFzLXN1Ym1lbnUpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudWl0ZW0tc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChkPT57aWYoImRpdmlkZXIiaW4gZCYmZC5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgZj1kLHA9Zi5zdWJtZW51JiZmLnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Im1lbnVpdGVtICR7Zi5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSAke3A/Imhhcy1zdWJtZW51IjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0keygpPT4hZi5kaXNhYmxlZCYmIXAmJnRoaXMuaGFuZGxlQ2xpY2soZil9CiAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUhvdmVyKGYscCl9CiAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke2YuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Zi5pY29uTmFtZX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXRleHQiPiR7Zi5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAke2Yuc2hvcnRjdXQmJiFwP3dgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tc2hvcnRjdXQiPiR7Zi5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSl9CiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIiBAY2xpY2s9JHsoKT0+e2MuY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMCx0aGlzLmRlc3Ryb3koKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249Imx1Y2lkZTp4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+QWxsb3cgbmF0aXZlIGNvbnRleHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6d2BgfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5mb2N1cygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlkb3duKX1oYW5kbGVLZXlkb3duPWkoZD0+e2xldCBmPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbTpub3QoLmRpc2FibGVkKSIpKSxwPWYuZmluZEluZGV4KGg9PmgubWF0Y2hlcygiOmhvdmVyIikpO3N3aXRjaChkLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmQucHJldmVudERlZmF1bHQoKTtsZXQgaD1wKzE8Zi5sZW5ndGg/cCsxOjA7ZltoXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCBtPXAtMT49MD9wLTE6Zi5sZW5ndGgtMTtmW21dLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlZW50ZXIiKSk7YnJlYWs7Y2FzZSJFbnRlciI6ZC5wcmV2ZW50RGVmYXVsdCgpLHA+PTAmJmZbcF0uY2xpY2soKTticmVhaztjYXNlIkVzY2FwZSI6ZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVzdHJveSgpO2JyZWFrfX0sImhhbmRsZUtleWRvd24iKTthc3luYyBoYW5kbGVDbGljayhkKXtkLmFjdGlvbigpLGF3YWl0IHRoaXMuZGVzdHJveUFsbCgpfWFzeW5jIGhhbmRsZU1lbnVJdGVtSG92ZXIoZCxmKXt0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCksdGhpcy5zdWJtZW51JiZhd2FpdCB0aGlzLmhpZGVTdWJtZW51KCksZiYmZC5zdWJtZW51JiYodGhpcy5zdWJtZW51VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zaG93U3VibWVudShkKX0sMjAwKSl9aGFuZGxlTWVudUl0ZW1MZWF2ZSgpe3RoaXMuc3VibWVudVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnN1Ym1lbnUmJiF0aGlzLnN1Ym1lbnUubWF0Y2hlcygiOmhvdmVyIikmJnRoaXMuaGlkZVN1Ym1lbnUoKX0sMzAwKX1hc3luYyBzaG93U3VibWVudShkKXtpZighZC5zdWJtZW51fHxkLnN1Ym1lbnUubGVuZ3RoPT09MClyZXR1cm47bGV0IHA9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVpdGVtIikpLmZpbmQoaz0+ay5xdWVyeVNlbGVjdG9yKCIubWVudWl0ZW0tdGV4dCIpPy50ZXh0Q29udGVudD09PWQubmFtZSk7aWYoIXApcmV0dXJuO3RoaXMuc3VibWVudT1uZXcgYyx0aGlzLnN1Ym1lbnUubWVudUl0ZW1zPWQuc3VibWVudSx0aGlzLnN1Ym1lbnUucGFyZW50TWVudT10aGlzLHRoaXMuc3VibWVudS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3VibWVudS5zdHlsZS56SW5kZXg9U3RyaW5nKHBhcnNlSW50KHRoaXMuc3R5bGUuekluZGV4KSsxKSx0aGlzLnN1Ym1lbnUuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkiLGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc3VibWVudSksYXdhaXQgY3Iuc21hcnRkZWxheS5kZWxheUZvcigwKTtsZXQgaD1wLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG09dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PXRoaXMuc3VibWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPXdpbmRvdy5pbm5lcldpZHRoLGc9bS5yaWdodC00LHk9aC50b3A7Zyt2LndpZHRoPmItMTAmJihnPW0ubGVmdC12LndpZHRoKzQpLHkrdi5oZWlnaHQ+d2luZG93LmlubmVySGVpZ2h0LTEwJiYoeT13aW5kb3cuaW5uZXJIZWlnaHQtdi5oZWlnaHQtMTApLHRoaXMuc3VibWVudS5zdHlsZS5sZWZ0PWAke2d9cHhgLHRoaXMuc3VibWVudS5zdHlsZS50b3A9YCR7eX1weGAsYXdhaXQgY3Iuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN1Ym1lbnUuc3R5bGUub3BhY2l0eT0iMSIsdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMSkiLHRoaXMuc3VibWVudS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwoKT0+e3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKX0pLHRoaXMuc3VibWVudS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKT0+e3RoaXMuaGFuZGxlTWVudUl0ZW1MZWF2ZSgpfSl9YXN5bmMgaGlkZVN1Ym1lbnUoKXt0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKX1hc3luYyBkZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fCh0aGlzLmlzRGVzdHJveWluZz0hMCx0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCksdGhpcy5zdWJtZW51JiYoYXdhaXQgdGhpcy5zdWJtZW51LmRlc3Ryb3koKSx0aGlzLnN1Ym1lbnU9bnVsbCksdGhpcy53aW5kb3dMYXllciYmIXRoaXMucGFyZW50TWVudSYmdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCkiLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTAwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSl9YXN5bmMgZGVzdHJveUFsbCgpe2xldCBkPXRoaXM7Zm9yKDtkLnBhcmVudE1lbnU7KWQ9ZC5wYXJlbnRNZW51O2F3YWl0IGQuZGVzdHJveSgpfXN0YXRpY3t2NnQoYSxyKX19O3JldHVybiBjPWF9KSgpO0NyLmluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpfSk7dmFyIFVWcix5NnQsRkVhLFdWcj11KCgpPT57dmUoKTtVVnI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHk2dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sRkVhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1kZW1vd3JhcHBlciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzRGVtb1dyYXBwZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHthdHRyaWJ1dGU6ITF9KV0sVVZyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InJ1bkFmdGVyUmVuZGVyImluIGYsImhhcyIpLGdldDppKGY9PmYucnVuQWZ0ZXJSZW5kZXIsImdldCIpLHNldDppKChmLHApPT57Zi5ydW5BZnRlclJlbmRlcj1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksVVZyKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9I2U9eTZ0KHRoaXMsbyx2b2lkIDApO2dldCBydW5BZnRlclJlbmRlcigpe3JldHVybiB0aGlzLiNlfXNldCBydW5BZnRlclJlbmRlcihkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShkPT5zZXRUaW1lb3V0KGQsNTApKSx0aGlzLmNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLnJ1bkFmdGVyUmVuZGVyKXRyeXthd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNhdGNoKGQpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHJ1bkFmdGVyUmVuZGVyOiIsZCl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx5NnQodGhpcyxsKX1zdGF0aWN7eTZ0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciB3YT11KCgpPT57V1ZyKCl9KTt2YXIgR1ZyLFlWcj11KCgpPT57dmUoKTt3YSgpO0dWcj1pKCgpPT57bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpO3JldHVybiBzZXRUaW1lb3V0KCgpPT57dC5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZTonY3JlYXRlZCBhIG5ldyBwcm9qZWN0ICJGcm9udGVuZCBBcHAiJ30se3R5cGU6InVwZGF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidmlld2VkIGRhc2hib2FyZCBhbmFseXRpY3MifSx7dHlwZToiZGVsZXRlIix1c2VyOiJBZG1pbiIsbWVzc2FnZToicmVtb3ZlZCBkZXByZWNhdGVkIGVuZHBvaW50In0se3R5cGU6ImN1c3RvbSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSJ9LHt0eXBlOiJsb2dvdXQiLHVzZXI6IkFsaWNlIEJyb3duIixtZXNzYWdlOiJsb2dnZWQgb3V0In0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToiY3JlYXRlZCBpbnZvaWNlICMxMjM0In1dKSx0LmVudHJpZXMkLnN1YnNjcmliZShlPT57Y29uc29sZS5sb2coIkFjdGl2aXR5IGxvZyB1cGRhdGVkOiIsZS5sZW5ndGgsImVudHJpZXMiKX0pfSwxMDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzA5MDkwYiIpfTsKICAgICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgJHt0fQogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBBcGUsaDksS1ZyLHc2dD11KCgpPT57dmUoKTtNcigpO3NzKCk7S3IoKTtZVnIoKTtsdCgpO0FwZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0saDk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEtWcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQWN0aXZpdHlsb2ciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxjPVtpZSgpXSxwPVtpZSgpXSxBcGUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJlbnRyaWVzImluIGcsImhhcyIpLGdldDppKGc9PmcuZW50cmllcywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmVudHJpZXM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLEFwZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJzZWFyY2hRdWVyeSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuc2VhcmNoUXVlcnk9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLEFwZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlckNyaXRlcmlhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJmaWx0ZXJDcml0ZXJpYSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmZpbHRlckNyaXRlcmlhLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuZmlsdGVyQ3JpdGVyaWE9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLEFwZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHIpLHY9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPUdWcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWg5KHRoaXMsbyxbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyhiKXt0aGlzLiNlPWJ9I3Q9KGg5KHRoaXMsbCksaDkodGhpcyxkLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KGIpe3RoaXMuI3Q9Yn0jcj0oaDkodGhpcyxmKSxoOSh0aGlzLGgse30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyQ3JpdGVyaWEoYil7dGhpcy4jcj1ifWVudHJpZXMkPShoOSh0aGlzLG0pLG5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBhbGlnbmVkIHdpdGggc2Vjb25kYXJ5IG1lbnUgKi8KICAgICAgICAtLWFjdGl2aXR5bG9nLWJnOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZzogJHt4LmJkVGhlbWUoIiM1MjUyNTIiLCIjYTNhM2EzIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQ6ICR7eC5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZTogJHt4LmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctYm9yZGVyOiAke3guYmRUaGVtZSgiI2U1ZTVlNSIsIiMxYTFhMWEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ob3ZlcjogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctYWNjZW50OiAke3guYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CgogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIHdpdGggc3RyZWFtaW5nIGluZGljYXRvciAqLwogICAgICAudG9wYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50b3BiYXIgLmhlYWRpbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLmxpdmUtaW5kaWNhdG9yIC5kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuNTsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyB9CiAgICAgICAgNTAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGNvbnRhaW5lciAqLwogICAgICAuYWN0aXZpdHlDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDQ4cHg7CiAgICAgICAgYm90dG9tOiA0OHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkNCIsIiMzMzMzMzMiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Q0ZDRkNCIsIiMzMzMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2EzYTNhMyIsIiM1MjUyNTIiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDE2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLyogRGF0ZSBzZXBhcmF0b3IgLSB3YXJtIHRhdXBlIHN0eWxpbmcgKi8KICAgICAgLmRhdGUtc2VwYXJhdG9yIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1hY2NlbnQpOwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICB9CgogICAgICAvKiBBY3Rpdml0eSBlbnRyeSAtIG1vZGVybiBzdGFja2VkIGxheW91dCAqLwogICAgICAuYWN0aXZpdHllbnRyeSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eWVudHJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dpbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMDgpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzRhZGU4MCIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24ubG9nb3V0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi52aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmNyZWF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjA4KSIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM5MzMzZWEiLCIjYzA4NGZjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi51cGRhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4wOCkiLCJyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5jdXN0b20gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMDgpIiwicmdiYSgxMDAsIDExNiwgMTM5LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM0NzU1NjkiLCIjOTRhM2I4Iil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS11c2VyIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC8qIFNlYXJjaCBib3ggLSByZWZpbmVkIHN0eWxpbmcgKi8KICAgICAgLnNlYXJjaGJveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWFjdGl2aXR5bG9nLWJvcmRlcik7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlYXJjaC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0IHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkiKX07CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgMzRweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXI6aGFzKGlucHV0OmZvY3VzKSAuc2VhcmNoLWljb24gewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBiPXRoaXMuZ2V0RmlsdGVyZWRFbnRyaWVzKCksZz10aGlzLmdyb3VwRW50cmllc0J5RGF0ZShiKTtyZXR1cm4gd2AKICAgICAgJHtaYS5zdHlsZXN9CiAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyI+QWN0aXZpdHkgTG9nPC9kaXY+CiAgICAgICAgICAke2IubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJsaXZlLWluZGljYXRvciI+PHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPkxpdmU8L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5Q29udGFpbmVyIj4KICAgICAgICAgICR7Yi5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGFjdGl2aXR5IGVudHJpZXM8L2Rpdj5gOmcubWFwKHk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtc2VwYXJhdG9yIj4ke3kubGFiZWx9PC9kaXY+CiAgICAgICAgICAgICAgICAgICR7eS5lbnRyaWVzLm1hcChrPT50aGlzLnJlbmRlckFjdGl2aXR5RW50cnkoaykpfQogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0ic2VhcmNoLWljb24iIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGFjdGl2aXRpZXMsIHVzZXJzLi4uIgogICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9CiAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVTZWFyY2hJbnB1dH0KICAgICAgICAgICAgLz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aXZpdHlFbnRyeShiKXtsZXQgZz1iLnRpbWVzdGFtcHx8bmV3IERhdGUseT10aGlzLmZvcm1hdFRpbWUoZyksaz1iLmljb25OYW1lfHx0aGlzLmdldEljb25Gb3JUeXBlKGIudHlwZSk7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYWN0aXZpdHllbnRyeSIKICAgICAgICBAY29udGV4dG1lbnU9JHtNPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KE0sYil9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1pY29uICR7Yi50eXBlfSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7a30+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1oZWFkZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aXZpdHktdXNlciI+JHtiLnVzZXJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aXZpdHktc2VwYXJhdG9yIj7Ctzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWVzdGFtcCI+JHt5fTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktbWVzc2FnZSI+JHtiLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hZGQoYil7bGV0IGc9ey4uLmIsaWQ6Yi5pZHx8dGhpcy5nZW5lcmF0ZUlkKCksdGltZXN0YW1wOmIudGltZXN0YW1wfHxuZXcgRGF0ZX07dGhpcy5lbnRyaWVzPVtnLC4uLnRoaXMuZW50cmllc10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9YWRkTWFueShiKXtsZXQgZz1iLm1hcCh5PT4oey4uLnksaWQ6eS5pZHx8dGhpcy5nZW5lcmF0ZUlkKCksdGltZXN0YW1wOnkudGltZXN0YW1wfHxuZXcgRGF0ZX0pKTt0aGlzLmVudHJpZXM9Wy4uLmcucmV2ZXJzZSgpLC4uLnRoaXMuZW50cmllc10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9Y2xlYXIoKXt0aGlzLmVudHJpZXM9W10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9Z2V0RW50cmllcygpe3JldHVyblsuLi50aGlzLmVudHJpZXNdfWZpbHRlcihiKXtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcihnPT4hKGIudXNlciYmZy51c2VyIT09Yi51c2VyfHxiLnR5cGUmJmcudHlwZSE9PWIudHlwZSkpfXNlYXJjaChiKXtsZXQgZz1iLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRoaXMuZW50cmllcy5maWx0ZXIoeT0+eS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZyl8fHkudXNlci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGcpKX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGFjdGl2aXR5LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw5KX1gfWdldEZpbHRlcmVkRW50cmllcygpe2xldCBiPXRoaXMuZW50cmllcztpZih0aGlzLnNlYXJjaFF1ZXJ5KXtsZXQgZz10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7Yj1iLmZpbHRlcih5PT55Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhnKXx8eS51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZykpfXJldHVybih0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXJ8fHRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSkmJihiPWIuZmlsdGVyKGc9PiEodGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyJiZnLnVzZXIhPT10aGlzLmZpbHRlckNyaXRlcmlhLnVzZXJ8fHRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSYmZy50eXBlIT09dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSkpLGJ9Z3JvdXBFbnRyaWVzQnlEYXRlKGIpe2xldCBnPW5ldyBNYXAseT1uZXcgRGF0ZSxrPW5ldyBEYXRlKHkpO2suc2V0RGF0ZShrLmdldERhdGUoKS0xKTtmb3IobGV0IE0gb2YgYil7bGV0IE49TS50aW1lc3RhbXB8fG5ldyBEYXRlLF87dGhpcy5pc1NhbWVEYXkoTix5KT9fPSJUb2RheSI6dGhpcy5pc1NhbWVEYXkoTixrKT9fPSJZZXN0ZXJkYXkiOl89Ti50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7bW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLHllYXI6Ti5nZXRGdWxsWWVhcigpIT09eS5nZXRGdWxsWWVhcigpPyJudW1lcmljIjp2b2lkIDB9KSxnLmhhcyhfKXx8Zy5zZXQoXyxbXSksZy5nZXQoXykucHVzaChNKX1yZXR1cm4gQXJyYXkuZnJvbShnLmVudHJpZXMoKSkubWFwKChbTSxOXSk9Pih7bGFiZWw6TSxlbnRyaWVzOk59KSl9aXNTYW1lRGF5KGIsZyl7cmV0dXJuIGIuZ2V0RnVsbFllYXIoKT09PWcuZ2V0RnVsbFllYXIoKSYmYi5nZXRNb250aCgpPT09Zy5nZXRNb250aCgpJiZiLmdldERhdGUoKT09PWcuZ2V0RGF0ZSgpfWZvcm1hdFRpbWUoYil7cmV0dXJuIGIudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsaG91cjEyOiExfSl9Z2V0SWNvbkZvclR5cGUoYil7bGV0IGc9e2xvZ2luOiJsdWNpZGU6bG9nSW4iLGxvZ291dDoibHVjaWRlOmxvZ091dCIsdmlldzoibHVjaWRlOmV5ZSIsY3JlYXRlOiJsdWNpZGU6cGx1cyIsdXBkYXRlOiJsdWNpZGU6ZWRpdCIsZGVsZXRlOiJsdWNpZGU6dHJhc2gyIixjdXN0b206Imx1Y2lkZTphY3Rpdml0eSJ9O3JldHVybiBnW2JdfHxnLmN1c3RvbX1oYW5kbGVTZWFyY2hJbnB1dChiKXtsZXQgZz1iLnRhcmdldDt0aGlzLnNlYXJjaFF1ZXJ5PWcudmFsdWV9aGFuZGxlQ29udGV4dE1lbnUoYixnKXtiLnByZXZlbnREZWZhdWx0KCksQ3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYixbe25hbWU6IkNvcHkgYWN0aXZpdHkiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGAke2cudXNlcn0gJHtnLm1lc3NhZ2V9YCl9LCJhY3Rpb24iKX0se25hbWU6IkZpbHRlciBieSB1c2VyIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt1c2VyOmcudXNlcn19LCJhY3Rpb24iKX0se25hbWU6IkZpbHRlciBieSB0eXBlIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e3R5cGU6Zy50eXBlfX0sImFjdGlvbiIpfSx7bmFtZToiQ2xlYXIgZmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTp4IixhY3Rpb246aShhc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17fSx0aGlzLnNlYXJjaFF1ZXJ5PSIifSwiYWN0aW9uIil9XSl9c3RhdGlje2g5KGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBaVnI9dSgoKT0+e3c2dCgpfSk7dmFyIFFWcj11KCgpPT57fSk7dmFyIFhWcj11KCgpPT57dm4oKX0pO3ZhciBKVnI9dSgoKT0+e30pO3ZhciBlanI9dSgoKT0+e30pO3ZhciB0anI9dSgoKT0+e30pO3ZhciBQcD11KCgpPT57UVZyKCk7WFZyKCk7SlZyKCk7ZWpyKCk7dGpyKCl9KTt2YXIgcmpyLGFqcj11KCgpPT57dmUoKTt3YSgpO2s2dCgpO3Jqcj1pKCgpPT57bGV0IHQ9W3tuYW1lOiJGaWxlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBGaWxlIixzaG9ydGN1dDoiQ21kK04iLGljb25OYW1lOiJmaWxlLXBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4uLi4iLHNob3J0Y3V0OiJDbWQrTyIsaWNvbk5hbWU6ImZvbGRlci1vcGVuIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4gUmVjZW50IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6InByb2plY3QtYWxwaGEudHMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAxIiksImFjdGlvbiIpfSx7bmFtZToiY29uZmlnLmpzb24iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAyIiksImFjdGlvbiIpfSx7bmFtZToicmVhZG1lLm1kIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiByZWNlbnQgMyIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUiLHNob3J0Y3V0OiJDbWQrUyIsaWNvbk5hbWU6InNhdmUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIiksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSBBcy4uLiIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtTIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSBhcyIpLCJhY3Rpb24iKSxkaXNhYmxlZDohMH0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeGl0IixzaG9ydGN1dDoiQ21kK1EiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeGl0IiksImFjdGlvbiIpfV19LHtuYW1lOiJFZGl0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlVuZG8iLHNob3J0Y3V0OiJDbWQrWiIsaWNvbk5hbWU6InVuZG8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRvIiksImFjdGlvbiIpfSx7bmFtZToiUmVkbyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtaIixpY29uTmFtZToicmVkbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlZG8iKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQ3V0IixzaG9ydGN1dDoiQ21kK1giLGljb25OYW1lOiJzY2lzc29ycyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpLCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsaWNvbk5hbWU6ImNvcHkiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5IiksImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLHNob3J0Y3V0OiJDbWQrViIsaWNvbk5hbWU6ImNsaXBib2FyZCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZpbmQiLHNob3J0Y3V0OiJDbWQrRiIsaWNvbk5hbWU6InNlYXJjaCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZpbmQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixzaG9ydGN1dDoiQ21kK0giLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBsYWNlIiksImFjdGlvbiIpfV19LHtuYW1lOiJWaWV3IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRvZ2dsZSBGdWxsc2NyZWVuIixzaG9ydGN1dDoiRjExIixpY29uTmFtZToiZXhwYW5kIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRnVsbHNjcmVlbiIpLCJhY3Rpb24iKX0se25hbWU6Ilpvb20gSW4iLHNob3J0Y3V0OiJDbWQrKyIsaWNvbk5hbWU6Inpvb20taW4iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIGluIiksImFjdGlvbiIpfSx7bmFtZToiWm9vbSBPdXQiLHNob3J0Y3V0OiJDbWQrLSIsaWNvbk5hbWU6Inpvb20tb3V0IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBvdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXNldCBab29tIixzaG9ydGN1dDoiQ21kKzAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXNldCB6b29tIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlRvZ2dsZSBTaWRlYmFyIixzaG9ydGN1dDoiQ21kK0IiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgc2lkZWJhciIpLCJhY3Rpb24iKX0se25hbWU6IlRvZ2dsZSBUZXJtaW5hbCIsc2hvcnRjdXQ6IkNtZCtKIixpY29uTmFtZToidGVybWluYWwiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgdGVybWluYWwiKSwiYWN0aW9uIil9XX0se25hbWU6IkhlbHAiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRG9jdW1lbnRhdGlvbiIsaWNvbk5hbWU6ImJvb2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2N1bWVudGF0aW9uIiksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsaWNvbk5hbWU6ImZpbGUtdGV4dCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlbGVhc2Ugbm90ZXMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiUmVwb3J0IElzc3VlIixpY29uTmFtZToiYnVnIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVwb3J0IGlzc3VlIiksImFjdGlvbiIpfSx7bmFtZToiQWJvdXQiLGljb25OYW1lOiJpbmZvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQWJvdXQiKSwiYWN0aW9uIil9XX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCByPWUucXVlcnlTZWxlY3RvcigiI2FwcGJhciIpLGE9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuc3RhdHVzLXRvZ2dsZSBkZWVzLWJ1dHRvbiIpO2FbMF0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci51c2VyPXsuLi5yLnVzZXIsc3RhdHVzOiJvbmxpbmUifX0pLGFbMV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci51c2VyPXsuLi5yLnVzZXIsc3RhdHVzOiJidXN5In19KSxhWzJdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudXNlcj17Li4uci51c2VyLHN0YXR1czoiYXdheSJ9fSksYVszXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLnVzZXI9ey4uLnIudXNlcixzdGF0dXM6Im9mZmxpbmUifX0pLGUucXVlcnlTZWxlY3RvcigiLndpbmRvdy1jb250cm9scy10b2dnbGUgZGVlcy1idXR0b24iKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLnNob3dXaW5kb3dDb250cm9scz0hci5zaG93V2luZG93Q29udHJvbHN9KTtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5icmVhZGNydW1iLXRvZ2dsZSBkZWVzLWJ1dHRvbiIpO25bMF0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci5icmVhZGNydW1icz0iSG9tZSA+IERvY3VtZW50cyA+IFByb2plY3RzID4gTXlBcHAgPiBzcmMgPiBpbmRleC50cyJ9KSxuWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IuYnJlYWRjcnVtYnM9IkRhc2hib2FyZCJ9KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGNvbG9yOiAjY2NjOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIGxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYXBwdWktYXBwYmFyCiAgICAgICAgaWQ9ImFwcGJhciIKICAgICAgICAubWVudUl0ZW1zPSR7dH0KICAgICAgICAuYnJlYWRjcnVtYnM9JHsiUHJvamVjdCA+IHNyYyA+IGNvbXBvbmVudHMgPiBBcHBCYXIudHMifQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7IiA+ICJ9CiAgICAgICAgLnNob3dXaW5kb3dDb250cm9scz0keyEwfQogICAgICAgIC5zaG93U2VhcmNoPSR7ITB9CiAgICAgICAgLnRoZW1lPSR7ImRhcmsifQogICAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAgIEBtZW51LXNlbGVjdD0ke2U9PmNvbnNvbGUubG9nKCJNZW51IHNlbGVjdGVkOiIsZS5kZXRhaWwuaXRlbSl9CiAgICAgICAgQGJyZWFkY3J1bWItbmF2aWdhdGU9JHtlPT5jb25zb2xlLmxvZygiQnJlYWRjcnVtYiBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+Y29uc29sZS5sb2coIlNlYXJjaCBjbGlja2VkIil9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PmNvbnNvbGUubG9nKCJVc2VyIG1lbnUgY2xpY2tlZCIpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxoMj5BcHAgQmFyIERlbW88L2gyPgogICAgICAgIDxwPlRoaXMgZGVtbyBzaG93cyB2YXJpb3VzIGZlYXR1cmVzIG9mIHRoZSBhcHAgYmFyIGNvbXBvbmVudDo8L3A+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPkR5bmFtaWMgbWVudSBpdGVtcyB3aXRoIGljb25zLCBzaG9ydGN1dHMsIGFuZCBzdWJtZW51czwvbGk+CiAgICAgICAgICA8bGk+QnJlYWRjcnVtYiBuYXZpZ2F0aW9uPC9saT4KICAgICAgICAgIDxsaT5Vc2VyIGFjY291bnQgc2VjdGlvbiB3aXRoIHN0YXR1cyBpbmRpY2F0b3I8L2xpPgogICAgICAgICAgPGxpPlNlYXJjaCBpY29uPC9saT4KICAgICAgICAgIDxsaT5XaW5kb3cgY29udHJvbHMgKHBsYXRmb3JtLXNwZWNpZmljKTwvbGk+CiAgICAgICAgICA8bGk+RGFyay9saWdodCB0aGVtZSBzdXBwb3J0PC9saT4KICAgICAgICAgIDxsaT5LZXlib2FyZCBuYXZpZ2F0aW9uIChUYWIsIEVudGVyLCBFc2NhcGUpPC9saT4KICAgICAgICAgIDxsaT5DdXN0b20gZXZlbnRzIGZvciBhbGwgaW50ZXJhY3Rpb25zPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5UaGVtZTwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9InRoZW1lLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXJrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkxpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VXNlciBTdGF0dXM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJzdGF0dXMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9ubGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5CdXN5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkF3YXk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+T2ZmbGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPldpbmRvdyBDb250cm9sczwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9IndpbmRvdy1jb250cm9scy10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+QnJlYWRjcnVtYnM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJicmVhZGNydW1iLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Mb25nIFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2hvcnQgUGF0aDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIGlqcixzanI9dSgoKT0+e3ZlKCk7aWpyPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciB0aGVtaW5nICovCiAgICAgICAgLS1hcHBiYXItaGVpZ2h0OiA0MHB4OwogICAgICAgIC0tYXBwYmFyLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1hcHBiYXItaGVpZ2h0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLWFwcGJhci1mb250LXNpemUpOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvOwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogZHJhZzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogT3B0aW9uYWw6IFN0eWxlIGZvciBtZW51IGl0ZW1zIHdpdGggaWNvbnMgKG5vdCB0eXBpY2FsbHkgdXNlZCBmb3IgdG9wLWxldmVsIGl0ZW1zKSAqLwogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW1bZGlzYWJsZWRdIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmZvY3VzLXZpc2libGUgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICB9CgoKICAgICAgLyogRHJvcGRvd24gc3R5bGVzICovCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24ub3BlbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW06aG92ZXIsCiAgICAgIC5kcm9wZG93bi1pdGVtLmZvY3VzZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSAuc2hvcnRjdXQgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC8qIEJyZWFkY3J1bWJzICovCiAgICAgIC5icmVhZGNydW1icyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogQWNjb3VudCBzZWN0aW9uICovCiAgICAgIC5hY2NvdW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAudXNlci1pbmZvOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGxvZyB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5hY3Rpdml0eS10b2dnbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwNjAiLCIjZmZmZmZmNjAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYxNSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGUuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzAwMDAwMDE1IiwiI2ZmZmZmZjIwIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWJhZGdlIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjNTI1MjUyIiwiIzUyNTI1MiIpfTsKICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CiAgICBgXX0pO3ZhciBuanIsb2pyPXUoKCk9Pnt2ZSgpO25qcj1pKHQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudXMiPgogICAgICAgICAgJHt0LnNob3dXaW5kb3dDb250cm9scz93YDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gOiIifQogICAgICAgICAgJHt0LnJlbmRlck1lbnVJdGVtcygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4KICAgICAgICAgICR7dC5yZW5kZXJCcmVhZGNydW1icygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjY291bnQiPgogICAgICAgICAgJHt0LnJlbmRlckFjY291bnRTZWN0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlckFwcHVpQXBwYmFyIil9KTt2YXIgUzZ0LHB0ZSxsanIsTTZ0PXUoKCk9Pnt2ZSgpO2x0KCk7UzZ0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxwdGU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGxqcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtd2luZG93Y29udHJvbHMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1dpbmRvd0NvbnRyb2xzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7cmVmbGVjdDohMH0pXSxjPVtQKHtyZWZsZWN0OiEwfSldLFM2dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InR5cGUiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS50eXBlLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20udHlwZT12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksUzZ0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InBvc2l0aW9uImluIG0sImhhcyIpLGdldDppKG09Pm0ucG9zaXRpb24sImdldCIpLHNldDppKChtLHYpPT57bS5wb3NpdGlvbj12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksUzZ0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2A8ZGVlcy13aW5kb3djb250cm9scz48L2RlZXMtd2luZG93Y29udHJvbHM+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPXB0ZSh0aGlzLG8sIm1hYyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoaCl7dGhpcy4jZT1ofSN0PShwdGUodGhpcyxsKSxwdGUodGhpcyxkLCJsZWZ0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbihoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHB0ZSh0aGlzLGYpfXN0YXRpY3twdGUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGZ0ZSxaNCxjanIsQzZ0PXUoKCk9Pnt2bigpO09vKCk7dmUoKTtsdCgpO2Z0ZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sWjQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGNqcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVByb2ZpbGVEcm9wZG93biIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6QXJyYXl9KV0scD1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0sZnRlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4idXNlciJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnVzZXIsImdldCIpLHNldDppKChNLE4pPT57TS51c2VyPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxmdGUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+Im1lbnVJdGVtcyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLm1lbnVJdGVtcz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsZiksZnRlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJpc09wZW4iaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5pc09wZW4sImdldCIpLHNldDppKChNLE4pPT57TS5pc09wZW49Tn0sInNldCIpfSxtZXRhZGF0YTprfSxoLG0pLGZ0ZSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJwb3NpdGlvbiJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00ucG9zaXRpb249Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGZ0ZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgLnVzZXI9JHt7bmFtZToiSm9obiBEb2UiLGVtYWlsOiJqb2huLmRvZUBleGFtcGxlLmNvbSIsYXZhdGFyOiJodHRwczovL3JhbmRvbXVzZXIubWUvYXBpL3BvcnRyYWl0cy9tZW4vMS5qcGciLHN0YXR1czoib25saW5lIn19CiAgICAgIC5tZW51SXRlbXM9JHtbe25hbWU6IlByb2ZpbGUgU2V0dGluZ3MiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFjY291bnQiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCAmIFN1cHBvcnQiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kK0siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfQogICAgICAuaXNPcGVuPSR7ITB9CiAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1aNCh0aGlzLG8sdm9pZCAwKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNlfXNldCB1c2VyKGspe3RoaXMuI2U9a30jdD0oWjQodGhpcyxsKSxaNCh0aGlzLGQsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyhrKXt0aGlzLiN0PWt9I3I9KFo0KHRoaXMsZiksWjQodGhpcyxoLCExKSk7Z2V0IGlzT3Blbigpe3JldHVybiB0aGlzLiNyfXNldCBpc09wZW4oayl7dGhpcy4jcj1rfSNhPShaNCh0aGlzLG0pLFo0KHRoaXMsYiwidG9wLXJpZ2h0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBwb3NpdGlvbihrKXt0aGlzLiNhPWt9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB6LWluZGV4OiAke2pzLm92ZXJsYXkuZHJvcGRvd259OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmJhY2tkcm9wIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBQb3NpdGlvbiB2YXJpYW50cyAqLwogICAgICAuZHJvcGRvd24udG9wLXJpZ2h0IHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24udG9wLWxlZnQgewogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLmJvdHRvbS1yaWdodCB7CiAgICAgICAgYm90dG9tOiAxMDAlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLmJvdHRvbS1sZWZ0IHsKICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFVzZXIgc2VjdGlvbiAqLwogICAgICAudXNlci1zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub25saW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNGNhZjUwOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub2ZmbGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzc1NzU3NTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmJ1c3kgewogICAgICAgIGJhY2tncm91bmQ6ICNmNDQzMzY7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5hd2F5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ODAwOwogICAgICB9CgogICAgICAudXNlci1kZXRhaWxzIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnVzZXItbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC51c2VyLWVtYWlsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAvKiBNZW51IHNlY3Rpb24gKi8KICAgICAgLm1lbnUtc2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzMzMyIsIiNjY2MiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudS1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1pdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51LXNob3J0Y3V0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAvKiBCYWNrZHJvcCBmb3IgbW9iaWxlICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5iYWNrZHJvcCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICB6LWluZGV4OiAke2pzLmJhY2tkcm9wLmRyb3Bkb3dufTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5iYWNrZHJvcCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kcm9wZG93biB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHJpZ2h0OiBhdXRvOwogICAgICAgICAgYm90dG9tOiBhdXRvOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC45NSk7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMnB4KTsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJiYWNrZHJvcCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2UoKX0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duICR7dGhpcy5wb3NpdGlvbn0iPgogICAgICAgICR7dGhpcy51c2VyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYXZhdGFyIj4KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj93YDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOnRoaXMuZ2V0SW5pdGlhbHModGhpcy51c2VyLm5hbWUpfQogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItc3RhdHVzICR7dGhpcy51c2VyLnN0YXR1c30iPjwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWRldGFpbHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1uYW1lIj4ke3RoaXMudXNlci5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuZW1haWw/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1lbWFpbCI+JHt0aGlzLnVzZXIuZW1haWx9PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1zZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKGs9PnRoaXMucmVuZGVyTWVudUl0ZW0oaykpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTWVudUl0ZW0oayl7aWYoImRpdmlkZXIiaW4gayYmay5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgTT1rO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtZW51LWl0ZW0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVDbGljayhNKX0+CiAgICAgICAgJHtNLmljb25OYW1lP3dgCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtNLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWl0ZW0tdGV4dCI+JHtNLm5hbWV9PC9zcGFuPgogICAgICAgICR7TS5zaG9ydGN1dD93YAogICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnUtc2hvcnRjdXQiPiR7TS5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldEluaXRpYWxzKGspe3JldHVybiBrLnNwbGl0KCIgIikubWFwKE09Pk1bMF0pLmpvaW4oIiIpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMCwyKX1hc3luYyBoYW5kbGVNZW51Q2xpY2soayl7YXdhaXQgay5hY3Rpb24oKSx0aGlzLmNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWVudS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06a30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1vcGVuKCl7dGhpcy5pc09wZW49ITB9Y2xvc2UoKXt0aGlzLmlzT3Blbj0hMX10b2dnbGUoKXt0aGlzLmlzT3Blbj0hdGhpcy5pc09wZW59YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrPXRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKX1oYW5kbGVPdXRzaWRlQ2xpY2soayl7aWYodGhpcy5pc09wZW4mJiF0aGlzLmNvbnRhaW5zKGsudGFyZ2V0KSl7bGV0IE09dGhpcy5wYXJlbnRFbGVtZW50O2lmKE0mJk0uY29udGFpbnMoay50YXJnZXQpKXJldHVybjt0aGlzLmNsb3NlKCl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxaNCh0aGlzLGcpfXN0YXRpY3taNChhLHIpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgd28sa2EsZGpyLGs2dD11KCgpPT57dmUoKTtNcigpO1BwKCk7dm4oKTthanIoKTtzanIoKTtvanIoKTtLcigpO002dCgpO0M2dCgpO3dvPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxrYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZGpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hcHB1aS1hcHBiYXIiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdO3ZhciB4ZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOkJvb2xlYW59KV0seT1bUCh7dHlwZTpPYmplY3R9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkJvb2xlYW59KV0sQj1bUCh7dHlwZTpCb29sZWFufSldLEE9W1Aoe3R5cGU6TnVtYmVyfSldLFk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxkZT1baWUoKV0sZmU9W2llKCldLHBlPVtpZSgpXSxIPVtpZSgpXSxhZT1baWUoKV0sd28odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+Im1lbnVJdGVtcyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5tZW51SXRlbXM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sbyxsKSx3byh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJicmVhZGNydW1icyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmJyZWFkY3J1bWJzLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmJyZWFkY3J1bWJzPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGQsZiksd28odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJicmVhZGNydW1iU2VwYXJhdG9yImluIFYsImhhcyIpLGdldDppKFY9PlYuYnJlYWRjcnVtYlNlcGFyYXRvciwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5icmVhZGNydW1iU2VwYXJhdG9yPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGgsbSksd28odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InNob3dXaW5kb3dDb250cm9scyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnNob3dXaW5kb3dDb250cm9scywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5zaG93V2luZG93Q29udHJvbHM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sYixnKSx3byh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InVzZXIiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi51c2VyLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnVzZXI9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sayxNKSx3byh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InByb2ZpbGVNZW51SXRlbXMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5wcm9maWxlTWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnByb2ZpbGVNZW51SXRlbXM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sXyxTKSx3byh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InNob3dTZWFyY2giaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5zaG93U2VhcmNoLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnNob3dTZWFyY2g9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sTCxFKSx3byh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBY3Rpdml0eUxvZ1RvZ2dsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4ic2hvd0FjdGl2aXR5TG9nVG9nZ2xlImluIFYsImhhcyIpLGdldDppKFY9PlYuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxDLHopLHdvKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChWLGxlKT0+e1YuYWN0aXZpdHlMb2dDb3VudD1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSwkLEYpLHdvKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImFjdGl2aXR5TG9nQWN0aXZlImluIFYsImhhcyIpLGdldDppKFY9PlYuYWN0aXZpdHlMb2dBY3RpdmUsImdldCIpLHNldDppKChWLGxlKT0+e1YuYWN0aXZpdHlMb2dBY3RpdmU9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sRyxaKSx3byh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVNZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJhY3RpdmVNZW51ImluIFYsImhhcyIpLGdldDppKFY9PlYuYWN0aXZlTWVudSwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5hY3RpdmVNZW51PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEQsUSksd28odGhpcyxudWxsLGZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkRyb3Bkb3ducyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4ib3BlbkRyb3Bkb3ducyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLm9wZW5Ecm9wZG93bnMsImdldCIpLHNldDppKChWLGxlKT0+e1Yub3BlbkRyb3Bkb3ducz1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxULFcpLHdvKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvY3VzZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJmb2N1c2VkSXRlbSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmZvY3VzZWRJdGVtLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmZvY3VzZWRJdGVtPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LG1lLHEpLHdvKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9jdXNlZERyb3Bkb3duSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iZm9jdXNlZERyb3Bkb3duSXRlbSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmZvY3VzZWREcm9wZG93bkl0ZW0sImdldCIpLHNldDppKChWLGxlKT0+e1YuZm9jdXNlZERyb3Bkb3duSXRlbT1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxVLGopLHdvKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvZmlsZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iaXNQcm9maWxlRHJvcGRvd25PcGVuImluIFYsImhhcyIpLGdldDppKFY9PlYuaXNQcm9maWxlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmlzUHJvZmlsZURyb3Bkb3duT3Blbj1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxYLEopLHdvKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkt9LG51bGwscikseGU9YT1lLnZhbHVlLEsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6S30pfXN0YXRpYyBkZW1vPXJqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWthKHRoaXMsbyxbXSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBtZW51SXRlbXMoSyl7dGhpcy4jZT1LfSN0PShrYSh0aGlzLGwpLGthKHRoaXMsZCwiIikpO2dldCBicmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBicmVhZGNydW1icyhLKXt0aGlzLiN0PUt9I3I9KGthKHRoaXMsZiksa2EodGhpcyxoLCIgPiAiKSk7Z2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYnJlYWRjcnVtYlNlcGFyYXRvcihLKXt0aGlzLiNyPUt9I2E9KGthKHRoaXMsbSksa2EodGhpcyxiLCEwKSk7Z2V0IHNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93V2luZG93Q29udHJvbHMoSyl7dGhpcy4jYT1LfSNpPShrYSh0aGlzLGcpLGthKHRoaXMsayx2b2lkIDApKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNpfXNldCB1c2VyKEspe3RoaXMuI2k9S30jcz0oa2EodGhpcyxNKSxrYSh0aGlzLF8sW10pKTtnZXQgcHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNzfXNldCBwcm9maWxlTWVudUl0ZW1zKEspe3RoaXMuI3M9S30jbj0oa2EodGhpcyxTKSxrYSh0aGlzLEwsITEpKTtnZXQgc2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNufXNldCBzaG93U2VhcmNoKEspe3RoaXMuI249S30jbz0oa2EodGhpcyxFKSxrYSh0aGlzLEMsITEpKTtnZXQgc2hvd0FjdGl2aXR5TG9nVG9nZ2xlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZShLKXt0aGlzLiNvPUt9I2w9KGthKHRoaXMseiksa2EodGhpcywkLDApKTtnZXQgYWN0aXZpdHlMb2dDb3VudCgpe3JldHVybiB0aGlzLiNsfXNldCBhY3Rpdml0eUxvZ0NvdW50KEspe3RoaXMuI2w9S30jYz0oa2EodGhpcyxGKSxrYSh0aGlzLEcsITEpKTtnZXQgYWN0aXZpdHlMb2dBY3RpdmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZpdHlMb2dBY3RpdmUoSyl7dGhpcy4jYz1LfSNkPShrYSh0aGlzLFopLGthKHRoaXMsRCxudWxsKSk7Z2V0IGFjdGl2ZU1lbnUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlTWVudShLKXt0aGlzLiNkPUt9I3U9KGthKHRoaXMsUSksa2EodGhpcyxULG5ldyBTZXQpKTtnZXQgb3BlbkRyb3Bkb3ducygpe3JldHVybiB0aGlzLiN1fXNldCBvcGVuRHJvcGRvd25zKEspe3RoaXMuI3U9S30jcD0oa2EodGhpcyxXKSxrYSh0aGlzLG1lLG51bGwpKTtnZXQgZm9jdXNlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jcH1zZXQgZm9jdXNlZEl0ZW0oSyl7dGhpcy4jcD1LfSNmPShrYSh0aGlzLHEpLGthKHRoaXMsVSwtMSkpO2dldCBmb2N1c2VkRHJvcGRvd25JdGVtKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGZvY3VzZWREcm9wZG93bkl0ZW0oSyl7dGhpcy4jZj1LfSNoPShrYSh0aGlzLGopLGthKHRoaXMsWCwhMSkpO2dldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oKXtyZXR1cm4gdGhpcy4jaH1zZXQgaXNQcm9maWxlRHJvcGRvd25PcGVuKEspe3RoaXMuI2g9S31zdGF0aWMgc3R5bGVzPWlqcjtyZW5kZXIoKXtyZXR1cm4gbmpyKHRoaXMpfXJlbmRlck1lbnVJdGVtcygpe3JldHVybiB3YAogICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgoSyxWKT0+dGhpcy5yZW5kZXJNZW51SXRlbShLLGBtZW51LSR7Vn1gKSl9CiAgICBgfXJlbmRlck1lbnVJdGVtKEssVil7aWYoImRpdmlkZXIiaW4gSyYmSy5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IGxlPUssbmU9dGhpcy5hY3RpdmVNZW51PT09VixlZT1sZS5zdWJtZW51JiZsZS5zdWJtZW51Lmxlbmd0aD4wO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtICR7bmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke2xlLmRpc2FibGVkfQogICAgICAgIHRhYmluZGV4PSIke2xlLmRpc2FibGVkPy0xOjB9IgogICAgICAgIGRhdGEtaXRlbS1pZD0iJHtWfSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2sobGUsVil9CiAgICAgICAgQGtleWRvd249JHt6ZT0+dGhpcy5oYW5kbGVNZW51S2V5ZG93bih6ZSxsZSxWKX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICBhcmlhLWhhc3BvcHVwPSIke2VlfSIKICAgICAgICBhcmlhLWV4cGFuZGVkPSIke25lfSIKICAgICAgPgogICAgICAgICR7bGUuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtsZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAke2xlLm5hbWV9CiAgICAgICAgJHtlZT90aGlzLnJlbmRlckRyb3Bkb3duKGxlLnN1Ym1lbnUsVixuZSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bihLLFYsbGUpe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJkcm9wZG93biAke2xlPyJvcGVuIjoiIn0iIAogICAgICAgIEBjbGljaz0ke25lPT5uZS5zdG9wUHJvcGFnYXRpb24oKX0KICAgICAgICBAa2V5ZG93bj0ke25lPT50aGlzLmhhbmRsZURyb3Bkb3duS2V5ZG93bihuZSxLLFYpfQogICAgICAgIHRhYmluZGV4PSIke2xlPzA6LTF9IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgID4KICAgICAgICAke0subWFwKChuZSxlZSk9PnRoaXMucmVuZGVyRHJvcGRvd25JdGVtKG5lLGAke1Z9LSR7ZWV9YCkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRHJvcGRvd25JdGVtKEssVil7aWYoImRpdmlkZXIiaW4gSyYmSy5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IGxlPUssbmU9cGFyc2VJbnQoVi5zcGxpdCgiLSIpLnBvcCgpfHwiMCIpLGVlPXRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT09PW5lO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0gJHtlZT8iZm9jdXNlZCI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke2xlLmRpc2FibGVkfQogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURyb3Bkb3duSXRlbUNsaWNrKGxlKX0KICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09bmV9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgdGFiaW5kZXg9IiR7bGUuZGlzYWJsZWQ/LTE6MH0iCiAgICAgID4KICAgICAgICAke2xlLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7bGUuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4+JHtsZS5uYW1lfTwvc3Bhbj4KICAgICAgICAke2xlLnNob3J0Y3V0P3dgPHNwYW4gY2xhc3M9InNob3J0Y3V0Ij4ke2xlLnNob3J0Y3V0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQnJlYWRjcnVtYnMoKXtpZighdGhpcy5icmVhZGNydW1icylyZXR1cm4gd2BgO2xldCBLPXRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtyZXR1cm4gd2AKICAgICAgJHtLLm1hcCgoVixsZSk9PndgCiAgICAgICAgJHtsZT4wP3dgPHNwYW4gY2xhc3M9ImJyZWFkY3J1bWItc2VwYXJhdG9yIj4ke3RoaXMuYnJlYWRjcnVtYlNlcGFyYXRvcn08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiAKICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iIAogICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQnJlYWRjcnVtYkNsaWNrKFYsbGUpfQogICAgICAgID4KICAgICAgICAgICR7Vn0KICAgICAgICA8L3NwYW4+CiAgICAgIGApfQogICAgYH1yZW5kZXJBY2NvdW50U2VjdGlvbigpe3JldHVybiB3YAogICAgICAke3RoaXMuc2hvd1NlYXJjaD93YAogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaWNvbiIKICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWFyY2hDbGlja30KICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIGA6IiJ9CiAgICAgICR7dGhpcy51c2VyP3dgCiAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj93YDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOndgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gfQogICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9CiAgICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLnByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgICAgIC5pc09wZW49JHt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbn0KICAgICAgICAgICAgLnBvc2l0aW9uPSR7InRvcC1yaWdodCJ9CiAgICAgICAgICAgIEBtZW51LXNlbGVjdD0ke0s9PnRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoSyl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT93YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJhY3Rpdml0eS10b2dnbGUgJHt0aGlzLmFjdGl2aXR5TG9nQWN0aXZlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQWN0aXZpdHlUb2dnbGV9CiAgICAgICAgICB0aXRsZT0iQWN0aXZpdHkgTG9nIgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFjdGl2aXR5In0+PC9kZWVzLWljb24+CiAgICAgICAgICAke3RoaXMuYWN0aXZpdHlMb2dDb3VudD4wP3dgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1iYWRnZSI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQ+OTk/Ijk5KyI6dGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWhhbmRsZU1lbnVDbGljayhLLFYpe0suZGlzYWJsZWR8fChLLnN1Ym1lbnUmJksuc3VibWVudS5sZW5ndGg+MD90aGlzLmFjdGl2ZU1lbnU9PT1WP3RoaXMuYWN0aXZlTWVudT1udWxsOnRoaXMuYWN0aXZlTWVudT1WOih0aGlzLmFjdGl2ZU1lbnU9bnVsbCxLLmFjdGlvbiYmSy5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpLfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSl9aGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soSyl7Sy5kaXNhYmxlZHx8KHRoaXMuYWN0aXZlTWVudT1udWxsLEsuYWN0aW9uJiZLLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOkt9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZU1lbnVLZXlkb3duKEssVixsZSl7c3dpdGNoKEsua2V5KXtjYXNlIkVudGVyIjpjYXNlIiAiOksucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1lbnVDbGljayhWLGxlKTticmVhaztjYXNlIkFycm93RG93biI6aWYoVi5zdWJtZW51JiZ0aGlzLmFjdGl2ZU1lbnU9PT1sZSl7Sy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0wO2xldCBuZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFYuc3VibWVudSwtMSwxKTtuZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPW5lLHNldFRpbWVvdXQoKCk9PntsZXQgZWU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wZG93bi5vcGVuIik7ZWUmJmVlLmZvY3VzKCl9LDApKX1icmVhaztjYXNlIkVzY2FwZSI6dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2JyZWFrO2Nhc2UiVGFiIjp0aGlzLmFjdGl2ZU1lbnU9PT1sZSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0IjpLLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbShsZSwxKTticmVhaztjYXNlIkFycm93TGVmdCI6Sy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNOZXh0TWVudUl0ZW0obGUsLTEpO2JyZWFrfX1oYW5kbGVCcmVhZGNydW1iQ2xpY2soSyxWKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJicmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOnticmVhZGNydW1iOkssaW5kZXg6Vn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aXZpdHlUb2dnbGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpdml0eS10b2dnbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVVzZXJDbGljaygpe3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuPSF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoSyl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpLLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUdsb2JhbENsaWNrKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlRG9jdW1lbnRDbGljayl9aGFuZGxlR2xvYmFsQ2xpY2s9KGthKHRoaXMsSiksSz0+e0suc3RvcFByb3BhZ2F0aW9uKCl9KTtoYW5kbGVEb2N1bWVudENsaWNrPWkoKCk9Pnt0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTF9LCJoYW5kbGVEb2N1bWVudENsaWNrIik7aGFuZGxlRHJvcGRvd25LZXlkb3duKEssVixsZSl7bGV0IG5lPVYuZmlsdGVyKGVlPT4hKCJkaXZpZGVyImluIGVlJiZlZS5kaXZpZGVyKSk7c3dpdGNoKEsua2V5KXtjYXNlIkFycm93RG93biI6Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCBlZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFYsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLDEpO2VlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09ZWUpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCB6ZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFYsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLC0xKTt6ZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPXplKTticmVhaztjYXNlIkVudGVyIjppZihLLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtIT09LTEpe2xldCBEZT1uZVt0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW1dO0RlJiYiYWN0aW9uImluIERlJiYhRGUuZGlzYWJsZWQmJnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soRGUpfWJyZWFrO2Nhc2UiSG9tZSI6Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCBIZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFYsLTEsMSk7SGUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1IZSk7YnJlYWs7Y2FzZSJFbmQiOksucHJldmVudERlZmF1bHQoKTtsZXQgR2U9dGhpcy5maW5kTmV4dFZhbGlkSXRlbShWLFYubGVuZ3RoLC0xKTtHZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPUdlKTticmVhaztjYXNlIkVzY2FwZSI6Sy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMTtsZXQgb3Q9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5tZW51SXRlbS5hY3RpdmUiKTtvdCYmb3QuZm9jdXMoKTticmVha319ZmluZE5leHRWYWxpZEl0ZW0oSyxWLGxlKXtsZXQgbmU9VitsZTtmb3IoO25lPj0wJiZuZTxLLmxlbmd0aDspe2xldCBlZT1LW25lXTtpZighKCJkaXZpZGVyImluIGVlJiZlZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gZWUmJmVlLmRpc2FibGVkKSlyZXR1cm4gbmU7bmUrPWxlfXJldHVybi0xfWZvY3VzTmV4dE1lbnVJdGVtKEssVil7bGV0IGxlPUFycmF5LmZyb20odGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51SXRlbSIpKSxuZT1sZS5maW5kSW5kZXgoSGU9PkhlLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1LKTtpZihuZT09PS0xKXJldHVybjtsZXQgZWU9bmUrVjtlZTwwP2VlPWxlLmxlbmd0aC0xOmVlPj1sZS5sZW5ndGgmJihlZT0wKTtsZXQgemU9MDtmb3IoO3plPGxlLmxlbmd0aDspe2xldCBIZT1sZVtlZV07aWYoIUhlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7SGUuZm9jdXMoKSx0aGlzLmFjdGl2ZU1lbnUmJih0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTEpO2JyZWFrfWVlPShlZStWK2xlLmxlbmd0aCklbGUubGVuZ3RoLHplKyt9fXN0YXRpY3trYShhLHIpfX07cmV0dXJuIHhlPWF9KSgpfSk7dmFyIHo2dD11KCgpPT57azZ0KCl9KTt2YXIgdWpyLHBqcixmanI9dSgoKT0+e3ZlKCk7d2EoKTtwanI9aSgoKT0+dyh1anJ8fCh1anI9RGcoW2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1sYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzczNzM3MzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ib3R0b21iYXItd3JhcHBlciB7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCAwJSAyMCUpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Qm90dG9tIGJhciB3aXRoIHN0YXR1cyB3aWRnZXRzIGFuZCBhY3Rpb25zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWJvdHRvbWJhci13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyCiAgICAgICAgICAgICAgaWQ9ImRlbW8tYm90dG9tYmFyIgogICAgICAgICAgICA+PC9kZWVzLWFwcHVpLWJvdHRvbWJhcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Q29udHJvbHM8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7Ij4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRTdWNjZXNzV2lkZ2V0KCkiPkFkZCBTdWNjZXNzIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFdhcm5pbmdXaWRnZXQoKSI+QWRkIFdhcm5pbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkRXJyb3JXaWRnZXQoKSI+QWRkIEVycm9yIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZExvYWRpbmdXaWRnZXQoKSI+QWRkIExvYWRpbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkUmlnaHRXaWRnZXQoKSI+QWRkIFJpZ2h0IFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZEFjdGlvbigpIj5BZGQgQWN0aW9uPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iY2xlYXJBbGwoKSI+Q2xlYXIgQWxsPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KICAgICAgICBjb25zdCBib3R0b21iYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVtby1ib3R0b21iYXInKTsKCiAgICAgICAgLy8gV2FpdCBmb3IgY29tcG9uZW50IHRvIGluaXRpYWxpemUKICAgICAgICBhd2FpdCBib3R0b21iYXIudXBkYXRlQ29tcGxldGU7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIHdpZGdldHMKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnc3RhdHVzJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFjdGl2aXR5JywKICAgICAgICAgIGxhYmVsOiAnU3lzdGVtIE9ubGluZScsCiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgIHRvb2x0aXA6ICdBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnU3RhdHVzIGNsaWNrZWQnKSwKICAgICAgICAgIGNvbnRleHRNZW51SXRlbXM6IFsKICAgICAgICAgICAgeyBuYW1lOiAnVmlldyBEZXRhaWxzJywgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ1N5c3RlbSBkZXRhaWxzJykgfSwKICAgICAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgbmFtZTogJ1JlZnJlc2ggU3RhdHVzJywgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaEN3JywgYWN0aW9uOiAoKSA9PiBhbGVydCgnUmVmcmVzaGluZy4uLicpIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpiZWxsJywKICAgICAgICAgIGxhYmVsOiAnMyBub3RpZmljYXRpb25zJywKICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLAogICAgICAgICAgdG9vbHRpcDogJ1lvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdOb3RpZmljYXRpb25zIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ3ZlcnNpb24nLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0QnJhbmNoJywKICAgICAgICAgIGxhYmVsOiAndjEuMi4zJywKICAgICAgICAgIHRvb2x0aXA6ICdDdXJyZW50IHZlcnNpb24nLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnVmVyc2lvbiBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIGFjdGlvbnMKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLAogICAgICAgICAgdG9vbHRpcDogJ1NldHRpbmdzJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ1NldHRpbmdzIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICBpZDogJ2hlbHAnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aGVscENpcmNsZScsCiAgICAgICAgICB0b29sdGlwOiAnSGVscCcsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdIZWxwIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gRGVtbyBjb250cm9sIGZ1bmN0aW9ucwogICAgICAgIGxldCB3aWRnZXRDb3VudGVyID0gMDsKICAgICAgICBsZXQgYWN0aW9uQ291bnRlciA9IDA7CgogICAgICAgIHdpbmRvdy5hZGRTdWNjZXNzV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnc3VjY2Vzcy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2tDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ1N1Y2Nlc3MgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICB0b29sdGlwOiAnU3VjY2VzcyB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRXYXJuaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWxlcnRUcmlhbmdsZScsCiAgICAgICAgICAgIGxhYmVsOiAnV2FybmluZyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdXYXJuaW5nIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEVycm9yV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnZXJyb3ItJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnhDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ0Vycm9yICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsCiAgICAgICAgICAgIHRvb2x0aXA6ICdFcnJvciB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdlcnJvci0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkTG9hZGluZ1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGNvbnN0IGlkID0gJ2xvYWRpbmctJyArIHdpZGdldENvdW50ZXI7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsb2FkZXIyJywKICAgICAgICAgICAgbGFiZWw6ICdMb2FkaW5nLi4uJywKICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJywKICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgICAgICAgdG9vbHRpcDogJ0xvYWRpbmcgaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgfSk7CgogICAgICAgICAgLy8gU2ltdWxhdGUgY29tcGxldGlvbiBhZnRlciAzIHNlY29uZHMKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICBib3R0b21iYXIudXBkYXRlV2lkZ2V0KGlkLCB7CiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2snLAogICAgICAgICAgICAgIGxhYmVsOiAnRG9uZSEnLAogICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIDMwMDApOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRSaWdodFdpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywKICAgICAgICAgICAgbGFiZWw6ICdSaWdodCAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRBY3Rpb24gPSAoKSA9PiB7CiAgICAgICAgICBhY3Rpb25Db3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgICAgaWQ6ICdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsCiAgICAgICAgICAgIHRvb2x0aXA6ICdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHsKICAgICAgICAgICAgICBhbGVydCgnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyICsgJyBjbGlja2VkJyk7CiAgICAgICAgICAgICAgYm90dG9tYmFyLnJlbW92ZUFjdGlvbignYWN0aW9uLScgKyBhY3Rpb25Db3VudGVyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5jbGVhckFsbCA9ICgpID0+IHsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhcldpZGdldHMoKTsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhckFjdGlvbnMoKTsKICAgICAgICAgIHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgICAgYWN0aW9uQ291bnRlciA9IDA7CiAgICAgICAgfTsKICAgICAgPFwvc2NyaXB0PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSkpLCJkZW1vRnVuYyIpfSk7dmFyIF82dCxodGUsaGpyLFQ2dD11KCgpPT57dmUoKTtsdCgpO0tyKCk7c3MoKTtmanIoKTtfNnQ9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGh0ZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0saGpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hcHB1aS1ib3R0b21iYXIiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQm90dG9tYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sYz1baWUoKV0sXzZ0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4id2lkZ2V0cyJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLndpZGdldHMsImdldCIpLHNldDppKChtLHYpPT57bS53aWRnZXRzPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxfNnQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJhY3Rpb25zImluIG0sImhhcyIpLGdldDppKG09Pm0uYWN0aW9ucywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmFjdGlvbnM9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLF82dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPXBqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWh0ZSh0aGlzLG8sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMoaCl7dGhpcy4jZT1ofSN0PShodGUodGhpcyxsKSxodGUodGhpcyxkLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWN0aW9ucyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLyogU3RhdHVzIGNvbG9ycyBtYXRjaGluZyBkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIgKi8KICAgICAgLndpZGdldC5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5zdWNjZXNzIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0Lndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LmVycm9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5zcGlubmluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnNwYWNlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaD10aGlzLndpZGdldHMuZmlsdGVyKGc9PmcucG9zaXRpb24hPT0icmlnaHQiKS5zb3J0KChnLHkpPT4oZy5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSxtPXRoaXMud2lkZ2V0cy5maWx0ZXIoZz0+Zy5wb3NpdGlvbj09PSJyaWdodCIpLnNvcnQoKGcseSk9PihnLm9yZGVyfHwwKS0oeS5vcmRlcnx8MCkpLHY9dGhpcy5hY3Rpb25zLmZpbHRlcihnPT5nLnBvc2l0aW9uPT09ImxlZnQiKSxiPXRoaXMuYWN0aW9ucy5maWx0ZXIoZz0+Zy5wb3NpdGlvbiE9PSJsZWZ0Iik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1iYXIiPgogICAgICAgIDwhLS0gTGVmdCBhY3Rpb25zIC0tPgogICAgICAgICR7di5tYXAoZz0+dGhpcy5yZW5kZXJBY3Rpb24oZykpfQoKICAgICAgICA8IS0tIExlZnQgd2lkZ2V0cyAtLT4KICAgICAgICAke2gubWFwKChnLHkpPT53YAogICAgICAgICAgJHt5PjB8fHYubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj5gOiIifQogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChnKX0KICAgICAgICBgKX0KCiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCiAgICAgICAgPCEtLSBSaWdodCB3aWRnZXRzIC0tPgogICAgICAgICR7bS5tYXAoKGcseSk9PndgCiAgICAgICAgICAke3RoaXMucmVuZGVyV2lkZ2V0KGcpfQogICAgICAgICAgJHt5PG0ubGVuZ3RoLTF8fGIubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj5gOiIifQogICAgICAgIGApfQoKICAgICAgICA8IS0tIFJpZ2h0IGFjdGlvbnMgLS0+CiAgICAgICAgJHtiLm1hcChnPT50aGlzLnJlbmRlckFjdGlvbihnKSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQoaCl7bGV0IG09aC5zdGF0dXMmJmguc3RhdHVzIT09ImlkbGUiP2guc3RhdHVzOiIiLHY9aC5pY29uTmFtZT9oLmljb25OYW1lLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9oLmljb25OYW1lOmBsdWNpZGU6JHtoLmljb25OYW1lfWA6IiI7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0id2lkZ2V0ICR7bX0iCiAgICAgICAgdGl0bGU9IiR7aC50b29sdGlwfHwiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9Pmgub25DbGljaz8uKCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7Yj0+dGhpcy5oYW5kbGVXaWRnZXRDb250ZXh0TWVudShiLGgpfQogICAgICA+CiAgICAgICAgJHt2P3dgCiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7dn0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgICBjbGFzcz0iJHtoLmxvYWRpbmc/InNwaW5uaW5nIjoiIn0iCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICAke2gubGFiZWw/d2A8c3Bhbj4ke2gubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb24oaCl7bGV0IG09aC5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/aC5pY29uTmFtZTpgbHVjaWRlOiR7aC5pY29uTmFtZX1gO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtoLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIHRpdGxlPSIke2gudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT4haC5kaXNhYmxlZCYmaC5vbkNsaWNrPy4oKX0KICAgICAgPgogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIC5pY29uPSR7bX0KICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVXaWRnZXRDb250ZXh0TWVudShoLG0pe2lmKCFtLmNvbnRleHRNZW51SXRlbXN8fG0uY29udGV4dE1lbnVJdGVtcy5sZW5ndGg9PT0wKXJldHVybjtoLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9W107Zm9yKGxldCBiIG9mIG0uY29udGV4dE1lbnVJdGVtcyliLmRpdmlkZXI/di5wdXNoKHtkaXZpZGVyOiEwfSk6di5wdXNoKHtuYW1lOmIubmFtZSxpY29uTmFtZTpiLmljb25OYW1lLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBiLmFjdGlvbigpfSwiYWN0aW9uIiksZGlzYWJsZWQ6Yi5kaXNhYmxlZH0pO2F3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGgsdil9YWRkV2lkZ2V0KGgpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKG09Pm0uaWQhPT1oLmlkKSx0aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyxoXX11cGRhdGVXaWRnZXQoaCxtKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcCh2PT52LmlkPT09aD97Li4udiwuLi5tfTp2KX1yZW1vdmVXaWRnZXQoaCl7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIobT0+bS5pZCE9PWgpfWdldFdpZGdldChoKXtyZXR1cm4gdGhpcy53aWRnZXRzLmZpbmQobT0+bS5pZD09PWgpfWNsZWFyV2lkZ2V0cygpe3RoaXMud2lkZ2V0cz1bXX1hZGRBY3Rpb24oaCl7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIobT0+bS5pZCE9PWguaWQpLHRoaXMuYWN0aW9ucz1bLi4udGhpcy5hY3Rpb25zLGhdfXJlbW92ZUFjdGlvbihoKXt0aGlzLmFjdGlvbnM9dGhpcy5hY3Rpb25zLmZpbHRlcihtPT5tLmlkIT09aCl9Y2xlYXJBY3Rpb25zKCl7dGhpcy5hY3Rpb25zPVtdfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxodGUodGhpcyxmKX1zdGF0aWN7aHRlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBtanI9dSgoKT0+e1Q2dCgpfSk7dmFyIGdqcixianI9dSgoKT0+e3ZlKCk7Z2pyPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtyZWAKICAgICAgLmRlbW8tYmFja2dyb3VuZCB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luOiAzMnB4IDAgMTZweCAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7CiAgICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1iYWNrZ3JvdW5kIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5EZWZhdWx0IFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGFuZWwgQ29tcG9uZW50In0gLnN1YnRpdGxlPSR7IlRoZSBkZWZhdWx0IHBhbmVsIHZhcmlhbnQgd2l0aCBzaGFkY24taW5zcGlyZWQgc3R5bGluZyJ9PgogICAgICAgIDxwPlRoZSBwYW5lbCBjb21wb25lbnQgYXV0b21hdGljYWxseSBmb2xsb3dzIHRoZSB0aGVtZSBhbmQgcHJvdmlkZXMgY29uc2lzdGVudCBzdHlsaW5nIGZvciBncm91cGVkIGNvbnRlbnQuPC9wPgogICAgICAgIDxwPkl0J3MgcGVyZmVjdCBmb3IgY3JlYXRpbmcgc2VjdGlvbnMgaW4geW91ciBhcHBsaWNhdGlvbiB3aXRoIHByb3BlciBzcGFjaW5nIGFuZCBib3JkZXJzLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIE92ZXJ2aWV3In0gLnN1YnRpdGxlPSR7IktleSBjYXBhYmlsaXRpZXMifT4KICAgICAgICAgIDxwPkdyaWQgbGF5b3V0cyB3b3JrIGdyZWF0IHdpdGggcGFuZWxzIGZvciBjcmVhdGluZyBkYXNoYm9hcmRzIGFuZCBmZWF0dXJlIHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MZWFybiBNb3JlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlF1aWNrIEFjdGlvbnMifSAuc3VidGl0bGU9JHsiQ29tbW9uIHRhc2tzIn0+CiAgICAgICAgICA8cD5FYWNoIHBhbmVsIG1haW50YWlucyBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHN0eWxpbmcgYWNyb3NzIHlvdXIgYXBwbGljYXRpb24uPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkdldCBTdGFydGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBWYXJpYW50czwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGVmYXVsdCBWYXJpYW50In0gLnZhcmlhbnQ9JHsiZGVmYXVsdCJ9PgogICAgICAgIDxwPlRoZSBkZWZhdWx0IHZhcmlhbnQgaGFzIGEgd2hpdGUgYmFja2dyb3VuZCwgc3VidGxlIGJvcmRlciwgYW5kIG1pbmltYWwgc2hhZG93LiBJdCdzIHRoZSBzdGFuZGFyZCBjaG9pY2UgZm9yIG1vc3QgY29udGVudC48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9ImRlZmF1bHQiPC9jb2RlPiBvciBvbWl0IHRoZSB2YXJpYW50IHByb3BlcnR5LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik91dGxpbmUgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJUcmFuc3BhcmVudCBiYWNrZ3JvdW5kIHdpdGggYm9yZGVyIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgIDxwPlRoZSBvdXRsaW5lIHZhcmlhbnQgcmVtb3ZlcyB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgc2hhZG93LCBrZWVwaW5nIG9ubHkgdGhlIGJvcmRlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Im91dGxpbmUiPC9jb2RlPiBmb3IgYSBsaWdodGVyIHZpc3VhbCB3ZWlnaHQuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiR2hvc3QgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJNaW5pbWFsIHN0eWxpbmcgZm9yIHN1YnRsZSBzZWN0aW9ucyJ9IC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgPHA+VGhlIGdob3N0IHZhcmlhbnQgaGFzIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kIGJ5IGRlZmF1bHQsIG9ubHkgc2hvd2luZyBhIHN1YnRsZSBiYWNrZ3JvdW5kIG9uIGhvdmVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZ2hvc3QiPC9jb2RlPiBmb3IgdGhlIG1vc3QgbWluaW1hbCBhcHBlYXJhbmNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBTaXplczwvaDI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLTNjb2wiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTbWFsbCBQYW5lbCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5Db21wYWN0IHBhZGRpbmcgZm9yIGRlbnNlIGxheW91dHMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9InNtIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJNZWRpdW0gUGFuZWwifSAuc2l6ZT0keyJtZCJ9PgogICAgICAgICAgPHA+RGVmYXVsdCBzaXplIHdpdGggYmFsYW5jZWQgc3BhY2luZy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibWQiPC9jb2RlPiBvciBvbWl0LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhcmdlIFBhbmVsIn0gLnNpemU9JHsibGcifT4KICAgICAgICAgIDxwPkdlbmVyb3VzIHBhZGRpbmcgZm9yIHByb21pbmVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibGciPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db21wbGV4IEV4YW1wbGVzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiUGFuZWxzIHdvcmsgZ3JlYXQgZm9yIG9yZ2FuaXppbmcgZm9ybSBzZWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJEZXNjcmlwdGlvbiJ9IC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIAogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifSAKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIERldmVsb3BtZW50IixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHAiLGtleToibW9iaWxlIn0se29wdGlvbjoiRGVza3RvcCBTb2Z0d2FyZSIsa2V5OiJkZXNrdG9wIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNyZWF0ZSBQcm9qZWN0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVscyJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgY2FuIGJlIG5lc3RlZCBmb3IgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbiJ9PgogICAgICAgIDxwPllvdSBjYW4gbmVzdCBwYW5lbHMgdG8gY3JlYXRlIG1vcmUgY29tcGxleCBsYXlvdXRzOjwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDEifSAudmFyaWFudD0keyJvdXRsaW5lIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYSBuZXN0ZWQgcGFuZWwgd2l0aCBvdXRsaW5lIHZhcmlhbnQgYW5kIHNtYWxsIHNpemUuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDIifSAudmFyaWFudD0keyJnaG9zdCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGFub3RoZXIgbmVzdGVkIHBhbmVsIHdpdGggZ2hvc3QgdmFyaWFudC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVudGl0bGVkIFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD5QYW5lbHMgd29yayBncmVhdCBldmVuIHdpdGhvdXQgYSB0aXRsZSBmb3Igc2ltcGxlIGNvbnRlbnQgZ3JvdXBpbmcuPC9wPgogICAgICAgIDxwPlRoZXkgcHJvdmlkZSB2aXN1YWwgc2VwYXJhdGlvbiBhbmQgY29uc2lzdGVudCBwYWRkaW5nIHRocm91Z2hvdXQgeW91ciBpbnRlcmZhY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+Q3VzdG9tIENvbnRlbnQ8L2g0PgogICAgICAgICAgPHA+WW91IGNhbiBhZGQgeW91ciBvd24gaGVhZGluZ3MgYW5kIHN0cnVjdHVyZSB3aXRoaW4gdW50aXRsZWQgcGFuZWxzLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPk1pbmltYWwgU3R5bGU8L2g0PgogICAgICAgICAgPHA+R2hvc3QgcGFuZWxzIHdpdGhvdXQgdGl0bGVzIGNyZWF0ZSB2ZXJ5IHN1YnRsZSBjb250ZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgQkVhLEhFYSxMNnQsRXBlLEhyLG05LHFFYSxWRWEseGpyLGpFYSxVRWEsWXIxLEtyMSxfcz11KCgpPT57dmUoKTtCRWE9IkdlaXN0IFNhbnMiLEhFYT0iSW50ZWwgT25lIE1vbm8iLEw2dD1gJyR7QkVhfScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgLEVwZT1gJyR7SEVhfScsICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgJ0Ryb2lkIFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZWAsSHI9R3IoTDZ0KSxtOT1HcihFcGUpLHFFYT0iQ2FsIFNhbnMiLFZFYT1gJyR7cUVhfScsICR7TDZ0fWAseGpyPUdyKFZFYSksakVhPSJSb2JvdG8gU2xhYiIsVUVhPWAnJHtqRWF9JywgR2VvcmdpYSwgc2VyaWZgLFlyMT1HcihVRWEpLEtyMT1HcihgCiAgZm9udC1mYW1pbHk6ICR7TDZ0fTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2N2MTEnLCAndG51bScsICdjdjA1JyAxOwpgKX0pO3ZhciBQeSxwYyx2anIsd249dSgoKT0+e3ZlKCk7YmpyKCk7X3MoKTtsdCgpO1B5PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxwYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sdmpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1wYW5lbCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzUGFuZWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOlN0cmluZ30pXSx5PVtQKHthdHRyaWJ1dGU6ITF9KV0sUHkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGl0bGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50aXRsZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnRpdGxlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxQeSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1YnRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdWJ0aXRsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN1YnRpdGxlLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc3VidGl0bGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLFB5KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFyaWFudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idmFyaWFudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnZhcmlhbnQsImdldCIpLHNldDppKChTLE8pPT57Uy52YXJpYW50PU99LCJzZXQiKX0sbWV0YWRhdGE6X30saCxtKSxQeSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNpemUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaXplLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUHkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydW5BZnRlclJlbmRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4icnVuQWZ0ZXJSZW5kZXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5ydW5BZnRlclJlbmRlciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnJ1bkFmdGVyUmVuZGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxQeShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWdqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPXBjKHRoaXMsbywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKF8pe3RoaXMuI2U9X30jdD0ocGModGhpcyxsKSxwYyh0aGlzLGQsIiIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3VidGl0bGUoXyl7dGhpcy4jdD1ffSNyPShwYyh0aGlzLGYpLHBjKHRoaXMsaCwiZGVmYXVsdCIpKTtnZXQgdmFyaWFudCgpe3JldHVybiB0aGlzLiNyfXNldCB2YXJpYW50KF8pe3RoaXMuI3I9X30jYT0ocGModGhpcyxtKSxwYyh0aGlzLGIsIm1kIikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNpemUoXyl7dGhpcy4jYT1ffSNpPShwYyh0aGlzLGcpLHBjKHRoaXMsayx2b2lkIDApKTtnZXQgcnVuQWZ0ZXJSZW5kZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcnVuQWZ0ZXJSZW5kZXIoXyl7dGhpcy4jaT1ffXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXSkgewogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIGhzbCgwIDAlIDAlIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IG91dGxpbmUgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBUaXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgbWFyZ2luOiA0cHggMCAwIDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA4NC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgfQoKICAgICAgLyogUmVtb3ZlIG1hcmdpbnMgZnJvbSBmaXJzdCBhbmQgbGFzdCBjaGlsZHJlbiAqLwogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGRlZmF1bHQgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIG91dGxpbmUgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgNy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZ2hvc3QgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlcyAqLwogICAgICA6aG9zdCg6Zm9jdXMtd2l0aGluKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBOZXN0ZWQgcGFuZWxzIHNwYWNpbmcgKi8KICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWwpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICR7dGhpcy50aXRsZT93YDxoMyBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2gzPmA6IiJ9CiAgICAgICAgJHt0aGlzLnN1YnRpdGxlP3dgPHAgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9wPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJ1bkFmdGVyUmVuZGVyJiZhd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxwYyh0aGlzLE0pfXN0YXRpY3twYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgeWpyLEQ2dCx3anIsa2pyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtENnQ9aSh0PT5BcnJheS5mcm9tKHtsZW5ndGg6dH0sKGUscik9Pih7aWQ6cix1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKSxsYWJlbDpgJHtyfWB9KSksImdlbmVyYXRlQ3B1Q29yZXMiKSx3anI9aSgoKT0+dyh5anJ8fCh5anI9RGcoW2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgYCxgCiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImFjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiBgLCI7IGJvcmRlci1yYWRpdXM6IDZweDsgZm9udC1zaXplOiAxNHB4OyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogIixgOyI+CiAgICAgICAgICA8ZW0+Q2xpY2sgb24gdGlsZSBhY3Rpb25zIG9yIGdyaWQgYWN0aW9ucyB0byBzZWUgdGhlIHJlc3VsdC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5Db25maWd1cmF0aW9uIE9wdGlvbnM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICBFYWNoIHRpbGUgdHlwZSBzdXBwb3J0cyBkaWZmZXJlbnQgcHJvcGVydGllczoKICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TnVtYmVyOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkdhdWdlOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgZ2F1Z2VPcHRpb25zIChtaW4sIG1heCwgdGhyZXNob2xkcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+UGVyY2VudGFnZTo8L3N0cm9uZz4gdmFsdWUgKDAtMTAwKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRyZW5kOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgdHJlbmREYXRhIGFycmF5LCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UZXh0Ojwvc3Ryb25nPiB2YWx1ZSAoc3RyaW5nKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPkNvbXBhY3QgTGF5b3V0ICgxODBweCB0aWxlcyk8L2g0PgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDI0cHggMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPlNwYWNpb3VzIExheW91dCAoMzIwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICBpZD0iY3B1LWNvcmVzLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPmAsYDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb25maWciPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPlBhcnRpdGlvbiBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS51c2VkOjwvc3Ryb25nPiBVc2VkIHNwYWNlIGluIGJ5dGVzIChhdXRvLWZvcm1hdHRlZCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS50b3RhbDo8L3N0cm9uZz4gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5maWxlc3lzdGVtOjwvc3Ryb25nPiBGaWxlc3lzdGVtIHR5cGUgKGV4dDQsIHhmcywgbnRmcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5tb3VudFBvaW50Ojwvc3Ryb25nPiBNb3VudCBwb2ludCBwYXRoIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgQ29sb3IgdGhyZXNob2xkczogTm9ybWFsICgmbHQ7NzUlKSwgV2FybmluZyAoNzUtOTAlKSwgQ3JpdGljYWwgKCZndDs5MCUpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+RGlzayBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuY2FwYWNpdHk6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLm1vZGVsOjwvc3Ryb25nPiBEaXNrIG1vZGVsIG5hbWUgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS50eXBlOjwvc3Ryb25nPiBEaXNrIHR5cGU6ICdzc2QnLCAnaGRkJywgb3IgJ252bWUnPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmlvcHM6PC9zdHJvbmc+IFJlYWQvd3JpdGUgSU9QUyAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmhlYWx0aDo8L3N0cm9uZz4gSGVhbHRoIHBlcmNlbnRhZ2UgMC0xMDAgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICBIZWFsdGggdGhyZXNob2xkczogR29vZCAoNzAtMTAwJSksIFdhcm5pbmcgKDMwLTcwJSksIENyaXRpY2FsICgmbHQ7MzAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAvLyBDbGVhbnVwIGxpdmUgdXBkYXRlcyBvbiBwYWdlIHVubG9hZAogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgKCkgPT4gewogICAgICAgIGlmICgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKSB7CiAgICAgICAgICBjbGVhckludGVydmFsKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpOwogICAgICAgIH0KICAgICAgfSk7CiAgICA8XC9zY3JpcHQ+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSkscmVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWxlLWNvbmZpZyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLXNlY3Rpb24gewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvZGUtYmxvY2sgewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgICAgfQogICAgICBgLCIxLiBDb21wcmVoZW5zaXZlIERhc2hib2FyZCIsIkZ1bGwtZmVhdHVyZWQgc3RhdHMgZ3JpZCB3aXRoIHZhcmlvdXMgdGlsZSB0eXBlcywgYWN0aW9ucywgYW5kIEx1Y2lkZSBpY29ucyIsW3tpZDoicmV2ZW51ZSIsdGl0bGU6IlRvdGFsIFJldmVudWUiLHZhbHVlOjEyNTQyMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpkb2xsYXItc2lnbiIsZGVzY3JpcHRpb246IisxMi41JSBmcm9tIGxhc3QgbW9udGgiLGFjdGlvbnM6W3tuYW1lOiJWaWV3IERldGFpbHMiLGljb25OYW1lOiJsdWNpZGU6dHJlbmRpbmctdXAiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJWaWV3aW5nIHJldmVudWUgZGV0YWlsczogJDEyNSw0MjAgKCsxMi41JSkiKX0sImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJFeHBvcnRpbmcgcmV2ZW51ZSBkYXRhIHRvIENTVi4uLiIpfSwiYWN0aW9uIil9XX0se2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6Mzg0Nyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246IjMyNCBuZXcgdGhpcyB3ZWVrIixhY3Rpb25zOlt7bmFtZToiVmlldyBVc2VyIExpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7dCYmKHQudGV4dENvbnRlbnQ9Ik9wZW5pbmcgdXNlciBsaXN0Li4uIil9LCJhY3Rpb24iKX1dfSx7aWQ6ImNwdSIsdGl0bGU6IkNQVSBVc2FnZSIsdmFsdWU6NzMsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpjcHUiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo2MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6InN0b3JhZ2UiLHRpdGxlOiJTdG9yYWdlIFVzZWQiLHZhbHVlOjY1LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkZXNjcmlwdGlvbjoiNjUwIEdCIG9mIDEgVEIifSx7aWQ6ImxhdGVuY3kiLHRpdGxlOiJSZXNwb25zZSBUaW1lIix2YWx1ZToxNDIsdW5pdDoibXMiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbMTUwLDE0NSwxNDgsMTQyLDEzOCwxNDAsMTM1LDE0NSwxNDJdLGRlc2NyaXB0aW9uOiJQOTUifSx7aWQ6InVwdGltZSIsdGl0bGU6IlN5c3RlbSBVcHRpbWUiLHZhbHVlOiI5OS45NSUiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTpjaGVjay1jaXJjbGUiLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixkZXNjcmlwdGlvbjoiTGFzdCAzMCBkYXlzIn1dLFt7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoLWN3IixhY3Rpb246aShhc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1zdGF0c2dyaWQiKTt0JiYodC5zdHlsZS5vcGFjaXR5PSIwLjUiLHNldFRpbWVvdXQoKCk9Pnt0LnN0eWxlLm9wYWNpdHk9IjEifSwzMDApKX0sImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IixpY29uTmFtZToibHVjaWRlOnNoYXJlIixhY3Rpb246aShhc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iRXhwb3J0aW5nIGRhc2hib2FyZCByZXBvcnQuLi4iKX0sImFjdGlvbiIpfSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJPcGVuaW5nIGRhc2hib2FyZCBzZXR0aW5ncy4uLiIpfSwiYWN0aW9uIil9XSwyNTAsMTYseC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpLHguYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKSwiMi4gVGlsZSBUeXBlcyIsIkRpZmZlcmVudCB2aXN1YWxpemF0aW9uIHR5cGVzIGF2YWlsYWJsZSBpbiB0aGUgc3RhdHMgZ3JpZCIsW3tpZDoibnVtYmVyLWV4YW1wbGUiLHRpdGxlOiJOdW1iZXIgVGlsZSIsdmFsdWU6NDIxOTUsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6aGFzaCIsZGVzY3JpcHRpb246IlNpbXBsZSBudW1lcmljIGRpc3BsYXkifSx7aWQ6ImdhdWdlLWV4YW1wbGUiLHRpdGxlOiJHYXVnZSBUaWxlIix2YWx1ZTo2OCx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmdhdWdlIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NTAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJwZXJjZW50YWdlLWV4YW1wbGUiLHRpdGxlOiJQZXJjZW50YWdlIFRpbGUiLHZhbHVlOjc4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpwZXJjZW50IixkZXNjcmlwdGlvbjoiUHJvZ3Jlc3MgYmFyIHZpc3VhbGl6YXRpb24ifSx7aWQ6InRyZW5kLWV4YW1wbGUiLHRpdGxlOiJUcmVuZCBUaWxlIix2YWx1ZTo4OTIsdW5pdDoib3BzL3MiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6dHJlbmRpbmctdXAiLHRyZW5kRGF0YTpbNzIwLDc1MCw3ODAsNzk1LDgxMCw4MzUsODUwLDg2NSw4ODAsODkyXSxkZXNjcmlwdGlvbjoiYXZnIn0se2lkOiJ0ZXh0LWV4YW1wbGUiLHRpdGxlOiJUZXh0IFRpbGUiLHZhbHVlOiJPcGVyYXRpb25hbCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmluZm8iLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixkZXNjcmlwdGlvbjoiU3RhdHVzIGRpc3BsYXkifV0sMjgwLDE2LCIzLiBHcmlkIENvbmZpZ3VyYXRpb25zIiwiRGlmZmVyZW50IGxheW91dCBvcHRpb25zIGFuZCByZXNwb25zaXZlIGJlaGF2aW9yIixbe2lkOiIxIix0aXRsZToiT3JkZXJzIix2YWx1ZToxNTYsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hvcHBpbmctY2FydCJ9LHtpZDoiMiIsdGl0bGU6IlJldmVudWUiLHZhbHVlOjg0MjAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6ZG9sbGFyLXNpZ24ifSx7aWQ6IjMiLHRpdGxlOiJVc2VycyIsdmFsdWU6NDIzLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIn0se2lkOiI0Iix0aXRsZToiR3Jvd3RoIix2YWx1ZToxMi41LHVuaXQ6IiUiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnRyZW5kaW5nLXVwIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9XSwxODAsMTIsW3tpZDoic3BhY2lvdXMxIix0aXRsZToiTW9udGhseSBSZXZlbnVlIix2YWx1ZToxODQ1MDAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y3JlZGl0LWNhcmQiLGRlc2NyaXB0aW9uOiJUb3RhbCByZXZlbnVlIHRoaXMgbW9udGgifSx7aWQ6InNwYWNpb3VzMiIsdGl0bGU6IkN1c3RvbWVyIFNhdGlzZmFjdGlvbiIsdmFsdWU6OTQsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnNtaWxlIixkZXNjcmlwdGlvbjoiQmFzZWQgb24gMSwyMzQgcmV2aWV3cyJ9LHtpZDoic3BhY2lvdXMzIix0aXRsZToiU2VydmVyIFJlc3BvbnNlIix2YWx1ZTo5OCx1bml0OiJtcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHRyZW5kRGF0YTpbMTA1LDEwMiwxMDAsOTksOTgsOTgsOTcsOThdLGRlc2NyaXB0aW9uOiJhdmcgcmVzcG9uc2UgdGltZSJ9XSwzMjAsMjAsIjQuIENQVSBDb3JlcyBWaXN1YWxpemF0aW9uIiwiVmVydGljYWwgYmFyIHZpc3VhbGl6YXRpb24gZm9yIG11bHRpLWNvcmUgQ1BVIHVzYWdlIHdpdGggY29sdW1uIHNwYW5uaW5nIixbe2lkOiJjcHUtY29yZXMtOCIsdGl0bGU6IkNQVSBDb3JlcyAoOC1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOmNwdSIsY29sdW1uU3BhbjoyLGNvcmVzRGF0YTpENnQoOCksZGVzY3JpcHRpb246IkludGVsIGk3IC0gOCBjb3JlcyJ9LHtpZDoibWVtb3J5Iix0aXRsZToiTWVtb3J5IFVzYWdlIix2YWx1ZTo2OCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UiLGRlc2NyaXB0aW9uOiIxMy42IEdCIG9mIDIwIEdCIn0se2lkOiJjcHUtY29yZXMtMTYiLHRpdGxlOiJDUFUgQ29yZXMgKDE2LWNvcmUpIix2YWx1ZTowLHR5cGU6ImNwdUNvcmVzIixpY29uOiJsdWNpZGU6Y3B1Iixjb2x1bW5TcGFuOjIsY29yZXNEYXRhOkQ2dCgxNiksZGVzY3JpcHRpb246IkFNRCBSeXplbiA5IC0gMTYgY29yZXMifSx7aWQ6Im5ldHdvcmsiLHRpdGxlOiJOZXR3b3JrIEkvTyIsdmFsdWU6MjQ1LHVuaXQ6Ik1CL3MiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6bmV0d29yayIsdHJlbmREYXRhOlsyMDAsMjIwLDIzNSwyNDAsMjM4LDI0NV0sZGVzY3JpcHRpb246InRocm91Z2hwdXQifSx7aWQ6ImNwdS1jb3Jlcy0zMiIsdGl0bGU6IlNlcnZlciBDUFUgKDMyLWNvcmUpIix2YWx1ZTowLHR5cGU6ImNwdUNvcmVzIixpY29uOiJsdWNpZGU6c2VydmVyIixjb2x1bW5TcGFuOjMsY29yZXNEYXRhOkQ2dCgzMiksZGVzY3JpcHRpb246IkFNRCBFUFlDIC0gMzIgY29yZXMifSx7aWQ6ImRpc2siLHRpdGxlOiJEaXNrIFVzYWdlIix2YWx1ZTo0Mix0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGVzY3JpcHRpb246IjQyMCBHQiBvZiAxIFRCIn1dLFt7bmFtZToiUmFuZG9taXplIixpY29uTmFtZToibHVjaWRlOnNodWZmbGUiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY3B1LWNvcmVzLWdyaWQiKTtpZighdClyZXR1cm47bGV0IGU9dC50aWxlcy5tYXAocj0+ci50eXBlPT09ImNwdUNvcmVzIiYmci5jb3Jlc0RhdGE/ey4uLnIsY29yZXNEYXRhOnIuY29yZXNEYXRhLm1hcChhPT4oey4uLmEsdXNhZ2U6TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjEwMCl9KSl9OnIpO3QudGlsZXM9ZX0sImFjdGlvbiIpfV0sMjUwLDE2LCI1LiBJbnRlcmFjdGl2ZSBGZWF0dXJlcyIsIlRpbGVzIHdpdGggYWN0aW9ucyBhbmQgcmVhbC10aW1lIHVwZGF0ZXMiLFt7aWQ6ImxpdmUtY3B1Iix0aXRsZToiTGl2ZSBDUFUiLHZhbHVlOjQ1LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Y3B1IixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NjAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJsaXZlLXJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZTo4OTIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsdHJlbmREYXRhOls4NTAsODYwLDg3MCw4ODAsODg1LDg5MCw4OTJdfSx7aWQ6ImxpdmUtbWVtb3J5Iix0aXRsZToiTWVtb3J5IFVzYWdlIix2YWx1ZTo2Mix0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UifSx7aWQ6ImNvdW50ZXIiLHRpdGxlOiJFdmVudCBDb3VudGVyIix2YWx1ZTowLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnphcCIsYWN0aW9uczpbe25hbWU6IkluY3JlbWVudCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aShhc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWdyaWQiKTtpZighdClyZXR1cm47bGV0IGU9dC50aWxlcy5maW5kKHI9PnIuaWQ9PT0iY291bnRlciIpO2UudmFsdWU9dHlwZW9mIGUudmFsdWU9PSJudW1iZXIiP2UudmFsdWUrMToxLHQudGlsZXM9Wy4uLnQudGlsZXNdfSwiYWN0aW9uIil9LHtuYW1lOiJSZXNldCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGUtY2N3IixhY3Rpb246aShhc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWdyaWQiKTtpZighdClyZXR1cm47bGV0IGU9dC50aWxlcy5maW5kKHI9PnIuaWQ9PT0iY291bnRlciIpO2UudmFsdWU9MCx0LnRpbGVzPVsuLi50LnRpbGVzXX0sImFjdGlvbiIpfV19XSxbe25hbWU6IlN0YXJ0IExpdmUgVXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpwbGF5IixhY3Rpb246aShhc3luYyBmdW5jdGlvbigpe3dpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw/KGNsZWFySW50ZXJ2YWwod2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbCksd2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD1udWxsLHRoaXMubmFtZT0iU3RhcnQgTGl2ZSBVcGRhdGVzIix0aGlzLmljb25OYW1lPSJsdWNpZGU6cGxheSIpOih3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPXNldEludGVydmFsKCgpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWdyaWQiKTtpZih0KXtsZXQgZT1bLi4udC50aWxlc10scj1lLmZpbmQobz0+by5pZD09PSJsaXZlLWNwdSIpO3IudmFsdWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsci52YWx1ZSsoTWF0aC5yYW5kb20oKSoyMC0xMCkpKTtsZXQgYT1lLmZpbmQobz0+by5pZD09PSJsaXZlLXJlcXVlc3RzIikscz1hLnZhbHVlK01hdGgucm91bmQoTWF0aC5yYW5kb20oKSo1MC0yNSk7YS52YWx1ZT1NYXRoLm1heCg4MDAscyksYS50cmVuZERhdGE9Wy4uLmEudHJlbmREYXRhLnNsaWNlKDEpLGEudmFsdWVdO2xldCBuPWUuZmluZChvPT5vLmlkPT09ImxpdmUtbWVtb3J5Iik7bi52YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCxuLnZhbHVlKyhNYXRoLnJhbmRvbSgpKjEwLTUpKSksdC50aWxlcz1lfX0sMWUzKSx0aGlzLm5hbWU9IlN0b3AgTGl2ZSBVcGRhdGVzIix0aGlzLmljb25OYW1lPSJsdWNpZGU6cGF1c2UiKX0sImFjdGlvbiIpfV0sMjUwLDE2LCI2LiBDb2RlIEV4YW1wbGUiLCJIb3cgdG8gaW1wbGVtZW50IGEgc3RhdHMgZ3JpZCB3aXRoIFR5cGVTY3JpcHQiLGBjb25zdCB0aWxlczogSVN0YXRzVGlsZVtdID0gWwogIHsKICAgIGlkOiAncmV2ZW51ZScsCiAgICB0aXRsZTogJ1RvdGFsIFJldmVudWUnLAogICAgdmFsdWU6IDEyNTQyMCwKICAgIHVuaXQ6ICckJywKICAgIHR5cGU6ICdudW1iZXInLAogICAgaWNvbjogJ2x1Y2lkZTpkb2xsYXItc2lnbicsCiAgICBkZXNjcmlwdGlvbjogJysxMi41JSBmcm9tIGxhc3QgbW9udGgnLAogICAgYWN0aW9uczogWwogICAgICB7CiAgICAgICAgbmFtZTogJ1ZpZXcgRGV0YWlscycsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dHJlbmRpbmctdXAnLAogICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc29sZS5sb2coJ1ZpZXcgcmV2ZW51ZSBkZXRhaWxzJyk7CiAgICAgICAgfQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogJ2NwdScsCiAgICB0aXRsZTogJ0NQVSBVc2FnZScsCiAgICB2YWx1ZTogNzMsCiAgICB1bml0OiAnJScsCiAgICB0eXBlOiAnZ2F1Z2UnLAogICAgaWNvbjogJ2x1Y2lkZTpjcHUnLAogICAgZ2F1Z2VPcHRpb25zOiB7CiAgICAgIG1pbjogMCwKICAgICAgbWF4OiAxMDAsCiAgICAgIHRocmVzaG9sZHM6IFsKICAgICAgICB7IHZhbHVlOiAwLCBjb2xvcjogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknIH0sCiAgICAgICAgeyB2YWx1ZTogNjAsIGNvbG9yOiAnaHNsKDQ1LjQgOTMuNCUgNDcuNSUpJyB9LAogICAgICAgIHsgdmFsdWU6IDgwLCBjb2xvcjogJ2hzbCgwIDg0LjIlIDYwLjIlKScgfQogICAgICBdCiAgICB9CiAgfQpdOwoKLy8gUmVuZGVyIHRoZSBzdGF0cyBncmlkCmh0bWxcYAogIDxkZWVzLXN0YXRzZ3JpZAogICAgLnRpbGVzPVwke3RpbGVzfQogICAgLm1pblRpbGVXaWR0aD1cJHsyNTB9CiAgICAuZ2FwPVwkezE2fQogICAgLmdyaWRBY3Rpb25zPVwke1sKICAgICAgewogICAgICAgIG5hbWU6ICdSZWZyZXNoJywKICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoLWN3JywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdSZWZyZXNoJykKICAgICAgfQogICAgXX0KICA+PC9kZWVzLXN0YXRzZ3JpZD4KXGA7YCwiNy4gRGlzayAmIFN0b3JhZ2UgVGlsZXMiLCJQYXJ0aXRpb24gYW5kIHBoeXNpY2FsIGRpc2sgdmlzdWFsaXphdGlvbiB0aWxlcyIsW3tpZDoicm9vdC1wYXJ0aXRpb24iLHRpdGxlOiJSb290IFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpmb2xkZXItcm9vdCIscGFydGl0aW9uRGF0YTp7dXNlZDo2OTgzNDE0MjUxNTIsdG90YWw6MTA3Mzc0MTgyNGUzLGZpbGVzeXN0ZW06ImV4dDQiLG1vdW50UG9pbnQ6Ii8ifX0se2lkOiJob21lLXBhcnRpdGlvbiIsdGl0bGU6IkhvbWUgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmhvbWUiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6MjE0NzQ4MzY0ODAwLHRvdGFsOjUzNjg3MDkxMmUzLGZpbGVzeXN0ZW06ImV4dDQiLG1vdW50UG9pbnQ6Ii9ob21lIn19LHtpZDoiZGF0YS1wYXJ0aXRpb24iLHRpdGxlOiJEYXRhIFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpkYXRhYmFzZSIscGFydGl0aW9uRGF0YTp7dXNlZDoxOTMyNzM1MjgzMjAwLHRvdGFsOjIxNDc0ODM2NDhlMyxmaWxlc3lzdGVtOiJ4ZnMiLG1vdW50UG9pbnQ6Ii9kYXRhIn19LHtpZDoibnZtZS1zc2QiLHRpdGxlOiJQcmltYXJ5IE5WTWUiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGNvbHVtblNwYW46MixkaXNrRGF0YTp7Y2FwYWNpdHk6MmUxMixtb2RlbDoiU2Ftc3VuZyA5OTAgUHJvIix0eXBlOiJudm1lIixpb3BzOntyZWFkOjc0NTAsd3JpdGU6NjkwMH0saGVhbHRoOjk4fX0se2lkOiJzYXRhLXNzZCIsdGl0bGU6IlNlY29uZGFyeSBTU0QiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRpc2tEYXRhOntjYXBhY2l0eToxZTEyLG1vZGVsOiJDcnVjaWFsIE1YNTAwIix0eXBlOiJzc2QiLGlvcHM6e3JlYWQ6NTYwLHdyaXRlOjUxMH0saGVhbHRoOjg1fX0se2lkOiJoZGQtc3RvcmFnZSIsdGl0bGU6IkJhY2t1cCBIREQiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmFyY2hpdmUiLGRpc2tEYXRhOntjYXBhY2l0eTo4ZTEyLG1vZGVsOiJTZWFnYXRlIElyb25Xb2xmIix0eXBlOiJoZGQiLGlvcHM6e3JlYWQ6MjEwLHdyaXRlOjE5NX0saGVhbHRoOjQyfX1dLDI4MCwxNiksImRlbW9GdW5jIil9KTt2YXIgTnAsa28sRXQsQ2k9dSgoKT0+e3ZlKCk7TXIoKTtOcD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sa289ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEV0PSgoKT0+e2xldCB0PXllLGUscj1bXSxhPVtdLHMsbj1bXSxvPVtdLGwsYz1bXSxkPVtdLGYscD1bXSxoPVtdLG0sdj1bXSxiPVtdLGcseT1bXSxrPVtdLE0sTj1bXSxfPVtdLFMsTz1bXSxMPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIHR7c3RhdGlje2kodGhpcywiRGVlc0lucHV0QmFzZSIpfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZSh0W1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtQKHt0eXBlOlN0cmluZ30pXSxzPVtQKHt0eXBlOlN0cmluZ30pXSxsPVtQKHt0eXBlOlN0cmluZ30pXSxmPVtQKHt0eXBlOlN0cmluZ30pXSxtPVtQKHt0eXBlOkJvb2xlYW59KV0sZz1bUCh7dHlwZTpCb29sZWFufSldLE09W1Aoe3R5cGU6U3RyaW5nfSldLFM9W1Aoe3R5cGU6U3RyaW5nfSldLE5wKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0TW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDPT4ibGF5b3V0TW9kZSJpbiBDLCJoYXMiKSxnZXQ6aShDPT5DLmxheW91dE1vZGUsImdldCIpLHNldDppKChDLHopPT57Qy5sYXlvdXRNb2RlPXp9LCJzZXQiKX0sbWV0YWRhdGE6Qn0scixhKSxOcCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQz0+ImxhYmVsUG9zaXRpb24iaW4gQywiaGFzIiksZ2V0OmkoQz0+Qy5sYWJlbFBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoQyx6KT0+e0MubGFiZWxQb3NpdGlvbj16fSwic2V0Iil9LG1ldGFkYXRhOkJ9LG4sbyksTnAodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQz0+ImtleSJpbiBDLCJoYXMiKSxnZXQ6aShDPT5DLmtleSwiZ2V0Iiksc2V0OmkoKEMseik9PntDLmtleT16fSwic2V0Iil9LG1ldGFkYXRhOkJ9LGMsZCksTnAodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDPT4ibGFiZWwiaW4gQywiaGFzIiksZ2V0OmkoQz0+Qy5sYWJlbCwiZ2V0Iiksc2V0OmkoKEMseik9PntDLmxhYmVsPXp9LCJzZXQiKX0sbWV0YWRhdGE6Qn0scCxoKSxOcCh0aGlzLG51bGwsbSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEM9PiJyZXF1aXJlZCJpbiBDLCJoYXMiKSxnZXQ6aShDPT5DLnJlcXVpcmVkLCJnZXQiKSxzZXQ6aSgoQyx6KT0+e0MucmVxdWlyZWQ9en0sInNldCIpfSxtZXRhZGF0YTpCfSx2LGIpLE5wKHRoaXMsbnVsbCxnLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQz0+ImRpc2FibGVkImluIEMsImhhcyIpLGdldDppKEM9PkMuZGlzYWJsZWQsImdldCIpLHNldDppKChDLHopPT57Qy5kaXNhYmxlZD16fSwic2V0Iil9LG1ldGFkYXRhOkJ9LHksayksTnAodGhpcyxudWxsLE0se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmZvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDPT4iaW5mb1RleHQiaW4gQywiaGFzIiksZ2V0OmkoQz0+Qy5pbmZvVGV4dCwiZ2V0Iiksc2V0OmkoKEMseik9PntDLmluZm9UZXh0PXp9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sTixfKSxOcCh0aGlzLG51bGwsUyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRlc2NyaXB0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEM9PiJkZXNjcmlwdGlvbiJpbiBDLCJoYXMiKSxnZXQ6aShDPT5DLmRlc2NyaXB0aW9uLCJnZXQiKSxzZXQ6aSgoQyx6KT0+e0MuZGVzY3JpcHRpb249en0sInNldCIpfSxtZXRhZGF0YTpCfSxPLEwpLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfSNlPWtvKHRoaXMsciwiYXV0byIpO2dldCBsYXlvdXRNb2RlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxheW91dE1vZGUoQil7dGhpcy4jZT1CfSN0PShrbyh0aGlzLGEpLGtvKHRoaXMsbiwidG9wIikpO2dldCBsYWJlbFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhYmVsUG9zaXRpb24oQil7dGhpcy4jdD1CfSNyPShrbyh0aGlzLG8pLGtvKHRoaXMsYyx2b2lkIDApKTtnZXQga2V5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGtleShCKXt0aGlzLiNyPUJ9I2E9KGtvKHRoaXMsZCksa28odGhpcyxwLHZvaWQgMCkpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNhfXNldCBsYWJlbChCKXt0aGlzLiNhPUJ9I2k9KGtvKHRoaXMsaCksa28odGhpcyx2LCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHJlcXVpcmVkKEIpe3RoaXMuI2k9Qn0jcz0oa28odGhpcyxiKSxrbyh0aGlzLHksITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgZGlzYWJsZWQoQil7dGhpcy4jcz1CfSNuPShrbyh0aGlzLGspLGtvKHRoaXMsTix2b2lkIDApKTtnZXQgaW5mb1RleHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaW5mb1RleHQoQil7dGhpcy4jbj1CfSNvPShrbyh0aGlzLF8pLGtvKHRoaXMsTyx2b2lkIDApKTtnZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy4jb31zZXQgZGVzY3JpcHRpb24oQil7dGhpcy4jbz1CfXN0YXRpYyBnZXQgYmFzZVN0eWxlcygpe3JldHVybltyZWAKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0OiA4cHg7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwOiB2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCk7IC8qIDhweCAqLwogICAgICAgIH0KCiAgICAgICAgLyogRGVmYXVsdCBibG9jayBkaXNwbGF5IHdpdGggbm8gbWFyZ2lucyAtIHNwYWNpbmcgaXMgY29udGFpbmVyLWRyaXZlbiAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgLyogSG9yaXpvbnRhbCBsYXlvdXQgbW9kZSAtIGFjdGl2YXRlZCBieSBhdHRyaWJ1dGUgKi8KICAgICAgICA6aG9zdChbbGF5b3V0LW1vZGU9Imhvcml6b250YWwiXSkgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgcG9zaXRpb24gdmFyaWF0aW9ucyAqLwogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibm9uZSJdKSBkZWVzLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAvKiBEZXNjcmlwdGlvbiB0ZXh0IGJlbG93IGlucHV0ICovCiAgICAgICAgLmRlc2NyaXB0aW9uVGV4dCB7CiAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgfQogICAgICBgXX1jaGFuZ2VTdWJqZWN0PShrbyh0aGlzLEwpLG5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdCk7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpfWRldGVjdExheW91dE1vZGUoKXtpZih0aGlzLmxheW91dE1vZGUhPT0iYXV0byIpe3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsdGhpcy5sYXlvdXRNb2RlKTtyZXR1cm59bGV0IEI9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtCJiZCLmhhc0F0dHJpYnV0ZSgiaG9yaXpvbnRhbC1sYXlvdXQiKT90aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJob3Jpem9udGFsIik6dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwidmVydGljYWwiKX11cGRhdGVkKEIpe3N1cGVyLnVwZGF0ZWQoQiksQi5oYXMoImxheW91dE1vZGUiKSYmdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCksQi5oYXMoImxhYmVsUG9zaXRpb24iKSYmdGhpcy5zZXRBdHRyaWJ1dGUoImxhYmVsLXBvc2l0aW9uIix0aGlzLmxhYmVsUG9zaXRpb24pfWFzeW5jIGZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITB9YXN5bmMgdW5mcmVlemUoKXt0aGlzLmRpc2FibGVkPSExfXJlbmRlckRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvblRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifX19KSgpfSk7dmFyIFNqcixNanI9dSgoKT0+e3ZlKCk7d2EoKTt3bigpO2c5KCk7U2pyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1jaGVja2JveCIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0LWFsbC1idG4iKSxhPXQucXVlcnlTZWxlY3RvcigiI2NsZWFyLWFsbC1idG4iKTtyJiZhJiYoci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmZvckVhY2gocz0+eyFzLmRpc2FibGVkJiZzLmtleT8uc3RhcnRzV2l0aCgiZmVhdHVyZSIpJiYocy52YWx1ZT0hMCl9KX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKHM9Pnshcy5kaXNhYmxlZCYmcy5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKHMudmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsidGVybXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJuZXdzbGV0dGVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIGVtYWlsIHVwZGF0ZXMgYWJvdXQgeW91ciBhY2NvdW50In0KICAgICAgICAgICAgLmtleT0keyJub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDaGVja2JveCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGNoZWNrYm94IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkNoZWNrZWQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIHVuY2hlY2tlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGNoZWNrZWQifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBjaGVja2JveCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7InJlcXVpcmVkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJDaGVja2JveGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWNoZWNrYm94ZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25BIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBCIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkIifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gRCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25EIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBTZWxlY3Rpb24gRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDb21tb24gdXNlIGNhc2UgZm9yIGZlYXR1cmUgdG9nZ2xlcyB3aXRoIGJhdGNoIG9wZXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJzZWxlY3QtYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5TZWxlY3QgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0iY2xlYXItYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5DbGVhciBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbGlzdCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJEYXJrIE1vZGUgU3VwcG9ydCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiQVBJIEFjY2VzcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlNCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcml2YWN5IFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2hlY2tib3hlcyBpbiBhIHR5cGljYWwgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHJpdmFjeSBQcmVmZXJlbmNlczwvaDQ+CgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiU2hhcmUgYW5hbHl0aWNzIGRhdGEifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJQZXJzb25hbGl6ZWQgcmVjb21tZW5kYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiR2V0IHN1Z2dlc3Rpb25zIGJhc2VkIG9uIHlvdXIgYWN0aXZpdHkifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwcm9tb3Rpb25hbCBlbWFpbHMgYW5kIHNwZWNpYWwgb2ZmZXJzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRoaXJkLXBhcnR5IGludGVncmF0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGVja2JveC1vdXRwdXQiKTtpZihlJiZ0LmRldGFpbCl7bGV0IHI9dC5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBGZWF0dXJlIGlzICR7cj8iZW5hYmxlZCI6ImRpc2FibGVkIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkZWJ1Zy1vdXRwdXQiKTtpZihlJiZ0LmRldGFpbCl7bGV0IHI9dC5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBEZWJ1ZyBtb2RlOiAke3I/Ik9OIjoiT0ZGIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgJDZ0LG10ZSxJcGUsUHBlPXUoKCk9Pnt2ZSgpO0NpKCk7TWpyKCk7X3MoKTtsdCgpOyQ2dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sbXRlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxJcGU9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LWNoZWNrYm94IildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dENoZWNrYm94Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpCb29sZWFufSldLGM9W1Aoe3R5cGU6Qm9vbGVhbn0pXSwkNnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4idmFsdWUiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS52YWx1ZSwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnZhbHVlPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSwkNnQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRldGVybWluYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJpbmRldGVybWluYXRlImluIG0sImhhcyIpLGdldDppKG09Pm0uaW5kZXRlcm1pbmF0ZSwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmluZGV0ZXJtaW5hdGU9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLCQ2dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPVNqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9bXRlKHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGgpe3RoaXMuI2U9aH0jdD0obXRlKHRoaXMsbCksbXRlKHRoaXMsZCwhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZGV0ZXJtaW5hdGUoaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxtdGUodGhpcyxmKSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAgICogewogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIDpob3N0IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLmNoZWNrYm94IHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveDpmb2N1cy12aXNpYmxlIHsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICAgIH0KCiAgICAgICAgLyogQ2hlY2ttYXJrIHVzaW5nIEx1Y2lkZSBpY29uIHN0eWxlICovCiAgICAgICAgLmNoZWNrYm94IC5jaGVja21hcmsgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3guc2VsZWN0ZWQgLmNoZWNrbWFyayB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94IC5jaGVja21hcmsgc3ZnIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgc3Ryb2tlOiB3aGl0ZTsKICAgICAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgICAgICB9CgogICAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5kaXNhYmxlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgKi8KICAgICAgICAubGFiZWwtY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LWxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQ6aG92ZXIgLmNoZWNrYm94LWxhYmVsIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMudG9nZ2xlU2VsZWN0ZWR9Ij4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJjaGVja2JveCAke3RoaXMudmFsdWU/InNlbGVjdGVkIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiAKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT93YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCA2TDkgMTdMNCAxMiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOnRoaXMuaW5kZXRlcm1pbmF0ZT93YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEySDE5IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJjaGVja2JveC1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyB0b2dnbGVTZWxlY3RlZCgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShoKXt0aGlzLnZhbHVlPWh9Zm9jdXMoKXtsZXQgaD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoZWNrYm94Iik7aCYmaC5mb2N1cygpfWhhbmRsZUtleWRvd24oaCl7KGgua2V5PT09IiAifHxoLmtleT09PSJFbnRlciIpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0ZWQoKSl9c3RhdGlje210ZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgTnk9e307VmUoTnkse2JyaWdodDooKT0+UnAsZGFyazooKT0+T3B9KTt2YXIgT3AsUnAsZmM9dSgoKT0+e09wPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMTI0NTIiLHRleHQ6IiNmZmZmZmYifSxScD17Ymx1ZToiIzAwNTBiOSIsYmx1ZUFjdGl2ZToiIzAwNjlmMiIsYmx1ZU11dGVkOiIjMDA2OWYyIix0ZXh0OiIjMzMzMzMzIn19KTt2YXIgQ2pyLHpqcj11KCgpPT57dmUoKTtRNCgpO0Nqcj1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7cmVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgb3B0aW9uYWwgaGVhZGVyIGJ1dHRvbnMgZm9yIGhlbHAgYW5kIGNsb3NpbmcuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBIZWxwIEJ1dHRvbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmkoYXN5bmMoKT0+e2F3YWl0IGVhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkhlbHAiLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLHNob3dIZWxwQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgaGVscCBjb250ZW50IGZvciB0aGUgbW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHByb3ZpZGUgY29udGV4dC1zcGVjaWZpYyBoZWxwIGhlcmUuPC9wPgogICAgICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX0sIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGhlbHAgYnV0dG9uIGluIHRoZSBoZWFkZXIuIENsaWNrIGl0IHRvIHNlZSBoZWxwIGNvbnRlbnQuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5XaXRoIEhlbHAgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBDbG9zZSBCdXR0b24iLHNob3dDbG9zZUJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIuPC9wPgogICAgICAgICAgICAgIDxwPllvdSBtdXN0IHVzZSB0aGUgYWN0aW9uIGJ1dHRvbnMgb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBpdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQm90aCBCdXR0b25zIixzaG93SGVscEJ1dHRvbjohMCxzaG93Q2xvc2VCdXR0b246ITAsb25IZWxwOmkoKCk9PmFsZXJ0KCJIZWxwIGNsaWNrZWQhIiksIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkJvdGggQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2xlYW4gSGVhZGVyIixzaG93Q2xvc2VCdXR0b246ITEsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY2xlYW4gaGVhZGVyIHdpdGggbm8gYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkNsZWFuIEhlYWRlcjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHM6IHNtYWxsLCBtZWRpdW0sIGxhcmdlLCBmdWxsc2NyZWVuLCBvciBjdXN0b20gcGl4ZWwgdmFsdWVzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNtYWxsIE1vZGFsIix3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6Ik9LIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+U21hbGwgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik1lZGl1bSBNb2RhbCAoRGVmYXVsdCkiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUGFzc3dvcmQifSAuaW5wdXRUeXBlPSR7InBhc3N3b3JkIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IlNpZ24gVXAiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5NZWRpdW0gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxhcmdlIE1vZGFsIix3aWR0aDoibGFyZ2UiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+V2lkZSBDb250ZW50IEFyZWE8L2g0PgogICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZpcnN0IE5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7Ikxhc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ29tcGFueSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUG9zaXRpb24ifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkxhcmdlIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJGdWxsc2NyZWVuIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDppKGFzeW5jKCk9PnthbGVydCgiSW4gYSByZWFsIGFwcCwgdGhpcyB3b3VsZCBzaG93IGVkaXRvciBkb2N1bWVudGF0aW9uIil9LCJvbkhlbHAiKSxjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0PkZ1bGxzY3JlZW4gRXhwZXJpZW5jZSB3aXRoIEhlYWRlciBDb250cm9sczwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB0YWtlcyB1cCBhbG1vc3QgdGhlIGVudGlyZSB2aWV3cG9ydCB3aXRoIGEgMjBweCBtYXJnaW4gb24gYWxsIHNpZGVzLiBUaGUgaGVhZGVyIGJ1dHRvbnMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZnVsbHNjcmVlbiBtb2RlLjwvcD4KICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YwZjBmMCIsIiMyYTJhMmEiKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogJHt4LmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9Ij5MYXJnZSBjb250ZW50IGFyZWE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJTYXZlIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5GdWxsc2NyZWVuIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz4KICAgICAgPHA+WW91IGNhbiBhbHNvIHNldCBjdXN0b20gcGl4ZWwgd2lkdGhzIGFuZCBtaW4vbWF4IGNvbnN0cmFpbnRzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkN1c3RvbSBXaWR0aCAoNzAwcHgpIix3aWR0aDo3MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkN1c3RvbSA3MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNYXggV2lkdGgiLHdpZHRoOiJsYXJnZSIsbWF4V2lkdGg6NjAwLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGlzIHNldCB0byAnbGFyZ2UnIGJ1dCBjb25zdHJhaW5lZCBieSBhIG1heFdpZHRoIG9mIDYwMHB4LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk1heCBXaWR0aCA2MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNaW4gV2lkdGgiLHdpZHRoOjMwMCxtaW5XaWR0aDo0MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgd2lkdGggaXMgc2V0IHRvIDMwMHB4IGJ1dCBoYXMgYSBtaW5XaWR0aCBvZiA0MDBweCwgc28gaXQgd2lsbCBiZSA0MDBweCB3aWRlLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6Ik9LIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCBidXR0b24gY29uZmlndXJhdGlvbnMgd2l0aCBwcm9wZXIgc3BhY2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJNdWx0aXBsZSBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBkZW1vbnN0cmF0ZXMgbXVsdGlwbGUgYnV0dG9ucyB3aXRoIHByb3BlciBzcGFjaW5nIGJldHdlZW4gdGhlbS48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEZWxldGUiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSBDaGFuZ2VzIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGhyZWUgQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2luZ2xlIEFjdGlvbiIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNvbWV0aW1lcyB5b3UganVzdCBuZWVkIG9uZSBidXR0b24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQWNrbm93bGVkZ2UiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5TaW5nbGUgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gYm90dG9tIGJ1dHRvbnMuIFVzZSB0aGUgWCBidXR0b24gb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZS48L3A+CiAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGNvbG9yOiAke3guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07Ij5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbXX0pfX0+Tm8gQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBCdXR0b24gTGFiZWxzIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGVzdGluZyBidXR0b24gbGF5b3V0IHdpdGggbG9uZ2VyIGxhYmVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEaXNjYXJkIEFsbCBDaGFuZ2VzIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVzcG9uc2l2ZSBCZWhhdmlvcjwvaDM+CiAgICAgIDxwPkFsbCBtb2RhbHMgYXV0b21hdGljYWxseSBiZWNvbWUgZnVsbC13aWR0aCBvbiBtb2JpbGUgZGV2aWNlcyAoPCA3NjhweCB2aWV3cG9ydCB3aWR0aCkgZm9yIGJldHRlciB1c2FiaWxpdHkuPC9wPgogICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXNwb25zaXZlIE1vZGFsIix3aWR0aDoibGFyZ2UiLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDppKCgpPT5jb25zb2xlLmxvZygiSGVscCByZXF1ZXN0ZWQgZm9yIHJlc3BvbnNpdmUgbW9kYWwiKSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICA8cD5SZXNpemUgeW91ciBicm93c2VyIHdpbmRvdyB0byBzZWUgaG93IHRoaXMgbW9kYWwgYWRhcHRzLiBPbiBtb2JpbGUgdmlld3BvcnRzLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgZnVsbCB3aWR0aCBtaW51cyBtYXJnaW5zLjwvcD4KICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+CiAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UZXN0IFJlc3BvbnNpdmU8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNjcm9sbGFibGUgQ29udGVudDwvaDM+CiAgICAgIDxwPldoZW4gY29udGVudCBleGNlZWRzIHRoZSBtb2RhbCdzIG1heC1oZWlnaHQgKDxjb2RlPmNhbGMoMTAwdmggLSA4MHB4KTwvY29kZT4pLCB0aGUgdGlsZSBjYXBzIGF0IHRoYXQgaGVpZ2h0IGFuZCB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgaW5zaWRlLiBUaGUgaGVhZGluZyBhbmQgYm90dG9tIGJ1dHRvbnMgc3RheSBwaW5uZWQuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBBcnRpY2xlIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2g0PgogICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjQwfSwodCxlKT0+d2AKICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICA8c3Ryb25nPsKnICR7ZSsxfS48L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gU2VkIGRvCiAgICAgICAgICAgICAgICAgIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0CiAgICAgICAgICAgICAgICAgIGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcwogICAgICAgICAgICAgICAgICBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvcgogICAgICAgICAgICAgICAgICBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0CiAgICAgICAgICAgICAgICAgIG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LAogICAgICAgICAgICAgICAgICBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJBY2NlcHQiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIEFydGljbGU8L2RlZXMtYnV0dG9uPgoKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIExpc3QiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNlbGVjdGVkIGl0ZW1zOjwvcD4KICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmctbGVmdDogMjBweDsgbWFyZ2luOiAwOyI+CiAgICAgICAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDo4MH0sKHQsZSk9PndgCiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0icGFkZGluZzogNHB4IDA7Ij5JdGVtICR7ZSsxfSDigJQgb3B0aW9uIGxhYmVsPC9saT4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMaXN0PC9kZWVzLWJ1dHRvbj4KCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiVGFsbCBGb3JtIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjI1fSwodCxlKT0+d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHtgRmllbGQgJHtlKzF9YH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU3VibWl0IixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGFsbCBGb3JtPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBfanIsVGpyPXUoKCk9Pnt2ZSgpO25zKCk7X2pyPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgICR7cmVgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAudGlsZS1kZW1vLWNvbnRlbnQgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgfQogICAgICAgICAgLmZvb3Rlci1zdGF0cyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIH0KICAgICAgICAgIC5mb290ZXItc3RhdHMgLnN0YXQgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgIH0KICAgICAgICAgIC5mb290ZXItc3RhdHMgLnN0YXQgc3Ryb25nIHsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGVlcy10aWxlIGhlYWRpbmc9IlNpbXBsZSBUaWxlIiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1kZW1vLWNvbnRlbnQiPkNvbnRlbnQgYXJlYSB3aXRoIHJvdW5kZWQgY29ybmVyczwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8ZGVlcy10aWxlIGhlYWRpbmc9IlRpbGUgd2l0aCBGb290ZXIiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlbW8tY29udGVudCI+Q29udGVudCBnb2VzIGhlcmU8L2Rpdj4KICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZm9vdGVyLXN0YXRzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPmxhdGVzdCA8c3Ryb25nPjQyPC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+bWluIDxzdHJvbmc+MTI8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5tYXggPHN0cm9uZz44Nzwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPmF2ZyA8c3Ryb25nPjQ1LjM8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPGRlZXMtdGlsZSBzdHlsZT0iaGVpZ2h0OiAyMDBweDsiPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3dpZHRoOjEwMCU7Ij4KICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjUwMDsiPkN1c3RvbSBIZWFkZXI8L3NwYW4+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoLi4uIiBzdHlsZT0iZmxleDoxO21heC13aWR0aDoyMDBweDtwYWRkaW5nOjJweCA4cHg7Ym9yZGVyOjFweCBzb2xpZDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTJweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ij4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1kZW1vLWNvbnRlbnQiPkN1c3RvbSBoZWFkZXIgc2xvdCB3aXRoIHNlYXJjaCBpbnB1dDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIE5wZSxiOSxManIsbnM9dSgoKT0+e3ZlKCk7VGpyKCk7X3MoKTtsdCgpO05wZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sYjk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LExqcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtdGlsZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGlsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1baWUoKV0sTnBlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iaGVhZGluZyJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmhlYWRpbmcsImdldCIpLHNldDppKChnLHkpPT57Zy5oZWFkaW5nPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxOcGUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdmVyc2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJvdmVyc2Nyb2xsImluIGcsImhhcyIpLGdldDppKGc9Pmcub3ZlcnNjcm9sbCwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLm92ZXJzY3JvbGw9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLE5wZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0Zvb3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iaGFzRm9vdGVyImluIGcsImhhcyIpLGdldDppKGc9PmcuaGFzRm9vdGVyLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuaGFzRm9vdGVyPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxOcGUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1fanI7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1iOSh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoYil7dGhpcy4jZT1ifSN0PShiOSh0aGlzLGwpLGI5KHRoaXMsZCwiYXV0byIpKTtnZXQgb3ZlcnNjcm9sbCgpe3JldHVybiB0aGlzLiN0fXNldCBvdmVyc2Nyb2xsKGIpe3RoaXMuI3Q9Yn0jcj0oYjkodGhpcyxmKSxiOSh0aGlzLGgsITEpKTtnZXQgaGFzRm9vdGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGhhc0Zvb3RlcihiKXt0aGlzLiNyPWJ9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAvKiAtLS0gVGhlIGZyYW1lIC0tLSAqLwogICAgICAudGlsZS1vdXRlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLyogLS0tIEhlYWRlcjogYmFyZSBjb250YWluZXIsIG9ubHkgdGhlIGRlZmF1bHQgaGVhZGluZyBnZXRzIHN0eWxlZCAtLS0gKi8KICAgICAgLnRpbGUtaGVhZGVyIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtaGVhZGluZyB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBDb250ZW50OiB0aGUgcm91bmRlZCBpbnNldCAtLS0KICAgICAgICAgVXNlcyBvdmVyZmxvdy15OiBhdXRvIHNvIHRoYXQgd2hlbiBhIGNvbnN1bWVyIChlLmcuIGRlZXMtbW9kYWwpIGNhcHMKICAgICAgICAgdGhlIHRpbGUgd2l0aCBtYXgtaGVpZ2h0LCBsb25nIGNvbnRlbnQgc2Nyb2xscyBpbnNpZGUgdGhlIHRpbGUKICAgICAgICAgaW5zdGVhZCBvZiBiZWluZyBjbGlwcGVkLiBGb3IgY29uc3VtZXJzIHdpdGhvdXQgbWF4LWhlaWdodAogICAgICAgICAoZS5nLiBkZWVzLXN0ZXBwZXIpLCB0aGUgdGlsZSBncm93cyB3aXRoIGNvbnRlbnQgYW5kIHRoZSBzY3JvbGwKICAgICAgICAgbmV2ZXIgYWN0aXZhdGVzLiBIb3Jpem9udGFsIG92ZXJmbG93IHN0YXlzIGNsaXBwZWQgdG8gcHJlc2VydmUgdGhlCiAgICAgICAgIHJvdW5kZWQgY29ybmVycy4gKi8KICAgICAgLnRpbGUtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgOmhvc3QoW292ZXJzY3JvbGw9ImNvbnRhaW4iXSkgLnRpbGUtY29udGVudCB7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGVudC5uby1mb290ZXIgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsKICAgICAgfQoKICAgICAgLyogLS0tIEZvb3RlcjogYmFyZSBjb250YWluZXIsIGNvbnN1bWVyIHN0eWxlcyB0aGUgc2xvdHRlZCBjb250ZW50IC0tLSAqLwogICAgICAudGlsZS1mb290ZXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS1mb290ZXIuaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdXRlciIgcGFydD0ib3V0ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaGVhZGVyIiBwYXJ0PSJoZWFkZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1oZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgIDwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbnRlbnQgJHt0aGlzLmhhc0Zvb3Rlcj8iIjoibm8tZm9vdGVyIn0iIHBhcnQ9ImNvbnRlbnQiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZm9vdGVyICR7dGhpcy5oYXNGb290ZXI/IiI6ImhpZGRlbiJ9IiBwYXJ0PSJmb290ZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iZm9vdGVyIiBAc2xvdGNoYW5nZT0ke3RoaXMub25Gb290ZXJTbG90Q2hhbmdlfT48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1vbkZvb3RlclNsb3RDaGFuZ2UoYil7bGV0IGc9Yi50YXJnZXQ7dGhpcy5oYXNGb290ZXI9Zy5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSkubGVuZ3RoPjB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGI5KHRoaXMsbSl9c3RhdGlje2I5KGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBubCx1aSxlYSxRND11KCgpPT57ZmMoKTt2bigpO09vKCk7X3MoKTt6anIoKTt2ZSgpO01yKCk7bmMoKTtLcigpO25zKCk7bHQoKTtubD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdWk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGVhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1tb2RhbCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W107dmFyIHBlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzTW9kYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1baWUoe30pXSxwPVtpZSh7fSldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6TnVtYmVyfSldLE49W1Aoe3R5cGU6TnVtYmVyfSldLE89W1Aoe3R5cGU6Qm9vbGVhbn0pXSxCPVtQKHt0eXBlOkJvb2xlYW59KV0sQT1bUCh7YXR0cmlidXRlOiExfSldLFk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxkZT1bUCh7dHlwZTpOdW1iZXJ9KV0sZmU9W2llKCldLG5sKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4iaGVhZGluZyJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLmhlYWRpbmcsImdldCIpLHNldDppKChxLEgpPT57cS5oZWFkaW5nPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LG8sbCksbmwodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJjb250ZW50ImluIHEsImhhcyIpLGdldDppKHE9PnEuY29udGVudCwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLmNvbnRlbnQ9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sZCxmKSxubCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJtZW51T3B0aW9ucyJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1lbnVPcHRpb25zLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubWVudU9wdGlvbnM9SH0sInNldCIpfSxtZXRhZGF0YTptZX0saCxtKSxubCh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJ3aWR0aCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLndpZHRoLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3Eud2lkdGg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sYixnKSxubCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJtYXhXaWR0aCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1heFdpZHRoLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubWF4V2lkdGg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sayxNKSxubCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbldpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJtaW5XaWR0aCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1pbldpZHRoLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubWluV2lkdGg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sXyxTKSxubCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDbG9zZUJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4ic2hvd0Nsb3NlQnV0dG9uImluIHEsImhhcyIpLGdldDppKHE9PnEuc2hvd0Nsb3NlQnV0dG9uLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3Euc2hvd0Nsb3NlQnV0dG9uPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LEwsRSksbmwodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93SGVscEJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4ic2hvd0hlbHBCdXR0b24iaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5zaG93SGVscEJ1dHRvbiwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLnNob3dIZWxwQnV0dG9uPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LEMseiksbmwodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkhlbHAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+Im9uSGVscCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm9uSGVscCwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLm9uSGVscD1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSwkLEYpLG5sKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4ibW9iaWxlRnVsbHNjcmVlbiJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1vYmlsZUZ1bGxzY3JlZW4sImdldCIpLHNldDppKChxLEgpPT57cS5tb2JpbGVGdWxsc2NyZWVuPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LEcsWiksbmwodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFBhZGRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+ImNvbnRlbnRQYWRkaW5nImluIHEsImhhcyIpLGdldDppKHE9PnEuY29udGVudFBhZGRpbmcsImdldCIpLHNldDppKChxLEgpPT57cS5jb250ZW50UGFkZGluZz1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxELFEpLG5sKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGFsWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJtb2RhbFpJbmRleCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1vZGFsWkluZGV4LCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubW9kYWxaSW5kZXg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sVCxXKSxubChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptZX0sbnVsbCxyKSxwZT1hPWUudmFsdWUsbWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bWV9KX1zdGF0aWMgZGVtbz1DanI7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3cobWUpe2xldCBxPWRvY3VtZW50LmJvZHksSD1uZXcgcGU7cmV0dXJuIEguaGVhZGluZz1tZS5oZWFkaW5nLEguY29udGVudD1tZS5jb250ZW50LEgubWVudU9wdGlvbnM9bWUubWVudU9wdGlvbnMsbWUud2lkdGgmJihILndpZHRoPW1lLndpZHRoKSxtZS5tYXhXaWR0aCYmKEgubWF4V2lkdGg9bWUubWF4V2lkdGgpLG1lLm1pbldpZHRoJiYoSC5taW5XaWR0aD1tZS5taW5XaWR0aCksbWUuc2hvd0Nsb3NlQnV0dG9uIT09dm9pZCAwJiYoSC5zaG93Q2xvc2VCdXR0b249bWUuc2hvd0Nsb3NlQnV0dG9uKSxtZS5zaG93SGVscEJ1dHRvbiE9PXZvaWQgMCYmKEguc2hvd0hlbHBCdXR0b249bWUuc2hvd0hlbHBCdXR0b24pLG1lLm9uSGVscCYmKEgub25IZWxwPW1lLm9uSGVscCksbWUubW9iaWxlRnVsbHNjcmVlbiE9PXZvaWQgMCYmKEgubW9iaWxlRnVsbHNjcmVlbj1tZS5tb2JpbGVGdWxsc2NyZWVuKSxtZS5jb250ZW50UGFkZGluZyE9PXZvaWQgMCYmKEguY29udGVudFBhZGRpbmc9bWUuY29udGVudFBhZGRpbmcpLEgud2luZG93TGF5ZXI9YXdhaXQgeW4uY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLEgud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9Pnthd2FpdCBILmRlc3Ryb3koKX0pLHEuYXBwZW5kKEgud2luZG93TGF5ZXIpLHEuYXBwZW5kKEgpLEgubW9kYWxaSW5kZXg9eXIuZ2V0TmV4dFpJbmRleCgpLHlyLnJlZ2lzdGVyKEgsSC5tb2RhbFpJbmRleCksSH0jZT11aSh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobWUpe3RoaXMuI2U9bWV9I3Q9KHVpKHRoaXMsbCksdWkodGhpcyxkLHZvaWQgMCkpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQobWUpe3RoaXMuI3Q9bWV9I3I9KHVpKHRoaXMsZiksdWkodGhpcyxoLFtdKSk7Z2V0IG1lbnVPcHRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVPcHRpb25zKG1lKXt0aGlzLiNyPW1lfSNhPSh1aSh0aGlzLG0pLHVpKHRoaXMsYiwibWVkaXVtIikpO2dldCB3aWR0aCgpe3JldHVybiB0aGlzLiNhfXNldCB3aWR0aChtZSl7dGhpcy4jYT1tZX0jaT0odWkodGhpcyxnKSx1aSh0aGlzLGssdm9pZCAwKSk7Z2V0IG1heFdpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1heFdpZHRoKG1lKXt0aGlzLiNpPW1lfSNzPSh1aSh0aGlzLE0pLHVpKHRoaXMsXyx2b2lkIDApKTtnZXQgbWluV2lkdGgoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWluV2lkdGgobWUpe3RoaXMuI3M9bWV9I249KHVpKHRoaXMsUyksdWkodGhpcyxMLCEwKSk7Z2V0IHNob3dDbG9zZUJ1dHRvbigpe3JldHVybiB0aGlzLiNufXNldCBzaG93Q2xvc2VCdXR0b24obWUpe3RoaXMuI249bWV9I289KHVpKHRoaXMsRSksdWkodGhpcyxDLCExKSk7Z2V0IHNob3dIZWxwQnV0dG9uKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dIZWxwQnV0dG9uKG1lKXt0aGlzLiNvPW1lfSNsPSh1aSh0aGlzLHopLHVpKHRoaXMsJCx2b2lkIDApKTtnZXQgb25IZWxwKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG9uSGVscChtZSl7dGhpcy4jbD1tZX0jYz0odWkodGhpcyxGKSx1aSh0aGlzLEcsITEpKTtnZXQgbW9iaWxlRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNjfXNldCBtb2JpbGVGdWxsc2NyZWVuKG1lKXt0aGlzLiNjPW1lfSNkPSh1aSh0aGlzLFopLHVpKHRoaXMsRCwxNikpO2dldCBjb250ZW50UGFkZGluZygpe3JldHVybiB0aGlzLiNkfXNldCBjb250ZW50UGFkZGluZyhtZSl7dGhpcy4jZD1tZX0jdT0odWkodGhpcyxRKSx1aSh0aGlzLFQsMWUzKSk7Z2V0IG1vZGFsWkluZGV4KCl7cmV0dXJuIHRoaXMuI3V9c2V0IG1vZGFsWkluZGV4KG1lKXt0aGlzLiN1PW1lfWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtIcn07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAubW9kYWxDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KICAgICAgZGVlcy10aWxlIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDgwcHgpOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWFyZ2luOiA0MHB4OwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTo6cGFydChvdXRlcikgewogICAgICAgIGJveC1zaGFkb3c6CiAgICAgICAgICAwIDAgMCAxcHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAxMDAlIC8gMC4wMykiKX0sCiAgICAgICAgICAwIDhweCA0MHB4ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTIpIiwiaHNsKDAgMCUgMCUgLyAwLjUpIil9LAogICAgICAgICAgMCAycHggOHB4ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMCUgLyAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLyogV2lkdGggdmFyaWF0aW9ucyAqLwogICAgICBkZWVzLXRpbGUud2lkdGgtc21hbGwgewogICAgICAgIHdpZHRoOiAzODBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLndpZHRoLW1lZGl1bSB7CiAgICAgICAgd2lkdGg6IDU2MHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUud2lkdGgtbGFyZ2UgewogICAgICAgIHdpZHRoOiA4MDBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLndpZHRoLWZ1bGxzY3JlZW4gewogICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCk7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KSAhaW1wb3J0YW50OwogICAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgfQoKICAgICAgICAubW9kYWxDb250YWluZXIgewogICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICB9CgogICAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgICBtYXJnaW46IDEwcHg7CiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjBweCk7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXRpbGUubW9iaWxlLWZ1bGxzY3JlZW4gewogICAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgZGVlcy10aWxlLm1vYmlsZS1mdWxsc2NyZWVuOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc2hvdy5wcmVkZXN0cm95IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLWluLCBvcGFjaXR5IDAuMTVzIGVhc2UtaW47CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkaW5nLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b24gewogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTMlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjEyKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IG1lPXR5cGVvZiB0aGlzLndpZHRoPT0ic3RyaW5nIj9gd2lkdGgtJHt0aGlzLndpZHRofWA6IiIscT10eXBlb2YgdGhpcy53aWR0aD09Im51bWJlciI/YCR7dGhpcy53aWR0aH1weGA6IiIsSD10aGlzLm1heFdpZHRoP2Ake3RoaXMubWF4V2lkdGh9cHhgOiIiLFU9dGhpcy5taW5XaWR0aD9gJHt0aGlzLm1pbldpZHRofXB4YDoiIixqPXRoaXMubW9iaWxlRnVsbHNjcmVlbj8ibW9iaWxlLWZ1bGxzY3JlZW4iOiIiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgJHtxP2BkZWVzLXRpbGUgeyB3aWR0aDogJHtxfTsgfWA6IiJ9CiAgICAgICAgJHtIP2BkZWVzLXRpbGUgeyBtYXgtd2lkdGg6ICR7SH07IH1gOiIifQogICAgICAgICR7VT9gZGVlcy10aWxlIHsgbWluLXdpZHRoOiAke1V9OyB9YDoiIn0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWxDb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlT3V0c2lkZUNsaWNrfSBzdHlsZT0iei1pbmRleDogJHt0aGlzLm1vZGFsWkluZGV4fSI+CiAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHttZX0gJHtqfSIgLm92ZXJzY3JvbGw9JHsiY29udGFpbiJ9PgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy10ZXh0Ij4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5zaG93SGVscEJ1dHRvbj93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVIZWxwfSB0aXRsZT0iSGVscCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmhlbHBDaXJjbGUifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLnNob3dDbG9zZUJ1dHRvbj93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuZGVzdHJveSgpfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6ICR7dGhpcy5jb250ZW50UGFkZGluZ31weDsiPiR7dGhpcy5jb250ZW50fTwvZGl2PgogICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYm90dG9tQnV0dG9ucyI+CiAgICAgICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLm1hcCgoYWUsWCk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke1g9PT10aGlzLm1lbnVPcHRpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0gJHthZS5uYW1lPT09Ik9LIj8ib2siOiIifSIgQGNsaWNrPSR7KCk9PnthZS5hY3Rpb24odGhpcyl9fT4ke2FlLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI9dWkodGhpcyxXKTthc3luYyBmaXJzdFVwZGF0ZWQobWUpe3N1cGVyLmZpcnN0VXBkYXRlZChtZSksYXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXRpbGUiKS5jbGFzc0xpc3QuYWRkKCJzaG93Iil9YXN5bmMgaGFuZGxlT3V0c2lkZUNsaWNrKG1lKXttZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgcT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsQ29udGFpbmVyIik7bWUudGFyZ2V0PT09cSYmYXdhaXQgdGhpcy5kZXN0cm95KCl9YXN5bmMgZGVzdHJveSgpe2xldCBtZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy10aWxlIikuY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IG1lLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjAwKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHlyLnVucmVnaXN0ZXIodGhpcyl9YXN5bmMgaGFuZGxlSGVscCgpe3RoaXMub25IZWxwJiZhd2FpdCB0aGlzLm9uSGVscCgpfXN0YXRpY3t1aShhLHIpfX07cmV0dXJuIHBlPWF9KSgpfSk7dmFyIERqciwkanI9dSgoKT0+e3ZlKCk7RGpyPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtyZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gcCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxhYmVsLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sYWJlbC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxhYmVsLXJvdyAuYW5ub3RhdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjODg4IiwiIzY2NiIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CYXNpYyBMYWJlbDwvaDM+CiAgICAgIDxwPkEgc2ltcGxlIHRleHQgbGFiZWwgd2l0aCBubyBhZGRpdGlvbmFsIGluZGljYXRvcnMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSJVc2VybmFtZSI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5sYWJlbD0iRW1haWwgQWRkcmVzcyI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVxdWlyZWQgSW5kaWNhdG9yPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5yZXF1aXJlZDwvY29kZT4gaXMgc2V0LCBhIHJlZCBhc3RlcmlzayBhcHBlYXJzIGFmdGVyIHRoZSBsYWJlbCB0ZXh0LjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZD0keyJ7dHJ1ZX0ifTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQ9JHsie2ZhbHNlfSJ9IChkZWZhdWx0KTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJOaWNrbmFtZSJ9IC5yZXF1aXJlZD0keyExfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkluZm8gVGV4dCAoSW5mbyBJY29uKTwvaDM+CiAgICAgIDxwPldoZW4gPGNvZGU+aW5mb1RleHQ8L2NvZGU+IGlzIHNldCwgYW4gaW5mbyBpY29uIGFwcGVhcnMgbmV4dCB0byB0aGUgbGFiZWwuIEhvdmVyIG92ZXIgaXQgdG8gc2VlIHRoZSB0b29sdGlwLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5pbmZvVGV4dD0iLi4uIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJBUEkgS2V5In0gLmluZm9UZXh0PSR7IllvdXIgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIGRldmVsb3BlciBzZXR0aW5ncyBkYXNoYm9hcmQuIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+c2hvcnQgaW5mb1RleHQ8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiUmVnaW9uIn0gLmluZm9UZXh0PSR7IlNlbGVjdCB5b3VyIG5lYXJlc3QgZGF0YWNlbnRlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlJlcXVpcmVkICsgSW5mbyBUZXh0PC9oMz4KICAgICAgPHA+Qm90aCBpbmRpY2F0b3JzIGNhbiBiZSBjb21iaW5lZC4gVGhlIGFzdGVyaXNrIGFwcGVhcnMgZmlyc3QsIHRoZW4gdGhlIGluZm8gaWNvbi48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQgKyBpbmZvVGV4dDwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJQYXNzd29yZCJ9IC5yZXF1aXJlZD0keyEwfSAuaW5mb1RleHQ9JHsiTXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgd2l0aCBvbmUgdXBwZXJjYXNlIGxldHRlciBhbmQgb25lIG51bWJlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZCArIGluZm9UZXh0PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkVtYWlsIEFkZHJlc3MifSAucmVxdWlyZWQ9JHshMH0gLmluZm9UZXh0PSR7IldlIHdpbGwgc2VuZCBhIHZlcmlmaWNhdGlvbiBsaW5rIHRvIHRoaXMgYWRkcmVzcy4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVtcHR5IExhYmVsPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5sYWJlbDwvY29kZT4gaXMgZW1wdHkgb3Igbm90IHNldCwgbm90aGluZyBpcyByZW5kZXJlZC4gVGhlIGVsZW1lbnQgYmVsb3cgaGFzIG5vIGxhYmVsIHRleHQ6PC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSIiIChlbXB0eSk8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE9wZSx4OSxBanIsT3k9dSgoKT0+e3ZuKCk7ZmMoKTt2ZSgpOyRqcigpO2x0KCk7T3BlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx4OT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sQWpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1sYWJlbCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzTGFiZWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGM9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sT3BlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImxhYmVsImluIGcsImhhcyIpLGdldDppKGc9PmcubGFiZWwsImdldCIpLHNldDppKChnLHkpPT57Zy5sYWJlbD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksT3BlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImluZm9UZXh0ImluIGcsImhhcyIpLGdldDppKGc9PmcuaW5mb1RleHQsImdldCIpLHNldDppKChnLHkpPT57Zy5pbmZvVGV4dD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsZiksT3BlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InJlcXVpcmVkImluIGcsImhhcyIpLGdldDppKGc9PmcucmVxdWlyZWQsImdldCIpLHNldDppKChnLHkpPT57Zy5yZXF1aXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksT3BlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89RGpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiSW5wdXQiXTsjZT14OSh0aGlzLG8sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChiKXt0aGlzLiNlPWJ9I3Q9KHg5KHRoaXMsbCkseDkodGhpcyxkLHZvaWQgMCkpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBpbmZvVGV4dChiKXt0aGlzLiN0PWJ9I3I9KHg5KHRoaXMsZikseDkodGhpcyxoLCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHJlcXVpcmVkKGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAucmVxdWlyZWQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbi1pY29uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBtYXJnaW46IC02cHggMCAtNnB4IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjUlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbi1pY29uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmxhYmVsP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsIj4KICAgICAgICAgICAgICAke3RoaXMubGFiZWx9CiAgICAgICAgICAgICAgJHt0aGlzLnJlcXVpcmVkP3dgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLmluZm9UZXh0P3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24taWNvbiI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTppbmZvIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtc3BlZWNoYnViYmxlIC50ZXh0PSR7dGhpcy5pbmZvVGV4dH0+PC9kZWVzLXNwZWVjaGJ1YmJsZT4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YGB9CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx4OSh0aGlzLG0pfXN0YXRpY3t4OShhLHIpfX07cmV0dXJuIHY9YX0pKCl9KTt2YXIgUnBlLEE2dD11KCgpPT57UnBlPSIwLjU1LjEifSk7dmFyIFJ5LGhjLEVqcix2OT11KCgpPT57dmUoKTtNcigpO0E2dCgpO2x0KCk7Unk9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGhjPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxFanI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZU1vbmFjbyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6T2JqZWN0fSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxSeSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbnRlbnQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jb250ZW50LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuY29udGVudD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksUnkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibGFuZ3VhZ2UiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5sYW5ndWFnZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmxhbmd1YWdlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sZCxmKSxSeSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJmaWxlUGF0aCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmZpbGVQYXRoLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuZmlsZVBhdGg9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLFJ5KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFN1YmplY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbnRlbnRTdWJqZWN0ImluIFMsImhhcyIpLGdldDppKFM9PlMuY29udGVudFN1YmplY3QsImdldCIpLHNldDppKChTLE8pPT57Uy5jb250ZW50U3ViamVjdD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUnkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkV3JhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4id29yZFdyYXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy53b3JkV3JhcCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLndvcmRXcmFwPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxSeShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWkoKCk9PndgPGRlZXMtd29ya3NwYWNlLW1vbmFjbz48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz5gLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtzdGF0aWMgbW9uYWNvRGVmZXJyZWQ7ZWRpdG9yRGVmZXJyZWQ9Y3Iuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9aGModGhpcyxvLGBmdW5jdGlvbiBoZWxsbygpIHsKCWFsZXJ0KCdIZWxsbyB3b3JsZCEnKTsKfWApO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNvbnRlbnQoXyl7dGhpcy4jZT1ffSN0PShoYyh0aGlzLGwpLGhjKHRoaXMsZCwidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2UoXyl7dGhpcy4jdD1ffSNyPShoYyh0aGlzLGYpLGhjKHRoaXMsaCwiIikpO2dldCBmaWxlUGF0aCgpe3JldHVybiB0aGlzLiNyfXNldCBmaWxlUGF0aChfKXt0aGlzLiNyPV99I2E9KGhjKHRoaXMsbSksaGModGhpcyxiLG5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdCkpO2dldCBjb250ZW50U3ViamVjdCgpe3JldHVybiB0aGlzLiNhfXNldCBjb250ZW50U3ViamVjdChfKXt0aGlzLiNhPV99I2k9KGhjKHRoaXMsZyksaGModGhpcyxrLCJvZmYiKSk7Z2V0IHdvcmRXcmFwKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHdvcmRXcmFwKF8pe3RoaXMuI2k9X31tb25hY29UaGVtZVN1YnNjcmlwdGlvbj0oaGModGhpcyxNKSxudWxsKTtpc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx2by5zZXR1cERvbVRvb2xzKCl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNjb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKF8pe3N1cGVyLmZpcnN0VXBkYXRlZChfKTtsZXQgUz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLE89YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke1JwZX1gO2lmKCFOLm1vbmFjb0RlZmVycmVkKXtOLm1vbmFjb0RlZmVycmVkPWNyLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2xldCBDPWAke099L21pbi92cy9sb2FkZXIuanNgLHo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ei5zcmM9Qyx6Lm9ubG9hZD0oKT0+e04ubW9uYWNvRGVmZXJyZWQucmVzb2x2ZSgpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHopfWF3YWl0IE4ubW9uYWNvRGVmZXJyZWQucHJvbWlzZSx3aW5kb3cucmVxdWlyZS5jb25maWcoe3BhdGhzOnt2czpgJHtPfS9taW4vdnNgfX0pLHdpbmRvdy5yZXF1aXJlKFsidnMvZWRpdG9yL2VkaXRvci5tYWluIl0sYXN5bmMoKT0+e2xldCBDPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLEE9Qy50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLCQ9d2luZG93Lm1vbmFjbyxGPW51bGw7aWYodGhpcy5maWxlUGF0aCl7bGV0IEc9JC5VcmkucGFyc2UoYGZpbGU6Ly8ke3RoaXMuZmlsZVBhdGh9YCk7Rj0kLmVkaXRvci5nZXRNb2RlbChHKSxGP0Yuc2V0VmFsdWUodGhpcy5jb250ZW50KTpGPSQuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCx0aGlzLmxhbmd1YWdlLEcpfWxldCBZPSQuZWRpdG9yLmNyZWF0ZShTLHttb2RlbDpGfHx2b2lkIDAsdmFsdWU6Rj92b2lkIDA6dGhpcy5jb250ZW50LGxhbmd1YWdlOkY/dm9pZCAwOnRoaXMubGFuZ3VhZ2UsdGhlbWU6QSx1c2VTaGFkb3dET006ITAsZm9udFNpemU6MTYsYXV0b21hdGljTGF5b3V0OiEwLHdvcmRXcmFwOnRoaXMud29yZFdyYXAsaG92ZXI6e2VuYWJsZWQ6ITAsZGVsYXk6MzAwLHN0aWNreTohMCxhYm92ZTohMX19KTt0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPUMudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoRz0+e2xldCBaPUc/InZzIjoidnMtZGFyayI7WS51cGRhdGVPcHRpb25zKHt0aGVtZTpafSl9KSx0aGlzLmVkaXRvckRlZmVycmVkLnJlc29sdmUoWSl9KTtsZXQgTD1hd2FpdChhd2FpdCBmZXRjaChgJHtPfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0UudGV4dENvbnRlbnQ9TCx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kKEUpO2xldCBCPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtCLm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KGFzeW5jIEM9PntpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwpcmV0dXJuO2xldCB6PUIuZ2V0VmFsdWUoKTt0aGlzLmNvbnRlbnRTdWJqZWN0Lm5leHQoeiksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC1jaGFuZ2UiLHtkZXRhaWw6eixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSksdGhpcy5jb250ZW50U3ViamVjdC5uZXh0KEIuZ2V0VmFsdWUoKSl9YXN5bmMgdXBkYXRlZChfKXtzdXBlci51cGRhdGVkKF8pO2xldCBTPXdpbmRvdy5tb25hY287aWYoUyl7aWYoXy5oYXMoImZpbGVQYXRoIikmJnRoaXMuZmlsZVBhdGgpe2xldCBPPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxMPVMuVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApLEU9Uy5lZGl0b3IuZ2V0TW9kZWwoTCk7RT9FLmdldFZhbHVlKCkhPT10aGlzLmNvbnRlbnQmJih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsRS5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSk6RT1TLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSxMKSxPLmdldE1vZGVsKCk/LnVyaS50b1N0cmluZygpIT09TC50b1N0cmluZygpJiZPLnNldE1vZGVsKEUpO3JldHVybn1pZihfLmhhcygiY29udGVudCIpKXtsZXQgTz1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7Ty5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE8uc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpfWlmKF8uaGFzKCJsYW5ndWFnZSIpKXtsZXQgTD0oYXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpO0wmJlMuZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoTCx0aGlzLmxhbmd1YWdlKX19fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCl9YXN5bmMgc2V0Q29udGVudEV4dGVybmFsKF8sUz0hMCl7bGV0IE89YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO2lmKE8uZ2V0VmFsdWUoKT09PV8pcmV0dXJuO2xldCBFPVM/Ty5nZXRQb3NpdGlvbigpOm51bGwsQj1TP08uZ2V0U2VsZWN0aW9ucygpOm51bGwsQz1TP08uZ2V0U2Nyb2xsVG9wKCk6MCx6PVM/Ty5nZXRTY3JvbGxMZWZ0KCk6MDtpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsTy5zZXRWYWx1ZShfKSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEsUyl7aWYoRSl7bGV0IEE9Ty5nZXRNb2RlbCgpLCQ9QT8uZ2V0TGluZUNvdW50KCl8fDEsRj1NYXRoLm1pbihFLmxpbmVOdW1iZXIsJCksWT1BPy5nZXRMaW5lTWF4Q29sdW1uKEYpfHwxLEc9TWF0aC5taW4oRS5jb2x1bW4sWSk7Ty5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpGLGNvbHVtbjpHfSl9aWYoQiYmQi5sZW5ndGg+MCl0cnl7Ty5zZXRTZWxlY3Rpb25zKEIpfWNhdGNoe31PLnNldFNjcm9sbFBvc2l0aW9uKHtzY3JvbGxUb3A6QyxzY3JvbGxMZWZ0Onp9KX19c3RhdGlje2hjKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBpZCxlbix5OSxGcGUsRTZ0PXUoKCk9PntDaSgpO3ZlKCk7bHQoKTtRNCgpO0tyKCk7T3koKTtucygpO3Y5KCk7djkoKTtpZD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZW49ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHk5PVt7a2V5OiJ0eXBlc2NyaXB0IixsYWJlbDoiVHlwZVNjcmlwdCJ9LHtrZXk6ImphdmFzY3JpcHQiLGxhYmVsOiJKYXZhU2NyaXB0In0se2tleToianNvbiIsbGFiZWw6IkpTT04ifSx7a2V5OiJodG1sIixsYWJlbDoiSFRNTCJ9LHtrZXk6ImNzcyIsbGFiZWw6IkNTUyJ9LHtrZXk6InNjc3MiLGxhYmVsOiJTQ1NTIn0se2tleToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biJ9LHtrZXk6InlhbWwiLGxhYmVsOiJZQU1MIn0se2tleToieG1sIixsYWJlbDoiWE1MIn0se2tleToic3FsIixsYWJlbDoiU1FMIn0se2tleToicHl0aG9uIixsYWJlbDoiUHl0aG9uIn0se2tleToiamF2YSIsbGFiZWw6IkphdmEifSx7a2V5OiJjc2hhcnAiLGxhYmVsOiJDIyJ9LHtrZXk6ImNwcCIsbGFiZWw6IkMrKyJ9LHtrZXk6ImdvIixsYWJlbDoiR28ifSx7a2V5OiJydXN0IixsYWJlbDoiUnVzdCJ9LHtrZXk6InNoZWxsIixsYWJlbDoiU2hlbGwifSx7a2V5OiJwbGFpbnRleHQiLGxhYmVsOiJQbGFpbiBUZXh0In1dLEZwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtY29kZSIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdO3ZhciBZPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRDb2RlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpCb29sZWFufSldLE49W2llKCldLE89W2llKCldLEI9W2llKCldLEE9W2llKCldLGlkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InZhbHVlImluIFosImhhcyIpLGdldDppKFo9PloudmFsdWUsImdldCIpLHNldDppKChaLGRlKT0+e1oudmFsdWU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sbyxsKSxpZCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJsYW5ndWFnZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmxhbmd1YWdlPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LGQsZiksaWQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImhlaWdodCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmhlaWdodCwiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi5oZWlnaHQ9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30saCxtKSxpZCh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJ3b3JkV3JhcCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLndvcmRXcmFwLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLndvcmRXcmFwPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LGIsZyksaWQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGluZU51bWJlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InNob3dMaW5lTnVtYmVycyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnNob3dMaW5lTnVtYmVycywiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi5zaG93TGluZU51bWJlcnM9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sayxNKSxpZCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5pc0xhbmd1YWdlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sXyxTKSxpZCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvcHlTdWNjZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjb3B5U3VjY2VzcyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmNvcHlTdWNjZXNzLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmNvcHlTdWNjZXNzPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LEwsRSksaWQodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsaW5lQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImxpbmVDb3VudCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmxpbmVDb3VudCwiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi5saW5lQ291bnQ9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sQyx6KSxpZCh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnNvclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjdXJzb3JQb3NpdGlvbiJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmN1cnNvclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmN1cnNvclBvc2l0aW9uPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LCQsRiksaWQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6R30sbnVsbCxyKSxZPWE9ZS52YWx1ZSxHJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkd9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtaW5wdXQtY29kZQogICAgICBsYWJlbD0iVHlwZVNjcmlwdCBDb2RlIgogICAgICBrZXk9ImNvZGUiCiAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICBoZWlnaHQ9IjMwMHB4IgogICAgICAudmFsdWU9JHtgY29uc3QgZ3JlZXRpbmc6IHN0cmluZyA9ICJIZWxsbyBXb3JsZCI7CmNvbnNvbGUubG9nKGdyZWV0aW5nKTtgfQogICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0IiwiV29ya3NwYWNlIl07I2U9ZW4odGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoRyl7dGhpcy4jZT1HfSN0PShlbih0aGlzLGwpLGVuKHRoaXMsZCwidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2UoRyl7dGhpcy4jdD1HfSNyPShlbih0aGlzLGYpLGVuKHRoaXMsaCwiMjAwcHgiKSk7Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLiNyfXNldCBoZWlnaHQoRyl7dGhpcy4jcj1HfSNhPShlbih0aGlzLG0pLGVuKHRoaXMsYiwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNhfXNldCB3b3JkV3JhcChHKXt0aGlzLiNhPUd9I2k9KGVuKHRoaXMsZyksZW4odGhpcyxrLCEwKSk7Z2V0IHNob3dMaW5lTnVtYmVycygpe3JldHVybiB0aGlzLiNpfXNldCBzaG93TGluZU51bWJlcnMoRyl7dGhpcy4jaT1HfSNzPShlbih0aGlzLE0pLGVuKHRoaXMsXywhMSkpO2dldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oRyl7dGhpcy4jcz1HfSNuPShlbih0aGlzLFMpLGVuKHRoaXMsTCwhMSkpO2dldCBjb3B5U3VjY2Vzcygpe3JldHVybiB0aGlzLiNufXNldCBjb3B5U3VjY2VzcyhHKXt0aGlzLiNuPUd9I289KGVuKHRoaXMsRSksZW4odGhpcyxDLDApKTtnZXQgbGluZUNvdW50KCl7cmV0dXJuIHRoaXMuI299c2V0IGxpbmVDb3VudChHKXt0aGlzLiNvPUd9I2w9KGVuKHRoaXMseiksZW4odGhpcywkLHtsaW5lOjEsY29sdW1uOjF9KSk7Z2V0IGN1cnNvclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGN1cnNvclBvc2l0aW9uKEcpe3RoaXMuI2w9R31lZGl0b3JFbGVtZW50PShlbih0aGlzLEYpLG51bGwpO3N0YXRpYyBzdHlsZXM9W05lLC4uLkV0LmJhc2VTdHlsZXMseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyLAogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJsZWZ0Il0pIC5pbnB1dC13cmFwcGVyLAogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InJpZ2h0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLnRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWxlZnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICBjb2xvcjogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgfQoKICAgICAgLmVkaXRvci13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAvKiBNYXRjaCBNb25hY28gYmFja2dyb3VuZCB0byB0aWxlICovCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbzo6cGFydChjb250YWluZXIpIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAvKiBGb290ZXIgKi8KICAgICAgLmVkaXRvci1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmZvb3Rlci1sZWZ0LAogICAgICAuZm9vdGVyLXJpZ2h0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZm9vdGVyLXNlcGFyYXRvciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5jb2RlLWNvbnRhaW5lciB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgRz15OS5maW5kKFo9Ploua2V5PT09dGhpcy5sYW5ndWFnZSl8fHk5WzBdO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuaGVpZ2h0fTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1sZWZ0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGFuZ3VhZ2VEcm9wZG93bn0KICAgICAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLmhhbmRsZUxhbmd1YWdlQmx1cn0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtHLmxhYmVsfQogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDaGV2cm9uRG93biJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICR7dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAke3k5Lm1hcChaPT53YAogICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2Utb3B0aW9uICR7Wi5rZXk9PT10aGlzLmxhbmd1YWdlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7ZGU9PnRoaXMuc2VsZWN0TGFuZ3VhZ2UoZGUsWi5rZXkpfQogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAke1oubGFiZWx9CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy53b3JkV3JhcD09PSJvbiI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IldvcmQgV3JhcCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlV29yZFdyYXB9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6V3JhcFRleHQifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMuc2hvd0xpbmVOdW1iZXJzPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIHRpdGxlPSJMaW5lIE51bWJlcnMiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxpbmVOdW1iZXJzfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkhhc2gifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5jb3B5U3VjY2Vzcz8ic3VjY2VzcyI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkNvcHkgQ29kZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuY29weUNvZGV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuY29weVN1Y2Nlc3M/Imx1Y2lkZTpDaGVjayI6Imx1Y2lkZTpDb3B5In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICB0aXRsZT0iRXhwYW5kIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5vcGVuRnVsbHNjcmVlbn0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpNYXhpbWl6ZTIifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgICAgLmNvbnRlbnQ9JHt0aGlzLnZhbHVlfQogICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMubGFuZ3VhZ2V9CiAgICAgICAgICAgICAgLndvcmRXcmFwPSR7dGhpcy53b3JkV3JhcH0KICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9CiAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJlZGl0b3ItZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxlZnQiPgogICAgICAgICAgICAgIDxzcGFuPkxuICR7dGhpcy5jdXJzb3JQb3NpdGlvbi5saW5lfSwgQ29sICR7dGhpcy5jdXJzb3JQb3NpdGlvbi5jb2x1bW59PC9zcGFuPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zZXBhcmF0b3IiPjwvZGl2PgogICAgICAgICAgICAgIDxzcGFuPiR7dGhpcy5saW5lQ291bnR9IGxpbmUke3RoaXMubGluZUNvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8c3Bhbj4keyh5OS5maW5kKFo9Ploua2V5PT09dGhpcy5sYW5ndWFnZSl8fHk5WzBdKS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSx0aGlzLmVkaXRvckVsZW1lbnQpe3RoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50U3ViamVjdC5zdWJzY3JpYmUoUT0+e3RoaXMudmFsdWUhPT1RJiYodGhpcy52YWx1ZT1RLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX0pO2xldCBHPWF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLFo9Ry5nZXRNb2RlbCgpO1omJih0aGlzLmxpbmVDb3VudD1aLmdldExpbmVDb3VudCgpLFoub25EaWRDaGFuZ2VDb250ZW50KCgpPT57dGhpcy5saW5lQ291bnQ9Wi5nZXRMaW5lQ291bnQoKX0pKSxHLm9uRGlkQ2hhbmdlQ3Vyc29yUG9zaXRpb24oUT0+e3RoaXMuY3Vyc29yUG9zaXRpb249e2xpbmU6US5wb3NpdGlvbi5saW5lTnVtYmVyLGNvbHVtbjpRLnBvc2l0aW9uLmNvbHVtbn19KTtsZXQgZGU9YXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmRvbXRvb2xzUHJvbWlzZSxEPWkoUT0+e2xldCBmZT1RPyIjZmZmZmZmIjoiIzBhMGEwYSI7Ry51cGRhdGVPcHRpb25zKHt9KSx3aW5kb3cubW9uYWNvPy5lZGl0b3I/LmRlZmluZVRoZW1lPy4oImRlZXMtbGlnaHQiLHtiYXNlOiJ2cyIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6ZmV9fSksd2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWRhcmsiLHtiYXNlOiJ2cy1kYXJrIixpbmhlcml0OiEwLHJ1bGVzOltdLGNvbG9yczp7ImVkaXRvci5iYWNrZ3JvdW5kIjpmZX19KSxHLnVwZGF0ZU9wdGlvbnMoe3RoZW1lOlE/ImRlZXMtbGlnaHQiOiJkZWVzLWRhcmsifSl9LCJ1cGRhdGVFZGl0b3JCZyIpO0QoZGUudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbiksZGUudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoUT0+e0QoUSl9KX19dG9nZ2xlTGFuZ3VhZ2VEcm9wZG93bigpe3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0hdGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVufWhhbmRsZUxhbmd1YWdlQmx1cigpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITF9LDE1MCl9YXN5bmMgc2VsZWN0TGFuZ3VhZ2UoRyxaKXtpZihHLnByZXZlbnREZWZhdWx0KCksdGhpcy5sYW5ndWFnZT1aLHRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0hMSx0aGlzLmVkaXRvckVsZW1lbnQpe3RoaXMuZWRpdG9yRWxlbWVudC5sYW5ndWFnZT1aO2xldCBEPShhd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtEJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKEQsWil9fXRvZ2dsZVdvcmRXcmFwKCl7dGhpcy53b3JkV3JhcD10aGlzLndvcmRXcmFwPT09Im9uIj8ib2ZmIjoib24iLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJ3b3JkV3JhcCIsdGhpcy53b3JkV3JhcCl9dG9nZ2xlTGluZU51bWJlcnMoKXt0aGlzLnNob3dMaW5lTnVtYmVycz0hdGhpcy5zaG93TGluZU51bWJlcnMsdGhpcy51cGRhdGVFZGl0b3JPcHRpb24oImxpbmVOdW1iZXJzIix0aGlzLnNob3dMaW5lTnVtYmVycz8ib24iOiJvZmYiKX1hc3luYyB1cGRhdGVFZGl0b3JPcHRpb24oRyxaKXt0aGlzLmVkaXRvckVsZW1lbnQmJihhd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7W0ddOlp9KX1hc3luYyBjb3B5Q29kZSgpe3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnZhbHVlKSx0aGlzLmNvcHlTdWNjZXNzPSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvcHlTdWNjZXNzPSExfSwyZTMpfWNhdGNoKEcpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5IGNvZGU6IixHKX19aGFuZGxlQ29udGVudENoYW5nZShHKXtsZXQgWj1HLmRldGFpbDt0aGlzLnZhbHVlIT09WiYmKHRoaXMudmFsdWU9Wix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9YXN5bmMgb3BlbkZ1bGxzY3JlZW4oKXtsZXQgRz10aGlzLnZhbHVlLFo9bnVsbCxkZT10aGlzLmxhbmd1YWdlLEQ9dGhpcy53b3JkV3JhcCxRPXRoaXMuc2hvd0xpbmVOdW1iZXJzLGZlPSExLFQ9ITEsVz1pKCgpPT57bGV0IFg9eTkuZmluZChKPT5KLmtleT09PWRlKTtyZXR1cm4gWD9YLmxhYmVsOiJUeXBlU2NyaXB0In0sImdldExhbmd1YWdlTGFiZWwiKSxwZT1pKFg9PntsZXQgSj1YLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoIUopcmV0dXJuO2xldCB4ZT1KLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24gc3BhbiIpO3hlJiYoeGUudGV4dENvbnRlbnQ9VygpKTtsZXQgSz1KLnF1ZXJ5U2VsZWN0b3IoIi53cmFwLWJ0biIpO0smJksuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixEPT09Im9uIik7bGV0IFY9Si5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik7ViYmVi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLFEpO2xldCBsZT1KLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LWJ0biIpLG5lPWxlPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtsZSYmbmUmJihsZS5jbGFzc0xpc3QudG9nZ2xlKCJzdWNjZXNzIixUKSxuZS5pY29uPVQ/Imx1Y2lkZTpDaGVjayI6Imx1Y2lkZTpDb3B5Iik7bGV0IGVlPUoucXVlcnlTZWxlY3RvcigiLmxhbmd1YWdlLWRyb3Bkb3duIik7ZWUmJihlZS5zdHlsZS5kaXNwbGF5PWZlPyJibG9jayI6Im5vbmUiKX0sInVwZGF0ZVRvb2xiYXJVSSIpLG1lPWkoWD0+e2xldCBKPVguc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsLWZvb3RlciIpO2lmKCFKKXJldHVybjtsZXQgeGU9Si5xdWVyeVNlbGVjdG9yKCIuZm9vdGVyLWN1cnNvciIpLEs9Si5xdWVyeVNlbGVjdG9yKCIuZm9vdGVyLWxpbmVzIiksVj1KLnF1ZXJ5U2VsZWN0b3IoIi5mb290ZXItbGFuZyIpO3hlJiYoeGUudGV4dENvbnRlbnQ9YExuICR7cX0sIENvbCAke0h9YCksSyYmKEsudGV4dENvbnRlbnQ9YCR7VX0gbGluZSR7VSE9PTE/InMiOiIifWApLFYmJihWLnRleHRDb250ZW50PVcoKSl9LCJ1cGRhdGVGb290ZXJVSSIpLHE9MSxIPTEsVT1HLnNwbGl0KGAKYCkubGVuZ3RoLGo9YXdhaXQgZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzp0aGlzLmxhYmVsfHwiQ29kZSBFZGl0b3IiLHdpZHRoOiJmdWxsc2NyZWVuIixjb250ZW50UGFkZGluZzowLGNvbnRlbnQ6d2AKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAubW9kYWwtdG9vbGJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItcmlnaHQgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2UtZHJvcGRvd24gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMTAwJTsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDsKICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24gewogICAgICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb246aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utb3B0aW9uLnNlbGVjdGVkIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24uc3VjY2VzcyB7CiAgICAgICAgICAgIGNvbG9yOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItZGl2aWRlciB7CiAgICAgICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWVkaXRvci13cmFwcGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWZvb3RlciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZm9vdGVyIC5mb290ZXItbGVmdCwKICAgICAgICAgIC5tb2RhbC1mb290ZXIgLmZvb3Rlci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1mb290ZXIgLmZvb3Rlci1zZXBhcmF0b3IgewogICAgICAgICAgICB3aWR0aDogMXB4OwogICAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLXRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1sZWZ0Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiI+CiAgICAgICAgICAgICAgICA8c3Bhbj4ke1coKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDaGV2cm9uRG93biJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZHJvcGRvd24iPgogICAgICAgICAgICAgICAgJHt5OS5tYXAoWD0+d2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1vcHRpb24gJHtYLmtleT09PWRlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIGRhdGEtbGFuZz0iJHtYLmtleX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke1gubGFiZWx9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24gd3JhcC1idG4gJHtEPT09Im9uIj8iYWN0aXZlIjoiIn0iIHRpdGxlPSJXb3JkIFdyYXAiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOldyYXBUZXh0In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIGxpbmVzLWJ0biAke1E/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iTGluZSBOdW1iZXJzIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpIYXNoIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIGNvcHktYnRuIiB0aXRsZT0iQ29weSBDb2RlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDb3B5In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1lZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5jb250ZW50PSR7R30KICAgICAgICAgICAgLmxhbmd1YWdlPSR7ZGV9CiAgICAgICAgICAgIC53b3JkV3JhcD0ke0R9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1sZWZ0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1jdXJzb3IiPkxuICR7cX0sIENvbCAke0h9PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItc2VwYXJhdG9yIj48L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1saW5lcyI+JHtVfSBsaW5lJHtVIT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItcmlnaHQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWxhbmciPiR7VygpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBYPT57YXdhaXQgWC5kZXN0cm95KCl9LCJhY3Rpb24iKX0se25hbWU6IlNhdmUgJiBDbG9zZSIsYWN0aW9uOmkoYXN5bmMgWD0+e2lmKFo9WC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxaKXtsZXQgeGU9KGF3YWl0IFouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0VmFsdWUoKTt0aGlzLnNldFZhbHVlKHhlKX1hd2FpdCBYLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KTtpZihhd2FpdCBuZXcgUHJvbWlzZShYPT5zZXRUaW1lb3V0KFgsMTAwKSksWj1qLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLFope2xldCBYPWF3YWl0IFouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxKPWF3YWl0IFouZG9tdG9vbHNQcm9taXNlLHhlPWkoVj0+e2xldCBsZT1WPyIjZmZmZmZmIjoiIzBhMGEwYSI7d2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWxpZ2h0Iix7YmFzZToidnMiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOmxlfX0pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1kYXJrIix7YmFzZToidnMtZGFyayIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6bGV9fSksWC51cGRhdGVPcHRpb25zKHt0aGVtZTpWPyJkZWVzLWxpZ2h0IjoiZGVlcy1kYXJrIn0pfSwiYXBwbHlNb2RhbFRoZW1lIik7eGUoSi50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuKSxKLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKFY9Pnt4ZShWKX0pLFgub25EaWRDaGFuZ2VDdXJzb3JQb3NpdGlvbihWPT57cT1WLnBvc2l0aW9uLmxpbmVOdW1iZXIsSD1WLnBvc2l0aW9uLmNvbHVtbixtZShqKX0pO2xldCBLPVguZ2V0TW9kZWwoKTtLJiYoVT1LLmdldExpbmVDb3VudCgpLG1lKGopLEsub25EaWRDaGFuZ2VDb250ZW50KCgpPT57VT1LLmdldExpbmVDb3VudCgpLG1lKGopfSkpfWxldCBhZT1qLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoYWUpe2xldCBYPWFlLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24iKTtYPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntmZT0hZmUscGUoail9KTtsZXQgSj1hZS5xdWVyeVNlbGVjdG9yQWxsKCIubGFuZ3VhZ2Utb3B0aW9uIik7Si5mb3JFYWNoKGxlPT57bGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntsZXQgbmU9bGUuZGF0YXNldC5sYW5nO2lmKG5lJiZaKXtkZT1uZSxmZT0hMTtsZXQgemU9KGF3YWl0IFouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTt6ZSYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZSh6ZSxuZSksSi5mb3JFYWNoKEhlPT5IZS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSxsZS5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpLHBlKGopLG1lKGopfX0pfSksYWUucXVlcnlTZWxlY3RvcigiLndyYXAtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57RD1EPT09Im9uIj8ib2ZmIjoib24iLFomJihhd2FpdCBaLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe3dvcmRXcmFwOkR9KSxwZShqKX0pLGFlLnF1ZXJ5U2VsZWN0b3IoIi5saW5lcy1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntRPSFRLFomJihhd2FpdCBaLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe2xpbmVOdW1iZXJzOlE/Im9uIjoib2ZmIn0pLHBlKGopfSksYWUucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57aWYoWil7bGV0IG5lPShhd2FpdCBaLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG5lKSxUPSEwLHBlKGopLHNldFRpbWVvdXQoKCk9PntUPSExLHBlKGopfSwyZTMpfWNhdGNoKGVlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsZWUpfX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbGU9PntmZSYmIVg/LmNvbnRhaW5zKGxlLnRhcmdldCkmJihmZT0hMSxwZShqKSl9LHtvbmNlOiEwfSl9fWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoRyl7dGhpcy52YWx1ZT1HLHRoaXMuZWRpdG9yRWxlbWVudCYmKHRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50PUcsdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UudGhlbihaPT57Wi5nZXRWYWx1ZSgpIT09RyYmWi5zZXRWYWx1ZShHKX0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1zdGF0aWN7ZW4oYSxyKX19O3JldHVybiBZPWF9KSgpfSk7dmFyIElqcixQanI9dSgoKT0+e3ZlKCk7d2EoKTt3bigpO0k2dCgpO0lqcj1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7cmVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIAogICAgICAuZGF0ZS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChyPT57Y29uc29sZS5sb2coIkJhc2ljIGRhdGUgc2VsZWN0ZWQ6IixyLnRhcmdldC52YWx1ZSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIERhdGUgUGlja2VyIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBkYXRlIHNlbGVjdGlvbiB3aXRob3V0IHRpbWUifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iU2VsZWN0IERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2hvb3NlIGEgZGF0ZSBmcm9tIHRoZSBjYWxlbmRhciIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkV2ZW50IERhdGUgJiBUaW1lIl0nKSxyPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJBcHBvaW50bWVudCJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHM9YS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjI0aCBmb3JtYXQgZGF0ZXRpbWU6IixzKX0pKSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcz1hLnRhcmdldC52YWx1ZTtjb25zb2xlLmxvZygiMTJoIGZvcm1hdCBkYXRldGltZToiLHMpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIGFuZCBUaW1lIFNlbGVjdGlvbiJ9IC5zdWJ0aXRsZT0keyJEYXRlIHBpY2tlcnMgd2l0aCB0aW1lIHNlbGVjdGlvbiBpbiBkaWZmZXJlbnQgZm9ybWF0cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEYXRlICYgVGltZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYm90aCBkYXRlIGFuZCB0aW1lICgyNC1ob3VyIGZvcm1hdCkiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMjRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXBwb2ludG1lbnQiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSB3aXRoIEFNL1BNIHNlbGVjdG9yICgxNS1taW51dGUgaW5jcmVtZW50cykiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezE1fQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCBzPWEudGFyZ2V0O2NvbnNvbGUubG9nKGAke3MubGFiZWx9IHZhbHVlOmAscy52YWx1ZSk7bGV0IG49cy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGF0ZS1pbnB1dCIpO24mJmNvbnNvbGUubG9nKGAke3MubGFiZWx9IGZvcm1hdHRlZDpgLG4udmFsdWUpfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlRpbWV6b25lIFN1cHBvcnQifSAuc3VidGl0bGU9JHsiRGF0ZSBhbmQgdGltZSBzZWxlY3Rpb24gd2l0aCB0aW1lem9uZSBhd2FyZW5lc3MifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iTWVldGluZyBUaW1lICh3aXRoIFRpbWV6b25lKSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlL3RpbWUgYW5kIHRpbWV6b25lIGZvciB0aGUgbWVldGluZyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjI0aCIKICAgICAgICAgIHRpbWV6b25lPSJBbWVyaWNhL05ld19Zb3JrIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iR2xvYmFsIEV2ZW50IFNjaGVkdWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IlNjaGVkdWxlIGFuIGV2ZW50IGFjcm9zcyBkaWZmZXJlbnQgdGltZXpvbmVzIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIC5lbmFibGVUaW1lem9uZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgdGltZXpvbmU9IkV1cm9wZS9Mb25kb24iCiAgICAgICAgICAubWludXRlSW5jcmVtZW50PSR7MzB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChyPT57bGV0IGE9ci50YXJnZXQudmFsdWU7aWYoYSl7bGV0IHM9bmV3IERhdGUoYSksbj1uZXcgRGF0ZSxvPU1hdGguZmxvb3IoKHMuZ2V0VGltZSgpLW4uZ2V0VGltZSgpKS8oMWUzKjYwKjYwKjI0KSk7Y29uc29sZS5sb2coYFNlbGVjdGVkIGRhdGUgaXMgJHtvfSBkYXlzIGZyb20gdG9kYXlgKX19KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgUmFuZ2UgQ29uc3RyYWludHMifSAuc3VidGl0bGU9JHsiTGltaXQgc2VsZWN0YWJsZSBkYXRlcyB3aXRoIG1pbiBhbmQgbWF4IHZhbHVlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJGdXR1cmUgRGF0ZSBPbmx5IgogICAgICAgICAgZGVzY3JpcHRpb249IkNhbiBvbmx5IHNlbGVjdCBkYXRlcyBmcm9tIHRvZGF5IHRvIDkwIGRheXMgaW4gdGhlIGZ1dHVyZSIKICAgICAgICAgIC5taW5EYXRlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgLm1heERhdGU9JHtuZXcgRGF0ZShEYXRlLm5vdygpKzIxNjAqNjAqNjAqMWUzKS50b0lTT1N0cmluZygpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT17IkREL01NL1lZWVkiOiJFdXJvcGVhbiIsIk1NL0REL1lZWVkiOiJVUyIsIllZWVktTU0tREQiOiJJU08ifTt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwocz0+e2xldCBuPXMudGFyZ2V0LG89bi5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGF0ZS1pbnB1dCIpO28mJmNvbnNvbGUubG9nKGAke24ubGFiZWx9IGZvcm1hdDpgLG8udmFsdWUpfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgRm9ybWF0cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgZGF0ZSBkaXNwbGF5IGZvcm1hdHMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRXVyb3BlYW4gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJERC9NTS9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iTU0vREQvWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJJU08gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJZWVlZLU1NLUREIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXJbcmVxdWlyZWRdIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2UuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGRhdGUgZmllbGQgaXMgZW1wdHkiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkJpcnRoIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIKICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgcGxhY2Vob2xkZXI9IlNlbGVjdCB5b3VyIGJpcnRoIGRhdGUiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgY2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iVVMgQ2FsZW5kYXIiXScpLHI9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkVVIENhbGVuZGFyIl0nKTtlJiZjb25zb2xlLmxvZygiVVMgQ2FsZW5kYXIgc3RhcnRzIG9uIFN1bmRheSAoMCkiKSxyJiZjb25zb2xlLmxvZygiRVUgQ2FsZW5kYXIgc3RhcnRzIG9uIE1vbmRheSAoMSkiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2FsZW5kYXIgQ3VzdG9taXphdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgd2VlayBzdGFydCBkYXlzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gU3VuZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRVUgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBNb25kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPWkoKCk9PntsZXQgYT1bXSxzPW5ldyBEYXRlLG49cy5nZXRGdWxsWWVhcigpLG89cy5nZXRNb250aCgpLGw9bmV3IERhdGUobixvLDEpO2Zvcig7bC5nZXRNb250aCgpPT09bzspKGwuZ2V0RGF5KCk9PT0wfHxsLmdldERheSgpPT09NikmJmEucHVzaChuZXcgRGF0ZShsKS50b0lTT1N0cmluZygpKSxsLnNldERhdGUobC5nZXREYXRlKCkrMSk7cmV0dXJuIGF9LCJnZW5lcmF0ZVdlZWtlbmRzIikscj10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO3ImJihyLmRpc2FibGVkRGF0ZXM9ZSgpLGNvbnNvbGUubG9nKCJEaXNhYmxlZCB3ZWVrZW5kIGRhdGVzIGZvciBjdXJyZW50IG1vbnRoIikpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEaXNhYmxlZCBEYXRlcyJ9IC5zdWJ0aXRsZT0keyJDYWxlbmRhciB3aXRoIHNwZWNpZmljIGRhdGVzIGRpc2FibGVkICh3ZWVrZW5kcyBpbiBjdXJyZW50IG1vbnRoKSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJBdmFpbGFiaWxpdHkgQ2FsZW5kYXIiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iV2Vla2VuZHMgYXJlIGRpc2FibGVkIGZvciB0aGUgY3VycmVudCBtb250aCIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9bmV3IERhdGUscj1lLmdldE1vbnRoKCksYT1lLmdldEZ1bGxZZWFyKCkscz1be2RhdGU6YCR7YX0tJHsocisxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHtlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJUZWFtIE1lZXRpbmciLHR5cGU6ImluZm8iLGNvdW50OjJ9LHtkYXRlOmAke2F9LSR7KHIrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlByb2plY3QgRGVhZGxpbmUiLHR5cGU6Indhcm5pbmcifSx7ZGF0ZTpgJHthfS0keyhyKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSsyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJSZWxlYXNlIERheSIsdHlwZToic3VjY2VzcyJ9LHtkYXRlOmAke2F9LSR7KHIrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzUpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlVyZ2VudCBGaXggUmVxdWlyZWQiLHR5cGU6ImVycm9yIn0se2RhdGU6YCR7YX0tJHsocisxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrNykudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiTXVsdGlwbGUgRXZlbnRzIFRvZGF5Iix0eXBlOiJpbmZvIixjb3VudDo1fSx7ZGF0ZTpgJHthfS0keyhyKzIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0xNWAsdGl0bGU6IkZ1dHVyZSBQbGFubmluZyBTZXNzaW9uIix0eXBlOiJpbmZvIn1dLG49dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTtuJiYobi5ldmVudHM9cyxjb25zb2xlLmxvZygiQ2FsZW5kYXIgZXZlbnRzIGxvYWRlZDoiLHMpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2FsZW5kYXIgd2l0aCBFdmVudHMifSAuc3VidGl0bGU9JHsiVmlzdWFsIGZlZWRiYWNrIGZvciBzY2hlZHVsZWQgZXZlbnRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkV2ZW50IENhbGVuZGFyIgogICAgICAgICAgZGVzY3JpcHRpb249IkRheXMgd2l0aCBjb2xvcmVkIGRvdHMgaGF2ZSBldmVudHMuIEhvdmVyIHRvIHNlZSBkZXRhaWxzLiIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8c3Ryb25nPkV2ZW50IExlZ2VuZDo8L3N0cm9uZz48YnI+CiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICMwOTY5ZGE7Ij7il48gSW5mbzwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2QyOTkyMjsiPuKXjyBXYXJuaW5nPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjMmVhMDQzOyI+4pePIFN1Y2Nlc3M8L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICNjZjIyMmU7Ij7il48gRXJyb3I8L3NwYW4+PGJyPgogICAgICAgICAgPGVtPkRheXMgd2l0aCBtb3JlIHRoYW4gMyBldmVudHMgc2hvdyBhIGNvdW50IGJhZGdlPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjZXZlbnQtb3V0cHV0Iik7ZSYmciYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCBzPWEudGFyZ2V0LG49cy52YWx1ZTtpZihuKXtsZXQgbz1uZXcgRGF0ZShuKSxjPXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKT8udmFsdWV8fCJOL0EiO3IuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICA8c3Ryb25nPkV2ZW50IHRyaWdnZXJlZCE8L3N0cm9uZz48YnI+CiAgICAgICAgICAgICAgSVNPIFZhbHVlOiAke259PGJyPgogICAgICAgICAgICAgIEZvcm1hdHRlZDogJHtjfTxicj4KICAgICAgICAgICAgICBEYXRlIG9iamVjdDogJHtvLnRvTG9jYWxlU3RyaW5nKCl9CiAgICAgICAgICAgIGB9ZWxzZSByLmlubmVySFRNTD0iPGVtPkRhdGUgY2xlYXJlZDwvZW0+In0pKSxlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIkRhdGVwaWNrZXIgbG9zdCBmb2N1cyIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBkZW1vbnN0cmF0aW9uIG9mIGNoYW5nZSBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGVtbyIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlIHRvIHNlZSB0aGUgZXZlbnQgZGV0YWlscyIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZXZlbnQtb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPlNlbGVjdCBhIGRhdGUgdG8gc2VlIGV2ZW50IGRldGFpbHMuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgTmpyLE9qcj11KCgpPT57dmUoKTtDaSgpO05qcj1bLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmZvY3VzLAogICAgICAuZGF0ZS1pbnB1dC5vcGVuIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaWNvbi1jb250YWluZXIgPiAqIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLWljb24gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CiAgICBgXX0pO3ZhciBSanIsRmpyPXUoKCk9Pnt2ZSgpO1Jqcj1pKHQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0LmxhYmVsfSAuaW5mb1RleHQ9JHt0LmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0LnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1jb250YWluZXIiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJkYXRlLWlucHV0ICR7dC5pc09wZW5lZD8ib3BlbiI6IiJ9IgogICAgICAgICAgICAgIC52YWx1ZT0ke3QuZm9ybWF0RGF0ZSh0LnZhbHVlKX0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0LnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3QuZGlzYWJsZWR9CiAgICAgICAgICAgICAgQGNsaWNrPSR7dC50b2dnbGVDYWxlbmRhcn0KICAgICAgICAgICAgICBAa2V5ZG93bj0ke3QuaGFuZGxlS2V5ZG93bn0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0LmhhbmRsZU1hbnVhbElucHV0fQogICAgICAgICAgICAgIEBibHVyPSR7dC5oYW5kbGVJbnB1dEJsdXJ9CiAgICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctcmlnaHQ6ICR7dC52YWx1ZT8iNjRweCI6IjQwcHgifSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dC52YWx1ZSYmIXQuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7dC5jbGVhclZhbHVlfSB0aXRsZT0iQ2xlYXIiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYWxlbmRhci1pY29uIiBpY29uPSJsdWNpZGU6Y2FsZW5kYXIiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3QucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYCwicmVuZGVyRGF0ZXBpY2tlciIpfSk7dmFyIFRzLExyLEJwZSxQNnQ9dSgoKT0+e3ZlKCk7TXIoKTtPbygpO2x0KCk7bmMoKTtLcigpO1RzPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxMcj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sQnBlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyLXBvcHVwIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdLEgsVT1bXSxqPVtdLGFlLFg9W10sSj1bXSx4ZSxLPVtdLFY9W10sbGUsbmU9W10sZWU9W10semUsSGU9W10sR2U9W10sb3QsRGU9W10sX2U9W107dmFyIG9lPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREYXRlcGlja2VyUG9wdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgc2U9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7YXR0cmlidXRlOiExfSldLGM9W1Aoe2F0dHJpYnV0ZTohMX0pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpOdW1iZXJ9KV0sTj1bUCh7dHlwZTpOdW1iZXJ9KV0sTz1bUCh7dHlwZTpTdHJpbmd9KV0sQj1bUCh7dHlwZTpTdHJpbmd9KV0sQT1bUCh7dHlwZTpBcnJheX0pXSxZPVtQKHt0eXBlOkJvb2xlYW59KV0sZGU9W1Aoe3R5cGU6U3RyaW5nfSldLGZlPVtQKHt0eXBlOkFycmF5fSldLHBlPVtQKHt0eXBlOkJvb2xlYW59KV0sSD1baWUoKV0sYWU9W2llKCldLHhlPVtpZSgpXSxsZT1baWUoKV0semU9W2llKCldLG90PVtpZSgpXSxUcyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyaWdnZXJSZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4idHJpZ2dlclJlY3QiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS50cmlnZ2VyUmVjdCwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLnRyaWdnZXJSZWN0PVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxvLGwpLFRzKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3duZXJDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoY2U9PiJvd25lckNvbXBvbmVudCJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm93bmVyQ29tcG9uZW50LCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2Uub3duZXJDb21wb25lbnQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LGQsZiksVHModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4iZW5hYmxlVGltZSJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLmVuYWJsZVRpbWUsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5lbmFibGVUaW1lPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxoLG0pLFRzKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZUZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+InRpbWVGb3JtYXQiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS50aW1lRm9ybWF0LCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2UudGltZUZvcm1hdD1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sYixnKSxUcyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbnV0ZUluY3JlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+Im1pbnV0ZUluY3JlbWVudCJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm1pbnV0ZUluY3JlbWVudCwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLm1pbnV0ZUluY3JlbWVudD1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sayxNKSxUcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndlZWtTdGFydHNPbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+IndlZWtTdGFydHNPbiJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLndlZWtTdGFydHNPbiwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLndlZWtTdGFydHNPbj1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sXyxTKSxUcyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkRhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoY2U9PiJtaW5EYXRlImluIGNlLCJoYXMiKSxnZXQ6aShjZT0+Y2UubWluRGF0ZSwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLm1pbkRhdGU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LEwsRSksVHModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4ibWF4RGF0ZSJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm1heERhdGUsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5tYXhEYXRlPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxDLHopLFRzKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWREYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+ImRpc2FibGVkRGF0ZXMiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS5kaXNhYmxlZERhdGVzLCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2UuZGlzYWJsZWREYXRlcz1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sJCxGKSxUcyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4iZW5hYmxlVGltZXpvbmUiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS5lbmFibGVUaW1lem9uZSwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLmVuYWJsZVRpbWV6b25lPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxHLFopLFRzKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4idGltZXpvbmUiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS50aW1lem9uZSwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLnRpbWV6b25lPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxELFEpLFRzKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+ImV2ZW50cyJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLmV2ZW50cywiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLmV2ZW50cz1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sVCxXKSxUcyh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4ib3BlbnNUb1RvcCJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm9wZW5zVG9Ub3AsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5vcGVuc1RvVG9wPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxtZSxxKSxUcyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+InNlbGVjdGVkRGF0ZSJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLnNlbGVjdGVkRGF0ZSwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLnNlbGVjdGVkRGF0ZT1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sVSxqKSxUcyh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+InZpZXdEYXRlImluIGNlLCJoYXMiKSxnZXQ6aShjZT0+Y2Uudmlld0RhdGUsImdldCIpLHNldDppKChjZSxUZSk9PntjZS52aWV3RGF0ZT1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sWCxKKSxUcyh0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEhvdXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoY2U9PiJzZWxlY3RlZEhvdXIiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS5zZWxlY3RlZEhvdXIsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5zZWxlY3RlZEhvdXI9VGV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LEssViksVHModGhpcyxudWxsLGxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRNaW51dGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoY2U9PiJzZWxlY3RlZE1pbnV0ZSJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLnNlbGVjdGVkTWludXRlLCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2Uuc2VsZWN0ZWRNaW51dGU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LG5lLGVlKSxUcyh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4ibWVudVpJbmRleCJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5tZW51WkluZGV4PVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxIZSxHZSksVHModGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+InZpc2libGUiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2UudmlzaWJsZT1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sRGUsX2UpLFRzKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnNlfSxudWxsLHIpLG9lPWE9ZS52YWx1ZSxzZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpzZX0pfSNlPUxyKHRoaXMsbyxudWxsKTtnZXQgdHJpZ2dlclJlY3QoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHJpZ2dlclJlY3Qoc2Upe3RoaXMuI2U9c2V9I3Q9KExyKHRoaXMsbCksTHIodGhpcyxkLG51bGwpKTtnZXQgb3duZXJDb21wb25lbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3duZXJDb21wb25lbnQoc2Upe3RoaXMuI3Q9c2V9I3I9KExyKHRoaXMsZiksTHIodGhpcyxoLCExKSk7Z2V0IGVuYWJsZVRpbWUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW5hYmxlVGltZShzZSl7dGhpcy4jcj1zZX0jYT0oTHIodGhpcyxtKSxMcih0aGlzLGIsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNhfXNldCB0aW1lRm9ybWF0KHNlKXt0aGlzLiNhPXNlfSNpPShMcih0aGlzLGcpLExyKHRoaXMsaywxKSk7Z2V0IG1pbnV0ZUluY3JlbWVudCgpe3JldHVybiB0aGlzLiNpfXNldCBtaW51dGVJbmNyZW1lbnQoc2Upe3RoaXMuI2k9c2V9I3M9KExyKHRoaXMsTSksTHIodGhpcyxfLDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdlZWtTdGFydHNPbihzZSl7dGhpcy4jcz1zZX0jbj0oTHIodGhpcyxTKSxMcih0aGlzLEwsIiIpKTtnZXQgbWluRGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtaW5EYXRlKHNlKXt0aGlzLiNuPXNlfSNvPShMcih0aGlzLEUpLExyKHRoaXMsQywiIikpO2dldCBtYXhEYXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heERhdGUoc2Upe3RoaXMuI289c2V9I2w9KExyKHRoaXMseiksTHIodGhpcywkLFtdKSk7Z2V0IGRpc2FibGVkRGF0ZXMoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZGlzYWJsZWREYXRlcyhzZSl7dGhpcy4jbD1zZX0jYz0oTHIodGhpcyxGKSxMcih0aGlzLEcsITEpKTtnZXQgZW5hYmxlVGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgZW5hYmxlVGltZXpvbmUoc2Upe3RoaXMuI2M9c2V9I2Q9KExyKHRoaXMsWiksTHIodGhpcyxELEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiNkfXNldCB0aW1lem9uZShzZSl7dGhpcy4jZD1zZX0jdT0oTHIodGhpcyxRKSxMcih0aGlzLFQsW10pKTtnZXQgZXZlbnRzKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGV2ZW50cyhzZSl7dGhpcy4jdT1zZX0jcD0oTHIodGhpcyxXKSxMcih0aGlzLG1lLCExKSk7Z2V0IG9wZW5zVG9Ub3AoKXtyZXR1cm4gdGhpcy4jcH1zZXQgb3BlbnNUb1RvcChzZSl7dGhpcy4jcD1zZX0jZj0oTHIodGhpcyxxKSxMcih0aGlzLFUsbnVsbCkpO2dldCBzZWxlY3RlZERhdGUoKXtyZXR1cm4gdGhpcy4jZn1zZXQgc2VsZWN0ZWREYXRlKHNlKXt0aGlzLiNmPXNlfSNoPShMcih0aGlzLGopLExyKHRoaXMsWCxuZXcgRGF0ZSkpO2dldCB2aWV3RGF0ZSgpe3JldHVybiB0aGlzLiNofXNldCB2aWV3RGF0ZShzZSl7dGhpcy4jaD1zZX0jbT0oTHIodGhpcyxKKSxMcih0aGlzLEssMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWRIb3VyKHNlKXt0aGlzLiNtPXNlfSNnPShMcih0aGlzLFYpLExyKHRoaXMsbmUsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZE1pbnV0ZShzZSl7dGhpcy4jZz1zZX0jYj0oTHIodGhpcyxlZSksTHIodGhpcyxIZSwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNifXNldCBtZW51WkluZGV4KHNlKXt0aGlzLiNiPXNlfSN4PShMcih0aGlzLEdlKSxMcih0aGlzLERlLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jeH1zZXQgdmlzaWJsZShzZSl7dGhpcy4jeD1zZX13aW5kb3dMYXllcj0oTHIodGhpcyxfZSksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMSkiLCIwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4yKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogMjgwcHg7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC50b3AgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAuc2hvdyB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIENhbGVuZGFyIEhlYWRlciAqLwogICAgICAuY2FsZW5kYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb250aC15ZWFyLWRpc3BsYXkgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgZmxleDogMTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdlZWtkYXkgaGVhZGVycyAqLwogICAgICAud2Vla2RheXMgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC53ZWVrZGF5IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgcGFkZGluZzogMCAwIDhweCAwOwogICAgICB9CgogICAgICAvKiBEYXlzIGdyaWQgKi8KICAgICAgLmRheXMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZGF5IHsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmRheTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmRheS5vdGhlci1tb250aCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuZGF5LnRvZGF5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuZGlzYWJsZWQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAvKiBFdmVudCBpbmRpY2F0b3JzICovCiAgICAgIC5ldmVudC1pbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QuaW5mbyB7IGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjExIDcwJSA1MiUpIiwiaHNsKDIxMSA3MCUgNjIlKSIpfTsgfQogICAgICAuZXZlbnQtZG90Lndhcm5pbmcgeyBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQ1IDkwJSA0NSUpIiwiaHNsKDQ1IDkwJSA1NSUpIil9OyB9CiAgICAgIC5ldmVudC1kb3Quc3VjY2VzcyB7IGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyIDY5JSA0NSUpIiwiaHNsKDE0MiA2OSUgNTUlKSIpfTsgfQogICAgICAuZXZlbnQtZG90LmVycm9yIHsgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDcyJSA1MSUpIiwiaHNsKDAgNzIlIDYxJSkiKX07IH0KCiAgICAgIC5ldmVudC1jb3VudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMnB4OwogICAgICAgIHJpZ2h0OiAycHg7CiAgICAgICAgbWluLXdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmV2ZW50LXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLmRheS5oYXMtZXZlbnQ6aG92ZXIgLmV2ZW50LXRvb2x0aXAgeyBvcGFjaXR5OiAxOyB9CgogICAgICAvKiBUaW1lIHNlbGVjdG9yICovCiAgICAgIC50aW1lLXNlbGVjdG9yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAudGltZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDY1cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKSIsImhzbCgyMTAgMjAlIDk4JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlcGFyYXRvciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1zZWxlY3RvciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNHB4OyBtYXJnaW4tbGVmdDogOHB4OyB9CgogICAgICAuYW0tcG0tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tYnV0dG9uOmhvdmVyOm5vdCguc2VsZWN0ZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAvKiBUaW1lem9uZSBzZWxlY3RvciAqLwogICAgICAudGltZXpvbmUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLyogQWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLmNhbGVuZGFyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1hY3Rpb24tYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSAzMC42JSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KICAgIGBdO3N0YXRpYyBNT05USF9OQU1FUz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07c3RhdGljIFRJTUVaT05FUz1be3ZhbHVlOiJVVEMiLGxhYmVsOiJVVEMgKENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lKSJ9LHt2YWx1ZToiQW1lcmljYS9OZXdfWW9yayIsbGFiZWw6IkVhc3Rlcm4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0NoaWNhZ28iLGxhYmVsOiJDZW50cmFsIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9EZW52ZXIiLGxhYmVsOiJNb3VudGFpbiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLGxhYmVsOiJQYWNpZmljIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiRXVyb3BlL0xvbmRvbiIsbGFiZWw6IkxvbmRvbiJ9LHt2YWx1ZToiRXVyb3BlL1BhcmlzIixsYWJlbDoiUGFyaXMifSx7dmFsdWU6IkV1cm9wZS9CZXJsaW4iLGxhYmVsOiJCZXJsaW4ifSx7dmFsdWU6IkV1cm9wZS9Nb3Njb3ciLGxhYmVsOiJNb3Njb3cifSx7dmFsdWU6IkFzaWEvRHViYWkiLGxhYmVsOiJEdWJhaSJ9LHt2YWx1ZToiQXNpYS9Lb2xrYXRhIixsYWJlbDoiSW5kaWEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9TaGFuZ2hhaSIsbGFiZWw6IkNoaW5hIFN0YW5kYXJkIFRpbWUifSx7dmFsdWU6IkFzaWEvVG9reW8iLGxhYmVsOiJUb2t5byJ9LHt2YWx1ZToiQXVzdHJhbGlhL1N5ZG5leSIsbGFiZWw6IlN5ZG5leSJ9LHt2YWx1ZToiUGFjaWZpYy9BdWNrbGFuZCIsbGFiZWw6IkF1Y2tsYW5kIn1dO3JlbmRlcigpe2lmKCF0aGlzLnRyaWdnZXJSZWN0KXJldHVybiB3YGA7bGV0IHNlPXRoaXMuY29tcHV0ZVBvc2l0aW9uU3R5bGUoKSxjZT10aGlzLndlZWtTdGFydHNPbj09PTE/WyJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiLCJTdSJdOlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxUZT10aGlzLmdldERheXNJbk1vbnRoKCkscWU9dGhpcy5zZWxlY3RlZEhvdXI8MTI7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iY2FsZW5kYXItcG9wdXAgJHt0aGlzLnZpc2libGU/InNob3ciOiIifSAke3RoaXMub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iCiAgICAgICAgc3R5bGU9IiR7c2V9OyB6LWluZGV4OiAke3RoaXMubWVudVpJbmRleH07IgogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItaGVhZGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3RoaXMucHJldmlvdXNNb250aH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25MZWZ0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtb250aC15ZWFyLWRpc3BsYXkiPgogICAgICAgICAgICAke29lLk1PTlRIX05BTUVTW3RoaXMudmlld0RhdGUuZ2V0TW9udGgoKV19ICR7dGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLm5leHRNb250aH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25SaWdodCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3ZWVrZGF5cyI+CiAgICAgICAgICAke2NlLm1hcChudD0+d2A8ZGl2IGNsYXNzPSJ3ZWVrZGF5Ij4ke250fTwvZGl2PmApfQogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkYXlzLWdyaWQiPgogICAgICAgICAgJHtUZS5tYXAobnQ9PntsZXQgdnQ9dGhpcy5pc1RvZGF5KG50KSxMZT10aGlzLmlzU2VsZWN0ZWQobnQpLHdlPW50LmdldE1vbnRoKCkhPT10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksT2U9dGhpcy5pc0RheURpc2FibGVkKG50KSxnZT10aGlzLmdldEV2ZW50c0ZvckRhdGUobnQpLGJlPWdlLmxlbmd0aD4wLEllPWdlLnJlZHVjZSgoeXQsd3QpPT55dCsod3QuY291bnR8fDEpLDApO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJkYXkgJHt3ZT8ib3RoZXItbW9udGgiOiIifSAke3Z0PyJ0b2RheSI6IiJ9ICR7TGU/InNlbGVjdGVkIjoiIn0gJHtPZT8iZGlzYWJsZWQiOiIifSAke2JlPyJoYXMtZXZlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT4hT2UmJnRoaXMuaGFuZGxlU2VsZWN0RGF0ZShudCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtudC5nZXREYXRlKCl9CiAgICAgICAgICAgICAgICAke2JlP3dgCiAgICAgICAgICAgICAgICAgICR7SWU+Mz93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWNvdW50Ij4ke0llfTwvZGl2PgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtaW5kaWNhdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICR7Z2Uuc2xpY2UoMCwzKS5tYXAoeXQ9PndgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWRvdCAke3l0LnR5cGV8fCJpbmZvIn0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICR7Z2VbMF0udGl0bGU/d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC10b29sdGlwIj4KICAgICAgICAgICAgICAgICAgICAgICR7Z2VbMF0udGl0bGV9CiAgICAgICAgICAgICAgICAgICAgICAke0llPjE/d2AgKCske0llLTF9IG1vcmUpYDoiIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmVuYWJsZVRpbWU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3IiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNlbGVjdG9yLXRpdGxlIj5UaW1lPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtaW5wdXRzIj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0idGltZS1pbnB1dCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyh0aGlzLnNlbGVjdGVkSG91cj09PTA/MTI6dGhpcy5zZWxlY3RlZEhvdXI+MTI/dGhpcy5zZWxlY3RlZEhvdXItMTI6dGhpcy5zZWxlY3RlZEhvdXIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpOnRoaXMuc2VsZWN0ZWRIb3VyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVIb3VySW5wdXR9CiAgICAgICAgICAgICAgICBtaW49IiR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/MTowfSIKICAgICAgICAgICAgICAgIG1heD0iJHt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj8xMjoyM30iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1zZXBhcmF0b3IiPjo8L3NwYW4+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9InRpbWUtaW5wdXQiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlbGVjdGVkTWludXRlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVNaW51dGVJbnB1dH0KICAgICAgICAgICAgICAgIG1pbj0iMCIgbWF4PSI1OSIgc3RlcD0iJHt0aGlzLm1pbnV0ZUluY3JlbWVudHx8MX0iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAke3RoaXMudGltZUZvcm1hdD09PSIxMmgiP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbS1wbS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFtLXBtLWJ1dHRvbiAke3FlPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5zZXRBTVBNKCJhbSIpfT5BTTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhbS1wbS1idXR0b24gJHtxZT8iIjoic2VsZWN0ZWQifSIgQGNsaWNrPSR7KCk9PnRoaXMuc2V0QU1QTSgicG0iKX0+UE08L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVuYWJsZVRpbWV6b25lP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3RvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIj5UaW1lem9uZTwvZGl2PgogICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3QiIC52YWx1ZT0ke3RoaXMudGltZXpvbmV9IEBjaGFuZ2U9JHt0aGlzLmhhbmRsZVRpbWV6b25lQ2hhbmdlfT4KICAgICAgICAgICAgICAke29lLlRJTUVaT05FUy5tYXAobnQ9PndgCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIke250LnZhbHVlfSIgP3NlbGVjdGVkPSR7bnQudmFsdWU9PT10aGlzLnRpbWV6b25lfT4ke250LmxhYmVsfTwvb3B0aW9uPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWFjdGlvbnMiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiB0b2RheS1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlU2VsZWN0VG9kYXl9PlRvZGF5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNsZWFyLWFjdGlvbi1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xlYXJ9PkNsZWFyPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb21wdXRlUG9zaXRpb25TdHlsZSgpe2xldCBzZT10aGlzLnRyaWdnZXJSZWN0LGNlPXNlLmxlZnQ7aWYodGhpcy5vcGVuc1RvVG9wKXtsZXQgVGU9d2luZG93LmlubmVySGVpZ2h0LXNlLnRvcCs0O3JldHVybmBsZWZ0OiAke2NlfXB4OyBib3R0b206ICR7VGV9cHg7IHRvcDogYXV0b2B9ZWxzZXtsZXQgVGU9c2UuYm90dG9tKzQ7cmV0dXJuYGxlZnQ6ICR7Y2V9cHg7IHRvcDogJHtUZX1weGB9fWdldERheXNJbk1vbnRoKCl7bGV0IHNlPXRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSxjZT10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksVGU9bmV3IERhdGUoc2UsY2UsMSkscWU9bmV3IERhdGUoc2UsY2UrMSwwKSxudD1bXSx2dD10aGlzLndlZWtTdGFydHNPbj09PTE/VGUuZ2V0RGF5KCk9PT0wPzY6VGUuZ2V0RGF5KCktMTpUZS5nZXREYXkoKTtmb3IobGV0IHdlPXZ0O3dlPjA7d2UtLSludC5wdXNoKG5ldyBEYXRlKHNlLGNlLDEtd2UpKTtmb3IobGV0IHdlPTE7d2U8PXFlLmdldERhdGUoKTt3ZSsrKW50LnB1c2gobmV3IERhdGUoc2UsY2Usd2UpKTtsZXQgTGU9NDItbnQubGVuZ3RoO2ZvcihsZXQgd2U9MTt3ZTw9TGU7d2UrKyludC5wdXNoKG5ldyBEYXRlKHNlLGNlKzEsd2UpKTtyZXR1cm4gbnR9aXNUb2RheShzZSl7bGV0IGNlPW5ldyBEYXRlO3JldHVybiBzZS5nZXREYXRlKCk9PT1jZS5nZXREYXRlKCkmJnNlLmdldE1vbnRoKCk9PT1jZS5nZXRNb250aCgpJiZzZS5nZXRGdWxsWWVhcigpPT09Y2UuZ2V0RnVsbFllYXIoKX1pc1NlbGVjdGVkKHNlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZERhdGU/c2UuZ2V0RGF0ZSgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpJiZzZS5nZXRNb250aCgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSYmc2UuZ2V0RnVsbFllYXIoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCk6ITF9aXNEYXlEaXNhYmxlZChzZSl7aWYodGhpcy5taW5EYXRlKXtsZXQgY2U9bmV3IERhdGUodGhpcy5taW5EYXRlKTtpZihzZTxjZSlyZXR1cm4hMH1pZih0aGlzLm1heERhdGUpe2xldCBjZT1uZXcgRGF0ZSh0aGlzLm1heERhdGUpO2lmKHNlPmNlKXJldHVybiEwfXJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXM/Lmxlbmd0aD90aGlzLmRpc2FibGVkRGF0ZXMuc29tZShjZT0+e3RyeXtsZXQgVGU9bmV3IERhdGUoY2UpO3JldHVybiBzZS5nZXREYXRlKCk9PT1UZS5nZXREYXRlKCkmJnNlLmdldE1vbnRoKCk9PT1UZS5nZXRNb250aCgpJiZzZS5nZXRGdWxsWWVhcigpPT09VGUuZ2V0RnVsbFllYXIoKX1jYXRjaHtyZXR1cm4hMX19KTohMX1nZXRFdmVudHNGb3JEYXRlKHNlKXtpZighdGhpcy5ldmVudHM/Lmxlbmd0aClyZXR1cm5bXTtsZXQgY2U9YCR7c2UuZ2V0RnVsbFllYXIoKX0tJHsoc2UuZ2V0TW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHtzZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YDtyZXR1cm4gdGhpcy5ldmVudHMuZmlsdGVyKFRlPT5UZS5kYXRlPT09Y2UpfXByZXZpb3VzTW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCktMSwxKX1uZXh0TW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCkrMSwxKX1oYW5kbGVTZWxlY3REYXRlKHNlKXt0aGlzLnNlbGVjdGVkRGF0ZT1uZXcgRGF0ZShzZS5nZXRGdWxsWWVhcigpLHNlLmdldE1vbnRoKCksc2UuZ2V0RGF0ZSgpLHRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMuc2VsZWN0ZWRNaW51dGUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRhdGUtc2VsZWN0ZWQiLHtkZXRhaWw6dGhpcy5zZWxlY3RlZERhdGV9KSksdGhpcy5lbmFibGVUaW1lfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfWhhbmRsZVNlbGVjdFRvZGF5KCl7bGV0IHNlPW5ldyBEYXRlO3RoaXMuc2VsZWN0ZWREYXRlPXNlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoc2UpLHRoaXMuc2VsZWN0ZWRIb3VyPXNlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1zZS5nZXRNaW51dGVzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSx0aGlzLmVuYWJsZVRpbWV8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9aGFuZGxlQ2xlYXIoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLWNsZWFyZWQiKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX1oYW5kbGVIb3VySW5wdXQ9aShzZT0+e2xldCBjZT1zZS50YXJnZXQsVGU9cGFyc2VJbnQoY2UudmFsdWUpfHwwO3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyhUZT1NYXRoLm1heCgxLE1hdGgubWluKDEyLFRlKSksdGhpcy5zZWxlY3RlZEhvdXI+PTEyJiZUZSE9PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPVRlKzEyOnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiZUZT09PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPTA6dGhpcy5zZWxlY3RlZEhvdXI9VGUpOnRoaXMuc2VsZWN0ZWRIb3VyPU1hdGgubWF4KDAsTWF0aC5taW4oMjMsVGUpKSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9LCJoYW5kbGVIb3VySW5wdXQiKTtoYW5kbGVNaW51dGVJbnB1dD1pKHNlPT57bGV0IGNlPXNlLnRhcmdldCxUZT1wYXJzZUludChjZS52YWx1ZSl8fDA7VGU9TWF0aC5tYXgoMCxNYXRoLm1pbig1OSxUZSkpLHRoaXMubWludXRlSW5jcmVtZW50PjEmJihUZT1NYXRoLnJvdW5kKFRlL3RoaXMubWludXRlSW5jcmVtZW50KSp0aGlzLm1pbnV0ZUluY3JlbWVudCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1UZSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9LCJoYW5kbGVNaW51dGVJbnB1dCIpO3NldEFNUE0oc2Upe3NlPT09ImFtIiYmdGhpcy5zZWxlY3RlZEhvdXI+PTEyP3RoaXMuc2VsZWN0ZWRIb3VyLT0xMjpzZT09PSJwbSImJnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiYodGhpcy5zZWxlY3RlZEhvdXIrPTEyKSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9aGFuZGxlVGltZXpvbmVDaGFuZ2U9aShzZT0+e3RoaXMudGltZXpvbmU9c2UudGFyZ2V0LnZhbHVlLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZVRpbWV6b25lQ2hhbmdlIik7ZW1pdFRpbWVVcGRhdGUoKXt0aGlzLnNlbGVjdGVkRGF0ZSYmKHRoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSl9YXN5bmMgc2hvdygpe3RoaXMud2luZG93TGF5ZXI9YXdhaXQgeW4uY3JlYXRlQW5kU2hvdygpLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX0pLHRoaXMubWVudVpJbmRleD15ci5nZXROZXh0WkluZGV4KCkseXIucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcyksYXdhaXQgY3Iuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7cGFzc2l2ZTohMH0pfWFzeW5jIGhpZGUoKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSx5ci51bnJlZ2lzdGVyKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJih0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyPW51bGwpLHRoaXMudmlzaWJsZT0hMSxhd2FpdCBjci5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy5pc0Rlc3Ryb3lpbmc9ITEpfWhhbmRsZVNjcm9sbE9yUmVzaXplPWkoKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBvc2l0aW9uLXJlcXVlc3QiKSl9LCJoYW5kbGVTY3JvbGxPclJlc2l6ZSIpO2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSkseXIudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7THIoYSxyKX19O3JldHVybiBvZT1hfSkoKX0pO3ZhciB0bixacixIcGUsSTZ0PXUoKCk9Pnt2ZSgpO0NpKCk7UGpyKCk7T2pyKCk7RmpyKCk7UDZ0KCk7S3IoKTtPeSgpO3RuPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxacj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sSHBlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdLEgsVT1bXSxqPVtdLGFlLFg9W10sSj1bXSx4ZSxLPVtdLFY9W10sbGUsbmU9W10sZWU9W10semUsSGU9W10sR2U9W107dmFyIG90PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREYXRlcGlja2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IERlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOk51bWJlcn0pXSx5PVtQKHt0eXBlOlN0cmluZ30pXSxOPVtQKHt0eXBlOlN0cmluZ30pXSxPPVtQKHt0eXBlOlN0cmluZ30pXSxCPVtQKHt0eXBlOkFycmF5fSldLEE9W1Aoe3R5cGU6TnVtYmVyfSldLFk9W1Aoe3R5cGU6U3RyaW5nfSldLGRlPVtQKHt0eXBlOkJvb2xlYW59KV0sZmU9W1Aoe3R5cGU6U3RyaW5nfSldLHBlPVtQKHt0eXBlOkFycmF5fSldLEg9W2llKCldLGFlPVtpZSgpXSx4ZT1baWUoKV0sbGU9W2llKCldLHplPVtpZSgpXSx0bih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4idmFsdWUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS52YWx1ZSwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLnZhbHVlPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxvLGwpLHRuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImVuYWJsZVRpbWUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5lbmFibGVUaW1lLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UuZW5hYmxlVGltZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sZCxmKSx0bih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ0aW1lRm9ybWF0ImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UudGltZUZvcm1hdCwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLnRpbWVGb3JtYXQ9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGgsbSksdG4odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW51dGVJbmNyZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJtaW51dGVJbmNyZW1lbnQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5taW51dGVJbmNyZW1lbnQsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5taW51dGVJbmNyZW1lbnQ9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGIsZyksdG4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRlRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZGF0ZUZvcm1hdCJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmRhdGVGb3JtYXQsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5kYXRlRm9ybWF0PW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxrLE0pLHRuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+Im1pbkRhdGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5taW5EYXRlLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UubWluRGF0ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sXyxTKSx0bih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJtYXhEYXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UubWF4RGF0ZSwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLm1heERhdGU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LEwsRSksdG4odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZERhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZGlzYWJsZWREYXRlcyJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmRpc2FibGVkRGF0ZXMsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5kaXNhYmxlZERhdGVzPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxDLHopLHRuKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2Vla1N0YXJ0c09uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4id2Vla1N0YXJ0c09uImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uud2Vla1N0YXJ0c09uLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2Uud2Vla1N0YXJ0c09uPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSwkLEYpLHRuKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJwbGFjZWhvbGRlciJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UucGxhY2Vob2xkZXI9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LEcsWiksdG4odGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJlbmFibGVUaW1lem9uZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmVuYWJsZVRpbWV6b25lLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UuZW5hYmxlVGltZXpvbmU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LEQsUSksdG4odGhpcyxudWxsLGZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ0aW1lem9uZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnRpbWV6b25lLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UudGltZXpvbmU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LFQsVyksdG4odGhpcyxudWxsLHBlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZXZlbnRzImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZXZlbnRzLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UuZXZlbnRzPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxtZSxxKSx0bih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iaXNPcGVuZWQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5pc09wZW5lZCwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLmlzT3BlbmVkPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxVLGopLHRuKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InNlbGVjdGVkRGF0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnNlbGVjdGVkRGF0ZSwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLnNlbGVjdGVkRGF0ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sWCxKKSx0bih0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InZpZXdEYXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uudmlld0RhdGUsImdldCIpLHNldDppKChfZSxvZSk9PntfZS52aWV3RGF0ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sSyxWKSx0bih0aGlzLG51bGwsbGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEhvdXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJzZWxlY3RlZEhvdXIiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5zZWxlY3RlZEhvdXIsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5zZWxlY3RlZEhvdXI9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LG5lLGVlKSx0bih0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE1pbnV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InNlbGVjdGVkTWludXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uuc2VsZWN0ZWRNaW51dGUsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5zZWxlY3RlZE1pbnV0ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sSGUsR2UpLHRuKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkRlfSxudWxsLHIpLG90PWE9ZS52YWx1ZSxEZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEZX0pfXN0YXRpYyBkZW1vPUlqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9WnIodGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoRGUpe3RoaXMuI2U9RGV9I3Q9KFpyKHRoaXMsbCksWnIodGhpcyxkLCExKSk7Z2V0IGVuYWJsZVRpbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW5hYmxlVGltZShEZSl7dGhpcy4jdD1EZX0jcj0oWnIodGhpcyxmKSxacih0aGlzLGgsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNyfXNldCB0aW1lRm9ybWF0KERlKXt0aGlzLiNyPURlfSNhPShacih0aGlzLG0pLFpyKHRoaXMsYiwxKSk7Z2V0IG1pbnV0ZUluY3JlbWVudCgpe3JldHVybiB0aGlzLiNhfXNldCBtaW51dGVJbmNyZW1lbnQoRGUpe3RoaXMuI2E9RGV9I2k9KFpyKHRoaXMsZyksWnIodGhpcyxrLCJZWVlZLU1NLUREIikpO2dldCBkYXRlRm9ybWF0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGRhdGVGb3JtYXQoRGUpe3RoaXMuI2k9RGV9I3M9KFpyKHRoaXMsTSksWnIodGhpcyxfLCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWluRGF0ZShEZSl7dGhpcy4jcz1EZX0jbj0oWnIodGhpcyxTKSxacih0aGlzLEwsIiIpKTtnZXQgbWF4RGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhEYXRlKERlKXt0aGlzLiNuPURlfSNvPShacih0aGlzLEUpLFpyKHRoaXMsQyxbXSkpO2dldCBkaXNhYmxlZERhdGVzKCl7cmV0dXJuIHRoaXMuI299c2V0IGRpc2FibGVkRGF0ZXMoRGUpe3RoaXMuI289RGV9I2w9KFpyKHRoaXMseiksWnIodGhpcywkLDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHdlZWtTdGFydHNPbihEZSl7dGhpcy4jbD1EZX0jYz0oWnIodGhpcyxGKSxacih0aGlzLEcsIllZWVktTU0tREQiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHBsYWNlaG9sZGVyKERlKXt0aGlzLiNjPURlfSNkPShacih0aGlzLFopLFpyKHRoaXMsRCwhMSkpO2dldCBlbmFibGVUaW1lem9uZSgpe3JldHVybiB0aGlzLiNkfXNldCBlbmFibGVUaW1lem9uZShEZSl7dGhpcy4jZD1EZX0jdT0oWnIodGhpcyxRKSxacih0aGlzLFQsSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lKSk7Z2V0IHRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHRpbWV6b25lKERlKXt0aGlzLiN1PURlfSNwPShacih0aGlzLFcpLFpyKHRoaXMsbWUsW10pKTtnZXQgZXZlbnRzKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGV2ZW50cyhEZSl7dGhpcy4jcD1EZX0jZj0oWnIodGhpcyxxKSxacih0aGlzLFUsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jZn1zZXQgaXNPcGVuZWQoRGUpe3RoaXMuI2Y9RGV9I2g9KFpyKHRoaXMsaiksWnIodGhpcyxYLG51bGwpKTtnZXQgc2VsZWN0ZWREYXRlKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHNlbGVjdGVkRGF0ZShEZSl7dGhpcy4jaD1EZX0jbT0oWnIodGhpcyxKKSxacih0aGlzLEssbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jbX1zZXQgdmlld0RhdGUoRGUpe3RoaXMuI209RGV9I2c9KFpyKHRoaXMsViksWnIodGhpcyxuZSwwKSk7Z2V0IHNlbGVjdGVkSG91cigpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZEhvdXIoRGUpe3RoaXMuI2c9RGV9I2I9KFpyKHRoaXMsZWUpLFpyKHRoaXMsSGUsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNifXNldCBzZWxlY3RlZE1pbnV0ZShEZSl7dGhpcy4jYj1EZX1wb3B1cEluc3RhbmNlPShacih0aGlzLEdlKSxudWxsKTtzdGF0aWMgc3R5bGVzPU5qcjtyZW5kZXIoKXtyZXR1cm4gUmpyKHRoaXMpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWV8fCh0aGlzLnZhbHVlPSIiKSx0aGlzLnZhbHVlKXRyeXtsZXQgRGU9bmV3IERhdGUodGhpcy52YWx1ZSk7aXNOYU4oRGUuZ2V0VGltZSgpKXx8KHRoaXMuc2VsZWN0ZWREYXRlPURlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoRGUpLHRoaXMuc2VsZWN0ZWRIb3VyPURlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1EZS5nZXRNaW51dGVzKCkpfWNhdGNoe31lbHNle2xldCBEZT1uZXcgRGF0ZTt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKERlKSx0aGlzLnNlbGVjdGVkSG91cj1EZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9MH19Zm9ybWF0RGF0ZShEZSl7aWYoIURlKXJldHVybiIiO3RyeXtsZXQgX2U9bmV3IERhdGUoRGUpO2lmKGlzTmFOKF9lLmdldFRpbWUoKSkpcmV0dXJuIiI7bGV0IG9lPXRoaXMuZGF0ZUZvcm1hdCxzZT1fZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksY2U9KF9lLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksVGU9X2UuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO2lmKG9lPW9lLnJlcGxhY2UoIllZWVkiLFRlKSxvZT1vZS5yZXBsYWNlKCJZWSIsVGUuc2xpY2UoLTIpKSxvZT1vZS5yZXBsYWNlKCJNTSIsY2UpLG9lPW9lLnJlcGxhY2UoIkREIixzZSksdGhpcy5lbmFibGVUaW1lKXtsZXQgcWU9X2UuZ2V0SG91cnMoKSxudD1xZT09PTA/MTI6cWU+MTI/cWUtMTI6cWUsdnQ9X2UuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLExlPXFlPj0xMj8iUE0iOiJBTSI7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/b2UrPWAgJHtudH06JHt2dH0gJHtMZX1gOm9lKz1gICR7cWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7dnR9YH1pZih0aGlzLmVuYWJsZVRpbWV6b25lKXtsZXQgdnQ9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmVOYW1lOiJzaG9ydCIsdGltZVpvbmU6dGhpcy50aW1lem9uZX0pLmZvcm1hdFRvUGFydHMoX2UpLmZpbmQoTGU9PkxlLnR5cGU9PT0idGltZVpvbmVOYW1lIik7dnQmJihvZSs9YCAke3Z0LnZhbHVlfWApfXJldHVybiBvZX1jYXRjaHtyZXR1cm4iIn19YXN5bmMgdG9nZ2xlQ2FsZW5kYXIoKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtpZih0aGlzLmlzT3BlbmVkKXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59dGhpcy5pc09wZW5lZD0hMDtsZXQgX2U9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb250YWluZXIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvZT13aW5kb3cuaW5uZXJIZWlnaHQtX2UuYm90dG9tLHNlPV9lLnRvcCxjZT1vZTw0MDAmJnNlPm9lO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgQnBlKSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X2UsdGhpcy5wb3B1cEluc3RhbmNlLm93bmVyQ29tcG9uZW50PXRoaXMsdGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9Y2UsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWU9dGhpcy5lbmFibGVUaW1lLHRoaXMucG9wdXBJbnN0YW5jZS50aW1lRm9ybWF0PXRoaXMudGltZUZvcm1hdCx0aGlzLnBvcHVwSW5zdGFuY2UubWludXRlSW5jcmVtZW50PXRoaXMubWludXRlSW5jcmVtZW50LHRoaXMucG9wdXBJbnN0YW5jZS53ZWVrU3RhcnRzT249dGhpcy53ZWVrU3RhcnRzT24sdGhpcy5wb3B1cEluc3RhbmNlLm1pbkRhdGU9dGhpcy5taW5EYXRlLHRoaXMucG9wdXBJbnN0YW5jZS5tYXhEYXRlPXRoaXMubWF4RGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2UuZGlzYWJsZWREYXRlcz10aGlzLmRpc2FibGVkRGF0ZXMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWV6b25lPXRoaXMuZW5hYmxlVGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLnRpbWV6b25lPXRoaXMudGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLmV2ZW50cz10aGlzLmV2ZW50cyx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWREYXRlPXRoaXMuc2VsZWN0ZWREYXRlLHRoaXMucG9wdXBJbnN0YW5jZS52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlKSx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWRIb3VyPXRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMucG9wdXBJbnN0YW5jZS5zZWxlY3RlZE1pbnV0ZT10aGlzLnNlbGVjdGVkTWludXRlLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSxhd2FpdCB0aGlzLnBvcHVwSW5zdGFuY2Uuc2hvdygpfWNsb3NlUG9wdXAoKXt0aGlzLmlzT3BlbmVkPSExLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuaGlkZSgpKX1oYW5kbGVEYXRlU2VsZWN0ZWQ9aShEZT0+e2xldCBfZT1EZS5kZXRhaWw7dGhpcy5zZWxlY3RlZERhdGU9X2UsdGhpcy5zZWxlY3RlZEhvdXI9X2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPV9lLmdldE1pbnV0ZXMoKSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKF9lKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoX2UpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiaGFuZGxlRGF0ZVNlbGVjdGVkIik7aGFuZGxlRGF0ZUNsZWFyZWQ9aSgoKT0+e3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImhhbmRsZURhdGVDbGVhcmVkIik7aGFuZGxlQ2xvc2VSZXF1ZXN0PWkoKCk9Pnt0aGlzLmNsb3NlUG9wdXAoKX0sImhhbmRsZUNsb3NlUmVxdWVzdCIpO2hhbmRsZVJlcG9zaXRpb25SZXF1ZXN0PWkoKCk9PntpZighdGhpcy5wb3B1cEluc3RhbmNlfHwhdGhpcy5pc09wZW5lZClyZXR1cm47bGV0IERlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIik7aWYoIURlKXJldHVybjtsZXQgX2U9RGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoX2UuYm90dG9tPDB8fF9lLnRvcD53aW5kb3cuaW5uZXJIZWlnaHQpe3RoaXMuY2xvc2VQb3B1cCgpO3JldHVybn1sZXQgb2U9d2luZG93LmlubmVySGVpZ2h0LV9lLmJvdHRvbSxzZT1fZS50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9b2U8NDAwJiZzZT5vZSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X2V9LCJoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCIpO2hhbmRsZUtleWRvd24oRGUpe0RlLmtleT09PSJFbnRlciJ8fERlLmtleT09PSIgIj8oRGUucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOkRlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmlzT3BlbmVkJiYoRGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlUG9wdXAoKSl9Y2xlYXJWYWx1ZShEZSl7RGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWhhbmRsZU1hbnVhbElucHV0KERlKXtsZXQgb2U9RGUudGFyZ2V0LnZhbHVlLnRyaW0oKTtpZighb2Upe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbDtyZXR1cm59bGV0IHNlPXRoaXMucGFyc2VNYW51YWxEYXRlKG9lKTtzZSYmIWlzTmFOKHNlLmdldFRpbWUoKSkmJih0aGlzLnZhbHVlPXNlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9c2UsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShzZSksdGhpcy5zZWxlY3RlZEhvdXI9c2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPXNlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9aGFuZGxlSW5wdXRCbHVyKERlKXtsZXQgX2U9RGUudGFyZ2V0LG9lPV9lLnZhbHVlLnRyaW0oKTtpZighb2Upe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtyZXR1cm59bGV0IHNlPXRoaXMucGFyc2VNYW51YWxEYXRlKG9lKTtzZSYmIWlzTmFOKHNlLmdldFRpbWUoKSk/KHRoaXMudmFsdWU9c2UudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT1zZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHNlKSx0aGlzLnNlbGVjdGVkSG91cj1zZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9c2UuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLF9lLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKSk6X2UudmFsdWU9dGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpfXBhcnNlTWFudWFsRGF0ZShEZSl7aWYoIURlKXJldHVybiBudWxsO2xldCBfZT1EZS5zcGxpdCgiICIpLG9lPV9lWzBdLHNlPV9lWzFdfHwiIixjZT1udWxsLFRlPW9lLm1hdGNoKC9eKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pJC8pO2lmKFRlKXtsZXRbcWUsbnQsdnQsTGVdPVRlO2NlPW5ldyBEYXRlKHBhcnNlSW50KG50KSxwYXJzZUludCh2dCktMSxwYXJzZUludChMZSkpfWlmKCFjZSl7bGV0IHFlPW9lLm1hdGNoKC9eKFxkezEsMn0pXC4oXGR7MSwyfSlcLihcZHs0fSkkLyk7aWYocWUpe2xldFtudCx2dCxMZSx3ZV09cWU7Y2U9bmV3IERhdGUocGFyc2VJbnQod2UpLHBhcnNlSW50KExlKS0xLHBhcnNlSW50KHZ0KSl9fWlmKCFjZSl7bGV0IHFlPW9lLm1hdGNoKC9eKFxkezEsMn0pXC8oXGR7MSwyfSlcLyhcZHs0fSkkLyk7aWYocWUpe2xldFtudCx2dCxMZSx3ZV09cWU7Y2U9bmV3IERhdGUocGFyc2VJbnQod2UpLHBhcnNlSW50KHZ0KS0xLHBhcnNlSW50KExlKSl9fWlmKCFjZXx8aXNOYU4oY2UuZ2V0VGltZSgpKSlyZXR1cm4gbnVsbDtpZihzZSl7bGV0IHFlPXNlLm1hdGNoKC9eKFxkezEsMn0pOihcZHsyfSkkLyk7aWYocWUpe2xldFtudCx2dCxMZV09cWU7Y2Uuc2V0SG91cnMocGFyc2VJbnQodnQpKSxjZS5zZXRNaW51dGVzKHBhcnNlSW50KExlKSl9fWVsc2UgaWYoIXRoaXMuZW5hYmxlVGltZSl7bGV0IHFlPW5ldyBEYXRlO2NlLnNldEhvdXJzKHFlLmdldEhvdXJzKCkpLGNlLnNldE1pbnV0ZXMocWUuZ2V0TWludXRlcygpKSxjZS5zZXRTZWNvbmRzKDApLGNlLnNldE1pbGxpc2Vjb25kcygwKX1yZXR1cm4gY2V9Zm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoRGUpe2lmKCF0aGlzLmVuYWJsZVRpbWV6b25lKXJldHVybiBEZS50b0lTT1N0cmluZygpO2xldCBvZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt5ZWFyOiJudW1lcmljIixtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iixob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsaG91cjEyOiExLHRpbWVab25lOnRoaXMudGltZXpvbmUsdGltZVpvbmVOYW1lOiJzaG9ydCJ9KS5mb3JtYXRUb1BhcnRzKERlKSxzZT17fTtvZS5mb3JFYWNoKHFlPT57c2VbcWUudHlwZV09cWUudmFsdWV9KTtsZXQgY2U9YCR7c2UueWVhcn0tJHtzZS5tb250aH0tJHtzZS5kYXl9VCR7c2UuaG91cn06JHtzZS5taW51dGV9OiR7c2Uuc2Vjb25kfWAsVGU9dGhpcy5nZXRUaW1lem9uZU9mZnNldChEZSx0aGlzLnRpbWV6b25lKTtyZXR1cm5gJHtjZX0ke1RlfWB9Z2V0VGltZXpvbmVPZmZzZXQoRGUsX2Upe2xldCBvZT1uZXcgRGF0ZShEZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZTpfZX0pKSxzZT1uZXcgRGF0ZShEZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZToiVVRDIn0pKSxjZT0ob2UuZ2V0VGltZSgpLXNlLmdldFRpbWUoKSkvKDFlMyo2MCksVGU9TWF0aC5mbG9vcihNYXRoLmFicyhjZSkvNjApLHFlPU1hdGguYWJzKGNlKSU2MDtyZXR1cm5gJHtjZT49MD8iKyI6Ii0ifSR7VGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7cWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKERlKXtpZih0aGlzLnZhbHVlPURlLERlKXRyeXtsZXQgX2U9bmV3IERhdGUoRGUpO2lzTmFOKF9lLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1fZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKF9lKSx0aGlzLnNlbGVjdGVkSG91cj1fZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9X2UuZ2V0TWludXRlcygpKX1jYXRjaHt9fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje1pyKGEscil9fTtyZXR1cm4gb3Q9YX0pKCl9KTt2YXIgcXBlPXUoKCk9PntJNnQoKTtQNnQoKX0pO3ZhciBCanIsSGpyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtCanI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke3JlYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuaW50ZXJhY3RpdmUtc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLChzPT57Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBjaGFuZ2VkIHRvOmAsYS5nZXRWYWx1ZSgpKX0pKSxhLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBsb3N0IGZvY3VzYCl9KX0pLHQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0icGFzc3dvcmQiXScpJiZjb25zb2xlLmxvZygiUGFzc3dvcmQgaW5wdXQgaW5jbHVkZXMgdmlzaWJpbGl0eSB0b2dnbGUiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVGV4dCBJbnB1dHMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgdGV4dCBpbnB1dHMgd2l0aCBsYWJlbHMgYW5kIGRlc2NyaXB0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJVc2VybmFtZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJqb2huZG9lIn0KICAgICAgICAgICAgLmtleT0keyJ1c2VybmFtZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJZb3VyIHVzZXJuYW1lIHdpbGwgYmUgdmlzaWJsZSB0byBvdGhlciB1c2VycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJqb2huQGV4YW1wbGUuY29tIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IldlIHdpbGwgbmV2ZXIgc2hhcmUgeW91ciBlbWFpbCB3aXRoIGFueW9uZSJ9CiAgICAgICAgICAgIC5rZXk9JHsiZW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlBhc3N3b3JkIn0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzZWNyZXQxMjMifQogICAgICAgICAgICAua2V5PSR7InBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKHM9PntsZXQgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzKTtjb25zb2xlLmxvZyhgSG9yaXpvbnRhbCBpbnB1dCAiJHtzLmxhYmVsfSIgZGlzcGxheTpgLG4uZGlzcGxheSl9KTtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtrZXk9ImZpcnN0TmFtZSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtrZXk9Imxhc3ROYW1lIl0nKTtpZihyJiZhKXtsZXQgcz1pKCgpPT57bGV0IG49ci5nZXRWYWx1ZSgpLG89YS5nZXRWYWx1ZSgpO2NvbnNvbGUubG9nKGBGdWxsIG5hbWU6ICR7bn0gJHtvfWApfSwidXBkYXRlRnVsbE5hbWUiKTtyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLHMpLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIscyl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkZpcnN0IE5hbWUifQogICAgICAgICAgICAgIC52YWx1ZT0keyJKb2huIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7ImZpcnN0TmFtZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAubGFiZWw9JHsiTGFzdCBOYW1lIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiRG9lIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Imxhc3ROYW1lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZ2UifQogICAgICAgICAgICAgIC52YWx1ZT0keyIyOCJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJhZ2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKGE9PntsZXQgcz1hLmxhYmVsUG9zaXRpb247Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBoYXMgbGFiZWwgcG9zaXRpb246ICR7c31gKX0pO2xldCByPXQucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1pbnB1dC10ZXh0W2xhYmVsUG9zaXRpb249ImxlZnQiXScpO3IubGVuZ3RoPjAmJmNvbnNvbGUubG9nKGAke3IubGVuZ3RofSBpbnB1dHMgaGF2ZSBsZWZ0LWFsaWduZWQgbGFiZWxzIGZvciBpbmxpbmUgbGF5b3V0YCl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhYmVsIFBvc2l0aW9ucyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgbGFiZWwgcG9zaXRpb25pbmcgb3B0aW9ucyBmb3IgdmFyaW91cyBsYXlvdXRzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIFRvcCAoRGVmYXVsdCkifQogICAgICAgICAgICAudmFsdWU9JHsiU3RhbmRhcmQgbGF5b3V0In0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsidG9wIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJMYWJlbCBvbiBMZWZ0In0KICAgICAgICAgICAgLnZhbHVlPSR7IklubGluZSBsYWJlbCJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkNpdHkifQogICAgICAgICAgICAudmFsdWU9JHsiTmV3IFlvcmsifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJaSVAgQ29kZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyIxMDAwMSJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmFsaWRhdGlvbiBzdGF0ZXMgYW5kIGlucHV0IGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWRGaWVsZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRmllbGQifQogICAgICAgICAgICAudmFsdWU9JHsiQ2Fubm90IGVkaXQgdGhpcyJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIHdpdGggVmFsaWRhdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJpbnZhbGlkQCJ9CiAgICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHt0PT4vXlteXHNAXStAW15cc0BdK1wuW15cc0BdKyQvLnRlc3QodCk/e3ZhbGlkOiEwLG1lc3NhZ2U6IkVtYWlsIGFkZHJlc3MgaXMgdmFsaWQifTp7dmFsaWQ6ITEsbWVzc2FnZToiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dFtpc1Bhc3N3b3JkQm9vbF0iKS5mb3JFYWNoKHI9PntsZXQgYT1yLHM9aSgoKT0+e2xldCBuPWEuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgUGFzc3dvcmQgZmllbGQgIiR7YS5sYWJlbH0iIHR5cGU6YCxuLnR5cGUpfSwiY2hlY2tUb2dnbGUiKTtpZihhLnNoYWRvd1Jvb3Qpe2xldCBuPW5ldyBNdXRhdGlvbk9ic2VydmVyKHMpLG89YS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7byYmbi5vYnNlcnZlKG8se2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsidHlwZSJdfSl9fSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkFkdmFuY2VkIEZlYXR1cmVzIn0gLnN1YnRpdGxlPSR7IlBhc3N3b3JkIHZpc2liaWxpdHkgdG9nZ2xlIGFuZCBvdGhlciBhZHZhbmNlZCBmZWF0dXJlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQYXNzd29yZCB3aXRoIFRvZ2dsZSJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsibXlTZWN1cmVQYXNzd29yZDEyMyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJDbGljayB0aGUgZXllIGljb24gdG8gc2hvdy9oaWRlIHBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJBUEkgS2V5In0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzay0xMjM0NTY3ODkwYWJjZGVmIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IktlZXAgdGhpcyBrZXkgc2VjdXJlIGFuZCBuZXZlciBzaGFyZSBpdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iikscj10LnF1ZXJ5U2VsZWN0b3IoIiN0ZXh0LWlucHV0LW91dHB1dCIpO2UmJnImJmUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9PntyLnRleHRDb250ZW50PWBDdXJyZW50IHZhbHVlOiAiJHtlLmdldFZhbHVlKCl9ImB9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUcnkgdHlwaW5nIGluIHRoZSBpbnB1dCB0byBzZWUgcmVhbC10aW1lIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAubGFiZWw9JHsiRHluYW1pYyBJbnB1dCJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9InRleHQtaW5wdXQtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkN1cnJlbnQgdmFsdWU6ICIiPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBYNCwkbixWcGUsRnA9dSgoKT0+e2ZjKCk7Q2koKTtIanIoKTtfcygpO3ZlKCk7bHQoKTtzcygpO1g0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSwkbj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sVnBlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC10ZXh0IildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W107dmFyIEE9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRleHQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGM9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHA9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHY9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0seT1bUCh7cmVmbGVjdDohMH0pXSxOPVtQKHthdHRyaWJ1dGU6ITF9KV0sTz1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sQj1bUCh7YXR0cmlidXRlOiExfSldLFg0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InZhbHVlImluIEYsImhhcyIpLGdldDppKEY9PkYudmFsdWUsImdldCIpLHNldDppKChGLFkpPT57Ri52YWx1ZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksWDQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4iaXNQYXNzd29yZEJvb2wiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5pc1Bhc3N3b3JkQm9vbCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmlzUGFzc3dvcmRCb29sPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCxmKSxYNCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InNob3dQYXNzd29yZEJvb2wiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zaG93UGFzc3dvcmRCb29sLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0Yuc2hvd1Bhc3N3b3JkQm9vbD1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGgsbSksWDQodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InZhbGlkYXRpb25TdGF0ZSJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnZhbGlkYXRpb25TdGF0ZSwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnZhbGlkYXRpb25TdGF0ZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGIsZyksWDQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4idmFsaWRhdGlvblRleHQiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri52YWxpZGF0aW9uVGV4dCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnZhbGlkYXRpb25UZXh0PVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sayxNKSxYNCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25GdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4idmFsaWRhdGlvbkZ1bmN0aW9uImluIEYsImhhcyIpLGdldDppKEY9PkYudmFsaWRhdGlvbkZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YudmFsaWRhdGlvbkZ1bmN0aW9uPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sXyxTKSxYNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpbnRlZ3JhdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJ2aW50ZWdyYXRlZCJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnZpbnRlZ3JhdGVkLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YudmludGVncmF0ZWQ9WX0sInNldCIpfSxtZXRhZGF0YTokfSxMLEUpLFg0KHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRDb25maXJtZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InZhbGlkQ29uZmlybWVkImluIEYsImhhcyIpLGdldDppKEY9PkYudmFsaWRDb25maXJtZWQsImdldCIpLHNldDppKChGLFkpPT57Ri52YWxpZENvbmZpcm1lZD1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMseiksWDQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCxyKSxBPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1CanI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPSRuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCQpe3RoaXMuI2U9JH0jdD0oJG4odGhpcyxsKSwkbih0aGlzLGQsITEpKTtnZXQgaXNQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNQYXNzd29yZEJvb2woJCl7dGhpcy4jdD0kfSNyPSgkbih0aGlzLGYpLCRuKHRoaXMsaCwhMSkpO2dldCBzaG93UGFzc3dvcmRCb29sKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dQYXNzd29yZEJvb2woJCl7dGhpcy4jcj0kfSNhPSgkbih0aGlzLG0pLCRuKHRoaXMsYix2b2lkIDApKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHZhbGlkYXRpb25TdGF0ZSgkKXt0aGlzLiNhPSR9I2k9KCRuKHRoaXMsZyksJG4odGhpcyxrLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbGlkYXRpb25UZXh0KCQpe3RoaXMuI2k9JH0jcz0oJG4odGhpcyxNKSwkbih0aGlzLF8sdm9pZCAwKSk7Z2V0IHZhbGlkYXRpb25GdW5jdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCB2YWxpZGF0aW9uRnVuY3Rpb24oJCl7dGhpcy4jcz0kfSNuPSgkbih0aGlzLFMpLCRuKHRoaXMsTCwhMSkpO2dldCB2aW50ZWdyYXRlZCgpe3JldHVybiB0aGlzLiNufXNldCB2aW50ZWdyYXRlZCgkKXt0aGlzLiNuPSR9I289KCRuKHRoaXMsRSksJG4odGhpcyxDLCExKSk7Z2V0IHZhbGlkQ29uZmlybWVkKCl7cmV0dXJuIHRoaXMuI299c2V0IHZhbGlkQ29uZmlybWVkKCQpe3RoaXMuI289JH12YWxpZFRpbWVvdXQ9JG4odGhpcyx6KTtzdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KDpmb2N1cykgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBQYXNzd29yZCB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5zaG93UGFzc3dvcmQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMXB4OwogICAgICAgIHRvcDogMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzOHB4OwogICAgICAgIGhlaWdodDogMzhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7CiAgICAgIH0KCiAgICAgIC5zaG93UGFzc3dvcmQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZCBjaGVja21hcmsgaWNvbiAqLwogICAgICAudmFsaWRJY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgICAgdG9wOiAyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAudmFsaWRJY29uLnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC52YWxpZEljb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci5pbnZhbGlkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjEpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci53YXJuIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjEpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEVycm9yIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJpbnZhbGlkIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9ImludmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4wNSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBXYXJuaW5nIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ3YXJuIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9Indhcm4iXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4wNSkiLCJoc2woMjUgOTUlIDYzJSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZCBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0idmFsaWQiXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ2YWxpZCJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjA1KSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBWaXN1YWxseSBpbnRlZ3JhdGVkIG1vZGU6IHNoZWQgY2hyb21lIHRvIGJsZW5kIGludG8gYSBob3N0IGNvbXBvbmVudAogICAgICAgICAoZS5nLiBhIGRlZXMtdGFibGUgY2VsbCBpbiBlZGl0IG1vZGUpLiAqLwogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBkZWVzLWxhYmVsLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KDpmb2N1cyksCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2hvd1Bhc3N3b3JkIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIGlucHV0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAke3RoaXMuaXNQYXNzd29yZEJvb2w/bTk6ImluaGVyaXQifTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAke3RoaXMuaXNQYXNzd29yZEJvb2w/IjAuNXB4Ijoibm9ybWFsIn07CiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAke3RoaXMuaXNQYXNzd29yZEJvb2w/IjQ4cHgiOnRoaXMudmFsaWRDb25maXJtZWQ/IjQwcHgiOiIxMnB4In07CiAgICAgICAgfQogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dCYmIXRoaXMudmFsaWRDb25maXJtZWQ/cmVgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGA6cmVgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSIke3RoaXMuaXNQYXNzd29yZEJvb2wmJiF0aGlzLnNob3dQYXNzd29yZEJvb2w/InBhc3N3b3JkIjoidGV4dCJ9IgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy51cGRhdGVWYWx1ZX0iCiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIke3RoaXMubGFiZWw/IiI6IkVudGVyIHRleHQuLi4ifSIKICAgICAgICAgIC8+CiAgICAgICAgICAke3RoaXMuaXNQYXNzd29yZEJvb2w/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3dQYXNzd29yZCIgQGNsaWNrPSR7dGhpcy50b2dnbGVQYXNzd29yZFZpZXd9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5zaG93UGFzc3dvcmRCb29sPyJsdWNpZGU6RXllIjoibHVjaWRlOkV5ZU9mZiJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZEljb24gJHt0aGlzLnZhbGlkQ29uZmlybWVkPyJzaG93IjoiIn0iPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIgJHt0aGlzLnZhbGlkYXRpb25TdGF0ZXx8ImludmFsaWQifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyIj48L2Rpdj5gfQogICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbGlkYXRpb25GdW5jdGlvbiYmdGhpcy52YWx1ZSl7bGV0ICQ9dGhpcy52YWxpZGF0aW9uRnVuY3Rpb24odGhpcy52YWx1ZSk7dGhpcy52YWxpZGF0aW9uU3RhdGU9JC52YWxpZD8idmFsaWQiOiJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25UZXh0PSQubWVzc2FnZXx8IiIsJC52YWxpZCYmKHRoaXMudmFsaWRDb25maXJtZWQ9ITEsdGhpcy52YWxpZFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudmFsaWRDb25maXJtZWQ9ITAsdGhpcy52YWxpZGF0aW9uU3RhdGU9dm9pZCAwfSw1MDApKX19YXN5bmMgdXBkYXRlVmFsdWUoJCl7bGV0IEY9JC50YXJnZXQ7aWYodGhpcy52YWx1ZT1GLnZhbHVlLHRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uKXtsZXQgWT10aGlzLnZhbGlkYXRpb25GdW5jdGlvbih0aGlzLnZhbHVlKTt0aGlzLnZhbGlkYXRpb25TdGF0ZT1ZLnZhbGlkPyJ2YWxpZCI6ImludmFsaWQiLHRoaXMudmFsaWRhdGlvblRleHQ9WS5tZXNzYWdlfHwiIixZLnZhbGlkPyh0aGlzLnZhbGlkQ29uZmlybWVkPSExLGNsZWFyVGltZW91dCh0aGlzLnZhbGlkVGltZW91dCksdGhpcy52YWxpZFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudmFsaWRDb25maXJtZWQ9ITAsdGhpcy52YWxpZGF0aW9uU3RhdGU9dm9pZCAwfSw1MDApKTooY2xlYXJUaW1lb3V0KHRoaXMudmFsaWRUaW1lb3V0KSx0aGlzLnZhbGlkQ29uZmlybWVkPSExKX10aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IiksRj0kLnNlbGVjdGlvblN0YXJ0IT09JC5zZWxlY3Rpb25FbmQ7cmV0dXJuW3tuYW1lOiJDdXQiLGljb25OYW1lOiJsdWNpZGU6U2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsZGlzYWJsZWQ6IUYsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBZPXRoaXMudmFsdWUuc3Vic3RyaW5nKCQuc2VsZWN0aW9uU3RhcnQsJC5zZWxlY3Rpb25FbmQpO2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KFkpO2xldCBHPSQuc2VsZWN0aW9uU3RhcnQ7dGhpcy52YWx1ZT10aGlzLnZhbHVlLnN1YnN0cmluZygwLEcpK3RoaXMudmFsdWUuc3Vic3RyaW5nKCQuc2VsZWN0aW9uRW5kKSwkLnZhbHVlPXRoaXMudmFsdWUsJC5zZXRTZWxlY3Rpb25SYW5nZShHLEcpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsZGlzYWJsZWQ6IUYsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBZPXRoaXMudmFsdWUuc3Vic3RyaW5nKCQuc2VsZWN0aW9uU3RhcnQsJC5zZWxlY3Rpb25FbmQpO2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KFkpfSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpDbGlwYm9hcmRQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT57bGV0IFk9YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgpLEc9JC5zZWxlY3Rpb25TdGFydCxaPSQuc2VsZWN0aW9uRW5kO3RoaXMudmFsdWU9dGhpcy52YWx1ZS5zdWJzdHJpbmcoMCxHKStZK3RoaXMudmFsdWUuc3Vic3RyaW5nKFopLCQudmFsdWU9dGhpcy52YWx1ZSwkLnNldFNlbGVjdGlvblJhbmdlKEcrWS5sZW5ndGgsRytZLmxlbmd0aCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZWxlY3QgQWxsIixpY29uTmFtZToibHVjaWRlOlRleHRDdXJzb3JJbnB1dCIsc2hvcnRjdXQ6IkNtZCtBIixhY3Rpb246aShhc3luYygpPT57JC5zZWxlY3QoKX0sImFjdGlvbiIpfV19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSgkKXt0aGlzLnZhbHVlPSR9YXN5bmMgdG9nZ2xlUGFzc3dvcmRWaWV3KCl7dGhpcy5zaG93UGFzc3dvcmRCb29sPSF0aGlzLnNob3dQYXNzd29yZEJvb2x9YXN5bmMgZm9jdXMoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpfWFzeW5jIGJsdXIoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5ibHVyKCl9c3RhdGljeyRuKGEscil9fTtyZXR1cm4gQT1hfSkoKX0pO3ZhciBxanIsVmpyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtxanI9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb2R1Y3QtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RlZC1wcm9kdWN0cyB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcHJvZHVjdCBkaXNwbGF5IHdpdGggdmFyaW91cyBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiV2lyZWxlc3MgQmx1ZXRvb3RoIEhlYWRwaG9uZXMiLGNhdGVnb3J5OiJBdWRpbyIsZGVzY3JpcHRpb246IlByZW1pdW0gc291bmQgcXVhbGl0eSB3aXRoIGFjdGl2ZSBub2lzZSBjYW5jZWxsYXRpb24iLHByaWNlOjE0OS45OSxvcmlnaW5hbFByaWNlOjE5OS45OSxpY29uTmFtZToibHVjaWRlOmhlYWRwaG9uZXMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNtYXJ0IFdhdGNoIFNlcmllcyA3IixjYXRlZ29yeToiV2VhcmFibGVzIixkZXNjcmlwdGlvbjoiVHJhY2sgeW91ciBmaXRuZXNzIGFuZCBzdGF5IGNvbm5lY3RlZCBvbiB0aGUgZ28iLHByaWNlOjM5OSxpY29uTmFtZToibHVjaWRlOndhdGNoIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJVU0ItQyBIdWIiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIscHJpY2U6NDkuOTksaWNvbk5hbWU6Imx1Y2lkZTp1c2IiLGluU3RvY2s6ITF9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIFNob3BwaW5nIENhcnQifSAuc3VidGl0bGU9JHsiUHJvZHVjdCBjYXJkcyB3aXRoIGR5bmFtaWMgY2FydCBjYWxjdWxhdGlvbiJ9IC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT1be2lkOiJsYXB0b3AiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOidNYWNCb29rIFBybyAxNCInLGNhdGVnb3J5OiJDb21wdXRlcnMiLGRlc2NyaXB0aW9uOiJNMyBQcm8gY2hpcCB3aXRoIDE4R0IgUkFNIixwcmljZToxOTk5LG9yaWdpbmFsUHJpY2U6MjE5OSxpY29uTmFtZToibHVjaWRlOmxhcHRvcCJ9fSx7aWQ6ImlwYWQiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fSx7aWQ6ImtleWJvYXJkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiTWFnaWMgS2V5Ym9hcmQiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IldpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQiLHByaWNlOjE0OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19XSxyPWkoKCk9PntsZXQgYT0wLHM9W107ZS5mb3JFYWNoKG89PntsZXQgbD10LnF1ZXJ5U2VsZWN0b3IoYCMke28uaWR9YCk7aWYobCYmbC5xdWFudGl0eT4wKXtsZXQgYz1vLmRhdGEucHJpY2UqbC5xdWFudGl0eTthKz1jLHMucHVzaChgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3Bhbj4ke28uZGF0YS5uYW1lfSAoJHtsLnF1YW50aXR5fSk8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPiQke2MudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX19KTtsZXQgbj10LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkiKTtuJiYobi5pbm5lckhUTUw9YAogICAgICAgICAgICAgICR7cy5qb2luKCIiKX0KICAgICAgICAgICAgICAke3MubGVuZ3RoPT09MD8nPGRpdiBjbGFzcz0iY2FydC1pdGVtIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTsiPllvdXIgY2FydCBpcyBlbXB0eTwvZGl2Pic6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC10b3RhbCI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2EudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfSwidXBkYXRlQ2FydFN1bW1hcnkiKTtzZXRUaW1lb3V0KHIsMTAwKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoInF1YW50aXR5Q2hhbmdlIixyKX0pfX0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJsYXB0b3AiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOidNYWNCb29rIFBybyAxNCInLGNhdGVnb3J5OiJDb21wdXRlcnMiLGRlc2NyaXB0aW9uOiJNMyBQcm8gY2hpcCB3aXRoIDE4R0IgUkFNIixwcmljZToxOTk5LG9yaWdpbmFsUHJpY2U6MjE5OSxpY29uTmFtZToibHVjaWRlOmxhcHRvcCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0iaXBhZCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6ImlQYWQgQWlyIixjYXRlZ29yeToiVGFibGV0cyIsZGVzY3JpcHRpb246JzEwLjkiIExpcXVpZCBSZXRpbmEgZGlzcGxheScscHJpY2U6NTk5LGljb25OYW1lOiJsdWNpZGU6dGFibGV0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJrZXlib2FyZCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6Ik1hZ2ljIEtleWJvYXJkIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJXaXJlbGVzcyBrZXlib2FyZCB3aXRoIFRvdWNoIElEIixwcmljZToxNDksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgIDxoMyBjbGFzcz0iY2FydC1zdW1tYXJ5LXRpdGxlIj5TaG9wcGluZyBDYXJ0PC9oMz4KICAgICAgICAgIDxkaXYgaWQ9ImludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSI+CiAgICAgICAgICAgIDwhLS0gRHluYW1pY2FsbHkgdXBkYXRlZCAtLT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2VsZWN0YWJsZSBQcm9kdWN0IENhcmRzIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNhcmRzIG9yIGNoZWNrYm94ZXMgdG8gc2VsZWN0IHByb2R1Y3RzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTb255IEFscGhhIDcgSVYiLGNhdGVnb3J5OiJDYW1lcmFzIixkZXNjcmlwdGlvbjoiRnVsbC1mcmFtZSBtaXJyb3JsZXNzIGNhbWVyYSIscHJpY2U6MjQ5OCxpY29uTmFtZToibHVjaWRlOmNhbWVyYSJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxhPVtdO3IuZm9yRWFjaChzPT57cy5zZWxlY3RlZCYmYS5wdXNoKHMucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PWEubGVuZ3RoPjA/YFNlbGVjdGVkOiAke2Euam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkRKSSBNaW5pIDMgUHJvIixjYXRlZ29yeToiRHJvbmVzIixkZXNjcmlwdGlvbjoiTGlnaHR3ZWlnaHQgZHJvbmUgd2l0aCA0SyBjYW1lcmEiLHByaWNlOjc1OSxpY29uTmFtZToibHVjaWRlOnBsYW5lIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGE9W107ci5mb3JFYWNoKHM9PntzLnNlbGVjdGVkJiZhLnB1c2gocy5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9YS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7YS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiR29Qcm8gSEVSTzEyIixjYXRlZ29yeToiQWN0aW9uIENhbWVyYXMiLGRlc2NyaXB0aW9uOiI1LjNLIHZpZGVvIHdpdGggSHlwZXJTbW9vdGggNi4wIixwcmljZTozOTksb3JpZ2luYWxQcmljZTo0NDksaWNvbk5hbWU6Imx1Y2lkZTp2aWRlbyJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxhPVtdO3IuZm9yRWFjaChzPT57cy5zZWxlY3RlZCYmYS5wdXNoKHMucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PWEubGVuZ3RoPjA/YFNlbGVjdGVkOiAke2Euam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0ZWQtcHJvZHVjdHMiIGlkPSJzZWxlY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgTm8gcHJvZHVjdHMgc2VsZWN0ZWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByb2R1Y3QgVmFyaWF0aW9ucyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTGltaXRlZCBFZGl0aW9uIFNuZWFrZXJzIixjYXRlZ29yeToiRm9vdHdlYXIiLGRlc2NyaXB0aW9uOiJFeGNsdXNpdmUgY29sb3J3YXkgLSBPbmx5IDUwMCBwYWlycyIscHJpY2U6Mjk5LGljb25OYW1lOiJsdWNpZGU6Zm9vdHByaW50cyIsaW5TdG9jazohMSxzdG9ja1RleHQ6IlNvbGQgT3V0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJNaW5pbWFsaXN0IFdhbGxldCIscHJpY2U6MzkuOTksaWNvbk5hbWU6Imx1Y2lkZTp3YWxsZXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlByZW1pdW0gQ29mZmVlIEJlYW5zIixjYXRlZ29yeToiRm9vZCAmIEJldmVyYWdlIixkZXNjcmlwdGlvbjoiU2luZ2xlIG9yaWdpbiwgbWVkaXVtIHJvYXN0IixwcmljZToxOC41LGljb25OYW1lOiJsdWNpZGU6Y29mZmVlIixjdXJyZW5jeToiXHUyMEFDIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgRnksbWMsampyLE42dD11KCgpPT57dmUoKTtWanIoKTtsdCgpO25zKCk7Rnk9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG1jPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxqanI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTaG9wcGluZ1Byb2R1Y3RjYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sRnkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9kdWN0RGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4icHJvZHVjdERhdGEiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5wcm9kdWN0RGF0YSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnByb2R1Y3REYXRhPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxGeSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InF1YW50aXR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJxdWFudGl0eSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnF1YW50aXR5LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MucXVhbnRpdHk9T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLEZ5KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1F1YW50aXR5U2VsZWN0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNob3dRdWFudGl0eVNlbGVjdG9yImluIFMsImhhcyIpLGdldDppKFM9PlMuc2hvd1F1YW50aXR5U2VsZWN0b3IsImdldCIpLHNldDppKChTLE8pPT57Uy5zaG93UXVhbnRpdHlTZWxlY3Rvcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksRnkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RhYmxlImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0YWJsZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNlbGVjdGFibGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEZ5KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWQsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RlZD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssTSksRnkobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxOPWE9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1xanI7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT1tYyh0aGlzLG8se25hbWU6IlByb2R1Y3QgTmFtZSIscHJpY2U6MH0pO2dldCBwcm9kdWN0RGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBwcm9kdWN0RGF0YShfKXt0aGlzLiNlPV99I3Q9KG1jKHRoaXMsbCksbWModGhpcyxkLDApKTtnZXQgcXVhbnRpdHkoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcXVhbnRpdHkoXyl7dGhpcy4jdD1ffSNyPShtYyh0aGlzLGYpLG1jKHRoaXMsaCwhMCkpO2dldCBzaG93UXVhbnRpdHlTZWxlY3Rvcigpe3JldHVybiB0aGlzLiNyfXNldCBzaG93UXVhbnRpdHlTZWxlY3RvcihfKXt0aGlzLiNyPV99I2E9KG1jKHRoaXMsbSksbWModGhpcyxiLCExKSk7Z2V0IHNlbGVjdGFibGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0YWJsZShfKXt0aGlzLiNhPV99I2k9KG1jKHRoaXMsZyksbWModGhpcyxrLCExKSk7Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkKF8pe3RoaXMuI2k9X31zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGFibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGVkOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWhlYWRlci1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucHJvZHVjdC1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJvZHVjdC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucHJvZHVjdC1wcmljZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucHJpY2UtY3VycmVudCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnByaWNlLW9yaWdpbmFsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5pbi1zdG9jayB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5vdXQtb2Ytc3RvY2sgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXR7bmFtZTpfLGNhdGVnb3J5OlMsZGVzY3JpcHRpb246TyxwcmljZTpMLG9yaWdpbmFsUHJpY2U6RSxjdXJyZW5jeTpCPSIkIixpblN0b2NrOkM9ITAsc3RvY2tUZXh0Ono9Qz8iSW4gU3RvY2siOiJPdXQgb2YgU3RvY2siLGltYWdlVXJsOkEsaWNvbk5hbWU6JD0ibHVjaWRlOnBhY2thZ2UifT10aGlzLnByb2R1Y3REYXRhLEY9aShZPT5gJHtCfSR7WS50b0ZpeGVkKDIpfWAsImZvcm1hdFByaWNlIik7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUKICAgICAgICBjbGFzcz0iJHt0aGlzLnNlbGVjdGFibGU/InNlbGVjdGFibGUiOiIifSAke3RoaXMuc2VsZWN0ZWQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDYXJkQ2xpY2t9CiAgICAgID4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InByb2R1Y3QtaGVhZGVyLWJhciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1uYW1lIj4ke199PC9zcGFuPgogICAgICAgICAgJHtTP3dgPHNwYW4gY2xhc3M9InByb2R1Y3QtY2F0ZWdvcnkiPiR7U308L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1pbWFnZSI+CiAgICAgICAgICAgICR7QT93YAogICAgICAgICAgICAgIDxpbWcgc3JjPSIke0F9IiBhbHQ9IiR7X30iPgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyR9PjwvZGVlcy1pY29uPgogICAgICAgICAgICBgfQogICAgICAgICAgICAke3RoaXMuc2VsZWN0YWJsZT93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJzZWxlY3Rpb24tY2hlY2tib3ggJHt0aGlzLnNlbGVjdGVkPyJjaGVja2VkIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHtZPT57WS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnQiPgogICAgICAgICAgICAke08/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWRlc2NyaXB0aW9uIj4ke099PC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0b2NrLXN0YXR1cyAke0M/ImluLXN0b2NrIjoib3V0LW9mLXN0b2NrIn0iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtDPyJsdWNpZGU6Y2hlY2stY2lyY2xlIjoibHVjaWRlOngtY2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgJHt6fQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0icHJvZHVjdC1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1wcmljZSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1jdXJyZW50Ij4ke0YoTCl9PC9zcGFuPgogICAgICAgICAgICAke0UmJkU+TD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1vcmlnaW5hbCI+JHtGKEUpfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnNob3dRdWFudGl0eVNlbGVjdG9yP3dgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnF1YW50aXR5fQogICAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7WT0+e3RoaXMucXVhbnRpdHk9WS5kZXRhaWwuZ2V0VmFsdWUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJxdWFudGl0eUNoYW5nZSIse2RldGFpbDp7cXVhbnRpdHk6dGhpcy5xdWFudGl0eSxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWhhbmRsZUNhcmRDbGljaygpe3RoaXMuc2VsZWN0YWJsZSYmKHRoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpe3RoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG1jKHRoaXMsTSl9c3RhdGlje21jKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBVanIsV2pyPXUoKCk9Pnt2ZSgpO042dCgpO1Vqcj1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3JlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hvcHBpbmctZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBRdWFudGl0eSBTZWxlY3RvciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcXVhbnRpdHkgaW5wdXQgd2l0aCBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik1pbmltdW0gb3JkZXIgcXVhbnRpdHkgaXMgMSBpdGVtIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJJdGVtcyBpbiBDYXJ0In0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkanVzdCB0aGUgcXVhbnRpdHkgb2YgaXRlbXMifQogICAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJNb2Rlcm4gZS1jb21tZXJjZSBwcm9kdWN0IGNhcmRzIHdpdGggaW50ZXJhY3RpdmUgcXVhbnRpdHkgc2VsZWN0b3JzIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPWkoKCk9PntsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIiNoZWFkcGhvbmVzLXF0eSIpLGE9dC5xdWVyeVNlbGVjdG9yKCIjbW91c2UtcXR5Iikscz10LnF1ZXJ5U2VsZWN0b3IoIiNrZXlib2FyZC1xdHkiKSxuPXI/LnF1YW50aXR5fHwwLG89YT8ucXVhbnRpdHl8fDAsbD1zPy5xdWFudGl0eXx8MCxjPTM0OS45OSpuLGQ9OTkuOTkqbyxmPTc5Ljk5KmwscD1jK2QrZixoPXQucXVlcnlTZWxlY3RvcigiI2NhcnQtc3VtbWFyeS1jb250ZW50Iik7aCYmKGguaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke24+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPlNvbnkgV0gtMTAwMFhNNSAoJHtufSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtjLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtvPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Mb2dpdGVjaCBNWCBNYXN0ZXIgM1MgKCR7b30pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7bD4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+S2V5Y2hyb24gSzIgKCR7bH0pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7Zi50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7cD09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtwLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0sInVwZGF0ZUNhcnRTdW1tYXJ5Iik7c2V0VGltZW91dChlLDEwMCksdC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIsZSl9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InNob3BwaW5nLWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImhlYWRwaG9uZXMtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBXSC0xMDAwWE01IFdpcmVsZXNzIEhlYWRwaG9uZXMiLGNhdGVnb3J5OiJBdWRpbyIsZGVzY3JpcHRpb246IkluZHVzdHJ5LWxlYWRpbmcgbm9pc2UgY2FuY2VsaW5nIHdpdGggQXV0byBOQyBPcHRpbWl6ZXIiLHByaWNlOjM0OS45OSxvcmlnaW5hbFByaWNlOjM5OS45OSxpY29uTmFtZToibHVjaWRlOmhlYWRwaG9uZXMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJtb3VzZS1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJMb2dpdGVjaCBNWCBNYXN0ZXIgM1MiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IlBlcmZvcm1hbmNlIHdpcmVsZXNzIG1vdXNlIHdpdGggdWx0cmEtZmFzdCBzY3JvbGxpbmciLHByaWNlOjk5Ljk5LGljb25OYW1lOiJsdWNpZGU6bW91c2UtcG9pbnRlciJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImtleWJvYXJkLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IktleWNocm9uIEsyIFdpcmVsZXNzIE1lY2hhbmljYWwgS2V5Ym9hcmQiLGNhdGVnb3J5OiJLZXlib2FyZHMiLGRlc2NyaXB0aW9uOiJDb21wYWN0IDc1JSBsYXlvdXQgd2l0aCBob3Qtc3dhcHBhYmxlIHN3aXRjaGVzIixwcmljZTo3OS45OSxvcmlnaW5hbFByaWNlOjk0Ljk5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+T3JkZXIgU3VtbWFyeTwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJjYXJ0LXN1bW1hcnktY29udGVudCI+CiAgICAgICAgICAgIDwhLS0gQ29udGVudCB3aWxsIGJlIGR5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24gYW5kIHJlc3RyaWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJOdW1iZXIgb2YgTGljZW5zZXMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiRml4ZWQgUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiVGhpcyBxdWFudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHs1fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3JkZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkN1c3RvbWVyIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyBQbGFuIiwiUHJvIFBsYW4iLCJFbnRlcnByaXNlIFBsYW4iXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiTnVtYmVyIG9mIGxpY2Vuc2VzIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWNpYWwgSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBHanIsTzZ0LGpwZSxSNnQ9dSgoKT0+e3ZlKCk7TXIoKTtDaSgpO1dqcigpO2x0KCk7R2pyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxPNnQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGpwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvciIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sR2pyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZhbHVlImluIGYsImhhcyIpLGdldDppKGY9PmYudmFsdWUsImdldCIpLHNldDppKChmLHApPT57Zi52YWx1ZT1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksR2pyKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89VWpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1PNnQodGhpcyxvLDEpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lciB7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RvciB7CiAgICAgICAgICBmbGV4OiAwIDAgNDBweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvcjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDExJSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IubWludXMgewogICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvci5wbHVzIHsKICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgfQoKICAgICAgICAvKiBLZXlib2FyZCBuYXZpZ2F0aW9uIGZvY3VzIHN0eWxlcyAqLwogICAgICAgIC5zZWxlY3Rvcjpmb2N1cyB7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgei1pbmRleDogMTsKICAgICAgICB9CgogICAgICAgIC8qIE1pbiB2YWx1ZSBzdGF0ZSAqLwogICAgICAgIC5xdWFudGl0eS1jb250YWluZXJbZGF0YS1taW49InRydWUiXSAuc2VsZWN0b3IubWludXMgewogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXJbZGF0YS1taW49InRydWUiXSAuc2VsZWN0b3IubWludXM6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIDxkaXYgCiAgICAgICAgICBjbGFzcz0icXVhbnRpdHktY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgIGRhdGEtbWluPSIke3RoaXMudmFsdWU8PTB9IgogICAgICAgID4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RvciBtaW51cyIgCiAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e3RoaXMuZGVjcmVhc2UoKX19IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7ZD0+eyhkLmtleT09PSJFbnRlciJ8fGQua2V5PT09IiAiKSYmKGQucHJldmVudERlZmF1bHQoKSx0aGlzLmRlY3JlYXNlKCkpfX0iCiAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgYXJpYS1sYWJlbD0iRGVjcmVhc2UgcXVhbnRpdHkiCiAgICAgICAgICA+4oiSPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWFudGl0eSIgYXJpYS1saXZlPSJwb2xpdGUiIGFyaWEtYXRvbWljPSJ0cnVlIj4ke3RoaXMudmFsdWV9PC9kaXY+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2VsZWN0b3IgcGx1cyIgCiAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e3RoaXMuaW5jcmVhc2UoKX19IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7ZD0+eyhkLmtleT09PSJFbnRlciJ8fGQua2V5PT09IiAiKSYmKGQucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlYXNlKCkpfX0iCiAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgYXJpYS1sYWJlbD0iSW5jcmVhc2UgcXVhbnRpdHkiCiAgICAgICAgICA+KzwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aW5jcmVhc2UoKXt0aGlzLmRpc2FibGVkfHwodGhpcy52YWx1ZSsrLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1kZWNyZWFzZSgpeyF0aGlzLmRpc2FibGVkJiZ0aGlzLnZhbHVlPjAmJih0aGlzLnZhbHVlLS0sdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoZCl7dGhpcy52YWx1ZT1kfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxPNnQodGhpcyxsKX1zdGF0aWN7TzZ0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBZanIsS2pyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtZanI9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtZGlzcGxheSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJhZGlvIEdyb3VwcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgc3RyaW5nIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpcHRpb24gUGxhbiJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIC0gJDkvbW9udGgiLCJQcm8gLSAkMjkvbW9udGgiLCJFbnRlcnByaXNlIC0gJDk5L21vbnRoIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlBybyAtICQyOS9tb250aCJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB5b3VyIHN1YnNjcmlwdGlvbiB0aWVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkhpZ2giLCJNZWRpdW0iLCJMb3ciXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTWVkaXVtIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJSYWRpbyBncm91cHMgd2l0aCBob3Jpem9udGFsIGFycmFuZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcz8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWWVzIiwiTm8iLCJNYXliZSJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiWWVzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHBlcmllbmNlIExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJlZ2lubmVyIiwiSW50ZXJtZWRpYXRlIiwiRXhwZXJ0Il19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbnRlcm1lZGlhdGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHlvdXIgZXhwZXJpZW5jZSBsZXZlbCB3aXRoIHdlYiBkZXZlbG9wbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBBZHZhbmNlZCBPcHRpb25zIn0gLnN1YnRpdGxlPSR7IlVzaW5nIG9iamVjdCBmb3JtYXQgd2l0aCBrZXlzIGFuZCBwYXlsb2FkcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIGlkPSJhZHZhbmNlZC1yYWRpbyIKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUmVnaW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMgKFVTIEVhc3QpIixrZXk6InVzLWVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoidXMtZWFzdC0xIixsYXRlbmN5OjIwfX0se29wdGlvbjoiRXVyb3BlIChGcmFua2Z1cnQpIixrZXk6ImV1LWNlbnRyYWwiLHBheWxvYWQ6e3JlZ2lvbjoiZXUtY2VudHJhbC0xIixsYXRlbmN5OjUwfX0se29wdGlvbjoiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpIixrZXk6ImFwLXNvdXRoZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJhcC1zb3V0aGVhc3QtMSIsbGF0ZW5jeToxMjB9fV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZXUtY2VudHJhbCJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIHRoZSBjbG9zZXN0IHJlZ2lvbiBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSJ9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWdpb24tcmVzdWx0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlNlbGVjdGVkOiAiK0pTT04uc3RyaW5naWZ5KHQuZGV0YWlsLnZhbHVlLG51bGwsMikpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPGRpdiBpZD0icmVnaW9uLXJlc3VsdCIgY2xhc3M9InJlc3VsdC1kaXNwbGF5Ij5TZWxlY3RlZDogeyAicmVnaW9uIjogImV1LWNlbnRyYWwtMSIsICJsYXRlbmN5IjogNTAgfTwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3VydmV5IEV4YW1wbGUifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgcmFkaW8gZ3JvdXBzIGZvciBzdXJ2ZXlzIGFuZCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkhvdyBzYXRpc2ZpZWQgYXJlIHlvdT8ifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJWZXJ5IFNhdGlzZmllZCIsIlNhdGlzZmllZCIsIk5ldXRyYWwiLCJEaXNzYXRpc2ZpZWQiLCJWZXJ5IERpc3NhdGlzZmllZCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJTYXRpc2ZpZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IldvdWxkIHlvdSByZWNvbW1lbmQgdXM/In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGVmaW5pdGVseSIsIlByb2JhYmx5IiwiTm90IFN1cmUiLCJQcm9iYWJseSBOb3QiLCJEZWZpbml0ZWx5IE5vdCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm9iYWJseSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gU3RhdGVzICYgVmFsaWRhdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCB2YWxpZGF0aW9uIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgU2VsZWN0aW9uIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siT3B0aW9uIEEiLCJPcHRpb24gQiIsIk9wdGlvbiBDIl19CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIFN0YXRlIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGlzYWJsZWQgT3B0aW9uIDEiLCJEaXNhYmxlZCBPcHRpb24gMiIsIkRpc2FibGVkIE9wdGlvbiAzIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRpc2FibGVkIE9wdGlvbiAyIn0KICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiBwYXR0ZXJucyBpbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJUaGVtZSBQcmVmZXJlbmNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTGlnaHQgVGhlbWUiLGtleToibGlnaHQiLHBheWxvYWQ6ImxpZ2h0In0se29wdGlvbjoiRGFyayBUaGVtZSIsa2V5OiJkYXJrIixwYXlsb2FkOiJkYXJrIn0se29wdGlvbjoiU3lzdGVtIERlZmF1bHQiLGtleToic3lzdGVtIixwYXlsb2FkOiJhdXRvIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZGFyayJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgYXBwZWFyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb24gRnJlcXVlbmN5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkFsbCBOb3RpZmljYXRpb25zIiwiSW1wb3J0YW50IE9ubHkiLCJOb25lIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbXBvcnRhbnQgT25seSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDb250cm9sIGhvdyBvZnRlbiB5b3UgcmVjZWl2ZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbmdsaXNoIiwiR2VybWFuIiwiRnJlbmNoIiwiU3BhbmlzaCIsIkphcGFuZXNlIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiV29ya3Mgc2VhbWxlc3NseSB3aXRoIGRlZXMtZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IE5hbWUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJwcm9kdWN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgQ2F0ZWdvcnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRWxlY3Ryb25pY3MiLCJDbG90aGluZyIsIkJvb2tzIiwiSG9tZSAmIEdhcmRlbiIsIlNwb3J0cyJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJjYXRlZ29yeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJOZXciLCJMaWtlIE5ldyIsIkdvb2QiLCJGYWlyIiwiUG9vciJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJOZXcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJTaGlwcGluZyBTcGVlZCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlN0YW5kYXJkICg1LTcgZGF5cykiLGtleToic3RhbmRhcmQiLHBheWxvYWQ6e2RheXM6NyxwcmljZTowfX0se29wdGlvbjoiRXhwcmVzcyAoMi0zIGRheXMpIixrZXk6ImV4cHJlc3MiLHBheWxvYWQ6e2RheXM6MyxwcmljZToxMH19LHtvcHRpb246Ik92ZXJuaWdodCIsa2V5OiJvdmVybmlnaHQiLHBheWxvYWQ6e2RheXM6MSxwcmljZToyNX19XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7InN0YW5kYXJkIn0KICAgICAgICAgICAgLmtleT0keyJzaGlwcGluZyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBQcm9kdWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgZ3RlLEo0LFVwZSxXcGU9dSgoKT0+e3ZlKCk7Q2koKTtLanIoKTtsdCgpO2d0ZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sSjQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFVwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtcmFkaW9ncm91cCIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRSYWRpb2dyb3VwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKCldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sZ3RlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ib3B0aW9ucyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLm9wdGlvbnMsImdldCIpLHNldDppKChNLE4pPT57TS5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxndGUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic2VsZWN0ZWRPcHRpb24iaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5zZWxlY3RlZE9wdGlvbiwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnNlbGVjdGVkT3B0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxndGUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImRpcmVjdGlvbiJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmRpcmVjdGlvbiwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmRpcmVjdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGgsbSksZ3RlKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJ2YWxpZGF0aW9uU3RhdGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS52YWxpZGF0aW9uU3RhdGUsImdldCIpLHNldDppKChNLE4pPT57TS52YWxpZGF0aW9uU3RhdGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGd0ZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPVlqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9SjQodGhpcyxvLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKGspe3RoaXMuI2U9a30jdD0oSjQodGhpcyxsKSxKNCh0aGlzLGQsIiIpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oayl7dGhpcy4jdD1rfSNyPShKNCh0aGlzLGYpLEo0KHRoaXMsaCwidmVydGljYWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkaXJlY3Rpb24oayl7dGhpcy4jcj1rfSNhPShKNCh0aGlzLG0pLEo0KHRoaXMsYixudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNhfXNldCB2YWxpZGF0aW9uU3RhdGUoayl7dGhpcy4jYT1rfWdldCB2YWx1ZSgpe2xldCBrPXRoaXMuZ2V0T3B0aW9uQnlLZXkodGhpcy5zZWxlY3RlZE9wdGlvbik7cmV0dXJuIHR5cGVvZiBrPT0ib2JqZWN0IiYmay5wYXlsb2FkIT09dm9pZCAwP2sucGF5bG9hZDp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShrKXtpZih0eXBlb2Ygaz09InN0cmluZyIpdGhpcy5zZWxlY3RlZE9wdGlvbj1rO2Vsc2V7bGV0IE09dGhpcy5vcHRpb25zLmZpbmQoTj0+dHlwZW9mIE49PSJvYmplY3QiJiZOLnBheWxvYWQ9PT1rKTtNJiZ0eXBlb2YgTT09Im9iamVjdCImJih0aGlzLnNlbGVjdGVkT3B0aW9uPU0ua2V5KX19c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCAucmFkaW8tb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMjBweCA2cHggMDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGUgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZTpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSAzLjklKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIl0pIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJ2YWxpZCJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0id2FybiJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICB9CgogICAgICAvKiBPdmVycmlkZSBiYXNlIGdyaWQgbGF5b3V0IGZvciByYWRpb2dyb3VwIHRvIHByZXZlbnQgbGFyZ2UgZ2FwcyAqLwogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249ImxlZnQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InJpZ2h0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkaXYgY2xhc3M9ImxhYmVsLXRleHQiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpcmVjdGlvbn0iPgogICAgICAgICAgJHt0aGlzLm9wdGlvbnMubWFwKGs9PntsZXQgTT10aGlzLmdldE9wdGlvbktleShrKSxOPXRoaXMuZ2V0T3B0aW9uTGFiZWwoayksXz10aGlzLnNlbGVjdGVkT3B0aW9uPT09TTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgICAgY2xhc3M9InJhZGlvLW9wdGlvbiAke18/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0T3B0aW9uKE0pfSIKICAgICAgICAgICAgICAgIEBrZXlkb3duPSIke1M9PnRoaXMuaGFuZGxlS2V5ZG93bihTLE0pfSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgICAgICBjbGFzcz0icmFkaW8tY2lyY2xlIiAKICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgICAgICAgIHJvbGU9InJhZGlvIgogICAgICAgICAgICAgICAgICBhcmlhLWNoZWNrZWQ9IiR7X30iCiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IiR7Tn0iCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpby1sYWJlbCI+JHtOfTwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRPcHRpb25LZXkoayl7cmV0dXJuIHR5cGVvZiBrPT0ic3RyaW5nIj9rOmsua2V5fWdldE9wdGlvbkxhYmVsKGspe3JldHVybiB0eXBlb2Ygaz09InN0cmluZyI/azprLm9wdGlvbn1nZXRPcHRpb25CeUtleShrKXtyZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQoTT0+dGhpcy5nZXRPcHRpb25LZXkoTSk9PT1rKX1zZWxlY3RPcHRpb24oayl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IE09dGhpcy5zZWxlY3RlZE9wdGlvbjt0aGlzLnNlbGVjdGVkT3B0aW9uPWssTSE9PWsmJih0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaW5wdXQiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoayl7dGhpcy52YWx1ZT1rfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJiF0aGlzLnNlbGVjdGVkT3B0aW9uPyh0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITEpOih0aGlzLnZhbGlkYXRpb25TdGF0ZT0idmFsaWQiLCEwKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZighdGhpcy5zZWxlY3RlZE9wdGlvbiYmdGhpcy5vcHRpb25zLmxlbmd0aD4wJiYhdGhpcy5yZXF1aXJlZCl7bGV0IGs9dGhpcy5vcHRpb25zWzBdO3RoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5nZXRPcHRpb25LZXkoayl9fWhhbmRsZUtleWRvd24oayxNKXt0aGlzLmRpc2FibGVkfHwoay5rZXk9PT0iICJ8fGsua2V5PT09IkVudGVyIj8oay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2VsZWN0T3B0aW9uKE0pKTprLmtleT09PSJBcnJvd0Rvd24ifHxrLmtleT09PSJBcnJvd1JpZ2h0Ij8oay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNOZXh0T3B0aW9uKCkpOihrLmtleT09PSJBcnJvd1VwInx8ay5rZXk9PT0iQXJyb3dMZWZ0IikmJihrLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c1ByZXZpb3VzT3B0aW9uKCkpKX1mb2N1c05leHRPcHRpb24oKXtsZXQgaz1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIucmFkaW8tY2lyY2xlIikpLE49KGsuZmluZEluZGV4KF89Pl89PT10aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCkrMSklay5sZW5ndGg7a1tOXS5mb2N1cygpfWZvY3VzUHJldmlvdXNPcHRpb24oKXtsZXQgaz1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIucmFkaW8tY2lyY2xlIikpLE09ay5maW5kSW5kZXgoXz0+Xz09PXRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSxOPU08PTA/ay5sZW5ndGgtMTpNLTE7a1tOXS5mb2N1cygpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxKNCh0aGlzLGcpfXN0YXRpY3tKNChhLHIpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgWmpyLFFqcj11KCgpPT57dmUoKTtaanI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDI0cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAjODg4OwogICAgfQogICAgLmRlbW8tcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QmFzaWMgVXNhZ2U8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdGV4dD0iV2l0aCBUZXh0IFByb3BlcnR5Ij48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPldpdGggSWNvbnMgKGluaGVyaXRlZCBmcm9tIERlZXNCdXR0b24pPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIj5TdWJtaXQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNhdmUiIGljb25Qb3NpdGlvbj0ibGVmdCI+U2F2ZSBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTphcnJvdy1yaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBUeXBlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJoaWdobGlnaHRlZCIgaWNvbj0ibHVjaWRlOnNlbmQiPkhpZ2hsaWdodGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJkaXNjcmVldCIgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2NyZWV0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJzbWFsbCIgaWNvbj0ibHVjaWRlOnNlbmQiPlNtYWxsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJsYXJnZSIgaWNvbj0ibHVjaWRlOnNlbmQiPkxhcmdlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TdGF0ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJwZW5kaW5nIiBpY29uPSJsdWNpZGU6c2VuZCI+UGVuZGluZzwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9InN1Y2Nlc3MiIGljb249Imx1Y2lkZTpjaGVjayI+U3VjY2VzczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9ImVycm9yIiBpY29uPSJsdWNpZGU6eCI+RXJyb3I8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgZGlzYWJsZWQgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2FibGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbiBhIEZvcm0gQ29udGV4dDwvaDM+CiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTmFtZSIga2V5PSJuYW1lIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNlbmQiIHR5cGU9ImhpZ2hsaWdodGVkIj5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBCcCxIbyxHcGUsdzk9dSgoKT0+e1FqcigpO3ZlKCk7bHQoKTtCcD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sSG89ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEdwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtZm9ybS1zdWJtaXQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0Zvcm1TdWJtaXQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHk9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sTj1bUCh7dHlwZTpTdHJpbmd9KV0sTz1bUCh7dHlwZTpTdHJpbmd9KV0sQnAodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZGlzYWJsZWQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5kaXNhYmxlZCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmRpc2FibGVkPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxCcCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRleHQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei50ZXh0LCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGV4dD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsZiksQnAodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InN0YXR1cyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnN0YXR1cywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnN0YXR1cz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGgsbSksQnAodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0eXBlImluIHosImhhcyIpLGdldDppKHo9PnoudHlwZSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnR5cGU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxiLGcpLEJwKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2l6ZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNpemUsImdldCIpLHNldDppKCh6LEEpPT57ei5zaXplPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sayxNKSxCcCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Imljb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pY29uLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouaWNvbj1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LF8sUyksQnAodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Imljb25Qb3NpdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lmljb25Qb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6Lmljb25Qb3NpdGlvbj1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LEwsRSksQnAobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxyKSxCPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1aanI7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIiwiQnV0dG9uIl07I2U9SG8odGhpcyxvLCExKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGlzYWJsZWQoQyl7dGhpcy4jZT1DfSN0PShIbyh0aGlzLGwpLEhvKHRoaXMsZCx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KEMpe3RoaXMuI3Q9Q30jcj0oSG8odGhpcyxmKSxIbyh0aGlzLGgsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHN0YXR1cyhDKXt0aGlzLiNyPUN9I2E9KEhvKHRoaXMsbSksSG8odGhpcyxiLCJkZWZhdWx0IikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHR5cGUoQyl7dGhpcy4jYT1DfSNpPShIbyh0aGlzLGcpLEhvKHRoaXMsaywiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNpfXNldCBzaXplKEMpe3RoaXMuI2k9Q30jcz0oSG8odGhpcyxNKSxIbyh0aGlzLF8sdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgaWNvbihDKXt0aGlzLiNzPUN9I249KEhvKHRoaXMsUyksSG8odGhpcyxMLCJsZWZ0IikpO2dldCBpY29uUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgaWNvblBvc2l0aW9uKEMpe3RoaXMuI249Q31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksSG8odGhpcyxFKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgZGVlcy1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgLnN0YXR1cz0ke3RoaXMuc3RhdHVzfQogICAgICAgIC50eXBlPSR7dGhpcy50eXBlfQogICAgICAgIC5zaXplPSR7dGhpcy5zaXplfQogICAgICAgIC5pY29uPSR7dGhpcy5pY29ufQogICAgICAgIC5pY29uUG9zaXRpb249JHt0aGlzLmljb25Qb3NpdGlvbn0KICAgICAgICAudGV4dD0ke3RoaXMudGV4dH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgIEBjbGlja2VkPSR7dGhpcy5zdWJtaXR9CiAgICAgID48L2RlZXMtYnV0dG9uPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZighdGhpcy50ZXh0KXtsZXQgQz10aGlzLnRleHRDb250ZW50Py50cmltKCk7QyYmKHRoaXMudGV4dD1DKX19YXN5bmMgc3VibWl0KCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IEM9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtDJiZDLmdhdGhlckFuZERpc3BhdGNoJiZDLmdhdGhlckFuZERpc3BhdGNoKCl9YXN5bmMgZm9jdXMoKXtsZXQgQz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmRpc2FibGVkfHwoYXdhaXQgQy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWl0KCkpfXN0YXRpY3tIbyhhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgWGpyLEpqcj11KCgpPT57dmUoKTt3YSgpO3duKCk7QnkoKTt3OSgpO1hqcj1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7cmVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnNwYWNlciB7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltsYWJlbD0iU2VsZWN0IENvdW50cnkiXScpLHI9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgUm9sZSJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKGE9Pntjb25zb2xlLmxvZygiQ291bnRyeSBzZWxlY3RlZDoiLGEuZGV0YWlsKX0pKSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2NvbnNvbGUubG9nKCJSb2xlIHNlbGVjdGVkOiIsYS5kZXRhaWwpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBEcm9wZG93bnMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgZHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBhbmQgdmFyaW91cyBvcHRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgQ291bnRyeSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgdGhlIGNvdW50cnkgd2hlcmUgeW91ciBidXNpbmVzcyBpcyByZWdpc3RlcmVkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9LHtvcHRpb246IkNhbmFkYSIsa2V5OiJjYSJ9LHtvcHRpb246Ikdlcm1hbnkiLGtleToiZGUifSx7b3B0aW9uOiJGcmFuY2UiLGtleToiZnIifSx7b3B0aW9uOiJVbml0ZWQgS2luZ2RvbSIsa2V5OiJ1ayJ9LHtvcHRpb246IkF1c3RyYWxpYSIsa2V5OiJhdSJ9LHtvcHRpb246IkphcGFuIixrZXk6ImpwIn0se29wdGlvbjoiQnJhemlsIixrZXk6ImJyIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUm9sZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFkbWluaXN0cmF0b3IiLGtleToiYWRtaW4ifSx7b3B0aW9uOiJFZGl0b3IiLGtleToiZWRpdG9yIn0se29wdGlvbjoiVmlld2VyIixrZXk6InZpZXdlciJ9LHtvcHRpb246Ikd1ZXN0IixrZXk6Imd1ZXN0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHI9Pntjb25zb2xlLmxvZyhgUHJpb3JpdHkgY2hhbmdlZCB0bzogJHtyLmRldGFpbC5vcHRpb259YCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFdpdGhvdXQgU2VhcmNoIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgZGlzYWJsZWQgZm9yIHNpbXBsZXIgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJIaWdoIixrZXk6ImhpZ2gifSx7b3B0aW9uOiJNZWRpdW0iLGtleToibWVkaXVtIn0se29wdGlvbjoiTG93IixrZXk6ImxvdyJ9XX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZHJvcGRvd24iKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2xldCBzPXIuZ2V0QXR0cmlidXRlKCJsYWJlbCIpO2NvbnNvbGUubG9nKGAke3N9OiAke2EuZGV0YWlsLm9wdGlvbn1gKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBkcm9wZG93bnMgaW4gYSBob3Jpem9udGFsIGxheW91dCBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiRGVwYXJ0bWVudCJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5naW5lZXJpbmciLGtleToiZW5nIn0se29wdGlvbjoiRGVzaWduIixrZXk6ImRlc2lnbiJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gU2l6ZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IjEtNSIsa2V5OiJzbWFsbCJ9LHtvcHRpb246IjYtMjAiLGtleToibWVkaXVtIn0se29wdGlvbjoiMjEtNTAiLGtleToibGFyZ2UifSx7b3B0aW9uOiI1MCsiLGtleToieGxhcmdlIn1dfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiTG9jYXRpb24ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlJlbW90ZSIsa2V5OiJyZW1vdGUifSx7b3B0aW9uOiJPbi1zaXRlIixrZXk6Im9uc2l0ZSJ9LHtvcHRpb246Ikh5YnJpZCIsa2V5OiJoeWJyaWQifV19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiUmVxdWlyZWQgZHJvcGRvd24gbG9zdCBmb2N1cyIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiT3B0aW9uIEEiLGtleToiYSJ9LHtvcHRpb246Ik9wdGlvbiBCIixrZXk6ImIifSx7b3B0aW9uOiJPcHRpb24gQyIsa2V5OiJjIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRHJvcGRvd24ifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQ2Fubm90IFNlbGVjdCIsa2V5OiJkaXNhYmxlZCJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiQ2Fubm90IFNlbGVjdCIsa2V5OiJkaXNhYmxlZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICAoU3BhY2VyIHRvIHRlc3QgZHJvcGRvd24gcG9zaXRpb25pbmcpCiAgICA8L2Rpdj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChyPT57Y29uc29sZS5sb2coIkJvdHRvbSBkcm9wZG93biBzZWxlY3RlZDoiLHIuZGV0YWlsKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gQm90dG9tIFBvc2l0aW9uaW5nIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHRoYXQgb3BlbnMgdXB3YXJkIHdoZW4gbmVhciBib3R0b20gb2Ygdmlld3BvcnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7Ik9wZW5zIFVwd2FyZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJGaXJzdCBPcHRpb24iLGtleToiZmlyc3QifSx7b3B0aW9uOiJTZWNvbmQgT3B0aW9uIixrZXk6InNlY29uZCJ9LHtvcHRpb246IlRoaXJkIE9wdGlvbiIsa2V5OiJ0aGlyZCJ9LHtvcHRpb246IkZvdXJ0aCBPcHRpb24iLGtleToiZm91cnRoIn0se29wdGlvbjoiRmlmdGggT3B0aW9uIixrZXk6ImZpZnRoIn1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIikscj10LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7ZSYmciYmKHIuaW5uZXJIVE1MPSI8ZW0+U2VsZWN0IGEgcHJvZHVjdCB0byBzZWUgZGV0YWlscy4uLjwvZW0+IixlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PnthLmRldGFpbC52YWx1ZSYmKHIuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICA8c3Ryb25nPlNlbGVjdGVkOjwvc3Ryb25nPiAke2EuZGV0YWlsLnZhbHVlLm9wdGlvbn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5LZXk6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUua2V5fTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPlByaWNlOjwvc3Ryb25nPiAkJHthLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5wcmljZXx8Ik4vQSJ9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+RmVhdHVyZXM6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUucGF5bG9hZD8uZmVhdHVyZXM/LmpvaW4oIiwgIil8fCJOL0EifQogICAgICAgICAgICBgKX0pKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEV2ZW50IEhhbmRsaW5nICYgUGF5bG9hZCJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3aXRoIHBheWxvYWQgZGF0YSBhbmQgY2hhbmdlIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUHJvZHVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJCYXNpYyBQbGFuIixrZXk6ImJhc2ljIixwYXlsb2FkOntwcmljZTo5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIl19fSx7b3B0aW9uOiJQcm8gUGxhbiIsa2V5OiJwcm8iLHBheWxvYWQ6e3ByaWNlOjE5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIiwiRmVhdHVyZSBCIl19fSx7b3B0aW9uOiJFbnRlcnByaXNlIFBsYW4iLGtleToiZW50ZXJwcmlzZSIscGF5bG9hZDp7cHJpY2U6NDkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiLCJGZWF0dXJlIEMiXX19XX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOyBib3JkZXItcmFkaXVzOiA0cHg7IGZvbnQtc2l6ZTogMTRweDsiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikscj10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJwcm9qZWN0VHlwZSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJmcmFtZXdvcmsiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChzPT57Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLHMuZGV0YWlsLmRhdGEpfSkpLHImJmEmJnIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChzPT57bGV0IG49cy5kZXRhaWwua2V5O2NvbnNvbGUubG9nKGBQcm9qZWN0IHR5cGUgY2hhbmdlZCB0bzogJHtufWApfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdvcmtpbmcgd2l0aGluIGEgZm9ybSB3aXRoIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgVHlwZSJ9CiAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdFR5cGUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIEFwcGxpY2F0aW9uIixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHBsaWNhdGlvbiIsa2V5OiJtb2JpbGUifSx7b3B0aW9uOiJEZXNrdG9wIEFwcGxpY2F0aW9uIixrZXk6ImRlc2t0b3AifSx7b3B0aW9uOiJBUEkgU2VydmljZSIsa2V5OiJhcGkifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGV2ZWxvcG1lbnQgRnJhbWV3b3JrIn0KICAgICAgICAgICAgLmtleT0keyJmcmFtZXdvcmsifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVhY3QiLGtleToicmVhY3QiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJWdWUuanMiLGtleToidnVlIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiQW5ndWxhciIsa2V5OiJhbmd1bGFyIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiUmVhY3QgTmF0aXZlIixrZXk6InJlYWN0LW5hdGl2ZSIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkZsdXR0ZXIiLGtleToiZmx1dHRlciIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkVsZWN0cm9uIixrZXk6ImVsZWN0cm9uIixwYXlsb2FkOnt0eXBlOiJkZXNrdG9wIn19XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IkNyZWF0ZSBQcm9qZWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgZ2MsbHMsWXBlLEY2dD11KCgpPT57dmUoKTtNcigpO09vKCk7X3MoKTtsdCgpO25jKCk7Z2M9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGxzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxZcGU9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LWRyb3Bkb3duLXBvcHVwIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W107dmFyIGRlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREcm9wZG93blBvcHVwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe2F0dHJpYnV0ZTohMX0pXSx5PVtQKHthdHRyaWJ1dGU6ITF9KV0sTj1baWUoKV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZ2ModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJvcHRpb25zImluIFEsImhhcyIpLGdldDppKFE9PlEub3B0aW9ucywiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5vcHRpb25zPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LG8sbCksZ2ModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImVuYWJsZVNlYXJjaCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmVuYWJsZVNlYXJjaCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5lbmFibGVTZWFyY2g9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZCxmKSxnYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Im9wZW5zVG9Ub3AiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5vcGVuc1RvVG9wLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLm9wZW5zVG9Ub3A9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0saCxtKSxnYyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyaWdnZXJSZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJ0cmlnZ2VyUmVjdCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnRyaWdnZXJSZWN0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnRyaWdnZXJSZWN0PWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGIsZyksZ2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvd25lckNvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ib3duZXJDb21wb25lbnQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5vd25lckNvbXBvbmVudCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5vd25lckNvbXBvbmVudD1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxrLE0pLGdjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyZWRPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJmaWx0ZXJlZE9wdGlvbnMiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5maWx0ZXJlZE9wdGlvbnMsImdldCIpLHNldDppKChRLGZlKT0+e1EuZmlsdGVyZWRPcHRpb25zPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LF8sUyksZ2ModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJoaWdobGlnaHRlZEluZGV4ImluIFEsImhhcyIpLGdldDppKFE9PlEuaGlnaGxpZ2h0ZWRJbmRleCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5oaWdobGlnaHRlZEluZGV4PWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LEwsRSksZ2ModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic2VhcmNoVmFsdWUiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5zZWFyY2hWYWx1ZSwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5zZWFyY2hWYWx1ZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxDLHopLGdjKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibWVudVpJbmRleCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChRLGZlKT0+e1EubWVudVpJbmRleD1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSwkLEYpLGdjKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4idmlzaWJsZSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnZpc2libGUsImdldCIpLHNldDppKChRLGZlKT0+e1EudmlzaWJsZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxHLFopLGdjKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkR9LG51bGwsciksZGU9YT1lLnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfSNlPWxzKHRoaXMsbyxbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhEKXt0aGlzLiNlPUR9I3Q9KGxzKHRoaXMsbCksbHModGhpcyxkLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVTZWFyY2goRCl7dGhpcy4jdD1EfSNyPShscyh0aGlzLGYpLGxzKHRoaXMsaCwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9wZW5zVG9Ub3AoRCl7dGhpcy4jcj1EfSNhPShscyh0aGlzLG0pLGxzKHRoaXMsYixudWxsKSk7Z2V0IHRyaWdnZXJSZWN0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRyaWdnZXJSZWN0KEQpe3RoaXMuI2E9RH0jaT0obHModGhpcyxnKSxscyh0aGlzLGssbnVsbCkpO2dldCBvd25lckNvbXBvbmVudCgpe3JldHVybiB0aGlzLiNpfXNldCBvd25lckNvbXBvbmVudChEKXt0aGlzLiNpPUR9I3M9KGxzKHRoaXMsTSksbHModGhpcyxfLFtdKSk7Z2V0IGZpbHRlcmVkT3B0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBmaWx0ZXJlZE9wdGlvbnMoRCl7dGhpcy4jcz1EfSNuPShscyh0aGlzLFMpLGxzKHRoaXMsTCwwKSk7Z2V0IGhpZ2hsaWdodGVkSW5kZXgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaGlnaGxpZ2h0ZWRJbmRleChEKXt0aGlzLiNuPUR9I289KGxzKHRoaXMsRSksbHModGhpcyxDLCIiKSk7Z2V0IHNlYXJjaFZhbHVlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNlYXJjaFZhbHVlKEQpe3RoaXMuI289RH0jbD0obHModGhpcyx6KSxscyh0aGlzLCQsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbWVudVpJbmRleChEKXt0aGlzLiNsPUR9I2M9KGxzKHRoaXMsRiksbHModGhpcyxHLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmlzaWJsZShEKXt0aGlzLiNjPUR9d2luZG93TGF5ZXI9KGxzKHRoaXMsWiksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3ggewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveC50b3AgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAub3B0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luOiAycHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb24uaGlnaGxpZ2h0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAubm8tb3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuc2VhcmNoIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMudHJpZ2dlclJlY3QpcmV0dXJuIHdgYDtsZXQgRD10aGlzLmNvbXB1dGVQb3NpdGlvblN0eWxlKCk7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ic2VsZWN0aW9uQm94ICR7dGhpcy52aXNpYmxlPyJzaG93IjoiIn0gJHt0aGlzLm9wZW5zVG9Ub3A/InRvcCI6ImJvdHRvbSJ9IgogICAgICAgIHN0eWxlPSIke0R9OyB6LWluZGV4OiAke3RoaXMubWVudVpJbmRleH07IgogICAgICA+CiAgICAgICAgJHt0aGlzLmVuYWJsZVNlYXJjaD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaCI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBvcHRpb25zLi4uIgogICAgICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5zZWFyY2hWYWx1ZX0iCiAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLmhhbmRsZVNlYXJjaH0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHtRPT5RLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3dufSIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJuby1vcHRpb25zIj5ObyBvcHRpb25zIGZvdW5kPC9kaXY+YDp0aGlzLmZpbHRlcmVkT3B0aW9ucy5tYXAoKFEsZmUpPT57bGV0IFQ9dGhpcy5oaWdobGlnaHRlZEluZGV4PT09ZmU7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3B0aW9uICR7VD8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0T3B0aW9uKFEpfSIKICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0iJHsoKT0+dGhpcy5oaWdobGlnaHRlZEluZGV4PWZlfSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7US5vcHRpb259CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29tcHV0ZVBvc2l0aW9uU3R5bGUoKXtsZXQgRD10aGlzLnRyaWdnZXJSZWN0LFE9RC5sZWZ0LGZlPUQud2lkdGg7aWYodGhpcy5vcGVuc1RvVG9wKXtsZXQgVD13aW5kb3cuaW5uZXJIZWlnaHQtRC50b3ArNDtyZXR1cm5gbGVmdDogJHtRfXB4OyB3aWR0aDogJHtmZX1weDsgYm90dG9tOiAke1R9cHg7IHRvcDogYXV0b2B9ZWxzZXtsZXQgVD1ELmJvdHRvbSs0O3JldHVybmBsZWZ0OiAke1F9cHg7IHdpZHRoOiAke2ZlfXB4OyB0b3A6ICR7VH1weGB9fWFzeW5jIHNob3coKXt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5oaWdobGlnaHRlZEluZGV4PTAsdGhpcy5zZWFyY2hWYWx1ZT0iIix0aGlzLndpbmRvd0xheWVyPWF3YWl0IHluLmNyZWF0ZUFuZFNob3coKSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9KSx0aGlzLm1lbnVaSW5kZXg9eXIuZ2V0TmV4dFpJbmRleCgpLHlyLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMpLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse3Bhc3NpdmU6ITB9KX1hc3luYyBoaWRlKCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fCh0aGlzLmlzRGVzdHJveWluZz0hMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSkseXIudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLndpbmRvd0xheWVyJiYodGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllcj1udWxsKSx0aGlzLnZpc2libGU9ITEsYXdhaXQgY3Iuc21hcnRkZWxheS5kZWxheUZvcigxNTApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMuaXNEZXN0cm95aW5nPSExKX1hc3luYyBmb2N1c1NlYXJjaElucHV0KCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgRD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaCBpbnB1dCIpO0QmJkQuZm9jdXMoKX11cGRhdGVPcHRpb25zKEQpe2lmKHRoaXMub3B0aW9ucz1ELHRoaXMuc2VhcmNoVmFsdWUpe2xldCBRPXRoaXMuc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKGZlPT5mZS5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhRKSl9ZWxzZSB0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnM7dGhpcy5oaWdobGlnaHRlZEluZGV4PTB9c2VsZWN0T3B0aW9uKEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm9wdGlvbi1zZWxlY3RlZCIse2RldGFpbDpEfSkpfWhhbmRsZVNlYXJjaD1pKEQ9PntsZXQgUT1ELnRhcmdldC52YWx1ZTt0aGlzLnNlYXJjaFZhbHVlPVE7bGV0IGZlPVEudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKFQ9PlQub3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmUpKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH0sImhhbmRsZVNlYXJjaCIpO2hhbmRsZVNlYXJjaEtleWRvd249aShEPT57bGV0IFE9RC5rZXksZmU9dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoLTE7UT09PSJBcnJvd0Rvd24iPyhELnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZEluZGV4PXRoaXMuaGlnaGxpZ2h0ZWRJbmRleCsxPmZlPzA6dGhpcy5oaWdobGlnaHRlZEluZGV4KzEpOlE9PT0iQXJyb3dVcCI/KEQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4LTE8MD9mZTp0aGlzLmhpZ2hsaWdodGVkSW5kZXgtMSk6UT09PSJFbnRlciI/KEQucHJldmVudERlZmF1bHQoKSx0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdJiZ0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdKSk6UT09PSJFc2NhcGUiJiYoRC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSkpfSwiaGFuZGxlU2VhcmNoS2V5ZG93biIpO2hhbmRsZVNjcm9sbE9yUmVzaXplPWkoKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBvc2l0aW9uLXJlcXVlc3QiKSl9LCJoYW5kbGVTY3JvbGxPclJlc2l6ZSIpO2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSkseXIudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7bHMoYSxyKX19O3JldHVybiBkZT1hfSkoKX0pO3ZhciBIeSxiYyxLcGUsWnBlPXUoKCk9Pnt2ZSgpO0pqcigpO0NpKCk7X3MoKTtsdCgpO0Y2dCgpO0h5PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxiYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sS3BlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1kcm9wZG93biIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREcm9wZG93biIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCgpXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seT1baWUoKV0sSHkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvcHRpb25zImluIFMsImhhcyIpLGdldDppKFM9PlMub3B0aW9ucywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLm9wdGlvbnM9T30sInNldCIpfSxtZXRhZGF0YTpffSxvLGwpLEh5KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkT3B0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWRPcHRpb24sImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RlZE9wdGlvbj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksSHkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImVuYWJsZVNlYXJjaCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmVuYWJsZVNlYXJjaCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmVuYWJsZVNlYXJjaD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksSHkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aW50ZWdyYXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idmludGVncmF0ZWQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy52aW50ZWdyYXRlZCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnZpbnRlZ3JhdGVkPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxIeSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpc09wZW5lZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzT3BlbmVkLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuaXNPcGVuZWQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEh5KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89WGpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1iYyh0aGlzLG8sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoXyl7dGhpcy4jZT1ffSN0PShiYyh0aGlzLGwpLGJjKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkT3B0aW9uKF8pe3RoaXMuI3Q9X31nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoXyl7dGhpcy5zZWxlY3RlZE9wdGlvbj1ffSNyPShiYyh0aGlzLGYpLGJjKHRoaXMsaCwhMCkpO2dldCBlbmFibGVTZWFyY2goKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW5hYmxlU2VhcmNoKF8pe3RoaXMuI3I9X30jYT0oYmModGhpcyxtKSxiYyh0aGlzLGIsITEpKTtnZXQgdmludGVncmF0ZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmludGVncmF0ZWQoXyl7dGhpcy4jYT1ffSNpPShiYyh0aGlzLGcpLGJjKHRoaXMsaywhMSkpO2dldCBpc09wZW5lZCgpe3JldHVybiB0aGlzLiNpfXNldCBpc09wZW5lZChfKXt0aGlzLiNpPV99cG9wdXBJbnN0YW5jZT0oYmModGhpcyxNKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNDBweCAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3g6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94LmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogRHJvcGRvd24gYXJyb3cgKi8KICAgICAgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94Lm9wZW46OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7CiAgICAgIH0KCiAgICAgIC8qIFZpc3VhbGx5IGludGVncmF0ZWQgbW9kZTogc2hlZCBjaHJvbWUgdG8gYmxlbmQgaW50byBhIGhvc3QgY29tcG9uZW50CiAgICAgICAgIChlLmcuIGEgZGVlcy10YWJsZSBjZWxsIGluIGVkaXQgbW9kZSkuICovCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGRlZXMtbGFiZWwgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLm1haW5jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3ggewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDMycHggMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic2VsZWN0ZWRCb3ggJHt0aGlzLmlzT3BlbmVkPyJvcGVuIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLmRpc2FibGVkJiZ0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpfSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkT3B0aW9uPy5vcHRpb258fCJTZWxlY3QgYW4gb3B0aW9uIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLnNlbGVjdGVkT3B0aW9ufHxudWxsfXVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKSxfLmhhcygib3B0aW9ucyIpJiZ0aGlzLnBvcHVwSW5zdGFuY2UmJnRoaXMuaXNPcGVuZWQmJnRoaXMucG9wdXBJbnN0YW5jZS51cGRhdGVPcHRpb25zKHRoaXMub3B0aW9ucyl9YXN5bmMgdXBkYXRlU2VsZWN0aW9uKF8pe3RoaXMuc2VsZWN0ZWRPcHRpb249Xyx0aGlzLmNsb3NlUG9wdXAoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3RlZE9wdGlvbiIse2RldGFpbDpfLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9YXN5bmMgdG9nZ2xlU2VsZWN0aW9uQm94KCl7aWYodGhpcy5pc09wZW5lZCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufXRoaXMuaXNPcGVuZWQ9ITA7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE89d2luZG93LmlubmVySGVpZ2h0LVMuYm90dG9tLEw9Uy50b3AsRT1PPDMwMCYmTD5PO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgWXBlKSx0aGlzLnBvcHVwSW5zdGFuY2Uub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVNlYXJjaD10aGlzLmVuYWJsZVNlYXJjaCx0aGlzLnBvcHVwSW5zdGFuY2Uub3BlbnNUb1RvcD1FLHRoaXMucG9wdXBJbnN0YW5jZS50cmlnZ2VyUmVjdD1TLHRoaXMucG9wdXBJbnN0YW5jZS5vd25lckNvbXBvbmVudD10aGlzLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLnNob3coKSx0aGlzLmVuYWJsZVNlYXJjaCYmYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLmZvY3VzU2VhcmNoSW5wdXQoKX1jbG9zZVBvcHVwKCl7dGhpcy5pc09wZW5lZD0hMSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCkpfWhhbmRsZU9wdGlvblNlbGVjdGVkPWkoXz0+e2xldCBTPV8uZGV0YWlsO3RoaXMudXBkYXRlU2VsZWN0aW9uKFMpfSwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQiKTtoYW5kbGVDbG9zZVJlcXVlc3Q9aSgoKT0+e3RoaXMuY2xvc2VQb3B1cCgpfSwiaGFuZGxlQ2xvc2VSZXF1ZXN0Iik7aGFuZGxlUmVwb3NpdGlvblJlcXVlc3Q9aSgoKT0+e2lmKCF0aGlzLnBvcHVwSW5zdGFuY2V8fCF0aGlzLmlzT3BlbmVkKXJldHVybjtsZXQgXz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkQm94Iik7aWYoIV8pcmV0dXJuO2xldCBTPV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoUy5ib3R0b208MHx8Uy50b3A+d2luZG93LmlubmVySGVpZ2h0KXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59bGV0IE89d2luZG93LmlubmVySGVpZ2h0LVMuYm90dG9tLEw9Uy50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9TzwzMDAmJkw+Tyx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9U30sImhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0Iik7aGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3duKF8pe3RoaXMuZGlzYWJsZWR8fChfLmtleT09PSJFbnRlciJ8fF8ua2V5PT09IiAiPyhfLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6Xy5rZXk9PT0iQXJyb3dEb3duInx8Xy5rZXk9PT0iQXJyb3dVcCI/KF8ucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkfHx0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpKTpfLmtleT09PSJFc2NhcGUiJiYoXy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWQmJnRoaXMuY2xvc2VQb3B1cCgpKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShfKXt0aGlzLnNlbGVjdGVkT3B0aW9uPV99YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje2JjKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBlVXIsdFVyPXUoKCk9Pnt2ZSgpO0I2dCgpO3duKCk7ZVVyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW8tc2hlbGwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMTYwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgewogICAgICAgICAgLmRlbW8tZ3JpZC0tdHdvIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc3RhY2sgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxNSAyMCUgMjYlKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEzIDEwMCUgOTclKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUgMjUlIDMyJSkiLCJoc2woMjE1IDIwJSA4MiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHN0cm9uZyB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcgOTElIDQ1JSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2hlbGwiPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJNb2Rlcm4gZmlsZSB1cGxvYWRlciJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlNoYWRjbi1pbnNwaXJlZCBsYXlvdXQgd2l0aCBkcmFnICYgZHJvcCwgcHJldmlld3MgYW5kIHZhbGlkYXRpb24ifQogICAgICA+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCBkZW1vLWdyaWQtLXR3byI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJBdHRhY2htZW50cyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIHN1cHBvcnRpbmcgZG9jdW1lbnRzIGZvciB5b3VyIHJlcXVlc3QifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFjY2VwdGVkIGZvcm1hdHM6IGltYWdlcywgUERGLCBhbmQgWklQIGFyY2hpdmVzIHVwIHRvIDEwTUIifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qLC5wZGYsLnppcCJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezEwKjEwMjQqMTAyNH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJCcmFuZCBhc3NldHMifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IlVwbG9hZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VyeSAoSlBHL1BORykifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS9qcGVnLGltYWdlL3BuZyJ9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7NSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAuYnV0dG9uVGV4dD0keyJTZWxlY3QgY292ZXIgaW1hZ2UifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQXVkaW8gdXBsb2FkcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2hhcmUgcG9kY2FzdCBkcmFmdHMgKE1QMy9XQVYsIG1heCAyNU1CIGVhY2gpIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXVkaW8vKiJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezI1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBleGFtcGxlIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWRlciBpcyBkaXNhYmxlZCB3aGlsZSBtb2RlcmF0aW9uIGlzIHBlbmRpbmcifQogICAgICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJGb3JtIGludGVncmF0aW9uIn0KICAgICAgICAuc3VidGl0bGU9JHsiQ29tYmluZSBmaWxlIHVwbG9hZHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgREVFUyBmb3JtIGVjb3N5c3RlbSJ9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBuYW1lIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJIb3cgc2hvdWxkIHdlIHJlZmVyIHRvIHRoaXMgcHJvamVjdCBpbnRlcm5hbGx5PyJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdE5hbWUifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkNvbnRhY3QgZW1haWwifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJlbWFpbCJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsiY29udGFjdEVtYWlsIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJTdGF0ZW1lbnQgb2Ygd29yayJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIGEgc2lnbmVkIHN0YXRlbWVudCBvZiB3b3JrIChQREYsIG1heCAxNU1CKSJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXBwbGljYXRpb24vcGRmIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTUqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLm11bHRpcGxlPSR7ITF9CiAgICAgICAgICAgICAgICAua2V5PSR7InNvdyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ3JlYXRpdmUgcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiT3B0aW9uYWwuIFVwbG9hZCB1cCB0byBmaXZlIHZpc3VhbCByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvKiJ9CiAgICAgICAgICAgICAgICAubWF4RmlsZXM9JHs1fQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs4KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiTm90ZXMifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBvcHRpb25hbCBjb250ZXh0IGZvciByZXZpZXdlcnMifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgICAgICAua2V5PSR7Im5vdGVzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBicmllZmluZyJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbm90ZSI+CiAgICAgICAgICAgIDxzdHJvbmc+R29vZCB0byBrbm93Ojwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkRyYWcgJiBkcm9wIGhpZ2hsaWdodHMgdGhlIGRyb3B6b25lIGFuZCBzdXBwb3J0cyBrZXlib2FyZCBhY3RpdmF0aW9uLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkFjY2VwdGVkIGZpbGUgdHlwZXMgYXJlIHN1bW1hcmlzZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSA8Y29kZT5hY2NlcHQ8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgogICAgICAgICAgICAgIDxsaT5JbWFnZSB1cGxvYWRzIHNob3cgbGl2ZSBwcmV2aWV3cyBnZW5lcmF0ZWQgdmlhIDxjb2RlPlVSTC5jcmVhdGVPYmplY3RVUkw8L2NvZGU+LjwvbGk+CiAgICAgICAgICAgICAgPGxpPkZpbGUgc2l6ZSBhbmQgZmlsZS1jb3VudCBsaW1pdHMgc3VyZmFjZSBpbmxpbmUgdmFsaWRhdGlvbiBtZXNzYWdlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UaGUgY29tcG9uZW50IHN0YXlzIGNvbXBhdGlibGUgd2l0aCA8Y29kZT5kZWVzLWZvcm08L2NvZGU+IHZhbHVlIGFjY2Vzc29ycy48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciByVXIsYVVyPXUoKCk9Pnt2ZSgpO0NpKCk7bHQoKTtyVXI9W05lLC4uLkV0LmJhc2VTdHlsZXMseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgOmhvc3QgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQoKICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC8qIOKUgOKUgCBUaWxlIGludGVncmF0aW9uIOKUgOKUgCAqLwogICAgZGVlcy10aWxlIHsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgfQoKICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICB9CgogICAgZGVlcy10aWxlLmRyYWdvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlIC8gMC4xNSkiLCJoc2woMjEzIDkzJSA2OCUgLyAwLjE1KSIpfTsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSBkZWVzLXRpbGUgewogICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC8qIOKUgOKUgCBIZWFkZXIgc2xvdDogc2xlZWsgdG9vbGJhciDilIDilIAgKi8KICAgIC5kcm9wem9uZS1oZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICB9CgogICAgLmRyb3B6b25lLWhlYWRlciBkZWVzLWljb24gewogICAgICB3aWR0aDogMTRweDsKICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAuZHJvcHpvbmUtbG9hZGVyIHsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDE1LCAyMywgNDIsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgIGFuaW1hdGlvbjogbG9hZGVyLXNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgLmRyb3B6b25lLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAuZHJvcHpvbmUtYnJvd3NlIHsKICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICBwYWRkaW5nOiAwOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAuZHJvcHpvbmUtYnJvd3NlOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmRyb3B6b25lLWJyb3dzZTpkaXNhYmxlZCB7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIG9wYWNpdHk6IDAuNTsKICAgIH0KCiAgICAvKiDilIDilIAgQ29udGVudCBzbG90OiBmaWxlIGxpc3QgaW4gcm91bmRlZCBpbnNldCDilIDilIAgKi8KICAgIC5maWxlLWxpc3QtZW1wdHkgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHggMTZweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIH0KCiAgICAuZmlsZS1saXN0LWVtcHR5IGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgb3BhY2l0eTogMC40OwogICAgfQoKICAgIC5maWxlLWxpc3QgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgfQoKICAgIC5maWxlLWxpc3QtaGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAuZmlsZS1saXN0LWNsZWFyIHsKICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBwYWRkaW5nOiAwOwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgIH0KCiAgICAuZmlsZS1saXN0LWNsZWFyOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmZpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kZWVzLXRyYW5zaXRpb24tZmFzdCkgZWFzZTsKICAgIH0KCiAgICAuZmlsZS1yb3c6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXJvdy1ob3Zlcik7CiAgICB9CgogICAgLmZpbGUtdGh1bWIgewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1zbSk7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLmZpbGUtdGh1bWIgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxNnB4OwogICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAudGh1bWItaW1hZ2UgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIH0KCiAgICAuZmlsZS1tZXRhIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAycHg7CiAgICAgIG1pbi13aWR0aDogMDsKICAgIH0KCiAgICAuZmlsZS1uYW1lIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIH0KCiAgICAuZmlsZS1kZXRhaWxzIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAuZmlsZS1zaXplIHsKICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIH0KCiAgICAuZmlsZS10eXBlIHsKICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIH0KCiAgICAuZmlsZS1hY3Rpb25zIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZGVlcy10cmFuc2l0aW9uLWZhc3QpIGVhc2UsCiAgICAgICAgICAgICAgICAgIGNvbG9yIHZhcigtLWRlZXMtdHJhbnNpdGlvbi1mYXN0KSBlYXNlOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3MiUgNTAlIC8gMC4wOCkiLCJoc2woMCA2MiUgMzIlIC8gMC4xNSkiKX07CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246YWN0aXZlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLyog4pSA4pSAIEZvb3RlciBzbG90OiBtZXRhIGNoaXBzIOKUgOKUgCAqLwogICAgLmRyb3B6b25lLWZvb3RlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZ2FwOiA2cHg7CiAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQoKICAgIC5tZXRhLWNoaXAgewogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICB9CgogICAgLyog4pSA4pSAIFZhbGlkYXRpb24g4pSA4pSAICovCiAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgICBsaW5lLWhlaWdodDogMS41OwogICAgfQoKICAgIEBrZXlmcmFtZXMgbG9hZGVyLXNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQogIGBdfSk7dmFyIHNkLHJuLFFwZSxCNnQ9dSgoKT0+e0NpKCk7dFVyKCk7YVVyKCk7S3IoKTtPeSgpO25zKCk7dmUoKTtzZD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0scm49ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFFwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdO3ZhciBZPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRGaWxldXBsb2FkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7YXR0cmlidXRlOiExfSldLGM9W2llKCldLHA9W2llKCldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6U3RyaW5nfSldLE49W1Aoe3R5cGU6Qm9vbGVhbn0pXSxPPVtQKHt0eXBlOk51bWJlcn0pXSxCPVtQKHt0eXBlOk51bWJlcn0pXSxBPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHNkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InZhbHVlImluIFosImhhcyIpLGdldDppKFo9PloudmFsdWUsImdldCIpLHNldDppKChaLGRlKT0+e1oudmFsdWU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sbyxsKSxzZCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzdGF0ZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnN0YXRlLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLnN0YXRlPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LGQsZiksc2QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImlzTG9hZGluZyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi5pc0xvYWRpbmc9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30saCxtKSxzZCh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1dHRvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImJ1dHRvblRleHQiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5idXR0b25UZXh0LCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmJ1dHRvblRleHQ9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sYixnKSxzZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iYWNjZXB0ImluIFosImhhcyIpLGdldDppKFo9PlouYWNjZXB0LCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmFjY2VwdD1kZX0sInNldCIpfSxtZXRhZGF0YTpHfSxrLE0pLHNkKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXVsdGlwbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+Im11bHRpcGxlImluIFosImhhcyIpLGdldDppKFo9PloubXVsdGlwbGUsImdldCIpLHNldDppKChaLGRlKT0+e1oubXVsdGlwbGU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sXyxTKSxzZCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+Im1heFNpemUiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5tYXhTaXplLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLm1heFNpemU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sTCxFKSxzZCh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJtYXhGaWxlcyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLm1heEZpbGVzLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLm1heEZpbGVzPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LEMseiksc2QodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InZhbGlkYXRpb25TdGF0ZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnZhbGlkYXRpb25TdGF0ZSwiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi52YWxpZGF0aW9uU3RhdGU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sJCxGKSxzZChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpHfSxudWxsLHIpLFk9YT1lLnZhbHVlLEcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6R30pfXN0YXRpYyBkZW1vPWVVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9cm4odGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoRyl7dGhpcy4jZT1HfSN0PShybih0aGlzLGwpLHJuKHRoaXMsZCwiaWRsZSIpKTtnZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdGUoRyl7dGhpcy4jdD1HfSNyPShybih0aGlzLGYpLHJuKHRoaXMsaCwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNMb2FkaW5nKEcpe3RoaXMuI3I9R30jYT0ocm4odGhpcyxtKSxybih0aGlzLGIsIlNlbGVjdCBmaWxlcyIpKTtnZXQgYnV0dG9uVGV4dCgpe3JldHVybiB0aGlzLiNhfXNldCBidXR0b25UZXh0KEcpe3RoaXMuI2E9R30jaT0ocm4odGhpcyxnKSxybih0aGlzLGssIiIpKTtnZXQgYWNjZXB0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFjY2VwdChHKXt0aGlzLiNpPUd9I3M9KHJuKHRoaXMsTSkscm4odGhpcyxfLCEwKSk7Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG11bHRpcGxlKEcpe3RoaXMuI3M9R30jbj0ocm4odGhpcyxTKSxybih0aGlzLEwsMCkpO2dldCBtYXhTaXplKCl7cmV0dXJuIHRoaXMuI259c2V0IG1heFNpemUoRyl7dGhpcy4jbj1HfSNvPShybih0aGlzLEUpLHJuKHRoaXMsQywwKSk7Z2V0IG1heEZpbGVzKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heEZpbGVzKEcpe3RoaXMuI289R30jbD0ocm4odGhpcyx6KSxybih0aGlzLCQsbnVsbCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgdmFsaWRhdGlvblN0YXRlKEcpe3RoaXMuI2w9R30jYz0ocm4odGhpcyxGKSwiIik7Z2V0IHZhbGlkYXRpb25NZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25NZXNzYWdlKEcpe3RoaXMuI2M9R31wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwO2Ryb3BBcmVhPW51bGw7c3RhdGljIHN0eWxlcz1yVXI7cmVuZGVyKCl7bGV0IEc9dGhpcy5nZXRBY2NlcHRlZFN1bW1hcnkoKSxaPVt0aGlzLm11bHRpcGxlPyJNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQiOiJTaW5nbGUgZmlsZSBvbmx5Iix0aGlzLm1heFNpemU+MD9gTWF4ICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWA6Ik5vIHNpemUgbGltaXQiXTtyZXR1cm4gRyYmWi5wdXNoKGBBY2NlcHRzICR7R31gKSx3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbAogICAgICAgICAgLmxhYmVsPSR7dGhpcy5sYWJlbH0KICAgICAgICAgIC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgID48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtdGlsZQogICAgICAgICAgY2xhc3M9IiR7dGhpcy5zdGF0ZT09PSJkcmFnT3ZlciI/ImRyYWdvdmVyIjoiIn0iCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZURyb3B6b25lQ2xpY2t9CiAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlRHJvcHpvbmVLZXlkb3dufQogICAgICAgICAgdGFiaW5kZXg9JHt0aGlzLmRpc2FibGVkPy0xOjB9CiAgICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIGFyaWEtbGFiZWw9JHtgU2VsZWN0IGZpbGVzJHtHP2AgKCR7R30pYDoiIn1gfQogICAgICAgID4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0iZmlsZS1pbnB1dCIKICAgICAgICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyB0b3A6IDA7IGxlZnQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IgogICAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgICA/bXVsdGlwbGU9JHt0aGlzLm11bHRpcGxlfQogICAgICAgICAgICBhY2NlcHQ9JHt0aGlzLmFjY2VwdHx8IiJ9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVJbnB1dENoYW5nZX0KICAgICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iZHJvcHpvbmUtaGVhZGVyIj4KICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZz93YDxzcGFuIGNsYXNzPSJkcm9wem9uZS1sb2FkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+YDp3YDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlVwbG9hZCI+PC9kZWVzLWljb24+YH0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRyb3B6b25lLXRpdGxlIj5Ecm9wIGZpbGVzIGhlcmUgb3I8L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICB0eXBlPSJidXR0b24iCiAgICAgICAgICAgICAgY2xhc3M9ImRyb3B6b25lLWJyb3dzZSIKICAgICAgICAgICAgICBAY2xpY2s9JHtkZT0+e2RlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpfX0KICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICA+YnJvd3NlPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGaWxlTGlzdCgpfQogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJkcm9wem9uZS1mb290ZXIiPgogICAgICAgICAgICAke1oubWFwKGRlPT53YDxzcGFuIGNsYXNzPSJtZXRhLWNoaXAiPiR7ZGV9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlP3dgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIiBhcmlhLWxpdmU9InBvbGl0ZSI+JHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlfTwvZGl2PmA6d2BgfQogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZUxpc3QoKXtyZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGg9PT0wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0LWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVTdGFjayI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5ObyBmaWxlcyBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+JHt0aGlzLnZhbHVlLmxlbmd0aH0gZmlsZSR7dGhpcy52YWx1ZS5sZW5ndGg9PT0xPyIiOiJzIn0gc2VsZWN0ZWQ8L3NwYW4+CiAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtbGlzdC1jbGVhciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhckFsbH0+Q2xlYXIgJHt0aGlzLnZhbHVlLmxlbmd0aD4xPyJhbGwiOiIifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy52YWx1ZS5tYXAoRz0+dGhpcy5yZW5kZXJGaWxlUm93KEcpKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVSb3coRyl7bGV0IFo9dGhpcy5nZXRGaWxlVHlwZShHKSxkZT10aGlzLmNhblNob3dQcmV2aWV3KEcpP3RoaXMuZ2V0UHJldmlld1VybChHKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLXJvdyAke1p9LWZpbGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtdGh1bWIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICR7ZGU/d2A8aW1nIGNsYXNzPSJ0aHVtYi1pbWFnZSIgc3JjPSR7ZGV9IGFsdD0ke2BQcmV2aWV3IG9mICR7Ry5uYW1lfWB9PmA6d2A8ZGVlcy1pY29uIGljb249JHt0aGlzLmdldEZpbGVJY29uKEcpfT48L2RlZXMtaWNvbj5gfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbWV0YSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW5hbWUiIHRpdGxlPSR7Ry5uYW1lfT4ke0cubmFtZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtZGV0YWlscyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLXNpemUiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShHLnNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgJHtaIT09ImZpbGUiP3dgPHNwYW4gY2xhc3M9ImZpbGUtdHlwZSI+JHtafTwvc3Bhbj5gOndgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgY2xhc3M9InJlbW92ZS1idXR0b24iCiAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUZpbGUoRyl9CiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgUmVtb3ZlICR7Ry5uYW1lfWB9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVGaWxlSW5wdXRDaGFuZ2U9aShhc3luYyBHPT57dGhpcy5pc0xvYWRpbmc9ITE7bGV0IFo9Ry50YXJnZXQsZGU9QXJyYXkuZnJvbShaLmZpbGVzPz9bXSk7ZGUubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoZGUpLFoudmFsdWU9IiJ9LCJoYW5kbGVGaWxlSW5wdXRDaGFuZ2UiKTtoYW5kbGVEcm9wem9uZUNsaWNrPWkoRz0+e3RoaXMuZGlzYWJsZWR8fEcudGFyZ2V0LmNsb3Nlc3QoIi5maWxlLWxpc3QsIC5kcm9wem9uZS1oZWFkZXIsIC5kcm9wem9uZS1mb290ZXIiKXx8dGhpcy5vcGVuRmlsZVNlbGVjdG9yKCl9LCJoYW5kbGVEcm9wem9uZUNsaWNrIik7aGFuZGxlRHJvcHpvbmVLZXlkb3duPWkoRz0+e3RoaXMuZGlzYWJsZWR8fChHLmtleT09PSJFbnRlciJ8fEcua2V5PT09IiAiKSYmKEcucHJldmVudERlZmF1bHQoKSx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKSl9LCJoYW5kbGVEcm9wem9uZUtleWRvd24iKTtoYW5kbGVDbGVhckFsbD1pKEc9PntHLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbGVhckFsbCgpfSwiaGFuZGxlQ2xlYXJBbGwiKTtoYW5kbGVEcmFnRXZlbnQ9aShhc3luYyBHPT57aWYoRy5wcmV2ZW50RGVmYXVsdCgpLEcuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuZGlzYWJsZWQpe2lmKEcudHlwZT09PSJkcmFnZW50ZXIifHxHLnR5cGU9PT0iZHJhZ292ZXIiKXtHLmRhdGFUcmFuc2ZlciYmKEcuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9ImNvcHkiKSx0aGlzLnN0YXRlPSJkcmFnT3ZlciI7cmV0dXJufWlmKEcudHlwZT09PSJkcmFnbGVhdmUiKXtpZighdGhpcy5kcm9wQXJlYSl7dGhpcy5zdGF0ZT0iaWRsZSI7cmV0dXJufWxldCBaPXRoaXMuZHJvcEFyZWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2NsaWVudFg6ZGU9MCxjbGllbnRZOkQ9MH09RzsoZGU8PVoubGVmdHx8ZGU+PVoucmlnaHR8fEQ8PVoudG9wfHxEPj1aLmJvdHRvbSkmJih0aGlzLnN0YXRlPSJpZGxlIik7cmV0dXJufWlmKEcudHlwZT09PSJkcm9wIil7dGhpcy5zdGF0ZT0iaWRsZSI7bGV0IFo9QXJyYXkuZnJvbShHLmRhdGFUcmFuc2Zlcj8uZmlsZXM/P1tdKTtaLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmFkZEZpbGVzKFopfX19LCJoYW5kbGVEcmFnRXZlbnQiKTthdHRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKEc9Pnt0aGlzLmRyb3BBcmVhLmFkZEV2ZW50TGlzdGVuZXIoRyx0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1kZXRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKEc9Pnt0aGlzLmRyb3BBcmVhLnJlbW92ZUV2ZW50TGlzdGVuZXIoRyx0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl7bGV0IEc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXRpbGUiKTtHIT09dGhpcy5kcm9wQXJlYSYmKHRoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpLHRoaXMuZHJvcEFyZWE9Ryx0aGlzLmF0dGFjaERyb3BMaXN0ZW5lcnMoKSl9Zm9ybWF0RmlsZVNpemUoRyl7bGV0IFo9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdO2lmKEc9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgZGU9TWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZyhHKS9NYXRoLmxvZygxMDI0KSksWi5sZW5ndGgtMSksRD1HL01hdGgucG93KDEwMjQsZGUpO3JldHVybmAke01hdGgucm91bmQoRCoxMDApLzEwMH0gJHtaW2RlXX1gfWdldEZpbGVUeXBlKEcpe2xldCBaPUcudHlwZS50b0xvd2VyQ2FzZSgpO3JldHVybiBaLnN0YXJ0c1dpdGgoImltYWdlLyIpPyJpbWFnZSI6Wj09PSJhcHBsaWNhdGlvbi9wZGYiPyJwZGYiOlouaW5jbHVkZXMoIndvcmQiKXx8Wi5pbmNsdWRlcygiZG9jdW1lbnQiKT8iZG9jIjpaLmluY2x1ZGVzKCJzaGVldCIpfHxaLmluY2x1ZGVzKCJleGNlbCIpPyJzcHJlYWRzaGVldCI6Wi5pbmNsdWRlcygicHJlc2VudGF0aW9uIil8fFouaW5jbHVkZXMoInBvd2VycG9pbnQiKT8icHJlc2VudGF0aW9uIjpaLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJ2aWRlbyI6Wi5zdGFydHNXaXRoKCJhdWRpby8iKT8iYXVkaW8iOlouaW5jbHVkZXMoInppcCIpfHxaLmluY2x1ZGVzKCJjb21wcmVzc2VkIik/ImFyY2hpdmUiOiJmaWxlIn1nZXRGaWxlSWNvbihHKXtsZXQgWj10aGlzLmdldEZpbGVUeXBlKEcpO3JldHVybntpbWFnZToibHVjaWRlOkZpbGVJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGRvYzoibHVjaWRlOkZpbGVUZXh0IixzcHJlYWRzaGVldDoibHVjaWRlOkZpbGVTcHJlYWRzaGVldCIscHJlc2VudGF0aW9uOiJsdWNpZGU6RmlsZUJhckNoYXJ0Iix2aWRlbzoibHVjaWRlOkZpbGVWaWRlbyIsYXVkaW86Imx1Y2lkZTpGaWxlQXVkaW8iLGFyY2hpdmU6Imx1Y2lkZTpGaWxlQXJjaGl2ZSIsZmlsZToibHVjaWRlOkZpbGUifVtaXT8/Imx1Y2lkZTpGaWxlIn1jYW5TaG93UHJldmlldyhHKXtyZXR1cm4gRy50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiZHLnNpemU8NSoxMDI0KjEwMjR9dmFsaWRhdGVGaWxlKEcpe2lmKHRoaXMubWF4U2l6ZT4wJiZHLnNpemU+dGhpcy5tYXhTaXplKXJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBGaWxlICIke0cubmFtZX0iIGV4Y2VlZHMgdGhlIG1heGltdW0gc2l6ZSBvZiAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMTtpZih0aGlzLmFjY2VwdCl7bGV0IFo9dGhpcy5hY2NlcHQuc3BsaXQoIiwiKS5tYXAoZGU9PmRlLnRyaW0oKSkuZmlsdGVyKGRlPT5kZS5sZW5ndGg+MCk7aWYoWi5sZW5ndGg+MCl7bGV0IGRlPSExO2ZvcihsZXQgRCBvZiBaKWlmKEQuc3RhcnRzV2l0aCgiLiIpKXtpZihHLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChELnRvTG93ZXJDYXNlKCkpKXtkZT0hMDticmVha319ZWxzZSBpZihELmVuZHNXaXRoKCIvKiIpKXtsZXQgUT1ELnNsaWNlKDAsLTIpO2lmKEcudHlwZS5zdGFydHNXaXRoKFEpKXtkZT0hMDticmVha319ZWxzZSBpZihHLnR5cGU9PT1EKXtkZT0hMDticmVha31pZighZGUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgdHlwZSBub3QgYWNjZXB0ZWQuIEFsbG93ZWQ6ICR7Wi5qb2luKCIsICIpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExfX1yZXR1cm4hMH1nZXRQcmV2aWV3VXJsKEcpe2xldCBaPXRoaXMucHJldmlld1VybE1hcC5nZXQoRyk7cmV0dXJuIFp8fChaPVVSTC5jcmVhdGVPYmplY3RVUkwoRyksdGhpcy5wcmV2aWV3VXJsTWFwLnNldChHLFopKSxafXJlbGVhc2VQcmV2aWV3KEcpe2xldCBaPXRoaXMucHJldmlld1VybE1hcC5nZXQoRyk7WiYmKFVSTC5yZXZva2VPYmplY3RVUkwoWiksdGhpcy5wcmV2aWV3VXJsTWFwLmRlbGV0ZShHKSl9Z2V0QWNjZXB0ZWRTdW1tYXJ5KCl7aWYoIXRoaXMuYWNjZXB0KXJldHVybiBudWxsO2xldCBHPUFycmF5LmZyb20obmV3IFNldCh0aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChaPT5aLnRyaW0oKSkuZmlsdGVyKFo9PloubGVuZ3RoPjApLm1hcChaPT50aGlzLmZvcm1hdEFjY2VwdFRva2VuKFopKSkpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gRy5sZW5ndGg9PT0wP251bGw6Ry5sZW5ndGg9PT0xP0dbMF06Ry5sZW5ndGg9PT0yP2Ake0dbMF19LCAke0dbMV19YDpgJHtHLnNsaWNlKDAsMikuam9pbigiLCAiKX1cdTIwMjZgfWZvcm1hdEFjY2VwdFRva2VuKEcpe2lmKEc9PT0iKi8qIilyZXR1cm4iQWxsIGZpbGVzIjtpZihHLmVuZHNXaXRoKCIvKiIpKXtsZXQgRD1HLnNwbGl0KCIvIilbMF07cmV0dXJuIEQ/YCR7RC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke0Quc2xpY2UoMSl9IGZpbGVzYDoiQWxsIGZpbGVzIn1yZXR1cm4gRy5zdGFydHNXaXRoKCIuIik/Ry5zbGljZSgxKS50b1VwcGVyQ2FzZSgpOkcuaW5jbHVkZXMoInBkZiIpPyJQREYiOkcuaW5jbHVkZXMoInppcCIpPyJaSVAiOkcuaW5jbHVkZXMoImpzb24iKT8iSlNPTiI6Ry5pbmNsdWRlcygibXN3b3JkIik/IkRPQyI6Ry5pbmNsdWRlcygid29yZHByb2Nlc3NpbmdtbCIpPyJET0NYIjpHLmluY2x1ZGVzKCJleGNlbCIpPyJYTFMiOkcuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJQUFQiOihHLnNwbGl0KCIvIikucG9wKCk/P0cpLnRvVXBwZXJDYXNlKCl9YXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl7dGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9Zmlyc3RVcGRhdGVkKEcpe3N1cGVyLmZpcnN0VXBkYXRlZChHKSx0aGlzLmF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpfXVwZGF0ZWQoRyl7c3VwZXIudXBkYXRlZChHKSxHLmhhcygidmFsdWUiKSYmdGhpcy52YWxpZGF0ZSgpLHRoaXMucmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy52YWx1ZS5mb3JFYWNoKEc9PnRoaXMucmVsZWFzZVByZXZpZXcoRykpLHRoaXMucHJldmlld1VybE1hcD1uZXcgV2Vha01hcCxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIG9wZW5GaWxlU2VsZWN0b3IoKXtpZih0aGlzLmRpc2FibGVkfHx0aGlzLmlzTG9hZGluZylyZXR1cm47dGhpcy5pc0xvYWRpbmc9ITA7bGV0IEc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmlsZS1pbnB1dCIpO2lmKCFHKXt0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59bGV0IFo9aSgoKT0+e3NldFRpbWVvdXQoKCk9PnsoIUcuZmlsZXN8fEcuZmlsZXMubGVuZ3RoPT09MCkmJih0aGlzLmlzTG9hZGluZz0hMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixaKX0sMzAwKX0sImhhbmRsZUZvY3VzIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixaKSxHLmNsaWNrKCl9cmVtb3ZlRmlsZShHKXtsZXQgWj10aGlzLnZhbHVlLmluZGV4T2YoRyk7Wj4tMSYmKHRoaXMucmVsZWFzZVByZXZpZXcoRyksdGhpcy52YWx1ZS5zcGxpY2UoWiwxKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1jbGVhckFsbCgpe2xldCBHPVsuLi50aGlzLnZhbHVlXTt0aGlzLnZhbHVlPVtdLEcuZm9yRWFjaChaPT50aGlzLnJlbGVhc2VQcmV2aWV3KFopKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIn1hc3luYyB1cGRhdGVWYWx1ZShHKXtsZXQgWj1HLnRhcmdldDt0aGlzLnZhbHVlPUFycmF5LmZyb20oWi5maWxlcz8/W10pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXNldFZhbHVlKEcpe3RoaXMudmFsdWUuZm9yRWFjaChaPT50aGlzLnJlbGVhc2VQcmV2aWV3KFopKSx0aGlzLnZhbHVlPUcsRy5sZW5ndGg+MD90aGlzLmJ1dHRvblRleHQ9dGhpcy5tdWx0aXBsZT8iQWRkIG1vcmUgZmlsZXMiOiJSZXBsYWNlIGZpbGUiOnRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIix0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9YXN5bmMgYWRkRmlsZXMoRyl7bGV0IFo9W107Zm9yKGxldCBkZSBvZiBHKXRoaXMudmFsaWRhdGVGaWxlKGRlKSYmWi5wdXNoKGRlKTtpZihaLmxlbmd0aD09PTApe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1pZih0aGlzLm1heEZpbGVzPjAmJnRoaXMudmFsdWUubGVuZ3RoK1oubGVuZ3RoPnRoaXMubWF4RmlsZXMpe2xldCBEPXRoaXMubWF4RmlsZXMtdGhpcy52YWx1ZS5sZW5ndGg7aWYoRDw9MCl7dGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59Wi5zcGxpY2UoRCksdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gT25seSAke0R9IG1vcmUgZmlsZShzKSBjYW4gYmUgYWRkZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJ3YXJuIn0hdGhpcy5tdWx0aXBsZSYmWi5sZW5ndGg+MD8odGhpcy52YWx1ZS5mb3JFYWNoKGRlPT50aGlzLnJlbGVhc2VQcmV2aWV3KGRlKSksdGhpcy52YWx1ZT1bWlswXV0pOnRoaXMudmFsdWUucHVzaCguLi5aKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMudmFsaWRhdGlvblN0YXRlPW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLGF3YWl0IHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHZhbGlkYXRlKCl7aWYodGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iIix0aGlzLnJlcXVpcmVkJiZ0aGlzLnZhbHVlLmxlbmd0aD09PTApcmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSJQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBmaWxlIiwhMTtmb3IobGV0IEcgb2YgdGhpcy52YWx1ZSlpZighdGhpcy52YWxpZGF0ZUZpbGUoRykpcmV0dXJuITE7cmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPXRoaXMudmFsdWUubGVuZ3RoPjA/InZhbGlkIjpudWxsLCEwfXN0YXRpY3tybihhLHIpfX07cmV0dXJuIFk9YX0pKCl9KTt2YXIgSDZ0PXUoKCk9PntCNnQoKX0pO2Z1bmN0aW9uIEpwZSh0LGUpe2lmKGU9PT12b2lkIDAmJihlPXthbGxvd1FSSUJBTjohMH0pLHQ9PW51bGwpcmV0dXJuITE7dmFyIHI9bmV3IFJlZ0V4cCgiXlswLTldezJ9JCIsIiIpLGE9dC5zbGljZSgwLDIpLHM9UWxbYV07cmV0dXJuIHM9PT12b2lkIDB8fHMuYmJhbl9yZWdleHA9PT12b2lkIDB8fHMuYmJhbl9yZWdleHA9PT1udWxsfHxzLmNoYXJzPT09dm9pZCAwPyExOnMuY2hhcnM9PT10Lmxlbmd0aCYmci50ZXN0KHQuc2xpY2UoMiw0KSkmJldFYSh0LnNsaWNlKDQpLGEpJiZzVXIodCkmJihlLmFsbG93UVJJQkFOfHwhaVVyKHQpKX1mdW5jdGlvbiBnbzEodCxlKXtlPT09dm9pZCAwJiYoZT17YWxsb3dRUklCQU46ITB9KTt2YXIgcj17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07aWYodCE9bnVsbCYmdCE9PSIiKXt2YXIgYT1RbFt0LnNsaWNlKDAsMildO2lmKCFhfHwhKGEuYmJhbl9yZWdleHB8fGEuY2hhcnMpKXJldHVybiByLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKHhjLk5vSUJBTkNvdW50cnkpLHI7YSYmYS5jaGFycyYmYS5jaGFycyE9PXQubGVuZ3RoJiYoci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaCh4Yy5Xcm9uZ0JCQU5MZW5ndGgpKSxhJiZhLmJiYW5fcmVnZXhwJiYhcTZ0KHQuc2xpY2UoNCksYS5iYmFuX3JlZ2V4cCkmJihyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKHhjLldyb25nQkJBTkZvcm1hdCkpLGEmJmEuYmJhbl92YWxpZGF0aW9uX2Z1bmMmJiFhLmJiYW5fdmFsaWRhdGlvbl9mdW5jKHQuc2xpY2UoNCkpJiYoci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaCh4Yy5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0pKTt2YXIgcz1uZXcgUmVnRXhwKCJeWzAtOV17Mn0kIiwiIik7cy50ZXN0KHQuc2xpY2UoMiw0KSl8fChyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKHhjLkNoZWNrc3VtTm90TnVtYmVyKSksKHIuZXJyb3JDb2Rlcy5pbmRleE9mKHhjLldyb25nQkJBTkZvcm1hdCkhPT0tMXx8IXNVcih0KSkmJihyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKHhjLldyb25nSUJBTkNoZWNrc3VtKSksIWUuYWxsb3dRUklCQU4mJmlVcih0KSYmKHIudmFsaWQ9ITEsci5lcnJvckNvZGVzLnB1c2goeGMuUVJJQkFOTm90QWxsb3dlZCkpfWVsc2Ugci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaCh4Yy5Ob0lCQU5Qcm92aWRlZCk7cmV0dXJuIHJ9ZnVuY3Rpb24gV0VhKHQsZSl7aWYodD09bnVsbHx8ZT09PXZvaWQgMHx8ZT09PW51bGwpcmV0dXJuITE7dmFyIHI9UWxbZV07cmV0dXJuIHI9PW51bGx8fHIuYmJhbl9yZWdleHA9PT12b2lkIDB8fHIuYmJhbl9yZWdleHA9PT1udWxsfHxyLmNoYXJzPT09dm9pZCAwfHxyLmNoYXJzPT09bnVsbD8hMTpyLmNoYXJzLTQ9PT10Lmxlbmd0aCYmcTZ0KHQsci5iYmFuX3JlZ2V4cCk/ci5iYmFuX3ZhbGlkYXRpb25fZnVuYz9yLmJiYW5fdmFsaWRhdGlvbl9mdW5jKHQucmVwbGFjZSgvW1xzLl0rL2csIiIpKTohMDohMX1mdW5jdGlvbiBibzEodCl7aWYodCE9bnVsbCl7dmFyIGU9UWxbdF07aWYoZSE9PXZvaWQgMClyZXR1cm4gZS5TRVBBP2UuU0VQQTohMX1yZXR1cm4hMX1mdW5jdGlvbiBpVXIodCl7aWYodD09bnVsbClyZXR1cm4hMTt2YXIgZT10LnNsaWNlKDAsMikscj1bIkxJIiwiQ0giXTtpZighci5pbmNsdWRlcyhlKSlyZXR1cm4hMTt2YXIgYT1uZXcgUmVnRXhwKCJeM1swLTFdezF9WzAtOV17M30kIiwiIik7cmV0dXJuIGEudGVzdCh0LnNsaWNlKDQsOSkpfWZ1bmN0aW9uIHhvMSh0KXt2YXIgZT1WNnQodC5iYmFuKXx8IiI7aWYodC5jb3VudHJ5Q29kZT09PW51bGx8fHQuY291bnRyeUNvZGU9PT12b2lkIDApcmV0dXJuIG51bGw7dmFyIHI9UWxbdC5jb3VudHJ5Q29kZV07aWYoZSE9PSIiJiZyIT09dm9pZCAwJiZyLmNoYXJzJiZyLmNoYXJzIT09bnVsbCYmci5jaGFycz09PWUubGVuZ3RoKzQmJnIuYmJhbl9yZWdleHAmJnIuYmJhbl9yZWdleHAhPT1udWxsJiZxNnQoZSxyLmJiYW5fcmVnZXhwKSl7dmFyIGE9R0VhKHQuY291bnRyeUNvZGUrIjAwIitlKTtyZXR1cm4gdC5jb3VudHJ5Q29kZSsoIjAiKyg5OC1hKSkuc2xpY2UoLTIpK2V9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdm8xKHQpe3ZhciBlPXt9LHI9VjZ0KHQpO2lmKGUuaWJhbj1yfHx0LHImJkpwZShyKSl7ZS5iYmFuPXIuc2xpY2UoNCksZS5jb3VudHJ5Q29kZT1yLnNsaWNlKDAsMiksZS52YWxpZD0hMDt2YXIgYT1RbFtlLmNvdW50cnlDb2RlXTtpZihhLmFjY291bnRfaW5kZW50aWZpZXIpe3ZhciBzPWEuYWNjb3VudF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoc1swXSksbz1wYXJzZUludChzWzFdKTtlLmFjY291bnROdW1iZXI9ZS5pYmFuLnNsaWNlKG4sbysxKX1pZihhLmJhbmtfaWRlbnRpZmllcil7dmFyIHM9YS5iYW5rX2lkZW50aWZpZXIuc3BsaXQoIi0iKSxuPXBhcnNlSW50KHNbMF0pLG89cGFyc2VJbnQoc1sxXSk7ZS5iYW5rSWRlbnRpZmllcj1lLmJiYW4uc2xpY2UobixvKzEpfWlmKGEuYnJhbmNoX2luZGVudGlmaWVyKXt2YXIgcz1hLmJyYW5jaF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoc1swXSksbz1wYXJzZUludChzWzFdKTtlLmJyYW5jaElkZW50aWZpZXI9ZS5iYmFuLnNsaWNlKG4sbysxKX19ZWxzZSBlLnZhbGlkPSExO3JldHVybiBlfWZ1bmN0aW9uIHE2dCh0LGUpe3ZhciByPW5ldyBSZWdFeHAoZSwiIik7cmV0dXJuIHIudGVzdCh0KX1mdW5jdGlvbiBWNnQodCl7cmV0dXJuIHR5cGVvZiB0IT0ic3RyaW5nIj9udWxsOnQucmVwbGFjZSgvWy1cIF0vZywiIikudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBqNnQodCxlKXtpZih0eXBlb2YgdCE9InN0cmluZyIpcmV0dXJuIG51bGw7ZT09bnVsbCYmKGU9IiAiKTt2YXIgcj1WNnQodCk7cmV0dXJuIHI9PT1udWxsP251bGw6ci5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrZSl9ZnVuY3Rpb24gc1VyKHQpe3ZhciBlPXQuc2xpY2UoMCwyKSxyPXBhcnNlSW50KHQuc2xpY2UoMiw0KSwxMCksYT10LnNsaWNlKDQpLHM9blVyKCIiLmNvbmNhdChhKS5jb25jYXQoZSwiMDAiKSksbj1YcGUocyk7cmV0dXJuIDk4LW49PT1yfWZ1bmN0aW9uIG5Vcih0KXtyZXR1cm4gdC5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGUpe3ZhciByPWUuY2hhckNvZGVBdCgwKTtyZXR1cm4gcj49NjU/KHItNTUpLnRvU3RyaW5nKCk6ZX0pLmpvaW4oIiIpfWZ1bmN0aW9uIEdFYSh0KXtyZXR1cm4gWHBlKG5Vcih0LnNsaWNlKDQpK3Quc2xpY2UoMCw0KSkpfWZ1bmN0aW9uIHlvMSgpe3ZhciB0PXt9O2Zvcih2YXIgZSBpbiBRbCl7dmFyIHI9UWxbZV07dFtlXT17Y2hhcnM6ci5jaGFyc3x8bnVsbCxiYmFuX3JlZ2V4cDpyLmJiYW5fcmVnZXhwfHxudWxsLElCQU5SZWdpc3RyeTpyLklCQU5SZWdpc3RyeXx8ITEsU0VQQTpyLlNFUEF8fCExfX1yZXR1cm4gdH1mdW5jdGlvbiBZRWEodCl7aWYoIXQpcmV0dXJuITE7dmFyIGU9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKSxyPVFsW3QudG9VcHBlckNhc2UoKS5zbGljZSg0LDYpXTtyZXR1cm4gZS50ZXN0KHQpJiZyIT09dm9pZCAwfWZ1bmN0aW9uIHdvMSh0KXt2YXIgZT17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07aWYodCE9bnVsbCYmdCE9PSIiKXt2YXIgcj1RbFt0LnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV07aWYocj09PXZvaWQgMCllLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKGJ0ZS5Ob0JJQ0NvdW50cnkpO2Vsc2V7dmFyIGE9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKTthLnRlc3QodCl8fChlLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKGJ0ZS5Xcm9uZ0JJQ0Zvcm1hdCkpfX1lbHNlIGUudmFsaWQ9ITEsZS5lcnJvckNvZGVzLnB1c2goYnRlLk5vQklDUHJvdmlkZWQpO3JldHVybiBlfWZ1bmN0aW9uIGtvMSh0KXt2YXIgZT17fSxyPXQudG9VcHBlckNhc2UoKTtyZXR1cm4gWUVhKHIpPyhlLmJhbmtDb2RlPXIuc2xpY2UoMCw0KSxlLmNvdW50cnlDb2RlPXIuc2xpY2UoNCw2KSxlLmxvY2F0aW9uQ29kZT1yLnNsaWNlKDYsOCksZS50ZXN0QklDPWUubG9jYXRpb25Db2RlWzFdPT09IjAiLGUuYnJhbmNoQ29kZT1yLmxlbmd0aD44P3Iuc2xpY2UoOCk6bnVsbCxlLnZhbGlkPSEwKTplLnZhbGlkPSExLGV9dmFyIHhjLGJ0ZSxLRWEsWkVhLFhwZSxxeSxRRWEsWEVhLG9VcixKRWEsbFVyLGVJYSxjVXIsdElhLFNvMSxRbCxkVXI9dSgoKT0+eyJ1c2Ugc3RyaWN0IjtpKEpwZSwiaXNWYWxpZElCQU4iKTsoZnVuY3Rpb24odCl7dFt0Lk5vSUJBTlByb3ZpZGVkPTBdPSJOb0lCQU5Qcm92aWRlZCIsdFt0Lk5vSUJBTkNvdW50cnk9MV09Ik5vSUJBTkNvdW50cnkiLHRbdC5Xcm9uZ0JCQU5MZW5ndGg9Ml09Ildyb25nQkJBTkxlbmd0aCIsdFt0Lldyb25nQkJBTkZvcm1hdD0zXT0iV3JvbmdCQkFORm9ybWF0Iix0W3QuQ2hlY2tzdW1Ob3ROdW1iZXI9NF09IkNoZWNrc3VtTm90TnVtYmVyIix0W3QuV3JvbmdJQkFOQ2hlY2tzdW09NV09Ildyb25nSUJBTkNoZWNrc3VtIix0W3QuV3JvbmdBY2NvdW50QmFua0JyYW5jaENoZWNrc3VtPTZdPSJXcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0iLHRbdC5RUklCQU5Ob3RBbGxvd2VkPTddPSJRUklCQU5Ob3RBbGxvd2VkIn0pKHhjfHwoeGM9e30pKTtpKGdvMSwidmFsaWRhdGVJQkFOIik7aShXRWEsImlzVmFsaWRCQkFOIik7aShibzEsImlzU0VQQUNvdW50cnkiKTtpKGlVciwiaXNRUklCQU4iKTtpKHhvMSwiY29tcG9zZUlCQU4iKTtpKHZvMSwiZXh0cmFjdElCQU4iKTtpKHE2dCwiY2hlY2tGb3JtYXRCQkFOIik7aShWNnQsImVsZWN0cm9uaWNGb3JtYXRJQkFOIik7aShqNnQsImZyaWVuZGx5Rm9ybWF0SUJBTiIpO2koc1VyLCJpc1ZhbGlkSUJBTkNoZWNrc3VtIik7aShuVXIsInJlcGxhY2VDaGFyYXRlcldpdGhDb2RlIik7aShHRWEsIm1vZDk3MTBJYmFuIik7aSh5bzEsImdldENvdW50cnlTcGVjaWZpY2F0aW9ucyIpO2koWUVhLCJpc1ZhbGlkQklDIik7KGZ1bmN0aW9uKHQpe3RbdC5Ob0JJQ1Byb3ZpZGVkPTBdPSJOb0JJQ1Byb3ZpZGVkIix0W3QuTm9CSUNDb3VudHJ5PTFdPSJOb0JJQ0NvdW50cnkiLHRbdC5Xcm9uZ0JJQ0Zvcm1hdD0yXT0iV3JvbmdCSUNGb3JtYXQifSkoYnRlfHwoYnRlPXt9KSk7aSh3bzEsInZhbGlkYXRlQklDIik7aShrbzEsImV4dHJhY3RCSUMiKTtLRWE9aShmdW5jdGlvbih0KXtmb3IodmFyIGU9WzUsNCwzLDIsNyw2LDUsNCwzLDJdLHI9dC5yZXBsYWNlKC9bXHMuXSsvZywiIiksYT1wYXJzZUludChyLmNoYXJBdCgxMCksMTApLHM9ci5zdWJzdHJpbmcoMCwxMCksbj0wLG89MDtvPDEwO28rKyluKz1wYXJzZUludChzLmNoYXJBdChvKSwxMCkqZVtvXTt2YXIgbD1uJTExO3JldHVybiBhPT09KGw9PT0wPzA6MTEtbCl9LCJjaGVja05vcndheUJCQU4iKSxaRWE9aShmdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UoL1tccy5dKy9nLCIiKSxyPXBhcnNlSW50KGUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtMiksMTApLGE9cGFyc2VJbnQoZS5zdWJzdHJpbmcoZS5sZW5ndGgtMixlLmxlbmd0aCksMTApLHM9ciU5Nz09PTA/OTc6ciU5NztyZXR1cm4gcz09PWF9LCJjaGVja0JlbGdpYW5CQkFOIiksWHBlPWkoZnVuY3Rpb24odCl7Zm9yKDt0Lmxlbmd0aD4yOyl7dmFyIGU9dC5zbGljZSgwLDYpLHI9cGFyc2VJbnQoZSwxMCk7aWYoaXNOYU4ocikpcmV0dXJuIE5hTjt0PXIlOTcrdC5zbGljZShlLmxlbmd0aCl9cmV0dXJuIHBhcnNlSW50KHQsMTApJTk3fSwibW9kOTcxMCIpLHF5PWkoZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKC9bXHMuXSsvZywiIikscj1YcGUoZSk7cmV0dXJuIHI9PT0xfSwiY2hlY2tNb2Q5NzEwQkJBTiIpLFFFYT1pKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bMyw5LDcsMSwzLDksN10scj1wYXJzZUludCh0LmNoYXJBdCg3KSwxMCksYT10LnN1YnN0cmluZygwLDcpLHM9MCxuPTA7bjw3O24rKylzKz1wYXJzZUludChhLmNoYXJBdChuKSwxMCkqZVtuXTt2YXIgbz1zJTEwO3JldHVybiByPT09KG89PT0wPzA6MTAtbyl9LCJjaGVja1BvbGFuZEJCQU4iKSxYRWE9aShmdW5jdGlvbih0KXtmb3IodmFyIGU9WzQsOCw1LDEwLDksNywzLDZdLHI9WzEsMiw0LDgsNSwxMCw5LDcsMyw2XSxhPXBhcnNlSW50KHQuY2hhckF0KDgpLDEwKSxzPXBhcnNlSW50KHQuY2hhckF0KDkpLDEwKSxuPXQuc3Vic3RyaW5nKDAsOCksbz10LnN1YnN0cmluZygxMCwyMCksbD0wLGM9MDtjPDg7YysrKWwrPXBhcnNlSW50KG4uY2hhckF0KGMpLDEwKSplW2NdO3ZhciBkPWwlMTE7aWYoYSE9PShkPT09MD8wOmQ9PT0xPzE6MTEtZCkpcmV0dXJuITE7bD0wO2Zvcih2YXIgYz0wO2M8MTA7YysrKWwrPXBhcnNlSW50KG8uY2hhckF0KGMpLDEwKSpyW2NdO3JldHVybiBkPWwlMTEscz09PShkPT09MD8wOmQ9PT0xPzE6MTEtZCl9LCJjaGVja1NwYWluQkJBTiIpLG9Vcj1pKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTEwLGE9MDthPHQubGVuZ3RoO2ErKylyKz1wYXJzZUludCh0LmNoYXJBdChhKSwxMCksciUxMCE9PTAmJihyPXIlMTApLHI9cioyLHI9ciUxMTtyZXR1cm4gZT09PSgxMS1yPT09MTA/MDoxMS1yKX0sImNoZWNrTW9kMTExMCIpLEpFYT1pKGZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlSW50KHQuY2hhckF0KDYpLDEwKSxyPXBhcnNlSW50KHQuY2hhckF0KDE2KSwxMCksYT10LnN1YnN0cmluZygwLDYpLHM9dC5zdWJzdHJpbmcoNywxNik7cmV0dXJuIG9VcihhLGUpJiZvVXIocyxyKX0sImNoZWNrQ3JvYXRpYW5CQkFOIiksbFVyPWkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPVsxMCw1LDgsNCwyLDFdLHI9WzYsMyw3LDksMTAsNSw4LDQsMiwxXSxhPXBhcnNlSW50KHQuY2hhckF0KDkpLDEwKSxzPXBhcnNlSW50KHQuY2hhckF0KDE5KSwxMCksbj10LnN1YnN0cmluZyg0LDkpLG89dC5zdWJzdHJpbmcoMTAsMTkpLGw9MCxjPTA7YzxuLmxlbmd0aDtjKyspbCs9cGFyc2VJbnQobi5jaGFyQXQoYyksMTApKmVbY107dmFyIGQ9bCUxMTtpZihhIT09KGQ9PT0wPzA6ZD09PTE/MToxMS1kKSlyZXR1cm4hMTtsPTA7Zm9yKHZhciBjPTA7YzxvLmxlbmd0aDtjKyspbCs9cGFyc2VJbnQoby5jaGFyQXQoYyksMTApKnJbY107cmV0dXJuIGQ9bCUxMSxzPT09KGQ9PT0wPzA6ZD09PTE/MToxMS1kKX0sImNoZWNrQ3plY2hBbmRTbG92YWtCQkFOIiksZUlhPWkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPVs3LDEsMyw3LDEsMyw3LDEsMyw3LDEsMyw3XSxyPXBhcnNlSW50KHQuY2hhckF0KDE1KSwxMCksYT10LnN1YnN0cmluZygyLDE1KSxzPTAsbj0wO248YS5sZW5ndGg7bisrKXMrPXBhcnNlSW50KGEuY2hhckF0KG4pLDEwKSplW25dO3ZhciBvPXMlMTA7cmV0dXJuIHI9PT0obz09PTA/MDoxMC1vKX0sImNoZWNrRXN0b25pYW5CQkFOIiksY1VyPWkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLHI9QXJyYXkuZnJvbShlKSxhPTA7YTxlLmxlbmd0aDthKyspe3ZhciBzPXJbYV0uY2hhckNvZGVBdCgwKTtpZihzPj02NSlzd2l0Y2gocyl7Y2FzZSA2NTpjYXNlIDc0OnJbYV09IjEiO2JyZWFrO2Nhc2UgNjY6Y2FzZSA3NTpjYXNlIDgzOnJbYV09IjIiO2JyZWFrO2Nhc2UgNjc6Y2FzZSA3NjpjYXNlIDg0OnJbYV09IjMiO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3NzpjYXNlIDg1OnJbYV09IjQiO2JyZWFrO2Nhc2UgNjk6Y2FzZSA3ODpjYXNlIDg2OnJbYV09IjUiO2JyZWFrO2Nhc2UgNzA6Y2FzZSA3OTpjYXNlIDg3OnJbYV09IjYiO2JyZWFrO2Nhc2UgNzE6Y2FzZSA4MDpjYXNlIDg4OnJbYV09IjciO2JyZWFrO2Nhc2UgNzI6Y2FzZSA4MTpjYXNlIDg5OnJbYV09IjgiO2JyZWFrO2Nhc2UgNzM6Y2FzZSA4MjpjYXNlIDkwOnJbYV09IjkiO2JyZWFrfX12YXIgbj1YcGUoci5qb2luKCIiKSk7cmV0dXJuIG49PT0wfSwiY2hlY2tGcmVuY2hCQkFOIiksdElhPWkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPVs5LDcsMywxLDksNywzLDEsOSw3LDMsMSw5LDcsM10scj1wYXJzZUludCh0LmNoYXJBdCg3KSwxMCksYT10LnN1YnN0cmluZygwLDcpLHM9MCxuPTA7bjxhLmxlbmd0aDtuKyspcys9cGFyc2VJbnQoYS5jaGFyQXQobiksMTApKmVbbl07dmFyIG89cyUxMDtpZihyIT09KG89PT0wPzA6MTAtbykpcmV0dXJuITE7aWYocz0wLHQuZW5kc1dpdGgoIjAwMDAwMDAwIikpe2Zvcih2YXIgbD10LnN1YnN0cmluZyg4LDE1KSxjPXBhcnNlSW50KHQuY2hhckF0KDE1KSwxMCksbj0wO248bC5sZW5ndGg7bisrKXMrPXBhcnNlSW50KGwuY2hhckF0KG4pLDEwKSplW25dO3ZhciBkPXMlMTA7cmV0dXJuIGM9PT0oZD09PTA/MDoxMC1kKX1lbHNle2Zvcih2YXIgbD10LnN1YnN0cmluZyg4LDIzKSxjPXBhcnNlSW50KHQuY2hhckF0KDIzKSwxMCksbj0wO248bC5sZW5ndGg7bisrKXMrPXBhcnNlSW50KGwuY2hhckF0KG4pLDEwKSplW25dO3ZhciBmPXMlMTA7cmV0dXJuIGM9PT0oZj09PTA/MDoxMC1mKX19LCJjaGVja0h1bmdhcmlhbkJCQU4iKSxTbzE9aShmdW5jdGlvbih0LGUpe3JldHVybiB0eXBlb2YgUWxbdF0+InUiPyExOihRbFt0XS5iYmFuX3ZhbGlkYXRpb25fZnVuYz1lLCEwKX0sInNldENvdW50cnlCQkFOVmFsaWRhdGlvbiIpLFFsPXtBRDp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yNCJ9LEFFOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezN9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI3LTIzIn0sQUY6e30sQUc6e30sQUk6e30sQUw6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTciLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LEFNOnt9LEFPOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxBUTp7fSxBUjp7fSxBUzp7fSxBVDp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LEFVOnt9LEFXOnt9LEFYOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMH0sQVo6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjgifSxCQTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxeSxJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTUiLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sQkI6e30sQkQ6e30sQkU6e2NoYXJzOjE2LGJiYW5fcmVnZXhwOiJeWzAtOV17MTJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6WkVhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTE2In0sQkY6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sQkc6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs2fVtBLVowLTldezh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sQkg6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjIifSxCSTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI3In0sQko6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sQkw6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIn0sQk06e30sQk46e30sQk86e30sQlE6e30sQlI6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9W0EtWl17MX1bQS1aMC05XXsxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjgtMTIiLGJhbmtfaWRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LEJTOnt9LEJUOnt9LEJWOnt9LEJXOnt9LEJZOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxCWjp7fSxDQTp7fSxDQzp7fSxDRDp7fSxDRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sQ0c6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENIOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxDSTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezIzfSQifSxDSzp7fSxDTDp7fSxDTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sQ046e30sQ086e30sQ1I6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIyIn0sQ1U6e30sQ1Y6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LENXOnt9LENYOnt9LENZOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezh9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTciLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LENaOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmxVcixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LERFOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIxMy0yMiJ9LERKOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjcifSxESzp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LERNOnt9LERPOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sRFo6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCJ9LEVDOnt9LEVFOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmVJYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMCJ9LEVHOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezI1fSIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxFSDp7fSxFUjp7fSxFUzp7Y2hhcnM6MjQsYmJhbl92YWxpZGF0aW9uX2Z1bmM6WEVhLGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNCJ9LEVUOnt9LEZJOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTAifSxGSjp7fSxGSzp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezEyfSQiLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTE4In0sRk06e30sRk86e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sRlI6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpjVXIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQiLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNCJ9LEdBOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxHQjp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC05IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEdEOnt9LEdFOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTIyIn0sR0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LEdHOnt9LEdIOnt9LEdJOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTV9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjMifSxHTDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxHTTp7fSxHTjp7fSxHUDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sR1E6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEdSOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezd9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTYiLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI3LTI3In0sR1M6e30sR1Q6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17MjR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sR1U6e30sR1c6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsxOX0kIn0sR1k6e30sSEs6e30sSE06e30sSE46e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIn0sSFI6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeWzAtOV17MTd9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6SkVhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC02In0sSFQ6e30sSFU6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6dElhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy02IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LElEOnt9LElFOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTkiLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sSUw6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LElNOnt9LElOOnt9LElPOnt9LElROntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTV9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC02IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTEtMjMifSxJUjp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXsyMn0kIn0sSVM6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTMiLGJhbmtfaWRlbnRpZmllcjoiMC0xIn0sSVQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsxMH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtMTAiLGJhbmtfaWRlbnRpZmllcjoiMS01IixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI3In0sSkU6e30sSk06e30sSk86e2NoYXJzOjMwLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs0fVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiI0LTcifSxKUDp7fSxLRTp7fSxLRzp7fSxLSDp7fSxLSTp7fSxLTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sS046e30sS1A6e30sS1I6e30sS1c6e2NoYXJzOjMwLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjIwLTMwIn0sS1k6e30sS1o6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMjAifSxMQTp7fSxMQjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs0fVtBLVowLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjgifSxMQzp7Y2hhcnM6MzIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0zMiJ9LExJOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxMSzp7fSxMUjp7fSxMUzp7fSxMVDp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LExVOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxMVjp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTIxIn0sTFk6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTAtMjUifSxNQTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXsyNH0kIn0sTUM6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpjVXIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTUQ6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMjQifSxNRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxeSxJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjIifSxNRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sTUc6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LE1IOnt9LE1LOntjaGFyczoxOSxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTB9WzAtOV17Mn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxeSxJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxNTDp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezIyfSQifSxNTTp7fSxNTjp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjAifSxNTzp7fSxNUDp7fSxNUTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sTVI6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNyJ9LE1TOnt9LE1UOntjaGFyczozMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NX1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOCIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE1LTMxIn0sTVU6e2NoYXJzOjMwLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxOX1bQS1aXXszfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtNyIsYmFua19pZGVudGlmaWVyOiIwLTUiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMzAifSxNVjp7fSxNVzp7fSxNWDp7fSxNWTp7fSxNWjp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sTkE6e30sTkM6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE5FOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LE5GOnt9LE5HOnt9LE5JOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCIsYmFua19pZGVudGlmaWVyOiIwLTMiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sTkw6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxMH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0xOCJ9LE5POntjaGFyczoxNSxiYmFuX3JlZ2V4cDoiXlswLTldezExfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOktFYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xNSJ9LE5QOnt9LE5SOnt9LE5VOnt9LE5aOnt9LE9NOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITEsYmFua19pZGVudGlmaWVyOiIwLTIifSxQQTp7fSxQRTp7fSxQRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUEc6e30sUEg6e30sUEs6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxQTDp7Y2hhcnM6MjgsYmJhbl92YWxpZGF0aW9uX2Z1bmM6UUVhLGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIwLTciLGFjY291bnRfaW5kZW50aWZpZXI6IjItMjgifSxQTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUE46e30sUFI6e30sUFM6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sUFQ6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6cXksSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxQVzp7fSxQWTp7fSxRQTp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOSJ9LFJFOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxSTzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTI0In0sUlM6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6cXksSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sUlU6e2NoYXJzOjMzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9W0EtWjAtOV17MTV9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiOS0xMyIsYmFua19pZGVudGlmaWVyOiIwLTgiLGFjY291bnRfaW5kZW50aWZpZXI6IjEzLTMzIn0sUlc6e30sU0E6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17Mn1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI0In0sU0I6e30sU0M6e2NoYXJzOjMxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH1bQS1aXXszfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtNyIsYmFua19pZGVudGlmaWVyOiIwLTUiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI4In0sU0Q6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTE4In0sU0U6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxTRzp7fSxTSDp7fSxTSTp7Y2hhcnM6MTksYmJhbl9yZWdleHA6Il5bMC05XXsxNX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxeSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItNCIsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjktMTYifSxTSjp7fSxTSzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpsVXIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITB9LFNMOnt9LFNNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MTB9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTEwIn0sU046e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsyMn0kIn0sU086e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC02IixhY2NvdW50X2luZGVudGlmaWVyOiIxMS0yMyJ9LFNSOnt9LFNTOnt9LFNUOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyJ9LFNWOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxTWDp7fSxTWTp7fSxTWjp7fSxUQzp7fSxURDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sVEY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFRHOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LFRIOnt9LFRKOnt9LFRLOnt9LFRMOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI0LTIzIn0sVE06e30sVE46e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi00IixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI0In0sVE86e30sVFI6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17NX1bQS1aMC05XXsxN30kIixJQkFOUmVnaXN0cnk6ITB9LFRUOnt9LFRWOnt9LFRXOnt9LFRaOnt9LFVBOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezZ9W0EtWjAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjE1LTI5In0sVUc6e30sVU06e30sVVM6e30sVVk6e30sVVo6e30sVkE6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9IixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI3LTIyIn0sVkM6e30sVkU6e30sVkc6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yNCJ9LFZJOnt9LFZOOnt9LFZVOnt9LFdGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxXUzp7fSxYSzp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjAifSxZRTp7fSxZVDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sWkE6e30sWk06e30sWlc6e319fSk7dmFyIHVVcixwVXI9dSgoKT0+e3ZlKCk7dVVyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXltZW50LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIElCQU4gSW5wdXQifSAuc3VidGl0bGU9JHsiSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIHdpdGggYXV0b21hdGljIGZvcm1hdHRpbmcifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiQmFuayBBY2NvdW50IElCQU4ifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW50ZXIgeW91ciBJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBJQkFOIGNhbiBiZSBmb3VuZCBvbiB5b3VyIGJhbmsgc3RhdGVtZW50In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJWZXJpZmllZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBoYXMgYmVlbiB2ZXJpZmllZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJERTg5MzcwNDAwNDQwNTMyMDEzMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBheW1lbnQgSW5mb3JtYXRpb24ifSAuc3VidGl0bGU9JHsiSUJBTiBpbnB1dCB3aXRoIGhvcml6b250YWwgbGF5b3V0IGZvciBwYXltZW50IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgSG9sZGVyIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiSm9obiBEb2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgICAgLmxhYmVsPSR7IklCQU4ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC52YWx1ZT0keyJHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGZpZWxkcyBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IlBheW1lbnQgQWNjb3VudCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJSZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBwYXltZW50cyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkxvY2tlZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJGUjE0MjAwNDEwMTAwNTA1MDAwMTNNMDI2MDYifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhbmsgVHJhbnNmZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIGV4YW1wbGUgd2l0aCBJQkFOIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUmVjaXBpZW50IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIC5sYWJlbD0keyJSZWNpcGllbnQgSUJBTiJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlRyYW5zZmVyIFJlZmVyZW5jZSJ9IC5pbmZvVGV4dD0keyJPcHRpb25hbCByZWZlcmVuY2UgZm9yIHRoZSB0cmFuc2ZlciJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQW1vdW50In0gLmlucHV0VHlwZT0keyJudW1iZXIifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBlZmUsazksdGZlLFU2dD11KCgpPT57dmUoKTtNcigpO0NpKCk7ZFVyKCk7cFVyKCk7bHQoKTtlZmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGs5PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSx0ZmU9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LWliYW4iKV0sZSxyPVtdLGEscz1FdCxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0lucHV0SWJhbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLGVmZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRTdHJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImVudGVyZWRTdHJpbmciaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5lbnRlcmVkU3RyaW5nLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuZW50ZXJlZFN0cmluZz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZWZlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW50ZXJlZEliYW5Jc1ZhbGlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJlbnRlcmVkSWJhbklzVmFsaWQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5lbnRlcmVkSWJhbklzVmFsaWQsImdldCIpLHNldDppKChnLHkpPT57Zy5lbnRlcmVkSWJhbklzVmFsaWQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLGVmZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJ2YWx1ZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnZhbHVlLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cudmFsdWU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLGVmZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHIpLHY9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPXVVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9azkodGhpcyxvLCIiKTtnZXQgZW50ZXJlZFN0cmluZygpe3JldHVybiB0aGlzLiNlfXNldCBlbnRlcmVkU3RyaW5nKGIpe3RoaXMuI2U9Yn0jdD0oazkodGhpcyxsKSxrOSh0aGlzLGQsITEpKTtnZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGVudGVyZWRJYmFuSXNWYWxpZChiKXt0aGlzLiN0PWJ9I3I9KGs5KHRoaXMsZiksazkodGhpcyxoLCIiKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZhbHVlKGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSUJBTiBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfHwiSUJBTiJ9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwIn0KICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHtiPT57bGV0IGc9Yi5yZXBsYWNlKC8gL2csIiIpO3JldHVybiBnLmxlbmd0aD09PTA/e3ZhbGlkOiEwLG1lc3NhZ2U6IiJ9OkpwZShnKT97dmFsaWQ6ITAsbWVzc2FnZToiSUJBTiBpcyB2YWxpZCJ9Ont2YWxpZDohMSxtZXNzYWdlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBJQkFOIn19fQogICAgICAgICAgQGlucHV0PSR7Yj0+e3RoaXMudmFsaWRhdGVJYmFuKGIpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoYil7c3VwZXIuZmlyc3RVcGRhdGVkKGIpO2xldCBnPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtnJiZnLmNoYW5nZVN1YmplY3QmJmcuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWFzeW5jIHZhbGlkYXRlSWJhbihiKXtsZXQgZz1iLnRhcmdldCx5PWc/LnZhbHVlO3k9eXx8IiIsdGhpcy5lbnRlcmVkU3RyaW5nIT09eSYmKHRoaXMuZW50ZXJlZFN0cmluZz1qNnQoeSl8fCIiLGcmJihnLnZhbHVlPXRoaXMuZW50ZXJlZFN0cmluZyx0aGlzLnZhbHVlPXRoaXMuZW50ZXJlZFN0cmluZyx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSkpLHRoaXMuZW50ZXJlZEliYW5Jc1ZhbGlkPUpwZSh0aGlzLmVudGVyZWRTdHJpbmcucmVwbGFjZSgvIC9nLCIiKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShiKXt0aGlzLnZhbHVlPWIsdGhpcy5lbnRlcmVkU3RyaW5nPWo2dChiKXx8IiJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGs5KHRoaXMsbSl9c3RhdGlje2s5KGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBmVXIsaFVyPXUoKCk9Pnt2ZSgpO2ZVcj1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3JlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNldHRpbmdzLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuc2V0dGluZ3MtZ3JpZCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TXVsdGktT3B0aW9uIFRvZ2dsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNlbGVjdCBmcm9tIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBhIHNtb290aCBzbGlkaW5nIGluZGljYXRvciBhbmltYXRpb24uPC9kaXY+CgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGlzcGxheSBNb2RlIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkNob29zZSBob3cgY29udGVudCBpcyBkaXNwbGF5ZWQifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBzZXR0aW5nIGFmZmVjdHMgaG93IGl0ZW1zIGFwcGVhciBvbiB5b3VyIGRhc2hib2FyZCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJMaXN0IFZpZXciLCJHcmlkIFZpZXciLCJDb21wYWN0Il19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJHcmlkIFZpZXcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiVC1TaGlydCBTaXplIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlNlbGVjdCB5b3VyIHByZWZlcnJlZCBzaXplIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlhTIiwiUyIsIk0iLCJMIiwiWEwiLCJYWEwiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik0ifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Cb29sZWFuIFRvZ2dsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBvbi9vZmYgc3dpdGNoZXMgd2l0aCBjdXN0b21pemFibGUgbGFiZWxzIGZvciBjbGVhcmVyIGNvbnRleHQuPC9kaXY+CgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJFbmFibGUgb3IgZGlzYWJsZSBwdXNoIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7InRydWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgTW9kZSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTd2l0Y2ggYmV0d2VlbiBsaWdodCBhbmQgZGFyayB0aGVtZSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkRhcmsifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJMaWdodCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJEYXJrIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2V0dGluZ3MgR3JpZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcnJhbmdlZCBpbiBhIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXQuPC9kaXY+CgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQXV0by1TYXZlIn0KICAgICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkVuYWJsZWQifQogICAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkRpc2FibGVkIn0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVuZ2xpc2giLCJHZXJtYW4iLCJGcmVuY2giLCJTcGFuaXNoIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuZ2xpc2gifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUXVhbGl0eSJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxvdyIsIk1lZGl1bSIsIkhpZ2giLCJVbHRyYSJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJIaWdoIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlByaXZhY3kifQogICAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiUHJpdmF0ZSJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiUHVibGljIn0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJpdmF0ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdGF0ZXMgJiBGb3JtIEludGVncmF0aW9uPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+RXhhbXBsZXMgb2YgZGlzYWJsZWQgc3RhdGVzIGFuZCBpbnRlZ3JhdGlvbiB3aXRoaW4gZm9ybXMuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJBY2NvdW50IFR5cGUifQogICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgc2V0dGluZyBpcyBsb2NrZWQifQogICAgICAgICAgLm9wdGlvbnM9JHtbIkZyZWUiLCJQcm8iLCJFbnRlcnByaXNlIl19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW50ZXJwcmlzZSJ9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIAogICAgICAgIDxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlByb2plY3QgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJWaXNpYmlsaXR5In0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiUHVibGljIn0KICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiUHJpdmF0ZSJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcml2YXRlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiTGljZW5zZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJNSVQiLCJBcGFjaGUgMi4wIiwiR1BMIHYzIiwiUHJvcHJpZXRhcnkiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik1JVCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBTOSxvbCxyZmUsVzZ0PXUoKCk9Pnt2ZSgpO0NpKCk7ZmMoKTtoVXIoKTtsdCgpO1M5PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxvbD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0scmZlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZSIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRNdWx0aXRvZ2dsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCgpXSxwPVtQKCldLHY9W1Aoe3R5cGU6QXJyYXl9KV0seT1bUCgpXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sUzkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0eXBlImluIEUsImhhcyIpLGdldDppKEU9PkUudHlwZSwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnR5cGU9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxvLGwpLFM5KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbGVhblRydWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJib29sZWFuVHJ1ZU5hbWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5ib29sZWFuVHJ1ZU5hbWUsImdldCIpLHNldDppKChFLEIpPT57RS5ib29sZWFuVHJ1ZU5hbWU9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxkLGYpLFM5KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbGVhbkZhbHNlTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iYm9vbGVhbkZhbHNlTmFtZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmJvb2xlYW5GYWxzZU5hbWUsImdldCIpLHNldDppKChFLEIpPT57RS5ib29sZWFuRmFsc2VOYW1lPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0saCxtKSxTOSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im9wdGlvbnMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5vcHRpb25zLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uub3B0aW9ucz1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGIsZyksUzkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2VsZWN0ZWRPcHRpb24iaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zZWxlY3RlZE9wdGlvbiwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnNlbGVjdGVkT3B0aW9uPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sayxNKSxTOSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iYm9vbFZhbHVlImluIEUsImhhcyIpLGdldDppKEU9PkUuYm9vbFZhbHVlLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuYm9vbFZhbHVlPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sXyxTKSxTOShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpMfSxudWxsLHIpLE89YT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPWZVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9b2wodGhpcyxvLCJtdWx0aSIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoTCl7dGhpcy4jZT1MfSN0PShvbCh0aGlzLGwpLG9sKHRoaXMsZCwidHJ1ZSIpKTtnZXQgYm9vbGVhblRydWVOYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJvb2xlYW5UcnVlTmFtZShMKXt0aGlzLiN0PUx9I3I9KG9sKHRoaXMsZiksb2wodGhpcyxoLCJmYWxzZSIpKTtnZXQgYm9vbGVhbkZhbHNlTmFtZSgpe3JldHVybiB0aGlzLiNyfXNldCBib29sZWFuRmFsc2VOYW1lKEwpe3RoaXMuI3I9TH0jYT0ob2wodGhpcyxtKSxvbCh0aGlzLGIsW10pKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBvcHRpb25zKEwpe3RoaXMuI2E9TH0jaT0ob2wodGhpcyxnKSxvbCh0aGlzLGssIiIpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRPcHRpb24oTCl7dGhpcy4jaT1MfSNzPShvbCh0aGlzLE0pLG9sKHRoaXMsXywhMSkpO2dldCBib29sVmFsdWUoKXtyZXR1cm4gdGhpcy4jc31zZXQgYm9vbFZhbHVlKEwpe3RoaXMuI3M9TH1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy50eXBlPT09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249PT10aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShMKXt0aGlzLnR5cGU9PT0iYm9vbGVhbiImJnR5cGVvZiBMPT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj1MP3RoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuYm9vbGVhbkZhbHNlTmFtZTp0aGlzLnNlbGVjdGVkT3B0aW9uPUwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5oYXNVcGRhdGVkJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNldEluZGljYXRvcigpfSl9c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9ucyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2U0ZTRlNyIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmluZGljYXRvciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuc2VsZWN0aW9ucyB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5pbmRpY2F0b3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIiwicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5kaWNhdG9yIj48L2Rpdj4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcChMPT53YDxkaXYgY2xhc3M9Im9wdGlvbiAke0w9PT10aGlzLnNlbGVjdGVkT3B0aW9uPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZWxlY3Rpb24oTCl9PgogICAgICAgICAgICAgICAgJHtMfQogICAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudHlwZT09PSJib29sZWFuIiYmdGhpcy5vcHRpb25zLmxlbmd0aD09PTAmJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSx0aGlzLnNlbGVjdGVkT3B0aW9ufHwodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSIpKSwhdGhpcy5zZWxlY3RlZE9wdGlvbiYmdGhpcy5vcHRpb25zLmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLm9wdGlvbnNbMF0pfWFzeW5jIGZpcnN0VXBkYXRlZChMKXtzdXBlci5maXJzdFVwZGF0ZWQoTCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0pLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LGF3YWl0IG5ldyBQcm9taXNlKEU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShFKSksdGhpcy5zZXRJbmRpY2F0b3IoKX1hc3luYyBoYW5kbGVTZWxlY3Rpb24oTCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRPcHRpb249TCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuc2V0SW5kaWNhdG9yKCkpfWluZGljYXRvckluaXRpYWxpemVkPShvbCh0aGlzLFMpLCExKTthc3luYyBzZXRJbmRpY2F0b3IoKXtsZXQgTD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmluZGljYXRvciIpLEU9dGhpcy5vcHRpb25zLmluZGV4T2YodGhpcy5zZWxlY3RlZE9wdGlvbik7aWYoRT09PS0xfHwhTCl7TCYmKEwuc3R5bGUub3BhY2l0eT0iMCIpO3JldHVybn1sZXQgQj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgLm9wdGlvbjpudGgtY2hpbGQoJHtFKzJ9KWApO0wmJkImJih0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoTC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57TC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSksTC5zdHlsZS53aWR0aD1gJHtCLmNsaWVudFdpZHRofXB4YCxMLnN0eWxlLmxlZnQ9YCR7Qi5vZmZzZXRMZWZ0fXB4YCxMLnN0eWxlLm9wYWNpdHk9IjEiKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoTCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgTD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249TD90aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiOnRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIjp0aGlzLnNlbGVjdGVkT3B0aW9uPUwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5oYXNVcGRhdGVkJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNldEluZGljYXRvcigpfSl9c3RhdGlje29sKGEscil9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBtVXIsZ1VyPXUoKCk9Pnt2ZSgpO21Vcj1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3JlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVudGVyIHlvdXIgcGhvbmUgbnVtYmVyIHdpdGggY291bnRyeSBjb2RlIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkluY2x1ZGUgY291bnRyeSBjb2RlIGZvciBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik1vYmlsZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IjQxNTU1NTEyMzQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgICAubGFiZWw9JHsiT2ZmaWNlIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDgwMCkgNTU1LTAwMDAifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkludGVybmF0aW9uYWwgQ29udGFjdCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBdXRvbWF0aWNhbGx5IGZvcm1hdHMgaW50ZXJuYXRpb25hbCBudW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjQ0MTIzNDU2Nzg5MCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWVyZ2VuY3kgQ29udGFjdCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyI5MTEifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0IGFzIHBhcnQgb2YgYSBjb250YWN0IGZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRnVsbCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUgLmxhYmVsPSR7IlBob25lIE51bWJlciJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJFbWFpbCJ9IC5pbnB1dFR5cGU9JHsiZW1haWwifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGFmZSxNOSxpZmUsRzZ0PXUoKCk9Pnt2ZSgpO01yKCk7Q2koKTtnVXIoKTtsdCgpO2FmZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sTTk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGlmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtcGhvbmUiKV0sZSxyPVtdLGEscz1FdCxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UGhvbmUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSxhZmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb3JtYXR0ZWRQaG9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iZm9ybWF0dGVkUGhvbmUiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5mb3JtYXR0ZWRQaG9uZSwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmZvcm1hdHRlZFBob25lPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxhZmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4idmFsdWUiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy52YWx1ZSwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnZhbHVlPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCxmKSxhZmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4icGxhY2Vob2xkZXIiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnBsYWNlaG9sZGVyPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxhZmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1tVXI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPU05KHRoaXMsbywiIik7Z2V0IGZvcm1hdHRlZFBob25lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGZvcm1hdHRlZFBob25lKGIpe3RoaXMuI2U9Yn0jdD0oTTkodGhpcyxsKSxNOSh0aGlzLGQsIiIpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdmFsdWUoYil7dGhpcy4jdD1ifSNyPShNOSh0aGlzLGYpLE05KHRoaXMsaCwiKzEgKDU1NSkgMTIzLTQ1NjciKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBsYWNlaG9sZGVyKGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogUGhvbmUgaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZm9ybWF0dGVkUGhvbmV9CiAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICBAaW5wdXQ9JHtiPT50aGlzLmhhbmRsZVBob25lSW5wdXQoYil9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKGIpe3N1cGVyLmZpcnN0VXBkYXRlZChiKSx0aGlzLnZhbHVlJiYodGhpcy5mb3JtYXR0ZWRQaG9uZT10aGlzLmZvcm1hdFBob25lTnVtYmVyKHRoaXMudmFsdWUpKTtsZXQgZz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7ZyYmZy5jaGFuZ2VTdWJqZWN0JiZnLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9KX1oYW5kbGVQaG9uZUlucHV0KGIpe2xldCBnPWIudGFyZ2V0LHk9dGhpcy5jbGVhblBob25lTnVtYmVyKGcudmFsdWUpLGs9dGhpcy5mb3JtYXRQaG9uZU51bWJlcih5KTtpZihnLnZhbHVlIT09ayl7bGV0IE09Zy5zZWxlY3Rpb25TdGFydHx8MDtnLnZhbHVlPWs7bGV0IE49dGhpcy5jYWxjdWxhdGVDdXJzb3JQb3NpdGlvbih5LGssTSk7Zy5zZXRTZWxlY3Rpb25SYW5nZShOLE4pfXRoaXMuZm9ybWF0dGVkUGhvbmU9ayx0aGlzLnZhbHVlPXksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Y2xlYW5QaG9uZU51bWJlcihiKXtyZXR1cm4gYi5yZXBsYWNlKC9cRC9nLCIiKX1mb3JtYXRQaG9uZU51bWJlcihiKXtsZXQgZz10aGlzLmNsZWFuUGhvbmVOdW1iZXIoYik7cmV0dXJuIGcubGVuZ3RoPT09MD8iIjpnLmxlbmd0aDw9Mz9nOmcubGVuZ3RoPD02P2AoJHtnLnNsaWNlKDAsMyl9KSAke2cuc2xpY2UoMyl9YDpnLmxlbmd0aDw9MTA/YCgke2cuc2xpY2UoMCwzKX0pICR7Zy5zbGljZSgzLDYpfS0ke2cuc2xpY2UoNil9YDpgKyR7Zy5zbGljZSgwLGcubGVuZ3RoLTEwKX0gKCR7Zy5zbGljZSgtMTAsLTcpfSkgJHtnLnNsaWNlKC03LC00KX0tJHtnLnNsaWNlKC00KX1gfWNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKGIsZyx5KXtsZXQgaz0wO2ZvcihsZXQgTT0wO008eSYmTTxnLmxlbmd0aDtNKyspL1xkLy50ZXN0KGdbTV0pfHxrKys7cmV0dXJuIE1hdGgubWluKHkrayxnLmxlbmd0aCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShiKXt0aGlzLnZhbHVlPWIsdGhpcy5mb3JtYXR0ZWRQaG9uZT10aGlzLmZvcm1hdFBob25lTnVtYmVyKGIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxNOSh0aGlzLG0pfXN0YXRpY3tNOShhLHIpfX07cmV0dXJuIHY9YX0pKCl9KTt2YXIgYlVyLHhVcj11KCgpPT57dmUoKTt3YSgpO3duKCk7YlVyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb24iKSxyPXQucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb2ZmIiksYT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5mZWF0dXJlLXRvZ2dsZXMgZGVlcy1pbnB1dC10b2dnbGUiKTtlJiZyJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLmZvckVhY2gocz0+e2xldCBuPXM7IW4uZGlzYWJsZWQmJiFuLnJlcXVpcmVkJiYobi52YWx1ZT0hMCl9KX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5mb3JFYWNoKHM9PntsZXQgbj1zOyFuLmRpc2FibGVkJiYhbi5yZXF1aXJlZCYmKG4udmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvZ2dsZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CgogICAgICAgIC5ob3Jpem9udGFsLXRvZ2dsZXMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CgogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICB9CgogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5mZWF0dXJlLXRvZ2dsZXMgewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuZHJhZy1oaW50IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVG9nZ2xlIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBvbi9vZmYgdG9nZ2xlIHN3aXRjaCB3aXRoIGRyYWcgc3VwcG9ydCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBmZWF0dXJlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsiYmFzaWMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJBY3RpdmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiYWN0aXZlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiV2l0aCBkZXNjcmlwdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgaGFzIGFkZGl0aW9uYWwgaGVscGVyIHRleHQgZXhwbGFpbmluZyBpdHMgcHVycG9zZSJ9CiAgICAgICAgICAgIC5rZXk9JHsid2l0aERlc2MifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPHAgY2xhc3M9ImRyYWctaGludCI+VGlwOiBZb3UgY2FuIGRyYWcgdGhlIHRvZ2dsZSBrbm9iIHRvIHN3aXRjaCBzdGF0ZXM8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUb2dnbGUgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB0b2dnbGUgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvZmYpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCAoYWx3YXlzIG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgdG9nZ2xlIGNhbm5vdCBiZSB0dXJuZWQgb2ZmIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiVG9nZ2xlcyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgaW50ZXJmYWNlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLXRvZ2dsZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiV2lGaSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJsdWV0b290aCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkdQUyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik5GQyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgaW4gYSB0eXBpY2FsIHNldHRpbmdzIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oND4KCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgb24geW91ciBkZXZpY2UifQogICAgICAgICAgICAgIC5rZXk9JHsicHVzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgaW1wb3J0YW50IHVwZGF0ZXMgdmlhIGVtYWlsIn0KICAgICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU291bmQifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJQbGF5IGEgc291bmQgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsic291bmQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJWaWJyYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJWaWJyYXRlIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InZpYnJhdGlvbiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFRvZ2dsZXMifSAuc3VidGl0bGU9JHsiQmF0Y2ggb3BlcmF0aW9ucyBvbiBtdWx0aXBsZSB0b2dnbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vbiIgdHlwZT0ic2Vjb25kYXJ5Ij5FbmFibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vZmYiIHR5cGU9InNlY29uZGFyeSI+RGlzYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLXRvZ2dsZXMiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJkYXJrTW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tc2F2ZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJhdXRvU2F2ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWxsIGNoZWNrIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7InNwZWxsQ2hlY2sifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wZXIgbW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJkZXZNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmV0YSBmZWF0dXJlcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJiZXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlIHRvIHNlZSB2YWx1ZSBjaGFuZ2VzIGluIHJlYWwtdGltZSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFpcnBsYW5lIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaXJwbGFuZS1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gQWlycGxhbmUgbW9kZTogJHt0LmRldGFpbD8iT04iOiJPRkYifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRG8gbm90IGRpc3R1cmIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkbmQtb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9YERvIG5vdCBkaXN0dXJiOiAke3QuZGV0YWlsPyJFTkFCTEVEIjoiRElTQUJMRUQifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImFpcnBsYW5lLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5BaXJwbGFuZSBtb2RlOiBPRkY8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRuZC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRvIG5vdCBkaXN0dXJiOiBESVNBQkxFRDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgdlVyLFk2dCxzZmUsSzZ0PXUoKCk9Pnt2ZSgpO01yKCk7Q2koKTt4VXIoKTtfcygpO2x0KCk7dlVyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxZNnQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHNmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtdG9nZ2xlIildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRvZ2dsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHZVcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ2YWx1ZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnZhbHVlLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YudmFsdWU9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLHZVcihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWJVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9WTZ0KHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGQpe3RoaXMuI2U9ZH1jdXJyZW50WD0oWTZ0KHRoaXMsbCksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1rbm9iLmRyYWdnaW5nIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWx1ZV0pIC50b2dnbGUta25vYiB7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjay5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFJlcXVpcmVkIHN0YXRlIChsb2NrZWQgb24pICovCiAgICAgIDpob3N0KFtyZXF1aXJlZF1bdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDYxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA0OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDYxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA0OS44JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUta25vYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAvKiBMYWJlbCAqLwogICAgICAubGFiZWwtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIEBjbGljaz0iJHt0aGlzLmhhbmRsZUNsaWNrfSI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtdHJhY2sgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUta25vYiIKICAgICAgICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBhZGRpbmcrdGhpcy5jdXJyZW50WH1weDsiCiAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSIke3RoaXMub25Qb2ludGVyRG93bn0iCiAgICAgICAgICAgICAgQHBvaW50ZXJtb3ZlPSIke3RoaXMub25Qb2ludGVyTW92ZX0iCiAgICAgICAgICAgICAgQHBvaW50ZXJ1cD0iJHt0aGlzLm9uUG9pbnRlclVwfSIKICAgICAgICAgICAgICBAcG9pbnRlcmNhbmNlbD0iJHt0aGlzLm9uUG9pbnRlclVwfSIKICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJ0b2dnbGUtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKGQpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChkKSx0aGlzLnJlcXVpcmVkJiYhdGhpcy52YWx1ZSYmKHRoaXMudmFsdWU9ITApLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFzeW5jIGhhbmRsZUNsaWNrKGQpe2lmKHRoaXMuaXNEcmFnZ2luZ3x8dGhpcy5oYXNEcmFnZ2VkKXtkLnN0b3BQcm9wYWdhdGlvbigpLGQucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoIXRoaXMuZGlzYWJsZWQpe2lmKHRoaXMucmVxdWlyZWQpe3RoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksYXdhaXQgbmV3IFByb21pc2UoZj0+c2V0VGltZW91dChmLDEwKSksdGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbC0zLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwKSx0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLHRoaXMucmVxdWVzdFVwZGF0ZSgpO3JldHVybn1kLnN0b3BQcm9wYWdhdGlvbigpLGQucHJldmVudERlZmF1bHQoKSx0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxjci5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLnRoZW4oKCk9Pnt0aGlzLmhhc0RyYWdnZWQ9ITF9KX19b25Qb2ludGVyRG93bihkKXt0aGlzLnJlcXVpcmVkfHx0aGlzLmRpc2FibGVkfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuc3RhcnRYPWQuY2xpZW50WC10aGlzLmN1cnJlbnRYLGQudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGQucG9pbnRlcklkKSl9b25Qb2ludGVyTW92ZShkKXtpZighdGhpcy5pc0RyYWdnaW5nKXJldHVybjtsZXQgZj1kLmNsaWVudFgtdGhpcy5zdGFydFg7dGhpcy5oYXNEcmFnZ2VkPSEwO2xldCBwPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS1rbm9iIik7cCYmcC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY3VycmVudFg9TWF0aC5tYXgoMCxNYXRoLm1pbihmLHRoaXMubWF4VHJhdmVsKSksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9b25Qb2ludGVyVXAoZCl7aWYoIXRoaXMuaXNEcmFnZ2luZ3x8KGQudGFyZ2V0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShkLnBvaW50ZXJJZCksdGhpcy5pc0RyYWdnaW5nPSExLCF0aGlzLmhhc0RyYWdnZWQpKXJldHVybjtsZXQgZj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUta25vYiIpO2YmJmYuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKTtsZXQgcD10aGlzLm1heFRyYXZlbC8yO3RoaXMudmFsdWU9dGhpcy5jdXJyZW50WD5wLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxjci5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLnRoZW4oKCk9Pnt0aGlzLmhhc0RyYWdnZWQ9ITF9KX11cGRhdGVkKGQpe3N1cGVyLnVwZGF0ZWQoZCksZC5oYXMoInZhbHVlIikmJiF0aGlzLmlzRHJhZ2dpbmcmJiF0aGlzLmhhc0RyYWdnZWQmJih0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9aGFuZGxlS2V5ZG93bihkKXsoZC5rZXk9PT0iICJ8fGQua2V5PT09IkVudGVyIikmJihkLnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVDbGljayhkKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShkKXt0aGlzLnZhbHVlPWR9Zm9jdXMoKXtsZXQgZD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUtdHJhY2siKTtkJiZkLmZvY3VzKCl9c3RhdGlje1k2dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgeVVyLHdVcj11KCgpPT57dmUoKTt5VXI9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5mby1ib3ggewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTNmMmZkOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICMxOTc2ZDI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5pbmZvLWJveCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTBjYWY5OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFR5cGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJBZGQgYW5kIHJlbW92ZSBpdGVtcyBmcm9tIGEgbGlzdCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgdGFncyBieSB0eXBpbmcgYW5kIHByZXNzaW5nIEVudGVyIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRhZ3MgaGVscCBjYXRlZ29yaXplIGFuZCBmaWx0ZXIgeW91ciBjb250ZW50In0KICAgICAgICAgICAgLnZhbHVlPSR7WyJqYXZhc2NyaXB0IiwidHlwZXNjcmlwdCIsIndlYi1jb21wb25lbnRzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIE1lbWJlcnMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHtbImFsaWNlQGV4YW1wbGUuY29tIiwiYm9iQGV4YW1wbGUuY29tIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2tpbGxzICYgS2V5d29yZHMifSAuc3VidGl0bGU9JHsiTWFuYWdlIGxpc3RzIG9mIHNraWxscyBhbmQga2V5d29yZHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IllvdXIgU2tpbGxzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJIVE1MIiwiQ1NTIiwiSmF2YVNjcmlwdCIsIk5vZGUuanMiLCJSZWFjdCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcmllcyJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJUZWNobm9sb2d5IiwiRGVzaWduIiwiQnVzaW5lc3MiXX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IktleXdvcmRzIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHtbImlubm92YXRpb24iLCJzdGFydHVwIiwiZ3Jvd3RoIl19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgRGVwZW5kZW5jaWVzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7Ikxpc3QgYWxsIHJlcXVpcmVkIG5wbSBwYWNrYWdlcyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHtbIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCIsIkBkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlN5c3RlbSBUYWdzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoZXNlIHRhZ3MgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHtbInN5c3RlbSIsInByb3RlY3RlZCIsInJlYWRvbmx5Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQXJ0aWNsZSBQdWJsaXNoaW5nIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSB3aXRoIHRhZyBtYW5hZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFydGljbGUgVGl0bGUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiU3VtbWFyeSJ9IAogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBhcnRpY2xlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUYWdzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCByZWxldmFudCB0YWdzIGZvciBiZXR0ZXIgZGlzY292ZXJhYmlsaXR5In0KICAgICAgICAgICAgLnZhbHVlPSR7WyJ0dXRvcmlhbCIsIndlYi1kZXZlbG9wbWVudCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJDby1BdXRob3JzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgY28tYXV0aG9ycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICAgIDxzdHJvbmc+VGlwOjwvc3Ryb25nPiBUeXBlIGEgdmFsdWUgYW5kIHByZXNzIEVudGVyIHRvIGFkZCBpdCB0byB0aGUgbGlzdC4gQ2xpY2sgb24gYW55IGl0ZW0gdG8gcmVtb3ZlIGl0LgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgWjZ0LHh0ZSxuZmUsUTZ0PXUoKCk9Pnt2ZSgpO01yKCk7Q2koKTt3VXIoKTtsdCgpO1o2dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0seHRlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxuZmU9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LXR5cGVsaXN0IildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFR5cGVsaXN0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtpZSgpXSxaNnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4idmFsdWUiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS52YWx1ZSwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnZhbHVlPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxaNnQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJpbnB1dFZhbHVlImluIG0sImhhcyIpLGdldDppKG09Pm0uaW5wdXRWYWx1ZSwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmlucHV0VmFsdWU9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLFo2dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPXlVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9eHRlKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGgpe3RoaXMuI2U9aH0jdD0oeHRlKHRoaXMsbCkseHRlKHRoaXMsZCwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlucHV0VmFsdWUoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W05lLC4uLkV0LmJhc2VTdHlsZXMseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzIyMjIyMiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci10b3A6ICR7eC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHt4LmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICMyMjIiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAke3guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAke3guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCIwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMykiLCJub25lIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6aG92ZXIgewogICAgICAgIGZpbHRlcjogJHt4LmJkVGhlbWUoImJyaWdodG5lc3MoMC45OCkiLCJicmlnaHRuZXNzKDEuMDUpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpmb2N1cy13aXRoaW4gewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiIzAwNjlmMiIsIiMwMDg0ZmYiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm5vdGFncyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODE4Iil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZThmNWU5IiwiIzJkM2EyZCIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyZTdkMzIiLCIjODFjNzg0Iil9OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2M4ZTZjOSIsIiMxYjVlMjAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC50YWc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjYzhlNmM5IiwiIzNkNGYzZCIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2M2MjgyOCIsIiNlZjUzNTAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5tYWluYm94IHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZ3MgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWcgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdzIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9fT4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJub3RhZ3MiPk5vIHRhZ3MgeWV0PC9kaXY+YDp0aGlzLnZhbHVlLm1hcChoPT53YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgICAgICAgJHtofQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlbW92ZSIgQGNsaWNrPSR7bT0+e20uc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVUYWcoaCl9fT7Dlzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlR5cGUsIHByZXNzIEVudGVyIHRvIGFkZCBpdC4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9JHtoPT57dGhpcy5pbnB1dFZhbHVlPWgudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgICAgQGtleWRvd249JHtoPT57aC5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpKX19CiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YWRkVGFnKGgpe3RoaXMudmFsdWUuaW5jbHVkZXMoaCl8fCh0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGhdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9cmVtb3ZlVGFnKGgpe3RoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIobT0+bSE9PWgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaCl7dGhpcy52YWx1ZT1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx4dGUodGhpcyxmKX1zdGF0aWN7eHRlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBrVXIsU1VyLE1Vcj11KCgpPT57dmUoKTt3YSgpO3duKCk7U1VyPWkoKCk9Pncoa1VyfHwoa1VyPURnKFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRpc2FibGVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAuaW5wdXRUeXBlPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PWAsYD48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtdGFncyIKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIEBjaGFuZ2U9YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRhZy1wcmV2aWV3IiBpZD0idGFncy1wcmV2aWV3Ij4KICAgICAgICAgIDxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJ0YWdzLWpzb24iPgogICAgICAgICAgPGVtPkpTT04gb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAvLyBVcGRhdGUgSlNPTiBwcmV2aWV3CiAgICAgICAgICBjb25zdCB0YWdzSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaW50ZXJhY3RpdmUtdGFncycpOwogICAgICAgICAgdGFnc0lucHV0Py5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4gewogICAgICAgICAgICBjb25zdCBqc29uUHJldmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YWdzLWpzb24nKTsKICAgICAgICAgICAgaWYgKGpzb25QcmV2aWV3KSB7CiAgICAgICAgICAgICAganNvblByZXZpZXcudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShlLmRldGFpbC52YWx1ZSwgbnVsbCwgMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIDxcL3NjcmlwdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgXSkpLHJlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmYWZiOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZjI5Mzc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UwZTdmZjsKICAgICAgICAgIGNvbG9yOiAjNDMzOGNhOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzEyZTgxOwogICAgICAgICAgICBjb2xvcjogI2M3ZDJmZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGAsIjEuIEJhc2ljIFRhZ3MgSW5wdXQiLCJTaW1wbGUgdGFnIGlucHV0IHdpdGggY29tbW9uIHByb2dyYW1taW5nIGxhbmd1YWdlcyIsIlByb2dyYW1taW5nIExhbmd1YWdlcyIsIkFkZCBhIGxhbmd1YWdlLi4uIixbIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiR28iXSwiUHJlc3MgRW50ZXIgb3IgY29tbWEgdG8gYWRkIHRhZ3MiLCIyLiBUYWdzIHdpdGggU3VnZ2VzdGlvbnMiLCJBdXRvLWNvbXBsZXRlIHN1Z2dlc3Rpb25zIGZvciBmYXN0ZXIgaW5wdXQiLCJUZWNoIFN0YWNrIiwiVHlwZSB0byBzZWUgc3VnZ2VzdGlvbnMuLi4iLFsiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTGl0IiwiTmV4dC5qcyIsIk51eHQiLCJTdmVsdGVLaXQiLCJOb2RlLmpzIiwiRGVubyIsIkJ1biIsIkV4cHJlc3MiLCJGYXN0aWZ5IiwiTmVzdC5qcyIsIktvYSIsIk1vbmdvREIiLCJQb3N0Z3JlU1FMIiwiUmVkaXMiLCJNeVNRTCIsIlNRTGl0ZSIsIkNhc3NhbmRyYSIsIkRvY2tlciIsIkt1YmVybmV0ZXMiLCJBV1MiLCJBenVyZSIsIkdDUCIsIlZlcmNlbCIsIk5ldGxpZnkiXSxbIlJlYWN0IiwiTm9kZS5qcyIsIlBvc3RncmVTUUwiLCJEb2NrZXIiXSwiU3RhcnQgdHlwaW5nIHRvIHNlZSBzdWdnZXN0aW9ucyBmcm9tIHBvcHVsYXIgdGVjaG5vbG9naWVzIiwiMy4gTGltaXRlZCBUYWdzIiwiUmVzdHJpY3QgdGhlIG51bWJlciBvZiB0YWdzIHVzZXJzIGNhbiBhZGQiLCJUb3AgMyBTa2lsbHMiLCJBZGQgdXAgdG8gMyBza2lsbHMuLi4iLDMsWyJEZXNpZ24iLCJEZXZlbG9wbWVudCJdLCJNYXhpbXVtIDMgdGFncyBhbGxvd2VkIiwiQ2F0ZWdvcmllcyAoTWF4IDUpIiwiU2VsZWN0IGNhdGVnb3JpZXMuLi4iLDUsWyJCbG9nIiwiVHV0b3JpYWwiLCJOZXdzIiwiUmV2aWV3IiwiR3VpZGUiLCJDYXNlIFN0dWR5IiwiSW50ZXJ2aWV3Il0sWyJUdXRvcmlhbCIsIkd1aWRlIl0sIkNob29zZSB1cCB0byA1IGNhdGVnb3JpZXMiLCI0LiBSZXF1aXJlZCAmIFZhbGlkYXRpb24iLCJUYWdzIGlucHV0IHdpdGggdmFsaWRhdGlvbiByZXF1aXJlbWVudHMiLCJQcm9qZWN0IFRhZ3MiLCJBZGQgYXQgbGVhc3Qgb25lIHRhZy4uLiIsITAsIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgLSBhZGQgYXQgbGVhc3Qgb25lIHRhZyIsIjUuIERpc2FibGVkIFN0YXRlIiwiUmVhZC1vbmx5IHRhZ3MgZGlzcGxheSIsIlN5c3RlbSBUYWdzIixbIlN5c3RlbSIsIlByb3RlY3RlZCIsIlJlYWQtT25seSIsIkFyY2hpdmUiXSwhMCwiVGhlc2UgdGFncyBjYW5ub3QgYmUgbW9kaWZpZWQiLCI2LiBGb3JtIEludGVncmF0aW9uIiwiVGFncyBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCIsIlByb2plY3QgTmFtZSIsIk15IEF3ZXNvbWUgUHJvamVjdCIsITAsIm5hbWUiLCJUZWNobm9sb2dpZXMgVXNlZCIsIkFkZCB0ZWNobm9sb2dpZXMuLi4iLCEwLCJ0ZWNobm9sb2dpZXMiLFsiVHlwZVNjcmlwdCIsIkphdmFTY3JpcHQiLCJQeXRob24iLCJHbyIsIlJ1c3QiLCJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJOb2RlLmpzIiwiRGVubyIsIkV4cHJlc3MiLCJGYXN0QVBJIl0sIlByb2plY3QgVGFncyIsIkFkZCBkZXNjcmlwdGl2ZSB0YWdzLi4uIiwidGFncyIsMTAsWyJmcm9udGVuZCIsImJhY2tlbmQiLCJmdWxsc3RhY2siLCJtb2JpbGUiLCJkZXNrdG9wIiwid2ViIiwiYXBpIiwiZGF0YWJhc2UiLCJkZXZvcHMiLCJ1aS91eCIsIm9wZW5zb3VyY2UiLCJzYWFzIiwiZW50ZXJwcmlzZSIsInN0YXJ0dXAiXSwiRGVzY3JpcHRpb24iLCJ0ZXh0YXJlYSIsIkRlc2NyaWJlIHlvdXIgcHJvamVjdC4uLiIsImRlc2NyaXB0aW9uIiwiQ3JlYXRlIFByb2plY3QiLCI3LiBJbnRlcmFjdGl2ZSBEZW1vIiwiQWRkIHRhZ3MgYW5kIHNlZSB0aGVtIGNvbGxlY3RlZCBpbiByZWFsLXRpbWUiLCJZb3VyIEludGVyZXN0cyIsIlR5cGUgeW91ciBpbnRlcmVzdHMuLi4iLFsiTXVzaWMiLCJNb3ZpZXMiLCJCb29rcyIsIlRyYXZlbCIsIlBob3RvZ3JhcGh5IiwiQ29va2luZyIsIkdhbWluZyIsIlNwb3J0cyIsIkFydCIsIlRlY2hub2xvZ3kiLCJGYXNoaW9uIiwiRml0bmVzcyIsIk5hdHVyZSIsIlNjaWVuY2UiLCJIaXN0b3J5Il0sdD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0YWdzLXByZXZpZXciKSxyPXQuZGV0YWlsLnZhbHVlO2UmJihyLmxlbmd0aD09PTA/ZS5pbm5lckhUTUw9JzxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+JzplLmlubmVySFRNTD1yLm1hcChhPT5gPHNwYW4gY2xhc3M9InRhZy1wcmV2aWV3LWl0ZW0iPiR7YX08L3NwYW4+YCkuam9pbigiIikpfSksImRlbW9GdW5jIil9KTt2YXIgZTMsQW4sb2ZlLFg2dD11KCgpPT57dmUoKTtDaSgpO0tyKCk7TVVyKCk7bHQoKTtlMz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sQW49ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LG9mZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtdGFncyIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdO3ZhciBBPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRUYWdzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOk51bWJlcn0pXSx2PVtQKHt0eXBlOkFycmF5fSldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLEI9W1Aoe3R5cGU6U3RyaW5nfSldLGUzKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InZhbHVlImluIEYsImhhcyIpLGdldDppKEY9PkYudmFsdWUsImdldCIpLHNldDppKChGLFkpPT57Ri52YWx1ZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksZTModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4icGxhY2Vob2xkZXIiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnBsYWNlaG9sZGVyPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCxmKSxlMyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFRhZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+Im1heFRhZ3MiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5tYXhUYWdzLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YubWF4VGFncz1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGgsbSksZTModGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4ic3VnZ2VzdGlvbnMiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zdWdnZXN0aW9ucywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnN1Z2dlc3Rpb25zPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYixnKSxlMyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlucHV0VmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+ImlucHV0VmFsdWUiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5pbnB1dFZhbHVlLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YuaW5wdXRWYWx1ZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGssTSksZTModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U3VnZ2VzdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InNob3dTdWdnZXN0aW9ucyJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnNob3dTdWdnZXN0aW9ucywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnNob3dTdWdnZXN0aW9ucz1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LF8sUyksZTModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4iaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sTCxFKSxlMyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJ2YWxpZGF0aW9uVGV4dCJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YudmFsaWRhdGlvblRleHQ9WX0sInNldCIpfSxtZXRhZGF0YTokfSxDLHopLGUzKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOiR9LG51bGwsciksQT1hPWUudmFsdWUsJCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTokfSl9c3RhdGljIGRlbW89U1VyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1Bbih0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZSgkKXt0aGlzLiNlPSR9I3Q9KEFuKHRoaXMsbCksQW4odGhpcyxkLCJBZGQgdGFncy4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoJCl7dGhpcy4jdD0kfSNyPShBbih0aGlzLGYpLEFuKHRoaXMsaCwwKSk7Z2V0IG1heFRhZ3MoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWF4VGFncygkKXt0aGlzLiNyPSR9I2E9KEFuKHRoaXMsbSksQW4odGhpcyxiLFtdKSk7Z2V0IHN1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN1Z2dlc3Rpb25zKCQpe3RoaXMuI2E9JH0jaT0oQW4odGhpcyxnKSxBbih0aGlzLGssIiIpKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNpfXNldCBpbnB1dFZhbHVlKCQpe3RoaXMuI2k9JH0jcz0oQW4odGhpcyxNKSxBbih0aGlzLF8sITEpKTtnZXQgc2hvd1N1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dTdWdnZXN0aW9ucygkKXt0aGlzLiNzPSR9I249KEFuKHRoaXMsUyksQW4odGhpcyxMLC0xKSk7Z2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KCl7cmV0dXJuIHRoaXMuI259c2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KCQpe3RoaXMuI249JH0jbz0oQW4odGhpcyxFKSxBbih0aGlzLEMsIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgdmFsaWRhdGlvblRleHQoJCl7dGhpcy4jbz0kfXN0YXRpYyBzdHlsZXM9W05lLC4uLkV0LmJhc2VTdHlsZXMseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElIC8gMC4yKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElIC8gMC4zKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUgLyAwLjMpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMThweDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IHRhZ0FwcGVhciAwLjE1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHRhZ0FwcGVhciB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAudGFnLXJlbW92ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDQ2LjclKSIsImhzbCgyMTcuOSAxMC42JSA1NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmUgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLyogU3VnZ2VzdGlvbnMgZHJvcGRvd24gKi8KICAgICAgLnN1Z2dlc3Rpb25zLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb24uaGlnaGxpZ2h0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIC52YWxpZGF0aW9uLW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgJD10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihGPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhGKSYmRi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWdzLWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29udGFpbmVyQ2xpY2t9CiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5tYXAoRj0+d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgPHNwYW4+JHtGfTwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjp3YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcmVtb3ZlIiBAY2xpY2s9JHtZPT50aGlzLnJlbW92ZVRhZyhZLEYpfT4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIAogICAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4VGFnc3x8dGhpcy52YWx1ZS5sZW5ndGg8dGhpcy5tYXhUYWdzKT93YAogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWctaW5wdXQiCiAgICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVLZXlEb3dufQogICAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5oYW5kbGVGb2N1c30KICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVCbHVyfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnNob3dTdWdnZXN0aW9ucyYmJC5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy1kcm9wZG93biI+CiAgICAgICAgICAgICAgJHskLm1hcCgoRixZKT0+d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InN1Z2dlc3Rpb24gJHtZPT09dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke0c9PntHLnByZXZlbnREZWZhdWx0KCksdGhpcy5hZGRUYWcoRil9fQogICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PVl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Rn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNvbnRhaW5lckNsaWNrKCQpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBGPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhZy1pbnB1dCIpO0YmJiQudGFyZ2V0IT09RiYmRi5mb2N1cygpfWhhbmRsZUlucHV0KCQpe2xldCBGPSQudGFyZ2V0O2lmKHRoaXMuaW5wdXRWYWx1ZT1GLnZhbHVlLHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiLCIpfHx0aGlzLmlucHV0VmFsdWUuaW5jbHVkZXMoIjsiKSl7bGV0IFk9dGhpcy5pbnB1dFZhbHVlLnJlcGxhY2UoL1ssO10vZywiIikudHJpbSgpO1kmJnRoaXMuYWRkVGFnKFkpfX1oYW5kbGVLZXlEb3duKCQpe2xldCBGPSQudGFyZ2V0O2lmKCQua2V5PT09IkVudGVyIilpZigkLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD49MCYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpe2xldCBZPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKEc9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKEcpJiZHLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtZW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdJiZ0aGlzLmFkZFRhZyhZW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdKX1lbHNlIHRoaXMuaW5wdXRWYWx1ZS50cmltKCkmJnRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpO2Vsc2UgaWYoJC5rZXk9PT0iQmFja3NwYWNlIiYmIXRoaXMuaW5wdXRWYWx1ZSYmdGhpcy52YWx1ZS5sZW5ndGg+MCl0aGlzLnJlbW92ZVRhZygkLHRoaXMudmFsdWVbdGhpcy52YWx1ZS5sZW5ndGgtMV0pO2Vsc2UgaWYoJC5rZXk9PT0iQXJyb3dEb3duIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpeyQucHJldmVudERlZmF1bHQoKTtsZXQgWT10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihHPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhHKSYmRy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoO3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5taW4odGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCsxLFktMSl9ZWxzZSAkLmtleT09PSJBcnJvd1VwIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnM/KCQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PU1hdGgubWF4KHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgtMSwwKSk6JC5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTEpfWhhbmRsZUZvY3VzKCl7dGhpcy5zdWdnZXN0aW9ucy5sZW5ndGg+MCYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSEwKX1oYW5kbGVCbHVyKCl7c2V0VGltZW91dCgoKT0+e3RoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTF9LDIwMCl9YWRkVGFnKCQpe2lmKCEkfHx0aGlzLnZhbHVlLmluY2x1ZGVzKCQpfHx0aGlzLm1heFRhZ3MmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heFRhZ3MpcmV0dXJuO3RoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsJF0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTE7bGV0IEY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7RiYmKEYudmFsdWU9IiIpLHRoaXMuZW1pdENoYW5nZSgpfXJlbW92ZVRhZygkLEYpeyQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcihZPT5ZIT09RiksdGhpcy5lbWl0Q2hhbmdlKCl9ZW1pdENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKCQpe3RoaXMudmFsdWU9JHx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkIiwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxBbih0aGlzLHopfXN0YXRpY3tBbihhLHIpfX07cmV0dXJuIEE9YX0pKCl9KTt2YXIgQ1VyLHpVcj11KCgpPT57dmUoKTt3YSgpO3duKCk7QnkoKTtGcCgpO3c5KCk7Q1VyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2VmZjZmZjsKICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzNiODJmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAjMWU0MGFmOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5M2M1ZmQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgTGlzdCBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgbGlzdCBtYW5hZ2VtZW50IHdpdGggYWRkLCBlZGl0LCBhbmQgZGVsZXRlIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlNob3BwaW5nIExpc3QifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpdGVtIHRvIHlvdXIgbGlzdC4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbIk1pbGsiLCJCcmVhZCIsIkVnZ3MiLCJDaGVlc2UiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEb3VibGUtY2xpY2sgdG8gZWRpdCBpdGVtcywgb3IgdXNlIHRoZSBlZGl0IGJ1dHRvbiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5KhIERvdWJsZS1jbGljayBhbnkgaXRlbSB0byBxdWlja2x5IGVkaXQgaXQgaW5saW5lCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBTb3J0YWJsZSBMaXN0In0gLnN1YnRpdGxlPSR7IkRyYWcgYW5kIGRyb3AgdG8gcmVvcmRlciBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJUYXNrIFByaW9yaXR5In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgYSB0YXNrLi4uIn0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJSZXZpZXcgcHVsbCByZXF1ZXN0cyIsIkZpeCBjcml0aWNhbCBidWciLCJVcGRhdGUgZG9jdW1lbnRhdGlvbiIsIkRlcGxveSB0byBwcm9kdWN0aW9uIiwiVGVhbSBzdGFuZHVwIG1lZXRpbmciXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEcmFnIGl0ZW1zIHVzaW5nIHRoZSBoYW5kbGUgdG8gcmVvcmRlciB0aGVtIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgIPCflIQgRHJhZyB0aGUgZ3JpcCBoYW5kbGUgdG8gcmVvcmRlciB0YXNrcyBieSBwcmlvcml0eQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gVmFsaWRhdGlvbiAmIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7Ikxpc3RzIHdpdGggbWluaW11bS9tYXhpbXVtIGl0ZW1zIGFuZCBkdXBsaWNhdGUgcHJldmVudGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIChNaW4gMiwgTWF4IDUpIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHRlYW0gbWVtYmVyLi4uIn0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5tYXhJdGVtcz0kezV9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSIsIkJvYiJdfQogICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJBZGQgMi01IHRlYW0gbWVtYmVycyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHVuaXF1ZSB0YWcuLi4ifQogICAgICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHshMX0KICAgICAgICAgICAgICAudmFsdWU9JHtbImZyb250ZW5kIiwiYmFja2VuZCIsImRhdGFiYXNlIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkR1cGxpY2F0ZSBpdGVtcyBhcmUgbm90IGFsbG93ZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIERlbGV0ZSBDb25maXJtYXRpb24ifSAuc3VidGl0bGU9JHsiUmVxdWlyZSBjb25maXJtYXRpb24gYmVmb3JlIGRlbGV0aW5nIGl0ZW1zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IkltcG9ydGFudCBEb2N1bWVudHMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBkb2N1bWVudCBuYW1lLi4uIn0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtbIkNvbnRyYWN0XzIwMjQucGRmIiwiRmluYW5jaWFsX1JlcG9ydF9RMy54bHN4IiwiUHJvamVjdF9Qcm9wb3NhbC5kb2N4IiwiTWVldGluZ19Ob3Rlcy50eHQiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IGxpc3QgZGlzcGxheSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gRGVmYXVsdHMifQogICAgICAgICAgLnZhbHVlPSR7WyJEZWZhdWx0IFNldHRpbmcgMSIsIkRlZmF1bHQgU2V0dGluZyAyIiwiRGVmYXVsdCBTZXR0aW5nIDMiXX0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoZXNlIGl0ZW1zIGNhbm5vdCBiZSBtb2RpZmllZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJMaXN0IGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlY2lwZSBOYW1lIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7Ik15IEFtYXppbmcgUmVjaXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsibmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbmdyZWRpZW50Li4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siMiBjdXBzIGZsb3VyIiwiMSBjdXAgc3VnYXIiLCIzIGVnZ3MiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGF0IGxlYXN0IDMgaW5ncmVkaWVudHMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbnN0cnVjdGlvbiBzdGVwLi4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIlByZWhlYXQgb3ZlbiB0byAzNTBceEIwRiIsIk1peCBkcnkgaW5ncmVkaWVudHMiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGNvb2tpbmcgaW5zdHJ1Y3Rpb25zIGluIG9yZGVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uIn0KICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlNhdmUgUmVjaXBlIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJCdWlsZCB5b3VyIG93biBmZWF0dXJlIGxpc3QgYW5kIHNlZSB0aGUgZGF0YSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1saXN0IgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgRmVhdHVyZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBhIGZlYXR1cmUuLi4ifQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyExfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTB9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNsaXN0LWpzb24iKTtpZihlKXtsZXQgcj17aXRlbXM6dC5kZXRhaWwudmFsdWUsY291bnQ6dC5kZXRhaWwudmFsdWUubGVuZ3RoLHRpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9O2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkocixudWxsLDIpfX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ibGlzdC1qc29uIj4KICAgICAgICAgIHsKICAgICAgICAgICAgIml0ZW1zIjogW10sCiAgICAgICAgICAgICJjb3VudCI6IDAsCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9IgogICAgICAgICAgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDinKggQWRkLCBlZGl0LCByZW1vdmUsIGFuZCByZW9yZGVyIGl0ZW1zIHRvIHNlZSB0aGUgSlNPTiBvdXRwdXQgdXBkYXRlIGluIHJlYWwtdGltZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQWR2YW5jZWQgQ29uZmlndXJhdGlvbiJ9IC5zdWJ0aXRsZT0keyJDb21iaW5lIGFsbCBmZWF0dXJlcyBmb3IgY29tcGxleCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBNaWxlc3RvbmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgbWlsZXN0b25lLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1siUHJvamVjdCBLaWNrb2ZmIC0gV2VlayAxIiwiUmVxdWlyZW1lbnRzIEdhdGhlcmluZyAtIFdlZWsgMi0zIiwiRGVzaWduIFBoYXNlIC0gV2VlayA0LTYiLCJEZXZlbG9wbWVudCBTcHJpbnQgMSAtIFdlZWsgNy05IiwiVGVzdGluZyAmIFFBIC0gV2VlayAxMC0xMSIsIkRlcGxveW1lbnQgLSBXZWVrIDEyIl19CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNYW5hZ2UgcHJvamVjdCBtaWxlc3RvbmVzICgzLTEyIGl0ZW1zLCBzb3J0YWJsZSwgbm8gZHVwbGljYXRlcykifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIENhbmRpZGF0ZXMgd2l0aCBUYWIgQ29tcGxldGlvbiJ9IC5zdWJ0aXRsZT0keyJUZXJtaW5hbC1zdHlsZSBhdXRvY29tcGxldGUgXHUyMDE0IFRhYiBhY2NlcHRzLCBTaGlmdCtUYWIgY3ljbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICBpZD0iY2FuZGlkYXRlLWxpc3QiCiAgICAgICAgICAgIC5sYWJlbD0keyJBc3NpZ24gVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgYSBuYW1lLi4uIChUYWIgdG8gY29tcGxldGUpIn0KICAgICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6IkFsaWNlIFNtaXRoIixwYXlsb2FkOntpZDoxLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJGcm9udGVuZCJ9fSx7dmlld0tleToiQm9iIEpvaG5zb24iLHBheWxvYWQ6e2lkOjIscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IlVYIn19LHt2aWV3S2V5OiJDYXJvbCBXaWxsaWFtcyIscGF5bG9hZDp7aWQ6Myxyb2xlOiJQcm9kdWN0IE1hbmFnZXIiLGRlcGFydG1lbnQ6IlByb2R1Y3QifX0se3ZpZXdLZXk6IkRhdmlkIEJyb3duIixwYXlsb2FkOntpZDo0LHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJCYWNrZW5kIn19LHt2aWV3S2V5OiJFdmUgRGF2aXMiLHBheWxvYWQ6e2lkOjUscm9sZToiUUEgRW5naW5lZXIiLGRlcGFydG1lbnQ6IlF1YWxpdHkifX0se3ZpZXdLZXk6IkZyYW5rIE1pbGxlciIscGF5bG9hZDp7aWQ6Nixyb2xlOiJEZXZPcHMiLGRlcGFydG1lbnQ6IkluZnJhc3RydWN0dXJlIn19LHt2aWV3S2V5OiJHcmFjZSBXaWxzb24iLHBheWxvYWQ6e2lkOjcscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IlVYIn19LHt2aWV3S2V5OiJIZW5yeSBNb29yZSIscGF5bG9hZDp7aWQ6OCxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiRnJvbnRlbmQifX1dfQogICAgICAgICAgICAudmFsdWU9JHtbIkFsaWNlIFNtaXRoIiwiQ2Fyb2wgV2lsbGlhbXMiXX0KICAgICAgICAgICAgLm1heEl0ZW1zPSR7NX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlR5cGUgdG8gc2VlIGdob3N0IGNvbXBsZXRpb24uIFRhYiB0byBhY2NlcHQsIFNoaWZ0K1RhYiB0byBjeWNsZSwgRW50ZXIgdG8gYWRkLiJ9CiAgICAgICAgICAgIEBjaGFuZ2U9JHt0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NhbmRpZGF0ZS1qc29uIik7aWYoZSl7bGV0IGE9dC50YXJnZXQuZ2V0QWRkZWRDYW5kaWRhdGVzKCk7ZS50ZXh0Q29udGVudD1KU09OLnN0cmluZ2lmeShhLG51bGwsMil9fX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KCiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IG1hcmdpbi1ib3R0b206IDhweDsgY29sb3I6IGluaGVyaXQ7Ij5TZWxlY3RlZCBDYW5kaWRhdGVzICh3aXRoIHBheWxvYWRzKTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9ImNhbmRpZGF0ZS1qc29uIj5bXTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAgICAgIFRyeSB0eXBpbmcgIkQiIOKAlCBnaG9zdCB0ZXh0IHNob3dzICJhdmlkIEJyb3duIi4gUHJlc3MgU2hpZnQrVGFiIHRvIGN5Y2xlIHRvIG90aGVyIEQtbWF0Y2hlcy4gVGFiIGFjY2VwdHMsIEVudGVyIGFkZHMuCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxMC4gVGVjaG5vbG9neSBTdGFjayJ9IC5zdWJ0aXRsZT0keyJMYXJnZXIgY2FuZGlkYXRlIHBvb2wgd2l0aCBTaGlmdCtUYWIgY3ljbGluZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgVGVjaG5vbG9naWVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHRvIGF1dG9jb21wbGV0ZS4uLiJ9CiAgICAgICAgICAuY2FuZGlkYXRlcz0ke1t7dmlld0tleToiVHlwZVNjcmlwdCIscGF5bG9hZDp7Y2F0ZWdvcnk6Imxhbmd1YWdlIn19LHt2aWV3S2V5OiJSZWFjdCIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiVnVlLmpzIixwYXlsb2FkOntjYXRlZ29yeToiZnJhbWV3b3JrIn19LHt2aWV3S2V5OiJBbmd1bGFyIixwYXlsb2FkOntjYXRlZ29yeToiZnJhbWV3b3JrIn19LHt2aWV3S2V5OiJOb2RlLmpzIixwYXlsb2FkOntjYXRlZ29yeToicnVudGltZSJ9fSx7dmlld0tleToiRGVubyIscGF5bG9hZDp7Y2F0ZWdvcnk6InJ1bnRpbWUifX0se3ZpZXdLZXk6IkRvY2tlciIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRldm9wcyJ9fSx7dmlld0tleToiUG9zdGdyZVNRTCIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJNb25nb0RCIixwYXlsb2FkOntjYXRlZ29yeToiZGF0YWJhc2UifX0se3ZpZXdLZXk6IlJlZGlzIixwYXlsb2FkOntjYXRlZ29yeToiZGF0YWJhc2UifX0se3ZpZXdLZXk6Ikt1YmVybmV0ZXMiLHBheWxvYWQ6e2NhdGVnb3J5OiJkZXZvcHMifX1dfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1RyeSAiRCIgXHUyMDE0IGN5Y2xlcyB0aHJvdWdoIERlbm8vRG9ja2VyLiAiUiIgXHUyMDE0IGN5Y2xlcyB0aHJvdWdoIFJlYWN0L1JlZGlzLid9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTEuIEZyZWVmb3JtICsgQ2FuZGlkYXRlcyJ9IC5zdWJ0aXRsZT0keyJBbGxvdyBhZGRpbmcgaXRlbXMgbm90IGluIHRoZSBjYW5kaWRhdGUgbGlzdCAoc2hvd24gd2l0aCBhIHF1ZXN0aW9uIG1hcmspIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgYSB0YWcuLi4gKGZyZWVmb3JtIGFsbG93ZWQpIn0KICAgICAgICAgIC5hbGxvd0ZyZWVmb3JtPSR7ITB9CiAgICAgICAgICAuY2FuZGlkYXRlcz0ke1t7dmlld0tleToiYnVnIixwYXlsb2FkOntjb2xvcjoicmVkIn19LHt2aWV3S2V5OiJmZWF0dXJlIixwYXlsb2FkOntjb2xvcjoiYmx1ZSJ9fSx7dmlld0tleToiZG9jcyIscGF5bG9hZDp7Y29sb3I6ImdyZWVuIn19LHt2aWV3S2V5OiJyZWZhY3RvciIscGF5bG9hZDp7Y29sb3I6InB1cnBsZSJ9fSx7dmlld0tleToicGVyZm9ybWFuY2UiLHBheWxvYWQ6e2NvbG9yOiJvcmFuZ2UifX0se3ZpZXdLZXk6InNlY3VyaXR5IixwYXlsb2FkOntjb2xvcjoicmVkIn19XX0KICAgICAgICAgIC52YWx1ZT0ke1siYnVnIiwibXktY3VzdG9tLXRhZyIsImZlYXR1cmUiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJLbm93biB0YWdzIGdldCBhIGNoZWNrbWFyaywgY3VzdG9tIHRhZ3MgZ2V0IGEgcXVlc3Rpb24gbWFyay4gVGFiIHRvIGNvbXBsZXRlLCBFbnRlciB0byBhZGQgZnJlZWZvcm0uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxMi4gRW1wdHkgU3RhdGUifSAuc3VidGl0bGU9JHsiSG93IHRoZSBjb21wb25lbnQgbG9va3Mgd2l0aCBubyBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJZb3VyIElkZWFzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTaGFyZSB5b3VyIGlkZWFzLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1tdfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlN0YXJ0IGFkZGluZyBpdGVtcyB0byBidWlsZCB5b3VyIGxpc3QifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIFVpLGdyLGxmZSxKNnQ9dSgoKT0+e3ZlKCk7Q2koKTtLcigpO25zKCk7elVyKCk7bHQoKTtVaT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZ3I9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGxmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtbGlzdCIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXSxhZSxYPVtdLEo9W10seGUsSz1bXSxWPVtdLGxlLG5lPVtdLGVlPVtdLHplLEhlPVtdLEdlPVtdLG90LERlPVtdLF9lPVtdLG9lLHNlPVtdLGNlPVtdLFRlLHFlPVtdLG50PVtdO3ZhciB2dD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0lucHV0TGlzdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBMZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sTz1bUCh7dHlwZTpCb29sZWFufSldLEI9W1Aoe3R5cGU6QXJyYXl9KV0sQT1bUCh7dHlwZTpCb29sZWFufSldLFk9W1Aoe3R5cGU6U3RyaW5nfSldLGRlPVtpZSgpXSxmZT1baWUoKV0scGU9W2llKCldLEg9W2llKCldLGFlPVtpZSgpXSx4ZT1baWUoKV0sbGU9W2llKCldLHplPVtpZSgpXSxvdD1baWUoKV0sb2U9W2llKCldLFRlPVtpZSgpXSxVaSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4idmFsdWUiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS52YWx1ZSwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLnZhbHVlPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxvLGwpLFVpKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJwbGFjZWhvbGRlciJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UucGxhY2Vob2xkZXI9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LGQsZiksVWkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+Im1heEl0ZW1zImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UubWF4SXRlbXMsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5tYXhJdGVtcz1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0saCxtKSxVaSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4ibWluSXRlbXMiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5taW5JdGVtcywiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLm1pbkl0ZW1zPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxiLGcpLFVpKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dEdXBsaWNhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4iYWxsb3dEdXBsaWNhdGVzImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuYWxsb3dEdXBsaWNhdGVzLCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UuYWxsb3dEdXBsaWNhdGVzPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxrLE0pLFVpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJzb3J0YWJsZSJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLnNvcnRhYmxlLCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2Uuc29ydGFibGU9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LF8sUyksVWkodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb25maXJtRGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4iY29uZmlybURlbGV0ZSJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLmNvbmZpcm1EZWxldGUsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5jb25maXJtRGVsZXRlPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxMLEUpLFVpKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuZGlkYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+ImNhbmRpZGF0ZXMiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5jYW5kaWRhdGVzLCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UuY2FuZGlkYXRlcz1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sQyx6KSxVaSh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RnJlZWZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJhbGxvd0ZyZWVmb3JtImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuYWxsb3dGcmVlZm9ybSwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLmFsbG93RnJlZWZvcm09T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LCQsRiksVWkodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+InZhbGlkYXRpb25UZXh0ImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UudmFsaWRhdGlvblRleHQsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS52YWxpZGF0aW9uVGV4dD1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sRyxaKSxVaSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4iaW5wdXRWYWx1ZSJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLmlucHV0VmFsdWUsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5pbnB1dFZhbHVlPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxELFEpLFVpKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdob3N0VGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+Imdob3N0VGV4dCJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLmdob3N0VGV4dCwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLmdob3N0VGV4dD1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sVCxXKSxVaSh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50Q2FuZGlkYXRlSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJjdXJyZW50Q2FuZGlkYXRlSW5kZXgiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5jdXJyZW50Q2FuZGlkYXRlSW5kZXgsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LG1lLHEpLFVpKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZ0luZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4iZWRpdGluZ0luZGV4ImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuZWRpdGluZ0luZGV4LCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UuZWRpdGluZ0luZGV4PU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxVLGopLFVpKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+ImVkaXRpbmdWYWx1ZSJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLmVkaXRpbmdWYWx1ZSwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLmVkaXRpbmdWYWx1ZT1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sWCxKKSxVaSh0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJkcmFnZ2VkSW5kZXgiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5kcmFnZ2VkSW5kZXgsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5kcmFnZ2VkSW5kZXg9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LEssViksVWkodGhpcyxudWxsLGxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+ImRyYWdPdmVySW5kZXgiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5kcmFnT3ZlckluZGV4LCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UuZHJhZ092ZXJJbmRleD1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sbmUsZWUpLFVpKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdTdGFydFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJkcmFnU3RhcnRZImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuZHJhZ1N0YXJ0WSwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLmRyYWdTdGFydFk9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LEhlLEdlKSxVaSh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJkcmFnQ3VycmVudFkiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5kcmFnQ3VycmVudFksImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5kcmFnQ3VycmVudFk9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LERlLF9lKSxVaSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+InRhcmdldEluZGV4ImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UudGFyZ2V0SW5kZXgsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS50YXJnZXRJbmRleD1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sc2UsY2UpLFVpKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1IZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJpdGVtSGVpZ2h0ImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuaXRlbUhlaWdodCwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLml0ZW1IZWlnaHQ9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LHFlLG50KSxVaShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpMZX0sbnVsbCxyKSx2dD1hPWUudmFsdWUsTGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TGV9KX1zdGF0aWMgZGVtbz1DVXI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPWdyKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKExlKXt0aGlzLiNlPUxlfSN0PShncih0aGlzLGwpLGdyKHRoaXMsZCwiQWRkIG5ldyBpdGVtLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihMZSl7dGhpcy4jdD1MZX0jcj0oZ3IodGhpcyxmKSxncih0aGlzLGgsMCkpO2dldCBtYXhJdGVtcygpe3JldHVybiB0aGlzLiNyfXNldCBtYXhJdGVtcyhMZSl7dGhpcy4jcj1MZX0jYT0oZ3IodGhpcyxtKSxncih0aGlzLGIsMCkpO2dldCBtaW5JdGVtcygpe3JldHVybiB0aGlzLiNhfXNldCBtaW5JdGVtcyhMZSl7dGhpcy4jYT1MZX0jaT0oZ3IodGhpcyxnKSxncih0aGlzLGssITEpKTtnZXQgYWxsb3dEdXBsaWNhdGVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbG93RHVwbGljYXRlcyhMZSl7dGhpcy4jaT1MZX0jcz0oZ3IodGhpcyxNKSxncih0aGlzLF8sITEpKTtnZXQgc29ydGFibGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc29ydGFibGUoTGUpe3RoaXMuI3M9TGV9I249KGdyKHRoaXMsUyksZ3IodGhpcyxMLCExKSk7Z2V0IGNvbmZpcm1EZWxldGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29uZmlybURlbGV0ZShMZSl7dGhpcy4jbj1MZX0jbz0oZ3IodGhpcyxFKSxncih0aGlzLEMsW10pKTtnZXQgY2FuZGlkYXRlcygpe3JldHVybiB0aGlzLiNvfXNldCBjYW5kaWRhdGVzKExlKXt0aGlzLiNvPUxlfSNsPShncih0aGlzLHopLGdyKHRoaXMsJCwhMSkpO2dldCBhbGxvd0ZyZWVmb3JtKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGFsbG93RnJlZWZvcm0oTGUpe3RoaXMuI2w9TGV9I2M9KGdyKHRoaXMsRiksZ3IodGhpcyxHLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25UZXh0KExlKXt0aGlzLiNjPUxlfWFkZGVkQ2FuZGlkYXRlc01hcD0oZ3IodGhpcyxaKSxuZXcgTWFwKTttYXRjaGluZ0NhbmRpZGF0ZXM9W107I2Q9Z3IodGhpcyxELCIiKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBpbnB1dFZhbHVlKExlKXt0aGlzLiNkPUxlfSN1PShncih0aGlzLFEpLGdyKHRoaXMsVCwiIikpO2dldCBnaG9zdFRleHQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZ2hvc3RUZXh0KExlKXt0aGlzLiN1PUxlfSNwPShncih0aGlzLFcpLGdyKHRoaXMsbWUsLTEpKTtnZXQgY3VycmVudENhbmRpZGF0ZUluZGV4KCl7cmV0dXJuIHRoaXMuI3B9c2V0IGN1cnJlbnRDYW5kaWRhdGVJbmRleChMZSl7dGhpcy4jcD1MZX0jZj0oZ3IodGhpcyxxKSxncih0aGlzLFUsLTEpKTtnZXQgZWRpdGluZ0luZGV4KCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGVkaXRpbmdJbmRleChMZSl7dGhpcy4jZj1MZX0jaD0oZ3IodGhpcyxqKSxncih0aGlzLFgsIiIpKTtnZXQgZWRpdGluZ1ZhbHVlKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGVkaXRpbmdWYWx1ZShMZSl7dGhpcy4jaD1MZX0jbT0oZ3IodGhpcyxKKSxncih0aGlzLEssLTEpKTtnZXQgZHJhZ2dlZEluZGV4KCl7cmV0dXJuIHRoaXMuI219c2V0IGRyYWdnZWRJbmRleChMZSl7dGhpcy4jbT1MZX0jZz0oZ3IodGhpcyxWKSxncih0aGlzLG5lLC0xKSk7Z2V0IGRyYWdPdmVySW5kZXgoKXtyZXR1cm4gdGhpcy4jZ31zZXQgZHJhZ092ZXJJbmRleChMZSl7dGhpcy4jZz1MZX0jYj0oZ3IodGhpcyxlZSksZ3IodGhpcyxIZSwwKSk7Z2V0IGRyYWdTdGFydFkoKXtyZXR1cm4gdGhpcy4jYn1zZXQgZHJhZ1N0YXJ0WShMZSl7dGhpcy4jYj1MZX0jeD0oZ3IodGhpcyxHZSksZ3IodGhpcyxEZSwwKSk7Z2V0IGRyYWdDdXJyZW50WSgpe3JldHVybiB0aGlzLiN4fXNldCBkcmFnQ3VycmVudFkoTGUpe3RoaXMuI3g9TGV9I3Y9KGdyKHRoaXMsX2UpLGdyKHRoaXMsc2UsLTEpKTtnZXQgdGFyZ2V0SW5kZXgoKXtyZXR1cm4gdGhpcy4jdn1zZXQgdGFyZ2V0SW5kZXgoTGUpe3RoaXMuI3Y9TGV9I3k9KGdyKHRoaXMsY2UpLGdyKHRoaXMscWUsMCkpO2dldCBpdGVtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3l9c2V0IGl0ZW1IZWlnaHQoTGUpe3RoaXMuI3k9TGV9Ym91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj0oZ3IodGhpcyxudCksbnVsbCk7Ym91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGw7b3JpZ2luYWxJdGVtUmVjdHM9W107c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpmb2N1cy13aXRoaW46OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSBkZWVzLXRpbGUgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubGlzdC1pdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6bm90KC5pcy1kcmFnZ2luZykgLmxpc3QtaXRlbTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1yb3ctaG92ZXIpOwogICAgICB9CgogICAgICAvKiBEcmFnZ2luZyBpdGVtIC0gZm9sbG93cyBjdXJzb3IgKi8KICAgICAgLmxpc3QtaXRlbS5kcmFnZ2luZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTIlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogSXRlbXMgdGhhdCBuZWVkIHRvIG1vdmUgdXAgdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtdXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0taXRlbS1oZWlnaHQsIDQ4cHgpKSk7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIGRvd24gdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSk7CiAgICAgIH0KCgogICAgICAuY2FuZGlkYXRlLWNoZWNrIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNhbmRpZGF0ZS11bmtub3duIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDU4JSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5pdGVtLWJ1bGxldCB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBtb3ZlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLml0ZW0tY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLml0ZW0tZWRpdC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAzcHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLml0ZW0tYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxM3B4OwogICAgICAgIGhlaWdodDogMTNweDsKICAgICAgfQoKICAgICAgLmFkZC1pdGVtLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDE2cHggMTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMzQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlIHRyYW5zaXRpb25zIGR1cmluZyBkcm9wIHRvIHByZXZlbnQgZmxhc2ggKi8KICAgICAgLmxpc3QtaXRlbXMuZHJvcHBpbmcgLmxpc3QtaXRlbSB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiDilIDilIAgVGVybWluYWwtc3R5bGUgaW5saW5lIGF1dG9jb21wbGV0ZSDilIDilIAgKi8KICAgICAgLmF1dG9jb21wbGV0ZS13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LXRleHQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZ2hvc3QtdHlwZWQgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LWNvbXBsZXRpb24gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9IiR7dGhpcy52YWx1ZS5sZW5ndGh9IGl0ZW0ke3RoaXMudmFsdWUubGVuZ3RoIT09MT8icyI6IiJ9Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Imxpc3QtaXRlbXMiPgogICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy52YWx1ZS5tYXAoKExlLHdlKT0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibGlzdC1pdGVtICR7dGhpcy5kcmFnZ2VkSW5kZXg9PT13ZT8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZH0iCiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7T2U9PnRoaXMuaGFuZGxlRHJhZ1N0YXJ0KE9lLHdlKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7dGhpcy5oYW5kbGVEcmFnRW5kfQogICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7T2U9PnRoaXMuaGFuZGxlRHJhZ092ZXIoT2Usd2UpfQogICAgICAgICAgICAgICAgQGRyb3A9JHtPZT0+dGhpcy5oYW5kbGVEcm9wKE9lLHdlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke3RoaXMuc29ydGFibGUmJiF0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYWctaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpncmlwVmVydGljYWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICAgICR7dGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICR7dGhpcy5jYW5kaWRhdGVzLnNvbWUoT2U9Pk9lLnZpZXdLZXk9PT1MZSk/d2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYW5kaWRhdGUtY2hlY2siIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FuZGlkYXRlLXVua25vd24iIC5pY29uPSR7Imx1Y2lkZTpoZWxwQ2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICBgOiF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9Iml0ZW0tYnVsbGV0IiAuaWNvbj0keyJsdWNpZGU6ZG90In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT13ZT93YAogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpdGVtLWVkaXQtaW5wdXQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmVkaXRpbmdWYWx1ZX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke09lPT50aGlzLmVkaXRpbmdWYWx1ZT1PZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke09lPT50aGlzLmhhbmRsZUVkaXRLZXlEb3duKE9lLHdlKX0KICAgICAgICAgICAgICAgICAgICAgIEBibHVyPSR7KCk9PnRoaXMuc2F2ZUVkaXQod2UpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXRleHQiIEBkYmxjbGljaz0keygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy5zdGFydEVkaXQod2UpfT4KICAgICAgICAgICAgICAgICAgICAgICR7TGV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmVkaXRpbmdJbmRleD09PXdlP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzYXZlIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRWRpdCh3ZSl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2FuY2VsRWRpdCgpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjp3YAogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc3RhcnRFZGl0KHdlKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBlbmNpbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlSXRlbSh3ZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmFzaDIifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCk6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICBObyBpdGVtcyBhZGRlZCB5ZXQKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4SXRlbXN8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4SXRlbXMpP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYWRkLWl0ZW0tY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRvY29tcGxldGUtd3JhcHBlciI+CiAgICAgICAgICAgICAgICAke3RoaXMuZ2hvc3RUZXh0P3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnaG9zdC10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2hvc3QtdHlwZWQiPiR7dGhpcy5pbnB1dFZhbHVlfTwvc3Bhbj48c3BhbiBjbGFzcz0iZ2hvc3QtY29tcGxldGlvbiI+JHt0aGlzLmdob3N0VGV4dH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1pbnB1dCIKICAgICAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlQWRkS2V5RG93bn0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFkZEl0ZW19CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5pbnB1dFZhbHVlLnRyaW0oKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwbHVzIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlSW5wdXQoTGUpe3RoaXMuaW5wdXRWYWx1ZT1MZS50YXJnZXQudmFsdWUsdGhpcy51cGRhdGVHaG9zdFRleHQoKX11cGRhdGVHaG9zdFRleHQoKXtpZih0aGlzLmNhbmRpZGF0ZXMubGVuZ3RoPT09MHx8IXRoaXMuaW5wdXRWYWx1ZSl7dGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W107cmV0dXJufWxldCBMZT10aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKTt0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz10aGlzLmNhbmRpZGF0ZXMuZmlsdGVyKHdlPT50aGlzLnZhbHVlLmluY2x1ZGVzKHdlLnZpZXdLZXkpPyExOndlLnZpZXdLZXkudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKExlKSkuc29ydCgod2UsT2UpPT53ZS52aWV3S2V5Lmxlbmd0aC1PZS52aWV3S2V5Lmxlbmd0aCksdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXMubGVuZ3RoPjA/KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PTAsdGhpcy5naG9zdFRleHQ9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbMF0udmlld0tleS5zbGljZSh0aGlzLmlucHV0VmFsdWUubGVuZ3RoKSk6KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMuZ2hvc3RUZXh0PSIiKX1oYW5kbGVBZGRLZXlEb3duKExlKXtpZihMZS5rZXk9PT0iVGFiIiYmdGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wJiZ0aGlzLmlucHV0VmFsdWUpe2lmKExlLnByZXZlbnREZWZhdWx0KCksTGUuc2hpZnRLZXkmJnRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wKXt0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0odGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXgrMSkldGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXMubGVuZ3RoO2xldCB3ZT10aGlzLm1hdGNoaW5nQ2FuZGlkYXRlc1t0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleF07dGhpcy5naG9zdFRleHQ9d2Uudmlld0tleS5zbGljZSh0aGlzLmlucHV0VmFsdWUubGVuZ3RoKX1lbHNlIGlmKCFMZS5zaGlmdEtleSYmdGhpcy5naG9zdFRleHQmJnRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wKXtsZXQgd2U9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXhdO3RoaXMuaW5wdXRWYWx1ZT13ZS52aWV3S2V5LHRoaXMuZ2hvc3RUZXh0PSIiO2xldCBPZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTtPZSYmKE9lLnZhbHVlPXdlLnZpZXdLZXkpfXJldHVybn1pZihMZS5rZXk9PT0iRXNjYXBlIiYmdGhpcy5naG9zdFRleHQpe0xlLnByZXZlbnREZWZhdWx0KCksdGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W107cmV0dXJufWlmKExlLmtleT09PSJFbnRlciImJnRoaXMuaW5wdXRWYWx1ZS50cmltKCkpe2lmKExlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wKXtsZXQgd2U9dGhpcy5jYW5kaWRhdGVzLmZpbmQoT2U9Pk9lLnZpZXdLZXkudG9Mb3dlckNhc2UoKT09PXRoaXMuaW5wdXRWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSk7d2U/dGhpcy5zZWxlY3RDYW5kaWRhdGUod2UpOnRoaXMuYWxsb3dGcmVlZm9ybSYmKHRoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdLHRoaXMuYWRkSXRlbSgpKTtyZXR1cm59dGhpcy5hZGRJdGVtKCl9fWhhbmRsZUVkaXRLZXlEb3duKExlLHdlKXtMZS5rZXk9PT0iRW50ZXIiPyhMZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUVkaXQod2UpKTpMZS5rZXk9PT0iRXNjYXBlIiYmKExlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5jZWxFZGl0KCkpfXNlbGVjdENhbmRpZGF0ZShMZSl7aWYodGhpcy5tYXhJdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4SXRlbXMpe3RoaXMudmFsaWRhdGlvblRleHQ9YE1heGltdW0gJHt0aGlzLm1heEl0ZW1zfSBpdGVtcyBhbGxvd2VkYCxzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhMZS52aWV3S2V5KSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufXRoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLnNldChMZS52aWV3S2V5LExlKSx0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLExlLnZpZXdLZXldLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmdob3N0VGV4dD0iIix0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz1bXSx0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCB3ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTt3ZSYmKHdlLnZhbHVlPSIiLHdlLmZvY3VzKCkpfSl9Z2V0Q2FuZGlkYXRlRm9ySXRlbShMZSl7cmV0dXJuIHRoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLmdldChMZSl9Z2V0QWRkZWRDYW5kaWRhdGVzKCl7cmV0dXJuIHRoaXMudmFsdWUubWFwKExlPT50aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5nZXQoTGUpKS5maWx0ZXIoTGU9PkxlIT09dm9pZCAwKX1hZGRJdGVtKCl7bGV0IExlPXRoaXMuaW5wdXRWYWx1ZS50cmltKCk7aWYoTGUpe2lmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhMZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1pZih0aGlzLm1heEl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5tYXhJdGVtcyl7dGhpcy52YWxpZGF0aW9uVGV4dD1gTWF4aW11bSAke3RoaXMubWF4SXRlbXN9IGl0ZW1zIGFsbG93ZWRgLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxMZV0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IHdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmFkZC1pbnB1dCIpO3dlJiYod2UudmFsdWU9IiIsd2UuZm9jdXMoKSl9KX19c3RhcnRFZGl0KExlKXt0aGlzLmVkaXRpbmdJbmRleD1MZSx0aGlzLmVkaXRpbmdWYWx1ZT10aGlzLnZhbHVlW0xlXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgd2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuaXRlbS1lZGl0LWlucHV0Iik7d2UmJih3ZS5mb2N1cygpLHdlLnNlbGVjdCgpKX0pfXNhdmVFZGl0KExlKXtsZXQgd2U9dGhpcy5lZGl0aW5nVmFsdWUudHJpbSgpO2lmKCF3ZSl7dGhpcy5jYW5jZWxFZGl0KCk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmd2UhPT10aGlzLnZhbHVlW0xlXSYmdGhpcy52YWx1ZS5pbmNsdWRlcyh3ZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1sZXQgT2U9Wy4uLnRoaXMudmFsdWVdO09lW0xlXT13ZSx0aGlzLnZhbHVlPU9lLHRoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCl9Y2FuY2VsRWRpdCgpe3RoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIifWFzeW5jIHJlbW92ZUl0ZW0oTGUpe2lmKHRoaXMuY29uZmlybURlbGV0ZSYmIWF3YWl0IHRoaXMuc2hvd0NvbmZpcm1EaWFsb2coYERlbGV0ZSAiJHt0aGlzLnZhbHVlW0xlXX0iP2ApKXJldHVybjtsZXQgd2U9dGhpcy52YWx1ZVtMZV07dGhpcy5hZGRlZENhbmRpZGF0ZXNNYXAuZGVsZXRlKHdlKSx0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKChPZSxnZSk9PmdlIT09TGUpLHRoaXMuZW1pdENoYW5nZSgpfWFzeW5jIHNob3dDb25maXJtRGlhbG9nKExlKXtyZXR1cm4gY29uZmlybShMZSl9aGFuZGxlRHJhZ1N0YXJ0KExlLHdlKXtpZighdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZClyZXR1cm47dGhpcy5kcmFnZ2VkSW5kZXg9d2UsdGhpcy50YXJnZXRJbmRleD13ZSxMZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZD0ibW92ZSIsTGUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLHdlLnRvU3RyaW5nKCkpO2xldCBPZT1uZXcgSW1hZ2U7T2Uuc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBVUVCQUFBQUN3QUFBQUFBUUFCQUFBQ0FrUUJBRHM9IixMZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKE9lLDAsMCksdGhpcy5kcmFnU3RhcnRZPUxlLmNsaWVudFksdGhpcy5kcmFnQ3VycmVudFk9TGUuY2xpZW50WTtsZXQgZ2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLGJlPUFycmF5LmZyb20oZ2U/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKXx8W10pO2JlW3dlXSYmKHRoaXMuaXRlbUhlaWdodD1iZVt3ZV0ub2Zmc2V0SGVpZ2h0KSx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPWJlLm1hcChJZT0+SWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLGdlPy5jbGFzc0xpc3QuYWRkKCJpcy1kcmFnZ2luZyIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj10aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyLmJpbmQodGhpcyksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpfWhhbmRsZUdsb2JhbERyYWdPdmVyKExlKXtpZihMZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZHJhZ2dlZEluZGV4PT09LTEpcmV0dXJuO3RoaXMuZHJhZ0N1cnJlbnRZPUxlLmNsaWVudFk7bGV0IHdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtpZighd2UpcmV0dXJuO2xldCBPZT1BcnJheS5mcm9tKHdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKSksZ2U9T2VbdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKCFnZSlyZXR1cm47bGV0IGJlPXRoaXMuZHJhZ0N1cnJlbnRZLXRoaXMuZHJhZ1N0YXJ0WTtnZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtiZX1weClgO2xldCBJZT10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW3RoaXMuZHJhZ2dlZEluZGV4XTtpZighSWUpcmV0dXJuO2xldCB5dD1JZS50b3ArSWUuaGVpZ2h0LzIrYmUsd3Q9dGhpcy5kcmFnZ2VkSW5kZXg7Zm9yKGxldCBZdD0wO1l0PE9lLmxlbmd0aDtZdCsrKXtpZihZdD09PXRoaXMuZHJhZ2dlZEluZGV4KWNvbnRpbnVlO2xldCB6YT10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW1l0XTtpZighemEpY29udGludWU7bGV0IFBhPXphLnRvcCt6YS5oZWlnaHQvMjtpZihPZVtZdF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLXVwIik/UGEtPXRoaXMuaXRlbUhlaWdodDpPZVtZdF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLWRvd24iKSYmKFBhKz10aGlzLml0ZW1IZWlnaHQpLHl0PFBhJiZZdDx0aGlzLmRyYWdnZWRJbmRleCl7d3Q9WXQ7YnJlYWt9ZWxzZSB5dD5QYSYmWXQ+dGhpcy5kcmFnZ2VkSW5kZXgmJih3dD1ZdCl9d3QhPT10aGlzLnRhcmdldEluZGV4JiYodGhpcy50YXJnZXRJbmRleD13dCx0aGlzLnVwZGF0ZUl0ZW1Qb3NpdGlvbnMoT2UpKX11cGRhdGVJdGVtUG9zaXRpb25zKExlKXtsZXQgd2U9dGhpcy5kcmFnZ2VkSW5kZXgsT2U9dGhpcy50YXJnZXRJbmRleCxnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7Z2UmJmdlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxMZS5mb3JFYWNoKChiZSxJZSk9PntJZSE9PXdlJiYoYmUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLGJlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSx3ZTxPZT9JZT53ZSYmSWU8PU9lJiZiZS5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIik6d2U+T2UmJkllPj1PZSYmSWU8d2UmJmJlLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQoKXt0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9bnVsbCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbCk7bGV0IExlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSx3ZT1MZT8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpLE9lPXdlPy5bdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKHRoaXMuZHJhZ2dlZEluZGV4PT09LTF8fHRoaXMudGFyZ2V0SW5kZXg9PT0tMXx8dGhpcy5kcmFnZ2VkSW5kZXg9PT10aGlzLnRhcmdldEluZGV4KXtpZihPZSYmdGhpcy5kcmFnZ2VkSW5kZXghPT0tMSl7T2Uuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLE9lLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwKSI7bGV0IFl0PSExLHphPWkoKCk9PntZdHx8KFl0PSEwLE9lLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHphKSx0aGlzLmNsZWFudXBEcmFnU3RhdGUoTGUsd2UpKX0sIm9uUmV0dXJuIik7T2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsemEse29uY2U6ITB9KSxzZXRUaW1lb3V0KHphLDIwMCl9ZWxzZSB0aGlzLmNsZWFudXBEcmFnU3RhdGUoTGUsd2UpO3JldHVybn1sZXQgZ2U9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF0sYmU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLnRhcmdldEluZGV4XTtpZighZ2V8fCFiZXx8IU9lKXt0aGlzLmNsZWFudXBEcmFnU3RhdGUoTGUsd2UpO3JldHVybn1sZXQgSWU7dGhpcy50YXJnZXRJbmRleD50aGlzLmRyYWdnZWRJbmRleD9JZT1iZS5ib3R0b20tZ2UuYm90dG9tOkllPWJlLnRvcC1nZS50b3AsT2Uuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLE9lLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke0llfXB4KWA7bGV0IHl0PSExLHd0PWkoKCk9PntpZih5dClyZXR1cm47eXQ9ITAsT2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsd3QpLExlPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLExlPy5vZmZzZXRIZWlnaHQsd2U/LmZvckVhY2goUGE9PntQYS5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSxQYS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksUGEuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pO2xldCBZdD1bLi4udGhpcy52YWx1ZV0sW3phXT1ZdC5zcGxpY2UodGhpcy5kcmFnZ2VkSW5kZXgsMSk7WXQuc3BsaWNlKHRoaXMudGFyZ2V0SW5kZXgsMCx6YSksdGhpcy52YWx1ZT1ZdCx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFBhPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO1BhPy5mb3JFYWNoKFlpPT57WWkuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntQYT8uZm9yRWFjaChZaT0+e1lpLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxMZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX0sIm9uVHJhbnNpdGlvbkVuZCIpO09lLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHd0LHtvbmNlOiEwfSksc2V0VGltZW91dCh3dCwyMDApfWNsZWFudXBEcmFnU3RhdGUoTGUsd2Upe0xlPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLExlPy5vZmZzZXRIZWlnaHQsd2U/LmZvckVhY2goT2U9PntPZS5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSxPZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksT2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLHRoaXMuZHJhZ2dlZEluZGV4PS0xLHRoaXMuZHJhZ092ZXJJbmRleD0tMSx0aGlzLnRhcmdldEluZGV4PS0xLHRoaXMuZHJhZ1N0YXJ0WT0wLHRoaXMuZHJhZ0N1cnJlbnRZPTAsdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1bXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgT2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIik7T2U/LmZvckVhY2goZ2U9PntnZS5zdHlsZS50cmFuc2l0aW9uPSJub25lIn0pLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKT8ub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e09lPy5mb3JFYWNoKGdlPT57Z2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLExlPy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wcGluZyIsImlzLWRyYWdnaW5nIil9KX0pfWhhbmRsZURyYWdFbmQoKXt0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQoKX1oYW5kbGVEcmFnT3ZlcihMZSx3ZSl7IXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWR8fChMZS5wcmV2ZW50RGVmYXVsdCgpLExlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIil9aGFuZGxlRHJhZ0xlYXZlKCl7fWhhbmRsZURyb3AoTGUsd2UpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHxMZS5wcmV2ZW50RGVmYXVsdCgpfWVtaXRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShMZSl7dGhpcy52YWx1ZT1MZXx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgaXRlbSBpcyByZXF1aXJlZCIsITEpOnRoaXMubWluSXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWluSXRlbXM/KHRoaXMudmFsaWRhdGlvblRleHQ9YEF0IGxlYXN0ICR7dGhpcy5taW5JdGVtc30gaXRlbXMgcmVxdWlyZWRgLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9c3RhdGlje2dyKGEscil9fTtyZXR1cm4gdnQ9YX0pKCl9KTt2YXIgYUlhLGlJYSxzSWEsbklhLG9JYSxsSWEsY0lhLF9VcixUVXI9dSgoKT0+e3ZlKCk7d2EoKTt3bigpO2FJYT1pKCgpPT57bGV0IHQ9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmB0aXRsZS0ke3R9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IlN5c3RlbSBQZXJmb3JtYW5jZSBSZXBvcnQifSx7aWQ6YGRhdGUtJHt0KzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6YEdlbmVyYXRlZCBvbjogJHtuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCl9YH0se2lkOmBzdW1tYXJ5LWhlYWRpbmctJHt0KzJ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkV4ZWN1dGl2ZSBTdW1tYXJ5In0se2lkOmBzdW1tYXJ5LSR7dCszfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIHJlcG9ydCBwcm92aWRlcyBhbiBhbmFseXNpcyBvZiBzeXN0ZW0gcGVyZm9ybWFuY2UgbWV0cmljcyBvdmVyIHRoZSBsYXN0IDMwIGRheXMuIn0se2lkOmBtZXRyaWNzLWhlYWRpbmctJHt0KzR9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IktleSBNZXRyaWNzIn0se2lkOmBtZXRyaWNzLWxpc3QtJHt0KzV9YCx0eXBlOiJsaXN0Iixjb250ZW50OmBBdmVyYWdlIHJlc3BvbnNlIHRpbWU6IDEyNG1zClVwdGltZTogOTkuOTclCkNQVSB1dGlsaXphdGlvbjogNDUlCk1lbW9yeSB1c2FnZTogMi4zR0IgLyA4R0JgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgYW5hbHlzaXMtaGVhZGluZy0ke3QrNn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiUGVyZm9ybWFuY2UgQW5hbHlzaXMifSx7aWQ6YGFuYWx5c2lzLXF1b3RlLSR7dCs3fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlN5c3RlbSBwZXJmb3JtYW5jZSByZW1haW5zIHdpdGhpbiBhY2NlcHRhYmxlIHBhcmFtZXRlcnMgd2l0aCByb29tIGZvciBvcHRpbWl6YXRpb24gaW4gbWVtb3J5IG1hbmFnZW1lbnQuIn0se2lkOmBjb2RlLWhlYWRpbmctJHt0Kzh9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IlNhbXBsZSBRdWVyeSBQZXJmb3JtYW5jZSJ9LHtpZDpgY29kZS1ibG9jay0ke3QrOX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YFNFTEVDVCBBVkcocmVzcG9uc2VfdGltZSkgYXMgYXZnX3RpbWUsCiAgICAgICBDT1VOVCgqKSBhcyB0b3RhbF9yZXF1ZXN0cywKICAgICAgIERBVEUoY3JlYXRlZF9hdCkgYXMgZGF0ZQpGUk9NIHBlcmZvcm1hbmNlX2xvZ3MKV0hFUkUgY3JlYXRlZF9hdCA+PSBOT1coKSAtIElOVEVSVkFMIDMwIERBWQpHUk9VUCBCWSBEQVRFKGNyZWF0ZWRfYXQpCk9SREVSIEJZIGRhdGUgREVTQztgLG1ldGFkYXRhOntsYW5ndWFnZToic3FsIn19LHtpZDpgZGl2aWRlci0ke3QrMTB9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6YGZvb3Rlci0ke3QrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlJlcG9ydCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBTeXN0ZW0gTW9uaXRvciB2Mi41LjAifV19LCJnZW5lcmF0ZVJlcG9ydEJsb2NrcyIpLGlJYT1pKCgpPT57bGV0IHQ9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmByZWNpcGUtdGl0bGUtJHt0fWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJDbGFzc2ljIE1hcmdoZXJpdGEgUGl6emEifSx7aWQ6YHJlY2lwZS1pbnRyby0ke3QrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiQSB0cmFkaXRpb25hbCBJdGFsaWFuIHBpenphIHdpdGggZnJlc2ggYmFzaWwsIG1venphcmVsbGEsIGFuZCB0b21hdG8gc2F1Y2UuIn0se2lkOmBpbmdyZWRpZW50cy1oZWFkaW5nLSR7dCsyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjM1NX0gSW5ncmVkaWVudHMifSx7aWQ6YGRvdWdoLWhlYWRpbmctJHt0KzN9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgRG91Z2g6In0se2lkOmBkb3VnaC1saXN0LSR7dCs0fWAsdHlwZToibGlzdCIsY29udGVudDpgNTAwZyB0aXBvICIwMCIgZmxvdXIKMzI1bWwgd2FybSB3YXRlcgoxMGcgc2FsdAo3ZyBhY3RpdmUgZHJ5IHllYXN0CjIgdGJzcCBvbGl2ZSBvaWxgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgdG9wcGluZ3MtaGVhZGluZy0ke3QrNX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiRm9yIHRoZSBUb3BwaW5nczoifSx7aWQ6YHRvcHBpbmdzLWxpc3QtJHt0KzZ9YCx0eXBlOiJsaXN0Iixjb250ZW50OmA0MDBnIGNhbm5lZCBTYW4gTWFyemFubyB0b21hdG9lcwoyNTBnIGZyZXNoIG1venphcmVsbGEKRnJlc2ggYmFzaWwgbGVhdmVzCkV4dHJhIHZpcmdpbiBvbGl2ZSBvaWwKU2FsdCBhbmQgcGVwcGVyIHRvIHRhc3RlYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGluc3RydWN0aW9ucy1oZWFkaW5nLSR7dCs3fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjQ2OH1cdTIwMERcdXsxRjM3M30gSW5zdHJ1Y3Rpb25zIn0se2lkOmBzdGVwcy1saXN0LSR7dCs4fWAsdHlwZToibGlzdCIsY29udGVudDpgRGlzc29sdmUgeWVhc3QgaW4gd2FybSB3YXRlciBhbmQgbGV0IHN0YW5kIGZvciA1IG1pbnV0ZXMKTWl4IGZsb3VyIGFuZCBzYWx0LCBjcmVhdGUgYSB3ZWxsIGluIGNlbnRlcgpBZGQgeWVhc3QgbWl4dHVyZSBhbmQgb2xpdmUgb2lsCktuZWFkIGZvciAxMCBtaW51dGVzIHVudGlsIHNtb290aApMZXQgcmlzZSBmb3IgMS0yIGhvdXJzIHVudGlsIGRvdWJsZWQKUHVuY2ggZG93biBhbmQgZGl2aWRlIGludG8gcG9ydGlvbnMKUm9sbCBvdXQgZWFjaCBwb3J0aW9uIHRvIDEyLWluY2ggY2lyY2xlcwpUb3Agd2l0aCBjcnVzaGVkIHRvbWF0b2VzLCBtb3p6YXJlbGxhLCBhbmQgYmFzaWwKQmFrZSBhdCA0NzVceEIwRiAoMjQ1XHhCMEMpIGZvciAxMC0xMiBtaW51dGVzYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOmB0aXAtJHt0Kzl9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiUHJvIHRpcDogRm9yIGFuIGF1dGhlbnRpYyB0YXN0ZSwgdXNlIGEgcGl6emEgc3RvbmUgYW5kIHByZWhlYXQgaXQgaW4gdGhlIG92ZW4gZm9yIGF0IGxlYXN0IDMwIG1pbnV0ZXMgYmVmb3JlIGJha2luZy4ifSx7aWQ6YGRpdmlkZXItJHt0KzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBzZXJ2aW5ncy0ke3QrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlNlcnZpbmdzOiA0IHBpenphcyB8IFByZXAgdGltZTogMiBob3VycyB8IENvb2sgdGltZTogMTIgbWludXRlcyJ9XX0sImdlbmVyYXRlUmVjaXBlQmxvY2tzIiksc0lhPWkodD0+e2xldCBlPXt9O3JldHVybiBlLmJhc2ljPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1iYXNpYyIpLGUuYXJ0aWNsZT10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYXJ0aWNsZSIpLGUuZHJhZ0Ryb3A9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWRyYWdkcm9wIiksZS50dXRvcmlhbD10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItdHV0b3JpYWwiKSxlLm1lZXRpbmc9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLW1lZXRpbmciKSxlLnJlY2lwZT10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItcmVjaXBlIiksZS50ZWNobmljYWw9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXRlY2huaWNhbCIpLGUuZm9ybUludGVncmF0aW9uPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1mb3JtLWludGVncmF0aW9uIiksZS5wcm9ncmFtbWF0aWM9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXByb2dyYW1tYXRpYyIpLGUuZXhwb3J0RGVtbz10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZXhwb3J0IiksZX0sImluaXRpYWxpemVFZGl0b3JzIiksbklhPWkoKHQsZSk9PntsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVwb3J0IiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVjaXBlIikscz10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tY2xlYXItZWRpdG9yIik7ciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhhSWEoKSl9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKGlJYSgpKX0pLHMmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoW10pfSl9LCJzZXR1cFByb2dyYW1tYXRpY0RlbW8iKSxvSWE9aSgodCxlKT0+e2xldCByPXQucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtYmxvY2tzIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWh0bWwiKSxzPXQucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtbWFya2Rvd24iKSxuPXQucXVlcnlTZWxlY3RvcigiI2J0bi1zYXZlLXN0YXRlIiksbz10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tcmVzdG9yZS1zdGF0ZSIpLGw9bnVsbDtyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBjPWUuZXhwb3J0QmxvY2tzKCk7Y29uc29sZS5sb2coIkV4cG9ydGVkIGJsb2NrczoiLGMpLGFsZXJ0KGBFeHBvcnRlZCAke2MubGVuZ3RofSBibG9ja3MgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLmApfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgYz1lLmV4cG9ydEFzSHRtbCgpO2NvbnNvbGUubG9nKCJIVE1MIEV4cG9ydDoiLGMpLGFsZXJ0KCJIVE1MIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4iKX0pLHMmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGM9ZS5leHBvcnRBc01hcmtkb3duKCk7Y29uc29sZS5sb2coIk1hcmtkb3duIEV4cG9ydDoiLGMpLGFsZXJ0KCJNYXJrZG93biBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2w9ZS5leHBvcnRTdGF0ZSgpLGNvbnNvbGUubG9nKCJTYXZlZCBzdGF0ZToiLGwpLGFsZXJ0KCJFZGl0b3Igc3RhdGUgc2F2ZWQhIil9KSxvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2w/KGUuaW1wb3J0U3RhdGUobCksYWxlcnQoIkVkaXRvciBzdGF0ZSByZXN0b3JlZCEiKSk6YWxlcnQoIk5vIHNhdmVkIHN0YXRlIGZvdW5kLiBTYXZlIHN0YXRlIGZpcnN0ISIpfSl9LCJzZXR1cEV4cG9ydERlbW8iKSxsSWE9aSgodCxlLHIpPT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctaHRtbC1vdXRwdXQiKSxzPXQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3LWh0bWwiKTthJiZzJiZlJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3MudGV4dENvbnRlbnQ9ZS5nZXRWYWx1ZSgpLHMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSk7bGV0IG49dC5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctbWFya2Rvd24tb3V0cHV0Iiksbz10LnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1tYXJrZG93biIpO24mJm8mJnImJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57by50ZXh0Q29udGVudD1yLmdldFZhbHVlKCksby5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KX0sInNldHVwT3V0cHV0Rm9ybWF0RGVtbyIpLGNJYT1pKHQ9Pnt0LmFydGljbGUmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJpbnRyby1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkludHJvZHVjdGlvbiB0byBNb2Rlcm4gV2ViIERldmVsb3BtZW50In0se2lkOiJpbnRyby1wYXJhLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik1vZGVybiB3ZWIgZGV2ZWxvcG1lbnQgaGFzIGV2b2x2ZWQgc2lnbmlmaWNhbnRseSBvdmVyIHRoZSBwYXN0IGRlY2FkZS4gSW4gdGhpcyBhcnRpY2xlLCB3ZSdsbCBleHBsb3JlIHRoZSBrZXkgdGVjaG5vbG9naWVzIGFuZCBiZXN0IHByYWN0aWNlcyB0aGF0IGRlZmluZSB3ZWIgZGV2ZWxvcG1lbnQgaW4gMjAyNC4ifSx7aWQ6InRlY2gtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJLZXkgVGVjaG5vbG9naWVzIn0se2lkOiJ0ZWNoLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YFR5cGVTY3JpcHQgLSBUeXBlLXNhZmUgSmF2YVNjcmlwdCBkZXZlbG9wbWVudApXZWIgQ29tcG9uZW50cyAtIE5hdGl2ZSBjb21wb25lbnQgbW9kZWwKRVMgTW9kdWxlcyAtIE1vZGVybiBtb2R1bGUgc3lzdGVtCldlYkFzc2VtYmx5IC0gSGlnaC1wZXJmb3JtYW5jZSBjb21wdXRpbmdgLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6InF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGJlc3Qgd2F5IHRvIHByZWRpY3QgdGhlIGZ1dHVyZSBpcyB0byBpbnZlbnQgaXQuIC0gQWxhbiBLYXkifSx7aWQ6ImV4YW1wbGUtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJDb2RlIEV4YW1wbGUifSx7aWQ6ImNvZGUtZXhhbXBsZS0iK0RhdGUubm93KCksdHlwZToiY29kZSIsY29udGVudDpgY2xhc3MgTW9kZXJuV2ViQXBwIGV4dGVuZHMgSFRNTEVsZW1lbnQgewogIGNvbnN0cnVjdG9yKCkgewogICAgc3VwZXIoKTsKICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pOwogIH0KICAKICBjb25uZWN0ZWRDYWxsYmFjaygpIHsKICAgIHRoaXMucmVuZGVyKCk7CiAgfQp9YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6ImphdmFzY3JpcHQifX1dO3QuYXJ0aWNsZS5pbXBvcnRCbG9ja3MoZSl9LDUwMCksdC5kcmFnRHJvcCYmc2V0VGltZW91dCgoKT0+e2xldCBlPVt7aWQ6ImRyYWctdGl0bGUtIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiRHJhZyAmIERyb3AgRGVtbyJ9LHtpZDoiZHJhZy1pbnRyby0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIGVkaXRvciBkZW1vbnN0cmF0ZXMgZHJhZyBhbmQgZHJvcCBmdW5jdGlvbmFsaXR5LiBUcnkgZHJhZ2dpbmcgdGhlc2UgYmxvY2tzIGFyb3VuZCEifSx7aWQ6ImRyYWctaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJIb3cgSXQgV29ya3MifSx7aWQ6ImRyYWctbGlzdC0iK0RhdGUubm93KCksdHlwZToibGlzdCIsY29udGVudDpgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZQpDbGljayBhbmQgaG9sZCB0aGUgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nCkRyYWcgdG8gcmVvcmRlciBibG9ja3MKUmVsZWFzZSB0byBkcm9wIGluIHRoZSBuZXcgcG9zaXRpb25gLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6ImRyYWctcXVvdGUtIitEYXRlLm5vdygpLHR5cGU6InF1b3RlIixjb250ZW50OiJUaGUgZHJhZyBhbmQgZHJvcCBmZWF0dXJlIG1ha2VzIGl0IGVhc3kgdG8gcmVvcmdhbml6ZSB5b3VyIGNvbnRlbnQgd2l0aG91dCBjdXR0aW5nIGFuZCBwYXN0aW5nLiJ9LHtpZDoiZHJhZy1kaXZpZGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6ImRyYWctZm9vdGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik5vdGU6IERpdmlkZXIgYmxvY2tzIGNhbm5vdCBiZSBkcmFnZ2VkLCBidXQgb3RoZXIgYmxvY2tzIGNhbiBiZSBtb3ZlZCBhcm91bmQgdGhlbS4ifV07dC5kcmFnRHJvcC5pbXBvcnRCbG9ja3MoZSl9LDYwMCl9LCJwb3B1bGF0ZUluaXRpYWxDb250ZW50IiksX1VyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IG5ldyBQcm9taXNlKHI9PnNldFRpbWVvdXQociw1MDApKTtsZXQgZT1zSWEodCk7ZS5wcm9ncmFtbWF0aWMmJm5JYSh0LGUucHJvZ3JhbW1hdGljKSxlLmV4cG9ydERlbW8mJm9JYSh0LGUuZXhwb3J0RGVtbyksbElhKHQsZS5tZWV0aW5nLGUucmVjaXBlKSxjSWEoZSksY29uc29sZS5sb2coIldZU0lXWUcgRGVtbyBpbml0aWFsaXplZCB3aXRoIGVkaXRvcnM6IixPYmplY3Qua2V5cyhlKSl9fT4KICA8c3R5bGU+CiAgICAke3JlYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmVhdHVyZS1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2FhYTsKICAgICAgICB9CiAgICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEwMiwgMjA0LCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICBtYXJnaW46IDAgMCAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYmJiOwogICAgICAgIH0KICAgICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1jYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3V0cHV0LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4wNCk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgIzBmMTcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW3RoZW1lPSdkYXJrJ10pIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjA2KTsKICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgI2Y0ZjRmNSk7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldy52aXNpYmxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjhmZjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IHsKICAgICAgICBtYXJnaW46IDhweCAwIDAgMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODsKICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM1NTU7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3MgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTYsIDM5LCAxNzYsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHN0cm9uZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3Mgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjNENBRjUwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjRkY5ODAwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjOUMyN0IwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBwIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIFx1ezFGNjgwfSBNb2Rlcm4gV1lTSVdZRyBFZGl0b3IifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQSBwb3dlcmZ1bCBibG9jay1iYXNlZCBlZGl0b3Igd2l0aCBzbGFzaCBjb21tYW5kcywga2V5Ym9hcmQgc2hvcnRjdXRzLCBhbmQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdHMuIAogICAgICAgICAgUGVyZmVjdCBmb3IgY29udGVudCBjcmVhdGlvbiwgYmxvZyBwb3N0cywgZG9jdW1lbnRhdGlvbiwgYW5kIG1vcmUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPlNsYXNoIGNvbW1hbmRzICgvKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5LZXlib2FyZCBzaG9ydGN1dHM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+QmxvY2stYmFzZWQgZWRpdGluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EcmFnICYgZHJvcCByZW9yZGVyaW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkhUTUwgJiBNYXJrZG93biBvdXRwdXQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RGFyayBtb2RlIHN1cHBvcnQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+TW9iaWxlIHJlc3BvbnNpdmU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1iYXNpYyIKICAgICAgICAgIGxhYmVsPSJSaWNoIFRleHQgRWRpdG9yIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGFydCB0eXBpbmcgb3IgdXNlICcvJyB0byBpbnNlcnQgZGlmZmVyZW50IGJsb2NrIHR5cGVzIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWJveCI+CiAgICAgICAgICA8aDQgY2xhc3M9InNob3J0Y3V0cy10aXRsZSI+4oyo77iPIEtleWJvYXJkIFNob3J0Y3V0czwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtZ3JpZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi88L3NwYW4+IFNsYXNoIGNvbW1hbmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jPC9zcGFuPiBIZWFkaW5nIDEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjPC9zcGFuPiBIZWFkaW5nIDIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjIzwvc3Bhbj4gSGVhZGluZyAzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4+PC9zcGFuPiBRdW90ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+XGBcYFxgPC9zcGFuPiBDb2RlIGJsb2NrCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4qPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tPC9zcGFuPiBCdWxsZXQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+MS48L3NwYW4+IE51bWJlcmVkIGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi0tLTwvc3Bhbj4gRGl2aWRlcgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gXHV7MUY0RER9IEJsb2cgUG9zdCBFeGFtcGxlIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFBlcmZlY3QgZm9yIGNyZWF0aW5nIHJpY2ggY29udGVudCB3aXRoIG11bHRpcGxlIGJsb2NrIHR5cGVzLiAKICAgICAgICAgIFRoZSBlZGl0b3IgcHJlc2VydmVzIGZvcm1hdHRpbmcgYW5kIHByb3ZpZGVzIGEgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1hcnRpY2xlIgogICAgICAgICAgbGFiZWw9IkJsb2cgUG9zdCBDb250ZW50IiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgdXNpbmcgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gXHV7MUY1MDB9IERyYWcgJiBEcm9wIFJlb3JkZXJpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgRWFzaWx5IHJlYXJyYW5nZSB5b3VyIGNvbnRlbnQgYmxvY2tzIGJ5IGRyYWdnaW5nIHRoZW0uIAogICAgICAgICAgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gcmV2ZWFsIHRoZSBkcmFnIGhhbmRsZSBvbiB0aGUgbGVmdCBzaWRlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1kcmFnZHJvcCIKICAgICAgICAgIGxhYmVsPSJEcmFnICYgRHJvcCBEZW1vIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgZHJhZ2dpbmcgYmxvY2tzIHRvIHJlb3JkZXIgdGhlbSAtIGhvdmVyIHRvIHNlZSBkcmFnIGhhbmRsZXMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpcHMtYm94Ij4KICAgICAgICAgIDxzdHJvbmc+8J+SoSBUaXBzOjwvc3Ryb25nPgogICAgICAgICAgPHVsIGNsYXNzPSJ0aXBzLWxpc3QiPgogICAgICAgICAgICA8bGk+SG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZSAo4ouu4ouuKSBvbiB0aGUgbGVmdDwvbGk+CiAgICAgICAgICAgIDxsaT5DbGljayBhbmQgaG9sZCB0aGUgZHJhZyBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmc8L2xpPgogICAgICAgICAgICA8bGk+Qmx1ZSBpbmRpY2F0b3JzIHNob3cgd2hlcmUgdGhlIGJsb2NrIHdpbGwgYmUgZHJvcHBlZDwvbGk+CiAgICAgICAgICAgIDxsaT5EaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZDwvbGk+CiAgICAgICAgICAgIDxsaT5UaGUgZWRpdG9yIG1haW50YWlucyBmb2N1cyBvbiB0aGUgbW92ZWQgYmxvY2sgYWZ0ZXIgZHJvcHBpbmc8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFx1ezFGNERBfSBUdXRvcmlhbCAmIERvY3VtZW50YXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXByZWhlbnNpdmUgdHV0b3JpYWxzIGFuZCBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBleGFtcGxlcywgbGlzdHMsIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXR1dG9yaWFsIgogICAgICAgICAgbGFiZWw9IkdpdCBUdXRvcmlhbCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RlcC1ieS1zdGVwIGd1aWRlIHdpdGggY29tbWFuZHMgYW5kIGV4cGxhbmF0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICB2YWx1ZT0iIyBHaXQgVHV0b3JpYWwgZm9yIEJlZ2lubmVycwoKR2l0IGlzIGEgZGlzdHJpYnV0ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0aGF0IGhlbHBzIHlvdSB0cmFjayBjaGFuZ2VzIGluIHlvdXIgY29kZSBvdmVyIHRpbWUuIFRoaXMgdHV0b3JpYWwgd2lsbCBndWlkZSB5b3UgdGhyb3VnaCB0aGUgYmFzaWNzLgoKIyMgUHJlcmVxdWlzaXRlcwoKQmVmb3JlIHN0YXJ0aW5nLCBlbnN1cmUgeW91IGhhdmU6CgotIEdpdCBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0KLSBBIHRleHQgZWRpdG9yIG9yIElERQotIEJhc2ljIGNvbW1hbmQgbGluZSBrbm93bGVkZ2UKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIDEuIENvbmZpZ3VyZSBHaXQKCkZpcnN0LCBzZXQgdXAgeW91ciBpZGVudGl0eToKClxgXGBcYGJhc2gKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgJnF1b3Q7WW91ciBOYW1lJnF1b3Q7CmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAmcXVvdDt5b3VyLmVtYWlsQGV4YW1wbGUuY29tJnF1b3Q7ClxgXGBcYAoKIyMjIDIuIEluaXRpYWxpemUgYSBSZXBvc2l0b3J5CgpDcmVhdGUgYSBuZXcgR2l0IHJlcG9zaXRvcnk6CgpcYFxgXGBiYXNoCm1rZGlyIG15LXByb2plY3QKY2QgbXktcHJvamVjdApnaXQgaW5pdApcYFxgXGAKCiMjIyAzLiBCYXNpYyBHaXQgV29ya2Zsb3cKCiMjIyMgQWRkaW5nIEZpbGVzCgpDcmVhdGUgYSBmaWxlIGFuZCBhZGQgaXQgdG8gc3RhZ2luZzoKClxgXGBcYGJhc2gKZWNobyAmcXVvdDsjIE15IFByb2plY3QmcXVvdDsgPiBSRUFETUUubWQKZ2l0IGFkZCBSRUFETUUubWQKXGBcYFxgCgojIyMjIENvbW1pdHRpbmcgQ2hhbmdlcwoKXGBcYFxgYmFzaApnaXQgY29tbWl0IC1tICZxdW90O0luaXRpYWwgY29tbWl0JnF1b3Q7ClxgXGBcYAoKPiAqKkJlc3QgUHJhY3RpY2U6KiogV3JpdGUgY2xlYXIsIGRlc2NyaXB0aXZlIGNvbW1pdCBtZXNzYWdlcyB0aGF0IGV4cGxhaW4gd2hhdCBjaGFuZ2VzIHdlcmUgbWFkZSBhbmQgd2h5LgoKIyMjIDQuIFdvcmtpbmcgd2l0aCBCcmFuY2hlcwoKQnJhbmNoZXMgYWxsb3cgeW91IHRvIHdvcmsgb24gZmVhdHVyZXMgaW5kZXBlbmRlbnRseToKClxgXGBcYGJhc2gKIyBDcmVhdGUgYW5kIHN3aXRjaCB0byBhIG5ldyBicmFuY2gKZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUtYnJhbmNoCgojIE1ha2UgY2hhbmdlcyBhbmQgY29tbWl0CmdpdCBhZGQgLgpnaXQgY29tbWl0IC1tICZxdW90O0FkZCBuZXcgZmVhdHVyZSZxdW90OwoKIyBTd2l0Y2ggYmFjayB0byBtYWluCmdpdCBjaGVja291dCBtYWluCgojIE1lcmdlIHRoZSBmZWF0dXJlCmdpdCBtZXJnZSBmZWF0dXJlLWJyYW5jaApcYFxgXGAKCi0tLQoKIyMgQ29tbW9uIENvbW1hbmRzIFJlZmVyZW5jZQoKfCBDb21tYW5kIHwgRGVzY3JpcHRpb24gfAp8LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgXGBnaXQgc3RhdHVzXGAgfCBDaGVjayByZXBvc2l0b3J5IHN0YXR1cyB8CnwgXGBnaXQgbG9nXGAgfCBWaWV3IGNvbW1pdCBoaXN0b3J5IHwKfCBcYGdpdCBkaWZmXGAgfCBTaG93IGNoYW5nZXMgfAp8IFxgZ2l0IHB1bGxcYCB8IEZldGNoIGFuZCBtZXJnZSBjaGFuZ2VzIHwKfCBcYGdpdCBwdXNoXGAgfCBVcGxvYWQgY2hhbmdlcyB0byByZW1vdGUgfAoKIyMgTmV4dCBTdGVwcwoKMS4gTGVhcm4gYWJvdXQgcmVtb3RlIHJlcG9zaXRvcmllcwoyLiBFeHBsb3JlIGFkdmFuY2VkIEdpdCBmZWF0dXJlcwozLiBQcmFjdGljZSB3aXRoIHJlYWwgcHJvamVjdHMKNC4gQ29udHJpYnV0ZSB0byBvcGVuIHNvdXJjZQoKKipIYXBweSBjb2RpbmchKiog8J+agCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBcdXsxRjUwNH0gT3V0cHV0IEZvcm1hdHMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2hvb3NlIGJldHdlZW4gSFRNTCBhbmQgTWFya2Rvd24gb3V0cHV0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHlvdXIgbmVlZHMuIAogICAgICAgICAgUGVyZmVjdCBmb3Igc3RhdGljIHNpdGUgZ2VuZXJhdG9ycywgZG9jdW1lbnRhdGlvbiBzeXN0ZW1zLCBvciBhbnkgY29udGVudCBtYW5hZ2VtZW50IHdvcmtmbG93LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1tZWV0aW5nIgogICAgICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIE5vdGVzIiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RydWN0dXJlZCBtZWV0aW5nIGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgICAgICAgIHZhbHVlPSI8aDI+UTQgUGxhbm5pbmcgTWVldGluZzwvaDI+PHA+PHN0cm9uZz5EYXRlOjwvc3Ryb25nPiBEZWNlbWJlciAxNSwgMjAyNDxicj48c3Ryb25nPkF0dGVuZGVlczo8L3N0cm9uZz4gUHJvZHVjdCBUZWFtLCBFbmdpbmVlcmluZywgRGVzaWduPC9wPjxoMz5BZ2VuZGEgSXRlbXM8L2gzPjxvbD48bGk+UmV2aWV3IFEzIGFjaGlldmVtZW50czwvbGk+PGxpPlNldCBRNCBvYmplY3RpdmVzPC9saT48bGk+UmVzb3VyY2UgYWxsb2NhdGlvbjwvbGk+PGxpPlRpbWVsaW5lIGRpc2N1c3Npb248L2xpPjwvb2w+PGgzPktleSBEZWNpc2lvbnM8L2gzPjx1bD48bGk+TGF1bmNoIG5ldyBkYXNoYm9hcmQgZmVhdHVyZSBieSBlbmQgb2YgSmFudWFyeTwvbGk+PGxpPkluY3JlYXNlIGVuZ2luZWVyaW5nIHRlYW0gYnkgMiBkZXZlbG9wZXJzPC9saT48bGk+SW1wbGVtZW50IHdlZWtseSBkZXNpZ24gcmV2aWV3czwvbGk+PC91bD48YmxvY2txdW90ZT4mcXVvdDtGb2N1cyBvbiB1c2VyIGV4cGVyaWVuY2UgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIFEzIGZlZWRiYWNrJnF1b3Q7IC0gUHJvZHVjdCBNYW5hZ2VyPC9ibG9ja3F1b3RlPjxoMz5BY3Rpb24gSXRlbXM8L2gzPjx1bD48bGk+U2FyYWg6IENyZWF0ZSBkZXRhaWxlZCBwcm9qZWN0IHRpbWVsaW5lPC9saT48bGk+TWlrZTogRHJhZnQgdGVjaG5pY2FsIHJlcXVpcmVtZW50czwvbGk+PGxpPkxpc2E6IFNjaGVkdWxlIHVzZXIgcmVzZWFyY2ggc2Vzc2lvbnM8L2xpPjwvdWw+PGhyPjxwPk5leHQgbWVldGluZzogSmFudWFyeSA1LCAyMDI1PC9wPiIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctaHRtbC1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBIVE1MIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctaHRtbCIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItcmVjaXBlIgogICAgICAgICAgICAgIGxhYmVsPSJSZWNpcGUgQmxvZyBQb3N0IiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRm9vZCBibG9nIHdpdGggbWl4ZWQgY29udGVudCIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgICAgIHZhbHVlPSIjIFVsdGltYXRlIENob2NvbGF0ZSBDaGlwIENvb2tpZXMKClRoZXJlJ3Mgbm90aGluZyBxdWl0ZSBsaWtlIHRoZSBzbWVsbCBvZiBmcmVzaGx5IGJha2VkIGNob2NvbGF0ZSBjaGlwIGNvb2tpZXMuIFRoaXMgcmVjaXBlIGhhcyBiZWVuIHBlcmZlY3RlZCBvdmVyIHllYXJzIG9mIHRlc3RpbmchCgojIyBJbmdyZWRpZW50cwoKLSAywrwgY3VwcyBhbGwtcHVycG9zZSBmbG91cgotIDEgdHNwIGJha2luZyBzb2RhCi0gMSB0c3Agc2FsdAotIDEgY3VwIGJ1dHRlciwgc29mdGVuZWQKLSDCviBjdXAgZ3JhbnVsYXRlZCBzdWdhcgotIMK+IGN1cCBwYWNrZWQgYnJvd24gc3VnYXIKLSAyIGxhcmdlIGVnZ3MKLSAyIHRzcCB2YW5pbGxhIGV4dHJhY3QKLSAyIGN1cHMgY2hvY29sYXRlIGNoaXBzCgojIyBJbnN0cnVjdGlvbnMKCiMjIyBTdGVwIDE6IFByZXBhcmF0aW9uCgpQcmVoZWF0IHlvdXIgb3ZlbiB0byAqKjM3NcKwRiAoMTkwwrBDKSoqLiBUaGlzIHRlbXBlcmF0dXJlIGlzIGNydWNpYWwgZm9yIGFjaGlldmluZyB0aGUgcGVyZmVjdCB0ZXh0dXJlLgoKIyMjIFN0ZXAgMjogTWl4IERyeSBJbmdyZWRpZW50cwoKSW4gYSBtZWRpdW0gYm93bCwgd2hpc2sgdG9nZXRoZXI6CgoxLiBGbG91cgoyLiBCYWtpbmcgc29kYQozLiBTYWx0CgojIyMgU3RlcCAzOiBDcmVhbSBCdXR0ZXIgYW5kIFN1Z2FycwoKXGBcYFxgCkNyZWFtIGJ1dHRlciBhbmQgc3VnYXJzIGZvciAzLTQgbWludXRlcwp1bnRpbCBsaWdodCBhbmQgZmx1ZmZ5ClxgXGBcYAoKPiAqKlBybyB0aXA6KiogUm9vbSB0ZW1wZXJhdHVyZSBpbmdyZWRpZW50cyBtaXggYmV0dGVyIGFuZCBjcmVhdGUgYSBtb3JlIHVuaWZvcm0gZG91Z2guCgojIyMgU3RlcCA0OiBBZGQgV2V0IEluZ3JlZGllbnRzCgpCZWF0IGluIGVnZ3Mgb25lIGF0IGEgdGltZSwgdGhlbiBhZGQgdmFuaWxsYSBleHRyYWN0LgoKIyMjIFN0ZXAgNTogQ29tYmluZSBhbmQgQmFrZQoKR3JhZHVhbGx5IGJsZW5kIGluIGZsb3VyIG1peHR1cmUsIHRoZW4gc3RpciBpbiBjaG9jb2xhdGUgY2hpcHMuIERyb3Agcm91bmRlZCB0YWJsZXNwb29ucyBvbnRvIHVuZ3JlYXNlZCBjb29raWUgc2hlZXRzLgoKLS0tCgoqKkJha2luZyB0aW1lOioqIDktMTEgbWludXRlcyBvciB1bnRpbCBnb2xkZW4gYnJvd24KCioqWWllbGQ6KiogQWJvdXQgNSBkb3plbiBjb29raWVzIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBNYXJrZG93biBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LW1hcmtkb3duIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gXHV7MUYzQTh9IEFkdmFuY2VkIEVkaXRpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXBsZXggZG9jdW1lbnRzIHdpdGggbWl4ZWQgY29udGVudCB0eXBlcy4gVGhlIGVkaXRvciBoYW5kbGVzIGFsbCBmb3JtYXR0aW5nIHNlYW1sZXNzbHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXRlY2huaWNhbCIKICAgICAgICAgIGxhYmVsPSJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ3JlYXRlIHRlY2huaWNhbCBkb2NzIHdpdGggY29kZSBleGFtcGxlcyBhbmQgc3RydWN0dXJlZCBjb250ZW50IgogICAgICAgICAgdmFsdWU9IjxoMT5BUEkgRG9jdW1lbnRhdGlvbjwvaDE+PHA+V2VsY29tZSB0byBvdXIgQVBJIGRvY3VtZW50YXRpb24uIEJlbG93IHlvdSdsbCBmaW5kIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ugb3VyIGVuZHBvaW50cy48L3A+PGgyPkF1dGhlbnRpY2F0aW9uPC9oMj48cD5BbGwgQVBJIHJlcXVlc3RzIHJlcXVpcmUgYXV0aGVudGljYXRpb24gdXNpbmcgYW4gQVBJIGtleTo8L3A+PHByZT48Y29kZT5BdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZPC9jb2RlPjwvcHJlPjxoMj5FbmRwb2ludHM8L2gyPjxoMz5HRVQgL3VzZXJzPC9oMz48cD5SZXRyaWV2ZSBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPmN1cmwgLVggR0VUIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIFxcCiAgLUggJnF1b3Q7QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSZxdW90OzwvY29kZT48L3ByZT48YmxvY2txdW90ZT5Ob3RlOiBSYXRlIGxpbWl0aW5nIGFwcGxpZXMgdG8gYWxsIGVuZHBvaW50cy4gWW91IGNhbiBtYWtlIHVwIHRvIDEwMCByZXF1ZXN0cyBwZXIgbWludXRlLjwvYmxvY2txdW90ZT48aDM+UE9TVCAvdXNlcnM8L2gzPjxwPkNyZWF0ZSBhIG5ldyB1c2VyIGluIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+ewogICZxdW90O25hbWUmcXVvdDs6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICZxdW90O2VtYWlsJnF1b3Q7OiAmcXVvdDtqb2huQGV4YW1wbGUuY29tJnF1b3Q7LAogICZxdW90O3JvbGUmcXVvdDs6ICZxdW90O3VzZXImcXVvdDsKfTwvY29kZT48L3ByZT48aHI+PHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byBvdXIgY29tcGxldGUgZG9jdW1lbnRhdGlvbi48L3A+IgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIFx1MjY5OVx1RkUwRiBGb3JtIEludGVncmF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFNlYW1sZXNzbHkgaW50ZWdyYXRlcyB3aXRoIGRlZXMtZm9ybSBmb3IgY29tcGxldGUgZm9ybSBzb2x1dGlvbnMuIAogICAgICAgICAgQWxsIHN0YW5kYXJkIGZvcm0gZmVhdHVyZXMgbGlrZSB2YWxpZGF0aW9uLCByZXF1aXJlZCBmaWVsZHMsIGFuZCBkYXRhIGJpbmRpbmcgd29yayBvdXQgb2YgdGhlIGJveC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIFRpdGxlIiAKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIHZhbHVlPSJIb3cgdG8gQnVpbGQgTW9kZXJuIFdlYiBBcHBsaWNhdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgIGlkPSJlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgQ29udGVudCIgCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgY29udGVudCBoZXJlIgogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICBsYWJlbD0iVGFncyIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkFkZCByZWxldmFudCB0YWdzIGZvciB5b3VyIGFydGljbGUiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBcdXsxRjlFOX0gUHJvZ3JhbW1hdGljIEJsb2NrIENyZWF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb250ZW50IHByb2dyYW1tYXRpY2FsbHkgdXNpbmcgdGhlIGJsb2NrIEFQSSBmb3IgZHluYW1pYyBkb2N1bWVudCBnZW5lcmF0aW9uLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLXByb2dyYW1tYXRpYyIKICAgICAgICAgIGxhYmVsPSJQcm9ncmFtbWF0aWNhbGx5IEdlbmVyYXRlZCBDb250ZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgY29udGVudCB3YXMgY3JlYXRlZCB1c2luZyB0aGUgaW1wb3J0QmxvY2tzIEFQSSIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZXBvcnQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlcG9ydAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZWNpcGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlY2lwZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jbGVhci1lZGl0b3IiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIENsZWFyIEVkaXRvcgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBcdXsxRjRFNH0gRXhwb3J0L0ltcG9ydCBGZWF0dXJlcyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUaGUgV1lTSVdZRyBlZGl0b3IgcHJvdmlkZXMgbXVsdGlwbGUgZXhwb3J0IGZvcm1hdHMgYW5kIGxvc3NsZXNzIHNhdmUvcmVzdG9yZSBjYXBhYmlsaXRpZXMgZm9yIG1heGltdW0gZmxleGliaWxpdHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBibG9ja3MiPgogICAgICAgICAgICA8c3Ryb25nPkxvc3NsZXNzIEJsb2Nrczwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYW5kIGltcG9ydCByYXcgYmxvY2sgc3RydWN0dXJlIGZvciBwZXJmZWN0IHJvdW5kLXRyaXAgZWRpdGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBodG1sIj4KICAgICAgICAgICAgPHN0cm9uZz5IVE1MIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5HZXQgY2xlYW4sIHNlbWFudGljIEhUTUwgcmVnYXJkbGVzcyBvZiBvdXRwdXQgZm9ybWF0IHNldHRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgbWFya2Rvd24iPgogICAgICAgICAgICA8c3Ryb25nPk1hcmtkb3duIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYXMgTWFya2Rvd24gZm9yIGRvY3MsIFJFQURNRXMsIGFuZCBzdGF0aWMgc2l0ZXM8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgc3RhdGUiPgogICAgICAgICAgICA8c3Ryb25nPlN0YXRlIE1hbmFnZW1lbnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+U2F2ZSBhbmQgcmVzdG9yZSBjb21wbGV0ZSBlZGl0b3Igc3RhdGUgaW5jbHVkaW5nIHNldHRpbmdzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1leHBvcnQiCiAgICAgICAgICBsYWJlbD0iRXhwb3J0IERlbW8gRWRpdG9yIgogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSB0aGUgZXhwb3J0IGJ1dHRvbnMgYmVsb3cgdG8gc2VlIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cyIKICAgICAgICAgIHZhbHVlPSI8aDE+U29mdHdhcmUgUmVsZWFzZSBOb3RlczwvaDE+PHA+PHN0cm9uZz5WZXJzaW9uIDIuNS4wPC9zdHJvbmc+IC0gUmVsZWFzZWQgRGVjZW1iZXIgMTUsIDIwMjQ8L3A+PGgyPvCfjokgTmV3IEZlYXR1cmVzPC9oMj48dWw+PGxpPkFkZGVkIGRhcmsgbW9kZSBzdXBwb3J0IGFjcm9zcyBhbGwgY29tcG9uZW50czwvbGk+PGxpPkltcGxlbWVudGVkIHJlYWwtdGltZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmVzPC9saT48bGk+TmV3IGRhc2hib2FyZCBhbmFseXRpY3Mgd2lkZ2V0czwvbGk+PGxpPkV4cG9ydCBmdW5jdGlvbmFsaXR5IGZvciBhbGwgcmVwb3J0IHR5cGVzPC9saT48L3VsPjxoMj7wn5CbIEJ1ZyBGaXhlczwvaDI+PHVsPjxsaT5GaXhlZCBtZW1vcnkgbGVhayBpbiBkYXRhIHByb2Nlc3NpbmcgbW9kdWxlPC9saT48bGk+UmVzb2x2ZWQgYXV0aGVudGljYXRpb24gdGltZW91dCBpc3N1ZXM8L2xpPjxsaT5Db3JyZWN0ZWQgdGltZXpvbmUgaGFuZGxpbmcgaW4gc2NoZWR1bGVkIHRhc2tzPC9saT48L3VsPjxoMj7imqEgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzPC9oMj48YmxvY2txdW90ZT5QYWdlIGxvYWQgdGltZXMgcmVkdWNlZCBieSA0MCUgdGhyb3VnaCBsYXp5IGxvYWRpbmcgYW5kIGNvZGUgc3BsaXR0aW5nPC9ibG9ja3F1b3RlPjxoMj7wn5SnIFRlY2huaWNhbCBEZXRhaWxzPC9oMj48cHJlPjxjb2RlPi8vIE5ldyBBUEkgZW5kcG9pbnQgZm9yIGJhdGNoIG9wZXJhdGlvbnMKUE9TVCAvYXBpL3YyL2JhdGNoCnsKICAmcXVvdDtvcGVyYXRpb25zJnF1b3Q7OiBbCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7R0VUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvdXNlcnMvMTIzJnF1b3Q7IH0sCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7UFVUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvc2V0dGluZ3MmcXVvdDssICZxdW90O2JvZHkmcXVvdDs6IHsuLi59IH0KICBdCn08L2NvZGU+PC9wcmU+PGgyPvCfkqEgTWlncmF0aW9uIEd1aWRlPC9oMj48b2w+PGxpPlVwZGF0ZSB5b3VyIGRlcGVuZGVuY2llcyB0byB0aGUgbGF0ZXN0IHZlcnNpb25zPC9saT48bGk+UnVuIGRhdGFiYXNlIG1pZ3JhdGlvbnM6IDxjb2RlPm5wbSBydW4gbWlncmF0ZTwvY29kZT48L2xpPjxsaT5DbGVhciBjYWNoZTogPGNvZGU+bnBtIHJ1biBjYWNoZTpjbGVhcjwvY29kZT48L2xpPjxsaT5SZXN0YXJ0IGFsbCBzZXJ2aWNlczwvbGk+PC9vbD48aHI+PHA+Rm9yIHF1ZXN0aW9ucyBvciBpc3N1ZXMsIHBsZWFzZSBjb250YWN0IHRoZSBkZXZlbG9wbWVudCB0ZWFtIG9yIGZpbGUgYSB0aWNrZXQgaW4gb3VyIGlzc3VlIHRyYWNrZXIuPC9wPiIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtYmxvY2tzIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgQmxvY2tzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1odG1sIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgSFRNTAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtbWFya2Rvd24iIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBNYXJrZG93bgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBTYXZlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc3RvcmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFJlc3RvcmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgJDE9dSgoKT0+e30pO3ZhciBjcyxDOT11KCgpPT57JDEoKTtjcz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnU2hvcnRjdXRzIil9c3RhdGljIEhFQURJTkdfUEFUVEVSTlM9W3twYXR0ZXJuOi9eI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTEifSx7cGF0dGVybjovXiMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMiJ9LHtwYXR0ZXJuOi9eIyMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMyJ9XTtzdGF0aWMgTElTVF9QQVRURVJOUz1be3BhdHRlcm46L15bKi1dW1xzXHUwMEEwXSQvLHR5cGU6ImJ1bGxldCJ9LHtwYXR0ZXJuOi9eKFxkKylcLltcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn0se3BhdHRlcm46L14oXGQrKVwpW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifV07c3RhdGljIFFVT1RFX1BBVFRFUk49L14+W1xzXHUwMEEwXSQvO3N0YXRpYyBDT0RFX1BBVFRFUk49L15gYGAkLztzdGF0aWMgRElWSURFUl9QQVRURVJOUz1bIi0tLSIsIioqKiIsIl9fXyJdO3N0YXRpYyBjaGVja0hlYWRpbmdTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46cix0eXBlOmF9b2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKWlmKHIudGVzdChlKSlyZXR1cm57dHlwZTphfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQoZSl7Zm9yKGxldHtwYXR0ZXJuOnIsdHlwZTphfW9mIHRoaXMuTElTVF9QQVRURVJOUylpZihyLnRlc3QoZSkpcmV0dXJue3R5cGU6Imxpc3QiLGxpc3RUeXBlOmF9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0NvZGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5DT0RFX1BBVFRFUk4udGVzdChlKX1zdGF0aWMgY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuRElWSURFUl9QQVRURVJOUy5pbmNsdWRlcyhlKX1zdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKXtyZXR1cm5be3R5cGU6InBhcmFncmFwaCIsbGFiZWw6IlBhcmFncmFwaCIsaWNvbjoibHVjaWRlOnBpbGNyb3cifSx7dHlwZToiaGVhZGluZy0xIixsYWJlbDoiSGVhZGluZyAxIixpY29uOiJsdWNpZGU6aGVhZGluZzEifSx7dHlwZToiaGVhZGluZy0yIixsYWJlbDoiSGVhZGluZyAyIixpY29uOiJsdWNpZGU6aGVhZGluZzIifSx7dHlwZToiaGVhZGluZy0zIixsYWJlbDoiSGVhZGluZyAzIixpY29uOiJsdWNpZGU6aGVhZGluZzMifSx7dHlwZToicXVvdGUiLGxhYmVsOiJRdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIn0se3R5cGU6ImNvZGUiLGxhYmVsOiJDb2RlIEJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUifSx7dHlwZToibGlzdCIsbGFiZWw6IkJ1bGxldCBMaXN0IixpY29uOiJsdWNpZGU6bGlzdCJ9LHt0eXBlOiJpbWFnZSIsbGFiZWw6IkltYWdlIixpY29uOiJsdWNpZGU6aW1hZ2UifSx7dHlwZToiZGl2aWRlciIsbGFiZWw6IkRpdmlkZXIiLGljb246Imx1Y2lkZTptaW51cyJ9LHt0eXBlOiJ5b3V0dWJlIixsYWJlbDoiWW91VHViZSIsaWNvbjoibHVjaWRlOnlvdXR1YmUifSx7dHlwZToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biIsaWNvbjoibHVjaWRlOmZpbGVUZXh0In0se3R5cGU6Imh0bWwiLGxhYmVsOiJIVE1MIixpY29uOiJsdWNpZGU6Y29kZSJ9LHt0eXBlOiJhdHRhY2htZW50IixsYWJlbDoiRmlsZSBBdHRhY2htZW50IixpY29uOiJsdWNpZGU6cGFwZXJjbGlwIn1dfXN0YXRpYyBnZW5lcmF0ZUJsb2NrSWQoKXtyZXR1cm5gYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWB9fX0pO3ZhciBWeSx2YyxjZmUsZW10PXUoKCk9Pnt2ZSgpO09vKCk7S3IoKTskMSgpO0M5KCk7bHQoKTtWeT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdmM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGNmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtc2xhc2gtbWVudSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzU2xhc2hNZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sYz1baWUoKV0scD1baWUoKV0sdj1baWUoKV0seT1baWUoKV0sVnkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ2aXNpYmxlImluIFMsImhhcyIpLGdldDppKFM9PlMudmlzaWJsZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnZpc2libGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxvLGwpLFZ5KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InBvc2l0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMucG9zaXRpb24sImdldCIpLHNldDppKChTLE8pPT57Uy5wb3NpdGlvbj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksVnkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImZpbHRlciJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmZpbHRlciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmZpbHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksVnkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RlZEluZGV4ImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWRJbmRleCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNlbGVjdGVkSW5kZXg9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLFZ5KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibWVudVpJbmRleCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChTLE8pPT57Uy5tZW51WkluZGV4PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxWeShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBpbnN0YW5jZTtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gTi5pbnN0YW5jZXx8KE4uaW5zdGFuY2U9bmV3IE4sZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChOLmluc3RhbmNlKSksTi5pbnN0YW5jZX0jZT12Yyh0aGlzLG8sITEpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZpc2libGUoXyl7dGhpcy4jZT1ffSN0PSh2Yyh0aGlzLGwpLHZjKHRoaXMsZCx7eDowLHk6MH0pKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oXyl7dGhpcy4jdD1ffSNyPSh2Yyh0aGlzLGYpLHZjKHRoaXMsaCwiIikpO2dldCBmaWx0ZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyKF8pe3RoaXMuI3I9X30jYT0odmModGhpcyxtKSx2Yyh0aGlzLGIsMCkpO2dldCBzZWxlY3RlZEluZGV4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkSW5kZXgoXyl7dGhpcy4jYT1ffSNpPSh2Yyh0aGlzLGcpLHZjKHRoaXMsaywxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBtZW51WkluZGV4KF8pe3RoaXMuI2k9X31jYWxsYmFjaz0odmModGhpcyxNKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc2xhc2gtbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy52aXNpYmxlKXJldHVybiB3YGA7dGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCk7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJzbGFzaC1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0ic2xhc2giCiAgICAgID4KICAgICAgICAke18ubWFwKChTLE8pPT53YAogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUtaXRlbSAke089PT10aGlzLnNlbGVjdGVkSW5kZXg/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGRhdGEtaXRlbS10eXBlPSIke1MudHlwZX0iCiAgICAgICAgICAgIGRhdGEtaXRlbS1pbmRleD0iJHtPfSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaWNvbiIgLmljb249IiR7Uy5pY29ufSIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+JHtTLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0RmlsdGVyZWRNZW51SXRlbXMoKXtyZXR1cm4gY3MuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIoUz0+dGhpcy5maWx0ZXI9PT0iInx8Uy5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCkpKX1zZWxlY3RJdGVtKF8pe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2soXyksdGhpcy5oaWRlKCl9c2hvdyhfLFMpe3RoaXMucG9zaXRpb249Xyx0aGlzLmNhbGxiYWNrPVMsdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsdGhpcy5tZW51WkluZGV4PXlyLmdldE5leHRaSW5kZXgoKSx5ci5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHRoaXMuZmlsdGVyPSIiLHRoaXMuc2VsZWN0ZWRJbmRleD0wLHlyLnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlRmlsdGVyKF8pe3RoaXMuZmlsdGVyPV8sdGhpcy5zZWxlY3RlZEluZGV4PTB9bmF2aWdhdGUoXyl7bGV0IFM9dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO189PT0iZG93biI/dGhpcy5zZWxlY3RlZEluZGV4PSh0aGlzLnNlbGVjdGVkSW5kZXgrMSklUy5sZW5ndGg6dGhpcy5zZWxlY3RlZEluZGV4PXRoaXMuc2VsZWN0ZWRJbmRleD09PTA/Uy5sZW5ndGgtMTp0aGlzLnNlbGVjdGVkSW5kZXgtMX1zZWxlY3RDdXJyZW50KCl7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO19bdGhpcy5zZWxlY3RlZEluZGV4XSYmdGhpcy5zZWxlY3RJdGVtKF9bdGhpcy5zZWxlY3RlZEluZGV4XS50eXBlKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixfPT57bGV0IFM9XyxPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNsYXNoLW1lbnUiKTtPJiZPLmNvbnRhaW5zKFMudGFyZ2V0KSYmKFMucHJldmVudERlZmF1bHQoKSxTLnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsXz0+e2xldCBTPV8sTD1TLnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoTCl7Uy5wcmV2ZW50RGVmYXVsdCgpLFMuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEU9TC5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS10eXBlIik7RSYmdGhpcy5zZWxlY3RJdGVtKEUpfX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixfPT57bGV0IEw9Xy50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKEwpe2xldCBFPXBhcnNlSW50KEwuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taW5kZXgiKXx8IjAiLDEwKTt0aGlzLnNlbGVjdGVkSW5kZXg9RX19LCEwKSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLF89PntsZXQgUz1fLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO08mJk8uY29udGFpbnMoUy50YXJnZXQpJiYoUy5wcmV2ZW50RGVmYXVsdCgpLFMuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje3ZjKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBodCxuZD11KCgpPT57aHQ9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z1NlbGVjdGlvbiIpfXN0YXRpYyBnZXRTZWxlY3Rpb25JbmZvKC4uLmUpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihjb25zb2xlLmxvZygiV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvIC0gc2VsZWN0aW9uOiIsciwicmFuZ2VDb3VudDoiLHI/LnJhbmdlQ291bnQpLCFyKXJldHVybiBudWxsO2lmKCJnZXRDb21wb3NlZFJhbmdlcyJpbiByJiZ0eXBlb2Ygci5nZXRDb21wb3NlZFJhbmdlcz09ImZ1bmN0aW9uIil7Y29uc29sZS5sb2coIlVzaW5nIGdldENvbXBvc2VkUmFuZ2VzIHdpdGgiLGUubGVuZ3RoLCJzaGFkb3cgcm9vdHMiKTt0cnl7bGV0IGE9ci5nZXRDb21wb3NlZFJhbmdlcyh7c2hhZG93Um9vdHM6ZX0pO2lmKGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyByZXR1cm5lZCIsYS5sZW5ndGgsInJhbmdlcyIpLGEubGVuZ3RoPjApe2xldCBzPWFbMF07cmV0dXJue3N0YXJ0Q29udGFpbmVyOnMuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6cy5zdGFydE9mZnNldCxlbmRDb250YWluZXI6cy5lbmRDb250YWluZXIsZW5kT2Zmc2V0OnMuZW5kT2Zmc2V0LGNvbGxhcHNlZDpzLmNvbGxhcHNlZH19fWNhdGNoKGEpe2NvbnNvbGUud2FybigiZ2V0Q29tcG9zZWRSYW5nZXMgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gZ2V0UmFuZ2VBdDoiLGEpfX1lbHNlIGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyBub3QgYXZhaWxhYmxlLCB1c2luZyBmYWxsYmFjayIpO2lmKHIucmFuZ2VDb3VudD4wKXtsZXQgYT1yLmdldFJhbmdlQXQoMCk7cmV0dXJue3N0YXJ0Q29udGFpbmVyOmEuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6YS5zdGFydE9mZnNldCxlbmRDb250YWluZXI6YS5lbmRDb250YWluZXIsZW5kT2Zmc2V0OmEuZW5kT2Zmc2V0LGNvbGxhcHNlZDphLmNvbGxhcHNlZH19cmV0dXJuIG51bGx9c3RhdGljIGlzU2VsZWN0aW9uSW5FbGVtZW50KGUscil7bGV0IGE9cj90aGlzLmdldFNlbGVjdGlvbkluZm8ocik6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7cmV0dXJuIGE/ZS5jb250YWlucyhhLnN0YXJ0Q29udGFpbmVyKXx8ZS5jb250YWlucyhhLmVuZENvbnRhaW5lcik6ITF9c3RhdGljIGdldFNlbGVjdGVkVGV4dCgpe2xldCBlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyZXR1cm4gZT9lLnRvU3RyaW5nKCk6IiJ9c3RhdGljIGNyZWF0ZVJhbmdlRnJvbUluZm8oZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gci5zZXRTdGFydChlLnN0YXJ0Q29udGFpbmVyLGUuc3RhcnRPZmZzZXQpLHIuc2V0RW5kKGUuZW5kQ29udGFpbmVyLGUuZW5kT2Zmc2V0KSxyfXN0YXRpYyBzZXRTZWxlY3Rpb25Gcm9tUmFuZ2UoZSl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO3ImJihyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoZSkpfXN0YXRpYyBnZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChlLC4uLnIpe2xldCBhPXIubGVuZ3RoPjA/dGhpcy5nZXRTZWxlY3Rpb25JbmZvKC4uLnIpOnRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO2lmKCFhfHwhYS5jb2xsYXBzZWQpcmV0dXJuIG51bGw7dHJ5e2xldCBzPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYocy5zZWxlY3ROb2RlQ29udGVudHMoZSksdGhpcy5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShlLGEuc3RhcnRDb250YWluZXIpKXJldHVybiBzLnNldEVuZChhLnN0YXJ0Q29udGFpbmVyLGEuc3RhcnRPZmZzZXQpLHMudG9TdHJpbmcoKS5sZW5ndGg7e2xldCBvPWUudGV4dENvbnRlbnR8fCIiLGw9YS5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudHx8IiI7cmV0dXJuIGEuc3RhcnRPZmZzZXQ9PT0wPzA6YS5zdGFydE9mZnNldD09PWwubGVuZ3RoP28ubGVuZ3RoOihjb25zb2xlLndhcm4oIlNlbGVjdGlvbiBjb250YWluZXIgbm90IHdpdGhpbiBlbGVtZW50LCB1c2luZyB0ZXh0IG1hdGNoaW5nIGZhbGxiYWNrIiksYS5zdGFydE9mZnNldCl9fWNhdGNoKHMpe3JldHVybiBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBnZXQgY3Vyc29yIHBvc2l0aW9uOiIscyksbnVsbH19c3RhdGljIGdldEN1cnNvclBvc2l0aW9uRnJvbVBvaW50KGUscixhLC4uLnMpe2lmKCJjYXJldFBvc2l0aW9uRnJvbVBvaW50ImluIGRvY3VtZW50JiZkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KXtsZXQgbj1udWxsO3RyeXtuPWRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZSxyLC4uLnMpfWNhdGNoe249ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHIpfWlmKG4mJmEuY29udGFpbnMobi5vZmZzZXROb2RlKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQobi5vZmZzZXROb2RlLG4ub2Zmc2V0LGEpfWlmKCJjYXJldFJhbmdlRnJvbVBvaW50ImluIGRvY3VtZW50KXtsZXQgbj1kb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KGUscik7aWYobiYmYS5jb250YWlucyhuLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQobi5zdGFydENvbnRhaW5lcixuLnN0YXJ0T2Zmc2V0LGEpfXJldHVybiBudWxsfXN0YXRpYyBnZXRPZmZzZXRJbkVsZW1lbnQoZSxyLGEpe2xldCBzPTAsbj0hMSxvPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxsO2Zvcig7bD1vLm5leHROb2RlKCk7KWlmKGw9PT1lKXtzKz1yLG49ITA7YnJlYWt9ZWxzZSBzKz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIG4/czowfXN0YXRpYyBzZXRDdXJzb3JQb3NpdGlvbihlLHIpe2xldCBhPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxzPTAsbj1udWxsLG89MDtmb3IoO2EubmV4dE5vZGUoKTspe2xldCBsPWEuY3VycmVudE5vZGUsYz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYocytjPj1yKXtuPWwsbz1yLXM7YnJlYWt9cys9Y31pZihuKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2wuc2V0U3RhcnQobixvKSxsLmNvbGxhcHNlKCEwKSx0aGlzLnNldFNlbGVjdGlvbkZyb21SYW5nZShsKX19c3RhdGljIGNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUscil7aWYoIWV8fCFyKXJldHVybiExO2xldCBhPXI7Zm9yKDthOyl7aWYoYT09PWUpcmV0dXJuITA7aWYoYS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmYS5ob3N0KXtsZXQgcz1hO2lmKHMuY29udGFpbnMoZSkpcmV0dXJuITE7YT1zLmhvc3R9ZWxzZSBhPWEucGFyZW50Tm9kZX1yZXR1cm4hMX19fSk7dmFyIHQzLHRtdD11KCgpPT57dmUoKTtuZCgpO3QzPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdGb3JtYXR0aW5nIil9c3RhdGljIGZvcm1hdEJ1dHRvbnM9W3tjb21tYW5kOiJib2xkIixpY29uOiJCIixsYWJlbDoiQm9sZCIsc2hvcnRjdXQ6Ilx1MjMxOEIifSx7Y29tbWFuZDoiaXRhbGljIixpY29uOiJJIixsYWJlbDoiSXRhbGljIixzaG9ydGN1dDoiXHUyMzE4SSJ9LHtjb21tYW5kOiJ1bmRlcmxpbmUiLGljb246IlUiLGxhYmVsOiJVbmRlcmxpbmUiLHNob3J0Y3V0OiJcdTIzMThVIn0se2NvbW1hbmQ6InN0cmlrZVRocm91Z2giLGljb246IlNcdTAzMzYiLGxhYmVsOiJTdHJpa2V0aHJvdWdoIn0se2NvbW1hbmQ6ImNvZGUiLGljb246InsgfSIsbGFiZWw6IklubGluZSBDb2RlIn0se2NvbW1hbmQ6ImxpbmsiLGljb246Ilx1ezFGNTE3fSIsbGFiZWw6IkxpbmsiLHNob3J0Y3V0OiJcdTIzMThLIn1dO3N0YXRpYyByZW5kZXJGb3JtYXR0aW5nTWVudShlLHIpe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJ0b3A6ICR7ZS55fXB4OyBsZWZ0OiAke2UueH1weDsiCiAgICAgICAgQG1vdXNlZG93bj0iJHthPT57YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9fSIKICAgICAgICBAY2xpY2s9IiR7YT0+YS5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgID4KICAgICAgICAke3RoaXMuZm9ybWF0QnV0dG9ucy5tYXAoYT0+d2AKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7YS5jb21tYW5kfSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT5yKGEuY29tbWFuZCl9IgogICAgICAgICAgICB0aXRsZT0iJHthLmxhYmVsfSR7YS5zaG9ydGN1dD9gICgke2Euc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHthLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke2EuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpYyBhcHBseUZvcm1hdChlLHIsYSxzKXtsZXQgbjtpZihhKW49YTtlbHNle2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm4hMTtuPW8uZ2V0UmFuZ2VBdCgwKX1zd2l0Y2goZSl7Y2FzZSJib2xkIjp0aGlzLndyYXBTZWxlY3Rpb24obiwic3Ryb25nIik7YnJlYWs7Y2FzZSJpdGFsaWMiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJlbSIpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp0aGlzLndyYXBTZWxlY3Rpb24obiwidSIpO2JyZWFrO2Nhc2Uic3RyaWtlVGhyb3VnaCI6dGhpcy53cmFwU2VsZWN0aW9uKG4sInMiKTticmVhaztjYXNlImNvZGUiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJjb2RlIik7YnJlYWs7Y2FzZSJsaW5rIjppZighcilyZXR1cm4hMTt0aGlzLndyYXBTZWxlY3Rpb25XaXRoTGluayhuLHIpO2JyZWFrfWlmKHMmJnMubGVuZ3RoPjApaHQuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKG4pO2Vsc2V7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO28mJihvLnJlbW92ZUFsbFJhbmdlcygpLG8uYWRkUmFuZ2UobikpfXJldHVybiEwfXN0YXRpYyB3cmFwU2VsZWN0aW9uKGUscil7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtpZih0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUscikpdGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUscik7ZWxzZXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHIpO3RyeXtsZXQgbz1lLmV4dHJhY3RDb250ZW50cygpO24uYXBwZW5kQ2hpbGQobyksZS5pbnNlcnROb2RlKG4pLGUuc2VsZWN0Tm9kZUNvbnRlbnRzKG4pLGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShlKX1jYXRjaChvKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gd3JhcCBzZWxlY3Rpb246IixvKX19fXN0YXRpYyBzZWxlY3Rpb25Db250YWluc1RhZyhlLHIpe2xldCBhPWUuc3RhcnRDb250YWluZXI7Zm9yKDthJiZhIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZhLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXIpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9Zm9yKGE9ZS5lbmRDb250YWluZXI7YSYmYSE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKGEubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmYS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1yKXJldHVybiEwO2E9YS5wYXJlbnROb2RlfWxldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49ZS5jbG9uZUNvbnRlbnRzKCk7cmV0dXJuIHMuYXBwZW5kQ2hpbGQobikscy5nZXRFbGVtZW50c0J5VGFnTmFtZShyKS5sZW5ndGg+MH1zdGF0aWMgcmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLHIpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYSlyZXR1cm47bGV0IHM9ZS5jbG9uZVJhbmdlKCksbj1lLnN0YXJ0Q29udGFpbmVyLG89bnVsbDtmb3IoO24mJm4hPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihuLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm4udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09cil7bz1uO2JyZWFrfW49bi5wYXJlbnROb2RlfWxldCBsPWUuZW5kQ29udGFpbmVyLGM9bnVsbDtmb3IoO2wmJmwhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihsLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmwudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09cil7Yz1sO2JyZWFrfWw9bC5wYXJlbnROb2RlfW8mJnMuc2V0U3RhcnRCZWZvcmUobyksYyYmcy5zZXRFbmRBZnRlcihjKTtsZXQgZD1zLmV4dHJhY3RDb250ZW50cygpLGY9dGhpcy5yZW1vdmVUYWdzRnJvbUZyYWdtZW50KGQscik7cy5pbnNlcnROb2RlKGYpO2xldCBwPVtdLGg9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLG07Zm9yKDttPWgubmV4dE5vZGUoKTspcC5wdXNoKG0pO2lmKHAubGVuZ3RoPjApe2xldCB2PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7di5zZXRTdGFydChwWzBdLDApLHYuc2V0RW5kKHBbcC5sZW5ndGgtMV0scFtwLmxlbmd0aC0xXS50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2Uodil9fXN0YXRpYyByZW1vdmVUYWdzRnJvbUZyYWdtZW50KGUscil7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5hcHBlbmRDaGlsZChlKTtsZXQgcz1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKHIpO0FycmF5LmZyb20ocykuZm9yRWFjaChsPT57bGV0IGM9bC5wYXJlbnROb2RlO2lmKGMpe2Zvcig7bC5maXJzdENoaWxkOyljLmluc2VydEJlZm9yZShsLmZpcnN0Q2hpbGQsbCk7Yy5yZW1vdmVDaGlsZChsKX19KTtsZXQgbz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKDthLmZpcnN0Q2hpbGQ7KW8uYXBwZW5kQ2hpbGQoYS5maXJzdENoaWxkKTtyZXR1cm4gb31zdGF0aWMgd3JhcFNlbGVjdGlvbldpdGhMaW5rKGUscil7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjt0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsImEiKSYmKHRoaXMucmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLCJhIiksYS5yYW5nZUNvdW50PjAmJihlPWEuZ2V0UmFuZ2VBdCgwKSkpO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtzLmhyZWY9cixzLnRhcmdldD0iX2JsYW5rIixzLnJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI7dHJ5e2xldCBuPWUuZXh0cmFjdENvbnRlbnRzKCk7cy5hcHBlbmRDaGlsZChuKSxlLmluc2VydE5vZGUocyksZS5zZWxlY3ROb2RlQ29udGVudHMocyksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGUpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgbGluazoiLG4pfX1zdGF0aWMgZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uZSl7bGV0IHI9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5lKTtpZihjb25zb2xlLmxvZygiZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMgLSBzZWxlY3Rpb25JbmZvOiIsciksIXIpcmV0dXJuIGNvbnNvbGUubG9nKCJObyBzZWxlY3Rpb24gaW5mbyBhdmFpbGFibGUiKSxudWxsO2xldCBzPWh0LmNyZWF0ZVJhbmdlRnJvbUluZm8ocikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoY29uc29sZS5sb2coIlJhbmdlIHJlY3Q6IixzKSxzLndpZHRoPT09MCYmcy5oZWlnaHQ9PT0wKXtpZihjb25zb2xlLmxvZygiUmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwLCB0cnlpbmcgZGlmZmVyZW50IGFwcHJvYWNoIiksImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvJiZvLnJhbmdlQ291bnQ+MCl7bGV0IGw9by5nZXRSYW5nZUF0KDApLGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2MudGV4dENvbnRlbnQ9Ilx1MjAwQiIsbC5pbnNlcnROb2RlKGMpO2xldCBkPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYy5yZW1vdmUoKSxkLndpZHRoPjB8fGQuaGVpZ2h0PjApe2xldCBmPXt4OmQubGVmdCx5Ok1hdGgubWF4KDQ1LGQudG9wLTQ1KX07cmV0dXJuIGNvbnNvbGUubG9nKCJVc2VkIHNwYW4gdHJpY2sgZm9yIGNvb3JkczoiLGYpLGZ9fX1yZXR1cm4gbnVsbH1sZXQgbj17eDpzLmxlZnQrcy53aWR0aC8yLHk6TWF0aC5tYXgoNDUscy50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlJldHVybmluZyBjb29yZHM6IixuKSxufX19KTt2YXIgZGZlLHo5LHVmZSxybXQ9dSgoKT0+e3ZlKCk7T28oKTt0bXQoKTtsdCgpO2RmZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sejk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHVmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtZm9ybWF0dGluZy1tZW51IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNGb3JtYXR0aW5nTWVudSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W2llKCldLGRmZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InZpc2libGUiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cudmlzaWJsZT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZGZlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InBvc2l0aW9uImluIGcsImhhcyIpLGdldDppKGc9PmcucG9zaXRpb24sImdldCIpLHNldDppKChnLHkpPT57Zy5wb3NpdGlvbj15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsZiksZGZlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4ibWVudVpJbmRleCJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChnLHkpPT57Zy5tZW51WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxkZmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHYuaW5zdGFuY2V8fCh2Lmluc3RhbmNlPW5ldyB2LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodi5pbnN0YW5jZSkpLHYuaW5zdGFuY2V9I2U9ejkodGhpcyxvLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKGIpe3RoaXMuI2U9Yn0jdD0oejkodGhpcyxsKSx6OSh0aGlzLGQse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKGIpe3RoaXMuI3Q9Yn0jcj0oejkodGhpcyxmKSx6OSh0aGlzLGgsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWVudVpJbmRleChiKXt0aGlzLiNyPWJ9Y2FsbGJhY2s9KHo5KHRoaXMsbSksbnVsbCk7c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmZvcm1hdHRpbmctbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI2MjYyNiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2UwZTBlMCIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoNXB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwMDAwMCIsIiNlMGUwZTAiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmMGYwZjAiLCIjMzMzMzMzIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24uYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24uaXRhbGljIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLnVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uIC5jb2RlLWljb24gewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMudmlzaWJsZT8odGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksd2AKICAgICAgPGRpdiAKICAgICAgICBjbGFzcz0iZm9ybWF0dGluZy1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0iZm9ybWF0dGluZyIKICAgICAgPgogICAgICAgICR7dDMuZm9ybWF0QnV0dG9ucy5tYXAoYj0+d2AKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7Yi5jb21tYW5kfSIKICAgICAgICAgICAgZGF0YS1jb21tYW5kPSIke2IuY29tbWFuZH0iCiAgICAgICAgICAgIHRpdGxlPSIke2IubGFiZWx9JHtiLnNob3J0Y3V0P2AgKCR7Yi5zaG9ydGN1dH0pYDoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke2IuY29tbWFuZD09PSJjb2RlIj8iY29kZS1pY29uIjoiIn0iPiR7Yi5pY29ufTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGApOndgYH1hcHBseUZvcm1hdChiKXt0aGlzLmNhbGxiYWNrJiZ0aGlzLmNhbGxiYWNrKGIpLGI9PT0ibGluayImJnRoaXMuaGlkZSgpfXNob3coYixnKXtjb25zb2xlLmxvZygiRm9ybWF0dGluZ01lbnUuc2hvdyBjYWxsZWQ6Iix7cG9zaXRpb246Yix2aXNpYmxlOnRoaXMudmlzaWJsZX0pLHRoaXMucG9zaXRpb249Yix0aGlzLmNhbGxiYWNrPWcsdGhpcy5tZW51WkluZGV4PXlyLmdldE5leHRaSW5kZXgoKSx5ci5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHlyLnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlUG9zaXRpb24oYil7dGhpcy5wb3NpdGlvbj1ifWZpcnN0VXBkYXRlZCgpe3RoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGI9PntsZXQgZz1iLHk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7eSYmeS5jb250YWlucyhnLnRhcmdldCkmJihnLnByZXZlbnREZWZhdWx0KCksZy5zdG9wUHJvcGFnYXRpb24oKSl9KSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGI9PntsZXQgZz1iLGs9Zy50YXJnZXQuY2xvc2VzdCgiLmZvcm1hdC1idXR0b24iKTtpZihrKXtnLnByZXZlbnREZWZhdWx0KCksZy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgTT1rLmdldEF0dHJpYnV0ZSgiZGF0YS1jb21tYW5kIik7TSYmdGhpcy5hcHBseUZvcm1hdChNKX19KSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGI9PntsZXQgZz1iLHk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7eSYmeS5jb250YWlucyhnLnRhcmdldCkmJihnLnByZXZlbnREZWZhdWx0KCksZy5zdG9wUHJvcGFnYXRpb24oKSl9LCEwKX1zdGF0aWN7ejkoYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIGp5PXUoKCk9Pnt2ZSgpOyQxKCk7ZW10KCk7cm10KCl9KTt2YXIgdnRlLHBmZT11KCgpPT57dnRlPVsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJKYXZhIiwiQysrIiwiQyMiLCJHbyIsIlJ1c3QiLCJIVE1MIiwiQ1NTIiwiU1FMIiwiU2hlbGwiLCJKU09OIiwiWUFNTCIsIk1hcmtkb3duIiwiUGxhaW4gVGV4dCJdfSk7dmFyIGFtdCxMVXI9dSgoKT0+e3ZlKCk7YW10PXJlYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyIHsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgcGFkZGluZzogMjRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfSwgMCAwIDAgNHB4ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIil9OwogICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBWaXN1YWwgaGludCBmb3IgdGV4dCBzZWxlY3Rpb24gKi8KICAuZWRpdG9yLWNvbnRlbnQ6aG92ZXIgewogICAgY3Vyc29yOiB0ZXh0OwogIH0KCiAgLmVkaXRvci1jb250ZW50IHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBtaW4taGVpZ2h0OiAxNjBweDsKICAgIG1hcmdpbjogMCAtOHB4OwogICAgcGFkZGluZzogMCA4cHg7CiAgfQoKICAuYmxvY2sgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogNHB4IDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC8qIEZpcnN0IGFuZCBsYXN0IGJsb2NrcyBkb24ndCBuZWVkIGV4dHJhIHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CgogIC5ibG9jay5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgb3V0bGluZTogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBtYXJnaW4tbGVmdDogLThweDsKICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgcGFkZGluZy1yaWdodDogOHB4OwogIH0KCiAgLmJsb2NrW2NvbnRlbnRlZGl0YWJsZV0gewogICAgb3V0bGluZTogbm9uZTsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGggewogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2sucGFyYWdyYXBoOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIlR5cGUgJy8nIGZvciBjb21tYW5kcy4uLiI7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTEgewogICAgZm9udC1zaXplOiAzMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDEiOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAzMnB4OwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0yIHsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTI6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAyIjsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0zOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMyI7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5ibG9jay5xdW90ZSB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi1yaWdodDogMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2sucXVvdGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiUXVvdGUiOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luOiAyMHB4IDA7CiAgfQoKICAuY29kZS1sYW5ndWFnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDAgNHB4OwogICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKICAgIHotaW5kZXg6IDE7CiAgfQoKICAuYmxvY2suY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiAxNnB4OwogICAgcGFkZGluZy10b3A6IDMycHg7IC8qIE1ha2Ugcm9vbSBmb3IgbGFuZ3VhZ2UgaW5kaWNhdG9yICovCiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgb3ZlcmZsb3cteDogYXV0bzsKICB9CgogIC5ibG9jay5jb2RlOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIi8vIENvZGUgYmxvY2siOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5saXN0IHsKICAgIHBhZGRpbmctbGVmdDogMDsKICB9CgogIC5ibG9jay5saXN0IHVsLAogIC5ibG9jay5saXN0IG9sIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDAgMCAwIDI0cHg7CiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwgewogICAgbGlzdC1zdHlsZTogZGlzYzsKICB9CgogIC5ibG9jay5saXN0IG9sIHsKICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7CiAgfQoKICAuYmxvY2subGlzdCBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmJsb2NrLmxpc3QgbGk6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLmRpdmlkZXIgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMjBweCAwOwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYmxvY2suZGl2aWRlciBociB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgbWFyZ2luOiAwOwogIH0KCiAgLnNsYXNoLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogICAgbWluLXdpZHRoOiAyMjBweDsKICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtIHsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBmb250LXNpemU6IDE0cHg7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gLmljb24gewogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC50b29sYmFyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTQwcHg7CiAgICBsZWZ0OiAwOwogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZ2FwOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogIH0KCiAgLnRvb2xiYXIudmlzaWJsZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBEcmFnIGFuZCBEcm9wIFN0eWxlcyAqLwogIC5ibG9jay13cmFwcGVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogIH0KCiAgLyogRW5zdXJlIHByb3BlciBzcGFjaW5nIGNvbnRleHQgZm9yIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrIHsKICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgfQoKICAvKiBPdmVycmlkZSBmb3IgaGVhZGluZ3MgZm9sbG93aW5nIG90aGVyIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMSwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTIsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0zIHsKICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgfQoKICAvKiBDb2RlIGFuZCBxdW90ZSBibG9ja3MgbmVlZCBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5jb2RlLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLnF1b3RlIHsKICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgfQoKICAuZHJhZy1oYW5kbGUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogLTI4cHg7CiAgICB0b3A6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgY3Vyc29yOiBncmFiOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAuZHJhZy1oYW5kbGU6OmJlZm9yZSB7CiAgICBjb250ZW50OiAi4ouu4ouuIjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxldHRlci1zcGFjaW5nOiAtMnB4OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6aG92ZXIgLmRyYWctaGFuZGxlIHsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICB9CgogIC5kcmFnLWhhbmRsZTphY3RpdmUgewogICAgY3Vyc29yOiBncmFiYmluZzsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICB9CgogIC5ibG9jay13cmFwcGVyLmRyYWdnaW5nIHsKICAgIG9wYWNpdHk6IDAuODsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMjAwMTsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9CgoKICAvKiBCbG9ja3MgdGhhdCBzaG91bGQgbW92ZSBvdXQgb2YgdGhlIHdheSAqLwogIC5ibG9jay13cmFwcGVyLm1vdmUtZG93biB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpOwogIH0KCiAgLmJsb2NrLXdyYXBwZXIubW92ZS11cCB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWRyYWctb2Zmc2V0LCAwcHgpKSk7CiAgfQoKICAvKiBEcm9wIGluZGljYXRvciAqLwogIC5kcm9wLWluZGljYXRvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgYm9yZGVyOiAycHggZGFzaGVkICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGVhc2UsIGhlaWdodCAwLjJzIGVhc2U7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHotaW5kZXg6IDE5OTk7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogUmVtb3ZlIG9sZCBkcmFnLW92ZXIgc3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWJlZm9yZSwKICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYWZ0ZXIgewogICAgLyogTm8gbG9uZ2VyIG5lZWRlZCwgdXNpbmcgZHJvcCBpbmRpY2F0b3IgaW5zdGVhZCAqLwogIH0KCiAgLmVkaXRvci1jb250ZW50LmRyYWdnaW5nICogewogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAvKiBCbG9jayBTZXR0aW5ncyBCdXR0b24gLSBSZW1vdmVkIGluIGZhdm9yIG9mIGNvbnRleHQgbWVudSAqLwoKICAvKiBUZXh0IFNlbGVjdGlvbiBTdHlsZXMgKi8KICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBjb2xvcjogaW5oZXJpdDsKICB9CgogIC8qIEZvcm1hdHRpbmcgTWVudSAqLwogIC5mb3JtYXR0aW5nLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAycHg7CiAgICB6LWluZGV4OiAxMDAxOwogICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICB9CgogIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgZnJvbSB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgdHJhbnNsYXRlWSgycHgpOwogICAgfQogICAgdG8gewogICAgICBvcGFjaXR5OiAxOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICB9CgogIC8qIEFwcGxpZWQgZm9ybWF0IHN0eWxlcyBpbiBjb250ZW50ICovCiAgLmJsb2NrIHN0cm9uZywKICAuYmxvY2sgYiB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBlbSwKICAuYmxvY2sgaSB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuYmxvY2sgdSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIC5ibG9jayBzdHJpa2UsCiAgLmJsb2NrIHMgewogICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICBvcGFjaXR5OiAwLjc7CiAgfQoKICAuYmxvY2sgY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBwYWRkaW5nOiAycHggNnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDAuOWVtOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBhIHsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICB9CgogIC5ibG9jayBhOmhvdmVyIHsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CmB9KTt2YXIgWGwsaW10PXUoKCk9PnskMSgpO1hsPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdDb252ZXJ0ZXJzIil9c3RhdGljIGVzY2FwZUh0bWwoZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9ZSxyLmlubmVySFRNTH1zdGF0aWMgZm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCByPTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scz1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHIpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyhyLHMpKS50b0ZpeGVkKDIpKSsiICIrYVtzXX1zdGF0aWMgZ2V0SHRtbE91dHB1dChlKXtyZXR1cm4gZS5tYXAocj0+e2xldCBhPXIuY29udGVudC5pbmNsdWRlcygiPCIpJiZyLmNvbnRlbnQuaW5jbHVkZXMoIj4iKT9yLmNvbnRlbnQ6dGhpcy5lc2NhcGVIdG1sKHIuY29udGVudCk7c3dpdGNoKHIudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiByLmNvbnRlbnQ/YDxwPiR7YX08L3A+YDoiIjtjYXNlImhlYWRpbmctMSI6cmV0dXJuYDxoMT4ke2F9PC9oMT5gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gPGgyPiR7YX08L2gyPmA7Y2FzZSJoZWFkaW5nLTMiOnJldHVybmA8aDM+JHthfTwvaDM+YDtjYXNlInF1b3RlIjpyZXR1cm5gPGJsb2NrcXVvdGU+JHthfTwvYmxvY2txdW90ZT5gO2Nhc2UiY29kZSI6cmV0dXJuYDxwcmU+PGNvZGU+JHt0aGlzLmVzY2FwZUh0bWwoci5jb250ZW50KX08L2NvZGU+PC9wcmU+YDtjYXNlImxpc3QiOmxldCBzPXIuY29udGVudC5zcGxpdChgCmApLmZpbHRlcihjPT5jLnRyaW0oKSk7aWYocy5sZW5ndGg+MCl7bGV0IGM9ci5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO3JldHVybmA8JHtjfT4ke3MubWFwKGQ9PmA8bGk+JHtkfTwvbGk+YCkuam9pbigiIil9PC8ke2N9PmB9cmV0dXJuIiI7Y2FzZSJkaXZpZGVyIjpyZXR1cm4iPGhyPiI7Y2FzZSJpbWFnZSI6bGV0IG49ci5tZXRhZGF0YT8udXJsO2lmKG4pe2xldCBjPXRoaXMuZXNjYXBlSHRtbChyLmNvbnRlbnR8fCJJbWFnZSIpO3JldHVybmA8aW1nIHNyYz0iJHtufSIgYWx0PSIke2N9IiAvPmB9cmV0dXJuIiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbz1yLm1ldGFkYXRhPy52aWRlb0lkO3JldHVybiBvP2A8aWZyYW1lIHdpZHRoPSI1NjAiIGhlaWdodD0iMzE1IiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7b30iIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPmA6IiI7Y2FzZSJtYXJrZG93biI6cmV0dXJuYDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPiR7dGhpcy5lc2NhcGVIdG1sKHIuY29udGVudCl9PC9kaXY+YDtjYXNlImh0bWwiOnJldHVybiByLmNvbnRlbnQ7Y2FzZSJhdHRhY2htZW50IjpsZXQgbD1yLm1ldGFkYXRhPy5maWxlc3x8W107cmV0dXJuIGwubGVuZ3RoPjA/YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnRzIj4ke2wubWFwKGM9PmA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIGRhdGEtZmlsZS1pZD0iJHtjLmlkfSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIke2MuZGF0YX0iIGRvd25sb2FkPSIke2MubmFtZX0iPiR7dGhpcy5lc2NhcGVIdG1sKGMubmFtZSl9PC9hPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+KCR7dGhpcy5mb3JtYXRGaWxlU2l6ZShjLnNpemUpfSk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YCkuam9pbigiIil9PC9kaXY+YDoiIjtkZWZhdWx0OnJldHVybmA8cD4ke2F9PC9wPmB9fSkuZmlsdGVyKHI9PnIhPT0iIikuam9pbihgCmApfXN0YXRpYyBnZXRNYXJrZG93bk91dHB1dChlKXtyZXR1cm4gZS5tYXAocj0+e3N3aXRjaChyLnR5cGUpe2Nhc2UicGFyYWdyYXBoIjpyZXR1cm4gci5jb250ZW50O2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gIyAke3IuY29udGVudH1gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gIyMgJHtyLmNvbnRlbnR9YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYCMjIyAke3IuY29udGVudH1gO2Nhc2UicXVvdGUiOnJldHVybmA+ICR7ci5jb250ZW50fWA7Y2FzZSJjb2RlIjpyZXR1cm5gXGBcYFxgCiR7ci5jb250ZW50fQpcYFxgXGBgO2Nhc2UibGlzdCI6bGV0IGE9ci5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGQ9PmQudHJpbSgpKTtyZXR1cm4gci5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/YS5tYXAoKGQsZik9PmAke2YrMX0uICR7ZH1gKS5qb2luKGAKYCk6YS5tYXAoZD0+YC0gJHtkfWApLmpvaW4oYApgKTtjYXNlImRpdmlkZXIiOnJldHVybiItLS0iO2Nhc2UiaW1hZ2UiOmxldCBzPXIubWV0YWRhdGE/LnVybCxuPXIuY29udGVudHx8IkltYWdlIjtyZXR1cm4gcz9gIVske259XSgke3N9KWA6IiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbz1yLm1ldGFkYXRhPy52aWRlb0lkLGw9ci5tZXRhZGF0YT8udXJsfHwobz9gaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PSR7b31gOiIiKTtyZXR1cm4gbD9gW1lvdVR1YmUgVmlkZW9dKCR7bH0pYDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm4gci5jb250ZW50O2Nhc2UiaHRtbCI6cmV0dXJuYDwhLS0gSFRNTCBCbG9jawoke3IuY29udGVudH0KLS0+YDtjYXNlImF0dGFjaG1lbnQiOmxldCBjPXIubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gYy5sZW5ndGg+MD9jLm1hcChkPT5gLSBbJHtkLm5hbWV9XSgke2QuZGF0YX0pYCkuam9pbihgCmApOiIiO2RlZmF1bHQ6cmV0dXJuIHIuY29udGVudH19KS5maWx0ZXIocj0+ciE9PSIiKS5qb2luKGAKCmApfXN0YXRpYyBwYXJzZUh0bWxUb0Jsb2NrcyhlKXtsZXQgYT1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsInRleHQvaHRtbCIpLHM9W10sbj1pKG89PntpZihvLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJm8udGV4dENvbnRlbnQ/LnRyaW0oKSlzLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6by50ZXh0Q29udGVudC50cmltKCl9KTtlbHNlIGlmKG8ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7bGV0IGw9byxjPWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChjKXtjYXNlInAiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgxIjpzLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMiI6cy5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDMiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImJsb2NrcXVvdGUiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UicHJlIjpjYXNlImNvZGUiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6bC50ZXh0Q29udGVudHx8IiJ9KTticmVhaztjYXNlInVsIjpjYXNlIm9sIjpsZXQgZj1BcnJheS5mcm9tKGwucXVlcnlTZWxlY3RvckFsbCgibGkiKSkubWFwKGg9PmguaW5uZXJIVE1MfHwiIikuam9pbihgCmApO3MucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6ZixtZXRhZGF0YTp7bGlzdFR5cGU6Yz09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifX0pO2JyZWFrO2Nhc2UiaHIiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7YnJlYWs7Y2FzZSJpbWciOmxldCBwPWw7cy5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6cC5hbHR8fCIiLG1ldGFkYXRhOnt1cmw6cC5zcmN9fSk7YnJlYWs7ZGVmYXVsdDpsLmNoaWxkTm9kZXMuZm9yRWFjaChoPT5uKGgpKX19fSwicHJvY2Vzc05vZGUiKTtyZXR1cm4gYS5ib2R5LmNoaWxkTm9kZXMuZm9yRWFjaChvPT5uKG8pKSxzfXN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3MoZSl7bGV0IHI9ZS5zcGxpdChgCmApLGE9W10scz1bXTtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7bGV0IG89cltuXTtpZihvLnN0YXJ0c1dpdGgoIiMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50Om8uc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIiMjICIpKWEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpvLnN1YnN0cmluZygzKX0pO2Vsc2UgaWYoby5zdGFydHNXaXRoKCIjIyMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50Om8uc3Vic3RyaW5nKDQpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIj4gIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6by5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiYGBgIikpe2xldCBsPVtdO2ZvcihuKys7bjxyLmxlbmd0aCYmIXJbbl0uc3RhcnRzV2l0aCgiYGBgIik7KWwucHVzaChyW25dKSxuKys7YS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpsLmpvaW4oYApgKX0pfWVsc2UgaWYoby5tYXRjaCgvXihcKnwtKSAvKSlzLnB1c2goby5zdWJzdHJpbmcoMikpLChuPT09ci5sZW5ndGgtMXx8IXJbbisxXS5tYXRjaCgvXihcKnwtKSAvKSkmJihhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OnMuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19KSxzPVtdKTtlbHNlIGlmKG8ubWF0Y2goL15cZCtcLiAvKSlzLnB1c2goby5yZXBsYWNlKC9eXGQrXC4gLywiIikpLChuPT09ci5sZW5ndGgtMXx8IXJbbisxXS5tYXRjaCgvXlxkK1wuIC8pKSYmKGEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6cy5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19KSxzPVtdKTtlbHNlIGlmKG89PT0iLS0tInx8bz09PSIqKioifHxvPT09Il9fXyIpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTtlbHNlIGlmKG8ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pKXtsZXQgbD1vLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKTtsJiZhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpsWzFdfHwiIixtZXRhZGF0YTp7dXJsOmxbMl19fSl9ZWxzZSBvLnRyaW0oKSYmYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50Om99KX1yZXR1cm4gYX19fSk7dmFyIEVuLHIzPXUoKCk9Pnt2ZSgpOyQxKCk7aW10KCk7RW49Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrcyIpfXN0YXRpYyByZW5kZXJMaXN0Q29udGVudChlLHIpe2xldCBhPWUuc3BsaXQoYApgKS5maWx0ZXIobj0+bi50cmltKCkpO2lmKGEubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgcz1yPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke3N9PiR7YS5tYXAobj0+YDxsaT4ke259PC9saT5gKS5qb2luKCIiKX08LyR7c30+YH1zdGF0aWMgcmVuZGVyQmxvY2soZSxyLGEpe2lmKGUudHlwZT09PSJkaXZpZGVyIilyZXR1cm4gd2AKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgZGl2aWRlciIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgPgogICAgICAgICAgPGhyPgogICAgICAgIDwvZGl2PgogICAgICBgO2lmKGUudHlwZT09PSJsaXN0IilyZXR1cm4gd2AKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgbGlzdCAke3I/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgQGlucHV0PSIke2Eub25JbnB1dH0iCiAgICAgICAgICBAa2V5ZG93bj0iJHthLm9uS2V5RG93bn0iCiAgICAgICAgICBAZm9jdXM9IiR7YS5vbkZvY3VzfSIKICAgICAgICAgIEBibHVyPSIke2Eub25CbHVyfSIKICAgICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2Eub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHthLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgQG1vdXNldXA9IiR7bj0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksYS5vbk1vdXNlVXAmJmEub25Nb3VzZVVwKG4pfX0iCiAgICAgICAgICAuaW5uZXJIVE1MPSIke3RoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpfSIKICAgICAgICA+PC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09ImNvZGUiKXtsZXQgbj1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8InBsYWluIHRleHQiO3JldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGFuZ3VhZ2UiPiR7bn08L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke3I/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgQGlucHV0PSIke2Eub25JbnB1dH0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2Eub25LZXlEb3dufSIKICAgICAgICAgICAgQGZvY3VzPSIke2Eub25Gb2N1c30iCiAgICAgICAgICAgIEBibHVyPSIke2Eub25CbHVyfSIKICAgICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7YS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7YS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICAgICAgQG1vdXNldXA9IiR7bz0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksYS5vbk1vdXNlVXAmJmEub25Nb3VzZVVwKG8pfX0iCiAgICAgICAgICAgIC50ZXh0Q29udGVudD0iJHtlLmNvbnRlbnR8fCIifSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke2UudHlwZX0gJHtyPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBAaW5wdXQ9IiR7YS5vbklucHV0fSIKICAgICAgICBAa2V5ZG93bj0iJHthLm9uS2V5RG93bn0iCiAgICAgICAgQGZvY3VzPSIke2Eub25Gb2N1c30iCiAgICAgICAgQGJsdXI9IiR7YS5vbkJsdXJ9IgogICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2Eub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7YS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxhLm9uTW91c2VVcCYmYS5vbk1vdXNlVXAobil9fSIKICAgICAgICAuaW5uZXJIVE1MPSIke2UuY29udGVudHx8IiJ9IgogICAgICA+PC9kaXY+CiAgICBgfXN0YXRpYyBzZXRDdXJzb3JUb0VuZChlKXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXIpcmV0dXJuO2xldCBhPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApe2xldCBzPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKTtlLmFwcGVuZENoaWxkKHMpLGEuc2V0U3RhcnQocywxKSxhLmNvbGxhcHNlKCEwKX1lbHNle2xldCBzPXRoaXMuZ2V0TGFzdE5vZGUoZSk7cy5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2Euc2V0U3RhcnQocyxzLnRleHRDb250ZW50Py5sZW5ndGh8fDApOmEuc2V0U3RhcnRBZnRlcihzKSxhLmNvbGxhcHNlKCEwKX1yLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoYSksZS50ZXh0Q29udGVudD09PSJcdTIwMEIiJiYoZS50ZXh0Q29udGVudD0iIil9c3RhdGljIHNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFyKXJldHVybjtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKWEuc2V0U3RhcnQoZSwwKSxhLmNvbGxhcHNlKCEwKTtlbHNle2xldCBzPXRoaXMuZ2V0Rmlyc3ROb2RlKGUpO3Mubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT9hLnNldFN0YXJ0KHMsMCk6YS5zZXRTdGFydEJlZm9yZShzKSxhLmNvbGxhcHNlKCEwKX1yLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoYSl9c3RhdGljIGdldExhc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCByPWUuY2hpbGROb2Rlc1tlLmNoaWxkTm9kZXMubGVuZ3RoLTFdO3JldHVybiByLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHIuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3I6dGhpcy5nZXRMYXN0Tm9kZShyKX1zdGF0aWMgZ2V0Rmlyc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCByPWUuY2hpbGROb2Rlc1swXTtyZXR1cm4gci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFfHxyLmNoaWxkTm9kZXMubGVuZ3RoPT09MD9yOnRoaXMuZ2V0Rmlyc3ROb2RlKHIpfXN0YXRpYyBmb2N1c0xpc3RJdGVtKGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigibGkiKTtpZihyKXtyLmZvY3VzKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTthLnNlbGVjdE5vZGVDb250ZW50cyhyKSxhLmNvbGxhcHNlKCEwKSxzLnJlbW92ZUFsbFJhbmdlcygpLHMuYWRkUmFuZ2UoYSl9fX19KTt2YXIgeXRlLHNtdD11KCgpPT57JDEoKTtqeSgpO0M5KCk7cjMoKTt5dGU9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyIpfWNvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIscj0iIixhKXtyZXR1cm57aWQ6Y3MuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6ciwuLi5hJiZ7bWV0YWRhdGE6YX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSxyLGE9ITApe2xldCBzPXRoaXMuY29tcG9uZW50LmJsb2NrcyxuPXMuZmluZEluZGV4KG89Pm8uaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLnMuc2xpY2UoMCxuKzEpLHIsLi4ucy5zbGljZShuKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgbz10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihvKXtsZXQgbD10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQocik7by5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixsKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxhJiZyLnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayhyLmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcihyPT5yLmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IHI9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7ciYmci5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQocj0+ci5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgocj0+ci5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSxyPSJzdGFydCIpe2xldCBhPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKGEpe2xldCBzPWEucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7cyYmKGF3YWl0IG5ldyBQcm9taXNlKG49PnJlcXVlc3RBbmltYXRpb25GcmFtZShuKSkscy5mb2N1c1dpdGhDdXJzb3IocikpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSxyKXtsZXQgYT10aGlzLmZpbmRCbG9jayhlKTthJiYoYS5jb250ZW50PXIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSxyLGEpe2xldCBzPXRoaXMuZmluZEJsb2NrKGUpO3MmJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxzLnR5cGU9cixzLmNvbnRlbnQ9IiIsYSYmKHMubWV0YWRhdGE9YSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLHIpe2xldCBhPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLHM9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKHM9PT0tMXx8cjwwfHxyPj1hLmxlbmd0aClyZXR1cm47bGV0W25dPWEuc3BsaWNlKHMsMSk7YS5zcGxpY2UociwwLG4pLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1hLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgcj10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHI+MD90aGlzLmNvbXBvbmVudC5ibG9ja3Nbci0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgcj10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHI8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1tyKzFdOm51bGx9fX0pO3ZhciBwaSxsbD11KCgpPT57cGk9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFzZUJsb2NrSGFuZGxlciIpfXNldHVwKGUscixhKXt9Z2V0U3R5bGVzKCl7cmV0dXJuIiJ9fX0pO3ZhciBJYSxEVXI9dSgoKT0+e0lhPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJsb2NrUmVnaXN0cnkiKX1zdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIoZSxyKXt0aGlzLmhhbmRsZXJzLnNldChlLHIpfXN0YXRpYyBnZXRIYW5kbGVyKGUpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldChlKX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciAkVXI9dSgoKT0+e30pO3ZhciB3dGUsQVVyPXUoKCk9PntsbCgpO3ZlKCk7cjMoKTtuZCgpO3d0ZT1jbGFzcyBleHRlbmRzIHBpe3N0YXRpY3tpKHRoaXMsIlBhcmFncmFwaEJsb2NrSGFuZGxlciIpfXR5cGU9InBhcmFncmFwaCI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSxyKXtsZXQgYT1yPyIgc2VsZWN0ZWQiOiIiLHM9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBwYXJhZ3JhcGgke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3N9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFzKXtjb25zb2xlLmVycm9yKCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIHBhcmFncmFwaCBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXIuY29udGVudCYmIXMuaW5uZXJIVE1MJiYocy5pbm5lckhUTUw9ci5jb250ZW50KSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSkscy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSkscy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHMscil9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscixhKXtsZXQgcz1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGM9ci5nZXRSb290Tm9kZSgpLmhvc3QsZj1jPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxwPWM/LnNoYWRvd1Jvb3QsaD1bXTtmJiZoLnB1c2goZikscCYmaC5wdXNoKHApO2xldCBtPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uaCk7aWYoIW0pcmV0dXJuO2xldCB2PWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsbS5zdGFydENvbnRhaW5lciksYj1odC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLG0uZW5kQ29udGFpbmVyKTtpZih2fHxiKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZz1odC5jcmVhdGVSYW5nZUZyb21JbmZvKG0pLHk9Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZyxyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIscyksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXM7bGV0IG49ZS5jbG9zZXN0KCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrLGw9dGhpcztuLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7bC5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixsLnNlbGVjdGlvbkhhbmRsZXIpLGwuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxvJiZhd2FpdCBvLmNhbGwobil9fX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUscil7bGV0IGE9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnIsYnViYmxlczohMCxjb21wb3NlZDohMH0pO2UuZGlzcGF0Y2hFdmVudChhKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFBhcmFncmFwaCBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnBhcmFncmFwaCB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJUeXBlICcvJyBmb3IgY29tbWFuZHMuLi4ifWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCByPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IGE9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW3JdKTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfWdldEN1cnNvclBvc2l0aW9uKGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXI/LnNoYWRvd1Jvb3QsYz1bXTtvJiZjLnB1c2gobyksbCYmYy5wdXNoKGwpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoIWR8fCFodC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGQuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGYuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLGYuc2V0RW5kKGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksZi50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7cmV0dXJuIGEmJmEuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighcylyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXN8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXM7cy5pbm5lckhUTUw9cixuJiZzLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2EmJkVuLnNldEN1cnNvclRvU3RhcnQoYSl9c2V0Q3Vyc29yVG9FbmQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiZFbi5zZXRDdXJzb3JUb0VuZChhKX1mb2N1cyhlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2EmJihhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1hJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57YS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXMpcmV0dXJuO2lmKHMuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8cy5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyPT09ImVuZCImJnMudGV4dENvbnRlbnQmJnMudGV4dENvbnRlbnQubGVuZ3RoPjApe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9dGhpcy5nZXRMYXN0VGV4dE5vZGUocyl8fHM7Yy5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFPyhsLnNldFN0YXJ0KGMsYy50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxsLnNldEVuZChjLGMudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkpOihsLnNlbGVjdE5vZGVDb250ZW50cyhjKSxsLmNvbGxhcHNlKCExKSksby5yZW1vdmVBbGxSYW5nZXMoKSxvLmFkZFJhbmdlKGwpfX1zLmZvY3VzKCk7bGV0IG49aSgoKT0+e3I9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGEpOnI9PT0iZW5kIiYmKCFzLnRleHRDb250ZW50fHxzLnRleHRDb250ZW50Lmxlbmd0aD09PTApP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKTp0eXBlb2Ygcj09Im51bWJlciImJmh0LnNldEN1cnNvclBvc2l0aW9uKHMscil9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cz9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zP24oKTpzZXRUaW1lb3V0KCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zKSYmbigpfSwxMCl9KX1nZXRTcGxpdENvbnRlbnQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9cj8uc2hhZG93Um9vdCxjPVtdO28mJmMucHVzaChvKSxsJiZjLnB1c2gobCk7bGV0IGQ9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5jKTtpZighZCl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPWEudGV4dENvbnRlbnR8fCIiLE09TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLE0pLGFmdGVyOmsuc3Vic3RyaW5nKE0pfX1yZXR1cm4gbnVsbH1pZighaHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPWEudGV4dENvbnRlbnR8fCIiLE09TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLE0pLGFmdGVyOmsuc3Vic3RyaW5nKE0pfX1yZXR1cm4gbnVsbH1sZXQgZj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUscik7aWYoZj09PW51bGx8fGY9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6YS5pbm5lckhUTUx9O2xldCBwPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Auc2V0U3RhcnQoYSwwKSxwLnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChhLGEuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBtPXAuY2xvbmVDb250ZW50cygpLHY9aC5jbG9uZUNvbnRlbnRzKCksYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmFwcGVuZENoaWxkKG0pO2xldCBnPWIuaW5uZXJIVE1MO2IuaW5uZXJIVE1MPSIiLGIuYXBwZW5kQ2hpbGQodik7bGV0IHk9Yi5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpnLGFmdGVyOnl9fX19KTt2YXIgXzksRVVyPXUoKCk9PntsbCgpO3ZlKCk7cjMoKTtuZCgpO185PWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiSGVhZGluZ0Jsb2NrSGFuZGxlciIpfXR5cGU7bGV2ZWw7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMudHlwZT1lLHRoaXMubGV2ZWw9cGFyc2VJbnQoZS5zcGxpdCgiLSIpWzFdKX1yZW5kZXIoZSxyKXtsZXQgYT1yPyIgc2VsZWN0ZWQiOiIiLHM9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBoZWFkaW5nLSR7dGhpcy5sZXZlbH0ke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3N9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFzKXtjb25zb2xlLmVycm9yKCJIZWFkaW5nQmxvY2tIYW5kbGVyLnNldHVwOiBObyBoZWFkaW5nIGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59ci5jb250ZW50JiYhcy5pbm5lckhUTUwmJihzLmlubmVySFRNTD1yLmNvbnRlbnQpLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLG49PnthLm9uSW5wdXQobik7bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uS2V5RG93bihuKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57YS5vbkZvY3VzKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57YS5vbkJsdXIoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PnthLm9uQ29tcG9zaXRpb25TdGFydCgpfSkscy5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PnthLm9uQ29tcG9zaXRpb25FbmQoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25Nb3VzZVVwPy4obil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuPT57c2V0VGltZW91dCgoKT0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSwwKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscyxyKX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxyLGEpe2xldCBzPWkoKCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBsPW8udG9TdHJpbmcoKTtpZihsLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgYz1yLmdldFJvb3ROb2RlKCkuaG9zdCxmPWM/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHA9Yz8uc2hhZG93Um9vdCxoPVtdO2YmJmgucHVzaChmKSxwJiZoLnB1c2gocCk7bGV0IG09aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighbSlyZXR1cm47bGV0IHY9aHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixtLnN0YXJ0Q29udGFpbmVyKSxiPWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsbS5lbmRDb250YWluZXIpO2lmKHZ8fGIpe2lmKGwhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1sO2xldCBnPWh0LmNyZWF0ZVJhbmdlRnJvbUluZm8obSkseT1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OmwudHJpbSgpLGJsb2NrSWQ6YS5pZCxyYW5nZTpnLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixzKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9cztsZXQgbj1yLmdldFJvb3ROb2RlKCkuaG9zdDtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrLGw9dGhpcztuLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7bC5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixsLnNlbGVjdGlvbkhhbmRsZXIpLGwuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxvJiZhd2FpdCBvLmNhbGwobil9fX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUscil7bGV0IGE9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnIsYnViYmxlczohMCxjb21wb3NlZDohMH0pO2UuZGlzcGF0Y2hFdmVudChhKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5oZWFkaW5nLTEgewogICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgICAgbWFyZ2luOiAyNHB4IDAgOHB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMiB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICBtYXJnaW46IDIwcHggMCA2cHggMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2suaGVhZGluZy0zIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIG1hcmdpbjogMTZweCAwIDRweCAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSAxOnJldHVybiJIZWFkaW5nIDEiO2Nhc2UgMjpyZXR1cm4iSGVhZGluZyAyIjtjYXNlIDM6cmV0dXJuIkhlYWRpbmcgMyI7ZGVmYXVsdDpyZXR1cm4iSGVhZGluZyJ9fWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCByPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IGE9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW3JdKTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfWdldEN1cnNvclBvc2l0aW9uKGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXI/LnNoYWRvd1Jvb3QsYz1bXTtvJiZjLnB1c2gobyksbCYmYy5wdXNoKGwpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoIWR8fCFodC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGQuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGYuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLGYuc2V0RW5kKGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksZi50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7cmV0dXJuIGEmJmEuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcylyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXN8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXM7cy5pbm5lckhUTUw9cixuJiZzLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2EmJkVuLnNldEN1cnNvclRvU3RhcnQoYSl9c2V0Q3Vyc29yVG9FbmQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiZFbi5zZXRDdXJzb3JUb0VuZChhKX1mb2N1cyhlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2EmJihhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1hJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57YS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIXMpcmV0dXJuO2lmKHMuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8cy5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyPT09ImVuZCImJnMudGV4dENvbnRlbnQmJnMudGV4dENvbnRlbnQubGVuZ3RoPjApe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9dGhpcy5nZXRMYXN0VGV4dE5vZGUocyl8fHM7Yy5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFPyhsLnNldFN0YXJ0KGMsYy50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxsLnNldEVuZChjLGMudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkpOihsLnNlbGVjdE5vZGVDb250ZW50cyhjKSxsLmNvbGxhcHNlKCExKSksby5yZW1vdmVBbGxSYW5nZXMoKSxvLmFkZFJhbmdlKGwpfX1zLmZvY3VzKCk7bGV0IG49aSgoKT0+e3I9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGEpOnI9PT0iZW5kIiYmKCFzLnRleHRDb250ZW50fHxzLnRleHRDb250ZW50Lmxlbmd0aD09PTApP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKTp0eXBlb2Ygcj09Im51bWJlciImJmh0LnNldEN1cnNvclBvc2l0aW9uKHMscil9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cz9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zP24oKTpzZXRUaW1lb3V0KCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zKSYmbigpfSwxMCl9KX1nZXRTcGxpdENvbnRlbnQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9cj8uc2hhZG93Um9vdCxjPVtdO28mJmMucHVzaChvKSxsJiZjLnB1c2gobCk7bGV0IGQ9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5jKTtpZighZCl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPWEudGV4dENvbnRlbnR8fCIiLE09TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLE0pLGFmdGVyOmsuc3Vic3RyaW5nKE0pfX1yZXR1cm4gbnVsbH1pZighaHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPWEudGV4dENvbnRlbnR8fCIiLE09TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLE0pLGFmdGVyOmsuc3Vic3RyaW5nKE0pfX1yZXR1cm4gbnVsbH1sZXQgZj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUscik7aWYoZj09PW51bGx8fGY9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6YS5pbm5lckhUTUx9O2xldCBwPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Auc2V0U3RhcnQoYSwwKSxwLnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChhLGEuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBtPXAuY2xvbmVDb250ZW50cygpLHY9aC5jbG9uZUNvbnRlbnRzKCksYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmFwcGVuZENoaWxkKG0pO2xldCBnPWIuaW5uZXJIVE1MO2IuaW5uZXJIVE1MPSIiLGIuYXBwZW5kQ2hpbGQodik7bGV0IHk9Yi5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpnLGFmdGVyOnl9fX19KTt2YXIga3RlLElVcj11KCgpPT57bGwoKTt2ZSgpO3IzKCk7bmQoKTtrdGU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJRdW90ZUJsb2NrSGFuZGxlciIpfXR5cGU9InF1b3RlIjtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO3JlbmRlcihlLHIpe2xldCBhPXI/IiBzZWxlY3RlZCI6IiIscz10aGlzLmdldFBsYWNlaG9sZGVyKCk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIHF1b3RlJHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtzfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFzKXtjb25zb2xlLmVycm9yKCJRdW90ZUJsb2NrSGFuZGxlci5zZXR1cDogTm8gcXVvdGUgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1yLmNvbnRlbnQmJiFzLmlubmVySFRNTCYmKHMuaW5uZXJIVE1MPXIuY29udGVudCkscy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25LZXlEb3duKG4pfSkscy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnthLm9uRm9jdXMoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnthLm9uQmx1cigpfSkscy5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2Eub25Db21wb3NpdGlvblN0YXJ0KCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2Eub25Db21wb3NpdGlvbkVuZCgpfSkscy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbk1vdXNlVXA/LihuKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxzLHIpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsYSl7bGV0IHM9aSgoKT0+e2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGw9by50b1N0cmluZygpO2lmKGwubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBjPXIuZ2V0Um9vdE5vZGUoKS5ob3N0LGY9Yz8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QscD1jPy5zaGFkb3dSb290LGg9W107ZiYmaC5wdXNoKGYpLHAmJmgucHVzaChwKTtsZXQgbT1odC5nZXRTZWxlY3Rpb25JbmZvKC4uLmgpO2lmKCFtKXJldHVybjtsZXQgdj1odC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLG0uc3RhcnRDb250YWluZXIpLGI9aHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixtLmVuZENvbnRhaW5lcik7aWYodnx8Yil7aWYobCE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWw7bGV0IGc9aHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhtKSx5PWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6bC50cmltKCksYmxvY2tJZDphLmlkLHJhbmdlOmcscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHMpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1zO2xldCBuPXIuZ2V0Um9vdE5vZGUoKS5ob3N0O2lmKG4pe2xldCBvPW4uZGlzY29ubmVjdGVkQ2FsbGJhY2ssbD10aGlzO24uZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXtsLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGwuc2VsZWN0aW9uSGFuZGxlciksbC5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLG8mJmF3YWl0IG8uY2FsbChuKX19fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxyKXtsZXQgYT1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6cixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KGEpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogUXVvdGUgc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5xdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzU1NSIsIiNiMGIwYjAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iQWRkIGEgcXVvdGUuLi4ifWdldEN1cnNvclBvc2l0aW9uKGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9cj8uc2hhZG93Um9vdCxjPVtdO28mJmMucHVzaChvKSxsJiZjLnB1c2gobCk7bGV0IGQ9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5jKTtpZighZHx8IWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IGY9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gZi5zZWxlY3ROb2RlQ29udGVudHMoYSksZi5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxmLnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcylyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXN8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXM7cy5pbm5lckhUTUw9cixuJiZzLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7YSYmRW4uc2V0Q3Vyc29yVG9TdGFydChhKX1zZXRDdXJzb3JUb0VuZChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7YSYmRW4uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2EmJihhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1hJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57YS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcylyZXR1cm47cy5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxzLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHMuZm9jdXMoKTtsZXQgbj1pKCgpPT57cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUsYSk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKTp0eXBlb2Ygcj09Im51bWJlciImJmh0LnNldEN1cnNvclBvc2l0aW9uKHMscil9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cz9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cykmJm4oKX0pfWdldFNwbGl0Q29udGVudChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXI/LnNoYWRvd1Jvb3QsYz1bXTtvJiZjLnB1c2gobyksbCYmYy5wdXNoKGwpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgaz1hLnRleHRDb250ZW50fHwiIixNPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24say5sZW5ndGgpO3JldHVybntiZWZvcmU6ay5zdWJzdHJpbmcoMCxNKSxhZnRlcjprLnN1YnN0cmluZyhNKX19cmV0dXJuIG51bGx9aWYoIWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgaz1hLnRleHRDb250ZW50fHwiIixNPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24say5sZW5ndGgpO3JldHVybntiZWZvcmU6ay5zdWJzdHJpbmcoMCxNKSxhZnRlcjprLnN1YnN0cmluZyhNKX19cmV0dXJuIG51bGx9bGV0IGY9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHIpO2lmKGY9PT1udWxsfHxmPT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgcD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtwLnNldFN0YXJ0KGEsMCkscC5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxoLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksaC5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgbT1wLmNsb25lQ29udGVudHMoKSx2PWguY2xvbmVDb250ZW50cygpLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5hcHBlbmRDaGlsZChtKTtsZXQgZz1iLmlubmVySFRNTDtiLmlubmVySFRNTD0iIixiLmFwcGVuZENoaWxkKHYpO2xldCB5PWIuaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZyxhZnRlcjp5fX19fSk7ZnVuY3Rpb24gU28odCl7dGhpcy5jb250ZW50PXR9dmFyIG5tdCxQVXI9dSgoKT0+e2koU28sIk9yZGVyZWRNYXAiKSxTby5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlNvLGZpbmQ6aShmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuY29udGVudC5sZW5ndGg7ZSs9MilpZih0aGlzLmNvbnRlbnRbZV09PT10KXJldHVybiBlO3JldHVybi0xfSwiZmluZCIpLGdldDppKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZCh0KTtyZXR1cm4gZT09LTE/dm9pZCAwOnRoaXMuY29udGVudFtlKzFdfSwiZ2V0IiksdXBkYXRlOmkoZnVuY3Rpb24odCxlLHIpe3ZhciBhPXImJnIhPXQ/dGhpcy5yZW1vdmUocik6dGhpcyxzPWEuZmluZCh0KSxuPWEuY29udGVudC5zbGljZSgpO3JldHVybiBzPT0tMT9uLnB1c2gocnx8dCxlKToobltzKzFdPWUsciYmKG5bc109cikpLG5ldyBTbyhuKX0sInVwZGF0ZSIpLHJlbW92ZTppKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZCh0KTtpZihlPT0tMSlyZXR1cm4gdGhpczt2YXIgcj10aGlzLmNvbnRlbnQuc2xpY2UoKTtyZXR1cm4gci5zcGxpY2UoZSwyKSxuZXcgU28ocil9LCJyZW1vdmUiKSxhZGRUb1N0YXJ0OmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFNvKFt0LGVdLmNvbmNhdCh0aGlzLnJlbW92ZSh0KS5jb250ZW50KSl9LCJhZGRUb1N0YXJ0IiksYWRkVG9FbmQ6aShmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMucmVtb3ZlKHQpLmNvbnRlbnQuc2xpY2UoKTtyZXR1cm4gci5wdXNoKHQsZSksbmV3IFNvKHIpfSwiYWRkVG9FbmQiKSxhZGRCZWZvcmU6aShmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5yZW1vdmUoZSkscz1hLmNvbnRlbnQuc2xpY2UoKSxuPWEuZmluZCh0KTtyZXR1cm4gcy5zcGxpY2Uobj09LTE/cy5sZW5ndGg6biwwLGUsciksbmV3IFNvKHMpfSwiYWRkQmVmb3JlIiksZm9yRWFjaDppKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dGhpcy5jb250ZW50Lmxlbmd0aDtlKz0yKXQodGhpcy5jb250ZW50W2VdLHRoaXMuY29udGVudFtlKzFdKX0sImZvckVhY2giKSxwcmVwZW5kOmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ9U28uZnJvbSh0KSx0LnNpemU/bmV3IFNvKHQuY29udGVudC5jb25jYXQodGhpcy5zdWJ0cmFjdCh0KS5jb250ZW50KSk6dGhpc30sInByZXBlbmQiKSxhcHBlbmQ6aShmdW5jdGlvbih0KXtyZXR1cm4gdD1Tby5mcm9tKHQpLHQuc2l6ZT9uZXcgU28odGhpcy5zdWJ0cmFjdCh0KS5jb250ZW50LmNvbmNhdCh0LmNvbnRlbnQpKTp0aGlzfSwiYXBwZW5kIiksc3VidHJhY3Q6aShmdW5jdGlvbih0KXt2YXIgZT10aGlzO3Q9U28uZnJvbSh0KTtmb3IodmFyIHI9MDtyPHQuY29udGVudC5sZW5ndGg7cis9MillPWUucmVtb3ZlKHQuY29udGVudFtyXSk7cmV0dXJuIGV9LCJzdWJ0cmFjdCIpLHRvT2JqZWN0OmkoZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7dFtlXT1yfSksdH0sInRvT2JqZWN0IiksZ2V0IHNpemUoKXtyZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aD4+MX19LFNvLmZyb209ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFNvKXJldHVybiB0O3ZhciBlPVtdO2lmKHQpZm9yKHZhciByIGluIHQpZS5wdXNoKHIsdFtyXSk7cmV0dXJuIG5ldyBTbyhlKX07bm10PVNvfSk7ZnVuY3Rpb24gTlVyKHQsZSxyKXtmb3IobGV0IGE9MDs7YSsrKXtpZihhPT10LmNoaWxkQ291bnR8fGE9PWUuY2hpbGRDb3VudClyZXR1cm4gdC5jaGlsZENvdW50PT1lLmNoaWxkQ291bnQ/bnVsbDpyO2xldCBzPXQuY2hpbGQoYSksbj1lLmNoaWxkKGEpO2lmKHM9PW4pe3IrPXMubm9kZVNpemU7Y29udGludWV9aWYoIXMuc2FtZU1hcmt1cChuKSlyZXR1cm4gcjtpZihzLmlzVGV4dCYmcy50ZXh0IT1uLnRleHQpe2ZvcihsZXQgbz0wO3MudGV4dFtvXT09bi50ZXh0W29dO28rKylyKys7cmV0dXJuIHJ9aWYocy5jb250ZW50LnNpemV8fG4uY29udGVudC5zaXplKXtsZXQgbz1OVXIocy5jb250ZW50LG4uY29udGVudCxyKzEpO2lmKG8hPW51bGwpcmV0dXJuIG99cis9cy5ub2RlU2l6ZX19ZnVuY3Rpb24gT1VyKHQsZSxyLGEpe2ZvcihsZXQgcz10LmNoaWxkQ291bnQsbj1lLmNoaWxkQ291bnQ7Oyl7aWYocz09MHx8bj09MClyZXR1cm4gcz09bj9udWxsOnthOnIsYjphfTtsZXQgbz10LmNoaWxkKC0tcyksbD1lLmNoaWxkKC0tbiksYz1vLm5vZGVTaXplO2lmKG89PWwpe3ItPWMsYS09Yztjb250aW51ZX1pZighby5zYW1lTWFya3VwKGwpKXJldHVybnthOnIsYjphfTtpZihvLmlzVGV4dCYmby50ZXh0IT1sLnRleHQpe2xldCBkPTAsZj1NYXRoLm1pbihvLnRleHQubGVuZ3RoLGwudGV4dC5sZW5ndGgpO2Zvcig7ZDxmJiZvLnRleHRbby50ZXh0Lmxlbmd0aC1kLTFdPT1sLnRleHRbbC50ZXh0Lmxlbmd0aC1kLTFdOylkKyssci0tLGEtLTtyZXR1cm57YTpyLGI6YX19aWYoby5jb250ZW50LnNpemV8fGwuY29udGVudC5zaXplKXtsZXQgZD1PVXIoby5jb250ZW50LGwuY29udGVudCxyLTEsYS0xKTtpZihkKXJldHVybiBkfXItPWMsYS09Y319ZnVuY3Rpb24gZmZlKHQsZSl7cmV0dXJuIG9tdC5pbmRleD10LG9tdC5vZmZzZXQ9ZSxvbXR9ZnVuY3Rpb24gaGZlKHQsZSl7aWYodD09PWUpcmV0dXJuITA7aWYoISh0JiZ0eXBlb2YgdD09Im9iamVjdCIpfHwhKGUmJnR5cGVvZiBlPT0ib2JqZWN0IikpcmV0dXJuITE7bGV0IHI9QXJyYXkuaXNBcnJheSh0KTtpZihBcnJheS5pc0FycmF5KGUpIT1yKXJldHVybiExO2lmKHIpe2lmKHQubGVuZ3RoIT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKylpZighaGZlKHRbYV0sZVthXSkpcmV0dXJuITF9ZWxzZXtmb3IobGV0IGEgaW4gdClpZighKGEgaW4gZSl8fCFoZmUodFthXSxlW2FdKSlyZXR1cm4hMTtmb3IobGV0IGEgaW4gZSlpZighKGEgaW4gdCkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gUlVyKHQsZSxyKXtsZXR7aW5kZXg6YSxvZmZzZXQ6c309dC5maW5kSW5kZXgoZSksbj10Lm1heWJlQ2hpbGQoYSkse2luZGV4Om8sb2Zmc2V0Omx9PXQuZmluZEluZGV4KHIpO2lmKHM9PWV8fG4uaXNUZXh0KXtpZihsIT1yJiYhdC5jaGlsZChvKS5pc1RleHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlJlbW92aW5nIG5vbi1mbGF0IHJhbmdlIik7cmV0dXJuIHQuY3V0KDAsZSkuYXBwZW5kKHQuY3V0KHIpKX1pZihhIT1vKXRocm93IG5ldyBSYW5nZUVycm9yKCJSZW1vdmluZyBub24tZmxhdCByYW5nZSIpO3JldHVybiB0LnJlcGxhY2VDaGlsZChhLG4uY29weShSVXIobi5jb250ZW50LGUtcy0xLHItcy0xKSkpfWZ1bmN0aW9uIEZVcih0LGUscixhLHMsbil7bGV0e2luZGV4Om8sb2Zmc2V0Omx9PXQuZmluZEluZGV4KGUpLGM9dC5tYXliZUNoaWxkKG8pO2lmKGw9PWV8fGMuaXNUZXh0KXJldHVybiBuJiZhPD0wJiZzPD0wJiYhbi5jYW5SZXBsYWNlKG8sbyxyKT9udWxsOnQuY3V0KDAsZSkuYXBwZW5kKHIpLmFwcGVuZCh0LmN1dChlKSk7bGV0IGQ9RlVyKGMuY29udGVudCxlLWwtMSxyLG89PTA/YS0xOjAsbz09dC5jaGlsZENvdW50LTE/cy0xOjAsYyk7cmV0dXJuIGQmJnQucmVwbGFjZUNoaWxkKG8sYy5jb3B5KGQpKX1mdW5jdGlvbiBkSWEodCxlLHIpe2lmKHIub3BlblN0YXJ0PnQuZGVwdGgpdGhyb3cgbmV3IHFwKCJJbnNlcnRlZCBjb250ZW50IGRlZXBlciB0aGFuIGluc2VydGlvbiBwb3NpdGlvbiIpO2lmKHQuZGVwdGgtci5vcGVuU3RhcnQhPWUuZGVwdGgtci5vcGVuRW5kKXRocm93IG5ldyBxcCgiSW5jb25zaXN0ZW50IG9wZW4gZGVwdGhzIik7cmV0dXJuIEJVcih0LGUsciwwKX1mdW5jdGlvbiBCVXIodCxlLHIsYSl7bGV0IHM9dC5pbmRleChhKSxuPXQubm9kZShhKTtpZihzPT1lLmluZGV4KGEpJiZhPHQuZGVwdGgtci5vcGVuU3RhcnQpe2xldCBvPUJVcih0LGUscixhKzEpO3JldHVybiBuLmNvcHkobi5jb250ZW50LnJlcGxhY2VDaGlsZChzLG8pKX1lbHNlIGlmKHIuY29udGVudC5zaXplKWlmKCFyLm9wZW5TdGFydCYmIXIub3BlbkVuZCYmdC5kZXB0aD09YSYmZS5kZXB0aD09YSl7bGV0IG89dC5wYXJlbnQsbD1vLmNvbnRlbnQ7cmV0dXJuIEw5KG8sbC5jdXQoMCx0LnBhcmVudE9mZnNldCkuYXBwZW5kKHIuY29udGVudCkuYXBwZW5kKGwuY3V0KGUucGFyZW50T2Zmc2V0KSkpfWVsc2V7bGV0e3N0YXJ0Om8sZW5kOmx9PXVJYShyLHQpO3JldHVybiBMOShuLHFVcih0LG8sbCxlLGEpKX1lbHNlIHJldHVybiBMOShuLG1mZSh0LGUsYSkpfWZ1bmN0aW9uIEhVcih0LGUpe2lmKCFlLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQodC50eXBlKSl0aHJvdyBuZXcgcXAoIkNhbm5vdCBqb2luICIrZS50eXBlLm5hbWUrIiBvbnRvICIrdC50eXBlLm5hbWUpfWZ1bmN0aW9uIGxtdCh0LGUscil7bGV0IGE9dC5ub2RlKHIpO3JldHVybiBIVXIoYSxlLm5vZGUocikpLGF9ZnVuY3Rpb24gVDkodCxlKXtsZXQgcj1lLmxlbmd0aC0xO3I+PTAmJnQuaXNUZXh0JiZ0LnNhbWVNYXJrdXAoZVtyXSk/ZVtyXT10LndpdGhUZXh0KGVbcl0udGV4dCt0LnRleHQpOmUucHVzaCh0KX1mdW5jdGlvbiBTdGUodCxlLHIsYSl7bGV0IHM9KGV8fHQpLm5vZGUociksbj0wLG89ZT9lLmluZGV4KHIpOnMuY2hpbGRDb3VudDt0JiYobj10LmluZGV4KHIpLHQuZGVwdGg+cj9uKys6dC50ZXh0T2Zmc2V0JiYoVDkodC5ub2RlQWZ0ZXIsYSksbisrKSk7Zm9yKGxldCBsPW47bDxvO2wrKylUOShzLmNoaWxkKGwpLGEpO2UmJmUuZGVwdGg9PXImJmUudGV4dE9mZnNldCYmVDkoZS5ub2RlQmVmb3JlLGEpfWZ1bmN0aW9uIEw5KHQsZSl7cmV0dXJuIHQudHlwZS5jaGVja0NvbnRlbnQoZSksdC5jb3B5KGUpfWZ1bmN0aW9uIHFVcih0LGUscixhLHMpe2xldCBuPXQuZGVwdGg+cyYmbG10KHQsZSxzKzEpLG89YS5kZXB0aD5zJiZsbXQocixhLHMrMSksbD1bXTtyZXR1cm4gU3RlKG51bGwsdCxzLGwpLG4mJm8mJmUuaW5kZXgocyk9PXIuaW5kZXgocyk/KEhVcihuLG8pLFQ5KEw5KG4scVVyKHQsZSxyLGEscysxKSksbCkpOihuJiZUOShMOShuLG1mZSh0LGUscysxKSksbCksU3RlKGUscixzLGwpLG8mJlQ5KEw5KG8sbWZlKHIsYSxzKzEpKSxsKSksU3RlKGEsbnVsbCxzLGwpLG5ldyBKZShsKX1mdW5jdGlvbiBtZmUodCxlLHIpe2xldCBhPVtdO2lmKFN0ZShudWxsLHQscixhKSx0LmRlcHRoPnIpe2xldCBzPWxtdCh0LGUscisxKTtUOShMOShzLG1mZSh0LGUscisxKSksYSl9cmV0dXJuIFN0ZShlLG51bGwscixhKSxuZXcgSmUoYSl9ZnVuY3Rpb24gdUlhKHQsZSl7bGV0IHI9ZS5kZXB0aC10Lm9wZW5TdGFydCxzPWUubm9kZShyKS5jb3B5KHQuY29udGVudCk7Zm9yKGxldCBuPXItMTtuPj0wO24tLSlzPWUubm9kZShuKS5jb3B5KEplLmZyb20ocykpO3JldHVybntzdGFydDpzLnJlc29sdmVOb0NhY2hlKHQub3BlblN0YXJ0K3IpLGVuZDpzLnJlc29sdmVOb0NhY2hlKHMuY29udGVudC5zaXplLXQub3BlbkVuZC1yKX19ZnVuY3Rpb24galVyKHQsZSl7Zm9yKGxldCByPXQubGVuZ3RoLTE7cj49MDtyLS0pZT10W3JdLnR5cGUubmFtZSsiKCIrZSsiKSI7cmV0dXJuIGV9ZnVuY3Rpb24gVVVyKHQpe2xldCBlPVtdO2RvIGUucHVzaChoSWEodCkpO3doaWxlKHQuZWF0KCJ8IikpO3JldHVybiBlLmxlbmd0aD09MT9lWzBdOnt0eXBlOiJjaG9pY2UiLGV4cHJzOmV9fWZ1bmN0aW9uIGhJYSh0KXtsZXQgZT1bXTtkbyBlLnB1c2gobUlhKHQpKTt3aGlsZSh0Lm5leHQmJnQubmV4dCE9IikiJiZ0Lm5leHQhPSJ8Iik7cmV0dXJuIGUubGVuZ3RoPT0xP2VbMF06e3R5cGU6InNlcSIsZXhwcnM6ZX19ZnVuY3Rpb24gbUlhKHQpe2xldCBlPXhJYSh0KTtmb3IoOzspaWYodC5lYXQoIisiKSllPXt0eXBlOiJwbHVzIixleHByOmV9O2Vsc2UgaWYodC5lYXQoIioiKSllPXt0eXBlOiJzdGFyIixleHByOmV9O2Vsc2UgaWYodC5lYXQoIj8iKSllPXt0eXBlOiJvcHQiLGV4cHI6ZX07ZWxzZSBpZih0LmVhdCgieyIpKWU9Z0lhKHQsZSk7ZWxzZSBicmVhaztyZXR1cm4gZX1mdW5jdGlvbiBXVXIodCl7L1xELy50ZXN0KHQubmV4dCkmJnQuZXJyKCJFeHBlY3RlZCBudW1iZXIsIGdvdCAnIit0Lm5leHQrIiciKTtsZXQgZT1OdW1iZXIodC5uZXh0KTtyZXR1cm4gdC5wb3MrKyxlfWZ1bmN0aW9uIGdJYSh0LGUpe2xldCByPVdVcih0KSxhPXI7cmV0dXJuIHQuZWF0KCIsIikmJih0Lm5leHQhPSJ9Ij9hPVdVcih0KTphPS0xKSx0LmVhdCgifSIpfHx0LmVycigiVW5jbG9zZWQgYnJhY2VkIHJhbmdlIikse3R5cGU6InJhbmdlIixtaW46cixtYXg6YSxleHByOmV9fWZ1bmN0aW9uIGJJYSh0LGUpe2xldCByPXQubm9kZVR5cGVzLGE9cltlXTtpZihhKXJldHVyblthXTtsZXQgcz1bXTtmb3IobGV0IG4gaW4gcil7bGV0IG89cltuXTtvLmlzSW5Hcm91cChlKSYmcy5wdXNoKG8pfXJldHVybiBzLmxlbmd0aD09MCYmdC5lcnIoIk5vIG5vZGUgdHlwZSBvciBncm91cCAnIitlKyInIGZvdW5kIiksc31mdW5jdGlvbiB4SWEodCl7aWYodC5lYXQoIigiKSl7bGV0IGU9VVVyKHQpO3JldHVybiB0LmVhdCgiKSIpfHx0LmVycigiTWlzc2luZyBjbG9zaW5nIHBhcmVuIiksZX1lbHNlIGlmKC9cVy8udGVzdCh0Lm5leHQpKXQuZXJyKCJVbmV4cGVjdGVkIHRva2VuICciK3QubmV4dCsiJyIpO2Vsc2V7bGV0IGU9YklhKHQsdC5uZXh0KS5tYXAocj0+KHQuaW5saW5lPT1udWxsP3QuaW5saW5lPXIuaXNJbmxpbmU6dC5pbmxpbmUhPXIuaXNJbmxpbmUmJnQuZXJyKCJNaXhpbmcgaW5saW5lIGFuZCBibG9jayBjb250ZW50Iikse3R5cGU6Im5hbWUiLHZhbHVlOnJ9KSk7cmV0dXJuIHQucG9zKyssZS5sZW5ndGg9PTE/ZVswXTp7dHlwZToiY2hvaWNlIixleHByczplfX19ZnVuY3Rpb24gdklhKHQpe2xldCBlPVtbXV07cmV0dXJuIHMobih0LDApLHIoKSksZTtmdW5jdGlvbiByKCl7cmV0dXJuIGUucHVzaChbXSktMX1pKHIsIm5vZGUiKTtmdW5jdGlvbiBhKG8sbCxjKXtsZXQgZD17dGVybTpjLHRvOmx9O3JldHVybiBlW29dLnB1c2goZCksZH1pKGEsImVkZ2UiKTtmdW5jdGlvbiBzKG8sbCl7by5mb3JFYWNoKGM9PmMudG89bCl9aShzLCJjb25uZWN0Iik7ZnVuY3Rpb24gbihvLGwpe2lmKG8udHlwZT09ImNob2ljZSIpcmV0dXJuIG8uZXhwcnMucmVkdWNlKChjLGQpPT5jLmNvbmNhdChuKGQsbCkpLFtdKTtpZihvLnR5cGU9PSJzZXEiKWZvcihsZXQgYz0wOztjKyspe2xldCBkPW4oby5leHByc1tjXSxsKTtpZihjPT1vLmV4cHJzLmxlbmd0aC0xKXJldHVybiBkO3MoZCxsPXIoKSl9ZWxzZSBpZihvLnR5cGU9PSJzdGFyIil7bGV0IGM9cigpO3JldHVybiBhKGwsYykscyhuKG8uZXhwcixjKSxjKSxbYShjKV19ZWxzZSBpZihvLnR5cGU9PSJwbHVzIil7bGV0IGM9cigpO3JldHVybiBzKG4oby5leHByLGwpLGMpLHMobihvLmV4cHIsYyksYyksW2EoYyldfWVsc2V7aWYoby50eXBlPT0ib3B0IilyZXR1cm5bYShsKV0uY29uY2F0KG4oby5leHByLGwpKTtpZihvLnR5cGU9PSJyYW5nZSIpe2xldCBjPWw7Zm9yKGxldCBkPTA7ZDxvLm1pbjtkKyspe2xldCBmPXIoKTtzKG4oby5leHByLGMpLGYpLGM9Zn1pZihvLm1heD09LTEpcyhuKG8uZXhwcixjKSxjKTtlbHNlIGZvcihsZXQgZD1vLm1pbjtkPG8ubWF4O2QrKyl7bGV0IGY9cigpO2EoYyxmKSxzKG4oby5leHByLGMpLGYpLGM9Zn1yZXR1cm5bYShjKV19ZWxzZXtpZihvLnR5cGU9PSJuYW1lIilyZXR1cm5bYShsLHZvaWQgMCxvLnZhbHVlKV07dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGV4cHIgdHlwZSIpfX19aShuLCJjb21waWxlIil9ZnVuY3Rpb24gR1VyKHQsZSl7cmV0dXJuIGUtdH1mdW5jdGlvbiBZVXIodCxlKXtsZXQgcj1bXTtyZXR1cm4gYShlKSxyLnNvcnQoR1VyKTtmdW5jdGlvbiBhKHMpe2xldCBuPXRbc107aWYobi5sZW5ndGg9PTEmJiFuWzBdLnRlcm0pcmV0dXJuIGEoblswXS50byk7ci5wdXNoKHMpO2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtsZXR7dGVybTpsLHRvOmN9PW5bb107IWwmJnIuaW5kZXhPZihjKT09LTEmJmEoYyl9fWkoYSwic2NhbiIpfWZ1bmN0aW9uIHlJYSh0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiByKFlVcih0LDApKTtmdW5jdGlvbiByKGEpe2xldCBzPVtdO2EuZm9yRWFjaChvPT57dFtvXS5mb3JFYWNoKCh7dGVybTpsLHRvOmN9KT0+e2lmKCFsKXJldHVybjtsZXQgZDtmb3IobGV0IGY9MDtmPHMubGVuZ3RoO2YrKylzW2ZdWzBdPT1sJiYoZD1zW2ZdWzFdKTtZVXIodCxjKS5mb3JFYWNoKGY9PntkfHxzLnB1c2goW2wsZD1bXV0pLGQuaW5kZXhPZihmKT09LTEmJmQucHVzaChmKX0pfSl9KTtsZXQgbj1lW2Euam9pbigiLCIpXT1uZXcgSHAoYS5pbmRleE9mKHQubGVuZ3RoLTEpPi0xKTtmb3IobGV0IG89MDtvPHMubGVuZ3RoO28rKyl7bGV0IGw9c1tvXVsxXS5zb3J0KEdVcik7bi5uZXh0LnB1c2goe3R5cGU6c1tvXVswXSxuZXh0OmVbbC5qb2luKCIsIildfHxyKGwpfSl9cmV0dXJuIG59fWZ1bmN0aW9uIHdJYSh0LGUpe2ZvcihsZXQgcj0wLGE9W3RdO3I8YS5sZW5ndGg7cisrKXtsZXQgcz1hW3JdLG49IXMudmFsaWRFbmQsbz1bXTtmb3IobGV0IGw9MDtsPHMubmV4dC5sZW5ndGg7bCsrKXtsZXR7dHlwZTpjLG5leHQ6ZH09cy5uZXh0W2xdO28ucHVzaChjLm5hbWUpLG4mJiEoYy5pc1RleHR8fGMuaGFzUmVxdWlyZWRBdHRycygpKSYmKG49ITEpLGEuaW5kZXhPZihkKT09LTEmJmEucHVzaChkKX1uJiZlLmVycigiT25seSBub24tZ2VuZXJhdGFibGUgbm9kZXMgKCIrby5qb2luKCIsICIpKyIpIGluIGEgcmVxdWlyZWQgcG9zaXRpb24gKHNlZSBodHRwczovL3Byb3NlbWlycm9yLm5ldC9kb2NzL2d1aWRlLyNnZW5lcmF0YWJsZSkiKX19ZnVuY3Rpb24gS1VyKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCByIGluIHQpe2xldCBhPXRbcl07aWYoIWEuaGFzRGVmYXVsdClyZXR1cm4gbnVsbDtlW3JdPWEuZGVmYXVsdH1yZXR1cm4gZX1mdW5jdGlvbiBaVXIodCxlKXtsZXQgcj1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgYSBpbiB0KXtsZXQgcz1lJiZlW2FdO2lmKHM9PT12b2lkIDApe2xldCBuPXRbYV07aWYobi5oYXNEZWZhdWx0KXM9bi5kZWZhdWx0O2Vsc2UgdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIHZhbHVlIHN1cHBsaWVkIGZvciBhdHRyaWJ1dGUgIithKX1yW2FdPXN9cmV0dXJuIHJ9ZnVuY3Rpb24gUVVyKHQsZSxyLGEpe2ZvcihsZXQgcyBpbiBlKWlmKCEocyBpbiB0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVW5zdXBwb3J0ZWQgYXR0cmlidXRlICR7c30gZm9yICR7cn0gb2YgdHlwZSAke3N9YCk7Zm9yKGxldCBzIGluIHQpe2xldCBuPXRbc107bi52YWxpZGF0ZSYmbi52YWxpZGF0ZShlW3NdKX19ZnVuY3Rpb24gWFVyKHQsZSl7bGV0IHI9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihlKWZvcihsZXQgYSBpbiBlKXJbYV09bmV3IHBtdCh0LGEsZVthXSk7cmV0dXJuIHJ9ZnVuY3Rpb24ga0lhKHQsZSxyKXtsZXQgYT1yLnNwbGl0KCJ8Iik7cmV0dXJuIHM9PntsZXQgbj1zPT09bnVsbD8ibnVsbCI6dHlwZW9mIHM7aWYoYS5pbmRleE9mKG4pPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEV4cGVjdGVkIHZhbHVlIG9mIHR5cGUgJHthfSBmb3IgYXR0cmlidXRlICR7ZX0gb24gdHlwZSAke3R9LCBnb3QgJHtufWApfX1mdW5jdGlvbiBKVXIodCxlKXtsZXQgcj1bXTtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl7bGV0IHM9ZVthXSxuPXQubWFya3Nbc10sbz1uO2lmKG4pci5wdXNoKG4pO2Vsc2UgZm9yKGxldCBsIGluIHQubWFya3Mpe2xldCBjPXQubWFya3NbbF07KHM9PSJfInx8Yy5zcGVjLmdyb3VwJiZjLnNwZWMuZ3JvdXAuc3BsaXQoIiAiKS5pbmRleE9mKHMpPi0xKSYmci5wdXNoKG89Yyl9aWYoIW8pdGhyb3cgbmV3IFN5bnRheEVycm9yKCJVbmtub3duIG1hcmsgdHlwZTogJyIrZVthXSsiJyIpfXJldHVybiByfWZ1bmN0aW9uIFNJYSh0KXtyZXR1cm4gdC50YWchPW51bGx9ZnVuY3Rpb24gTUlhKHQpe3JldHVybiB0LnN0eWxlIT1udWxsfWZ1bmN0aW9uIHJXcih0LGUscil7cmV0dXJuIGUhPW51bGw/KGU/enRlOjApfChlPT09ImZ1bGwiP2ZtdDowKTp0JiZ0LndoaXRlc3BhY2U9PSJwcmUiP3p0ZXxmbXQ6ciZ+X3RlfWZ1bmN0aW9uIHpJYSh0KXtmb3IobGV0IGU9dC5maXJzdENoaWxkLHI9bnVsbDtlO2U9ZS5uZXh0U2libGluZyl7bGV0IGE9ZS5ub2RlVHlwZT09MT9lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk6bnVsbDthJiZ0V3IuaGFzT3duUHJvcGVydHkoYSkmJnI/KHIuYXBwZW5kQ2hpbGQoZSksZT1yKTphPT0ibGkiP3I9ZTphJiYocj1udWxsKX19ZnVuY3Rpb24gX0lhKHQsZSl7cmV0dXJuKHQubWF0Y2hlc3x8dC5tc01hdGNoZXNTZWxlY3Rvcnx8dC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHQubW96TWF0Y2hlc1NlbGVjdG9yKS5jYWxsKHQsZSl9ZnVuY3Rpb24gYVdyKHQpe2xldCBlPXt9O2ZvcihsZXQgciBpbiB0KWVbcl09dFtyXTtyZXR1cm4gZX1mdW5jdGlvbiBpV3IodCxlKXtsZXQgcj1lLnNjaGVtYS5ub2Rlcztmb3IobGV0IGEgaW4gcil7bGV0IHM9clthXTtpZighcy5hbGxvd3NNYXJrVHlwZSh0KSljb250aW51ZTtsZXQgbj1bXSxvPWkobD0+e24ucHVzaChsKTtmb3IobGV0IGM9MDtjPGwuZWRnZUNvdW50O2MrKyl7bGV0e3R5cGU6ZCxuZXh0OmZ9PWwuZWRnZShjKTtpZihkPT1lfHxuLmluZGV4T2YoZik8MCYmbyhmKSlyZXR1cm4hMH19LCJzY2FuIik7aWYobyhzLmNvbnRlbnRNYXRjaCkpcmV0dXJuITB9fWZ1bmN0aW9uIHNXcih0KXtsZXQgZT17fTtmb3IobGV0IHIgaW4gdCl7bGV0IGE9dFtyXS5zcGVjLnRvRE9NO2EmJihlW3JdPWEpfXJldHVybiBlfWZ1bmN0aW9uIGJmZSh0KXtyZXR1cm4gdC5kb2N1bWVudHx8d2luZG93LmRvY3VtZW50fWZ1bmN0aW9uIFRJYSh0KXtsZXQgZT1uV3IuZ2V0KHQpO3JldHVybiBlPT09dm9pZCAwJiZuV3Iuc2V0KHQsZT1MSWEodCkpLGV9ZnVuY3Rpb24gTElhKHQpe2xldCBlPW51bGw7ZnVuY3Rpb24gcihhKXtpZihhJiZ0eXBlb2YgYT09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShhKSlpZih0eXBlb2YgYVswXT09InN0cmluZyIpZXx8KGU9W10pLGUucHVzaChhKTtlbHNlIGZvcihsZXQgcz0wO3M8YS5sZW5ndGg7cysrKXIoYVtzXSk7ZWxzZSBmb3IobGV0IHMgaW4gYSlyKGFbc10pfXJldHVybiBpKHIsInNjYW4iKSxyKHQpLGV9ZnVuY3Rpb24geGZlKHQsZSxyLGEpe2lmKGUubm9kZVR5cGU9PTEpcmV0dXJue2RvbTplfTtpZihlLmRvbSYmZS5kb20ubm9kZVR5cGU9PTEpcmV0dXJuIGU7bGV0IHM9ZVswXSxuO2lmKHR5cGVvZiBzIT0ic3RyaW5nIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBhcnJheSBwYXNzZWQgdG8gcmVuZGVyU3BlYyIpO2lmKGEmJihuPVRJYShhKSkmJm4uaW5kZXhPZihlKT4tMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVXNpbmcgYW4gYXJyYXkgZnJvbSBhbiBhdHRyaWJ1dGUgb2JqZWN0IGFzIGEgRE9NIHNwZWMuIFRoaXMgbWF5IGJlIGFuIGF0dGVtcHRlZCBjcm9zcyBzaXRlIHNjcmlwdGluZyBhdHRhY2suIik7bGV0IG89cy5pbmRleE9mKCIgIik7bz4wJiYocj1zLnNsaWNlKDAsbykscz1zLnNsaWNlKG8rMSkpO2xldCBsLGM9cj90LmNyZWF0ZUVsZW1lbnROUyhyLHMpOnQuY3JlYXRlRWxlbWVudChzKSxkPWVbMV0sZj0xO2lmKGQmJnR5cGVvZiBkPT0ib2JqZWN0IiYmZC5ub2RlVHlwZT09bnVsbCYmIUFycmF5LmlzQXJyYXkoZCkpe2Y9Mjtmb3IobGV0IHAgaW4gZClpZihkW3BdIT1udWxsKXtsZXQgaD1wLmluZGV4T2YoIiAiKTtoPjA/Yy5zZXRBdHRyaWJ1dGVOUyhwLnNsaWNlKDAsaCkscC5zbGljZShoKzEpLGRbcF0pOnA9PSJzdHlsZSImJmMuc3R5bGU/Yy5zdHlsZS5jc3NUZXh0PWRbcF06Yy5zZXRBdHRyaWJ1dGUocCxkW3BdKX19Zm9yKGxldCBwPWY7cDxlLmxlbmd0aDtwKyspe2xldCBoPWVbcF07aWYoaD09PTApe2lmKHA8ZS5sZW5ndGgtMXx8cD5mKXRocm93IG5ldyBSYW5nZUVycm9yKCJDb250ZW50IGhvbGUgbXVzdCBiZSB0aGUgb25seSBjaGlsZCBvZiBpdHMgcGFyZW50IG5vZGUiKTtyZXR1cm57ZG9tOmMsY29udGVudERPTTpjfX1lbHNlIGlmKHR5cGVvZiBoPT0ic3RyaW5nIiljLmFwcGVuZENoaWxkKHQuY3JlYXRlVGV4dE5vZGUoaCkpO2Vsc2V7bGV0e2RvbTptLGNvbnRlbnRET006dn09eGZlKHQsaCxyLGEpO2lmKGMuYXBwZW5kQ2hpbGQobSksdil7aWYobCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTXVsdGlwbGUgY29udGVudCBob2xlcyIpO2w9dn19fXJldHVybntkb206Yyxjb250ZW50RE9NOmx9fXZhciBKZSxvbXQsaGEscXAsbXQsTXRlLGNtdCxwSWEsVlVyLFZwLGZJYSxxbyxkbXQsSHAsdW10LEN0ZSxwbXQsV3ksR3kseWMsZVdyLENJYSx0V3IsenRlLGZtdCxfdGUsVXksZ2ZlLG9kLG5XcixqcD11KCgpPT57UFVyKCk7aShOVXIsImZpbmREaWZmU3RhcnQiKTtpKE9VciwiZmluZERpZmZFbmQiKTtKZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkZyYWdtZW50Iil9Y29uc3RydWN0b3IoZSxyKXtpZih0aGlzLmNvbnRlbnQ9ZSx0aGlzLnNpemU9cnx8MCxyPT1udWxsKWZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXRoaXMuc2l6ZSs9ZVthXS5ub2RlU2l6ZX1ub2Rlc0JldHdlZW4oZSxyLGEscz0wLG4pe2ZvcihsZXQgbz0wLGw9MDtsPHI7bysrKXtsZXQgYz10aGlzLmNvbnRlbnRbb10sZD1sK2Mubm9kZVNpemU7aWYoZD5lJiZhKGMscytsLG58fG51bGwsbykhPT0hMSYmYy5jb250ZW50LnNpemUpe2xldCBmPWwrMTtjLm5vZGVzQmV0d2VlbihNYXRoLm1heCgwLGUtZiksTWF0aC5taW4oYy5jb250ZW50LnNpemUsci1mKSxhLHMrZil9bD1kfX1kZXNjZW5kYW50cyhlKXt0aGlzLm5vZGVzQmV0d2VlbigwLHRoaXMuc2l6ZSxlKX10ZXh0QmV0d2VlbihlLHIsYSxzKXtsZXQgbj0iIixvPSEwO3JldHVybiB0aGlzLm5vZGVzQmV0d2VlbihlLHIsKGwsYyk9PntsZXQgZD1sLmlzVGV4dD9sLnRleHQuc2xpY2UoTWF0aC5tYXgoZSxjKS1jLHItYyk6bC5pc0xlYWY/cz90eXBlb2Ygcz09ImZ1bmN0aW9uIj9zKGwpOnM6bC50eXBlLnNwZWMubGVhZlRleHQ/bC50eXBlLnNwZWMubGVhZlRleHQobCk6IiI6IiI7bC5pc0Jsb2NrJiYobC5pc0xlYWYmJmR8fGwuaXNUZXh0YmxvY2spJiZhJiYobz9vPSExOm4rPWEpLG4rPWR9LDApLG59YXBwZW5kKGUpe2lmKCFlLnNpemUpcmV0dXJuIHRoaXM7aWYoIXRoaXMuc2l6ZSlyZXR1cm4gZTtsZXQgcj10aGlzLmxhc3RDaGlsZCxhPWUuZmlyc3RDaGlsZCxzPXRoaXMuY29udGVudC5zbGljZSgpLG49MDtmb3Ioci5pc1RleHQmJnIuc2FtZU1hcmt1cChhKSYmKHNbcy5sZW5ndGgtMV09ci53aXRoVGV4dChyLnRleHQrYS50ZXh0KSxuPTEpO248ZS5jb250ZW50Lmxlbmd0aDtuKyspcy5wdXNoKGUuY29udGVudFtuXSk7cmV0dXJuIG5ldyB0KHMsdGhpcy5zaXplK2Uuc2l6ZSl9Y3V0KGUscj10aGlzLnNpemUpe2lmKGU9PTAmJnI9PXRoaXMuc2l6ZSlyZXR1cm4gdGhpcztsZXQgYT1bXSxzPTA7aWYocj5lKWZvcihsZXQgbj0wLG89MDtvPHI7bisrKXtsZXQgbD10aGlzLmNvbnRlbnRbbl0sYz1vK2wubm9kZVNpemU7Yz5lJiYoKG88ZXx8Yz5yKSYmKGwuaXNUZXh0P2w9bC5jdXQoTWF0aC5tYXgoMCxlLW8pLE1hdGgubWluKGwudGV4dC5sZW5ndGgsci1vKSk6bD1sLmN1dChNYXRoLm1heCgwLGUtby0xKSxNYXRoLm1pbihsLmNvbnRlbnQuc2l6ZSxyLW8tMSkpKSxhLnB1c2gobCkscys9bC5ub2RlU2l6ZSksbz1jfXJldHVybiBuZXcgdChhLHMpfWN1dEJ5SW5kZXgoZSxyKXtyZXR1cm4gZT09cj90LmVtcHR5OmU9PTAmJnI9PXRoaXMuY29udGVudC5sZW5ndGg/dGhpczpuZXcgdCh0aGlzLmNvbnRlbnQuc2xpY2UoZSxyKSl9cmVwbGFjZUNoaWxkKGUscil7bGV0IGE9dGhpcy5jb250ZW50W2VdO2lmKGE9PXIpcmV0dXJuIHRoaXM7bGV0IHM9dGhpcy5jb250ZW50LnNsaWNlKCksbj10aGlzLnNpemUrci5ub2RlU2l6ZS1hLm5vZGVTaXplO3JldHVybiBzW2VdPXIsbmV3IHQocyxuKX1hZGRUb1N0YXJ0KGUpe3JldHVybiBuZXcgdChbZV0uY29uY2F0KHRoaXMuY29udGVudCksdGhpcy5zaXplK2Uubm9kZVNpemUpfWFkZFRvRW5kKGUpe3JldHVybiBuZXcgdCh0aGlzLmNvbnRlbnQuY29uY2F0KGUpLHRoaXMuc2l6ZStlLm5vZGVTaXplKX1lcShlKXtpZih0aGlzLmNvbnRlbnQubGVuZ3RoIT1lLmNvbnRlbnQubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgcj0wO3I8dGhpcy5jb250ZW50Lmxlbmd0aDtyKyspaWYoIXRoaXMuY29udGVudFtyXS5lcShlLmNvbnRlbnRbcl0pKXJldHVybiExO3JldHVybiEwfWdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50WzBdOm51bGx9Z2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoP3RoaXMuY29udGVudFt0aGlzLmNvbnRlbnQubGVuZ3RoLTFdOm51bGx9Z2V0IGNoaWxkQ291bnQoKXtyZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aH1jaGlsZChlKXtsZXQgcj10aGlzLmNvbnRlbnRbZV07aWYoIXIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4ICIrZSsiIG91dCBvZiByYW5nZSBmb3IgIit0aGlzKTtyZXR1cm4gcn1tYXliZUNoaWxkKGUpe3JldHVybiB0aGlzLmNvbnRlbnRbZV18fG51bGx9Zm9yRWFjaChlKXtmb3IobGV0IHI9MCxhPTA7cjx0aGlzLmNvbnRlbnQubGVuZ3RoO3IrKyl7bGV0IHM9dGhpcy5jb250ZW50W3JdO2UocyxhLHIpLGErPXMubm9kZVNpemV9fWZpbmREaWZmU3RhcnQoZSxyPTApe3JldHVybiBOVXIodGhpcyxlLHIpfWZpbmREaWZmRW5kKGUscj10aGlzLnNpemUsYT1lLnNpemUpe3JldHVybiBPVXIodGhpcyxlLHIsYSl9ZmluZEluZGV4KGUpe2lmKGU9PTApcmV0dXJuIGZmZSgwLGUpO2lmKGU9PXRoaXMuc2l6ZSlyZXR1cm4gZmZlKHRoaXMuY29udGVudC5sZW5ndGgsZSk7aWYoZT50aGlzLnNpemV8fGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgUG9zaXRpb24gJHtlfSBvdXRzaWRlIG9mIGZyYWdtZW50ICgke3RoaXN9KWApO2ZvcihsZXQgcj0wLGE9MDs7cisrKXtsZXQgcz10aGlzLmNoaWxkKHIpLG49YStzLm5vZGVTaXplO2lmKG4+PWUpcmV0dXJuIG49PWU/ZmZlKHIrMSxuKTpmZmUocixhKTthPW59fXRvU3RyaW5nKCl7cmV0dXJuIjwiK3RoaXMudG9TdHJpbmdJbm5lcigpKyI+In10b1N0cmluZ0lubmVyKCl7cmV0dXJuIHRoaXMuY29udGVudC5qb2luKCIsICIpfXRvSlNPTigpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoP3RoaXMuY29udGVudC5tYXAoZT0+ZS50b0pTT04oKSk6bnVsbH1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZighcilyZXR1cm4gdC5lbXB0eTtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgRnJhZ21lbnQuZnJvbUpTT04iKTtyZXR1cm4gdC5mcm9tQXJyYXkoci5tYXAoZS5ub2RlRnJvbUpTT04pKX1zdGF0aWMgZnJvbUFycmF5KGUpe2lmKCFlLmxlbmd0aClyZXR1cm4gdC5lbXB0eTtsZXQgcixhPTA7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2xldCBuPWVbc107YSs9bi5ub2RlU2l6ZSxzJiZuLmlzVGV4dCYmZVtzLTFdLnNhbWVNYXJrdXAobik/KHJ8fChyPWUuc2xpY2UoMCxzKSkscltyLmxlbmd0aC0xXT1uLndpdGhUZXh0KHJbci5sZW5ndGgtMV0udGV4dCtuLnRleHQpKTpyJiZyLnB1c2gobil9cmV0dXJuIG5ldyB0KHJ8fGUsYSl9c3RhdGljIGZyb20oZSl7aWYoIWUpcmV0dXJuIHQuZW1wdHk7aWYoZSBpbnN0YW5jZW9mIHQpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdGhpcy5mcm9tQXJyYXkoZSk7aWYoZS5hdHRycylyZXR1cm4gbmV3IHQoW2VdLGUubm9kZVNpemUpO3Rocm93IG5ldyBSYW5nZUVycm9yKCJDYW4gbm90IGNvbnZlcnQgIitlKyIgdG8gYSBGcmFnbWVudCIrKGUubm9kZXNCZXR3ZWVuPyIgKGxvb2tzIGxpa2UgbXVsdGlwbGUgdmVyc2lvbnMgb2YgcHJvc2VtaXJyb3ItbW9kZWwgd2VyZSBsb2FkZWQpIjoiIikpfX07SmUuZW1wdHk9bmV3IEplKFtdLDApO29tdD17aW5kZXg6MCxvZmZzZXQ6MH07aShmZmUsInJldEluZGV4Iik7aShoZmUsImNvbXBhcmVEZWVwIik7aGE9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJNYXJrIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXJ9YWRkVG9TZXQoZSl7bGV0IHIsYT0hMTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKyl7bGV0IG49ZVtzXTtpZih0aGlzLmVxKG4pKXJldHVybiBlO2lmKHRoaXMudHlwZS5leGNsdWRlcyhuLnR5cGUpKXJ8fChyPWUuc2xpY2UoMCxzKSk7ZWxzZXtpZihuLnR5cGUuZXhjbHVkZXModGhpcy50eXBlKSlyZXR1cm4gZTshYSYmbi50eXBlLnJhbms+dGhpcy50eXBlLnJhbmsmJihyfHwocj1lLnNsaWNlKDAscykpLHIucHVzaCh0aGlzKSxhPSEwKSxyJiZyLnB1c2gobil9fXJldHVybiByfHwocj1lLnNsaWNlKCkpLGF8fHIucHVzaCh0aGlzKSxyfXJlbW92ZUZyb21TZXQoZSl7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYodGhpcy5lcShlW3JdKSlyZXR1cm4gZS5zbGljZSgwLHIpLmNvbmNhdChlLnNsaWNlKHIrMSkpO3JldHVybiBlfWlzSW5TZXQoZSl7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYodGhpcy5lcShlW3JdKSlyZXR1cm4hMDtyZXR1cm4hMX1lcShlKXtyZXR1cm4gdGhpcz09ZXx8dGhpcy50eXBlPT1lLnR5cGUmJmhmZSh0aGlzLmF0dHJzLGUuYXR0cnMpfXRvSlNPTigpe2xldCBlPXt0eXBlOnRoaXMudHlwZS5uYW1lfTtmb3IobGV0IHIgaW4gdGhpcy5hdHRycyl7ZS5hdHRycz10aGlzLmF0dHJzO2JyZWFrfXJldHVybiBlfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKCFyKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBNYXJrLmZyb21KU09OIik7bGV0IGE9ZS5tYXJrc1tyLnR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGVyZSBpcyBubyBtYXJrIHR5cGUgJHtyLnR5cGV9IGluIHRoaXMgc2NoZW1hYCk7bGV0IHM9YS5jcmVhdGUoci5hdHRycyk7cmV0dXJuIGEuY2hlY2tBdHRycyhzLmF0dHJzKSxzfXN0YXRpYyBzYW1lU2V0KGUscil7aWYoZT09cilyZXR1cm4hMDtpZihlLmxlbmd0aCE9ci5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspaWYoIWVbYV0uZXEoclthXSkpcmV0dXJuITE7cmV0dXJuITB9c3RhdGljIHNldEZyb20oZSl7aWYoIWV8fEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPT0wKXJldHVybiB0Lm5vbmU7aWYoZSBpbnN0YW5jZW9mIHQpcmV0dXJuW2VdO2xldCByPWUuc2xpY2UoKTtyZXR1cm4gci5zb3J0KChhLHMpPT5hLnR5cGUucmFuay1zLnR5cGUucmFuaykscn19O2hhLm5vbmU9W107cXA9Y2xhc3MgZXh0ZW5kcyBFcnJvcntzdGF0aWN7aSh0aGlzLCJSZXBsYWNlRXJyb3IiKX19LG10PWNsYXNzIHR7c3RhdGlje2kodGhpcywiU2xpY2UiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy5jb250ZW50PWUsdGhpcy5vcGVuU3RhcnQ9cix0aGlzLm9wZW5FbmQ9YX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLmNvbnRlbnQuc2l6ZS10aGlzLm9wZW5TdGFydC10aGlzLm9wZW5FbmR9aW5zZXJ0QXQoZSxyKXtsZXQgYT1GVXIodGhpcy5jb250ZW50LGUrdGhpcy5vcGVuU3RhcnQscix0aGlzLm9wZW5TdGFydCsxLHRoaXMub3BlbkVuZCsxKTtyZXR1cm4gYSYmbmV3IHQoYSx0aGlzLm9wZW5TdGFydCx0aGlzLm9wZW5FbmQpfXJlbW92ZUJldHdlZW4oZSxyKXtyZXR1cm4gbmV3IHQoUlVyKHRoaXMuY29udGVudCxlK3RoaXMub3BlblN0YXJ0LHIrdGhpcy5vcGVuU3RhcnQpLHRoaXMub3BlblN0YXJ0LHRoaXMub3BlbkVuZCl9ZXEoZSl7cmV0dXJuIHRoaXMuY29udGVudC5lcShlLmNvbnRlbnQpJiZ0aGlzLm9wZW5TdGFydD09ZS5vcGVuU3RhcnQmJnRoaXMub3BlbkVuZD09ZS5vcGVuRW5kfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29udGVudCsiKCIrdGhpcy5vcGVuU3RhcnQrIiwiK3RoaXMub3BlbkVuZCsiKSJ9dG9KU09OKCl7aWYoIXRoaXMuY29udGVudC5zaXplKXJldHVybiBudWxsO2xldCBlPXtjb250ZW50OnRoaXMuY29udGVudC50b0pTT04oKX07cmV0dXJuIHRoaXMub3BlblN0YXJ0PjAmJihlLm9wZW5TdGFydD10aGlzLm9wZW5TdGFydCksdGhpcy5vcGVuRW5kPjAmJihlLm9wZW5FbmQ9dGhpcy5vcGVuRW5kKSxlfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKCFyKXJldHVybiB0LmVtcHR5O2xldCBhPXIub3BlblN0YXJ0fHwwLHM9ci5vcGVuRW5kfHwwO2lmKHR5cGVvZiBhIT0ibnVtYmVyInx8dHlwZW9mIHMhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTbGljZS5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChKZS5mcm9tSlNPTihlLHIuY29udGVudCksYSxzKX1zdGF0aWMgbWF4T3BlbihlLHI9ITApe2xldCBhPTAscz0wO2ZvcihsZXQgbj1lLmZpcnN0Q2hpbGQ7biYmIW4uaXNMZWFmJiYocnx8IW4udHlwZS5zcGVjLmlzb2xhdGluZyk7bj1uLmZpcnN0Q2hpbGQpYSsrO2ZvcihsZXQgbj1lLmxhc3RDaGlsZDtuJiYhbi5pc0xlYWYmJihyfHwhbi50eXBlLnNwZWMuaXNvbGF0aW5nKTtuPW4ubGFzdENoaWxkKXMrKztyZXR1cm4gbmV3IHQoZSxhLHMpfX07bXQuZW1wdHk9bmV3IG10KEplLmVtcHR5LDAsMCk7aShSVXIsInJlbW92ZVJhbmdlIik7aShGVXIsImluc2VydEludG8iKTtpKGRJYSwicmVwbGFjZSIpO2koQlVyLCJyZXBsYWNlT3V0ZXIiKTtpKEhVciwiY2hlY2tKb2luIik7aShsbXQsImpvaW5hYmxlIik7aShUOSwiYWRkTm9kZSIpO2koU3RlLCJhZGRSYW5nZSIpO2koTDksImNsb3NlIik7aShxVXIsInJlcGxhY2VUaHJlZVdheSIpO2kobWZlLCJyZXBsYWNlVHdvV2F5Iik7aSh1SWEsInByZXBhcmVTbGljZUZvclJlcGxhY2UiKTtNdGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJSZXNvbHZlZFBvcyIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLnBvcz1lLHRoaXMucGF0aD1yLHRoaXMucGFyZW50T2Zmc2V0PWEsdGhpcy5kZXB0aD1yLmxlbmd0aC8zLTF9cmVzb2x2ZURlcHRoKGUpe3JldHVybiBlPT1udWxsP3RoaXMuZGVwdGg6ZTwwP3RoaXMuZGVwdGgrZTplfWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuZGVwdGgpfWdldCBkb2MoKXtyZXR1cm4gdGhpcy5ub2RlKDApfW5vZGUoZSl7cmV0dXJuIHRoaXMucGF0aFt0aGlzLnJlc29sdmVEZXB0aChlKSozXX1pbmRleChlKXtyZXR1cm4gdGhpcy5wYXRoW3RoaXMucmVzb2x2ZURlcHRoKGUpKjMrMV19aW5kZXhBZnRlcihlKXtyZXR1cm4gZT10aGlzLnJlc29sdmVEZXB0aChlKSx0aGlzLmluZGV4KGUpKyhlPT10aGlzLmRlcHRoJiYhdGhpcy50ZXh0T2Zmc2V0PzA6MSl9c3RhcnQoZSl7cmV0dXJuIGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksZT09MD8wOnRoaXMucGF0aFtlKjMtMV0rMX1lbmQoZSl7cmV0dXJuIGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksdGhpcy5zdGFydChlKSt0aGlzLm5vZGUoZSkuY29udGVudC5zaXplfWJlZm9yZShlKXtpZihlPXRoaXMucmVzb2x2ZURlcHRoKGUpLCFlKXRocm93IG5ldyBSYW5nZUVycm9yKCJUaGVyZSBpcyBubyBwb3NpdGlvbiBiZWZvcmUgdGhlIHRvcC1sZXZlbCBub2RlIik7cmV0dXJuIGU9PXRoaXMuZGVwdGgrMT90aGlzLnBvczp0aGlzLnBhdGhbZSozLTFdfWFmdGVyKGUpe2lmKGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksIWUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRoZXJlIGlzIG5vIHBvc2l0aW9uIGFmdGVyIHRoZSB0b3AtbGV2ZWwgbm9kZSIpO3JldHVybiBlPT10aGlzLmRlcHRoKzE/dGhpcy5wb3M6dGhpcy5wYXRoW2UqMy0xXSt0aGlzLnBhdGhbZSozXS5ub2RlU2l6ZX1nZXQgdGV4dE9mZnNldCgpe3JldHVybiB0aGlzLnBvcy10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXX1nZXQgbm9kZUFmdGVyKCl7bGV0IGU9dGhpcy5wYXJlbnQscj10aGlzLmluZGV4KHRoaXMuZGVwdGgpO2lmKHI9PWUuY2hpbGRDb3VudClyZXR1cm4gbnVsbDtsZXQgYT10aGlzLnBvcy10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXSxzPWUuY2hpbGQocik7cmV0dXJuIGE/ZS5jaGlsZChyKS5jdXQoYSk6c31nZXQgbm9kZUJlZm9yZSgpe2xldCBlPXRoaXMuaW5kZXgodGhpcy5kZXB0aCkscj10aGlzLnBvcy10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXTtyZXR1cm4gcj90aGlzLnBhcmVudC5jaGlsZChlKS5jdXQoMCxyKTplPT0wP251bGw6dGhpcy5wYXJlbnQuY2hpbGQoZS0xKX1wb3NBdEluZGV4KGUscil7cj10aGlzLnJlc29sdmVEZXB0aChyKTtsZXQgYT10aGlzLnBhdGhbciozXSxzPXI9PTA/MDp0aGlzLnBhdGhbciozLTFdKzE7Zm9yKGxldCBuPTA7bjxlO24rKylzKz1hLmNoaWxkKG4pLm5vZGVTaXplO3JldHVybiBzfW1hcmtzKCl7bGV0IGU9dGhpcy5wYXJlbnQscj10aGlzLmluZGV4KCk7aWYoZS5jb250ZW50LnNpemU9PTApcmV0dXJuIGhhLm5vbmU7aWYodGhpcy50ZXh0T2Zmc2V0KXJldHVybiBlLmNoaWxkKHIpLm1hcmtzO2xldCBhPWUubWF5YmVDaGlsZChyLTEpLHM9ZS5tYXliZUNoaWxkKHIpO2lmKCFhKXtsZXQgbD1hO2E9cyxzPWx9bGV0IG49YS5tYXJrcztmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyluW29dLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSYmKCFzfHwhbltvXS5pc0luU2V0KHMubWFya3MpKSYmKG49bltvLS1dLnJlbW92ZUZyb21TZXQobikpO3JldHVybiBufW1hcmtzQWNyb3NzKGUpe2xldCByPXRoaXMucGFyZW50Lm1heWJlQ2hpbGQodGhpcy5pbmRleCgpKTtpZighcnx8IXIuaXNJbmxpbmUpcmV0dXJuIG51bGw7bGV0IGE9ci5tYXJrcyxzPWUucGFyZW50Lm1heWJlQ2hpbGQoZS5pbmRleCgpKTtmb3IodmFyIG49MDtuPGEubGVuZ3RoO24rKylhW25dLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSYmKCFzfHwhYVtuXS5pc0luU2V0KHMubWFya3MpKSYmKGE9YVtuLS1dLnJlbW92ZUZyb21TZXQoYSkpO3JldHVybiBhfXNoYXJlZERlcHRoKGUpe2ZvcihsZXQgcj10aGlzLmRlcHRoO3I+MDtyLS0paWYodGhpcy5zdGFydChyKTw9ZSYmdGhpcy5lbmQocik+PWUpcmV0dXJuIHI7cmV0dXJuIDB9YmxvY2tSYW5nZShlPXRoaXMscil7aWYoZS5wb3M8dGhpcy5wb3MpcmV0dXJuIGUuYmxvY2tSYW5nZSh0aGlzKTtmb3IobGV0IGE9dGhpcy5kZXB0aC0odGhpcy5wYXJlbnQuaW5saW5lQ29udGVudHx8dGhpcy5wb3M9PWUucG9zPzE6MCk7YT49MDthLS0paWYoZS5wb3M8PXRoaXMuZW5kKGEpJiYoIXJ8fHIodGhpcy5ub2RlKGEpKSkpcmV0dXJuIG5ldyBWcCh0aGlzLGUsYSk7cmV0dXJuIG51bGx9c2FtZVBhcmVudChlKXtyZXR1cm4gdGhpcy5wb3MtdGhpcy5wYXJlbnRPZmZzZXQ9PWUucG9zLWUucGFyZW50T2Zmc2V0fW1heChlKXtyZXR1cm4gZS5wb3M+dGhpcy5wb3M/ZTp0aGlzfW1pbihlKXtyZXR1cm4gZS5wb3M8dGhpcy5wb3M/ZTp0aGlzfXRvU3RyaW5nKCl7bGV0IGU9IiI7Zm9yKGxldCByPTE7cjw9dGhpcy5kZXB0aDtyKyspZSs9KGU/Ii8iOiIiKSt0aGlzLm5vZGUocikudHlwZS5uYW1lKyJfIit0aGlzLmluZGV4KHItMSk7cmV0dXJuIGUrIjoiK3RoaXMucGFyZW50T2Zmc2V0fXN0YXRpYyByZXNvbHZlKGUscil7aWYoIShyPj0wJiZyPD1lLmNvbnRlbnQuc2l6ZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlBvc2l0aW9uICIrcisiIG91dCBvZiByYW5nZSIpO2xldCBhPVtdLHM9MCxuPXI7Zm9yKGxldCBvPWU7Oyl7bGV0e2luZGV4Omwsb2Zmc2V0OmN9PW8uY29udGVudC5maW5kSW5kZXgobiksZD1uLWM7aWYoYS5wdXNoKG8sbCxzK2MpLCFkfHwobz1vLmNoaWxkKGwpLG8uaXNUZXh0KSlicmVhaztuPWQtMSxzKz1jKzF9cmV0dXJuIG5ldyB0KHIsYSxuKX1zdGF0aWMgcmVzb2x2ZUNhY2hlZChlLHIpe2xldCBhPVZVci5nZXQoZSk7aWYoYSlmb3IobGV0IG49MDtuPGEuZWx0cy5sZW5ndGg7bisrKXtsZXQgbz1hLmVsdHNbbl07aWYoby5wb3M9PXIpcmV0dXJuIG99ZWxzZSBWVXIuc2V0KGUsYT1uZXcgY210KTtsZXQgcz1hLmVsdHNbYS5pXT10LnJlc29sdmUoZSxyKTtyZXR1cm4gYS5pPShhLmkrMSklcElhLHN9fSxjbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiUmVzb2x2ZUNhY2hlIil9Y29uc3RydWN0b3IoKXt0aGlzLmVsdHM9W10sdGhpcy5pPTB9fSxwSWE9MTIsVlVyPW5ldyBXZWFrTWFwLFZwPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5vZGVSYW5nZSIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLiRmcm9tPWUsdGhpcy4kdG89cix0aGlzLmRlcHRoPWF9Z2V0IHN0YXJ0KCl7cmV0dXJuIHRoaXMuJGZyb20uYmVmb3JlKHRoaXMuZGVwdGgrMSl9Z2V0IGVuZCgpe3JldHVybiB0aGlzLiR0by5hZnRlcih0aGlzLmRlcHRoKzEpfWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy4kZnJvbS5ub2RlKHRoaXMuZGVwdGgpfWdldCBzdGFydEluZGV4KCl7cmV0dXJuIHRoaXMuJGZyb20uaW5kZXgodGhpcy5kZXB0aCl9Z2V0IGVuZEluZGV4KCl7cmV0dXJuIHRoaXMuJHRvLmluZGV4QWZ0ZXIodGhpcy5kZXB0aCl9fSxmSWE9T2JqZWN0LmNyZWF0ZShudWxsKSxxbz1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk5vZGUiKX1jb25zdHJ1Y3RvcihlLHIsYSxzPWhhLm5vbmUpe3RoaXMudHlwZT1lLHRoaXMuYXR0cnM9cix0aGlzLm1hcmtzPXMsdGhpcy5jb250ZW50PWF8fEplLmVtcHR5fWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLmNvbnRlbnQuY29udGVudH1nZXQgbm9kZVNpemUoKXtyZXR1cm4gdGhpcy5pc0xlYWY/MToyK3RoaXMuY29udGVudC5zaXplfWdldCBjaGlsZENvdW50KCl7cmV0dXJuIHRoaXMuY29udGVudC5jaGlsZENvdW50fWNoaWxkKGUpe3JldHVybiB0aGlzLmNvbnRlbnQuY2hpbGQoZSl9bWF5YmVDaGlsZChlKXtyZXR1cm4gdGhpcy5jb250ZW50Lm1heWJlQ2hpbGQoZSl9Zm9yRWFjaChlKXt0aGlzLmNvbnRlbnQuZm9yRWFjaChlKX1ub2Rlc0JldHdlZW4oZSxyLGEscz0wKXt0aGlzLmNvbnRlbnQubm9kZXNCZXR3ZWVuKGUscixhLHMsdGhpcyl9ZGVzY2VuZGFudHMoZSl7dGhpcy5ub2Rlc0JldHdlZW4oMCx0aGlzLmNvbnRlbnQuc2l6ZSxlKX1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5pc0xlYWYmJnRoaXMudHlwZS5zcGVjLmxlYWZUZXh0P3RoaXMudHlwZS5zcGVjLmxlYWZUZXh0KHRoaXMpOnRoaXMudGV4dEJldHdlZW4oMCx0aGlzLmNvbnRlbnQuc2l6ZSwiIil9dGV4dEJldHdlZW4oZSxyLGEscyl7cmV0dXJuIHRoaXMuY29udGVudC50ZXh0QmV0d2VlbihlLHIsYSxzKX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLmNvbnRlbnQuZmlyc3RDaGlsZH1nZXQgbGFzdENoaWxkKCl7cmV0dXJuIHRoaXMuY29udGVudC5sYXN0Q2hpbGR9ZXEoZSl7cmV0dXJuIHRoaXM9PWV8fHRoaXMuc2FtZU1hcmt1cChlKSYmdGhpcy5jb250ZW50LmVxKGUuY29udGVudCl9c2FtZU1hcmt1cChlKXtyZXR1cm4gdGhpcy5oYXNNYXJrdXAoZS50eXBlLGUuYXR0cnMsZS5tYXJrcyl9aGFzTWFya3VwKGUscixhKXtyZXR1cm4gdGhpcy50eXBlPT1lJiZoZmUodGhpcy5hdHRycyxyfHxlLmRlZmF1bHRBdHRyc3x8ZklhKSYmaGEuc2FtZVNldCh0aGlzLm1hcmtzLGF8fGhhLm5vbmUpfWNvcHkoZT1udWxsKXtyZXR1cm4gZT09dGhpcy5jb250ZW50P3RoaXM6bmV3IHQodGhpcy50eXBlLHRoaXMuYXR0cnMsZSx0aGlzLm1hcmtzKX1tYXJrKGUpe3JldHVybiBlPT10aGlzLm1hcmtzP3RoaXM6bmV3IHQodGhpcy50eXBlLHRoaXMuYXR0cnMsdGhpcy5jb250ZW50LGUpfWN1dChlLHI9dGhpcy5jb250ZW50LnNpemUpe3JldHVybiBlPT0wJiZyPT10aGlzLmNvbnRlbnQuc2l6ZT90aGlzOnRoaXMuY29weSh0aGlzLmNvbnRlbnQuY3V0KGUscikpfXNsaWNlKGUscj10aGlzLmNvbnRlbnQuc2l6ZSxhPSExKXtpZihlPT1yKXJldHVybiBtdC5lbXB0eTtsZXQgcz10aGlzLnJlc29sdmUoZSksbj10aGlzLnJlc29sdmUociksbz1hPzA6cy5zaGFyZWREZXB0aChyKSxsPXMuc3RhcnQobyksZD1zLm5vZGUobykuY29udGVudC5jdXQocy5wb3MtbCxuLnBvcy1sKTtyZXR1cm4gbmV3IG10KGQscy5kZXB0aC1vLG4uZGVwdGgtbyl9cmVwbGFjZShlLHIsYSl7cmV0dXJuIGRJYSh0aGlzLnJlc29sdmUoZSksdGhpcy5yZXNvbHZlKHIpLGEpfW5vZGVBdChlKXtmb3IobGV0IHI9dGhpczs7KXtsZXR7aW5kZXg6YSxvZmZzZXQ6c309ci5jb250ZW50LmZpbmRJbmRleChlKTtpZihyPXIubWF5YmVDaGlsZChhKSwhcilyZXR1cm4gbnVsbDtpZihzPT1lfHxyLmlzVGV4dClyZXR1cm4gcjtlLT1zKzF9fWNoaWxkQWZ0ZXIoZSl7bGV0e2luZGV4OnIsb2Zmc2V0OmF9PXRoaXMuY29udGVudC5maW5kSW5kZXgoZSk7cmV0dXJue25vZGU6dGhpcy5jb250ZW50Lm1heWJlQ2hpbGQociksaW5kZXg6cixvZmZzZXQ6YX19Y2hpbGRCZWZvcmUoZSl7aWYoZT09MClyZXR1cm57bm9kZTpudWxsLGluZGV4OjAsb2Zmc2V0OjB9O2xldHtpbmRleDpyLG9mZnNldDphfT10aGlzLmNvbnRlbnQuZmluZEluZGV4KGUpO2lmKGE8ZSlyZXR1cm57bm9kZTp0aGlzLmNvbnRlbnQuY2hpbGQociksaW5kZXg6cixvZmZzZXQ6YX07bGV0IHM9dGhpcy5jb250ZW50LmNoaWxkKHItMSk7cmV0dXJue25vZGU6cyxpbmRleDpyLTEsb2Zmc2V0OmEtcy5ub2RlU2l6ZX19cmVzb2x2ZShlKXtyZXR1cm4gTXRlLnJlc29sdmVDYWNoZWQodGhpcyxlKX1yZXNvbHZlTm9DYWNoZShlKXtyZXR1cm4gTXRlLnJlc29sdmUodGhpcyxlKX1yYW5nZUhhc01hcmsoZSxyLGEpe2xldCBzPSExO3JldHVybiByPmUmJnRoaXMubm9kZXNCZXR3ZWVuKGUscixuPT4oYS5pc0luU2V0KG4ubWFya3MpJiYocz0hMCksIXMpKSxzfWdldCBpc0Jsb2NrKCl7cmV0dXJuIHRoaXMudHlwZS5pc0Jsb2NrfWdldCBpc1RleHRibG9jaygpe3JldHVybiB0aGlzLnR5cGUuaXNUZXh0YmxvY2t9Z2V0IGlubGluZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy50eXBlLmlubGluZUNvbnRlbnR9Z2V0IGlzSW5saW5lKCl7cmV0dXJuIHRoaXMudHlwZS5pc0lubGluZX1nZXQgaXNUZXh0KCl7cmV0dXJuIHRoaXMudHlwZS5pc1RleHR9Z2V0IGlzTGVhZigpe3JldHVybiB0aGlzLnR5cGUuaXNMZWFmfWdldCBpc0F0b20oKXtyZXR1cm4gdGhpcy50eXBlLmlzQXRvbX10b1N0cmluZygpe2lmKHRoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmcpcmV0dXJuIHRoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmcodGhpcyk7bGV0IGU9dGhpcy50eXBlLm5hbWU7cmV0dXJuIHRoaXMuY29udGVudC5zaXplJiYoZSs9IigiK3RoaXMuY29udGVudC50b1N0cmluZ0lubmVyKCkrIikiKSxqVXIodGhpcy5tYXJrcyxlKX1jb250ZW50TWF0Y2hBdChlKXtsZXQgcj10aGlzLnR5cGUuY29udGVudE1hdGNoLm1hdGNoRnJhZ21lbnQodGhpcy5jb250ZW50LDAsZSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgY29udGVudE1hdGNoQXQgb24gYSBub2RlIHdpdGggaW52YWxpZCBjb250ZW50Iik7cmV0dXJuIHJ9Y2FuUmVwbGFjZShlLHIsYT1KZS5lbXB0eSxzPTAsbj1hLmNoaWxkQ291bnQpe2xldCBvPXRoaXMuY29udGVudE1hdGNoQXQoZSkubWF0Y2hGcmFnbWVudChhLHMsbiksbD1vJiZvLm1hdGNoRnJhZ21lbnQodGhpcy5jb250ZW50LHIpO2lmKCFsfHwhbC52YWxpZEVuZClyZXR1cm4hMTtmb3IobGV0IGM9cztjPG47YysrKWlmKCF0aGlzLnR5cGUuYWxsb3dzTWFya3MoYS5jaGlsZChjKS5tYXJrcykpcmV0dXJuITE7cmV0dXJuITB9Y2FuUmVwbGFjZVdpdGgoZSxyLGEscyl7aWYocyYmIXRoaXMudHlwZS5hbGxvd3NNYXJrcyhzKSlyZXR1cm4hMTtsZXQgbj10aGlzLmNvbnRlbnRNYXRjaEF0KGUpLm1hdGNoVHlwZShhKSxvPW4mJm4ubWF0Y2hGcmFnbWVudCh0aGlzLmNvbnRlbnQscik7cmV0dXJuIG8/by52YWxpZEVuZDohMX1jYW5BcHBlbmQoZSl7cmV0dXJuIGUuY29udGVudC5zaXplP3RoaXMuY2FuUmVwbGFjZSh0aGlzLmNoaWxkQ291bnQsdGhpcy5jaGlsZENvdW50LGUuY29udGVudCk6dGhpcy50eXBlLmNvbXBhdGlibGVDb250ZW50KGUudHlwZSl9Y2hlY2soKXt0aGlzLnR5cGUuY2hlY2tDb250ZW50KHRoaXMuY29udGVudCksdGhpcy50eXBlLmNoZWNrQXR0cnModGhpcy5hdHRycyk7bGV0IGU9aGEubm9uZTtmb3IobGV0IHI9MDtyPHRoaXMubWFya3MubGVuZ3RoO3IrKyl7bGV0IGE9dGhpcy5tYXJrc1tyXTthLnR5cGUuY2hlY2tBdHRycyhhLmF0dHJzKSxlPWEuYWRkVG9TZXQoZSl9aWYoIWhhLnNhbWVTZXQoZSx0aGlzLm1hcmtzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCBjb2xsZWN0aW9uIG9mIG1hcmtzIGZvciBub2RlICR7dGhpcy50eXBlLm5hbWV9OiAke3RoaXMubWFya3MubWFwKHI9PnIudHlwZS5uYW1lKX1gKTt0aGlzLmNvbnRlbnQuZm9yRWFjaChyPT5yLmNoZWNrKCkpfXRvSlNPTigpe2xldCBlPXt0eXBlOnRoaXMudHlwZS5uYW1lfTtmb3IobGV0IHIgaW4gdGhpcy5hdHRycyl7ZS5hdHRycz10aGlzLmF0dHJzO2JyZWFrfXJldHVybiB0aGlzLmNvbnRlbnQuc2l6ZSYmKGUuY29udGVudD10aGlzLmNvbnRlbnQudG9KU09OKCkpLHRoaXMubWFya3MubGVuZ3RoJiYoZS5tYXJrcz10aGlzLm1hcmtzLm1hcChyPT5yLnRvSlNPTigpKSksZX1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZighcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgTm9kZS5mcm9tSlNPTiIpO2xldCBhO2lmKHIubWFya3Mpe2lmKCFBcnJheS5pc0FycmF5KHIubWFya3MpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIG1hcmsgZGF0YSBmb3IgTm9kZS5mcm9tSlNPTiIpO2E9ci5tYXJrcy5tYXAoZS5tYXJrRnJvbUpTT04pfWlmKHIudHlwZT09InRleHQiKXtpZih0eXBlb2Ygci50ZXh0IT0ic3RyaW5nIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0ZXh0IG5vZGUgaW4gSlNPTiIpO3JldHVybiBlLnRleHQoci50ZXh0LGEpfWxldCBzPUplLmZyb21KU09OKGUsci5jb250ZW50KSxuPWUubm9kZVR5cGUoci50eXBlKS5jcmVhdGUoci5hdHRycyxzLGEpO3JldHVybiBuLnR5cGUuY2hlY2tBdHRycyhuLmF0dHJzKSxufX07cW8ucHJvdG90eXBlLnRleHQ9dm9pZCAwO2RtdD1jbGFzcyB0IGV4dGVuZHMgcW97c3RhdGlje2kodGhpcywiVGV4dE5vZGUiKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXtpZihzdXBlcihlLHIsbnVsbCxzKSwhYSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRW1wdHkgdGV4dCBub2RlcyBhcmUgbm90IGFsbG93ZWQiKTt0aGlzLnRleHQ9YX10b1N0cmluZygpe3JldHVybiB0aGlzLnR5cGUuc3BlYy50b0RlYnVnU3RyaW5nP3RoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmcodGhpcyk6alVyKHRoaXMubWFya3MsSlNPTi5zdHJpbmdpZnkodGhpcy50ZXh0KSl9Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMudGV4dH10ZXh0QmV0d2VlbihlLHIpe3JldHVybiB0aGlzLnRleHQuc2xpY2UoZSxyKX1nZXQgbm9kZVNpemUoKXtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aH1tYXJrKGUpe3JldHVybiBlPT10aGlzLm1hcmtzP3RoaXM6bmV3IHQodGhpcy50eXBlLHRoaXMuYXR0cnMsdGhpcy50ZXh0LGUpfXdpdGhUZXh0KGUpe3JldHVybiBlPT10aGlzLnRleHQ/dGhpczpuZXcgdCh0aGlzLnR5cGUsdGhpcy5hdHRycyxlLHRoaXMubWFya3MpfWN1dChlPTAscj10aGlzLnRleHQubGVuZ3RoKXtyZXR1cm4gZT09MCYmcj09dGhpcy50ZXh0Lmxlbmd0aD90aGlzOnRoaXMud2l0aFRleHQodGhpcy50ZXh0LnNsaWNlKGUscikpfWVxKGUpe3JldHVybiB0aGlzLnNhbWVNYXJrdXAoZSkmJnRoaXMudGV4dD09ZS50ZXh0fXRvSlNPTigpe2xldCBlPXN1cGVyLnRvSlNPTigpO3JldHVybiBlLnRleHQ9dGhpcy50ZXh0LGV9fTtpKGpVciwid3JhcE1hcmtzIik7SHA9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJDb250ZW50TWF0Y2giKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnZhbGlkRW5kPWUsdGhpcy5uZXh0PVtdLHRoaXMud3JhcENhY2hlPVtdfXN0YXRpYyBwYXJzZShlLHIpe2xldCBhPW5ldyB1bXQoZSxyKTtpZihhLm5leHQ9PW51bGwpcmV0dXJuIHQuZW1wdHk7bGV0IHM9VVVyKGEpO2EubmV4dCYmYS5lcnIoIlVuZXhwZWN0ZWQgdHJhaWxpbmcgdGV4dCIpO2xldCBuPXlJYSh2SWEocykpO3JldHVybiB3SWEobixhKSxufW1hdGNoVHlwZShlKXtmb3IobGV0IHI9MDtyPHRoaXMubmV4dC5sZW5ndGg7cisrKWlmKHRoaXMubmV4dFtyXS50eXBlPT1lKXJldHVybiB0aGlzLm5leHRbcl0ubmV4dDtyZXR1cm4gbnVsbH1tYXRjaEZyYWdtZW50KGUscj0wLGE9ZS5jaGlsZENvdW50KXtsZXQgcz10aGlzO2ZvcihsZXQgbj1yO3MmJm48YTtuKyspcz1zLm1hdGNoVHlwZShlLmNoaWxkKG4pLnR5cGUpO3JldHVybiBzfWdldCBpbmxpbmVDb250ZW50KCl7cmV0dXJuIHRoaXMubmV4dC5sZW5ndGghPTAmJnRoaXMubmV4dFswXS50eXBlLmlzSW5saW5lfWdldCBkZWZhdWx0VHlwZSgpe2ZvcihsZXQgZT0wO2U8dGhpcy5uZXh0Lmxlbmd0aDtlKyspe2xldHt0eXBlOnJ9PXRoaXMubmV4dFtlXTtpZighKHIuaXNUZXh0fHxyLmhhc1JlcXVpcmVkQXR0cnMoKSkpcmV0dXJuIHJ9cmV0dXJuIG51bGx9Y29tcGF0aWJsZShlKXtmb3IobGV0IHI9MDtyPHRoaXMubmV4dC5sZW5ndGg7cisrKWZvcihsZXQgYT0wO2E8ZS5uZXh0Lmxlbmd0aDthKyspaWYodGhpcy5uZXh0W3JdLnR5cGU9PWUubmV4dFthXS50eXBlKXJldHVybiEwO3JldHVybiExfWZpbGxCZWZvcmUoZSxyPSExLGE9MCl7bGV0IHM9W3RoaXNdO2Z1bmN0aW9uIG4obyxsKXtsZXQgYz1vLm1hdGNoRnJhZ21lbnQoZSxhKTtpZihjJiYoIXJ8fGMudmFsaWRFbmQpKXJldHVybiBKZS5mcm9tKGwubWFwKGQ9PmQuY3JlYXRlQW5kRmlsbCgpKSk7Zm9yKGxldCBkPTA7ZDxvLm5leHQubGVuZ3RoO2QrKyl7bGV0e3R5cGU6ZixuZXh0OnB9PW8ubmV4dFtkXTtpZighKGYuaXNUZXh0fHxmLmhhc1JlcXVpcmVkQXR0cnMoKSkmJnMuaW5kZXhPZihwKT09LTEpe3MucHVzaChwKTtsZXQgaD1uKHAsbC5jb25jYXQoZikpO2lmKGgpcmV0dXJuIGh9fXJldHVybiBudWxsfXJldHVybiBpKG4sInNlYXJjaCIpLG4odGhpcyxbXSl9ZmluZFdyYXBwaW5nKGUpe2ZvcihsZXQgYT0wO2E8dGhpcy53cmFwQ2FjaGUubGVuZ3RoO2ErPTIpaWYodGhpcy53cmFwQ2FjaGVbYV09PWUpcmV0dXJuIHRoaXMud3JhcENhY2hlW2ErMV07bGV0IHI9dGhpcy5jb21wdXRlV3JhcHBpbmcoZSk7cmV0dXJuIHRoaXMud3JhcENhY2hlLnB1c2goZSxyKSxyfWNvbXB1dGVXcmFwcGluZyhlKXtsZXQgcj1PYmplY3QuY3JlYXRlKG51bGwpLGE9W3ttYXRjaDp0aGlzLHR5cGU6bnVsbCx2aWE6bnVsbH1dO2Zvcig7YS5sZW5ndGg7KXtsZXQgcz1hLnNoaWZ0KCksbj1zLm1hdGNoO2lmKG4ubWF0Y2hUeXBlKGUpKXtsZXQgbz1bXTtmb3IobGV0IGw9cztsLnR5cGU7bD1sLnZpYSlvLnB1c2gobC50eXBlKTtyZXR1cm4gby5yZXZlcnNlKCl9Zm9yKGxldCBvPTA7bzxuLm5leHQubGVuZ3RoO28rKyl7bGV0e3R5cGU6bCxuZXh0OmN9PW4ubmV4dFtvXTshbC5pc0xlYWYmJiFsLmhhc1JlcXVpcmVkQXR0cnMoKSYmIShsLm5hbWUgaW4gcikmJighcy50eXBlfHxjLnZhbGlkRW5kKSYmKGEucHVzaCh7bWF0Y2g6bC5jb250ZW50TWF0Y2gsdHlwZTpsLHZpYTpzfSkscltsLm5hbWVdPSEwKX19cmV0dXJuIG51bGx9Z2V0IGVkZ2VDb3VudCgpe3JldHVybiB0aGlzLm5leHQubGVuZ3RofWVkZ2UoZSl7aWYoZT49dGhpcy5uZXh0Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlcmUncyBubyAke2V9dGggZWRnZSBpbiB0aGlzIGNvbnRlbnQgbWF0Y2hgKTtyZXR1cm4gdGhpcy5uZXh0W2VdfXRvU3RyaW5nKCl7bGV0IGU9W107ZnVuY3Rpb24gcihhKXtlLnB1c2goYSk7Zm9yKGxldCBzPTA7czxhLm5leHQubGVuZ3RoO3MrKyllLmluZGV4T2YoYS5uZXh0W3NdLm5leHQpPT0tMSYmcihhLm5leHRbc10ubmV4dCl9cmV0dXJuIGkociwic2NhbiIpLHIodGhpcyksZS5tYXAoKGEscyk9PntsZXQgbj1zKyhhLnZhbGlkRW5kPyIqIjoiICIpKyIgIjtmb3IobGV0IG89MDtvPGEubmV4dC5sZW5ndGg7bysrKW4rPShvPyIsICI6IiIpK2EubmV4dFtvXS50eXBlLm5hbWUrIi0+IitlLmluZGV4T2YoYS5uZXh0W29dLm5leHQpO3JldHVybiBufSkuam9pbihgCmApfX07SHAuZW1wdHk9bmV3IEhwKCEwKTt1bXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiVG9rZW5TdHJlYW0iKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RyaW5nPWUsdGhpcy5ub2RlVHlwZXM9cix0aGlzLmlubGluZT1udWxsLHRoaXMucG9zPTAsdGhpcy50b2tlbnM9ZS5zcGxpdCgvXHMqKD89XGJ8XFd8JCkvKSx0aGlzLnRva2Vuc1t0aGlzLnRva2Vucy5sZW5ndGgtMV09PSIiJiZ0aGlzLnRva2Vucy5wb3AoKSx0aGlzLnRva2Vuc1swXT09IiImJnRoaXMudG9rZW5zLnNoaWZ0KCl9Z2V0IG5leHQoKXtyZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5wb3NdfWVhdChlKXtyZXR1cm4gdGhpcy5uZXh0PT1lJiYodGhpcy5wb3MrK3x8ITApfWVycihlKXt0aHJvdyBuZXcgU3ludGF4RXJyb3IoZSsiIChpbiBjb250ZW50IGV4cHJlc3Npb24gJyIrdGhpcy5zdHJpbmcrIicpIil9fTtpKFVVciwicGFyc2VFeHByIik7aShoSWEsInBhcnNlRXhwclNlcSIpO2kobUlhLCJwYXJzZUV4cHJTdWJzY3JpcHQiKTtpKFdVciwicGFyc2VOdW0iKTtpKGdJYSwicGFyc2VFeHByUmFuZ2UiKTtpKGJJYSwicmVzb2x2ZU5hbWUiKTtpKHhJYSwicGFyc2VFeHByQXRvbSIpO2kodklhLCJuZmEiKTtpKEdVciwiY21wIik7aShZVXIsIm51bGxGcm9tIik7aSh5SWEsImRmYSIpO2kod0lhLCJjaGVja0ZvckRlYWRFbmRzIik7aShLVXIsImRlZmF1bHRBdHRycyIpO2koWlVyLCJjb21wdXRlQXR0cnMiKTtpKFFVciwiY2hlY2tBdHRycyIpO2koWFVyLCJpbml0QXR0cnMiKTtDdGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJOb2RlVHlwZSIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLm5hbWU9ZSx0aGlzLnNjaGVtYT1yLHRoaXMuc3BlYz1hLHRoaXMubWFya1NldD1udWxsLHRoaXMuZ3JvdXBzPWEuZ3JvdXA/YS5ncm91cC5zcGxpdCgiICIpOltdLHRoaXMuYXR0cnM9WFVyKGUsYS5hdHRycyksdGhpcy5kZWZhdWx0QXR0cnM9S1VyKHRoaXMuYXR0cnMpLHRoaXMuY29udGVudE1hdGNoPW51bGwsdGhpcy5pbmxpbmVDb250ZW50PW51bGwsdGhpcy5pc0Jsb2NrPSEoYS5pbmxpbmV8fGU9PSJ0ZXh0IiksdGhpcy5pc1RleHQ9ZT09InRleHQifWdldCBpc0lubGluZSgpe3JldHVybiF0aGlzLmlzQmxvY2t9Z2V0IGlzVGV4dGJsb2NrKCl7cmV0dXJuIHRoaXMuaXNCbG9jayYmdGhpcy5pbmxpbmVDb250ZW50fWdldCBpc0xlYWYoKXtyZXR1cm4gdGhpcy5jb250ZW50TWF0Y2g9PUhwLmVtcHR5fWdldCBpc0F0b20oKXtyZXR1cm4gdGhpcy5pc0xlYWZ8fCEhdGhpcy5zcGVjLmF0b219aXNJbkdyb3VwKGUpe3JldHVybiB0aGlzLmdyb3Vwcy5pbmRleE9mKGUpPi0xfWdldCB3aGl0ZXNwYWNlKCl7cmV0dXJuIHRoaXMuc3BlYy53aGl0ZXNwYWNlfHwodGhpcy5zcGVjLmNvZGU/InByZSI6Im5vcm1hbCIpfWhhc1JlcXVpcmVkQXR0cnMoKXtmb3IobGV0IGUgaW4gdGhpcy5hdHRycylpZih0aGlzLmF0dHJzW2VdLmlzUmVxdWlyZWQpcmV0dXJuITA7cmV0dXJuITF9Y29tcGF0aWJsZUNvbnRlbnQoZSl7cmV0dXJuIHRoaXM9PWV8fHRoaXMuY29udGVudE1hdGNoLmNvbXBhdGlibGUoZS5jb250ZW50TWF0Y2gpfWNvbXB1dGVBdHRycyhlKXtyZXR1cm4hZSYmdGhpcy5kZWZhdWx0QXR0cnM/dGhpcy5kZWZhdWx0QXR0cnM6WlVyKHRoaXMuYXR0cnMsZSl9Y3JlYXRlKGU9bnVsbCxyLGEpe2lmKHRoaXMuaXNUZXh0KXRocm93IG5ldyBFcnJvcigiTm9kZVR5cGUuY3JlYXRlIGNhbid0IGNvbnN0cnVjdCB0ZXh0IG5vZGVzIik7cmV0dXJuIG5ldyBxbyh0aGlzLHRoaXMuY29tcHV0ZUF0dHJzKGUpLEplLmZyb20ociksaGEuc2V0RnJvbShhKSl9Y3JlYXRlQ2hlY2tlZChlPW51bGwscixhKXtyZXR1cm4gcj1KZS5mcm9tKHIpLHRoaXMuY2hlY2tDb250ZW50KHIpLG5ldyBxbyh0aGlzLHRoaXMuY29tcHV0ZUF0dHJzKGUpLHIsaGEuc2V0RnJvbShhKSl9Y3JlYXRlQW5kRmlsbChlPW51bGwscixhKXtpZihlPXRoaXMuY29tcHV0ZUF0dHJzKGUpLHI9SmUuZnJvbShyKSxyLnNpemUpe2xldCBvPXRoaXMuY29udGVudE1hdGNoLmZpbGxCZWZvcmUocik7aWYoIW8pcmV0dXJuIG51bGw7cj1vLmFwcGVuZChyKX1sZXQgcz10aGlzLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KHIpLG49cyYmcy5maWxsQmVmb3JlKEplLmVtcHR5LCEwKTtyZXR1cm4gbj9uZXcgcW8odGhpcyxlLHIuYXBwZW5kKG4pLGhhLnNldEZyb20oYSkpOm51bGx9dmFsaWRDb250ZW50KGUpe2xldCByPXRoaXMuY29udGVudE1hdGNoLm1hdGNoRnJhZ21lbnQoZSk7aWYoIXJ8fCFyLnZhbGlkRW5kKXJldHVybiExO2ZvcihsZXQgYT0wO2E8ZS5jaGlsZENvdW50O2ErKylpZighdGhpcy5hbGxvd3NNYXJrcyhlLmNoaWxkKGEpLm1hcmtzKSlyZXR1cm4hMTtyZXR1cm4hMH1jaGVja0NvbnRlbnQoZSl7aWYoIXRoaXMudmFsaWRDb250ZW50KGUpKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIGNvbnRlbnQgZm9yIG5vZGUgJHt0aGlzLm5hbWV9OiAke2UudG9TdHJpbmcoKS5zbGljZSgwLDUwKX1gKX1jaGVja0F0dHJzKGUpe1FVcih0aGlzLmF0dHJzLGUsIm5vZGUiLHRoaXMubmFtZSl9YWxsb3dzTWFya1R5cGUoZSl7cmV0dXJuIHRoaXMubWFya1NldD09bnVsbHx8dGhpcy5tYXJrU2V0LmluZGV4T2YoZSk+LTF9YWxsb3dzTWFya3MoZSl7aWYodGhpcy5tYXJrU2V0PT1udWxsKXJldHVybiEwO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKCF0aGlzLmFsbG93c01hcmtUeXBlKGVbcl0udHlwZSkpcmV0dXJuITE7cmV0dXJuITB9YWxsb3dlZE1hcmtzKGUpe2lmKHRoaXMubWFya1NldD09bnVsbClyZXR1cm4gZTtsZXQgcjtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl0aGlzLmFsbG93c01hcmtUeXBlKGVbYV0udHlwZSk/ciYmci5wdXNoKGVbYV0pOnJ8fChyPWUuc2xpY2UoMCxhKSk7cmV0dXJuIHI/ci5sZW5ndGg/cjpoYS5ub25lOmV9c3RhdGljIGNvbXBpbGUoZSxyKXtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpO2UuZm9yRWFjaCgobixvKT0+YVtuXT1uZXcgdChuLHIsbykpO2xldCBzPXIuc3BlYy50b3BOb2RlfHwiZG9jIjtpZighYVtzXSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiU2NoZW1hIGlzIG1pc3NpbmcgaXRzIHRvcCBub2RlIHR5cGUgKCciK3MrIicpIik7aWYoIWEudGV4dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRXZlcnkgc2NoZW1hIG5lZWRzIGEgJ3RleHQnIHR5cGUiKTtmb3IobGV0IG4gaW4gYS50ZXh0LmF0dHJzKXRocm93IG5ldyBSYW5nZUVycm9yKCJUaGUgdGV4dCBub2RlIHR5cGUgc2hvdWxkIG5vdCBoYXZlIGF0dHJpYnV0ZXMiKTtyZXR1cm4gYX19O2koa0lhLCJ2YWxpZGF0ZVR5cGUiKTtwbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiQXR0cmlidXRlIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuaGFzRGVmYXVsdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwiZGVmYXVsdCIpLHRoaXMuZGVmYXVsdD1hLmRlZmF1bHQsdGhpcy52YWxpZGF0ZT10eXBlb2YgYS52YWxpZGF0ZT09InN0cmluZyI/a0lhKGUscixhLnZhbGlkYXRlKTphLnZhbGlkYXRlfWdldCBpc1JlcXVpcmVkKCl7cmV0dXJuIXRoaXMuaGFzRGVmYXVsdH19LFd5PWNsYXNzIHR7c3RhdGlje2kodGhpcywiTWFya1R5cGUiKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXt0aGlzLm5hbWU9ZSx0aGlzLnJhbms9cix0aGlzLnNjaGVtYT1hLHRoaXMuc3BlYz1zLHRoaXMuYXR0cnM9WFVyKGUscy5hdHRycyksdGhpcy5leGNsdWRlZD1udWxsO2xldCBuPUtVcih0aGlzLmF0dHJzKTt0aGlzLmluc3RhbmNlPW4/bmV3IGhhKHRoaXMsbik6bnVsbH1jcmVhdGUoZT1udWxsKXtyZXR1cm4hZSYmdGhpcy5pbnN0YW5jZT90aGlzLmluc3RhbmNlOm5ldyBoYSh0aGlzLFpVcih0aGlzLmF0dHJzLGUpKX1zdGF0aWMgY29tcGlsZShlLHIpe2xldCBhPU9iamVjdC5jcmVhdGUobnVsbCkscz0wO3JldHVybiBlLmZvckVhY2goKG4sbyk9PmFbbl09bmV3IHQobixzKysscixvKSksYX1yZW1vdmVGcm9tU2V0KGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWVbcl0udHlwZT09dGhpcyYmKGU9ZS5zbGljZSgwLHIpLmNvbmNhdChlLnNsaWNlKHIrMSkpLHItLSk7cmV0dXJuIGV9aXNJblNldChlKXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKylpZihlW3JdLnR5cGU9PXRoaXMpcmV0dXJuIGVbcl19Y2hlY2tBdHRycyhlKXtRVXIodGhpcy5hdHRycyxlLCJtYXJrIix0aGlzLm5hbWUpfWV4Y2x1ZGVzKGUpe3JldHVybiB0aGlzLmV4Y2x1ZGVkLmluZGV4T2YoZSk+LTF9fSxHeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTY2hlbWEiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmxpbmVicmVha1JlcGxhY2VtZW50PW51bGwsdGhpcy5jYWNoZWQ9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgcj10aGlzLnNwZWM9e307Zm9yKGxldCBzIGluIGUpcltzXT1lW3NdO3Iubm9kZXM9bm10LmZyb20oZS5ub2Rlcyksci5tYXJrcz1ubXQuZnJvbShlLm1hcmtzfHx7fSksdGhpcy5ub2Rlcz1DdGUuY29tcGlsZSh0aGlzLnNwZWMubm9kZXMsdGhpcyksdGhpcy5tYXJrcz1XeS5jb21waWxlKHRoaXMuc3BlYy5tYXJrcyx0aGlzKTtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgcyBpbiB0aGlzLm5vZGVzKXtpZihzIGluIHRoaXMubWFya3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IocysiIGNhbiBub3QgYmUgYm90aCBhIG5vZGUgYW5kIGEgbWFyayIpO2xldCBuPXRoaXMubm9kZXNbc10sbz1uLnNwZWMuY29udGVudHx8IiIsbD1uLnNwZWMubWFya3M7aWYobi5jb250ZW50TWF0Y2g9YVtvXXx8KGFbb109SHAucGFyc2Uobyx0aGlzLm5vZGVzKSksbi5pbmxpbmVDb250ZW50PW4uY29udGVudE1hdGNoLmlubGluZUNvbnRlbnQsbi5zcGVjLmxpbmVicmVha1JlcGxhY2VtZW50KXtpZih0aGlzLmxpbmVicmVha1JlcGxhY2VtZW50KXRocm93IG5ldyBSYW5nZUVycm9yKCJNdWx0aXBsZSBsaW5lYnJlYWsgbm9kZXMgZGVmaW5lZCIpO2lmKCFuLmlzSW5saW5lfHwhbi5pc0xlYWYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkxpbmVicmVhayByZXBsYWNlbWVudCBub2RlcyBtdXN0IGJlIGlubGluZSBsZWFmIG5vZGVzIik7dGhpcy5saW5lYnJlYWtSZXBsYWNlbWVudD1ufW4ubWFya1NldD1sPT0iXyI/bnVsbDpsP0pVcih0aGlzLGwuc3BsaXQoIiAiKSk6bD09IiJ8fCFuLmlubGluZUNvbnRlbnQ/W106bnVsbH1mb3IobGV0IHMgaW4gdGhpcy5tYXJrcyl7bGV0IG49dGhpcy5tYXJrc1tzXSxvPW4uc3BlYy5leGNsdWRlcztuLmV4Y2x1ZGVkPW89PW51bGw/W25dOm89PSIiP1tdOkpVcih0aGlzLG8uc3BsaXQoIiAiKSl9dGhpcy5ub2RlRnJvbUpTT049cz0+cW8uZnJvbUpTT04odGhpcyxzKSx0aGlzLm1hcmtGcm9tSlNPTj1zPT5oYS5mcm9tSlNPTih0aGlzLHMpLHRoaXMudG9wTm9kZVR5cGU9dGhpcy5ub2Rlc1t0aGlzLnNwZWMudG9wTm9kZXx8ImRvYyJdLHRoaXMuY2FjaGVkLndyYXBwaW5ncz1PYmplY3QuY3JlYXRlKG51bGwpfW5vZGUoZSxyPW51bGwsYSxzKXtpZih0eXBlb2YgZT09InN0cmluZyIpZT10aGlzLm5vZGVUeXBlKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEN0ZSl7aWYoZS5zY2hlbWEhPXRoaXMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vZGUgdHlwZSBmcm9tIGRpZmZlcmVudCBzY2hlbWEgdXNlZCAoIitlLm5hbWUrIikiKX1lbHNlIHRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIG5vZGUgdHlwZTogIitlKTtyZXR1cm4gZS5jcmVhdGVDaGVja2VkKHIsYSxzKX10ZXh0KGUscil7bGV0IGE9dGhpcy5ub2Rlcy50ZXh0O3JldHVybiBuZXcgZG10KGEsYS5kZWZhdWx0QXR0cnMsZSxoYS5zZXRGcm9tKHIpKX1tYXJrKGUscil7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9dGhpcy5tYXJrc1tlXSksZS5jcmVhdGUocil9bm9kZVR5cGUoZSl7bGV0IHI9dGhpcy5ub2Rlc1tlXTtpZighcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVW5rbm93biBub2RlIHR5cGU6ICIrZSk7cmV0dXJuIHJ9fTtpKEpVciwiZ2F0aGVyTWFya3MiKTtpKFNJYSwiaXNUYWdSdWxlIik7aShNSWEsImlzU3R5bGVSdWxlIik7eWM9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJET01QYXJzZXIiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc2NoZW1hPWUsdGhpcy5ydWxlcz1yLHRoaXMudGFncz1bXSx0aGlzLnN0eWxlcz1bXTtsZXQgYT10aGlzLm1hdGNoZWRTdHlsZXM9W107ci5mb3JFYWNoKHM9PntpZihTSWEocykpdGhpcy50YWdzLnB1c2gocyk7ZWxzZSBpZihNSWEocykpe2xldCBuPS9bXj1dKi8uZXhlYyhzLnN0eWxlKVswXTthLmluZGV4T2Yobik8MCYmYS5wdXNoKG4pLHRoaXMuc3R5bGVzLnB1c2gocyl9fSksdGhpcy5ub3JtYWxpemVMaXN0cz0hdGhpcy50YWdzLnNvbWUocz0+e2lmKCEvXih1bHxvbClcYi8udGVzdChzLnRhZyl8fCFzLm5vZGUpcmV0dXJuITE7bGV0IG49ZS5ub2Rlc1tzLm5vZGVdO3JldHVybiBuLmNvbnRlbnRNYXRjaC5tYXRjaFR5cGUobil9KX1wYXJzZShlLHI9e30pe2xldCBhPW5ldyBnZmUodGhpcyxyLCExKTtyZXR1cm4gYS5hZGRBbGwoZSxoYS5ub25lLHIuZnJvbSxyLnRvKSxhLmZpbmlzaCgpfXBhcnNlU2xpY2UoZSxyPXt9KXtsZXQgYT1uZXcgZ2ZlKHRoaXMsciwhMCk7cmV0dXJuIGEuYWRkQWxsKGUsaGEubm9uZSxyLmZyb20sci50byksbXQubWF4T3BlbihhLmZpbmlzaCgpKX1tYXRjaFRhZyhlLHIsYSl7Zm9yKGxldCBzPWE/dGhpcy50YWdzLmluZGV4T2YoYSkrMTowO3M8dGhpcy50YWdzLmxlbmd0aDtzKyspe2xldCBuPXRoaXMudGFnc1tzXTtpZihfSWEoZSxuLnRhZykmJihuLm5hbWVzcGFjZT09PXZvaWQgMHx8ZS5uYW1lc3BhY2VVUkk9PW4ubmFtZXNwYWNlKSYmKCFuLmNvbnRleHR8fHIubWF0Y2hlc0NvbnRleHQobi5jb250ZXh0KSkpe2lmKG4uZ2V0QXR0cnMpe2xldCBvPW4uZ2V0QXR0cnMoZSk7aWYobz09PSExKWNvbnRpbnVlO24uYXR0cnM9b3x8dm9pZCAwfXJldHVybiBufX19bWF0Y2hTdHlsZShlLHIsYSxzKXtmb3IobGV0IG49cz90aGlzLnN0eWxlcy5pbmRleE9mKHMpKzE6MDtuPHRoaXMuc3R5bGVzLmxlbmd0aDtuKyspe2xldCBvPXRoaXMuc3R5bGVzW25dLGw9by5zdHlsZTtpZighKGwuaW5kZXhPZihlKSE9MHx8by5jb250ZXh0JiYhYS5tYXRjaGVzQ29udGV4dChvLmNvbnRleHQpfHxsLmxlbmd0aD5lLmxlbmd0aCYmKGwuY2hhckNvZGVBdChlLmxlbmd0aCkhPTYxfHxsLnNsaWNlKGUubGVuZ3RoKzEpIT1yKSkpe2lmKG8uZ2V0QXR0cnMpe2xldCBjPW8uZ2V0QXR0cnMocik7aWYoYz09PSExKWNvbnRpbnVlO28uYXR0cnM9Y3x8dm9pZCAwfXJldHVybiBvfX19c3RhdGljIHNjaGVtYVJ1bGVzKGUpe2xldCByPVtdO2Z1bmN0aW9uIGEocyl7bGV0IG49cy5wcmlvcml0eT09bnVsbD81MDpzLnByaW9yaXR5LG89MDtmb3IoO288ci5sZW5ndGg7bysrKXtsZXQgbD1yW29dO2lmKChsLnByaW9yaXR5PT1udWxsPzUwOmwucHJpb3JpdHkpPG4pYnJlYWt9ci5zcGxpY2UobywwLHMpfWkoYSwiaW5zZXJ0Iik7Zm9yKGxldCBzIGluIGUubWFya3Mpe2xldCBuPWUubWFya3Nbc10uc3BlYy5wYXJzZURPTTtuJiZuLmZvckVhY2gobz0+e2Eobz1hV3IobykpLG8ubWFya3x8by5pZ25vcmV8fG8uY2xlYXJNYXJrfHwoby5tYXJrPXMpfSl9Zm9yKGxldCBzIGluIGUubm9kZXMpe2xldCBuPWUubm9kZXNbc10uc3BlYy5wYXJzZURPTTtuJiZuLmZvckVhY2gobz0+e2Eobz1hV3IobykpLG8ubm9kZXx8by5pZ25vcmV8fG8ubWFya3x8KG8ubm9kZT1zKX0pfXJldHVybiByfXN0YXRpYyBmcm9tU2NoZW1hKGUpe3JldHVybiBlLmNhY2hlZC5kb21QYXJzZXJ8fChlLmNhY2hlZC5kb21QYXJzZXI9bmV3IHQoZSx0LnNjaGVtYVJ1bGVzKGUpKSl9fSxlV3I9e2FkZHJlc3M6ITAsYXJ0aWNsZTohMCxhc2lkZTohMCxibG9ja3F1b3RlOiEwLGNhbnZhczohMCxkZDohMCxkaXY6ITAsZGw6ITAsZmllbGRzZXQ6ITAsZmlnY2FwdGlvbjohMCxmaWd1cmU6ITAsZm9vdGVyOiEwLGZvcm06ITAsaDE6ITAsaDI6ITAsaDM6ITAsaDQ6ITAsaDU6ITAsaDY6ITAsaGVhZGVyOiEwLGhncm91cDohMCxocjohMCxsaTohMCxub3NjcmlwdDohMCxvbDohMCxvdXRwdXQ6ITAscDohMCxwcmU6ITAsc2VjdGlvbjohMCx0YWJsZTohMCx0Zm9vdDohMCx1bDohMH0sQ0lhPXtoZWFkOiEwLG5vc2NyaXB0OiEwLG9iamVjdDohMCxzY3JpcHQ6ITAsc3R5bGU6ITAsdGl0bGU6ITB9LHRXcj17b2w6ITAsdWw6ITB9LHp0ZT0xLGZtdD0yLF90ZT00O2kocldyLCJ3c09wdGlvbnNGb3IiKTtVeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOb2RlQ29udGV4dCIpfWNvbnN0cnVjdG9yKGUscixhLHMsbixvKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXIsdGhpcy5tYXJrcz1hLHRoaXMuc29saWQ9cyx0aGlzLm9wdGlvbnM9byx0aGlzLmNvbnRlbnQ9W10sdGhpcy5hY3RpdmVNYXJrcz1oYS5ub25lLHRoaXMubWF0Y2g9bnx8KG8mX3RlP251bGw6ZS5jb250ZW50TWF0Y2gpfWZpbmRXcmFwcGluZyhlKXtpZighdGhpcy5tYXRjaCl7aWYoIXRoaXMudHlwZSlyZXR1cm5bXTtsZXQgcj10aGlzLnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUoSmUuZnJvbShlKSk7aWYocil0aGlzLm1hdGNoPXRoaXMudHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudChyKTtlbHNle2xldCBhPXRoaXMudHlwZS5jb250ZW50TWF0Y2gscztyZXR1cm4ocz1hLmZpbmRXcmFwcGluZyhlLnR5cGUpKT8odGhpcy5tYXRjaD1hLHMpOm51bGx9fXJldHVybiB0aGlzLm1hdGNoLmZpbmRXcmFwcGluZyhlLnR5cGUpfWZpbmlzaChlKXtpZighKHRoaXMub3B0aW9ucyZ6dGUpKXtsZXQgYT10aGlzLmNvbnRlbnRbdGhpcy5jb250ZW50Lmxlbmd0aC0xXSxzO2lmKGEmJmEuaXNUZXh0JiYocz0vWyBcdFxyXG5cdTAwMGNdKyQvLmV4ZWMoYS50ZXh0KSkpe2xldCBuPWE7YS50ZXh0Lmxlbmd0aD09c1swXS5sZW5ndGg/dGhpcy5jb250ZW50LnBvcCgpOnRoaXMuY29udGVudFt0aGlzLmNvbnRlbnQubGVuZ3RoLTFdPW4ud2l0aFRleHQobi50ZXh0LnNsaWNlKDAsbi50ZXh0Lmxlbmd0aC1zWzBdLmxlbmd0aCkpfX1sZXQgcj1KZS5mcm9tKHRoaXMuY29udGVudCk7cmV0dXJuIWUmJnRoaXMubWF0Y2gmJihyPXIuYXBwZW5kKHRoaXMubWF0Y2guZmlsbEJlZm9yZShKZS5lbXB0eSwhMCkpKSx0aGlzLnR5cGU/dGhpcy50eXBlLmNyZWF0ZSh0aGlzLmF0dHJzLHIsdGhpcy5tYXJrcyk6cn1pbmxpbmVDb250ZXh0KGUpe3JldHVybiB0aGlzLnR5cGU/dGhpcy50eXBlLmlubGluZUNvbnRlbnQ6dGhpcy5jb250ZW50Lmxlbmd0aD90aGlzLmNvbnRlbnRbMF0uaXNJbmxpbmU6ZS5wYXJlbnROb2RlJiYhZVdyLmhhc093blByb3BlcnR5KGUucGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKX19LGdmZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQYXJzZUNvbnRleHQiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy5wYXJzZXI9ZSx0aGlzLm9wdGlvbnM9cix0aGlzLmlzT3Blbj1hLHRoaXMub3Blbj0wLHRoaXMubG9jYWxQcmVzZXJ2ZVdTPSExO2xldCBzPXIudG9wTm9kZSxuLG89cldyKG51bGwsci5wcmVzZXJ2ZVdoaXRlc3BhY2UsMCl8KGE/X3RlOjApO3M/bj1uZXcgVXkocy50eXBlLHMuYXR0cnMsaGEubm9uZSwhMCxyLnRvcE1hdGNofHxzLnR5cGUuY29udGVudE1hdGNoLG8pOmE/bj1uZXcgVXkobnVsbCxudWxsLGhhLm5vbmUsITAsbnVsbCxvKTpuPW5ldyBVeShlLnNjaGVtYS50b3BOb2RlVHlwZSxudWxsLGhhLm5vbmUsITAsbnVsbCxvKSx0aGlzLm5vZGVzPVtuXSx0aGlzLmZpbmQ9ci5maW5kUG9zaXRpb25zLHRoaXMubmVlZHNCbG9jaz0hMX1nZXQgdG9wKCl7cmV0dXJuIHRoaXMubm9kZXNbdGhpcy5vcGVuXX1hZGRET00oZSxyKXtlLm5vZGVUeXBlPT0zP3RoaXMuYWRkVGV4dE5vZGUoZSxyKTplLm5vZGVUeXBlPT0xJiZ0aGlzLmFkZEVsZW1lbnQoZSxyKX1hZGRUZXh0Tm9kZShlLHIpe2xldCBhPWUubm9kZVZhbHVlLHM9dGhpcy50b3Asbj1zLm9wdGlvbnMmZm10PyJmdWxsIjp0aGlzLmxvY2FsUHJlc2VydmVXU3x8KHMub3B0aW9ucyZ6dGUpPjAse3NjaGVtYTpvfT10aGlzLnBhcnNlcjtpZihuPT09ImZ1bGwifHxzLmlubGluZUNvbnRleHQoZSl8fC9bXiBcdFxyXG5cdTAwMGNdLy50ZXN0KGEpKXtpZihuKWlmKG49PT0iZnVsbCIpYT1hLnJlcGxhY2UoL1xyXG4/L2csYApgKTtlbHNlIGlmKG8ubGluZWJyZWFrUmVwbGFjZW1lbnQmJi9bXHJcbl0vLnRlc3QoYSkmJnRoaXMudG9wLmZpbmRXcmFwcGluZyhvLmxpbmVicmVha1JlcGxhY2VtZW50LmNyZWF0ZSgpKSl7bGV0IGw9YS5zcGxpdCgvXHI/XG58XHIvKTtmb3IobGV0IGM9MDtjPGwubGVuZ3RoO2MrKyljJiZ0aGlzLmluc2VydE5vZGUoby5saW5lYnJlYWtSZXBsYWNlbWVudC5jcmVhdGUoKSxyLCEwKSxsW2NdJiZ0aGlzLmluc2VydE5vZGUoby50ZXh0KGxbY10pLHIsIS9cUy8udGVzdChsW2NdKSk7YT0iIn1lbHNlIGE9YS5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7ZWxzZSBpZihhPWEucmVwbGFjZSgvWyBcdFxyXG5cdTAwMGNdKy9nLCIgIiksL15bIFx0XHJcblx1MDAwY10vLnRlc3QoYSkmJnRoaXMub3Blbj09dGhpcy5ub2Rlcy5sZW5ndGgtMSl7bGV0IGw9cy5jb250ZW50W3MuY29udGVudC5sZW5ndGgtMV0sYz1lLnByZXZpb3VzU2libGluZzsoIWx8fGMmJmMubm9kZU5hbWU9PSJCUiJ8fGwuaXNUZXh0JiYvWyBcdFxyXG5cdTAwMGNdJC8udGVzdChsLnRleHQpKSYmKGE9YS5zbGljZSgxKSl9YSYmdGhpcy5pbnNlcnROb2RlKG8udGV4dChhKSxyLCEvXFMvLnRlc3QoYSkpLHRoaXMuZmluZEluVGV4dChlKX1lbHNlIHRoaXMuZmluZEluc2lkZShlKX1hZGRFbGVtZW50KGUscixhKXtsZXQgcz10aGlzLmxvY2FsUHJlc2VydmVXUyxuPXRoaXMudG9wOyhlLnRhZ05hbWU9PSJQUkUifHwvcHJlLy50ZXN0KGUuc3R5bGUmJmUuc3R5bGUud2hpdGVTcGFjZSkpJiYodGhpcy5sb2NhbFByZXNlcnZlV1M9ITApO2xldCBvPWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxsO3RXci5oYXNPd25Qcm9wZXJ0eShvKSYmdGhpcy5wYXJzZXIubm9ybWFsaXplTGlzdHMmJnpJYShlKTtsZXQgYz10aGlzLm9wdGlvbnMucnVsZUZyb21Ob2RlJiZ0aGlzLm9wdGlvbnMucnVsZUZyb21Ob2RlKGUpfHwobD10aGlzLnBhcnNlci5tYXRjaFRhZyhlLHRoaXMsYSkpO2U6aWYoYz9jLmlnbm9yZTpDSWEuaGFzT3duUHJvcGVydHkobykpdGhpcy5maW5kSW5zaWRlKGUpLHRoaXMuaWdub3JlRmFsbGJhY2soZSxyKTtlbHNlIGlmKCFjfHxjLnNraXB8fGMuY2xvc2VQYXJlbnQpe2MmJmMuY2xvc2VQYXJlbnQ/dGhpcy5vcGVuPU1hdGgubWF4KDAsdGhpcy5vcGVuLTEpOmMmJmMuc2tpcC5ub2RlVHlwZSYmKGU9Yy5za2lwKTtsZXQgZCxmPXRoaXMubmVlZHNCbG9jaztpZihlV3IuaGFzT3duUHJvcGVydHkobykpbi5jb250ZW50Lmxlbmd0aCYmbi5jb250ZW50WzBdLmlzSW5saW5lJiZ0aGlzLm9wZW4mJih0aGlzLm9wZW4tLSxuPXRoaXMudG9wKSxkPSEwLG4udHlwZXx8KHRoaXMubmVlZHNCbG9jaz0hMCk7ZWxzZSBpZighZS5maXJzdENoaWxkKXt0aGlzLmxlYWZGYWxsYmFjayhlLHIpO2JyZWFrIGV9bGV0IHA9YyYmYy5za2lwP3I6dGhpcy5yZWFkU3R5bGVzKGUscik7cCYmdGhpcy5hZGRBbGwoZSxwKSxkJiZ0aGlzLnN5bmMobiksdGhpcy5uZWVkc0Jsb2NrPWZ9ZWxzZXtsZXQgZD10aGlzLnJlYWRTdHlsZXMoZSxyKTtkJiZ0aGlzLmFkZEVsZW1lbnRCeVJ1bGUoZSxjLGQsYy5jb25zdW1pbmc9PT0hMT9sOnZvaWQgMCl9dGhpcy5sb2NhbFByZXNlcnZlV1M9c31sZWFmRmFsbGJhY2soZSxyKXtlLm5vZGVOYW1lPT0iQlIiJiZ0aGlzLnRvcC50eXBlJiZ0aGlzLnRvcC50eXBlLmlubGluZUNvbnRlbnQmJnRoaXMuYWRkVGV4dE5vZGUoZS5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGAKYCkscil9aWdub3JlRmFsbGJhY2soZSxyKXtlLm5vZGVOYW1lPT0iQlIiJiYoIXRoaXMudG9wLnR5cGV8fCF0aGlzLnRvcC50eXBlLmlubGluZUNvbnRlbnQpJiZ0aGlzLmZpbmRQbGFjZSh0aGlzLnBhcnNlci5zY2hlbWEudGV4dCgiLSIpLHIsITApfXJlYWRTdHlsZXMoZSxyKXtsZXQgYT1lLnN0eWxlO2lmKGEmJmEubGVuZ3RoKWZvcihsZXQgcz0wO3M8dGhpcy5wYXJzZXIubWF0Y2hlZFN0eWxlcy5sZW5ndGg7cysrKXtsZXQgbj10aGlzLnBhcnNlci5tYXRjaGVkU3R5bGVzW3NdLG89YS5nZXRQcm9wZXJ0eVZhbHVlKG4pO2lmKG8pZm9yKGxldCBsPXZvaWQgMDs7KXtsZXQgYz10aGlzLnBhcnNlci5tYXRjaFN0eWxlKG4sbyx0aGlzLGwpO2lmKCFjKWJyZWFrO2lmKGMuaWdub3JlKXJldHVybiBudWxsO2lmKGMuY2xlYXJNYXJrP3I9ci5maWx0ZXIoZD0+IWMuY2xlYXJNYXJrKGQpKTpyPXIuY29uY2F0KHRoaXMucGFyc2VyLnNjaGVtYS5tYXJrc1tjLm1hcmtdLmNyZWF0ZShjLmF0dHJzKSksYy5jb25zdW1pbmc9PT0hMSlsPWM7ZWxzZSBicmVha319cmV0dXJuIHJ9YWRkRWxlbWVudEJ5UnVsZShlLHIsYSxzKXtsZXQgbixvO2lmKHIubm9kZSlpZihvPXRoaXMucGFyc2VyLnNjaGVtYS5ub2Rlc1tyLm5vZGVdLG8uaXNMZWFmKXRoaXMuaW5zZXJ0Tm9kZShvLmNyZWF0ZShyLmF0dHJzKSxhLGUubm9kZU5hbWU9PSJCUiIpfHx0aGlzLmxlYWZGYWxsYmFjayhlLGEpO2Vsc2V7bGV0IGM9dGhpcy5lbnRlcihvLHIuYXR0cnN8fG51bGwsYSxyLnByZXNlcnZlV2hpdGVzcGFjZSk7YyYmKG49ITAsYT1jKX1lbHNle2xldCBjPXRoaXMucGFyc2VyLnNjaGVtYS5tYXJrc1tyLm1hcmtdO2E9YS5jb25jYXQoYy5jcmVhdGUoci5hdHRycykpfWxldCBsPXRoaXMudG9wO2lmKG8mJm8uaXNMZWFmKXRoaXMuZmluZEluc2lkZShlKTtlbHNlIGlmKHMpdGhpcy5hZGRFbGVtZW50KGUsYSxzKTtlbHNlIGlmKHIuZ2V0Q29udGVudCl0aGlzLmZpbmRJbnNpZGUoZSksci5nZXRDb250ZW50KGUsdGhpcy5wYXJzZXIuc2NoZW1hKS5mb3JFYWNoKGM9PnRoaXMuaW5zZXJ0Tm9kZShjLGEsITEpKTtlbHNle2xldCBjPWU7dHlwZW9mIHIuY29udGVudEVsZW1lbnQ9PSJzdHJpbmciP2M9ZS5xdWVyeVNlbGVjdG9yKHIuY29udGVudEVsZW1lbnQpOnR5cGVvZiByLmNvbnRlbnRFbGVtZW50PT0iZnVuY3Rpb24iP2M9ci5jb250ZW50RWxlbWVudChlKTpyLmNvbnRlbnRFbGVtZW50JiYoYz1yLmNvbnRlbnRFbGVtZW50KSx0aGlzLmZpbmRBcm91bmQoZSxjLCEwKSx0aGlzLmFkZEFsbChjLGEpLHRoaXMuZmluZEFyb3VuZChlLGMsITEpfW4mJnRoaXMuc3luYyhsKSYmdGhpcy5vcGVuLS19YWRkQWxsKGUscixhLHMpe2xldCBuPWF8fDA7Zm9yKGxldCBvPWE/ZS5jaGlsZE5vZGVzW2FdOmUuZmlyc3RDaGlsZCxsPXM9PW51bGw/bnVsbDplLmNoaWxkTm9kZXNbc107byE9bDtvPW8ubmV4dFNpYmxpbmcsKytuKXRoaXMuZmluZEF0UG9pbnQoZSxuKSx0aGlzLmFkZERPTShvLHIpO3RoaXMuZmluZEF0UG9pbnQoZSxuKX1maW5kUGxhY2UoZSxyLGEpe2xldCBzLG47Zm9yKGxldCBvPXRoaXMub3BlbixsPTA7bz49MDtvLS0pe2xldCBjPXRoaXMubm9kZXNbb10sZD1jLmZpbmRXcmFwcGluZyhlKTtpZihkJiYoIXN8fHMubGVuZ3RoPmQubGVuZ3RoK2wpJiYocz1kLG49YywhZC5sZW5ndGgpKWJyZWFrO2lmKGMuc29saWQpe2lmKGEpYnJlYWs7bCs9Mn19aWYoIXMpcmV0dXJuIG51bGw7dGhpcy5zeW5jKG4pO2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXI9dGhpcy5lbnRlcklubmVyKHNbb10sbnVsbCxyLCExKTtyZXR1cm4gcn1pbnNlcnROb2RlKGUscixhKXtpZihlLmlzSW5saW5lJiZ0aGlzLm5lZWRzQmxvY2smJiF0aGlzLnRvcC50eXBlKXtsZXQgbj10aGlzLnRleHRibG9ja0Zyb21Db250ZXh0KCk7biYmKHI9dGhpcy5lbnRlcklubmVyKG4sbnVsbCxyKSl9bGV0IHM9dGhpcy5maW5kUGxhY2UoZSxyLGEpO2lmKHMpe3RoaXMuY2xvc2VFeHRyYSgpO2xldCBuPXRoaXMudG9wO24ubWF0Y2gmJihuLm1hdGNoPW4ubWF0Y2gubWF0Y2hUeXBlKGUudHlwZSkpO2xldCBvPWhhLm5vbmU7Zm9yKGxldCBsIG9mIHMuY29uY2F0KGUubWFya3MpKShuLnR5cGU/bi50eXBlLmFsbG93c01hcmtUeXBlKGwudHlwZSk6aVdyKGwudHlwZSxlLnR5cGUpKSYmKG89bC5hZGRUb1NldChvKSk7cmV0dXJuIG4uY29udGVudC5wdXNoKGUubWFyayhvKSksITB9cmV0dXJuITF9ZW50ZXIoZSxyLGEscyl7bGV0IG49dGhpcy5maW5kUGxhY2UoZS5jcmVhdGUociksYSwhMSk7cmV0dXJuIG4mJihuPXRoaXMuZW50ZXJJbm5lcihlLHIsYSwhMCxzKSksbn1lbnRlcklubmVyKGUscixhLHM9ITEsbil7dGhpcy5jbG9zZUV4dHJhKCk7bGV0IG89dGhpcy50b3A7by5tYXRjaD1vLm1hdGNoJiZvLm1hdGNoLm1hdGNoVHlwZShlKTtsZXQgbD1yV3IoZSxuLG8ub3B0aW9ucyk7by5vcHRpb25zJl90ZSYmby5jb250ZW50Lmxlbmd0aD09MCYmKGx8PV90ZSk7bGV0IGM9aGEubm9uZTtyZXR1cm4gYT1hLmZpbHRlcihkPT4oby50eXBlP28udHlwZS5hbGxvd3NNYXJrVHlwZShkLnR5cGUpOmlXcihkLnR5cGUsZSkpPyhjPWQuYWRkVG9TZXQoYyksITEpOiEwKSx0aGlzLm5vZGVzLnB1c2gobmV3IFV5KGUscixjLHMsbnVsbCxsKSksdGhpcy5vcGVuKyssYX1jbG9zZUV4dHJhKGU9ITEpe2xldCByPXRoaXMubm9kZXMubGVuZ3RoLTE7aWYocj50aGlzLm9wZW4pe2Zvcig7cj50aGlzLm9wZW47ci0tKXRoaXMubm9kZXNbci0xXS5jb250ZW50LnB1c2godGhpcy5ub2Rlc1tyXS5maW5pc2goZSkpO3RoaXMubm9kZXMubGVuZ3RoPXRoaXMub3BlbisxfX1maW5pc2goKXtyZXR1cm4gdGhpcy5vcGVuPTAsdGhpcy5jbG9zZUV4dHJhKHRoaXMuaXNPcGVuKSx0aGlzLm5vZGVzWzBdLmZpbmlzaCghISh0aGlzLmlzT3Blbnx8dGhpcy5vcHRpb25zLnRvcE9wZW4pKX1zeW5jKGUpe2ZvcihsZXQgcj10aGlzLm9wZW47cj49MDtyLS0pe2lmKHRoaXMubm9kZXNbcl09PWUpcmV0dXJuIHRoaXMub3Blbj1yLCEwO3RoaXMubG9jYWxQcmVzZXJ2ZVdTJiYodGhpcy5ub2Rlc1tyXS5vcHRpb25zfD16dGUpfXJldHVybiExfWdldCBjdXJyZW50UG9zKCl7dGhpcy5jbG9zZUV4dHJhKCk7bGV0IGU9MDtmb3IobGV0IHI9dGhpcy5vcGVuO3I+PTA7ci0tKXtsZXQgYT10aGlzLm5vZGVzW3JdLmNvbnRlbnQ7Zm9yKGxldCBzPWEubGVuZ3RoLTE7cz49MDtzLS0pZSs9YVtzXS5ub2RlU2l6ZTtyJiZlKyt9cmV0dXJuIGV9ZmluZEF0UG9pbnQoZSxyKXtpZih0aGlzLmZpbmQpZm9yKGxldCBhPTA7YTx0aGlzLmZpbmQubGVuZ3RoO2ErKyl0aGlzLmZpbmRbYV0ubm9kZT09ZSYmdGhpcy5maW5kW2FdLm9mZnNldD09ciYmKHRoaXMuZmluZFthXS5wb3M9dGhpcy5jdXJyZW50UG9zKX1maW5kSW5zaWRlKGUpe2lmKHRoaXMuZmluZClmb3IobGV0IHI9MDtyPHRoaXMuZmluZC5sZW5ndGg7cisrKXRoaXMuZmluZFtyXS5wb3M9PW51bGwmJmUubm9kZVR5cGU9PTEmJmUuY29udGFpbnModGhpcy5maW5kW3JdLm5vZGUpJiYodGhpcy5maW5kW3JdLnBvcz10aGlzLmN1cnJlbnRQb3MpfWZpbmRBcm91bmQoZSxyLGEpe2lmKGUhPXImJnRoaXMuZmluZClmb3IobGV0IHM9MDtzPHRoaXMuZmluZC5sZW5ndGg7cysrKXRoaXMuZmluZFtzXS5wb3M9PW51bGwmJmUubm9kZVR5cGU9PTEmJmUuY29udGFpbnModGhpcy5maW5kW3NdLm5vZGUpJiZyLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMuZmluZFtzXS5ub2RlKSYoYT8yOjQpJiYodGhpcy5maW5kW3NdLnBvcz10aGlzLmN1cnJlbnRQb3MpfWZpbmRJblRleHQoZSl7aWYodGhpcy5maW5kKWZvcihsZXQgcj0wO3I8dGhpcy5maW5kLmxlbmd0aDtyKyspdGhpcy5maW5kW3JdLm5vZGU9PWUmJih0aGlzLmZpbmRbcl0ucG9zPXRoaXMuY3VycmVudFBvcy0oZS5ub2RlVmFsdWUubGVuZ3RoLXRoaXMuZmluZFtyXS5vZmZzZXQpKX1tYXRjaGVzQ29udGV4dChlKXtpZihlLmluZGV4T2YoInwiKT4tMSlyZXR1cm4gZS5zcGxpdCgvXHMqXHxccyovKS5zb21lKHRoaXMubWF0Y2hlc0NvbnRleHQsdGhpcyk7bGV0IHI9ZS5zcGxpdCgiLyIpLGE9dGhpcy5vcHRpb25zLmNvbnRleHQscz0hdGhpcy5pc09wZW4mJighYXx8YS5wYXJlbnQudHlwZT09dGhpcy5ub2Rlc1swXS50eXBlKSxuPS0oYT9hLmRlcHRoKzE6MCkrKHM/MDoxKSxvPWkoKGwsYyk9Pntmb3IoO2w+PTA7bC0tKXtsZXQgZD1yW2xdO2lmKGQ9PSIiKXtpZihsPT1yLmxlbmd0aC0xfHxsPT0wKWNvbnRpbnVlO2Zvcig7Yz49bjtjLS0paWYobyhsLTEsYykpcmV0dXJuITA7cmV0dXJuITF9ZWxzZXtsZXQgZj1jPjB8fGM9PTAmJnM/dGhpcy5ub2Rlc1tjXS50eXBlOmEmJmM+PW4/YS5ub2RlKGMtbikudHlwZTpudWxsO2lmKCFmfHxmLm5hbWUhPWQmJiFmLmlzSW5Hcm91cChkKSlyZXR1cm4hMTtjLS19fXJldHVybiEwfSwibWF0Y2giKTtyZXR1cm4gbyhyLmxlbmd0aC0xLHRoaXMub3Blbil9dGV4dGJsb2NrRnJvbUNvbnRleHQoKXtsZXQgZT10aGlzLm9wdGlvbnMuY29udGV4dDtpZihlKWZvcihsZXQgcj1lLmRlcHRoO3I+PTA7ci0tKXtsZXQgYT1lLm5vZGUocikuY29udGVudE1hdGNoQXQoZS5pbmRleEFmdGVyKHIpKS5kZWZhdWx0VHlwZTtpZihhJiZhLmlzVGV4dGJsb2NrJiZhLmRlZmF1bHRBdHRycylyZXR1cm4gYX1mb3IobGV0IHIgaW4gdGhpcy5wYXJzZXIuc2NoZW1hLm5vZGVzKXtsZXQgYT10aGlzLnBhcnNlci5zY2hlbWEubm9kZXNbcl07aWYoYS5pc1RleHRibG9jayYmYS5kZWZhdWx0QXR0cnMpcmV0dXJuIGF9fX07aSh6SWEsIm5vcm1hbGl6ZUxpc3QiKTtpKF9JYSwibWF0Y2hlcyIpO2koYVdyLCJjb3B5Iik7aShpV3IsIm1hcmtNYXlBcHBseSIpO29kPWNsYXNzIHR7c3RhdGlje2kodGhpcywiRE9NU2VyaWFsaXplciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5ub2Rlcz1lLHRoaXMubWFya3M9cn1zZXJpYWxpemVGcmFnbWVudChlLHI9e30sYSl7YXx8KGE9YmZlKHIpLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7bGV0IHM9YSxuPVtdO3JldHVybiBlLmZvckVhY2gobz0+e2lmKG4ubGVuZ3RofHxvLm1hcmtzLmxlbmd0aCl7bGV0IGw9MCxjPTA7Zm9yKDtsPG4ubGVuZ3RoJiZjPG8ubWFya3MubGVuZ3RoOyl7bGV0IGQ9by5tYXJrc1tjXTtpZighdGhpcy5tYXJrc1tkLnR5cGUubmFtZV0pe2MrKztjb250aW51ZX1pZighZC5lcShuW2xdWzBdKXx8ZC50eXBlLnNwZWMuc3Bhbm5pbmc9PT0hMSlicmVhaztsKyssYysrfWZvcig7bDxuLmxlbmd0aDspcz1uLnBvcCgpWzFdO2Zvcig7YzxvLm1hcmtzLmxlbmd0aDspe2xldCBkPW8ubWFya3NbYysrXSxmPXRoaXMuc2VyaWFsaXplTWFyayhkLG8uaXNJbmxpbmUscik7ZiYmKG4ucHVzaChbZCxzXSkscy5hcHBlbmRDaGlsZChmLmRvbSkscz1mLmNvbnRlbnRET018fGYuZG9tKX19cy5hcHBlbmRDaGlsZCh0aGlzLnNlcmlhbGl6ZU5vZGVJbm5lcihvLHIpKX0pLGF9c2VyaWFsaXplTm9kZUlubmVyKGUscil7aWYoZS5pc1RleHQpcmV0dXJuIGJmZShyKS5jcmVhdGVUZXh0Tm9kZShlLnRleHQpO2xldHtkb206YSxjb250ZW50RE9NOnN9PXhmZShiZmUociksdGhpcy5ub2Rlc1tlLnR5cGUubmFtZV0oZSksbnVsbCxlLmF0dHJzKTtpZihzKXtpZihlLmlzTGVhZil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ29udGVudCBob2xlIG5vdCBhbGxvd2VkIGluIGEgbGVhZiBub2RlIHNwZWMiKTt0aGlzLnNlcmlhbGl6ZUZyYWdtZW50KGUuY29udGVudCxyLHMpfXJldHVybiBhfXNlcmlhbGl6ZU5vZGUoZSxyPXt9KXtsZXQgYT10aGlzLnNlcmlhbGl6ZU5vZGVJbm5lcihlLHIpO2ZvcihsZXQgcz1lLm1hcmtzLmxlbmd0aC0xO3M+PTA7cy0tKXtsZXQgbj10aGlzLnNlcmlhbGl6ZU1hcmsoZS5tYXJrc1tzXSxlLmlzSW5saW5lLHIpO24mJigobi5jb250ZW50RE9NfHxuLmRvbSkuYXBwZW5kQ2hpbGQoYSksYT1uLmRvbSl9cmV0dXJuIGF9c2VyaWFsaXplTWFyayhlLHIsYT17fSl7bGV0IHM9dGhpcy5tYXJrc1tlLnR5cGUubmFtZV07cmV0dXJuIHMmJnhmZShiZmUoYSkscyhlLHIpLG51bGwsZS5hdHRycyl9c3RhdGljIHJlbmRlclNwZWMoZSxyLGE9bnVsbCxzKXtyZXR1cm4gdHlwZW9mIHI9PSJzdHJpbmciP3tkb206ZS5jcmVhdGVUZXh0Tm9kZShyKX06eGZlKGUscixhLHMpfXN0YXRpYyBmcm9tU2NoZW1hKGUpe3JldHVybiBlLmNhY2hlZC5kb21TZXJpYWxpemVyfHwoZS5jYWNoZWQuZG9tU2VyaWFsaXplcj1uZXcgdCh0aGlzLm5vZGVzRnJvbVNjaGVtYShlKSx0aGlzLm1hcmtzRnJvbVNjaGVtYShlKSkpfXN0YXRpYyBub2Rlc0Zyb21TY2hlbWEoZSl7bGV0IHI9c1dyKGUubm9kZXMpO3JldHVybiByLnRleHR8fChyLnRleHQ9YT0+YS50ZXh0KSxyfXN0YXRpYyBtYXJrc0Zyb21TY2hlbWEoZSl7cmV0dXJuIHNXcihlLm1hcmtzKX19O2koc1dyLCJnYXRoZXJUb0RPTSIpO2koYmZlLCJkb2MiKTtuV3I9bmV3IFdlYWtNYXA7aShUSWEsInN1c3BpY2lvdXNBdHRyaWJ1dGVzIik7aShMSWEsInN1c3BpY2lvdXNBdHRyaWJ1dGVzSW5uZXIiKTtpKHhmZSwicmVuZGVyU3BlYyIpfSk7ZnVuY3Rpb24gRElhKHQsZSl7cmV0dXJuIHQrZSpsV3J9ZnVuY3Rpb24gY1dyKHQpe3JldHVybiB0Jm9Xcn1mdW5jdGlvbiAkSWEodCl7cmV0dXJuKHQtKHQmb1dyKSkvbFdyfWZ1bmN0aW9uIG1tdCh0LGUscil7bGV0IGE9W107Zm9yKGxldCBzPTA7czx0LmNoaWxkQ291bnQ7cysrKXtsZXQgbj10LmNoaWxkKHMpO24uY29udGVudC5zaXplJiYobj1uLmNvcHkobW10KG4uY29udGVudCxlLG4pKSksbi5pc0lubGluZSYmKG49ZShuLHIscykpLGEucHVzaChuKX1yZXR1cm4gSmUuZnJvbUFycmF5KGEpfWZ1bmN0aW9uIGdtdCh0LGUscil7bGV0IGE9dC5yZXNvbHZlKGUpLHM9ci1lLG49YS5kZXB0aDtmb3IoO3M+MCYmbj4wJiZhLmluZGV4QWZ0ZXIobik9PWEubm9kZShuKS5jaGlsZENvdW50OyluLS0scy0tO2lmKHM+MCl7bGV0IG89YS5ub2RlKG4pLm1heWJlQ2hpbGQoYS5pbmRleEFmdGVyKG4pKTtmb3IoO3M+MDspe2lmKCFvfHxvLmlzTGVhZilyZXR1cm4hMDtvPW8uZmlyc3RDaGlsZCxzLS19fXJldHVybiExfWZ1bmN0aW9uIEFJYSh0LGUscixhKXtsZXQgcz1bXSxuPVtdLG8sbDt0LmRvYy5ub2Rlc0JldHdlZW4oZSxyLChjLGQsZik9PntpZighYy5pc0lubGluZSlyZXR1cm47bGV0IHA9Yy5tYXJrcztpZighYS5pc0luU2V0KHApJiZmLnR5cGUuYWxsb3dzTWFya1R5cGUoYS50eXBlKSl7bGV0IGg9TWF0aC5tYXgoZCxlKSxtPU1hdGgubWluKGQrYy5ub2RlU2l6ZSxyKSx2PWEuYWRkVG9TZXQocCk7Zm9yKGxldCBiPTA7YjxwLmxlbmd0aDtiKyspcFtiXS5pc0luU2V0KHYpfHwobyYmby50bz09aCYmby5tYXJrLmVxKHBbYl0pP28udG89bTpzLnB1c2gobz1uZXcgVXAoaCxtLHBbYl0pKSk7bCYmbC50bz09aD9sLnRvPW06bi5wdXNoKGw9bmV3IEt5KGgsbSxhKSl9fSkscy5mb3JFYWNoKGM9PnQuc3RlcChjKSksbi5mb3JFYWNoKGM9PnQuc3RlcChjKSl9ZnVuY3Rpb24gRUlhKHQsZSxyLGEpe2xldCBzPVtdLG49MDt0LmRvYy5ub2Rlc0JldHdlZW4oZSxyLChvLGwpPT57aWYoIW8uaXNJbmxpbmUpcmV0dXJuO24rKztsZXQgYz1udWxsO2lmKGEgaW5zdGFuY2VvZiBXeSl7bGV0IGQ9by5tYXJrcyxmO2Zvcig7Zj1hLmlzSW5TZXQoZCk7KShjfHwoYz1bXSkpLnB1c2goZiksZD1mLnJlbW92ZUZyb21TZXQoZCl9ZWxzZSBhP2EuaXNJblNldChvLm1hcmtzKSYmKGM9W2FdKTpjPW8ubWFya3M7aWYoYyYmYy5sZW5ndGgpe2xldCBkPU1hdGgubWluKGwrby5ub2RlU2l6ZSxyKTtmb3IobGV0IGY9MDtmPGMubGVuZ3RoO2YrKyl7bGV0IHA9Y1tmXSxoO2ZvcihsZXQgbT0wO208cy5sZW5ndGg7bSsrKXtsZXQgdj1zW21dO3Yuc3RlcD09bi0xJiZwLmVxKHNbbV0uc3R5bGUpJiYoaD12KX1oPyhoLnRvPWQsaC5zdGVwPW4pOnMucHVzaCh7c3R5bGU6cCxmcm9tOk1hdGgubWF4KGwsZSksdG86ZCxzdGVwOm59KX19fSkscy5mb3JFYWNoKG89PnQuc3RlcChuZXcgVXAoby5mcm9tLG8udG8sby5zdHlsZSkpKX1mdW5jdGlvbiBibXQodCxlLHIsYT1yLmNvbnRlbnRNYXRjaCxzPSEwKXtsZXQgbj10LmRvYy5ub2RlQXQoZSksbz1bXSxsPWUrMTtmb3IobGV0IGM9MDtjPG4uY2hpbGRDb3VudDtjKyspe2xldCBkPW4uY2hpbGQoYyksZj1sK2Qubm9kZVNpemUscD1hLm1hdGNoVHlwZShkLnR5cGUpO2lmKCFwKW8ucHVzaChuZXcgSW4obCxmLG10LmVtcHR5KSk7ZWxzZXthPXA7Zm9yKGxldCBoPTA7aDxkLm1hcmtzLmxlbmd0aDtoKyspci5hbGxvd3NNYXJrVHlwZShkLm1hcmtzW2hdLnR5cGUpfHx0LnN0ZXAobmV3IFVwKGwsZixkLm1hcmtzW2hdKSk7aWYocyYmZC5pc1RleHQmJnIud2hpdGVzcGFjZSE9InByZSIpe2xldCBoLG09L1xyP1xufFxyL2csdjtmb3IoO2g9bS5leGVjKGQudGV4dCk7KXZ8fCh2PW5ldyBtdChKZS5mcm9tKHIuc2NoZW1hLnRleHQoIiAiLHIuYWxsb3dlZE1hcmtzKGQubWFya3MpKSksMCwwKSksby5wdXNoKG5ldyBJbihsK2guaW5kZXgsbCtoLmluZGV4K2hbMF0ubGVuZ3RoLHYpKX19bD1mfWlmKCFhLnZhbGlkRW5kKXtsZXQgYz1hLmZpbGxCZWZvcmUoSmUuZW1wdHksITApO3QucmVwbGFjZShsLGwsbmV3IG10KGMsMCwwKSl9Zm9yKGxldCBjPW8ubGVuZ3RoLTE7Yz49MDtjLS0pdC5zdGVwKG9bY10pfWZ1bmN0aW9uIElJYSh0LGUscil7cmV0dXJuKGU9PTB8fHQuY2FuUmVwbGFjZShlLHQuY2hpbGRDb3VudCkpJiYocj09dC5jaGlsZENvdW50fHx0LmNhblJlcGxhY2UoMCxyKSl9ZnVuY3Rpb24gY2QodCl7bGV0IHI9dC5wYXJlbnQuY29udGVudC5jdXRCeUluZGV4KHQuc3RhcnRJbmRleCx0LmVuZEluZGV4KTtmb3IobGV0IGE9dC5kZXB0aCxzPTAsbj0wOzstLWEpe2xldCBvPXQuJGZyb20ubm9kZShhKSxsPXQuJGZyb20uaW5kZXgoYSkrcyxjPXQuJHRvLmluZGV4QWZ0ZXIoYSktbjtpZihhPHQuZGVwdGgmJm8uY2FuUmVwbGFjZShsLGMscikpcmV0dXJuIGE7aWYoYT09MHx8by50eXBlLnNwZWMuaXNvbGF0aW5nfHwhSUlhKG8sbCxjKSlicmVhaztsJiYocz0xKSxjPG8uY2hpbGRDb3VudCYmKG49MSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gUElhKHQsZSxyKXtsZXR7JGZyb206YSwkdG86cyxkZXB0aDpufT1lLG89YS5iZWZvcmUobisxKSxsPXMuYWZ0ZXIobisxKSxjPW8sZD1sLGY9SmUuZW1wdHkscD0wO2ZvcihsZXQgdj1uLGI9ITE7dj5yO3YtLSlifHxhLmluZGV4KHYpPjA/KGI9ITAsZj1KZS5mcm9tKGEubm9kZSh2KS5jb3B5KGYpKSxwKyspOmMtLTtsZXQgaD1KZS5lbXB0eSxtPTA7Zm9yKGxldCB2PW4sYj0hMTt2PnI7di0tKWJ8fHMuYWZ0ZXIodisxKTxzLmVuZCh2KT8oYj0hMCxoPUplLmZyb20ocy5ub2RlKHYpLmNvcHkoaCkpLG0rKyk6ZCsrO3Quc3RlcChuZXcgZHMoYyxkLG8sbCxuZXcgbXQoZi5hcHBlbmQoaCkscCxtKSxmLnNpemUtcCwhMCkpfWZ1bmN0aW9uIEU5KHQsZSxyPW51bGwsYT10KXtsZXQgcz1OSWEodCxlKSxuPXMmJk9JYShhLGUpO3JldHVybiBuP3MubWFwKGZXcikuY29uY2F0KHt0eXBlOmUsYXR0cnM6cn0pLmNvbmNhdChuLm1hcChmV3IpKTpudWxsfWZ1bmN0aW9uIGZXcih0KXtyZXR1cm57dHlwZTp0LGF0dHJzOm51bGx9fWZ1bmN0aW9uIE5JYSh0LGUpe2xldHtwYXJlbnQ6cixzdGFydEluZGV4OmEsZW5kSW5kZXg6c309dCxuPXIuY29udGVudE1hdGNoQXQoYSkuZmluZFdyYXBwaW5nKGUpO2lmKCFuKXJldHVybiBudWxsO2xldCBvPW4ubGVuZ3RoP25bMF06ZTtyZXR1cm4gci5jYW5SZXBsYWNlV2l0aChhLHMsbyk/bjpudWxsfWZ1bmN0aW9uIE9JYSh0LGUpe2xldHtwYXJlbnQ6cixzdGFydEluZGV4OmEsZW5kSW5kZXg6c309dCxuPXIuY2hpbGQoYSksbz1lLmNvbnRlbnRNYXRjaC5maW5kV3JhcHBpbmcobi50eXBlKTtpZighbylyZXR1cm4gbnVsbDtsZXQgYz0oby5sZW5ndGg/b1tvLmxlbmd0aC0xXTplKS5jb250ZW50TWF0Y2g7Zm9yKGxldCBkPWE7YyYmZDxzO2QrKyljPWMubWF0Y2hUeXBlKHIuY2hpbGQoZCkudHlwZSk7cmV0dXJuIWN8fCFjLnZhbGlkRW5kP251bGw6b31mdW5jdGlvbiBSSWEodCxlLHIpe2xldCBhPUplLmVtcHR5O2ZvcihsZXQgbz1yLmxlbmd0aC0xO28+PTA7by0tKXtpZihhLnNpemUpe2xldCBsPXJbb10udHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudChhKTtpZighbHx8IWwudmFsaWRFbmQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIldyYXBwZXIgdHlwZSBnaXZlbiB0byBUcmFuc2Zvcm0ud3JhcCBkb2VzIG5vdCBmb3JtIHZhbGlkIGNvbnRlbnQgb2YgaXRzIHBhcmVudCB3cmFwcGVyIil9YT1KZS5mcm9tKHJbb10udHlwZS5jcmVhdGUocltvXS5hdHRycyxhKSl9bGV0IHM9ZS5zdGFydCxuPWUuZW5kO3Quc3RlcChuZXcgZHMocyxuLHMsbixuZXcgbXQoYSwwLDApLHIubGVuZ3RoLCEwKSl9ZnVuY3Rpb24gRklhKHQsZSxyLGEscyl7aWYoIWEuaXNUZXh0YmxvY2spdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlR5cGUgZ2l2ZW4gdG8gc2V0QmxvY2tUeXBlIHNob3VsZCBiZSBhIHRleHRibG9jayIpO2xldCBuPXQuc3RlcHMubGVuZ3RoO3QuZG9jLm5vZGVzQmV0d2VlbihlLHIsKG8sbCk9PntsZXQgYz10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zKG8pOnM7aWYoby5pc1RleHRibG9jayYmIW8uaGFzTWFya3VwKGEsYykmJkJJYSh0LmRvYyx0Lm1hcHBpbmcuc2xpY2UobikubWFwKGwpLGEpKXtsZXQgZD1udWxsO2lmKGEuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50KXtsZXQgbT1hLndoaXRlc3BhY2U9PSJwcmUiLHY9ISFhLmNvbnRlbnRNYXRjaC5tYXRjaFR5cGUoYS5zY2hlbWEubGluZWJyZWFrUmVwbGFjZW1lbnQpO20mJiF2P2Q9ITE6IW0mJnYmJihkPSEwKX1kPT09ITEmJm1Xcih0LG8sbCxuKSxibXQodCx0Lm1hcHBpbmcuc2xpY2UobikubWFwKGwsMSksYSx2b2lkIDAsZD09PW51bGwpO2xldCBmPXQubWFwcGluZy5zbGljZShuKSxwPWYubWFwKGwsMSksaD1mLm1hcChsK28ubm9kZVNpemUsMSk7cmV0dXJuIHQuc3RlcChuZXcgZHMocCxoLHArMSxoLTEsbmV3IG10KEplLmZyb20oYS5jcmVhdGUoYyxudWxsLG8ubWFya3MpKSwwLDApLDEsITApKSxkPT09ITAmJmhXcih0LG8sbCxuKSwhMX19KX1mdW5jdGlvbiBoV3IodCxlLHIsYSl7ZS5mb3JFYWNoKChzLG4pPT57aWYocy5pc1RleHQpe2xldCBvLGw9L1xyP1xufFxyL2c7Zm9yKDtvPWwuZXhlYyhzLnRleHQpOyl7bGV0IGM9dC5tYXBwaW5nLnNsaWNlKGEpLm1hcChyKzErbitvLmluZGV4KTt0LnJlcGxhY2VXaXRoKGMsYysxLGUudHlwZS5zY2hlbWEubGluZWJyZWFrUmVwbGFjZW1lbnQuY3JlYXRlKCkpfX19KX1mdW5jdGlvbiBtV3IodCxlLHIsYSl7ZS5mb3JFYWNoKChzLG4pPT57aWYocy50eXBlPT1zLnR5cGUuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50KXtsZXQgbz10Lm1hcHBpbmcuc2xpY2UoYSkubWFwKHIrMStuKTt0LnJlcGxhY2VXaXRoKG8sbysxLGUudHlwZS5zY2hlbWEudGV4dChgCmApKX19KX1mdW5jdGlvbiBCSWEodCxlLHIpe2xldCBhPXQucmVzb2x2ZShlKSxzPWEuaW5kZXgoKTtyZXR1cm4gYS5wYXJlbnQuY2FuUmVwbGFjZVdpdGgocyxzKzEscil9ZnVuY3Rpb24gSElhKHQsZSxyLGEscyl7bGV0IG49dC5kb2Mubm9kZUF0KGUpO2lmKCFuKXRocm93IG5ldyBSYW5nZUVycm9yKCJObyBub2RlIGF0IGdpdmVuIHBvc2l0aW9uIik7cnx8KHI9bi50eXBlKTtsZXQgbz1yLmNyZWF0ZShhLG51bGwsc3x8bi5tYXJrcyk7aWYobi5pc0xlYWYpcmV0dXJuIHQucmVwbGFjZVdpdGgoZSxlK24ubm9kZVNpemUsbyk7aWYoIXIudmFsaWRDb250ZW50KG4uY29udGVudCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgY29udGVudCBmb3Igbm9kZSB0eXBlICIrci5uYW1lKTt0LnN0ZXAobmV3IGRzKGUsZStuLm5vZGVTaXplLGUrMSxlK24ubm9kZVNpemUtMSxuZXcgbXQoSmUuZnJvbShvKSwwLDApLDEsITApKX1mdW5jdGlvbiBBMSh0LGUscj0xLGEpe2xldCBzPXQucmVzb2x2ZShlKSxuPXMuZGVwdGgtcixvPWEmJmFbYS5sZW5ndGgtMV18fHMucGFyZW50O2lmKG48MHx8cy5wYXJlbnQudHlwZS5zcGVjLmlzb2xhdGluZ3x8IXMucGFyZW50LmNhblJlcGxhY2Uocy5pbmRleCgpLHMucGFyZW50LmNoaWxkQ291bnQpfHwhby50eXBlLnZhbGlkQ29udGVudChzLnBhcmVudC5jb250ZW50LmN1dEJ5SW5kZXgocy5pbmRleCgpLHMucGFyZW50LmNoaWxkQ291bnQpKSlyZXR1cm4hMTtmb3IobGV0IGQ9cy5kZXB0aC0xLGY9ci0yO2Q+bjtkLS0sZi0tKXtsZXQgcD1zLm5vZGUoZCksaD1zLmluZGV4KGQpO2lmKHAudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMTtsZXQgbT1wLmNvbnRlbnQuY3V0QnlJbmRleChoLHAuY2hpbGRDb3VudCksdj1hJiZhW2YrMV07diYmKG09bS5yZXBsYWNlQ2hpbGQoMCx2LnR5cGUuY3JlYXRlKHYuYXR0cnMpKSk7bGV0IGI9YSYmYVtmXXx8cDtpZighcC5jYW5SZXBsYWNlKGgrMSxwLmNoaWxkQ291bnQpfHwhYi50eXBlLnZhbGlkQ29udGVudChtKSlyZXR1cm4hMX1sZXQgbD1zLmluZGV4QWZ0ZXIobiksYz1hJiZhWzBdO3JldHVybiBzLm5vZGUobikuY2FuUmVwbGFjZVdpdGgobCxsLGM/Yy50eXBlOnMubm9kZShuKzEpLnR5cGUpfWZ1bmN0aW9uIHFJYSh0LGUscj0xLGEpe2xldCBzPXQuZG9jLnJlc29sdmUoZSksbj1KZS5lbXB0eSxvPUplLmVtcHR5O2ZvcihsZXQgbD1zLmRlcHRoLGM9cy5kZXB0aC1yLGQ9ci0xO2w+YztsLS0sZC0tKXtuPUplLmZyb20ocy5ub2RlKGwpLmNvcHkobikpO2xldCBmPWEmJmFbZF07bz1KZS5mcm9tKGY/Zi50eXBlLmNyZWF0ZShmLmF0dHJzLG8pOnMubm9kZShsKS5jb3B5KG8pKX10LnN0ZXAobmV3IEluKGUsZSxuZXcgbXQobi5hcHBlbmQobykscixyKSwhMCkpfWZ1bmN0aW9uIGNsKHQsZSl7bGV0IHI9dC5yZXNvbHZlKGUpLGE9ci5pbmRleCgpO3JldHVybiBnV3Ioci5ub2RlQmVmb3JlLHIubm9kZUFmdGVyKSYmci5wYXJlbnQuY2FuUmVwbGFjZShhLGErMSl9ZnVuY3Rpb24gVklhKHQsZSl7ZS5jb250ZW50LnNpemV8fHQudHlwZS5jb21wYXRpYmxlQ29udGVudChlLnR5cGUpO2xldCByPXQuY29udGVudE1hdGNoQXQodC5jaGlsZENvdW50KSx7bGluZWJyZWFrUmVwbGFjZW1lbnQ6YX09dC50eXBlLnNjaGVtYTtmb3IobGV0IHM9MDtzPGUuY2hpbGRDb3VudDtzKyspe2xldCBuPWUuY2hpbGQocyksbz1uLnR5cGU9PWE/dC50eXBlLnNjaGVtYS5ub2Rlcy50ZXh0Om4udHlwZTtpZihyPXIubWF0Y2hUeXBlKG8pLCFyfHwhdC50eXBlLmFsbG93c01hcmtzKG4ubWFya3MpKXJldHVybiExfXJldHVybiByLnZhbGlkRW5kfWZ1bmN0aW9uIGdXcih0LGUpe3JldHVybiEhKHQmJmUmJiF0LmlzTGVhZiYmVklhKHQsZSkpfWZ1bmN0aW9uIEk5KHQsZSxyPS0xKXtsZXQgYT10LnJlc29sdmUoZSk7Zm9yKGxldCBzPWEuZGVwdGg7O3MtLSl7bGV0IG4sbyxsPWEuaW5kZXgocyk7aWYocz09YS5kZXB0aD8obj1hLm5vZGVCZWZvcmUsbz1hLm5vZGVBZnRlcik6cj4wPyhuPWEubm9kZShzKzEpLGwrKyxvPWEubm9kZShzKS5tYXliZUNoaWxkKGwpKToobj1hLm5vZGUocykubWF5YmVDaGlsZChsLTEpLG89YS5ub2RlKHMrMSkpLG4mJiFuLmlzVGV4dGJsb2NrJiZnV3IobixvKSYmYS5ub2RlKHMpLmNhblJlcGxhY2UobCxsKzEpKXJldHVybiBlO2lmKHM9PTApYnJlYWs7ZT1yPDA/YS5iZWZvcmUocyk6YS5hZnRlcihzKX19ZnVuY3Rpb24gaklhKHQsZSxyKXtsZXQgYT1udWxsLHtsaW5lYnJlYWtSZXBsYWNlbWVudDpzfT10LmRvYy50eXBlLnNjaGVtYSxuPXQuZG9jLnJlc29sdmUoZS1yKSxvPW4ubm9kZSgpLnR5cGU7aWYocyYmby5pbmxpbmVDb250ZW50KXtsZXQgZj1vLndoaXRlc3BhY2U9PSJwcmUiLHA9ISFvLmNvbnRlbnRNYXRjaC5tYXRjaFR5cGUocyk7ZiYmIXA/YT0hMTohZiYmcCYmKGE9ITApfWxldCBsPXQuc3RlcHMubGVuZ3RoO2lmKGE9PT0hMSl7bGV0IGY9dC5kb2MucmVzb2x2ZShlK3IpO21Xcih0LGYubm9kZSgpLGYuYmVmb3JlKCksbCl9by5pbmxpbmVDb250ZW50JiZibXQodCxlK3ItMSxvLG4ubm9kZSgpLmNvbnRlbnRNYXRjaEF0KG4uaW5kZXgoKSksYT09bnVsbCk7bGV0IGM9dC5tYXBwaW5nLnNsaWNlKGwpLGQ9Yy5tYXAoZS1yKTtpZih0LnN0ZXAobmV3IEluKGQsYy5tYXAoZStyLC0xKSxtdC5lbXB0eSwhMCkpLGE9PT0hMCl7bGV0IGY9dC5kb2MucmVzb2x2ZShkKTtoV3IodCxmLm5vZGUoKSxmLmJlZm9yZSgpLHQuc3RlcHMubGVuZ3RoKX1yZXR1cm4gdH1mdW5jdGlvbiBiV3IodCxlLHIpe2xldCBhPXQucmVzb2x2ZShlKTtpZihhLnBhcmVudC5jYW5SZXBsYWNlV2l0aChhLmluZGV4KCksYS5pbmRleCgpLHIpKXJldHVybiBlO2lmKGEucGFyZW50T2Zmc2V0PT0wKWZvcihsZXQgcz1hLmRlcHRoLTE7cz49MDtzLS0pe2xldCBuPWEuaW5kZXgocyk7aWYoYS5ub2RlKHMpLmNhblJlcGxhY2VXaXRoKG4sbixyKSlyZXR1cm4gYS5iZWZvcmUocysxKTtpZihuPjApcmV0dXJuIG51bGx9aWYoYS5wYXJlbnRPZmZzZXQ9PWEucGFyZW50LmNvbnRlbnQuc2l6ZSlmb3IobGV0IHM9YS5kZXB0aC0xO3M+PTA7cy0tKXtsZXQgbj1hLmluZGV4QWZ0ZXIocyk7aWYoYS5ub2RlKHMpLmNhblJlcGxhY2VXaXRoKG4sbixyKSlyZXR1cm4gYS5hZnRlcihzKzEpO2lmKG48YS5ub2RlKHMpLmNoaWxkQ291bnQpcmV0dXJuIG51bGx9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQXRlKHQsZSxyKXtsZXQgYT10LnJlc29sdmUoZSk7aWYoIXIuY29udGVudC5zaXplKXJldHVybiBlO2xldCBzPXIuY29udGVudDtmb3IobGV0IG49MDtuPHIub3BlblN0YXJ0O24rKylzPXMuZmlyc3RDaGlsZC5jb250ZW50O2ZvcihsZXQgbj0xO248PShyLm9wZW5TdGFydD09MCYmci5zaXplPzI6MSk7bisrKWZvcihsZXQgbz1hLmRlcHRoO28+PTA7by0tKXtsZXQgbD1vPT1hLmRlcHRoPzA6YS5wb3M8PShhLnN0YXJ0KG8rMSkrYS5lbmQobysxKSkvMj8tMToxLGM9YS5pbmRleChvKSsobD4wPzE6MCksZD1hLm5vZGUobyksZj0hMTtpZihuPT0xKWY9ZC5jYW5SZXBsYWNlKGMsYyxzKTtlbHNle2xldCBwPWQuY29udGVudE1hdGNoQXQoYykuZmluZFdyYXBwaW5nKHMuZmlyc3RDaGlsZC50eXBlKTtmPXAmJmQuY2FuUmVwbGFjZVdpdGgoYyxjLHBbMF0pfWlmKGYpcmV0dXJuIGw9PTA/YS5wb3M6bDwwP2EuYmVmb3JlKG8rMSk6YS5hZnRlcihvKzEpfXJldHVybiBudWxsfWZ1bmN0aW9uIFh5KHQsZSxyPWUsYT1tdC5lbXB0eSl7aWYoZT09ciYmIWEuc2l6ZSlyZXR1cm4gbnVsbDtsZXQgcz10LnJlc29sdmUoZSksbj10LnJlc29sdmUocik7cmV0dXJuIHhXcihzLG4sYSk/bmV3IEluKGUscixhKTpuZXcgeG10KHMsbixhKS5maXQoKX1mdW5jdGlvbiB4V3IodCxlLHIpe3JldHVybiFyLm9wZW5TdGFydCYmIXIub3BlbkVuZCYmdC5zdGFydCgpPT1lLnN0YXJ0KCkmJnQucGFyZW50LmNhblJlcGxhY2UodC5pbmRleCgpLGUuaW5kZXgoKSxyLmNvbnRlbnQpfWZ1bmN0aW9uIFR0ZSh0LGUscil7cmV0dXJuIGU9PTA/dC5jdXRCeUluZGV4KHIsdC5jaGlsZENvdW50KTp0LnJlcGxhY2VDaGlsZCgwLHQuZmlyc3RDaGlsZC5jb3B5KFR0ZSh0LmZpcnN0Q2hpbGQuY29udGVudCxlLTEscikpKX1mdW5jdGlvbiBMdGUodCxlLHIpe3JldHVybiBlPT0wP3QuYXBwZW5kKHIpOnQucmVwbGFjZUNoaWxkKHQuY2hpbGRDb3VudC0xLHQubGFzdENoaWxkLmNvcHkoTHRlKHQubGFzdENoaWxkLmNvbnRlbnQsZS0xLHIpKSl9ZnVuY3Rpb24gdm10KHQsZSl7Zm9yKGxldCByPTA7cjxlO3IrKyl0PXQuZmlyc3RDaGlsZC5jb250ZW50O3JldHVybiB0fWZ1bmN0aW9uIHZXcih0LGUscil7aWYoZTw9MClyZXR1cm4gdDtsZXQgYT10LmNvbnRlbnQ7cmV0dXJuIGU+MSYmKGE9YS5yZXBsYWNlQ2hpbGQoMCx2V3IoYS5maXJzdENoaWxkLGUtMSxhLmNoaWxkQ291bnQ9PTE/ci0xOjApKSksZT4wJiYoYT10LnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUoYSkuYXBwZW5kKGEpLHI8PTAmJihhPWEuYXBwZW5kKHQudHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudChhKS5maWxsQmVmb3JlKEplLmVtcHR5LCEwKSkpKSx0LmNvcHkoYSl9ZnVuY3Rpb24geW10KHQsZSxyLGEscyl7bGV0IG49dC5ub2RlKGUpLG89cz90LmluZGV4QWZ0ZXIoZSk6dC5pbmRleChlKTtpZihvPT1uLmNoaWxkQ291bnQmJiFyLmNvbXBhdGlibGVDb250ZW50KG4udHlwZSkpcmV0dXJuIG51bGw7bGV0IGw9YS5maWxsQmVmb3JlKG4uY29udGVudCwhMCxvKTtyZXR1cm4gbCYmIVVJYShyLG4uY29udGVudCxvKT9sOm51bGx9ZnVuY3Rpb24gVUlhKHQsZSxyKXtmb3IobGV0IGE9cjthPGUuY2hpbGRDb3VudDthKyspaWYoIXQuYWxsb3dzTWFya3MoZS5jaGlsZChhKS5tYXJrcykpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gV0lhKHQpe3JldHVybiB0LnNwZWMuZGVmaW5pbmd8fHQuc3BlYy5kZWZpbmluZ0ZvckNvbnRlbnR9ZnVuY3Rpb24gR0lhKHQsZSxyLGEpe2lmKCFhLnNpemUpcmV0dXJuIHQuZGVsZXRlUmFuZ2UoZSxyKTtsZXQgcz10LmRvYy5yZXNvbHZlKGUpLG49dC5kb2MucmVzb2x2ZShyKTtpZih4V3IocyxuLGEpKXJldHVybiB0LnN0ZXAobmV3IEluKGUscixhKSk7bGV0IG89d1dyKHMsbik7b1tvLmxlbmd0aC0xXT09MCYmby5wb3AoKTtsZXQgbD0tKHMuZGVwdGgrMSk7by51bnNoaWZ0KGwpO2ZvcihsZXQgaD1zLmRlcHRoLG09cy5wb3MtMTtoPjA7aC0tLG0tLSl7bGV0IHY9cy5ub2RlKGgpLnR5cGUuc3BlYztpZih2LmRlZmluaW5nfHx2LmRlZmluaW5nQXNDb250ZXh0fHx2Lmlzb2xhdGluZylicmVhaztvLmluZGV4T2YoaCk+LTE/bD1oOnMuYmVmb3JlKGgpPT1tJiZvLnNwbGljZSgxLDAsLWgpfWxldCBjPW8uaW5kZXhPZihsKSxkPVtdLGY9YS5vcGVuU3RhcnQ7Zm9yKGxldCBoPWEuY29udGVudCxtPTA7O20rKyl7bGV0IHY9aC5maXJzdENoaWxkO2lmKGQucHVzaCh2KSxtPT1hLm9wZW5TdGFydClicmVhaztoPXYuY29udGVudH1mb3IobGV0IGg9Zi0xO2g+PTA7aC0tKXtsZXQgbT1kW2hdLHY9V0lhKG0udHlwZSk7aWYodiYmIW0uc2FtZU1hcmt1cChzLm5vZGUoTWF0aC5hYnMobCktMSkpKWY9aDtlbHNlIGlmKHZ8fCFtLnR5cGUuaXNUZXh0YmxvY2spYnJlYWt9Zm9yKGxldCBoPWEub3BlblN0YXJ0O2g+PTA7aC0tKXtsZXQgbT0oaCtmKzEpJShhLm9wZW5TdGFydCsxKSx2PWRbbV07aWYodilmb3IobGV0IGI9MDtiPG8ubGVuZ3RoO2IrKyl7bGV0IGc9b1soYitjKSVvLmxlbmd0aF0seT0hMDtnPDAmJih5PSExLGc9LWcpO2xldCBrPXMubm9kZShnLTEpLE09cy5pbmRleChnLTEpO2lmKGsuY2FuUmVwbGFjZVdpdGgoTSxNLHYudHlwZSx2Lm1hcmtzKSlyZXR1cm4gdC5yZXBsYWNlKHMuYmVmb3JlKGcpLHk/bi5hZnRlcihnKTpyLG5ldyBtdCh5V3IoYS5jb250ZW50LDAsYS5vcGVuU3RhcnQsbSksbSxhLm9wZW5FbmQpKX19bGV0IHA9dC5zdGVwcy5sZW5ndGg7Zm9yKGxldCBoPW8ubGVuZ3RoLTE7aD49MCYmKHQucmVwbGFjZShlLHIsYSksISh0LnN0ZXBzLmxlbmd0aD5wKSk7aC0tKXtsZXQgbT1vW2hdO208MHx8KGU9cy5iZWZvcmUobSkscj1uLmFmdGVyKG0pKX19ZnVuY3Rpb24geVdyKHQsZSxyLGEscyl7aWYoZTxyKXtsZXQgbj10LmZpcnN0Q2hpbGQ7dD10LnJlcGxhY2VDaGlsZCgwLG4uY29weSh5V3Iobi5jb250ZW50LGUrMSxyLGEsbikpKX1pZihlPmEpe2xldCBuPXMuY29udGVudE1hdGNoQXQoMCksbz1uLmZpbGxCZWZvcmUodCkuYXBwZW5kKHQpO3Q9by5hcHBlbmQobi5tYXRjaEZyYWdtZW50KG8pLmZpbGxCZWZvcmUoSmUuZW1wdHksITApKX1yZXR1cm4gdH1mdW5jdGlvbiBZSWEodCxlLHIsYSl7aWYoIWEuaXNJbmxpbmUmJmU9PXImJnQuZG9jLnJlc29sdmUoZSkucGFyZW50LmNvbnRlbnQuc2l6ZSl7bGV0IHM9YldyKHQuZG9jLGUsYS50eXBlKTtzIT1udWxsJiYoZT1yPXMpfXQucmVwbGFjZVJhbmdlKGUscixuZXcgbXQoSmUuZnJvbShhKSwwLDApKX1mdW5jdGlvbiBLSWEodCxlLHIpe2xldCBhPXQuZG9jLnJlc29sdmUoZSkscz10LmRvYy5yZXNvbHZlKHIpLG49d1dyKGEscyk7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspe2xldCBsPW5bb10sYz1vPT1uLmxlbmd0aC0xO2lmKGMmJmw9PTB8fGEubm9kZShsKS50eXBlLmNvbnRlbnRNYXRjaC52YWxpZEVuZClyZXR1cm4gdC5kZWxldGUoYS5zdGFydChsKSxzLmVuZChsKSk7aWYobD4wJiYoY3x8YS5ub2RlKGwtMSkuY2FuUmVwbGFjZShhLmluZGV4KGwtMSkscy5pbmRleEFmdGVyKGwtMSkpKSlyZXR1cm4gdC5kZWxldGUoYS5iZWZvcmUobCkscy5hZnRlcihsKSl9Zm9yKGxldCBvPTE7bzw9YS5kZXB0aCYmbzw9cy5kZXB0aDtvKyspaWYoZS1hLnN0YXJ0KG8pPT1hLmRlcHRoLW8mJnI+YS5lbmQobykmJnMuZW5kKG8pLXIhPXMuZGVwdGgtbyYmYS5zdGFydChvLTEpPT1zLnN0YXJ0KG8tMSkmJmEubm9kZShvLTEpLmNhblJlcGxhY2UoYS5pbmRleChvLTEpLHMuaW5kZXgoby0xKSkpcmV0dXJuIHQuZGVsZXRlKGEuYmVmb3JlKG8pLHIpO3QuZGVsZXRlKGUscil9ZnVuY3Rpb24gd1dyKHQsZSl7bGV0IHI9W10sYT1NYXRoLm1pbih0LmRlcHRoLGUuZGVwdGgpO2ZvcihsZXQgcz1hO3M+PTA7cy0tKXtsZXQgbj10LnN0YXJ0KHMpO2lmKG48dC5wb3MtKHQuZGVwdGgtcyl8fGUuZW5kKHMpPmUucG9zKyhlLmRlcHRoLXMpfHx0Lm5vZGUocykudHlwZS5zcGVjLmlzb2xhdGluZ3x8ZS5ub2RlKHMpLnR5cGUuc3BlYy5pc29sYXRpbmcpYnJlYWs7KG49PWUuc3RhcnQocyl8fHM9PXQuZGVwdGgmJnM9PWUuZGVwdGgmJnQucGFyZW50LmlubGluZUNvbnRlbnQmJmUucGFyZW50LmlubGluZUNvbnRlbnQmJnMmJmUuc3RhcnQocy0xKT09bi0xKSYmci5wdXNoKHMpfXJldHVybiByfXZhciBvV3IsbFdyLGRXcix1V3IsdmZlLHBXcixZeSxsZCxReSxobXQsYW4sa24sS3ksVXAsWnksRDksSW4sZHMseG10LER0ZSwkdGUsJDksQTksV3A9dSgoKT0+e2pwKCk7b1dyPTY1NTM1LGxXcj1NYXRoLnBvdygyLDE2KTtpKERJYSwibWFrZVJlY292ZXIiKTtpKGNXciwicmVjb3ZlckluZGV4Iik7aSgkSWEsInJlY292ZXJPZmZzZXQiKTtkV3I9MSx1V3I9Mix2ZmU9NCxwV3I9OCxZeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJNYXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy5wb3M9ZSx0aGlzLmRlbEluZm89cix0aGlzLnJlY292ZXI9YX1nZXQgZGVsZXRlZCgpe3JldHVybih0aGlzLmRlbEluZm8mcFdyKT4wfWdldCBkZWxldGVkQmVmb3JlKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyYoZFdyfHZmZSkpPjB9Z2V0IGRlbGV0ZWRBZnRlcigpe3JldHVybih0aGlzLmRlbEluZm8mKHVXcnx2ZmUpKT4wfWdldCBkZWxldGVkQWNyb3NzKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyZ2ZmUpPjB9fSxsZD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlN0ZXBNYXAiKX1jb25zdHJ1Y3RvcihlLHI9ITEpe2lmKHRoaXMucmFuZ2VzPWUsdGhpcy5pbnZlcnRlZD1yLCFlLmxlbmd0aCYmdC5lbXB0eSlyZXR1cm4gdC5lbXB0eX1yZWNvdmVyKGUpe2xldCByPTAsYT1jV3IoZSk7aWYoIXRoaXMuaW52ZXJ0ZWQpZm9yKGxldCBzPTA7czxhO3MrKylyKz10aGlzLnJhbmdlc1tzKjMrMl0tdGhpcy5yYW5nZXNbcyozKzFdO3JldHVybiB0aGlzLnJhbmdlc1thKjNdK3IrJElhKGUpfW1hcFJlc3VsdChlLHI9MSl7cmV0dXJuIHRoaXMuX21hcChlLHIsITEpfW1hcChlLHI9MSl7cmV0dXJuIHRoaXMuX21hcChlLHIsITApfV9tYXAoZSxyLGEpe2xldCBzPTAsbj10aGlzLmludmVydGVkPzI6MSxvPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBjPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP3M6MCk7aWYoYz5lKWJyZWFrO2xldCBkPXRoaXMucmFuZ2VzW2wrbl0sZj10aGlzLnJhbmdlc1tsK29dLHA9YytkO2lmKGU8PXApe2xldCBoPWQ/ZT09Yz8tMTplPT1wPzE6cjpyLG09YytzKyhoPDA/MDpmKTtpZihhKXJldHVybiBtO2xldCB2PWU9PShyPDA/YzpwKT9udWxsOkRJYShsLzMsZS1jKSxiPWU9PWM/dVdyOmU9PXA/ZFdyOnZmZTtyZXR1cm4ocjwwP2UhPWM6ZSE9cCkmJihifD1wV3IpLG5ldyBZeShtLGIsdil9cys9Zi1kfXJldHVybiBhP2UrczpuZXcgWXkoZStzLDAsbnVsbCl9dG91Y2hlcyhlLHIpe2xldCBhPTAscz1jV3Iociksbj10aGlzLmludmVydGVkPzI6MSxvPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBjPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP2E6MCk7aWYoYz5lKWJyZWFrO2xldCBkPXRoaXMucmFuZ2VzW2wrbl0sZj1jK2Q7aWYoZTw9ZiYmbD09cyozKXJldHVybiEwO2ErPXRoaXMucmFuZ2VzW2wrb10tZH1yZXR1cm4hMX1mb3JFYWNoKGUpe2xldCByPXRoaXMuaW52ZXJ0ZWQ/MjoxLGE9dGhpcy5pbnZlcnRlZD8xOjI7Zm9yKGxldCBzPTAsbj0wO3M8dGhpcy5yYW5nZXMubGVuZ3RoO3MrPTMpe2xldCBvPXRoaXMucmFuZ2VzW3NdLGw9by0odGhpcy5pbnZlcnRlZD9uOjApLGM9bysodGhpcy5pbnZlcnRlZD8wOm4pLGQ9dGhpcy5yYW5nZXNbcytyXSxmPXRoaXMucmFuZ2VzW3MrYV07ZShsLGwrZCxjLGMrZiksbis9Zi1kfX1pbnZlcnQoKXtyZXR1cm4gbmV3IHQodGhpcy5yYW5nZXMsIXRoaXMuaW52ZXJ0ZWQpfXRvU3RyaW5nKCl7cmV0dXJuKHRoaXMuaW52ZXJ0ZWQ/Ii0iOiIiKStKU09OLnN0cmluZ2lmeSh0aGlzLnJhbmdlcyl9c3RhdGljIG9mZnNldChlKXtyZXR1cm4gZT09MD90LmVtcHR5Om5ldyB0KGU8MD9bMCwtZSwwXTpbMCwwLGVdKX19O2xkLmVtcHR5PW5ldyBsZChbXSk7UXk9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJNYXBwaW5nIil9Y29uc3RydWN0b3IoZSxyLGE9MCxzPWU/ZS5sZW5ndGg6MCl7dGhpcy5taXJyb3I9cix0aGlzLmZyb209YSx0aGlzLnRvPXMsdGhpcy5fbWFwcz1lfHxbXSx0aGlzLm93bkRhdGE9IShlfHxyKX1nZXQgbWFwcygpe3JldHVybiB0aGlzLl9tYXBzfXNsaWNlKGU9MCxyPXRoaXMubWFwcy5sZW5ndGgpe3JldHVybiBuZXcgdCh0aGlzLl9tYXBzLHRoaXMubWlycm9yLGUscil9YXBwZW5kTWFwKGUscil7dGhpcy5vd25EYXRhfHwodGhpcy5fbWFwcz10aGlzLl9tYXBzLnNsaWNlKCksdGhpcy5taXJyb3I9dGhpcy5taXJyb3ImJnRoaXMubWlycm9yLnNsaWNlKCksdGhpcy5vd25EYXRhPSEwKSx0aGlzLnRvPXRoaXMuX21hcHMucHVzaChlKSxyIT1udWxsJiZ0aGlzLnNldE1pcnJvcih0aGlzLl9tYXBzLmxlbmd0aC0xLHIpfWFwcGVuZE1hcHBpbmcoZSl7Zm9yKGxldCByPTAsYT10aGlzLl9tYXBzLmxlbmd0aDtyPGUuX21hcHMubGVuZ3RoO3IrKyl7bGV0IHM9ZS5nZXRNaXJyb3Iocik7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1tyXSxzIT1udWxsJiZzPHI/YStzOnZvaWQgMCl9fWdldE1pcnJvcihlKXtpZih0aGlzLm1pcnJvcil7Zm9yKGxldCByPTA7cjx0aGlzLm1pcnJvci5sZW5ndGg7cisrKWlmKHRoaXMubWlycm9yW3JdPT1lKXJldHVybiB0aGlzLm1pcnJvcltyKyhyJTI/LTE6MSldfX1zZXRNaXJyb3IoZSxyKXt0aGlzLm1pcnJvcnx8KHRoaXMubWlycm9yPVtdKSx0aGlzLm1pcnJvci5wdXNoKGUscil9YXBwZW5kTWFwcGluZ0ludmVydGVkKGUpe2ZvcihsZXQgcj1lLm1hcHMubGVuZ3RoLTEsYT10aGlzLl9tYXBzLmxlbmd0aCtlLl9tYXBzLmxlbmd0aDtyPj0wO3ItLSl7bGV0IHM9ZS5nZXRNaXJyb3Iocik7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1tyXS5pbnZlcnQoKSxzIT1udWxsJiZzPnI/YS1zLTE6dm9pZCAwKX19aW52ZXJ0KCl7bGV0IGU9bmV3IHQ7cmV0dXJuIGUuYXBwZW5kTWFwcGluZ0ludmVydGVkKHRoaXMpLGV9bWFwKGUscj0xKXtpZih0aGlzLm1pcnJvcilyZXR1cm4gdGhpcy5fbWFwKGUsciwhMCk7Zm9yKGxldCBhPXRoaXMuZnJvbTthPHRoaXMudG87YSsrKWU9dGhpcy5fbWFwc1thXS5tYXAoZSxyKTtyZXR1cm4gZX1tYXBSZXN1bHQoZSxyPTEpe3JldHVybiB0aGlzLl9tYXAoZSxyLCExKX1fbWFwKGUscixhKXtsZXQgcz0wO2ZvcihsZXQgbj10aGlzLmZyb207bjx0aGlzLnRvO24rKyl7bGV0IG89dGhpcy5fbWFwc1tuXSxsPW8ubWFwUmVzdWx0KGUscik7aWYobC5yZWNvdmVyIT1udWxsKXtsZXQgYz10aGlzLmdldE1pcnJvcihuKTtpZihjIT1udWxsJiZjPm4mJmM8dGhpcy50byl7bj1jLGU9dGhpcy5fbWFwc1tjXS5yZWNvdmVyKGwucmVjb3Zlcik7Y29udGludWV9fXN8PWwuZGVsSW5mbyxlPWwucG9zfXJldHVybiBhP2U6bmV3IFl5KGUscyxudWxsKX19LGhtdD1PYmplY3QuY3JlYXRlKG51bGwpLGFuPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN0ZXAiKX1nZXRNYXAoKXtyZXR1cm4gbGQuZW1wdHl9bWVyZ2UoZSl7cmV0dXJuIG51bGx9c3RhdGljIGZyb21KU09OKGUscil7aWYoIXJ8fCFyLnN0ZXBUeXBlKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTdGVwLmZyb21KU09OIik7bGV0IGE9aG10W3Iuc3RlcFR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzdGVwIHR5cGUgJHtyLnN0ZXBUeXBlfSBkZWZpbmVkYCk7cmV0dXJuIGEuZnJvbUpTT04oZSxyKX1zdGF0aWMganNvbklEKGUscil7aWYoZSBpbiBobXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkR1cGxpY2F0ZSB1c2Ugb2Ygc3RlcCBKU09OIElEICIrZSk7cmV0dXJuIGhtdFtlXT1yLHIucHJvdG90eXBlLmpzb25JRD1lLHJ9fSxrbj1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlN0ZXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuZG9jPWUsdGhpcy5mYWlsZWQ9cn1zdGF0aWMgb2soZSl7cmV0dXJuIG5ldyB0KGUsbnVsbCl9c3RhdGljIGZhaWwoZSl7cmV0dXJuIG5ldyB0KG51bGwsZSl9c3RhdGljIGZyb21SZXBsYWNlKGUscixhLHMpe3RyeXtyZXR1cm4gdC5vayhlLnJlcGxhY2UocixhLHMpKX1jYXRjaChuKXtpZihuIGluc3RhbmNlb2YgcXApcmV0dXJuIHQuZmFpbChuLm1lc3NhZ2UpO3Rocm93IG59fX07aShtbXQsIm1hcEZyYWdtZW50Iik7S3k9Y2xhc3MgdCBleHRlbmRzIGFue3N0YXRpY3tpKHRoaXMsIkFkZE1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSxyLGEpe3N1cGVyKCksdGhpcy5mcm9tPWUsdGhpcy50bz1yLHRoaXMubWFyaz1hfWFwcGx5KGUpe2xldCByPWUuc2xpY2UodGhpcy5mcm9tLHRoaXMudG8pLGE9ZS5yZXNvbHZlKHRoaXMuZnJvbSkscz1hLm5vZGUoYS5zaGFyZWREZXB0aCh0aGlzLnRvKSksbj1uZXcgbXQobW10KHIuY29udGVudCwobyxsKT0+IW8uaXNBdG9tfHwhbC50eXBlLmFsbG93c01hcmtUeXBlKHRoaXMubWFyay50eXBlKT9vOm8ubWFyayh0aGlzLm1hcmsuYWRkVG9TZXQoby5tYXJrcykpLHMpLHIub3BlblN0YXJ0LHIub3BlbkVuZCk7cmV0dXJuIGtuLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sbil9aW52ZXJ0KCl7cmV0dXJuIG5ldyBVcCh0aGlzLmZyb20sdGhpcy50byx0aGlzLm1hcmspfW1hcChlKXtsZXQgcj1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSksYT1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKTtyZXR1cm4gci5kZWxldGVkJiZhLmRlbGV0ZWR8fHIucG9zPj1hLnBvcz9udWxsOm5ldyB0KHIucG9zLGEucG9zLHRoaXMubWFyayl9bWVyZ2UoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0JiZlLm1hcmsuZXEodGhpcy5tYXJrKSYmdGhpcy5mcm9tPD1lLnRvJiZ0aGlzLnRvPj1lLmZyb20/bmV3IHQoTWF0aC5taW4odGhpcy5mcm9tLGUuZnJvbSksTWF0aC5tYXgodGhpcy50byxlLnRvKSx0aGlzLm1hcmspOm51bGx9dG9KU09OKCl7cmV0dXJue3N0ZXBUeXBlOiJhZGRNYXJrIixtYXJrOnRoaXMubWFyay50b0pTT04oKSxmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZih0eXBlb2Ygci5mcm9tIT0ibnVtYmVyInx8dHlwZW9mIHIudG8hPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBBZGRNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChyLmZyb20sci50byxlLm1hcmtGcm9tSlNPTihyLm1hcmspKX19O2FuLmpzb25JRCgiYWRkTWFyayIsS3kpO1VwPWNsYXNzIHQgZXh0ZW5kcyBhbntzdGF0aWN7aSh0aGlzLCJSZW1vdmVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUscixhKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89cix0aGlzLm1hcms9YX1hcHBseShlKXtsZXQgcj1lLnNsaWNlKHRoaXMuZnJvbSx0aGlzLnRvKSxhPW5ldyBtdChtbXQoci5jb250ZW50LHM9PnMubWFyayh0aGlzLm1hcmsucmVtb3ZlRnJvbVNldChzLm1hcmtzKSksZSksci5vcGVuU3RhcnQsci5vcGVuRW5kKTtyZXR1cm4ga24uZnJvbVJlcGxhY2UoZSx0aGlzLmZyb20sdGhpcy50byxhKX1pbnZlcnQoKXtyZXR1cm4gbmV3IEt5KHRoaXMuZnJvbSx0aGlzLnRvLHRoaXMubWFyayl9bWFwKGUpe2xldCByPWUubWFwUmVzdWx0KHRoaXMuZnJvbSwxKSxhPWUubWFwUmVzdWx0KHRoaXMudG8sLTEpO3JldHVybiByLmRlbGV0ZWQmJmEuZGVsZXRlZHx8ci5wb3M+PWEucG9zP251bGw6bmV3IHQoci5wb3MsYS5wb3MsdGhpcy5tYXJrKX1tZXJnZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHQmJmUubWFyay5lcSh0aGlzLm1hcmspJiZ0aGlzLmZyb208PWUudG8mJnRoaXMudG8+PWUuZnJvbT9uZXcgdChNYXRoLm1pbih0aGlzLmZyb20sZS5mcm9tKSxNYXRoLm1heCh0aGlzLnRvLGUudG8pLHRoaXMubWFyayk6bnVsbH10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU1hcmsiLG1hcms6dGhpcy5tYXJrLnRvSlNPTigpLGZyb206dGhpcy5mcm9tLHRvOnRoaXMudG99fXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmZyb20hPSJudW1iZXIifHx0eXBlb2Ygci50byE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU1hcmtTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyB0KHIuZnJvbSxyLnRvLGUubWFya0Zyb21KU09OKHIubWFyaykpfX07YW4uanNvbklEKCJyZW1vdmVNYXJrIixVcCk7Wnk9Y2xhc3MgdCBleHRlbmRzIGFue3N0YXRpY3tpKHRoaXMsIkFkZE5vZGVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUscil7c3VwZXIoKSx0aGlzLnBvcz1lLHRoaXMubWFyaz1yfWFwcGx5KGUpe2xldCByPWUubm9kZUF0KHRoaXMucG9zKTtpZighcilyZXR1cm4ga24uZmFpbCgiTm8gbm9kZSBhdCBtYXJrIHN0ZXAncyBwb3NpdGlvbiIpO2xldCBhPXIudHlwZS5jcmVhdGUoci5hdHRycyxudWxsLHRoaXMubWFyay5hZGRUb1NldChyLm1hcmtzKSk7cmV0dXJuIGtuLmZyb21SZXBsYWNlKGUsdGhpcy5wb3MsdGhpcy5wb3MrMSxuZXcgbXQoSmUuZnJvbShhKSwwLHIuaXNMZWFmPzA6MSkpfWludmVydChlKXtsZXQgcj1lLm5vZGVBdCh0aGlzLnBvcyk7aWYocil7bGV0IGE9dGhpcy5tYXJrLmFkZFRvU2V0KHIubWFya3MpO2lmKGEubGVuZ3RoPT1yLm1hcmtzLmxlbmd0aCl7Zm9yKGxldCBzPTA7czxyLm1hcmtzLmxlbmd0aDtzKyspaWYoIXIubWFya3Nbc10uaXNJblNldChhKSlyZXR1cm4gbmV3IHQodGhpcy5wb3Msci5tYXJrc1tzXSk7cmV0dXJuIG5ldyB0KHRoaXMucG9zLHRoaXMubWFyayl9fXJldHVybiBuZXcgRDkodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHI9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHIuZGVsZXRlZEFmdGVyP251bGw6bmV3IHQoci5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImFkZE5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIEFkZE5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChyLnBvcyxlLm1hcmtGcm9tSlNPTihyLm1hcmspKX19O2FuLmpzb25JRCgiYWRkTm9kZU1hcmsiLFp5KTtEOT1jbGFzcyB0IGV4dGVuZHMgYW57c3RhdGlje2kodGhpcywiUmVtb3ZlTm9kZU1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSxyKXtzdXBlcigpLHRoaXMucG9zPWUsdGhpcy5tYXJrPXJ9YXBwbHkoZSl7bGV0IHI9ZS5ub2RlQXQodGhpcy5wb3MpO2lmKCFyKXJldHVybiBrbi5mYWlsKCJObyBub2RlIGF0IG1hcmsgc3RlcCdzIHBvc2l0aW9uIik7bGV0IGE9ci50eXBlLmNyZWF0ZShyLmF0dHJzLG51bGwsdGhpcy5tYXJrLnJlbW92ZUZyb21TZXQoci5tYXJrcykpO3JldHVybiBrbi5mcm9tUmVwbGFjZShlLHRoaXMucG9zLHRoaXMucG9zKzEsbmV3IG10KEplLmZyb20oYSksMCxyLmlzTGVhZj8wOjEpKX1pbnZlcnQoZSl7bGV0IHI9ZS5ub2RlQXQodGhpcy5wb3MpO3JldHVybiFyfHwhdGhpcy5tYXJrLmlzSW5TZXQoci5tYXJrcyk/dGhpczpuZXcgWnkodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHI9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHIuZGVsZXRlZEFmdGVyP251bGw6bmV3IHQoci5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChyLnBvcyxlLm1hcmtGcm9tSlNPTihyLm1hcmspKX19O2FuLmpzb25JRCgicmVtb3ZlTm9kZU1hcmsiLEQ5KTtJbj1jbGFzcyB0IGV4dGVuZHMgYW57c3RhdGlje2kodGhpcywiUmVwbGFjZVN0ZXAiKX1jb25zdHJ1Y3RvcihlLHIsYSxzPSExKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89cix0aGlzLnNsaWNlPWEsdGhpcy5zdHJ1Y3R1cmU9c31hcHBseShlKXtyZXR1cm4gdGhpcy5zdHJ1Y3R1cmUmJmdtdChlLHRoaXMuZnJvbSx0aGlzLnRvKT9rbi5mYWlsKCJTdHJ1Y3R1cmUgcmVwbGFjZSB3b3VsZCBvdmVyd3JpdGUgY29udGVudCIpOmtuLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sdGhpcy5zbGljZSl9Z2V0TWFwKCl7cmV0dXJuIG5ldyBsZChbdGhpcy5mcm9tLHRoaXMudG8tdGhpcy5mcm9tLHRoaXMuc2xpY2Uuc2l6ZV0pfWludmVydChlKXtyZXR1cm4gbmV3IHQodGhpcy5mcm9tLHRoaXMuZnJvbSt0aGlzLnNsaWNlLnNpemUsZS5zbGljZSh0aGlzLmZyb20sdGhpcy50bykpfW1hcChlKXtsZXQgcj1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSksYT1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKTtyZXR1cm4gci5kZWxldGVkQWNyb3NzJiZhLmRlbGV0ZWRBY3Jvc3M/bnVsbDpuZXcgdChyLnBvcyxNYXRoLm1heChyLnBvcyxhLnBvcyksdGhpcy5zbGljZSx0aGlzLnN0cnVjdHVyZSl9bWVyZ2UoZSl7aWYoIShlIGluc3RhbmNlb2YgdCl8fGUuc3RydWN0dXJlfHx0aGlzLnN0cnVjdHVyZSlyZXR1cm4gbnVsbDtpZih0aGlzLmZyb20rdGhpcy5zbGljZS5zaXplPT1lLmZyb20mJiF0aGlzLnNsaWNlLm9wZW5FbmQmJiFlLnNsaWNlLm9wZW5TdGFydCl7bGV0IHI9dGhpcy5zbGljZS5zaXplK2Uuc2xpY2Uuc2l6ZT09MD9tdC5lbXB0eTpuZXcgbXQodGhpcy5zbGljZS5jb250ZW50LmFwcGVuZChlLnNsaWNlLmNvbnRlbnQpLHRoaXMuc2xpY2Uub3BlblN0YXJ0LGUuc2xpY2Uub3BlbkVuZCk7cmV0dXJuIG5ldyB0KHRoaXMuZnJvbSx0aGlzLnRvKyhlLnRvLWUuZnJvbSkscix0aGlzLnN0cnVjdHVyZSl9ZWxzZSBpZihlLnRvPT10aGlzLmZyb20mJiF0aGlzLnNsaWNlLm9wZW5TdGFydCYmIWUuc2xpY2Uub3BlbkVuZCl7bGV0IHI9dGhpcy5zbGljZS5zaXplK2Uuc2xpY2Uuc2l6ZT09MD9tdC5lbXB0eTpuZXcgbXQoZS5zbGljZS5jb250ZW50LmFwcGVuZCh0aGlzLnNsaWNlLmNvbnRlbnQpLGUuc2xpY2Uub3BlblN0YXJ0LHRoaXMuc2xpY2Uub3BlbkVuZCk7cmV0dXJuIG5ldyB0KGUuZnJvbSx0aGlzLnRvLHIsdGhpcy5zdHJ1Y3R1cmUpfWVsc2UgcmV0dXJuIG51bGx9dG9KU09OKCl7bGV0IGU9e3N0ZXBUeXBlOiJyZXBsYWNlIixmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfTtyZXR1cm4gdGhpcy5zbGljZS5zaXplJiYoZS5zbGljZT10aGlzLnNsaWNlLnRvSlNPTigpKSx0aGlzLnN0cnVjdHVyZSYmKGUuc3RydWN0dXJlPSEwKSxlfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmZyb20hPSJudW1iZXIifHx0eXBlb2Ygci50byE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlcGxhY2VTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyB0KHIuZnJvbSxyLnRvLG10LmZyb21KU09OKGUsci5zbGljZSksISFyLnN0cnVjdHVyZSl9fTthbi5qc29uSUQoInJlcGxhY2UiLEluKTtkcz1jbGFzcyB0IGV4dGVuZHMgYW57c3RhdGlje2kodGhpcywiUmVwbGFjZUFyb3VuZFN0ZXAiKX1jb25zdHJ1Y3RvcihlLHIsYSxzLG4sbyxsPSExKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89cix0aGlzLmdhcEZyb209YSx0aGlzLmdhcFRvPXMsdGhpcy5zbGljZT1uLHRoaXMuaW5zZXJ0PW8sdGhpcy5zdHJ1Y3R1cmU9bH1hcHBseShlKXtpZih0aGlzLnN0cnVjdHVyZSYmKGdtdChlLHRoaXMuZnJvbSx0aGlzLmdhcEZyb20pfHxnbXQoZSx0aGlzLmdhcFRvLHRoaXMudG8pKSlyZXR1cm4ga24uZmFpbCgiU3RydWN0dXJlIGdhcC1yZXBsYWNlIHdvdWxkIG92ZXJ3cml0ZSBjb250ZW50Iik7bGV0IHI9ZS5zbGljZSh0aGlzLmdhcEZyb20sdGhpcy5nYXBUbyk7aWYoci5vcGVuU3RhcnR8fHIub3BlbkVuZClyZXR1cm4ga24uZmFpbCgiR2FwIGlzIG5vdCBhIGZsYXQgcmFuZ2UiKTtsZXQgYT10aGlzLnNsaWNlLmluc2VydEF0KHRoaXMuaW5zZXJ0LHIuY29udGVudCk7cmV0dXJuIGE/a24uZnJvbVJlcGxhY2UoZSx0aGlzLmZyb20sdGhpcy50byxhKTprbi5mYWlsKCJDb250ZW50IGRvZXMgbm90IGZpdCBpbiBnYXAiKX1nZXRNYXAoKXtyZXR1cm4gbmV3IGxkKFt0aGlzLmZyb20sdGhpcy5nYXBGcm9tLXRoaXMuZnJvbSx0aGlzLmluc2VydCx0aGlzLmdhcFRvLHRoaXMudG8tdGhpcy5nYXBUbyx0aGlzLnNsaWNlLnNpemUtdGhpcy5pbnNlcnRdKX1pbnZlcnQoZSl7bGV0IHI9dGhpcy5nYXBUby10aGlzLmdhcEZyb207cmV0dXJuIG5ldyB0KHRoaXMuZnJvbSx0aGlzLmZyb20rdGhpcy5zbGljZS5zaXplK3IsdGhpcy5mcm9tK3RoaXMuaW5zZXJ0LHRoaXMuZnJvbSt0aGlzLmluc2VydCtyLGUuc2xpY2UodGhpcy5mcm9tLHRoaXMudG8pLnJlbW92ZUJldHdlZW4odGhpcy5nYXBGcm9tLXRoaXMuZnJvbSx0aGlzLmdhcFRvLXRoaXMuZnJvbSksdGhpcy5nYXBGcm9tLXRoaXMuZnJvbSx0aGlzLnN0cnVjdHVyZSl9bWFwKGUpe2xldCByPWUubWFwUmVzdWx0KHRoaXMuZnJvbSwxKSxhPWUubWFwUmVzdWx0KHRoaXMudG8sLTEpLHM9dGhpcy5mcm9tPT10aGlzLmdhcEZyb20/ci5wb3M6ZS5tYXAodGhpcy5nYXBGcm9tLC0xKSxuPXRoaXMudG89PXRoaXMuZ2FwVG8/YS5wb3M6ZS5tYXAodGhpcy5nYXBUbywxKTtyZXR1cm4gci5kZWxldGVkQWNyb3NzJiZhLmRlbGV0ZWRBY3Jvc3N8fHM8ci5wb3N8fG4+YS5wb3M/bnVsbDpuZXcgdChyLnBvcyxhLnBvcyxzLG4sdGhpcy5zbGljZSx0aGlzLmluc2VydCx0aGlzLnN0cnVjdHVyZSl9dG9KU09OKCl7bGV0IGU9e3N0ZXBUeXBlOiJyZXBsYWNlQXJvdW5kIixmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvLGdhcEZyb206dGhpcy5nYXBGcm9tLGdhcFRvOnRoaXMuZ2FwVG8saW5zZXJ0OnRoaXMuaW5zZXJ0fTtyZXR1cm4gdGhpcy5zbGljZS5zaXplJiYoZS5zbGljZT10aGlzLnNsaWNlLnRvSlNPTigpKSx0aGlzLnN0cnVjdHVyZSYmKGUuc3RydWN0dXJlPSEwKSxlfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmZyb20hPSJudW1iZXIifHx0eXBlb2Ygci50byE9Im51bWJlciJ8fHR5cGVvZiByLmdhcEZyb20hPSJudW1iZXIifHx0eXBlb2Ygci5nYXBUbyE9Im51bWJlciJ8fHR5cGVvZiByLmluc2VydCE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlcGxhY2VBcm91bmRTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyB0KHIuZnJvbSxyLnRvLHIuZ2FwRnJvbSxyLmdhcFRvLG10LmZyb21KU09OKGUsci5zbGljZSksci5pbnNlcnQsISFyLnN0cnVjdHVyZSl9fTthbi5qc29uSUQoInJlcGxhY2VBcm91bmQiLGRzKTtpKGdtdCwiY29udGVudEJldHdlZW4iKTtpKEFJYSwiYWRkTWFyayIpO2koRUlhLCJyZW1vdmVNYXJrIik7aShibXQsImNsZWFySW5jb21wYXRpYmxlIik7aShJSWEsImNhbkN1dCIpO2koY2QsImxpZnRUYXJnZXQiKTtpKFBJYSwibGlmdCIpO2koRTksImZpbmRXcmFwcGluZyIpO2koZldyLCJ3aXRoQXR0cnMiKTtpKE5JYSwiZmluZFdyYXBwaW5nT3V0c2lkZSIpO2koT0lhLCJmaW5kV3JhcHBpbmdJbnNpZGUiKTtpKFJJYSwid3JhcCIpO2koRklhLCJzZXRCbG9ja1R5cGUiKTtpKGhXciwicmVwbGFjZU5ld2xpbmVzIik7aShtV3IsInJlcGxhY2VMaW5lYnJlYWtzIik7aShCSWEsImNhbkNoYW5nZVR5cGUiKTtpKEhJYSwic2V0Tm9kZU1hcmt1cCIpO2koQTEsImNhblNwbGl0Iik7aShxSWEsInNwbGl0Iik7aShjbCwiY2FuSm9pbiIpO2koVklhLCJjYW5BcHBlbmRXaXRoU3Vic3RpdHV0ZWRMaW5lYnJlYWtzIik7aShnV3IsImpvaW5hYmxlIik7aShJOSwiam9pblBvaW50Iik7aShqSWEsImpvaW4iKTtpKGJXciwiaW5zZXJ0UG9pbnQiKTtpKEF0ZSwiZHJvcFBvaW50Iik7aShYeSwicmVwbGFjZVN0ZXAiKTtpKHhXciwiZml0c1RyaXZpYWxseSIpO3htdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJGaXR0ZXIiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy4kZnJvbT1lLHRoaXMuJHRvPXIsdGhpcy51bnBsYWNlZD1hLHRoaXMuZnJvbnRpZXI9W10sdGhpcy5wbGFjZWQ9SmUuZW1wdHk7Zm9yKGxldCBzPTA7czw9ZS5kZXB0aDtzKyspe2xldCBuPWUubm9kZShzKTt0aGlzLmZyb250aWVyLnB1c2goe3R5cGU6bi50eXBlLG1hdGNoOm4uY29udGVudE1hdGNoQXQoZS5pbmRleEFmdGVyKHMpKX0pfWZvcihsZXQgcz1lLmRlcHRoO3M+MDtzLS0pdGhpcy5wbGFjZWQ9SmUuZnJvbShlLm5vZGUocykuY29weSh0aGlzLnBsYWNlZCkpfWdldCBkZXB0aCgpe3JldHVybiB0aGlzLmZyb250aWVyLmxlbmd0aC0xfWZpdCgpe2Zvcig7dGhpcy51bnBsYWNlZC5zaXplOyl7bGV0IGQ9dGhpcy5maW5kRml0dGFibGUoKTtkP3RoaXMucGxhY2VOb2RlcyhkKTp0aGlzLm9wZW5Nb3JlKCl8fHRoaXMuZHJvcE5vZGUoKX1sZXQgZT10aGlzLm11c3RNb3ZlSW5saW5lKCkscj10aGlzLnBsYWNlZC5zaXplLXRoaXMuZGVwdGgtdGhpcy4kZnJvbS5kZXB0aCxhPXRoaXMuJGZyb20scz10aGlzLmNsb3NlKGU8MD90aGlzLiR0bzphLmRvYy5yZXNvbHZlKGUpKTtpZighcylyZXR1cm4gbnVsbDtsZXQgbj10aGlzLnBsYWNlZCxvPWEuZGVwdGgsbD1zLmRlcHRoO2Zvcig7byYmbCYmbi5jaGlsZENvdW50PT0xOyluPW4uZmlyc3RDaGlsZC5jb250ZW50LG8tLSxsLS07bGV0IGM9bmV3IG10KG4sbyxsKTtyZXR1cm4gZT4tMT9uZXcgZHMoYS5wb3MsZSx0aGlzLiR0by5wb3MsdGhpcy4kdG8uZW5kKCksYyxyKTpjLnNpemV8fGEucG9zIT10aGlzLiR0by5wb3M/bmV3IEluKGEucG9zLHMucG9zLGMpOm51bGx9ZmluZEZpdHRhYmxlKCl7bGV0IGU9dGhpcy51bnBsYWNlZC5vcGVuU3RhcnQ7Zm9yKGxldCByPXRoaXMudW5wbGFjZWQuY29udGVudCxhPTAscz10aGlzLnVucGxhY2VkLm9wZW5FbmQ7YTxlO2ErKyl7bGV0IG49ci5maXJzdENoaWxkO2lmKHIuY2hpbGRDb3VudD4xJiYocz0wKSxuLnR5cGUuc3BlYy5pc29sYXRpbmcmJnM8PWEpe2U9YTticmVha31yPW4uY29udGVudH1mb3IobGV0IHI9MTtyPD0yO3IrKylmb3IobGV0IGE9cj09MT9lOnRoaXMudW5wbGFjZWQub3BlblN0YXJ0O2E+PTA7YS0tKXtsZXQgcyxuPW51bGw7YT8obj12bXQodGhpcy51bnBsYWNlZC5jb250ZW50LGEtMSkuZmlyc3RDaGlsZCxzPW4uY29udGVudCk6cz10aGlzLnVucGxhY2VkLmNvbnRlbnQ7bGV0IG89cy5maXJzdENoaWxkO2ZvcihsZXQgbD10aGlzLmRlcHRoO2w+PTA7bC0tKXtsZXR7dHlwZTpjLG1hdGNoOmR9PXRoaXMuZnJvbnRpZXJbbF0sZixwPW51bGw7aWYocj09MSYmKG8/ZC5tYXRjaFR5cGUoby50eXBlKXx8KHA9ZC5maWxsQmVmb3JlKEplLmZyb20obyksITEpKTpuJiZjLmNvbXBhdGlibGVDb250ZW50KG4udHlwZSkpKXJldHVybntzbGljZURlcHRoOmEsZnJvbnRpZXJEZXB0aDpsLHBhcmVudDpuLGluamVjdDpwfTtpZihyPT0yJiZvJiYoZj1kLmZpbmRXcmFwcGluZyhvLnR5cGUpKSlyZXR1cm57c2xpY2VEZXB0aDphLGZyb250aWVyRGVwdGg6bCxwYXJlbnQ6bix3cmFwOmZ9O2lmKG4mJmQubWF0Y2hUeXBlKG4udHlwZSkpYnJlYWt9fX1vcGVuTW9yZSgpe2xldHtjb250ZW50OmUsb3BlblN0YXJ0OnIsb3BlbkVuZDphfT10aGlzLnVucGxhY2VkLHM9dm10KGUscik7cmV0dXJuIXMuY2hpbGRDb3VudHx8cy5maXJzdENoaWxkLmlzTGVhZj8hMToodGhpcy51bnBsYWNlZD1uZXcgbXQoZSxyKzEsTWF0aC5tYXgoYSxzLnNpemUrcj49ZS5zaXplLWE/cisxOjApKSwhMCl9ZHJvcE5vZGUoKXtsZXR7Y29udGVudDplLG9wZW5TdGFydDpyLG9wZW5FbmQ6YX09dGhpcy51bnBsYWNlZCxzPXZtdChlLHIpO2lmKHMuY2hpbGRDb3VudDw9MSYmcj4wKXtsZXQgbj1lLnNpemUtcjw9citzLnNpemU7dGhpcy51bnBsYWNlZD1uZXcgbXQoVHRlKGUsci0xLDEpLHItMSxuP3ItMTphKX1lbHNlIHRoaXMudW5wbGFjZWQ9bmV3IG10KFR0ZShlLHIsMSkscixhKX1wbGFjZU5vZGVzKHtzbGljZURlcHRoOmUsZnJvbnRpZXJEZXB0aDpyLHBhcmVudDphLGluamVjdDpzLHdyYXA6bn0pe2Zvcig7dGhpcy5kZXB0aD5yOyl0aGlzLmNsb3NlRnJvbnRpZXJOb2RlKCk7aWYobilmb3IobGV0IGI9MDtiPG4ubGVuZ3RoO2IrKyl0aGlzLm9wZW5Gcm9udGllck5vZGUobltiXSk7bGV0IG89dGhpcy51bnBsYWNlZCxsPWE/YS5jb250ZW50Om8uY29udGVudCxjPW8ub3BlblN0YXJ0LWUsZD0wLGY9W10se21hdGNoOnAsdHlwZTpofT10aGlzLmZyb250aWVyW3JdO2lmKHMpe2ZvcihsZXQgYj0wO2I8cy5jaGlsZENvdW50O2IrKylmLnB1c2gocy5jaGlsZChiKSk7cD1wLm1hdGNoRnJhZ21lbnQocyl9bGV0IG09bC5zaXplK2UtKG8uY29udGVudC5zaXplLW8ub3BlbkVuZCk7Zm9yKDtkPGwuY2hpbGRDb3VudDspe2xldCBiPWwuY2hpbGQoZCksZz1wLm1hdGNoVHlwZShiLnR5cGUpO2lmKCFnKWJyZWFrO2QrKywoZD4xfHxjPT0wfHxiLmNvbnRlbnQuc2l6ZSkmJihwPWcsZi5wdXNoKHZXcihiLm1hcmsoaC5hbGxvd2VkTWFya3MoYi5tYXJrcykpLGQ9PTE/YzowLGQ9PWwuY2hpbGRDb3VudD9tOi0xKSkpfWxldCB2PWQ9PWwuY2hpbGRDb3VudDt2fHwobT0tMSksdGhpcy5wbGFjZWQ9THRlKHRoaXMucGxhY2VkLHIsSmUuZnJvbShmKSksdGhpcy5mcm9udGllcltyXS5tYXRjaD1wLHYmJm08MCYmYSYmYS50eXBlPT10aGlzLmZyb250aWVyW3RoaXMuZGVwdGhdLnR5cGUmJnRoaXMuZnJvbnRpZXIubGVuZ3RoPjEmJnRoaXMuY2xvc2VGcm9udGllck5vZGUoKTtmb3IobGV0IGI9MCxnPWw7YjxtO2IrKyl7bGV0IHk9Zy5sYXN0Q2hpbGQ7dGhpcy5mcm9udGllci5wdXNoKHt0eXBlOnkudHlwZSxtYXRjaDp5LmNvbnRlbnRNYXRjaEF0KHkuY2hpbGRDb3VudCl9KSxnPXkuY29udGVudH10aGlzLnVucGxhY2VkPXY/ZT09MD9tdC5lbXB0eTpuZXcgbXQoVHRlKG8uY29udGVudCxlLTEsMSksZS0xLG08MD9vLm9wZW5FbmQ6ZS0xKTpuZXcgbXQoVHRlKG8uY29udGVudCxlLGQpLG8ub3BlblN0YXJ0LG8ub3BlbkVuZCl9bXVzdE1vdmVJbmxpbmUoKXtpZighdGhpcy4kdG8ucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybi0xO2xldCBlPXRoaXMuZnJvbnRpZXJbdGhpcy5kZXB0aF0scjtpZighZS50eXBlLmlzVGV4dGJsb2NrfHwheW10KHRoaXMuJHRvLHRoaXMuJHRvLmRlcHRoLGUudHlwZSxlLm1hdGNoLCExKXx8dGhpcy4kdG8uZGVwdGg9PXRoaXMuZGVwdGgmJihyPXRoaXMuZmluZENsb3NlTGV2ZWwodGhpcy4kdG8pKSYmci5kZXB0aD09dGhpcy5kZXB0aClyZXR1cm4tMTtsZXR7ZGVwdGg6YX09dGhpcy4kdG8scz10aGlzLiR0by5hZnRlcihhKTtmb3IoO2E+MSYmcz09dGhpcy4kdG8uZW5kKC0tYSk7KSsrcztyZXR1cm4gc31maW5kQ2xvc2VMZXZlbChlKXtlOmZvcihsZXQgcj1NYXRoLm1pbih0aGlzLmRlcHRoLGUuZGVwdGgpO3I+PTA7ci0tKXtsZXR7bWF0Y2g6YSx0eXBlOnN9PXRoaXMuZnJvbnRpZXJbcl0sbj1yPGUuZGVwdGgmJmUuZW5kKHIrMSk9PWUucG9zKyhlLmRlcHRoLShyKzEpKSxvPXltdChlLHIscyxhLG4pO2lmKG8pe2ZvcihsZXQgbD1yLTE7bD49MDtsLS0pe2xldHttYXRjaDpjLHR5cGU6ZH09dGhpcy5mcm9udGllcltsXSxmPXltdChlLGwsZCxjLCEwKTtpZighZnx8Zi5jaGlsZENvdW50KWNvbnRpbnVlIGV9cmV0dXJue2RlcHRoOnIsZml0Om8sbW92ZTpuP2UuZG9jLnJlc29sdmUoZS5hZnRlcihyKzEpKTplfX19fWNsb3NlKGUpe2xldCByPXRoaXMuZmluZENsb3NlTGV2ZWwoZSk7aWYoIXIpcmV0dXJuIG51bGw7Zm9yKDt0aGlzLmRlcHRoPnIuZGVwdGg7KXRoaXMuY2xvc2VGcm9udGllck5vZGUoKTtyLmZpdC5jaGlsZENvdW50JiYodGhpcy5wbGFjZWQ9THRlKHRoaXMucGxhY2VkLHIuZGVwdGgsci5maXQpKSxlPXIubW92ZTtmb3IobGV0IGE9ci5kZXB0aCsxO2E8PWUuZGVwdGg7YSsrKXtsZXQgcz1lLm5vZGUoYSksbj1zLnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUocy5jb250ZW50LCEwLGUuaW5kZXgoYSkpO3RoaXMub3BlbkZyb250aWVyTm9kZShzLnR5cGUscy5hdHRycyxuKX1yZXR1cm4gZX1vcGVuRnJvbnRpZXJOb2RlKGUscj1udWxsLGEpe2xldCBzPXRoaXMuZnJvbnRpZXJbdGhpcy5kZXB0aF07cy5tYXRjaD1zLm1hdGNoLm1hdGNoVHlwZShlKSx0aGlzLnBsYWNlZD1MdGUodGhpcy5wbGFjZWQsdGhpcy5kZXB0aCxKZS5mcm9tKGUuY3JlYXRlKHIsYSkpKSx0aGlzLmZyb250aWVyLnB1c2goe3R5cGU6ZSxtYXRjaDplLmNvbnRlbnRNYXRjaH0pfWNsb3NlRnJvbnRpZXJOb2RlKCl7bGV0IHI9dGhpcy5mcm9udGllci5wb3AoKS5tYXRjaC5maWxsQmVmb3JlKEplLmVtcHR5LCEwKTtyLmNoaWxkQ291bnQmJih0aGlzLnBsYWNlZD1MdGUodGhpcy5wbGFjZWQsdGhpcy5mcm9udGllci5sZW5ndGgscikpfX07aShUdGUsImRyb3BGcm9tRnJhZ21lbnQiKTtpKEx0ZSwiYWRkVG9GcmFnbWVudCIpO2kodm10LCJjb250ZW50QXQiKTtpKHZXciwiY2xvc2VOb2RlU3RhcnQiKTtpKHltdCwiY29udGVudEFmdGVyRml0cyIpO2koVUlhLCJpbnZhbGlkTWFya3MiKTtpKFdJYSwiZGVmaW5lc0NvbnRlbnQiKTtpKEdJYSwicmVwbGFjZVJhbmdlIik7aSh5V3IsImNsb3NlRnJhZ21lbnQiKTtpKFlJYSwicmVwbGFjZVJhbmdlV2l0aCIpO2koS0lhLCJkZWxldGVSYW5nZSIpO2kod1dyLCJjb3ZlcmVkRGVwdGhzIik7RHRlPWNsYXNzIHQgZXh0ZW5kcyBhbntzdGF0aWN7aSh0aGlzLCJBdHRyU3RlcCIpfWNvbnN0cnVjdG9yKGUscixhKXtzdXBlcigpLHRoaXMucG9zPWUsdGhpcy5hdHRyPXIsdGhpcy52YWx1ZT1hfWFwcGx5KGUpe2xldCByPWUubm9kZUF0KHRoaXMucG9zKTtpZighcilyZXR1cm4ga24uZmFpbCgiTm8gbm9kZSBhdCBhdHRyaWJ1dGUgc3RlcCdzIHBvc2l0aW9uIik7bGV0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IG4gaW4gci5hdHRycylhW25dPXIuYXR0cnNbbl07YVt0aGlzLmF0dHJdPXRoaXMudmFsdWU7bGV0IHM9ci50eXBlLmNyZWF0ZShhLG51bGwsci5tYXJrcyk7cmV0dXJuIGtuLmZyb21SZXBsYWNlKGUsdGhpcy5wb3MsdGhpcy5wb3MrMSxuZXcgbXQoSmUuZnJvbShzKSwwLHIuaXNMZWFmPzA6MSkpfWdldE1hcCgpe3JldHVybiBsZC5lbXB0eX1pbnZlcnQoZSl7cmV0dXJuIG5ldyB0KHRoaXMucG9zLHRoaXMuYXR0cixlLm5vZGVBdCh0aGlzLnBvcykuYXR0cnNbdGhpcy5hdHRyXSl9bWFwKGUpe2xldCByPWUubWFwUmVzdWx0KHRoaXMucG9zLDEpO3JldHVybiByLmRlbGV0ZWRBZnRlcj9udWxsOm5ldyB0KHIucG9zLHRoaXMuYXR0cix0aGlzLnZhbHVlKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImF0dHIiLHBvczp0aGlzLnBvcyxhdHRyOnRoaXMuYXR0cix2YWx1ZTp0aGlzLnZhbHVlfX1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZih0eXBlb2Ygci5wb3MhPSJudW1iZXIifHx0eXBlb2Ygci5hdHRyIT0ic3RyaW5nIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgQXR0clN0ZXAuZnJvbUpTT04iKTtyZXR1cm4gbmV3IHQoci5wb3Msci5hdHRyLHIudmFsdWUpfX07YW4uanNvbklEKCJhdHRyIixEdGUpOyR0ZT1jbGFzcyB0IGV4dGVuZHMgYW57c3RhdGlje2kodGhpcywiRG9jQXR0clN0ZXAiKX1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKCksdGhpcy5hdHRyPWUsdGhpcy52YWx1ZT1yfWFwcGx5KGUpe2xldCByPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBzIGluIGUuYXR0cnMpcltzXT1lLmF0dHJzW3NdO3JbdGhpcy5hdHRyXT10aGlzLnZhbHVlO2xldCBhPWUudHlwZS5jcmVhdGUocixlLmNvbnRlbnQsZS5tYXJrcyk7cmV0dXJuIGtuLm9rKGEpfWdldE1hcCgpe3JldHVybiBsZC5lbXB0eX1pbnZlcnQoZSl7cmV0dXJuIG5ldyB0KHRoaXMuYXR0cixlLmF0dHJzW3RoaXMuYXR0cl0pfW1hcChlKXtyZXR1cm4gdGhpc310b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImRvY0F0dHIiLGF0dHI6dGhpcy5hdHRyLHZhbHVlOnRoaXMudmFsdWV9fXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmF0dHIhPSJzdHJpbmciKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBEb2NBdHRyU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChyLmF0dHIsci52YWx1ZSl9fTthbi5qc29uSUQoImRvY0F0dHIiLCR0ZSk7JDk9Y2xhc3MgZXh0ZW5kcyBFcnJvcntzdGF0aWN7aSh0aGlzLCJUcmFuc2Zvcm1FcnJvciIpfX07JDk9aShmdW5jdGlvbiB0KGUpe2xldCByPUVycm9yLmNhbGwodGhpcyxlKTtyZXR1cm4gci5fX3Byb3RvX189dC5wcm90b3R5cGUscn0sIlRyYW5zZm9ybUVycm9yIiksJDkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSwkOS5wcm90b3R5cGUuY29uc3RydWN0b3I9JDksJDkucHJvdG90eXBlLm5hbWU9IlRyYW5zZm9ybUVycm9yIjtBOT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUcmFuc2Zvcm0iKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmRvYz1lLHRoaXMuc3RlcHM9W10sdGhpcy5kb2NzPVtdLHRoaXMubWFwcGluZz1uZXcgUXl9Z2V0IGJlZm9yZSgpe3JldHVybiB0aGlzLmRvY3MubGVuZ3RoP3RoaXMuZG9jc1swXTp0aGlzLmRvY31zdGVwKGUpe2xldCByPXRoaXMubWF5YmVTdGVwKGUpO2lmKHIuZmFpbGVkKXRocm93IG5ldyAkOShyLmZhaWxlZCk7cmV0dXJuIHRoaXN9bWF5YmVTdGVwKGUpe2xldCByPWUuYXBwbHkodGhpcy5kb2MpO3JldHVybiByLmZhaWxlZHx8dGhpcy5hZGRTdGVwKGUsci5kb2MpLHJ9Z2V0IGRvY0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5zdGVwcy5sZW5ndGg+MH1jaGFuZ2VkUmFuZ2UoKXtsZXQgZT0xZTkscj0tMWU5O2ZvcihsZXQgYT0wO2E8dGhpcy5tYXBwaW5nLm1hcHMubGVuZ3RoO2ErKyl7bGV0IHM9dGhpcy5tYXBwaW5nLm1hcHNbYV07YSYmKGU9cy5tYXAoZSwxKSxyPXMubWFwKHIsLTEpKSxzLmZvckVhY2goKG4sbyxsLGMpPT57ZT1NYXRoLm1pbihlLGwpLHI9TWF0aC5tYXgocixjKX0pfXJldHVybiBlPT0xZTk/bnVsbDp7ZnJvbTplLHRvOnJ9fWFkZFN0ZXAoZSxyKXt0aGlzLmRvY3MucHVzaCh0aGlzLmRvYyksdGhpcy5zdGVwcy5wdXNoKGUpLHRoaXMubWFwcGluZy5hcHBlbmRNYXAoZS5nZXRNYXAoKSksdGhpcy5kb2M9cn1yZXBsYWNlKGUscj1lLGE9bXQuZW1wdHkpe2xldCBzPVh5KHRoaXMuZG9jLGUscixhKTtyZXR1cm4gcyYmdGhpcy5zdGVwKHMpLHRoaXN9cmVwbGFjZVdpdGgoZSxyLGEpe3JldHVybiB0aGlzLnJlcGxhY2UoZSxyLG5ldyBtdChKZS5mcm9tKGEpLDAsMCkpfWRlbGV0ZShlLHIpe3JldHVybiB0aGlzLnJlcGxhY2UoZSxyLG10LmVtcHR5KX1pbnNlcnQoZSxyKXtyZXR1cm4gdGhpcy5yZXBsYWNlV2l0aChlLGUscil9cmVwbGFjZVJhbmdlKGUscixhKXtyZXR1cm4gR0lhKHRoaXMsZSxyLGEpLHRoaXN9cmVwbGFjZVJhbmdlV2l0aChlLHIsYSl7cmV0dXJuIFlJYSh0aGlzLGUscixhKSx0aGlzfWRlbGV0ZVJhbmdlKGUscil7cmV0dXJuIEtJYSh0aGlzLGUsciksdGhpc31saWZ0KGUscil7cmV0dXJuIFBJYSh0aGlzLGUsciksdGhpc31qb2luKGUscj0xKXtyZXR1cm4gaklhKHRoaXMsZSxyKSx0aGlzfXdyYXAoZSxyKXtyZXR1cm4gUklhKHRoaXMsZSxyKSx0aGlzfXNldEJsb2NrVHlwZShlLHI9ZSxhLHM9bnVsbCl7cmV0dXJuIEZJYSh0aGlzLGUscixhLHMpLHRoaXN9c2V0Tm9kZU1hcmt1cChlLHIsYT1udWxsLHMpe3JldHVybiBISWEodGhpcyxlLHIsYSxzKSx0aGlzfXNldE5vZGVBdHRyaWJ1dGUoZSxyLGEpe3JldHVybiB0aGlzLnN0ZXAobmV3IER0ZShlLHIsYSkpLHRoaXN9c2V0RG9jQXR0cmlidXRlKGUscil7cmV0dXJuIHRoaXMuc3RlcChuZXcgJHRlKGUscikpLHRoaXN9YWRkTm9kZU1hcmsoZSxyKXtyZXR1cm4gdGhpcy5zdGVwKG5ldyBaeShlLHIpKSx0aGlzfXJlbW92ZU5vZGVNYXJrKGUscil7bGV0IGE9dGhpcy5kb2Mubm9kZUF0KGUpO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKCJObyBub2RlIGF0IHBvc2l0aW9uICIrZSk7aWYociBpbnN0YW5jZW9mIGhhKXIuaXNJblNldChhLm1hcmtzKSYmdGhpcy5zdGVwKG5ldyBEOShlLHIpKTtlbHNle2xldCBzPWEubWFya3MsbixvPVtdO2Zvcig7bj1yLmlzSW5TZXQocyk7KW8ucHVzaChuZXcgRDkoZSxuKSkscz1uLnJlbW92ZUZyb21TZXQocyk7Zm9yKGxldCBsPW8ubGVuZ3RoLTE7bD49MDtsLS0pdGhpcy5zdGVwKG9bbF0pfXJldHVybiB0aGlzfXNwbGl0KGUscj0xLGEpe3JldHVybiBxSWEodGhpcyxlLHIsYSksdGhpc31hZGRNYXJrKGUscixhKXtyZXR1cm4gQUlhKHRoaXMsZSxyLGEpLHRoaXN9cmVtb3ZlTWFyayhlLHIsYSl7cmV0dXJuIEVJYSh0aGlzLGUscixhKSx0aGlzfWNsZWFySW5jb21wYXRpYmxlKGUscixhKXtyZXR1cm4gYm10KHRoaXMsZSxyLGEpLHRoaXN9fX0pO2Z1bmN0aW9uIFNXcih0KXsha1dyJiYhdC5wYXJlbnQuaW5saW5lQ29udGVudCYmKGtXcj0hMCxjb25zb2xlLndhcm4oIlRleHRTZWxlY3Rpb24gZW5kcG9pbnQgbm90IHBvaW50aW5nIGludG8gYSBub2RlIHdpdGggaW5saW5lIGNvbnRlbnQgKCIrdC5wYXJlbnQudHlwZS5uYW1lKyIpIikpfWZ1bmN0aW9uIEp5KHQsZSxyLGEscyxuPSExKXtpZihlLmlubGluZUNvbnRlbnQpcmV0dXJuIGVyLmNyZWF0ZSh0LHIpO2ZvcihsZXQgbz1hLShzPjA/MDoxKTtzPjA/bzxlLmNoaWxkQ291bnQ6bz49MDtvKz1zKXtsZXQgbD1lLmNoaWxkKG8pO2lmKGwuaXNBdG9tKXtpZighbiYmSXQuaXNTZWxlY3RhYmxlKGwpKXJldHVybiBJdC5jcmVhdGUodCxyLShzPDA/bC5ub2RlU2l6ZTowKSl9ZWxzZXtsZXQgYz1KeSh0LGwscitzLHM8MD9sLmNoaWxkQ291bnQ6MCxzLG4pO2lmKGMpcmV0dXJuIGN9cis9bC5ub2RlU2l6ZSpzfXJldHVybiBudWxsfWZ1bmN0aW9uIE1Xcih0LGUscil7bGV0IGE9dC5zdGVwcy5sZW5ndGgtMTtpZihhPGUpcmV0dXJuO2xldCBzPXQuc3RlcHNbYV07aWYoIShzIGluc3RhbmNlb2YgSW58fHMgaW5zdGFuY2VvZiBkcykpcmV0dXJuO2xldCBuPXQubWFwcGluZy5tYXBzW2FdLG87bi5mb3JFYWNoKChsLGMsZCxmKT0+e289PW51bGwmJihvPWYpfSksdC5zZXRTZWxlY3Rpb24oSnQubmVhcih0LmRvYy5yZXNvbHZlKG8pLHIpKX1mdW5jdGlvbiBfV3IodCxlKXtyZXR1cm4hZXx8IXQ/dDp0LmJpbmQoZSl9ZnVuY3Rpb24gVFdyKHQsZSxyKXtmb3IobGV0IGEgaW4gdCl7bGV0IHM9dFthXTtzIGluc3RhbmNlb2YgRnVuY3Rpb24/cz1zLmJpbmQoZSk6YT09ImhhbmRsZURPTUV2ZW50cyImJihzPVRXcihzLGUse30pKSxyW2FdPXN9cmV0dXJuIHJ9ZnVuY3Rpb24gTFdyKHQpe3JldHVybiB0IGluIFNtdD90KyIkIisgKytTbXRbdF06KFNtdFt0XT0wLHQrIiQiKX12YXIgd210LEp0LE45LGtXcixlcix5ZmUsSXQsa210LE1vLFpJYSxDV3Isd2ZlLHpXcixrZmUsUDksUUlhLEV0ZSxJdGUsUWEsU210LExzLGEzPXUoKCk9PntqcCgpO1dwKCk7d210PU9iamVjdC5jcmVhdGUobnVsbCksSnQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuJGFuY2hvcj1lLHRoaXMuJGhlYWQ9cix0aGlzLnJhbmdlcz1hfHxbbmV3IE45KGUubWluKHIpLGUubWF4KHIpKV19Z2V0IGFuY2hvcigpe3JldHVybiB0aGlzLiRhbmNob3IucG9zfWdldCBoZWFkKCl7cmV0dXJuIHRoaXMuJGhlYWQucG9zfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuJGZyb20ucG9zfWdldCB0bygpe3JldHVybiB0aGlzLiR0by5wb3N9Z2V0ICRmcm9tKCl7cmV0dXJuIHRoaXMucmFuZ2VzWzBdLiRmcm9tfWdldCAkdG8oKXtyZXR1cm4gdGhpcy5yYW5nZXNbMF0uJHRvfWdldCBlbXB0eSgpe2xldCBlPXRoaXMucmFuZ2VzO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0uJGZyb20ucG9zIT1lW3JdLiR0by5wb3MpcmV0dXJuITE7cmV0dXJuITB9Y29udGVudCgpe3JldHVybiB0aGlzLiRmcm9tLmRvYy5zbGljZSh0aGlzLmZyb20sdGhpcy50bywhMCl9cmVwbGFjZShlLHI9bXQuZW1wdHkpe2xldCBhPXIuY29udGVudC5sYXN0Q2hpbGQscz1udWxsO2ZvcihsZXQgbD0wO2w8ci5vcGVuRW5kO2wrKylzPWEsYT1hLmxhc3RDaGlsZDtsZXQgbj1lLnN0ZXBzLmxlbmd0aCxvPXRoaXMucmFuZ2VzO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKXtsZXR7JGZyb206YywkdG86ZH09b1tsXSxmPWUubWFwcGluZy5zbGljZShuKTtlLnJlcGxhY2VSYW5nZShmLm1hcChjLnBvcyksZi5tYXAoZC5wb3MpLGw/bXQuZW1wdHk6ciksbD09MCYmTVdyKGUsbiwoYT9hLmlzSW5saW5lOnMmJnMuaXNUZXh0YmxvY2spPy0xOjEpfX1yZXBsYWNlV2l0aChlLHIpe2xldCBhPWUuc3RlcHMubGVuZ3RoLHM9dGhpcy5yYW5nZXM7Zm9yKGxldCBuPTA7bjxzLmxlbmd0aDtuKyspe2xldHskZnJvbTpvLCR0bzpsfT1zW25dLGM9ZS5tYXBwaW5nLnNsaWNlKGEpLGQ9Yy5tYXAoby5wb3MpLGY9Yy5tYXAobC5wb3MpO24/ZS5kZWxldGVSYW5nZShkLGYpOihlLnJlcGxhY2VSYW5nZVdpdGgoZCxmLHIpLE1XcihlLGEsci5pc0lubGluZT8tMToxKSl9fXN0YXRpYyBmaW5kRnJvbShlLHIsYT0hMSl7bGV0IHM9ZS5wYXJlbnQuaW5saW5lQ29udGVudD9uZXcgZXIoZSk6SnkoZS5ub2RlKDApLGUucGFyZW50LGUucG9zLGUuaW5kZXgoKSxyLGEpO2lmKHMpcmV0dXJuIHM7Zm9yKGxldCBuPWUuZGVwdGgtMTtuPj0wO24tLSl7bGV0IG89cjwwP0p5KGUubm9kZSgwKSxlLm5vZGUobiksZS5iZWZvcmUobisxKSxlLmluZGV4KG4pLHIsYSk6SnkoZS5ub2RlKDApLGUubm9kZShuKSxlLmFmdGVyKG4rMSksZS5pbmRleChuKSsxLHIsYSk7aWYobylyZXR1cm4gb31yZXR1cm4gbnVsbH1zdGF0aWMgbmVhcihlLHI9MSl7cmV0dXJuIHRoaXMuZmluZEZyb20oZSxyKXx8dGhpcy5maW5kRnJvbShlLC1yKXx8bmV3IE1vKGUubm9kZSgwKSl9c3RhdGljIGF0U3RhcnQoZSl7cmV0dXJuIEp5KGUsZSwwLDAsMSl8fG5ldyBNbyhlKX1zdGF0aWMgYXRFbmQoZSl7cmV0dXJuIEp5KGUsZSxlLmNvbnRlbnQuc2l6ZSxlLmNoaWxkQ291bnQsLTEpfHxuZXcgTW8oZSl9c3RhdGljIGZyb21KU09OKGUscil7aWYoIXJ8fCFyLnR5cGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFNlbGVjdGlvbi5mcm9tSlNPTiIpO2xldCBhPXdtdFtyLnR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzZWxlY3Rpb24gdHlwZSAke3IudHlwZX0gZGVmaW5lZGApO3JldHVybiBhLmZyb21KU09OKGUscil9c3RhdGljIGpzb25JRChlLHIpe2lmKGUgaW4gd210KXRocm93IG5ldyBSYW5nZUVycm9yKCJEdXBsaWNhdGUgdXNlIG9mIHNlbGVjdGlvbiBKU09OIElEICIrZSk7cmV0dXJuIHdtdFtlXT1yLHIucHJvdG90eXBlLmpzb25JRD1lLHJ9Z2V0Qm9va21hcmsoKXtyZXR1cm4gZXIuYmV0d2Vlbih0aGlzLiRhbmNob3IsdGhpcy4kaGVhZCkuZ2V0Qm9va21hcmsoKX19O0p0LnByb3RvdHlwZS52aXNpYmxlPSEwO045PWNsYXNze3N0YXRpY3tpKHRoaXMsIlNlbGVjdGlvblJhbmdlIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLiRmcm9tPWUsdGhpcy4kdG89cn19LGtXcj0hMTtpKFNXciwiY2hlY2tUZXh0U2VsZWN0aW9uIik7ZXI9Y2xhc3MgdCBleHRlbmRzIEp0e3N0YXRpY3tpKHRoaXMsIlRleHRTZWxlY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHI9ZSl7U1dyKGUpLFNXcihyKSxzdXBlcihlLHIpfWdldCAkY3Vyc29yKCl7cmV0dXJuIHRoaXMuJGFuY2hvci5wb3M9PXRoaXMuJGhlYWQucG9zP3RoaXMuJGhlYWQ6bnVsbH1tYXAoZSxyKXtsZXQgYT1lLnJlc29sdmUoci5tYXAodGhpcy5oZWFkKSk7aWYoIWEucGFyZW50LmlubGluZUNvbnRlbnQpcmV0dXJuIEp0Lm5lYXIoYSk7bGV0IHM9ZS5yZXNvbHZlKHIubWFwKHRoaXMuYW5jaG9yKSk7cmV0dXJuIG5ldyB0KHMucGFyZW50LmlubGluZUNvbnRlbnQ/czphLGEpfXJlcGxhY2UoZSxyPW10LmVtcHR5KXtpZihzdXBlci5yZXBsYWNlKGUscikscj09bXQuZW1wdHkpe2xldCBhPXRoaXMuJGZyb20ubWFya3NBY3Jvc3ModGhpcy4kdG8pO2EmJmUuZW5zdXJlTWFya3MoYSl9fWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdCYmZS5hbmNob3I9PXRoaXMuYW5jaG9yJiZlLmhlYWQ9PXRoaXMuaGVhZH1nZXRCb29rbWFyaygpe3JldHVybiBuZXcgeWZlKHRoaXMuYW5jaG9yLHRoaXMuaGVhZCl9dG9KU09OKCl7cmV0dXJue3R5cGU6InRleHQiLGFuY2hvcjp0aGlzLmFuY2hvcixoZWFkOnRoaXMuaGVhZH19c3RhdGljIGZyb21KU09OKGUscil7aWYodHlwZW9mIHIuYW5jaG9yIT0ibnVtYmVyInx8dHlwZW9mIHIuaGVhZCE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFRleHRTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IHQoZS5yZXNvbHZlKHIuYW5jaG9yKSxlLnJlc29sdmUoci5oZWFkKSl9c3RhdGljIGNyZWF0ZShlLHIsYT1yKXtsZXQgcz1lLnJlc29sdmUocik7cmV0dXJuIG5ldyB0aGlzKHMsYT09cj9zOmUucmVzb2x2ZShhKSl9c3RhdGljIGJldHdlZW4oZSxyLGEpe2xldCBzPWUucG9zLXIucG9zO2lmKCghYXx8cykmJihhPXM+PTA/MTotMSksIXIucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBuPUp0LmZpbmRGcm9tKHIsYSwhMCl8fEp0LmZpbmRGcm9tKHIsLWEsITApO2lmKG4pcj1uLiRoZWFkO2Vsc2UgcmV0dXJuIEp0Lm5lYXIocixhKX1yZXR1cm4gZS5wYXJlbnQuaW5saW5lQ29udGVudHx8KHM9PTA/ZT1yOihlPShKdC5maW5kRnJvbShlLC1hLCEwKXx8SnQuZmluZEZyb20oZSxhLCEwKSkuJGFuY2hvcixlLnBvczxyLnBvcyE9czwwJiYoZT1yKSkpLG5ldyB0KGUscil9fTtKdC5qc29uSUQoInRleHQiLGVyKTt5ZmU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJUZXh0Qm9va21hcmsiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuYW5jaG9yPWUsdGhpcy5oZWFkPXJ9bWFwKGUpe3JldHVybiBuZXcgdChlLm1hcCh0aGlzLmFuY2hvciksZS5tYXAodGhpcy5oZWFkKSl9cmVzb2x2ZShlKXtyZXR1cm4gZXIuYmV0d2VlbihlLnJlc29sdmUodGhpcy5hbmNob3IpLGUucmVzb2x2ZSh0aGlzLmhlYWQpKX19LEl0PWNsYXNzIHQgZXh0ZW5kcyBKdHtzdGF0aWN7aSh0aGlzLCJOb2RlU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7bGV0IHI9ZS5ub2RlQWZ0ZXIsYT1lLm5vZGUoMCkucmVzb2x2ZShlLnBvcytyLm5vZGVTaXplKTtzdXBlcihlLGEpLHRoaXMubm9kZT1yfW1hcChlLHIpe2xldHtkZWxldGVkOmEscG9zOnN9PXIubWFwUmVzdWx0KHRoaXMuYW5jaG9yKSxuPWUucmVzb2x2ZShzKTtyZXR1cm4gYT9KdC5uZWFyKG4pOm5ldyB0KG4pfWNvbnRlbnQoKXtyZXR1cm4gbmV3IG10KEplLmZyb20odGhpcy5ub2RlKSwwLDApfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdCYmZS5hbmNob3I9PXRoaXMuYW5jaG9yfXRvSlNPTigpe3JldHVybnt0eXBlOiJub2RlIixhbmNob3I6dGhpcy5hbmNob3J9fWdldEJvb2ttYXJrKCl7cmV0dXJuIG5ldyBrbXQodGhpcy5hbmNob3IpfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmFuY2hvciE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIE5vZGVTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IHQoZS5yZXNvbHZlKHIuYW5jaG9yKSl9c3RhdGljIGNyZWF0ZShlLHIpe3JldHVybiBuZXcgdChlLnJlc29sdmUocikpfXN0YXRpYyBpc1NlbGVjdGFibGUoZSl7cmV0dXJuIWUuaXNUZXh0JiZlLnR5cGUuc3BlYy5zZWxlY3RhYmxlIT09ITF9fTtJdC5wcm90b3R5cGUudmlzaWJsZT0hMSxKdC5qc29uSUQoIm5vZGUiLEl0KTtrbXQ9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJOb2RlQm9va21hcmsiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmFuY2hvcj1lfW1hcChlKXtsZXR7ZGVsZXRlZDpyLHBvczphfT1lLm1hcFJlc3VsdCh0aGlzLmFuY2hvcik7cmV0dXJuIHI/bmV3IHlmZShhLGEpOm5ldyB0KGEpfXJlc29sdmUoZSl7bGV0IHI9ZS5yZXNvbHZlKHRoaXMuYW5jaG9yKSxhPXIubm9kZUFmdGVyO3JldHVybiBhJiZJdC5pc1NlbGVjdGFibGUoYSk/bmV3IEl0KHIpOkp0Lm5lYXIocil9fSxNbz1jbGFzcyB0IGV4dGVuZHMgSnR7c3RhdGlje2kodGhpcywiQWxsU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5yZXNvbHZlKDApLGUucmVzb2x2ZShlLmNvbnRlbnQuc2l6ZSkpfXJlcGxhY2UoZSxyPW10LmVtcHR5KXtpZihyPT1tdC5lbXB0eSl7ZS5kZWxldGUoMCxlLmRvYy5jb250ZW50LnNpemUpO2xldCBhPUp0LmF0U3RhcnQoZS5kb2MpO2EuZXEoZS5zZWxlY3Rpb24pfHxlLnNldFNlbGVjdGlvbihhKX1lbHNlIHN1cGVyLnJlcGxhY2UoZSxyKX10b0pTT04oKXtyZXR1cm57dHlwZToiYWxsIn19c3RhdGljIGZyb21KU09OKGUpe3JldHVybiBuZXcgdChlKX1tYXAoZSl7cmV0dXJuIG5ldyB0KGUpfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdH1nZXRCb29rbWFyaygpe3JldHVybiBaSWF9fTtKdC5qc29uSUQoImFsbCIsTW8pO1pJYT17bWFwKCl7cmV0dXJuIHRoaXN9LHJlc29sdmUodCl7cmV0dXJuIG5ldyBNbyh0KX19O2koSnksImZpbmRTZWxlY3Rpb25JbiIpO2koTVdyLCJzZWxlY3Rpb25Ub0luc2VydGlvbkVuZCIpO0NXcj0xLHdmZT0yLHpXcj00LGtmZT1jbGFzcyBleHRlbmRzIEE5e3N0YXRpY3tpKHRoaXMsIlRyYW5zYWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5kb2MpLHRoaXMuY3VyU2VsZWN0aW9uRm9yPTAsdGhpcy51cGRhdGVkPTAsdGhpcy5tZXRhPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy50aW1lPURhdGUubm93KCksdGhpcy5jdXJTZWxlY3Rpb249ZS5zZWxlY3Rpb24sdGhpcy5zdG9yZWRNYXJrcz1lLnN0b3JlZE1hcmtzfWdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb25Gb3I8dGhpcy5zdGVwcy5sZW5ndGgmJih0aGlzLmN1clNlbGVjdGlvbj10aGlzLmN1clNlbGVjdGlvbi5tYXAodGhpcy5kb2MsdGhpcy5tYXBwaW5nLnNsaWNlKHRoaXMuY3VyU2VsZWN0aW9uRm9yKSksdGhpcy5jdXJTZWxlY3Rpb25Gb3I9dGhpcy5zdGVwcy5sZW5ndGgpLHRoaXMuY3VyU2VsZWN0aW9ufXNldFNlbGVjdGlvbihlKXtpZihlLiRmcm9tLmRvYyE9dGhpcy5kb2MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlNlbGVjdGlvbiBwYXNzZWQgdG8gc2V0U2VsZWN0aW9uIG11c3QgcG9pbnQgYXQgdGhlIGN1cnJlbnQgZG9jdW1lbnQiKTtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb249ZSx0aGlzLmN1clNlbGVjdGlvbkZvcj10aGlzLnN0ZXBzLmxlbmd0aCx0aGlzLnVwZGF0ZWQ9KHRoaXMudXBkYXRlZHxDV3IpJn53ZmUsdGhpcy5zdG9yZWRNYXJrcz1udWxsLHRoaXN9Z2V0IHNlbGVjdGlvblNldCgpe3JldHVybih0aGlzLnVwZGF0ZWQmQ1dyKT4wfXNldFN0b3JlZE1hcmtzKGUpe3JldHVybiB0aGlzLnN0b3JlZE1hcmtzPWUsdGhpcy51cGRhdGVkfD13ZmUsdGhpc31lbnN1cmVNYXJrcyhlKXtyZXR1cm4gaGEuc2FtZVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpLGUpfHx0aGlzLnNldFN0b3JlZE1hcmtzKGUpLHRoaXN9YWRkU3RvcmVkTWFyayhlKXtyZXR1cm4gdGhpcy5lbnN1cmVNYXJrcyhlLmFkZFRvU2V0KHRoaXMuc3RvcmVkTWFya3N8fHRoaXMuc2VsZWN0aW9uLiRoZWFkLm1hcmtzKCkpKX1yZW1vdmVTdG9yZWRNYXJrKGUpe3JldHVybiB0aGlzLmVuc3VyZU1hcmtzKGUucmVtb3ZlRnJvbVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kaGVhZC5tYXJrcygpKSl9Z2V0IHN0b3JlZE1hcmtzU2V0KCl7cmV0dXJuKHRoaXMudXBkYXRlZCZ3ZmUpPjB9YWRkU3RlcChlLHIpe3N1cGVyLmFkZFN0ZXAoZSxyKSx0aGlzLnVwZGF0ZWQ9dGhpcy51cGRhdGVkJn53ZmUsdGhpcy5zdG9yZWRNYXJrcz1udWxsfXNldFRpbWUoZSl7cmV0dXJuIHRoaXMudGltZT1lLHRoaXN9cmVwbGFjZVNlbGVjdGlvbihlKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzLGUpLHRoaXN9cmVwbGFjZVNlbGVjdGlvbldpdGgoZSxyPSEwKXtsZXQgYT10aGlzLnNlbGVjdGlvbjtyZXR1cm4gciYmKGU9ZS5tYXJrKHRoaXMuc3RvcmVkTWFya3N8fChhLmVtcHR5P2EuJGZyb20ubWFya3MoKTphLiRmcm9tLm1hcmtzQWNyb3NzKGEuJHRvKXx8aGEubm9uZSkpKSxhLnJlcGxhY2VXaXRoKHRoaXMsZSksdGhpc31kZWxldGVTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzKSx0aGlzfWluc2VydFRleHQoZSxyLGEpe2xldCBzPXRoaXMuZG9jLnR5cGUuc2NoZW1hO2lmKHI9PW51bGwpcmV0dXJuIGU/dGhpcy5yZXBsYWNlU2VsZWN0aW9uV2l0aChzLnRleHQoZSksITApOnRoaXMuZGVsZXRlU2VsZWN0aW9uKCk7e2lmKGE9PW51bGwmJihhPXIpLCFlKXJldHVybiB0aGlzLmRlbGV0ZVJhbmdlKHIsYSk7bGV0IG49dGhpcy5zdG9yZWRNYXJrcztpZighbil7bGV0IG89dGhpcy5kb2MucmVzb2x2ZShyKTtuPWE9PXI/by5tYXJrcygpOm8ubWFya3NBY3Jvc3ModGhpcy5kb2MucmVzb2x2ZShhKSl9cmV0dXJuIHRoaXMucmVwbGFjZVJhbmdlV2l0aChyLGEscy50ZXh0KGUsbikpLCF0aGlzLnNlbGVjdGlvbi5lbXB0eSYmdGhpcy5zZWxlY3Rpb24udG89PXIrZS5sZW5ndGgmJnRoaXMuc2V0U2VsZWN0aW9uKEp0Lm5lYXIodGhpcy5zZWxlY3Rpb24uJHRvKSksdGhpc319c2V0TWV0YShlLHIpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldPXIsdGhpc31nZXRNZXRhKGUpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldfWdldCBpc0dlbmVyaWMoKXtmb3IobGV0IGUgaW4gdGhpcy5tZXRhKXJldHVybiExO3JldHVybiEwfXNjcm9sbEludG9WaWV3KCl7cmV0dXJuIHRoaXMudXBkYXRlZHw9eldyLHRoaXN9Z2V0IHNjcm9sbGVkSW50b1ZpZXcoKXtyZXR1cm4odGhpcy51cGRhdGVkJnpXcik+MH19O2koX1dyLCJiaW5kIik7UDk9Y2xhc3N7c3RhdGlje2kodGhpcywiRmllbGREZXNjIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMubmFtZT1lLHRoaXMuaW5pdD1fV3Ioci5pbml0LGEpLHRoaXMuYXBwbHk9X1dyKHIuYXBwbHksYSl9fSxRSWE9W25ldyBQOSgiZG9jIix7aW5pdCh0KXtyZXR1cm4gdC5kb2N8fHQuc2NoZW1hLnRvcE5vZGVUeXBlLmNyZWF0ZUFuZEZpbGwoKX0sYXBwbHkodCl7cmV0dXJuIHQuZG9jfX0pLG5ldyBQOSgic2VsZWN0aW9uIix7aW5pdCh0LGUpe3JldHVybiB0LnNlbGVjdGlvbnx8SnQuYXRTdGFydChlLmRvYyl9LGFwcGx5KHQpe3JldHVybiB0LnNlbGVjdGlvbn19KSxuZXcgUDkoInN0b3JlZE1hcmtzIix7aW5pdCh0KXtyZXR1cm4gdC5zdG9yZWRNYXJrc3x8bnVsbH0sYXBwbHkodCxlLHIsYSl7cmV0dXJuIGEuc2VsZWN0aW9uLiRjdXJzb3I/dC5zdG9yZWRNYXJrczpudWxsfX0pLG5ldyBQOSgic2Nyb2xsVG9TZWxlY3Rpb24iLHtpbml0KCl7cmV0dXJuIDB9LGFwcGx5KHQsZSl7cmV0dXJuIHQuc2Nyb2xsZWRJbnRvVmlldz9lKzE6ZX19KV0sRXRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNvbmZpZ3VyYXRpb24iKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc2NoZW1hPWUsdGhpcy5wbHVnaW5zPVtdLHRoaXMucGx1Z2luc0J5S2V5PU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5maWVsZHM9UUlhLnNsaWNlKCksciYmci5mb3JFYWNoKGE9PntpZih0aGlzLnBsdWdpbnNCeUtleVthLmtleV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkFkZGluZyBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIGEga2V5ZWQgcGx1Z2luICgiK2Eua2V5KyIpIik7dGhpcy5wbHVnaW5zLnB1c2goYSksdGhpcy5wbHVnaW5zQnlLZXlbYS5rZXldPWEsYS5zcGVjLnN0YXRlJiZ0aGlzLmZpZWxkcy5wdXNoKG5ldyBQOShhLmtleSxhLnNwZWMuc3RhdGUsYSkpfSl9fSxJdGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJFZGl0b3JTdGF0ZSIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuY29uZmlnPWV9Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLmNvbmZpZy5zY2hlbWF9Z2V0IHBsdWdpbnMoKXtyZXR1cm4gdGhpcy5jb25maWcucGx1Z2luc31hcHBseShlKXtyZXR1cm4gdGhpcy5hcHBseVRyYW5zYWN0aW9uKGUpLnN0YXRlfWZpbHRlclRyYW5zYWN0aW9uKGUscj0tMSl7Zm9yKGxldCBhPTA7YTx0aGlzLmNvbmZpZy5wbHVnaW5zLmxlbmd0aDthKyspaWYoYSE9cil7bGV0IHM9dGhpcy5jb25maWcucGx1Z2luc1thXTtpZihzLnNwZWMuZmlsdGVyVHJhbnNhY3Rpb24mJiFzLnNwZWMuZmlsdGVyVHJhbnNhY3Rpb24uY2FsbChzLGUsdGhpcykpcmV0dXJuITF9cmV0dXJuITB9YXBwbHlUcmFuc2FjdGlvbihlKXtpZighdGhpcy5maWx0ZXJUcmFuc2FjdGlvbihlKSlyZXR1cm57c3RhdGU6dGhpcyx0cmFuc2FjdGlvbnM6W119O2xldCByPVtlXSxhPXRoaXMuYXBwbHlJbm5lcihlKSxzPW51bGw7Zm9yKDs7KXtsZXQgbj0hMTtmb3IobGV0IG89MDtvPHRoaXMuY29uZmlnLnBsdWdpbnMubGVuZ3RoO28rKyl7bGV0IGw9dGhpcy5jb25maWcucGx1Z2luc1tvXTtpZihsLnNwZWMuYXBwZW5kVHJhbnNhY3Rpb24pe2xldCBjPXM/c1tvXS5uOjAsZD1zP3Nbb10uc3RhdGU6dGhpcyxmPWM8ci5sZW5ndGgmJmwuc3BlYy5hcHBlbmRUcmFuc2FjdGlvbi5jYWxsKGwsYz9yLnNsaWNlKGMpOnIsZCxhKTtpZihmJiZhLmZpbHRlclRyYW5zYWN0aW9uKGYsbykpe2lmKGYuc2V0TWV0YSgiYXBwZW5kZWRUcmFuc2FjdGlvbiIsZSksIXMpe3M9W107Zm9yKGxldCBwPTA7cDx0aGlzLmNvbmZpZy5wbHVnaW5zLmxlbmd0aDtwKyspcy5wdXNoKHA8bz97c3RhdGU6YSxuOnIubGVuZ3RofTp7c3RhdGU6dGhpcyxuOjB9KX1yLnB1c2goZiksYT1hLmFwcGx5SW5uZXIoZiksbj0hMH1zJiYoc1tvXT17c3RhdGU6YSxuOnIubGVuZ3RofSl9fWlmKCFuKXJldHVybntzdGF0ZTphLHRyYW5zYWN0aW9uczpyfX19YXBwbHlJbm5lcihlKXtpZighZS5iZWZvcmUuZXEodGhpcy5kb2MpKXRocm93IG5ldyBSYW5nZUVycm9yKCJBcHBseWluZyBhIG1pc21hdGNoZWQgdHJhbnNhY3Rpb24iKTtsZXQgcj1uZXcgdCh0aGlzLmNvbmZpZyksYT10aGlzLmNvbmZpZy5maWVsZHM7Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2xldCBuPWFbc107cltuLm5hbWVdPW4uYXBwbHkoZSx0aGlzW24ubmFtZV0sdGhpcyxyKX1yZXR1cm4gcn1nZXQgdHIoKXtyZXR1cm4gbmV3IGtmZSh0aGlzKX1zdGF0aWMgY3JlYXRlKGUpe2xldCByPW5ldyBFdGUoZS5kb2M/ZS5kb2MudHlwZS5zY2hlbWE6ZS5zY2hlbWEsZS5wbHVnaW5zKSxhPW5ldyB0KHIpO2ZvcihsZXQgcz0wO3M8ci5maWVsZHMubGVuZ3RoO3MrKylhW3IuZmllbGRzW3NdLm5hbWVdPXIuZmllbGRzW3NdLmluaXQoZSxhKTtyZXR1cm4gYX1yZWNvbmZpZ3VyZShlKXtsZXQgcj1uZXcgRXRlKHRoaXMuc2NoZW1hLGUucGx1Z2lucyksYT1yLmZpZWxkcyxzPW5ldyB0KHIpO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bisrKXtsZXQgbz1hW25dLm5hbWU7c1tvXT10aGlzLmhhc093blByb3BlcnR5KG8pP3RoaXNbb106YVtuXS5pbml0KGUscyl9cmV0dXJuIHN9dG9KU09OKGUpe2xldCByPXtkb2M6dGhpcy5kb2MudG9KU09OKCksc2VsZWN0aW9uOnRoaXMuc2VsZWN0aW9uLnRvSlNPTigpfTtpZih0aGlzLnN0b3JlZE1hcmtzJiYoci5zdG9yZWRNYXJrcz10aGlzLnN0b3JlZE1hcmtzLm1hcChhPT5hLnRvSlNPTigpKSksZSYmdHlwZW9mIGU9PSJvYmplY3QiKWZvcihsZXQgYSBpbiBlKXtpZihhPT0iZG9jInx8YT09InNlbGVjdGlvbiIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRoZSBKU09OIGZpZWxkcyBgZG9jYCBhbmQgYHNlbGVjdGlvbmAgYXJlIHJlc2VydmVkIik7bGV0IHM9ZVthXSxuPXMuc3BlYy5zdGF0ZTtuJiZuLnRvSlNPTiYmKHJbYV09bi50b0pTT04uY2FsbChzLHRoaXNbcy5rZXldKSl9cmV0dXJuIHJ9c3RhdGljIGZyb21KU09OKGUscixhKXtpZighcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgRWRpdG9yU3RhdGUuZnJvbUpTT04iKTtpZighZS5zY2hlbWEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlJlcXVpcmVkIGNvbmZpZyBmaWVsZCAnc2NoZW1hJyBtaXNzaW5nIik7bGV0IHM9bmV3IEV0ZShlLnNjaGVtYSxlLnBsdWdpbnMpLG49bmV3IHQocyk7cmV0dXJuIHMuZmllbGRzLmZvckVhY2gobz0+e2lmKG8ubmFtZT09ImRvYyIpbi5kb2M9cW8uZnJvbUpTT04oZS5zY2hlbWEsci5kb2MpO2Vsc2UgaWYoby5uYW1lPT0ic2VsZWN0aW9uIiluLnNlbGVjdGlvbj1KdC5mcm9tSlNPTihuLmRvYyxyLnNlbGVjdGlvbik7ZWxzZSBpZihvLm5hbWU9PSJzdG9yZWRNYXJrcyIpci5zdG9yZWRNYXJrcyYmKG4uc3RvcmVkTWFya3M9ci5zdG9yZWRNYXJrcy5tYXAoZS5zY2hlbWEubWFya0Zyb21KU09OKSk7ZWxzZXtpZihhKWZvcihsZXQgbCBpbiBhKXtsZXQgYz1hW2xdLGQ9Yy5zcGVjLnN0YXRlO2lmKGMua2V5PT1vLm5hbWUmJmQmJmQuZnJvbUpTT04mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGwpKXtuW28ubmFtZV09ZC5mcm9tSlNPTi5jYWxsKGMsZSxyW2xdLG4pO3JldHVybn19bltvLm5hbWVdPW8uaW5pdChlLG4pfX0pLG59fTtpKFRXciwiYmluZFByb3BzIik7UWE9Y2xhc3N7c3RhdGlje2kodGhpcywiUGx1Z2luIil9Y29uc3RydWN0b3IoZSl7dGhpcy5zcGVjPWUsdGhpcy5wcm9wcz17fSxlLnByb3BzJiZUV3IoZS5wcm9wcyx0aGlzLHRoaXMucHJvcHMpLHRoaXMua2V5PWUua2V5P2Uua2V5LmtleTpMV3IoInBsdWdpbiIpfWdldFN0YXRlKGUpe3JldHVybiBlW3RoaXMua2V5XX19LFNtdD1PYmplY3QuY3JlYXRlKG51bGwpO2koTFdyLCJjcmVhdGVLZXkiKTtMcz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQbHVnaW5LZXkiKX1jb25zdHJ1Y3RvcihlPSJrZXkiKXt0aGlzLmtleT1MV3IoZSl9Z2V0KGUpe3JldHVybiBlLmNvbmZpZy5wbHVnaW5zQnlLZXlbdGhpcy5rZXldfWdldFN0YXRlKGUpe3JldHVybiBlW3RoaXMua2V5XX19fSk7dmFyIFB0ZT11KCgpPT57YTMoKX0pO2Z1bmN0aW9uIERXcih0LGUscixhLHMpe2Zvcih2YXIgbjs7KXtpZih0PT1yJiZlPT1hKXJldHVybiEwO2lmKGU9PShzPDA/MDpKbCh0KSkpe2xldCBvPXQucGFyZW50Tm9kZTtpZighb3x8by5ub2RlVHlwZSE9MXx8TnRlKHQpfHxKSWEudGVzdCh0Lm5vZGVOYW1lKXx8dC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpcmV0dXJuITE7ZT1Qbih0KSsoczwwPzA6MSksdD1vfWVsc2UgaWYodC5ub2RlVHlwZT09MSl7bGV0IG89dC5jaGlsZE5vZGVzW2UrKHM8MD8tMTowKV07aWYoby5ub2RlVHlwZT09MSYmby5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpaWYoISgobj1vLnBtVmlld0Rlc2MpPT09bnVsbHx8bj09PXZvaWQgMCkmJm4uaWdub3JlRm9yU2VsZWN0aW9uKWUrPXM7ZWxzZSByZXR1cm4hMTtlbHNlIHQ9byxlPXM8MD9KbCh0KTowfWVsc2UgcmV0dXJuITF9fWZ1bmN0aW9uIEpsKHQpe3JldHVybiB0Lm5vZGVUeXBlPT0zP3Qubm9kZVZhbHVlLmxlbmd0aDp0LmNoaWxkTm9kZXMubGVuZ3RofWZ1bmN0aW9uIGVQYSh0LGUpe2Zvcig7Oyl7aWYodC5ub2RlVHlwZT09MyYmZSlyZXR1cm4gdDtpZih0Lm5vZGVUeXBlPT0xJiZlPjApe2lmKHQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiBudWxsO3Q9dC5jaGlsZE5vZGVzW2UtMV0sZT1KbCh0KX1lbHNlIGlmKHQucGFyZW50Tm9kZSYmIU50ZSh0KSllPVBuKHQpLHQ9dC5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGx9fWZ1bmN0aW9uIHRQYSh0LGUpe2Zvcig7Oyl7aWYodC5ub2RlVHlwZT09MyYmZTx0Lm5vZGVWYWx1ZS5sZW5ndGgpcmV0dXJuIHQ7aWYodC5ub2RlVHlwZT09MSYmZTx0LmNoaWxkTm9kZXMubGVuZ3RoKXtpZih0LmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilyZXR1cm4gbnVsbDt0PXQuY2hpbGROb2Rlc1tlXSxlPTB9ZWxzZSBpZih0LnBhcmVudE5vZGUmJiFOdGUodCkpZT1Qbih0KSsxLHQ9dC5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGx9fWZ1bmN0aW9uIHJQYSh0LGUscil7Zm9yKGxldCBhPWU9PTAscz1lPT1KbCh0KTthfHxzOyl7aWYodD09cilyZXR1cm4hMDtsZXQgbj1Qbih0KTtpZih0PXQucGFyZW50Tm9kZSwhdClyZXR1cm4hMTthPWEmJm49PTAscz1zJiZuPT1KbCh0KX19ZnVuY3Rpb24gTnRlKHQpe2xldCBlO2ZvcihsZXQgcj10O3ImJiEoZT1yLnBtVmlld0Rlc2MpO3I9ci5wYXJlbnROb2RlKTtyZXR1cm4gZSYmZS5ub2RlJiZlLm5vZGUuaXNCbG9jayYmKGUuZG9tPT10fHxlLmNvbnRlbnRET009PXQpfWZ1bmN0aW9uIFI5KHQsZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIHIuaW5pdEV2ZW50KCJrZXlkb3duIiwhMCwhMCksci5rZXlDb2RlPXQsci5rZXk9ci5jb2RlPWUscn1mdW5jdGlvbiBhUGEodCl7bGV0IGU9dC5hY3RpdmVFbGVtZW50O2Zvcig7ZSYmZS5zaGFkb3dSb290OyllPWUuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O3JldHVybiBlfWZ1bmN0aW9uIGlQYSh0LGUscil7aWYodC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KXRyeXtsZXQgYT10LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZSxyKTtpZihhKXJldHVybntub2RlOmEub2Zmc2V0Tm9kZSxvZmZzZXQ6TWF0aC5taW4oSmwoYS5vZmZzZXROb2RlKSxhLm9mZnNldCl9fWNhdGNoe31pZih0LmNhcmV0UmFuZ2VGcm9tUG9pbnQpe2xldCBhPXQuY2FyZXRSYW5nZUZyb21Qb2ludChlLHIpO2lmKGEpcmV0dXJue25vZGU6YS5zdGFydENvbnRhaW5lcixvZmZzZXQ6TWF0aC5taW4oSmwoYS5zdGFydENvbnRhaW5lciksYS5zdGFydE9mZnNldCl9fX1mdW5jdGlvbiBuUGEodCl7bGV0IGU9dC5kZWZhdWx0VmlldyYmdC5kZWZhdWx0Vmlldy52aXN1YWxWaWV3cG9ydDtyZXR1cm4gZT97bGVmdDowLHJpZ2h0OmUud2lkdGgsdG9wOjAsYm90dG9tOmUuaGVpZ2h0fTp7bGVmdDowLHJpZ2h0OnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHRvcDowLGJvdHRvbTp0LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR9fWZ1bmN0aW9uIG4zKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIj90OnRbZV19ZnVuY3Rpb24gb1BhKHQpe2xldCBlPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1lLndpZHRoL3Qub2Zmc2V0V2lkdGh8fDEsYT1lLmhlaWdodC90Lm9mZnNldEhlaWdodHx8MTtyZXR1cm57bGVmdDplLmxlZnQscmlnaHQ6ZS5sZWZ0K3QuY2xpZW50V2lkdGgqcix0b3A6ZS50b3AsYm90dG9tOmUudG9wK3QuY2xpZW50SGVpZ2h0KmF9fWZ1bmN0aW9uIFBXcih0LGUscil7bGV0IGE9dC5zb21lUHJvcCgic2Nyb2xsVGhyZXNob2xkIil8fDAscz10LnNvbWVQcm9wKCJzY3JvbGxNYXJnaW4iKXx8NSxuPXQuZG9tLm93bmVyRG9jdW1lbnQ7Zm9yKGxldCBvPXJ8fHQuZG9tO287KXtpZihvLm5vZGVUeXBlIT0xKXtvPWV3KG8pO2NvbnRpbnVlfWxldCBsPW8sYz1sPT1uLmJvZHksZD1jP25QYShuKTpvUGEobCksZj0wLHA9MDtpZihlLnRvcDxkLnRvcCtuMyhhLCJ0b3AiKT9wPS0oZC50b3AtZS50b3ArbjMocywidG9wIikpOmUuYm90dG9tPmQuYm90dG9tLW4zKGEsImJvdHRvbSIpJiYocD1lLmJvdHRvbS1lLnRvcD5kLmJvdHRvbS1kLnRvcD9lLnRvcCtuMyhzLCJ0b3AiKS1kLnRvcDplLmJvdHRvbS1kLmJvdHRvbStuMyhzLCJib3R0b20iKSksZS5sZWZ0PGQubGVmdCtuMyhhLCJsZWZ0Iik/Zj0tKGQubGVmdC1lLmxlZnQrbjMocywibGVmdCIpKTplLnJpZ2h0PmQucmlnaHQtbjMoYSwicmlnaHQiKSYmKGY9ZS5yaWdodC1kLnJpZ2h0K24zKHMsInJpZ2h0IikpLGZ8fHApaWYoYyluLmRlZmF1bHRWaWV3LnNjcm9sbEJ5KGYscCk7ZWxzZXtsZXQgbT1sLnNjcm9sbExlZnQsdj1sLnNjcm9sbFRvcDtwJiYobC5zY3JvbGxUb3ArPXApLGYmJihsLnNjcm9sbExlZnQrPWYpO2xldCBiPWwuc2Nyb2xsTGVmdC1tLGc9bC5zY3JvbGxUb3AtdjtlPXtsZWZ0OmUubGVmdC1iLHRvcDplLnRvcC1nLHJpZ2h0OmUucmlnaHQtYixib3R0b206ZS5ib3R0b20tZ319bGV0IGg9Yz8iZml4ZWQiOmdldENvbXB1dGVkU3R5bGUobykucG9zaXRpb247aWYoL14oZml4ZWR8c3RpY2t5KSQvLnRlc3QoaCkpYnJlYWs7bz1oPT0iYWJzb2x1dGUiP28ub2Zmc2V0UGFyZW50OmV3KG8pfX1mdW5jdGlvbiBsUGEodCl7bGV0IGU9dC5kb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1NYXRoLm1heCgwLGUudG9wKSxhLHM7Zm9yKGxldCBuPShlLmxlZnQrZS5yaWdodCkvMixvPXIrMTtvPE1hdGgubWluKGlubmVySGVpZ2h0LGUuYm90dG9tKTtvKz01KXtsZXQgbD10LnJvb3QuZWxlbWVudEZyb21Qb2ludChuLG8pO2lmKCFsfHxsPT10LmRvbXx8IXQuZG9tLmNvbnRhaW5zKGwpKWNvbnRpbnVlO2xldCBjPWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYy50b3A+PXItMjApe2E9bCxzPWMudG9wO2JyZWFrfX1yZXR1cm57cmVmRE9NOmEscmVmVG9wOnMsc3RhY2s6TldyKHQuZG9tKX19ZnVuY3Rpb24gTldyKHQpe2xldCBlPVtdLHI9dC5vd25lckRvY3VtZW50O2ZvcihsZXQgYT10O2EmJihlLnB1c2goe2RvbTphLHRvcDphLnNjcm9sbFRvcCxsZWZ0OmEuc2Nyb2xsTGVmdH0pLHQhPXIpO2E9ZXcoYSkpO3JldHVybiBlfWZ1bmN0aW9uIGNQYSh7cmVmRE9NOnQscmVmVG9wOmUsc3RhY2s6cn0pe2xldCBhPXQ/dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A6MDtPV3IocixhPT0wPzA6YS1lKX1mdW5jdGlvbiBPV3IodCxlKXtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl7bGV0e2RvbTphLHRvcDpzLGxlZnQ6bn09dFtyXTthLnNjcm9sbFRvcCE9cytlJiYoYS5zY3JvbGxUb3A9cytlKSxhLnNjcm9sbExlZnQhPW4mJihhLnNjcm9sbExlZnQ9bil9fWZ1bmN0aW9uIGRQYSh0KXtpZih0LnNldEFjdGl2ZSlyZXR1cm4gdC5zZXRBY3RpdmUoKTtpZihydylyZXR1cm4gdC5mb2N1cyhydyk7bGV0IGU9TldyKHQpO3QuZm9jdXMocnc9PW51bGw/e2dldCBwcmV2ZW50U2Nyb2xsKCl7cmV0dXJuIHJ3PXtwcmV2ZW50U2Nyb2xsOiEwfSwhMH19OnZvaWQgMCkscnd8fChydz0hMSxPV3IoZSwwKSl9ZnVuY3Rpb24gUldyKHQsZSl7bGV0IHIsYT0yZTgscyxuPTAsbz1lLnRvcCxsPWUudG9wLGMsZDtmb3IobGV0IGY9dC5maXJzdENoaWxkLHA9MDtmO2Y9Zi5uZXh0U2libGluZyxwKyspe2xldCBoO2lmKGYubm9kZVR5cGU9PTEpaD1mLmdldENsaWVudFJlY3RzKCk7ZWxzZSBpZihmLm5vZGVUeXBlPT0zKWg9aTMoZikuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGNvbnRpbnVlO2ZvcihsZXQgbT0wO208aC5sZW5ndGg7bSsrKXtsZXQgdj1oW21dO2lmKHYudG9wPD1vJiZ2LmJvdHRvbT49bCl7bz1NYXRoLm1heCh2LmJvdHRvbSxvKSxsPU1hdGgubWluKHYudG9wLGwpO2xldCBiPXYubGVmdD5lLmxlZnQ/di5sZWZ0LWUubGVmdDp2LnJpZ2h0PGUubGVmdD9lLmxlZnQtdi5yaWdodDowO2lmKGI8YSl7cj1mLGE9YixzPWImJnIubm9kZVR5cGU9PTM/e2xlZnQ6di5yaWdodDxlLmxlZnQ/di5yaWdodDp2LmxlZnQsdG9wOmUudG9wfTplLGYubm9kZVR5cGU9PTEmJmImJihuPXArKGUubGVmdD49KHYubGVmdCt2LnJpZ2h0KS8yPzE6MCkpO2NvbnRpbnVlfX1lbHNlIHYudG9wPmUudG9wJiYhYyYmdi5sZWZ0PD1lLmxlZnQmJnYucmlnaHQ+PWUubGVmdCYmKGM9ZixkPXtsZWZ0Ok1hdGgubWF4KHYubGVmdCxNYXRoLm1pbih2LnJpZ2h0LGUubGVmdCkpLHRvcDp2LnRvcH0pOyFyJiYoZS5sZWZ0Pj12LnJpZ2h0JiZlLnRvcD49di50b3B8fGUubGVmdD49di5sZWZ0JiZlLnRvcD49di5ib3R0b20pJiYobj1wKzEpfX1yZXR1cm4hciYmYyYmKHI9YyxzPWQsYT0wKSxyJiZyLm5vZGVUeXBlPT0zP3VQYShyLHMpOiFyfHxhJiZyLm5vZGVUeXBlPT0xP3tub2RlOnQsb2Zmc2V0Om59OlJXcihyLHMpfWZ1bmN0aW9uIHVQYSh0LGUpe2xldCByPXQubm9kZVZhbHVlLmxlbmd0aCxhPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkscztmb3IobGV0IG49MDtuPHI7bisrKXthLnNldEVuZCh0LG4rMSksYS5zZXRTdGFydCh0LG4pO2xldCBvPUtwKGEsMSk7aWYoby50b3AhPW8uYm90dG9tJiZUbXQoZSxvKSl7cz17bm9kZTp0LG9mZnNldDpuKyhlLmxlZnQ+PShvLmxlZnQrby5yaWdodCkvMj8xOjApfTticmVha319cmV0dXJuIGEuZGV0YWNoKCksc3x8e25vZGU6dCxvZmZzZXQ6MH19ZnVuY3Rpb24gVG10KHQsZSl7cmV0dXJuIHQubGVmdD49ZS5sZWZ0LTEmJnQubGVmdDw9ZS5yaWdodCsxJiZ0LnRvcD49ZS50b3AtMSYmdC50b3A8PWUuYm90dG9tKzF9ZnVuY3Rpb24gcFBhKHQsZSl7bGV0IHI9dC5wYXJlbnROb2RlO3JldHVybiByJiYvXmxpJC9pLnRlc3Qoci5ub2RlTmFtZSkmJmUubGVmdDx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ/cjp0fWZ1bmN0aW9uIGZQYSh0LGUscil7bGV0e25vZGU6YSxvZmZzZXQ6c309UldyKGUsciksbj0tMTtpZihhLm5vZGVUeXBlPT0xJiYhYS5maXJzdENoaWxkKXtsZXQgbz1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO249by5sZWZ0IT1vLnJpZ2h0JiZyLmxlZnQ+KG8ubGVmdCtvLnJpZ2h0KS8yPzE6LTF9cmV0dXJuIHQuZG9jVmlldy5wb3NGcm9tRE9NKGEscyxuKX1mdW5jdGlvbiBoUGEodCxlLHIsYSl7bGV0IHM9LTE7Zm9yKGxldCBuPWUsbz0hMTtuIT10LmRvbTspe2xldCBsPXQuZG9jVmlldy5uZWFyZXN0RGVzYyhuLCEwKSxjO2lmKCFsKXJldHVybiBudWxsO2lmKGwuZG9tLm5vZGVUeXBlPT0xJiYobC5ub2RlLmlzQmxvY2smJmwucGFyZW50fHwhbC5jb250ZW50RE9NKSYmKChjPWwuZG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS53aWR0aHx8Yy5oZWlnaHQpJiYobC5ub2RlLmlzQmxvY2smJmwucGFyZW50JiYhL15UKFJ8Qk9EWXxIRUFEfEZPT1QpJC8udGVzdChsLmRvbS5ub2RlTmFtZSkmJighbyYmYy5sZWZ0PmEubGVmdHx8Yy50b3A+YS50b3A/cz1sLnBvc0JlZm9yZTooIW8mJmMucmlnaHQ8YS5sZWZ0fHxjLmJvdHRvbTxhLnRvcCkmJihzPWwucG9zQWZ0ZXIpLG89ITApLCFsLmNvbnRlbnRET00mJnM8MCYmIWwubm9kZS5pc1RleHQpKXJldHVybihsLm5vZGUuaXNCbG9jaz9hLnRvcDwoYy50b3ArYy5ib3R0b20pLzI6YS5sZWZ0PChjLmxlZnQrYy5yaWdodCkvMik/bC5wb3NCZWZvcmU6bC5wb3NBZnRlcjtuPWwuZG9tLnBhcmVudE5vZGV9cmV0dXJuIHM+LTE/czp0LmRvY1ZpZXcucG9zRnJvbURPTShlLHIsLTEpfWZ1bmN0aW9uIEZXcih0LGUscil7bGV0IGE9dC5jaGlsZE5vZGVzLmxlbmd0aDtpZihhJiZyLnRvcDxyLmJvdHRvbSlmb3IobGV0IHM9TWF0aC5tYXgoMCxNYXRoLm1pbihhLTEsTWF0aC5mbG9vcihhKihlLnRvcC1yLnRvcCkvKHIuYm90dG9tLXIudG9wKSktMikpLG49czs7KXtsZXQgbz10LmNoaWxkTm9kZXNbbl07aWYoby5ub2RlVHlwZT09MSl7bGV0IGw9by5nZXRDbGllbnRSZWN0cygpO2ZvcihsZXQgYz0wO2M8bC5sZW5ndGg7YysrKXtsZXQgZD1sW2NdO2lmKFRtdChlLGQpKXJldHVybiBGV3IobyxlLGQpfX1pZigobj0obisxKSVhKT09cylicmVha31yZXR1cm4gdH1mdW5jdGlvbiBtUGEodCxlKXtsZXQgcj10LmRvbS5vd25lckRvY3VtZW50LGEscz0wLG49aVBhKHIsZS5sZWZ0LGUudG9wKTtuJiYoe25vZGU6YSxvZmZzZXQ6c309bik7bGV0IG89KHQucm9vdC5lbGVtZW50RnJvbVBvaW50P3Qucm9vdDpyKS5lbGVtZW50RnJvbVBvaW50KGUubGVmdCxlLnRvcCksbDtpZighb3x8IXQuZG9tLmNvbnRhaW5zKG8ubm9kZVR5cGUhPTE/by5wYXJlbnROb2RlOm8pKXtsZXQgZD10LmRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZighVG10KGUsZCl8fChvPUZXcih0LmRvbSxlLGQpLCFvKSlyZXR1cm4gbnVsbH1pZihDbylmb3IobGV0IGQ9bzthJiZkO2Q9ZXcoZCkpZC5kcmFnZ2FibGUmJihhPXZvaWQgMCk7aWYobz1wUGEobyxlKSxhKXtpZihlMiYmYS5ub2RlVHlwZT09MSYmKHM9TWF0aC5taW4ocyxhLmNoaWxkTm9kZXMubGVuZ3RoKSxzPGEuY2hpbGROb2Rlcy5sZW5ndGgpKXtsZXQgZj1hLmNoaWxkTm9kZXNbc10scDtmLm5vZGVOYW1lPT0iSU1HIiYmKHA9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkucmlnaHQ8PWUubGVmdCYmcC5ib3R0b20+ZS50b3AmJnMrK31sZXQgZDtPdGUmJnMmJmEubm9kZVR5cGU9PTEmJihkPWEuY2hpbGROb2Rlc1tzLTFdKS5ub2RlVHlwZT09MSYmZC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSImJmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wPj1lLnRvcCYmcy0tLGE9PXQuZG9tJiZzPT1hLmNoaWxkTm9kZXMubGVuZ3RoLTEmJmEubGFzdENoaWxkLm5vZGVUeXBlPT0xJiZlLnRvcD5hLmxhc3RDaGlsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20/bD10LnN0YXRlLmRvYy5jb250ZW50LnNpemU6KHM9PTB8fGEubm9kZVR5cGUhPTF8fGEuY2hpbGROb2Rlc1tzLTFdLm5vZGVOYW1lIT0iQlIiKSYmKGw9aFBhKHQsYSxzLGUpKX1sPT1udWxsJiYobD1mUGEodCxvLGUpKTtsZXQgYz10LmRvY1ZpZXcubmVhcmVzdERlc2MobywhMCk7cmV0dXJue3BvczpsLGluc2lkZTpjP2MucG9zQXRTdGFydC1jLmJvcmRlcjotMX19ZnVuY3Rpb24gQldyKHQpe3JldHVybiB0LnRvcDx0LmJvdHRvbXx8dC5sZWZ0PHQucmlnaHR9ZnVuY3Rpb24gS3AodCxlKXtsZXQgcj10LmdldENsaWVudFJlY3RzKCk7aWYoci5sZW5ndGgpe2xldCBhPXJbZTwwPzA6ci5sZW5ndGgtMV07aWYoQldyKGEpKXJldHVybiBhfXJldHVybiBBcnJheS5wcm90b3R5cGUuZmluZC5jYWxsKHIsQldyKXx8dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1mdW5jdGlvbiBIV3IodCxlLHIpe2xldHtub2RlOmEsb2Zmc2V0OnMsYXRvbTpufT10LmRvY1ZpZXcuZG9tRnJvbVBvcyhlLHI8MD8tMToxKSxvPU90ZXx8ZTI7aWYoYS5ub2RlVHlwZT09MylpZihvJiYoZ1BhLnRlc3QoYS5ub2RlVmFsdWUpfHwocjwwPyFzOnM9PWEubm9kZVZhbHVlLmxlbmd0aCkpKXtsZXQgYz1LcChpMyhhLHMscykscik7aWYoZTImJnMmJi9ccy8udGVzdChhLm5vZGVWYWx1ZVtzLTFdKSYmczxhLm5vZGVWYWx1ZS5sZW5ndGgpe2xldCBkPUtwKGkzKGEscy0xLHMtMSksLTEpO2lmKGQudG9wPT1jLnRvcCl7bGV0IGY9S3AoaTMoYSxzLHMrMSksLTEpO2lmKGYudG9wIT1jLnRvcClyZXR1cm4gUnRlKGYsZi5sZWZ0PGQubGVmdCl9fXJldHVybiBjfWVsc2V7bGV0IGM9cyxkPXMsZj1yPDA/MTotMTtyZXR1cm4gcjwwJiYhcz8oZCsrLGY9LTEpOnI+PTAmJnM9PWEubm9kZVZhbHVlLmxlbmd0aD8oYy0tLGY9MSk6cjwwP2MtLTpkKyssUnRlKEtwKGkzKGEsYyxkKSxmKSxmPDApfWlmKCF0LnN0YXRlLmRvYy5yZXNvbHZlKGUtKG58fDApKS5wYXJlbnQuaW5saW5lQ29udGVudCl7aWYobj09bnVsbCYmcyYmKHI8MHx8cz09SmwoYSkpKXtsZXQgYz1hLmNoaWxkTm9kZXNbcy0xXTtpZihjLm5vZGVUeXBlPT0xKXJldHVybiBMbXQoYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwhMSl9aWYobj09bnVsbCYmczxKbChhKSl7bGV0IGM9YS5jaGlsZE5vZGVzW3NdO2lmKGMubm9kZVR5cGU9PTEpcmV0dXJuIExtdChjLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCEwKX1yZXR1cm4gTG10KGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj49MCl9aWYobj09bnVsbCYmcyYmKHI8MHx8cz09SmwoYSkpKXtsZXQgYz1hLmNoaWxkTm9kZXNbcy0xXSxkPWMubm9kZVR5cGU9PTM/aTMoYyxKbChjKS0obz8wOjEpKTpjLm5vZGVUeXBlPT0xJiYoYy5ub2RlTmFtZSE9IkJSInx8IWMubmV4dFNpYmxpbmcpP2M6bnVsbDtpZihkKXJldHVybiBSdGUoS3AoZCwxKSwhMSl9aWYobj09bnVsbCYmczxKbChhKSl7bGV0IGM9YS5jaGlsZE5vZGVzW3NdO2Zvcig7Yy5wbVZpZXdEZXNjJiZjLnBtVmlld0Rlc2MuaWdub3JlRm9yQ29vcmRzOyljPWMubmV4dFNpYmxpbmc7bGV0IGQ9Yz9jLm5vZGVUeXBlPT0zP2kzKGMsMCxvPzA6MSk6Yy5ub2RlVHlwZT09MT9jOm51bGw6bnVsbDtpZihkKXJldHVybiBSdGUoS3AoZCwtMSksITApfXJldHVybiBSdGUoS3AoYS5ub2RlVHlwZT09Mz9pMyhhKTphLC1yKSxyPj0wKX1mdW5jdGlvbiBSdGUodCxlKXtpZih0LndpZHRoPT0wKXJldHVybiB0O2xldCByPWU/dC5sZWZ0OnQucmlnaHQ7cmV0dXJue3RvcDp0LnRvcCxib3R0b206dC5ib3R0b20sbGVmdDpyLHJpZ2h0OnJ9fWZ1bmN0aW9uIExtdCh0LGUpe2lmKHQuaGVpZ2h0PT0wKXJldHVybiB0O2xldCByPWU/dC50b3A6dC5ib3R0b207cmV0dXJue3RvcDpyLGJvdHRvbTpyLGxlZnQ6dC5sZWZ0LHJpZ2h0OnQucmlnaHR9fWZ1bmN0aW9uIHFXcih0LGUscil7bGV0IGE9dC5zdGF0ZSxzPXQucm9vdC5hY3RpdmVFbGVtZW50O2EhPWUmJnQudXBkYXRlU3RhdGUoZSkscyE9dC5kb20mJnQuZm9jdXMoKTt0cnl7cmV0dXJuIHIoKX1maW5hbGx5e2EhPWUmJnQudXBkYXRlU3RhdGUoYSkscyE9dC5kb20mJnMmJnMuZm9jdXMoKX19ZnVuY3Rpb24gYlBhKHQsZSxyKXtsZXQgYT1lLnNlbGVjdGlvbixzPXI9PSJ1cCI/YS4kZnJvbTphLiR0bztyZXR1cm4gcVdyKHQsZSwoKT0+e2xldHtub2RlOm59PXQuZG9jVmlldy5kb21Gcm9tUG9zKHMucG9zLHI9PSJ1cCI/LTE6MSk7Zm9yKDs7KXtsZXQgbD10LmRvY1ZpZXcubmVhcmVzdERlc2MobiwhMCk7aWYoIWwpYnJlYWs7aWYobC5ub2RlLmlzQmxvY2spe249bC5jb250ZW50RE9NfHxsLmRvbTticmVha31uPWwuZG9tLnBhcmVudE5vZGV9bGV0IG89SFdyKHQscy5wb3MsMSk7Zm9yKGxldCBsPW4uZmlyc3RDaGlsZDtsO2w9bC5uZXh0U2libGluZyl7bGV0IGM7aWYobC5ub2RlVHlwZT09MSljPWwuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGlmKGwubm9kZVR5cGU9PTMpYz1pMyhsLDAsbC5ub2RlVmFsdWUubGVuZ3RoKS5nZXRDbGllbnRSZWN0cygpO2Vsc2UgY29udGludWU7Zm9yKGxldCBkPTA7ZDxjLmxlbmd0aDtkKyspe2xldCBmPWNbZF07aWYoZi5ib3R0b20+Zi50b3ArMSYmKHI9PSJ1cCI/by50b3AtZi50b3A+KGYuYm90dG9tLW8udG9wKSoyOmYuYm90dG9tLW8uYm90dG9tPihvLmJvdHRvbS1mLnRvcCkqMikpcmV0dXJuITF9fXJldHVybiEwfSl9ZnVuY3Rpb24gdlBhKHQsZSxyKXtsZXR7JGhlYWQ6YX09ZS5zZWxlY3Rpb247aWYoIWEucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybiExO2xldCBzPWEucGFyZW50T2Zmc2V0LG49IXMsbz1zPT1hLnBhcmVudC5jb250ZW50LnNpemUsbD10LmRvbVNlbGVjdGlvbigpO3JldHVybiBsPyF4UGEudGVzdChhLnBhcmVudC50ZXh0Q29udGVudCl8fCFsLm1vZGlmeT9yPT0ibGVmdCJ8fHI9PSJiYWNrd2FyZCI/bjpvOnFXcih0LGUsKCk9PntsZXR7Zm9jdXNOb2RlOmMsZm9jdXNPZmZzZXQ6ZCxhbmNob3JOb2RlOmYsYW5jaG9yT2Zmc2V0OnB9PXQuZG9tU2VsZWN0aW9uUmFuZ2UoKSxoPWwuY2FyZXRCaWRpTGV2ZWw7bC5tb2RpZnkoIm1vdmUiLHIsImNoYXJhY3RlciIpO2xldCBtPWEuZGVwdGg/dC5kb2NWaWV3LmRvbUFmdGVyUG9zKGEuYmVmb3JlKCkpOnQuZG9tLHtmb2N1c05vZGU6dixmb2N1c09mZnNldDpifT10LmRvbVNlbGVjdGlvblJhbmdlKCksZz12JiYhbS5jb250YWlucyh2Lm5vZGVUeXBlPT0xP3Y6di5wYXJlbnROb2RlKXx8Yz09diYmZD09Yjt0cnl7bC5jb2xsYXBzZShmLHApLGMmJihjIT1mfHxkIT1wKSYmbC5leHRlbmQmJmwuZXh0ZW5kKGMsZCl9Y2F0Y2h7fXJldHVybiBoIT1udWxsJiYobC5jYXJldEJpZGlMZXZlbD1oKSxnfSk6YS5wb3M9PWEuc3RhcnQoKXx8YS5wb3M9PWEuZW5kKCl9ZnVuY3Rpb24geVBhKHQsZSxyKXtyZXR1cm4gVldyPT1lJiZqV3I9PXI/VVdyOihWV3I9ZSxqV3I9cixVV3I9cj09InVwInx8cj09ImRvd24iP2JQYSh0LGUscik6dlBhKHQsZSxyKSl9ZnVuY3Rpb24gR1dyKHQsZSxyLGEscyl7WldyKGEsZSx0KTtsZXQgbj1uZXcgWnAodm9pZCAwLHQsZSxyLGEsYSxhLHMsMCk7cmV0dXJuIG4uY29udGVudERPTSYmbi51cGRhdGVDaGlsZHJlbihzLDApLG59ZnVuY3Rpb24gWVdyKHQsZSxyKXtsZXQgYT10LmZpcnN0Q2hpbGQscz0hMTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IG89ZVtuXSxsPW8uZG9tO2lmKGwucGFyZW50Tm9kZT09dCl7Zm9yKDtsIT1hOylhPVFXcihhKSxzPSEwO2E9YS5uZXh0U2libGluZ31lbHNlIHM9ITAsdC5pbnNlcnRCZWZvcmUobCxhKTtpZihvIGluc3RhbmNlb2YgYXcpe2xldCBjPWE/YS5wcmV2aW91c1NpYmxpbmc6dC5sYXN0Q2hpbGQ7WVdyKG8uY29udGVudERPTSxvLmNoaWxkcmVuLHIpLGE9Yz9jLm5leHRTaWJsaW5nOnQuZmlyc3RDaGlsZH19Zm9yKDthOylhPVFXcihhKSxzPSEwO3MmJnIudHJhY2tXcml0ZXM9PXQmJihyLnRyYWNrV3JpdGVzPW51bGwpfWZ1bmN0aW9uIEFtdCh0LGUscil7aWYodC5sZW5ndGg9PTApcmV0dXJuIEg5O2xldCBhPXI/SDlbMF06bmV3IEZ0ZSxzPVthXTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IG89dFtuXS50eXBlLmF0dHJzO2lmKG8pe28ubm9kZU5hbWUmJnMucHVzaChhPW5ldyBGdGUoby5ub2RlTmFtZSkpO2ZvcihsZXQgbCBpbiBvKXtsZXQgYz1vW2xdO2MhPW51bGwmJihyJiZzLmxlbmd0aD09MSYmcy5wdXNoKGE9bmV3IEZ0ZShlLmlzSW5saW5lPyJzcGFuIjoiZGl2IikpLGw9PSJjbGFzcyI/YS5jbGFzcz0oYS5jbGFzcz9hLmNsYXNzKyIgIjoiIikrYzpsPT0ic3R5bGUiP2Euc3R5bGU9KGEuc3R5bGU/YS5zdHlsZSsiOyI6IiIpK2M6bCE9Im5vZGVOYW1lIiYmKGFbbF09YykpfX19cmV0dXJuIHN9ZnVuY3Rpb24gS1dyKHQsZSxyLGEpe2lmKHI9PUg5JiZhPT1IOSlyZXR1cm4gZTtsZXQgcz1lO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bisrKXtsZXQgbz1hW25dLGw9cltuXTtpZihuKXtsZXQgYztsJiZsLm5vZGVOYW1lPT1vLm5vZGVOYW1lJiZzIT10JiYoYz1zLnBhcmVudE5vZGUpJiZjLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PW8ubm9kZU5hbWV8fChjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoby5ub2RlTmFtZSksYy5wbUlzRGVjbz0hMCxjLmFwcGVuZENoaWxkKHMpLGw9SDlbMF0pLHM9Y313UGEocyxsfHxIOVswXSxvKX1yZXR1cm4gc31mdW5jdGlvbiB3UGEodCxlLHIpe2ZvcihsZXQgYSBpbiBlKWEhPSJjbGFzcyImJmEhPSJzdHlsZSImJmEhPSJub2RlTmFtZSImJiEoYSBpbiByKSYmdC5yZW1vdmVBdHRyaWJ1dGUoYSk7Zm9yKGxldCBhIGluIHIpYSE9ImNsYXNzIiYmYSE9InN0eWxlIiYmYSE9Im5vZGVOYW1lIiYmclthXSE9ZVthXSYmdC5zZXRBdHRyaWJ1dGUoYSxyW2FdKTtpZihlLmNsYXNzIT1yLmNsYXNzKXtsZXQgYT1lLmNsYXNzP2UuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W10scz1yLmNsYXNzP3IuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W107Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspcy5pbmRleE9mKGFbbl0pPT0tMSYmdC5jbGFzc0xpc3QucmVtb3ZlKGFbbl0pO2ZvcihsZXQgbj0wO248cy5sZW5ndGg7bisrKWEuaW5kZXhPZihzW25dKT09LTEmJnQuY2xhc3NMaXN0LmFkZChzW25dKTt0LmNsYXNzTGlzdC5sZW5ndGg9PTAmJnQucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfWlmKGUuc3R5bGUhPXIuc3R5bGUpe2lmKGUuc3R5bGUpe2xldCBhPS9ccyooW1x3XC1ceGExLVx1ZmZmZl0rKVxzKjooPzoiKD86XFwufFteIl0pKiJ8Jyg/OlxcLnxbXiddKSonfFwoLio/XCl8W147XSkqL2cscztmb3IoO3M9YS5leGVjKGUuc3R5bGUpOyl0LnN0eWxlLnJlbW92ZVByb3BlcnR5KHNbMV0pfXIuc3R5bGUmJih0LnN0eWxlLmNzc1RleHQrPXIuc3R5bGUpfX1mdW5jdGlvbiBaV3IodCxlLHIpe3JldHVybiBLV3IodCx0LEg5LEFtdChlLHIsdC5ub2RlVHlwZSE9MSkpfWZ1bmN0aW9uIF9mZSh0LGUpe2lmKHQubGVuZ3RoIT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKylpZighdFtyXS50eXBlLmVxKGVbcl0udHlwZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gUVdyKHQpe2xldCBlPXQubmV4dFNpYmxpbmc7cmV0dXJuIHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSxlfWZ1bmN0aW9uIGtQYSh0LGUpe2xldCByPWUsYT1yLmNoaWxkcmVuLmxlbmd0aCxzPXQuY2hpbGRDb3VudCxuPW5ldyBNYXAsbz1bXTtlOmZvcig7cz4wOyl7bGV0IGw7Zm9yKDs7KWlmKGEpe2xldCBkPXIuY2hpbGRyZW5bYS0xXTtpZihkIGluc3RhbmNlb2YgYXcpcj1kLGE9ZC5jaGlsZHJlbi5sZW5ndGg7ZWxzZXtsPWQsYS0tO2JyZWFrfX1lbHNle2lmKHI9PWUpYnJlYWsgZTthPXIucGFyZW50LmNoaWxkcmVuLmluZGV4T2Yocikscj1yLnBhcmVudH1sZXQgYz1sLm5vZGU7aWYoYyl7aWYoYyE9dC5jaGlsZChzLTEpKWJyZWFrOy0tcyxuLnNldChsLHMpLG8ucHVzaChsKX19cmV0dXJue2luZGV4OnMsbWF0Y2hlZDpuLG1hdGNoZXM6by5yZXZlcnNlKCl9fWZ1bmN0aW9uIFNQYSh0LGUpe3JldHVybiB0LnR5cGUuc2lkZS1lLnR5cGUuc2lkZX1mdW5jdGlvbiBNUGEodCxlLHIsYSl7bGV0IHM9ZS5sb2NhbHModCksbj0wO2lmKHMubGVuZ3RoPT0wKXtmb3IobGV0IGQ9MDtkPHQuY2hpbGRDb3VudDtkKyspe2xldCBmPXQuY2hpbGQoZCk7YShmLHMsZS5mb3JDaGlsZChuLGYpLGQpLG4rPWYubm9kZVNpemV9cmV0dXJufWxldCBvPTAsbD1bXSxjPW51bGw7Zm9yKGxldCBkPTA7Oyl7bGV0IGYscDtmb3IoO288cy5sZW5ndGgmJnNbb10udG89PW47KXtsZXQgZz1zW28rK107Zy53aWRnZXQmJihmPyhwfHwocD1bZl0pKS5wdXNoKGcpOmY9Zyl9aWYoZilpZihwKXtwLnNvcnQoU1BhKTtmb3IobGV0IGc9MDtnPHAubGVuZ3RoO2crKylyKHBbZ10sZCwhIWMpfWVsc2UgcihmLGQsISFjKTtsZXQgaCxtO2lmKGMpbT0tMSxoPWMsYz1udWxsO2Vsc2UgaWYoZDx0LmNoaWxkQ291bnQpbT1kLGg9dC5jaGlsZChkKyspO2Vsc2UgYnJlYWs7Zm9yKGxldCBnPTA7ZzxsLmxlbmd0aDtnKyspbFtnXS50bzw9biYmbC5zcGxpY2UoZy0tLDEpO2Zvcig7bzxzLmxlbmd0aCYmc1tvXS5mcm9tPD1uJiZzW29dLnRvPm47KWwucHVzaChzW28rK10pO2xldCB2PW4raC5ub2RlU2l6ZTtpZihoLmlzVGV4dCl7bGV0IGc9djtvPHMubGVuZ3RoJiZzW29dLmZyb208ZyYmKGc9c1tvXS5mcm9tKTtmb3IobGV0IHk9MDt5PGwubGVuZ3RoO3krKylsW3ldLnRvPGcmJihnPWxbeV0udG8pO2c8diYmKGM9aC5jdXQoZy1uKSxoPWguY3V0KDAsZy1uKSx2PWcsbT0tMSl9ZWxzZSBmb3IoO288cy5sZW5ndGgmJnNbb10udG88djspbysrO2xldCBiPWguaXNJbmxpbmUmJiFoLmlzTGVhZj9sLmZpbHRlcihnPT4hZy5pbmxpbmUpOmwuc2xpY2UoKTthKGgsYixlLmZvckNoaWxkKG4saCksbSksbj12fX1mdW5jdGlvbiBDUGEodCl7aWYodC5ub2RlTmFtZT09IlVMInx8dC5ub2RlTmFtZT09Ik9MIil7bGV0IGU9dC5zdHlsZS5jc3NUZXh0O3Quc3R5bGUuY3NzVGV4dD1lKyI7IGxpc3Qtc3R5bGU6IHNxdWFyZSAhaW1wb3J0YW50Iix3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5saXN0U3R5bGUsdC5zdHlsZS5jc3NUZXh0PWV9fWZ1bmN0aW9uIHpQYSh0LGUscixhKXtmb3IobGV0IHM9MCxuPTA7czx0LmNoaWxkQ291bnQmJm48PWE7KXtsZXQgbz10LmNoaWxkKHMrKyksbD1uO2lmKG4rPW8ubm9kZVNpemUsIW8uaXNUZXh0KWNvbnRpbnVlO2xldCBjPW8udGV4dDtmb3IoO3M8dC5jaGlsZENvdW50Oyl7bGV0IGQ9dC5jaGlsZChzKyspO2lmKG4rPWQubm9kZVNpemUsIWQuaXNUZXh0KWJyZWFrO2MrPWQudGV4dH1pZihuPj1yKXtpZihuPj1hJiZjLnNsaWNlKGEtZS5sZW5ndGgtbCxhLWwpPT1lKXJldHVybiBhLWUubGVuZ3RoO2xldCBkPWw8YT9jLmxhc3RJbmRleE9mKGUsYS1sLTEpOi0xO2lmKGQ+PTAmJmQrZS5sZW5ndGgrbD49cilyZXR1cm4gbCtkO2lmKHI9PWEmJmMubGVuZ3RoPj1hK2UubGVuZ3RoLWwmJmMuc2xpY2UoYS1sLGEtbCtlLmxlbmd0aCk9PWUpcmV0dXJuIGF9fXJldHVybi0xfWZ1bmN0aW9uIEltdCh0LGUscixhLHMpe2xldCBuPVtdO2ZvcihsZXQgbz0wLGw9MDtvPHQubGVuZ3RoO28rKyl7bGV0IGM9dFtvXSxkPWwsZj1sKz1jLnNpemU7ZD49cnx8Zjw9ZT9uLnB1c2goYyk6KGQ8ZSYmbi5wdXNoKGMuc2xpY2UoMCxlLWQsYSkpLHMmJihuLnB1c2gocykscz12b2lkIDApLGY+ciYmbi5wdXNoKGMuc2xpY2Uoci1kLGMuc2l6ZSxhKSkpfXJldHVybiBufWZ1bmN0aW9uIFBtdCh0LGU9bnVsbCl7bGV0IHI9dC5kb21TZWxlY3Rpb25SYW5nZSgpLGE9dC5zdGF0ZS5kb2M7aWYoIXIuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCBzPXQuZG9jVmlldy5uZWFyZXN0RGVzYyhyLmZvY3VzTm9kZSksbj1zJiZzLnNpemU9PTAsbz10LmRvY1ZpZXcucG9zRnJvbURPTShyLmZvY3VzTm9kZSxyLmZvY3VzT2Zmc2V0LDEpO2lmKG88MClyZXR1cm4gbnVsbDtsZXQgbD1hLnJlc29sdmUobyksYyxkO2lmKFNmZShyKSl7Zm9yKGM9bztzJiYhcy5ub2RlOylzPXMucGFyZW50O2xldCBwPXMubm9kZTtpZihzJiZwLmlzQXRvbSYmSXQuaXNTZWxlY3RhYmxlKHApJiZzLnBhcmVudCYmIShwLmlzSW5saW5lJiZyUGEoci5mb2N1c05vZGUsci5mb2N1c09mZnNldCxzLmRvbSkpKXtsZXQgaD1zLnBvc0JlZm9yZTtkPW5ldyBJdChvPT1oP2w6YS5yZXNvbHZlKGgpKX19ZWxzZXtpZihyIGluc3RhbmNlb2YgdC5kb20ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5TZWxlY3Rpb24mJnIucmFuZ2VDb3VudD4xKXtsZXQgcD1vLGg9bztmb3IobGV0IG09MDttPHIucmFuZ2VDb3VudDttKyspe2xldCB2PXIuZ2V0UmFuZ2VBdChtKTtwPU1hdGgubWluKHAsdC5kb2NWaWV3LnBvc0Zyb21ET00odi5zdGFydENvbnRhaW5lcix2LnN0YXJ0T2Zmc2V0LDEpKSxoPU1hdGgubWF4KGgsdC5kb2NWaWV3LnBvc0Zyb21ET00odi5lbmRDb250YWluZXIsdi5lbmRPZmZzZXQsLTEpKX1pZihwPDApcmV0dXJuIG51bGw7W2Msb109aD09dC5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yP1toLHBdOltwLGhdLGw9YS5yZXNvbHZlKG8pfWVsc2UgYz10LmRvY1ZpZXcucG9zRnJvbURPTShyLmFuY2hvck5vZGUsci5hbmNob3JPZmZzZXQsMSk7aWYoYzwwKXJldHVybiBudWxsfWxldCBmPWEucmVzb2x2ZShjKTtpZighZCl7bGV0IHA9ZT09InBvaW50ZXIifHx0LnN0YXRlLnNlbGVjdGlvbi5oZWFkPGwucG9zJiYhbj8xOi0xO2Q9T210KHQsZixsLHApfXJldHVybiBkfWZ1bmN0aW9uIFhXcih0KXtyZXR1cm4gdC5lZGl0YWJsZT90Lmhhc0ZvY3VzKCk6c0dyKHQpJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNvbnRhaW5zKHQuZG9tKX1mdW5jdGlvbiBvMyh0LGU9ITEpe2xldCByPXQuc3RhdGUuc2VsZWN0aW9uO2lmKHJHcih0LHIpLCEhWFdyKHQpKXtpZighZSYmdC5pbnB1dC5tb3VzZURvd24mJnQuaW5wdXQubW91c2VEb3duLmFsbG93RGVmYXVsdCYmTm4pe2xldCBhPXQuZG9tU2VsZWN0aW9uUmFuZ2UoKSxzPXQuZG9tT2JzZXJ2ZXIuY3VycmVudFNlbGVjdGlvbjtpZihhLmFuY2hvck5vZGUmJnMuYW5jaG9yTm9kZSYmTzkoYS5hbmNob3JOb2RlLGEuYW5jaG9yT2Zmc2V0LHMuYW5jaG9yTm9kZSxzLmFuY2hvck9mZnNldCkpe3QuaW5wdXQubW91c2VEb3duLmRlbGF5ZWRTZWxlY3Rpb25TeW5jPSEwLHQuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCk7cmV0dXJufX1pZih0LmRvbU9ic2VydmVyLmRpc2Nvbm5lY3RTZWxlY3Rpb24oKSx0LmN1cnNvcldyYXBwZXIpVFBhKHQpO2Vsc2V7bGV0e2FuY2hvcjphLGhlYWQ6c309cixuLG87SldyJiYhKHIgaW5zdGFuY2VvZiBlcikmJihyLiRmcm9tLnBhcmVudC5pbmxpbmVDb250ZW50fHwobj1lR3IodCxyLmZyb20pKSwhci5lbXB0eSYmIXIuJGZyb20ucGFyZW50LmlubGluZUNvbnRlbnQmJihvPWVHcih0LHIudG8pKSksdC5kb2NWaWV3LnNldFNlbGVjdGlvbihhLHMsdCxlKSxKV3ImJihuJiZ0R3IobiksbyYmdEdyKG8pKSxyLnZpc2libGU/dC5kb20uY2xhc3NMaXN0LnJlbW92ZSgiUHJvc2VNaXJyb3ItaGlkZXNlbGVjdGlvbiIpOih0LmRvbS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIiksIm9uc2VsZWN0aW9uY2hhbmdlImluIGRvY3VtZW50JiZfUGEodCkpfXQuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCksdC5kb21PYnNlcnZlci5jb25uZWN0U2VsZWN0aW9uKCl9fWZ1bmN0aW9uIGVHcih0LGUpe2xldHtub2RlOnIsb2Zmc2V0OmF9PXQuZG9jVmlldy5kb21Gcm9tUG9zKGUsMCkscz1hPHIuY2hpbGROb2Rlcy5sZW5ndGg/ci5jaGlsZE5vZGVzW2FdOm51bGwsbj1hP3IuY2hpbGROb2Rlc1thLTFdOm51bGw7aWYoQ28mJnMmJnMuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiBObXQocyk7aWYoKCFzfHxzLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIikmJighbnx8bi5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpKXtpZihzKXJldHVybiBObXQocyk7aWYobilyZXR1cm4gTm10KG4pfX1mdW5jdGlvbiBObXQodCl7cmV0dXJuIHQuY29udGVudEVkaXRhYmxlPSJ0cnVlIixDbyYmdC5kcmFnZ2FibGUmJih0LmRyYWdnYWJsZT0hMSx0Lndhc0RyYWdnYWJsZT0hMCksdH1mdW5jdGlvbiB0R3IodCl7dC5jb250ZW50RWRpdGFibGU9ImZhbHNlIix0Lndhc0RyYWdnYWJsZSYmKHQuZHJhZ2dhYmxlPSEwLHQud2FzRHJhZ2dhYmxlPW51bGwpfWZ1bmN0aW9uIF9QYSh0KXtsZXQgZT10LmRvbS5vd25lckRvY3VtZW50O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0LmlucHV0LmhpZGVTZWxlY3Rpb25HdWFyZCk7bGV0IHI9dC5kb21TZWxlY3Rpb25SYW5nZSgpLGE9ci5hbmNob3JOb2RlLHM9ci5hbmNob3JPZmZzZXQ7ZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHQuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkPSgpPT57KHIuYW5jaG9yTm9kZSE9YXx8ci5hbmNob3JPZmZzZXQhPXMpJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHQuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkKSxzZXRUaW1lb3V0KCgpPT57KCFYV3IodCl8fHQuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUpJiZ0LmRvbS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIil9LDIwKSl9KX1mdW5jdGlvbiBUUGEodCl7bGV0IGU9dC5kb21TZWxlY3Rpb24oKTtpZighZSlyZXR1cm47bGV0IHI9dC5jdXJzb3JXcmFwcGVyLmRvbSxhPXIubm9kZU5hbWU9PSJJTUciO2E/ZS5jb2xsYXBzZShyLnBhcmVudE5vZGUsUG4ocikrMSk6ZS5jb2xsYXBzZShyLDApLCFhJiYhdC5zdGF0ZS5zZWxlY3Rpb24udmlzaWJsZSYmRTEmJllwPD0xMSYmKHIuZGlzYWJsZWQ9ITAsci5kaXNhYmxlZD0hMSl9ZnVuY3Rpb24gckdyKHQsZSl7aWYoZSBpbnN0YW5jZW9mIEl0KXtsZXQgcj10LmRvY1ZpZXcuZGVzY0F0KGUuZnJvbSk7ciE9dC5sYXN0U2VsZWN0ZWRWaWV3RGVzYyYmKGFHcih0KSxyJiZyLnNlbGVjdE5vZGUoKSx0Lmxhc3RTZWxlY3RlZFZpZXdEZXNjPXIpfWVsc2UgYUdyKHQpfWZ1bmN0aW9uIGFHcih0KXt0Lmxhc3RTZWxlY3RlZFZpZXdEZXNjJiYodC5sYXN0U2VsZWN0ZWRWaWV3RGVzYy5wYXJlbnQmJnQubGFzdFNlbGVjdGVkVmlld0Rlc2MuZGVzZWxlY3ROb2RlKCksdC5sYXN0U2VsZWN0ZWRWaWV3RGVzYz12b2lkIDApfWZ1bmN0aW9uIE9tdCh0LGUscixhKXtyZXR1cm4gdC5zb21lUHJvcCgiY3JlYXRlU2VsZWN0aW9uQmV0d2VlbiIscz0+cyh0LGUscikpfHxlci5iZXR3ZWVuKGUscixhKX1mdW5jdGlvbiBpR3IodCl7cmV0dXJuIHQuZWRpdGFibGUmJiF0Lmhhc0ZvY3VzKCk/ITE6c0dyKHQpfWZ1bmN0aW9uIHNHcih0KXtsZXQgZT10LmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuYW5jaG9yTm9kZSlyZXR1cm4hMTt0cnl7cmV0dXJuIHQuZG9tLmNvbnRhaW5zKGUuYW5jaG9yTm9kZS5ub2RlVHlwZT09Mz9lLmFuY2hvck5vZGUucGFyZW50Tm9kZTplLmFuY2hvck5vZGUpJiYodC5lZGl0YWJsZXx8dC5kb20uY29udGFpbnMoZS5mb2N1c05vZGUubm9kZVR5cGU9PTM/ZS5mb2N1c05vZGUucGFyZW50Tm9kZTplLmZvY3VzTm9kZSkpfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBMUGEodCl7bGV0IGU9dC5kb2NWaWV3LmRvbUZyb21Qb3ModC5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yLDApLHI9dC5kb21TZWxlY3Rpb25SYW5nZSgpO3JldHVybiBPOShlLm5vZGUsZS5vZmZzZXQsci5hbmNob3JOb2RlLHIuYW5jaG9yT2Zmc2V0KX1mdW5jdGlvbiBSbXQodCxlKXtsZXR7JGFuY2hvcjpyLCRoZWFkOmF9PXQuc2VsZWN0aW9uLHM9ZT4wP3IubWF4KGEpOnIubWluKGEpLG49cy5wYXJlbnQuaW5saW5lQ29udGVudD9zLmRlcHRoP3QuZG9jLnJlc29sdmUoZT4wP3MuYWZ0ZXIoKTpzLmJlZm9yZSgpKTpudWxsOnM7cmV0dXJuIG4mJkp0LmZpbmRGcm9tKG4sZSl9ZnVuY3Rpb24gUXAodCxlKXtyZXR1cm4gdC5kaXNwYXRjaCh0LnN0YXRlLnRyLnNldFNlbGVjdGlvbihlKS5zY3JvbGxJbnRvVmlldygpKSwhMH1mdW5jdGlvbiBuR3IodCxlLHIpe2xldCBhPXQuc3RhdGUuc2VsZWN0aW9uO2lmKGEgaW5zdGFuY2VvZiBlcilpZihyLmluZGV4T2YoInMiKT4tMSl7bGV0eyRoZWFkOnN9PWEsbj1zLnRleHRPZmZzZXQ/bnVsbDplPDA/cy5ub2RlQmVmb3JlOnMubm9kZUFmdGVyO2lmKCFufHxuLmlzVGV4dHx8IW4uaXNMZWFmKXJldHVybiExO2xldCBvPXQuc3RhdGUuZG9jLnJlc29sdmUocy5wb3Mrbi5ub2RlU2l6ZSooZTwwPy0xOjEpKTtyZXR1cm4gUXAodCxuZXcgZXIoYS4kYW5jaG9yLG8pKX1lbHNlIGlmKGEuZW1wdHkpe2lmKHQuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSl7bGV0IHM9Um10KHQuc3RhdGUsZSk7cmV0dXJuIHMmJnMgaW5zdGFuY2VvZiBJdD9RcCh0LHMpOiExfWVsc2UgaWYoISh0MiYmci5pbmRleE9mKCJtIik+LTEpKXtsZXQgcz1hLiRoZWFkLG49cy50ZXh0T2Zmc2V0P251bGw6ZTwwP3Mubm9kZUJlZm9yZTpzLm5vZGVBZnRlcixvO2lmKCFufHxuLmlzVGV4dClyZXR1cm4hMTtsZXQgbD1lPDA/cy5wb3Mtbi5ub2RlU2l6ZTpzLnBvcztyZXR1cm4gbi5pc0F0b218fChvPXQuZG9jVmlldy5kZXNjQXQobCkpJiYhby5jb250ZW50RE9NP0l0LmlzU2VsZWN0YWJsZShuKT9RcCh0LG5ldyBJdChlPDA/dC5zdGF0ZS5kb2MucmVzb2x2ZShzLnBvcy1uLm5vZGVTaXplKTpzKSk6T3RlP1FwKHQsbmV3IGVyKHQuc3RhdGUuZG9jLnJlc29sdmUoZTwwP2w6bCtuLm5vZGVTaXplKSkpOiExOiExfX1lbHNlIHJldHVybiExO2Vsc2V7aWYoYSBpbnN0YW5jZW9mIEl0JiZhLm5vZGUuaXNJbmxpbmUpcmV0dXJuIFFwKHQsbmV3IGVyKGU+MD9hLiR0bzphLiRmcm9tKSk7e2xldCBzPVJtdCh0LnN0YXRlLGUpO3JldHVybiBzP1FwKHQscyk6ITF9fX1mdW5jdGlvbiBUZmUodCl7cmV0dXJuIHQubm9kZVR5cGU9PTM/dC5ub2RlVmFsdWUubGVuZ3RoOnQuY2hpbGROb2Rlcy5sZW5ndGh9ZnVuY3Rpb24gQnRlKHQsZSl7bGV0IHI9dC5wbVZpZXdEZXNjO3JldHVybiByJiZyLnNpemU9PTAmJihlPDB8fHQubmV4dFNpYmxpbmd8fHQubm9kZU5hbWUhPSJCUiIpfWZ1bmN0aW9uIGl3KHQsZSl7cmV0dXJuIGU8MD9EUGEodCk6JFBhKHQpfWZ1bmN0aW9uIERQYSh0KXtsZXQgZT10LmRvbVNlbGVjdGlvblJhbmdlKCkscj1lLmZvY3VzTm9kZSxhPWUuZm9jdXNPZmZzZXQ7aWYoIXIpcmV0dXJuO2xldCBzLG4sbz0hMTtmb3IoZTImJnIubm9kZVR5cGU9PTEmJmE8VGZlKHIpJiZCdGUoci5jaGlsZE5vZGVzW2FdLC0xKSYmKG89ITApOzspaWYoYT4wKXtpZihyLm5vZGVUeXBlIT0xKWJyZWFrO3tsZXQgbD1yLmNoaWxkTm9kZXNbYS0xXTtpZihCdGUobCwtMSkpcz1yLG49LS1hO2Vsc2UgaWYobC5ub2RlVHlwZT09MylyPWwsYT1yLm5vZGVWYWx1ZS5sZW5ndGg7ZWxzZSBicmVha319ZWxzZXtpZihvR3IocikpYnJlYWs7e2xldCBsPXIucHJldmlvdXNTaWJsaW5nO2Zvcig7bCYmQnRlKGwsLTEpOylzPXIucGFyZW50Tm9kZSxuPVBuKGwpLGw9bC5wcmV2aW91c1NpYmxpbmc7aWYobClyPWwsYT1UZmUocik7ZWxzZXtpZihyPXIucGFyZW50Tm9kZSxyPT10LmRvbSlicmVhazthPTB9fX1vP0ZtdCh0LHIsYSk6cyYmRm10KHQscyxuKX1mdW5jdGlvbiAkUGEodCl7bGV0IGU9dC5kb21TZWxlY3Rpb25SYW5nZSgpLHI9ZS5mb2N1c05vZGUsYT1lLmZvY3VzT2Zmc2V0O2lmKCFyKXJldHVybjtsZXQgcz1UZmUociksbixvO2Zvcig7OylpZihhPHMpe2lmKHIubm9kZVR5cGUhPTEpYnJlYWs7bGV0IGw9ci5jaGlsZE5vZGVzW2FdO2lmKEJ0ZShsLDEpKW49cixvPSsrYTtlbHNlIGJyZWFrfWVsc2V7aWYob0dyKHIpKWJyZWFrO3tsZXQgbD1yLm5leHRTaWJsaW5nO2Zvcig7bCYmQnRlKGwsMSk7KW49bC5wYXJlbnROb2RlLG89UG4obCkrMSxsPWwubmV4dFNpYmxpbmc7aWYobClyPWwsYT0wLHM9VGZlKHIpO2Vsc2V7aWYocj1yLnBhcmVudE5vZGUscj09dC5kb20pYnJlYWs7YT1zPTB9fX1uJiZGbXQodCxuLG8pfWZ1bmN0aW9uIG9Hcih0KXtsZXQgZT10LnBtVmlld0Rlc2M7cmV0dXJuIGUmJmUubm9kZSYmZS5ub2RlLmlzQmxvY2t9ZnVuY3Rpb24gQVBhKHQsZSl7Zm9yKDt0JiZlPT10LmNoaWxkTm9kZXMubGVuZ3RoJiYhTnRlKHQpOyllPVBuKHQpKzEsdD10LnBhcmVudE5vZGU7Zm9yKDt0JiZlPHQuY2hpbGROb2Rlcy5sZW5ndGg7KXtsZXQgcj10LmNoaWxkTm9kZXNbZV07aWYoci5ub2RlVHlwZT09MylyZXR1cm4gcjtpZihyLm5vZGVUeXBlPT0xJiZyLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilicmVhazt0PXIsZT0wfX1mdW5jdGlvbiBFUGEodCxlKXtmb3IoO3QmJiFlJiYhTnRlKHQpOyllPVBuKHQpLHQ9dC5wYXJlbnROb2RlO2Zvcig7dCYmZTspe2xldCByPXQuY2hpbGROb2Rlc1tlLTFdO2lmKHIubm9kZVR5cGU9PTMpcmV0dXJuIHI7aWYoci5ub2RlVHlwZT09MSYmci5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpYnJlYWs7dD1yLGU9dC5jaGlsZE5vZGVzLmxlbmd0aH19ZnVuY3Rpb24gRm10KHQsZSxyKXtpZihlLm5vZGVUeXBlIT0zKXtsZXQgbixvOyhvPUFQYShlLHIpKT8oZT1vLHI9MCk6KG49RVBhKGUscikpJiYoZT1uLHI9bi5ub2RlVmFsdWUubGVuZ3RoKX1sZXQgYT10LmRvbVNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtpZihTZmUoYSkpe2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bi5zZXRFbmQoZSxyKSxuLnNldFN0YXJ0KGUsciksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKG4pfWVsc2UgYS5leHRlbmQmJmEuZXh0ZW5kKGUscik7dC5kb21PYnNlcnZlci5zZXRDdXJTZWxlY3Rpb24oKTtsZXR7c3RhdGU6c309dDtzZXRUaW1lb3V0KCgpPT57dC5zdGF0ZT09cyYmbzModCl9LDUwKX1mdW5jdGlvbiBsR3IodCxlKXtsZXQgcj10LnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCEoTm58fElXcikmJnIucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBzPXQuY29vcmRzQXRQb3MoZSk7aWYoZT5yLnN0YXJ0KCkpe2xldCBuPXQuY29vcmRzQXRQb3MoZS0xKSxvPShuLnRvcCtuLmJvdHRvbSkvMjtpZihvPnMudG9wJiZvPHMuYm90dG9tJiZNYXRoLmFicyhuLmxlZnQtcy5sZWZ0KT4xKXJldHVybiBuLmxlZnQ8cy5sZWZ0PyJsdHIiOiJydGwifWlmKGU8ci5lbmQoKSl7bGV0IG49dC5jb29yZHNBdFBvcyhlKzEpLG89KG4udG9wK24uYm90dG9tKS8yO2lmKG8+cy50b3AmJm88cy5ib3R0b20mJk1hdGguYWJzKG4ubGVmdC1zLmxlZnQpPjEpcmV0dXJuIG4ubGVmdD5zLmxlZnQ/Imx0ciI6InJ0bCJ9fXJldHVybiBnZXRDb21wdXRlZFN0eWxlKHQuZG9tKS5kaXJlY3Rpb249PSJydGwiPyJydGwiOiJsdHIifWZ1bmN0aW9uIGNHcih0LGUscil7bGV0IGE9dC5zdGF0ZS5zZWxlY3Rpb247aWYoYSBpbnN0YW5jZW9mIGVyJiYhYS5lbXB0eXx8ci5pbmRleE9mKCJzIik+LTF8fHQyJiZyLmluZGV4T2YoIm0iKT4tMSlyZXR1cm4hMTtsZXR7JGZyb206cywkdG86bn09YTtpZighcy5wYXJlbnQuaW5saW5lQ29udGVudHx8dC5lbmRPZlRleHRibG9jayhlPDA/InVwIjoiZG93biIpKXtsZXQgbz1SbXQodC5zdGF0ZSxlKTtpZihvJiZvIGluc3RhbmNlb2YgSXQpcmV0dXJuIFFwKHQsbyl9aWYoIXMucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBvPWU8MD9zOm4sbD1hIGluc3RhbmNlb2YgTW8/SnQubmVhcihvLGUpOkp0LmZpbmRGcm9tKG8sZSk7cmV0dXJuIGw/UXAodCxsKTohMX1yZXR1cm4hMX1mdW5jdGlvbiBkR3IodCxlKXtpZighKHQuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgZXIpKXJldHVybiEwO2xldHskaGVhZDpyLCRhbmNob3I6YSxlbXB0eTpzfT10LnN0YXRlLnNlbGVjdGlvbjtpZighci5zYW1lUGFyZW50KGEpKXJldHVybiEwO2lmKCFzKXJldHVybiExO2lmKHQuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSlyZXR1cm4hMDtsZXQgbj0hci50ZXh0T2Zmc2V0JiYoZTwwP3Iubm9kZUJlZm9yZTpyLm5vZGVBZnRlcik7aWYobiYmIW4uaXNUZXh0KXtsZXQgbz10LnN0YXRlLnRyO3JldHVybiBlPDA/by5kZWxldGUoci5wb3Mtbi5ub2RlU2l6ZSxyLnBvcyk6by5kZWxldGUoci5wb3Msci5wb3Mrbi5ub2RlU2l6ZSksdC5kaXNwYXRjaChvKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiB1R3IodCxlLHIpe3QuZG9tT2JzZXJ2ZXIuc3RvcCgpLGUuY29udGVudEVkaXRhYmxlPXIsdC5kb21PYnNlcnZlci5zdGFydCgpfWZ1bmN0aW9uIElQYSh0KXtpZighQ298fHQuc3RhdGUuc2VsZWN0aW9uLiRoZWFkLnBhcmVudE9mZnNldD4wKXJldHVybiExO2xldHtmb2N1c05vZGU6ZSxmb2N1c09mZnNldDpyfT10LmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoZSYmZS5ub2RlVHlwZT09MSYmcj09MCYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXtsZXQgYT1lLmZpcnN0Q2hpbGQ7dUdyKHQsYSwidHJ1ZSIpLHNldFRpbWVvdXQoKCk9PnVHcih0LGEsImZhbHNlIiksMjApfXJldHVybiExfWZ1bmN0aW9uIFBQYSh0KXtsZXQgZT0iIjtyZXR1cm4gdC5jdHJsS2V5JiYoZSs9ImMiKSx0Lm1ldGFLZXkmJihlKz0ibSIpLHQuYWx0S2V5JiYoZSs9ImEiKSx0LnNoaWZ0S2V5JiYoZSs9InMiKSxlfWZ1bmN0aW9uIE5QYSh0LGUpe2xldCByPWUua2V5Q29kZSxhPVBQYShlKTtpZihyPT04fHx0MiYmcj09NzImJmE9PSJjIilyZXR1cm4gZEdyKHQsLTEpfHxpdyh0LC0xKTtpZihyPT00NiYmIWUuc2hpZnRLZXl8fHQyJiZyPT02OCYmYT09ImMiKXJldHVybiBkR3IodCwxKXx8aXcodCwxKTtpZihyPT0xM3x8cj09MjcpcmV0dXJuITA7aWYocj09Mzd8fHQyJiZyPT02NiYmYT09ImMiKXtsZXQgcz1yPT0zNz9sR3IodCx0LnN0YXRlLnNlbGVjdGlvbi5mcm9tKT09Imx0ciI/LTE6MTotMTtyZXR1cm4gbkdyKHQscyxhKXx8aXcodCxzKX1lbHNlIGlmKHI9PTM5fHx0MiYmcj09NzAmJmE9PSJjIil7bGV0IHM9cj09Mzk/bEdyKHQsdC5zdGF0ZS5zZWxlY3Rpb24uZnJvbSk9PSJsdHIiPzE6LTE6MTtyZXR1cm4gbkdyKHQscyxhKXx8aXcodCxzKX1lbHNle2lmKHI9PTM4fHx0MiYmcj09ODAmJmE9PSJjIilyZXR1cm4gY0dyKHQsLTEsYSl8fGl3KHQsLTEpO2lmKHI9PTQwfHx0MiYmcj09NzgmJmE9PSJjIilyZXR1cm4gSVBhKHQpfHxjR3IodCwxLGEpfHxpdyh0LDEpO2lmKGE9PSh0Mj8ibSI6ImMiKSYmKHI9PTY2fHxyPT03M3x8cj09ODl8fHI9PTkwKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBCbXQodCxlKXt0LnNvbWVQcm9wKCJ0cmFuc2Zvcm1Db3BpZWQiLG09PntlPW0oZSx0KX0pO2xldCByPVtdLHtjb250ZW50OmEsb3BlblN0YXJ0OnMsb3BlbkVuZDpufT1lO2Zvcig7cz4xJiZuPjEmJmEuY2hpbGRDb3VudD09MSYmYS5maXJzdENoaWxkLmNoaWxkQ291bnQ9PTE7KXtzLS0sbi0tO2xldCBtPWEuZmlyc3RDaGlsZDtyLnB1c2gobS50eXBlLm5hbWUsbS5hdHRycyE9bS50eXBlLmRlZmF1bHRBdHRycz9tLmF0dHJzOm51bGwpLGE9bS5jb250ZW50fWxldCBvPXQuc29tZVByb3AoImNsaXBib2FyZFNlcmlhbGl6ZXIiKXx8b2QuZnJvbVNjaGVtYSh0LnN0YXRlLnNjaGVtYSksbD14R3IoKSxjPWwuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yy5hcHBlbmRDaGlsZChvLnNlcmlhbGl6ZUZyYWdtZW50KGEse2RvY3VtZW50Omx9KSk7bGV0IGQ9Yy5maXJzdENoaWxkLGYscD0wO2Zvcig7ZCYmZC5ub2RlVHlwZT09MSYmKGY9Z0dyW2Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pOyl7Zm9yKGxldCBtPWYubGVuZ3RoLTE7bT49MDttLS0pe2xldCB2PWwuY3JlYXRlRWxlbWVudChmW21dKTtmb3IoO2MuZmlyc3RDaGlsZDspdi5hcHBlbmRDaGlsZChjLmZpcnN0Q2hpbGQpO2MuYXBwZW5kQ2hpbGQodikscCsrfWQ9Yy5maXJzdENoaWxkfWQmJmQubm9kZVR5cGU9PTEmJmQuc2V0QXR0cmlidXRlKCJkYXRhLXBtLXNsaWNlIixgJHtzfSAke259JHtwP2AgLSR7cH1gOiIifSAke0pTT04uc3RyaW5naWZ5KHIpfWApO2xldCBoPXQuc29tZVByb3AoImNsaXBib2FyZFRleHRTZXJpYWxpemVyIixtPT5tKGUsdCkpfHxlLmNvbnRlbnQudGV4dEJldHdlZW4oMCxlLmNvbnRlbnQuc2l6ZSxgCgpgKTtyZXR1cm57ZG9tOmMsdGV4dDpoLHNsaWNlOmV9fWZ1bmN0aW9uIEhtdCh0LGUscixhLHMpe2xldCBuPXMucGFyZW50LnR5cGUuc3BlYy5jb2RlLG8sbDtpZighciYmIWUpcmV0dXJuIG51bGw7bGV0IGM9ISFlJiYoYXx8bnx8IXIpO2lmKGMpe2lmKHQuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZFRleHQiLGg9PntlPWgoZSxufHxhLHQpfSksbilyZXR1cm4gbD1uZXcgbXQoSmUuZnJvbSh0LnN0YXRlLnNjaGVtYS50ZXh0KGUucmVwbGFjZSgvXHJcbj8vZyxgCmApKSksMCwwKSx0LnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLGg9PntsPWgobCx0LCEwKX0pLGw7bGV0IHA9dC5zb21lUHJvcCgiY2xpcGJvYXJkVGV4dFBhcnNlciIsaD0+aChlLHMsYSx0KSk7aWYocClsPXA7ZWxzZXtsZXQgaD1zLm1hcmtzKCkse3NjaGVtYTptfT10LnN0YXRlLHY9b2QuZnJvbVNjaGVtYShtKTtvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3BsaXQoLyg/OlxyXG4/fFxuKSsvKS5mb3JFYWNoKGI9PntsZXQgZz1vLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSk7YiYmZy5hcHBlbmRDaGlsZCh2LnNlcmlhbGl6ZU5vZGUobS50ZXh0KGIsaCkpKX0pfX1lbHNlIHQuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZEhUTUwiLHA9PntyPXAocix0KX0pLG89QlBhKHIpLE90ZSYmSFBhKG8pO2xldCBkPW8mJm8ucXVlcnlTZWxlY3RvcigiW2RhdGEtcG0tc2xpY2VdIiksZj1kJiYvXihcZCspIChcZCspKD86IC0oXGQrKSk/ICguKikvLmV4ZWMoZC5nZXRBdHRyaWJ1dGUoImRhdGEtcG0tc2xpY2UiKXx8IiIpO2lmKGYmJmZbM10pZm9yKGxldCBwPStmWzNdO3A+MDtwLS0pe2xldCBoPW8uZmlyc3RDaGlsZDtmb3IoO2gmJmgubm9kZVR5cGUhPTE7KWg9aC5uZXh0U2libGluZztpZighaClicmVhaztvPWh9aWYobHx8KGw9KHQuc29tZVByb3AoImNsaXBib2FyZFBhcnNlciIpfHx0LnNvbWVQcm9wKCJkb21QYXJzZXIiKXx8eWMuZnJvbVNjaGVtYSh0LnN0YXRlLnNjaGVtYSkpLnBhcnNlU2xpY2Uobyx7cHJlc2VydmVXaGl0ZXNwYWNlOiEhKGN8fGYpLGNvbnRleHQ6cyxydWxlRnJvbU5vZGUoaCl7cmV0dXJuIGgubm9kZU5hbWU9PSJCUiImJiFoLm5leHRTaWJsaW5nJiZoLnBhcmVudE5vZGUmJiFPUGEudGVzdChoLnBhcmVudE5vZGUubm9kZU5hbWUpP3tpZ25vcmU6ITB9Om51bGx9fSkpLGYpbD1xUGEobUdyKGwsK2ZbMV0sK2ZbMl0pLGZbNF0pO2Vsc2UgaWYobD1tdC5tYXhPcGVuKFJQYShsLmNvbnRlbnQscyksITApLGwub3BlblN0YXJ0fHxsLm9wZW5FbmQpe2xldCBwPTAsaD0wO2ZvcihsZXQgbT1sLmNvbnRlbnQuZmlyc3RDaGlsZDtwPGwub3BlblN0YXJ0JiYhbS50eXBlLnNwZWMuaXNvbGF0aW5nO3ArKyxtPW0uZmlyc3RDaGlsZCk7Zm9yKGxldCBtPWwuY29udGVudC5sYXN0Q2hpbGQ7aDxsLm9wZW5FbmQmJiFtLnR5cGUuc3BlYy5pc29sYXRpbmc7aCsrLG09bS5sYXN0Q2hpbGQpO2w9bUdyKGwscCxoKX1yZXR1cm4gdC5zb21lUHJvcCgidHJhbnNmb3JtUGFzdGVkIixwPT57bD1wKGwsdCxjKX0pLGx9ZnVuY3Rpb24gUlBhKHQsZSl7aWYodC5jaGlsZENvdW50PDIpcmV0dXJuIHQ7Zm9yKGxldCByPWUuZGVwdGg7cj49MDtyLS0pe2xldCBzPWUubm9kZShyKS5jb250ZW50TWF0Y2hBdChlLmluZGV4KHIpKSxuLG89W107aWYodC5mb3JFYWNoKGw9PntpZighbylyZXR1cm47bGV0IGM9cy5maW5kV3JhcHBpbmcobC50eXBlKSxkO2lmKCFjKXJldHVybiBvPW51bGw7aWYoZD1vLmxlbmd0aCYmbi5sZW5ndGgmJmZHcihjLG4sbCxvW28ubGVuZ3RoLTFdLDApKW9bby5sZW5ndGgtMV09ZDtlbHNle28ubGVuZ3RoJiYob1tvLmxlbmd0aC0xXT1oR3Iob1tvLmxlbmd0aC0xXSxuLmxlbmd0aCkpO2xldCBmPXBHcihsLGMpO28ucHVzaChmKSxzPXMubWF0Y2hUeXBlKGYudHlwZSksbj1jfX0pLG8pcmV0dXJuIEplLmZyb20obyl9cmV0dXJuIHR9ZnVuY3Rpb24gcEdyKHQsZSxyPTApe2ZvcihsZXQgYT1lLmxlbmd0aC0xO2E+PXI7YS0tKXQ9ZVthXS5jcmVhdGUobnVsbCxKZS5mcm9tKHQpKTtyZXR1cm4gdH1mdW5jdGlvbiBmR3IodCxlLHIsYSxzKXtpZihzPHQubGVuZ3RoJiZzPGUubGVuZ3RoJiZ0W3NdPT1lW3NdKXtsZXQgbj1mR3IodCxlLHIsYS5sYXN0Q2hpbGQscysxKTtpZihuKXJldHVybiBhLmNvcHkoYS5jb250ZW50LnJlcGxhY2VDaGlsZChhLmNoaWxkQ291bnQtMSxuKSk7aWYoYS5jb250ZW50TWF0Y2hBdChhLmNoaWxkQ291bnQpLm1hdGNoVHlwZShzPT10Lmxlbmd0aC0xP3IudHlwZTp0W3MrMV0pKXJldHVybiBhLmNvcHkoYS5jb250ZW50LmFwcGVuZChKZS5mcm9tKHBHcihyLHQscysxKSkpKX19ZnVuY3Rpb24gaEdyKHQsZSl7aWYoZT09MClyZXR1cm4gdDtsZXQgcj10LmNvbnRlbnQucmVwbGFjZUNoaWxkKHQuY2hpbGRDb3VudC0xLGhHcih0Lmxhc3RDaGlsZCxlLTEpKSxhPXQuY29udGVudE1hdGNoQXQodC5jaGlsZENvdW50KS5maWxsQmVmb3JlKEplLmVtcHR5LCEwKTtyZXR1cm4gdC5jb3B5KHIuYXBwZW5kKGEpKX1mdW5jdGlvbiBxbXQodCxlLHIsYSxzLG4pe2xldCBvPWU8MD90LmZpcnN0Q2hpbGQ6dC5sYXN0Q2hpbGQsbD1vLmNvbnRlbnQ7cmV0dXJuIHQuY2hpbGRDb3VudD4xJiYobj0wKSxzPGEtMSYmKGw9cW10KGwsZSxyLGEscysxLG4pKSxzPj1yJiYobD1lPDA/by5jb250ZW50TWF0Y2hBdCgwKS5maWxsQmVmb3JlKGwsbjw9cykuYXBwZW5kKGwpOmwuYXBwZW5kKG8uY29udGVudE1hdGNoQXQoby5jaGlsZENvdW50KS5maWxsQmVmb3JlKEplLmVtcHR5LCEwKSkpLHQucmVwbGFjZUNoaWxkKGU8MD8wOnQuY2hpbGRDb3VudC0xLG8uY29weShsKSl9ZnVuY3Rpb24gbUdyKHQsZSxyKXtyZXR1cm4gZTx0Lm9wZW5TdGFydCYmKHQ9bmV3IG10KHFtdCh0LmNvbnRlbnQsLTEsZSx0Lm9wZW5TdGFydCwwLHQub3BlbkVuZCksZSx0Lm9wZW5FbmQpKSxyPHQub3BlbkVuZCYmKHQ9bmV3IG10KHFtdCh0LmNvbnRlbnQsMSxyLHQub3BlbkVuZCwwLDApLHQub3BlblN0YXJ0LHIpKSx0fWZ1bmN0aW9uIHhHcigpe3JldHVybiBiR3J8fChiR3I9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJ0aXRsZSIpKX1mdW5jdGlvbiBGUGEodCl7bGV0IGU9d2luZG93LnRydXN0ZWRUeXBlcztyZXR1cm4gZT8oVm10fHwoVm10PWUuZGVmYXVsdFBvbGljeXx8ZS5jcmVhdGVQb2xpY3koIlByb3NlTWlycm9yQ2xpcGJvYXJkIix7Y3JlYXRlSFRNTDppKHI9PnIsImNyZWF0ZUhUTUwiKX0pKSxWbXQuY3JlYXRlSFRNTCh0KSk6dH1mdW5jdGlvbiBCUGEodCl7bGV0IGU9L14oXHMqPG1ldGEgW14+XSo+KSovLmV4ZWModCk7ZSYmKHQ9dC5zbGljZShlWzBdLmxlbmd0aCkpO2xldCByPXhHcigpLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGE9LzwoW2Etel1bXj5cc10rKS9pLmV4ZWModCkscztpZigocz1hJiZnR3JbYVsxXS50b0xvd2VyQ2FzZSgpXSkmJih0PXMubWFwKG49PiI8IituKyI+Iikuam9pbigiIikrdCtzLm1hcChuPT4iPC8iK24rIj4iKS5yZXZlcnNlKCkuam9pbigiIikpLHIuaW5uZXJIVE1MPUZQYSh0KSxzKWZvcihsZXQgbj0wO248cy5sZW5ndGg7bisrKXI9ci5xdWVyeVNlbGVjdG9yKHNbbl0pfHxyO3JldHVybiByfWZ1bmN0aW9uIEhQYSh0KXtsZXQgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoTm4/InNwYW46bm90KFtjbGFzc10pOm5vdChbc3R5bGVdKSI6InNwYW4uQXBwbGUtY29udmVydGVkLXNwYWNlIik7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldCBhPWVbcl07YS5jaGlsZE5vZGVzLmxlbmd0aD09MSYmYS50ZXh0Q29udGVudD09Ilx4QTAiJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodC5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiksYSl9fWZ1bmN0aW9uIHFQYSh0LGUpe2lmKCF0LnNpemUpcmV0dXJuIHQ7bGV0IHI9dC5jb250ZW50LmZpcnN0Q2hpbGQudHlwZS5zY2hlbWEsYTt0cnl7YT1KU09OLnBhcnNlKGUpfWNhdGNoe3JldHVybiB0fWxldHtjb250ZW50OnMsb3BlblN0YXJ0Om4sb3BlbkVuZDpvfT10O2ZvcihsZXQgbD1hLmxlbmd0aC0yO2w+PTA7bC09Mil7bGV0IGM9ci5ub2Rlc1thW2xdXTtpZighY3x8Yy5oYXNSZXF1aXJlZEF0dHJzKCkpYnJlYWs7cz1KZS5mcm9tKGMuY3JlYXRlKGFbbCsxXSxzKSksbisrLG8rK31yZXR1cm4gbmV3IG10KHMsbixvKX1mdW5jdGlvbiBqUGEodCl7Zm9yKGxldCBlIGluIFZvKXtsZXQgcj1Wb1tlXTt0LmRvbS5hZGRFdmVudExpc3RlbmVyKGUsdC5pbnB1dC5ldmVudEhhbmRsZXJzW2VdPWE9PntXUGEodCxhKSYmIVdtdCh0LGEpJiYodC5lZGl0YWJsZXx8IShhLnR5cGUgaW4gam8pKSYmcih0LGEpfSxWUGFbZV0/e3Bhc3NpdmU6ITB9OnZvaWQgMCl9Q28mJnQuZG9tLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+bnVsbCksVW10KHQpfWZ1bmN0aW9uIFhwKHQsZSl7dC5pbnB1dC5sYXN0U2VsZWN0aW9uT3JpZ2luPWUsdC5pbnB1dC5sYXN0U2VsZWN0aW9uVGltZT1EYXRlLm5vdygpfWZ1bmN0aW9uIFVQYSh0KXt0LmRvbU9ic2VydmVyLnN0b3AoKTtmb3IobGV0IGUgaW4gdC5pbnB1dC5ldmVudEhhbmRsZXJzKXQuZG9tLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LmlucHV0LmV2ZW50SGFuZGxlcnNbZV0pO2NsZWFyVGltZW91dCh0LmlucHV0LmNvbXBvc2luZ1RpbWVvdXQpLGNsZWFyVGltZW91dCh0LmlucHV0Lmxhc3RJT1NFbnRlckZhbGxiYWNrVGltZW91dCl9ZnVuY3Rpb24gVW10KHQpe3Quc29tZVByb3AoImhhbmRsZURPTUV2ZW50cyIsZT0+e2ZvcihsZXQgciBpbiBlKXQuaW5wdXQuZXZlbnRIYW5kbGVyc1tyXXx8dC5kb20uYWRkRXZlbnRMaXN0ZW5lcihyLHQuaW5wdXQuZXZlbnRIYW5kbGVyc1tyXT1hPT5XbXQodCxhKSl9KX1mdW5jdGlvbiBXbXQodCxlKXtyZXR1cm4gdC5zb21lUHJvcCgiaGFuZGxlRE9NRXZlbnRzIixyPT57bGV0IGE9cltlLnR5cGVdO3JldHVybiBhP2EodCxlKXx8ZS5kZWZhdWx0UHJldmVudGVkOiExfSl9ZnVuY3Rpb24gV1BhKHQsZSl7aWYoIWUuYnViYmxlcylyZXR1cm4hMDtpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuITE7Zm9yKGxldCByPWUudGFyZ2V0O3IhPXQuZG9tO3I9ci5wYXJlbnROb2RlKWlmKCFyfHxyLm5vZGVUeXBlPT0xMXx8ci5wbVZpZXdEZXNjJiZyLnBtVmlld0Rlc2Muc3RvcEV2ZW50KGUpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEdQYSh0LGUpeyFXbXQodCxlKSYmVm9bZS50eXBlXSYmKHQuZWRpdGFibGV8fCEoZS50eXBlIGluIGpvKSkmJlZvW2UudHlwZV0odCxlKX1mdW5jdGlvbiBMZmUodCl7cmV0dXJue2xlZnQ6dC5jbGllbnRYLHRvcDp0LmNsaWVudFl9fWZ1bmN0aW9uIFlQYSh0LGUpe2xldCByPWUueC10LmNsaWVudFgsYT1lLnktdC5jbGllbnRZO3JldHVybiByKnIrYSphPDEwMH1mdW5jdGlvbiBHbXQodCxlLHIsYSxzKXtpZihhPT0tMSlyZXR1cm4hMTtsZXQgbj10LnN0YXRlLmRvYy5yZXNvbHZlKGEpO2ZvcihsZXQgbz1uLmRlcHRoKzE7bz4wO28tLSlpZih0LnNvbWVQcm9wKGUsbD0+bz5uLmRlcHRoP2wodCxyLG4ubm9kZUFmdGVyLG4uYmVmb3JlKG8pLHMsITApOmwodCxyLG4ubm9kZShvKSxuLmJlZm9yZShvKSxzLCExKSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gc3codCxlLHIpe2lmKHQuZm9jdXNlZHx8dC5mb2N1cygpLHQuc3RhdGUuc2VsZWN0aW9uLmVxKGUpKXJldHVybjtsZXQgYT10LnN0YXRlLnRyLnNldFNlbGVjdGlvbihlKTtyPT0icG9pbnRlciImJmEuc2V0TWV0YSgicG9pbnRlciIsITApLHQuZGlzcGF0Y2goYSl9ZnVuY3Rpb24gS1BhKHQsZSl7aWYoZT09LTEpcmV0dXJuITE7bGV0IHI9dC5zdGF0ZS5kb2MucmVzb2x2ZShlKSxhPXIubm9kZUFmdGVyO3JldHVybiBhJiZhLmlzQXRvbSYmSXQuaXNTZWxlY3RhYmxlKGEpPyhzdyh0LG5ldyBJdChyKSwicG9pbnRlciIpLCEwKTohMX1mdW5jdGlvbiBaUGEodCxlKXtpZihlPT0tMSlyZXR1cm4hMTtsZXQgcj10LnN0YXRlLnNlbGVjdGlvbixhLHM7ciBpbnN0YW5jZW9mIEl0JiYoYT1yLm5vZGUpO2xldCBuPXQuc3RhdGUuZG9jLnJlc29sdmUoZSk7Zm9yKGxldCBvPW4uZGVwdGgrMTtvPjA7by0tKXtsZXQgbD1vPm4uZGVwdGg/bi5ub2RlQWZ0ZXI6bi5ub2RlKG8pO2lmKEl0LmlzU2VsZWN0YWJsZShsKSl7YSYmci4kZnJvbS5kZXB0aD4wJiZvPj1yLiRmcm9tLmRlcHRoJiZuLmJlZm9yZShyLiRmcm9tLmRlcHRoKzEpPT1yLiRmcm9tLnBvcz9zPW4uYmVmb3JlKHIuJGZyb20uZGVwdGgpOnM9bi5iZWZvcmUobyk7YnJlYWt9fXJldHVybiBzIT1udWxsPyhzdyh0LEl0LmNyZWF0ZSh0LnN0YXRlLmRvYyxzKSwicG9pbnRlciIpLCEwKTohMX1mdW5jdGlvbiBRUGEodCxlLHIsYSxzKXtyZXR1cm4gR210KHQsImhhbmRsZUNsaWNrT24iLGUscixhKXx8dC5zb21lUHJvcCgiaGFuZGxlQ2xpY2siLG49Pm4odCxlLGEpKXx8KHM/WlBhKHQscik6S1BhKHQscikpfWZ1bmN0aW9uIFhQYSh0LGUscixhKXtyZXR1cm4gR210KHQsImhhbmRsZURvdWJsZUNsaWNrT24iLGUscixhKXx8dC5zb21lUHJvcCgiaGFuZGxlRG91YmxlQ2xpY2siLHM9PnModCxlLGEpKX1mdW5jdGlvbiBKUGEodCxlLHIsYSl7cmV0dXJuIEdtdCh0LCJoYW5kbGVUcmlwbGVDbGlja09uIixlLHIsYSl8fHQuc29tZVByb3AoImhhbmRsZVRyaXBsZUNsaWNrIixzPT5zKHQsZSxhKSl8fGVOYSh0LHIsYSl9ZnVuY3Rpb24gZU5hKHQsZSxyKXtpZihyLmJ1dHRvbiE9MClyZXR1cm4hMTtsZXQgYT10LnN0YXRlLmRvYztpZihlPT0tMSlyZXR1cm4gYS5pbmxpbmVDb250ZW50Pyhzdyh0LGVyLmNyZWF0ZShhLDAsYS5jb250ZW50LnNpemUpLCJwb2ludGVyIiksITApOiExO2xldCBzPWEucmVzb2x2ZShlKTtmb3IobGV0IG49cy5kZXB0aCsxO24+MDtuLS0pe2xldCBvPW4+cy5kZXB0aD9zLm5vZGVBZnRlcjpzLm5vZGUobiksbD1zLmJlZm9yZShuKTtpZihvLmlubGluZUNvbnRlbnQpc3codCxlci5jcmVhdGUoYSxsKzEsbCsxK28uY29udGVudC5zaXplKSwicG9pbnRlciIpO2Vsc2UgaWYoSXQuaXNTZWxlY3RhYmxlKG8pKXN3KHQsSXQuY3JlYXRlKGEsbCksInBvaW50ZXIiKTtlbHNlIGNvbnRpbnVlO3JldHVybiEwfX1mdW5jdGlvbiBZbXQodCl7cmV0dXJuIEh0ZSh0KX1mdW5jdGlvbiB5R3IodCxlKXtyZXR1cm4gdC5jb21wb3Npbmc/ITA6Q28mJk1hdGguYWJzKGUudGltZVN0YW1wLXQuaW5wdXQuY29tcG9zaXRpb25FbmRlZEF0KTw1MDA/KHQuaW5wdXQuY29tcG9zaXRpb25FbmRlZEF0PS0yZTgsITApOiExfWZ1bmN0aW9uIHJOYSh0KXtsZXR7Zm9jdXNOb2RlOmUsZm9jdXNPZmZzZXQ6cn09dC5kb21TZWxlY3Rpb25SYW5nZSgpO2lmKCFlfHxlLm5vZGVUeXBlIT0xfHxyPj1lLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybiExO2xldCBhPWUuY2hpbGROb2Rlc1tyXTtyZXR1cm4gYS5ub2RlVHlwZT09MSYmYS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSJ9ZnVuY3Rpb24gd0dyKHQsZSl7Y2xlYXJUaW1lb3V0KHQuaW5wdXQuY29tcG9zaW5nVGltZW91dCksZT4tMSYmKHQuaW5wdXQuY29tcG9zaW5nVGltZW91dD1zZXRUaW1lb3V0KCgpPT5IdGUodCksZSkpfWZ1bmN0aW9uIGtHcih0KXtmb3IodC5jb21wb3NpbmcmJih0LmlucHV0LmNvbXBvc2luZz0hMSx0LmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD1pTmEoKSk7dC5pbnB1dC5jb21wb3NpdGlvbk5vZGVzLmxlbmd0aD4wOyl0LmlucHV0LmNvbXBvc2l0aW9uTm9kZXMucG9wKCkubWFya1BhcmVudHNEaXJ0eSgpfWZ1bmN0aW9uIGFOYSh0KXtsZXQgZT10LmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCByPWVQYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KSxhPXRQYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KTtpZihyJiZhJiZyIT1hKXtsZXQgcz1hLnBtVmlld0Rlc2Msbj10LmRvbU9ic2VydmVyLmxhc3RDaGFuZ2VkVGV4dE5vZGU7aWYocj09bnx8YT09bilyZXR1cm4gbjtpZighc3x8IXMuaXNUZXh0KGEubm9kZVZhbHVlKSlyZXR1cm4gYTtpZih0LmlucHV0LmNvbXBvc2l0aW9uTm9kZT09YSl7bGV0IG89ci5wbVZpZXdEZXNjO2lmKCEoIW98fCFvLmlzVGV4dChyLm5vZGVWYWx1ZSkpKXJldHVybiBhfX1yZXR1cm4gcnx8YX1mdW5jdGlvbiBpTmEoKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoImV2ZW50IiwhMCwhMCksdC50aW1lU3RhbXB9ZnVuY3Rpb24gSHRlKHQsZT0hMSl7aWYoIShzMyYmdC5kb21PYnNlcnZlci5mbHVzaGluZ1Nvb24+PTApKXtpZih0LmRvbU9ic2VydmVyLmZvcmNlRmx1c2goKSxrR3IodCksZXx8dC5kb2NWaWV3JiZ0LmRvY1ZpZXcuZGlydHkpe2xldCByPVBtdCh0KSxhPXQuc3RhdGUuc2VsZWN0aW9uO3JldHVybiByJiYhci5lcShhKT90LmRpc3BhdGNoKHQuc3RhdGUudHIuc2V0U2VsZWN0aW9uKHIpKToodC5tYXJrQ3Vyc29yfHxlKSYmIWEuJGZyb20ubm9kZShhLiRmcm9tLnNoYXJlZERlcHRoKGEudG8pKS5pbmxpbmVDb250ZW50P3QuZGlzcGF0Y2godC5zdGF0ZS50ci5kZWxldGVTZWxlY3Rpb24oKSk6dC51cGRhdGVTdGF0ZSh0LnN0YXRlKSwhMH1yZXR1cm4hMX19ZnVuY3Rpb24gc05hKHQsZSl7aWYoIXQuZG9tLnBhcmVudE5vZGUpcmV0dXJuO2xldCByPXQuZG9tLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpO3IuYXBwZW5kQ2hpbGQoZSksci5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IC0xMDAwMHB4OyB0b3A6IDEwcHgiO2xldCBhPWdldFNlbGVjdGlvbigpLHM9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtzLnNlbGVjdE5vZGVDb250ZW50cyhlKSx0LmRvbS5ibHVyKCksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKHMpLHNldFRpbWVvdXQoKCk9PntyLnBhcmVudE5vZGUmJnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSx0LmZvY3VzKCl9LDUwKX1mdW5jdGlvbiBuTmEodCl7cmV0dXJuIHQub3BlblN0YXJ0PT0wJiZ0Lm9wZW5FbmQ9PTAmJnQuY29udGVudC5jaGlsZENvdW50PT0xP3QuY29udGVudC5maXJzdENoaWxkOm51bGx9ZnVuY3Rpb24gb05hKHQsZSl7aWYoIXQuZG9tLnBhcmVudE5vZGUpcmV0dXJuO2xldCByPXQuaW5wdXQuc2hpZnRLZXl8fHQuc3RhdGUuc2VsZWN0aW9uLiRmcm9tLnBhcmVudC50eXBlLnNwZWMuY29kZSxhPXQuZG9tLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChyPyJ0ZXh0YXJlYSI6ImRpdiIpKTtyfHwoYS5jb250ZW50RWRpdGFibGU9InRydWUiKSxhLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogLTEwMDAwcHg7IHRvcDogMTBweCIsYS5mb2N1cygpO2xldCBzPXQuaW5wdXQuc2hpZnRLZXkmJnQuaW5wdXQubGFzdEtleUNvZGUhPTQ1O3NldFRpbWVvdXQoKCk9Pnt0LmZvY3VzKCksYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSkscj9WdGUodCxhLnZhbHVlLG51bGwscyxlKTpWdGUodCxhLnRleHRDb250ZW50LGEuaW5uZXJIVE1MLHMsZSl9LDUwKX1mdW5jdGlvbiBWdGUodCxlLHIsYSxzKXtsZXQgbj1IbXQodCxlLHIsYSx0LnN0YXRlLnNlbGVjdGlvbi4kZnJvbSk7aWYodC5zb21lUHJvcCgiaGFuZGxlUGFzdGUiLGM9PmModCxzLG58fG10LmVtcHR5KSkpcmV0dXJuITA7aWYoIW4pcmV0dXJuITE7bGV0IG89bk5hKG4pLGw9bz90LnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb25XaXRoKG8sYSk6dC5zdGF0ZS50ci5yZXBsYWNlU2VsZWN0aW9uKG4pO3JldHVybiB0LmRpc3BhdGNoKGwuc2Nyb2xsSW50b1ZpZXcoKS5zZXRNZXRhKCJwYXN0ZSIsITApLnNldE1ldGEoInVpRXZlbnQiLCJwYXN0ZSIpKSwhMH1mdW5jdGlvbiBTR3IodCl7bGV0IGU9dC5nZXREYXRhKCJ0ZXh0L3BsYWluIil8fHQuZ2V0RGF0YSgiVGV4dCIpO2lmKGUpcmV0dXJuIGU7bGV0IHI9dC5nZXREYXRhKCJ0ZXh0L3VyaS1saXN0Iik7cmV0dXJuIHI/ci5yZXBsYWNlKC9ccj9cbi9nLCIgIik6IiJ9ZnVuY3Rpb24gTUdyKHQsZSl7bGV0IHI7cmV0dXJuIHQuc29tZVByb3AoImRyYWdDb3BpZXMiLGE9PntyPXJ8fGEoZSl9KSxyIT1udWxsPyFyOiFlW2xOYV19ZnVuY3Rpb24gY05hKHQsZSxyKXtpZighZS5kYXRhVHJhbnNmZXIpcmV0dXJuO2xldCBhPXQucG9zQXRDb29yZHMoTGZlKGUpKTtpZighYSlyZXR1cm47bGV0IHM9dC5zdGF0ZS5kb2MucmVzb2x2ZShhLnBvcyksbj1yJiZyLnNsaWNlO24/dC5zb21lUHJvcCgidHJhbnNmb3JtUGFzdGVkIixtPT57bj1tKG4sdCwhMSl9KTpuPUhtdCh0LFNHcihlLmRhdGFUcmFuc2ZlcikscXRlP251bGw6ZS5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgidGV4dC9odG1sIiksITEscyk7bGV0IG89ISEociYmTUdyKHQsZSkpO2lmKHQuc29tZVByb3AoImhhbmRsZURyb3AiLG09Pm0odCxlLG58fG10LmVtcHR5LG8pKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1pZighbilyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBsPW4/QXRlKHQuc3RhdGUuZG9jLHMucG9zLG4pOnMucG9zO2w9PW51bGwmJihsPXMucG9zKTtsZXQgYz10LnN0YXRlLnRyO2lmKG8pe2xldHtub2RlOm19PXI7bT9tLnJlcGxhY2UoYyk6Yy5kZWxldGVTZWxlY3Rpb24oKX1sZXQgZD1jLm1hcHBpbmcubWFwKGwpLGY9bi5vcGVuU3RhcnQ9PTAmJm4ub3BlbkVuZD09MCYmbi5jb250ZW50LmNoaWxkQ291bnQ9PTEscD1jLmRvYztpZihmP2MucmVwbGFjZVJhbmdlV2l0aChkLGQsbi5jb250ZW50LmZpcnN0Q2hpbGQpOmMucmVwbGFjZVJhbmdlKGQsZCxuKSxjLmRvYy5lcShwKSlyZXR1cm47bGV0IGg9Yy5kb2MucmVzb2x2ZShkKTtpZihmJiZJdC5pc1NlbGVjdGFibGUobi5jb250ZW50LmZpcnN0Q2hpbGQpJiZoLm5vZGVBZnRlciYmaC5ub2RlQWZ0ZXIuc2FtZU1hcmt1cChuLmNvbnRlbnQuZmlyc3RDaGlsZCkpYy5zZXRTZWxlY3Rpb24obmV3IEl0KGgpKTtlbHNle2xldCBtPWMubWFwcGluZy5tYXAobCk7Yy5tYXBwaW5nLm1hcHNbYy5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLmZvckVhY2goKHYsYixnLHkpPT5tPXkpLGMuc2V0U2VsZWN0aW9uKE9tdCh0LGgsYy5kb2MucmVzb2x2ZShtKSkpfXQuZm9jdXMoKSx0LmRpc3BhdGNoKGMuc2V0TWV0YSgidWlFdmVudCIsImRyb3AiKSl9ZnVuY3Rpb24ganRlKHQsZSl7aWYodD09ZSlyZXR1cm4hMDtmb3IobGV0IHIgaW4gdClpZih0W3JdIT09ZVtyXSlyZXR1cm4hMTtmb3IobGV0IHIgaW4gZSlpZighKHIgaW4gdCkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZE5hKHQsZSxyLGEscyxuLG8pe2xldCBsPXQuc2xpY2UoKTtmb3IobGV0IGQ9MCxmPW47ZDxyLm1hcHMubGVuZ3RoO2QrKyl7bGV0IHA9MDtyLm1hcHNbZF0uZm9yRWFjaCgoaCxtLHYsYik9PntsZXQgZz1iLXYtKG0taCk7Zm9yKGxldCB5PTA7eTxsLmxlbmd0aDt5Kz0zKXtsZXQgaz1sW3krMV07aWYoazwwfHxoPmsrZi1wKWNvbnRpbnVlO2xldCBNPWxbeV0rZi1wO20+PU0/bFt5KzFdPWg8PU0/LTI6LTE6aD49ZiYmZyYmKGxbeV0rPWcsbFt5KzFdKz1nKX1wKz1nfSksZj1yLm1hcHNbZF0ubWFwKGYsLTEpfWxldCBjPSExO2ZvcihsZXQgZD0wO2Q8bC5sZW5ndGg7ZCs9MylpZihsW2QrMV08MCl7aWYobFtkKzFdPT0tMil7Yz0hMCxsW2QrMV09LTE7Y29udGludWV9bGV0IGY9ci5tYXAodFtkXStuKSxwPWYtcztpZihwPDB8fHA+PWEuY29udGVudC5zaXplKXtjPSEwO2NvbnRpbnVlfWxldCBoPXIubWFwKHRbZCsxXStuLC0xKSxtPWgtcyx7aW5kZXg6dixvZmZzZXQ6Yn09YS5jb250ZW50LmZpbmRJbmRleChwKSxnPWEubWF5YmVDaGlsZCh2KTtpZihnJiZiPT1wJiZiK2cubm9kZVNpemU9PW0pe2xldCB5PWxbZCsyXS5tYXBJbm5lcihyLGcsZisxLHRbZF0rbisxLG8pO3khPXpvPyhsW2RdPXAsbFtkKzFdPW0sbFtkKzJdPXkpOihsW2QrMV09LTIsYz0hMCl9ZWxzZSBjPSEwfWlmKGMpe2xldCBkPXVOYShsLHQsZSxyLHMsbixvKSxmPUVmZShkLGEsMCxvKTtlPWYubG9jYWw7Zm9yKGxldCBwPTA7cDxsLmxlbmd0aDtwKz0zKWxbcCsxXTwwJiYobC5zcGxpY2UocCwzKSxwLT0zKTtmb3IobGV0IHA9MCxoPTA7cDxmLmNoaWxkcmVuLmxlbmd0aDtwKz0zKXtsZXQgbT1mLmNoaWxkcmVuW3BdO2Zvcig7aDxsLmxlbmd0aCYmbFtoXTxtOyloKz0zO2wuc3BsaWNlKGgsMCxmLmNoaWxkcmVuW3BdLGYuY2hpbGRyZW5bcCsxXSxmLmNoaWxkcmVuW3ArMl0pfX1yZXR1cm4gbmV3IFVvKGUuc29ydChqOSksbCl9ZnVuY3Rpb24gQ0dyKHQsZSl7aWYoIWV8fCF0Lmxlbmd0aClyZXR1cm4gdDtsZXQgcj1bXTtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKyl7bGV0IHM9dFthXTtyLnB1c2gobmV3IHdjKHMuZnJvbStlLHMudG8rZSxzLnR5cGUpKX1yZXR1cm4gcn1mdW5jdGlvbiB1TmEodCxlLHIsYSxzLG4sbyl7ZnVuY3Rpb24gbChjLGQpe2ZvcihsZXQgZj0wO2Y8Yy5sb2NhbC5sZW5ndGg7ZisrKXtsZXQgcD1jLmxvY2FsW2ZdLm1hcChhLHMsZCk7cD9yLnB1c2gocCk6by5vblJlbW92ZSYmby5vblJlbW92ZShjLmxvY2FsW2ZdLnNwZWMpfWZvcihsZXQgZj0wO2Y8Yy5jaGlsZHJlbi5sZW5ndGg7Zis9MylsKGMuY2hpbGRyZW5bZisyXSxjLmNoaWxkcmVuW2ZdK2QrMSl9aShsLCJnYXRoZXIiKTtmb3IobGV0IGM9MDtjPHQubGVuZ3RoO2MrPTMpdFtjKzFdPT0tMSYmbCh0W2MrMl0sZVtjXStuKzEpO3JldHVybiByfWZ1bmN0aW9uIHpHcih0LGUscil7aWYoZS5pc0xlYWYpcmV0dXJuIG51bGw7bGV0IGE9citlLm5vZGVTaXplLHM9bnVsbDtmb3IobGV0IG49MCxvO248dC5sZW5ndGg7bisrKShvPXRbbl0pJiZvLmZyb20+ciYmby50bzxhJiYoKHN8fChzPVtdKSkucHVzaChvKSx0W25dPW51bGwpO3JldHVybiBzfWZ1bmN0aW9uIF9Hcih0KXtsZXQgZT1bXTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdIT1udWxsJiZlLnB1c2godFtyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gRWZlKHQsZSxyLGEpe2xldCBzPVtdLG49ITE7ZS5mb3JFYWNoKChsLGMpPT57bGV0IGQ9ekdyKHQsbCxjK3IpO2lmKGQpe249ITA7bGV0IGY9RWZlKGQsbCxyK2MrMSxhKTtmIT16byYmcy5wdXNoKGMsYytsLm5vZGVTaXplLGYpfX0pO2xldCBvPUNHcihuP19Hcih0KTp0LC1yKS5zb3J0KGo5KTtmb3IobGV0IGw9MDtsPG8ubGVuZ3RoO2wrKylvW2xdLnR5cGUudmFsaWQoZSxvW2xdKXx8KGEub25SZW1vdmUmJmEub25SZW1vdmUob1tsXS5zcGVjKSxvLnNwbGljZShsLS0sMSkpO3JldHVybiBvLmxlbmd0aHx8cy5sZW5ndGg/bmV3IFVvKG8scyk6em99ZnVuY3Rpb24gajkodCxlKXtyZXR1cm4gdC5mcm9tLWUuZnJvbXx8dC50by1lLnRvfWZ1bmN0aW9uIFFtdCh0KXtsZXQgZT10O2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGgtMTtyKyspe2xldCBhPWVbcl07aWYoYS5mcm9tIT1hLnRvKWZvcihsZXQgcz1yKzE7czxlLmxlbmd0aDtzKyspe2xldCBuPWVbc107aWYobi5mcm9tPT1hLmZyb20pe24udG8hPWEudG8mJihlPT10JiYoZT10LnNsaWNlKCkpLGVbc109bi5jb3B5KG4uZnJvbSxhLnRvKSxUR3IoZSxzKzEsbi5jb3B5KGEudG8sbi50bykpKTtjb250aW51ZX1lbHNle24uZnJvbTxhLnRvJiYoZT09dCYmKGU9dC5zbGljZSgpKSxlW3JdPWEuY29weShhLmZyb20sbi5mcm9tKSxUR3IoZSxzLGEuY29weShuLmZyb20sYS50bykpKTticmVha319fXJldHVybiBlfWZ1bmN0aW9uIFRHcih0LGUscil7Zm9yKDtlPHQubGVuZ3RoJiZqOShyLHRbZV0pPjA7KWUrKzt0LnNwbGljZShlLDAscil9ZnVuY3Rpb24gWG10KHQpe2xldCBlPVtdO3JldHVybiB0LnNvbWVQcm9wKCJkZWNvcmF0aW9ucyIscj0+e2xldCBhPXIodC5zdGF0ZSk7YSYmYSE9em8mJmUucHVzaChhKX0pLHQuY3Vyc29yV3JhcHBlciYmZS5wdXNoKFVvLmNyZWF0ZSh0LnN0YXRlLmRvYyxbdC5jdXJzb3JXcmFwcGVyLmRlY29dKSksQWZlLmZyb20oZSl9ZnVuY3Rpb24gaE5hKHQpe2lmKCFMR3IuaGFzKHQpJiYoTEdyLnNldCh0LG51bGwpLFsibm9ybWFsIiwibm93cmFwIiwicHJlLWxpbmUiXS5pbmRleE9mKGdldENvbXB1dGVkU3R5bGUodC5kb20pLndoaXRlU3BhY2UpIT09LTEpKXtpZih0LnJlcXVpcmVzR2Vja29IYWNrTm9kZT1lMixER3IpcmV0dXJuO2NvbnNvbGUud2FybigiUHJvc2VNaXJyb3IgZXhwZWN0cyB0aGUgQ1NTIHdoaXRlLXNwYWNlIHByb3BlcnR5IHRvIGJlIHNldCwgcHJlZmVyYWJseSB0byAncHJlLXdyYXAnLiBJdCBpcyByZWNvbW1lbmRlZCB0byBsb2FkIHN0eWxlL3Byb3NlbWlycm9yLmNzcyBmcm9tIHRoZSBwcm9zZW1pcnJvci12aWV3IHBhY2thZ2UuIiksREdyPSEwfX1mdW5jdGlvbiAkR3IodCxlKXtsZXQgcj1lLnN0YXJ0Q29udGFpbmVyLGE9ZS5zdGFydE9mZnNldCxzPWUuZW5kQ29udGFpbmVyLG49ZS5lbmRPZmZzZXQsbz10LmRvbUF0UG9zKHQuc3RhdGUuc2VsZWN0aW9uLmFuY2hvcik7cmV0dXJuIE85KG8ubm9kZSxvLm9mZnNldCxzLG4pJiYoW3IsYSxzLG5dPVtzLG4scixhXSkse2FuY2hvck5vZGU6cixhbmNob3JPZmZzZXQ6YSxmb2N1c05vZGU6cyxmb2N1c09mZnNldDpufX1mdW5jdGlvbiBtTmEodCxlKXtpZihlLmdldENvbXBvc2VkUmFuZ2VzKXtsZXQgcz1lLmdldENvbXBvc2VkUmFuZ2VzKHQucm9vdClbMF07aWYocylyZXR1cm4gJEdyKHQscyl9bGV0IHI7ZnVuY3Rpb24gYShzKXtzLnByZXZlbnREZWZhdWx0KCkscy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxyPXMuZ2V0VGFyZ2V0UmFuZ2VzKClbMF19cmV0dXJuIGkoYSwicmVhZCIpLHQuZG9tLmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZWlucHV0IixhLCEwKSxkb2N1bWVudC5leGVjQ29tbWFuZCgiaW5kZW50IiksdC5kb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmVmb3JlaW5wdXQiLGEsITApLHI/JEdyKHQscik6bnVsbH1mdW5jdGlvbiBnTmEodCxlKXtmb3IobGV0IHI9ZS5wYXJlbnROb2RlO3ImJnIhPXQuZG9tO3I9ci5wYXJlbnROb2RlKXtsZXQgYT10LmRvY1ZpZXcubmVhcmVzdERlc2MociwhMCk7aWYoYSYmYS5ub2RlLmlzQmxvY2spcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYk5hKHQsZSl7dmFyIHI7bGV0e2ZvY3VzTm9kZTphLGZvY3VzT2Zmc2V0OnN9PXQuZG9tU2VsZWN0aW9uUmFuZ2UoKTtmb3IobGV0IG4gb2YgZSlpZigoKHI9bi5wYXJlbnROb2RlKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubm9kZU5hbWUpPT0iVFIiKXtsZXQgbz1uLm5leHRTaWJsaW5nO2Zvcig7byYmby5ub2RlTmFtZSE9IlREIiYmby5ub2RlTmFtZSE9IlRIIjspbz1vLm5leHRTaWJsaW5nO2lmKG8pe2xldCBsPW87Zm9yKDs7KXtsZXQgYz1sLmZpcnN0Q2hpbGQ7aWYoIWN8fGMubm9kZVR5cGUhPTF8fGMuY29udGVudEVkaXRhYmxlPT0iZmFsc2UifHwvXihCUnxJTUcpJC8udGVzdChjLm5vZGVOYW1lKSlicmVhaztsPWN9bC5pbnNlcnRCZWZvcmUobixsLmZpcnN0Q2hpbGQpLGE9PW4mJnQuZG9tU2VsZWN0aW9uKCkuY29sbGFwc2UobixzKX1lbHNlIG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX19ZnVuY3Rpb24geE5hKHQsZSxyKXtsZXR7bm9kZTphLGZyb21PZmZzZXQ6cyx0b09mZnNldDpuLGZyb206byx0bzpsfT10LmRvY1ZpZXcucGFyc2VSYW5nZShlLHIpLGM9dC5kb21TZWxlY3Rpb25SYW5nZSgpLGQsZj1jLmFuY2hvck5vZGU7aWYoZiYmdC5kb20uY29udGFpbnMoZi5ub2RlVHlwZT09MT9mOmYucGFyZW50Tm9kZSkmJihkPVt7bm9kZTpmLG9mZnNldDpjLmFuY2hvck9mZnNldH1dLFNmZShjKXx8ZC5wdXNoKHtub2RlOmMuZm9jdXNOb2RlLG9mZnNldDpjLmZvY3VzT2Zmc2V0fSkpLE5uJiZ0LmlucHV0Lmxhc3RLZXlDb2RlPT09OClmb3IobGV0IGc9bjtnPnM7Zy0tKXtsZXQgeT1hLmNoaWxkTm9kZXNbZy0xXSxrPXkucG1WaWV3RGVzYztpZih5Lm5vZGVOYW1lPT0iQlIiJiYhayl7bj1nO2JyZWFrfWlmKCFrfHxrLnNpemUpYnJlYWt9bGV0IHA9dC5zdGF0ZS5kb2MsaD10LnNvbWVQcm9wKCJkb21QYXJzZXIiKXx8eWMuZnJvbVNjaGVtYSh0LnN0YXRlLnNjaGVtYSksbT1wLnJlc29sdmUobyksdj1udWxsLGI9aC5wYXJzZShhLHt0b3BOb2RlOm0ucGFyZW50LHRvcE1hdGNoOm0ucGFyZW50LmNvbnRlbnRNYXRjaEF0KG0uaW5kZXgoKSksdG9wT3BlbjohMCxmcm9tOnMsdG86bixwcmVzZXJ2ZVdoaXRlc3BhY2U6bS5wYXJlbnQudHlwZS53aGl0ZXNwYWNlPT0icHJlIj8iZnVsbCI6ITAsZmluZFBvc2l0aW9uczpkLHJ1bGVGcm9tTm9kZTp2TmEsY29udGV4dDptfSk7aWYoZCYmZFswXS5wb3MhPW51bGwpe2xldCBnPWRbMF0ucG9zLHk9ZFsxXSYmZFsxXS5wb3M7eT09bnVsbCYmKHk9Zyksdj17YW5jaG9yOmcrbyxoZWFkOnkrb319cmV0dXJue2RvYzpiLHNlbDp2LGZyb206byx0bzpsfX1mdW5jdGlvbiB2TmEodCl7bGV0IGU9dC5wbVZpZXdEZXNjO2lmKGUpcmV0dXJuIGUucGFyc2VSdWxlKCk7aWYodC5ub2RlTmFtZT09IkJSIiYmdC5wYXJlbnROb2RlKXtpZihDbyYmL14odWx8b2wpJC9pLnRlc3QodC5wYXJlbnROb2RlLm5vZGVOYW1lKSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKSkse3NraXA6cn19ZWxzZSBpZih0LnBhcmVudE5vZGUubGFzdENoaWxkPT10fHxDbyYmL14odHJ8dGFibGUpJC9pLnRlc3QodC5wYXJlbnROb2RlLm5vZGVOYW1lKSlyZXR1cm57aWdub3JlOiEwfX1lbHNlIGlmKHQubm9kZU5hbWU9PSJJTUciJiZ0LmdldEF0dHJpYnV0ZSgibWFyay1wbGFjZWhvbGRlciIpKXJldHVybntpZ25vcmU6ITB9O3JldHVybiBudWxsfWZ1bmN0aW9uIHdOYSh0LGUscixhLHMpe2xldCBuPXQuaW5wdXQuY29tcG9zaXRpb25QZW5kaW5nQ2hhbmdlc3x8KHQuY29tcG9zaW5nP3QuaW5wdXQuY29tcG9zaXRpb25JRDowKTtpZih0LmlucHV0LmNvbXBvc2l0aW9uUGVuZGluZ0NoYW5nZXM9MCxlPDApe2xldCBPPXQuaW5wdXQubGFzdFNlbGVjdGlvblRpbWU+RGF0ZS5ub3coKS01MD90LmlucHV0Lmxhc3RTZWxlY3Rpb25PcmlnaW46bnVsbCxMPVBtdCh0LE8pO2lmKEwmJiF0LnN0YXRlLnNlbGVjdGlvbi5lcShMKSl7aWYoTm4mJnMzJiZ0LmlucHV0Lmxhc3RLZXlDb2RlPT09MTMmJkRhdGUubm93KCktMTAwPHQuaW5wdXQubGFzdEtleUNvZGVUaW1lJiZ0LnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixCPT5CKHQsUjkoMTMsIkVudGVyIikpKSlyZXR1cm47bGV0IEU9dC5zdGF0ZS50ci5zZXRTZWxlY3Rpb24oTCk7Tz09InBvaW50ZXIiP0Uuc2V0TWV0YSgicG9pbnRlciIsITApOk89PSJrZXkiJiZFLnNjcm9sbEludG9WaWV3KCksbiYmRS5zZXRNZXRhKCJjb21wb3NpdGlvbiIsbiksdC5kaXNwYXRjaChFKX1yZXR1cm59bGV0IG89dC5zdGF0ZS5kb2MucmVzb2x2ZShlKSxsPW8uc2hhcmVkRGVwdGgocik7ZT1vLmJlZm9yZShsKzEpLHI9dC5zdGF0ZS5kb2MucmVzb2x2ZShyKS5hZnRlcihsKzEpO2xldCBjPXQuc3RhdGUuc2VsZWN0aW9uLGQ9eE5hKHQsZSxyKSxmPXQuc3RhdGUuZG9jLHA9Zi5zbGljZShkLmZyb20sZC50byksaCxtO3QuaW5wdXQubGFzdEtleUNvZGU9PT04JiZEYXRlLm5vdygpLTEwMDx0LmlucHV0Lmxhc3RLZXlDb2RlVGltZT8oaD10LnN0YXRlLnNlbGVjdGlvbi50byxtPSJlbmQiKTooaD10LnN0YXRlLnNlbGVjdGlvbi5mcm9tLG09InN0YXJ0IiksdC5pbnB1dC5sYXN0S2V5Q29kZT1udWxsO2xldCB2PU1OYShwLmNvbnRlbnQsZC5kb2MuY29udGVudCxkLmZyb20saCxtKTtpZih2JiZ0LmlucHV0LmRvbUNoYW5nZUNvdW50KyssKHR3JiZ0LmlucHV0Lmxhc3RJT1NFbnRlcj5EYXRlLm5vdygpLTIyNXx8czMpJiZzLnNvbWUoTz0+Ty5ub2RlVHlwZT09MSYmIXlOYS50ZXN0KE8ubm9kZU5hbWUpKSYmKCF2fHx2LmVuZEE+PXYuZW5kQikmJnQuc29tZVByb3AoImhhbmRsZUtleURvd24iLE89Pk8odCxSOSgxMywiRW50ZXIiKSkpKXt0LmlucHV0Lmxhc3RJT1NFbnRlcj0wO3JldHVybn1pZighdilpZihhJiZjIGluc3RhbmNlb2YgZXImJiFjLmVtcHR5JiZjLiRoZWFkLnNhbWVQYXJlbnQoYy4kYW5jaG9yKSYmIXQuY29tcG9zaW5nJiYhKGQuc2VsJiZkLnNlbC5hbmNob3IhPWQuc2VsLmhlYWQpKXY9e3N0YXJ0OmMuZnJvbSxlbmRBOmMudG8sZW5kQjpjLnRvfTtlbHNle2lmKGQuc2VsKXtsZXQgTz1BR3IodCx0LnN0YXRlLmRvYyxkLnNlbCk7aWYoTyYmIU8uZXEodC5zdGF0ZS5zZWxlY3Rpb24pKXtsZXQgTD10LnN0YXRlLnRyLnNldFNlbGVjdGlvbihPKTtuJiZMLnNldE1ldGEoImNvbXBvc2l0aW9uIixuKSx0LmRpc3BhdGNoKEwpfX1yZXR1cm59dC5zdGF0ZS5zZWxlY3Rpb24uZnJvbTx0LnN0YXRlLnNlbGVjdGlvbi50byYmdi5zdGFydD09di5lbmRCJiZ0LnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIGVyJiYodi5zdGFydD50LnN0YXRlLnNlbGVjdGlvbi5mcm9tJiZ2LnN0YXJ0PD10LnN0YXRlLnNlbGVjdGlvbi5mcm9tKzImJnQuc3RhdGUuc2VsZWN0aW9uLmZyb20+PWQuZnJvbT92LnN0YXJ0PXQuc3RhdGUuc2VsZWN0aW9uLmZyb206di5lbmRBPHQuc3RhdGUuc2VsZWN0aW9uLnRvJiZ2LmVuZEE+PXQuc3RhdGUuc2VsZWN0aW9uLnRvLTImJnQuc3RhdGUuc2VsZWN0aW9uLnRvPD1kLnRvJiYodi5lbmRCKz10LnN0YXRlLnNlbGVjdGlvbi50by12LmVuZEEsdi5lbmRBPXQuc3RhdGUuc2VsZWN0aW9uLnRvKSksRTEmJllwPD0xMSYmdi5lbmRCPT12LnN0YXJ0KzEmJnYuZW5kQT09di5zdGFydCYmdi5zdGFydD5kLmZyb20mJmQuZG9jLnRleHRCZXR3ZWVuKHYuc3RhcnQtZC5mcm9tLTEsdi5zdGFydC1kLmZyb20rMSk9PSIgXHhBMCImJih2LnN0YXJ0LS0sdi5lbmRBLS0sdi5lbmRCLS0pO2xldCBiPWQuZG9jLnJlc29sdmVOb0NhY2hlKHYuc3RhcnQtZC5mcm9tKSxnPWQuZG9jLnJlc29sdmVOb0NhY2hlKHYuZW5kQi1kLmZyb20pLHk9Zi5yZXNvbHZlKHYuc3RhcnQpLGs9Yi5zYW1lUGFyZW50KGcpJiZiLnBhcmVudC5pbmxpbmVDb250ZW50JiZ5LmVuZCgpPj12LmVuZEE7aWYoKHR3JiZ0LmlucHV0Lmxhc3RJT1NFbnRlcj5EYXRlLm5vdygpLTIyNSYmKCFrfHxzLnNvbWUoTz0+Ty5ub2RlTmFtZT09IkRJViJ8fE8ubm9kZU5hbWU9PSJQIikpfHwhayYmYi5wb3M8ZC5kb2MuY29udGVudC5zaXplJiYoIWIuc2FtZVBhcmVudChnKXx8IWIucGFyZW50LmlubGluZUNvbnRlbnQpJiZiLnBvczxnLnBvcyYmIS9cUy8udGVzdChkLmRvYy50ZXh0QmV0d2VlbihiLnBvcyxnLnBvcywiIiwiIikpKSYmdC5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsTz0+Tyh0LFI5KDEzLCJFbnRlciIpKSkpe3QuaW5wdXQubGFzdElPU0VudGVyPTA7cmV0dXJufWlmKHQuc3RhdGUuc2VsZWN0aW9uLmFuY2hvcj52LnN0YXJ0JiZTTmEoZix2LnN0YXJ0LHYuZW5kQSxiLGcpJiZ0LnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixPPT5PKHQsUjkoOCwiQmFja3NwYWNlIikpKSl7czMmJk5uJiZ0LmRvbU9ic2VydmVyLnN1cHByZXNzU2VsZWN0aW9uVXBkYXRlcygpO3JldHVybn1ObiYmdi5lbmRCPT12LnN0YXJ0JiYodC5pbnB1dC5sYXN0Q2hyb21lRGVsZXRlPURhdGUubm93KCkpLHMzJiYhayYmYi5zdGFydCgpIT1nLnN0YXJ0KCkmJmcucGFyZW50T2Zmc2V0PT0wJiZiLmRlcHRoPT1nLmRlcHRoJiZkLnNlbCYmZC5zZWwuYW5jaG9yPT1kLnNlbC5oZWFkJiZkLnNlbC5oZWFkPT12LmVuZEEmJih2LmVuZEItPTIsZz1kLmRvYy5yZXNvbHZlTm9DYWNoZSh2LmVuZEItZC5mcm9tKSxzZXRUaW1lb3V0KCgpPT57dC5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsZnVuY3Rpb24oTyl7cmV0dXJuIE8odCxSOSgxMywiRW50ZXIiKSl9KX0sMjApKTtsZXQgTT12LnN0YXJ0LE49di5lbmRBLF89aShPPT57bGV0IEw9T3x8dC5zdGF0ZS50ci5yZXBsYWNlKE0sTixkLmRvYy5zbGljZSh2LnN0YXJ0LWQuZnJvbSx2LmVuZEItZC5mcm9tKSk7aWYoZC5zZWwpe2xldCBFPUFHcih0LEwuZG9jLGQuc2VsKTtFJiYhKE5uJiZ0LmNvbXBvc2luZyYmRS5lbXB0eSYmKHYuc3RhcnQhPXYuZW5kQnx8dC5pbnB1dC5sYXN0Q2hyb21lRGVsZXRlPERhdGUubm93KCktMTAwKSYmKEUuaGVhZD09TXx8RS5oZWFkPT1MLm1hcHBpbmcubWFwKE4pLTEpfHxFMSYmRS5lbXB0eSYmRS5oZWFkPT1NKSYmTC5zZXRTZWxlY3Rpb24oRSl9cmV0dXJuIG4mJkwuc2V0TWV0YSgiY29tcG9zaXRpb24iLG4pLEwuc2Nyb2xsSW50b1ZpZXcoKX0sIm1rVHIiKSxTO2lmKGspaWYoYi5wb3M9PWcucG9zKXtFMSYmWXA8PTExJiZiLnBhcmVudE9mZnNldD09MCYmKHQuZG9tT2JzZXJ2ZXIuc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGVzKCksc2V0VGltZW91dCgoKT0+bzModCksMjApKTtsZXQgTz1fKHQuc3RhdGUudHIuZGVsZXRlKE0sTikpLEw9Zi5yZXNvbHZlKHYuc3RhcnQpLm1hcmtzQWNyb3NzKGYucmVzb2x2ZSh2LmVuZEEpKTtMJiZPLmVuc3VyZU1hcmtzKEwpLHQuZGlzcGF0Y2goTyl9ZWxzZSBpZih2LmVuZEE9PXYuZW5kQiYmKFM9a05hKGIucGFyZW50LmNvbnRlbnQuY3V0KGIucGFyZW50T2Zmc2V0LGcucGFyZW50T2Zmc2V0KSx5LnBhcmVudC5jb250ZW50LmN1dCh5LnBhcmVudE9mZnNldCx2LmVuZEEteS5zdGFydCgpKSkpKXtsZXQgTz1fKHQuc3RhdGUudHIpO1MudHlwZT09ImFkZCI/Ty5hZGRNYXJrKE0sTixTLm1hcmspOk8ucmVtb3ZlTWFyayhNLE4sUy5tYXJrKSx0LmRpc3BhdGNoKE8pfWVsc2UgaWYoYi5wYXJlbnQuY2hpbGQoYi5pbmRleCgpKS5pc1RleHQmJmIuaW5kZXgoKT09Zy5pbmRleCgpLShnLnRleHRPZmZzZXQ/MDoxKSl7bGV0IE89Yi5wYXJlbnQudGV4dEJldHdlZW4oYi5wYXJlbnRPZmZzZXQsZy5wYXJlbnRPZmZzZXQpLEw9aSgoKT0+Xyh0LnN0YXRlLnRyLmluc2VydFRleHQoTyxNLE4pKSwiZGVmbHQiKTt0LnNvbWVQcm9wKCJoYW5kbGVUZXh0SW5wdXQiLEU9PkUodCxNLE4sTyxMKSl8fHQuZGlzcGF0Y2goTCgpKX1lbHNlIHQuZGlzcGF0Y2goXygpKTtlbHNlIHQuZGlzcGF0Y2goXygpKX1mdW5jdGlvbiBBR3IodCxlLHIpe3JldHVybiBNYXRoLm1heChyLmFuY2hvcixyLmhlYWQpPmUuY29udGVudC5zaXplP251bGw6T210KHQsZS5yZXNvbHZlKHIuYW5jaG9yKSxlLnJlc29sdmUoci5oZWFkKSl9ZnVuY3Rpb24ga05hKHQsZSl7bGV0IHI9dC5maXJzdENoaWxkLm1hcmtzLGE9ZS5maXJzdENoaWxkLm1hcmtzLHM9cixuPWEsbyxsLGM7Zm9yKGxldCBmPTA7ZjxhLmxlbmd0aDtmKyspcz1hW2ZdLnJlbW92ZUZyb21TZXQocyk7Zm9yKGxldCBmPTA7ZjxyLmxlbmd0aDtmKyspbj1yW2ZdLnJlbW92ZUZyb21TZXQobik7aWYocy5sZW5ndGg9PTEmJm4ubGVuZ3RoPT0wKWw9c1swXSxvPSJhZGQiLGM9aShmPT5mLm1hcmsobC5hZGRUb1NldChmLm1hcmtzKSksInVwZGF0ZSIpO2Vsc2UgaWYocy5sZW5ndGg9PTAmJm4ubGVuZ3RoPT0xKWw9blswXSxvPSJyZW1vdmUiLGM9aShmPT5mLm1hcmsobC5yZW1vdmVGcm9tU2V0KGYubWFya3MpKSwidXBkYXRlIik7ZWxzZSByZXR1cm4gbnVsbDtsZXQgZD1bXTtmb3IobGV0IGY9MDtmPGUuY2hpbGRDb3VudDtmKyspZC5wdXNoKGMoZS5jaGlsZChmKSkpO2lmKEplLmZyb20oZCkuZXEodCkpcmV0dXJue21hcms6bCx0eXBlOm99fWZ1bmN0aW9uIFNOYSh0LGUscixhLHMpe2lmKHItZTw9cy5wb3MtYS5wb3N8fHQ1dChhLCEwLCExKTxzLnBvcylyZXR1cm4hMTtsZXQgbj10LnJlc29sdmUoZSk7aWYoIWEucGFyZW50LmlzVGV4dGJsb2NrKXtsZXQgbD1uLm5vZGVBZnRlcjtyZXR1cm4gbCE9bnVsbCYmcj09ZStsLm5vZGVTaXplfWlmKG4ucGFyZW50T2Zmc2V0PG4ucGFyZW50LmNvbnRlbnQuc2l6ZXx8IW4ucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybiExO2xldCBvPXQucmVzb2x2ZSh0NXQobiwhMCwhMCkpO3JldHVybiFvLnBhcmVudC5pc1RleHRibG9ja3x8by5wb3M+cnx8dDV0KG8sITAsITEpPHI/ITE6YS5wYXJlbnQuY29udGVudC5jdXQoYS5wYXJlbnRPZmZzZXQpLmVxKG8ucGFyZW50LmNvbnRlbnQpfWZ1bmN0aW9uIHQ1dCh0LGUscil7bGV0IGE9dC5kZXB0aCxzPWU/dC5lbmQoKTp0LnBvcztmb3IoO2E+MCYmKGV8fHQuaW5kZXhBZnRlcihhKT09dC5ub2RlKGEpLmNoaWxkQ291bnQpOylhLS0scysrLGU9ITE7aWYocil7bGV0IG49dC5ub2RlKGEpLm1heWJlQ2hpbGQodC5pbmRleEFmdGVyKGEpKTtmb3IoO24mJiFuLmlzTGVhZjspbj1uLmZpcnN0Q2hpbGQscysrfXJldHVybiBzfWZ1bmN0aW9uIE1OYSh0LGUscixhLHMpe2xldCBuPXQuZmluZERpZmZTdGFydChlLHIpO2lmKG49PW51bGwpcmV0dXJuIG51bGw7bGV0e2E6byxiOmx9PXQuZmluZERpZmZFbmQoZSxyK3Quc2l6ZSxyK2Uuc2l6ZSk7aWYocz09ImVuZCIpe2xldCBjPU1hdGgubWF4KDAsbi1NYXRoLm1pbihvLGwpKTthLT1vK2Mtbn1pZihvPG4mJnQuc2l6ZTxlLnNpemUpe2xldCBjPWE8PW4mJmE+PW8/bi1hOjA7bi09YyxuJiZuPGUuc2l6ZSYmRUdyKGUudGV4dEJldHdlZW4obi0xLG4rMSkpJiYobis9Yz8xOi0xKSxsPW4rKGwtbyksbz1ufWVsc2UgaWYobDxuKXtsZXQgYz1hPD1uJiZhPj1sP24tYTowO24tPWMsbiYmbjx0LnNpemUmJkVHcih0LnRleHRCZXR3ZWVuKG4tMSxuKzEpKSYmKG4rPWM/MTotMSksbz1uKyhvLWwpLGw9bn1yZXR1cm57c3RhcnQ6bixlbmRBOm8sZW5kQjpsfX1mdW5jdGlvbiBFR3IodCl7aWYodC5sZW5ndGghPTIpcmV0dXJuITE7bGV0IGU9dC5jaGFyQ29kZUF0KDApLHI9dC5jaGFyQ29kZUF0KDEpO3JldHVybiBlPj01NjMyMCYmZTw9NTczNDMmJnI+PTU1Mjk2JiZyPD01NjMxOX1mdW5jdGlvbiBJR3IodCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZS5jbGFzcz0iUHJvc2VNaXJyb3IiLGUuY29udGVudGVkaXRhYmxlPVN0cmluZyh0LmVkaXRhYmxlKSx0LnNvbWVQcm9wKCJhdHRyaWJ1dGVzIixyPT57aWYodHlwZW9mIHI9PSJmdW5jdGlvbiImJihyPXIodC5zdGF0ZSkpLHIpZm9yKGxldCBhIGluIHIpYT09ImNsYXNzIj9lLmNsYXNzKz0iICIrclthXTphPT0ic3R5bGUiP2Uuc3R5bGU9KGUuc3R5bGU/ZS5zdHlsZSsiOyI6IiIpK3JbYV06IWVbYV0mJmEhPSJjb250ZW50ZWRpdGFibGUiJiZhIT0ibm9kZU5hbWUiJiYoZVthXT1TdHJpbmcoclthXSkpfSksZS50cmFuc2xhdGV8fChlLnRyYW5zbGF0ZT0ibm8iKSxbd2Mubm9kZSgwLHQuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSxlKV19ZnVuY3Rpb24gUEdyKHQpe2lmKHQubWFya0N1cnNvcil7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7ZS5jbGFzc05hbWU9IlByb3NlTWlycm9yLXNlcGFyYXRvciIsZS5zZXRBdHRyaWJ1dGUoIm1hcmstcGxhY2Vob2xkZXIiLCJ0cnVlIiksZS5zZXRBdHRyaWJ1dGUoImFsdCIsIiIpLHQuY3Vyc29yV3JhcHBlcj17ZG9tOmUsZGVjbzp3Yy53aWRnZXQodC5zdGF0ZS5zZWxlY3Rpb24uZnJvbSxlLHtyYXc6ITAsbWFya3M6dC5tYXJrQ3Vyc29yfSl9fWVsc2UgdC5jdXJzb3JXcmFwcGVyPW51bGx9ZnVuY3Rpb24gTkdyKHQpe3JldHVybiF0LnNvbWVQcm9wKCJlZGl0YWJsZSIsZT0+ZSh0LnN0YXRlKT09PSExKX1mdW5jdGlvbiBfTmEodCxlKXtsZXQgcj1NYXRoLm1pbih0LiRhbmNob3Iuc2hhcmVkRGVwdGgodC5oZWFkKSxlLiRhbmNob3Iuc2hhcmVkRGVwdGgoZS5oZWFkKSk7cmV0dXJuIHQuJGFuY2hvci5zdGFydChyKSE9ZS4kYW5jaG9yLnN0YXJ0KHIpfWZ1bmN0aW9uIE9Hcih0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIHIoYSl7Zm9yKGxldCBzIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscyl8fChlW3NdPWFbc10pfXJldHVybiBpKHIsImFkZCIpLHQuc29tZVByb3AoIm5vZGVWaWV3cyIsciksdC5zb21lUHJvcCgibWFya1ZpZXdzIixyKSxlfWZ1bmN0aW9uIFROYSh0LGUpe2xldCByPTAsYT0wO2ZvcihsZXQgcyBpbiB0KXtpZih0W3NdIT1lW3NdKXJldHVybiEwO3IrK31mb3IobGV0IHMgaW4gZSlhKys7cmV0dXJuIHIhPWF9ZnVuY3Rpb24gUkdyKHQpe2lmKHQuc3BlYy5zdGF0ZXx8dC5zcGVjLmZpbHRlclRyYW5zYWN0aW9ufHx0LnNwZWMuYXBwZW5kVHJhbnNhY3Rpb24pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlBsdWdpbnMgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSB2aWV3IG11c3Qgbm90IGhhdmUgYSBzdGF0ZSBjb21wb25lbnQiKX12YXIgUG4sZXcsTW10LGkzLFhJYSxPOSxKSWEsU2ZlLGRkLCRXcixHcCxDbXQsQVdyLHptdCxFMSxZcCxlMixfbXQsTm4sRVdyLENvLHR3LHQyLElXcixzMyxPdGUsc1BhLHJ3LGdQYSx4UGEsVldyLGpXcixVV3IscjIsV1dyLEY5LHVkLEI5LE1mZSxEbXQsYXcsWnAsQ2ZlLHpmZSwkbXQsRnRlLEg5LEVtdCxKV3IsT1BhLGdHcixiR3IsVm10LFZvLGpvLFZQYSxqbXQsdkdyLEttdCx0TmEscXRlLERmZSxsTmEsJGZlLHE5LFptdCx3YyxudyxWOSxVbyx6byxBZmUscE5hLGZOYSxKbXQsZTV0LExHcixER3IseU5hLENOYSx6TmEsb3cscjV0PXUoKCk9PnthMygpO2pwKCk7V3AoKTtQbj1pKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wOztlKyspaWYodD10LnByZXZpb3VzU2libGluZywhdClyZXR1cm4gZX0sImRvbUluZGV4IiksZXc9aShmdW5jdGlvbih0KXtsZXQgZT10LmFzc2lnbmVkU2xvdHx8dC5wYXJlbnROb2RlO3JldHVybiBlJiZlLm5vZGVUeXBlPT0xMT9lLmhvc3Q6ZX0sInBhcmVudE5vZGUiKSxNbXQ9bnVsbCxpMz1pKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1NbXR8fChNbXQ9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSk7cmV0dXJuIGEuc2V0RW5kKHQscj8/dC5ub2RlVmFsdWUubGVuZ3RoKSxhLnNldFN0YXJ0KHQsZXx8MCksYX0sInRleHRSYW5nZSIpLFhJYT1pKGZ1bmN0aW9uKCl7TW10PW51bGx9LCJjbGVhclJldXNlZFJhbmdlIiksTzk9aShmdW5jdGlvbih0LGUscixhKXtyZXR1cm4gciYmKERXcih0LGUscixhLC0xKXx8RFdyKHQsZSxyLGEsMSkpfSwiaXNFcXVpdmFsZW50UG9zaXRpb24iKSxKSWE9L14oaW1nfGJyfGlucHV0fHRleHRhcmVhfGhyKSQvaTtpKERXciwic2NhbkZvciIpO2koSmwsIm5vZGVTaXplIik7aShlUGEsInRleHROb2RlQmVmb3JlJDEiKTtpKHRQYSwidGV4dE5vZGVBZnRlciQxIik7aShyUGEsImlzT25FZGdlIik7aShOdGUsImhhc0Jsb2NrRGVzYyIpO1NmZT1pKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZvY3VzTm9kZSYmTzkodC5mb2N1c05vZGUsdC5mb2N1c09mZnNldCx0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQpfSwic2VsZWN0aW9uQ29sbGFwc2VkIik7aShSOSwia2V5RXZlbnQiKTtpKGFQYSwiZGVlcEFjdGl2ZUVsZW1lbnQiKTtpKGlQYSwiY2FyZXRGcm9tUG9pbnQiKTtkZD10eXBlb2YgbmF2aWdhdG9yPCJ1Ij9uYXZpZ2F0b3I6bnVsbCwkV3I9dHlwZW9mIGRvY3VtZW50PCJ1Ij9kb2N1bWVudDpudWxsLEdwPWRkJiZkZC51c2VyQWdlbnR8fCIiLENtdD0vRWRnZVwvKFxkKykvLmV4ZWMoR3ApLEFXcj0vTVNJRSBcZC8uZXhlYyhHcCksem10PS9UcmlkZW50XC8oPzpbNy05XXxcZHsyLH0pXC4uKnJ2OihcZCspLy5leGVjKEdwKSxFMT0hIShBV3J8fHptdHx8Q210KSxZcD1BV3I/ZG9jdW1lbnQuZG9jdW1lbnRNb2RlOnptdD8rem10WzFdOkNtdD8rQ210WzFdOjAsZTI9IUUxJiYvZ2Vja29cLyhcZCspL2kudGVzdChHcCk7ZTImJisoL0ZpcmVmb3hcLyhcZCspLy5leGVjKEdwKXx8WzAsMF0pWzFdO19tdD0hRTEmJi9DaHJvbWVcLyhcZCspLy5leGVjKEdwKSxObj0hIV9tdCxFV3I9X210PytfbXRbMV06MCxDbz0hRTEmJiEhZGQmJi9BcHBsZSBDb21wdXRlci8udGVzdChkZC52ZW5kb3IpLHR3PUNvJiYoL01vYmlsZVwvXHcrLy50ZXN0KEdwKXx8ISFkZCYmZGQubWF4VG91Y2hQb2ludHM+MiksdDI9dHd8fChkZD8vTWFjLy50ZXN0KGRkLnBsYXRmb3JtKTohMSksSVdyPWRkPy9XaW4vLnRlc3QoZGQucGxhdGZvcm0pOiExLHMzPS9BbmRyb2lkIFxkLy50ZXN0KEdwKSxPdGU9ISEkV3ImJiJ3ZWJraXRGb250U21vb3RoaW5nImluICRXci5kb2N1bWVudEVsZW1lbnQuc3R5bGUsc1BhPU90ZT8rKC9cYkFwcGxlV2ViS2l0XC8oXGQrKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KXx8WzAsMF0pWzFdOjA7aShuUGEsIndpbmRvd1JlY3QiKTtpKG4zLCJnZXRTaWRlIik7aShvUGEsImNsaWVudFJlY3QiKTtpKFBXciwic2Nyb2xsUmVjdEludG9WaWV3Iik7aShsUGEsInN0b3JlU2Nyb2xsUG9zIik7aShOV3IsInNjcm9sbFN0YWNrIik7aShjUGEsInJlc2V0U2Nyb2xsUG9zIik7aShPV3IsInJlc3RvcmVTY3JvbGxTdGFjayIpO3J3PW51bGw7aShkUGEsImZvY3VzUHJldmVudFNjcm9sbCIpO2koUldyLCJmaW5kT2Zmc2V0SW5Ob2RlIik7aSh1UGEsImZpbmRPZmZzZXRJblRleHQiKTtpKFRtdCwiaW5SZWN0Iik7aShwUGEsInRhcmdldEtsdWRnZSIpO2koZlBhLCJwb3NGcm9tRWxlbWVudCIpO2koaFBhLCJwb3NGcm9tQ2FyZXQiKTtpKEZXciwiZWxlbWVudEZyb21Qb2ludCIpO2kobVBhLCJwb3NBdENvb3JkcyIpO2koQldyLCJub25aZXJvIik7aShLcCwic2luZ2xlUmVjdCIpO2dQYT0vW1x1MDU5MC1cdTA1ZjRcdTA2MDAtXHUwNmZmXHUwNzAwLVx1MDhhY10vO2koSFdyLCJjb29yZHNBdFBvcyIpO2koUnRlLCJmbGF0dGVuViIpO2koTG10LCJmbGF0dGVuSCIpO2kocVdyLCJ3aXRoRmx1c2hlZFN0YXRlIik7aShiUGEsImVuZE9mVGV4dGJsb2NrVmVydGljYWwiKTt4UGE9L1tcdTA1OTAtXHUwOGFjXS87aSh2UGEsImVuZE9mVGV4dGJsb2NrSG9yaXpvbnRhbCIpO1ZXcj1udWxsLGpXcj1udWxsLFVXcj0hMTtpKHlQYSwiZW5kT2ZUZXh0YmxvY2siKTtyMj0wLFdXcj0xLEY5PTIsdWQ9MyxCOT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUscixhLHMpe3RoaXMucGFyZW50PWUsdGhpcy5jaGlsZHJlbj1yLHRoaXMuZG9tPWEsdGhpcy5jb250ZW50RE9NPXMsdGhpcy5kaXJ0eT1yMixhLnBtVmlld0Rlc2M9dGhpc31tYXRjaGVzV2lkZ2V0KGUpe3JldHVybiExfW1hdGNoZXNNYXJrKGUpe3JldHVybiExfW1hdGNoZXNOb2RlKGUscixhKXtyZXR1cm4hMX1tYXRjaGVzSGFjayhlKXtyZXR1cm4hMX1wYXJzZVJ1bGUoKXtyZXR1cm4gbnVsbH1zdG9wRXZlbnQoZSl7cmV0dXJuITF9Z2V0IHNpemUoKXtsZXQgZT0wO2ZvcihsZXQgcj0wO3I8dGhpcy5jaGlsZHJlbi5sZW5ndGg7cisrKWUrPXRoaXMuY2hpbGRyZW5bcl0uc2l6ZTtyZXR1cm4gZX1nZXQgYm9yZGVyKCl7cmV0dXJuIDB9ZGVzdHJveSgpe3RoaXMucGFyZW50PXZvaWQgMCx0aGlzLmRvbS5wbVZpZXdEZXNjPT10aGlzJiYodGhpcy5kb20ucG1WaWV3RGVzYz12b2lkIDApO2ZvcihsZXQgZT0wO2U8dGhpcy5jaGlsZHJlbi5sZW5ndGg7ZSsrKXRoaXMuY2hpbGRyZW5bZV0uZGVzdHJveSgpfXBvc0JlZm9yZUNoaWxkKGUpe2ZvcihsZXQgcj0wLGE9dGhpcy5wb3NBdFN0YXJ0OztyKyspe2xldCBzPXRoaXMuY2hpbGRyZW5bcl07aWYocz09ZSlyZXR1cm4gYTthKz1zLnNpemV9fWdldCBwb3NCZWZvcmUoKXtyZXR1cm4gdGhpcy5wYXJlbnQucG9zQmVmb3JlQ2hpbGQodGhpcyl9Z2V0IHBvc0F0U3RhcnQoKXtyZXR1cm4gdGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQucG9zQmVmb3JlQ2hpbGQodGhpcykrdGhpcy5ib3JkZXI6MH1nZXQgcG9zQWZ0ZXIoKXtyZXR1cm4gdGhpcy5wb3NCZWZvcmUrdGhpcy5zaXplfWdldCBwb3NBdEVuZCgpe3JldHVybiB0aGlzLnBvc0F0U3RhcnQrdGhpcy5zaXplLTIqdGhpcy5ib3JkZXJ9bG9jYWxQb3NGcm9tRE9NKGUscixhKXtpZih0aGlzLmNvbnRlbnRET00mJnRoaXMuY29udGVudERPTS5jb250YWlucyhlLm5vZGVUeXBlPT0xP2U6ZS5wYXJlbnROb2RlKSlpZihhPDApe2xldCBuLG87aWYoZT09dGhpcy5jb250ZW50RE9NKW49ZS5jaGlsZE5vZGVzW3ItMV07ZWxzZXtmb3IoO2UucGFyZW50Tm9kZSE9dGhpcy5jb250ZW50RE9NOyllPWUucGFyZW50Tm9kZTtuPWUucHJldmlvdXNTaWJsaW5nfWZvcig7biYmISgobz1uLnBtVmlld0Rlc2MpJiZvLnBhcmVudD09dGhpcyk7KW49bi5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIG4/dGhpcy5wb3NCZWZvcmVDaGlsZChvKStvLnNpemU6dGhpcy5wb3NBdFN0YXJ0fWVsc2V7bGV0IG4sbztpZihlPT10aGlzLmNvbnRlbnRET00pbj1lLmNoaWxkTm9kZXNbcl07ZWxzZXtmb3IoO2UucGFyZW50Tm9kZSE9dGhpcy5jb250ZW50RE9NOyllPWUucGFyZW50Tm9kZTtuPWUubmV4dFNpYmxpbmd9Zm9yKDtuJiYhKChvPW4ucG1WaWV3RGVzYykmJm8ucGFyZW50PT10aGlzKTspbj1uLm5leHRTaWJsaW5nO3JldHVybiBuP3RoaXMucG9zQmVmb3JlQ2hpbGQobyk6dGhpcy5wb3NBdEVuZH1sZXQgcztpZihlPT10aGlzLmRvbSYmdGhpcy5jb250ZW50RE9NKXM9cj5Qbih0aGlzLmNvbnRlbnRET00pO2Vsc2UgaWYodGhpcy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00hPXRoaXMuZG9tJiZ0aGlzLmRvbS5jb250YWlucyh0aGlzLmNvbnRlbnRET00pKXM9ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzLmNvbnRlbnRET00pJjI7ZWxzZSBpZih0aGlzLmRvbS5maXJzdENoaWxkKXtpZihyPT0wKWZvcihsZXQgbj1lOztuPW4ucGFyZW50Tm9kZSl7aWYobj09dGhpcy5kb20pe3M9ITE7YnJlYWt9aWYobi5wcmV2aW91c1NpYmxpbmcpYnJlYWt9aWYocz09bnVsbCYmcj09ZS5jaGlsZE5vZGVzLmxlbmd0aClmb3IobGV0IG49ZTs7bj1uLnBhcmVudE5vZGUpe2lmKG49PXRoaXMuZG9tKXtzPSEwO2JyZWFrfWlmKG4ubmV4dFNpYmxpbmcpYnJlYWt9fXJldHVybiBzPz9hPjA/dGhpcy5wb3NBdEVuZDp0aGlzLnBvc0F0U3RhcnR9bmVhcmVzdERlc2MoZSxyPSExKXtmb3IobGV0IGE9ITAscz1lO3M7cz1zLnBhcmVudE5vZGUpe2xldCBuPXRoaXMuZ2V0RGVzYyhzKSxvO2lmKG4mJighcnx8bi5ub2RlKSlpZihhJiYobz1uLm5vZGVET00pJiYhKG8ubm9kZVR5cGU9PTE/by5jb250YWlucyhlLm5vZGVUeXBlPT0xP2U6ZS5wYXJlbnROb2RlKTpvPT1lKSlhPSExO2Vsc2UgcmV0dXJuIG59fWdldERlc2MoZSl7bGV0IHI9ZS5wbVZpZXdEZXNjO2ZvcihsZXQgYT1yO2E7YT1hLnBhcmVudClpZihhPT10aGlzKXJldHVybiByfXBvc0Zyb21ET00oZSxyLGEpe2ZvcihsZXQgcz1lO3M7cz1zLnBhcmVudE5vZGUpe2xldCBuPXRoaXMuZ2V0RGVzYyhzKTtpZihuKXJldHVybiBuLmxvY2FsUG9zRnJvbURPTShlLHIsYSl9cmV0dXJuLTF9ZGVzY0F0KGUpe2ZvcihsZXQgcj0wLGE9MDtyPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3IrKyl7bGV0IHM9dGhpcy5jaGlsZHJlbltyXSxuPWErcy5zaXplO2lmKGE9PWUmJm4hPWEpe2Zvcig7IXMuYm9yZGVyJiZzLmNoaWxkcmVuLmxlbmd0aDspZm9yKGxldCBvPTA7bzxzLmNoaWxkcmVuLmxlbmd0aDtvKyspe2xldCBsPXMuY2hpbGRyZW5bb107aWYobC5zaXplKXtzPWw7YnJlYWt9fXJldHVybiBzfWlmKGU8bilyZXR1cm4gcy5kZXNjQXQoZS1hLXMuYm9yZGVyKTthPW59fWRvbUZyb21Qb3MoZSxyKXtpZighdGhpcy5jb250ZW50RE9NKXJldHVybntub2RlOnRoaXMuZG9tLG9mZnNldDowLGF0b206ZSsxfTtsZXQgYT0wLHM9MDtmb3IobGV0IG49MDthPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2ErKyl7bGV0IG89dGhpcy5jaGlsZHJlblthXSxsPW4rby5zaXplO2lmKGw+ZXx8byBpbnN0YW5jZW9mIHpmZSl7cz1lLW47YnJlYWt9bj1sfWlmKHMpcmV0dXJuIHRoaXMuY2hpbGRyZW5bYV0uZG9tRnJvbVBvcyhzLXRoaXMuY2hpbGRyZW5bYV0uYm9yZGVyLHIpO2ZvcihsZXQgbjthJiYhKG49dGhpcy5jaGlsZHJlblthLTFdKS5zaXplJiZuIGluc3RhbmNlb2YgTWZlJiZuLnNpZGU+PTA7YS0tKTtpZihyPD0wKXtsZXQgbixvPSEwO2Zvcig7bj1hP3RoaXMuY2hpbGRyZW5bYS0xXTpudWxsLCEoIW58fG4uZG9tLnBhcmVudE5vZGU9PXRoaXMuY29udGVudERPTSk7YS0tLG89ITEpO3JldHVybiBuJiZyJiZvJiYhbi5ib3JkZXImJiFuLmRvbUF0b20/bi5kb21Gcm9tUG9zKG4uc2l6ZSxyKTp7bm9kZTp0aGlzLmNvbnRlbnRET00sb2Zmc2V0Om4/UG4obi5kb20pKzE6MH19ZWxzZXtsZXQgbixvPSEwO2Zvcig7bj1hPHRoaXMuY2hpbGRyZW4ubGVuZ3RoP3RoaXMuY2hpbGRyZW5bYV06bnVsbCwhKCFufHxuLmRvbS5wYXJlbnROb2RlPT10aGlzLmNvbnRlbnRET00pO2ErKyxvPSExKTtyZXR1cm4gbiYmbyYmIW4uYm9yZGVyJiYhbi5kb21BdG9tP24uZG9tRnJvbVBvcygwLHIpOntub2RlOnRoaXMuY29udGVudERPTSxvZmZzZXQ6bj9QbihuLmRvbSk6dGhpcy5jb250ZW50RE9NLmNoaWxkTm9kZXMubGVuZ3RofX19cGFyc2VSYW5nZShlLHIsYT0wKXtpZih0aGlzLmNoaWxkcmVuLmxlbmd0aD09MClyZXR1cm57bm9kZTp0aGlzLmNvbnRlbnRET00sZnJvbTplLHRvOnIsZnJvbU9mZnNldDowLHRvT2Zmc2V0OnRoaXMuY29udGVudERPTS5jaGlsZE5vZGVzLmxlbmd0aH07bGV0IHM9LTEsbj0tMTtmb3IobGV0IG89YSxsPTA7O2wrKyl7bGV0IGM9dGhpcy5jaGlsZHJlbltsXSxkPW8rYy5zaXplO2lmKHM9PS0xJiZlPD1kKXtsZXQgZj1vK2MuYm9yZGVyO2lmKGU+PWYmJnI8PWQtYy5ib3JkZXImJmMubm9kZSYmYy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00uY29udGFpbnMoYy5jb250ZW50RE9NKSlyZXR1cm4gYy5wYXJzZVJhbmdlKGUscixmKTtlPW87Zm9yKGxldCBwPWw7cD4wO3AtLSl7bGV0IGg9dGhpcy5jaGlsZHJlbltwLTFdO2lmKGguc2l6ZSYmaC5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NJiYhaC5lbXB0eUNoaWxkQXQoMSkpe3M9UG4oaC5kb20pKzE7YnJlYWt9ZS09aC5zaXplfXM9PS0xJiYocz0wKX1pZihzPi0xJiYoZD5yfHxsPT10aGlzLmNoaWxkcmVuLmxlbmd0aC0xKSl7cj1kO2ZvcihsZXQgZj1sKzE7Zjx0aGlzLmNoaWxkcmVuLmxlbmd0aDtmKyspe2xldCBwPXRoaXMuY2hpbGRyZW5bZl07aWYocC5zaXplJiZwLmRvbS5wYXJlbnROb2RlPT10aGlzLmNvbnRlbnRET00mJiFwLmVtcHR5Q2hpbGRBdCgtMSkpe249UG4ocC5kb20pO2JyZWFrfXIrPXAuc2l6ZX1uPT0tMSYmKG49dGhpcy5jb250ZW50RE9NLmNoaWxkTm9kZXMubGVuZ3RoKTticmVha31vPWR9cmV0dXJue25vZGU6dGhpcy5jb250ZW50RE9NLGZyb206ZSx0bzpyLGZyb21PZmZzZXQ6cyx0b09mZnNldDpufX1lbXB0eUNoaWxkQXQoZSl7aWYodGhpcy5ib3JkZXJ8fCF0aGlzLmNvbnRlbnRET018fCF0aGlzLmNoaWxkcmVuLmxlbmd0aClyZXR1cm4hMTtsZXQgcj10aGlzLmNoaWxkcmVuW2U8MD8wOnRoaXMuY2hpbGRyZW4ubGVuZ3RoLTFdO3JldHVybiByLnNpemU9PTB8fHIuZW1wdHlDaGlsZEF0KGUpfWRvbUFmdGVyUG9zKGUpe2xldHtub2RlOnIsb2Zmc2V0OmF9PXRoaXMuZG9tRnJvbVBvcyhlLDApO2lmKHIubm9kZVR5cGUhPTF8fGE9PXIuY2hpbGROb2Rlcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIG5vZGUgYWZ0ZXIgcG9zICIrZSk7cmV0dXJuIHIuY2hpbGROb2Rlc1thXX1zZXRTZWxlY3Rpb24oZSxyLGEscz0hMSl7bGV0IG49TWF0aC5taW4oZSxyKSxvPU1hdGgubWF4KGUscik7Zm9yKGxldCBtPTAsdj0wO208dGhpcy5jaGlsZHJlbi5sZW5ndGg7bSsrKXtsZXQgYj10aGlzLmNoaWxkcmVuW21dLGc9ditiLnNpemU7aWYobj52JiZvPGcpcmV0dXJuIGIuc2V0U2VsZWN0aW9uKGUtdi1iLmJvcmRlcixyLXYtYi5ib3JkZXIsYSxzKTt2PWd9bGV0IGw9dGhpcy5kb21Gcm9tUG9zKGUsZT8tMToxKSxjPXI9PWU/bDp0aGlzLmRvbUZyb21Qb3MocixyPy0xOjEpLGQ9YS5yb290LmdldFNlbGVjdGlvbigpLGY9YS5kb21TZWxlY3Rpb25SYW5nZSgpLHA9ITE7aWYoKGUyfHxDbykmJmU9PXIpe2xldHtub2RlOm0sb2Zmc2V0OnZ9PWw7aWYobS5ub2RlVHlwZT09Myl7aWYocD0hISh2JiZtLm5vZGVWYWx1ZVt2LTFdPT1gCmApLHAmJnY9PW0ubm9kZVZhbHVlLmxlbmd0aClmb3IobGV0IGI9bSxnO2I7Yj1iLnBhcmVudE5vZGUpe2lmKGc9Yi5uZXh0U2libGluZyl7Zy5ub2RlTmFtZT09IkJSIiYmKGw9Yz17bm9kZTpnLnBhcmVudE5vZGUsb2Zmc2V0OlBuKGcpKzF9KTticmVha31sZXQgeT1iLnBtVmlld0Rlc2M7aWYoeSYmeS5ub2RlJiZ5Lm5vZGUuaXNCbG9jaylicmVha319ZWxzZXtsZXQgYj1tLmNoaWxkTm9kZXNbdi0xXTtwPWImJihiLm5vZGVOYW1lPT0iQlIifHxiLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIil9fWlmKGUyJiZmLmZvY3VzTm9kZSYmZi5mb2N1c05vZGUhPWMubm9kZSYmZi5mb2N1c05vZGUubm9kZVR5cGU9PTEpe2xldCBtPWYuZm9jdXNOb2RlLmNoaWxkTm9kZXNbZi5mb2N1c09mZnNldF07bSYmbS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSImJihzPSEwKX1pZighKHN8fHAmJkNvKSYmTzkobC5ub2RlLGwub2Zmc2V0LGYuYW5jaG9yTm9kZSxmLmFuY2hvck9mZnNldCkmJk85KGMubm9kZSxjLm9mZnNldCxmLmZvY3VzTm9kZSxmLmZvY3VzT2Zmc2V0KSlyZXR1cm47bGV0IGg9ITE7aWYoKGQuZXh0ZW5kfHxlPT1yKSYmIShwJiZlMikpe2QuY29sbGFwc2UobC5ub2RlLGwub2Zmc2V0KTt0cnl7ZSE9ciYmZC5leHRlbmQoYy5ub2RlLGMub2Zmc2V0KSxoPSEwfWNhdGNoe319aWYoIWgpe2lmKGU+cil7bGV0IHY9bDtsPWMsYz12fWxldCBtPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bS5zZXRFbmQoYy5ub2RlLGMub2Zmc2V0KSxtLnNldFN0YXJ0KGwubm9kZSxsLm9mZnNldCksZC5yZW1vdmVBbGxSYW5nZXMoKSxkLmFkZFJhbmdlKG0pfX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4hdGhpcy5jb250ZW50RE9NJiZlLnR5cGUhPSJzZWxlY3Rpb24ifWdldCBjb250ZW50TG9zdCgpe3JldHVybiB0aGlzLmNvbnRlbnRET00mJnRoaXMuY29udGVudERPTSE9dGhpcy5kb20mJiF0aGlzLmRvbS5jb250YWlucyh0aGlzLmNvbnRlbnRET00pfW1hcmtEaXJ0eShlLHIpe2ZvcihsZXQgYT0wLHM9MDtzPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3MrKyl7bGV0IG49dGhpcy5jaGlsZHJlbltzXSxvPWErbi5zaXplO2lmKGE9PW8/ZTw9byYmcj49YTplPG8mJnI+YSl7bGV0IGw9YStuLmJvcmRlcixjPW8tbi5ib3JkZXI7aWYoZT49bCYmcjw9Yyl7dGhpcy5kaXJ0eT1lPT1hfHxyPT1vP0Y5OldXcixlPT1sJiZyPT1jJiYobi5jb250ZW50TG9zdHx8bi5kb20ucGFyZW50Tm9kZSE9dGhpcy5jb250ZW50RE9NKT9uLmRpcnR5PXVkOm4ubWFya0RpcnR5KGUtbCxyLWwpO3JldHVybn1lbHNlIG4uZGlydHk9bi5kb209PW4uY29udGVudERPTSYmbi5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NJiYhbi5jaGlsZHJlbi5sZW5ndGg/Rjk6dWR9YT1vfXRoaXMuZGlydHk9Rjl9bWFya1BhcmVudHNEaXJ0eSgpe2xldCBlPTE7Zm9yKGxldCByPXRoaXMucGFyZW50O3I7cj1yLnBhcmVudCxlKyspe2xldCBhPWU9PTE/Rjk6V1dyO3IuZGlydHk8YSYmKHIuZGlydHk9YSl9fWdldCBkb21BdG9tKCl7cmV0dXJuITF9Z2V0IGlnbm9yZUZvckNvb3Jkcygpe3JldHVybiExfWdldCBpZ25vcmVGb3JTZWxlY3Rpb24oKXtyZXR1cm4hMX1pc1RleHQoZSl7cmV0dXJuITF9fSxNZmU9Y2xhc3MgZXh0ZW5kcyBCOXtzdGF0aWN7aSh0aGlzLCJXaWRnZXRWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUscixhLHMpe2xldCBuLG89ci50eXBlLnRvRE9NO2lmKHR5cGVvZiBvPT0iZnVuY3Rpb24iJiYobz1vKGEsKCk9PntpZighbilyZXR1cm4gcztpZihuLnBhcmVudClyZXR1cm4gbi5wYXJlbnQucG9zQmVmb3JlQ2hpbGQobil9KSksIXIudHlwZS5zcGVjLnJhdyl7aWYoby5ub2RlVHlwZSE9MSl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2wuYXBwZW5kQ2hpbGQobyksbz1sfW8uY29udGVudEVkaXRhYmxlPSJmYWxzZSIsby5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci13aWRnZXQiKX1zdXBlcihlLFtdLG8sbnVsbCksdGhpcy53aWRnZXQ9cix0aGlzLndpZGdldD1yLG49dGhpc31tYXRjaGVzV2lkZ2V0KGUpe3JldHVybiB0aGlzLmRpcnR5PT1yMiYmZS50eXBlLmVxKHRoaXMud2lkZ2V0LnR5cGUpfXBhcnNlUnVsZSgpe3JldHVybntpZ25vcmU6ITB9fXN0b3BFdmVudChlKXtsZXQgcj10aGlzLndpZGdldC5zcGVjLnN0b3BFdmVudDtyZXR1cm4gcj9yKGUpOiExfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiBlLnR5cGUhPSJzZWxlY3Rpb24ifHx0aGlzLndpZGdldC5zcGVjLmlnbm9yZVNlbGVjdGlvbn1kZXN0cm95KCl7dGhpcy53aWRnZXQudHlwZS5kZXN0cm95KHRoaXMuZG9tKSxzdXBlci5kZXN0cm95KCl9Z2V0IGRvbUF0b20oKXtyZXR1cm4hMH1nZXQgaWdub3JlRm9yU2VsZWN0aW9uKCl7cmV0dXJuISF0aGlzLndpZGdldC50eXBlLnNwZWMucmVsYXhlZFNpZGV9Z2V0IHNpZGUoKXtyZXR1cm4gdGhpcy53aWRnZXQudHlwZS5zaWRlfX0sRG10PWNsYXNzIGV4dGVuZHMgQjl7c3RhdGlje2kodGhpcywiQ29tcG9zaXRpb25WaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUscixhLHMpe3N1cGVyKGUsW10scixudWxsKSx0aGlzLnRleHRET009YSx0aGlzLnRleHQ9c31nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnRleHQubGVuZ3RofWxvY2FsUG9zRnJvbURPTShlLHIpe3JldHVybiBlIT10aGlzLnRleHRET00/dGhpcy5wb3NBdFN0YXJ0KyhyP3RoaXMuc2l6ZTowKTp0aGlzLnBvc0F0U3RhcnQrcn1kb21Gcm9tUG9zKGUpe3JldHVybntub2RlOnRoaXMudGV4dERPTSxvZmZzZXQ6ZX19aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIGUudHlwZT09PSJjaGFyYWN0ZXJEYXRhIiYmZS50YXJnZXQubm9kZVZhbHVlPT1lLm9sZFZhbHVlfX0sYXc9Y2xhc3MgdCBleHRlbmRzIEI5e3N0YXRpY3tpKHRoaXMsIk1hcmtWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUscixhLHMsbil7c3VwZXIoZSxbXSxhLHMpLHRoaXMubWFyaz1yLHRoaXMuc3BlYz1ufXN0YXRpYyBjcmVhdGUoZSxyLGEscyl7bGV0IG49cy5ub2RlVmlld3Nbci50eXBlLm5hbWVdLG89biYmbihyLHMsYSk7cmV0dXJuKCFvfHwhby5kb20pJiYobz1vZC5yZW5kZXJTcGVjKGRvY3VtZW50LHIudHlwZS5zcGVjLnRvRE9NKHIsYSksbnVsbCxyLmF0dHJzKSksbmV3IHQoZSxyLG8uZG9tLG8uY29udGVudERPTXx8by5kb20sbyl9cGFyc2VSdWxlKCl7cmV0dXJuIHRoaXMuZGlydHkmdWR8fHRoaXMubWFyay50eXBlLnNwZWMucmVwYXJzZUluVmlldz9udWxsOnttYXJrOnRoaXMubWFyay50eXBlLm5hbWUsYXR0cnM6dGhpcy5tYXJrLmF0dHJzLGNvbnRlbnRFbGVtZW50OnRoaXMuY29udGVudERPTX19bWF0Y2hlc01hcmsoZSl7cmV0dXJuIHRoaXMuZGlydHkhPXVkJiZ0aGlzLm1hcmsuZXEoZSl9bWFya0RpcnR5KGUscil7aWYoc3VwZXIubWFya0RpcnR5KGUsciksdGhpcy5kaXJ0eSE9cjIpe2xldCBhPXRoaXMucGFyZW50O2Zvcig7IWEubm9kZTspYT1hLnBhcmVudDthLmRpcnR5PHRoaXMuZGlydHkmJihhLmRpcnR5PXRoaXMuZGlydHkpLHRoaXMuZGlydHk9cjJ9fXNsaWNlKGUscixhKXtsZXQgcz10LmNyZWF0ZSh0aGlzLnBhcmVudCx0aGlzLm1hcmssITAsYSksbj10aGlzLmNoaWxkcmVuLG89dGhpcy5zaXplO3I8byYmKG49SW10KG4scixvLGEpKSxlPjAmJihuPUltdChuLDAsZSxhKSk7Zm9yKGxldCBsPTA7bDxuLmxlbmd0aDtsKyspbltsXS5wYXJlbnQ9cztyZXR1cm4gcy5jaGlsZHJlbj1uLHN9aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIHRoaXMuc3BlYy5pZ25vcmVNdXRhdGlvbj90aGlzLnNwZWMuaWdub3JlTXV0YXRpb24oZSk6c3VwZXIuaWdub3JlTXV0YXRpb24oZSl9ZGVzdHJveSgpe3RoaXMuc3BlYy5kZXN0cm95JiZ0aGlzLnNwZWMuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX19LFpwPWNsYXNzIHQgZXh0ZW5kcyBCOXtzdGF0aWN7aSh0aGlzLCJOb2RlVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHIsYSxzLG4sbyxsLGMsZCl7c3VwZXIoZSxbXSxuLG8pLHRoaXMubm9kZT1yLHRoaXMub3V0ZXJEZWNvPWEsdGhpcy5pbm5lckRlY289cyx0aGlzLm5vZGVET009bH1zdGF0aWMgY3JlYXRlKGUscixhLHMsbixvKXtsZXQgbD1uLm5vZGVWaWV3c1tyLnR5cGUubmFtZV0sYyxkPWwmJmwocixuLCgpPT57aWYoIWMpcmV0dXJuIG87aWYoYy5wYXJlbnQpcmV0dXJuIGMucGFyZW50LnBvc0JlZm9yZUNoaWxkKGMpfSxhLHMpLGY9ZCYmZC5kb20scD1kJiZkLmNvbnRlbnRET007aWYoci5pc1RleHQpe2lmKCFmKWY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoci50ZXh0KTtlbHNlIGlmKGYubm9kZVR5cGUhPTMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRleHQgbXVzdCBiZSByZW5kZXJlZCBhcyBhIERPTSB0ZXh0IG5vZGUiKX1lbHNlIGZ8fCh7ZG9tOmYsY29udGVudERPTTpwfT1vZC5yZW5kZXJTcGVjKGRvY3VtZW50LHIudHlwZS5zcGVjLnRvRE9NKHIpLG51bGwsci5hdHRycykpOyFwJiYhci5pc1RleHQmJmYubm9kZU5hbWUhPSJCUiImJihmLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fChmLmNvbnRlbnRFZGl0YWJsZT0iZmFsc2UiKSxyLnR5cGUuc3BlYy5kcmFnZ2FibGUmJihmLmRyYWdnYWJsZT0hMCkpO2xldCBoPWY7cmV0dXJuIGY9WldyKGYsYSxyKSxkP2M9bmV3ICRtdChlLHIsYSxzLGYscHx8bnVsbCxoLGQsbixvKzEpOnIuaXNUZXh0P25ldyBDZmUoZSxyLGEscyxmLGgsbik6bmV3IHQoZSxyLGEscyxmLHB8fG51bGwsaCxuLG8rMSl9cGFyc2VSdWxlKCl7aWYodGhpcy5ub2RlLnR5cGUuc3BlYy5yZXBhcnNlSW5WaWV3KXJldHVybiBudWxsO2xldCBlPXtub2RlOnRoaXMubm9kZS50eXBlLm5hbWUsYXR0cnM6dGhpcy5ub2RlLmF0dHJzfTtpZih0aGlzLm5vZGUudHlwZS53aGl0ZXNwYWNlPT0icHJlIiYmKGUucHJlc2VydmVXaGl0ZXNwYWNlPSJmdWxsIiksIXRoaXMuY29udGVudERPTSllLmdldENvbnRlbnQ9KCk9PnRoaXMubm9kZS5jb250ZW50O2Vsc2UgaWYoIXRoaXMuY29udGVudExvc3QpZS5jb250ZW50RWxlbWVudD10aGlzLmNvbnRlbnRET007ZWxzZXtmb3IobGV0IHI9dGhpcy5jaGlsZHJlbi5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IGE9dGhpcy5jaGlsZHJlbltyXTtpZih0aGlzLmRvbS5jb250YWlucyhhLmRvbS5wYXJlbnROb2RlKSl7ZS5jb250ZW50RWxlbWVudD1hLmRvbS5wYXJlbnROb2RlO2JyZWFrfX1lLmNvbnRlbnRFbGVtZW50fHwoZS5nZXRDb250ZW50PSgpPT5KZS5lbXB0eSl9cmV0dXJuIGV9bWF0Y2hlc05vZGUoZSxyLGEpe3JldHVybiB0aGlzLmRpcnR5PT1yMiYmZS5lcSh0aGlzLm5vZGUpJiZfZmUocix0aGlzLm91dGVyRGVjbykmJmEuZXEodGhpcy5pbm5lckRlY28pfWdldCBzaXplKCl7cmV0dXJuIHRoaXMubm9kZS5ub2RlU2l6ZX1nZXQgYm9yZGVyKCl7cmV0dXJuIHRoaXMubm9kZS5pc0xlYWY/MDoxfXVwZGF0ZUNoaWxkcmVuKGUscil7bGV0IGE9dGhpcy5ub2RlLmlubGluZUNvbnRlbnQscz1yLG49ZS5jb21wb3Npbmc/dGhpcy5sb2NhbENvbXBvc2l0aW9uSW5mbyhlLHIpOm51bGwsbz1uJiZuLnBvcz4tMT9uOm51bGwsbD1uJiZuLnBvczwwLGM9bmV3IEVtdCh0aGlzLG8mJm8ubm9kZSxlKTtNUGEodGhpcy5ub2RlLHRoaXMuaW5uZXJEZWNvLChkLGYscCk9PntkLnNwZWMubWFya3M/Yy5zeW5jVG9NYXJrcyhkLnNwZWMubWFya3MsYSxlLGYpOmQudHlwZS5zaWRlPj0wJiYhcCYmYy5zeW5jVG9NYXJrcyhmPT10aGlzLm5vZGUuY2hpbGRDb3VudD9oYS5ub25lOnRoaXMubm9kZS5jaGlsZChmKS5tYXJrcyxhLGUsZiksYy5wbGFjZVdpZGdldChkLGUscyl9LChkLGYscCxoKT0+e2Muc3luY1RvTWFya3MoZC5tYXJrcyxhLGUsaCk7bGV0IG07Yy5maW5kTm9kZU1hdGNoKGQsZixwLGgpfHxsJiZlLnN0YXRlLnNlbGVjdGlvbi5mcm9tPnMmJmUuc3RhdGUuc2VsZWN0aW9uLnRvPHMrZC5ub2RlU2l6ZSYmKG09Yy5maW5kSW5kZXhXaXRoQ2hpbGQobi5ub2RlKSk+LTEmJmMudXBkYXRlTm9kZUF0KGQsZixwLG0sZSl8fGMudXBkYXRlTmV4dE5vZGUoZCxmLHAsZSxoLHMpfHxjLmFkZE5vZGUoZCxmLHAsZSxzKSxzKz1kLm5vZGVTaXplfSksYy5zeW5jVG9NYXJrcyhbXSxhLGUsMCksdGhpcy5ub2RlLmlzVGV4dGJsb2NrJiZjLmFkZFRleHRibG9ja0hhY2tzKCksYy5kZXN0cm95UmVzdCgpLChjLmNoYW5nZWR8fHRoaXMuZGlydHk9PUY5KSYmKG8mJnRoaXMucHJvdGVjdExvY2FsQ29tcG9zaXRpb24oZSxvKSxZV3IodGhpcy5jb250ZW50RE9NLHRoaXMuY2hpbGRyZW4sZSksdHcmJkNQYSh0aGlzLmRvbSkpfWxvY2FsQ29tcG9zaXRpb25JbmZvKGUscil7bGV0e2Zyb206YSx0bzpzfT1lLnN0YXRlLnNlbGVjdGlvbjtpZighKGUuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgZXIpfHxhPHJ8fHM+cit0aGlzLm5vZGUuY29udGVudC5zaXplKXJldHVybiBudWxsO2xldCBuPWUuaW5wdXQuY29tcG9zaXRpb25Ob2RlO2lmKCFufHwhdGhpcy5kb20uY29udGFpbnMobi5wYXJlbnROb2RlKSlyZXR1cm4gbnVsbDtpZih0aGlzLm5vZGUuaW5saW5lQ29udGVudCl7bGV0IG89bi5ub2RlVmFsdWUsbD16UGEodGhpcy5ub2RlLmNvbnRlbnQsbyxhLXIscy1yKTtyZXR1cm4gbDwwP251bGw6e25vZGU6bixwb3M6bCx0ZXh0Om99fWVsc2UgcmV0dXJue25vZGU6bixwb3M6LTEsdGV4dDoiIn19cHJvdGVjdExvY2FsQ29tcG9zaXRpb24oZSx7bm9kZTpyLHBvczphLHRleHQ6c30pe2lmKHRoaXMuZ2V0RGVzYyhyKSlyZXR1cm47bGV0IG49cjtmb3IoO24ucGFyZW50Tm9kZSE9dGhpcy5jb250ZW50RE9NO249bi5wYXJlbnROb2RlKXtmb3IoO24ucHJldmlvdXNTaWJsaW5nOyluLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobi5wcmV2aW91c1NpYmxpbmcpO2Zvcig7bi5uZXh0U2libGluZzspbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4ubmV4dFNpYmxpbmcpO24ucG1WaWV3RGVzYyYmKG4ucG1WaWV3RGVzYz12b2lkIDApfWxldCBvPW5ldyBEbXQodGhpcyxuLHIscyk7ZS5pbnB1dC5jb21wb3NpdGlvbk5vZGVzLnB1c2gobyksdGhpcy5jaGlsZHJlbj1JbXQodGhpcy5jaGlsZHJlbixhLGErcy5sZW5ndGgsZSxvKX11cGRhdGUoZSxyLGEscyl7cmV0dXJuIHRoaXMuZGlydHk9PXVkfHwhZS5zYW1lTWFya3VwKHRoaXMubm9kZSk/ITE6KHRoaXMudXBkYXRlSW5uZXIoZSxyLGEscyksITApfXVwZGF0ZUlubmVyKGUscixhLHMpe3RoaXMudXBkYXRlT3V0ZXJEZWNvKHIpLHRoaXMubm9kZT1lLHRoaXMuaW5uZXJEZWNvPWEsdGhpcy5jb250ZW50RE9NJiZ0aGlzLnVwZGF0ZUNoaWxkcmVuKHMsdGhpcy5wb3NBdFN0YXJ0KSx0aGlzLmRpcnR5PXIyfXVwZGF0ZU91dGVyRGVjbyhlKXtpZihfZmUoZSx0aGlzLm91dGVyRGVjbykpcmV0dXJuO2xldCByPXRoaXMubm9kZURPTS5ub2RlVHlwZSE9MSxhPXRoaXMuZG9tO3RoaXMuZG9tPUtXcih0aGlzLmRvbSx0aGlzLm5vZGVET00sQW10KHRoaXMub3V0ZXJEZWNvLHRoaXMubm9kZSxyKSxBbXQoZSx0aGlzLm5vZGUscikpLHRoaXMuZG9tIT1hJiYoYS5wbVZpZXdEZXNjPXZvaWQgMCx0aGlzLmRvbS5wbVZpZXdEZXNjPXRoaXMpLHRoaXMub3V0ZXJEZWNvPWV9c2VsZWN0Tm9kZSgpe3RoaXMubm9kZURPTS5ub2RlVHlwZT09MSYmKHRoaXMubm9kZURPTS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1zZWxlY3RlZG5vZGUiKSwodGhpcy5jb250ZW50RE9NfHwhdGhpcy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUpJiYodGhpcy5ub2RlRE9NLmRyYWdnYWJsZT0hMCkpfWRlc2VsZWN0Tm9kZSgpe3RoaXMubm9kZURPTS5ub2RlVHlwZT09MSYmKHRoaXMubm9kZURPTS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1zZWxlY3RlZG5vZGUiKSwodGhpcy5jb250ZW50RE9NfHwhdGhpcy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUpJiZ0aGlzLm5vZGVET00ucmVtb3ZlQXR0cmlidXRlKCJkcmFnZ2FibGUiKSl9Z2V0IGRvbUF0b20oKXtyZXR1cm4gdGhpcy5ub2RlLmlzQXRvbX19O2koR1dyLCJkb2NWaWV3RGVzYyIpO0NmZT1jbGFzcyB0IGV4dGVuZHMgWnB7c3RhdGlje2kodGhpcywiVGV4dFZpZXdEZXNjIil9Y29uc3RydWN0b3IoZSxyLGEscyxuLG8sbCl7c3VwZXIoZSxyLGEscyxuLG51bGwsbyxsLDApfXBhcnNlUnVsZSgpe2xldCBlPXRoaXMubm9kZURPTS5wYXJlbnROb2RlO2Zvcig7ZSYmZSE9dGhpcy5kb20mJiFlLnBtSXNEZWNvOyllPWUucGFyZW50Tm9kZTtyZXR1cm57c2tpcDplfHwhMH19dXBkYXRlKGUscixhLHMpe3JldHVybiB0aGlzLmRpcnR5PT11ZHx8dGhpcy5kaXJ0eSE9cjImJiF0aGlzLmluUGFyZW50KCl8fCFlLnNhbWVNYXJrdXAodGhpcy5ub2RlKT8hMToodGhpcy51cGRhdGVPdXRlckRlY28ociksKHRoaXMuZGlydHkhPXIyfHxlLnRleHQhPXRoaXMubm9kZS50ZXh0KSYmZS50ZXh0IT10aGlzLm5vZGVET00ubm9kZVZhbHVlJiYodGhpcy5ub2RlRE9NLm5vZGVWYWx1ZT1lLnRleHQscy50cmFja1dyaXRlcz09dGhpcy5ub2RlRE9NJiYocy50cmFja1dyaXRlcz1udWxsKSksdGhpcy5ub2RlPWUsdGhpcy5kaXJ0eT1yMiwhMCl9aW5QYXJlbnQoKXtsZXQgZT10aGlzLnBhcmVudC5jb250ZW50RE9NO2ZvcihsZXQgcj10aGlzLm5vZGVET007cjtyPXIucGFyZW50Tm9kZSlpZihyPT1lKXJldHVybiEwO3JldHVybiExfWRvbUZyb21Qb3MoZSl7cmV0dXJue25vZGU6dGhpcy5ub2RlRE9NLG9mZnNldDplfX1sb2NhbFBvc0Zyb21ET00oZSxyLGEpe3JldHVybiBlPT10aGlzLm5vZGVET00/dGhpcy5wb3NBdFN0YXJ0K01hdGgubWluKHIsdGhpcy5ub2RlLnRleHQubGVuZ3RoKTpzdXBlci5sb2NhbFBvc0Zyb21ET00oZSxyLGEpfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiBlLnR5cGUhPSJjaGFyYWN0ZXJEYXRhIiYmZS50eXBlIT0ic2VsZWN0aW9uIn1zbGljZShlLHIsYSl7bGV0IHM9dGhpcy5ub2RlLmN1dChlLHIpLG49ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocy50ZXh0KTtyZXR1cm4gbmV3IHQodGhpcy5wYXJlbnQscyx0aGlzLm91dGVyRGVjbyx0aGlzLmlubmVyRGVjbyxuLG4sYSl9bWFya0RpcnR5KGUscil7c3VwZXIubWFya0RpcnR5KGUsciksdGhpcy5kb20hPXRoaXMubm9kZURPTSYmKGU9PTB8fHI9PXRoaXMubm9kZURPTS5ub2RlVmFsdWUubGVuZ3RoKSYmKHRoaXMuZGlydHk9dWQpfWdldCBkb21BdG9tKCl7cmV0dXJuITF9aXNUZXh0KGUpe3JldHVybiB0aGlzLm5vZGUudGV4dD09ZX19LHpmZT1jbGFzcyBleHRlbmRzIEI5e3N0YXRpY3tpKHRoaXMsIlRyYWlsaW5nSGFja1ZpZXdEZXNjIil9cGFyc2VSdWxlKCl7cmV0dXJue2lnbm9yZTohMH19bWF0Y2hlc0hhY2soZSl7cmV0dXJuIHRoaXMuZGlydHk9PXIyJiZ0aGlzLmRvbS5ub2RlTmFtZT09ZX1nZXQgZG9tQXRvbSgpe3JldHVybiEwfWdldCBpZ25vcmVGb3JDb29yZHMoKXtyZXR1cm4gdGhpcy5kb20ubm9kZU5hbWU9PSJJTUcifX0sJG10PWNsYXNzIGV4dGVuZHMgWnB7c3RhdGlje2kodGhpcywiQ3VzdG9tTm9kZVZpZXdEZXNjIil9Y29uc3RydWN0b3IoZSxyLGEscyxuLG8sbCxjLGQsZil7c3VwZXIoZSxyLGEscyxuLG8sbCxkLGYpLHRoaXMuc3BlYz1jfXVwZGF0ZShlLHIsYSxzKXtpZih0aGlzLmRpcnR5PT11ZClyZXR1cm4hMTtpZih0aGlzLnNwZWMudXBkYXRlJiYodGhpcy5ub2RlLnR5cGU9PWUudHlwZXx8dGhpcy5zcGVjLm11bHRpVHlwZSkpe2xldCBuPXRoaXMuc3BlYy51cGRhdGUoZSxyLGEpO3JldHVybiBuJiZ0aGlzLnVwZGF0ZUlubmVyKGUscixhLHMpLG59ZWxzZSByZXR1cm4hdGhpcy5jb250ZW50RE9NJiYhZS5pc0xlYWY/ITE6c3VwZXIudXBkYXRlKGUscixhLHMpfXNlbGVjdE5vZGUoKXt0aGlzLnNwZWMuc2VsZWN0Tm9kZT90aGlzLnNwZWMuc2VsZWN0Tm9kZSgpOnN1cGVyLnNlbGVjdE5vZGUoKX1kZXNlbGVjdE5vZGUoKXt0aGlzLnNwZWMuZGVzZWxlY3ROb2RlP3RoaXMuc3BlYy5kZXNlbGVjdE5vZGUoKTpzdXBlci5kZXNlbGVjdE5vZGUoKX1zZXRTZWxlY3Rpb24oZSxyLGEscyl7dGhpcy5zcGVjLnNldFNlbGVjdGlvbj90aGlzLnNwZWMuc2V0U2VsZWN0aW9uKGUscixhLnJvb3QpOnN1cGVyLnNldFNlbGVjdGlvbihlLHIsYSxzKX1kZXN0cm95KCl7dGhpcy5zcGVjLmRlc3Ryb3kmJnRoaXMuc3BlYy5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfXN0b3BFdmVudChlKXtyZXR1cm4gdGhpcy5zcGVjLnN0b3BFdmVudD90aGlzLnNwZWMuc3RvcEV2ZW50KGUpOiExfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiB0aGlzLnNwZWMuaWdub3JlTXV0YXRpb24/dGhpcy5zcGVjLmlnbm9yZU11dGF0aW9uKGUpOnN1cGVyLmlnbm9yZU11dGF0aW9uKGUpfX07aShZV3IsInJlbmRlckRlc2NzIik7RnRlPWkoZnVuY3Rpb24odCl7dCYmKHRoaXMubm9kZU5hbWU9dCl9LCJPdXRlckRlY29MZXZlbCIpO0Z0ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShudWxsKTtIOT1bbmV3IEZ0ZV07aShBbXQsImNvbXB1dGVPdXRlckRlY28iKTtpKEtXciwicGF0Y2hPdXRlckRlY28iKTtpKHdQYSwicGF0Y2hBdHRyaWJ1dGVzIik7aShaV3IsImFwcGx5T3V0ZXJEZWNvIik7aShfZmUsInNhbWVPdXRlckRlY28iKTtpKFFXciwicm0iKTtFbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiVmlld1RyZWVVcGRhdGVyIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMubG9jaz1yLHRoaXMudmlldz1hLHRoaXMuaW5kZXg9MCx0aGlzLnN0YWNrPVtdLHRoaXMuY2hhbmdlZD0hMSx0aGlzLnRvcD1lLHRoaXMucHJlTWF0Y2g9a1BhKGUubm9kZS5jb250ZW50LGUpfWRlc3Ryb3lCZXR3ZWVuKGUscil7aWYoZSE9cil7Zm9yKGxldCBhPWU7YTxyO2ErKyl0aGlzLnRvcC5jaGlsZHJlblthXS5kZXN0cm95KCk7dGhpcy50b3AuY2hpbGRyZW4uc3BsaWNlKGUsci1lKSx0aGlzLmNoYW5nZWQ9ITB9fWRlc3Ryb3lSZXN0KCl7dGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LHRoaXMudG9wLmNoaWxkcmVuLmxlbmd0aCl9c3luY1RvTWFya3MoZSxyLGEscyl7bGV0IG49MCxvPXRoaXMuc3RhY2subGVuZ3RoPj4xLGw9TWF0aC5taW4obyxlLmxlbmd0aCk7Zm9yKDtuPGwmJihuPT1vLTE/dGhpcy50b3A6dGhpcy5zdGFja1tuKzE8PDFdKS5tYXRjaGVzTWFyayhlW25dKSYmZVtuXS50eXBlLnNwZWMuc3Bhbm5pbmchPT0hMTspbisrO2Zvcig7bjxvOyl0aGlzLmRlc3Ryb3lSZXN0KCksdGhpcy50b3AuZGlydHk9cjIsdGhpcy5pbmRleD10aGlzLnN0YWNrLnBvcCgpLHRoaXMudG9wPXRoaXMuc3RhY2sucG9wKCksby0tO2Zvcig7bzxlLmxlbmd0aDspe3RoaXMuc3RhY2sucHVzaCh0aGlzLnRvcCx0aGlzLmluZGV4KzEpO2xldCBjPS0xLGQ9dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoO3M8dGhpcy5wcmVNYXRjaC5pbmRleCYmKGQ9TWF0aC5taW4odGhpcy5pbmRleCszLGQpKTtmb3IobGV0IGY9dGhpcy5pbmRleDtmPGQ7ZisrKXtsZXQgcD10aGlzLnRvcC5jaGlsZHJlbltmXTtpZihwLm1hdGNoZXNNYXJrKGVbb10pJiYhdGhpcy5pc0xvY2tlZChwLmRvbSkpe2M9ZjticmVha319aWYoYz4tMSljPnRoaXMuaW5kZXgmJih0aGlzLmNoYW5nZWQ9ITAsdGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LGMpKSx0aGlzLnRvcD10aGlzLnRvcC5jaGlsZHJlblt0aGlzLmluZGV4XTtlbHNle2xldCBmPWF3LmNyZWF0ZSh0aGlzLnRvcCxlW29dLHIsYSk7dGhpcy50b3AuY2hpbGRyZW4uc3BsaWNlKHRoaXMuaW5kZXgsMCxmKSx0aGlzLnRvcD1mLHRoaXMuY2hhbmdlZD0hMH10aGlzLmluZGV4PTAsbysrfX1maW5kTm9kZU1hdGNoKGUscixhLHMpe2xldCBuPS0xLG87aWYocz49dGhpcy5wcmVNYXRjaC5pbmRleCYmKG89dGhpcy5wcmVNYXRjaC5tYXRjaGVzW3MtdGhpcy5wcmVNYXRjaC5pbmRleF0pLnBhcmVudD09dGhpcy50b3AmJm8ubWF0Y2hlc05vZGUoZSxyLGEpKW49dGhpcy50b3AuY2hpbGRyZW4uaW5kZXhPZihvLHRoaXMuaW5kZXgpO2Vsc2UgZm9yKGxldCBsPXRoaXMuaW5kZXgsYz1NYXRoLm1pbih0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGgsbCs1KTtsPGM7bCsrKXtsZXQgZD10aGlzLnRvcC5jaGlsZHJlbltsXTtpZihkLm1hdGNoZXNOb2RlKGUscixhKSYmIXRoaXMucHJlTWF0Y2gubWF0Y2hlZC5oYXMoZCkpe249bDticmVha319cmV0dXJuIG48MD8hMToodGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LG4pLHRoaXMuaW5kZXgrKywhMCl9dXBkYXRlTm9kZUF0KGUscixhLHMsbil7bGV0IG89dGhpcy50b3AuY2hpbGRyZW5bc107cmV0dXJuIG8uZGlydHk9PXVkJiZvLmRvbT09by5jb250ZW50RE9NJiYoby5kaXJ0eT1GOSksby51cGRhdGUoZSxyLGEsbik/KHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxzKSx0aGlzLmluZGV4KyssITApOiExfWZpbmRJbmRleFdpdGhDaGlsZChlKXtmb3IoOzspe2xldCByPWUucGFyZW50Tm9kZTtpZighcilyZXR1cm4tMTtpZihyPT10aGlzLnRvcC5jb250ZW50RE9NKXtsZXQgYT1lLnBtVmlld0Rlc2M7aWYoYSl7Zm9yKGxldCBzPXRoaXMuaW5kZXg7czx0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGg7cysrKWlmKHRoaXMudG9wLmNoaWxkcmVuW3NdPT1hKXJldHVybiBzfXJldHVybi0xfWU9cn19dXBkYXRlTmV4dE5vZGUoZSxyLGEscyxuLG8pe2ZvcihsZXQgbD10aGlzLmluZGV4O2w8dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoO2wrKyl7bGV0IGM9dGhpcy50b3AuY2hpbGRyZW5bbF07aWYoYyBpbnN0YW5jZW9mIFpwKXtsZXQgZD10aGlzLnByZU1hdGNoLm1hdGNoZWQuZ2V0KGMpO2lmKGQhPW51bGwmJmQhPW4pcmV0dXJuITE7bGV0IGY9Yy5kb20scCxoPXRoaXMuaXNMb2NrZWQoZikmJiEoZS5pc1RleHQmJmMubm9kZSYmYy5ub2RlLmlzVGV4dCYmYy5ub2RlRE9NLm5vZGVWYWx1ZT09ZS50ZXh0JiZjLmRpcnR5IT11ZCYmX2ZlKHIsYy5vdXRlckRlY28pKTtpZighaCYmYy51cGRhdGUoZSxyLGEscykpcmV0dXJuIHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxsKSxjLmRvbSE9ZiYmKHRoaXMuY2hhbmdlZD0hMCksdGhpcy5pbmRleCsrLCEwO2lmKCFoJiYocD10aGlzLnJlY3JlYXRlV3JhcHBlcihjLGUscixhLHMsbykpKXJldHVybiB0aGlzLmRlc3Ryb3lCZXR3ZWVuKHRoaXMuaW5kZXgsbCksdGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleF09cCxwLmNvbnRlbnRET00mJihwLmRpcnR5PUY5LHAudXBkYXRlQ2hpbGRyZW4ocyxvKzEpLHAuZGlydHk9cjIpLHRoaXMuY2hhbmdlZD0hMCx0aGlzLmluZGV4KyssITA7YnJlYWt9fXJldHVybiExfXJlY3JlYXRlV3JhcHBlcihlLHIsYSxzLG4sbyl7aWYoZS5kaXJ0eXx8ci5pc0F0b218fCFlLmNoaWxkcmVuLmxlbmd0aHx8IWUubm9kZS5jb250ZW50LmVxKHIuY29udGVudCl8fCFfZmUoYSxlLm91dGVyRGVjbyl8fCFzLmVxKGUuaW5uZXJEZWNvKSlyZXR1cm4gbnVsbDtsZXQgbD1acC5jcmVhdGUodGhpcy50b3AscixhLHMsbixvKTtpZihsLmNvbnRlbnRET00pe2wuY2hpbGRyZW49ZS5jaGlsZHJlbixlLmNoaWxkcmVuPVtdO2ZvcihsZXQgYyBvZiBsLmNoaWxkcmVuKWMucGFyZW50PWx9cmV0dXJuIGUuZGVzdHJveSgpLGx9YWRkTm9kZShlLHIsYSxzLG4pe2xldCBvPVpwLmNyZWF0ZSh0aGlzLnRvcCxlLHIsYSxzLG4pO28uY29udGVudERPTSYmby51cGRhdGVDaGlsZHJlbihzLG4rMSksdGhpcy50b3AuY2hpbGRyZW4uc3BsaWNlKHRoaXMuaW5kZXgrKywwLG8pLHRoaXMuY2hhbmdlZD0hMH1wbGFjZVdpZGdldChlLHIsYSl7bGV0IHM9dGhpcy5pbmRleDx0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGg/dGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleF06bnVsbDtpZihzJiZzLm1hdGNoZXNXaWRnZXQoZSkmJihlPT1zLndpZGdldHx8IXMud2lkZ2V0LnR5cGUudG9ET00ucGFyZW50Tm9kZSkpdGhpcy5pbmRleCsrO2Vsc2V7bGV0IG49bmV3IE1mZSh0aGlzLnRvcCxlLHIsYSk7dGhpcy50b3AuY2hpbGRyZW4uc3BsaWNlKHRoaXMuaW5kZXgrKywwLG4pLHRoaXMuY2hhbmdlZD0hMH19YWRkVGV4dGJsb2NrSGFja3MoKXtsZXQgZT10aGlzLnRvcC5jaGlsZHJlblt0aGlzLmluZGV4LTFdLHI9dGhpcy50b3A7Zm9yKDtlIGluc3RhbmNlb2YgYXc7KXI9ZSxlPXIuY2hpbGRyZW5bci5jaGlsZHJlbi5sZW5ndGgtMV07KCFlfHwhKGUgaW5zdGFuY2VvZiBDZmUpfHwvXG4kLy50ZXN0KGUubm9kZS50ZXh0KXx8dGhpcy52aWV3LnJlcXVpcmVzR2Vja29IYWNrTm9kZSYmL1xzJC8udGVzdChlLm5vZGUudGV4dCkpJiYoKENvfHxObikmJmUmJmUuZG9tLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIiYmdGhpcy5hZGRIYWNrTm9kZSgiSU1HIixyKSx0aGlzLmFkZEhhY2tOb2RlKCJCUiIsdGhpcy50b3ApKX1hZGRIYWNrTm9kZShlLHIpe2lmKHI9PXRoaXMudG9wJiZ0aGlzLmluZGV4PHIuY2hpbGRyZW4ubGVuZ3RoJiZyLmNoaWxkcmVuW3RoaXMuaW5kZXhdLm1hdGNoZXNIYWNrKGUpKXRoaXMuaW5kZXgrKztlbHNle2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7ZT09IklNRyImJihhLmNsYXNzTmFtZT0iUHJvc2VNaXJyb3Itc2VwYXJhdG9yIixhLmFsdD0iIiksZT09IkJSIiYmKGEuY2xhc3NOYW1lPSJQcm9zZU1pcnJvci10cmFpbGluZ0JyZWFrIik7bGV0IHM9bmV3IHpmZSh0aGlzLnRvcCxbXSxhLG51bGwpO3IhPXRoaXMudG9wP3IuY2hpbGRyZW4ucHVzaChzKTpyLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4KyssMCxzKSx0aGlzLmNoYW5nZWQ9ITB9fWlzTG9ja2VkKGUpe3JldHVybiB0aGlzLmxvY2smJihlPT10aGlzLmxvY2t8fGUubm9kZVR5cGU9PTEmJmUuY29udGFpbnModGhpcy5sb2NrLnBhcmVudE5vZGUpKX19O2koa1BhLCJwcmVNYXRjaCIpO2koU1BhLCJjb21wYXJlU2lkZSIpO2koTVBhLCJpdGVyRGVjbyIpO2koQ1BhLCJpb3NIYWNrcyIpO2koelBhLCJmaW5kVGV4dEluRnJhZ21lbnQiKTtpKEltdCwicmVwbGFjZU5vZGVzIik7aShQbXQsInNlbGVjdGlvbkZyb21ET00iKTtpKFhXciwiZWRpdG9yT3duc1NlbGVjdGlvbiIpO2kobzMsInNlbGVjdGlvblRvRE9NIik7SldyPUNvfHxObiYmRVdyPDYzO2koZUdyLCJ0ZW1wb3JhcmlseUVkaXRhYmxlTmVhciIpO2koTm10LCJzZXRFZGl0YWJsZSIpO2kodEdyLCJyZXNldEVkaXRhYmxlIik7aShfUGEsInJlbW92ZUNsYXNzT25TZWxlY3Rpb25DaGFuZ2UiKTtpKFRQYSwic2VsZWN0Q3Vyc29yV3JhcHBlciIpO2kockdyLCJzeW5jTm9kZVNlbGVjdGlvbiIpO2koYUdyLCJjbGVhck5vZGVTZWxlY3Rpb24iKTtpKE9tdCwic2VsZWN0aW9uQmV0d2VlbiIpO2koaUdyLCJoYXNGb2N1c0FuZFNlbGVjdGlvbiIpO2koc0dyLCJoYXNTZWxlY3Rpb24iKTtpKExQYSwiYW5jaG9ySW5SaWdodFBsYWNlIik7aShSbXQsIm1vdmVTZWxlY3Rpb25CbG9jayIpO2koUXAsImFwcGx5Iik7aShuR3IsInNlbGVjdEhvcml6b250YWxseSIpO2koVGZlLCJub2RlTGVuIik7aShCdGUsImlzSWdub3JhYmxlIik7aShpdywic2tpcElnbm9yZWROb2RlcyIpO2koRFBhLCJza2lwSWdub3JlZE5vZGVzQmVmb3JlIik7aSgkUGEsInNraXBJZ25vcmVkTm9kZXNBZnRlciIpO2kob0dyLCJpc0Jsb2NrTm9kZSIpO2koQVBhLCJ0ZXh0Tm9kZUFmdGVyIik7aShFUGEsInRleHROb2RlQmVmb3JlIik7aShGbXQsInNldFNlbEZvY3VzIik7aShsR3IsImZpbmREaXJlY3Rpb24iKTtpKGNHciwic2VsZWN0VmVydGljYWxseSIpO2koZEdyLCJzdG9wTmF0aXZlSG9yaXpvbnRhbERlbGV0ZSIpO2kodUdyLCJzd2l0Y2hFZGl0YWJsZSIpO2koSVBhLCJzYWZhcmlEb3duQXJyb3dCdWciKTtpKFBQYSwiZ2V0TW9kcyIpO2koTlBhLCJjYXB0dXJlS2V5RG93biIpO2koQm10LCJzZXJpYWxpemVGb3JDbGlwYm9hcmQiKTtpKEhtdCwicGFyc2VGcm9tQ2xpcGJvYXJkIik7T1BhPS9eKGF8YWJicnxhY3JvbnltfGJ8Y2l0ZXxjb2RlfGRlbHxlbXxpfGluc3xrYmR8bGFiZWx8b3V0cHV0fHF8cnVieXxzfHNhbXB8c3BhbnxzdHJvbmd8c3VifHN1cHx0aW1lfHV8dHR8dmFyKSQvaTtpKFJQYSwibm9ybWFsaXplU2libGluZ3MiKTtpKHBHciwid2l0aFdyYXBwZXJzIik7aShmR3IsImFkZFRvU2libGluZyIpO2koaEdyLCJjbG9zZVJpZ2h0Iik7aShxbXQsImNsb3NlUmFuZ2UiKTtpKG1HciwiY2xvc2VTbGljZSIpO2dHcj17dGhlYWQ6WyJ0YWJsZSJdLHRib2R5OlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sY2FwdGlvbjpbInRhYmxlIl0sY29sZ3JvdXA6WyJ0YWJsZSJdLGNvbDpbInRhYmxlIiwiY29sZ3JvdXAiXSx0cjpbInRhYmxlIiwidGJvZHkiXSx0ZDpbInRhYmxlIiwidGJvZHkiLCJ0ciJdLHRoOlsidGFibGUiLCJ0Ym9keSIsInRyIl19LGJHcj1udWxsO2koeEdyLCJkZXRhY2hlZERvYyIpO1ZtdD1udWxsO2koRlBhLCJtYXliZVdyYXBUcnVzdGVkIik7aShCUGEsInJlYWRIVE1MIik7aShIUGEsInJlc3RvcmVSZXBsYWNlZFNwYWNlcyIpO2kocVBhLCJhZGRDb250ZXh0Iik7Vm89e30sam89e30sVlBhPXt0b3VjaHN0YXJ0OiEwLHRvdWNobW92ZTohMH0sam10PWNsYXNze3N0YXRpY3tpKHRoaXMsIklucHV0U3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc2hpZnRLZXk9ITEsdGhpcy5tb3VzZURvd249bnVsbCx0aGlzLmxhc3RLZXlDb2RlPW51bGwsdGhpcy5sYXN0S2V5Q29kZVRpbWU9MCx0aGlzLmxhc3RDbGljaz17dGltZTowLHg6MCx5OjAsdHlwZToiIixidXR0b246MH0sdGhpcy5sYXN0U2VsZWN0aW9uT3JpZ2luPW51bGwsdGhpcy5sYXN0U2VsZWN0aW9uVGltZT0wLHRoaXMubGFzdElPU0VudGVyPTAsdGhpcy5sYXN0SU9TRW50ZXJGYWxsYmFja1RpbWVvdXQ9LTEsdGhpcy5sYXN0Rm9jdXM9MCx0aGlzLmxhc3RUb3VjaD0wLHRoaXMubGFzdENocm9tZURlbGV0ZT0wLHRoaXMuY29tcG9zaW5nPSExLHRoaXMuY29tcG9zaXRpb25Ob2RlPW51bGwsdGhpcy5jb21wb3NpbmdUaW1lb3V0PS0xLHRoaXMuY29tcG9zaXRpb25Ob2Rlcz1bXSx0aGlzLmNvbXBvc2l0aW9uRW5kZWRBdD0tMmU4LHRoaXMuY29tcG9zaXRpb25JRD0xLHRoaXMuYmFkU2FmYXJpQ29tcG9zaXRpb249ITEsdGhpcy5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzPTAsdGhpcy5kb21DaGFuZ2VDb3VudD0wLHRoaXMuZXZlbnRIYW5kbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuaGlkZVNlbGVjdGlvbkd1YXJkPW51bGx9fTtpKGpQYSwiaW5pdElucHV0Iik7aShYcCwic2V0U2VsZWN0aW9uT3JpZ2luIik7aShVUGEsImRlc3Ryb3lJbnB1dCIpO2koVW10LCJlbnN1cmVMaXN0ZW5lcnMiKTtpKFdtdCwicnVuQ3VzdG9tSGFuZGxlciIpO2koV1BhLCJldmVudEJlbG9uZ3NUb1ZpZXciKTtpKEdQYSwiZGlzcGF0Y2hFdmVudCIpLGpvLmtleWRvd249KHQsZSk9PntsZXQgcj1lO2lmKHQuaW5wdXQuc2hpZnRLZXk9ci5rZXlDb2RlPT0xNnx8ci5zaGlmdEtleSwheUdyKHQscikmJih0LmlucHV0Lmxhc3RLZXlDb2RlPXIua2V5Q29kZSx0LmlucHV0Lmxhc3RLZXlDb2RlVGltZT1EYXRlLm5vdygpLCEoczMmJk5uJiZyLmtleUNvZGU9PTEzKSkpaWYoci5rZXlDb2RlIT0yMjkmJnQuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpLHR3JiZyLmtleUNvZGU9PTEzJiYhci5jdHJsS2V5JiYhci5hbHRLZXkmJiFyLm1ldGFLZXkpe2xldCBhPURhdGUubm93KCk7dC5pbnB1dC5sYXN0SU9TRW50ZXI9YSx0LmlucHV0Lmxhc3RJT1NFbnRlckZhbGxiYWNrVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dC5pbnB1dC5sYXN0SU9TRW50ZXI9PWEmJih0LnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixzPT5zKHQsUjkoMTMsIkVudGVyIikpKSx0LmlucHV0Lmxhc3RJT1NFbnRlcj0wKX0sMjAwKX1lbHNlIHQuc29tZVByb3AoImhhbmRsZUtleURvd24iLGE9PmEodCxyKSl8fE5QYSh0LHIpP3IucHJldmVudERlZmF1bHQoKTpYcCh0LCJrZXkiKX0sam8ua2V5dXA9KHQsZSk9PntlLmtleUNvZGU9PTE2JiYodC5pbnB1dC5zaGlmdEtleT0hMSl9LGpvLmtleXByZXNzPSh0LGUpPT57bGV0IHI9ZTtpZih5R3IodCxyKXx8IXIuY2hhckNvZGV8fHIuY3RybEtleSYmIXIuYWx0S2V5fHx0MiYmci5tZXRhS2V5KXJldHVybjtpZih0LnNvbWVQcm9wKCJoYW5kbGVLZXlQcmVzcyIscz0+cyh0LHIpKSl7ci5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1sZXQgYT10LnN0YXRlLnNlbGVjdGlvbjtpZighKGEgaW5zdGFuY2VvZiBlcil8fCFhLiRmcm9tLnNhbWVQYXJlbnQoYS4kdG8pKXtsZXQgcz1TdHJpbmcuZnJvbUNoYXJDb2RlKHIuY2hhckNvZGUpLG49aSgoKT0+dC5zdGF0ZS50ci5pbnNlcnRUZXh0KHMpLnNjcm9sbEludG9WaWV3KCksImRlZmx0Iik7IS9bXHJcbl0vLnRlc3QocykmJiF0LnNvbWVQcm9wKCJoYW5kbGVUZXh0SW5wdXQiLG89Pm8odCxhLiRmcm9tLnBvcyxhLiR0by5wb3MscyxuKSkmJnQuZGlzcGF0Y2gobigpKSxyLnByZXZlbnREZWZhdWx0KCl9fTtpKExmZSwiZXZlbnRDb29yZHMiKTtpKFlQYSwiaXNOZWFyIik7aShHbXQsInJ1bkhhbmRsZXJPbkNvbnRleHQiKTtpKHN3LCJ1cGRhdGVTZWxlY3Rpb24iKTtpKEtQYSwic2VsZWN0Q2xpY2tlZExlYWYiKTtpKFpQYSwic2VsZWN0Q2xpY2tlZE5vZGUiKTtpKFFQYSwiaGFuZGxlU2luZ2xlQ2xpY2siKTtpKFhQYSwiaGFuZGxlRG91YmxlQ2xpY2siKTtpKEpQYSwiaGFuZGxlVHJpcGxlQ2xpY2siKTtpKGVOYSwiZGVmYXVsdFRyaXBsZUNsaWNrIik7aShZbXQsImZvcmNlRE9NRmx1c2giKTt2R3I9dDI/Im1ldGFLZXkiOiJjdHJsS2V5IjtWby5tb3VzZWRvd249KHQsZSk9PntsZXQgcj1lO3QuaW5wdXQuc2hpZnRLZXk9ci5zaGlmdEtleTtsZXQgYT1ZbXQodCkscz1EYXRlLm5vdygpLG49InNpbmdsZUNsaWNrIjtzLXQuaW5wdXQubGFzdENsaWNrLnRpbWU8NTAwJiZZUGEocix0LmlucHV0Lmxhc3RDbGljaykmJiFyW3ZHcl0mJnQuaW5wdXQubGFzdENsaWNrLmJ1dHRvbj09ci5idXR0b24mJih0LmlucHV0Lmxhc3RDbGljay50eXBlPT0ic2luZ2xlQ2xpY2siP249ImRvdWJsZUNsaWNrIjp0LmlucHV0Lmxhc3RDbGljay50eXBlPT0iZG91YmxlQ2xpY2siJiYobj0idHJpcGxlQ2xpY2siKSksdC5pbnB1dC5sYXN0Q2xpY2s9e3RpbWU6cyx4OnIuY2xpZW50WCx5OnIuY2xpZW50WSx0eXBlOm4sYnV0dG9uOnIuYnV0dG9ufTtsZXQgbz10LnBvc0F0Q29vcmRzKExmZShyKSk7byYmKG49PSJzaW5nbGVDbGljayI/KHQuaW5wdXQubW91c2VEb3duJiZ0LmlucHV0Lm1vdXNlRG93bi5kb25lKCksdC5pbnB1dC5tb3VzZURvd249bmV3IEttdCh0LG8sciwhIWEpKToobj09ImRvdWJsZUNsaWNrIj9YUGE6SlBhKSh0LG8ucG9zLG8uaW5zaWRlLHIpP3IucHJldmVudERlZmF1bHQoKTpYcCh0LCJwb2ludGVyIikpfTtLbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiTW91c2VEb3duIil9Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy52aWV3PWUsdGhpcy5wb3M9cix0aGlzLmV2ZW50PWEsdGhpcy5mbHVzaGVkPXMsdGhpcy5kZWxheWVkU2VsZWN0aW9uU3luYz0hMSx0aGlzLm1pZ2h0RHJhZz1udWxsLHRoaXMuc3RhcnREb2M9ZS5zdGF0ZS5kb2MsdGhpcy5zZWxlY3ROb2RlPSEhYVt2R3JdLHRoaXMuYWxsb3dEZWZhdWx0PWEuc2hpZnRLZXk7bGV0IG4sbztpZihyLmluc2lkZT4tMSluPWUuc3RhdGUuZG9jLm5vZGVBdChyLmluc2lkZSksbz1yLmluc2lkZTtlbHNle2xldCBmPWUuc3RhdGUuZG9jLnJlc29sdmUoci5wb3MpO249Zi5wYXJlbnQsbz1mLmRlcHRoP2YuYmVmb3JlKCk6MH1sZXQgbD1zP251bGw6YS50YXJnZXQsYz1sP2UuZG9jVmlldy5uZWFyZXN0RGVzYyhsLCEwKTpudWxsO3RoaXMudGFyZ2V0PWMmJmMubm9kZURPTS5ub2RlVHlwZT09MT9jLm5vZGVET006bnVsbDtsZXR7c2VsZWN0aW9uOmR9PWUuc3RhdGU7YS5idXR0b249PTAmJihuLnR5cGUuc3BlYy5kcmFnZ2FibGUmJm4udHlwZS5zcGVjLnNlbGVjdGFibGUhPT0hMXx8ZCBpbnN0YW5jZW9mIEl0JiZkLmZyb208PW8mJmQudG8+bykmJih0aGlzLm1pZ2h0RHJhZz17bm9kZTpuLHBvczpvLGFkZEF0dHI6ISEodGhpcy50YXJnZXQmJiF0aGlzLnRhcmdldC5kcmFnZ2FibGUpLHNldFVuZWRpdGFibGU6ISEodGhpcy50YXJnZXQmJmUyJiYhdGhpcy50YXJnZXQuaGFzQXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKSl9KSx0aGlzLnRhcmdldCYmdGhpcy5taWdodERyYWcmJih0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyfHx0aGlzLm1pZ2h0RHJhZy5zZXRVbmVkaXRhYmxlKSYmKHRoaXMudmlldy5kb21PYnNlcnZlci5zdG9wKCksdGhpcy5taWdodERyYWcuYWRkQXR0ciYmKHRoaXMudGFyZ2V0LmRyYWdnYWJsZT0hMCksdGhpcy5taWdodERyYWcuc2V0VW5lZGl0YWJsZSYmc2V0VGltZW91dCgoKT0+e3RoaXMudmlldy5pbnB1dC5tb3VzZURvd249PXRoaXMmJnRoaXMudGFyZ2V0LnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwiZmFsc2UiKX0sMjApLHRoaXMudmlldy5kb21PYnNlcnZlci5zdGFydCgpKSxlLnJvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy51cD10aGlzLnVwLmJpbmQodGhpcykpLGUucm9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZT10aGlzLm1vdmUuYmluZCh0aGlzKSksWHAoZSwicG9pbnRlciIpfWRvbmUoKXt0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnVwKSx0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZSksdGhpcy5taWdodERyYWcmJnRoaXMudGFyZ2V0JiYodGhpcy52aWV3LmRvbU9ic2VydmVyLnN0b3AoKSx0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyJiZ0aGlzLnRhcmdldC5yZW1vdmVBdHRyaWJ1dGUoImRyYWdnYWJsZSIpLHRoaXMubWlnaHREcmFnLnNldFVuZWRpdGFibGUmJnRoaXMudGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiksdGhpcy52aWV3LmRvbU9ic2VydmVyLnN0YXJ0KCkpLHRoaXMuZGVsYXllZFNlbGVjdGlvblN5bmMmJnNldFRpbWVvdXQoKCk9Pm8zKHRoaXMudmlldykpLHRoaXMudmlldy5pbnB1dC5tb3VzZURvd249bnVsbH11cChlKXtpZih0aGlzLmRvbmUoKSwhdGhpcy52aWV3LmRvbS5jb250YWlucyhlLnRhcmdldCkpcmV0dXJuO2xldCByPXRoaXMucG9zO3RoaXMudmlldy5zdGF0ZS5kb2MhPXRoaXMuc3RhcnREb2MmJihyPXRoaXMudmlldy5wb3NBdENvb3JkcyhMZmUoZSkpKSx0aGlzLnVwZGF0ZUFsbG93RGVmYXVsdChlKSx0aGlzLmFsbG93RGVmYXVsdHx8IXI/WHAodGhpcy52aWV3LCJwb2ludGVyIik6UVBhKHRoaXMudmlldyxyLnBvcyxyLmluc2lkZSxlLHRoaXMuc2VsZWN0Tm9kZSk/ZS5wcmV2ZW50RGVmYXVsdCgpOmUuYnV0dG9uPT0wJiYodGhpcy5mbHVzaGVkfHxDbyYmdGhpcy5taWdodERyYWcmJiF0aGlzLm1pZ2h0RHJhZy5ub2RlLmlzQXRvbXx8Tm4mJiF0aGlzLnZpZXcuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUmJk1hdGgubWluKE1hdGguYWJzKHIucG9zLXRoaXMudmlldy5zdGF0ZS5zZWxlY3Rpb24uZnJvbSksTWF0aC5hYnMoci5wb3MtdGhpcy52aWV3LnN0YXRlLnNlbGVjdGlvbi50bykpPD0yKT8oc3codGhpcy52aWV3LEp0Lm5lYXIodGhpcy52aWV3LnN0YXRlLmRvYy5yZXNvbHZlKHIucG9zKSksInBvaW50ZXIiKSxlLnByZXZlbnREZWZhdWx0KCkpOlhwKHRoaXMudmlldywicG9pbnRlciIpfW1vdmUoZSl7dGhpcy51cGRhdGVBbGxvd0RlZmF1bHQoZSksWHAodGhpcy52aWV3LCJwb2ludGVyIiksZS5idXR0b25zPT0wJiZ0aGlzLmRvbmUoKX11cGRhdGVBbGxvd0RlZmF1bHQoZSl7IXRoaXMuYWxsb3dEZWZhdWx0JiYoTWF0aC5hYnModGhpcy5ldmVudC54LWUuY2xpZW50WCk+NHx8TWF0aC5hYnModGhpcy5ldmVudC55LWUuY2xpZW50WSk+NCkmJih0aGlzLmFsbG93RGVmYXVsdD0hMCl9fTtWby50b3VjaHN0YXJ0PXQ9Pnt0LmlucHV0Lmxhc3RUb3VjaD1EYXRlLm5vdygpLFltdCh0KSxYcCh0LCJwb2ludGVyIil9LFZvLnRvdWNobW92ZT10PT57dC5pbnB1dC5sYXN0VG91Y2g9RGF0ZS5ub3coKSxYcCh0LCJwb2ludGVyIil9LFZvLmNvbnRleHRtZW51PXQ9PlltdCh0KTtpKHlHciwiaW5Pck5lYXJDb21wb3NpdGlvbiIpO3ROYT1zMz81ZTM6LTE7am8uY29tcG9zaXRpb25zdGFydD1qby5jb21wb3NpdGlvbnVwZGF0ZT10PT57aWYoIXQuY29tcG9zaW5nKXt0LmRvbU9ic2VydmVyLmZsdXNoKCk7bGV0e3N0YXRlOmV9PXQscj1lLnNlbGVjdGlvbi4kdG87aWYoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBlciYmKGUuc3RvcmVkTWFya3N8fCFyLnRleHRPZmZzZXQmJnIucGFyZW50T2Zmc2V0JiZyLm5vZGVCZWZvcmUubWFya3Muc29tZShhPT5hLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSl8fE5uJiZJV3ImJnJOYSh0KSkpdC5tYXJrQ3Vyc29yPXQuc3RhdGUuc3RvcmVkTWFya3N8fHIubWFya3MoKSxIdGUodCwhMCksdC5tYXJrQ3Vyc29yPW51bGw7ZWxzZSBpZihIdGUodCwhZS5zZWxlY3Rpb24uZW1wdHkpLGUyJiZlLnNlbGVjdGlvbi5lbXB0eSYmci5wYXJlbnRPZmZzZXQmJiFyLnRleHRPZmZzZXQmJnIubm9kZUJlZm9yZS5tYXJrcy5sZW5ndGgpe2xldCBhPXQuZG9tU2VsZWN0aW9uUmFuZ2UoKTtmb3IobGV0IHM9YS5mb2N1c05vZGUsbj1hLmZvY3VzT2Zmc2V0O3MmJnMubm9kZVR5cGU9PTEmJm4hPTA7KXtsZXQgbz1uPDA/cy5sYXN0Q2hpbGQ6cy5jaGlsZE5vZGVzW24tMV07aWYoIW8pYnJlYWs7aWYoby5ub2RlVHlwZT09Myl7bGV0IGw9dC5kb21TZWxlY3Rpb24oKTtsJiZsLmNvbGxhcHNlKG8sby5ub2RlVmFsdWUubGVuZ3RoKTticmVha31lbHNlIHM9byxuPS0xfX10LmlucHV0LmNvbXBvc2luZz0hMH13R3IodCx0TmEpfTtpKHJOYSwic2VsZWN0aW9uQmVmb3JlVW5lZGl0YWJsZSIpLGpvLmNvbXBvc2l0aW9uZW5kPSh0LGUpPT57dC5jb21wb3NpbmcmJih0LmlucHV0LmNvbXBvc2luZz0hMSx0LmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD1lLnRpbWVTdGFtcCx0LmlucHV0LmNvbXBvc2l0aW9uUGVuZGluZ0NoYW5nZXM9dC5kb21PYnNlcnZlci5wZW5kaW5nUmVjb3JkcygpLmxlbmd0aD90LmlucHV0LmNvbXBvc2l0aW9uSUQ6MCx0LmlucHV0LmNvbXBvc2l0aW9uTm9kZT1udWxsLHQuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb24/dC5kb21PYnNlcnZlci5mb3JjZUZsdXNoKCk6dC5pbnB1dC5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50LmRvbU9ic2VydmVyLmZsdXNoKCkpLHQuaW5wdXQuY29tcG9zaXRpb25JRCsrLHdHcih0LDIwKSl9O2kod0dyLCJzY2hlZHVsZUNvbXBvc2VFbmQiKTtpKGtHciwiY2xlYXJDb21wb3NpdGlvbiIpO2koYU5hLCJmaW5kQ29tcG9zaXRpb25Ob2RlIik7aShpTmEsInRpbWVzdGFtcEZyb21DdXN0b21FdmVudCIpO2koSHRlLCJlbmRDb21wb3NpdGlvbiIpO2koc05hLCJjYXB0dXJlQ29weSIpO3F0ZT1FMSYmWXA8MTV8fHR3JiZzUGE8NjA0O1ZvLmNvcHk9am8uY3V0PSh0LGUpPT57bGV0IHI9ZSxhPXQuc3RhdGUuc2VsZWN0aW9uLHM9ci50eXBlPT0iY3V0IjtpZihhLmVtcHR5KXJldHVybjtsZXQgbj1xdGU/bnVsbDpyLmNsaXBib2FyZERhdGEsbz1hLmNvbnRlbnQoKSx7ZG9tOmwsdGV4dDpjfT1CbXQodCxvKTtuPyhyLnByZXZlbnREZWZhdWx0KCksbi5jbGVhckRhdGEoKSxuLnNldERhdGEoInRleHQvaHRtbCIsbC5pbm5lckhUTUwpLG4uc2V0RGF0YSgidGV4dC9wbGFpbiIsYykpOnNOYSh0LGwpLHMmJnQuZGlzcGF0Y2godC5zdGF0ZS50ci5kZWxldGVTZWxlY3Rpb24oKS5zY3JvbGxJbnRvVmlldygpLnNldE1ldGEoInVpRXZlbnQiLCJjdXQiKSl9O2kobk5hLCJzbGljZVNpbmdsZU5vZGUiKTtpKG9OYSwiY2FwdHVyZVBhc3RlIik7aShWdGUsImRvUGFzdGUiKTtpKFNHciwiZ2V0VGV4dCIpLGpvLnBhc3RlPSh0LGUpPT57bGV0IHI9ZTtpZih0LmNvbXBvc2luZyYmIXMzKXJldHVybjtsZXQgYT1xdGU/bnVsbDpyLmNsaXBib2FyZERhdGEscz10LmlucHV0LnNoaWZ0S2V5JiZ0LmlucHV0Lmxhc3RLZXlDb2RlIT00NTthJiZWdGUodCxTR3IoYSksYS5nZXREYXRhKCJ0ZXh0L2h0bWwiKSxzLHIpP3IucHJldmVudERlZmF1bHQoKTpvTmEodCxyKX07RGZlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkRyYWdnaW5nIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuc2xpY2U9ZSx0aGlzLm1vdmU9cix0aGlzLm5vZGU9YX19LGxOYT10Mj8iYWx0S2V5IjoiY3RybEtleSI7aShNR3IsImRyYWdNb3ZlcyIpLFZvLmRyYWdzdGFydD0odCxlKT0+e2xldCByPWUsYT10LmlucHV0Lm1vdXNlRG93bjtpZihhJiZhLmRvbmUoKSwhci5kYXRhVHJhbnNmZXIpcmV0dXJuO2xldCBzPXQuc3RhdGUuc2VsZWN0aW9uLG49cy5lbXB0eT9udWxsOnQucG9zQXRDb29yZHMoTGZlKHIpKSxvO2lmKCEobiYmbi5wb3M+PXMuZnJvbSYmbi5wb3M8PShzIGluc3RhbmNlb2YgSXQ/cy50by0xOnMudG8pKSl7aWYoYSYmYS5taWdodERyYWcpbz1JdC5jcmVhdGUodC5zdGF0ZS5kb2MsYS5taWdodERyYWcucG9zKTtlbHNlIGlmKHIudGFyZ2V0JiZyLnRhcmdldC5ub2RlVHlwZT09MSl7bGV0IHA9dC5kb2NWaWV3Lm5lYXJlc3REZXNjKHIudGFyZ2V0LCEwKTtwJiZwLm5vZGUudHlwZS5zcGVjLmRyYWdnYWJsZSYmcCE9dC5kb2NWaWV3JiYobz1JdC5jcmVhdGUodC5zdGF0ZS5kb2MscC5wb3NCZWZvcmUpKX19bGV0IGw9KG98fHQuc3RhdGUuc2VsZWN0aW9uKS5jb250ZW50KCkse2RvbTpjLHRleHQ6ZCxzbGljZTpmfT1CbXQodCxsKTsoIXIuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aHx8IU5ufHxFV3I+MTIwKSYmci5kYXRhVHJhbnNmZXIuY2xlYXJEYXRhKCksci5kYXRhVHJhbnNmZXIuc2V0RGF0YShxdGU/IlRleHQiOiJ0ZXh0L2h0bWwiLGMuaW5uZXJIVE1MKSxyLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJjb3B5TW92ZSIscXRlfHxyLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixkKSx0LmRyYWdnaW5nPW5ldyBEZmUoZixNR3IodCxyKSxvKX0sVm8uZHJhZ2VuZD10PT57bGV0IGU9dC5kcmFnZ2luZzt3aW5kb3cuc2V0VGltZW91dCgoKT0+e3QuZHJhZ2dpbmc9PWUmJih0LmRyYWdnaW5nPW51bGwpfSw1MCl9LGpvLmRyYWdvdmVyPWpvLmRyYWdlbnRlcj0odCxlKT0+ZS5wcmV2ZW50RGVmYXVsdCgpLGpvLmRyb3A9KHQsZSk9Pnt0cnl7Y05hKHQsZSx0LmRyYWdnaW5nKX1maW5hbGx5e3QuZHJhZ2dpbmc9bnVsbH19O2koY05hLCJoYW5kbGVEcm9wIiksVm8uZm9jdXM9dD0+e3QuaW5wdXQubGFzdEZvY3VzPURhdGUubm93KCksdC5mb2N1c2VkfHwodC5kb21PYnNlcnZlci5zdG9wKCksdC5kb20uY2xhc3NMaXN0LmFkZCgiUHJvc2VNaXJyb3ItZm9jdXNlZCIpLHQuZG9tT2JzZXJ2ZXIuc3RhcnQoKSx0LmZvY3VzZWQ9ITAsc2V0VGltZW91dCgoKT0+e3QuZG9jVmlldyYmdC5oYXNGb2N1cygpJiYhdC5kb21PYnNlcnZlci5jdXJyZW50U2VsZWN0aW9uLmVxKHQuZG9tU2VsZWN0aW9uUmFuZ2UoKSkmJm8zKHQpfSwyMCkpfSxWby5ibHVyPSh0LGUpPT57bGV0IHI9ZTt0LmZvY3VzZWQmJih0LmRvbU9ic2VydmVyLnN0b3AoKSx0LmRvbS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1mb2N1c2VkIiksdC5kb21PYnNlcnZlci5zdGFydCgpLHIucmVsYXRlZFRhcmdldCYmdC5kb20uY29udGFpbnMoci5yZWxhdGVkVGFyZ2V0KSYmdC5kb21PYnNlcnZlci5jdXJyZW50U2VsZWN0aW9uLmNsZWFyKCksdC5mb2N1c2VkPSExKX0sVm8uYmVmb3JlaW5wdXQ9KHQsZSk9PntpZihObiYmczMmJmUuaW5wdXRUeXBlPT0iZGVsZXRlQ29udGVudEJhY2t3YXJkIil7dC5kb21PYnNlcnZlci5mbHVzaFNvb24oKTtsZXR7ZG9tQ2hhbmdlQ291bnQ6YX09dC5pbnB1dDtzZXRUaW1lb3V0KCgpPT57aWYodC5pbnB1dC5kb21DaGFuZ2VDb3VudCE9YXx8KHQuZG9tLmJsdXIoKSx0LmZvY3VzKCksdC5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsbj0+bih0LFI5KDgsIkJhY2tzcGFjZSIpKSkpKXJldHVybjtsZXR7JGN1cnNvcjpzfT10LnN0YXRlLnNlbGVjdGlvbjtzJiZzLnBvcz4wJiZ0LmRpc3BhdGNoKHQuc3RhdGUudHIuZGVsZXRlKHMucG9zLTEscy5wb3MpLnNjcm9sbEludG9WaWV3KCkpfSw1MCl9fTtmb3IobGV0IHQgaW4gam8pVm9bdF09am9bdF07aShqdGUsImNvbXBhcmVPYmpzIik7JGZlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiV2lkZ2V0VHlwZSIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy50b0RPTT1lLHRoaXMuc3BlYz1yfHxWOSx0aGlzLnNpZGU9dGhpcy5zcGVjLnNpZGV8fDB9bWFwKGUscixhLHMpe2xldHtwb3M6bixkZWxldGVkOm99PWUubWFwUmVzdWx0KHIuZnJvbStzLHRoaXMuc2lkZTwwPy0xOjEpO3JldHVybiBvP251bGw6bmV3IHdjKG4tYSxuLWEsdGhpcyl9dmFsaWQoKXtyZXR1cm4hMH1lcShlKXtyZXR1cm4gdGhpcz09ZXx8ZSBpbnN0YW5jZW9mIHQmJih0aGlzLnNwZWMua2V5JiZ0aGlzLnNwZWMua2V5PT1lLnNwZWMua2V5fHx0aGlzLnRvRE9NPT1lLnRvRE9NJiZqdGUodGhpcy5zcGVjLGUuc3BlYykpfWRlc3Ryb3koZSl7dGhpcy5zcGVjLmRlc3Ryb3kmJnRoaXMuc3BlYy5kZXN0cm95KGUpfX0scTk9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJJbmxpbmVUeXBlIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLmF0dHJzPWUsdGhpcy5zcGVjPXJ8fFY5fW1hcChlLHIsYSxzKXtsZXQgbj1lLm1hcChyLmZyb20rcyx0aGlzLnNwZWMuaW5jbHVzaXZlU3RhcnQ/LTE6MSktYSxvPWUubWFwKHIudG8rcyx0aGlzLnNwZWMuaW5jbHVzaXZlRW5kPzE6LTEpLWE7cmV0dXJuIG4+PW8/bnVsbDpuZXcgd2MobixvLHRoaXMpfXZhbGlkKGUscil7cmV0dXJuIHIuZnJvbTxyLnRvfWVxKGUpe3JldHVybiB0aGlzPT1lfHxlIGluc3RhbmNlb2YgdCYmanRlKHRoaXMuYXR0cnMsZS5hdHRycykmJmp0ZSh0aGlzLnNwZWMsZS5zcGVjKX1zdGF0aWMgaXMoZSl7cmV0dXJuIGUudHlwZSBpbnN0YW5jZW9mIHR9ZGVzdHJveSgpe319LFptdD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk5vZGVUeXBlIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLmF0dHJzPWUsdGhpcy5zcGVjPXJ8fFY5fW1hcChlLHIsYSxzKXtsZXQgbj1lLm1hcFJlc3VsdChyLmZyb20rcywxKTtpZihuLmRlbGV0ZWQpcmV0dXJuIG51bGw7bGV0IG89ZS5tYXBSZXN1bHQoci50bytzLC0xKTtyZXR1cm4gby5kZWxldGVkfHxvLnBvczw9bi5wb3M/bnVsbDpuZXcgd2Mobi5wb3MtYSxvLnBvcy1hLHRoaXMpfXZhbGlkKGUscil7bGV0e2luZGV4OmEsb2Zmc2V0OnN9PWUuY29udGVudC5maW5kSW5kZXgoci5mcm9tKSxuO3JldHVybiBzPT1yLmZyb20mJiEobj1lLmNoaWxkKGEpKS5pc1RleHQmJnMrbi5ub2RlU2l6ZT09ci50b31lcShlKXtyZXR1cm4gdGhpcz09ZXx8ZSBpbnN0YW5jZW9mIHQmJmp0ZSh0aGlzLmF0dHJzLGUuYXR0cnMpJiZqdGUodGhpcy5zcGVjLGUuc3BlYyl9ZGVzdHJveSgpe319LHdjPWNsYXNzIHR7c3RhdGlje2kodGhpcywiRGVjb3JhdGlvbiIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLmZyb209ZSx0aGlzLnRvPXIsdGhpcy50eXBlPWF9Y29weShlLHIpe3JldHVybiBuZXcgdChlLHIsdGhpcy50eXBlKX1lcShlLHI9MCl7cmV0dXJuIHRoaXMudHlwZS5lcShlLnR5cGUpJiZ0aGlzLmZyb20rcj09ZS5mcm9tJiZ0aGlzLnRvK3I9PWUudG99bWFwKGUscixhKXtyZXR1cm4gdGhpcy50eXBlLm1hcChlLHRoaXMscixhKX1zdGF0aWMgd2lkZ2V0KGUscixhKXtyZXR1cm4gbmV3IHQoZSxlLG5ldyAkZmUocixhKSl9c3RhdGljIGlubGluZShlLHIsYSxzKXtyZXR1cm4gbmV3IHQoZSxyLG5ldyBxOShhLHMpKX1zdGF0aWMgbm9kZShlLHIsYSxzKXtyZXR1cm4gbmV3IHQoZSxyLG5ldyBabXQoYSxzKSl9Z2V0IHNwZWMoKXtyZXR1cm4gdGhpcy50eXBlLnNwZWN9Z2V0IGlubGluZSgpe3JldHVybiB0aGlzLnR5cGUgaW5zdGFuY2VvZiBxOX1nZXQgd2lkZ2V0KCl7cmV0dXJuIHRoaXMudHlwZSBpbnN0YW5jZW9mICRmZX19LG53PVtdLFY5PXt9LFVvPWNsYXNzIHR7c3RhdGlje2kodGhpcywiRGVjb3JhdGlvblNldCIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5sb2NhbD1lLmxlbmd0aD9lOm53LHRoaXMuY2hpbGRyZW49ci5sZW5ndGg/cjpud31zdGF0aWMgY3JlYXRlKGUscil7cmV0dXJuIHIubGVuZ3RoP0VmZShyLGUsMCxWOSk6em99ZmluZChlLHIsYSl7bGV0IHM9W107cmV0dXJuIHRoaXMuZmluZElubmVyKGU/PzAscj8/MWU5LHMsMCxhKSxzfWZpbmRJbm5lcihlLHIsYSxzLG4pe2ZvcihsZXQgbz0wO288dGhpcy5sb2NhbC5sZW5ndGg7bysrKXtsZXQgbD10aGlzLmxvY2FsW29dO2wuZnJvbTw9ciYmbC50bz49ZSYmKCFufHxuKGwuc3BlYykpJiZhLnB1c2gobC5jb3B5KGwuZnJvbStzLGwudG8rcykpfWZvcihsZXQgbz0wO288dGhpcy5jaGlsZHJlbi5sZW5ndGg7bys9MylpZih0aGlzLmNoaWxkcmVuW29dPHImJnRoaXMuY2hpbGRyZW5bbysxXT5lKXtsZXQgbD10aGlzLmNoaWxkcmVuW29dKzE7dGhpcy5jaGlsZHJlbltvKzJdLmZpbmRJbm5lcihlLWwsci1sLGEscytsLG4pfX1tYXAoZSxyLGEpe3JldHVybiB0aGlzPT16b3x8ZS5tYXBzLmxlbmd0aD09MD90aGlzOnRoaXMubWFwSW5uZXIoZSxyLDAsMCxhfHxWOSl9bWFwSW5uZXIoZSxyLGEscyxuKXtsZXQgbztmb3IobGV0IGw9MDtsPHRoaXMubG9jYWwubGVuZ3RoO2wrKyl7bGV0IGM9dGhpcy5sb2NhbFtsXS5tYXAoZSxhLHMpO2MmJmMudHlwZS52YWxpZChyLGMpPyhvfHwobz1bXSkpLnB1c2goYyk6bi5vblJlbW92ZSYmbi5vblJlbW92ZSh0aGlzLmxvY2FsW2xdLnNwZWMpfXJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD9kTmEodGhpcy5jaGlsZHJlbixvfHxbXSxlLHIsYSxzLG4pOm8/bmV3IHQoby5zb3J0KGo5KSxudyk6em99YWRkKGUscil7cmV0dXJuIHIubGVuZ3RoP3RoaXM9PXpvP3QuY3JlYXRlKGUscik6dGhpcy5hZGRJbm5lcihlLHIsMCk6dGhpc31hZGRJbm5lcihlLHIsYSl7bGV0IHMsbj0wO2UuZm9yRWFjaCgobCxjKT0+e2xldCBkPWMrYSxmO2lmKGY9ekdyKHIsbCxkKSl7Zm9yKHN8fChzPXRoaXMuY2hpbGRyZW4uc2xpY2UoKSk7bjxzLmxlbmd0aCYmc1tuXTxjOyluKz0zO3Nbbl09PWM/c1tuKzJdPXNbbisyXS5hZGRJbm5lcihsLGYsZCsxKTpzLnNwbGljZShuLDAsYyxjK2wubm9kZVNpemUsRWZlKGYsbCxkKzEsVjkpKSxuKz0zfX0pO2xldCBvPUNHcihuP19HcihyKTpyLC1hKTtmb3IobGV0IGw9MDtsPG8ubGVuZ3RoO2wrKylvW2xdLnR5cGUudmFsaWQoZSxvW2xdKXx8by5zcGxpY2UobC0tLDEpO3JldHVybiBuZXcgdChvLmxlbmd0aD90aGlzLmxvY2FsLmNvbmNhdChvKS5zb3J0KGo5KTp0aGlzLmxvY2FsLHN8fHRoaXMuY2hpbGRyZW4pfXJlbW92ZShlKXtyZXR1cm4gZS5sZW5ndGg9PTB8fHRoaXM9PXpvP3RoaXM6dGhpcy5yZW1vdmVJbm5lcihlLDApfXJlbW92ZUlubmVyKGUscil7bGV0IGE9dGhpcy5jaGlsZHJlbixzPXRoaXMubG9jYWw7Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKz0zKXtsZXQgbyxsPWFbbl0rcixjPWFbbisxXStyO2ZvcihsZXQgZj0wLHA7ZjxlLmxlbmd0aDtmKyspKHA9ZVtmXSkmJnAuZnJvbT5sJiZwLnRvPGMmJihlW2ZdPW51bGwsKG98fChvPVtdKSkucHVzaChwKSk7aWYoIW8pY29udGludWU7YT09dGhpcy5jaGlsZHJlbiYmKGE9dGhpcy5jaGlsZHJlbi5zbGljZSgpKTtsZXQgZD1hW24rMl0ucmVtb3ZlSW5uZXIobyxsKzEpO2QhPXpvP2FbbisyXT1kOihhLnNwbGljZShuLDMpLG4tPTMpfWlmKHMubGVuZ3RoKXtmb3IobGV0IG49MCxvO248ZS5sZW5ndGg7bisrKWlmKG89ZVtuXSlmb3IobGV0IGw9MDtsPHMubGVuZ3RoO2wrKylzW2xdLmVxKG8scikmJihzPT10aGlzLmxvY2FsJiYocz10aGlzLmxvY2FsLnNsaWNlKCkpLHMuc3BsaWNlKGwtLSwxKSl9cmV0dXJuIGE9PXRoaXMuY2hpbGRyZW4mJnM9PXRoaXMubG9jYWw/dGhpczpzLmxlbmd0aHx8YS5sZW5ndGg/bmV3IHQocyxhKTp6b31mb3JDaGlsZChlLHIpe2lmKHRoaXM9PXpvKXJldHVybiB0aGlzO2lmKHIuaXNMZWFmKXJldHVybiB0LmVtcHR5O2xldCBhLHM7Zm9yKGxldCBsPTA7bDx0aGlzLmNoaWxkcmVuLmxlbmd0aDtsKz0zKWlmKHRoaXMuY2hpbGRyZW5bbF0+PWUpe3RoaXMuY2hpbGRyZW5bbF09PWUmJihhPXRoaXMuY2hpbGRyZW5bbCsyXSk7YnJlYWt9bGV0IG49ZSsxLG89bityLmNvbnRlbnQuc2l6ZTtmb3IobGV0IGw9MDtsPHRoaXMubG9jYWwubGVuZ3RoO2wrKyl7bGV0IGM9dGhpcy5sb2NhbFtsXTtpZihjLmZyb208byYmYy50bz5uJiZjLnR5cGUgaW5zdGFuY2VvZiBxOSl7bGV0IGQ9TWF0aC5tYXgobixjLmZyb20pLW4sZj1NYXRoLm1pbihvLGMudG8pLW47ZDxmJiYoc3x8KHM9W10pKS5wdXNoKGMuY29weShkLGYpKX19aWYocyl7bGV0IGw9bmV3IHQocy5zb3J0KGo5KSxudyk7cmV0dXJuIGE/bmV3IEFmZShbbCxhXSk6bH1yZXR1cm4gYXx8em99ZXEoZSl7aWYodGhpcz09ZSlyZXR1cm4hMDtpZighKGUgaW5zdGFuY2VvZiB0KXx8dGhpcy5sb2NhbC5sZW5ndGghPWUubG9jYWwubGVuZ3RofHx0aGlzLmNoaWxkcmVuLmxlbmd0aCE9ZS5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjx0aGlzLmxvY2FsLmxlbmd0aDtyKyspaWYoIXRoaXMubG9jYWxbcl0uZXEoZS5sb2NhbFtyXSkpcmV0dXJuITE7Zm9yKGxldCByPTA7cjx0aGlzLmNoaWxkcmVuLmxlbmd0aDtyKz0zKWlmKHRoaXMuY2hpbGRyZW5bcl0hPWUuY2hpbGRyZW5bcl18fHRoaXMuY2hpbGRyZW5bcisxXSE9ZS5jaGlsZHJlbltyKzFdfHwhdGhpcy5jaGlsZHJlbltyKzJdLmVxKGUuY2hpbGRyZW5bcisyXSkpcmV0dXJuITE7cmV0dXJuITB9bG9jYWxzKGUpe3JldHVybiBRbXQodGhpcy5sb2NhbHNJbm5lcihlKSl9bG9jYWxzSW5uZXIoZSl7aWYodGhpcz09em8pcmV0dXJuIG53O2lmKGUuaW5saW5lQ29udGVudHx8IXRoaXMubG9jYWwuc29tZShxOS5pcykpcmV0dXJuIHRoaXMubG9jYWw7bGV0IHI9W107Zm9yKGxldCBhPTA7YTx0aGlzLmxvY2FsLmxlbmd0aDthKyspdGhpcy5sb2NhbFthXS50eXBlIGluc3RhbmNlb2YgcTl8fHIucHVzaCh0aGlzLmxvY2FsW2FdKTtyZXR1cm4gcn1mb3JFYWNoU2V0KGUpe2UodGhpcyl9fTtVby5lbXB0eT1uZXcgVW8oW10sW10pLFVvLnJlbW92ZU92ZXJsYXA9UW10O3pvPVVvLmVtcHR5LEFmZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkRlY29yYXRpb25Hcm91cCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMubWVtYmVycz1lfW1hcChlLHIpe2xldCBhPXRoaXMubWVtYmVycy5tYXAocz0+cy5tYXAoZSxyLFY5KSk7cmV0dXJuIHQuZnJvbShhKX1mb3JDaGlsZChlLHIpe2lmKHIuaXNMZWFmKXJldHVybiBVby5lbXB0eTtsZXQgYT1bXTtmb3IobGV0IHM9MDtzPHRoaXMubWVtYmVycy5sZW5ndGg7cysrKXtsZXQgbj10aGlzLm1lbWJlcnNbc10uZm9yQ2hpbGQoZSxyKTtuIT16byYmKG4gaW5zdGFuY2VvZiB0P2E9YS5jb25jYXQobi5tZW1iZXJzKTphLnB1c2gobikpfXJldHVybiB0LmZyb20oYSl9ZXEoZSl7aWYoIShlIGluc3RhbmNlb2YgdCl8fGUubWVtYmVycy5sZW5ndGghPXRoaXMubWVtYmVycy5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjx0aGlzLm1lbWJlcnMubGVuZ3RoO3IrKylpZighdGhpcy5tZW1iZXJzW3JdLmVxKGUubWVtYmVyc1tyXSkpcmV0dXJuITE7cmV0dXJuITB9bG9jYWxzKGUpe2xldCByLGE9ITA7Zm9yKGxldCBzPTA7czx0aGlzLm1lbWJlcnMubGVuZ3RoO3MrKyl7bGV0IG49dGhpcy5tZW1iZXJzW3NdLmxvY2Fsc0lubmVyKGUpO2lmKG4ubGVuZ3RoKWlmKCFyKXI9bjtlbHNle2EmJihyPXIuc2xpY2UoKSxhPSExKTtmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKylyLnB1c2gobltvXSl9fXJldHVybiByP1FtdChhP3I6ci5zb3J0KGo5KSk6bnd9c3RhdGljIGZyb20oZSl7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHpvO2Nhc2UgMTpyZXR1cm4gZVswXTtkZWZhdWx0OnJldHVybiBuZXcgdChlLmV2ZXJ5KHI9PnIgaW5zdGFuY2VvZiBVbyk/ZTplLnJlZHVjZSgocixhKT0+ci5jb25jYXQoYSBpbnN0YW5jZW9mIFVvP2E6YS5tZW1iZXJzKSxbXSkpfX1mb3JFYWNoU2V0KGUpe2ZvcihsZXQgcj0wO3I8dGhpcy5tZW1iZXJzLmxlbmd0aDtyKyspdGhpcy5tZW1iZXJzW3JdLmZvckVhY2hTZXQoZSl9fTtpKGROYSwibWFwQ2hpbGRyZW4iKTtpKENHciwibW92ZVNwYW5zIik7aSh1TmEsIm1hcEFuZEdhdGhlclJlbWFpbmluZ0RlY29yYXRpb25zIik7aSh6R3IsInRha2VTcGFuc0Zvck5vZGUiKTtpKF9Hciwid2l0aG91dE51bGxzIik7aShFZmUsImJ1aWxkVHJlZSIpO2koajksImJ5UG9zIik7aShRbXQsInJlbW92ZU92ZXJsYXAiKTtpKFRHciwiaW5zZXJ0QWhlYWQiKTtpKFhtdCwidmlld0RlY29yYXRpb25zIik7cE5hPXtjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVPbGRWYWx1ZTohMCxzdWJ0cmVlOiEwfSxmTmE9RTEmJllwPD0xMSxKbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2VsZWN0aW9uU3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuYW5jaG9yTm9kZT1udWxsLHRoaXMuYW5jaG9yT2Zmc2V0PTAsdGhpcy5mb2N1c05vZGU9bnVsbCx0aGlzLmZvY3VzT2Zmc2V0PTB9c2V0KGUpe3RoaXMuYW5jaG9yTm9kZT1lLmFuY2hvck5vZGUsdGhpcy5hbmNob3JPZmZzZXQ9ZS5hbmNob3JPZmZzZXQsdGhpcy5mb2N1c05vZGU9ZS5mb2N1c05vZGUsdGhpcy5mb2N1c09mZnNldD1lLmZvY3VzT2Zmc2V0fWNsZWFyKCl7dGhpcy5hbmNob3JOb2RlPXRoaXMuZm9jdXNOb2RlPW51bGx9ZXEoZSl7cmV0dXJuIGUuYW5jaG9yTm9kZT09dGhpcy5hbmNob3JOb2RlJiZlLmFuY2hvck9mZnNldD09dGhpcy5hbmNob3JPZmZzZXQmJmUuZm9jdXNOb2RlPT10aGlzLmZvY3VzTm9kZSYmZS5mb2N1c09mZnNldD09dGhpcy5mb2N1c09mZnNldH19LGU1dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJET01PYnNlcnZlciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy52aWV3PWUsdGhpcy5oYW5kbGVET01DaGFuZ2U9cix0aGlzLnF1ZXVlPVtdLHRoaXMuZmx1c2hpbmdTb29uPS0xLHRoaXMub2JzZXJ2ZXI9bnVsbCx0aGlzLmN1cnJlbnRTZWxlY3Rpb249bmV3IEptdCx0aGlzLm9uQ2hhckRhdGE9bnVsbCx0aGlzLnN1cHByZXNzaW5nU2VsZWN0aW9uVXBkYXRlcz0hMSx0aGlzLmxhc3RDaGFuZ2VkVGV4dE5vZGU9bnVsbCx0aGlzLm9ic2VydmVyPXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyJiZuZXcgd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIoYT0+e2ZvcihsZXQgcz0wO3M8YS5sZW5ndGg7cysrKXRoaXMucXVldWUucHVzaChhW3NdKTtFMSYmWXA8PTExJiZhLnNvbWUocz0+cy50eXBlPT0iY2hpbGRMaXN0IiYmcy5yZW1vdmVkTm9kZXMubGVuZ3RofHxzLnR5cGU9PSJjaGFyYWN0ZXJEYXRhIiYmcy5vbGRWYWx1ZS5sZW5ndGg+cy50YXJnZXQubm9kZVZhbHVlLmxlbmd0aCk/dGhpcy5mbHVzaFNvb24oKTpDbyYmZS5jb21wb3NpbmcmJmEuc29tZShzPT5zLnR5cGU9PSJjaGlsZExpc3QiJiZzLnRhcmdldC5ub2RlTmFtZT09IlRSIik/KGUuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb249ITAsdGhpcy5mbHVzaFNvb24oKSk6dGhpcy5mbHVzaCgpfSksZk5hJiYodGhpcy5vbkNoYXJEYXRhPWE9Pnt0aGlzLnF1ZXVlLnB1c2goe3RhcmdldDphLnRhcmdldCx0eXBlOiJjaGFyYWN0ZXJEYXRhIixvbGRWYWx1ZTphLnByZXZWYWx1ZX0pLHRoaXMuZmx1c2hTb29uKCl9KSx0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlPXRoaXMub25TZWxlY3Rpb25DaGFuZ2UuYmluZCh0aGlzKX1mbHVzaFNvb24oKXt0aGlzLmZsdXNoaW5nU29vbjwwJiYodGhpcy5mbHVzaGluZ1Nvb249d2luZG93LnNldFRpbWVvdXQoKCk9Pnt0aGlzLmZsdXNoaW5nU29vbj0tMSx0aGlzLmZsdXNoKCl9LDIwKSl9Zm9yY2VGbHVzaCgpe3RoaXMuZmx1c2hpbmdTb29uPi0xJiYod2luZG93LmNsZWFyVGltZW91dCh0aGlzLmZsdXNoaW5nU29vbiksdGhpcy5mbHVzaGluZ1Nvb249LTEsdGhpcy5mbHVzaCgpKX1zdGFydCgpe3RoaXMub2JzZXJ2ZXImJih0aGlzLm9ic2VydmVyLnRha2VSZWNvcmRzKCksdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMudmlldy5kb20scE5hKSksdGhpcy5vbkNoYXJEYXRhJiZ0aGlzLnZpZXcuZG9tLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNoYXJhY3RlckRhdGFNb2RpZmllZCIsdGhpcy5vbkNoYXJEYXRhKSx0aGlzLmNvbm5lY3RTZWxlY3Rpb24oKX1zdG9wKCl7aWYodGhpcy5vYnNlcnZlcil7bGV0IGU9dGhpcy5vYnNlcnZlci50YWtlUmVjb3JkcygpO2lmKGUubGVuZ3RoKXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl0aGlzLnF1ZXVlLnB1c2goZVtyXSk7d2luZG93LnNldFRpbWVvdXQoKCk9PnRoaXMuZmx1c2goKSwyMCl9dGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCl9dGhpcy5vbkNoYXJEYXRhJiZ0aGlzLnZpZXcuZG9tLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNoYXJhY3RlckRhdGFNb2RpZmllZCIsdGhpcy5vbkNoYXJEYXRhKSx0aGlzLmRpc2Nvbm5lY3RTZWxlY3Rpb24oKX1jb25uZWN0U2VsZWN0aW9uKCl7dGhpcy52aWV3LmRvbS5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5vblNlbGVjdGlvbkNoYW5nZSl9ZGlzY29ubmVjdFNlbGVjdGlvbigpe3RoaXMudmlldy5kb20ub3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMub25TZWxlY3Rpb25DaGFuZ2UpfXN1cHByZXNzU2VsZWN0aW9uVXBkYXRlcygpe3RoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzPSEwLHNldFRpbWVvdXQoKCk9PnRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzPSExLDUwKX1vblNlbGVjdGlvbkNoYW5nZSgpe2lmKGlHcih0aGlzLnZpZXcpKXtpZih0aGlzLnN1cHByZXNzaW5nU2VsZWN0aW9uVXBkYXRlcylyZXR1cm4gbzModGhpcy52aWV3KTtpZihFMSYmWXA8PTExJiYhdGhpcy52aWV3LnN0YXRlLnNlbGVjdGlvbi5lbXB0eSl7bGV0IGU9dGhpcy52aWV3LmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoZS5mb2N1c05vZGUmJk85KGUuZm9jdXNOb2RlLGUuZm9jdXNPZmZzZXQsZS5hbmNob3JOb2RlLGUuYW5jaG9yT2Zmc2V0KSlyZXR1cm4gdGhpcy5mbHVzaFNvb24oKX10aGlzLmZsdXNoKCl9fXNldEN1clNlbGVjdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbi5zZXQodGhpcy52aWV3LmRvbVNlbGVjdGlvblJhbmdlKCkpfWlnbm9yZVNlbGVjdGlvbkNoYW5nZShlKXtpZighZS5mb2N1c05vZGUpcmV0dXJuITA7bGV0IHI9bmV3IFNldCxhO2ZvcihsZXQgbj1lLmZvY3VzTm9kZTtuO249ZXcobikpci5hZGQobik7Zm9yKGxldCBuPWUuYW5jaG9yTm9kZTtuO249ZXcobikpaWYoci5oYXMobikpe2E9bjticmVha31sZXQgcz1hJiZ0aGlzLnZpZXcuZG9jVmlldy5uZWFyZXN0RGVzYyhhKTtpZihzJiZzLmlnbm9yZU11dGF0aW9uKHt0eXBlOiJzZWxlY3Rpb24iLHRhcmdldDphLm5vZGVUeXBlPT0zP2EucGFyZW50Tm9kZTphfSkpcmV0dXJuIHRoaXMuc2V0Q3VyU2VsZWN0aW9uKCksITB9cGVuZGluZ1JlY29yZHMoKXtpZih0aGlzLm9ic2VydmVyKWZvcihsZXQgZSBvZiB0aGlzLm9ic2VydmVyLnRha2VSZWNvcmRzKCkpdGhpcy5xdWV1ZS5wdXNoKGUpO3JldHVybiB0aGlzLnF1ZXVlfWZsdXNoKCl7bGV0e3ZpZXc6ZX09dGhpcztpZighZS5kb2NWaWV3fHx0aGlzLmZsdXNoaW5nU29vbj4tMSlyZXR1cm47bGV0IHI9dGhpcy5wZW5kaW5nUmVjb3JkcygpO3IubGVuZ3RoJiYodGhpcy5xdWV1ZT1bXSk7bGV0IGE9ZS5kb21TZWxlY3Rpb25SYW5nZSgpLHM9IXRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzJiYhdGhpcy5jdXJyZW50U2VsZWN0aW9uLmVxKGEpJiZpR3IoZSkmJiF0aGlzLmlnbm9yZVNlbGVjdGlvbkNoYW5nZShhKSxuPS0xLG89LTEsbD0hMSxjPVtdO2lmKGUuZWRpdGFibGUpZm9yKGxldCBmPTA7ZjxyLmxlbmd0aDtmKyspe2xldCBwPXRoaXMucmVnaXN0ZXJNdXRhdGlvbihyW2ZdLGMpO3AmJihuPW48MD9wLmZyb206TWF0aC5taW4ocC5mcm9tLG4pLG89bzwwP3AudG86TWF0aC5tYXgocC50byxvKSxwLnR5cGVPdmVyJiYobD0hMCkpfWlmKGMuc29tZShmPT5mLm5vZGVOYW1lPT0iQlIiKSYmKGUuaW5wdXQubGFzdEtleUNvZGU9PTh8fGUuaW5wdXQubGFzdEtleUNvZGU9PTQ2KSl7Zm9yKGxldCBmIG9mIGMpaWYoZi5ub2RlTmFtZT09IkJSIiYmZi5wYXJlbnROb2RlKXtsZXQgcD1mLm5leHRTaWJsaW5nO2Zvcig7cCYmcC5ub2RlVHlwZT09MTspe2lmKHAuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXtmLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZik7YnJlYWt9cD1wLmZpcnN0Q2hpbGR9fX1lbHNlIGlmKGUyJiZjLmxlbmd0aCl7bGV0IGY9Yy5maWx0ZXIocD0+cC5ub2RlTmFtZT09IkJSIik7aWYoZi5sZW5ndGg9PTIpe2xldFtwLGhdPWY7cC5wYXJlbnROb2RlJiZwLnBhcmVudE5vZGUucGFyZW50Tm9kZT09aC5wYXJlbnROb2RlP2gucmVtb3ZlKCk6cC5yZW1vdmUoKX1lbHNle2xldHtmb2N1c05vZGU6cH09dGhpcy5jdXJyZW50U2VsZWN0aW9uO2ZvcihsZXQgaCBvZiBmKXtsZXQgbT1oLnBhcmVudE5vZGU7bSYmbS5ub2RlTmFtZT09IkxJIiYmKCFwfHxnTmEoZSxwKSE9bSkmJmgucmVtb3ZlKCl9fX1sZXQgZD1udWxsO248MCYmcyYmZS5pbnB1dC5sYXN0Rm9jdXM+RGF0ZS5ub3coKS0yMDAmJk1hdGgubWF4KGUuaW5wdXQubGFzdFRvdWNoLGUuaW5wdXQubGFzdENsaWNrLnRpbWUpPERhdGUubm93KCktMzAwJiZTZmUoYSkmJihkPVBtdChlKSkmJmQuZXEoSnQubmVhcihlLnN0YXRlLmRvYy5yZXNvbHZlKDApLDEpKT8oZS5pbnB1dC5sYXN0Rm9jdXM9MCxvMyhlKSx0aGlzLmN1cnJlbnRTZWxlY3Rpb24uc2V0KGEpLGUuc2Nyb2xsVG9TZWxlY3Rpb24oKSk6KG4+LTF8fHMpJiYobj4tMSYmKGUuZG9jVmlldy5tYXJrRGlydHkobixvKSxoTmEoZSkpLGUuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb24mJihlLmlucHV0LmJhZFNhZmFyaUNvbXBvc2l0aW9uPSExLGJOYShlLGMpKSx0aGlzLmhhbmRsZURPTUNoYW5nZShuLG8sbCxjKSxlLmRvY1ZpZXcmJmUuZG9jVmlldy5kaXJ0eT9lLnVwZGF0ZVN0YXRlKGUuc3RhdGUpOnRoaXMuY3VycmVudFNlbGVjdGlvbi5lcShhKXx8bzMoZSksdGhpcy5jdXJyZW50U2VsZWN0aW9uLnNldChhKSl9cmVnaXN0ZXJNdXRhdGlvbihlLHIpe2lmKHIuaW5kZXhPZihlLnRhcmdldCk+LTEpcmV0dXJuIG51bGw7bGV0IGE9dGhpcy52aWV3LmRvY1ZpZXcubmVhcmVzdERlc2MoZS50YXJnZXQpO2lmKGUudHlwZT09ImF0dHJpYnV0ZXMiJiYoYT09dGhpcy52aWV3LmRvY1ZpZXd8fGUuYXR0cmlidXRlTmFtZT09ImNvbnRlbnRlZGl0YWJsZSJ8fGUuYXR0cmlidXRlTmFtZT09InN0eWxlIiYmIWUub2xkVmFsdWUmJiFlLnRhcmdldC5nZXRBdHRyaWJ1dGUoInN0eWxlIikpfHwhYXx8YS5pZ25vcmVNdXRhdGlvbihlKSlyZXR1cm4gbnVsbDtpZihlLnR5cGU9PSJjaGlsZExpc3QiKXtmb3IobGV0IGY9MDtmPGUuYWRkZWROb2Rlcy5sZW5ndGg7ZisrKXtsZXQgcD1lLmFkZGVkTm9kZXNbZl07ci5wdXNoKHApLHAubm9kZVR5cGU9PTMmJih0aGlzLmxhc3RDaGFuZ2VkVGV4dE5vZGU9cCl9aWYoYS5jb250ZW50RE9NJiZhLmNvbnRlbnRET00hPWEuZG9tJiYhYS5jb250ZW50RE9NLmNvbnRhaW5zKGUudGFyZ2V0KSlyZXR1cm57ZnJvbTphLnBvc0JlZm9yZSx0bzphLnBvc0FmdGVyfTtsZXQgcz1lLnByZXZpb3VzU2libGluZyxuPWUubmV4dFNpYmxpbmc7aWYoRTEmJllwPD0xMSYmZS5hZGRlZE5vZGVzLmxlbmd0aClmb3IobGV0IGY9MDtmPGUuYWRkZWROb2Rlcy5sZW5ndGg7ZisrKXtsZXR7cHJldmlvdXNTaWJsaW5nOnAsbmV4dFNpYmxpbmc6aH09ZS5hZGRlZE5vZGVzW2ZdOyghcHx8QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChlLmFkZGVkTm9kZXMscCk8MCkmJihzPXApLCghaHx8QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChlLmFkZGVkTm9kZXMsaCk8MCkmJihuPWgpfWxldCBvPXMmJnMucGFyZW50Tm9kZT09ZS50YXJnZXQ/UG4ocykrMTowLGw9YS5sb2NhbFBvc0Zyb21ET00oZS50YXJnZXQsbywtMSksYz1uJiZuLnBhcmVudE5vZGU9PWUudGFyZ2V0P1BuKG4pOmUudGFyZ2V0LmNoaWxkTm9kZXMubGVuZ3RoLGQ9YS5sb2NhbFBvc0Zyb21ET00oZS50YXJnZXQsYywxKTtyZXR1cm57ZnJvbTpsLHRvOmR9fWVsc2UgcmV0dXJuIGUudHlwZT09ImF0dHJpYnV0ZXMiP3tmcm9tOmEucG9zQXRTdGFydC1hLmJvcmRlcix0bzphLnBvc0F0RW5kK2EuYm9yZGVyfToodGhpcy5sYXN0Q2hhbmdlZFRleHROb2RlPWUudGFyZ2V0LHtmcm9tOmEucG9zQXRTdGFydCx0bzphLnBvc0F0RW5kLHR5cGVPdmVyOmUudGFyZ2V0Lm5vZGVWYWx1ZT09ZS5vbGRWYWx1ZX0pfX0sTEdyPW5ldyBXZWFrTWFwLERHcj0hMTtpKGhOYSwiY2hlY2tDU1MiKTtpKCRHciwicmFuZ2VUb1NlbGVjdGlvblJhbmdlIik7aShtTmEsInNhZmFyaVNoYWRvd1NlbGVjdGlvblJhbmdlIik7aShnTmEsImJsb2NrUGFyZW50Iik7aShiTmEsImZpeFVwQmFkU2FmYXJpQ29tcG9zaXRpb24iKTtpKHhOYSwicGFyc2VCZXR3ZWVuIik7aSh2TmEsInJ1bGVGcm9tTm9kZSIpO3lOYT0vXihhfGFiYnJ8YWNyb255bXxifGJkW2lvXXxiaWd8YnJ8YnV0dG9ufGNpdGV8Y29kZXxkYXRhKGxpc3QpP3xkZWx8ZGZufGVtfGl8aW1nfGluc3xrYmR8bGFiZWx8bWFwfG1hcmt8bWV0ZXJ8b3V0cHV0fHF8cnVieXxzfHNhbXB8c21hbGx8c3BhbnxzdHJvbmd8c3VbYnBdfHRpbWV8dXx0dHx2YXIpJC9pO2kod05hLCJyZWFkRE9NQ2hhbmdlIik7aShBR3IsInJlc29sdmVTZWxlY3Rpb24iKTtpKGtOYSwiaXNNYXJrQ2hhbmdlIik7aShTTmEsImxvb2tzTGlrZUJhY2tzcGFjZSIpO2kodDV0LCJza2lwQ2xvc2luZ0FuZE9wZW5pbmciKTtpKE1OYSwiZmluZERpZmYiKTtpKEVHciwiaXNTdXJyb2dhdGVQYWlyIik7Q05hPUhtdCx6TmE9SHRlLG93PWNsYXNze3N0YXRpY3tpKHRoaXMsIkVkaXRvclZpZXciKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuX3Jvb3Q9bnVsbCx0aGlzLmZvY3VzZWQ9ITEsdGhpcy50cmFja1dyaXRlcz1udWxsLHRoaXMubW91bnRlZD0hMSx0aGlzLm1hcmtDdXJzb3I9bnVsbCx0aGlzLmN1cnNvcldyYXBwZXI9bnVsbCx0aGlzLmxhc3RTZWxlY3RlZFZpZXdEZXNjPXZvaWQgMCx0aGlzLmlucHV0PW5ldyBqbXQsdGhpcy5wcmV2RGlyZWN0UGx1Z2lucz1bXSx0aGlzLnBsdWdpblZpZXdzPVtdLHRoaXMucmVxdWlyZXNHZWNrb0hhY2tOb2RlPSExLHRoaXMuZHJhZ2dpbmc9bnVsbCx0aGlzLl9wcm9wcz1yLHRoaXMuc3RhdGU9ci5zdGF0ZSx0aGlzLmRpcmVjdFBsdWdpbnM9ci5wbHVnaW5zfHxbXSx0aGlzLmRpcmVjdFBsdWdpbnMuZm9yRWFjaChSR3IpLHRoaXMuZGlzcGF0Y2g9dGhpcy5kaXNwYXRjaC5iaW5kKHRoaXMpLHRoaXMuZG9tPWUmJmUubW91bnR8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUmJihlLmFwcGVuZENoaWxkP2UuYXBwZW5kQ2hpbGQodGhpcy5kb20pOnR5cGVvZiBlPT0iZnVuY3Rpb24iP2UodGhpcy5kb20pOmUubW91bnQmJih0aGlzLm1vdW50ZWQ9ITApKSx0aGlzLmVkaXRhYmxlPU5Hcih0aGlzKSxQR3IodGhpcyksdGhpcy5ub2RlVmlld3M9T0dyKHRoaXMpLHRoaXMuZG9jVmlldz1HV3IodGhpcy5zdGF0ZS5kb2MsSUdyKHRoaXMpLFhtdCh0aGlzKSx0aGlzLmRvbSx0aGlzKSx0aGlzLmRvbU9ic2VydmVyPW5ldyBlNXQodGhpcywoYSxzLG4sbyk9PndOYSh0aGlzLGEscyxuLG8pKSx0aGlzLmRvbU9ic2VydmVyLnN0YXJ0KCksalBhKHRoaXMpLHRoaXMudXBkYXRlUGx1Z2luVmlld3MoKX1nZXQgY29tcG9zaW5nKCl7cmV0dXJuIHRoaXMuaW5wdXQuY29tcG9zaW5nfWdldCBwcm9wcygpe2lmKHRoaXMuX3Byb3BzLnN0YXRlIT10aGlzLnN0YXRlKXtsZXQgZT10aGlzLl9wcm9wczt0aGlzLl9wcm9wcz17fTtmb3IobGV0IHIgaW4gZSl0aGlzLl9wcm9wc1tyXT1lW3JdO3RoaXMuX3Byb3BzLnN0YXRlPXRoaXMuc3RhdGV9cmV0dXJuIHRoaXMuX3Byb3BzfXVwZGF0ZShlKXtlLmhhbmRsZURPTUV2ZW50cyE9dGhpcy5fcHJvcHMuaGFuZGxlRE9NRXZlbnRzJiZVbXQodGhpcyk7bGV0IHI9dGhpcy5fcHJvcHM7dGhpcy5fcHJvcHM9ZSxlLnBsdWdpbnMmJihlLnBsdWdpbnMuZm9yRWFjaChSR3IpLHRoaXMuZGlyZWN0UGx1Z2lucz1lLnBsdWdpbnMpLHRoaXMudXBkYXRlU3RhdGVJbm5lcihlLnN0YXRlLHIpfXNldFByb3BzKGUpe2xldCByPXt9O2ZvcihsZXQgYSBpbiB0aGlzLl9wcm9wcylyW2FdPXRoaXMuX3Byb3BzW2FdO3Iuc3RhdGU9dGhpcy5zdGF0ZTtmb3IobGV0IGEgaW4gZSlyW2FdPWVbYV07dGhpcy51cGRhdGUocil9dXBkYXRlU3RhdGUoZSl7dGhpcy51cGRhdGVTdGF0ZUlubmVyKGUsdGhpcy5fcHJvcHMpfXVwZGF0ZVN0YXRlSW5uZXIoZSxyKXt2YXIgYTtsZXQgcz10aGlzLnN0YXRlLG49ITEsbz0hMTtlLnN0b3JlZE1hcmtzJiZ0aGlzLmNvbXBvc2luZyYmKGtHcih0aGlzKSxvPSEwKSx0aGlzLnN0YXRlPWU7bGV0IGw9cy5wbHVnaW5zIT1lLnBsdWdpbnN8fHRoaXMuX3Byb3BzLnBsdWdpbnMhPXIucGx1Z2lucztpZihsfHx0aGlzLl9wcm9wcy5wbHVnaW5zIT1yLnBsdWdpbnN8fHRoaXMuX3Byb3BzLm5vZGVWaWV3cyE9ci5ub2RlVmlld3Mpe2xldCBtPU9Hcih0aGlzKTtUTmEobSx0aGlzLm5vZGVWaWV3cykmJih0aGlzLm5vZGVWaWV3cz1tLG49ITApfShsfHxyLmhhbmRsZURPTUV2ZW50cyE9dGhpcy5fcHJvcHMuaGFuZGxlRE9NRXZlbnRzKSYmVW10KHRoaXMpLHRoaXMuZWRpdGFibGU9TkdyKHRoaXMpLFBHcih0aGlzKTtsZXQgYz1YbXQodGhpcyksZD1JR3IodGhpcyksZj1zLnBsdWdpbnMhPWUucGx1Z2lucyYmIXMuZG9jLmVxKGUuZG9jKT8icmVzZXQiOmUuc2Nyb2xsVG9TZWxlY3Rpb24+cy5zY3JvbGxUb1NlbGVjdGlvbj8idG8gc2VsZWN0aW9uIjoicHJlc2VydmUiLHA9bnx8IXRoaXMuZG9jVmlldy5tYXRjaGVzTm9kZShlLmRvYyxkLGMpOyhwfHwhZS5zZWxlY3Rpb24uZXEocy5zZWxlY3Rpb24pKSYmKG89ITApO2xldCBoPWY9PSJwcmVzZXJ2ZSImJm8mJnRoaXMuZG9tLnN0eWxlLm92ZXJmbG93QW5jaG9yPT1udWxsJiZsUGEodGhpcyk7aWYobyl7dGhpcy5kb21PYnNlcnZlci5zdG9wKCk7bGV0IG09cCYmKEUxfHxObikmJiF0aGlzLmNvbXBvc2luZyYmIXMuc2VsZWN0aW9uLmVtcHR5JiYhZS5zZWxlY3Rpb24uZW1wdHkmJl9OYShzLnNlbGVjdGlvbixlLnNlbGVjdGlvbik7aWYocCl7bGV0IHY9Tm4/dGhpcy50cmFja1dyaXRlcz10aGlzLmRvbVNlbGVjdGlvblJhbmdlKCkuZm9jdXNOb2RlOm51bGw7dGhpcy5jb21wb3NpbmcmJih0aGlzLmlucHV0LmNvbXBvc2l0aW9uTm9kZT1hTmEodGhpcykpLChufHwhdGhpcy5kb2NWaWV3LnVwZGF0ZShlLmRvYyxkLGMsdGhpcykpJiYodGhpcy5kb2NWaWV3LnVwZGF0ZU91dGVyRGVjbyhkKSx0aGlzLmRvY1ZpZXcuZGVzdHJveSgpLHRoaXMuZG9jVmlldz1HV3IoZS5kb2MsZCxjLHRoaXMuZG9tLHRoaXMpKSx2JiYoIXRoaXMudHJhY2tXcml0ZXN8fCF0aGlzLmRvbS5jb250YWlucyh0aGlzLnRyYWNrV3JpdGVzKSkmJihtPSEwKX1tfHwhKHRoaXMuaW5wdXQubW91c2VEb3duJiZ0aGlzLmRvbU9ic2VydmVyLmN1cnJlbnRTZWxlY3Rpb24uZXEodGhpcy5kb21TZWxlY3Rpb25SYW5nZSgpKSYmTFBhKHRoaXMpKT9vMyh0aGlzLG0pOihyR3IodGhpcyxlLnNlbGVjdGlvbiksdGhpcy5kb21PYnNlcnZlci5zZXRDdXJTZWxlY3Rpb24oKSksdGhpcy5kb21PYnNlcnZlci5zdGFydCgpfXRoaXMudXBkYXRlUGx1Z2luVmlld3MocyksISgoYT10aGlzLmRyYWdnaW5nKT09PW51bGx8fGE9PT12b2lkIDApJiZhLm5vZGUmJiFzLmRvYy5lcShlLmRvYykmJnRoaXMudXBkYXRlRHJhZ2dlZE5vZGUodGhpcy5kcmFnZ2luZyxzKSxmPT0icmVzZXQiP3RoaXMuZG9tLnNjcm9sbFRvcD0wOmY9PSJ0byBzZWxlY3Rpb24iP3RoaXMuc2Nyb2xsVG9TZWxlY3Rpb24oKTpoJiZjUGEoaCl9c2Nyb2xsVG9TZWxlY3Rpb24oKXtsZXQgZT10aGlzLmRvbVNlbGVjdGlvblJhbmdlKCkuZm9jdXNOb2RlO2lmKCEoIWV8fCF0aGlzLmRvbS5jb250YWlucyhlLm5vZGVUeXBlPT0xP2U6ZS5wYXJlbnROb2RlKSkpe2lmKCF0aGlzLnNvbWVQcm9wKCJoYW5kbGVTY3JvbGxUb1NlbGVjdGlvbiIscj0+cih0aGlzKSkpaWYodGhpcy5zdGF0ZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBJdCl7bGV0IHI9dGhpcy5kb2NWaWV3LmRvbUFmdGVyUG9zKHRoaXMuc3RhdGUuc2VsZWN0aW9uLmZyb20pO3Iubm9kZVR5cGU9PTEmJlBXcih0aGlzLHIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZSl9ZWxzZSBQV3IodGhpcyx0aGlzLmNvb3Jkc0F0UG9zKHRoaXMuc3RhdGUuc2VsZWN0aW9uLmhlYWQsMSksZSl9fWRlc3Ryb3lQbHVnaW5WaWV3cygpe2xldCBlO2Zvcig7ZT10aGlzLnBsdWdpblZpZXdzLnBvcCgpOyllLmRlc3Ryb3kmJmUuZGVzdHJveSgpfXVwZGF0ZVBsdWdpblZpZXdzKGUpe2lmKCFlfHxlLnBsdWdpbnMhPXRoaXMuc3RhdGUucGx1Z2luc3x8dGhpcy5kaXJlY3RQbHVnaW5zIT10aGlzLnByZXZEaXJlY3RQbHVnaW5zKXt0aGlzLnByZXZEaXJlY3RQbHVnaW5zPXRoaXMuZGlyZWN0UGx1Z2lucyx0aGlzLmRlc3Ryb3lQbHVnaW5WaWV3cygpO2ZvcihsZXQgcj0wO3I8dGhpcy5kaXJlY3RQbHVnaW5zLmxlbmd0aDtyKyspe2xldCBhPXRoaXMuZGlyZWN0UGx1Z2luc1tyXTthLnNwZWMudmlldyYmdGhpcy5wbHVnaW5WaWV3cy5wdXNoKGEuc3BlYy52aWV3KHRoaXMpKX1mb3IobGV0IHI9MDtyPHRoaXMuc3RhdGUucGx1Z2lucy5sZW5ndGg7cisrKXtsZXQgYT10aGlzLnN0YXRlLnBsdWdpbnNbcl07YS5zcGVjLnZpZXcmJnRoaXMucGx1Z2luVmlld3MucHVzaChhLnNwZWMudmlldyh0aGlzKSl9fWVsc2UgZm9yKGxldCByPTA7cjx0aGlzLnBsdWdpblZpZXdzLmxlbmd0aDtyKyspe2xldCBhPXRoaXMucGx1Z2luVmlld3Nbcl07YS51cGRhdGUmJmEudXBkYXRlKHRoaXMsZSl9fXVwZGF0ZURyYWdnZWROb2RlKGUscil7bGV0IGE9ZS5ub2RlLHM9LTE7aWYoYS5mcm9tPHRoaXMuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSYmdGhpcy5zdGF0ZS5kb2Mubm9kZUF0KGEuZnJvbSk9PWEubm9kZSlzPWEuZnJvbTtlbHNle2xldCBuPWEuZnJvbSsodGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplLXIuZG9jLmNvbnRlbnQuc2l6ZSk7KG4+MCYmbjx0aGlzLnN0YXRlLmRvYy5jb250ZW50LnNpemUmJnRoaXMuc3RhdGUuZG9jLm5vZGVBdChuKSk9PWEubm9kZSYmKHM9bil9dGhpcy5kcmFnZ2luZz1uZXcgRGZlKGUuc2xpY2UsZS5tb3ZlLHM8MD92b2lkIDA6SXQuY3JlYXRlKHRoaXMuc3RhdGUuZG9jLHMpKX1zb21lUHJvcChlLHIpe2xldCBhPXRoaXMuX3Byb3BzJiZ0aGlzLl9wcm9wc1tlXSxzO2lmKGEhPW51bGwmJihzPXI/cihhKTphKSlyZXR1cm4gcztmb3IobGV0IG89MDtvPHRoaXMuZGlyZWN0UGx1Z2lucy5sZW5ndGg7bysrKXtsZXQgbD10aGlzLmRpcmVjdFBsdWdpbnNbb10ucHJvcHNbZV07aWYobCE9bnVsbCYmKHM9cj9yKGwpOmwpKXJldHVybiBzfWxldCBuPXRoaXMuc3RhdGUucGx1Z2lucztpZihuKWZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtsZXQgbD1uW29dLnByb3BzW2VdO2lmKGwhPW51bGwmJihzPXI/cihsKTpsKSlyZXR1cm4gc319aGFzRm9jdXMoKXtpZihFMSl7bGV0IGU9dGhpcy5yb290LmFjdGl2ZUVsZW1lbnQ7aWYoZT09dGhpcy5kb20pcmV0dXJuITA7aWYoIWV8fCF0aGlzLmRvbS5jb250YWlucyhlKSlyZXR1cm4hMTtmb3IoO2UmJnRoaXMuZG9tIT1lJiZ0aGlzLmRvbS5jb250YWlucyhlKTspe2lmKGUuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiExO2U9ZS5wYXJlbnRFbGVtZW50fXJldHVybiEwfXJldHVybiB0aGlzLnJvb3QuYWN0aXZlRWxlbWVudD09dGhpcy5kb219Zm9jdXMoKXt0aGlzLmRvbU9ic2VydmVyLnN0b3AoKSx0aGlzLmVkaXRhYmxlJiZkUGEodGhpcy5kb20pLG8zKHRoaXMpLHRoaXMuZG9tT2JzZXJ2ZXIuc3RhcnQoKX1nZXQgcm9vdCgpe2xldCBlPXRoaXMuX3Jvb3Q7aWYoZT09bnVsbCl7Zm9yKGxldCByPXRoaXMuZG9tLnBhcmVudE5vZGU7cjtyPXIucGFyZW50Tm9kZSlpZihyLm5vZGVUeXBlPT05fHxyLm5vZGVUeXBlPT0xMSYmci5ob3N0KXJldHVybiByLmdldFNlbGVjdGlvbnx8KE9iamVjdC5nZXRQcm90b3R5cGVPZihyKS5nZXRTZWxlY3Rpb249KCk9PnIub3duZXJEb2N1bWVudC5nZXRTZWxlY3Rpb24oKSksdGhpcy5fcm9vdD1yfXJldHVybiBlfHxkb2N1bWVudH11cGRhdGVSb290KCl7dGhpcy5fcm9vdD1udWxsfXBvc0F0Q29vcmRzKGUpe3JldHVybiBtUGEodGhpcyxlKX1jb29yZHNBdFBvcyhlLHI9MSl7cmV0dXJuIEhXcih0aGlzLGUscil9ZG9tQXRQb3MoZSxyPTApe3JldHVybiB0aGlzLmRvY1ZpZXcuZG9tRnJvbVBvcyhlLHIpfW5vZGVET00oZSl7bGV0IHI9dGhpcy5kb2NWaWV3LmRlc2NBdChlKTtyZXR1cm4gcj9yLm5vZGVET006bnVsbH1wb3NBdERPTShlLHIsYT0tMSl7bGV0IHM9dGhpcy5kb2NWaWV3LnBvc0Zyb21ET00oZSxyLGEpO2lmKHM9PW51bGwpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkRPTSBwb3NpdGlvbiBub3QgaW5zaWRlIHRoZSBlZGl0b3IiKTtyZXR1cm4gc31lbmRPZlRleHRibG9jayhlLHIpe3JldHVybiB5UGEodGhpcyxyfHx0aGlzLnN0YXRlLGUpfXBhc3RlSFRNTChlLHIpe3JldHVybiBWdGUodGhpcywiIixlLCExLHJ8fG5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiKSl9cGFzdGVUZXh0KGUscil7cmV0dXJuIFZ0ZSh0aGlzLGUsbnVsbCwhMCxyfHxuZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIikpfXNlcmlhbGl6ZUZvckNsaXBib2FyZChlKXtyZXR1cm4gQm10KHRoaXMsZSl9ZGVzdHJveSgpe3RoaXMuZG9jVmlldyYmKFVQYSh0aGlzKSx0aGlzLmRlc3Ryb3lQbHVnaW5WaWV3cygpLHRoaXMubW91bnRlZD8odGhpcy5kb2NWaWV3LnVwZGF0ZSh0aGlzLnN0YXRlLmRvYyxbXSxYbXQodGhpcyksdGhpcyksdGhpcy5kb20udGV4dENvbnRlbnQ9IiIpOnRoaXMuZG9tLnBhcmVudE5vZGUmJnRoaXMuZG9tLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5kb20pLHRoaXMuZG9jVmlldy5kZXN0cm95KCksdGhpcy5kb2NWaWV3PW51bGwsWElhKCkpfWdldCBpc0Rlc3Ryb3llZCgpe3JldHVybiB0aGlzLmRvY1ZpZXc9PW51bGx9ZGlzcGF0Y2hFdmVudChlKXtyZXR1cm4gR1BhKHRoaXMsZSl9ZG9tU2VsZWN0aW9uUmFuZ2UoKXtsZXQgZT10aGlzLmRvbVNlbGVjdGlvbigpO3JldHVybiBlP0NvJiZ0aGlzLnJvb3Qubm9kZVR5cGU9PT0xMSYmYVBhKHRoaXMuZG9tLm93bmVyRG9jdW1lbnQpPT10aGlzLmRvbSYmbU5hKHRoaXMsZSl8fGU6e2ZvY3VzTm9kZTpudWxsLGZvY3VzT2Zmc2V0OjAsYW5jaG9yTm9kZTpudWxsLGFuY2hvck9mZnNldDowfX1kb21TZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290LmdldFNlbGVjdGlvbigpfX07b3cucHJvdG90eXBlLmRpc3BhdGNoPWZ1bmN0aW9uKHQpe2xldCBlPXRoaXMuX3Byb3BzLmRpc3BhdGNoVHJhbnNhY3Rpb247ZT9lLmNhbGwodGhpcyx0KTp0aGlzLnVwZGF0ZVN0YXRlKHRoaXMuc3RhdGUuYXBwbHkodCkpfTtpKElHciwiY29tcHV0ZURvY0RlY28iKTtpKFBHciwidXBkYXRlQ3Vyc29yV3JhcHBlciIpO2koTkdyLCJnZXRFZGl0YWJsZSIpO2koX05hLCJzZWxlY3Rpb25Db250ZXh0Q2hhbmdlZCIpO2koT0dyLCJidWlsZE5vZGVWaWV3cyIpO2koVE5hLCJjaGFuZ2VkTm9kZVZpZXdzIik7aShSR3IsImNoZWNrU3RhdGVDb21wb25lbnQiKX0pO3ZhciBGR3I9dSgoKT0+e3I1dCgpfSk7ZnVuY3Rpb24gQkdyKHQpe3ZhciBlPUxOYSYmdC5tZXRhS2V5JiZ0LnNoaWZ0S2V5JiYhdC5jdHJsS2V5JiYhdC5hbHRLZXl8fEROYSYmdC5zaGlmdEtleSYmdC5rZXkmJnQua2V5Lmxlbmd0aD09MXx8dC5rZXk9PSJVbmlkZW50aWZpZWQiLHI9IWUmJnQua2V5fHwodC5zaGlmdEtleT9JZmU6bDMpW3Qua2V5Q29kZV18fHQua2V5fHwiVW5pZGVudGlmaWVkIjtyZXR1cm4gcj09IkVzYyImJihyPSJFc2NhcGUiKSxyPT0iRGVsIiYmKHI9IkRlbGV0ZSIpLHI9PSJMZWZ0IiYmKHI9IkFycm93TGVmdCIpLHI9PSJVcCImJihyPSJBcnJvd1VwIikscj09IlJpZ2h0IiYmKHI9IkFycm93UmlnaHQiKSxyPT0iRG93biImJihyPSJBcnJvd0Rvd24iKSxyfXZhciBsMyxJZmUsTE5hLEROYSxEcyxQZmUsSEdyPXUoKCk9PntsMz17ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEwOiJFbnRlciIsMTI6Ik51bUxvY2siLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMjA6IkNhcHNMb2NrIiwyNzoiRXNjYXBlIiwzMjoiICIsMzM6IlBhZ2VVcCIsMzQ6IlBhZ2VEb3duIiwzNToiRW5kIiwzNjoiSG9tZSIsMzc6IkFycm93TGVmdCIsMzg6IkFycm93VXAiLDM5OiJBcnJvd1JpZ2h0Iiw0MDoiQXJyb3dEb3duIiw0NDoiUHJpbnRTY3JlZW4iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDU5OiI7Iiw2MToiPSIsOTE6Ik1ldGEiLDkyOiJNZXRhIiwxMDY6IioiLDEwNzoiKyIsMTA4OiIsIiwxMDk6Ii0iLDExMDoiLiIsMTExOiIvIiwxNDQ6Ik51bUxvY2siLDE0NToiU2Nyb2xsTG9jayIsMTYwOiJTaGlmdCIsMTYxOiJTaGlmdCIsMTYyOiJDb250cm9sIiwxNjM6IkNvbnRyb2wiLDE2NDoiQWx0IiwxNjU6IkFsdCIsMTczOiItIiwxODY6IjsiLDE4NzoiPSIsMTg4OiIsIiwxODk6Ii0iLDE5MDoiLiIsMTkxOiIvIiwxOTI6ImAiLDIxOToiWyIsMjIwOiJcXCIsMjIxOiJdIiwyMjI6IicifSxJZmU9ezQ4OiIpIiw0OToiISIsNTA6IkAiLDUxOiIjIiw1MjoiJCIsNTM6IiUiLDU0OiJeIiw1NToiJiIsNTY6IioiLDU3OiIoIiw1OToiOiIsNjE6IisiLDE3MzoiXyIsMTg2OiI6IiwxODc6IisiLDE4ODoiPCIsMTg5OiJfIiwxOTA6Ij4iLDE5MToiPyIsMTkyOiJ+IiwyMTk6InsiLDIyMDoifCIsMjIxOiJ9IiwyMjI6JyInfSxMTmE9dHlwZW9mIG5hdmlnYXRvcjwidSImJi9NYWMvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKSxETmE9dHlwZW9mIG5hdmlnYXRvcjwidSImJi9NU0lFIFxkfFRyaWRlbnRcLyg/Ols3LTldfFxkezIsfSlcLi4qcnY6KFxkKykvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudCk7Zm9yKERzPTA7RHM8MTA7RHMrKylsM1s0OCtEc109bDNbOTYrRHNdPVN0cmluZyhEcyk7Zm9yKERzPTE7RHM8PTI0O0RzKyspbDNbRHMrMTExXT0iRiIrRHM7Zm9yKERzPTY1O0RzPD05MDtEcysrKWwzW0RzXT1TdHJpbmcuZnJvbUNoYXJDb2RlKERzKzMyKSxJZmVbRHNdPVN0cmluZy5mcm9tQ2hhckNvZGUoRHMpO2ZvcihQZmUgaW4gbDMpSWZlLmhhc093blByb3BlcnR5KFBmZSl8fChJZmVbUGZlXT1sM1tQZmVdKTtpKEJHciwia2V5TmFtZSIpfSk7ZnVuY3Rpb24gRU5hKHQpe2xldCBlPXQuc3BsaXQoLy0oPyEkKS8pLHI9ZVtlLmxlbmd0aC0xXTtyPT0iU3BhY2UiJiYocj0iICIpO2xldCBhLHMsbixvO2ZvcihsZXQgbD0wO2w8ZS5sZW5ndGgtMTtsKyspe2xldCBjPWVbbF07aWYoL14oY21kfG1ldGF8bSkkL2kudGVzdChjKSlvPSEwO2Vsc2UgaWYoL15hKGx0KT8kL2kudGVzdChjKSlhPSEwO2Vsc2UgaWYoL14oY3xjdHJsfGNvbnRyb2wpJC9pLnRlc3QoYykpcz0hMDtlbHNlIGlmKC9ecyhoaWZ0KT8kL2kudGVzdChjKSluPSEwO2Vsc2UgaWYoL15tb2QkL2kudGVzdChjKSkkTmE/bz0hMDpzPSEwO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgbW9kaWZpZXIgbmFtZTogIitjKX1yZXR1cm4gYSYmKHI9IkFsdC0iK3IpLHMmJihyPSJDdHJsLSIrciksbyYmKHI9Ik1ldGEtIityKSxuJiYocj0iU2hpZnQtIityKSxyfWZ1bmN0aW9uIElOYSh0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgciBpbiB0KWVbRU5hKHIpXT10W3JdO3JldHVybiBlfWZ1bmN0aW9uIGE1dCh0LGUscj0hMCl7cmV0dXJuIGUuYWx0S2V5JiYodD0iQWx0LSIrdCksZS5jdHJsS2V5JiYodD0iQ3RybC0iK3QpLGUubWV0YUtleSYmKHQ9Ik1ldGEtIit0KSxyJiZlLnNoaWZ0S2V5JiYodD0iU2hpZnQtIit0KSx0fWZ1bmN0aW9uIGk1dCh0KXtyZXR1cm4gbmV3IFFhKHtwcm9wczp7aGFuZGxlS2V5RG93bjpOZmUodCl9fSl9ZnVuY3Rpb24gTmZlKHQpe2xldCBlPUlOYSh0KTtyZXR1cm4gZnVuY3Rpb24ocixhKXtsZXQgcz1CR3IoYSksbixvPWVbYTV0KHMsYSldO2lmKG8mJm8oci5zdGF0ZSxyLmRpc3BhdGNoLHIpKXJldHVybiEwO2lmKHMubGVuZ3RoPT0xJiZzIT0iICIpe2lmKGEuc2hpZnRLZXkpe2xldCBsPWVbYTV0KHMsYSwhMSldO2lmKGwmJmwoci5zdGF0ZSxyLmRpc3BhdGNoLHIpKXJldHVybiEwfWlmKChhLmFsdEtleXx8YS5tZXRhS2V5fHxhLmN0cmxLZXkpJiYhKEFOYSYmYS5jdHJsS2V5JiZhLmFsdEtleSkmJihuPWwzW2Eua2V5Q29kZV0pJiZuIT1zKXtsZXQgbD1lW2E1dChuLGEpXTtpZihsJiZsKHIuc3RhdGUsci5kaXNwYXRjaCxyKSlyZXR1cm4hMH19cmV0dXJuITF9fXZhciAkTmEsQU5hLHM1dD11KCgpPT57SEdyKCk7YTMoKTskTmE9dHlwZW9mIG5hdmlnYXRvcjwidSImJi9NYWN8aVAoaG9uZXxbb2FdZCkvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKSxBTmE9dHlwZW9mIG5hdmlnYXRvcjwidSImJi9XaW4vLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKTtpKEVOYSwibm9ybWFsaXplS2V5TmFtZSIpO2koSU5hLCJub3JtYWxpemUiKTtpKGE1dCwibW9kaWZpZXJzIik7aShpNXQsImtleW1hcCIpO2koTmZlLCJrZXlkb3duSGFuZGxlciIpfSk7dmFyIHFHcj11KCgpPT57czV0KCl9KTt2YXIgVkdyPXUoKCk9PntqcCgpfSk7dmFyIGpHcj11KCgpPT57V3AoKX0pO2Z1bmN0aW9uIFVHcih0LGUpe2xldHskY3Vyc29yOnJ9PXQuc2VsZWN0aW9uO3JldHVybiFyfHwoZT8hZS5lbmRPZlRleHRibG9jaygiYmFja3dhcmQiLHQpOnIucGFyZW50T2Zmc2V0PjApP251bGw6cn1mdW5jdGlvbiBXR3IodCxlLHIpe2xldCBhPWUubm9kZUJlZm9yZSxzPWEsbj1lLnBvcy0xO2Zvcig7IXMuaXNUZXh0YmxvY2s7bi0tKXtpZihzLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0IGY9cy5sYXN0Q2hpbGQ7aWYoIWYpcmV0dXJuITE7cz1mfWxldCBvPWUubm9kZUFmdGVyLGw9byxjPWUucG9zKzE7Zm9yKDshbC5pc1RleHRibG9jaztjKyspe2lmKGwudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMTtsZXQgZj1sLmZpcnN0Q2hpbGQ7aWYoIWYpcmV0dXJuITE7bD1mfWxldCBkPVh5KHQuZG9jLG4sYyxtdC5lbXB0eSk7aWYoIWR8fGQuZnJvbSE9bnx8ZCBpbnN0YW5jZW9mIEluJiZkLnNsaWNlLnNpemU+PWMtbilyZXR1cm4hMTtpZihyKXtsZXQgZj10LnRyLnN0ZXAoZCk7Zi5zZXRTZWxlY3Rpb24oZXIuY3JlYXRlKGYuZG9jLG4pKSxyKGYuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9ZnVuY3Rpb24gbHcodCxlLHI9ITEpe2ZvcihsZXQgYT10O2E7YT1lPT0ic3RhcnQiP2EuZmlyc3RDaGlsZDphLmxhc3RDaGlsZCl7aWYoYS5pc1RleHRibG9jaylyZXR1cm4hMDtpZihyJiZhLmNoaWxkQ291bnQhPTEpcmV0dXJuITF9cmV0dXJuITF9ZnVuY3Rpb24gbjV0KHQpe2lmKCF0LnBhcmVudC50eXBlLnNwZWMuaXNvbGF0aW5nKWZvcihsZXQgZT10LmRlcHRoLTE7ZT49MDtlLS0pe2lmKHQuaW5kZXgoZSk+MClyZXR1cm4gdC5kb2MucmVzb2x2ZSh0LmJlZm9yZShlKzEpKTtpZih0Lm5vZGUoZSkudHlwZS5zcGVjLmlzb2xhdGluZylicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBHR3IodCxlKXtsZXR7JGN1cnNvcjpyfT10LnNlbGVjdGlvbjtyZXR1cm4hcnx8KGU/IWUuZW5kT2ZUZXh0YmxvY2soImZvcndhcmQiLHQpOnIucGFyZW50T2Zmc2V0PHIucGFyZW50LmNvbnRlbnQuc2l6ZSk/bnVsbDpyfWZ1bmN0aW9uIG81dCh0KXtpZighdC5wYXJlbnQudHlwZS5zcGVjLmlzb2xhdGluZylmb3IobGV0IGU9dC5kZXB0aC0xO2U+PTA7ZS0tKXtsZXQgcj10Lm5vZGUoZSk7aWYodC5pbmRleChlKSsxPHIuY2hpbGRDb3VudClyZXR1cm4gdC5kb2MucmVzb2x2ZSh0LmFmdGVyKGUrMSkpO2lmKHIudHlwZS5zcGVjLmlzb2xhdGluZylicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBsNXQodCl7Zm9yKGxldCBlPTA7ZTx0LmVkZ2VDb3VudDtlKyspe2xldHt0eXBlOnJ9PXQuZWRnZShlKTtpZihyLmlzVGV4dGJsb2NrJiYhci5oYXNSZXF1aXJlZEF0dHJzKCkpcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gWUdyKHQpe3JldHVybihlLHIpPT57bGV0eyRmcm9tOmEsJHRvOnN9PWUuc2VsZWN0aW9uO2lmKGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgSXQmJmUuc2VsZWN0aW9uLm5vZGUuaXNCbG9jaylyZXR1cm4hYS5wYXJlbnRPZmZzZXR8fCFBMShlLmRvYyxhLnBvcyk/ITE6KHImJnIoZS50ci5zcGxpdChhLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApO2lmKCFhLmRlcHRoKXJldHVybiExO2xldCBuPVtdLG8sbCxjPSExLGQ9ITE7Zm9yKGxldCBtPWEuZGVwdGg7O20tLSlpZihhLm5vZGUobSkuaXNCbG9jayl7Yz1hLmVuZChtKT09YS5wb3MrKGEuZGVwdGgtbSksZD1hLnN0YXJ0KG0pPT1hLnBvcy0oYS5kZXB0aC1tKSxsPWw1dChhLm5vZGUobS0xKS5jb250ZW50TWF0Y2hBdChhLmluZGV4QWZ0ZXIobS0xKSkpO2xldCBiPXQmJnQocy5wYXJlbnQsYyxhKTtuLnVuc2hpZnQoYnx8KGMmJmw/e3R5cGU6bH06bnVsbCkpLG89bTticmVha31lbHNle2lmKG09PTEpcmV0dXJuITE7bi51bnNoaWZ0KG51bGwpfWxldCBmPWUudHI7KGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgZXJ8fGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgTW8pJiZmLmRlbGV0ZVNlbGVjdGlvbigpO2xldCBwPWYubWFwcGluZy5tYXAoYS5wb3MpLGg9QTEoZi5kb2MscCxuLmxlbmd0aCxuKTtpZihofHwoblswXT1sP3t0eXBlOmx9Om51bGwsaD1BMShmLmRvYyxwLG4ubGVuZ3RoLG4pKSwhaClyZXR1cm4hMTtpZihmLnNwbGl0KHAsbi5sZW5ndGgsbiksIWMmJmQmJmEubm9kZShvKS50eXBlIT1sKXtsZXQgbT1mLm1hcHBpbmcubWFwKGEuYmVmb3JlKG8pKSx2PWYuZG9jLnJlc29sdmUobSk7bCYmYS5ub2RlKG8tMSkuY2FuUmVwbGFjZVdpdGgodi5pbmRleCgpLHYuaW5kZXgoKSsxLGwpJiZmLnNldE5vZGVNYXJrdXAoZi5tYXBwaW5nLm1hcChhLmJlZm9yZShvKSksbCl9cmV0dXJuIHImJnIoZi5zY3JvbGxJbnRvVmlldygpKSwhMH19ZnVuY3Rpb24gTk5hKHQsZSxyKXtsZXQgYT1lLm5vZGVCZWZvcmUscz1lLm5vZGVBZnRlcixuPWUuaW5kZXgoKTtyZXR1cm4hYXx8IXN8fCFhLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQocy50eXBlKT8hMTohYS5jb250ZW50LnNpemUmJmUucGFyZW50LmNhblJlcGxhY2Uobi0xLG4pPyhyJiZyKHQudHIuZGVsZXRlKGUucG9zLWEubm9kZVNpemUsZS5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohZS5wYXJlbnQuY2FuUmVwbGFjZShuLG4rMSl8fCEocy5pc1RleHRibG9ja3x8Y2wodC5kb2MsZS5wb3MpKT8hMToociYmcih0LnRyLmpvaW4oZS5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKX1mdW5jdGlvbiBaR3IodCxlLHIsYSl7bGV0IHM9ZS5ub2RlQmVmb3JlLG49ZS5ub2RlQWZ0ZXIsbyxsLGM9cy50eXBlLnNwZWMuaXNvbGF0aW5nfHxuLnR5cGUuc3BlYy5pc29sYXRpbmc7aWYoIWMmJk5OYSh0LGUscikpcmV0dXJuITA7bGV0IGQ9IWMmJmUucGFyZW50LmNhblJlcGxhY2UoZS5pbmRleCgpLGUuaW5kZXgoKSsxKTtpZihkJiYobz0obD1zLmNvbnRlbnRNYXRjaEF0KHMuY2hpbGRDb3VudCkpLmZpbmRXcmFwcGluZyhuLnR5cGUpKSYmbC5tYXRjaFR5cGUob1swXXx8bi50eXBlKS52YWxpZEVuZCl7aWYocil7bGV0IG09ZS5wb3Mrbi5ub2RlU2l6ZSx2PUplLmVtcHR5O2ZvcihsZXQgeT1vLmxlbmd0aC0xO3k+PTA7eS0tKXY9SmUuZnJvbShvW3ldLmNyZWF0ZShudWxsLHYpKTt2PUplLmZyb20ocy5jb3B5KHYpKTtsZXQgYj10LnRyLnN0ZXAobmV3IGRzKGUucG9zLTEsbSxlLnBvcyxtLG5ldyBtdCh2LDEsMCksby5sZW5ndGgsITApKSxnPWIuZG9jLnJlc29sdmUobSsyKm8ubGVuZ3RoKTtnLm5vZGVBZnRlciYmZy5ub2RlQWZ0ZXIudHlwZT09cy50eXBlJiZjbChiLmRvYyxnLnBvcykmJmIuam9pbihnLnBvcykscihiLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfWxldCBmPW4udHlwZS5zcGVjLmlzb2xhdGluZ3x8YT4wJiZjP251bGw6SnQuZmluZEZyb20oZSwxKSxwPWYmJmYuJGZyb20uYmxvY2tSYW5nZShmLiR0byksaD1wJiZjZChwKTtpZihoIT1udWxsJiZoPj1lLmRlcHRoKXJldHVybiByJiZyKHQudHIubGlmdChwLGgpLnNjcm9sbEludG9WaWV3KCkpLCEwO2lmKGQmJmx3KG4sInN0YXJ0IiwhMCkmJmx3KHMsImVuZCIpKXtsZXQgbT1zLHY9W107Zm9yKDt2LnB1c2gobSksIW0uaXNUZXh0YmxvY2s7KW09bS5sYXN0Q2hpbGQ7bGV0IGI9bixnPTE7Zm9yKDshYi5pc1RleHRibG9jaztiPWIuZmlyc3RDaGlsZClnKys7aWYobS5jYW5SZXBsYWNlKG0uY2hpbGRDb3VudCxtLmNoaWxkQ291bnQsYi5jb250ZW50KSl7aWYocil7bGV0IHk9SmUuZW1wdHk7Zm9yKGxldCBNPXYubGVuZ3RoLTE7TT49MDtNLS0peT1KZS5mcm9tKHZbTV0uY29weSh5KSk7bGV0IGs9dC50ci5zdGVwKG5ldyBkcyhlLnBvcy12Lmxlbmd0aCxlLnBvcytuLm5vZGVTaXplLGUucG9zK2csZS5wb3Mrbi5ub2RlU2l6ZS1nLG5ldyBtdCh5LHYubGVuZ3RoLDApLDAsITApKTtyKGsuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIFFHcih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtsZXQgYT1lLnNlbGVjdGlvbixzPXQ8MD9hLiRmcm9tOmEuJHRvLG49cy5kZXB0aDtmb3IoO3Mubm9kZShuKS5pc0lubGluZTspe2lmKCFuKXJldHVybiExO24tLX1yZXR1cm4gcy5ub2RlKG4pLmlzVGV4dGJsb2NrPyhyJiZyKGUudHIuc2V0U2VsZWN0aW9uKGVyLmNyZWF0ZShlLmRvYyx0PDA/cy5zdGFydChuKTpzLmVuZChuKSkpKSwhMCk6ITF9fWZ1bmN0aW9uIHg1dCh0LGU9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uKHIsYSl7bGV0eyRmcm9tOnMsJHRvOm59PXIuc2VsZWN0aW9uLG89cy5ibG9ja1JhbmdlKG4pLGw9byYmRTkobyx0LGUpO3JldHVybiBsPyhhJiZhKHIudHIud3JhcChvLGwpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX19ZnVuY3Rpb24gWWZlKHQsZT1udWxsKXtyZXR1cm4gZnVuY3Rpb24ocixhKXtsZXQgcz0hMTtmb3IobGV0IG49MDtuPHIuc2VsZWN0aW9uLnJhbmdlcy5sZW5ndGgmJiFzO24rKyl7bGV0eyRmcm9tOntwb3M6b30sJHRvOntwb3M6bH19PXIuc2VsZWN0aW9uLnJhbmdlc1tuXTtyLmRvYy5ub2Rlc0JldHdlZW4obyxsLChjLGQpPT57aWYocylyZXR1cm4hMTtpZighKCFjLmlzVGV4dGJsb2NrfHxjLmhhc01hcmt1cCh0LGUpKSlpZihjLnR5cGU9PXQpcz0hMDtlbHNle2xldCBmPXIuZG9jLnJlc29sdmUoZCkscD1mLmluZGV4KCk7cz1mLnBhcmVudC5jYW5SZXBsYWNlV2l0aChwLHArMSx0KX19KX1pZighcylyZXR1cm4hMTtpZihhKXtsZXQgbj1yLnRyO2ZvcihsZXQgbz0wO288ci5zZWxlY3Rpb24ucmFuZ2VzLmxlbmd0aDtvKyspe2xldHskZnJvbTp7cG9zOmx9LCR0bzp7cG9zOmN9fT1yLnNlbGVjdGlvbi5yYW5nZXNbb107bi5zZXRCbG9ja1R5cGUobCxjLHQsZSl9YShuLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1mdW5jdGlvbiBPTmEodCxlLHIsYSl7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2xldHskZnJvbTpuLCR0bzpvfT1lW3NdLGw9bi5kZXB0aD09MD90LmlubGluZUNvbnRlbnQmJnQudHlwZS5hbGxvd3NNYXJrVHlwZShyKTohMTtpZih0Lm5vZGVzQmV0d2VlbihuLnBvcyxvLnBvcywoYyxkKT0+e2lmKGx8fCFhJiZjLmlzQXRvbSYmYy5pc0lubGluZSYmZD49bi5wb3MmJmQrYy5ub2RlU2l6ZTw9by5wb3MpcmV0dXJuITE7bD1jLmlubGluZUNvbnRlbnQmJmMudHlwZS5hbGxvd3NNYXJrVHlwZShyKX0pLGwpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gUk5hKHQpe2xldCBlPVtdO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXR7JGZyb206YSwkdG86c309dFtyXTthLmRvYy5ub2Rlc0JldHdlZW4oYS5wb3Mscy5wb3MsKG4sbyk9PntpZihuLmlzQXRvbSYmbi5jb250ZW50LnNpemUmJm4uaXNJbmxpbmUmJm8+PWEucG9zJiZvK24ubm9kZVNpemU8PXMucG9zKXJldHVybiBvKzE+YS5wb3MmJmUucHVzaChuZXcgTjkoYSxhLmRvYy5yZXNvbHZlKG8rMSkpKSxhPWEuZG9jLnJlc29sdmUobysxK24uY29udGVudC5zaXplKSwhMX0pLGEucG9zPHMucG9zJiZlLnB1c2gobmV3IE45KGEscykpfXJldHVybiBlfWZ1bmN0aW9uIEZOYSh0LGU9bnVsbCxyKXtsZXQgYT0ociYmci5yZW1vdmVXaGVuUHJlc2VudCkhPT0hMSxzPShyJiZyLmVudGVySW5saW5lQXRvbXMpIT09ITEsbj0hKHImJnIuaW5jbHVkZVdoaXRlc3BhY2UpO3JldHVybiBmdW5jdGlvbihvLGwpe2xldHtlbXB0eTpjLCRjdXJzb3I6ZCxyYW5nZXM6Zn09by5zZWxlY3Rpb247aWYoYyYmIWR8fCFPTmEoby5kb2MsZix0LHMpKXJldHVybiExO2lmKGwpaWYoZCl0LmlzSW5TZXQoby5zdG9yZWRNYXJrc3x8ZC5tYXJrcygpKT9sKG8udHIucmVtb3ZlU3RvcmVkTWFyayh0KSk6bChvLnRyLmFkZFN0b3JlZE1hcmsodC5jcmVhdGUoZSkpKTtlbHNle2xldCBwLGg9by50cjtzfHwoZj1STmEoZikpLGE/cD0hZi5zb21lKG09Pm8uZG9jLnJhbmdlSGFzTWFyayhtLiRmcm9tLnBvcyxtLiR0by5wb3MsdCkpOnA9IWYuZXZlcnkobT0+e2xldCB2PSExO3JldHVybiBoLmRvYy5ub2Rlc0JldHdlZW4obS4kZnJvbS5wb3MsbS4kdG8ucG9zLChiLGcseSk9PntpZih2KXJldHVybiExO3Y9IXQuaXNJblNldChiLm1hcmtzKSYmISF5JiZ5LnR5cGUuYWxsb3dzTWFya1R5cGUodCkmJiEoYi5pc1RleHQmJi9eXHMqJC8udGVzdChiLnRleHRCZXR3ZWVuKE1hdGgubWF4KDAsbS4kZnJvbS5wb3MtZyksTWF0aC5taW4oYi5ub2RlU2l6ZSxtLiR0by5wb3MtZykpKSl9KSwhdn0pO2ZvcihsZXQgbT0wO208Zi5sZW5ndGg7bSsrKXtsZXR7JGZyb206diwkdG86Yn09ZlttXTtpZighcCloLnJlbW92ZU1hcmsodi5wb3MsYi5wb3MsdCk7ZWxzZXtsZXQgZz12LnBvcyx5PWIucG9zLGs9di5ub2RlQWZ0ZXIsTT1iLm5vZGVCZWZvcmUsTj1uJiZrJiZrLmlzVGV4dD8vXlxzKi8uZXhlYyhrLnRleHQpWzBdLmxlbmd0aDowLF89biYmTSYmTS5pc1RleHQ/L1xzKiQvLmV4ZWMoTS50ZXh0KVswXS5sZW5ndGg6MDtnK048eSYmKGcrPU4seS09XyksaC5hZGRNYXJrKGcseSx0LmNyZWF0ZShlKSl9fWwoaC5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH19ZnVuY3Rpb24gQk5hKHQsZSl7cmV0dXJuIHI9PntpZighci5pc0dlbmVyaWMpcmV0dXJuIHQocik7bGV0IGE9W107Zm9yKGxldCBuPTA7bjxyLm1hcHBpbmcubWFwcy5sZW5ndGg7bisrKXtsZXQgbz1yLm1hcHBpbmcubWFwc1tuXTtmb3IobGV0IGw9MDtsPGEubGVuZ3RoO2wrKylhW2xdPW8ubWFwKGFbbF0pO28uZm9yRWFjaCgobCxjLGQsZik9PmEucHVzaChkLGYpKX1sZXQgcz1bXTtmb3IobGV0IG49MDtuPGEubGVuZ3RoO24rPTIpe2xldCBvPWFbbl0sbD1hW24rMV0sYz1yLmRvYy5yZXNvbHZlKG8pLGQ9Yy5zaGFyZWREZXB0aChsKSxmPWMubm9kZShkKTtmb3IobGV0IHA9Yy5pbmRleEFmdGVyKGQpLGg9Yy5hZnRlcihkKzEpO2g8PWw7KytwKXtsZXQgbT1mLm1heWJlQ2hpbGQocCk7aWYoIW0pYnJlYWs7aWYocCYmcy5pbmRleE9mKGgpPT0tMSl7bGV0IHY9Zi5jaGlsZChwLTEpO3YudHlwZT09bS50eXBlJiZlKHYsbSkmJnMucHVzaChoKX1oKz1tLm5vZGVTaXplfX1zLnNvcnQoKG4sbyk9Pm4tbyk7Zm9yKGxldCBuPXMubGVuZ3RoLTE7bj49MDtuLS0pY2woci5kb2Msc1tuXSkmJnIuam9pbihzW25dKTt0KHIpfX1mdW5jdGlvbiBITmEodCxlKXtsZXQgcj1BcnJheS5pc0FycmF5KGUpP2E9PmUuaW5kZXhPZihhLnR5cGUubmFtZSk+LTE6ZTtyZXR1cm4oYSxzLG4pPT50KGEscyYmQk5hKHMsciksbil9ZnVuY3Rpb24gT2ZlKC4uLnQpe3JldHVybiBmdW5jdGlvbihlLHIsYSl7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspaWYodFtzXShlLHIsYSkpcmV0dXJuITA7cmV0dXJuITF9fXZhciBVdGUsUmZlLHA1dCxmNXQsRmZlLEJmZSxIZmUsaDV0LG01dCxnNXQscWZlLFZmZSxqZmUsVWZlLGM1dCxQTmEsYjV0LEtHcixXZmUsR2ZlLGQ1dCxYR3IscGQsdTV0LHFOYSxWTmEsSkdyPXUoKCk9PntXcCgpO2pwKCk7YTMoKTtVdGU9aSgodCxlKT0+dC5zZWxlY3Rpb24uZW1wdHk/ITE6KGUmJmUodC50ci5kZWxldGVTZWxlY3Rpb24oKS5zY3JvbGxJbnRvVmlldygpKSwhMCksImRlbGV0ZVNlbGVjdGlvbiIpO2koVUdyLCJhdEJsb2NrU3RhcnQiKTtSZmU9aSgodCxlLHIpPT57bGV0IGE9VUdyKHQscik7aWYoIWEpcmV0dXJuITE7bGV0IHM9bjV0KGEpO2lmKCFzKXtsZXQgbz1hLmJsb2NrUmFuZ2UoKSxsPW8mJmNkKG8pO3JldHVybiBsPT1udWxsPyExOihlJiZlKHQudHIubGlmdChvLGwpLnNjcm9sbEludG9WaWV3KCkpLCEwKX1sZXQgbj1zLm5vZGVCZWZvcmU7aWYoWkdyKHQscyxlLC0xKSlyZXR1cm4hMDtpZihhLnBhcmVudC5jb250ZW50LnNpemU9PTAmJihsdyhuLCJlbmQiKXx8SXQuaXNTZWxlY3RhYmxlKG4pKSlmb3IobGV0IG89YS5kZXB0aDs7by0tKXtsZXQgbD1YeSh0LmRvYyxhLmJlZm9yZShvKSxhLmFmdGVyKG8pLG10LmVtcHR5KTtpZihsJiZsLnNsaWNlLnNpemU8bC50by1sLmZyb20pe2lmKGUpe2xldCBjPXQudHIuc3RlcChsKTtjLnNldFNlbGVjdGlvbihsdyhuLCJlbmQiKT9KdC5maW5kRnJvbShjLmRvYy5yZXNvbHZlKGMubWFwcGluZy5tYXAocy5wb3MsLTEpKSwtMSk6SXQuY3JlYXRlKGMuZG9jLHMucG9zLW4ubm9kZVNpemUpKSxlKGMuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9aWYobz09MXx8YS5ub2RlKG8tMSkuY2hpbGRDb3VudD4xKWJyZWFrfXJldHVybiBuLmlzQXRvbSYmcy5kZXB0aD09YS5kZXB0aC0xPyhlJiZlKHQudHIuZGVsZXRlKHMucG9zLW4ubm9kZVNpemUscy5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX0sImpvaW5CYWNrd2FyZCIpLHA1dD1pKCh0LGUscik9PntsZXQgYT1VR3IodCxyKTtpZighYSlyZXR1cm4hMTtsZXQgcz1uNXQoYSk7cmV0dXJuIHM/V0dyKHQscyxlKTohMX0sImpvaW5UZXh0YmxvY2tCYWNrd2FyZCIpLGY1dD1pKCh0LGUscik9PntsZXQgYT1HR3IodCxyKTtpZighYSlyZXR1cm4hMTtsZXQgcz1vNXQoYSk7cmV0dXJuIHM/V0dyKHQscyxlKTohMX0sImpvaW5UZXh0YmxvY2tGb3J3YXJkIik7aShXR3IsImpvaW5UZXh0YmxvY2tzQXJvdW5kIik7aShsdywidGV4dGJsb2NrQXQiKTtGZmU9aSgodCxlLHIpPT57bGV0eyRoZWFkOmEsZW1wdHk6c309dC5zZWxlY3Rpb24sbj1hO2lmKCFzKXJldHVybiExO2lmKGEucGFyZW50LmlzVGV4dGJsb2NrKXtpZihyPyFyLmVuZE9mVGV4dGJsb2NrKCJiYWNrd2FyZCIsdCk6YS5wYXJlbnRPZmZzZXQ+MClyZXR1cm4hMTtuPW41dChhKX1sZXQgbz1uJiZuLm5vZGVCZWZvcmU7cmV0dXJuIW98fCFJdC5pc1NlbGVjdGFibGUobyk/ITE6KGUmJmUodC50ci5zZXRTZWxlY3Rpb24oSXQuY3JlYXRlKHQuZG9jLG4ucG9zLW8ubm9kZVNpemUpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlQmFja3dhcmQiKTtpKG41dCwiZmluZEN1dEJlZm9yZSIpO2koR0dyLCJhdEJsb2NrRW5kIik7QmZlPWkoKHQsZSxyKT0+e2xldCBhPUdHcih0LHIpO2lmKCFhKXJldHVybiExO2xldCBzPW81dChhKTtpZighcylyZXR1cm4hMTtsZXQgbj1zLm5vZGVBZnRlcjtpZihaR3IodCxzLGUsMSkpcmV0dXJuITA7aWYoYS5wYXJlbnQuY29udGVudC5zaXplPT0wJiYobHcobiwic3RhcnQiKXx8SXQuaXNTZWxlY3RhYmxlKG4pKSl7bGV0IG89WHkodC5kb2MsYS5iZWZvcmUoKSxhLmFmdGVyKCksbXQuZW1wdHkpO2lmKG8mJm8uc2xpY2Uuc2l6ZTxvLnRvLW8uZnJvbSl7aWYoZSl7bGV0IGw9dC50ci5zdGVwKG8pO2wuc2V0U2VsZWN0aW9uKGx3KG4sInN0YXJ0Iik/SnQuZmluZEZyb20obC5kb2MucmVzb2x2ZShsLm1hcHBpbmcubWFwKHMucG9zKSksMSk6SXQuY3JlYXRlKGwuZG9jLGwubWFwcGluZy5tYXAocy5wb3MpKSksZShsLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1yZXR1cm4gbi5pc0F0b20mJnMuZGVwdGg9PWEuZGVwdGgtMT8oZSYmZSh0LnRyLmRlbGV0ZShzLnBvcyxzLnBvcytuLm5vZGVTaXplKS5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9LCJqb2luRm9yd2FyZCIpLEhmZT1pKCh0LGUscik9PntsZXR7JGhlYWQ6YSxlbXB0eTpzfT10LnNlbGVjdGlvbixuPWE7aWYoIXMpcmV0dXJuITE7aWYoYS5wYXJlbnQuaXNUZXh0YmxvY2spe2lmKHI/IXIuZW5kT2ZUZXh0YmxvY2soImZvcndhcmQiLHQpOmEucGFyZW50T2Zmc2V0PGEucGFyZW50LmNvbnRlbnQuc2l6ZSlyZXR1cm4hMTtuPW81dChhKX1sZXQgbz1uJiZuLm5vZGVBZnRlcjtyZXR1cm4hb3x8IUl0LmlzU2VsZWN0YWJsZShvKT8hMTooZSYmZSh0LnRyLnNldFNlbGVjdGlvbihJdC5jcmVhdGUodC5kb2Msbi5wb3MpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlRm9yd2FyZCIpO2kobzV0LCJmaW5kQ3V0QWZ0ZXIiKTtoNXQ9aSgodCxlKT0+e2xldCByPXQuc2VsZWN0aW9uLGE9ciBpbnN0YW5jZW9mIEl0LHM7aWYoYSl7aWYoci5ub2RlLmlzVGV4dGJsb2NrfHwhY2wodC5kb2Msci5mcm9tKSlyZXR1cm4hMTtzPXIuZnJvbX1lbHNlIGlmKHM9STkodC5kb2Msci5mcm9tLC0xKSxzPT1udWxsKXJldHVybiExO2lmKGUpe2xldCBuPXQudHIuam9pbihzKTthJiZuLnNldFNlbGVjdGlvbihJdC5jcmVhdGUobi5kb2Mscy10LmRvYy5yZXNvbHZlKHMpLm5vZGVCZWZvcmUubm9kZVNpemUpKSxlKG4uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJqb2luVXAiKSxtNXQ9aSgodCxlKT0+e2xldCByPXQuc2VsZWN0aW9uLGE7aWYociBpbnN0YW5jZW9mIEl0KXtpZihyLm5vZGUuaXNUZXh0YmxvY2t8fCFjbCh0LmRvYyxyLnRvKSlyZXR1cm4hMTthPXIudG99ZWxzZSBpZihhPUk5KHQuZG9jLHIudG8sMSksYT09bnVsbClyZXR1cm4hMTtyZXR1cm4gZSYmZSh0LnRyLmpvaW4oYSkuc2Nyb2xsSW50b1ZpZXcoKSksITB9LCJqb2luRG93biIpLGc1dD1pKCh0LGUpPT57bGV0eyRmcm9tOnIsJHRvOmF9PXQuc2VsZWN0aW9uLHM9ci5ibG9ja1JhbmdlKGEpLG49cyYmY2Qocyk7cmV0dXJuIG49PW51bGw/ITE6KGUmJmUodC50ci5saWZ0KHMsbikuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibGlmdCIpLHFmZT1pKCh0LGUpPT57bGV0eyRoZWFkOnIsJGFuY2hvcjphfT10LnNlbGVjdGlvbjtyZXR1cm4hci5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCFyLnNhbWVQYXJlbnQoYSk/ITE6KGUmJmUodC50ci5pbnNlcnRUZXh0KGAKYCkuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibmV3bGluZUluQ29kZSIpO2kobDV0LCJkZWZhdWx0QmxvY2tBdCIpO1ZmZT1pKCh0LGUpPT57bGV0eyRoZWFkOnIsJGFuY2hvcjphfT10LnNlbGVjdGlvbjtpZighci5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCFyLnNhbWVQYXJlbnQoYSkpcmV0dXJuITE7bGV0IHM9ci5ub2RlKC0xKSxuPXIuaW5kZXhBZnRlcigtMSksbz1sNXQocy5jb250ZW50TWF0Y2hBdChuKSk7aWYoIW98fCFzLmNhblJlcGxhY2VXaXRoKG4sbixvKSlyZXR1cm4hMTtpZihlKXtsZXQgbD1yLmFmdGVyKCksYz10LnRyLnJlcGxhY2VXaXRoKGwsbCxvLmNyZWF0ZUFuZEZpbGwoKSk7Yy5zZXRTZWxlY3Rpb24oSnQubmVhcihjLmRvYy5yZXNvbHZlKGwpLDEpKSxlKGMuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJleGl0Q29kZSIpLGpmZT1pKCh0LGUpPT57bGV0IHI9dC5zZWxlY3Rpb24seyRmcm9tOmEsJHRvOnN9PXI7aWYociBpbnN0YW5jZW9mIE1vfHxhLnBhcmVudC5pbmxpbmVDb250ZW50fHxzLnBhcmVudC5pbmxpbmVDb250ZW50KXJldHVybiExO2xldCBuPWw1dChzLnBhcmVudC5jb250ZW50TWF0Y2hBdChzLmluZGV4QWZ0ZXIoKSkpO2lmKCFufHwhbi5pc1RleHRibG9jaylyZXR1cm4hMTtpZihlKXtsZXQgbz0oIWEucGFyZW50T2Zmc2V0JiZzLmluZGV4KCk8cy5wYXJlbnQuY2hpbGRDb3VudD9hOnMpLnBvcyxsPXQudHIuaW5zZXJ0KG8sbi5jcmVhdGVBbmRGaWxsKCkpO2wuc2V0U2VsZWN0aW9uKGVyLmNyZWF0ZShsLmRvYyxvKzEpKSxlKGwuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJjcmVhdGVQYXJhZ3JhcGhOZWFyIiksVWZlPWkoKHQsZSk9PntsZXR7JGN1cnNvcjpyfT10LnNlbGVjdGlvbjtpZighcnx8ci5wYXJlbnQuY29udGVudC5zaXplKXJldHVybiExO2lmKHIuZGVwdGg+MSYmci5hZnRlcigpIT1yLmVuZCgtMSkpe2xldCBuPXIuYmVmb3JlKCk7aWYoQTEodC5kb2MsbikpcmV0dXJuIGUmJmUodC50ci5zcGxpdChuKS5zY3JvbGxJbnRvVmlldygpKSwhMH1sZXQgYT1yLmJsb2NrUmFuZ2UoKSxzPWEmJmNkKGEpO3JldHVybiBzPT1udWxsPyExOihlJiZlKHQudHIubGlmdChhLHMpLnNjcm9sbEludG9WaWV3KCkpLCEwKX0sImxpZnRFbXB0eUJsb2NrIik7aShZR3IsInNwbGl0QmxvY2tBcyIpO2M1dD1ZR3IoKSxQTmE9aSgodCxlKT0+YzV0KHQsZSYmKHI9PntsZXQgYT10LnN0b3JlZE1hcmtzfHx0LnNlbGVjdGlvbi4kdG8ucGFyZW50T2Zmc2V0JiZ0LnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpO2EmJnIuZW5zdXJlTWFya3MoYSksZShyKX0pKSwic3BsaXRCbG9ja0tlZXBNYXJrcyIpLGI1dD1pKCh0LGUpPT57bGV0eyRmcm9tOnIsdG86YX09dC5zZWxlY3Rpb24scyxuPXIuc2hhcmVkRGVwdGgoYSk7cmV0dXJuIG49PTA/ITE6KHM9ci5iZWZvcmUobiksZSYmZSh0LnRyLnNldFNlbGVjdGlvbihJdC5jcmVhdGUodC5kb2MscykpKSwhMCl9LCJzZWxlY3RQYXJlbnROb2RlIiksS0dyPWkoKHQsZSk9PihlJiZlKHQudHIuc2V0U2VsZWN0aW9uKG5ldyBNbyh0LmRvYykpKSwhMCksInNlbGVjdEFsbCIpO2koTk5hLCJqb2luTWF5YmVDbGVhciIpO2koWkdyLCJkZWxldGVCYXJyaWVyIik7aShRR3IsInNlbGVjdFRleHRibG9ja1NpZGUiKTtXZmU9UUdyKC0xKSxHZmU9UUdyKDEpO2koeDV0LCJ3cmFwSW4iKTtpKFlmZSwic2V0QmxvY2tUeXBlIik7aShPTmEsIm1hcmtBcHBsaWVzIik7aShSTmEsInJlbW92ZUlubGluZUF0b21zIik7aShGTmEsInRvZ2dsZU1hcmsiKTtpKEJOYSwid3JhcERpc3BhdGNoRm9ySm9pbiIpO2koSE5hLCJhdXRvSm9pbiIpO2koT2ZlLCJjaGFpbkNvbW1hbmRzIik7ZDV0PU9mZShVdGUsUmZlLEZmZSksWEdyPU9mZShVdGUsQmZlLEhmZSkscGQ9e0VudGVyOk9mZShxZmUsamZlLFVmZSxjNXQpLCJNb2QtRW50ZXIiOlZmZSxCYWNrc3BhY2U6ZDV0LCJNb2QtQmFja3NwYWNlIjpkNXQsIlNoaWZ0LUJhY2tzcGFjZSI6ZDV0LERlbGV0ZTpYR3IsIk1vZC1EZWxldGUiOlhHciwiTW9kLWEiOktHcn0sdTV0PXsiQ3RybC1oIjpwZC5CYWNrc3BhY2UsIkFsdC1CYWNrc3BhY2UiOnBkWyJNb2QtQmFja3NwYWNlIl0sIkN0cmwtZCI6cGQuRGVsZXRlLCJDdHJsLUFsdC1CYWNrc3BhY2UiOnBkWyJNb2QtRGVsZXRlIl0sIkFsdC1EZWxldGUiOnBkWyJNb2QtRGVsZXRlIl0sIkFsdC1kIjpwZFsiTW9kLURlbGV0ZSJdLCJDdHJsLWEiOldmZSwiQ3RybC1lIjpHZmV9O2ZvcihsZXQgdCBpbiBwZCl1NXRbdF09cGRbdF07cU5hPXR5cGVvZiBuYXZpZ2F0b3I8InUiPy9NYWN8aVAoaG9uZXxbb2FdZCkvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKTp0eXBlb2Ygb3M8InUiJiZvcy5wbGF0Zm9ybT9vcy5wbGF0Zm9ybSgpPT0iZGFyd2luIjohMSxWTmE9cU5hP3U1dDpwZH0pO3ZhciBlWXI9dSgoKT0+e0pHcigpfSk7ZnVuY3Rpb24gdjV0KHQsZSl7bGV0IHI9e307Zm9yKGxldCBhIGluIHQpclthXT10W2FdO2ZvcihsZXQgYSBpbiBlKXJbYV09ZVthXTtyZXR1cm4gcn1mdW5jdGlvbiBHTmEodCxlLHIpe3JldHVybiB0LmFwcGVuZCh7b3JkZXJlZF9saXN0OnY1dCh0WXIse2NvbnRlbnQ6Imxpc3RfaXRlbSsiLGdyb3VwOnJ9KSxidWxsZXRfbGlzdDp2NXQocllyLHtjb250ZW50OiJsaXN0X2l0ZW0rIixncm91cDpyfSksbGlzdF9pdGVtOnY1dChhWXIse2NvbnRlbnQ6ZX0pfSl9ZnVuY3Rpb24geTV0KHQsZT1udWxsKXtyZXR1cm4gZnVuY3Rpb24ocixhKXtsZXR7JGZyb206cywkdG86bn09ci5zZWxlY3Rpb24sbz1zLmJsb2NrUmFuZ2Uobik7aWYoIW8pcmV0dXJuITE7bGV0IGw9YT9yLnRyOm51bGw7cmV0dXJuIGlZcihsLG8sdCxlKT8oYSYmYShsLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX19ZnVuY3Rpb24gaVlyKHQsZSxyLGE9bnVsbCl7bGV0IHM9ITEsbj1lLG89ZS4kZnJvbS5kb2M7aWYoZS5kZXB0aD49MiYmZS4kZnJvbS5ub2RlKGUuZGVwdGgtMSkudHlwZS5jb21wYXRpYmxlQ29udGVudChyKSYmZS5zdGFydEluZGV4PT0wKXtpZihlLiRmcm9tLmluZGV4KGUuZGVwdGgtMSk9PTApcmV0dXJuITE7bGV0IGM9by5yZXNvbHZlKGUuc3RhcnQtMik7bj1uZXcgVnAoYyxjLGUuZGVwdGgpLGUuZW5kSW5kZXg8ZS5wYXJlbnQuY2hpbGRDb3VudCYmKGU9bmV3IFZwKGUuJGZyb20sby5yZXNvbHZlKGUuJHRvLmVuZChlLmRlcHRoKSksZS5kZXB0aCkpLHM9ITB9bGV0IGw9RTkobixyLGEsZSk7cmV0dXJuIGw/KHQmJllOYSh0LGUsbCxzLHIpLCEwKTohMX1mdW5jdGlvbiBZTmEodCxlLHIsYSxzKXtsZXQgbj1KZS5lbXB0eTtmb3IobGV0IGY9ci5sZW5ndGgtMTtmPj0wO2YtLSluPUplLmZyb20ocltmXS50eXBlLmNyZWF0ZShyW2ZdLmF0dHJzLG4pKTt0LnN0ZXAobmV3IGRzKGUuc3RhcnQtKGE/MjowKSxlLmVuZCxlLnN0YXJ0LGUuZW5kLG5ldyBtdChuLDAsMCksci5sZW5ndGgsITApKTtsZXQgbz0wO2ZvcihsZXQgZj0wO2Y8ci5sZW5ndGg7ZisrKXJbZl0udHlwZT09cyYmKG89ZisxKTtsZXQgbD1yLmxlbmd0aC1vLGM9ZS5zdGFydCtyLmxlbmd0aC0oYT8yOjApLGQ9ZS5wYXJlbnQ7Zm9yKGxldCBmPWUuc3RhcnRJbmRleCxwPWUuZW5kSW5kZXgsaD0hMDtmPHA7ZisrLGg9ITEpIWgmJkExKHQuZG9jLGMsbCkmJih0LnNwbGl0KGMsbCksYys9MipsKSxjKz1kLmNoaWxkKGYpLm5vZGVTaXplO3JldHVybiB0fWZ1bmN0aW9uIHNZcih0LGUpe3JldHVybiBmdW5jdGlvbihyLGEpe2xldHskZnJvbTpzLCR0bzpuLG5vZGU6b309ci5zZWxlY3Rpb247aWYobyYmby5pc0Jsb2NrfHxzLmRlcHRoPDJ8fCFzLnNhbWVQYXJlbnQobikpcmV0dXJuITE7bGV0IGw9cy5ub2RlKC0xKTtpZihsLnR5cGUhPXQpcmV0dXJuITE7aWYocy5wYXJlbnQuY29udGVudC5zaXplPT0wJiZzLm5vZGUoLTEpLmNoaWxkQ291bnQ9PXMuaW5kZXhBZnRlcigtMSkpe2lmKHMuZGVwdGg9PTN8fHMubm9kZSgtMykudHlwZSE9dHx8cy5pbmRleCgtMikhPXMubm9kZSgtMikuY2hpbGRDb3VudC0xKXJldHVybiExO2lmKGEpe2xldCBwPUplLmVtcHR5LGg9cy5pbmRleCgtMSk/MTpzLmluZGV4KC0yKT8yOjM7Zm9yKGxldCB5PXMuZGVwdGgtaDt5Pj1zLmRlcHRoLTM7eS0tKXA9SmUuZnJvbShzLm5vZGUoeSkuY29weShwKSk7bGV0IG09cy5pbmRleEFmdGVyKC0xKTxzLm5vZGUoLTIpLmNoaWxkQ291bnQ/MTpzLmluZGV4QWZ0ZXIoLTIpPHMubm9kZSgtMykuY2hpbGRDb3VudD8yOjM7cD1wLmFwcGVuZChKZS5mcm9tKHQuY3JlYXRlQW5kRmlsbCgpKSk7bGV0IHY9cy5iZWZvcmUocy5kZXB0aC0oaC0xKSksYj1yLnRyLnJlcGxhY2UodixzLmFmdGVyKC1tKSxuZXcgbXQocCw0LWgsMCkpLGc9LTE7Yi5kb2Mubm9kZXNCZXR3ZWVuKHYsYi5kb2MuY29udGVudC5zaXplLCh5LGspPT57aWYoZz4tMSlyZXR1cm4hMTt5LmlzVGV4dGJsb2NrJiZ5LmNvbnRlbnQuc2l6ZT09MCYmKGc9aysxKX0pLGc+LTEmJmIuc2V0U2VsZWN0aW9uKEp0Lm5lYXIoYi5kb2MucmVzb2x2ZShnKSkpLGEoYi5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH1sZXQgYz1uLnBvcz09cy5lbmQoKT9sLmNvbnRlbnRNYXRjaEF0KDApLmRlZmF1bHRUeXBlOm51bGwsZD1yLnRyLmRlbGV0ZShzLnBvcyxuLnBvcyksZj1jP1tlP3t0eXBlOnQsYXR0cnM6ZX06bnVsbCx7dHlwZTpjfV06dm9pZCAwO3JldHVybiBBMShkLmRvYyxzLnBvcywyLGYpPyhhJiZhKGQuc3BsaXQocy5wb3MsMixmKS5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9fWZ1bmN0aW9uIEtOYSh0LGUpe2xldCByPXNZcih0LGUpO3JldHVybihhLHMpPT5yKGEscyYmKG49PntsZXQgbz1hLnN0b3JlZE1hcmtzfHxhLnNlbGVjdGlvbi4kdG8ucGFyZW50T2Zmc2V0JiZhLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpO28mJm4uZW5zdXJlTWFya3MobykscyhuKX0pKX1mdW5jdGlvbiB3NXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7bGV0eyRmcm9tOmEsJHRvOnN9PWUuc2VsZWN0aW9uLG49YS5ibG9ja1JhbmdlKHMsbz0+by5jaGlsZENvdW50PjAmJm8uZmlyc3RDaGlsZC50eXBlPT10KTtyZXR1cm4gbj9yP2Eubm9kZShuLmRlcHRoLTEpLnR5cGU9PXQ/Wk5hKGUscix0LG4pOlFOYShlLHIsbik6ITA6ITF9fWZ1bmN0aW9uIFpOYSh0LGUscixhKXtsZXQgcz10LnRyLG49YS5lbmQsbz1hLiR0by5lbmQoYS5kZXB0aCk7bjxvJiYocy5zdGVwKG5ldyBkcyhuLTEsbyxuLG8sbmV3IG10KEplLmZyb20oci5jcmVhdGUobnVsbCxhLnBhcmVudC5jb3B5KCkpKSwxLDApLDEsITApKSxhPW5ldyBWcChzLmRvYy5yZXNvbHZlKGEuJGZyb20ucG9zKSxzLmRvYy5yZXNvbHZlKG8pLGEuZGVwdGgpKTtsZXQgbD1jZChhKTtpZihsPT1udWxsKXJldHVybiExO3MubGlmdChhLGwpO2xldCBjPXMuZG9jLnJlc29sdmUocy5tYXBwaW5nLm1hcChuLC0xKS0xKTtyZXR1cm4gY2wocy5kb2MsYy5wb3MpJiZjLm5vZGVCZWZvcmUudHlwZT09Yy5ub2RlQWZ0ZXIudHlwZSYmcy5qb2luKGMucG9zKSxlKHMuc2Nyb2xsSW50b1ZpZXcoKSksITB9ZnVuY3Rpb24gUU5hKHQsZSxyKXtsZXQgYT10LnRyLHM9ci5wYXJlbnQ7Zm9yKGxldCBtPXIuZW5kLHY9ci5lbmRJbmRleC0xLGI9ci5zdGFydEluZGV4O3Y+Yjt2LS0pbS09cy5jaGlsZCh2KS5ub2RlU2l6ZSxhLmRlbGV0ZShtLTEsbSsxKTtsZXQgbj1hLmRvYy5yZXNvbHZlKHIuc3RhcnQpLG89bi5ub2RlQWZ0ZXI7aWYoYS5tYXBwaW5nLm1hcChyLmVuZCkhPXIuc3RhcnQrbi5ub2RlQWZ0ZXIubm9kZVNpemUpcmV0dXJuITE7bGV0IGw9ci5zdGFydEluZGV4PT0wLGM9ci5lbmRJbmRleD09cy5jaGlsZENvdW50LGQ9bi5ub2RlKC0xKSxmPW4uaW5kZXgoLTEpO2lmKCFkLmNhblJlcGxhY2UoZisobD8wOjEpLGYrMSxvLmNvbnRlbnQuYXBwZW5kKGM/SmUuZW1wdHk6SmUuZnJvbShzKSkpKXJldHVybiExO2xldCBwPW4ucG9zLGg9cCtvLm5vZGVTaXplO3JldHVybiBhLnN0ZXAobmV3IGRzKHAtKGw/MTowKSxoKyhjPzE6MCkscCsxLGgtMSxuZXcgbXQoKGw/SmUuZW1wdHk6SmUuZnJvbShzLmNvcHkoSmUuZW1wdHkpKSkuYXBwZW5kKGM/SmUuZW1wdHk6SmUuZnJvbShzLmNvcHkoSmUuZW1wdHkpKSksbD8wOjEsYz8wOjEpLGw/MDoxKSksZShhLnNjcm9sbEludG9WaWV3KCkpLCEwfWZ1bmN0aW9uIGs1dCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtsZXR7JGZyb206YSwkdG86c309ZS5zZWxlY3Rpb24sbj1hLmJsb2NrUmFuZ2UocyxkPT5kLmNoaWxkQ291bnQ+MCYmZC5maXJzdENoaWxkLnR5cGU9PXQpO2lmKCFuKXJldHVybiExO2xldCBvPW4uc3RhcnRJbmRleDtpZihvPT0wKXJldHVybiExO2xldCBsPW4ucGFyZW50LGM9bC5jaGlsZChvLTEpO2lmKGMudHlwZSE9dClyZXR1cm4hMTtpZihyKXtsZXQgZD1jLmxhc3RDaGlsZCYmYy5sYXN0Q2hpbGQudHlwZT09bC50eXBlLGY9SmUuZnJvbShkP3QuY3JlYXRlKCk6bnVsbCkscD1uZXcgbXQoSmUuZnJvbSh0LmNyZWF0ZShudWxsLEplLmZyb20obC50eXBlLmNyZWF0ZShudWxsLGYpKSkpLGQ/MzoxLDApLGg9bi5zdGFydCxtPW4uZW5kO3IoZS50ci5zdGVwKG5ldyBkcyhoLShkPzM6MSksbSxoLG0scCwxLCEwKSkuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9fXZhciBqTmEsVU5hLFdOYSx0WXIscllyLGFZcixuWXI9dSgoKT0+e1dwKCk7anAoKTthMygpO2pOYT1bIm9sIiwwXSxVTmE9WyJ1bCIsMF0sV05hPVsibGkiLDBdLHRZcj17YXR0cnM6e29yZGVyOntkZWZhdWx0OjEsdmFsaWRhdGU6Im51bWJlciJ9fSxwYXJzZURPTTpbe3RhZzoib2wiLGdldEF0dHJzKHQpe3JldHVybntvcmRlcjp0Lmhhc0F0dHJpYnV0ZSgic3RhcnQiKT8rdC5nZXRBdHRyaWJ1dGUoInN0YXJ0Iik6MX19fV0sdG9ET00odCl7cmV0dXJuIHQuYXR0cnMub3JkZXI9PTE/ak5hOlsib2wiLHtzdGFydDp0LmF0dHJzLm9yZGVyfSwwXX19LHJZcj17cGFyc2VET006W3t0YWc6InVsIn1dLHRvRE9NKCl7cmV0dXJuIFVOYX19LGFZcj17cGFyc2VET006W3t0YWc6ImxpIn1dLHRvRE9NKCl7cmV0dXJuIFdOYX0sZGVmaW5pbmc6ITB9O2kodjV0LCJhZGQiKTtpKEdOYSwiYWRkTGlzdE5vZGVzIik7aSh5NXQsIndyYXBJbkxpc3QiKTtpKGlZciwid3JhcFJhbmdlSW5MaXN0Iik7aShZTmEsImRvV3JhcEluTGlzdCIpO2koc1lyLCJzcGxpdExpc3RJdGVtIik7aShLTmEsInNwbGl0TGlzdEl0ZW1LZWVwTWFya3MiKTtpKHc1dCwibGlmdExpc3RJdGVtIik7aShaTmEsImxpZnRUb091dGVyTGlzdCIpO2koUU5hLCJsaWZ0T3V0T2ZMaXN0Iik7aShrNXQsInNpbmtMaXN0SXRlbSIpfSk7dmFyIG9Zcj11KCgpPT57bllyKCl9KTt2YXIgT1lyPXt9O1ZlKE9Zcix7Q29tbWFuZE1hbmFnZXI6KCk9PkpwLEVkaXRvcjooKT0+dWhlLEV4dGVuc2lvbjooKT0+a2ksSW5wdXRSdWxlOigpPT5jMyxNYXJrOigpPT5PbixOb2RlOigpPT50aSxOb2RlUG9zOigpPT50cmUsTm9kZVZpZXc6KCk9PnBoZSxQYXN0ZVJ1bGU6KCk9PlU5LFRyYWNrZXI6KCk9PmZoZSxjYWxsT3JSZXR1cm46KCk9PnByLGNhbkluc2VydE5vZGU6KCk9PnZoZSxjb21iaW5lVHJhbnNhY3Rpb25TdGVwczooKT0+aGhlLGNyZWF0ZUNoYWluYWJsZVN0YXRlOigpPT5jdyxjcmVhdGVEb2N1bWVudDooKT0+UXRlLGNyZWF0ZU5vZGVGcm9tQ29udGVudDooKT0+WTksY3JlYXRlU3R5bGVUYWc6KCk9PnE1dCxkZWZhdWx0QmxvY2tBdDooKT0+TjV0LGRlbGV0ZVByb3BzOigpPT5vaGUsZWxlbWVudEZyb21TdHJpbmc6KCk9Pkc5LGVzY2FwZUZvclJlZ0V4OigpPT5FWXIsZXh0ZW5zaW9uczooKT0+QVlyLGZpbmRDaGlsZHJlbjooKT0+U1lyLGZpbmRDaGlsZHJlbkluUmFuZ2U6KCk9Pm1oZSxmaW5kRHVwbGljYXRlczooKT0+RTV0LGZpbmRQYXJlbnROb2RlOigpPT5ndyxmaW5kUGFyZW50Tm9kZUNsb3Nlc3RUb1BvczooKT0+TzV0LGZyb21TdHJpbmc6KCk9PlQ1dCxnZW5lcmF0ZUhUTUw6KCk9Pk1ZcixnZW5lcmF0ZUpTT046KCk9PkNZcixnZW5lcmF0ZVRleHQ6KCk9PnpZcixnZXRBdHRyaWJ1dGVzOigpPT5ycmUsZ2V0QXR0cmlidXRlc0Zyb21FeHRlbnNpb25zOigpPT5YZmUsZ2V0Q2hhbmdlZFJhbmdlczooKT0+Z2hlLGdldERlYnVnSlNPTjooKT0+QjV0LGdldEV4dGVuc2lvbkZpZWxkOigpPT5rdCxnZXRIVE1MRnJvbUZyYWdtZW50OigpPT51dyxnZXRNYXJrQXR0cmlidXRlczooKT0+bGhlLGdldE1hcmtSYW5nZTooKT0+WnRlLGdldE1hcmtUeXBlOigpPT5mZCxnZXRNYXJrc0JldHdlZW46KCk9Pnh3LGdldE5vZGVBdFBvc2l0aW9uOigpPT5fWXIsZ2V0Tm9kZUF0dHJpYnV0ZXM6KCk9PlI1dCxnZXROb2RlVHlwZTooKT0+JHMsZ2V0UmVuZGVyZWRBdHRyaWJ1dGVzOigpPT5XdGUsZ2V0U2NoZW1hOigpPT5YdGUsZ2V0U2NoZW1hQnlSZXNvbHZlZEV4dGVuc2lvbnM6KCk9PnRoZSxnZXRTY2hlbWFUeXBlQnlOYW1lOigpPT5HdGUsZ2V0U2NoZW1hVHlwZU5hbWVCeU5hbWU6KCk9Pm13LGdldFNwbGl0dGVkQXR0cmlidXRlczooKT0+YncsZ2V0VGV4dDooKT0+Y2hlLGdldFRleHRCZXR3ZWVuOigpPT5haGUsZ2V0VGV4dENvbnRlbnRGcm9tTm9kZXM6KCk9Pkw1dCxnZXRUZXh0U2VyaWFsaXplcnNGcm9tU2NoZW1hOigpPT5LdGUsaW5qZWN0RXh0ZW5zaW9uQXR0cmlidXRlc1RvUGFyc2VSdWxlOigpPT5laGUsaW5wdXRSdWxlc1BsdWdpbjooKT0+RDV0LGlzQWN0aXZlOigpPT5INXQsaXNBdEVuZE9mTm9kZTooKT0+VFlyLGlzQXRTdGFydE9mTm9kZTooKT0+TFlyLGlzRW1wdHlPYmplY3Q6KCk9Pl81dCxpc0V4dGVuc2lvblJ1bGVzRW5hYmxlZDooKT0+cmhlLGlzRnVuY3Rpb246KCk9PkpmZSxpc0xpc3Q6KCk9PmRoZSxpc01hY09TOigpPT5uaGUsaXNNYXJrQWN0aXZlOigpPT5KdGUsaXNOb2RlQWN0aXZlOigpPT5LOSxpc05vZGVFbXB0eTooKT0+ZXJlLGlzTm9kZVNlbGVjdGlvbjooKT0+YmhlLGlzTnVtYmVyOigpPT4kNXQsaXNQbGFpbk9iamVjdDooKT0+cHcsaXNSZWdFeHA6KCk9Pll0ZSxpc1NhZmFyaTooKT0+STV0LGlzU3RyaW5nOigpPT5JWXIsaXNUZXh0U2VsZWN0aW9uOigpPT5paGUsaXNpT1M6KCk9Plc5LG1hcmtJbnB1dFJ1bGU6KCk9PmEyLG1hcmtQYXN0ZVJ1bGU6KCk9PkkxLG1lcmdlQXR0cmlidXRlczooKT0+c2EsbWVyZ2VEZWVwOigpPT5mdyxtaW5NYXg6KCk9PmtjLG5vZGVJbnB1dFJ1bGU6KCk9PnhoZSxub2RlUGFzdGVSdWxlOigpPT5QWXIsb2JqZWN0SW5jbHVkZXM6KCk9Pmh3LHBhc3RlUnVsZXNQbHVnaW46KCk9PkE1dCxwb3NUb0RPTVJlY3Q6KCk9PkRZcixyZW1vdmVEdXBsaWNhdGVzOigpPT5GNXQscmVzb2x2ZUZvY3VzUG9zaXRpb246KCk9PnNoZSxyZXdyaXRlVW5rbm93bkNvbnRlbnQ6KCk9PiRZcixzZWxlY3Rpb25Ub0luc2VydGlvbkVuZDooKT0+UDV0LHNwbGl0RXh0ZW5zaW9uczooKT0+ZHcsdGV4dElucHV0UnVsZTooKT0+ZmksdGV4dFBhc3RlUnVsZTooKT0+TllyLHRleHRibG9ja1R5cGVJbnB1dFJ1bGU6KCk9Plo5LHdyYXBwaW5nSW5wdXRSdWxlOigpPT5oZH0pO2Z1bmN0aW9uIGN3KHQpe2xldHtzdGF0ZTplLHRyYW5zYWN0aW9uOnJ9PXQse3NlbGVjdGlvbjphfT1yLHtkb2M6c309cix7c3RvcmVkTWFya3M6bn09cjtyZXR1cm57Li4uZSxhcHBseTplLmFwcGx5LmJpbmQoZSksYXBwbHlUcmFuc2FjdGlvbjplLmFwcGx5VHJhbnNhY3Rpb24uYmluZChlKSxwbHVnaW5zOmUucGx1Z2lucyxzY2hlbWE6ZS5zY2hlbWEscmVjb25maWd1cmU6ZS5yZWNvbmZpZ3VyZS5iaW5kKGUpLHRvSlNPTjplLnRvSlNPTi5iaW5kKGUpLGdldCBzdG9yZWRNYXJrcygpe3JldHVybiBufSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIGF9LGdldCBkb2MoKXtyZXR1cm4gc30sZ2V0IHRyKCl7cmV0dXJuIGE9ci5zZWxlY3Rpb24scz1yLmRvYyxuPXIuc3RvcmVkTWFya3Mscn19fWZ1bmN0aW9uIGt0KHQsZSxyKXtyZXR1cm4gdC5jb25maWdbZV09PT12b2lkIDAmJnQucGFyZW50P2t0KHQucGFyZW50LGUscik6dHlwZW9mIHQuY29uZmlnW2VdPT0iZnVuY3Rpb24iP3QuY29uZmlnW2VdLmJpbmQoey4uLnIscGFyZW50OnQucGFyZW50P2t0KHQucGFyZW50LGUscik6bnVsbH0pOnQuY29uZmlnW2VdfWZ1bmN0aW9uIGR3KHQpe2xldCBlPXQuZmlsdGVyKHM9PnMudHlwZT09PSJleHRlbnNpb24iKSxyPXQuZmlsdGVyKHM9PnMudHlwZT09PSJub2RlIiksYT10LmZpbHRlcihzPT5zLnR5cGU9PT0ibWFyayIpO3JldHVybntiYXNlRXh0ZW5zaW9uczplLG5vZGVFeHRlbnNpb25zOnIsbWFya0V4dGVuc2lvbnM6YX19ZnVuY3Rpb24gWGZlKHQpe2xldCBlPVtdLHtub2RlRXh0ZW5zaW9uczpyLG1hcmtFeHRlbnNpb25zOmF9PWR3KHQpLHM9Wy4uLnIsLi4uYV0sbj17ZGVmYXVsdDpudWxsLHJlbmRlcmVkOiEwLHJlbmRlckhUTUw6bnVsbCxwYXJzZUhUTUw6bnVsbCxrZWVwT25TcGxpdDohMCxpc1JlcXVpcmVkOiExfTtyZXR1cm4gdC5mb3JFYWNoKG89PntsZXQgbD17bmFtZTpvLm5hbWUsb3B0aW9uczpvLm9wdGlvbnMsc3RvcmFnZTpvLnN0b3JhZ2UsZXh0ZW5zaW9uczpzfSxjPWt0KG8sImFkZEdsb2JhbEF0dHJpYnV0ZXMiLGwpO2lmKCFjKXJldHVybjtjKCkuZm9yRWFjaChmPT57Zi50eXBlcy5mb3JFYWNoKHA9PntPYmplY3QuZW50cmllcyhmLmF0dHJpYnV0ZXMpLmZvckVhY2goKFtoLG1dKT0+e2UucHVzaCh7dHlwZTpwLG5hbWU6aCxhdHRyaWJ1dGU6ey4uLm4sLi4ubX19KX0pfSl9KX0pLHMuZm9yRWFjaChvPT57bGV0IGw9e25hbWU6by5uYW1lLG9wdGlvbnM6by5vcHRpb25zLHN0b3JhZ2U6by5zdG9yYWdlfSxjPWt0KG8sImFkZEF0dHJpYnV0ZXMiLGwpO2lmKCFjKXJldHVybjtsZXQgZD1jKCk7T2JqZWN0LmVudHJpZXMoZCkuZm9yRWFjaCgoW2YscF0pPT57bGV0IGg9ey4uLm4sLi4ucH07dHlwZW9mIGg/LmRlZmF1bHQ9PSJmdW5jdGlvbiImJihoLmRlZmF1bHQ9aC5kZWZhdWx0KCkpLGg/LmlzUmVxdWlyZWQmJmg/LmRlZmF1bHQ9PT12b2lkIDAmJmRlbGV0ZSBoLmRlZmF1bHQsZS5wdXNoKHt0eXBlOm8ubmFtZSxuYW1lOmYsYXR0cmlidXRlOmh9KX0pfSksZX1mdW5jdGlvbiAkcyh0LGUpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYoIWUubm9kZXNbdF0pdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIG5vZGUgdHlwZSBuYW1lZCAnJHt0fScuIE1heWJlIHlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBleHRlbnNpb24/YCk7cmV0dXJuIGUubm9kZXNbdF19cmV0dXJuIHR9ZnVuY3Rpb24gc2EoLi4udCl7cmV0dXJuIHQuZmlsdGVyKGU9PiEhZSkucmVkdWNlKChlLHIpPT57bGV0IGE9ey4uLmV9O3JldHVybiBPYmplY3QuZW50cmllcyhyKS5mb3JFYWNoKChbcyxuXSk9PntpZighYVtzXSl7YVtzXT1uO3JldHVybn1pZihzPT09ImNsYXNzIil7bGV0IGw9bj9TdHJpbmcobikuc3BsaXQoIiAiKTpbXSxjPWFbc10/YVtzXS5zcGxpdCgiICIpOltdLGQ9bC5maWx0ZXIoZj0+IWMuaW5jbHVkZXMoZikpO2Fbc109Wy4uLmMsLi4uZF0uam9pbigiICIpfWVsc2UgaWYocz09PSJzdHlsZSIpe2xldCBsPW4/bi5zcGxpdCgiOyIpLm1hcChmPT5mLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pOltdLGM9YVtzXT9hW3NdLnNwbGl0KCI7IikubWFwKGY9PmYudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W10sZD1uZXcgTWFwO2MuZm9yRWFjaChmPT57bGV0W3AsaF09Zi5zcGxpdCgiOiIpLm1hcChtPT5tLnRyaW0oKSk7ZC5zZXQocCxoKX0pLGwuZm9yRWFjaChmPT57bGV0W3AsaF09Zi5zcGxpdCgiOiIpLm1hcChtPT5tLnRyaW0oKSk7ZC5zZXQocCxoKX0pLGFbc109QXJyYXkuZnJvbShkLmVudHJpZXMoKSkubWFwKChbZixwXSk9PmAke2Z9OiAke3B9YCkuam9pbigiOyAiKX1lbHNlIGFbc109bn0pLGF9LHt9KX1mdW5jdGlvbiBXdGUodCxlKXtyZXR1cm4gZS5maWx0ZXIocj0+ci50eXBlPT09dC50eXBlLm5hbWUpLmZpbHRlcihyPT5yLmF0dHJpYnV0ZS5yZW5kZXJlZCkubWFwKHI9PnIuYXR0cmlidXRlLnJlbmRlckhUTUw/ci5hdHRyaWJ1dGUucmVuZGVySFRNTCh0LmF0dHJzKXx8e306e1tyLm5hbWVdOnQuYXR0cnNbci5uYW1lXX0pLnJlZHVjZSgocixhKT0+c2EocixhKSx7fSl9ZnVuY3Rpb24gSmZlKHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIn1mdW5jdGlvbiBwcih0LGU9dm9pZCAwLC4uLnIpe3JldHVybiBKZmUodCk/ZT90LmJpbmQoZSkoLi4ucik6dCguLi5yKTp0fWZ1bmN0aW9uIF81dCh0PXt9KXtyZXR1cm4gT2JqZWN0LmtleXModCkubGVuZ3RoPT09MCYmdC5jb25zdHJ1Y3Rvcj09PU9iamVjdH1mdW5jdGlvbiBUNXQodCl7cmV0dXJuIHR5cGVvZiB0IT0ic3RyaW5nIj90OnQubWF0Y2goL15bKy1dPyg/OlxkKlwuKT9cZCskLyk/TnVtYmVyKHQpOnQ9PT0idHJ1ZSI/ITA6dD09PSJmYWxzZSI/ITE6dH1mdW5jdGlvbiBlaGUodCxlKXtyZXR1cm4ic3R5bGUiaW4gdD90OnsuLi50LGdldEF0dHJzOmkocj0+e2xldCBhPXQuZ2V0QXR0cnM/dC5nZXRBdHRycyhyKTp0LmF0dHJzO2lmKGE9PT0hMSlyZXR1cm4hMTtsZXQgcz1lLnJlZHVjZSgobixvKT0+e2xldCBsPW8uYXR0cmlidXRlLnBhcnNlSFRNTD9vLmF0dHJpYnV0ZS5wYXJzZUhUTUwocik6VDV0KHIuZ2V0QXR0cmlidXRlKG8ubmFtZSkpO3JldHVybiBsPT1udWxsP246ey4uLm4sW28ubmFtZV06bH19LHt9KTtyZXR1cm57Li4uYSwuLi5zfX0sImdldEF0dHJzIil9fWZ1bmN0aW9uIGxZcih0KXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLmZpbHRlcigoW2Uscl0pPT5lPT09ImF0dHJzIiYmXzV0KHIpPyExOnIhPW51bGwpKX1mdW5jdGlvbiB0aGUodCxlKXt2YXIgcjtsZXQgYT1YZmUodCkse25vZGVFeHRlbnNpb25zOnMsbWFya0V4dGVuc2lvbnM6bn09ZHcodCksbz0ocj1zLmZpbmQoZD0+a3QoZCwidG9wTm9kZSIpKSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5hbWUsbD1PYmplY3QuZnJvbUVudHJpZXMocy5tYXAoZD0+e2xldCBmPWEuZmlsdGVyKHk9PnkudHlwZT09PWQubmFtZSkscD17bmFtZTpkLm5hbWUsb3B0aW9uczpkLm9wdGlvbnMsc3RvcmFnZTpkLnN0b3JhZ2UsZWRpdG9yOmV9LGg9dC5yZWR1Y2UoKHksayk9PntsZXQgTT1rdChrLCJleHRlbmROb2RlU2NoZW1hIixwKTtyZXR1cm57Li4ueSwuLi5NP00oZCk6e319fSx7fSksbT1sWXIoey4uLmgsY29udGVudDpwcihrdChkLCJjb250ZW50IixwKSksbWFya3M6cHIoa3QoZCwibWFya3MiLHApKSxncm91cDpwcihrdChkLCJncm91cCIscCkpLGlubGluZTpwcihrdChkLCJpbmxpbmUiLHApKSxhdG9tOnByKGt0KGQsImF0b20iLHApKSxzZWxlY3RhYmxlOnByKGt0KGQsInNlbGVjdGFibGUiLHApKSxkcmFnZ2FibGU6cHIoa3QoZCwiZHJhZ2dhYmxlIixwKSksY29kZTpwcihrdChkLCJjb2RlIixwKSksd2hpdGVzcGFjZTpwcihrdChkLCJ3aGl0ZXNwYWNlIixwKSksbGluZWJyZWFrUmVwbGFjZW1lbnQ6cHIoa3QoZCwibGluZWJyZWFrUmVwbGFjZW1lbnQiLHApKSxkZWZpbmluZzpwcihrdChkLCJkZWZpbmluZyIscCkpLGlzb2xhdGluZzpwcihrdChkLCJpc29sYXRpbmciLHApKSxhdHRyczpPYmplY3QuZnJvbUVudHJpZXMoZi5tYXAoeT0+e3ZhciBrO3JldHVyblt5Lm5hbWUse2RlZmF1bHQ6KGs9eT8uYXR0cmlidXRlKT09PW51bGx8fGs9PT12b2lkIDA/dm9pZCAwOmsuZGVmYXVsdH1dfSkpfSksdj1wcihrdChkLCJwYXJzZUhUTUwiLHApKTt2JiYobS5wYXJzZURPTT12Lm1hcCh5PT5laGUoeSxmKSkpO2xldCBiPWt0KGQsInJlbmRlckhUTUwiLHApO2ImJihtLnRvRE9NPXk9PmIoe25vZGU6eSxIVE1MQXR0cmlidXRlczpXdGUoeSxmKX0pKTtsZXQgZz1rdChkLCJyZW5kZXJUZXh0IixwKTtyZXR1cm4gZyYmKG0udG9UZXh0PWcpLFtkLm5hbWUsbV19KSksYz1PYmplY3QuZnJvbUVudHJpZXMobi5tYXAoZD0+e2xldCBmPWEuZmlsdGVyKGc9PmcudHlwZT09PWQubmFtZSkscD17bmFtZTpkLm5hbWUsb3B0aW9uczpkLm9wdGlvbnMsc3RvcmFnZTpkLnN0b3JhZ2UsZWRpdG9yOmV9LGg9dC5yZWR1Y2UoKGcseSk9PntsZXQgaz1rdCh5LCJleHRlbmRNYXJrU2NoZW1hIixwKTtyZXR1cm57Li4uZywuLi5rP2soZCk6e319fSx7fSksbT1sWXIoey4uLmgsaW5jbHVzaXZlOnByKGt0KGQsImluY2x1c2l2ZSIscCkpLGV4Y2x1ZGVzOnByKGt0KGQsImV4Y2x1ZGVzIixwKSksZ3JvdXA6cHIoa3QoZCwiZ3JvdXAiLHApKSxzcGFubmluZzpwcihrdChkLCJzcGFubmluZyIscCkpLGNvZGU6cHIoa3QoZCwiY29kZSIscCkpLGF0dHJzOk9iamVjdC5mcm9tRW50cmllcyhmLm1hcChnPT57dmFyIHk7cmV0dXJuW2cubmFtZSx7ZGVmYXVsdDooeT1nPy5hdHRyaWJ1dGUpPT09bnVsbHx8eT09PXZvaWQgMD92b2lkIDA6eS5kZWZhdWx0fV19KSl9KSx2PXByKGt0KGQsInBhcnNlSFRNTCIscCkpO3YmJihtLnBhcnNlRE9NPXYubWFwKGc9PmVoZShnLGYpKSk7bGV0IGI9a3QoZCwicmVuZGVySFRNTCIscCk7cmV0dXJuIGImJihtLnRvRE9NPWc9PmIoe21hcms6ZyxIVE1MQXR0cmlidXRlczpXdGUoZyxmKX0pKSxbZC5uYW1lLG1dfSkpO3JldHVybiBuZXcgR3koe3RvcE5vZGU6byxub2RlczpsLG1hcmtzOmN9KX1mdW5jdGlvbiBHdGUodCxlKXtyZXR1cm4gZS5ub2Rlc1t0XXx8ZS5tYXJrc1t0XXx8bnVsbH1mdW5jdGlvbiByaGUodCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLnNvbWUocj0+KHR5cGVvZiByPT0ic3RyaW5nIj9yOnIubmFtZSk9PT10Lm5hbWUpOmV9ZnVuY3Rpb24gdXcodCxlKXtsZXQgcj1vZC5mcm9tU2NoZW1hKGUpLnNlcmlhbGl6ZUZyYWdtZW50KHQpLHM9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCkuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHMuYXBwZW5kQ2hpbGQocikscy5pbm5lckhUTUx9ZnVuY3Rpb24gWXRlKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBSZWdFeHBdIn1mdW5jdGlvbiBLZmUodCl7dmFyIGU7bGV0e2VkaXRvcjpyLGZyb206YSx0bzpzLHRleHQ6bixydWxlczpvLHBsdWdpbjpsfT10LHt2aWV3OmN9PXI7aWYoYy5jb21wb3NpbmcpcmV0dXJuITE7bGV0IGQ9Yy5zdGF0ZS5kb2MucmVzb2x2ZShhKTtpZihkLnBhcmVudC50eXBlLnNwZWMuY29kZXx8ISgoZT1kLm5vZGVCZWZvcmV8fGQubm9kZUFmdGVyKT09PW51bGx8fGU9PT12b2lkIDApJiZlLm1hcmtzLmZpbmQoaD0+aC50eXBlLnNwZWMuY29kZSkpcmV0dXJuITE7bGV0IGY9ITEscD1MNXQoZCkrbjtyZXR1cm4gby5mb3JFYWNoKGg9PntpZihmKXJldHVybjtsZXQgbT1YTmEocCxoLmZpbmQpO2lmKCFtKXJldHVybjtsZXQgdj1jLnN0YXRlLnRyLGI9Y3coe3N0YXRlOmMuc3RhdGUsdHJhbnNhY3Rpb246dn0pLGc9e2Zyb206YS0obVswXS5sZW5ndGgtbi5sZW5ndGgpLHRvOnN9LHtjb21tYW5kczp5LGNoYWluOmssY2FuOk19PW5ldyBKcCh7ZWRpdG9yOnIsc3RhdGU6Yn0pO2guaGFuZGxlcih7c3RhdGU6YixyYW5nZTpnLG1hdGNoOm0sY29tbWFuZHM6eSxjaGFpbjprLGNhbjpNfSk9PT1udWxsfHwhdi5zdGVwcy5sZW5ndGh8fCh2LnNldE1ldGEobCx7dHJhbnNmb3JtOnYsZnJvbTphLHRvOnMsdGV4dDpufSksYy5kaXNwYXRjaCh2KSxmPSEwKX0pLGZ9ZnVuY3Rpb24gRDV0KHQpe2xldHtlZGl0b3I6ZSxydWxlczpyfT10LGE9bmV3IFFhKHtzdGF0ZTp7aW5pdCgpe3JldHVybiBudWxsfSxhcHBseShzLG4sbyl7bGV0IGw9cy5nZXRNZXRhKGEpO2lmKGwpcmV0dXJuIGw7bGV0IGM9cy5nZXRNZXRhKCJhcHBseUlucHV0UnVsZXMiKTtyZXR1cm4gYyYmc2V0VGltZW91dCgoKT0+e2xldHt0ZXh0OmZ9PWM7dHlwZW9mIGY9PSJzdHJpbmciP2Y9ZjpmPXV3KEplLmZyb20oZiksby5zY2hlbWEpO2xldHtmcm9tOnB9PWMsaD1wK2YubGVuZ3RoO0tmZSh7ZWRpdG9yOmUsZnJvbTpwLHRvOmgsdGV4dDpmLHJ1bGVzOnIscGx1Z2luOmF9KX0pLHMuc2VsZWN0aW9uU2V0fHxzLmRvY0NoYW5nZWQ/bnVsbDpufX0scHJvcHM6e2hhbmRsZVRleHRJbnB1dChzLG4sbyxsKXtyZXR1cm4gS2ZlKHtlZGl0b3I6ZSxmcm9tOm4sdG86byx0ZXh0OmwscnVsZXM6cixwbHVnaW46YX0pfSxoYW5kbGVET01FdmVudHM6e2NvbXBvc2l0aW9uZW5kOmkocz0+KHNldFRpbWVvdXQoKCk9PntsZXR7JGN1cnNvcjpufT1zLnN0YXRlLnNlbGVjdGlvbjtuJiZLZmUoe2VkaXRvcjplLGZyb206bi5wb3MsdG86bi5wb3MsdGV4dDoiIixydWxlczpyLHBsdWdpbjphfSl9KSwhMSksImNvbXBvc2l0aW9uZW5kIil9LGhhbmRsZUtleURvd24ocyxuKXtpZihuLmtleSE9PSJFbnRlciIpcmV0dXJuITE7bGV0eyRjdXJzb3I6b309cy5zdGF0ZS5zZWxlY3Rpb247cmV0dXJuIG8/S2ZlKHtlZGl0b3I6ZSxmcm9tOm8ucG9zLHRvOm8ucG9zLHRleHQ6YApgLHJ1bGVzOnIscGx1Z2luOmF9KTohMX19LGlzSW5wdXRSdWxlczohMH0pO3JldHVybiBhfWZ1bmN0aW9uIEpOYSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpfWZ1bmN0aW9uIHB3KHQpe3JldHVybiBKTmEodCkhPT0iT2JqZWN0Ij8hMTp0LmNvbnN0cnVjdG9yPT09T2JqZWN0JiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIGZ3KHQsZSl7bGV0IHI9ey4uLnR9O3JldHVybiBwdyh0KSYmcHcoZSkmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goYT0+e3B3KGVbYV0pJiZwdyh0W2FdKT9yW2FdPWZ3KHRbYV0sZVthXSk6clthXT1lW2FdfSkscn1mdW5jdGlvbiAkNXQodCl7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIn1mdW5jdGlvbiB0T2EodCl7bGV0e2VkaXRvcjplLHN0YXRlOnIsZnJvbTphLHRvOnMscnVsZTpuLHBhc3RlRXZlbnQ6byxkcm9wRXZlbnQ6bH09dCx7Y29tbWFuZHM6YyxjaGFpbjpkLGNhbjpmfT1uZXcgSnAoe2VkaXRvcjplLHN0YXRlOnJ9KSxwPVtdO3JldHVybiByLmRvYy5ub2Rlc0JldHdlZW4oYSxzLChtLHYpPT57aWYoIW0uaXNUZXh0YmxvY2t8fG0udHlwZS5zcGVjLmNvZGUpcmV0dXJuO2xldCBiPU1hdGgubWF4KGEsdiksZz1NYXRoLm1pbihzLHYrbS5jb250ZW50LnNpemUpLHk9bS50ZXh0QmV0d2VlbihiLXYsZy12LHZvaWQgMCwiXHVGRkZDIik7ZU9hKHksbi5maW5kLG8pLmZvckVhY2goTT0+e2lmKE0uaW5kZXg9PT12b2lkIDApcmV0dXJuO2xldCBOPWIrTS5pbmRleCsxLF89TitNWzBdLmxlbmd0aCxTPXtmcm9tOnIudHIubWFwcGluZy5tYXAoTiksdG86ci50ci5tYXBwaW5nLm1hcChfKX0sTz1uLmhhbmRsZXIoe3N0YXRlOnIscmFuZ2U6UyxtYXRjaDpNLGNvbW1hbmRzOmMsY2hhaW46ZCxjYW46ZixwYXN0ZUV2ZW50Om8sZHJvcEV2ZW50Omx9KTtwLnB1c2goTyl9KX0pLHAuZXZlcnkobT0+bSE9PW51bGwpfWZ1bmN0aW9uIEE1dCh0KXtsZXR7ZWRpdG9yOmUscnVsZXM6cn09dCxhPW51bGwscz0hMSxuPSExLG89dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxsO3RyeXtsPXR5cGVvZiBEcmFnRXZlbnQ8InUiP25ldyBEcmFnRXZlbnQoImRyb3AiKTpudWxsfWNhdGNoe2w9bnVsbH1sZXQgYz1pKCh7c3RhdGU6Zixmcm9tOnAsdG86aCxydWxlOm0scGFzdGVFdnQ6dn0pPT57bGV0IGI9Zi50cixnPWN3KHtzdGF0ZTpmLHRyYW5zYWN0aW9uOmJ9KTtpZighKCF0T2Eoe2VkaXRvcjplLHN0YXRlOmcsZnJvbTpNYXRoLm1heChwLTEsMCksdG86aC5iLTEscnVsZTptLHBhc3RlRXZlbnQ6dixkcm9wRXZlbnQ6bH0pfHwhYi5zdGVwcy5sZW5ndGgpKXt0cnl7bD10eXBlb2YgRHJhZ0V2ZW50PCJ1Ij9uZXcgRHJhZ0V2ZW50KCJkcm9wIik6bnVsbH1jYXRjaHtsPW51bGx9cmV0dXJuIG89dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxifX0sInByb2Nlc3NFdmVudCIpO3JldHVybiByLm1hcChmPT5uZXcgUWEoe3ZpZXcocCl7bGV0IGg9aSh2PT57dmFyIGI7YT0hKChiPXAuZG9tLnBhcmVudEVsZW1lbnQpPT09bnVsbHx8Yj09PXZvaWQgMCkmJmIuY29udGFpbnModi50YXJnZXQpP3AuZG9tLnBhcmVudEVsZW1lbnQ6bnVsbCxhJiYoWmZlPWUpfSwiaGFuZGxlRHJhZ3N0YXJ0IiksbT1pKCgpPT57WmZlJiYoWmZlPW51bGwpfSwiaGFuZGxlRHJhZ2VuZCIpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsbSkse2Rlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixoKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsbSl9fX0scHJvcHM6e2hhbmRsZURPTUV2ZW50czp7ZHJvcDppKChwLGgpPT57aWYobj1hPT09cC5kb20ucGFyZW50RWxlbWVudCxsPWgsIW4pe2xldCBtPVpmZTttPy5pc0VkaXRhYmxlJiZzZXRUaW1lb3V0KCgpPT57bGV0IHY9bS5zdGF0ZS5zZWxlY3Rpb247diYmbS5jb21tYW5kcy5kZWxldGVSYW5nZSh7ZnJvbTp2LmZyb20sdG86di50b30pfSwxMCl9cmV0dXJuITF9LCJkcm9wIikscGFzdGU6aSgocCxoKT0+e3ZhciBtO2xldCB2PShtPWguY2xpcGJvYXJkRGF0YSk9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLmdldERhdGEoInRleHQvaHRtbCIpO3JldHVybiBvPWgscz0hIXY/LmluY2x1ZGVzKCJkYXRhLXBtLXNsaWNlIiksITF9LCJwYXN0ZSIpfX0sYXBwZW5kVHJhbnNhY3Rpb246aSgocCxoLG0pPT57bGV0IHY9cFswXSxiPXYuZ2V0TWV0YSgidWlFdmVudCIpPT09InBhc3RlIiYmIXMsZz12LmdldE1ldGEoInVpRXZlbnQiKT09PSJkcm9wIiYmIW4seT12LmdldE1ldGEoImFwcGx5UGFzdGVSdWxlcyIpLGs9ISF5O2lmKCFiJiYhZyYmIWspcmV0dXJuO2lmKGspe2xldHt0ZXh0Ol99PXk7dHlwZW9mIF89PSJzdHJpbmciP189XzpfPXV3KEplLmZyb20oXyksbS5zY2hlbWEpO2xldHtmcm9tOlN9PXksTz1TK18ubGVuZ3RoLEw9ck9hKF8pO3JldHVybiBjKHtydWxlOmYsc3RhdGU6bSxmcm9tOlMsdG86e2I6T30scGFzdGVFdnQ6TH0pfWxldCBNPWguZG9jLmNvbnRlbnQuZmluZERpZmZTdGFydChtLmRvYy5jb250ZW50KSxOPWguZG9jLmNvbnRlbnQuZmluZERpZmZFbmQobS5kb2MuY29udGVudCk7aWYoISghJDV0KE0pfHwhTnx8TT09PU4uYikpcmV0dXJuIGMoe3J1bGU6ZixzdGF0ZTptLGZyb206TSx0bzpOLHBhc3RlRXZ0Om99KX0sImFwcGVuZFRyYW5zYWN0aW9uIil9KSl9ZnVuY3Rpb24gRTV0KHQpe2xldCBlPXQuZmlsdGVyKChyLGEpPT50LmluZGV4T2YocikhPT1hKTtyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGUpKX1mdW5jdGlvbiBhaGUodCxlLHIpe2xldHtmcm9tOmEsdG86c309ZSx7YmxvY2tTZXBhcmF0b3I6bj1gCgpgLHRleHRTZXJpYWxpemVyczpvPXt9fT1yfHx7fSxsPSIiO3JldHVybiB0Lm5vZGVzQmV0d2VlbihhLHMsKGMsZCxmLHApPT57dmFyIGg7Yy5pc0Jsb2NrJiZkPmEmJihsKz1uKTtsZXQgbT1vPy5bYy50eXBlLm5hbWVdO2lmKG0pcmV0dXJuIGYmJihsKz1tKHtub2RlOmMscG9zOmQscGFyZW50OmYsaW5kZXg6cCxyYW5nZTplfSkpLCExO2MuaXNUZXh0JiYobCs9KGg9Yz8udGV4dCk9PT1udWxsfHxoPT09dm9pZCAwP3ZvaWQgMDpoLnNsaWNlKE1hdGgubWF4KGEsZCktZCxzLWQpKX0pLGx9ZnVuY3Rpb24gS3RlKHQpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModC5ub2RlcykuZmlsdGVyKChbLGVdKT0+ZS5zcGVjLnRvVGV4dCkubWFwKChbZSxyXSk9PltlLHIuc3BlYy50b1RleHRdKSl9ZnVuY3Rpb24gaHcodCxlLHI9e3N0cmljdDohMH0pe2xldCBhPU9iamVjdC5rZXlzKGUpO3JldHVybiBhLmxlbmd0aD9hLmV2ZXJ5KHM9PnIuc3RyaWN0P2Vbc109PT10W3NdOll0ZShlW3NdKT9lW3NdLnRlc3QodFtzXSk6ZVtzXT09PXRbc10pOiEwfWZ1bmN0aW9uIGRZcih0LGUscj17fSl7cmV0dXJuIHQuZmluZChhPT5hLnR5cGU9PT1lJiZodyhPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmtleXMocikubWFwKHM9PltzLGEuYXR0cnNbc11dKSkscikpfWZ1bmN0aW9uIHVZcih0LGUscj17fSl7cmV0dXJuISFkWXIodCxlLHIpfWZ1bmN0aW9uIFp0ZSh0LGUscil7dmFyIGE7aWYoIXR8fCFlKXJldHVybjtsZXQgcz10LnBhcmVudC5jaGlsZEFmdGVyKHQucGFyZW50T2Zmc2V0KTtpZigoIXMubm9kZXx8IXMubm9kZS5tYXJrcy5zb21lKGY9PmYudHlwZT09PWUpKSYmKHM9dC5wYXJlbnQuY2hpbGRCZWZvcmUodC5wYXJlbnRPZmZzZXQpKSwhcy5ub2RlfHwhcy5ub2RlLm1hcmtzLnNvbWUoZj0+Zi50eXBlPT09ZSl8fChyPXJ8fCgoYT1zLm5vZGUubWFya3NbMF0pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5hdHRycyksIWRZcihbLi4ucy5ub2RlLm1hcmtzXSxlLHIpKSlyZXR1cm47bGV0IG89cy5pbmRleCxsPXQuc3RhcnQoKStzLm9mZnNldCxjPW8rMSxkPWwrcy5ub2RlLm5vZGVTaXplO2Zvcig7bz4wJiZ1WXIoWy4uLnQucGFyZW50LmNoaWxkKG8tMSkubWFya3NdLGUscik7KW8tPTEsbC09dC5wYXJlbnQuY2hpbGQobykubm9kZVNpemU7Zm9yKDtjPHQucGFyZW50LmNoaWxkQ291bnQmJnVZcihbLi4udC5wYXJlbnQuY2hpbGQoYykubWFya3NdLGUscik7KWQrPXQucGFyZW50LmNoaWxkKGMpLm5vZGVTaXplLGMrPTE7cmV0dXJue2Zyb206bCx0bzpkfX1mdW5jdGlvbiBmZCh0LGUpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYoIWUubWFya3NbdF0pdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIG1hcmsgdHlwZSBuYW1lZCAnJHt0fScuIE1heWJlIHlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBleHRlbnNpb24/YCk7cmV0dXJuIGUubWFya3NbdF19cmV0dXJuIHR9ZnVuY3Rpb24gaWhlKHQpe3JldHVybiB0IGluc3RhbmNlb2YgZXJ9ZnVuY3Rpb24ga2ModD0wLGU9MCxyPTApe3JldHVybiBNYXRoLm1pbihNYXRoLm1heCh0LGUpLHIpfWZ1bmN0aW9uIHNoZSh0LGU9bnVsbCl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHI9SnQuYXRTdGFydCh0KSxhPUp0LmF0RW5kKHQpO2lmKGU9PT0ic3RhcnQifHxlPT09ITApcmV0dXJuIHI7aWYoZT09PSJlbmQiKXJldHVybiBhO2xldCBzPXIuZnJvbSxuPWEudG87cmV0dXJuIGU9PT0iYWxsIj9lci5jcmVhdGUodCxrYygwLHMsbiksa2ModC5jb250ZW50LnNpemUscyxuKSk6ZXIuY3JlYXRlKHQsa2MoZSxzLG4pLGtjKGUscyxuKSl9ZnVuY3Rpb24gTTV0KCl7cmV0dXJuIG5hdmlnYXRvci5wbGF0Zm9ybT09PSJBbmRyb2lkInx8L2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfWZ1bmN0aW9uIFc5KCl7cmV0dXJuWyJpUGFkIFNpbXVsYXRvciIsImlQaG9uZSBTaW11bGF0b3IiLCJpUG9kIFNpbXVsYXRvciIsImlQYWQiLCJpUGhvbmUiLCJpUG9kIl0uaW5jbHVkZXMobmF2aWdhdG9yLnBsYXRmb3JtKXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiTWFjIikmJiJvbnRvdWNoZW5kImluIGRvY3VtZW50fWZ1bmN0aW9uIEk1dCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1Ij8vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOiExfWZ1bmN0aW9uIEc5KHQpe2xldCBlPWA8Ym9keT4ke3R9PC9ib2R5PmAscj1uZXcgd2luZG93LkRPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBwWXIocil9ZnVuY3Rpb24gWTkodCxlLHIpe2lmKHQgaW5zdGFuY2VvZiBxb3x8dCBpbnN0YW5jZW9mIEplKXJldHVybiB0O3I9e3NsaWNlOiEwLHBhcnNlT3B0aW9uczp7fSwuLi5yfTtsZXQgYT10eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsLHM9dHlwZW9mIHQ9PSJzdHJpbmciO2lmKGEpdHJ5e2lmKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjApcmV0dXJuIEplLmZyb21BcnJheSh0Lm1hcChsPT5lLm5vZGVGcm9tSlNPTihsKSkpO2xldCBvPWUubm9kZUZyb21KU09OKHQpO3JldHVybiByLmVycm9yT25JbnZhbGlkQ29udGVudCYmby5jaGVjaygpLG99Y2F0Y2gobil7aWYoci5lcnJvck9uSW52YWxpZENvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBKU09OIGNvbnRlbnQiLHtjYXVzZTpufSk7cmV0dXJuIGNvbnNvbGUud2FybigiW3RpcHRhcCB3YXJuXTogSW52YWxpZCBjb250ZW50LiIsIlBhc3NlZCB2YWx1ZToiLHQsIkVycm9yOiIsbiksWTkoIiIsZSxyKX1pZihzKXtpZihyLmVycm9yT25JbnZhbGlkQ29udGVudCl7bGV0IG89ITEsbD0iIixjPW5ldyBHeSh7dG9wTm9kZTplLnNwZWMudG9wTm9kZSxtYXJrczplLnNwZWMubWFya3Msbm9kZXM6ZS5zcGVjLm5vZGVzLmFwcGVuZCh7X190aXB0YXBfX3ByaXZhdGVfX3Vua25vd25fX2NhdGNoX19hbGxfX25vZGU6e2NvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIscGFyc2VET006W3t0YWc6IioiLGdldEF0dHJzOmkoZD0+KG89ITAsbD10eXBlb2YgZD09InN0cmluZyI/ZDpkLm91dGVySFRNTCxudWxsKSwiZ2V0QXR0cnMiKX1dfX0pfSk7aWYoci5zbGljZT95Yy5mcm9tU2NoZW1hKGMpLnBhcnNlU2xpY2UoRzkodCksci5wYXJzZU9wdGlvbnMpOnljLmZyb21TY2hlbWEoYykucGFyc2UoRzkodCksci5wYXJzZU9wdGlvbnMpLHIuZXJyb3JPbkludmFsaWRDb250ZW50JiZvKXRocm93IG5ldyBFcnJvcigiW3RpcHRhcCBlcnJvcl06IEludmFsaWQgSFRNTCBjb250ZW50Iix7Y2F1c2U6bmV3IEVycm9yKGBJbnZhbGlkIGVsZW1lbnQgZm91bmQ6ICR7bH1gKX0pfWxldCBuPXljLmZyb21TY2hlbWEoZSk7cmV0dXJuIHIuc2xpY2U/bi5wYXJzZVNsaWNlKEc5KHQpLHIucGFyc2VPcHRpb25zKS5jb250ZW50Om4ucGFyc2UoRzkodCksci5wYXJzZU9wdGlvbnMpfXJldHVybiBZOSgiIixlLHIpfWZ1bmN0aW9uIFA1dCh0LGUscil7bGV0IGE9dC5zdGVwcy5sZW5ndGgtMTtpZihhPGUpcmV0dXJuO2xldCBzPXQuc3RlcHNbYV07aWYoIShzIGluc3RhbmNlb2YgSW58fHMgaW5zdGFuY2VvZiBkcykpcmV0dXJuO2xldCBuPXQubWFwcGluZy5tYXBzW2FdLG89MDtuLmZvckVhY2goKGwsYyxkLGYpPT57bz09PTAmJihvPWYpfSksdC5zZXRTZWxlY3Rpb24oSnQubmVhcih0LmRvYy5yZXNvbHZlKG8pLHIpKX1mdW5jdGlvbiBuaGUoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSI/L01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pOiExfWZ1bmN0aW9uIERPYSh0KXtsZXQgZT10LnNwbGl0KC8tKD8hJCkvKSxyPWVbZS5sZW5ndGgtMV07cj09PSJTcGFjZSImJihyPSIgIik7bGV0IGEscyxuLG87Zm9yKGxldCBsPTA7bDxlLmxlbmd0aC0xO2wrPTEpe2xldCBjPWVbbF07aWYoL14oY21kfG1ldGF8bSkkL2kudGVzdChjKSlvPSEwO2Vsc2UgaWYoL15hKGx0KT8kL2kudGVzdChjKSlhPSEwO2Vsc2UgaWYoL14oY3xjdHJsfGNvbnRyb2wpJC9pLnRlc3QoYykpcz0hMDtlbHNlIGlmKC9ecyhoaWZ0KT8kL2kudGVzdChjKSluPSEwO2Vsc2UgaWYoL15tb2QkL2kudGVzdChjKSlXOSgpfHxuaGUoKT9vPSEwOnM9ITA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBtb2RpZmllciBuYW1lOiAke2N9YCl9cmV0dXJuIGEmJihyPWBBbHQtJHtyfWApLHMmJihyPWBDdHJsLSR7cn1gKSxvJiYocj1gTWV0YS0ke3J9YCksbiYmKHI9YFNoaWZ0LSR7cn1gKSxyfWZ1bmN0aW9uIEs5KHQsZSxyPXt9KXtsZXR7ZnJvbTphLHRvOnMsZW1wdHk6bn09dC5zZWxlY3Rpb24sbz1lPyRzKGUsdC5zY2hlbWEpOm51bGwsbD1bXTt0LmRvYy5ub2Rlc0JldHdlZW4oYSxzLChwLGgpPT57aWYocC5pc1RleHQpcmV0dXJuO2xldCBtPU1hdGgubWF4KGEsaCksdj1NYXRoLm1pbihzLGgrcC5ub2RlU2l6ZSk7bC5wdXNoKHtub2RlOnAsZnJvbTptLHRvOnZ9KX0pO2xldCBjPXMtYSxkPWwuZmlsdGVyKHA9Pm8/by5uYW1lPT09cC5ub2RlLnR5cGUubmFtZTohMCkuZmlsdGVyKHA9Pmh3KHAubm9kZS5hdHRycyxyLHtzdHJpY3Q6ITF9KSk7cmV0dXJuIG4/ISFkLmxlbmd0aDpkLnJlZHVjZSgocCxoKT0+cCtoLnRvLWguZnJvbSwwKT49Y31mdW5jdGlvbiBtdyh0LGUpe3JldHVybiBlLm5vZGVzW3RdPyJub2RlIjplLm1hcmtzW3RdPyJtYXJrIjpudWxsfWZ1bmN0aW9uIG9oZSh0LGUpe2xldCByPXR5cGVvZiBlPT0ic3RyaW5nIj9bZV06ZTtyZXR1cm4gT2JqZWN0LmtleXModCkucmVkdWNlKChhLHMpPT4oci5pbmNsdWRlcyhzKXx8KGFbc109dFtzXSksYSkse30pfWZ1bmN0aW9uIFF0ZSh0LGUscj17fSxhPXt9KXtyZXR1cm4gWTkodCxlLHtzbGljZTohMSxwYXJzZU9wdGlvbnM6cixlcnJvck9uSW52YWxpZENvbnRlbnQ6YS5lcnJvck9uSW52YWxpZENvbnRlbnR9KX1mdW5jdGlvbiBsaGUodCxlKXtsZXQgcj1mZChlLHQuc2NoZW1hKSx7ZnJvbTphLHRvOnMsZW1wdHk6bn09dC5zZWxlY3Rpb24sbz1bXTtuPyh0LnN0b3JlZE1hcmtzJiZvLnB1c2goLi4udC5zdG9yZWRNYXJrcyksby5wdXNoKC4uLnQuc2VsZWN0aW9uLiRoZWFkLm1hcmtzKCkpKTp0LmRvYy5ub2Rlc0JldHdlZW4oYSxzLGM9PntvLnB1c2goLi4uYy5tYXJrcyl9KTtsZXQgbD1vLmZpbmQoYz0+Yy50eXBlLm5hbWU9PT1yLm5hbWUpO3JldHVybiBsP3suLi5sLmF0dHJzfTp7fX1mdW5jdGlvbiBoaGUodCxlKXtsZXQgcj1uZXcgQTkodCk7cmV0dXJuIGUuZm9yRWFjaChhPT57YS5zdGVwcy5mb3JFYWNoKHM9PntyLnN0ZXAocyl9KX0pLHJ9ZnVuY3Rpb24gTjV0KHQpe2ZvcihsZXQgZT0wO2U8dC5lZGdlQ291bnQ7ZSs9MSl7bGV0e3R5cGU6cn09dC5lZGdlKGUpO2lmKHIuaXNUZXh0YmxvY2smJiFyLmhhc1JlcXVpcmVkQXR0cnMoKSlyZXR1cm4gcn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTWXIodCxlKXtsZXQgcj1bXTtyZXR1cm4gdC5kZXNjZW5kYW50cygoYSxzKT0+e2UoYSkmJnIucHVzaCh7bm9kZTphLHBvczpzfSl9KSxyfWZ1bmN0aW9uIG1oZSh0LGUscil7bGV0IGE9W107cmV0dXJuIHQubm9kZXNCZXR3ZWVuKGUuZnJvbSxlLnRvLChzLG4pPT57cihzKSYmYS5wdXNoKHtub2RlOnMscG9zOm59KX0pLGF9ZnVuY3Rpb24gTzV0KHQsZSl7Zm9yKGxldCByPXQuZGVwdGg7cj4wO3ItPTEpe2xldCBhPXQubm9kZShyKTtpZihlKGEpKXJldHVybntwb3M6cj4wP3QuYmVmb3JlKHIpOjAsc3RhcnQ6dC5zdGFydChyKSxkZXB0aDpyLG5vZGU6YX19fWZ1bmN0aW9uIGd3KHQpe3JldHVybiBlPT5PNXQoZS4kZnJvbSx0KX1mdW5jdGlvbiBYdGUodCxlKXtsZXQgcj1RZmUucmVzb2x2ZSh0KTtyZXR1cm4gdGhlKHIsZSl9ZnVuY3Rpb24gTVlyKHQsZSl7bGV0IHI9WHRlKGUpLGE9cW8uZnJvbUpTT04ocix0KTtyZXR1cm4gdXcoYS5jb250ZW50LHIpfWZ1bmN0aW9uIENZcih0LGUpe2xldCByPVh0ZShlKSxhPUc5KHQpO3JldHVybiB5Yy5mcm9tU2NoZW1hKHIpLnBhcnNlKGEpLnRvSlNPTigpfWZ1bmN0aW9uIGNoZSh0LGUpe2xldCByPXtmcm9tOjAsdG86dC5jb250ZW50LnNpemV9O3JldHVybiBhaGUodCxyLGUpfWZ1bmN0aW9uIHpZcih0LGUscil7bGV0e2Jsb2NrU2VwYXJhdG9yOmE9YAoKYCx0ZXh0U2VyaWFsaXplcnM6cz17fX09cnx8e30sbj1YdGUoZSksbz1xby5mcm9tSlNPTihuLHQpO3JldHVybiBjaGUobyx7YmxvY2tTZXBhcmF0b3I6YSx0ZXh0U2VyaWFsaXplcnM6ey4uLkt0ZShuKSwuLi5zfX0pfWZ1bmN0aW9uIFI1dCh0LGUpe2xldCByPSRzKGUsdC5zY2hlbWEpLHtmcm9tOmEsdG86c309dC5zZWxlY3Rpb24sbj1bXTt0LmRvYy5ub2Rlc0JldHdlZW4oYSxzLGw9PntuLnB1c2gobCl9KTtsZXQgbz1uLnJldmVyc2UoKS5maW5kKGw9PmwudHlwZS5uYW1lPT09ci5uYW1lKTtyZXR1cm4gbz97Li4uby5hdHRyc306e319ZnVuY3Rpb24gcnJlKHQsZSl7bGV0IHI9bXcodHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5uYW1lLHQuc2NoZW1hKTtyZXR1cm4gcj09PSJub2RlIj9SNXQodCxlKTpyPT09Im1hcmsiP2xoZSh0LGUpOnt9fWZ1bmN0aW9uIEY1dCh0LGU9SlNPTi5zdHJpbmdpZnkpe2xldCByPXt9O3JldHVybiB0LmZpbHRlcihhPT57bGV0IHM9ZShhKTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscyk/ITE6cltzXT0hMH0pfWZ1bmN0aW9uIFVPYSh0KXtsZXQgZT1GNXQodCk7cmV0dXJuIGUubGVuZ3RoPT09MT9lOmUuZmlsdGVyKChyLGEpPT4hZS5maWx0ZXIoKG4sbyk9Pm8hPT1hKS5zb21lKG49PnIub2xkUmFuZ2UuZnJvbT49bi5vbGRSYW5nZS5mcm9tJiZyLm9sZFJhbmdlLnRvPD1uLm9sZFJhbmdlLnRvJiZyLm5ld1JhbmdlLmZyb20+PW4ubmV3UmFuZ2UuZnJvbSYmci5uZXdSYW5nZS50bzw9bi5uZXdSYW5nZS50bykpfWZ1bmN0aW9uIGdoZSh0KXtsZXR7bWFwcGluZzplLHN0ZXBzOnJ9PXQsYT1bXTtyZXR1cm4gZS5tYXBzLmZvckVhY2goKHMsbik9PntsZXQgbz1bXTtpZihzLnJhbmdlcy5sZW5ndGgpcy5mb3JFYWNoKChsLGMpPT57by5wdXNoKHtmcm9tOmwsdG86Y30pfSk7ZWxzZXtsZXR7ZnJvbTpsLHRvOmN9PXJbbl07aWYobD09PXZvaWQgMHx8Yz09PXZvaWQgMClyZXR1cm47by5wdXNoKHtmcm9tOmwsdG86Y30pfW8uZm9yRWFjaCgoe2Zyb206bCx0bzpjfSk9PntsZXQgZD1lLnNsaWNlKG4pLm1hcChsLC0xKSxmPWUuc2xpY2UobikubWFwKGMpLHA9ZS5pbnZlcnQoKS5tYXAoZCwtMSksaD1lLmludmVydCgpLm1hcChmKTthLnB1c2goe29sZFJhbmdlOntmcm9tOnAsdG86aH0sbmV3UmFuZ2U6e2Zyb206ZCx0bzpmfX0pfSl9KSxVT2EoYSl9ZnVuY3Rpb24gQjV0KHQsZT0wKXtsZXQgYT10LnR5cGU9PT10LnR5cGUuc2NoZW1hLnRvcE5vZGVUeXBlPzA6MSxzPWUsbj1zK3Qubm9kZVNpemUsbz10Lm1hcmtzLm1hcChkPT57bGV0IGY9e3R5cGU6ZC50eXBlLm5hbWV9O3JldHVybiBPYmplY3Qua2V5cyhkLmF0dHJzKS5sZW5ndGgmJihmLmF0dHJzPXsuLi5kLmF0dHJzfSksZn0pLGw9ey4uLnQuYXR0cnN9LGM9e3R5cGU6dC50eXBlLm5hbWUsZnJvbTpzLHRvOm59O3JldHVybiBPYmplY3Qua2V5cyhsKS5sZW5ndGgmJihjLmF0dHJzPWwpLG8ubGVuZ3RoJiYoYy5tYXJrcz1vKSx0LmNvbnRlbnQuY2hpbGRDb3VudCYmKGMuY29udGVudD1bXSx0LmZvckVhY2goKGQsZik9Pnt2YXIgcDsocD1jLmNvbnRlbnQpPT09bnVsbHx8cD09PXZvaWQgMHx8cC5wdXNoKEI1dChkLGUrZithKSl9KSksdC50ZXh0JiYoYy50ZXh0PXQudGV4dCksY31mdW5jdGlvbiB4dyh0LGUscil7bGV0IGE9W107cmV0dXJuIHQ9PT1lP3IucmVzb2x2ZSh0KS5tYXJrcygpLmZvckVhY2gocz0+e2xldCBuPXIucmVzb2x2ZSh0KSxvPVp0ZShuLHMudHlwZSk7byYmYS5wdXNoKHttYXJrOnMsLi4ub30pfSk6ci5ub2Rlc0JldHdlZW4odCxlLChzLG4pPT57IXN8fHM/Lm5vZGVTaXplPT09dm9pZCAwfHxhLnB1c2goLi4ucy5tYXJrcy5tYXAobz0+KHtmcm9tOm4sdG86bitzLm5vZGVTaXplLG1hcms6b30pKSl9KSxhfWZ1bmN0aW9uIGJ3KHQsZSxyKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLmZpbHRlcigoW2FdKT0+e2xldCBzPXQuZmluZChuPT5uLnR5cGU9PT1lJiZuLm5hbWU9PT1hKTtyZXR1cm4gcz9zLmF0dHJpYnV0ZS5rZWVwT25TcGxpdDohMX0pKX1mdW5jdGlvbiBKdGUodCxlLHI9e30pe2xldHtlbXB0eTphLHJhbmdlczpzfT10LnNlbGVjdGlvbixuPWU/ZmQoZSx0LnNjaGVtYSk6bnVsbDtpZihhKXJldHVybiEhKHQuc3RvcmVkTWFya3N8fHQuc2VsZWN0aW9uLiRmcm9tLm1hcmtzKCkpLmZpbHRlcihwPT5uP24ubmFtZT09PXAudHlwZS5uYW1lOiEwKS5maW5kKHA9Pmh3KHAuYXR0cnMscix7c3RyaWN0OiExfSkpO2xldCBvPTAsbD1bXTtpZihzLmZvckVhY2goKHskZnJvbTpwLCR0bzpofSk9PntsZXQgbT1wLnBvcyx2PWgucG9zO3QuZG9jLm5vZGVzQmV0d2VlbihtLHYsKGIsZyk9PntpZighYi5pc1RleHQmJiFiLm1hcmtzLmxlbmd0aClyZXR1cm47bGV0IHk9TWF0aC5tYXgobSxnKSxrPU1hdGgubWluKHYsZytiLm5vZGVTaXplKSxNPWsteTtvKz1NLGwucHVzaCguLi5iLm1hcmtzLm1hcChOPT4oe21hcms6Tixmcm9tOnksdG86a30pKSl9KX0pLG89PT0wKXJldHVybiExO2xldCBjPWwuZmlsdGVyKHA9Pm4/bi5uYW1lPT09cC5tYXJrLnR5cGUubmFtZTohMCkuZmlsdGVyKHA9Pmh3KHAubWFyay5hdHRycyxyLHtzdHJpY3Q6ITF9KSkucmVkdWNlKChwLGgpPT5wK2gudG8taC5mcm9tLDApLGQ9bC5maWx0ZXIocD0+bj9wLm1hcmsudHlwZSE9PW4mJnAubWFyay50eXBlLmV4Y2x1ZGVzKG4pOiEwKS5yZWR1Y2UoKHAsaCk9PnAraC50by1oLmZyb20sMCk7cmV0dXJuKGM+MD9jK2Q6Yyk+PW99ZnVuY3Rpb24gSDV0KHQsZSxyPXt9KXtpZighZSlyZXR1cm4gSzkodCxudWxsLHIpfHxKdGUodCxudWxsLHIpO2xldCBhPW13KGUsdC5zY2hlbWEpO3JldHVybiBhPT09Im5vZGUiP0s5KHQsZSxyKTphPT09Im1hcmsiP0p0ZSh0LGUscik6ITF9ZnVuY3Rpb24gZGhlKHQsZSl7bGV0e25vZGVFeHRlbnNpb25zOnJ9PWR3KGUpLGE9ci5maW5kKG89Pm8ubmFtZT09PXQpO2lmKCFhKXJldHVybiExO2xldCBzPXtuYW1lOmEubmFtZSxvcHRpb25zOmEub3B0aW9ucyxzdG9yYWdlOmEuc3RvcmFnZX0sbj1wcihrdChhLCJncm91cCIscykpO3JldHVybiB0eXBlb2YgbiE9InN0cmluZyI/ITE6bi5zcGxpdCgiICIpLmluY2x1ZGVzKCJsaXN0Iil9ZnVuY3Rpb24gZXJlKHQse2NoZWNrQ2hpbGRyZW46ZT0hMCxpZ25vcmVXaGl0ZXNwYWNlOnI9ITF9PXt9KXt2YXIgYTtpZihyKXtpZih0LnR5cGUubmFtZT09PSJoYXJkQnJlYWsiKXJldHVybiEwO2lmKHQuaXNUZXh0KXJldHVybi9eXHMqJC9tLnRlc3QoKGE9dC50ZXh0KSE9PW51bGwmJmEhPT12b2lkIDA/YToiIil9aWYodC5pc1RleHQpcmV0dXJuIXQudGV4dDtpZih0LmlzQXRvbXx8dC5pc0xlYWYpcmV0dXJuITE7aWYodC5jb250ZW50LmNoaWxkQ291bnQ9PT0wKXJldHVybiEwO2lmKGUpe2xldCBzPSEwO3JldHVybiB0LmNvbnRlbnQuZm9yRWFjaChuPT57cyE9PSExJiYoZXJlKG4se2lnbm9yZVdoaXRlc3BhY2U6cixjaGVja0NoaWxkcmVuOmV9KXx8KHM9ITEpKX0pLHN9cmV0dXJuITF9ZnVuY3Rpb24gYmhlKHQpe3JldHVybiB0IGluc3RhbmNlb2YgSXR9ZnVuY3Rpb24gRFlyKHQsZSxyKXtsZXQgcz10LnN0YXRlLmRvYy5jb250ZW50LnNpemUsbj1rYyhlLDAscyksbz1rYyhyLDAscyksbD10LmNvb3Jkc0F0UG9zKG4pLGM9dC5jb29yZHNBdFBvcyhvLC0xKSxkPU1hdGgubWluKGwudG9wLGMudG9wKSxmPU1hdGgubWF4KGwuYm90dG9tLGMuYm90dG9tKSxwPU1hdGgubWluKGwubGVmdCxjLmxlZnQpLGg9TWF0aC5tYXgobC5yaWdodCxjLnJpZ2h0KSxtPWgtcCx2PWYtZCx5PXt0b3A6ZCxib3R0b206ZixsZWZ0OnAscmlnaHQ6aCx3aWR0aDptLGhlaWdodDp2LHg6cCx5OmR9O3JldHVybnsuLi55LHRvSlNPTjppKCgpPT55LCJ0b0pTT04iKX19ZnVuY3Rpb24gZllyKHtqc29uOnQsdmFsaWRNYXJrczplLHZhbGlkTm9kZXM6cixvcHRpb25zOmEscmV3cml0dGVuQ29udGVudDpzPVtdfSl7cmV0dXJuIHQubWFya3MmJkFycmF5LmlzQXJyYXkodC5tYXJrcykmJih0Lm1hcmtzPXQubWFya3MuZmlsdGVyKG49PntsZXQgbz10eXBlb2Ygbj09InN0cmluZyI/bjpuLnR5cGU7cmV0dXJuIGUuaGFzKG8pPyEwOihzLnB1c2goe29yaWdpbmFsOkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobikpLHVuc3VwcG9ydGVkOm99KSwhMSl9KSksdC5jb250ZW50JiZBcnJheS5pc0FycmF5KHQuY29udGVudCkmJih0LmNvbnRlbnQ9dC5jb250ZW50Lm1hcChuPT5mWXIoe2pzb246bix2YWxpZE1hcmtzOmUsdmFsaWROb2RlczpyLG9wdGlvbnM6YSxyZXdyaXR0ZW5Db250ZW50OnN9KS5qc29uKS5maWx0ZXIobj0+biE9bnVsbCkpLHQudHlwZSYmIXIuaGFzKHQudHlwZSk/KHMucHVzaCh7b3JpZ2luYWw6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0KSksdW5zdXBwb3J0ZWQ6dC50eXBlfSksdC5jb250ZW50JiZBcnJheS5pc0FycmF5KHQuY29udGVudCkmJmE/LmZhbGxiYWNrVG9QYXJhZ3JhcGghPT0hMT8odC50eXBlPSJwYXJhZ3JhcGgiLHtqc29uOnQscmV3cml0dGVuQ29udGVudDpzfSk6e2pzb246bnVsbCxyZXdyaXR0ZW5Db250ZW50OnN9KTp7anNvbjp0LHJld3JpdHRlbkNvbnRlbnQ6c319ZnVuY3Rpb24gJFlyKHQsZSxyKXtyZXR1cm4gZllyKHtqc29uOnQsdmFsaWROb2RlczpuZXcgU2V0KE9iamVjdC5rZXlzKGUubm9kZXMpKSx2YWxpZE1hcmtzOm5ldyBTZXQoT2JqZWN0LmtleXMoZS5tYXJrcykpLG9wdGlvbnM6cn0pfWZ1bmN0aW9uIFdPYSh0LGUscil7dmFyIGE7bGV0e3NlbGVjdGlvbjpzfT1lLG49bnVsbDtpZihpaGUocykmJihuPXMuJGN1cnNvciksbil7bGV0IGw9KGE9dC5zdG9yZWRNYXJrcykhPT1udWxsJiZhIT09dm9pZCAwP2E6bi5tYXJrcygpO3JldHVybiEhci5pc0luU2V0KGwpfHwhbC5zb21lKGM9PmMudHlwZS5leGNsdWRlcyhyKSl9bGV0e3JhbmdlczpvfT1zO3JldHVybiBvLnNvbWUoKHskZnJvbTpsLCR0bzpjfSk9PntsZXQgZD1sLmRlcHRoPT09MD90LmRvYy5pbmxpbmVDb250ZW50JiZ0LmRvYy50eXBlLmFsbG93c01hcmtUeXBlKHIpOiExO3JldHVybiB0LmRvYy5ub2Rlc0JldHdlZW4obC5wb3MsYy5wb3MsKGYscCxoKT0+e2lmKGQpcmV0dXJuITE7aWYoZi5pc0lubGluZSl7bGV0IG09IWh8fGgudHlwZS5hbGxvd3NNYXJrVHlwZShyKSx2PSEhci5pc0luU2V0KGYubWFya3MpfHwhZi5tYXJrcy5zb21lKGI9PmIudHlwZS5leGNsdWRlcyhyKSk7ZD1tJiZ2fXJldHVybiFkfSksZH0pfWZ1bmN0aW9uIGhZcih0LGUpe2xldCByPXQuc3RvcmVkTWFya3N8fHQuc2VsZWN0aW9uLiR0by5wYXJlbnRPZmZzZXQmJnQuc2VsZWN0aW9uLiRmcm9tLm1hcmtzKCk7aWYocil7bGV0IGE9ci5maWx0ZXIocz0+ZT8uaW5jbHVkZXMocy50eXBlLm5hbWUpKTt0LnRyLmVuc3VyZU1hcmtzKGEpfX1mdW5jdGlvbiBxNXQodCxlLHIpe2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHN0eWxlW2RhdGEtdGlwdGFwLXN0eWxlJHtyP2AtJHtyfWA6IiJ9XWApO2lmKGEhPT1udWxsKXJldHVybiBhO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIGUmJnMuc2V0QXR0cmlidXRlKCJub25jZSIsZSkscy5zZXRBdHRyaWJ1dGUoYGRhdGEtdGlwdGFwLXN0eWxlJHtyP2AtJHtyfWA6IiJ9YCwiIikscy5pbm5lckhUTUw9dCxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHMpLHN9ZnVuY3Rpb24gYTIodCl7cmV0dXJuIG5ldyBjMyh7ZmluZDp0LmZpbmQsaGFuZGxlcjppKCh7c3RhdGU6ZSxyYW5nZTpyLG1hdGNoOmF9KT0+e2xldCBzPXByKHQuZ2V0QXR0cmlidXRlcyx2b2lkIDAsYSk7aWYocz09PSExfHxzPT09bnVsbClyZXR1cm4gbnVsbDtsZXR7dHI6bn09ZSxvPWFbYS5sZW5ndGgtMV0sbD1hWzBdO2lmKG8pe2xldCBjPWwuc2VhcmNoKC9cUy8pLGQ9ci5mcm9tK2wuaW5kZXhPZihvKSxmPWQrby5sZW5ndGg7aWYoeHcoci5mcm9tLHIudG8sZS5kb2MpLmZpbHRlcihtPT5tLm1hcmsudHlwZS5leGNsdWRlZC5maW5kKGI9PmI9PT10LnR5cGUmJmIhPT1tLm1hcmsudHlwZSkpLmZpbHRlcihtPT5tLnRvPmQpLmxlbmd0aClyZXR1cm4gbnVsbDtmPHIudG8mJm4uZGVsZXRlKGYsci50byksZD5yLmZyb20mJm4uZGVsZXRlKHIuZnJvbStjLGQpO2xldCBoPXIuZnJvbStjK28ubGVuZ3RoO24uYWRkTWFyayhyLmZyb20rYyxoLHQudHlwZS5jcmVhdGUoc3x8e30pKSxuLnJlbW92ZVN0b3JlZE1hcmsodC50eXBlKX19LCJoYW5kbGVyIil9KX1mdW5jdGlvbiB4aGUodCl7cmV0dXJuIG5ldyBjMyh7ZmluZDp0LmZpbmQsaGFuZGxlcjppKCh7c3RhdGU6ZSxyYW5nZTpyLG1hdGNoOmF9KT0+e2xldCBzPXByKHQuZ2V0QXR0cmlidXRlcyx2b2lkIDAsYSl8fHt9LHt0cjpufT1lLG89ci5mcm9tLGw9ci50byxjPXQudHlwZS5jcmVhdGUocyk7aWYoYVsxXSl7bGV0IGQ9YVswXS5sYXN0SW5kZXhPZihhWzFdKSxmPW8rZDtmPmw/Zj1sOmw9ZithWzFdLmxlbmd0aDtsZXQgcD1hWzBdW2FbMF0ubGVuZ3RoLTFdO24uaW5zZXJ0VGV4dChwLG8rYVswXS5sZW5ndGgtMSksbi5yZXBsYWNlV2l0aChmLGwsYyl9ZWxzZSBpZihhWzBdKXtsZXQgZD10LnR5cGUuaXNJbmxpbmU/bzpvLTE7bi5pbnNlcnQoZCx0LnR5cGUuY3JlYXRlKHMpKS5kZWxldGUobi5tYXBwaW5nLm1hcChvKSxuLm1hcHBpbmcubWFwKGwpKX1uLnNjcm9sbEludG9WaWV3KCl9LCJoYW5kbGVyIil9KX1mdW5jdGlvbiBaOSh0KXtyZXR1cm4gbmV3IGMzKHtmaW5kOnQuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnIsbWF0Y2g6YX0pPT57bGV0IHM9ZS5kb2MucmVzb2x2ZShyLmZyb20pLG49cHIodC5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhKXx8e307aWYoIXMubm9kZSgtMSkuY2FuUmVwbGFjZVdpdGgocy5pbmRleCgtMSkscy5pbmRleEFmdGVyKC0xKSx0LnR5cGUpKXJldHVybiBudWxsO2UudHIuZGVsZXRlKHIuZnJvbSxyLnRvKS5zZXRCbG9ja1R5cGUoci5mcm9tLHIuZnJvbSx0LnR5cGUsbil9LCJoYW5kbGVyIil9KX1mdW5jdGlvbiBmaSh0KXtyZXR1cm4gbmV3IGMzKHtmaW5kOnQuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnIsbWF0Y2g6YX0pPT57bGV0IHM9dC5yZXBsYWNlLG49ci5mcm9tLG89ci50bztpZihhWzFdKXtsZXQgbD1hWzBdLmxhc3RJbmRleE9mKGFbMV0pO3MrPWFbMF0uc2xpY2UobCthWzFdLmxlbmd0aCksbis9bDtsZXQgYz1uLW87Yz4wJiYocz1hWzBdLnNsaWNlKGwtYyxsKStzLG49byl9ZS50ci5pbnNlcnRUZXh0KHMsbixvKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIGhkKHQpe3JldHVybiBuZXcgYzMoe2ZpbmQ6dC5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6cixtYXRjaDphLGNoYWluOnN9KT0+e2xldCBuPXByKHQuZ2V0QXR0cmlidXRlcyx2b2lkIDAsYSl8fHt9LG89ZS50ci5kZWxldGUoci5mcm9tLHIudG8pLGM9by5kb2MucmVzb2x2ZShyLmZyb20pLmJsb2NrUmFuZ2UoKSxkPWMmJkU5KGMsdC50eXBlLG4pO2lmKCFkKXJldHVybiBudWxsO2lmKG8ud3JhcChjLGQpLHQua2VlcE1hcmtzJiZ0LmVkaXRvcil7bGV0e3NlbGVjdGlvbjpwLHN0b3JlZE1hcmtzOmh9PWUse3NwbGl0dGFibGVNYXJrczptfT10LmVkaXRvci5leHRlbnNpb25NYW5hZ2VyLHY9aHx8cC4kdG8ucGFyZW50T2Zmc2V0JiZwLiRmcm9tLm1hcmtzKCk7aWYodil7bGV0IGI9di5maWx0ZXIoZz0+bS5pbmNsdWRlcyhnLnR5cGUubmFtZSkpO28uZW5zdXJlTWFya3MoYil9fWlmKHQua2VlcEF0dHJpYnV0ZXMpe2xldCBwPXQudHlwZS5uYW1lPT09ImJ1bGxldExpc3QifHx0LnR5cGUubmFtZT09PSJvcmRlcmVkTGlzdCI/Imxpc3RJdGVtIjoidGFza0xpc3QiO3MoKS51cGRhdGVBdHRyaWJ1dGVzKHAsbikucnVuKCl9bGV0IGY9by5kb2MucmVzb2x2ZShyLmZyb20tMSkubm9kZUJlZm9yZTtmJiZmLnR5cGU9PT10LnR5cGUmJmNsKG8uZG9jLHIuZnJvbS0xKSYmKCF0LmpvaW5QcmVkaWNhdGV8fHQuam9pblByZWRpY2F0ZShhLGYpKSYmby5qb2luKHIuZnJvbS0xKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIEkxKHQpe3JldHVybiBuZXcgVTkoe2ZpbmQ6dC5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6cixtYXRjaDphLHBhc3RlRXZlbnQ6c30pPT57bGV0IG49cHIodC5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhLHMpO2lmKG49PT0hMXx8bj09PW51bGwpcmV0dXJuIG51bGw7bGV0e3RyOm99PWUsbD1hW2EubGVuZ3RoLTFdLGM9YVswXSxkPXIudG87aWYobCl7bGV0IGY9Yy5zZWFyY2goL1xTLykscD1yLmZyb20rYy5pbmRleE9mKGwpLGg9cCtsLmxlbmd0aDtpZih4dyhyLmZyb20sci50byxlLmRvYykuZmlsdGVyKHY9PnYubWFyay50eXBlLmV4Y2x1ZGVkLmZpbmQoZz0+Zz09PXQudHlwZSYmZyE9PXYubWFyay50eXBlKSkuZmlsdGVyKHY9PnYudG8+cCkubGVuZ3RoKXJldHVybiBudWxsO2g8ci50byYmby5kZWxldGUoaCxyLnRvKSxwPnIuZnJvbSYmby5kZWxldGUoci5mcm9tK2YscCksZD1yLmZyb20rZitsLmxlbmd0aCxvLmFkZE1hcmsoci5mcm9tK2YsZCx0LnR5cGUuY3JlYXRlKG58fHt9KSksby5yZW1vdmVTdG9yZWRNYXJrKHQudHlwZSl9fSwiaGFuZGxlciIpfSl9ZnVuY3Rpb24gdmhlKHQsZSl7bGV0e3NlbGVjdGlvbjpyfT10LHskZnJvbTphfT1yO2lmKHIgaW5zdGFuY2VvZiBJdCl7bGV0IG49YS5pbmRleCgpO3JldHVybiBhLnBhcmVudC5jYW5SZXBsYWNlV2l0aChuLG4rMSxlKX1sZXQgcz1hLmRlcHRoO2Zvcig7cz49MDspe2xldCBuPWEuaW5kZXgocyk7aWYoYS5ub2RlKHMpLmNvbnRlbnRNYXRjaEF0KG4pLm1hdGNoVHlwZShlKSlyZXR1cm4hMDtzLT0xfXJldHVybiExfWZ1bmN0aW9uIEVZcih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bLS9cXF4kKis/LigpfFtcXXt9XS9nLCJcXCQmIil9ZnVuY3Rpb24gSVlyKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gUFlyKHQpe3JldHVybiBuZXcgVTkoe2ZpbmQ6dC5maW5kLGhhbmRsZXIoe21hdGNoOmUsY2hhaW46cixyYW5nZTphLHBhc3RlRXZlbnQ6c30pe2xldCBuPXByKHQuZ2V0QXR0cmlidXRlcyx2b2lkIDAsZSxzKSxvPXByKHQuZ2V0Q29udGVudCx2b2lkIDAsbik7aWYobj09PSExfHxuPT09bnVsbClyZXR1cm4gbnVsbDtsZXQgbD17dHlwZTp0LnR5cGUubmFtZSxhdHRyczpufTtvJiYobC5jb250ZW50PW8pLGUuaW5wdXQmJnIoKS5kZWxldGVSYW5nZShhKS5pbnNlcnRDb250ZW50QXQoYS5mcm9tLGwpfX0pfWZ1bmN0aW9uIE5Zcih0KXtyZXR1cm4gbmV3IFU5KHtmaW5kOnQuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnIsbWF0Y2g6YX0pPT57bGV0IHM9dC5yZXBsYWNlLG49ci5mcm9tLG89ci50bztpZihhWzFdKXtsZXQgbD1hWzBdLmxhc3RJbmRleE9mKGFbMV0pO3MrPWFbMF0uc2xpY2UobCthWzFdLmxlbmd0aCksbis9bDtsZXQgYz1uLW87Yz4wJiYocz1hWzBdLnNsaWNlKGwtYyxsKStzLG49byl9ZS50ci5pbnNlcnRUZXh0KHMsbixvKX0sImhhbmRsZXIiKX0pfXZhciBKcCxTNXQsTDV0LGMzLFhOYSxPbixVOSxlT2EsWmZlLHJPYSxRZmUsa2ksY1lyLGFPYSxpT2Esc09hLG5PYSxvT2EsbE9hLGNPYSxkT2EsdU9hLHBPYSxmT2EsaE9hLG1PYSxnT2EsYk9hLHhPYSx2T2EscFlyLHlPYSx3T2Esa09hLFNPYSxNT2EsQ09hLHpPYSxfT2EsVE9hLExPYSwkT2EsQU9hLEVPYSxJT2EsUE9hLE5PYSxPT2EsUk9hLEZPYSxCT2EsSE9hLHFPYSxWT2Esak9hLF9ZcixUWXIsTFlyLEdPYSxZT2EsS09hLFpPYSxRT2EsWE9hLEpPYSxlUmEsQzV0LHo1dCx0UmEsclJhLGFSYSxpUmEsc1JhLG5SYSxvUmEsbFJhLGNSYSxkUmEsdVJhLG1ZcixnWXIsYllyLHhZcix2WXIseVlyLHdZcixrWXIsQVlyLHRyZSxwUmEsdWhlLHRpLHBoZSxmaGUsaGk9dSgoKT0+e1B0ZSgpO0ZHcigpO3FHcigpO1ZHcigpO2pHcigpO2VZcigpO29ZcigpO2koY3csImNyZWF0ZUNoYWluYWJsZVN0YXRlIik7SnA9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29tbWFuZE1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmVkaXRvcj1lLmVkaXRvcix0aGlzLnJhd0NvbW1hbmRzPXRoaXMuZWRpdG9yLmV4dGVuc2lvbk1hbmFnZXIuY29tbWFuZHMsdGhpcy5jdXN0b21TdGF0ZT1lLnN0YXRlfWdldCBoYXNDdXN0b21TdGF0ZSgpe3JldHVybiEhdGhpcy5jdXN0b21TdGF0ZX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5jdXN0b21TdGF0ZXx8dGhpcy5lZGl0b3Iuc3RhdGV9Z2V0IGNvbW1hbmRzKCl7bGV0e3Jhd0NvbW1hbmRzOmUsZWRpdG9yOnIsc3RhdGU6YX09dGhpcyx7dmlldzpzfT1yLHt0cjpufT1hLG89dGhpcy5idWlsZFByb3BzKG4pO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZSkubWFwKChbbCxjXSk9PltsLGkoKC4uLmYpPT57bGV0IHA9YyguLi5mKShvKTtyZXR1cm4hbi5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJnMuZGlzcGF0Y2gobikscH0sIm1ldGhvZCIpXSkpfWdldCBjaGFpbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNoYWluKCl9Z2V0IGNhbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNhbigpfWNyZWF0ZUNoYWluKGUscj0hMCl7bGV0e3Jhd0NvbW1hbmRzOmEsZWRpdG9yOnMsc3RhdGU6bn09dGhpcyx7dmlldzpvfT1zLGw9W10sYz0hIWUsZD1lfHxuLnRyLGY9aSgoKT0+KCFjJiZyJiYhZC5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJm8uZGlzcGF0Y2goZCksbC5ldmVyeShoPT5oPT09ITApKSwicnVuIikscD17Li4uT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGEpLm1hcCgoW2gsbV0pPT5baCxpKCguLi5iKT0+e2xldCBnPXRoaXMuYnVpbGRQcm9wcyhkLHIpLHk9bSguLi5iKShnKTtyZXR1cm4gbC5wdXNoKHkpLHB9LCJjaGFpbmVkQ29tbWFuZCIpXSkpLHJ1bjpmfTtyZXR1cm4gcH1jcmVhdGVDYW4oZSl7bGV0e3Jhd0NvbW1hbmRzOnIsc3RhdGU6YX09dGhpcyxzPSExLG49ZXx8YS50cixvPXRoaXMuYnVpbGRQcm9wcyhuLHMpO3JldHVybnsuLi5PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMocikubWFwKChbYyxkXSk9PltjLCguLi5mKT0+ZCguLi5mKSh7Li4ubyxkaXNwYXRjaDp2b2lkIDB9KV0pKSxjaGFpbjppKCgpPT50aGlzLmNyZWF0ZUNoYWluKG4scyksImNoYWluIil9fWJ1aWxkUHJvcHMoZSxyPSEwKXtsZXR7cmF3Q29tbWFuZHM6YSxlZGl0b3I6cyxzdGF0ZTpufT10aGlzLHt2aWV3Om99PXMsbD17dHI6ZSxlZGl0b3I6cyx2aWV3Om8sc3RhdGU6Y3coe3N0YXRlOm4sdHJhbnNhY3Rpb246ZX0pLGRpc3BhdGNoOnI/KCk9Pnt9OnZvaWQgMCxjaGFpbjppKCgpPT50aGlzLmNyZWF0ZUNoYWluKGUsciksImNoYWluIiksY2FuOmkoKCk9PnRoaXMuY3JlYXRlQ2FuKGUpLCJjYW4iKSxnZXQgY29tbWFuZHMoKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGEpLm1hcCgoW2MsZF0pPT5bYywoLi4uZik9PmQoLi4uZikobCldKSl9fTtyZXR1cm4gbH19LFM1dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFdmVudEVtaXR0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuY2FsbGJhY2tzPXt9fW9uKGUscil7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2VdfHwodGhpcy5jYWxsYmFja3NbZV09W10pLHRoaXMuY2FsbGJhY2tzW2VdLnB1c2gociksdGhpc31lbWl0KGUsLi4ucil7bGV0IGE9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIGEmJmEuZm9yRWFjaChzPT5zLmFwcGx5KHRoaXMscikpLHRoaXN9b2ZmKGUscil7bGV0IGE9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIGEmJihyP3RoaXMuY2FsbGJhY2tzW2VdPWEuZmlsdGVyKHM9PnMhPT1yKTpkZWxldGUgdGhpcy5jYWxsYmFja3NbZV0pLHRoaXN9b25jZShlLHIpe2xldCBhPWkoKC4uLnMpPT57dGhpcy5vZmYoZSxhKSxyLmFwcGx5KHRoaXMscyl9LCJvbmNlRm4iKTtyZXR1cm4gdGhpcy5vbihlLGEpfXJlbW92ZUFsbExpc3RlbmVycygpe3RoaXMuY2FsbGJhY2tzPXt9fX07aShrdCwiZ2V0RXh0ZW5zaW9uRmllbGQiKTtpKGR3LCJzcGxpdEV4dGVuc2lvbnMiKTtpKFhmZSwiZ2V0QXR0cmlidXRlc0Zyb21FeHRlbnNpb25zIik7aSgkcywiZ2V0Tm9kZVR5cGUiKTtpKHNhLCJtZXJnZUF0dHJpYnV0ZXMiKTtpKFd0ZSwiZ2V0UmVuZGVyZWRBdHRyaWJ1dGVzIik7aShKZmUsImlzRnVuY3Rpb24iKTtpKHByLCJjYWxsT3JSZXR1cm4iKTtpKF81dCwiaXNFbXB0eU9iamVjdCIpO2koVDV0LCJmcm9tU3RyaW5nIik7aShlaGUsImluamVjdEV4dGVuc2lvbkF0dHJpYnV0ZXNUb1BhcnNlUnVsZSIpO2kobFlyLCJjbGVhblVwU2NoZW1hSXRlbSIpO2kodGhlLCJnZXRTY2hlbWFCeVJlc29sdmVkRXh0ZW5zaW9ucyIpO2koR3RlLCJnZXRTY2hlbWFUeXBlQnlOYW1lIik7aShyaGUsImlzRXh0ZW5zaW9uUnVsZXNFbmFibGVkIik7aSh1dywiZ2V0SFRNTEZyb21GcmFnbWVudCIpO0w1dD1pKCh0LGU9NTAwKT0+e2xldCByPSIiLGE9dC5wYXJlbnRPZmZzZXQ7cmV0dXJuIHQucGFyZW50Lm5vZGVzQmV0d2VlbihNYXRoLm1heCgwLGEtZSksYSwocyxuLG8sbCk9Pnt2YXIgYyxkO2xldCBmPSgoZD0oYz1zLnR5cGUuc3BlYykudG9UZXh0KT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuY2FsbChjLHtub2RlOnMscG9zOm4scGFyZW50Om8saW5kZXg6bH0pKXx8cy50ZXh0Q29udGVudHx8IiVsZWFmJSI7cis9cy5pc0F0b20mJiFzLmlzVGV4dD9mOmYuc2xpY2UoMCxNYXRoLm1heCgwLGEtbikpfSkscn0sImdldFRleHRDb250ZW50RnJvbU5vZGVzIik7aShZdGUsImlzUmVnRXhwIik7YzM9Y2xhc3N7c3RhdGlje2kodGhpcywiSW5wdXRSdWxlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5maW5kPWUuZmluZCx0aGlzLmhhbmRsZXI9ZS5oYW5kbGVyfX0sWE5hPWkoKHQsZSk9PntpZihZdGUoZSkpcmV0dXJuIGUuZXhlYyh0KTtsZXQgcj1lKHQpO2lmKCFyKXJldHVybiBudWxsO2xldCBhPVtyLnRleHRdO3JldHVybiBhLmluZGV4PXIuaW5kZXgsYS5pbnB1dD10LGEuZGF0YT1yLmRhdGEsci5yZXBsYWNlV2l0aCYmKHIudGV4dC5pbmNsdWRlcyhyLnJlcGxhY2VXaXRoKXx8Y29uc29sZS53YXJuKCdbdGlwdGFwIHdhcm5dOiAiaW5wdXRSdWxlTWF0Y2gucmVwbGFjZVdpdGgiIG11c3QgYmUgcGFydCBvZiAiaW5wdXRSdWxlTWF0Y2gudGV4dCIuJyksYS5wdXNoKHIucmVwbGFjZVdpdGgpKSxhfSwiaW5wdXRSdWxlTWF0Y2hlckhhbmRsZXIiKTtpKEtmZSwicnVuJDEiKTtpKEQ1dCwiaW5wdXRSdWxlc1BsdWdpbiIpO2koSk5hLCJnZXRUeXBlIik7aShwdywiaXNQbGFpbk9iamVjdCIpO2koZncsIm1lcmdlRGVlcCIpO09uPWNsYXNzIHR7c3RhdGlje2kodGhpcywiTWFyayIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0ibWFyayIsdGhpcy5uYW1lPSJtYXJrIix0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGQ9bnVsbCx0aGlzLmNvbmZpZz17bmFtZTp0aGlzLm5hbWUsZGVmYXVsdE9wdGlvbnM6e319LHRoaXMuY29uZmlnPXsuLi50aGlzLmNvbmZpZywuLi5lfSx0aGlzLm5hbWU9dGhpcy5jb25maWcubmFtZSxlLmRlZmF1bHRPcHRpb25zJiZPYmplY3Qua2V5cyhlLmRlZmF1bHRPcHRpb25zKS5sZW5ndGg+MCYmY29uc29sZS53YXJuKGBbdGlwdGFwIHdhcm5dOiBCUkVBS0lORyBDSEFOR0U6ICJkZWZhdWx0T3B0aW9ucyIgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSAiYWRkT3B0aW9ucyIgaW5zdGVhZC4gRm91bmQgaW4gZXh0ZW5zaW9uOiAiJHt0aGlzLm5hbWV9Ii5gKSx0aGlzLm9wdGlvbnM9dGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsdGhpcy5jb25maWcuYWRkT3B0aW9ucyYmKHRoaXMub3B0aW9ucz1wcihrdCh0aGlzLCJhZGRPcHRpb25zIix7bmFtZTp0aGlzLm5hbWV9KSkpLHRoaXMuc3RvcmFnZT1wcihrdCh0aGlzLCJhZGRTdG9yYWdlIix7bmFtZTp0aGlzLm5hbWUsb3B0aW9uczp0aGlzLm9wdGlvbnN9KSl8fHt9fXN0YXRpYyBjcmVhdGUoZT17fSl7cmV0dXJuIG5ldyB0KGUpfWNvbmZpZ3VyZShlPXt9KXtsZXQgcj10aGlzLmV4dGVuZCh7Li4udGhpcy5jb25maWcsYWRkT3B0aW9uczppKCgpPT5mdyh0aGlzLm9wdGlvbnMsZSksImFkZE9wdGlvbnMiKX0pO3JldHVybiByLm5hbWU9dGhpcy5uYW1lLHIucGFyZW50PXRoaXMucGFyZW50LHJ9ZXh0ZW5kKGU9e30pe2xldCByPW5ldyB0KGUpO3JldHVybiByLnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9cixyLm5hbWU9ZS5uYW1lP2UubmFtZTpyLnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3IubmFtZX0iLmApLHIub3B0aW9ucz1wcihrdChyLCJhZGRPcHRpb25zIix7bmFtZTpyLm5hbWV9KSksci5zdG9yYWdlPXByKGt0KHIsImFkZFN0b3JhZ2UiLHtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9uc30pKSxyfXN0YXRpYyBoYW5kbGVFeGl0KHtlZGl0b3I6ZSxtYXJrOnJ9KXtsZXR7dHI6YX09ZS5zdGF0ZSxzPWUuc3RhdGUuc2VsZWN0aW9uLiRmcm9tO2lmKHMucG9zPT09cy5lbmQoKSl7bGV0IG89cy5tYXJrcygpO2lmKCEhIW8uZmluZChkPT5kPy50eXBlLm5hbWU9PT1yLm5hbWUpKXJldHVybiExO2xldCBjPW8uZmluZChkPT5kPy50eXBlLm5hbWU9PT1yLm5hbWUpO3JldHVybiBjJiZhLnJlbW92ZVN0b3JlZE1hcmsoYyksYS5pbnNlcnRUZXh0KCIgIixzLnBvcyksZS52aWV3LmRpc3BhdGNoKGEpLCEwfXJldHVybiExfX07aSgkNXQsImlzTnVtYmVyIik7VTk9Y2xhc3N7c3RhdGlje2kodGhpcywiUGFzdGVSdWxlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5maW5kPWUuZmluZCx0aGlzLmhhbmRsZXI9ZS5oYW5kbGVyfX0sZU9hPWkoKHQsZSxyKT0+e2lmKFl0ZShlKSlyZXR1cm5bLi4udC5tYXRjaEFsbChlKV07bGV0IGE9ZSh0LHIpO3JldHVybiBhP2EubWFwKHM9PntsZXQgbj1bcy50ZXh0XTtyZXR1cm4gbi5pbmRleD1zLmluZGV4LG4uaW5wdXQ9dCxuLmRhdGE9cy5kYXRhLHMucmVwbGFjZVdpdGgmJihzLnRleHQuaW5jbHVkZXMocy5yZXBsYWNlV2l0aCl8fGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogInBhc3RlUnVsZU1hdGNoLnJlcGxhY2VXaXRoIiBtdXN0IGJlIHBhcnQgb2YgInBhc3RlUnVsZU1hdGNoLnRleHQiLicpLG4ucHVzaChzLnJlcGxhY2VXaXRoKSksbn0pOltdfSwicGFzdGVSdWxlTWF0Y2hlckhhbmRsZXIiKTtpKHRPYSwicnVuIik7WmZlPW51bGwsck9hPWkodD0+e3ZhciBlO2xldCByPW5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiLHtjbGlwYm9hcmREYXRhOm5ldyBEYXRhVHJhbnNmZXJ9KTtyZXR1cm4oZT1yLmNsaXBib2FyZERhdGEpPT09bnVsbHx8ZT09PXZvaWQgMHx8ZS5zZXREYXRhKCJ0ZXh0L2h0bWwiLHQpLHJ9LCJjcmVhdGVDbGlwYm9hcmRQYXN0ZUV2ZW50Iik7aShBNXQsInBhc3RlUnVsZXNQbHVnaW4iKTtpKEU1dCwiZmluZER1cGxpY2F0ZXMiKTtRZmU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJFeHRlbnNpb25NYW5hZ2VyIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnNwbGl0dGFibGVNYXJrcz1bXSx0aGlzLmVkaXRvcj1yLHRoaXMuZXh0ZW5zaW9ucz10LnJlc29sdmUoZSksdGhpcy5zY2hlbWE9dGhlKHRoaXMuZXh0ZW5zaW9ucyxyKSx0aGlzLnNldHVwRXh0ZW5zaW9ucygpfXN0YXRpYyByZXNvbHZlKGUpe2xldCByPXQuc29ydCh0LmZsYXR0ZW4oZSkpLGE9RTV0KHIubWFwKHM9PnMubmFtZSkpO3JldHVybiBhLmxlbmd0aCYmY29uc29sZS53YXJuKGBbdGlwdGFwIHdhcm5dOiBEdXBsaWNhdGUgZXh0ZW5zaW9uIG5hbWVzIGZvdW5kOiBbJHthLm1hcChzPT5gJyR7c30nYCkuam9pbigiLCAiKX1dLiBUaGlzIGNhbiBsZWFkIHRvIGlzc3Vlcy5gKSxyfXN0YXRpYyBmbGF0dGVuKGUpe3JldHVybiBlLm1hcChyPT57bGV0IGE9e25hbWU6ci5uYW1lLG9wdGlvbnM6ci5vcHRpb25zLHN0b3JhZ2U6ci5zdG9yYWdlfSxzPWt0KHIsImFkZEV4dGVuc2lvbnMiLGEpO3JldHVybiBzP1tyLC4uLnRoaXMuZmxhdHRlbihzKCkpXTpyfSkuZmxhdCgxMCl9c3RhdGljIHNvcnQoZSl7cmV0dXJuIGUuc29ydCgoYSxzKT0+e2xldCBuPWt0KGEsInByaW9yaXR5Iil8fDEwMCxvPWt0KHMsInByaW9yaXR5Iil8fDEwMDtyZXR1cm4gbj5vPy0xOm48bz8xOjB9KX1nZXQgY29tbWFuZHMoKXtyZXR1cm4gdGhpcy5leHRlbnNpb25zLnJlZHVjZSgoZSxyKT0+e2xldCBhPXtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9ucyxzdG9yYWdlOnIuc3RvcmFnZSxlZGl0b3I6dGhpcy5lZGl0b3IsdHlwZTpHdGUoci5uYW1lLHRoaXMuc2NoZW1hKX0scz1rdChyLCJhZGRDb21tYW5kcyIsYSk7cmV0dXJuIHM/ey4uLmUsLi4ucygpfTplfSx7fSl9Z2V0IHBsdWdpbnMoKXtsZXR7ZWRpdG9yOmV9PXRoaXMscj10LnNvcnQoWy4uLnRoaXMuZXh0ZW5zaW9uc10ucmV2ZXJzZSgpKSxhPVtdLHM9W10sbj1yLm1hcChvPT57bGV0IGw9e25hbWU6by5uYW1lLG9wdGlvbnM6by5vcHRpb25zLHN0b3JhZ2U6by5zdG9yYWdlLGVkaXRvcjplLHR5cGU6R3RlKG8ubmFtZSx0aGlzLnNjaGVtYSl9LGM9W10sZD1rdChvLCJhZGRLZXlib2FyZFNob3J0Y3V0cyIsbCksZj17fTtpZihvLnR5cGU9PT0ibWFyayImJmt0KG8sImV4aXRhYmxlIixsKSYmKGYuQXJyb3dSaWdodD0oKT0+T24uaGFuZGxlRXhpdCh7ZWRpdG9yOmUsbWFyazpvfSkpLGQpe2xldCBiPU9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhkKCkpLm1hcCgoW2cseV0pPT5bZywoKT0+eSh7ZWRpdG9yOmV9KV0pKTtmPXsuLi5mLC4uLmJ9fWxldCBwPWk1dChmKTtjLnB1c2gocCk7bGV0IGg9a3QobywiYWRkSW5wdXRSdWxlcyIsbCk7cmhlKG8sZS5vcHRpb25zLmVuYWJsZUlucHV0UnVsZXMpJiZoJiZhLnB1c2goLi4uaCgpKTtsZXQgbT1rdChvLCJhZGRQYXN0ZVJ1bGVzIixsKTtyaGUobyxlLm9wdGlvbnMuZW5hYmxlUGFzdGVSdWxlcykmJm0mJnMucHVzaCguLi5tKCkpO2xldCB2PWt0KG8sImFkZFByb3NlTWlycm9yUGx1Z2lucyIsbCk7aWYodil7bGV0IGI9digpO2MucHVzaCguLi5iKX1yZXR1cm4gY30pLmZsYXQoKTtyZXR1cm5bRDV0KHtlZGl0b3I6ZSxydWxlczphfSksLi4uQTV0KHtlZGl0b3I6ZSxydWxlczpzfSksLi4ubl19Z2V0IGF0dHJpYnV0ZXMoKXtyZXR1cm4gWGZlKHRoaXMuZXh0ZW5zaW9ucyl9Z2V0IG5vZGVWaWV3cygpe2xldHtlZGl0b3I6ZX09dGhpcyx7bm9kZUV4dGVuc2lvbnM6cn09ZHcodGhpcy5leHRlbnNpb25zKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHIuZmlsdGVyKGE9PiEha3QoYSwiYWRkTm9kZVZpZXciKSkubWFwKGE9PntsZXQgcz10aGlzLmF0dHJpYnV0ZXMuZmlsdGVyKGM9PmMudHlwZT09PWEubmFtZSksbj17bmFtZTphLm5hbWUsb3B0aW9uczphLm9wdGlvbnMsc3RvcmFnZTphLnN0b3JhZ2UsZWRpdG9yOmUsdHlwZTokcyhhLm5hbWUsdGhpcy5zY2hlbWEpfSxvPWt0KGEsImFkZE5vZGVWaWV3IixuKTtpZighbylyZXR1cm5bXTtsZXQgbD1pKChjLGQsZixwLGgpPT57bGV0IG09V3RlKGMscyk7cmV0dXJuIG8oKSh7bm9kZTpjLHZpZXc6ZCxnZXRQb3M6ZixkZWNvcmF0aW9uczpwLGlubmVyRGVjb3JhdGlvbnM6aCxlZGl0b3I6ZSxleHRlbnNpb246YSxIVE1MQXR0cmlidXRlczptfSl9LCJub2RldmlldyIpO3JldHVyblthLm5hbWUsbF19KSl9c2V0dXBFeHRlbnNpb25zKCl7dGhpcy5leHRlbnNpb25zLmZvckVhY2goZT0+e3ZhciByO3RoaXMuZWRpdG9yLmV4dGVuc2lvblN0b3JhZ2VbZS5uYW1lXT1lLnN0b3JhZ2U7bGV0IGE9e25hbWU6ZS5uYW1lLG9wdGlvbnM6ZS5vcHRpb25zLHN0b3JhZ2U6ZS5zdG9yYWdlLGVkaXRvcjp0aGlzLmVkaXRvcix0eXBlOkd0ZShlLm5hbWUsdGhpcy5zY2hlbWEpfTtlLnR5cGU9PT0ibWFyayImJighKChyPXByKGt0KGUsImtlZXBPblNwbGl0IixhKSkpIT09bnVsbCYmciE9PXZvaWQgMCl8fHIpJiZ0aGlzLnNwbGl0dGFibGVNYXJrcy5wdXNoKGUubmFtZSk7bGV0IHM9a3QoZSwib25CZWZvcmVDcmVhdGUiLGEpLG49a3QoZSwib25DcmVhdGUiLGEpLG89a3QoZSwib25VcGRhdGUiLGEpLGw9a3QoZSwib25TZWxlY3Rpb25VcGRhdGUiLGEpLGM9a3QoZSwib25UcmFuc2FjdGlvbiIsYSksZD1rdChlLCJvbkZvY3VzIixhKSxmPWt0KGUsIm9uQmx1ciIsYSkscD1rdChlLCJvbkRlc3Ryb3kiLGEpO3MmJnRoaXMuZWRpdG9yLm9uKCJiZWZvcmVDcmVhdGUiLHMpLG4mJnRoaXMuZWRpdG9yLm9uKCJjcmVhdGUiLG4pLG8mJnRoaXMuZWRpdG9yLm9uKCJ1cGRhdGUiLG8pLGwmJnRoaXMuZWRpdG9yLm9uKCJzZWxlY3Rpb25VcGRhdGUiLGwpLGMmJnRoaXMuZWRpdG9yLm9uKCJ0cmFuc2FjdGlvbiIsYyksZCYmdGhpcy5lZGl0b3Iub24oImZvY3VzIixkKSxmJiZ0aGlzLmVkaXRvci5vbigiYmx1ciIsZikscCYmdGhpcy5lZGl0b3Iub24oImRlc3Ryb3kiLHApfSl9fSxraT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkV4dGVuc2lvbiIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0iZXh0ZW5zaW9uIix0aGlzLm5hbWU9ImV4dGVuc2lvbiIsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkPW51bGwsdGhpcy5jb25maWc9e25hbWU6dGhpcy5uYW1lLGRlZmF1bHRPcHRpb25zOnt9fSx0aGlzLmNvbmZpZz17Li4udGhpcy5jb25maWcsLi4uZX0sdGhpcy5uYW1lPXRoaXMuY29uZmlnLm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dGhpcy5uYW1lfSIuYCksdGhpcy5vcHRpb25zPXRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLHRoaXMuY29uZmlnLmFkZE9wdGlvbnMmJih0aGlzLm9wdGlvbnM9cHIoa3QodGhpcywiYWRkT3B0aW9ucyIse25hbWU6dGhpcy5uYW1lfSkpKSx0aGlzLnN0b3JhZ2U9cHIoa3QodGhpcywiYWRkU3RvcmFnZSIse25hbWU6dGhpcy5uYW1lLG9wdGlvbnM6dGhpcy5vcHRpb25zfSkpfHx7fX1zdGF0aWMgY3JlYXRlKGU9e30pe3JldHVybiBuZXcgdChlKX1jb25maWd1cmUoZT17fSl7bGV0IHI9dGhpcy5leHRlbmQoey4uLnRoaXMuY29uZmlnLGFkZE9wdGlvbnM6aSgoKT0+ZncodGhpcy5vcHRpb25zLGUpLCJhZGRPcHRpb25zIil9KTtyZXR1cm4gci5uYW1lPXRoaXMubmFtZSxyLnBhcmVudD10aGlzLnBhcmVudCxyfWV4dGVuZChlPXt9KXtsZXQgcj1uZXcgdCh7Li4udGhpcy5jb25maWcsLi4uZX0pO3JldHVybiByLnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9cixyLm5hbWU9ZS5uYW1lP2UubmFtZTpyLnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3IubmFtZX0iLmApLHIub3B0aW9ucz1wcihrdChyLCJhZGRPcHRpb25zIix7bmFtZTpyLm5hbWV9KSksci5zdG9yYWdlPXByKGt0KHIsImFkZFN0b3JhZ2UiLHtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9uc30pKSxyfX07aShhaGUsImdldFRleHRCZXR3ZWVuIik7aShLdGUsImdldFRleHRTZXJpYWxpemVyc0Zyb21TY2hlbWEiKTtjWXI9a2kuY3JlYXRlKHtuYW1lOiJjbGlwYm9hcmRUZXh0U2VyaWFsaXplciIsYWRkT3B0aW9ucygpe3JldHVybntibG9ja1NlcGFyYXRvcjp2b2lkIDB9fSxhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFFhKHtrZXk6bmV3IExzKCJjbGlwYm9hcmRUZXh0U2VyaWFsaXplciIpLHByb3BzOntjbGlwYm9hcmRUZXh0U2VyaWFsaXplcjppKCgpPT57bGV0e2VkaXRvcjp0fT10aGlzLHtzdGF0ZTplLHNjaGVtYTpyfT10LHtkb2M6YSxzZWxlY3Rpb246c309ZSx7cmFuZ2VzOm59PXMsbz1NYXRoLm1pbiguLi5uLm1hcChmPT5mLiRmcm9tLnBvcykpLGw9TWF0aC5tYXgoLi4ubi5tYXAoZj0+Zi4kdG8ucG9zKSksYz1LdGUocik7cmV0dXJuIGFoZShhLHtmcm9tOm8sdG86bH0sey4uLnRoaXMub3B0aW9ucy5ibG9ja1NlcGFyYXRvciE9PXZvaWQgMD97YmxvY2tTZXBhcmF0b3I6dGhpcy5vcHRpb25zLmJsb2NrU2VwYXJhdG9yfTp7fSx0ZXh0U2VyaWFsaXplcnM6Y30pfSwiY2xpcGJvYXJkVGV4dFNlcmlhbGl6ZXIiKX19KV19fSksYU9hPWkoKCk9Pih7ZWRpdG9yOnQsdmlldzplfSk9PihyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt2YXIgcjt0LmlzRGVzdHJveWVkfHwoZS5kb20uYmx1cigpLChyPXdpbmRvdz8uZ2V0U2VsZWN0aW9uKCkpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5yZW1vdmVBbGxSYW5nZXMoKSl9KSwhMCksImJsdXIiKSxpT2E9aSgodD0hMSk9Pih7Y29tbWFuZHM6ZX0pPT5lLnNldENvbnRlbnQoIiIsdCksImNsZWFyQ29udGVudCIpLHNPYT1pKCgpPT4oe3N0YXRlOnQsdHI6ZSxkaXNwYXRjaDpyfSk9PntsZXR7c2VsZWN0aW9uOmF9PWUse3JhbmdlczpzfT1hO3JldHVybiByJiZzLmZvckVhY2goKHskZnJvbTpuLCR0bzpvfSk9Pnt0LmRvYy5ub2Rlc0JldHdlZW4obi5wb3Msby5wb3MsKGwsYyk9PntpZihsLnR5cGUuaXNUZXh0KXJldHVybjtsZXR7ZG9jOmQsbWFwcGluZzpmfT1lLHA9ZC5yZXNvbHZlKGYubWFwKGMpKSxoPWQucmVzb2x2ZShmLm1hcChjK2wubm9kZVNpemUpKSxtPXAuYmxvY2tSYW5nZShoKTtpZighbSlyZXR1cm47bGV0IHY9Y2QobSk7aWYobC50eXBlLmlzVGV4dGJsb2NrKXtsZXR7ZGVmYXVsdFR5cGU6Yn09cC5wYXJlbnQuY29udGVudE1hdGNoQXQocC5pbmRleCgpKTtlLnNldE5vZGVNYXJrdXAobS5zdGFydCxiKX0odnx8dj09PTApJiZlLmxpZnQobSx2KX0pfSksITB9LCJjbGVhck5vZGVzIiksbk9hPWkodD0+ZT0+dChlKSwiY29tbWFuZCIpLG9PYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5qZmUodCxlKSwiY3JlYXRlUGFyYWdyYXBoTmVhciIpLGxPYT1pKCh0LGUpPT4oe2VkaXRvcjpyLHRyOmF9KT0+e2xldHtzdGF0ZTpzfT1yLG49cy5kb2Muc2xpY2UodC5mcm9tLHQudG8pO2EuZGVsZXRlUmFuZ2UodC5mcm9tLHQudG8pO2xldCBvPWEubWFwcGluZy5tYXAoZSk7cmV0dXJuIGEuaW5zZXJ0KG8sbi5jb250ZW50KSxhLnNldFNlbGVjdGlvbihuZXcgZXIoYS5kb2MucmVzb2x2ZShNYXRoLm1heChvLTEsMCkpKSksITB9LCJjdXQiKSxjT2E9aSgoKT0+KHt0cjp0LGRpc3BhdGNoOmV9KT0+e2xldHtzZWxlY3Rpb246cn09dCxhPXIuJGFuY2hvci5ub2RlKCk7aWYoYS5jb250ZW50LnNpemU+MClyZXR1cm4hMTtsZXQgcz10LnNlbGVjdGlvbi4kYW5jaG9yO2ZvcihsZXQgbj1zLmRlcHRoO24+MDtuLT0xKWlmKHMubm9kZShuKS50eXBlPT09YS50eXBlKXtpZihlKXtsZXQgbD1zLmJlZm9yZShuKSxjPXMuYWZ0ZXIobik7dC5kZWxldGUobCxjKS5zY3JvbGxJbnRvVmlldygpfXJldHVybiEwfXJldHVybiExfSwiZGVsZXRlQ3VycmVudE5vZGUiKSxkT2E9aSh0PT4oe3RyOmUsc3RhdGU6cixkaXNwYXRjaDphfSk9PntsZXQgcz0kcyh0LHIuc2NoZW1hKSxuPWUuc2VsZWN0aW9uLiRhbmNob3I7Zm9yKGxldCBvPW4uZGVwdGg7bz4wO28tPTEpaWYobi5ub2RlKG8pLnR5cGU9PT1zKXtpZihhKXtsZXQgYz1uLmJlZm9yZShvKSxkPW4uYWZ0ZXIobyk7ZS5kZWxldGUoYyxkKS5zY3JvbGxJbnRvVmlldygpfXJldHVybiEwfXJldHVybiExfSwiZGVsZXRlTm9kZSIpLHVPYT1pKHQ9Pih7dHI6ZSxkaXNwYXRjaDpyfSk9PntsZXR7ZnJvbTphLHRvOnN9PXQ7cmV0dXJuIHImJmUuZGVsZXRlKGEscyksITB9LCJkZWxldGVSYW5nZSIpLHBPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5VdGUodCxlKSwiZGVsZXRlU2VsZWN0aW9uIiksZk9hPWkoKCk9Pih7Y29tbWFuZHM6dH0pPT50LmtleWJvYXJkU2hvcnRjdXQoIkVudGVyIiksImVudGVyIiksaE9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PlZmZSh0LGUpLCJleGl0Q29kZSIpO2koaHcsIm9iamVjdEluY2x1ZGVzIik7aShkWXIsImZpbmRNYXJrSW5TZXQiKTtpKHVZciwiaXNNYXJrSW5TZXQiKTtpKFp0ZSwiZ2V0TWFya1JhbmdlIik7aShmZCwiZ2V0TWFya1R5cGUiKTttT2E9aSgodCxlPXt9KT0+KHt0cjpyLHN0YXRlOmEsZGlzcGF0Y2g6c30pPT57bGV0IG49ZmQodCxhLnNjaGVtYSkse2RvYzpvLHNlbGVjdGlvbjpsfT1yLHskZnJvbTpjLGZyb206ZCx0bzpmfT1sO2lmKHMpe2xldCBwPVp0ZShjLG4sZSk7aWYocCYmcC5mcm9tPD1kJiZwLnRvPj1mKXtsZXQgaD1lci5jcmVhdGUobyxwLmZyb20scC50byk7ci5zZXRTZWxlY3Rpb24oaCl9fXJldHVybiEwfSwiZXh0ZW5kTWFya1JhbmdlIiksZ09hPWkodD0+ZT0+e2xldCByPXR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoZSk6dDtmb3IobGV0IGE9MDthPHIubGVuZ3RoO2ErPTEpaWYoclthXShlKSlyZXR1cm4hMDtyZXR1cm4hMX0sImZpcnN0Iik7aShpaGUsImlzVGV4dFNlbGVjdGlvbiIpO2koa2MsIm1pbk1heCIpO2koc2hlLCJyZXNvbHZlRm9jdXNQb3NpdGlvbiIpO2koTTV0LCJpc0FuZHJvaWQiKTtpKFc5LCJpc2lPUyIpO2koSTV0LCJpc1NhZmFyaSIpO2JPYT1pKCh0PW51bGwsZT17fSk9Pih7ZWRpdG9yOnIsdmlldzphLHRyOnMsZGlzcGF0Y2g6bn0pPT57ZT17c2Nyb2xsSW50b1ZpZXc6ITAsLi4uZX07bGV0IG89aSgoKT0+eyhXOSgpfHxNNXQoKSkmJmEuZG9tLmZvY3VzKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57ci5pc0Rlc3Ryb3llZHx8KGEuZm9jdXMoKSxJNXQoKSYmIVc5KCkmJiFNNXQoKSYmYS5kb20uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSl9KX0sImRlbGF5ZWRGb2N1cyIpO2lmKGEuaGFzRm9jdXMoKSYmdD09PW51bGx8fHQ9PT0hMSlyZXR1cm4hMDtpZihuJiZ0PT09bnVsbCYmIWloZShyLnN0YXRlLnNlbGVjdGlvbikpcmV0dXJuIG8oKSwhMDtsZXQgbD1zaGUocy5kb2MsdCl8fHIuc3RhdGUuc2VsZWN0aW9uLGM9ci5zdGF0ZS5zZWxlY3Rpb24uZXEobCk7cmV0dXJuIG4mJihjfHxzLnNldFNlbGVjdGlvbihsKSxjJiZzLnN0b3JlZE1hcmtzJiZzLnNldFN0b3JlZE1hcmtzKHMuc3RvcmVkTWFya3MpLG8oKSksITB9LCJmb2N1cyIpLHhPYT1pKCh0LGUpPT5yPT50LmV2ZXJ5KChhLHMpPT5lKGEsey4uLnIsaW5kZXg6c30pKSwiZm9yRWFjaCIpLHZPYT1pKCh0LGUpPT4oe3RyOnIsY29tbWFuZHM6YX0pPT5hLmluc2VydENvbnRlbnRBdCh7ZnJvbTpyLnNlbGVjdGlvbi5mcm9tLHRvOnIuc2VsZWN0aW9uLnRvfSx0LGUpLCJpbnNlcnRDb250ZW50IikscFlyPWkodD0+e2xldCBlPXQuY2hpbGROb2Rlcztmb3IobGV0IHI9ZS5sZW5ndGgtMTtyPj0wO3ItPTEpe2xldCBhPWVbcl07YS5ub2RlVHlwZT09PTMmJmEubm9kZVZhbHVlJiYvXihcblxzXHN8XG4pJC8udGVzdChhLm5vZGVWYWx1ZSk/dC5yZW1vdmVDaGlsZChhKTphLm5vZGVUeXBlPT09MSYmcFlyKGEpfXJldHVybiB0fSwicmVtb3ZlV2hpdGVzcGFjZXMiKTtpKEc5LCJlbGVtZW50RnJvbVN0cmluZyIpO2koWTksImNyZWF0ZU5vZGVGcm9tQ29udGVudCIpO2koUDV0LCJzZWxlY3Rpb25Ub0luc2VydGlvbkVuZCIpO3lPYT1pKHQ9PiEoInR5cGUiaW4gdCksImlzRnJhZ21lbnQiKSx3T2E9aSgodCxlLHIpPT4oe3RyOmEsZGlzcGF0Y2g6cyxlZGl0b3I6bn0pPT57dmFyIG87aWYocyl7cj17cGFyc2VPcHRpb25zOm4ub3B0aW9ucy5wYXJzZU9wdGlvbnMsdXBkYXRlU2VsZWN0aW9uOiEwLGFwcGx5SW5wdXRSdWxlczohMSxhcHBseVBhc3RlUnVsZXM6ITEsLi4ucn07bGV0IGwsYz1pKGc9PntuLmVtaXQoImNvbnRlbnRFcnJvciIse2VkaXRvcjpuLGVycm9yOmcsZGlzYWJsZUNvbGxhYm9yYXRpb246aSgoKT0+e24uc3RvcmFnZS5jb2xsYWJvcmF0aW9uJiYobi5zdG9yYWdlLmNvbGxhYm9yYXRpb24uaXNEaXNhYmxlZD0hMCl9LCJkaXNhYmxlQ29sbGFib3JhdGlvbiIpfSl9LCJlbWl0Q29udGVudEVycm9yIiksZD17cHJlc2VydmVXaGl0ZXNwYWNlOiJmdWxsIiwuLi5yLnBhcnNlT3B0aW9uc307aWYoIXIuZXJyb3JPbkludmFsaWRDb250ZW50JiYhbi5vcHRpb25zLmVuYWJsZUNvbnRlbnRDaGVjayYmbi5vcHRpb25zLmVtaXRDb250ZW50RXJyb3IpdHJ5e1k5KGUsbi5zY2hlbWEse3BhcnNlT3B0aW9uczpkLGVycm9yT25JbnZhbGlkQ29udGVudDohMH0pfWNhdGNoKGcpe2MoZyl9dHJ5e2w9WTkoZSxuLnNjaGVtYSx7cGFyc2VPcHRpb25zOmQsZXJyb3JPbkludmFsaWRDb250ZW50OihvPXIuZXJyb3JPbkludmFsaWRDb250ZW50KSE9PW51bGwmJm8hPT12b2lkIDA/bzpuLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSl9Y2F0Y2goZyl7cmV0dXJuIGMoZyksITF9bGV0e2Zyb206Zix0bzpwfT10eXBlb2YgdD09Im51bWJlciI/e2Zyb206dCx0bzp0fTp7ZnJvbTp0LmZyb20sdG86dC50b30saD0hMCxtPSEwO2lmKCh5T2EobCk/bDpbbF0pLmZvckVhY2goZz0+e2cuY2hlY2soKSxoPWg/Zy5pc1RleHQmJmcubWFya3MubGVuZ3RoPT09MDohMSxtPW0/Zy5pc0Jsb2NrOiExfSksZj09PXAmJm0pe2xldHtwYXJlbnQ6Z309YS5kb2MucmVzb2x2ZShmKTtnLmlzVGV4dGJsb2NrJiYhZy50eXBlLnNwZWMuY29kZSYmIWcuY2hpbGRDb3VudCYmKGYtPTEscCs9MSl9bGV0IGI7aWYoaCl7aWYoQXJyYXkuaXNBcnJheShlKSliPWUubWFwKGc9PmcudGV4dHx8IiIpLmpvaW4oIiIpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEplKXtsZXQgZz0iIjtlLmZvckVhY2goeT0+e3kudGV4dCYmKGcrPXkudGV4dCl9KSxiPWd9ZWxzZSB0eXBlb2YgZT09Im9iamVjdCImJmUmJmUudGV4dD9iPWUudGV4dDpiPWU7YS5pbnNlcnRUZXh0KGIsZixwKX1lbHNlIGI9bCxhLnJlcGxhY2VXaXRoKGYscCxiKTtyLnVwZGF0ZVNlbGVjdGlvbiYmUDV0KGEsYS5zdGVwcy5sZW5ndGgtMSwtMSksci5hcHBseUlucHV0UnVsZXMmJmEuc2V0TWV0YSgiYXBwbHlJbnB1dFJ1bGVzIix7ZnJvbTpmLHRleHQ6Yn0pLHIuYXBwbHlQYXN0ZVJ1bGVzJiZhLnNldE1ldGEoImFwcGx5UGFzdGVSdWxlcyIse2Zyb206Zix0ZXh0OmJ9KX1yZXR1cm4hMH0sImluc2VydENvbnRlbnRBdCIpLGtPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5oNXQodCxlKSwiam9pblVwIiksU09hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9Pm01dCh0LGUpLCJqb2luRG93biIpLE1PYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5SZmUodCxlKSwiam9pbkJhY2t3YXJkIiksQ09hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PkJmZSh0LGUpLCJqb2luRm9yd2FyZCIpLHpPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZSx0cjpyfSk9Pnt0cnl7bGV0IGE9STkodC5kb2MsdC5zZWxlY3Rpb24uJGZyb20ucG9zLC0xKTtyZXR1cm4gYT09bnVsbD8hMTooci5qb2luKGEsMiksZSYmZShyKSwhMCl9Y2F0Y2h7cmV0dXJuITF9fSwiam9pbkl0ZW1CYWNrd2FyZCIpLF9PYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZSx0cjpyfSk9Pnt0cnl7bGV0IGE9STkodC5kb2MsdC5zZWxlY3Rpb24uJGZyb20ucG9zLDEpO3JldHVybiBhPT1udWxsPyExOihyLmpvaW4oYSwyKSxlJiZlKHIpLCEwKX1jYXRjaHtyZXR1cm4hMX19LCJqb2luSXRlbUZvcndhcmQiKSxUT2E9aSgoKT0+KHtzdGF0ZTp0LGRpc3BhdGNoOmV9KT0+cDV0KHQsZSksImpvaW5UZXh0YmxvY2tCYWNrd2FyZCIpLExPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5mNXQodCxlKSwiam9pblRleHRibG9ja0ZvcndhcmQiKTtpKG5oZSwiaXNNYWNPUyIpO2koRE9hLCJub3JtYWxpemVLZXlOYW1lIik7JE9hPWkodD0+KHtlZGl0b3I6ZSx2aWV3OnIsdHI6YSxkaXNwYXRjaDpzfSk9PntsZXQgbj1ET2EodCkuc3BsaXQoLy0oPyEkKS8pLG89bi5maW5kKGQ9PiFbIkFsdCIsIkN0cmwiLCJNZXRhIiwiU2hpZnQiXS5pbmNsdWRlcyhkKSksbD1uZXcgS2V5Ym9hcmRFdmVudCgia2V5ZG93biIse2tleTpvPT09IlNwYWNlIj8iICI6byxhbHRLZXk6bi5pbmNsdWRlcygiQWx0IiksY3RybEtleTpuLmluY2x1ZGVzKCJDdHJsIiksbWV0YUtleTpuLmluY2x1ZGVzKCJNZXRhIiksc2hpZnRLZXk6bi5pbmNsdWRlcygiU2hpZnQiKSxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KSxjPWUuY2FwdHVyZVRyYW5zYWN0aW9uKCgpPT57ci5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsZD0+ZChyLGwpKX0pO3JldHVybiBjPy5zdGVwcy5mb3JFYWNoKGQ9PntsZXQgZj1kLm1hcChhLm1hcHBpbmcpO2YmJnMmJmEubWF5YmVTdGVwKGYpfSksITB9LCJrZXlib2FyZFNob3J0Y3V0Iik7aShLOSwiaXNOb2RlQWN0aXZlIik7QU9hPWkoKHQsZT17fSk9Pih7c3RhdGU6cixkaXNwYXRjaDphfSk9PntsZXQgcz0kcyh0LHIuc2NoZW1hKTtyZXR1cm4gSzkocixzLGUpP2c1dChyLGEpOiExfSwibGlmdCIpLEVPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5VZmUodCxlKSwibGlmdEVtcHR5QmxvY2siKSxJT2E9aSh0PT4oe3N0YXRlOmUsZGlzcGF0Y2g6cn0pPT57bGV0IGE9JHModCxlLnNjaGVtYSk7cmV0dXJuIHc1dChhKShlLHIpfSwibGlmdExpc3RJdGVtIiksUE9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PnFmZSh0LGUpLCJuZXdsaW5lSW5Db2RlIik7aShtdywiZ2V0U2NoZW1hVHlwZU5hbWVCeU5hbWUiKTtpKG9oZSwiZGVsZXRlUHJvcHMiKTtOT2E9aSgodCxlKT0+KHt0cjpyLHN0YXRlOmEsZGlzcGF0Y2g6c30pPT57bGV0IG49bnVsbCxvPW51bGwsbD1tdyh0eXBlb2YgdD09InN0cmluZyI/dDp0Lm5hbWUsYS5zY2hlbWEpO3JldHVybiBsPyhsPT09Im5vZGUiJiYobj0kcyh0LGEuc2NoZW1hKSksbD09PSJtYXJrIiYmKG89ZmQodCxhLnNjaGVtYSkpLHMmJnIuc2VsZWN0aW9uLnJhbmdlcy5mb3JFYWNoKGM9PnthLmRvYy5ub2Rlc0JldHdlZW4oYy4kZnJvbS5wb3MsYy4kdG8ucG9zLChkLGYpPT57biYmbj09PWQudHlwZSYmci5zZXROb2RlTWFya3VwKGYsdm9pZCAwLG9oZShkLmF0dHJzLGUpKSxvJiZkLm1hcmtzLmxlbmd0aCYmZC5tYXJrcy5mb3JFYWNoKHA9PntvPT09cC50eXBlJiZyLmFkZE1hcmsoZixmK2Qubm9kZVNpemUsby5jcmVhdGUob2hlKHAuYXR0cnMsZSkpKX0pfSl9KSwhMCk6ITF9LCJyZXNldEF0dHJpYnV0ZXMiKSxPT2E9aSgoKT0+KHt0cjp0LGRpc3BhdGNoOmV9KT0+KGUmJnQuc2Nyb2xsSW50b1ZpZXcoKSwhMCksInNjcm9sbEludG9WaWV3IiksUk9hPWkoKCk9Pih7dHI6dCxkaXNwYXRjaDplfSk9PntpZihlKXtsZXQgcj1uZXcgTW8odC5kb2MpO3Quc2V0U2VsZWN0aW9uKHIpfXJldHVybiEwfSwic2VsZWN0QWxsIiksRk9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PkZmZSh0LGUpLCJzZWxlY3ROb2RlQmFja3dhcmQiKSxCT2E9aSgoKT0+KHtzdGF0ZTp0LGRpc3BhdGNoOmV9KT0+SGZlKHQsZSksInNlbGVjdE5vZGVGb3J3YXJkIiksSE9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PmI1dCh0LGUpLCJzZWxlY3RQYXJlbnROb2RlIikscU9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PkdmZSh0LGUpLCJzZWxlY3RUZXh0YmxvY2tFbmQiKSxWT2E9aSgoKT0+KHtzdGF0ZTp0LGRpc3BhdGNoOmV9KT0+V2ZlKHQsZSksInNlbGVjdFRleHRibG9ja1N0YXJ0Iik7aShRdGUsImNyZWF0ZURvY3VtZW50Iik7ak9hPWkoKHQsZT0hMSxyPXt9LGE9e30pPT4oe2VkaXRvcjpzLHRyOm4sZGlzcGF0Y2g6byxjb21tYW5kczpsfSk9Pnt2YXIgYyxkO2xldHtkb2M6Zn09bjtpZihyLnByZXNlcnZlV2hpdGVzcGFjZSE9PSJmdWxsIil7bGV0IHA9UXRlKHQscy5zY2hlbWEscix7ZXJyb3JPbkludmFsaWRDb250ZW50OihjPWEuZXJyb3JPbkludmFsaWRDb250ZW50KSE9PW51bGwmJmMhPT12b2lkIDA/YzpzLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSk7cmV0dXJuIG8mJm4ucmVwbGFjZVdpdGgoMCxmLmNvbnRlbnQuc2l6ZSxwKS5zZXRNZXRhKCJwcmV2ZW50VXBkYXRlIiwhZSksITB9cmV0dXJuIG8mJm4uc2V0TWV0YSgicHJldmVudFVwZGF0ZSIsIWUpLGwuaW5zZXJ0Q29udGVudEF0KHtmcm9tOjAsdG86Zi5jb250ZW50LnNpemV9LHQse3BhcnNlT3B0aW9uczpyLGVycm9yT25JbnZhbGlkQ29udGVudDooZD1hLmVycm9yT25JbnZhbGlkQ29udGVudCkhPT1udWxsJiZkIT09dm9pZCAwP2Q6cy5vcHRpb25zLmVuYWJsZUNvbnRlbnRDaGVja30pfSwic2V0Q29udGVudCIpO2kobGhlLCJnZXRNYXJrQXR0cmlidXRlcyIpO2koaGhlLCJjb21iaW5lVHJhbnNhY3Rpb25TdGVwcyIpO2koTjV0LCJkZWZhdWx0QmxvY2tBdCIpO2koU1lyLCJmaW5kQ2hpbGRyZW4iKTtpKG1oZSwiZmluZENoaWxkcmVuSW5SYW5nZSIpO2koTzV0LCJmaW5kUGFyZW50Tm9kZUNsb3Nlc3RUb1BvcyIpO2koZ3csImZpbmRQYXJlbnROb2RlIik7aShYdGUsImdldFNjaGVtYSIpO2koTVlyLCJnZW5lcmF0ZUhUTUwiKTtpKENZciwiZ2VuZXJhdGVKU09OIik7aShjaGUsImdldFRleHQiKTtpKHpZciwiZ2VuZXJhdGVUZXh0Iik7aShSNXQsImdldE5vZGVBdHRyaWJ1dGVzIik7aShycmUsImdldEF0dHJpYnV0ZXMiKTtpKEY1dCwicmVtb3ZlRHVwbGljYXRlcyIpO2koVU9hLCJzaW1wbGlmeUNoYW5nZWRSYW5nZXMiKTtpKGdoZSwiZ2V0Q2hhbmdlZFJhbmdlcyIpO2koQjV0LCJnZXREZWJ1Z0pTT04iKTtpKHh3LCJnZXRNYXJrc0JldHdlZW4iKTtfWXI9aSgodCxlLHIsYT0yMCk9PntsZXQgcz10LmRvYy5yZXNvbHZlKHIpLG49YSxvPW51bGw7Zm9yKDtuPjAmJm89PT1udWxsOyl7bGV0IGw9cy5ub2RlKG4pO2w/LnR5cGUubmFtZT09PWU/bz1sOm4tPTF9cmV0dXJuW28sbl19LCJnZXROb2RlQXRQb3NpdGlvbiIpO2koYncsImdldFNwbGl0dGVkQXR0cmlidXRlcyIpO2koSnRlLCJpc01hcmtBY3RpdmUiKTtpKEg1dCwiaXNBY3RpdmUiKTtUWXI9aSgodCxlKT0+e2xldHskZnJvbTpyLCR0bzphLCRhbmNob3I6c309dC5zZWxlY3Rpb247aWYoZSl7bGV0IG49Z3cobD0+bC50eXBlLm5hbWU9PT1lKSh0LnNlbGVjdGlvbik7aWYoIW4pcmV0dXJuITE7bGV0IG89dC5kb2MucmVzb2x2ZShuLnBvcysxKTtyZXR1cm4gcy5wb3MrMT09PW8uZW5kKCl9cmV0dXJuIShhLnBhcmVudE9mZnNldDxhLnBhcmVudC5ub2RlU2l6ZS0yfHxyLnBvcyE9PWEucG9zKX0sImlzQXRFbmRPZk5vZGUiKSxMWXI9aSh0PT57bGV0eyRmcm9tOmUsJHRvOnJ9PXQuc2VsZWN0aW9uO3JldHVybiEoZS5wYXJlbnRPZmZzZXQ+MHx8ZS5wb3MhPT1yLnBvcyl9LCJpc0F0U3RhcnRPZk5vZGUiKTtpKGRoZSwiaXNMaXN0Iik7aShlcmUsImlzTm9kZUVtcHR5Iik7aShiaGUsImlzTm9kZVNlbGVjdGlvbiIpO2koRFlyLCJwb3NUb0RPTVJlY3QiKTtpKGZZciwicmV3cml0ZVVua25vd25Db250ZW50SW5uZXIiKTtpKCRZciwicmV3cml0ZVVua25vd25Db250ZW50Iik7aShXT2EsImNhblNldE1hcmsiKTtHT2E9aSgodCxlPXt9KT0+KHt0cjpyLHN0YXRlOmEsZGlzcGF0Y2g6c30pPT57bGV0e3NlbGVjdGlvbjpufT1yLHtlbXB0eTpvLHJhbmdlczpsfT1uLGM9ZmQodCxhLnNjaGVtYSk7aWYocylpZihvKXtsZXQgZD1saGUoYSxjKTtyLmFkZFN0b3JlZE1hcmsoYy5jcmVhdGUoey4uLmQsLi4uZX0pKX1lbHNlIGwuZm9yRWFjaChkPT57bGV0IGY9ZC4kZnJvbS5wb3MscD1kLiR0by5wb3M7YS5kb2Mubm9kZXNCZXR3ZWVuKGYscCwoaCxtKT0+e2xldCB2PU1hdGgubWF4KG0sZiksYj1NYXRoLm1pbihtK2gubm9kZVNpemUscCk7aC5tYXJrcy5maW5kKHk9PnkudHlwZT09PWMpP2gubWFya3MuZm9yRWFjaCh5PT57Yz09PXkudHlwZSYmci5hZGRNYXJrKHYsYixjLmNyZWF0ZSh7Li4ueS5hdHRycywuLi5lfSkpfSk6ci5hZGRNYXJrKHYsYixjLmNyZWF0ZShlKSl9KX0pO3JldHVybiBXT2EoYSxyLGMpfSwic2V0TWFyayIpLFlPYT1pKCh0LGUpPT4oe3RyOnJ9KT0+KHIuc2V0TWV0YSh0LGUpLCEwKSwic2V0TWV0YSIpLEtPYT1pKCh0LGU9e30pPT4oe3N0YXRlOnIsZGlzcGF0Y2g6YSxjaGFpbjpzfSk9PntsZXQgbj0kcyh0LHIuc2NoZW1hKSxvO3JldHVybiByLnNlbGVjdGlvbi4kYW5jaG9yLnNhbWVQYXJlbnQoci5zZWxlY3Rpb24uJGhlYWQpJiYobz1yLnNlbGVjdGlvbi4kYW5jaG9yLnBhcmVudC5hdHRycyksbi5pc1RleHRibG9jaz9zKCkuY29tbWFuZCgoe2NvbW1hbmRzOmx9KT0+WWZlKG4sey4uLm8sLi4uZX0pKHIpPyEwOmwuY2xlYXJOb2RlcygpKS5jb21tYW5kKCh7c3RhdGU6bH0pPT5ZZmUobix7Li4ubywuLi5lfSkobCxhKSkucnVuKCk6KGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogQ3VycmVudGx5ICJzZXROb2RlKCkiIG9ubHkgc3VwcG9ydHMgdGV4dCBibG9jayBub2Rlcy4nKSwhMSl9LCJzZXROb2RlIiksWk9hPWkodD0+KHt0cjplLGRpc3BhdGNoOnJ9KT0+e2lmKHIpe2xldHtkb2M6YX09ZSxzPWtjKHQsMCxhLmNvbnRlbnQuc2l6ZSksbj1JdC5jcmVhdGUoYSxzKTtlLnNldFNlbGVjdGlvbihuKX1yZXR1cm4hMH0sInNldE5vZGVTZWxlY3Rpb24iKSxRT2E9aSh0PT4oe3RyOmUsZGlzcGF0Y2g6cn0pPT57aWYocil7bGV0e2RvYzphfT1lLHtmcm9tOnMsdG86bn09dHlwZW9mIHQ9PSJudW1iZXIiP3tmcm9tOnQsdG86dH06dCxvPWVyLmF0U3RhcnQoYSkuZnJvbSxsPWVyLmF0RW5kKGEpLnRvLGM9a2MocyxvLGwpLGQ9a2MobixvLGwpLGY9ZXIuY3JlYXRlKGEsYyxkKTtlLnNldFNlbGVjdGlvbihmKX1yZXR1cm4hMH0sInNldFRleHRTZWxlY3Rpb24iKSxYT2E9aSh0PT4oe3N0YXRlOmUsZGlzcGF0Y2g6cn0pPT57bGV0IGE9JHModCxlLnNjaGVtYSk7cmV0dXJuIGs1dChhKShlLHIpfSwic2lua0xpc3RJdGVtIik7aShoWXIsImVuc3VyZU1hcmtzIik7Sk9hPWkoKHtrZWVwTWFya3M6dD0hMH09e30pPT4oe3RyOmUsc3RhdGU6cixkaXNwYXRjaDphLGVkaXRvcjpzfSk9PntsZXR7c2VsZWN0aW9uOm4sZG9jOm99PWUseyRmcm9tOmwsJHRvOmN9PW4sZD1zLmV4dGVuc2lvbk1hbmFnZXIuYXR0cmlidXRlcyxmPWJ3KGQsbC5ub2RlKCkudHlwZS5uYW1lLGwubm9kZSgpLmF0dHJzKTtpZihuIGluc3RhbmNlb2YgSXQmJm4ubm9kZS5pc0Jsb2NrKXJldHVybiFsLnBhcmVudE9mZnNldHx8IUExKG8sbC5wb3MpPyExOihhJiYodCYmaFlyKHIscy5leHRlbnNpb25NYW5hZ2VyLnNwbGl0dGFibGVNYXJrcyksZS5zcGxpdChsLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApO2lmKCFsLnBhcmVudC5pc0Jsb2NrKXJldHVybiExO2xldCBwPWMucGFyZW50T2Zmc2V0PT09Yy5wYXJlbnQuY29udGVudC5zaXplLGg9bC5kZXB0aD09PTA/dm9pZCAwOk41dChsLm5vZGUoLTEpLmNvbnRlbnRNYXRjaEF0KGwuaW5kZXhBZnRlcigtMSkpKSxtPXAmJmg/W3t0eXBlOmgsYXR0cnM6Zn1dOnZvaWQgMCx2PUExKGUuZG9jLGUubWFwcGluZy5tYXAobC5wb3MpLDEsbSk7aWYoIW0mJiF2JiZBMShlLmRvYyxlLm1hcHBpbmcubWFwKGwucG9zKSwxLGg/W3t0eXBlOmh9XTp2b2lkIDApJiYodj0hMCxtPWg/W3t0eXBlOmgsYXR0cnM6Zn1dOnZvaWQgMCksYSl7aWYodiYmKG4gaW5zdGFuY2VvZiBlciYmZS5kZWxldGVTZWxlY3Rpb24oKSxlLnNwbGl0KGUubWFwcGluZy5tYXAobC5wb3MpLDEsbSksaCYmIXAmJiFsLnBhcmVudE9mZnNldCYmbC5wYXJlbnQudHlwZSE9PWgpKXtsZXQgYj1lLm1hcHBpbmcubWFwKGwuYmVmb3JlKCkpLGc9ZS5kb2MucmVzb2x2ZShiKTtsLm5vZGUoLTEpLmNhblJlcGxhY2VXaXRoKGcuaW5kZXgoKSxnLmluZGV4KCkrMSxoKSYmZS5zZXROb2RlTWFya3VwKGUubWFwcGluZy5tYXAobC5iZWZvcmUoKSksaCl9dCYmaFlyKHIscy5leHRlbnNpb25NYW5hZ2VyLnNwbGl0dGFibGVNYXJrcyksZS5zY3JvbGxJbnRvVmlldygpfXJldHVybiB2fSwic3BsaXRCbG9jayIpLGVSYT1pKCh0LGU9e30pPT4oe3RyOnIsc3RhdGU6YSxkaXNwYXRjaDpzLGVkaXRvcjpufSk9Pnt2YXIgbztsZXQgbD0kcyh0LGEuc2NoZW1hKSx7JGZyb206YywkdG86ZH09YS5zZWxlY3Rpb24sZj1hLnNlbGVjdGlvbi5ub2RlO2lmKGYmJmYuaXNCbG9ja3x8Yy5kZXB0aDwyfHwhYy5zYW1lUGFyZW50KGQpKXJldHVybiExO2xldCBwPWMubm9kZSgtMSk7aWYocC50eXBlIT09bClyZXR1cm4hMTtsZXQgaD1uLmV4dGVuc2lvbk1hbmFnZXIuYXR0cmlidXRlcztpZihjLnBhcmVudC5jb250ZW50LnNpemU9PT0wJiZjLm5vZGUoLTEpLmNoaWxkQ291bnQ9PT1jLmluZGV4QWZ0ZXIoLTEpKXtpZihjLmRlcHRoPT09Mnx8Yy5ub2RlKC0zKS50eXBlIT09bHx8Yy5pbmRleCgtMikhPT1jLm5vZGUoLTIpLmNoaWxkQ291bnQtMSlyZXR1cm4hMTtpZihzKXtsZXQgeT1KZS5lbXB0eSxrPWMuaW5kZXgoLTEpPzE6Yy5pbmRleCgtMik/MjozO2ZvcihsZXQgTD1jLmRlcHRoLWs7TD49Yy5kZXB0aC0zO0wtPTEpeT1KZS5mcm9tKGMubm9kZShMKS5jb3B5KHkpKTtsZXQgTT1jLmluZGV4QWZ0ZXIoLTEpPGMubm9kZSgtMikuY2hpbGRDb3VudD8xOmMuaW5kZXhBZnRlcigtMik8Yy5ub2RlKC0zKS5jaGlsZENvdW50PzI6MyxOPXsuLi5idyhoLGMubm9kZSgpLnR5cGUubmFtZSxjLm5vZGUoKS5hdHRycyksLi4uZX0sXz0oKG89bC5jb250ZW50TWF0Y2guZGVmYXVsdFR5cGUpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5jcmVhdGVBbmRGaWxsKE4pKXx8dm9pZCAwO3k9eS5hcHBlbmQoSmUuZnJvbShsLmNyZWF0ZUFuZEZpbGwobnVsbCxfKXx8dm9pZCAwKSk7bGV0IFM9Yy5iZWZvcmUoYy5kZXB0aC0oay0xKSk7ci5yZXBsYWNlKFMsYy5hZnRlcigtTSksbmV3IG10KHksNC1rLDApKTtsZXQgTz0tMTtyLmRvYy5ub2Rlc0JldHdlZW4oUyxyLmRvYy5jb250ZW50LnNpemUsKEwsRSk9PntpZihPPi0xKXJldHVybiExO0wuaXNUZXh0YmxvY2smJkwuY29udGVudC5zaXplPT09MCYmKE89RSsxKX0pLE8+LTEmJnIuc2V0U2VsZWN0aW9uKGVyLm5lYXIoci5kb2MucmVzb2x2ZShPKSkpLHIuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1sZXQgbT1kLnBvcz09PWMuZW5kKCk/cC5jb250ZW50TWF0Y2hBdCgwKS5kZWZhdWx0VHlwZTpudWxsLHY9ey4uLmJ3KGgscC50eXBlLm5hbWUscC5hdHRycyksLi4uZX0sYj17Li4uYncoaCxjLm5vZGUoKS50eXBlLm5hbWUsYy5ub2RlKCkuYXR0cnMpLC4uLmV9O3IuZGVsZXRlKGMucG9zLGQucG9zKTtsZXQgZz1tP1t7dHlwZTpsLGF0dHJzOnZ9LHt0eXBlOm0sYXR0cnM6Yn1dOlt7dHlwZTpsLGF0dHJzOnZ9XTtpZighQTEoci5kb2MsYy5wb3MsMikpcmV0dXJuITE7aWYocyl7bGV0e3NlbGVjdGlvbjp5LHN0b3JlZE1hcmtzOmt9PWEse3NwbGl0dGFibGVNYXJrczpNfT1uLmV4dGVuc2lvbk1hbmFnZXIsTj1rfHx5LiR0by5wYXJlbnRPZmZzZXQmJnkuJGZyb20ubWFya3MoKTtpZihyLnNwbGl0KGMucG9zLDIsZykuc2Nyb2xsSW50b1ZpZXcoKSwhTnx8IXMpcmV0dXJuITA7bGV0IF89Ti5maWx0ZXIoUz0+TS5pbmNsdWRlcyhTLnR5cGUubmFtZSkpO3IuZW5zdXJlTWFya3MoXyl9cmV0dXJuITB9LCJzcGxpdExpc3RJdGVtIiksQzV0PWkoKHQsZSk9PntsZXQgcj1ndyhvPT5vLnR5cGU9PT1lKSh0LnNlbGVjdGlvbik7aWYoIXIpcmV0dXJuITA7bGV0IGE9dC5kb2MucmVzb2x2ZShNYXRoLm1heCgwLHIucG9zLTEpKS5iZWZvcmUoci5kZXB0aCk7aWYoYT09PXZvaWQgMClyZXR1cm4hMDtsZXQgcz10LmRvYy5ub2RlQXQoYSk7cmV0dXJuIHIubm9kZS50eXBlPT09cz8udHlwZSYmY2wodC5kb2Msci5wb3MpJiZ0LmpvaW4oci5wb3MpLCEwfSwiam9pbkxpc3RCYWNrd2FyZHMiKSx6NXQ9aSgodCxlKT0+e2xldCByPWd3KG89Pm8udHlwZT09PWUpKHQuc2VsZWN0aW9uKTtpZighcilyZXR1cm4hMDtsZXQgYT10LmRvYy5yZXNvbHZlKHIuc3RhcnQpLmFmdGVyKHIuZGVwdGgpO2lmKGE9PT12b2lkIDApcmV0dXJuITA7bGV0IHM9dC5kb2Mubm9kZUF0KGEpO3JldHVybiByLm5vZGUudHlwZT09PXM/LnR5cGUmJmNsKHQuZG9jLGEpJiZ0LmpvaW4oYSksITB9LCJqb2luTGlzdEZvcndhcmRzIiksdFJhPWkoKHQsZSxyLGE9e30pPT4oe2VkaXRvcjpzLHRyOm4sc3RhdGU6byxkaXNwYXRjaDpsLGNoYWluOmMsY29tbWFuZHM6ZCxjYW46Zn0pPT57bGV0e2V4dGVuc2lvbnM6cCxzcGxpdHRhYmxlTWFya3M6aH09cy5leHRlbnNpb25NYW5hZ2VyLG09JHModCxvLnNjaGVtYSksdj0kcyhlLG8uc2NoZW1hKSx7c2VsZWN0aW9uOmIsc3RvcmVkTWFya3M6Z309byx7JGZyb206eSwkdG86a309YixNPXkuYmxvY2tSYW5nZShrKSxOPWd8fGIuJHRvLnBhcmVudE9mZnNldCYmYi4kZnJvbS5tYXJrcygpO2lmKCFNKXJldHVybiExO2xldCBfPWd3KFM9PmRoZShTLnR5cGUubmFtZSxwKSkoYik7aWYoTS5kZXB0aD49MSYmXyYmTS5kZXB0aC1fLmRlcHRoPD0xKXtpZihfLm5vZGUudHlwZT09PW0pcmV0dXJuIGQubGlmdExpc3RJdGVtKHYpO2lmKGRoZShfLm5vZGUudHlwZS5uYW1lLHApJiZtLnZhbGlkQ29udGVudChfLm5vZGUuY29udGVudCkmJmwpcmV0dXJuIGMoKS5jb21tYW5kKCgpPT4obi5zZXROb2RlTWFya3VwKF8ucG9zLG0pLCEwKSkuY29tbWFuZCgoKT0+QzV0KG4sbSkpLmNvbW1hbmQoKCk9Pno1dChuLG0pKS5ydW4oKX1yZXR1cm4hcnx8IU58fCFsP2MoKS5jb21tYW5kKCgpPT5mKCkud3JhcEluTGlzdChtLGEpPyEwOmQuY2xlYXJOb2RlcygpKS53cmFwSW5MaXN0KG0sYSkuY29tbWFuZCgoKT0+QzV0KG4sbSkpLmNvbW1hbmQoKCk9Pno1dChuLG0pKS5ydW4oKTpjKCkuY29tbWFuZCgoKT0+e2xldCBTPWYoKS53cmFwSW5MaXN0KG0sYSksTz1OLmZpbHRlcihMPT5oLmluY2x1ZGVzKEwudHlwZS5uYW1lKSk7cmV0dXJuIG4uZW5zdXJlTWFya3MoTyksUz8hMDpkLmNsZWFyTm9kZXMoKX0pLndyYXBJbkxpc3QobSxhKS5jb21tYW5kKCgpPT5DNXQobixtKSkuY29tbWFuZCgoKT0+ejV0KG4sbSkpLnJ1bigpfSwidG9nZ2xlTGlzdCIpLHJSYT1pKCh0LGU9e30scj17fSk9Pih7c3RhdGU6YSxjb21tYW5kczpzfSk9PntsZXR7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6bj0hMX09cixvPWZkKHQsYS5zY2hlbWEpO3JldHVybiBKdGUoYSxvLGUpP3MudW5zZXRNYXJrKG8se2V4dGVuZEVtcHR5TWFya1JhbmdlOm59KTpzLnNldE1hcmsobyxlKX0sInRvZ2dsZU1hcmsiKSxhUmE9aSgodCxlLHI9e30pPT4oe3N0YXRlOmEsY29tbWFuZHM6c30pPT57bGV0IG49JHModCxhLnNjaGVtYSksbz0kcyhlLGEuc2NoZW1hKSxsPUs5KGEsbixyKSxjO3JldHVybiBhLnNlbGVjdGlvbi4kYW5jaG9yLnNhbWVQYXJlbnQoYS5zZWxlY3Rpb24uJGhlYWQpJiYoYz1hLnNlbGVjdGlvbi4kYW5jaG9yLnBhcmVudC5hdHRycyksbD9zLnNldE5vZGUobyxjKTpzLnNldE5vZGUobix7Li4uYywuLi5yfSl9LCJ0b2dnbGVOb2RlIiksaVJhPWkoKHQsZT17fSk9Pih7c3RhdGU6cixjb21tYW5kczphfSk9PntsZXQgcz0kcyh0LHIuc2NoZW1hKTtyZXR1cm4gSzkocixzLGUpP2EubGlmdChzKTphLndyYXBJbihzLGUpfSwidG9nZ2xlV3JhcCIpLHNSYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT57bGV0IHI9dC5wbHVnaW5zO2ZvcihsZXQgYT0wO2E8ci5sZW5ndGg7YSs9MSl7bGV0IHM9clthXSxuO2lmKHMuc3BlYy5pc0lucHV0UnVsZXMmJihuPXMuZ2V0U3RhdGUodCkpKXtpZihlKXtsZXQgbz10LnRyLGw9bi50cmFuc2Zvcm07Zm9yKGxldCBjPWwuc3RlcHMubGVuZ3RoLTE7Yz49MDtjLT0xKW8uc3RlcChsLnN0ZXBzW2NdLmludmVydChsLmRvY3NbY10pKTtpZihuLnRleHQpe2xldCBjPW8uZG9jLnJlc29sdmUobi5mcm9tKS5tYXJrcygpO28ucmVwbGFjZVdpdGgobi5mcm9tLG4udG8sdC5zY2hlbWEudGV4dChuLnRleHQsYykpfWVsc2Ugby5kZWxldGUobi5mcm9tLG4udG8pfXJldHVybiEwfX1yZXR1cm4hMX0sInVuZG9JbnB1dFJ1bGUiKSxuUmE9aSgoKT0+KHt0cjp0LGRpc3BhdGNoOmV9KT0+e2xldHtzZWxlY3Rpb246cn09dCx7ZW1wdHk6YSxyYW5nZXM6c309cjtyZXR1cm4gYXx8ZSYmcy5mb3JFYWNoKG49Pnt0LnJlbW92ZU1hcmsobi4kZnJvbS5wb3Msbi4kdG8ucG9zKX0pLCEwfSwidW5zZXRBbGxNYXJrcyIpLG9SYT1pKCh0LGU9e30pPT4oe3RyOnIsc3RhdGU6YSxkaXNwYXRjaDpzfSk9Pnt2YXIgbjtsZXR7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6bz0hMX09ZSx7c2VsZWN0aW9uOmx9PXIsYz1mZCh0LGEuc2NoZW1hKSx7JGZyb206ZCxlbXB0eTpmLHJhbmdlczpwfT1sO2lmKCFzKXJldHVybiEwO2lmKGYmJm8pe2xldHtmcm9tOmgsdG86bX09bCx2PShuPWQubWFya3MoKS5maW5kKGc9PmcudHlwZT09PWMpKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uYXR0cnMsYj1adGUoZCxjLHYpO2ImJihoPWIuZnJvbSxtPWIudG8pLHIucmVtb3ZlTWFyayhoLG0sYyl9ZWxzZSBwLmZvckVhY2goaD0+e3IucmVtb3ZlTWFyayhoLiRmcm9tLnBvcyxoLiR0by5wb3MsYyl9KTtyZXR1cm4gci5yZW1vdmVTdG9yZWRNYXJrKGMpLCEwfSwidW5zZXRNYXJrIiksbFJhPWkoKHQsZT17fSk9Pih7dHI6cixzdGF0ZTphLGRpc3BhdGNoOnN9KT0+e2xldCBuPW51bGwsbz1udWxsLGw9bXcodHlwZW9mIHQ9PSJzdHJpbmciP3Q6dC5uYW1lLGEuc2NoZW1hKTtyZXR1cm4gbD8obD09PSJub2RlIiYmKG49JHModCxhLnNjaGVtYSkpLGw9PT0ibWFyayImJihvPWZkKHQsYS5zY2hlbWEpKSxzJiZyLnNlbGVjdGlvbi5yYW5nZXMuZm9yRWFjaChjPT57bGV0IGQ9Yy4kZnJvbS5wb3MsZj1jLiR0by5wb3MscCxoLG0sdjtyLnNlbGVjdGlvbi5lbXB0eT9hLmRvYy5ub2Rlc0JldHdlZW4oZCxmLChiLGcpPT57biYmbj09PWIudHlwZSYmKG09TWF0aC5tYXgoZyxkKSx2PU1hdGgubWluKGcrYi5ub2RlU2l6ZSxmKSxwPWcsaD1iKX0pOmEuZG9jLm5vZGVzQmV0d2VlbihkLGYsKGIsZyk9PntnPGQmJm4mJm49PT1iLnR5cGUmJihtPU1hdGgubWF4KGcsZCksdj1NYXRoLm1pbihnK2Iubm9kZVNpemUsZikscD1nLGg9YiksZz49ZCYmZzw9ZiYmKG4mJm49PT1iLnR5cGUmJnIuc2V0Tm9kZU1hcmt1cChnLHZvaWQgMCx7Li4uYi5hdHRycywuLi5lfSksbyYmYi5tYXJrcy5sZW5ndGgmJmIubWFya3MuZm9yRWFjaCh5PT57aWYobz09PXkudHlwZSl7bGV0IGs9TWF0aC5tYXgoZyxkKSxNPU1hdGgubWluKGcrYi5ub2RlU2l6ZSxmKTtyLmFkZE1hcmsoayxNLG8uY3JlYXRlKHsuLi55LmF0dHJzLC4uLmV9KSl9fSkpfSksaCYmKHAhPT12b2lkIDAmJnIuc2V0Tm9kZU1hcmt1cChwLHZvaWQgMCx7Li4uaC5hdHRycywuLi5lfSksbyYmaC5tYXJrcy5sZW5ndGgmJmgubWFya3MuZm9yRWFjaChiPT57bz09PWIudHlwZSYmci5hZGRNYXJrKG0sdixvLmNyZWF0ZSh7Li4uYi5hdHRycywuLi5lfSkpfSkpfSksITApOiExfSwidXBkYXRlQXR0cmlidXRlcyIpLGNSYT1pKCh0LGU9e30pPT4oe3N0YXRlOnIsZGlzcGF0Y2g6YX0pPT57bGV0IHM9JHModCxyLnNjaGVtYSk7cmV0dXJuIHg1dChzLGUpKHIsYSl9LCJ3cmFwSW4iKSxkUmE9aSgodCxlPXt9KT0+KHtzdGF0ZTpyLGRpc3BhdGNoOmF9KT0+e2xldCBzPSRzKHQsci5zY2hlbWEpO3JldHVybiB5NXQocyxlKShyLGEpfSwid3JhcEluTGlzdCIpLHVSYT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxibHVyOmFPYSxjbGVhckNvbnRlbnQ6aU9hLGNsZWFyTm9kZXM6c09hLGNvbW1hbmQ6bk9hLGNyZWF0ZVBhcmFncmFwaE5lYXI6b09hLGN1dDpsT2EsZGVsZXRlQ3VycmVudE5vZGU6Y09hLGRlbGV0ZU5vZGU6ZE9hLGRlbGV0ZVJhbmdlOnVPYSxkZWxldGVTZWxlY3Rpb246cE9hLGVudGVyOmZPYSxleGl0Q29kZTpoT2EsZXh0ZW5kTWFya1JhbmdlOm1PYSxmaXJzdDpnT2EsZm9jdXM6Yk9hLGZvckVhY2g6eE9hLGluc2VydENvbnRlbnQ6dk9hLGluc2VydENvbnRlbnRBdDp3T2Esam9pbkJhY2t3YXJkOk1PYSxqb2luRG93bjpTT2Esam9pbkZvcndhcmQ6Q09hLGpvaW5JdGVtQmFja3dhcmQ6ek9hLGpvaW5JdGVtRm9yd2FyZDpfT2Esam9pblRleHRibG9ja0JhY2t3YXJkOlRPYSxqb2luVGV4dGJsb2NrRm9yd2FyZDpMT2Esam9pblVwOmtPYSxrZXlib2FyZFNob3J0Y3V0OiRPYSxsaWZ0OkFPYSxsaWZ0RW1wdHlCbG9jazpFT2EsbGlmdExpc3RJdGVtOklPYSxuZXdsaW5lSW5Db2RlOlBPYSxyZXNldEF0dHJpYnV0ZXM6Tk9hLHNjcm9sbEludG9WaWV3Ok9PYSxzZWxlY3RBbGw6Uk9hLHNlbGVjdE5vZGVCYWNrd2FyZDpGT2Esc2VsZWN0Tm9kZUZvcndhcmQ6Qk9hLHNlbGVjdFBhcmVudE5vZGU6SE9hLHNlbGVjdFRleHRibG9ja0VuZDpxT2Esc2VsZWN0VGV4dGJsb2NrU3RhcnQ6Vk9hLHNldENvbnRlbnQ6ak9hLHNldE1hcms6R09hLHNldE1ldGE6WU9hLHNldE5vZGU6S09hLHNldE5vZGVTZWxlY3Rpb246Wk9hLHNldFRleHRTZWxlY3Rpb246UU9hLHNpbmtMaXN0SXRlbTpYT2Esc3BsaXRCbG9jazpKT2Esc3BsaXRMaXN0SXRlbTplUmEsdG9nZ2xlTGlzdDp0UmEsdG9nZ2xlTWFyazpyUmEsdG9nZ2xlTm9kZTphUmEsdG9nZ2xlV3JhcDppUmEsdW5kb0lucHV0UnVsZTpzUmEsdW5zZXRBbGxNYXJrczpuUmEsdW5zZXRNYXJrOm9SYSx1cGRhdGVBdHRyaWJ1dGVzOmxSYSx3cmFwSW46Y1JhLHdyYXBJbkxpc3Q6ZFJhfSksbVlyPWtpLmNyZWF0ZSh7bmFtZToiY29tbWFuZHMiLGFkZENvbW1hbmRzKCl7cmV0dXJuey4uLnVSYX19fSksZ1lyPWtpLmNyZWF0ZSh7bmFtZToiZHJvcCIsYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW25ldyBRYSh7a2V5Om5ldyBMcygidGlwdGFwRHJvcCIpLHByb3BzOntoYW5kbGVEcm9wOmkoKHQsZSxyLGEpPT57dGhpcy5lZGl0b3IuZW1pdCgiZHJvcCIse2VkaXRvcjp0aGlzLmVkaXRvcixldmVudDplLHNsaWNlOnIsbW92ZWQ6YX0pfSwiaGFuZGxlRHJvcCIpfX0pXX19KSxiWXI9a2kuY3JlYXRlKHtuYW1lOiJlZGl0YWJsZSIsYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW25ldyBRYSh7a2V5Om5ldyBMcygiZWRpdGFibGUiKSxwcm9wczp7ZWRpdGFibGU6aSgoKT0+dGhpcy5lZGl0b3Iub3B0aW9ucy5lZGl0YWJsZSwiZWRpdGFibGUiKX19KV19fSkseFlyPW5ldyBMcygiZm9jdXNFdmVudHMiKSx2WXI9a2kuY3JlYXRlKHtuYW1lOiJmb2N1c0V2ZW50cyIsYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7bGV0e2VkaXRvcjp0fT10aGlzO3JldHVybltuZXcgUWEoe2tleTp4WXIscHJvcHM6e2hhbmRsZURPTUV2ZW50czp7Zm9jdXM6aSgoZSxyKT0+e3QuaXNGb2N1c2VkPSEwO2xldCBhPXQuc3RhdGUudHIuc2V0TWV0YSgiZm9jdXMiLHtldmVudDpyfSkuc2V0TWV0YSgiYWRkVG9IaXN0b3J5IiwhMSk7cmV0dXJuIGUuZGlzcGF0Y2goYSksITF9LCJmb2N1cyIpLGJsdXI6aSgoZSxyKT0+e3QuaXNGb2N1c2VkPSExO2xldCBhPXQuc3RhdGUudHIuc2V0TWV0YSgiYmx1ciIse2V2ZW50OnJ9KS5zZXRNZXRhKCJhZGRUb0hpc3RvcnkiLCExKTtyZXR1cm4gZS5kaXNwYXRjaChhKSwhMX0sImJsdXIiKX19fSldfX0pLHlZcj1raS5jcmVhdGUoe25hbWU6ImtleW1hcCIsYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtsZXQgdD1pKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5maXJzdCgoe2NvbW1hbmRzOm99KT0+WygpPT5vLnVuZG9JbnB1dFJ1bGUoKSwoKT0+by5jb21tYW5kKCh7dHI6bH0pPT57bGV0e3NlbGVjdGlvbjpjLGRvYzpkfT1sLHtlbXB0eTpmLCRhbmNob3I6cH09Yyx7cG9zOmgscGFyZW50Om19PXAsdj1wLnBhcmVudC5pc1RleHRibG9jayYmaD4wP2wuZG9jLnJlc29sdmUoaC0xKTpwLGI9di5wYXJlbnQudHlwZS5zcGVjLmlzb2xhdGluZyxnPXAucG9zLXAucGFyZW50T2Zmc2V0LHk9YiYmdi5wYXJlbnQuY2hpbGRDb3VudD09PTE/Zz09PXAucG9zOkp0LmF0U3RhcnQoZCkuZnJvbT09PWg7cmV0dXJuIWZ8fCFtLnR5cGUuaXNUZXh0YmxvY2t8fG0udGV4dENvbnRlbnQubGVuZ3RofHwheXx8eSYmcC5wYXJlbnQudHlwZS5uYW1lPT09InBhcmFncmFwaCI/ITE6by5jbGVhck5vZGVzKCl9KSwoKT0+by5kZWxldGVTZWxlY3Rpb24oKSwoKT0+by5qb2luQmFja3dhcmQoKSwoKT0+by5zZWxlY3ROb2RlQmFja3dhcmQoKV0pLCJoYW5kbGVCYWNrc3BhY2UiKSxlPWkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLmZpcnN0KCh7Y29tbWFuZHM6b30pPT5bKCk9Pm8uZGVsZXRlU2VsZWN0aW9uKCksKCk9Pm8uZGVsZXRlQ3VycmVudE5vZGUoKSwoKT0+by5qb2luRm9yd2FyZCgpLCgpPT5vLnNlbGVjdE5vZGVGb3J3YXJkKCldKSwiaGFuZGxlRGVsZXRlIiksYT17RW50ZXI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuZmlyc3QoKHtjb21tYW5kczpvfSk9PlsoKT0+by5uZXdsaW5lSW5Db2RlKCksKCk9Pm8uY3JlYXRlUGFyYWdyYXBoTmVhcigpLCgpPT5vLmxpZnRFbXB0eUJsb2NrKCksKCk9Pm8uc3BsaXRCbG9jaygpXSksImhhbmRsZUVudGVyIiksIk1vZC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuZXhpdENvZGUoKSwiTW9kLUVudGVyIiksQmFja3NwYWNlOnQsIk1vZC1CYWNrc3BhY2UiOnQsIlNoaWZ0LUJhY2tzcGFjZSI6dCxEZWxldGU6ZSwiTW9kLURlbGV0ZSI6ZSwiTW9kLWEiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNlbGVjdEFsbCgpLCJNb2QtYSIpfSxzPXsuLi5hfSxuPXsuLi5hLCJDdHJsLWgiOnQsIkFsdC1CYWNrc3BhY2UiOnQsIkN0cmwtZCI6ZSwiQ3RybC1BbHQtQmFja3NwYWNlIjplLCJBbHQtRGVsZXRlIjplLCJBbHQtZCI6ZSwiQ3RybC1hIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZWxlY3RUZXh0YmxvY2tTdGFydCgpLCJDdHJsLWEiKSwiQ3RybC1lIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZWxlY3RUZXh0YmxvY2tFbmQoKSwiQ3RybC1lIil9O3JldHVybiBXOSgpfHxuaGUoKT9uOnN9LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgUWEoe2tleTpuZXcgTHMoImNsZWFyRG9jdW1lbnQiKSxhcHBlbmRUcmFuc2FjdGlvbjppKCh0LGUscik9PntpZih0LnNvbWUoYj0+Yi5nZXRNZXRhKCJjb21wb3NpdGlvbiIpKSlyZXR1cm47bGV0IGE9dC5zb21lKGI9PmIuZG9jQ2hhbmdlZCkmJiFlLmRvYy5lcShyLmRvYykscz10LnNvbWUoYj0+Yi5nZXRNZXRhKCJwcmV2ZW50Q2xlYXJEb2N1bWVudCIpKTtpZighYXx8cylyZXR1cm47bGV0e2VtcHR5Om4sZnJvbTpvLHRvOmx9PWUuc2VsZWN0aW9uLGM9SnQuYXRTdGFydChlLmRvYykuZnJvbSxkPUp0LmF0RW5kKGUuZG9jKS50bztpZihufHwhKG89PT1jJiZsPT09ZCl8fCFlcmUoci5kb2MpKXJldHVybjtsZXQgaD1yLnRyLG09Y3coe3N0YXRlOnIsdHJhbnNhY3Rpb246aH0pLHtjb21tYW5kczp2fT1uZXcgSnAoe2VkaXRvcjp0aGlzLmVkaXRvcixzdGF0ZTptfSk7aWYodi5jbGVhck5vZGVzKCksISFoLnN0ZXBzLmxlbmd0aClyZXR1cm4gaH0sImFwcGVuZFRyYW5zYWN0aW9uIil9KV19fSksd1lyPWtpLmNyZWF0ZSh7bmFtZToicGFzdGUiLGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgUWEoe2tleTpuZXcgTHMoInRpcHRhcFBhc3RlIikscHJvcHM6e2hhbmRsZVBhc3RlOmkoKHQsZSxyKT0+e3RoaXMuZWRpdG9yLmVtaXQoInBhc3RlIix7ZWRpdG9yOnRoaXMuZWRpdG9yLGV2ZW50OmUsc2xpY2U6cn0pfSwiaGFuZGxlUGFzdGUiKX19KV19fSksa1lyPWtpLmNyZWF0ZSh7bmFtZToidGFiaW5kZXgiLGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgUWEoe2tleTpuZXcgTHMoInRhYmluZGV4IikscHJvcHM6e2F0dHJpYnV0ZXM6aSgoKT0+dGhpcy5lZGl0b3IuaXNFZGl0YWJsZT97dGFiaW5kZXg6IjAifTp7fSwiYXR0cmlidXRlcyIpfX0pXX19KSxBWXI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQ2xpcGJvYXJkVGV4dFNlcmlhbGl6ZXI6Y1lyLENvbW1hbmRzOm1ZcixEcm9wOmdZcixFZGl0YWJsZTpiWXIsRm9jdXNFdmVudHM6dllyLEtleW1hcDp5WXIsUGFzdGU6d1lyLFRhYmluZGV4OmtZcixmb2N1c0V2ZW50c1BsdWdpbktleTp4WXJ9KSx0cmU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJOb2RlUG9zIil9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5ub2RlLnR5cGUubmFtZX1jb25zdHJ1Y3RvcihlLHIsYT0hMSxzPW51bGwpe3RoaXMuY3VycmVudE5vZGU9bnVsbCx0aGlzLmFjdHVhbERlcHRoPW51bGwsdGhpcy5pc0Jsb2NrPWEsdGhpcy5yZXNvbHZlZFBvcz1lLHRoaXMuZWRpdG9yPXIsdGhpcy5jdXJyZW50Tm9kZT1zfWdldCBub2RlKCl7cmV0dXJuIHRoaXMuY3VycmVudE5vZGV8fHRoaXMucmVzb2x2ZWRQb3Mubm9kZSgpfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuZWRpdG9yLnZpZXcuZG9tQXRQb3ModGhpcy5wb3MpLm5vZGV9Z2V0IGRlcHRoKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5hY3R1YWxEZXB0aCkhPT1udWxsJiZlIT09dm9pZCAwP2U6dGhpcy5yZXNvbHZlZFBvcy5kZXB0aH1nZXQgcG9zKCl7cmV0dXJuIHRoaXMucmVzb2x2ZWRQb3MucG9zfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMubm9kZS5jb250ZW50fXNldCBjb250ZW50KGUpe2xldCByPXRoaXMuZnJvbSxhPXRoaXMudG87aWYodGhpcy5pc0Jsb2NrKXtpZih0aGlzLmNvbnRlbnQuc2l6ZT09PTApe2NvbnNvbGUuZXJyb3IoYFlvdSBjYW5cdTIwMTl0IHNldCBjb250ZW50IG9uIGEgYmxvY2sgbm9kZS4gVHJpZWQgdG8gc2V0IGNvbnRlbnQgb24gJHt0aGlzLm5hbWV9IGF0ICR7dGhpcy5wb3N9YCk7cmV0dXJufXI9dGhpcy5mcm9tKzEsYT10aGlzLnRvLTF9dGhpcy5lZGl0b3IuY29tbWFuZHMuaW5zZXJ0Q29udGVudEF0KHtmcm9tOnIsdG86YX0sZSl9Z2V0IGF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5ub2RlLmF0dHJzfWdldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLm5vZGUudGV4dENvbnRlbnR9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5ub2RlLm5vZGVTaXplfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuaXNCbG9jaz90aGlzLnBvczp0aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgpfWdldCByYW5nZSgpe3JldHVybntmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1nZXQgdG8oKXtyZXR1cm4gdGhpcy5pc0Jsb2NrP3RoaXMucG9zK3RoaXMuc2l6ZTp0aGlzLnJlc29sdmVkUG9zLmVuZCh0aGlzLnJlc29sdmVkUG9zLmRlcHRoKSsodGhpcy5ub2RlLmlzVGV4dD8wOjEpfWdldCBwYXJlbnQoKXtpZih0aGlzLmRlcHRoPT09MClyZXR1cm4gbnVsbDtsZXQgZT10aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgtMSkscj10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgdChyLHRoaXMuZWRpdG9yKX1nZXQgYmVmb3JlKCl7bGV0IGU9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZSh0aGlzLmZyb20tKHRoaXMuaXNCbG9jaz8xOjIpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy5mcm9tLTMpKSxuZXcgdChlLHRoaXMuZWRpdG9yKX1nZXQgYWZ0ZXIoKXtsZXQgZT10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKHRoaXMudG8rKHRoaXMuaXNCbG9jaz8yOjEpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy50byszKSksbmV3IHQoZSx0aGlzLmVkaXRvcil9Z2V0IGNoaWxkcmVuKCl7bGV0IGU9W107cmV0dXJuIHRoaXMubm9kZS5jb250ZW50LmZvckVhY2goKHIsYSk9PntsZXQgcz1yLmlzQmxvY2smJiFyLmlzVGV4dGJsb2NrLG49ci5pc0F0b20mJiFyLmlzVGV4dCxvPXRoaXMucG9zK2ErKG4/MDoxKTtpZihvPDB8fG8+dGhpcy5yZXNvbHZlZFBvcy5kb2Mubm9kZVNpemUtMilyZXR1cm47bGV0IGw9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZShvKTtpZighcyYmbC5kZXB0aDw9dGhpcy5kZXB0aClyZXR1cm47bGV0IGM9bmV3IHQobCx0aGlzLmVkaXRvcixzLHM/cjpudWxsKTtzJiYoYy5hY3R1YWxEZXB0aD10aGlzLmRlcHRoKzEpLGUucHVzaChuZXcgdChsLHRoaXMuZWRpdG9yLHMscz9yOm51bGwpKX0pLGV9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jaGlsZHJlblswXXx8bnVsbH1nZXQgbGFzdENoaWxkKCl7bGV0IGU9dGhpcy5jaGlsZHJlbjtyZXR1cm4gZVtlLmxlbmd0aC0xXXx8bnVsbH1jbG9zZXN0KGUscj17fSl7bGV0IGE9bnVsbCxzPXRoaXMucGFyZW50O2Zvcig7cyYmIWE7KXtpZihzLm5vZGUudHlwZS5uYW1lPT09ZSlpZihPYmplY3Qua2V5cyhyKS5sZW5ndGg+MCl7bGV0IG49cy5ub2RlLmF0dHJzLG89T2JqZWN0LmtleXMocik7Zm9yKGxldCBsPTA7bDxvLmxlbmd0aDtsKz0xKXtsZXQgYz1vW2xdO2lmKG5bY10hPT1yW2NdKWJyZWFrfX1lbHNlIGE9cztzPXMucGFyZW50fXJldHVybiBhfXF1ZXJ5U2VsZWN0b3IoZSxyPXt9KXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUsciwhMClbMF18fG51bGx9cXVlcnlTZWxlY3RvckFsbChlLHI9e30sYT0hMSl7bGV0IHM9W107aWYoIXRoaXMuY2hpbGRyZW58fHRoaXMuY2hpbGRyZW4ubGVuZ3RoPT09MClyZXR1cm4gcztsZXQgbj1PYmplY3Qua2V5cyhyKTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5mb3JFYWNoKG89PnthJiZzLmxlbmd0aD4wfHwoby5ub2RlLnR5cGUubmFtZT09PWUmJm4uZXZlcnkoYz0+cltjXT09PW8ubm9kZS5hdHRyc1tjXSkmJnMucHVzaChvKSwhKGEmJnMubGVuZ3RoPjApJiYocz1zLmNvbmNhdChvLnF1ZXJ5U2VsZWN0b3JBbGwoZSxyLGEpKSkpfSksc31zZXRBdHRyaWJ1dGUoZSl7bGV0e3RyOnJ9PXRoaXMuZWRpdG9yLnN0YXRlO3Iuc2V0Tm9kZU1hcmt1cCh0aGlzLmZyb20sdm9pZCAwLHsuLi50aGlzLm5vZGUuYXR0cnMsLi4uZX0pLHRoaXMuZWRpdG9yLnZpZXcuZGlzcGF0Y2gocil9fSxwUmE9YC5Qcm9zZU1pcnJvciB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouUHJvc2VNaXJyb3IgewogIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAtd2Via2l0LWZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vbmU7CiAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIiAwOyAvKiB0aGUgYWJvdmUgZG9lc24ndCBzZWVtIHRvIHdvcmsgaW4gRWRnZSAqLwp9CgouUHJvc2VNaXJyb3IgW2NvbnRlbnRlZGl0YWJsZT0iZmFsc2UiXSB7CiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKfQoKLlByb3NlTWlycm9yIFtjb250ZW50ZWRpdGFibGU9ImZhbHNlIl0gW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdIHsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KCi5Qcm9zZU1pcnJvciBwcmUgewogIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKfQoKaW1nLlByb3NlTWlycm9yLXNlcGFyYXRvciB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDAgIWltcG9ydGFudDsKICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKfQoKLlByb3NlTWlycm9yLWdhcGN1cnNvciB7CiAgZGlzcGxheTogbm9uZTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbWFyZ2luOiAwOwp9CgouUHJvc2VNaXJyb3ItZ2FwY3Vyc29yOmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiBibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAtMnB4OwogIHdpZHRoOiAyMHB4OwogIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsKICBhbmltYXRpb246IFByb3NlTWlycm9yLWN1cnNvci1ibGluayAxLjFzIHN0ZXBzKDIsIHN0YXJ0KSBpbmZpbml0ZTsKfQoKQGtleWZyYW1lcyBQcm9zZU1pcnJvci1jdXJzb3ItYmxpbmsgewogIHRvIHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICB9Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6OnNlbGVjdGlvbiB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6Oi1tb3otc2VsZWN0aW9uIHsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoKLlByb3NlTWlycm9yLWhpZGVzZWxlY3Rpb24gKiB7CiAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50Owp9CgouUHJvc2VNaXJyb3ItZm9jdXNlZCAuUHJvc2VNaXJyb3ItZ2FwY3Vyc29yIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLnRpcHB5LWJveFtkYXRhLWFuaW1hdGlvbj1mYWRlXVtkYXRhLXN0YXRlPWhpZGRlbl0gewogIG9wYWNpdHk6IDAKfWA7aShxNXQsImNyZWF0ZVN0eWxlVGFnIik7dWhlPWNsYXNzIGV4dGVuZHMgUzV0e3N0YXRpY3tpKHRoaXMsIkVkaXRvciIpfWNvbnN0cnVjdG9yKGU9e30pe3N1cGVyKCksdGhpcy5pc0ZvY3VzZWQ9ITEsdGhpcy5pc0luaXRpYWxpemVkPSExLHRoaXMuZXh0ZW5zaW9uU3RvcmFnZT17fSx0aGlzLm9wdGlvbnM9e2VsZW1lbnQ6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksY29udGVudDoiIixpbmplY3RDU1M6ITAsaW5qZWN0Tm9uY2U6dm9pZCAwLGV4dGVuc2lvbnM6W10sYXV0b2ZvY3VzOiExLGVkaXRhYmxlOiEwLGVkaXRvclByb3BzOnt9LHBhcnNlT3B0aW9uczp7fSxjb3JlRXh0ZW5zaW9uT3B0aW9uczp7fSxlbmFibGVJbnB1dFJ1bGVzOiEwLGVuYWJsZVBhc3RlUnVsZXM6ITAsZW5hYmxlQ29yZUV4dGVuc2lvbnM6ITAsZW5hYmxlQ29udGVudENoZWNrOiExLGVtaXRDb250ZW50RXJyb3I6ITEsb25CZWZvcmVDcmVhdGU6aSgoKT0+bnVsbCwib25CZWZvcmVDcmVhdGUiKSxvbkNyZWF0ZTppKCgpPT5udWxsLCJvbkNyZWF0ZSIpLG9uVXBkYXRlOmkoKCk9Pm51bGwsIm9uVXBkYXRlIiksb25TZWxlY3Rpb25VcGRhdGU6aSgoKT0+bnVsbCwib25TZWxlY3Rpb25VcGRhdGUiKSxvblRyYW5zYWN0aW9uOmkoKCk9Pm51bGwsIm9uVHJhbnNhY3Rpb24iKSxvbkZvY3VzOmkoKCk9Pm51bGwsIm9uRm9jdXMiKSxvbkJsdXI6aSgoKT0+bnVsbCwib25CbHVyIiksb25EZXN0cm95OmkoKCk9Pm51bGwsIm9uRGVzdHJveSIpLG9uQ29udGVudEVycm9yOmkoKHtlcnJvcjpyfSk9Pnt0aHJvdyByfSwib25Db250ZW50RXJyb3IiKSxvblBhc3RlOmkoKCk9Pm51bGwsIm9uUGFzdGUiKSxvbkRyb3A6aSgoKT0+bnVsbCwib25Ecm9wIil9LHRoaXMuaXNDYXB0dXJpbmdUcmFuc2FjdGlvbj0hMSx0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCx0aGlzLnNldE9wdGlvbnMoZSksdGhpcy5jcmVhdGVFeHRlbnNpb25NYW5hZ2VyKCksdGhpcy5jcmVhdGVDb21tYW5kTWFuYWdlcigpLHRoaXMuY3JlYXRlU2NoZW1hKCksdGhpcy5vbigiYmVmb3JlQ3JlYXRlIix0aGlzLm9wdGlvbnMub25CZWZvcmVDcmVhdGUpLHRoaXMuZW1pdCgiYmVmb3JlQ3JlYXRlIix7ZWRpdG9yOnRoaXN9KSx0aGlzLm9uKCJjb250ZW50RXJyb3IiLHRoaXMub3B0aW9ucy5vbkNvbnRlbnRFcnJvciksdGhpcy5jcmVhdGVWaWV3KCksdGhpcy5pbmplY3RDU1MoKSx0aGlzLm9uKCJjcmVhdGUiLHRoaXMub3B0aW9ucy5vbkNyZWF0ZSksdGhpcy5vbigidXBkYXRlIix0aGlzLm9wdGlvbnMub25VcGRhdGUpLHRoaXMub24oInNlbGVjdGlvblVwZGF0ZSIsdGhpcy5vcHRpb25zLm9uU2VsZWN0aW9uVXBkYXRlKSx0aGlzLm9uKCJ0cmFuc2FjdGlvbiIsdGhpcy5vcHRpb25zLm9uVHJhbnNhY3Rpb24pLHRoaXMub24oImZvY3VzIix0aGlzLm9wdGlvbnMub25Gb2N1cyksdGhpcy5vbigiYmx1ciIsdGhpcy5vcHRpb25zLm9uQmx1ciksdGhpcy5vbigiZGVzdHJveSIsdGhpcy5vcHRpb25zLm9uRGVzdHJveSksdGhpcy5vbigiZHJvcCIsKHtldmVudDpyLHNsaWNlOmEsbW92ZWQ6c30pPT50aGlzLm9wdGlvbnMub25Ecm9wKHIsYSxzKSksdGhpcy5vbigicGFzdGUiLCh7ZXZlbnQ6cixzbGljZTphfSk9PnRoaXMub3B0aW9ucy5vblBhc3RlKHIsYSkpLHdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8KHRoaXMuY29tbWFuZHMuZm9jdXModGhpcy5vcHRpb25zLmF1dG9mb2N1cyksdGhpcy5lbWl0KCJjcmVhdGUiLHtlZGl0b3I6dGhpc30pLHRoaXMuaXNJbml0aWFsaXplZD0hMCl9LDApfWdldCBzdG9yYWdlKCl7cmV0dXJuIHRoaXMuZXh0ZW5zaW9uU3RvcmFnZX1nZXQgY29tbWFuZHMoKXtyZXR1cm4gdGhpcy5jb21tYW5kTWFuYWdlci5jb21tYW5kc31jaGFpbigpe3JldHVybiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNoYWluKCl9Y2FuKCl7cmV0dXJuIHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuKCl9aW5qZWN0Q1NTKCl7dGhpcy5vcHRpb25zLmluamVjdENTUyYmZG9jdW1lbnQmJih0aGlzLmNzcz1xNXQocFJhLHRoaXMub3B0aW9ucy5pbmplY3ROb25jZSkpfXNldE9wdGlvbnMoZT17fSl7dGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4uZX0sISghdGhpcy52aWV3fHwhdGhpcy5zdGF0ZXx8dGhpcy5pc0Rlc3Ryb3llZCkmJih0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMmJnRoaXMudmlldy5zZXRQcm9wcyh0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMpLHRoaXMudmlldy51cGRhdGVTdGF0ZSh0aGlzLnN0YXRlKSl9c2V0RWRpdGFibGUoZSxyPSEwKXt0aGlzLnNldE9wdGlvbnMoe2VkaXRhYmxlOmV9KSxyJiZ0aGlzLmVtaXQoInVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOnRoaXMuc3RhdGUudHJ9KX1nZXQgaXNFZGl0YWJsZSgpe3JldHVybiB0aGlzLm9wdGlvbnMuZWRpdGFibGUmJnRoaXMudmlldyYmdGhpcy52aWV3LmVkaXRhYmxlfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLnZpZXcuc3RhdGV9cmVnaXN0ZXJQbHVnaW4oZSxyKXtsZXQgYT1KZmUocik/cihlLFsuLi50aGlzLnN0YXRlLnBsdWdpbnNdKTpbLi4udGhpcy5zdGF0ZS5wbHVnaW5zLGVdLHM9dGhpcy5zdGF0ZS5yZWNvbmZpZ3VyZSh7cGx1Z2luczphfSk7cmV0dXJuIHRoaXMudmlldy51cGRhdGVTdGF0ZShzKSxzfXVucmVnaXN0ZXJQbHVnaW4oZSl7aWYodGhpcy5pc0Rlc3Ryb3llZClyZXR1cm47bGV0IHI9dGhpcy5zdGF0ZS5wbHVnaW5zLGE9cjtpZihbXS5jb25jYXQoZSkuZm9yRWFjaChuPT57bGV0IG89dHlwZW9mIG49PSJzdHJpbmciP2Ake259JGA6bi5rZXk7YT1hLmZpbHRlcihsPT4hbC5rZXkuc3RhcnRzV2l0aChvKSl9KSxyLmxlbmd0aD09PWEubGVuZ3RoKXJldHVybjtsZXQgcz10aGlzLnN0YXRlLnJlY29uZmlndXJlKHtwbHVnaW5zOmF9KTtyZXR1cm4gdGhpcy52aWV3LnVwZGF0ZVN0YXRlKHMpLHN9Y3JlYXRlRXh0ZW5zaW9uTWFuYWdlcigpe3ZhciBlLHI7bGV0IHM9Wy4uLnRoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9ucz9bYllyLGNZci5jb25maWd1cmUoe2Jsb2NrU2VwYXJhdG9yOihyPShlPXRoaXMub3B0aW9ucy5jb3JlRXh0ZW5zaW9uT3B0aW9ucyk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmNsaXBib2FyZFRleHRTZXJpYWxpemVyKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuYmxvY2tTZXBhcmF0b3J9KSxtWXIsdllyLHlZcixrWXIsZ1lyLHdZcl0uZmlsdGVyKG49PnR5cGVvZiB0aGlzLm9wdGlvbnMuZW5hYmxlQ29yZUV4dGVuc2lvbnM9PSJvYmplY3QiP3RoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9uc1tuLm5hbWVdIT09ITE6ITApOltdLC4uLnRoaXMub3B0aW9ucy5leHRlbnNpb25zXS5maWx0ZXIobj0+WyJleHRlbnNpb24iLCJub2RlIiwibWFyayJdLmluY2x1ZGVzKG4/LnR5cGUpKTt0aGlzLmV4dGVuc2lvbk1hbmFnZXI9bmV3IFFmZShzLHRoaXMpfWNyZWF0ZUNvbW1hbmRNYW5hZ2VyKCl7dGhpcy5jb21tYW5kTWFuYWdlcj1uZXcgSnAoe2VkaXRvcjp0aGlzfSl9Y3JlYXRlU2NoZW1hKCl7dGhpcy5zY2hlbWE9dGhpcy5leHRlbnNpb25NYW5hZ2VyLnNjaGVtYX1jcmVhdGVWaWV3KCl7dmFyIGU7bGV0IHI7dHJ5e3I9UXRlKHRoaXMub3B0aW9ucy5jb250ZW50LHRoaXMuc2NoZW1hLHRoaXMub3B0aW9ucy5wYXJzZU9wdGlvbnMse2Vycm9yT25JbnZhbGlkQ29udGVudDp0aGlzLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSl9Y2F0Y2gobyl7aWYoIShvIGluc3RhbmNlb2YgRXJyb3IpfHwhWyJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBKU09OIGNvbnRlbnQiLCJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBIVE1MIGNvbnRlbnQiXS5pbmNsdWRlcyhvLm1lc3NhZ2UpKXRocm93IG87dGhpcy5lbWl0KCJjb250ZW50RXJyb3IiLHtlZGl0b3I6dGhpcyxlcnJvcjpvLGRpc2FibGVDb2xsYWJvcmF0aW9uOmkoKCk9Pnt0aGlzLnN0b3JhZ2UuY29sbGFib3JhdGlvbiYmKHRoaXMuc3RvcmFnZS5jb2xsYWJvcmF0aW9uLmlzRGlzYWJsZWQ9ITApLHRoaXMub3B0aW9ucy5leHRlbnNpb25zPXRoaXMub3B0aW9ucy5leHRlbnNpb25zLmZpbHRlcihsPT5sLm5hbWUhPT0iY29sbGFib3JhdGlvbiIpLHRoaXMuY3JlYXRlRXh0ZW5zaW9uTWFuYWdlcigpfSwiZGlzYWJsZUNvbGxhYm9yYXRpb24iKX0pLHI9UXRlKHRoaXMub3B0aW9ucy5jb250ZW50LHRoaXMuc2NoZW1hLHRoaXMub3B0aW9ucy5wYXJzZU9wdGlvbnMse2Vycm9yT25JbnZhbGlkQ29udGVudDohMX0pfWxldCBhPXNoZShyLHRoaXMub3B0aW9ucy5hdXRvZm9jdXMpO3RoaXMudmlldz1uZXcgb3codGhpcy5vcHRpb25zLmVsZW1lbnQsey4uLnRoaXMub3B0aW9ucy5lZGl0b3JQcm9wcyxhdHRyaWJ1dGVzOntyb2xlOiJ0ZXh0Ym94IiwuLi4oZT10aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5hdHRyaWJ1dGVzfSxkaXNwYXRjaFRyYW5zYWN0aW9uOnRoaXMuZGlzcGF0Y2hUcmFuc2FjdGlvbi5iaW5kKHRoaXMpLHN0YXRlOkl0ZS5jcmVhdGUoe2RvYzpyLHNlbGVjdGlvbjphfHx2b2lkIDB9KX0pO2xldCBzPXRoaXMuc3RhdGUucmVjb25maWd1cmUoe3BsdWdpbnM6dGhpcy5leHRlbnNpb25NYW5hZ2VyLnBsdWdpbnN9KTt0aGlzLnZpZXcudXBkYXRlU3RhdGUocyksdGhpcy5jcmVhdGVOb2RlVmlld3MoKSx0aGlzLnByZXBlbmRDbGFzcygpO2xldCBuPXRoaXMudmlldy5kb207bi5lZGl0b3I9dGhpc31jcmVhdGVOb2RlVmlld3MoKXt0aGlzLnZpZXcuaXNEZXN0cm95ZWR8fHRoaXMudmlldy5zZXRQcm9wcyh7bm9kZVZpZXdzOnRoaXMuZXh0ZW5zaW9uTWFuYWdlci5ub2RlVmlld3N9KX1wcmVwZW5kQ2xhc3MoKXt0aGlzLnZpZXcuZG9tLmNsYXNzTmFtZT1gdGlwdGFwICR7dGhpcy52aWV3LmRvbS5jbGFzc05hbWV9YH1jYXB0dXJlVHJhbnNhY3Rpb24oZSl7dGhpcy5pc0NhcHR1cmluZ1RyYW5zYWN0aW9uPSEwLGUoKSx0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb249ITE7bGV0IHI9dGhpcy5jYXB0dXJlZFRyYW5zYWN0aW9uO3JldHVybiB0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCxyfWRpc3BhdGNoVHJhbnNhY3Rpb24oZSl7aWYodGhpcy52aWV3LmlzRGVzdHJveWVkKXJldHVybjtpZih0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb24pe2lmKCF0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb24pe3RoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbj1lO3JldHVybn1lLnN0ZXBzLmZvckVhY2gobz0+e3ZhciBsO3JldHVybihsPXRoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbik9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLnN0ZXAobyl9KTtyZXR1cm59bGV0IHI9dGhpcy5zdGF0ZS5hcHBseShlKSxhPSF0aGlzLnN0YXRlLnNlbGVjdGlvbi5lcShyLnNlbGVjdGlvbik7dGhpcy5lbWl0KCJiZWZvcmVUcmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmUsbmV4dFN0YXRlOnJ9KSx0aGlzLnZpZXcudXBkYXRlU3RhdGUociksdGhpcy5lbWl0KCJ0cmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KSxhJiZ0aGlzLmVtaXQoInNlbGVjdGlvblVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KTtsZXQgcz1lLmdldE1ldGEoImZvY3VzIiksbj1lLmdldE1ldGEoImJsdXIiKTtzJiZ0aGlzLmVtaXQoImZvY3VzIix7ZWRpdG9yOnRoaXMsZXZlbnQ6cy5ldmVudCx0cmFuc2FjdGlvbjplfSksbiYmdGhpcy5lbWl0KCJibHVyIix7ZWRpdG9yOnRoaXMsZXZlbnQ6bi5ldmVudCx0cmFuc2FjdGlvbjplfSksISghZS5kb2NDaGFuZ2VkfHxlLmdldE1ldGEoInByZXZlbnRVcGRhdGUiKSkmJnRoaXMuZW1pdCgidXBkYXRlIix7ZWRpdG9yOnRoaXMsdHJhbnNhY3Rpb246ZX0pfWdldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIHJyZSh0aGlzLnN0YXRlLGUpfWlzQWN0aXZlKGUscil7bGV0IGE9dHlwZW9mIGU9PSJzdHJpbmciP2U6bnVsbCxzPXR5cGVvZiBlPT0ic3RyaW5nIj9yOmU7cmV0dXJuIEg1dCh0aGlzLnN0YXRlLGEscyl9Z2V0SlNPTigpe3JldHVybiB0aGlzLnN0YXRlLmRvYy50b0pTT04oKX1nZXRIVE1MKCl7cmV0dXJuIHV3KHRoaXMuc3RhdGUuZG9jLmNvbnRlbnQsdGhpcy5zY2hlbWEpfWdldFRleHQoZSl7bGV0e2Jsb2NrU2VwYXJhdG9yOnI9YAoKYCx0ZXh0U2VyaWFsaXplcnM6YT17fX09ZXx8e307cmV0dXJuIGNoZSh0aGlzLnN0YXRlLmRvYyx7YmxvY2tTZXBhcmF0b3I6cix0ZXh0U2VyaWFsaXplcnM6ey4uLkt0ZSh0aGlzLnNjaGVtYSksLi4uYX19KX1nZXQgaXNFbXB0eSgpe3JldHVybiBlcmUodGhpcy5zdGF0ZS5kb2MpfWdldENoYXJhY3RlckNvdW50KCl7cmV0dXJuIGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogImVkaXRvci5nZXRDaGFyYWN0ZXJDb3VudCgpIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJlZGl0b3Iuc3RvcmFnZS5jaGFyYWN0ZXJDb3VudC5jaGFyYWN0ZXJzKCkiIGluc3RlYWQuJyksdGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplLTJ9ZGVzdHJveSgpe2lmKHRoaXMuZW1pdCgiZGVzdHJveSIpLHRoaXMudmlldyl7bGV0IGU9dGhpcy52aWV3LmRvbTtlJiZlLmVkaXRvciYmZGVsZXRlIGUuZWRpdG9yLHRoaXMudmlldy5kZXN0cm95KCl9dGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKX1nZXQgaXNEZXN0cm95ZWQoKXt2YXIgZTtyZXR1cm4hKCEoKGU9dGhpcy52aWV3KT09PW51bGx8fGU9PT12b2lkIDApJiZlLmRvY1ZpZXcpfSRub2RlKGUscil7dmFyIGE7cmV0dXJuKChhPXRoaXMuJGRvYyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3IoZSxyKSl8fG51bGx9JG5vZGVzKGUscil7dmFyIGE7cmV0dXJuKChhPXRoaXMuJGRvYyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3JBbGwoZSxyKSl8fG51bGx9JHBvcyhlKXtsZXQgcj10aGlzLnN0YXRlLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgdHJlKHIsdGhpcyl9Z2V0ICRkb2MoKXtyZXR1cm4gdGhpcy4kcG9zKDApfX07aShhMiwibWFya0lucHV0UnVsZSIpO2koeGhlLCJub2RlSW5wdXRSdWxlIik7aShaOSwidGV4dGJsb2NrVHlwZUlucHV0UnVsZSIpO2koZmksInRleHRJbnB1dFJ1bGUiKTtpKGhkLCJ3cmFwcGluZ0lucHV0UnVsZSIpO3RpPWNsYXNzIHR7c3RhdGlje2kodGhpcywiTm9kZSIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0ibm9kZSIsdGhpcy5uYW1lPSJub2RlIix0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGQ9bnVsbCx0aGlzLmNvbmZpZz17bmFtZTp0aGlzLm5hbWUsZGVmYXVsdE9wdGlvbnM6e319LHRoaXMuY29uZmlnPXsuLi50aGlzLmNvbmZpZywuLi5lfSx0aGlzLm5hbWU9dGhpcy5jb25maWcubmFtZSxlLmRlZmF1bHRPcHRpb25zJiZPYmplY3Qua2V5cyhlLmRlZmF1bHRPcHRpb25zKS5sZW5ndGg+MCYmY29uc29sZS53YXJuKGBbdGlwdGFwIHdhcm5dOiBCUkVBS0lORyBDSEFOR0U6ICJkZWZhdWx0T3B0aW9ucyIgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSAiYWRkT3B0aW9ucyIgaW5zdGVhZC4gRm91bmQgaW4gZXh0ZW5zaW9uOiAiJHt0aGlzLm5hbWV9Ii5gKSx0aGlzLm9wdGlvbnM9dGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsdGhpcy5jb25maWcuYWRkT3B0aW9ucyYmKHRoaXMub3B0aW9ucz1wcihrdCh0aGlzLCJhZGRPcHRpb25zIix7bmFtZTp0aGlzLm5hbWV9KSkpLHRoaXMuc3RvcmFnZT1wcihrdCh0aGlzLCJhZGRTdG9yYWdlIix7bmFtZTp0aGlzLm5hbWUsb3B0aW9uczp0aGlzLm9wdGlvbnN9KSl8fHt9fXN0YXRpYyBjcmVhdGUoZT17fSl7cmV0dXJuIG5ldyB0KGUpfWNvbmZpZ3VyZShlPXt9KXtsZXQgcj10aGlzLmV4dGVuZCh7Li4udGhpcy5jb25maWcsYWRkT3B0aW9uczppKCgpPT5mdyh0aGlzLm9wdGlvbnMsZSksImFkZE9wdGlvbnMiKX0pO3JldHVybiByLm5hbWU9dGhpcy5uYW1lLHIucGFyZW50PXRoaXMucGFyZW50LHJ9ZXh0ZW5kKGU9e30pe2xldCByPW5ldyB0KGUpO3JldHVybiByLnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9cixyLm5hbWU9ZS5uYW1lP2UubmFtZTpyLnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3IubmFtZX0iLmApLHIub3B0aW9ucz1wcihrdChyLCJhZGRPcHRpb25zIix7bmFtZTpyLm5hbWV9KSksci5zdG9yYWdlPXByKGt0KHIsImFkZFN0b3JhZ2UiLHtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9uc30pKSxyfX0scGhlPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5vZGVWaWV3Iil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmNvbXBvbmVudD1lLHRoaXMuZWRpdG9yPXIuZWRpdG9yLHRoaXMub3B0aW9ucz17c3RvcEV2ZW50Om51bGwsaWdub3JlTXV0YXRpb246bnVsbCwuLi5hfSx0aGlzLmV4dGVuc2lvbj1yLmV4dGVuc2lvbix0aGlzLm5vZGU9ci5ub2RlLHRoaXMuZGVjb3JhdGlvbnM9ci5kZWNvcmF0aW9ucyx0aGlzLmlubmVyRGVjb3JhdGlvbnM9ci5pbm5lckRlY29yYXRpb25zLHRoaXMudmlldz1yLnZpZXcsdGhpcy5IVE1MQXR0cmlidXRlcz1yLkhUTUxBdHRyaWJ1dGVzLHRoaXMuZ2V0UG9zPXIuZ2V0UG9zLHRoaXMubW91bnQoKX1tb3VudCgpe31nZXQgZG9tKCl7cmV0dXJuIHRoaXMuZWRpdG9yLnZpZXcuZG9tfWdldCBjb250ZW50RE9NKCl7cmV0dXJuIG51bGx9b25EcmFnU3RhcnQoZSl7dmFyIHIsYSxzLG4sbyxsLGM7bGV0e3ZpZXc6ZH09dGhpcy5lZGl0b3IsZj1lLnRhcmdldCxwPWYubm9kZVR5cGU9PT0zPyhyPWYucGFyZW50RWxlbWVudCk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmNsb3Nlc3QoIltkYXRhLWRyYWctaGFuZGxlXSIpOmYuY2xvc2VzdCgiW2RhdGEtZHJhZy1oYW5kbGVdIik7aWYoIXRoaXMuZG9tfHwhKChhPXRoaXMuY29udGVudERPTSk9PT1udWxsfHxhPT09dm9pZCAwKSYmYS5jb250YWlucyhmKXx8IXApcmV0dXJuO2xldCBoPTAsbT0wO2lmKHRoaXMuZG9tIT09cCl7bGV0IGs9dGhpcy5kb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTT1wLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE49KHM9ZS5vZmZzZXRYKSE9PW51bGwmJnMhPT12b2lkIDA/czoobj1lLm5hdGl2ZUV2ZW50KT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4ub2Zmc2V0WCxfPShvPWUub2Zmc2V0WSkhPT1udWxsJiZvIT09dm9pZCAwP286KGw9ZS5uYXRpdmVFdmVudCk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLm9mZnNldFk7aD1NLngtay54K04sbT1NLnktay55K199bGV0IHY9dGhpcy5kb20uY2xvbmVOb2RlKCEwKTsoYz1lLmRhdGFUcmFuc2Zlcik9PT1udWxsfHxjPT09dm9pZCAwfHxjLnNldERyYWdJbWFnZSh2LGgsbSk7bGV0IGI9dGhpcy5nZXRQb3MoKTtpZih0eXBlb2YgYiE9Im51bWJlciIpcmV0dXJuO2xldCBnPUl0LmNyZWF0ZShkLnN0YXRlLmRvYyxiKSx5PWQuc3RhdGUudHIuc2V0U2VsZWN0aW9uKGcpO2QuZGlzcGF0Y2goeSl9c3RvcEV2ZW50KGUpe3ZhciByO2lmKCF0aGlzLmRvbSlyZXR1cm4hMTtpZih0eXBlb2YgdGhpcy5vcHRpb25zLnN0b3BFdmVudD09ImZ1bmN0aW9uIilyZXR1cm4gdGhpcy5vcHRpb25zLnN0b3BFdmVudCh7ZXZlbnQ6ZX0pO2xldCBhPWUudGFyZ2V0O2lmKCEodGhpcy5kb20uY29udGFpbnMoYSkmJiEoISgocj10aGlzLmNvbnRlbnRET00pPT09bnVsbHx8cj09PXZvaWQgMCkmJnIuY29udGFpbnMoYSkpKSlyZXR1cm4hMTtsZXQgbj1lLnR5cGUuc3RhcnRzV2l0aCgiZHJhZyIpLG89ZS50eXBlPT09ImRyb3AiO2lmKChbIklOUFVUIiwiQlVUVE9OIiwiU0VMRUNUIiwiVEVYVEFSRUEiXS5pbmNsdWRlcyhhLnRhZ05hbWUpfHxhLmlzQ29udGVudEVkaXRhYmxlKSYmIW8mJiFuKXJldHVybiEwO2xldHtpc0VkaXRhYmxlOmN9PXRoaXMuZWRpdG9yLHtpc0RyYWdnaW5nOmR9PXRoaXMsZj0hIXRoaXMubm9kZS50eXBlLnNwZWMuZHJhZ2dhYmxlLHA9SXQuaXNTZWxlY3RhYmxlKHRoaXMubm9kZSksaD1lLnR5cGU9PT0iY29weSIsbT1lLnR5cGU9PT0icGFzdGUiLHY9ZS50eXBlPT09ImN1dCIsYj1lLnR5cGU9PT0ibW91c2Vkb3duIjtpZighZiYmcCYmbiYmZS50YXJnZXQ9PT10aGlzLmRvbSYmZS5wcmV2ZW50RGVmYXVsdCgpLGYmJm4mJiFkJiZlLnRhcmdldD09PXRoaXMuZG9tKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksITE7aWYoZiYmYyYmIWQmJmIpe2xldCBnPWEuY2xvc2VzdCgiW2RhdGEtZHJhZy1oYW5kbGVdIik7ZyYmKHRoaXMuZG9tPT09Z3x8dGhpcy5kb20uY29udGFpbnMoZykpJiYodGhpcy5pc0RyYWdnaW5nPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLCgpPT57dGhpcy5pc0RyYWdnaW5nPSExfSx7b25jZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCgpPT57dGhpcy5pc0RyYWdnaW5nPSExfSx7b25jZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCgpPT57dGhpcy5pc0RyYWdnaW5nPSExfSx7b25jZTohMH0pKX1yZXR1cm4hKGR8fG98fGh8fG18fHZ8fGImJnApfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiF0aGlzLmRvbXx8IXRoaXMuY29udGVudERPTT8hMDp0eXBlb2YgdGhpcy5vcHRpb25zLmlnbm9yZU11dGF0aW9uPT0iZnVuY3Rpb24iP3RoaXMub3B0aW9ucy5pZ25vcmVNdXRhdGlvbih7bXV0YXRpb246ZX0pOnRoaXMubm9kZS5pc0xlYWZ8fHRoaXMubm9kZS5pc0F0b20/ITA6ZS50eXBlPT09InNlbGVjdGlvbiJ8fHRoaXMuZG9tLmNvbnRhaW5zKGUudGFyZ2V0KSYmZS50eXBlPT09ImNoaWxkTGlzdCImJihXOSgpfHxNNXQoKSkmJnRoaXMuZWRpdG9yLmlzRm9jdXNlZCYmWy4uLkFycmF5LmZyb20oZS5hZGRlZE5vZGVzKSwuLi5BcnJheS5mcm9tKGUucmVtb3ZlZE5vZGVzKV0uZXZlcnkoYT0+YS5pc0NvbnRlbnRFZGl0YWJsZSk/ITE6dGhpcy5jb250ZW50RE9NPT09ZS50YXJnZXQmJmUudHlwZT09PSJhdHRyaWJ1dGVzIj8hMDohdGhpcy5jb250ZW50RE9NLmNvbnRhaW5zKGUudGFyZ2V0KX11cGRhdGVBdHRyaWJ1dGVzKGUpe3RoaXMuZWRpdG9yLmNvbW1hbmRzLmNvbW1hbmQoKHt0cjpyfSk9PntsZXQgYT10aGlzLmdldFBvcygpO3JldHVybiB0eXBlb2YgYSE9Im51bWJlciI/ITE6KHIuc2V0Tm9kZU1hcmt1cChhLHZvaWQgMCx7Li4udGhpcy5ub2RlLmF0dHJzLC4uLmV9KSwhMCl9KX1kZWxldGVOb2RlKCl7bGV0IGU9dGhpcy5nZXRQb3MoKTtpZih0eXBlb2YgZSE9Im51bWJlciIpcmV0dXJuO2xldCByPWUrdGhpcy5ub2RlLm5vZGVTaXplO3RoaXMuZWRpdG9yLmNvbW1hbmRzLmRlbGV0ZVJhbmdlKHtmcm9tOmUsdG86cn0pfX07aShJMSwibWFya1Bhc3RlUnVsZSIpO2kodmhlLCJjYW5JbnNlcnROb2RlIik7aShFWXIsImVzY2FwZUZvclJlZ0V4Iik7aShJWXIsImlzU3RyaW5nIik7aShQWXIsIm5vZGVQYXN0ZVJ1bGUiKTtpKE5ZciwidGV4dFBhc3RlUnVsZSIpO2ZoZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUcmFja2VyIil9Y29uc3RydWN0b3IoZSl7dGhpcy50cmFuc2FjdGlvbj1lLHRoaXMuY3VycmVudFN0ZXA9dGhpcy50cmFuc2FjdGlvbi5zdGVwcy5sZW5ndGh9bWFwKGUpe2xldCByPSExO3JldHVybntwb3NpdGlvbjp0aGlzLnRyYW5zYWN0aW9uLnN0ZXBzLnNsaWNlKHRoaXMuY3VycmVudFN0ZXApLnJlZHVjZSgocyxuKT0+e2xldCBvPW4uZ2V0TWFwKCkubWFwUmVzdWx0KHMpO3JldHVybiBvLmRlbGV0ZWQmJihyPSEwKSxvLnBvc30sZSksZGVsZXRlZDpyfX19fSk7dmFyIFJZcix5aGUsRllyPXUoKCk9PntoaSgpO1JZcj0vXlxzKj5ccyQvLHloZT10aS5jcmVhdGUoe25hbWU6ImJsb2NrcXVvdGUiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxjb250ZW50OiJibG9jaysiLGdyb3VwOiJibG9jayIsZGVmaW5pbmc6ITAscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImJsb2NrcXVvdGUifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnR9KXtyZXR1cm5bImJsb2NrcXVvdGUiLHNhKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0QmxvY2txdW90ZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC53cmFwSW4odGhpcy5uYW1lKSwic2V0QmxvY2txdW90ZSIpLHRvZ2dsZUJsb2NrcXVvdGU6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQudG9nZ2xlV3JhcCh0aGlzLm5hbWUpLCJ0b2dnbGVCbG9ja3F1b3RlIiksdW5zZXRCbG9ja3F1b3RlOmkoKCk9Pih7Y29tbWFuZHM6dH0pPT50LmxpZnQodGhpcy5uYW1lKSwidW5zZXRCbG9ja3F1b3RlIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLVNoaWZ0LWIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUJsb2NrcXVvdGUoKSwiTW9kLVNoaWZ0LWIiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5baGQoe2ZpbmQ6UllyLHR5cGU6dGhpcy50eXBlfSldfX0pfSk7dmFyIEJZcixIWXIscVlyLFZZcix3aGUsallyPXUoKCk9PntoaSgpO0JZcj0vKD86XnxccykoXCpcKig/IVxzK1wqXCopKCg/OlteKl0rKSlcKlwqKD8hXHMrXCpcKikpJC8sSFlyPS8oPzpefFxzKShcKlwqKD8hXHMrXCpcKikoKD86W14qXSspKVwqXCooPyFccytcKlwqKSkvZyxxWXI9Lyg/Ol58XHMpKF9fKD8hXHMrX18pKCg/OlteX10rKSlfXyg/IVxzK19fKSkkLyxWWXI9Lyg/Ol58XHMpKF9fKD8hXHMrX18pKCg/OlteX10rKSlfXyg/IVxzK19fKSkvZyx3aGU9T24uY3JlYXRlKHtuYW1lOiJib2xkIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InN0cm9uZyJ9LHt0YWc6ImIiLGdldEF0dHJzOmkodD0+dC5zdHlsZS5mb250V2VpZ2h0IT09Im5vcm1hbCImJm51bGwsImdldEF0dHJzIil9LHtzdHlsZToiZm9udC13ZWlnaHQ9NDAwIixjbGVhck1hcms6aSh0PT50LnR5cGUubmFtZT09PXRoaXMubmFtZSwiY2xlYXJNYXJrIil9LHtzdHlsZToiZm9udC13ZWlnaHQiLGdldEF0dHJzOmkodD0+L14oYm9sZChlcik/fFs1LTldXGR7Mix9KSQvLnRlc3QodCkmJm51bGwsImdldEF0dHJzIil9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVyblsic3Ryb25nIixzYSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsdCksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEJvbGQ6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQuc2V0TWFyayh0aGlzLm5hbWUpLCJzZXRCb2xkIiksdG9nZ2xlQm9sZDppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZUJvbGQiKSx1bnNldEJvbGQ6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQudW5zZXRNYXJrKHRoaXMubmFtZSksInVuc2V0Qm9sZCIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1iIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVCb2xkKCksIk1vZC1iIiksIk1vZC1CIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVCb2xkKCksIk1vZC1CIil9fSxhZGRJbnB1dFJ1bGVzKCl7cmV0dXJuW2EyKHtmaW5kOkJZcix0eXBlOnRoaXMudHlwZX0pLGEyKHtmaW5kOnFZcix0eXBlOnRoaXMudHlwZX0pXX0sYWRkUGFzdGVSdWxlcygpe3JldHVybltJMSh7ZmluZDpIWXIsdHlwZTp0aGlzLnR5cGV9KSxJMSh7ZmluZDpWWXIsdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgZlJhLFVZcixWNXQsa2hlLFdZcj11KCgpPT57aGkoKTtmUmE9Imxpc3RJdGVtIixVWXI9InRleHRTdHlsZSIsVjV0PS9eXHMqKFstKypdKVxzJC8sa2hlPXRpLmNyZWF0ZSh7bmFtZToiYnVsbGV0TGlzdCIsYWRkT3B0aW9ucygpe3JldHVybntpdGVtVHlwZU5hbWU6Imxpc3RJdGVtIixIVE1MQXR0cmlidXRlczp7fSxrZWVwTWFya3M6ITEsa2VlcEF0dHJpYnV0ZXM6ITF9fSxncm91cDoiYmxvY2sgbGlzdCIsY29udGVudCgpe3JldHVybmAke3RoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWV9K2B9LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJ1bCJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVyblsidWwiLHNhKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57dG9nZ2xlQnVsbGV0TGlzdDppKCgpPT4oe2NvbW1hbmRzOnQsY2hhaW46ZX0pPT50aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXM/ZSgpLnRvZ2dsZUxpc3QodGhpcy5uYW1lLHRoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWUsdGhpcy5vcHRpb25zLmtlZXBNYXJrcykudXBkYXRlQXR0cmlidXRlcyhmUmEsdGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhVWXIpKS5ydW4oKTp0LnRvZ2dsZUxpc3QodGhpcy5uYW1lLHRoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWUsdGhpcy5vcHRpb25zLmtlZXBNYXJrcyksInRvZ2dsZUJ1bGxldExpc3QiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtOCI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQnVsbGV0TGlzdCgpLCJNb2QtU2hpZnQtOCIpfX0sYWRkSW5wdXRSdWxlcygpe2xldCB0PWhkKHtmaW5kOlY1dCx0eXBlOnRoaXMudHlwZX0pO3JldHVybih0aGlzLm9wdGlvbnMua2VlcE1hcmtzfHx0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMpJiYodD1oZCh7ZmluZDpWNXQsdHlwZTp0aGlzLnR5cGUsa2VlcE1hcmtzOnRoaXMub3B0aW9ucy5rZWVwTWFya3Msa2VlcEF0dHJpYnV0ZXM6dGhpcy5vcHRpb25zLmtlZXBBdHRyaWJ1dGVzLGdldEF0dHJpYnV0ZXM6aSgoKT0+dGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhVWXIpLCJnZXRBdHRyaWJ1dGVzIiksZWRpdG9yOnRoaXMuZWRpdG9yfSkpLFt0XX19KX0pO3ZhciBHWXIsWVlyLFNoZSxLWXI9dSgoKT0+e2hpKCk7R1lyPS8oXnxbXmBdKWAoW15gXSspYCg/IWApLyxZWXI9LyhefFteYF0pYChbXmBdKylgKD8hYCkvZyxTaGU9T24uY3JlYXRlKHtuYW1lOiJjb2RlIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0sZXhjbHVkZXM6Il8iLGNvZGU6ITAsZXhpdGFibGU6ITAscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImNvZGUifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnR9KXtyZXR1cm5bImNvZGUiLHNhKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0Q29kZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC5zZXRNYXJrKHRoaXMubmFtZSksInNldENvZGUiKSx0b2dnbGVDb2RlOmkoKCk9Pih7Y29tbWFuZHM6dH0pPT50LnRvZ2dsZU1hcmsodGhpcy5uYW1lKSwidG9nZ2xlQ29kZSIpLHVuc2V0Q29kZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRDb2RlIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLWUiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUNvZGUoKSwiTW9kLWUiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bYTIoe2ZpbmQ6R1lyLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW0kxKHtmaW5kOllZcix0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBaWXIsUVlyLE1oZSxYWXI9dSgoKT0+e2hpKCk7UHRlKCk7WllyPS9eYGBgKFthLXpdKyk/W1xzXG5dJC8sUVlyPS9efn5+KFthLXpdKyk/W1xzXG5dJC8sTWhlPXRpLmNyZWF0ZSh7bmFtZToiY29kZUJsb2NrIixhZGRPcHRpb25zKCl7cmV0dXJue2xhbmd1YWdlQ2xhc3NQcmVmaXg6Imxhbmd1YWdlLSIsZXhpdE9uVHJpcGxlRW50ZXI6ITAsZXhpdE9uQXJyb3dEb3duOiEwLGRlZmF1bHRMYW5ndWFnZTpudWxsLEhUTUxBdHRyaWJ1dGVzOnt9fX0sY29udGVudDoidGV4dCoiLG1hcmtzOiIiLGdyb3VwOiJibG9jayIsY29kZTohMCxkZWZpbmluZzohMCxhZGRBdHRyaWJ1dGVzKCl7cmV0dXJue2xhbmd1YWdlOntkZWZhdWx0OnRoaXMub3B0aW9ucy5kZWZhdWx0TGFuZ3VhZ2UscGFyc2VIVE1MOmkodD0+e3ZhciBlO2xldHtsYW5ndWFnZUNsYXNzUHJlZml4OnJ9PXRoaXMub3B0aW9ucyxuPVsuLi4oKGU9dC5maXJzdEVsZW1lbnRDaGlsZCk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmNsYXNzTGlzdCl8fFtdXS5maWx0ZXIobz0+by5zdGFydHNXaXRoKHIpKS5tYXAobz0+by5yZXBsYWNlKHIsIiIpKVswXTtyZXR1cm4gbnx8bnVsbH0sInBhcnNlSFRNTCIpLHJlbmRlcmVkOiExfX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJwcmUiLHByZXNlcnZlV2hpdGVzcGFjZToiZnVsbCJ9XX0scmVuZGVySFRNTCh7bm9kZTp0LEhUTUxBdHRyaWJ1dGVzOmV9KXtyZXR1cm5bInByZSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGUpLFsiY29kZSIse2NsYXNzOnQuYXR0cnMubGFuZ3VhZ2U/dGhpcy5vcHRpb25zLmxhbmd1YWdlQ2xhc3NQcmVmaXgrdC5hdHRycy5sYW5ndWFnZTpudWxsfSwwXV19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldENvZGVCbG9jazppKHQ9Pih7Y29tbWFuZHM6ZX0pPT5lLnNldE5vZGUodGhpcy5uYW1lLHQpLCJzZXRDb2RlQmxvY2siKSx0b2dnbGVDb2RlQmxvY2s6aSh0PT4oe2NvbW1hbmRzOmV9KT0+ZS50b2dnbGVOb2RlKHRoaXMubmFtZSwicGFyYWdyYXBoIix0KSwidG9nZ2xlQ29kZUJsb2NrIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLUFsdC1jIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVDb2RlQmxvY2soKSwiTW9kLUFsdC1jIiksQmFja3NwYWNlOmkoKCk9PntsZXR7ZW1wdHk6dCwkYW5jaG9yOmV9PXRoaXMuZWRpdG9yLnN0YXRlLnNlbGVjdGlvbixyPWUucG9zPT09MTtyZXR1cm4hdHx8ZS5wYXJlbnQudHlwZS5uYW1lIT09dGhpcy5uYW1lPyExOnJ8fCFlLnBhcmVudC50ZXh0Q29udGVudC5sZW5ndGg/dGhpcy5lZGl0b3IuY29tbWFuZHMuY2xlYXJOb2RlcygpOiExfSwiQmFja3NwYWNlIiksRW50ZXI6aSgoe2VkaXRvcjp0fSk9PntpZighdGhpcy5vcHRpb25zLmV4aXRPblRyaXBsZUVudGVyKXJldHVybiExO2xldHtzdGF0ZTplfT10LHtzZWxlY3Rpb246cn09ZSx7JGZyb206YSxlbXB0eTpzfT1yO2lmKCFzfHxhLnBhcmVudC50eXBlIT09dGhpcy50eXBlKXJldHVybiExO2xldCBuPWEucGFyZW50T2Zmc2V0PT09YS5wYXJlbnQubm9kZVNpemUtMixvPWEucGFyZW50LnRleHRDb250ZW50LmVuZHNXaXRoKGAKCmApO3JldHVybiFufHwhbz8hMTp0LmNoYWluKCkuY29tbWFuZCgoe3RyOmx9KT0+KGwuZGVsZXRlKGEucG9zLTIsYS5wb3MpLCEwKSkuZXhpdENvZGUoKS5ydW4oKX0sIkVudGVyIiksQXJyb3dEb3duOmkoKHtlZGl0b3I6dH0pPT57aWYoIXRoaXMub3B0aW9ucy5leGl0T25BcnJvd0Rvd24pcmV0dXJuITE7bGV0e3N0YXRlOmV9PXQse3NlbGVjdGlvbjpyLGRvYzphfT1lLHskZnJvbTpzLGVtcHR5Om59PXI7aWYoIW58fHMucGFyZW50LnR5cGUhPT10aGlzLnR5cGV8fCEocy5wYXJlbnRPZmZzZXQ9PT1zLnBhcmVudC5ub2RlU2l6ZS0yKSlyZXR1cm4hMTtsZXQgbD1zLmFmdGVyKCk7cmV0dXJuIGw9PT12b2lkIDA/ITE6YS5ub2RlQXQobCk/dC5jb21tYW5kcy5jb21tYW5kKCh7dHI6ZH0pPT4oZC5zZXRTZWxlY3Rpb24oSnQubmVhcihhLnJlc29sdmUobCkpKSwhMCkpOnQuY29tbWFuZHMuZXhpdENvZGUoKX0sIkFycm93RG93biIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltaOSh7ZmluZDpaWXIsdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczppKHQ9Pih7bGFuZ3VhZ2U6dFsxXX0pLCJnZXRBdHRyaWJ1dGVzIil9KSxaOSh7ZmluZDpRWXIsdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczppKHQ9Pih7bGFuZ3VhZ2U6dFsxXX0pLCJnZXRBdHRyaWJ1dGVzIil9KV19LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgUWEoe2tleTpuZXcgTHMoImNvZGVCbG9ja1ZTQ29kZUhhbmRsZXIiKSxwcm9wczp7aGFuZGxlUGFzdGU6aSgodCxlKT0+e2lmKCFlLmNsaXBib2FyZERhdGF8fHRoaXMuZWRpdG9yLmlzQWN0aXZlKHRoaXMudHlwZS5uYW1lKSlyZXR1cm4hMTtsZXQgcj1lLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dC9wbGFpbiIpLGE9ZS5jbGlwYm9hcmREYXRhLmdldERhdGEoInZzY29kZS1lZGl0b3ItZGF0YSIpLHM9YT9KU09OLnBhcnNlKGEpOnZvaWQgMCxuPXM/Lm1vZGU7aWYoIXJ8fCFuKXJldHVybiExO2xldHt0cjpvLHNjaGVtYTpsfT10LnN0YXRlLGM9bC50ZXh0KHIucmVwbGFjZSgvXHJcbj8vZyxgCmApKTtyZXR1cm4gby5yZXBsYWNlU2VsZWN0aW9uV2l0aCh0aGlzLnR5cGUuY3JlYXRlKHtsYW5ndWFnZTpufSxjKSksby5zZWxlY3Rpb24uJGZyb20ucGFyZW50LnR5cGUhPT10aGlzLnR5cGUmJm8uc2V0U2VsZWN0aW9uKGVyLm5lYXIoby5kb2MucmVzb2x2ZShNYXRoLm1heCgwLG8uc2VsZWN0aW9uLmZyb20tMikpKSksby5zZXRNZXRhKCJwYXN0ZSIsITApLHQuZGlzcGF0Y2gobyksITB9LCJoYW5kbGVQYXN0ZSIpfX0pXX19KX0pO3ZhciBDaGUsSllyPXUoKCk9PntoaSgpO0NoZT10aS5jcmVhdGUoe25hbWU6ImRvYyIsdG9wTm9kZTohMCxjb250ZW50OiJibG9jaysifSl9KTtmdW5jdGlvbiBVNXQodD17fSl7cmV0dXJuIG5ldyBRYSh7dmlldyhlKXtyZXR1cm4gbmV3IGo1dChlLHQpfX0pfXZhciBqNXQsZUtyPXUoKCk9PnthMygpO1dwKCk7aShVNXQsImRyb3BDdXJzb3IiKTtqNXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiRHJvcEN1cnNvclZpZXciKX1jb25zdHJ1Y3RvcihlLHIpe3ZhciBhO3RoaXMuZWRpdG9yVmlldz1lLHRoaXMuY3Vyc29yUG9zPW51bGwsdGhpcy5lbGVtZW50PW51bGwsdGhpcy50aW1lb3V0PS0xLHRoaXMud2lkdGg9KGE9ci53aWR0aCkhPT1udWxsJiZhIT09dm9pZCAwP2E6MSx0aGlzLmNvbG9yPXIuY29sb3I9PT0hMT92b2lkIDA6ci5jb2xvcnx8ImJsYWNrIix0aGlzLmNsYXNzPXIuY2xhc3MsdGhpcy5oYW5kbGVycz1bImRyYWdvdmVyIiwiZHJhZ2VuZCIsImRyb3AiLCJkcmFnbGVhdmUiXS5tYXAocz0+e2xldCBuPWkobz0+e3RoaXNbc10obyl9LCJoYW5kbGVyIik7cmV0dXJuIGUuZG9tLmFkZEV2ZW50TGlzdGVuZXIocyxuKSx7bmFtZTpzLGhhbmRsZXI6bn19KX1kZXN0cm95KCl7dGhpcy5oYW5kbGVycy5mb3JFYWNoKCh7bmFtZTplLGhhbmRsZXI6cn0pPT50aGlzLmVkaXRvclZpZXcuZG9tLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxyKSl9dXBkYXRlKGUscil7dGhpcy5jdXJzb3JQb3MhPW51bGwmJnIuZG9jIT1lLnN0YXRlLmRvYyYmKHRoaXMuY3Vyc29yUG9zPmUuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZT90aGlzLnNldEN1cnNvcihudWxsKTp0aGlzLnVwZGF0ZU92ZXJsYXkoKSl9c2V0Q3Vyc29yKGUpe2UhPXRoaXMuY3Vyc29yUG9zJiYodGhpcy5jdXJzb3JQb3M9ZSxlPT1udWxsPyh0aGlzLmVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQpLHRoaXMuZWxlbWVudD1udWxsKTp0aGlzLnVwZGF0ZU92ZXJsYXkoKSl9dXBkYXRlT3ZlcmxheSgpe2xldCBlPXRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2MucmVzb2x2ZSh0aGlzLmN1cnNvclBvcykscj0hZS5wYXJlbnQuaW5saW5lQ29udGVudCxhLHM9dGhpcy5lZGl0b3JWaWV3LmRvbSxuPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1uLndpZHRoL3Mub2Zmc2V0V2lkdGgsbD1uLmhlaWdodC9zLm9mZnNldEhlaWdodDtpZihyKXtsZXQgcD1lLm5vZGVCZWZvcmUsaD1lLm5vZGVBZnRlcjtpZihwfHxoKXtsZXQgbT10aGlzLmVkaXRvclZpZXcubm9kZURPTSh0aGlzLmN1cnNvclBvcy0ocD9wLm5vZGVTaXplOjApKTtpZihtKXtsZXQgdj1tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGI9cD92LmJvdHRvbTp2LnRvcDtwJiZoJiYoYj0oYit0aGlzLmVkaXRvclZpZXcubm9kZURPTSh0aGlzLmN1cnNvclBvcykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKS8yKTtsZXQgZz10aGlzLndpZHRoLzIqbDthPXtsZWZ0OnYubGVmdCxyaWdodDp2LnJpZ2h0LHRvcDpiLWcsYm90dG9tOmIrZ319fX1pZighYSl7bGV0IHA9dGhpcy5lZGl0b3JWaWV3LmNvb3Jkc0F0UG9zKHRoaXMuY3Vyc29yUG9zKSxoPXRoaXMud2lkdGgvMipvO2E9e2xlZnQ6cC5sZWZ0LWgscmlnaHQ6cC5sZWZ0K2gsdG9wOnAudG9wLGJvdHRvbTpwLmJvdHRvbX19bGV0IGM9dGhpcy5lZGl0b3JWaWV3LmRvbS5vZmZzZXRQYXJlbnQ7dGhpcy5lbGVtZW50fHwodGhpcy5lbGVtZW50PWMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHRoaXMuY2xhc3MmJih0aGlzLmVsZW1lbnQuY2xhc3NOYW1lPXRoaXMuY2xhc3MpLHRoaXMuZWxlbWVudC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDUwOyBwb2ludGVyLWV2ZW50czogbm9uZTsiLHRoaXMuY29sb3ImJih0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yPXRoaXMuY29sb3IpKSx0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgicHJvc2VtaXJyb3ItZHJvcGN1cnNvci1ibG9jayIsciksdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInByb3NlbWlycm9yLWRyb3BjdXJzb3ItaW5saW5lIiwhcik7bGV0IGQsZjtpZighY3x8Yz09ZG9jdW1lbnQuYm9keSYmZ2V0Q29tcHV0ZWRTdHlsZShjKS5wb3NpdGlvbj09InN0YXRpYyIpZD0tcGFnZVhPZmZzZXQsZj0tcGFnZVlPZmZzZXQ7ZWxzZXtsZXQgcD1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGg9cC53aWR0aC9jLm9mZnNldFdpZHRoLG09cC5oZWlnaHQvYy5vZmZzZXRIZWlnaHQ7ZD1wLmxlZnQtYy5zY3JvbGxMZWZ0KmgsZj1wLnRvcC1jLnNjcm9sbFRvcCptfXRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0PShhLmxlZnQtZCkvbysicHgiLHRoaXMuZWxlbWVudC5zdHlsZS50b3A9KGEudG9wLWYpL2wrInB4Iix0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGg9KGEucmlnaHQtYS5sZWZ0KS9vKyJweCIsdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodD0oYS5ib3R0b20tYS50b3ApL2wrInB4In1zY2hlZHVsZVJlbW92YWwoZSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCksdGhpcy50aW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuc2V0Q3Vyc29yKG51bGwpLGUpfWRyYWdvdmVyKGUpe2lmKCF0aGlzLmVkaXRvclZpZXcuZWRpdGFibGUpcmV0dXJuO2xldCByPXRoaXMuZWRpdG9yVmlldy5wb3NBdENvb3Jkcyh7bGVmdDplLmNsaWVudFgsdG9wOmUuY2xpZW50WX0pLGE9ciYmci5pbnNpZGU+PTAmJnRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2Mubm9kZUF0KHIuaW5zaWRlKSxzPWEmJmEudHlwZS5zcGVjLmRpc2FibGVEcm9wQ3Vyc29yLG49dHlwZW9mIHM9PSJmdW5jdGlvbiI/cyh0aGlzLmVkaXRvclZpZXcscixlKTpzO2lmKHImJiFuKXtsZXQgbz1yLnBvcztpZih0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcmJnRoaXMuZWRpdG9yVmlldy5kcmFnZ2luZy5zbGljZSl7bGV0IGw9QXRlKHRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2Msbyx0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcuc2xpY2UpO2whPW51bGwmJihvPWwpfXRoaXMuc2V0Q3Vyc29yKG8pLHRoaXMuc2NoZWR1bGVSZW1vdmFsKDVlMyl9fWRyYWdlbmQoKXt0aGlzLnNjaGVkdWxlUmVtb3ZhbCgyMCl9ZHJvcCgpe3RoaXMuc2NoZWR1bGVSZW1vdmFsKDIwKX1kcmFnbGVhdmUoZSl7dGhpcy5lZGl0b3JWaWV3LmRvbS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHx0aGlzLnNldEN1cnNvcihudWxsKX19fSk7dmFyIHRLcj11KCgpPT57ZUtyKCl9KTt2YXIgemhlLHJLcj11KCgpPT57aGkoKTt0S3IoKTt6aGU9a2kuY3JlYXRlKHtuYW1lOiJkcm9wQ3Vyc29yIixhZGRPcHRpb25zKCl7cmV0dXJue2NvbG9yOiJjdXJyZW50Q29sb3IiLHdpZHRoOjEsY2xhc3M6dm9pZCAwfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW1U1dCh0aGlzLm9wdGlvbnMpXX19KX0pO2Z1bmN0aW9uIGFLcih0KXtyZXR1cm4gdC5pc0F0b218fHQuc3BlYy5pc29sYXRpbmd8fHQuc3BlYy5jcmVhdGVHYXBDdXJzb3J9ZnVuY3Rpb24gaFJhKHQpe2ZvcihsZXQgZT10LmRlcHRoO2U+PTA7ZS0tKXtsZXQgcj10LmluZGV4KGUpLGE9dC5ub2RlKGUpO2lmKHI9PTApe2lmKGEudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMDtjb250aW51ZX1mb3IobGV0IHM9YS5jaGlsZChyLTEpOztzPXMubGFzdENoaWxkKXtpZihzLmNoaWxkQ291bnQ9PTAmJiFzLmlubGluZUNvbnRlbnR8fGFLcihzLnR5cGUpKXJldHVybiEwO2lmKHMuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gbVJhKHQpe2ZvcihsZXQgZT10LmRlcHRoO2U+PTA7ZS0tKXtsZXQgcj10LmluZGV4QWZ0ZXIoZSksYT10Lm5vZGUoZSk7aWYocj09YS5jaGlsZENvdW50KXtpZihhLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITA7Y29udGludWV9Zm9yKGxldCBzPWEuY2hpbGQocik7O3M9cy5maXJzdENoaWxkKXtpZihzLmNoaWxkQ291bnQ9PTAmJiFzLmlubGluZUNvbnRlbnR8fGFLcihzLnR5cGUpKXJldHVybiEwO2lmKHMuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gRzV0KCl7cmV0dXJuIG5ldyBRYSh7cHJvcHM6e2RlY29yYXRpb25zOnZSYSxjcmVhdGVTZWxlY3Rpb25CZXR3ZWVuKHQsZSxyKXtyZXR1cm4gZS5wb3M9PXIucG9zJiZSbi52YWxpZChyKT9uZXcgUm4ocik6bnVsbH0saGFuZGxlQ2xpY2s6YlJhLGhhbmRsZUtleURvd246Z1JhLGhhbmRsZURPTUV2ZW50czp7YmVmb3JlaW5wdXQ6eFJhfX19KX1mdW5jdGlvbiBfaGUodCxlKXtsZXQgcj10PT0idmVydCI/ZT4wPyJkb3duIjoidXAiOmU+MD8icmlnaHQiOiJsZWZ0IjtyZXR1cm4gZnVuY3Rpb24oYSxzLG4pe2xldCBvPWEuc2VsZWN0aW9uLGw9ZT4wP28uJHRvOm8uJGZyb20sYz1vLmVtcHR5O2lmKG8gaW5zdGFuY2VvZiBlcil7aWYoIW4uZW5kT2ZUZXh0YmxvY2socil8fGwuZGVwdGg9PTApcmV0dXJuITE7Yz0hMSxsPWEuZG9jLnJlc29sdmUoZT4wP2wuYWZ0ZXIoKTpsLmJlZm9yZSgpKX1sZXQgZD1Sbi5maW5kR2FwQ3Vyc29yRnJvbShsLGUsYyk7cmV0dXJuIGQ/KHMmJnMoYS50ci5zZXRTZWxlY3Rpb24obmV3IFJuKGQpKSksITApOiExfX1mdW5jdGlvbiBiUmEodCxlLHIpe2lmKCF0fHwhdC5lZGl0YWJsZSlyZXR1cm4hMTtsZXQgYT10LnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCFSbi52YWxpZChhKSlyZXR1cm4hMTtsZXQgcz10LnBvc0F0Q29vcmRzKHtsZWZ0OnIuY2xpZW50WCx0b3A6ci5jbGllbnRZfSk7cmV0dXJuIHMmJnMuaW5zaWRlPi0xJiZJdC5pc1NlbGVjdGFibGUodC5zdGF0ZS5kb2Mubm9kZUF0KHMuaW5zaWRlKSk/ITE6KHQuZGlzcGF0Y2godC5zdGF0ZS50ci5zZXRTZWxlY3Rpb24obmV3IFJuKGEpKSksITApfWZ1bmN0aW9uIHhSYSh0LGUpe2lmKGUuaW5wdXRUeXBlIT0iaW5zZXJ0Q29tcG9zaXRpb25UZXh0Inx8ISh0LnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIFJuKSlyZXR1cm4hMTtsZXR7JGZyb206cn09dC5zdGF0ZS5zZWxlY3Rpb24sYT1yLnBhcmVudC5jb250ZW50TWF0Y2hBdChyLmluZGV4KCkpLmZpbmRXcmFwcGluZyh0LnN0YXRlLnNjaGVtYS5ub2Rlcy50ZXh0KTtpZighYSlyZXR1cm4hMTtsZXQgcz1KZS5lbXB0eTtmb3IobGV0IG89YS5sZW5ndGgtMTtvPj0wO28tLSlzPUplLmZyb20oYVtvXS5jcmVhdGVBbmRGaWxsKG51bGwscykpO2xldCBuPXQuc3RhdGUudHIucmVwbGFjZShyLnBvcyxyLnBvcyxuZXcgbXQocywwLDApKTtyZXR1cm4gbi5zZXRTZWxlY3Rpb24oZXIubmVhcihuLmRvYy5yZXNvbHZlKHIucG9zKzEpKSksdC5kaXNwYXRjaChuKSwhMX1mdW5jdGlvbiB2UmEodCl7aWYoISh0LnNlbGVjdGlvbiBpbnN0YW5jZW9mIFJuKSlyZXR1cm4gbnVsbDtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5jbGFzc05hbWU9IlByb3NlTWlycm9yLWdhcGN1cnNvciIsVW8uY3JlYXRlKHQuZG9jLFt3Yy53aWRnZXQodC5zZWxlY3Rpb24uaGVhZCxlLHtrZXk6ImdhcGN1cnNvciJ9KV0pfXZhciBSbixXNXQsZ1JhLGlLcj11KCgpPT57czV0KCk7YTMoKTtqcCgpO3I1dCgpO1JuPWNsYXNzIHQgZXh0ZW5kcyBKdHtzdGF0aWN7aSh0aGlzLCJHYXBDdXJzb3IiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlLGUpfW1hcChlLHIpe2xldCBhPWUucmVzb2x2ZShyLm1hcCh0aGlzLmhlYWQpKTtyZXR1cm4gdC52YWxpZChhKT9uZXcgdChhKTpKdC5uZWFyKGEpfWNvbnRlbnQoKXtyZXR1cm4gbXQuZW1wdHl9ZXEoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0JiZlLmhlYWQ9PXRoaXMuaGVhZH10b0pTT04oKXtyZXR1cm57dHlwZToiZ2FwY3Vyc29yIixwb3M6dGhpcy5oZWFkfX1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZih0eXBlb2Ygci5wb3MhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBHYXBDdXJzb3IuZnJvbUpTT04iKTtyZXR1cm4gbmV3IHQoZS5yZXNvbHZlKHIucG9zKSl9Z2V0Qm9va21hcmsoKXtyZXR1cm4gbmV3IFc1dCh0aGlzLmFuY2hvcil9c3RhdGljIHZhbGlkKGUpe2xldCByPWUucGFyZW50O2lmKHIuaW5saW5lQ29udGVudHx8IWhSYShlKXx8IW1SYShlKSlyZXR1cm4hMTtsZXQgYT1yLnR5cGUuc3BlYy5hbGxvd0dhcEN1cnNvcjtpZihhIT1udWxsKXJldHVybiBhO2xldCBzPXIuY29udGVudE1hdGNoQXQoZS5pbmRleCgpKS5kZWZhdWx0VHlwZTtyZXR1cm4gcyYmcy5pc1RleHRibG9ja31zdGF0aWMgZmluZEdhcEN1cnNvckZyb20oZSxyLGE9ITEpe2U6Zm9yKDs7KXtpZighYSYmdC52YWxpZChlKSlyZXR1cm4gZTtsZXQgcz1lLnBvcyxuPW51bGw7Zm9yKGxldCBvPWUuZGVwdGg7O28tLSl7bGV0IGw9ZS5ub2RlKG8pO2lmKHI+MD9lLmluZGV4QWZ0ZXIobyk8bC5jaGlsZENvdW50OmUuaW5kZXgobyk+MCl7bj1sLmNoaWxkKHI+MD9lLmluZGV4QWZ0ZXIobyk6ZS5pbmRleChvKS0xKTticmVha31lbHNlIGlmKG89PTApcmV0dXJuIG51bGw7cys9cjtsZXQgYz1lLmRvYy5yZXNvbHZlKHMpO2lmKHQudmFsaWQoYykpcmV0dXJuIGN9Zm9yKDs7KXtsZXQgbz1yPjA/bi5maXJzdENoaWxkOm4ubGFzdENoaWxkO2lmKCFvKXtpZihuLmlzQXRvbSYmIW4uaXNUZXh0JiYhSXQuaXNTZWxlY3RhYmxlKG4pKXtlPWUuZG9jLnJlc29sdmUocytuLm5vZGVTaXplKnIpLGE9ITE7Y29udGludWUgZX1icmVha31uPW8scys9cjtsZXQgbD1lLmRvYy5yZXNvbHZlKHMpO2lmKHQudmFsaWQobCkpcmV0dXJuIGx9cmV0dXJuIG51bGx9fX07Um4ucHJvdG90eXBlLnZpc2libGU9ITEsUm4uZmluZEZyb209Um4uZmluZEdhcEN1cnNvckZyb20sSnQuanNvbklEKCJnYXBjdXJzb3IiLFJuKTtXNXQ9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJHYXBCb29rbWFyayIpfWNvbnN0cnVjdG9yKGUpe3RoaXMucG9zPWV9bWFwKGUpe3JldHVybiBuZXcgdChlLm1hcCh0aGlzLnBvcykpfXJlc29sdmUoZSl7bGV0IHI9ZS5yZXNvbHZlKHRoaXMucG9zKTtyZXR1cm4gUm4udmFsaWQocik/bmV3IFJuKHIpOkp0Lm5lYXIocil9fTtpKGFLciwibmVlZHNHYXAiKTtpKGhSYSwiY2xvc2VkQmVmb3JlIik7aShtUmEsImNsb3NlZEFmdGVyIik7aShHNXQsImdhcEN1cnNvciIpO2dSYT1OZmUoe0Fycm93TGVmdDpfaGUoImhvcml6IiwtMSksQXJyb3dSaWdodDpfaGUoImhvcml6IiwxKSxBcnJvd1VwOl9oZSgidmVydCIsLTEpLEFycm93RG93bjpfaGUoInZlcnQiLDEpfSk7aShfaGUsImFycm93Iik7aShiUmEsImhhbmRsZUNsaWNrIik7aSh4UmEsImJlZm9yZWlucHV0Iik7aSh2UmEsImRyYXdHYXBDdXJzb3IiKX0pO3ZhciBzS3I9dSgoKT0+e2lLcigpfSk7dmFyIFRoZSxuS3I9dSgoKT0+e2hpKCk7c0tyKCk7VGhlPWtpLmNyZWF0ZSh7bmFtZToiZ2FwQ3Vyc29yIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bRzV0KCldfSxleHRlbmROb2RlU2NoZW1hKHQpe3ZhciBlO2xldCByPXtuYW1lOnQubmFtZSxvcHRpb25zOnQub3B0aW9ucyxzdG9yYWdlOnQuc3RvcmFnZX07cmV0dXJue2FsbG93R2FwQ3Vyc29yOihlPXByKGt0KHQsImFsbG93R2FwQ3Vyc29yIixyKSkpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm51bGx9fX0pfSk7dmFyIExoZSxvS3I9dSgoKT0+e2hpKCk7TGhlPXRpLmNyZWF0ZSh7bmFtZToiaGFyZEJyZWFrIixhZGRPcHRpb25zKCl7cmV0dXJue2tlZXBNYXJrczohMCxIVE1MQXR0cmlidXRlczp7fX19LGlubGluZTohMCxncm91cDoiaW5saW5lIixzZWxlY3RhYmxlOiExLGxpbmVicmVha1JlcGxhY2VtZW50OiEwLHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJiciJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVyblsiYnIiLHNhKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KV19LHJlbmRlclRleHQoKXtyZXR1cm5gCmB9LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEhhcmRCcmVhazppKCgpPT4oe2NvbW1hbmRzOnQsY2hhaW46ZSxzdGF0ZTpyLGVkaXRvcjphfSk9PnQuZmlyc3QoWygpPT50LmV4aXRDb2RlKCksKCk9PnQuY29tbWFuZCgoKT0+e2xldHtzZWxlY3Rpb246cyxzdG9yZWRNYXJrczpufT1yO2lmKHMuJGZyb20ucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0e2tlZXBNYXJrczpvfT10aGlzLm9wdGlvbnMse3NwbGl0dGFibGVNYXJrczpsfT1hLmV4dGVuc2lvbk1hbmFnZXIsYz1ufHxzLiR0by5wYXJlbnRPZmZzZXQmJnMuJGZyb20ubWFya3MoKTtyZXR1cm4gZSgpLmluc2VydENvbnRlbnQoe3R5cGU6dGhpcy5uYW1lfSkuY29tbWFuZCgoe3RyOmQsZGlzcGF0Y2g6Zn0pPT57aWYoZiYmYyYmbyl7bGV0IHA9Yy5maWx0ZXIoaD0+bC5pbmNsdWRlcyhoLnR5cGUubmFtZSkpO2QuZW5zdXJlTWFya3MocCl9cmV0dXJuITB9KS5ydW4oKX0pXSksInNldEhhcmRCcmVhayIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIk1vZC1FbnRlciIpLCJTaGlmdC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIlNoaWZ0LUVudGVyIil9fX0pfSk7dmFyIERoZSxsS3I9dSgoKT0+e2hpKCk7RGhlPXRpLmNyZWF0ZSh7bmFtZToiaGVhZGluZyIsYWRkT3B0aW9ucygpe3JldHVybntsZXZlbHM6WzEsMiwzLDQsNSw2XSxIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIsZGVmaW5pbmc6ITAsYWRkQXR0cmlidXRlcygpe3JldHVybntsZXZlbDp7ZGVmYXVsdDoxLHJlbmRlcmVkOiExfX19LHBhcnNlSFRNTCgpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcCh0PT4oe3RhZzpgaCR7dH1gLGF0dHJzOntsZXZlbDp0fX0pKX0scmVuZGVySFRNTCh7bm9kZTp0LEhUTUxBdHRyaWJ1dGVzOmV9KXtyZXR1cm5bYGgke3RoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXModC5hdHRycy5sZXZlbCk/dC5hdHRycy5sZXZlbDp0aGlzLm9wdGlvbnMubGV2ZWxzWzBdfWAsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGUpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRIZWFkaW5nOmkodD0+KHtjb21tYW5kczplfSk9PnRoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXModC5sZXZlbCk/ZS5zZXROb2RlKHRoaXMubmFtZSx0KTohMSwic2V0SGVhZGluZyIpLHRvZ2dsZUhlYWRpbmc6aSh0PT4oe2NvbW1hbmRzOmV9KT0+dGhpcy5vcHRpb25zLmxldmVscy5pbmNsdWRlcyh0LmxldmVsKT9lLnRvZ2dsZU5vZGUodGhpcy5uYW1lLCJwYXJhZ3JhcGgiLHQpOiExLCJ0b2dnbGVIZWFkaW5nIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLnJlZHVjZSgodCxlKT0+KHsuLi50LFtgTW9kLUFsdC0ke2V9YF06KCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUhlYWRpbmcoe2xldmVsOmV9KX0pLHt9KX0sYWRkSW5wdXRSdWxlcygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcCh0PT5aOSh7ZmluZDpuZXcgUmVnRXhwKGBeKCN7JHtNYXRoLm1pbiguLi50aGlzLm9wdGlvbnMubGV2ZWxzKX0sJHt0fX0pXFxzJGApLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6e2xldmVsOnR9fSkpfX0pfSk7dmFyICRoZSxGbixjS3IseVJhLFk1dCxkS3I9dSgoKT0+eyRoZT0yMDAsRm49aShmdW5jdGlvbigpe30sIlJvcGVTZXF1ZW5jZSIpO0ZuLnByb3RvdHlwZS5hcHBlbmQ9aShmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg/KGU9Rm4uZnJvbShlKSwhdGhpcy5sZW5ndGgmJmV8fGUubGVuZ3RoPCRoZSYmdGhpcy5sZWFmQXBwZW5kKGUpfHx0aGlzLmxlbmd0aDwkaGUmJmUubGVhZlByZXBlbmQodGhpcyl8fHRoaXMuYXBwZW5kSW5uZXIoZSkpOnRoaXN9LCJhcHBlbmQiKSxGbi5wcm90b3R5cGUucHJlcGVuZD1pKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aD9Gbi5mcm9tKGUpLmFwcGVuZCh0aGlzKTp0aGlzfSwicHJlcGVuZCIpLEZuLnByb3RvdHlwZS5hcHBlbmRJbm5lcj1pKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgeVJhKHRoaXMsZSl9LCJhcHBlbmRJbm5lciIpLEZuLnByb3RvdHlwZS5zbGljZT1pKGZ1bmN0aW9uKGUscil7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLHI9PT12b2lkIDAmJihyPXRoaXMubGVuZ3RoKSxlPj1yP0ZuLmVtcHR5OnRoaXMuc2xpY2VJbm5lcihNYXRoLm1heCgwLGUpLE1hdGgubWluKHRoaXMubGVuZ3RoLHIpKX0sInNsaWNlIiksRm4ucHJvdG90eXBlLmdldD1pKGZ1bmN0aW9uKGUpe2lmKCEoZTwwfHxlPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZ2V0SW5uZXIoZSl9LCJnZXQiKSxGbi5wcm90b3R5cGUuZm9yRWFjaD1pKGZ1bmN0aW9uKGUscixhKXtyPT09dm9pZCAwJiYocj0wKSxhPT09dm9pZCAwJiYoYT10aGlzLmxlbmd0aCkscjw9YT90aGlzLmZvckVhY2hJbm5lcihlLHIsYSwwKTp0aGlzLmZvckVhY2hJbnZlcnRlZElubmVyKGUscixhLDApfSwiZm9yRWFjaCIpLEZuLnByb3RvdHlwZS5tYXA9aShmdW5jdGlvbihlLHIsYSl7cj09PXZvaWQgMCYmKHI9MCksYT09PXZvaWQgMCYmKGE9dGhpcy5sZW5ndGgpO3ZhciBzPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24obixvKXtyZXR1cm4gcy5wdXNoKGUobixvKSl9LHIsYSksc30sIm1hcCIpLEZuLmZyb209aShmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEZuP2U6ZSYmZS5sZW5ndGg/bmV3IGNLcihlKTpGbi5lbXB0eX0sImZyb20iKTtjS3I9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoYSl7dC5jYWxsKHRoaXMpLHRoaXMudmFsdWVzPWF9aShlLCJMZWFmIiksdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHI9e2xlbmd0aDp7Y29uZmlndXJhYmxlOiEwfSxkZXB0aDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIGUucHJvdG90eXBlLmZsYXR0ZW49aShmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlc30sImZsYXR0ZW4iKSxlLnByb3RvdHlwZS5zbGljZUlubmVyPWkoZnVuY3Rpb24ocyxuKXtyZXR1cm4gcz09MCYmbj09dGhpcy5sZW5ndGg/dGhpczpuZXcgZSh0aGlzLnZhbHVlcy5zbGljZShzLG4pKX0sInNsaWNlSW5uZXIiKSxlLnByb3RvdHlwZS5nZXRJbm5lcj1pKGZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnZhbHVlc1tzXX0sImdldElubmVyIiksZS5wcm90b3R5cGUuZm9yRWFjaElubmVyPWkoZnVuY3Rpb24ocyxuLG8sbCl7Zm9yKHZhciBjPW47YzxvO2MrKylpZihzKHRoaXMudmFsdWVzW2NdLGwrYyk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbnZlcnRlZElubmVyPWkoZnVuY3Rpb24ocyxuLG8sbCl7Zm9yKHZhciBjPW4tMTtjPj1vO2MtLSlpZihzKHRoaXMudmFsdWVzW2NdLGwrYyk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbnZlcnRlZElubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1pKGZ1bmN0aW9uKHMpe2lmKHRoaXMubGVuZ3RoK3MubGVuZ3RoPD0kaGUpcmV0dXJuIG5ldyBlKHRoaXMudmFsdWVzLmNvbmNhdChzLmZsYXR0ZW4oKSkpfSwibGVhZkFwcGVuZCIpLGUucHJvdG90eXBlLmxlYWZQcmVwZW5kPWkoZnVuY3Rpb24ocyl7aWYodGhpcy5sZW5ndGgrcy5sZW5ndGg8PSRoZSlyZXR1cm4gbmV3IGUocy5mbGF0dGVuKCkuY29uY2F0KHRoaXMudmFsdWVzKSl9LCJsZWFmUHJlcGVuZCIpLHIubGVuZ3RoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGh9LHIuZGVwdGguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDB9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpLGV9KShGbik7Rm4uZW1wdHk9bmV3IGNLcihbXSk7eVJhPShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHIsYSl7dC5jYWxsKHRoaXMpLHRoaXMubGVmdD1yLHRoaXMucmlnaHQ9YSx0aGlzLmxlbmd0aD1yLmxlbmd0aCthLmxlbmd0aCx0aGlzLmRlcHRoPU1hdGgubWF4KHIuZGVwdGgsYS5kZXB0aCkrMX1yZXR1cm4gaShlLCJBcHBlbmQiKSx0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5mbGF0dGVuPWkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZWZ0LmZsYXR0ZW4oKS5jb25jYXQodGhpcy5yaWdodC5mbGF0dGVuKCkpfSwiZmxhdHRlbiIpLGUucHJvdG90eXBlLmdldElubmVyPWkoZnVuY3Rpb24oYSl7cmV0dXJuIGE8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuZ2V0KGEpOnRoaXMucmlnaHQuZ2V0KGEtdGhpcy5sZWZ0Lmxlbmd0aCl9LCJnZXRJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbm5lcj1pKGZ1bmN0aW9uKGEscyxuLG8pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYoczxsJiZ0aGlzLmxlZnQuZm9yRWFjaElubmVyKGEscyxNYXRoLm1pbihuLGwpLG8pPT09ITF8fG4+bCYmdGhpcy5yaWdodC5mb3JFYWNoSW5uZXIoYSxNYXRoLm1heChzLWwsMCksTWF0aC5taW4odGhpcy5sZW5ndGgsbiktbCxvK2wpPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW5uZXIiKSxlLnByb3RvdHlwZS5mb3JFYWNoSW52ZXJ0ZWRJbm5lcj1pKGZ1bmN0aW9uKGEscyxuLG8pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYocz5sJiZ0aGlzLnJpZ2h0LmZvckVhY2hJbnZlcnRlZElubmVyKGEscy1sLE1hdGgubWF4KG4sbCktbCxvK2wpPT09ITF8fG48bCYmdGhpcy5sZWZ0LmZvckVhY2hJbnZlcnRlZElubmVyKGEsTWF0aC5taW4ocyxsKSxuLG8pPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW52ZXJ0ZWRJbm5lciIpLGUucHJvdG90eXBlLnNsaWNlSW5uZXI9aShmdW5jdGlvbihhLHMpe2lmKGE9PTAmJnM9PXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBuPXRoaXMubGVmdC5sZW5ndGg7cmV0dXJuIHM8PW4/dGhpcy5sZWZ0LnNsaWNlKGEscyk6YT49bj90aGlzLnJpZ2h0LnNsaWNlKGEtbixzLW4pOnRoaXMubGVmdC5zbGljZShhLG4pLmFwcGVuZCh0aGlzLnJpZ2h0LnNsaWNlKDAscy1uKSl9LCJzbGljZUlubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1pKGZ1bmN0aW9uKGEpe3ZhciBzPXRoaXMucmlnaHQubGVhZkFwcGVuZChhKTtpZihzKXJldHVybiBuZXcgZSh0aGlzLmxlZnQscyl9LCJsZWFmQXBwZW5kIiksZS5wcm90b3R5cGUubGVhZlByZXBlbmQ9aShmdW5jdGlvbihhKXt2YXIgcz10aGlzLmxlZnQubGVhZlByZXBlbmQoYSk7aWYocylyZXR1cm4gbmV3IGUocyx0aGlzLnJpZ2h0KX0sImxlYWZQcmVwZW5kIiksZS5wcm90b3R5cGUuYXBwZW5kSW5uZXI9aShmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sZWZ0LmRlcHRoPj1NYXRoLm1heCh0aGlzLnJpZ2h0LmRlcHRoLGEuZGVwdGgpKzE/bmV3IGUodGhpcy5sZWZ0LG5ldyBlKHRoaXMucmlnaHQsYSkpOm5ldyBlKHRoaXMsYSl9LCJhcHBlbmRJbm5lciIpLGV9KShGbiksWTV0PUZufSk7ZnVuY3Rpb24ga1JhKHQsZSl7bGV0IHI7cmV0dXJuIHQuZm9yRWFjaCgoYSxzKT0+e2lmKGEuc2VsZWN0aW9uJiZlLS09PTApcmV0dXJuIHI9cywhMX0pLHQuc2xpY2Uocil9ZnVuY3Rpb24gTVJhKHQsZSxyLGEpe2xldCBzPXIuZ2V0TWV0YShiZCksbjtpZihzKXJldHVybiBzLmhpc3RvcnlTdGF0ZTtyLmdldE1ldGEoZktyKSYmKHQ9bmV3IGdkKHQuZG9uZSx0LnVuZG9uZSxudWxsLDAsLTEpKTtsZXQgbz1yLmdldE1ldGEoImFwcGVuZGVkVHJhbnNhY3Rpb24iKTtpZihyLnN0ZXBzLmxlbmd0aD09MClyZXR1cm4gdDtpZihvJiZvLmdldE1ldGEoYmQpKXJldHVybiBvLmdldE1ldGEoYmQpLnJlZG8/bmV3IGdkKHQuZG9uZS5hZGRUcmFuc2Zvcm0ocix2b2lkIDAsYSxBaGUoZSkpLHQudW5kb25lLHVLcihyLm1hcHBpbmcubWFwcyksdC5wcmV2VGltZSx0LnByZXZDb21wb3NpdGlvbik6bmV3IGdkKHQuZG9uZSx0LnVuZG9uZS5hZGRUcmFuc2Zvcm0ocix2b2lkIDAsYSxBaGUoZSkpLG51bGwsdC5wcmV2VGltZSx0LnByZXZDb21wb3NpdGlvbik7aWYoci5nZXRNZXRhKCJhZGRUb0hpc3RvcnkiKSE9PSExJiYhKG8mJm8uZ2V0TWV0YSgiYWRkVG9IaXN0b3J5Iik9PT0hMSkpe2xldCBsPXIuZ2V0TWV0YSgiY29tcG9zaXRpb24iKSxjPXQucHJldlRpbWU9PTB8fCFvJiZ0LnByZXZDb21wb3NpdGlvbiE9bCYmKHQucHJldlRpbWU8KHIudGltZXx8MCktYS5uZXdHcm91cERlbGF5fHwhQ1JhKHIsdC5wcmV2UmFuZ2VzKSksZD1vP0s1dCh0LnByZXZSYW5nZXMsci5tYXBwaW5nKTp1S3Ioci5tYXBwaW5nLm1hcHMpO3JldHVybiBuZXcgZ2QodC5kb25lLmFkZFRyYW5zZm9ybShyLGM/ZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKTp2b2lkIDAsYSxBaGUoZSkpLFE5LmVtcHR5LGQsci50aW1lLGw/P3QucHJldkNvbXBvc2l0aW9uKX1lbHNlIHJldHVybihuPXIuZ2V0TWV0YSgicmViYXNlZCIpKT9uZXcgZ2QodC5kb25lLnJlYmFzZWQocixuKSx0LnVuZG9uZS5yZWJhc2VkKHIsbiksSzV0KHQucHJldlJhbmdlcyxyLm1hcHBpbmcpLHQucHJldlRpbWUsdC5wcmV2Q29tcG9zaXRpb24pOm5ldyBnZCh0LmRvbmUuYWRkTWFwcyhyLm1hcHBpbmcubWFwcyksdC51bmRvbmUuYWRkTWFwcyhyLm1hcHBpbmcubWFwcyksSzV0KHQucHJldlJhbmdlcyxyLm1hcHBpbmcpLHQucHJldlRpbWUsdC5wcmV2Q29tcG9zaXRpb24pfWZ1bmN0aW9uIENSYSh0LGUpe2lmKCFlKXJldHVybiExO2lmKCF0LmRvY0NoYW5nZWQpcmV0dXJuITA7bGV0IHI9ITE7cmV0dXJuIHQubWFwcGluZy5tYXBzWzBdLmZvckVhY2goKGEscyk9Pntmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rPTIpYTw9ZVtuKzFdJiZzPj1lW25dJiYocj0hMCl9KSxyfWZ1bmN0aW9uIHVLcih0KXtsZXQgZT1bXTtmb3IobGV0IHI9dC5sZW5ndGgtMTtyPj0wJiZlLmxlbmd0aD09MDtyLS0pdFtyXS5mb3JFYWNoKChhLHMsbixvKT0+ZS5wdXNoKG4sbykpO3JldHVybiBlfWZ1bmN0aW9uIEs1dCh0LGUpe2lmKCF0KXJldHVybiBudWxsO2xldCByPVtdO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSs9Mil7bGV0IHM9ZS5tYXAodFthXSwxKSxuPWUubWFwKHRbYSsxXSwtMSk7czw9biYmci5wdXNoKHMsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gelJhKHQsZSxyKXtsZXQgYT1BaGUoZSkscz1iZC5nZXQoZSkuc3BlYy5jb25maWcsbj0ocj90LnVuZG9uZTp0LmRvbmUpLnBvcEV2ZW50KGUsYSk7aWYoIW4pcmV0dXJuIG51bGw7bGV0IG89bi5zZWxlY3Rpb24ucmVzb2x2ZShuLnRyYW5zZm9ybS5kb2MpLGw9KHI/dC5kb25lOnQudW5kb25lKS5hZGRUcmFuc2Zvcm0obi50cmFuc2Zvcm0sZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKSxzLGEpLGM9bmV3IGdkKHI/bDpuLnJlbWFpbmluZyxyP24ucmVtYWluaW5nOmwsbnVsbCwwLC0xKTtyZXR1cm4gbi50cmFuc2Zvcm0uc2V0U2VsZWN0aW9uKG8pLnNldE1ldGEoYmQse3JlZG86cixoaXN0b3J5U3RhdGU6Y30pfWZ1bmN0aW9uIEFoZSh0KXtsZXQgZT10LnBsdWdpbnM7aWYocEtyIT1lKXtaNXQ9ITEscEtyPWU7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXS5zcGVjLmhpc3RvcnlQcmVzZXJ2ZUl0ZW1zKXtaNXQ9ITA7YnJlYWt9fXJldHVybiBaNXR9ZnVuY3Rpb24gX1JhKHQpe3JldHVybiB0LnNldE1ldGEoZktyLCEwKX1mdW5jdGlvbiBRNXQodD17fSl7cmV0dXJuIHQ9e2RlcHRoOnQuZGVwdGh8fDEwMCxuZXdHcm91cERlbGF5OnQubmV3R3JvdXBEZWxheXx8NTAwfSxuZXcgUWEoe2tleTpiZCxzdGF0ZTp7aW5pdCgpe3JldHVybiBuZXcgZ2QoUTkuZW1wdHksUTkuZW1wdHksbnVsbCwwLC0xKX0sYXBwbHkoZSxyLGEpe3JldHVybiBNUmEocixhLGUsdCl9fSxjb25maWc6dCxwcm9wczp7aGFuZGxlRE9NRXZlbnRzOntiZWZvcmVpbnB1dChlLHIpe2xldCBhPXIuaW5wdXRUeXBlLHM9YT09Imhpc3RvcnlVbmRvIj9JaGU6YT09Imhpc3RvcnlSZWRvIj9QaGU6bnVsbDtyZXR1cm4hc3x8IWUuZWRpdGFibGU/ITE6KHIucHJldmVudERlZmF1bHQoKSxzKGUuc3RhdGUsZS5kaXNwYXRjaCkpfX19fSl9ZnVuY3Rpb24gRWhlKHQsZSl7cmV0dXJuKHIsYSk9PntsZXQgcz1iZC5nZXRTdGF0ZShyKTtpZighc3x8KHQ/cy51bmRvbmU6cy5kb25lKS5ldmVudENvdW50PT0wKXJldHVybiExO2lmKGEpe2xldCBuPXpSYShzLHIsdCk7biYmYShlP24uc2Nyb2xsSW50b1ZpZXcoKTpuKX1yZXR1cm4hMH19ZnVuY3Rpb24gRFJhKHQpe2xldCBlPWJkLmdldFN0YXRlKHQpO3JldHVybiBlP2UuZG9uZS5ldmVudENvdW50OjB9ZnVuY3Rpb24gJFJhKHQpe2xldCBlPWJkLmdldFN0YXRlKHQpO3JldHVybiBlP2UudW5kb25lLmV2ZW50Q291bnQ6MH1mdW5jdGlvbiBBUmEodCl7cmV0dXJuIHQuZ2V0TWV0YShiZCkhPW51bGx9dmFyIHdSYSxROSxtZCxnZCxTUmEsWjV0LHBLcixiZCxmS3IsSWhlLFBoZSxUUmEsTFJhLGhLcj11KCgpPT57ZEtyKCk7V3AoKTthMygpO3dSYT01MDAsUTk9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJCcmFuY2giKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuaXRlbXM9ZSx0aGlzLmV2ZW50Q291bnQ9cn1wb3BFdmVudChlLHIpe2lmKHRoaXMuZXZlbnRDb3VudD09MClyZXR1cm4gbnVsbDtsZXQgYT10aGlzLml0ZW1zLmxlbmd0aDtmb3IoOzthLS0paWYodGhpcy5pdGVtcy5nZXQoYS0xKS5zZWxlY3Rpb24pey0tYTticmVha31sZXQgcyxuO3ImJihzPXRoaXMucmVtYXBwaW5nKGEsdGhpcy5pdGVtcy5sZW5ndGgpLG49cy5tYXBzLmxlbmd0aCk7bGV0IG89ZS50cixsLGMsZD1bXSxmPVtdO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKHAsaCk9PntpZighcC5zdGVwKXtzfHwocz10aGlzLnJlbWFwcGluZyhhLGgrMSksbj1zLm1hcHMubGVuZ3RoKSxuLS0sZi5wdXNoKHApO3JldHVybn1pZihzKXtmLnB1c2gobmV3IG1kKHAubWFwKSk7bGV0IG09cC5zdGVwLm1hcChzLnNsaWNlKG4pKSx2O20mJm8ubWF5YmVTdGVwKG0pLmRvYyYmKHY9by5tYXBwaW5nLm1hcHNbby5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLGQucHVzaChuZXcgbWQodix2b2lkIDAsdm9pZCAwLGQubGVuZ3RoK2YubGVuZ3RoKSkpLG4tLSx2JiZzLmFwcGVuZE1hcCh2LG4pfWVsc2Ugby5tYXliZVN0ZXAocC5zdGVwKTtpZihwLnNlbGVjdGlvbilyZXR1cm4gbD1zP3Auc2VsZWN0aW9uLm1hcChzLnNsaWNlKG4pKTpwLnNlbGVjdGlvbixjPW5ldyB0KHRoaXMuaXRlbXMuc2xpY2UoMCxhKS5hcHBlbmQoZi5yZXZlcnNlKCkuY29uY2F0KGQpKSx0aGlzLmV2ZW50Q291bnQtMSksITF9LHRoaXMuaXRlbXMubGVuZ3RoLDApLHtyZW1haW5pbmc6Yyx0cmFuc2Zvcm06byxzZWxlY3Rpb246bH19YWRkVHJhbnNmb3JtKGUscixhLHMpe2xldCBuPVtdLG89dGhpcy5ldmVudENvdW50LGw9dGhpcy5pdGVtcyxjPSFzJiZsLmxlbmd0aD9sLmdldChsLmxlbmd0aC0xKTpudWxsO2ZvcihsZXQgZj0wO2Y8ZS5zdGVwcy5sZW5ndGg7ZisrKXtsZXQgcD1lLnN0ZXBzW2ZdLmludmVydChlLmRvY3NbZl0pLGg9bmV3IG1kKGUubWFwcGluZy5tYXBzW2ZdLHAsciksbTsobT1jJiZjLm1lcmdlKGgpKSYmKGg9bSxmP24ucG9wKCk6bD1sLnNsaWNlKDAsbC5sZW5ndGgtMSkpLG4ucHVzaChoKSxyJiYobysrLHI9dm9pZCAwKSxzfHwoYz1oKX1sZXQgZD1vLWEuZGVwdGg7cmV0dXJuIGQ+U1JhJiYobD1rUmEobCxkKSxvLT1kKSxuZXcgdChsLmFwcGVuZChuKSxvKX1yZW1hcHBpbmcoZSxyKXtsZXQgYT1uZXcgUXk7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaCgocyxuKT0+e2xldCBvPXMubWlycm9yT2Zmc2V0IT1udWxsJiZuLXMubWlycm9yT2Zmc2V0Pj1lP2EubWFwcy5sZW5ndGgtcy5taXJyb3JPZmZzZXQ6dm9pZCAwO2EuYXBwZW5kTWFwKHMubWFwLG8pfSxlLHIpLGF9YWRkTWFwcyhlKXtyZXR1cm4gdGhpcy5ldmVudENvdW50PT0wP3RoaXM6bmV3IHQodGhpcy5pdGVtcy5hcHBlbmQoZS5tYXAocj0+bmV3IG1kKHIpKSksdGhpcy5ldmVudENvdW50KX1yZWJhc2VkKGUscil7aWYoIXRoaXMuZXZlbnRDb3VudClyZXR1cm4gdGhpcztsZXQgYT1bXSxzPU1hdGgubWF4KDAsdGhpcy5pdGVtcy5sZW5ndGgtciksbj1lLm1hcHBpbmcsbz1lLnN0ZXBzLmxlbmd0aCxsPXRoaXMuZXZlbnRDb3VudDt0aGlzLml0ZW1zLmZvckVhY2goaD0+e2guc2VsZWN0aW9uJiZsLS19LHMpO2xldCBjPXI7dGhpcy5pdGVtcy5mb3JFYWNoKGg9PntsZXQgbT1uLmdldE1pcnJvcigtLWMpO2lmKG09PW51bGwpcmV0dXJuO289TWF0aC5taW4obyxtKTtsZXQgdj1uLm1hcHNbbV07aWYoaC5zdGVwKXtsZXQgYj1lLnN0ZXBzW21dLmludmVydChlLmRvY3NbbV0pLGc9aC5zZWxlY3Rpb24mJmguc2VsZWN0aW9uLm1hcChuLnNsaWNlKGMrMSxtKSk7ZyYmbCsrLGEucHVzaChuZXcgbWQodixiLGcpKX1lbHNlIGEucHVzaChuZXcgbWQodikpfSxzKTtsZXQgZD1bXTtmb3IobGV0IGg9cjtoPG87aCsrKWQucHVzaChuZXcgbWQobi5tYXBzW2hdKSk7bGV0IGY9dGhpcy5pdGVtcy5zbGljZSgwLHMpLmFwcGVuZChkKS5hcHBlbmQoYSkscD1uZXcgdChmLGwpO3JldHVybiBwLmVtcHR5SXRlbUNvdW50KCk+d1JhJiYocD1wLmNvbXByZXNzKHRoaXMuaXRlbXMubGVuZ3RoLWEubGVuZ3RoKSkscH1lbXB0eUl0ZW1Db3VudCgpe2xldCBlPTA7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaChyPT57ci5zdGVwfHxlKyt9KSxlfWNvbXByZXNzKGU9dGhpcy5pdGVtcy5sZW5ndGgpe2xldCByPXRoaXMucmVtYXBwaW5nKDAsZSksYT1yLm1hcHMubGVuZ3RoLHM9W10sbj0wO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKG8sbCk9PntpZihsPj1lKXMucHVzaChvKSxvLnNlbGVjdGlvbiYmbisrO2Vsc2UgaWYoby5zdGVwKXtsZXQgYz1vLnN0ZXAubWFwKHIuc2xpY2UoYSkpLGQ9YyYmYy5nZXRNYXAoKTtpZihhLS0sZCYmci5hcHBlbmRNYXAoZCxhKSxjKXtsZXQgZj1vLnNlbGVjdGlvbiYmby5zZWxlY3Rpb24ubWFwKHIuc2xpY2UoYSkpO2YmJm4rKztsZXQgcD1uZXcgbWQoZC5pbnZlcnQoKSxjLGYpLGgsbT1zLmxlbmd0aC0xOyhoPXMubGVuZ3RoJiZzW21dLm1lcmdlKHApKT9zW21dPWg6cy5wdXNoKHApfX1lbHNlIG8ubWFwJiZhLS19LHRoaXMuaXRlbXMubGVuZ3RoLDApLG5ldyB0KFk1dC5mcm9tKHMucmV2ZXJzZSgpKSxuKX19O1E5LmVtcHR5PW5ldyBROShZNXQuZW1wdHksMCk7aShrUmEsImN1dE9mZkV2ZW50cyIpO21kPWNsYXNzIHR7c3RhdGlje2kodGhpcywiSXRlbSIpfWNvbnN0cnVjdG9yKGUscixhLHMpe3RoaXMubWFwPWUsdGhpcy5zdGVwPXIsdGhpcy5zZWxlY3Rpb249YSx0aGlzLm1pcnJvck9mZnNldD1zfW1lcmdlKGUpe2lmKHRoaXMuc3RlcCYmZS5zdGVwJiYhZS5zZWxlY3Rpb24pe2xldCByPWUuc3RlcC5tZXJnZSh0aGlzLnN0ZXApO2lmKHIpcmV0dXJuIG5ldyB0KHIuZ2V0TWFwKCkuaW52ZXJ0KCkscix0aGlzLnNlbGVjdGlvbil9fX0sZ2Q9Y2xhc3N7c3RhdGlje2kodGhpcywiSGlzdG9yeVN0YXRlIil9Y29uc3RydWN0b3IoZSxyLGEscyxuKXt0aGlzLmRvbmU9ZSx0aGlzLnVuZG9uZT1yLHRoaXMucHJldlJhbmdlcz1hLHRoaXMucHJldlRpbWU9cyx0aGlzLnByZXZDb21wb3NpdGlvbj1ufX0sU1JhPTIwO2koTVJhLCJhcHBseVRyYW5zYWN0aW9uIik7aShDUmEsImlzQWRqYWNlbnRUbyIpO2kodUtyLCJyYW5nZXNGb3IiKTtpKEs1dCwibWFwUmFuZ2VzIik7aSh6UmEsImhpc3RUcmFuc2FjdGlvbiIpO1o1dD0hMSxwS3I9bnVsbDtpKEFoZSwibXVzdFByZXNlcnZlSXRlbXMiKTtpKF9SYSwiY2xvc2VIaXN0b3J5Iik7YmQ9bmV3IExzKCJoaXN0b3J5IiksZktyPW5ldyBMcygiY2xvc2VIaXN0b3J5Iik7aShRNXQsImhpc3RvcnkiKTtpKEVoZSwiYnVpbGRDb21tYW5kIik7SWhlPUVoZSghMSwhMCksUGhlPUVoZSghMCwhMCksVFJhPUVoZSghMSwhMSksTFJhPUVoZSghMCwhMSk7aShEUmEsInVuZG9EZXB0aCIpO2koJFJhLCJyZWRvRGVwdGgiKTtpKEFSYSwiaXNIaXN0b3J5VHJhbnNhY3Rpb24iKX0pO3ZhciBtS3I9dSgoKT0+e2hLcigpfSk7dmFyIE5oZSxnS3I9dSgoKT0+e2hpKCk7bUtyKCk7TmhlPWtpLmNyZWF0ZSh7bmFtZToiaGlzdG9yeSIsYWRkT3B0aW9ucygpe3JldHVybntkZXB0aDoxMDAsbmV3R3JvdXBEZWxheTo1MDB9fSxhZGRDb21tYW5kcygpe3JldHVybnt1bmRvOmkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PkloZSh0LGUpLCJ1bmRvIikscmVkbzppKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5QaGUodCxlKSwicmVkbyIpfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW1E1dCh0aGlzLm9wdGlvbnMpXX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC16IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy51bmRvKCksIk1vZC16IiksIlNoaWZ0LU1vZC16IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC16IiksIk1vZC15IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIk1vZC15IiksIk1vZC1cdTA0NEYiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnVuZG8oKSwiTW9kLVx1MDQ0RiIpLCJTaGlmdC1Nb2QtXHUwNDRGIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC1cdTA0NEYiKX19fSl9KTt2YXIgT2hlLGJLcj11KCgpPT57aGkoKTtQdGUoKTtPaGU9dGkuY3JlYXRlKHtuYW1lOiJob3Jpem9udGFsUnVsZSIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LGdyb3VwOiJibG9jayIscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImhyIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJociIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0SG9yaXpvbnRhbFJ1bGU6aSgoKT0+KHtjaGFpbjp0LHN0YXRlOmV9KT0+e2lmKCF2aGUoZSxlLnNjaGVtYS5ub2Rlc1t0aGlzLm5hbWVdKSlyZXR1cm4hMTtsZXR7c2VsZWN0aW9uOnJ9PWUseyRmcm9tOmEsJHRvOnN9PXIsbj10KCk7cmV0dXJuIGEucGFyZW50T2Zmc2V0PT09MD9uLmluc2VydENvbnRlbnRBdCh7ZnJvbTpNYXRoLm1heChhLnBvcy0xLDApLHRvOnMucG9zfSx7dHlwZTp0aGlzLm5hbWV9KTpiaGUocik/bi5pbnNlcnRDb250ZW50QXQocy5wb3Mse3R5cGU6dGhpcy5uYW1lfSk6bi5pbnNlcnRDb250ZW50KHt0eXBlOnRoaXMubmFtZX0pLG4uY29tbWFuZCgoe3RyOm8sZGlzcGF0Y2g6bH0pPT57dmFyIGM7aWYobCl7bGV0eyR0bzpkfT1vLnNlbGVjdGlvbixmPWQuZW5kKCk7aWYoZC5ub2RlQWZ0ZXIpZC5ub2RlQWZ0ZXIuaXNUZXh0YmxvY2s/by5zZXRTZWxlY3Rpb24oZXIuY3JlYXRlKG8uZG9jLGQucG9zKzEpKTpkLm5vZGVBZnRlci5pc0Jsb2NrP28uc2V0U2VsZWN0aW9uKEl0LmNyZWF0ZShvLmRvYyxkLnBvcykpOm8uc2V0U2VsZWN0aW9uKGVyLmNyZWF0ZShvLmRvYyxkLnBvcykpO2Vsc2V7bGV0IHA9KGM9ZC5wYXJlbnQudHlwZS5jb250ZW50TWF0Y2guZGVmYXVsdFR5cGUpPT09bnVsbHx8Yz09PXZvaWQgMD92b2lkIDA6Yy5jcmVhdGUoKTtwJiYoby5pbnNlcnQoZixwKSxvLnNldFNlbGVjdGlvbihlci5jcmVhdGUoby5kb2MsZisxKSkpfW8uc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH0pLnJ1bigpfSwic2V0SG9yaXpvbnRhbFJ1bGUiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5beGhlKHtmaW5kOi9eKD86LS0tfOKAlC18X19fXHN8XCpcKlwqXHMpJC8sdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgeEtyLHZLcix5S3Isd0tyLFJoZSxrS3I9dSgoKT0+e2hpKCk7eEtyPS8oPzpefFxzKShcKig/IVxzK1wqKSgoPzpbXipdKykpXCooPyFccytcKikpJC8sdktyPS8oPzpefFxzKShcKig/IVxzK1wqKSgoPzpbXipdKykpXCooPyFccytcKikpL2cseUtyPS8oPzpefFxzKShfKD8hXHMrXykoKD86W15fXSspKV8oPyFccytfKSkkLyx3S3I9Lyg/Ol58XHMpKF8oPyFccytfKSgoPzpbXl9dKykpXyg/IVxzK18pKS9nLFJoZT1Pbi5jcmVhdGUoe25hbWU6Iml0YWxpYyIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJlbSJ9LHt0YWc6ImkiLGdldEF0dHJzOmkodD0+dC5zdHlsZS5mb250U3R5bGUhPT0ibm9ybWFsIiYmbnVsbCwiZ2V0QXR0cnMiKX0se3N0eWxlOiJmb250LXN0eWxlPW5vcm1hbCIsY2xlYXJNYXJrOmkodD0+dC50eXBlLm5hbWU9PT10aGlzLm5hbWUsImNsZWFyTWFyayIpfSx7c3R5bGU6ImZvbnQtc3R5bGU9aXRhbGljIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJlbSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRJdGFsaWM6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQuc2V0TWFyayh0aGlzLm5hbWUpLCJzZXRJdGFsaWMiKSx0b2dnbGVJdGFsaWM6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQudG9nZ2xlTWFyayh0aGlzLm5hbWUpLCJ0b2dnbGVJdGFsaWMiKSx1bnNldEl0YWxpYzppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRJdGFsaWMiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtaSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlSXRhbGljKCksIk1vZC1pIiksIk1vZC1JIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVJdGFsaWMoKSwiTW9kLUkiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bYTIoe2ZpbmQ6eEtyLHR5cGU6dGhpcy50eXBlfSksYTIoe2ZpbmQ6eUtyLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW0kxKHtmaW5kOnZLcix0eXBlOnRoaXMudHlwZX0pLEkxKHtmaW5kOndLcix0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBGaGUsU0tyPXUoKCk9PntoaSgpO0ZoZT10aS5jcmVhdGUoe25hbWU6Imxpc3RJdGVtIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9LGJ1bGxldExpc3RUeXBlTmFtZToiYnVsbGV0TGlzdCIsb3JkZXJlZExpc3RUeXBlTmFtZToib3JkZXJlZExpc3QifX0sY29udGVudDoicGFyYWdyYXBoIGJsb2NrKiIsZGVmaW5pbmc6ITAscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImxpIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJsaSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdfSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybntFbnRlcjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zcGxpdExpc3RJdGVtKHRoaXMubmFtZSksIkVudGVyIiksVGFiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNpbmtMaXN0SXRlbSh0aGlzLm5hbWUpLCJUYWIiKSwiU2hpZnQtVGFiIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5saWZ0TGlzdEl0ZW0odGhpcy5uYW1lKSwiU2hpZnQtVGFiIil9fX0pfSk7dmFyIEVSYSxNS3IsWDV0LEJoZSxDS3I9dSgoKT0+e2hpKCk7RVJhPSJsaXN0SXRlbSIsTUtyPSJ0ZXh0U3R5bGUiLFg1dD0vXihcZCspXC5ccyQvLEJoZT10aS5jcmVhdGUoe25hbWU6Im9yZGVyZWRMaXN0IixhZGRPcHRpb25zKCl7cmV0dXJue2l0ZW1UeXBlTmFtZToibGlzdEl0ZW0iLEhUTUxBdHRyaWJ1dGVzOnt9LGtlZXBNYXJrczohMSxrZWVwQXR0cmlidXRlczohMX19LGdyb3VwOiJibG9jayBsaXN0Iixjb250ZW50KCl7cmV0dXJuYCR7dGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZX0rYH0sYWRkQXR0cmlidXRlcygpe3JldHVybntzdGFydDp7ZGVmYXVsdDoxLHBhcnNlSFRNTDppKHQ9PnQuaGFzQXR0cmlidXRlKCJzdGFydCIpP3BhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJzdGFydCIpfHwiIiwxMCk6MSwicGFyc2VIVE1MIil9LHR5cGU6e2RlZmF1bHQ6bnVsbCxwYXJzZUhUTUw6aSh0PT50LmdldEF0dHJpYnV0ZSgidHlwZSIpLCJwYXJzZUhUTUwiKX19fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoib2wifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnR9KXtsZXR7c3RhcnQ6ZSwuLi5yfT10O3JldHVybiBlPT09MT9bIm9sIixzYSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsciksMF06WyJvbCIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybnt0b2dnbGVPcmRlcmVkTGlzdDppKCgpPT4oe2NvbW1hbmRzOnQsY2hhaW46ZX0pPT50aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXM/ZSgpLnRvZ2dsZUxpc3QodGhpcy5uYW1lLHRoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWUsdGhpcy5vcHRpb25zLmtlZXBNYXJrcykudXBkYXRlQXR0cmlidXRlcyhFUmEsdGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhNS3IpKS5ydW4oKTp0LnRvZ2dsZUxpc3QodGhpcy5uYW1lLHRoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWUsdGhpcy5vcHRpb25zLmtlZXBNYXJrcyksInRvZ2dsZU9yZGVyZWRMaXN0Iil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLVNoaWZ0LTciOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZU9yZGVyZWRMaXN0KCksIk1vZC1TaGlmdC03Iil9fSxhZGRJbnB1dFJ1bGVzKCl7bGV0IHQ9aGQoe2ZpbmQ6WDV0LHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6aShlPT4oe3N0YXJ0OitlWzFdfSksImdldEF0dHJpYnV0ZXMiKSxqb2luUHJlZGljYXRlOmkoKGUscik9PnIuY2hpbGRDb3VudCtyLmF0dHJzLnN0YXJ0PT09K2VbMV0sImpvaW5QcmVkaWNhdGUiKX0pO3JldHVybih0aGlzLm9wdGlvbnMua2VlcE1hcmtzfHx0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMpJiYodD1oZCh7ZmluZDpYNXQsdHlwZTp0aGlzLnR5cGUsa2VlcE1hcmtzOnRoaXMub3B0aW9ucy5rZWVwTWFya3Msa2VlcEF0dHJpYnV0ZXM6dGhpcy5vcHRpb25zLmtlZXBBdHRyaWJ1dGVzLGdldEF0dHJpYnV0ZXM6aShlPT4oe3N0YXJ0OitlWzFdLC4uLnRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoTUtyKX0pLCJnZXRBdHRyaWJ1dGVzIiksam9pblByZWRpY2F0ZTppKChlLHIpPT5yLmNoaWxkQ291bnQrci5hdHRycy5zdGFydD09PStlWzFdLCJqb2luUHJlZGljYXRlIiksZWRpdG9yOnRoaXMuZWRpdG9yfSkpLFt0XX19KX0pO3ZhciBIaGUsektyPXUoKCk9PntoaSgpO0hoZT10aS5jcmVhdGUoe25hbWU6InBhcmFncmFwaCIscHJpb3JpdHk6MWUzLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxncm91cDoiYmxvY2siLGNvbnRlbnQ6ImlubGluZSoiLHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJwIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJwIixzYSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsdCksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFBhcmFncmFwaDppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC5zZXROb2RlKHRoaXMubmFtZSksInNldFBhcmFncmFwaCIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1BbHQtMCI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0UGFyYWdyYXBoKCksIk1vZC1BbHQtMCIpfX19KX0pO3ZhciBfS3IsVEtyLHFoZSxMS3I9dSgoKT0+e2hpKCk7X0tyPS8oPzpefFxzKSh+fig/IVxzK35+KSgoPzpbXn5dKykpfn4oPyFccyt+fikpJC8sVEtyPS8oPzpefFxzKSh+fig/IVxzK35+KSgoPzpbXn5dKykpfn4oPyFccyt+fikpL2cscWhlPU9uLmNyZWF0ZSh7bmFtZToic3RyaWtlIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InMifSx7dGFnOiJkZWwifSx7dGFnOiJzdHJpa2UifSx7c3R5bGU6InRleHQtZGVjb3JhdGlvbiIsY29uc3VtaW5nOiExLGdldEF0dHJzOmkodD0+dC5pbmNsdWRlcygibGluZS10aHJvdWdoIik/e306ITEsImdldEF0dHJzIil9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVyblsicyIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRTdHJpa2U6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQuc2V0TWFyayh0aGlzLm5hbWUpLCJzZXRTdHJpa2UiKSx0b2dnbGVTdHJpa2U6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQudG9nZ2xlTWFyayh0aGlzLm5hbWUpLCJ0b2dnbGVTdHJpa2UiKSx1bnNldFN0cmlrZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRTdHJpa2UiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtcyI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlU3RyaWtlKCksIk1vZC1TaGlmdC1zIil9fSxhZGRJbnB1dFJ1bGVzKCl7cmV0dXJuW2EyKHtmaW5kOl9Lcix0eXBlOnRoaXMudHlwZX0pXX0sYWRkUGFzdGVSdWxlcygpe3JldHVybltJMSh7ZmluZDpUS3IsdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgVmhlLERLcj11KCgpPT57aGkoKTtWaGU9dGkuY3JlYXRlKHtuYW1lOiJ0ZXh0Iixncm91cDoiaW5saW5lIn0pfSk7dmFyICRLcj17fTtWZSgkS3Ise1N0YXJ0ZXJLaXQ6KCk9Pko1dCxkZWZhdWx0OigpPT5KNXR9KTt2YXIgSjV0LEFLcj11KCgpPT57aGkoKTtGWXIoKTtqWXIoKTtXWXIoKTtLWXIoKTtYWXIoKTtKWXIoKTtyS3IoKTtuS3IoKTtvS3IoKTtsS3IoKTtnS3IoKTtiS3IoKTtrS3IoKTtTS3IoKTtDS3IoKTt6S3IoKTtMS3IoKTtES3IoKTtKNXQ9a2kuY3JlYXRlKHtuYW1lOiJzdGFydGVyS2l0IixhZGRFeHRlbnNpb25zKCl7bGV0IHQ9W107cmV0dXJuIHRoaXMub3B0aW9ucy5ib2xkIT09ITEmJnQucHVzaCh3aGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5ib2xkKSksdGhpcy5vcHRpb25zLmJsb2NrcXVvdGUhPT0hMSYmdC5wdXNoKHloZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmJsb2NrcXVvdGUpKSx0aGlzLm9wdGlvbnMuYnVsbGV0TGlzdCE9PSExJiZ0LnB1c2goa2hlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuYnVsbGV0TGlzdCkpLHRoaXMub3B0aW9ucy5jb2RlIT09ITEmJnQucHVzaChTaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5jb2RlKSksdGhpcy5vcHRpb25zLmNvZGVCbG9jayE9PSExJiZ0LnB1c2goTWhlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuY29kZUJsb2NrKSksdGhpcy5vcHRpb25zLmRvY3VtZW50IT09ITEmJnQucHVzaChDaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5kb2N1bWVudCkpLHRoaXMub3B0aW9ucy5kcm9wY3Vyc29yIT09ITEmJnQucHVzaCh6aGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5kcm9wY3Vyc29yKSksdGhpcy5vcHRpb25zLmdhcGN1cnNvciE9PSExJiZ0LnB1c2goVGhlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuZ2FwY3Vyc29yKSksdGhpcy5vcHRpb25zLmhhcmRCcmVhayE9PSExJiZ0LnB1c2goTGhlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaGFyZEJyZWFrKSksdGhpcy5vcHRpb25zLmhlYWRpbmchPT0hMSYmdC5wdXNoKERoZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmhlYWRpbmcpKSx0aGlzLm9wdGlvbnMuaGlzdG9yeSE9PSExJiZ0LnB1c2goTmhlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaGlzdG9yeSkpLHRoaXMub3B0aW9ucy5ob3Jpem9udGFsUnVsZSE9PSExJiZ0LnB1c2goT2hlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaG9yaXpvbnRhbFJ1bGUpKSx0aGlzLm9wdGlvbnMuaXRhbGljIT09ITEmJnQucHVzaChSaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5pdGFsaWMpKSx0aGlzLm9wdGlvbnMubGlzdEl0ZW0hPT0hMSYmdC5wdXNoKEZoZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmxpc3RJdGVtKSksdGhpcy5vcHRpb25zLm9yZGVyZWRMaXN0IT09ITEmJnQucHVzaChCaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5vcmRlcmVkTGlzdCkpLHRoaXMub3B0aW9ucy5wYXJhZ3JhcGghPT0hMSYmdC5wdXNoKEhoZS5jb25maWd1cmUodGhpcy5vcHRpb25zLnBhcmFncmFwaCkpLHRoaXMub3B0aW9ucy5zdHJpa2UhPT0hMSYmdC5wdXNoKHFoZS5jb25maWd1cmUodGhpcy5vcHRpb25zLnN0cmlrZSkpLHRoaXMub3B0aW9ucy50ZXh0IT09ITEmJnQucHVzaChWaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy50ZXh0KSksdH19KX0pO3ZhciBFS3I9e307VmUoRUtyLHtVbmRlcmxpbmU6KCk9PmU4dCxkZWZhdWx0OigpPT5lOHR9KTt2YXIgZTh0LElLcj11KCgpPT57aGkoKTtlOHQ9T24uY3JlYXRlKHtuYW1lOiJ1bmRlcmxpbmUiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoidSJ9LHtzdHlsZToidGV4dC1kZWNvcmF0aW9uIixjb25zdW1pbmc6ITEsZ2V0QXR0cnM6aSh0PT50LmluY2x1ZGVzKCJ1bmRlcmxpbmUiKT97fTohMSwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJ1IixzYSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsdCksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFVuZGVybGluZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC5zZXRNYXJrKHRoaXMubmFtZSksInNldFVuZGVybGluZSIpLHRvZ2dsZVVuZGVybGluZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZVVuZGVybGluZSIpLHVuc2V0VW5kZXJsaW5lOmkoKCk9Pih7Y29tbWFuZHM6dH0pPT50LnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldFVuZGVybGluZSIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC11IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVVbmRlcmxpbmUoKSwiTW9kLXUiKSwiTW9kLVUiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZVVuZGVybGluZSgpLCJNb2QtVSIpfX19KX0pO3ZhciBQS3I9e307VmUoUEtyLHtUZXh0QWxpZ246KCk9PnQ4dCxkZWZhdWx0OigpPT50OHR9KTt2YXIgdDh0LE5Lcj11KCgpPT57aGkoKTt0OHQ9a2kuY3JlYXRlKHtuYW1lOiJ0ZXh0QWxpZ24iLGFkZE9wdGlvbnMoKXtyZXR1cm57dHlwZXM6W10sYWxpZ25tZW50czpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCIsImp1c3RpZnkiXSxkZWZhdWx0QWxpZ25tZW50Om51bGx9fSxhZGRHbG9iYWxBdHRyaWJ1dGVzKCl7cmV0dXJuW3t0eXBlczp0aGlzLm9wdGlvbnMudHlwZXMsYXR0cmlidXRlczp7dGV4dEFsaWduOntkZWZhdWx0OnRoaXMub3B0aW9ucy5kZWZhdWx0QWxpZ25tZW50LHBhcnNlSFRNTDppKHQ9PntsZXQgZT10LnN0eWxlLnRleHRBbGlnbjtyZXR1cm4gdGhpcy5vcHRpb25zLmFsaWdubWVudHMuaW5jbHVkZXMoZSk/ZTp0aGlzLm9wdGlvbnMuZGVmYXVsdEFsaWdubWVudH0sInBhcnNlSFRNTCIpLHJlbmRlckhUTUw6aSh0PT50LnRleHRBbGlnbj97c3R5bGU6YHRleHQtYWxpZ246ICR7dC50ZXh0QWxpZ259YH06e30sInJlbmRlckhUTUwiKX19fV19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFRleHRBbGlnbjppKHQ9Pih7Y29tbWFuZHM6ZX0pPT50aGlzLm9wdGlvbnMuYWxpZ25tZW50cy5pbmNsdWRlcyh0KT90aGlzLm9wdGlvbnMudHlwZXMubWFwKHI9PmUudXBkYXRlQXR0cmlidXRlcyhyLHt0ZXh0QWxpZ246dH0pKS5ldmVyeShyPT5yKTohMSwic2V0VGV4dEFsaWduIiksdW5zZXRUZXh0QWxpZ246aSgoKT0+KHtjb21tYW5kczp0fSk9PnRoaXMub3B0aW9ucy50eXBlcy5tYXAoZT0+dC5yZXNldEF0dHJpYnV0ZXMoZSwidGV4dEFsaWduIikpLmV2ZXJ5KGU9PmUpLCJ1bnNldFRleHRBbGlnbiIpLHRvZ2dsZVRleHRBbGlnbjppKHQ9Pih7ZWRpdG9yOmUsY29tbWFuZHM6cn0pPT50aGlzLm9wdGlvbnMuYWxpZ25tZW50cy5pbmNsdWRlcyh0KT9lLmlzQWN0aXZlKHt0ZXh0QWxpZ246dH0pP3IudW5zZXRUZXh0QWxpZ24oKTpyLnNldFRleHRBbGlnbih0KTohMSwidG9nZ2xlVGV4dEFsaWduIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLVNoaWZ0LWwiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbigibGVmdCIpLCJNb2QtU2hpZnQtbCIpLCJNb2QtU2hpZnQtZSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJjZW50ZXIiKSwiTW9kLVNoaWZ0LWUiKSwiTW9kLVNoaWZ0LXIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbigicmlnaHQiKSwiTW9kLVNoaWZ0LXIiKSwiTW9kLVNoaWZ0LWoiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbigianVzdGlmeSIpLCJNb2QtU2hpZnQtaiIpfX19KX0pO2Z1bmN0aW9uIFJSYSh0LGUpe3JldHVybiB0IGluIGV8fChlW3RdPVtdKSxlW3RdfWZ1bmN0aW9uIFg5KHQsZSxyKXtlW3I4dF0mJihlW2FyZV09ITAsZVtpcmVdPSEwKSxlW2E4dF0mJihlW2FyZV09ITAsZVtpOHRdPSEwKSxlW2FyZV0mJihlW2lyZV09ITApLGVbaTh0XSYmKGVbaXJlXT0hMCksZVtpcmVdJiYoZVtzOHRdPSEwKSxlW09Lcl0mJihlW3M4dF09ITApO2ZvcihsZXQgYSBpbiBlKXtsZXQgcz1SUmEoYSxyKTtzLmluZGV4T2YodCk8MCYmcy5wdXNoKHQpfX1mdW5jdGlvbiBGUmEodCxlKXtsZXQgcj17fTtmb3IobGV0IGEgaW4gZSllW2FdLmluZGV4T2YodCk+PTAmJihyW2FdPSEwKTtyZXR1cm4gcn1mdW5jdGlvbiBXbyh0PW51bGwpe3RoaXMuaj17fSx0aGlzLmpyPVtdLHRoaXMuamQ9bnVsbCx0aGlzLnQ9dH1mdW5jdGlvbiBqUmEodD1bXSl7bGV0IGU9e307V28uZ3JvdXBzPWU7bGV0IHI9bmV3IFdvO3k2ZT09bnVsbCYmKHk2ZT1HS3IoSVJhKSksdzZlPT1udWxsJiYodzZlPUdLcihQUmEpKSxpdChyLCInIixuNmUpLGl0KHIsInsiLG5yZSksaXQociwifSIsb3JlKSxpdChyLCJbIixVaGUpLGl0KHIsIl0iLFdoZSksaXQociwiKCIsR2hlKSxpdChyLCIpIixZaGUpLGl0KHIsIjwiLEtoZSksaXQociwiPiIsWmhlKSxpdChyLCJcdUZGMDgiLFFoZSksaXQociwiXHVGRjA5IixYaGUpLGl0KHIsIlx1MzAwQyIsSmhlKSxpdChyLCJcdTMwMEQiLGU2ZSksaXQociwiXHUzMDBFIix0NmUpLGl0KHIsIlx1MzAwRiIscjZlKSxpdChyLCJcdUZGMUMiLGE2ZSksaXQociwiXHVGRjFFIixpNmUpLGl0KHIsIiYiLHM2ZSksaXQociwiKiIsbzZlKSxpdChyLCJAIixlZiksaXQociwiYCIsYzZlKSxpdChyLCJeIixkNmUpLGl0KHIsIjoiLHRmKSxpdChyLCIsIixmOHQpLGl0KHIsIiQiLHU2ZSksaXQociwiLiIseGQpLGl0KHIsIj0iLHA2ZSksaXQociwiISIsaDh0KSxpdChyLCItIixpMiksaXQociwiJSIsbHJlKSxpdChyLCJ8IixmNmUpLGl0KHIsIisiLGg2ZSksaXQociwiIyIsbTZlKSxpdChyLCI/IixjcmUpLGl0KHIsJyInLG04dCksaXQociwiLyIsdmQpLGl0KHIsIjsiLGc4dCksaXQociwifiIsZHJlKSxpdChyLCJfIixnNmUpLGl0KHIsIlxcIixsNmUpLGl0KHIsIlx1MzBGQiIsSEtyKTtsZXQgYT1XaShyLHdkLGQ4dCx7W3I4dF06ITB9KTtXaShhLHdkLGEpO2xldCBzPVdpKGEseWQsRktyLHtbYXJlXTohMH0pLG49V2koYSx5dyxCS3Ise1tpcmVdOiEwfSksbz1XaShyLHlkLGQzLHtbYTh0XTohMH0pO1dpKG8sd2QscyksV2kobyx5ZCxvKSxXaShzLHdkLHMpLFdpKHMseWQscyk7bGV0IGw9V2kocix5dyxvOHQse1tpOHRdOiEwfSk7V2kobCx5ZCksV2kobCx3ZCxuKSxXaShsLHl3LGwpLFdpKG4sd2QsbiksV2kobix5ZCksV2kobix5dyxuKTtsZXQgYz1pdChyLGI4dCxwOHQse1tuOHRdOiEwfSksZD1pdChyLGpLcix1OHQse1tuOHRdOiEwfSksZj1XaShyLHY2ZSx1OHQse1tuOHRdOiEwfSk7aXQocix4OHQsZiksaXQoZCxiOHQsYyksaXQoZCx4OHQsZiksV2koZCx2NmUsZiksaXQoZixqS3IpLGl0KGYsYjh0KSxXaShmLHY2ZSxmKSxpdChmLHg4dCxmKTtsZXQgcD1XaShyLHg2ZSxxS3Ise1tPS3JdOiEwfSk7aXQocCwiIyIpLFdpKHAseDZlLHApLGl0KHAscVJhLHApO2xldCBoPWl0KHAsVlJhKTtpdChoLCIjIiksV2koaCx4NmUscCk7bGV0IG09W1t5ZCxvXSxbd2Qsc11dLHY9W1t5ZCxudWxsXSxbeXcsbF0sW3dkLG5dXTtmb3IobGV0IGI9MDtiPHk2ZS5sZW5ndGg7YisrKXJmKHIseTZlW2JdLGw4dCxkMyxtKTtmb3IobGV0IGI9MDtiPHc2ZS5sZW5ndGg7YisrKXJmKHIsdzZlW2JdLGM4dCxvOHQsdik7WDkobDh0LHt0bGQ6ITAsYXNjaWk6ITB9LGUpLFg5KGM4dCx7dXRsZDohMCxhbHBoYTohMH0sZSkscmYociwiZmlsZSIsamhlLGQzLG0pLHJmKHIsIm1haWx0byIsamhlLGQzLG0pLHJmKHIsImh0dHAiLHZ3LGQzLG0pLHJmKHIsImh0dHBzIix2dyxkMyxtKSxyZihyLCJmdHAiLHZ3LGQzLG0pLHJmKHIsImZ0cHMiLHZ3LGQzLG0pLFg5KGpoZSx7c2NoZW1lOiEwLGFzY2lpOiEwfSxlKSxYOSh2dyx7c2xhc2hzY2hlbWU6ITAsYXNjaWk6ITB9LGUpLHQ9dC5zb3J0KChiLGcpPT5iWzBdPmdbMF0/MTotMSk7Zm9yKGxldCBiPTA7Yjx0Lmxlbmd0aDtiKyspe2xldCBnPXRbYl1bMF0saz10W2JdWzFdP3tbTlJhXTohMH06e1tPUmFdOiEwfTtnLmluZGV4T2YoIi0iKT49MD9rW3M4dF09ITA6eWQudGVzdChnKT93ZC50ZXN0KGcpP2tbYXJlXT0hMDprW2E4dF09ITA6a1tyOHRdPSEwLFJLcihyLGcsZyxrKX1yZXR1cm4gUktyKHIsImxvY2FsaG9zdCIsc3JlLHthc2NpaTohMH0pLHIuamQ9bmV3IFdvKGI2ZSkse3N0YXJ0OnIsdG9rZW5zOk9iamVjdC5hc3NpZ24oe2dyb3VwczplfSxWS3IpfX1mdW5jdGlvbiBVS3IodCxlKXtsZXQgcj1XS3IoZS5yZXBsYWNlKC9bQS1aXS9nLGw9PmwudG9Mb3dlckNhc2UoKSkpLGE9ci5sZW5ndGgscz1bXSxuPTAsbz0wO2Zvcig7bzxhOyl7bGV0IGw9dCxjPW51bGwsZD0wLGY9bnVsbCxwPS0xLGg9LTE7Zm9yKDtvPGEmJihjPWwuZ28ocltvXSkpOylsPWMsbC5hY2NlcHRzKCk/KHA9MCxoPTAsZj1sKTpwPj0wJiYocCs9cltvXS5sZW5ndGgsaCsrKSxkKz1yW29dLmxlbmd0aCxuKz1yW29dLmxlbmd0aCxvKys7bi09cCxvLT1oLGQtPXAscy5wdXNoKHt0OmYudCx2OmUuc2xpY2Uobi1kLG4pLHM6bi1kLGU6bn0pfXJldHVybiBzfWZ1bmN0aW9uIFdLcih0KXtsZXQgZT1bXSxyPXQubGVuZ3RoLGE9MDtmb3IoO2E8cjspe2xldCBzPXQuY2hhckNvZGVBdChhKSxuLG89czw1NTI5Nnx8cz41NjMxOXx8YSsxPT09cnx8KG49dC5jaGFyQ29kZUF0KGErMSkpPDU2MzIwfHxuPjU3MzQzP3RbYV06dC5zbGljZShhLGErMik7ZS5wdXNoKG8pLGErPW8ubGVuZ3RofXJldHVybiBlfWZ1bmN0aW9uIHJmKHQsZSxyLGEscyl7bGV0IG4sbz1lLmxlbmd0aDtmb3IobGV0IGw9MDtsPG8tMTtsKyspe2xldCBjPWVbbF07dC5qW2NdP249dC5qW2NdOihuPW5ldyBXbyhhKSxuLmpyPXMuc2xpY2UoKSx0LmpbY109biksdD1ufXJldHVybiBuPW5ldyBXbyhyKSxuLmpyPXMuc2xpY2UoKSx0LmpbZVtvLTFdXT1uLG59ZnVuY3Rpb24gR0tyKHQpe2xldCBlPVtdLHI9W10sYT0wLHM9IjAxMjM0NTY3ODkiO2Zvcig7YTx0Lmxlbmd0aDspe2xldCBuPTA7Zm9yKDtzLmluZGV4T2YodFthK25dKT49MDspbisrO2lmKG4+MCl7ZS5wdXNoKHIuam9pbigiIikpO2ZvcihsZXQgbz1wYXJzZUludCh0LnN1YnN0cmluZyhhLGErbiksMTApO28+MDtvLS0pci5wb3AoKTthKz1ufWVsc2Ugci5wdXNoKHRbYV0pLGErK31yZXR1cm4gZX1mdW5jdGlvbiB1cmUodCxlPW51bGwpe2xldCByPU9iamVjdC5hc3NpZ24oe30sd3cpO3QmJihyPU9iamVjdC5hc3NpZ24ocix0IGluc3RhbmNlb2YgdXJlP3Qubzp0KSk7bGV0IGE9ci5pZ25vcmVUYWdzLHM9W107Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspcy5wdXNoKGFbbl0udG9VcHBlckNhc2UoKSk7dGhpcy5vPXIsZSYmKHRoaXMuZGVmYXVsdFJlbmRlcj1lKSx0aGlzLmlnbm9yZVRhZ3M9c31mdW5jdGlvbiBZS3IodCl7cmV0dXJuIHR9ZnVuY3Rpb24gcHJlKHQsZSl7dGhpcy50PSJ0b2tlbiIsdGhpcy52PXQsdGhpcy50az1lfWZ1bmN0aW9uIGt3KHQsZSl7Y2xhc3MgciBleHRlbmRzIHByZXtzdGF0aWN7aSh0aGlzLCJUb2tlbiIpfWNvbnN0cnVjdG9yKHMsbil7c3VwZXIocyxuKSx0aGlzLnQ9dH19Zm9yKGxldCBhIGluIGUpci5wcm90b3R5cGVbYV09ZVthXTtyZXR1cm4gci50PXQscn1mdW5jdGlvbiBXUmEoe2dyb3Vwczp0fSl7bGV0IGU9dC5kb21haW4uY29uY2F0KFtzNmUsbzZlLGVmLGw2ZSxjNmUsZDZlLHU2ZSxwNmUsaTIsZDh0LGxyZSxmNmUsaDZlLG02ZSx2ZCxiNmUsZHJlLGc2ZV0pLHI9W242ZSx0ZixmOHQseGQsaDh0LGxyZSxjcmUsbTh0LGc4dCxLaGUsWmhlLG5yZSxvcmUsV2hlLFVoZSxHaGUsWWhlLFFoZSxYaGUsSmhlLGU2ZSx0NmUscjZlLGE2ZSxpNmVdLGE9W3M2ZSxuNmUsbzZlLGw2ZSxjNmUsZDZlLHU2ZSxwNmUsaTIsbnJlLG9yZSxscmUsZjZlLGg2ZSxtNmUsY3JlLHZkLGI2ZSxkcmUsZzZlXSxzPXMyKCksbj1pdChzLGRyZSk7enIobixhLG4pLHpyKG4sdC5kb21haW4sbik7bGV0IG89czIoKSxsPXMyKCksYz1zMigpO3pyKHMsdC5kb21haW4sbyksenIocyx0LnNjaGVtZSxsKSx6cihzLHQuc2xhc2hzY2hlbWUsYyksenIobyxhLG4pLHpyKG8sdC5kb21haW4sbyk7bGV0IGQ9aXQobyxlZik7aXQobixlZixkKSxpdChsLGVmLGQpLGl0KGMsZWYsZCk7bGV0IGY9aXQobix4ZCk7enIoZixhLG4pLHpyKGYsdC5kb21haW4sbik7bGV0IHA9czIoKTt6cihkLHQuZG9tYWluLHApLHpyKHAsdC5kb21haW4scCk7bGV0IGg9aXQocCx4ZCk7enIoaCx0LmRvbWFpbixwKTtsZXQgbT1zMih2OHQpO3pyKGgsdC50bGQsbSksenIoaCx0LnV0bGQsbSksaXQoZCxzcmUsbSk7bGV0IHY9aXQocCxpMik7aXQodixpMix2KSx6cih2LHQuZG9tYWluLHApLHpyKG0sdC5kb21haW4scCksaXQobSx4ZCxoKSxpdChtLGkyLHYpO2xldCBiPWl0KG0sdGYpO3pyKGIsdC5udW1lcmljLHY4dCk7bGV0IGc9aXQobyxpMikseT1pdChvLHhkKTtpdChnLGkyLGcpLHpyKGcsdC5kb21haW4sbyksenIoeSxhLG4pLHpyKHksdC5kb21haW4sbyk7bGV0IGs9czIoZnJlKTt6cih5LHQudGxkLGspLHpyKHksdC51dGxkLGspLHpyKGssdC5kb21haW4sbyksenIoayxhLG4pLGl0KGsseGQseSksaXQoayxpMixnKSxpdChrLGVmLGQpO2xldCBNPWl0KGssdGYpLE49czIoZnJlKTt6cihNLHQubnVtZXJpYyxOKTtsZXQgXz1zMihmcmUpLFM9czIoKTt6cihfLGUsXyksenIoXyxyLFMpLHpyKFMsZSxfKSx6cihTLHIsUyksaXQoayx2ZCxfKSxpdChOLHZkLF8pO2xldCBPPWl0KGwsdGYpLEw9aXQoYyx0ZiksRT1pdChMLHZkKSxCPWl0KEUsdmQpO3pyKGwsdC5kb21haW4sbyksaXQobCx4ZCx5KSxpdChsLGkyLGcpLHpyKGMsdC5kb21haW4sbyksaXQoYyx4ZCx5KSxpdChjLGkyLGcpLHpyKE8sdC5kb21haW4sXyksaXQoTyx2ZCxfKSxpdChPLGNyZSxfKSx6cihCLHQuZG9tYWluLF8pLHpyKEIsZSxfKSxpdChCLHZkLF8pO2xldCBDPVtbbnJlLG9yZV0sW1VoZSxXaGVdLFtHaGUsWWhlXSxbS2hlLFpoZV0sW1FoZSxYaGVdLFtKaGUsZTZlXSxbdDZlLHI2ZV0sW2E2ZSxpNmVdXTtmb3IobGV0IHo9MDt6PEMubGVuZ3RoO3orKyl7bGV0W0EsJF09Q1t6XSxGPWl0KF8sQSk7aXQoUyxBLEYpLGl0KEYsJCxfKTtsZXQgWT1zMihmcmUpO3pyKEYsZSxZKTtsZXQgRz1zMigpO3pyKEYsciksenIoWSxlLFkpLHpyKFkscixHKSx6cihHLGUsWSksenIoRyxyLEcpLGl0KFksJCxfKSxpdChHLCQsXyl9cmV0dXJuIGl0KHMsc3JlLGspLGl0KHMscDh0LEtLcikse3N0YXJ0OnMsdG9rZW5zOlZLcn19ZnVuY3Rpb24gR1JhKHQsZSxyKXtsZXQgYT1yLmxlbmd0aCxzPTAsbj1bXSxvPVtdO2Zvcig7czxhOyl7bGV0IGw9dCxjPW51bGwsZD1udWxsLGY9MCxwPW51bGwsaD0tMTtmb3IoO3M8YSYmIShjPWwuZ28ocltzXS50KSk7KW8ucHVzaChyW3MrK10pO2Zvcig7czxhJiYoZD1jfHxsLmdvKHJbc10udCkpOyljPW51bGwsbD1kLGwuYWNjZXB0cygpPyhoPTAscD1sKTpoPj0wJiZoKysscysrLGYrKztpZihoPDApcy09ZixzPGEmJihvLnB1c2gocltzXSkscysrKTtlbHNle28ubGVuZ3RoPjAmJihuLnB1c2godzh0KHk4dCxlLG8pKSxvPVtdKSxzLT1oLGYtPWg7bGV0IG09cC50LHY9ci5zbGljZShzLWYscyk7bi5wdXNoKHc4dChtLGUsdikpfX1yZXR1cm4gby5sZW5ndGg+MCYmbi5wdXNoKHc4dCh5OHQsZSxvKSksbn1mdW5jdGlvbiB3OHQodCxlLHIpe2xldCBhPXJbMF0ucyxzPXJbci5sZW5ndGgtMV0uZSxuPWUuc2xpY2UoYSxzKTtyZXR1cm4gbmV3IHQobixyKX1mdW5jdGlvbiBTOHQoKXtyZXR1cm4gV28uZ3JvdXBzPXt9LG5hLnNjYW5uZXI9bnVsbCxuYS5wYXJzZXI9bnVsbCxuYS50b2tlblF1ZXVlPVtdLG5hLnBsdWdpblF1ZXVlPVtdLG5hLmN1c3RvbVNjaGVtZXM9W10sbmEuaW5pdGlhbGl6ZWQ9ITEsbmF9ZnVuY3Rpb24gWVJhKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgdG9rZW4gcGx1Z2luICR7ZX0gKGV4cGVjdHMgZnVuY3Rpb24pYCk7Zm9yKGxldCByPTA7cjxuYS50b2tlblF1ZXVlLmxlbmd0aDtyKyspaWYodD09PW5hLnRva2VuUXVldWVbcl1bMF0pe2hyZShgbGlua2lmeWpzOiB0b2tlbiBwbHVnaW4gIiR7dH0iIGFscmVhZHkgcmVnaXN0ZXJlZCAtIHdpbGwgYmUgb3ZlcndyaXR0ZW5gKSxuYS50b2tlblF1ZXVlW3JdPVt0LGVdO3JldHVybn1uYS50b2tlblF1ZXVlLnB1c2goW3QsZV0pLG5hLmluaXRpYWxpemVkJiZocmUoYGxpbmtpZnlqczogYWxyZWFkeSBpbml0aWFsaXplZCAtIHdpbGwgbm90IHJlZ2lzdGVyIHRva2VuIHBsdWdpbiAiJHt0fSIgJHtrOHR9YCl9ZnVuY3Rpb24gS1JhKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgcGx1Z2luICR7ZX0gKGV4cGVjdHMgZnVuY3Rpb24pYCk7Zm9yKGxldCByPTA7cjxuYS5wbHVnaW5RdWV1ZS5sZW5ndGg7cisrKWlmKHQ9PT1uYS5wbHVnaW5RdWV1ZVtyXVswXSl7aHJlKGBsaW5raWZ5anM6IHBsdWdpbiAiJHt0fSIgYWxyZWFkeSByZWdpc3RlcmVkIC0gd2lsbCBiZSBvdmVyd3JpdHRlbmApLG5hLnBsdWdpblF1ZXVlW3JdPVt0LGVdO3JldHVybn1uYS5wbHVnaW5RdWV1ZS5wdXNoKFt0LGVdKSxuYS5pbml0aWFsaXplZCYmaHJlKGBsaW5raWZ5anM6IGFscmVhZHkgaW5pdGlhbGl6ZWQgLSB3aWxsIG5vdCByZWdpc3RlciBwbHVnaW4gIiR7dH0iICR7azh0fWApfWZ1bmN0aW9uIGs2ZSh0LGU9ITEpe2lmKG5hLmluaXRpYWxpemVkJiZocmUoYGxpbmtpZnlqczogYWxyZWFkeSBpbml0aWFsaXplZCAtIHdpbGwgbm90IHJlZ2lzdGVyIGN1c3RvbSBzY2hlbWUgIiR7dH0iICR7azh0fWApLCEvXlswLTlhLXpdKygtWzAtOWEtel0rKSokLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcihgbGlua2lmeWpzOiBpbmNvcnJlY3Qgc2NoZW1lIGZvcm1hdC4KMS4gTXVzdCBvbmx5IGNvbnRhaW4gZGlnaXRzLCBsb3dlcmNhc2UgQVNDSUkgbGV0dGVycyBvciAiLSIKMi4gQ2Fubm90IHN0YXJ0IG9yIGVuZCB3aXRoICItIgozLiAiLSIgY2Fubm90IHJlcGVhdGApO25hLmN1c3RvbVNjaGVtZXMucHVzaChbdCxlXSl9ZnVuY3Rpb24gUUtyKCl7bmEuc2Nhbm5lcj1qUmEobmEuY3VzdG9tU2NoZW1lcyk7Zm9yKGxldCB0PTA7dDxuYS50b2tlblF1ZXVlLmxlbmd0aDt0KyspbmEudG9rZW5RdWV1ZVt0XVsxXSh7c2Nhbm5lcjpuYS5zY2FubmVyfSk7bmEucGFyc2VyPVdSYShuYS5zY2FubmVyLnRva2Vucyk7Zm9yKGxldCB0PTA7dDxuYS5wbHVnaW5RdWV1ZS5sZW5ndGg7dCsrKW5hLnBsdWdpblF1ZXVlW3RdWzFdKHtzY2FubmVyOm5hLnNjYW5uZXIscGFyc2VyOm5hLnBhcnNlcn0pO3JldHVybiBuYS5pbml0aWFsaXplZD0hMCxuYX1mdW5jdGlvbiBTdyh0KXtyZXR1cm4gbmEuaW5pdGlhbGl6ZWR8fFFLcigpLEdSYShuYS5wYXJzZXIuc3RhcnQsdCxVS3IobmEuc2Nhbm5lci5zdGFydCx0KSl9ZnVuY3Rpb24gUzZlKHQsZT1udWxsLHI9bnVsbCl7aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QiKXtpZihyKXRocm93IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgbGluayB0eXBlICR7ZX07IG11c3QgYmUgYSBzdHJpbmdgKTtyPWUsZT1udWxsfWxldCBhPW5ldyB1cmUocikscz1Tdyh0KSxuPVtdO2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXtsZXQgbD1zW29dO2wuaXNMaW5rJiYoIWV8fGwudD09PWUpJiZhLmNoZWNrKGwpJiZuLnB1c2gobC50b0Zvcm1hdHRlZE9iamVjdChhKSl9cmV0dXJuIG59ZnVuY3Rpb24gWlJhKHQsZT1udWxsKXtsZXQgcj1Tdyh0KTtyZXR1cm4gci5sZW5ndGg9PT0xJiZyWzBdLmlzTGluayYmKCFlfHxyWzBdLnQ9PT1lKX12YXIgSVJhLFBSYSxyOHQsYTh0LGk4dCxhcmUsaXJlLHM4dCxPS3IsTlJhLE9SYSxuOHQsenIsV2ksUktyLGl0LGQzLG84dCxGS3IsQktyLHNyZSxsOHQsYzh0LGpoZSx2dyxkOHQsdTh0LHA4dCxucmUsb3JlLFVoZSxXaGUsR2hlLFloZSxLaGUsWmhlLFFoZSxYaGUsSmhlLGU2ZSx0NmUscjZlLGE2ZSxpNmUsczZlLG42ZSxvNmUsZWYsbDZlLGM2ZSxkNmUsdGYsZjh0LHU2ZSx4ZCxwNmUsaDh0LGkyLGxyZSxmNmUsaDZlLG02ZSxjcmUsbTh0LEhLcixnOHQsdmQsZHJlLGc2ZSxxS3IsYjZlLFZLcix5ZCx5dyx4NmUsQlJhLHdkLHY2ZSxIUmEsaktyLGI4dCxxUmEsVlJhLHg4dCx5NmUsdzZlLHd3LFVSYSx2OHQseTh0LEtLcixmcmUsWktyLHMyLGhyZSxrOHQsbmEsWEtyPXUoKCk9PntJUmE9ImFhYTFycDNiYjBvdHQzdmllNGMxbGUyb2dhZG81dWRoYWJpN2MwYWRlbXk1Y2VudHVyZTZvdW50YW50MHM5bzF0b3I0ZDBzMXVsdDRlMGcxcm8ydG5hNGYwbDFyaWNhNWcwYWtoYW41ZW5jeTVpMGcxcmJ1czNmb3JjZTV0ZWw1a2RuM2wwaWJhYmE0cGF5NGxmaW5hbno2c3RhdGU1eTJzYWNlM3RvbTVtMGF6b240ZXJpY2FuZXhwcmVzczdmYW1pbHkxMXgyZmFtM2ljYTNzdGVyZGFtOG5hbHl0aWNzN2Ryb2lkNXF1YW40ejJvMGwycGFydG1lbnRzOHAwbGU0cTB1YXJlbGxlOHIwYWIxbWNvNGNoaTNteTJwYTJ0MGUzczBkYTJpYTJzb2NpYXRlczl0MGhsZXRhNXRvcm5leTd1MGN0aW9uNWRpMGJsZTNvM3Nwb3N0NXRob3IzbzBzNHcwczJ4MGEyejB1cmU1YmEwYnkyaWR1M25hbWV4NGQxazJyMGNlbG9uYTVsYXljYXJkNHM1ZWZvb3Q1Z2FpbnM2c2ViYWxsNWtldGJhbGw4dWhhdXM1eWVybjViMGMxdDF2YTNjZzFuMmQxZTBhdHMydXR5NGVyMnJsaW40c3QwYnV5NXQyZjFnMWgwYXJ0aTVpMGJsZTNkMWtlMm5nMG8zbzF6MmoxbGFjazBmcmlkYXk5b2NrYnVzdGVyOGcxb21iZXJnN3VlM20wczF3Mm4wcHBhcmliYXM5bzBhdHMzZWhyaW5nZXI4ZmEybTFuZDJvMGswaW5nNXNjaDJ0aWsyb240dDF1dGlxdWU2eDJyMGFkZXNjbzZpZGdlc3RvbmU5b2Fkd2F5NWtlcjN0aGVyNXVzc2VsczdzMXQxdWlsZDBlcnM2c2luZXNzNnkxenozdjF3MXkxejBoM2NhMGIxZmUybDBsMXZpbmtsZWluOW0wZXJhM3Aybm9uM3BldG93bjVpdGFsMG9uZThyMGF2YW40ZHMyZTBlcjBzNHMyc2ExZTFoMWlubzR0MGVyaW5nNWhvbGljN2JhMW4xcmUzYzFkMWVudGVyNG8xcm4zZjBhMWQyZzFoMGFuZWwybmVsNHJpdHk0c2UydDJlYXAzaW50YWk1cmlzdG1hczZvbWU0dXJjaDVpMHByaWFuaTZyY2xlNHNjbzN0YWRlbDRpMGMyeTNrMWwwYWltczRlYW5pbmc2aWNrMm5pYzFxdWU2b3RoaW5nNXVkM3ViMG1lZDZtMW4xbzBhY2gzZGVzM2ZmZWU0bGxlZ2U0b2duZTVtMG1iYW5rNHVuaXR5NnBhbnkycmUzdXRlcjVzZWM0bmRvczNzdHJ1Y3Rpb244dWx0aW5nN3RhY3QzcmFjdG9yczlva2luZzRsMXAycnNpY2E1dW50cnk0cG9uMHM0cnNlczZwYTJyMGVkaXQwY2FyZDR1bmlvbjlpY2tldDVvd24zczF1aXNlMHM2dTBpc2luZWxsYTl2MXcxeDF5MG1ydTNvdTN6MmRhZDFuY2UzdGExZTFpbmczc3VuNHkyY2xrM2RzMmUwYWwwZXIyczNncmVlNGxpdmVyeTVsMW9pdHRlNXRhM21vY3JhdDZudGFsMmlzdDVzaTBnbjR2MmhsMmlhbW9uZHM2ZXQyZ2l0YWw1cmVjdDBvcnk3c2NvdW50M3ZlcjVoMnkyajFrMW0xbnAybzBjczF0b3I0ZzFtYWluczV0MXdubG9hZDdyaXZlNHR2MnViYWkzbmxvcDRwb250NHJiYW41dmFnMnIyejJlYXJ0aDN0MmMwbzJkZWthM3UwY2F0aW9uOGUxZzFtYWlsM2VyY2s1bmVyZ3k0Z2luZWVyMGluZzl0ZXJwcmlzZXMxMHBzb240cXVpcG1lbnQ4cjBpY3Nzb242bmkzczBxMXRhdGU1dDF1MHJvdmlzaW9uOHMydmVudHM1eGNoYW5nZTZwZXJ0M29zZWQ0cmVzczV0cmFzcGFjZTEwZmFnZTJpbDFyd2luZHM2dGgzbWlseTRuMHMycm0wZXJzNXNoaW9uNHQzZWRleDNlZGJhY2s2cnJhcmkzZXJvNmkwZGVsaXR5NW8ybG0ybmFsMW5jZTFpYWw3cmUwc3RvbmU2bWRhbGU2c2gwaW5nNXQwbmVzczZqMWsxbGlja3IzZ2h0czRyMm9yaXN0NHdlcnM1eTJtMW8wbzBkMXRiYWxsNnJkMWV4MnNhbGU0dW0zdW5kYXRpb244eDJyMGVlMXNlbml1czdsMW9nYW5zNG50aWVyN3RyMnVqaXRzdTVuMGQycm5pdHVyZTd0Ym9sNXlpM2dhMGwwbGVyeTNvMXVwNG1lMHMzcDFyZGVuNHkyYjBpejNkMG4yZTBhMW50MGluZzVvcmdlNWYxZzBlZTNoMWkwZnQwczN2ZXMyaW5nNWwwYXNzM2Uxb2JhbDJvNG0wYWlsM2JoMm8xeDJuMW9kYWRkeTVsZDBwb2ludDZmMm8wZHllYXI1ZzBsZTRwMXQxdjJwMXExcjBhaW5nZXI1cGhpY3M1dGlzNGVlbjNpcGUzb2Nlcnk0dXA0czF0MXUwY2NpM2dlMmlkZTJ0YXJzNXJ1M3cxeTJoYWlyMm1idXJnNW5nb3V0NXVzM2JvMmRmYzBiYW5rN2VhbHRoMGNhcmU4bHAxc2lua2k2cmUxbWVzNWlwaG9wNHNhbWl0c3U3dGFjaGk1djJrMHQybTFuMW9ja2V5NGxkaW5nczVpZGF5NW1lZGVwb3Q1Z29vZHM1czBlbnNlN25kYTNyc2Uzc3BpdGFsNXQwaW5nNXQwZWxzM21haWw1dXNlM3cycjFzYmMzdDF1MGdoZXM1eWF0dDN1bmRhaTdpYm0yY2JjMmUxdTJkMWUwZWUzZm0ya2FubzRsMW0wYW1hdDRkYjJtbzBiaWxpZW45bjBjMWR1c3RyaWVzOGZpbml0aTVvMmcxazFzdGl0dXRlNnVyYW5jZTRlNHQwZXJuYXRpb25hbDEwdWl0NHZlc3RtZW50czEwbzFwaXJhbmdhN3ExcjBpc2g0czBtYWlsaTV0MGFuYnVsN3QwYXUydjNqYWd1YXI0dmEzY2IyZTBlcDJ0enQzd2Vscnk2aW8ybGwybTBwMm5qMm8wYnMxdXJnNHQxeTJwMG1vcmdhbjZyczN1ZWdvczRuaXBlcjdrYXVmZW41ZGRpM2UwcnJ5aG90ZWxzNnByb3BlcnRpZXMxNGZoMmcxaDFpMGExZHMybTFuZGxlNHRjaGVuNXdpM20xbjFvZWxuM21hdHN1NXNoZXI1cDBtZzJuMnIwZDFlZDN1b2tncm91cDh3MXkwb3RvNHoybGEwY2FpeGE1bWJvcmdoaW5pOGVyM25kMHJvdmVyNnhlc3M1c2FsbGU1dDBpbm8zcm9iZTV3MHllcjViMWMxZHMyZWFzZTNjbGVyYzVmcmFrNGdhbDJvMnh1czRnYnQzaTBkbDJmZTBpbnN1cmFuY2U5c3R5bGU3Z2h0aW5nNmtlMmxseTNtaXRlZDRvMm5jb2xuNGsydmUxaW5nNWsxbGMxcDJvYW4wczNja2VyM3VzM2wxbmRvbjR0dGUxbzN2ZTNwbDBmaW5hbmNpYWwxMXIxczF0MGQwYTN1MG5kYmVjazZ4ZTF1cnk1djF5Mm1hMGRyaWQ0aWYxc29uNGtldXA0bjBhZ2VtZW50N2dvM3AxcmtldDBpbmczczRyaW90dDVzaGFsbHM3dHRlbDViYTJjMGtpbnNleTdkMWUwZDBpYTNldDJsYm91cm5lN21lMW9yaWFsNm4wdTJyY2ttc2Q3ZzFoMWlhbWkzY3Jvc29mdDdsMW5pMXQydDBzdWJpc2hpOWsxbDBiMXMybTBhMm4xbzBiaTBsZTRkYTJlMWkxbTFuYXNoM2V5MnN0ZXI1cm1vbjN0Z2FnZTZzY293NHRvMHJjeWNsZXM5djBpZTRwMXExcjFzMGQydDBuMXIydTBzZXVtM2ljNHYxdzF4MXkxejJuYTBiMWdveWE0bWUydnkzYmEyYzFlMGMxdDBiYW5rNGZsaXg0d29yazV1c3RhcjV3MHMyeHQwZGlyZWN0N3VzNGYwbDJnMG8yaGsyaTBjbzJrZTFvbjNuamEzc3NhbjF5NWwxbzBraWEzcnRvbjR3MHJ1ejN0djRwMXIwYTF3MnR0MnUxeWMyejJvYmkxc2VydmVyN2ZmaWNlNWtpbmF3YTZsYXlhbjBncm91cDlsbzNtMGVnYTRuZTFnMWwwaW5lNW9vMnBlbjNyYWNsZTNuZ2U0ZzBhbmljNWlnaW5zNnNha2E0dHN1a2E0dDJ2aDNwYTBnZTJuYXNvbmljN3JpczJzMXRuZXJzNHMxeTN5MmNjdzNlMHQyZjBpemVyNWcxaDBhcm1hY3k2ZDFpbGlwczVvbmUydG8wZ3JhcGh5NnM0eXNpbzVpY3MxdGV0MnVyZXM2ZDFuMGcxazJvbmVlcjV6emE0azFsMGFjZTJ5MHN0YXRpb245dW1iaW5nNXMzbTFuMGMyb2hsMmtlcjNsaXRpZTVybjJzdDNyMGF4aTNlc3MzaW1lM28wZDB1Y3Rpb25zOGYxZ3Jlc3NpdmU4bW8ycGVydGllczN5NXRlY3Rpb244dTBkZW50aWFsOXMxdDF1YjJ3MGMyeTJxYTFwb24zdWViZWMzc3Q1cmFjaW5nNGRpbzRlMGFkMWxlc3RhdGU2dG9yMnk0Y2lwZXM1ZDBzdG9uZTV1bWJyZWxsYTloYWIzaXNlMG4zdDJsaWFuY2U2bjB0MGFsczVwYWlyM29ydDN1YmxpY2FuOHN0MGF1cmFudDh2aWV3MHM1eHJvdGg2aWNoMGFyZGxpNm9oM2wxbzFwMm8wY2tzM2RlbzNnZXJzNG9tM3MwdnAzdTBnYnkzaHIybjJ3MGUyeXVreXU2c2EwYXJsYW5kNmZlMHR5NGt1cmE0bGUxb24zbXNjbHViNHVuZzVuZHZpazBjb3JvbWFudDEyb2ZpNHAxcmwyczF2ZTJ4bzNiMGkxczJjMGIxaGFlZmZsZXI3bWlkdDRvbGFyc2hpcHM4b2wzdWxlM3dhcno1aWVuY2U1b3QzZDFlMGFyY2gzdDJjdXJlMWl0eTZlazJsZWN0NG5lcjNydmljZXM2dmVuM3cxeDB5M2ZyMmcxaDBhbmdyaWxhNnJwM2VsbDNpYTFrc2hhNW9lczJwMHBpbmc1dWppM3czaTBsazJuYTFnbGVzNXRlM2oxazBpMG4yeTBwZTRsMGluZzRtMGFydDNpbGU0bjBjZjNvMGNjZXIzaWFsNGZ0YmFuazR3YXJlNmh1MmxhcjJ1dGlvbnM3bmcxeTJ5MnBhMGNlM29ydDJ0M3IwbDJzMXQwYWRhMnBsZXM0cjF0ZWJhbms0ZmFybTdjMGdyb3VwNm9ja2hvbG02cmFnZTNlM3JlYW00dWRpbzJ5M3lsZTR1MGNrczNwcGxpZXMzeTJvcnQ1cmYxZ2VyeTV6dWtpNXYxd2F0Y2g0aXNzNHgxeTBkbmV5NHN0ZW1zNnoydGFiMWlwZWk0bGsyb2JhbzRyZ2V0NHRhbW90b3JzNnIydG9vNHgwaTNjMGkyZDBrMmVhbTJjaDBub2xvZ3k4bDFtYXNlazVubmlzNHZhM2YxZzFoMGQxZWF0ZXIycmU2aWFhMmNrZXRzNWVuZGE0cHMycmVzMm9sNGowbWF4eDR4MmswbWF4eDVsMW0wYWxsNG4xbzBkYXkza3lvM29sczNwMXJheTNzaGliYTV0YWwzdXJzM3duMnlvdGEzczNyMGFkZTFpbmc0aW5pbmc1dmVsMGVyczBpbnN1cmFuY2UxNnVzdDN2MnQxdWJlMmkxbmVzM3NodTR2MHMydzF6MnVhMWJhbmszczJnMWsxbmljb20zdmVyc2l0eThvMm9sMnBzMnMxeTF6MnZhMGNhdGlvbnM3bmExZ3VhcmQ3YzFlMGdhczNudHVyZXM2cmlzaWduNW1ceEY2Z2Vuc2JlcmF0ZXIydW5nMTRzaWNoZXJ1bmcxMHQyZzFpMGFqZXM0ZGVvM2cxa2luZzRsbGFzNG4xcDFyZ2luNHNhMWlvbjR2YTFvM2xhYW5kZXJlbjluMW9ka2EzbHZvM3RlMWluZzNvMnlhZ2U1dTJ3YWxlczJtYXJ0NHRlcjRuZzBnb3U1dGNoMGVzNmVhdGhlcjBjaGFubmVsMTJiY2FtM2VyMnNpdGU1ZDBkaW5nNWlibzJyM2YxaG9zd2hvNmllbjJraTJsbGlhbWhpbGw5bjBkb3dzNGUxbmVyczZtZTJvbHRlcnNrbHV3ZXIxMW9kc2lkZTZyazBzMmxkM3cyczF0YzFmM3hib3gzZXJveDRpaHVhbjRuMnh4Mnl6M3lhY2h0czRob28zbWF4dW41bmRleDVlMW9kb2Jhc2hpN2dhMmtvaGFtYTZ1MHR1YmU2dDF1bjN6YTBwcG9zNHJhM2VybzNpcDJtMW9uZTN1ZXJpY2g2dzIiLFBSYT0iXHUwM0I1XHUwM0JCMVx1MDNDNTJcdTA0MzFcdTA0MzMxXHUwNDM1XHUwNDNCM1x1MDQzNFx1MDQzNVx1MDQ0Mlx1MDQzODRcdTA0MzVcdTA0NEUyXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDNCXHUwNDM4XHUwNDNBNlx1MDQzRVx1MDQzQzNcdTA0M0NcdTA0M0FcdTA0MzQyXHUwNDNFXHUwNDNEMVx1MDQ0MVx1MDQzQVx1MDQzMlx1MDQzMDZcdTA0M0VcdTA0M0RcdTA0M0JcdTA0MzBcdTA0MzlcdTA0M0Q1XHUwNDQwXHUwNDMzM1x1MDQ0MFx1MDQ0M1x1MDQ0MTJcdTA0NDQyXHUwNDQxXHUwNDMwXHUwNDM5XHUwNDQyM1x1MDQ0MFx1MDQzMTNcdTA0NDNcdTA0M0FcdTA0NDAzXHUwNDlCXHUwNDMwXHUwNDM3M1x1MDU3MFx1MDU2MVx1MDU3NTNcdTA1RDlcdTA1RTlcdTA1RThcdTA1RDBcdTA1REM1XHUwNUU3XHUwNUQ1XHUwNUREM1x1MDYyN1x1MDYyOFx1MDY0OFx1MDYzOFx1MDYyOFx1MDY0QTVcdTA2MzFcdTA2MjdcdTA2NDVcdTA2NDNcdTA2NDg1XHUwNjQ0XHUwNjI3XHUwNjMxXHUwNjJGXHUwNjQ2NFx1MDYyOFx1MDYyRFx1MDYzMVx1MDY0QVx1MDY0NjVcdTA2MkNcdTA2MzJcdTA2MjdcdTA2MjZcdTA2MzE1XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJGXHUwNjRBXHUwNjI5Nlx1MDYzOVx1MDY0NFx1MDY0QVx1MDYyN1x1MDY0NjVcdTA2NDVcdTA2M0FcdTA2MzFcdTA2Mjg1XHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjI3XHUwNjJBNVx1MDZDQ1x1MDYzMVx1MDYyN1x1MDY0NjVcdTA2MjhcdTA2MjdcdTA2MzFcdTA2MkEyXHUwNjMyXHUwNjI3XHUwNjMxNFx1MDY0QVx1MDYyQVx1MDY0MzNcdTA2QkVcdTA2MjdcdTA2MzFcdTA2MkE1XHUwNjJBXHUwNjQ4XHUwNjQ2XHUwNjMzNFx1MDYzM1x1MDY0OFx1MDYyRlx1MDYyN1x1MDY0NjNcdTA2MzFcdTA2NEFcdTA2Mjk1XHUwNjM0XHUwNjI4XHUwNjQzXHUwNjI5NFx1MDYzOVx1MDYzMVx1MDYyN1x1MDY0MjJcdTA2MjgyXHUwNjQ1XHUwNjI3XHUwNjQ2NFx1MDY0MVx1MDY0NFx1MDYzM1x1MDYzN1x1MDY0QVx1MDY0NjZcdTA2NDJcdTA2MzdcdTA2MzEzXHUwNjQzXHUwNjI3XHUwNjJCXHUwNjQ4XHUwNjQ0XHUwNjRBXHUwNjQzNlx1MDY0OFx1MDY0NTNcdTA2NDVcdTA2MzVcdTA2MzEyXHUwNjQ0XHUwNjRBXHUwNjMzXHUwNjRBXHUwNjI3NVx1MDY0OFx1MDYzMVx1MDY0QVx1MDYyQVx1MDYyN1x1MDY0Nlx1MDY0QVx1MDYyNzdcdTA2NDJcdTA2Mzk0XHUwNjQ3XHUwNjQ1XHUwNjMxXHUwNjI3XHUwNjQ3NVx1MDY3RVx1MDYyN1x1MDZBOVx1MDYzM1x1MDYyQVx1MDYyN1x1MDY0NjdcdTA2ODBcdTA2MjdcdTA2MzFcdTA2MkE0XHUwOTE1XHUwOTQ5XHUwOTJFM1x1MDkyOFx1MDk0N1x1MDkxRjNcdTA5MkRcdTA5M0VcdTA5MzBcdTA5MjQwXHUwOTJFXHUwOTREM1x1MDk0Qlx1MDkyNDVcdTA5MzhcdTA5MDJcdTA5MTdcdTA5MjBcdTA5Mjg1XHUwOUFDXHUwOUJFXHUwOTgyXHUwOUIyXHUwOUJFNVx1MDlBRFx1MDlCRVx1MDlCMFx1MDlBNDJcdTA5RjBcdTA5QTQ0XHUwQTJEXHUwQTNFXHUwQTMwXHUwQTI0NFx1MEFBRFx1MEFCRVx1MEFCMFx1MEFBNDRcdTBCMkRcdTBCM0VcdTBCMzBcdTBCMjQ0XHUwQjg3XHUwQkE4XHUwQkNEXHUwQkE0XHUwQkJGXHUwQkFGXHUwQkJFNlx1MEJCMlx1MEI5OVx1MEJDRFx1MEI5NVx1MEJDODZcdTBCOUFcdTBCQkZcdTBCOTlcdTBCQ0RcdTBCOTVcdTBCQUFcdTBCQ0RcdTBCQUFcdTBCQzJcdTBCQjBcdTBCQ0QxMVx1MEMyRFx1MEMzRVx1MEMzMFx1MEMyNFx1MEM0RDVcdTBDQURcdTBDQkVcdTBDQjBcdTBDQTQ0XHUwRDJEXHUwRDNFXHUwRDMwXHUwRDI0XHUwRDAyNVx1MERCRFx1MEQ4Mlx1MEQ5QVx1MERDRjRcdTBFMDRcdTBFMkRcdTBFMjEzXHUwRTQ0XHUwRTE3XHUwRTIyM1x1MEVBNVx1MEVCMlx1MEVBNzNcdTEwRDJcdTEwRDQyXHUzMDdGXHUzMDkzXHUzMDZBM1x1MzBBMlx1MzBERVx1MzBCRVx1MzBGMzRcdTMwQUZcdTMwRTlcdTMwQTZcdTMwQzk0XHUzMEIwXHUzMEZDXHUzMEIwXHUzMEVCNFx1MzBCM1x1MzBFMDJcdTMwQjlcdTMwQzhcdTMwQTIzXHUzMEJCXHUzMEZDXHUzMEVCM1x1MzBENVx1MzBBMVx1MzBDM1x1MzBCN1x1MzBFN1x1MzBGMzZcdTMwRERcdTMwQTRcdTMwRjNcdTMwQzg0XHU0RTE2XHU3NTRDMlx1NEUyRFx1NEZFMTFcdTU2RkQxXHU1NzBCMVx1NjU4N1x1N0Y1MTNcdTRFOUFcdTlBNkNcdTkwMEEzXHU0RjAxXHU0RTFBMlx1NEY1Qlx1NUM3MTJcdTRGRTFcdTYwNkYyXHU1MDY1XHU1RUI3Mlx1NTE2Qlx1NTM2NjJcdTUxNkNcdTUzRjgxXHU3NkNBMlx1NTNGMFx1NkU3RTFcdTcwNjMyXHU1NTQ2XHU1N0NFMVx1NUU5NzFcdTY4MDcyXHU1NjA5XHU5MUNDMFx1NTkyN1x1OTE1Mlx1NUU5NzVcdTU3MjhcdTdFQkYyXHU1OTI3XHU2MkZGMlx1NTkyOVx1NEUzQlx1NjU1OTNcdTVBMzFcdTRFNTAyXHU1QkI2XHU5NkZCMlx1NUU3Rlx1NEUxQzJcdTVGQUVcdTUzNUEyXHU2MTQ4XHU1NTg0Mlx1NjIxMVx1NzIzMVx1NEY2MDNcdTYyNEJcdTY3M0EyXHU2MkRCXHU4MDU4Mlx1NjUzRlx1NTJBMTFcdTVFOUMyXHU2NUIwXHU1MkEwXHU1NzYxMlx1OTVGQjJcdTY1RjZcdTVDMUEyXHU2NkY4XHU3QzREMlx1NjczQVx1Njc4NDJcdTZERTFcdTlBNkNcdTk1MjEzXHU2RTM4XHU2MjBGMlx1NkZCM1x1OTU4MDJcdTcwQjlcdTc3MEIyXHU3OUZCXHU1MkE4Mlx1N0VDNFx1N0VDN1x1NjczQVx1Njc4NDRcdTdGNTFcdTU3NDAxXHU1RTk3MVx1N0FEOTFcdTdFREMyXHU4MDU0XHU5MDFBMlx1OEMzN1x1NkI0QzJcdThEMkRcdTcyNjkyXHU5MDFBXHU4Q0E5Mlx1OTZDNlx1NTZFMjJcdTk2RkJcdThBMEFcdTc2QzhcdTc5RDE0XHU5OERFXHU1MjI5XHU2RDY2M1x1OThERlx1NTRDMTJcdTk5MTBcdTUzODUyXHU5OTk5XHU2ODNDXHU5MUNDXHU2MkM5M1x1NkUyRjJcdUIyRjdcdUIxMzcxXHVDRUY0Mlx1QzBCQ1x1QzEzMTJcdUQ1NUNcdUFENkQyIixyOHQ9Im51bWVyaWMiLGE4dD0iYXNjaWkiLGk4dD0iYWxwaGEiLGFyZT0iYXNjaWludW1lcmljIixpcmU9ImFscGhhbnVtZXJpYyIsczh0PSJkb21haW4iLE9Lcj0iZW1vamkiLE5SYT0ic2NoZW1lIixPUmE9InNsYXNoc2NoZW1lIixuOHQ9IndoaXRlc3BhY2UiO2koUlJhLCJyZWdpc3Rlckdyb3VwIik7aShYOSwiYWRkVG9Hcm91cHMiKTtpKEZSYSwiZmxhZ3NGb3JUb2tlbiIpO2koV28sIlN0YXRlIiksV28uZ3JvdXBzPXt9LFdvLnByb3RvdHlwZT17YWNjZXB0cygpe3JldHVybiEhdGhpcy50fSxnbyh0KXtsZXQgZT10aGlzLHI9ZS5qW3RdO2lmKHIpcmV0dXJuIHI7Zm9yKGxldCBhPTA7YTxlLmpyLmxlbmd0aDthKyspe2xldCBzPWUuanJbYV1bMF0sbj1lLmpyW2FdWzFdO2lmKG4mJnMudGVzdCh0KSlyZXR1cm4gbn1yZXR1cm4gZS5qZH0saGFzKHQsZT0hMSl7cmV0dXJuIGU/dCBpbiB0aGlzLmo6ISF0aGlzLmdvKHQpfSx0YSh0LGUscixhKXtmb3IobGV0IHM9MDtzPHQubGVuZ3RoO3MrKyl0aGlzLnR0KHRbc10sZSxyLGEpfSx0cih0LGUscixhKXthPWF8fFdvLmdyb3VwcztsZXQgcztyZXR1cm4gZSYmZS5qP3M9ZToocz1uZXcgV28oZSksciYmYSYmWDkoZSxyLGEpKSx0aGlzLmpyLnB1c2goW3Qsc10pLHN9LHRzKHQsZSxyLGEpe2xldCBzPXRoaXMsbj10Lmxlbmd0aDtpZighbilyZXR1cm4gcztmb3IobGV0IG89MDtvPG4tMTtvKyspcz1zLnR0KHRbb10pO3JldHVybiBzLnR0KHRbbi0xXSxlLHIsYSl9LHR0KHQsZSxyLGEpe2E9YXx8V28uZ3JvdXBzO2xldCBzPXRoaXM7aWYoZSYmZS5qKXJldHVybiBzLmpbdF09ZSxlO2xldCBuPWUsbyxsPXMuZ28odCk7aWYobD8obz1uZXcgV28sT2JqZWN0LmFzc2lnbihvLmosbC5qKSxvLmpyLnB1c2guYXBwbHkoby5qcixsLmpyKSxvLmpkPWwuamQsby50PWwudCk6bz1uZXcgV28sbil7aWYoYSlpZihvLnQmJnR5cGVvZiBvLnQ9PSJzdHJpbmciKXtsZXQgYz1PYmplY3QuYXNzaWduKEZSYShvLnQsYSkscik7WDkobixjLGEpfWVsc2UgciYmWDkobixyLGEpO28udD1ufXJldHVybiBzLmpbdF09byxvfX07enI9aSgodCxlLHIsYSxzKT0+dC50YShlLHIsYSxzKSwidGEiKSxXaT1pKCh0LGUscixhLHMpPT50LnRyKGUscixhLHMpLCJ0ciIpLFJLcj1pKCh0LGUscixhLHMpPT50LnRzKGUscixhLHMpLCJ0cyIpLGl0PWkoKHQsZSxyLGEscyk9PnQudHQoZSxyLGEscyksInR0IiksZDM9IldPUkQiLG84dD0iVVdPUkQiLEZLcj0iQVNDSUlOVU1FUklDQUwiLEJLcj0iQUxQSEFOVU1FUklDQUwiLHNyZT0iTE9DQUxIT1NUIixsOHQ9IlRMRCIsYzh0PSJVVExEIixqaGU9IlNDSEVNRSIsdnc9IlNMQVNIX1NDSEVNRSIsZDh0PSJOVU0iLHU4dD0iV1MiLHA4dD0iTkwiLG5yZT0iT1BFTkJSQUNFIixvcmU9IkNMT1NFQlJBQ0UiLFVoZT0iT1BFTkJSQUNLRVQiLFdoZT0iQ0xPU0VCUkFDS0VUIixHaGU9Ik9QRU5QQVJFTiIsWWhlPSJDTE9TRVBBUkVOIixLaGU9Ik9QRU5BTkdMRUJSQUNLRVQiLFpoZT0iQ0xPU0VBTkdMRUJSQUNLRVQiLFFoZT0iRlVMTFdJRFRITEVGVFBBUkVOIixYaGU9IkZVTExXSURUSFJJR0hUUEFSRU4iLEpoZT0iTEVGVENPUk5FUkJSQUNLRVQiLGU2ZT0iUklHSFRDT1JORVJCUkFDS0VUIix0NmU9IkxFRlRXSElURUNPUk5FUkJSQUNLRVQiLHI2ZT0iUklHSFRXSElURUNPUk5FUkJSQUNLRVQiLGE2ZT0iRlVMTFdJRFRITEVTU1RIQU4iLGk2ZT0iRlVMTFdJRFRIR1JFQVRFUlRIQU4iLHM2ZT0iQU1QRVJTQU5EIixuNmU9IkFQT1NUUk9QSEUiLG82ZT0iQVNURVJJU0siLGVmPSJBVCIsbDZlPSJCQUNLU0xBU0giLGM2ZT0iQkFDS1RJQ0siLGQ2ZT0iQ0FSRVQiLHRmPSJDT0xPTiIsZjh0PSJDT01NQSIsdTZlPSJET0xMQVIiLHhkPSJET1QiLHA2ZT0iRVFVQUxTIixoOHQ9IkVYQ0xBTUFUSU9OIixpMj0iSFlQSEVOIixscmU9IlBFUkNFTlQiLGY2ZT0iUElQRSIsaDZlPSJQTFVTIixtNmU9IlBPVU5EIixjcmU9IlFVRVJZIixtOHQ9IlFVT1RFIixIS3I9IkZVTExXSURUSE1JRERMRURPVCIsZzh0PSJTRU1JIix2ZD0iU0xBU0giLGRyZT0iVElMREUiLGc2ZT0iVU5ERVJTQ09SRSIscUtyPSJFTU9KSSIsYjZlPSJTWU0iLFZLcj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBTFBIQU5VTUVSSUNBTDpCS3IsQU1QRVJTQU5EOnM2ZSxBUE9TVFJPUEhFOm42ZSxBU0NJSU5VTUVSSUNBTDpGS3IsQVNURVJJU0s6bzZlLEFUOmVmLEJBQ0tTTEFTSDpsNmUsQkFDS1RJQ0s6YzZlLENBUkVUOmQ2ZSxDTE9TRUFOR0xFQlJBQ0tFVDpaaGUsQ0xPU0VCUkFDRTpvcmUsQ0xPU0VCUkFDS0VUOldoZSxDTE9TRVBBUkVOOlloZSxDT0xPTjp0ZixDT01NQTpmOHQsRE9MTEFSOnU2ZSxET1Q6eGQsRU1PSkk6cUtyLEVRVUFMUzpwNmUsRVhDTEFNQVRJT046aDh0LEZVTExXSURUSEdSRUFURVJUSEFOOmk2ZSxGVUxMV0lEVEhMRUZUUEFSRU46UWhlLEZVTExXSURUSExFU1NUSEFOOmE2ZSxGVUxMV0lEVEhNSURETEVET1Q6SEtyLEZVTExXSURUSFJJR0hUUEFSRU46WGhlLEhZUEhFTjppMixMRUZUQ09STkVSQlJBQ0tFVDpKaGUsTEVGVFdISVRFQ09STkVSQlJBQ0tFVDp0NmUsTE9DQUxIT1NUOnNyZSxOTDpwOHQsTlVNOmQ4dCxPUEVOQU5HTEVCUkFDS0VUOktoZSxPUEVOQlJBQ0U6bnJlLE9QRU5CUkFDS0VUOlVoZSxPUEVOUEFSRU46R2hlLFBFUkNFTlQ6bHJlLFBJUEU6ZjZlLFBMVVM6aDZlLFBPVU5EOm02ZSxRVUVSWTpjcmUsUVVPVEU6bTh0LFJJR0hUQ09STkVSQlJBQ0tFVDplNmUsUklHSFRXSElURUNPUk5FUkJSQUNLRVQ6cjZlLFNDSEVNRTpqaGUsU0VNSTpnOHQsU0xBU0g6dmQsU0xBU0hfU0NIRU1FOnZ3LFNZTTpiNmUsVElMREU6ZHJlLFRMRDpsOHQsVU5ERVJTQ09SRTpnNmUsVVRMRDpjOHQsVVdPUkQ6bzh0LFdPUkQ6ZDMsV1M6dTh0fSkseWQ9L1thLXpdLyx5dz0vXHB7TH0vdSx4NmU9L1xwe0Vtb2ppfS91LEJSYT0vXHVmZTBmLyx3ZD0vXGQvLHY2ZT0vXHMvLEhSYT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBU0NJSV9MRVRURVI6eWQsRElHSVQ6d2QsRU1PSkk6eDZlLEVNT0pJX1ZBUklBVElPTjpCUmEsTEVUVEVSOnl3LFNQQUNFOnY2ZX0pLGpLcj0iXHIiLGI4dD1gCmAscVJhPSJcdUZFMEYiLFZSYT0iXHUyMDBEIix4OHQ9Ilx1RkZGQyIseTZlPW51bGwsdzZlPW51bGw7aShqUmEsImluaXQkMiIpO2koVUtyLCJydW4kMSIpO2koV0tyLCJzdHJpbmdUb0FycmF5Iik7aShyZiwiZmFzdHRzIik7aShHS3IsImRlY29kZVRsZHMiKTt3dz17ZGVmYXVsdFByb3RvY29sOiJodHRwIixldmVudHM6bnVsbCxmb3JtYXQ6WUtyLGZvcm1hdEhyZWY6WUtyLG5sMmJyOiExLHRhZ05hbWU6ImEiLHRhcmdldDpudWxsLHJlbDpudWxsLHZhbGlkYXRlOiEwLHRydW5jYXRlOjEvMCxjbGFzc05hbWU6bnVsbCxhdHRyaWJ1dGVzOm51bGwsaWdub3JlVGFnczpbXSxyZW5kZXI6bnVsbH07aSh1cmUsIk9wdGlvbnMiKSx1cmUucHJvdG90eXBlPXtvOnd3LGlnbm9yZVRhZ3M6W10sZGVmYXVsdFJlbmRlcih0KXtyZXR1cm4gdH0sY2hlY2sodCl7cmV0dXJuIHRoaXMuZ2V0KCJ2YWxpZGF0ZSIsdC50b1N0cmluZygpLHQpfSxnZXQodCxlLHIpe2xldCBhPWUhPW51bGwscz10aGlzLm9bdF07cmV0dXJuIHMmJih0eXBlb2Ygcz09Im9iamVjdCI/KHM9ci50IGluIHM/c1tyLnRdOnd3W3RdLHR5cGVvZiBzPT0iZnVuY3Rpb24iJiZhJiYocz1zKGUscikpKTp0eXBlb2Ygcz09ImZ1bmN0aW9uIiYmYSYmKHM9cyhlLHIudCxyKSkscyl9LGdldE9iaih0LGUscil7bGV0IGE9dGhpcy5vW3RdO3JldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIiYmZSE9bnVsbCYmKGE9YShlLHIudCxyKSksYX0scmVuZGVyKHQpe2xldCBlPXQucmVuZGVyKHRoaXMpO3JldHVybih0aGlzLmdldCgicmVuZGVyIixudWxsLHQpfHx0aGlzLmRlZmF1bHRSZW5kZXIpKGUsdC50LHQpfX07aShZS3IsIm5vb3AiKTtVUmE9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsT3B0aW9uczp1cmUsZGVmYXVsdHM6d3d9KTtpKHByZSwiTXVsdGlUb2tlbiIpLHByZS5wcm90b3R5cGU9e2lzTGluazohMSx0b1N0cmluZygpe3JldHVybiB0aGlzLnZ9LHRvSHJlZih0KXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx0b0Zvcm1hdHRlZFN0cmluZyh0KXtsZXQgZT10aGlzLnRvU3RyaW5nKCkscj10LmdldCgidHJ1bmNhdGUiLGUsdGhpcyksYT10LmdldCgiZm9ybWF0IixlLHRoaXMpO3JldHVybiByJiZhLmxlbmd0aD5yP2Euc3Vic3RyaW5nKDAscikrIlx1MjAyNiI6YX0sdG9Gb3JtYXR0ZWRIcmVmKHQpe3JldHVybiB0LmdldCgiZm9ybWF0SHJlZiIsdGhpcy50b0hyZWYodC5nZXQoImRlZmF1bHRQcm90b2NvbCIpKSx0aGlzKX0sc3RhcnRJbmRleCgpe3JldHVybiB0aGlzLnRrWzBdLnN9LGVuZEluZGV4KCl7cmV0dXJuIHRoaXMudGtbdGhpcy50ay5sZW5ndGgtMV0uZX0sdG9PYmplY3QodD13dy5kZWZhdWx0UHJvdG9jb2wpe3JldHVybnt0eXBlOnRoaXMudCx2YWx1ZTp0aGlzLnRvU3RyaW5nKCksaXNMaW5rOnRoaXMuaXNMaW5rLGhyZWY6dGhpcy50b0hyZWYodCksc3RhcnQ6dGhpcy5zdGFydEluZGV4KCksZW5kOnRoaXMuZW5kSW5kZXgoKX19LHRvRm9ybWF0dGVkT2JqZWN0KHQpe3JldHVybnt0eXBlOnRoaXMudCx2YWx1ZTp0aGlzLnRvRm9ybWF0dGVkU3RyaW5nKHQpLGlzTGluazp0aGlzLmlzTGluayxocmVmOnRoaXMudG9Gb3JtYXR0ZWRIcmVmKHQpLHN0YXJ0OnRoaXMuc3RhcnRJbmRleCgpLGVuZDp0aGlzLmVuZEluZGV4KCl9fSx2YWxpZGF0ZSh0KXtyZXR1cm4gdC5nZXQoInZhbGlkYXRlIix0aGlzLnRvU3RyaW5nKCksdGhpcyl9LHJlbmRlcih0KXtsZXQgZT10aGlzLHI9dGhpcy50b0hyZWYodC5nZXQoImRlZmF1bHRQcm90b2NvbCIpKSxhPXQuZ2V0KCJmb3JtYXRIcmVmIixyLHRoaXMpLHM9dC5nZXQoInRhZ05hbWUiLHIsZSksbj10aGlzLnRvRm9ybWF0dGVkU3RyaW5nKHQpLG89e30sbD10LmdldCgiY2xhc3NOYW1lIixyLGUpLGM9dC5nZXQoInRhcmdldCIscixlKSxkPXQuZ2V0KCJyZWwiLHIsZSksZj10LmdldE9iaigiYXR0cmlidXRlcyIscixlKSxwPXQuZ2V0T2JqKCJldmVudHMiLHIsZSk7cmV0dXJuIG8uaHJlZj1hLGwmJihvLmNsYXNzPWwpLGMmJihvLnRhcmdldD1jKSxkJiYoby5yZWw9ZCksZiYmT2JqZWN0LmFzc2lnbihvLGYpLHt0YWdOYW1lOnMsYXR0cmlidXRlczpvLGNvbnRlbnQ6bixldmVudExpc3RlbmVyczpwfX19O2koa3csImNyZWF0ZVRva2VuQ2xhc3MiKTt2OHQ9a3coImVtYWlsIix7aXNMaW5rOiEwLHRvSHJlZigpe3JldHVybiJtYWlsdG86Iit0aGlzLnRvU3RyaW5nKCl9fSkseTh0PWt3KCJ0ZXh0IiksS0tyPWt3KCJubCIpLGZyZT1rdygidXJsIix7aXNMaW5rOiEwLHRvSHJlZih0PXd3LmRlZmF1bHRQcm90b2NvbCl7cmV0dXJuIHRoaXMuaGFzUHJvdG9jb2woKT90aGlzLnY6YCR7dH06Ly8ke3RoaXMudn1gfSxoYXNQcm90b2NvbCgpe2xldCB0PXRoaXMudGs7cmV0dXJuIHQubGVuZ3RoPj0yJiZ0WzBdLnQhPT1zcmUmJnRbMV0udD09PXRmfX0pLFpLcj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxCYXNlOnByZSxFbWFpbDp2OHQsTXVsdGlUb2tlbjpwcmUsTmw6S0tyLFRleHQ6eTh0LFVybDpmcmUsY3JlYXRlVG9rZW5DbGFzczprd30pLHMyPWkodD0+bmV3IFdvKHQpLCJtYWtlU3RhdGUiKTtpKFdSYSwiaW5pdCQxIik7aShHUmEsInJ1biIpO2kodzh0LCJpbml0TXVsdGlUb2tlbiIpO2hyZT10eXBlb2YgY29uc29sZTwidSImJmNvbnNvbGUmJmNvbnNvbGUud2Fybnx8KCgpPT57fSksazh0PSJ1bnRpbCBtYW51YWwgY2FsbCBvZiBsaW5raWZ5LmluaXQoKS4gUmVnaXN0ZXIgYWxsIHNjaGVtZXMgYW5kIHBsdWdpbnMgYmVmb3JlIGludm9raW5nIGxpbmtpZnkgdGhlIGZpcnN0IHRpbWUuIixuYT17c2Nhbm5lcjpudWxsLHBhcnNlcjpudWxsLHRva2VuUXVldWU6W10scGx1Z2luUXVldWU6W10sY3VzdG9tU2NoZW1lczpbXSxpbml0aWFsaXplZDohMX07aShTOHQsInJlc2V0Iik7aShZUmEsInJlZ2lzdGVyVG9rZW5QbHVnaW4iKTtpKEtSYSwicmVnaXN0ZXJQbHVnaW4iKTtpKGs2ZSwicmVnaXN0ZXJDdXN0b21Qcm90b2NvbCIpO2koUUtyLCJpbml0Iik7aShTdywidG9rZW5pemUiKSxTdy5zY2FuPVVLcjtpKFM2ZSwiZmluZCIpO2koWlJhLCJ0ZXN0Iil9KTt2YXIgZVpyPXt9O1ZlKGVacix7TGluazooKT0+Qzh0LGRlZmF1bHQ6KCk9PkM4dCxpc0FsbG93ZWRVcmk6KCk9PnUzLHBhc3RlUmVnZXg6KCk9PkpLcn0pO2Z1bmN0aW9uIGVGYSh0KXtyZXR1cm4gdC5sZW5ndGg9PT0xP3RbMF0uaXNMaW5rOnQubGVuZ3RoPT09MyYmdFsxXS5pc0xpbms/WyIoKSIsIltdIl0uaW5jbHVkZXModFswXS52YWx1ZSt0WzJdLnZhbHVlKTohMX1mdW5jdGlvbiB0RmEodCl7cmV0dXJuIG5ldyBRYSh7a2V5Om5ldyBMcygiYXV0b2xpbmsiKSxhcHBlbmRUcmFuc2FjdGlvbjppKChlLHIsYSk9PntsZXQgcz1lLnNvbWUoZD0+ZC5kb2NDaGFuZ2VkKSYmIXIuZG9jLmVxKGEuZG9jKSxuPWUuc29tZShkPT5kLmdldE1ldGEoInByZXZlbnRBdXRvbGluayIpKTtpZighc3x8bilyZXR1cm47bGV0e3RyOm99PWEsbD1oaGUoci5kb2MsWy4uLmVdKTtpZihnaGUobCkuZm9yRWFjaCgoe25ld1JhbmdlOmR9KT0+e2xldCBmPW1oZShhLmRvYyxkLG09Pm0uaXNUZXh0YmxvY2spLHAsaDtpZihmLmxlbmd0aD4xKXA9ZlswXSxoPWEuZG9jLnRleHRCZXR3ZWVuKHAucG9zLHAucG9zK3Aubm9kZS5ub2RlU2l6ZSx2b2lkIDAsIiAiKTtlbHNlIGlmKGYubGVuZ3RoKXtsZXQgbT1hLmRvYy50ZXh0QmV0d2VlbihkLmZyb20sZC50bywiICIsIiAiKTtpZighWFJhLnRlc3QobSkpcmV0dXJuO3A9ZlswXSxoPWEuZG9jLnRleHRCZXR3ZWVuKHAucG9zLGQudG8sdm9pZCAwLCIgIil9aWYocCYmaCl7bGV0IG09aC5zcGxpdChRUmEpLmZpbHRlcihCb29sZWFuKTtpZihtLmxlbmd0aDw9MClyZXR1cm4hMTtsZXQgdj1tW20ubGVuZ3RoLTFdLGI9cC5wb3MraC5sYXN0SW5kZXhPZih2KTtpZighdilyZXR1cm4hMTtsZXQgZz1Tdyh2KS5tYXAoeT0+eS50b09iamVjdCh0LmRlZmF1bHRQcm90b2NvbCkpO2lmKCFlRmEoZykpcmV0dXJuITE7Zy5maWx0ZXIoeT0+eS5pc0xpbmspLm1hcCh5PT4oey4uLnksZnJvbTpiK3kuc3RhcnQrMSx0bzpiK3kuZW5kKzF9KSkuZmlsdGVyKHk9PmEuc2NoZW1hLm1hcmtzLmNvZGU/IWEuZG9jLnJhbmdlSGFzTWFyayh5LmZyb20seS50byxhLnNjaGVtYS5tYXJrcy5jb2RlKTohMCkuZmlsdGVyKHk9PnQudmFsaWRhdGUoeS52YWx1ZSkpLmZpbHRlcih5PT50LnNob3VsZEF1dG9MaW5rKHkudmFsdWUpKS5mb3JFYWNoKHk9Pnt4dyh5LmZyb20seS50byxhLmRvYykuc29tZShrPT5rLm1hcmsudHlwZT09PXQudHlwZSl8fG8uYWRkTWFyayh5LmZyb20seS50byx0LnR5cGUuY3JlYXRlKHtocmVmOnkuaHJlZn0pKX0pfX0pLCEhby5zdGVwcy5sZW5ndGgpcmV0dXJuIG99LCJhcHBlbmRUcmFuc2FjdGlvbiIpfSl9ZnVuY3Rpb24gckZhKHQpe3JldHVybiBuZXcgUWEoe2tleTpuZXcgTHMoImhhbmRsZUNsaWNrTGluayIpLHByb3BzOntoYW5kbGVDbGljazppKChlLHIsYSk9Pnt2YXIgcyxuO2lmKGEuYnV0dG9uIT09MHx8IWUuZWRpdGFibGUpcmV0dXJuITE7bGV0IG89YS50YXJnZXQsbD1bXTtmb3IoO28ubm9kZU5hbWUhPT0iRElWIjspbC5wdXNoKG8pLG89by5wYXJlbnROb2RlO2lmKCFsLmZpbmQoaD0+aC5ub2RlTmFtZT09PSJBIikpcmV0dXJuITE7bGV0IGM9cnJlKGUuc3RhdGUsdC50eXBlLm5hbWUpLGQ9YS50YXJnZXQsZj0ocz1kPy5ocmVmKSE9PW51bGwmJnMhPT12b2lkIDA/czpjLmhyZWYscD0obj1kPy50YXJnZXQpIT09bnVsbCYmbiE9PXZvaWQgMD9uOmMudGFyZ2V0O3JldHVybiBkJiZmPyh3aW5kb3cub3BlbihmLHApLCEwKTohMX0sImhhbmRsZUNsaWNrIil9fSl9ZnVuY3Rpb24gYUZhKHQpe3JldHVybiBuZXcgUWEoe2tleTpuZXcgTHMoImhhbmRsZVBhc3RlTGluayIpLHByb3BzOntoYW5kbGVQYXN0ZTppKChlLHIsYSk9PntsZXR7c3RhdGU6c309ZSx7c2VsZWN0aW9uOm59PXMse2VtcHR5Om99PW47aWYobylyZXR1cm4hMTtsZXQgbD0iIjthLmNvbnRlbnQuZm9yRWFjaChkPT57bCs9ZC50ZXh0Q29udGVudH0pO2xldCBjPVM2ZShsLHtkZWZhdWx0UHJvdG9jb2w6dC5kZWZhdWx0UHJvdG9jb2x9KS5maW5kKGQ9PmQuaXNMaW5rJiZkLnZhbHVlPT09bCk7cmV0dXJuIWx8fCFjPyExOnQuZWRpdG9yLmNvbW1hbmRzLnNldE1hcmsodC50eXBlLHtocmVmOmMuaHJlZn0pfSwiaGFuZGxlUGFzdGUiKX19KX1mdW5jdGlvbiB1Myh0LGUpe2xldCByPVsiaHR0cCIsImh0dHBzIiwiZnRwIiwiZnRwcyIsIm1haWx0byIsInRlbCIsImNhbGx0byIsInNtcyIsImNpZCIsInhtcHAiXTtyZXR1cm4gZSYmZS5mb3JFYWNoKGE9PntsZXQgcz10eXBlb2YgYT09InN0cmluZyI/YTphLnNjaGVtZTtzJiZyLnB1c2gocyl9KSwhdHx8dC5yZXBsYWNlKEpSYSwiIikubWF0Y2gobmV3IFJlZ0V4cChgXig/Oig/OiR7ci5qb2luKCJ8Iil9KTp8W15hLXpdfFthLXowLTkrLi1dKyg/OlteYS16Ky4tOl18JCkpYCwiaSIpKX12YXIgTTh0LFFSYSxYUmEsSlJhLEpLcixDOHQsdFpyPXUoKCk9PntoaSgpO1hLcigpO1B0ZSgpO004dD0iW1wwLSBceEEwXHUxNjgwXHUxODBFXHUyMDAwLVx1MjAyOVx1MjA1Rlx1MzAwMF0iLFFSYT1uZXcgUmVnRXhwKE04dCksWFJhPW5ldyBSZWdFeHAoYCR7TTh0fSRgKSxKUmE9bmV3IFJlZ0V4cChNOHQsImciKTtpKGVGYSwiaXNWYWxpZExpbmtTdHJ1Y3R1cmUiKTtpKHRGYSwiYXV0b2xpbmsiKTtpKHJGYSwiY2xpY2tIYW5kbGVyIik7aShhRmEsInBhc3RlSGFuZGxlciIpO0pLcj0vaHR0cHM/OlwvXC8oPzp3d3dcLik/Wy1hLXpBLVowLTlAOiUuXyt+Iz1dezEsMjU2fVwuW2EtekEtWl17Mix9XGIoPzpbLWEtekEtWjAtOUA6JS5fK34jPT8hJi9dKikoPzpbLWEtekEtWjAtOUA6JS5fK34jPT8hJi9dKikvZ2k7aSh1MywiaXNBbGxvd2VkVXJpIik7Qzh0PU9uLmNyZWF0ZSh7bmFtZToibGluayIscHJpb3JpdHk6MWUzLGtlZXBPblNwbGl0OiExLGV4aXRhYmxlOiEwLG9uQ3JlYXRlKCl7dGhpcy5vcHRpb25zLnZhbGlkYXRlJiYhdGhpcy5vcHRpb25zLnNob3VsZEF1dG9MaW5rJiYodGhpcy5vcHRpb25zLnNob3VsZEF1dG9MaW5rPXRoaXMub3B0aW9ucy52YWxpZGF0ZSxjb25zb2xlLndhcm4oIlRoZSBgdmFsaWRhdGVgIG9wdGlvbiBpcyBkZXByZWNhdGVkLiBSZW5hbWUgdG8gdGhlIGBzaG91bGRBdXRvTGlua2Agb3B0aW9uIGluc3RlYWQuIikpLHRoaXMub3B0aW9ucy5wcm90b2NvbHMuZm9yRWFjaCh0PT57aWYodHlwZW9mIHQ9PSJzdHJpbmciKXtrNmUodCk7cmV0dXJufWs2ZSh0LnNjaGVtZSx0Lm9wdGlvbmFsU2xhc2hlcyl9KX0sb25EZXN0cm95KCl7Uzh0KCl9LGluY2x1c2l2ZSgpe3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b2xpbmt9LGFkZE9wdGlvbnMoKXtyZXR1cm57b3Blbk9uQ2xpY2s6ITAsbGlua09uUGFzdGU6ITAsYXV0b2xpbms6ITAscHJvdG9jb2xzOltdLGRlZmF1bHRQcm90b2NvbDoiaHR0cCIsSFRNTEF0dHJpYnV0ZXM6e3RhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3ciLGNsYXNzOm51bGx9LGlzQWxsb3dlZFVyaTppKCh0LGUpPT4hIXUzKHQsZS5wcm90b2NvbHMpLCJpc0FsbG93ZWRVcmkiKSx2YWxpZGF0ZTppKHQ9PiEhdCwidmFsaWRhdGUiKSxzaG91bGRBdXRvTGluazppKHQ9PiEhdCwic2hvdWxkQXV0b0xpbmsiKX19LGFkZEF0dHJpYnV0ZXMoKXtyZXR1cm57aHJlZjp7ZGVmYXVsdDpudWxsLHBhcnNlSFRNTCh0KXtyZXR1cm4gdC5nZXRBdHRyaWJ1dGUoImhyZWYiKX19LHRhcmdldDp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMudGFyZ2V0fSxyZWw6e2RlZmF1bHQ6dGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLnJlbH0sY2xhc3M6e2RlZmF1bHQ6dGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLmNsYXNzfX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJhW2hyZWZdIixnZXRBdHRyczppKHQ9PntsZXQgZT10LmdldEF0dHJpYnV0ZSgiaHJlZiIpO3JldHVybiFlfHwhdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShlLHtkZWZhdWx0VmFsaWRhdGU6aShyPT4hIXUzKHIsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/ITE6bnVsbH0sImdldEF0dHJzIil9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVybiB0aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKHQuaHJlZix7ZGVmYXVsdFZhbGlkYXRlOmkoZT0+ISF1MyhlLHRoaXMub3B0aW9ucy5wcm90b2NvbHMpLCJkZWZhdWx0VmFsaWRhdGUiKSxwcm90b2NvbHM6dGhpcy5vcHRpb25zLnByb3RvY29scyxkZWZhdWx0UHJvdG9jb2w6dGhpcy5vcHRpb25zLmRlZmF1bHRQcm90b2NvbH0pP1siYSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdOlsiYSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHsuLi50LGhyZWY6IiJ9KSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0TGluazppKHQ9Pih7Y2hhaW46ZX0pPT57bGV0e2hyZWY6cn09dDtyZXR1cm4gdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShyLHtkZWZhdWx0VmFsaWRhdGU6aShhPT4hIXUzKGEsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/ZSgpLnNldE1hcmsodGhpcy5uYW1lLHQpLnNldE1ldGEoInByZXZlbnRBdXRvbGluayIsITApLnJ1bigpOiExfSwic2V0TGluayIpLHRvZ2dsZUxpbms6aSh0PT4oe2NoYWluOmV9KT0+e2xldHtocmVmOnJ9PXQ7cmV0dXJuIHRoaXMub3B0aW9ucy5pc0FsbG93ZWRVcmkocix7ZGVmYXVsdFZhbGlkYXRlOmkoYT0+ISF1MyhhLHRoaXMub3B0aW9ucy5wcm90b2NvbHMpLCJkZWZhdWx0VmFsaWRhdGUiKSxwcm90b2NvbHM6dGhpcy5vcHRpb25zLnByb3RvY29scyxkZWZhdWx0UHJvdG9jb2w6dGhpcy5vcHRpb25zLmRlZmF1bHRQcm90b2NvbH0pP2UoKS50b2dnbGVNYXJrKHRoaXMubmFtZSx0LHtleHRlbmRFbXB0eU1hcmtSYW5nZTohMH0pLnNldE1ldGEoInByZXZlbnRBdXRvbGluayIsITApLnJ1bigpOiExfSwidG9nZ2xlTGluayIpLHVuc2V0TGluazppKCgpPT4oe2NoYWluOnR9KT0+dCgpLnVuc2V0TWFyayh0aGlzLm5hbWUse2V4dGVuZEVtcHR5TWFya1JhbmdlOiEwfSkuc2V0TWV0YSgicHJldmVudEF1dG9saW5rIiwhMCkucnVuKCksInVuc2V0TGluayIpfX0sYWRkUGFzdGVSdWxlcygpe3JldHVybltJMSh7ZmluZDppKHQ9PntsZXQgZT1bXTtpZih0KXtsZXR7cHJvdG9jb2xzOnIsZGVmYXVsdFByb3RvY29sOmF9PXRoaXMub3B0aW9ucyxzPVM2ZSh0KS5maWx0ZXIobj0+bi5pc0xpbmsmJnRoaXMub3B0aW9ucy5pc0FsbG93ZWRVcmkobi52YWx1ZSx7ZGVmYXVsdFZhbGlkYXRlOmkobz0+ISF1MyhvLHIpLCJkZWZhdWx0VmFsaWRhdGUiKSxwcm90b2NvbHM6cixkZWZhdWx0UHJvdG9jb2w6YX0pKTtzLmxlbmd0aCYmcy5mb3JFYWNoKG49PmUucHVzaCh7dGV4dDpuLnZhbHVlLGRhdGE6e2hyZWY6bi5ocmVmfSxpbmRleDpuLnN0YXJ0fSkpfXJldHVybiBlfSwiZmluZCIpLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6aSh0PT57dmFyIGU7cmV0dXJue2hyZWY6KGU9dC5kYXRhKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuaHJlZn19LCJnZXRBdHRyaWJ1dGVzIil9KV19LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe2xldCB0PVtdLHtwcm90b2NvbHM6ZSxkZWZhdWx0UHJvdG9jb2w6cn09dGhpcy5vcHRpb25zO3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b2xpbmsmJnQucHVzaCh0RmEoe3R5cGU6dGhpcy50eXBlLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sLHZhbGlkYXRlOmkoYT0+dGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShhLHtkZWZhdWx0VmFsaWRhdGU6aShzPT4hIXUzKHMsZSksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczplLGRlZmF1bHRQcm90b2NvbDpyfSksInZhbGlkYXRlIiksc2hvdWxkQXV0b0xpbms6dGhpcy5vcHRpb25zLnNob3VsZEF1dG9MaW5rfSkpLHRoaXMub3B0aW9ucy5vcGVuT25DbGljaz09PSEwJiZ0LnB1c2gockZhKHt0eXBlOnRoaXMudHlwZX0pKSx0aGlzLm9wdGlvbnMubGlua09uUGFzdGUmJnQucHVzaChhRmEoe2VkaXRvcjp0aGlzLmVkaXRvcixkZWZhdWx0UHJvdG9jb2w6dGhpcy5vcHRpb25zLmRlZmF1bHRQcm90b2NvbCx0eXBlOnRoaXMudHlwZX0pKSx0fX0pfSk7dmFyIHJacj17fTtWZShyWnIse1R5cG9ncmFwaHk6KCk9Plk4dCxjbG9zZURvdWJsZVF1b3RlOigpPT5MOHQsY2xvc2VTaW5nbGVRdW90ZTooKT0+JDh0LGNvcHlyaWdodDooKT0+STh0LGRlZmF1bHQ6KCk9Plk4dCxlbGxpcHNpczooKT0+Xzh0LGVtRGFzaDooKT0+ejh0LGxhcXVvOigpPT5IOHQsbGVmdEFycm93OigpPT5BOHQsbXVsdGlwbGljYXRpb246KCk9PlY4dCxub3RFcXVhbDooKT0+Qjh0LG9uZUhhbGY6KCk9PlI4dCxvbmVRdWFydGVyOigpPT5XOHQsb3BlbkRvdWJsZVF1b3RlOigpPT5UOHQsb3BlblNpbmdsZVF1b3RlOigpPT5EOHQscGx1c01pbnVzOigpPT5GOHQscmFxdW86KCk9PnE4dCxyZWdpc3RlcmVkVHJhZGVtYXJrOigpPT5POHQscmlnaHRBcnJvdzooKT0+RTh0LHNlcnZpY2VtYXJrOigpPT5OOHQsc3VwZXJzY3JpcHRUaHJlZTooKT0+VTh0LHN1cGVyc2NyaXB0VHdvOigpPT5qOHQsdGhyZWVRdWFydGVyczooKT0+Rzh0LHRyYWRlbWFyazooKT0+UDh0fSk7dmFyIHo4dCxfOHQsVDh0LEw4dCxEOHQsJDh0LEE4dCxFOHQsSTh0LFA4dCxOOHQsTzh0LFI4dCxGOHQsQjh0LEg4dCxxOHQsVjh0LGo4dCxVOHQsVzh0LEc4dCxZOHQsYVpyPXUoKCk9PntoaSgpO3o4dD1pKHQ9PmZpKHtmaW5kOi8tLSQvLHJlcGxhY2U6dD8/Ilx1MjAxNCJ9KSwiZW1EYXNoIiksXzh0PWkodD0+Zmkoe2ZpbmQ6L1wuXC5cLiQvLHJlcGxhY2U6dD8/Ilx1MjAyNiJ9KSwiZWxsaXBzaXMiKSxUOHQ9aSh0PT5maSh7ZmluZDovKD86XnxbXHN7Wyg8JyJcdTIwMThcdTIwMUNdKSgiKSQvLHJlcGxhY2U6dD8/Ilx1MjAxQyJ9KSwib3BlbkRvdWJsZVF1b3RlIiksTDh0PWkodD0+Zmkoe2ZpbmQ6LyIkLyxyZXBsYWNlOnQ/PyJcdTIwMUQifSksImNsb3NlRG91YmxlUXVvdGUiKSxEOHQ9aSh0PT5maSh7ZmluZDovKD86XnxbXHN7Wyg8JyJcdTIwMThcdTIwMUNdKSgnKSQvLHJlcGxhY2U6dD8/Ilx1MjAxOCJ9KSwib3BlblNpbmdsZVF1b3RlIiksJDh0PWkodD0+Zmkoe2ZpbmQ6LyckLyxyZXBsYWNlOnQ/PyJcdTIwMTkifSksImNsb3NlU2luZ2xlUXVvdGUiKSxBOHQ9aSh0PT5maSh7ZmluZDovPC0kLyxyZXBsYWNlOnQ/PyJcdTIxOTAifSksImxlZnRBcnJvdyIpLEU4dD1pKHQ9PmZpKHtmaW5kOi8tPiQvLHJlcGxhY2U6dD8/Ilx1MjE5MiJ9KSwicmlnaHRBcnJvdyIpLEk4dD1pKHQ9PmZpKHtmaW5kOi9cKGNcKSQvLHJlcGxhY2U6dD8/Ilx4QTkifSksImNvcHlyaWdodCIpLFA4dD1pKHQ9PmZpKHtmaW5kOi9cKHRtXCkkLyxyZXBsYWNlOnQ/PyJcdTIxMjIifSksInRyYWRlbWFyayIpLE44dD1pKHQ9PmZpKHtmaW5kOi9cKHNtXCkkLyxyZXBsYWNlOnQ/PyJcdTIxMjAifSksInNlcnZpY2VtYXJrIiksTzh0PWkodD0+Zmkoe2ZpbmQ6L1woclwpJC8scmVwbGFjZTp0Pz8iXHhBRSJ9KSwicmVnaXN0ZXJlZFRyYWRlbWFyayIpLFI4dD1pKHQ9PmZpKHtmaW5kOi8oPzpefFxzKSgxXC8yKVxzJC8scmVwbGFjZTp0Pz8iXHhCRCJ9KSwib25lSGFsZiIpLEY4dD1pKHQ9PmZpKHtmaW5kOi9cK1wvLSQvLHJlcGxhY2U6dD8/Ilx4QjEifSksInBsdXNNaW51cyIpLEI4dD1pKHQ9PmZpKHtmaW5kOi8hPSQvLHJlcGxhY2U6dD8/Ilx1MjI2MCJ9KSwibm90RXF1YWwiKSxIOHQ9aSh0PT5maSh7ZmluZDovPDwkLyxyZXBsYWNlOnQ/PyJceEFCIn0pLCJsYXF1byIpLHE4dD1pKHQ9PmZpKHtmaW5kOi8+PiQvLHJlcGxhY2U6dD8/Ilx4QkIifSksInJhcXVvIiksVjh0PWkodD0+Zmkoe2ZpbmQ6L1xkK1xzPyhbKnhdKVxzP1xkKyQvLHJlcGxhY2U6dD8/Ilx4RDcifSksIm11bHRpcGxpY2F0aW9uIiksajh0PWkodD0+Zmkoe2ZpbmQ6L1xeMiQvLHJlcGxhY2U6dD8/Ilx4QjIifSksInN1cGVyc2NyaXB0VHdvIiksVTh0PWkodD0+Zmkoe2ZpbmQ6L1xeMyQvLHJlcGxhY2U6dD8/Ilx4QjMifSksInN1cGVyc2NyaXB0VGhyZWUiKSxXOHQ9aSh0PT5maSh7ZmluZDovKD86XnxccykoMVwvNClccyQvLHJlcGxhY2U6dD8/Ilx4QkMifSksIm9uZVF1YXJ0ZXIiKSxHOHQ9aSh0PT5maSh7ZmluZDovKD86XnxccykoM1wvNClccyQvLHJlcGxhY2U6dD8/Ilx4QkUifSksInRocmVlUXVhcnRlcnMiKSxZOHQ9a2kuY3JlYXRlKHtuYW1lOiJ0eXBvZ3JhcGh5IixhZGRPcHRpb25zKCl7cmV0dXJue2Nsb3NlRG91YmxlUXVvdGU6Ilx1MjAxRCIsY2xvc2VTaW5nbGVRdW90ZToiXHUyMDE5Iixjb3B5cmlnaHQ6Ilx4QTkiLGVsbGlwc2lzOiJcdTIwMjYiLGVtRGFzaDoiXHUyMDE0IixsYXF1bzoiXHhBQiIsbGVmdEFycm93OiJcdTIxOTAiLG11bHRpcGxpY2F0aW9uOiJceEQ3Iixub3RFcXVhbDoiXHUyMjYwIixvbmVIYWxmOiJceEJEIixvbmVRdWFydGVyOiJceEJDIixvcGVuRG91YmxlUXVvdGU6Ilx1MjAxQyIsb3BlblNpbmdsZVF1b3RlOiJcdTIwMTgiLHBsdXNNaW51czoiXHhCMSIscmFxdW86Ilx4QkIiLHJlZ2lzdGVyZWRUcmFkZW1hcms6Ilx4QUUiLHJpZ2h0QXJyb3c6Ilx1MjE5MiIsc2VydmljZW1hcms6Ilx1MjEyMCIsc3VwZXJzY3JpcHRUaHJlZToiXHhCMyIsc3VwZXJzY3JpcHRUd286Ilx4QjIiLHRocmVlUXVhcnRlcnM6Ilx4QkUiLHRyYWRlbWFyazoiXHUyMTIyIn19LGFkZElucHV0UnVsZXMoKXtsZXQgdD1bXTtyZXR1cm4gdGhpcy5vcHRpb25zLmVtRGFzaCE9PSExJiZ0LnB1c2goejh0KHRoaXMub3B0aW9ucy5lbURhc2gpKSx0aGlzLm9wdGlvbnMuZWxsaXBzaXMhPT0hMSYmdC5wdXNoKF84dCh0aGlzLm9wdGlvbnMuZWxsaXBzaXMpKSx0aGlzLm9wdGlvbnMub3BlbkRvdWJsZVF1b3RlIT09ITEmJnQucHVzaChUOHQodGhpcy5vcHRpb25zLm9wZW5Eb3VibGVRdW90ZSkpLHRoaXMub3B0aW9ucy5jbG9zZURvdWJsZVF1b3RlIT09ITEmJnQucHVzaChMOHQodGhpcy5vcHRpb25zLmNsb3NlRG91YmxlUXVvdGUpKSx0aGlzLm9wdGlvbnMub3BlblNpbmdsZVF1b3RlIT09ITEmJnQucHVzaChEOHQodGhpcy5vcHRpb25zLm9wZW5TaW5nbGVRdW90ZSkpLHRoaXMub3B0aW9ucy5jbG9zZVNpbmdsZVF1b3RlIT09ITEmJnQucHVzaCgkOHQodGhpcy5vcHRpb25zLmNsb3NlU2luZ2xlUXVvdGUpKSx0aGlzLm9wdGlvbnMubGVmdEFycm93IT09ITEmJnQucHVzaChBOHQodGhpcy5vcHRpb25zLmxlZnRBcnJvdykpLHRoaXMub3B0aW9ucy5yaWdodEFycm93IT09ITEmJnQucHVzaChFOHQodGhpcy5vcHRpb25zLnJpZ2h0QXJyb3cpKSx0aGlzLm9wdGlvbnMuY29weXJpZ2h0IT09ITEmJnQucHVzaChJOHQodGhpcy5vcHRpb25zLmNvcHlyaWdodCkpLHRoaXMub3B0aW9ucy50cmFkZW1hcmshPT0hMSYmdC5wdXNoKFA4dCh0aGlzLm9wdGlvbnMudHJhZGVtYXJrKSksdGhpcy5vcHRpb25zLnNlcnZpY2VtYXJrIT09ITEmJnQucHVzaChOOHQodGhpcy5vcHRpb25zLnNlcnZpY2VtYXJrKSksdGhpcy5vcHRpb25zLnJlZ2lzdGVyZWRUcmFkZW1hcmshPT0hMSYmdC5wdXNoKE84dCh0aGlzLm9wdGlvbnMucmVnaXN0ZXJlZFRyYWRlbWFyaykpLHRoaXMub3B0aW9ucy5vbmVIYWxmIT09ITEmJnQucHVzaChSOHQodGhpcy5vcHRpb25zLm9uZUhhbGYpKSx0aGlzLm9wdGlvbnMucGx1c01pbnVzIT09ITEmJnQucHVzaChGOHQodGhpcy5vcHRpb25zLnBsdXNNaW51cykpLHRoaXMub3B0aW9ucy5ub3RFcXVhbCE9PSExJiZ0LnB1c2goQjh0KHRoaXMub3B0aW9ucy5ub3RFcXVhbCkpLHRoaXMub3B0aW9ucy5sYXF1byE9PSExJiZ0LnB1c2goSDh0KHRoaXMub3B0aW9ucy5sYXF1bykpLHRoaXMub3B0aW9ucy5yYXF1byE9PSExJiZ0LnB1c2gocTh0KHRoaXMub3B0aW9ucy5yYXF1bykpLHRoaXMub3B0aW9ucy5tdWx0aXBsaWNhdGlvbiE9PSExJiZ0LnB1c2goVjh0KHRoaXMub3B0aW9ucy5tdWx0aXBsaWNhdGlvbikpLHRoaXMub3B0aW9ucy5zdXBlcnNjcmlwdFR3byE9PSExJiZ0LnB1c2goajh0KHRoaXMub3B0aW9ucy5zdXBlcnNjcmlwdFR3bykpLHRoaXMub3B0aW9ucy5zdXBlcnNjcmlwdFRocmVlIT09ITEmJnQucHVzaChVOHQodGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VGhyZWUpKSx0aGlzLm9wdGlvbnMub25lUXVhcnRlciE9PSExJiZ0LnB1c2goVzh0KHRoaXMub3B0aW9ucy5vbmVRdWFydGVyKSksdGhpcy5vcHRpb25zLnRocmVlUXVhcnRlcnMhPT0hMSYmdC5wdXNoKEc4dCh0aGlzLm9wdGlvbnMudGhyZWVRdWFydGVycykpLHR9fSl9KTt2YXIgU2MsTWMsSzh0PXUoKCk9PntTYz17eHRlcm06IjUuMy4wIix4dGVybUFkZG9uRml0OiIwLjguMCIseHRlcm1BZGRvblNlYXJjaDoiMC4xMy4wIixoaWdobGlnaHRKczoiMTEuMTEuMSIsZWNoYXJ0czoiNS42LjAiLGxpZ2h0d2VpZ2h0Q2hhcnRzOiI1LjEuMCIsdGlwdGFwOiIyLjI3LjIiLGZvbnRhd2Vzb21lOiI3LjIuMCJ9LE1jPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtIn0pO3ZhciBzbixpWnI9dSgoKT0+e0s4dCgpO3NuPWNsYXNzIHR7c3RhdGlje2kodGhpcywiRGVlc1NlcnZpY2VMaWJMb2FkZXIiKX1zdGF0aWMgaW5zdGFuY2U7eHRlcm1MaWI9bnVsbDt4dGVybUZpdEFkZG9uTGliPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxpYj1udWxsO2hpZ2hsaWdodEpzTGliPW51bGw7bGlnaHR3ZWlnaHRDaGFydHNMaWI9bnVsbDtlY2hhcnRzTGliPW51bGw7dGlwdGFwTGliPW51bGw7eHRlcm1Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO2hpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9bnVsbDtsaWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7ZWNoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7dGlwdGFwTG9hZGluZ1Byb21pc2U9bnVsbDtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gdC5pbnN0YW5jZXx8KHQuaW5zdGFuY2U9bmV3IHQpLHQuaW5zdGFuY2V9YXN5bmMgbG9hZFh0ZXJtKCl7cmV0dXJuIHRoaXMueHRlcm1MaWI/dGhpcy54dGVybUxpYjp0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybUxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgcj1hd2FpdCBpbXBvcnQoYCR7TWN9L3h0ZXJtQCR7U2MueHRlcm19Lytlc21gKTtyZXR1cm4gYXdhaXQgdGhpcy5pbmplY3RYdGVybVN0eWxlcygpLHRoaXMueHRlcm1MaWI9e1Rlcm1pbmFsOnIuVGVybWluYWx9LHRoaXMueHRlcm1MaWJ9KSgpLHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFh0ZXJtRml0QWRkb24oKXtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliP3RoaXMueHRlcm1GaXRBZGRvbkxpYjp0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZToodGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgcj1hd2FpdCBpbXBvcnQoYCR7TWN9L3h0ZXJtLWFkZG9uLWZpdEAke1NjLnh0ZXJtQWRkb25GaXR9Lytlc21gKTtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliPXtGaXRBZGRvbjpyLkZpdEFkZG9ufSx0aGlzLnh0ZXJtRml0QWRkb25MaWJ9KSgpLHRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1TZWFyY2hBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI/dGhpcy54dGVybVNlYXJjaEFkZG9uTGliOnRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCByPWF3YWl0IGltcG9ydChgJHtNY30veHRlcm0tYWRkb24tc2VhcmNoQCR7U2MueHRlcm1BZGRvblNlYXJjaH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI9e1NlYXJjaEFkZG9uOnIuU2VhcmNoQWRkb259LHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYn0pKCksdGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzKCl7bGV0IGU9Inh0ZXJtLWNkbi1zdHlsZXMiO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKXJldHVybjtsZXQgcj1gJHtNY30veHRlcm1AJHtTYy54dGVybX0vY3NzL3h0ZXJtLmNzc2Ascz1hd2FpdChhd2FpdCBmZXRjaChyKSkudGV4dCgpLG49YAovKiBGaXggeHRlcm0uanMgV2lkdGhDYWNoZSBtZWFzdXJlbWVudCBjb250YWluZXIgY2F1c2luZyBob3Jpem9udGFsIHNjcm9sbGJhciAqLwovKiB4dGVybSBjcmVhdGVzIHRoaXMgb24gZG9jdW1lbnQuYm9keSAtIG1vdmUgaXQgb2ZmLXNjcmVlbiBob3Jpem9udGFsbHkgdG9vICovCmJvZHkgPiBkaXZbc3R5bGUqPSJ0b3A6IC01MDAwMHB4Il1bc3R5bGUqPSJ3aWR0aDogNTAwMDBweCJdIHsKICBsZWZ0OiAtNTAwMDBweCAhaW1wb3J0YW50Owp9CmAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO28uaWQ9ZSxvLnRleHRDb250ZW50PXMrbixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pfWFzeW5jIGxvYWRIaWdobGlnaHRKcygpe3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliP3RoaXMuaGlnaGxpZ2h0SnNMaWI6dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlP3RoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZToodGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke01jfS9oaWdobGlnaHQuanNAJHtTYy5oaWdobGlnaHRKc30vK2VzbWApO3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliPXIuZGVmYXVsdCx0aGlzLmhpZ2hsaWdodEpzTGlifSkoKSx0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRMaWdodHdlaWdodENoYXJ0cygpe3JldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliP3RoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI6dGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlP3RoaXMubGlnaHR3ZWlnaHRDaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke01jfS9saWdodHdlaWdodC1jaGFydHNAJHtTYy5saWdodHdlaWdodENoYXJ0c30vK2VzbWApO3JldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliPXtjcmVhdGVDaGFydDpyLmNyZWF0ZUNoYXJ0LEFyZWFTZXJpZXM6ci5BcmVhU2VyaWVzLExpbmVTZXJpZXM6ci5MaW5lU2VyaWVzLENvbG9yVHlwZTpyLkNvbG9yVHlwZSxMaW5lVHlwZTpyLkxpbmVUeXBlLENyb3NzaGFpck1vZGU6ci5Dcm9zc2hhaXJNb2RlfSx0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGlifSkoKSx0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRFY2hhcnRzKCl7cmV0dXJuIHRoaXMuZWNoYXJ0c0xpYj90aGlzLmVjaGFydHNMaWI6dGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U6KHRoaXMuZWNoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke01jfS9lY2hhcnRzQCR7U2MuZWNoYXJ0c30vZGlzdC9lY2hhcnRzLmVzbS5taW4uanNgKTtyZXR1cm4gdGhpcy5lY2hhcnRzTGliPXtpbml0OnIuaW5pdCxkaXNwb3NlOnIuZGlzcG9zZSxnZXRJbnN0YW5jZUJ5RG9tOnIuZ2V0SW5zdGFuY2VCeURvbX0sdGhpcy5lY2hhcnRzTGlifSkoKSx0aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFRpcHRhcCgpe3JldHVybiB0aGlzLnRpcHRhcExpYj90aGlzLnRpcHRhcExpYjp0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlP3RoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U6KHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXRbZSxyLGEscyxuLG9dPWF3YWl0IFByb21pc2UuYWxsKFtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oaGkoKSxPWXIpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oQUtyKCksJEtyKSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KElLcigpLEVLcikpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihOS3IoKSxQS3IpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odFpyKCksZVpyKSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGFacigpLHJacikpXSk7cmV0dXJuIHRoaXMudGlwdGFwTGliPXtFZGl0b3I6ZS5FZGl0b3IsU3RhcnRlcktpdDpyLmRlZmF1bHR8fHIuU3RhcnRlcktpdCxVbmRlcmxpbmU6YS5kZWZhdWx0fHxhLlVuZGVybGluZSxUZXh0QWxpZ246cy5kZWZhdWx0fHxzLlRleHRBbGlnbixMaW5rOm4uZGVmYXVsdHx8bi5MaW5rLFR5cG9ncmFwaHk6by5kZWZhdWx0fHxvLlR5cG9ncmFwaHl9LHRoaXMudGlwdGFwTGlifSkoKSx0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlKX1hc3luYyBwcmVsb2FkQWxsKCl7YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZFh0ZXJtKCksdGhpcy5sb2FkWHRlcm1GaXRBZGRvbigpLHRoaXMubG9hZFh0ZXJtU2VhcmNoQWRkb24oKSx0aGlzLmxvYWRIaWdobGlnaHRKcygpLHRoaXMubG9hZExpZ2h0d2VpZ2h0Q2hhcnRzKCksdGhpcy5sb2FkRWNoYXJ0cygpLHRoaXMubG9hZFRpcHRhcCgpXSl9aXNMb2FkZWQoZSl7c3dpdGNoKGUpe2Nhc2UieHRlcm0iOnJldHVybiB0aGlzLnh0ZXJtTGliIT09bnVsbDtjYXNlInh0ZXJtRml0QWRkb24iOnJldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWIhPT1udWxsO2Nhc2UieHRlcm1TZWFyY2hBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYiE9PW51bGw7Y2FzZSJoaWdobGlnaHRKcyI6cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWIhPT1udWxsO2Nhc2UibGlnaHR3ZWlnaHRDaGFydHMiOnJldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliIT09bnVsbDtjYXNlImVjaGFydHMiOnJldHVybiB0aGlzLmVjaGFydHNMaWIhPT1udWxsO2Nhc2UidGlwdGFwIjpyZXR1cm4gdGhpcy50aXB0YXBMaWIhPT1udWxsO2RlZmF1bHQ6cmV0dXJuITF9fX19KTt2YXIgcDM9dSgoKT0+e2lacigpO0s4dCgpfSk7dmFyIG1yZSxzWnI9dSgoKT0+e2xsKCk7dmUoKTtuZCgpO19zKCk7cGZlKCk7cDMoKTttcmU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJDb2RlQmxvY2tIYW5kbGVyIil9dHlwZT0iY29kZSI7aGlnaGxpZ2h0VGltZXI9bnVsbDtoaWdobGlnaHRKcz1udWxsO3JlbmRlcihlLHIpe2xldCBhPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCIscz1lLmNvbnRlbnR8fCIiLG49cy5zcGxpdChgCmApLmxlbmd0aCxvPSIiO2ZvcihsZXQgYz0xO2M8PW47YysrKW8rPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtjfTwvZGl2PmA7bGV0IGw9dnRlLm1hcChjPT57bGV0IGQ9Yy50b0xvd2VyQ2FzZSgpO3JldHVybmA8b3B0aW9uIHZhbHVlPSIke2R9IiAke2Q9PT1hPyJzZWxlY3RlZCI6IiJ9PiR7Y308L29wdGlvbj5gfSkuam9pbigiIik7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrLWNvbnRhaW5lciR7cj8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtbGFuZ3VhZ2U9IiR7YX0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtaGVhZGVyIj4KICAgICAgICAgIDxzZWxlY3QgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIiBkYXRhLWJsb2NrLWlkPSIke2UuaWR9Ij4KICAgICAgICAgICAgJHtsfQogICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWJ1dHRvbiIgdGl0bGU9IkNvcHkgY29kZSI+CiAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNvcHktaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTAgNi43NUMwIDUuNzg0Ljc4NCA1IDEuNzUgNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di0xLjVhLjc1Ljc1IDAgMDExLjUgMHYxLjVBMS43NSAxLjc1IDAgMDE5LjI1IDE2aC03LjVBMS43NSAxLjc1IDAgMDEwIDE0LjI1di03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMS43NUM1IC43ODQgNS43ODQgMCA2Ljc1IDBoNy41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxMWgtNy41QTEuNzUgMS43NSAwIDAxNSA5LjI1di03LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNy41eiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdGV4dCI+Q29weTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYm9keSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlcnMiPiR7b308L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtY29udGVudCI+CiAgICAgICAgICAgIDxwcmUgY2xhc3M9ImNvZGUtcHJlIj48Y29kZSBjbGFzcz0iY29kZS1lZGl0b3IiIAogICAgICAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbChzKX08L2NvZGU+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKSxvPWUucXVlcnlTZWxlY3RvcigiLmNvcHktYnV0dG9uIiksbD1lLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1zZWxlY3RvciIpO2lmKCFzfHwhbilyZXR1cm47bCYmbC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGQ9PntsZXQgZj1kLnRhcmdldC52YWx1ZTtyLm1ldGFkYXRhPXsuLi5yLm1ldGFkYXRhLGxhbmd1YWdlOmZ9LG4uc2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIixmKSxyLmNvbnRlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1zJiZ0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsciksYS5vbklucHV0JiZhLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpfSksbyYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2xldCBkPXMudGV4dENvbnRlbnR8fCIiO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChkKTtsZXQgZj1vLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSxwPWYudGV4dENvbnRlbnQ7Zi50ZXh0Q29udGVudD0iQ29waWVkISIsby5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57Zi50ZXh0Q29udGVudD1wLG8uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6IixmKTtsZXQgcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO3AudmFsdWU9ZCxwLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIscC5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHApLHAuc2VsZWN0KCk7dHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7bGV0IGg9by5xdWVyeVNlbGVjdG9yKCIuY29weS10ZXh0IiksbT1oLnRleHRDb250ZW50O2gudGV4dENvbnRlbnQ9IkNvcGllZCEiLG8uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dCgoKT0+e2gudGV4dENvbnRlbnQ9bSxvLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfWNhdGNoKGgpe2NvbnNvbGUuZXJyb3IoIkZhbGxiYWNrIGNvcHkgZmFpbGVkOiIsaCl9ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwKX19KTtsZXQgYz0hMTtzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2M9ITAsbi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIik7bGV0IGQ9cy50ZXh0Q29udGVudHx8IiI7cy50ZXh0Q29udGVudD1kLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCBmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkscD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7cy5maXJzdENoaWxkJiYoZi5zZXRTdGFydChzLmZpcnN0Q2hpbGQsMCksZi5jb2xsYXBzZSghMCkscD8ucmVtb3ZlQWxsUmFuZ2VzKCkscD8uYWRkUmFuZ2UoZikpfSksYS5vbkZvY3VzKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Yz0hMSxuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSx0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsciksYS5vbkJsdXIoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGQ9PnthLm9uSW5wdXQoZCksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKSxjbGVhclRpbWVvdXQodGhpcy5oaWdobGlnaHRUaW1lcil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntpZihkLmtleT09PSJUYWIiKXtkLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGYmJmYucmFuZ2VDb3VudD4wKXtsZXQgcD1mLmdldFJhbmdlQXQoMCksaD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICAiKTtwLmluc2VydE5vZGUoaCkscC5zZXRTdGFydEFmdGVyKGgpLHAuc2V0RW5kQWZ0ZXIoaCksZi5yZW1vdmVBbGxSYW5nZXMoKSxmLmFkZFJhbmdlKHApLGEub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKX1yZXR1cm59aWYoWyJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkFycm93RG93biJdLmluY2x1ZGVzKGQua2V5KSl7bGV0IGY9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKSxwPXMudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihkLmtleT09PSJBcnJvd0xlZnQiJiZmPT09MHx8ZC5rZXk9PT0iQXJyb3dSaWdodCImJmY9PT1wKXthLm9uS2V5RG93bihkKTtyZXR1cm59aWYoZC5rZXk9PT0iQXJyb3dVcCJ8fGQua2V5PT09IkFycm93RG93biIpe2xldCBoPShzLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKSxtPXRoaXMuZ2V0Q3VycmVudExpbmVJbmRleChzKTtpZihkLmtleT09PSJBcnJvd1VwIiYmbT09PTB8fGQua2V5PT09IkFycm93RG93biImJm09PT1oLmxlbmd0aC0xKXthLm9uS2V5RG93bihkKTtyZXR1cm59fX1hLm9uS2V5RG93bihkKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGQ9PntkLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9ZC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCJ0ZXh0L3BsYWluIik7aWYoZil7bGV0IHA9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHAmJnAucmFuZ2VDb3VudD4wKXtsZXQgaD1wLmdldFJhbmdlQXQoMCk7aC5kZWxldGVDb250ZW50cygpO2xldCBtPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGYpO2guaW5zZXJ0Tm9kZShtKSxoLnNldFN0YXJ0QWZ0ZXIobSksaC5zZXRFbmRBZnRlcihtKSxwLnJlbW92ZUFsbFJhbmdlcygpLHAuYWRkUmFuZ2UoaCksYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpfX19KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT5hLm9uQ29tcG9zaXRpb25TdGFydCgpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+YS5vbkNvbXBvc2l0aW9uRW5kKCkpLHIuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXMmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSxyKX0pfXVwZGF0ZUxpbmVOdW1iZXJzKGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIiksYT1lLnF1ZXJ5U2VsZWN0b3IoIi5saW5lLW51bWJlcnMiKTtpZighcnx8IWEpcmV0dXJuO2xldCBvPShyLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKS5sZW5ndGh8fDEsbD0iIjtmb3IobGV0IGM9MTtjPD1vO2MrKylsKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7Y308L2Rpdj5gO2EuaW5uZXJIVE1MPWx9Z2V0Q3VycmVudExpbmVJbmRleChlKXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXJ8fHIucmFuZ2VDb3VudD09PTApcmV0dXJuIDA7bGV0IGE9ci5nZXRSYW5nZUF0KDApLHM9YS5jbG9uZVJhbmdlKCk7cmV0dXJuIHMuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpLHMuc2V0RW5kKGEuc3RhcnRDb250YWluZXIsYS5zdGFydE9mZnNldCkscy50b1N0cmluZygpLnNwbGl0KGAKYCkubGVuZ3RoLTF9YXN5bmMgYXBwbHlIaWdobGlnaHRpbmcoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCFhKXJldHVybjt0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCBzbi5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgcz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpLG49YS50ZXh0Q29udGVudHx8IiIsbz1yLm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiO3RyeXtsZXQgbD10aGlzLmhpZ2hsaWdodEpzLmhpZ2hsaWdodChuLHtsYW5ndWFnZTpvLGlnbm9yZUlsbGVnYWxzOiEwfSk7bC52YWx1ZSYmKGEuaW5uZXJIVE1MPWwudmFsdWUsZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWEmJnMhPT1udWxsJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntodC5zZXRDdXJzb3JQb3NpdGlvbihhLHMpfSkpfWNhdGNoKGwpe2NvbnNvbGUud2FybigiU3ludGF4IGhpZ2hsaWdodGluZyBmYWlsZWQ6IixsKX19ZXNjYXBlSHRtbChlKXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD1lLHIuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIGUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LnRleHRDb250ZW50fHwiIn1zZXRDb250ZW50KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZihhJiYoYS50ZXh0Q29udGVudD1yLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEpKXtsZXQgcz17aWQ6YS5kYXRhc2V0LmJsb2NrSWR8fCIiLHR5cGU6ImNvZGUiLGNvbnRlbnQ6cixtZXRhZGF0YTp7bGFuZ3VhZ2U6ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIil8fCJ0eXBlc2NyaXB0In19O3RoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSxzKX19Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZighcilyZXR1cm4gbnVsbDtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWF8fGEucmFuZ2VDb3VudD09PTApcmV0dXJuIG51bGw7bGV0IHM9YS5nZXRSYW5nZUF0KDApO2lmKCFyLmNvbnRhaW5zKHMuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIG4uc2VsZWN0Tm9kZUNvbnRlbnRzKHIpLG4uc2V0RW5kKHMuc3RhcnRDb250YWluZXIscy5zdGFydE9mZnNldCksbi50b1N0cmluZygpLmxlbmd0aH1zZXRDdXJzb3JUb1N0YXJ0KGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7ciYmaHQuc2V0Q3Vyc29yUG9zaXRpb24ociwwKX1zZXRDdXJzb3JUb0VuZChlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKHIpe2xldCBhPXIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtodC5zZXRDdXJzb3JQb3NpdGlvbihyLGEpfX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7YSYmKGEuZm9jdXMoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntyPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIHI9PSJudW1iZXIiJiZodC5zZXRDdXJzb3JQb3NpdGlvbihhLHIpfSkpfWdldFNwbGl0Q29udGVudChlKXtsZXQgcj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO2lmKHI9PT1udWxsKXJldHVybiBudWxsO2xldCBhPXRoaXMuZ2V0Q29udGVudChlKTtyZXR1cm57YmVmb3JlOmEuc3Vic3RyaW5nKDAsciksYWZ0ZXI6YS5zdWJzdHJpbmcocil9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQ29kZSBCbG9jayBDb250YWluZXIgLSBNaW5pbWFsaXN0IHNoYWRjbiBzdHlsZSAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAtIFNpbXBsaWZpZWQgKi8KICAgICAgLmNvZGUtaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb3B5IEJ1dHRvbiAtIE1pbmltYWwgKi8KICAgICAgLmNvcHktYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b24uY29waWVkIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciAuY29weS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAuY29weS10ZXh0IHsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2RlIEJvZHkgKi8KICAgICAgLmNvZGUtYm9keSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBMaW5lIE51bWJlcnMgLSBTdWJ0bGUgKi8KICAgICAgLmxpbmUtbnVtYmVycyB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgOHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7bTl9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQ29udGVudCAqLwogICAgICAuY29kZS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1wcmUgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7bTl9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQogICAgICAKICAgICAgLyogUGxhY2Vob2xkZXIgKi8KICAgICAgLmNvZGUtZWRpdG9yOmVtcHR5OjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICIvLyBUeXBlIG9yIHBhc3RlIGNvZGUgaGVyZS4uLiI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogV2hlbiBlZGl0aW5nIChmb2N1c2VkKSwgc2hvdyBncmV5IHRleHQgd2l0aG91dCBoaWdobGlnaHRpbmcgKi8KICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciAqIHsKICAgICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAvKiBTeW50YXggSGlnaGxpZ2h0aW5nIC0gTXV0ZWQgY29sb3JzICovCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1rZXl3b3JkIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zdHJpbmcgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1udW1iZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWNvbW1lbnQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzZiNzI4MCIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdmFyaWFibGUsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY2xhc3MsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10aXRsZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcGFyYW1zIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYnVpbHRfaW4gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1saXRlcmFsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbWV0YSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXB1bmN0dWF0aW9uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZDFkNWRiIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdGFnIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0cmlidXRlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItdGFnIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1pZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2VsZWN0aW9uICovCiAgICAgIC5jb2RlLWVkaXRvcjo6c2VsZWN0aW9uLAogICAgICAuY29kZS1lZGl0b3IgKjo6c2VsZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg5OSwgMTAyLCAyNDEsIDAuMikiLCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4zKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgLSBNaW5pbWFsICovCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgYH19fSk7dmFyIGdyZSxuWnI9dSgoKT0+e2xsKCk7dmUoKTtyMygpO25kKCk7Z3JlPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiTGlzdEJsb2NrSGFuZGxlciIpfXR5cGU9Imxpc3QiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUscil7bGV0IGE9cj8iIHNlbGVjdGVkIjoiIixuPShlLm1ldGFkYXRhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixvPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBsaXN0JHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgPiR7b308L2Rpdj4KICAgIGB9cmVuZGVyTGlzdENvbnRlbnQoZSxyKXtpZighZSlyZXR1cm4iPHVsPjxsaT48L2xpPjwvdWw+IjtsZXQgcz0ocj8ubGlzdFR5cGV8fCJ1bm9yZGVyZWQiKT09PSJvcmRlcmVkIj8ib2wiOiJ1bCIsbj1lLnNwbGl0KGAKYCkuZmlsdGVyKGw9PmwudHJpbSgpKTtpZihuLmxlbmd0aD09PTApcmV0dXJuYDwke3N9PjxsaT48L2xpPjwvJHtzfT5gO2xldCBvPW4ubWFwKGw9PmA8bGk+JHtsfTwvbGk+YCkuam9pbigiIik7cmV0dXJuYDwke3N9PiR7b308LyR7c30+YH1zZXR1cChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFzKXtjb25zb2xlLmVycm9yKCJMaXN0QmxvY2tIYW5kbGVyLnNldHVwOiBObyBsaXN0IGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59ci5jb250ZW50JiYhcy5pbm5lckhUTUwmJihzLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHIuY29udGVudCxyLm1ldGFkYXRhKSkscy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYobyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe2xldCBsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihsJiZsLnJhbmdlQ291bnQ+MCl7bGV0IGQ9bC5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYoZCYmZC50ZXh0Q29udGVudD09PSIiKXtuLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24obik7cmV0dXJufX19YS5vbktleURvd24obil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSkscy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSkscy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHMscil9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscixhKXtsZXQgcz1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGM9ci5nZXRSb290Tm9kZSgpLmhvc3QsZj1jPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxwPWM/LnNoYWRvd1Jvb3QsaD1bXTtmJiZoLnB1c2goZikscCYmaC5wdXNoKHApO2xldCBtPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uaCk7aWYoIW0pcmV0dXJuO2xldCB2PWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsbS5zdGFydENvbnRhaW5lciksYj1odC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLG0uZW5kQ29udGFpbmVyKTtpZih2fHxiKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZz1odC5jcmVhdGVSYW5nZUZyb21JbmZvKG0pLHk9Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZyxyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIscyksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXM7bGV0IG49ci5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHIpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDpyLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBMaXN0IHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2subGlzdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgdWwsCiAgICAgIC5ibG9jay5saXN0IG9sIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXI/LnNoYWRvd1Jvb3QsYz1bXTtvJiZjLnB1c2gobyksbCYmYy5wdXNoKGwpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoIWR8fCFodC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGQuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGYuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLGYuc2V0RW5kKGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksZi50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybiIiO2xldCBzPWEucXVlcnlTZWxlY3RvckFsbCgibGkiKTtyZXR1cm4gQXJyYXkuZnJvbShzKS5tYXAobz0+by50ZXh0Q29udGVudHx8IiIpLmpvaW4oYApgKX1zZXRDb250ZW50KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXMpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zLGw9cy5xdWVyeVNlbGVjdG9yKCJ1bCwgb2wiKT8udGFnTmFtZT09PSJPTCI7cy5pbm5lckhUTUw9dGhpcy5yZW5kZXJMaXN0Q29udGVudChyLHtsaXN0VHlwZTpsPyJvcmRlcmVkIjoidW5vcmRlcmVkIn0pLG4mJnMuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybjtsZXQgcz1hLnF1ZXJ5U2VsZWN0b3IoImxpIik7aWYocyl7bGV0IG49dGhpcy5nZXRGaXJzdFRleHROb2RlKHMpO2lmKG4pe2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7by5zZXRTdGFydChuLDApLG8uc2V0RW5kKG4sMCksbD8ucmVtb3ZlQWxsUmFuZ2VzKCksbD8uYWRkUmFuZ2Uobyl9fX1zZXRDdXJzb3JUb0VuZChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm47bGV0IHM9YS5xdWVyeVNlbGVjdG9yKCJsaTpsYXN0LWNoaWxkIik7aWYocyl7bGV0IG49dGhpcy5nZXRMYXN0VGV4dE5vZGUocyk7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKSxjPW4udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtvLnNldFN0YXJ0KG4sYyksby5zZXRFbmQobixjKSxsPy5yZW1vdmVBbGxSYW5nZXMoKSxsPy5hZGRSYW5nZShvKX19fWdldEZpcnN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgcj0wO3I8ZS5jaGlsZE5vZGVzLmxlbmd0aDtyKyspe2xldCBhPXRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbcl0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IHI9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO3I+PTA7ci0tKXtsZXQgYT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbcl0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9Zm9jdXMoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7YSYmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWEmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUscj0iZW5kIixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXMpcmV0dXJuO3MuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8cy5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxzLmZvY3VzKCk7bGV0IG49aSgoKT0+e3I9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGEpOnI9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHI9PSJudW1iZXIiJiZ0aGlzLnNldEN1cnNvclRvRW5kKGUsYSl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cz9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cykmJm4oKX0pfWdldFNwbGl0Q29udGVudChlLHIpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0IiksbnVsbH19fSk7dmFyIGJyZSxvWnI9dSgoKT0+e2xsKCk7dmUoKTticmU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJJbWFnZUJsb2NrSGFuZGxlciIpfXR5cGU9ImltYWdlIjtyZW5kZXIoZSxyKXtsZXQgYT1lLm1ldGFkYXRhPy51cmwscz1lLmNvbnRlbnR8fCJJbWFnZSIsbj1lLm1ldGFkYXRhPy5sb2FkaW5nO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWhhcy1pbWFnZT0iJHshIWF9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAke24/dGhpcy5yZW5kZXJMb2FkaW5nKCk6YT90aGlzLnJlbmRlckltYWdlKGEscyk6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpfQogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiAKICAgICAgICAgICAgICAgY2xhc3M9ImltYWdlLWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBhY2NlcHQ9ImltYWdlLyoiIAogICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLWljb24iIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iOC41IiBjeT0iOC41IiByPSIxLjUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjEgMTUgMTYgMTAgNSAyMSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXRleHQiIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPkNsaWNrIHRvIHVwbG9hZCBhbiBpbWFnZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1oaW50IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJJbWFnZShlLHIpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtY29udGFpbmVyIj4KICAgICAgICA8aW1nIHNyYz0iJHtlfSIgYWx0PSIke3RoaXMuZXNjYXBlSHRtbChyKX0iIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJMb2FkaW5nKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS1sb2FkaW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGV4dCI+VXBsb2FkaW5nIGltYWdlLi4uPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1maWxlLWlucHV0Iik7aWYoIXMpe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBjb250YWluZXIiKTtyZXR1cm59aWYoIW4pe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBmaWxlIGlucHV0Iik7cmV0dXJufWxldCBvPXMucXVlcnlTZWxlY3RvcigiLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFBsYWNlaG9sZGVyIGNsaWNrZWQsIG9wZW5pbmcgZmlsZSBzZWxlY3RvciIpLG4uY2xpY2soKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5vbkZvY3VzKCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgbD0+e2xldCBkPWwudGFyZ2V0LmZpbGVzPy5bMF07ZCYmKGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogRmlsZSBzZWxlY3RlZDoiLGQubmFtZSksYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGQscixhKSl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksci5tZXRhZGF0YT8udXJsfHxzLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSkscy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSkscy5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixhc3luYyBsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCkscy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTtsZXQgYz1sLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07YyYmYy50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiYhci5tZXRhZGF0YT8udXJsJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVVcGxvYWQoYyxyLGEpfSkscy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntpZigobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJnIubWV0YWRhdGE/LnVybCl7ci5tZXRhZGF0YS51cmw9dm9pZCAwLHIubWV0YWRhdGEubG9hZGluZz0hMSxyLmNvbnRlbnQ9IiIsYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKTtyZXR1cm59YS5vbktleURvd24obCl9KX1hc3luYyBoYW5kbGVGaWxlVXBsb2FkKGUscixhKXtpZihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFN0YXJ0aW5nIGZpbGUgdXBsb2FkIix7ZmlsZU5hbWU6ZS5uYW1lLGZpbGVTaXplOmUuc2l6ZSxibG9ja0lkOnIuaWR9KSwhZS50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLGUudHlwZSk7cmV0dXJufWxldCBzPTEwKjEwMjQqMTAyNDtpZihlLnNpemU+cyl7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2UuIE1heGltdW0gc2l6ZSBpcyAxME1CIik7cmV0dXJufXIubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLmxvYWRpbmc9ITAsci5tZXRhZGF0YS5maWxlTmFtZT1lLm5hbWUsci5tZXRhZGF0YS5maWxlU2l6ZT1lLnNpemUsci5tZXRhZGF0YS5taW1lVHlwZT1lLnR5cGUsY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTZXQgbG9hZGluZyBzdGF0ZSwgcmVxdWVzdGluZyB1cGRhdGUiKSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7dHJ5e2xldCBuPWF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChlKTtyLm1ldGFkYXRhLnVybD1uLHIubWV0YWRhdGEubG9hZGluZz0hMTtsZXQgbz1lLm5hbWUucmVwbGFjZSgvXC5bXi8uXSskLywiIik7ci5jb250ZW50PW8sY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBVcGxvYWQgY29tcGxldGUsIHJlcXVlc3RpbmcgdXBkYXRlIix7aGFzVXJsOiEhci5tZXRhZGF0YS51cmwsdXJsTGVuZ3RoOm4ubGVuZ3RoLGFsdFRleHQ6ci5jb250ZW50fSksYS5vblJlcXVlc3RVcGRhdGU/LigpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGxvYWQgaW1hZ2U6IixuKSxyLm1ldGFkYXRhLmxvYWRpbmc9ITEsYS5vblJlcXVlc3RVcGRhdGU/LigpfX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgocixhKT0+e2xldCBzPW5ldyBGaWxlUmVhZGVyO3Mub25sb2FkPW49PntsZXQgbz1uLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBvPT0ic3RyaW5nIj9yKG8pOmEobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxzLm9uZXJyb3I9YSxzLnJlYWRBc0RhdGFVUkwoZSl9KX1lc2NhcGVIdG1sKGUpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiByLnRleHRDb250ZW50PWUsci5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUscil7bGV0IGE9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2EmJihhLmNvbnRlbnQ9cil9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXt0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe3RoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUscj0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBJbWFnZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBVcGxvYWQgUGxhY2Vob2xkZXIgKi8KICAgICAgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lcjpob3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWZmNmZmIiwiIzFlMWI0YiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnVwbG9hZC1pY29uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEltYWdlIENvbnRhaW5lciAqLwogICAgICAuaW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtY29udGFpbmVyIGltZyB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExvYWRpbmcgU3RhdGUgKi8KICAgICAgLmltYWdlLWxvYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHt4LmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQogICAgICAKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQogICAgICAKICAgICAgLmxvYWRpbmctdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgaW5wdXQgaGlkZGVuICovCiAgICAgIC5pbWFnZS1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciB4cmUsbFpyPXUoKCk9PntsbCgpO3ZlKCk7eHJlPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiWW91VHViZUJsb2NrSGFuZGxlciIpfXR5cGU9InlvdXR1YmUiO3JlbmRlcihlLHIpe2xldCBhPWUubWV0YWRhdGE/LnZpZGVvSWQscz1lLm1ldGFkYXRhPy51cmx8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1ibG9jay1jb250YWluZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtaGFzLXZpZGVvPSIkeyEhYX0iPgogICAgICAgICR7YT90aGlzLnJlbmRlclZpZGVvKGEpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIocyl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtcGxhY2Vob2xkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLWljb24iPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYxNSAzLjE4NGMtMy42MDQtLjI0Ni0xMS42MzEtLjI0NS0xNS4yMyAwLTMuODk3LjI2Ni00LjM1NiAyLjYyLTQuMzg1IDguODE2LjAyOSA2LjE4NS40ODQgOC41NDkgNC4zODUgOC44MTYgMy42LjI0NSAxMS42MjYuMjQ2IDE1LjIzIDAgMy44OTctLjI2NiA0LjM1Ni0yLjYyIDQuMzg1LTguODE2LS4wMjktNi4xODUtLjQ4NC04LjU0OS00LjM4NS04LjgxNnptLTEwLjYxNSAxMi44MTZ2LThsOCAzLjk5My04IDQuMDA3eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+RW50ZXIgWW91VHViZSBVUkw8L2Rpdj4KICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiAKICAgICAgICAgICAgICAgY2xhc3M9InlvdXR1YmUtdXJsLWlucHV0IiAKICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Imh0dHBzOi8veW91dHViZS5jb20vd2F0Y2g/dj0uLi4iIAogICAgICAgICAgICAgICB2YWx1ZT0iJHt0aGlzLmVzY2FwZUh0bWwoZSl9IiAvPgogICAgICAgIDxidXR0b24gY2xhc3M9InlvdXR1YmUtZW1iZWQtYnRuIj5FbWJlZCBWaWRlbzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVmlkZW8oZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLWNvbnRhaW5lciI+CiAgICAgICAgPGlmcmFtZSAKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtlfSIKICAgICAgICAgIGZyYW1lYm9yZGVyPSIwIgogICAgICAgICAgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUiCiAgICAgICAgICBhbGxvd2Z1bGxzY3JlZW4KICAgICAgICA+PC9pZnJhbWU+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKTtpZighcylyZXR1cm47aWYoci5tZXRhZGF0YT8udmlkZW9JZCl7cy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSkscy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsPT57KGwua2V5PT09IkRlbGV0ZSJ8fGwua2V5PT09IkJhY2tzcGFjZSIpJiZsLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24obCl9KTtyZXR1cm59bGV0IG49ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS11cmwtaW5wdXQiKSxvPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtZW1iZWQtYnRuIik7IW58fCFvfHwobi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuZW1iZWRWaWRlbyhuLnZhbHVlLHIsYSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntsLmtleT09PSJFbnRlciI/KGwucHJldmVudERlZmF1bHQoKSx0aGlzLmVtYmVkVmlkZW8obi52YWx1ZSxyLGEpKTpsLmtleT09PSJFc2NhcGUiJiYobC5wcmV2ZW50RGVmYXVsdCgpLG4uYmx1cigpKX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGw9PntzZXRUaW1lb3V0KCgpPT57bGV0IGM9bi52YWx1ZTt0aGlzLmV4dHJhY3RZb3VUdWJlVmlkZW9JZChjKSYmdGhpcy5lbWJlZFZpZGVvKGMscixhKX0sMCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e3IubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLnVybD1uLnZhbHVlfSkpfWVtYmVkVmlkZW8oZSxyLGEpe2xldCBzPXRoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGUpO2lmKCFzKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIFlvdVR1YmUgVVJMIik7cmV0dXJufXIubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLnZpZGVvSWQ9cyxyLm1ldGFkYXRhLnVybD1lLHIuY29udGVudD1gWW91VHViZSBWaWRlbzogJHtzfWAsYS5vblJlcXVlc3RVcGRhdGU/LigpfWV4dHJhY3RZb3VUdWJlVmlkZW9JZChlKXtsZXQgcj1bLyg/OnlvdXR1YmVcLmNvbVwvKD86W15cL10rXC8uK1wvfCg/OnZ8ZSg/Om1iZWQpPylcL3wuKls/Jl12PSl8eW91dHVcLmJlXC8pKFteIiY/XC8gXXsxMX0pLywveW91dHViZVwuY29tXC9lbWJlZFwvKFteIiY/XC8gXXsxMX0pLywveW91dHViZVwuY29tXC93YXRjaFw/dj0oW14iJj9cLyBdezExfSkvLC95b3V0dVwuYmVcLyhbXiImP1wvIF17MTF9KS9dO2ZvcihsZXQgYSBvZiByKXtsZXQgcz1lLm1hdGNoKGEpO2lmKHMpcmV0dXJuIHNbMV19cmV0dXJuIG51bGx9ZXNjYXBlSHRtbChlKXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD1lLHIuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHIpe2xldCBhPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTthJiYoYS5jb250ZW50PXIpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToieW91dHViZSIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS11cmwtaW5wdXQiKTthP2EuZm9jdXMoKTpyJiZyLmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUscj0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBZb3VUdWJlIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAueW91dHViZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFlvdVR1YmUgUGxhY2Vob2xkZXIgKi8KICAgICAgLnlvdXR1YmUtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDMycHggMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1pY29uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMWYyOTM3Iil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG4gewogICAgICAgIHBhZGRpbmc6IDZweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLyogWW91VHViZSBDb250YWluZXIgKi8KICAgICAgLnlvdXR1YmUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgLyogMTY6OSBhc3BlY3QgcmF0aW8gKi8KICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzAwMDAwMCIsIiMwMDAwMDAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWNvbnRhaW5lciBpZnJhbWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQogICAgYH19fSk7dmFyIHZyZSxjWnI9dSgoKT0+e2xsKCk7dmUoKTt2cmU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJBdHRhY2htZW50QmxvY2tIYW5kbGVyIil9dHlwZT0iYXR0YWNobWVudCI7cmVuZGVyKGUscil7bGV0IGE9ZS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1ibG9jay1jb250YWluZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWljb24iPlx1ezFGNENFfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC10aXRsZSI+RmlsZSBBdHRhY2htZW50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtbGlzdCI+CiAgICAgICAgICAke2EubGVuZ3RoPjA/dGhpcy5yZW5kZXJGaWxlcyhhKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIAogICAgICAgICAgICAgICBjbGFzcz0iYXR0YWNobWVudC1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgbXVsdGlwbGUgCiAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KICAgICAgICAke2EubGVuZ3RoPjA/JzxidXR0b24gY2xhc3M9ImFkZC1tb3JlLWZpbGVzIj5BZGQgTW9yZSBGaWxlczwvYnV0dG9uPic6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+Q2xpY2sgdG8gYWRkIGZpbGVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaGludCI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZXMoZSl7cmV0dXJuIGUubWFwKHI9PmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pdGVtIiBkYXRhLWZpbGUtaWQ9IiR7ci5pZH0iPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaWNvbiI+JHt0aGlzLmdldEZpbGVJY29uKHIudHlwZSl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSI+JHt0aGlzLmVzY2FwZUh0bWwoci5uYW1lKX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKHIuc2l6ZSl9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWZpbGUiIGRhdGEtZmlsZS1pZD0iJHtyLmlkfSI+XHhENzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGApLmpvaW4oIiIpfXNldHVwKGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1maWxlLWlucHV0Iik7aWYoIXN8fCFuKXtjb25zb2xlLmVycm9yKCJBdHRhY2htZW50QmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS5maWxlc3x8KHIubWV0YWRhdGEuZmlsZXM9W10pO2xldCBvPXMucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixjPT57Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCksbi5jbGljaygpfSk7bGV0IGw9cy5xdWVyeVNlbGVjdG9yKCIuYWRkLW1vcmUtZmlsZXMiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixjPT57Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCksbi5jbGljaygpfSksbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIGM9PntsZXQgZD1jLnRhcmdldCxmPWQuZmlsZXM7ZiYmZi5sZW5ndGg+MCYmKGF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGYscixhKSxkLnZhbHVlPSIiKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGM9PntsZXQgZD1jLnRhcmdldDtpZihkLmNsYXNzTGlzdC5jb250YWlucygicmVtb3ZlLWZpbGUiKSl7Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGY9ZC5nZXRBdHRyaWJ1dGUoImRhdGEtZmlsZS1pZCIpO2YmJnRoaXMucmVtb3ZlRmlsZShmLHIsYSl9fSkscy5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsYz0+e2MucHJldmVudERlZmF1bHQoKSxjLnN0b3BQcm9wYWdhdGlvbigpLHMuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsYz0+e2MucHJldmVudERlZmF1bHQoKSxjLnN0b3BQcm9wYWdhdGlvbigpLHMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGFzeW5jIGM9PntjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSxzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO2xldCBkPWMuZGF0YVRyYW5zZmVyPy5maWxlcztkJiZkLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyhkLHIsYSl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2lmKChjLmtleT09PSJEZWxldGUifHxjLmtleT09PSJCYWNrc3BhY2UiKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXMmJnIubWV0YWRhdGE/LmZpbGVzPy5sZW5ndGg+MCl7Yy5wcmV2ZW50RGVmYXVsdCgpLHIubWV0YWRhdGEuZmlsZXM9W10sYS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1hLm9uS2V5RG93bihjKX0pfWFzeW5jIGhhbmRsZUZpbGVBdHRhY2htZW50cyhlLHIsYSl7ci5tZXRhZGF0YXx8KHIubWV0YWRhdGE9e30pLHIubWV0YWRhdGEuZmlsZXN8fChyLm1ldGFkYXRhLmZpbGVzPVtdKTtmb3IobGV0IHMgb2YgQXJyYXkuZnJvbShlKSl0cnl7bGV0IG49YXdhaXQgdGhpcy5maWxlVG9EYXRhVXJsKHMpLG89e2lkOnRoaXMuZ2VuZXJhdGVJZCgpLG5hbWU6cy5uYW1lLHNpemU6cy5zaXplLHR5cGU6cy50eXBlLGRhdGE6bn07ci5tZXRhZGF0YS5maWxlcy5wdXNoKG8pfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBhdHRhY2ggZmlsZToiLHMubmFtZSxuKX1yLmNvbnRlbnQ9YCR7ci5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke3IubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9cmVtb3ZlRmlsZShlLHIsYSl7ci5tZXRhZGF0YT8uZmlsZXMmJihyLm1ldGFkYXRhLmZpbGVzPXIubWV0YWRhdGEuZmlsZXMuZmlsdGVyKHM9PnMuaWQhPT1lKSxyLmNvbnRlbnQ9ci5tZXRhZGF0YS5maWxlcy5sZW5ndGg+MD9gJHtyLm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7ci5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgOiIiLGEub25SZXF1ZXN0VXBkYXRlPy4oKSl9ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHIsYSk9PntsZXQgcz1uZXcgRmlsZVJlYWRlcjtzLm9ubG9hZD1uPT57bGV0IG89bi50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbz09InN0cmluZyI/cihvKTphKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0scy5vbmVycm9yPWEscy5yZWFkQXNEYXRhVVJMKGUpfSl9Z2V0RmlsZUljb24oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiaW1hZ2UvIik/Ilx1ezFGNUJDfVx1RkUwRiI6ZS5zdGFydHNXaXRoKCJ2aWRlby8iKT8iXHV7MUYzQTV9IjplLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJcdXsxRjNCNX0iOmUuaW5jbHVkZXMoInBkZiIpPyJcdXsxRjRDNH0iOmUuaW5jbHVkZXMoInppcCIpfHxlLmluY2x1ZGVzKCJyYXIiKXx8ZS5pbmNsdWRlcygidGFyIik/Ilx1ezFGNUM0fVx1RkUwRiI6ZS5pbmNsdWRlcygic2hlZXQiKT8iXHV7MUY0Q0F9IjplLmluY2x1ZGVzKCJkb2N1bWVudCIpfHxlLmluY2x1ZGVzKCJtc3dvcmQiKT8iXHV7MUY0RER9IjplLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKT8iXHV7MUY0Q0J9IjplLmluY2x1ZGVzKCJ0ZXh0Iik/Ilx1ezFGNEMzfSI6Ilx1ezFGNEMxfSJ9Zm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCByPTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scz1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHIpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyhyLHMpKS50b0ZpeGVkKDIpKSsiICIrYVtzXX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGZpbGUtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9ZXNjYXBlSHRtbChlKXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD1lLHIuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHIpe2xldCBhPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTthJiYoYS5jb250ZW50PXIpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToiYXR0YWNobWVudCIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQXR0YWNobWVudCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuYXR0YWNobWVudC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIExpc3QgKi8KICAgICAgLmF0dGFjaG1lbnQtbGlzdCB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBJdGVtcyAqLwogICAgICAuYXR0YWNobWVudC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1zaXplIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCIjOTkxYjFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNmY2E1YTUiLCIjZGMyNjI2Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNmY2E1YTUiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEFkZCBNb3JlIEZpbGVzIEJ1dHRvbiAqLwogICAgICAuYWRkLW1vcmUtZmlsZXMgewogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgIH0KICAgICAgCiAgICAgIC5hZGQtbW9yZS1maWxlczpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIaWRkZW4gZmlsZSBpbnB1dCAqLwogICAgICAuYXR0YWNobWVudC1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciB5cmUsZFpyPXUoKCk9PntsbCgpO3ZlKCk7eXJlPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiRGl2aWRlckJsb2NrSGFuZGxlciIpfXR5cGU9ImRpdmlkZXIiO3JlbmRlcihlLHIpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYmxvY2sgZGl2aWRlciR7cj8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IiB0YWJpbmRleD0iMCI+CiAgICAgICAgPGhyPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmRpdmlkZXIiKTtzJiYocy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e24uc3RvcFByb3BhZ2F0aW9uKCkscy5mb2N1cygpLGEub25Gb2N1cz8uKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cz8uKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57YS5vbkJsdXI/LigpfSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57KG4ua2V5PT09IkJhY2tzcGFjZSJ8fG4ua2V5PT09IkRlbGV0ZSIpJiZuLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24/LihuKX0pKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5kaXZpZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJsb2NrLmRpdmlkZXI6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGB9fX0pO3ZhciB3cmUsdVpyPXUoKCk9PntsbCgpO3ZlKCk7d3JlPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiTWFya2Rvd25CbG9ja0hhbmRsZXIiKX10eXBlPSJtYXJrZG93biI7cmVuZGVyKGUscil7bGV0IGE9ZS5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAscz1lLmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWVkaXQtbW9kZT0iJHthfSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWljb24iPk1cdTIxOTM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLXRpdGxlIj5NYXJrZG93bjwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibWFya2Rvd24tdG9nZ2xlLW1vZGUiIHRpdGxlPSIke2E/IlByZXZpZXciOiJFZGl0In0iPgogICAgICAgICAgICAke2E/Ilx1ezFGNDQxfVx1RkUwRiI6Ilx1MjcwRlx1RkUwRiJ9CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1jb250ZW50Ij4KICAgICAgICAgICR7YT90aGlzLnJlbmRlckVkaXRvcihzKTp0aGlzLnJlbmRlclByZXZpZXcocyl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJFZGl0b3IoZSl7cmV0dXJuYAogICAgICA8dGV4dGFyZWEgY2xhc3M9Im1hcmtkb3duLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgbWFya2Rvd24gY29udGVudC4uLiIKICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbChlKX08L3RleHRhcmVhPgogICAgYH1yZW5kZXJQcmV2aWV3KGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+CiAgICAgICAgJHt0aGlzLnBhcnNlTWFya2Rvd24oZSl8fCc8ZGl2IGNsYXNzPSJwcmV2aWV3LWVtcHR5Ij5ObyBjb250ZW50IHRvIHByZXZpZXc8L2Rpdj4nfQogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tdG9nZ2xlLW1vZGUiKTtpZighc3x8IW4pe2NvbnNvbGUuZXJyb3IoIk1hcmtkb3duQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS5pc0VkaXRNb2RlPT09dm9pZCAwJiYoci5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvPT57aWYoby5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCksci5tZXRhZGF0YS5pc0VkaXRNb2RlKXtsZXQgbD1zLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtsJiYoci5jb250ZW50PWwudmFsdWUpfXIubWV0YWRhdGEuaXNFZGl0TW9kZT0hci5tZXRhZGF0YS5pc0VkaXRNb2RlLGEub25SZXF1ZXN0VXBkYXRlPy4oKX0pLHIubWV0YWRhdGEuaXNFZGl0TW9kZT90aGlzLnNldHVwRWRpdG9yKGUscixhKTp0aGlzLnNldHVwUHJldmlldyhlLHIsYSl9c2V0dXBFZGl0b3IoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3MmJihzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57ci5jb250ZW50PXMudmFsdWV9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89cy5zZWxlY3Rpb25TdGFydCxsPXMuc2VsZWN0aW9uRW5kLGM9cy52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgcD1jLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxoPWMuc3Vic3RyaW5nKHAsbyk7aC5zdGFydHNXaXRoKCIgICIpJiYocy52YWx1ZT1jLnN1YnN0cmluZygwLHApK2guc3Vic3RyaW5nKDIpK2Muc3Vic3RyaW5nKG8pLHMuc2VsZWN0aW9uU3RhcnQ9cy5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIHMudmFsdWU9Yy5zdWJzdHJpbmcoMCxvKSsiICAiK2Muc3Vic3RyaW5nKGwpLHMuc2VsZWN0aW9uU3RhcnQ9cy5zZWxlY3Rpb25FbmQ9bysyO3IuY29udGVudD1zLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSJiIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMud3JhcFNlbGVjdGlvbihzLCIqKiIsIioqIiksci5jb250ZW50PXMudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImkiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKHMsIl8iLCJfIiksci5jb250ZW50PXMudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImsiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbnNlcnRMaW5rKHMpLHIuY29udGVudD1zLnZhbHVlO3JldHVybn1hLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShzKSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKHMpKSl9c2V0dXBQcmV2aWV3KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKTshc3x8IW58fChuLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksbi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntpZihvLmtleT09PSJFbnRlciImJiFvLnNoaWZ0S2V5KXtvLnByZXZlbnREZWZhdWx0KCksci5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwLGEub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59YS5vbktleURvd24obyl9KSl9d3JhcFNlbGVjdGlvbihlLHIsYSl7bGV0IHM9ZS5zZWxlY3Rpb25TdGFydCxuPWUuc2VsZWN0aW9uRW5kLG89ZS52YWx1ZS5zdWJzdHJpbmcocyxuKSxsPXIrKG98fCJ0ZXh0IikrYTtlLnZhbHVlPWUudmFsdWUuc3Vic3RyaW5nKDAscykrbCtlLnZhbHVlLnN1YnN0cmluZyhuKSxvPyhlLnNlbGVjdGlvblN0YXJ0PXMsZS5zZWxlY3Rpb25FbmQ9cytsLmxlbmd0aCk6KGUuc2VsZWN0aW9uU3RhcnQ9cytyLmxlbmd0aCxlLnNlbGVjdGlvbkVuZD1zK3IubGVuZ3RoKzQpLGUuZm9jdXMoKX1pbnNlcnRMaW5rKGUpe2xldCByPWUuc2VsZWN0aW9uU3RhcnQsYT1lLnNlbGVjdGlvbkVuZCxuPWUudmFsdWUuc3Vic3RyaW5nKHIsYSl8fCJsaW5rIHRleHQiLG89YFske259XSh1cmwpYDtlLnZhbHVlPWUudmFsdWUuc3Vic3RyaW5nKDAscikrbytlLnZhbHVlLnN1YnN0cmluZyhhKSxlLnNlbGVjdGlvblN0YXJ0PXIrbi5sZW5ndGgrMyxlLnNlbGVjdGlvbkVuZD1yK24ubGVuZ3RoKzYsZS5mb2N1cygpfWF1dG9SZXNpemUoZSl7ZS5zdHlsZS5oZWlnaHQ9ImF1dG8iLGUuc3R5bGUuaGVpZ2h0PWUuc2Nyb2xsSGVpZ2h0KyJweCJ9cGFyc2VNYXJrZG93bihlKXtsZXQgcj10aGlzLmVzY2FwZUh0bWwoZSk7cmV0dXJuIHI9ci5yZXBsYWNlKC9eIyMjICguKykkL2dtLCI8aDM+JDE8L2gzPiIpLHI9ci5yZXBsYWNlKC9eIyMgKC4rKSQvZ20sIjxoMj4kMTwvaDI+Iikscj1yLnJlcGxhY2UoL14jICguKykkL2dtLCI8aDE+JDE8L2gxPiIpLHI9ci5yZXBsYWNlKC9cKlwqKC4rPylcKlwqL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSxyPXIucmVwbGFjZSgvX18oLis/KV9fL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSxyPXIucmVwbGFjZSgvXCooLis/KVwqL2csIjxlbT4kMTwvZW0+Iikscj1yLnJlcGxhY2UoL18oLis/KV8vZywiPGVtPiQxPC9lbT4iKSxyPXIucmVwbGFjZSgvYGBgKFtcc1xTXSo/KWBgYC9nLCI8cHJlPjxjb2RlPiQxPC9jb2RlPjwvcHJlPiIpLHI9ci5yZXBsYWNlKC9gKC4rPylgL2csIjxjb2RlPiQxPC9jb2RlPiIpLHI9ci5yZXBsYWNlKC9cWyhbXlxdXSspXF1cKChbXildKylcKS9nLCc8YSBocmVmPSIkMiI+JDE8L2E+Jykscj1yLnJlcGxhY2UoL15cKiAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxyPXIucmVwbGFjZSgvXi0gKC4rKSQvZ20sIjxsaT4kMTwvbGk+Iikscj1yLnJlcGxhY2UoL15cZCtcLiAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxyPXIucmVwbGFjZSgvKDxsaT4uKjxcL2xpPlxuPykrL2csYT0+Ijx1bD4iK2ErIjwvdWw+Iikscj1yLnJlcGxhY2UoL1xuXG4vZywiPC9wPjxwPiIpLHI9IjxwPiIrcisiPC9wPiIscj1yLnJlcGxhY2UoLzxwPjxcL3A+L2csIiIpLHI9ci5yZXBsYWNlKC88cD4oPGhbMS0zXT4pL2csIiQxIikscj1yLnJlcGxhY2UoLyg8XC9oWzEtM10+KTxcL3A+L2csIiQxIikscj1yLnJlcGxhY2UoLzxwPig8dWw+KS9nLCIkMSIpLHI9ci5yZXBsYWNlKC8oPFwvdWw+KTxcL3A+L2csIiQxIikscj1yLnJlcGxhY2UoLzxwPig8cHJlPikvZywiJDEiKSxyPXIucmVwbGFjZSgvKDxcL3ByZT4pPFwvcD4vZywiJDEiKSxyfWVzY2FwZUh0bWwoZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9ZSxyLmlubmVySFRNTH1nZXRDb250ZW50KGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKHIpcmV0dXJuIHIudmFsdWU7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiIifXNldENvbnRlbnQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTthJiYoYS52YWx1ZT1yLHRoaXMuYXV0b1Jlc2l6ZShhKSl9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7cmV0dXJuIHI/ci5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7cj8oci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD0wLHIuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZihyKXtsZXQgYT1yLnZhbHVlLmxlbmd0aDtyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPWEsci5mb2N1cygpfWVsc2UgdGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyP3IuZm9jdXMoKTplLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1wcmV2aWV3Iik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUscj0iZW5kIil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7YT9yPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIHI9PSJudW1iZXIiJiYoYS5zZWxlY3Rpb25TdGFydD1hLnNlbGVjdGlvbkVuZD1yLGEuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGE9ci5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnIudmFsdWUuc3Vic3RyaW5nKDAsYSksYWZ0ZXI6ci52YWx1ZS5zdWJzdHJpbmcoYSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogTWFya2Rvd24gQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5tYXJrZG93bi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5tYXJrZG93bi1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAubWFya2Rvd24tZWRpdG9yIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1lZGl0b3I6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBQcmV2aWV3ICovCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIE1hcmtkb3duIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgxIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE2cHggMCA4cHggMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxNHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTJweCAwIDRweCAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHAgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHVsLAogICAgICAubWFya2Rvd24tcHJldmlldyBvbCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYmxvY2txdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgYH19fSk7dmFyIGtyZSxwWnI9dSgoKT0+e2xsKCk7dmUoKTtrcmU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJIdG1sQmxvY2tIYW5kbGVyIil9dHlwZT0iaHRtbCI7cmVuZGVyKGUscil7bGV0IGE9ZS5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAscz1lLmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaHRtbC1ibG9jay1jb250YWluZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2F9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWljb24iPiZsdDsvJmd0OzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC10aXRsZSI+SFRNTDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaHRtbC10b2dnbGUtbW9kZSIgdGl0bGU9IiR7YT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7YT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtY29udGVudCI+CiAgICAgICAgICAke2E/dGhpcy5yZW5kZXJFZGl0b3Iocyk6dGhpcy5yZW5kZXJQcmV2aWV3KHMpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKGUpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJodG1sLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgSFRNTCBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLXByZXZpZXciPgogICAgICAgICR7ZXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKSxuPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtdG9nZ2xlLW1vZGUiKTtpZighc3x8IW4pe2NvbnNvbGUuZXJyb3IoIkh0bWxCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXIubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJihyLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntpZihvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxyLm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPXMucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7bCYmKHIuY29udGVudD1sLnZhbHVlKX1yLm1ldGFkYXRhLmlzRWRpdE1vZGU9IXIubWV0YWRhdGEuaXNFZGl0TW9kZSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSxyLm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcihlLHIsYSk6dGhpcy5zZXR1cFByZXZpZXcoZSxyLGEpfXNldHVwRWRpdG9yKGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3MmJihzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57ci5jb250ZW50PXMudmFsdWUsdGhpcy52YWxpZGF0ZUh0bWwocy52YWx1ZSl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89cy5zZWxlY3Rpb25TdGFydCxsPXMuc2VsZWN0aW9uRW5kLGM9cy52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgcD1jLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxoPWMuc3Vic3RyaW5nKHAsbyk7aC5zdGFydHNXaXRoKCIgICIpJiYocy52YWx1ZT1jLnN1YnN0cmluZygwLHApK2guc3Vic3RyaW5nKDIpK2Muc3Vic3RyaW5nKG8pLHMuc2VsZWN0aW9uU3RhcnQ9cy5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIHMudmFsdWU9Yy5zdWJzdHJpbmcoMCxvKSsiICAiK2Muc3Vic3RyaW5nKGwpLHMuc2VsZWN0aW9uU3RhcnQ9cy5zZWxlY3Rpb25FbmQ9bysyO3IuY29udGVudD1zLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSIvIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXV0b0Nsb3NlVGFnKHMpLHIuY29udGVudD1zLnZhbHVlO3JldHVybn1hLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShzKSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKHMpKSl9c2V0dXBQcmV2aWV3KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1wcmV2aWV3Iik7IXN8fCFufHwobi5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57aWYoby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7by5wcmV2ZW50RGVmYXVsdCgpLHIubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWEub25LZXlEb3duKG8pfSksdGhpcy5zYW5kYm94Q29udGVudChuKSl9YXV0b0Nsb3NlVGFnKGUpe2xldCByPWUuc2VsZWN0aW9uU3RhcnQsYT1lLnZhbHVlLHM9cjtmb3IoO3M+MCYmYVtzLTFdIT09IjwiOylzLS07aWYocz4wKXtsZXQgbz1hLnN1YnN0cmluZyhzLHIpLm1hdGNoKC9eKFx3KykvKTtpZihvKXtsZXQgYz1gPC8ke29bMV19PmA7ZS52YWx1ZT1hLnN1YnN0cmluZygwLHIpKyI+IitjK2Euc3Vic3RyaW5nKHIpLGUuc2VsZWN0aW9uU3RhcnQ9ZS5zZWxlY3Rpb25FbmQ9cisxfX19YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In12YWxpZGF0ZUh0bWwoZSl7bGV0IHI9W10sYT0vPFwvPyhbYS16QS1aXVthLXpBLVowLTldKilcYltePl0qPi9nLHM7Zm9yKDsocz1hLmV4ZWMoZSkpIT09bnVsbDspe2xldCBuPXNbMF0uc3RhcnRzV2l0aCgiPC8iKSxvPXNbMV0udG9Mb3dlckNhc2UoKTtpZihuKXtpZihyLmxlbmd0aD09PTB8fHJbci5sZW5ndGgtMV0hPT1vKXJldHVybiBjb25zb2xlLndhcm4oYE1pc21hdGNoZWQgY2xvc2luZyB0YWc6ICR7b31gKSwhMTtyLnBvcCgpfWVsc2Ugc1swXS5lbmRzV2l0aCgiLz4iKXx8ci5wdXNoKG8pfXJldHVybiByLmxlbmd0aD4wPyhjb25zb2xlLndhcm4oYFVuY2xvc2VkIHRhZ3M6ICR7ci5qb2luKCIsICIpfWApLCExKTohMH1zYW5kYm94Q29udGVudChlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpLmZvckVhY2gobj0+bi5yZW1vdmUoKSksZS5xdWVyeVNlbGVjdG9yQWxsKCIqIikuZm9yRWFjaChuPT57QXJyYXkuZnJvbShuLmF0dHJpYnV0ZXMpLmZvckVhY2gobz0+e28ubmFtZS5zdGFydHNXaXRoKCJvbiIpJiZuLnJlbW92ZUF0dHJpYnV0ZShvLm5hbWUpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKS5mb3JFYWNoKG49PntuLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsbz0+e28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpfSl9KX1lc2NhcGVIdG1sKGUpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiByLnRleHRDb250ZW50PWUsci5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKHIpcmV0dXJuIHIudmFsdWU7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7YSYmKGEudmFsdWU9cix0aGlzLmF1dG9SZXNpemUoYSkpfWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cmV0dXJuIHI/ci5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyPyhyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPTAsci5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYocil7bGV0IGE9ci52YWx1ZS5sZW5ndGg7ci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1hLHIuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyP3IuZm9jdXMoKTplLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSxyPSJlbmQiKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2E/cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnI9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiByPT0ibnVtYmVyIiYmKGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9cixhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGE9ci5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnIudmFsdWUuc3Vic3RyaW5nKDAsYSksYWZ0ZXI6ci52YWx1ZS5zdWJzdHJpbmcoYSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSFRNTCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5odG1sLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAuaHRtbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAuaHRtbC1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAuaHRtbC1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNhbmRib3hlZCBIVE1MIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5odG1sLXByZXZpZXcgKiB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGltZyB7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRhYmxlIHsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGgsCiAgICAgIC5odG1sLXByZXZpZXcgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgfX19KTt2YXIgWjh0PXUoKCk9PntsbCgpO0RVcigpOyRVcigpO0FVcigpO0VVcigpO0lVcigpO3NacigpO25acigpO29acigpO2xacigpO2NacigpO2RacigpO3VacigpO3BacigpfSk7ZnVuY3Rpb24gZlpyKCl7SWEucmVnaXN0ZXIoImRpdmlkZXIiLG5ldyB5cmUpLElhLnJlZ2lzdGVyKCJwYXJhZ3JhcGgiLG5ldyB3dGUpLElhLnJlZ2lzdGVyKCJoZWFkaW5nLTEiLG5ldyBfOSgiaGVhZGluZy0xIikpLElhLnJlZ2lzdGVyKCJoZWFkaW5nLTIiLG5ldyBfOSgiaGVhZGluZy0yIikpLElhLnJlZ2lzdGVyKCJoZWFkaW5nLTMiLG5ldyBfOSgiaGVhZGluZy0zIikpLElhLnJlZ2lzdGVyKCJxdW90ZSIsbmV3IGt0ZSksSWEucmVnaXN0ZXIoImNvZGUiLG5ldyBtcmUpLElhLnJlZ2lzdGVyKCJsaXN0IixuZXcgZ3JlKSxJYS5yZWdpc3RlcigiaW1hZ2UiLG5ldyBicmUpLElhLnJlZ2lzdGVyKCJ5b3V0dWJlIixuZXcgeHJlKSxJYS5yZWdpc3RlcigiYXR0YWNobWVudCIsbmV3IHZyZSksSWEucmVnaXN0ZXIoIm1hcmtkb3duIixuZXcgd3JlKSxJYS5yZWdpc3RlcigiaHRtbCIsbmV3IGtyZSl9dmFyIFE4dD11KCgpPT57Wjh0KCk7aShmWnIsInJlZ2lzdGVyQWxsQmxvY2tIYW5kbGVycyIpLGZacigpfSk7dmFyIFNyZSxYOHQ9dSgoKT0+e3ZlKCk7UTQoKTskMSgpO0M5KCk7cGZlKCk7U3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdNb2RhbE1hbmFnZXIiKX1zdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2xldCByPW51bGw7ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2VsZWN0IFByb2dyYW1taW5nIExhbmd1YWdlIixjb250ZW50OndgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5sYW5ndWFnZS1jb250YWluZXIgewogICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7CiAgICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChhPT53YAogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke3I9PT1hLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PntyPWEudG9Mb3dlckNhc2UoKTtsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7cyYmdHlwZW9mIHMuZGVzdHJveT09ImZ1bmN0aW9uIiYmcy5kZXN0cm95KCksZShyKX19Ij4KICAgICAgICAgICAgICAgICAgJHthfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgYT0+e2EuZGVzdHJveSgpLGUobnVsbCl9LCJhY3Rpb24iKX1dfSl9KX1zdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbChlLHIpe2xldCBhPXdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLWxhYmVsIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtaWNvbiB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmdldEJsb2NrVHlwZVNlbGVjdG9yKGUscil9CiAgICAgICAgJHtlLnR5cGU9PT0iY29kZSI/dGhpcy5nZXRDb2RlQmxvY2tTZXR0aW5ncyhlLHIpOiIifQogICAgICA8L2Rpdj4KICAgIGA7ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQmxvY2sgU2V0dGluZ3MiLGNvbnRlbnQ6YSxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjppKGFzeW5jIHM9PntzLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KX1zdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSxyKXtsZXQgYT1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogNnB4OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+UHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAocz0+d2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7YT09PXMudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57ZS5tZXRhZGF0YXx8KGUubWV0YWRhdGE9e30pLGUubWV0YWRhdGEubGFuZ3VhZ2U9cy50b0xvd2VyQ2FzZSgpLHIoZSk7bGV0IG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO24mJnR5cGVvZiBuLmRlc3Ryb3k9PSJmdW5jdGlvbiImJm4uZGVzdHJveSgpfX0iCiAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3N9IgogICAgICAgICAgICA+JHtzfTwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWMgZ2V0TGFuZ3VhZ2VzKCl7cmV0dXJuWy4uLnZ0ZV19c3RhdGljIGdldEJsb2NrVHlwZVNlbGVjdG9yKGUscil7bGV0IGE9Y3MuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIocz0+cy50eXBlIT09ImRpdmlkZXIiKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPkJsb2NrIFR5cGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibG9jay10eXBlLWdyaWQiPgogICAgICAgICAgJHthLm1hcChzPT53YAogICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgIGNsYXNzPSJibG9jay10eXBlLWJ1dHRvbiAke2UudHlwZT09PXMudHlwZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9IiR7YXN5bmMgbj0+e2xldCBvPW4uY3VycmVudFRhcmdldCxsPWUudHlwZTtpZihlLnR5cGU9cy50eXBlLGw9PT0iY29kZSImJmUudHlwZSE9PSJjb2RlIilkZWxldGUgZS5tZXRhZGF0YT8ubGFuZ3VhZ2U7ZWxzZSBpZihsPT09Imxpc3QiJiZlLnR5cGUhPT0ibGlzdCIpZGVsZXRlIGUubWV0YWRhdGE/Lmxpc3RUeXBlO2Vsc2UgaWYoZS50eXBlPT09Imxpc3QiJiYhZS5tZXRhZGF0YT8ubGlzdFR5cGUpZS5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9O2Vsc2UgaWYoZS50eXBlPT09ImNvZGUiJiYhZS5tZXRhZGF0YT8ubGFuZ3VhZ2Upe2xldCBkPWF3YWl0IHRoaXMuc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKTtpZihkKWUubWV0YWRhdGE9e2xhbmd1YWdlOmR9O2Vsc2V7ZS50eXBlPWw7cmV0dXJufX1yKGUpO2xldCBjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwiKTtjJiZ0eXBlb2YgYy5kZXN0cm95PT0iZnVuY3Rpb24iJiZjLmRlc3Ryb3koKX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJsb2NrLXR5cGUtaWNvbiI+JHtzLmljb259PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19fSk7dmFyIE1yZSxoWnI9dSgoKT0+eyQxKCk7ankoKTtDOSgpO3IzKCk7c210KCk7WDh0KCk7TXJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdJbnB1dEhhbmRsZXIiKX1jb21wb25lbnQ7c2F2ZVRpbWVvdXQ9bnVsbDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWhhbmRsZUJsb2NrSW5wdXQoZSxyKXtpZih0aGlzLmNvbXBvbmVudC5pc0NvbXBvc2luZylyZXR1cm47bGV0IGE9ZS50YXJnZXQscz1hLnRleHRDb250ZW50fHwiIixuPXRoaXMuZGV0ZWN0QmxvY2tUeXBlSW50ZW50KHMpO2lmKG4mJm4udHlwZSE9PXIudHlwZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQmxvY2tUcmFuc2Zvcm1hdGlvbihyLG4sYSk7cmV0dXJufXRoaXMuaGFuZGxlU2xhc2hDb21tYW5kKHMsYSksdGhpcy5zY2hlZHVsZUF1dG9TYXZlKCl9dXBkYXRlQmxvY2tDb250ZW50KGUscil7bGV0IHM9ci5jbG9zZXN0KCIuYmxvY2std3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihzKXtsZXQgbj1zLmdldENvbnRlbnQoKTtpZihlLmNvbnRlbnQhPT1uJiYoZS5jb250ZW50PW4pLGUudHlwZT09PSJsaXN0Iil7bGV0IG89ci5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtvJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6by50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfX1lbHNlIGlmKGUudHlwZT09PSJsaXN0Iil7bGV0IG49ci5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO2UuY29udGVudD1BcnJheS5mcm9tKG4pLm1hcChsPT5sLmlubmVySFRNTHx8IiIpLmpvaW4oYApgKTtsZXQgbz1yLnF1ZXJ5U2VsZWN0b3IoIm9sLCB1bCIpO28mJihlLm1ldGFkYXRhPXtsaXN0VHlwZTpvLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifSl9ZWxzZSBlLnR5cGU9PT0iY29kZSI/ZS5jb250ZW50PXIudGV4dENvbnRlbnR8fCIiOmUuY29udGVudD1yLmlubmVySFRNTHx8IiJ9ZGV0ZWN0QmxvY2tUeXBlSW50ZW50KGUpe2xldCByPWNzLmNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpO2lmKHIpcmV0dXJuIHI7bGV0IGE9Y3MuY2hlY2tMaXN0U2hvcnRjdXQoZSk7cmV0dXJuIGF8fChjcy5jaGVja1F1b3RlU2hvcnRjdXQoZSk/e3R5cGU6InF1b3RlIn06Y3MuY2hlY2tDb2RlU2hvcnRjdXQoZSk/e3R5cGU6ImNvZGUifTpjcy5jaGVja0RpdmlkZXJTaG9ydGN1dChlKT97dHlwZToiZGl2aWRlciJ9Om51bGwpfWFzeW5jIGhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oZSxyLGEpe2xldCBzPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihyLnR5cGU9PT0ibGlzdCIpe2UudHlwZT0ibGlzdCIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xpc3RUeXBlOnIubGlzdFR5cGV9O2xldCBuPXIubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO2EuaW5uZXJIVE1MPWA8JHtufT48bGk+PC9saT48LyR7bn0+YCx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KCgpPT57RW4uZm9jdXNMaXN0SXRlbShhKX0sMCl9ZWxzZSBpZihyLnR5cGU9PT0iZGl2aWRlciIpe2UudHlwZT0iZGl2aWRlciIsZS5jb250ZW50PSIgIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCk7bGV0IG49cy5jcmVhdGVCbG9jaygpO3MuaW5zZXJ0QmxvY2tBZnRlcihlLG4pLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZSBpZihyLnR5cGU9PT0iY29kZSIpe2xldCBuPWF3YWl0IFNyZS5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO24mJihlLnR5cGU9ImNvZGUiLGUuY29udGVudD0iIixlLm1ldGFkYXRhPXtsYW5ndWFnZTpufSxhLnRleHRDb250ZW50PSIiLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHMuZm9jdXNCbG9jayhlLmlkLCJzdGFydCIpfSw1MCkpfWVsc2UgZS50eXBlPXIudHlwZSxlLmNvbnRlbnQ9IiIsYS50ZXh0Q29udGVudD0iIix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCBzLmZvY3VzQmxvY2soZS5pZCwic3RhcnQiKX0sNTApfWhhbmRsZVNsYXNoQ29tbWFuZChlLHIpe2xldCBhPXRoaXMuY29tcG9uZW50LnNsYXNoTWVudSxzPWEmJmEudmlzaWJsZTtpZihlPT09Ii8ifHxlLnN0YXJ0c1dpdGgoIi8iKSYmcyl7aWYoIXMmJmU9PT0iLyIpe2xldCBuPXRoaXMuZ2V0Q2FyZXRDb29yZGluYXRlcyhyKTthLnNob3coe3g6bi5sZWZ0LHk6bi5ib3R0b20rNH0sbz0+e3RoaXMuY29tcG9uZW50Lmluc2VydEJsb2NrKG8pfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJnIuZm9jdXMoKX0pfWEmJmEudXBkYXRlRmlsdGVyKGUuc2xpY2UoMSkpfWVsc2UgZS5zdGFydHNXaXRoKCIvIil8fHRoaXMuY29tcG9uZW50LmNsb3NlU2xhc2hNZW51KCl9Z2V0Q2FyZXRDb29yZGluYXRlcyhlKXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYociYmci5yYW5nZUNvdW50PjApe2xldCBzPXIuZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihzLndpZHRoPjB8fHMuaGVpZ2h0PjApcmV0dXJuIHN9cmV0dXJuIGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9c2NoZWR1bGVBdXRvU2F2ZSgpe3RoaXMuc2F2ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNhdmVUaW1lb3V0KSwhKHRoaXMuY29tcG9uZW50LnNsYXNoTWVudSYmdGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUpJiYodGhpcy5zYXZlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zeW5jQWxsQmxvY2tDb250ZW50KCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX0sMmUzKSl9c3luY0FsbEJsb2NrQ29udGVudCgpe3RoaXMuY29tcG9uZW50LmJsb2Nrcy5mb3JFYWNoKGU9PntsZXQgYT10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKGEmJmEuZ2V0Q29udGVudCl7bGV0IHM9YS5nZXRDb250ZW50KCk7ZS5jb250ZW50IT09cyYmKGUuY29udGVudD1zKX19KX1kZXN0cm95KCl7dGhpcy5zYXZlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpfX19KTt2YXIgQ3JlLG1acj11KCgpPT57JDEoKTtqeSgpO25kKCk7Q3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdLZXlib2FyZEhhbmRsZXIiKX1jb21wb25lbnQ7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1hc3luYyBoYW5kbGVCbG9ja0tleURvd24oZSxyKXtpZih0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5pc1NsYXNoTWVudUtleShlLmtleSkpe3RoaXMuY29tcG9uZW50LmhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGUpO3JldHVybn1pZighdGhpcy5oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpKXN3aXRjaChlLmtleSl7Y2FzZSJUYWIiOnRoaXMuaGFuZGxlVGFiKGUscik7YnJlYWs7Y2FzZSJFbnRlciI6YXdhaXQgdGhpcy5oYW5kbGVFbnRlcihlLHIpO2JyZWFrO2Nhc2UiQmFja3NwYWNlIjphd2FpdCB0aGlzLmhhbmRsZUJhY2tzcGFjZShlLHIpO2JyZWFrO2Nhc2UiRGVsZXRlIjphd2FpdCB0aGlzLmhhbmRsZURlbGV0ZShlLHIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1VwKGUscik7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dEb3duKGUscik7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dMZWZ0KGUscik7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93UmlnaHQoZSxyKTticmVha319aXNTbGFzaE1lbnVLZXkoZSl7cmV0dXJuWyJBcnJvd0Rvd24iLCJBcnJvd1VwIiwiRW50ZXIiLCJFc2NhcGUiXS5pbmNsdWRlcyhlKX1oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpe2lmKCEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpKXJldHVybiExO3N3aXRjaChlLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlImIiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoImJvbGQiKSksITA7Y2FzZSJpIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJpdGFsaWMiKSksITA7Y2FzZSJ1IjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJ1bmRlcmxpbmUiKSksITA7Y2FzZSJrIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJsaW5rIikpLCEwfXJldHVybiExfWhhbmRsZVRhYihlLHIpe3IudHlwZSE9PSJjb2RlIiYmci50eXBlPT09Imxpc3QiJiZlLnByZXZlbnREZWZhdWx0KCl9YXN5bmMgaGFuZGxlRW50ZXIoZSxyKXtsZXQgYT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbj1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHIsbik7cmV0dXJufWlmKHIudHlwZT09PSJjb2RlIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPWEuY3JlYXRlQmxvY2soKTthd2FpdCBhLmluc2VydEJsb2NrQWZ0ZXIocixuKX1yZXR1cm59aWYoIWUuc2hpZnRLZXkpaWYoci50eXBlPT09Imxpc3QiKWF3YWl0IHRoaXMuaGFuZGxlRW50ZXJJbkxpc3QoZSxyKTtlbHNle2UucHJldmVudERlZmF1bHQoKTtsZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG8mJm8uZ2V0U3BsaXRDb250ZW50KXtsZXQgbD1vLmdldFNwbGl0Q29udGVudCgpO2lmKGwpe28uc2V0Q29udGVudChsLmJlZm9yZSksci5jb250ZW50PWwuYmVmb3JlO2xldCBjPWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsbC5hZnRlcik7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHIsYyksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1lbHNle2xldCBjPWEuY3JlYXRlQmxvY2soKTthd2FpdCBhLmluc2VydEJsb2NrQWZ0ZXIocixjKX19ZWxzZXtsZXQgbD1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHIsbCl9fX1hc3luYyBoYW5kbGVFbnRlckluTGlzdChlLHIpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihhJiZhLnJhbmdlQ291bnQ+MCl7bGV0IG49YS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYobiYmbi50ZXh0Q29udGVudD09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG89dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9by5jcmVhdGVCbG9jaygpO2F3YWl0IG8uaW5zZXJ0QmxvY2tBZnRlcihyLGwpfX19YXN5bmMgaGFuZGxlQmFja3NwYWNlKGUscil7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhyLnR5cGUpKXtpZihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD09PTEpe3RoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGEucmVtb3ZlQmxvY2soci5pZCk7bGV0IHY9YS5jcmVhdGVCbG9jaygicGFyYWdyYXBoIiwiIik7dGhpcy5jb21wb25lbnQuYmxvY2tzPVt2XSx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksYXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQsInN0YXJ0IiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtyZXR1cm59dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSk7bGV0IGg9YS5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpLG09YS5nZXROZXh0QmxvY2soci5pZCk7YS5yZW1vdmVCbG9jayhyLmlkKSxoJiZoLnR5cGUhPT0iZGl2aWRlciImJmgudHlwZSE9PSJpbWFnZSI/YXdhaXQgYS5mb2N1c0Jsb2NrKGguaWQsImVuZCIpOm0mJm0udHlwZSE9PSJkaXZpZGVyIiYmbS50eXBlIT09ImltYWdlIj9hd2FpdCBhLmZvY3VzQmxvY2sobS5pZCwic3RhcnQiKTpoP2F3YWl0IGEuZm9jdXNCbG9jayhoLmlkKTptJiZhd2FpdCBhLmZvY3VzQmxvY2sobS5pZCk7cmV0dXJufWxldCBvPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3IuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW98fCFvLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBsPXIudHlwZT09PSJjb2RlIj9vLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFsKXJldHVybjtsZXQgYz1vLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGQ9W107Yz8uc2hhZG93Um9vdCYmZC5wdXNoKGMuc2hhZG93Um9vdCksZC5wdXNoKG8uc2hhZG93Um9vdCk7bGV0IGY9aHQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobCwuLi5kKSxwPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTpsLnRleHRDb250ZW50O2lmKGY9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGg9YS5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpO2lmKGgpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhoLnR5cGUpKXthd2FpdCBhLmZvY3VzQmxvY2soaC5pZCk7cmV0dXJufWlmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGgudHlwZT09PSJjb2RlIiYmci50eXBlIT09ImNvZGUiKXtyLmNvbnRlbnQ9PT0iIiYmKGEucmVtb3ZlQmxvY2soci5pZCksYXdhaXQgYS5mb2N1c0Jsb2NrKGguaWQsImVuZCIpKTtyZXR1cm59aWYoci50eXBlPT09ImNvZGUiJiZoLnR5cGUhPT0iY29kZSIpe2xldCBOPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTpyLmNvbnRlbnQ7KE49PT0iInx8Ti50cmltKCk9PT0iIikmJihhLnJlbW92ZUJsb2NrKHIuaWQpLGF3YWl0IGEuZm9jdXNCbG9jayhoLmlkLCJlbmQiKSk7cmV0dXJufWxldCBiPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2guaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIiksZz1iPy5nZXRDb250ZW50KCl8fGguY29udGVudHx8IiIseT1vLmdldENvbnRlbnQoKXx8ci5jb250ZW50fHwiIixrPSIiO2gudHlwZT09PSJjb2RlIiYmci50eXBlPT09ImNvZGUifHxoLnR5cGU9PT0ibGlzdCImJnIudHlwZT09PSJsaXN0Ij9rPWcrKGcmJnk/YApgOiIiKSt5Oms9ZysoZyYmeT8iICI6IiIpK3k7bGV0IE09Zy5sZW5ndGg7YS51cGRhdGVCbG9ja0NvbnRlbnQoaC5pZCxrKSxiJiZiLnNldENvbnRlbnQoayksYS5yZW1vdmVCbG9jayhyLmlkKSxhd2FpdCBhLmZvY3VzQmxvY2soaC5pZCxNKX19ZWxzZSBpZih0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPjEpe2xldCBoPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTpyLmNvbnRlbnQ7aWYoaD09PSIifHxoLnRyaW0oKT09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG09YS5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpO20mJihhLnJlbW92ZUJsb2NrKHIuaWQpLG0udHlwZSE9PSJkaXZpZGVyIiYmYXdhaXQgYS5mb2N1c0Jsb2NrKG0uaWQsImVuZCIpKX19fWFzeW5jIGhhbmRsZURlbGV0ZShlLHIpe2xldCBhPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoci50eXBlKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxhLnJlbW92ZUJsb2NrKHIuaWQpO2xldCBiPWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1bYl0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGEuZm9jdXNCbG9jayhiLmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBoPWEuZ2V0UHJldmlvdXNCbG9jayhyLmlkKSxtPWEuZ2V0TmV4dEJsb2NrKHIuaWQpO2EucmVtb3ZlQmxvY2soci5pZCk7bGV0IHY9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO20mJiF2LmluY2x1ZGVzKG0udHlwZSk/YXdhaXQgYS5mb2N1c0Jsb2NrKG0uaWQsInN0YXJ0Iik6aCYmIXYuaW5jbHVkZXMoaC50eXBlKT9hd2FpdCBhLmZvY3VzQmxvY2soaC5pZCwiZW5kIik6bT9hd2FpdCBhLmZvY3VzQmxvY2sobS5pZCk6aCYmYXdhaXQgYS5mb2N1c0Jsb2NrKGguaWQpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgbD1yLnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbClyZXR1cm47bGV0IGM9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO2M/LnNoYWRvd1Jvb3QmJmQucHVzaChjLnNoYWRvd1Jvb3QpLGQucHVzaChvLnNoYWRvd1Jvb3QpO2xldCBmPWh0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGwsLi4uZCkscD1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoZj09PXApe2xldCBoPWEuZ2V0TmV4dEJsb2NrKHIuaWQpO2lmKGgmJlsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhoLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCksYXdhaXQgYS5mb2N1c0Jsb2NrKGguaWQpO3JldHVybn19fWFzeW5jIGhhbmRsZUFycm93VXAoZSxyKXtsZXQgYT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07aWYoYS5pbmNsdWRlcyhyLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLHA9Zi5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpO3AmJmF3YWl0IGYuZm9jdXNCbG9jayhwLmlkLGEuaW5jbHVkZXMocC50eXBlKT92b2lkIDA6ImVuZCIpO3JldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz1yLnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxjPVtdO2w/LnNoYWRvd1Jvb3QmJmMucHVzaChsLnNoYWRvd1Jvb3QpLGMucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoISghZHx8IWQuY29sbGFwc2VkKSYmdGhpcy5pc09uRmlyc3RMaW5lKGQsbywuLi5jKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBmPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxwPWYuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtpZihwKXtsZXQgaD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgZi5mb2N1c0Jsb2NrKHAuaWQsaC5pbmNsdWRlcyhwLnR5cGUpP3ZvaWQgMDoiZW5kIil9fX1hc3luYyBoYW5kbGVBcnJvd0Rvd24oZSxyKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoci50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBmPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxwPWYuZ2V0TmV4dEJsb2NrKHIuaWQpO2lmKHApe2xldCBoPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBmLmZvY3VzQmxvY2socC5pZCxoLmluY2x1ZGVzKHAudHlwZSk/dm9pZCAwOiJzdGFydCIpfXJldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz1yLnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxjPVtdO2w/LnNoYWRvd1Jvb3QmJmMucHVzaChsLnNoYWRvd1Jvb3QpLGMucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoISghZHx8IWQuY29sbGFwc2VkKSYmdGhpcy5pc09uTGFzdExpbmUoZCxvLC4uLmMpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLHA9Zi5nZXROZXh0QmxvY2soci5pZCk7aWYocCl7bGV0IGg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGYuZm9jdXNCbG9jayhwLmlkLGguaW5jbHVkZXMocC50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgcj1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7cj49MDtyLS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1tyXSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1hc3luYyBoYW5kbGVBcnJvd0xlZnQoZSxyKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoci50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBwPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxoPXAuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtpZihoKXtsZXQgbT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgcC5mb2N1c0Jsb2NrKGguaWQsbS5pbmNsdWRlcyhoLnR5cGUpP3ZvaWQgMDoiZW5kIil9cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3IuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPXIudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgbD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGM9W107bD8uc2hhZG93Um9vdCYmYy5wdXNoKGwuc2hhZG93Um9vdCksYy5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGQ9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5jKTtpZighZHx8IWQuY29sbGFwc2VkKXJldHVybjtpZihodC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmMpPT09MCl7bGV0IHA9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGg9cC5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpO2lmKGgpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoaC50eXBlKT92b2lkIDA6ImVuZCI7YXdhaXQgcC5mb2N1c0Jsb2NrKGguaWQsdil9fX1hc3luYyBoYW5kbGVBcnJvd1JpZ2h0KGUscil7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgaD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsbT1oLmdldE5leHRCbG9jayhyLmlkKTtpZihtKXtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgaC5mb2N1c0Jsb2NrKG0uaWQsdi5pbmNsdWRlcyhtLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89ci50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBsPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksYz1bXTtsPy5zaGFkb3dSb290JiZjLnB1c2gobC5zaGFkb3dSb290KSxjLnB1c2gobi5zaGFkb3dSb290KTtsZXQgZD1odC5nZXRTZWxlY3Rpb25JbmZvKC4uLmMpO2lmKCFkfHwhZC5jb2xsYXBzZWQpcmV0dXJuO2xldCBmPWh0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4uYykscD1vLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoZj09PXApe2xldCBoPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxtPWguZ2V0TmV4dEJsb2NrKHIuaWQpO2lmKG0pe2UucHJldmVudERlZmF1bHQoKTtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgaC5mb2N1c0Jsb2NrKG0uaWQsdi5pbmNsdWRlcyhtLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX19fWlzT25GaXJzdExpbmUoZSxyLC4uLmEpe3RyeXtsZXQgcz1odC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG49cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXMuY29tbW9uQW5jZXN0b3JDb250YWluZXI7by5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobz1vLnBhcmVudEVsZW1lbnQpO2xldCBsPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz1uLnRvcC1sLnRvcDw1O3JldHVybiBvLnRleHRDb250ZW50JiYhby50ZXh0Q29udGVudC5pbmNsdWRlcyhgCmApP2h0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4uYSk9PT0wOmN9Y2F0Y2gocyl7cmV0dXJuIGNvbnNvbGUud2FybigiRXJyb3IgY2hlY2tpbmcgZmlyc3QgbGluZToiLHMpLGUuc3RhcnRPZmZzZXQ9PT0wfX1pc09uTGFzdExpbmUoZSxyLC4uLmEpe3RyeXtsZXQgcz1odC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG49cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXMuY29tbW9uQW5jZXN0b3JDb250YWluZXI7by5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobz1vLnBhcmVudEVsZW1lbnQpO2xldCBjPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLW4uYm90dG9tPDU7aWYoby50ZXh0Q29udGVudCYmIW8udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKSl7bGV0IGQ9ci50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBodC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChyLC4uLmEpPT09ZH1yZXR1cm4gY31jYXRjaChzKXtjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGxhc3QgbGluZToiLHMpO2xldCBuPXIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gaHQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQociwuLi5hKT09PW59fX19KTt2YXIgenJlLGdacj11KCgpPT57JDEoKTtqeSgpO3pyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyIil9Y29tcG9uZW50O2RyYWdnZWRCbG9ja0lkPW51bGw7ZHJhZ092ZXJCbG9ja0lkPW51bGw7ZHJhZ092ZXJQb3NpdGlvbj1udWxsO2Ryb3BJbmRpY2F0b3I9bnVsbDtpbml0aWFsTW91c2VZPTA7aW5pdGlhbEJsb2NrWT0wO2RyYWdnZWRCbG9ja0VsZW1lbnQ9bnVsbDtkcmFnZ2VkQmxvY2tIZWlnaHQ9MDtkcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPTA7bGFzdFVwZGF0ZVRpbWU9MDt1cGRhdGVUaHJvdHRsZT04MDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWdldCBkcmFnU3RhdGUoKXtyZXR1cm57ZHJhZ2dlZEJsb2NrSWQ6dGhpcy5kcmFnZ2VkQmxvY2tJZCxkcmFnT3ZlckJsb2NrSWQ6dGhpcy5kcmFnT3ZlckJsb2NrSWQsZHJhZ092ZXJQb3NpdGlvbjp0aGlzLmRyYWdPdmVyUG9zaXRpb259fWhhbmRsZURyYWdTdGFydChlLHIpe2lmKCFlLmRhdGFUcmFuc2ZlcilyZXR1cm47dGhpcy5kcmFnZ2VkQmxvY2tJZD1yLmlkLGUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLGUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLHIuaWQpO2xldCBhPW5ldyBJbWFnZTtpZihhLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGEsMCwwKSx0aGlzLmluaXRpYWxNb3VzZVk9ZS5jbGllbnRZLHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudD10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3IuaWR9Il1gKSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpe2xldCBzPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmluaXRpYWxCbG9ja1k9cy50b3A7bGV0IG49dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKG4pe2xldCBvPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShuKTt0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD1wYXJzZUludChsLm1hcmdpblRvcCl8fDAsdGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PW8uaGVpZ2h0fXRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0PXMuaGVpZ2h0LGNvbnNvbGUubG9nKCJEcmFnIG1lYXN1cmVtZW50czoiLHt3cmFwcGVySGVpZ2h0OnMuaGVpZ2h0LG1hcmdpblRvcDp0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcCxkcm9wSW5kaWNhdG9ySGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0LGNvbnRlbnRIZWlnaHQ6dGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0LGJsb2NrSWQ6ci5pZH0pLHRoaXMuY3JlYXRlRHJvcEluZGljYXRvcigpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpfXRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPXRoaXMuZHJhZ2dlZEJsb2NrSWQsc2V0VGltZW91dCgoKT0+e3RoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCYmdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpfSwxMCl9aGFuZGxlRHJhZ0VuZCgpe3RoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKHI9PntyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiwibW92ZS11cCIsIm1vdmUtZG93biIpLHIuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiKSxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2Zvcm0iKX0pLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSx0aGlzLmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyUG9zaXRpb249bnVsbCx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9bnVsbCx0aGlzLmRyYWdnZWRCbG9ja0hlaWdodD0wLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wLHRoaXMuZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPTAsdGhpcy5pbml0aWFsQmxvY2tZPTAsdGhpcy5jb21wb25lbnQuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlclBvc2l0aW9uPW51bGx9aGFuZGxlRHJhZ092ZXIoZSxyKXtpZihlLnByZXZlbnREZWZhdWx0KCksIWUuZGF0YVRyYW5zZmVyfHwhdGhpcy5kcmFnZ2VkQmxvY2tJZHx8dGhpcy5kcmFnZ2VkQmxvY2tJZD09PXIuaWQpcmV0dXJuO2UuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9Im1vdmUiO2xldCBhPWUuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWEudG9wK2EuaGVpZ2h0LzI7dGhpcy5kcmFnT3ZlckJsb2NrSWQ9ci5pZCx0aGlzLmRyYWdPdmVyUG9zaXRpb249ZS5jbGllbnRZPHM/ImJlZm9yZSI6ImFmdGVyIix0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9dGhpcy5kcmFnT3ZlckJsb2NrSWQsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj10aGlzLmRyYWdPdmVyUG9zaXRpb259aGFuZGxlRHJhZ0xlYXZlKGUpe3RoaXMuZHJhZ092ZXJCbG9ja0lkPT09ZS5pZCYmKHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsKX1oYW5kbGVEcm9wKGUscil7ZS5wcmV2ZW50RGVmYXVsdCgpLCEoIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1yLmlkKSYmdGhpcy5jb21wb25lbnQuaGFuZGxlRHJvcChlLHIpfWlzRHJhZ2dpbmcoZSl7cmV0dXJuIHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1lfWlzRHJhZ092ZXIoZSl7cmV0dXJuIHRoaXMuZHJhZ092ZXJCbG9ja0lkPT09ZX1nZXREcmFnT3ZlckNsYXNzZXMoZSl7cmV0dXJuIHRoaXMuaXNEcmFnT3ZlcihlKT90aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYmVmb3JlIj8iZHJhZy1vdmVyLWJlZm9yZSI6ImRyYWctb3Zlci1hZnRlciI6IiJ9Y3JlYXRlRHJvcEluZGljYXRvcigpe3RoaXMuZHJvcEluZGljYXRvcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmRyb3BJbmRpY2F0b3IuY2xhc3NOYW1lPSJkcm9wLWluZGljYXRvciIsdGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQodGhpcy5kcm9wSW5kaWNhdG9yKX1oYW5kbGVHbG9iYWxEcmFnT3Zlcj1pKGU9PntpZihlLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47bGV0IHI9ZS5jbGllbnRZLXRoaXMuaW5pdGlhbE1vdXNlWTt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7cn1weClgO2xldCBhPURhdGUubm93KCk7YS10aGlzLmxhc3RVcGRhdGVUaW1lPHRoaXMudXBkYXRlVGhyb3R0bGV8fCh0aGlzLmxhc3RVcGRhdGVUaW1lPWEsdGhpcy51cGRhdGVCbG9ja1Bvc2l0aW9ucyhlLmNsaWVudFkpKX0sImhhbmRsZUdsb2JhbERyYWdPdmVyIik7dXBkYXRlQmxvY2tQb3NpdGlvbnMoZSl7bGV0IHI9QXJyYXkuZnJvbSh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikpLGE9ci5maW5kSW5kZXgobj0+bi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKT09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpO2lmKGE9PT0tMSlyZXR1cm47ci5mb3JFYWNoKG49PntuLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpIT09dGhpcy5kcmFnZ2VkQmxvY2tJZCYmKG4uY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLG4uc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiKSl9KTtsZXQgcz1yLmxlbmd0aDtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7aWYobj09PWEpY29udGludWU7bGV0IGw9cltuXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPWwudG9wO2lmKGU8YytsLmhlaWdodCouNSl7cz1uO2JyZWFrfX1mb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7aWYobj09PWEpY29udGludWU7bGV0IG89cltuXTthPHM/bj5hJiZuPHMmJihvLmNsYXNzTGlzdC5hZGQoIm1vdmUtdXAiKSxvLnN0eWxlLnNldFByb3BlcnR5KCItLWRyYWctb2Zmc2V0IixgJHt0aGlzLmRyYWdnZWRCbG9ja0hlaWdodH1weGApKTphPnMmJm4+PXMmJm48YSYmKG8uY2xhc3NMaXN0LmFkZCgibW92ZS1kb3duIiksby5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSl9dGhpcy51cGRhdGVEcm9wSW5kaWNhdG9yKHIscyxhKX11cGRhdGVEcm9wSW5kaWNhdG9yKGUscixhKXtpZighdGhpcy5kcm9wSW5kaWNhdG9yfHwhdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXJldHVybjt0aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUuZGlzcGxheT0iYmxvY2siO2xldCBzPXRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj0wLG89W107Zm9yKGxldCBkPTA7ZDxlLmxlbmd0aDtkKyspe2lmKGQ9PT1hKWNvbnRpbnVlO2xldCBmPWVbZF0scD1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGg9cC50b3Atcy50b3AsbT1wLmJvdHRvbS1zLnRvcCx2PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGYpLnRyYW5zZm9ybTtpZih2JiZ2IT09Im5vbmUiKXtsZXQgZz1uZXcgRE9NTWF0cml4KHYpLm00MjtoKz1nLG0rPWd9by5wdXNoKHtpbmRleDpkLHRvcDpoLGJvdHRvbTptfSl9by5zb3J0KChkLGYpPT5kLnRvcC1mLnRvcCk7bGV0IGw9cjtyPmEmJmwtLTtsZXQgYz0xNjtpZih0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpe2xldCBkPXRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kKGY9PmYuaWQ9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihkKXtsZXQgZj1kLnR5cGU7Zj09PSJoZWFkaW5nLTEifHxmPT09ImhlYWRpbmctMiJ8fGY9PT0iaGVhZGluZy0zIj9jPTI0OihmPT09ImNvZGUifHxmPT09InF1b3RlIikmJihjPTIwKX19aWYobD09PTApbj0wO2Vsc2UgaWYobD49by5sZW5ndGgpe2xldCBkPW9bby5sZW5ndGgtMV07ZCYmKG49ZC5ib3R0b20sbis9Yyl9ZWxzZXtsZXQgZD1vW2wtMV07ZCYmKG49ZC5ib3R0b20sbis9Yyl9dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmhlaWdodD1gJHt0aGlzLmRyYWdnZWRCbG9ja0hlaWdodH1weGAsdGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLnRvcD1gJHtNYXRoLm1heCgwLG4pfXB4YCxjb25zb2xlLmxvZygiRHJvcCBpbmRpY2F0b3IgdXBkYXRlOiIse3RhcmdldEluZGV4OnIsYWRqdXN0ZWRUYXJnZXRJbmRleDpsLGRyYWdnZWRJbmRleDphLHRvcFBvc2l0aW9uOm4saGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0LGJsb2NrTWFyZ2luOmMsdmlzdWFsQmxvY2tzOm8ubWFwKGQ9Pih7aW5kZXg6ZC5pbmRleCx0b3A6ZC50b3AsYm90dG9tOmQuYm90dG9tfSkpfSl9aGFuZGxlR2xvYmFsRHJhZ0VuZD1pKCgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5kcm9wSW5kaWNhdG9yJiYodGhpcy5kcm9wSW5kaWNhdG9yLnJlbW92ZSgpLHRoaXMuZHJvcEluZGljYXRvcj1udWxsKSx0aGlzLmRyYWdnZWRCbG9ja0lkP3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMucGVyZm9ybURyb3AoKSx0aGlzLmhhbmRsZURyYWdFbmQoKX0pOnRoaXMuaGFuZGxlRHJhZ0VuZCgpfSwiaGFuZGxlR2xvYmFsRHJhZ0VuZCIpO3BlcmZvcm1Ecm9wKCl7aWYoIXRoaXMuZHJhZ2dlZEJsb2NrSWQpcmV0dXJuO2xldCBlPUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKTtpZighZS5maW5kKGY9PmYuZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKSlyZXR1cm47bGV0IGE9ZS5tYXAoZj0+e2xldCBwPWYuZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIiksaD1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG09aC50b3AraC5oZWlnaHQvMjtyZXR1cm57aWQ6cCxjZW50ZXJZOm0sZWxlbWVudDpmfX0pO2Euc29ydCgoZixwKT0+Zi5jZW50ZXJZLXAuY2VudGVyWSk7bGV0IHM9YS5tYXAoZj0+Zi5pZCkuZmlsdGVyKGY9PmYhPT1udWxsKSxuPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLG89bi5maW5kKGY9PmYuaWQ9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZighbylyZXR1cm47bGV0IGw9bi5tYXAoZj0+Zi5pZCk7aWYoISFzLmV2ZXJ5KChmLHApPT5mPT09bFtwXSkpcmV0dXJuO2xldCBkPXMubWFwKGY9Pm4uZmluZChwPT5wLmlkPT09ZikpLmZpbHRlcihCb29sZWFuKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9ZCx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxzZXRUaW1lb3V0KCgpPT57by50eXBlIT09ImRpdmlkZXIiJiZ0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhvLmlkKX0sMTAwKX19fSk7dmFyIF9yZSxiWnI9dSgoKT0+eyQxKCk7X3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdIaXN0b3J5Iil9aGlzdG9yeT1bXTtjdXJyZW50SW5kZXg9LTE7bWF4SGlzdG9yeVNpemU9NTA7bGFzdFNhdmVUaW1lPTA7c2F2ZURlYm91bmNlTXM9NTAwO2NvbnN0cnVjdG9yKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xfXNhdmVTdGF0ZShlLHIsYSl7bGV0IHM9RGF0ZS5ub3coKTtpZihzLXRoaXMubGFzdFNhdmVUaW1lPHRoaXMuc2F2ZURlYm91bmNlTXMmJnRoaXMuY3VycmVudEluZGV4Pj0wKXt0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdPXtibG9ja3M6dGhpcy5jbG9uZUJsb2NrcyhlKSxzZWxlY3RlZEJsb2NrSWQ6cixjdXJzb3JQb3NpdGlvbjphP3suLi5hfTp2b2lkIDAsdGltZXN0YW1wOnN9O3JldHVybn10aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTEmJih0aGlzLmhpc3Rvcnk9dGhpcy5oaXN0b3J5LnNsaWNlKDAsdGhpcy5jdXJyZW50SW5kZXgrMSkpO2xldCBuPXtibG9ja3M6dGhpcy5jbG9uZUJsb2NrcyhlKSxzZWxlY3RlZEJsb2NrSWQ6cixjdXJzb3JQb3NpdGlvbjphP3suLi5hfTp2b2lkIDAsdGltZXN0YW1wOnN9O3RoaXMuaGlzdG9yeS5wdXNoKG4pLHRoaXMuY3VycmVudEluZGV4KyssdGhpcy5oaXN0b3J5Lmxlbmd0aD50aGlzLm1heEhpc3RvcnlTaXplJiYodGhpcy5oaXN0b3J5LnNoaWZ0KCksdGhpcy5jdXJyZW50SW5kZXgtLSksdGhpcy5sYXN0U2F2ZVRpbWU9c31zYXZlQ2hlY2twb2ludChlLHIsYSl7dGhpcy5sYXN0U2F2ZVRpbWU9MCx0aGlzLnNhdmVTdGF0ZShlLHIsYSl9dW5kbygpe3JldHVybiB0aGlzLmNhblVuZG8oKT8odGhpcy5jdXJyZW50SW5kZXgtLSx0aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSkpOm51bGx9cmVkbygpe3JldHVybiB0aGlzLmNhblJlZG8oKT8odGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSkpOm51bGx9Y2FuVW5kbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleD4wfWNhblJlZG8oKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aC0xfWdldEN1cnJlbnRTdGF0ZSgpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleD49MCYmdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aD90aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSk6bnVsbH1jbGVhcigpe3RoaXMuaGlzdG9yeT1bXSx0aGlzLmN1cnJlbnRJbmRleD0tMSx0aGlzLmxhc3RTYXZlVGltZT0wfWNsb25lQmxvY2tzKGUpe3JldHVybiBlLm1hcChyPT4oey4uLnIsbWV0YWRhdGE6ci5tZXRhZGF0YT97Li4uci5tZXRhZGF0YX06dm9pZCAwfSkpfWNsb25lU3RhdGUoZSl7cmV0dXJue2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUuYmxvY2tzKSxzZWxlY3RlZEJsb2NrSWQ6ZS5zZWxlY3RlZEJsb2NrSWQsY3Vyc29yUG9zaXRpb246ZS5jdXJzb3JQb3NpdGlvbj97Li4uZS5jdXJzb3JQb3NpdGlvbn06dm9pZCAwLHRpbWVzdGFtcDplLnRpbWVzdGFtcH19Z2V0SGlzdG9yeUluZm8oKXtyZXR1cm57c2l6ZTp0aGlzLmhpc3RvcnkubGVuZ3RoLGN1cnJlbnRJbmRleDp0aGlzLmN1cnJlbnRJbmRleCxjYW5VbmRvOnRoaXMuY2FuVW5kbygpLGNhblJlZG86dGhpcy5jYW5SZWRvKCl9fX19KTt2YXIgVHJlLGYzLHhacix2WnI9dSgoKT0+e3ZlKCk7JDEoKTtyMygpO25kKCk7Wjh0KCk7UTh0KCk7QzkoKTtzcygpO2x0KCk7VHJlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxmMz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0seFpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy13eXNpd3lnLWJsb2NrIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXeXNpd3lnQmxvY2siKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0scD1bUCh7dHlwZTpPYmplY3R9KV0sdj1bUCh7dHlwZTpPYmplY3R9KV0sVHJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2siLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImJsb2NrImluIE0sImhhcyIpLGdldDppKE09Pk0uYmxvY2ssImdldCIpLHNldDppKChNLE4pPT57TS5ibG9jaz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksVHJlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNTZWxlY3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaXNTZWxlY3RlZCJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmlzU2VsZWN0ZWQsImdldCIpLHNldDppKChNLE4pPT57TS5pc1NlbGVjdGVkPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxUcmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYW5kbGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaGFuZGxlcnMiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5oYW5kbGVycywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmhhbmRsZXJzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxUcmUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3eXNpd3lnQ29tcG9uZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJ3eXNpd3lnQ29tcG9uZW50ImluIE0sImhhcyIpLGdldDppKE09Pk0ud3lzaXd5Z0NvbXBvbmVudCwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnd5c2l3eWdDb21wb25lbnQ9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLFRyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXIpfSNlPWYzKHRoaXMsbyx2b2lkIDApO2dldCBibG9jaygpe3JldHVybiB0aGlzLiNlfXNldCBibG9jayhrKXt0aGlzLiNlPWt9I3Q9KGYzKHRoaXMsbCksZjModGhpcyxkLCExKSk7Z2V0IGlzU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNTZWxlY3RlZChrKXt0aGlzLiN0PWt9I3I9KGYzKHRoaXMsZiksZjModGhpcyxoLHZvaWQgMCkpO2dldCBoYW5kbGVycygpe3JldHVybiB0aGlzLiNyfXNldCBoYW5kbGVycyhrKXt0aGlzLiNyPWt9I2E9KGYzKHRoaXMsbSksZjModGhpcyxiLHZvaWQgMCkpO2dldCB3eXNpd3lnQ29tcG9uZW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHd5c2l3eWdDb21wb25lbnQoayl7dGhpcy4jYT1rfWJsb2NrRWxlbWVudD0oZjModGhpcyxnKSxudWxsKTtjb250ZW50SW5pdGlhbGl6ZWQ9ITE7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO2hhbmRsZXJTdHlsZXNJbmplY3RlZD0hMTtzdGF0aWMgTk9OX0VESVRBQkxFX1RZUEVTPVsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSJdO2luamVjdEhhbmRsZXJTdHlsZXMoKXtpZih0aGlzLmhhbmRsZXJTdHlsZXNJbmplY3RlZClyZXR1cm47dGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITA7bGV0IGs9IiIsTT1JYS5nZXRBbGxUeXBlcygpO2ZvcihsZXQgTiBvZiBNKXtsZXQgXz1JYS5nZXRIYW5kbGVyKE4pO18mJihrKz1fLmdldFN0eWxlcygpKX1pZihrKXtsZXQgTj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO04udGV4dENvbnRlbnQ9ayx0aGlzLnNoYWRvd1Jvb3Q/LmFwcGVuZENoaWxkKE4pfX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmJsb2NrIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrOmVtcHR5Om5vdCg6Zm9jdXMpOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrLXNwZWNpZmljIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVycyAqLwoKCiAgICAgIC8qIEZvcm1hdHRpbmcgc3R5bGVzICovCiAgICAgIC5ibG9jayA6aXMoYiwgc3Ryb25nKSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2sgOmlzKGksIGVtKSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuYmxvY2sgdSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jayBzIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgfQoKICAgICAgLmJsb2NrIGNvZGUgewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDE0IiwiI2ZmNmI2YiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrIGEgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5ibG9jayBhOmhvdmVyIHsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke3guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIENvZGUgYmxvY2sgY29udGFpbmVyIGFuZCBsYW5ndWFnZSBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlciAqLwoKICAgICAgLyogU2VsZWN0aW9uIHN0eWxlcyAqLwogICAgICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjMpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMykiKX07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCgogICAgICAvKiBTdHJpa2UgdGhyb3VnaCAqLwogICAgICAuYmxvY2sgOmlzKHMsIHN0cmlrZSkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKCiAgICAgIC8qIEJsb2NrIG1hcmdpbiBhZGp1c3RtZW50cyBiYXNlZCBvbiB0eXBlICovCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdC1jb250ZXh0KC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogU2VsZWN0ZWQgc3RhdGUgKi8KICAgICAgLmJsb2NrLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgIH0KCgoKCiAgICBgXTtzaG91bGRVcGRhdGUoayl7aWYoay5oYXMoImlzU2VsZWN0ZWQiKSYmdGhpcy5ibG9jayl7bGV0IE09bnVsbCxfPWAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YDtyZXR1cm4gTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXyksTSYmKHRoaXMuaXNTZWxlY3RlZD9NLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik6TS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSwhMX1pZihrLmhhcygiYmxvY2siKSYmdGhpcy5ibG9jayl7bGV0IE09ay5nZXQoImJsb2NrIik7aWYoTSYmTS5pZCYmTS50eXBlJiZNLmlkPT09dGhpcy5ibG9jay5pZCYmTS50eXBlPT09dGhpcy5ibG9jay50eXBlKXJldHVybiExfXJldHVybiF0aGlzLmJsb2NrRWxlbWVudHx8dGhpcy5ibG9jaz8udHlwZSE9PXRoaXMuYmxvY2tFbGVtZW50LmRhdGFzZXQuYmxvY2tUeXBlfWZpcnN0VXBkYXRlZCgpe3RoaXMuY29udGVudEluaXRpYWxpemVkPSEwLHRoaXMuaW5qZWN0SGFuZGxlclN0eWxlcygpO2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7aWYoayYmdGhpcy5ibG9jayYmKGsuaW5uZXJIVE1MPXRoaXMucmVuZGVyQmxvY2tDb250ZW50KCkpLHRoaXMuYmxvY2spe2xldCBOPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihOKXtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO18mJk4uc2V0dXAoXyx0aGlzLmJsb2NrLHRoaXMuaGFuZGxlcnMpO3JldHVybn19bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihNKXtNLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsdGhpcy5ibG9jay5pZCksTS5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2stdHlwZSIsdGhpcy5ibG9jay50eXBlKSxNLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixfPT57dGhpcy5oYW5kbGVycz8ub25JbnB1dD8uKF8pO2xldCBTPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oTSk7UyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPVMpfSksTS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixfPT57bGV0IFM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihNKTtTIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249UyksdGhpcy5oYW5kbGVycz8ub25LZXlEb3duPy4oXyl9KSxNLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uRm9jdXM/LigpfSksTS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQmx1cj8uKCl9KSxNLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvblN0YXJ0Py4oKX0pLE0uYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvbkVuZD8uKCl9KSxNLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLF89PntsZXQgUz10aGlzLmdldEN1cnNvclBvc2l0aW9uKE0pO1MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1TKSx0aGlzLmhhbmRsZXJzPy5vbk1vdXNlVXA/LihfKX0pLE0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c2V0VGltZW91dCgoKT0+e2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oTSk7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pfSwwKX0pO2xldCBOPWkoKCk9PntsZXQgXz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIV98fF8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBTPV8udG9TdHJpbmcoKTtpZihTLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpO3JldHVybn1sZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFPKXJldHVybjtsZXQgRT10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LEI9W107RSYmQi5wdXNoKEUpLHRoaXMuc2hhZG93Um9vdCYmQi5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IEM9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5CKTtpZighQylyZXR1cm47bGV0IHo9aHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oTyxDLnN0YXJ0Q29udGFpbmVyKSxBPWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKE8sQy5lbmRDb250YWluZXIpO2lmKHp8fEEpe2lmKFMhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1TO2xldCAkPWh0LmNyZWF0ZVJhbmdlRnJvbUluZm8oQyksRj0kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6Uy50cmltKCksYmxvY2tJZDp0aGlzLmJsb2NrLmlkLHJhbmdlOiQscmVjdDpGLGhhc1NlbGVjdGlvbjohMH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDoiIixibG9ja0lkOnRoaXMuYmxvY2suaWQsaGFzU2VsZWN0aW9uOiExfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixOKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyPU4sTS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsKCk9PntsZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKE0pO18hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1fKX0pLHRoaXMuYmxvY2suY29udGVudCYmKE0uaW5uZXJIVE1MPXRoaXMuYmxvY2suY29udGVudCl9dGhpcy5ibG9ja0VsZW1lbnQ9TX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5ibG9jaz9UcGA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWJsb2NrLWNvbnRhaW5lciI+PC9kaXY+YDpUcGBgfXJlbmRlckJsb2NrQ29udGVudCgpe2lmKCF0aGlzLmJsb2NrKXJldHVybiIiO2xldCBrPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrKXJldHVybiBrLnJlbmRlcih0aGlzLmJsb2NrLHRoaXMuaXNTZWxlY3RlZCk7bGV0IE09dGhpcy5pc1NlbGVjdGVkPyIgc2VsZWN0ZWQiOiIiO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke3RoaXMuYmxvY2sudHlwZX0ke019IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgPjwvZGl2PgogICAgYH1mb2N1cygpe2xldCBrPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLmZvY3VzKXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLF89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gay5mb2N1cyhOLF8pfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWApO04mJk4uZm9jdXMoKTtyZXR1cm59bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtNJiYoTS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxNLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE0uZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09TSYmdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09TSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e00uZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3Ioaz0iZW5kIil7bGV0IE09SWEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uZm9jdXNXaXRoQ3Vyc29yKXtsZXQgUz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLE89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5mb2N1c1dpdGhDdXJzb3IoUyxrLE8pfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe3RoaXMuZm9jdXMoKTtyZXR1cm59bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTilyZXR1cm47Ti5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxOLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE4uZm9jdXMoKTtsZXQgXz1pKCgpPT57az09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KCk6az09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoKTp0eXBlb2Ygaz09Im51bWJlciImJmh0LnNldEN1cnNvclBvc2l0aW9uKE4sayl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09Tj9fKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09TikmJl8oKX0pfWdldEN1cnNvclBvc2l0aW9uKGspe2xldCBNPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLmdldEN1cnNvclBvc2l0aW9uKXtsZXQgQj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmdldEN1cnNvclBvc2l0aW9uKGssQil9bGV0IF89dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxTPVtdO18mJlMucHVzaChfKSx0aGlzLnNoYWRvd1Jvb3QmJlMucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86TyxzaGFkb3dSb290c0NvdW50OlMubGVuZ3RofSksIU8pcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogTm8gc2VsZWN0aW9uIGZvdW5kIiksbnVsbDtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIGluZm86Iix7c3RhcnRDb250YWluZXI6Ty5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpPLnN0YXJ0T2Zmc2V0LGNvbGxhcHNlZDpPLmNvbGxhcHNlZCxzdGFydENvbnRhaW5lclRleHQ6Ty5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudH0pLCFrLmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpKXJldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIG5vdCBpbiBlbGVtZW50IiksbnVsbDtsZXQgTD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO0wuc2VsZWN0Tm9kZUNvbnRlbnRzKGspLEwuc2V0RW5kKE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCk7bGV0IEU9TC50b1N0cmluZygpLmxlbmd0aDtyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBDYWxjdWxhdGVkIHBvc2l0aW9uOiIse3Bvc2l0aW9uOkUscHJlQ2FyZXRUZXh0OkwudG9TdHJpbmcoKSxlbGVtZW50VGV4dDprLnRleHRDb250ZW50LGVsZW1lbnRUZXh0TGVuZ3RoOmsudGV4dENvbnRlbnQ/Lmxlbmd0aH0pLEV9Z2V0Q29udGVudCgpe2xldCBrPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLmdldENvbnRlbnQpe2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksUz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLmdldENvbnRlbnQoXyxTKX1sZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFNKXJldHVybiIiO2xldCBOPU0uaW5uZXJIVE1MfHwiIjtyZXR1cm4gY29uc29sZS5sb2coIkdldHRpbmcgY29udGVudCBmcm9tIGJsb2NrOiIsTiksTn1zZXRDb250ZW50KGspe2xldCBNPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLnNldENvbnRlbnQpe2xldCBTPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLnNldENvbnRlbnQoUyxrLE8pfWxldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU4pcmV0dXJuO2xldCBfPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OO04uaW5uZXJIVE1MPWssXyYmTi5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoKXtsZXQgaz1JYS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoayYmay5zZXRDdXJzb3JUb1N0YXJ0KXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLF89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gay5zZXRDdXJzb3JUb1N0YXJ0KE4sXyl9bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtNJiZFbi5zZXRDdXJzb3JUb1N0YXJ0KE0pfXNldEN1cnNvclRvRW5kKCl7bGV0IGs9SWEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKGsmJmsuc2V0Q3Vyc29yVG9FbmQpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksXz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLnNldEN1cnNvclRvRW5kKE4sXyl9bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtNJiZFbi5zZXRDdXJzb3JUb0VuZChNKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7aWYoIXRoaXMuYmxvY2t8fHRoaXMuYmxvY2sudHlwZT09PSJkaXZpZGVyIilyZXR1cm5bXTtsZXQgaz1jcy5nZXRTbGFzaE1lbnVJdGVtcygpLE09dGhpcy5ibG9jay50eXBlLE49dGhpcy53eXNpd3lnQ29tcG9uZW50LF89dGhpcy5ibG9jay5pZCxPPVt7bmFtZToiQ2hhbmdlIFR5cGUiLGljb25OYW1lOiJ0eXBlIixzdWJtZW51OmsuZmlsdGVyKEw9PkwudHlwZSE9PU0mJkwudHlwZSE9PSJkaXZpZGVyIikubWFwKEw9Pih7bmFtZTpMLmxhYmVsLGljb25OYW1lOkwuaWNvbi5yZXBsYWNlKCJsdWNpZGU6IiwiIiksYWN0aW9uOmkoYXN5bmMoKT0+e2lmKE4mJk4uYmxvY2tPcGVyYXRpb25zKXtsZXQgRT1OLmJsb2Nrcy5maW5kKEI9PkIuaWQ9PT1fKTtFJiYoRS50eXBlPUwudHlwZSxFLmNvbnRlbnQ9RS5jb250ZW50fHwiIixMLnR5cGU9PT0iY29kZSI/RS5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifTpMLnR5cGU9PT0ibGlzdCI/RS5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9OkwudHlwZT09PSJpbWFnZSI/KEUuY29udGVudD0iIixFLm1ldGFkYXRhPXt1cmw6IiIsbG9hZGluZzohMX0pOkwudHlwZT09PSJ5b3V0dWJlIj8oRS5jb250ZW50PSIiLEUubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6TC50eXBlPT09Im1hcmtkb3duIj9FLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06TC50eXBlPT09Imh0bWwiP0UubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTpMLnR5cGU9PT0iYXR0YWNobWVudCImJihFLmNvbnRlbnQ9IiIsRS5tZXRhZGF0YT17ZmlsZXM6W119KSxOLnVwZGF0ZUJsb2NrRWxlbWVudChfKSxOLnVwZGF0ZVZhbHVlKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ti5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhfKX0pKX19LCJhY3Rpb24iKX0pKX1dO3JldHVyblsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpfHxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImN1dCIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsc2hvcnRjdXQ6IkNtZCtDIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX0sImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmkoYXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJwYXN0ZSIpfSwiYWN0aW9uIil9KSxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgQmxvY2siLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9PntOJiZOLmJsb2NrT3BlcmF0aW9ucyYmTi5ibG9ja09wZXJhdGlvbnMuZGVsZXRlQmxvY2soXyl9LCJhY3Rpb24iKX0pLE99Z2V0U3BsaXRDb250ZW50KCl7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3RhcnRpbmcuLi4iKTtsZXQgaz1JYS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ2hlY2tpbmcgZm9yIGhhbmRsZXIiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGhhc0hhbmRsZXI6ISFrLGhhc1NwbGl0TWV0aG9kOiEhKGsmJmsuZ2V0U3BsaXRDb250ZW50KX0pLGsmJmsuZ2V0U3BsaXRDb250ZW50KXtsZXQgWT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZvdW5kIGNvbnRhaW5lciIse2NvbnRhaW5lcjohIVksY29udGFpbmVySFRNTDpZPy5pbm5lckhUTUw/LnN1YnN0cmluZygwLDEwMCl9KTtsZXQgRz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLmdldFNwbGl0Q29udGVudChZLEcpfWxldCBNPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU0pcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIGVkaXRhYmxlIGVsZW1lbnQgZm91bmQiKSxudWxsO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEVsZW1lbnQgaW5mbzoiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGlubmVySFRNTDpNLmlubmVySFRNTCx0ZXh0Q29udGVudDpNLnRleHRDb250ZW50LHRleHRMZW5ndGg6TS50ZXh0Q29udGVudD8ubGVuZ3RofSk7bGV0IF89dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxTPVtdO18mJlMucHVzaChfKSx0aGlzLnNoYWRvd1Jvb3QmJlMucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczoiLHtzZWxlY3Rpb25JbmZvOk8sc2hhZG93Um9vdHNDb3VudDpTLmxlbmd0aH0pLCFPKXtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBObyBzZWxlY3Rpb24sIHVzaW5nIGxhc3Qga25vd24gcG9zaXRpb246Iix0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKSx0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IFk9TS50ZXh0Q29udGVudHx8IiIsRz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLFkubGVuZ3RoKTtyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3BsaXR0aW5nIHdpdGggbGFzdCBrbm93biBwb3NpdGlvbjoiLHtwb3M6RyxmdWxsVGV4dExlbmd0aDpZLmxlbmd0aCxiZWZvcmU6WS5zdWJzdHJpbmcoMCxHKSxhZnRlcjpZLnN1YnN0cmluZyhHKX0pLHtiZWZvcmU6WS5zdWJzdHJpbmcoMCxHKSxhZnRlcjpZLnN1YnN0cmluZyhHKX19cmV0dXJuIG51bGx9aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIHJhbmdlOiIse3N0YXJ0Q29udGFpbmVyOk8uc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6Ty5zdGFydE9mZnNldCxzdGFydENvbnRhaW5lckluRWxlbWVudDpNLmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpfSksIWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKE0sTy5zdGFydENvbnRhaW5lcikpe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiBub3QgaW4gdGhpcyBibG9jaywgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgWT1NLnRleHRDb250ZW50fHwiIixHPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sWS5sZW5ndGgpO3JldHVybntiZWZvcmU6WS5zdWJzdHJpbmcoMCxHKSxhZnRlcjpZLnN1YnN0cmluZyhHKX19cmV0dXJuIG51bGx9bGV0IEw9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihNKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDdXJzb3IgcG9zaXRpb24gZm9yIEhUTUwgc3BsaXQ6IixMKSxMPT09bnVsbHx8TD09PTApcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBhdCBzdGFydCBvciBudWxsLCBtb3ZpbmcgYWxsIGNvbnRlbnQiKSx7YmVmb3JlOiIiLGFmdGVyOk0uaW5uZXJIVE1MfTtsZXQgRT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLEI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtFLnNldFN0YXJ0KE0sMCksRS5zZXRFbmQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KSxCLnNldFN0YXJ0KE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCksQi5zZXRFbmQoTSxNLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgQz1FLmNsb25lQ29udGVudHMoKSx6PUIuY2xvbmVDb250ZW50cygpLEE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7QS5hcHBlbmRDaGlsZChDKTtsZXQgJD1BLmlubmVySFRNTDtBLmlubmVySFRNTD0iIixBLmFwcGVuZENoaWxkKHopO2xldCBGPUEuaW5uZXJIVE1MO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBGaW5hbCBzcGxpdCByZXN1bHQ6Iix7Y3Vyc29yUG9zOkwsYmVmb3JlSHRtbDokLGJlZm9yZUxlbmd0aDokLmxlbmd0aCxiZWZvcmVIdG1sUHJldmlldzokLnN1YnN0cmluZygwLDEwMCkrKCQubGVuZ3RoPjEwMD8iLi4uIjoiIiksYWZ0ZXJIdG1sOkYsYWZ0ZXJMZW5ndGg6Ri5sZW5ndGgsYWZ0ZXJIdG1sUHJldmlldzpGLnN1YnN0cmluZygwLDEwMCkrKEYubGVuZ3RoPjEwMD8iLi4uIjoiIil9KSx7YmVmb3JlOiQsYWZ0ZXI6Rn19c3RhdGlje2YzKGEscil9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBKOHQ9dSgoKT0+e002ZSgpOyQxKCk7ankoKTtwZmUoKTtMVXIoKTtpbXQoKTtDOSgpO3RtdCgpO25kKCk7cjMoKTtzbXQoKTtROHQoKTtoWnIoKTttWnIoKTtnWnIoKTtYOHQoKTtiWnIoKTtlbXQoKTtybXQoKTt2WnIoKX0pO3ZhciBhZixHbyxMcmUsTTZlPXUoKCk9PntDaSgpO1RVcigpO1E0KCk7dmUoKTtKOHQoKTtsdCgpO2FmPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxHbz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sTHJlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC13eXNpd3lnIildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFd5c2l3eWciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtpZSgpXSx2PVtpZSgpXSx5PVtpZSgpXSxOPVtpZSgpXSxPPVtpZSgpXSxhZih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ2YWx1ZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnZhbHVlLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudmFsdWU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGFmKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0Rm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJvdXRwdXRGb3JtYXQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5vdXRwdXRGb3JtYXQsImdldCIpLHNldDppKCh6LEEpPT57ei5vdXRwdXRGb3JtYXQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLGFmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJibG9ja3MiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5ibG9ja3MsImdldCIpLHNldDppKCh6LEEpPT57ei5ibG9ja3M9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLGFmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImRyYWdnZWRCbG9ja0lkImluIHosImhhcyIpLGdldDppKHo9PnouZHJhZ2dlZEJsb2NrSWQsImdldCIpLHNldDppKCh6LEEpPT57ei5kcmFnZ2VkQmxvY2tJZD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksYWYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImRyYWdPdmVyQmxvY2tJZCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmRyYWdPdmVyQmxvY2tJZCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmRyYWdPdmVyQmxvY2tJZD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksYWYodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkcmFnT3ZlclBvc2l0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZHJhZ092ZXJQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmRyYWdPdmVyUG9zaXRpb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxfLFMpLGFmKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWxlY3RlZFRleHQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZWxlY3RlZFRleHQsImdldCIpLHNldDppKCh6LEEpPT57ei5zZWxlY3RlZFRleHQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLGFmKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89X1VyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiLCJXb3Jrc3BhY2UiXTsjZT1Hbyh0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShDKXt0aGlzLiNlPUN9I3Q9KEdvKHRoaXMsbCksR28odGhpcyxkLCJodG1sIikpO2dldCBvdXRwdXRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3V0cHV0Rm9ybWF0KEMpe3RoaXMuI3Q9Q30jcj0oR28odGhpcyxmKSxHbyh0aGlzLGgsW3tpZDpjcy5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IiJ9XSkpO2dldCBibG9ja3MoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYmxvY2tzKEMpe3RoaXMuI3I9Q31zZWxlY3RlZEJsb2NrSWQ9KEdvKHRoaXMsbSksbnVsbCk7c2xhc2hNZW51PWNmZS5nZXRJbnN0YW5jZSgpOyNhPUdvKHRoaXMsYixudWxsKTtnZXQgZHJhZ2dlZEJsb2NrSWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHJhZ2dlZEJsb2NrSWQoQyl7dGhpcy4jYT1DfSNpPShHbyh0aGlzLGcpLEdvKHRoaXMsayxudWxsKSk7Z2V0IGRyYWdPdmVyQmxvY2tJZCgpe3JldHVybiB0aGlzLiNpfXNldCBkcmFnT3ZlckJsb2NrSWQoQyl7dGhpcy4jaT1DfSNzPShHbyh0aGlzLE0pLEdvKHRoaXMsXyxudWxsKSk7Z2V0IGRyYWdPdmVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgZHJhZ092ZXJQb3NpdGlvbihDKXt0aGlzLiNzPUN9Zm9ybWF0dGluZ01lbnU9KEdvKHRoaXMsUyksdWZlLmdldEluc3RhbmNlKCkpOyNuPUdvKHRoaXMsTCwiIik7Z2V0IHNlbGVjdGVkVGV4dCgpe3JldHVybiB0aGlzLiNufXNldCBzZWxlY3RlZFRleHQoQyl7dGhpcy4jbj1DfWVkaXRvckNvbnRlbnRSZWY9R28odGhpcyxFKTtpc0NvbXBvc2luZz0hMTtibG9ja09wZXJhdGlvbnM7aW5wdXRIYW5kbGVyO2tleWJvYXJkSGFuZGxlcjtkcmFnRHJvcEhhbmRsZXI7aGlzdG9yeTtzdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxhbXRdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmJsb2NrT3BlcmF0aW9ucz1uZXcgeXRlKHRoaXMpLHRoaXMuaW5wdXRIYW5kbGVyPW5ldyBNcmUodGhpcyksdGhpcy5rZXlib2FyZEhhbmRsZXI9bmV3IENyZSh0aGlzKSx0aGlzLmRyYWdEcm9wSGFuZGxlcj1uZXcgenJlKHRoaXMpLHRoaXMuaGlzdG9yeT1uZXcgX3JlfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pbnB1dEhhbmRsZXI/LmRlc3Ryb3koKSx0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy52YWx1ZSYmdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjApe2xldCBDPXRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP1hsLnBhcnNlSHRtbFRvQmxvY2tzKHRoaXMudmFsdWUpOlhsLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtDLmxlbmd0aD4wJiYodGhpcy5ibG9ja3M9Qyl9dGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmVkaXRvckNvbnRlbnRSZWYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEM9PnRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soQykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2stdGV4dC1zZWxlY3RlZCIsKEM9PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmQy5kZXRhaWwuaGFzU2VsZWN0aW9uJiZDLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9Qy5kZXRhaWwudGV4dCxDLmRldGFpbC5yZWN0KSl7bGV0IHo9e3g6Qy5kZXRhaWwucmVjdC5sZWZ0K0MuZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LEMuZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHosYXN5bmMgQT0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChBKSl9fSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsQz0+e2xldCB6PXRoaXMuZm9ybWF0dGluZ01lbnUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2lmKHomJnouY29udGFpbnMoQy50YXJnZXQpKXJldHVybjtsZXQgQT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7QSYmQS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGg+MHx8dGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlJiZ0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixDPT57bGV0IHo9Qy50YXJnZXQ7IXRoaXMuY29udGFpbnMoeikmJiF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKHopfHwoKEMubWV0YUtleXx8Qy5jdHJsS2V5KSYmIUMuc2hpZnRLZXkmJkMua2V5PT09InoiPyhDLnByZXZlbnREZWZhdWx0KCksdGhpcy51bmRvKCkpOihDLm1ldGFLZXl8fEMuY3RybEtleSkmJkMuc2hpZnRLZXkmJkMua2V5PT09InoiJiYoQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVkbygpKSl9KSx0aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl7dGhpcy5lZGl0b3JDb250ZW50UmVmJiYodGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTD0iIix0aGlzLmJsb2Nrcy5mb3JFYWNoKEM9PntsZXQgej10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChDKTt0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoeil9KSl9Y3JlYXRlQmxvY2tFbGVtZW50KEMpe2xldCB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKHouY2xhc3NOYW1lPSJibG9jay13cmFwcGVyIix6LnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsQy5pZCksQy50eXBlIT09ImRpdmlkZXIiKXtsZXQgJD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTskLmNsYXNzTmFtZT0iZHJhZy1oYW5kbGUiLCQuZHJhZ2dhYmxlPSEwLCQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixGPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoRixDKSksei5hcHBlbmRDaGlsZCgkKX1sZXQgQT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXd5c2l3eWctYmxvY2siKTtyZXR1cm4gQS5ibG9jaz1DLEEuaXNTZWxlY3RlZD10aGlzLnNlbGVjdGVkQmxvY2tJZD09PUMuaWQsQS53eXNpd3lnQ29tcG9uZW50PXRoaXMsQS5oYW5kbGVycz17b25JbnB1dDppKCQ9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoJCxDKSwib25JbnB1dCIpLG9uS2V5RG93bjppKCQ9PnRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bigkLEMpLCJvbktleURvd24iKSxvbkZvY3VzOmkoKCk9PnRoaXMuaGFuZGxlQmxvY2tGb2N1cyhDKSwib25Gb2N1cyIpLG9uQmx1cjppKCgpPT50aGlzLmhhbmRsZUJsb2NrQmx1cihDKSwib25CbHVyIiksb25Db21wb3NpdGlvblN0YXJ0OmkoKCk9PnRoaXMuaXNDb21wb3Npbmc9ITAsIm9uQ29tcG9zaXRpb25TdGFydCIpLG9uQ29tcG9zaXRpb25FbmQ6aSgoKT0+dGhpcy5pc0NvbXBvc2luZz0hMSwib25Db21wb3NpdGlvbkVuZCIpLG9uTW91c2VVcDppKCQ9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbigkKSwib25Nb3VzZVVwIiksb25SZXF1ZXN0VXBkYXRlOmkoKCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KEMuaWQpLCJvblJlcXVlc3RVcGRhdGUiKX0sei5hcHBlbmRDaGlsZChBKSx6LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwkPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnT3ZlcigkLEMpKSx6LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCQ9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoJCxDKSksei5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgpPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnTGVhdmUoQykpLHp9dXBkYXRlQmxvY2tFbGVtZW50KEMpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoRj0+Ri5pZD09PUMpO2lmKCF6KXJldHVybjtsZXQgQT10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Q30iXWApO2lmKCFBKXJldHVybjtsZXQgJD10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudCh6KTtBLnJlcGxhY2VXaXRoKCQpfXJlbmRlcigpe3JldHVybiBUcGAKICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAubGFiZWw9IiR7dGhpcy5sYWJlbH0iCiAgICAgICAgLmluZm9UZXh0PSIke3RoaXMuaW5mb1RleHR9IgogICAgICAgIC5yZXF1aXJlZD0iJHt0aGlzLnJlcXVpcmVkfSIKICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0id3lzaXd5Zy1jb250YWluZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICBgfWhhbmRsZVNsYXNoTWVudUtleWJvYXJkKEMpe3N3aXRjaChDLmtleSl7Y2FzZSJBcnJvd0Rvd24iOkMucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgiZG93biIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Qy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJ1cCIpO2JyZWFrO2Nhc2UiRW50ZXIiOkMucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7YnJlYWs7Y2FzZSJFc2NhcGUiOkMucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlU2xhc2hNZW51KCEwKTticmVha319Y2xvc2VTbGFzaE1lbnUoQz0hMSl7aWYoQyYmdGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoQT0+QS5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZih6KXtsZXQgJD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ei5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZigkKXtsZXQgRj0kLmdldENvbnRlbnQoKTtpZihGLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IFk9Ri5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7JC5zZXRDb250ZW50KFkpLHouY29udGVudD1ZLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+eyQuZm9jdXNXaXRoQ3Vyc29yKDApfSl9fX19dGhpcy5zbGFzaE1lbnUuaGlkZSgpfWhhbmRsZUJsb2NrRm9jdXMoQyl7dGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpO2xldCB6PXRoaXMuc2VsZWN0ZWRCbG9ja0lkO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkPUMuaWQseiE9PUMuaWQpe2lmKHope2xldCBZPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7en0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtZJiYoWS5pc1NlbGVjdGVkPSExKX1sZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7JCYmKCQuaXNTZWxlY3RlZD0hMCl9fWJsdXJUaW1lb3V0PW51bGw7aGFuZGxlQmxvY2tCbHVyKEMpe2lmKHRoaXMuYmx1clRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLnNsYXNoTWVudS52aXNpYmxlKXJldHVybjtsZXQgQT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoQSYmQS5nZXRDb250ZW50KXtsZXQgJD1BLmdldENvbnRlbnQoKTtDLmNvbnRlbnQhPT0kJiYoQy5jb250ZW50PSQpfXRoaXMuYmx1clRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCJibG9jayIpfHx0aGlzLnVwZGF0ZVZhbHVlKCl9LDEwMCl9aGFuZGxlRWRpdG9yQ2xpY2soQyl7bGV0IHo9Qy50YXJnZXQ7aWYodGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5jbG9zZVNsYXNoTWVudSghMCksei5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1jb250ZW50Iikpe2xldCBBPXRoaXMuYmxvY2tzW3RoaXMuYmxvY2tzLmxlbmd0aC0xXTt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEEuaWQsQS50eXBlPT09ImRpdmlkZXIifHxBLnR5cGU9PT0iaW1hZ2UiP3ZvaWQgMDoiZW5kIil9fWNyZWF0ZU5ld0Jsb2NrKEM9InBhcmFncmFwaCIsej0iIixBKXtyZXR1cm57aWQ6Y3MuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTpDLGNvbnRlbnQ6eiwuLi5BJiZ7bWV0YWRhdGE6QX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoQyx6LEE9ITApe2xldCAkPXRoaXMuYmxvY2tzLmZpbmRJbmRleChZPT5ZLmlkPT09Qy5pZCk7dGhpcy5ibG9ja3M9Wy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsJCsxKSx6LC4uLnRoaXMuYmxvY2tzLnNsaWNlKCQrMSldO2xldCBGPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtDLmlkfSJdYCk7aWYoRil7bGV0IFk9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoeik7Ri5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixZKX10aGlzLnVwZGF0ZVZhbHVlKCksQSYmei50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2UoWT0+c2V0VGltZW91dChZLDApKSxhd2FpdCB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKHouaWQsInN0YXJ0IikpfWFzeW5jIGluc2VydEJsb2NrKEMpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoRj0+Ri5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZigheil7dGhpcy5jbG9zZVNsYXNoTWVudSgpO3JldHVybn1sZXQgJD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ei5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZigkKXtsZXQgRj0kLmdldENvbnRlbnQoKTtpZihGLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IFk9Ri5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7JC5zZXRDb250ZW50KFkpLHouY29udGVudD1ZfX1pZih0aGlzLmNsb3NlU2xhc2hNZW51KCExKSxDPT09ImNvZGUiJiYoei5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifSksei50eXBlPUMsei5jb250ZW50PXouY29udGVudHx8IiIsQz09PSJkaXZpZGVyIil7ei5jb250ZW50PSIgIjtsZXQgRj10aGlzLmNyZWF0ZU5ld0Jsb2NrKCk7dGhpcy5pbnNlcnRCbG9ja0FmdGVyKHosRil9ZWxzZSBDPT09Imxpc3QiPyh6Lm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In0sei5jb250ZW50PSIiKTpDPT09ImltYWdlIj8oei5jb250ZW50PSIiLHoubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6Qz09PSJ5b3V0dWJlIj8oei5jb250ZW50PSIiLHoubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6Qz09PSJtYXJrZG93biI/ei5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkM9PT0iaHRtbCI/ei5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkM9PT0iYXR0YWNobWVudCI/KHouY29udGVudD0iIix6Lm1ldGFkYXRhPXtmaWxlczpbXX0pOnouY29udGVudD16LmNvbnRlbnR8fCIiO3RoaXMudXBkYXRlQmxvY2tFbGVtZW50KHouaWQpLHRoaXMudXBkYXRlVmFsdWUoKSxhd2FpdCBuZXcgUHJvbWlzZShGPT5zZXRUaW1lb3V0KEYsMCkpLEM9PT0ibGlzdCI/KHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soei5pZCwic3RhcnQiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgWT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3ouaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7WSYmWS5mb2N1c0xpc3RJdGVtKCl9KSk6QyE9PSJkaXZpZGVyIiYmQyE9PSJpbWFnZSImJkMhPT0ieW91dHViZSImJkMhPT0ibWFya2Rvd24iJiZDIT09Imh0bWwiJiZDIT09ImF0dGFjaG1lbnQiP3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soei5pZCwic3RhcnQiKTooQz09PSJpbWFnZSJ8fEM9PT0ieW91dHViZSJ8fEM9PT0ibWFya2Rvd24ifHxDPT09Imh0bWwifHxDPT09ImF0dGFjaG1lbnQiKSYmdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayh6LmlkKX11cGRhdGVWYWx1ZSgpe3RoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMudmFsdWU9WGwuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk6dGhpcy52YWx1ZT1YbC5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2NrcyksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5zYXZlVG9IaXN0b3J5KCEwKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEMpe3RoaXMudmFsdWU9Qyx0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLmJsb2Nrcz1YbC5wYXJzZUh0bWxUb0Jsb2NrcyhDKTp0aGlzLmJsb2Nrcz1YbC5wYXJzZU1hcmtkb3duVG9CbG9ja3MoQyksdGhpcy5ibG9ja3MubGVuZ3RoPT09MCYmKHRoaXMuYmxvY2tzPVt7aWQ6Y3MuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QmxvY2tzKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ibG9ja3MpKX1pbXBvcnRCbG9ja3MoQyl7dGhpcy5ibG9ja3M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShDKSksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QXNIdG1sKCl7cmV0dXJuIFhsLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydEFzTWFya2Rvd24oKXtyZXR1cm4gWGwuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydFN0YXRlKCl7cmV0dXJue2Jsb2Nrczp0aGlzLmV4cG9ydEJsb2NrcygpLG91dHB1dEZvcm1hdDp0aGlzLm91dHB1dEZvcm1hdH19aW1wb3J0U3RhdGUoQyl7Qy5vdXRwdXRGb3JtYXQmJih0aGlzLm91dHB1dEZvcm1hdD1DLm91dHB1dEZvcm1hdCksdGhpcy5pbXBvcnRCbG9ja3MoQy5ibG9ja3MpfWhhbmRsZURyYWdFbmQoKXtpZih0aGlzLmRyYWdnZWRCbG9ja0lkKXtsZXQgej10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH0iXWApO3omJnouY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKHo9Pnt6LmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3Zlci1iZWZvcmUiLCJkcmFnLW92ZXItYWZ0ZXIiKX0pLHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyb3AoQyx6KXtpZihDLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT16LmlkKXJldHVybjtsZXQgQT10aGlzLmJsb2Nrcy5maW5kSW5kZXgoRz0+Ry5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpLCQ9dGhpcy5ibG9ja3MuZmluZEluZGV4KEc9PkcuaWQ9PT16LmlkKTtpZihBPT09LTF8fCQ9PT0tMSlyZXR1cm47bGV0W0ZdPXRoaXMuYmxvY2tzLnNwbGljZShBLDEpLFk9JDt0aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYWZ0ZXIiP1k9QTwkPyQ6JCsxOlk9QTwkPyQtMTokLHRoaXMuYmxvY2tzLnNwbGljZShZLDAsRiksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgRz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Ri5pZH0iXSAuYmxvY2tgKTtHJiZGLnR5cGUhPT0iZGl2aWRlciImJkcuZm9jdXMoKX0sMTAwKX1oYW5kbGVUZXh0U2VsZWN0aW9uKEMpe3RoaXMuc2xhc2hNZW51LnZpc2libGV9dXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpe2xldCBDPVtdO3RoaXMuc2hhZG93Um9vdCYmQy5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKCQ9PntsZXQgRj0kLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0Y/LnNoYWRvd1Jvb3QmJkMucHVzaChGLnNoYWRvd1Jvb3QpfSk7bGV0IEE9dDMuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uQyk7QSYmdGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHt4OkEueCx5OkEueX0sYXN5bmMgJD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdCgkKSl9aGlkZUZvcm1hdHRpbmdNZW51KCl7dGhpcy5mb3JtYXR0aW5nTWVudS5oaWRlKCksdGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgYXBwbHlGb3JtYXQoQyl7bGV0IHo9W107dGhpcy5zaGFkb3dSb290JiZ6LnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2goZGU9PntsZXQgRD1kZS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtEPy5zaGFkb3dSb290JiZ6LnB1c2goRC5zaGFkb3dSb290KX0pO2xldCAkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4ueik7aWYoISQpcmV0dXJuO2xldCBGLFksRz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKTtmb3IobGV0IGRlPTA7ZGU8Ry5sZW5ndGg7ZGUrKyl7bGV0IEQ9R1tkZV0sUT1ELnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFE/LnNoYWRvd1Jvb3Qpe2xldCBmZT1RLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoZmUmJihmZS5jb250YWlucygkLnN0YXJ0Q29udGFpbmVyKXx8ZmUuY29udGFpbnMoJC5lbmRDb250YWluZXIpKSl7bGV0IFQ9RC5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtGPXRoaXMuYmxvY2tzLmZpbmQoVz0+Vy5pZD09PVQpLFk9UTticmVha319fWlmKCFGfHwhWSlyZXR1cm47bGV0IFo9aHQuY3JlYXRlUmFuZ2VGcm9tSW5mbygkKTtpZihDPT09ImxpbmsiKXtsZXQgZGU9YXdhaXQgdGhpcy5zaG93TGlua0RpYWxvZygpO2lmKCFkZSl7WS5mb2N1cygpO3JldHVybn10My5hcHBseUZvcm1hdChDLGRlLFoseil9ZWxzZSB0My5hcHBseUZvcm1hdChDLHZvaWQgMCxaLHopO2F3YWl0IG5ldyBQcm9taXNlKGRlPT5zZXRUaW1lb3V0KGRlLDEwKSksRi5jb250ZW50PVkuZ2V0Q29udGVudCgpLHRoaXMudXBkYXRlVmFsdWUoKSxZLmZvY3VzKCksQz09PSJsaW5rIj90aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpOnRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIHNob3dMaW5rRGlhbG9nKCl7cmV0dXJuIG5ldyBQcm9taXNlKEM9PntsZXQgej1udWxsO2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBMaW5rIixjb250ZW50OlRwYAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGluay1pbnB1dCB7CiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaW5wdXQpOwogICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpOwogICAgICAgICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1wcmltYXJ5KTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgY2xhc3M9ImxpbmstaW5wdXQiIAogICAgICAgICAgICB0eXBlPSJ1cmwiIAogICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9leGFtcGxlLmNvbSIgCiAgICAgICAgICAgIEBrZXlkb3duPSIke0E9PntpZihBLmtleT09PSJFbnRlciIpe2xldCAkPUEudGFyZ2V0O3o9JC52YWx1ZTtsZXQgRj0kLmNsb3Nlc3QoImRlZXMtbW9kYWwiKTtpZihGKXtsZXQgWT1GLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ib3R0b21CdXR0b246bGFzdC1jaGlsZCIpO1kmJlkuY2xpY2soKX19fX0iCiAgICAgICAgICAgIEBpbnB1dD0iJHtBPT57ej1BLnRhcmdldC52YWx1ZX19IgogICAgICAgICAgLz4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBBPT57QS5kZXN0cm95KCksQyhudWxsKX0sImFjdGlvbiIpfSx7bmFtZToiQWRkIExpbmsiLGFjdGlvbjppKGFzeW5jIEE9PntBLmRlc3Ryb3koKSxDKHopfSwiYWN0aW9uIil9XX0pLHNldFRpbWVvdXQoKCk9PntsZXQgQT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIC5saW5rLWlucHV0Iik7QSYmQS5mb2N1cygpfSwxMDApfSl9dW5kbygpe2xldCBDPXRoaXMuaGlzdG9yeS51bmRvKCk7QyYmdGhpcy5yZXN0b3JlU3RhdGUoQyl9cmVkbygpe2xldCBDPXRoaXMuaGlzdG9yeS5yZWRvKCk7QyYmdGhpcy5yZXN0b3JlU3RhdGUoQyl9cmVzdG9yZVN0YXRlKEMpe3RoaXMuYmxvY2tzPUMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkPUMuc2VsZWN0ZWRCbG9ja0lkLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLEMuY3Vyc29yUG9zaXRpb24/c2V0VGltZW91dCgoKT0+e2xldCBBPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Qy5jdXJzb3JQb3NpdGlvbi5ibG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0EmJkEuZm9jdXNXaXRoQ3Vyc29yKEMuY3Vyc29yUG9zaXRpb24ub2Zmc2V0KX0sNTApOkMuc2VsZWN0ZWRCbG9ja0lkJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhDLnNlbGVjdGVkQmxvY2tJZCl9LDUwKSx0aGlzLnVwZGF0ZVZhbHVlKCl9c2F2ZVRvSGlzdG9yeShDPSEwKXtsZXQgejtpZih0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLnNlbGVjdGVkQmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZigkJiZ0eXBlb2YgJC5nZXRDdXJzb3JQb3NpdGlvbj09ImZ1bmN0aW9uIil7bGV0IEY9JC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihGKXtsZXQgWT0kLmdldEN1cnNvclBvc2l0aW9uKEYpO1khPT1udWxsJiYoej17YmxvY2tJZDp0aGlzLnNlbGVjdGVkQmxvY2tJZCxvZmZzZXQ6WX0pfX19Qz90aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLHopOnRoaXMuaGlzdG9yeS5zYXZlQ2hlY2twb2ludCh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCx6KX1zdGF0aWN7R28oYSxyKX19O3JldHVybiBCPWF9KSgpfSk7dmFyIHlacix3WnI9dSgoKT0+e3ZlKCk7d2EoKTtDNmUoKTt3bigpO3lacj1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3JlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBSaWNoIFRleHQgRWRpdG9yIn0gLnN1YnRpdGxlPSR7IkEgZnVsbC1mZWF0dXJlZCByaWNoIHRleHQgZWRpdG9yIHdpdGggZm9ybWF0dGluZyB0b29sYmFyIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiQXJ0aWNsZSBDb250ZW50In0gCiAgICAgICAgICAudmFsdWU9JHsnPGgxPldlbGNvbWUgdG8gdGhlIFJpY2ggVGV4dCBFZGl0b3IhPC9oMT48cD5UaGlzIGlzIGEgZmVhdHVyZS1yaWNoIGVkaXRvciBidWlsdCB3aXRoIFRpcFRhcC4gWW91IGNhbjo8L3A+PHVsPjxsaT48c3Ryb25nPkZvcm1hdCB0ZXh0PC9zdHJvbmc+IHdpdGggPGVtPnZhcmlvdXM8L2VtPiA8dT5zdHlsZXM8L3U+PC9saT48bGk+Q3JlYXRlIGRpZmZlcmVudCBoZWFkaW5nIGxldmVsczwvbGk+PGxpPkFkZCA8YSBocmVmPSJodHRwczovL2V4YW1wbGUuY29tIj5saW5rczwvYT4gdG8gZXh0ZXJuYWwgcmVzb3VyY2VzPC9saT48bGk+V3JpdGUgPGNvZGU+aW5saW5lIGNvZGU8L2NvZGU+IG9yIGNvZGUgYmxvY2tzPC9saT48L3VsPjxibG9ja3F1b3RlPjxwPlVzZSB0aGUgdG9vbGJhciBhYm92ZSB0byBleHBsb3JlIGFsbCB0aGUgZm9ybWF0dGluZyBvcHRpb25zIGF2YWlsYWJsZSE8L3A+PC9ibG9ja3F1b3RlPjxwPlN0YXJ0IHR5cGluZyB0byBzZWUgdGhlIG1hZ2ljIGhhcHBlbi4uLjwvcD4nfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlVzZSB0aGUgdG9vbGJhciB0byBmb3JtYXQgeW91ciBjb250ZW50IHdpdGggaGVhZGluZ3MsIGxpc3RzLCBsaW5rcywgYW5kIG1vcmUifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gV2l0aCBQbGFjZWhvbGRlciJ9IC5zdWJ0aXRsZT0keyJFbXB0eSBlZGl0b3Igd2l0aCBwbGFjZWhvbGRlciB0ZXh0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiQmxvZyBQb3N0In0gCiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU3RhcnQgd3JpdGluZyB5b3VyIGJsb2cgcG9zdCBoZXJlLi4uIn0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIERpZmZlcmVudCBIZWlnaHRzIn0gLnN1YnRpdGxlPSR7IkVkaXRvcnMgd2l0aCBkaWZmZXJlbnQgbWluaW11bSBoZWlnaHRzIGZvciB2YXJpb3VzIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiU2hvcnQgTm90ZSJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MTUwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiUXVpY2sgbm90ZS4uLiJ9CiAgICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IkV4dGVuZGVkIENvbnRlbnQifSAKICAgICAgICAgICAgLm1pbkhlaWdodD0kezMwMH0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IldyaXRlIHlvdXIgZXh0ZW5kZWQgY29udGVudCBoZXJlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBDb2RlIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkVkaXRvciBwcmUtZmlsbGVkIHdpdGggY29kZSBleGFtcGxlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IlRlY2huaWNhbCBEb2N1bWVudGF0aW9uIn0gCiAgICAgICAgICAudmFsdWU9JHsnPGgyPkluc3RhbGxhdGlvbiBHdWlkZTwvaDI+PHA+VG8gaW5zdGFsbCB0aGUgcGFja2FnZSwgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDo8L3A+PHByZT48Y29kZT5ucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+PHA+VGhlbiBpbXBvcnQgdGhlIGNvbXBvbmVudCBpbiB5b3VyIFR5cGVTY3JpcHQgZmlsZTo8L3A+PHByZT48Y29kZT5pbXBvcnQgeyBEZWVzSW5wdXRSaWNodGV4dCB9IGZyb20gIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyI7PC9jb2RlPjwvcHJlPjxwPllvdSBjYW4gbm93IHVzZSB0aGUgPGNvZGU+Jmx0O2RlZXMtaW5wdXQtcmljaHRleHQmZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHlvdXIgdGVtcGxhdGVzLjwvcD4nfQogICAgICAgICAgLm1pbkhlaWdodD0kezI1MH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIERpc2FibGVkIFN0YXRlIn0gLnN1YnRpdGxlPSR7IlJlYWQtb25seSByaWNoIHRleHQgY29udGVudCJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IlB1Ymxpc2hlZCBBcnRpY2xlIChSZWFkIE9ubHkpIn0gCiAgICAgICAgICAudmFsdWU9JHsnPGgyPlRoZSBGdXR1cmUgb2YgV2ViIENvbXBvbmVudHM8L2gyPjxwPldlYiBDb21wb25lbnRzIGhhdmUgcmV2b2x1dGlvbml6ZWQgaG93IHdlIGJ1aWxkIG1vZGVybiB3ZWIgYXBwbGljYXRpb25zLi4uPC9wPjxibG9ja3F1b3RlPjxwPiJUaGUgZnV0dXJlIG9mIHdlYiBkZXZlbG9wbWVudCBsaWVzIGluIHJldXNhYmxlLCBlbmNhcHN1bGF0ZWQgY29tcG9uZW50cy4iPC9wPjwvYmxvY2txdW90ZT4nfQogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBJbnRlcmFjdGl2ZSBEZW1vIn0gLnN1YnRpdGxlPSR7IlR5cGUgaW4gdGhlIGVkaXRvciBiZWxvdyBhbmQgc2VlIHRoZSBIVE1MIG91dHB1dCJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLWVkaXRvciIKICAgICAgICAgIC5sYWJlbD0keyJUcnkgaXQgeW91cnNlbGYifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHNvbWV0aGluZyBoZXJlLi4uIn0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldyIpO2UmJihlLnRleHRDb250ZW50PXQuZGV0YWlsLnZhbHVlKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9Im91dHB1dC1wcmV2aWV3Ij4KICAgICAgICAgIDxlbT5IVE1MIG91dHB1dCB3aWxsIGFwcGVhciBoZXJlLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGtacixTWnI9dSgoKT0+e3ZlKCk7Q2koKTtsdCgpO2tacj1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuZm9jdXNlZDo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItdG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItZGl2aWRlciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDAlOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcCB7CiAgICAgICAgbWFyZ2luOiAwLjVlbSAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHA6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgxIHsKICAgICAgICBmb250LXNpemU6IDJlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBtYXJnaW46IDFlbSAwIDAuNWVtIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxLjVlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBtYXJnaW46IDFlbSAwIDAuNWVtIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgdWwsCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3Igb2wgewogICAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07CiAgICAgICAgbWFyZ2luOiAwLjVlbSAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGxpIHsKICAgICAgICBtYXJnaW46IDAuMjVlbSAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGJsb2NrcXVvdGUgewogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgbWFyZ2luOiAxZW0gMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDFlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnRmlyYSBDb2RlJywgJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgJ1JvYm90byBNb25vJywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxZW07CiAgICAgICAgbWFyZ2luOiAxZW0gMDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBhIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBhOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA0MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNjkuOCUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWZvb3RlciB7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAud29yZC1jb3VudCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LnNob3cgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgZGVlcy10aWxlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRvb2xiYXItYnV0dG9uLAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuZWRpdG9yLWNvbnRlbnQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXX0pO3ZhciBNWnIsQ1pyPXUoKCk9Pnt2ZSgpO01acj1pKHQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICAke3QubGFiZWw/d2A8bGFiZWwgY2xhc3M9ImxhYmVsIj4ke3QubGFiZWx9PC9sYWJlbD5gOiIifQogICAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHt0LmVkaXRvcj8uaXNGb2N1c2VkPyJmb2N1c2VkIjoiIn0iIHN0eWxlPSItLW1pbi1oZWlnaHQ6ICR7dC5taW5IZWlnaHR9cHgiPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImVkaXRvci10b29sYmFyIj4KICAgICAgICAgICAgICAke3QucmVuZGVyVG9vbGJhcigpfQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQgJHt0LnNob3dMaW5rSW5wdXQ/InNob3ciOiIifSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiBwbGFjZWhvbGRlcj0iRW50ZXIgVVJMLi4uIiBAa2V5ZG93bj0ke3QuaGFuZGxlTGlua0lucHV0S2V5ZG93bn0gLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQtYnV0dG9ucyI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InByaW1hcnkiIEBjbGljaz0ke3Quc2F2ZUxpbmt9PlNhdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHt0LnJlbW92ZUxpbmt9PlJlbW92ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0ke3QuaGlkZUxpbmtJbnB1dH0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1jb250ZW50Ij48L2Rpdj4KICAgICAgICAgICAgJHt0LnNob3dXb3JkQ291bnQ/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJlZGl0b3ItZm9vdGVyIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id29yZC1jb3VudCI+JHt0LndvcmRDb3VudH0gd29yZCR7dC53b3JkQ291bnQhPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgICAgJHt0LnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlclJpY2h0ZXh0Iil9KTt2YXIgSjksZGwsejZlLEM2ZT11KCgpPT57Q2koKTt3WnIoKTtTWnIoKTtDWnIoKTtLcigpO3ZlKCk7cDMoKTtucygpO0o5PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxkbD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sejZlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1yaWNodGV4dCIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRSaWNodGV4dCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W2llKCldLE49W2llKCldLEo5KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InZhbHVlImluIEUsImhhcyIpLGdldDppKEU9PkUudmFsdWUsImdldCIpLHNldDppKChFLEIpPT57RS52YWx1ZT1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LG8sbCksSjkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4icGxhY2Vob2xkZXIiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnBsYWNlaG9sZGVyPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sZCxmKSxKOSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dXb3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dXb3JkQ291bnQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93V29yZENvdW50LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uuc2hvd1dvcmRDb3VudD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGgsbSksSjkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5IZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im1pbkhlaWdodCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1pbkhlaWdodCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLm1pbkhlaWdodD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGIsZyksSjkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGlua0lucHV0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzaG93TGlua0lucHV0ImluIEUsImhhcyIpLGdldDppKEU9PkUuc2hvd0xpbmtJbnB1dCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnNob3dMaW5rSW5wdXQ9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxrLE0pLEo5KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29yZENvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ3b3JkQ291bnQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS53b3JkQ291bnQsImdldCIpLHNldDppKChFLEIpPT57RS53b3JkQ291bnQ9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxfLFMpLEo5KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkx9LG51bGwsciksTz1hPWUudmFsdWUsTCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMfSl9c3RhdGljIGRlbW89eVpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1kbCh0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShMKXt0aGlzLiNlPUx9I3Q9KGRsKHRoaXMsbCksZGwodGhpcyxkLCIiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBsYWNlaG9sZGVyKEwpe3RoaXMuI3Q9TH0jcj0oZGwodGhpcyxmKSxkbCh0aGlzLGgsITApKTtnZXQgc2hvd1dvcmRDb3VudCgpe3JldHVybiB0aGlzLiNyfXNldCBzaG93V29yZENvdW50KEwpe3RoaXMuI3I9TH0jYT0oZGwodGhpcyxtKSxkbCh0aGlzLGIsMjAwKSk7Z2V0IG1pbkhlaWdodCgpe3JldHVybiB0aGlzLiNhfXNldCBtaW5IZWlnaHQoTCl7dGhpcy4jYT1MfSNpPShkbCh0aGlzLGcpLGRsKHRoaXMsaywhMSkpO2dldCBzaG93TGlua0lucHV0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dMaW5rSW5wdXQoTCl7dGhpcy4jaT1MfSNzPShkbCh0aGlzLE0pLGRsKHRoaXMsXywwKSk7Z2V0IHdvcmRDb3VudCgpe3JldHVybiB0aGlzLiNzfXNldCB3b3JkQ291bnQoTCl7dGhpcy4jcz1MfWVkaXRvckVsZW1lbnQ9ZGwodGhpcyxTKTtsaW5rSW5wdXRFbGVtZW50O3RpcHRhcEJ1bmRsZT1udWxsO2VkaXRvcjtzdGF0aWMgc3R5bGVzPWtacjtyZW5kZXIoKXtyZXR1cm4gTVpyKHRoaXMpfXJlbmRlclRvb2xiYXIoKXtsZXQgTD10aGlzLmdldFRvb2xiYXJCdXR0b25zKCk7cmV0dXJuIHdgCiAgICAgICR7TC5tYXAoRT0+RS5pc0RpdmlkZXI/d2A8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PmA6d2AKICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7RS5pc0FjdGl2ZT8uKCk/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9JHtFLmFjdGlvbn0KICAgICAgICAgICAgdGl0bGU9JHtFLnRpdGxlfQogICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfHwhdGhpcy5lZGl0b3J9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtFLmljb259PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgYCl9CiAgICBgfWdldFRvb2xiYXJCdXR0b25zKCl7cmV0dXJuIHRoaXMuZWRpdG9yP1t7bmFtZToiYm9sZCIsaWNvbjoibHVjaWRlOmJvbGQiLHRpdGxlOiJCb2xkIChDdHJsK0IpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJvbGQoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJvbGQiKSwiaXNBY3RpdmUiKX0se25hbWU6Iml0YWxpYyIsaWNvbjoibHVjaWRlOml0YWxpYyIsdGl0bGU6Ikl0YWxpYyAoQ3RybCtJKSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVJdGFsaWMoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIml0YWxpYyIpLCJpc0FjdGl2ZSIpfSx7bmFtZToidW5kZXJsaW5lIixpY29uOiJsdWNpZGU6dW5kZXJsaW5lIix0aXRsZToiVW5kZXJsaW5lIChDdHJsK1UpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVVuZGVybGluZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgidW5kZXJsaW5lIiksImlzQWN0aXZlIil9LHtuYW1lOiJzdHJpa2UiLGljb246Imx1Y2lkZTpzdHJpa2V0aHJvdWdoIix0aXRsZToiU3RyaWtldGhyb3VnaCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVTdHJpa2UoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoInN0cmlrZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjEiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImgxIixpY29uOiJsdWNpZGU6aGVhZGluZzEiLHRpdGxlOiJIZWFkaW5nIDEiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6MX0pLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjF9KSwiaXNBY3RpdmUiKX0se25hbWU6ImgyIixpY29uOiJsdWNpZGU6aGVhZGluZzIiLHRpdGxlOiJIZWFkaW5nIDIiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6Mn0pLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImgzIixpY29uOiJsdWNpZGU6aGVhZGluZzMiLHRpdGxlOiJIZWFkaW5nIDMiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6M30pLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjN9KSwiaXNBY3RpdmUiKX0se25hbWU6ImRpdmlkZXIyIix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJidWxsZXRMaXN0IixpY29uOiJsdWNpZGU6bGlzdCIsdGl0bGU6IkJ1bGxldCBMaXN0IixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJ1bGxldExpc3QoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJ1bGxldExpc3QiKSwiaXNBY3RpdmUiKX0se25hbWU6Im9yZGVyZWRMaXN0IixpY29uOiJsdWNpZGU6bGlzdE9yZGVyZWQiLHRpdGxlOiJOdW1iZXJlZCBMaXN0IixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZU9yZGVyZWRMaXN0KCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJvcmRlcmVkTGlzdCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiYmxvY2txdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIix0aXRsZToiUXVvdGUiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQmxvY2txdW90ZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYmxvY2txdW90ZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiY29kZSIsaWNvbjoibHVjaWRlOmNvZGUiLHRpdGxlOiJDb2RlIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGUoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImNvZGUiKSwiaXNBY3RpdmUiKX0se25hbWU6ImNvZGVCbG9jayIsaWNvbjoibHVjaWRlOmZpbGVDb2RlIix0aXRsZToiQ29kZSBCbG9jayIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVDb2RlQmxvY2soKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImNvZGVCbG9jayIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjMiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImxpbmsiLGljb246Imx1Y2lkZTpsaW5rIix0aXRsZToiQWRkIExpbmsiLGFjdGlvbjppKCgpPT50aGlzLnRvZ2dsZUxpbmsoKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduTGVmdCIsaWNvbjoibHVjaWRlOmFsaWduTGVmdCIsdGl0bGU6IkFsaWduIExlZnQiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJsZWZ0IikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246ImxlZnQifSksImlzQWN0aXZlIil9LHtuYW1lOiJhbGlnbkNlbnRlciIsaWNvbjoibHVjaWRlOmFsaWduQ2VudGVyIix0aXRsZToiQWxpZ24gQ2VudGVyIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldFRleHRBbGlnbigiY2VudGVyIikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246ImNlbnRlciJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduUmlnaHQiLGljb246Imx1Y2lkZTphbGlnblJpZ2h0Iix0aXRsZToiQWxpZ24gUmlnaHQiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJyaWdodCIpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJyaWdodCJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImRpdmlkZXI0Iix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJ1bmRvIixpY29uOiJsdWNpZGU6dW5kbyIsdGl0bGU6IlVuZG8gKEN0cmwrWikiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5kbygpLnJ1bigpLCJhY3Rpb24iKX0se25hbWU6InJlZG8iLGljb246Imx1Y2lkZTpyZWRvIix0aXRsZToiUmVkbyAoQ3RybCtZKSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5yZWRvKCkucnVuKCksImFjdGlvbiIpfV06W119YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnRpcHRhcEJ1bmRsZT1hd2FpdCBzbi5nZXRJbnN0YW5jZSgpLmxvYWRUaXB0YXAoKSx0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMubGlua0lucHV0RWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmxpbmstaW5wdXQgaW5wdXQiKSx0aGlzLmluaXRpYWxpemVFZGl0b3IoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1pbml0aWFsaXplRWRpdG9yKCl7aWYodGhpcy5kaXNhYmxlZHx8IXRoaXMudGlwdGFwQnVuZGxlKXJldHVybjtsZXR7RWRpdG9yOkwsU3RhcnRlcktpdDpFLFVuZGVybGluZTpCLFRleHRBbGlnbjpDLExpbms6eixUeXBvZ3JhcGh5OkF9PXRoaXMudGlwdGFwQnVuZGxlO3RoaXMuZWRpdG9yPW5ldyBMKHtlbGVtZW50OnRoaXMuZWRpdG9yRWxlbWVudCxleHRlbnNpb25zOltFLmNvbmZpZ3VyZSh7aGVhZGluZzp7bGV2ZWxzOlsxLDIsM119fSksQi5jb25maWd1cmUoe30pLEMuY29uZmlndXJlKHt0eXBlczpbImhlYWRpbmciLCJwYXJhZ3JhcGgiXX0pLHouY29uZmlndXJlKHtvcGVuT25DbGljazohMSxIVE1MQXR0cmlidXRlczp7Y2xhc3M6ImVkaXRvci1saW5rIn19KSxBLmNvbmZpZ3VyZSh7fSldLGNvbnRlbnQ6dGhpcy52YWx1ZXx8KHRoaXMucGxhY2Vob2xkZXI/YDxwPiR7dGhpcy5wbGFjZWhvbGRlcn08L3A+YDoiIiksb25VcGRhdGU6aSgoe2VkaXRvcjokfSk9Pnt0aGlzLnZhbHVlPSQuZ2V0SFRNTCgpLHRoaXMudXBkYXRlV29yZENvdW50KCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaW5wdXQiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSwib25VcGRhdGUiKSxvblNlbGVjdGlvblVwZGF0ZTppKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvblNlbGVjdGlvblVwZGF0ZSIpLG9uRm9jdXM6aSgoKT0+e3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwib25Gb2N1cyIpLG9uQmx1cjppKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvbkJsdXIiKX0pLHRoaXMudXBkYXRlV29yZENvdW50KCl9dXBkYXRlV29yZENvdW50KCl7aWYoIXRoaXMuZWRpdG9yKXJldHVybjtsZXQgTD10aGlzLmVkaXRvci5nZXRUZXh0KCk7dGhpcy53b3JkQ291bnQ9TC50cmltKCk/TC50cmltKCkuc3BsaXQoL1xzKy8pLmxlbmd0aDowfXRvZ2dsZUxpbmsoKXtpZih0aGlzLmVkaXRvcilpZih0aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpKXtsZXQgTD10aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKCJsaW5rIikuaHJlZjt0aGlzLnNob3dMaW5rSW5wdXQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5saW5rSW5wdXRFbGVtZW50JiYodGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlPUx8fCIiLHRoaXMubGlua0lucHV0RWxlbWVudC5mb2N1cygpLHRoaXMubGlua0lucHV0RWxlbWVudC5zZWxlY3QoKSl9KX1lbHNlIHRoaXMuc2hvd0xpbmtJbnB1dD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmxpbmtJbnB1dEVsZW1lbnQmJih0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU9IiIsdGhpcy5saW5rSW5wdXRFbGVtZW50LmZvY3VzKCkpfSl9c2F2ZUxpbmsoKXtpZighdGhpcy5lZGl0b3J8fCF0aGlzLmxpbmtJbnB1dEVsZW1lbnQpcmV0dXJuO2xldCBMPXRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZTtMJiZ0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0TGluayh7aHJlZjpMfSkucnVuKCksdGhpcy5oaWRlTGlua0lucHV0KCl9cmVtb3ZlTGluaygpe3RoaXMuZWRpdG9yJiYodGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnVuc2V0TGluaygpLnJ1bigpLHRoaXMuaGlkZUxpbmtJbnB1dCgpKX1oaWRlTGlua0lucHV0KCl7dGhpcy5zaG93TGlua0lucHV0PSExLHRoaXMuZWRpdG9yPy5jb21tYW5kcy5mb2N1cygpfWhhbmRsZUxpbmtJbnB1dEtleWRvd24oTCl7TC5rZXk9PT0iRW50ZXIiPyhMLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlTGluaygpKTpMLmtleT09PSJFc2NhcGUiJiYoTC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlkZUxpbmtJbnB1dCgpKX1zZXRWYWx1ZShMKXt0aGlzLnZhbHVlPUwsdGhpcy5lZGl0b3ImJkwhPT10aGlzLmVkaXRvci5nZXRIVE1MKCkmJnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldENvbnRlbnQoTCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1jbGVhcigpe3RoaXMuc2V0VmFsdWUoIiIpfWZvY3VzKCl7dGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZWRpdG9yJiZ0aGlzLmVkaXRvci5kZXN0cm95KCl9c3RhdGlje2RsKGEscil9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciB6WnIsX1pyPXUoKCk9PntlN3QoKTt2bigpO3ZlKCk7d2EoKTt6WnI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke3JlYAogICAgICAuZGVtb1dyYXBwZXIgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CiAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CiAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICA8ZGVlcy1idXR0b24gY2xhc3M9InRoZW1lLXRvZ2dsZSIgQGNsaWNrPSR7KCk9Pntkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImJyaWdodCIpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyayIpfX0+VG9nZ2xlIFRoZW1lPC9kZWVzLWJ1dHRvbj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+QmFzaWMgVGFibGUgd2l0aCBBY3Rpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QSBzdGFuZGFyZCB0YWJsZSB3aXRoIHJvdyBhY3Rpb25zLCBlZGl0YWJsZSBjZWxscywgYW5kIGNvbnRleHQgbWVudSBzdXBwb3J0LiBEb3VibGUtY2xpY2sgYW55IGNlbGwgdG8gZWRpdC4gVGFiIG1vdmVzIHRvIHRoZSBuZXh0IGVkaXRhYmxlIGNlbGwsIEVudGVyIHRvIHRoZSByb3cgYmVsb3csIEVzYyBjYW5jZWxzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IkN1cnJlbnQgQWNjb3VudCBTdGF0ZW1lbnQiCiAgICAgICAgICBoZWFkaW5nMj0iQnVucSAtIFBheW1lbnQgQWNjb3VudCAyIC0gQXByaWwgMjAyMSIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImRhdGUiLGhlYWRlcjoiRGF0ZSIsc29ydGFibGU6ITAsZWRpdGFibGU6ITAsZWRpdG9yOiJkYXRlIn0se2tleToiYW1vdW50IixoZWFkZXI6IkFtb3VudCIsZWRpdGFibGU6ITAsZWRpdG9yOiJ0ZXh0In0se2tleToiY2F0ZWdvcnkiLGhlYWRlcjoiQ2F0ZWdvcnkiLGVkaXRhYmxlOiEwLGVkaXRvcjoiZHJvcGRvd24iLGVkaXRvck9wdGlvbnM6e29wdGlvbnM6W3tvcHRpb246Ik9mZmljZSBTdXBwbGllcyIsa2V5OiJvZmZpY2UifSx7b3B0aW9uOiJIYXJkd2FyZSIsa2V5OiJoYXJkd2FyZSJ9LHtvcHRpb246IlNvZnR3YXJlIixrZXk6InNvZnR3YXJlIn0se29wdGlvbjoiVHJhdmVsIixrZXk6InRyYXZlbCJ9XX19LHtrZXk6ImRlc2NyaXB0aW9uIixoZWFkZXI6IkRlc2NyaXB0aW9uIixlZGl0YWJsZTohMH0se2tleToicmVjb25jaWxlZCIsaGVhZGVyOiJPSyIsZWRpdGFibGU6ITAsZWRpdG9yOiJjaGVja2JveCJ9XX0KICAgICAgICAgIEBjZWxsRWRpdD0ke3Q9PmNvbnNvbGUubG9nKCJjZWxsRWRpdCIsdC5kZXRhaWwpfQogICAgICAgICAgLmRhdGE9JHtbe2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJQcmludGluZyBQYXBlciAtIFNUQVBMRVMgQlJFTUVOIixyZWNvbmNpbGVkOiEwfSx7ZGF0ZToiMjAyMS0wNC0wMiIsYW1vdW50OiIxNjUuNjUgXHUyMEFDIixjYXRlZ29yeToiaGFyZHdhcmUiLGRlc2NyaXB0aW9uOiJMb2dpdGVjaCBNb3VzZSAtIGxvZ2kuY29tIE9ubGluZVNob3AiLHJlY29uY2lsZWQ6ITF9LHtkYXRlOiIyMDIxLTA0LTAzIixhbW91bnQ6IjI5OTksMDAgXHUyMEFDIixjYXRlZ29yeToiaGFyZHdhcmUiLGRlc2NyaXB0aW9uOiJNYWNib29rIFBybyAxNmluY2ggLSBBcHBsZS5kZSBPbmxpbmVTaG9wIixyZWNvbmNpbGVkOiExfSx7ZGF0ZToiMjAyMS0wNC0wMSIsYW1vdW50OiIyNDY0LjY1IFx1MjBBQyIsY2F0ZWdvcnk6Im9mZmljZSIsZGVzY3JpcHRpb246Ik9mZmljZS1TdXBwbGllcyAtIFNUQVBMRVMgQlJFTUVOIixyZWNvbmNpbGVkOiEwfSx7ZGF0ZToiMjAyMS0wNC0wMSIsYW1vdW50OiIyNDY0LjY1IFx1MjBBQyIsY2F0ZWdvcnk6Im9mZmljZSIsZGVzY3JpcHRpb246Ik9mZmljZS1TdXBwbGllcyAtIFNUQVBMRVMgQlJFTUVOIixyZWNvbmNpbGVkOiEwfV19CiAgICAgICAgICBkYXRhTmFtZT0idHJhbnNhY3Rpb25zIgogICAgICAgICAgLmRhdGFBY3Rpb25zPSIke1t7bmFtZToidXBsb2FkIixpY29uTmFtZToiYmVsbCIsdXNlVGFibGVCZWhhdmlvdXI6InVwbG9hZCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jIHQ9PnthbGVydCh0Lml0ZW0uYW1vdW50KX0sImFjdGlvbkZ1bmMiKX0se25hbWU6InZpc2liaWxpdHkiLGljb25OYW1lOiJjb3B5Iix0eXBlOlsiaW5Sb3ciXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzppKGFzeW5jIHQ9Pnt9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJjcmVhdGUgbmV3IixpY29uTmFtZToiaW5zdGFncmFtIix0eXBlOlsiaGVhZGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyB0PT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToidG8gZ2FsbGVyeSIsaWNvbk5hbWU6Im1lc3NhZ2UiLHR5cGU6WyJmb290ZXIiXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzppKGFzeW5jIHQ9Pnt9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJjb3B5IixpY29uTmFtZToiY29weVNvbGlkIix0eXBlOlsiY29udGV4dG1lbnUiLCJpblJvdyJdLGFjdGlvbjppKGFzeW5jKCk9Pm51bGwsImFjdGlvbiIpfSx7bmFtZToiZWRpdCAoZnJvbSBkZW1vKSIsaWNvbk5hbWU6InBlblRvU3F1YXJlIix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX0se25hbWU6InBhc3RlIixpY29uTmFtZToicGFzdGVTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOmkoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9LHtuYW1lOiJwcmV2aWV3Iix0eXBlOlsiZG91YmxlQ2xpY2siLCJjb250ZXh0bWVudSJdLGljb25OYW1lOiJleWUiLGFjdGlvbkZ1bmM6aShhc3luYyB0PT4oYWxlcnQodC5pdGVtLmFtb3VudCksbnVsbCksImFjdGlvbkZ1bmMiKX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIFZlcnRpY2FsIExpbmVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+RW5oYW5jZWQgY29sdW1uIHNlcGFyYXRpb24gZm9yIGJldHRlciBkYXRhIHRyYWNraW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlByb2R1Y3QgSW52ZW50b3J5IgogICAgICAgICAgaGVhZGluZzI9IkN1cnJlbnQgc3RvY2sgbGV2ZWxzIGFjcm9zcyB3YXJlaG91c2VzIgogICAgICAgICAgLnNob3dWZXJ0aWNhbExpbmVzPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7cHJvZHVjdDonTWFjQm9vayBQcm8gMTYiJyx3YXJlaG91c2VfYToiNDUiLHdhcmVob3VzZV9iOiIzMiIsd2FyZWhvdXNlX2M6IjI4Iix0b3RhbDoiMTA1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJpUGhvbmUgMTUgUHJvIix3YXJlaG91c2VfYToiMTIwIix3YXJlaG91c2VfYjoiODkiLHdhcmVob3VzZV9jOiIxNTYiLHRvdGFsOiIzNjUiLHN0YXR1czoiXHUyNzEzIEluIFN0b2NrIn0se3Byb2R1Y3Q6IkFpclBvZHMgUHJvIix3YXJlaG91c2VfYToiMCIsd2FyZWhvdXNlX2I6IjEyIix3YXJlaG91c2VfYzoiNSIsdG90YWw6IjE3IixzdGF0dXM6Ilx1MjZBMCBMb3cgU3RvY2sifSx7cHJvZHVjdDoiaVBhZCBBaXIiLHdhcmVob3VzZV9hOiIyMyIsd2FyZWhvdXNlX2I6IjQ1Iix3YXJlaG91c2VfYzoiNjciLHRvdGFsOiIxMzUiLHN0YXR1czoiXHUyNzEzIEluIFN0b2NrIn1dfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRhYmxlIHdpdGggRnVsbCBHcmlkPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q29tcGxldGUgZ3JpZCBsaW5lcyBmb3IgbWF4aW11bSByZWFkYWJpbGl0eSBhbmQgc3RydWN0dXJlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNlcnZlciBNb25pdG9yaW5nIERhc2hib2FyZCIKICAgICAgICAgIGhlYWRpbmcyPSJSZWFsLXRpbWUgbWV0cmljcyBhY3Jvc3MgcmVnaW9ucyIKICAgICAgICAgIC5zaG93R3JpZD0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3NlcnZlcjoiQVBJLTEiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI0NSUiLG1lbW9yeToiNjIlIixkaXNrOiI3OCUiLGxhdGVuY3k6IjEybXMiLHVwdGltZToiOTkuOSUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJBUEktMiIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjM4JSIsbWVtb3J5OiI1NSUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMjVtcyIsdXB0aW1lOiI5OS44JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkRCLU1hc3RlciIscmVnaW9uOiJVUy1FYXN0IixjcHU6IjcyJSIsbWVtb3J5OiI4MSUiLGRpc2s6IjkyJSIsbGF0ZW5jeToiOG1zIix1cHRpbWU6IjEwMCUiLHN0YXR1czoiXHV7MUY3RTF9IFdhcm5pbmcifSx7c2VydmVyOiJEQi1SZXBsaWNhIixyZWdpb246IkVVLVdlc3QiLGNwdToiMjMlIixtZW1vcnk6IjM0JSIsZGlzazoiNDUlIixsYXRlbmN5OiIxNW1zIix1cHRpbWU6Ijk5LjclIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQ2FjaGUtMSIscmVnaW9uOiJBUC1Tb3V0aCIsY3B1OiI4OSUiLG1lbW9yeToiOTIlIixkaXNrOiIxMiUiLGxhdGVuY3k6IjEyMG1zIix1cHRpbWU6Ijk4LjUlIixzdGF0dXM6Ilx1ezFGNTM0fSBDcml0aWNhbCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJzZXJ2ZXJzIgogICAgICAgICAgLmRhdGFBY3Rpb25zPSIke1t7bmFtZToiU1NIIENvbm5lY3QiLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6aShhc3luYyB0PT57Y29uc29sZS5sb2coIkNvbm5lY3RpbmcgdG86Iix0Lml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IlZpZXcgTG9ncyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlLXRleHQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jIHQ9Pntjb25zb2xlLmxvZygiVmlld2luZyBsb2dzIGZvcjoiLHQuaXRlbS5zZXJ2ZXIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiUmVzdGFydCBTZXJ2ZXIiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jIHQ9Pntjb25zb2xlLmxvZygiUmVzdGFydGluZzoiLHQuaXRlbS5zZXJ2ZXIpfSwiYWN0aW9uRnVuYyIpfV19IgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRhYmxlIHdpdGggSG9yaXpvbnRhbCBMaW5lcyBPbmx5PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+RW1waGFzaXMgb24gcm93IHNlcGFyYXRpb24gd2l0aG91dCBjb2x1bW4gZGl2aWRlcnMuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iU2FsZXMgUGVyZm9ybWFuY2UiCiAgICAgICAgICBoZWFkaW5nMj0iVG9wIHBlcmZvcm1lcnMgdGhpcyBxdWFydGVyIgogICAgICAgICAgLnNob3dIb3Jpem9udGFsTGluZXM9JHshMH0KICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyExfQogICAgICAgICAgLmRhdGE9JHtbe3NhbGVzcGVyc29uOiJFbWlseSBKb2huc29uIixyZWdpb246Ik5vcnRoIEFtZXJpY2EiLGRlYWxzX2Nsb3NlZDoiNDIiLHJldmVudWU6IiQxLjJNIixxdW90YV9hY2hpZXZlbWVudDoiMTI4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246Ik1pY2hhZWwgQ2hlbiIscmVnaW9uOiJBc2lhIFBhY2lmaWMiLGRlYWxzX2Nsb3NlZDoiMzgiLHJldmVudWU6IiQ5ODBLIixxdW90YV9hY2hpZXZlbWVudDoiMTE1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IlNhcmFoIFdpbGxpYW1zIixyZWdpb246IkV1cm9wZSIsZGVhbHNfY2xvc2VkOiIzNSIscmV2ZW51ZToiJDg3NUsiLHF1b3RhX2FjaGlldmVtZW50OiIxMDglIixyYXRpbmc6Ilx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCJ9LHtzYWxlc3BlcnNvbjoiRGF2aWQgR2FyY2lhIixyZWdpb246IkxhdGluIEFtZXJpY2EiLGRlYWxzX2Nsb3NlZDoiMzEiLHJldmVudWU6IiQ3NTBLIixxdW90YV9hY2hpZXZlbWVudDoiOTUlIixyYXRpbmc6Ilx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJzYWxlcyByZXBzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNpbXBsZSBUYWJsZSAoTm8gR3JpZCk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5DbGVhbiwgbWluaW1hbCBkZXNpZ24gd2l0aG91dCBncmlkIGxpbmVzLiBTZXQgc2hvd0dyaWQgdG8gZmFsc2UgdG8gZGlzYWJsZSB0aGUgZGVmYXVsdCBncmlkLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlRlYW0gTWVtYmVycyIKICAgICAgICAgIGhlYWRpbmcyPSJFbmdpbmVlcmluZyBEZXBhcnRtZW50IgogICAgICAgICAgLnNob3dHcmlkPSR7ITF9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiTGVhZCBFbmdpbmVlciIsZW1haWw6ImFsaWNlQGNvbXBhbnkuY29tIixsb2NhdGlvbjoiU2FuIEZyYW5jaXNjbyIsam9pbmVkOiIyMDIwLTAzLTE1In0se25hbWU6IkJvYiBTbWl0aCIscm9sZToiU2VuaW9yIERldmVsb3BlciIsZW1haWw6ImJvYkBjb21wYW55LmNvbSIsbG9jYXRpb246Ik5ldyBZb3JrIixqb2luZWQ6IjIwMTktMDctMjIifSx7bmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiRGV2T3BzIEVuZ2luZWVyIixlbWFpbDoiY2hhcmxpZUBjb21wYW55LmNvbSIsbG9jYXRpb246IkxvbmRvbiIsam9pbmVkOiIyMDIxLTAxLTEwIn0se25hbWU6IkRpYW5hIE1hcnRpbmV6Iixyb2xlOiJGcm9udGVuZCBEZXZlbG9wZXIiLGVtYWlsOiJkaWFuYUBjb21wYW55LmNvbSIsbG9jYXRpb246IkJhcmNlbG9uYSIsam9pbmVkOiIyMDIyLTA1LTE4In1dfQogICAgICAgICAgZGF0YU5hbWU9InRlYW0gbWVtYmVycyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEN1c3RvbSBEaXNwbGF5IEZ1bmN0aW9uPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VHJhbnNmb3JtIGRhdGEgZm9yIGRpc3BsYXkgdXNpbmcgY3VzdG9tIGZvcm1hdHRpbmcuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iU2FsZXMgUmVwb3J0IgogICAgICAgICAgaGVhZGluZzI9IlE0IDIwMjMgUGVyZm9ybWFuY2UiCiAgICAgICAgICAuZGF0YT0ke1t7cHJvZHVjdDoiRW50ZXJwcmlzZSBMaWNlbnNlIix1bml0czo0NSxyZXZlbnVlOjIyNWUzLGdyb3d0aDouMjMsZm9yZWNhc3Q6MjhlNH0se3Byb2R1Y3Q6IlByb2Zlc3Npb25hbCBMaWNlbnNlIix1bml0czoxMjgscmV2ZW51ZToxMjhlMyxncm93dGg6LjE1LGZvcmVjYXN0OjE0N2UzfSx7cHJvZHVjdDoiU3RhcnRlciBMaWNlbnNlIix1bml0czozNDIscmV2ZW51ZTo2ODQwMCxncm93dGg6LjQyLGZvcmVjYXN0Ojk3ZTN9XX0KICAgICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHt0PT4oe1Byb2R1Y3Q6dC5wcm9kdWN0LCJVbml0cyBTb2xkIjp0LnVuaXRzLnRvTG9jYWxlU3RyaW5nKCksUmV2ZW51ZToiJCIrdC5yZXZlbnVlLnRvTG9jYWxlU3RyaW5nKCksR3Jvd3RoOih0Lmdyb3d0aCoxMDApLnRvRml4ZWQoMSkrIiUiLCJRMSAyMDI0IEZvcmVjYXN0IjoiJCIrdC5mb3JlY2FzdC50b0xvY2FsZVN0cmluZygpfSl9CiAgICAgICAgICBkYXRhTmFtZT0icHJvZHVjdHMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RW1wdHkgVGFibGUgU3RhdGU8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Ib3cgdGhlIHRhYmxlIGxvb2tzIHdoZW4gbm8gZGF0YSBpcyBhdmFpbGFibGUuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iTm8gRGF0YSBBdmFpbGFibGUiCiAgICAgICAgICBoZWFkaW5nMj0iVGhpcyB0YWJsZSBpcyBjdXJyZW50bHkgZW1wdHkiCiAgICAgICAgICAuZGF0YT0ke1tdfQogICAgICAgICAgZGF0YU5hbWU9Iml0ZW1zIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNjaGVtYS1GaXJzdCBDb2x1bW5zIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+RGVmaW5lcyBjb2x1bW5zIGV4cGxpY2l0bHkgYW5kIHJlbmRlcnMgdmlhIHNjaGVtYS4gTm8gZGlzcGxheUZ1bmN0aW9uIG5lZWRlZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJVc2VycyAoU2NoZW1hLUZpcnN0KSIKICAgICAgICAgIGhlYWRpbmcyPSJDb2x1bW5zIGRlZmluZSByZW5kZXJpbmcgYW5kIG9yZGVyIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwiLHJlbmRlcmVyOmkodD0+d2A8ZGVlcy1iYWRnZT4ke3R9PC9kZWVzLWJhZGdlPmAsInJlbmRlcmVyIil9LHtrZXk6ImpvaW5lZEF0IixoZWFkZXI6IkpvaW5lZCIscmVuZGVyZXI6aSh0PT5uZXcgRGF0ZSh0KS50b0xvY2FsZURhdGVTdHJpbmcoKSwicmVuZGVyZXIiKX1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIixlbWFpbDoiYWxpY2VAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIyLTA4LTAxIn0se25hbWU6IkJvYiIsZW1haWw6ImJvYkBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjEtMTItMTEifSx7bmFtZToiQ2Fyb2wiLGVtYWlsOiJjYXJvbEBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjMtMDMtMjIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UGFydGlhbCBTY2hlbWEgKyBBdWdtZW50IChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+UHJvdmlkZXMgb25seSB0aGUgaW1wb3J0YW50IGNvbHVtbnM7IHRoZSByZXN0IGFyZSBtZXJnZWQgaW4gZnJvbSBkaXNwbGF5RnVuY3Rpb24uPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFBhcnRpYWwgKyBBdWdtZW50KSIKICAgICAgICAgIGhlYWRpbmcyPSJNaXNzaW5nIGNvbHVtbnMgYXJlIGRlcml2ZWQiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7dD0+KHtuYW1lOnQubmFtZSxlbWFpbDp0LmVtYWlsLHJvbGU6dC5yb2xlfSl9CiAgICAgICAgICAuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJFcmluIixlbWFpbDoiZXJpbkBleGFtcGxlLmNvbSIscm9sZToiQWRtaW4ifSx7bmFtZToiRmlubiIsZW1haWw6ImZpbm5AZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifSx7bmFtZToiR2luYSIsZW1haWw6ImdpbmFAZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iIAogICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHt0PT57Y29uc29sZS5sb2coIlNlbGVjdGlvbiBjaGFuZ2VkIix0LmRldGFpbCl9fQogICAgICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke3Q9PntsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGVGaWx0ZXJTZWxlY3REZW1vIik7ZSYmZS5zZXRGaWx0ZXJUZXh0KHQuZGV0YWlsLnZhbHVlKX19CiAgICAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHt0PT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dCh0LmRldGFpbC52YWx1ZSl9fQogICAgICA+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5GaWx0ZXJpbmcgKyBNdWx0aS1TZWxlY3Rpb24gKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Vc2UgdGhlIHNlYXJjaCBiYXIgdG8gZmlsdGVyIHJvd3M7IHRvZ2dsZSBzZWxlY3Rpb24gdmlhIGNoZWNrYm94ZXMuIENsaWNrIGhlYWRlcnMgdG8gc29ydC48L3A+CiAgICAgICAgPGRlZXMtc2VhcmNoYmFyPjwvZGVlcy1zZWFyY2hiYXI+CiAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMnB4Ij48L2Rpdj4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InRhYmxlRmlsdGVyU2VsZWN0RGVtbyIKICAgICAgICAgIGhlYWRpbmcxPSJJbnZlbnRvcnkgKEZpbHRlciArIFNlbGVjdCkiCiAgICAgICAgICBoZWFkaW5nMj0iVHJ5IHR5cGluZyB0byBmaWx0ZXIgYW5kIHNlbGVjdGluZyBtdWx0aXBsZSByb3dzIgogICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgLnJvd0tleT0keyJza3UifQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToic2t1IixoZWFkZXI6IlNLVSIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InN0b2NrIixoZWFkZXI6IlN0b2NrIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe3NrdToiQS0xMDAiLG5hbWU6IlVTQi1DIENhYmxlIixzdG9jazoxMjB9LHtza3U6IkEtMTAxIixuYW1lOiJXaXJlbGVzcyBNb3VzZSIsc3RvY2s6NTV9LHtza3U6IkEtMTAyIixuYW1lOiJMYXB0b3AgU3RhbmQiLHN0b2NrOjE4fSx7c2t1OiJCLTIwMCIsbmFtZToiS2V5Ym9hcmQgKElTTykiLHN0b2NrOjg5fSx7c2t1OiJCLTIwMSIsbmFtZToiSERNSSBBZGFwdGVyIixzdG9jazowfSx7c2t1OiJDLTMwMCIsbmFtZToiV2ViY2FtIDEwODBwIixzdG9jazo0Mn1dfQogICAgICAgICAgZGF0YU5hbWU9Iml0ZW1zIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkNvbHVtbiBGaWx0ZXJzICsgU3RpY2t5IEhlYWRlciAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlBlci1jb2x1bW4gcXVpY2sgZmlsdGVycyBhbmQgc3RpY2t5IGhlYWRlciB3aXRoIGludGVybmFsIHNjcm9sbC4gVHJ5IGZpbHRlcmluZyB0aGUgTmFtZSBjb2x1bW4uIFVzZXMgLS10YWJsZS1tYXgtaGVpZ2h0IHZhci48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgZGVlcy10YWJsZVtmaXhlZC1oZWlnaHRdIHsgLS10YWJsZS1tYXgtaGVpZ2h0OiAyMjBweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJFbXBsb3llZXMiCiAgICAgICAgICBoZWFkaW5nMj0iUXVpY2sgZmlsdGVyIHBlciBjb2x1bW4gKyBzdGlja3kgaGVhZGVyIgogICAgICAgICAgLnNob3dDb2x1bW5GaWx0ZXJzPSR7ITB9CiAgICAgICAgICAuZml4ZWRIZWlnaHQ9JHshMH0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLGVtYWlsOiJhbGljZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiQm9iIFNtaXRoIixlbWFpbDoiYm9iQGNvcnAuY29tIixkZXBhcnRtZW50OiJTYWxlcyJ9LHtuYW1lOiJDaGFybGllIERhdmlzIixlbWFpbDoiY2hhcmxpZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiSFIifSx7bmFtZToiRGlhbmEgTWFydGluZXoiLGVtYWlsOiJkaWFuYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiRXRoYW4gQnJvd24iLGVtYWlsOiJldGhhbkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRmluYW5jZSJ9LHtuYW1lOiJGaW9uYSBDbGFyayIsZW1haWw6ImZpb25hQGNvcnAuY29tIixkZXBhcnRtZW50OiJTYWxlcyJ9LHtuYW1lOiJHcmFjZSBMZWUiLGVtYWlsOiJncmFjZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiSGVucnkgV2lsc29uIixlbWFpbDoiaGVucnlAY29ycC5jb20iLGRlcGFydG1lbnQ6Ik1hcmtldGluZyJ9LHtuYW1lOiJJcmVuZSBXYWxrZXIiLGVtYWlsOiJpcmVuZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRmluYW5jZSJ9LHtuYW1lOiJKYWNrIFR1cm5lciIsZW1haWw6ImphY2tAY29ycC5jb20iLGRlcGFydG1lbnQ6IlN1cHBvcnQifV19CiAgICAgICAgICBkYXRhTmFtZT0iZW1wbG95ZWVzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIgogICAgICAgIEBzZWFyY2hSZXF1ZXN0PSR7YXN5bmMgdD0+e2xldHtxdWVyeTplfT10LmRldGFpbHx8e3F1ZXJ5OiIifSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXJ2ZXJTZWFyY2hEZW1vIiksYT1be2lkOjEsbmFtZToiQWxpY2UiLGNpdHk6IkJlcmxpbiIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjIsbmFtZToiQm9iIixjaXR5OiJQYXJpcyIsdGl0bGU6IkRlc2lnbmVyIn0se2lkOjMsbmFtZToiQ2hhcmxpZSIsY2l0eToiTG9uZG9uIix0aXRsZToiTWFuYWdlciJ9LHtpZDo0LG5hbWU6IkRpYW5hIixjaXR5OiJNYWRyaWQiLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDo1LG5hbWU6IkV0aGFuIixjaXR5OiJSb21lIix0aXRsZToiU3VwcG9ydCJ9XTthd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMzAwKSk7bGV0IHM9U3RyaW5nKGV8fCIiKS50b0xvd2VyQ2FzZSgpLG49cz9hLmZpbHRlcihvPT5PYmplY3QudmFsdWVzKG8pLnNvbWUobD0+U3RyaW5nKGwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocykpKTphO3IuZGF0YT1ufX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmVyIFNlYXJjaCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNlbGVjdCBTZXJ2ZXIgbW9kZSwgdHlwZSBhIHF1ZXJ5LCBhbmQgd2F0Y2ggdGhlIHRhYmxlIGZldGNoIHNpbXVsYXRlZCByZXN1bHRzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InNlcnZlclNlYXJjaERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIChTZXJ2ZXIgU2VhcmNoKSIKICAgICAgICAgIGhlYWRpbmcyPSJDbGljayBTZWFyY2gsIGNob29zZSBTZXJ2ZXIgbW9kZSwgYW5kIHR5cGUiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUifSx7a2V5OiJjaXR5IixoZWFkZXI6IkNpdHkifSx7a2V5OiJ0aXRsZSIsaGVhZGVyOiJUaXRsZSJ9XX0KICAgICAgICAgIC5kYXRhPSR7W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV19CiAgICAgICAgICBkYXRhTmFtZT0icGVvcGxlIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpLUNvbHVtbiBTb3J0PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDbGljayBhbnkgY29sdW1uIGhlYWRlciBmb3IgYSBzaW5nbGUtY29sdW1uIHNvcnQuIEhvbGQgU2hpZnQgd2hpbGUgY2xpY2tpbmcgdG8gYWRkIHRoZQogICAgICAgICAgY29sdW1uIHRvIGEgbXVsdGktc29ydCBjYXNjYWRlIChvciBjeWNsZSBpdHMgZGlyZWN0aW9uKS4gUmlnaHQtY2xpY2sgYW55IHNvcnRhYmxlIGhlYWRlcgogICAgICAgICAgdG8gb3BlbiBhIG1lbnUgd2hlcmUgeW91IGNhbiBwaW4gYSBjb2x1bW4gdG8gYSBzcGVjaWZpYyBwcmlvcml0eSBzbG90LCByZW1vdmUgaXQsIG9yCiAgICAgICAgICBjbGVhciB0aGUgY2FzY2FkZS4KICAgICAgICA8L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IgogICAgICAgICAgaGVhZGluZzI9IlByZS1zZWVkZWQgd2l0aCBkZXBhcnRtZW50IOKWsiAxLCBuYW1lIOKWsiAyIgogICAgICAgICAgLnNvcnRCeT0ke1t7a2V5OiJkZXBhcnRtZW50IixkaXI6ImFzYyJ9LHtrZXk6Im5hbWUiLGRpcjoiYXNjIn1dfQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiY3JlYXRlZEF0IixoZWFkZXI6IkNyZWF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsb2NhdGlvbiIsaGVhZGVyOiJMb2NhdGlvbiIsc29ydGFibGU6ITB9LHtrZXk6InN0YXR1cyIsaGVhZGVyOiJTdGF0dXMiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGF0YT0ke1t7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJFbmdpbmVlciIsY3JlYXRlZEF0OiIyMDIzLTAxLTEyIixsb2NhdGlvbjoiQmVybGluIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJSJkQiLG5hbWU6IkRpYW5hIE1hcnRpbmV6Iixyb2xlOiJFbmdpbmVlciIsY3JlYXRlZEF0OiIyMDIwLTA2LTMwIixsb2NhdGlvbjoiTWFkcmlkIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJSJkQiLG5hbWU6Ik1hcmsgTGVlIixyb2xlOiJFbmdpbmVlciIsY3JlYXRlZEF0OiIyMDI0LTAzLTA0Iixsb2NhdGlvbjoiQmVybGluIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJEZXNpZ24iLG5hbWU6IkJvYiBTbWl0aCIscm9sZToiRGVzaWduZXIiLGNyZWF0ZWRBdDoiMjAyMi0xMS0wNSIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJEZXNpZ24iLG5hbWU6IlNhcmEgS2ltIixyb2xlOiJEZXNpZ25lciIsY3JlYXRlZEF0OiIyMDIxLTA4LTE5Iixsb2NhdGlvbjoiUGFyaXMiLHN0YXR1czoiT24gTGVhdmUifSx7ZGVwYXJ0bWVudDoiT3BzIixuYW1lOiJDaGFybGllIERhdmlzIixyb2xlOiJNYW5hZ2VyIixjcmVhdGVkQXQ6IjIwMjEtMDQtMjEiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiT24gTGVhdmUifSx7ZGVwYXJ0bWVudDoiT3BzIixuYW1lOiJIZWxlbmEgVm9zcyIscm9sZToiU1JFIixjcmVhdGVkQXQ6IjIwMjMtMDctMjIiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IlFBIixuYW1lOiJGaW9uYSBDbGFyayIscm9sZToiUUEiLGNyZWF0ZWRBdDoiMjAyMi0wMy0xNCIsbG9jYXRpb246IlZpZW5uYSIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUUEiLG5hbWU6IlRvbVx4RTFzIFJpdmVyYSIscm9sZToiUUEiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wOSIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiQ1MiLG5hbWU6IkV0aGFuIEJyb3duIixyb2xlOiJTdXBwb3J0IixjcmVhdGVkQXQ6IjIwMTktMDktMTgiLGxvY2F0aW9uOiJSb21lIixzdGF0dXM6IkluYWN0aXZlIn1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPldpZGUgUHJvcGVydGllcyArIE1hbnkgQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgdGFibGUgd2l0aCBtYW55IGNvbHVtbnMgYW5kIHJpY2ggYWN0aW9ucyB0byBzdHJlc3MgdGVzdCBsYXlvdXQgYW5kIHN0aWNreSBBY3Rpb25zLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkiCiAgICAgICAgICBoZWFkaW5nMj0iTWFueSBwcm9wZXJ0aWVzIGFuZCBhY3Rpb25zIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToiaWQiLGhlYWRlcjoiSUQiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJyb2xlIixoZWFkZXI6IlJvbGUiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCJ9LHtrZXk6InBob25lIixoZWFkZXI6IlBob25lIn0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH0se2tleToiY3JlYXRlZEF0IixoZWFkZXI6IkNyZWF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJ1cGRhdGVkQXQiLGhlYWRlcjoiVXBkYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6Imxhc3RMb2dpbiIsaGVhZGVyOiJMYXN0IExvZ2luIixzb3J0YWJsZTohMH0se2tleToicHJvamVjdHMiLGhlYWRlcjoiUHJvamVjdHMifSx7a2V5OiJ0YWdzIixoZWFkZXI6IlRhZ3MifSx7a2V5OiJub3RlcyIsaGVhZGVyOiJOb3RlcyJ9XX0KICAgICAgICAgIC5kYXRhPSR7W3tpZDoxLG5hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJSJkQiLGVtYWlsOiJhbGljZUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMSIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsdXBkYXRlZEF0OiIyMDI0LTA1LTAzIixsYXN0TG9naW46IjIwMjQtMTAtMDEiLHByb2plY3RzOjUsdGFnczoidHlwZXNjcmlwdCwgdWkiLG5vdGVzOiJNZW50b3IifSx7aWQ6MixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJEZXNpZ24iLGVtYWlsOiJib2JAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTIiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMi0xMS0wNSIsdXBkYXRlZEF0OiIyMDI0LTA0LTEwIixsYXN0TG9naW46IjIwMjQtMDktMjgiLHByb2plY3RzOjgsdGFnczoiZmlnbWEsIGJyYW5kIixub3RlczoiUGFydC10aW1lIn0se2lkOjMsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsZGVwYXJ0bWVudDoiT3BzIixlbWFpbDoiY2hhcmxpZUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMyIsbG9jYXRpb246IkxvbmRvbiIsc3RhdHVzOiJPbiBMZWF2ZSIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIix1cGRhdGVkQXQ6IjIwMjQtMDItMTUiLGxhc3RMb2dpbjoiMjAyNC0wOC0xMiIscHJvamVjdHM6Myx0YWdzOiJzcmUsIGxlYWRlcnNoaXAiLG5vdGVzOiIifSx7aWQ6NCxuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IlBsYXRmb3JtIixlbWFpbDoiZGlhbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTQiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjAtMDYtMzAiLHVwZGF0ZWRBdDoiMjAyNC0wNi0yNSIsbGFzdExvZ2luOiIyMDI0LTEwLTAyIixwcm9qZWN0czo2LHRhZ3M6Im5vZGUsIGFwaSIsbm90ZXM6Ik9uLWNhbGwifSx7aWQ6NSxuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsZGVwYXJ0bWVudDoiQ1MiLGVtYWlsOiJldGhhbkBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNSIsbG9jYXRpb246IlJvbWUiLHN0YXR1czoiSW5hY3RpdmUiLGNyZWF0ZWRBdDoiMjAxOS0wOS0xOCIsdXBkYXRlZEF0OiIyMDI0LTAzLTA5IixsYXN0TG9naW46IjIwMjQtMDYtMTkiLHByb2plY3RzOjIsdGFnczoiemVuZGVzayIsbm90ZXM6IlJlaGlyZSJ9LHtpZDo2LG5hbWU6IkZpb25hIENsYXJrIixyb2xlOiJRQSIsZGVwYXJ0bWVudDoiUUEiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNiIsbG9jYXRpb246IlZpZW5uYSIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMi0wMy0xNCIsdXBkYXRlZEF0OiIyMDI0LTAzLTAxIixsYXN0TG9naW46IjIwMjQtMDktMDciLHByb2plY3RzOjcsdGFnczoicGxheXdyaWdodCIsbm90ZXM6IiJ9XX0KICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnR9KT0+e2NvbnNvbGUubG9nKCJ2aWV3Iix0KX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57Y29uc29sZS5sb2coImVkaXQiLHQpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygiZGVsZXRlIix0KX0sImFjdGlvbkZ1bmMiKX0se25hbWU6Ik1lc3NhZ2UiLGljb25OYW1lOiJsdWNpZGU6bWVzc2FnZS1zcXVhcmUiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6aShhc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygibWVzc2FnZSIsdCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJIaXN0b3J5IixpY29uTmFtZToibHVjaWRlOmNsb2NrIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57Y29uc29sZS5sb2coImhpc3RvcnkiLHQpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiQWRkIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiYWRkIil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJFeHBvcnQgQ1NWIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiZXhwb3J0Iil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJCdWxrIERlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaC0yIix0eXBlOlsiZm9vdGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiYnVsayBkZWxldGUiKX0sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNjcm9sbGFibGUgU21hbGwgSGVpZ2h0PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+U2FtZSBhcyBhYm92ZSwgYnV0IHdpdGggbWFueSBpdGVtcyBhbmQgYSBzbWFsbCBmaXhlZCBoZWlnaHQgdG8gZm9yY2UgdmVydGljYWwgc2Nyb2xsaW5nIGluc2lkZSB0aGUgdGFibGUuIEFjdGlvbnMgcmVtYWluIHZpc2libGUgb24gdGhlIHJpZ2h0OyBob3Jpem9udGFsIHNjcm9sbCBhcHBlYXJzIGlmIG5lZWRlZC48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgI3Njcm9sbFNtYWxsSGVpZ2h0IHsgLS10YWJsZS1tYXgtaGVpZ2h0OiAyNDBweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzY3JvbGxTbWFsbEhlaWdodCIKICAgICAgICAgIC5maXhlZEhlaWdodD0keyEwfQogICAgICAgICAgLnZpcnR1YWxpemVkPSR7ITB9CiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSAoU2Nyb2xsYWJsZSwgVmlydHVhbGl6ZWQpIgogICAgICAgICAgaGVhZGluZzI9IkZvcmNlZCBzY3JvbGxpbmcgd2l0aCBtYW55IGl0ZW1zIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToiaWQiLGhlYWRlcjoiSUQiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJyb2xlIixoZWFkZXI6IlJvbGUiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCJ9LHtrZXk6InBob25lIixoZWFkZXI6IlBob25lIn0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH0se2tleToiY3JlYXRlZEF0IixoZWFkZXI6IkNyZWF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJ1cGRhdGVkQXQiLGhlYWRlcjoiVXBkYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6Imxhc3RMb2dpbiIsaGVhZGVyOiJMYXN0IExvZ2luIixzb3J0YWJsZTohMH0se2tleToicHJvamVjdHMiLGhlYWRlcjoiUHJvamVjdHMifSx7a2V5OiJ0YWdzIixoZWFkZXI6IlRhZ3MifSx7a2V5OiJub3RlcyIsaGVhZGVyOiJOb3RlcyJ9XX0KICAgICAgICAgIC5kYXRhPSR7QXJyYXkuZnJvbSh7bGVuZ3RoOjEwMH0sKHQsZSk9Pih7aWQ6ZSsxLG5hbWU6YFVzZXIgJHtlKzF9YCxyb2xlOlsiRW5naW5lZXIiLCJEZXNpZ25lciIsIk1hbmFnZXIiLCJRQSIsIlN1cHBvcnQiXVtlJTVdLGRlcGFydG1lbnQ6WyJSJkQiLCJEZXNpZ24iLCJPcHMiLCJRQSIsIkNTIl1bZSU1XSxlbWFpbDpgdXNlciR7ZSsxfUBjb3JwLmNvbWAscGhvbmU6YCsxIDIwMiA1NTUgJHtTdHJpbmcoMWUzK2UpLnNsaWNlKC00KX1gLGxvY2F0aW9uOlsiQmVybGluIiwiUGFyaXMiLCJMb25kb24iLCJNYWRyaWQiLCJSb21lIl1bZSU1XSxzdGF0dXM6WyJBY3RpdmUiLCJJbmFjdGl2ZSIsIk9uIExlYXZlIl1bZSUzXSxjcmVhdGVkQXQ6YDIwMjMtJHtTdHJpbmcoZSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKGUlMjgrMSkucGFkU3RhcnQoMiwiMCIpfWAsdXBkYXRlZEF0OmAyMDI0LSR7U3RyaW5nKChlKzMpJTEyKzEpLnBhZFN0YXJ0KDIsIjAiKX0tJHtTdHJpbmcoKGUrNyklMjgrMSkucGFkU3RhcnQoMiwiMCIpfWAsbGFzdExvZ2luOmAyMDI0LSR7U3RyaW5nKChlKzYpJTEyKzEpLnBhZFN0YXJ0KDIsIjAiKX0tJHtTdHJpbmcoKGUrMTApJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHByb2plY3RzOmUlMTIsdGFnczplJTI/InR5cGVzY3JpcHQiOiJkZXNpZ24iLG5vdGVzOmUlMz8iIjoiTm90ZSJ9KSl9CiAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRWRpdCIsaWNvbk5hbWU6Imx1Y2lkZTplZGl0Iix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57fSwiYWN0aW9uRnVuYyIpfV19CiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjZGVtb0xpdmVGbGFzaCIpO2lmKCFlKXJldHVybjtlLl9fbGl2ZUZsYXNoVGltZXJJZCYmd2luZG93LmNsZWFySW50ZXJ2YWwoZS5fX2xpdmVGbGFzaFRpbWVySWQpO2xldCByPWkoKCk9PntpZighQXJyYXkuaXNBcnJheShlLmRhdGEpfHxlLmRhdGEubGVuZ3RoPT09MClyZXR1cm47bGV0IGE9ZS5kYXRhLm1hcChuPT4oey4uLm59KSkscz0xK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKTtmb3IobGV0IG49MDtuPHM7bisrKXtsZXQgbz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqYS5sZW5ndGgpLGw9KygoTWF0aC5yYW5kb20oKSoyLTEpKjMpLnRvRml4ZWQoMiksYz1NYXRoLm1heCgxLCsoYVtvXS5wcmljZStsKS50b0ZpeGVkKDIpKTthW29dPXsuLi5hW29dLHByaWNlOmMsY2hhbmdlOmwsdXBkYXRlZEF0Om5ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9fWUuZGF0YT1hfSwidGljayIpO2UuX19saXZlRmxhc2hUaW1lcklkPXdpbmRvdy5zZXRJbnRlcnZhbChyLDE1MDApfX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TGl2ZSBVcGRhdGVzIHdpdGggRmxhc2ggSGlnaGxpZ2h0aW5nPC9oMj4KICAgICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgT3B0LWluIGNlbGwtZmxhc2ggdmlhIDxjb2RlPmhpZ2hsaWdodC11cGRhdGVzPSJmbGFzaCI8L2NvZGU+LiBUaGUgdGlja2VyIGJlbG93IG11dGF0ZXMKICAgICAgICAgICAgcmFuZG9tIHJvd3MgZXZlcnkgMS41cyBhbmQgcmVhc3NpZ25zIDxjb2RlPi5kYXRhPC9jb2RlPi4gVXBkYXRlZCBjZWxscyBicmllZmx5IGZsYXNoCiAgICAgICAgICAgIGFtYmVyIGFuZCBmYWRlIG91dC4gUmVxdWlyZXMgPGNvZGU+cm93S2V5PC9jb2RlPiAoaGVyZSA8Y29kZT4ic3ltYm9sIjwvY29kZT4pLiBIb25vcnMKICAgICAgICAgICAgPGNvZGU+cHJlZmVycy1yZWR1Y2VkLW1vdGlvbjwvY29kZT4uIFJvdyBzZWxlY3Rpb24gcGVyc2lzdHMgYWNyb3NzIHVwZGF0ZXMg4oCUIGNsaWNrIGEKICAgICAgICAgICAgcm93LCB0aGVuIHdhdGNoIGl0IHN0YXkgc2VsZWN0ZWQgYXMgdGhlIGRhdGEgY2h1cm5zLgogICAgICAgICAgPC9wPgogICAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgICAgaWQ9ImRlbW9MaXZlRmxhc2giCiAgICAgICAgICAgIC5yb3dLZXk9JHsic3ltYm9sIn0KICAgICAgICAgICAgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIgogICAgICAgICAgICAuc2VsZWN0aW9uTW9kZT0keyJtdWx0aSJ9CiAgICAgICAgICAgIGhlYWRpbmcxPSJMaXZlIE1hcmtldCBGZWVkIgogICAgICAgICAgICBoZWFkaW5nMj0iRmxhc2hpbmcgY2VsbHMgaW5kaWNhdGUgdXBkYXRlZCB2YWx1ZXMiCiAgICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InN5bWJvbCIsaGVhZGVyOiJTeW1ib2wiLHNvcnRhYmxlOiEwfSx7a2V5OiJwcmljZSIsaGVhZGVyOiJQcmljZSIsc29ydGFibGU6ITB9LHtrZXk6ImNoYW5nZSIsaGVhZGVyOiJcdTAzOTQiLHNvcnRhYmxlOiEwfSx7a2V5OiJ1cGRhdGVkQXQiLGhlYWRlcjoiVXBkYXRlZCJ9XX0KICAgICAgICAgICAgLmRhdGE9JHtbe3N5bWJvbDoiQUFQTCIscHJpY2U6MTgyLjUyLGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTVNGVCIscHJpY2U6NDE0LjE4LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiR09PRyIscHJpY2U6MTY4Ljc0LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiQU1aTiIscHJpY2U6MTg2LjEzLGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiVFNMQSIscHJpY2U6MjQ4LjUsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJOVkRBIixwcmljZTo4NzcuMzUsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJNRVRBIixwcmljZTo0OTIuOTYsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJORkxYIixwcmljZTo2MDUuODgsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJBTUQiLHByaWNlOjE2NS4yNCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IklOVEMiLHByaWNlOjQyLjE1LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In1dfQogICAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgVFpyLExacj11KCgpPT57dmUoKTtfcygpO2x0KCk7VFpyPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBtb2RlIChNb2RlIEIsIHBhZ2Ugc3RpY2t5KTogaG9yaXpvbnRhbCBzY3JvbGwgbGl2ZXMgb24KICAgICAgICAgLnRhYmxlU2Nyb2xsIChzbyB3aWRlIHRhYmxlcyBkb24ndCBnZXQgY2xpcHBlZCBieSBhbiBhbmNlc3RvcgogICAgICAgICBvdmVyZmxvdzpoaWRkZW4gc3VjaCBhcyBkZWVzLXRpbGUpLiBWZXJ0aWNhbCBzdGlja3kgaXMgaGFuZGxlZCBieQogICAgICAgICBhIEpTLW1hbmFnZWQgZmxvYXRpbmcgaGVhZGVyICguZmxvYXRpbmdIZWFkZXIsIHBvc2l0aW9uOmZpeGVkKSwKICAgICAgICAgd2hpY2ggaXMgdW5hZmZlY3RlZCBieSBhbmNlc3RvciBvdmVyZmxvdy4gKi8KICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlOwogICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICAgICAgfQogICAgICAvKiBNb2RlIEEsIGludGVybmFsIHNjcm9sbDogb3B0LWluIHZpYSBmaXhlZC1oZWlnaHQgYXR0cmlidXRlLgogICAgICAgICBUaGUgdGFibGUgc2Nyb2xscyBpbnNpZGUgaXRzIG93biBib3ggYW5kIHRoZSBoZWFkZXIgc3RpY2tzIHZpYSBwbGFpbiBDU1Mgc3RpY2t5LiAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGhlYWRlciBvdmVybGF5IChNb2RlIEIpLiBQb3NpdGlvbiBpcyBtYW5hZ2VkIGJ5IEpTIHNvIGl0CiAgICAgICAgIGVzY2FwZXMgYW55IGFuY2VzdG9yIG92ZXJmbG93OmhpZGRlbiAocG9zaXRpb246Zml4ZWQgaXMgbm90IGNsaXBwZWQKICAgICAgICAgYnkgb3ZlcmZsb3cgYW5jZXN0b3JzKS4gKi8KICAgICAgLmZsb2F0aW5nSGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIC5mbG9hdGluZ0hlYWRlci5hY3RpdmUgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRhYmxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRoIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KICAgICAgLyogdGggbmVlZHMgaXRzIG93biBiYWNrZ3JvdW5kIHNvIHN0aWNreSBjZWxscyBwYWludCBvdmVyIHNjcm9sbGVkIHJvd3MKICAgICAgICAgKGJyb3dzZXJzIGRvbid0IHBhaW50IHRoZSA8dGhlYWQ+IGJveCBiZWhpbmQgYSBzdGlja3kgPHRoPikuICovCiAgICAgIHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CiAgICAgIC8qIE1vZGUgQSDigJQgaW50ZXJuYWwgc2Nyb2xsIHN0aWNreSAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHRvcDogMzZweDsgLyogbWF0Y2hlcyB0aCB7IGhlaWdodDogMzZweCB9IGJlbG93ICovCiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogRnVsbCBob3Jpem9udGFsIGxpbmVzIHdoZW4gZW5hYmxlZCAqLwogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4wNCkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA1KSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRkIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBlZGdlIGJvcmRlcnMgdGhhdCB3b3VsZCBkb3VibGUgd2l0aCB0aWxlIGZyYW1lICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICB0aFtyb2xlPSdjb2x1bW5oZWFkZXInXTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgdGggLnNvcnRBcnJvdyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICB0aCAuc29ydEJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDMwJSkiLCJoc2woMjE3LjIgOTEuMiUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIAogICAgICB0aDpmaXJzdC1jaGlsZCwKICAgICAgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgdGg6bGFzdC1jaGlsZCwKICAgICAgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRkOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBib3R0b20gYm9yZGVyIG9uIGxhc3Qgcm93IHJlbW92ZWQg4oCUIHRpbGUgZnJhbWUgaGFuZGxlcyBpdCAqLwogICAgICA6aG9zdCg6bm90KFtzaG93LWhvcml6b250YWwtbGluZXNdKSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLS0gQ2VsbCBmbGFzaCBoaWdobGlnaHRpbmcgKG9wdC1pbiB2aWEgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIikgLS0tLQogICAgICAgICBCbG9vbWJlcmcvVHJhZGluZ1ZpZXctc3R5bGU6IHRoZSB0ZXh0IGl0c2VsZiBicmllZmx5IHRha2VzIGFuIGFjY2VudAogICAgICAgICBjb2xvciB0aGVuIGZhZGVzIGJhY2sgdG8gdGhlIGRlZmF1bHQuIE5vIGJhY2tncm91bmQgdGludCwgbm8gbGF5b3V0CiAgICAgICAgIHNoaWZ0LCBubyB3ZWlnaHQgY2hhbmdlLiBSZWFkYWJsZSwgbW9kZXJuLCBzdWJ0bGUuCiAgICAgICAgIENvbnN1bWVycyBjYW4gb3ZlcnJpZGUgcGVyIGluc3RhbmNlOgogICAgICAgICAgIGRlZXMtdGFibGUjbXlUYWJsZSB7IC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcjogaHNsKDE0MiA3NiUgNDAlKTsgfQogICAgICAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDMyIDk1JSA0NCUpIiwiaHNsKDQ1IDkzJSA2MiUpIil9OwogICAgICAgIC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmc6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsKICAgICAgfQoKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBkZWVzLXRhYmxlLWNlbGwtZmxhc2gKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICB9CgogICAgICAvKiBIb2xkIHRoZSBhY2NlbnQgY29sb3IgYnJpZWZseSwgdGhlbiBmYWRlIGJhY2sgdG8gdGhlIHRoZW1lJ3MgZGVmYXVsdAogICAgICAgICB0ZXh0IGNvbG9yLiBJbmhlcml0cyB0byBjaGlsZCB0ZXh0IGFuZCB0byBTVkcgaWNvbnMgdGhhdCB1c2UKICAgICAgICAgY3VycmVudENvbG9yLiBDZWxscyB3aXRoIGV4cGxpY2l0IGNvbG9yIG92ZXJyaWRlcyBpbiByZW5kZXJlcnMgYXJlCiAgICAgICAgIGludGVudGlvbmFsbHkgdW5hZmZlY3RlZC4gKi8KICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2ggewogICAgICAgIDAlLAogICAgICAgIDM1JSB7IGNvbG9yOiB2YXIoLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yKTsgfQogICAgICAgIDEwMCUgeyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyB9CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci9iYWNrZ3JvdW5kIGZsYXNoIHZhcmlhbnQgZm9yIGNlbGxzIHdpdGggc3R5bGVkIGNvbnRlbnQKICAgICAgICAgKGJhZGdlcywgaWNvbnMsIGN1c3RvbSBjb21wb25lbnRzKSB3aGVyZSBhIHRleHQtY29sb3IgYW5pbWF0aW9uCiAgICAgICAgIHdvdWxkIGJlIGludmlzaWJsZS4gQWN0aXZhdGVkIHZpYSBmbGFzaEJvcmRlciBvbiBDb2x1bW4uICovCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICBhbmltYXRpb246IGRlZXMtdGFibGUtY2VsbC1mbGFzaC1ib3JkZXIKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2gtYm9yZGVyIHsKICAgICAgICAwJSwKICAgICAgICAzNSUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQ1IDkzJSA2MiUgLyAwLjEwKSIsImhzbCg0NSA5MyUgNjIlIC8gMC4wOCkiKX07CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdHJhbnNwYXJlbnQ7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgfQogICAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWRlZXMtdGFibGUtZmxhc2gtY29sb3IpOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCg0NSA5MyUgNjIlIC8gMC4xMCkiLCJoc2woNDUgOTMlIDYyJSAvIDAuMDgpIil9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogRGV2LXRpbWUgd2FybmluZyBiYW5uZXIgc2hvd24gd2hlbiBoaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giIGJ1dAogICAgICAgICByb3dLZXkgaXMgbWlzc2luZy4gQ29uc3VtZXJzIHNob3VsZCBuZXZlciBzaGlwIHRoaXMgdG8gcHJvZHVjdGlvbi4gKi8KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbjogOHB4IDE2cHggMDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woNDggOTYlIDYzJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCg0OCA5NiUgODklIC8gMC42KSIsImhzbCg0OCA5NiUgMzAlIC8gMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMzIgODElIDI5JSkiLCJoc2woNDggOTYlIDgwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIC5mbGFzaENvbmZpZ1dhcm5pbmcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAxcHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuNikiLCJoc2woMCAwJSAwJSAvIDAuMykiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogRWRpdGFibGUgY2VsbCBhZmZvcmRhbmNlcyAqLwogICAgICB0ZC5lZGl0YWJsZSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CiAgICAgIHRkLmZvY3VzZWQgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC42KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuNikiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC42KSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQogICAgICB0ZC5lZGl0aW5nQ2VsbCAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRyb3Bkb3duLAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsCiAgICAgIHRkLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIGZpbHRlciByb3cgKi8KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggMTJweCAxMnB4OwogICAgICB9CiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggaW5wdXRbdHlwZT0ndGV4dCddIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAuYWN0aW9uc0NvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDExLjglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGFibGVTdGF0aXN0aWNzIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICBgXX0pO3ZhciB0N3Q9dSgoKT0+e0ZwKCl9KTt2YXIgcjd0PXUoKCk9PntQcGUoKX0pO3ZhciBhN3Q9dSgoKT0+e1pwZSgpO0Y2dCgpfSk7dmFyIGk3dD11KCgpPT57WDZ0KCl9KTtmdW5jdGlvbiBzN3QodCxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCByPXQoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHIpLm1hcChzPT4oe2tleTpzLGhlYWRlcjpzLHZhbHVlOmkobj0+dChuKVtzXSwidmFsdWUiKX0pKX1mdW5jdGlvbiBEWnIodCxlLHIsYSl7bGV0IHM9KHR8fFtdKS5zbGljZSgpO2lmKCFlKXJldHVybiBzO2xldCBuPXM3dChyLGEpLG89bmV3IFNldChzLm1hcChsPT5TdHJpbmcobC5rZXkpKSk7Zm9yKGxldCBsIG9mIG4pby5oYXMoU3RyaW5nKGwua2V5KSl8fHMucHVzaChsKTtyZXR1cm4gc31mdW5jdGlvbiBzZih0LGUscil7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZSh0KTp0W2Uua2V5XX1mdW5jdGlvbiBpRmEodCxlKXtpZih0PT1udWxsJiZlPT1udWxsKXJldHVybiAwO2lmKHQ9PW51bGwpcmV0dXJuLTE7aWYoZT09bnVsbClyZXR1cm4gMTtpZih0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBlPT0ibnVtYmVyIilyZXR1cm4gdDxlPy0xOnQ+ZT8xOjA7bGV0IHI9U3RyaW5nKHQpLnRvTG93ZXJDYXNlKCksYT1TdHJpbmcoZSkudG9Mb3dlckNhc2UoKTtyZXR1cm4gcjxhPy0xOnI+YT8xOjB9ZnVuY3Rpb24gJFpyKHQsZSxyLGEscyxuPSJ0YWJsZSIsbyl7bGV0IGw9dC5zbGljZSgpLGM9KGF8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxkPXN8fHt9LGY9T2JqZWN0LmtleXMoZCkuZmlsdGVyKGg9PihkW2hdPz8iIikudHJpbSgpLmxlbmd0aD4wKTtpZigoY3x8Zi5sZW5ndGg+MCkmJihsPWwuZmlsdGVyKGg9Pntmb3IobGV0IG0gb2YgZilpZihuPT09ImRhdGEiKXtsZXQgdj1oW21dLGI9U3RyaW5nKHY/PyIiKS50b0xvd2VyQ2FzZSgpLGc9U3RyaW5nKGRbbV0pLnRvTG93ZXJDYXNlKCk7aWYoIWIuaW5jbHVkZXMoZykpcmV0dXJuITF9ZWxzZXtsZXQgdj1lLmZpbmQoaz0+U3RyaW5nKGsua2V5KT09PW0pO2lmKCF2fHx2LmhpZGRlbnx8di5maWx0ZXJhYmxlPT09ITEpY29udGludWU7bGV0IGI9c2YoaCx2KSxnPVN0cmluZyhiPz8iIikudG9Mb3dlckNhc2UoKSx5PVN0cmluZyhkW21dKS50b0xvd2VyQ2FzZSgpO2lmKCFnLmluY2x1ZGVzKHkpKXJldHVybiExfWlmKGMpe2lmKG8pcmV0dXJuISFvKGgpO2xldCBtPSExO2lmKG49PT0iZGF0YSIpe2ZvcihsZXQgdiBvZiBPYmplY3QudmFsdWVzKGgpKWlmKFN0cmluZyh2Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjKSl7bT0hMDticmVha319ZWxzZSBmb3IobGV0IHYgb2YgZSl7aWYodi5oaWRkZW4pY29udGludWU7bGV0IGI9c2YoaCx2KTtpZihTdHJpbmcoYj8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYykpe209ITA7YnJlYWt9fWlmKCFtKXJldHVybiExfXJldHVybiEwfSkpLCFyfHxyLmxlbmd0aD09PTApcmV0dXJuIGw7bGV0IHA9ci5tYXAoaD0+KHtkZXNjOmgsY29sOmUuZmluZChtPT5TdHJpbmcobS5rZXkpPT09aC5rZXkpfSkpLmZpbHRlcihoPT4hIWguY29sKTtyZXR1cm4gcC5sZW5ndGg9PT0wfHxsLnNvcnQoKGgsbSk9Pntmb3IobGV0e2Rlc2M6dixjb2w6Yn1vZiBwKXtsZXQgZz1pRmEoc2YoaCxiKSxzZihtLGIpKTtpZihnIT09MClyZXR1cm4gdi5kaXI9PT0iYXNjIj9nOi1nfXJldHVybiAwfSksbH12YXIgQVpyPXUoKCk9PntpKHM3dCwiY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIik7aShEWnIsImNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zIik7aShzZiwiZ2V0Q2VsbFZhbHVlIik7aShpRmEsImNvbXBhcmVDZWxsVmFsdWVzIik7aSgkWnIsImdldFZpZXdEYXRhIil9KTtmdW5jdGlvbiBfNmUodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgnIicpJiZ0LmVuZHNXaXRoKCciJyl8fHQuc3RhcnRzV2l0aCgiJyIpJiZ0LmVuZHNXaXRoKCInIik/dC5zbGljZSgxLC0xKTp0fWZ1bmN0aW9uIHNGYSh0KXtyZXR1cm4gdC5zcGxpdCgvXHMrT1JccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gbkZhKHQpe3JldHVybiB0LnNwbGl0KC9ccytBTkRccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gb0ZhKHQpe2lmKCF0KXJldHVybiBudWxsO2xldCBlPSExLHI9dC5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTtyJiYoZT0hMCx0PXJbMl0pO2xldCBhPXQubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYoYSlyZXR1cm57ZmllbGQ6YVsxXSxuZWdhdGU6ZSxyYW5nZTp7bG93ZXI6XzZlKGFbMl0pLnRvTG93ZXJDYXNlKCksdXBwZXI6XzZlKGFbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IHM9dC5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gcz97ZmllbGQ6c1sxXSx2YWx1ZTpfNmUoc1syXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6ZX06dC5sZW5ndGg+MD97dmFsdWU6XzZlKHQpLnRvTG93ZXJDYXNlKCksbmVnYXRlOmV9Om51bGx9ZnVuY3Rpb24gbEZhKHQpe2lmKCF0KXJldHVybiBudWxsO2xldCBlPXNGYSh0KS5tYXAocj0+KHt0ZXJtczpuRmEocikubWFwKG9GYSkuZmlsdGVyKHM9PiEhcyYmISFzLnZhbHVlKX0pKS5maWx0ZXIocj0+ci50ZXJtcy5sZW5ndGg+MCk7cmV0dXJuIGUubGVuZ3RoPT09MD9udWxsOntjbGF1c2VzOmV9fWZ1bmN0aW9uIEVacih0LGUscil7bGV0IGE9bEZhKHQpO2lmKCFhKXJldHVybiBudWxsO2xldCBzPW5ldyBNYXAoci5tYXAoYz0+W1N0cmluZyhjLmtleSksY10pKSxuPWkoKGMsZCk9PmM8ZD8tMTpjPmQ/MTowLCJjbXAiKSxvPWkoYz0+e2xldCBkPVN0cmluZyhjPz8iIikudG9Mb3dlckNhc2UoKSxmPU51bWJlcihkKSxwPURhdGUucGFyc2UoZCk7cmV0dXJuIU51bWJlci5pc05hTihmKSYmZC50cmltKCkhPT0iIj97dDoibiIsdjpmfTpOdW1iZXIuaXNOYU4ocCk/e3Q6InMiLHY6ZH06e3Q6ImQiLHY6cH19LCJjb2VyY2UiKSxsPWkoKGMsZCxmKT0+e2xldCBwPW8oYyksaD1vKGQpLG09byhmKTtpZihwLnQ9PT0icyImJmgudD09PSJzIiYmbS50PT09InMiKXtsZXQgYj1wLnY7cmV0dXJuIG4oYixoLnYpPj0wJiZuKGIsbS52KTw9MH1pZihwLnQ9PT0ibiImJmgudD09PSJuIiYmbS50PT09Im4iKXtsZXQgYj1wLnY7cmV0dXJuIGI+PWgudiYmYjw9bS52fWlmKHAudD09PSJkIiYmaC50PT09ImQiJiZtLnQ9PT0iZCIpe2xldCBiPXAudjtyZXR1cm4gYj49aC52JiZiPD1tLnZ9bGV0IHY9U3RyaW5nKGM/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBuKHYsZCk+PTAmJm4odixmKTw9MH0sImluUmFuZ2UiKTtyZXR1cm4gYz0+e2ZvcihsZXQgZCBvZiBhLmNsYXVzZXMpe2xldCBmPSEwO2ZvcihsZXQgcCBvZiBkLnRlcm1zKXtsZXQgaD0hMTtpZihwLnJhbmdlJiZwLmZpZWxkKWlmKGU9PT0iZGF0YSIpaD1sKGNbcC5maWVsZF0scC5yYW5nZS5sb3dlcixwLnJhbmdlLnVwcGVyKTtlbHNle2xldCBtPXMuZ2V0KHAuZmllbGQpO2lmKCFtfHxtLmhpZGRlbiloPSExO2Vsc2V7bGV0IHY9bS52YWx1ZT9tLnZhbHVlKGMpOmNbbS5rZXldO2g9bCh2LHAucmFuZ2UubG93ZXIscC5yYW5nZS51cHBlcil9fWVsc2UgaWYocC5maWVsZCYmcC52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWg9U3RyaW5nKGNbcC5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHAudmFsdWUpO2Vsc2V7bGV0IG09cy5nZXQocC5maWVsZCk7aWYoIW18fG0uaGlkZGVuPT09ITApaD0hMTtlbHNle2xldCB2PW0udmFsdWU/bS52YWx1ZShjKTpjW20ua2V5XTtoPVN0cmluZyh2Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwLnZhbHVlKX19ZWxzZSBwLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9oPU9iamVjdC52YWx1ZXMoYykuc29tZShtPT5TdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocC52YWx1ZSkpOmg9ci5zb21lKG09PntpZihtLmhpZGRlbilyZXR1cm4hMTtsZXQgdj1tLnZhbHVlP20udmFsdWUoYyk6Y1ttLmtleV07cmV0dXJuIFN0cmluZyh2Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwLnZhbHVlKX0pKTtpZihwLm5lZ2F0ZSYmKGg9IWgpLCFoKXtmPSExO2JyZWFrfX1pZihmKXJldHVybiEwfXJldHVybiExfX12YXIgSVpyPXUoKCk9PntpKF82ZSwic3RyaXBRdW90ZXMiKTtpKHNGYSwic3BsaXRCeU9yIik7aShuRmEsInNwbGl0QnlBbmQiKTtpKG9GYSwicGFyc2VUZXJtIik7aShsRmEsInBhcnNlTHVjZW5lIik7aShFWnIsImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiKX0pO2Z1bmN0aW9uIGNGYSh0KXtsZXQgZT1bInRoIiwic3QiLCJuZCIsInJkIl0scj10JTEwMDtyZXR1cm4gdCsoZVsoci0yMCklMTBdfHxlW3JdfHxlWzBdKX12YXIgcXIsZ3QsVDZlLGU3dD11KCgpPT57dm4oKTtfWnIoKTt2ZSgpO3NzKCk7UTQoKTtNcigpO0tyKCk7TFpyKCk7dDd0KCk7cjd0KCk7YTd0KCk7cXBlKCk7aTd0KCk7QVpyKCk7SVpyKCk7bHQoKTtucygpO3FyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxndD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH07aShjRmEsIm9yZGluYWxMYWJlbCIpO1Q2ZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtdGFibGUiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdLHhlLEs9W10sVj1bXSxsZSxuZT1bXSxlZT1bXSx6ZSxIZT1bXSxHZT1bXSxvdCxEZT1bXSxfZT1bXSxvZSxzZT1bXSxjZT1bXSxUZSxxZT1bXSxudD1bXSx2dCxMZT1bXSx3ZT1bXSxPZSxnZT1bXSxiZT1bXSxJZSx5dD1bXSx3dD1bXSxZdCx6YT1bXSxQYT1bXSxZaSxFZT1bXSxqZT1bXSxzcixyYT1bXSxwYT1bXSx5YSxmYT1bXSxDbj1bXSx6bixBZT1bXSxDZT1bXSxZZSxEcj1bXSxFcz1bXSxMZCxrZT1bXSxoZT1bXSwkZSxldD1bXSxQdD1bXSxJcyxLaT1bXSxEbz1bXSxtMixxYz1bXSxEZD1bXSxnMixfZj1bXSxlaz1bXSx0ayxyaz1bXSxhaz1bXSxpayxzaz1bXSxuaz1bXTt2YXIgb2s9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNUYWJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBSPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpTdHJpbmd9KV0sTj1bUCh7dHlwZTpCb29sZWFufSldLE89W1Aoe3R5cGU6Qm9vbGVhbn0pXSxCPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLEE9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxZPVtQKHt0eXBlOkFycmF5fSldLGRlPVtQKHthdHRyaWJ1dGU6ITF9KV0sZmU9W1Aoe2F0dHJpYnV0ZTohMX0pXSxwZT1bUCh7dHlwZTpCb29sZWFufSldLEg9W1Aoe2F0dHJpYnV0ZTohMX0pXSxhZT1bUCh7YXR0cmlidXRlOiExfSldLHhlPVtQKHt0eXBlOk9iamVjdH0pXSxsZT1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LXZlcnRpY2FsLWxpbmVzIn0pXSx6ZT1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWhvcml6b250YWwtbGluZXMifSldLG90PVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InNob3ctZ3JpZCJ9KV0sb2U9W1Aoe2F0dHJpYnV0ZTohMX0pXSxUZT1bUCh7dHlwZTpTdHJpbmd9KV0sdnQ9W1Aoe2F0dHJpYnV0ZTohMX0pXSxPZT1bUCh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZToic2hvdy1jb2x1bW4tZmlsdGVycyJ9KV0sSWU9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1zZWxlY3Rpb24tY2hlY2tib3gifSldLFl0PVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InZpcnR1YWxpemVkIn0pXSxZaT1bUCh7dHlwZTpOdW1iZXIsYXR0cmlidXRlOiJ2aXJ0dWFsLW92ZXJzY2FuIn0pXSxzcj1bUCh7dHlwZTpTdHJpbmcsYXR0cmlidXRlOiJoaWdobGlnaHQtdXBkYXRlcyJ9KV0seWE9W1Aoe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZToiaGlnaGxpZ2h0LWR1cmF0aW9uIn0pXSx6bj1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJmaXhlZC1oZWlnaHQifSldLFllPVtQKHt0eXBlOlN0cmluZ30pXSxMZD1bUCh7dHlwZTpTdHJpbmd9KV0sJGU9W1Aoe2F0dHJpYnV0ZTohMX0pXSxJcz1baWUoKV0sbTI9W2llKCldLGcyPVtpZSgpXSx0az1baWUoKV0saWs9W2llKCldLHFyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZzEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImhlYWRpbmcxImluIEksImhhcyIpLGdldDppKEk9PkkuaGVhZGluZzEsImdldCIpLHNldDppKChJLHRlKT0+e0kuaGVhZGluZzE9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbyxsKSxxcih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJoZWFkaW5nMiJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmhlYWRpbmcyLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmhlYWRpbmcyPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGQsZikscXIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJkYXRhImluIEksImhhcyIpLGdldDppKEk9PkkuZGF0YSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5kYXRhPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGgsbSkscXIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImtleSJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmtleSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5rZXk9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sYixnKSxxcih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJsYWJlbCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmxhYmVsLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmxhYmVsPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGssTSkscXIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iZGlzYWJsZWQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5kaXNhYmxlZCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5kaXNhYmxlZD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxfLFMpLHFyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InJlcXVpcmVkImluIEksImhhcyIpLGdldDppKEk9PkkucmVxdWlyZWQsImdldCIpLHNldDppKChJLHRlKT0+e0kucmVxdWlyZWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sTCxFKSxxcih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJkYXRhTmFtZSJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmRhdGFOYW1lLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmRhdGFOYW1lPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEMseikscXIodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJzZWFyY2hhYmxlImluIEksImhhcyIpLGdldDppKEk9Pkkuc2VhcmNoYWJsZSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWFyY2hhYmxlPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LCQsRikscXIodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhQWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iZGF0YUFjdGlvbnMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5kYXRhQWN0aW9ucywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5kYXRhQWN0aW9ucz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxHLFopLHFyKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbHVtbnMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmNvbHVtbnM9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sRCxRKSxxcih0aGlzLG51bGwsZmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3dLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InJvd0tleSJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLnJvd0tleSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5yb3dLZXk9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sVCxXKSxxcih0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24iaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxtZSxxKSxxcih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iZGlzcGxheUZ1bmN0aW9uImluIEksImhhcyIpLGdldDppKEk9PkkuZGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmRpc3BsYXlGdW5jdGlvbj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxVLGopLHFyKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5yZXZlcnNlRGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnJldmVyc2VEaXNwbGF5RnVuY3Rpb249dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sWCxKKSxxcih0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGFSb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlbGVjdGVkRGF0YVJvdyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLnNlbGVjdGVkRGF0YVJvdywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWxlY3RlZERhdGFSb3c9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sSyxWKSxxcih0aGlzLG51bGwsbGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2hvd1ZlcnRpY2FsTGluZXMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zaG93VmVydGljYWxMaW5lcywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zaG93VmVydGljYWxMaW5lcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxuZSxlZSkscXIodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0hvcml6b250YWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2hvd0hvcml6b250YWxMaW5lcyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLnNob3dIb3Jpem9udGFsTGluZXMsImdldCIpLHNldDppKChJLHRlKT0+e0kuc2hvd0hvcml6b250YWxMaW5lcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxIZSxHZSkscXIodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNob3dHcmlkImluIEksImhhcyIpLGdldDppKEk9Pkkuc2hvd0dyaWQsImdldCIpLHNldDppKChJLHRlKT0+e0kuc2hvd0dyaWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sRGUsX2UpLHFyKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRCeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic29ydEJ5ImluIEksImhhcyIpLGdldDppKEk9Pkkuc29ydEJ5LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNvcnRCeT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxzZSxjZSkscXIodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iZmlsdGVyVGV4dCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmZpbHRlclRleHQsImdldCIpLHNldDppKChJLHRlKT0+e0kuZmlsdGVyVGV4dD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxxZSxudCkscXIodGhpcyxudWxsLHZ0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1uRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iY29sdW1uRmlsdGVycyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmNvbHVtbkZpbHRlcnMsImdldCIpLHNldDppKChJLHRlKT0+e0kuY29sdW1uRmlsdGVycz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxMZSx3ZSkscXIodGhpcyxudWxsLE9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbHVtbkZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNob3dDb2x1bW5GaWx0ZXJzImluIEksImhhcyIpLGdldDppKEk9Pkkuc2hvd0NvbHVtbkZpbHRlcnMsImdldCIpLHNldDppKChJLHRlKT0+e0kuc2hvd0NvbHVtbkZpbHRlcnM9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZ2UsYmUpLHFyKHRoaXMsbnVsbCxJZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWxlY3Rpb25DaGVja2JveCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2hvd1NlbGVjdGlvbkNoZWNrYm94ImluIEksImhhcyIpLGdldDppKEk9Pkkuc2hvd1NlbGVjdGlvbkNoZWNrYm94LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNob3dTZWxlY3Rpb25DaGVja2JveD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSx5dCx3dCkscXIodGhpcyxudWxsLFl0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlydHVhbGl6ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InZpcnR1YWxpemVkImluIEksImhhcyIpLGdldDppKEk9PkkudmlydHVhbGl6ZWQsImdldCIpLHNldDppKChJLHRlKT0+e0kudmlydHVhbGl6ZWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0semEsUGEpLHFyKHRoaXMsbnVsbCxZaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpcnR1YWxPdmVyc2NhbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4idmlydHVhbE92ZXJzY2FuImluIEksImhhcyIpLGdldDppKEk9PkkudmlydHVhbE92ZXJzY2FuLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnZpcnR1YWxPdmVyc2Nhbj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxFZSxqZSkscXIodGhpcyxudWxsLHNyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0VXBkYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iaGlnaGxpZ2h0VXBkYXRlcyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmhpZ2hsaWdodFVwZGF0ZXMsImdldCIpLHNldDppKChJLHRlKT0+e0kuaGlnaGxpZ2h0VXBkYXRlcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxyYSxwYSkscXIodGhpcyxudWxsLHlhLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0RHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImhpZ2hsaWdodER1cmF0aW9uImluIEksImhhcyIpLGdldDppKEk9PkkuaGlnaGxpZ2h0RHVyYXRpb24sImdldCIpLHNldDppKChJLHRlKT0+e0kuaGlnaGxpZ2h0RHVyYXRpb249dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZmEsQ24pLHFyKHRoaXMsbnVsbCx6bix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpeGVkSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJmaXhlZEhlaWdodCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmZpeGVkSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmZpeGVkSGVpZ2h0PXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEFlLENlKSxxcih0aGlzLG51bGwsWWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJzZWFyY2hNb2RlImluIEksImhhcyIpLGdldDppKEk9Pkkuc2VhcmNoTW9kZSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWFyY2hNb2RlPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LERyLEVzKSxxcih0aGlzLG51bGwsTGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25Nb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJzZWxlY3Rpb25Nb2RlImluIEksImhhcyIpLGdldDppKEk9Pkkuc2VsZWN0aW9uTW9kZSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWxlY3Rpb25Nb2RlPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGtlLGhlKSxxcih0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2VsZWN0ZWRJZHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWxlY3RlZElkcywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWxlY3RlZElkcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxldCxQdCkscXIodGhpcyxudWxsLElzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mb2N1c2VkQ2VsbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iX19mb2N1c2VkQ2VsbCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLl9fZm9jdXNlZENlbGwsImdldCIpLHNldDppKChJLHRlKT0+e0kuX19mb2N1c2VkQ2VsbD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxLaSxEbykscXIodGhpcyxudWxsLG0yLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19lZGl0aW5nQ2VsbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iX19lZGl0aW5nQ2VsbCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLl9fZWRpdGluZ0NlbGwsImdldCIpLHNldDppKChJLHRlKT0+e0kuX19lZGl0aW5nQ2VsbD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxxYyxEZCkscXIodGhpcyxudWxsLGcyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mbG9hdGluZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iX19mbG9hdGluZ0FjdGl2ZSJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLl9fZmxvYXRpbmdBY3RpdmUsImdldCIpLHNldDppKChJLHRlKT0+e0kuX19mbG9hdGluZ0FjdGl2ZT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxfZixlaykscXIodGhpcyxudWxsLHRrLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mbGFzaGluZ0NlbGxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJfX2ZsYXNoaW5nQ2VsbHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5fX2ZsYXNoaW5nQ2VsbHMsImdldCIpLHNldDppKChJLHRlKT0+e0kuX19mbGFzaGluZ0NlbGxzPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LHJrLGFrKSxxcih0aGlzLG51bGwsaWsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX3ZpcnR1YWxSYW5nZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iX192aXJ0dWFsUmFuZ2UiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5fX3ZpcnR1YWxSYW5nZSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5fX3ZpcnR1YWxSYW5nZT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxzayxuaykscXIobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Un0sbnVsbCxyKSxvaz1hPWUudmFsdWUsUiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpSfSl9c3RhdGljIGRlbW89elpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9Z3QodGhpcyxvLCJoZWFkaW5nIDEiKTtnZXQgaGVhZGluZzEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZzEoUil7dGhpcy4jZT1SfSN0PShndCh0aGlzLGwpLGd0KHRoaXMsZCwiaGVhZGluZyAyIikpO2dldCBoZWFkaW5nMigpe3JldHVybiB0aGlzLiN0fXNldCBoZWFkaW5nMihSKXt0aGlzLiN0PVJ9I3I9KGd0KHRoaXMsZiksZ3QodGhpcyxoLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGF0YShSKXt0aGlzLiNyPVJ9I2E9KGd0KHRoaXMsbSksZ3QodGhpcyxiLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQga2V5KFIpe3RoaXMuI2E9Un0jaT0oZ3QodGhpcyxnKSxndCh0aGlzLGssdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKFIpe3RoaXMuI2k9Un0jcz0oZ3QodGhpcyxNKSxndCh0aGlzLF8sITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgZGlzYWJsZWQoUil7dGhpcy4jcz1SfSNuPShndCh0aGlzLFMpLGd0KHRoaXMsTCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNufXNldCByZXF1aXJlZChSKXt0aGlzLiNuPVJ9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGF0YX1zZXQgdmFsdWUoUil7fWNoYW5nZVN1YmplY3Q9KGd0KHRoaXMsRSksbmV3IGNyLnNtYXJ0cngucnhqcy5TdWJqZWN0KTsjbz1ndCh0aGlzLEMsdm9pZCAwKTtnZXQgZGF0YU5hbWUoKXtyZXR1cm4gdGhpcy4jb31zZXQgZGF0YU5hbWUoUil7dGhpcy4jbz1SfSNsPShndCh0aGlzLHopLGd0KHRoaXMsJCwhMCkpO2dldCBzZWFyY2hhYmxlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNlYXJjaGFibGUoUil7dGhpcy4jbD1SfSNjPShndCh0aGlzLEYpLGd0KHRoaXMsRyxbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhSKXt0aGlzLiNjPVJ9I2Q9KGd0KHRoaXMsWiksZ3QodGhpcyxELFtdKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29sdW1ucyhSKXt0aGlzLiNkPVJ9I3U9KGd0KHRoaXMsUSksZ3QodGhpcyxULHZvaWQgMCkpO2dldCByb3dLZXkoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcm93S2V5KFIpe3RoaXMuI3U9Un0jcD0oZ3QodGhpcyxXKSxndCh0aGlzLG1lLCExKSk7Z2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKFIpe3RoaXMuI3A9Un0jZj0oZ3QodGhpcyxxKSxndCh0aGlzLFUsUj0+UikpO2dldCBkaXNwbGF5RnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4jZn1zZXQgZGlzcGxheUZ1bmN0aW9uKFIpe3RoaXMuI2Y9Un0jaD0oZ3QodGhpcyxqKSxndCh0aGlzLFgsUj0+UikpO2dldCByZXZlcnNlRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oUil7dGhpcy4jaD1SfSNtPShndCh0aGlzLEopLGd0KHRoaXMsSyx2b2lkIDApKTtnZXQgc2VsZWN0ZWREYXRhUm93KCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkRGF0YVJvdyhSKXt0aGlzLiNtPVJ9I2c9KGd0KHRoaXMsViksZ3QodGhpcyxuZSwhMSkpO2dldCBzaG93VmVydGljYWxMaW5lcygpe3JldHVybiB0aGlzLiNnfXNldCBzaG93VmVydGljYWxMaW5lcyhSKXt0aGlzLiNnPVJ9I2I9KGd0KHRoaXMsZWUpLGd0KHRoaXMsSGUsITEpKTtnZXQgc2hvd0hvcml6b250YWxMaW5lcygpe3JldHVybiB0aGlzLiNifXNldCBzaG93SG9yaXpvbnRhbExpbmVzKFIpe3RoaXMuI2I9Un0jeD0oZ3QodGhpcyxHZSksZ3QodGhpcyxEZSwhMCkpO2dldCBzaG93R3JpZCgpe3JldHVybiB0aGlzLiN4fXNldCBzaG93R3JpZChSKXt0aGlzLiN4PVJ9ZmlsZXM9KGd0KHRoaXMsX2UpLFtdKTtmaWxlV2Vha01hcD1uZXcgV2Vha01hcDtkYXRhQ2hhbmdlU3ViamVjdD1uZXcgY3Iuc21hcnRyeC5yeGpzLlN1YmplY3Q7I3Y9Z3QodGhpcyxzZSxbXSk7Z2V0IHNvcnRCeSgpe3JldHVybiB0aGlzLiN2fXNldCBzb3J0QnkoUil7dGhpcy4jdj1SfSN5PShndCh0aGlzLGNlKSxndCh0aGlzLHFlLCIiKSk7Z2V0IGZpbHRlclRleHQoKXtyZXR1cm4gdGhpcy4jeX1zZXQgZmlsdGVyVGV4dChSKXt0aGlzLiN5PVJ9I3c9KGd0KHRoaXMsbnQpLGd0KHRoaXMsTGUse30pKTtnZXQgY29sdW1uRmlsdGVycygpe3JldHVybiB0aGlzLiN3fXNldCBjb2x1bW5GaWx0ZXJzKFIpe3RoaXMuI3c9Un0jaz0oZ3QodGhpcyx3ZSksZ3QodGhpcyxnZSwhMSkpO2dldCBzaG93Q29sdW1uRmlsdGVycygpe3JldHVybiB0aGlzLiNrfXNldCBzaG93Q29sdW1uRmlsdGVycyhSKXt0aGlzLiNrPVJ9I1M9KGd0KHRoaXMsYmUpLGd0KHRoaXMseXQsITEpKTtnZXQgc2hvd1NlbGVjdGlvbkNoZWNrYm94KCl7cmV0dXJuIHRoaXMuI1N9c2V0IHNob3dTZWxlY3Rpb25DaGVja2JveChSKXt0aGlzLiNTPVJ9I009KGd0KHRoaXMsd3QpLGd0KHRoaXMsemEsITEpKTtnZXQgdmlydHVhbGl6ZWQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgdmlydHVhbGl6ZWQoUil7dGhpcy4jTT1SfSNDPShndCh0aGlzLFBhKSxndCh0aGlzLEVlLDgpKTtnZXQgdmlydHVhbE92ZXJzY2FuKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHZpcnR1YWxPdmVyc2NhbihSKXt0aGlzLiNDPVJ9I3o9KGd0KHRoaXMsamUpLGd0KHRoaXMscmEsIm5vbmUiKSk7Z2V0IGhpZ2hsaWdodFVwZGF0ZXMoKXtyZXR1cm4gdGhpcy4jen1zZXQgaGlnaGxpZ2h0VXBkYXRlcyhSKXt0aGlzLiN6PVJ9I189KGd0KHRoaXMscGEpLGd0KHRoaXMsZmEsOTAwKSk7Z2V0IGhpZ2hsaWdodER1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI199c2V0IGhpZ2hsaWdodER1cmF0aW9uKFIpe3RoaXMuI189Un0jVD0oZ3QodGhpcyxDbiksZ3QodGhpcyxBZSwhMSkpO2dldCBmaXhlZEhlaWdodCgpe3JldHVybiB0aGlzLiNUfXNldCBmaXhlZEhlaWdodChSKXt0aGlzLiNUPVJ9I0w9KGd0KHRoaXMsQ2UpLGd0KHRoaXMsRHIsInRhYmxlIikpO2dldCBzZWFyY2hNb2RlKCl7cmV0dXJuIHRoaXMuI0x9c2V0IHNlYXJjaE1vZGUoUil7dGhpcy4jTD1SfV9fc2VhcmNoVGV4dFN1Yj1ndCh0aGlzLEVzKTtfX3NlYXJjaE1vZGVTdWI7I0Q9Z3QodGhpcyxrZSwibm9uZSIpO2dldCBzZWxlY3Rpb25Nb2RlKCl7cmV0dXJuIHRoaXMuI0R9c2V0IHNlbGVjdGlvbk1vZGUoUil7dGhpcy4jRD1SfSMkPShndCh0aGlzLGhlKSxndCh0aGlzLGV0LG5ldyBTZXQpKTtnZXQgc2VsZWN0ZWRJZHMoKXtyZXR1cm4gdGhpcy4jJH1zZXQgc2VsZWN0ZWRJZHMoUil7dGhpcy4jJD1SfV9yb3dJZE1hcD0oZ3QodGhpcyxQdCksbmV3IFdlYWtNYXApO19yb3dJZENvdW50ZXI9MDtfX3NlbGVjdGlvbkFuY2hvcklkOyNBPWd0KHRoaXMsS2ksdm9pZCAwKTtnZXQgX19mb2N1c2VkQ2VsbCgpe3JldHVybiB0aGlzLiNBfXNldCBfX2ZvY3VzZWRDZWxsKFIpe3RoaXMuI0E9Un0jRT0oZ3QodGhpcyxEbyksZ3QodGhpcyxxYyx2b2lkIDApKTtnZXQgX19lZGl0aW5nQ2VsbCgpe3JldHVybiB0aGlzLiNFfXNldCBfX2VkaXRpbmdDZWxsKFIpe3RoaXMuI0U9Un0jST0oZ3QodGhpcyxEZCksZ3QodGhpcyxfZiwhMSkpO2dldCBfX2Zsb2F0aW5nQWN0aXZlKCl7cmV0dXJuIHRoaXMuI0l9c2V0IF9fZmxvYXRpbmdBY3RpdmUoUil7dGhpcy4jST1SfSNQPShndCh0aGlzLGVrKSxndCh0aGlzLHJrLG5ldyBNYXApKTtnZXQgX19mbGFzaGluZ0NlbGxzKCl7cmV0dXJuIHRoaXMuI1B9c2V0IF9fZmxhc2hpbmdDZWxscyhSKXt0aGlzLiNQPVJ9X19wcmV2U25hcHNob3Q9Z3QodGhpcyxhayk7X19mbGFzaENsZWFyVGltZXI7X19mbGFzaFRpY2s9MDtfX2ZsYXNoV2FybmVkTm9Sb3dLZXk9ITE7X19tZW1vRWZmZWN0aXZlQ29scztfX21lbW9WaWV3RGF0YTtfX2NvbHVtbnNTaXplZEZvcjtfX3Jvd0hlaWdodD0zNjtfX3Jvd0hlaWdodE1lYXN1cmVkPSExOyNOPWd0KHRoaXMsc2sse3N0YXJ0OjAsZW5kOjB9KTtnZXQgX192aXJ0dWFsUmFuZ2UoKXtyZXR1cm4gdGhpcy4jTn1zZXQgX192aXJ0dWFsUmFuZ2UoUil7dGhpcy4jTj1SfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKXx8dGhpcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fX2hhbmRsZUhvc3RLZXlkb3duKX1fX2hhbmRsZUhvc3RLZXlkb3duPShndCh0aGlzLG5rKSxSPT57bGV0IEk9Ui5jb21wb3NlZFBhdGg/LigpfHxbXSx0ZT0hMTtmb3IobGV0IFJlIG9mIEkpe2xldCB0dD1SZT8udGFnTmFtZTtpZih0dD09PSJJTlBVVCJ8fHR0PT09IlRFWFRBUkVBInx8UmU/LmlzQ29udGVudEVkaXRhYmxlKXt0ZT0hMDticmVha319aWYoKFIubWV0YUtleXx8Ui5jdHJsS2V5KSYmKFIua2V5PT09ImMifHxSLmtleT09PSJDIikpe2lmKHRlKXJldHVybjtsZXQgUmU9W107aWYodGhpcy5zZWxlY3RlZElkcy5zaXplPjApZm9yKGxldCB0dCBvZiB0aGlzLmRhdGEpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZCh0dCkpJiZSZS5wdXNoKHR0KTtlbHNlIHRoaXMuc2VsZWN0ZWREYXRhUm93JiZSZS5wdXNoKHRoaXMuc2VsZWN0ZWREYXRhUm93KTtpZihSZS5sZW5ndGg9PT0wKXJldHVybjtSLnByZXZlbnREZWZhdWx0KCksdGhpcy5fX3dyaXRlUm93c0FzSnNvbihSZSk7cmV0dXJufWlmKCEodGV8fHRoaXMuX19lZGl0aW5nQ2VsbCkpc3dpdGNoKFIua2V5KXtjYXNlIkFycm93TGVmdCI6Ui5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubW92ZUZvY3VzZWRDZWxsKC0xLDAsITEpO3JldHVybjtjYXNlIkFycm93UmlnaHQiOlIucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgxLDAsITEpO3JldHVybjtjYXNlIkFycm93VXAiOlIucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLC0xLCExKTtyZXR1cm47Y2FzZSJBcnJvd0Rvd24iOlIucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLDEsITEpO3JldHVybjtjYXNlIkVudGVyIjpjYXNlIkYyIjp7aWYoIXRoaXMuX19mb2N1c2VkQ2VsbClyZXR1cm47bGV0IHR0PSh0aGlzLl9sYXN0Vmlld0RhdGE/P1tdKS5maW5kKEx0PT50aGlzLmdldFJvd0lkKEx0KT09PXRoaXMuX19mb2N1c2VkQ2VsbC5yb3dJZCk7aWYoIXR0KXJldHVybjtsZXQgZnQ9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKEx0PT5TdHJpbmcoTHQua2V5KT09PXRoaXMuX19mb2N1c2VkQ2VsbC5jb2xLZXkpO2lmKCFmdHx8IXRoaXMuX19pc0NvbHVtbkVkaXRhYmxlKGZ0KSlyZXR1cm47Ui5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc3RhcnRFZGl0aW5nKHR0LGZ0KTtyZXR1cm59Y2FzZSJFc2NhcGUiOnRoaXMuX19mb2N1c2VkQ2VsbCYmKHRoaXMuX19mb2N1c2VkQ2VsbD12b2lkIDAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpO3JldHVybjtkZWZhdWx0OnJldHVybn19KTtjb3B5U2VsZWN0aW9uQXNKc29uKFIpe2xldCBJPVtdO2lmKHRoaXMuc2VsZWN0ZWRJZHMuc2l6ZT4wKWZvcihsZXQgdGUgb2YgdGhpcy5kYXRhKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQodGUpKSYmSS5wdXNoKHRlKTtlbHNlIFI/SS5wdXNoKFIpOnRoaXMuc2VsZWN0ZWREYXRhUm93JiZJLnB1c2godGhpcy5zZWxlY3RlZERhdGFSb3cpO0kubGVuZ3RoIT09MCYmdGhpcy5fX3dyaXRlUm93c0FzSnNvbihJKX1fX3dyaXRlUm93c0FzSnNvbihSKXt0cnl7bGV0IEk9SlNPTi5zdHJpbmdpZnkoUixudWxsLDIpO25hdmlnYXRvci5jbGlwYm9hcmQ/LndyaXRlVGV4dChJKX1jYXRjaHt9fXN0YXRpYyBzdHlsZXM9VFpyO19fZ2V0RGlzcGxheUZ1bmN0aW9uU2hhcGVLZXkoKXtpZighdGhpcy5kYXRhfHx0aGlzLmRhdGEubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgUj10aGlzLmRpc3BsYXlGdW5jdGlvbih0aGlzLmRhdGFbMF0pPz97fTtyZXR1cm4gT2JqZWN0LmtleXMoUikuam9pbigiXDAiKX1fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKXtsZXQgUj1BcnJheS5pc0FycmF5KHRoaXMuY29sdW1ucykmJnRoaXMuY29sdW1ucy5sZW5ndGg+MCxJPSFSfHx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uP3RoaXMuX19nZXREaXNwbGF5RnVuY3Rpb25TaGFwZUtleSgpOiIiLHRlPXRoaXMuX19tZW1vRWZmZWN0aXZlQ29scztpZih0ZSYmdGUuY29sdW1ucz09PXRoaXMuY29sdW1ucyYmdGUuYXVnbWVudD09PXRoaXMuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24mJnRlLmRpc3BsYXlGdW5jdGlvbj09PXRoaXMuZGlzcGxheUZ1bmN0aW9uJiZ0ZS5kaXNwbGF5U2hhcGVLZXk9PT1JKXJldHVybiB0ZS5vdXQ7bGV0IFBlPVI/RFpyKHRoaXMuY29sdW1ucyx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk6czd0KHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk7cmV0dXJuIHRoaXMuX19tZW1vRWZmZWN0aXZlQ29scz17Y29sdW1uczp0aGlzLmNvbHVtbnMsYXVnbWVudDp0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLGRpc3BsYXlGdW5jdGlvbjp0aGlzLmRpc3BsYXlGdW5jdGlvbixkaXNwbGF5U2hhcGVLZXk6SSxvdXQ6UGV9LFBlfV9fZ2V0Vmlld0RhdGEoUil7bGV0IEk9dGhpcy5zZWFyY2hNb2RlPT09ImRhdGEiPyJkYXRhIjoidGFibGUiLHRlPXRoaXMuX19tZW1vVmlld0RhdGE7aWYodGUmJnRlLmRhdGE9PT10aGlzLmRhdGEmJnRlLnNvcnRCeT09PXRoaXMuc29ydEJ5JiZ0ZS5maWx0ZXJUZXh0PT09dGhpcy5maWx0ZXJUZXh0JiZ0ZS5jb2x1bW5GaWx0ZXJzPT09dGhpcy5jb2x1bW5GaWx0ZXJzJiZ0ZS5zZWFyY2hNb2RlPT09SSYmdGUuZWZmZWN0aXZlQ29sdW1ucz09PVIpcmV0dXJuIHRlLm91dDtsZXQgUGU9RVpyKHRoaXMuZmlsdGVyVGV4dCxJLFIpLFJlPSRacih0aGlzLmRhdGEsUix0aGlzLnNvcnRCeSx0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLEksUGV8fHZvaWQgMCk7cmV0dXJuIHRoaXMuX19tZW1vVmlld0RhdGE9e2RhdGE6dGhpcy5kYXRhLHNvcnRCeTp0aGlzLnNvcnRCeSxmaWx0ZXJUZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5GaWx0ZXJzOnRoaXMuY29sdW1uRmlsdGVycyxzZWFyY2hNb2RlOkksZWZmZWN0aXZlQ29sdW1uczpSLG91dDpSZX0sUmV9cmVuZGVyKCl7bGV0IFI9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSxJPXRoaXMuX19nZXRWaWV3RGF0YShSKSx0ZT10aGlzLmdldEFjdGlvbnNGb3JUeXBlKCJoZWFkZXIiKSxQZT10aGlzLmdldEFjdGlvbnNGb3JUeXBlKCJmb290ZXIiKSxSZT10aGlzLmdldEFjdGlvbnNGb3JUeXBlKCJpblJvdyIpO3RoaXMuX2xhc3RWaWV3RGF0YT1JO2xldCB0dD10aGlzLnZpcnR1YWxpemVkJiZJLmxlbmd0aD4wLHB0PUksZnQ9MCxMdD0wLFVyPTA7aWYodHQpe2xldCBBdD10aGlzLl9fdmlydHVhbFJhbmdlLG1zPU1hdGgubWF4KDAsQXQuc3RhcnQpLHUxPU1hdGgubWluKEkubGVuZ3RoLEF0LmVuZHx8MCksWmk9dTE+MD91MTpNYXRoLm1pbihJLmxlbmd0aCx0aGlzLnZpcnR1YWxPdmVyc2NhbioyKzE2KTtmdD1tcyxwdD1JLnNsaWNlKG1zLFppKSxMdD1tcyp0aGlzLl9fcm93SGVpZ2h0LFVyPU1hdGgubWF4KDAsSS5sZW5ndGgtWmkpKnRoaXMuX19yb3dIZWlnaHR9cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmcgaGVhZGluZzEiPiR7dGhpcy5sYWJlbHx8dGhpcy5oZWFkaW5nMX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMiI+JHt0aGlzLmhlYWRpbmcyfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHt0ZS5tYXAoQXQ9PndgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlckFjdGlvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57QXQuYWN0aW9uRnVuYyh7aXRlbTp0aGlzLnNlbGVjdGVkRGF0YVJvdyx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7QXQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke0F0Lmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICR7QXQubmFtZX1gOkF0Lm5hbWV9CiAgICAgICAgICAgICAgPC9kaXY+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nU2VwYXJhdGlvbiI+PC9kaXY+CiAgICAgICAgJHt0aGlzLmhpZ2hsaWdodFVwZGF0ZXM9PT0iZmxhc2giJiYhdGhpcy5yb3dLZXk/d2A8ZGl2IGNsYXNzPSJmbGFzaENvbmZpZ1dhcm5pbmciIHJvbGU9ImFsZXJ0Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICA8Y29kZT5oaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giPC9jb2RlPiByZXF1aXJlcwogICAgICAgICAgICAgICAgPGNvZGU+cm93S2V5PC9jb2RlPiB0byBiZSBzZXQuIEZsYXNoIGlzIGRpc2FibGVkLgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+YDp3YGB9CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoR3JpZCBoaWRkZW4iPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsibHVjZW5lIHN5bnRheCBzZWFyY2gifQogICAgICAgICAgICAuaW5mb1RleHQ9JHtgCiAgICAgICAgICAgICAgWW91IGNhbiB1c2UgdGhlIGx1Y2VuZSBzeW50YXggdG8gc2VhcmNoIGZvciBkYXRhLCBlLmcuOgoKICAgICAgICAgICAgICBcYFxgXGAKICAgICAgICAgICAgICBuYW1lOiAiam9obiIgQU5EIGFnZTogMTgKICAgICAgICAgICAgICBcYFxgXGAKCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsic2VhcmNoIG1vZGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1sidGFibGUiLCJkYXRhIiwic2VydmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0YWJsZSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0ke2AKICAgICAgICAgICAgICBUaGVyZSBhcmUgdGhyZWUgYmFzaWMgbW9kZXM6CgogICAgICAgICAgICAgICogdGFibGU6IG9ubHkgc2VhcmNoZXMgZGF0YSBhbHJlYWR5IGluIHRoZSB0YWJsZQogICAgICAgICAgICAgICogZGF0YTogc2VhcmNoZXMgb3JpZ2luYWwgZGF0YSwgaWdub3JpbmcgdGFibGUgdHJhbnNmb3JtcwogICAgICAgICAgICAgICogc2VydmVyOiBzZWFyY2hlcyBkYXRhIG9uIHRoZSBzZXJ2ZXIKCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIHRoZSBhY3R1YWwgdGFibGUgLS0+CiAgICAgICAgPHN0eWxlPjwvc3R5bGU+CiAgICAgICAgJHt0aGlzLmRhdGEubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVNjcm9sbCI+CiAgICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVySGVhZGVyUm93cyhSKX0KICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICA8dGJvZHkKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5fX29uVGJvZHlDbGlja30KICAgICAgICAgICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5fX29uVGJvZHlEYmxjbGlja30KICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuX19vblRib2R5TW91c2Vkb3dufQogICAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHt0aGlzLl9fb25UYm9keUNvbnRleHRtZW51fQogICAgICAgICAgICAgICAgICBAZHJhZ2VudGVyPSR7dGhpcy5fX29uVGJvZHlEcmFnZW50ZXJ9CiAgICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHt0aGlzLl9fb25UYm9keURyYWdsZWF2ZX0KICAgICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7dGhpcy5fX29uVGJvZHlEcmFnb3Zlcn0KICAgICAgICAgICAgICAgICAgQGRyb3A9JHt0aGlzLl9fb25UYm9keURyb3B9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7dHQmJkx0PjA/d2A8dHIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJoZWlnaHQ6JHtMdH1weCI+PHRkPjwvdGQ+PC90cj5gOndgYH0KICAgICAgICAgICAgICAgICAgJHtabC5yZXBlYXQocHQsQXQ9PnRoaXMuZ2V0Um93SWQoQXQpLChBdCxtcyk9PntsZXQgdTE9ZnQrbXMsWmk9dGhpcy5nZXRSb3dJZChBdCksTzE9dGhpcy5fX2ZsYXNoaW5nQ2VsbHMuZ2V0KFppKTtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgICAgIDx0cgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJvdy1pZHg9JHt1MX0KICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7QXQ9PT10aGlzLnNlbGVjdGVkRGF0YVJvd3x8dGhpcy5pc1Jvd1NlbGVjdGVkKEF0KT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNob3dTZWxlY3Rpb25DaGVja2JveD93YDx0ZCBzdHlsZT0id2lkdGg6NDJweDsgdGV4dC1hbGlnbjpjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlzUm93U2VsZWN0ZWQoQXQpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBuZXdWYWx1ZT0ke3dyPT57d3Iuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zZXRSb3dTZWxlY3RlZChBdCx3ci5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5gOndgYH0KICAgICAgICAgICAgICAgICAgICAgICAgJHtSLmZpbHRlcih3cj0+IXdyLmhpZGRlbikubWFwKCh3cixWYyk9PntsZXQgJG89c2YoQXQsd3IsdGhpcy5kaXNwbGF5RnVuY3Rpb24pLFduPXdyLnJlbmRlcmVyP3dyLnJlbmRlcmVyKCRvLEF0LHtyb3dJbmRleDp1MSxjb2xJbmRleDpWYyxjb2x1bW46d3J9KTokbyxiMj1TdHJpbmcod3Iua2V5KSxwMWE9ISEod3IuZWRpdGFibGV8fHdyLmVkaXRvciksZjFhPXRoaXMuX19mb2N1c2VkQ2VsbD8ucm93SWQ9PT1aaSYmdGhpcy5fX2ZvY3VzZWRDZWxsPy5jb2xLZXk9PT1iMixMbWU9dGhpcy5fX2VkaXRpbmdDZWxsPy5yb3dJZD09PVppJiZ0aGlzLl9fZWRpdGluZ0NlbGw/LmNvbEtleT09PWIyLEdidD1PMT8uZ2V0KGIyKSxEbWU9R2J0IT09dm9pZCAwLGgxYT1EbWUmJiEhd3IuZmxhc2hCb3JkZXIsbTFhPVtwMWE/ImVkaXRhYmxlIjoiIixmMWEmJiFMbWU/ImZvY3VzZWQiOiIiLExtZT8iZWRpdGluZ0NlbGwiOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpLFlidD13YDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9JHtEbWU/aDFhPyJpbm5lckNlbGxDb250YWluZXIgZmxhc2hpbmctYm9yZGVyIjoiaW5uZXJDZWxsQ29udGFpbmVyIGZsYXNoaW5nIjoiaW5uZXJDZWxsQ29udGFpbmVyIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtMbWU/dGhpcy5yZW5kZXJDZWxsRWRpdG9yKEF0LHdyKTpXbn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSR7bTFhfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtY29sLWtleT0ke2IyfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtEbWU/Wmwua2V5ZWQoYCR7Wml9OiR7YjJ9OiR7R2J0fWAsWWJ0KTpZYnR9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICR7KCgpPT57aWYoUmUubGVuZ3RoPjApcmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYWN0aW9uc0NvbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uc0NvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke1JlLm1hcCh3cj0+d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYWN0aW9uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PndyLmFjdGlvbkZ1bmMoe2l0ZW06QXQsdGFibGU6dGhpc30pfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7d3IuaWNvbk5hbWU/d2AgPGRlZXMtaWNvbiAuaWNvbj0ke3dyLmljb25OYW1lfT48L2RlZXMtaWNvbj4gYDp3ci5uYW1lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9KSgpfQogICAgICAgICAgICAgICAgICAgICAgPC90cj5gfSl9CiAgICAgICAgICAgICAgICAgICR7dHQmJlVyPjA/d2A8dHIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJoZWlnaHQ6JHtVcn1weCI+PHRkPjwvdGQ+PC90cj5gOndgYH0KICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbG9hdGluZ0hlYWRlciIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgJHt0aGlzLl9fZmxvYXRpbmdBY3RpdmU/d2A8dGFibGU+CiAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJIZWFkZXJSb3dzKFIpfQogICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPmA6d2BgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgIDxkaXYgY2xhc3M9Im5vRGF0YVNldCI+Tm8gZGF0YSBzZXQhPC9kaXY+IGB9CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTdGF0aXN0aWNzIj4KICAgICAgICAgICAgJHt0aGlzLmRhdGEubGVuZ3RofSAke3RoaXMuZGF0YU5hbWV8fCJkYXRhIHJvd3MifSAodG90YWwpIHwKICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkRGF0YVJvdz9gIyAke3RoaXMuZGF0YS5pbmRleE9mKHRoaXMuc2VsZWN0ZWREYXRhUm93KSsxfWA6Ik5vIn0KICAgICAgICAgICAgc2VsZWN0ZWQKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyQWN0aW9ucyI+CiAgICAgICAgICAgICR7UGUubWFwKEF0PT53YDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJmb290ZXJBY3Rpb24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e0F0LmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke0F0Lmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvblNpemU9JHsxNH0gLmljb249JHtBdC5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAke0F0Lm5hbWV9YDpBdC5uYW1lfQogICAgICAgICAgICAgIDwvZGl2PmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJIZWFkZXJSb3dzKFIpe3JldHVybiB3YAogICAgICA8dHI+CiAgICAgICAgJHt0aGlzLnNob3dTZWxlY3Rpb25DaGVja2JveD93YAogICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NDJweDsgdGV4dC1hbGlnbjpjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpIj93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKX0KICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV0ZXJtaW5hdGU9JHt0aGlzLmlzVmlzaWJsZVNlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKX0KICAgICAgICAgICAgICAgICAgICAgICAgQG5ld1ZhbHVlPSR7ST0+e0kuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zZXRTZWxlY3RWaXNpYmxlKEkuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgJHtSLmZpbHRlcihJPT4hSS5oaWRkZW4pLm1hcChJPT57bGV0IHRlPUkuc29ydGFibGUhPT0hMSxQZT10aGlzLmdldEFyaWFTb3J0KEkpO3JldHVybiB3YAogICAgICAgICAgICAgIDx0aAogICAgICAgICAgICAgICAgcm9sZT0iY29sdW1uaGVhZGVyIgogICAgICAgICAgICAgICAgYXJpYS1zb3J0PSR7UGV9CiAgICAgICAgICAgICAgICBzdHlsZT0iJHt0ZT8iY3Vyc29yOiBwb2ludGVyOyI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7UmU9PnRlP3RoaXMuaGFuZGxlSGVhZGVyQ2xpY2soUmUsSSxSKTpudWxsfQogICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7UmU9PnRlP3RoaXMub3BlbkhlYWRlckNvbnRleHRNZW51KFJlLEksUik6bnVsbH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke0kuaGVhZGVyPz9JLmtleX0KICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJTb3J0SW5kaWNhdG9yKEkpfQogICAgICAgICAgICAgIDwvdGg+YH0pfQogICAgICAgICR7dGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MD93YDx0aCBjbGFzcz0iYWN0aW9uc0NvbCI+QWN0aW9uczwvdGg+YDp3YGB9CiAgICAgIDwvdHI+CiAgICAgICR7dGhpcy5zaG93Q29sdW1uRmlsdGVycz93YDx0ciBjbGFzcz0iZmlsdGVyc1JvdyI+CiAgICAgICAgICAgICR7dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3g/d2A8dGggc3R5bGU9IndpZHRoOjQycHg7Ij48L3RoPmA6d2BgfQogICAgICAgICAgICAke1IuZmlsdGVyKEk9PiFJLmhpZGRlbikubWFwKEk9PntsZXQgdGU9U3RyaW5nKEkua2V5KTtyZXR1cm4gSS5maWx0ZXJhYmxlPT09ITE/d2A8dGg+PC90aD5gOndgPHRoPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgZGF0YS1jb2wta2V5PSR7dGV9IC52YWx1ZT0ke3RoaXMuY29sdW1uRmlsdGVyc1t0ZV18fCIifQogICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke1BlPT50aGlzLnNldENvbHVtbkZpbHRlcih0ZSxQZS50YXJnZXQudmFsdWUpfSAvPgogICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICR7dGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MD93YDx0aD48L3RoPmA6d2BgfQogICAgICAgICAgPC90cj5gOndgYH0KICAgIGB9X19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyO19fZmxvYXRpbmdTY3JvbGxIYW5kbGVyO19fc2Nyb2xsQW5jZXN0b3JzPVtdO2dldCBfX2Zsb2F0aW5nSGVhZGVyRWwoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmxvYXRpbmdIZWFkZXIiKT8/bnVsbH1nZXQgX19yZWFsVGFibGVFbCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJsZVNjcm9sbCA+IHRhYmxlIik/P251bGx9Z2V0IF9fZmxvYXRpbmdUYWJsZUVsKCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZsb2F0aW5nSGVhZGVyID4gdGFibGUiKT8/bnVsbH1fX2NvbGxlY3RTY3JvbGxBbmNlc3RvcnMoKXtsZXQgUj1bXSxJPXRoaXMsdGU9aShQZT0+UGU9PT0iYXV0byJ8fFBlPT09InNjcm9sbCJ8fFBlPT09Im92ZXJsYXkiLCJzY3JvbGxpc2giKTtmb3IoO0k7KXtpZihJIGluc3RhbmNlb2YgRWxlbWVudCl7bGV0IFJlPWdldENvbXB1dGVkU3R5bGUoSSksdHQ9dGUoUmUub3ZlcmZsb3dZKSxwdD10ZShSZS5vdmVyZmxvd1gpOyh0dHx8cHQpJiZSLnB1c2goe3RhcmdldDpJLHNjcm9sbHNZOnR0LHNjcm9sbHNYOnB0fSl9bGV0IFBlPUkuYXNzaWduZWRTbG90P0kuYXNzaWduZWRTbG90OkkucGFyZW50Tm9kZTtQZT9JPVBlOkkuaG9zdD9JPUkuaG9zdDpJPW51bGx9cmV0dXJuIFIucHVzaCh7dGFyZ2V0OndpbmRvdyxzY3JvbGxzWTohMCxzY3JvbGxzWDohMH0pLFJ9X19nZXRTdGlja0NvbnRleHQoKXtsZXQgUj0wLEk9MCx0ZT13aW5kb3cuaW5uZXJXaWR0aDtmb3IobGV0IFBlIG9mIHRoaXMuX19zY3JvbGxBbmNlc3RvcnMpe2lmKFBlLnRhcmdldD09PXdpbmRvdyljb250aW51ZTtsZXQgUmU9UGUudGFyZ2V0LHR0PVJlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHB0PWdldENvbXB1dGVkU3R5bGUoUmUpO2lmKFBlLnNjcm9sbHNZKXtsZXQgZnQ9cGFyc2VGbG9hdChwdC5ib3JkZXJUb3BXaWR0aCl8fDA7Uj1NYXRoLm1heChSLHR0LnRvcCtmdCl9aWYoUGUuc2Nyb2xsc1gpe2xldCBmdD1wYXJzZUZsb2F0KHB0LmJvcmRlckxlZnRXaWR0aCl8fDAsTHQ9cGFyc2VGbG9hdChwdC5ib3JkZXJSaWdodFdpZHRoKXx8MDtJPU1hdGgubWF4KEksdHQubGVmdCtmdCksdGU9TWF0aC5taW4odGUsdHQucmlnaHQtTHQpfX1yZXR1cm57dG9wOlIsbGVmdDpJLHJpZ2h0OnRlfX1zZXR1cEZsb2F0aW5nSGVhZGVyKCl7aWYodGhpcy50ZWFyZG93bkZsb2F0aW5nSGVhZGVyKCksdGhpcy5maXhlZEhlaWdodCYmIXRoaXMudmlydHVhbGl6ZWQpcmV0dXJuO2xldCBSPXRoaXMuX19yZWFsVGFibGVFbDtpZighUilyZXR1cm47dGhpcy5fX3Njcm9sbEFuY2VzdG9ycz10aGlzLl9fY29sbGVjdFNjcm9sbEFuY2VzdG9ycygpO2xldCBJPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYmxlU2Nyb2xsIik7SSYmdGhpcy5fX3Njcm9sbEFuY2VzdG9ycy51bnNoaWZ0KHt0YXJnZXQ6SSxzY3JvbGxzWTp0aGlzLmZpeGVkSGVpZ2h0LHNjcm9sbHNYOiEwfSksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9KSx0aGlzLl9fZmxvYXRpbmdSZXNpemVPYnNlcnZlci5vYnNlcnZlKFIpLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXI9KCk9Pnt0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy52aXJ0dWFsaXplZCYmdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKX07Zm9yKGxldCB0ZSBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKXRlLnRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksdGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9dGVhcmRvd25GbG9hdGluZ0hlYWRlcigpe2lmKHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpe2ZvcihsZXQgSSBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKUkudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlciksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj12b2lkIDB9dGhpcy5fX3Njcm9sbEFuY2VzdG9ycz1bXSx0aGlzLl9fZmxvYXRpbmdBY3RpdmU9ITE7bGV0IFI9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7UiYmUi5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1fX3RyYW5zZmVyRm9jdXNUb1JlYWxIZWFkZXIoKXtsZXQgUj10aGlzLl9fZmxvYXRpbmdIZWFkZXJFbDtpZighUilyZXR1cm47bGV0IEk9dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50O2lmKCFJfHwhUi5jb250YWlucyhJKSlyZXR1cm47bGV0IHRlPUkuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbC1rZXkiKTtpZighdGUpcmV0dXJuO2xldCBQZT1JLFJlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRhYmxlU2Nyb2xsID4gdGFibGUgPiB0aGVhZCBpbnB1dFtkYXRhLWNvbC1rZXk9IiR7Q1NTLmVzY2FwZSh0ZSl9Il1gKTtpZighUmV8fFJlPT09UGUpcmV0dXJuO2xldCB0dD1QZS5zZWxlY3Rpb25TdGFydCxwdD1QZS5zZWxlY3Rpb25FbmQsZnQ9UGUuc2VsZWN0aW9uRGlyZWN0aW9uO1JlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e3R0IT1udWxsJiZwdCE9bnVsbCYmUmUuc2V0U2VsZWN0aW9uUmFuZ2UodHQscHQsZnR8fHZvaWQgMCl9Y2F0Y2h7fX1fX3RyYW5zZmVyRm9jdXNUb0Zsb2F0aW5nSGVhZGVyKCl7bGV0IFI9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7aWYoIVJ8fCF0aGlzLl9fZmxvYXRpbmdBY3RpdmUpcmV0dXJuO2xldCBJPXRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudDtpZighSSlyZXR1cm47bGV0IHRlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYmxlU2Nyb2xsID4gdGFibGUgPiB0aGVhZCIpO2lmKCF0ZXx8IXRlLmNvbnRhaW5zKEkpKXJldHVybjtsZXQgUGU9SS5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCFQZSlyZXR1cm47bGV0IFJlPUksdHQ9Ui5xdWVyeVNlbGVjdG9yKGBpbnB1dFtkYXRhLWNvbC1rZXk9IiR7Q1NTLmVzY2FwZShQZSl9Il1gKTtpZighdHR8fHR0PT09UmUpcmV0dXJuO2xldCBwdD1SZS5zZWxlY3Rpb25TdGFydCxmdD1SZS5zZWxlY3Rpb25FbmQsTHQ9UmUuc2VsZWN0aW9uRGlyZWN0aW9uO3R0LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e3B0IT1udWxsJiZmdCE9bnVsbCYmdHQuc2V0U2VsZWN0aW9uUmFuZ2UocHQsZnQsTHR8fHZvaWQgMCl9Y2F0Y2h7fX1fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKXtpZighdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IEk9KHRoaXMuX2xhc3RWaWV3RGF0YT8/W10pLmxlbmd0aDtpZihJPT09MCl7KHRoaXMuX192aXJ0dWFsUmFuZ2Uuc3RhcnQhPT0wfHx0aGlzLl9fdmlydHVhbFJhbmdlLmVuZCE9PTApJiYodGhpcy5fX3ZpcnR1YWxSYW5nZT17c3RhcnQ6MCxlbmQ6MH0pO3JldHVybn1sZXQgdGU9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCF0ZSlyZXR1cm47bGV0IFBlPXRlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFJlPTAsdHQ9d2luZG93LmlubmVySGVpZ2h0O2ZvcihsZXQgd3Igb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYod3IudGFyZ2V0PT09d2luZG93fHwhd3Iuc2Nyb2xsc1kpY29udGludWU7bGV0IFZjPXdyLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwkbz1nZXRDb21wdXRlZFN0eWxlKHdyLnRhcmdldCksV249cGFyc2VGbG9hdCgkby5ib3JkZXJUb3BXaWR0aCl8fDAsYjI9cGFyc2VGbG9hdCgkby5ib3JkZXJCb3R0b21XaWR0aCl8fDA7UmU9TWF0aC5tYXgoUmUsVmMudG9wK1duKSx0dD1NYXRoLm1pbih0dCxWYy5ib3R0b20tYjIpfWxldCBwdD1NYXRoLm1heCgxLHRoaXMuX19yb3dIZWlnaHQpLGZ0PXRlLnRIZWFkPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ/PzAsTHQ9UGUudG9wK2Z0LFVyPU1hdGgubWF4KDAsUmUtTHQpLEF0PU1hdGgubWF4KDAsdHQtTWF0aC5tYXgoUmUsTHQpKSxtcz1NYXRoLmZsb29yKFVyL3B0KSx1MT1NYXRoLmNlaWwoQXQvcHQpKzEsWmk9TWF0aC5tYXgoMCxtcy10aGlzLnZpcnR1YWxPdmVyc2NhbiksTzE9TWF0aC5taW4oSSxtcyt1MSt0aGlzLnZpcnR1YWxPdmVyc2Nhbik7KFppIT09dGhpcy5fX3ZpcnR1YWxSYW5nZS5zdGFydHx8TzEhPT10aGlzLl9fdmlydHVhbFJhbmdlLmVuZCkmJih0aGlzLl9fdmlydHVhbFJhbmdlPXtzdGFydDpaaSxlbmQ6TzF9KX1fX21lYXN1cmVSb3dIZWlnaHQoKXtpZighdGhpcy52aXJ0dWFsaXplZHx8dGhpcy5fX3Jvd0hlaWdodE1lYXN1cmVkKXJldHVybjtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInRib2R5Iik7aWYoIVIpcmV0dXJuO2xldCBJPUFycmF5LmZyb20oUi5yb3dzKS5maW5kKFBlPT5QZS5oYXNBdHRyaWJ1dGUoImRhdGEtcm93LWlkeCIpKTtpZighSSlyZXR1cm47bGV0IHRlPUkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O3RlPjAmJih0aGlzLl9fcm93SGVpZ2h0PXRlLHRoaXMuX19yb3dIZWlnaHRNZWFzdXJlZD0hMCl9X19zeW5jRmxvYXRpbmdIZWFkZXIoKXtsZXQgUj10aGlzLl9fZmxvYXRpbmdIZWFkZXJFbCxJPXRoaXMuX19yZWFsVGFibGVFbDtpZighUnx8IUkpcmV0dXJuO2xldCB0ZT1JLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFBlPXRoaXMuX19nZXRTdGlja0NvbnRleHQoKSxSZT1JLnRIZWFkPy5yb3dzLHR0PTA7aWYoUmUpZm9yKGxldCB3cj0wO3dyPFJlLmxlbmd0aDt3cisrKXR0Kz1SZVt3cl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O2xldCBwdD10ZS5ib3R0b20tUGUudG9wLGZ0PXRlLnRvcDxQZS50b3AmJnB0PjA7aWYoZnQhPT10aGlzLl9fZmxvYXRpbmdBY3RpdmUpe2lmKGZ0fHx0aGlzLl9fdHJhbnNmZXJGb2N1c1RvUmVhbEhlYWRlcigpLHRoaXMuX19mbG9hdGluZ0FjdGl2ZT1mdCxSLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsZnQpLCFmdCl7Ui5zdHlsZS5oZWlnaHQ9IiI7bGV0IHdyPXRoaXMuX19mbG9hdGluZ1RhYmxlRWw7d3ImJih3ci5zdHlsZS50cmFuc2Zvcm09IiIpfWlmKGZ0KXt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy5fX3RyYW5zZmVyRm9jdXNUb0Zsb2F0aW5nSGVhZGVyKCl9KTtyZXR1cm59fWlmKCFmdClyZXR1cm47bGV0IEx0PXRoaXMuX19mbG9hdGluZ1RhYmxlRWw7aWYoIUx0KXJldHVybjtMdC5zdHlsZS50YWJsZUxheW91dD1JLnN0eWxlLnRhYmxlTGF5b3V0fHwiYXV0byI7bGV0IFVyPUx0LnRIZWFkPy5yb3dzO2lmKFJlJiZVcilmb3IobGV0IHdyPTA7d3I8UmUubGVuZ3RoJiZ3cjxVci5sZW5ndGg7d3IrKyl7bGV0IFZjPVJlW3dyXS5jZWxscywkbz1Vclt3cl0uY2VsbHM7Zm9yKGxldCBXbj0wO1duPFZjLmxlbmd0aCYmV248JG8ubGVuZ3RoO1duKyspe2xldCBiMj1WY1tXbl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7JG9bV25dLnN0eWxlLndpZHRoPWAke2IyfXB4YCwkb1tXbl0uc3R5bGUubWluV2lkdGg9YCR7YjJ9cHhgLCRvW1duXS5zdHlsZS5tYXhXaWR0aD1gJHtiMn1weGB9fWxldCBBdD1NYXRoLm1heCh0ZS5sZWZ0LFBlLmxlZnQpLG1zPU1hdGgubWluKHRlLnJpZ2h0LFBlLnJpZ2h0KSx1MT1NYXRoLm1heCgwLG1zLUF0KTtSLnN0eWxlLnRvcD1gJHtQZS50b3B9cHhgLFIuc3R5bGUubGVmdD1gJHtBdH1weGAsUi5zdHlsZS53aWR0aD1gJHt1MX1weGA7bGV0IFppPU1hdGgubWluKHR0LHB0KSxPMT10dC1aaTtSLnN0eWxlLmhlaWdodD1gJHtaaX1weGAsTHQuc3R5bGUud2lkdGg9YCR7dGUud2lkdGh9cHhgLEx0LnN0eWxlLm1hcmdpbkxlZnQ9YCR7dGUubGVmdC1BdH1weGAsTHQuc3R5bGUudHJhbnNmb3JtPU8xPjA/YHRyYW5zbGF0ZVkoLSR7TzF9cHgpYDoiIn1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy50ZWFyZG93bkZsb2F0aW5nSGVhZGVyKCksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fXdpbGxVcGRhdGUoUil7aWYoUi5oYXMoImRhdGEiKSYmdGhpcy5zZWxlY3RlZERhdGFSb3cmJnRoaXMucm93S2V5KXtsZXQgVXI9dGhpcy5nZXRSb3dJZCh0aGlzLnNlbGVjdGVkRGF0YVJvdyksQXQ7Zm9yKGxldCBtcyBvZiB0aGlzLmRhdGEpaWYodGhpcy5nZXRSb3dJZChtcyk9PT1Vcil7QXQ9bXM7YnJlYWt9QXQ/QXQhPT10aGlzLnNlbGVjdGVkRGF0YVJvdyYmKHRoaXMuc2VsZWN0ZWREYXRhUm93PUF0KTp0aGlzLnNlbGVjdGVkRGF0YVJvdz12b2lkIDB9aWYodGhpcy5oaWdobGlnaHRVcGRhdGVzIT09ImZsYXNoIil7KHRoaXMuX19wcmV2U25hcHNob3R8fHRoaXMuX19mbGFzaGluZ0NlbGxzLnNpemU+MCkmJih0aGlzLl9fcHJldlNuYXBzaG90PXZvaWQgMCx0aGlzLl9fZmxhc2hpbmdDZWxscy5zaXplPjAmJih0aGlzLl9fZmxhc2hpbmdDZWxscz1uZXcgTWFwKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuX19mbGFzaENsZWFyVGltZXIpLHRoaXMuX19mbGFzaENsZWFyVGltZXI9dm9pZCAwKSk7cmV0dXJufWlmKCF0aGlzLnJvd0tleSl7dGhpcy5fX2ZsYXNoV2FybmVkTm9Sb3dLZXl8fCh0aGlzLl9fZmxhc2hXYXJuZWROb1Jvd0tleT0hMCxjb25zb2xlLndhcm4oJ1tkZWVzLXRhYmxlXSBoaWdobGlnaHRVcGRhdGVzPSJmbGFzaCIgcmVxdWlyZXMgYHJvd0tleWAgdG8gYmUgc2V0LiBGbGFzaCBpcyBkaXNhYmxlZC4gU2V0IHRoZSByb3dLZXkgcHJvcGVydHkvYXR0cmlidXRlIHRvIGEgc3RhYmxlIGlkZW50aWZpZXIgb24geW91ciByb3cgZGF0YSAoZS5nLiBgcm93S2V5PSJpZCJgKS4nKSk7cmV0dXJufWlmKCFSLmhhcygiZGF0YSIpKXJldHVybjtsZXQgdGU9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maWx0ZXIoVXI9PiFVci5oaWRkZW4pLFBlPW5ldyBNYXAodGUubWFwKFVyPT5bU3RyaW5nKFVyLmtleSksVXJdKSksUmU9bmV3IE1hcCx0dD1uZXcgTWFwO2ZvcihsZXQgVXIgb2YgdGhpcy5kYXRhKXtsZXQgQXQ9dGhpcy5nZXRSb3dJZChVciksbXM9bmV3IE1hcDtmb3IobGV0IFppIG9mIHRlKW1zLnNldChTdHJpbmcoWmkua2V5KSxzZihVcixaaSx0aGlzLmRpc3BsYXlGdW5jdGlvbikpO1JlLnNldChBdCxtcyk7bGV0IHUxPXRoaXMuX19wcmV2U25hcHNob3Q/LmdldChBdCk7aWYodTEpZm9yKGxldFtaaSxPMV1vZiBtcyl7bGV0IHdyPXUxLmdldChaaSksVmM9UGUuZ2V0KFppKSwkbztpZihWYz8uZmxhc2hDb21wYXJlPyRvPVZjLmZsYXNoQ29tcGFyZSh3cixPMSk6TzEhPW51bGwmJnR5cGVvZiBPMT09Im9iamVjdCI/JG89ITE6JG89d3IhPT1PMSwkbyl7aWYodGhpcy5fX2VkaXRpbmdDZWxsJiZ0aGlzLl9fZWRpdGluZ0NlbGwucm93SWQ9PT1BdCYmdGhpcy5fX2VkaXRpbmdDZWxsLmNvbEtleT09PVppKWNvbnRpbnVlO2xldCBXbj10dC5nZXQoQXQpO1dufHwoV249bmV3IFNldCx0dC5zZXQoQXQsV24pKSxXbi5hZGQoWmkpfX19bGV0IHB0PSEhdGhpcy5fX3ByZXZTbmFwc2hvdDtpZih0aGlzLl9fcHJldlNuYXBzaG90PVJlLCFwdHx8dHQuc2l6ZT09PTApcmV0dXJuO2xldCBmdD0rK3RoaXMuX19mbGFzaFRpY2ssTHQ9bmV3IE1hcCh0aGlzLl9fZmxhc2hpbmdDZWxscyk7Zm9yKGxldFtVcixBdF1vZiB0dCl7bGV0IG1zPW5ldyBNYXAoTHQuZ2V0KFVyKT8/W10pO2ZvcihsZXQgdTEgb2YgQXQpbXMuc2V0KHUxLGZ0KTtMdC5zZXQoVXIsbXMpfXRoaXMuX19mbGFzaGluZ0NlbGxzPUx0LHRoaXMuX19mbGFzaENsZWFyVGltZXImJmNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9fZmxhc2hpbmdDZWxscz1uZXcgTWFwLHRoaXMuX19mbGFzaENsZWFyVGltZXI9dm9pZCAwfSxNYXRoLm1heCgwLHRoaXMuaGlnaGxpZ2h0RHVyYXRpb24pKX1hc3luYyB1cGRhdGVkKFIpe3N1cGVyLnVwZGF0ZWQoUik7bGV0IEk9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSx0ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik/P251bGwsUGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaW5Sb3ciKS5sZW5ndGg7Ui5oYXMoImhpZ2hsaWdodER1cmF0aW9uIikmJnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tZGVlcy10YWJsZS1mbGFzaC1kdXJhdGlvbiIsYCR7dGhpcy5oaWdobGlnaHREdXJhdGlvbn1tc2ApO2xldCBSZT0hIXRlJiYoIXRoaXMuX19jb2x1bW5zU2l6ZWRGb3J8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3IuZWZmZWN0aXZlQ29sdW1ucyE9PUl8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3Iuc2hvd1NlbGVjdGlvbkNoZWNrYm94IT09dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3h8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3IuaW5Sb3dBY3Rpb25Db3VudCE9PVBlfHx0aGlzLl9fY29sdW1uc1NpemVkRm9yLnRhYmxlIT09dGUpO3RlJiZSZSYmKHRoaXMuX19jb2x1bW5zU2l6ZWRGb3I9e2VmZmVjdGl2ZUNvbHVtbnM6SSxzaG93U2VsZWN0aW9uQ2hlY2tib3g6dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3gsaW5Sb3dBY3Rpb25Db3VudDpQZSx0YWJsZTp0ZX0sdGhpcy5kZXRlcm1pbmVDb2x1bW5XaWR0aHMoKSx0aGlzLl9fcm93SGVpZ2h0TWVhc3VyZWQ9ITEpLHRoaXMudmlydHVhbGl6ZWQmJih0aGlzLl9fbWVhc3VyZVJvd0hlaWdodCgpLHRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCkpLChSLmhhcygiZml4ZWRIZWlnaHQiKXx8Ui5oYXMoInZpcnR1YWxpemVkIil8fFIuaGFzKCJkYXRhIil8fFIuaGFzKCJjb2x1bW5zIil8fCF0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyKSYmKCghdGhpcy5maXhlZEhlaWdodHx8dGhpcy52aXJ0dWFsaXplZCkmJnRoaXMuZGF0YS5sZW5ndGg+MD90aGlzLnNldHVwRmxvYXRpbmdIZWFkZXIoKTp0aGlzLnRlYXJkb3duRmxvYXRpbmdIZWFkZXIoKSksIXRoaXMuZml4ZWRIZWlnaHQmJnRoaXMuZGF0YS5sZW5ndGg+MCYmKHRoaXMuX19mbG9hdGluZ0FjdGl2ZXx8UmUpJiZ0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy5zZWFyY2hhYmxlJiYodGhpcy5kYXRhQWN0aW9ucy5maW5kKHB0PT5wdC50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJnB0Lm5hbWU9PT0iU2VhcmNoIil8fCh0aGlzLmRhdGFBY3Rpb25zLnVuc2hpZnQoe25hbWU6IlNlYXJjaCIsaWNvbk5hbWU6Imx1Y2lkZTpTZWFyY2giLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJvcGVuIHNlYXJjaCIpLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCIpLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIpfSwiYWN0aW9uRnVuYyIpfSksY29uc29sZS5sb2codGhpcy5kYXRhQWN0aW9ucyksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpLHRoaXMud2lyZVNlYXJjaElucHV0cygpKX1fX2RlYm91bmNlVGltZXI7ZGVib3VuY2VSdW4oUixJPTIwMCl7dGhpcy5fX2RlYm91bmNlVGltZXImJmNsZWFyVGltZW91dCh0aGlzLl9fZGVib3VuY2VUaW1lciksdGhpcy5fX2RlYm91bmNlVGltZXI9c2V0VGltZW91dChSLEkpfXdpcmVTZWFyY2hJbnB1dHMoKXtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtdGV4dCIpLEk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCBkZWVzLWlucHV0LW11bHRpdG9nZ2xlIik7UiYmIXRoaXMuX19zZWFyY2hUZXh0U3ViJiYodGhpcy5fX3NlYXJjaFRleHRTdWI9Ui5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSh0ZT0+e2xldCBQZT10ZT8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpQZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChQZSl9KX0pKSxJJiYhdGhpcy5fX3NlYXJjaE1vZGVTdWImJih0aGlzLl9fc2VhcmNoTW9kZVN1Yj1JLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKHRlPT57bGV0IFBlPXRlPy5zZWxlY3RlZE9wdGlvbnx8dGU/LnZhbHVlfHwidGFibGUiO2lmKFBlPT09InRhYmxlInx8UGU9PT0iZGF0YSJ8fFBlPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT1QZTtsZXQgUmU9Uj8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpSZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChSZSl9KX19KSl9YXN5bmMgZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IEk9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik7aWYoIUkpcmV0dXJuO2xldCB0ZT1JLnJvd3NbMF0uY2VsbHMsUGU9aShhc3luYyhSZSx0dD0hMSk9PntsZXQgcHQ9JHQuZGVmZXIoKSxmdD10ZVtSZV0sTHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZnQpLndpZHRoO2lmKGZ0LnRleHRDb250ZW50LmluY2x1ZGVzKCJBY3Rpb25zIikpe2xldCBVcj10aGlzLmRhdGFBY3Rpb25zLmZpbHRlcihBdD0+QXQudHlwZT8uaW5jbHVkZXMoImluUm93IikpLmxlbmd0aCozNjtmdC5zdHlsZS53aWR0aD1gJHtNYXRoLm1heChVciw2OCl9cHhgfWVsc2UgZnQuc3R5bGUud2lkdGg9THQ7dHQmJihyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntwdC5yZXNvbHZlKCl9KSxhd2FpdCBwdC5wcm9taXNlKX0sImhhbmRsZUNvbHVtbkJ5SW5kZXgiKTt0ZVt0ZS5sZW5ndGgtMV0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKSYmYXdhaXQgUGUodGUubGVuZ3RoLTEsITApO2ZvcihsZXQgUmU9MDtSZTx0ZS5sZW5ndGg7UmUrKyl0ZVtSZV0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKXx8YXdhaXQgUGUoUmUpO0kuc3R5bGUudGFibGVMYXlvdXQ9ImZpeGVkIn1nZXRTb3J0RGVzY3JpcHRvcihSKXtyZXR1cm4gdGhpcy5zb3J0QnkuZmluZChJPT5JLmtleT09PVIpfWdldFNvcnRQcmlvcml0eShSKXtyZXR1cm4gdGhpcy5zb3J0QnkuZmluZEluZGV4KEk9Pkkua2V5PT09Uil9c2V0U29ydChSLEkpe3RoaXMuc29ydEJ5PVt7a2V5OlIsZGlyOkl9XSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YWRkU29ydEF0KFIsSSx0ZSl7bGV0IFBlPXRoaXMuc29ydEJ5LmZpbHRlcih0dD0+dHQua2V5IT09UiksUmU9TWF0aC5tYXgoMCxNYXRoLm1pbihJLFBlLmxlbmd0aCkpO1BlLnNwbGljZShSZSwwLHtrZXk6UixkaXI6dGV9KSx0aGlzLnNvcnRCeT1QZSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kU29ydChSLEkpe2xldCB0ZT10aGlzLnNvcnRCeS5maWx0ZXIoUGU9PlBlLmtleSE9PVIpO3RlLnB1c2goe2tleTpSLGRpcjpJfSksdGhpcy5zb3J0Qnk9dGUsdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXJlbW92ZVNvcnQoUil7dGhpcy5zb3J0Qnkuc29tZShJPT5JLmtleT09PVIpJiYodGhpcy5zb3J0Qnk9dGhpcy5zb3J0QnkuZmlsdGVyKEk9Pkkua2V5IT09UiksdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1jbGVhclNvcnRzKCl7dGhpcy5zb3J0QnkubGVuZ3RoIT09MCYmKHRoaXMuc29ydEJ5PVtdLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9ZW1pdFNvcnRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzb3J0Q2hhbmdlIix7ZGV0YWlsOntzb3J0Qnk6dGhpcy5zb3J0QnkubWFwKFI9Pih7Li4uUn0pKX0sYnViYmxlczohMH0pKX1hc3luYyBoYW5kbGVIZWFkZXJDbGljayhSLEksdGUpe2lmKFIuc2hpZnRLZXkpe3RoaXMuaGFuZGxlSGVhZGVyU2hpZnRDbGljayhJKTtyZXR1cm59YXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoSSkmJnRoaXMuY3ljbGVTaW5nbGVTb3J0KEkpfWN5Y2xlU2luZ2xlU29ydChSKXtsZXQgST1TdHJpbmcoUi5rZXkpLHRlPXRoaXMuc29ydEJ5Lmxlbmd0aD09PTEmJnRoaXMuc29ydEJ5WzBdLmtleT09PUk/dGhpcy5zb3J0QnlbMF0uZGlyOm51bGw7dGU9PT0iYXNjIj90aGlzLnNldFNvcnQoSSwiZGVzYyIpOnRlPT09ImRlc2MiP3RoaXMuY2xlYXJTb3J0cygpOnRoaXMuc2V0U29ydChJLCJhc2MiKX1oYW5kbGVIZWFkZXJTaGlmdENsaWNrKFIpe2xldCBJPVN0cmluZyhSLmtleSksdGU9dGhpcy5nZXRTb3J0RGVzY3JpcHRvcihJKTt0ZT90ZS5kaXI9PT0iYXNjIj8odGhpcy5zb3J0Qnk9dGhpcy5zb3J0QnkubWFwKFBlPT5QZS5rZXk9PT1JP3trZXk6SSxkaXI6ImRlc2MifTpQZSksdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTp0aGlzLnJlbW92ZVNvcnQoSSk6dGhpcy5hcHBlbmRTb3J0KEksImFzYyIpfWNvbmZpcm1SZXBsYWNlQ2FzY2FkZShSKXtyZXR1cm4gdGhpcy5zb3J0QnkubGVuZ3RoPD0xP1Byb21pc2UucmVzb2x2ZSghMCk6bmV3IFByb21pc2UoST0+e2xldCB0ZT0hMSxQZT1pKHR0PT57dGV8fCh0ZT0hMCxJKHR0KSl9LCJzZXR0bGUiKSxSZT10aGlzLnNvcnRCeS5tYXAoKHR0LHB0KT0+e2xldCBMdD10aGlzLl9sb29rdXBDb2x1bW5CeUtleT8uKHR0LmtleSk/LmhlYWRlcj8/dHQua2V5O3JldHVybiB3YDxsaT4ke3B0KzF9LiAke0x0fSAke3R0LmRpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMifTwvbGk+YH0pO2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlJlcGxhY2UgbXVsdGktY29sdW1uIHNvcnQ/Iix3aWR0aDoic21hbGwiLHNob3dDbG9zZUJ1dHRvbjohMCxjb250ZW50OndgCiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweDsgbGluZS1oZWlnaHQ6MS41NTsiPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOjAgMCA4cHg7Ij4KICAgICAgICAgICAgICBZb3UgY3VycmVudGx5IGhhdmUgYSAke3RoaXMuc29ydEJ5Lmxlbmd0aH0tY29sdW1uIHNvcnQgYWN0aXZlOgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyBwYWRkaW5nLWxlZnQ6MThweDsiPiR7UmV9PC91bD4KICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjowOyI+CiAgICAgICAgICAgICAgQ29udGludWluZyB3aWxsIGRpc2NhcmQgdGhlIGNhc2NhZGUgYW5kIHJlcGxhY2UgaXQgd2l0aCBhIHNpbmdsZSBzb3J0IG9uCiAgICAgICAgICAgICAgPHN0cm9uZz4ke1IuaGVhZGVyPz9TdHJpbmcoUi5rZXkpfTwvc3Ryb25nPi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsaWNvbk5hbWU6Imx1Y2lkZTp4IixhY3Rpb246aShhc3luYyB0dD0+KFBlKCExKSxhd2FpdCB0dC5kZXN0cm95KCksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiUmVwbGFjZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVjayIsYWN0aW9uOmkoYXN5bmMgdHQ9PihQZSghMCksYXdhaXQgdHQuZGVzdHJveSgpLG51bGwpLCJhY3Rpb24iKX1dfSl9KX1fbG9va3VwQ29sdW1uQnlLZXkoUil7cmV0dXJuIHRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmluZCh0ZT0+U3RyaW5nKHRlLmtleSk9PT1SKX1vcGVuSGVhZGVyQ29udGV4dE1lbnUoUixJLHRlKXtsZXQgUGU9dGhpcy5idWlsZEhlYWRlck1lbnVJdGVtcyhJLHRlKTtDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhSLFBlKX1idWlsZEhlYWRlck1lbnVJdGVtcyhSLEkpe2xldCB0ZT1TdHJpbmcoUi5rZXkpLFBlPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IodGUpLFJlPXRoaXMuc29ydEJ5Lmxlbmd0aCx0dD1JLmZpbHRlcihMdD0+THQuc29ydGFibGUhPT0hMSkubGVuZ3RoLHB0PU1hdGgubWluKE1hdGgubWF4KFJlKyhQZT8wOjEpLDEpLE1hdGgubWF4KHR0LDEpKSxmdD1bXTtmdC5wdXNoKHtuYW1lOiJTb3J0IEFzY2VuZGluZyIsaWNvbk5hbWU6UmU9PT0xJiZQZT8uZGlyPT09ImFzYyI/Imx1Y2lkZTpjaGVjayI6Imx1Y2lkZTphcnJvd1VwIixhY3Rpb246aShhc3luYygpPT4oYXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoUikmJnRoaXMuc2V0U29ydCh0ZSwiYXNjIiksbnVsbCksImFjdGlvbiIpfSksZnQucHVzaCh7bmFtZToiU29ydCBEZXNjZW5kaW5nIixpY29uTmFtZTpSZT09PTEmJlBlPy5kaXI9PT0iZGVzYyI/Imx1Y2lkZTpjaGVjayI6Imx1Y2lkZTphcnJvd0Rvd24iLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShSKSYmdGhpcy5zZXRTb3J0KHRlLCJkZXNjIiksbnVsbCksImFjdGlvbiIpfSksZnQucHVzaCh7ZGl2aWRlcjohMH0pO2ZvcihsZXQgTHQ9MTtMdDw9cHQ7THQrKyl7bGV0IFVyPWNGYShMdCksQXQ9UGUmJnRoaXMuZ2V0U29ydFByaW9yaXR5KHRlKT09PUx0LTE7ZnQucHVzaCh7bmFtZTpgU2V0IGFzICR7VXJ9IHNvcnRgLGljb25OYW1lOkF0PyJsdWNpZGU6Y2hlY2siOiJsdWNpZGU6bGlzdE9yZGVyZWQiLHN1Ym1lbnU6W3tuYW1lOiJBc2NlbmRpbmciLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcCIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuYWRkU29ydEF0KHRlLEx0LTEsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IkRlc2NlbmRpbmciLGljb25OYW1lOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246aShhc3luYygpPT4odGhpcy5hZGRTb3J0QXQodGUsTHQtMSwiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSl9cmV0dXJuIGZ0LnB1c2goe2RpdmlkZXI6ITB9KSxmdC5wdXNoKHtuYW1lOiJBcHBlbmQgdG8gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixzdWJtZW51Olt7bmFtZToiQXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQodGUsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IkRlc2NlbmRpbmciLGljb25OYW1lOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246aShhc3luYygpPT4odGhpcy5hcHBlbmRTb3J0KHRlLCJkZXNjIiksbnVsbCksImFjdGlvbiIpfV19KSxQZSYmKGZ0LnB1c2goe2RpdmlkZXI6ITB9KSxmdC5wdXNoKHtuYW1lOiJSZW1vdmUgZnJvbSBzb3J0IixpY29uTmFtZToibHVjaWRlOm1pbnVzIixhY3Rpb246aShhc3luYygpPT4odGhpcy5yZW1vdmVTb3J0KHRlKSxudWxsKSwiYWN0aW9uIil9KSksUmU+MCYmKFBlfHxmdC5wdXNoKHtkaXZpZGVyOiEwfSksZnQucHVzaCh7bmFtZToiQ2xlYXIgYWxsIHNvcnRzIixpY29uTmFtZToibHVjaWRlOnRyYXNoIixhY3Rpb246aShhc3luYygpPT4odGhpcy5jbGVhclNvcnRzKCksbnVsbCksImFjdGlvbiIpfSkpLGZ0LnB1c2goe2RpdmlkZXI6ITB9KSxmdC5wdXNoKHtuYW1lOnRoaXMuc2hvd0NvbHVtbkZpbHRlcnM/IkhpZGUgY29sdW1uIGZpbHRlcnMiOiJTaG93IGNvbHVtbiBmaWx0ZXJzIixpY29uTmFtZTp0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPyJsdWNpZGU6ZmlsdGVyWCI6Imx1Y2lkZTpmaWx0ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPSF0aGlzLnNob3dDb2x1bW5GaWx0ZXJzLHRoaXMucmVxdWVzdFVwZGF0ZSgpLG51bGwpLCJhY3Rpb24iKX0pLGZ0fWdldEFyaWFTb3J0KFIpe2xldCBJPXRoaXMuc29ydEJ5WzBdO3JldHVybiFJfHxJLmtleSE9PVN0cmluZyhSLmtleSk/Im5vbmUiOkkuZGlyPT09ImFzYyI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmcifXJlbmRlclNvcnRJbmRpY2F0b3IoUil7bGV0IEk9dGhpcy5nZXRTb3J0UHJpb3JpdHkoU3RyaW5nKFIua2V5KSk7aWYoSTwwKXJldHVybiB3YGA7bGV0IFBlPXRoaXMuc29ydEJ5W0ldLmRpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMiO3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg9PT0xP3dgPHNwYW4gY2xhc3M9InNvcnRBcnJvdyI+JHtQZX08L3NwYW4+YDp3YDxzcGFuIGNsYXNzPSJzb3J0QXJyb3ciPiR7UGV9PC9zcGFuPjxzcGFuIGNsYXNzPSJzb3J0QmFkZ2UiPiR7SSsxfTwvc3Bhbj5gfXNldEZpbHRlclRleHQoUil7bGV0IEk9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1SPz8iIixJIT09dGhpcy5maWx0ZXJUZXh0JiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1zZXRDb2x1bW5GaWx0ZXIoUixJKXt0aGlzLmNvbHVtbkZpbHRlcnM9ey4uLnRoaXMuY29sdW1uRmlsdGVycyxbUl06SX0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKFIpe2lmKHRoaXMucm93S2V5KXJldHVybiB0eXBlb2YgdGhpcy5yb3dLZXk9PSJmdW5jdGlvbiI/dGhpcy5yb3dLZXkoUik6U3RyaW5nKFJbdGhpcy5yb3dLZXldKTtsZXQgST1SO3JldHVybiB0aGlzLl9yb3dJZE1hcC5oYXMoSSl8fHRoaXMuX3Jvd0lkTWFwLnNldChJLFN0cmluZygrK3RoaXMuX3Jvd0lkQ291bnRlcikpLHRoaXMuX3Jvd0lkTWFwLmdldChJKX1pc1Jvd1NlbGVjdGVkKFIpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKFIpKX10b2dnbGVSb3dTZWxlY3RlZChSKXtsZXQgST10aGlzLmdldFJvd0lkKFIpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoSSkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJih0aGlzLnNlbGVjdGVkSWRzLmhhcyhJKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShJKTp0aGlzLnNlbGVjdGVkSWRzLmFkZChJKSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9X19yZXNvbHZlUm93KFIpe2xldCBJPVIuY29tcG9zZWRQYXRoPy4oKXx8W10sdGU9bnVsbDtmb3IobGV0IHB0IG9mIEkpe2xldCBmdD1wdDtpZihmdD8udGFnTmFtZT09PSJUUiImJmZ0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4Iikpe3RlPWZ0O2JyZWFrfX1pZighdGUpcmV0dXJuIG51bGw7bGV0IFBlPU51bWJlcih0ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcm93LWlkeCIpKSx0dD0odGhpcy5fbGFzdFZpZXdEYXRhPz9bXSlbUGVdO3JldHVybiB0dD97aXRlbTp0dCxyb3dJZHg6UGV9Om51bGx9X19yZXNvbHZlQ2VsbChSKXtsZXQgST10aGlzLl9fcmVzb2x2ZVJvdyhSKTtpZighSSlyZXR1cm4gbnVsbDtsZXQgdGU9Ui5jb21wb3NlZFBhdGg/LigpfHxbXSxQZT1udWxsO2ZvcihsZXQgZnQgb2YgdGUpe2xldCBMdD1mdDtpZihMdD8udGFnTmFtZT09PSJURCImJkx0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2wta2V5Iikpe1BlPUx0O2JyZWFrfX1pZighUGUpcmV0dXJuIG51bGw7bGV0IFJlPVBlLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IikscHQ9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKGZ0PT5TdHJpbmcoZnQua2V5KT09PVJlKTtyZXR1cm4gcHQ/e2l0ZW06SS5pdGVtLHJvd0lkeDpJLnJvd0lkeCxjb2w6cHR9Om51bGx9X19pc0luQWN0aW9uc0NvbChSKXtsZXQgST1SLmNvbXBvc2VkUGF0aD8uKCl8fFtdO2ZvcihsZXQgdGUgb2YgSSlpZih0ZT8uY2xhc3NMaXN0Py5jb250YWlucygiYWN0aW9uc0NvbCIpKXJldHVybiEwO3JldHVybiExfV9faXNJbkVkaXRvcihSKXtsZXQgST1SLmNvbXBvc2VkUGF0aD8uKCl8fFtdO2ZvcihsZXQgdGUgb2YgSSl7bGV0IFBlPXRlLFJlPVBlPy50YWdOYW1lO2lmKFJlPT09IklOUFVUInx8UmU9PT0iVEVYVEFSRUEifHxQZT8uaXNDb250ZW50RWRpdGFibGV8fFJlJiZSZS5zdGFydHNXaXRoKCJERUVTLUlOUFVULSIpKXJldHVybiEwfXJldHVybiExfV9fb25UYm9keUNsaWNrPWkoUj0+e2lmKHRoaXMuX19pc0luRWRpdG9yKFIpfHx0aGlzLl9faXNJbkFjdGlvbnNDb2woUikpcmV0dXJuO2xldCBJPXRoaXMuX19yZXNvbHZlQ2VsbChSKTtpZighSSlyZXR1cm47bGV0IHRlPXRoaXMuX2xhc3RWaWV3RGF0YT8/W107KEkuY29sLmVkaXRhYmxlfHxJLmNvbC5lZGl0b3IpJiYodGhpcy5fX2ZvY3VzZWRDZWxsPXtyb3dJZDp0aGlzLmdldFJvd0lkKEkuaXRlbSksY29sS2V5OlN0cmluZyhJLmNvbC5rZXkpfSksdGhpcy5oYW5kbGVSb3dDbGljayhSLEkuaXRlbSxJLnJvd0lkeCx0ZSl9LCJfX29uVGJvZHlDbGljayIpO19fb25UYm9keURibGNsaWNrPWkoUj0+e2lmKHRoaXMuX19pc0luRWRpdG9yKFIpfHx0aGlzLl9faXNJbkFjdGlvbnNDb2woUikpcmV0dXJuO2xldCBJPXRoaXMuX19yZXNvbHZlQ2VsbChSKTtpZighSSlyZXR1cm47aWYoISEoSS5jb2wuZWRpdGFibGV8fEkuY29sLmVkaXRvcikpe1Iuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zdGFydEVkaXRpbmcoSS5pdGVtLEkuY29sKTtyZXR1cm59bGV0IFBlPXRoaXMuZGF0YUFjdGlvbnMuZmluZChSZT0+UmUudHlwZT8uaW5jbHVkZXMoImRvdWJsZUNsaWNrIikpO1BlJiZQZS5hY3Rpb25GdW5jKHtpdGVtOkkuaXRlbSx0YWJsZTp0aGlzfSl9LCJfX29uVGJvZHlEYmxjbGljayIpO19fb25UYm9keU1vdXNlZG93bj1pKFI9PntSLnNoaWZ0S2V5JiZ0aGlzLnNlbGVjdGlvbk1vZGUhPT0ic2luZ2xlIiYmUi5wcmV2ZW50RGVmYXVsdCgpfSwiX19vblRib2R5TW91c2Vkb3duIik7X19vblRib2R5Q29udGV4dG1lbnU9aShSPT57aWYodGhpcy5fX2lzSW5BY3Rpb25zQ29sKFIpKXJldHVybjtsZXQgST10aGlzLl9fcmVzb2x2ZVJvdyhSKTtpZighSSlyZXR1cm47bGV0IHRlPUkuaXRlbTt0aGlzLmlzUm93U2VsZWN0ZWQodGUpfHwodGhpcy5zZWxlY3RlZERhdGFSb3c9dGUsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQodGUpKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9dGhpcy5nZXRSb3dJZCh0ZSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpO2xldCBQZT10aGlzLmdldEFjdGlvbnNGb3JUeXBlKCJjb250ZXh0bWVudSIpLm1hcCh0dD0+KHtuYW1lOnR0Lm5hbWUsaWNvbk5hbWU6dHQuaWNvbk5hbWUsYWN0aW9uOmkoYXN5bmMoKT0+KGF3YWl0IHR0LmFjdGlvbkZ1bmMoe2l0ZW06dGUsdGFibGU6dGhpc30pLG51bGwpLCJhY3Rpb24iKX0pKSxSZT1be25hbWU6dGhpcy5zZWxlY3RlZElkcy5zaXplPjE/YENvcHkgJHt0aGlzLnNlbGVjdGVkSWRzLnNpemV9IHJvd3MgYXMgSlNPTmA6IkNvcHkgcm93IGFzIEpTT04iLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuY29weVNlbGVjdGlvbkFzSnNvbih0ZSksbnVsbCksImFjdGlvbiIpfV07Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoUixbLi4uUGUsLi4uUmVdKX0sIl9fb25UYm9keUNvbnRleHRtZW51Iik7X19vblRib2R5RHJhZ2VudGVyPWkoUj0+e2lmKFIucHJldmVudERlZmF1bHQoKSxSLnN0b3BQcm9wYWdhdGlvbigpLCF0aGlzLl9fcmVzb2x2ZVJvdyhSKSlyZXR1cm47bGV0IHRlPShSLmNvbXBvc2VkUGF0aD8uKCl8fFtdKS5maW5kKFBlPT5QZT8udGFnTmFtZT09PSJUUiIpO3RlJiZzZXRUaW1lb3V0KCgpPT50ZS5jbGFzc0xpc3QuYWRkKCJoYXNBdHRhY2htZW50IiksMCl9LCJfX29uVGJvZHlEcmFnZW50ZXIiKTtfX29uVGJvZHlEcmFnbGVhdmU9aShSPT57Ui5wcmV2ZW50RGVmYXVsdCgpLFIuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEk9KFIuY29tcG9zZWRQYXRoPy4oKXx8W10pLmZpbmQodGU9PnRlPy50YWdOYW1lPT09IlRSIik7SSYmSS5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9LCJfX29uVGJvZHlEcmFnbGVhdmUiKTtfX29uVGJvZHlEcmFnb3Zlcj1pKFI9PntSLnByZXZlbnREZWZhdWx0KCl9LCJfX29uVGJvZHlEcmFnb3ZlciIpO19fb25UYm9keURyb3A9aShhc3luYyBSPT57Ui5wcmV2ZW50RGVmYXVsdCgpO2xldCBJPXRoaXMuX19yZXNvbHZlUm93KFIpO2lmKCFJKXJldHVybjtsZXQgdGU9SS5pdGVtLFBlPVtdO2ZvcihsZXQgdHQgb2YgQXJyYXkuZnJvbShSLmRhdGFUcmFuc2Zlci5maWxlcykpdGhpcy5maWxlcy5wdXNoKHR0KSxQZS5wdXNoKHR0KSx0aGlzLnJlcXVlc3RVcGRhdGUoKTtsZXQgUmU9dGhpcy5maWxlV2Vha01hcC5nZXQodGUpO1JlP1JlLnB1c2goLi4uUGUpOnRoaXMuZmlsZVdlYWtNYXAuc2V0KHRlLFBlKX0sIl9fb25UYm9keURyb3AiKTtoYW5kbGVSb3dDbGljayhSLEksdGUsUGUpe2xldCBSZT10aGlzLmdldFJvd0lkKEkpO2lmKHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiKXt0aGlzLnNlbGVjdGVkRGF0YVJvdz1JLHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChSZSksdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkPVJlLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpO3JldHVybn1sZXQgdHQ9Ui5tZXRhS2V5fHxSLmN0cmxLZXk7aWYoUi5zaGlmdEtleSYmdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkIT09dm9pZCAwKXt3aW5kb3cuZ2V0U2VsZWN0aW9uPy4oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7bGV0IGZ0PVBlLmZpbmRJbmRleChMdD0+dGhpcy5nZXRSb3dJZChMdCk9PT10aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQpO2lmKGZ0Pj0wKXtsZXRbTHQsVXJdPWZ0PD10ZT9bZnQsdGVdOlt0ZSxmdF07dGhpcy5zZWxlY3RlZElkcy5jbGVhcigpO2ZvcihsZXQgQXQ9THQ7QXQ8PVVyO0F0KyspdGhpcy5zZWxlY3RlZElkcy5hZGQodGhpcy5nZXRSb3dJZChQZVtBdF0pKX1lbHNlIHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChSZSksdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkPVJlO3RoaXMuc2VsZWN0ZWREYXRhUm93PUl9ZWxzZSBpZih0dCl7aWYodGhpcy5zZWxlY3RlZElkcy5oYXMoUmUpKXtpZih0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShSZSksdGhpcy5zZWxlY3RlZERhdGFSb3c9PT1JKXtsZXQgTHQ9UGUuZmluZChVcj0+dGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChVcikpKTt0aGlzLnNlbGVjdGVkRGF0YVJvdz1MdH19ZWxzZSB0aGlzLnNlbGVjdGVkSWRzLmFkZChSZSksdGhpcy5zZWxlY3RlZERhdGFSb3c9STt0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UmV9ZWxzZSB0aGlzLnNlbGVjdGVkRGF0YVJvdz1JLHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChSZSksdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkPVJlO3RoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXNldFJvd1NlbGVjdGVkKFIsSSl7bGV0IHRlPXRoaXMuZ2V0Um93SWQoUik7dGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/KHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSxJJiZ0aGlzLnNlbGVjdGVkSWRzLmFkZCh0ZSkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJihJP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKHRlKTp0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZSh0ZSkpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFyZUFsbFZpc2libGVTZWxlY3RlZCgpe2xldCBSPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoUi5sZW5ndGg9PT0wKXJldHVybiExO2ZvcihsZXQgSSBvZiBSKWlmKCF0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEkpKSlyZXR1cm4hMTtyZXR1cm4hMH1pc1Zpc2libGVTZWxlY3Rpb25JbmRldGVybWluYXRlKCl7bGV0IFI9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihSLmxlbmd0aD09PTApcmV0dXJuITE7bGV0IEk9MDtmb3IobGV0IHRlIG9mIFIpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZCh0ZSkpJiZJKys7cmV0dXJuIEk+MCYmSTxSLmxlbmd0aH1zZXRTZWxlY3RWaXNpYmxlKFIpe2xldCBJPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoUilmb3IobGV0IHRlIG9mIEkpdGhpcy5zZWxlY3RlZElkcy5hZGQodGhpcy5nZXRSb3dJZCh0ZSkpO2Vsc2UgZm9yKGxldCB0ZSBvZiBJKXRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKHRoaXMuZ2V0Um93SWQodGUpKTt0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1lbWl0U2VsZWN0aW9uQ2hhbmdlKCl7bGV0IFI9QXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkSWRzKSxJPXRoaXMuZGF0YS5maWx0ZXIodGU9PnRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQodGUpKSk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZElkczpSLHNlbGVjdGVkUm93czpJfSxidWJibGVzOiEwfSkpfWdldEFjdGlvbnNGb3JUeXBlKFIpe2xldCBJPVtdO2ZvcihsZXQgdGUgb2YgdGhpcy5kYXRhQWN0aW9ucyl0ZS50eXBlPy5pbmNsdWRlcyhSKSYmSS5wdXNoKHRlKTtyZXR1cm4gSX1fX2lzQ29sdW1uRWRpdGFibGUoUil7cmV0dXJuISEoUi5lZGl0YWJsZXx8Ui5lZGl0b3IpfV9fZWRpdGFibGVDb2x1bW5zKFIpe3JldHVybiBSLmZpbHRlcihJPT4hSS5oaWRkZW4mJnRoaXMuX19pc0NvbHVtbkVkaXRhYmxlKEkpKX1zdGFydEVkaXRpbmcoUixJKXtpZighdGhpcy5fX2lzQ29sdW1uRWRpdGFibGUoSSkpcmV0dXJuO2xldCB0ZT10aGlzLmdldFJvd0lkKFIpLFBlPVN0cmluZyhJLmtleSk7dGhpcy5fX2ZvY3VzZWRDZWxsPXtyb3dJZDp0ZSxjb2xLZXk6UGV9LHRoaXMuX19lZGl0aW5nQ2VsbD17cm93SWQ6dGUsY29sS2V5OlBlfSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgUmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LCAuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC1jaGVja2JveCwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtZHJvcGRvd24sIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LXRhZ3MiKTtSZT8uZm9jdXM/LigpLFJlPy50YWdOYW1lPT09IkRFRVMtSU5QVVQtRFJPUERPV04iJiZSZS51cGRhdGVDb21wbGV0ZT8udGhlbigoKT0+UmUudG9nZ2xlU2VsZWN0aW9uQm94Py4oKSl9KX1jYW5jZWxDZWxsRWRpdCgpe3RoaXMuX19lZGl0aW5nQ2VsbD12b2lkIDAsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9Y29tbWl0Q2VsbEVkaXQoUixJLHRlKXtsZXQgUGU9U3RyaW5nKEkua2V5KSxSZT1SW0kua2V5XSx0dD1JLnBhcnNlP0kucGFyc2UodGUsUik6dGU7aWYoSS52YWxpZGF0ZSl7bGV0IHB0PUkudmFsaWRhdGUodHQsUik7aWYodHlwZW9mIHB0PT0ic3RyaW5nIil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbEVkaXRFcnJvciIse2RldGFpbDp7cm93OlIsa2V5OlBlLHZhbHVlOnR0LG1lc3NhZ2U6cHR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSk7cmV0dXJufX10dCE9PVJlJiYoUltJLmtleV09dHQsdGhpcy5fX3JlY29yZENlbGxJblNuYXBzaG90KFIsSSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbEVkaXQiLHtkZXRhaWw6e3JvdzpSLGtleTpQZSxvbGRWYWx1ZTpSZSxuZXdWYWx1ZTp0dH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSksdGhpcy5fX2VkaXRpbmdDZWxsPXZvaWQgMCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1fX3JlY29yZENlbGxJblNuYXBzaG90KFIsSSl7aWYodGhpcy5oaWdobGlnaHRVcGRhdGVzIT09ImZsYXNoInx8IXRoaXMuX19wcmV2U25hcHNob3R8fCF0aGlzLnJvd0tleSlyZXR1cm47bGV0IHRlPXRoaXMuZ2V0Um93SWQoUiksUGU9dGhpcy5fX3ByZXZTbmFwc2hvdC5nZXQodGUpO1BlfHwoUGU9bmV3IE1hcCx0aGlzLl9fcHJldlNuYXBzaG90LnNldCh0ZSxQZSkpLFBlLnNldChTdHJpbmcoSS5rZXkpLHNmKFIsSSx0aGlzLmRpc3BsYXlGdW5jdGlvbikpfXJlbmRlckNlbGxFZGl0b3IoUixJKXtsZXQgdGU9UltJLmtleV0sUGU9SS5mb3JtYXQ/SS5mb3JtYXQodGUsUik6dGUsUmU9SS5lZGl0b3I/PyJ0ZXh0Iix0dD1pKHB0PT50aGlzLmNvbW1pdENlbGxFZGl0KFIsSSxwdC52YWx1ZSksIm9uVGV4dENvbW1pdCIpO3N3aXRjaChSZSl7Y2FzZSJjaGVja2JveCI6cmV0dXJuIHdgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgIC52YWx1ZT0keyEhUGV9CiAgICAgICAgICBAbmV3VmFsdWU9JHtwdD0+e3B0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY29tbWl0Q2VsbEVkaXQoUixJLHB0LmRldGFpbCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+YDtjYXNlImRyb3Bkb3duIjp7bGV0IHB0PUkuZWRpdG9yT3B0aW9ucz8ub3B0aW9ucz8/W10sZnQ9cHQuZmluZChMdD0+THQ9PW51bGw/ITE6dHlwZW9mIEx0PT0ic3RyaW5nIj9MdD09PXRlOkx0LmtleT09PXRlfHxMdC5vcHRpb249PT10ZSk/P251bGw7cmV0dXJuIHdgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC52aW50ZWdyYXRlZD0keyEwfQogICAgICAgICAgLm9wdGlvbnM9JHtwdH0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke2Z0fQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7THQ9PntMdC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgVXI9THQuZGV0YWlsLEF0PVVyPy5vcHRpb24/P1VyPy5rZXk/P1VyO3RoaXMuY29tbWl0Q2VsbEVkaXQoUixJLEF0KX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj5gfWNhc2UiZGF0ZSI6cmV0dXJuIHdgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgLnZhbHVlPSR7UGV9CiAgICAgICAgICBAZm9jdXNvdXQ9JHtwdD0+dHQocHQudGFyZ2V0KX0KICAgICAgICAgIEBrZXlkb3duPSR7cHQ9PnRoaXMuX19oYW5kbGVFZGl0b3JLZXkocHQsUixJKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+YDtjYXNlInRhZ3MiOnJldHVybiB3YDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC52YWx1ZT0ke1BlPz9bXX0KICAgICAgICAgIEBmb2N1c291dD0ke3B0PT50dChwdC50YXJnZXQpfQogICAgICAgICAgQGtleWRvd249JHtwdD0+dGhpcy5fX2hhbmRsZUVkaXRvcktleShwdCxSLEkpfQogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz5gO2RlZmF1bHQ6cmV0dXJuIHdgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZpbnRlZ3JhdGVkPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtQZT09bnVsbD8iIjpTdHJpbmcoUGUpfQogICAgICAgICAgQGZvY3Vzb3V0PSR7cHQ9PnR0KHB0LnRhcmdldCl9CiAgICAgICAgICBAa2V5ZG93bj0ke3B0PT50aGlzLl9faGFuZGxlRWRpdG9yS2V5KHB0LFIsSSl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PmB9fV9faGFuZGxlRWRpdG9yS2V5KFIsSSx0ZSl7aWYoUi5rZXk9PT0iRXNjYXBlIilSLnByZXZlbnREZWZhdWx0KCksUi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNhbmNlbENlbGxFZGl0KCksdGhpcy5mb2N1cygpO2Vsc2UgaWYoUi5rZXk9PT0iRW50ZXIiKXtSLnByZXZlbnREZWZhdWx0KCksUi5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUGU9Ui50YXJnZXQ7dGhpcy5jb21taXRDZWxsRWRpdChJLHRlLFBlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLDEsITApfWVsc2UgaWYoUi5rZXk9PT0iVGFiIil7Ui5wcmV2ZW50RGVmYXVsdCgpLFIuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFBlPVIudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoSSx0ZSxQZS52YWx1ZSksdGhpcy5tb3ZlRm9jdXNlZENlbGwoUi5zaGlmdEtleT8tMToxLDAsITApfX1tb3ZlRm9jdXNlZENlbGwoUixJLHRlKXtsZXQgUGU9dGhpcy5fbGFzdFZpZXdEYXRhPz9bXTtpZihQZS5sZW5ndGg9PT0wKXJldHVybjtsZXQgUmU9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSx0dD10aGlzLl9fZWRpdGFibGVDb2x1bW5zKFJlKTtpZih0dC5sZW5ndGg9PT0wKXJldHVybjtsZXQgcHQ9MCxmdD0wO2lmKHRoaXMuX19mb2N1c2VkQ2VsbCYmKHB0PVBlLmZpbmRJbmRleChBdD0+dGhpcy5nZXRSb3dJZChBdCk9PT10aGlzLl9fZm9jdXNlZENlbGwucm93SWQpLGZ0PXR0LmZpbmRJbmRleChBdD0+U3RyaW5nKEF0LmtleSk9PT10aGlzLl9fZm9jdXNlZENlbGwuY29sS2V5KSxwdDwwJiYocHQ9MCksZnQ8MCYmKGZ0PTApKSxSIT09MCl7Zm9yKGZ0Kz1SO2Z0Pj10dC5sZW5ndGg7KWZ0LT10dC5sZW5ndGgscHQrPTE7Zm9yKDtmdDwwOylmdCs9dHQubGVuZ3RoLHB0LT0xfWlmKEkhPT0wJiYocHQrPUkpLHB0PDB8fHB0Pj1QZS5sZW5ndGgpe3RoaXMuY2FuY2VsQ2VsbEVkaXQoKTtyZXR1cm59bGV0IEx0PVBlW3B0XSxVcj10dFtmdF07dGhpcy5fX2ZvY3VzZWRDZWxsPXtyb3dJZDp0aGlzLmdldFJvd0lkKEx0KSxjb2xLZXk6U3RyaW5nKFVyLmtleSl9LHRlP3RoaXMuc3RhcnRFZGl0aW5nKEx0LFVyKTp0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7Z3QoYSxyKX19O3JldHVybiBvaz1hfSkoKX0pO3ZhciBuN3Q9dSgoKT0+e2U3dCgpfSk7dmFyIFBacixOWnI9dSgoKT0+e3ZlKCk7d2EoKTtQWnI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke3JlYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZm9ybS1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnN0YXR1cy1tZXNzYWdlIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgICAKICAgICAgLnN0YXR1cy1tZXNzYWdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSAzNS4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNjUuMyUpIil9OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA0MC42JSkiLCJoc2woMCA3Mi4yJSA2MC42JSkiKX07CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSxyPXQucXVlcnlTZWxlY3RvcigiLmZvcm0tb3V0cHV0Iik7ZSYmciYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChhc3luYyBzPT57bGV0IG49cy5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIsbiksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJQcm9jZXNzaW5nIHlvdXIgcmVnaXN0cmF0aW9uLi4uIiksci5pbm5lckhUTUw9YDxzdHJvbmc+U3VibWl0dGVkIERhdGE6PC9zdHJvbmc+CiR7SlNPTi5zdHJpbmdpZnkobixudWxsLDIpfWAsYXdhaXQgWHQucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksZS5zZXRTdGF0dXMoInN1Y2Nlc3MiLCJSZWdpc3RyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEiKSxhd2FpdCBYdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnJlc2V0KCksci5pbm5lckhUTUw9IjxlbT5Gb3JtIGhhcyBiZWVuIHJlc2V0PC9lbT4ifSkpLGUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duLCBkZWVzLWlucHV0LWNoZWNrYm94IikuZm9yRWFjaChzPT57cy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IiwoKT0+e2NvbnNvbGUubG9nKCJGaWVsZCBjaGFuZ2VkOiIscy5nZXRBdHRyaWJ1dGUoImtleSIpKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJDb21wbGV0ZSBGb3JtIEV4YW1wbGUiIC5kZXNjcmlwdGlvbj0iQSBjb21wcmVoZW5zaXZlIGZvcm0gd2l0aCB2YXJpb3VzIGlucHV0IHR5cGVzLCB2YWxpZGF0aW9uLCBhbmQgZm9ybSBzdWJtaXNzaW9uIGhhbmRsaW5nIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImZpcnN0TmFtZSIgCiAgICAgICAgICAgIGxhYmVsPSJGaXJzdCBOYW1lIgogICAgICAgICAgICAuaW5mb1RleHQ9JHsiWW91ciBnaXZlbiBuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9Imxhc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9Ikxhc3QgTmFtZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImVtYWlsIiAKICAgICAgICAgICAgbGFiZWw9IkVtYWlsIEFkZHJlc3MiCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJXZSB3aWxsIHVzZSB0aGlzIHRvIGNvbnRhY3QgeW91In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIGtleT0iY291bnRyeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNvdW50cnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJwYXNzd29yZCIKICAgICAgICAgICAgbGFiZWw9IlBhc3N3b3JkIgogICAgICAgICAgICBpc1Bhc3N3b3JkQm9vbAogICAgICAgICAgICAuaW5mb1RleHQ9JHsiTWluaW11bSA4IGNoYXJhY3RlcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJ0ZXJtcyIKICAgICAgICAgICAgbGFiZWw9IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJuZXdzbGV0dGVyIgogICAgICAgICAgICBsYWJlbD0iU2VuZCBtZSBwcm9tb3Rpb25hbCBlbWFpbHMiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIEFjY291bnQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1vdXRwdXQiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGNvbGxlY3RlZCBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtlJiYoY29uc29sZS5sb2coIkhvcml6b250YWwgZm9ybSBsYXlvdXQgYWN0aXZlIiksZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGE9PntsZXQgcz1hLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJGaWx0ZXIgYXBwbGllZDoiLHMpO2xldCBuPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxMDApKzE7Y29uc29sZS5sb2coYEZvdW5kICR7bn0gcmVzdWx0cyB3aXRoIGZpbHRlcnM6YCxzKX0pKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltrZXldIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0Iixhc3luYygpPT57bGV0IHM9YXdhaXQgZS5jb2xsZWN0Rm9ybURhdGEoKTtjb25zb2xlLmxvZygiTGl2ZSBmaWx0ZXIgdXBkYXRlOiIscyl9KX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAuaGVhZGluZz0iSG9yaXpvbnRhbCBGb3JtIExheW91dCIgLmRlc2NyaXB0aW9uPSJDb21wYWN0IGZvcm0gd2l0aCBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IC0gcGVyZmVjdCBmb3IgZmlsdGVycyBhbmQgcXVpY2sgZm9ybXMiPgogICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICBrZXk9InNlYXJjaCIgCiAgICAgICAgICAgIGxhYmVsPSJTZWFyY2giCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBrZXl3b3Jkcy4uLiIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJjYXRlZ29yeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3J5In0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJBbGwiLGtleToiYWxsIn0se29wdGlvbjoiUHJvZHVjdHMiLGtleToicHJvZHVjdHMifSx7b3B0aW9uOiJTZXJ2aWNlcyIsa2V5OiJzZXJ2aWNlcyJ9LHtvcHRpb246IlN1cHBvcnQiLGtleToic3VwcG9ydCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0ic29ydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNvcnQgQnkifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246Ik5ld2VzdCIsa2V5OiJuZXdlc3QifSx7b3B0aW9uOiJQb3B1bGFyIixrZXk6InBvcHVsYXIifSx7b3B0aW9uOiJQcmljZTogTG93IHRvIEhpZ2giLGtleToicHJpY2VfYXNjIn0se29wdGlvbjoiUHJpY2U6IEhpZ2ggdG8gTG93IixrZXk6InByaWNlX2Rlc2MifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9ImluU3RvY2siCiAgICAgICAgICAgIGxhYmVsPSJJbiBTdG9jayBPbmx5IgogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikscj10LnF1ZXJ5U2VsZWN0b3IoIiNzdGF0dXMtZGlzcGxheSIpO2lmKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChhc3luYyBzPT57bGV0IG49cy5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiQWR2YW5jZWQgZm9ybSBkYXRhOiIsbiksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJWYWxpZGF0aW5nIHlvdXIgaW5mb3JtYXRpb24uLi4iKSxhd2FpdCBYdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwMCksbi5pYmFuJiZuLmliYW4ubGVuZ3RoPjE1PyhlLnNldFN0YXR1cygic3VjY2VzcyIsIkFwcGxpY2F0aW9uIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhIiksciYmKHIuY2xhc3NOYW1lPSJzdGF0dXMtbWVzc2FnZSBzdWNjZXNzIixyLnRleHRDb250ZW50PSJcdTI3MTMgWW91ciBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQuIFdlIHdpbGwgY29udGFjdCB5b3Ugc29vbi4iKSk6KGUuc2V0U3RhdHVzKCJlcnJvciIsIlBsZWFzZSBjaGVjayB5b3VyIElCQU4iKSxyJiYoci5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIGVycm9yIixyLnRleHRDb250ZW50PSJcdTI3MTcgSW52YWxpZCBJQkFOIGZvcm1hdC4gUGxlYXNlIGNoZWNrIGFuZCB0cnkgYWdhaW4uIikpLGNvbnNvbGUubG9nKCJGb3JtIGRhdGEgbG9nZ2VkOiIsbil9KSk7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWZpbGV1cGxvYWQiKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscz0+e2xldCBuPXMuZGV0YWlsPy5maWxlc3x8W107Y29uc29sZS5sb2coYCR7bi5sZW5ndGh9IGZpbGUocykgc2VsZWN0ZWQgZm9yIHVwbG9hZGApfSl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJBZHZhbmNlZCBGb3JtIEZlYXR1cmVzIiAuZGVzY3JpcHRpb249IkZvcm0gd2l0aCBzcGVjaWFsaXplZCBpbnB1dCB0eXBlcyBhbmQgY29tcGxleCB2YWxpZGF0aW9uIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAKICAgICAgICAgICAga2V5PSJpYmFuIgogICAgICAgICAgICBsYWJlbD0iSUJBTiIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIGtleT0icGhvbmUiCiAgICAgICAgICAgIGxhYmVsPSJQaG9uZSBOdW1iZXIiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAga2V5PSJwcmVmZXJlbmNlcyIKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGlmaWNhdGlvbiBQcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbWFpbCIsIlNNUyIsIlB1c2giLCJJbi1BcHAiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVtYWlsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpc2VsZWN0CiAgICAgICAgICAgIGtleT0iaW50ZXJlc3RzIgogICAgICAgICAgICAubGFiZWw9JHsiQXJlYXMgb2YgSW50ZXJlc3QifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJUZWNobm9sb2d5IixrZXk6InRlY2gifSx7b3B0aW9uOiJEZXNpZ24iLGtleToiZGVzaWduIn0se29wdGlvbjoiQnVzaW5lc3MiLGtleToiYnVzaW5lc3MifSx7b3B0aW9uOiJNYXJrZXRpbmciLGtleToibWFya2V0aW5nIn0se29wdGlvbjoiU2FsZXMiLGtleToic2FsZXMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpc2VsZWN0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgIGtleT0iZG9jdW1lbnRzIgogICAgICAgICAgICAubGFiZWw9JHsiVXBsb2FkIERvY3VtZW50cyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJQREYsIERPQywgb3IgRE9DWCBmaWxlcyB1cCB0byAxME1CIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEFwcGxpY2F0aW9uPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InN0YXR1cy1kaXNwbGF5Ij48L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE9acixvN3QsUlpyLEZacixCeT11KCgpPT57dmUoKTtNcigpO1BwZSgpO0U2dCgpO3FwZSgpO0ZwKCk7UjZ0KCk7V3BlKCk7WnBlKCk7SDZ0KCk7VTZ0KCk7VzZ0KCk7RzZ0KCk7SzZ0KCk7UTZ0KCk7WDZ0KCk7SjZ0KCk7TTZlKCk7QzZlKCk7dzkoKTtuN3QoKTtOWnIoKTtPWnI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG83dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUlpyPVtJcGUsRnBlLEhwZSxLcGUsUXBlLHRmZSxyZmUsaWZlLGpwZSxVcGUsVnBlLHNmZSxuZmUsb2ZlLGxmZSxMcmUsejZlLFQ2ZV0sRlpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1mb3JtIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNGb3JtIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJob3Jpem9udGFsLWxheW91dCJ9KV0sT1pyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaG9yaXpvbnRhbExheW91dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iaG9yaXpvbnRhbExheW91dCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmhvcml6b250YWxMYXlvdXQsImdldCIpLHNldDppKChmLHApPT57Zi5ob3Jpem9udGFsTGF5b3V0PXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxPWnIobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1QWnI7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIl07bmFtZT0ibXlmb3JtIjtjaGFuZ2VTdWJqZWN0PW5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdDtyZWFkeURlZmVycmVkPWNyLnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPW83dCh0aGlzLG8sITEpO2dldCBob3Jpem9udGFsTGF5b3V0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhvcml6b250YWxMYXlvdXQoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W3JlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2hvcml6b250YWwtbGF5b3V0XSkgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTt0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCksdGhpcy51cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKTtmb3IobGV0IGYgb2YgZClmLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKGFzeW5jKCk9PntsZXQgcD1hd2FpdCB0aGlzLmNvbGxlY3RGb3JtRGF0YSgpO3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHApLGNvbnNvbGUubG9nKHApLHRoaXMudXBkYXRlUmVxdWlyZWRTdGF0dXMoKX0pO2F3YWl0IHRoaXMuYWRkQmVoYXZpb3VycygpLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9Z2V0Rm9ybUVsZW1lbnRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCIqIikpLmZpbHRlcihkPT5SWnIuaW5jbHVkZXMoZC5jb25zdHJ1Y3RvcikpfWdldFN1Ym1pdEJ1dHRvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maW5kKGQ9PmQgaW5zdGFuY2VvZiBHcGUpfWFzeW5jIHVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl7Y29uc29sZS5sb2coImNoZWNraW5nIHRoZSByZXF1aXJlZCBzdGF0dXMuIik7bGV0IGQ9ITA7Zm9yKGxldCBwIG9mIHRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCkpcC5yZXF1aXJlZCYmIXAudmFsdWUmJihkPSExKTtsZXQgZj10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2YmJihmLmRpc2FibGVkPSFkKX1hc3luYyBjb2xsZWN0Rm9ybURhdGEoKXtsZXQgZD10aGlzLmdldEZvcm1FbGVtZW50cygpLGY9e307Zm9yKGxldCBwIG9mIGQpe2lmKCFwLmtleSl7Y29uc29sZS5sb2coYGZvcm0gZWxlbWVudCB3aXRoIGxhYmVsICIke3AubGFiZWx9IiBoYXMgbm8ga2V5LiBza2lwcGluZy5gKTtjb250aW51ZX1mW3Aua2V5XT1wLnZhbHVlfXJldHVybiBmfWFzeW5jIGdhdGhlckFuZERpc3BhdGNoKCl7bGV0IGQ9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKSxmPW5ldyBDdXN0b21FdmVudCgiZm9ybURhdGEiLHtkZXRhaWw6e2RhdGE6ZH0sYnViYmxlczohMH0pO3RoaXMuZGlzcGF0Y2hFdmVudChmKSxjb25zb2xlLmxvZygiZGlzcGF0Y2hlZCBkYXRhOiIpLGNvbnNvbGUubG9nKGQpfXNldFN0YXR1cyhkLGYpe2xldCBwPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksaD10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2lmKGgpe3N3aXRjaChkKXtjYXNlIm5vcm1hbCI6aC5kaXNhYmxlZD0hMSxoLnN0YXR1cz0ibm9ybWFsIjtmb3IobGV0IG0gb2YgcCltLmRpc2FibGVkPSExO2JyZWFrO2Nhc2UicGVuZGluZyI6aC5kaXNhYmxlZD0hMCxoLnN0YXR1cz0icGVuZGluZyI7Zm9yKGxldCBtIG9mIHApbS5kaXNhYmxlZD0hMDticmVhaztjYXNlInN1Y2Nlc3MiOmguZGlzYWJsZWQ9ITAsaC5zdGF0dXM9InN1Y2Nlc3MiO2ZvcihsZXQgbSBvZiBwKW0uZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJlcnJvciI6aC5kaXNhYmxlZD0hMCxoLnN0YXR1cz0iZXJyb3IiO2ZvcihsZXQgbSBvZiBwKW0uZGlzYWJsZWQ9ITA7YnJlYWt9aC50ZXh0PWZ9fXJlc2V0KCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTtmb3IobGV0IGYgb2YgZClmLnZhbHVlPW51bGw7dGhpcy5zZXRTdGF0dXMoIm5vcm1hbCIsIlN1Ym1pdCIpfWFzeW5jIGFkZEJlaGF2aW91cnMoKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntsZXQgZj1kLnRhcmdldDtpZihSWnIuaW5jbHVkZXMoZi5jb25zdHJ1Y3RvcikmJmQua2V5PT09IkVudGVyIil7bGV0IHA9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxoPXAuaW5kZXhPZihmKTtoPHAubGVuZ3RoLTE/cFtoKzFdLmZvY3VzKCk6KGYuYmx1cigpLHRoaXMuZ2V0U3VibWl0QnV0dG9uKCk/LmZvY3VzKCkpfX0pfXVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCBmIG9mIGQpImxheW91dE1vZGUiaW4gZiYmKGYubGF5b3V0TW9kZT0iYXV0byIpfXVwZGF0ZWQoZCl7c3VwZXIudXBkYXRlZChkKSxkLmhhcygiaG9yaXpvbnRhbExheW91dCIpJiZ0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxvN3QodGhpcyxsKX1zdGF0aWN7bzd0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBCWnIsSFpyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtCeSgpO3c5KCk7RnAoKTtLcigpO0Jacj1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7cmVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAudmVydGljYWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmljb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXNuaXBwZXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgYT1yLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiB2YXJpYW50IGNsaWNrZWQ6ICR7YX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJ1dHRvbiBWYXJpYW50cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPk91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5HaG9zdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibGluayI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXIuZ2V0QXR0cmlidXRlKCJzaXplIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7YX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIEJ1dHRvbiBTaXplcyJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBzaXplcyBmb3IgZGlmZmVyZW50IGNvbnRleHRzIGFuZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIj5TbWFsbCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiPkRlZmF1bHQgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciPkxhcmdlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgLnRleHQ9JHsiXHV7MUY2ODB9In0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iIHR5cGU9InNlY29uZGFyeSI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0IiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVmYXVsdCBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciIHR5cGU9Im91dGxpbmUiPkxhcmdlIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXIucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7aWYoYSl7bGV0IHM9YS5nZXRBdHRyaWJ1dGUoImljb25GQSIpfHwidW5rbm93biI7Y29uc29sZS5sb2coYEljb24gYnV0dG9uIGNsaWNrZWQ6ICR7c31gKX19KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBCdXR0b25zIHdpdGggSWNvbnMifSAuc3VidGl0bGU9JHsiQ29tYmluaW5nIGljb25zIHdpdGggdGV4dCBmb3IgZW5oYW5jZWQgdmlzdWFsIGNvbW11bmljYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEFkZCBJdGVtCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBTZXR0aW5ncwogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRMZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQmFjawogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIE5leHQKICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgYT1yLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwibm9uZSIscz1yLmdldEF0dHJpYnV0ZSgiaWNvblBvc2l0aW9uIil8fCJsZWZ0Ijtjb25zb2xlLmxvZyhgSWNvbiBwcm9wZXJ0eSBidXR0b246IGljb249JHthfSwgcG9zaXRpb249JHtzfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gSWNvbnMgdmlhIFByb3BlcnR5In0gLnN1YnRpdGxlPSR7IlNpbXBsaWZpZWQgaWNvbiBzeW50YXggdXNpbmcgdGhlIGljb24gcHJvcGVydHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyI+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+RGVsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPkRvd25sb2FkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iIGljb249ImZhOmdlYXIiPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRMZWZ0Ij5CYWNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0IiBpY29uPSJmYTpwbHVzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSIgaWNvbj0ibHVjaWRlOlNldHRpbmdzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyImZ3Q7QWRkIEl0ZW0mbHQ7L2RlZXMtYnV0dG9uJmd0Ozxicj4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiJmd0O05leHQmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InBlbmRpbmciXScpLHI9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InN1Y2Nlc3MiXScpLGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9ImVycm9yIl0nKTtlJiZzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlBlbmRpbmcgYnV0dG9uIGlzIHNob3dpbmcgbG9hZGluZyBzdGF0ZSIpfSwxZTMpLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU3VjY2VzcyBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJ1dHRvbiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyB0byBpbmRpY2F0ZSBidXR0b24gc3RhdHVzIGFuZCBsb2FkaW5nIGNvbmRpdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ibm9ybWFsIj5Ob3JtYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0icGVuZGluZyI+UHJvY2Vzc2luZy4uLjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJzdWNjZXNzIj5TdWNjZXNzITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJlcnJvciI+RXJyb3IhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBkaXNhYmxlZD5EaXNhYmxlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJzbSI+U21hbGwgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc3RhdHVzPSJwZW5kaW5nIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzdGF0dXM9InBlbmRpbmciIHNpemU9ImxnIj5MYXJnZSBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjY2xpY2stb3V0cHV0Iikscj10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUiKSxhPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxzPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZGVzdHJ1Y3RpdmUiXScpO3ImJmUmJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntlLnRleHRDb250ZW50PWBDbGlja2VkOiBEZWZhdWx0IGJ1dHRvbiBhdCAke25ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9YH0pLGEmJmUmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsbj0+e2UudGV4dENvbnRlbnQ9YENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke24uZGV0YWlsLmRhdGF9YH0pLHMmJmUmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsYXN5bmMoKT0+e2UudGV4dENvbnRlbnQ9IlByb2Nlc3NpbmcuLi4iLGF3YWl0IFh0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUudGV4dENvbnRlbnQ9IkFjdGlvbiBjb21wbGV0ZWQhIn0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBleGFtcGxlcyB3aXRoIGNsaWNrIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiAuZXZlbnREZXRhaWxEYXRhPSR7ImN1c3RvbS1kYXRhLTEyMyJ9PgogICAgICAgICAgICBDbGljayB3aXRoIERhdGEKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkFzeW5jIEFjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iY2xpY2stb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPkNsaWNrIGEgYnV0dG9uIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSxyPXQucXVlcnlTZWxlY3RvcigiI2Zvcm0tb3V0cHV0Iik7ZSYmciYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsbj0+e3IuaW5uZXJIVE1MPSI8c3Ryb25nPkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YTo8L3N0cm9uZz48YnI+IitKU09OLnN0cmluZ2lmeShuLmRldGFpbC5kYXRhLG51bGwsMil9KTtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJykscz10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9Imdob3N0Il0nKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlNhdmUgRHJhZnQgY2xpY2tlZCIpfSkscyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJDYW5jZWwgY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTWVzc2FnZSIga2V5PSJtZXNzYWdlIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2F2ZSBEcmFmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkNhbmNlbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJmb3JtLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHI9PntsZXQgYT1yLmdldEF0dHJpYnV0ZSgidHlwZSIpO2EmJmNvbnNvbGUubG9nKGBMZWdhY3kgdHlwZSAiJHthfSIgaXMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSJ9IC5zdWJ0aXRsZT0keyJPbGQgYnV0dG9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byBuZXcgdmFyaWFudHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im5vcm1hbCI+Tm9ybWFsIOKGkiBEZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+SGlnaGxpZ2h0ZWQg4oaSIERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkaXNjcmVldCI+RGlzY3JlZXQg4oaSIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImJpZyI+QmlnIOKGkiBMYXJnZSBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsiPgogICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMF0scj10LnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzFdO2UmJmUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChzLG4pPT57cy5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBvPVsiU2F2ZSBDaGFuZ2VzIiwiRGlzY2FyZCIsIkhlbHAiXVtuXTtjb25zb2xlLmxvZyhgQWN0aW9uIGdyb3VwOiAke299IGNsaWNrZWRgKX0pfSksciYmci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKHMsbik9PntzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG89WyJEZWxldGUgQWNjb3VudCIsIkFyY2hpdmUgRGF0YSIsIk5vdCBBdmFpbGFibGUiXVtuXTtuIT09MiYmY29uc29sZS5sb2coYERhbmdlciB6b25lOiAke299IGNsaWNrZWRgKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEFkdmFuY2VkIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5BY3Rpb24gR3JvdXA8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNhdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIFNhdmUgQ2hhbmdlcwogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VW5kbzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVscENpcmNsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgSGVscAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5EYW5nZXIgWm9uZTwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIGljb249Imx1Y2lkZTpTYXZlIiBAY2xpY2tlZD0iXCR7aGFuZGxlQ2xpY2t9IiZndDs8YnI+CiAgICAgICAgICAgICZuYnNwOyZuYnNwO1NhdmUgQ2hhbmdlczxicj4KICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgQ2MsdXMscVpyLGc5PXUoKCk9Pnt2ZSgpO01yKCk7SFpyKCk7bHQoKTtDYz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHFacj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYnV0dG9uIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W107dmFyIGRlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7cmVmbGVjdDohMCxoYXNDaGFuZ2VkKCl7cmV0dXJuITB9fSldLGM9W1AoKV0scD1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6U3RyaW5nfSldLE49W1Aoe3R5cGU6U3RyaW5nfSldLE89W1Aoe3R5cGU6U3RyaW5nfSldLEI9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLEE9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sWT1bUCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxDYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InRleHQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US50ZXh0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnRleHQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbyxsKSxDYyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50RGV0YWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iZXZlbnREZXRhaWxEYXRhImluIFEsImhhcyIpLGdldDppKFE9PlEuZXZlbnREZXRhaWxEYXRhLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmV2ZW50RGV0YWlsRGF0YT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxkLGYpLENjKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImRpc2FibGVkImluIFEsImhhcyIpLGdldDppKFE9PlEuZGlzYWJsZWQsImdldCIpLHNldDppKChRLGZlKT0+e1EuZGlzYWJsZWQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0saCxtKSxDYyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSGlkZGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJpc0hpZGRlbiJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmlzSGlkZGVuLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmlzSGlkZGVuPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGIsZyksQ2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJ0eXBlImluIFEsImhhcyIpLGdldDppKFE9PlEudHlwZSwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US50eXBlPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGssTSksQ2ModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJzaXplImluIFEsImhhcyIpLGdldDppKFE9PlEuc2l6ZSwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5zaXplPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LF8sUyksQ2ModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InN0YXR1cyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnN0YXR1cywiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5zdGF0dXM9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sTCxFKSxDYyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imluc2lkZUZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Imluc2lkZUZvcm0iaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pbnNpZGVGb3JtLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmluc2lkZUZvcm09ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sQyx6KSxDYyh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Imljb24iaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pY29uLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmljb249ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxGKSxDYyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaWNvblBvc2l0aW9uImluIFEsImhhcyIpLGdldDppKFE9PlEuaWNvblBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmljb25Qb3NpdGlvbj1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxHLFopLENjKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkR9LG51bGwsciksZGU9YT1lLnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPUJacjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPXVzKHRoaXMsbyx2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoRCl7dGhpcy4jZT1EfSN0PSh1cyh0aGlzLGwpLHVzKHRoaXMsZCx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShEKXt0aGlzLiN0PUR9I3I9KHVzKHRoaXMsZiksdXModGhpcyxoLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRpc2FibGVkKEQpe3RoaXMuI3I9RH0jYT0odXModGhpcyxtKSx1cyh0aGlzLGIsITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jYX1zZXQgaXNIaWRkZW4oRCl7dGhpcy4jYT1EfSNpPSh1cyh0aGlzLGcpLHVzKHRoaXMsaywiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNpfXNldCB0eXBlKEQpe3RoaXMuI2k9RH0jcz0odXModGhpcyxNKSx1cyh0aGlzLF8sImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2l6ZShEKXt0aGlzLiNzPUR9I249KHVzKHRoaXMsUyksdXModGhpcyxMLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNufXNldCBzdGF0dXMoRCl7dGhpcy4jbj1EfSNvPSh1cyh0aGlzLEUpLHVzKHRoaXMsQywhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI299c2V0IGluc2lkZUZvcm0oRCl7dGhpcy4jbz1EfSNsPSh1cyh0aGlzLHopLHVzKHRoaXMsJCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNsfXNldCBpY29uKEQpe3RoaXMuI2w9RH0jYz0odXModGhpcyxGKSx1cyh0aGlzLEcsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNjfXNldCBpY29uUG9zaXRpb24oRCl7dGhpcy4jYz1EfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx1cyh0aGlzLFopfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvcm0gc3BhY2luZyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWFudHMgKi8KICAgICAgLmJ1dHRvbi5zaXplLWRlZmF1bHQgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtc20gewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtbGcgewogICAgICAgIGhlaWdodDogNDRweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtaWNvbiB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qIERlZmF1bHQgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMC4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVmYXVsdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERlc3RydWN0aXZlIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNjAuMiUpOwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5OCUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Ni4yJSk7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Mi4yJSk7CiAgICAgIH0KCiAgICAgIC8qIE91dGxpbmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLm91dGxpbmUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDI2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogU2Vjb25kYXJ5IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogR2hvc3QgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmdob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmdob3N0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBMaW5rIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5saW5rIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuYnV0dG9uLmxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBTdGF0dXMgc3RhdGVzICovCiAgICAgIC5idXR0b24ucGVuZGluZywKICAgICAgLmJ1dHRvbi5zdWNjZXNzLAogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7IC8qIFNwYWNlIGZvciBzcGlubmVyICovCiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbS5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtc20uc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLXNtLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZy5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtbGcuc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLWxnLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24ucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDYyLjglIDcwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgNjIuOCUgNzAuNiUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAuYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogSGlkZGVuIHN0YXRlICovCiAgICAgIC5idXR0b24uaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBGb2N1cyBzdGF0ZSAqLwogICAgICAuYnV0dG9uOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBzcGlubmVyICovCiAgICAgIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiAxNHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAKICAgICAgLyogSWNvbiBzaXppbmcgd2l0aGluIGJ1dHRvbnMgKi8KICAgICAgLmJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KCiAgICAgIC8qIFRleHQgYWxpZ25tZW50ICovCiAgICAgIC50ZXh0Ym94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICBgXTtleHRyYWN0TGlnaHREb20oKXtsZXQgRD10aGlzLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpLFE9QXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMpLmZpbHRlcihmZT0+ZmUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSkubWFwKGZlPT5mZS50ZXh0Q29udGVudD8udHJpbSgpKS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO2lmKFEmJiF0aGlzLnRleHQmJih0aGlzLnRleHQ9USksRCl7bGV0IGZlPUQuaWNvbnx8RC5nZXRBdHRyaWJ1dGUoImljb24iKXx8KEQuaWNvbkZBP2BmYToke0QuaWNvbkZBfWA6bnVsbCk7aWYoZmUpe2xldCBUPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKSxXPVQuaW5kZXhPZihEKSxwZT1ULmZpbHRlcihtZT0+bWUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmbWUudGV4dENvbnRlbnQ/LnRyaW0oKSk7aWYocGUubGVuZ3RoPjApe2xldCBtZT1ULmluZGV4T2YocGVbMF0pO3RoaXMuaWNvblBvc2l0aW9uPVc8bWU/ImxlZnQiOiJyaWdodCJ9dGhpcy5pY29uPWZlfUQucmVtb3ZlKCl9dGhpcy5pbm5lckhUTUw9IiJ9cmVuZGVyKCl7bGV0IFE9e25vcm1hbDoiZGVmYXVsdCIsaGlnaGxpZ2h0ZWQ6ImRlc3RydWN0aXZlIixkaXNjcmVldDoib3V0bGluZSIsYmlnOiJkZWZhdWx0In1bdGhpcy50eXBlXXx8dGhpcy50eXBlLGZlPXRoaXMudHlwZT09PSJiaWciPyJsZyI6dGhpcy5zaXplLFQ9dGhpcy5pY29uUG9zaXRpb249PT0ibGVmdCImJnRoaXMuaWNvbj93YDxkZWVzLWljb24gLmljb249JHt0aGlzLmljb259PjwvZGVlcy1pY29uPmA6IiIsVz10aGlzLmljb25Qb3NpdGlvbj09PSJyaWdodCImJnRoaXMuaWNvbj93YDxkZWVzLWljb24gLmljb249JHt0aGlzLmljb259PjwvZGVlcy1pY29uPmA6IiIscGU9ZmU9PT0iaWNvbiImJnRoaXMuaWNvbjtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJidXR0b24gJHt0aGlzLmlzSGlkZGVuPyJoaWRkZW4iOiIifSAke1F9IHNpemUtJHtmZX0gJHt0aGlzLnN0YXR1c30gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHt0aGlzLmRpc3BhdGNoQ2xpY2t9IgogICAgICA+CiAgICAgICAgJHt0aGlzLnN0YXR1cz09PSJub3JtYWwiP3dgYDp3YAogICAgICAgICAgPGRlZXMtc3Bpbm5lcgogICAgICAgICAgICAuYm53PSR7ITB9CiAgICAgICAgICAgIHN0YXR1cz0iJHt0aGlzLnN0YXR1c30iCiAgICAgICAgICAgIHNpemU9IiR7ZmU9PT0ic20iPzE0OmZlPT09ImxnIj8xODoxNn0iCiAgICAgICAgICA+PC9kZWVzLXNwaW5uZXI+CiAgICAgICAgYH0KICAgICAgICAke1R9CiAgICAgICAgJHtwZT8iIjp3YDxkaXYgY2xhc3M9InRleHRib3giPiR7dGhpcy50ZXh0fHwiQnV0dG9uIn08L2Rpdj5gfQogICAgICAgICR7V30KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc3BhdGNoQ2xpY2soKXt0aGlzLmRpc2FibGVkfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIix7ZGV0YWlsOntkYXRhOnRoaXMuZXZlbnREZXRhaWxEYXRhfSxidWJibGVzOiEwfSkpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuZXh0cmFjdExpZ2h0RG9tKCl9c3RhdGlje3VzKGEscil9fTtyZXR1cm4gZGU9YX0pKCl9KTt2YXIgbmYsWW8sVlpyLEw2ZT11KCgpPT57a2pyKCk7dm4oKTtfcygpO3ZlKCk7S3IoKTtzcygpO2c5KCk7bHQoKTtucygpO25mPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxZbz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sVlpyPSgoKT0+e2xldCB0PVtnQWUoKSx1ZSgiZGVlcy1zdGF0c2dyaWQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1N0YXRzR3JpZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6QXJyYXl9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1bUCh7dHlwZTpOdW1iZXJ9KV0sdj1bUCh7dHlwZTpBcnJheX0pXSx5PVtpZSgpXSxOPVtpZSgpXSxPPVtpZSgpXSxuZih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0aWxlcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRpbGVzLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGlsZXM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLG5mKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluVGlsZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJtaW5UaWxlV2lkdGgiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5taW5UaWxlV2lkdGgsImdldCIpLHNldDppKCh6LEEpPT57ei5taW5UaWxlV2lkdGg9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLG5mKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2FwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJnYXAiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5nYXAsImdldCIpLHNldDppKCh6LEEpPT57ei5nYXA9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLG5mKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JpZEFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImdyaWRBY3Rpb25zImluIHosImhhcyIpLGdldDppKHo9PnouZ3JpZEFjdGlvbnMsImdldCIpLHNldDppKCh6LEEpPT57ei5ncmlkQWN0aW9ucz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksbmYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImNvbnRleHRNZW51VmlzaWJsZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNvbnRleHRNZW51VmlzaWJsZSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmNvbnRleHRNZW51VmlzaWJsZT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksbmYodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjb250ZXh0TWVudVBvc2l0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouY29udGV4dE1lbnVQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmNvbnRleHRNZW51UG9zaXRpb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxfLFMpLG5mKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjb250ZXh0TWVudUFjdGlvbnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jb250ZXh0TWVudUFjdGlvbnMsImdldCIpLHNldDppKCh6LEEpPT57ei5jb250ZXh0TWVudUFjdGlvbnM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLG5mKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89d2pyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9WW8odGhpcyxvLFtdKTtnZXQgdGlsZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGlsZXMoQyl7dGhpcy4jZT1DfSN0PShZbyh0aGlzLGwpLFlvKHRoaXMsZCwyNTApKTtnZXQgbWluVGlsZVdpZHRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblRpbGVXaWR0aChDKXt0aGlzLiN0PUN9I3I9KFlvKHRoaXMsZiksWW8odGhpcyxoLDE2KSk7Z2V0IGdhcCgpe3JldHVybiB0aGlzLiNyfXNldCBnYXAoQyl7dGhpcy4jcj1DfSNhPShZbyh0aGlzLG0pLFlvKHRoaXMsYixbXSkpO2dldCBncmlkQWN0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBncmlkQWN0aW9ucyhDKXt0aGlzLiNhPUN9I2k9KFlvKHRoaXMsZyksWW8odGhpcyxrLCExKSk7Z2V0IGNvbnRleHRNZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBjb250ZXh0TWVudVZpc2libGUoQyl7dGhpcy4jaT1DfSNzPShZbyh0aGlzLE0pLFlvKHRoaXMsXyx7eDowLHk6MH0pKTtnZXQgY29udGV4dE1lbnVQb3NpdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBjb250ZXh0TWVudVBvc2l0aW9uKEMpe3RoaXMuI3M9Q30jbj0oWW8odGhpcyxTKSxZbyh0aGlzLEwsW10pKTtnZXQgY29udGV4dE1lbnVBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbnRleHRNZW51QWN0aW9ucyhDKXt0aGlzLiNuPUN9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICB9CgogICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHNpemluZyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1ncmlkLWdhcDogMTJweDsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTZweDsKICAgICAgICAtLWhlYWRlci1zcGFjaW5nOiAxMnB4OwogICAgICAgIC0tY29udGVudC1taW4taGVpZ2h0OiA0MHB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyNnB4OwogICAgICAgIC0tdW5pdC1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1sYWJlbC1mb250LXNpemU6IDEycHg7CiAgICAgICAgLS10aXRsZS1mb250LXNpemU6IDEzcHg7CiAgICAgICAgLS1kZXNjcmlwdGlvbi1zcGFjaW5nOiA4cHg7CiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsKICAgICAgfQoKICAgICAgLyogR3JpZCBMYXlvdXQgKi8KICAgICAgLmdyaWQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ3JpZC1nYXApICogMS41KTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JpZC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICB9CgogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7R3IoMjUwKX1weCwgMWZyKSk7CiAgICAgICAgZ2FwOiAke0dyKDE2KX1weDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogVGlsZSBCYXNlIFN0eWxlcyDigJQgZnJhbWUgcHJvdmlkZWQgYnkgZGVlcy10aWxlLCBob3ZlciB2aWEgOjpwYXJ0ICovCiAgICAgIC5zdGF0cy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAke3guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAzKSIsInJnYmEoMCwwLDAsMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgSGVhZGVyIOKAlCBzbG90dGVkIGludG8gZGVlcy10aWxlIGhlYWRlciAqLwogICAgICAudGlsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGl0bGUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAudGlsZS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUaWxlIENvbnRlbnQg4oCUIHNsb3R0ZWQgaW50byBkZWVzLXRpbGUgY29udGVudCBhcmVhICovCiAgICAgIC50aWxlLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRlbnQtbWluLWhlaWdodCk7CiAgICAgIH0KCiAgICAgIC50aWxlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudGlsZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudGlsZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIEdhdWdlIFN0eWxlcyAqLwogICAgICAuZ2F1Z2Utd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuZ2F1Z2UtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTIwcHg7CiAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4OwogICAgICB9CgogICAgICAuZ2F1Z2Utc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1iYWNrZ3JvdW5kIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2OwogICAgICB9CgogICAgICAuZ2F1Z2UtZmlsbCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdhdWdlLXRleHQgewogICAgICAgIGZpbGw6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtIcn07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbmNob3I6IG1pZGRsZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5nYXVnZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmaWxsOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICB9CgogICAgICAvKiBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAucGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAvKiBNdWx0aSBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAubXVsdGktcGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLyogQ1BVIENvcmVzIFN0eWxlcyAqLwogICAgICAuY3B1LWNvcmVzLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGdhcDogM3B4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1iYXJzLmNlbnRlcmVkIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiA2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci13cmFwcGVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubG93IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLm1lZGl1bSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZyk7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5oaWdoIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogUGFydGl0aW9uIFN0eWxlcyAqLwogICAgICAucGFydGl0aW9uLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tcGVyY2VudGFnZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXdhcm5pbmcpOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1maWxlc3lzdGVtIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbW91bnRwb2ludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNrIFN0eWxlcyAqLwogICAgICAuZGlzay13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpc2stY2FwYWNpdHkgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5kaXNrLW1vZGVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZGlzay10eXBlLWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmRpc2stbWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC5nb29kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgODQuMiUgNjAuMiUpIil9OwogICAgICB9CgogICAgICAvKiBUcmVuZCBTdHlsZXMgKi8KICAgICAgLnRyZW5kLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50cmVuZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudHJlbmQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudHJlbmQtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtZ3JhcGggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnRyZW5kLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudHJlbmQtbGluZSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgIH0KCiAgICAgIC50cmVuZC1hcmVhIHsKICAgICAgICBmaWxsOiAke3guYmRUaGVtZSgicmdiYSgxNTAsIDE1MCwgMTUwLCAwLjA4KSIsInJnYmEoMTAwLCAxMDAsIDEwMCwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRleHQgVmFsdWUgU3R5bGVzICovCiAgICAgIC50ZXh0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAvKiBDb250ZXh0IE1lbnUgKi8KICAgICAgZGVlcy1jb250ZXh0bWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGAseC5jc3NGb3JUYWJsZXQocmVgCiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOwogICAgICB9CiAgICBgLGEpLHguY3NzRm9yUGhhYmxldChyZWAKICAgICAgOmhvc3QgewogICAgICAgIC0tdGlsZS1wYWRkaW5nOiAxMnB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyMnB4OwogICAgICAgIC0tdGl0bGUtZm9udC1zaXplOiAxMnB4OwogICAgICAgIC0tZ3JpZC1nYXA6IDhweDsKICAgICAgfQogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLXRpbGUgewogICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgIWltcG9ydGFudDsKICAgICAgfQogICAgYCxhKSx4LmNzc0ZvclBob25lKHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgLS10aWxlLXBhZGRpbmc6IDEwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDIwcHg7CiAgICAgICAgLS1oZWFkZXItc3BhY2luZzogOHB4OwogICAgICB9CiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQogICAgYCxhKV07Y29uc3RydWN0b3IoKXtzdXBlcigpLFlvKHRoaXMsRSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtdGl0bGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1hY3Rpb25zIj4KICAgICAgICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLm1hcChDPT53YAogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiAKICAgICAgICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuaGFuZGxlR3JpZEFjdGlvbihDKX0KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBzaXplPSJzbSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke0MuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSR7Qy5pY29uTmFtZX0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke0MubmFtZX0KICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHt0aGlzLm1pblRpbGVXaWR0aH1weCwgMWZyKSk7IGdhcDogJHt0aGlzLmdhcH1weDsiPgogICAgICAgICR7dGhpcy50aWxlcy5tYXAoQz0+dGhpcy5yZW5kZXJUaWxlKEMpKX0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY29udGV4dE1lbnVWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtY29udGV4dG1lbnUKICAgICAgICAgIC54PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnh9CiAgICAgICAgICAueT0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55fQogICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuY29udGV4dE1lbnVBY3Rpb25zfQogICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITF9CiAgICAgICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyVGlsZShDKXtsZXQgej1DLmFjdGlvbnMmJkMuYWN0aW9ucy5sZW5ndGg+MCxBPXomJkMuYWN0aW9ucy5sZW5ndGg9PT0xLCQ9Qy5jb2x1bW5TcGFuJiZDLmNvbHVtblNwYW4+MT9DLmNvbHVtblNwYW46dm9pZCAwO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlCiAgICAgICAgY2xhc3M9InN0YXRzLXRpbGUgJHtBPyJjbGlja2FibGUiOiIifSIKICAgICAgICBzdHlsZT0iJHskP2BncmlkLWNvbHVtbjogc3BhbiAkeyR9YDoiIn0iCiAgICAgICAgQGNsaWNrPSR7QT8oKT0+dGhpcy5oYW5kbGVUaWxlQWN0aW9uKEMuYWN0aW9uc1swXSxDKTp2b2lkIDB9CiAgICAgICAgQGNvbnRleHRtZW51PSR7ej9GPT50aGlzLnNob3dDb250ZXh0TWVudShGLEMpOnZvaWQgMH0KICAgICAgPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGlsZS1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJ0aWxlLXRpdGxlIj4ke0MudGl0bGV9PC9oMz4KICAgICAgICAgICR7Qy5pY29uP3dgCiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InRpbGUtaWNvbiIgLmljb249JHtDLmljb259IHNpemU9InNtYWxsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoQyl9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7Qy5kZXNjcmlwdGlvbiYmQy50eXBlIT09InRyZW5kIj93YAogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJ0aWxlLWRlc2NyaXB0aW9uIj4ke0MuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlclRpbGVDb250ZW50KEMpe3N3aXRjaChDLnR5cGUpe2Nhc2UibnVtYmVyIjpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiIHN0eWxlPSIke0MuY29sb3I/YGNvbG9yOiAke0MuY29sb3J9YDoiIn0iPgogICAgICAgICAgICA8c3Bhbj4ke0MudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAke0MudW5pdD93YDxzcGFuIGNsYXNzPSJ0aWxlLXVuaXQiPiR7Qy51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImdhdWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJHYXVnZShDKTtjYXNlInBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlclBlcmNlbnRhZ2UoQyk7Y2FzZSJ0cmVuZCI6cmV0dXJuIHRoaXMucmVuZGVyVHJlbmQoQyk7Y2FzZSJtdWx0aVBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlck11bHRpUGVyY2VudGFnZShDKTtjYXNlImNwdUNvcmVzIjpyZXR1cm4gdGhpcy5yZW5kZXJDcHVDb3JlcyhDKTtjYXNlInBhcnRpdGlvbiI6cmV0dXJuIHRoaXMucmVuZGVyUGFydGl0aW9uKEMpO2Nhc2UiZGlzayI6cmV0dXJuIHRoaXMucmVuZGVyRGlzayhDKTtjYXNlInRleHQiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC12YWx1ZSIgc3R5bGU9IiR7Qy5jb2xvcj9gY29sb3I6ICR7Qy5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgICR7Qy52YWx1ZX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YH19cmVuZGVyR2F1Z2UoQyl7bGV0IHo9dHlwZW9mIEMudmFsdWU9PSJudW1iZXIiP0MudmFsdWU6cGFyc2VGbG9hdChDLnZhbHVlKSxBPUMuZ2F1Z2VPcHRpb25zfHx7bWluOjAsbWF4OjEwMH0sJD0oei1BLm1pbikvKEEubWF4LUEubWluKSoxMDAsRj0xMjAsWT03MCxaPTYvMisyLGRlPTQwLEQ9Ri8yLFE9WS1aLGZlPUQtZGUsVD1RLFc9RCtkZSxtZT1gTSAke2ZlfSAke1R9IEEgJHtkZX0gJHtkZX0gMCAwIDEgJHtXfSAke1F9YCxxPU1hdGguUEkqZGUsSD1xLXEqJC8xMDAsVT1DLmNvbG9yfHx4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjguOCUpIiwiaHNsKDIxMCA0MCUgNzglKSIpO2lmKEEudGhyZXNob2xkcyl7bGV0IGo9Wy4uLkEudGhyZXNob2xkc10uc29ydCgoYWUsWCk9PlgudmFsdWUtYWUudmFsdWUpO2ZvcihsZXQgYWUgb2YgailpZih6Pj1hZS52YWx1ZSl7VT1hZS5jb2xvcjticmVha319cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdhdWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImdhdWdlLWNvbnRhaW5lciI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJnYXVnZS1zdmciIHZpZXdCb3g9IjAgMCAke0Z9ICR7WX0iIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgogICAgICAgICAgICA8IS0tIEJhY2tncm91bmQgYXJjIC0tPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgIGNsYXNzPSJnYXVnZS1iYWNrZ3JvdW5kIgogICAgICAgICAgICAgIGQ9IiR7bWV9IgogICAgICAgICAgICAvPgogICAgICAgICAgICA8IS0tIEZpbGxlZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWZpbGwiCiAgICAgICAgICAgICAgZD0iJHttZX0iCiAgICAgICAgICAgICAgc3Ryb2tlPSIke1V9IgogICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IiR7cX0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9IiR7SH0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gVmFsdWUgdGV4dCAtLT4KICAgICAgICAgICAgPHRleHQgY2xhc3M9ImdhdWdlLXRleHQiIHg9IiR7RH0iIHk9IiR7US04fSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSI+CiAgICAgICAgICAgICAgPHRzcGFuPiR7en08L3RzcGFuPiR7Qy51bml0P3dgPHRzcGFuIGNsYXNzPSJnYXVnZS11bml0IiBkeD0iMiIgZHk9IjAiPiR7Qy51bml0fTwvdHNwYW4+YDoiIn0KICAgICAgICAgICAgPC90ZXh0PgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQZXJjZW50YWdlKEMpe2xldCB6PXR5cGVvZiBDLnZhbHVlPT0ibnVtYmVyIj9DLnZhbHVlOnBhcnNlRmxvYXQoQy52YWx1ZSksQT1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCx6KSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS12YWx1ZSI+JHtBfSU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLWJhciI+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0icGVyY2VudGFnZS1maWxsIiAKICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke0F9JTsgJHtDLmNvbG9yP2BiYWNrZ3JvdW5kOiAke0MuY29sb3J9YDoiIn0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUcmVuZChDKXtpZighQy50cmVuZERhdGF8fEMudHJlbmREYXRhLmxlbmd0aDwyKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gO2xldCB6PUMudHJlbmREYXRhLEE9TWF0aC5tYXgoLi4ueiksJD1NYXRoLm1pbiguLi56KSxGPUEtJHx8MSxZPTMwMCxHPTMyLFo9MixkZT16Lm1hcCgoUSxmZSk9PntsZXQgVD1mZS8oei5sZW5ndGgtMSkqWSxXPVorKEctMipaKS0oUS0kKS9GKihHLTIqWik7cmV0dXJuYCR7VH0sJHtXfWB9KS5qb2luKCIgIiksRD1gMCwke0d9ICR7ZGV9ICR7WX0sJHtHfWA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0cmVuZC12YWx1ZSI+JHtDLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICR7Qy51bml0P3dgPHNwYW4gY2xhc3M9InRyZW5kLXVuaXQiPiR7Qy51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgJHtDLmRlc2NyaXB0aW9uP3dgPHNwYW4gY2xhc3M9InRyZW5kLWxhYmVsIj4ke0MuZGVzY3JpcHRpb259PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtZ3JhcGgiPgogICAgICAgICAgPHN2ZyBjbGFzcz0idHJlbmQtc3ZnIiB2aWV3Qm94PSIwIDAgJHtZfSAke0d9IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj4KICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9InRyZW5kLWFyZWEiIHBvaW50cz0iJHtEfSIgLz4KICAgICAgICAgICAgPHBvbHlsaW5lIGNsYXNzPSJ0cmVuZC1saW5lIiBwb2ludHM9IiR7ZGV9IiAvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNdWx0aVBlcmNlbnRhZ2UoQyl7aWYoIUMucGVyY2VudGFnZXN8fEMucGVyY2VudGFnZXMubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YDtsZXQgej1DLnBlcmNlbnRhZ2VzLnNsaWNlKDAsMyk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtcyI+CiAgICAgICAgICAke3oubWFwKEE9PntsZXQgJD1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxBLnZhbHVlKSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtbGFiZWwiPiR7QS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLXZhbHVlIj4keyR9JTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtZmlsbCIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7JH0lOyAke0EuY29sb3I/YGJhY2tncm91bmQ6ICR7QS5jb2xvcn1gOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNwdUNvcmVzKEMpe2lmKCFDLmNvcmVzRGF0YXx8Qy5jb3Jlc0RhdGEubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YDtsZXQgej1DLmNvcmVzRGF0YSxBPU1hdGgucm91bmQoei5yZWR1Y2UoKGRlLEQpPT5kZStELnVzYWdlLDApL3oubGVuZ3RoKSwkPWkoZGU9PmRlPDUwPyJsb3ciOmRlPDgwPyJtZWRpdW0iOiJoaWdoIiwiZ2V0Q29sb3JDbGFzcyIpLEY9ei5sZW5ndGgqMjQrKHoubGVuZ3RoLTEpKjMsWT1DLmNvbHVtblNwYW58fDEsRz10aGlzLm1pblRpbGVXaWR0aCpZKyhZLTEpKnRoaXMuZ2FwLTMyLFo9RjxHKi42NjY7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3Jlcy13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZXMtdmFsdWUiPiR7QX08L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXVuaXQiPiU8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLWxhYmVsIj4ke3oubGVuZ3RofSBjb3Jlczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtYmFycyAke1o/ImNlbnRlcmVkIjoiIn0iPgogICAgICAgICAgJHt6Lm1hcChkZT0+e2xldCBEPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLGRlLnVzYWdlKSksUT0kKEQpO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3JlLWJhci1jb250YWluZXIiIHRpdGxlPSJDb3JlICR7ZGUubGFiZWx8fGRlLmlkfTogJHtEfSUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNwdS1jb3JlLWJhci1maWxsICR7UX0iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHtEfSUiCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHt6Lmxlbmd0aDw9MTY/d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3JlLWxhYmVsIj4ke2RlLmxhYmVsfHxkZS5pZH08L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXRCeXRlcyhDKXtpZihDPT09MClyZXR1cm4iMCBCIjtsZXQgej0xMDI0LEE9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiLCJQQiJdLCQ9TWF0aC5mbG9vcihNYXRoLmxvZyhDKS9NYXRoLmxvZyh6KSk7cmV0dXJuIHBhcnNlRmxvYXQoKEMvTWF0aC5wb3coeiwkKSkudG9GaXhlZCgxKSkrIiAiK0FbJF19cmVuZGVyUGFydGl0aW9uKEMpe2lmKCFDLnBhcnRpdGlvbkRhdGEpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtDLnZhbHVlfTwvZGl2PmA7bGV0e3VzZWQ6eix0b3RhbDpBLGZpbGVzeXN0ZW06JCxtb3VudFBvaW50OkZ9PUMucGFydGl0aW9uRGF0YSxZPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLHovQSoxMDApKSxHPUEteixaPWkoKCk9Plk+PTkwPyJjcml0aWNhbCI6WT49NzU/Indhcm5pbmciOiIiLCJnZXRDb2xvckNsYXNzIik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24taGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tcGVyY2VudGFnZSI+JHtNYXRoLnJvdW5kKFkpfSU8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLWJhciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJwYXJ0aXRpb24tYmFyLWZpbGwgJHtaKCl9IgogICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7WX0lIgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0cyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+VXNlZDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoeil9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+RnJlZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoRyl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1maWxlc3lzdGVtIj4keyR9PC9zcGFuPgogICAgICAgICAgJHtGP3dgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1tb3VudHBvaW50Ij4ke0Z9PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEaXNrKEMpe2lmKCFDLmRpc2tEYXRhKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gO2xldHtjYXBhY2l0eTp6LG1vZGVsOkEsdHlwZTokLGlvcHM6RixoZWFsdGg6WX09Qy5kaXNrRGF0YSxHPWkoWj0+Wj49NzA/Imdvb2QiOlo+PTMwPyJ3YXJuaW5nIjoiY3JpdGljYWwiLCJnZXRIZWFsdGhDbGFzcyIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaXNrLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stY2FwYWNpdHkiPiR7dGhpcy5mb3JtYXRCeXRlcyh6KX08L2Rpdj4KICAgICAgICAke0F8fCQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbW9kZWwiPgogICAgICAgICAgICAke0E/d2A8c3Bhbj4ke0F9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICR7JD93YDxzcGFuIGNsYXNzPSJkaXNrLXR5cGUtYmFkZ2UiPiR7JH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1tZXRyaWNzIj4KICAgICAgICAgICR7Rj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtbGFiZWwiPlJlYWQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4ke0YucmVhZC50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5Xcml0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtdmFsdWUiPiR7Ri53cml0ZS50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHtZIT09dm9pZCAwP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLWxhYmVsIj5IZWFsdGg8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1oZWFsdGgtdmFsdWUiPiR7WX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNrLWhlYWx0aC1maWxsICR7RyhZKX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtZfSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUdyaWRBY3Rpb24oQyl7Qy5hY3Rpb24mJmF3YWl0IEMuYWN0aW9uKCl9YXN5bmMgaGFuZGxlVGlsZUFjdGlvbihDLHope0MuYWN0aW9uJiZhd2FpdCBDLmFjdGlvbigpfXNob3dDb250ZXh0TWVudShDLHope2lmKCF6LmFjdGlvbnN8fHouYWN0aW9ucy5sZW5ndGg9PT0wKXJldHVybjtDLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uPXt4OkMuY2xpZW50WCx5OkMuY2xpZW50WX0sdGhpcy5jb250ZXh0TWVudUFjdGlvbnM9ei5hY3Rpb25zLHRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSEwO2xldCBBPWkoKCk9Pnt0aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsQSl9LCJjbG9zZUhhbmRsZXIiKTtzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEEpfSwxMDApfXN0YXRpY3tZbyhhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgZWcsa2QsQWYxLEVmMSxJZjEsUGYxLGpacixVWnI9dSgoKT0+e3ZlKCk7d2EoKTtMNmUoKTtlZz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sa2Q9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEFmMT0oKCk9PntsZXQgdD1bdWUoImRlbW8tZGFzaGJvYXJkLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb0Rhc2hib2FyZFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxlZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2YXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iYWN0aXZhdGVkImluIGYsImhhcyIpLGdldDppKGY9PmYuYWN0aXZhdGVkLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuYWN0aXZhdGVkPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxlZyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pLGtkKGEscil9I2U9a2QodGhpcyxvLCExKTtnZXQgYWN0aXZhdGVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFjdGl2YXRlZChkKXt0aGlzLiNlPWR9Y3R4PWtkKHRoaXMsbCk7c3RhdHNUaWxlcz1be2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6MTIzNCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246Ik9ubGluZSBub3ciLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJhcGktY2FsbHMiLHRpdGxlOiJBUEkgQ2FsbHMiLHZhbHVlOjQ1MjAwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLGRlc2NyaXB0aW9uOiIrMTIlIGZyb20gbGFzdCBob3VyIixjb2xvcjoiIzNiODJmNiIsdHJlbmREYXRhOlszMmUzLDM1ZTMsMzhlMyw0MWUzLDM5ZTMsNDJlMyw0NTIwMF19LHtpZDoiaGVhbHRoIix0aXRsZToiU3lzdGVtIEhlYWx0aCIsdmFsdWU6OTkuOSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmhlYXJ0LXB1bHNlIixkZXNjcmlwdGlvbjoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjk1LGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UiLHZhbHVlOjEyNyx1bml0OiJtcyIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dGltZXIiLGRlc2NyaXB0aW9uOiItMTVtcyBmcm9tIHllc3RlcmRheSIsY29sb3I6IiM4YjVjZjYifSx7aWQ6InJlc291cmNlcyIsdGl0bGU6IlJlc291cmNlIFVzYWdlIix2YWx1ZToiIix0eXBlOiJtdWx0aVBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHBlcmNlbnRhZ2VzOlt7bGFiZWw6IkNQVSIsdmFsdWU6NjcsY29sb3I6IiMzYjgyZjYifSx7bGFiZWw6Ik1lbW9yeSIsdmFsdWU6ODQsY29sb3I6IiM4YjVjZjYifSx7bGFiZWw6IkRpc2siLHZhbHVlOjQ1LGNvbG9yOiIjMTBiOTgxIn1dfSx7aWQ6InJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZToxODUwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6emFwIixkZXNjcmlwdGlvbjoiQ3VycmVudCB0aHJvdWdocHV0Iixjb2xvcjoiIzA2YjZkNCIsdHJlbmREYXRhOlsxMjAwLDE0MDAsMTM1MCwxNjAwLDE3NTAsMTY4MCwxODUwXX1dO29uQWN0aXZhdGUoZCl7dGhpcy5jdHg9ZCx0aGlzLmFjdGl2YXRlZD0hMCxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGFjdGl2YXRlZCB3aXRoIGNvbnRleHQ6IixkKSxkLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWNjZXNzIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibGF5b3V0RGFzaGJvYXJkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJSZWNlbnQiLGljb25OYW1lOiJjbG9jayIsYmFkZ2U6NSxhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlY2VudCIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2ggRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT5hbGVydCgiUmVmcmVzaGluZyBkYXNoYm9hcmQgZGF0YS4uLiIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiVGltZSBSYW5nZSJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnJhZGlvIixhY3RpdmU6ITAsb25Ub2dnbGU6aShmPT5jb25zb2xlLmxvZygiTGl2ZSB1cGRhdGVzOiIsZiksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aShmPT5jb25zb2xlLmxvZygiU2hvdyBhcmNoaXZlZDoiLGYpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJEYXRhIFNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UiLG9wdGlvbnM6W3trZXk6ImFwaSIsbGFiZWw6IkFQSSBTZXJ2ZXIiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJ3ZWIiLGxhYmVsOiJXZWIgVHJhZmZpYyIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmdsb2JlIn0se2tleToibW9iaWxlIixsYWJlbDoiTW9iaWxlIEFwcCIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnNtYXJ0cGhvbmUifV0sb25DaGFuZ2U6aShmPT5jb25zb2xlLmxvZygiRGF0YSBzb3VyY2VzOiIsZiksIm9uQ2hhbmdlIil9XX0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydDMiLGl0ZW1zOlt7a2V5OiJNZXRyaWNzIixpY29uTmFtZToiYWN0aXZpdHkiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWV0cmljcyIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6ImZpbGVUZXh0IixiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVwb3J0cyIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibGluayIsa2V5OiJBbmFseXRpY3MgRG9jcyIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLGhyZWY6Imh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbS9hbmFseXRpY3MifV19XX0pLGQuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyB0YWIiKSwiYWN0aW9uIil9LHtrZXk6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgdGFiIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMgdGFiIiksImFjdGlvbiIpfV0pfW9uRGVhY3RpdmF0ZSgpe3RoaXMuYWN0aXZhdGVkPSExLGNvbnNvbGUubG9nKCJEYXNoYm9hcmQgZGVhY3RpdmF0ZWQiKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDMycHg7IH0KICAgICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmN0eC1hY3Rpb25zIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAyKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQogICAgICAgIC5jdHgtYWN0aW9ucyBoMiB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ib3R0b206IDE2cHg7IH0KICAgICAgICAuYnV0dG9uLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0biB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5zdWNjZXNzIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7CiAgICAgICAgICBjb2xvcjogIzRhZGU4MDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2Vzczpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjUpOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPkRhc2hib2FyZDwvaDE+CiAgICAgIDxwPldlbGNvbWUgYmFjayEgSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgc3lzdGVtLjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke2Q9PmNvbnNvbGUubG9nKCJUaWxlIGFjdGlvbjoiLGQuZGV0YWlsKX0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGl2IGNsYXNzPSJjdHgtYWN0aW9ucyI+CiAgICAgICAgPGgyPkNvbnRleHQgQWN0aW9ucyAoY3R4LmFwcHVpKTwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITEpfT5IaWRlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSghMCl9PlNob3cgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCExKX0+SGlkZSBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCEwKX0+U2hvdyBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITEpfT5IaWRlIENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSghMCl9PlNob3cgQ29udGVudCBUYWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCEwKX0+Q29sbGFwc2UgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVDb2xsYXBzZWQoITEpfT5FeHBhbmQgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldEJyZWFkY3J1bWJzKFsiRGFzaGJvYXJkIiwiT3ZlcnZpZXciLCJTdGF0cyJdKX0+U2V0IEJyZWFkY3J1bWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLm5hdmlnYXRlVG9WaWV3KCJwcm9qZWN0cyIpfT5HbyB0byBQcm9qZWN0czwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygic2V0dGluZ3MiLHtzZWN0aW9uOiJzZWN1cml0eSJ9KX0+R28gdG8gU2V0dGluZ3MvU2VjdXJpdHk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJjdXN0b20iLHVzZXI6IkRlbW8gVXNlciIsbWVzc2FnZToiQnV0dG9uIGNsaWNrZWQgZnJvbSBjdHghIixpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXItY2xpY2sifSl9PkFkZCBBY3Rpdml0eSBFbnRyeTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsOTkpfT5TZXQgVGFza3MgQmFkZ2UgdG8gOTk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmNsZWFyTWFpbk1lbnVCYWRnZSgidGFza3MiKX0+Q2xlYXIgVGFza3MgQmFkZ2U8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMCwxKX0+QXV0by1oaWRlIFRhYnMgKOKJpDEpPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKCExKX0+RGlzYWJsZSBBdXRvLWhpZGU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ2xvc2VhYmxlVGFiKCl9PkFkZCBDbG9zZWFibGUgVGFiPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH10YWJDb3VudGVyPTA7YWRkQ2xvc2VhYmxlVGFiKCl7aWYoIXRoaXMuY3R4KXJldHVybjt0aGlzLnRhYkNvdW50ZXIrKztsZXQgZD1gVGFiICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy5jdHguYXBwdWkuYWRkQ29udGVudFRhYih7a2V5OmQsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYFNlbGVjdGVkICR7ZH1gKSwiYWN0aW9uIiksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6aSgoKT0+e3RoaXMuY3R4Py5hcHB1aS5yZW1vdmVDb250ZW50VGFiKGQpfSwib25DbG9zZSIpfSl9fTtyZXR1cm4gYz1hfSkoKSxFZjE9KCgpPT57bGV0IHQ9W3VlKCJkZW1vLXNldHRpbmdzLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb1NldHRpbmdzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLGVnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ic2VjdGlvbiJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnNlY3Rpb24sImdldCIpLHNldDppKChtLHYpPT57bS5zZWN0aW9uPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxlZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0NoYW5nZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+Imhhc0NoYW5nZXMiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5oYXNDaGFuZ2VzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uaGFzQ2hhbmdlcz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksZWcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KSxrZChhLHIpfSNlPWtkKHRoaXMsbywiZ2VuZXJhbCIpO2dldCBzZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlY3Rpb24oaCl7dGhpcy4jZT1ofSN0PShrZCh0aGlzLGwpLGtkKHRoaXMsZCwhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGhhc0NoYW5nZXMoaCl7dGhpcy4jdD1ofWFwcHVpPWtkKHRoaXMsZik7b25BY3RpdmF0ZShoKXt0aGlzLmFwcHVpPWguYXBwdWksY29uc29sZS5sb2coIlNldHRpbmdzIGFjdGl2YXRlZCB3aXRoIHBhcmFtczoiLGgucGFyYW1zKSxoLnBhcmFtcz8uc2VjdGlvbiYmKHRoaXMuc2VjdGlvbj1oLnBhcmFtcy5zZWN0aW9uKSxoLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlNldHRpbmdzIixncm91cHM6W3tuYW1lOiJBY2NvdW50IixpY29uTmFtZToibHVjaWRlOnVzZXIiLGl0ZW1zOlt7a2V5OiJnZW5lcmFsIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJnZW5lcmFsIiksImFjdGlvbiIpfSx7a2V5OiJwcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmkoKCk9PnRoaXMuc2hvd1NlY3Rpb24oInByb2ZpbGUiKSwiYWN0aW9uIil9LHtrZXk6InNlY3VyaXR5IixpY29uTmFtZToic2hpZWxkIixhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigic2VjdXJpdHkiKSwiYWN0aW9uIil9XX0se25hbWU6IlByZWZlcmVuY2VzIixpY29uTmFtZToibHVjaWRlOnNsaWRlcnMiLGl0ZW1zOlt7a2V5OiJub3RpZmljYXRpb25zIixpY29uTmFtZToiYmVsbCIsYmFkZ2U6MyxhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigibm90aWZpY2F0aW9ucyIpLCJhY3Rpb24iKX0se2tleToiYXBwZWFyYW5jZSIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJhcHBlYXJhbmNlIiksImFjdGlvbiIpfV19XX0pLGguYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbih0aGlzLnNlY3Rpb24pLGguYXBwdWkuc2V0Q29udGVudFRhYnMoW10pfW9uRGVhY3RpdmF0ZSgpe2NvbnNvbGUubG9nKCJTZXR0aW5ncyBkZWFjdGl2YXRlZCIpLHRoaXMuaGFzQ2hhbmdlcz0hMX1jYW5EZWFjdGl2YXRlKCl7cmV0dXJuIHRoaXMuaGFzQ2hhbmdlcz8iWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBMZWF2ZSBhbnl3YXk/IjohMH1zaG93U2VjdGlvbihoKXt0aGlzLnNlY3Rpb249aCx0aGlzLmFwcHVpPy5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKGgpfXNpbXVsYXRlQ2hhbmdlKCl7dGhpcy5oYXNDaGFuZ2VzPSEwfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQogICAgICAgIHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5zZWN0aW9uLW5hbWUgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5hY3Rpb25zIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2OwogICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjU2M2ViOwogICAgICAgIH0KICAgICAgICAud2FybmluZyB7CiAgICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+U2V0dGluZ3M8L2gxPgogICAgICA8cD5NYW5hZ2UgeW91ciBhY2NvdW50IGFuZCBhcHBsaWNhdGlvbiBwcmVmZXJlbmNlcy48L3A+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbmFtZSI+CiAgICAgICAgQ3VycmVudCBzZWN0aW9uOiA8c3Ryb25nPiR7dGhpcy5zZWN0aW9ufTwvc3Ryb25nPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zaW11bGF0ZUNoYW5nZSgpfT5NYWtlIENoYW5nZXM8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5oYXNDaGFuZ2VzP3dgPHAgY2xhc3M9Indhcm5pbmciPllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcy4gTmF2aWdhdGlvbiB3aWxsIHByb21wdCBmb3IgY29uZmlybWF0aW9uLjwvcD5gOiIifQogICAgYH19O3JldHVybiBwPWF9KSgpLElmMT0oKCk9PntsZXQgdD1bdWUoImRlbW8tcHJvamVjdHMtdmlldyIpXSxlLHI9W10sYSxzPXllO3ZhciBuPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZW1vUHJvamVjdHNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZWcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxrZChhLHIpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJQcm9qZWN0cyIsZ3JvdXBzOlt7bmFtZToiTXkgUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixpdGVtczpbe2tleToiQWN0aXZlIixpY29uTmFtZToiZm9sZGVyIixiYWRnZTozLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWN0aXZlIiksImFjdGlvbiIpfSx7a2V5OiJBcmNoaXZlZCIsaWNvbk5hbWU6ImFyY2hpdmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQiKSwiYWN0aW9uIil9LHtrZXk6IlNoYXJlZCIsaWNvbk5hbWU6InVzZXJzIixiYWRnZToyLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTaGFyZWQiKSwiYWN0aW9uIil9XX0se25hbWU6IlF1aWNrIEFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBuZXcgcHJvamVjdCIpLCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjppKCgpPT5hbGVydCgiSW1wb3J0IHByb2plY3QiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiVGVtcGxhdGVzIixpY29uTmFtZToibHVjaWRlOmxheW91dFRlbXBsYXRlIixocmVmOiJodHRwczovL3RlbXBsYXRlcy5leGFtcGxlLmNvbSJ9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiR3JpZCIsaWNvbk5hbWU6Imx1Y2lkZTpncmlkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkdyaWQgdmlldyIpLCJhY3Rpb24iKX0se2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkxpc3QgdmlldyIpLCJhY3Rpb24iKX0se2tleToiQm9hcmQiLGljb25OYW1lOiJsdWNpZGU6a2FuYmFuIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkJvYXJkIHZpZXciKSwiYWN0aW9uIil9XSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5wcm9qZWN0cyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0OmhvdmVyIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwogICAgICAgIH0KICAgICAgICAucHJvamVjdCBoMyB7IGNvbG9yOiAjZmFmYWZhOyBtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNnB4OyB9CiAgICAgICAgLnByb2plY3QgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAgIC5iYWRnZSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTQ1MzJkOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5Qcm9qZWN0czwvaDE+CiAgICAgIDxkaXYgY2xhc3M9InByb2plY3RzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Gcm9udGVuZCBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0LWJhc2VkIGRhc2hib2FyZCBhcHBsaWNhdGlvbjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5BUEkgU2VydmVyIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5Ob2RlLmpzIFJFU1QgQVBJIGJhY2tlbmQ8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+TW9iaWxlIEFwcCA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+UmVhY3QgTmF0aXZlIGlPUy9BbmRyb2lkIGFwcDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Eb2N1bWVudGF0aW9uPC9oMz4KICAgICAgICAgIDxwPlRlY2huaWNhbCBkb2N1bWVudGF0aW9uIHNpdGU8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWF9KSgpLFBmMT0oKCk9PntsZXQgdD1bdWUoImRlbW8tdGFza3MtdmlldyIpXSxlLHI9W10sYSxzPXllO3ZhciBuPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZW1vVGFza3NWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZWcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxrZChhLHIpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUYXNrcyIsZ3JvdXBzOlt7bmFtZToiVmlld3MiLGljb25OYW1lOiJsdWNpZGU6ZXllIixpdGVtczpbe2tleToiQWxsIFRhc2tzIixpY29uTmFtZToibGlzdCIsYmFkZ2U6MTIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbGwiKSwiYWN0aW9uIil9LHtrZXk6IlRvZGF5IixpY29uTmFtZToiY2FsZW5kYXIiLGJhZGdlOjMsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJUb2RheSIpLCJhY3Rpb24iKX0se2tleToiVXBjb21pbmciLGljb25OYW1lOiJjbG9jayIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJVcGNvbWluZyIpLCJhY3Rpb24iKX0se2tleToiQ29tcGxldGVkIixpY29uTmFtZToiY2hlY2tDaXJjbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIiksImFjdGlvbiIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJQcmlvcml0eSJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJQcmlvcml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpmbGFnIixvcHRpb25zOlt7a2V5OiJoaWdoIixsYWJlbDoiSGlnaCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmFsZXJ0Q2lyY2xlIn0se2tleToibWVkaXVtIixsYWJlbDoiTWVkaXVtIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6bWludXNDaXJjbGUifSx7a2V5OiJsb3ciLGxhYmVsOiJMb3ciLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjaXJjbGUifV0sb25DaGFuZ2U6aShsPT5jb25zb2xlLmxvZygiUHJpb3JpdHkgZmlsdGVyOiIsbCksIm9uQ2hhbmdlIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6Ik9wdGlvbnMifSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgU3VidGFza3MiLGljb25OYW1lOiJsdWNpZGU6bGlzdFRyZWUiLGFjdGl2ZTohMCxvblRvZ2dsZTppKGw9PmNvbnNvbGUubG9nKCJTaG93IHN1YnRhc2tzOiIsbCksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGFjdGl2ZTohMSxvblRvZ2dsZTppKGw9PmNvbnNvbGUubG9nKCJTaG93IGNvbXBsZXRlZDoiLGwpLCJvblRvZ2dsZSIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFRhc2siLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJBZGQgbmV3IHRhc2siKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IFRhc2tzIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJJbXBvcnQgdGFza3MiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJDbGVhciBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJEZWxldGUgYWxsIGNvbXBsZXRlZCB0YXNrcz8iLGFjdGlvbjppKCgpPT5hbGVydCgiQ2xlYXJlZCBjb21wbGV0ZWQgdGFza3MiKSwiYWN0aW9uIil9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkxpc3QiKSwiYWN0aW9uIil9LHtrZXk6IkNhbGVuZGFyIixpY29uTmFtZToibHVjaWRlOmNhbGVuZGFyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkNhbGVuZGFyIiksImFjdGlvbiIpfV0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAudGFzay1saXN0IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC50YXNrIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM1MjUyNTI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC50YXNrLXRleHQgeyBjb2xvcjogI2ZhZmFmYTsgZmxleDogMTsgfQogICAgICAgIC5kdWUtZGF0ZSB7IGNvbG9yOiAjNzM3MzczOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAucHJpb3JpdHkgewogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLnByaW9yaXR5LmhpZ2ggeyBiYWNrZ3JvdW5kOiAjNDUwYTBhOyBjb2xvcjogI2Y4NzE3MTsgfQogICAgICAgIC5wcmlvcml0eS5tZWRpdW0geyBiYWNrZ3JvdW5kOiAjNDUxYTAzOyBjb2xvcjogI2ZiYmYyNDsgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+VGFza3M8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJ0YXNrLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+UmV2aWV3IHB1bGwgcmVxdWVzdCAjNDI8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvZGF5PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IGhpZ2giPkhpZ2g8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5VcGRhdGUgZG9jdW1lbnRhdGlvbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9tb3Jyb3c8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgbWVkaXVtIj5NZWRpdW08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5Xcml0ZSB1bml0IHRlc3RzPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5EZWMgMjA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWF9KSgpLGpacj1pKCgpPT57bGV0IHQ9e2JyYW5kaW5nOntsb2dvSWNvbjoibHVjaWRlOmJveCIsbG9nb1RleHQ6IkFjbWUgQXBwIn0sYXBwQmFyOnttZW51SXRlbXM6W3tuYW1lOiJGaWxlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixzaG9ydGN1dDoiQ21kK04iLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4uLi4iLHNob3J0Y3V0OiJDbWQrTyIsaWNvbk5hbWU6ImZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIiksImFjdGlvbiIpfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Im15LWFwcCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gbXktYXBwIiksImFjdGlvbiIpfSx7bmFtZToiY29tcG9uZW50LWxpYiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gY29tcG9uZW50LWxpYiIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUgQWxsIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVW5kbyIpLCJhY3Rpb24iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWRvIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpLCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHNpZGViYXIiKSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgQWN0aXZpdHkgTG9nIixzaG9ydGN1dDoiQ21kK1NoaWZ0K0EiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgYWN0aXZpdHkiKSwiYWN0aW9uIil9XX0se25hbWU6IkhlbHAiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRG9jdW1lbnRhdGlvbiIsaWNvbk5hbWU6ImJvb2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2NzIiksImFjdGlvbiIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrLyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV0sYnJlYWRjcnVtYnM6IkRhc2hib2FyZCIsc2hvd1dpbmRvd0NvbnRyb2xzOiEwLHNob3dTZWFyY2g6ITAsdXNlcjp7bmFtZToiSmFuZSBTbWl0aCIsZW1haWw6ImphbmUuc21pdGhAZXhhbXBsZS5jb20iLHN0YXR1czoib25saW5lIn0scHJvZmlsZU1lbnVJdGVtczpbe25hbWU6IlByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQgU2V0dGluZ3MiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAgJiBTdXBwb3J0IixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkhlbHAiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfSx2aWV3czpbe2lkOiJkYXNoYm9hcmQiLG5hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixjb250ZW50OiJkZW1vLWRhc2hib2FyZC12aWV3Iixyb3V0ZToiZGFzaGJvYXJkIn0se2lkOiJwcm9qZWN0cyIsbmFtZToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixjb250ZW50OiJkZW1vLXByb2plY3RzLXZpZXciLHJvdXRlOiJwcm9qZWN0cyIsYmFkZ2U6M30se2lkOiJ0YXNrcyIsbmFtZToiVGFza3MiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGNvbnRlbnQ6ImRlbW8tdGFza3MtdmlldyIscm91dGU6InRhc2tzIixiYWRnZToxMn0se2lkOiJzZXR0aW5ncyIsbmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGNvbnRlbnQ6ImRlbW8tc2V0dGluZ3MtdmlldyIscm91dGU6InNldHRpbmdzLzpzZWN0aW9uPyJ9XSxtYWluTWVudTp7c2VjdGlvbnM6W3tuYW1lOiJNYWluIix2aWV3czpbImRhc2hib2FyZCJdfSx7bmFtZToiV29ya3NwYWNlIix2aWV3czpbInByb2plY3RzIiwidGFza3MiXX1dLGJvdHRvbUl0ZW1zOlsic2V0dGluZ3MiXX0sZGVmYXVsdFZpZXc6ImRhc2hib2FyZCIsYm90dG9tQmFyOnt2aXNpYmxlOiEwLHdpZGdldHM6W3tpZDoic3RhdHVzIixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixsYWJlbDoiU3lzdGVtIE9ubGluZSIsc3RhdHVzOiJzdWNjZXNzIix0b29sdGlwOiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiU3RhdHVzIGNsaWNrZWQiKSwib25DbGljayIpfSx7aWQ6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsbGFiZWw6IjMgbm90aWZpY2F0aW9ucyIsc3RhdHVzOiJ3YXJuaW5nIix0b29sdGlwOiJZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucyIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIiksIm9uQ2xpY2siKX0se2lkOiJ2ZXJzaW9uIixpY29uTmFtZToibHVjaWRlOmdpdEJyYW5jaCIsbGFiZWw6InYxLjIuMyIscG9zaXRpb246InJpZ2h0Iix0b29sdGlwOiJDdXJyZW50IHZlcnNpb24ifV0sYWN0aW9uczpbe2lkOiJ0ZXJtaW5hbCIsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsdG9vbHRpcDoiT3BlbiBUZXJtaW5hbCIscG9zaXRpb246InJpZ2h0IixvbkNsaWNrOmkoKCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCBjbGlja2VkIiksIm9uQ2xpY2siKX1dfSxvblZpZXdDaGFuZ2U6aSgoYSxzKT0+e2NvbnNvbGUubG9nKGBWaWV3IGNoYW5nZWQgdG86ICR7YX0gKCR7cy5uYW1lfSlgKX0sIm9uVmlld0NoYW5nZSIpLG9uU2VhcmNoOmkoYT0+e2NvbnNvbGUubG9nKCJTZWFyY2ggcXVlcnk6IixhKX0sIm9uU2VhcmNoIil9LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9ImRlbW8tY29udGFpbmVyIixlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aSIpO3JldHVybiBlLmFwcGVuZENoaWxkKHIpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHIudXBkYXRlQ29tcGxldGUsci5jb25maWd1cmUodCksc2V0VGltZW91dCgoKT0+e3IuYWN0aXZpdHlMb2cuYWRkTWFueShbe3R5cGU6ImxvZ2luIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOidjcmVhdGVkIHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn1dKX0sNTAwKSxyLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoYT0+e2NvbnNvbGUubG9nKCJWaWV3IGNoYW5nZWQgZXZlbnQ6IixhKSxyLnNldEJyZWFkY3J1bWJzKGEudmlldy5uYW1lKX0pLHIudmlld0xpZmVjeWNsZSQuc3Vic2NyaWJlKGE9Pntjb25zb2xlLmxvZygiTGlmZWN5Y2xlIGV2ZW50OiIsYS50eXBlLGEudmlld0lkKX0pLHNldFRpbWVvdXQoKCk9PntyLnNldE1haW5NZW51QmFkZ2UoInRhc2tzIiwxNSksci5hY3Rpdml0eUxvZy5hZGQoe3R5cGU6InVwZGF0ZSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJuZXcgdGFza3MgYWRkZWQifSl9LDVlMyl9LDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgJHtlfQogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIERyZSxsN3Q9dSgoKT0+e3ZlKCk7RHJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlZpZXdSZWdpc3RyeSIpfXZpZXdzPW5ldyBNYXA7aW5zdGFuY2VzPW5ldyBNYXA7Y3VycmVudFZpZXdJZD1udWxsO2FwcHVpPW51bGw7c2V0QXBwdWlSZWYoZSl7dGhpcy5hcHB1aT1lfXJlZ2lzdGVyKGUpe3RoaXMudmlld3MuaGFzKGUuaWQpJiZjb25zb2xlLndhcm4oYFZpZXcgd2l0aCBpZCAiJHtlLmlkfSIgYWxyZWFkeSByZWdpc3RlcmVkLiBPdmVyd3JpdGluZy5gKSx0aGlzLnZpZXdzLnNldChlLmlkLGUpfXJlZ2lzdGVyQWxsKGUpe2UuZm9yRWFjaChyPT50aGlzLnJlZ2lzdGVyKHIpKX1nZXQoZSl7cmV0dXJuIHRoaXMudmlld3MuZ2V0KGUpfWdldFZpZXdJZHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZpZXdzLmtleXMoKSl9Z2V0QWxsKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy52YWx1ZXMoKSl9Z2V0Um91dGUoZSl7bGV0IHI9dGhpcy52aWV3cy5nZXQoZSk7cmV0dXJuIHI/LnJvdXRlfHxyPy5pZHx8IiJ9ZmluZEJ5Um91dGUoZSl7Zm9yKGxldCByIG9mIHRoaXMudmlld3MudmFsdWVzKCkpe2xldCBhPXIucm91dGV8fHIuaWQscz10aGlzLm1hdGNoUm91dGUoYSxlKTtpZihzIT09bnVsbClyZXR1cm57dmlldzpyLHBhcmFtczpzfX19bWF0Y2hSb3V0ZShlLHIpe2xldCBhPWUuc3BsaXQoIi8iKSxzPXIuc3BsaXQoIi8iKTtpZihhLmxlbmd0aD4wJiZhW2EubGVuZ3RoLTFdLmVuZHNXaXRoKCI/Iikpe2lmKHMubGVuZ3RoPGEubGVuZ3RoLTF8fHMubGVuZ3RoPmEubGVuZ3RoKXJldHVybiBudWxsfWVsc2UgaWYoYS5sZW5ndGghPT1zLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgbz17fTtmb3IobGV0IGw9MDtsPGEubGVuZ3RoO2wrKyl7bGV0IGM9YVtsXSxkPWMuZW5kc1dpdGgoIj8iKTtpZihkJiYoYz1jLnNsaWNlKDAsLTEpKSxjLnN0YXJ0c1dpdGgoIjoiKSl7bGV0IGY9Yy5zbGljZSgxKTtpZihzW2xdIT09dm9pZCAwKW9bZl09c1tsXTtlbHNlIGlmKCFkKXJldHVybiBudWxsfWVsc2UgaWYoc1tsXSE9PWMpcmV0dXJuIG51bGx9cmV0dXJuIG99YXN5bmMgY2FuTGVhdmVDdXJyZW50Vmlldygpe2lmKCF0aGlzLmN1cnJlbnRWaWV3SWQpcmV0dXJuITA7bGV0IGU9dGhpcy5pbnN0YW5jZXMuZ2V0KHRoaXMuY3VycmVudFZpZXdJZCk7aWYoIWUpcmV0dXJuITA7bGV0IHI9ZTtyZXR1cm4gdHlwZW9mIHIuY2FuRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIj9hd2FpdCByLmNhbkRlYWN0aXZhdGUoKTohMH1hc3luYyBhY3RpdmF0ZVZpZXcoZSxyLGEpe2xldCBzPXRoaXMudmlld3MuZ2V0KGUpO2lmKCFzKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke2V9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO2xldCBuPXMuY2FjaGUhPT0hMTt0aGlzLmN1cnJlbnRWaWV3SWQmJnRoaXMuY3VycmVudFZpZXdJZCE9PWUmJmF3YWl0IHRoaXMuZGVhY3RpdmF0ZVZpZXcodGhpcy5jdXJyZW50Vmlld0lkKTtsZXQgbz1uP3RoaXMuaW5zdGFuY2VzLmdldChlKTp2b2lkIDA7aWYobylvLnN0eWxlLmRpc3BsYXk9IiI7ZWxzZXtpZihvPWF3YWl0IHRoaXMuY3JlYXRlVmlld0VsZW1lbnQocyksIW8pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZWxlbWVudCBmb3IgdmlldyAiJHtlfSJgKSxudWxsO3IuYXBwZW5kQ2hpbGQobyksbiYmdGhpcy5pbnN0YW5jZXMuc2V0KGUsbyl9cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZD1lLGF3YWl0IHRoaXMuY2FsbE9uQWN0aXZhdGUobyxlLGEpLG99YXN5bmMgZGVhY3RpdmF0ZVZpZXcoZSl7bGV0IHI9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO2lmKCFyKXJldHVybjtsZXQgYT1yO3R5cGVvZiBhLm9uRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIiYmYXdhaXQgYS5vbkRlYWN0aXZhdGUoKSxyLnN0eWxlLmRpc3BsYXk9Im5vbmUifWFzeW5jIGNyZWF0ZVZpZXdFbGVtZW50KGUpe2xldCByPWUuY29udGVudDtpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmIShyLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSYmci5jb25zdHJ1Y3Rvci5uYW1lPT09IkFzeW5jRnVuY3Rpb24iKXRyeXtyPWF3YWl0IHIoKX1jYXRjaChzKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgYXN5bmMgY29udGVudCBmb3IgdmlldyAiJHtlLmlkfSI6YCxzKSxudWxsfWxldCBhO2lmKHR5cGVvZiByPT0ic3RyaW5nIilhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocik7ZWxzZSBpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIilpZihyLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWE9bmV3IHI7ZWxzZXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLHMuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbj1yKCk7R2gobixzKSxhPXN9ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7ZS5pZH0iYCksbnVsbDtyZXR1cm4gYS5kYXRhc2V0LnZpZXdJZD1lLmlkLGF9YXN5bmMgY2FsbE9uQWN0aXZhdGUoZSxyLGEpe2xldCBzPWU7aWYodHlwZW9mIHMub25BY3RpdmF0ZT09ImZ1bmN0aW9uIil7bGV0IG49e2FwcHVpOnRoaXMuYXBwdWksdmlld0lkOnIscGFyYW1zOmF9O2F3YWl0IHMub25BY3RpdmF0ZShuKX19cmVuZGVyVmlldyhlLHIpe2xldCBhPXRoaXMudmlld3MuZ2V0KGUpO2lmKCFhKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke2V9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO3IuaW5uZXJIVE1MPSIiO2xldCBzLG49YS5jb250ZW50O2lmKHR5cGVvZiBuPT0ic3RyaW5nIilzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobik7ZWxzZSBpZih0eXBlb2Ygbj09ImZ1bmN0aW9uIilpZihuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXM9bmV3IG47ZWxzZXtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLG8uc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbD1uKCk7R2gobCxvKSxzPW99ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDtyZXR1cm4gci5hcHBlbmRDaGlsZChzKSx0aGlzLmluc3RhbmNlcy5zZXQoZSxzKSx0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxzfWdldEN1cnJlbnRWaWV3SWQoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0lkfWdldEluc3RhbmNlKGUpe3JldHVybiB0aGlzLmluc3RhbmNlcy5nZXQoZSl9Y2xlYXJJbnN0YW5jZShlKXtsZXQgcj10aGlzLmluc3RhbmNlcy5nZXQoZSk7ciYmci5wYXJlbnROb2RlJiZyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQociksdGhpcy5pbnN0YW5jZXMuZGVsZXRlKGUpLHRoaXMuY3VycmVudFZpZXdJZD09PWUmJih0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbCl9Y2xlYXJJbnN0YW5jZXMoKXtmb3IobGV0W2Uscl1vZiB0aGlzLmluc3RhbmNlcylyLnBhcmVudE5vZGUmJnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKTt0aGlzLmluc3RhbmNlcy5jbGVhcigpLHRoaXMuY3VycmVudFZpZXdJZD1udWxsfXVucmVnaXN0ZXIoZSl7cmV0dXJuIHRoaXMuY2xlYXJJbnN0YW5jZShlKSx0aGlzLnZpZXdzLmRlbGV0ZShlKX1jbGVhcigpe3RoaXMudmlld3MuY2xlYXIoKSx0aGlzLmNsZWFySW5zdGFuY2VzKCl9aGFzKGUpe3JldHVybiB0aGlzLnZpZXdzLmhhcyhlKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnZpZXdzLnNpemV9fX0pO3ZhciBXWnIsR1pyPXUoKCk9Pnt2ZSgpO1dacj1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tbWFpbm1lbnUtY29udGFpbmVyIC5zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1tYWlubWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktbWFpbm1lbnUKICAgICAgLmxvZ29JY29uPSR7Imx1Y2lkZTpib3gifQogICAgICAubG9nb1RleHQ9JHsiQWNtZSBBcHAifQogICAgICAubWVudUdyb3Vwcz0ke1t7dGFiczpbe2tleToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIiksImFjdGlvbiIpfSx7a2V5OiJJbmJveCIsaWNvbk5hbWU6Imx1Y2lkZTppbmJveCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJJbmJveCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiV29ya3NwYWNlIix0YWJzOlt7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMiKSwiYWN0aW9uIil9LHtrZXk6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlRhc2tzIiksImFjdGlvbiIpfSx7a2V5OiJEb2N1bWVudHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRzIiksImFjdGlvbiIpfV19LHtuYW1lOiJBbmFseXRpY3MiLHRhYnM6W3trZXk6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMiKSwiYWN0aW9uIil9LHtrZXk6Ikluc2lnaHRzIixpY29uTmFtZToibHVjaWRlOmxpZ2h0YnVsYiIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJJbnNpZ2h0cyIpLCJhY3Rpb24iKX1dfV19CiAgICAgIC5ib3R0b21UYWJzPSR7W3trZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfSx7a2V5OiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX1dfQogICAgPjwvZGVlcy1hcHB1aS1tYWlubWVudT4KICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgb2YsS28sWVpyLGM3dD11KCgpPT57dm4oKTtQcCgpO09vKCk7dmUoKTtzcygpO0dacigpO2x0KCk7b2Y9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LEtvPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxZWnI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWFwcHVpLW1haW5tZW51IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aU1haW5tZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpBcnJheX0pXSx2PVtQKHt0eXBlOkFycmF5fSldLHk9W1Aoe3R5cGU6QXJyYXl9KV0sTj1bUCgpXSxPPVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxvZih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJsb2dvSWNvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmxvZ29JY29uLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oubG9nb0ljb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLG9mKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImxvZ29UZXh0ImluIHosImhhcyIpLGdldDppKHo9PnoubG9nb1RleHQsImdldCIpLHNldDppKCh6LEEpPT57ei5sb2dvVGV4dD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsZiksb2YodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51R3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJtZW51R3JvdXBzImluIHosImhhcyIpLGdldDppKHo9PnoubWVudUdyb3VwcywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6Lm1lbnVHcm91cHM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLG9mKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iYm90dG9tVGFicyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmJvdHRvbVRhYnMsImdldCIpLHNldDppKCh6LEEpPT57ei5ib3R0b21UYWJzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sYixnKSxvZih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhYnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei50YWJzLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGFicz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksb2YodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2VsZWN0ZWRUYWIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnNlbGVjdGVkVGFiPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSxvZih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY29sbGFwc2VkImluIHosImhhcyIpLGdldDppKHo9PnouY29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouY29sbGFwc2VkPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSxvZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPVdacjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUtvKHRoaXMsbywiIik7Z2V0IGxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxvZ29JY29uKEMpe3RoaXMuI2U9Q30jdD0oS28odGhpcyxsKSxLbyh0aGlzLGQsIiIpKTtnZXQgbG9nb1RleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9nb1RleHQoQyl7dGhpcy4jdD1DfSNyPShLbyh0aGlzLGYpLEtvKHRoaXMsaCxbXSkpO2dldCBtZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVHcm91cHMoQyl7dGhpcy4jcj1DfSNhPShLbyh0aGlzLG0pLEtvKHRoaXMsYixbXSkpO2dldCBib3R0b21UYWJzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJvdHRvbVRhYnMoQyl7dGhpcy4jYT1DfSNpPShLbyh0aGlzLGcpLEtvKHRoaXMsayxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhYnMoQyl7dGhpcy4jaT1DfSNzPShLbyh0aGlzLE0pLEtvKHRoaXMsXyx2b2lkIDApKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2VsZWN0ZWRUYWIoQyl7dGhpcy4jcz1DfSNuPShLbyh0aGlzLFMpLEtvKHRoaXMsTCwhMSkpO2dldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29sbGFwc2VkKEMpe3RoaXMuI249Q31zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtYmcpOwogICAgICAgIC0tdG9vbHRpcC1mZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHotaW5kZXg6ICR7anMuZml4ZWQuYXBwQmFyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAubG9nb1NlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29JY29uIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBNaWRkbGUgU2VjdGlvbiAoc2Nyb2xsYWJsZSkgKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAubWVudUdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnRhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYiAudGFiTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiLnNlbGVjdGVkVGFiOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAudGFiLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLnRhYi10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBCb3R0b20gU2VjdGlvbiAqLwogICAgICAuYm90dG9tU2VjdGlvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgQz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7ej0+e0NyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHosW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP3dgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/d2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcCh6PT50aGlzLnJlbmRlclRhYih6KSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChDPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke0MubmFtZT93YDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke0MubmFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtDLml0ZW1zLm1hcCh6PT50aGlzLnJlbmRlclRhYih6KSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKEM9PnRoaXMucmVuZGVyVGFiKEMpKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihDKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtDPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihDKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtDLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtDLmtleX08L3NwYW4+CiAgICAgICAgJHtDLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtDLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtDLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtDLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoej0+ei5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKEMpe3RoaXMuc2VsZWN0ZWRUYWI9Qyx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpDfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBDPXRoaXMuZ2V0QWxsVGFicygpO0MubGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKENbMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxLbyh0aGlzLEUpfXN0YXRpY3tLbyhhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgS1pyLFpacj11KCgpPT57dmUoKTtLWnI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGJhY2tncm91bmQ6ICMwZjBmMGY7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBoMyB7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICBtYXJnaW4tdG9wOiAwOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBjb2RlIHsKICAgICAgYmFja2dyb3VuZDogIzI3MjcyYTsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHVsIHsKICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAuaGVhZGluZz0keyJQcm9qZWN0cyJ9CiAgICAgIC5ncm91cHM9JHtbe25hbWU6Ik5hdmlnYXRpb24iLGljb25OYW1lOiJsdWNpZGU6Y29tcGFzcyIsaXRlbXM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIGNsaWNrZWQiKSwiYWN0aW9uIiksYmFkZ2U6MyxiYWRnZVZhcmlhbnQ6Indhcm5pbmcifSx7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMgY2xpY2tlZCIpLCJhY3Rpb24iKSxiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MifSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBOZXcgY2xpY2tlZCEiKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIkltcG9ydCBEYXRhIGNsaWNrZWQhIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiRGVsZXRlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIGl0ZW1zPyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJEZWxldGVkISIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiU3RhdHVzIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFjdGl2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja0NpcmNsZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOmkodD0+Y29uc29sZS5sb2coIlNob3cgQWN0aXZlOiIsdCksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aSh0PT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLHQpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6aSh0PT5jb25zb2xlLmxvZygiU2VsZWN0ZWQgY2F0ZWdvcmllczoiLHQpLCJvbkNoYW5nZSIpfV19LHtuYW1lOiJSZXNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6Ym9va09wZW4iLGNvbGxhcHNlZDohMCxpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IkRvY3VtZW50YXRpb24ifSx7dHlwZToibGluayIsa2V5OiJBUEkgUmVmZXJlbmNlIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixocmVmOiJodHRwczovL2FwaS5leGFtcGxlLmNvbS9kb2NzIn0se3R5cGU6ImxpbmsiLGtleToiVXNlciBHdWlkZSIsaWNvbk5hbWU6Imx1Y2lkZTpib29rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZ3VpZGUifSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdXBwb3J0In0se3R5cGU6ImxpbmsiLGtleToiSGVscCBDZW50ZXIiLGljb25OYW1lOiJsdWNpZGU6aGVscENpcmNsZSIsaHJlZjoiL2hlbHAiLGV4dGVybmFsOiExfSx7dHlwZToibGluayIsa2V5OiJHaXRIdWIgSXNzdWVzIixpY29uTmFtZToibHVjaWRlOmdpdGh1YiIsaHJlZjoiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvaXNzdWVzIn1dfV19CiAgICAgIEBpdGVtLXNlbGVjdD0ke3Q9PmNvbnNvbGUubG9nKCJUYWIgc2VsZWN0ZWQ6Iix0LmRldGFpbCl9CiAgICAgIEBhY3Rpb24tY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiQWN0aW9uIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICAgIEBmaWx0ZXItdG9nZ2xlPSR7dD0+Y29uc29sZS5sb2coIkZpbHRlciB0b2dnbGVkOiIsdC5kZXRhaWwpfQogICAgICBAbXVsdGlmaWx0ZXItY2hhbmdlPSR7dD0+Y29uc29sZS5sb2coIk11bHRpLWZpbHRlciBjaGFuZ2VkOiIsdC5kZXRhaWwpfQogICAgICBAbGluay1jbGljaz0ke3Q9PmNvbnNvbGUubG9nKCJMaW5rIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICA8aDM+U2Vjb25kYXJ5IE1lbnUgRGVtbzwvaDM+CiAgICAgIDxwPlRoaXMgZGVtbyBzaG93Y2FzZXMgYWxsIDggaXRlbSB0eXBlczo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+PGNvZGU+dGFiPC9jb2RlPiAtIFNlbGVjdGFibGUgaXRlbXMgKE5hdmlnYXRpb24gZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiAtIEJsdWUgYWN0aW9ucyAoQWN0aW9ucyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IHdpdGggPGNvZGU+dmFyaWFudDogJ2Rhbmdlcic8L2NvZGU+IC0gUmVkIGRhbmdlciBhY3Rpb248L2xpPgogICAgICAgIDxsaT48Y29kZT5maWx0ZXI8L2NvZGU+IC0gQ2hlY2tib3ggdG9nZ2xlcyAoRmlsdGVycyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5tdWx0aUZpbHRlcjwvY29kZT4gLSBDb2xsYXBzaWJsZSBtdWx0aS1zZWxlY3QgKENhdGVnb3JpZXMpPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZGl2aWRlcjwvY29kZT4gLSBWaXN1YWwgc2VwYXJhdG9yczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmhlYWRlcjwvY29kZT4gLSBTZWN0aW9uIGxhYmVsczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmxpbms8L2NvZGU+IC0gRXh0ZXJuYWwvaW50ZXJuYWwgbGlua3MgKFJlc291cmNlcyBncm91cCk8L2xpPgogICAgICA8L3VsPgogICAgICA8cD5UcnkgdGhlIGNvbGxhcHNlIHRvZ2dsZSBvbiB0aGUgbGVmdCBlZGdlITwvcD4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGgzLEJuLFFacixkN3Q9dSgoKT0+e3ZuKCk7UHAoKTtzcygpO0tyKCk7dmUoKTtaWnIoKTtsdCgpO2gzPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxCbj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUVpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W107dmFyIEE9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVNlY29uZGFyeW1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOkFycmF5fSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCh7dHlwZTpPYmplY3R9KV0seT1baWUoKV0sTj1baWUoKV0sTz1baWUoKV0sQj1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0saDModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJoZWFkaW5nImluIEYsImhhcyIpLGdldDppKEY9PkYuaGVhZGluZywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmhlYWRpbmc9WX0sInNldCIpfSxtZXRhZGF0YTokfSxvLGwpLGgzKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJncm91cHMiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5ncm91cHMsImdldCIpLHNldDppKChGLFkpPT57Ri5ncm91cHM9WX0sInNldCIpfSxtZXRhZGF0YTokfSxkLGYpLGgzKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4ic2VsZWN0aW9uT3B0aW9ucyJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnNlbGVjdGlvbk9wdGlvbnMsImdldCIpLHNldDppKChGLFkpPT57Ri5zZWxlY3Rpb25PcHRpb25zPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0saCxtKSxoMyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4ic2VsZWN0ZWRJdGVtImluIEYsImhhcyIpLGdldDppKEY9PkYuc2VsZWN0ZWRJdGVtLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0Yuc2VsZWN0ZWRJdGVtPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYixnKSxoMyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZEdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4iY29sbGFwc2VkR3JvdXBzImluIEYsImhhcyIpLGdldDppKEY9PkYuY29sbGFwc2VkR3JvdXBzLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YuY29sbGFwc2VkR3JvdXBzPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sayxNKSxoMyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZE11bHRpRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4iY29sbGFwc2VkTXVsdGlGaWx0ZXJzImluIEYsImhhcyIpLGdldDppKEY9PkYuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sXyxTKSxoMyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlckNvdW50ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InJlbmRlckNvdW50ZXIiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5yZW5kZXJDb3VudGVyLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YucmVuZGVyQ291bnRlcj1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LEwsRSksaDModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+ImNvbGxhcHNlZCJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmNvbGxhcHNlZD1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMseiksaDMobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCxyKSxBPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1LWnI7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Cbih0aGlzLG8sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKCQpe3RoaXMuI2U9JH0jdD0oQm4odGhpcyxsKSxCbih0aGlzLGQsW10pKTtnZXQgZ3JvdXBzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGdyb3VwcygkKXt0aGlzLiN0PSR9I3I9KEJuKHRoaXMsZiksQm4odGhpcyxoLFtdKSk7Z2V0IHNlbGVjdGlvbk9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0aW9uT3B0aW9ucygkKXt0aGlzLiNyPSR9I2E9KEJuKHRoaXMsbSksQm4odGhpcyxiLG51bGwpKTtnZXQgc2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkSXRlbSgkKXt0aGlzLiNhPSR9I2k9KEJuKHRoaXMsZyksQm4odGhpcyxrLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkR3JvdXBzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbGxhcHNlZEdyb3VwcygkKXt0aGlzLiNpPSR9I3M9KEJuKHRoaXMsTSksQm4odGhpcyxfLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkTXVsdGlGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycygkKXt0aGlzLiNzPSR9I249KEJuKHRoaXMsUyksQm4odGhpcyxMLDApKTtnZXQgcmVuZGVyQ291bnRlcigpe3JldHVybiB0aGlzLiNufXNldCByZW5kZXJDb3VudGVyKCQpe3RoaXMuI249JH0jbz0oQm4odGhpcyxFKSxCbih0aGlzLEMsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNlZCgkKXt0aGlzLiNvPSR9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkOiAyNDBweDsKICAgICAgICAtLXNpZGViYXItd2lkdGgtY29sbGFwc2VkOiA1NnB4OwogICAgICAgIC0tc2lkZWJhci1iZzogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIC0tc2lkZWJhci1mZzogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgLS1zaWRlYmFyLWZnLW11dGVkOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIC0tc2lkZWJhci1mZy1hY3RpdmU6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICAtLXNpZGViYXItYm9yZGVyOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIC0tc2lkZWJhci1ob3ZlcjogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgLS1zaWRlYmFyLWFjdGl2ZTogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIC0tc2lkZWJhci1hY2NlbnQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICAtLXRvb2x0aXAtYmc6IHZhcigtLWRlZXMtY29sb3ItdG9vbHRpcC1iZyk7CiAgICAgICAgLS10b29sdGlwLWZnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtZmcpOwoKICAgICAgICAvKiBCYWRnZSBjb2xvcnMgKi8KICAgICAgICAtLWJhZGdlLWRlZmF1bHQtYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgLS1iYWRnZS1kZWZhdWx0LWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1iZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICAtLWJhZGdlLXN1Y2Nlc3MtZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utc3VjY2Vzcy1mZyk7CiAgICAgICAgLS1iYWRnZS13YXJuaW5nLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctYmcpOwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1mZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS13YXJuaW5nLWZnKTsKICAgICAgICAtLWJhZGdlLWVycm9yLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICAtLWJhZGdlLWVycm9yLWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWZnKTsKCiAgICAgICAgLyogQWN0aW9uIGNvbG9ycyAqLwogICAgICAgIC0tYWN0aW9uLXByaW1hcnk6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgICAtLWFjdGlvbi1wcmltYXJ5LWhvdmVyOiAke3guYmRUaGVtZSgiIzFkNGVkOCIsIiM2MGE1ZmEiKX07CiAgICAgICAgLS1hY3Rpb24tZGFuZ2VyOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgLS1hY3Rpb24tZGFuZ2VyLWhvdmVyOiAke3guYmRUaGVtZSgiI2I5MWMxYyIsIiNmODcxNzEiKX07CgogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYmcpOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIHsKICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQpOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlciBTZWN0aW9uICovCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgLmhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuaGVhZGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgLmhlYWRpbmcgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYWJsZSBNZW51IFNlY3Rpb24gKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2UsIG1heC1oZWlnaHQgMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6aG92ZXIgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDE0MCwgMTIwLCAxMDAsIDAuMDYpIiwicmdiYSgxODAsIDE2MCwgMTQwLCAwLjA4KSIpfTsKICAgICAgICBwYWRkaW5nOiA3cHggMTFweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyOm5vdCguY29sbGFwc2VkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC13YXJtKTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuZ3JvdXBUaXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXdhcm0pOwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmNoZXZyb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtd2FybSk7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlci5jb2xsYXBzZWQgLmNoZXZyb24gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgIH0KCiAgICAgIC8qIEhpZGUgZ3JvdXAgaGVhZGVycyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKi8KICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ncm91cEhlYWRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBHcm91cCBJdGVtcyBDb250YWluZXIgKi8KICAgICAgLmdyb3VwSXRlbXMgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWFyZ2luIDAuMjVzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogMTAwMHB4OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLmdyb3VwSXRlbXMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogQWx3YXlzIHNob3cgaXRlbXMgd2hlbiBob3Jpem9udGFsbHkgY29sbGFwc2VkIChyZWdhcmRsZXNzIG9mIGdyb3VwIGNvbGxhcHNlIHN0YXRlKSAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSXRlbXMgewogICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogTWVudSBJdGVtIEJhc2UgKi8KICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBtYXJnaW46IDJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNDUwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmcpOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBBY3Rpb24gSXRlbSBTdHlsZXMgKi8KICAgICAgLm1lbnVJdGVtLmFjdGlvbi1wcmltYXJ5IHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLXByaW1hcnkpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnk6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeS1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1kYW5nZXIpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlcjpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1kYW5nZXItaG92ZXIpOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDIyMCwgMzgsIDM4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlciBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIEZpbHRlciBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uZmlsdGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLyogTXVsdGktRmlsdGVyIENvbnRhaW5lciAqLwogICAgICAubXVsdGlGaWx0ZXIgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci1jb3VudCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLW11dGVkKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb25zLmNvbGxhcHNlZCB7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiI2Q0ZDRkNCIsIiM1MjUyNTIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94LmNoZWNrZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94IGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gZGVlcy1pY29uLm9wdGlvbi1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyICovCiAgICAgIC5tZW51RGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIG1hcmdpbjogOHB4IDEycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudURpdmlkZXIgewogICAgICAgIG1hcmdpbjogOHB4IDRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyL0xhYmVsICovCiAgICAgIC5tZW51SGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggNHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExpbmsgSXRlbSAqLwogICAgICAubWVudUl0ZW0ubGluayAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLyogQ29sbGFwc2VkIG1lbnUgaXRlbSBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuaXRlbUxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5maWx0ZXItY2hlY2tib3gsCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmV4dGVybmFsLWljb24gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubXVsdGlGaWx0ZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAuaXRlbS10b29sdGlwIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTAwJTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLXRvb2x0aXAtZmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgIH0KCiAgICAgIC5pdGVtLXRvb2x0aXA6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW06aG92ZXIgLml0ZW0tdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxczsKICAgICAgfQoKICAgICAgLyogQmFkZ2UgU3R5bGVzICovCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLXdhcm5pbmctYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS13YXJuaW5nLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWVycm9yLWZnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGVnYWN5IG9wdGlvbnMgY29udGFpbmVyICovCiAgICAgIC5sZWdhY3lPcHRpb25zIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgLyogRGl2aWRlciAobGVnYWN5KSAqLwogICAgICAuZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIG1hcmdpbjogOHB4IDEycHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51U2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMuZ3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyR3JvdXBzKCk6dGhpcy5yZW5kZXJMZWdhY3lPcHRpb25zKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb2xsYXBzZS10b2dnbGUiIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVDb2xsYXBzZSgpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmNvbGxhcHNlZD8ibHVjaWRlOmNoZXZyb25SaWdodCI6Imx1Y2lkZTpjaGV2cm9uTGVmdCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgPC9idXR0b24+CiAgICBgfXJlbmRlckdyb3Vwcygpe3JldHVybiB3YAogICAgICAke3RoaXMuZ3JvdXBzLm1hcCgkPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJncm91cEhlYWRlciAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcygkLm5hbWUpPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUdyb3VwKCQubmFtZSl9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ3JvdXBUaXRsZSI+CiAgICAgICAgICAgICAgJHskLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oJC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICR7JC5uYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imdyb3VwSXRlbXMgJHt0aGlzLmNvbGxhcHNlZEdyb3Vwcy5oYXMoJC5uYW1lKT8iY29sbGFwc2VkIjoiIn0iPgogICAgICAgICAgICAkeyQuaXRlbXMubWFwKEY9PnRoaXMucmVuZGVySXRlbShGLCQpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgKX0KICAgIGB9cmVuZGVySXRlbSgkLEYpe2lmKCJoaWRkZW4iaW4gJCYmJC5oaWRkZW4pcmV0dXJuIHdgYDtzd2l0Y2goInR5cGUiaW4gJD8kLnR5cGU6InRhYiIpe2Nhc2UiYWN0aW9uIjpyZXR1cm4gdGhpcy5yZW5kZXJBY3Rpb25JdGVtKCQpO2Nhc2UiZmlsdGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJGaWx0ZXJJdGVtKCQpO2Nhc2UibXVsdGlGaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlck11bHRpRmlsdGVySXRlbSgkKTtjYXNlImRpdmlkZXIiOnJldHVybiB0aGlzLnJlbmRlckRpdmlkZXIoKTtjYXNlImhlYWRlciI6cmV0dXJuIHRoaXMucmVuZGVySGVhZGVyKCQpO2Nhc2UibGluayI6cmV0dXJuIHRoaXMucmVuZGVyTGlua0l0ZW0oJCk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKCQsRil9fXJlbmRlclRhYkl0ZW0oJCxGKXtsZXQgWT10aGlzLnNlbGVjdGVkSXRlbT8ua2V5PT09JC5rZXksRz0kLmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHtZPyJzZWxlY3RlZCI6IiJ9ICR7Rz8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFHJiZ0aGlzLnNlbGVjdFRhYkl0ZW0oJCxGKX0iCiAgICAgICAgQGNvbnRleHRtZW51PSIke1o9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoWiwkKX0iCiAgICAgID4KICAgICAgICAkeyQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbigkLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHskLmtleX08L3NwYW4+CiAgICAgICAgJHskLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHskLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHskLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7JC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uSXRlbSgkKXtsZXQgRj0kLnZhcmlhbnR8fCJwcmltYXJ5IixZPSQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBhY3Rpb24tJHtGfSAke1k/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hWSYmdGhpcy5oYW5kbGVBY3Rpb25DbGljaygkKX0iCiAgICAgID4KICAgICAgICAkeyQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbigkLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHskLmtleX08L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHskLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWx0ZXJJdGVtKCQpe2xldCBGPSQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBmaWx0ZXIgJHskLmFjdGl2ZT8iYWN0aXZlIjoiIn0gJHtGPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUYmJnRoaXMuaGFuZGxlRmlsdGVyVG9nZ2xlKCQpfSIKICAgICAgPgogICAgICAgICR7JC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKCQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4keyQua2V5fTwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXItY2hlY2tib3ggJHskLmFjdGl2ZT8iY2hlY2tlZCI6IiJ9Ij4KICAgICAgICAgICR7JC5hY3RpdmU/d2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4keyQua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck11bHRpRmlsdGVySXRlbSgkKXtsZXQgRj10aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycy5oYXMoJC5rZXkpLFk9JC5vcHRpb25zLmZpbHRlcihHPT5HLmNoZWNrZWQpLmxlbmd0aDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJtdWx0aUZpbHRlci1oZWFkZXIgJHtGPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVNdWx0aUZpbHRlcigkLmtleSl9IgogICAgICAgID4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aUZpbHRlci10aXRsZSI+CiAgICAgICAgICAgICR7JC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKCQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgJHskLmtleX0KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICR7WT4wP3dgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLWNvdW50Ij4ke1l9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjaGV2cm9uIiAuaWNvbj0iJHsibHVjaWRlOmNoZXZyb25Eb3duIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbnMgJHtGPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAkeyQub3B0aW9ucy5tYXAoRz0+d2AKICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJtdWx0aUZpbHRlci1vcHRpb24iCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLmhhbmRsZU11bHRpRmlsdGVyT3B0aW9uVG9nZ2xlKCQsRy5rZXkpfSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbi1jaGVja2JveCAke0cuY2hlY2tlZD8iY2hlY2tlZCI6IiJ9Ij4KICAgICAgICAgICAgICAgICR7Ry5jaGVja2VkP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmNoZWNrIn0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgJHtHLmljb25OYW1lP3dgPGRlZXMtaWNvbiBjbGFzcz0ib3B0aW9uLWljb24iIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihHLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4+JHtHLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRpdmlkZXIoKXtyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51RGl2aWRlciI+PC9kaXY+YH1yZW5kZXJIZWFkZXIoJCl7cmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudUhlYWRlciI+JHskLmxhYmVsfTwvZGl2PmB9cmVuZGVyTGlua0l0ZW0oJCl7bGV0IEY9JC5leHRlcm5hbD8/JC5ocmVmLnN0YXJ0c1dpdGgoImh0dHAiKSxZPSQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBsaW5rICR7WT8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFZJiZ0aGlzLmhhbmRsZUxpbmtDbGljaygkKX0iCiAgICAgID4KICAgICAgICAkeyQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbigkLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHskLmtleX08L3NwYW4+CiAgICAgICAgJHtGP3dgPGRlZXMtaWNvbiBjbGFzcz0iZXh0ZXJuYWwtaWNvbiIgLmljb249IiR7Imx1Y2lkZTpleHRlcm5hbExpbmsifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4keyQua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckxlZ2FjeU9wdGlvbnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibGVnYWN5T3B0aW9ucyI+CiAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk9wdGlvbnMubWFwKCQ9PntpZigiZGl2aWRlciJpbiAkJiYkLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZGl2aWRlciI+PC9kaXY+YDtsZXQgRj0kLFk9e2tleTpGLmtleSxpY29uTmFtZTpGLmljb25OYW1lLGFjdGlvbjpGLmFjdGlvbixiYWRnZTpGLmJhZGdlLGJhZGdlVmFyaWFudDpGLmJhZGdlVmFyaWFudH07cmV0dXJuIHRoaXMucmVuZGVyVGFiSXRlbShZKX0pfQogICAgICA8L2Rpdj4KICAgIGB9bm9ybWFsaXplSWNvbigkKXtyZXR1cm4gJC5zdGFydHNXaXRoKCJsdWNpZGU6Iik/JDpgbHVjaWRlOiR7JH1gfXRvZ2dsZUdyb3VwKCQpe2xldCBGPW5ldyBTZXQodGhpcy5jb2xsYXBzZWRHcm91cHMpO0YuaGFzKCQpP0YuZGVsZXRlKCQpOkYuYWRkKCQpLHRoaXMuY29sbGFwc2VkR3JvdXBzPUZ9dG9nZ2xlTXVsdGlGaWx0ZXIoJCl7bGV0IEY9bmV3IFNldCh0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycyk7Ri5oYXMoJCk/Ri5kZWxldGUoJCk6Ri5hZGQoJCksdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9Rn10b2dnbGVDb2xsYXBzZSgpe3RoaXMuY29sbGFwc2VkPSF0aGlzLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6e2NvbGxhcHNlZDp0aGlzLmNvbGxhcHNlZH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zZWxlY3RUYWJJdGVtKCQsRil7dGhpcy5zZWxlY3RlZEl0ZW09JCwkLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tc2VsZWN0Iix7ZGV0YWlsOntpdGVtOiQsZ3JvdXA6Rn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hc3luYyBoYW5kbGVBY3Rpb25DbGljaygkKXskLmNvbmZpcm1NZXNzYWdlJiYhd2luZG93LmNvbmZpcm0oJC5jb25maXJtTWVzc2FnZSl8fChhd2FpdCAkLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGlvbi1jbGljayIse2RldGFpbDp7aXRlbTokfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1oYW5kbGVGaWx0ZXJUb2dnbGUoJCl7bGV0IEY9ISQuYWN0aXZlOyQuYWN0aXZlPUYsJC5vblRvZ2dsZShGKSx0aGlzLnJlbmRlckNvdW50ZXIrKyx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWx0ZXItdG9nZ2xlIix7ZGV0YWlsOntpdGVtOiQsYWN0aXZlOkZ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoJCxGKXtsZXQgWT0kLm9wdGlvbnMuZmluZChaPT5aLmtleT09PUYpO1kmJihZLmNoZWNrZWQ9IVkuY2hlY2tlZCk7bGV0IEc9JC5vcHRpb25zLmZpbHRlcihaPT5aLmNoZWNrZWQpLm1hcChaPT5aLmtleSk7JC5vbkNoYW5nZShHKSx0aGlzLnJlbmRlckNvdW50ZXIrKyx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtdWx0aWZpbHRlci1jaGFuZ2UiLHtkZXRhaWw6e2l0ZW06JCxzZWxlY3RlZEtleXM6R30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVMaW5rQ2xpY2soJCl7JC5leHRlcm5hbD8/JC5ocmVmLnN0YXJ0c1dpdGgoImh0dHAiKT93aW5kb3cub3BlbigkLmhyZWYsIl9ibGFuayIsIm5vb3BlbmVyLG5vcmVmZXJyZXIiKTp3aW5kb3cubG9jYXRpb24uaHJlZj0kLmhyZWYsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGluay1jbGljayIse2RldGFpbDp7aXRlbTokfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRleHRNZW51KCQsRil7Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoJCxbe25hbWU6IlZpZXcgZGV0YWlscyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLGljb25OYW1lOiJsdWNpZGU6ZXllIn0se25hbWU6IkVkaXQiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToibHVjaWRlOnBlbmNpbCJ9XSl9YXN5bmMgZmlyc3RVcGRhdGVkKCQpe2lmKGF3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZCgkKSx0aGlzLmdyb3Vwcy5sZW5ndGg+MCl7bGV0IEY9bmV3IFNldCxZPW5ldyBTZXQ7aWYodGhpcy5ncm91cHMuZm9yRWFjaChHPT57Ry5jb2xsYXBzZWQmJkYuYWRkKEcubmFtZSksRy5pdGVtcy5mb3JFYWNoKFo9PntpZigidHlwZSJpbiBaJiZaLnR5cGU9PT0ibXVsdGlGaWx0ZXIiKXtsZXQgZGU9WjtkZS5jb2xsYXBzZWQmJlkuYWRkKGRlLmtleSl9fSl9KSx0aGlzLmNvbGxhcHNlZEdyb3Vwcz1GLHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPVksIXRoaXMuc2VsZWN0ZWRJdGVtKWZvcihsZXQgRyBvZiB0aGlzLmdyb3Vwcylmb3IobGV0IFogb2YgRy5pdGVtcyl7bGV0IGRlPSJ0eXBlImluIFo/Wi50eXBlOiJ0YWIiO2lmKGRlPT09InRhYiJ8fGRlPT09dm9pZCAwKXtsZXQgRD1aO2lmKCFELmRpc2FibGVkKXt0aGlzLnNlbGVjdFRhYkl0ZW0oRCxHKTtyZXR1cm59fX19ZWxzZSBpZih0aGlzLnNlbGVjdGlvbk9wdGlvbnMubGVuZ3RoPjApe2xldCBGPXRoaXMuc2VsZWN0aW9uT3B0aW9ucy5maW5kKFk9PiEoImRpdmlkZXIiaW4gWSkpO2lmKEYmJiF0aGlzLnNlbGVjdGVkSXRlbSl7bGV0IFk9e2tleTpGLmtleSxpY29uTmFtZTpGLmljb25OYW1lLGFjdGlvbjpGLmFjdGlvbn07dGhpcy5zZWxlY3RUYWJJdGVtKFkpfX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEJuKHRoaXMseil9c3RhdGlje0JuKGEscil9fTtyZXR1cm4gQT1hfSkoKX0pO3ZhciB0ZyxuMix5aDEsd2gxLFhacixKWnI9dSgoKT0+e3ZlKCk7UHAoKTt0Zz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sbjI9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHloMT0oKCk9PntsZXQgdD1bdWUoImRlbW8tY2xvc2VhYmxlLXRhYnMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb0Nsb3NlYWJsZVRhYnMiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxjPVtpZSgpXSx0Zyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InRhYnMiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS50YWJzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20udGFicz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksdGcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJ0YWJDb3VudGVyImluIG0sImhhcyIpLGdldDppKG09Pm0udGFiQ291bnRlciwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnRhYkNvdW50ZXI9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLHRnKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9I2U9bjIodGhpcyxvLFt7a2V5OiJNYWluIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWFpbiBjbGlja2VkIiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoaCl7dGhpcy4jZT1ofSN0PShuMih0aGlzLGwpLG4yKHRoaXMsZCwwKSk7Z2V0IHRhYkNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGFiQ291bnRlcihoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bcmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuaW5mbyB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwwLDAsMC4wMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMDIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKys7bGV0IGg9YERvY3VtZW50ICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpoLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKGAke2h9IGNsaWNrZWRgKSwiYWN0aW9uIiksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6aSgoKT0+dGhpcy5yZW1vdmVUYWIoaCksIm9uQ2xvc2UiKX1dfXJlbW92ZVRhYihoKXt0aGlzLnRhYnM9dGhpcy50YWJzLmZpbHRlcihtPT5tLmtleSE9PWgpfWNsZWFyQWxsKCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpPy5jbGVhcigpLHRoaXMudGFicz1bXSx0aGlzLnRhYkNvdW50ZXI9MH1yZW5kZXIoKXtsZXQgaD1be2lkOiJhZGQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoKCk9PnRoaXMuYWRkVGFiKCksImFjdGlvbiIpLHRvb2x0aXA6Ik5ldyBUYWIifSx7aWQ6ImNsZWFyIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoKCk9PnRoaXMuY2xlYXJBbGwoKSwiYWN0aW9uIiksdG9vbHRpcDoiQ2xlYXIgQWxsIFRhYnMifV07cmV0dXJuIHdgCiAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAudGFicz0ke3RoaXMudGFic30KICAgICAgICAuYWN0aW9uc1JpZ2h0PSR7aH0KICAgICAgICBAdGFiLWNsb3NlPSR7bT0+dGhpcy5yZW1vdmVUYWIobS5kZXRhaWwudGFiLmtleSl9CiAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQ2xpY2sgdGhlIFggYnV0dG9uIG9uIHRhYnMgdG8gY2xvc2UgdGhlbS4gVXNlIHRoZSArIGJ1dHRvbiB0byBhZGQgdGFicyBhbmQgdGhlIHRyYXNoIGJ1dHRvbiB0byBjbGVhciBhbGwuCiAgICAgICAgPGJyPkN1cnJlbnQgdGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG4yKHRoaXMsZil9c3RhdGlje24yKGEscil9fTtyZXR1cm4gcD1hfSkoKSx3aDE9KCgpPT57bGV0IHQ9W3VlKCJkZW1vLWF1dG9oaWRlLXRhYnMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb0F1dG9IaWRlVGFicyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W2llKCldLHRnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4idGFicyJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnRhYnMsImdldCIpLHNldDppKChnLHkpPT57Zy50YWJzPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx0Zyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJhdXRvSGlkZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmF1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuYXV0b0hpZGU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLHRnKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJ0aHJlc2hvbGQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy50aHJlc2hvbGQsImdldCIpLHNldDppKChnLHkpPT57Zy50aHJlc2hvbGQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLHRnKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9I2U9bjIodGhpcyxvLFt7a2V5OiJUYWIgMSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlRhYiAxIiksImFjdGlvbiIpfSx7a2V5OiJUYWIgMiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlRhYiAyIiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoYil7dGhpcy4jZT1ifSN0PShuMih0aGlzLGwpLG4yKHRoaXMsZCwhMCkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiN0fXNldCBhdXRvSGlkZShiKXt0aGlzLiN0PWJ9I3I9KG4yKHRoaXMsZiksbjIodGhpcyxoLDEpKTtnZXQgdGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRocmVzaG9sZChiKXt0aGlzLiNyPWJ9c3RhdGljIHN0eWxlcz1bcmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC50YWJzLWNvbnRhaW5lciBkZWVzLWFwcHVpLXRhYnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3RhYkNvdW50ZXI9KG4yKHRoaXMsbSksMik7YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKyssdGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpgVGFiICR7dGhpcy50YWJDb3VudGVyfWAsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYFRhYiAke3RoaXMudGFiQ291bnRlcn1gKSwiYWN0aW9uIil9XX1yZW1vdmVMYXN0VGFiKCl7dGhpcy50YWJzLmxlbmd0aD4wJiYodGhpcy50YWJzPXRoaXMudGFicy5zbGljZSgwLC0xKSl9Y2xlYXJUYWJzKCl7dGhpcy50YWJzPVtdfXJlbmRlcigpe2xldCBiPXRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMudGhyZXNob2xkO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgJHtiP3dgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyIj5UYWJzIGhpZGRlbiAoJHt0aGlzLnRhYnMubGVuZ3RofSB0YWJzIOKJpCB0aHJlc2hvbGQgJHt0aGlzLnRocmVzaG9sZH0pPC9zcGFuPmA6d2A8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy5hdXRvSGlkZX0KICAgICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRocmVzaG9sZH0KICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPmB9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRUYWIoKX0+KyBBZGQgVGFiPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVMYXN0VGFiKCl9Pi0gUmVtb3ZlIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY2xlYXJUYWJzKCl9PkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0wfX0+VGhyZXNob2xkOiAwPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTF9fT5UaHJlc2hvbGQ6IDE8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9Mn19PlRocmVzaG9sZDogMjwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQXV0by1oaWRlOiAke3RoaXMuYXV0b0hpZGU/Ik9OIjoiT0ZGIn0gfCBUaHJlc2hvbGQ6ICR7dGhpcy50aHJlc2hvbGR9IHwgVGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICAgIDxicj5UYWJzIHdpbGwgaGlkZSB3aGVuIGNvdW50IOKJpCB0aHJlc2hvbGQuCiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7bjIoYSxyKX19O3JldHVybiB2PWF9KSgpLFhacj1pKCgpPT57bGV0IHQ9W3trZXk6IkhvbWUiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJIb21lIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkFuYWx5dGljcyBEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiVXNlciBTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSGVscCBjbGlja2VkIiksImFjdGlvbiIpfV0sZT1be2tleToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlByb2ZpbGUgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiU2VjdXJpdHkiLGljb25OYW1lOiJsdWNpZGU6c2hpZWxkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNlY3VyaXR5IGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6Ik5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJOb3RpZmljYXRpb25zIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkludGVncmF0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTpsaW5rIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkludGVncmF0aW9ucyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBZHZhbmNlZCIsaWNvbk5hbWU6Imx1Y2lkZTpjb2RlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFkdmFuY2VkIGNsaWNrZWQiKSwiYWN0aW9uIil9XSxyPVt7a2V5OiJBbGwiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWxsIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkFjdGl2ZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBY3RpdmUgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQ29tcGxldGVkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBcmNoaXZlZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBcmNoaXZlZCBjbGlja2VkIiksImFjdGlvbiIpfV0sYT1be2lkOiJiYWNrIixpY29uTmFtZToibHVjaWRlOmFycm93TGVmdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJCYWNrIiksImFjdGlvbiIpLHRvb2x0aXA6IkdvIEJhY2sifV0scz1be2lkOiJhZGQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBZGQgdGFiIiksImFjdGlvbiIpLHRvb2x0aXA6Ik5ldyBUYWIifSx7aWQ6InNlYXJjaCIsaWNvbk5hbWU6Imx1Y2lkZTpzZWFyY2giLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2VhcmNoIiksImFjdGlvbiIpLHRvb2x0aXA6IlNlYXJjaCBUYWJzIn0se2lkOiJkaXNhYmxlZCIsaWNvbk5hbWU6Imx1Y2lkZTpsb2NrIixhY3Rpb246aSgoKT0+e30sImFjdGlvbiIpLHRvb2x0aXA6IkRpc2FibGVkIEFjdGlvbiIsZGlzYWJsZWQ6ITB9XSxuPWkobz0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07Ij4KICAgICAgJHtvfQogICAgPC9kaXY+CiAgYCwiZGVtb0NvbnRlbnQiKTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudHdvLWNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwMHB4IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ib3Jpem9udGFsIFRhYnMgd2l0aCBBbmltYXRlZCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtuKCJTZWxlY3QgYSB0YWIgdG8gc2VlIHRoZSBzbW9vdGggc2xpZGluZyBhbmltYXRpb24gb2YgdGhlIGluZGljYXRvci4gVGhlIGluZGljYXRvciBhdXRvbWF0aWNhbGx5IGFkanVzdHMgaXRzIHdpZHRoIHRvIG1hdGNoIHRoZSB0YWIgY29udGVudCB3aXRoIG1pbmltYWwgcGFkZGluZy4iKX0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UYWJzIHdpdGggQWN0aW9uIEJ1dHRvbnM8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAudGFicz0ke3R9CiAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHthfQogICAgICAgICAgLmFjdGlvbnNSaWdodD0ke3N9CiAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7bigiQWN0aW9uIGJ1dHRvbnMgY2FuIGJlIHBsYWNlZCBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgdGFiIGJhci4gVGhleSByZW1haW4gZml4ZWQgd2hpbGUgdGFicyBzY3JvbGwuIFRoZSBsb2NrIGljb24gc2hvd3MgYSBkaXNhYmxlZCBhY3Rpb24uIil9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q2xvc2VhYmxlIFRhYnMgd2l0aCBBY3Rpb25zPC9kaXY+CiAgICAgICAgPGRlbW8tY2xvc2VhYmxlLXRhYnM+PC9kZW1vLWNsb3NlYWJsZS10YWJzPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG8taGlkZSBUYWJzPC9kaXY+CiAgICAgICAgPGRlbW8tYXV0b2hpZGUtdGFicz48L2RlbW8tYXV0b2hpZGUtdGFicz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WZXJ0aWNhbCBUYWJzIExheW91dDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InR3by1jb2x1bW4iPgogICAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFiU3R5bGU9JHsidmVydGljYWwifSAudGFicz0ke2V9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICAgJHtuKCJWZXJ0aWNhbCB0YWJzIHdvcmsgZ3JlYXQgZm9yIHNldHRpbmdzIHBhZ2VzIGFuZCBuYXZpZ2F0aW9uIG1lbnVzLiBUaGUgYW5pbWF0ZWQgaW5kaWNhdG9yIHNtb290aGx5IHRyYW5zaXRpb25zIGJldHdlZW4gc2VsZWN0aW9ucy4iKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5XaXRob3V0IEluZGljYXRvcjwvZGl2PgogICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnNob3dUYWJJbmRpY2F0b3I9JHshMX0gLnRhYnM9JHtyfT48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAke24oIlRhYnMgY2FuIGFsc28gYmUgdXNlZCB3aXRob3V0IHRoZSBhbmltYXRlZCBpbmRpY2F0b3IgYnkgc2V0dGluZyBzaG93VGFiSW5kaWNhdG9yIHRvIGZhbHNlLiIpfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHpjLHBzLGVRcix1N3Q9dSgoKT0+e1BwKCk7dmUoKTtNcigpO0pacigpO2x0KCk7emM9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHBzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxlUXI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWFwcHVpLXRhYnMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXTt2YXIgZGU9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVRhYnMiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgRD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6T2JqZWN0fSldLHA9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx2PVtQKHt0eXBlOlN0cmluZ30pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1bUCh7dHlwZTpOdW1iZXJ9KV0sTz1bUCh7dHlwZTpBcnJheX0pXSxCPVtQKHt0eXBlOkFycmF5fSldLEE9W2llKCldLFk9W2llKCldLHpjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4idGFicyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnRhYnMsImdldCIpLHNldDppKChRLGZlKT0+e1EudGFicz1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxvLGwpLHpjKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNlbGVjdGVkVGFiImluIFEsImhhcyIpLGdldDppKFE9PlEuc2VsZWN0ZWRUYWIsImdldCIpLHNldDppKChRLGZlKT0+e1Euc2VsZWN0ZWRUYWI9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZCxmKSx6Yyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJJbmRpY2F0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNob3dUYWJJbmRpY2F0b3IiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5zaG93VGFiSW5kaWNhdG9yLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnNob3dUYWJJbmRpY2F0b3I9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0saCxtKSx6Yyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYlN0eWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJ0YWJTdHlsZSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnRhYlN0eWxlLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnRhYlN0eWxlPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGIsZyksemModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iYXV0b0hpZGUiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5hdXRvSGlkZSwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5hdXRvSGlkZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxrLE0pLHpjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImF1dG9IaWRlVGhyZXNob2xkImluIFEsImhhcyIpLGdldDppKFE9PlEuYXV0b0hpZGVUaHJlc2hvbGQsImdldCIpLHNldDppKChRLGZlKT0+e1EuYXV0b0hpZGVUaHJlc2hvbGQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sXyxTKSx6Yyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnNMZWZ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJhY3Rpb25zTGVmdCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmFjdGlvbnNMZWZ0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmFjdGlvbnNMZWZ0PWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LEwsRSksemModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImFjdGlvbnNSaWdodCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5hY3Rpb25zUmlnaHQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sQyx6KSx6Yyh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhblNjcm9sbExlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImNhblNjcm9sbExlZnQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5jYW5TY3JvbGxMZWZ0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmNhblNjcm9sbExlZnQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxGKSx6Yyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhblNjcm9sbFJpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJjYW5TY3JvbGxSaWdodCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmNhblNjcm9sbFJpZ2h0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmNhblNjcm9sbFJpZ2h0PWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LEcsWiksemMobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCxyKSxkZT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89WFpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9cHModGhpcyxvLFtdKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKEQpe3RoaXMuI2U9RH0jdD0ocHModGhpcyxsKSxwcyh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFRhYihEKXt0aGlzLiN0PUR9I3I9KHBzKHRoaXMsZikscHModGhpcyxoLCEwKSk7Z2V0IHNob3dUYWJJbmRpY2F0b3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1RhYkluZGljYXRvcihEKXt0aGlzLiNyPUR9I2E9KHBzKHRoaXMsbSkscHModGhpcyxiLCJob3Jpem9udGFsIikpO2dldCB0YWJTdHlsZSgpe3JldHVybiB0aGlzLiNhfXNldCB0YWJTdHlsZShEKXt0aGlzLiNhPUR9I2k9KHBzKHRoaXMsZykscHModGhpcyxrLCExKSk7Z2V0IGF1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGF1dG9IaWRlKEQpe3RoaXMuI2k9RH0jcz0ocHModGhpcyxNKSxwcyh0aGlzLF8sMCkpO2dldCBhdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNzfXNldCBhdXRvSGlkZVRocmVzaG9sZChEKXt0aGlzLiNzPUR9I249KHBzKHRoaXMsUykscHModGhpcyxMLFtdKSk7Z2V0IGFjdGlvbnNMZWZ0KCl7cmV0dXJuIHRoaXMuI259c2V0IGFjdGlvbnNMZWZ0KEQpe3RoaXMuI249RH0jbz0ocHModGhpcyxFKSxwcyh0aGlzLEMsW10pKTtnZXQgYWN0aW9uc1JpZ2h0KCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGlvbnNSaWdodChEKXt0aGlzLiNvPUR9I2w9KHBzKHRoaXMseikscHModGhpcywkLCExKSk7Z2V0IGNhblNjcm9sbExlZnQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY2FuU2Nyb2xsTGVmdChEKXt0aGlzLiNsPUR9I2M9KHBzKHRoaXMsRikscHModGhpcyxHLCExKSk7Z2V0IGNhblNjcm9sbFJpZ2h0KCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNhblNjcm9sbFJpZ2h0KEQpe3RoaXMuI2M9RH1yZXNpemVPYnNlcnZlcj0ocHModGhpcyxaKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIuaG9yaXpvbnRhbC13cmFwcGVyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAvKiBTY3JvbGwgZmFkZSBpbmRpY2F0b3JzICovCiAgICAgIC5zY3JvbGwtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDFweDsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtbGVmdCB7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsCiAgICAgICAgICAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke3guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS1yaWdodCB7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsCiAgICAgICAgICAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke3guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc2Nyb2xsLWFyZWEgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBhY3Rpb24gYnV0dG9ucyAqLwogICAgICAudGFiLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb25zLmxlZnQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9ucy5yaWdodCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTJweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItcHJlc3NlZCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAvKiBTaG93IHNjcm9sbGJhciBvbiBob3ZlciAqLwogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWwsCiAgICAgIC5zY3JvbGwtYXJlYTpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXI6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsCiAgICAgIC5zY3JvbGwtYXJlYTpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwwLDAsMC4zNSkiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpIil9OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci52ZXJ0aWNhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIgLnRhYi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyOjphZnRlciwKICAgICAgLmhvcml6b250YWwgLnRhYjpob3ZlciArIC50YWI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMjQ0LCAyNDQsIDI0NSwgMC41KSIsInJnYmEoMzksIDM5LCA0MiwgMC41KSIpfTsKICAgICAgfQoKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWJJbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC50YWJJbmRpY2F0b3Iubm8tdHJhbnNpdGlvbiB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlciAudGFiSW5kaWNhdG9yIHsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA4KTsKICAgICAgfQoKICAgICAgLyogQ2xvc2UgYnV0dG9uICovCiAgICAgIC50YWItY2xvc2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXByZXNzZWQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5hdXRvSGlkZSYmdGhpcy50YWJzLmxlbmd0aDw9dGhpcy5hdXRvSGlkZVRocmVzaG9sZD93YGA6d2AKICAgICAgJHt0aGlzLnJlbmRlclRhYnNXcmFwcGVyKCl9CiAgICBgfXJlbmRlclRhYnNXcmFwcGVyKCl7bGV0IEQ9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIixRPUQ/InRhYnMtd3JhcHBlciBob3Jpem9udGFsLXdyYXBwZXIiOiJ2ZXJ0aWNhbC13cmFwcGVyIixmZT1gdGFic0NvbnRhaW5lciAke3RoaXMudGFiU3R5bGV9YDtpZihEKXtsZXQgVD10aGlzLmFjdGlvbnNMZWZ0JiZ0aGlzLmFjdGlvbnNMZWZ0Lmxlbmd0aD4wLFc9dGhpcy5hY3Rpb25zUmlnaHQmJnRoaXMuYWN0aW9uc1JpZ2h0Lmxlbmd0aD4wO3JldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9IiR7UX0iPgogICAgICAgICAgJHtUP3RoaXMucmVuZGVyQWN0aW9ucyh0aGlzLmFjdGlvbnNMZWZ0LCJsZWZ0Iik6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtYXJlYSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC1mYWRlIHNjcm9sbC1mYWRlLWxlZnQgJHt0aGlzLmNhblNjcm9sbExlZnQ/InZpc2libGUiOiIifSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IiR7ZmV9IiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChwZT0+dGhpcy5yZW5kZXJUYWIocGUsRCkpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtcmlnaHQgJHt0aGlzLmNhblNjcm9sbFJpZ2h0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke1c/dGhpcy5yZW5kZXJBY3Rpb25zKHRoaXMuYWN0aW9uc1JpZ2h0LCJyaWdodCIpOiIifQogICAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9IiR7UX0iPgogICAgICAgIDxkaXYgY2xhc3M9IiR7ZmV9Ij4KICAgICAgICAgICR7dGhpcy50YWJzLm1hcChUPT50aGlzLnJlbmRlclRhYihULEQpKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2hvd1RhYkluZGljYXRvcj93YDxkaXYgY2xhc3M9InRhYkluZGljYXRvciI+PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbnMoRCxRKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFiLWFjdGlvbnMgJHtRfSI+CiAgICAgICAgJHtELm1hcChmZT0+d2AKICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRhYi1hY3Rpb24tYnV0dG9uICR7ZmUuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIHRpdGxlPSIke2ZlLnRvb2x0aXB8fGZlLmlkfSIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFmZS5kaXNhYmxlZCYmZmUuYWN0aW9uKCl9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtmZS5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihELFEpe2xldCBUPWB0YWIgJHtEPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifWAsVz1ELmNsb3NlYWJsZT93YAogICAgICA8c3BhbiBjbGFzcz0idGFiLWNsb3NlIiBAY2xpY2s9IiR7bWU9PnRoaXMuY2xvc2VUYWIobWUsRCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPjwvZGVlcy1pY29uPgogICAgICA8L3NwYW4+CiAgICBgOiIiLHBlPVE/d2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jb250ZW50Ij4KICAgICAgICAke3RoaXMucmVuZGVyVGFiSWNvbihEKX0KICAgICAgICAke0Qua2V5fQogICAgICA8L3NwYW4+CiAgICAgICR7V30KICAgIGA6d2AKICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oRCl9CiAgICAgICR7RC5rZXl9CiAgICAgICR7V30KICAgIGA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iJHtUfSIKICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0VGFiKEQpfSIKICAgICAgPgogICAgICAgICR7cGV9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWJJY29uKEQpe3JldHVybiBELmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0ke0QuaWNvbk5hbWV9PjwvZGVlcy1pY29uPmA6IiJ9c2VsZWN0VGFiKEQpe3RoaXMuc2VsZWN0ZWRUYWI9RCxELmFjdGlvbigpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2Nyb2xsVGFiSW50b1ZpZXcoRCl9KSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc2VsZWN0Iix7ZGV0YWlsOnt0YWI6RH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbGVhcigpe3RoaXMudGFicz1bXSx0aGlzLnNlbGVjdGVkVGFiPW51bGx9Y2xvc2VUYWIoRCxRKXtELnN0b3BQcm9wYWdhdGlvbigpLFEub25DbG9zZSYmUS5vbkNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNsb3NlIix7ZGV0YWlsOnt0YWI6UX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCl9c2V0dXBSZXNpemVPYnNlcnZlcigpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO3RoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSk7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7RCYmdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKEQpfWhhbmRsZVNjcm9sbD1pKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSwiaGFuZGxlU2Nyb2xsIik7dXBkYXRlU2Nyb2xsU3RhdGUoKXtsZXQgRD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJzQ29udGFpbmVyLmhvcml6b250YWwiKTtpZighRClyZXR1cm47bGV0IFE9RC5zY3JvbGxMZWZ0LGZlPUQuc2Nyb2xsV2lkdGgsVD1ELmNsaWVudFdpZHRoLFc9Mjt0aGlzLmNhblNjcm9sbExlZnQ9UT5XLHRoaXMuY2FuU2Nyb2xsUmlnaHQ9UTxmZS1ULVd9c2Nyb2xsVGFiSW50b1ZpZXcoRCl7aWYodGhpcy50YWJTdHlsZSE9PSJob3Jpem9udGFsIilyZXR1cm47bGV0IFE9dGhpcy50YWJzLmluZGV4T2YoRCk7aWYoUT09PS0xKXJldHVybjtsZXQgZmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIiksVD1mZT8ucXVlcnlTZWxlY3RvcihgLnRhYjpudGgtY2hpbGQoJHtRKzF9KWApO2lmKFQmJmZlKXtsZXQgVz1mZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwZT1ULmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3BlLmxlZnQ+PVcubGVmdCYmcGUucmlnaHQ8PVcucmlnaHR8fFQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifSl9fWFzeW5jIHVwZGF0ZWQoRCl7c3VwZXIudXBkYXRlZChEKSxELmhhcygidGFicyIpJiYoIXRoaXMudGFic3x8dGhpcy50YWJzLmxlbmd0aD09PTA/dGhpcy5zZWxlY3RlZFRhYiE9PW51bGwmJih0aGlzLnNlbGVjdGVkVGFiPW51bGwsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOm51bGx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpOnRoaXMuc2VsZWN0ZWRUYWImJiF0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYik/dGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKTp0aGlzLnNlbGVjdGVkVGFifHx0aGlzLnNlbGVjdFRhYih0aGlzLnRhYnNbMF0pKSwoRC5oYXMoInNlbGVjdGVkVGFiIil8fEQuaGFzKCJ0YWJzIikpJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSwhdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZCYmZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMudXBkYXRlVGFiSW5kaWNhdG9yKCksdGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSkpfWluZGljYXRvckluaXRpYWxpemVkPSExO3VwZGF0ZVRhYkluZGljYXRvcigpe2lmKCF0aGlzLnNob3VsZFNob3dJbmRpY2F0b3IoKSlyZXR1cm47bGV0IEQ9dGhpcy5nZXRTZWxlY3RlZFRhYkVsZW1lbnQoKTtpZighRClyZXR1cm47bGV0IFE9dGhpcy5nZXRJbmRpY2F0b3JFbGVtZW50KCk7USYmKHRoaXMuaGFuZGxlSW5pdGlhbFRyYW5zaXRpb24oUSksdGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj90aGlzLnVwZGF0ZUhvcml6b250YWxJbmRpY2F0b3IoUSxEKTp0aGlzLnVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKFEsRCksUS5zdHlsZS5vcGFjaXR5PSIxIil9c2hvdWxkU2hvd0luZGljYXRvcigpe3JldHVybiEhdGhpcy5zZWxlY3RlZFRhYiYmdGhpcy5zaG93VGFiSW5kaWNhdG9yJiZ0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYil9Z2V0U2VsZWN0ZWRUYWJFbGVtZW50KCl7bGV0IEQ9dGhpcy50YWJzLmluZGV4T2YodGhpcy5zZWxlY3RlZFRhYiksZmU9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj9gLnRhYnMtd3JhcHBlciAudGFic0NvbnRhaW5lciAudGFiOm50aC1jaGlsZCgke0QrMX0pYDpgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtEKzF9KWA7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGZlKX1nZXRJbmRpY2F0b3JFbGVtZW50KCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudGFiSW5kaWNhdG9yIil9aGFuZGxlSW5pdGlhbFRyYW5zaXRpb24oRCl7dGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZHx8KEQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITAsc2V0VGltZW91dCgoKT0+e0QuY2xhc3NMaXN0LnJlbW92ZSgibm8tdHJhbnNpdGlvbiIpfSw1MCkpfXVwZGF0ZUhvcml6b250YWxJbmRpY2F0b3IoRCxRKXtsZXQgZmU9US5xdWVyeVNlbGVjdG9yKCIudGFiLWNvbnRlbnQiKTtpZighZmUpcmV0dXJuO2xldCBUPUQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxXPWZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHBlPVcubGVmdC1ULmxlZnQsbWU9Vy53aWR0aCs4LHE9cGUtNDtELnN0eWxlLndpZHRoPWAke21lfXB4YCxELnN0eWxlLmxlZnQ9YCR7cX1weGB9dXBkYXRlVmVydGljYWxJbmRpY2F0b3IoRCxRKXtsZXQgZmU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIik7ZmUmJihELnN0eWxlLnRvcD1gJHtRLm9mZnNldFRvcCtmZS5vZmZzZXRUb3B9cHhgLEQuc3R5bGUuaGVpZ2h0PWAke1EuY2xpZW50SGVpZ2h0fXB4YCl9c3RhdGlje3BzKGEscil9fTtyZXR1cm4gZGU9YX0pKCl9KTt2YXIgbGYsWm8sdFFyLHA3dD11KCgpPT57UHAoKTt2ZSgpO01yKCk7dTd0KCk7bHQoKTtsZj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sWm89ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHRRcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpTWFpbmNvbnRlbnQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6T2JqZWN0fSldLHA9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx2PVtQKHt0eXBlOkJvb2xlYW59KV0seT1bUCh7dHlwZTpOdW1iZXJ9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkFycmF5fSldLGxmKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGFicyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRhYnMsImdldCIpLHNldDppKCh6LEEpPT57ei50YWJzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxsZih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWxlY3RlZFRhYiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc2VsZWN0ZWRUYWI9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLGxmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNob3dUYWJzImluIHosImhhcyIpLGdldDppKHo9Pnouc2hvd1RhYnMsImdldCIpLHNldDppKCh6LEEpPT57ei5zaG93VGFicz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGgsbSksbGYodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhYnNBdXRvSGlkZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRhYnNBdXRvSGlkZSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnRhYnNBdXRvSGlkZT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksbGYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhYnNBdXRvSGlkZVRocmVzaG9sZCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRhYnNBdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnRhYnNBdXRvSGlkZVRocmVzaG9sZD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksbGYodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJBY3Rpb25zTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGFiQWN0aW9uc0xlZnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei50YWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnRhYkFjdGlvbnNMZWZ0PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSxsZih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYkFjdGlvbnNSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGFiQWN0aW9uc1JpZ2h0ImluIHosImhhcyIpLGdldDppKHo9PnoudGFiQWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGFiQWN0aW9uc1JpZ2h0PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSxsZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAudGFicz0ke1t7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJEZXRhaWxzIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGV0YWlscyIpLCJhY3Rpb24iKX0se2tleToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKSwiYWN0aW9uIil9XX0KICAgID4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBzdHlsZT0icGFkZGluZzogNDBweDsgY29sb3I6ICNjY2M7Ij4KICAgICAgICA8aDE+TWFpbiBDb250ZW50IEFyZWE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgd2hlcmUgeW91ciBhcHBsaWNhdGlvbiBjb250ZW50IGdvZXMuPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1hcHB1aS1tYWluY29udGVudD4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1abyh0aGlzLG8sW3trZXk6Ilx1MjZBMFx1RkUwRiBQbGVhc2Ugc2V0IHRhYnMiLGFjdGlvbjppKCgpPT5jb25zb2xlLndhcm4oIk5vIHRhYnMgY29uZmlndXJlZCBmb3IgbWFpbmNvbnRlbnQiKSwiYWN0aW9uIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhDKXt0aGlzLiNlPUN9I3Q9KFpvKHRoaXMsbCksWm8odGhpcyxkLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoQyl7dGhpcy4jdD1DfSNyPShabyh0aGlzLGYpLFpvKHRoaXMsaCwhMCkpO2dldCBzaG93VGFicygpe3JldHVybiB0aGlzLiNyfXNldCBzaG93VGFicyhDKXt0aGlzLiNyPUN9I2E9KFpvKHRoaXMsbSksWm8odGhpcyxiLCExKSk7Z2V0IHRhYnNBdXRvSGlkZSgpe3JldHVybiB0aGlzLiNhfXNldCB0YWJzQXV0b0hpZGUoQyl7dGhpcy4jYT1DfSNpPShabyh0aGlzLGcpLFpvKHRoaXMsaywwKSk7Z2V0IHRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoQyl7dGhpcy4jaT1DfSNzPShabyh0aGlzLE0pLFpvKHRoaXMsXyxbXSkpO2dldCB0YWJBY3Rpb25zTGVmdCgpe3JldHVybiB0aGlzLiNzfXNldCB0YWJBY3Rpb25zTGVmdChDKXt0aGlzLiNzPUN9I249KFpvKHRoaXMsUyksWm8odGhpcyxMLFtdKSk7Z2V0IHRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNufXNldCB0YWJBY3Rpb25zUmlnaHQoQyl7dGhpcy4jbj1DfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHt0aGlzLnRhYkFjdGlvbnNMZWZ0fQogICAgICAgICAgICAuYWN0aW9uc1JpZ2h0PSR7dGhpcy50YWJBY3Rpb25zUmlnaHR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7Qz0+dGhpcy5oYW5kbGVUYWJTZWxlY3QoQyl9CiAgICAgICAgICAgIEB0YWItY2xvc2U9JHtDPT50aGlzLmhhbmRsZVRhYkNsb3NlKEMpfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVUYWJTZWxlY3QoQyl7dGhpcy5zZWxlY3RlZFRhYj1DLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDpDLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhYkNsb3NlKEMpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDpDLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSxDLmhhcygic2hvd1RhYnMiKSYmKHRoaXMuc2hvd1RhYnM/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm5vdGFicyIpOnRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKSl9YXN5bmMgZmlyc3RVcGRhdGVkKEMpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChDKSx0aGlzLnNob3dUYWJzfHx0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIik7bGV0IHo9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpO3omJmF3YWl0IHoudXBkYXRlQ29tcGxldGV9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFpvKHRoaXMsRSl9c3RhdGlje1pvKGEscil9fTtyZXR1cm4gQj1hfSkoKX0pO3ZhciBWcixidCxyUXIsYVFyPXUoKCk9Pnt2ZSgpO01yKCk7UHAoKTtVWnIoKTtsdCgpO2w3dCgpO3o2dCgpO1Q2dCgpO2M3dCgpO2Q3dCgpO3A3dCgpO3c2dCgpO1ZyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxidD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sclFyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hcHB1aSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXSxhZSxYPVtdLEo9W10seGUsSz1bXSxWPVtdLGxlLG5lPVtdLGVlPVtdLHplLEhlPVtdLEdlPVtdLG90LERlPVtdLF9lPVtdLG9lLHNlPVtdLGNlPVtdLFRlLHFlPVtdLG50PVtdLHZ0LExlPVtdLHdlPVtdLE9lLGdlPVtdLGJlPVtdLEllLHl0PVtdLHd0PVtdLFl0LHphPVtdLFBhPVtdLFlpLEVlPVtdLGplPVtdLHNyLHJhPVtdLHBhPVtdLHlhLGZhPVtdLENuPVtdLHpuLEFlPVtdLENlPVtdLFllLERyPVtdLEVzPVtdLExkLGtlPVtdLGhlPVtdLCRlLGV0PVtdLFB0PVtdLElzLEtpPVtdLERvPVtdLG0yLHFjPVtdLERkPVtdLGcyLF9mPVtdLGVrPVtdLHRrLHJrPVtdLGFrPVtdLGlrLHNrPVtdLG5rPVtdO3ZhciBvaz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOkJvb2xlYW59KV0seT1bUCh7dHlwZTpPYmplY3R9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkJvb2xlYW59KV0sQj1bUCh7dHlwZTpTdHJpbmd9KV0sQT1bUCh7dHlwZTpTdHJpbmd9KV0sWT1bUCh7dHlwZTpBcnJheX0pXSxkZT1bUCh7dHlwZTpBcnJheX0pXSxmZT1bUCh7dHlwZTpBcnJheX0pXSxwZT1bUCh7dHlwZTpPYmplY3R9KV0sSD1bUCh7dHlwZTpTdHJpbmd9KV0sYWU9W1Aoe3R5cGU6QXJyYXl9KV0seGU9W1Aoe3R5cGU6T2JqZWN0fSldLGxlPVtQKHt0eXBlOkJvb2xlYW59KV0semU9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxvdD1bUCh7dHlwZTpCb29sZWFufSldLG9lPVtQKHt0eXBlOkJvb2xlYW59KV0sVGU9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx2dD1bUCh7dHlwZTpCb29sZWFufSldLE9lPVtQKHt0eXBlOk51bWJlcn0pXSxJZT1baWUoKV0sWXQ9W2llKCldLFlpPVtQKHt0eXBlOkFycmF5fSldLHNyPVtQKHt0eXBlOk9iamVjdH0pXSx5YT1bUCh7dHlwZTpBcnJheX0pXSx6bj1bUCh7dHlwZTpBcnJheX0pXSxZZT1baWUoKV0sTGQ9W2llKCldLCRlPVtpZSgpXSxJcz1baWUoKV0sbTI9W2llKCldLGcyPVtpZSgpXSx0az1baWUoKV0saWs9W2llKCldLFZyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJNZW51SXRlbXMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5hcHBiYXJNZW51SXRlbXMsImdldCIpLHNldDppKChJLHRlKT0+e0kuYXBwYmFyTWVudUl0ZW1zPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LG8sbCksVnIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1icyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYXBwYmFyQnJlYWRjcnVtYnMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5hcHBiYXJCcmVhZGNydW1icywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hcHBiYXJCcmVhZGNydW1icz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxkLGYpLFZyKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IsImdldCIpLHNldDppKChJLHRlKT0+e0kuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxoLG0pLFZyKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5hcHBiYXJTaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDppKChJLHRlKT0+e0kuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGIsZyksVnIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJVc2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJVc2VyImluIEksImhhcyIpLGdldDppKEk9PkkuYXBwYmFyVXNlciwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hcHBiYXJVc2VyPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGssTSksVnIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJQcm9maWxlTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJQcm9maWxlTWVudUl0ZW1zImluIEksImhhcyIpLGdldDppKEk9PkkuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LF8sUyksVnIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJTaG93U2VhcmNoImluIEksImhhcyIpLGdldDppKEk9PkkuYXBwYmFyU2hvd1NlYXJjaCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hcHBiYXJTaG93U2VhcmNoPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEwsRSksVnIodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWlubWVudUxvZ29JY29uImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVMb2dvSWNvbiwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5tYWlubWVudUxvZ29JY29uPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEMseiksVnIodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWlubWVudUxvZ29UZXh0ImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVMb2dvVGV4dCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5tYWlubWVudUxvZ29UZXh0PXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LCQsRiksVnIodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ibWFpbm1lbnVHcm91cHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5tYWlubWVudUdyb3VwcywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5tYWlubWVudUdyb3Vwcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxHLFopLFZyKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Qm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ibWFpbm1lbnVCb3R0b21UYWJzImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVCb3R0b21UYWJzLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5tZW51Qm90dG9tVGFicz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxELFEpLFZyKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ibWFpbm1lbnVUYWJzImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVUYWJzLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5tZW51VGFicz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxULFcpLFZyKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5tYWlubWVudVNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5tZW51U2VsZWN0ZWRUYWI9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbWUscSksVnIodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51SGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2Vjb25kYXJ5bWVudUhlYWRpbmciaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWNvbmRhcnltZW51SGVhZGluZywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWNvbmRhcnltZW51SGVhZGluZz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxVLGopLFZyKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlY29uZGFyeW1lbnVHcm91cHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWNvbmRhcnltZW51R3JvdXBzLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNlY29uZGFyeW1lbnVHcm91cHM9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sWCxKKSxWcih0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtImluIEksImhhcyIpLGdldDppKEk9Pkkuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEssViksVnIodGhpcyxudWxsLGxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+Im1haW5tZW51Q29sbGFwc2VkImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVDb2xsYXBzZWQsImdldCIpLHNldDppKChJLHRlKT0+e0kubWFpbm1lbnVDb2xsYXBzZWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbmUsZWUpLFZyKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlY29uZGFyeW1lbnVDb2xsYXBzZWQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWNvbmRhcnltZW51Q29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sSGUsR2UpLFZyKHRoaXMsbnVsbCxvdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ibWFpbm1lbnVWaXNpYmxlImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5tZW51VmlzaWJsZT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxEZSxfZSksVnIodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlY29uZGFyeW1lbnVWaXNpYmxlImluIEksImhhcyIpLGdldDppKEk9Pkkuc2Vjb25kYXJ5bWVudVZpc2libGUsImdldCIpLHNldDppKChJLHRlKT0+e0kuc2Vjb25kYXJ5bWVudVZpc2libGU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sc2UsY2UpLFZyKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFic1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+Im1haW5jb250ZW50VGFic1Zpc2libGUiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5tYWluY29udGVudFRhYnNWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5jb250ZW50VGFic1Zpc2libGU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0scWUsbnQpLFZyKHRoaXMsbnVsbCx2dCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5jb250ZW50VGFic0F1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmNvbnRlbnRUYWJzQXV0b0hpZGU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sTGUsd2UpLFZyKHRoaXMsbnVsbCxPZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZ2UsYmUpLFZyKHRoaXMsbnVsbCxJZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYWN0aXZpdHlMb2dWaXNpYmxlImluIEksImhhcyIpLGdldDppKEk9PkkuYWN0aXZpdHlMb2dWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmFjdGl2aXR5TG9nVmlzaWJsZT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSx5dCx3dCksVnIodGhpcyxudWxsLFl0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChJLHRlKT0+e0kuYWN0aXZpdHlMb2dDb3VudD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSx6YSxQYSksVnIodGhpcyxudWxsLFlpLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWluY29udGVudFRhYnMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5tYWluY29udGVudFRhYnMsImdldCIpLHNldDppKChJLHRlKT0+e0kubWFpbmNvbnRlbnRUYWJzPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEVlLGplKSxWcih0aGlzLG51bGwsc3Ise2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudFNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWluY29udGVudFNlbGVjdGVkVGFiImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbmNvbnRlbnRTZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5tYWluY29udGVudFNlbGVjdGVkVGFiPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LHJhLHBhKSxWcih0aGlzLG51bGwseWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbnRlbnRUYWJBY3Rpb25zTGVmdCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmNvbnRlbnRUYWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5jb250ZW50VGFiQWN0aW9uc0xlZnQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZmEsQ24pLFZyKHRoaXMsbnVsbCx6bix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJBY3Rpb25zUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbnRlbnRUYWJBY3Rpb25zUmlnaHQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5jb250ZW50VGFiQWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sQWUsQ2UpLFZyKHRoaXMsbnVsbCxZZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYXBwYmFyImluIEksImhhcyIpLGdldDppKEk9PkkuYXBwYmFyLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmFwcGJhcj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxEcixFcyksVnIodGhpcyxudWxsLExkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+Im1haW5tZW51ImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnUsImdldCIpLHNldDppKChJLHRlKT0+e0kubWFpbm1lbnU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sa2UsaGUpLFZyKHRoaXMsbnVsbCwkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlY29uZGFyeW1lbnUiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWNvbmRhcnltZW51LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNlY29uZGFyeW1lbnU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZXQsUHQpLFZyKHRoaXMsbnVsbCxJcyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWluY29udGVudCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLm1haW5jb250ZW50LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5jb250ZW50PXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEtpLERvKSxWcih0aGlzLG51bGwsbTIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eWxvZ0VsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImFjdGl2aXR5bG9nRWxlbWVudCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmFjdGl2aXR5bG9nRWxlbWVudCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hY3Rpdml0eWxvZ0VsZW1lbnQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0scWMsRGQpLFZyKHRoaXMsbnVsbCxnMix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbWJhckVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImJvdHRvbWJhckVsZW1lbnQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5ib3R0b21iYXJFbGVtZW50LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmJvdHRvbWJhckVsZW1lbnQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sX2YsZWspLFZyKHRoaXMsbnVsbCx0ayx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbWJhclZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImJvdHRvbWJhclZpc2libGUiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5ib3R0b21iYXJWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmJvdHRvbWJhclZpc2libGU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0scmssYWspLFZyKHRoaXMsbnVsbCxpayx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJjdXJyZW50VmlldyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmN1cnJlbnRWaWV3PXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LHNrLG5rKSxWcihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpSfSxudWxsLHIpLG9rPWE9ZS52YWx1ZSxSJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlJ9KX1zdGF0aWMgZGVtbz1qWnI7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTt2aWV3TGlmZWN5Y2xlJD1uZXcgY3Iuc21hcnRyeC5yeGpzLlN1YmplY3Q7dmlld0NoYW5nZWQkPW5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdDsjZT1idCh0aGlzLG8sW10pO2dldCBhcHBiYXJNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgYXBwYmFyTWVudUl0ZW1zKFIpe3RoaXMuI2U9Un0jdD0oYnQodGhpcyxsKSxidCh0aGlzLGQsIiIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYXBwYmFyQnJlYWRjcnVtYnMoUil7dGhpcy4jdD1SfSNyPShidCh0aGlzLGYpLGJ0KHRoaXMsaCwiID4gIikpO2dldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IoUil7dGhpcy4jcj1SfSNhPShidCh0aGlzLG0pLGJ0KHRoaXMsYiwhMCkpO2dldCBhcHBiYXJTaG93V2luZG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKFIpe3RoaXMuI2E9Un0jaT0oYnQodGhpcyxnKSxidCh0aGlzLGssdm9pZCAwKSk7Z2V0IGFwcGJhclVzZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXBwYmFyVXNlcihSKXt0aGlzLiNpPVJ9I3M9KGJ0KHRoaXMsTSksYnQodGhpcyxfLFtdKSk7Z2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgYXBwYmFyUHJvZmlsZU1lbnVJdGVtcyhSKXt0aGlzLiNzPVJ9I249KGJ0KHRoaXMsUyksYnQodGhpcyxMLCExKSk7Z2V0IGFwcGJhclNob3dTZWFyY2goKXtyZXR1cm4gdGhpcy4jbn1zZXQgYXBwYmFyU2hvd1NlYXJjaChSKXt0aGlzLiNuPVJ9I289KGJ0KHRoaXMsRSksYnQodGhpcyxDLCIiKSk7Z2V0IG1haW5tZW51TG9nb0ljb24oKXtyZXR1cm4gdGhpcy4jb31zZXQgbWFpbm1lbnVMb2dvSWNvbihSKXt0aGlzLiNvPVJ9I2w9KGJ0KHRoaXMseiksYnQodGhpcywkLCIiKSk7Z2V0IG1haW5tZW51TG9nb1RleHQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbWFpbm1lbnVMb2dvVGV4dChSKXt0aGlzLiNsPVJ9I2M9KGJ0KHRoaXMsRiksYnQodGhpcyxHLFtdKSk7Z2V0IG1haW5tZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI2N9c2V0IG1haW5tZW51R3JvdXBzKFIpe3RoaXMuI2M9Un0jZD0oYnQodGhpcyxaKSxidCh0aGlzLEQsW10pKTtnZXQgbWFpbm1lbnVCb3R0b21UYWJzKCl7cmV0dXJuIHRoaXMuI2R9c2V0IG1haW5tZW51Qm90dG9tVGFicyhSKXt0aGlzLiNkPVJ9I3U9KGJ0KHRoaXMsUSksYnQodGhpcyxULFtdKSk7Z2V0IG1haW5tZW51VGFicygpe3JldHVybiB0aGlzLiN1fXNldCBtYWlubWVudVRhYnMoUil7dGhpcy4jdT1SfSNwPShidCh0aGlzLFcpLGJ0KHRoaXMsbWUsdm9pZCAwKSk7Z2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWFpbm1lbnVTZWxlY3RlZFRhYihSKXt0aGlzLiNwPVJ9I2Y9KGJ0KHRoaXMscSksYnQodGhpcyxVLCIiKSk7Z2V0IHNlY29uZGFyeW1lbnVIZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNlY29uZGFyeW1lbnVIZWFkaW5nKFIpe3RoaXMuI2Y9Un0jaD0oYnQodGhpcyxqKSxidCh0aGlzLFgsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNofXNldCBzZWNvbmRhcnltZW51R3JvdXBzKFIpe3RoaXMuI2g9Un0jbT0oYnQodGhpcyxKKSxidCh0aGlzLEssdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbShSKXt0aGlzLiNtPVJ9I2c9KGJ0KHRoaXMsViksYnQodGhpcyxuZSwhMSkpO2dldCBtYWlubWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNnfXNldCBtYWlubWVudUNvbGxhcHNlZChSKXt0aGlzLiNnPVJ9I2I9KGJ0KHRoaXMsZWUpLGJ0KHRoaXMsSGUsITEpKTtnZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNifXNldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKFIpe3RoaXMuI2I9Un0jeD0oYnQodGhpcyxHZSksYnQodGhpcyxEZSwhMCkpO2dldCBtYWlubWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jeH1zZXQgbWFpbm1lbnVWaXNpYmxlKFIpe3RoaXMuI3g9Un0jdj0oYnQodGhpcyxfZSksYnQodGhpcyxzZSwhMCkpO2dldCBzZWNvbmRhcnltZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN2fXNldCBzZWNvbmRhcnltZW51VmlzaWJsZShSKXt0aGlzLiN2PVJ9I3k9KGJ0KHRoaXMsY2UpLGJ0KHRoaXMscWUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKFIpe3RoaXMuI3k9Un0jdz0oYnQodGhpcyxudCksYnQodGhpcyxMZSwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoUil7dGhpcy4jdz1SfSNrPShidCh0aGlzLHdlKSxidCh0aGlzLGdlLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNrfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKFIpe3RoaXMuI2s9Un0jUz0oYnQodGhpcyxiZSksYnQodGhpcyx5dCwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jU31zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKFIpe3RoaXMuI1M9Un0jTT0oYnQodGhpcyx3dCksYnQodGhpcyx6YSwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgYWN0aXZpdHlMb2dDb3VudChSKXt0aGlzLiNNPVJ9I0M9KGJ0KHRoaXMsUGEpLGJ0KHRoaXMsRWUsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI0N9c2V0IG1haW5jb250ZW50VGFicyhSKXt0aGlzLiNDPVJ9I3o9KGJ0KHRoaXMsamUpLGJ0KHRoaXMscmEsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jen1zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihSKXt0aGlzLiN6PVJ9I189KGJ0KHRoaXMscGEpLGJ0KHRoaXMsZmEsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNMZWZ0KCl7cmV0dXJuIHRoaXMuI199c2V0IGNvbnRlbnRUYWJBY3Rpb25zTGVmdChSKXt0aGlzLiNfPVJ9I1Q9KGJ0KHRoaXMsQ24pLGJ0KHRoaXMsQWUsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNUfXNldCBjb250ZW50VGFiQWN0aW9uc1JpZ2h0KFIpe3RoaXMuI1Q9Un0jTD0oYnQodGhpcyxDZSksYnQodGhpcyxEcix2b2lkIDApKTtnZXQgYXBwYmFyKCl7cmV0dXJuIHRoaXMuI0x9c2V0IGFwcGJhcihSKXt0aGlzLiNMPVJ9I0Q9KGJ0KHRoaXMsRXMpLGJ0KHRoaXMsa2Usdm9pZCAwKSk7Z2V0IG1haW5tZW51KCl7cmV0dXJuIHRoaXMuI0R9c2V0IG1haW5tZW51KFIpe3RoaXMuI0Q9Un0jJD0oYnQodGhpcyxoZSksYnQodGhpcyxldCx2b2lkIDApKTtnZXQgc2Vjb25kYXJ5bWVudSgpe3JldHVybiB0aGlzLiMkfXNldCBzZWNvbmRhcnltZW51KFIpe3RoaXMuIyQ9Un0jQT0oYnQodGhpcyxQdCksYnQodGhpcyxLaSx2b2lkIDApKTtnZXQgbWFpbmNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jQX1zZXQgbWFpbmNvbnRlbnQoUil7dGhpcy4jQT1SfSNFPShidCh0aGlzLERvKSxidCh0aGlzLHFjLHZvaWQgMCkpO2dldCBhY3Rpdml0eWxvZ0VsZW1lbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgYWN0aXZpdHlsb2dFbGVtZW50KFIpe3RoaXMuI0U9Un0jST0oYnQodGhpcyxEZCksYnQodGhpcyxfZix2b2lkIDApKTtnZXQgYm90dG9tYmFyRWxlbWVudCgpe3JldHVybiB0aGlzLiNJfXNldCBib3R0b21iYXJFbGVtZW50KFIpe3RoaXMuI0k9Un0jUD0oYnQodGhpcyxlayksYnQodGhpcyxyaywhMCkpO2dldCBib3R0b21iYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI1B9c2V0IGJvdHRvbWJhclZpc2libGUoUil7dGhpcy4jUD1SfSNOPShidCh0aGlzLGFrKSxidCh0aGlzLHNrLHZvaWQgMCkpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNOfXNldCBjdXJyZW50VmlldyhSKXt0aGlzLiNOPVJ9dmlld1JlZ2lzdHJ5PShidCh0aGlzLG5rKSxuZXcgRHJlKTtyb3V0ZXJDbGVhbnVwPW51bGw7c2VhcmNoQ2FsbGJhY2s9bnVsbDtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICB9CiAgICAgIC5tYWluZ3JpZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHggLSAyNHB4KTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIC8qIGdyaWQtdGVtcGxhdGUtY29sdW1ucyBzZXQgZHluYW1pY2FsbHkgaW4gdGVtcGxhdGUgKi8KICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgMC4zcyBlYXNlLCBoZWlnaHQgMC4zcyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtib3R0b21iYXItaGlkZGVuXSkgLm1haW5ncmlkIHsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpLWJvdHRvbWJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IDQ7CiAgICAgIH0KCiAgICAgIC8qIFotaW5kZXggbGF5ZXJpbmcgZm9yIHByb3BlciBzdGFja2luZyAqLwogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLW1haW5tZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktbWFpbmNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cuaGlkZGVuIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgICAgfQoKICAgICAgLyogVmlldyBjb250YWluZXIgZm9yIGR5bmFtaWNhbGx5IGxvYWRlZCB2aWV3cyAqLwogICAgICAudmlldy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudmlldy1jb250YWluZXI6ZW1wdHkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1hcHB1aS1hcHBiYXIKICAgICAgICAubWVudUl0ZW1zPSR7dGhpcy5hcHBiYXJNZW51SXRlbXN9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1ic30KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0ke3RoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcn0KICAgICAgICAuc2hvd1dpbmRvd0NvbnRyb2xzPSR7dGhpcy5hcHBiYXJTaG93V2luZG93Q29udHJvbHN9CiAgICAgICAgLnVzZXI9JHt0aGlzLmFwcGJhclVzZXJ9CiAgICAgICAgLnByb2ZpbGVNZW51SXRlbXM9JHt0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgLnNob3dTZWFyY2g9JHt0aGlzLmFwcGJhclNob3dTZWFyY2h9CiAgICAgICAgLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT0keyEwfQogICAgICAgIC5hY3Rpdml0eUxvZ0NvdW50PSR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50fQogICAgICAgIC5hY3Rpdml0eUxvZ0FjdGl2ZT0ke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfQogICAgICAgIEBtZW51LXNlbGVjdD0ke1I9PnRoaXMuaGFuZGxlQXBwYmFyTWVudVNlbGVjdChSKX0KICAgICAgICBAYnJlYWRjcnVtYi1uYXZpZ2F0ZT0ke1I9PnRoaXMuaGFuZGxlQXBwYmFyQnJlYWRjcnVtYk5hdmlnYXRlKFIpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBcHBiYXJTZWFyY2hDbGljaygpfQogICAgICAgIEBzZWFyY2gtcXVlcnk9JHtSPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaFF1ZXJ5KFIpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT50aGlzLmhhbmRsZUFwcGJhclVzZXJNZW51T3BlbigpfQogICAgICAgIEBwcm9maWxlLW1lbnUtc2VsZWN0PSR7Uj0+dGhpcy5oYW5kbGVBcHBiYXJQcm9maWxlTWVudVNlbGVjdChSKX0KICAgICAgICBAYWN0aXZpdHktdG9nZ2xlPSR7KCk9PnRoaXMudG9nZ2xlQWN0aXZpdHlMb2coKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5ncmlkIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gMWZyICR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU/IjI4MHB4IjoiMHB4In07Ij4KICAgICAgICAke3RoaXMubWFpbm1lbnVWaXNpYmxlP3dgCiAgICAgICAgICA8ZGVlcy1hcHB1aS1tYWlubWVudQogICAgICAgICAgICAubG9nb0ljb249JHt0aGlzLm1haW5tZW51TG9nb0ljb259CiAgICAgICAgICAgIC5sb2dvVGV4dD0ke3RoaXMubWFpbm1lbnVMb2dvVGV4dH0KICAgICAgICAgICAgLm1lbnVHcm91cHM9JHt0aGlzLm1haW5tZW51R3JvdXBzfQogICAgICAgICAgICAuYm90dG9tVGFicz0ke3RoaXMubWFpbm1lbnVCb3R0b21UYWJzfQogICAgICAgICAgICAudGFicz0ke3RoaXMubWFpbm1lbnVUYWJzfQogICAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5jb2xsYXBzZWQ9JHt0aGlzLm1haW5tZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAdGFiLXNlbGVjdD0ke1I9PnRoaXMuaGFuZGxlTWFpbm1lbnVUYWJTZWxlY3QoUil9CiAgICAgICAgICAgIEBjb2xsYXBzZS1jaGFuZ2U9JHtSPT50aGlzLmhhbmRsZU1haW5tZW51Q29sbGFwc2VDaGFuZ2UoUil9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLW1haW5tZW51PgogICAgICAgIGA6IiJ9CiAgICAgICAgJHt0aGlzLnNlY29uZGFyeW1lbnVWaXNpYmxlP3dgCiAgICAgICAgICA8ZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51CiAgICAgICAgICAgIC5oZWFkaW5nPSR7dGhpcy5zZWNvbmRhcnltZW51SGVhZGluZ30KICAgICAgICAgICAgLmdyb3Vwcz0ke3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwc30KICAgICAgICAgICAgLnNlbGVjdGVkSXRlbT0ke3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbX0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZH0KICAgICAgICAgICAgQGl0ZW0tc2VsZWN0PSR7Uj0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51SXRlbVNlbGVjdChSKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke1I9PnRoaXMuaGFuZGxlU2Vjb25kYXJ5bWVudUNvbGxhcHNlQ2hhbmdlKFIpfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWluY29udGVudFRhYnN9CiAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9CiAgICAgICAgICAuc2hvd1RhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlfQogICAgICAgICAgLnRhYnNBdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZH0KICAgICAgICAgIC50YWJBY3Rpb25zTGVmdD0ke3RoaXMuY29udGVudFRhYkFjdGlvbnNMZWZ0fQogICAgICAgICAgLnRhYkFjdGlvbnNSaWdodD0ke3RoaXMuY29udGVudFRhYkFjdGlvbnNSaWdodH0KICAgICAgICAgIEB0YWItc2VsZWN0PSR7Uj0+dGhpcy5oYW5kbGVDb250ZW50VGFiU2VsZWN0KFIpfQogICAgICAgICAgQHRhYi1jbG9zZT0ke1I9PnRoaXMuaGFuZGxlQ29udGVudFRhYkNsb3NlKFIpfQogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgIDxzbG90IG5hbWU9Im1haW5jb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kZWVzLWFwcHVpLW1haW5jb250ZW50PgogICAgICAgIDxkZWVzLWFwcHVpLWFjdGl2aXR5bG9nCiAgICAgICAgICBjbGFzcz0iJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8idmlzaWJsZSI6ImhpZGRlbiJ9IgogICAgICAgID48L2RlZXMtYXBwdWktYWN0aXZpdHlsb2c+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuYm90dG9tYmFyVmlzaWJsZT93YAogICAgICAgIDxkZWVzLWFwcHVpLWJvdHRvbWJhcj48L2RlZXMtYXBwdWktYm90dG9tYmFyPgogICAgICBgOiIifQogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmFwcGJhcj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hcHBiYXIiKSx0aGlzLm1haW5tZW51PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLW1haW5tZW51IiksdGhpcy5zZWNvbmRhcnltZW51PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUiKSx0aGlzLm1haW5jb250ZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLW1haW5jb250ZW50IiksdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKSx0aGlzLmJvdHRvbWJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktYm90dG9tYmFyIiksdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQmJnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmVudHJpZXMkLnN1YnNjcmliZShSPT57dGhpcy5hY3Rpdml0eUxvZ0NvdW50PVIubGVuZ3RofSksdGhpcy52aWV3UmVnaXN0cnkuc2V0QXBwdWlSZWYodGhpcyl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucm91dGVyQ2xlYW51cCYmKHRoaXMucm91dGVyQ2xlYW51cCgpLHRoaXMucm91dGVyQ2xlYW51cD1udWxsKSx0aGlzLnZpZXdMaWZlY3ljbGUkLmNvbXBsZXRlKCksdGhpcy52aWV3Q2hhbmdlZCQuY29tcGxldGUoKX1zZXRBcHBCYXJNZW51cyhSKXt0aGlzLmFwcGJhck1lbnVJdGVtcz1bLi4uUl19dXBkYXRlQXBwQmFyTWVudShSLEkpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPXRoaXMuYXBwYmFyTWVudUl0ZW1zLm1hcCh0ZT0+Im5hbWUiaW4gdGUmJnRlLm5hbWU9PT1SP3suLi50ZSwuLi5JfTp0ZSl9c2V0QnJlYWRjcnVtYnMoUil7QXJyYXkuaXNBcnJheShSKT90aGlzLmFwcGJhckJyZWFkY3J1bWJzPVIuam9pbih0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IpOnRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9Un1zZXRVc2VyKFIpe3RoaXMuYXBwYmFyVXNlcj1SfXNldFByb2ZpbGVNZW51SXRlbXMoUil7dGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPVsuLi5SXX1zZXRTZWFyY2hWaXNpYmxlKFIpe3RoaXMuYXBwYmFyU2hvd1NlYXJjaD1SfXNldFdpbmRvd0NvbnRyb2xzVmlzaWJsZShSKXt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1SfW9uU2VhcmNoKFIpe3RoaXMuc2VhcmNoQ2FsbGJhY2s9Un1zZXRNYWluTWVudShSKXtSLmxvZ29JY29uIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUxvZ29JY29uPVIubG9nb0ljb24pLFIubG9nb1RleHQhPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9Ui5sb2dvVGV4dCksUi5ncm91cHMhPT12b2lkIDAmJih0aGlzLm1haW5tZW51R3JvdXBzPVsuLi5SLmdyb3Vwc10pLFIuYm90dG9tVGFicyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPVsuLi5SLmJvdHRvbVRhYnNdKX11cGRhdGVNYWluTWVudUdyb3VwKFIsSSl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcCh0ZT0+dGUubmFtZT09PVI/ey4uLnRlLC4uLkl9OnRlKX1hZGRNYWluTWVudUl0ZW0oUixJKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKHRlPT50ZS5uYW1lPT09Uj97Li4udGUsaXRlbXM6Wy4uLnRlLml0ZW1zfHxbXSxJXX06dGUpfXJlbW92ZU1haW5NZW51SXRlbShSLEkpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAodGU9PnRlLm5hbWU9PT1SP3suLi50ZSxpdGVtczoodGUuaXRlbXN8fFtdKS5maWx0ZXIoUGU9PlBlLmtleSE9PUkpfTp0ZSl9c2V0TWFpbk1lbnVTZWxlY3Rpb24oUil7Zm9yKGxldCB0ZSBvZiB0aGlzLm1haW5tZW51R3JvdXBzKXtsZXQgUGU9dGUuaXRlbXM/LmZpbmQoUmU9PlJlLmtleT09PVIpO2lmKFBlKXt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9UGU7cmV0dXJufX1sZXQgST10aGlzLm1haW5tZW51Qm90dG9tVGFicy5maW5kKHRlPT50ZS5rZXk9PT1SKTtJJiYodGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPUkpfXNldE1haW5NZW51Q29sbGFwc2VkKFIpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9Un1zZXRNYWluTWVudVZpc2libGUoUil7dGhpcy5tYWlubWVudVZpc2libGU9Un1zZXRTZWNvbmRhcnlNZW51Q29sbGFwc2VkKFIpe3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1SfXNldFNlY29uZGFyeU1lbnVWaXNpYmxlKFIpe3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU9Un1zZXRDb250ZW50VGFic1Zpc2libGUoUil7dGhpcy5tYWluY29udGVudFRhYnNWaXNpYmxlPVJ9c2V0Q29udGVudFRhYnNBdXRvSGlkZShSLEk9MCl7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlPVIsdGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkPUl9c2V0TWFpbk1lbnVCYWRnZShSLEkpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAodGU9Pih7Li4udGUsaXRlbXM6KHRlLml0ZW1zfHxbXSkubWFwKFBlPT5QZS5rZXk9PT1SP3suLi5QZSxiYWRnZTpJfTpQZSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKHRlPT50ZS5rZXk9PT1SP3suLi50ZSxiYWRnZTpJfTp0ZSl9Y2xlYXJNYWluTWVudUJhZGdlKFIpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoST0+KHsuLi5JLGl0ZW1zOihJLml0ZW1zfHxbXSkubWFwKHRlPT57aWYodGUua2V5PT09Uil7bGV0e2JhZGdlOlBlLC4uLlJlfT10ZTtyZXR1cm4gUmV9cmV0dXJuIHRlfSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKEk9PntpZihJLmtleT09PVIpe2xldHtiYWRnZTp0ZSwuLi5QZX09STtyZXR1cm4gUGV9cmV0dXJuIEl9KX1zZXRTZWNvbmRhcnlNZW51KFIpe1IuaGVhZGluZyE9PXZvaWQgMCYmKHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9Ui5oZWFkaW5nKSx0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9Wy4uLlIuZ3JvdXBzXX11cGRhdGVTZWNvbmRhcnlNZW51R3JvdXAoUixJKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcCh0ZT0+dGUubmFtZT09PVI/ey4uLnRlLC4uLkl9OnRlKX1hZGRTZWNvbmRhcnlNZW51SXRlbShSLEkpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKHRlPT50ZS5uYW1lPT09Uj97Li4udGUsaXRlbXM6Wy4uLnRlLml0ZW1zLEldfTp0ZSl9c2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihSKXtmb3IobGV0IEkgb2YgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzKXtsZXQgdGU9SS5pdGVtcy5maW5kKFBlPT4ia2V5ImluIFBlJiZQZS5rZXk9PT1SKTtpZih0ZSYmKCEoInR5cGUiaW4gdGUpfHx0ZS50eXBlPT09InRhYiJ8fHRlLnR5cGU9PT12b2lkIDApKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09dGU7cmV0dXJufX19Y2xlYXJTZWNvbmRhcnlNZW51KCl7dGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz0iIix0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9W10sdGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPXZvaWQgMH1zZXRDb250ZW50VGFicyhSKXt0aGlzLm1haW5jb250ZW50VGFicz1bLi4uUl0sUi5sZW5ndGg+MCYmIXRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYiYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1SWzBdKX1hZGRDb250ZW50VGFiKFIpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi50aGlzLm1haW5jb250ZW50VGFicyxSXX1yZW1vdmVDb250ZW50VGFiKFIpe3RoaXMubWFpbmNvbnRlbnRUYWJzPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbHRlcihJPT5JLmtleSE9PVIpLHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj8ua2V5PT09UiYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj10aGlzLm1haW5jb250ZW50VGFic1swXSl9c2VsZWN0Q29udGVudFRhYihSKXtsZXQgST10aGlzLm1haW5jb250ZW50VGFicy5maW5kKHRlPT50ZS5rZXk9PT1SKTtJJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPUkpfWdldFNlbGVjdGVkQ29udGVudFRhYigpe3JldHVybiB0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9c2V0Q29udGVudFRhYkFjdGlvbnNMZWZ0KFIpe3RoaXMuY29udGVudFRhYkFjdGlvbnNMZWZ0PVsuLi5SXX1zZXRDb250ZW50VGFiQWN0aW9uc1JpZ2h0KFIpe3RoaXMuY29udGVudFRhYkFjdGlvbnNSaWdodD1bLi4uUl19Z2V0IGFjdGl2aXR5TG9nKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50P3thZGQ6aShSPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGQoUiksImFkZCIpLGFkZE1hbnk6aShSPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGRNYW55KFIpLCJhZGRNYW55IiksY2xlYXI6aSgoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuY2xlYXIoKSwiY2xlYXIiKSxnZXRFbnRyaWVzOmkoKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmdldEVudHJpZXMoKSwiZ2V0RW50cmllcyIpLGZpbHRlcjppKFI9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmZpbHRlcihSKSwiZmlsdGVyIiksc2VhcmNoOmkoUj0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuc2VhcmNoKFIpLCJzZWFyY2giKX06e2FkZDppKFI9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGQoUikpfSwiYWRkIiksYWRkTWFueTppKFI9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGRNYW55KFIpKX0sImFkZE1hbnkiKSxjbGVhcjppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uY2xlYXIoKSl9LCJjbGVhciIpLGdldEVudHJpZXM6aSgoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmdldEVudHJpZXMoKXx8W10sImdldEVudHJpZXMiKSxmaWx0ZXI6aShSPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uZmlsdGVyKFIpfHxbXSwiZmlsdGVyIiksc2VhcmNoOmkoUj0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LnNlYXJjaChSKXx8W10sInNlYXJjaCIpfX1zZXRBY3Rpdml0eUxvZ1Zpc2libGUoUil7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU9Un10b2dnbGVBY3Rpdml0eUxvZygpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPSF0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX1nZXRBY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0IGJvdHRvbUJhcigpe3JldHVybiB0aGlzLmJvdHRvbWJhckVsZW1lbnQ/e2FkZFdpZGdldDppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5hZGRXaWRnZXQoUiksImFkZFdpZGdldCIpLHVwZGF0ZVdpZGdldDppKChSLEkpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQudXBkYXRlV2lkZ2V0KFIsSSksInVwZGF0ZVdpZGdldCIpLHJlbW92ZVdpZGdldDppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5yZW1vdmVXaWRnZXQoUiksInJlbW92ZVdpZGdldCIpLGdldFdpZGdldDppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5nZXRXaWRnZXQoUiksImdldFdpZGdldCIpLGNsZWFyV2lkZ2V0czppKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuY2xlYXJXaWRnZXRzKCksImNsZWFyV2lkZ2V0cyIpLGFkZEFjdGlvbjppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5hZGRBY3Rpb24oUiksImFkZEFjdGlvbiIpLHJlbW92ZUFjdGlvbjppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5yZW1vdmVBY3Rpb24oUiksInJlbW92ZUFjdGlvbiIpLGNsZWFyQWN0aW9uczppKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuY2xlYXJBY3Rpb25zKCksImNsZWFyQWN0aW9ucyIpfTp7YWRkV2lkZ2V0OmkoUj0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5hZGRXaWRnZXQoUikpfSwiYWRkV2lkZ2V0IiksdXBkYXRlV2lkZ2V0OmkoKFIsSSk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8udXBkYXRlV2lkZ2V0KFIsSSkpfSwidXBkYXRlV2lkZ2V0IikscmVtb3ZlV2lkZ2V0OmkoUj0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVXaWRnZXQoUikpfSwicmVtb3ZlV2lkZ2V0IiksZ2V0V2lkZ2V0OmkoUj0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5nZXRXaWRnZXQoUiksImdldFdpZGdldCIpLGNsZWFyV2lkZ2V0czppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyV2lkZ2V0cygpKX0sImNsZWFyV2lkZ2V0cyIpLGFkZEFjdGlvbjppKFI9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkQWN0aW9uKFIpKX0sImFkZEFjdGlvbiIpLHJlbW92ZUFjdGlvbjppKFI9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlQWN0aW9uKFIpKX0sInJlbW92ZUFjdGlvbiIpLGNsZWFyQWN0aW9uczppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyQWN0aW9ucygpKX0sImNsZWFyQWN0aW9ucyIpfX1zZXRCb3R0b21CYXJWaXNpYmxlKFIpe3RoaXMuYm90dG9tYmFyVmlzaWJsZT1SLFI/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iKTp0aGlzLnNldEF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIsIiIpfWdldEJvdHRvbUJhclZpc2libGUoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJWaXNpYmxlfWFzeW5jIG5hdmlnYXRlVG9WaWV3KFIsSSl7bGV0IHRlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChSKTtpZighdGUpcmV0dXJuIGNvbnNvbGUud2FybihgQ2Fubm90IG5hdmlnYXRlIHRvIHVua25vd24gdmlldzogJHtSfWApLCExO2xldCBQZT1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5jYW5MZWF2ZUN1cnJlbnRWaWV3KCk7aWYoUGUhPT0hMClpZih0eXBlb2YgUGU9PSJzdHJpbmciKXtpZighd2luZG93LmNvbmZpcm0oUGUpKXJldHVybiExfWVsc2UgcmV0dXJuITE7dGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJsb2FkaW5nIix2aWV3SWQ6Un0pO3RyeXthd2FpdCB0aGlzLmxvYWRWaWV3KHRlLEkpO2xldCBSZT10ZS5yb3V0ZXx8UjtpZihJKWZvcihsZXRbcHQsZnRdb2YgT2JqZWN0LmVudHJpZXMoSSkpUmU9UmUucmVwbGFjZShgOiR7cHR9YCxmdCk7bGV0IHR0PWAjJHtSZX1gO3JldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaCE9PXR0JiZ3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe3ZpZXdJZDpSfSwiIix0dCksITB9Y2F0Y2goUmUpe3JldHVybiB0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImxvYWRFcnJvciIsdmlld0lkOlIsZXJyb3I6UmV9KSwhMX19Z2V0Q3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld31nZXRWaWV3UmVnaXN0cnkoKXtyZXR1cm4gdGhpcy52aWV3UmVnaXN0cnl9Y29uZmlndXJlKFIpe1Iudmlld3MmJih0aGlzLnZpZXdSZWdpc3RyeS5jbGVhcigpLHRoaXMudmlld1JlZ2lzdHJ5LnJlZ2lzdGVyQWxsKFIudmlld3MpKSxSLmJyYW5kaW5nJiYodGhpcy5tYWlubWVudUxvZ29JY29uPVIuYnJhbmRpbmcubG9nb0ljb258fCIiLHRoaXMubWFpbm1lbnVMb2dvVGV4dD1SLmJyYW5kaW5nLmxvZ29UZXh0fHwiIiksUi5hcHBCYXImJih0aGlzLmFwcGJhck1lbnVJdGVtcz1SLmFwcEJhci5tZW51SXRlbXN8fFtdLHRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9Ui5hcHBCYXIuYnJlYWRjcnVtYnN8fCIiLHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj1SLmFwcEJhci5icmVhZGNydW1iU2VwYXJhdG9yfHwiID4gIix0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1SLmFwcEJhci5zaG93V2luZG93Q29udHJvbHM/PyEwLHRoaXMuYXBwYmFyU2hvd1NlYXJjaD1SLmFwcEJhci5zaG93U2VhcmNoPz8hMSx0aGlzLmFwcGJhclVzZXI9Ui5hcHBCYXIudXNlcix0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9Ui5hcHBCYXIucHJvZmlsZU1lbnVJdGVtc3x8W10pLFIubWFpbk1lbnUmJihSLm1haW5NZW51LnNlY3Rpb25zP3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5idWlsZE1haW5NZW51RnJvbVNlY3Rpb25zKFIpOlIubWFpbk1lbnUuZ3JvdXBzJiYodGhpcy5tYWlubWVudUdyb3Vwcz1SLm1haW5NZW51Lmdyb3VwcyksUi5tYWluTWVudS5sb2dvSWNvbiYmKHRoaXMubWFpbm1lbnVMb2dvSWNvbj1SLm1haW5NZW51LmxvZ29JY29uKSxSLm1haW5NZW51LmxvZ29UZXh0JiYodGhpcy5tYWlubWVudUxvZ29UZXh0PVIubWFpbk1lbnUubG9nb1RleHQpLFIubWFpbk1lbnUuYm90dG9tVGFicz90aGlzLm1haW5tZW51Qm90dG9tVGFicz1SLm1haW5NZW51LmJvdHRvbVRhYnM6Ui5tYWluTWVudS5ib3R0b21JdGVtcyYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPXRoaXMuYnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKFIubWFpbk1lbnUuYm90dG9tSXRlbXMpKSksUi5ib3R0b21CYXImJih0aGlzLnNldEJvdHRvbUJhclZpc2libGUoUi5ib3R0b21CYXIudmlzaWJsZT8/ITApLFIuYm90dG9tQmFyLndpZGdldHMmJlIuYm90dG9tQmFyLndpZGdldHMuZm9yRWFjaChJPT57dGhpcy5ib3R0b21CYXIuYWRkV2lkZ2V0KEkpfSksUi5ib3R0b21CYXIuYWN0aW9ucyYmUi5ib3R0b21CYXIuYWN0aW9ucy5mb3JFYWNoKEk9Pnt0aGlzLmJvdHRvbUJhci5hZGRBY3Rpb24oSSl9KSksdGhpcy5zZXR1cFJvdXRlckludGVncmF0aW9uKFIpLFIub25WaWV3Q2hhbmdlJiZ0aGlzLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoST0+e1Iub25WaWV3Q2hhbmdlKEkudmlld0lkLEkudmlldyl9KSxSLm9uU2VhcmNoJiYodGhpcy5zZWFyY2hDYWxsYmFjaz1SLm9uU2VhcmNoKSxSLmRlZmF1bHRWaWV3JiZ0aGlzLm5hdmlnYXRlVG9WaWV3KFIuZGVmYXVsdFZpZXcpfXNldHVwUm91dGVySW50ZWdyYXRpb24oUil7bGV0IEk9aSgoKT0+e2xldCBQZT13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZighUGUpcmV0dXJuO2xldCBSZT10aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZShQZSk7UmUmJnRoaXMubmF2aWdhdGVUb1ZpZXcoUmUudmlldy5pZCxSZS5wYXJhbXMpfSwiaGFuZGxlSGFzaENoYW5nZSIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixJKSx0aGlzLnJvdXRlckNsZWFudXA9KCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsSSl9O2xldCB0ZT13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZih0ZSl7bGV0IFBlPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKHRlKTtQZSYmc2V0VGltZW91dCgoKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldyhQZS52aWV3LmlkLFBlLnBhcmFtcyksMCl9fWJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoUil7cmV0dXJuIFIubWFpbk1lbnU/LnNlY3Rpb25zP1IubWFpbk1lbnUuc2VjdGlvbnMubWFwKEk9Pih7bmFtZTpJLm5hbWV8fCIiLGl0ZW1zOkkudmlld3MubWFwKHRlPT57bGV0IFBlPXRoaXMudmlld1JlZ2lzdHJ5LmdldCh0ZSk7cmV0dXJuIFBlP3trZXk6UGUuaWQsaWNvbk5hbWU6UGUuaWNvbk5hbWUsYWN0aW9uOmkoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcodGUpLCJhY3Rpb24iKSxiYWRnZTpQZS5iYWRnZX06KGNvbnNvbGUud2FybihgVmlldyAiJHt0ZX0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGwpfSkuZmlsdGVyKEJvb2xlYW4pfSkpOltdfWJ1aWxkQm90dG9tVGFic0Zyb21JdGVtcyhSKXtyZXR1cm4gUi5tYXAoST0+e2xldCB0ZT10aGlzLnZpZXdSZWdpc3RyeS5nZXQoSSk7cmV0dXJuIHRlP3trZXk6dGUuaWQsaWNvbk5hbWU6dGUuaWNvbk5hbWUsYWN0aW9uOmkoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoSSksImFjdGlvbiIpfTooY29uc29sZS53YXJuKGBWaWV3ICIke0l9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX1hc3luYyBsb2FkVmlldyhSLEkpe2xldCB0ZT10aGlzLmN1cnJlbnRWaWV3O3RoaXMuY3VycmVudFZpZXc9UjtsZXQgUGU9dGhpcy5tYWluY29udGVudD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIil8fHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIik7aWYoUGUpe2xldCB0dD1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5hY3RpdmF0ZVZpZXcoUi5pZCxQZSxJKTt0dCYmdGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJhY3RpdmF0ZWQiLHZpZXdJZDpSLmlkLGVsZW1lbnQ6dHQscGFyYW1zOkl9KX1SLnNlY29uZGFyeU1lbnUmJih0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9Ui5zZWNvbmRhcnlNZW51LHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9Ui5uYW1lKSxSLmNvbnRlbnRUYWJzJiYodGhpcy5tYWluY29udGVudFRhYnM9Ui5jb250ZW50VGFicyksdGhpcy5zZXRNYWluTWVudVNlbGVjdGlvbihSLmlkKTtsZXQgUmU9e3ZpZXdJZDpSLmlkLHZpZXc6UixwcmV2aW91c1ZpZXc6dGUscGFyYW1zOkl9O3RoaXMudmlld0NoYW5nZWQkLm5leHQoUmUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctY2hhbmdlIix7ZGV0YWlsOlJlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyTWVudVNlbGVjdChSKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItbWVudS1zZWxlY3QiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoUil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLWJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1zZWFyY2gtY2xpY2siLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaFF1ZXJ5KFIpe3RoaXMuc2VhcmNoQ2FsbGJhY2smJnRoaXMuc2VhcmNoQ2FsbGJhY2soUi5kZXRhaWwucXVlcnkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1xdWVyeSIse2RldGFpbDpSLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclVzZXJNZW51T3Blbigpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci11c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyUHJvZmlsZU1lbnVTZWxlY3QoUil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXByb2ZpbGUtbWVudS1zZWxlY3QiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudVRhYlNlbGVjdChSKXt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9Ui5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LXRhYi1zZWxlY3QiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51SXRlbVNlbGVjdChSKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09Ui5kZXRhaWwuaXRlbSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWl0ZW0tc2VsZWN0Iix7ZGV0YWlsOlIuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShSKXt0aGlzLm1haW5tZW51Q29sbGFwc2VkPVIuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYWlubWVudS1jb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoUil7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPVIuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpSLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoUil7dGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPVIuZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1zZWxlY3QiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZW50VGFiQ2xvc2UoUil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC10YWItY2xvc2UiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7YnQoYSxyKX19O3JldHVybiBvaz1hfSkoKX0pO3ZhciBpUXI9dSgoKT0+e2FRcigpO2w3dCgpfSk7dmFyIHNRcj11KCgpPT57cDd0KCl9KTt2YXIgblFyPXUoKCk9PntjN3QoKX0pO3ZhciBvUXI9dSgoKT0+e2Q3dCgpfSk7dmFyIGxRcj11KCgpPT57QzZ0KCl9KTt2YXIgY1FyPXUoKCk9Pnt1N3QoKX0pO3ZhciBENmUscmcsZFFyLHVRcj11KCgpPT57dm4oKTtPbygpO19zKCk7dmUoKTtuYygpO0tyKCk7bHQoKTtENmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHJnPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxkUXI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLW1vYmlsZW5hdmlnYXRpb24iKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc01vYmlsZW5hdmlnYXRpb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOkFycmF5fSldLHA9W2llKCldLEQ2ZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImhlYWRpbmciaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5oZWFkaW5nLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuaGVhZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksRDZlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJtZW51SXRlbXMiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5tZW51SXRlbXMsImdldCIpLHNldDppKChnLHkpPT57Zy5tZW51SXRlbXM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLEQ2ZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vYmlsZU5hdlpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4ibW9iaWxlTmF2WkluZGV4ImluIGcsImhhcyIpLGdldDppKGc9PmcubW9iaWxlTmF2WkluZGV4LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cubW9iaWxlTmF2WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxENmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3N0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pnt2LmNyZWF0ZUFuZFNob3coW3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0LWRhc2hib2FyZCIsYWN0aW9uOmkoYXN5bmMgYj0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBkYXNoYm9hcmQiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjppKGFzeW5jIGI9Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gcHJvZmlsZSIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aShhc3luYyBiPT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHNldHRpbmdzIiksbnVsbCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAiLGljb25OYW1lOiJsdWNpZGU6aGVscC1jaXJjbGUiLGFjdGlvbjppKGFzeW5jIGI9Pihjb25zb2xlLmxvZygiU2hvdyBoZWxwIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsdWNpZGU6bG9nLW91dCIsYWN0aW9uOmkoYXN5bmMgYj0+KGNvbnNvbGUubG9nKCJTaWduIG91dCIpLG51bGwpLCJhY3Rpb24iKX1dKX19Pk9wZW4gTW9iaWxlIE5hdmlnYXRpb248L2RlZXMtYnV0dG9uPgogIGAsImRlbW8iKTtzdGF0aWMgc2luZ2xldG9uUmVmO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGIpe3JldHVybiB0aGlzLnNpbmdsZXRvblJlZnx8KHRoaXMuc2luZ2xldG9uUmVmPW5ldyB2LGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc2luZ2xldG9uUmVmKSxhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5pbml0KCkpLHRoaXMuc2luZ2xldG9uUmVmLm1lbnVJdGVtcz1iLGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnNpbmdsZXRvblJlZi5zaG93KCksdGhpcy5zaW5nbGV0b25SZWZ9I2U9cmcodGhpcyxvLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhiKXt0aGlzLiNlPWJ9I3Q9KHJnKHRoaXMsbCkscmcodGhpcyxkLFtdKSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBtZW51SXRlbXMoYil7dGhpcy4jdD1ifSNyPShyZyh0aGlzLGYpLHJnKHRoaXMsaCwxZTMpKTtnZXQgbW9iaWxlTmF2WkluZGV4KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1vYmlsZU5hdlpJbmRleChiKXt0aGlzLiNyPWJ9cmVhZHlEZWZlcnJlZD0ocmcodGhpcyxtKSxYdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9YXN5bmMgaW5pdCgpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtIcn07CiAgICAgIH0KCiAgICAgIC5tYWluIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5tYWluLnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luOiA4cHggMTZweDsKICAgICAgfQoKICAgICAgLyogTW9iaWxlIHJlc3BvbnNpdmVuZXNzICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkgewogICAgICAgIC5tYWluIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7CiAgICAgICAgICB3aWR0aDogODV2dzsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIEFuaW1hdGlvbiBmb3IgbWVudSBpdGVtcyAqLwogICAgICBAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1haW4uc2hvdyAubWVudUl0ZW0gewogICAgICAgIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IDAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWl0ZW0taW5kZXgsIDApICogMC4wNXMpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW4gewogICAgICAgICAgLS16LWluZGV4OiAke3RoaXMubW9iaWxlTmF2WkluZGV4fTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8aDIgY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoKGIsZyk9PiJkaXZpZGVyImluIGImJmIuZGl2aWRlcj93YDxkaXYgY2xhc3M9Im1lbnVJdGVtLWRpdmlkZXIiPjwvZGl2PmA6d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibWVudUl0ZW0iCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1pdGVtLWluZGV4OiAke2d9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5oaWRlKCksYi5hY3Rpb24odGhpcyl9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2IuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke2IuaWNvbk5hbWV9IHNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudUl0ZW0tdGV4dCI+JHtiLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyO2FzeW5jIHNob3coKXtsZXQgYj1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxnPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbiIpO3RoaXMud2luZG93TGF5ZXI/KGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMud2luZG93TGF5ZXIpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuc2hvdygpKToodGhpcy53aW5kb3dMYXllcj1hd2FpdCB5bi5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmhpZGUoKX0pKSx0aGlzLm1vYmlsZU5hdlpJbmRleD15ci5nZXROZXh0WkluZGV4KCkseXIucmVnaXN0ZXIodGhpcyx0aGlzLm1vYmlsZU5hdlpJbmRleCksYXdhaXQgYi5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwKSxnLmNsYXNzTGlzdC5hZGQoInNob3ciKX1hc3luYyBoaWRlKCl7bGV0IGI9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIikuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLHlyLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHlyLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9c3RhdGlje3JnKGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBwUXI9dSgoKT0+e3VRcigpfSk7dmFyIGZRcj11KCgpPT57WlZyKCk7ejZ0KCk7bWpyKCk7aVFyKCk7c1FyKCk7blFyKCk7b1FyKCk7bFFyKCk7Y1FyKCk7cFFyKCl9KTt2YXIgaFFyPXUoKCk9PntnOSgpfSk7dmFyIG1RcixmN3QsZ1FyLGJRcj11KCgpPT57dmUoKTttUXI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGY3dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZ1FyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1idXR0b24tZXhpdCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uRXhpdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6TnVtYmVyfSldLG1Rcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InNpemUiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zaXplLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2Yuc2l6ZT1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksbVFyKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkZWVzLWJ1dHRvbi1leGl0PjwvZGVlcy1idXR0b24tZXhpdD4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1mN3QodGhpcyxvLDI0KTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGQpe3RoaXMuI2U9ZH1zdHlsZXM9KGY3dCh0aGlzLGwpLFt4LmRlZmF1bHRTdHlsZXMscmVgCgogICAgYF0pO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0TGluZSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Vjb25kTGluZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7Zjd0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciB4UXI9dSgoKT0+e2JRcigpfSk7dmFyIHZRcix5UXI9dSgoKT0+e3ZlKCk7dlFyPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+QmFzaWMgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aG91dCBsYWJlbHMgZm9yIHNpbXBsZSBncm91cGluZzwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDE8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMzwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TGFiZWxlZCBCdXR0b24gR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QnV0dG9uIGdyb3VwcyB3aXRoIGRlc2NyaXB0aXZlIGxhYmVsczwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlZpZXcgTW9kZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5HcmlkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DYXJkczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TXVsdGlwbGUgR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+TXVsdGlwbGUgYnV0dG9uIGdyb3VwcyB1c2VkIHRvZ2V0aGVyPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRhdGFzZXQ6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlRpbWUgUmFuZ2U6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjFIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj4yNEg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+N0Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+MzBEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5FeHBvcnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VmVydGljYWwgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCB2ZXJ0aWNhbCBsYXlvdXQ8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAyNHB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgZGlyZWN0aW9uPSJ2ZXJ0aWNhbCIgbGFiZWw9Ik5hdmlnYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRhc2hib2FyZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+QW5hbHl0aWNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlcG9ydHM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2V0dGluZ3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RWRpdCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRlbGV0ZSBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk1peGVkIEJ1dHRvbiBUeXBlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRpZmZlcmVudCBidXR0b24gdHlwZXMgd2l0aGluIGdyb3VwczwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlN0YXR1czoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InN1Y2Nlc3MiPkFjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+UGVuZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGFuZ2VyIj5JbmFjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIGg3dCwkcmUsd1FyLGtRcj11KCgpPT57dmUoKTtNcigpO3lRcigpO2x0KCk7aDd0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSwkcmU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHdRcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYnV0dG9uLWdyb3VwIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNCdXR0b25Hcm91cCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCgpXSxoN3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ibGFiZWwiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5sYWJlbCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmxhYmVsPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxoN3QodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImRpcmVjdGlvbiJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmRpcmVjdGlvbiwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmRpcmVjdGlvbj12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksaDd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89dlFyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQnV0dG9uIl07I2U9JHJlKHRoaXMsbywiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKGgpe3RoaXMuI2U9aH0jdD0oJHJlKHRoaXMsbCksJHJlKHRoaXMsZCwiaG9yaXpvbnRhbCIpKTtnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRpcmVjdGlvbihoKXt0aGlzLiN0PWh9Y29uc3RydWN0b3IoKXtzdXBlcigpLCRyZSh0aGlzLGYpLFphLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwLnZlcnRpY2FsIC5sYWJlbCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKCopIHsKICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImxhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljeyRyZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgU1FyPXUoKCk9PntrUXIoKX0pO3ZhciBNUXI9dSgoKT0+e2hRcigpO3hRcigpO1NRcigpfSk7dmFyIENRcix6UXI9dSgoKT0+e3ZlKCk7d2EoKTttN3QoKTtDUXI9aSgoKT0+e2xldCB0PXtzeXN0ZW06e2xhYmVsOiJTeXN0ZW0gVXNhZ2UgKCUpIixzZXJpZXM6W3tuYW1lOiJDUFUiLGRhdGE6W3t4Om5ldyBEYXRlKERhdGUubm93KCktM2U1KS50b0lTT1N0cmluZygpLHk6MjV9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMjRlNCkudG9JU09TdHJpbmcoKSx5OjMwfSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTE4ZTQpLnRvSVNPU3RyaW5nKCkseToyOH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xMmU0KS50b0lTT1N0cmluZygpLHk6MzV9LHt4Om5ldyBEYXRlKERhdGUubm93KCktNmU0KS50b0lTT1N0cmluZygpLHk6MzJ9LHt4Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSx5OjM4fV19LHtuYW1lOiJNZW1vcnkiLGRhdGE6W3t4Om5ldyBEYXRlKERhdGUubm93KCktM2U1KS50b0lTT1N0cmluZygpLHk6NDV9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMjRlNCkudG9JU09TdHJpbmcoKSx5OjQ4fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTE4ZTQpLnRvSVNPU3RyaW5nKCkseTo0Nn0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xMmU0KS50b0lTT1N0cmluZygpLHk6NTJ9LHt4Om5ldyBEYXRlKERhdGUubm93KCktNmU0KS50b0lTT1N0cmluZygpLHk6NTB9LHt4Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSx5OjU1fV19XX19LGU9e3N5c3RlbTppKHI9PmAke3J9JWAsInN5c3RlbSIpfTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHI9PntsZXQgYT1yLnF1ZXJ5U2VsZWN0b3IoIiNtYWluLWNoYXJ0Iikscz1yLnF1ZXJ5U2VsZWN0b3IoIiNjb25uZWN0aW9ucy1jaGFydCIpLG4sbyxsPSJzeXN0ZW0iLGM9e3N5c3RlbTppKEI9PmAke0J9JWAsInN5c3RlbSIpLG5ldHdvcms6aShCPT5gJHtCfSBNYnBzYCwibmV0d29yayIpLHNhbGVzOmkoQj0+YCQke0IudG9Mb2NhbGVTdHJpbmcoKX1gLCJzYWxlcyIpfSxkPTEyMCoxZTMsZj0xZTMscD01ZTMsaD17Y3B1OjMwLG1lbW9yeTo1MCxkb3dubG9hZDoxNTAsdXBsb2FkOjMwLGNvbm5lY3Rpb25zOjE1MH0sbT1pKChCLEMsej1wKT0+e2xldCBBPVtdLCQ9RGF0ZS5ub3coKSxGPU1hdGguZmxvb3IoZC96KTtmb3IobGV0IFk9RjtZPj0wO1ktLSl7bGV0IEc9bmV3IERhdGUoJC1ZKnopLnRvSVNPU3RyaW5nKCksWj1CKyhNYXRoLnJhbmRvbSgpLS41KSpDO0EucHVzaCh7eDpHLHk6TWF0aC5yb3VuZChaKX0pfXJldHVybiBBfSwiZ2VuZXJhdGVJbml0aWFsRGF0YSIpLHY9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTptKGguY3B1LDEwKX0se25hbWU6Ik1lbW9yeSIsZGF0YTptKGgubWVtb3J5LDgpfV19LG5ldHdvcms6e2xhYmVsOiJOZXR3b3JrIFRyYWZmaWMgKE1icHMpIixzZXJpZXM6W3tuYW1lOiJEb3dubG9hZCIsZGF0YTptKGguZG93bmxvYWQsMzApfSx7bmFtZToiVXBsb2FkIixkYXRhOm0oaC51cGxvYWQsMTApfV19LHNhbGVzOntsYWJlbDoiU2FsZXMgQW5hbHl0aWNzIixzZXJpZXM6W3tuYW1lOiJSZXZlbnVlIixkYXRhOlt7eDoiMjAyNS0wMS0wMSIseTo0NWUzfSx7eDoiMjAyNS0wMS0wMiIseTo1MmUzfSx7eDoiMjAyNS0wMS0wMyIseTo0OGUzfSx7eDoiMjAyNS0wMS0wNCIseTo2MWUzfSx7eDoiMjAyNS0wMS0wNSIseTo1OGUzfSx7eDoiMjAyNS0wMS0wNiIseTo2NWUzfV19LHtuYW1lOiJQcm9maXQiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjEyZTN9LHt4OiIyMDI1LTAxLTAyIix5OjE0ZTN9LHt4OiIyMDI1LTAxLTAzIix5OjExZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjE4ZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjE2ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjJlNH1dfV19fSxiPWkoKEIsQyx6LEE9NSk9PntsZXQgJD0oTWF0aC5yYW5kb20oKS0uNSkqQSoyLEY9QiskLEc9KChDK3opLzItRikqLjE7cmV0dXJuIEYrPUcsRj1NYXRoLm1heChDLE1hdGgubWluKHosRikpLE1hdGgucm91bmQoRil9LCJnZXROZXh0VmFsdWUiKSxnPURhdGUubm93KCkseT1EYXRlLm5vdygpLGs9aSgoKT0+e2lmKCFhKXJldHVybjtsZXQgQj1EYXRlLm5vdygpO2lmKEItZz49cCl7Zz1CO2xldCB6PW5ldyBEYXRlKEIpLnRvSVNPU3RyaW5nKCk7aWYobD09PSJzeXN0ZW0iKXtoLmNwdT1iKGguY3B1LDIwLDUwLDMpLGgubWVtb3J5PWIoaC5tZW1vcnksNDAsNzAsMik7bGV0IEE9YS5jaGFydFNlcmllcy5tYXAoKCQsRik9Pih7bmFtZTokLm5hbWUsZGF0YTpbLi4uJC5kYXRhLEY9PT0wP3t4OnoseTpoLmNwdX06e3g6eix5OmgubWVtb3J5fV19KSk7YS51cGRhdGVTZXJpZXMoQSwhMSl9ZWxzZSBpZihsPT09Im5ldHdvcmsiKXtoLmRvd25sb2FkPWIoaC5kb3dubG9hZCwxMDAsMjAwLDEwKSxoLnVwbG9hZD1iKGgudXBsb2FkLDIwLDUwLDUpO2xldCBBPWEuY2hhcnRTZXJpZXMubWFwKCgkLEYpPT4oe25hbWU6JC5uYW1lLGRhdGE6Wy4uLiQuZGF0YSxGPT09MD97eDp6LHk6aC5kb3dubG9hZH06e3g6eix5OmgudXBsb2FkfV19KSk7YS51cGRhdGVTZXJpZXMoQSwhMSl9fX0sImFkZFJlYWx0aW1lRGF0YSIpLE09aSgoKT0+e2lmKCFzKXJldHVybjtsZXQgQj1EYXRlLm5vdygpLEM9bmV3IERhdGUoQikudG9JU09TdHJpbmcoKSx6PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMSktMTA7aC5jb25uZWN0aW9ucz1NYXRoLm1heCg1MCxNYXRoLm1pbigzMDAsaC5jb25uZWN0aW9ucyt6KSk7bGV0IEE9cy5jaGFydFNlcmllcywkPVt7bmFtZTpBWzBdPy5uYW1lfHwiQ29ubmVjdGlvbnMiLGRhdGE6Wy4uLkFbMF0/LmRhdGF8fFtdLHt4OkMseTpoLmNvbm5lY3Rpb25zfV19XTtzLnVwZGF0ZVNlcmllcygkLCExKX0sInVwZGF0ZUNvbm5lY3Rpb25zIiksTj1pKEI9PntsPUI7bGV0IEM9dltCXTthLmxhYmVsPUMubGFiZWwsYS5zZXJpZXM9Qy5zZXJpZXMsYS55QXhpc0Zvcm1hdHRlcj1jW0JdLEI9PT0ic3lzdGVtIj8oYS55QXhpc1NjYWxpbmc9InBlcmNlbnRhZ2UiLGEueUF4aXNNYXg9MTAwKTphLnlBeGlzU2NhbGluZz0iZHluYW1pYyIsZz1EYXRlLm5vdygpLXB9LCJzd2l0Y2hEYXRhc2V0IiksXz1pKCgpPT57IW4mJihsPT09InN5c3RlbSJ8fGw9PT0ibmV0d29yayIpJiYoYS5yZWFsdGltZU1vZGU9ITAsbj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PmsoKSxwKSksb3x8KHMucmVhbHRpbWVNb2RlPSEwLG89d2luZG93LnNldEludGVydmFsKCgpPT5NKCksZikpfSwic3RhcnRSZWFsdGltZSIpLFM9aSgoKT0+e24mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChuKSxuPW51bGwsYS5yZWFsdGltZU1vZGU9ITEpLG8mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChvKSxvPW51bGwscy5yZWFsdGltZU1vZGU9ITEpfSwic3RvcFJlYWx0aW1lIiksTz1pKCgpPT57bD09PSJzeXN0ZW0iPyhoLmNwdT1NYXRoLnJhbmRvbSgpPi41Pzg1OjI1LGgubWVtb3J5PU1hdGgucmFuZG9tKCk+LjU/ODA6NDUpOmw9PT0ibmV0d29yayImJihoLmRvd25sb2FkPU1hdGgucmFuZG9tKCk+LjU/MjUwOjEwMCxoLnVwbG9hZD1NYXRoLnJhbmRvbSgpPi41PzgwOjIwKSxoLmNvbm5lY3Rpb25zPU1hdGgucmFuZG9tKCk+LjU/MjgwOjgwLGc9MCx5PTB9LCJyYW5kb21pemVEYXRhIiksTD1pKCgpPT57ci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goQz0+e2xldCB6PUMudGV4dD8udHJpbSgpO3o9PT0iU3lzdGVtIFVzYWdlIj9DLnR5cGU9bD09PSJzeXN0ZW0iPyJoaWdobGlnaHRlZCI6Im5vcm1hbCI6ej09PSJOZXR3b3JrIFRyYWZmaWMiP0MudHlwZT1sPT09Im5ldHdvcmsiPyJoaWdobGlnaHRlZCI6Im5vcm1hbCI6ej09PSJTYWxlcyBEYXRhIiYmKEMudHlwZT1sPT09InNhbGVzIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiKX0pfSwidXBkYXRlQnV0dG9uU3RhdGVzIik7aWYoci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goQj0+e2xldCBDPUIudGV4dD8udHJpbSgpO0M9PT0iU3lzdGVtIFVzYWdlIj9CLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e04oInN5c3RlbSIpLEwoKX0pOkM9PT0iTmV0d29yayBUcmFmZmljIj9CLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e04oIm5ldHdvcmsiKSxMKCl9KTpDPT09IlNhbGVzIERhdGEiP0IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57Tigic2FsZXMiKSxMKCl9KTpDPT09IlN0YXJ0IExpdmUiP0IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5fKCkpOkM9PT0iU3RvcCBMaXZlIj9CLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+UygpKTpDPT09IlNwaWtlIFZhbHVlcyImJkIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5PKCkpfSksYS5yb2xsaW5nV2luZG93PWQsYS5yZWFsdGltZU1vZGU9ITEsYS55QXhpc1NjYWxpbmc9InBlcmNlbnRhZ2UiLGEueUF4aXNNYXg9MTAwLGEuYXV0b1Njcm9sbEludGVydmFsPTFlMyxzZXRUaW1lb3V0KCgpPT57YS51cGRhdGVUaW1lV2luZG93KCl9LDEwMCkscyl7bGV0IEI9bShoLmNvbm5lY3Rpb25zLDMwLGYpO3Muc2VyaWVzPVt7bmFtZToiQ29ubmVjdGlvbnMiLGRhdGE6Qn1dLHMucm9sbGluZ1dpbmRvdz1kLHMucmVhbHRpbWVNb2RlPSExLHMueUF4aXNTY2FsaW5nPSJmaXhlZCIscy55QXhpc01heD0zNTAscy5hdXRvU2Nyb2xsSW50ZXJ2YWw9MWUzLHNldFRpbWVvdXQoKCk9PntzLnVwZGF0ZVRpbWVXaW5kb3coKX0sMTAwKX19fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7cmVgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8gewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPlN5c3RlbSBVc2FnZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yayBUcmFmZmljPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlcyBEYXRhPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iUmVhbC10aW1lOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBMaXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlIFZhbHVlczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiPgogICAgICAgIDxkZWVzLWNoYXJ0LWFyZWEKICAgICAgICAgIGlkPSJtYWluLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7dC5zeXN0ZW0ubGFiZWx9CiAgICAgICAgICAuc2VyaWVzPSR7dC5zeXN0ZW0uc2VyaWVzfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7ZS5zeXN0ZW19CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciIgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0iY29ubmVjdGlvbnMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiQWN0aXZlIENvbm5lY3Rpb25zIn0KICAgICAgICAgIC5zZXJpZXM9JHtbe25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOltdfV19CiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHtyPT5gJHtyfWB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIFJlYWwtdGltZSBtb25pdG9yaW5nIHdpdGggMi1taW51dGUgcm9sbGluZyB3aW5kb3cg4oCiIAogICAgICAgIFVwZGF0ZXMgZXZlcnkgc2Vjb25kIHdpdGggc21vb3RoIHZhbHVlIHRyYW5zaXRpb25zIOKAoiAKICAgICAgICBDbGljayAnU3Bpa2UgVmFsdWVzJyB0byBzaW11bGF0ZSBsb2FkIHNwaWtlcwogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIF9RcixUUXI9dSgoKT0+e3ZlKCk7bHQoKTtfUXI9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmNoYXJ0SGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgfQogICAgICAuY2hhcnRMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KICAgICAgLmV4cGFuZEJ0biB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIC5leHBhbmRCdG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMCAwIDRweCAwOwogICAgICB9CiAgICAgIC5zdGF0c0JhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzICsgLnN0YXRzU2VyaWVzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAuc3RhdHNDb2xvciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgLnN0YXRzTmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICB9CiAgICAgIC5zdGF0c0l0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgICAuc3RhdHNJdGVtIHN0cm9uZyB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAubHctdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgIH0KICAgIGBdfSk7dmFyIExRcixEUXI9dSgoKT0+e3ZlKCk7S3IoKTtMUXI9aSh0PT53YAogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7dC5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImV4cGFuZEJ0biIgQGNsaWNrPSR7KCk9PnQudG9nZ2xlRnVsbFBhZ2UoKX0gdGl0bGU9IiR7dC5pc0Z1bGxQYWdlPyJFeGl0IGZ1bGwgcGFnZSI6IkZ1bGwgcGFnZSJ9Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dC5pc0Z1bGxQYWdlPyJsdWNpZGU6TWluaW1pemUyIjoibHVjaWRlOk1heGltaXplMiJ9IC5pY29uU2l6ZT0kezE0fT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICR7dC5zZXJpZXNTdGF0cy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InN0YXRzQmFyIj4KICAgICAgICAgICAgICAke3Quc2VyaWVzU3RhdHMubWFwKGU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0c1NlcmllcyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0NvbG9yIiBzdHlsZT0iYmFja2dyb3VuZDoke2UuY29sb3J9Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c05hbWUiPiR7ZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+bGF0ZXN0IDxzdHJvbmc+JHt0LnlBeGlzRm9ybWF0dGVyKGUubGF0ZXN0KX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0l0ZW0iPm1pbiA8c3Ryb25nPiR7dC55QXhpc0Zvcm1hdHRlcihlLm1pbil9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5tYXggPHN0cm9uZz4ke3QueUF4aXNGb3JtYXR0ZXIoZS5tYXgpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+YXZnIDxzdHJvbmc+JHt0LnlBeGlzRm9ybWF0dGVyKGUuYXZnKX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICBgLCJyZW5kZXJDaGFydEFyZWEiKX0pO3ZhciBvMix6aSwkUXIsbTd0PXUoKCk9Pnt2ZSgpO01yKCk7elFyKCk7VFFyKCk7RFFyKCk7cDMoKTtucygpO28yPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx6aT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sJFFyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1jaGFydC1hcmVhIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdO3ZhciBmZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0QXJlYSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBUPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W2llKCldLHY9W1AoKV0seT1bUCh7dHlwZTpBcnJheX0pXSxOPVtQKHthdHRyaWJ1dGU6ITF9KV0sTz1bUCh7dHlwZTpOdW1iZXJ9KV0sQj1bUCh7dHlwZTpCb29sZWFufSldLEE9W1Aoe3R5cGU6U3RyaW5nfSldLFk9W1Aoe3R5cGU6TnVtYmVyfSldLGRlPVtQKHt0eXBlOk51bWJlcn0pXSxvMih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYXJ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJjaGFydCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmNoYXJ0LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmNoYXJ0PXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LG8sbCksbzIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXNTdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ic2VyaWVzU3RhdHMiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5zZXJpZXNTdGF0cywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5zZXJpZXNTdGF0cz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxkLGYpLG8yKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsUGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaXNGdWxsUGFnZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmlzRnVsbFBhZ2UsImdldCIpLHNldDppKChXLHBlKT0+e1cuaXNGdWxsUGFnZT1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxoLG0pLG8yKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImxhYmVsImluIFcsImhhcyIpLGdldDppKFc9PlcubGFiZWwsImdldCIpLHNldDppKChXLHBlKT0+e1cubGFiZWw9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSxvMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ic2VyaWVzImluIFcsImhhcyIpLGdldDppKFc9Plcuc2VyaWVzLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnNlcmllcz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxrLE0pLG8yKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InlBeGlzRm9ybWF0dGVyImluIFcsImhhcyIpLGdldDppKFc9PlcueUF4aXNGb3JtYXR0ZXIsImdldCIpLHNldDppKChXLHBlKT0+e1cueUF4aXNGb3JtYXR0ZXI9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sXyxTKSxvMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvbGxpbmdXaW5kb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InJvbGxpbmdXaW5kb3ciaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5yb2xsaW5nV2luZG93LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnJvbGxpbmdXaW5kb3c9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sTCxFKSxvMih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlYWx0aW1lTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4icmVhbHRpbWVNb2RlImluIFcsImhhcyIpLGdldDppKFc9PlcucmVhbHRpbWVNb2RlLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnJlYWx0aW1lTW9kZT1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxDLHopLG8yKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNTY2FsaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJ5QXhpc1NjYWxpbmciaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy55QXhpc1NjYWxpbmcsImdldCIpLHNldDppKChXLHBlKT0+e1cueUF4aXNTY2FsaW5nPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LCQsRiksbzIodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc01heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ieUF4aXNNYXgiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy55QXhpc01heCwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy55QXhpc01heD1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxHLFopLG8yKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGxJbnRlcnZhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iYXV0b1Njcm9sbEludGVydmFsImluIFcsImhhcyIpLGdldDppKFc9PlcuYXV0b1Njcm9sbEludGVydmFsLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmF1dG9TY3JvbGxJbnRlcnZhbD1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxELFEpLG8yKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsciksZmU9YT1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPUNRcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9emkodGhpcyxvLG51bGwpO2dldCBjaGFydCgpe3JldHVybiB0aGlzLiNlfXNldCBjaGFydChUKXt0aGlzLiNlPVR9I3Q9KHppKHRoaXMsbCksemkodGhpcyxkLFtdKSk7Z2V0IHNlcmllc1N0YXRzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllc1N0YXRzKFQpe3RoaXMuI3Q9VH0jcj0oemkodGhpcyxmKSx6aSh0aGlzLGgsITEpKTtnZXQgaXNGdWxsUGFnZSgpe3JldHVybiB0aGlzLiNyfXNldCBpc0Z1bGxQYWdlKFQpe3RoaXMuI3I9VH0jYT0oemkodGhpcyxtKSx6aSh0aGlzLGIsIlVudGl0bGVkIENoYXJ0IikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNhfXNldCBsYWJlbChUKXt0aGlzLiNhPVR9I2k9KHppKHRoaXMsZyksemkodGhpcyxrLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiNpfXNldCBzZXJpZXMoVCl7dGhpcy4jaT1UfWdldCBjaGFydFNlcmllcygpe3JldHVybiB0aGlzLmludGVybmFsQ2hhcnREYXRhLmxlbmd0aD4wP3RoaXMuaW50ZXJuYWxDaGFydERhdGE6dGhpcy5zZXJpZXN9I3M9KHppKHRoaXMsTSksemkodGhpcyxfLFQ9PmAke1R9IE1icHNgKSk7Z2V0IHlBeGlzRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHlBeGlzRm9ybWF0dGVyKFQpe3RoaXMuI3M9VH0jbj0oemkodGhpcyxTKSx6aSh0aGlzLEwsMCkpO2dldCByb2xsaW5nV2luZG93KCl7cmV0dXJuIHRoaXMuI259c2V0IHJvbGxpbmdXaW5kb3coVCl7dGhpcy4jbj1UfSNvPSh6aSh0aGlzLEUpLHppKHRoaXMsQywhMSkpO2dldCByZWFsdGltZU1vZGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgcmVhbHRpbWVNb2RlKFQpe3RoaXMuI289VH0jbD0oemkodGhpcyx6KSx6aSh0aGlzLCQsImR5bmFtaWMiKSk7Z2V0IHlBeGlzU2NhbGluZygpe3JldHVybiB0aGlzLiNsfXNldCB5QXhpc1NjYWxpbmcoVCl7dGhpcy4jbD1UfSNjPSh6aSh0aGlzLEYpLHppKHRoaXMsRywxMDApKTtnZXQgeUF4aXNNYXgoKXtyZXR1cm4gdGhpcy4jY31zZXQgeUF4aXNNYXgoVCl7dGhpcy4jYz1UfSNkPSh6aSh0aGlzLFopLHppKHRoaXMsRCwxZTMpKTtnZXQgYXV0b1Njcm9sbEludGVydmFsKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGF1dG9TY3JvbGxJbnRlcnZhbChUKXt0aGlzLiNkPVR9aW50ZXJuYWxDaGFydERhdGE9KHppKHRoaXMsUSksW10pO2F1dG9TY3JvbGxUaW1lcj1udWxsO2xjQnVuZGxlPW51bGw7c2VyaWVzQXBpcz1uZXcgTWFwO3ByaWNlTGluZXM9bmV3IE1hcDt0b29sdGlwRWw9bnVsbDtDSEFSVF9DT0xPUlM9e2Rhcms6WyJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDE3My40IDgwLjQlIDQwJSkiLCJoc2woMjgwLjMgODcuNCUgNjYuNyUpIiwiaHNsKDI0LjYgOTUlIDUzLjElKSJdLGxpZ2h0OlsiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMjgwLjMgNDcuNyUgNTAuMiUpIiwiaHNsKDIwLjUgOTAuMiUgNDguMiUpIl19O2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxaYS5zZXR1cCgpLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLmNoYXJ0KXRyeXt0aGlzLmNoYXJ0LnJlbW92ZSgpLHRoaXMuY2hhcnQ9bnVsbCx0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKX1jYXRjaChUKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIGNoYXJ0OiIsVCl9fSl9c3RhdGljIHN0eWxlcz1fUXI7cmVuZGVyKCl7cmV0dXJuIExRcih0aGlzKX1jb252ZXJ0RGF0YVRvTEMoVCl7cmV0dXJuIFQubWFwKFc9PntsZXQgcGU9dHlwZW9mIFcueD09Im51bWJlciI/Vy54Om5ldyBEYXRlKFcueCkuZ2V0VGltZSgpO3JldHVybnt0aW1lOk1hdGguZmxvb3IocGUvMWUzKSx2YWx1ZTpXLnl9fSkuc29ydCgoVyxwZSk9PlcudGltZS1wZS50aW1lKX1oc2xUb1JnYmEoVCxXKXtsZXQgcGU9VC5tYXRjaCgvaHNsXCgoW14pXSspXCkvKTtpZighcGUpcmV0dXJuIFQ7bGV0IG1lPXBlWzFdLnRyaW0oKS5zcGxpdCgvXHMrLyk7aWYobWUubGVuZ3RoPDMpcmV0dXJuIFQ7bGV0IHE9cGFyc2VGbG9hdChtZVswXSkvMzYwLEg9cGFyc2VGbG9hdChtZVsxXSkvMTAwLFU9cGFyc2VGbG9hdChtZVsyXSkvMTAwLGosYWUsWDtpZihIPT09MClqPWFlPVg9VTtlbHNle2xldCBKPWkoKFYsbGUsbmUpPT4obmU8MCYmKG5lKz0xKSxuZT4xJiYobmUtPTEpLG5lPC4xNjY2NjY2NjY2NjY2NjY2Nj9WKyhsZS1WKSo2Km5lOm5lPC41P2xlOm5lPC42NjY2NjY2NjY2NjY2NjY2P1YrKGxlLVYpKiguNjY2NjY2NjY2NjY2NjY2Ni1uZSkqNjpWKSwiaHVlMnJnYiIpLHhlPVU8LjU/VSooMStIKTpVK0gtVSpILEs9MipVLXhlO2o9SihLLHhlLHErMS8zKSxhZT1KKEsseGUscSksWD1KKEsseGUscS0xLzMpfXJldHVybmByZ2JhKCR7TWF0aC5yb3VuZChqKjI1NSl9LCAke01hdGgucm91bmQoYWUqMjU1KX0sICR7TWF0aC5yb3VuZChYKjI1NSl9LCAke1d9KWB9Z2V0U2VyaWVzQ29sb3JzKFQpe3JldHVybiBUP3RoaXMuQ0hBUlRfQ09MT1JTLmRhcms6dGhpcy5DSEFSVF9DT0xPUlMubGlnaHR9YXBwbHlUaGVtZSgpe2lmKCF0aGlzLmNoYXJ0fHwhdGhpcy5sY0J1bmRsZSlyZXR1cm47bGV0IFQ9IXRoaXMuZ29CcmlnaHQsVz10aGlzLmdldFNlcmllc0NvbG9ycyhUKTt0aGlzLmNoYXJ0LmFwcGx5T3B0aW9ucyh7bGF5b3V0OntiYWNrZ3JvdW5kOnt0eXBlOnRoaXMubGNCdW5kbGUuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOiJ0cmFuc3BhcmVudCJ9LHRleHRDb2xvcjpUPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIixhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6e3ZlcnRMaW5lczp7Y29sb3I6VD8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifSxob3J6TGluZXM6e2NvbG9yOlQ/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn19fSk7bGV0IHBlPTA7Zm9yKGxldFssbWVdb2YgdGhpcy5zZXJpZXNBcGlzKXtsZXQgcT1XW3BlJVcubGVuZ3RoXTttZS5hcHBseU9wdGlvbnMoe3RvcENvbG9yOnRoaXMuaHNsVG9SZ2JhKHEsVD8uNDouNSksYm90dG9tQ29sb3I6dGhpcy5oc2xUb1JnYmEocSwwKSxsaW5lQ29sb3I6cX0pLHBlKyt9fXJlY3JlYXRlU2VyaWVzKFQpe2lmKCF0aGlzLmNoYXJ0fHwhdGhpcy5sY0J1bmRsZSlyZXR1cm47bGV0IFc9IXRoaXMuZ29CcmlnaHQscGU9dGhpcy5nZXRTZXJpZXNDb2xvcnMoVyk7Zm9yKGxldFssbWVdb2YgdGhpcy5zZXJpZXNBcGlzKXRoaXMuY2hhcnQucmVtb3ZlU2VyaWVzKG1lKTt0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKSxULmZvckVhY2goKG1lLHEpPT57bGV0IEg9cGVbcSVwZS5sZW5ndGhdLFU9dGhpcy5jaGFydC5hZGRTZXJpZXModGhpcy5sY0J1bmRsZS5BcmVhU2VyaWVzLHt0b3BDb2xvcjp0aGlzLmhzbFRvUmdiYShILFc/LjQ6LjUpLGJvdHRvbUNvbG9yOnRoaXMuaHNsVG9SZ2JhKEgsMCksbGluZUNvbG9yOkgsbGluZVdpZHRoOjIsbGluZVR5cGU6dGhpcy5sY0J1bmRsZS5MaW5lVHlwZS5DdXJ2ZWQsbGFzdFZhbHVlVmlzaWJsZTohMSxwcmljZUxpbmVWaXNpYmxlOiExLGNyb3NzaGFpck1hcmtlclZpc2libGU6ITAsY3Jvc3NoYWlyTWFya2VyUmFkaXVzOjR9KTtVLnNldERhdGEodGhpcy5jb252ZXJ0RGF0YVRvTEMobWUuZGF0YSkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhtZS5uYW1lfHxgc2VyaWVzLSR7cX1gLFUsbWUuZGF0YSxIKSx0aGlzLnlBeGlzU2NhbGluZyE9PSJkeW5hbWljIiYmVS5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6dGhpcy55QXhpc01heH19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KSx0aGlzLnNlcmllc0FwaXMuc2V0KG1lLm5hbWV8fGBzZXJpZXMtJHtxfWAsVSl9KSx0aGlzLmNvbXB1dGVTdGF0cyhUKX1jb21wdXRlU3RhdHMoVCl7bGV0IFc9IXRoaXMuZ29CcmlnaHQscGU9dGhpcy5nZXRTZXJpZXNDb2xvcnMoVyk7dGhpcy5zZXJpZXNTdGF0cz1ULm1hcCgobWUscSk9PntsZXQgSD1tZS5kYXRhLm1hcChKPT5KLnkpO2lmKEgubGVuZ3RoPT09MClyZXR1cm57bmFtZTptZS5uYW1lfHxgc2VyaWVzLSR7cX1gLGxhdGVzdDowLG1pbjowLG1heDowLGF2ZzowLGNvbG9yOnBlW3ElcGUubGVuZ3RoXX07bGV0IFU9SFtILmxlbmd0aC0xXSxqPU1hdGgubWluKC4uLkgpLGFlPU1hdGgubWF4KC4uLkgpLFg9TWF0aC5yb3VuZChILnJlZHVjZSgoSix4ZSk9PkoreGUsMCkvSC5sZW5ndGgqMTAwKS8xMDA7cmV0dXJue25hbWU6bWUubmFtZXx8YHNlcmllcy0ke3F9YCxsYXRlc3Q6VSxtaW46aixtYXg6YWUsYXZnOlgsY29sb3I6cGVbcSVwZS5sZW5ndGhdfX0pfXVwZGF0ZVByaWNlTGluZXMoVCxXLHBlLG1lKXtsZXQgcT10aGlzLnByaWNlTGluZXMuZ2V0KFQpO2lmKHEpZm9yKGxldCBYIG9mIHEpVy5yZW1vdmVQcmljZUxpbmUoWCk7aWYocGUubGVuZ3RoPT09MCl7dGhpcy5wcmljZUxpbmVzLnNldChULFtdKTtyZXR1cm59bGV0IEg9cGUubWFwKFg9PlgueSksVT1ILnJlZHVjZSgoWCxKKT0+WCtKLDApL0gubGVuZ3RoLGo9TWF0aC5tYXgoLi4uSCksYWU9W107YWUucHVzaChXLmNyZWF0ZVByaWNlTGluZSh7cHJpY2U6TWF0aC5yb3VuZChVKjEwMCkvMTAwLGNvbG9yOnRoaXMuaHNsVG9SZ2JhKG1lLC41KSxsaW5lV2lkdGg6MSxsaW5lU3R5bGU6MixheGlzTGFiZWxWaXNpYmxlOiEwLHRpdGxlOiJhdmcifSkpLFU+MCYmKGotVSkvVT4uMSYmYWUucHVzaChXLmNyZWF0ZVByaWNlTGluZSh7cHJpY2U6aixjb2xvcjp0aGlzLmhzbFRvUmdiYShtZSwuOCksbGluZVdpZHRoOjEsbGluZVN0eWxlOjEsYXhpc0xhYmVsVmlzaWJsZTohMCx0aXRsZToibWF4In0pKSx0aGlzLnByaWNlTGluZXMuc2V0KFQsYWUpfXNldHVwVG9vbHRpcCgpe3RoaXMuY2hhcnQmJih0aGlzLnRvb2x0aXBFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnRvb2x0aXBFbC5jbGFzc05hbWU9Imx3LXRvb2x0aXAiLHRoaXMudG9vbHRpcEVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKT8uYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwRWwpLHRoaXMuY2hhcnQuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZShUPT57aWYoIXRoaXMudG9vbHRpcEVsKXJldHVybjtpZighVC5wb2ludHx8IVQudGltZXx8VC5wb2ludC54PDB8fFQucG9pbnQueTwwKXt0aGlzLnRvb2x0aXBFbC5zdHlsZS5kaXNwbGF5PSJub25lIjtyZXR1cm59bGV0IFc9IXRoaXMuZ29CcmlnaHQscGU9Vz8iaHNsKDAgMCUgOSUpIjoiaHNsKDAgMCUgMTAwJSkiLG1lPVc/ImhzbCgwIDAlIDk1JSkiOiJoc2woMCAwJSA5JSkiLHE9Vz8iaHNsKDAgMCUgMTQuOSUpIjoiaHNsKDAgMCUgODkuOCUpIixIPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKFcpLFU9IiIsaj0wLGFlPSExO2ZvcihsZXRbeGUsS11vZiB0aGlzLnNlcmllc0FwaXMpe2xldCBWPVQuc2VyaWVzRGF0YS5nZXQoSyk7aWYoViYmInZhbHVlImluIFYmJlYudmFsdWUhPT12b2lkIDApe2FlPSEwO2xldCBsZT1IW2olSC5sZW5ndGhdLG5lPXRoaXMueUF4aXNGb3JtYXR0ZXIoVi52YWx1ZSk7VSs9YDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttYXJnaW46JHtqPjA/IjZweCI6IjAifSAwOyI+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQ6JHtsZX07Ym9yZGVyLXJhZGl1czoycHg7Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo1MDA7Ij4ke3hlfTo8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDphdXRvO2ZvbnQtd2VpZ2h0OjYwMDsiPiR7bmV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+YH1qKyt9aWYoIWFlKXt0aGlzLnRvb2x0aXBFbC5zdHlsZS5kaXNwbGF5PSJub25lIjtyZXR1cm59dGhpcy50b29sdGlwRWwuaW5uZXJIVE1MPVUsT2JqZWN0LmFzc2lnbih0aGlzLnRvb2x0aXBFbC5zdHlsZSx7ZGlzcGxheToiYmxvY2siLGJhY2tncm91bmQ6cGUsY29sb3I6bWUsYm9yZGVyQ29sb3I6cX0pO2xldCBYPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKS5jbGllbnRXaWR0aCxKPVQucG9pbnQueCsxNjtKKzIwMD5YJiYoSj1ULnBvaW50LngtMjE2KSx0aGlzLnRvb2x0aXBFbC5zdHlsZS5sZWZ0PWAke0p9cHhgLHRoaXMudG9vbHRpcEVsLnN0eWxlLnRvcD1gJHtULnBvaW50LnktMTZ9cHhgfSkpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHRoaXMubGNCdW5kbGU9YXdhaXQgc24uZ2V0SW5zdGFuY2UoKS5sb2FkTGlnaHR3ZWlnaHRDaGFydHMoKSxhd2FpdCBuZXcgUHJvbWlzZShwZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHBlKSk7bGV0IFQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFUKXJldHVybjtsZXQgVz0hdGhpcy5nb0JyaWdodDt0cnl7dGhpcy5jaGFydD10aGlzLmxjQnVuZGxlLmNyZWF0ZUNoYXJ0KFQse2F1dG9TaXplOiEwLGxheW91dDp7YmFja2dyb3VuZDp7dHlwZTp0aGlzLmxjQnVuZGxlLkNvbG9yVHlwZS5Tb2xpZCxjb2xvcjoidHJhbnNwYXJlbnQifSx0ZXh0Q29sb3I6Vz8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSIsZm9udEZhbWlseTonLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBzYW5zLXNlcmlmJyxmb250U2l6ZToxMixhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6e3ZlcnRMaW5lczp7Y29sb3I6Vz8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifSxob3J6TGluZXM6e2NvbG9yOlc/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn19LHJpZ2h0UHJpY2VTY2FsZTp7Ym9yZGVyVmlzaWJsZTohMSxzY2FsZU1hcmdpbnM6e3RvcDouMSxib3R0b206LjF9fSx0aW1lU2NhbGU6e2JvcmRlclZpc2libGU6ITEsdGltZVZpc2libGU6ITAsc2Vjb25kc1Zpc2libGU6ITB9LGNyb3NzaGFpcjp7bW9kZTp0aGlzLmxjQnVuZGxlLkNyb3NzaGFpck1vZGUuTWFnbmV0fSxoYW5kbGVTY3JvbGw6ITEsaGFuZGxlU2NhbGU6ITF9KTtsZXQgcGU9dGhpcy5zZXJpZXMubGVuZ3RoPjA/dGhpcy5zZXJpZXM6W3tuYW1lOiJjcHUiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjI1fSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MjB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjM1fSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseToyNX1dfSx7bmFtZToibWVtb3J5IixkYXRhOlt7eDoiMjAyNS0wMS0xNVQwMzowMDowMCIseToxMH0se3g6IjIwMjUtMDEtMTVUMDc6MDA6MDAiLHk6MTJ9LHt4OiIyMDI1LTAxLTE1VDExOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQxNTowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTk6MDA6MDAiLHk6NDB9XX1dO3RoaXMuaW50ZXJuYWxDaGFydERhdGE9cGUsdGhpcy5yZWNyZWF0ZVNlcmllcyhwZSksdGhpcy5zZXR1cFRvb2x0aXAoKX1jYXRjaChwZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhcnQ6IixwZSl9fWFzeW5jIHVwZGF0ZWQoVCl7aWYoc3VwZXIudXBkYXRlZChUKSxULmhhcygiZ29CcmlnaHQiKSYmdGhpcy5jaGFydCYmdGhpcy5hcHBseVRoZW1lKCksVC5oYXMoInNlcmllcyIpJiZ0aGlzLmNoYXJ0JiZ0aGlzLnNlcmllcy5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGRhdGVTZXJpZXModGhpcy5zZXJpZXMpLFQuaGFzKCJ5QXhpc0Zvcm1hdHRlciIpJiZ0aGlzLmNoYXJ0LFQuaGFzKCJyZWFsdGltZU1vZGUiKSYmdGhpcy5jaGFydCYmKHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MD90aGlzLnN0YXJ0QXV0b1Njcm9sbCgpOnRoaXMuc3RvcEF1dG9TY3JvbGwoKSksVC5oYXMoImF1dG9TY3JvbGxJbnRlcnZhbCIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MCYmdGhpcy5zdGFydEF1dG9TY3JvbGwoKSksKFQuaGFzKCJ5QXhpc1NjYWxpbmciKXx8VC5oYXMoInlBeGlzTWF4IikpJiZ0aGlzLmNoYXJ0KWZvcihsZXRbLFddb2YgdGhpcy5zZXJpZXNBcGlzKXRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP1cuYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6dm9pZCAwfSk6Vy5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6dGhpcy55QXhpc01heH19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KX1hc3luYyB1cGRhdGVTZXJpZXMoVCxXPSEwKXtpZih0aGlzLmNoYXJ0KXRyeXtpZih0aGlzLmludGVybmFsQ2hhcnREYXRhPVQsdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMucmVhbHRpbWVNb2RlKXtsZXQgcGU9RGF0ZS5ub3coKSxtZT1wZS10aGlzLnJvbGxpbmdXaW5kb3c7aWYoVC5sZW5ndGghPT10aGlzLnNlcmllc0FwaXMuc2l6ZSl0aGlzLnJlY3JlYXRlU2VyaWVzKFQpO2Vsc2V7bGV0IHE9dGhpcy5nZXRTZXJpZXNDb2xvcnMoIXRoaXMuZ29CcmlnaHQpO1QuZm9yRWFjaCgoSCxVKT0+e2xldCBqPUgubmFtZXx8YHNlcmllcy0ke1V9YCxhZT10aGlzLnNlcmllc0FwaXMuZ2V0KGopO2lmKCFhZSlyZXR1cm47bGV0IFg9SC5kYXRhLmZpbHRlcihKPT4odHlwZW9mIEoueD09Im51bWJlciI/Si54Om5ldyBEYXRlKEoueCkuZ2V0VGltZSgpKT5tZSk7YWUuc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyhYKSksdGhpcy51cGRhdGVQcmljZUxpbmVzKGosYWUsWCxxW1UlcS5sZW5ndGhdKX0pLHRoaXMuY29tcHV0ZVN0YXRzKFQpfXRyeXt0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLnNldFZpc2libGVSYW5nZSh7ZnJvbTpNYXRoLmZsb29yKG1lLzFlMyksdG86TWF0aC5mbG9vcihwZS8xZTMpfSl9Y2F0Y2h7fWlmKHRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiKXtsZXQgcT1ULmZsYXRNYXAoSD0+SC5kYXRhLmZpbHRlcihVPT4odHlwZW9mIFUueD09Im51bWJlciI/VS54Om5ldyBEYXRlKFUueCkuZ2V0VGltZSgpKT5tZSkubWFwKFU9PlUueSkpO2lmKHEubGVuZ3RoPjApe2xldCBIPU1hdGguY2VpbChNYXRoLm1heCguLi5xKSoxLjEpO2ZvcihsZXRbLFVdb2YgdGhpcy5zZXJpZXNBcGlzKVUuYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6aSgoKT0+KHtwcmljZVJhbmdlOnttaW5WYWx1ZTowLG1heFZhbHVlOkh9fSksImF1dG9zY2FsZUluZm9Qcm92aWRlciIpfSl9fX1lbHNlIGlmKFQubGVuZ3RoIT09dGhpcy5zZXJpZXNBcGlzLnNpemUpdGhpcy5yZWNyZWF0ZVNlcmllcyhUKTtlbHNle2xldCBwZT10aGlzLmdldFNlcmllc0NvbG9ycyghdGhpcy5nb0JyaWdodCk7VC5mb3JFYWNoKChtZSxxKT0+e2xldCBIPW1lLm5hbWV8fGBzZXJpZXMtJHtxfWAsVT10aGlzLnNlcmllc0FwaXMuZ2V0KEgpO1UmJihVLnNldERhdGEodGhpcy5jb252ZXJ0RGF0YVRvTEMobWUuZGF0YSkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhILFUsbWUuZGF0YSxwZVtxJXBlLmxlbmd0aF0pKX0pLHRoaXMuY29tcHV0ZVN0YXRzKFQpfX1jYXRjaChwZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBjaGFydCBzZXJpZXM6IixwZSl9fWFzeW5jIHVwZGF0ZVRpbWVXaW5kb3coKXtpZighdGhpcy5jaGFydHx8dGhpcy5yb2xsaW5nV2luZG93PD0wKXJldHVybjtsZXQgVD1EYXRlLm5vdygpLFc9VC10aGlzLnJvbGxpbmdXaW5kb3c7dHJ5e3RoaXMuY2hhcnQudGltZVNjYWxlKCkuc2V0VmlzaWJsZVJhbmdlKHtmcm9tOk1hdGguZmxvb3IoVy8xZTMpLHRvOk1hdGguZmxvb3IoVC8xZTMpfSl9Y2F0Y2h7fX1hc3luYyBhcHBlbmREYXRhKFQpe3RoaXMuY2hhcnQmJlQuZm9yRWFjaCgoVyxwZSk9PntsZXQgbWU9Vy5uYW1lfHxgc2VyaWVzLSR7cGV9YCxxPXRoaXMuc2VyaWVzQXBpcy5nZXQobWUpO2lmKCEoIXF8fFcuZGF0YS5sZW5ndGg9PT0wKSlmb3IobGV0IEggb2YgVy5kYXRhKXtsZXQgVT10aGlzLmNvbnZlcnREYXRhVG9MQyhbSF0pO1UubGVuZ3RoPjAmJnEudXBkYXRlKFVbMF0pfX0pfWFzeW5jIHVwZGF0ZU9wdGlvbnMoVCl7dGhpcy5jaGFydCYmdGhpcy5jaGFydC5hcHBseU9wdGlvbnMoVCl9YXN5bmMgcmVzaXplQ2hhcnQoKXt0aGlzLmNoYXJ0JiZ0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLmZpdENvbnRlbnQoKX1hc3luYyBmb3JjZVJlc2l6ZSgpe2F3YWl0IHRoaXMucmVzaXplQ2hhcnQoKX10b2dnbGVGdWxsUGFnZSgpe3RoaXMuaXNGdWxsUGFnZT0hdGhpcy5pc0Z1bGxQYWdlLHRoaXMuaXNGdWxsUGFnZT8odGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUuaW5zZXQ9IjAiLHRoaXMuc3R5bGUuekluZGV4PSIxMDAwMCIsdGhpcy5zdHlsZS5oZWlnaHQ9IjEwMHZoIix0aGlzLnN0eWxlLnBhZGRpbmc9IjAiLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpOih0aGlzLnN0eWxlLnBvc2l0aW9uPSIiLHRoaXMuc3R5bGUuaW5zZXQ9IiIsdGhpcy5zdHlsZS56SW5kZXg9IiIsdGhpcy5zdHlsZS5oZWlnaHQ9IiIsdGhpcy5zdHlsZS5wYWRkaW5nPSIiLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9IiIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY2hhcnQ/LnRpbWVTY2FsZSgpLmZpdENvbnRlbnQoKX0pfXN0YXJ0QXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyfHwodGhpcy5hdXRvU2Nyb2xsVGltZXI9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy51cGRhdGVUaW1lV2luZG93KCl9LHRoaXMuYXV0b1Njcm9sbEludGVydmFsKSl9c3RvcEF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGxUaW1lciYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuYXV0b1Njcm9sbFRpbWVyKSx0aGlzLmF1dG9TY3JvbGxUaW1lcj1udWxsKX1zdGF0aWN7emkoYSxyKX19O3JldHVybiBmZT1hfSkoKX0pO3ZhciBBUXI9dSgoKT0+e203dCgpfSk7ZnVuY3Rpb24gY2YodCl7cmV0dXJuIHQ/UFFyLmxpZ2h0OlBRci5kYXJrfWZ1bmN0aW9uIGRmKHQsZSl7bGV0IHI9cGFyc2VJbnQodC5zbGljZSgxLDMpLDE2KSxhPXBhcnNlSW50KHQuc2xpY2UoMyw1KSwxNikscz1wYXJzZUludCh0LnNsaWNlKDUsNyksMTYpO3JldHVybmByZ2JhKCR7cn0sICR7YX0sICR7c30sICR7ZX0pYH1mdW5jdGlvbiBOUXIodCl7bGV0IGU9dD9FUXI6SVFyO3JldHVybntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iix0ZXh0U3R5bGU6e2NvbG9yOmUudGV4dFNlY29uZGFyeSxmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRTaXplOjEyfSx0b29sdGlwOntiYWNrZ3JvdW5kQ29sb3I6ZS5iZ1ByaW1hcnksYm9yZGVyQ29sb3I6ZS5ib3JkZXJEZWZhdWx0LHRleHRTdHlsZTp7Y29sb3I6ZS50ZXh0UHJpbWFyeSxmb250U2l6ZToxMn0sY29uZmluZTohMH0sbGVnZW5kOnt0ZXh0U3R5bGU6e2NvbG9yOmUudGV4dFNlY29uZGFyeSxmb250U2l6ZToxMn19fX1mdW5jdGlvbiB1Zih0KXtyZXR1cm4gdD9FUXI6SVFyfXZhciBFUXIsSVFyLFBRcixNdz11KCgpPT57bHQoKTtFUXI9c2wuY29sb3JzLmxpZ2h0LElRcj1zbC5jb2xvcnMuZGFyayxQUXI9e2Rhcms6WyIjNjBhNWZhIiwiIzJkZDRiZiIsIiNhNzhiZmEiLCIjZmJiZjI0IiwiIzM0ZDM5OSIsIiNmYjcxODUiXSxsaWdodDpbIiMzYjgyZjYiLCIjMTRiOGE2IiwiIzhiNWNmNiIsIiNmNTllMGIiLCIjMTBiOTgxIiwiI2Y0M2Y1ZSJdfTtpKGNmLCJnZXRFY2hhcnRzU2VyaWVzQ29sb3JzIik7aShkZiwiaGV4VG9SZ2JhIik7aShOUXIsImdldEVjaGFydHNUaGVtZU9wdGlvbnMiKTtpKHVmLCJnZXRUaGVtZUNvbG9ycyIpfSk7dmFyIGRGYSxPUXIsbTMsQXJlPXUoKCk9Pnt2ZSgpO01yKCk7cDMoKTtNdygpO25zKCk7ZEZhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxPUXI9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LG0zPSgoKT0+e2xldCB0PXllLGUscj1bXSxhPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIHR7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0RWNoYXJ0c0Jhc2UiKX1zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUodFtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bUCgpXSxkRmEodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShvPT4ibGFiZWwiaW4gbywiaGFzIiksZ2V0Omkobz0+by5sYWJlbCwiZ2V0Iiksc2V0OmkoKG8sbCk9PntvLmxhYmVsPWx9LCJzZXQiKX0sbWV0YWRhdGE6bn0scixhKSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX0jZT1PUXIodGhpcyxyLCJVbnRpdGxlZCBDaGFydCIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChuKXt0aGlzLiNlPW59Y2hhcnRJbnN0YW5jZT0oT1FyKHRoaXMsYSksbnVsbCk7ZWNoYXJ0c0J1bmRsZT1udWxsO3Jlc2l6ZU9ic2VydmVyPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLFphLnNldHVwKCksdGhpcy5yZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihhc3luYygpPT57aWYodGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCksdGhpcy5jaGFydEluc3RhbmNlKXRyeXt0aGlzLmNoYXJ0SW5zdGFuY2UuZGlzcG9zZSgpLHRoaXMuY2hhcnRJbnN0YW5jZT1udWxsfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRpc3Bvc2luZyBFQ2hhcnRzIGluc3RhbmNlOiIsbil9fSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHt0aGlzLmxhYmVsfTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx0aGlzLmVjaGFydHNCdW5kbGU9YXdhaXQgc24uZ2V0SW5zdGFuY2UoKS5sb2FkRWNoYXJ0cygpLGF3YWl0IG5ldyBQcm9taXNlKG89PnJlcXVlc3RBbmltYXRpb25GcmFtZShvKSk7bGV0IG49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKG4pdHJ5e3RoaXMuY2hhcnRJbnN0YW5jZT10aGlzLmVjaGFydHNCdW5kbGUuaW5pdChuLG51bGwse3JlbmRlcmVyOiJzdmcifSksdGhpcy51cGRhdGVDaGFydCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5jaGFydEluc3RhbmNlPy5yZXNpemUoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShuKX1jYXRjaChvKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBFQ2hhcnRzOiIsbyl9fWFzeW5jIHVwZGF0ZWQobil7c3VwZXIudXBkYXRlZChuKSxuLmhhcygiZ29CcmlnaHQiKSYmdGhpcy5jaGFydEluc3RhbmNlJiZ0aGlzLmFwcGx5VGhlbWUoKX11cGRhdGVDaGFydCgpe2lmKCF0aGlzLmNoYXJ0SW5zdGFuY2UpcmV0dXJuO2xldCBuPU5Rcih0aGlzLmdvQnJpZ2h0KSxvPXRoaXMuYnVpbGRPcHRpb24oKSxsPXsuLi5uLC4uLm8sdGV4dFN0eWxlOnsuLi5uLnRleHRTdHlsZSwuLi5vLnRleHRTdHlsZXx8e319LHRvb2x0aXA6ey4uLm4udG9vbHRpcCwuLi5vLnRvb2x0aXB8fHt9fSxsZWdlbmQ6ey4uLm4ubGVnZW5kLC4uLm8ubGVnZW5kfHx7fSx0ZXh0U3R5bGU6ey4uLm4ubGVnZW5kPy50ZXh0U3R5bGV8fHt9LC4uLm8ubGVnZW5kPy50ZXh0U3R5bGV8fHt9fX19O3RoaXMuY2hhcnRJbnN0YW5jZS5zZXRPcHRpb24obCwhMCl9YXBwbHlUaGVtZSgpe3RoaXMudXBkYXRlQ2hhcnQoKX1hc3luYyBmb3JjZVJlc2l6ZSgpe3RoaXMuY2hhcnRJbnN0YW5jZT8ucmVzaXplKCl9fX0pKCl9KTt2YXIgUlFyLEZRcj11KCgpPT57dmUoKTt3YSgpO2c3dCgpO1JRcj1pKCgpPT57bGV0IHQ9WyIvYXBpL3VzZXJzIiwiL2FwaS9vcmRlcnMiLCIvYXBpL3Byb2R1Y3RzIiwiL2FwaS9hdXRoIiwiL2FwaS9zZWFyY2giXSxlPVt7bmFtZToiR0VUIixkYXRhOlsxMjQwLDg5MCw3MjAsMjEwMCw1NjBdfSx7bmFtZToiUE9TVCIsZGF0YTpbMzIwLDQ1MCwxODAsODkwLDQwXX0se25hbWU6IlBVVCIsZGF0YTpbOTAsMjEwLDE1MCwzMCwxMF19XSxyPVsiVVMtRWFzdCIsIlVTLVdlc3QiLCJFVSIsIkFzaWEiLCJPdGhlciJdLGE9W3tuYW1lOiJSZXF1ZXN0cyIsZGF0YTpbNDUwMCwzMjAwLDI4MDAsMTkwMCw2MDBdfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IG49cy5xdWVyeVNlbGVjdG9yKCIjdmVydC1jaGFydCIpLG89cy5xdWVyeVNlbGVjdG9yKCIjaG9yaXotY2hhcnQiKSxsPXMucXVlcnlTZWxlY3RvcigiI3N0YWNrLWNoYXJ0Iik7cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goZD0+e2QudGV4dD8udHJpbSgpPT09IlJhbmRvbWl6ZSImJmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bi5zZXJpZXM9ZS5tYXAocD0+KHsuLi5wLGRhdGE6cC5kYXRhLm1hcChoPT5NYXRoLnJvdW5kKGgqKC41K01hdGgucmFuZG9tKCkpKSl9KSksby5zZXJpZXM9YS5tYXAocD0+KHsuLi5wLGRhdGE6cC5kYXRhLm1hcChoPT5NYXRoLnJvdW5kKGgqKC41K01hdGgucmFuZG9tKCkpKSl9KSksbC5zZXJpZXM9ZS5tYXAocD0+KHsuLi5wLGRhdGE6cC5kYXRhLm1hcChoPT5NYXRoLnJvdW5kKGgqKC41K01hdGgucmFuZG9tKCkpKSl9KSl9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke3JlYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY2hhcnRSb3cgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmFuZG9taXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Um93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0idmVydC1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVlc3RzIGJ5IEVuZHBvaW50In0KICAgICAgICAgICAgLmNhdGVnb3JpZXM9JHt0fQogICAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7cz0+YCR7c30gcmVxYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0iaG9yaXotY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJUcmFmZmljIGJ5IFJlZ2lvbiJ9CiAgICAgICAgICAgIC5jYXRlZ29yaWVzPSR7cn0KICAgICAgICAgICAgLnNlcmllcz0ke2F9CiAgICAgICAgICAgIC5ob3Jpem9udGFsPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke3M9PmAkeyhzLzFlMykudG9GaXhlZCgxKX1rYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgIGlkPSJzdGFjay1jaGFydCIKICAgICAgICAgIC5sYWJlbD0keyJTdGFja2VkOiBSZXF1ZXN0cyBieSBFbmRwb2ludCJ9CiAgICAgICAgICAuY2F0ZWdvcmllcz0ke3R9CiAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgIC5zdGFja2VkPSR7ITB9CiAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHtzPT5gJHtzfSByZXFgfQogICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIEJhciBjaGFydCB3aXRoIHZlcnRpY2FsLCBob3Jpem9udGFsLCBhbmQgc3RhY2tlZCBtb2RlcyDigKIKICAgICAgICAgIENsaWNrICdSYW5kb21pemUnIHRvIHVwZGF0ZSBkYXRhIHdpdGggYW5pbWF0aW9uCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHBmLEVyZT11KCgpPT57dmUoKTtsdCgpO3BmPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQogICAgZGVlcy10aWxlIHsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQogICAgLmNoYXJ0SGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBwYWRkaW5nOiAwIDhweCAwIDE2cHg7CiAgICB9CiAgICAuY2hhcnRMYWJlbCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgIH0KICAgIC5jaGFydENvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICB9CiAgYF19KTt2YXIgQlFyLEhRcj11KCgpPT57dmUoKTtFcmUoKTtCUXI9Wy4uLnBmLHJlYGBdfSk7dmFyIHFRcixWUXI9dSgoKT0+e3ZlKCk7cVFyPWkodD0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3QubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnRCYXIiKX0pO3ZhciBhZyx1bCxqUXIsZzd0PXUoKCk9Pnt2ZSgpO0FyZSgpO0ZRcigpO0hRcigpO1ZRcigpO013KCk7YWc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHVsPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxqUXI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWNoYXJ0LWJhciIpXSxlLHI9W10sYSxzPW0zLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRCYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6QXJyYXl9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1bUCh7YXR0cmlidXRlOiExfSldLGFnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2F0ZWdvcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iY2F0ZWdvcmllcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmNhdGVnb3JpZXMsImdldCIpLHNldDppKChFLEIpPT57RS5jYXRlZ29yaWVzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sbyxsKSxhZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2VyaWVzImluIEUsImhhcyIpLGdldDppKEU9PkUuc2VyaWVzLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uuc2VyaWVzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sZCxmKSxhZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhvcml6b250YWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Imhvcml6b250YWwiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5ob3Jpem9udGFsLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuaG9yaXpvbnRhbD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGgsbSksYWcodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGFja2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzdGFja2VkImluIEUsImhhcyIpLGdldDppKEU9PkUuc3RhY2tlZCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnN0YWNrZWQ9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxiLGcpLGFnKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0xlZ2VuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2hvd0xlZ2VuZCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNob3dMZWdlbmQsImdldCIpLHNldDppKChFLEIpPT57RS5zaG93TGVnZW5kPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sayxNKSxhZyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlRm9ybWF0dGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ2YWx1ZUZvcm1hdHRlciJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnZhbHVlRm9ybWF0dGVyLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UudmFsdWVGb3JtYXR0ZXI9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxfLFMpLGFnKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkx9LG51bGwsciksTz1hPWUudmFsdWUsTCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMfSl9c3RhdGljIGRlbW89UlFyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT11bCh0aGlzLG8sW10pO2dldCBjYXRlZ29yaWVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNhdGVnb3JpZXMoTCl7dGhpcy4jZT1MfSN0PSh1bCh0aGlzLGwpLHVsKHRoaXMsZCxbXSkpO2dldCBzZXJpZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VyaWVzKEwpe3RoaXMuI3Q9TH0jcj0odWwodGhpcyxmKSx1bCh0aGlzLGgsITEpKTtnZXQgaG9yaXpvbnRhbCgpe3JldHVybiB0aGlzLiNyfXNldCBob3Jpem9udGFsKEwpe3RoaXMuI3I9TH0jYT0odWwodGhpcyxtKSx1bCh0aGlzLGIsITEpKTtnZXQgc3RhY2tlZCgpe3JldHVybiB0aGlzLiNhfXNldCBzdGFja2VkKEwpe3RoaXMuI2E9TH0jaT0odWwodGhpcyxnKSx1bCh0aGlzLGssITApKTtnZXQgc2hvd0xlZ2VuZCgpe3JldHVybiB0aGlzLiNpfXNldCBzaG93TGVnZW5kKEwpe3RoaXMuI2k9TH0jcz0odWwodGhpcyxNKSx1bCh0aGlzLF8sTD0+YCR7TH1gKSk7Z2V0IHZhbHVlRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbHVlRm9ybWF0dGVyKEwpe3RoaXMuI3M9TH1zdGF0aWMgc3R5bGVzPUJRcjtyZW5kZXIoKXtyZXR1cm4gcVFyKHRoaXMpfWFzeW5jIHVwZGF0ZWQoTCl7c3VwZXIudXBkYXRlZChMKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihMLmhhcygiY2F0ZWdvcmllcyIpfHxMLmhhcygic2VyaWVzIil8fEwuaGFzKCJob3Jpem9udGFsIil8fEwuaGFzKCJzdGFja2VkIil8fEwuaGFzKCJzaG93TGVnZW5kIikpJiZ0aGlzLnVwZGF0ZUNoYXJ0KCl9YnVpbGRPcHRpb24oKXtsZXQgTD11Zih0aGlzLmdvQnJpZ2h0KSxFPWNmKHRoaXMuZ29CcmlnaHQpLEI9dGhpcy52YWx1ZUZvcm1hdHRlcixDPXt0eXBlOiJjYXRlZ29yeSIsZGF0YTp0aGlzLmNhdGVnb3JpZXMsYXhpc0xpbmU6e2xpbmVTdHlsZTp7Y29sb3I6TC5ib3JkZXJTdHJvbmd9fSxheGlzTGFiZWw6e2NvbG9yOkwudGV4dE11dGVkfX0sej17dHlwZToidmFsdWUiLGF4aXNMaW5lOntzaG93OiExfSxheGlzTGFiZWw6e2NvbG9yOkwudGV4dE11dGVkLGZvcm1hdHRlcjppKFo9PkIoWiksImZvcm1hdHRlciIpfSxzcGxpdExpbmU6e2xpbmVTdHlsZTp7Y29sb3I6TC5ib3JkZXJTdWJ0bGV9fX0sQT10aGlzLmdvQnJpZ2h0Py4xNTouMjUsJD10aGlzLmhvcml6b250YWw/WzAsNCw0LDBdOls0LDQsMCwwXSxGPVswLDAsMCwwXSxZPVtdLEc9dGhpcy5zZXJpZXMubWFwKChaLGRlKT0+e2xldCBEPVouY29sb3J8fEVbZGUlRS5sZW5ndGhdO3JldHVybiBZLnB1c2goe25hbWU6Wi5uYW1lLGl0ZW1TdHlsZTp7Y29sb3I6RH19KSx7bmFtZTpaLm5hbWUsdHlwZToiYmFyIixkYXRhOlouZGF0YSxzdGFjazp0aGlzLnN0YWNrZWQ/InRvdGFsIjp2b2lkIDAsaXRlbVN0eWxlOntjb2xvcjpkZihELEEpLGJvcmRlckNvbG9yOkQsYm9yZGVyV2lkdGg6MSxib3JkZXJSYWRpdXM6dGhpcy5zdGFja2VkP0Y6JH0sYmFyTWF4V2lkdGg6NDAsYmFyR2FwOiIyMCUiLGVtcGhhc2lzOntpdGVtU3R5bGU6e2NvbG9yOmRmKEQsQSsuMTUpLGJvcmRlckNvbG9yOkQsYm9yZGVyV2lkdGg6MS41fX19fSk7aWYodGhpcy5zdGFja2VkJiZHLmxlbmd0aD4wKXtsZXQgWj1HW0cubGVuZ3RoLTFdO1ouaXRlbVN0eWxlLmJvcmRlclJhZGl1cz0kfXJldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJheGlzIixheGlzUG9pbnRlcjp7dHlwZToic2hhZG93In0sZm9ybWF0dGVyOmkoWj0+e2xldCBkZT1BcnJheS5pc0FycmF5KFopP1o6W1pdLEQ9YDxzdHJvbmc+JHtkZVswXS5heGlzVmFsdWVMYWJlbH08L3N0cm9uZz48YnIvPmA7Zm9yKGxldCBRIG9mIGRlKXtsZXQgVD1gPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjoke1EuYm9yZGVyQ29sb3J8fFEuY29sb3J9OyI+PC9zcGFuPmA7RCs9YCR7VH0ke1Euc2VyaWVzTmFtZX06IDxzdHJvbmc+JHtCKFEudmFsdWUpfTwvc3Ryb25nPjxici8+YH1yZXR1cm4gRH0sImZvcm1hdHRlciIpfSxsZWdlbmQ6dGhpcy5zaG93TGVnZW5kJiZ0aGlzLnNlcmllcy5sZW5ndGg+MT97Ym90dG9tOjgsaXRlbVdpZHRoOjEwLGl0ZW1IZWlnaHQ6MTAsZGF0YTpZfTp7c2hvdzohMX0sZ3JpZDp7bGVmdDoxNixyaWdodDoxNix0b3A6MTYsYm90dG9tOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/NDA6MTYsY29udGFpbkxhYmVsOiEwfSx4QXhpczp0aGlzLmhvcml6b250YWw/ejpDLHlBeGlzOnRoaXMuaG9yaXpvbnRhbD9DOnosc2VyaWVzOkd9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx1bCh0aGlzLFMpfXN0YXRpY3t1bChhLHIpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgVVFyPXUoKCk9PntnN3QoKX0pO3ZhciBXUXIsR1FyPXUoKCk9Pnt2ZSgpO3dhKCk7Yjd0KCk7V1FyPWkoKCk9PntsZXQgdD1be25hbWU6IkRvY3VtZW50cyIsdmFsdWU6NDJ9LHtuYW1lOiJNZWRpYSIsdmFsdWU6Mjh9LHtuYW1lOiJBcHBsaWNhdGlvbnMiLHZhbHVlOjE1fSx7bmFtZToiU3lzdGVtIix2YWx1ZToxMH0se25hbWU6Ik90aGVyIix2YWx1ZTo1fV0sZT1be25hbWU6IkhlYWx0aHkiLHZhbHVlOjE1Nn0se25hbWU6Ildhcm5pbmciLHZhbHVlOjIzfSx7bmFtZToiQ3JpdGljYWwiLHZhbHVlOjh9LHtuYW1lOiJVbmtub3duIix2YWx1ZTozfV0scj1be25hbWU6IkFQSSIsdmFsdWU6NDUyMDB9LHtuYW1lOiJTdGF0aWMgQXNzZXRzIix2YWx1ZToyMzEwMH0se25hbWU6IldlYlNvY2tldCIsdmFsdWU6MTI4MDB9LHtuYW1lOiJHcmFwaFFMIix2YWx1ZTo4OTAwfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IHM9YS5xdWVyeVNlbGVjdG9yKCIjZGlzay1jaGFydCIpLG49YS5xdWVyeVNlbGVjdG9yKCIjc3RhdHVzLWNoYXJ0Iiksbz1hLnF1ZXJ5U2VsZWN0b3IoIiN0cmFmZmljLWNoYXJ0Iik7YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYz0+e2MudGV4dD8udHJpbSgpPT09IlJhbmRvbWl6ZSImJmMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57cy5kYXRhPXQubWFwKGY9Pih7Li4uZix2YWx1ZTpNYXRoLnJvdW5kKGYudmFsdWUqKC41K01hdGgucmFuZG9tKCkpKX0pKSxuLmRhdGE9ZS5tYXAoZj0+KHsuLi5mLHZhbHVlOk1hdGgucm91bmQoZi52YWx1ZSooLjMrTWF0aC5yYW5kb20oKSoxLjQpKX0pKSxvLmRhdGE9ci5tYXAoZj0+KHsuLi5mLHZhbHVlOk1hdGgucm91bmQoZi52YWx1ZSooLjUrTWF0aC5yYW5kb20oKSkpfSkpfSl9KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0iZGlzay1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2sgVXNhZ2UgKEdCKSJ9CiAgICAgICAgICAgIC5kYXRhPSR7dH0KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7YT0+YCR7YX0gR0JgfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0ic3RhdHVzLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBTdGF0dXMifQogICAgICAgICAgICAuZGF0YT0ke2V9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2E9PmAke2F9IHNlcnZpY2VzYH0KICAgICAgICAgICAgLmlubmVyUmFkaXVzUGVyY2VudD0keyIwJSJ9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgaWQ9InRyYWZmaWMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiVHJhZmZpYyBEaXN0cmlidXRpb24ifQogICAgICAgICAgLmRhdGE9JHtyfQogICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7YT0+YCR7KGEvMWUzKS50b0ZpeGVkKDEpfWsgcmVxYH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIERvbnV0IGNoYXJ0IHdpdGggY29uZmlndXJhYmxlIGlubmVyIHJhZGl1cyAoc2V0IHRvIDAlIGZvciBmdWxsIHBpZSkg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YSB3aXRoIGFuaW1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBZUXIsS1FyPXUoKCk9Pnt2ZSgpO0VyZSgpO1lRcj1bLi4ucGYscmVgCiAgICA6aG9zdCB7CiAgICAgIGhlaWdodDogMzYwcHg7CiAgICB9CiAgICAuY2hhcnRDb250YWluZXIgewogICAgICBpbnNldDogMTJweCAwOwogICAgfQogIGBdfSk7dmFyIFpRcixRUXI9dSgoKT0+e3ZlKCk7WlFyPWkodD0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3QubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnREb251dCIpfSk7dmFyIEN3LF9jLFhRcixiN3Q9dSgoKT0+e3ZlKCk7QXJlKCk7R1FyKCk7S1FyKCk7UVFyKCk7TXcoKTtDdz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sX2M9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFhRcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtY2hhcnQtZG9udXQiKV0sZSxyPVtdLGEscz1tMyxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0RG9udXQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7YXR0cmlidXRlOiExfSldLEN3KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZGF0YSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmRhdGEsImdldCIpLHNldDppKChTLE8pPT57Uy5kYXRhPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxDdyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNob3dMZWdlbmQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc2hvd0xlZ2VuZD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksQ3codGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGFiZWxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaG93TGFiZWxzImluIFMsImhhcyIpLGdldDppKFM9PlMuc2hvd0xhYmVscywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNob3dMYWJlbHM9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEN3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5uZXJSYWRpdXNQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpbm5lclJhZGl1c1BlcmNlbnQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pbm5lclJhZGl1c1BlcmNlbnQsImdldCIpLHNldDppKChTLE8pPT57Uy5pbm5lclJhZGl1c1BlcmNlbnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEN3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWVGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InZhbHVlRm9ybWF0dGVyImluIFMsImhhcyIpLGdldDppKFM9PlMudmFsdWVGb3JtYXR0ZXIsImdldCIpLHNldDppKChTLE8pPT57Uy52YWx1ZUZvcm1hdHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssTSksQ3cobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxOPWE9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1XUXI7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPV9jKHRoaXMsbyxbXSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShfKXt0aGlzLiNlPV99I3Q9KF9jKHRoaXMsbCksX2ModGhpcyxkLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0xlZ2VuZChfKXt0aGlzLiN0PV99I3I9KF9jKHRoaXMsZiksX2ModGhpcyxoLCEwKSk7Z2V0IHNob3dMYWJlbHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0xhYmVscyhfKXt0aGlzLiNyPV99I2E9KF9jKHRoaXMsbSksX2ModGhpcyxiLCI1NSUiKSk7Z2V0IGlubmVyUmFkaXVzUGVyY2VudCgpe3JldHVybiB0aGlzLiNhfXNldCBpbm5lclJhZGl1c1BlcmNlbnQoXyl7dGhpcy4jYT1ffSNpPShfYyh0aGlzLGcpLF9jKHRoaXMsayxfPT5gJHtffWApKTtnZXQgdmFsdWVGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsdWVGb3JtYXR0ZXIoXyl7dGhpcy4jaT1ffXN0YXRpYyBzdHlsZXM9WVFyO3JlbmRlcigpe3JldHVybiBaUXIodGhpcyl9YXN5bmMgdXBkYXRlZChfKXtzdXBlci51cGRhdGVkKF8pLHRoaXMuY2hhcnRJbnN0YW5jZSYmKF8uaGFzKCJkYXRhIil8fF8uaGFzKCJzaG93TGVnZW5kIil8fF8uaGFzKCJzaG93TGFiZWxzIil8fF8uaGFzKCJpbm5lclJhZGl1c1BlcmNlbnQiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCBfPXVmKHRoaXMuZ29CcmlnaHQpLFM9Y2YodGhpcy5nb0JyaWdodCksTz10aGlzLmdvQnJpZ2h0Py4xNTouMixMPVtdLEU9dGhpcy5kYXRhLm1hcCgoQyx6KT0+e2xldCBBPUMuY29sb3J8fFNbeiVTLmxlbmd0aF07cmV0dXJuIEwucHVzaCh7bmFtZTpDLm5hbWUsaXRlbVN0eWxlOntjb2xvcjpBfX0pLHtuYW1lOkMubmFtZSx2YWx1ZTpDLnZhbHVlLGl0ZW1TdHlsZTp7Y29sb3I6ZGYoQSxPKSxib3JkZXJDb2xvcjpBLGJvcmRlcldpZHRoOjF9LGVtcGhhc2lzOntpdGVtU3R5bGU6e2NvbG9yOmRmKEEsTysuMTUpLGJvcmRlckNvbG9yOkEsYm9yZGVyV2lkdGg6MS41fX19fSksQj10aGlzLnZhbHVlRm9ybWF0dGVyO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIixmb3JtYXR0ZXI6aShDPT5gJHtgPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjoke0MuZGF0YT8uaXRlbVN0eWxlPy5ib3JkZXJDb2xvcnx8Qy5jb2xvcn07Ij48L3NwYW4+YH0ke0MubmFtZX06IDxzdHJvbmc+JHtCKEMudmFsdWUpfTwvc3Ryb25nPiAoJHtDLnBlcmNlbnR9JSlgLCJmb3JtYXR0ZXIiKX0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZD97b3JpZW50OiJ2ZXJ0aWNhbCIscmlnaHQ6MTYsdG9wOiJjZW50ZXIiLGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwLGl0ZW1HYXA6MTIsZGF0YTpMLGZvcm1hdHRlcjppKEM9PntsZXQgej10aGlzLmRhdGEuZmluZChBPT5BLm5hbWU9PT1DKTtyZXR1cm4gej9gJHtDfSAgJHtCKHoudmFsdWUpfWA6Q30sImZvcm1hdHRlciIpfTp7c2hvdzohMX0sc2VyaWVzOlt7dHlwZToicGllIixyYWRpdXM6W3RoaXMuaW5uZXJSYWRpdXNQZXJjZW50LCI4NSUiXSxjZW50ZXI6dGhpcy5zaG93TGVnZW5kP1siMzUlIiwiNTAlIl06WyI1MCUiLCI1MCUiXSxhdm9pZExhYmVsT3ZlcmxhcDohMCxwYWRBbmdsZToyLGl0ZW1TdHlsZTp7Ym9yZGVyUmFkaXVzOjR9LGxhYmVsOnRoaXMuc2hvd0xhYmVscz97c2hvdzohMCxmb3JtYXR0ZXI6IntifToge2R9JSIsZm9udFNpemU6MTEsY29sb3I6Xy50ZXh0U2Vjb25kYXJ5LHRleHRCb3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifTp7c2hvdzohMX0sZGF0YTpFfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxfYyh0aGlzLE0pfXN0YXRpY3tfYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgSlFyPXUoKCk9PntiN3QoKX0pO3ZhciBlWHIsdFhyPXUoKCk9Pnt2ZSgpO3dhKCk7eDd0KCk7ZVhyPWkoKCk9PntsZXQgdD1be3ZhbHVlOjYwLGNvbG9yOiJoc2woMTQyIDc2JSAzNiUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMzggOTIlIDUwJSkifSx7dmFsdWU6MTAwLGNvbG9yOiJoc2woMCA3MiUgNTAlKSJ9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIiNjcHUtZ2F1Z2UiKSxhPWUucXVlcnlTZWxlY3RvcigiI21lbS1nYXVnZSIpLHM9ZS5xdWVyeVNlbGVjdG9yKCIjc2xhLWdhdWdlIiksbj1udWxsO2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGw9PntsZXQgYz1sLnRleHQ/LnRyaW0oKTtjPT09IkFuaW1hdGUiP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bnx8KG49d2luZG93LnNldEludGVydmFsKCgpPT57ci52YWx1ZT1NYXRoLnJvdW5kKDMwK01hdGgucmFuZG9tKCkqNjApLGEudmFsdWU9TWF0aC5yb3VuZCg0MCtNYXRoLnJhbmRvbSgpKjUwKSxzLnZhbHVlPU1hdGgucm91bmQoKDk1K01hdGgucmFuZG9tKCkqNSkqMTAwKS8xMDB9LDJlMykpfSk6Yz09PSJTdG9wIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChuKSxuPW51bGwpfSk6Yz09PSJTcGlrZSImJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci52YWx1ZT05NSxhLnZhbHVlPTg4LHMudmFsdWU9OTYuNX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7cmVgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5nYXVnZVJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QW5pbWF0ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdhdWdlUm93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWdhdWdlCiAgICAgICAgICAgIGlkPSJjcHUtZ2F1Z2UiCiAgICAgICAgICAgIC5sYWJlbD0keyJDUFUgVXNhZ2UifQogICAgICAgICAgICAudmFsdWU9JHs0Mn0KICAgICAgICAgICAgLnVuaXQ9JHsiJSJ9CiAgICAgICAgICAgIC50aHJlc2hvbGRzPSR7dH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtZ2F1Z2U+CgogICAgICAgICAgPGRlZXMtY2hhcnQtZ2F1Z2UKICAgICAgICAgICAgaWQ9Im1lbS1nYXVnZSIKICAgICAgICAgICAgLmxhYmVsPSR7Ik1lbW9yeSBVc2FnZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezY3fQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnRocmVzaG9sZHM9JHt0fQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1nYXVnZQogICAgICAgICAgICBpZD0ic2xhLWdhdWdlIgogICAgICAgICAgICAubGFiZWw9JHsiU0xBIFVwdGltZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezk5Ljh9CiAgICAgICAgICAgIC5taW49JHs5NX0KICAgICAgICAgICAgLm1heD0kezEwMH0KICAgICAgICAgICAgLnVuaXQ9JHsiJSJ9CiAgICAgICAgICAgIC5zaG93VGlja3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtZ2F1Z2U+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgR2F1Z2UgY2hhcnQgd2l0aCBhbmltYXRlZCB2YWx1ZSB0cmFuc2l0aW9ucyBhbmQgdGhyZXNob2xkIGNvbG9yaW5nIOKAogogICAgICAgICAgQ2xpY2sgJ0FuaW1hdGUnIGZvciBsaXZlIHVwZGF0ZXMsICdTcGlrZScgdG8gc2ltdWxhdGUgaGlnaCBsb2FkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHJYcixhWHI9dSgoKT0+e3ZlKCk7RXJlKCk7clhyPVsuLi5wZixyZWAKICAgIDpob3N0IHsKICAgICAgaGVpZ2h0OiAzMjBweDsKICAgIH0KICBgXX0pO3ZhciBpWHIsc1hyPXUoKCk9Pnt2ZSgpO2lYcj1pKHQ9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHt0LmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0R2F1Z2UiKX0pO3ZhciBpZyxwbCxuWHIseDd0PXUoKCk9Pnt2ZSgpO0FyZSgpO3RYcigpO2FYcigpO3NYcigpO013KCk7aWc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHBsPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxuWHI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWNoYXJ0LWdhdWdlIildLGUscj1bXSxhLHM9bTMsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydEdhdWdlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1bUCh7dHlwZTpOdW1iZXJ9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpBcnJheX0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0saWcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZSwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnZhbHVlPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sbyxsKSxpZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWluImluIEUsImhhcyIpLGdldDppKEU9PkUubWluLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UubWluPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sZCxmKSxpZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWF4ImluIEUsImhhcyIpLGdldDppKEU9PkUubWF4LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UubWF4PUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0saCxtKSxpZyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InVuaXQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS51bml0LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UudW5pdD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGIsZyksaWcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0aHJlc2hvbGRzImluIEUsImhhcyIpLGdldDppKEU9PkUudGhyZXNob2xkcywiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnRocmVzaG9sZHM9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxrLE0pLGlnKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RpY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzaG93VGlja3MiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93VGlja3MsImdldCIpLHNldDppKChFLEIpPT57RS5zaG93VGlja3M9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxfLFMpLGlnKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkx9LG51bGwsciksTz1hPWUudmFsdWUsTCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMfSl9c3RhdGljIGRlbW89ZVhyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1wbCh0aGlzLG8sMCk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEwpe3RoaXMuI2U9TH0jdD0ocGwodGhpcyxsKSxwbCh0aGlzLGQsMCkpO2dldCBtaW4oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluKEwpe3RoaXMuI3Q9TH0jcj0ocGwodGhpcyxmKSxwbCh0aGlzLGgsMTAwKSk7Z2V0IG1heCgpe3JldHVybiB0aGlzLiNyfXNldCBtYXgoTCl7dGhpcy4jcj1MfSNhPShwbCh0aGlzLG0pLHBsKHRoaXMsYiwiJSIpKTtnZXQgdW5pdCgpe3JldHVybiB0aGlzLiNhfXNldCB1bml0KEwpe3RoaXMuI2E9TH0jaT0ocGwodGhpcyxnKSxwbCh0aGlzLGssW10pKTtnZXQgdGhyZXNob2xkcygpe3JldHVybiB0aGlzLiNpfXNldCB0aHJlc2hvbGRzKEwpe3RoaXMuI2k9TH0jcz0ocGwodGhpcyxNKSxwbCh0aGlzLF8sITApKTtnZXQgc2hvd1RpY2tzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dUaWNrcyhMKXt0aGlzLiNzPUx9c3RhdGljIHN0eWxlcz1yWHI7cmVuZGVyKCl7cmV0dXJuIGlYcih0aGlzKX1hc3luYyB1cGRhdGVkKEwpe3N1cGVyLnVwZGF0ZWQoTCksdGhpcy5jaGFydEluc3RhbmNlJiYoTC5oYXMoInZhbHVlIil8fEwuaGFzKCJtaW4iKXx8TC5oYXMoIm1heCIpfHxMLmhhcygidW5pdCIpfHxMLmhhcygidGhyZXNob2xkcyIpfHxMLmhhcygic2hvd1RpY2tzIikpJiZ0aGlzLnVwZGF0ZUNoYXJ0KCl9YnVpbGRPcHRpb24oKXtsZXQgTD11Zih0aGlzLmdvQnJpZ2h0KSxCPWNmKHRoaXMuZ29CcmlnaHQpWzBdLEM7aWYodGhpcy50aHJlc2hvbGRzLmxlbmd0aD4wKXtsZXQgej1bLi4udGhpcy50aHJlc2hvbGRzXS5zb3J0KChBLCQpPT5BLnZhbHVlLSQudmFsdWUpO0M9ei5tYXAoQT0+WyhBLnZhbHVlLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLEEuY29sb3JdKSxDW0MubGVuZ3RoLTFdWzBdPDEmJkMucHVzaChbMSx6W3oubGVuZ3RoLTFdLmNvbG9yXSl9ZWxzZSBDPVtbMSxCXV07cmV0dXJue3Nlcmllczpbe3R5cGU6ImdhdWdlIixtaW46dGhpcy5taW4sbWF4OnRoaXMubWF4LHN0YXJ0QW5nbGU6MjIwLGVuZEFuZ2xlOi00MCxwcm9ncmVzczp7c2hvdzohMCx3aWR0aDoxNCxyb3VuZENhcDohMH0scG9pbnRlcjp7c2hvdzohMCxsZW5ndGg6IjYwJSIsd2lkdGg6NSxpdGVtU3R5bGU6e2NvbG9yOiJhdXRvIn19LGF4aXNMaW5lOntsaW5lU3R5bGU6e3dpZHRoOjE0LGNvbG9yOkMsb3BhY2l0eTouM319LGF4aXNUaWNrOntzaG93OnRoaXMuc2hvd1RpY2tzLGRpc3RhbmNlOi0yMCxsZW5ndGg6NixsaW5lU3R5bGU6e2NvbG9yOkwuYm9yZGVyU3Ryb25nLHdpZHRoOjF9fSxzcGxpdExpbmU6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6LTI0LGxlbmd0aDoxMCxsaW5lU3R5bGU6e2NvbG9yOkwudGV4dE11dGVkLHdpZHRoOjJ9fSxheGlzTGFiZWw6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6MzAsY29sb3I6TC50ZXh0TXV0ZWQsZm9udFNpemU6MTF9LGRldGFpbDp7dmFsdWVBbmltYXRpb246ITAsZm9udFNpemU6MjgsZm9udFdlaWdodDo2MDAsb2Zmc2V0Q2VudGVyOlswLCI2NSUiXSxjb2xvcjpMLnRleHRQcmltYXJ5LGZvcm1hdHRlcjpge3ZhbHVlfSR7dGhpcy51bml0fWB9LHRpdGxlOntzaG93OiExfSxkYXRhOlt7dmFsdWU6dGhpcy52YWx1ZX1dfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxwbCh0aGlzLFMpfXN0YXRpY3twbChhLHIpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgb1hyPXUoKCk9Pnt4N3QoKX0pO3ZhciBsWHIsY1hyPXUoKCk9Pnt2ZSgpO3dhKCk7bFhyPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjc3RydWN0dXJlZC1sb2ciKSxyPXQucXVlcnlTZWxlY3RvcigiI3Jhdy1sb2ciKSxhLHMsbj1bIlNlcnZlciIsIkRhdGFiYXNlIiwiQVBJIiwiQXV0aCIsIkNhY2hlIiwiUXVldWUiLCJXZWJTb2NrZXQiLCJTY2hlZHVsZXIiXSxvPXtkZWJ1ZzpbIkxvYWRpbmcgbW9kdWxlOiB7e21vZHVsZX19IiwiQ2FjaGUgaGl0IGZvciBrZXk6IHt7a2V5fX0iLCJTUUwgcXVlcnkgZXhlY3V0ZWQgaW4ge3t0aW1lfX1tcyIsIlJlcXVlc3QgaGVhZGVyczoge3toZWFkZXJzfX0iLCJFbnZpcm9ubWVudCB2YXJpYWJsZSBsb2FkZWQ6IHt7dmFyfX0iXSxpbmZvOlsiUmVxdWVzdCByZWNlaXZlZDoge3ttZXRob2R9fSB7e3BhdGh9fSIsIlVzZXIge3t1c2VySWR9fSBhdXRoZW50aWNhdGVkIHN1Y2Nlc3NmdWxseSIsIlByb2Nlc3Npbmcgam9iIHt7am9iSWR9fSBmcm9tIHF1ZXVlIiwnU2NoZWR1bGVkIHRhc2sgInt7dGFza319IiBzdGFydGVkJywiV2ViU29ja2V0IGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgZnJvbSB7e2lwfX0iXSx3YXJuOlsiU2xvdyBxdWVyeSBkZXRlY3RlZDoge3txdWVyeX19ICh7e3RpbWV9fW1zKSIsIk1lbW9yeSB1c2FnZSBhdCB7e3BlcmNlbnR9fSUiLCJSYXRlIGxpbWl0IGFwcHJvYWNoaW5nIGZvciBJUCB7e2lwfX0iLCJEZXByZWNhdGVkIEFQSSBlbmRwb2ludCBjYWxsZWQ6IHt7ZW5kcG9pbnR9fSIsIkNlcnRpZmljYXRlIGV4cGlyZXMgaW4ge3tkYXlzfX0gZGF5cyJdLGVycm9yOlsiRGF0YWJhc2UgY29ubmVjdGlvbiBsb3N0OiB7e2Vycm9yfX0iLCJGYWlsZWQgdG8gcHJvY2VzcyByZXF1ZXN0OiB7e2Vycm9yfX0iLCJBdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIge3t1c2VyfX0iLCJGaWxlIG5vdCBmb3VuZDoge3twYXRofX0iLCJTZXJ2aWNlIHVuYXZhaWxhYmxlOiB7e3NlcnZpY2V9fSJdLHN1Y2Nlc3M6WyJTZXJ2ZXIgc3RhcnRlZCBzdWNjZXNzZnVsbHkgb24gcG9ydCB7e3BvcnR9fSIsIkRhdGFiYXNlIG1pZ3JhdGlvbiBjb21wbGV0ZWQiLCJCYWNrdXAgY29tcGxldGVkOiB7e3NpemV9fSBNQiIsIlNTTCBjZXJ0aWZpY2F0ZSByZW5ld2VkIiwiSGVhbHRoIGNoZWNrIHBhc3NlZDogYWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiXX0sbD1bIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS4xMjNaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbbmdpbnhdIEdFVCAvYXBpL2hlYWx0aCAyMDAgLSAybXMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNDU2Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JlZGlzXSBDb25uZWN0aW9uIHBvb2wgcnVubmluZyBsb3c6IDMvMTAiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNzg5Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW21vbmdvZGJdIFF1ZXJ5IHRpbWVvdXQgYWZ0ZXIgMzAwMDBtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ni4wMTJaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbYXBwXSBQcm9jZXNzaW5nIGJhdGNoIGpvYiAje3tqb2JJZH19IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjM0NVpceDFCWzBtIFx4MUJbMzJtT0tceDFCWzBtICAgIFtoZWFsdGhdIEFsbCBzZXJ2aWNlcyBoZWFsdGh5IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjY3OFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtrYWZrYV0gTWVzc2FnZSBjb25zdW1lZCBmcm9tIHRvcGljOiBldmVudHMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMDAxWlx4MUJbMG0gXHgxQlszNW1ERUJVR1x4MUJbMG0gW2dycGNdIFJlcXVlc3QgcmVjZWl2ZWQ6IEdldFVzZXIoaWQ9e3t1c2VySWR9fSkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMjM0Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW2F1dGhdIFRva2VuIHZhbGlkYXRpb24gZmFpbGVkOiBleHBpcmVkIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3LjU2N1pceDFCWzBtIFx4MUJbMzNtV0FSTlx4MUJbMG0gIFtyYXRlLWxpbWl0XSBJUCB7e2lwfX0gYXBwcm9hY2hpbmcgcmF0ZSBsaW1pdCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny44OTBaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbd2Vic29ja2V0XSBDbGllbnQgY29ubmVjdGVkOiBzZXNzaW9uPXt7c2Vzc2lvbn19IixgXHgxQlszMW1FcnJvcjogQ29ubmVjdGlvbiByZWZ1c2VkXHgxQlswbQogICAgYXQgVGNwQ29ubmVjdGlvbi5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvY29ubmVjdGlvbi5qczoxMjoxNSkKICAgIGF0IFBvb2wuY29ubmVjdCAoL2FwcC9ub2RlX21vZHVsZXMvcGcvbGliL3Bvb2wuanM6NDU6MjMpCiAgICBhdCBhc3luYyBEYXRhYmFzZVNlcnZpY2UucXVlcnkgKC9hcHAvc3JjL2RiL3NlcnZpY2UudHM6ODk6MTIpYF0sYz1pKCgpPT57bGV0IGI9WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJzdWNjZXNzIl0sZz1bLjIsLjUsLjE1LC4xLC4wNV0seT1NYXRoLnJhbmRvbSgpLGs9MCxNPSJpbmZvIjtmb3IobGV0IEw9MDtMPGcubGVuZ3RoO0wrKylpZihrKz1nW0xdLHk8ayl7TT1iW0xdO2JyZWFrfWxldCBOPW5bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm4ubGVuZ3RoKV0sXz1vW01dLE89X1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqXy5sZW5ndGgpXS5yZXBsYWNlKCJ7e21vZHVsZX19IixbImV4cHJlc3MiLCJtb25nb29zZSIsInJlZGlzIiwic29ja2V0LmlvIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3trZXl9fSIsInVzZXI6IitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3t0aW1lfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSs1MCkpLnJlcGxhY2UoInt7aGVhZGVyc319IiwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uIikucmVwbGFjZSgie3t2YXJ9fSIsWyJOT0RFX0VOViIsIkRBVEFCQVNFX1VSTCIsIkFQSV9LRVkiLCJQT1JUIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3ttZXRob2R9fSIsWyJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3twYXRofX0iLFsiL2FwaS91c2VycyIsIi9hcGkvYXV0aC9sb2dpbiIsIi9hcGkvcHJvZHVjdHMiLCIvaGVhbHRoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tqb2JJZH19Iiwiam9iXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKS5yZXBsYWNlKCJ7e3Rhc2t9fSIsWyJjbGVhbnVwIiwiYmFja3VwIiwicmVwb3J0LWdlbmVyYXRpb24iLCJjYWNoZS1yZWZyZXNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3txdWVyeX19IiwiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSAuLi4iKS5yZXBsYWNlKCJ7e3BlcmNlbnR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrNzApKS5yZXBsYWNlKCJ7e2VuZHBvaW50fX0iLCIvYXBpL3YxL2xlZ2FjeSIpLnJlcGxhY2UoInt7ZGF5c319IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSsxKSkucmVwbGFjZSgie3tlcnJvcn19IixbIkVDT05OUkVGVVNFRCIsIkVUSU1FRE9VVCIsIkVOT1RGT1VORCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7dXNlcn19IiwidXNlcl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3NlcnZpY2V9fSIsWyJSZWRpcyIsIk1vbmdvREIiLCJFbGFzdGljU2VhcmNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3twb3J0fX0iLFN0cmluZygzZTMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwKSkpLnJlcGxhY2UoInt7c2l6ZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrMTAwKSk7ZS5hZGRMb2coTSxPLE4pfSwiZ2VuZXJhdGVSYW5kb21Mb2ciKSxkPWkoKCk9PntsZXQgYj1sW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpsLmxlbmd0aCldLGc9bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk9Yi5yZXBsYWNlKC8yMDI0LTAxLTE1VDEwOjIzOlxkezJ9XC5cZHszfVovZyxnKS5yZXBsYWNlKCJ7e2pvYklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7dXNlcklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7aXB9fSIsYDE5Mi4xNjguMS4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTUpfWApLnJlcGxhY2UoInt7c2Vzc2lvbn19IixNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwxMSkpO3Iud3JpdGVsblJhdyh5KX0sImdlbmVyYXRlRG9ja2VyTG9nIiksZj1pKCgpPT57aWYoIWEpe2xldCBiPWkoKCk9PntjKCk7bGV0IGc9TWF0aC5yYW5kb20oKSoyZTMrNTAwO2E9d2luZG93LnNldFRpbWVvdXQoKCk9PnthJiZiKCl9LGcpfSwic2NoZWR1bGVOZXh0Iik7YigpfX0sInN0YXJ0U3RydWN0dXJlZFNpbXVsYXRpb24iKSxwPWkoKCk9PnthJiYod2luZG93LmNsZWFyVGltZW91dChhKSxhPW51bGwpfSwic3RvcFN0cnVjdHVyZWRTaW11bGF0aW9uIiksaD1pKCgpPT57aWYoIXMpe2xldCBiPWkoKCk9PntkKCk7bGV0IGc9TWF0aC5yYW5kb20oKSoxZTMrMjAwO3M9d2luZG93LnNldFRpbWVvdXQoKCk9PntzJiZiKCl9LGcpfSwic2NoZWR1bGVOZXh0Iik7YigpfX0sInN0YXJ0UmF3U2ltdWxhdGlvbiIpLG09aSgoKT0+e3MmJih3aW5kb3cuY2xlYXJUaW1lb3V0KHMpLHM9bnVsbCl9LCJzdG9wUmF3U2ltdWxhdGlvbiIpO3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGI9Pntzd2l0Y2goYi50ZXh0Py50cmltKCkpe2Nhc2UiQWRkIFN0cnVjdHVyZWQgTG9nIjpiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+YygpKTticmVhaztjYXNlIlN0YXJ0IFN0cnVjdHVyZWQiOmIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5mKCkpO2JyZWFrO2Nhc2UiU3RvcCBTdHJ1Y3R1cmVkIjpiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+cCgpKTticmVhaztjYXNlIkFkZCBEb2NrZXIgTG9nIjpiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZCgpKTticmVhaztjYXNlIlN0YXJ0IERvY2tlciI6Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PmgoKSk7YnJlYWs7Y2FzZSJTdG9wIERvY2tlciI6Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pm0oKSk7YnJlYWt9fSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7cmVgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgIH0KICAgICAgICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPCEtLSBTdHJ1Y3R1cmVkIExvZ3MgU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U3RydWN0dXJlZCBMb2dzIChJTG9nRW50cnkpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBTdHJ1Y3R1cmVkIGxvZyBlbnRyaWVzIHdpdGggbGV2ZWwsIG1lc3NhZ2UsIGFuZCBzb3VyY2UuIFN1cHBvcnRzIHNlYXJjaCBhbmQga2V5d29yZCBoaWdobGlnaHRpbmcuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBTdHJ1Y3R1cmVkIExvZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgU3RydWN0dXJlZDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBTdHJ1Y3R1cmVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgIGlkPSJzdHJ1Y3R1cmVkLWxvZyIKICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0aW9uIFNlcnZlciBMb2dzIn0KICAgICAgICAgIC5oaWdobGlnaHRLZXl3b3Jkcz0ke1siZXJyb3IiLCJmYWlsZWQiLCJ0aW1lb3V0Il19CiAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIFJhdyBMb2dzIFNlY3Rpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlJhdyBMb2dzIChEb2NrZXIvQ29udGFpbmVyIFN0eWxlKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgUmF3IGxvZyBvdXRwdXQgd2l0aCBBTlNJIGVzY2FwZSBzZXF1ZW5jZXMgZm9yIHJlYWwgRG9ja2VyL2NvbnRhaW5lciBsb2dzLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgRG9ja2VyIExvZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgRG9ja2VyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIERvY2tlcjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtY2hhcnQtbG9nCiAgICAgICAgICBpZD0icmF3LWxvZyIKICAgICAgICAgIC5sYWJlbD0keyJEb2NrZXIgQ29udGFpbmVyIExvZ3MifQogICAgICAgICAgLm1vZGU9JHsicmF3In0KICAgICAgICAgIC5zaG93TWV0cmljcz0keyExfQogICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgbDIsX2ksZFhyLHVYcj11KCgpPT57dmUoKTtNcigpO2NYcigpO2x0KCk7cDMoKTtucygpO2wyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxfaT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZFhyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1jaGFydC1sb2ciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W107dmFyIGZlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRMb2ciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKCldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6TnVtYmVyfSldLE49W1Aoe3R5cGU6QXJyYXl9KV0sTz1bUCh7dHlwZTpCb29sZWFufSldLEI9W2llKCldLEE9W2llKCldLFk9W2llKCldLGRlPVtpZSgpXSxsMih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJsYWJlbCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmxhYmVsLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmxhYmVsPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LG8sbCksbDIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJtb2RlImluIFcsImhhcyIpLGdldDppKFc9PlcubW9kZSwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5tb2RlPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGQsZiksbDIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJsb2dFbnRyaWVzImluIFcsImhhcyIpLGdldDppKFc9PlcubG9nRW50cmllcywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5sb2dFbnRyaWVzPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGgsbSksbDIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJhdXRvU2Nyb2xsImluIFcsImhhcyIpLGdldDppKFc9PlcuYXV0b1Njcm9sbCwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5hdXRvU2Nyb2xsPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGIsZyksbDIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJtYXhFbnRyaWVzImluIFcsImhhcyIpLGdldDppKFc9PlcubWF4RW50cmllcywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5tYXhFbnRyaWVzPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGssTSksbDIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRLZXl3b3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaGlnaGxpZ2h0S2V5d29yZHMiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5oaWdobGlnaHRLZXl3b3JkcywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5oaWdobGlnaHRLZXl3b3Jkcz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxfLFMpLGwyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InNob3dNZXRyaWNzImluIFcsImhhcyIpLGdldDppKFc9Plcuc2hvd01ldHJpY3MsImdldCIpLHNldDppKChXLHBlKT0+e1cuc2hvd01ldHJpY3M9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sTCxFKSxsMih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJzZWFyY2hRdWVyeSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnNlYXJjaFF1ZXJ5PXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEMseiksbDIodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJmaWx0ZXJNb2RlImluIFcsImhhcyIpLGdldDppKFc9PlcuZmlsdGVyTW9kZSwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5maWx0ZXJNb2RlPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LCQsRiksbDIodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJtZXRyaWNzImluIFcsImhhcyIpLGdldDppKFc9PlcubWV0cmljcywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5tZXRyaWNzPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEcsWiksbDIodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxSZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idGVybWluYWxSZWFkeSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnRlcm1pbmFsUmVhZHksImdldCIpLHNldDppKChXLHBlKT0+e1cudGVybWluYWxSZWFkeT1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxELFEpLGwyKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsciksZmU9YT1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPWxYcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0IiwiV29ya3NwYWNlIl07I2U9X2kodGhpcyxvLCJTZXJ2ZXIgTG9ncyIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChUKXt0aGlzLiNlPVR9I3Q9KF9pKHRoaXMsbCksX2kodGhpcyxkLCJzdHJ1Y3R1cmVkIikpO2dldCBtb2RlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGUoVCl7dGhpcy4jdD1UfSNyPShfaSh0aGlzLGYpLF9pKHRoaXMsaCxbXSkpO2dldCBsb2dFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvZ0VudHJpZXMoVCl7dGhpcy4jcj1UfSNhPShfaSh0aGlzLG0pLF9pKHRoaXMsYiwhMCkpO2dldCBhdXRvU2Nyb2xsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGF1dG9TY3JvbGwoVCl7dGhpcy4jYT1UfSNpPShfaSh0aGlzLGcpLF9pKHRoaXMsaywxZTQpKTtnZXQgbWF4RW50cmllcygpe3JldHVybiB0aGlzLiNpfXNldCBtYXhFbnRyaWVzKFQpe3RoaXMuI2k9VH0jcz0oX2kodGhpcyxNKSxfaSh0aGlzLF8sW10pKTtnZXQgaGlnaGxpZ2h0S2V5d29yZHMoKXtyZXR1cm4gdGhpcy4jc31zZXQgaGlnaGxpZ2h0S2V5d29yZHMoVCl7dGhpcy4jcz1UfSNuPShfaSh0aGlzLFMpLF9pKHRoaXMsTCwhMCkpO2dldCBzaG93TWV0cmljcygpe3JldHVybiB0aGlzLiNufXNldCBzaG93TWV0cmljcyhUKXt0aGlzLiNuPVR9I289KF9pKHRoaXMsRSksX2kodGhpcyxDLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI299c2V0IHNlYXJjaFF1ZXJ5KFQpe3RoaXMuI289VH0jbD0oX2kodGhpcyx6KSxfaSh0aGlzLCQsITEpKTtnZXQgZmlsdGVyTW9kZSgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJNb2RlKFQpe3RoaXMuI2w9VH0jYz0oX2kodGhpcyxGKSxfaSh0aGlzLEcse2RlYnVnOjAsaW5mbzowLHdhcm46MCxlcnJvcjowLHN1Y2Nlc3M6MCx0b3RhbDowLHJhdGU6MH0pKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNjfXNldCBtZXRyaWNzKFQpe3RoaXMuI2M9VH0jZD0oX2kodGhpcyxaKSxfaSh0aGlzLEQsITEpKTtnZXQgdGVybWluYWxSZWFkeSgpe3JldHVybiB0aGlzLiNkfXNldCB0ZXJtaW5hbFJlYWR5KFQpe3RoaXMuI2Q9VH1sb2dCdWZmZXI9KF9pKHRoaXMsUSksW10pO3RyYWlsaW5nSGlkZGVuQ291bnQ9MDt0ZXJtaW5hbD1udWxsO2ZpdEFkZG9uPW51bGw7c2VhcmNoQWRkb249bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtkb210b29sc0luc3RhbmNlPW51bGw7cmF0ZUJ1ZmZlcj1bXTtyYXRlSW50ZXJ2YWw9bnVsbDtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1uYXYgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA0NyUpIil9OwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5JSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgLnh0ZXJtIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLm1ldHJpYzo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5lcnJvcjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMud2Fybjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjUgOTUlIDUzJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuaW5mbzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjIyLjIgNDcuNCUgNTEuMiUpOwogICAgICB9CgogICAgICAubWV0cmljLnN1Y2Nlc3M6OmJlZm9yZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5kZWJ1Zzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCAwJSA2My45JSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZTo6YmVmb3JlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksWmEuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZSAuaGVhZGluZz0ke3RoaXMubGFiZWx9PgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke3RoaXMubGFiZWx9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtYm94Ij4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGxvZ3MuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHtUPT50aGlzLmhhbmRsZVNlYXJjaElucHV0KFQpfQogICAgICAgICAgICAgIEBrZXlkb3duPSR7VD0+dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3duKFQpfQogICAgICAgICAgICAvPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtbmF2Ij4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaFByZXZpb3VzKCl9IHRpdGxlPSJQcmV2aW91cyBtYXRjaCI+4oaRPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zZWFyY2hOZXh0KCl9IHRpdGxlPSJOZXh0IG1hdGNoIj7ihpM8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iZmlsdGVyLXRvZ2dsZSAke3RoaXMuZmlsdGVyTW9kZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlRmlsdGVyTW9kZSgpfQogICAgICAgICAgICAgIHRpdGxlPSIke3RoaXMuZmlsdGVyTW9kZT8iU3dpdGNoIHRvIGhpZ2hsaWdodCBtb2RlIjoiU3dpdGNoIHRvIGZpbHRlciBtb2RlIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyTW9kZT8iRmlsdGVyIjoiSGlnaGxpZ2h0In0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLWJ1dHRvbiAke3RoaXMuYXV0b1Njcm9sbD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlQXV0b1Njcm9sbCgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQXV0byBTY3JvbGwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvbnRyb2wtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jbGVhckxvZ3MoKX0+CiAgICAgICAgICAgICAgQ2xlYXIKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy50ZXJtaW5hbFJlYWR5PyIiOndgPGRpdiBjbGFzcz0ibG9hZGluZy1zdGF0ZSI+TG9hZGluZyB0ZXJtaW5hbC4uLjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5zaG93TWV0cmljcz93YAogICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ibWV0cmljcy1iYXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBlcnJvciI+ZXJyb3JzOiAke3RoaXMubWV0cmljcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHdhcm4iPndhcm5zOiAke3RoaXMubWV0cmljcy53YXJufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgaW5mbyI+aW5mbzogJHt0aGlzLm1ldHJpY3MuaW5mb308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHN1Y2Nlc3MiPnN1Y2Nlc3M6ICR7dGhpcy5tZXRyaWNzLnN1Y2Nlc3N9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBkZWJ1ZyI+ZGVidWc6ICR7dGhpcy5tZXRyaWNzLmRlYnVnfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgcmF0ZSI+JHt0aGlzLm1ldHJpY3MucmF0ZS50b0ZpeGVkKDEpfSBsb2dzL3NlYzwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZG9tdG9vbHNJbnN0YW5jZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmluaXRpYWxpemVUZXJtaW5hbCgpLHRoaXMubG9nRW50cmllcy5sZW5ndGg+MCYmdGhpcy5sb2dCdWZmZXIubGVuZ3RoPT09MCl7dGhpcy5sb2dCdWZmZXI9Wy4uLnRoaXMubG9nRW50cmllc107Zm9yKGxldCBUIG9mIHRoaXMubG9nRW50cmllcyl0aGlzLnVwZGF0ZU1ldHJpY3MoVC5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KFQpfWVsc2UgaWYodGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+MCl7bGV0IFQ9bmV3IFNldCh0aGlzLmxvZ0J1ZmZlci5tYXAoVz0+YCR7Vy50aW1lc3RhbXB9fCR7Vy5tZXNzYWdlfWApKTtmb3IobGV0IFcgb2YgdGhpcy5sb2dFbnRyaWVzKVQuaGFzKGAke1cudGltZXN0YW1wfXwke1cubWVzc2FnZX1gKXx8KHRoaXMubG9nQnVmZmVyLnB1c2goVyksdGhpcy51cGRhdGVNZXRyaWNzKFcubGV2ZWwpLHRoaXMud3JpdGVMb2dFbnRyeShXKSl9fWFzeW5jIGluaXRpYWxpemVUZXJtaW5hbCgpe2xldCBUPXNuLmdldEluc3RhbmNlKCksW1cscGUsbWVdPWF3YWl0IFByb21pc2UuYWxsKFtULmxvYWRYdGVybSgpLFQubG9hZFh0ZXJtRml0QWRkb24oKSxULmxvYWRYdGVybVNlYXJjaEFkZG9uKCldKTthd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpLHRoaXMudGVybWluYWw9bmV3IFcuVGVybWluYWwoe2N1cnNvckJsaW5rOiExLGRpc2FibGVTdGRpbjohMCxmb250U2l6ZToxMixmb250RmFtaWx5OiInU0YgTW9ubycsICdNb25hY28nLCAnQ29uc29sYXMnLCAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlIix0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUoKSxzY3JvbGxiYWNrOnRoaXMubWF4RW50cmllcyxjb252ZXJ0RW9sOiEwfSksdGhpcy5maXRBZGRvbj1uZXcgcGUuRml0QWRkb24sdGhpcy5zZWFyY2hBZGRvbj1uZXcgbWUuU2VhcmNoQWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5zZWFyY2hBZGRvbik7bGV0IHE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbC1jb250YWluZXIiKTt0aGlzLnRlcm1pbmFsLm9wZW4ocSksYXdhaXQgbmV3IFByb21pc2UoSD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEgpKSx0aGlzLmZpdEFkZG9uLmZpdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXRBZGRvbj8uZml0KCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUocSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXRoaXMuZG9tdG9vbHNJbnN0YW5jZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSgoKT0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCkpfSksdGhpcy5yYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PnRoaXMuY2FsY3VsYXRlUmF0ZSgpLDFlMyksdGhpcy50ZXJtaW5hbFJlYWR5PSEwO2ZvcihsZXQgSCBvZiB0aGlzLmxvZ0J1ZmZlcil0aGlzLndyaXRlTG9nRW50cnkoSCl9dXBkYXRlZChUKXtpZihzdXBlci51cGRhdGVkKFQpLFQuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZSgpKSxULmhhcygibG9nRW50cmllcyIpJiZ0aGlzLnRlcm1pbmFsUmVhZHkmJnRoaXMubG9nRW50cmllcy5sZW5ndGg+MCl7bGV0IFc9VC5nZXQoImxvZ0VudHJpZXMiKXx8W10scGU9dGhpcy5sb2dFbnRyaWVzO2lmKFcubGVuZ3RoPT09cGUubGVuZ3RoJiZXLmxlbmd0aD4wJiZXW1cubGVuZ3RoLTFdLnRpbWVzdGFtcD09PXBlW3BlLmxlbmd0aC0xXS50aW1lc3RhbXAmJldbVy5sZW5ndGgtMV0ubWVzc2FnZT09PXBlW3BlLmxlbmd0aC0xXS5tZXNzYWdlKXJldHVybjtpZihwZS5sZW5ndGg+Vy5sZW5ndGgmJlcubGVuZ3RoPjAmJldbVy5sZW5ndGgtMV0udGltZXN0YW1wPT09cGVbVy5sZW5ndGgtMV0udGltZXN0YW1wJiZXW1cubGVuZ3RoLTFdLm1lc3NhZ2U9PT1wZVtXLmxlbmd0aC0xXS5tZXNzYWdlKXtsZXQgbWU9cGUuc2xpY2UoVy5sZW5ndGgpO2ZvcihsZXQgcSBvZiBtZSl0aGlzLmxvZ0J1ZmZlci5wdXNoKHEpLHRoaXMudXBkYXRlTWV0cmljcyhxLmxldmVsKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCghdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeXx8dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIocSkpJiZ0aGlzLndyaXRlTG9nRW50cnkocSk7cmV0dXJufXRoaXMubG9nQnVmZmVyPVsuLi5wZV0sdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfX1nZXRUZXJtaW5hbFRoZW1lKCl7cmV0dXJuIXRoaXMuZ29CcmlnaHQ/e2JhY2tncm91bmQ6IiMwYTBhMGEiLGZvcmVncm91bmQ6IiNlMGUwZTAiLGN1cnNvcjoiI2UwZTBlMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoiIzQwNDA0MCIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2ZmNTU1NSIsZ3JlZW46IiM1MGZhN2IiLHllbGxvdzoiI2YxZmE4YyIsYmx1ZToiIzYyNzJhNCIsbWFnZW50YToiI2ZmNzljNiIsY3lhbjoiIzhiZTlmZCIsd2hpdGU6IiNmOGY4ZjIiLGJyaWdodEJsYWNrOiIjNjI3MmE0IixicmlnaHRSZWQ6IiNmZjZlNmUiLGJyaWdodEdyZWVuOiIjNjlmZjk0IixicmlnaHRZZWxsb3c6IiNmZmZmYTUiLGJyaWdodEJsdWU6IiNkNmFjZmYiLGJyaWdodE1hZ2VudGE6IiNmZjkyZGYiLGJyaWdodEN5YW46IiNhNGZmZmYiLGJyaWdodFdoaXRlOiIjZmZmZmZmIn06e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsc2VsZWN0aW9uQmFja2dyb3VuZDoiI2FkZDZmZiIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In19YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCl7bGV0IFQ9Inh0ZXJtLXNoYWRvdy1zdHlsZXMiO2lmKHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZChUKSlyZXR1cm47bGV0IFc9YCR7TWN9L3h0ZXJtQCR7U2MueHRlcm19L2Nzcy94dGVybS5jc3NgLG1lPWF3YWl0KGF3YWl0IGZldGNoKFcpKS50ZXh0KCkscT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3EuaWQ9VCxxLnRleHRDb250ZW50PW1lLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChxKX1hZGRMb2coVCxXLHBlKXtsZXQgbWU9e3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6VCxtZXNzYWdlOlcsc291cmNlOnBlfTt0aGlzLmxvZ0J1ZmZlci5wdXNoKG1lKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShtZSk6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIobWUpPyh0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLndyaXRlTG9nRW50cnkobWUpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MobWUubGV2ZWwpfXVwZGF0ZUxvZyhUKXtpZihUKWZvcihsZXQgVyBvZiBUKXRoaXMubG9nQnVmZmVyLnB1c2goVyksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwhdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeT90aGlzLndyaXRlTG9nRW50cnkoVyk6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoVyk/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeShXKSk6dGhpcy51cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCksdGhpcy51cGRhdGVNZXRyaWNzKFcubGV2ZWwpfXVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PjAmJnRoaXMudGVybWluYWwud3JpdGUoIlx4MUJbMUFceDFCWzJLXHIiKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQrKyx0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50KSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKSl9ZW50cnlNYXRjaGVzRmlsdGVyKFQpe2lmKCF0aGlzLnNlYXJjaFF1ZXJ5KXJldHVybiEwO2xldCBXPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtyZXR1cm4gVC5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoVyl8fFQubGV2ZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhXKXx8KFQuc291cmNlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFcpPz8hMSl9d3JpdGVMb2dFbnRyeShUKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IFc9dGhpcy5mb3JtYXRMb2dFbnRyeShUKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oVyksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9Zm9ybWF0TG9nRW50cnkoVCl7bGV0IFc9dGhpcy5mb3JtYXRUaW1lc3RhbXAoVC50aW1lc3RhbXApLHBlPXtkZWJ1ZzoiXHgxQls5MG0iLGluZm86Ilx4MUJbMzZtIix3YXJuOiJceDFCWzMzbSIsZXJyb3I6Ilx4MUJbMzFtIixzdWNjZXNzOiJceDFCWzMybSJ9LG1lPSJceDFCWzBtIixxPSJceDFCWzJtIixIPWAke3BlW1QubGV2ZWxdfVske1QubGV2ZWwudG9VcHBlckNhc2UoKS5wYWRFbmQoNyl9XSR7bWV9YCxVPVQuc291cmNlP2Ake3F9WyR7VC5zb3VyY2V9XSR7bWV9IGA6IiIsaj10aGlzLmFwcGx5SGlnaGxpZ2h0cyhULm1lc3NhZ2UpO3JldHVybmAke3F9JHtXfSR7bWV9ICR7SH0gJHtVfSR7an1gfWZvcm1hdFRpbWVzdGFtcChUKXtyZXR1cm4gbmV3IERhdGUoVCkudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXIxMjohMSxob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9YXBwbHlIaWdobGlnaHRzKFQpe2xldCBXPVsuLi50aGlzLmhpZ2hsaWdodEtleXdvcmRzXTtpZih0aGlzLmZpbHRlck1vZGUmJnRoaXMuc2VhcmNoUXVlcnkmJlcucHVzaCh0aGlzLnNlYXJjaFF1ZXJ5KSxXLmxlbmd0aD09PTApcmV0dXJuIFQ7bGV0IHBlPVQ7Zm9yKGxldCBtZSBvZiBXKXtsZXQgcT1tZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpLEg9bmV3IFJlZ0V4cChgKCR7cX0pYCwiZ2kiKTtwZT1wZS5yZXBsYWNlKEgsIlx4MUJbNDNtXHgxQlszMG0kMVx4MUJbMG0iKX1yZXR1cm4gcGV9d3JpdGVSYXcoVCl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGUoVCksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX13cml0ZWxuUmF3KFQpe3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLndyaXRlbG4oVCksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1oYW5kbGVTZWFyY2hJbnB1dChUKXtsZXQgcGU9VC50YXJnZXQudmFsdWUsbWU9dGhpcy5zZWFyY2hRdWVyeSE9PXBlO3RoaXMuc2VhcmNoUXVlcnk9cGUsdGhpcy5maWx0ZXJNb2RlJiZtZT90aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCk6dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9aGFuZGxlU2VhcmNoS2V5ZG93bihUKXtULmtleT09PSJFbnRlciI/VC5zaGlmdEtleT90aGlzLnNlYXJjaFByZXZpb3VzKCk6dGhpcy5zZWFyY2hOZXh0KCk6VC5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2VhcmNoUXVlcnk9IiIsVC50YXJnZXQudmFsdWU9IiIpfXNlYXJjaChUKXt0aGlzLnNlYXJjaFF1ZXJ5PVQsdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQoVCl9c2VhcmNoTmV4dCgpe3RoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KHRoaXMuc2VhcmNoUXVlcnkpfXNlYXJjaFByZXZpb3VzKCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZFByZXZpb3VzKHRoaXMuc2VhcmNoUXVlcnkpfXRvZ2dsZUF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGw9IXRoaXMuYXV0b1Njcm9sbCx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX10b2dnbGVGaWx0ZXJNb2RlKCl7dGhpcy5maWx0ZXJNb2RlPSF0aGlzLmZpbHRlck1vZGUsdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfXJlUmVuZGVyRmlsdGVyZWRMb2dzKCl7aWYodGhpcy50ZXJtaW5hbCl7aWYodGhpcy50ZXJtaW5hbC5jbGVhcigpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5KWZvcihsZXQgVCBvZiB0aGlzLmxvZ0J1ZmZlcil7bGV0IFc9dGhpcy5mb3JtYXRMb2dFbnRyeShUKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oVyl9ZWxzZXtsZXQgVD0wO2ZvcihsZXQgVyBvZiB0aGlzLmxvZ0J1ZmZlcilpZih0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihXKSl7VD4wJiYodGhpcy53cml0ZUhpZGRlblBsYWNlaG9sZGVyKFQpLFQ9MCk7bGV0IHBlPXRoaXMuZm9ybWF0TG9nRW50cnkoVyk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKHBlKX1lbHNlIFQrKztUPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoVCksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PVQpfXRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfX13cml0ZUhpZGRlblBsYWNlaG9sZGVyKFQpe2xldCBXPSJceDFCWzJtIixwZT0iXHgxQlswbSIsbWU9VD09PTE/IlsxIGxvZyBsaW5lIGhpZGRlbiBieSBmaWx0ZXIgLi4uXSI6YFske1R9IGxvZyBsaW5lcyBoaWRkZW4gYnkgZmlsdGVyIC4uLl1gO3RoaXMudGVybWluYWw/LndyaXRlbG4oYCR7V30ke21lfSR7cGV9YCl9Y2xlYXJMb2dzKCl7dGhpcy50ZXJtaW5hbD8uY2xlYXIoKSx0aGlzLmxvZ0J1ZmZlcj1bXSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLnJlc2V0TWV0cmljcygpfXNjcm9sbFRvQm90dG9tKCl7dGhpcy50ZXJtaW5hbD8uc2Nyb2xsVG9Cb3R0b20oKX11cGRhdGVNZXRyaWNzKFQpe3RoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLFtUXTp0aGlzLm1ldHJpY3NbVF0rMSx0b3RhbDp0aGlzLm1ldHJpY3MudG90YWwrMX0sdGhpcy5yZWNvcmRMb2dFdmVudCgpfXJlY29yZExvZ0V2ZW50KCl7dGhpcy5yYXRlQnVmZmVyLnB1c2goRGF0ZS5ub3coKSl9Y2FsY3VsYXRlUmF0ZSgpe2xldCBUPURhdGUubm93KCk7dGhpcy5yYXRlQnVmZmVyPXRoaXMucmF0ZUJ1ZmZlci5maWx0ZXIocGU9PlQtcGU8MWU0KTtsZXQgVz10aGlzLnJhdGVCdWZmZXIubGVuZ3RoLzEwO1chPT10aGlzLm1ldHJpY3MucmF0ZSYmKHRoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLHJhdGU6V30pfXJlc2V0TWV0cmljcygpe3RoaXMubWV0cmljcz17ZGVidWc6MCxpbmZvOjAsd2FybjowLGVycm9yOjAsc3VjY2VzczowLHRvdGFsOjAscmF0ZTowfSx0aGlzLnJhdGVCdWZmZXI9W119YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJnRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5yYXRlSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5yYXRlSW50ZXJ2YWwpLHRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuZGlzcG9zZSgpfXN0YXRpY3tfaShhLHIpfX07cmV0dXJuIGZlPWF9KSgpfSk7dmFyIHBYcj11KCgpPT57dVhyKCl9KTt2YXIgZlhyLGhYcj11KCgpPT57dmUoKTt3YSgpO3Y3dCgpO2ZYcj1pKCgpPT57bGV0IHQ9W3tuYW1lOiJMYXRlbmN5IixtYXg6MTAwfSx7bmFtZToiVGhyb3VnaHB1dCIsbWF4OjEwMH0se25hbWU6IkF2YWlsYWJpbGl0eSIsbWF4OjEwMH0se25hbWU6IkVycm9yIFJhdGUiLG1heDoxMDB9LHtuYW1lOiJTYXR1cmF0aW9uIixtYXg6MTAwfSx7bmFtZToiU2VjdXJpdHkiLG1heDoxMDB9XSxlPVt7bmFtZToiU2VydmljZSBBIix2YWx1ZXM6Wzg1LDkwLDk5LDEyLDQ1LDc4XX0se25hbWU6IlNlcnZpY2UgQiIsdmFsdWVzOls3MCw2NSw5NSwyOCw2MCw5MF19XSxyPVt7bmFtZToiU3BlZWQiLG1heDoxMH0se25hbWU6IlJlbGlhYmlsaXR5IixtYXg6MTB9LHtuYW1lOiJDb21mb3J0IixtYXg6MTB9LHtuYW1lOiJTYWZldHkiLG1heDoxMH0se25hbWU6IkNvc3QiLG1heDoxMH1dLGE9W3tuYW1lOiJSYXRpbmciLHZhbHVlczpbOC41LDkuMiw3LDkuNSw2XX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBuPXMucXVlcnlTZWxlY3RvcigiI2NvbXBhcmlzb24tY2hhcnQiKSxvPXMucXVlcnlTZWxlY3RvcigiI3NpbmdsZS1jaGFydCIpO3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGM9PntjLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZjLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24uc2VyaWVzPWUubWFwKGY9Pih7Li4uZix2YWx1ZXM6Zi52YWx1ZXMubWFwKCgpPT5NYXRoLnJvdW5kKDIwK01hdGgucmFuZG9tKCkqODApKX0pKSxvLnNlcmllcz1hLm1hcChmPT4oey4uLmYsdmFsdWVzOmYudmFsdWVzLm1hcCgoKT0+TWF0aC5yb3VuZCgoMitNYXRoLnJhbmRvbSgpKjgpKjEwKS8xMCl9KSl9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke3JlYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY2hhcnRSb3cgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmFuZG9taXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Um93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LXJhZGFyCiAgICAgICAgICAgIGlkPSJjb21wYXJpc29uLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBIZWFsdGggQ29tcGFyaXNvbiJ9CiAgICAgICAgICAgIC5pbmRpY2F0b3JzPSR7dH0KICAgICAgICAgICAgLnNlcmllcz0ke2V9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LXJhZGFyPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LXJhZGFyCiAgICAgICAgICAgIGlkPSJzaW5nbGUtY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IFJhdGluZyJ9CiAgICAgICAgICAgIC5pbmRpY2F0b3JzPSR7cn0KICAgICAgICAgICAgLnNlcmllcz0ke2F9CiAgICAgICAgICAgIC5maWxsQXJlYT0keyEwfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1yYWRhcj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBSYWRhciBjaGFydCBmb3IgbXVsdGktZGltZW5zaW9uYWwgY29tcGFyaXNvbiDigKIKICAgICAgICAgIFN1cHBvcnRzIG11bHRpcGxlIG92ZXJsYXkgc2VyaWVzIGFuZCBjb25maWd1cmFibGUgZmlsbCDigKIKICAgICAgICAgIENsaWNrICdSYW5kb21pemUnIHRvIHVwZGF0ZSBkYXRhCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIG1YcixnWHI9dSgoKT0+e3ZlKCk7RXJlKCk7bVhyPVsuLi5wZixyZWBgXX0pO3ZhciBiWHIseFhyPXUoKCk9Pnt2ZSgpO2JYcj1pKHQ9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHt0LmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0UmFkYXIiKX0pO3ZhciBJcmUsZzMsdlhyLHY3dD11KCgpPT57dmUoKTtBcmUoKTtoWHIoKTtnWHIoKTt4WHIoKTtNdygpO0lyZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZzM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHZYcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtY2hhcnQtcmFkYXIiKV0sZSxyPVtdLGEscz1tMyxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0UmFkYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6QXJyYXl9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxJcmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRpY2F0b3JzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJpbmRpY2F0b3JzImluIE0sImhhcyIpLGdldDppKE09Pk0uaW5kaWNhdG9ycywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmluZGljYXRvcnM9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLElyZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic2VyaWVzImluIE0sImhhcyIpLGdldDppKE09Pk0uc2VyaWVzLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uc2VyaWVzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxJcmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGVnZW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJzaG93TGVnZW5kImluIE0sImhhcyIpLGdldDppKE09Pk0uc2hvd0xlZ2VuZCwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnNob3dMZWdlbmQ9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxoLG0pLElyZSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGxBcmVhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJmaWxsQXJlYSJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmZpbGxBcmVhLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uZmlsbEFyZWE9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLElyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPWZYcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9ZzModGhpcyxvLFtdKTtnZXQgaW5kaWNhdG9ycygpe3JldHVybiB0aGlzLiNlfXNldCBpbmRpY2F0b3JzKGspe3RoaXMuI2U9a30jdD0oZzModGhpcyxsKSxnMyh0aGlzLGQsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllcyhrKXt0aGlzLiN0PWt9I3I9KGczKHRoaXMsZiksZzModGhpcyxoLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0xlZ2VuZChrKXt0aGlzLiNyPWt9I2E9KGczKHRoaXMsbSksZzModGhpcyxiLCEwKSk7Z2V0IGZpbGxBcmVhKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbGxBcmVhKGspe3RoaXMuI2E9a31zdGF0aWMgc3R5bGVzPW1YcjtyZW5kZXIoKXtyZXR1cm4gYlhyKHRoaXMpfWFzeW5jIHVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihrLmhhcygiaW5kaWNhdG9ycyIpfHxrLmhhcygic2VyaWVzIil8fGsuaGFzKCJzaG93TGVnZW5kIil8fGsuaGFzKCJmaWxsQXJlYSIpKSYmdGhpcy51cGRhdGVDaGFydCgpfWJ1aWxkT3B0aW9uKCl7bGV0IGs9dWYodGhpcy5nb0JyaWdodCksTT1jZih0aGlzLmdvQnJpZ2h0KSxOPXRoaXMuZ29CcmlnaHQ/LjE6LjE1LF89dGhpcy5zZXJpZXMubWFwKChTLE8pPT57bGV0IEw9Uy5jb2xvcnx8TVtPJU0ubGVuZ3RoXTtyZXR1cm57bmFtZTpTLm5hbWUsdmFsdWU6Uy52YWx1ZXMsaXRlbVN0eWxlOntjb2xvcjpMLGJvcmRlckNvbG9yOkwsYm9yZGVyV2lkdGg6MX0sbGluZVN0eWxlOntjb2xvcjpMLHdpZHRoOjEuNX0sYXJlYVN0eWxlOnRoaXMuZmlsbEFyZWE/e2NvbG9yOmRmKEwsTil9OnZvaWQgMCxzeW1ib2w6ImNpcmNsZSIsc3ltYm9sU2l6ZTo1fX0pO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIn0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/e2JvdHRvbTo4LGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwfTp7c2hvdzohMX0scmFkYXI6e2luZGljYXRvcjp0aGlzLmluZGljYXRvcnMubWFwKFM9Pih7bmFtZTpTLm5hbWUsbWF4OlMubWF4fSkpLHNoYXBlOiJwb2x5Z29uIixzcGxpdE51bWJlcjo0LGF4aXNOYW1lOntjb2xvcjprLnRleHRTZWNvbmRhcnksZm9udFNpemU6MTF9LHNwbGl0QXJlYTp7YXJlYVN0eWxlOntjb2xvcjpbay5iZ1RlcnRpYXJ5LGsuYmdTZWNvbmRhcnldfX0sc3BsaXRMaW5lOntsaW5lU3R5bGU6e2NvbG9yOmsuYm9yZGVyRGVmYXVsdH19LGF4aXNMaW5lOntsaW5lU3R5bGU6e2NvbG9yOmsuYm9yZGVyRGVmYXVsdH19fSxzZXJpZXM6W3t0eXBlOiJyYWRhciIsZGF0YTpfLGVtcGhhc2lzOntsaW5lU3R5bGU6e3dpZHRoOjN9fX1dfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZzModGhpcyxnKX1zdGF0aWN7ZzMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIHlYcj11KCgpPT57djd0KCl9KTt2YXIgd1hyPXUoKCk9PntBUXIoKTtVUXIoKTtKUXIoKTtvWHIoKTtwWHIoKTt5WHIoKX0pO3ZhciBrWHIsU1hyPXUoKCk9Pnt2ZSgpO2tYcj1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vV3JhcHBlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InR5cGVzY3JpcHQiPgppbnRlcmZhY2UgVXNlciB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7CiAgZW1haWw6IHN0cmluZzsKICBpc0FjdGl2ZTogYm9vbGVhbjsKfQoKY2xhc3MgVXNlclNlcnZpY2UgewogIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdOwogIAogIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpVXJsOiBzdHJpbmcpIHsKICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpOwogIH0KICAKICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFwaVVybCk7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7CiAgICAgIHJldHVybiBkYXRhLnVzZXJzOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KICAKICBhZGRVc2VyKHVzZXI6IFVzZXIpOiB2b2lkIHsKICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTsKICB9Cn0KCi8vIFVzYWdlIGV4YW1wbGUKY29uc3Qgc2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMnKTsKY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7CmNvbnNvbGUubG9nKCdGb3VuZCB1c2VyczonLCB1c2Vycy5sZW5ndGgpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SmF2YVNjcmlwdCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBKYXZhU2NyaXB0IHdpdGggRVM2KyBmZWF0dXJlcy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iamF2YXNjcmlwdCI+Ci8vIEFycmF5IG1hbmlwdWxhdGlvbiBleGFtcGxlcwpjb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdOwpjb25zdCBkb3VibGVkID0gbnVtYmVycy5tYXAobiA9PiBuICogMik7CmNvbnN0IGZpbHRlcmVkID0gbnVtYmVycy5maWx0ZXIobiA9PiBuID4gMyk7CgovLyBPYmplY3QgZGVzdHJ1Y3R1cmluZwpjb25zdCB1c2VyID0geyBuYW1lOiAnSm9obicsIGFnZTogMzAsIGNpdHk6ICdOZXcgWW9yaycgfTsKY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7CgovLyBQcm9taXNlIGhhbmRsaW5nCmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7CiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKfTsKCi8vIE1vZGVybiBzeW50YXgKY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxgSGVsbG8sIFwke25hbWV9IVxgOwpjb25zb2xlLmxvZyhncmVldCgnU2hhZENOJykpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHl0aG9uIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+UHl0aG9uIGNvZGUgd2l0aCBjbGFzc2VzIGFuZCB0eXBlIGhpbnRzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJweXRob24iPgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKaW1wb3J0IGFzeW5jaW8KCmNsYXNzIERhdGFQcm9jZXNzb3I6CiAgICAiIiJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzcyIiIgogICAgCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZTogc3RyKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5kYXRhOiBMaXN0W2RpY3RdID0gW10KICAgIAogICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XToKICAgICAgICAiIiJQcm9jZXNzIGRhdGEgaXRlbXMgYXN5bmNocm9ub3VzbHkiIiIKICAgICAgICByZXN1bHRzID0gW10KICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKICAgICAgICAgICAgIyBTaW11bGF0ZSBhc3luYyBwcm9jZXNzaW5nCiAgICAgICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMC4xKQogICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAnaWQnOiBpdGVtLmdldCgnaWQnKSwKICAgICAgICAgICAgICAgICdwcm9jZXNzZWQnOiBUcnVlLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZQogICAgICAgICAgICB9KQogICAgICAgIHJldHVybiByZXN1bHRzCiAgICAKICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKSAtPiBkaWN0OgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsCiAgICAgICAgICAgICdpdGVtc19wcm9jZXNzZWQnOiBsZW4oc2VsZi5kYXRhKQogICAgICAgIH0KCiMgVXNhZ2UKcHJvY2Vzc29yID0gRGF0YVByb2Nlc3NvcigiTWFpbiIpCmRhdGEgPSBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc19kYXRhKFt7J2lkJzogMX0sIHsnaWQnOiAyfV0pCiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DU1MgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgYW5kIGFuaW1hdGlvbnMuIE5vdGUgdGhlIHNob3J0ZXIgbGFuZ3VhZ2UgbGFiZWwuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImNzcyI+Ci8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqLwo6cm9vdCB7CiAgLS1wcmltYXJ5LWNvbG9yOiAjM2I4MmY2OwogIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxOwogIC0tYmFja2dyb3VuZDogI2ZmZmZmZjsKICAtLXRleHQtY29sb3I6ICMwOTA5MGI7CiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7Cn0KCi5jYXJkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogIHBhZGRpbmc6IDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgouY2FyZDpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlNPTiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkpTT04gY29uZmlndXJhdGlvbiB3aXRoIHByb3BlciBmb3JtYXR0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqc29uIj4KewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMS4xMC43IiwKICAiZGVzY3JpcHRpb24iOiAiQSBjb21wcmVoZW5zaXZlIGNhdGFsb2cgb2Ygd2ViIGNvbXBvbmVudHMiLAogICJtYWluIjogImRpc3RfdHNfd2ViL2luZGV4LmpzIiwKICAidHlwZSI6ICJtb2R1bGUiLAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQgdHNmb2xkZXJzIC0tYWxsb3dpbXBsaWNpdGFueSAmJiB0c2J1bmRsZSBlbGVtZW50IC0tcHJvZHVjdGlvbiIsCiAgICAid2F0Y2giOiAidHN3YXRjaCBlbGVtZW50IiwKICAgICJ0ZXN0IjogInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2UiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjQ1IiwKICAgICJoaWdobGlnaHQuanMiOiAiXjExLjkuMCIKICB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB5N3QsUHJlLE1Ycix3N3Q9dSgoKT0+e1NYcigpO3ZlKCk7X3MoKTtsdCgpO2xkZSgpO01yKCk7c3MoKTtwMygpO25zKCk7eTd0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxQcmU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LE1Ycj0oKCk9PntsZXQgdD1bdWUoImRlZXMtZGF0YXZpZXctY29kZWJveCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzRGF0YXZpZXdDb2RlYm94Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCgpXSxjPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHk3dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJwcm9nTGFuZyJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnByb2dMYW5nLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20ucHJvZ0xhbmc9dn0sInNldCIpfSxtZXRhZGF0YTpofSxvLGwpLHk3dCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvZGVUb0Rpc3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImNvZGVUb0Rpc3BsYXkiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5jb2RlVG9EaXNwbGF5LCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uY29kZVRvRGlzcGxheT12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZikseTd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89a1hyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3IiwiV29ya3NwYWNlIl07I2U9UHJlKHRoaXMsbywidHlwZXNjcmlwdCIpO2dldCBwcm9nTGFuZygpe3JldHVybiB0aGlzLiNlfXNldCBwcm9nTGFuZyhoKXt0aGlzLiNlPWh9I3Q9KFByZSh0aGlzLGwpLFByZSh0aGlzLGQsIiIpKTtnZXQgY29kZVRvRGlzcGxheSgpe3JldHVybiB0aGlzLiN0fXNldCBjb2RlVG9EaXNwbGF5KGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXNdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtaYS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJHtIcn07CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB9CgogICAgICAgIC5hcHBiYXIgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuYXBwYmFyIC5maWxlTmFtZSB7CiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuYm90dG9tQmFyIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VzTGFiZWwgewogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubGFuZ3VhZ2VMYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmhsanMta2V5d29yZCB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmNvZGVncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggYXV0bzsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxNnB4IDBweCAwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVDb3VudGVyOmxhc3QtY2hpbGQgewogICAgICAgICAgb3BhY2l0eTogNTAlOwogICAgICAgIH0KCiAgICAgICAgcHJlIHsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMjRweDsKICAgICAgICB9CgogICAgICAgIGNvZGUgewogICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIH0KCiAgICAgICAgY29kZSwKICAgICAgICBjb2RlICosCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7CiAgICAgICAgICBmb250LWZhbWlseTogJHttOX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1zdHJpbmcgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtcGFyYW1zIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA4OTFiMiIsIiMwNmI2ZDQiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1jb21tZW50IHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1udW1iZXIgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWxpdGVyYWwgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWF0dHIgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOGI1Y2Y2IiwiI2E3OGJmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXZhcmlhYmxlIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGVlcy10aWxlCiAgICAgICAgQGNvbnRleHRtZW51PSIke2g9PntDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhoLFt7bmFtZToiQWJvdXQiLGljb25OYW1lOiJjaXJjbGVJbmZvIixhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX1dKX19IgogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJhcHBiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZU5hbWUiPmluZGV4LnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZU51bWJlcnMiPgogICAgICAgICAgICAkeygoKT0+e2xldCBoPTA7cmV0dXJuIHRoaXMuY29kZVRvRGlzcGxheS5zcGxpdChgCmApLm1hcChtPT4oaCsrLHdgPGRpdiBjbGFzcz0ibGluZUNvdW50ZXIiPiR7aH08L2Rpdj5gKSl9KSgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cHJlPjxjb2RlPjwvY29kZT48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KFByZSh0aGlzLGYpLCIiKTtoaWdobGlnaHRKcz1udWxsO2FzeW5jIHVwZGF0ZWQoaCl7c3VwZXIudXBkYXRlZChoKSxjb25zb2xlLmxvZygiaGlnaGxpZ2h0aW5nIG5vdyIpLGNvbnNvbGUubG9nKHRoaXMuY2hpbGROb2Rlcyk7bGV0IG09W107dGhpcy5jaGlsZE5vZGVzLmZvckVhY2goZz0+e2cubm9kZU5hbWU9PT0iI3RleHQiJiZtLnB1c2goZyl9KSx0aGlzLmNvZGVUb0Rpc3BsYXkmJnRoaXMuY29kZVRvRGlzcGxheSE9PXRoaXMuY29kZVRvRGlzcGxheVN0b3JlJiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9ZzYubm9ybWFsaXplKHRoaXMuY29kZVRvRGlzcGxheSkudHJpbVN0YXJ0KCkpLG1bMF0mJm1bMF0ud2hvbGVUZXh0JiYhdGhpcy5jb2RlVG9EaXNwbGF5JiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9ZzYubm9ybWFsaXplKG1bMF0ud2hvbGVUZXh0KS50cmltU3RhcnQoKSx0aGlzLmNvZGVUb0Rpc3BsYXk9dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUpLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5oaWdobGlnaHRKc3x8KHRoaXMuaGlnaGxpZ2h0SnM9YXdhaXQgc24uZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKSk7bGV0IHY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImNvZGUiKSxiPXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KHRoaXMuY29kZVRvRGlzcGxheVN0b3JlLHtsYW5ndWFnZTp0aGlzLnByb2dMYW5nLGlnbm9yZUlsbGVnYWxzOiEwfSk7di5pbm5lckhUTUw9Yi52YWx1ZX1zdGF0aWN7UHJlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBDWHI9dSgoKT0+e3c3dCgpfSk7dmFyIHpYcixfWHI9dSgoKT0+e3ZlKCk7c2MoKTt6WHI9aSgoKT0+d2AgPHN0eWxlPgogICAgLmRlbW8gewogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBjb250ZW50OiAnJzsKICAgICAgcGFkZGluZzogNDBweDsKICAgIH0KICAgIAogICAgLmRlbW8tZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdhcDogMjRweDsKICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDE2cHg7CiAgICB9CiAgICAKICAgIC5kZW1vLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuZGVtby1ub3RlIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tbm90ZSI+CiAgICAgIFJpZ2h0LWNsaWNrIG9uIGFueSBkZXRhaWwgcm93IHRvIGNvcHkgdGhlIHZhbHVlLCBrZXksIG9yIGtleTp2YWx1ZSBjb21iaW5hdGlvbgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPlNlcnZpY2UgSGVhbHRoIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMSIsbmFtZToiQVBJIEdhdGV3YXkgU2VydmljZSIsbGFzdFVwZGF0ZWQ6RGF0ZS5ub3coKSxjb21iaW5lZFN0YXR1czoib2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGRldGFpbHM6W3tuYW1lOiJSZXNwb25zZSBUaW1lIix2YWx1ZToiNDVtcyAoYXZnKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiV2l0aGluIG5vcm1hbCByYW5nZSJ9LHtuYW1lOiJVcHRpbWUiLHZhbHVlOiI5OS45OSUgKDMwIGRheXMpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJFeGNlbGxlbnQgdXB0aW1lIn0se25hbWU6IkFjdGl2ZSBDb25uZWN0aW9ucyIsdmFsdWU6IjEsMjM0IC8gMTAsMDAwIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgbG9hZCJ9LHtuYW1lOiJTU0wgQ2VydGlmaWNhdGUiLHZhbHVlOiJWYWxpZCB1bnRpbCAyMDI0LTEyLTMxIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJDZXJ0aWZpY2F0ZSB2YWxpZCJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5EYXRhYmFzZSBDbHVzdGVyIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMiIsbmFtZToiUG9zdGdyZVNRTCBDbHVzdGVyIixsYXN0VXBkYXRlZDpEYXRlLm5vdygpLTM2ZTUsY29tYmluZWRTdGF0dXM6InBhcnRseV9vayIsY29tYmluZWRTdGF0dXNUZXh0OiJNaW5vciBpc3N1ZXMgZGV0ZWN0ZWQiLGRldGFpbHM6W3tuYW1lOiJQcmltYXJ5IE5vZGUiLHZhbHVlOiJkYi1wcmltYXJ5LTAxIChoZWFsdGh5KSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiT3BlcmF0aW5nIG5vcm1hbGx5In0se25hbWU6IlJlcGxpY2EgTGFnIix2YWx1ZToiMi41IHNlY29uZHMiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJTbGlnaHRseSBlbGV2YXRlZCJ9LHtuYW1lOiJEaXNrIFVzYWdlIix2YWx1ZToiNzglICgzMTJHQiAvIDQwMEdCKSIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IkFwcHJvYWNoaW5nIHRocmVzaG9sZCJ9LHtuYW1lOiJDb25uZWN0aW9uIFBvb2wiLHZhbHVlOiI4OSAvIDEwMCBjb25uZWN0aW9ucyIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiV2l0aGluIGxpbWl0cyJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5CdWlsZCBQaXBlbGluZSBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjMiLG5hbWU6IkNJL0NEIFBpcGVsaW5lIixsYXN0VXBkYXRlZDpEYXRlLm5vdygpLTg2NGU1LGNvbWJpbmVkU3RhdHVzOiJub3Rfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQnVpbGQgZmFpbHVyZSIsZGV0YWlsczpbe25hbWU6Ikxhc3QgQnVpbGQiLHZhbHVlOiJCdWlsZCAjMTIzNCAtIEZhaWxlZCIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlRlc3QgZmFpbHVyZXMifSx7bmFtZToiRmFpbGVkIFRlc3RzIix2YWx1ZToiMyB0ZXN0cyBmYWlsZWQ6IGF1dGguc3BlYy50cywgdXNlci5zcGVjLnRzLCBhcGkuc3BlYy50cyIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlVuaXQgdGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJDb2RlIENvdmVyYWdlIix2YWx1ZToiODIuNSUgKHRhcmdldDogODUlKSIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IkJlbG93IHRhcmdldCJ9LHtuYW1lOiJCdWlsZCBEdXJhdGlvbiIsdmFsdWU6IjEybSAzNHMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBkdXJhdGlvbiJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+YCwiZGVtb0Z1bmMiKX0pO3ZhciBUWHIsazd0LExYcixEWHI9dSgoKT0+e2ZjKCk7dm4oKTtfWHIoKTt2ZSgpO3NjKCk7c3MoKTtsdCgpO25zKCk7VFhyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxrN3Q9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LExYcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNEYXRhdmlld1N0YXR1c29iamVjdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLFRYcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1c09iamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic3RhdHVzT2JqZWN0ImluIGYsImhhcyIpLGdldDppKGY9PmYuc3RhdHVzT2JqZWN0LCJnZXQiKSxzZXQ6aSgoZixwKT0+e2Yuc3RhdHVzT2JqZWN0PXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxUWHIobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz16WHI7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1rN3QodGhpcyxvLHZvaWQgMCk7Z2V0IHN0YXR1c09iamVjdCgpe3JldHVybiB0aGlzLiNlfXNldCBzdGF0dXNPYmplY3QoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdCB7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDYzLjklIC8gMC4yKSIsImhzbCgwIDAlIDQ1LjElIC8gMC4yKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3Qub2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMikiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm5vdF9vayB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4yKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5wYXJ0bHlfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMikiLCJoc2woMjUgOTUlIDYzJSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMDQpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLnN0YXR1c2RvdCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC5sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYm90dG9tQmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQmFyIC5zdGF0dXNMYWJlbCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke3RoaXMuc3RhdHVzT2JqZWN0Py5jb21iaW5lZFN0YXR1c30iPjwvZGl2PgogICAgICAgICAgPGgxPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lm5hbWV8fCJObyBzdGF0dXMgb2JqZWN0IGFzc2lnbmVkIn08L2gxPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29weU1haW4iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29weUFzSnNvbn0+Q29weSBKU09OPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnN0YXR1c09iamVjdD8uZGV0YWlscz8ubWFwKGQ9PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZGV0YWlsIgogICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2Y9PntmLnByZXZlbnREZWZhdWx0KCksQ3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZixbe25hbWU6IkNvcHkgVmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQudmFsdWUsIlZhbHVlIil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5IixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQubmFtZSwiS2V5Iil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5OlZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHktcGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGAke2QubmFtZX06ICR7ZC52YWx1ZX1gLCJLZXk6VmFsdWUiKX0sImFjdGlvbiIpfV0pfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke2Quc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbHNUZXh0Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+JHtkLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZhbHVlIj4ke2QudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNMYWJlbCI+JHt0aGlzLnN0YXR1c09iamVjdD8ubGFzdFVwZGF0ZWQ/YExhc3QgdXBkYXRlZDogJHtuZXcgRGF0ZSh0aGlzLnN0YXR1c09iamVjdC5sYXN0VXBkYXRlZCkudG9Mb2NhbGVTdHJpbmcoKX1gOiIifTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIGNvcHlUb0NsaXBib2FyZChkLGY9IlRleHQiKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZCksY29uc29sZS5sb2coYCR7Zn0gY29waWVkIHRvIGNsaXBib2FyZGApfWNhdGNoKHApe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb3B5ICR7Zn06YCxwKX19YXN5bmMgaGFuZGxlQ29weUFzSnNvbigpe2lmKHRoaXMuc3RhdHVzT2JqZWN0KXRyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXR1c09iamVjdCxudWxsLDIpKTtsZXQgZD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvcHlNYWluIiksZj1kLnRleHRDb250ZW50O2QudGV4dENvbnRlbnQ9IkNvcGllZCEiO2xldCBwPSF0aGlzLmdvQnJpZ2h0O2Quc3R5bGUuYmFja2dyb3VuZD1wPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsZC5zdHlsZS5ib3JkZXJDb2xvcj1wPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZC5zdHlsZS5jb2xvcj1wPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsc2V0VGltZW91dCgoKT0+e2QudGV4dENvbnRlbnQ9ZixkLnN0eWxlLmJhY2tncm91bmQ9IiIsZC5zdHlsZS5ib3JkZXJDb2xvcj0iIixkLnN0eWxlLmNvbG9yPSIifSwxNTAwKX1jYXRjaChkKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLGQpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksazd0KHRoaXMsbCl9c3RhdGlje2s3dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgJFhyPXUoKCk9PntEWHIoKX0pO3ZhciBBWHI9dSgoKT0+e0w2ZSgpfSk7dmFyIFM3dCxFWHIsSVhyPXUoKCk9Pnt2ZSgpO003dCgpO1M3dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJNb2NrU3RvcmFnZURhdGFQcm92aWRlciIpfW9iamVjdHM9bmV3IE1hcDtjb25zdHJ1Y3Rvcigpe2xldCBlPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTt0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvcmVhZG1lLm1kIix7Y29udGVudDpidG9hKGAjIFdlbGNvbWUKClRoaXMgaXMgYSBkZW1vIFN0b3JhZ2UgYnJvd3Nlci4KYCksY29udGVudFR5cGU6InRleHQvbWFya2Rvd24iLHNpemU6NDIsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvY29uZmlnLmpzb24iLHtjb250ZW50OmJ0b2EoYHsKICAibmFtZSI6ICJkZW1vIiwKICAidmVyc2lvbiI6ICIxLjAuMCIKfWApLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixzaXplOjQ4LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL25vdGVzL3RvZG8udHh0Iix7Y29udGVudDpidG9hKGBCdXkgbWlsawpGaXggYnVnICM0MgpEZXBsb3kgdG8gcHJvZHVjdGlvbmApLGNvbnRlbnRUeXBlOiJ0ZXh0L3BsYWluIixzaXplOjQ1LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiaW1hZ2VzL2xvZ28ucG5nIix7Y29udGVudDpidG9hKCJmYWtlLXBuZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL3BuZyIsc2l6ZToyNDUwMCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImltYWdlcy9iYW5uZXIuanBnIix7Y29udGVudDpidG9hKCJmYWtlLWpwZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL2pwZWciLHNpemU6MTU2ZTMsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJzY3JpcHRzL2RlcGxveS5zaCIse2NvbnRlbnQ6YnRvYShgIyEvYmluL2Jhc2gKZWNobyAiRGVwbG95aW5nLi4uIgpgKSxjb250ZW50VHlwZToidGV4dC9wbGFpbiIsc2l6ZTozNCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImluZGV4Lmh0bWwiLHtjb250ZW50OmJ0b2EoYDwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPGJvZHk+CiAgPGgxPkhlbGxvIFdvcmxkPC9oMT4KPC9ib2R5Pgo8L2h0bWw+YCksY29udGVudFR5cGU6InRleHQvaHRtbCIsc2l6ZTo3MixsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoInN0eWxlcy5jc3MiLHtjb250ZW50OmJ0b2EoImJvZHkgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyB9IiksY29udGVudFR5cGU6InRleHQvY3NzIixzaXplOjQ0LGxhc3RNb2RpZmllZDplfSl9YXN5bmMgbGlzdE9iamVjdHMoZSxyLGEpe2xldCBzPXJ8fCIiLG49W10sbz1uZXcgU2V0O2ZvcihsZXRbbCxjXW9mIHRoaXMub2JqZWN0cyl7aWYoIWwuc3RhcnRzV2l0aChzKSljb250aW51ZTtsZXQgZD1sLnNsaWNlKHMubGVuZ3RoKTtpZihhKXtsZXQgZj1kLmluZGV4T2YoYSk7Zj49MD9vLmFkZChzK2Quc2xpY2UoMCxmKzEpKTpuLnB1c2goe2tleTpsLHNpemU6Yy5zaXplLGxhc3RNb2RpZmllZDpjLmxhc3RNb2RpZmllZH0pfWVsc2Ugbi5wdXNoKHtrZXk6bCxzaXplOmMuc2l6ZSxsYXN0TW9kaWZpZWQ6Yy5sYXN0TW9kaWZpZWR9KX1yZXR1cm57b2JqZWN0czpuLHByZWZpeGVzOkFycmF5LmZyb20obykuc29ydCgpfX1hc3luYyBnZXRPYmplY3QoZSxyKXtsZXQgYT10aGlzLm9iamVjdHMuZ2V0KHIpO2lmKCFhKXRocm93IG5ldyBFcnJvcigiTm90IGZvdW5kIik7cmV0dXJuey4uLmF9fWFzeW5jIHB1dE9iamVjdChlLHIsYSxzKXtyZXR1cm4gdGhpcy5vYmplY3RzLnNldChyLHtjb250ZW50OmEsY29udGVudFR5cGU6cyxzaXplOmF0b2IoYSkubGVuZ3RoLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSwhMH1hc3luYyBkZWxldGVPYmplY3QoZSxyKXtyZXR1cm4gdGhpcy5vYmplY3RzLmRlbGV0ZShyKX1hc3luYyBkZWxldGVQcmVmaXgoZSxyKXtmb3IobGV0IGEgb2YgdGhpcy5vYmplY3RzLmtleXMoKSlhLnN0YXJ0c1dpdGgocikmJnRoaXMub2JqZWN0cy5kZWxldGUoYSk7cmV0dXJuITB9YXN5bmMgZ2V0T2JqZWN0VXJsKGUscil7bGV0IGE9dGhpcy5vYmplY3RzLmdldChyKTtpZighYSlyZXR1cm4iIjtsZXQgcz1uZXcgQmxvYihbVWludDhBcnJheS5mcm9tKGF0b2IoYS5jb250ZW50KSxuPT5uLmNoYXJDb2RlQXQoMCkpXSx7dHlwZTphLmNvbnRlbnRUeXBlfSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwocyl9YXN5bmMgbW92ZU9iamVjdChlLHIsYSl7bGV0IHM9dGhpcy5vYmplY3RzLmdldChyKTtyZXR1cm4gcz8odGhpcy5vYmplY3RzLnNldChhLHsuLi5zLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSx0aGlzLm9iamVjdHMuZGVsZXRlKHIpLHtzdWNjZXNzOiEwfSk6e3N1Y2Nlc3M6ITEsZXJyb3I6IlNvdXJjZSBub3QgZm91bmQifX1hc3luYyBtb3ZlUHJlZml4KGUscixhKXtsZXQgcz0wLG49QXJyYXkuZnJvbSh0aGlzLm9iamVjdHMuZW50cmllcygpKS5maWx0ZXIoKFtvXSk9Pm8uc3RhcnRzV2l0aChyKSk7Zm9yKGxldFtvLGxdb2Ygbil7bGV0IGM9YStvLnNsaWNlKHIubGVuZ3RoKTt0aGlzLm9iamVjdHMuc2V0KGMsey4uLmwsbGFzdE1vZGlmaWVkOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0pLHRoaXMub2JqZWN0cy5kZWxldGUobykscysrfXJldHVybntzdWNjZXNzOiEwLG1vdmVkQ291bnQ6c319fSxFWHI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc3RvcmFnZS1icm93c2VyCiAgICAgIC5kYXRhUHJvdmlkZXI9JHtuZXcgUzd0fQogICAgICAuYnVja2V0TmFtZT0keyJkZW1vLWJ1Y2tldCJ9CiAgICA+PC9kZWVzLXN0b3JhZ2UtYnJvd3Nlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO2Z1bmN0aW9uIHp3KHQpe2lmKHQ9PW51bGwpcmV0dXJuIi0iO2lmKHQ9PT0wKXJldHVybiIwIEIiO2xldCBlPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIl0scj10LGE9MDtmb3IoO3I+PTEwMjQmJmE8ZS5sZW5ndGgtMTspci89MTAyNCxhKys7cmV0dXJuYCR7ci50b0ZpeGVkKGE+MD8xOjApfSAke2VbYV19YH1mdW5jdGlvbiBQWHIodCl7cmV0dXJuIHQ9PW51bGw/IiI6dD49MWU2P2Akeyh0LzFlNikudG9GaXhlZCgxKX1NYDp0Pj0xZTM/YCR7KHQvMWUzKS50b0ZpeGVkKDEpfUtgOnQudG9TdHJpbmcoKX1mdW5jdGlvbiBqcih0KXtsZXQgZT10LnJlcGxhY2UoL1wvJC8sIiIpLnNwbGl0KCIvIik7cmV0dXJuIGVbZS5sZW5ndGgtMV18fHR9ZnVuY3Rpb24gX3codCxlKXtyZXR1cm4gdC5lbmRzV2l0aCgiLyIpJiZlLnN0YXJ0c1dpdGgodCk/e3ZhbGlkOiExLGVycm9yOiJDYW5ub3QgbW92ZSBhIGZvbGRlciBpbnRvIGl0c2VsZiJ9OlRjKHQpPT09ZT97dmFsaWQ6ITEsZXJyb3I6Ikl0ZW0gaXMgYWxyZWFkeSBpbiB0aGlzIGxvY2F0aW9uIn06e3ZhbGlkOiEwfX1mdW5jdGlvbiBUYyh0KXtsZXQgZT10LmVuZHNXaXRoKCIvIik/dC5zbGljZSgwLC0xKTp0LHI9ZS5sYXN0SW5kZXhPZigiLyIpO3JldHVybiByPj0wP2Uuc3Vic3RyaW5nKDAscisxKToiIn1mdW5jdGlvbiBmZih0KXtyZXR1cm57anNvbjoiYXBwbGljYXRpb24vanNvbiIsdHh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLGNzczoidGV4dC9jc3MiLGpzOiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iix0czoidGV4dC90eXBlc2NyaXB0IixtZDoidGV4dC9tYXJrZG93biIseG1sOiJhcHBsaWNhdGlvbi94bWwiLHlhbWw6InRleHQveWFtbCIseW1sOiJ0ZXh0L3lhbWwiLGNzdjoidGV4dC9jc3YifVt0XXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9ZnVuY3Rpb24gVHcodCl7cmV0dXJue2pzb246YHsKICAKfWAsaHRtbDpgPCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAKPC9ib2R5Pgo8L2h0bWw+YCxtZDpgIyBUaXRsZQoKYCx0eHQ6IiJ9W3RdfHwiIn1mdW5jdGlvbiBzZyh0KXtpZighdClyZXR1cm5bXTtsZXQgZT10LnNwbGl0KCIvIikuZmlsdGVyKHM9PnMpLHI9W10sYT0iIjtmb3IobGV0IHMgb2YgZSlhKz1zKyIvIixyLnB1c2goYSk7cmV0dXJuIHJ9dmFyIE5yZT11KCgpPT57aSh6dywiZm9ybWF0U2l6ZSIpO2koUFhyLCJmb3JtYXRDb3VudCIpO2koanIsImdldEZpbGVOYW1lIik7aShfdywidmFsaWRhdGVNb3ZlIik7aShUYywiZ2V0UGFyZW50UHJlZml4Iik7aShmZiwiZ2V0Q29udGVudFR5cGUiKTtpKFR3LCJnZXREZWZhdWx0Q29udGVudCIpO2koc2csImdldFBhdGhTZWdtZW50cyIpfSk7dmFyIFNhLFR0LE5YcixDN3Q9dSgoKT0+e3ZlKCk7c3MoKTtsdCgpO05yZSgpO1NhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxUdD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sTlhyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zdG9yYWdlLWNvbHVtbnMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdLHhlLEs9W10sVj1bXSxsZSxuZT1bXSxlZT1bXSx6ZSxIZT1bXSxHZT1bXSxvdCxEZT1bXSxfZT1bXSxvZSxzZT1bXSxjZT1bXSxUZSxxZT1bXSxudD1bXSx2dCxMZT1bXSx3ZT1bXSxPZSxnZT1bXSxiZT1bXSxJZSx5dD1bXSx3dD1bXSxZdCx6YT1bXSxQYT1bXSxZaSxFZT1bXSxqZT1bXSxzcixyYT1bXSxwYT1bXSx5YSxmYT1bXSxDbj1bXSx6bixBZT1bXSxDZT1bXSxZZSxEcj1bXSxFcz1bXTt2YXIgTGQ9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlQ29sdW1ucyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOk51bWJlcn0pXSx5PVtpZSgpXSxOPVtpZSgpXSxPPVtpZSgpXSxCPVtpZSgpXSxBPVtpZSgpXSxZPVtpZSgpXSxkZT1baWUoKV0sZmU9W2llKCldLHBlPVtpZSgpXSxIPVtpZSgpXSxhZT1baWUoKV0seGU9W2llKCldLGxlPVtpZSgpXSx6ZT1baWUoKV0sb3Q9W2llKCldLG9lPVtpZSgpXSxUZT1baWUoKV0sdnQ9W2llKCldLE9lPVtpZSgpXSxJZT1baWUoKV0sWXQ9W2llKCldLFlpPVtpZSgpXSxzcj1baWUoKV0seWE9W2llKCldLHpuPVtpZSgpXSxZZT1baWUoKV0sU2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJkYXRhUHJvdmlkZXIiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5kYXRhUHJvdmlkZXI9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LG8sbCksU2EodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iYnVja2V0TmFtZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmJ1Y2tldE5hbWUsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5idWNrZXROYW1lPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxkLGYpLFNhKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+ImN1cnJlbnRQcmVmaXgiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5jdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuY3VycmVudFByZWZpeD0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0saCxtKSxTYSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJyZWZyZXNoS2V5ImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUucmVmcmVzaEtleSwiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnJlZnJlc2hLZXk9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LGIsZyksU2EodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iY29sdW1ucyJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmNvbHVtbnMsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5jb2x1bW5zPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxrLE0pLFNhKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+ImxvYWRpbmciaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUubG9hZGluZz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sXyxTKSxTYSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDcmVhdGVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJzaG93Q3JlYXRlRGlhbG9nImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUuc2hvd0NyZWF0ZURpYWxvZywiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnNob3dDcmVhdGVEaWFsb2c9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LEwsRSksU2EodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iY3JlYXRlRGlhbG9nVHlwZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmNyZWF0ZURpYWxvZ1R5cGUsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5jcmVhdGVEaWFsb2dUeXBlPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxDLHopLFNhKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iY3JlYXRlRGlhbG9nUHJlZml4ImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUuY3JlYXRlRGlhbG9nUHJlZml4LCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuY3JlYXRlRGlhbG9nUHJlZml4PSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSwkLEYpLFNhKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+ImNyZWF0ZURpYWxvZ05hbWUiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5jcmVhdGVEaWFsb2dOYW1lLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuY3JlYXRlRGlhbG9nTmFtZT0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sRyxaKSxTYSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckNvbHVtbkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iZHJhZ092ZXJDb2x1bW5JbmRleCJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmRyYWdPdmVyQ29sdW1uSW5kZXgsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5kcmFnT3ZlckNvbHVtbkluZGV4PSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxELFEpLFNhKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyRm9sZGVyUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iZHJhZ092ZXJGb2xkZXJQcmVmaXgiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5kcmFnT3ZlckZvbGRlclByZWZpeCwiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLmRyYWdPdmVyRm9sZGVyUHJlZml4PSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxULFcpLFNhKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwbG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+InVwbG9hZGluZyJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLnVwbG9hZGluZywiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnVwbG9hZGluZz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sbWUscSksU2EodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cGxvYWRQcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+InVwbG9hZFByb2dyZXNzImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUudXBsb2FkUHJvZ3Jlc3MsImdldCIpLHNldDppKChoZSwkZSk9PntoZS51cGxvYWRQcm9ncmVzcz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sVSxqKSxTYSh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TW92ZURpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+InNob3dNb3ZlRGlhbG9nImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUuc2hvd01vdmVEaWFsb2csImdldCIpLHNldDppKChoZSwkZSk9PntoZS5zaG93TW92ZURpYWxvZz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sWCxKKSxTYSh0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4ibW92ZVNvdXJjZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLm1vdmVTb3VyY2UsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5tb3ZlU291cmNlPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxLLFYpLFNhKHRoaXMsbnVsbCxsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVEZXN0aW5hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+Im1vdmVEZXN0aW5hdGlvbiJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLm1vdmVEZXN0aW5hdGlvbiwiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLm1vdmVEZXN0aW5hdGlvbj0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sbmUsZWUpLFNhKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4ibW92ZUluUHJvZ3Jlc3MiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5tb3ZlSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLm1vdmVJblByb2dyZXNzPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxIZSxHZSksU2EodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4ibW92ZUVycm9yImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUubW92ZUVycm9yLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUubW92ZUVycm9yPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxEZSxfZSksU2EodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVQaWNrZXJEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJzaG93TW92ZVBpY2tlckRpYWxvZyJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLnNob3dNb3ZlUGlja2VyRGlhbG9nLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuc2hvd01vdmVQaWNrZXJEaWFsb2c9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LHNlLGNlKSxTYSh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4ibW92ZVBpY2tlclNvdXJjZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLm1vdmVQaWNrZXJTb3VyY2UsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5tb3ZlUGlja2VyU291cmNlPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxxZSxudCksU2EodGhpcyxudWxsLHZ0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LExlLHdlKSxTYSh0aGlzLG51bGwsT2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyUHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJtb3ZlUGlja2VyUHJlZml4ZXMiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5tb3ZlUGlja2VyUHJlZml4ZXMsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5tb3ZlUGlja2VyUHJlZml4ZXM9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LGdlLGJlKSxTYSh0aGlzLG51bGwsSWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+Im1vdmVQaWNrZXJMb2FkaW5nImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUubW92ZVBpY2tlckxvYWRpbmcsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5tb3ZlUGlja2VyTG9hZGluZz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0seXQsd3QpLFNhKHRoaXMsbnVsbCxZdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dSZW5hbWVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJzaG93UmVuYW1lRGlhbG9nImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUuc2hvd1JlbmFtZURpYWxvZywiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnNob3dSZW5hbWVEaWFsb2c9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LHphLFBhKSxTYSh0aGlzLG51bGwsWWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJyZW5hbWVTb3VyY2UiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5yZW5hbWVTb3VyY2UsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5yZW5hbWVTb3VyY2U9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LEVlLGplKSxTYSh0aGlzLG51bGwsc3Ise2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4icmVuYW1lTmFtZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLnJlbmFtZU5hbWUsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5yZW5hbWVOYW1lPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxyYSxwYSksU2EodGhpcyxudWxsLHlhLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+InJlbmFtZUluUHJvZ3Jlc3MiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5yZW5hbWVJblByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUucmVuYW1lSW5Qcm9ncmVzcz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sZmEsQ24pLFNhKHRoaXMsbnVsbCx6bix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4icmVuYW1lRXJyb3IiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5yZW5hbWVFcnJvciwiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnJlbmFtZUVycm9yPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxBZSxDZSksU2EodGhpcyxudWxsLFllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJkcmFnZ2VkSXRlbSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmRyYWdnZWRJdGVtLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuZHJhZ2dlZEl0ZW09JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LERyLEVzKSxTYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprZX0sbnVsbCxyKSxMZD1hPWUudmFsdWUsa2UmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a2V9KX0jZT1UdCh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoa2Upe3RoaXMuI2U9a2V9I3Q9KFR0KHRoaXMsbCksVHQodGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZShrZSl7dGhpcy4jdD1rZX0jcj0oVHQodGhpcyxmKSxUdCh0aGlzLGgsIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNyfXNldCBjdXJyZW50UHJlZml4KGtlKXt0aGlzLiNyPWtlfSNhPShUdCh0aGlzLG0pLFR0KHRoaXMsYiwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcmVmcmVzaEtleShrZSl7dGhpcy4jYT1rZX0jaT0oVHQodGhpcyxnKSxUdCh0aGlzLGssW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNpfXNldCBjb2x1bW5zKGtlKXt0aGlzLiNpPWtlfSNzPShUdCh0aGlzLE0pLFR0KHRoaXMsXywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvYWRpbmcoa2Upe3RoaXMuI3M9a2V9I249KFR0KHRoaXMsUyksVHQodGhpcyxMLCExKSk7Z2V0IHNob3dDcmVhdGVEaWFsb2coKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2hvd0NyZWF0ZURpYWxvZyhrZSl7dGhpcy4jbj1rZX0jbz0oVHQodGhpcyxFKSxUdCh0aGlzLEMsImZvbGRlciIpKTtnZXQgY3JlYXRlRGlhbG9nVHlwZSgpe3JldHVybiB0aGlzLiNvfXNldCBjcmVhdGVEaWFsb2dUeXBlKGtlKXt0aGlzLiNvPWtlfSNsPShUdCh0aGlzLHopLFR0KHRoaXMsJCwiIikpO2dldCBjcmVhdGVEaWFsb2dQcmVmaXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3JlYXRlRGlhbG9nUHJlZml4KGtlKXt0aGlzLiNsPWtlfSNjPShUdCh0aGlzLEYpLFR0KHRoaXMsRywiIikpO2dldCBjcmVhdGVEaWFsb2dOYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNyZWF0ZURpYWxvZ05hbWUoa2Upe3RoaXMuI2M9a2V9I2Q9KFR0KHRoaXMsWiksVHQodGhpcyxELC0xKSk7Z2V0IGRyYWdPdmVyQ29sdW1uSW5kZXgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZHJhZ092ZXJDb2x1bW5JbmRleChrZSl7dGhpcy4jZD1rZX0jdT0oVHQodGhpcyxRKSxUdCh0aGlzLFQsbnVsbCkpO2dldCBkcmFnT3ZlckZvbGRlclByZWZpeCgpe3JldHVybiB0aGlzLiN1fXNldCBkcmFnT3ZlckZvbGRlclByZWZpeChrZSl7dGhpcy4jdT1rZX0jcD0oVHQodGhpcyxXKSxUdCh0aGlzLG1lLCExKSk7Z2V0IHVwbG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCB1cGxvYWRpbmcoa2Upe3RoaXMuI3A9a2V9I2Y9KFR0KHRoaXMscSksVHQodGhpcyxVLG51bGwpKTtnZXQgdXBsb2FkUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jZn1zZXQgdXBsb2FkUHJvZ3Jlc3Moa2Upe3RoaXMuI2Y9a2V9I2g9KFR0KHRoaXMsaiksVHQodGhpcyxYLCExKSk7Z2V0IHNob3dNb3ZlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHNob3dNb3ZlRGlhbG9nKGtlKXt0aGlzLiNoPWtlfSNtPShUdCh0aGlzLEopLFR0KHRoaXMsSyxudWxsKSk7Z2V0IG1vdmVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jbX1zZXQgbW92ZVNvdXJjZShrZSl7dGhpcy4jbT1rZX0jZz0oVHQodGhpcyxWKSxUdCh0aGlzLG5lLCIiKSk7Z2V0IG1vdmVEZXN0aW5hdGlvbigpe3JldHVybiB0aGlzLiNnfXNldCBtb3ZlRGVzdGluYXRpb24oa2Upe3RoaXMuI2c9a2V9I2I9KFR0KHRoaXMsZWUpLFR0KHRoaXMsSGUsITEpKTtnZXQgbW92ZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jYn1zZXQgbW92ZUluUHJvZ3Jlc3Moa2Upe3RoaXMuI2I9a2V9I3g9KFR0KHRoaXMsR2UpLFR0KHRoaXMsRGUsbnVsbCkpO2dldCBtb3ZlRXJyb3IoKXtyZXR1cm4gdGhpcy4jeH1zZXQgbW92ZUVycm9yKGtlKXt0aGlzLiN4PWtlfSN2PShUdCh0aGlzLF9lKSxUdCh0aGlzLHNlLCExKSk7Z2V0IHNob3dNb3ZlUGlja2VyRGlhbG9nKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNob3dNb3ZlUGlja2VyRGlhbG9nKGtlKXt0aGlzLiN2PWtlfSN5PShUdCh0aGlzLGNlKSxUdCh0aGlzLHFlLG51bGwpKTtnZXQgbW92ZVBpY2tlclNvdXJjZSgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyU291cmNlKGtlKXt0aGlzLiN5PWtlfSN3PShUdCh0aGlzLG50KSxUdCh0aGlzLExlLCIiKSk7Z2V0IG1vdmVQaWNrZXJDdXJyZW50UHJlZml4KCl7cmV0dXJuIHRoaXMuI3d9c2V0IG1vdmVQaWNrZXJDdXJyZW50UHJlZml4KGtlKXt0aGlzLiN3PWtlfSNrPShUdCh0aGlzLHdlKSxUdCh0aGlzLGdlLFtdKSk7Z2V0IG1vdmVQaWNrZXJQcmVmaXhlcygpe3JldHVybiB0aGlzLiNrfXNldCBtb3ZlUGlja2VyUHJlZml4ZXMoa2Upe3RoaXMuI2s9a2V9I1M9KFR0KHRoaXMsYmUpLFR0KHRoaXMseXQsITEpKTtnZXQgbW92ZVBpY2tlckxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jU31zZXQgbW92ZVBpY2tlckxvYWRpbmcoa2Upe3RoaXMuI1M9a2V9I009KFR0KHRoaXMsd3QpLFR0KHRoaXMsemEsITEpKTtnZXQgc2hvd1JlbmFtZURpYWxvZygpe3JldHVybiB0aGlzLiNNfXNldCBzaG93UmVuYW1lRGlhbG9nKGtlKXt0aGlzLiNNPWtlfSNDPShUdCh0aGlzLFBhKSxUdCh0aGlzLEVlLG51bGwpKTtnZXQgcmVuYW1lU291cmNlKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHJlbmFtZVNvdXJjZShrZSl7dGhpcy4jQz1rZX0jej0oVHQodGhpcyxqZSksVHQodGhpcyxyYSwiIikpO2dldCByZW5hbWVOYW1lKCl7cmV0dXJuIHRoaXMuI3p9c2V0IHJlbmFtZU5hbWUoa2Upe3RoaXMuI3o9a2V9I189KFR0KHRoaXMscGEpLFR0KHRoaXMsZmEsITEpKTtnZXQgcmVuYW1lSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNffXNldCByZW5hbWVJblByb2dyZXNzKGtlKXt0aGlzLiNfPWtlfSNUPShUdCh0aGlzLENuKSxUdCh0aGlzLEFlLG51bGwpKTtnZXQgcmVuYW1lRXJyb3IoKXtyZXR1cm4gdGhpcy4jVH1zZXQgcmVuYW1lRXJyb3Ioa2Upe3RoaXMuI1Q9a2V9I0w9KFR0KHRoaXMsQ2UpLFR0KHRoaXMsRHIsbnVsbCkpO2dldCBkcmFnZ2VkSXRlbSgpe3JldHVybiB0aGlzLiNMfXNldCBkcmFnZ2VkSXRlbShrZSl7dGhpcy4jTD1rZX1yZXNpemluZz0oVHQodGhpcyxFcyksbnVsbCk7REVGQVVMVF9DT0xVTU5fV0lEVEg9MjUwO01JTl9DT0xVTU5fV0lEVEg9MTUwO01BWF9DT0xVTU5fV0lEVEg9NTAwO2RyYWdDb3VudGVycz1uZXcgTWFwO2ZvbGRlckhvdmVyVGltZXI9bnVsbDtmaWxlSW5wdXRFbGVtZW50PW51bGw7Zm9sZGVySW5wdXRFbGVtZW50PW51bGw7c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLE5lLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICB9CgogICAgICAuY29sdW1ucy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4td3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICB3aWR0aDogNXB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGU6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplLWhhbmRsZS5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM0MDQwNDAiKX07CiAgICAgICAgd2lkdGg6IDJweDsKICAgICAgICBsZWZ0OiAxcHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4td3JhcHBlcjpsYXN0LWNoaWxkIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuY29sdW1uLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzY2NiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtcyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmZvbGRlciB7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gLmNoZXZyb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLmNvbHVtbi5kcmFnLW92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KTsKICAgICAgICBvdXRsaW5lOiAycHggZGFzaGVkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpOwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZm9sZGVyLmRyYWctdGFyZ2V0IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSAhaW1wb3J0YW50OwogICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTsKICAgICAgfQoKICAgICAgLnVwbG9hZC1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtb3ZlcmxheSAudXBsb2FkLXRleHQgewogICAgICAgIGNvbG9yOiAjZTBlMGUwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnVwbG9hZC1vdmVybGF5IC51cGxvYWQtcHJvZ3Jlc3MgewogICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLmRyYWctaGludCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogOHB4OwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuOSk7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiA1OwogICAgICB9CgogICAgICAuZGlhbG9nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAuZGlhbG9nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZTFlMWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1pbi13aWR0aDogNDAwcHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgICB9CgogICAgICAuZGlhbG9nLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctbG9jYXRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE0MTQxNCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlhbG9nLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWwgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYWFhIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1MDUwNTAiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIE1vdmUgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1zdW1tYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAubW92ZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAubW92ZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLXBhdGggewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNmM2Y0NiIsIiNlMGUwZTAiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAubW92ZS1lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAvKiBNb3ZlIHBpY2tlciBkaWFsb2cgc3R5bGVzICovCiAgICAgIC5tb3ZlLXBpY2tlci1kaWFsb2cgewogICAgICAgIG1pbi13aWR0aDogNDUwcHg7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItYnJlYWRjcnVtYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAucGlja2VyLXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAubmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItZW1wdHkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZHJhZ2dpbmcgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmRyb3AtdGFyZ2V0IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkgIWltcG9ydGFudDsKICAgICAgICBvdXRsaW5lOiAxcHggZGFzaGVkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZHJvcC1pbnZhbGlkIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpICFpbXBvcnRhbnQ7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMubG9hZEluaXRpYWxDb2x1bW4oKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhckZvbGRlckhvdmVyKCksdGhpcy5kcmFnQ291bnRlcnMuY2xlYXIoKSx0aGlzLmZpbGVJbnB1dEVsZW1lbnQmJih0aGlzLmZpbGVJbnB1dEVsZW1lbnQucmVtb3ZlKCksdGhpcy5maWxlSW5wdXRFbGVtZW50PW51bGwpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50JiYodGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQucmVtb3ZlKCksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQ9bnVsbCl9dXBkYXRlZChrZSl7a2UuaGFzKCJidWNrZXROYW1lIil8fGtlLmhhcygiY3VycmVudFByZWZpeCIpP3RoaXMubG9hZEluaXRpYWxDb2x1bW4oKTprZS5oYXMoInJlZnJlc2hLZXkiKSYmdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpfWFzeW5jIGxvYWRJbml0aWFsQ29sdW1uKCl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubG9hZGluZz0hMDt0cnl7bGV0IGtlPXNnKHRoaXMuY3VycmVudFByZWZpeCksaGU9WyIiLC4uLmtlXSwkZT1hd2FpdCBQcm9taXNlLmFsbChoZS5tYXAoZXQ9PnRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxldCwiLyIpKSk7dGhpcy5jb2x1bW5zPSRlLm1hcCgoZXQsUHQpPT57bGV0IElzPWhlW1B0XSxLaT1QdDxrZS5sZW5ndGg/a2VbUHRdOm51bGw7cmV0dXJue3ByZWZpeDpJcyxvYmplY3RzOmV0Lm9iamVjdHMscHJlZml4ZXM6ZXQucHJlZml4ZXMsc2VsZWN0ZWRJdGVtOktpLHdpZHRoOnRoaXMuREVGQVVMVF9DT0xVTU5fV0lEVEh9fSksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLnNjcm9sbFRvRW5kKCkpfWNhdGNoKGtlKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIG9iamVjdHM6IixrZSksdGhpcy5jb2x1bW5zPVtdfXRoaXMubG9hZGluZz0hMX19YXN5bmMgcmVmcmVzaEFsbENvbHVtbnMoKXtpZighdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBrZT1hd2FpdCBQcm9taXNlLmFsbCh0aGlzLmNvbHVtbnMubWFwKGFzeW5jIGhlPT57dHJ5e2xldCAkZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsaGUucHJlZml4LCIvIik7cmV0dXJuey4uLmhlLG9iamVjdHM6JGUub2JqZWN0cyxwcmVmaXhlczokZS5wcmVmaXhlc319Y2F0Y2h7cmV0dXJuIGhlfX0pKTt0aGlzLmNvbHVtbnM9a2V9YXN5bmMgc2VsZWN0Rm9sZGVyKGtlLGhlKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKCRlLGV0KT0+ZXQ9PT1rZT97Li4uJGUsc2VsZWN0ZWRJdGVtOmhlfTokZSksdGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5zbGljZSgwLGtlKzEpO3RyeXtsZXQgJGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLGhlLCIvIik7dGhpcy5jb2x1bW5zPVsuLi50aGlzLmNvbHVtbnMse3ByZWZpeDpoZSxvYmplY3RzOiRlLm9iamVjdHMscHJlZml4ZXM6JGUucHJlZml4ZXMsc2VsZWN0ZWRJdGVtOm51bGwsd2lkdGg6dGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSH1dLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5zY3JvbGxUb0VuZCgpKX1jYXRjaCgkZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBmb2xkZXI6IiwkZSl9fX1zY3JvbGxUb0VuZCgpe3RoaXMuc2Nyb2xsTGVmdD10aGlzLnNjcm9sbFdpZHRoLXRoaXMuY2xpZW50V2lkdGh9c3RhcnRSZXNpemUoa2UsaGUpe2tlLnByZXZlbnREZWZhdWx0KCksdGhpcy5yZXNpemluZz17Y29sdW1uSW5kZXg6aGUsc3RhcnRYOmtlLmNsaWVudFgsc3RhcnRXaWR0aDp0aGlzLmNvbHVtbnNbaGVdLndpZHRofSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUmVzaXplKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnN0b3BSZXNpemUpLGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSJjb2wtcmVzaXplIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9Im5vbmUifWhhbmRsZVJlc2l6ZT1pKGtlPT57aWYoIXRoaXMucmVzaXppbmcpcmV0dXJuO2xldCBoZT1rZS5jbGllbnRYLXRoaXMucmVzaXppbmcuc3RhcnRYLCRlPU1hdGgubWluKHRoaXMuTUFYX0NPTFVNTl9XSURUSCxNYXRoLm1heCh0aGlzLk1JTl9DT0xVTU5fV0lEVEgsdGhpcy5yZXNpemluZy5zdGFydFdpZHRoK2hlKSk7dGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKGV0LFB0KT0+UHQ9PT10aGlzLnJlc2l6aW5nLmNvbHVtbkluZGV4P3suLi5ldCx3aWR0aDokZX06ZXQpfSwiaGFuZGxlUmVzaXplIik7c3RvcFJlc2l6ZT1pKCgpPT57dGhpcy5yZXNpemluZz1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVSZXNpemUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuc3RvcFJlc2l6ZSksZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9IiIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSIifSwic3RvcFJlc2l6ZSIpO3NlbGVjdEZpbGUoa2UsaGUpe3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKCgkZSxldCk9PmV0PT09a2U/ey4uLiRlLHNlbGVjdGVkSXRlbTpoZX06JGUpLHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMuc2xpY2UoMCxrZSsxKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJrZXktc2VsZWN0ZWQiLHtkZXRhaWw6e2tleTpoZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXRGaWxlSWNvbihrZSl7bGV0IGhlPWtlLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiO3JldHVybntqc29uOiJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Iix0eHQ6Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiLHBuZzoiTTUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoiLGpwZzoiTTUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoiLGpwZWc6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixnaWY6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixwZGY6Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoifVtoZV18fCJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6In1oYW5kbGVGb2xkZXJDb250ZXh0TWVudShrZSxoZSwkZSl7dGhpcy5kYXRhUHJvdmlkZXImJihrZS5wcmV2ZW50RGVmYXVsdCgpLENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGtlLFt7bmFtZToiT3BlbiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJPcGVuIixhY3Rpb246aShhc3luYygpPT57dGhpcy5zZWxlY3RGb2xkZXIoaGUsJGUpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IFBhdGgiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KCRlKX0sImFjdGlvbiIpfSx7bmFtZToiUmVuYW1lIixpY29uTmFtZToibHVjaWRlOnBlbmNpbCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuUmVuYW1lRGlhbG9nKCRlLCEwKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTW92ZSB0by4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJJbnB1dCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuTW92ZVBpY2tlckRpYWxvZygkZSwhMCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik5ldyBGb2xkZXIgSW5zaWRlIixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZm9sZGVyIiwkZSksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZpbGUgSW5zaWRlIixpY29uTmFtZToibHVjaWRlOmZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZpbGUiLCRlKSwiYWN0aW9uIil9LHtuYW1lOiJVcGxvYWQgRmlsZXMuLi4iLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZCgkZSwiZmlsZXMiKSwiYWN0aW9uIil9LHtuYW1lOiJVcGxvYWQgRm9sZGVyLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlclVwIixhY3Rpb246aShhc3luYygpPT50aGlzLnRyaWdnZXJGaWxlVXBsb2FkKCRlLCJmb2xkZXIiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIEZvbGRlciIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25maXJtKGBEZWxldGUgZm9sZGVyICIke2pyKCRlKX0iIGFuZCBhbGwgaXRzIGNvbnRlbnRzP2ApJiZhd2FpdCB0aGlzLmRhdGFQcm92aWRlci5kZWxldGVQcmVmaXgodGhpcy5idWNrZXROYW1lLCRlKSYmKHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMuc2xpY2UoMCxoZSsxKSx0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoUHQsSXMpPT5Jcz09PWhlP3suLi5QdCxzZWxlY3RlZEl0ZW06bnVsbH06UHQpLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHRoaXMuY29sdW1uc1toZV0ucHJlZml4KSl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRmlsZUNvbnRleHRNZW51KGtlLGhlLCRlKXt0aGlzLmRhdGFQcm92aWRlciYmKGtlLnByZXZlbnREZWZhdWx0KCksQ3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoa2UsW3tuYW1lOiJQcmV2aWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuc2VsZWN0RmlsZShoZSwkZSl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57bGV0IGV0PWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmdldE9iamVjdFVybCh0aGlzLmJ1Y2tldE5hbWUsJGUpLFB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtQdC5ocmVmPWV0LFB0LmRvd25sb2FkPWpyKCRlKSxQdC5jbGljaygpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IFBhdGgiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KCRlKX0sImFjdGlvbiIpfSx7bmFtZToiUmVuYW1lIixpY29uTmFtZToibHVjaWRlOnBlbmNpbCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuUmVuYW1lRGlhbG9nKCRlLCExKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTW92ZSB0by4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJJbnB1dCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuTW92ZVBpY2tlckRpYWxvZygkZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25maXJtKGBEZWxldGUgZmlsZSAiJHtqcigkZSl9Ij9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSwkZSkmJmF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHRoaXMuY29sdW1uc1toZV0ucHJlZml4KX0sImFjdGlvbiIpfV0pKX1oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoa2UsaGUpe2lmKGtlLnRhcmdldCE9PWtlLmN1cnJlbnRUYXJnZXQpcmV0dXJuO2tlLnByZXZlbnREZWZhdWx0KCk7bGV0ICRlPXRoaXMuY29sdW1uc1toZV0ucHJlZml4O0NyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGtlLFt7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZvbGRlciIsJGUpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToibHVjaWRlOmZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZpbGUiLCRlKSwiYWN0aW9uIil9LHtuYW1lOiJVcGxvYWQgRmlsZXMuLi4iLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZCgkZSwiZmlsZXMiKSwiYWN0aW9uIil9LHtuYW1lOiJVcGxvYWQgRm9sZGVyLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlclVwIixhY3Rpb246aShhc3luYygpPT50aGlzLnRyaWdnZXJGaWxlVXBsb2FkKCRlLCJmb2xkZXIiKSwiYWN0aW9uIil9XSl9b3BlbkNyZWF0ZURpYWxvZyhrZSxoZSl7dGhpcy5jcmVhdGVEaWFsb2dUeXBlPWtlLHRoaXMuY3JlYXRlRGlhbG9nUHJlZml4PWhlLHRoaXMuY3JlYXRlRGlhbG9nTmFtZT0iIix0aGlzLnNob3dDcmVhdGVEaWFsb2c9ITB9ZW5zdXJlRmlsZUlucHV0cygpe3RoaXMuZmlsZUlucHV0RWxlbWVudHx8KHRoaXMuZmlsZUlucHV0RWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuZmlsZUlucHV0RWxlbWVudC50eXBlPSJmaWxlIix0aGlzLmZpbGVJbnB1dEVsZW1lbnQubXVsdGlwbGU9ITAsdGhpcy5maWxlSW5wdXRFbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0aGlzLmZpbGVJbnB1dEVsZW1lbnQpKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudHx8KHRoaXMuZm9sZGVySW5wdXRFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQudHlwZT0iZmlsZSIsdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQubXVsdGlwbGU9ITAsdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQud2Via2l0ZGlyZWN0b3J5PSEwLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0aGlzLmZvbGRlcklucHV0RWxlbWVudCkpfXRyaWdnZXJGaWxlVXBsb2FkKGtlLGhlKXt0aGlzLmVuc3VyZUZpbGVJbnB1dHMoKTtsZXQgJGU9aGU9PT0iZm9sZGVyIj90aGlzLmZvbGRlcklucHV0RWxlbWVudDp0aGlzLmZpbGVJbnB1dEVsZW1lbnQ7JGUudmFsdWU9IiI7bGV0IGV0PWkoYXN5bmMoKT0+eyRlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZXQpLCRlLmZpbGVzJiYkZS5maWxlcy5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGxvYWRGaWxlcyhBcnJheS5mcm9tKCRlLmZpbGVzKSxrZSl9LCJoYW5kbGVyIik7JGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixldCksJGUuY2xpY2soKX1hc3luYyB1cGxvYWRGaWxlcyhrZSxoZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMudXBsb2FkaW5nPSEwLHRoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6MCx0b3RhbDprZS5sZW5ndGh9O2ZvcihsZXQgJGU9MDskZTxrZS5sZW5ndGg7JGUrKyl7bGV0IGV0PWtlWyRlXTt0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OiRlKzEsdG90YWw6a2UubGVuZ3RofTt0cnl7bGV0IFB0PWF3YWl0IHRoaXMucmVhZEZpbGVBc0Jhc2U2NChldCksSXM9ZXQud2Via2l0UmVsYXRpdmVQYXRofHxldC5uYW1lLEtpPWhlK0lzLERvPWV0LnR5cGV8fGZmKGV0Lm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIpO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsS2ksUHQsRG8pfWNhdGNoKFB0KXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gdXBsb2FkICR7ZXQubmFtZX06YCxQdCl9fXRoaXMudXBsb2FkaW5nPSExLHRoaXMudXBsb2FkUHJvZ3Jlc3M9bnVsbCxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeChoZSl9fWFzeW5jIHVwbG9hZEZpbGVzV2l0aFBhdGhzKGtlLGhlKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy51cGxvYWRpbmc9ITAsdGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDowLHRvdGFsOmtlLmxlbmd0aH07Zm9yKGxldCAkZT0wOyRlPGtlLmxlbmd0aDskZSsrKXtsZXR7ZmlsZTpldCxyZWxhdGl2ZVBhdGg6UHR9PWtlWyRlXTt0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OiRlKzEsdG90YWw6a2UubGVuZ3RofTt0cnl7bGV0IElzPWF3YWl0IHRoaXMucmVhZEZpbGVBc0Jhc2U2NChldCksS2k9aGUrUHQsRG89ZXQudHlwZXx8ZmYoZXQubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIik7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSxLaSxJcyxEbyl9Y2F0Y2goSXMpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byB1cGxvYWQgJHtQdH06YCxJcyl9fXRoaXMudXBsb2FkaW5nPSExLHRoaXMudXBsb2FkUHJvZ3Jlc3M9bnVsbCxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeChoZSl9fXJlYWRGaWxlQXNCYXNlNjQoa2Upe3JldHVybiBuZXcgUHJvbWlzZSgoaGUsJGUpPT57bGV0IGV0PW5ldyBGaWxlUmVhZGVyO2V0Lm9ubG9hZD0oKT0+e2xldCBQdD1ldC5yZXN1bHQ7aGUoUHQuc3BsaXQoIiwiKVsxXXx8IiIpfSxldC5vbmVycm9yPSgpPT4kZShldC5lcnJvciksZXQucmVhZEFzRGF0YVVSTChrZSl9KX1hc3luYyByZWZyZXNoQ29sdW1uQnlQcmVmaXgoa2Upe2lmKCF0aGlzLmRhdGFQcm92aWRlcilyZXR1cm47bGV0IGhlPXRoaXMuY29sdW1ucy5maW5kSW5kZXgoJGU9PiRlLnByZWZpeD09PWtlKTtpZihoZT09PS0xKXthd2FpdCB0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCk7cmV0dXJufXRyeXtsZXQgJGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLGtlLCIvIik7dGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKGV0LFB0KT0+UHQ9PT1oZT97Li4uZXQsb2JqZWN0czokZS5vYmplY3RzLHByZWZpeGVzOiRlLnByZWZpeGVzfTpldCl9Y2F0Y2h7YXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpfX1oYW5kbGVDb2x1bW5EcmFnRW50ZXIoa2UsaGUpe2tlLnByZXZlbnREZWZhdWx0KCksa2Uuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPSh0aGlzLmRyYWdDb3VudGVycy5nZXQoaGUpfHwwKSsxO3RoaXMuZHJhZ0NvdW50ZXJzLnNldChoZSwkZSksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PWhlfWhhbmRsZUNvbHVtbkRyYWdPdmVyKGtlKXtrZS5wcmV2ZW50RGVmYXVsdCgpLGtlLnN0b3BQcm9wYWdhdGlvbigpLGtlLmRhdGFUcmFuc2ZlciYmKGtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PXRoaXMuZHJhZ2dlZEl0ZW0/Im1vdmUiOiJjb3B5Iil9aGFuZGxlQ29sdW1uRHJhZ0xlYXZlKGtlLGhlKXtrZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgJGU9KHRoaXMuZHJhZ0NvdW50ZXJzLmdldChoZSl8fDEpLTE7dGhpcy5kcmFnQ291bnRlcnMuc2V0KGhlLCRlKSwkZTw9MCYmKHRoaXMuZHJhZ0NvdW50ZXJzLmRlbGV0ZShoZSksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PT09aGUmJih0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9LTEpLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpKX1hc3luYyBoYW5kbGVDb2x1bW5Ecm9wKGtlLGhlKXtrZS5wcmV2ZW50RGVmYXVsdCgpLGtlLnN0b3BQcm9wYWdhdGlvbigpO2xldCAkZT10aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4Pz90aGlzLmNvbHVtbnNbaGVdLnByZWZpeDtpZih0aGlzLmRyYWdnZWRJdGVtKXt0aGlzLmluaXRpYXRlTW92ZSh0aGlzLmRyYWdnZWRJdGVtLmtleSx0aGlzLmRyYWdnZWRJdGVtLmlzRm9sZGVyLCRlKSx0aGlzLmRyYWdnZWRJdGVtPW51bGwsdGhpcy5jbGVhckZvbGRlckhvdmVyKCksdGhpcy5kcmFnQ291bnRlcnMuY2xlYXIoKSx0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9LTE7cmV0dXJufXRoaXMuZHJhZ0NvdW50ZXJzLmNsZWFyKCksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PS0xO2xldCBldD1rZS5kYXRhVHJhbnNmZXI/Lml0ZW1zO2lmKCFldHx8ZXQubGVuZ3RoPT09MClyZXR1cm47dGhpcy5jbGVhckZvbGRlckhvdmVyKCk7bGV0IFB0PVtdLElzPWkoYXN5bmMoS2ksRG8pPT57aWYoS2kuaXNGaWxlKXtsZXQgbTI9S2kscWM9YXdhaXQgbmV3IFByb21pc2UoKERkLGcyKT0+e20yLmZpbGUoRGQsZzIpfSk7UHQucHVzaCh7ZmlsZTpxYyxyZWxhdGl2ZVBhdGg6RG8rcWMubmFtZX0pfWVsc2UgaWYoS2kuaXNEaXJlY3Rvcnkpe2xldCBxYz1LaS5jcmVhdGVSZWFkZXIoKSxEZD1hd2FpdCBuZXcgUHJvbWlzZSgoZzIsX2YpPT57cWMucmVhZEVudHJpZXMoZzIsX2YpfSk7Zm9yKGxldCBnMiBvZiBEZClhd2FpdCBJcyhnMixEbytLaS5uYW1lKyIvIil9fSwicHJvY2Vzc0VudHJ5Iik7Zm9yKGxldCBLaT0wO0tpPGV0Lmxlbmd0aDtLaSsrKXtsZXQgRG89ZXRbS2ldO2lmKERvLmtpbmQ9PT0iZmlsZSIpe2xldCBtMj1Eby53ZWJraXRHZXRBc0VudHJ5KCk7bTImJmF3YWl0IElzKG0yLCIiKX19UHQubGVuZ3RoPjAmJmF3YWl0IHRoaXMudXBsb2FkRmlsZXNXaXRoUGF0aHMoUHQsJGUpfWhhbmRsZUZvbGRlckRyYWdFbnRlcihrZSxoZSl7a2Uuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGVhckZvbGRlckhvdmVyKCksdGhpcy5mb2xkZXJIb3ZlclRpbWVyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PWhlfSw1MDApfWhhbmRsZUZvbGRlckRyYWdMZWF2ZShrZSxoZSl7a2Uuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPWtlLmN1cnJlbnRUYXJnZXQsZXQ9a2UucmVsYXRlZFRhcmdldDtldCYmJGUuY29udGFpbnMoZXQpfHwodGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD09PWhlJiYodGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD1udWxsKSx0aGlzLmZvbGRlckhvdmVyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5mb2xkZXJIb3ZlclRpbWVyKSx0aGlzLmZvbGRlckhvdmVyVGltZXI9bnVsbCkpfWhhbmRsZUZvbGRlckRyYWdPdmVyKGtlKXtrZS5wcmV2ZW50RGVmYXVsdCgpLGtlLnN0b3BQcm9wYWdhdGlvbigpLGtlLmRhdGFUcmFuc2ZlciYmKGtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PXRoaXMuZHJhZ2dlZEl0ZW0/Im1vdmUiOiJjb3B5Iil9Y2xlYXJGb2xkZXJIb3Zlcigpe3RoaXMuZm9sZGVySG92ZXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLmZvbGRlckhvdmVyVGltZXIpLHRoaXMuZm9sZGVySG92ZXJUaW1lcj1udWxsKSx0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PW51bGx9aGFuZGxlSXRlbURyYWdTdGFydChrZSxoZSwkZSl7dGhpcy5kcmFnZ2VkSXRlbT17a2V5OmhlLGlzRm9sZGVyOiRlfSxrZS5kYXRhVHJhbnNmZXI/LnNldERhdGEoInRleHQvcGxhaW4iLGhlKSxrZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZD0iY29weU1vdmUiLGtlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpfWhhbmRsZUl0ZW1EcmFnRW5kKGtlKXt0aGlzLmRyYWdnZWRJdGVtPW51bGwsa2UudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIil9YXN5bmMgb3Blbk1vdmVQaWNrZXJEaWFsb2coa2UsaGUpe3RoaXMubW92ZVBpY2tlclNvdXJjZT17a2V5OmtlLGlzRm9sZGVyOmhlfSx0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PSIiLHRoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2c9ITAsYXdhaXQgdGhpcy5sb2FkTW92ZVBpY2tlclByZWZpeGVzKCIiKX1hc3luYyBuYXZpZ2F0ZU1vdmVQaWNrZXIoa2Upe3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9a2UsYXdhaXQgdGhpcy5sb2FkTW92ZVBpY2tlclByZWZpeGVzKGtlKX1hc3luYyBsb2FkTW92ZVBpY2tlclByZWZpeGVzKGtlKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy5tb3ZlUGlja2VyTG9hZGluZz0hMDt0cnl7bGV0IGhlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxrZSwiLyIpO3RoaXMubW92ZVBpY2tlclByZWZpeGVzPWhlLnByZWZpeGVzfWNhdGNoe3RoaXMubW92ZVBpY2tlclByZWZpeGVzPVtdfXRoaXMubW92ZVBpY2tlckxvYWRpbmc9ITF9fXNlbGVjdE1vdmVEZXN0aW5hdGlvbihrZSl7dGhpcy5tb3ZlUGlja2VyU291cmNlJiYodGhpcy5jbG9zZU1vdmVQaWNrZXJEaWFsb2coKSx0aGlzLmluaXRpYXRlTW92ZSh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5LHRoaXMubW92ZVBpY2tlclNvdXJjZS5pc0ZvbGRlcixrZSkpfWNsb3NlTW92ZVBpY2tlckRpYWxvZygpe3RoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2c9ITEsdGhpcy5tb3ZlUGlja2VyU291cmNlPW51bGwsdGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD0iIix0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1bXX1pbml0aWF0ZU1vdmUoa2UsaGUsJGUpe2xldCBldD1fdyhrZSwkZSk7aWYoIWV0LnZhbGlkKXt0aGlzLm1vdmVTb3VyY2U9e2tleTprZSxpc0ZvbGRlcjpoZX0sdGhpcy5tb3ZlRGVzdGluYXRpb249JGUsdGhpcy5tb3ZlRXJyb3I9ZXQuZXJyb3IsdGhpcy5zaG93TW92ZURpYWxvZz0hMDtyZXR1cm59dGhpcy5tb3ZlU291cmNlPXtrZXk6a2UsaXNGb2xkZXI6aGV9LHRoaXMubW92ZURlc3RpbmF0aW9uPSRlLHRoaXMubW92ZUVycm9yPW51bGwsdGhpcy5zaG93TW92ZURpYWxvZz0hMH1hc3luYyBleGVjdXRlTW92ZSgpe2lmKCEoIXRoaXMubW92ZVNvdXJjZXx8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMDt0cnl7bGV0IGtlPWpyKHRoaXMubW92ZVNvdXJjZS5rZXkpLGhlPXRoaXMubW92ZURlc3RpbmF0aW9uK2tlKyh0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/Ii8iOiIiKSwkZTt0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/JGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSxoZSk6JGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSxoZSksJGUuc3VjY2Vzcz8odGhpcy5jbG9zZU1vdmVEaWFsb2coKSxhd2FpdCB0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCkpOnRoaXMubW92ZUVycm9yPSRlLmVycm9yfHwiTW92ZSBvcGVyYXRpb24gZmFpbGVkIn1jYXRjaChrZSl7dGhpcy5tb3ZlRXJyb3I9YEVycm9yOiAke2tlfWB9dGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMX19Y2xvc2VNb3ZlRGlhbG9nKCl7dGhpcy5zaG93TW92ZURpYWxvZz0hMSx0aGlzLm1vdmVTb3VyY2U9bnVsbCx0aGlzLm1vdmVEZXN0aW5hdGlvbj0iIix0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9b3BlblJlbmFtZURpYWxvZyhrZSxoZSl7dGhpcy5yZW5hbWVTb3VyY2U9e2tleTprZSxpc0ZvbGRlcjpoZX0sdGhpcy5yZW5hbWVOYW1lPWpyKGtlKSx0aGlzLnJlbmFtZUVycm9yPW51bGwsdGhpcy5zaG93UmVuYW1lRGlhbG9nPSEwLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCAkZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5yZW5hbWUtZGlhbG9nLWlucHV0Iik7aWYoJGUpaWYoJGUuZm9jdXMoKSxoZSkkZS5zZWxlY3QoKTtlbHNle2xldCBldD10aGlzLnJlbmFtZU5hbWUubGFzdEluZGV4T2YoIi4iKTtldD4wPyRlLnNldFNlbGVjdGlvblJhbmdlKDAsZXQpOiRlLnNlbGVjdCgpfX0pfWFzeW5jIGV4ZWN1dGVSZW5hbWUoKXtpZighdGhpcy5yZW5hbWVTb3VyY2V8fCF0aGlzLnJlbmFtZU5hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBrZT10aGlzLnJlbmFtZU5hbWUudHJpbSgpLGhlPWpyKHRoaXMucmVuYW1lU291cmNlLmtleSk7aWYoa2U9PT1oZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBpcyB0aGUgc2FtZSBhcyBjdXJyZW50IjtyZXR1cm59aWYoIWtlKXt0aGlzLnJlbmFtZUVycm9yPSJOYW1lIGNhbm5vdCBiZSBlbXB0eSI7cmV0dXJufWlmKGtlLmluY2x1ZGVzKCIvIikpe3RoaXMucmVuYW1lRXJyb3I9J05hbWUgY2Fubm90IGNvbnRhaW4gIi8iJztyZXR1cm59dGhpcy5yZW5hbWVJblByb2dyZXNzPSEwLHRoaXMucmVuYW1lRXJyb3I9bnVsbDt0cnl7bGV0IGV0PVRjKHRoaXMucmVuYW1lU291cmNlLmtleSkra2UrKHRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyPyIvIjoiIiksUHQ7dGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI/UHQ9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LGV0KTpQdD1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLnJlbmFtZVNvdXJjZS5rZXksZXQpLFB0LnN1Y2Nlc3M/KHRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKSxhd2FpdCB0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCkpOnRoaXMucmVuYW1lRXJyb3I9UHQuZXJyb3J8fCJSZW5hbWUgZmFpbGVkIn1jYXRjaCgkZSl7dGhpcy5yZW5hbWVFcnJvcj1gRXJyb3I6ICR7JGV9YH10aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9Y2xvc2VSZW5hbWVEaWFsb2coKXt0aGlzLnNob3dSZW5hbWVEaWFsb2c9ITEsdGhpcy5yZW5hbWVTb3VyY2U9bnVsbCx0aGlzLnJlbmFtZU5hbWU9IiIsdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMX1yZW5kZXJSZW5hbWVEaWFsb2coKXtpZighdGhpcy5zaG93UmVuYW1lRGlhbG9nfHwhdGhpcy5yZW5hbWVTb3VyY2UpcmV0dXJuIiI7bGV0IGtlPXRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHskZT0+JGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj4ke2tlPyJSZW5hbWUgRm9sZGVyIjoiUmVuYW1lIEZpbGUifTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWxvY2F0aW9uIj4KICAgICAgICAgICAgTG9jYXRpb246ICR7dGhpcy5idWNrZXROYW1lfS8ke1RjKHRoaXMucmVuYW1lU291cmNlLmtleSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5hbWVFcnJvcj93YDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5yZW5hbWVFcnJvcn08L2Rpdj5gOiIifQogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQgcmVuYW1lLWRpYWxvZy1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHtrZT8iZm9sZGVyLW5hbWUiOiJmaWxlbmFtZS5leHQifQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnJlbmFtZU5hbWV9CiAgICAgICAgICAgIEBpbnB1dD0keyRlPT57dGhpcy5yZW5hbWVOYW1lPSRlLnRhcmdldC52YWx1ZSx0aGlzLnJlbmFtZUVycm9yPW51bGx9fQogICAgICAgICAgICBAa2V5ZG93bj0keyRlPT57JGUua2V5PT09IkVudGVyIiYmdGhpcy5leGVjdXRlUmVuYW1lKCksJGUua2V5PT09IkVzY2FwZSImJnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX19CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlUmVuYW1lKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKX0+CiAgICAgICAgICAgICAgJHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3M/IlJlbmFtaW5nLi4uIjoiUmVuYW1lIn0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1vdmVEaWFsb2coKXtpZighdGhpcy5zaG93TW92ZURpYWxvZ3x8IXRoaXMubW92ZVNvdXJjZSlyZXR1cm4iIjtsZXQga2U9anIodGhpcy5tb3ZlU291cmNlLmtleSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHtoZT0+aGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICR7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyPyJGb2xkZXIiOiJGaWxlIn08L2Rpdj4KCiAgICAgICAgICAke3RoaXMubW92ZUVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5tb3ZlRXJyb3J9PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtc3VtbWFyeSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Gcm9tOjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLXBhdGgiPiR7dGhpcy5tb3ZlU291cmNlLmtleX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Ubzo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZURlc3RpbmF0aW9ufSR7a2V9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj8iIjp3YAogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlTW92ZSgpfQogICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlSW5Qcm9ncmVzc30+CiAgICAgICAgICAgICAgICAke3RoaXMubW92ZUluUHJvZ3Jlc3M/Ik1vdmluZy4uLiI6Ik1vdmUifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlUGlja2VyRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2d8fCF0aGlzLm1vdmVQaWNrZXJTb3VyY2UpcmV0dXJuIiI7bGV0IGtlPWpyKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLGhlPVRjKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyBtb3ZlLXBpY2tlci1kaWFsb2ciIEBjbGljaz0keyRlPT4kZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPk1vdmUgIiR7a2V9IiB0by4uLjwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1icmVhZGNydW1iIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCIiKX0+CiAgICAgICAgICAgICAgJHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgJHtzZyh0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4KS5tYXAoJGU9PndgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCRlKX0+CiAgICAgICAgICAgICAgICAke2pyKCRlKX0KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWxpc3QiPgogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlckxvYWRpbmc/d2A8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPkxvYWRpbmcuLi48L2Rpdj5gOiIifQogICAgICAgICAgICAkeyF0aGlzLm1vdmVQaWNrZXJMb2FkaW5nJiZ0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoJGU9PiRlIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1lbXB0eSI+Tm8gc3ViZm9sZGVyczwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlclByZWZpeGVzLmZpbHRlcigkZT0+JGUhPT10aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KS5tYXAoJGU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItaXRlbSIKICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCRlKX0KICAgICAgICAgICAgICAgICAgICAgQGRibGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKCRlKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke2pyKCRlKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RNb3ZlRGVzdGluYXRpb24odGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD09PWhlfT4KICAgICAgICAgICAgICBNb3ZlIEhlcmUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUNyZWF0ZSgpe2lmKCF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBrZT10aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpLGhlO3RoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmb2xkZXIiP2hlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K2tlKyIvLmtlZXAiOmhlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K2tlO2xldCAkZT1rZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIixldD10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/ZmYoJGUpOiJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLFB0PXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmaWxlIj9UdygkZSk6IiI7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSxoZSxidG9hKFB0KSxldCkmJih0aGlzLnNob3dDcmVhdGVEaWFsb2c9ITEsYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgodGhpcy5jcmVhdGVEaWFsb2dQcmVmaXgpKX1yZW5kZXJDcmVhdGVEaWFsb2coKXtpZighdGhpcy5zaG93Q3JlYXRlRGlhbG9nKXJldHVybiIiO2xldCBrZT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIixoZT1rZT8iQ3JlYXRlIE5ldyBGb2xkZXIiOiJDcmVhdGUgTmV3IEZpbGUiLCRlPWtlPyJmb2xkZXItbmFtZSBvciBwYXRoL3RvL2ZvbGRlciI6ImZpbGVuYW1lLnR4dCBvciBwYXRoL3RvL2ZpbGUudHh0IjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7ZXQ9PmV0LnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHtoZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHt0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7JGV9CiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuY3JlYXRlRGlhbG9nTmFtZX0KICAgICAgICAgICAgQGlucHV0PSR7ZXQ9PnRoaXMuY3JlYXRlRGlhbG9nTmFtZT1ldC50YXJnZXQudmFsdWV9CiAgICAgICAgICAgIEBrZXlkb3duPSR7ZXQ9PmV0LmtleT09PSJFbnRlciImJnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWhpbnQiPgogICAgICAgICAgICBVc2UgIi8iIHRvIGNyZWF0ZSBuZXN0ZWQgJHtrZT8iZm9sZGVycyI6InBhdGgifSAoZS5nLiwgJHtrZT8icGFyZW50L2NoaWxkIjoiZm9sZGVyL2ZpbGUudHh0In0pCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCl9CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBDcmVhdGUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlcigpe3JldHVybiB0aGlzLmxvYWRpbmcmJnRoaXMuY29sdW1ucy5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0ibG9hZGluZyI+TG9hZGluZy4uLjwvZGl2PmA6d2AKICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5jb2x1bW5zLm1hcCgoa2UsaGUpPT50aGlzLnJlbmRlckNvbHVtbldyYXBwZXIoa2UsaGUpKX0KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5yZW5kZXJDcmVhdGVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVQaWNrZXJEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlclJlbmFtZURpYWxvZygpfQogICAgYH1yZW5kZXJDb2x1bW5XcmFwcGVyKGtlLGhlKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY29sdW1uLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5yZW5kZXJDb2x1bW4oa2UsaGUpfQogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlICR7dGhpcy5yZXNpemluZz8uY29sdW1uSW5kZXg9PT1oZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICBAbW91c2Vkb3duPSR7JGU9PnRoaXMuc3RhcnRSZXNpemUoJGUsaGUpfQogICAgICAgID48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNvbHVtbihrZSxoZSl7bGV0ICRlPWtlLnByZWZpeD9qcihrZS5wcmVmaXgpOnRoaXMuYnVja2V0TmFtZTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJjb2x1bW4gJHt0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9PT1oZT8iZHJhZy1vdmVyIjoiIn0iCiAgICAgICAgc3R5bGU9IndpZHRoOiAke2tlLndpZHRofXB4IgogICAgICAgIEBkcmFnZW50ZXI9JHtldD0+dGhpcy5oYW5kbGVDb2x1bW5EcmFnRW50ZXIoZXQsaGUpfQogICAgICAgIEBkcmFnb3Zlcj0ke2V0PT50aGlzLmhhbmRsZUNvbHVtbkRyYWdPdmVyKGV0KX0KICAgICAgICBAZHJhZ2xlYXZlPSR7ZXQ9PnRoaXMuaGFuZGxlQ29sdW1uRHJhZ0xlYXZlKGV0LGhlKX0KICAgICAgICBAZHJvcD0ke2V0PT50aGlzLmhhbmRsZUNvbHVtbkRyb3AoZXQsaGUpfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uLWhlYWRlciIgdGl0bGU9JHtrZS5wcmVmaXh8fHRoaXMuYnVja2V0TmFtZX0+CiAgICAgICAgICAkeyRlfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi1pdGVtcyIgQGNvbnRleHRtZW51PSR7ZXQ9PnRoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KGV0LGhlKX0+CiAgICAgICAgICAke2tlLnByZWZpeGVzLmxlbmd0aD09PTAmJmtlLm9iamVjdHMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5FbXB0eSBmb2xkZXI8L2Rpdj5gOiIifQogICAgICAgICAgJHtrZS5wcmVmaXhlcy5tYXAoZXQ9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImNvbHVtbi1pdGVtIGZvbGRlciAke2tlLnNlbGVjdGVkSXRlbT09PWV0PyJzZWxlY3RlZCI6IiJ9ICR7dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD09PWV0PyJkcmFnLXRhcmdldCI6IiJ9IgogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0Rm9sZGVyKGhlLGV0KX0KICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke1B0PT50aGlzLmhhbmRsZUZvbGRlckNvbnRleHRNZW51KFB0LGhlLGV0KX0KICAgICAgICAgICAgICAgIEBkcmFnc3RhcnQ9JHtQdD0+dGhpcy5oYW5kbGVJdGVtRHJhZ1N0YXJ0KFB0LGV0LCEwKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7UHQ9PnRoaXMuaGFuZGxlSXRlbURyYWdFbmQoUHQpfQogICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke1B0PT50aGlzLmhhbmRsZUZvbGRlckRyYWdFbnRlcihQdCxldCl9CiAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHtQdD0+dGhpcy5oYW5kbGVGb2xkZXJEcmFnT3ZlcihQdCl9CiAgICAgICAgICAgICAgICBAZHJhZ2xlYXZlPSR7UHQ9PnRoaXMuaGFuZGxlRm9sZGVyRHJhZ0xlYXZlKFB0LGV0KX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIgLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hbWUiPiR7anIoZXQpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNoZXZyb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjkgMTggMTUgMTIgOSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgJHtrZS5vYmplY3RzLm1hcChldD0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iY29sdW1uLWl0ZW0gJHtrZS5zZWxlY3RlZEl0ZW09PT1ldC5rZXk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9InRydWUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RGaWxlKGhlLGV0LmtleSl9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtQdD0+dGhpcy5oYW5kbGVGaWxlQ29udGV4dE1lbnUoUHQsaGUsZXQua2V5KX0KICAgICAgICAgICAgICAgIEBkcmFnc3RhcnQ9JHtQdD0+dGhpcy5oYW5kbGVJdGVtRHJhZ1N0YXJ0KFB0LGV0LmtleSwhMSl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke1B0PT50aGlzLmhhbmRsZUl0ZW1EcmFnRW5kKFB0KX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSIke3RoaXMuZ2V0RmlsZUljb24oZXQua2V5KX0iIC8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke2pyKGV0LmtleSl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD09PWhlP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkcmFnLWhpbnQiPgogICAgICAgICAgICAke3RoaXMuZHJhZ2dlZEl0ZW0/dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD9gTW92ZSB0byAke2pyKHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXgpfWA6Ik1vdmUgaGVyZSI6dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD9gRHJvcCB0byB1cGxvYWQgaW50byAke2pyKHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXgpfWA6IkRyb3AgdG8gdXBsb2FkIGhlcmUifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMudXBsb2FkaW5nP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtb3ZlcmxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC10ZXh0Ij5VcGxvYWRpbmcuLi48L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLnVwbG9hZFByb2dyZXNzP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXByb2dyZXNzIj4ke3RoaXMudXBsb2FkUHJvZ3Jlc3MuY3VycmVudH0gLyAke3RoaXMudXBsb2FkUHJvZ3Jlc3MudG90YWx9IGZpbGVzPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1R0KGEscil9fTtyZXR1cm4gTGQ9YX0pKCl9KTt2YXIgamEsRnQsT1hyLHo3dD11KCgpPT57dmUoKTtzcygpO2x0KCk7TnJlKCk7amE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LEZ0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxPWHI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXN0b3JhZ2Uta2V5cyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXSxhZSxYPVtdLEo9W10seGUsSz1bXSxWPVtdLGxlLG5lPVtdLGVlPVtdLHplLEhlPVtdLEdlPVtdLG90LERlPVtdLF9lPVtdLG9lLHNlPVtdLGNlPVtdLFRlLHFlPVtdLG50PVtdLHZ0LExlPVtdLHdlPVtdLE9lLGdlPVtdLGJlPVtdLEllLHl0PVtdLHd0PVtdLFl0LHphPVtdLFBhPVtdLFlpLEVlPVtdLGplPVtdLHNyLHJhPVtdLHBhPVtdLHlhLGZhPVtdLENuPVtdO3ZhciB6bj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VLZXlzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEFlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLEI9W2llKCldLEE9W2llKCldLFk9W2llKCldLGRlPVtpZSgpXSxmZT1baWUoKV0scGU9W2llKCldLEg9W2llKCldLGFlPVtpZSgpXSx4ZT1baWUoKV0sbGU9W2llKCldLHplPVtpZSgpXSxvdD1baWUoKV0sb2U9W2llKCldLFRlPVtpZSgpXSx2dD1baWUoKV0sT2U9W2llKCldLEllPVtpZSgpXSxZdD1baWUoKV0sWWk9W2llKCldLHNyPVtpZSgpXSx5YT1baWUoKV0samEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJkYXRhUHJvdmlkZXIiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5kYXRhUHJvdmlkZXI9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LG8sbCksamEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iYnVja2V0TmFtZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmJ1Y2tldE5hbWUsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5idWNrZXROYW1lPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxkLGYpLGphKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+ImN1cnJlbnRQcmVmaXgiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5jdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UuY3VycmVudFByZWZpeD1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0saCxtKSxqYSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJyZWZyZXNoS2V5ImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UucmVmcmVzaEtleSwiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLnJlZnJlc2hLZXk9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LGIsZyksamEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxLZXlzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iYWxsS2V5cyJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmFsbEtleXMsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5hbGxLZXlzPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxrLE0pLGphKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJwcmVmaXhlcyJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLnByZWZpeGVzLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UucHJlZml4ZXM9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LF8sUyksamEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibG9hZGluZyJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmxvYWRpbmcsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5sb2FkaW5nPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxMLEUpLGphKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJzZWxlY3RlZEtleSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLnNlbGVjdGVkS2V5LCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2Uuc2VsZWN0ZWRLZXk9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LEMseiksamEodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iZmlsdGVyVGV4dCJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmZpbHRlclRleHQsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5maWx0ZXJUZXh0PVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSwkLEYpLGphKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NyZWF0ZURpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+InNob3dDcmVhdGVEaWFsb2ciaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5zaG93Q3JlYXRlRGlhbG9nLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2Uuc2hvd0NyZWF0ZURpYWxvZz1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0sRyxaKSxqYSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iY3JlYXRlRGlhbG9nVHlwZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmNyZWF0ZURpYWxvZ1R5cGUsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5jcmVhdGVEaWFsb2dUeXBlPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxELFEpLGphKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ1ByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+ImNyZWF0ZURpYWxvZ1ByZWZpeCJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmNyZWF0ZURpYWxvZ1ByZWZpeCwiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLmNyZWF0ZURpYWxvZ1ByZWZpeD1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0sVCxXKSxqYSh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iY3JlYXRlRGlhbG9nTmFtZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmNyZWF0ZURpYWxvZ05hbWUsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5jcmVhdGVEaWFsb2dOYW1lPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxtZSxxKSxqYSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ic2hvd01vdmVEaWFsb2ciaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5zaG93TW92ZURpYWxvZywiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLnNob3dNb3ZlRGlhbG9nPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxVLGopLGphKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJtb3ZlU291cmNlImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UubW92ZVNvdXJjZSwiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLm1vdmVTb3VyY2U9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LFgsSiksamEodGhpcyxudWxsLHhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZURlc3RpbmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibW92ZURlc3RpbmF0aW9uImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UubW92ZURlc3RpbmF0aW9uLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UubW92ZURlc3RpbmF0aW9uPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxLLFYpLGphKHRoaXMsbnVsbCxsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibW92ZUluUHJvZ3Jlc3MiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5tb3ZlSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLm1vdmVJblByb2dyZXNzPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxuZSxlZSksamEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibW92ZUVycm9yImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UubW92ZUVycm9yLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UubW92ZUVycm9yPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxIZSxHZSksamEodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVQaWNrZXJEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJzaG93TW92ZVBpY2tlckRpYWxvZyJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLnNob3dNb3ZlUGlja2VyRGlhbG9nLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2Uuc2hvd01vdmVQaWNrZXJEaWFsb2c9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LERlLF9lKSxqYSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibW92ZVBpY2tlclNvdXJjZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLm1vdmVQaWNrZXJTb3VyY2UsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5tb3ZlUGlja2VyU291cmNlPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxzZSxjZSksamEodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LHFlLG50KSxqYSh0aGlzLG51bGwsdnQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyUHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJtb3ZlUGlja2VyUHJlZml4ZXMiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5tb3ZlUGlja2VyUHJlZml4ZXMsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5tb3ZlUGlja2VyUHJlZml4ZXM9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LExlLHdlKSxqYSh0aGlzLG51bGwsT2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+Im1vdmVQaWNrZXJMb2FkaW5nImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UubW92ZVBpY2tlckxvYWRpbmcsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5tb3ZlUGlja2VyTG9hZGluZz1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0sZ2UsYmUpLGphKHRoaXMsbnVsbCxJZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dSZW5hbWVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJzaG93UmVuYW1lRGlhbG9nImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2Uuc2hvd1JlbmFtZURpYWxvZywiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLnNob3dSZW5hbWVEaWFsb2c9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LHl0LHd0KSxqYSh0aGlzLG51bGwsWXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJyZW5hbWVTb3VyY2UiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5yZW5hbWVTb3VyY2UsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5yZW5hbWVTb3VyY2U9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LHphLFBhKSxqYSh0aGlzLG51bGwsWWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4icmVuYW1lTmFtZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLnJlbmFtZU5hbWUsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5yZW5hbWVOYW1lPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxFZSxqZSksamEodGhpcyxudWxsLHNyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+InJlbmFtZUluUHJvZ3Jlc3MiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5yZW5hbWVJblByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UucmVuYW1lSW5Qcm9ncmVzcz1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0scmEscGEpLGphKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4icmVuYW1lRXJyb3IiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5yZW5hbWVFcnJvciwiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLnJlbmFtZUVycm9yPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxmYSxDbiksamEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6QWV9LG51bGwsciksem49YT1lLnZhbHVlLEFlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkFlfSl9I2U9RnQodGhpcyxvLG51bGwpO2dldCBkYXRhUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YVByb3ZpZGVyKEFlKXt0aGlzLiNlPUFlfSN0PShGdCh0aGlzLGwpLEZ0KHRoaXMsZCwiIikpO2dldCBidWNrZXROYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJ1Y2tldE5hbWUoQWUpe3RoaXMuI3Q9QWV9I3I9KEZ0KHRoaXMsZiksRnQodGhpcyxoLCIiKSk7Z2V0IGN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY3VycmVudFByZWZpeChBZSl7dGhpcy4jcj1BZX0jYT0oRnQodGhpcyxtKSxGdCh0aGlzLGIsMCkpO2dldCByZWZyZXNoS2V5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJlZnJlc2hLZXkoQWUpe3RoaXMuI2E9QWV9I2k9KEZ0KHRoaXMsZyksRnQodGhpcyxrLFtdKSk7Z2V0IGFsbEtleXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWxsS2V5cyhBZSl7dGhpcy4jaT1BZX0jcz0oRnQodGhpcyxNKSxGdCh0aGlzLF8sW10pKTtnZXQgcHJlZml4ZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgcHJlZml4ZXMoQWUpe3RoaXMuI3M9QWV9I249KEZ0KHRoaXMsUyksRnQodGhpcyxMLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbG9hZGluZyhBZSl7dGhpcy4jbj1BZX0jbz0oRnQodGhpcyxFKSxGdCh0aGlzLEMsIiIpKTtnZXQgc2VsZWN0ZWRLZXkoKXtyZXR1cm4gdGhpcy4jb31zZXQgc2VsZWN0ZWRLZXkoQWUpe3RoaXMuI289QWV9I2w9KEZ0KHRoaXMseiksRnQodGhpcywkLCIiKSk7Z2V0IGZpbHRlclRleHQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZmlsdGVyVGV4dChBZSl7dGhpcy4jbD1BZX0jYz0oRnQodGhpcyxGKSxGdCh0aGlzLEcsITEpKTtnZXQgc2hvd0NyZWF0ZURpYWxvZygpe3JldHVybiB0aGlzLiNjfXNldCBzaG93Q3JlYXRlRGlhbG9nKEFlKXt0aGlzLiNjPUFlfSNkPShGdCh0aGlzLFopLEZ0KHRoaXMsRCwiZm9sZGVyIikpO2dldCBjcmVhdGVEaWFsb2dUeXBlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGNyZWF0ZURpYWxvZ1R5cGUoQWUpe3RoaXMuI2Q9QWV9I3U9KEZ0KHRoaXMsUSksRnQodGhpcyxULCIiKSk7Z2V0IGNyZWF0ZURpYWxvZ1ByZWZpeCgpe3JldHVybiB0aGlzLiN1fXNldCBjcmVhdGVEaWFsb2dQcmVmaXgoQWUpe3RoaXMuI3U9QWV9I3A9KEZ0KHRoaXMsVyksRnQodGhpcyxtZSwiIikpO2dldCBjcmVhdGVEaWFsb2dOYW1lKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGNyZWF0ZURpYWxvZ05hbWUoQWUpe3RoaXMuI3A9QWV9I2Y9KEZ0KHRoaXMscSksRnQodGhpcyxVLCExKSk7Z2V0IHNob3dNb3ZlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNob3dNb3ZlRGlhbG9nKEFlKXt0aGlzLiNmPUFlfSNoPShGdCh0aGlzLGopLEZ0KHRoaXMsWCxudWxsKSk7Z2V0IG1vdmVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jaH1zZXQgbW92ZVNvdXJjZShBZSl7dGhpcy4jaD1BZX0jbT0oRnQodGhpcyxKKSxGdCh0aGlzLEssIiIpKTtnZXQgbW92ZURlc3RpbmF0aW9uKCl7cmV0dXJuIHRoaXMuI219c2V0IG1vdmVEZXN0aW5hdGlvbihBZSl7dGhpcy4jbT1BZX0jZz0oRnQodGhpcyxWKSxGdCh0aGlzLG5lLCExKSk7Z2V0IG1vdmVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1vdmVJblByb2dyZXNzKEFlKXt0aGlzLiNnPUFlfSNiPShGdCh0aGlzLGVlKSxGdCh0aGlzLEhlLG51bGwpKTtnZXQgbW92ZUVycm9yKCl7cmV0dXJuIHRoaXMuI2J9c2V0IG1vdmVFcnJvcihBZSl7dGhpcy4jYj1BZX0jeD0oRnQodGhpcyxHZSksRnQodGhpcyxEZSwhMSkpO2dldCBzaG93TW92ZVBpY2tlckRpYWxvZygpe3JldHVybiB0aGlzLiN4fXNldCBzaG93TW92ZVBpY2tlckRpYWxvZyhBZSl7dGhpcy4jeD1BZX0jdj0oRnQodGhpcyxfZSksRnQodGhpcyxzZSxudWxsKSk7Z2V0IG1vdmVQaWNrZXJTb3VyY2UoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbW92ZVBpY2tlclNvdXJjZShBZSl7dGhpcy4jdj1BZX0jeT0oRnQodGhpcyxjZSksRnQodGhpcyxxZSwiIikpO2dldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeChBZSl7dGhpcy4jeT1BZX0jdz0oRnQodGhpcyxudCksRnQodGhpcyxMZSxbXSkpO2dldCBtb3ZlUGlja2VyUHJlZml4ZXMoKXtyZXR1cm4gdGhpcy4jd31zZXQgbW92ZVBpY2tlclByZWZpeGVzKEFlKXt0aGlzLiN3PUFlfSNrPShGdCh0aGlzLHdlKSxGdCh0aGlzLGdlLCExKSk7Z2V0IG1vdmVQaWNrZXJMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2t9c2V0IG1vdmVQaWNrZXJMb2FkaW5nKEFlKXt0aGlzLiNrPUFlfSNTPShGdCh0aGlzLGJlKSxGdCh0aGlzLHl0LCExKSk7Z2V0IHNob3dSZW5hbWVEaWFsb2coKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd1JlbmFtZURpYWxvZyhBZSl7dGhpcy4jUz1BZX0jTT0oRnQodGhpcyx3dCksRnQodGhpcyx6YSxudWxsKSk7Z2V0IHJlbmFtZVNvdXJjZSgpe3JldHVybiB0aGlzLiNNfXNldCByZW5hbWVTb3VyY2UoQWUpe3RoaXMuI009QWV9I0M9KEZ0KHRoaXMsUGEpLEZ0KHRoaXMsRWUsIiIpKTtnZXQgcmVuYW1lTmFtZSgpe3JldHVybiB0aGlzLiNDfXNldCByZW5hbWVOYW1lKEFlKXt0aGlzLiNDPUFlfSN6PShGdCh0aGlzLGplKSxGdCh0aGlzLHJhLCExKSk7Z2V0IHJlbmFtZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jen1zZXQgcmVuYW1lSW5Qcm9ncmVzcyhBZSl7dGhpcy4jej1BZX0jXz0oRnQodGhpcyxwYSksRnQodGhpcyxmYSxudWxsKSk7Z2V0IHJlbmFtZUVycm9yKCl7cmV0dXJuIHRoaXMuI199c2V0IHJlbmFtZUVycm9yKEFlKXt0aGlzLiNfPUFlfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxOZSxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAua2V5cy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM0MDQwNDAiKX07CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAua2V5cy1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICB9CgogICAgICB0aGVhZCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMWExYTFhIil9OwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIHRoIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNjY2Iil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMmEyYTNlIil9OwogICAgICB9CgogICAgICB0cjpob3ZlciB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpIil9OwogICAgICB9CgogICAgICB0ci5zZWxlY3RlZCB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5rZXktY2VsbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmtleS1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5rZXktbmFtZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2l6ZS1jZWxsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLmRpYWxvZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMWUxZTFlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtaW4td2lkdGg6IDQwMHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgfQoKICAgICAgLmRpYWxvZy10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWxvY2F0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxNDE0MTQiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1oaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGlhbG9nLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTA1MDUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBNb3ZlIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtc3VtbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLm1vdmUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICB9CgogICAgICAubW92ZS1wYXRoIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLm1vdmUtZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLyogTW92ZSBwaWNrZXIgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1waWNrZXItZGlhbG9nIHsKICAgICAgICBtaW4td2lkdGg6IDQ1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX11cGRhdGVkKEFlKXsoQWUuaGFzKCJidWNrZXROYW1lIil8fEFlLmhhcygiY3VycmVudFByZWZpeCIpfHxBZS5oYXMoInJlZnJlc2hLZXkiKSkmJnRoaXMubG9hZE9iamVjdHMoKX1hc3luYyBsb2FkT2JqZWN0cygpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBBZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5jdXJyZW50UHJlZml4LCIvIik7dGhpcy5hbGxLZXlzPUFlLm9iamVjdHMsdGhpcy5wcmVmaXhlcz1BZS5wcmVmaXhlc31jYXRjaChBZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBvYmplY3RzOiIsQWUpLHRoaXMuYWxsS2V5cz1bXSx0aGlzLnByZWZpeGVzPVtdfXRoaXMubG9hZGluZz0hMX19aGFuZGxlRmlsdGVySW5wdXQoQWUpe3RoaXMuZmlsdGVyVGV4dD1BZS50YXJnZXQudmFsdWV9c2VsZWN0S2V5KEFlLENlKXt0aGlzLnNlbGVjdGVkS2V5PUFlLENlP3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5hdmlnYXRlIix7ZGV0YWlsOntwcmVmaXg6QWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSk6dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5LXNlbGVjdGVkIix7ZGV0YWlsOntrZXk6QWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0IGZpbHRlcmVkSXRlbXMoKXtsZXQgQWU9dGhpcy5maWx0ZXJUZXh0LnRvTG93ZXJDYXNlKCksQ2U9dGhpcy5wcmVmaXhlcy5maWx0ZXIoRHI9PiFBZXx8anIoRHIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoQWUpKS5tYXAoRHI9Pih7a2V5OkRyLGlzRm9sZGVyOiEwLHNpemU6dm9pZCAwfSkpLFllPXRoaXMuYWxsS2V5cy5maWx0ZXIoRHI9PiFBZXx8anIoRHIua2V5KS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKEFlKSkubWFwKERyPT4oe2tleTpEci5rZXksaXNGb2xkZXI6ITEsc2l6ZTpEci5zaXplfSkpO3JldHVyblsuLi5DZSwuLi5ZZV19aGFuZGxlSXRlbUNvbnRleHRNZW51KEFlLENlLFllKXt0aGlzLmRhdGFQcm92aWRlciYmKEFlLnByZXZlbnREZWZhdWx0KCksWWU/Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoQWUsW3tuYW1lOiJPcGVuIixpY29uTmFtZToibHVjaWRlOmZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEtleShDZSwhMCl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgUGF0aCIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoQ2UpfSwiYWN0aW9uIil9LHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5SZW5hbWVEaWFsb2coQ2UsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJNb3ZlIHRvLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlcklucHV0IixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5Nb3ZlUGlja2VyRGlhbG9nKENlLCEwKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTmV3IEZvbGRlciBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLENlKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsQ2UpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbmZpcm0oYERlbGV0ZSBmb2xkZXIgIiR7anIoQ2UpfSIgYW5kIGFsbCBpdHMgY29udGVudHM/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsQ2UpJiZhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCl9LCJhY3Rpb24iKX1dKTpDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhBZSxbe25hbWU6IlByZXZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5zZWxlY3RLZXkoQ2UsITEpfSwiYWN0aW9uIil9LHtuYW1lOiJEb3dubG9hZCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBEcj1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRPYmplY3RVcmwodGhpcy5idWNrZXROYW1lLENlKSxFcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7RXMuaHJlZj1EcixFcy5kb3dubG9hZD1qcihDZSksRXMuY2xpY2soKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChDZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhDZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coQ2UsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZpbGUgIiR7anIoQ2UpfSI/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsQ2UpJiZhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KEFlKXtBZS50YXJnZXQuY2xvc2VzdCgidHIiKXx8KEFlLnByZXZlbnREZWZhdWx0KCksQ3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoQWUsW3tuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZm9sZGVyIix0aGlzLmN1cnJlbnRQcmVmaXgpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToibHVjaWRlOmZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZpbGUiLHRoaXMuY3VycmVudFByZWZpeCksImFjdGlvbiIpfV0pKX1vcGVuQ3JlYXRlRGlhbG9nKEFlLENlKXt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9QWUsdGhpcy5jcmVhdGVEaWFsb2dQcmVmaXg9Q2UsdGhpcy5jcmVhdGVEaWFsb2dOYW1lPSIiLHRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMH1hc3luYyBoYW5kbGVDcmVhdGUoKXtpZighdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgQWU9dGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKSxDZTt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIj9DZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCtBZSsiLy5rZWVwIjpDZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCtBZTtsZXQgWWU9QWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIsRHI9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP2ZmKFllKToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixFcz10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/VHcoWWUpOiIiO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsQ2UsYnRvYShFcyksRHIpJiYodGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExLGF3YWl0IHRoaXMubG9hZE9iamVjdHMoKSl9cmVuZGVyQ3JlYXRlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd0NyZWF0ZURpYWxvZylyZXR1cm4iIjtsZXQgQWU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciIsQ2U9QWU/IkNyZWF0ZSBOZXcgRm9sZGVyIjoiQ3JlYXRlIE5ldyBGaWxlIixZZT1BZT8iZm9sZGVyLW5hbWUgb3IgcGF0aC90by9mb2xkZXIiOiJmaWxlbmFtZS50eHQgb3IgcGF0aC90by9maWxlLnR4dCI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke0RyPT5Eci5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7Q2V9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXh9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke1llfQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNyZWF0ZURpYWxvZ05hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke0RyPT50aGlzLmNyZWF0ZURpYWxvZ05hbWU9RHIudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICBAa2V5ZG93bj0ke0RyPT5Eci5rZXk9PT0iRW50ZXIiJiZ0aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1oaW50Ij4KICAgICAgICAgICAgVXNlICIvIiB0byBjcmVhdGUgbmVzdGVkICR7QWU/ImZvbGRlcnMiOiJwYXRoIn0gKGUuZy4sICR7QWU/InBhcmVudC9jaGlsZCI6ImZvbGRlci9maWxlLnR4dCJ9KQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfQogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ3JlYXRlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBvcGVuTW92ZVBpY2tlckRpYWxvZyhBZSxDZSl7dGhpcy5tb3ZlUGlja2VyU291cmNlPXtrZXk6QWUsaXNGb2xkZXI6Q2V9LHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMCxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoIiIpfWFzeW5jIG5hdmlnYXRlTW92ZVBpY2tlcihBZSl7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD1BZSxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoQWUpfWFzeW5jIGxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoQWUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSEwO3RyeXtsZXQgQ2U9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLEFlLCIvIik7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9Q2UucHJlZml4ZXN9Y2F0Y2h7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119dGhpcy5tb3ZlUGlja2VyTG9hZGluZz0hMX19c2VsZWN0TW92ZURlc3RpbmF0aW9uKEFlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2UmJih0aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpLHRoaXMuaW5pdGlhdGVNb3ZlKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXksdGhpcy5tb3ZlUGlja2VyU291cmNlLmlzRm9sZGVyLEFlKSl9Y2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl7dGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMSx0aGlzLm1vdmVQaWNrZXJTb3VyY2U9bnVsbCx0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PSIiLHRoaXMubW92ZVBpY2tlclByZWZpeGVzPVtdfWluaXRpYXRlTW92ZShBZSxDZSxZZSl7bGV0IERyPV93KEFlLFllKTtpZighRHIudmFsaWQpe3RoaXMubW92ZVNvdXJjZT17a2V5OkFlLGlzRm9sZGVyOkNlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1ZZSx0aGlzLm1vdmVFcnJvcj1Eci5lcnJvcix0aGlzLnNob3dNb3ZlRGlhbG9nPSEwO3JldHVybn10aGlzLm1vdmVTb3VyY2U9e2tleTpBZSxpc0ZvbGRlcjpDZX0sdGhpcy5tb3ZlRGVzdGluYXRpb249WWUsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLnNob3dNb3ZlRGlhbG9nPSEwfWFzeW5jIGV4ZWN1dGVNb3ZlKCl7aWYoISghdGhpcy5tb3ZlU291cmNlfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLm1vdmVJblByb2dyZXNzPSEwO3RyeXtsZXQgQWU9anIodGhpcy5tb3ZlU291cmNlLmtleSksQ2U9dGhpcy5tb3ZlRGVzdGluYXRpb24rQWUsWWU7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyP1llPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXksQ2UpOlllPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXksQ2UpLFllLnN1Y2Nlc3M/KHRoaXMuY2xvc2VNb3ZlRGlhbG9nKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKTp0aGlzLm1vdmVFcnJvcj1ZZS5lcnJvcnx8Ik1vdmUgb3BlcmF0aW9uIGZhaWxlZCJ9Y2F0Y2goQWUpe3RoaXMubW92ZUVycm9yPWBFcnJvcjogJHtBZX1gfXRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9fWNsb3NlTW92ZURpYWxvZygpe3RoaXMuc2hvd01vdmVEaWFsb2c9ITEsdGhpcy5tb3ZlU291cmNlPW51bGwsdGhpcy5tb3ZlRGVzdGluYXRpb249IiIsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLm1vdmVJblByb2dyZXNzPSExfW9wZW5SZW5hbWVEaWFsb2coQWUsQ2Upe3RoaXMucmVuYW1lU291cmNlPXtrZXk6QWUsaXNGb2xkZXI6Q2V9LHRoaXMucmVuYW1lTmFtZT1qcihBZSksdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMuc2hvd1JlbmFtZURpYWxvZz0hMCx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgWWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucmVuYW1lLWRpYWxvZy1pbnB1dCIpO2lmKFllKWlmKFllLmZvY3VzKCksQ2UpWWUuc2VsZWN0KCk7ZWxzZXtsZXQgRHI9dGhpcy5yZW5hbWVOYW1lLmxhc3RJbmRleE9mKCIuIik7RHI+MD9ZZS5zZXRTZWxlY3Rpb25SYW5nZSgwLERyKTpZZS5zZWxlY3QoKX19KX1hc3luYyBleGVjdXRlUmVuYW1lKCl7aWYoIXRoaXMucmVuYW1lU291cmNlfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgQWU9dGhpcy5yZW5hbWVOYW1lLnRyaW0oKSxDZT1qcih0aGlzLnJlbmFtZVNvdXJjZS5rZXkpO2lmKEFlPT09Q2Upe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudCI7cmV0dXJufWlmKCFBZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBjYW5ub3QgYmUgZW1wdHkiO3JldHVybn1pZihBZS5pbmNsdWRlcygiLyIpKXt0aGlzLnJlbmFtZUVycm9yPSdOYW1lIGNhbm5vdCBjb250YWluICIvIic7cmV0dXJufXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMCx0aGlzLnJlbmFtZUVycm9yPW51bGw7dHJ5e2xldCBEcj1UYyh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpK0FlKyh0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLEVzO3RoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyP0VzPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSxEcik6RXM9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LERyKSxFcy5zdWNjZXNzPyh0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKTp0aGlzLnJlbmFtZUVycm9yPUVzLmVycm9yfHwiUmVuYW1lIGZhaWxlZCJ9Y2F0Y2goWWUpe3RoaXMucmVuYW1lRXJyb3I9YEVycm9yOiAke1llfWB9dGhpcy5yZW5hbWVJblByb2dyZXNzPSExfWNsb3NlUmVuYW1lRGlhbG9nKCl7dGhpcy5zaG93UmVuYW1lRGlhbG9nPSExLHRoaXMucmVuYW1lU291cmNlPW51bGwsdGhpcy5yZW5hbWVOYW1lPSIiLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9cmVuZGVyUmVuYW1lRGlhbG9nKCl7aWYoIXRoaXMuc2hvd1JlbmFtZURpYWxvZ3x8IXRoaXMucmVuYW1lU291cmNlKXJldHVybiIiO2xldCBBZT10aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7WWU9PlllLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHtBZT8iUmVuYW1lIEZvbGRlciI6IlJlbmFtZSBGaWxlIn08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHtUYyh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuYW1lRXJyb3I/d2A8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMucmVuYW1lRXJyb3J9PC9kaXY+YDoiIn0KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IHJlbmFtZS1kaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7QWU/ImZvbGRlci1uYW1lIjoiZmlsZW5hbWUuZXh0In0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5yZW5hbWVOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtZZT0+e3RoaXMucmVuYW1lTmFtZT1ZZS50YXJnZXQudmFsdWUsdGhpcy5yZW5hbWVFcnJvcj1udWxsfX0KICAgICAgICAgICAgQGtleWRvd249JHtZZT0+e1llLmtleT09PSJFbnRlciImJnRoaXMuZXhlY3V0ZVJlbmFtZSgpLFllLmtleT09PSJFc2NhcGUiJiZ0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc30+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZVJlbmFtZSgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc3x8IXRoaXMucmVuYW1lTmFtZS50cmltKCl9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5hbWVJblByb2dyZXNzPyJSZW5hbWluZy4uLiI6IlJlbmFtZSJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVEaWFsb2d8fCF0aGlzLm1vdmVTb3VyY2UpcmV0dXJuIiI7bGV0IEFlPWpyKHRoaXMubW92ZVNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7Q2U9PkNlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAke3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iRm9sZGVyIjoiRmlsZSJ9PC9kaXY+CgogICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMubW92ZUVycm9yfTwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLXN1bW1hcnkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+RnJvbTo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZVNvdXJjZS5rZXl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+VG86PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVEZXN0aW5hdGlvbn0ke0FlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/IiI6d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZU1vdmUoKX0KICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgICAgJHt0aGlzLm1vdmVJblByb2dyZXNzPyJNb3ZpbmcuLi4iOiJNb3ZlIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZVBpY2tlckRpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nfHwhdGhpcy5tb3ZlUGlja2VyU291cmNlKXJldHVybiIiO2xldCBBZT1qcih0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KSxDZT1UYyh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2cgbW92ZS1waWNrZXItZGlhbG9nIiBAY2xpY2s9JHtZZT0+WWUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICIke0FlfSIgdG8uLi48L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcigiIil9PgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7c2codGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCkubWFwKFllPT53YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihZZSl9PgogICAgICAgICAgICAgICAgJHtqcihZZSl9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nP3dgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5Mb2FkaW5nLi4uPC9kaXY+YDoiIn0KICAgICAgICAgICAgJHshdGhpcy5tb3ZlUGlja2VyTG9hZGluZyYmdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKFllPT5ZZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPk5vIHN1YmZvbGRlcnM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoWWU9PlllIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubWFwKFllPT53YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWl0ZW0iCiAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihZZSl9CiAgICAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbihZZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtqcihZZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9PT1DZX0+CiAgICAgICAgICAgICAgTW92ZSBIZXJlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ia2V5cy1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJGaWx0ZXIgZmlsZXMuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZmlsdGVyVGV4dH0KICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVGaWx0ZXJJbnB1dH0KICAgICAgICAgIC8+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImtleXMtbGlzdCIgQGNvbnRleHRtZW51PSR7QWU9PnRoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KEFlKX0+CiAgICAgICAgICAke3RoaXMubG9hZGluZz93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5Mb2FkaW5nLi4uPC9kaXY+YDp0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBvYmplY3RzIGZvdW5kPC9kaXY+YDp3YAogICAgICAgICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDEwMHB4OyI+U2l6ZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmZpbHRlcmVkSXRlbXMubWFwKEFlPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgIDx0cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5zZWxlY3RlZEtleT09PUFlLmtleT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEtleShBZS5rZXksQWUuaXNGb2xkZXIpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7Q2U9PnRoaXMuaGFuZGxlSXRlbUNvbnRleHRNZW51KENlLEFlLmtleSxBZS5pc0ZvbGRlcil9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZXktY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtBZS5pc0ZvbGRlcj93YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImtleS1pY29uIGZvbGRlci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJrZXktaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleS1uYW1lIj4ke2pyKEFlLmtleSl9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InNpemUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7QWUuaXNGb2xkZXI/Ii0iOnp3KEFlLnNpemUpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5yZW5kZXJDcmVhdGVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVQaWNrZXJEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlclJlbmFtZURpYWxvZygpfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRnQodGhpcyxDbil9c3RhdGlje0Z0KGEscil9fTtyZXR1cm4gem49YX0pKCl9KTt2YXIgUDEsWGEsUlhyLF83dD11KCgpPT57dmUoKTtsdCgpO05yZSgpO1AxPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxYYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUlhyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zdG9yYWdlLXByZXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlUHJldmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBVPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W2llKCldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLEI9W2llKCldLEE9W2llKCldLFk9W2llKCldLGRlPVtpZSgpXSxmZT1baWUoKV0scGU9W2llKCldLFAxKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJkYXRhUHJvdmlkZXIiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChqLGFlKT0+e2ouZGF0YVByb3ZpZGVyPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LG8sbCksUDEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJidWNrZXROYW1lImluIGosImhhcyIpLGdldDppKGo9PmouYnVja2V0TmFtZSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5idWNrZXROYW1lPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LGQsZiksUDEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvYmplY3RLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+Im9iamVjdEtleSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm9iamVjdEtleSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5vYmplY3RLZXk9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0saCxtKSxQMSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImxvYWRpbmciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmxvYWRpbmc9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sYixnKSxQMSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNhdmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2F2aW5nImluIGosImhhcyIpLGdldDppKGo9Pmouc2F2aW5nLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLnNhdmluZz1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxrLE0pLFAxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iY29udGVudCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmNvbnRlbnQsImdldCIpLHNldDppKChqLGFlKT0+e2ouY29udGVudD1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxfLFMpLFAxKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3JpZ2luYWxUZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ib3JpZ2luYWxUZXh0Q29udGVudCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm9yaWdpbmFsVGV4dENvbnRlbnQsImdldCIpLHNldDppKChqLGFlKT0+e2oub3JpZ2luYWxUZXh0Q29udGVudD1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxMLEUpLFAxKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaGFzQ2hhbmdlcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmhhc0NoYW5nZXMsImdldCIpLHNldDppKChqLGFlKT0+e2ouaGFzQ2hhbmdlcz1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxDLHopLFAxKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iZWRpdGluZyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmVkaXRpbmcsImdldCIpLHNldDppKChqLGFlKT0+e2ouZWRpdGluZz1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSwkLEYpLFAxKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImNvbnRlbnRUeXBlImluIGosImhhcyIpLGdldDppKGo9PmouY29udGVudFR5cGUsImdldCIpLHNldDppKChqLGFlKT0+e2ouY29udGVudFR5cGU9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sRyxaKSxQMSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iZmlsZVNpemUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5maWxlU2l6ZSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5maWxlU2l6ZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxELFEpLFAxKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhc3RNb2RpZmllZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibGFzdE1vZGlmaWVkImluIGosImhhcyIpLGdldDppKGo9PmoubGFzdE1vZGlmaWVkLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmxhc3RNb2RpZmllZD1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxULFcpLFAxKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJlcnJvciJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmVycm9yLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmVycm9yPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LG1lLHEpLFAxKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlV9LG51bGwsciksSD1hPWUudmFsdWUsVSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpVfSl9I2U9WGEodGhpcyxvLG51bGwpO2dldCBkYXRhUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YVByb3ZpZGVyKFUpe3RoaXMuI2U9VX0jdD0oWGEodGhpcyxsKSxYYSh0aGlzLGQsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKFUpe3RoaXMuI3Q9VX0jcj0oWGEodGhpcyxmKSxYYSh0aGlzLGgsIiIpKTtnZXQgb2JqZWN0S2V5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9iamVjdEtleShVKXt0aGlzLiNyPVV9I2E9KFhhKHRoaXMsbSksWGEodGhpcyxiLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbG9hZGluZyhVKXt0aGlzLiNhPVV9I2k9KFhhKHRoaXMsZyksWGEodGhpcyxrLCExKSk7Z2V0IHNhdmluZygpe3JldHVybiB0aGlzLiNpfXNldCBzYXZpbmcoVSl7dGhpcy4jaT1VfSNzPShYYSh0aGlzLE0pLFhhKHRoaXMsXywiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbnRlbnQoVSl7dGhpcy4jcz1VfSNuPShYYSh0aGlzLFMpLFhhKHRoaXMsTCwiIikpO2dldCBvcmlnaW5hbFRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuI259c2V0IG9yaWdpbmFsVGV4dENvbnRlbnQoVSl7dGhpcy4jbj1VfSNvPShYYSh0aGlzLEUpLFhhKHRoaXMsQywhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI299c2V0IGhhc0NoYW5nZXMoVSl7dGhpcy4jbz1VfSNsPShYYSh0aGlzLHopLFhhKHRoaXMsJCwhMSkpO2dldCBlZGl0aW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGVkaXRpbmcoVSl7dGhpcy4jbD1VfSNjPShYYSh0aGlzLEYpLFhhKHRoaXMsRywiIikpO2dldCBjb250ZW50VHlwZSgpe3JldHVybiB0aGlzLiNjfXNldCBjb250ZW50VHlwZShVKXt0aGlzLiNjPVV9I2Q9KFhhKHRoaXMsWiksWGEodGhpcyxELDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZmlsZVNpemUoVSl7dGhpcy4jZD1VfSN1PShYYSh0aGlzLFEpLFhhKHRoaXMsVCwiIikpO2dldCBsYXN0TW9kaWZpZWQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbGFzdE1vZGlmaWVkKFUpe3RoaXMuI3U9VX0jcD0oWGEodGhpcyxXKSxYYSh0aGlzLG1lLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGVycm9yKFUpe3RoaXMuI3A9VX1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMsTmUscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAucHJldmlldy1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5tZXRhLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50IGRlZXMtcHJldmlldyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50LmNvZGUtZWRpdG9yIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQuY29kZS1lZGl0b3IgZGVlcy1pbnB1dC1jb2RlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0biB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0MDQwNDAiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2UwZTBlMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICBib3JkZXItY29sb3I6ICNlZjQ0NDQ7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2I4MmY2OwogICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC40KTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4ucHJpbWFyeTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnVuc2F2ZWQtaW5kaWNhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTEsIDE5MSwgMzYsIDAuMyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnVuc2F2ZWQtZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmJiZjI0OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgc3ZnIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5lcnJvci1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgIGBdO3VwZGF0ZWQoVSl7KFUuaGFzKCJvYmplY3RLZXkiKXx8VS5oYXMoImJ1Y2tldE5hbWUiKSkmJih0aGlzLm9iamVjdEtleT90aGlzLmxvYWRPYmplY3QoKToodGhpcy5jb250ZW50PSIiLHRoaXMuY29udGVudFR5cGU9IiIsdGhpcy5lcnJvcj0iIix0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnQ9IiIsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMSkpfWFzeW5jIGxvYWRPYmplY3QoKXtpZighKCF0aGlzLm9iamVjdEtleXx8IXRoaXMuYnVja2V0TmFtZXx8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMTt0cnl7bGV0IFU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZ2V0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSk7aWYoIVUpe3RoaXMuZXJyb3I9Ik9iamVjdCBub3QgZm91bmQiLHRoaXMubG9hZGluZz0hMTtyZXR1cm59dGhpcy5jb250ZW50PVUuY29udGVudHx8IiIsdGhpcy5jb250ZW50VHlwZT1VLmNvbnRlbnRUeXBlfHwiIix0aGlzLmZpbGVTaXplPVUuc2l6ZXx8MCx0aGlzLmxhc3RNb2RpZmllZD1VLmxhc3RNb2RpZmllZHx8IiIsdGhpcy5pc1RleHQoKSYmKHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD10aGlzLmdldFRleHRDb250ZW50KCkpfWNhdGNoKFUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgb2JqZWN0OiIsVSksdGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgb2JqZWN0In10aGlzLmxvYWRpbmc9ITF9fWZvcm1hdERhdGUoVSl7cmV0dXJuIFU/bmV3IERhdGUoVSkudG9Mb2NhbGVTdHJpbmcoKToiLSJ9aXNJbWFnZSgpe3JldHVybiB0aGlzLmNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpfWlzVGV4dCgpe3JldHVybiB0aGlzLmNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoInRleHQvIil8fHRoaXMuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24vanNvbiJ8fHRoaXMuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24veG1sInx8dGhpcy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0In1nZXRUZXh0Q29udGVudCgpe3RyeXtsZXQgVT1hdG9iKHRoaXMuY29udGVudCksaj1uZXcgVWludDhBcnJheShVLmxlbmd0aCk7Zm9yKGxldCBhZT0wO2FlPFUubGVuZ3RoO2FlKyspalthZV09VS5jaGFyQ29kZUF0KGFlKTtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShqKX1jYXRjaHtyZXR1cm4iVW5hYmxlIHRvIGRlY29kZSBjb250ZW50In19YXN5bmMgaGFuZGxlRG93bmxvYWQoKXt0cnl7bGV0IFU9bmV3IEJsb2IoW1VpbnQ4QXJyYXkuZnJvbShhdG9iKHRoaXMuY29udGVudCksWD0+WC5jaGFyQ29kZUF0KDApKV0se3R5cGU6dGhpcy5jb250ZW50VHlwZX0pLGo9VVJMLmNyZWF0ZU9iamVjdFVSTChVKSxhZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YWUuaHJlZj1qLGFlLmRvd25sb2FkPWpyKHRoaXMub2JqZWN0S2V5KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFlKSxhZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYWUpLFVSTC5yZXZva2VPYmplY3RVUkwoail9Y2F0Y2goVSl7Y29uc29sZS5lcnJvcigiRXJyb3IgZG93bmxvYWRpbmc6IixVKX19YXN5bmMgaGFuZGxlRGVsZXRlKCl7aWYodGhpcy5kYXRhUHJvdmlkZXImJmNvbmZpcm0oYERlbGV0ZSAiJHtqcih0aGlzLm9iamVjdEtleSl9Ij9gKSl0cnl7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JqZWN0LWRlbGV0ZWQiLHtkZXRhaWw6e2tleTp0aGlzLm9iamVjdEtleX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChVKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZWxldGluZyBvYmplY3Q6IixVKX19Z2V0TGFuZ3VhZ2UoKXtsZXQgVT10aGlzLm9iamVjdEtleS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIjtyZXR1cm57dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsbWpzOiJqYXZhc2NyaXB0IixjanM6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6Imh0bWwiLGh0bToiaHRtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLHNhc3M6InNjc3MiLGxlc3M6Imxlc3MiLG1kOiJtYXJrZG93biIsbWFya2Rvd246Im1hcmtkb3duIix4bWw6InhtbCIseWFtbDoieWFtbCIseW1sOiJ5YW1sIixweToicHl0aG9uIixyYjoicnVieSIsZ286ImdvIixyczoicnVzdCIsamF2YToiamF2YSIsYzoiYyIsY3BwOiJjcHAiLGg6ImMiLGhwcDoiY3BwIixjczoiY3NoYXJwIixwaHA6InBocCIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCIsenNoOiJzaGVsbCIsc3FsOiJzcWwiLGdyYXBocWw6ImdyYXBocWwiLGdxbDoiZ3JhcGhxbCIsZG9ja2VyZmlsZToiZG9ja2VyZmlsZSIsdHh0OiJwbGFpbnRleHQifVtVXXx8InBsYWludGV4dCJ9aGFuZGxlQ29udGVudENoYW5nZShVKXtsZXQgaj1VLmRldGFpbDt0aGlzLmhhc0NoYW5nZXM9aiE9PXRoaXMub3JpZ2luYWxUZXh0Q29udGVudH1oYW5kbGVFZGl0KCl7dGhpcy5lZGl0aW5nPSEwfWhhbmRsZURpc2NhcmQoKXtsZXQgVT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtY29kZSIpO1UmJihVLnZhbHVlPXRoaXMub3JpZ2luYWxUZXh0Q29udGVudCksdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMX1hc3luYyBoYW5kbGVTYXZlKCl7aWYoISghdGhpcy5oYXNDaGFuZ2VzfHx0aGlzLnNhdmluZ3x8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5zYXZpbmc9ITA7dHJ5e2xldCBqPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1jb2RlIik/LnZhbHVlPz8iIixYPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShqKSxKPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5YKSk7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSxKLHRoaXMuY29udGVudFR5cGUpJiYodGhpcy5vcmlnaW5hbFRleHRDb250ZW50PWosdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMSx0aGlzLmNvbnRlbnQ9Sil9Y2F0Y2goVSl7Y29uc29sZS5lcnJvcigiRXJyb3Igc2F2aW5nIG9iamVjdDoiLFUpfXRoaXMuc2F2aW5nPSExfX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5vYmplY3RLZXk/dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zdGF0ZSI+TG9hZGluZy4uLjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOnRoaXMuZXJyb3I/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1zdGF0ZSI+JHt0aGlzLmVycm9yfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXRpdGxlIj4ke2pyKHRoaXMub2JqZWN0S2V5KX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbWV0YSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLWl0ZW0iPiR7dGhpcy5jb250ZW50VHlwZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLWl0ZW0iPiR7encodGhpcy5maWxlU2l6ZSl9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS1pdGVtIj4ke3RoaXMuZm9ybWF0RGF0ZSh0aGlzLmxhc3RNb2RpZmllZCl9PC9zcGFuPgogICAgICAgICAgICAke3RoaXMuaGFzQ2hhbmdlcz93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1bnNhdmVkLWluZGljYXRvciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idW5zYXZlZC1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIFVuc2F2ZWQgY2hhbmdlcwogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRlbnQgJHt0aGlzLmVkaXRpbmc/ImNvZGUtZWRpdG9yIjoiIn0iPgogICAgICAgICAgJHt0aGlzLmVkaXRpbmc/d2AKICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNvZGUKICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fQogICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlKCl9CiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7VT0+dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlKFUpfQogICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogICAgICAgICAgICAgIGA6dGhpcy5pc1RleHQoKT93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLnRleHRDb250ZW50PSR7dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5maWxlbmFtZT0ke2pyKHRoaXMub2JqZWN0S2V5KX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlKCl9CiAgICAgICAgICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7ITB9CiAgICAgICAgICAgICAgICAgICAgLnNob3dGaWxlbmFtZT0keyExfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICAgICAgICAgICAgICAuYmFzZTY0PSR7dGhpcy5jb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5taW1lVHlwZT0ke3RoaXMuY29udGVudFR5cGV9CiAgICAgICAgICAgICAgICAgICAgLmZpbGVuYW1lPSR7anIodGhpcy5vYmplY3RLZXkpfQogICAgICAgICAgICAgICAgICAgIC5zaG93VG9vbGJhcj0keyEwfQogICAgICAgICAgICAgICAgICAgIC5zaG93RmlsZW5hbWU9JHshMX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5lZGl0aW5nP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIHNlY29uZGFyeSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEaXNjYXJkfT4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/IkRpc2NhcmQiOiJDYW5jZWwifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24tYnRuIHByaW1hcnkiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2F2ZX0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5zYXZpbmd8fCF0aGlzLmhhc0NoYW5nZXN9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zYXZpbmc/IlNhdmluZy4uLiI6IlNhdmUifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgJHt0aGlzLmlzVGV4dCgpP3dgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biIgQGNsaWNrPSR7dGhpcy5oYW5kbGVFZGl0fT5FZGl0PC9idXR0b24+YDoiIn0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idG4iIEBjbGljaz0ke3RoaXMuaGFuZGxlRG93bmxvYWR9PkRvd25sb2FkPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIGRhbmdlciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEZWxldGV9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8cD5TZWxlY3QgYSBmaWxlIHRvIHByZXZpZXc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWGEodGhpcyxxKX1zdGF0aWN7WGEoYSxyKX19O3JldHVybiBIPWF9KSgpfSk7dmFyIGMyLFRpLEZYcixNN3Q9dSgoKT0+e3ZlKCk7bHQoKTtJWHIoKTtDN3QoKTt6N3QoKTtfN3QoKTtjMj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sVGk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEZYcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtc3RvcmFnZS1icm93c2VyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdO3ZhciBmZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VCcm93c2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpPYmplY3R9KV0sdj1baWUoKV0seT1baWUoKV0sTj1baWUoKV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZGU9W2llKCldLGMyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJkYXRhUHJvdmlkZXIiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChXLHBlKT0+e1cuZGF0YVByb3ZpZGVyPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LG8sbCksYzIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJidWNrZXROYW1lImluIFcsImhhcyIpLGdldDppKFc9PlcuYnVja2V0TmFtZSwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5idWNrZXROYW1lPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGQsZiksYzIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkNoYW5nZUV2ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJvbkNoYW5nZUV2ZW50ImluIFcsImhhcyIpLGdldDppKFc9Plcub25DaGFuZ2VFdmVudCwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5vbkNoYW5nZUV2ZW50PXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGgsbSksYzIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idmlld1R5cGUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy52aWV3VHlwZSwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy52aWV3VHlwZT1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxiLGcpLGMyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iY3VycmVudFByZWZpeCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmN1cnJlbnRQcmVmaXgsImdldCIpLHNldDppKChXLHBlKT0+e1cuY3VycmVudFByZWZpeD1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxrLE0pLGMyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InNlbGVjdGVkS2V5ImluIFcsImhhcyIpLGdldDppKFc9Plcuc2VsZWN0ZWRLZXksImdldCIpLHNldDppKChXLHBlKT0+e1cuc2VsZWN0ZWRLZXk9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sXyxTKSxjMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InJlZnJlc2hLZXkiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5yZWZyZXNoS2V5LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnJlZnJlc2hLZXk9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sTCxFKSxjMih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4icHJldmlld1dpZHRoImluIFcsImhhcyIpLGdldDppKFc9PlcucHJldmlld1dpZHRoLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnByZXZpZXdXaWR0aD1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxDLHopLGMyKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNSZXNpemluZ1ByZXZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImlzUmVzaXppbmdQcmV2aWV3ImluIFcsImhhcyIpLGdldDppKFc9PlcuaXNSZXNpemluZ1ByZXZpZXcsImdldCIpLHNldDppKChXLHBlKT0+e1cuaXNSZXNpemluZ1ByZXZpZXc9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sJCxGKSxjMih0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlY2VudENoYW5nZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJyZWNlbnRDaGFuZ2VDb3VudCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnJlY2VudENoYW5nZUNvdW50LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnJlY2VudENoYW5nZUNvdW50PXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEcsWiksYzIodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNTdHJlYW1Db25uZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImlzU3RyZWFtQ29ubmVjdGVkImluIFcsImhhcyIpLGdldDppKFc9PlcuaXNTdHJlYW1Db25uZWN0ZWQsImdldCIpLHNldDppKChXLHBlKT0+e1cuaXNTdHJlYW1Db25uZWN0ZWQ9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sRCxRKSxjMihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpUfSxudWxsLHIpLGZlPWE9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1FWHI7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1UaSh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoVCl7dGhpcy4jZT1UfSN0PShUaSh0aGlzLGwpLFRpKHRoaXMsZCwiIikpO2dldCBidWNrZXROYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJ1Y2tldE5hbWUoVCl7dGhpcy4jdD1UfSNyPShUaSh0aGlzLGYpLFRpKHRoaXMsaCxudWxsKSk7Z2V0IG9uQ2hhbmdlRXZlbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgb25DaGFuZ2VFdmVudChUKXt0aGlzLiNyPVR9I2E9KFRpKHRoaXMsbSksVGkodGhpcyxiLCJjb2x1bW5zIikpO2dldCB2aWV3VHlwZSgpe3JldHVybiB0aGlzLiNhfXNldCB2aWV3VHlwZShUKXt0aGlzLiNhPVR9I2k9KFRpKHRoaXMsZyksVGkodGhpcyxrLCIiKSk7Z2V0IGN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VycmVudFByZWZpeChUKXt0aGlzLiNpPVR9I3M9KFRpKHRoaXMsTSksVGkodGhpcyxfLCIiKSk7Z2V0IHNlbGVjdGVkS2V5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkS2V5KFQpe3RoaXMuI3M9VH0jbj0oVGkodGhpcyxTKSxUaSh0aGlzLEwsMCkpO2dldCByZWZyZXNoS2V5KCl7cmV0dXJuIHRoaXMuI259c2V0IHJlZnJlc2hLZXkoVCl7dGhpcy4jbj1UfSNvPShUaSh0aGlzLEUpLFRpKHRoaXMsQyw3MDApKTtnZXQgcHJldmlld1dpZHRoKCl7cmV0dXJuIHRoaXMuI299c2V0IHByZXZpZXdXaWR0aChUKXt0aGlzLiNvPVR9I2w9KFRpKHRoaXMseiksVGkodGhpcywkLCExKSk7Z2V0IGlzUmVzaXppbmdQcmV2aWV3KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzUmVzaXppbmdQcmV2aWV3KFQpe3RoaXMuI2w9VH0jYz0oVGkodGhpcyxGKSxUaSh0aGlzLEcsMCkpO2dldCByZWNlbnRDaGFuZ2VDb3VudCgpe3JldHVybiB0aGlzLiNjfXNldCByZWNlbnRDaGFuZ2VDb3VudChUKXt0aGlzLiNjPVR9I2Q9KFRpKHRoaXMsWiksVGkodGhpcyxELCExKSk7Z2V0IGlzU3RyZWFtQ29ubmVjdGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzU3RyZWFtQ29ubmVjdGVkKFQpe3RoaXMuI2Q9VH1jaGFuZ2VVbnN1YnNjcmliZT0oVGkodGhpcyxRKSxudWxsKTtzdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMsTmUscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5icm93c2VyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjOTk5Iil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAudmlldy10b2dnbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC52aWV3LWJ0biB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNDQ0Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICB9CgogICAgICAudmlldy1idG46aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNmM2Y0NiIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC52aWV3LWJ0bi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNDA0MDQwIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jb250ZW50Lmhhcy1wcmV2aWV3IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA0cHggdmFyKC0tcHJldmlldy13aWR0aCwgNzAwcHgpOwogICAgICB9CgogICAgICAucmVzaXplLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1kaXZpZGVyOmhvdmVyLAogICAgICAucmVzaXplLWRpdmlkZXIuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIil9OwogICAgICB9CgogICAgICAubWFpbi12aWV3IHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXBhbmVsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkgewogICAgICAgIC5jb250ZW50LAogICAgICAgIC5jb250ZW50Lmhhcy1wcmV2aWV3IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KCiAgICAgICAgLnByZXZpZXctcGFuZWwsCiAgICAgICAgLnJlc2l6ZS1kaXZpZGVyIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc3RyZWFtLXN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLnN0cmVhbS1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLnN0cmVhbS1kb3QuY29ubmVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjJjNTVlOwogICAgICB9CgogICAgICAuY2hhbmdlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC5jaGFuZ2UtaW5kaWNhdG9yLnB1bHNlIHsKICAgICAgICBhbmltYXRpb246IHB1bHNlLW9yYW5nZSAxcyBlYXNlLWluLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwdWxzZS1vcmFuZ2UgewogICAgICAgIDAlIHsgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuNCk7IH0KICAgICAgICAxMDAlIHsgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMik7IH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpfXJlZnJlc2goKXt0aGlzLnJlZnJlc2hLZXkrK31zZXRWaWV3VHlwZShUKXt0aGlzLnZpZXdUeXBlPVR9bmF2aWdhdGVUb1ByZWZpeChUKXt0aGlzLmN1cnJlbnRQcmVmaXg9VCx0aGlzLnNlbGVjdGVkS2V5PSIifWhhbmRsZUtleVNlbGVjdGVkKFQpe3RoaXMuc2VsZWN0ZWRLZXk9VC5kZXRhaWwua2V5fWhhbmRsZU5hdmlnYXRlKFQpe3RoaXMubmF2aWdhdGVUb1ByZWZpeChULmRldGFpbC5wcmVmaXgpfWhhbmRsZU9iamVjdERlbGV0ZWQoVCl7dGhpcy5zZWxlY3RlZEtleT0iIix0aGlzLnJlZnJlc2hLZXkrK311cGRhdGVkKFQpe1QuaGFzKCJidWNrZXROYW1lIikmJih0aGlzLnNlbGVjdGVkS2V5PSIiLHRoaXMuY3VycmVudFByZWZpeD0iIix0aGlzLnJlY2VudENoYW5nZUNvdW50PTAsdGhpcy51bnN1YnNjcmliZUZyb21DaGFuZ2VzKCksdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKSksVC5oYXMoIm9uQ2hhbmdlRXZlbnQiKSYmKHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpLHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCkpfXN1YnNjcmliZVRvQ2hhbmdlcygpe2lmKCF0aGlzLm9uQ2hhbmdlRXZlbnQpe3RoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITE7cmV0dXJufXRyeXt0aGlzLmNoYW5nZVVuc3Vic2NyaWJlPXRoaXMub25DaGFuZ2VFdmVudChUPT57dGhpcy5oYW5kbGVDaGFuZ2UoVCl9KSx0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSEwfWNhdGNoKFQpe2NvbnNvbGUud2FybigiW1N0b3JhZ2VCcm93c2VyXSBGYWlsZWQgdG8gc3Vic2NyaWJlIHRvIGNoYW5nZXM6IixUKSx0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSExfX11bnN1YnNjcmliZUZyb21DaGFuZ2VzKCl7dGhpcy5jaGFuZ2VVbnN1YnNjcmliZSYmKHRoaXMuY2hhbmdlVW5zdWJzY3JpYmUoKSx0aGlzLmNoYW5nZVVuc3Vic2NyaWJlPW51bGwpLHRoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITF9aGFuZGxlQ2hhbmdlKFQpe3RoaXMucmVjZW50Q2hhbmdlQ291bnQrKyx0aGlzLnJlZnJlc2hLZXkrK31zdGFydFByZXZpZXdSZXNpemU9aShUPT57VC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNSZXNpemluZ1ByZXZpZXc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVByZXZpZXdSZXNpemUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuZW5kUHJldmlld1Jlc2l6ZSl9LCJzdGFydFByZXZpZXdSZXNpemUiKTtoYW5kbGVQcmV2aWV3UmVzaXplPWkoVD0+e2lmKCF0aGlzLmlzUmVzaXppbmdQcmV2aWV3KXJldHVybjtsZXQgVz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5jb250ZW50Iik7aWYoIVcpcmV0dXJuO2xldCBwZT1XLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1lPU1hdGgubWluKE1hdGgubWF4KHBlLnJpZ2h0LVQuY2xpZW50WCwyNTApLDFlMyk7dGhpcy5wcmV2aWV3V2lkdGg9bWV9LCJoYW5kbGVQcmV2aWV3UmVzaXplIik7ZW5kUHJldmlld1Jlc2l6ZT1pKCgpPT57dGhpcy5pc1Jlc2l6aW5nUHJldmlldz0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUHJldmlld1Jlc2l6ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5lbmRQcmV2aWV3UmVzaXplKX0sImVuZFByZXZpZXdSZXNpemUiKTtyZW5kZXIoKXtsZXQgVD10aGlzLmN1cnJlbnRQcmVmaXg/dGhpcy5jdXJyZW50UHJlZml4LnNwbGl0KCIvIikuZmlsdGVyKEJvb2xlYW4pOltdO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJicm93c2VyLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJicmVhZGNydW1iIj4KICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9QcmVmaXgoIiIpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgJHtULm1hcCgoVyxwZSk9PntsZXQgbWU9VC5zbGljZSgwLHBlKzEpLmpvaW4oIi8iKSsiLyI7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnJlYWRjcnVtYi1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbgogICAgICAgICAgICAgICAgICBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUHJlZml4KG1lKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtXfQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIGB9KX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5vbkNoYW5nZUV2ZW50P3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmVhbS1zdGF0dXMiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdHJlYW0tZG90ICR7dGhpcy5pc1N0cmVhbUNvbm5lY3RlZD8iY29ubmVjdGVkIjoiIn0iPjwvc3Bhbj4KICAgICAgICAgICAgICAke3RoaXMuaXNTdHJlYW1Db25uZWN0ZWQ/IkxpdmUiOiJPZmZsaW5lIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLnJlY2VudENoYW5nZUNvdW50PjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYW5nZS1pbmRpY2F0b3IgcHVsc2UiPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVjZW50Q2hhbmdlQ291bnR9IGNoYW5nZSR7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudD4xPyJzIjoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRvZ2dsZSI+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idmlldy1idG4gJHt0aGlzLnZpZXdUeXBlPT09ImNvbHVtbnMiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZXRWaWV3VHlwZSgiY29sdW1ucyIpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ29sdW1ucwogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJ2aWV3LWJ0biAke3RoaXMudmlld1R5cGU9PT0ia2V5cyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNldFZpZXdUeXBlKCJrZXlzIil9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBMaXN0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQgJHt0aGlzLnNlbGVjdGVkS2V5PyJoYXMtcHJldmlldyI6IiJ9IiBzdHlsZT0iLS1wcmV2aWV3LXdpZHRoOiAke3RoaXMucHJldmlld1dpZHRofXB4Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tdmlldyI+CiAgICAgICAgICAgICR7dGhpcy52aWV3VHlwZT09PSJjb2x1bW5zIj93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1zdG9yYWdlLWNvbHVtbnMKICAgICAgICAgICAgICAgICAgICAuZGF0YVByb3ZpZGVyPSR7dGhpcy5kYXRhUHJvdmlkZXJ9CiAgICAgICAgICAgICAgICAgICAgLmJ1Y2tldE5hbWU9JHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgICAgICAgICAgLmN1cnJlbnRQcmVmaXg9JHt0aGlzLmN1cnJlbnRQcmVmaXh9CiAgICAgICAgICAgICAgICAgICAgLnJlZnJlc2hLZXk9JHt0aGlzLnJlZnJlc2hLZXl9CiAgICAgICAgICAgICAgICAgICAgQGtleS1zZWxlY3RlZD0ke3RoaXMuaGFuZGxlS2V5U2VsZWN0ZWR9CiAgICAgICAgICAgICAgICAgICAgQG5hdmlnYXRlPSR7dGhpcy5oYW5kbGVOYXZpZ2F0ZX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1zdG9yYWdlLWNvbHVtbnM+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXN0b3JhZ2Uta2V5cwogICAgICAgICAgICAgICAgICAgIC5kYXRhUHJvdmlkZXI9JHt0aGlzLmRhdGFQcm92aWRlcn0KICAgICAgICAgICAgICAgICAgICAuYnVja2V0TmFtZT0ke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgICAgICAgICAuY3VycmVudFByZWZpeD0ke3RoaXMuY3VycmVudFByZWZpeH0KICAgICAgICAgICAgICAgICAgICAucmVmcmVzaEtleT0ke3RoaXMucmVmcmVzaEtleX0KICAgICAgICAgICAgICAgICAgICBAa2V5LXNlbGVjdGVkPSR7dGhpcy5oYW5kbGVLZXlTZWxlY3RlZH0KICAgICAgICAgICAgICAgICAgICBAbmF2aWdhdGU9JHt0aGlzLmhhbmRsZU5hdmlnYXRlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXN0b3JhZ2Uta2V5cz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMuc2VsZWN0ZWRLZXk/d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1kaXZpZGVyICR7dGhpcy5pc1Jlc2l6aW5nUHJldmlldz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLnN0YXJ0UHJldmlld1Jlc2l6ZX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcGFuZWwiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1zdG9yYWdlLXByZXZpZXcKICAgICAgICAgICAgICAgICAgICAuZGF0YVByb3ZpZGVyPSR7dGhpcy5kYXRhUHJvdmlkZXJ9CiAgICAgICAgICAgICAgICAgICAgLmJ1Y2tldE5hbWU9JHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgICAgICAgICAgLm9iamVjdEtleT0ke3RoaXMuc2VsZWN0ZWRLZXl9CiAgICAgICAgICAgICAgICAgICAgQG9iamVjdC1kZWxldGVkPSR7dGhpcy5oYW5kbGVPYmplY3REZWxldGVkfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXN0b3JhZ2UtcHJldmlldz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7VGkoYSxyKX19O3JldHVybiBmZT1hfSkoKX0pO3ZhciBCWHI9dSgoKT0+e30pO3ZhciBIWHI9dSgoKT0+e003dCgpO0M3dCgpO3o3dCgpO183dCgpO0JYcigpO05yZSgpfSk7dmFyIHFYcj11KCgpPT57Q1hyKCk7JFhyKCk7bjd0KCk7QVhyKCk7SFhyKCl9KTt2YXIgT3JlLGIzLFZYciwkNmU9dSgoKT0+e3ZlKCk7bHQoKTtLcigpO09yZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sYjM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFZYcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYWN0aW9uYmFyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBY3Rpb25iYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxjPVtpZSgpXSxwPVtpZSgpXSx2PVtpZSgpXSxPcmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50QmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJjdXJyZW50QmFyImluIE0sImhhcyIpLGdldDppKE09Pk0uY3VycmVudEJhciwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmN1cnJlbnRCYXI9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLE9yZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVSZW1haW5pbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+InRpbWVSZW1haW5pbmciaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS50aW1lUmVtYWluaW5nLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00udGltZVJlbWFpbmluZz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsZiksT3JlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3NQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJwcm9ncmVzc1BlcmNlbnQiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5wcm9ncmVzc1BlcmNlbnQsImdldCIpLHNldDppKChNLE4pPT57TS5wcm9ncmVzc1BlcmNlbnQ9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxoLG0pLE9yZSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaXNWaXNpYmxlImluIE0sImhhcyIpLGdldDppKE09Pk0uaXNWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uaXNWaXNpYmxlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSxPcmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCxyKSx5PWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIiwiT3ZlcmxheSJdO3N0YXRpYyBkZW1vPWkoKCk9PntsZXQgaz1pKFM9PlMuY3VycmVudFRhcmdldC5jbG9zZXN0KCIuZGVtby1jb250YWluZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSwiZ2V0QWN0aW9uYmFyIik7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5kZW1vLWNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRlbnQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2koYXN5bmMgUz0+e2xldCBPPWsoUyk7aWYoIU8pcmV0dXJuO2xldCBMPWF3YWl0IE8uc2hvdyh7bWVzc2FnZToiRmlsZSBjaGFuZ2VkIGV4dGVybmFsbHkuIFJlbG9hZD8iLHR5cGU6Indhcm5pbmciLGljb246Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6InJlbG9hZCIsbGFiZWw6IlJlbG9hZCIscHJpbWFyeTohMH0se2lkOiJpZ25vcmUiLGxhYmVsOiJJZ25vcmUifV0sdGltZW91dDp7ZHVyYXRpb246NWUzLGRlZmF1bHRBY3Rpb25JZDoicmVsb2FkIn0sZGlzbWlzc2libGU6ITB9KTtjb25zb2xlLmxvZygiQWN0aW9uIGJhciByZXN1bHQ6IixMKX0sInNob3dBY3Rpb25CYXIiKX0+V2FybmluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7aShhc3luYyBTPT57bGV0IE89ayhTKTtpZighTylyZXR1cm47bGV0IEw9YXdhaXQgTy5zaG93KHttZXNzYWdlOiJQcm9jZXNzIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAxIix0eXBlOiJlcnJvciIsaWNvbjoibHVjaWRlOnhDaXJjbGUiLGFjdGlvbnM6W3tpZDoicmV0cnkiLGxhYmVsOiJSZXRyeSIscHJpbWFyeTohMH0se2lkOiJkaXNtaXNzIixsYWJlbDoiRGlzbWlzcyJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJkaXNtaXNzIn19KTtjb25zb2xlLmxvZygiRXJyb3IgYmFyIHJlc3VsdDoiLEwpfSwic2hvd0Vycm9yQmFyIil9PkVycm9yPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHtpKGFzeW5jIFM9PntsZXQgTz1rKFMpO2lmKCFPKXJldHVybjtsZXQgTD1hd2FpdCBPLnNob3coe21lc3NhZ2U6IlNhdmUgY2hhbmdlcyBiZWZvcmUgY2xvc2luZz8iLHR5cGU6InF1ZXN0aW9uIixpY29uOiJsdWNpZGU6aGVscENpcmNsZSIsYWN0aW9uczpbe2lkOiJzYXZlIixsYWJlbDoiU2F2ZSIscHJpbWFyeTohMH0se2lkOiJkaXNjYXJkIixsYWJlbDoiRGlzY2FyZCJ9LHtpZDoiY2FuY2VsIixsYWJlbDoiQ2FuY2VsIn1dfSk7Y29uc29sZS5sb2coIlF1ZXN0aW9uIGJhciByZXN1bHQ6IixMKX0sInNob3dRdWVzdGlvbkJhciIpfT5RdWVzdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgIDwvZGl2PgogICAgYH0sImRlbW8iKTtxdWV1ZT1bXTsjZT1iMyh0aGlzLG8sbnVsbCk7Z2V0IGN1cnJlbnRCYXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudEJhcihrKXt0aGlzLiNlPWt9I3Q9KGIzKHRoaXMsbCksYjModGhpcyxkLDApKTtnZXQgdGltZVJlbWFpbmluZygpe3JldHVybiB0aGlzLiN0fXNldCB0aW1lUmVtYWluaW5nKGspe3RoaXMuI3Q9a30jcj0oYjModGhpcyxmKSxiMyh0aGlzLGgsMTAwKSk7Z2V0IHByb2dyZXNzUGVyY2VudCgpe3JldHVybiB0aGlzLiNyfXNldCBwcm9ncmVzc1BlcmNlbnQoayl7dGhpcy4jcj1rfSNhPShiMyh0aGlzLG0pLGIzKHRoaXMsYiwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaXNWaXNpYmxlKGspe3RoaXMuI2E9a310aW1lb3V0SW50ZXJ2YWw9KGIzKHRoaXMsZyksbnVsbCk7Y3VycmVudFJlc29sdmU9bnVsbDtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjJzIGVhc2Utb3V0OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICB9CgogICAgICA6aG9zdCgudmlzaWJsZSkgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1jb250ZW50IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAubWVzc2FnZS1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uaW5mbyB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ucXVlc3Rpb24gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmFjdGlvbnMtc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAzMCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDU1JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMzggOTIlIDQwJSkiLCJoc2woMzggOTIlIDQ1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNDUlKSIsImhzbCgyNzAgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb3VudGRvd24gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIyJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGs9dGhpcy5jdXJyZW50QmFyLE09az8udHlwZXx8ImluZm8iLE49az8udGltZW91dCYmdGhpcy50aW1lUmVtYWluaW5nPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1pdGVtIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25iYXItY29udGVudCI+CiAgICAgICAgICAke2s/d2AKICAgICAgICAgICAgJHtOP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2dyZXNzLWJhci1maWxsICR7TX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnByb2dyZXNzUGVyY2VudH0lIgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHtrLmljb24/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtZXNzYWdlLWljb24gJHtNfSIKICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke2suaWNvbn0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTYiCiAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVzc2FnZS10ZXh0Ij4ke2subWVzc2FnZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICR7ay5hY3Rpb25zLm1hcChfPT50aGlzLnJlbmRlckFjdGlvbkJ1dHRvbihfLGssTikpfQogICAgICAgICAgICAgICAgJHtrLmRpc21pc3NpYmxlP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzbWlzcy1idXR0b24iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGlzbWlzcygpfQogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJEaXNtaXNzIgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uQnV0dG9uKGssTSxOKXtsZXQgXz1rLnByaW1hcnksUz1NLnR5cGV8fCJpbmZvIixPPU0udGltZW91dD8uZGVmYXVsdEFjdGlvbklkPT09ay5pZCxMPU4mJk8sRT1NYXRoLmNlaWwodGhpcy50aW1lUmVtYWluaW5nLzFlMyk7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0iYWN0aW9uLWJ1dHRvbiAke18/YHByaW1hcnkgJHtTfWA6InNlY29uZGFyeSJ9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihrLmlkLCExKX0KICAgICAgPgogICAgICAgICR7ay5pY29uP3dgCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7ay5pY29ufSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4+JHtrLmxhYmVsfTwvc3Bhbj4KICAgICAgICAke0w/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudGRvd24iPigke0V9cyk8L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9idXR0b24+CiAgICBgfWFzeW5jIHNob3coayl7cmV0dXJuIG5ldyBQcm9taXNlKE09Pnt0aGlzLnF1ZXVlLnB1c2goe29wdGlvbnM6ayxyZXNvbHZlOk19KSx0aGlzLmN1cnJlbnRCYXJ8fHRoaXMucHJvY2Vzc1F1ZXVlKCl9KX1kaXNtaXNzKCl7dGhpcy5oYW5kbGVEaXNtaXNzKCl9Y2xlYXJRdWV1ZSgpe2ZvcihsZXQgayBvZiB0aGlzLnF1ZXVlKWsucmVzb2x2ZSh7YWN0aW9uSWQ6ImRpc21pc3NlZCIsdGltZWRPdXQ6ITF9KTt0aGlzLnF1ZXVlPVtdfWFzeW5jIGhpZGVDdXJyZW50QmFyKCl7dGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIiksdGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2Uoaz0+c2V0VGltZW91dChrLDIyMCkpLHRoaXMuY3VycmVudEJhcj1udWxsLHRoaXMuY3VycmVudFJlc29sdmU9bnVsbH1hc3luYyBwcm9jZXNzUXVldWUoKXtpZih0aGlzLnF1ZXVlLmxlbmd0aD09PTApe3RoaXMuaGlkZUN1cnJlbnRCYXIoKTtyZXR1cm59bGV0IGs9dGhpcy5xdWV1ZS5zaGlmdCgpO3RoaXMuY3VycmVudEJhcj1rLm9wdGlvbnMsdGhpcy5jdXJyZW50UmVzb2x2ZT1rLnJlc29sdmUsdGhpcy5pc1Zpc2libGU9ITAsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pLGsub3B0aW9ucy50aW1lb3V0JiZ0aGlzLnN0YXJ0VGltZW91dChrLm9wdGlvbnMudGltZW91dC5kdXJhdGlvbixrLm9wdGlvbnMudGltZW91dC5kZWZhdWx0QWN0aW9uSWQpfXN0YXJ0VGltZW91dChrLE0pe3RoaXMudGltZVJlbWFpbmluZz1rLHRoaXMucHJvZ3Jlc3NQZXJjZW50PTEwMDtsZXQgTj1EYXRlLm5vdygpLF89NTA7dGhpcy50aW1lb3V0SW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgUz1EYXRlLm5vdygpLU47dGhpcy50aW1lUmVtYWluaW5nPU1hdGgubWF4KDAsay1TKSx0aGlzLnByb2dyZXNzUGVyY2VudD10aGlzLnRpbWVSZW1haW5pbmcvayoxMDAsdGhpcy50aW1lUmVtYWluaW5nPD0wJiYodGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuaGFuZGxlQWN0aW9uKE0sITApKX0sXyl9Y2xlYXJUaW1lb3V0SW50ZXJ2YWwoKXt0aGlzLnRpbWVvdXRJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0SW50ZXJ2YWwpLHRoaXMudGltZW91dEludGVydmFsPW51bGwpfWhhbmRsZUFjdGlvbihrLE0pe3RoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKSx0aGlzLmN1cnJlbnRSZXNvbHZlJiZ0aGlzLmN1cnJlbnRSZXNvbHZlKHthY3Rpb25JZDprLHRpbWVkT3V0Ok19KSx0aGlzLnByb2Nlc3NRdWV1ZSgpfWhhbmRsZURpc21pc3MoKXt0aGlzLmhhbmRsZUFjdGlvbigiZGlzbWlzc2VkIiwhMSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKX1zdGF0aWN7YjMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIGpYcj11KCgpPT57fSk7dmFyIFVYcj11KCgpPT57JDZlKCk7alhyKCl9KTt2YXIgV1hyLEdYcj11KCgpPT57dmUoKTtXWHI9aSgoKT0+d2AKICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsiPgogICAgPGRlZXMtYmFkZ2UgLnRleHQ9JHsiRGVmYXVsdCJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAudGV4dD0keyJQcmltYXJ5In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsic3VjY2VzcyJ9IC50ZXh0PSR7IlN1Y2Nlc3MifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJ3YXJuaW5nIn0gLnRleHQ9JHsiV2FybmluZyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7ImVycm9yIn0gLnRleHQ9JHsiRXJyb3IifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJwcmltYXJ5In0gLnJvdW5kZWQ9JHshMH0gLnRleHQ9JHsiUm91bmRlZCJ9PjwvZGVlcy1iYWRnZT4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBBNmUsbmcsWVhyLEtYcj11KCgpPT57dmUoKTtNcigpO0dYcigpO2x0KCk7QTZlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxuZz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sWVhyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1iYWRnZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQmFkZ2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sQTZlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4idHlwZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnR5cGUsImdldCIpLHNldDppKChnLHkpPT57Zy50eXBlPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxBNmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJ0ZXh0ImluIGcsImhhcyIpLGdldDppKGc9PmcudGV4dCwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnRleHQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLEE2ZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdW5kZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InJvdW5kZWQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5yb3VuZGVkLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cucm91bmRlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksQTZlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89V1hyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1uZyh0aGlzLG8sImRlZmF1bHQiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKGIpe3RoaXMuI2U9Yn0jdD0obmcodGhpcyxsKSxuZyh0aGlzLGQsIiIpKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KGIpe3RoaXMuI3Q9Yn0jcj0obmcodGhpcyxmKSxuZyh0aGlzLGgsITEpKTtnZXQgcm91bmRlZCgpe3JldHVybiB0aGlzLiNyfXNldCByb3VuZGVkKGIpe3RoaXMuI3I9Yn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksbmcodGhpcyxtKSxaYS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmJhZGdlLnJvdW5kZWQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjY2IiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMmU3ZDMyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogI2VkNmMwMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UgJHt0aGlzLnR5cGV9ICR7dGhpcy5yb3VuZGVkPyJyb3VuZGVkIjoiIn0iPgogICAgICAgICR7dGhpcy50ZXh0fQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje25nKGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBaWHI9dSgoKT0+e0tYcigpfSk7dmFyIFFYcixYWHI9dSgoKT0+e3ZlKCk7UVhyPWkoKCk9PndgCiAgPGRlZXMtaGludD48L2RlZXMtaGludD4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBKWHIsVDd0LGVKcix0SnI9dSgoKT0+e3ZlKCk7TXIoKTtYWHIoKTtsdCgpO0pYcj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sVDd0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxlSnI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWhpbnQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0hpbnQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxKWHIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ0eXBlImluIGYsImhhcyIpLGdldDppKGY9PmYudHlwZSwiZ2V0Iiksc2V0OmkoKGYscCk9PntmLnR5cGU9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEpYcihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPVFYcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9VDd0KHRoaXMsbywiaW5mbyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoZCl7dGhpcy4jZT1kfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxUN3QodGhpcyxsKSxaYS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YCA8ZGl2IGNsYXNzPSJtYWluYm94Ij48L2Rpdj4gYH1zdGF0aWN7VDd0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBySnI9dSgoKT0+e3RKcigpfSk7dmFyIGFKcixpSnI9dSgoKT0+e3ZlKCk7d2EoKTthSnI9aSgoKT0+e2xldCB0PVtbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6Il0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiIsIlZlcmlmeWluZyBjaGVja3N1bSJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiLCJWZXJpZnlpbmcgY2hlY2tzdW0iLCJFeHRyYWN0aW5nIHJlbGVhc2UgYnVuZGxlIl0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiIsIlZlcmlmeWluZyBjaGVja3N1bSIsIkV4dHJhY3RpbmcgcmVsZWFzZSBidW5kbGUiLCJSZXN0YXJ0aW5nIGFwcGxpY2F0aW9uIl1dLGU9aShyPT5yPj0xMDA/IlVwbG9hZCBjb21wbGV0ZS4gRmluYWxpemluZyBwYWNrYWdlIG1hbmlmZXN0Li4uIjpyPj04Mj8iVmVyaWZ5aW5nIGNoZWNrc3VtcyBiZWZvcmUgaGFuZG9mZi4uLiI6cj49NTU/IlVwbG9hZGluZyB0aHVtYm5haWxzIHRvIGVkZ2UgY2FjaGUuLi4iOnI+PTI1PyJTdHJlYW1pbmcgc291cmNlIGZpbGVzIHRvIHRoZSByZW1vdGUgd29ya2VyLi4uIjoiUHJlcGFyaW5nIGFyY2hpdmUgYW5kIGRlcGVuZGVuY3kgZ3JhcGguLi4iLCJnZXRVcGxvYWRTdGF0dXMiKTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHI9PntsZXQgYT1yLnF1ZXJ5U2VsZWN0b3IoIiNsaXZlLXByb2dyZXNzIikscz1yLnF1ZXJ5U2VsZWN0b3IoIiN0ZXJtaW5hbC1wcm9ncmVzcyIpLG49cjtpZighYXx8IXMpcmV0dXJuO24uX19wcm9ncmVzc2JhckRlbW9JbnRlcnZhbElkJiZ3aW5kb3cuY2xlYXJJbnRlcnZhbChuLl9fcHJvZ3Jlc3NiYXJEZW1vSW50ZXJ2YWxJZCk7bGV0IG89MTIsbD0wLGM9aSgoKT0+e2EucGVyY2VudGFnZT1vLGEuc3RhdHVzVGV4dD1lKG8pLHMudGVybWluYWxMaW5lcz1bLi4udFtsXV0scy5wZXJjZW50YWdlPU1hdGgubWluKDEwMCwobCsxKSoyMCkscy5pbmRldGVybWluYXRlPWw8dC5sZW5ndGgtMSxvPW8+PTEwMD8xMjpNYXRoLm1pbigxMDAsbysxMSksbD1sPj10Lmxlbmd0aC0xPzA6bCsxfSwidXBkYXRlRGVtbyIpO2MoKSxuLl9fcHJvZ3Jlc3NiYXJEZW1vSW50ZXJ2YWxJZD13aW5kb3cuc2V0SW50ZXJ2YWwoYywxNDAwKX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vSW50cm8gewogICAgICAgICAgICBtYXgtd2lkdGg6IDcyMHB4OwogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUgMjAlIDMwJSkiLCJoc2woMjE1IDE4JSA3NiUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlR3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDAuNzgpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjA0KSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTAgMjIlIDg2JSkiLCJoc2woMjEwIDEwJSAxOCUpIil9OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQud2lkZSB7CiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCBoMyB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQgcCB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE0JSA0MCUpIiwiaHNsKDIxNSAxMCUgNjYlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICAgIH0KCiAgICAgICAgICAucHJvZ3Jlc3NTdGFjayB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuY29kZUxhYmVsIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE0JSA0NCUpIiwiaHNsKDIxNSAxMCUgNzAlKSIpfTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIH0KCiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5zaG93Y2FzZUNhcmQud2lkZSB7CiAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW9JbnRybyI+CiAgICAgICAgICA8Y29kZT5kZWVzLXByb2dyZXNzYmFyPC9jb2RlPiBjYW4gbm93IHBhaXIgYSBjbGFzc2ljIHByb2dyZXNzIGJhciB3aXRoIGEgZml4ZWQtaGVpZ2h0IHN0YXR1cyBhcmVhLiBVc2Ugc2ltcGxlIHN0YXR1cyB0ZXh0IGZvciBjbGVhciB1c2VyLWZhY2luZyB1cGRhdGVzIG9yIHN3aXRjaCB0byB0ZXJtaW5hbC1saWtlIGxpbmVzIHdoZW4geW91IHdhbnQgcmVjZW50IHN0ZXBzIHRvIHN0YXkgdmlzaWJsZSB3aXRob3V0IGNhdXNpbmcgbGF5b3V0IGp1bXBzLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNob3djYXNlR3JpZCI+CiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5EZXRlcm1pbmF0ZTwvZGl2PgogICAgICAgICAgICA8aDM+UGVyY2VudGFnZSBwbHVzIGN1cnJlbnQgdGFzazwvaDM+CiAgICAgICAgICAgIDxwPlVzZSBhIGxhYmVsLCBhIHBlcmNlbnRhZ2UsIGFuZCBvbmUgc2hvcnQgc3RhdHVzIGxpbmUgd2hlbiB0aGUgd29yayBpcyBtZWFzdXJhYmxlLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJNZWRpYSB1cGxvYWQiCiAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezY4fQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iVXBsb2FkaW5nIHRodW1ibmFpbHMgdG8gZWRnZSBjYWNoZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iQXNzZXQgc3luYyIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MTAwfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iQWxsIGZpbGVzIGFyZSBzeW5jZWQgYW5kIGF2YWlsYWJsZS4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+SW5kZXRlcm1pbmF0ZTwvZGl2PgogICAgICAgICAgICA8aDM+U3Bpbm5lci1zdHlsZSB0ZXh0IGluZGljYXRvcjwvaDM+CiAgICAgICAgICAgIDxwPldoZW4gdGhlcmUgaXMgbm8gdHJ1c3R3b3J0aHkgcGVyY2VudGFnZSB5ZXQsIGtlZXAgdGhlIGJhciBtb3ZpbmcgYW5kIGxldCB0aGUgdGV4dCBleHBsYWluIHdoYXQgaXMgaGFwcGVuaW5nLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJEZXBlbmRlbmN5IGluc3RhbGwiCiAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0keyEwfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iRG93bmxvYWRpbmcgcGFja2FnZSBtZXRhZGF0YS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iUXVldWVkIGpvYiIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MzJ9CiAgICAgICAgICAgICAgICAuc2hvd1BlcmNlbnRhZ2U9JHshMX0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IldhaXRpbmcgZm9yIGEgd29ya2VyIHNsb3QgdG8gYmVjb21lIGF2YWlsYWJsZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIHdpZGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPlRlcm1pbmFsIExpbmVzPC9kaXY+CiAgICAgICAgICAgIDxoMz5GaXhlZC1oZWlnaHQgdGVybWluYWwtc3R5bGUgc3RhdHVzIG91dHB1dDwvaDM+CiAgICAgICAgICAgIDxwPlRoZSBwYW5lbCBzdGF5cyB0aGUgc2FtZSBoZWlnaHQgd2hpbGUgdGhlIGxhdGVzdCBzdGVwIHN0YXlzIHZpc2libGUuIFRoaXMgaXMgdXNlZnVsIGZvciB1cGRhdGUgZmxvd3MsIGRvd25sb2FkcywgYW5kIHN0YWdlZCBiYWNrZ3JvdW5kIHdvcmsuPC9wPgogICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgIGlkPSJ0ZXJtaW5hbC1wcm9ncmVzcyIKICAgICAgICAgICAgICBsYWJlbD0iUmVsZWFzZSBidW5kbGUiCiAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHsyMH0KICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0keyEwfQogICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7NH0KICAgICAgICAgICAgICAudGVybWluYWxMaW5lcz0ke3RbMF19CiAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+TGl2ZSBEZW1vPC9kaXY+CiAgICAgICAgICAgIDxoMz5VcGRhdGluZyBwZXJjZW50YWdlIGFuZCB0ZXh0IHRvZ2V0aGVyPC9oMz4KICAgICAgICAgICAgPHA+QSBzaW5nbGUgY29tcG9uZW50IGNhbiBleHByZXNzIGJvdGggaG93IGZhciB0aGUgam9iIGlzIGFuZCB3aGljaCBwaGFzZSBpcyBjdXJyZW50bHkgYWN0aXZlLjwvcD4KICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICBpZD0ibGl2ZS1wcm9ncmVzcyIKICAgICAgICAgICAgICBsYWJlbD0iQ3VzdG9tZXIgZXhwb3J0IgogICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MTJ9CiAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iUHJlcGFyaW5nIGFyY2hpdmUgYW5kIGRlcGVuZGVuY3kgZ3JhcGguLi4iCiAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkNvbXBhdGliaWxpdHk8L2Rpdj4KICAgICAgICAgICAgPGgzPkxlZ2FjeSA8Y29kZT52YWx1ZTwvY29kZT4gYW5kIDxjb2RlPnByb2dyZXNzPC9jb2RlPiBpbnB1dHM8L2gzPgogICAgICAgICAgICA8cD5FeGlzdGluZyB1c2FnZXMgY2FuIGtlZXAgcGFzc2luZyBwZXJjZW50YWdlcyBkaXJlY3RseSBvciBub3JtYWxpemVkIHByb2dyZXNzIHZhbHVlcyBmcm9tIDAgdG8gMS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRnJvbSB2YWx1ZSIKICAgICAgICAgICAgICAgIC52YWx1ZT0kezc1fQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iTWlncmF0aW5nIGV4aXN0aW5nIHJlYWRtZS1zdHlsZSB1c2FnZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRnJvbSBwcm9ncmVzcyIKICAgICAgICAgICAgICAgIC5wcm9ncmVzcz0key40Mn0KICAgICAgICAgICAgICAgIC5zaG93UGVyY2VudGFnZT0keyExfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iUmVuZGVyaW5nIG5vcm1hbGl6ZWQgcHJvZ3Jlc3MgaW5wdXQuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIExjLGZzLHNKcixMN3Q9dSgoKT0+e2ZjKCk7aUpyKCk7dmUoKTtsdCgpO0xjPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxmcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sc0pyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1wcm9ncmVzc2JhciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdO3ZhciBkZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1Byb2dyZXNzYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1bUCh7dHlwZTpOdW1iZXJ9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpTdHJpbmd9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOk51bWJlcn0pXSxCPVtQKHt0eXBlOkJvb2xlYW59KV0sQT1bUCh7dHlwZTpCb29sZWFufSldLFk9W2llKCldLExjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4icGVyY2VudGFnZSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnBlcmNlbnRhZ2UsImdldCIpLHNldDppKChRLGZlKT0+e1EucGVyY2VudGFnZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxvLGwpLExjKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InZhbHVlImluIFEsImhhcyIpLGdldDppKFE9PlEudmFsdWUsImdldCIpLHNldDppKChRLGZlKT0+e1EudmFsdWU9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZCxmKSxMYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJwcm9ncmVzcyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnByb2dyZXNzPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGgsbSksTGModGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibGFiZWwiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5sYWJlbCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5sYWJlbD1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxiLGcpLExjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic3RhdHVzVGV4dCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnN0YXR1c1RleHQsImdldCIpLHNldDppKChRLGZlKT0+e1Euc3RhdHVzVGV4dD1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxrLE0pLExjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4idGVybWluYWxMaW5lcyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnRlcm1pbmFsTGluZXMsImdldCIpLHNldDppKChRLGZlKT0+e1EudGVybWluYWxMaW5lcz1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxfLFMpLExjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzUm93cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic3RhdHVzUm93cyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnN0YXR1c1Jvd3MsImdldCIpLHNldDppKChRLGZlKT0+e1Euc3RhdHVzUm93cz1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxMLEUpLExjKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kZXRlcm1pbmF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaW5kZXRlcm1pbmF0ZSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmluZGV0ZXJtaW5hdGUsImdldCIpLHNldDppKChRLGZlKT0+e1EuaW5kZXRlcm1pbmF0ZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxDLHopLExjKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1BlcmNlbnRhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNob3dQZXJjZW50YWdlImluIFEsImhhcyIpLGdldDppKFE9PlEuc2hvd1BlcmNlbnRhZ2UsImdldCIpLHNldDppKChRLGZlKT0+e1Euc2hvd1BlcmNlbnRhZ2U9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxGKSxMYyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZVNwaW5uZXJGcmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iYWN0aXZlU3Bpbm5lckZyYW1lImluIFEsImhhcyIpLGdldDppKFE9PlEuYWN0aXZlU3Bpbm5lckZyYW1lLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmFjdGl2ZVNwaW5uZXJGcmFtZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxHLFopLExjKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkR9LG51bGwsciksZGU9YT1lLnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPWFKcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9ZnModGhpcyxvLDApO2dldCBwZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBlcmNlbnRhZ2UoRCl7dGhpcy4jZT1EfSN0PShmcyh0aGlzLGwpLGZzKHRoaXMsZCxudWxsKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZhbHVlKEQpe3RoaXMuI3Q9RH0jcj0oZnModGhpcyxmKSxmcyh0aGlzLGgsbnVsbCkpO2dldCBwcm9ncmVzcygpe3JldHVybiB0aGlzLiNyfXNldCBwcm9ncmVzcyhEKXt0aGlzLiNyPUR9I2E9KGZzKHRoaXMsbSksZnModGhpcyxiLCIiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxhYmVsKEQpe3RoaXMuI2E9RH0jaT0oZnModGhpcyxnKSxmcyh0aGlzLGssIiIpKTtnZXQgc3RhdHVzVGV4dCgpe3JldHVybiB0aGlzLiNpfXNldCBzdGF0dXNUZXh0KEQpe3RoaXMuI2k9RH0jcz0oZnModGhpcyxNKSxmcyh0aGlzLF8sW10pKTtnZXQgdGVybWluYWxMaW5lcygpe3JldHVybiB0aGlzLiNzfXNldCB0ZXJtaW5hbExpbmVzKEQpe3RoaXMuI3M9RH0jbj0oZnModGhpcyxTKSxmcyh0aGlzLEwsMykpO2dldCBzdGF0dXNSb3dzKCl7cmV0dXJuIHRoaXMuI259c2V0IHN0YXR1c1Jvd3MoRCl7dGhpcy4jbj1EfSNvPShmcyh0aGlzLEUpLGZzKHRoaXMsQywhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IGluZGV0ZXJtaW5hdGUoRCl7dGhpcy4jbz1EfSNsPShmcyh0aGlzLHopLGZzKHRoaXMsJCwhMCkpO2dldCBzaG93UGVyY2VudGFnZSgpe3JldHVybiB0aGlzLiNsfXNldCBzaG93UGVyY2VudGFnZShEKXt0aGlzLiNsPUR9I2M9KGZzKHRoaXMsRiksZnModGhpcyxHLDApKTtnZXQgYWN0aXZlU3Bpbm5lckZyYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2ZVNwaW5uZXJGcmFtZShEKXt0aGlzLiNjPUR9c3Bpbm5lckludGVydmFsSWQ9KGZzKHRoaXMsWiksbnVsbCk7c3Bpbm5lckZyYW1lcz1bInwiLCIvIiwiLSIsIlxcIl07c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKFJwLnRleHQsT3AudGV4dCl9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJDb250YWluZXIgewogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0hlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0xhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAucHJvZ3Jlc3NWYWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE1JSA0MCUpIiwiaHNsKDIxNSAxNSUgNzAlKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VlZWVlYiIsIiM0NDQiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMC41cHggc29saWQgJHt4LmJkVGhlbWUoInRyYW5zcGFyZW50IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyRmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoT3AuYmx1ZUFjdGl2ZSxScC5ibHVlQWN0aXZlKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJGaWxsLmluZGV0ZXJtaW5hdGUgewogICAgICAgIHdpZHRoOiAzNCU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgICBhbmltYXRpb246IGluZGV0ZXJtaW5hdGVTbGlkZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICB9CgogICAgICAuc3RhdHVzUGFuZWwgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXN0YXR1cy1yb3dzLCAzKSAqIDEuMzVlbSArIDE2cHgpOwogICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc3RhdHVzLXJvd3MsIDMpICogMS4zNWVtICsgMTZweCk7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDg2JSkiLCJoc2woMjEwIDEwJSAyNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDMzJSA5OCUpIiwiaHNsKDIyMCAyMCUgMTAlKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnN0YXR1c1RleHRSb3csCiAgICAgIC50ZXJtaW5hbExpbmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLWhlaWdodDogMS4zNWVtOwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTUgMTglIDc4JSkiLCJoc2woMjE1IDEwJSAzNCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubGluZVByZWZpeCB7CiAgICAgICAgd2lkdGg6IDFjaDsKICAgICAgICBmbGV4OiAwIDAgMWNoOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZShPcC5ibHVlQWN0aXZlLFJwLmJsdWVBY3RpdmUpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5saW5lVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDE1JSAyNSUpIiwiaHNsKDIxMCAxNSUgODYlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsTGluZTpub3QoLmN1cnJlbnQpIC5saW5lVGV4dCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDEyJSA0MiUpIiwiaHNsKDIxNSAxMiUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBpbmRldGVybWluYXRlU2xpZGUgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTIwJSk7CiAgICAgICAgfQoKICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMjAlKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnN5bmNTcGlubmVyU3RhdGUoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuc3RvcFNwaW5uZXIoKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfXVwZGF0ZWQoRCl7c3VwZXIudXBkYXRlZChEKSx0aGlzLnN5bmNTcGlubmVyU3RhdGUoKSxELmhhcygidGVybWluYWxMaW5lcyIpJiZ0aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoPjAmJnRoaXMuc2Nyb2xsVGVybWluYWxUb0JvdHRvbSgpfXJlbmRlcigpe2xldCBEPXRoaXMuZ2V0RWZmZWN0aXZlUGVyY2VudGFnZSgpLFE9ISF0aGlzLmxhYmVsfHx0aGlzLnNob3dQZXJjZW50YWdlJiYhdGhpcy5pbmRldGVybWluYXRlLGZlPXRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCxUPWZlfHx0aGlzLnN0YXR1c1RleHQudHJpbSgpLmxlbmd0aD4wLFc9dGhpcy5nZXRSZW5kZXJlZFN0YXR1c1Jvd3MoKSxwZT10aGlzLnNwaW5uZXJGcmFtZXNbdGhpcy5hY3RpdmVTcGlubmVyRnJhbWVdPz90aGlzLnNwaW5uZXJGcmFtZXNbMF07cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyQ29udGFpbmVyIj4KICAgICAgICAke1E/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzSGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NMYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PgogICAgICAgICAgICAke3RoaXMuc2hvd1BlcmNlbnRhZ2UmJiF0aGlzLmluZGV0ZXJtaW5hdGU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1ZhbHVlIj4ke3RoaXMuZm9ybWF0UGVyY2VudGFnZShEKX0lPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InByb2dyZXNzQmFyRmlsbCAke3RoaXMuaW5kZXRlcm1pbmF0ZT8iaW5kZXRlcm1pbmF0ZSI6IiJ9IgogICAgICAgICAgICBzdHlsZT0iJHt0aGlzLmluZGV0ZXJtaW5hdGU/IiI6YHdpZHRoOiAke0R9JTtgfSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke1Q/d2AKICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InN0YXR1c1BhbmVsIgogICAgICAgICAgICBzdHlsZT0iLS1zdGF0dXMtcm93czogJHtXfTsiCiAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICBhcmlhLWF0b21pYz0idHJ1ZSIKICAgICAgICAgID4KICAgICAgICAgICAgJHtmZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsU2Nyb2xsZXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLnRlcm1pbmFsTGluZXMubWFwKChtZSxxKT0+e2xldCBIPXE9PT10aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoLTEsVT10aGlzLmluZGV0ZXJtaW5hdGUmJkg/cGU6Ij4iO3JldHVybiB3YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsTGluZSAke0g/ImN1cnJlbnQiOiIifSI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVByZWZpeCI+JHtVfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lVGV4dCI+JHttZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c1RleHRSb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxpbmVQcmVmaXgiPiR7dGhpcy5pbmRldGVybWluYXRlP3BlOiI+In08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVRleHQiPiR7dGhpcy5zdGF0dXNUZXh0fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRFZmZlY3RpdmVQZXJjZW50YWdlKCl7aWYodHlwZW9mIHRoaXMudmFsdWU9PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUodGhpcy52YWx1ZSkpcmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKHRoaXMudmFsdWUpO2lmKHR5cGVvZiB0aGlzLnByb2dyZXNzPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHRoaXMucHJvZ3Jlc3MpKXtsZXQgRD10aGlzLnByb2dyZXNzPj0wJiZ0aGlzLnByb2dyZXNzPD0xP3RoaXMucHJvZ3Jlc3MqMTAwOnRoaXMucHJvZ3Jlc3M7cmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKEQpfXJldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZSh0aGlzLnBlcmNlbnRhZ2UpfWdldFJlbmRlcmVkU3RhdHVzUm93cygpe2xldCBEPU51bWJlci5pc0Zpbml0ZSh0aGlzLnN0YXR1c1Jvd3MpP01hdGguZmxvb3IodGhpcy5zdGF0dXNSb3dzKTozO3JldHVybiBNYXRoLm1heCgxLEQpfWNsYW1wUGVyY2VudGFnZShEKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsRCkpfWZvcm1hdFBlcmNlbnRhZ2UoRCl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoRCk/YCR7RH1gOkQudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIil9c3luY1NwaW5uZXJTdGF0ZSgpe2xldCBEPXRoaXMuaW5kZXRlcm1pbmF0ZSYmKHRoaXMuc3RhdHVzVGV4dC50cmltKCkubGVuZ3RoPjB8fHRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCk7aWYoRCYmdGhpcy5zcGlubmVySW50ZXJ2YWxJZD09PW51bGwpe3RoaXMuc3Bpbm5lckludGVydmFsSWQ9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy5hY3RpdmVTcGlubmVyRnJhbWU9KHRoaXMuYWN0aXZlU3Bpbm5lckZyYW1lKzEpJXRoaXMuc3Bpbm5lckZyYW1lcy5sZW5ndGh9LDEyMCk7cmV0dXJufUR8fHRoaXMuc3RvcFNwaW5uZXIoKX1zdG9wU3Bpbm5lcigpe3RoaXMuc3Bpbm5lckludGVydmFsSWQhPT1udWxsJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5zcGlubmVySW50ZXJ2YWxJZCksdGhpcy5zcGlubmVySW50ZXJ2YWxJZD1udWxsKSx0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZT0wfXNjcm9sbFRlcm1pbmFsVG9Cb3R0b20oKXtsZXQgRD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbFNjcm9sbGVyIik7RCYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0Quc2Nyb2xsVG9wPUQuc2Nyb2xsSGVpZ2h0fSl9c3RhdGlje2ZzKGEscil9fTtyZXR1cm4gZGU9YX0pKCl9KTt2YXIgbkpyPXUoKCk9PntMN3QoKX0pO3ZhciBFNmUsb2csb0pyLGxKcj11KCgpPT57dmUoKTtNcigpO2x0KCk7RTZlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxvZz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sb0pyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zcGlubmVyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTcGlubmVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCgpXSxFNmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJzaXplImluIGcsImhhcyIpLGdldDppKGc9Pmcuc2l6ZSwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnNpemU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLEU2ZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJudyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iYm53ImluIGcsImhhcyIpLGdldDppKGc9PmcuYm53LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuYm53PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCxmKSxFNmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InN0YXR1cyJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnN0YXR1cywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnN0YXR1cz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksRTZlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdO3N0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1zcGlubmVyPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc2l6ZT0kezY0fSBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezY0fSBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICBgLCJkZW1vIik7I2U9b2codGhpcyxvLDIwKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGIpe3RoaXMuI2U9Yn0jdD0ob2codGhpcyxsKSxvZyh0aGlzLGQsITEpKTtnZXQgYm53KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJudyhiKXt0aGlzLiN0PWJ9I3I9KG9nKHRoaXMsZiksb2codGhpcyxoLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNyfXNldCBzdGF0dXMoYil7dGhpcy4jcj1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxvZyh0aGlzLG0pfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAjbG9hZGluZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogIzhiYzM0YTAwOwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICNsb2FkaW5nIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiIzhiYzM0YSIsdGhpcy5ibnc/IiNmZmYiOiIjOGJjMzRhIil9OwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiNlNjRhMTkiLHRoaXMuYm53PyIjZmZmIjoiI2U2NGExOSIpfTsKICAgICAgICB9CiAgICAgICAgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSIke3RoaXMuc3RhdHVzfSIgaWQ9ImxvYWRpbmciPgogICAgICAgICR7KCgpPT57aWYodGhpcy5zdGF0dXM9PT0ic3VjY2VzcyIpcmV0dXJuIHdgPGRlZXMtaWNvbiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTsiIC5pY29uPSR7ImZhOmNpcmNsZS1jaGVjayJ9PjwvZGVlcy1pY29uPmA7aWYodGhpcy5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiB3YDxkZWVzLWljb24gLmljb249JHsiZmE6Y2lyY2xlLXhtYXJrIn0+PC9kZWVzLWljb24+YH0pKCl9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7b2coYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIGNKcj11KCgpPT57bEpyKCl9KTt2YXIgZEpyLHVKcj11KCgpPT57dmUoKTtEN3QoKTtnOSgpO2RKcj1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CgogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzY2NiIsIiNhYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CgogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWJ1dHRvbiBjbGFzcz0idGhlbWUtdG9nZ2xlIiBAY2xpY2tlZD0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIERpZmZlcmVudCB0b2FzdCB0eXBlcyBmb3IgdmFyaW91cyBub3RpZmljYXRpb24gc2NlbmFyaW9zLiBDbGljayBhbnkgYnV0dG9uIHRvIHNob3cgYSB0b2FzdC4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PnttYS5pbmZvKCJUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZSIpfX0+SW5mbyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCIgQGNsaWNrZWQ9JHsoKT0+e21hLnN1Y2Nlc3MoIk9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+U3VjY2VzcyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEud2FybmluZygiUGxlYXNlIHJldmlldyBiZWZvcmUgcHJvY2VlZGluZyIpfX0+V2FybmluZyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuZXJyb3IoIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmciKX19PkVycm9yIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgUG9zaXRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUb2FzdHMgY2FuIGFwcGVhciBpbiBkaWZmZXJlbnQgcG9zaXRpb25zIG9uIHRoZSBzY3JlZW4uCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuc2hvdyh7bWVzc2FnZToiVG9wIFJpZ2h0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLXJpZ2h0In0pfX0+VG9wIFJpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PnttYS5zaG93KHttZXNzYWdlOiJUb3AgTGVmdCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1sZWZ0In0pfX0+VG9wIExlZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IkJvdHRvbSBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1yaWdodCJ9KX19PkJvdHRvbSBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuc2hvdyh7bWVzc2FnZToiQm90dG9tIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tbGVmdCJ9KX19PkJvdHRvbSBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PnttYS5zaG93KHttZXNzYWdlOiJUb3AgQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLWNlbnRlciJ9KX19PlRvcCBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IkJvdHRvbSBDZW50ZXIgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tY2VudGVyIn0pfX0+Qm90dG9tIENlbnRlcjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkR1cmF0aW9uIE9wdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbnRyb2wgaG93IGxvbmcgdG9hc3RzIHN0YXkgdmlzaWJsZS4gRHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IlF1aWNrIHRvYXN0ICgxIHNlY29uZCkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjFlM30pfX0+MSBTZWNvbmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IlN0YW5kYXJkIHRvYXN0ICgzIHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjozZTN9KX19PjMgU2Vjb25kcyAoRGVmYXVsdCk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IkxvbmcgdG9hc3QgKDUgc2Vjb25kcykiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjVlM30pfX0+NSBTZWNvbmRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PnttYS5zaG93KHttZXNzYWdlOiJNYW51YWwgZGlzbWlzcyBvbmx5IChjbGljayB0byBjbG9zZSkiLHR5cGU6Indhcm5pbmciLGR1cmF0aW9uOjB9KX19Pk5vIEF1dG8tRGlzbWlzczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIFRvYXN0czwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgTXVsdGlwbGUgdG9hc3RzIHN0YWNrIGF1dG9tYXRpY2FsbHkuIFRoZXkgbWFpbnRhaW4gdGhlaXIgb3JkZXIgYW5kIGFuaW1hdGUgc21vb3RobHkuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuaW5mbygiRmlyc3Qgbm90aWZpY2F0aW9uIiksc2V0VGltZW91dCgoKT0+bWEuc3VjY2VzcygiU2Vjb25kIG5vdGlmaWNhdGlvbiIpLDIwMCksc2V0VGltZW91dCgoKT0+bWEud2FybmluZygiVGhpcmQgbm90aWZpY2F0aW9uIiksNDAwKSxzZXRUaW1lb3V0KCgpPT5tYS5lcnJvcigiRm91cnRoIG5vdGlmaWNhdGlvbiIpLDYwMCl9fT5TaG93IE11bHRpcGxlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntmb3IobGV0IHQ9MTt0PD01O3QrKylzZXRUaW1lb3V0KCgpPT57bWEuc2hvdyh7bWVzc2FnZTpgTm90aWZpY2F0aW9uICMke3R9YCx0eXBlOnQlMj09PTA/InN1Y2Nlc3MiOiJpbmZvIixkdXJhdGlvbjoyZTMrdCo1MDB9KX0sdCoxMDApfX0+UmFwaWQgRmlyZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlJlYWwtV29ybGQgRXhhbXBsZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbW1vbiB1c2UgY2FzZXMgZm9yIHRvYXN0IG5vdGlmaWNhdGlvbnMgaW4gYXBwbGljYXRpb25zLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHQ9YXdhaXQgbWEuc2hvdyh7bWVzc2FnZToiU2F2aW5nIGNoYW5nZXMuLi4iLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57dC5kaXNtaXNzKCksbWEuc3VjY2VzcygiQ2hhbmdlcyBzYXZlZCBzdWNjZXNzZnVsbHkhIil9LDJlMyl9fT5TYXZlIE9wZXJhdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuZXJyb3IoIkZhaWxlZCB0byBjb25uZWN0IHRvIHNlcnZlci4gUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbi4iKX19Pk5ldHdvcmsgRXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLndhcm5pbmcoIllvdXIgc2Vzc2lvbiB3aWxsIGV4cGlyZSBpbiA1IG1pbnV0ZXMiKX19PlNlc3Npb24gV2FybmluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuc3VjY2VzcygiRmlsZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkhIil9fT5VcGxvYWQgQ29tcGxldGU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Qcm9ncmFtbWF0aWMgQ29udHJvbDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQWR2YW5jZWQgY29udHJvbCBvdmVyIHRvYXN0IGJlaGF2aW9yLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHQ9YXdhaXQgbWEuc2hvdyh7bWVzc2FnZToiVGhpcyB0b2FzdCBjYW4gYmUgZGlzbWlzc2VkIHByb2dyYW1tYXRpY2FsbHkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57dC5kaXNtaXNzKCksbWEuc3VjY2VzcygiVG9hc3QgZGlzbWlzc2VkIGFmdGVyIDIgc2Vjb25kcyIpfSwyZTMpfX0+UHJvZ3JhbW1hdGljIERpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLmluZm8oIkluZm8gbWVzc2FnZSIsMmUzKSxzZXRUaW1lb3V0KCgpPT5tYS5zdWNjZXNzKCJTdWNjZXNzIG1lc3NhZ2UiLDJlMyksNTAwKSxzZXRUaW1lb3V0KCgpPT5tYS53YXJuaW5nKCJXYXJuaW5nIG1lc3NhZ2UiLDJlMyksMWUzKSxzZXRUaW1lb3V0KCgpPT5tYS5lcnJvcigiRXJyb3IgbWVzc2FnZSIsMmUzKSwxNTAwKX19PkNvbnZlbmllbmNlIE1ldGhvZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsImRlbW9GdW5jIil9KTt2YXIgUnJlLHgzLG1hLEQ3dD11KCgpPT57dmUoKTtNcigpO09vKCk7dUpyKCk7X3MoKTtsdCgpO1JyZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0seDM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LG1hPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy10b2FzdCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVG9hc3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOk51bWJlcn0pXSx2PVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxScmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXNzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJtZXNzYWdlImluIE0sImhhcyIpLGdldDppKE09Pk0ubWVzc2FnZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLm1lc3NhZ2U9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLFJyZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+InR5cGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS50eXBlLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00udHlwZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsZiksUnJlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImR1cmF0aW9uImluIE0sImhhcyIpLGdldDppKE09Pk0uZHVyYXRpb24sImdldCIpLHNldDppKChNLE4pPT57TS5kdXJhdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGgsbSksUnJlKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJpc1Zpc2libGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5pc1Zpc2libGUsImdldCIpLHNldDppKChNLE4pPT57TS5pc1Zpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLFJyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPWRKcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIiwiT3ZlcmxheSJdO3N0YXRpYyB0b2FzdENvbnRhaW5lcnM9bmV3IE1hcDtzdGF0aWMgZ2V0T3JDcmVhdGVDb250YWluZXIoayl7aWYoIXRoaXMudG9hc3RDb250YWluZXJzLmhhcyhrKSl7bGV0IE09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7c3dpdGNoKE0uY2xhc3NOYW1lPWB0b2FzdC1jb250YWluZXIgdG9hc3QtY29udGFpbmVyLSR7a31gLE0uc3R5bGUuY3NzVGV4dD1gCiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6ICR7anMub3ZlcmxheS50b2FzdH07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIGAsayl7Y2FzZSJ0b3AtcmlnaHQiOk0uc3R5bGUudG9wPSIwIixNLnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlInRvcC1sZWZ0IjpNLnN0eWxlLnRvcD0iMCIsTS5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlImJvdHRvbS1yaWdodCI6TS5zdHlsZS5ib3R0b209IjAiLE0uc3R5bGUucmlnaHQ9IjAiO2JyZWFrO2Nhc2UiYm90dG9tLWxlZnQiOk0uc3R5bGUuYm90dG9tPSIwIixNLnN0eWxlLmxlZnQ9IjAiO2JyZWFrO2Nhc2UidG9wLWNlbnRlciI6TS5zdHlsZS50b3A9IjAiLE0uc3R5bGUubGVmdD0iNTAlIixNLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWs7Y2FzZSJib3R0b20tY2VudGVyIjpNLnN0eWxlLmJvdHRvbT0iMCIsTS5zdHlsZS5sZWZ0PSI1MCUiLE0uc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKC01MCUpIjticmVha31kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKE0pLHRoaXMudG9hc3RDb250YWluZXJzLnNldChrLE0pfXJldHVybiB0aGlzLnRvYXN0Q29udGFpbmVycy5nZXQoayl9c3RhdGljIGFzeW5jIHNob3coayl7bGV0IE09dHlwZW9mIGs9PSJzdHJpbmciP3ttZXNzYWdlOmt9OmssTj1uZXcgeTtyZXR1cm4gTi5tZXNzYWdlPU0ubWVzc2FnZSxOLnR5cGU9TS50eXBlfHwiaW5mbyIsTi5kdXJhdGlvbj1NLmR1cmF0aW9ufHwzZTMsdGhpcy5nZXRPckNyZWF0ZUNvbnRhaW5lcihNLnBvc2l0aW9ufHwidG9wLXJpZ2h0IikuYXBwZW5kQ2hpbGQoTiksYXdhaXQgTi51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntOLmlzVmlzaWJsZT0hMH0pLE4uZHVyYXRpb24+MCYmc2V0VGltZW91dCgoKT0+e04uZGlzbWlzcygpfSxOLmR1cmF0aW9uKSxOfXN0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGspe3JldHVybiB0aGlzLnNob3coayl9c3RhdGljIGluZm8oayxNKXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOmssdHlwZToiaW5mbyIsZHVyYXRpb246TX0pfXN0YXRpYyBzdWNjZXNzKGssTSl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTprLHR5cGU6InN1Y2Nlc3MiLGR1cmF0aW9uOk19KX1zdGF0aWMgd2FybmluZyhrLE0pe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6ayx0eXBlOiJ3YXJuaW5nIixkdXJhdGlvbjpNfSl9c3RhdGljIGVycm9yKGssTSl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTprLHR5cGU6ImVycm9yIixkdXJhdGlvbjpNfSl9I2U9eDModGhpcyxvLCIiKTtnZXQgbWVzc2FnZSgpe3JldHVybiB0aGlzLiNlfXNldCBtZXNzYWdlKGspe3RoaXMuI2U9a30jdD0oeDModGhpcyxsKSx4Myh0aGlzLGQsImluZm8iKSk7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdHlwZShrKXt0aGlzLiN0PWt9I3I9KHgzKHRoaXMsZikseDModGhpcyxoLDNlMykpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkdXJhdGlvbihrKXt0aGlzLiNyPWt9I2E9KHgzKHRoaXMsbSkseDModGhpcyxiLCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNhfXNldCBpc1Zpc2libGUoayl7dGhpcy4jYT1rfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx4Myh0aGlzLGcpLFphLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICA6aG9zdChbaXN2aXNpYmxlXSkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB9CgogICAgICAudG9hc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZiIsIiMyMjIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHt4LmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMCwwLDAsMC4zKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDMwMHB4OwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAudG9hc3Q6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNsb3NlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLyogVHlwZS1zcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3R5cGU9ImluZm8iXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMDA4NGZmOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0ic3VjY2VzcyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJ3YXJuaW5nIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9ImVycm9yIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2VmNDQ0NDsKICAgICAgfQoKICAgICAgLyogUHJvZ3Jlc3MgYmFyICovCiAgICAgIC5wcm9ncmVzcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsKICAgICAgICBhbmltYXRpb246IHByb2dyZXNzIGxpbmVhciBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaz17aW5mbzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTFhMSAxIDAgMTAtMiAwdjJIN2ExIDEgMCAxMDAgMmgydjJhMSAxIDAgMTAyIDB2LTJoMmExIDEgMCAxMDAtMmgtMlY3eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsc3VjY2Vzczp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuNzA3LTkuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDkgMTAuNTg2IDcuNzA3IDkuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDIgMmExIDEgMCAwMDEuNDE0IDBsNC00eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsd2FybmluZzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTguMjU3IDMuMDk5Yy43NjUtMS4zNiAyLjcyMi0xLjM2IDMuNDg2IDBsNS41OCA5LjkyYy43NSAxLjMzNC0uMjEzIDIuOTgtMS43NDIgMi45OEg0LjQyYy0xLjUzIDAtMi40OTMtMS42NDYtMS43NDMtMi45OGw1LjU4LTkuOTJ6TTExIDEzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTEtOGExIDEgMCAwMC0xIDF2M2ExIDEgMCAwMDIgMFY2YTEgMSAwIDAwLTEtMXoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLGVycm9yOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNOC43MDcgNy4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRMOC41ODYgMTBsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTEuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTEuNDE0IDEwbDEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEwIDguNTg2IDguNzA3IDcuMjkzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmB9O3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0b2FzdCIgQGNsaWNrPSR7dGhpcy5kaXNtaXNzfT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uIj4KICAgICAgICAgICR7a1t0aGlzLnR5cGVdfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPiR7dGhpcy5tZXNzYWdlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIiBzdHlsZT0iYW5pbWF0aW9uLWR1cmF0aW9uOiAke3RoaXMuZHVyYXRpb259bXMiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc21pc3MoKXt0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZShNPT5zZXRUaW1lb3V0KE0sMzAwKSksdGhpcy5yZW1vdmUoKTtsZXQgaz10aGlzLnBhcmVudEVsZW1lbnQ7aWYoayYmay5jaGlsZHJlbi5sZW5ndGg9PT0wKXtrLnJlbW92ZSgpO2ZvcihsZXRbTSxOXW9mIHkudG9hc3RDb250YWluZXJzLmVudHJpZXMoKSlpZihOPT09ayl7eS50b2FzdENvbnRhaW5lcnMuZGVsZXRlKE0pO2JyZWFrfX19Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXRBdHRyaWJ1dGUoInR5cGUiLHRoaXMudHlwZSl9c3RhdGlje3gzKGEscil9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBwSnI9dSgoKT0+e0Q3dCgpfSk7dmFyIGZKcj11KCgpPT57VVhyKCk7WlhyKCk7ckpyKCk7bkpyKCk7Y0pyKCk7cEpyKCl9KTt2YXIgaEpyPXUoKCk9PntCeSgpfSk7dmFyIG1Kcj11KCgpPT57dzkoKX0pO3ZhciBnSnI9dSgoKT0+e2hKcigpO21KcigpfSk7dmFyIGJKcj11KCgpPT57Q2koKX0pO3ZhciB4SnI9dSgoKT0+e0U2dCgpfSk7dmFyIHZKcj11KCgpPT57VTZ0KCl9KTt2YXIgeUpyPXUoKCk9PntKNnQoKX0pO3ZhciB3SnI9dSgoKT0+e1c2dCgpfSk7dmFyIGtKcj11KCgpPT57RzZ0KCl9KTt2YXIgU0pyPXUoKCk9PntSNnQoKX0pO3ZhciBNSnI9dSgoKT0+e1dwZSgpfSk7dmFyIENKcj11KCgpPT57QzZlKCl9KTt2YXIgekpyPXUoKCk9Pnt9KTt2YXIgX0pyPXUoKCk9Pnt6SnIoKX0pO3ZhciBUSnI9dSgoKT0+e0s2dCgpfSk7dmFyIExKcj11KCgpPT57UTZ0KCl9KTt2YXIgREpyPXUoKCk9PntNNmUoKTtKOHQoKX0pO3ZhciBJNmUsJEpyPXUoKCk9PntJNmU9Y2xhc3N7c3RhdGlje2kodGhpcywiSW1hZ2VDcm9wcGVyIil9b3B0aW9ucztjYW52YXM7Y3R4O2ltZztvdmVybGF5Q2FudmFzO292ZXJsYXlDdHg7Y3JvcFg9MDtjcm9wWT0wO2Nyb3BTaXplPTIwMDttaW5Dcm9wU2l6ZT01MDtpc0RyYWdnaW5nPSExO2lzUmVzaXppbmc9ITE7ZHJhZ1N0YXJ0WD0wO2RyYWdTdGFydFk9MDtyZXNpemVIYW5kbGU9IiI7aW1hZ2VTY2FsZT0xO2ltYWdlT2Zmc2V0WD0wO2ltYWdlT2Zmc2V0WT0wO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17bWluU2l6ZTo1MCxvdXRwdXRTaXplOjgwMCxvdXRwdXRRdWFsaXR5Oi45NSwuLi5lfSx0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMub3ZlcmxheUNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLm92ZXJsYXlDdHg9dGhpcy5vdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5pbWc9bmV3IEltYWdlfWFzeW5jIGluaXRpYWxpemUoKXthd2FpdCB0aGlzLmxvYWRJbWFnZSgpLHRoaXMuc2V0dXBDYW52YXNlcygpLHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpLHRoaXMucmVuZGVyKCl9YXN5bmMgbG9hZEltYWdlKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLHIpPT57dGhpcy5pbWcub25sb2FkPSgpPT5lKCksdGhpcy5pbWcub25lcnJvcj1yLHRoaXMuaW1nLnNyYz10aGlzLm9wdGlvbnMuaW1hZ2V9KX1zZXR1cENhbnZhc2VzKCl7bGV0IGU9dGhpcy5vcHRpb25zLmNvbnRhaW5lcixyPU1hdGgubWluKGUuY2xpZW50V2lkdGgsZS5jbGllbnRIZWlnaHQpO3RoaXMuY2FudmFzLndpZHRoPXIsdGhpcy5jYW52YXMuaGVpZ2h0PXIsdGhpcy5jYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5jYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMuY2FudmFzLnN0eWxlLmxlZnQ9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aD1yLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQ9cix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJtb3ZlIixlLmFwcGVuZENoaWxkKHRoaXMuY2FudmFzKSxlLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUNhbnZhcyk7bGV0IGE9TWF0aC5taW4oci90aGlzLmltZy53aWR0aCxyL3RoaXMuaW1nLmhlaWdodCk7dGhpcy5pbWFnZVNjYWxlPWEsdGhpcy5pbWFnZU9mZnNldFg9KHItdGhpcy5pbWcud2lkdGgqYSkvMix0aGlzLmltYWdlT2Zmc2V0WT0oci10aGlzLmltZy5oZWlnaHQqYSkvMjtsZXQgcz10aGlzLmltZy53aWR0aCphLG49dGhpcy5pbWcuaGVpZ2h0KmEsbz1NYXRoLm1pbihzLG4sciouOCk7dGhpcy5jcm9wU2l6ZT1vKi44LHRoaXMuY3JvcFg9KHItdGhpcy5jcm9wU2l6ZSkvMix0aGlzLmNyb3BZPShyLXRoaXMuY3JvcFNpemUpLzJ9c2V0dXBFdmVudExpc3RlbmVycygpe3RoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuaGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5oYW5kbGVUb3VjaEVuZC5iaW5kKHRoaXMpKX1oYW5kbGVNb3VzZURvd24oZSl7bGV0IHI9dGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9KGUuY2xpZW50WC1yLmxlZnQpKih0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgvci53aWR0aCkscz0oZS5jbGllbnRZLXIudG9wKSoodGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodC9yLmhlaWdodCksbj10aGlzLmdldFJlc2l6ZUhhbmRsZShhLHMpO24/KHRoaXMuaXNSZXNpemluZz0hMCx0aGlzLnJlc2l6ZUhhbmRsZT1uKTp0aGlzLmlzSW5zaWRlQ3JvcEFyZWEoYSxzKSYmKHRoaXMuaXNEcmFnZ2luZz0hMCksdGhpcy5kcmFnU3RhcnRYPWEsdGhpcy5kcmFnU3RhcnRZPXN9aGFuZGxlTW91c2VNb3ZlKGUpe2xldCByPXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPShlLmNsaWVudFgtci5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Iud2lkdGgpLHM9KGUuY2xpZW50WS1yLnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvci5oZWlnaHQpLG49dGhpcy5nZXRSZXNpemVIYW5kbGUoYSxzKTtpZihuP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9dGhpcy5nZXRSZXNpemVDdXJzb3Iobik6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGEscyk/dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSI6dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0iZGVmYXVsdCIsdGhpcy5pc0RyYWdnaW5nKXtsZXQgbz1hLXRoaXMuZHJhZ1N0YXJ0WCxsPXMtdGhpcy5kcmFnU3RhcnRZLGM9dGhpcy5pbWFnZU9mZnNldFgsZD10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZSxmPXRoaXMuaW1hZ2VPZmZzZXRZLHA9dGhpcy5pbWFnZU9mZnNldFkrdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZS10aGlzLmNyb3BTaXplO3RoaXMuY3JvcFg9TWF0aC5tYXgoYyxNYXRoLm1pbihkLHRoaXMuY3JvcFgrbykpLHRoaXMuY3JvcFk9TWF0aC5tYXgoZixNYXRoLm1pbihwLHRoaXMuY3JvcFkrbCkpLHRoaXMuZHJhZ1N0YXJ0WD1hLHRoaXMuZHJhZ1N0YXJ0WT1zLHRoaXMucmVuZGVyKCl9dGhpcy5pc1Jlc2l6aW5nJiYodGhpcy5oYW5kbGVSZXNpemUoYSxzKSx0aGlzLmRyYWdTdGFydFg9YSx0aGlzLmRyYWdTdGFydFk9cyx0aGlzLnJlbmRlcigpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuaXNSZXNpemluZz0hMSx0aGlzLnJlc2l6ZUhhbmRsZT0iIn1oYW5kbGVUb3VjaFN0YXJ0KGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgcj1lLnRvdWNoZXNbMF0sYT1uZXcgTW91c2VFdmVudCgibW91c2Vkb3duIix7Y2xpZW50WDpyLmNsaWVudFgsY2xpZW50WTpyLmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlRG93bihhKX1oYW5kbGVUb3VjaE1vdmUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCByPWUudG91Y2hlc1swXSxhPW5ldyBNb3VzZUV2ZW50KCJtb3VzZW1vdmUiLHtjbGllbnRYOnIuY2xpZW50WCxjbGllbnRZOnIuY2xpZW50WX0pO3RoaXMuaGFuZGxlTW91c2VNb3ZlKGEpfWhhbmRsZVRvdWNoRW5kKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1vdXNlVXAoKX1nZXRSZXNpemVIYW5kbGUoZSxyKXtsZXQgcz17bnc6e3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LG5lOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHN3Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHNlOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX19O2ZvcihsZXRbbixvXW9mIE9iamVjdC5lbnRyaWVzKHMpKWlmKE1hdGguYWJzKGUtby54KTwyMCYmTWF0aC5hYnMoci1vLnkpPDIwKXJldHVybiBuO3JldHVybiIifWdldFJlc2l6ZUN1cnNvcihlKXtyZXR1cm57bnc6Im53LXJlc2l6ZSIsbmU6Im5lLXJlc2l6ZSIsc3c6InN3LXJlc2l6ZSIsc2U6InNlLXJlc2l6ZSJ9W2VdfHwiZGVmYXVsdCJ9aXNJbnNpZGVDcm9wQXJlYShlLHIpe3JldHVybiBlPj10aGlzLmNyb3BYJiZlPD10aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUmJnI+PXRoaXMuY3JvcFkmJnI8PXRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1oYW5kbGVSZXNpemUoZSxyKXtsZXQgYT1lLXRoaXMuZHJhZ1N0YXJ0WCxzPXItdGhpcy5kcmFnU3RhcnRZLG49dGhpcy5pbWFnZU9mZnNldFgsbz10aGlzLmltYWdlT2Zmc2V0WSxsPXRoaXMuaW1hZ2VPZmZzZXRYK3RoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSxjPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGU7c3dpdGNoKHRoaXMucmVzaXplSGFuZGxlKXtjYXNlInNlIjp0aGlzLmNyb3BTaXplPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsTWF0aC5taW4odGhpcy5jcm9wU2l6ZStNYXRoLm1heChhLHMpLE1hdGgubWluKGwtdGhpcy5jcm9wWCxjLXRoaXMuY3JvcFkpKSk7YnJlYWs7Y2FzZSJudyI6bGV0IGQ9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplLU1hdGgubWF4KGEscykpLGY9dGhpcy5jcm9wU2l6ZS1kLHA9dGhpcy5jcm9wWCtmLGg9dGhpcy5jcm9wWStmO3A+PW4mJmg+PW8mJih0aGlzLmNyb3BYPXAsdGhpcy5jcm9wWT1oLHRoaXMuY3JvcFNpemU9ZCk7YnJlYWs7Y2FzZSJuZSI6bGV0IG09TWF0aC5tYXgoYSwtcyksdj1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUrbSksYj12LXRoaXMuY3JvcFNpemUsZz10aGlzLmNyb3BZLWI7Zz49byYmdGhpcy5jcm9wWCt2PD1sJiYodGhpcy5jcm9wWT1nLHRoaXMuY3JvcFNpemU9dik7YnJlYWs7Y2FzZSJzdyI6bGV0IHk9TWF0aC5tYXgoLWEscyksaz1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUreSksTT1rLXRoaXMuY3JvcFNpemUsTj10aGlzLmNyb3BYLU07Tj49biYmdGhpcy5jcm9wWStrPD1jJiYodGhpcy5jcm9wWD1OLHRoaXMuY3JvcFNpemU9ayk7YnJlYWt9fXJlbmRlcigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5jdHguZmlsbFN0eWxlPSIjMDAwMDAwIix0aGlzLmN0eC5maWxsUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWcsdGhpcy5pbWFnZU9mZnNldFgsdGhpcy5pbWFnZU9mZnNldFksdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLHRoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUpLHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9InJnYmEoMCwgMCwgMCwgMC41KSIsdGhpcy5vdmVybGF5Q3R4LmZpbGxSZWN0KHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguc2F2ZSgpLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSk6KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHgucmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLm92ZXJsYXlDdHguY2xpcCgpKSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LnJlc3RvcmUoKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlU3R5bGU9IndoaXRlIix0aGlzLm92ZXJsYXlDdHgubGluZVdpZHRoPTIsdGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIj8odGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmModGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wU2l6ZS8yLDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlKCkpOnRoaXMub3ZlcmxheUN0eC5zdHJva2VSZWN0KHRoaXMuY3JvcFgsdGhpcy5jcm9wWSx0aGlzLmNyb3BTaXplLHRoaXMuY3JvcFNpemUpLHRoaXMuZHJhd1Jlc2l6ZUhhbmRsZXMoKX1kcmF3UmVzaXplSGFuZGxlcygpe2xldCByPVt7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfV07dGhpcy5vdmVybGF5Q3R4LmZpbGxTdHlsZT0id2hpdGUiLHIuZm9yRWFjaChhPT57dGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmMoYS54LGEueSw4LDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguZmlsbCgpfSl9YXN5bmMgZ2V0Q3JvcHBlZEltYWdlKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikscj1lLmdldENvbnRleHQoIjJkIiksYT0xL3RoaXMuaW1hZ2VTY2FsZSxzPXRoaXMuY3JvcFNpemUqYSxuPXRoaXMub3B0aW9ucy5vdXRwdXRTaXplO24+cyYmY29uc29sZS5pbmZvKGBQcm9maWxlIHBpY3R1cmU6IFVwc2NhbGluZyBmcm9tICR7TWF0aC5yb3VuZChzKX1weCB0byAke259cHhgKSxlLndpZHRoPW4sZS5oZWlnaHQ9bjtsZXQgbz0odGhpcy5jcm9wWC10aGlzLmltYWdlT2Zmc2V0WCkqYSxsPSh0aGlzLmNyb3BZLXRoaXMuaW1hZ2VPZmZzZXRZKSphLGM9dGhpcy5jcm9wU2l6ZSphO3RoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCImJihyLmJlZ2luUGF0aCgpLHIuYXJjKG4vMixuLzIsbi8yLDAsTWF0aC5QSSoyKSxyLmNsaXAoKSksci5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsci5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLHIuZHJhd0ltYWdlKHRoaXMuaW1nLG8sbCxjLGMsMCwwLG4sbik7bGV0IGY9dGhpcy5vcHRpb25zLmltYWdlLmluY2x1ZGVzKCJpbWFnZS9wbmciKT8iaW1hZ2UvcG5nIjoiaW1hZ2UvanBlZyI7cmV0dXJuIGUudG9EYXRhVVJMKGYsdGhpcy5vcHRpb25zLm91dHB1dFF1YWxpdHkpfWRlc3Ryb3koKXt0aGlzLmNhbnZhcy5yZW1vdmUoKSx0aGlzLm92ZXJsYXlDYW52YXMucmVtb3ZlKCl9fX0pO3ZhciBoZixRbywkN3QsQUpyPXUoKCk9Pnt2ZSgpO2ZjKCk7X3MoKTtPbygpO0tyKCk7ZzkoKTtuYygpO25jKCk7JEpyKCk7bHQoKTtoZj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sUW89ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LCQ3dD0oKCk9PntsZXQgdD1bdWUoImRlZXMtcHJvZmlsZXBpY3R1cmUtbW9kYWwiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiUHJvZmlsZVBpY3R1cmVNb2RhbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLGhmKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpbml0aWFsSW1hZ2UiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pbml0aWFsSW1hZ2UsImdldCIpLHNldDppKCh6LEEpPT57ei5pbml0aWFsSW1hZ2U9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGhmKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNoYXBlImluIHosImhhcyIpLGdldDppKHo9Pnouc2hhcGUsImdldCIpLHNldDppKCh6LEEpPT57ei5zaGFwZT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsZiksaGYodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJvdXRwdXRTaXplImluIHosImhhcyIpLGdldDppKHo9Pnoub3V0cHV0U2l6ZSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6Lm91dHB1dFNpemU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLGhmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3V0cHV0UXVhbGl0eSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm91dHB1dFF1YWxpdHksImdldCIpLHNldDppKCh6LEEpPT57ei5vdXRwdXRRdWFsaXR5PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sYixnKSxoZih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50U3RlcCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmN1cnJlbnRTdGVwLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouY3VycmVudFN0ZXA9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLGhmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JvcHBlZEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjcm9wcGVkSW1hZ2UiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jcm9wcGVkSW1hZ2UsImdldCIpLHNldDppKCh6LEEpPT57ei5jcm9wcGVkSW1hZ2U9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxfLFMpLGhmKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9jZXNzaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc1Byb2Nlc3NpbmciaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pc1Byb2Nlc3NpbmcsImdldCIpLHNldDppKCh6LEEpPT57ei5pc1Byb2Nlc3Npbmc9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLGhmKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9I2U9UW8odGhpcyxvLCIiKTtnZXQgaW5pdGlhbEltYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGluaXRpYWxJbWFnZShDKXt0aGlzLiNlPUN9I3Q9KFFvKHRoaXMsbCksUW8odGhpcyxkLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUoQyl7dGhpcy4jdD1DfSNyPShRbyh0aGlzLGYpLFFvKHRoaXMsaCw4MDApKTtnZXQgb3V0cHV0U2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBvdXRwdXRTaXplKEMpe3RoaXMuI3I9Q30jYT0oUW8odGhpcyxtKSxRbyh0aGlzLGIsLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb3V0cHV0UXVhbGl0eShDKXt0aGlzLiNhPUN9I2k9KFFvKHRoaXMsZyksUW8odGhpcyxrLCJjcm9wIikpO2dldCBjdXJyZW50U3RlcCgpe3JldHVybiB0aGlzLiNpfXNldCBjdXJyZW50U3RlcChDKXt0aGlzLiNpPUN9I3M9KFFvKHRoaXMsTSksUW8odGhpcyxfLCIiKSk7Z2V0IGNyb3BwZWRJbWFnZSgpe3JldHVybiB0aGlzLiNzfXNldCBjcm9wcGVkSW1hZ2UoQyl7dGhpcy4jcz1DfSNuPShRbyh0aGlzLFMpLFFvKHRoaXMsTCwhMSkpO2dldCBpc1Byb2Nlc3NpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNQcm9jZXNzaW5nKEMpe3RoaXMuI249Q31jcm9wcGVyPShRbyh0aGlzLEUpLG51bGwpO3dpbmRvd0xheWVyO3pJbmRleD0wO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICB9CgogICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwYTBhMGEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCIwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgd2lkdGg6IDQ4MHB4OwogICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGFuaW1hdGlvbjogbW9kYWxTaG93IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgbW9kYWxTaG93IHsKICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubW9kYWwtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDUycHg7CiAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5jcm9wcGVyLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoImluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDYpIiwiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgICB3aWR0aDogMTgwcHg7CiAgICAgICAgaGVpZ2h0OiAxODBweDsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpIiwiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uucm91bmQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICB9CgogICAgICAuc3VjY2Vzcy1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzEwYjk4MSIsIiMxMGI5ODEiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGFuaW1hdGlvbjogc3VjY2Vzc1B1bHNlIDAuNHMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3VjY2Vzc1B1bHNlIHsKICAgICAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgb3BhY2l0eTogMDsgfQogICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wMik7IH0KICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfQogICAgICB9CgogICAgICAubW9kYWwtZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDI0cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuaW5zdHJ1Y3Rpb25zIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICB9CgogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWFyZ2luOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwtYm9keSB7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMud2luZG93TGF5ZXI9YXdhaXQgeW4uY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT50aGlzLmNsb3NlKCkpLHRoaXMuekluZGV4PXlyLmdldE5leHRaSW5kZXgoKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLXotaW5kZXgiLHRoaXMuekluZGV4LnRvU3RyaW5nKCkpLHlyLnJlZ2lzdGVyKHRoaXMsdGhpcy56SW5kZXgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNyb3BwZXImJnRoaXMuY3JvcHBlci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCkseXIudW5yZWdpc3Rlcih0aGlzKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGFpbmVyIiBAY2xpY2s9JHtDPT5DLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJtb2RhbC10aXRsZSI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj8iQWRqdXN0IEltYWdlIjoiU3VjY2VzcyJ9CiAgICAgICAgICA8L2gzPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2xvc2UtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmNsb3NlfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj4KICAgICAgICAgICAgICBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBzcXVhcmUgdG8gc2VsZWN0IHlvdXIgcHJvZmlsZSBhcmVhCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcm9wcGVyLWNvbnRhaW5lciIgaWQ9ImNyb3BwZXJDb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgJHt0aGlzLmlzUHJvY2Vzc2luZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucyI+U2F2aW5nLi4uPC9kaXY+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgPGltZyAKICAgICAgICAgICAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UgJHt0aGlzLnNoYXBlfSIgCiAgICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLmNyb3BwZWRJbWFnZX0iIAogICAgICAgICAgICAgICAgICBhbHQ9IkNyb3BwZWQgcHJldmlldyIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWNjZXNzLW1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpjaGVjayIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+TG9va2luZyBnb29kITwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiP3dgCiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuY2xvc2V9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ3JvcH0+CiAgICAgICAgICAgICAgU2F2ZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCImJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZUNyb3BwZXIoKX1hc3luYyBpbml0aWFsaXplQ3JvcHBlcigpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IEM9dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjcm9wcGVyQ29udGFpbmVyIik7QyYmKHRoaXMuY3JvcHBlcj1uZXcgSTZlKHtjb250YWluZXI6QyxpbWFnZTp0aGlzLmluaXRpYWxJbWFnZSxzaGFwZTp0aGlzLnNoYXBlLGFzcGVjdFJhdGlvOjEsb3V0cHV0U2l6ZTp0aGlzLm91dHB1dFNpemUsb3V0cHV0UXVhbGl0eTp0aGlzLm91dHB1dFF1YWxpdHl9KSxhd2FpdCB0aGlzLmNyb3BwZXIuaW5pdGlhbGl6ZSgpKX1hc3luYyBoYW5kbGVDcm9wKCl7aWYodGhpcy5jcm9wcGVyKXRyeXt0aGlzLmlzUHJvY2Vzc2luZz0hMCx0aGlzLmN1cnJlbnRTdGVwPSJwcmV2aWV3Iixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBDPWF3YWl0IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkSW1hZ2UoKTt0aGlzLmNyb3BwZWRJbWFnZT1DLGF3YWl0IG5ldyBQcm9taXNlKHo9PnNldFRpbWVvdXQoeiw4MDApKSx0aGlzLmlzUHJvY2Vzc2luZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOntjcm9wcGVkSW1hZ2U6dGhpcy5jcm9wcGVkSW1hZ2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksc2V0VGltZW91dCgoKT0+e3RoaXMuY2xvc2UoKX0sMTUwMCl9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcigiRXJyb3IgY3JvcHBpbmcgaW1hZ2U6IixDKSx0aGlzLmlzUHJvY2Vzc2luZz0hMX19Y2xvc2UoKXt0aGlzLnJlbW92ZSgpfXN0YXRpY3tRbyhhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgRUpyLElKcj11KCgpPT57dmUoKTt3YSgpO3duKCk7QTd0KCk7RUpyPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtyZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDQ4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZmVhdHVyZS1saXN0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCBsaSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZVtzaGFwZT0icm91bmQiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwocj0+e2xldCBhPXIudGFyZ2V0O2NvbnNvbGUubG9nKCJSb3VuZCBwcm9maWxlIHBpY3R1cmUgY2hhbmdlZDoiLGEudmFsdWU/LnN1YnN0cmluZygwLDUwKSsiLi4uIil9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByb2ZpbGUgUGljdHVyZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJCYXNpYyB1c2FnZSB3aXRoIHJvdW5kIGFuZCBzcXVhcmUgc2hhcGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlByb2ZpbGUgUGljdHVyZSAoUm91bmQpIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGFuIGltYWdlIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjEyMCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJQcm9maWxlIFBpY3R1cmUgKFNxdWFyZSkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdXBwb3J0cyBKUEVHLCBQTkcsIGFuZCBXZWJQIGZvcm1hdHMiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIHNpemU9IjEyMCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHM9YS50YXJnZXQ7Y29uc29sZS5sb2coYFByb2ZpbGUgKHNpemUgJHtzLnNpemV9KSBjaGFuZ2VkYCl9KSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2l6ZSBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZXMgaW4gZGlmZmVyZW50IHNpemVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlNtYWxsICg4MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSI4MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJNZWRpdW0gKDEyMHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTGFyZ2UgKDE2MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxNjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4c2FXNWxZWEpIY21Ga2FXVnVkQ0JwWkQwaVozSmhaR2xsYm5RaUlIZ3hQU0l3SlNJZ2VURTlJakFsSWlCNE1qMGlNVEF3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakFsSWlCemRHOXdMV052Ykc5eVBTSWpOalkzWldWaElpQXZQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNM05qUmlZVElpSUM4K0NpQWdJQ0E4TDJ4cGJtVmhja2R5WVdScFpXNTBQZ29nSUR3dlpHVm1jejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaWRYSnNLQ05uY21Ga2FXVnVkQ2tpSUM4K0NpQWdQSFJsZUhRZ2VEMGlOVEFsSWlCNVBTSTFNQ1VpSUdSdmJXbHVZVzUwTFdKaGMyVnNhVzVsUFNKdGFXUmtiR1VpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0Wm1GdGFXeDVQU0pCY21saGJDSWdabTl1ZEMxemFYcGxQU0k0TUNJZ1ptbHNiRDBpZDJocGRHVWlQa3BFUEM5MFpYaDBQZ284TDNOMlp6ND0iLHI9dC5xdWVyeVNlbGVjdG9yKCIjcHJlZmlsbGVkLXByb2ZpbGUiKTtyJiYoci52YWx1ZT1lLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCBzPWEudGFyZ2V0LG49dC5xdWVyeVNlbGVjdG9yKCIjcHJlZmlsbGVkLW91dHB1dCIpO24mJihuLnRleHRDb250ZW50PXMudmFsdWU/YEltYWdlIGRhdGE6ICR7cy52YWx1ZS5zdWJzdHJpbmcoMCw4MCl9Li4uYDoiTm8gaW1hZ2Ugc2VsZWN0ZWQiKX0pKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByZS1maWxsZWQgYW5kIFZhbHVlIEJpbmRpbmcifSAuc3VidGl0bGU9JHsiUHJvZmlsZSBwaWN0dXJlIHdpdGggaW5pdGlhbCB2YWx1ZSBhbmQgY2hhbmdlIHRyYWNraW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgIGlkPSJwcmVmaWxsZWQtcHJvZmlsZSIKICAgICAgICAgIGxhYmVsPSJFZGl0IEV4aXN0aW5nIFByb2ZpbGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2xpY2sgdGhlIGVkaXQgYnV0dG9uIHRvIGNoYW5nZSBvciBkZWxldGUgdG8gcmVtb3ZlIgogICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgc2l6ZT0iMTUwIgogICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0icHJlZmlsbGVkLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0Ij4KICAgICAgICAgIEltYWdlIGRhdGEgd2lsbCBhcHBlYXIgaGVyZSB3aGVuIGNoYW5nZWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoIiNkaXNhYmxlZC1wcm9maWxlIik7ZSYmKGUudmFsdWU9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnWm1sc2JEMGlJMk5qWTJOall5SWdMejRLSUNBOGRHVjRkQ0I0UFNJMU1DVWlJSGs5SWpVd0pTSWdaRzl0YVc1aGJuUXRZbUZ6Wld4cGJtVTlJbTFwWkdSc1pTSWdkR1Y0ZEMxaGJtTm9iM0k5SW0xcFpHUnNaU0lnWm05dWRDMW1ZVzFwYkhrOUlrRnlhV0ZzSWlCbWIyNTBMWE5wZW1VOUlqWXdJaUJtYVd4c1BTSjNhR2wwWlNJK1RrRThMM1JsZUhRK0Nqd3ZjM1puUGc9PSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJSZXF1aXJlZCBGaWVsZCIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBpZD0iZGlzYWJsZWQtcHJvZmlsZSIKICAgICAgICAgICAgbGFiZWw9IkRpc2FibGVkIFN0YXRlIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iVXBsb2FkIE9ubHkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJEZWxldGUgbm90IGFsbG93ZWQiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgLmFsbG93RGVsZXRlPSR7ITF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlcyJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmZWF0dXJlIHNldCBvZiB0aGUgcHJvZmlsZSBwaWN0dXJlIGlucHV0In0+CiAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlLWxpc3QiPgogICAgICAgICAgPGxpPjxzdHJvbmc+SW1hZ2UgVXBsb2FkOjwvc3Ryb25nPiBDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgaW1hZ2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIENyb3BwaW5nOjwvc3Ryb25nPiBJbnRlcmFjdGl2ZSBjcm9wIHRvb2wgd2l0aCByZXNpemUgaGFuZGxlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5TaGFwZSBTdXBwb3J0Ojwvc3Ryb25nPiBSb3VuZCBvciBzcXVhcmUgcHJvZmlsZSBwaWN0dXJlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5TaXplIEN1c3RvbWl6YXRpb246PC9zdHJvbmc+IEFkanVzdGFibGUgZGltZW5zaW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5QcmV2aWV3ICYgRWRpdDo8L3N0cm9uZz4gSG92ZXIgb3ZlcmxheSB3aXRoIGVkaXQgYW5kIGRlbGV0ZSBvcHRpb25zPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZpbGUgVmFsaWRhdGlvbjo8L3N0cm9uZz4gRm9ybWF0IGFuZCBzaXplIHJlc3RyaWN0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5SZXNwb25zaXZlIERlc2lnbjo8L3N0cm9uZz4gV29ya3Mgb24gZGVza3RvcCBhbmQgbW9iaWxlIGRldmljZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Rm9ybSBJbnRlZ3JhdGlvbjo8L3N0cm9uZz4gU3RhbmRhcmQgZm9ybSB2YWx1ZSBiaW5kaW5nIGFuZCB2YWxpZGF0aW9uPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkFjY2Vzc2liaWxpdHk6PC9zdHJvbmc+IEtleWJvYXJkIG5hdmlnYXRpb24gYW5kIHNjcmVlbiByZWFkZXIgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5aLUluZGV4IE1hbmFnZW1lbnQ6PC9zdHJvbmc+IFByb3BlciBtb2RhbCBzdGFja2luZyB3aXRoIHJlZ2lzdHJ5PC9saT4KICAgICAgICA8L3VsPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDI0cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+U3VwcG9ydGVkIEZvcm1hdHM6PC9zdHJvbmc+IEpQRUcsIFBORywgV2ViUDxicj4KICAgICAgICAgIDxzdHJvbmc+TWF4IEZpbGUgU2l6ZTo8L3N0cm9uZz4gNU1CIChjb25maWd1cmFibGUpPGJyPgogICAgICAgICAgPHN0cm9uZz5PdXRwdXQgRm9ybWF0Ojwvc3Ryb25nPiBCYXNlNjQgZW5jb2RlZCBKUEVHCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBOMSxKYSxQSnIsQTd0PXUoKCk9Pnt2ZSgpO0NpKCk7S3IoKTtPeSgpO0FKcigpO0lKcigpO2x0KCk7TjE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LEphPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxQSnI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlIildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRQcm9maWxlUGljdHVyZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBVPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sTz1bUCh7dHlwZTpOdW1iZXJ9KV0sQj1bUCh7dHlwZTpBcnJheX0pXSxBPVtQKHt0eXBlOk51bWJlcn0pXSxZPVtQKHt0eXBlOk51bWJlcn0pXSxkZT1baWUoKV0sZmU9W2llKCldLHBlPVtpZSgpXSxOMSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJ2YWx1ZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnZhbHVlLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLnZhbHVlPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LG8sbCksTjEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaGFwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2hhcGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zaGFwZSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5zaGFwZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxkLGYpLE4xKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2l6ZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnNpemUsImdldCIpLHNldDppKChqLGFlKT0+e2ouc2l6ZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxoLG0pLE4xKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InBsYWNlaG9sZGVyImluIGosImhhcyIpLGdldDppKGo9PmoucGxhY2Vob2xkZXIsImdldCIpLHNldDppKChqLGFlKT0+e2oucGxhY2Vob2xkZXI9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sYixnKSxOMSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93VXBsb2FkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJhbGxvd1VwbG9hZCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmFsbG93VXBsb2FkLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmFsbG93VXBsb2FkPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LGssTSksTjEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0RlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iYWxsb3dEZWxldGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5hbGxvd0RlbGV0ZSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5hbGxvd0RlbGV0ZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxfLFMpLE4xKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+Im1heEZpbGVTaXplImluIGosImhhcyIpLGdldDppKGo9PmoubWF4RmlsZVNpemUsImdldCIpLHNldDppKChqLGFlKT0+e2oubWF4RmlsZVNpemU9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sTCxFKSxOMSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdGVkRm9ybWF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iYWNjZXB0ZWRGb3JtYXRzImluIGosImhhcyIpLGdldDppKGo9PmouYWNjZXB0ZWRGb3JtYXRzLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmFjY2VwdGVkRm9ybWF0cz1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxDLHopLE4xKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ib3V0cHV0U2l6ZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm91dHB1dFNpemUsImdldCIpLHNldDppKChqLGFlKT0+e2oub3V0cHV0U2l6ZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSwkLEYpLE4xKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ib3V0cHV0UXVhbGl0eSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm91dHB1dFF1YWxpdHksImdldCIpLHNldDppKChqLGFlKT0+e2oub3V0cHV0UXVhbGl0eT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxHLFopLE4xKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaXNIb3ZlcmVkImluIGosImhhcyIpLGdldDppKGo9PmouaXNIb3ZlcmVkLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmlzSG92ZXJlZD1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxELFEpLE4xKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzRHJhZ2dpbmciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5pc0RyYWdnaW5nLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmlzRHJhZ2dpbmc9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sVCxXKSxOMSh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzTG9hZGluZyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5pc0xvYWRpbmc9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sbWUscSksTjEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6VX0sbnVsbCxyKSxIPWE9ZS52YWx1ZSxVJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlV9KX1zdGF0aWMgZGVtbz1FSnI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUphKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFUpe3RoaXMuI2U9VX0jdD0oSmEodGhpcyxsKSxKYSh0aGlzLGQsInJvdW5kIikpO2dldCBzaGFwZSgpe3JldHVybiB0aGlzLiN0fXNldCBzaGFwZShVKXt0aGlzLiN0PVV9I3I9KEphKHRoaXMsZiksSmEodGhpcyxoLDEyMCkpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNpemUoVSl7dGhpcy4jcj1VfSNhPShKYSh0aGlzLG0pLEphKHRoaXMsYiwiIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNhfXNldCBwbGFjZWhvbGRlcihVKXt0aGlzLiNhPVV9I2k9KEphKHRoaXMsZyksSmEodGhpcyxrLCEwKSk7Z2V0IGFsbG93VXBsb2FkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbG93VXBsb2FkKFUpe3RoaXMuI2k9VX0jcz0oSmEodGhpcyxNKSxKYSh0aGlzLF8sITApKTtnZXQgYWxsb3dEZWxldGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgYWxsb3dEZWxldGUoVSl7dGhpcy4jcz1VfSNuPShKYSh0aGlzLFMpLEphKHRoaXMsTCw1KjEwMjQqMTAyNCkpO2dldCBtYXhGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhGaWxlU2l6ZShVKXt0aGlzLiNuPVV9I289KEphKHRoaXMsRSksSmEodGhpcyxDLFsiaW1hZ2UvanBlZyIsImltYWdlL3BuZyIsImltYWdlL3dlYnAiXSkpO2dldCBhY2NlcHRlZEZvcm1hdHMoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWNjZXB0ZWRGb3JtYXRzKFUpe3RoaXMuI289VX0jbD0oSmEodGhpcyx6KSxKYSh0aGlzLCQsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb3V0cHV0U2l6ZShVKXt0aGlzLiNsPVV9I2M9KEphKHRoaXMsRiksSmEodGhpcyxHLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2N9c2V0IG91dHB1dFF1YWxpdHkoVSl7dGhpcy4jYz1VfSNkPShKYSh0aGlzLFopLEphKHRoaXMsRCwhMSkpO2dldCBpc0hvdmVyZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNIb3ZlcmVkKFUpe3RoaXMuI2Q9VX0jdT0oSmEodGhpcyxRKSxKYSh0aGlzLFQsITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiN1fXNldCBpc0RyYWdnaW5nKFUpe3RoaXMuI3U9VX0jcD0oSmEodGhpcyxXKSxKYSh0aGlzLG1lLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCBpc0xvYWRpbmcoVSl7dGhpcy4jcD1VfW1vZGFsSW5zdGFuY2U9KEphKHRoaXMscSksbnVsbCk7c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLWNvbnRhaW5lcjpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmRyYWdnaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAucHJvZmlsZS1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgLm92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuOTUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC45KSIsInJnYmEoMjIwLCAzOCwgMzgsIDAuOSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2RjMjYyNiIpfTsKICAgICAgfQoKICAgICAgLmRyb3Atem9uZS10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmhpZGRlbi1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBhbmltYXRpb24gKi8KICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuY2xpY2tpbmcgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlLW91dDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICAKICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InByb2ZpbGUtY29udGFpbmVyIgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30KICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuaGFuZGxlRHJhZ092ZXJ9CiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5oYW5kbGVEcmFnTGVhdmV9CiAgICAgICAgICBAZHJvcD0ke3RoaXMuaGFuZGxlRHJvcH0KICAgICAgICAgIHN0eWxlPSItLXNpemU6ICR7dGhpcy5zaXplfXB4IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcGljdHVyZSAke3RoaXMuc2hhcGV9ICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9ICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlPyJjbGlja2luZyI6IiJ9Ij4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGltZyBjbGFzcz0icHJvZmlsZS1pbWFnZSIgc3JjPSIke3RoaXMudmFsdWV9IiBhbHQ9IlByb2ZpbGUgcGljdHVyZSIgLz4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InBsYWNlaG9sZGVyLWljb24iIGljb249Imx1Y2lkZTp1c2VyIiBpY29uU2l6ZT0iJHt0aGlzLnNpemUqLjV9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0RyYWdnaW5nP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgc3R5bGU9Im9wYWNpdHk6IDEiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcC16b25lLXRleHQiPgogICAgICAgICAgICAgICAgICBEcm9wIGltYWdlIGhlcmUKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLnZhbHVlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93VXBsb2FkP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24iIEBjbGljaz0ke1U9PntVLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1vZGFsKCl9fSB0aXRsZT0iQ2hhbmdlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6cGVuY2lsIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dEZWxldGU/d2AKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJvdmVybGF5LWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke1U9PntVLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGVsZXRlUGljdHVyZSgpfX0gdGl0bGU9IkRlbGV0ZSBwaWN0dXJlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOnRyYXNoMiIgaWNvblNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZyYmIXRoaXMudmFsdWU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkgc2hvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGlucHV0CiAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgY2xhc3M9ImhpZGRlbi1pbnB1dCIKICAgICAgICAgIGFjY2VwdD0iJHt0aGlzLmFjY2VwdGVkRm9ybWF0cy5qb2luKCIsIil9IgogICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH0KICAgICAgICAvPgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ2xpY2soKXtpZighKHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKSYmIXRoaXMudmFsdWUpe3RoaXMuaXNMb2FkaW5nPSEwO2xldCBVPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0Iiksaj1pKCgpPT57c2V0VGltZW91dCgoKT0+eyghVS5maWxlc3x8VS5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGopfSwzMDApfSwiaGFuZGxlRm9jdXMiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGopLFUuY2xpY2soKX19aGFuZGxlRmlsZVNlbGVjdChVKXtsZXQgaj1VLnRhcmdldCxhZT1qLmZpbGVzPy5bMF07dGhpcy5pc0xvYWRpbmc9ITEsYWUmJnRoaXMucHJvY2Vzc0ZpbGUoYWUpLGoudmFsdWU9IiJ9aGFuZGxlRHJhZ092ZXIoVSl7VS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRpc2FibGVkJiZ0aGlzLmFsbG93VXBsb2FkJiYodGhpcy5pc0RyYWdnaW5nPSEwKX1oYW5kbGVEcmFnTGVhdmUoKXt0aGlzLmlzRHJhZ2dpbmc9ITF9aGFuZGxlRHJvcChVKXtpZihVLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKXJldHVybjtsZXQgaj1VLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07aiYmdGhpcy5wcm9jZXNzRmlsZShqKX1hc3luYyBwcm9jZXNzRmlsZShVKXtpZighdGhpcy5hY2NlcHRlZEZvcm1hdHMuaW5jbHVkZXMoVS50eXBlKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6IixVLnR5cGUpO3JldHVybn1pZihVLnNpemU+dGhpcy5tYXhGaWxlU2l6ZSl7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2U6IixVLnNpemUpO3JldHVybn1sZXQgaj1uZXcgRmlsZVJlYWRlcjtqLm9ubG9hZD1hc3luYyBhZT0+e2xldCBYPWFlLnRhcmdldD8ucmVzdWx0O2F3YWl0IHRoaXMub3Blbk1vZGFsKFgpfSxqLnJlYWRBc0RhdGFVUkwoVSl9YXN5bmMgb3Blbk1vZGFsKFUpe2xldCBqPVV8fHRoaXMudmFsdWU7aWYoIWope3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0IikuY2xpY2soKTtyZXR1cm59dGhpcy5tb2RhbEluc3RhbmNlPW5ldyAkN3QsdGhpcy5tb2RhbEluc3RhbmNlLnNoYXBlPXRoaXMuc2hhcGUsdGhpcy5tb2RhbEluc3RhbmNlLmluaXRpYWxJbWFnZT1qLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRTaXplPXRoaXMub3V0cHV0U2l6ZSx0aGlzLm1vZGFsSW5zdGFuY2Uub3V0cHV0UXVhbGl0eT10aGlzLm91dHB1dFF1YWxpdHksdGhpcy5tb2RhbEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInNhdmUiLChhZT0+e3RoaXMudmFsdWU9YWUuZGV0YWlsLmNyb3BwZWRJbWFnZSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubW9kYWxJbnN0YW5jZSl9ZGVsZXRlUGljdHVyZSgpe3RoaXMudmFsdWU9IiIsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShVKXt0aGlzLnZhbHVlPVV9c3RhdGlje0phKGEscil9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBOSnI9dSgoKT0+e2JKcigpO3I3dCgpO3hKcigpO3FwZSgpO2E3dCgpO0g2dCgpO3ZKcigpO3lKcigpO3dKcigpO2tKcigpO1NKcigpO01KcigpO0NKcigpO19KcigpO2k3dCgpO3Q3dCgpO1RKcigpO0xKcigpO0RKcigpO0E3dCgpfSk7dmFyIE9KcixSSnI9dSgoKT0+e3ZlKCk7T0pyPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgcGFkZGluZzogMjRweDsKICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb0NvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm9uLVNlbGVjdGFibGUgQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QmFzaWMgY2hpcHMgd2l0aG91dCBzZWxlY3Rpb24gY2FwYWJpbGl0eS4gVXNlIGZvciBkaXNwbGF5LW9ubHkgdGFncy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJub25lIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToic3RhdHVzIix2YWx1ZToiQWN0aXZlIn0se2tleToidGllciIsdmFsdWU6IlByZW1pdW0ifSx7a2V5OiJyZWdpb24iLHZhbHVlOiJFVS1XZXN0In0se2tleToidHlwZSIsdmFsdWU6IkVudGVycHJpc2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNpbmdsZSBTZWxlY3Rpb24gQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q2xpY2sgdG8gc2VsZWN0IG9uZSBjaGlwIGF0IGEgdGltZS4gVXNlZnVsIGZvciBmaWx0ZXJzIGFuZCBvcHRpb25zLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9InNpbmdsZSIKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6ImFsbCIsdmFsdWU6IkFsbCBQcm9qZWN0cyJ9LHtrZXk6ImFjdGl2ZSIsdmFsdWU6IkFjdGl2ZSJ9LHtrZXk6ImFyY2hpdmVkIix2YWx1ZToiQXJjaGl2ZWQifSx7a2V5OiJkcmFmdHMiLHZhbHVlOiJEcmFmdHMifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpcGxlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgbXVsdGlwbGUgY2hpcHMgc2ltdWx0YW5lb3VzbHkuIEdyZWF0IGZvciB0YWcgc2VsZWN0aW9uLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im11bHRpcGxlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToianMiLHZhbHVlOiJKYXZhU2NyaXB0In0se2tleToidHMiLHZhbHVlOiJUeXBlU2NyaXB0In0se2tleToicmVhY3QiLHZhbHVlOiJSZWFjdCJ9LHtrZXk6InZ1ZSIsdmFsdWU6IlZ1ZSJ9LHtrZXk6ImFuZ3VsYXIiLHZhbHVlOiJBbmd1bGFyIn0se2tleToibm9kZSIsdmFsdWU6Ik5vZGUuanMifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlJlbW92YWJsZSBDaGlwcyB3aXRoIEtleXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q2hpcHMgd2l0aCByZW1vdmUgYnV0dG9ucyBhbmQga2V5LXZhbHVlIHBhaXJzLiBQZXJmZWN0IGZvciBkeW5hbWljIGxpc3RzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9InNpbmdsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiZW52Iix2YWx1ZToiUHJvZHVjdGlvbiJ9LHtrZXk6InZlcnNpb24iLHZhbHVlOiIyLjQuMSJ9LHtrZXk6ImJyYW5jaCIsdmFsdWU6Im1haW4ifSx7a2V5OiJhdXRob3IiLHZhbHVlOiJKb2huIERvZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWl4ZWQgQ29udGVudCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbWJpbmluZyBkaWZmZXJlbnQgY2hpcCB0eXBlcyBmb3IgY29tcGxleCBVSXMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgY2hpcHNBcmVSZW1vdmFibGUKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6InByaW9yaXR5Iix2YWx1ZToiSGlnaCJ9LHtrZXk6InN0YXR1cyIsdmFsdWU6IkluIFByb2dyZXNzIn0se2tleToiYnVnIix2YWx1ZToiQnVnIn0se2tleToiZmVhdHVyZSIsdmFsdWU6IkZlYXR1cmUifSx7a2V5OiJzcHJpbnQiLHZhbHVlOiJTcHJpbnQgMjMifSx7a2V5OiJhc3NpZ25lZSIsdmFsdWU6IkFsaWNlIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgTHcsRGMsRkpyLEJKcj11KCgpPT57dmUoKTtNcigpO1JKcigpO2x0KCk7THc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LERjPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxGSnI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWNoaXBzIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNDaGlwcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCh7dHlwZTpCb29sZWFufSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCgpXSx5PVtQKHt0eXBlOkFycmF5fSldLEx3KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2VsZWN0aW9uTW9kZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlbGVjdGlvbk1vZGUsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3Rpb25Nb2RlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxMdyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoaXBzQXJlUmVtb3ZhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjaGlwc0FyZVJlbW92YWJsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNoaXBzQXJlUmVtb3ZhYmxlLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuY2hpcHNBcmVSZW1vdmFibGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLEx3KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZUNoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RhYmxlQ2hpcHMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RhYmxlQ2hpcHMsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RhYmxlQ2hpcHM9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEx3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RlZENoaXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZENoaXAsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RlZENoaXA9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEx3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2VsZWN0ZWRDaGlwcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlbGVjdGVkQ2hpcHMsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RlZENoaXBzPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxMdyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPU9KcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPURjKHRoaXMsbywic2luZ2xlIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VsZWN0aW9uTW9kZShfKXt0aGlzLiNlPV99I3Q9KERjKHRoaXMsbCksRGModGhpcyxkLCExKSk7Z2V0IGNoaXBzQXJlUmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNoaXBzQXJlUmVtb3ZhYmxlKF8pe3RoaXMuI3Q9X30jcj0oRGModGhpcyxmKSxEYyh0aGlzLGgsW10pKTtnZXQgc2VsZWN0YWJsZUNoaXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGFibGVDaGlwcyhfKXt0aGlzLiNyPV99I2E9KERjKHRoaXMsbSksRGModGhpcyxiLG51bGwpKTtnZXQgc2VsZWN0ZWRDaGlwKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkQ2hpcChfKXt0aGlzLiNhPV99I2k9KERjKHRoaXMsZyksRGModGhpcyxrLFtdKSk7Z2V0IHNlbGVjdGVkQ2hpcHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRDaGlwcyhfKXt0aGlzLiNpPV99Y29uc3RydWN0b3IoKXtzdXBlcigpLERjKHRoaXMsTSl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY2hpcCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgfQoKICAgICAgLmNoaXBLZXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIHBhZGRpbmc6IDBweCA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTsKICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICR7dGhpcy5zZWxlY3RhYmxlQ2hpcHMubWFwKF89PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RDaGlwKF8pfQogICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5pc1NlbGVjdGVkKF8pPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHtfLmtleT93YDxkaXYgY2xhc3M9ImNoaXBLZXkiPiR7Xy5rZXl9PC9kaXY+YDp3YGB9ICR7Xy52YWx1ZX0KICAgICAgICAgICAgICAke3RoaXMuY2hpcHNBcmVSZW1vdmFibGU/d2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHtTPT57Uy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnJlbW92ZUNoaXAoXyl9fQogICAgICAgICAgICAgICAgICAgICAgLmljb249JHsiZmE6eG1hcmsifQogICAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt9aXNTZWxlY3RlZChfKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/dGhpcy5zZWxlY3RlZENoaXA/dGhpcy5pc1NhbWVDaGlwKHRoaXMuc2VsZWN0ZWRDaGlwLF8pOiExOnRoaXMuc2VsZWN0ZWRDaGlwcy5zb21lKFM9PnRoaXMuaXNTYW1lQ2hpcChTLF8pKX1pc1NhbWVDaGlwKF8sUyl7cmV0dXJuKF8ua2V5JiZTLmtleXx8Xy52YWx1ZT09PVMudmFsdWUpJiZfLmtleT09PVMua2V5fWFzeW5jIHNlbGVjdENoaXAoXyl7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiJiYodGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/dGhpcy5pc1NlbGVjdGVkKF8pPyh0aGlzLnNlbGVjdGVkQ2hpcD1udWxsLHRoaXMuc2VsZWN0ZWRDaGlwcz1bXSk6KHRoaXMuc2VsZWN0ZWRDaGlwPV8sdGhpcy5zZWxlY3RlZENoaXBzPVtfXSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpcGxlIiYmKHRoaXMuaXNTZWxlY3RlZChfKT90aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcihTPT4hdGhpcy5pc1NhbWVDaGlwKFMsXykpOnRoaXMuc2VsZWN0ZWRDaGlwcz1bLi4udGhpcy5zZWxlY3RlZENoaXBzLF9dLHRoaXMucmVxdWVzdFVwZGF0ZSgpKSxjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkQ2hpcHMpKX1yZW1vdmVDaGlwKF8pe3RoaXMuc2VsZWN0YWJsZUNoaXBzPXRoaXMuc2VsZWN0YWJsZUNoaXBzLmZpbHRlcihTPT4hdGhpcy5pc1NhbWVDaGlwKFMsXykpLHRoaXMuc2VsZWN0ZWRDaGlwcz10aGlzLnNlbGVjdGVkQ2hpcHMuZmlsdGVyKFM9PiF0aGlzLmlzU2FtZUNoaXAoUyxfKSksdGhpcy5zZWxlY3RlZENoaXAmJnRoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCxfKSYmKHRoaXMuc2VsZWN0ZWRDaGlwPW51bGwpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXN0YXRpY3tEYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgSEpyPXUoKCk9PntCSnIoKX0pO3ZhciBxSnIsVkpyPXUoKCk9Pnt2ZSgpO3dhKCk7cUpyPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjZGFzaGJvYXJkR3JpZCIpLHI9W3tpZDoibWV0cmljczEiLHg6MCx5OjAsdzozLGg6Mix0aXRsZToiUmV2ZW51ZSIsaWNvbjoibHVjaWRlOmRvbGxhclNpZ24iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPiQxMjQsNTYzPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICMyMmM1NWU7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+4oaRIDEyLjUlIGZyb20gbGFzdCBtb250aDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9LHtpZDoibWV0cmljczIiLHg6Myx5OjAsdzozLGg6Mix0aXRsZToiVXNlcnMiLGljb246Imx1Y2lkZTp1c2VycyIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+OCwyMzQ8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzNiODJmNjsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tdG9wOiA4cHg7Ij7ihpEgNS4yJSBmcm9tIGxhc3Qgd2VlazwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9LHtpZDoiY2hhcnQxIix4OjYseTowLHc6NixoOjQsdGl0bGU6IkFuYWx5dGljcyIsaWNvbjoibHVjaWRlOmxpbmVDaGFydCIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzcxNzE3YTsiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGluZUNoYXJ0In0gc3R5bGU9ImZvbnQtc2l6ZTogNDhweDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdj5DaGFydCB2aXN1YWxpemF0aW9uIGFyZWE8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfV07ZS53aWRnZXRzPXIubWFwKHk9Pih7Li4ueX0pKSxlLmNlbGxIZWlnaHQ9ODAsZS5tYXJnaW49e3RvcDoxMCxyaWdodDoxMCxib3R0b206MTAsbGVmdDoxMH0sZS5lbmFibGVBbmltYXRpb249ITAsZS5zaG93R3JpZExpbmVzPSExO2xldCBhPWUuZ2V0TGF5b3V0KCkubWFwKHk9Pih7Li4ueX0pKSxzPWUud2lkZ2V0cy5tYXAoKHksayk9Pih7aWQ6eS5pZCx4OjAseTprPT09MD8wOmUud2lkZ2V0cy5zbGljZSgwLGspLnJlZHVjZSgoTSxOKT0+TStOLmgsMCksdzplLmNvbHVtbnMsaDp5Lmh9KSk7ZS5sYXlvdXRzPXtiYXNlOmEsbW9iaWxlOnN9O2xldCBuPXQucXVlcnlTZWxlY3RvcigiI2Rhc2hib2FyZExheW91dFN0YXR1cyIpLG89aSgoKT0+e2xldCB5PWUuZ2V0TGF5b3V0KCk7bi50ZXh0Q29udGVudD1gQWN0aXZlIGJyZWFrcG9pbnQ6ICR7ZS5hY3RpdmVCcmVha3BvaW50fSBcdTIwMjIgVGlsZXM6ICR7eS5sZW5ndGh9YH0sInVwZGF0ZVN0YXR1cyIpLGw9d2luZG93Lm1hdGNoTWVkaWEoIihtYXgtd2lkdGg6IDc2OHB4KSIpLGM9aSgoKT0+e2xldCB5PWwubWF0Y2hlcz8ibW9iaWxlIjoiYmFzZSI7ZS5hcHBseUJyZWFrcG9pbnRMYXlvdXQoeSksbygpfSwiaGFuZGxlQnJlYWtwb2ludCIpO3R5cGVvZiBsLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiI/bC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGMpOmwuYWRkTGlzdGVuZXI/LihjKSxjKCk7bGV0IGQ9NDt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh5PT57c3dpdGNoKHkudGV4dD8udHJpbSgpKXtjYXNlIlRvZ2dsZSBBbmltYXRpb24iOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5lbmFibGVBbmltYXRpb249IWUuZW5hYmxlQW5pbWF0aW9ufSk7YnJlYWs7Y2FzZSJUb2dnbGUgR3JpZCBMaW5lcyI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLnNob3dHcmlkTGluZXM9IWUuc2hvd0dyaWRMaW5lc30pO2JyZWFrO2Nhc2UiQWRkIFdpZGdldCI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgTT17aWQ6YHdpZGdldCR7ZCsrfWAseDowLHk6MCx3OjMsaDoyLGF1dG9Qb3NpdGlvbjohMCx0aXRsZTpgV2lkZ2V0ICR7ZC0xfWAsaWNvbjoibHVjaWRlOnBhY2thZ2UiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICM3MTcxN2E7Ij5OZXcgd2lkZ2V0IGNvbnRlbnQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiA4cHg7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMyl9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH07ZS5hZGRXaWRnZXQoTSwhMCl9KTticmVhaztjYXNlIkNvbXBhY3QgR3JpZCI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmNvbXBhY3QoKX0pO2JyZWFrO2Nhc2UiVG9nZ2xlIEVkaXQgTW9kZSI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmVkaXRhYmxlPSFlLmVkaXRhYmxlLHkudGV4dD1lLmVkaXRhYmxlPyJMb2NrIEdyaWQiOiJVbmxvY2sgR3JpZCJ9KTticmVhaztjYXNlIlJlc2V0IExheW91dCI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmFwcGx5QnJlYWtwb2ludExheW91dChlLmFjdGl2ZUJyZWFrcG9pbnQpfSk7YnJlYWs7ZGVmYXVsdDpicmVha319KTtsZXQgcD1udWxsLGg9MCxtPWkoKHksayk9PntsZXQgTT1lLmdldExheW91dCgpO2NvbnNvbGUuZ3JvdXAoYFx1ezFGNTA0fSAke3l9IFtFdmVudCAjJHsrK2h9XWApLGNvbnNvbGUubG9nKCJUaW1lc3RhbXA6IixuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLGNvbnNvbGUubG9nKCJHcmlkIENvbmZpZ3VyYXRpb246Iix7Y29sdW1uczplLmNvbHVtbnMsY2VsbEhlaWdodDplLmNlbGxIZWlnaHQsbWFyZ2luOmUubWFyZ2luLGVkaXRhYmxlOmUuZWRpdGFibGUsYWN0aXZlQnJlYWtwb2ludDplLmFjdGl2ZUJyZWFrcG9pbnR9KSxjb25zb2xlLmxvZygiQ3VycmVudCBMYXlvdXQ6IixNKSxjb25zb2xlLmxvZygiV2lkZ2V0IENvdW50OiIsTS5sZW5ndGgpLGNvbnNvbGUubG9nKCJHcmlkIEJvdW5kczoiLHt0b3RhbFdpZGdldHM6ZS53aWRnZXRzLmxlbmd0aCxtYXhZOk1hdGgubWF4KC4uLk0ubWFwKE49Pk4ueStOLmgpKSxvY2N1cGllZDpNLm1hcChOPT5gJHtOLmlkfTogKCR7Ti54fSwke04ueX0pICR7Ti53fXgke04uaH1gKS5qb2luKCIsICIpfSksayYmY29uc29sZS5sb2coIkV2ZW50IERldGFpbHM6IixrKSxjb25zb2xlLmdyb3VwRW5kKCl9LCJsb2dHcmlkU3RhdGUiKSx2PW5ldyBNdXRhdGlvbk9ic2VydmVyKCgpPT57bGV0IHk9ZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucGxhY2Vob2xkZXIiKTtpZih5KXtsZXQgaz17bGVmdDp5LnN0eWxlLmxlZnQsdG9wOnkuc3R5bGUudG9wLHdpZHRoOnkuc3R5bGUud2lkdGgsaGVpZ2h0Onkuc3R5bGUuaGVpZ2h0fTtpZihKU09OLnN0cmluZ2lmeShrKSE9PUpTT04uc3RyaW5naWZ5KHApKXtjb25zb2xlLmdyb3VwKCJcdXsxRjRDRH0gUGxhY2Vob2xkZXIgUG9zaXRpb24gQ2hhbmdlZCIpLGNvbnNvbGUubG9nKCJQcmV2aW91czoiLHApLGNvbnNvbGUubG9nKCJDdXJyZW50OiIsayk7bGV0IE09ZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZ3JpZC1jb250YWluZXIiKTtNJiZjb25zb2xlLmxvZygiR3JpZCBDb250YWluZXIgRGltZW5zaW9uczoiLHt3aWR0aDpNLmNsaWVudFdpZHRoLGhlaWdodDpNLmNsaWVudEhlaWdodH0pLGNvbnNvbGUuZ3JvdXBFbmQoKSxwPWt9fX0pO2Uuc2hhZG93Um9vdCYmdi5vYnNlcnZlKGUuc2hhZG93Um9vdCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJzdHlsZSJdfSksbSgiSW5pdGlhbCBHcmlkIFN0YXRlIiksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtbW92ZSIseT0+e2xldCBrPXkuZGV0YWlsO20oIldpZGdldCBNb3ZlIix7d2lkZ2V0Omsud2lkZ2V0LGRpc3BsYWNlZDprLmRpc3BsYWNlZCxzd2FwcGVkV2l0aDprLnN3YXBwZWRXaXRofSl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1yZXNpemUiLHk9PntsZXQgaz15LmRldGFpbDttKCJXaWRnZXQgUmVzaXplIix7d2lkZ2V0Omsud2lkZ2V0LGRpc3BsYWNlZDprLmRpc3BsYWNlZCxzd2FwcGVkV2l0aDprLnN3YXBwZWRXaXRofSl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1yZW1vdmUiLHk9PntsZXQgaz15LmRldGFpbDttKCJXaWRnZXQgUmVtb3ZlIix7cmVtb3ZlZFdpZGdldDprLndpZGdldH0pLG8oKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigibGF5b3V0LWNoYW5nZSIsKCk9PnttKCJMYXlvdXQgQ2hhbmdlIiksbygpfSksZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIseT0+e2xldCBrPXkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQtaGVhZGVyIiksTT15LnRhcmdldC5jbG9zZXN0KCIucmVzaXplLWhhbmRsZSIpO2lmKGt8fE0pe2NvbnNvbGUuZ3JvdXAoYFx1ezFGM0FGfSBJbnRlcmFjdGlvbiBTdGFydGVkOiAke2s/IkRyYWciOiJSZXNpemUifWApLGNvbnNvbGUubG9nKCJUYXJnZXQgV2lkZ2V0OiIseS50YXJnZXQuY2xvc2VzdCgiLndpZGdldCIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikpLGNvbnNvbGUubG9nKCJQb2ludGVyIFBvc2l0aW9uOiIse3g6eS5jbGllbnRYLHk6eS5jbGllbnRZfSksY29uc29sZS5ncm91cEVuZCgpO2xldCBOPWkoUz0+e2xldCBPPXkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQiKTtPJiZjb25zb2xlLmxvZygiXHUyMTk0XHVGRTBGIFBvaW50ZXIgTW92ZToiLHt3aWRnZXRJZDpPLmdldEF0dHJpYnV0ZSgiZGF0YS13aWRnZXQtaWQiKSxwb3NpdGlvbjp7eDpTLmNsaWVudFgseTpTLmNsaWVudFl9LGRlbHRhOnt4OlMuY2xpZW50WC15LmNsaWVudFgseTpTLmNsaWVudFkteS5jbGllbnRZfX0pfSwiaGFuZGxlUG9pbnRlck1vdmUiKSxfPWkoKCk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjNDMX0gSW50ZXJhY3Rpb24gRW5kZWQiKSxtKCJGaW5hbCBTdGF0ZSBBZnRlciBJbnRlcmFjdGlvbiIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsTiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixfKX0sImhhbmRsZVBvaW50ZXJVcCIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixOKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLF8pfX0pO2xldCBiPWUuYWRkV2lkZ2V0LmJpbmQoZSk7ZS5hZGRXaWRnZXQ9KHksayk9Pntjb25zb2xlLmdyb3VwKCJcdTI3OTUgQWRkaW5nIFdpZGdldCIpLGNvbnNvbGUubG9nKCJOZXcgV2lkZ2V0OiIseSksY29uc29sZS5sb2coIkF1dG8gUG9zaXRpb246IixrKTtsZXQgTT1iKHksayk7cmV0dXJuIG0oIkFmdGVyIFdpZGdldCBBZGRlZCIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxNfTtsZXQgZz1lLmNvbXBhY3QuYmluZChlKTtlLmNvbXBhY3Q9eT0+e2NvbnNvbGUuZ3JvdXAoIlx1ezFGNURDfVx1RkUwRiBDb21wYWN0aW5nIEdyaWQiKSxjb25zb2xlLmxvZygiRGlyZWN0aW9uOiIseXx8InZlcnRpY2FsIiksbSgiQmVmb3JlIENvbXBhY3QiKTtsZXQgaz1nKHkpO3JldHVybiBtKCJBZnRlciBDb21wYWN0IiksY29uc29sZS5ncm91cEVuZCgpLGt9LG8oKX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vLWNvbnRyb2xzIGRlZXMtYnV0dG9uIHsKICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICB9CgogICAgICAgICAgLmdyaWQtY29udGFpbmVyLXdyYXBwZXIgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBtaW4taGVpZ2h0OiA2MDBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQoKICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgfQoKICAgICAgICAgICNkYXNoYm9hcmRMYXlvdXRTdGF0dXMgewogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBbmltYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBBbmltYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRpc3BsYXk6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBHcmlkIExpbmVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgV2lkZ2V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNvbXBhY3QgR3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXNldCBMYXlvdXQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9Ik1vZGU6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBFZGl0IE1vZGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jb250YWluZXItd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1kYXNoYm9hcmRncmlkIGlkPSJkYXNoYm9hcmRHcmlkIj48L2RlZXMtZGFzaGJvYXJkZ3JpZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICA8ZGl2PkRyYWcgdG8gcmVwb3NpdGlvbiwgcmVzaXplIGZyb20gaGFuZGxlcywgb3IgcmlnaHQtY2xpY2sgYSBoZWFkZXIgdG8gZGVsZXRlIGEgdGlsZS48L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRhc2hib2FyZExheW91dFN0YXR1cyI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgakpyLFVKcj11KCgpPT57dmUoKTtqSnI9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZW5hYmxlYW5pbWF0aW9uXSkgLmdyaWQtd2lkZ2V0IHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgewogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQucmVzaXppbmcgewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLndpZGdldC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke3guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpIiwiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjYpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjphY3RpdmUgewogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keS5oYXMtaGVhZGVyIHsKICAgICAgICB0b3A6IDQ1cHg7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1lIHsKICAgICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsKICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICByaWdodDogLTZweDsKICAgICAgICB0b3A6IDEwJTsKICAgICAgICBoZWlnaHQ6IDgwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtcyB7CiAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgYm90dG9tOiAtNnB4OwogICAgICAgIGxlZnQ6IDEwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIGN1cnNvcjogc2UtcmVzaXplOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXI6OmFmdGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtcGxhY2Vob2xkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IC0xOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLXZlcnRpY2FsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtaG9yaXpvbnRhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogIGBdfSk7dmFyIEJ4MSxFN3QsWUpyLEtKcixXSnIsRnJlLEdKcix1RmEscEZhLEk3dCxtZixaSnIsUUpyLFhKcj11KCgpPT57QngxPTEwLEU3dD1pKHQ9PntpZih0eXBlb2YgdD09Im51bWJlciIpcmV0dXJue2hvcml6b250YWw6dCx2ZXJ0aWNhbDp0LHRvcDp0LHJpZ2h0OnQsYm90dG9tOnQsbGVmdDp0fTtsZXQgZT17dG9wOnQudG9wPz8xMCxyaWdodDp0LnJpZ2h0Pz8xMCxib3R0b206dC5ib3R0b20/PzEwLGxlZnQ6dC5sZWZ0Pz8xMH07cmV0dXJuey4uLmUsaG9yaXpvbnRhbDooZS5sZWZ0K2UucmlnaHQpLzIsdmVydGljYWw6KGUudG9wK2UuYm90dG9tKS8yfX0sInJlc29sdmVNYXJnaW5zIiksWUpyPWkoKHQsZSxyLGEscyk9PntsZXQgbj1yLmhvcml6b250YWwqKGUrMSksbz1NYXRoLm1heCh0LW4sMCksbD1lPjA/by9lOjAsYz1zPT09ImF1dG8iP2w6YTtyZXR1cm57Y29udGFpbmVyV2lkdGg6dCxjZWxsV2lkdGhQeDpsLG1hcmdpbkhvcml6b250YWxQeDpyLmhvcml6b250YWwsY2VsbEhlaWdodFB4OmMsbWFyZ2luVmVydGljYWxQeDpyLnZlcnRpY2FsfX0sImNhbGN1bGF0ZUNlbGxNZXRyaWNzIiksS0pyPWkoKHQsZSxyKT0+e2lmKHQubGVuZ3RoPT09MClyZXR1cm4gMDtsZXQgYT1NYXRoLm1heCguLi50Lm1hcChzPT5zLnkrcy5oKSwwKTtyZXR1cm4gYSpyKyhhKzEpKmUudmVydGljYWx9LCJjYWxjdWxhdGVHcmlkSGVpZ2h0IiksV0pyPWkoKHQsZSxyLGEscyk9PmU8dC54K3QudyYmZSthPnQueCYmcjx0LnkrdC5oJiZyK3M+dC55LCJvdmVybGFwcyIpLEZyZT1pKCh0LGUscixhLHM9ZS53LG49ZS5oKT0+dC5maWx0ZXIobz0+by5pZD09PWUuaWQ/ITE6V0pyKG8scixhLHMsbikpLCJjb2xsZWN0Q29sbGlzaW9ucyIpLEdKcj1pKCh0LGUscixhKT0+RnJlKHQsZSxyLGEpLmxlbmd0aD4wLCJjaGVja0NvbGxpc2lvbiIpLHVGYT1pKHQ9Pih7Li4udH0pLCJjbG9uZVdpZGdldCIpLHBGYT1pKHQ9PnQubWFwKHVGYSksImNsb25lV2lkZ2V0cyIpLEk3dD1pKCh0LGUscixhKT0+e2ZvcihsZXQgbj0wO248MjAwO24rKylmb3IobGV0IG89MDtvPD1hLWU7bysrKWlmKCF0LnNvbWUoYz0+V0pyKGMsbyxuLGUscikpKXJldHVybnt4Om8seTpufTtyZXR1cm57eDowLHk6dC5yZWR1Y2UoKG4sbyk9Pk1hdGgubWF4KG4sby55K28uaCksMCl9fSwiZmluZEF2YWlsYWJsZVBvc2l0aW9uIiksbWY9aSgodCxlLHIsYSxzKT0+e2xldCBuPXBGYSh0KSxvPW4uZmluZChoPT5oLmlkPT09ZSksbD10LmZpbmQoaD0+aC5pZD09PWUpO2lmKCFvfHwhbClyZXR1cm4gbnVsbDtsZXQgYz17eDpyLngseTpyLnksdzpyLnc/P28udyxoOnIuaD8/by5ofTtvLng9Yy54LG8ueT1jLnksby53PWMudyxvLmg9Yy5oO2xldCBkPUZyZShuLG8sYy54LGMueSxjLncsYy5oKTtpZihkLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6bixtb3ZlZFdpZGdldHM6W28uaWRdfTtpZihkLmxlbmd0aD09PTEpe2xldCBoPWRbMF07aWYoIWgubG9ja2VkJiYhaC5ub01vdmUmJmgudz09PW8udyYmaC5oPT09by5oKXtsZXQgbT1uLmZpbmQodj0+di5pZD09PWguaWQpO2lmKG0pe2xldCB2PWwsYj17eDptLngseTptLnl9O2lmKG0ueD12LngsbS55PXYueSxGcmUobixvLG8ueCxvLnksby53LG8uaCkubGVuZ3RoPT09MCYmRnJlKG4sbSxtLngsbS55LG0udyxtLmgpLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6bixtb3ZlZFdpZGdldHM6W28uaWQsbS5pZF0sc3dhcHBlZFdpdGg6bS5pZH07bS54PWIueCxtLnk9Yi55fX19bGV0IGY9bmV3IFNldChbby5pZF0pO2ZvcihsZXQgaCBvZiBkKXtpZihoLmxvY2tlZHx8aC5ub01vdmUpcmV0dXJuIG51bGw7bGV0IG09bi5maW5kKGc9PmcuaWQ9PT1oLmlkKTtpZighbSljb250aW51ZTtsZXQgdj1uLmZpbHRlcihnPT5nLmlkIT09aC5pZCksYj1JN3QodixtLncsbS5oLGEpO20ueD1iLngsbS55PWIueSxmLmFkZChtLmlkKX1yZXR1cm4gRnJlKG4sbyxvLngsby55LG8udyxvLmgpLmxlbmd0aD4wP251bGw6e3dpZGdldHM6bixtb3ZlZFdpZGdldHM6QXJyYXkuZnJvbShmKX19LCJyZXNvbHZlV2lkZ2V0UGxhY2VtZW50IiksWkpyPWkoKHQsZT0idmVydGljYWwiKT0+e2xldCByPVsuLi50XS5zb3J0KChhLHMpPT5lPT09InZlcnRpY2FsIj9hLnkhPT1zLnk/YS55LXMueTphLngtcy54OmEueCE9PXMueD9hLngtcy54OmEueS1zLnkpO2ZvcihsZXQgYSBvZiByKWlmKCEoYS5sb2NrZWR8fGEubm9Nb3ZlKSlpZihlPT09InZlcnRpY2FsIilmb3IoO2EueT4wJiYhR0pyKHQsYSxhLngsYS55LTEpOylhLnktPTE7ZWxzZSBmb3IoO2EueD4wJiYhR0pyKHQsYSxhLngtMSxhLnkpOylhLngtPTF9LCJjb21wYWN0TGF5b3V0IiksUUpyPWkoKHQsZSk9PnQubWFwKHI9PntsZXQgYT1lLmZpbmQocz0+cy5pZD09PXIuaWQpO3JldHVybiBhP3suLi5yLC4uLmF9OnJ9KSwiYXBwbHlMYXlvdXQiKX0pO3ZhciBKSnIsZWVhLHRlYT11KCgpPT57SkpyPWkoKHtwb2ludGVyOnQsY29udGFpbmVyUmVjdDplLG1ldHJpY3M6cixjb2x1bW5zOmEsd2lkZ2V0OnMscnRsOm4sZHJhZ09mZnNldFg6bz0wLGRyYWdPZmZzZXRZOmw9MH0pPT57bGV0IGM9dC5jbGllbnRYLWUubGVmdC1vLGQ9dC5jbGllbnRZLWUudG9wLWwsZj1yLm1hcmdpbkhvcml6b250YWxQeCxwPXIubWFyZ2luVmVydGljYWxQeCxoPXIuY2VsbFdpZHRoUHgsbT1yLmNlbGxIZWlnaHRQeCx2PWkoKF8sUyxPKT0+TWF0aC5tYXgoUyxNYXRoLm1pbihPLF8pKSwiY2xhbXAiKSxiPXYoYy1mLDAsZS53aWR0aC1mKSxnPXYoZC1wLDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx5PWgrZixrPW0rcCxNPU1hdGgucm91bmQoYi95KTtuJiYoTT1hLXMudy1NKSxNPXYoTSwwLGEtcy53KTtsZXQgTj12KE1hdGgucm91bmQoZy9rKSwwLE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtyZXR1cm57eDpNLHk6Tn19LCJjb21wdXRlR3JpZENvb3JkaW5hdGVzIiksZWVhPWkoKHtwb2ludGVyOnQsY29udGFpbmVyUmVjdDplLG1ldHJpY3M6cixzdGFydFdpZHRoOmEsc3RhcnRIZWlnaHQ6cyxzdGFydFBvaW50ZXI6bixoYW5kbGVyOm8sd2lkZ2V0OmwsY29sdW1uczpjfSk9PntsZXQgZD10LmNsaWVudFgtbi5jbGllbnRYLGY9dC5jbGllbnRZLW4uY2xpZW50WSxwPWEsaD1zLG09ci5jZWxsV2lkdGhQeCtyLm1hcmdpbkhvcml6b250YWxQeCx2PXIuY2VsbEhlaWdodFB4K3IubWFyZ2luVmVydGljYWxQeDtpZihvLmluY2x1ZGVzKCJlIikpe2xldCB5PU1hdGgucm91bmQoZC9tKTtwPWEreX1pZihvLmluY2x1ZGVzKCJzIikpe2xldCB5PU1hdGgucm91bmQoZi92KTtoPXMreX1sZXQgYj1NYXRoLm1heChsLm1pbld8fDEsTWF0aC5taW4ocCxsLm1heFd8fGMtbC54KSksZz1NYXRoLm1heChsLm1pbkh8fDEsTWF0aC5taW4oaCxsLm1heEh8fE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSk7cmV0dXJue3dpZHRoOmIsaGVpZ2h0Omd9fSwiY29tcHV0ZVJlc2l6ZURpbWVuc2lvbnMiKX0pO3ZhciByZWEsYWVhPXUoKCk9PntzcygpO3ZuKCk7cmVhPWkoKHt3aWRnZXQ6dCxob3N0OmUsZXZlbnQ6cn0pPT57bGV0IGE9W3tuYW1lOiJEZWxldGUgdGlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9PihlLnJlbW92ZVdpZGdldCh0LmlkKSxudWxsKSwiYWN0aW9uIil9XTtDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhyLGEpfSwib3BlbldpZGdldENvbnRleHRNZW51Iil9KTt2YXIgX28sTWEsaWVhLHNlYT11KCgpPT57dmUoKTtLcigpO3NzKCk7VkpyKCk7VUpyKCk7WEpyKCk7dGVhKCk7YWVhKCk7X289ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LE1hPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxpZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWRhc2hib2FyZGdyaWQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdO3ZhciB4ZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0Rhc2hib2FyZGdyaWQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgSz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6TnVtYmVyfSldLHA9W1Aoe3R5cGU6T2JqZWN0fSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxPPVtQKHt0eXBlOlN0cmluZ30pXSxCPVtQKHt0eXBlOkJvb2xlYW59KV0sQT1bUCh7dHlwZTpCb29sZWFufSldLFk9W1Aoe2F0dHJpYnV0ZTohMX0pXSxkZT1bUCh7dHlwZTpTdHJpbmd9KV0sZmU9W2llKCldLHBlPVtpZSgpXSxIPVtpZSgpXSxhZT1baWUoKV0sX28odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3aWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJ3aWRnZXRzImluIFYsImhhcyIpLGdldDppKFY9PlYud2lkZ2V0cywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi53aWRnZXRzPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LG8sbCksX28odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZWxsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJjZWxsSGVpZ2h0ImluIFYsImhhcyIpLGdldDppKFY9PlYuY2VsbEhlaWdodCwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5jZWxsSGVpZ2h0PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGQsZiksX28odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXJnaW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+Im1hcmdpbiJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLm1hcmdpbiwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5tYXJnaW49bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30saCxtKSxfbyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImNvbHVtbnMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmNvbHVtbnM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sYixnKSxfbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJlZGl0YWJsZSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmVkaXRhYmxlLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmVkaXRhYmxlPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGssTSksX28odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVBbmltYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImVuYWJsZUFuaW1hdGlvbiJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmVuYWJsZUFuaW1hdGlvbiwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5lbmFibGVBbmltYXRpb249bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sXyxTKSxfbyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHRVbml0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJjZWxsSGVpZ2h0VW5pdCJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmNlbGxIZWlnaHRVbml0LCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmNlbGxIZWlnaHRVbml0PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEwsRSksX28odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydGwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InJ0bCJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnJ0bCwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5ydGw9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sQyx6KSxfbyh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dHcmlkTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InNob3dHcmlkTGluZXMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5zaG93R3JpZExpbmVzLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnNob3dHcmlkTGluZXM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sJCxGKSxfbyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxheW91dHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImxheW91dHMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5sYXlvdXRzLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmxheW91dHM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sRyxaKSxfbyh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVCcmVha3BvaW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJhY3RpdmVCcmVha3BvaW50ImluIFYsImhhcyIpLGdldDppKFY9PlYuYWN0aXZlQnJlYWtwb2ludCwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5hY3RpdmVCcmVha3BvaW50PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEQsUSksX28odGhpcyxudWxsLGZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4icGxhY2Vob2xkZXJQb3NpdGlvbiJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnBsYWNlaG9sZGVyUG9zaXRpb24sImdldCIpLHNldDppKChWLGxlKT0+e1YucGxhY2Vob2xkZXJQb3NpdGlvbj1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxULFcpLF9vKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+Im1ldHJpY3MiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5tZXRyaWNzLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLm1ldHJpY3M9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sbWUscSksX28odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZE1hcmdpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InJlc29sdmVkTWFyZ2lucyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnJlc29sdmVkTWFyZ2lucywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5yZXNvbHZlZE1hcmdpbnM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sVSxqKSxfbyh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcmV2aWV3V2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4icHJldmlld1dpZGdldHMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5wcmV2aWV3V2lkZ2V0cywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5wcmV2aWV3V2lkZ2V0cz1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxYLEopLF9vKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkt9LG51bGwscikseGU9YT1lLnZhbHVlLEsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6S30pfXN0YXRpYyBkZW1vPXFKcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdO3N0YXRpYyBzdHlsZXM9akpyOyNlPU1hKHRoaXMsbyxbXSk7Z2V0IHdpZGdldHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgd2lkZ2V0cyhLKXt0aGlzLiNlPUt9I3Q9KE1hKHRoaXMsbCksTWEodGhpcyxkLDgwKSk7Z2V0IGNlbGxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2VsbEhlaWdodChLKXt0aGlzLiN0PUt9I3I9KE1hKHRoaXMsZiksTWEodGhpcyxoLDEwKSk7Z2V0IG1hcmdpbigpe3JldHVybiB0aGlzLiNyfXNldCBtYXJnaW4oSyl7dGhpcy4jcj1LfSNhPShNYSh0aGlzLG0pLE1hKHRoaXMsYiwxMikpO2dldCBjb2x1bW5zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGNvbHVtbnMoSyl7dGhpcy4jYT1LfSNpPShNYSh0aGlzLGcpLE1hKHRoaXMsaywhMCkpO2dldCBlZGl0YWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBlZGl0YWJsZShLKXt0aGlzLiNpPUt9I3M9KE1hKHRoaXMsTSksTWEodGhpcyxfLCEwKSk7Z2V0IGVuYWJsZUFuaW1hdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBlbmFibGVBbmltYXRpb24oSyl7dGhpcy4jcz1LfSNuPShNYSh0aGlzLFMpLE1hKHRoaXMsTCwicHgiKSk7Z2V0IGNlbGxIZWlnaHRVbml0KCl7cmV0dXJuIHRoaXMuI259c2V0IGNlbGxIZWlnaHRVbml0KEspe3RoaXMuI249S30jbz0oTWEodGhpcyxFKSxNYSh0aGlzLEMsITEpKTtnZXQgcnRsKCl7cmV0dXJuIHRoaXMuI299c2V0IHJ0bChLKXt0aGlzLiNvPUt9I2w9KE1hKHRoaXMseiksTWEodGhpcywkLCExKSk7Z2V0IHNob3dHcmlkTGluZXMoKXtyZXR1cm4gdGhpcy4jbH1zZXQgc2hvd0dyaWRMaW5lcyhLKXt0aGlzLiNsPUt9I2M9KE1hKHRoaXMsRiksTWEodGhpcyxHLHZvaWQgMCkpO2dldCBsYXlvdXRzKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxheW91dHMoSyl7dGhpcy4jYz1LfSNkPShNYSh0aGlzLFopLE1hKHRoaXMsRCwiYmFzZSIpKTtnZXQgYWN0aXZlQnJlYWtwb2ludCgpe3JldHVybiB0aGlzLiNkfXNldCBhY3RpdmVCcmVha3BvaW50KEspe3RoaXMuI2Q9S30jdT0oTWEodGhpcyxRKSxNYSh0aGlzLFQsbnVsbCkpO2dldCBwbGFjZWhvbGRlclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHBsYWNlaG9sZGVyUG9zaXRpb24oSyl7dGhpcy4jdT1LfSNwPShNYSh0aGlzLFcpLE1hKHRoaXMsbWUsbnVsbCkpO2dldCBtZXRyaWNzKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG1ldHJpY3MoSyl7dGhpcy4jcD1LfSNmPShNYSh0aGlzLHEpLE1hKHRoaXMsVSxudWxsKSk7Z2V0IHJlc29sdmVkTWFyZ2lucygpe3JldHVybiB0aGlzLiNmfXNldCByZXNvbHZlZE1hcmdpbnMoSyl7dGhpcy4jZj1LfSNoPShNYSh0aGlzLGopLE1hKHRoaXMsWCxudWxsKSk7Z2V0IHByZXZpZXdXaWRnZXRzKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHByZXZpZXdXaWRnZXRzKEspe3RoaXMuI2g9S31jb250YWluZXJCb3VuZHM9KE1hKHRoaXMsSiksbnVsbCk7ZHJhZ1N0YXRlPW51bGw7cmVzaXplU3RhdGU9bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcmFjdGlvbkFjdGl2ZT0hMTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb21wdXRlTWV0cmljcygpLHRoaXMub2JzZXJ2ZVJlc2l6ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX11cGRhdGVkKEspeyhLLmhhcygibWFyZ2luIil8fEsuaGFzKCJjb2x1bW5zIil8fEsuaGFzKCJjZWxsSGVpZ2h0Iil8fEsuaGFzKCJjZWxsSGVpZ2h0VW5pdCIpKSYmdGhpcy5jb21wdXRlTWV0cmljcygpLEsuaGFzKCJ3aWRnZXRzIikmJiF0aGlzLmludGVyYWN0aW9uQWN0aXZlJiZ0aGlzLm5vdGlmeUxheW91dENoYW5nZSgpfXJlbmRlcigpe2xldCBLPXRoaXMud2lkZ2V0cztpZihLLmxlbmd0aD09PTApcmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGF5b3V0R3JpZCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+QWRkIHdpZGdldHMgdG8gcG9wdWxhdGUgdGhlIGRhc2hib2FyZDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgO2xldCBWPXRoaXMuZW5zdXJlTWV0cmljcygpLGxlPXRoaXMucmVzb2x2ZWRNYXJnaW5zPz9FN3QodGhpcy5tYXJnaW4pLG5lPVYuY2VsbEhlaWdodFB4LGVlPXRoaXMucHJldmlld1dpZGdldHM/P3RoaXMud2lkZ2V0cyx6ZT1LSnIoZWUsbGUsbmUpLEhlPXRoaXMucHJldmlld1dpZGdldHM/bmV3IE1hcCh0aGlzLnByZXZpZXdXaWRnZXRzLm1hcChHZT0+W0dlLmlkLEdlXSkpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAke3plfXB4OyI+CiAgICAgICAgJHt0aGlzLnNob3dHcmlkTGluZXM/dGhpcy5yZW5kZXJHcmlkTGluZXMoVix6ZSk6bnVsbH0KICAgICAgICAke0subWFwKEdlPT50aGlzLnJlbmRlcldpZGdldChHZSxWLGxlLEhlKSl9CiAgICAgICAgJHt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihWLGxlKTpudWxsfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR3JpZExpbmVzKEssVil7bGV0IGxlPVtdLG5lPVtdLGVlPUsuY2VsbFdpZHRoUHgrSy5tYXJnaW5Ib3Jpem9udGFsUHgsemU9Sy5jZWxsSGVpZ2h0UHgrSy5tYXJnaW5WZXJ0aWNhbFB4O2ZvcihsZXQgR2U9MDtHZTw9dGhpcy5jb2x1bW5zO0dlKyspe2xldCBvdD1HZSplZStLLm1hcmdpbkhvcml6b250YWxQeCxEZT10aGlzLnB4VG9QZXJjZW50KG90LEsuY29udGFpbmVyV2lkdGgpO2xlLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtdmVydGljYWwiIHN0eWxlPSJsZWZ0OiAke0RlfSU7Ij48L2Rpdj5gKX1sZXQgSGU9TWF0aC5jZWlsKFYvemUpO2ZvcihsZXQgR2U9MDtHZTw9SGU7R2UrKyl7bGV0IG90PUdlKnplO25lLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtaG9yaXpvbnRhbCIgc3R5bGU9InRvcDogJHtvdH1weDsiPjwvZGl2PmApfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxpbmVzIj4KICAgICAgICAke2xlfQogICAgICAgICR7bmV9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQoSyxWLGxlLG5lKXtsZXQgZWU9dGhpcy5kcmFnU3RhdGU/LndpZGdldElkPT09Sy5pZCx6ZT10aGlzLnJlc2l6ZVN0YXRlPy53aWRnZXRJZD09PUsuaWQsSGU9Sy5sb2NrZWR8fCF0aGlzLmVkaXRhYmxlLEdlPW5lPy5nZXQoSy5pZCk/P251bGwsb3Q9ZWU/SzpHZT8/SyxEZT10aGlzLmNvbXB1dGVXaWRnZXRSZWN0KG90LFYsbGUpLF9lPXRoaXMucnRsPyJyaWdodCI6ImxlZnQiLG9lPXRoaXMucHhUb1BlcmNlbnQoRGUubGVmdCxWLmNvbnRhaW5lcldpZHRoKSxzZT10aGlzLnB4VG9QZXJjZW50KERlLndpZHRoLFYuY29udGFpbmVyV2lkdGgpLGNlPSIiO2lmKGVlJiZ0aGlzLmRyYWdTdGF0ZT8uY3VycmVudFBvaW50ZXIpe2xldCBUZT10aGlzLmRyYWdTdGF0ZS5jdXJyZW50UG9pbnRlcixxZT10aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxudD1UZS5jbGllbnRYLXFlLmxlZnQtdGhpcy5kcmFnU3RhdGUub2Zmc2V0WC1EZS5sZWZ0LHZ0PVRlLmNsaWVudFktcWUudG9wLXRoaXMuZHJhZ1N0YXRlLm9mZnNldFktRGUudG9wO2NlPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke250fXB4LCAke3Z0fXB4KTtgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7ZWU/ImRyYWdnaW5nIjoiIn0gJHt6ZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke19lfTogJHtvZX0lOwogICAgICAgICAgdG9wOiAke0RlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke3NlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7RGUuaGVpZ2h0fXB4OwogICAgICAgICAgJHtjZX0KICAgICAgICAiCiAgICAgICAgZGF0YS13aWRnZXQtaWQ9JHtLLmlkfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgJHtLLnRpdGxlP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ3aWRnZXQtaGVhZGVyICR7SGU/ImxvY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHshSGUmJiFLLm5vTW92ZT9UZT0+dGhpcy5zdGFydERyYWcoVGUsSyk6bnVsbH0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7VGU9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoVGUsSyl9CiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSR7IUhlJiYhSy5ub01vdmU/MDotMX0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHtUZT0+dGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKFRlLEspfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke0suaWNvbj93YDxkZWVzLWljb24gLmljb249JHtLLmljb259PjwvZGVlcy1pY29uPmA6bnVsbH0KICAgICAgICAgICAgICAgICAgJHtLLnRpdGxlfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWJvZHkgJHtLLnRpdGxlPyJoYXMtaGVhZGVyIjoiIn0iPgogICAgICAgICAgICAke0suY29udGVudH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHshSGUmJiFLLm5vUmVzaXplP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7VGU9PnRoaXMuc3RhcnRSZXNpemUoVGUsSywiZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXMiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke1RlPT50aGlzLnN0YXJ0UmVzaXplKFRlLEssInMiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7VGU9PnRoaXMuc3RhcnRSZXNpemUoVGUsSywic2UiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihLLFYpe2lmKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pcmV0dXJuIHdgYDtsZXQgbGU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdCh0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24sSyxWKSxuZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0IixlZT10aGlzLnB4VG9QZXJjZW50KGxlLmxlZnQsSy5jb250YWluZXJXaWR0aCksemU9dGhpcy5weFRvUGVyY2VudChsZS53aWR0aCxLLmNvbnRhaW5lcldpZHRoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCBwbGFjZWhvbGRlciIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke25lfTogJHtlZX0lOwogICAgICAgICAgdG9wOiAke2xlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke3plfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7bGUuaGVpZ2h0fXB4OwogICAgICAgICIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXJ0RHJhZyhLLFYpe2lmKCF0aGlzLmVkaXRhYmxlfHxWLm5vTW92ZXx8Vi5sb2NrZWQpcmV0dXJuO0sucHJldmVudERlZmF1bHQoKSxLLnN0b3BQcm9wYWdhdGlvbigpO2xldCBsZT1LLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmdyaWQtd2lkZ2V0Iik7aWYoIWxlKXJldHVybjtsZXQgbmU9bGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLmRyYWdTdGF0ZT17d2lkZ2V0SWQ6Vi5pZCxwb2ludGVySWQ6Sy5wb2ludGVySWQsb2Zmc2V0WDpLLmNsaWVudFgtbmUubGVmdCxvZmZzZXRZOksuY2xpZW50WS1uZS50b3Asc3RhcnQ6e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9LHByZXZpb3VzUG9zaXRpb246e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9LGN1cnJlbnRQb2ludGVyOntjbGllbnRYOksuY2xpZW50WCxjbGllbnRZOksuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLEsuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShLLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9fWhhbmRsZURyYWdNb3ZlPWkoSz0+e2lmKCF0aGlzLmRyYWdTdGF0ZSlyZXR1cm47bGV0IFY9dGhpcy5lbnN1cmVNZXRyaWNzKCksbGU9dGhpcy53aWRnZXRzLG5lPWxlLmZpbmQoR2U9PkdlLmlkPT09dGhpcy5kcmFnU3RhdGUud2lkZ2V0SWQpO2lmKCFuZSlyZXR1cm47Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCBlZT10aGlzLmRyYWdTdGF0ZS5wcmV2aW91c1Bvc2l0aW9uLHplPUpKcih7cG9pbnRlcjp7Y2xpZW50WDpLLmNsaWVudFgsY2xpZW50WTpLLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpWLGNvbHVtbnM6dGhpcy5jb2x1bW5zLHdpZGdldDpuZSxydGw6dGhpcy5ydGwsZHJhZ09mZnNldFg6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WCxkcmFnT2Zmc2V0WTp0aGlzLmRyYWdTdGF0ZS5vZmZzZXRZfSksSGU9bWYobGUsbmUuaWQse3g6emUueCx5OnplLnl9LHRoaXMuY29sdW1ucyxlZSk7aWYoSGUpe2xldCBHZT1IZS53aWRnZXRzLmZpbmQoRGU9PkRlLmlkPT09bmUuaWQpO3RoaXMuZHJhZ1N0YXRlPXsuLi50aGlzLmRyYWdTdGF0ZSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpLLmNsaWVudFgsY2xpZW50WTpLLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6SGUscHJldmlvdXNQb3NpdGlvbjpHZT97aWQ6R2UuaWQseDpHZS54LHk6R2UueSx3OkdlLncsaDpHZS5ofTp7aWQ6bmUuaWQseDp6ZS54LHk6emUueSx3Om5lLncsaDpuZS5ofX0sdGhpcy5wcmV2aWV3V2lkZ2V0cz1IZS53aWRnZXRzO2xldCBvdD1IZS53aWRnZXRzLmZpbmQoRGU9PkRlLmlkPT09bmUuaWQpO290P3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6b3QuaWQseDpvdC54LHk6b3QueSx3Om90LncsaDpvdC5ofTp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOm5lLmlkLHg6emUueCx5OnplLnksdzpuZS53LGg6bmUuaH19ZWxzZSB0aGlzLnByZXZpZXdXaWRnZXRzPW51bGwsdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGw7dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJoYW5kbGVEcmFnTW92ZSIpO2hhbmRsZURyYWdFbmQ9aShLPT57bGV0IFY9dGhpcy5kcmFnU3RhdGU7aWYoIVZ8fEsucG9pbnRlcklkIT09Vi5wb2ludGVySWQpcmV0dXJuO2xldCBsZT10aGlzLndpZGdldHM7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsO2xldCBuZT10aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/P1Yuc3RhcnQsZWU9bWYobGUsVi53aWRnZXRJZCx7eDpuZS54LHk6bmUueX0sdGhpcy5jb2x1bW5zLFYucHJldmlvdXNQb3NpdGlvbik7aWYoZWUpe2xldCB6ZT1lZS53aWRnZXRzLmZpbmQoSGU9PkhlLmlkPT09Vi53aWRnZXRJZCk7emUmJihlZS53aWRnZXRzLnNvbWUoR2U9PkdlLmlkPT09Vi53aWRnZXRJZD8hMTp6ZS54PEdlLngrR2UudyYmemUueCt6ZS53PkdlLngmJnplLnk8R2UueStHZS5oJiZ6ZS55K3plLmg+R2UueSk/dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoR2U9PkdlLmlkPT09Vi53aWRnZXRJZD97Li4uR2UseDpWLnN0YXJ0LngseTpWLnN0YXJ0Lnl9OkdlKTp0aGlzLmNvbW1pdFBsYWNlbWVudChlZSxWLndpZGdldElkLCJ3aWRnZXQtbW92ZSIpKX1lbHNlIHRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHplPT56ZS5pZD09PVYud2lkZ2V0SWQ/ey4uLnplLHg6Vi5zdGFydC54LHk6Vi5zdGFydC55fTp6ZSk7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX0sImhhbmRsZURyYWdFbmQiKTtzdGFydFJlc2l6ZShLLFYsbGUpeyF0aGlzLmVkaXRhYmxlfHxWLm5vUmVzaXplfHxWLmxvY2tlZHx8KEsucHJldmVudERlZmF1bHQoKSxLLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW5zdXJlTWV0cmljcygpLHRoaXMucmVzaXplU3RhdGU9e3dpZGdldElkOlYuaWQscG9pbnRlcklkOksucG9pbnRlcklkLGhhbmRsZXI6bGUsc3RhcnRQb2ludGVyOntjbGllbnRYOksuY2xpZW50WCxjbGllbnRZOksuY2xpZW50WX0sc3RhcnQ6e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9LHN0YXJ0V2lkdGg6Vi53LHN0YXJ0SGVpZ2h0OlYuaCxsYXN0UGxhY2VtZW50Om51bGx9LHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITAsSy5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKEsucG9pbnRlcklkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9KX1oYW5kbGVSZXNpemVNb3ZlPWkoSz0+e2lmKCF0aGlzLnJlc2l6ZVN0YXRlKXJldHVybjtsZXQgVj10aGlzLmVuc3VyZU1ldHJpY3MoKSxsZT10aGlzLndpZGdldHMsbmU9bGUuZmluZChIZT0+SGUuaWQ9PT10aGlzLnJlc2l6ZVN0YXRlLndpZGdldElkKTtpZighbmUpcmV0dXJuO0sucHJldmVudERlZmF1bHQoKTtsZXQgZWU9ZWVhKHtwb2ludGVyOntjbGllbnRYOksuY2xpZW50WCxjbGllbnRZOksuY2xpZW50WX0sY29udGFpbmVyUmVjdDp0aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtZXRyaWNzOlYsc3RhcnRXaWR0aDp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0V2lkdGgsc3RhcnRIZWlnaHQ6dGhpcy5yZXNpemVTdGF0ZS5zdGFydEhlaWdodCxzdGFydFBvaW50ZXI6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFBvaW50ZXIsaGFuZGxlcjp0aGlzLnJlc2l6ZVN0YXRlLmhhbmRsZXIsd2lkZ2V0Om5lLGNvbHVtbnM6dGhpcy5jb2x1bW5zfSksemU9bWYobGUsbmUuaWQse3g6bmUueCx5Om5lLnksdzplZS53aWR0aCxoOmVlLmhlaWdodH0sdGhpcy5jb2x1bW5zLHRoaXMucmVzaXplU3RhdGUuc3RhcnQpO2lmKHplKXt0aGlzLnJlc2l6ZVN0YXRlPXsuLi50aGlzLnJlc2l6ZVN0YXRlLGxhc3RQbGFjZW1lbnQ6emV9LHRoaXMucHJldmlld1dpZGdldHM9emUud2lkZ2V0cztsZXQgSGU9emUud2lkZ2V0cy5maW5kKEdlPT5HZS5pZD09PW5lLmlkKTtIZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkhlLmlkLHg6SGUueCx5OkhlLnksdzpIZS53LGg6SGUuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpuZS5pZCx4Om5lLngseTpuZS55LHc6ZWUud2lkdGgsaDplZS5oZWlnaHR9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwiaGFuZGxlUmVzaXplTW92ZSIpO2hhbmRsZVJlc2l6ZUVuZD1pKEs9PntsZXQgVj10aGlzLnJlc2l6ZVN0YXRlO2lmKCFWfHxLLnBvaW50ZXJJZCE9PVYucG9pbnRlcklkKXJldHVybjtsZXQgbGU9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgbmU9Vi5sYXN0UGxhY2VtZW50Pz9tZihsZSxWLndpZGdldElkLHt4OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueD8/Vi5zdGFydC54LHk6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy55Pz9WLnN0YXJ0Lnksdzp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lnc/P1Yuc3RhcnQudyxoOnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaD8/Vi5zdGFydC5ofSx0aGlzLmNvbHVtbnMsVi5zdGFydCk7bmU/dGhpcy5jb21taXRQbGFjZW1lbnQobmUsVi53aWRnZXRJZCwid2lkZ2V0LXJlc2l6ZSIpOnRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKGVlPT5lZS5pZD09PVYud2lkZ2V0SWQ/ey4uLmVlLHc6Vi5zdGFydC53LGg6Vi5zdGFydC5ofTplZSksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5yZXNpemVTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfSwiaGFuZGxlUmVzaXplRW5kIik7aGFuZGxlSGVhZGVyS2V5ZG93bihLLFYpe2lmKCF0aGlzLmVkaXRhYmxlfHxWLm5vTW92ZXx8Vi5sb2NrZWQpcmV0dXJuO2xldCBsZT1LLmtleSxuZT1LLnNoaWZ0S2V5LGVlPW51bGw7aWYobmUmJlsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhsZSkpe0sucHJldmVudERlZmF1bHQoKTtsZXQgRGU9bGU9PT0iQXJyb3dSaWdodCJ8fGxlPT09IkFycm93RG93biI/MTotMTtpZihsZT09PSJBcnJvd0xlZnQifHxsZT09PSJBcnJvd1JpZ2h0Iil7bGV0IF9lPVYubWF4Vz8/dGhpcy5jb2x1bW5zLVYueCxvZT1NYXRoLm1heChWLm1pblc/PzEsTWF0aC5taW4oX2UsVi53K0RlKSk7ZWU9bWYodGhpcy53aWRnZXRzLFYuaWQse3g6Vi54LHk6Vi55LHc6b2UsaDpWLmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgX2U9Vi5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksb2U9TWF0aC5tYXgoVi5taW5IPz8xLE1hdGgubWluKF9lLFYuaCtEZSkpO2VlPW1mKHRoaXMud2lkZ2V0cyxWLmlkLHt4OlYueCx5OlYueSx3OlYudyxoOm9lfSx0aGlzLmNvbHVtbnMpfWVlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudChlZSxWLmlkLCJ3aWRnZXQtcmVzaXplIik7cmV0dXJufWxldCBIZT17QXJyb3dMZWZ0OntkeDotMSxkeTowfSxBcnJvd1JpZ2h0OntkeDoxLGR5OjB9LEFycm93VXA6e2R4OjAsZHk6LTF9LEFycm93RG93bjp7ZHg6MCxkeToxfX1bbGVdO2lmKCFIZSlyZXR1cm47Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCBHZT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuY29sdW1ucy1WLncsVi54K0hlLmR4KSksb3Q9TWF0aC5tYXgoMCxWLnkrSGUuZHkpO2VlPW1mKHRoaXMud2lkZ2V0cyxWLmlkLHt4OkdlLHk6b3R9LHRoaXMuY29sdW1ucyksZWUmJnRoaXMuY29tbWl0UGxhY2VtZW50KGVlLFYuaWQsIndpZGdldC1tb3ZlIil9aGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoSyxWKXtLLnByZXZlbnREZWZhdWx0KCksSy5zdG9wUHJvcGFnYXRpb24oKSxyZWEoe3dpZGdldDpWLGhvc3Q6dGhpcyxldmVudDpLfSl9Y29tbWl0UGxhY2VtZW50KEssVixsZSl7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMud2lkZ2V0cz1LLndpZGdldHM7bGV0IG5lPXRoaXMud2lkZ2V0cy5maW5kKGVlPT5lZS5pZD09PVYpO25lJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KGxlLHtkZXRhaWw6e3dpZGdldDpuZSxkaXNwbGFjZWQ6Sy5tb3ZlZFdpZGdldHMuZmlsdGVyKGVlPT5lZSE9PVYpLHN3YXBwZWRXaXRoOksuc3dhcHBlZFdpdGh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9cmVtb3ZlV2lkZ2V0KEspe2xldCBWPXRoaXMud2lkZ2V0cy5maW5kKGxlPT5sZS5pZD09PUspO1YmJih0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihsZT0+bGUuaWQhPT1LKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ3aWRnZXQtcmVtb3ZlIix7ZGV0YWlsOnt3aWRnZXQ6Vn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9dXBkYXRlV2lkZ2V0KEssVil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAobGU9PmxlLmlkPT09Sz97Li4ubGUsLi4uVn06bGUpfWdldExheW91dCgpe3JldHVybiB0aGlzLndpZGdldHMubWFwKCh7aWQ6Syx4OlYseTpsZSx3Om5lLGg6ZWV9KT0+KHtpZDpLLHg6Vix5OmxlLHc6bmUsaDplZX0pKX1zZXRMYXlvdXQoSyl7dGhpcy53aWRnZXRzPVFKcih0aGlzLndpZGdldHMsSyl9bG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSExfXVubG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSEwfWFkZFdpZGdldChLLFY9ITEpe2xldCBsZT17Li4uS307aWYoVnx8bGUuYXV0b1Bvc2l0aW9uKXtsZXQgbmU9STd0KHRoaXMud2lkZ2V0cyxsZS53LGxlLmgsdGhpcy5jb2x1bW5zKTtsZS54PW5lLngsbGUueT1uZS55fXRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLGxlXX1jb21wYWN0KEs9InZlcnRpY2FsIil7bGV0IFY9dGhpcy53aWRnZXRzLm1hcChsZT0+KHsuLi5sZX0pKTtaSnIoVixLKSx0aGlzLndpZGdldHM9Vn1hcHBseUJyZWFrcG9pbnRMYXlvdXQoSyl7dGhpcy5hY3RpdmVCcmVha3BvaW50PUs7bGV0IFY9dGhpcy5sYXlvdXRzPy5bS107ViYmdGhpcy5zZXRMYXlvdXQoVil9bm90aWZ5TGF5b3V0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGF5b3V0LWNoYW5nZSIse2RldGFpbDp7bGF5b3V0OnRoaXMuZ2V0TGF5b3V0KCl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9ZW5zdXJlTWV0cmljcygpe3JldHVybiB0aGlzLm1ldHJpY3N8fHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm1ldHJpY3N9Y29tcHV0ZU1ldHJpY3MoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm47bGV0IEs9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmNvbnRhaW5lckJvdW5kcz1LO2xldCBWPUU3dCh0aGlzLm1hcmdpbik7dGhpcy5yZXNvbHZlZE1hcmdpbnM9Vix0aGlzLm1ldHJpY3M9WUpyKEsud2lkdGgsdGhpcy5jb2x1bW5zLFYsdGhpcy5jZWxsSGVpZ2h0LHRoaXMuY2VsbEhlaWdodFVuaXQpfW9ic2VydmVSZXNpemUoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNvbXB1dGVNZXRyaWNzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1yZWxlYXNlUG9pbnRlckV2ZW50cygpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCl9cHhUb1BlcmNlbnQoSyxWKXtyZXR1cm4gVj9OdW1iZXIoKEsvVioxMDApLnRvRml4ZWQoNCkpOjB9Y29tcHV0ZVdpZGdldFJlY3QoSyxWLGxlKXtsZXQgbmU9Vi5jZWxsV2lkdGhQeCxlZT1WLmNlbGxIZWlnaHRQeCx6ZT1LLngqKG5lK2xlLmhvcml6b250YWwpK2xlLmhvcml6b250YWwsSGU9Sy55KihlZStsZS52ZXJ0aWNhbCkrbGUudmVydGljYWwsR2U9Sy53Km5lK01hdGgubWF4KDAsSy53LTEpKmxlLmhvcml6b250YWwsb3Q9Sy5oKmVlK01hdGgubWF4KDAsSy5oLTEpKmxlLnZlcnRpY2FsO3JldHVybntsZWZ0OnplLHRvcDpIZSx3aWR0aDpHZSxoZWlnaHQ6b3R9fXN0YXRpY3tNYShhLHIpfX07cmV0dXJuIHhlPWF9KSgpfSk7dmFyIG5lYT11KCgpPT57c2VhKCl9KTtmdW5jdGlvbiBvZWEoKXtyZXR1cm4gd2AKICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjEiPlRoaXMgaXMgYSBIMSBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIyIj5UaGlzIGlzIGEgSDIgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMyI+VGhpcyBpcyBhIEgzIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjQiPlRoaXMgaXMgYSBINCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI1Ij5UaGlzIGlzIGEgSDUgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNiI+VGhpcyBpcyBhIEg2IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyIj5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSJociIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI3Ij5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSI3Iik8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyLXNtYWxsIj5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSJoci1zbWFsbCIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI4Ij5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSI4Iik8L2RlZXMtaGVhZGluZz4KICBgfXZhciBsZWE9dSgoKT0+e3ZlKCk7aShvZWEsImRlbW9GdW5jIil9KTt2YXIgY2VhLFA3dCxkZWEsdWVhPXUoKCk9Pnt2ZSgpO2xlYSgpO19zKCk7bHQoKTtjZWE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LFA3dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZGVhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1oZWFkaW5nIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNIZWFkaW5nIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxjZWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsZXZlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibGV2ZWwiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5sZXZlbCwiZ2V0Iiksc2V0OmkoKGYscCk9PntmLmxldmVsPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxjZWEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1vZWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1QN3QodGhpcyxvLCIxIik7Z2V0IGxldmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxldmVsKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLyogSGVhZGluZyBzdHlsZXMuCiAgICAgICAqIENvbG9yIGhpZXJhcmNoeTogaDEtaDIgc3RheSBwcm9taW5lbnQgd2l0aCB0ZXh0LXByaW1hcnk7IGgzLWg2IHN0ZXAKICAgICAgICogZG93biB0byB0ZXh0LXNlY29uZGFyeSBzbyB0aGV5IHJlYWQgYXMgc3ViaGVhZGluZ3MgaW5zdGVhZCBvZgogICAgICAgKiBtaW5pLWgxcy4gS2VlcHMgdGhlIHZpc3VhbCBsb3VkbmVzcyBvdXQgb2Ygc21hbGxlciBoZWFkaW5ncy4gKi8KICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICBoMSwgaDIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLyogUGVyLWxldmVsIHR5cG9ncmFwaHkgKyBzcGFjaW5nLgogICAgICAgKiBNYXJnaW4gc2NhbGVzIHdpdGggaW1wb3J0YW5jZTogaDEgZ2V0cyB0aGUgbW9zdCBicmVhdGhpbmcgcm9vbSwKICAgICAgICogaDYgdGhlIGxlYXN0LiBUb3AgbWFyZ2luID4gYm90dG9tIG1hcmdpbiBzbyBoZWFkaW5ncyBncm91cCB3aXRoCiAgICAgICAqIHRoZSBjb250ZW50IHRoYXQgZm9sbG93cyB0aGVtLiAqLwogICAgICBoMSB7CiAgICAgICAgLyogaDEgdXNlcyB3ZWlnaHQgNTAwLCBub3QgNjAwOiB0aGUgQ2FsIFNhbnMgZGlzcGxheSBmb250IGlzCiAgICAgICAgICogYWxyZWFkeSBzdHlsaXplZCBlbm91Z2ggdGhhdCBib2xkICsgbWF4IGNvbnRyYXN0ICsgMzJweCBzdGFja3MKICAgICAgICAgKiB0b28gbXVjaCBlbXBoYXNpcy4gNTAwIGtlZXBzIHRoZSB0eXBvZ3JhcGhpYyBpbXBhY3Qgd2l0aG91dAogICAgICAgICAqIHNob3V0aW5nLiAqLwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke3hqcn07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKSAwIHZhcigtLWRlZXMtc3BhY2luZy1sZyk7CiAgICAgIH0KICAgICAgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy14bCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsKICAgICAgfQogICAgICBoNCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKSAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1tZCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIGg2IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsKICAgICAgfQoKICAgICAgLyogSG9yaXpvbnRhbCBydWxlIHN0eWxlIGhlYWRpbmcgKi8KICAgICAgLmhlYWRpbmctaHIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpIDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KICAgICAgLyogRmFkZSBsaW5lcyB0b3dhcmQgYW5kIGF3YXkgZnJvbSB0ZXh0IGZvciBociBzdHlsZSAqLwogICAgICAuaGVhZGluZy1ocjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZykpOwogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyksIHRyYW5zcGFyZW50KTsKICAgICAgICBtYXJnaW46IDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgICAvKiBTbWFsbCBociB2YXJpYW50IHdpdGggcmVkdWNlZCBtYXJnaW5zICovCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGwgewogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKSAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsOjpiZWZvcmUsCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmFmdGVyIHsKICAgICAgICBtYXJnaW46IDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UiMSI6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmA7Y2FzZSIyIjpyZXR1cm4gd2A8aDI+PHNsb3Q+PC9zbG90PjwvaDI+YDtjYXNlIjMiOnJldHVybiB3YDxoMz48c2xvdD48L3Nsb3Q+PC9oMz5gO2Nhc2UiNCI6cmV0dXJuIHdgPGg0PjxzbG90Pjwvc2xvdD48L2g0PmA7Y2FzZSI1IjpyZXR1cm4gd2A8aDU+PHNsb3Q+PC9zbG90PjwvaDU+YDtjYXNlIjYiOnJldHVybiB3YDxoNj48c2xvdD48L3Nsb3Q+PC9oNj5gO2Nhc2UiNyI6Y2FzZSJociI6cmV0dXJuIHdgPGRpdiBjbGFzcz0iaGVhZGluZy1ociI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7Y2FzZSI4IjpjYXNlImhyLXNtYWxsIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIGhlYWRpbmctaHItc21hbGwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO2RlZmF1bHQ6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmB9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxQN3QodGhpcyxsKX1zdGF0aWN7UDd0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBwZWE9dSgoKT0+e3VlYSgpfSk7dmFyIGZlYT11KCgpPT57T3koKX0pO3ZhciBoZWEsbWVhPXUoKCk9Pnt2ZSgpO2hlYT1pKCgpPT53YAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTZweDsiPgogICAgPCEtLSBTbWFsbCBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj41IHBhZ2VzLCBzdGFydGluZyBhdCAxOjwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezV9CiAgICAgICAgLnBhZ2U9JHsxfQogICAgICAgIEBwYWdlLWNoYW5nZT0ke3Q9PmNvbnNvbGUubG9nKCJQYWdlIGNoYW5nZWQgdG8iLHQuZGV0YWlsLnBhZ2UpfQogICAgICA+PC9kZWVzLXBhZ2luYXRpb24+CiAgICA8L2Rpdj4KCiAgICA8IS0tIExhcmdlciBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj4xNSBwYWdlcywgc3RhcnRpbmcgYXQgODo8L3NwYW4+CiAgICAgIDxkZWVzLXBhZ2luYXRpb24KICAgICAgICAudG90YWw9JHsxNX0KICAgICAgICAucGFnZT0kezh9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7dD0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIsdC5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE43dCxCcmUsZ2VhLGJlYT11KCgpPT57dmUoKTttZWEoKTtsdCgpO043dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sQnJlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxnZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXBhZ2luYXRpb24iKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1BhZ2luYXRpb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLGM9W1Aoe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sTjd0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4icGFnZSJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnBhZ2UsImdldCIpLHNldDppKChtLHYpPT57bS5wYWdlPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxON3QodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0b3RhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4idG90YWwiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS50b3RhbCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnRvdGFsPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxON3QobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1oZWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1CcmUodGhpcyxvLDEpO2dldCBwYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBhZ2UoaCl7dGhpcy4jZT1ofSN0PShCcmUodGhpcyxsKSxCcmUodGhpcyxkLDEpKTtnZXQgdG90YWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdG90YWwoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBtYXJnaW46IDAgMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZWUiLCIjNDQ0Iil9OwogICAgICB9CiAgICAgIGJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2FhYSIsIiM2NjYiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmN1cnJlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIHNwYW4uZWxsaXBzaXMgewogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgYF07Z2V0IHBhZ2VzKCl7bGV0IGg9W10sbT10aGlzLnRvdGFsLHY9dGhpcy5wYWdlO2lmKG08PTcpZm9yKGxldCBiPTE7Yjw9bTtiKyspaC5wdXNoKGIpO2Vsc2V7aC5wdXNoKDEpLHY+NCYmaC5wdXNoKCIuLi4iKTtsZXQgYj1NYXRoLm1heCgyLHYtMiksZz1NYXRoLm1pbihtLTEsdisyKTtmb3IobGV0IHk9Yjt5PD1nO3krKyloLnB1c2goeSk7djxtLTMmJmgucHVzaCgiLi4uIiksaC5wdXNoKG0pfXJldHVybiBofXJlbmRlcigpe3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZSh0aGlzLnBhZ2UtMSl9CiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5wYWdlPD0xfQogICAgICAgIGFyaWEtbGFiZWw9IlByZXZpb3VzIHBhZ2UiCiAgICAgID4KICAgICAgICDigLkKICAgICAgPC9idXR0b24+CiAgICAgICR7dGhpcy5wYWdlcy5tYXAoaD0+aD09PSIuLi4iP3dgPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj7igKY8L3NwYW4+YDp3YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSIke2g9PT10aGlzLnBhZ2U/ImN1cnJlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UoaCl9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtoPT09dGhpcy5wYWdlfQogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iUGFnZSAke2h9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7aH0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZSsxKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U+PXRoaXMudG90YWx9CiAgICAgICAgYXJpYS1sYWJlbD0iTmV4dCBwYWdlIgogICAgICA+CiAgICAgICAg4oC6CiAgICAgIDwvYnV0dG9uPgogICAgYH1jaGFuZ2VQYWdlKGgpe2g8MXx8aD50aGlzLnRvdGFsfHxoPT09dGhpcy5wYWdlfHwodGhpcy5wYWdlPWgsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicGFnZS1jaGFuZ2UiLHtkZXRhaWw6e3BhZ2U6dGhpcy5wYWdlfSxidWJibGVzOiEwfSkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQnJlKHRoaXMsZil9c3RhdGlje0JyZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgeGVhPXUoKCk9PntiZWEoKX0pO3ZhciB2ZWE9dSgoKT0+e3duKCl9KTt2YXIgeWVhLHdlYT11KCgpPT57dmUoKTtPN3QoKTt5ZWE9aSgoKT0+e2xldCB0PVt7a2V5OiJlbWFpbCIsbGFiZWw6IkFjY291bnQgZW1haWwiLHZhbHVlOiJhZG1pbkBleGFtcGxlLmNvbSJ9LHtrZXk6InN0YXR1cyIsbGFiZWw6IlN0YXR1cyIsdmFsdWU6ImVuYWJsZWQifSx7a2V5OiJtb2RlIixsYWJlbDoiTW9kZSIsdmFsdWU6InByb2R1Y3Rpb24ifSx7a2V5OiJhdXRvUmVuZXciLGxhYmVsOiJBdXRvLXJlbmV3Iix2YWx1ZToib24ifSx7a2V5OiJ0aHJlc2hvbGQiLGxhYmVsOiJSZW5ld2FsIHRocmVzaG9sZCIsdmFsdWU6IjMwIGRheXMifV0sZT1be25hbWU6IkVkaXQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRWRpdCBjbGlja2VkIiksImFjdGlvbiIpfV0scj1be25hbWU6IkNvbmZpZ3VyZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDb25maWd1cmUgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGE9W3tuYW1lOiJSZXNldCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXNldCBjbGlja2VkIiksImFjdGlvbiIpfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJFZGl0IGNsaWNrZWQiKSwiYWN0aW9uIil9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGVlcy1zZXR0aW5ncwogICAgICAgICAgLmhlYWRpbmc9JHsiQUNNRSBTZXR0aW5ncyJ9CiAgICAgICAgICAuc2V0dGluZ3NGaWVsZHM9JHt0fQogICAgICAgICAgLmFjdGlvbnM9JHtlfQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJBQ01FIFNldHRpbmdzIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJObyBBQ01FIGNvbmZpZ3VyYXRpb24geWV0LiBDbGljayBDb25maWd1cmUgdG8gc2V0IHVwIGF1dG9tYXRlZCBUTFMgY2VydGlmaWNhdGUgaXNzdWFuY2UuIn0KICAgICAgICAgIC5hY3Rpb25zPSR7cn0KICAgICAgICA+PC9kZWVzLXNldHRpbmdzPgoKICAgICAgICA8ZGVlcy1zZXR0aW5ncwogICAgICAgICAgLmhlYWRpbmc9JHsiU2VydmVyIENvbmZpZyJ9CiAgICAgICAgICAuc2V0dGluZ3NGaWVsZHM9JHtbe2tleToiaG9zdCIsbGFiZWw6Ikhvc3RuYW1lIix2YWx1ZToicHJveHkuZXhhbXBsZS5jb20ifSx7a2V5OiJwb3J0IixsYWJlbDoiUG9ydCIsdmFsdWU6IjQ0MyJ9XX0KICAgICAgICAgIC5hY3Rpb25zPSR7YX0KICAgICAgICA+PC9kZWVzLXNldHRpbmdzPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBIcmUsdjMsa2VhLE83dD11KCgpPT57dmUoKTt3ZWEoKTtfcygpO2x0KCk7bnMoKTtIcmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHYzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxrZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXNldHRpbmdzIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTZXR0aW5ncyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe2F0dHJpYnV0ZTohMX0pXSx2PVtQKHthdHRyaWJ1dGU6ITF9KV0sSHJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaGVhZGluZyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmhlYWRpbmcsImdldCIpLHNldDppKChNLE4pPT57TS5oZWFkaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxIcmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iZGVzY3JpcHRpb24iaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5kZXNjcmlwdGlvbiwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmRlc2NyaXB0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxIcmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR0aW5nc0ZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic2V0dGluZ3NGaWVsZHMiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5zZXR0aW5nc0ZpZWxkcywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnNldHRpbmdzRmllbGRzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxIcmUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJhY3Rpb25zImluIE0sImhhcyIpLGdldDppKE09Pk0uYWN0aW9ucywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmFjdGlvbnM9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLEhyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXllYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPXYzKHRoaXMsbywiIik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhrKXt0aGlzLiNlPWt9I3Q9KHYzKHRoaXMsbCksdjModGhpcyxkLCIiKSk7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRlc2NyaXB0aW9uKGspe3RoaXMuI3Q9a30jcj0odjModGhpcyxmKSx2Myh0aGlzLGgsW10pKTtnZXQgc2V0dGluZ3NGaWVsZHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2V0dGluZ3NGaWVsZHMoayl7dGhpcy4jcj1rfSNhPSh2Myh0aGlzLG0pLHYzKHRoaXMsYixbXSkpO2dldCBhY3Rpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFjdGlvbnMoayl7dGhpcy4jYT1rfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgfQoKICAgICAgLnNldHRpbmdzR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDEycHggMjRweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuc2V0dGluZ3NGaWVsZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZmllbGRMYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmZpZWxkVmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuc2V0dGluZ3NEZXNjcmlwdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBrPXRoaXMuc2V0dGluZ3NGaWVsZHMubGVuZ3RoPjAsTT10aGlzLmFjdGlvbnMubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9JHt0aGlzLmhlYWRpbmd9PgogICAgICAgICR7az93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzR3JpZCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2V0dGluZ3NGaWVsZHMubWFwKE49PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3NGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGRMYWJlbCI+JHtOLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZFZhbHVlIj4ke04udmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzRGVzY3JpcHRpb24iPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAke00/d2AKICAgICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICAgJHt0aGlzLmFjdGlvbnMubWFwKChOLF8pPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24gJHtfPT09dGhpcy5hY3Rpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+Ti5hY3Rpb24oKX0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAke04ubmFtZX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdjModGhpcyxnKX1zdGF0aWN7djMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIFNlYT11KCgpPT57Tzd0KCl9KTt2YXIgTWVhLHFyZSxDZWEsemVhLF9lYT11KCgpPT57dmUoKTtQNmUoKTtNZWE9aShhc3luYyh0LGUpPT5uZXcgUHJvbWlzZShyPT57bGV0IGE9ITEscz1pKGw9PnthfHwoYT0hMCxlJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixuKSxyKGwpKX0sImZpbmlzaCIpLG49aSgoKT0+e3dpbmRvdy5jbGVhclRpbWVvdXQobykscyghMSl9LCJoYW5kbGVBYm9ydCIpLG89d2luZG93LnNldFRpbWVvdXQoKCk9PntzKCEwKX0sdCk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbix7b25jZTohMH0pfSksIndhaXRGb3JQcm9ncmVzc1RpY2siKSxxcmU9aSgodD0iQ29udGludWUiKT0+W3tuYW1lOnQsYWN0aW9uOmkoYXN5bmMgZT0+ZT8uZ29OZXh0KCksImFjdGlvbiIpfV0sImNyZWF0ZUNvbnRpbnVlTWVudU9wdGlvbnMiKSxDZWE9aSgoKT0+W3t0aXRsZToiQWNjb3VudCBTZXR1cCIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJlbWFpbCIgbGFiZWw9IldvcmsgRW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IkNyZWF0ZSBQYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6cXJlKCl9LHt0aXRsZToiUHJvZmlsZSBEZXRhaWxzIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImZpcnN0TmFtZSIgbGFiZWw9IkZpcnN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJsYXN0TmFtZSIgbGFiZWw9Ikxhc3QgTmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczpxcmUoKX0se3RpdGxlOiJDb250YWN0IEluZm9ybWF0aW9uIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUga2V5PSJwaG9uZSIgbGFiZWw9Ik1vYmlsZSBOdW1iZXIiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iY29tcGFueSIgbGFiZWw9IkNvbXBhbnkiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6cXJlKCl9LHt0aXRsZToiUHJvdmlzaW9uIFdvcmtzcGFjZSIsY29udGVudDp3YAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD4KICAgICAgICAgIFdlIGFyZSBjcmVhdGluZyB5b3VyIHN0YXJ0ZXIgd29ya3NwYWNlLCBhcHBseWluZyB5b3VyIG9uYm9hcmRpbmcgY2hvaWNlcywKICAgICAgICAgIGFuZCBwcmVwYXJpbmcgYSBsaXZlIHByZXZpZXcuIFRoaXMgc3RlcCBtb3ZlcyBmb3J3YXJkIGF1dG9tYXRpY2FsbHkgd2hlbgogICAgICAgICAgdGhlIGVudmlyb25tZW50IGlzIHJlYWR5LgogICAgICAgIDwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgYCxwcm9ncmVzc1N0ZXA6e2xhYmVsOiJXb3Jrc3BhY2Ugc2V0dXAiLHBlcmNlbnRhZ2U6OCxpbmRldGVybWluYXRlOiEwLHN0YXR1c1Jvd3M6NCxzdGF0dXNUZXh0OiJBbGxvY2F0aW5nIGEgY2xlYW4gd29ya3NwYWNlLi4uIix0ZXJtaW5hbExpbmVzOlsiQWxsb2NhdGluZyBhIGNsZWFuIHdvcmtzcGFjZSJdfSx2YWxpZGF0aW9uRnVuYzppKGFzeW5jKHQsZSxyKT0+e2xldCBhPVt7bGluZToiQWxsb2NhdGluZyBhIGNsZWFuIHdvcmtzcGFjZSIscGVyY2VudGFnZTo4LGRlbGF5OjUwMH0se2xpbmU6IlN5bmNpbmcgYWNjb3VudCBwcmVmZXJlbmNlcyIscGVyY2VudGFnZToyNCxkZWxheTo2NTB9LHtsaW5lOiJJbnN0YWxsaW5nIHNlbGVjdGVkIGludGVncmF0aW9ucyIscGVyY2VudGFnZTo0NyxkZWxheTo3MDB9LHtsaW5lOiJHZW5lcmF0aW5nIHN0YXJ0ZXIgcHJvamVjdCBmaWxlcyIscGVyY2VudGFnZTo3MSxkZWxheTo2NTB9LHtsaW5lOiJCb290aW5nIHRoZSBsaXZlIHByZXZpZXcgZW52aXJvbm1lbnQiLHBlcmNlbnRhZ2U6OTIsZGVsYXk6NzAwfV07dC5yZXNldFByb2dyZXNzU3RlcCgpO2ZvcihsZXRbcyxuXW9mIGEuZW50cmllcygpKWlmKHI/LmFib3J0ZWR8fChzPT09MD90LnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZTpuLnBlcmNlbnRhZ2UsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OmAke24ubGluZX0uLi5gLHRlcm1pbmFsTGluZXM6W24ubGluZV19KToodC5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKG4ubGluZSksdC51cGRhdGVQcm9ncmVzc1N0ZXAoe3BlcmNlbnRhZ2U6bi5wZXJjZW50YWdlLGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDpgJHtuLmxpbmV9Li4uYH0pKSwhYXdhaXQgTWVhKG4uZGVsYXkscikpKXJldHVybjt0LmFwcGVuZFByb2dyZXNzU3RlcExpbmUoIldvcmtzcGFjZSByZWFkeSIpLHQudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOjEwMCxpbmRldGVybWluYXRlOiExLHN0YXR1c1RleHQ6IldvcmtzcGFjZSByZWFkeS4ifSksYXdhaXQgTWVhKDM1MCxyKX0sInZhbGlkYXRpb25GdW5jIil9LHt0aXRsZToiVGVhbSBTaXplIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIGtleT0idGVhbVNpemUiCiAgICAgICAgICBsYWJlbD0iSG93IGJpZyBpcyB5b3VyIHRlYW0/IgogICAgICAgICAgLm9wdGlvbnM9JHtbe2xhYmVsOiIxLTUiLHZhbHVlOiIxLTUifSx7bGFiZWw6IjYtMjAiLHZhbHVlOiI2LTIwIn0se2xhYmVsOiIyMS01MCIsdmFsdWU6IjIxLTUwIn0se2xhYmVsOiI1MSsiLHZhbHVlOiI1MSsifV19CiAgICAgICAgICByZXF1aXJlZAogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczpxcmUoKX0se3RpdGxlOiJHb2FscyIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICBrZXk9ImdvYWwiCiAgICAgICAgICBsYWJlbD0iTWFpbiBvYmplY3RpdmUiCiAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6Ik9uYm9hcmRpbmciLHZhbHVlOiJvbmJvYXJkaW5nIn0se2xhYmVsOiJBbmFseXRpY3MiLHZhbHVlOiJhbmFseXRpY3MifSx7bGFiZWw6IkF1dG9tYXRpb24iLHZhbHVlOiJhdXRvbWF0aW9uIn1dfQogICAgICAgICAgcmVxdWlyZWQKICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6cXJlKCl9LHt0aXRsZToiUmV2aWV3ICYgTGF1bmNoIixjb250ZW50OndgCiAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgIDxwPgogICAgICAgICAgWW91ciB3b3Jrc3BhY2UgaXMgcmVhZHkuIFJldmlldyB0aGUgY29sbGVjdGVkIGRldGFpbHMgYW5kIGxhdW5jaCB3aGVuCiAgICAgICAgICB5b3UgYXJlIHJlYWR5IHRvIHN0YXJ0LgogICAgICAgIDwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkxhdW5jaCIsYWN0aW9uOmkoYXN5bmMgdD0+e3Q/Lm92ZXJsYXkmJmF3YWl0IHQuZGVzdHJveSgpfSwiYWN0aW9uIil9XX1dLCJjcmVhdGVEZW1vU3RlcHMiKSx6ZWE9aSgoKT0+d2AKICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyI+CiAgICA8ZGl2CiAgICAgIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTZweDsgbGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IHotaW5kZXg6IDEwOyIKICAgID4KICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2F3YWl0IER3LmNyZWF0ZUFuZFNob3coe3N0ZXBzOkNlYSgpfSl9fQogICAgICA+T3BlbiBzdGVwcGVyIGFzIG92ZXJsYXk8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGVlcy1zdGVwcGVyIC5zdGVwcz0ke0NlYSgpfT48L2RlZXMtc3RlcHBlcj4KICA8L2Rpdj4KYCwic3RlcHBlckRlbW8iKX0pO3ZhciBnZixYbyxEdyxQNmU9dSgoKT0+e3ZuKCk7dmUoKTtNcigpO19lYSgpO2x0KCk7X3MoKTtPbygpO25jKCk7UTQoKTtMN3QoKTtucygpO2dmPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxYbz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sRHc9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXN0ZXBwZXIiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1N0ZXBwZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6T2JqZWN0fSldLHA9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHY9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHk9W1Aoe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZTohMX0pXSxOPVtQKHt0eXBlOk9iamVjdCxhdHRyaWJ1dGU6ITF9KV0sTz1bUCh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZTohMX0pXSxnZih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzdGVwcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnN0ZXBzLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc3RlcHM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGdmKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWxlY3RlZFN0ZXAiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZWxlY3RlZFN0ZXAsImdldCIpLHNldDppKCh6LEEpPT57ei5zZWxlY3RlZFN0ZXA9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLGdmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3ZlcmxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3ZlcmxheSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm92ZXJsYXksImdldCIpLHNldDppKCh6LEEpPT57ei5vdmVybGF5PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30saCxtKSxnZih0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhbmNlbGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImNhbmNlbGFibGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jYW5jZWxhYmxlLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouY2FuY2VsYWJsZT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksZ2YodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGVwcGVyWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzdGVwcGVyWkluZGV4ImluIHosImhhcyIpLGdldDppKHo9Pnouc3RlcHBlclpJbmRleCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnN0ZXBwZXJaSW5kZXg9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLGdmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iYWN0aXZlRm9ybSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmFjdGl2ZUZvcm0sImdldCIpLHNldDppKCh6LEEpPT57ei5hY3RpdmVGb3JtPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSxnZih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUZvcm1WYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iYWN0aXZlRm9ybVZhbGlkImluIHosImhhcyIpLGdldDppKHo9PnouYWN0aXZlRm9ybVZhbGlkLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouYWN0aXZlRm9ybVZhbGlkPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSxnZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPXplYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCIsIkZvcm0iXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhDKXtsZXQgej1kb2N1bWVudC5ib2R5LEE9bmV3IEI7cmV0dXJuIEEuc3RlcHM9Qy5zdGVwcyxBLm92ZXJsYXk9ITAsQy5jYW5jZWxhYmxlIT09dm9pZCAwJiYoQS5jYW5jZWxhYmxlPUMuY2FuY2VsYWJsZSksQS53aW5kb3dMYXllcj1hd2FpdCB5bi5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksei5hcHBlbmQoQS53aW5kb3dMYXllciksei5hcHBlbmQoQSksQS5zdGVwcGVyWkluZGV4PXlyLmdldE5leHRaSW5kZXgoKSx5ci5yZWdpc3RlcihBLEEuc3RlcHBlclpJbmRleCksQX0jZT1Ybyh0aGlzLG8sW10pO2dldCBzdGVwcygpe3JldHVybiB0aGlzLiNlfXNldCBzdGVwcyhDKXt0aGlzLiNlPUN9I3Q9KFhvKHRoaXMsbCksWG8odGhpcyxkLHZvaWQgMCkpO2dldCBzZWxlY3RlZFN0ZXAoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRTdGVwKEMpe3RoaXMuI3Q9Q30jcj0oWG8odGhpcyxmKSxYbyh0aGlzLGgsITEpKTtnZXQgb3ZlcmxheSgpe3JldHVybiB0aGlzLiNyfXNldCBvdmVybGF5KEMpe3RoaXMuI3I9Q30jYT0oWG8odGhpcyxtKSxYbyh0aGlzLGIsITApKTtnZXQgY2FuY2VsYWJsZSgpe3JldHVybiB0aGlzLiNhfXNldCBjYW5jZWxhYmxlKEMpe3RoaXMuI2E9Q30jaT0oWG8odGhpcyxnKSxYbyh0aGlzLGssMWUzKSk7Z2V0IHN0ZXBwZXJaSW5kZXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3RlcHBlclpJbmRleChDKXt0aGlzLiNpPUN9I3M9KFhvKHRoaXMsTSksWG8odGhpcyxfLG51bGwpKTtnZXQgYWN0aXZlRm9ybSgpe3JldHVybiB0aGlzLiNzfXNldCBhY3RpdmVGb3JtKEMpe3RoaXMuI3M9Q30jbj0oWG8odGhpcyxTKSxYbyh0aGlzLEwsITApKTtnZXQgYWN0aXZlRm9ybVZhbGlkKCl7cmV0dXJuIHRoaXMuI259c2V0IGFjdGl2ZUZvcm1WYWxpZChDKXt0aGlzLiNuPUN9YWN0aXZlRm9ybVN1YnNjcmlwdGlvbj1Ybyh0aGlzLEUpO3dpbmRvd0xheWVyO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBJbiBvdmVybGF5IG1vZGUgdGhlIGhvc3QgaXMgInRyYW5zcGFyZW50IiB0byBsYXlvdXQg4oCUIHRoZSBpbm5lcgogICAgICAgKiAuc3RlcHBlckNvbnRhaW5lci5vdmVybGF5IGlzIHdoYXQgcGlucyB0byB0aGUgdmlld3BvcnQgYW5kIGNhcnJpZXMgdGhlCiAgICAgICAqIHotaW5kZXguIEtlZXBpbmcgOmhvc3QgdW5wb3NpdGlvbmVkIGF2b2lkcyBuZXN0aW5nIHRoZSBzdGFja2luZyBjb250ZXh0CiAgICAgICAqIHVuZGVyIGFuIGF1dG8tei1pbmRleCBwYXJlbnQgKHdoaWNoIHdhcyB0cmFwcGluZyAuc3RlcHBlckNvbnRhaW5lcgogICAgICAgKiBiZWxvdyBEZWVzV2luZG93TGF5ZXIncyBzaWJsaW5nIGxheWVycykuIFRoaXMgbWlycm9ycyBob3cgZGVlcy1tb2RhbAogICAgICAgKiBrZWVwcyBpdHMgb3duIDpob3N0IHVucG9zaXRpb25lZCBhbmQgbGV0cyAubW9kYWxDb250YWluZXIgZHJpdmUgbGF5b3V0LgogICAgICAgKi8KICAgICAgOmhvc3QoW292ZXJsYXldKSB7CiAgICAgICAgcG9zaXRpb246IHN0YXRpYzsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5zdGVwcGVyQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zdGVwcGVyQ29udGFpbmVyLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLyogRXhpdCBhbmltYXRpb24g4oCUIHJldmVyc2Ugb2YgdGhlIGVudHJ5LiBUaWxlcyBzbGlkZSBET1dOICsgZmFkZSBvdXQsCiAgICAgICAgIG1pcnJvcmluZyB0aGUgLmVudHJhbmNlIHNsaWRlLXVwLiBUaGUgdHJhbnNpdGlvbiBvdmVycmlkZSBpcyBuZWVkZWQKICAgICAgICAgYmVjYXVzZSBkZWVzLXRpbGUuc3RlcCBoYXMgaXRzIG93biAwLjdzIHRyYW5zaXRpb24gZm9yIHN0ZXAgc2VsZWN0aW9uCiAgICAgICAgIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBtYWtlIHRoZSBleGl0IHNsdWdnaXNoLiAqLwogICAgICAuc3RlcHBlckNvbnRhaW5lci5wcmVkZXN0cm95IGRlZXMtdGlsZS5zdGVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDApOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cywgZmlsdGVyIDAuMnM7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMC41NSkgc2F0dXJhdGUoMC44NSk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpLCBmaWx0ZXIgMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLnNlbGVjdGVkIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgxKSBzYXR1cmF0ZSgxKTsKICAgICAgICB1c2VyLXNlbGVjdDogYXV0bzsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuaGlkZGVuU3RlcCB7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDApOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5lbnRyYW5jZSB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzVzIGVhc2UsIGZpbHRlciAwLjM1cyBlYXNlOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5lbnRyYW5jZS5oaWRkZW5TdGVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZoOwogICAgICB9CgogICAgICAuc3RlcHBlckNvbnRhaW5lci5vdmVybGF5IGRlZXMtdGlsZS5zdGVwOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm94LXNoYWRvdzoKICAgICAgICAgIDAgMCAwIDFweCAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDEwMCUgLyAwLjAzKSIpfSwKICAgICAgICAgIDAgOHB4IDQwcHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4xMikiLCJoc2woMCAwJSAwJSAvIDAuNSkiKX0sCiAgICAgICAgICAwIDJweCA4cHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNikiLCJoc2woMCAwJSAwJSAvIDAuMjUpIil9OwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTJweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5nb0JhY2stc3BhY2VyIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjayB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjazpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2s6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrIHNwYW4gewogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjazpob3ZlciBzcGFuIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuc3RlcENvdW50ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAuc3RlcC1ib2R5IC50aXRsZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmctdG9wOiAzMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5zdGVwLWJvZHkgLmNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgIH0KCiAgICAgIC5zdGVwLWJvZHkgLmNvbnRlbnQud2l0aFByb2dyZXNzU3RlcCB7CiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc1N0ZXAgewogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKICAgICAgfQoKICAgICAgLyogLS0tIEZvb3RlcjogbW9kYWwtc3R5bGUgYm90dG9tIGJ1dHRvbnMgLS0tICovCiAgICAgIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLyogQm9yZGVyLWxlZnQgc2VwYXJhdG9yIG9uIGV2ZXJ5IGJ1dHRvbiBFWENFUFQgdGhlIGZpcnN0IG9uZS4KICAgICAgICAgVXNlcyBnZW5lcmFsIHNpYmxpbmcgc28gdGhlIHN0ZXBIaW50IChpZiByZW5kZXJlZCBvbiB0aGUgbGVmdCkgZG9lcwogICAgICAgICBub3Qgc2hpZnQgd2hpY2ggYnV0dG9uIGNvdW50cyBhcyAiZmlyc3QiIGFuZCBjcmVhdGUgYSBwaGFudG9tIGJvcmRlci4gKi8KICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB+IC5ib3R0b21CdXR0b24gewogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTMlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBIaW50IHNob3duIG9uIHRoZSBsZWZ0IG9mIHRoZSBmb290ZXIgd2hlbiB0aGUgYWN0aXZlIHN0ZXAncyBmb3JtIGhhcwogICAgICAgICB1bmZpbGxlZCByZXF1aXJlZCBmaWVsZHMuIFVzZXMgbWFyZ2luLXJpZ2h0OiBhdXRvIHRvIHB1c2ggcmlnaHQtYWxpZ25lZAogICAgICAgICBidXR0b25zIHRvIHRoZSByaWdodCB3aGlsZSBrZWVwaW5nIHRoZSBoaW50IGZsdXNoLWxlZnQuICovCiAgICAgIC5ib3R0b21CdXR0b25zIC5zdGVwSGludCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJzdGVwcGVyQ29udGFpbmVyICR7dGhpcy5vdmVybGF5PyJvdmVybGF5IjoiIn0iCiAgICAgICAgc3R5bGU9JHt0aGlzLm92ZXJsYXk/YHotaW5kZXg6ICR7dGhpcy5zdGVwcGVyWkluZGV4fTtgOiIifQogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlT3V0c2lkZUNsaWNrfQogICAgICA+CiAgICAgICAgJHt0aGlzLnN0ZXBzLm1hcCgoQyx6KT0+e2xldCBBPUM9PT10aGlzLnNlbGVjdGVkU3RlcCwkPXRoaXMuZ2V0SW5kZXhPZlN0ZXAoQyk+dGhpcy5nZXRJbmRleE9mU3RlcCh0aGlzLnNlbGVjdGVkU3RlcCksRj16PT09MCxZPUMucHJvZ3Jlc3NTdGVwP3RoaXMuZ2V0UHJvZ3Jlc3NTdGVwU3RhdGUoQyk6bnVsbDtyZXR1cm4gd2A8ZGVlcy10aWxlCiAgICAgICAgICAgIGNsYXNzPSJzdGVwICR7QT8ic2VsZWN0ZWQiOiIifSAkeyQ/ImhpZGRlblN0ZXAiOiIifSAke0Y/ImVudHJhbmNlIjoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic3RlcC1oZWFkZXIiPgogICAgICAgICAgICAgICR7Rj93YDxkaXYgY2xhc3M9ImdvQmFjay1zcGFjZXIiPjwvZGl2PmA6d2A8ZGl2IGNsYXNzPSJnb0JhY2siIEBjbGljaz0ke3RoaXMuZ29CYWNrfT4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IEludGVyIj48LTwvc3Bhbj4gZ28gdG8gcHJldmlvdXMgc3RlcAogICAgICAgICAgICAgICAgICA8L2Rpdj5gfQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0ZXBDb3VudGVyIj4KICAgICAgICAgICAgICAgIFN0ZXAgJHt6KzF9IG9mICR7dGhpcy5zdGVwcy5sZW5ndGh9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwLWJvZHkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke0MudGl0bGV9PC9kaXY+CiAgICAgICAgICAgICAgJHtDLnByb2dyZXNzU3RlcCYmWT93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGVwIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgICAgICAubGFiZWw9JHtZLmxhYmVsPz9DLnRpdGxlfQogICAgICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7WS5wZXJjZW50YWdlPz8wfQogICAgICAgICAgICAgICAgICAgIC5pbmRldGVybWluYXRlPSR7WS5pbmRldGVybWluYXRlPz8hMX0KICAgICAgICAgICAgICAgICAgICAuc2hvd1BlcmNlbnRhZ2U9JHtZLnNob3dQZXJjZW50YWdlPz8hMH0KICAgICAgICAgICAgICAgICAgICAuc3RhdHVzVGV4dD0ke1kuc3RhdHVzVGV4dD8/IiJ9CiAgICAgICAgICAgICAgICAgICAgLnRlcm1pbmFsTGluZXM9JHtZLnRlcm1pbmFsTGluZXM/P1tdfQogICAgICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7WS5zdGF0dXNSb3dzPz8zfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50ICR7Qy5wcm9ncmVzc1N0ZXA/IndpdGhQcm9ncmVzc1N0ZXAiOiIifSI+JHtDLmNvbnRlbnR9PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICR7QSYmdGhpcy5hY3RpdmVGb3JtIT09bnVsbCYmIXRoaXMuYWN0aXZlRm9ybVZhbGlkP3dgPGRpdiBjbGFzcz0ic3RlcEhpbnQiPkNvbXBsZXRlIGZvcm0gdG8gY29udGludWU8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7dGhpcy5jYW5jZWxhYmxlP3dgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2FuY2VsUmVxdWVzdCgpfQogICAgICAgICAgICAgICAgICA+Q2FuY2VsPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke0MubWVudU9wdGlvbnM/Lm1hcCgoRyxaKT0+e2xldCBkZT1aPT09Qy5tZW51T3B0aW9ucy5sZW5ndGgtMSxEPWRlJiZ0aGlzLmFjdGl2ZUZvcm0hPT1udWxsJiYhdGhpcy5hY3RpdmVGb3JtVmFsaWQ7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYm90dG9tQnV0dG9uICR7ZGU/InByaW1hcnkiOiIifSAke0Q/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlTWVudU9wdGlvbkNsaWNrKEcsZGUpfQogICAgICAgICAgICAgICAgICA+JHtHLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICBgfSk/PyIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPmB9KX0KICAgICAgPC9kaXY+CiAgICBgfWdldEluZGV4T2ZTdGVwPWkoQz0+dGhpcy5zdGVwcy5maW5kSW5kZXgoej0+Qz09PXopLCJnZXRJbmRleE9mU3RlcCIpO2FzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN0ZXBzLmxlbmd0aCYmKHRoaXMucHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKHRoaXMuc3RlcHNbMF0pLHRoaXMuc2VsZWN0ZWRTdGVwPXRoaXMuc3RlcHNbMF0sYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCB0aGlzLnNldFNjcm9sbFN0YXR1cygpLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzNTApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcC5lbnRyYW5jZSIpPy5jbGFzc0xpc3QucmVtb3ZlKCJlbnRyYW5jZSIpKX1hc3luYyB1cGRhdGVkKEMpeyFDLmhhcygic2VsZWN0ZWRTdGVwIikmJiFDLmhhcygic3RlcHMiKXx8YXdhaXQgdGhpcy5zZXRTY3JvbGxTdGF0dXMoKX1zY3JvbGxlcjthc3luYyBzZXRTY3JvbGxTdGF0dXMoKXtsZXQgQz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKSx6PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWQiKTtpZigheilyZXR1cm47dGhpcy5zY2FuQWN0aXZlRm9ybSh6KSxDLnN0eWxlLnBhZGRpbmdUb3B8fChDLnN0eWxlLnBhZGRpbmdUb3A9YCR7Qy5vZmZzZXRIZWlnaHQvMi16Lm9mZnNldEhlaWdodC8yfXB4YCk7bGV0IEE9ei5vZmZzZXRUb3AtQy5vZmZzZXRIZWlnaHQvMit6Lm9mZnNldEhlaWdodC8yO2F3YWl0IHZvLnNldHVwRG9tVG9vbHMoKSx0aGlzLnNjcm9sbGVyfHwodGhpcy5zY3JvbGxlcj1uZXcgY3IuU3dlZXRTY3JvbGwoe3ZlcnRpY2FsOiEwLGhvcml6b250YWw6ITEsZWFzaW5nOiJlYXNlSW5PdXRFeHBvIixkdXJhdGlvbjo3MDB9LEMpKSwhdGhpcy5zZWxlY3RlZFN0ZXAudmFsaWRhdGlvbkZ1bmNDYWxsZWQmJnRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jJiYodGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsdGhpcy5zZWxlY3RlZFN0ZXAudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITAsdGhpcy5ydW5TdGVwVmFsaWRhdGlvbih0aGlzLnNlbGVjdGVkU3RlcCx6LHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5zaWduYWwpKSx0aGlzLnNjcm9sbGVyLnRvKEEpfWFzeW5jIGdvQmFjaygpe2xldCBDPXRoaXMuc3RlcHMuZmluZEluZGV4KCQ9PiQ9PT10aGlzLnNlbGVjdGVkU3RlcCk7aWYoQzw9MClyZXR1cm47dGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyJiZ0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtsZXQgej10aGlzLnN0ZXBzW0NdO3oudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITE7bGV0IEE9dGhpcy5zdGVwc1tDLTFdO0EudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITEsdGhpcy5wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24oQSksdGhpcy5zZWxlY3RlZFN0ZXA9QSxhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTAwKSx0aGlzLnNlbGVjdGVkU3RlcC5vblJldHVyblRvU3RlcEZ1bmM/Lih0aGlzLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWQiKSl9Z29OZXh0KCl7bGV0IEM9dGhpcy5zdGVwcy5maW5kSW5kZXgoJD0+JD09PXRoaXMuc2VsZWN0ZWRTdGVwKTtpZihDPDB8fEM+PXRoaXMuc3RlcHMubGVuZ3RoLTEpcmV0dXJuO3RoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7bGV0IHo9dGhpcy5zdGVwc1tDXTt6LnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExO2xldCBBPXRoaXMuc3RlcHNbQysxXTtBLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExLHRoaXMucHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKEEpLHRoaXMuc2VsZWN0ZWRTdGVwPUF9cmVzZXRQcm9ncmVzc1N0ZXAoQz10aGlzLnNlbGVjdGVkU3RlcCl7Qz8ucHJvZ3Jlc3NTdGVwJiYoQy5wcm9ncmVzc1N0ZXBTdGF0ZT10aGlzLmNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShDKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9dXBkYXRlUHJvZ3Jlc3NTdGVwKEMsej10aGlzLnNlbGVjdGVkU3RlcCl7aWYoIXo/LnByb2dyZXNzU3RlcClyZXR1cm47bGV0IEE9dGhpcy5nZXRQcm9ncmVzc1N0ZXBTdGF0ZSh6KTt6LnByb2dyZXNzU3RlcFN0YXRlPXsuLi5BLC4uLkMsdGVybWluYWxMaW5lczpDLnRlcm1pbmFsTGluZXM/Wy4uLkMudGVybWluYWxMaW5lc106Wy4uLkEudGVybWluYWxMaW5lcz8/W11dfSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKEMsej10aGlzLnNlbGVjdGVkU3RlcCl7aWYoIXo/LnByb2dyZXNzU3RlcClyZXR1cm47bGV0IEE9dGhpcy5nZXRQcm9ncmVzc1N0ZXBTdGF0ZSh6KTt0aGlzLnVwZGF0ZVByb2dyZXNzU3RlcCh7dGVybWluYWxMaW5lczpbLi4uQS50ZXJtaW5hbExpbmVzPz9bXSxDXX0seil9c2NhbkFjdGl2ZUZvcm0oQyl7bGV0IHo9Qy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtpZih6PT09dGhpcy5hY3RpdmVGb3JtKXt0aGlzLnJlY29tcHV0ZUZvcm1WYWxpZCgpO3JldHVybn1pZih0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPXZvaWQgMCx0aGlzLmFjdGl2ZUZvcm09eiwheil7dGhpcy5hY3RpdmVGb3JtVmFsaWQ9ITA7cmV0dXJufXRoaXMucmVjb21wdXRlRm9ybVZhbGlkKCksdGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPXouY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLnJlY29tcHV0ZUZvcm1WYWxpZCgpfSl9cmVjb21wdXRlRm9ybVZhbGlkKCl7bGV0IEM9dGhpcy5hY3RpdmVGb3JtO2lmKCFDKXt0aGlzLmFjdGl2ZUZvcm1WYWxpZD0hMDtyZXR1cm59bGV0IHo9Qy5nZXRGb3JtRWxlbWVudHMoKTt0aGlzLmFjdGl2ZUZvcm1WYWxpZD16LmV2ZXJ5KEE9PiFBLnJlcXVpcmVkfHxBLnZhbHVlIT09bnVsbCYmQS52YWx1ZSE9PXZvaWQgMCYmQS52YWx1ZSE9PSIiKX1hc3luYyBoYW5kbGVNZW51T3B0aW9uQ2xpY2soQyx6KXtsZXQgQT10aGlzLmFjdGl2ZUZvcm07aWYoeiYmQSl7aWYoIXRoaXMuYWN0aXZlRm9ybVZhbGlkKXJldHVybjthd2FpdCBuZXcgUHJvbWlzZSgkPT57QS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PiQoKSx7b25jZTohMH0pLEEuZ2F0aGVyQW5kRGlzcGF0Y2goKX0pfWF3YWl0IEMuYWN0aW9uKHRoaXMpfWdldFByb2dyZXNzU3RlcFN0YXRlKEMpe3JldHVybiBDLnByb2dyZXNzU3RlcD8oQy5wcm9ncmVzc1N0ZXBTdGF0ZXx8KEMucHJvZ3Jlc3NTdGVwU3RhdGU9dGhpcy5jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoQykpLEMucHJvZ3Jlc3NTdGVwU3RhdGUpOnt9fWNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShDKXtyZXR1cm57bGFiZWw6Qy5wcm9ncmVzc1N0ZXA/LmxhYmVsPz9DLnRpdGxlLHBlcmNlbnRhZ2U6Qy5wcm9ncmVzc1N0ZXA/LnBlcmNlbnRhZ2U/PzAsaW5kZXRlcm1pbmF0ZTpDLnByb2dyZXNzU3RlcD8uaW5kZXRlcm1pbmF0ZT8/ITEsc2hvd1BlcmNlbnRhZ2U6Qy5wcm9ncmVzc1N0ZXA/LnNob3dQZXJjZW50YWdlPz8hMCxzdGF0dXNUZXh0OkMucHJvZ3Jlc3NTdGVwPy5zdGF0dXNUZXh0Pz8iIix0ZXJtaW5hbExpbmVzOlsuLi5DLnByb2dyZXNzU3RlcD8udGVybWluYWxMaW5lcz8/W11dLHN0YXR1c1Jvd3M6Qy5wcm9ncmVzc1N0ZXA/LnN0YXR1c1Jvd3M/PzN9fXByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbihDKXtDPy5wcm9ncmVzc1N0ZXAmJihDLnByb2dyZXNzU3RlcFN0YXRlPXRoaXMuY3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKEMpKX1hc3luYyBydW5TdGVwVmFsaWRhdGlvbihDLHosQSl7dHJ5e2lmKGF3YWl0IEMudmFsaWRhdGlvbkZ1bmM/Lih0aGlzLHosQSksQS5hYm9ydGVkKXJldHVybjtDLnByb2dyZXNzU3RlcCYmQy5wcm9ncmVzc1N0ZXAuYXV0b0FkdmFuY2UhPT0hMSYmdGhpcy5zZWxlY3RlZFN0ZXA9PT1DJiZ0aGlzLmdvTmV4dCgpfWNhdGNoKCQpe2lmKEEuYWJvcnRlZClyZXR1cm47aWYoQy5wcm9ncmVzc1N0ZXApe2xldCBGPSQgaW5zdGFuY2VvZiBFcnJvcj8kLm1lc3NhZ2U6IlVuZXhwZWN0ZWQgZXJyb3IiO3RoaXMuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShgRXJyb3I6ICR7Rn1gLEMpLHRoaXMudXBkYXRlUHJvZ3Jlc3NTdGVwKHtpbmRldGVybWluYXRlOiExLHN0YXR1c1RleHQ6Rn0sQyl9Y29uc29sZS5lcnJvcigkKX19Y2FuY2VsQ29uZmlybU1vZGFsO2hhbmRsZU91dHNpZGVDbGljayhDKXtpZighdGhpcy5vdmVybGF5fHwhdGhpcy5jYW5jZWxhYmxlKXJldHVybjtDLnN0b3BQcm9wYWdhdGlvbigpO2xldCB6PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcHBlckNvbnRhaW5lciIpO0MudGFyZ2V0PT09eiYmdGhpcy5oYW5kbGVDYW5jZWxSZXF1ZXN0KCl9YXN5bmMgaGFuZGxlQ2FuY2VsUmVxdWVzdCgpe3RoaXMuY2FuY2VsYWJsZSYmKHRoaXMuY2FuY2VsQ29uZmlybU1vZGFsJiZ0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbC5pc0Nvbm5lY3RlZHx8KHRoaXMuY2FuY2VsQ29uZmlybU1vZGFsPXZvaWQgMCx0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD1hd2FpdCBlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJDYW5jZWwgc2V0dXA/Iix3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyI+CiAgICAgICAgICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2FuY2VsPyBBbnkgcHJvZ3Jlc3Mgb24gdGhlIGN1cnJlbnQgc3RlcCB3aWxsIGJlIGxvc3QuCiAgICAgICAgPC9wPgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ29udGludWUgc2V0dXAiLGFjdGlvbjppKGFzeW5jIEM9Pnt0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD12b2lkIDAsYXdhaXQgQy5kZXN0cm95KCl9LCJhY3Rpb24iKX0se25hbWU6IlllcywgY2FuY2VsIixhY3Rpb246aShhc3luYyBDPT57dGhpcy5jYW5jZWxDb25maXJtTW9kYWw9dm9pZCAwLEMuZGVzdHJveSgpLGF3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksYXdhaXQgdGhpcy5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfSkpKX1hc3luYyBkZXN0cm95KCl7bGV0IEM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2Usej10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKTt0aGlzLnNlbGVjdGVkU3RlcD8uYWJvcnRDb250cm9sbGVyJiZ0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKSx6Py5jbGFzc0xpc3QuYWRkKCJwcmVkZXN0cm95IiksYXdhaXQgQy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDI1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj12b2lkIDAsdGhpcy5hY3RpdmVGb3JtPW51bGwseXIudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7WG8oYSxyKX19O3JldHVybiBCPWF9KSgpfSk7dmFyIFRlYT11KCgpPT57UDZlKCl9KTt2YXIgTGVhPXUoKCk9PntucygpfSk7dmFyIERlYT11KCgpPT57SEpyKCk7bmVhKCk7cGVhKCk7ZmVhKCk7eGVhKCk7dmVhKCk7U2VhKCk7VGVhKCk7TGVhKCl9KTt2YXIgJGVhLEFlYT11KCgpPT57dmUoKTskZWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIGRlZXMtaW1hZ2Utdmlld2VyIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLmNvbXBhY3QgewogICAgICBoZWlnaHQ6IDI1MHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5KUEVHIEltYWdlIHdpdGggVG9vbGJhcjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGxhbmRzY2FwZSBwaG90byB3aXRoIHpvb20sIHBhbiwgZml0LCBhbmQgZG93bmxvYWQgY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1MDY3NDQwMzgxMzYtNDYyNzM4MzRiM2ZiP3c9MTIwMCIKICAgICAgICBhbHQ9Ik1vdW50YWluIGxhbmRzY2FwZSIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UE5HIHdpdGggVHJhbnNwYXJlbmN5PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlRyYW5zcGFyZW50IFBORyBkaXNwbGF5ZWQgb24gYSBjaGVja2VyYm9hcmQgYmFja2dyb3VuZC48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzQvNDcvUE5HX3RyYW5zcGFyZW5jeV9kZW1vbnN0cmF0aW9uXzEucG5nIgogICAgICAgIGFsdD0iUE5HIHRyYW5zcGFyZW5jeSBkZW1vIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TVkcgSW1hZ2U8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2NhbGFibGUgdmVjdG9yIGdyYXBoaWMuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy8wLzAyL1NWR19sb2dvLnN2ZyIKICAgICAgICBhbHQ9IlNWRyBsb2dvIgogICAgICAgIGZpdD0iY29udGFpbiIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm8gVG9vbGJhciBWYXJpYW50PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkltYWdlIHZpZXdlciB3aXRoIHRoZSB0b29sYmFyIGhpZGRlbi48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgY2xhc3M9ImNvbXBhY3QiCiAgICAgICAgc3JjPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ2OTQ3NDk2ODAyOC01NjYyM2YwMmU0MmU/dz04MDAiCiAgICAgICAgYWx0PSJOYXR1cmUgc2NlbmUiCiAgICAgICAgLnNob3dUb29sYmFyPSR7ITF9CiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBmbCxtaSxFZWEsUjd0PXUoKCk9Pnt2ZSgpO0tyKCk7QWVhKCk7Zmw9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG1pPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxFZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWltYWdlLXZpZXdlciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W107dmFyIHBlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW1hZ2VWaWV3ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCgpXSxjPVtQKCldLHA9W1AoKV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLEI9W2llKCldLEE9W2llKCldLFk9W2llKCldLGRlPVtpZSgpXSxmZT1baWUoKV0sZmwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+InNyYyJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLnNyYywiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLnNyYz1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxvLGwpLGZsKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWx0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJhbHQiaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5hbHQsImdldCIpLHNldDppKChxLEgpPT57cS5hbHQ9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sZCxmKSxmbCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4iZml0ImluIHEsImhhcyIpLGdldDppKHE9PnEuZml0LCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EuZml0PUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LGgsbSksZmwodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4ic2hvd1Rvb2xiYXIiaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLnNob3dUb29sYmFyPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LGIsZyksZmwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ6b29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJ6b29tImluIHEsImhhcyIpLGdldDppKHE9PnEuem9vbSwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLnpvb209SH0sInNldCIpfSxtZXRhZGF0YTptZX0sayxNKSxmbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhblgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+InBhblgiaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5wYW5YLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EucGFuWD1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxfLFMpLGZsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFuWSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4icGFuWSJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLnBhblksImdldCIpLHNldDppKChxLEgpPT57cS5wYW5ZPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LEwsRSksZmwodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJpc0RyYWdnaW5nImluIHEsImhhcyIpLGdldDppKHE9PnEuaXNEcmFnZ2luZywiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLmlzRHJhZ2dpbmc9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sQyx6KSxmbCh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+ImxvYWRpbmciaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubG9hZGluZz1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSwkLEYpLGZsKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+ImVycm9yImluIHEsImhhcyIpLGdldDppKHE9PnEuZXJyb3IsImdldCIpLHNldDppKChxLEgpPT57cS5lcnJvcj1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxHLFopLGZsKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTmF0dXJhbFdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJpbWFnZU5hdHVyYWxXaWR0aCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLmltYWdlTmF0dXJhbFdpZHRoLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EuaW1hZ2VOYXR1cmFsV2lkdGg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sRCxRKSxmbCh0aGlzLG51bGwsZmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+ImltYWdlTmF0dXJhbEhlaWdodCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLmltYWdlTmF0dXJhbEhlaWdodCwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLmltYWdlTmF0dXJhbEhlaWdodD1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxULFcpLGZsKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm1lfSxudWxsLHIpLHBlPWE9ZS52YWx1ZSxtZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptZX0pfXN0YXRpYyBkZW1vPSRlYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07I2U9bWkodGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhtZSl7dGhpcy4jZT1tZX0jdD0obWkodGhpcyxsKSxtaSh0aGlzLGQsIiIpKTtnZXQgYWx0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFsdChtZSl7dGhpcy4jdD1tZX0jcj0obWkodGhpcyxmKSxtaSh0aGlzLGgsImNvbnRhaW4iKSk7Z2V0IGZpdCgpe3JldHVybiB0aGlzLiNyfXNldCBmaXQobWUpe3RoaXMuI3I9bWV9I2E9KG1pKHRoaXMsbSksbWkodGhpcyxiLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUb29sYmFyKG1lKXt0aGlzLiNhPW1lfSNpPShtaSh0aGlzLGcpLG1pKHRoaXMsaywxKSk7Z2V0IHpvb20oKXtyZXR1cm4gdGhpcy4jaX1zZXQgem9vbShtZSl7dGhpcy4jaT1tZX0jcz0obWkodGhpcyxNKSxtaSh0aGlzLF8sMCkpO2dldCBwYW5YKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBhblgobWUpe3RoaXMuI3M9bWV9I249KG1pKHRoaXMsUyksbWkodGhpcyxMLDApKTtnZXQgcGFuWSgpe3JldHVybiB0aGlzLiNufXNldCBwYW5ZKG1lKXt0aGlzLiNuPW1lfSNvPShtaSh0aGlzLEUpLG1pKHRoaXMsQywhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzRHJhZ2dpbmcobWUpe3RoaXMuI289bWV9I2w9KG1pKHRoaXMseiksbWkodGhpcywkLCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbG9hZGluZyhtZSl7dGhpcy4jbD1tZX0jYz0obWkodGhpcyxGKSxtaSh0aGlzLEcsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jY31zZXQgZXJyb3IobWUpe3RoaXMuI2M9bWV9I2Q9KG1pKHRoaXMsWiksbWkodGhpcyxELDApKTtnZXQgaW1hZ2VOYXR1cmFsV2lkdGgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaW1hZ2VOYXR1cmFsV2lkdGgobWUpe3RoaXMuI2Q9bWV9I3U9KG1pKHRoaXMsUSksbWkodGhpcyxULDApKTtnZXQgaW1hZ2VOYXR1cmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3V9c2V0IGltYWdlTmF0dXJhbEhlaWdodChtZSl7dGhpcy4jdT1tZX1kcmFnU3RhcnRYPShtaSh0aGlzLFcpLDApO2RyYWdTdGFydFk9MDtkcmFnU3RhcnRQYW5YPTA7ZHJhZ1N0YXJ0UGFuWT0wO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnpvb20tbGV2ZWwgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGN1cnNvcjogJHt0aGlzLnpvb20+MT90aGlzLmlzRHJhZ2dpbmc/ImdyYWJiaW5nIjoiZ3JhYiI6ImRlZmF1bHQifTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2VyYm9hcmQgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOgogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7eC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICR7eC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke3guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke3guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKTsKICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDhweCwgOHB4IC04cHgsIC04cHggMHB4OwogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHt0aGlzLnBhblh9cHgsICR7dGhpcy5wYW5ZfXB4KSBzY2FsZSgke3RoaXMuem9vbX0pOwogICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGlzLmlzRHJhZ2dpbmc/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlIn07CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiAke3RoaXMuZml0fTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcuYWN0dWFsIHsKICAgICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgICBvYmplY3QtZml0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjgpIiwicmdiYSgwLDAsMCwwLjYpIil9OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLWluZm8gewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21PdXR9IHRpdGxlPSJab29tIG91dCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLnpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21Jbn0gdGl0bGU9Ilpvb20gaW4iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmZpdFRvU2NyZWVufSB0aXRsZT0iRml0IHRvIHNjcmVlbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuYWN0dWFsU2l6ZX0gdGl0bGU9IkFjdHVhbCBzaXplICgxMDAlKSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTY2FuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmRvd25sb2FkfSB0aXRsZT0iRG93bmxvYWQiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmltYWdlTmF0dXJhbFdpZHRoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS1pbmZvIj4ke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGh9IHggJHt0aGlzLmltYWdlTmF0dXJhbEhlaWdodH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iaW1hZ2UtYXJlYSIKICAgICAgICAgIEB3aGVlbD0ke3RoaXMuaGFuZGxlV2hlZWx9CiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgICBAbW91c2V1cD0ke3RoaXMuaGFuZGxlTW91c2VVcH0KICAgICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5oYW5kbGVEb3VibGVDbGlja30KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2VyYm9hcmQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgICAgICR7dGhpcy5zcmM/d2AKICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmZpdD09PSJhY3R1YWwiPyJhY3R1YWwiOiIifSIKICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmxvYWRpbmcmJnRoaXMuc3JjP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpJbWFnZU9mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXpvb21Jbigpe3RoaXMuem9vbT1NYXRoLm1pbigxMCx0aGlzLnpvb20qMS4yNSl9em9vbU91dCgpe3RoaXMuem9vbT1NYXRoLm1heCguMSx0aGlzLnpvb20vMS4yNSksdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXJlc2V0Wm9vbSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wfWZpdFRvU2NyZWVuKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5maXQ9ImNvbnRhaW4ifWFjdHVhbFNpemUoKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iYWN0dWFsIn1kb3dubG9hZCgpe2lmKCF0aGlzLnNyYylyZXR1cm47bGV0IG1lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTttZS5ocmVmPXRoaXMuc3JjLG1lLmRvd25sb2FkPXRoaXMuc3JjLnNwbGl0KCIvIikucG9wKCl8fCJpbWFnZSIsbWUuY2xpY2soKX1oYW5kbGVJbWFnZUxvYWQobWUpe2xldCBxPW1lLnRhcmdldDt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iIix0aGlzLmltYWdlTmF0dXJhbFdpZHRoPXEubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PXEubmF0dXJhbEhlaWdodH1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGltYWdlIn1oYW5kbGVXaGVlbChtZSl7bWUucHJldmVudERlZmF1bHQoKTtsZXQgcT1tZS5kZWx0YVk+MD8uOToxLjEsSD1NYXRoLm1pbigxMCxNYXRoLm1heCguMSx0aGlzLnpvb20qcSkpO3RoaXMuem9vbT1ILHRoaXMuem9vbTw9MSYmKHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX1oYW5kbGVNb3VzZURvd24obWUpe3RoaXMuem9vbTw9MXx8KHRoaXMuaXNEcmFnZ2luZz0hMCx0aGlzLmRyYWdTdGFydFg9bWUuY2xpZW50WCx0aGlzLmRyYWdTdGFydFk9bWUuY2xpZW50WSx0aGlzLmRyYWdTdGFydFBhblg9dGhpcy5wYW5YLHRoaXMuZHJhZ1N0YXJ0UGFuWT10aGlzLnBhblkpfWhhbmRsZU1vdXNlTW92ZShtZSl7dGhpcy5pc0RyYWdnaW5nJiYodGhpcy5wYW5YPXRoaXMuZHJhZ1N0YXJ0UGFuWCsobWUuY2xpZW50WC10aGlzLmRyYWdTdGFydFgpLHRoaXMucGFuWT10aGlzLmRyYWdTdGFydFBhblkrKG1lLmNsaWVudFktdGhpcy5kcmFnU3RhcnRZKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMX1oYW5kbGVEb3VibGVDbGljaygpe3RoaXMuem9vbT09PTE/dGhpcy56b29tPTI6KHRoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX11cGRhdGVkKG1lKXtzdXBlci51cGRhdGVkKG1lKSxtZS5oYXMoInNyYyIpJiYodGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5pbWFnZU5hdHVyYWxXaWR0aD0wLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PTApfXN0YXRpY3ttaShhLHIpfX07cmV0dXJuIHBlPWF9KSgpfSk7dmFyIEllYT11KCgpPT57Ujd0KCl9KTt2YXIgUGVhLE5lYT11KCgpPT57dmUoKTtQZWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIGRlZXMtYXVkaW8tdmlld2VyIHsKICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIHdpdGggV2F2ZWZvcm08L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXVkaW8gcGxheWVyIHdpdGggd2F2ZWZvcm0gdmlzdWFsaXphdGlvbiBhbmQgZnVsbCB0cmFuc3BvcnQgY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDEiCiAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIHdpdGhvdXQgV2F2ZWZvcm08L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2ltcGxlIGF1ZGlvIHBsYXllciB3aXRoIGEgc2Vla2JhciBpbnN0ZWFkIG9mIGEgd2F2ZWZvcm0uPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0yLm1wMyIKICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDIiCiAgICAgICAgLnNob3dXYXZlZm9ybT0keyExfQogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaW5pbWFsIEF1ZGlvIFBsYXllcjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5ObyB0aXRsZSBvciBhcnRpc3QgbWV0YWRhdGEg4oCUIGp1c3QgdGhlIHBsYXllci48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTMubXAzIgogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgVG8sQ2EsT2VhLEY3dD11KCgpPT57dmUoKTtLcigpO05lYSgpO1RvPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxDYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sT2VhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hdWRpby12aWV3ZXIiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdO3ZhciB4ZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0F1ZGlvVmlld2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCgpXSxjPVtQKCldLHA9W1AoKV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZGU9W2llKCldLGZlPVtpZSgpXSxwZT1baWUoKV0sSD1baWUoKV0sYWU9W2llKCldLFRvKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJzcmMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5zcmMsImdldCIpLHNldDppKChWLGxlKT0+e1Yuc3JjPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LG8sbCksVG8odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4idGl0bGUiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi50aXRsZSwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi50aXRsZT1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxkLGYpLFRvKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJhcnRpc3QiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5hcnRpc3QsImdldCIpLHNldDppKChWLGxlKT0+e1YuYXJ0aXN0PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGgsbSksVG8odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2F2ZWZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InNob3dXYXZlZm9ybSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnNob3dXYXZlZm9ybSwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5zaG93V2F2ZWZvcm09bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sYixnKSxUbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9wbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJhdXRvcGxheSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmF1dG9wbGF5LCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmF1dG9wbGF5PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGssTSksVG8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb29wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJsb29wImluIFYsImhhcyIpLGdldDppKFY9PlYubG9vcCwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5sb29wPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LF8sUyksVG8odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImlzUGxheWluZyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmlzUGxheWluZywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5pc1BsYXlpbmc9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sTCxFKSxUbyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJjdXJyZW50VGltZSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmN1cnJlbnRUaW1lLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmN1cnJlbnRUaW1lPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEMseiksVG8odGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iZHVyYXRpb24iaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5kdXJhdGlvbj1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSwkLEYpLFRvKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidm9sdW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJ2b2x1bWUiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi52b2x1bWUsImdldCIpLHNldDppKChWLGxlKT0+e1Yudm9sdW1lPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEcsWiksVG8odGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNNdXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iaXNNdXRlZCJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmlzTXV0ZWQsImdldCIpLHNldDppKChWLGxlKT0+e1YuaXNNdXRlZD1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxELFEpLFRvKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImxvYWRpbmciaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmxvYWRpbmc9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sVCxXKSxUbyh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iZXJyb3IiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5lcnJvciwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5lcnJvcj1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxtZSxxKSxUbyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4id2F2ZWZvcm1EYXRhImluIFYsImhhcyIpLGdldDppKFY9PlYud2F2ZWZvcm1EYXRhLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLndhdmVmb3JtRGF0YT1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxVLGopLFRvKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+IndhdmVmb3JtUmVhZHkiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi53YXZlZm9ybVJlYWR5LCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLndhdmVmb3JtUmVhZHk9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sWCxKKSxUbyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpLfSxudWxsLHIpLHhlPWE9ZS52YWx1ZSxLJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkt9KX1zdGF0aWMgZGVtbz1QZWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPUNhKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoSyl7dGhpcy4jZT1LfSN0PShDYSh0aGlzLGwpLENhKHRoaXMsZCwiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShLKXt0aGlzLiN0PUt9I3I9KENhKHRoaXMsZiksQ2EodGhpcyxoLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNyfXNldCBhcnRpc3QoSyl7dGhpcy4jcj1LfSNhPShDYSh0aGlzLG0pLENhKHRoaXMsYiwhMCkpO2dldCBzaG93V2F2ZWZvcm0oKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1dhdmVmb3JtKEspe3RoaXMuI2E9S30jaT0oQ2EodGhpcyxnKSxDYSh0aGlzLGssITEpKTtnZXQgYXV0b3BsYXkoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b3BsYXkoSyl7dGhpcy4jaT1LfSNzPShDYSh0aGlzLE0pLENhKHRoaXMsXywhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvb3AoSyl7dGhpcy4jcz1LfSNuPShDYSh0aGlzLFMpLENhKHRoaXMsTCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNQbGF5aW5nKEspe3RoaXMuI249S30jbz0oQ2EodGhpcyxFKSxDYSh0aGlzLEMsMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNvfXNldCBjdXJyZW50VGltZShLKXt0aGlzLiNvPUt9I2w9KENhKHRoaXMseiksQ2EodGhpcywkLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oSyl7dGhpcy4jbD1LfSNjPShDYSh0aGlzLEYpLENhKHRoaXMsRywxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoSyl7dGhpcy4jYz1LfSNkPShDYSh0aGlzLFopLENhKHRoaXMsRCwhMSkpO2dldCBpc011dGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzTXV0ZWQoSyl7dGhpcy4jZD1LfSN1PShDYSh0aGlzLFEpLENhKHRoaXMsVCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGxvYWRpbmcoSyl7dGhpcy4jdT1LfSNwPShDYSh0aGlzLFcpLENhKHRoaXMsbWUsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXJyb3IoSyl7dGhpcy4jcD1LfSNmPShDYSh0aGlzLHEpLENhKHRoaXMsVSxbXSkpO2dldCB3YXZlZm9ybURhdGEoKXtyZXR1cm4gdGhpcy4jZn1zZXQgd2F2ZWZvcm1EYXRhKEspe3RoaXMuI2Y9S30jaD0oQ2EodGhpcyxqKSxDYSh0aGlzLFgsITEpKTtnZXQgd2F2ZWZvcm1SZWFkeSgpe3JldHVybiB0aGlzLiNofXNldCB3YXZlZm9ybVJlYWR5KEspe3RoaXMuI2g9S31hdWRpb0VsZW1lbnQ9KENhKHRoaXMsSiksbnVsbCk7Y2FudmFzRWxlbWVudD1udWxsO2FuaW1GcmFtZUlkPTA7dm9sdW1lQmVmb3JlTXV0ZT0xO3JlbmRlcigpe2xldCBLPXRoaXMudGl0bGUmJnRoaXMuYXJ0aXN0P2Ake3RoaXMudGl0bGV9IFx1MjAxNCAke3RoaXMuYXJ0aXN0fWA6dGhpcy50aXRsZXx8dGhpcy5hcnRpc3R8fCIiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwLS1lbmQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgfQoKICAgICAgICAudGltZS1kaXNwbGF5IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIG1pbi13aWR0aDogOTBweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDcwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWIgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMgewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogODAlOwogICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLWZpbGwgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBsaW5lYXI7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgLmVycm9yLWljb24gewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVQbGF5fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHtLP3dgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj4ke0t9PC9zcGFuPgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5sb29wPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxvb3B9CiAgICAgICAgICAgICAgdGl0bGU9Ikxvb3AiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpSZXBlYXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0gdGl0bGU9IiR7dGhpcy5pc011dGVkPyJVbm11dGUiOiJNdXRlIn0iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzTXV0ZWR8fHRoaXMudm9sdW1lPT09MD8iVm9sdW1lWCI6dGhpcy52b2x1bWU8LjU/IlZvbHVtZTEiOiJWb2x1bWUyIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgY2xhc3M9InZvbHVtZS1zbGlkZXIiCiAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgIG1heD0iMSIKICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5pc011dGVkPzA6dGhpcy52b2x1bWUpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJlcnJvci1pY29uIiBpY29uPSJsdWNpZGU6TXVzaWNPZmYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMuc2hvd1dhdmVmb3JtP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndhdmVmb3JtLWNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVXYXZlZm9ybUNsaWNrfT4KICAgICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlU2Vla2JhckNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLWZpbGwiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3JjJiZ0aGlzLmluaXRBdWRpbygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKX1hc3luYyB1cGRhdGVkKEspe3N1cGVyLnVwZGF0ZWQoSyksSy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmKHRoaXMuY2xlYW51cCgpLHRoaXMuaW5pdEF1ZGlvKCkpLChLLmhhcygid2F2ZWZvcm1EYXRhIil8fEsuaGFzKCJjdXJyZW50VGltZSIpKSYmdGhpcy5kcmF3V2F2ZWZvcm0oKX1wbGF5KCl7dGhpcy5hdWRpb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMuYXVkaW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhLKXt0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lPUspfXNldFZvbHVtZShLKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsSykpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKSx0aGlzLnZvbHVtZT4wJiYodGhpcy5pc011dGVkPSExKX10b2dnbGVNdXRlKCl7dGhpcy5pc011dGVkPyh0aGlzLmlzTXV0ZWQ9ITEsdGhpcy52b2x1bWU9dGhpcy52b2x1bWVCZWZvcmVNdXRlfHwuNSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLnZvbHVtZSkpOih0aGlzLnZvbHVtZUJlZm9yZU11dGU9dGhpcy52b2x1bWUsdGhpcy5pc011dGVkPSEwLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPTApKX10b2dnbGVMb29wKCl7dGhpcy5sb29wPSF0aGlzLmxvb3AsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5sb29wPXRoaXMubG9vcCl9aW5pdEF1ZGlvKCl7dGhpcy5hdWRpb0VsZW1lbnQ9bmV3IEF1ZGlvLHRoaXMuYXVkaW9FbGVtZW50LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHRoaXMuYXVkaW9FbGVtZW50LnNyYz10aGlzLnNyYyx0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy5pc011dGVkPzA6dGhpcy52b2x1bWUsdGhpcy5hdWRpb0VsZW1lbnQubG9vcD10aGlzLmxvb3AsdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj10aGlzLmF1ZGlvRWxlbWVudC5kdXJhdGlvbix0aGlzLmxvYWRpbmc9ITF9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwoKT0+e3RoaXMuaXNQbGF5aW5nPSEwLHRoaXMuc3RhcnRUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXVzZSIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMSx0aGlzLnN0b3BUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlbmRlZCIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMSx0aGlzLnN0b3BUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBhdWRpbyIsdGhpcy5sb2FkaW5nPSExfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidGltZXVwZGF0ZSIsKCk9Pnt0aGlzLmN1cnJlbnRUaW1lPXRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lfSksdGhpcy5hdXRvcGxheSYmdGhpcy5hdWRpb0VsZW1lbnQucGxheSgpLmNhdGNoKCgpPT57fSksdGhpcy5zaG93V2F2ZWZvcm0mJnRoaXMubG9hZFdhdmVmb3JtKCl9YXN5bmMgbG9hZFdhdmVmb3JtKCl7dHJ5e3RoaXMubG9hZGluZz0hMDtsZXQgVj1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksbGU9bmV3IEF1ZGlvQ29udGV4dCxlZT0oYXdhaXQgbGUuZGVjb2RlQXVkaW9EYXRhKFYpKS5nZXRDaGFubmVsRGF0YSgwKSx6ZT0yMDAsSGU9TWF0aC5mbG9vcihlZS5sZW5ndGgvemUpLEdlPVtdO2ZvcihsZXQgRGU9MDtEZTx6ZTtEZSsrKXtsZXQgX2U9MDtmb3IobGV0IG9lPTA7b2U8SGU7b2UrKylfZSs9TWF0aC5hYnMoZWVbRGUqSGUrb2VdKTtHZS5wdXNoKF9lL0hlKX1sZXQgb3Q9TWF0aC5tYXgoLi4uR2UpO3RoaXMud2F2ZWZvcm1EYXRhPUdlLm1hcChEZT0+b3Q+MD9EZS9vdDowKSx0aGlzLndhdmVmb3JtUmVhZHk9ITAsdGhpcy5sb2FkaW5nPSExLGF3YWl0IGxlLmNsb3NlKCl9Y2F0Y2h7dGhpcy53YXZlZm9ybVJlYWR5PSExLHRoaXMubG9hZGluZz0hMX19ZHJhd1dhdmVmb3JtKCl7aWYoIXRoaXMuc2hvd1dhdmVmb3JtfHwhdGhpcy53YXZlZm9ybVJlYWR5KXJldHVybjtsZXQgSz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpO2lmKCFLKXJldHVybjt0aGlzLmNhbnZhc0VsZW1lbnQ9SztsZXQgVj1LLnBhcmVudEVsZW1lbnQsbGU9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsbmU9Vi5jbGllbnRXaWR0aCxlZT1WLmNsaWVudEhlaWdodDtLLndpZHRoPW5lKmxlLEsuaGVpZ2h0PWVlKmxlO2xldCB6ZT1LLmdldENvbnRleHQoIjJkIik7aWYoIXplKXJldHVybjt6ZS5zY2FsZShsZSxsZSksemUuY2xlYXJSZWN0KDAsMCxuZSxlZSk7bGV0IEhlPXRoaXMud2F2ZWZvcm1EYXRhLmxlbmd0aDtpZihIZT09PTApcmV0dXJuO2xldCBHZT1uZS9IZSxvdD10aGlzLmR1cmF0aW9uPjA/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uOjAsRGU9TWF0aC5mbG9vcihvdCpIZSksX2U9ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInRoZW1lLWRhcmsiKXx8d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzLG9lPV9lPyJoc2woMjEzIDkzJSA2OCUpIjoiaHNsKDIxNyA5MSUgNjAlKSIsc2U9X2U/ImhzbCgyMTcgMjUlIDIyJSkiOiJoc2woMjE0IDMxJSA4NiUpIjtmb3IobGV0IGNlPTA7Y2U8SGU7Y2UrKyl7bGV0IFRlPXRoaXMud2F2ZWZvcm1EYXRhW2NlXSxxZT1NYXRoLm1heCgyLFRlKihlZS00KSksbnQ9Y2UqR2UsdnQ9KGVlLXFlKS8yO3plLmZpbGxTdHlsZT1jZTxEZT9vZTpzZSx6ZS5maWxsUmVjdChudCsuNSx2dCxHZS0xLHFlKX19aGFuZGxlV2F2ZWZvcm1DbGljayhLKXtsZXQgVj1LLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGU9KEsuY2xpZW50WC1WLmxlZnQpL1Yud2lkdGg7dGhpcy5zZWVrKGxlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVNlZWtiYXJDbGljayhLKXtsZXQgVj1LLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGU9KEsuY2xpZW50WC1WLmxlZnQpL1Yud2lkdGg7dGhpcy5zZWVrKGxlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShLKXtsZXQgVj1wYXJzZUZsb2F0KEsudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZShWKX1zdGFydFRpbWVVcGRhdGUoKXt0aGlzLnN0b3BUaW1lVXBkYXRlKCk7bGV0IEs9aSgoKT0+e3RoaXMuYXVkaW9FbGVtZW50JiZ0aGlzLmlzUGxheWluZyYmKHRoaXMuY3VycmVudFRpbWU9dGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWUsdGhpcy5hbmltRnJhbWVJZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoSykpfSwidXBkYXRlIik7dGhpcy5hbmltRnJhbWVJZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoSyl9c3RvcFRpbWVVcGRhdGUoKXt0aGlzLmFuaW1GcmFtZUlkJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltRnJhbWVJZCksdGhpcy5hbmltRnJhbWVJZD0wKX1mb3JtYXRUaW1lKEspe2lmKCFpc0Zpbml0ZShLKXx8SzwwKXJldHVybiIwOjAwIjtsZXQgVj1NYXRoLmZsb29yKEsvNjApLGxlPU1hdGguZmxvb3IoSyU2MCk7cmV0dXJuYCR7Vn06JHtsZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfWNsZWFudXAoKXt0aGlzLnN0b3BUaW1lVXBkYXRlKCksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5wYXVzZSgpLHRoaXMuYXVkaW9FbGVtZW50LnNyYz0iIix0aGlzLmF1ZGlvRWxlbWVudD1udWxsKSx0aGlzLmlzUGxheWluZz0hMSx0aGlzLmN1cnJlbnRUaW1lPTAsdGhpcy5kdXJhdGlvbj0wLHRoaXMud2F2ZWZvcm1EYXRhPVtdLHRoaXMud2F2ZWZvcm1SZWFkeT0hMX1zdGF0aWN7Q2EoYSxyKX19O3JldHVybiB4ZT1hfSkoKX0pO3ZhciBSZWE9dSgoKT0+e0Y3dCgpfSk7dmFyIEZlYSxCZWE9dSgoKT0+e3ZlKCk7RmVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gd2l0aCBDdXN0b20gQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSB2aWRlbyBwbGF5ZXIgd2l0aCBvdmVybGF5IGNvbnRyb2xzLCBzZWVraW5nLCBhbmQgdm9sdW1lIGFkanVzdG1lbnQuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL2ltYWdlcy9CaWdCdWNrQnVubnkuanBnIgogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdXRvcGxheSBNdXRlZDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyB0aGF0IGF1dG9wbGF5cyBtdXRlZCwgY29tbW9ubHkgdXNlZCBmb3IgcHJldmlld3MuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvRWxlcGhhbnRzRHJlYW0ubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0VsZXBoYW50c0RyZWFtLmpwZyIKICAgICAgICAuYXV0b3BsYXk9JHshMH0KICAgICAgICAubXV0ZWQ9JHshMH0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmF0aXZlIENvbnRyb2xzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHVzaW5nIGJyb3dzZXItbmF0aXZlIGNvbnRyb2xzIGluc3RlYWQgb2YgY3VzdG9tIG92ZXJsYXkuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvRm9yQmlnZ2VyQmxhemVzLm1wNCIKICAgICAgICAuc2hvd0NvbnRyb2xzPSR7ITF9CiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBKbyxVYSxIZWEsQjd0PXUoKCk9Pnt2ZSgpO0tyKCk7QmVhKCk7Sm89ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LFVhPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxIZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXZpZGVvLXZpZXdlciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXTt2YXIgYWU9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNWaWRlb1ZpZXdlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBYPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCgpXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZGU9W2llKCldLGZlPVtpZSgpXSxwZT1baWUoKV0sSD1baWUoKV0sSm8odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InNyYyJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLnNyYywiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5zcmM9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbyxsKSxKbyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4icG9zdGVyImluIEosImhhcyIpLGdldDppKEo9PkoucG9zdGVyLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnBvc3Rlcj14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxkLGYpLEpvKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJzaG93Q29udHJvbHMiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si5zaG93Q29udHJvbHMsImdldCIpLHNldDppKChKLHhlKT0+e0ouc2hvd0NvbnRyb2xzPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LGgsbSksSm8odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4iYXV0b3BsYXkiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si5hdXRvcGxheSwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5hdXRvcGxheT14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxiLGcpLEpvKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4ibG9vcCJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmxvb3AsImdldCIpLHNldDppKChKLHhlKT0+e0oubG9vcD14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxrLE0pLEpvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+Im11dGVkImluIEosImhhcyIpLGdldDppKEo9PkoubXV0ZWQsImdldCIpLHNldDppKChKLHhlKT0+e0oubXV0ZWQ9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sXyxTKSxKbyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4iaXNQbGF5aW5nImluIEosImhhcyIpLGdldDppKEo9PkouaXNQbGF5aW5nLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLmlzUGxheWluZz14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxMLEUpLEpvKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImN1cnJlbnRUaW1lImluIEosImhhcyIpLGdldDppKEo9PkouY3VycmVudFRpbWUsImdldCIpLHNldDppKChKLHhlKT0+e0ouY3VycmVudFRpbWU9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sQyx6KSxKbyh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJkdXJhdGlvbiJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLmR1cmF0aW9uPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LCQsRiksSm8odGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InZvbHVtZSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLnZvbHVtZSwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si52b2x1bWU9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sRyxaKSxKbyh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJsb2FkaW5nImluIEosImhhcyIpLGdldDppKEo9PkoubG9hZGluZywiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5sb2FkaW5nPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LEQsUSksSm8odGhpcyxudWxsLGZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImVycm9yImluIEosImhhcyIpLGdldDppKEo9PkouZXJyb3IsImdldCIpLHNldDppKChKLHhlKT0+e0ouZXJyb3I9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVCxXKSxKbyh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0Z1bGxzY3JlZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImlzRnVsbHNjcmVlbiJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmlzRnVsbHNjcmVlbiwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5pc0Z1bGxzY3JlZW49eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbWUscSksSm8odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250cm9sc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImNvbnRyb2xzVmlzaWJsZSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmNvbnRyb2xzVmlzaWJsZSwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5jb250cm9sc1Zpc2libGU9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVSxqKSxKbyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpYfSxudWxsLHIpLGFlPWE9ZS52YWx1ZSxYJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlh9KX1zdGF0aWMgZGVtbz1GZWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPVVhKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoWCl7dGhpcy4jZT1YfSN0PShVYSh0aGlzLGwpLFVhKHRoaXMsZCwiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKFgpe3RoaXMuI3Q9WH0jcj0oVWEodGhpcyxmKSxVYSh0aGlzLGgsITApKTtnZXQgc2hvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dDb250cm9scyhYKXt0aGlzLiNyPVh9I2E9KFVhKHRoaXMsbSksVWEodGhpcyxiLCExKSk7Z2V0IGF1dG9wbGF5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGF1dG9wbGF5KFgpe3RoaXMuI2E9WH0jaT0oVWEodGhpcyxnKSxVYSh0aGlzLGssITEpKTtnZXQgbG9vcCgpe3JldHVybiB0aGlzLiNpfXNldCBsb29wKFgpe3RoaXMuI2k9WH0jcz0oVWEodGhpcyxNKSxVYSh0aGlzLF8sITEpKTtnZXQgbXV0ZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgbXV0ZWQoWCl7dGhpcy4jcz1YfSNuPShVYSh0aGlzLFMpLFVhKHRoaXMsTCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNQbGF5aW5nKFgpe3RoaXMuI249WH0jbz0oVWEodGhpcyxFKSxVYSh0aGlzLEMsMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNvfXNldCBjdXJyZW50VGltZShYKXt0aGlzLiNvPVh9I2w9KFVhKHRoaXMseiksVWEodGhpcywkLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oWCl7dGhpcy4jbD1YfSNjPShVYSh0aGlzLEYpLFVhKHRoaXMsRywxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoWCl7dGhpcy4jYz1YfSNkPShVYSh0aGlzLFopLFVhKHRoaXMsRCwhMCkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGxvYWRpbmcoWCl7dGhpcy4jZD1YfSN1PShVYSh0aGlzLFEpLFVhKHRoaXMsVCwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiN1fXNldCBlcnJvcihYKXt0aGlzLiN1PVh9I3A9KFVhKHRoaXMsVyksVWEodGhpcyxtZSwhMSkpO2dldCBpc0Z1bGxzY3JlZW4oKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNGdWxsc2NyZWVuKFgpe3RoaXMuI3A9WH0jZj0oVWEodGhpcyxxKSxVYSh0aGlzLFUsITApKTtnZXQgY29udHJvbHNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGNvbnRyb2xzVmlzaWJsZShYKXt0aGlzLiNmPVh9aGlkZUNvbnRyb2xzVGltZXI9KFVhKHRoaXMsaiksbnVsbCk7dmlkZW9FbGVtZW50PW51bGw7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgdmlkZW8gewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAub3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICAgIG9wYWNpdHk6ICR7dGhpcy5pc1BsYXlpbmc/MDoxfTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiAke3RoaXMuaXNQbGF5aW5nPyJub25lIjoiYXV0byJ9OwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXk6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xKTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1iYXIgewogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuNykpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxMnB4IDEycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmNvbnRyb2xzVmlzaWJsZXx8IXRoaXMuaXNQbGF5aW5nPzE6MH07CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXJvdyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93OmhvdmVyIHsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcHJvZ3Jlc3MgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuY29udHJvbHMtcm93IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ2aWRlby1jb250YWluZXIiCiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZUxlYXZlfQogICAgICA+CiAgICAgICAgPHZpZGVvCiAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAucG9zdGVyPSR7dGhpcy5wb3N0ZXJ9CiAgICAgICAgICAubXV0ZWQ9JHt0aGlzLm11dGVkfQogICAgICAgICAgLmxvb3A9JHt0aGlzLmxvb3B9CiAgICAgICAgICA/YXV0b3BsYXk9JHt0aGlzLmF1dG9wbGF5fQogICAgICAgICAgP2NvbnRyb2xzPSR7IXRoaXMuc2hvd0NvbnRyb2xzfQogICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgIEBsb2FkZWRtZXRhZGF0YT0ke3RoaXMuaGFuZGxlTG9hZGVkTWV0YWRhdGF9CiAgICAgICAgICBAcGxheT0ke3RoaXMuaGFuZGxlUGxheX0KICAgICAgICAgIEBwYXVzZT0ke3RoaXMuaGFuZGxlUGF1c2V9CiAgICAgICAgICBAZW5kZWQ9JHt0aGlzLmhhbmRsZUVuZGVkfQogICAgICAgICAgQHRpbWV1cGRhdGU9JHt0aGlzLmhhbmRsZVRpbWVVcGRhdGV9CiAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUVycm9yfQogICAgICAgICAgQHdhaXRpbmc9JHsoKT0+e3RoaXMubG9hZGluZz0hMH19CiAgICAgICAgICBAY2FucGxheT0keygpPT57dGhpcy5sb2FkaW5nPSExfX0KICAgICAgICA+PC92aWRlbz4KCiAgICAgICAgJHt0aGlzLnNob3dDb250cm9scz93YAogICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdmVybGF5Q2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXItcGxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtYmFyIiBAY2xpY2s9JHtYPT5YLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLXJvdyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrfT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcHJvZ3Jlc3MiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtcm93Ij4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5jdXJyZW50VGltZSl9IC8gJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9CiAgICAgICAgICAgICAgICA8L3NwYW4+CgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwYWNlciI+PC9zcGFuPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZU11dGV9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5tdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMubXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHJsLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVGdWxsc2NyZWVufSB0aXRsZT0iRnVsbHNjcmVlbiI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc0Z1bGxzY3JlZW4/Ik1pbmltaXplIjoiTWF4aW1pemUifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMubG9hZGluZyYmIXRoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpWaWRlb09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMudmlkZW9FbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidmlkZW8iKXx8bnVsbCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpLHRoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKX1wbGF5KCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMudmlkZW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhYKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lPVgpfXNldFZvbHVtZShYKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsWCkpLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKX10b2dnbGVGdWxsc2NyZWVuKCl7bGV0IFg9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8tY29udGFpbmVyIik7WCYmKHRoaXMuaXNGdWxsc2NyZWVuP2RvY3VtZW50LmV4aXRGdWxsc2NyZWVuPy4oKTpYLnJlcXVlc3RGdWxsc2NyZWVuPy4oKSl9aGFuZGxlTG9hZGVkTWV0YWRhdGEoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuZHVyYXRpb249dGhpcy52aWRlb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExKX1oYW5kbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZVBhdXNlKCl7dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jb250cm9sc1Zpc2libGU9ITB9aGFuZGxlRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVUaW1lVXBkYXRlKCl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKX1oYW5kbGVFcnJvcigpe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIHZpZGVvIix0aGlzLmxvYWRpbmc9ITF9aGFuZGxlT3ZlcmxheUNsaWNrKCl7dGhpcy50b2dnbGVQbGF5KCl9aGFuZGxlU2VlayhYKXtsZXQgSj1YLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseGU9KFguY2xpZW50WC1KLmxlZnQpL0oud2lkdGg7dGhpcy5zZWVrKHhlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShYKXtsZXQgSj1wYXJzZUZsb2F0KFgudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZShKKSx0aGlzLm11dGVkPUo9PT0wfXRvZ2dsZU11dGUoKXt0aGlzLm11dGVkPSF0aGlzLm11dGVkLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQubXV0ZWQ9dGhpcy5tdXRlZCl9aGFuZGxlTW91c2VNb3ZlKCl7dGhpcy5jb250cm9sc1Zpc2libGU9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZU1vdXNlTGVhdmUoKXt0aGlzLmlzUGxheWluZyYmKHRoaXMuY29udHJvbHNWaXNpYmxlPSExKX1zY2hlZHVsZUhpZGVDb250cm9scygpe3RoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKSx0aGlzLmlzUGxheWluZyYmKHRoaXMuaGlkZUNvbnRyb2xzVGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuY29udHJvbHNWaXNpYmxlPSExfSwzZTMpKX1oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlPWkoKCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fSwiaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSIpO2Zvcm1hdFRpbWUoWCl7aWYoIWlzRmluaXRlKFgpfHxYPDApcmV0dXJuIjA6MDAiO2xldCBKPU1hdGguZmxvb3IoWC82MCkseGU9TWF0aC5mbG9vcihYJTYwKTtyZXR1cm5gJHtKfToke3hlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje1VhKGEscil9fTtyZXR1cm4gYWU9YX0pKCl9KTt2YXIgcWVhPXUoKCk9PntCN3QoKX0pO3ZhciBTZCxONmU9dSgoKT0+e3ZlKCk7U2Q9Y2xhc3N7c3RhdGlje2kodGhpcywiUGRmTWFuYWdlciIpfXN0YXRpYyBwZGZqc0xpYjtzdGF0aWMgaW5pdGlhbGl6ZWQ9ITE7c3RhdGljIGFzeW5jIGluaXRpYWxpemUoKXt0aGlzLmluaXRpYWxpemVkfHwodGhpcy5wZGZqc0xpYj1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKSx0aGlzLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS9idWlsZC9wZGYud29ya2VyLm1qcyIsdGhpcy5pbml0aWFsaXplZD0hMCl9c3RhdGljIGFzeW5jIGxvYWREb2N1bWVudChlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplKCksYXdhaXQgdGhpcy5wZGZqc0xpYi5nZXREb2N1bWVudChlKS5wcm9taXNlfXN0YXRpYyByZWxlYXNlRG9jdW1lbnQoZSl7fX19KTt2YXIgVmVhLGplYT11KCgpPT57dmUoKTtsdCgpO1ZlYT1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgY29udGFpbjogbGF5b3V0IHN0eWxlOwogICAgfQoKICAgIGRlZXMtdGlsZSB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YmVmb3JlLAogICAgLnZpZXdlci1jb250YWluZXI6OmFmdGVyIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGhlaWdodDogOHB4OwogICAgICB6LWluZGV4OiA1OwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YmVmb3JlIHsKICAgICAgdG9wOiAwOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgdG8gYm90dG9tLAogICAgICAgICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMCUgLyAwLjQpIil9LAogICAgICAgICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMCUgLyAwLjEyKSIpfSwKICAgICAgICB0cmFuc3BhcmVudAogICAgICApOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyOjphZnRlciB7CiAgICAgIGJvdHRvbTogMDsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIHRvIHRvcCwKICAgICAgICAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDAlIC8gMC40KSIpfSwKICAgICAgICAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgdHJhbnNwYXJlbnQKICAgICAgKTsKICAgIH0KCiAgICAudG9vbGJhciB7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLnRvb2xiYXItZ3JvdXAgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDRweDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cC0tZW5kIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQoKICAgIC5wYWdlLWluZm8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAucGFnZS1pbnB1dCB7CiAgICAgIHdpZHRoOiA0OHB4OwogICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIgNDclIDExJSkiLCJoc2woMjEwIDIwJSA5NiUpIil9OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLnBhZ2UtaW5wdXQ6Zm9jdXMgewogICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAucGFnZS1zZXBhcmF0b3IgewogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1MCUpIil9OwogICAgfQoKICAgIC56b29tLWxldmVsIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBtaW4td2lkdGg6IDQ4cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnNpZGViYXIgewogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgb3JkZXI6IDA7CiAgICB9CgogICAgLnNpZGViYXItcmlnaHQgLnNpZGViYXIgewogICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBvcmRlcjogMTsKICAgIH0KCiAgICAuc2lkZWJhci1oZWFkZXIgewogICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICB9CgogICAgLnNpZGViYXItY29udGVudCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMTJweDsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICB9CgogICAgLnRodW1ibmFpbCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIC8qIERlZmF1bHQgQTQgYXNwZWN0IHJhdGlvICgyOTdtbSAvIDIxMG1tIOKJiCAxLjQxNCkgKi8KICAgICAgbWluLWhlaWdodDogY2FsYygxNzZweCAqIDEuNDE0KTsKICAgIH0KCiAgICAudGh1bWJuYWlsOmxhc3QtY2hpbGQgewogICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgfQoKICAgIC50aHVtYm5haWw6aG92ZXIgewogICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMzUlKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLmFjdGl2ZSB7CiAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC50aHVtYm5haWwtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAudGh1bWJuYWlsLW51bWJlciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiA0cHg7CiAgICAgIHJpZ2h0OiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnZpZXdlci1tYWluIHsKICAgICAgZmxleDogMTsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgbWluLWhlaWdodDogMDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGdhcDogMTZweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgLmxvYWRpbmctdGV4dCB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAucGFnZXMtY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAyMHB4OwogICAgfQoKICAgIC5wYWdlLXdyYXBwZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgLmNhbnZhcy1jb250YWluZXIgewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm94LXNoYWRvdzogMCAycHggMTJweCAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5wYWdlLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLyogVGV4dCBsYXllciBmb3Igc2VsZWN0aW9uICovCiAgICAudGV4dC1sYXllciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgdGV4dC1zaXplLWFkanVzdDogbm9uZTsKICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOwogICAgICB6LWluZGV4OiAxOwogICAgICB1c2VyLXNlbGVjdDogdGV4dDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgIH0KCiAgICAudGV4dC1sYXllciBzcGFuLAogICAgLnRleHQtbGF5ZXIgYnIgewogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsKICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMCwgMjAwLCAwLjMpOwogICAgfQoKICAgIC50ZXh0LWxheWVyIGJyOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIH0KCiAgICAudGV4dC1sYXllciAuZW5kT2ZDb250ZW50IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDEwMCUgMCAwOwogICAgICB6LWluZGV4OiAwOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgfQoKICAgIC50ZXh0LWxheWVyLnNlbGVjdGluZyAuZW5kT2ZDb250ZW50IHsKICAgICAgdG9wOiAwOwogICAgfQoKICAgIC5wZGYtdmlld2VyLndpdGgtc2lkZWJhciAudmlld2VyLW1haW4gewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgIH0KCiAgICAucGRmLWZvb3RlciB7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWxlZnQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLnBkZi1mb290ZXItbGVmdCAucGRmLWZvb3Rlci1pdGVtICsgLnBkZi1mb290ZXItaXRlbSB7CiAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1jZW50ZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAwLjE1cyBlYXNlOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLXJpZ2h0IHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnBkZi1mb290ZXItaXRlbSB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CgogICAgLnBkZi1mb290ZXItZmlsZW5hbWUgewogICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0dlaXN0IE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CiAgYF19KTt2YXIgVWVhLFdlYT11KCgpPT57dmUoKTtVZWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOwogICAgfQoKICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgfQoKICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogI2ZhZmFmYTsKICAgIH0KCiAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnZpZXdlci10YWxsIHsKICAgICAgaGVpZ2h0OiA4MDBweDsKICAgIH0KCiAgICAudmlld2VyLWNvbXBhY3QgewogICAgICBoZWlnaHQ6IDUwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5GdWxsIEZlYXR1cmVkIFBERiBWaWV3ZXIgd2l0aCBUb29sYmFyPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItdGFsbCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0idHJ1ZSIKICAgICAgICBzaG93U2lkZWJhcj0iZmFsc2UiCiAgICAgICAgaW5pdGlhbFpvb209InBhZ2UtZml0IgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UERGIFZpZXdlciB3aXRoIFNpZGViYXIgTmF2aWdhdGlvbjwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLXRhbGwiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9InRydWUiCiAgICAgICAgc2hvd1NpZGViYXI9InRydWUiCiAgICAgICAgaW5pdGlhbFpvb209InBhZ2Utd2lkdGgiCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Db21wYWN0IFZpZXdlciB3aXRob3V0IENvbnRyb2xzPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItY29tcGFjdCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0iZmFsc2UiCiAgICAgICAgc2hvd1NpZGViYXI9ImZhbHNlIgogICAgICAgIGluaXRpYWxab29tPSJhdXRvIgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIGUxLFdhLEdlYSxIN3Q9dSgoKT0+e3ZlKCk7TjZlKCk7amVhKCk7V2VhKCk7S3IoKTtucygpO2UxPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxXYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sR2VhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1wZGYtdmlld2VyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdLEgsVT1bXSxqPVtdO3ZhciBhZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1BkZlZpZXdlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBYPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6TnVtYmVyfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1bUCh7dHlwZTpTdHJpbmd9KV0sTz1bUCh7dHlwZTpOdW1iZXJ9KV0sQj1bUCh7dHlwZTpOdW1iZXJ9KV0sQT1bUCh7dHlwZTpOdW1iZXJ9KV0sWT1bUCh7dHlwZTpCb29sZWFufSldLGRlPVtQKHt0eXBlOlN0cmluZ30pXSxmZT1bUCh7dHlwZTpBcnJheX0pXSxwZT1bUCh7dHlwZTpBcnJheX0pXSxIPVtQKHt0eXBlOk51bWJlcn0pXSxlMSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4icGRmVXJsImluIEosImhhcyIpLGdldDppKEo9PkoucGRmVXJsLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnBkZlVybD14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxvLGwpLGUxKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImluaXRpYWxQYWdlImluIEosImhhcyIpLGdldDppKEo9PkouaW5pdGlhbFBhZ2UsImdldCIpLHNldDppKChKLHhlKT0+e0ouaW5pdGlhbFBhZ2U9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sZCxmKSxlMSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJpbml0aWFsWm9vbSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmluaXRpYWxab29tLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLmluaXRpYWxab29tPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LGgsbSksZTEodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4ic2hvd1Rvb2xiYXIiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5zaG93VG9vbGJhcj14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxiLGcpLGUxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NpZGViYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InNob3dTaWRlYmFyImluIEosImhhcyIpLGdldDppKEo9Pkouc2hvd1NpZGViYXIsImdldCIpLHNldDppKChKLHhlKT0+e0ouc2hvd1NpZGViYXI9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sayxNKSxlMSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpZGViYXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4ic2lkZWJhclBvc2l0aW9uImluIEosImhhcyIpLGdldDppKEo9Pkouc2lkZWJhclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnNpZGViYXJQb3NpdGlvbj14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxfLFMpLGUxKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImN1cnJlbnRQYWdlImluIEosImhhcyIpLGdldDppKEo9PkouY3VycmVudFBhZ2UsImdldCIpLHNldDppKChKLHhlKT0+e0ouY3VycmVudFBhZ2U9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sTCxFKSxlMSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsUGFnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InRvdGFsUGFnZXMiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si50b3RhbFBhZ2VzLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnRvdGFsUGFnZXM9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sQyx6KSxlMSh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJjdXJyZW50Wm9vbSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmN1cnJlbnRab29tLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLmN1cnJlbnRab29tPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LCQsRiksZTEodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJsb2FkaW5nImluIEosImhhcyIpLGdldDppKEo9PkoubG9hZGluZywiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5sb2FkaW5nPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LEcsWiksZTEodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9jdW1lbnRJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4iZG9jdW1lbnRJZCJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmRvY3VtZW50SWQsImdldCIpLHNldDppKChKLHhlKT0+e0ouZG9jdW1lbnRJZD14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxELFEpLGUxKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InRodW1ibmFpbERhdGEiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si50aHVtYm5haWxEYXRhLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnRodW1ibmFpbERhdGE9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVCxXKSxlMSh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4icGFnZURhdGEiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si5wYWdlRGF0YSwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5wYWdlRGF0YT14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxtZSxxKSxlMSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZkZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJwZGZGaWxlU2l6ZSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLnBkZkZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnBkZkZpbGVTaXplPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LFUsaiksZTEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6WH0sbnVsbCxyKSxhZT1hPWUudmFsdWUsWCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpYfSl9c3RhdGljIGRlbW89VWVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPVZlYTsjZT1XYSh0aGlzLG8sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKFgpe3RoaXMuI2U9WH0jdD0oV2EodGhpcyxsKSxXYSh0aGlzLGQsMSkpO2dldCBpbml0aWFsUGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbml0aWFsUGFnZShYKXt0aGlzLiN0PVh9I3I9KFdhKHRoaXMsZiksV2EodGhpcyxoLCJhdXRvIikpO2dldCBpbml0aWFsWm9vbSgpe3JldHVybiB0aGlzLiNyfXNldCBpbml0aWFsWm9vbShYKXt0aGlzLiNyPVh9I2E9KFdhKHRoaXMsbSksV2EodGhpcyxiLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUb29sYmFyKFgpe3RoaXMuI2E9WH0jaT0oV2EodGhpcyxnKSxXYSh0aGlzLGssITEpKTtnZXQgc2hvd1NpZGViYXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1NpZGViYXIoWCl7dGhpcy4jaT1YfSNzPShXYSh0aGlzLE0pLFdhKHRoaXMsXywibGVmdCIpKTtnZXQgc2lkZWJhclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNpZGViYXJQb3NpdGlvbihYKXt0aGlzLiNzPVh9I249KFdhKHRoaXMsUyksV2EodGhpcyxMLDEpKTtnZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3VycmVudFBhZ2UoWCl7dGhpcy4jbj1YfSNvPShXYSh0aGlzLEUpLFdhKHRoaXMsQywxKSk7Z2V0IHRvdGFsUGFnZXMoKXtyZXR1cm4gdGhpcy4jb31zZXQgdG90YWxQYWdlcyhYKXt0aGlzLiNvPVh9I2w9KFdhKHRoaXMseiksV2EodGhpcywkLDEpKTtnZXQgY3VycmVudFpvb20oKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3VycmVudFpvb20oWCl7dGhpcy4jbD1YfSNjPShXYSh0aGlzLEYpLFdhKHRoaXMsRywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxvYWRpbmcoWCl7dGhpcy4jYz1YfSNkPShXYSh0aGlzLFopLFdhKHRoaXMsRCwiIikpO2dldCBkb2N1bWVudElkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGRvY3VtZW50SWQoWCl7dGhpcy4jZD1YfSN1PShXYSh0aGlzLFEpLFdhKHRoaXMsVCxbXSkpO2dldCB0aHVtYm5haWxEYXRhKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHRodW1ibmFpbERhdGEoWCl7dGhpcy4jdT1YfSNwPShXYSh0aGlzLFcpLFdhKHRoaXMsbWUsW10pKTtnZXQgcGFnZURhdGEoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcGFnZURhdGEoWCl7dGhpcy4jcD1YfSNmPShXYSh0aGlzLHEpLFdhKHRoaXMsVSwwKSk7Z2V0IHBkZkZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHBkZkZpbGVTaXplKFgpe3RoaXMuI2Y9WH1wZGZEb2N1bWVudD1XYSh0aGlzLGopO3JlbmRlclN0YXRlPSJpZGxlIjtyZW5kZXJBYm9ydENvbnRyb2xsZXI9bnVsbDtwYWdlUmVuZGVyaW5nPSExO3BhZ2VOdW1QZW5kaW5nPW51bGw7Y3VycmVudFJlbmRlclRhc2s9bnVsbDtjdXJyZW50UmVuZGVyUHJvbWlzZT1udWxsO3RodW1ibmFpbFJlbmRlclRhc2tzPVtdO3BhZ2VSZW5kZXJUYXNrcz1uZXcgTWFwO3RleHRMYXllclJlbmRlclRhc2tzPW5ldyBNYXA7Y2FudmFzO2N0eDt2aWV3ZXJNYWluPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJzZWN0aW9uT2JzZXJ2ZXI7c2Nyb2xsVGhyb3R0bGVUaW1lb3V0O3ZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07dmlld3BvcnRNb2RlPSJhdXRvIjtNQU5VQUxfTUlOX1pPT009LjU7TUFOVUFMX01BWF9aT09NPTM7QUJTT0xVVEVfTUlOX1pPT009LjE7QUJTT0xVVEVfTUFYX1pPT009NDtQQUdFX0dBUD0yMDtSRU5ERVJfQlVGRkVSPTM7Y29uc3RydWN0b3IoKXtzdXBlcigpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlIGNsYXNzPSIke3RoaXMuc2hvd1NpZGViYXI/IndpdGgtc2lkZWJhciI6IiJ9IHNpZGViYXItJHt0aGlzLnNpZGViYXJQb3NpdGlvbn0iPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj93YAogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5wcmV2aW91c1BhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPD0xfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkNoZXZyb25MZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIKICAgICAgICAgICAgICAgICAgbWluPSIxIgogICAgICAgICAgICAgICAgICBtYXg9IiR7dGhpcy50b3RhbFBhZ2VzfSIKICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMuY3VycmVudFBhZ2UpfQogICAgICAgICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5oYW5kbGVQYWdlSW5wdXR9CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYWdlLWlucHV0IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlLXNlcGFyYXRvciI+Lzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlLXRvdGFsIj4ke3RoaXMudG90YWxQYWdlc308L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5uZXh0UGFnZX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuY3VycmVudFBhZ2U+PXRoaXMudG90YWxQYWdlc30KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uUmlnaHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuem9vbU91dH0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNhblpvb21PdXR9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbU91dCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLmN1cnJlbnRab29tKjEwMCl9JTwvc3Bhbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21Jbn0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNhblpvb21Jbn0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tSW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZml0VG9QYWdlfQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byBwYWdlIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOk1heGltaXplIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvV2lkdGh9CiAgICAgICAgICAgICAgICB0aXRsZT0iRml0IHRvIHdpZHRoIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFycm93TGVmdFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIHRvb2xiYXItZ3JvdXAtLWVuZCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9IXRoaXMuc2hvd1NpZGViYXJ9CiAgICAgICAgICAgICAgICB0aXRsZT0iJHt0aGlzLnNob3dTaWRlYmFyPyJIaWRlIHRodW1ibmFpbHMiOiJTaG93IHRodW1ibmFpbHMifSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249IiR7dGhpcy5zaG93U2lkZWJhcj8ibHVjaWRlOlNpZGViYXJDbG9zZSI6Imx1Y2lkZTpTaWRlYmFyIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZG93bmxvYWRQZGZ9CiAgICAgICAgICAgICAgICB0aXRsZT0iRG93bmxvYWQiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJpbnRQZGZ9CiAgICAgICAgICAgICAgICB0aXRsZT0iUHJpbnQiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UHJpbnRlciI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0idmlld2VyLWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMuc2hvd1NpZGViYXI/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4+UGFnZXM8L3NwYW4+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJzaWRlYmFyLWNsb3NlIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zaG93U2lkZWJhcj0hMX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6WCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgJHtabC5rZXllZCh0aGlzLmRvY3VtZW50SWQsd2AKICAgICAgICAgICAgICAgICAgJHtabC5yZXBlYXQodGhpcy50aHVtYm5haWxEYXRhLFg9PlgucGFnZSxYPT53YAogICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGh1bWJuYWlsICR7dGhpcy5jdXJyZW50UGFnZT09PVgucGFnZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcGFnZT0iJHtYLnBhZ2V9IgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVRodW1ibmFpbENsaWNrfQogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJ0aHVtYm5haWwtY2FudmFzIiBkYXRhLXBhZ2U9IiR7WC5wYWdlfSI+PC9jYW52YXM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aHVtYm5haWwtbnVtYmVyIj4ke1gucGFnZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPGRpdiBjbGFzcz0idmlld2VyLW1haW4iIEBzY3JvbGw9JHt0aGlzLmhhbmRsZVNjcm9sbH0+CiAgICAgICAgICAgICR7dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGV4dCI+TG9hZGluZyBQREYuLi48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2VzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAke1psLnJlcGVhdCh0aGlzLnBhZ2VEYXRhLFg9PlgucGFnZSxYPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2Utd3JhcHBlciIgZGF0YS1wYWdlPSIke1gucGFnZX0iPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FudmFzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InBhZ2UtY2FudmFzIiBkYXRhLXBhZ2U9IiR7WC5wYWdlfSI+PC9jYW52YXM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtbGF5ZXIiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0icGRmLWZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwZGYtZm9vdGVyLWxlZnQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGRmLWZvb3Rlci1pdGVtIj5ab29tICR7TWF0aC5yb3VuZCh0aGlzLmN1cnJlbnRab29tKjEwMCl9JTwvc3Bhbj4KICAgICAgICAgICAgJHt0aGlzLnBkZkZpbGVTaXplPjA/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGRmLWZvb3Rlci1pdGVtIj4ke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5wZGZGaWxlU2l6ZSl9PC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwZGYtZm9vdGVyLWNlbnRlciIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAke3RoaXMuc2hvd1NpZGViYXImJnRoaXMuc2lkZWJhclBvc2l0aW9uPT09ImxlZnQiPyIxMDBweCI6dGhpcy5zaG93U2lkZWJhciYmdGhpcy5zaWRlYmFyUG9zaXRpb249PT0icmlnaHQiPyItMTAwcHgiOiIwIn0iPgogICAgICAgICAgICA8c3Bhbj5QYWdlICR7dGhpcy5jdXJyZW50UGFnZX0gb2YgJHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwZGYtZm9vdGVyLXJpZ2h0Ij4KICAgICAgICAgICAgJHt0aGlzLnBkZlVybD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZGYtZm9vdGVyLWZpbGVuYW1lIj4ke3RoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl9PC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmVuc3VyZVZpZXdlclJlZnMoKSx0aGlzLnBkZlVybCYmKHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMCx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj12b2lkIDAsdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQpLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0PXZvaWQgMCksdGhpcy5yZW5kZXJTdGF0ZT0iZGlzcG9zZWQiLGF3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCksdGhpcy5jYW52YXM9dm9pZCAwLHRoaXMuY3R4PXZvaWQgMH1hc3luYyB1cGRhdGVkKFgpe2lmKHN1cGVyLnVwZGF0ZWQoWCksWC5oYXMoInBkZlVybCIpJiZ0aGlzLnBkZlVybCl7bGV0IEo9WC5nZXQoInBkZlVybCIpO0omJlNkLnJlbGVhc2VEb2N1bWVudChKKSx0aGlzLmRvY3VtZW50SWQ9YCR7dGhpcy5wZGZVcmx9LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsYXdhaXQgdGhpcy5sb2FkUGRmKCl9WC5oYXMoInNob3dTaWRlYmFyIikmJnRoaXMuc2hvd1NpZGViYXImJnRoaXMucGRmRG9jdW1lbnQmJihhd2FpdCBuZXcgUHJvbWlzZShKPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoSikpLHRoaXMudGh1bWJuYWlsRGF0YS5mb3JFYWNoKEo9PkoucmVuZGVyZWQ9ITEpLGF3YWl0IHRoaXMucmVuZGVyVGh1bWJuYWlscygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpLHRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcodGhpcy5jdXJyZW50UGFnZSkpfWZvcm1hdEZpbGVTaXplKFgpe3JldHVybiBYPDEwMjQ/YCR7WH0gQmA6WDwxMDI0KjEwMjQ/YCR7KFgvMTAyNCkudG9GaXhlZCgxKX0gS0JgOmAkeyhYLygxMDI0KjEwMjQpKS50b0ZpeGVkKDEpfSBNQmB9YXN5bmMgbG9hZFBkZigpe3RoaXMubG9hZGluZz0hMCx0aGlzLnJlbmRlclN0YXRlPSJsb2FkaW5nIjt0cnl7YXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyO2xldCBYPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLnNpZ25hbDtpZih0aGlzLnBkZkRvY3VtZW50PWF3YWl0IFNkLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksWC5hYm9ydGVkKXJldHVybjt0aGlzLnRvdGFsUGFnZXM9dGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcyx0aGlzLmN1cnJlbnRQYWdlPXRoaXMuaW5pdGlhbFBhZ2UsdGhpcy5yZXNvbHZlSW5pdGlhbFZpZXdwb3J0TW9kZSgpO3RyeXtsZXQgSj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKTt0aGlzLnBkZkZpbGVTaXplPUoubGVuZ3RofWNhdGNoe3RoaXMucGRmRmlsZVNpemU9MH1pZih0aGlzLnRodW1ibmFpbERhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKEoseGUpPT4oe3BhZ2U6eGUrMSxyZW5kZXJlZDohMX0pKSx0aGlzLnBhZ2VEYXRhPUFycmF5LmZyb20oe2xlbmd0aDp0aGlzLnRvdGFsUGFnZXN9LChKLHhlKT0+KHtwYWdlOnhlKzEscmVuZGVyZWQ6ITEscmVuZGVyaW5nOiExLHRleHRMYXllclJlbmRlcmVkOiExfSkpLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpLGF3YWl0IG5ldyBQcm9taXNlKEo9PnJlcXVlc3RBbmltYXRpb25GcmFtZShKKSksWC5hYm9ydGVkfHwodGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLW1haW4iLGF3YWl0IHRoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCksWC5hYm9ydGVkKXx8KHRoaXMuaW5pdGlhbFBhZ2U+MSYmYXdhaXQgdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5pbml0aWFsUGFnZSwhMSksdGhpcy5zaG93U2lkZWJhciYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UoSj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEopKSxYLmFib3J0ZWR8fChhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKSxYLmFib3J0ZWQpKSkpcmV0dXJuO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmVkIn1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIFBERjoiLFgpLHRoaXMubG9hZGluZz0hMSx0aGlzLnJlbmRlclN0YXRlPSJlcnJvciJ9fXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyJiZ0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihKPT57Zm9yKGxldCB4ZSBvZiBKKXtsZXQgSz14ZS50YXJnZXQsVj1wYXJzZUludChLLmRhdGFzZXQucGFnZXx8IjEiKTt4ZS5pc0ludGVyc2VjdGluZyYmdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoVil9fSx7cm9vdDp0aGlzLnZpZXdlck1haW4scm9vdE1hcmdpbjpgJHt0aGlzLlJFTkRFUl9CVUZGRVIqMTAwfXB4IDBweGAsdGhyZXNob2xkOi4wMX0pO2xldCBYPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnBhZ2Utd3JhcHBlciIpO1gmJlguZm9yRWFjaChKPT57dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8ub2JzZXJ2ZShKKX0pfWFzeW5jIHJlbmRlclZpc2libGVQYWdlcygpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBYPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQ7Zm9yKGxldCBKIG9mIHRoaXMucGFnZURhdGEpe2xldCB4ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke0oucGFnZX0iXWApO2lmKCF4ZSljb250aW51ZTtsZXQgSz14ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxsZT1LLnRvcC1WLnRvcCxuZT1sZStLLmhlaWdodCxlZT10aGlzLlJFTkRFUl9CVUZGRVIqWDtuZT49LWVlJiZsZTw9WCtlZSYmYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoSi5wYWdlKX19YXN5bmMgcmVuZGVyUGFnZUlmTmVlZGVkKFgpe2xldCBKPXRoaXMucGFnZURhdGEuZmluZCh4ZT0+eGUucGFnZT09PVgpO2lmKCEoIUp8fEoucmVuZGVyZWR8fEoucmVuZGVyaW5nKSl7Si5yZW5kZXJpbmc9ITA7dHJ5e2xldCB4ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLWNhbnZhc1tkYXRhLXBhZ2U9IiR7WH0iXWApO2lmKCF4ZSl7Si5yZW5kZXJpbmc9ITE7cmV0dXJufWxldCBLPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShYKSxWPXRoaXMuY29tcHV0ZVZpZXdwb3J0KEspLGxlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3hlLndpZHRoPU1hdGguZmxvb3IoVi53aWR0aCpsZSkseGUuaGVpZ2h0PU1hdGguZmxvb3IoVi5oZWlnaHQqbGUpLHhlLnN0eWxlLndpZHRoPWAke1Yud2lkdGh9cHhgLHhlLnN0eWxlLmhlaWdodD1gJHtWLmhlaWdodH1weGA7bGV0IG5lPXhlLmdldENvbnRleHQoIjJkIik7aWYoIW5lKXtLLmNsZWFudXA/LigpLEoucmVuZGVyaW5nPSExO3JldHVybn1uZS5zY2FsZShsZSxsZSk7bGV0IGVlPXtjYW52YXNDb250ZXh0Om5lLHZpZXdwb3J0OlZ9LHplPUsucmVuZGVyKGVlKTt0aGlzLnBhZ2VSZW5kZXJUYXNrcy5zZXQoWCx6ZSksYXdhaXQgemUucHJvbWlzZSxLLmNsZWFudXA/LigpLEoucmVuZGVyZWQ9ITAsSi5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFgpLGF3YWl0IHRoaXMucmVuZGVyVGV4dExheWVyKFgpLHRoaXMucmVxdWVzdFVwZGF0ZSgicGFnZURhdGEiKX1jYXRjaCh4ZSl7eGU/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIHBhZ2UgJHtYfTpgLHhlKSxKLnJlbmRlcmluZz0hMSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5kZWxldGUoWCl9fX1hc3luYyByZW5kZXJUZXh0TGF5ZXIoWCl7bGV0IEo9dGhpcy5wYWdlRGF0YS5maW5kKHhlPT54ZS5wYWdlPT09WCk7aWYoISghSnx8Si50ZXh0TGF5ZXJSZW5kZXJlZCkpdHJ5e2xldCB4ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50ZXh0LWxheWVyW2RhdGEtcGFnZT0iJHtYfSJdYCk7aWYoIXhlKXJldHVybjt4ZS5pbm5lckhUTUw9IiI7bGV0IEs9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFgpLFY9YXdhaXQgSy5nZXRUZXh0Q29udGVudCgpLGxlPXRoaXMuY29tcHV0ZVZpZXdwb3J0KEspLG5lPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpO3hlLnN0eWxlLndpZHRoPWAke2xlLndpZHRofXB4YCx4ZS5zdHlsZS5oZWlnaHQ9YCR7bGUuaGVpZ2h0fXB4YCx4ZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zY2FsZS1mYWN0b3IiLFN0cmluZyhsZS5zY2FsZSkpO2xldCBlZT1uZS5yZW5kZXJUZXh0TGF5ZXIoe3RleHRDb250ZW50U291cmNlOlYsY29udGFpbmVyOnhlLHZpZXdwb3J0OmxlfSk7dGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5zZXQoWCxlZSksYXdhaXQgZWUucHJvbWlzZTtsZXQgemU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7emUuY2xhc3NOYW1lPSJlbmRPZkNvbnRlbnQiLHhlLmFwcGVuZENoaWxkKHplKTtsZXQgSGU9ITEsR2U9bnVsbCxvdD0wLERlPWkoKHNlLGNlKT0+e2xldCBUZT1BcnJheS5mcm9tKHhlLnF1ZXJ5U2VsZWN0b3JBbGwoInNwYW4iKSk7Zm9yKGxldCBxZSBvZiBUZSl7bGV0IG50PXFlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKHNlPj1udC5sZWZ0JiZzZTw9bnQucmlnaHQmJmNlPj1udC50b3AmJmNlPD1udC5ib3R0b20pe2xldCB2dD1xZS5maXJzdENoaWxkO2lmKHZ0JiZ2dC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXtsZXQgTGU9dnQudGV4dENvbnRlbnR8fCIiLHdlPW50LndpZHRoL0xlLmxlbmd0aCxPZT1zZS1udC5sZWZ0LGdlPU1hdGgubWluKE1hdGgucm91bmQoT2Uvd2UpLExlLmxlbmd0aCk7cmV0dXJue25vZGU6dnQsb2Zmc2V0OmdlfX19fXJldHVybiBudWxsfSwiZ2V0VGV4dFBvc2l0aW9uRnJvbVBvaW50IiksX2U9aSgoKT0+e0hlJiYoSGU9ITEsR2U9bnVsbCx4ZS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RpbmciKSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsX2UpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsb2UpfSwiaGFuZGxlTW91c2VVcCIpLG9lPWkoc2U9PntpZighSGV8fCFHZSlyZXR1cm47c2UucHJldmVudERlZmF1bHQoKTtsZXQgY2U9RGUoc2UuY2xpZW50WCxzZS5jbGllbnRZKTtpZihjZSl7bGV0IFRlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihUZSl0cnl7VGUuc2V0QmFzZUFuZEV4dGVudChHZSxvdCxjZS5ub2RlLGNlLm9mZnNldCl9Y2F0Y2h7fX19LCJoYW5kbGVNb3VzZU1vdmUiKTt4ZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHNlPT57aWYoc2UuYnV0dG9uIT09MClyZXR1cm47bGV0IGNlPURlKHNlLmNsaWVudFgsc2UuY2xpZW50WSk7Y2UmJihzZS5wcmV2ZW50RGVmYXVsdCgpLEhlPSEwLEdlPWNlLm5vZGUsb3Q9Y2Uub2Zmc2V0LHhlLmNsYXNzTGlzdC5hZGQoInNlbGVjdGluZyIpLHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixvZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsX2UpKX0pLEoudGV4dExheWVyUmVuZGVyZWQ9ITAsSy5jbGVhbnVwPy4oKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShYKX1jYXRjaCh4ZSl7eGU/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIHRleHQgbGF5ZXIgZm9yIHBhZ2UgJHtYfTpgLHhlKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShYKX19aGFuZGxlU2Nyb2xsPWkoKCk9Pnt0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0KSx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dD13aW5kb3cuc2V0VGltZW91dCgoKT0+e3RoaXMudXBkYXRlQ3VycmVudFBhZ2UoKSx0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSw1MCl9LCJoYW5kbGVTY3JvbGwiKTt1cGRhdGVDdXJyZW50UGFnZSgpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBYPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3AsSj10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LHhlPVgrSi8yO2ZvcihsZXQgSz0wO0s8dGhpcy5wYWdlRGF0YS5sZW5ndGg7SysrKXtsZXQgVj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke0srMX0iXWApO2lmKCFWKWNvbnRpbnVlO2xldCBsZT1WLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG5lPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlZT1sZS50b3AtbmUudG9wK1gsemU9ZWUrbGUuaGVpZ2h0O2lmKHhlPj1lZSYmeGU8PXplKXt0aGlzLmN1cnJlbnRQYWdlIT09SysxJiYodGhpcy5jdXJyZW50UGFnZT1LKzEsdGhpcy5zaG93U2lkZWJhciYmdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhLKzEpKTticmVha319fXNjcm9sbFRodW1ibmFpbEludG9WaWV3KFgpe2xldCBKPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRodW1ibmFpbFtkYXRhLXBhZ2U9IiR7WH0iXWApLHhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNpZGViYXItY29udGVudCIpO2lmKEomJnhlKXtsZXQgSz1KLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFY9eGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGU9Sy50b3A8Vi50b3AsbmU9Sy5ib3R0b20+Vi5ib3R0b207aWYobGV8fG5lKXtsZXQgZWU9Si5vZmZzZXRUb3AsemU9Si5vZmZzZXRIZWlnaHQsSGU9eGUuY2xpZW50SGVpZ2h0LEdlPWVlLUhlLzIremUvMjt4ZS5zY3JvbGxUbyh7dG9wOk1hdGgubWF4KDAsR2UpLGJlaGF2aW9yOiJzbW9vdGgifSl9fX1hc3luYyBzY3JvbGxUb1BhZ2UoWCxKPSEwKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCB4ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke1h9Il1gKTtpZih4ZSYmdGhpcy52aWV3ZXJNYWluKXtsZXQgSz14ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuZT10aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wKyhLLnRvcC1WLnRvcCktdGhpcy52aWV3ZXJNYWluLmNsaWVudFRvcC0xNjtKP3RoaXMudmlld2VyTWFpbi5zY3JvbGxUbyh7dG9wOm5lLGJlaGF2aW9yOiJzbW9vdGgifSk6dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcD1uZSx0aGlzLmN1cnJlbnRQYWdlPVgsdGhpcy5zaG93U2lkZWJhciYmdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhYKSxhd2FpdCB0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChYKX19YXN5bmMgcmVuZGVyVGh1bWJuYWlscygpe2lmKCF0aGlzLnBkZkRvY3VtZW50fHx0aGlzLnRodW1ibmFpbERhdGEubGVuZ3RoPjAmJnRoaXMudGh1bWJuYWlsRGF0YS5ldmVyeShKPT5KLnJlbmRlcmVkKXx8dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI/LnNpZ25hbC5hYm9ydGVkKXJldHVybjtsZXQgWD10aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmluZy10aHVtYnMiO2ZvcihsZXQgSiBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzKXRyeXtKLmNhbmNlbCgpfWNhdGNoe310aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdO3RyeXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBKPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbCIpLHhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbC1jYW52YXMiKSxLPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNpZGViYXItY29udGVudCIpLFY9d2luZG93LmdldENvbXB1dGVkU3R5bGUoSyksbmU9MjAwLShwYXJzZUZsb2F0KFYucGFkZGluZ0xlZnQpK3BhcnNlRmxvYXQoVi5wYWRkaW5nUmlnaHQpKS00O2ZvcihsZXQgZWUgb2YgQXJyYXkuZnJvbSh4ZSkpe2xldCB6ZT1lZS5nZXRDb250ZXh0KCIyZCIpO3plJiZ6ZS5jbGVhclJlY3QoMCwwLGVlLndpZHRoLGVlLmhlaWdodCl9Zm9yKGxldCBlZT0wO2VlPHhlLmxlbmd0aDtlZSsrKXtpZihYPy5hYm9ydGVkKXJldHVybjtsZXQgemU9eGVbZWVdLEhlPUpbZWVdLEdlPXBhcnNlSW50KHplLmRhdGFzZXQucGFnZXx8IjEiKSxvdD1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoR2UpLERlPW90LmdldFZpZXdwb3J0KHtzY2FsZToxfSksX2U9bmUvRGUud2lkdGgsb2U9b3QuZ2V0Vmlld3BvcnQoe3NjYWxlOl9lfSksc2U9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7emUud2lkdGg9TWF0aC5mbG9vcihvZS53aWR0aCpzZSksemUuaGVpZ2h0PU1hdGguZmxvb3Iob2UuaGVpZ2h0KnNlKSx6ZS5zdHlsZS53aWR0aD1gJHtvZS53aWR0aH1weGAsemUuc3R5bGUuaGVpZ2h0PWAke29lLmhlaWdodH1weGAsSGUuc3R5bGUuaGVpZ2h0PWAke29lLmhlaWdodH1weGAsSGUuc3R5bGUubWluSGVpZ2h0PWAke29lLmhlaWdodH1weGA7bGV0IGNlPXplLmdldENvbnRleHQoIjJkIik7aWYoIWNlKXtvdC5jbGVhbnVwPy4oKTtjb250aW51ZX1jZS5zY2FsZShzZSxzZSk7bGV0IFRlPXtjYW52YXNDb250ZXh0OmNlLHZpZXdwb3J0Om9lfSxxZT1vdC5yZW5kZXIoVGUpO3RoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MucHVzaChxZSksYXdhaXQgcWUucHJvbWlzZSxvdC5jbGVhbnVwPy4oKTtsZXQgbnQ9dGhpcy50aHVtYm5haWxEYXRhLmZpbmQodnQ9PnZ0LnBhZ2U9PT1HZSk7bnQmJihudC5yZW5kZXJlZD0hMCl9dGhpcy5yZXF1ZXN0VXBkYXRlKCJ0aHVtYm5haWxEYXRhIil9Y2F0Y2goSil7Sj8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKCJFcnJvciByZW5kZXJpbmcgdGh1bWJuYWlsczoiLEopfWZpbmFsbHl7dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXX19cHJldmlvdXNQYWdlKCl7dGhpcy5jdXJyZW50UGFnZT4xJiZ0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmN1cnJlbnRQYWdlLTEpfW5leHRQYWdlKCl7dGhpcy5jdXJyZW50UGFnZTx0aGlzLnRvdGFsUGFnZXMmJnRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UrMSl9aGFuZGxlVGh1bWJuYWlsQ2xpY2soWCl7bGV0IEo9WC5jdXJyZW50VGFyZ2V0LHhlPXBhcnNlSW50KEouZGF0YXNldC5wYWdlfHwiMSIpO3RoaXMuc2Nyb2xsVG9QYWdlKHhlKX1oYW5kbGVQYWdlSW5wdXQoWCl7bGV0IEo9WC50YXJnZXQseGU9cGFyc2VJbnQoSi52YWx1ZSk7dGhpcy5zY3JvbGxUb1BhZ2UoeGUpfXpvb21Jbigpe2xldCBYPU1hdGgubWluKHRoaXMuTUFOVUFMX01BWF9aT09NLHRoaXMuY3VycmVudFpvb20qMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixYIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209WCx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9em9vbU91dCgpe2xldCBYPU1hdGgubWF4KHRoaXMuTUFOVUFMX01JTl9aT09NLHRoaXMuY3VycmVudFpvb20vMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixYIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209WCx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9cmVzZXRab29tKCl7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT0xLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvUGFnZSgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9Zml0VG9XaWR0aCgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLXdpZHRoIix0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1yZVJlbmRlckFsbFBhZ2VzKCl7dGhpcy5wYWdlRGF0YS5mb3JFYWNoKFg9PntYLnJlbmRlcmVkPSExLFgucmVuZGVyaW5nPSExLFgudGV4dExheWVyUmVuZGVyZWQ9ITF9KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSl9YXN5bmMgZG93bmxvYWRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgWD1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxKPW5ldyBCbG9iKFtYLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSx4ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKEopLEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO0suaHJlZj14ZSxLLmRvd25sb2FkPXRoaXMucGRmVXJsJiZ0aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIixLLmNsaWNrKCksc2V0VGltZW91dCgoKT0+VVJMLnJldm9rZU9iamVjdFVSTCh4ZSksMWUzKX1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBkb3dubG9hZGluZyBQREY6IixYKX19YXN5bmMgcHJpbnRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgWD1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxKPW5ldyBCbG9iKFtYLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSx4ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKEopLEs9YAogICAgICAgIDwhRE9DVFlQRSBodG1sPgogICAgICAgIDxodG1sPgogICAgICAgIDxoZWFkPgogICAgICAgICAgPHRpdGxlPlByaW50IFBERjwvdGl0bGU+CiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgICogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KICAgICAgICAgICAgaHRtbCwgYm9keSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IH0KICAgICAgICAgICAgaWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiBub25lOyB9CiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7CiAgICAgICAgICAgICAgaHRtbCwgYm9keSwgaWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgIDwvaGVhZD4KICAgICAgICA8Ym9keT4KICAgICAgICAgIDxpZnJhbWUgc3JjPSIke3hlfSIgdHlwZT0iYXBwbGljYXRpb24vcGRmIj48L2lmcmFtZT4KICAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgd2luZG93LmZvY3VzKCk7CiAgICAgICAgICAgICAgICB3aW5kb3cucHJpbnQoKTsKICAgICAgICAgICAgICB9LCA1MDApOwogICAgICAgICAgICB9OwogICAgICAgICAgICB3aW5kb3cub25hZnRlcnByaW50ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgd2luZG93LmNsb3NlKCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIC8vIFNhZmV0eSBjbG9zZSBhZnRlciAyIG1pbnV0ZXMKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgd2luZG93LmNsb3NlKCk7IH0sIDEyMDAwMCk7CiAgICAgICAgICA8XC9zY3JpcHQ+CiAgICAgICAgPC9ib2R5PgogICAgICAgIDwvaHRtbD4KICAgICAgYCxWPW5ldyBCbG9iKFtLXSx7dHlwZToidGV4dC9odG1sIn0pLGxlPVVSTC5jcmVhdGVPYmplY3RVUkwoViksbmU9d2luZG93Lm9wZW4obGUsIl9ibGFuayIsIndpZHRoPTgwMCxoZWlnaHQ9NjAwIik7aWYobmUpe2xldCBlZT1zZXRJbnRlcnZhbCgoKT0+e25lLmNsb3NlZCYmKGNsZWFySW50ZXJ2YWwoZWUpLFVSTC5yZXZva2VPYmplY3RVUkwoeGUpLFVSTC5yZXZva2VPYmplY3RVUkwobGUpKX0sNTAwKTtzZXRUaW1lb3V0KCgpPT57Y2xlYXJJbnRlcnZhbChlZSksVVJMLnJldm9rZU9iamVjdFVSTCh4ZSksVVJMLnJldm9rZU9iamVjdFVSTChsZSl9LDEyZTQpfWVsc2Ugd2luZG93Lm9wZW4oeGUsIl9ibGFuayIpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoeGUpLDZlNCksVVJMLnJldm9rZU9iamVjdFVSTChsZSl9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgcHJpbnRpbmcgUERGOiIsWCl9fWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgWD1bXSx4ZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCl8fCIiO3JldHVybiB4ZSYmKFgucHVzaCh7bmFtZToiQ29weSIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoeGUpfSwiYWN0aW9uIil9KSxYLnB1c2goe2RpdmlkZXI6ITB9KSksWC5wdXNoKHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmRvd25sb2FkUGRmKCl9LCJhY3Rpb24iKX0se25hbWU6IlByaW50IFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpQcmludGVyIixhY3Rpb246aShhc3luYygpPT57YXdhaXQgdGhpcy5wcmludFBkZigpfSwiYWN0aW9uIil9KSxYfWdldCBjYW5ab29tSW4oKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbTx0aGlzLk1BTlVBTF9NQVhfWk9PTX1nZXQgY2FuWm9vbU91dCgpe3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20ifHx0aGlzLmN1cnJlbnRab29tPnRoaXMuTUFOVUFMX01JTl9aT09NfWVuc3VyZVZpZXdlclJlZnMoKXt0aGlzLnZpZXdlck1haW58fCh0aGlzLnZpZXdlck1haW49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlld2VyLW1haW4iKSksdGhpcy52aWV3ZXJNYWluJiYhdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy5wZGZEb2N1bWVudCYmdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3ZXJNYWluKSx0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKSx0aGlzLnZpZXdlck1haW4uYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLFg9PntsZXQgSj1YLmN1cnJlbnRUYXJnZXQseGU9Si5zY3JvbGxUb3AsSz1KLnNjcm9sbEhlaWdodCxWPUouY2xpZW50SGVpZ2h0LGxlPVguZGVsdGFZLG5lPXhlPT09MCxlZT1NYXRoLmFicyh4ZStWLUspPDE7bGU8MCYmIW5lfHxsZT4wJiYhZWU/WC5zdG9wUHJvcGFnYXRpb24oKToobGU8MCYmbmV8fGxlPjAmJmVlKSYmKFgucHJldmVudERlZmF1bHQoKSxYLnN0b3BQcm9wYWdhdGlvbigpKX0se3Bhc3NpdmU6ITF9KSl9bWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpe2lmKCF0aGlzLnZpZXdlck1haW4pe3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDowLGhlaWdodDowfTtyZXR1cm59bGV0IFg9Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnZpZXdlck1haW4pLEo9cGFyc2VGbG9hdChYLnBhZGRpbmdMZWZ0fHwiMCIpK3BhcnNlRmxvYXQoWC5wYWRkaW5nUmlnaHR8fCIwIikseGU9cGFyc2VGbG9hdChYLnBhZGRpbmdUb3B8fCIwIikrcGFyc2VGbG9hdChYLnBhZGRpbmdCb3R0b218fCIwIiksSz1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50V2lkdGgtSiwwKSxWPU1hdGgubWF4KHRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQteGUsMCk7dGhpcy52aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOkssaGVpZ2h0OlZ9fXJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCl7dHlwZW9mIHRoaXMuaW5pdGlhbFpvb209PSJudW1iZXIiPyh0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIix0aGlzLmN1cnJlbnRab29tPXRoaXMubm9ybWFsaXplWm9vbSh0aGlzLmluaXRpYWxab29tLCEwKSk6dGhpcy5pbml0aWFsWm9vbT09PSJwYWdlLXdpZHRoIj90aGlzLnZpZXdwb3J0TW9kZT0icGFnZS13aWR0aCI6dGhpcy5pbml0aWFsWm9vbT09PSJwYWdlLWZpdCJ8fHRoaXMuaW5pdGlhbFpvb209PT0iYXV0byI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2UtZml0Ijp0aGlzLnZpZXdwb3J0TW9kZT0iYXV0byIsdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209MSl9Y29tcHV0ZVZpZXdwb3J0KFgpe3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpO2xldCBKPVguZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSx4ZTtzd2l0Y2godGhpcy52aWV3cG9ydE1vZGUpe2Nhc2UicGFnZS13aWR0aCI6e3hlPSh0aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aHx8Si53aWR0aCkvSi53aWR0aDticmVha31jYXNlInBhZ2UtZml0IjpjYXNlImF1dG8iOntsZXQgVj10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aHx8Si53aWR0aCxsZT10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHR8fEouaGVpZ2h0LG5lPVYvSi53aWR0aCxlZT1sZS9KLmhlaWdodDt4ZT1NYXRoLm1pbihuZSxlZSk7YnJlYWt9ZGVmYXVsdDp7eGU9dGhpcy5ub3JtYWxpemVab29tKHRoaXMuY3VycmVudFpvb218fDEsITEpO2JyZWFrfX0oIU51bWJlci5pc0Zpbml0ZSh4ZSl8fHhlPD0wKSYmKHhlPTEpO2xldCBLPXRoaXMudmlld3BvcnRNb2RlPT09ImN1c3RvbSI/dGhpcy5ub3JtYWxpemVab29tKHhlLCEwKTp0aGlzLm5vcm1hbGl6ZVpvb20oeGUsITEpO3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20iJiYodGhpcy5jdXJyZW50Wm9vbT1LKSxYLmdldFZpZXdwb3J0KHtzY2FsZTpLfSl9bm9ybWFsaXplWm9vbShYLEope2xldCB4ZT1KP3RoaXMuTUFOVUFMX01JTl9aT09NOnRoaXMuQUJTT0xVVEVfTUlOX1pPT00sSz1KP3RoaXMuTUFOVUFMX01BWF9aT09NOnRoaXMuQUJTT0xVVEVfTUFYX1pPT007cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KFgseGUpLEspfWFzeW5jIGNsZWFudXBEb2N1bWVudCgpe2lmKHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyJiYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXIuYWJvcnQoKSx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj1udWxsKSx0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlKXt0cnl7YXdhaXQgdGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZX1jYXRjaHt9dGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZT1udWxsfXRoaXMuY3VycmVudFJlbmRlclRhc2s9bnVsbCx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKTtmb3IobGV0IFggb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrc3x8W10pdHJ5e1guY2FuY2VsKCl9Y2F0Y2h7fWlmKHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W10sdGhpcy5yZW5kZXJTdGF0ZT0iaWRsZSIsdGhpcy5wYWdlUmVuZGVyaW5nPSExLHRoaXMucGFnZU51bVBlbmRpbmc9bnVsbCx0aGlzLnRodW1ibmFpbERhdGE9W10sdGhpcy5wYWdlRGF0YT1bXSx0aGlzLmRvY3VtZW50SWQ9IiIsdGhpcy5jYW52YXMmJnRoaXMuY3R4JiZ0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5wZGZEb2N1bWVudCl0cnl7dGhpcy5wZGZEb2N1bWVudC5kZXN0cm95KCl9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVzdHJveWluZyBQREYgZG9jdW1lbnQ6IixYKX10aGlzLnBkZkRvY3VtZW50PW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c3RhdGlje1dhKGEscil9fTtyZXR1cm4gYWU9YX0pKCl9KTt2YXIgWWVhLEtlYT11KCgpPT57dmUoKTtZZWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNDBweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgIH0KCiAgICAucHJldmlldy1wZGYgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5JbWFnZSBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBpbWFnZSBmcm9tIFVSTCBleHRlbnNpb24gYW5kIHJlbmRlcnMgd2l0aCB0aGUgaW1hZ2Ugdmlld2VyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UiCiAgICAgICAgdXJsPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGZpbGVuYW1lPSJsYW5kc2NhcGUuanBnIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UERGIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXV0by1kZXRlY3RzIFBERiBhbmQgZGlzcGxheXMgd2l0aCB0aGUgUERGIHZpZXdlciBpbmNsdWRpbmcgdG9vbGJhci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LXBkZiIKICAgICAgICB1cmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBmaWxlbmFtZT0icmVzZWFyY2gtcGFwZXIucGRmIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29kZSBQcmV2aWV3IChUZXh0IENvbnRlbnQpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlR5cGVTY3JpcHQgY29kZSBkaXNwbGF5ZWQgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nIHZpYSB0aGUgY29kZWJveC48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJleGFtcGxlLnRzIgogICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7CiAgc3RhdGljIHN0eWxlcyA9IGNzc1xgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIFxgOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgPGgxPkhlbGxvIFdvcmxkPC9oMT5cYDsKICB9Cn1gfQogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBmaWxlIGRldGVjdGVkIGJ5IGV4dGVuc2lvbiwgc2hvd24gd2l0aCB3YXZlZm9ybSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgZmlsZW5hbWU9InNvbmcubXAzIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyBmaWxlIGRldGVjdGVkIGZyb20gVVJMLCByZW5kZXJlZCB3aXRoIGN1c3RvbSB2aWRlbyBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIHVybD0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBmaWxlbmFtZT0iYmlnLWJ1Y2stYnVubnkubXA0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RXhwbGljaXQgVHlwZSBPdmVycmlkZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Gb3JjZSBjb250ZW50IHR5cGUgdG8gJ3RleHQnIGV2ZW4gdGhvdWdoIHRoZSBVUkwgaGFzIG5vIGV4dGVuc2lvbi48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNvbnRlbnRUeXBlPSJ0ZXh0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BUaGlzIGlzIHBsYWluIHRleHQgY29udGVudC4KSXQgcHJlc2VydmVzIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzLgoKVXNlZnVsIGZvciBsb2cgZmlsZXMsIFJFQURNRXMsIGV0Yy5gfQogICAgICAgIGZpbGVuYW1lPSJub3Rlcy50eHQiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Vbmtub3duIFR5cGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+V2hlbiBjb250ZW50IHR5cGUgY2Fubm90IGJlIGRldGVjdGVkLCBzaG93cyBhIHBsYWNlaG9sZGVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgZmlsZW5hbWU9ImRhdGEuYmluIgogICAgICAgIGNvbnRlbnRUeXBlPSJ1bmtub3duIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBIbixnYSxaZWEsZkZhLGhGYSxtRmEsUWVhLFhlYT11KCgpPT57dmUoKTtSN3QoKTtGN3QoKTtCN3QoKTt3N3QoKTtIN3QoKTtLcigpO0tlYSgpO0huPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxnYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sWmVhPXtqcGc6ImltYWdlIixqcGVnOiJpbWFnZSIscG5nOiJpbWFnZSIsZ2lmOiJpbWFnZSIsd2VicDoiaW1hZ2UiLHN2ZzoiaW1hZ2UiLGJtcDoiaW1hZ2UiLGF2aWY6ImltYWdlIixpY286ImltYWdlIixwZGY6InBkZiIsbXAzOiJhdWRpbyIsd2F2OiJhdWRpbyIsb2dnOiJhdWRpbyIsZmxhYzoiYXVkaW8iLGFhYzoiYXVkaW8iLG00YToiYXVkaW8iLG9wdXM6ImF1ZGlvIix3ZWJhOiJhdWRpbyIsbXA0OiJ2aWRlbyIsd2VibToidmlkZW8iLG1vdjoidmlkZW8iLGF2aToidmlkZW8iLG1rdjoidmlkZW8iLG9ndjoidmlkZW8iLHRzOiJjb2RlIixqczoiY29kZSIsanN4OiJjb2RlIix0c3g6ImNvZGUiLGpzb246ImNvZGUiLGh0bWw6ImNvZGUiLGNzczoiY29kZSIsc2NzczoiY29kZSIsbGVzczoiY29kZSIscHk6ImNvZGUiLGphdmE6ImNvZGUiLGdvOiJjb2RlIixyczoiY29kZSIseWFtbDoiY29kZSIseW1sOiJjb2RlIix4bWw6ImNvZGUiLHNxbDoiY29kZSIsc2g6ImNvZGUiLGJhc2g6ImNvZGUiLHpzaDoiY29kZSIsbWQ6ImNvZGUiLGM6ImNvZGUiLGNwcDoiY29kZSIsaDoiY29kZSIsaHBwOiJjb2RlIixyYjoiY29kZSIscGhwOiJjb2RlIixzd2lmdDoiY29kZSIsa3Q6ImNvZGUiLHR4dDoidGV4dCIsbG9nOiJ0ZXh0Iixjc3Y6InRleHQiLGVudjoidGV4dCJ9LGZGYT17ImltYWdlLyI6ImltYWdlIiwiYXVkaW8vIjoiYXVkaW8iLCJ2aWRlby8iOiJ2aWRlbyIsImFwcGxpY2F0aW9uL3BkZiI6InBkZiJ9LGhGYT17dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsanNvbjoianNvbiIsaHRtbDoieG1sIix4bWw6InhtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLGxlc3M6Imxlc3MiLHB5OiJweXRob24iLGphdmE6ImphdmEiLGdvOiJnbyIscnM6InJ1c3QiLHlhbWw6InlhbWwiLHltbDoieWFtbCIsc3FsOiJzcWwiLHNoOiJiYXNoIixiYXNoOiJiYXNoIix6c2g6ImJhc2giLGM6ImMiLGNwcDoiY3BwIixoOiJjIixocHA6ImNwcCIscmI6InJ1YnkiLHBocDoicGhwIixzd2lmdDoic3dpZnQiLGt0OiJrb3RsaW4iLG1kOiJtYXJrZG93biJ9LG1GYT17aW1hZ2U6Imx1Y2lkZTpJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLGNvZGU6Imx1Y2lkZTpDb2RlIix0ZXh0OiJsdWNpZGU6RmlsZVRleHQiLHVua25vd246Imx1Y2lkZTpGaWxlIn0sUWVhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1wcmV2aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdLEgsVT1bXSxqPVtdLGFlLFg9W10sSj1bXSx4ZSxLPVtdLFY9W107dmFyIGxlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzUHJldmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBuZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKCldLGM9W1Aoe2F0dHJpYnV0ZTohMX0pXSxwPVtQKCldLHY9W1AoKV0seT1bUCgpXSxOPVtQKCldLE89W1AoKV0sQj1bUCgpXSxBPVtQKHt0eXBlOkJvb2xlYW59KV0sWT1bUCh7dHlwZTpCb29sZWFufSldLGRlPVtpZSgpXSxmZT1baWUoKV0scGU9W2llKCldLEg9W2llKCldLGFlPVtpZSgpXSx4ZT1baWUoKV0sSG4odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJ1cmwiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS51cmwsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS51cmw9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LG8sbCksSG4odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZmlsZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmZpbGUsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5maWxlPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxkLGYpLEhuKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFzZTY0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iYmFzZTY0ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuYmFzZTY0LCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuYmFzZTY0PXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxoLG0pLEhuKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJ0ZXh0Q29udGVudCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnRleHRDb250ZW50LCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUudGV4dENvbnRlbnQ9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LGIsZyksSG4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImNvbnRlbnRUeXBlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuY29udGVudFR5cGUsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5jb250ZW50VHlwZT16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sayxNKSxIbih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibGFuZ3VhZ2UiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5sYW5ndWFnZSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmxhbmd1YWdlPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxfLFMpLEhuKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWltZVR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJtaW1lVHlwZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm1pbWVUeXBlLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUubWltZVR5cGU9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LEwsRSksSG4odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlbmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImZpbGVuYW1lImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZmlsZW5hbWUsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5maWxlbmFtZT16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sQyx6KSxIbih0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ic2hvd1Rvb2xiYXIiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnNob3dUb29sYmFyPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSwkLEYpLEhuKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ic2hvd0ZpbGVuYW1lImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuc2hvd0ZpbGVuYW1lLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuc2hvd0ZpbGVuYW1lPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxHLFopLEhuKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InJlc29sdmVkVHlwZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnJlc29sdmVkVHlwZSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnJlc29sdmVkVHlwZT16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sRCxRKSxIbih0aGlzLG51bGwsZmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InJlc29sdmVkU3JjImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUucmVzb2x2ZWRTcmMsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5yZXNvbHZlZFNyYz16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sVCxXKSxIbih0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJyZXNvbHZlZFRleHQiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5yZXNvbHZlZFRleHQsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5yZXNvbHZlZFRleHQ9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LG1lLHEpLEhuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4icmVzb2x2ZWRMYW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUucmVzb2x2ZWRMYW5nLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUucmVzb2x2ZWRMYW5nPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxVLGopLEhuKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJsb2FkaW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUubG9hZGluZywiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmxvYWRpbmc9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LFgsSiksSG4odGhpcyxudWxsLHhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlcnJvciJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmVycm9yLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuZXJyb3I9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LEssViksSG4obnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bmV9LG51bGwsciksbGU9YT1lLnZhbHVlLG5lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm5lfSl9c3RhdGljIGRlbW89WWVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJEYXRhIFZpZXciXTsjZT1nYSh0aGlzLG8sIiIpO2dldCB1cmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdXJsKG5lKXt0aGlzLiNlPW5lfSN0PShnYSh0aGlzLGwpLGdhKHRoaXMsZCx2b2lkIDApKTtnZXQgZmlsZSgpe3JldHVybiB0aGlzLiN0fXNldCBmaWxlKG5lKXt0aGlzLiN0PW5lfSNyPShnYSh0aGlzLGYpLGdhKHRoaXMsaCwiIikpO2dldCBiYXNlNjQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYmFzZTY0KG5lKXt0aGlzLiNyPW5lfSNhPShnYSh0aGlzLG0pLGdhKHRoaXMsYiwiIikpO2dldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLiNhfXNldCB0ZXh0Q29udGVudChuZSl7dGhpcy4jYT1uZX0jaT0oZ2EodGhpcyxnKSxnYSh0aGlzLGssdm9pZCAwKSk7Z2V0IGNvbnRlbnRUeXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbnRlbnRUeXBlKG5lKXt0aGlzLiNpPW5lfSNzPShnYSh0aGlzLE0pLGdhKHRoaXMsXywiIikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNzfXNldCBsYW5ndWFnZShuZSl7dGhpcy4jcz1uZX0jbj0oZ2EodGhpcyxTKSxnYSh0aGlzLEwsIiIpKTtnZXQgbWltZVR5cGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWltZVR5cGUobmUpe3RoaXMuI249bmV9I289KGdhKHRoaXMsRSksZ2EodGhpcyxDLCIiKSk7Z2V0IGZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuI299c2V0IGZpbGVuYW1lKG5lKXt0aGlzLiNvPW5lfSNsPShnYSh0aGlzLHopLGdhKHRoaXMsJCwhMCkpO2dldCBzaG93VG9vbGJhcigpe3JldHVybiB0aGlzLiNsfXNldCBzaG93VG9vbGJhcihuZSl7dGhpcy4jbD1uZX0jYz0oZ2EodGhpcyxGKSxnYSh0aGlzLEcsITApKTtnZXQgc2hvd0ZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHNob3dGaWxlbmFtZShuZSl7dGhpcy4jYz1uZX0jZD0oZ2EodGhpcyxaKSxnYSh0aGlzLEQsInVua25vd24iKSk7Z2V0IHJlc29sdmVkVHlwZSgpe3JldHVybiB0aGlzLiNkfXNldCByZXNvbHZlZFR5cGUobmUpe3RoaXMuI2Q9bmV9I3U9KGdhKHRoaXMsUSksZ2EodGhpcyxULCIiKSk7Z2V0IHJlc29sdmVkU3JjKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHJlc29sdmVkU3JjKG5lKXt0aGlzLiN1PW5lfSNwPShnYSh0aGlzLFcpLGdhKHRoaXMsbWUsIiIpKTtnZXQgcmVzb2x2ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI3B9c2V0IHJlc29sdmVkVGV4dChuZSl7dGhpcy4jcD1uZX0jZj0oZ2EodGhpcyxxKSxnYSh0aGlzLFUsInRleHQiKSk7Z2V0IHJlc29sdmVkTGFuZygpe3JldHVybiB0aGlzLiNmfXNldCByZXNvbHZlZExhbmcobmUpe3RoaXMuI2Y9bmV9I2g9KGdhKHRoaXMsaiksZ2EodGhpcyxYLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgbG9hZGluZyhuZSl7dGhpcy4jaD1uZX0jbT0oZ2EodGhpcyxKKSxnYSh0aGlzLEssIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jbX1zZXQgZXJyb3IobmUpe3RoaXMuI209bmV9b2JqZWN0VXJsPShnYSh0aGlzLFYpLCIiKTtyZW5kZXIoKXtsZXQgbmU9dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHx0aGlzLmdldEZpbGVuYW1lRnJvbVVybCgpfHwiIjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWljb24gewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1maWxlbmFtZSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1iYWRnZSB7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhID4gKiB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtaW1hZ2Utdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wZGYtdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy12aWRlby12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWF1ZGlvLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtZGF0YXZpZXctY29kZWJveCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC50ZXh0LXZpZXdlciB7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlciBkZWVzLWljb24gewogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItY29udGFpbmVyIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93RmlsZW5hbWUmJm5lP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYmFyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaGVhZGVyLWljb24iIGljb249IiR7bUZhW3RoaXMucmVzb2x2ZWRUeXBlXX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLWZpbGVuYW1lIj4ke25lfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRlci1iYWRnZSI+JHt0aGlzLnJlc29sdmVkVHlwZX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QWxlcnRUcmlhbmdsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1jb250YWluZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLnJlbmRlckNvbnRlbnQoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNvbnRlbnQoKXtzd2l0Y2godGhpcy5yZXNvbHZlZFR5cGUpe2Nhc2UiaW1hZ2UiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAuc2hvd1Rvb2xiYXI9JHt0aGlzLnNob3dUb29sYmFyfQogICAgICAgICAgICBhbHQ9IiR7dGhpcy5maWxlbmFtZXx8IiJ9IgogICAgICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICAgICAgYDtjYXNlInBkZiI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgICAgIC5wZGZVcmw9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAuc2hvd1Rvb2xiYXI9JHt0aGlzLnNob3dUb29sYmFyfQogICAgICAgICAgICBpbml0aWFsWm9vbT0icGFnZS1maXQiCiAgICAgICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICAgICAgYDtjYXNlImF1ZGlvIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnRpdGxlPSR7dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHwiIn0KICAgICAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgICAgIGA7Y2FzZSJ2aWRlbyI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgICAgICBgO2Nhc2UiY29kZSI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94CiAgICAgICAgICAgIC5wcm9nTGFuZz0ke3RoaXMucmVzb2x2ZWRMYW5nfQogICAgICAgICAgICAuY29kZVRvRGlzcGxheT0ke3RoaXMucmVzb2x2ZWRUZXh0fQogICAgICAgICAgPjwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgICAgIGA7Y2FzZSJ0ZXh0IjpyZXR1cm4gd2A8cHJlIGNsYXNzPSJ0ZXh0LXZpZXdlciI+JHt0aGlzLnJlc29sdmVkVGV4dH08L3ByZT5gO2RlZmF1bHQ6cmV0dXJuIHdgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVRdWVzdGlvbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgfX1hc3luYyB1cGRhdGVkKG5lKXtzdXBlci51cGRhdGVkKG5lKSxbInVybCIsImZpbGUiLCJiYXNlNjQiLCJ0ZXh0Q29udGVudCIsImNvbnRlbnRUeXBlIiwibGFuZ3VhZ2UiLCJtaW1lVHlwZSIsImZpbGVuYW1lIl0uc29tZShIZT0+bmUuaGFzKEhlKSkmJmF3YWl0IHRoaXMucmVzb2x2ZUNvbnRlbnQoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXZva2VPYmplY3RVcmwoKX1hc3luYyByZXNvbHZlQ29udGVudCgpe3RoaXMuZXJyb3I9IiIsdGhpcy5yZXZva2VPYmplY3RVcmwoKSx0aGlzLnJlc29sdmVkVHlwZT10aGlzLmRldGVjdFR5cGUoKTt0cnl7aWYodGhpcy51cmwpe2lmKHRoaXMucmVzb2x2ZWRTcmM9dGhpcy51cmwsdGhpcy5yZXNvbHZlZFR5cGU9PT0iY29kZSJ8fHRoaXMucmVzb2x2ZWRUeXBlPT09InRleHQiKWlmKHRoaXMudGV4dENvbnRlbnQpdGhpcy5yZXNvbHZlZFRleHQ9dGhpcy50ZXh0Q29udGVudDtlbHNle3RoaXMubG9hZGluZz0hMDtsZXQgbmU9YXdhaXQgZmV0Y2godGhpcy51cmwpO3RoaXMucmVzb2x2ZWRUZXh0PWF3YWl0IG5lLnRleHQoKSx0aGlzLmxvYWRpbmc9ITF9fWVsc2UgaWYodGhpcy5maWxlKXRoaXMub2JqZWN0VXJsPVVSTC5jcmVhdGVPYmplY3RVUkwodGhpcy5maWxlKSx0aGlzLnJlc29sdmVkU3JjPXRoaXMub2JqZWN0VXJsLCh0aGlzLnJlc29sdmVkVHlwZT09PSJjb2RlInx8dGhpcy5yZXNvbHZlZFR5cGU9PT0idGV4dCIpJiYodGhpcy5sb2FkaW5nPSEwLHRoaXMucmVzb2x2ZWRUZXh0PWF3YWl0IHRoaXMuZmlsZS50ZXh0KCksdGhpcy5sb2FkaW5nPSExKTtlbHNlIGlmKHRoaXMuYmFzZTY0KXtsZXQgbmU9dGhpcy5taW1lVHlwZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7dGhpcy5yZXNvbHZlZFNyYz1gZGF0YToke25lfTtiYXNlNjQsJHt0aGlzLmJhc2U2NH1gfWVsc2UgdGhpcy50ZXh0Q29udGVudCYmKHRoaXMucmVzb2x2ZWRUZXh0PXRoaXMudGV4dENvbnRlbnQpfWNhdGNoe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGNvbnRlbnQiLHRoaXMubG9hZGluZz0hMX10aGlzLnJlc29sdmVkTGFuZz10aGlzLnJlc29sdmVMYW5ndWFnZSgpfWRldGVjdFR5cGUoKXtpZih0aGlzLmNvbnRlbnRUeXBlKXJldHVybiB0aGlzLmNvbnRlbnRUeXBlO2xldCBuZT10aGlzLm1pbWVUeXBlfHx0aGlzLmZpbGU/LnR5cGV8fCIiO2lmKG5lKXtpZihuZT09PSJhcHBsaWNhdGlvbi9wZGYiKXJldHVybiJwZGYiO2ZvcihsZXRbemUsSGVdb2YgT2JqZWN0LmVudHJpZXMoZkZhKSlpZihuZS5zdGFydHNXaXRoKHplKSlyZXR1cm4gSGU7aWYobmUuc3RhcnRzV2l0aCgidGV4dC8iKSlyZXR1cm4idGV4dCJ9bGV0IGVlPXRoaXMuZ2V0RXh0ZW5zaW9uKCk7cmV0dXJuIGVlJiZaZWFbZWVdP1plYVtlZV06dGhpcy50ZXh0Q29udGVudD90aGlzLmxhbmd1YWdlPyJjb2RlIjoidGV4dCI6InVua25vd24ifWdldEV4dGVuc2lvbigpe2xldCBuZT10aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fCIiO2lmKG5lKXtsZXQgZWU9bmUuc3BsaXQoIi4iKTtpZihlZS5sZW5ndGg+MSlyZXR1cm4gZWUucG9wKCkudG9Mb3dlckNhc2UoKX1pZih0aGlzLnVybCl0cnl7bGV0IHplPW5ldyBVUkwodGhpcy51cmwsImh0dHBzOi8vcGxhY2Vob2xkZXIuY29tIikucGF0aG5hbWUuc3BsaXQoIi4iKTtpZih6ZS5sZW5ndGg+MSlyZXR1cm4gemUucG9wKCkudG9Mb3dlckNhc2UoKX1jYXRjaHt9cmV0dXJuIiJ9Z2V0RmlsZW5hbWVGcm9tVXJsKCl7aWYoIXRoaXMudXJsKXJldHVybiIiO3RyeXtyZXR1cm4gbmV3IFVSTCh0aGlzLnVybCwiaHR0cHM6Ly9wbGFjZWhvbGRlci5jb20iKS5wYXRobmFtZS5zcGxpdCgiLyIpLnBvcCgpfHwiIn1jYXRjaHtyZXR1cm4iIn19cmVzb2x2ZUxhbmd1YWdlKCl7aWYodGhpcy5sYW5ndWFnZSlyZXR1cm4gdGhpcy5sYW5ndWFnZTtsZXQgbmU9dGhpcy5nZXRFeHRlbnNpb24oKTtyZXR1cm4gaEZhW25lXXx8InRleHQifXJldm9rZU9iamVjdFVybCgpe3RoaXMub2JqZWN0VXJsJiYoVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLm9iamVjdFVybCksdGhpcy5vYmplY3RVcmw9IiIpfXN0YXRpY3tnYShhLHIpfX07cmV0dXJuIGxlPWF9KSgpfSk7dmFyIEplYT11KCgpPT57WGVhKCl9KTt2YXIgJHcscTd0PXUoKCk9Pnskdz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYW52YXNQb29sIil9c3RhdGljIHBvb2w9W107c3RhdGljIG1heFBvb2xTaXplPTIwO3N0YXRpYyBNSU5fQ0FOVkFTX1NJWkU9MjU2O3N0YXRpYyBNQVhfQ0FOVkFTX1NJWkU9NDA5NjtzdGF0aWMgYWNxdWlyZShlLHIpe2xldCBhPXRoaXMucG9vbC5maW5kKGw9PiFsLmluVXNlJiZsLmNhbnZhcy53aWR0aD49ZSYmbC5jYW52YXMuaGVpZ2h0Pj1yJiZsLmNhbnZhcy53aWR0aDw9ZSoxLjUmJmwuY2FudmFzLmhlaWdodDw9cioxLjUpO2lmKGEpcmV0dXJuIGEuaW5Vc2U9ITAsYS5sYXN0VXNlZD1EYXRlLm5vdygpLGEuY2FudmFzLndpZHRoPWUsYS5jYW52YXMuaGVpZ2h0PXIsYS5jdHguY2xlYXJSZWN0KDAsMCxlLHIpLGE7aWYodGhpcy5wb29sLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxjPWwuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMCxkZXN5bmNocm9uaXplZDohMH0pO2wud2lkdGg9TWF0aC5taW4oTWF0aC5tYXgoZSx0aGlzLk1JTl9DQU5WQVNfU0laRSksdGhpcy5NQVhfQ0FOVkFTX1NJWkUpLGwuaGVpZ2h0PU1hdGgubWluKE1hdGgubWF4KHIsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKTtsZXQgZD17Y2FudmFzOmwsY3R4OmMsaW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX07cmV0dXJuIHRoaXMucG9vbC5wdXNoKGQpLGR9bGV0IHM9dGhpcy5wb29sLmZpbHRlcihsPT4hbC5pblVzZSkuc29ydCgobCxjKT0+bC5sYXN0VXNlZC1jLmxhc3RVc2VkKVswXTtpZihzKXJldHVybiBzLmNhbnZhcy53aWR0aD1lLHMuY2FudmFzLmhlaWdodD1yLHMuY3R4LmNsZWFyUmVjdCgwLDAsZSxyKSxzLmluVXNlPSEwLHMubGFzdFVzZWQ9RGF0ZS5ub3coKSxzO2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG89bi5nZXRDb250ZXh0KCIyZCIpO3JldHVybiBuLndpZHRoPWUsbi5oZWlnaHQ9cix7Y2FudmFzOm4sY3R4Om8saW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX19c3RhdGljIHJlbGVhc2UoZSl7dGhpcy5wb29sLmluY2x1ZGVzKGUpJiYoZS5pblVzZT0hMSxlLmN0eC5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCkpfXN0YXRpYyByZWxlYXNlQWxsKCl7Zm9yKGxldCBlIG9mIHRoaXMucG9vbCllLmluVXNlPSExLGUuY3R4LmNsZWFyUmVjdCgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KX1zdGF0aWMgZGVzdHJveSgpe2ZvcihsZXQgZSBvZiB0aGlzLnBvb2wpZS5jYW52YXMud2lkdGg9MCxlLmNhbnZhcy5oZWlnaHQ9MDt0aGlzLnBvb2w9W119c3RhdGljIGdldFN0YXRzKCl7cmV0dXJue3Bvb2xTaXplOnRoaXMucG9vbC5sZW5ndGgsbWF4UG9vbFNpemU6dGhpcy5tYXhQb29sU2l6ZSxpblVzZTp0aGlzLnBvb2wuZmlsdGVyKGU9PmUuaW5Vc2UpLmxlbmd0aCxhdmFpbGFibGU6dGhpcy5wb29sLmZpbHRlcihlPT4hZS5pblVzZSkubGVuZ3RofX1zdGF0aWMgYWRqdXN0UG9vbFNpemUoZSl7aWYoZTx0aGlzLnBvb2wubGVuZ3RoKXtsZXQgcj10aGlzLnBvb2wubGVuZ3RoLWUsYT10aGlzLnBvb2wuZmlsdGVyKHM9PiFzLmluVXNlKS5zbGljZSgwLHIpO2ZvcihsZXQgcyBvZiBhKXtsZXQgbj10aGlzLnBvb2wuaW5kZXhPZihzKTtuPi0xJiZ0aGlzLnBvb2wuc3BsaWNlKG4sMSl9fXRoaXMubWF4UG9vbFNpemU9ZX19fSk7ZnVuY3Rpb24gZ0ZhKHQsZSl7bGV0IHI7cmV0dXJuIGkoZnVuY3Rpb24oLi4ucyl7bGV0IG49aSgoKT0+e2NsZWFyVGltZW91dChyKSx0KC4uLnMpfSwibGF0ZXIiKTtjbGVhclRpbWVvdXQocikscj13aW5kb3cuc2V0VGltZW91dChuLGUpfSwiZXhlY3V0ZWRGdW5jdGlvbiIpfWZ1bmN0aW9uIGJGYSh0LGUpe2xldCByO3JldHVybiguLi5hKT0+e3J8fCh0KC4uLmEpLHI9ITAsc2V0VGltZW91dCgoKT0+cj0hMSxlKSl9fWZ1bmN0aW9uIFY3dCh0KXtpZih0PT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IGU9MTAyNCxyPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxhPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2coZSkpO3JldHVybiBNYXRoLnJvdW5kKHQvTWF0aC5wb3coZSxhKSoxMDApLzEwMCsiICIrclthXX1mdW5jdGlvbiB4RmEodCxlPTApe2xldCByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHIudG9wPj0tZSYmci5sZWZ0Pj0tZSYmci5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpK2UmJnIucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKStlfXZhciBBdyxqN3Q9dSgoKT0+e2koZ0ZhLCJkZWJvdW5jZSIpO2koYkZhLCJ0aHJvdHRsZSIpO2koVjd0LCJmb3JtYXRGaWxlU2l6ZSIpO2koeEZhLCJpc0luVmlld3BvcnQiKTtBdz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQZXJmb3JtYW5jZU1vbml0b3IiKX1zdGF0aWMgbWFya3M9bmV3IE1hcDtzdGF0aWMgbWVhc3VyZXM9W107c3RhdGljIG1hcmsoZSl7dGhpcy5tYXJrcy5zZXQoZSxwZXJmb3JtYW5jZS5ub3coKSl9c3RhdGljIG1lYXN1cmUoZSxyKXtsZXQgYT10aGlzLm1hcmtzLmdldChyKTtpZihhKXtsZXQgcz1wZXJmb3JtYW5jZS5ub3coKS1hO3JldHVybiB0aGlzLm1lYXN1cmVzLnB1c2goe25hbWU6ZSxkdXJhdGlvbjpzfSksdGhpcy5tYXJrcy5kZWxldGUociksc31yZXR1cm4gMH1zdGF0aWMgZ2V0UmVwb3J0KCl7bGV0IGU9e21lYXN1cmVzOlsuLi50aGlzLm1lYXN1cmVzXSxhdmVyYWdlczp7fX0scj1uZXcgTWFwO2ZvcihsZXQgYSBvZiB0aGlzLm1lYXN1cmVzKXIuaGFzKGEubmFtZSl8fHIuc2V0KGEubmFtZSxbXSksci5nZXQoYS5uYW1lKS5wdXNoKGEuZHVyYXRpb24pO2ZvcihsZXRbYSxzXW9mIHIpZS5hdmVyYWdlc1thXT1zLnJlZHVjZSgobixvKT0+bitvLDApL3MubGVuZ3RoO3JldHVybiBlfXN0YXRpYyBjbGVhcigpe3RoaXMubWFya3MuY2xlYXIoKSx0aGlzLm1lYXN1cmVzPVtdfX19KTt2YXIgZXRhPXUoKCk9PntxN3QoKTtONmUoKTtqN3QoKX0pO3ZhciB0dGE9dSgoKT0+e0g3dCgpfSk7dmFyIExvLHkzPXUoKCk9Pnt2ZSgpO0xvPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBoZWlnaHQ6IDI2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4yNCkiKX07CgogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGUgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciB7CiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAudGlsZS1vdmVybGF5IHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAudGlsZS1jb250ZW50IHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIHotaW5kZXg6IDIwOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSBzcGFuIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtaW5mby1iYXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlIC8gMC45NSkiLCJoc2woMjE1IDIwJSAxMiUgLyAwLjk1KSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA2cHg7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgICB6LWluZGV4OiAyNTsKICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIH0KCiAgICAuaW5mby1sYWJlbCB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmluZm8tc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgIH0KCiAgICAuaW5mby1kZXRhaWwgewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcsCiAgICAudGlsZS1lcnJvciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcgewogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTklKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICB9CgogICAgLnRpbGUtZXJyb3IgewogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzIlIDk4JSkiLCJoc2woMCA2MiUgMjAlKSIpfTsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3MiUgNDAlKSIsImhzbCgwIDcwJSA2OCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIH0KCiAgICAudGlsZS1zcGlubmVyIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmctdGV4dCwKICAgIC50aWxlLWVycm9yLXRleHQgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAvKiBTaXplIHZhcmlhbnRzICovCiAgICA6aG9zdChbc2l6ZT0ic21hbGwiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDE1MHB4OwogICAgICBoZWlnaHQ6IDE5NXB4OwogICAgfQoKICAgIDpob3N0KFtzaXplPSJsYXJnZSJdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWR0aDogMjUwcHg7CiAgICAgIGhlaWdodDogMzI1cHg7CiAgICB9CgogICAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgICA6aG9zdChbZ3JpZC1tb2RlXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICB9CiAgYF19KTt2YXIgVnJlLE1kLHQxLGJmPXUoKCk9Pnt2ZSgpO3kzKCk7S3IoKTtWcmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LE1kPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSx0MT0oKCk9PntsZXQgdD15ZSxlLHI9W10sYT1bXSxzLG49W10sbz1bXSxsLGM9W10sZD1bXSxmLHA9W10saD1bXSxtLHY9W10sYj1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxCYXNlIil9c3RhdGlje2xldCB5PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHRbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxzPVtQKHt0eXBlOkJvb2xlYW59KV0sbD1bUCh7dHlwZTpCb29sZWFufSldLGY9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sbT1bUCh7dHlwZTpTdHJpbmd9KV0sVnJlKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2xpY2thYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJjbGlja2FibGUiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5jbGlja2FibGUsImdldCIpLHNldDppKChrLE0pPT57ay5jbGlja2FibGU9TX0sInNldCIpfSxtZXRhZGF0YTp5fSxyLGEpLFZyZSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImxvYWRpbmciaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoayxNKT0+e2subG9hZGluZz1NfSwic2V0Iil9LG1ldGFkYXRhOnl9LG4sbyksVnJlKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImVycm9yImluIGssImhhcyIpLGdldDppKGs9PmsuZXJyb3IsImdldCIpLHNldDppKChrLE0pPT57ay5lcnJvcj1NfSwic2V0Iil9LG1ldGFkYXRhOnl9LGMsZCksVnJlKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4ic2l6ZSJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLnNpemUsImdldCIpLHNldDppKChrLE0pPT57ay5zaXplPU19LCJzZXQiKX0sbWV0YWRhdGE6eX0scCxoKSxWcmUodGhpcyxudWxsLG0se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4ibGFiZWwiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5sYWJlbCwiZ2V0Iiksc2V0OmkoKGssTSk9PntrLmxhYmVsPU19LCJzZXQiKX0sbWV0YWRhdGE6eX0sdixiKSx5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnl9KX1zdGF0aWMgc3R5bGVzPUxvOyNlPU1kKHRoaXMsciwhMCk7Z2V0IGNsaWNrYWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCBjbGlja2FibGUoeSl7dGhpcy4jZT15fSN0PShNZCh0aGlzLGEpLE1kKHRoaXMsbiwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvYWRpbmcoeSl7dGhpcy4jdD15fSNyPShNZCh0aGlzLG8pLE1kKHRoaXMsYywhMSkpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNyfXNldCBlcnJvcih5KXt0aGlzLiNyPXl9I2E9KE1kKHRoaXMsZCksTWQodGhpcyxwLCJkZWZhdWx0IikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNpemUoeSl7dGhpcy4jYT15fSNpPShNZCh0aGlzLGgpLE1kKHRoaXMsdiwiIikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNpfXNldCBsYWJlbCh5KXt0aGlzLiNpPXl9b2JzZXJ2ZXI9TWQodGhpcyxiKTtfdmlzaWJsZT0hMTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3Zpc2libGV9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idGlsZS1jb250YWluZXIgJHt0aGlzLmNsaWNrYWJsZT8iY2xpY2thYmxlIjoiIn0gJHt0aGlzLmxvYWRpbmc/ImxvYWRpbmciOiIifSAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaWxlQ2xpY2t9CiAgICAgICAgQG1vdXNlZW50ZXI9JHt0aGlzLm9uVGlsZU1vdXNlRW50ZXJ9CiAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLm9uVGlsZU1vdXNlTGVhdmV9CiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMub25UaWxlTW91c2VNb3ZlfQogICAgICA+CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZy10ZXh0Ij5Mb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZXJyb3IiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1lcnJvci10ZXh0Ij5GYWlsZWQgdG8gbG9hZDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHshdGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj90aGlzLnJlbmRlclRpbGVDb250ZW50KCk6IiJ9CgogICAgICAgICR7dGhpcy5yZW5kZXJCb3R0b21CYXIoKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiIifWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5vYnNlcnZlciYmKHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMub2JzZXJ2ZXI9dm9pZCAwKX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoeT0+e2ZvcihsZXQgayBvZiB5KXtsZXQgTT10aGlzLl92aXNpYmxlO3RoaXMuX3Zpc2libGU9ay5pc0ludGVyc2VjdGluZyx0aGlzLl92aXNpYmxlJiYhTSYmdGhpcy5vbkJlY2FtZVZpc2libGUoKX19LHtyb290Om51bGwscm9vdE1hcmdpbjoiMjAwcHgiLHRocmVzaG9sZDouMDF9KSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcyl9b25CZWNhbWVWaXNpYmxlKCl7fW9uVGlsZU1vdXNlRW50ZXIoKXt9b25UaWxlTW91c2VMZWF2ZSgpe31vblRpbGVNb3VzZU1vdmUoeSl7fWhhbmRsZVRpbGVDbGljaygpe3RoaXMuY2xpY2thYmxlJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57fX19fSkoKX0pO3ZhciBydGE9dSgoKT0+e2JmKCk7eTMoKX0pO3ZhciBhdGEsaXRhPXUoKCk9Pnt2ZSgpO2F0YT1yZWAKICAucHJldmlldy1zdGFjayB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHBhZGRpbmc6IDhweCA4cHggMjhweCA4cHg7CiAgfQoKICAucHJldmlldy1zdGFjay5ub24tYTQgewogICAgcGFkZGluZzogMTJweCAxMnB4IDI4cHggMTJweDsKICB9CgogIC5wcmV2aWV3LWNhbnZhcyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgbWF4LWhlaWdodDogMTAwJTsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgb2JqZWN0LWZpdDogY29udGFpbjsKICAgIGltYWdlLXJlbmRlcmluZzogYXV0bzsKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgfQoKICAubm9uLWE0IC5wcmV2aWV3LWNhbnZhcyB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDI0JSkiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAvKiBHcmlkIG9wdGltaXphdGlvbnMgKi8KICA6aG9zdChbZ3JpZC1tb2RlXSkgLnByZXZpZXctY2FudmFzIHsKICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgfQpgfSk7dmFyIHN0YSxudGE9dSgoKT0+e3ZlKCk7c3RhPWkoKCk9PntsZXQgdD1bImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIsImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiJdLGU9aShyPT57bGV0IGE9W107Zm9yKGxldCBzPTA7czxyO3MrKyl7bGV0IG49dFtzJXQubGVuZ3RoXTthLnB1c2god2AKICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9IiR7bn0iCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICBncmlkLW1vZGUKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7bz0+e2NvbnNvbGUubG9nKCJQREYgVGlsZSBjbGlja2VkOiIsby5kZXRhaWwpLGFsZXJ0KGBQREYgY2xpY2tlZDogJHtvLmRldGFpbC5wYWdlQ291bnR9IHBhZ2VzYCl9fQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgYCl9cmV0dXJuIGF9LCJnZW5lcmF0ZUdyaWRJdGVtcyIpO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNWY1ZjUiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAucHJldmlldy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2luZ2xlIFBERiBUaWxlPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+RGlmZmVyZW50IFNpemVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5TbWFsbDo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkRlZmF1bHQ6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkxhcmdlOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5XaXRoIExhYmVsPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgIGxhYmVsPSJSZXNlYXJjaCBQYXBlci5wZGYiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPk5vbi1DbGlja2FibGU8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJmYWxzZSIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+R3JpZCAtIDIwIFBERnMgd2l0aCBMYXp5IExvYWRpbmc8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAke2UoMjApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vIil9KTt2YXIgeGYscjEsb3RhLGx0YT11KCgpPT57dmUoKTtiZigpO3kzKCk7TjZlKCk7cTd0KCk7ajd0KCk7aXRhKCk7bnRhKCk7eGY9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHIxPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxvdGE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXRodW1ibmFpbC1wZGYiKV0sZSxyPVtdLGEscz10MSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbFBkZiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6TnVtYmVyfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1bUCh7dHlwZTpCb29sZWFufSldLE89W2llKCldLHhmKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJwZGZVcmwiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wZGZVcmwsImdldCIpLHNldDppKCh6LEEpPT57ei5wZGZVcmw9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHhmKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZXZpZXdQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50UHJldmlld1BhZ2UiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jdXJyZW50UHJldmlld1BhZ2UsImdldCIpLHNldDppKCh6LEEpPT57ei5jdXJyZW50UHJldmlld1BhZ2U9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLHhmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJwYWdlQ291bnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wYWdlQ291bnQsImdldCIpLHNldDppKCh6LEEpPT57ei5wYWdlQ291bnQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLHhmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuZGVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InJlbmRlcmVkImluIHosImhhcyIpLGdldDppKHo9PnoucmVuZGVyZWQsImdldCIpLHNldDppKCh6LEEpPT57ei5yZW5kZXJlZD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZykseGYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc0hvdmVyaW5nImluIHosImhhcyIpLGdldDppKHo9PnouaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmlzSG92ZXJpbmc9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLHhmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNBNEZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNBNEZvcm1hdCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzQTRGb3JtYXQsImdldCIpLHNldDppKCh6LEEpPT57ei5pc0E0Rm9ybWF0PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSx4Zih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJmaWxlU2l6ZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouZmlsZVNpemU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLHhmKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89c3RhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPVsuLi5MbyxhdGFdOyNlPXIxKHRoaXMsbywiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoQyl7dGhpcy4jZT1DfSN0PShyMSh0aGlzLGwpLHIxKHRoaXMsZCwxKSk7Z2V0IGN1cnJlbnRQcmV2aWV3UGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBjdXJyZW50UHJldmlld1BhZ2UoQyl7dGhpcy4jdD1DfSNyPShyMSh0aGlzLGYpLHIxKHRoaXMsaCwwKSk7Z2V0IHBhZ2VDb3VudCgpe3JldHVybiB0aGlzLiNyfXNldCBwYWdlQ291bnQoQyl7dGhpcy4jcj1DfSNhPShyMSh0aGlzLG0pLHIxKHRoaXMsYiwhMSkpO2dldCByZW5kZXJlZCgpe3JldHVybiB0aGlzLiNhfXNldCByZW5kZXJlZChDKXt0aGlzLiNhPUN9I2k9KHIxKHRoaXMsZykscjEodGhpcyxrLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIb3ZlcmluZyhDKXt0aGlzLiNpPUN9I3M9KHIxKHRoaXMsTSkscjEodGhpcyxfLCEwKSk7Z2V0IGlzQTRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNBNEZvcm1hdChDKXt0aGlzLiNzPUN9I249KHIxKHRoaXMsUykscjEodGhpcyxMLDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZmlsZVNpemUoQyl7dGhpcy4jbj1DfXJlbmRlclBhZ2VzVGFzaz0ocjEodGhpcyxFKSxudWxsKTtyZW5kZXJQYWdlc1F1ZXVlZD0hMTtwZGZEb2N1bWVudDtjYW52YXNlcz1bXTtyZXNpemVPYnNlcnZlcjtzdGFja0VsZW1lbnQ9bnVsbDtsb2FkZWRQZGZVcmw9bnVsbDtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXN0YWNrICR7dGhpcy5pc0E0Rm9ybWF0PyIiOiJub24tYTQifSI+CiAgICAgICAgPGNhbnZhcwogICAgICAgICAgY2xhc3M9InByZXZpZXctY2FudmFzIgogICAgICAgICAgZGF0YS1wYWdlPSIke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfSIKICAgICAgICA+PC9jYW52YXM+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBQREY8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLnBhZ2VDb3VudCYmIXRoaXMubGFiZWw/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLnBhZ2VDb3VudD4xJiZ0aGlzLmlzSG92ZXJpbmc/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9LyR7dGhpcy5wYWdlQ291bnR9PC9zcGFuPmA6dGhpcy5wYWdlQ291bnQ+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLnBhZ2VDb3VudH0gcGc8L3NwYW4+YDoiIn0KICAgICAgICAke3RoaXMuZmlsZVNpemU+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHtWN3QodGhpcy5maWxlU2l6ZSl9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57cGRmVXJsOnRoaXMucGRmVXJsLHBhZ2VDb3VudDp0aGlzLnBhZ2VDb3VudH19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMucmVuZGVyZWQmJnRoaXMucGRmVXJsJiZ0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlIT09MSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfW9uVGlsZU1vdXNlTW92ZShDKXtpZighdGhpcy5pc0hvdmVyaW5nfHx0aGlzLnBhZ2VDb3VudDw9MSlyZXR1cm47bGV0IHo9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBPUMuY2xpZW50WC16LmxlZnQsJD16LndpZHRoLEY9TWF0aC5tYXgoMCxNYXRoLm1pbigxLEEvJCkpLFk9TWF0aC5jZWlsKEYqdGhpcy5wYWdlQ291bnQpfHwxO1khPT10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPVksdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLHRoaXMuc2V0dXBSZXNpemVPYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9YXN5bmMgbG9hZEFuZFJlbmRlclByZXZpZXcoKXtpZighKHRoaXMucmVuZGVyZWR8fHRoaXMubG9hZGluZykpe3RoaXMubG9hZGluZz0hMCx0aGlzLmVycm9yPSExLEF3Lm1hcmsoYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO3RyeXt0aGlzLnBkZkRvY3VtZW50PWF3YWl0IFNkLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksdGhpcy5wYWdlQ291bnQ9dGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcyx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xO3RyeXtsZXQgej1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERvd25sb2FkSW5mbygpO3RoaXMuZmlsZVNpemU9ei5sZW5ndGh9Y2F0Y2h7fXRoaXMubG9hZGVkUGRmVXJsPXRoaXMucGRmVXJsLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLGF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpLHRoaXMucmVuZGVyZWQ9ITA7bGV0IEM9QXcubWVhc3VyZShgcHJldmlldy1yZW5kZXItJHt0aGlzLnBkZlVybH1gLGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTtjb25zb2xlLmxvZyhgUERGIHRpbGUgcmVuZGVyZWQgaW4gJHtDfW1zYCl9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgUERGIHRpbGU6IixDKSx0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX19fXNjaGVkdWxlUmVuZGVyUGFnZXMoKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudD90aGlzLnJlbmRlclBhZ2VzVGFzaz8odGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMCx0aGlzLnJlbmRlclBhZ2VzVGFzayk6KHRoaXMucmVuZGVyUGFnZXNUYXNrPShhc3luYygpPT57dHJ5e2F3YWl0IHRoaXMucGVyZm9ybVJlbmRlclBhZ2VzKCl9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmRlciBQREYgdGlsZSBwYWdlczoiLEMpfX0pKCkuZmluYWxseSgoKT0+e3RoaXMucmVuZGVyUGFnZXNUYXNrPW51bGwsdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZCYmKHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfSksdGhpcy5yZW5kZXJQYWdlc1Rhc2spOlByb21pc2UucmVzb2x2ZSgpfWFzeW5jIHBlcmZvcm1SZW5kZXJQYWdlcygpe2lmKCF0aGlzLnBkZkRvY3VtZW50KXJldHVybjthd2FpdCBuZXcgUHJvbWlzZSgkPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoJCkpO2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctY2FudmFzIik7aWYoIUMpcmV0dXJuO3RoaXMuY2xlYXJDYW52YXNlcygpLHRoaXMuY2FjaGVFbGVtZW50cygpO2xldHthdmFpbGFibGVXaWR0aDp6LGF2YWlsYWJsZUhlaWdodDpBfT10aGlzLmdldEF2YWlsYWJsZVNpemUoKTt0cnl7bGV0ICQ9dGhpcy5jdXJyZW50UHJldmlld1BhZ2UsRj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoJCksWT1GLmdldFZpZXdwb3J0KHtzY2FsZToxfSksRz1ZLmhlaWdodC9ZLndpZHRoLFo9MS40MTQsZGU9LjcwNyxEPTEuMjk0LFE9Ljc3MyxmZT0uMDUsVD1NYXRoLmFicyhHLVopPFoqZmUsVz1NYXRoLmFicyhHLWRlKTxkZSpmZSxwZT1NYXRoLmFicyhHLUQpPEQqZmUsbWU9TWF0aC5hYnMoRy1RKTxRKmZlO3RoaXMuaXNBNEZvcm1hdD1UfHxXfHxwZXx8bWU7bGV0IHE9dGhpcy5pc0E0Rm9ybWF0P3o6ei0yNCxIPXRoaXMuaXNBNEZvcm1hdD9BOkEtMjQsVT1xPjA/cS9ZLndpZHRoOjAsaj1IPjA/SC9ZLmhlaWdodDowLGFlPU1hdGgubWluKFV8fC41LGp8fFV8fC41KSxYPU1hdGgubWluKGFlKjIsMyk7aWYoIU51bWJlci5pc0Zpbml0ZShYKXx8WDw9MCl7Ri5jbGVhbnVwPy4oKTtyZXR1cm59bGV0IEo9Ri5nZXRWaWV3cG9ydCh7c2NhbGU6WH0pLHhlPSR3LmFjcXVpcmUoSi53aWR0aCxKLmhlaWdodCk7dGhpcy5jYW52YXNlcy5wdXNoKHhlKTtsZXQgSz17Y2FudmFzQ29udGV4dDp4ZS5jdHgsdmlld3BvcnQ6Sn07YXdhaXQgRi5yZW5kZXIoSykucHJvbWlzZSxDLndpZHRoPUoud2lkdGgsQy5oZWlnaHQ9Si5oZWlnaHQ7bGV0IFY9cSxsZT1KLmhlaWdodC9KLndpZHRoKnE7aWYobGU+SCl7bGV0IGVlPUgsemU9Si53aWR0aC9KLmhlaWdodCpIO0Muc3R5bGUud2lkdGg9YCR7emV9cHhgLEMuc3R5bGUuaGVpZ2h0PWAke2VlfXB4YH1lbHNlIEMuc3R5bGUud2lkdGg9YCR7Vn1weGAsQy5zdHlsZS5oZWlnaHQ9YCR7bGV9cHhgO2xldCBuZT1DLmdldENvbnRleHQoIjJkIik7bmUmJihuZS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsbmUuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixuZS5kcmF3SW1hZ2UoeGUuY2FudmFzLDAsMCkpLEYuY2xlYW51cCgpfWNhdGNoKCQpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byByZW5kZXIgcGFnZSAke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfTpgLCQpfX1jbGVhckNhbnZhc2VzKCl7Zm9yKGxldCBDIG9mIHRoaXMuY2FudmFzZXMpJHcucmVsZWFzZShDKTt0aGlzLmNhbnZhc2VzPVtdfWNsZWFudXAoKXt0aGlzLmNsZWFyQ2FudmFzZXMoKSx0aGlzLnBkZkRvY3VtZW50JiYoU2QucmVsZWFzZURvY3VtZW50KHRoaXMubG9hZGVkUGRmVXJsPz90aGlzLnBkZlVybCksdGhpcy5wZGZEb2N1bWVudD1udWxsKSx0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMucGFnZUNvdW50PTAsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5pc0E0Rm9ybWF0PSEwLHRoaXMuc3RhY2tFbGVtZW50PW51bGwsdGhpcy5sb2FkZWRQZGZVcmw9bnVsbCx0aGlzLnJlbmRlcmVkPSExLHRoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSExfWFzeW5jIHVwZGF0ZWQoQyl7aWYoc3VwZXIudXBkYXRlZChDKSxDLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgej1DLmdldCgicGRmVXJsIik7eiYmU2QucmVsZWFzZURvY3VtZW50KHopLHRoaXMuY2xlYW51cCgpLHRoaXMucmVuZGVyZWQ9ITEsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MTtsZXQgQT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO0EudG9wPHdpbmRvdy5pbm5lckhlaWdodCYmQS5ib3R0b20+MCYmdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpfUMuaGFzKCJjdXJyZW50UHJldmlld1BhZ2UiKSYmdGhpcy5yZW5kZXJlZCYmYXdhaXQgdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCl9Z2V0Q29udGV4dE1lbnVJdGVtcygpe2xldCBDPVtdO3JldHVybiB0aGlzLmNsaWNrYWJsZSYmKEMucHVzaCh7bmFtZToiVmlldyBQREYiLGljb25OYW1lOiJsdWNpZGU6RXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGlsZS1jbGljayIse2RldGFpbDp0aGlzLmdldFRpbGVDbGlja0RldGFpbCgpLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJhY3Rpb24iKX0pLEMucHVzaCh7ZGl2aWRlcjohMH0pKSxDLnB1c2goe25hbWU6Ik9wZW4gUERGIGluIE5ldyBUYWIiLGljb25OYW1lOiJsdWNpZGU6RXh0ZXJuYWxMaW5rIixhY3Rpb246aShhc3luYygpPT57d2luZG93Lm9wZW4odGhpcy5wZGZVcmwsIl9ibGFuayIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQ29weSBQREYgVVJMIixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnBkZlVybCl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTt6LmhyZWY9dGhpcy5wZGZVcmwsei5kb3dubG9hZD10aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIix6LmNsaWNrKCl9LCJhY3Rpb24iKX0pLHRoaXMucGFnZUNvdW50PjAmJkMucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6YCR7dGhpcy5wYWdlQ291bnR9IHBhZ2Uke3RoaXMucGFnZUNvdW50PjE/InMiOiIifWAsaWNvbk5hbWU6Imx1Y2lkZTpGaWxlVGV4dCIsZGlzYWJsZWQ6ITAsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpfSksQ31jYWNoZUVsZW1lbnRzKCl7dGhpcy5zdGFja0VsZW1lbnR8fCh0aGlzLnN0YWNrRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LXN0YWNrIikpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLnJlbmRlcmVkJiZ0aGlzLnBkZkRvY3VtZW50JiYhdGhpcy5sb2FkaW5nJiZ0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKSl9Z2V0QXZhaWxhYmxlU2l6ZSgpe2lmKHRoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKSwhdGhpcy5zdGFja0VsZW1lbnQpcmV0dXJue2F2YWlsYWJsZVdpZHRoOjIwMCxhdmFpbGFibGVIZWlnaHQ6MjYwfTtsZXQgQz10aGlzLnN0YWNrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx6PU1hdGgubWF4KEMud2lkdGgsMCl8fDIwMCxBPU1hdGgubWF4KEMuaGVpZ2h0LDApfHwyNjA7cmV0dXJue2F2YWlsYWJsZVdpZHRoOnosYXZhaWxhYmxlSGVpZ2h0OkF9fXN0YXRpY3tyMShhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgY3RhPXUoKCk9PntsdGEoKX0pO3ZhciBkdGEsdXRhPXUoKCk9Pnt2ZSgpO2R0YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbWFnZSBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzgwMC82MDAiCiAgICAgICAgICBhbHQ9IkxhbmRzY2FwZSBwaG90byIKICAgICAgICAgIGxhYmVsPSJsYW5kc2NhcGUuanBnIgogICAgICAgICAgQHRpbGUtY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiSW1hZ2UgY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNDAwIgogICAgICAgICAgYWx0PSJTcXVhcmUgcGhvdG8iCiAgICAgICAgICBsYWJlbD0ic3F1YXJlLnBuZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8zMDAvOTAwIgogICAgICAgICAgYWx0PSJQb3J0cmFpdCBwaG90byIKICAgICAgICAgIGxhYmVsPSJwb3J0cmFpdC53ZWJwIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwIgogICAgICAgICAgYWx0PSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICAgIGFsdD0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0LmpwZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEyMDAvODAwIgogICAgICAgICAgYWx0PSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVycm9yIFN0YXRlIChicm9rZW4gVVJMKTwvaDM+CiAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgIHNyYz0iaHR0cHM6Ly9pbnZhbGlkLXVybC10aGF0LWRvZXMtbm90LWV4aXN0LmV4YW1wbGUvaW1hZ2UucG5nIgogICAgICAgIGFsdD0iQnJva2VuIgogICAgICAgIGxhYmVsPSJicm9rZW4ucG5nIgogICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgRXcsJGMscHRhLGZ0YT11KCgpPT57dmUoKTtiZigpO3kzKCk7dXRhKCk7RXc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LCRjPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxwdGE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXRodW1ibmFpbC1pbWFnZSIpXSxlLHI9W10sYSxzPXQxLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsSW1hZ2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtpZSgpXSx2PVtpZSgpXSx5PVtpZSgpXSxFdyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3JjImluIFMsImhhcyIpLGdldDppKFM9PlMuc3JjLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc3JjPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxFdyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iYWx0ImluIFMsImhhcyIpLGdldDppKFM9PlMuYWx0LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuYWx0PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sZCxmKSxFdyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTG9hZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpbWFnZUxvYWRlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmltYWdlTG9hZGVkLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuaW1hZ2VMb2FkZWQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEV3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaW1hZ2VXaWR0aCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmltYWdlV2lkdGgsImdldCIpLHNldDppKChTLE8pPT57Uy5pbWFnZVdpZHRoPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxFdyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpbWFnZUhlaWdodCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmltYWdlSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuaW1hZ2VIZWlnaHQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEV3KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89ZHRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5MbyxyZWAKICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCgjZThlOGU4IDAlIDI1JSwgd2hpdGUgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiLCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoaHNsKDIxNSAyMCUgMTglKSAwJSAyNSUsIGhzbCgyMTUgMjAlIDE0JSkgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiKX07CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGVkIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgIGBdOyNlPSRjKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoXyl7dGhpcy4jZT1ffSN0PSgkYyh0aGlzLGwpLCRjKHRoaXMsZCwiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KF8pe3RoaXMuI3Q9X30jcj0oJGModGhpcyxmKSwkYyh0aGlzLGgsITEpKTtnZXQgaW1hZ2VMb2FkZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaW1hZ2VMb2FkZWQoXyl7dGhpcy4jcj1ffSNhPSgkYyh0aGlzLG0pLCRjKHRoaXMsYiwwKSk7Z2V0IGltYWdlV2lkdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaW1hZ2VXaWR0aChfKXt0aGlzLiNhPV99I2k9KCRjKHRoaXMsZyksJGModGhpcyxrLDApKTtnZXQgaW1hZ2VIZWlnaHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaW1hZ2VIZWlnaHQoXyl7dGhpcy4jaT1ffWhhc1N0YXJ0ZWRMb2FkaW5nPSgkYyh0aGlzLE0pLCExKTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIj4KICAgICAgICAke3RoaXMuaGFzU3RhcnRlZExvYWRpbmc/d2AKICAgICAgICAgIDxpbWcKICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pbWFnZUxvYWRlZD8ibG9hZGVkIjoibG9hZGluZyJ9IgogICAgICAgICAgICBzcmM9IiR7dGhpcy5zcmN9IgogICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICBAbG9hZD0ke3RoaXMuaGFuZGxlSW1hZ2VMb2FkfQogICAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUltYWdlRXJyb3J9CiAgICAgICAgICAvPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBJbWFnZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiEodGhpcy5pbWFnZVdpZHRoPjApPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5pbWFnZVdpZHRoPjAmJnRoaXMuaW1hZ2VIZWlnaHQ+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmltYWdlV2lkdGh9IMOXICR7dGhpcy5pbWFnZUhlaWdodH08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMsYWx0OnRoaXMuYWx0LHdpZHRoOnRoaXMuaW1hZ2VXaWR0aCxoZWlnaHQ6dGhpcy5pbWFnZUhlaWdodH19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzU3RhcnRlZExvYWRpbmcmJnRoaXMuc3JjJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfWhhbmRsZUltYWdlTG9hZChfKXtsZXQgUz1fLnRhcmdldDt0aGlzLmltYWdlV2lkdGg9Uy5uYXR1cmFsV2lkdGgsdGhpcy5pbWFnZUhlaWdodD1TLm5hdHVyYWxIZWlnaHQsdGhpcy5pbWFnZUxvYWRlZD0hMCx0aGlzLmxvYWRpbmc9ITF9aGFuZGxlSW1hZ2VFcnJvcigpe3RoaXMuZXJyb3I9ITAsdGhpcy5sb2FkaW5nPSExfWFzeW5jIHVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKSxfLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5pbWFnZUxvYWRlZD0hMSx0aGlzLmxvYWRpbmc9ITApfXN0YXRpY3skYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgaHRhPXUoKCk9PntmdGEoKX0pO3ZhciBtdGEsZ3RhPXUoKCk9Pnt2ZSgpO210YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5BdWRpbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMS5tcDMiCiAgICAgICAgICBAdGlsZS1jbGljaz0ke3Q9PmNvbnNvbGUubG9nKCJBdWRpbyBjbGlja2VkOiIsdC5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0yLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMiIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMi5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTMubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAzIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMy5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkRlZmF1bHQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iTGFyZ2UiCiAgICAgICAgICBsYWJlbD0ibGFyZ2UubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgdmYsYTEsYnRhLHh0YT11KCgpPT57dmUoKTtiZigpO3kzKCk7Z3RhKCk7dmY9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGExPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxidGE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXRodW1ibmFpbC1hdWRpbyIpXSxlLHI9W10sYSxzPXQxLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdO3ZhciBCPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsQXVkaW8iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtpZSgpXSx5PVtpZSgpXSxOPVtpZSgpXSxPPVtpZSgpXSx2Zih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3JjImluIHosImhhcyIpLGdldDppKHo9Pnouc3JjLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc3JjPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSx2Zih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0aXRsZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRpdGxlLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGl0bGU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLHZmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJhcnRpc3QiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5hcnRpc3QsImdldCIpLHNldDppKCh6LEEpPT57ei5hcnRpc3Q9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLHZmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImR1cmF0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZHVyYXRpb24sImdldCIpLHNldDppKCh6LEEpPT57ei5kdXJhdGlvbj1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksdmYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+IndhdmVmb3JtRGF0YSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LndhdmVmb3JtRGF0YSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LndhdmVmb3JtRGF0YT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksdmYodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybVJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ3YXZlZm9ybVJlYWR5ImluIHosImhhcyIpLGdldDppKHo9Pnoud2F2ZWZvcm1SZWFkeSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LndhdmVmb3JtUmVhZHk9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxfLFMpLHZmKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcmV2aWV3UGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNQcmV2aWV3UGxheWluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzUHJldmlld1BsYXlpbmcsImdldCIpLHNldDppKCh6LEEpPT57ei5pc1ByZXZpZXdQbGF5aW5nPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSx2ZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPW10YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uTG8scmVgCiAgICAgIC5hdWRpby1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDI1MCA0MCUgOTYlKSwgaHNsKDI4MCAzMCUgOTQlKSkiLCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDMwJSAxNiUpLCBoc2woMjgwIDI1JSAxNCUpKSIpfTsKICAgICAgfQoKICAgICAgLm11c2ljLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyNTAgNjAlIDY1JSkiLCJoc2woMjUwIDYwJSA3MCUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLmF1ZGlvLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyNTAgMjAlIDM1JSkiLCJoc2woMjUwIDIwJSA4MCUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmF1ZGlvLWFydGlzdCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjUwIDE1JSA1MCUpIiwiaHNsKDI1MCAxNSUgNjUlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IC0xMnB4OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDE4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wbGF5LW92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICB9CgogICAgICAucGxheS1jaXJjbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CiAgICBgXTsjZT1hMSh0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKEMpe3RoaXMuI2U9Q30jdD0oYTEodGhpcyxsKSxhMSh0aGlzLGQsIiIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGl0bGUoQyl7dGhpcy4jdD1DfSNyPShhMSh0aGlzLGYpLGExKHRoaXMsaCwiIikpO2dldCBhcnRpc3QoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYXJ0aXN0KEMpe3RoaXMuI3I9Q30jYT0oYTEodGhpcyxtKSxhMSh0aGlzLGIsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkdXJhdGlvbihDKXt0aGlzLiNhPUN9I2k9KGExKHRoaXMsZyksYTEodGhpcyxrLFtdKSk7Z2V0IHdhdmVmb3JtRGF0YSgpe3JldHVybiB0aGlzLiNpfXNldCB3YXZlZm9ybURhdGEoQyl7dGhpcy4jaT1DfSNzPShhMSh0aGlzLE0pLGExKHRoaXMsXywhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdhdmVmb3JtUmVhZHkoQyl7dGhpcy4jcz1DfSNuPShhMSh0aGlzLFMpLGExKHRoaXMsTCwhMSkpO2dldCBpc1ByZXZpZXdQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzUHJldmlld1BsYXlpbmcoQyl7dGhpcy4jbj1DfWF1ZGlvRWxlbWVudD0oYTEodGhpcyxFKSxudWxsKTtwcmV2aWV3VGltZW91dD1udWxsO2hhc0xvYWRlZFdhdmVmb3JtPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImF1ZGlvLWNvbnRlbnQiPgogICAgICAgIDxkZWVzLWljb24gY2xhc3M9Im11c2ljLWljb24iIGljb249Imx1Y2lkZTpNdXNpYyI+PC9kZWVzLWljb24+CgogICAgICAgICR7dGhpcy50aXRsZT93YDxkaXYgY2xhc3M9ImF1ZGlvLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+YDoiIn0KICAgICAgICAke3RoaXMuYXJ0aXN0P3dgPGRpdiBjbGFzcz0iYXVkaW8tYXJ0aXN0Ij4ke3RoaXMuYXJ0aXN0fTwvZGl2PmA6IiJ9CgogICAgICAgICR7dGhpcy53YXZlZm9ybVJlYWR5P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YXZlZm9ybS1jb250YWluZXIiPgogICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYXktY2lyY2xlIj4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVhZHBob25lcyI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5QbGF5IEF1ZGlvPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuZHVyYXRpb24/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyx0aXRsZTp0aGlzLnRpdGxlLGFydGlzdDp0aGlzLmFydGlzdCxkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNMb2FkZWRXYXZlZm9ybSYmdGhpcy5zcmMmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMubG9hZEF1ZGlvTWV0YSgpKX1hc3luYyBsb2FkQXVkaW9NZXRhKCl7dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgQz1uZXcgQXVkaW87Qy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixDLnByZWxvYWQ9Im1ldGFkYXRhIixhd2FpdCBuZXcgUHJvbWlzZSgoeixBKT0+e0MuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1DLmR1cmF0aW9uLHooKX0se29uY2U6ITB9KSxDLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+QShuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGF1ZGlvIikpLHtvbmNlOiEwfSksQy5zcmM9dGhpcy5zcmN9KSxhd2FpdCB0aGlzLmxvYWRXYXZlZm9ybSgpLHRoaXMubG9hZGluZz0hMX1jYXRjaHt0aGlzLmxvYWRpbmc9ITF9fWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXtsZXQgej1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksQT1uZXcgQXVkaW9Db250ZXh0LEY9KGF3YWl0IEEuZGVjb2RlQXVkaW9EYXRhKHopKS5nZXRDaGFubmVsRGF0YSgwKSxZPTgwLEc9TWF0aC5mbG9vcihGLmxlbmd0aC9ZKSxaPVtdO2ZvcihsZXQgRD0wO0Q8WTtEKyspe2xldCBRPTA7Zm9yKGxldCBmZT0wO2ZlPEc7ZmUrKylRKz1NYXRoLmFicyhGW0QqRytmZV0pO1oucHVzaChRL0cpfWxldCBkZT1NYXRoLm1heCguLi5aKTt0aGlzLndhdmVmb3JtRGF0YT1aLm1hcChEPT5kZT4wP0QvZGU6MCksdGhpcy53YXZlZm9ybVJlYWR5PSEwLGF3YWl0IEEuY2xvc2UoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCl9Y2F0Y2h7dGhpcy53YXZlZm9ybVJlYWR5PSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy53YXZlZm9ybVJlYWR5KXJldHVybjtsZXQgQz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIik7aWYoIUMpcmV0dXJuO2xldCB6PUMucGFyZW50RWxlbWVudCxBPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLCQ9ei5jbGllbnRXaWR0aCxGPXouY2xpZW50SGVpZ2h0O0Mud2lkdGg9JCpBLEMuaGVpZ2h0PUYqQTtsZXQgWT1DLmdldENvbnRleHQoIjJkIik7aWYoIVkpcmV0dXJuO1kuc2NhbGUoQSxBKSxZLmNsZWFyUmVjdCgwLDAsJCxGKTtsZXQgRz10aGlzLndhdmVmb3JtRGF0YS5sZW5ndGg7aWYoRz09PTApcmV0dXJuO2xldCBaPSQvRyxEPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aGVtZS1kYXJrIil8fHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8iaHNsKDI1MCA1MCUgNjAlKSI6ImhzbCgyNTAgNTAlIDcwJSkiO1kuZmlsbFN0eWxlPUQ7Zm9yKGxldCBRPTA7UTxHO1ErKyl7bGV0IGZlPXRoaXMud2F2ZWZvcm1EYXRhW1FdLFQ9TWF0aC5tYXgoMixmZSooRi00KSksVz1RKloscGU9KEYtVCkvMjtZLmZpbGxSZWN0KFcrLjUscGUsWi0xLFQpfX1hc3luYyB1cGRhdGVkKEMpe3N1cGVyLnVwZGF0ZWQoQyksQy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMud2F2ZWZvcm1SZWFkeT0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5sb2FkQXVkaW9NZXRhKCkpLEMuaGFzKCJ3YXZlZm9ybVJlYWR5IikmJnRoaXMud2F2ZWZvcm1SZWFkeSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5kcmF3V2F2ZWZvcm0oKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucHJldmlld1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnByZXZpZXdUaW1lb3V0KSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpfWZvcm1hdFRpbWUoQyl7aWYoIWlzRmluaXRlKEMpfHxDPDApcmV0dXJuIjA6MDAiO2xldCB6PU1hdGguZmxvb3IoQy82MCksQT1NYXRoLmZsb29yKEMlNjApO3JldHVybmAke3p9OiR7QS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3thMShhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgdnRhPXUoKCk9Pnt4dGEoKX0pO3ZhciB5dGEsd3RhPXUoKCk9Pnt2ZSgpO3l0YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5WaWRlbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImJ1bm55Lm1wNCIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7dD0+Y29uc29sZS5sb2coIlZpZGVvIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92aWUubXA0IgogICAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzMwMCIKICAgICAgICAgIGxhYmVsPSJtb3ZpZS5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iYW5vdGhlci12aWRlby5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9InNtYWxsLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+V2l0aCBQb3N0ZXIgSW1hZ2U8L2gzPgogICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICBsYWJlbD0icG9zdGVyLXZpZGVvLm1wNCIKICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIEl3LEFjLGt0YSxTdGE9dSgoKT0+e3ZlKCk7YmYoKTt5MygpO3d0YSgpO0l3PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxBYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sa3RhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy10aHVtYm5haWwtdmlkZW8iKV0sZSxyPVtdLGEscz10MSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbFZpZGVvIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1baWUoKV0sdj1baWUoKV0seT1baWUoKV0sSXcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNyYyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNyYywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNyYz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksSXcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3N0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InBvc3RlciJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnBvc3RlciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnBvc3Rlcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksSXcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZHVyYXRpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmR1cmF0aW9uPU99LCJzZXQiKX0sbWV0YWRhdGE6X30saCxtKSxJdyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbENhcHR1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0aHVtYm5haWxDYXB0dXJlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRodW1ibmFpbENhcHR1cmVkLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MudGh1bWJuYWlsQ2FwdHVyZWQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEl3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNIb3ZlcmluZyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzSG92ZXJpbmcsImdldCIpLHNldDppKChTLE8pPT57Uy5pc0hvdmVyaW5nPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxJdyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPXl0YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uTG8scmVgCiAgICAgIC52aWRlby13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogIzAwMDsKICAgICAgfQoKICAgICAgLnZpZGVvLXdyYXBwZXIgdmlkZW8gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnZpZGVvLXdyYXBwZXIgY2FudmFzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5wb3N0ZXItaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKCiAgICAgIC5wbGF5LW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IDE1OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAucGxheS1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAucGxheS1vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmlkZW8taG92ZXItcHJldmlldyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICB6LWluZGV4OiA1OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC52aWRlby1ob3Zlci1wcmV2aWV3LmFjdGl2ZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07I2U9QWModGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhfKXt0aGlzLiNlPV99I3Q9KEFjKHRoaXMsbCksQWModGhpcyxkLCIiKSk7Z2V0IHBvc3Rlcigpe3JldHVybiB0aGlzLiN0fXNldCBwb3N0ZXIoXyl7dGhpcy4jdD1ffSNyPShBYyh0aGlzLGYpLEFjKHRoaXMsaCwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGR1cmF0aW9uKF8pe3RoaXMuI3I9X30jYT0oQWModGhpcyxtKSxBYyh0aGlzLGIsITEpKTtnZXQgdGh1bWJuYWlsQ2FwdHVyZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGh1bWJuYWlsQ2FwdHVyZWQoXyl7dGhpcy4jYT1ffSNpPShBYyh0aGlzLGcpLEFjKHRoaXMsaywhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzSG92ZXJpbmcoXyl7dGhpcy4jaT1ffXRodW1ibmFpbENhbnZhcz0oQWModGhpcyxNKSxudWxsKTtob3ZlclZpZGVvPW51bGw7aGFzU3RhcnRlZExvYWRpbmc9ITE7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idmlkZW8td3JhcHBlciI+CiAgICAgICAgJHt0aGlzLnBvc3Rlcj93YAogICAgICAgICAgPGltZyBjbGFzcz0icG9zdGVyLWltYWdlIiBzcmM9IiR7dGhpcy5wb3N0ZXJ9IiBhbHQ9IiIgLz4KICAgICAgICBgOnRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ/d2AKICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgYDp3YAogICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogIzAwMDsiPjwvZGl2PgogICAgICAgIGB9CgogICAgICAgICR7dGhpcy5pc0hvdmVyaW5nJiZ0aGlzLnNyYz93YAogICAgICAgICAgPHZpZGVvCiAgICAgICAgICAgIGNsYXNzPSJ2aWRlby1ob3Zlci1wcmV2aWV3ICR7dGhpcy5pc0hvdmVyaW5nPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgLnNyYz0ke3RoaXMuc3JjfQogICAgICAgICAgICBtdXRlZAogICAgICAgICAgICBwbGF5c2lubGluZQogICAgICAgICAgICBAbG9hZGVkZGF0YT0ke3RoaXMuaGFuZGxlSG92ZXJWaWRlb0xvYWRlZH0KICAgICAgICAgID48L3ZpZGVvPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBWaWRlbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLmR1cmF0aW9uPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMscG9zdGVyOnRoaXMucG9zdGVyLGR1cmF0aW9uOnRoaXMuZHVyYXRpb259fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKX1hc3luYyBjYXB0dXJlRmlyc3RGcmFtZSgpe2lmKHRoaXMucG9zdGVyKXt0aGlzLmxvYWREdXJhdGlvbigpO3JldHVybn10aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7Xy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixfLm11dGVkPSEwLF8ucHJlbG9hZD0ibWV0YWRhdGEiLGF3YWl0IG5ldyBQcm9taXNlKChTLE8pPT57Xy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Xy5kdXJhdGlvbixfLmN1cnJlbnRUaW1lPS4xLF8uYWRkRXZlbnRMaXN0ZW5lcigic2Vla2VkIiwoKT0+e2xldCBMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0wud2lkdGg9Xy52aWRlb1dpZHRoLEwuaGVpZ2h0PV8udmlkZW9IZWlnaHQ7bGV0IEU9TC5nZXRDb250ZXh0KCIyZCIpO0UmJihFLmRyYXdJbWFnZShfLDAsMCksdGhpcy50aHVtYm5haWxDYW52YXM9TCx0aGlzLnRodW1ibmFpbENhcHR1cmVkPSEwKSxfLnNyYz0iIixfLmxvYWQoKSxTKCl9LHtvbmNlOiEwfSl9LHtvbmNlOiEwfSksXy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pk8obmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCB2aWRlbyIpKSx7b25jZTohMH0pLF8uc3JjPXRoaXMuc3JjfSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKX1jYXRjaHt0aGlzLmxvYWRpbmc9ITEsdGhpcy5sb2FkRHVyYXRpb24oKX19bG9hZER1cmF0aW9uKCl7bGV0IF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtfLnByZWxvYWQ9Im1ldGFkYXRhIixfLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Xy5kdXJhdGlvbixfLnNyYz0iIixfLmxvYWQoKX0pLF8uc3JjPXRoaXMuc3JjfWNvcHlUaHVtYm5haWxUb0NhbnZhcygpe2lmKCF0aGlzLnRodW1ibmFpbENhbnZhcylyZXR1cm47bGV0IF89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8td3JhcHBlciBjYW52YXMiKTtpZighXylyZXR1cm47Xy53aWR0aD10aGlzLnRodW1ibmFpbENhbnZhcy53aWR0aCxfLmhlaWdodD10aGlzLnRodW1ibmFpbENhbnZhcy5oZWlnaHQ7bGV0IFM9Xy5nZXRDb250ZXh0KCIyZCIpO1MmJlMuZHJhd0ltYWdlKHRoaXMudGh1bWJuYWlsQ2FudmFzLDAsMCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuaG92ZXJWaWRlbz1udWxsfWhhbmRsZUhvdmVyVmlkZW9Mb2FkZWQoXyl7dGhpcy5ob3ZlclZpZGVvPV8udGFyZ2V0LHRoaXMuaG92ZXJWaWRlby5wbGF5KCkuY2F0Y2goKCk9Pnt9KX1hc3luYyB1cGRhdGVkKF8pe3N1cGVyLnVwZGF0ZWQoXyksXy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITEsdGhpcy5kdXJhdGlvbj0wLHRoaXMuY2FwdHVyZUZpcnN0RnJhbWUoKSksXy5oYXMoInRodW1ibmFpbENhcHR1cmVkIikmJnRoaXMudGh1bWJuYWlsQ2FwdHVyZWQmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY29weVRodW1ibmFpbFRvQ2FudmFzKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhvdmVyVmlkZW8mJih0aGlzLmhvdmVyVmlkZW8ucGF1c2UoKSx0aGlzLmhvdmVyVmlkZW8uc3JjPSIiLHRoaXMuaG92ZXJWaWRlbz1udWxsKSx0aGlzLnRodW1ibmFpbENhbnZhcz1udWxsfWZvcm1hdFRpbWUoXyl7aWYoIWlzRmluaXRlKF8pfHxfPDApcmV0dXJuIjA6MDAiO2xldCBTPU1hdGguZmxvb3IoXy82MCksTz1NYXRoLmZsb29yKF8lNjApO3JldHVybmAke1N9OiR7Ty50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3tBYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgTXRhPXUoKCk9PntTdGEoKX0pO3ZhciBDdGEsenRhPXUoKCk9Pnt2ZSgpO0N0YT1pKCgpPT57bGV0IHQ9YGltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHsKICBwcml2YXRlIGl0ZW1zOiBzdHJpbmdbXSA9IFtdOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgXCR7dGhpcy5pdGVtcy5tYXAoaXRlbSA9PiBodG1sXGAKICAgICAgICAgIDxzcGFuPlwke2l0ZW19PC9zcGFuPgogICAgICAgIFxgKX0KICAgICAgPC9kaXY+CiAgICBcYDsKICB9Cn1gLGU9YE1lZXRpbmcgTm90ZXMgLSBRNCBQbGFubmluZwpEYXRlOiBKYW51YXJ5IDE1LCAyMDI2CkF0dGVuZGVlczogQWxpY2UsIEJvYiwgQ2hhcmxpZQoKS2V5IERlY2lzaW9uczoKMS4gTGF1bmNoIG5ldyBmZWF0dXJlIGJ5IE1hcmNoCjIuIEhpcmUgMiBtb3JlIGVuZ2luZWVycwozLiBNaWdyYXRlIHRvIG5ldyBDSS9DRCBwaXBlbGluZQo0LiBVcGRhdGUgZGVzaWduIHN5c3RlbSB0byB2MwoKQWN0aW9uIEl0ZW1zOgotIEFsaWNlOiBEcmFmdCBQUkQgYnkgbmV4dCB3ZWVrCi0gQm9iOiBTZXQgdXAgaW50ZXJ2aWV3IHBpcGVsaW5lCi0gQ2hhcmxpZTogRXZhbHVhdGUgSmVua2lucyB2cyBHaXRIdWIgQWN0aW9uc2A7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob3RlIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0iY29tcG9uZW50LnRzIgogICAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgICAgICBsYWJlbD0iY29tcG9uZW50LnRzIgogICAgICAgICAgICBAdGlsZS1jbGljaz0ke2E9PmNvbnNvbGUubG9nKCJOb3RlIGNsaWNrZWQ6IixhLmRldGFpbCl9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJNZWV0aW5nIE5vdGVzIgogICAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICAgIGxhYmVsPSJtZWV0aW5nLW5vdGVzLnR4dCIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9InBhY2thZ2UuanNvbiIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtgewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMy4zOC4wIiwKICAiZGVzY3JpcHRpb24iOiAiRGVzaWduIGNvbXBvbmVudCBjYXRhbG9nIiwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjAiLAogICAgImxpdCI6ICJeMy4xLjAiCiAgfSwKICAic2NyaXB0cyI6IHsKICAgICJidWlsZCI6ICJ0c2J1aWxkIiwKICAgICJ0ZXN0IjogInRzdGVzdCIKICB9Cn1gfQogICAgICAgICAgICBsYW5ndWFnZT0ianNvbiIKICAgICAgICAgICAgbGFiZWw9InBhY2thZ2UuanNvbiIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHRpdGxlPSJzbWFsbC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHt0fQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJzbWFsbC50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImRlZmF1bHQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7dH0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0iZGVmYXVsdC50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIHRpdGxlPSJsYXJnZS50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHt0fQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJsYXJnZS50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aG91dCBUaXRsZTwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgIGxhYmVsPSJ1bnRpdGxlZC50eHQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtbyIpfSk7dmFyIGpyZSx3MyxfdGEsVHRhPXUoKCk9Pnt2ZSgpO2JmKCk7eTMoKTt6dGEoKTtqcmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHczPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxfdGE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXRodW1ibmFpbC1ub3RlIildLGUscj1bXSxhLHM9dDEsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxOb3RlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1baWUoKV0sanJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+InRpdGxlImluIE0sImhhcyIpLGdldDppKE09Pk0udGl0bGUsImdldCIpLHNldDppKChNLE4pPT57TS50aXRsZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksanJlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iY29udGVudCJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmNvbnRlbnQsImdldCIpLHNldDppKChNLE4pPT57TS5jb250ZW50PU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxqcmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ibGFuZ3VhZ2UiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5sYW5ndWFnZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmxhbmd1YWdlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxqcmUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJpc0hvdmVyaW5nImluIE0sImhhcyIpLGdldDppKE09Pk0uaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmlzSG92ZXJpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGpyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPUN0YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uTG8scmVgCiAgICAgIC5ub3RlLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDYwIDUlIDk2JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm5vdGUtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubm90ZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwJSAyMCUpIiwiaHNsKDIxNSAyMCUgMjAlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLm5vdGUtYm9keSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAwIDE0cHggMTRweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm5vdGUtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDEwJSA0MCUpIiwiaHNsKDIxNSAxMCUgMzUlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAubm90ZS1mYWRlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAgIHRyYW5zcGFyZW50LAogICAgICAgICAgJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woNjAgNSUgOTYlKSIpfQogICAgICAgICk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ub3RlLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHdpZHRoOiAzNHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgODUlKSIsImhzbCgwIDUwJSA4MCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgfQoKICAgICAgLmxpbmUtbnVtYmVyIHsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICBsaW5lLWhlaWdodDogMTVweDsgLyogbWF0Y2hlcyAxMHB4ICogMS41IGxpbmUtaGVpZ2h0ICovCiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDEwJSA3NSUpIiwiaHNsKDIxNSAxMCUgNzAlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7CiAgICAgIH0KCiAgICBgXTsjZT13Myh0aGlzLG8sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShrKXt0aGlzLiNlPWt9I3Q9KHczKHRoaXMsbCksdzModGhpcyxkLCIiKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29udGVudChrKXt0aGlzLiN0PWt9I3I9KHczKHRoaXMsZiksdzModGhpcyxoLCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhbmd1YWdlKGspe3RoaXMuI3I9a30jYT0odzModGhpcyxtKSx3Myh0aGlzLGIsITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0hvdmVyaW5nKGspe3RoaXMuI2E9a31ub3RlQm9keUVsZW1lbnQ9KHczKHRoaXMsZyksbnVsbCk7cmVuZGVyVGlsZUNvbnRlbnQoKXtsZXQgaz10aGlzLmNvbnRlbnQuc3BsaXQoYApgKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibm90ZS1jb250ZW50Ij4KICAgICAgICAke3RoaXMudGl0bGU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1ib2R5Ij4KICAgICAgICAgIDxwcmUgY2xhc3M9Im5vdGUtdGV4dCI+JHtrLmpvaW4oYApgKX08L3ByZT4KICAgICAgICAgICR7dGhpcy5pc0hvdmVyaW5nPyIiOndgPGRpdiBjbGFzcz0ibm90ZS1mYWRlIj48L2Rpdj5gfQogICAgICAgIDwvZGl2PgoKICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVUZXh0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk9wZW4gTm90ZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7bGV0IGs9dGhpcy5jb250ZW50LnNwbGl0KGAKYCk7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLmxhbmd1YWdlJiYhay5sZW5ndGg/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmxhbmd1YWdlP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMubGFuZ3VhZ2UudG9VcHBlckNhc2UoKX08L3NwYW4+YDoiIn0KICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmay5sZW5ndGg+MTI/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPkxpbmUgJHt0aGlzLmdldFZpc2libGVMaW5lUmFuZ2Uoay5sZW5ndGgpfTwvc3Bhbj5gOndgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke2subGVuZ3RofSBsaW5lczwvc3Bhbj5gfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3RpdGxlOnRoaXMudGl0bGUsY29udGVudDp0aGlzLmNvbnRlbnQsbGFuZ3VhZ2U6dGhpcy5sYW5ndWFnZX19b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMCx0aGlzLm5vdGVCb2R5RWxlbWVudHx8KHRoaXMubm90ZUJvZHlFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm5vdGUtYm9keSIpKX1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMubm90ZUJvZHlFbGVtZW50JiYodGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wPTApfW9uVGlsZU1vdXNlTW92ZShrKXtpZighdGhpcy5pc0hvdmVyaW5nfHwhdGhpcy5ub3RlQm9keUVsZW1lbnR8fHRoaXMuY29udGVudC5zcGxpdChgCmApLmxlbmd0aDw9MTIpcmV0dXJuO2xldCBOPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXz1rLmNsaWVudFgtTi5sZWZ0LFM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLF8vTi53aWR0aCkpLE89dGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMubm90ZUJvZHlFbGVtZW50LmNsaWVudEhlaWdodDt0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3A9UypPfWdldFZpc2libGVMaW5lUmFuZ2Uoayl7aWYoIXRoaXMubm90ZUJvZHlFbGVtZW50KXJldHVybmAxXHUyMDEzMTIgb2YgJHtrfWA7bGV0IE09MTUsTj1NYXRoLmZsb29yKHRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcC9NKSsxLF89TWF0aC5mbG9vcih0aGlzLm5vdGVCb2R5RWxlbWVudC5jbGllbnRIZWlnaHQvTSksUz1NYXRoLm1pbihOK18tMSxrKTtyZXR1cm5gJHtOfVx1MjAxMyR7U30gb2YgJHtrfWB9c3RhdGlje3czKGEscil9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBMdGE9dSgoKT0+e1R0YSgpfSk7dmFyIER0YSwkdGE9dSgoKT0+e3ZlKCk7RHRhPWkoKCk9PntsZXQgdD1be3R5cGU6ImltYWdlIixuYW1lOiJzdW5zZXQuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0xIn0se3R5cGU6ImltYWdlIixuYW1lOiJtb3VudGFpbi5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIifSx7dHlwZToiaW1hZ2UiLG5hbWU6Im9jZWFuLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiZm9yZXN0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NCJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiY2l0eS5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTUifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImRlc2VydC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTYifV07cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Gb2xkZXIgVGlsZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iUGhvdG9zIgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgICBsYWJlbD0iNiBwaG90b3MiCiAgICAgICAgICAgIEB0aWxlLWNsaWNrPSR7bj0+Y29uc29sZS5sb2coIkZvbGRlciBjbGlja2VkOiIsbi5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0ibXktcHJvamVjdCIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJub3RlIixuYW1lOiJSRUFETUUubWQifSx7dHlwZToibm90ZSIsbmFtZToicGFja2FnZS5qc29uIn0se3R5cGU6ImZvbGRlciIsbmFtZToic3JjIn0se3R5cGU6ImZvbGRlciIsbmFtZToidGVzdCJ9LHt0eXBlOiJub3RlIixuYW1lOiJ0c2NvbmZpZy5qc29uIn0se3R5cGU6InBkZiIsbmFtZToiZG9jcy5wZGYifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImxvZ28ucG5nIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDAvMTAwP3JhbmRvbT0xMCJ9XX0KICAgICAgICAgICAgbGFiZWw9IlByb2plY3QgZmlsZXMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJNZWRpYSBBc3NldHMiCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToidmlkZW8iLG5hbWU6ImludHJvLm1wNCJ9LHt0eXBlOiJhdWRpbyIsbmFtZToiYmFja2dyb3VuZC5tcDMifSx7dHlwZToiaW1hZ2UiLG5hbWU6InRodW1ibmFpbC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIwIn0se3R5cGU6InBkZiIsbmFtZToic3Rvcnlib2FyZC5wZGYifV19CiAgICAgICAgICAgIGxhYmVsPSJNaXhlZCBtZWRpYSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5FZGdlIENhc2VzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IkVtcHR5IEZvbGRlciIKICAgICAgICAgICAgLml0ZW1zPSR7W119CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJTaW5nbGUgSXRlbSIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJwZGYiLG5hbWU6InJlcG9ydC5wZGYifV19CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgbmFtZT0iU21hbGwiCiAgICAgICAgICAgIC5pdGVtcz0ke3R9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJEZWZhdWx0IgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIG5hbWU9IkxhcmdlIgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vIil9KTt2YXIgVTd0LFVyZSxBdGEsRXRhLEl0YT11KCgpPT57dmUoKTtiZigpO3kzKCk7JHRhKCk7VTd0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxVcmU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEF0YT17cGRmOiJsdWNpZGU6RmlsZVRleHQiLGltYWdlOiJsdWNpZGU6SW1hZ2UiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLG5vdGU6Imx1Y2lkZTpGaWxlQ29kZSIsZm9sZGVyOiJsdWNpZGU6Rm9sZGVyIix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LEV0YT0oKCk9PntsZXQgdD1bdWUoImRlZXMtdGh1bWJuYWlsLWZvbGRlciIpXSxlLHI9W10sYSxzPXQxLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsRm9sZGVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7YXR0cmlidXRlOiExfSldLFU3dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+Im5hbWUiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5uYW1lLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20ubmFtZT12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksVTd0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+Iml0ZW1zImluIG0sImhhcyIpLGdldDppKG09Pm0uaXRlbXMsImdldCIpLHNldDppKChtLHYpPT57bS5pdGVtcz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksVTd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89RHRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5MbyxyZWAKICAgICAgLmZvbGRlci1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQwIDMwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZm9sZGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTRweCA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDQwIDgwJSA1MCUpIiwiaHNsKDQwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZm9sZGVyLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAyMCUgMjAlKSIsImhzbCgyMTUgMTYlIDgwJSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWdyaWQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMWZyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNSAyMCUgOTQlKSIsImhzbCgyMTUgMjAlIDE4JSkiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNjAlKSIsImhzbCgyMTUgMTYlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwtZW1wdHkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE1JSA5NiUpIiwiaHNsKDIxNSAyMCUgMTYlKSIpfTsKICAgICAgfQoKICAgIGBdOyNlPVVyZSh0aGlzLG8sIiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoaCl7dGhpcy4jZT1ofSN0PShVcmUodGhpcyxsKSxVcmUodGhpcyxkLFtdKSk7Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGl0ZW1zKGgpe3RoaXMuI3Q9aH1yZW5kZXJUaWxlQ29udGVudCgpe2xldCBoPXRoaXMuaXRlbXMuc2xpY2UoMCw0KSxtPTQtaC5sZW5ndGg7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1jb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItaGVhZGVyIj4KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImZvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6Rm9sZGVyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1uYW1lIj4ke3RoaXMubmFtZXx8IlVudGl0bGVkIEZvbGRlciJ9PC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAke2gubWFwKHY9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY2VsbCI+CiAgICAgICAgICAgICAgJHt2LnRodW1ibmFpbFNyYz93YAogICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7di50aHVtYm5haWxTcmN9IiBhbHQ9IiR7di5uYW1lfSIgLz4KICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249IiR7QXRhW3YudHlwZV18fEF0YS51bmtub3dufSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOm19KS5tYXAoKCk9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY2VsbCBncmlkLWNlbGwtZW1wdHkiPjwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGb2xkZXJPcGVuIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk9wZW4gRm9sZGVyPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuaXRlbXMubGVuZ3RoPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLml0ZW1zLmxlbmd0aH0gaXRlbSR7dGhpcy5pdGVtcy5sZW5ndGghPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57bmFtZTp0aGlzLm5hbWUsaXRlbUNvdW50OnRoaXMuaXRlbXMubGVuZ3RoLGl0ZW1zOnRoaXMuaXRlbXN9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxVcmUodGhpcyxmKX1zdGF0aWN7VXJlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBQdGE9dSgoKT0+e0l0YSgpfSk7dmFyIE50YT11KCgpPT57SWVhKCk7UmVhKCk7cWVhKCk7SmVhKCk7ZXRhKCk7dHRhKCk7cnRhKCk7Y3RhKCk7aHRhKCk7dnRhKCk7TXRhKCk7THRhKCk7UHRhKCl9KTt2YXIgT3RhPXUoKCk9PntzcygpfSk7dmFyIFJ0YT11KCgpPT57UTQoKX0pO3ZhciBGdGEsQnRhPXUoKCk9Pnt2ZSgpO0Z0YT1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAucmVmMSB7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJyZWYxIj48L2Rpdj4KICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke2AKICAgICAgKipUaGlzIGlzIGEgbG9uZ2VyIG1hcmtkb3duIHRleHQgdGhhdCAgY2FuIGJlIHVzZWQgdGhlIHdyaXRlKiogIAogICAgICBhIGxvbmdlciBkZXNjcmlwdGlvbiBhYm91dCB3aGF0cyBnb2luZyBvbiB0aGUgYXBwICAKICAKICAgICAgKipUaGlzIGlzIGEgc3ViaGVhZGVyKioKICAgICAgYW5kIGFub3RoZXIgdGV4dAogICAgCiAgICBgfT48L2RlZXMtc3BlZWNoYnViYmxlPgogIGAsImRlbW9GdW5jIil9KTt2YXIgUHcsRWMsSHRhLHF0YT11KCgpPT57ZmMoKTt2bigpO0J0YSgpO3ZlKCk7bmMoKTtsdCgpO1B3PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxFYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sSHRhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zcGVlY2hidWJibGUiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1NwZWVjaGJ1YmJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOlN0cmluZ30pXSxQdyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZmZlZEVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InJlZmZlZEVsZW1lbnQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5yZWZmZWRFbGVtZW50LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MucmVmZmVkRWxlbWVudD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksUHcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0ZXh0ImluIFMsImhhcyIpLGdldDppKFM9PlMudGV4dCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnRleHQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLFB3KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4id2F2ZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLndhdmUsImdldCIpLHNldDppKChTLE8pPT57Uy53YXZlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30saCxtKSxQdyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hbmlmZXN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Im1hbmlmZXN0ZWQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5tYW5pZmVzdGVkLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MubWFuaWZlc3RlZD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUHcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN0YXR1cyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN0YXR1cywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssTSksUHcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxOPWE9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1GdGE7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coXyxTKXtsZXQgTz1hd2FpdCB5bi5jcmVhdGVBbmRTaG93KHtibHVyOiExfSksTD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXNwZWVjaGJ1YmJsZSIpO3JldHVybiBMLndpbmRvd0xheWVyPU8sTC5yZWZmZWRFbGVtZW50PV8sTC50ZXh0PVMsTC5tYW5pZmVzdGVkPSEwLE8uYXBwZW5kQ2hpbGQoTCksTy5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixPLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLndpbmRvd092ZXJsYXkiKS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixMfSNlPUVjKHRoaXMsbyx2b2lkIDApO2dldCByZWZmZWRFbGVtZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZmZlZEVsZW1lbnQoXyl7dGhpcy4jZT1ffSN0PShFYyh0aGlzLGwpLEVjKHRoaXMsZCx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KF8pe3RoaXMuI3Q9X30jcj0oRWModGhpcyxmKSxFYyh0aGlzLGgsITEpKTtnZXQgd2F2ZSgpe3JldHVybiB0aGlzLiNyfXNldCB3YXZlKF8pe3RoaXMuI3I9X30jYT0oRWModGhpcyxtKSxFYyh0aGlzLGIsITEpKTtnZXQgbWFuaWZlc3RlZCgpe3JldHVybiB0aGlzLiNhfXNldCBtYW5pZmVzdGVkKF8pe3RoaXMuI2E9X30jaT0oRWModGhpcyxnKSxFYyh0aGlzLGssIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0YXR1cyhfKXt0aGlzLiNpPV99d2luZG93TGF5ZXI9RWModGhpcyxNKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmFycm93IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IDE1cHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5zcGVlY2hidWJibGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjQwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLndhdmUgewogICAgICAgIGFuaW1hdGlvbi1uYW1lOiB3YXZlLWFuaW1hdGlvbjsgLyogUmVmZXJzIHRvIHRoZSBuYW1lIG9mIHlvdXIgQGtleWZyYW1lcyBlbGVtZW50IGJlbG93ICovCiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyLjVzOyAvKiBDaGFuZ2UgdG8gc3BlZWQgdXAgb3Igc2xvdyBkb3duICovCiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC8qIE5ldmVyIHN0b3Agd2F2aW5nIDopICovCiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNzAlIDcwJTsgLyogUGl2b3QgYXJvdW5kIHRoZSBib3R0b20tbGVmdCBwYWxtICovCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHdhdmUtYW5pbWF0aW9uIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgICAgMTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTsKICAgICAgICB9IC8qIFRoZSBmb2xsb3dpbmcgZml2ZSB2YWx1ZXMgY2FuIGJlIHBsYXllZCB3aXRoIHRvIG1ha2UgdGhlIHdhdmluZyBtb3JlIG9yIGxlc3MgZXh0cmVtZSAqLwogICAgICAgIDIwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfQogICAgICAgIDQwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNGRlZyk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7CiAgICAgICAgfQogICAgICAgIDYwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9IC8qIFJlc2V0IGZvciB0aGUgbGFzdCBoYWxmIHRvIHBhdXNlICovCiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubWFuaWZlc3RlZD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BlZWNoYnViYmxlIj4KICAgICAgICAgICAgICAgICR7dGhpcy53YXZlP3dgPHNwYW4gY2xhc3M9IndhdmUiPvCfkYs8L3NwYW4+YDp3YGB9CiAgICAgICAgICAgICAgICAke1psLnJlc29sdmUodGhpcy5nZXRIdG1sKCkpfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2BgfQogICAgYH1hc3luYyBoYW5kbGVDbGljaygpe2NvbnNvbGUubG9nKCJzcGVlY2hidWJibGUgZ290IGNsaWNrZWQuIil9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5yZWZmZWRFbGVtZW50fHwodGhpcy5yZWZmZWRFbGVtZW50PXRoaXMucHJldmlvdXNFbGVtZW50U2libGluZyksdGhpcy5tYW5pZmVzdGVkKWF3YWl0IHRoaXMudXBkYXRlUG9zaXRpb24oKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIxIjtlbHNle2xldCBfO3RoaXMucmVmZmVkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixhc3luYygpPT57Xz1hd2FpdCBOLmNyZWF0ZUFuZFNob3codGhpcy5yZWZmZWRFbGVtZW50LHRoaXMudGV4dCl9KSx0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9PntfLmRlc3Ryb3koKX0pfX1hc3luYyB1cGRhdGVQb3NpdGlvbigpe2xldCBfPXRoaXMucmVmZmVkRWxlbWVudCxTPV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUudG9wPWAke1MudG9wLTEzfXB4YCx0aGlzLnN0eWxlLmxlZnQ9YCR7Uy5sZWZ0K18uY2xpZW50V2lkdGgrNH1weGAsUy5yaWdodD4yNTAmJih0aGlzLnN0eWxlLndpZHRoPSIyNTBweCIpfWFzeW5jIGdldEh0bWwoKXtpZighdGhpcy50ZXh0KXJldHVybiIiO2xldCBfPVh0LnBsdWdpbnMuc21hcnRzdHJpbmcubm9ybWFsaXplLnN0YW5kYXJkKHRoaXMudGV4dCksUz1hd2FpdCBYdC5wbHVnaW5zLnNtYXJ0bWFya2Rvd24uU21hcnRNYXJrZG93bi5lYXN5TWFya2Rvd25Ub0h0bWwoXyk7cmV0dXJuIEMzZShTKX1hc3luYyBzaG93KCl7fWFzeW5jIGRlc3Ryb3koKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7RWMoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIFZ0YT11KCgpPT57cXRhKCl9KTt2YXIganRhPXUoKCk9PntuYygpfSk7dmFyIFV0YT11KCgpPT57T3RhKCk7UnRhKCk7VnRhKCk7anRhKCl9KTt2YXIgV3RhPXUoKCk9Pnt9KTt2YXIgR3RhPXUoKCk9PntXdGEoKX0pO3ZhciBZdGEsTzZlLFI2ZSxXN3QsS3RhLEY2ZSxCNmUsSDZlLHE2ZT11KCgpPT57WXRhPSJodHRwczovL3N0YWNrYmxpdHouY29tIixPNmU9ImNvZGUiLFI2ZT0iZXJyb3IiLFc3dD0iZXJyb3JfZGVzY3JpcHRpb24iLEt0YT0iX193Y19hcGlfYmNfXyIsRjZlPSJfX3djX2FwaV90b2tlbnNfXyIsQjZlPSJfX3djX2FwaV92ZXJpZmllcl9fIixINmU9Il9fd2NfYXBpX3BvcHVwX18ifSk7dmFyIGxnLEc3dD11KCgpPT57bGc9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRFdmVudFRhcmdldCIpfV9idXM9bmV3IEV2ZW50VGFyZ2V0O2xpc3RlbihlKXtmdW5jdGlvbiByKGEpe2UoYS5kYXRhKX1yZXR1cm4gaShyLCJ3cmFwcGVkTGlzdGVuZXIiKSx0aGlzLl9idXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksKCk9PnRoaXMuX2J1cy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKX1maXJlRXZlbnQoZSl7dGhpcy5fYnVzLmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgibWVzc2FnZSIse2RhdGE6ZX0pKX19fSk7ZnVuY3Rpb24gVjZlKCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oRjZlKX1mdW5jdGlvbiBlcmEodCl7cmV0dXJuIFF0YS5saXN0ZW4odCl9ZnVuY3Rpb24gdkZhKCl7bGV0IHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oRjZlKTtpZighdClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHlGYSh0KXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShGNmUsSlNPTi5zdHJpbmdpZnkodCkpfWZ1bmN0aW9uIFh0YSh7Y3JlYXRlZF9hdDp0LGV4cGlyZXNfaW46ZX0pe3JldHVybih0K2UpKjFlM31mdW5jdGlvbiBKdGEodCl7aWYodHlwZW9mIHQhPSJvYmplY3QifHwhdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVG9rZW4gUmVzcG9uc2UiKTtpZih0eXBlb2YgdC5hY2Nlc3NfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2YgdC5yZWZyZXNoX3Rva2VuIT0ic3RyaW5nInx8dHlwZW9mIHQuY3JlYXRlZF9hdCE9Im51bWJlciJ8fHR5cGVvZiB0LmV4cGlyZXNfaW4hPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpfWZ1bmN0aW9uIHdGYSh0KXtyZXR1cm4gbmV3IFByb21pc2UoZT0+c2V0VGltZW91dChlLHQpKX1mdW5jdGlvbiBrRmEodCl7UXRhLmZpcmVFdmVudCh0KX12YXIgWnRhLFF0YSxOdyxZN3Q9dSgoKT0+e3E2ZSgpO0c3dCgpO1p0YT1uZXcgRXJyb3I7WnRhLnN0YWNrPSIiO1F0YT1uZXcgbGcsTnc9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJUb2tlbnMiKX1vcmlnaW47cmVmcmVzaDthY2Nlc3M7ZXhwaXJlcztfcmV2b2tlZD1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0cnVjdG9yKGUscixhLHMpe3RoaXMub3JpZ2luPWUsdGhpcy5yZWZyZXNoPXIsdGhpcy5hY2Nlc3M9YSx0aGlzLmV4cGlyZXM9c31hc3luYyBhY3RpdmF0ZShlKXtpZih0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiVG9rZW4gcmV2b2tlZCIpO3JldHVybiB0aGlzLmV4cGlyZXM8RGF0ZS5ub3coKSYmIWF3YWl0IHRoaXMuX2ZldGNoTmV3QWNjZXNzVG9rZW4oKT8hMToodGhpcy5fc3luYygpLHRoaXMuX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3AoZSksITApfWFzeW5jIHJldm9rZShlLHIpe3RoaXMuX3Jldm9rZWQuYWJvcnQoKTt0cnl7aWYoIShhd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvcmV2b2tlYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHt0b2tlbjp0aGlzLnJlZnJlc2gsdG9rZW5fdHlwZV9oaW50OiJyZWZyZXNoX3Rva2VuIixjbGllbnRfaWQ6ZX0pLG1vZGU6ImNvcnMifSkpLm9rKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvZ291dCIpfWNhdGNoKGEpe2lmKCFyKXRocm93IGF9VjZlKCl9c3RhdGljIGZyb21TdG9yYWdlKCl7bGV0IGU9dkZhKCk7cmV0dXJuIGU/bmV3IHQoZS5vcmlnaW4sZS5yZWZyZXNoLGUuYWNjZXNzLGUuZXhwaXJlcyk6bnVsbH1zdGF0aWMgYXN5bmMgZnJvbUF1dGhDb2RlKHtlZGl0b3JPcmlnaW46ZSxjbGllbnRJZDpyLGNvZGVWZXJpZmllcjphLGF1dGhDb2RlOnMscmVkaXJlY3RVcmk6bn0pe2xldCBvPWF3YWl0IGZldGNoKGAke2V9L29hdXRoL3Rva2VuYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHtjbGllbnRfaWQ6cixjb2RlOnMsY29kZV92ZXJpZmllcjphLGdyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIscmVkaXJlY3RfdXJpOm59KSxtb2RlOiJjb3JzIn0pO2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHRva2VuOiAke28uc3RhdHVzfWApO2xldCBsPWF3YWl0IG8uanNvbigpO0p0YShsKTtsZXR7YWNjZXNzX3Rva2VuOmMscmVmcmVzaF90b2tlbjpkfT1sLGY9WHRhKGwpO3JldHVybiBuZXcgdChlLGQsYyxmKX1hc3luYyBfZmV0Y2hOZXdBY2Nlc3NUb2tlbigpe3RyeXtsZXQgZT1hd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6InJlZnJlc2hfdG9rZW4iLHJlZnJlc2hfdG9rZW46dGhpcy5yZWZyZXNofSksbW9kZToiY29ycyIsc2lnbmFsOnRoaXMuX3Jldm9rZWQuc2lnbmFsfSk7aWYoIWUub2spdGhyb3cgWnRhO2xldCByPWF3YWl0IGUuanNvbigpO0p0YShyKTtsZXR7YWNjZXNzX3Rva2VuOmEscmVmcmVzaF90b2tlbjpzfT1yLG49WHRhKHIpO3JldHVybiB0aGlzLmFjY2Vzcz1hLHRoaXMuZXhwaXJlcz1uLHRoaXMucmVmcmVzaD1zLCEwfWNhdGNoe3JldHVybiBWNmUoKSwhMX19X3N5bmMoKXt5RmEodGhpcyksa0ZhKHRoaXMuYWNjZXNzKX1hc3luYyBfc3RhcnRSZWZyZXNoVG9rZW5zTG9vcChlKXtmb3IoOzspe2xldCByPXRoaXMuZXhwaXJlcy1EYXRlLm5vdygpLTFlMztpZihhd2FpdCB3RmEoTWF0aC5tYXgociwxZTMpKSx0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXJldHVybjtpZighdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpKXtlKCk7cmV0dXJufXRoaXMuX3N5bmMoKX19fTtpKFY2ZSwiY2xlYXJUb2tlbnNJblN0b3JhZ2UiKTtpKGVyYSwiYWRkQWNjZXNzVG9rZW5DaGFuZ2VkTGlzdGVuZXIiKTtpKHZGYSwicmVhZFRva2Vuc0Zyb21TdG9yYWdlIik7aSh5RmEsInBlcnNpc3RUb2tlbnNJblN0b3JhZ2UiKTtpKFh0YSwiZ2V0RXhwaXJlc0Zyb21Ub2tlblJlc3BvbnNlIik7aShKdGEsImFzc2VydFRva2VuUmVzcG9uc2UiKTtpKHdGYSwid2FpdCIpO2koa0ZhLCJmaXJlQWNjZXNzVG9rZW5DaGFuZ2VkIil9KTt2YXIgSzd0LGo2ZSxrMyxaN3Q9dSgoKT0+e3E2ZSgpO0s3dD17fSxqNmU9bnVsbCxrMz17Z2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBqNmU9PW51bGwmJihqNmU9bmV3IFVSTChnbG9iYWxUaGlzLldFQkNPTlRBSU5FUl9BUElfSUZSQU1FX1VSTD8/WXRhKS5vcmlnaW4pLGo2ZX0sc2V0IGVkaXRvck9yaWdpbih0KXtqNmU9bmV3IFVSTCh0KS5vcmlnaW59LHNldFF1ZXJ5UGFyYW0odCxlKXtLN3RbdF09ZX0sZ2V0IHVybCgpe2xldCB0PW5ldyBVUkwodGhpcy5lZGl0b3JPcmlnaW4pO3QucGF0aG5hbWU9Ii9oZWFkbGVzcyI7Zm9yKGxldCBlIGluIEs3dCl0LnNlYXJjaFBhcmFtcy5zZXQoZSxLN3RbZV0pO3JldHVybiB0LnNlYXJjaFBhcmFtcy5zZXQoInZlcnNpb24iLCIxLjYuMSIpLHR9fX0pO2FzeW5jIGZ1bmN0aW9uIHRyYSh0KXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCkscj1uZXcgVWludDhBcnJheShhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSkpO3JldHVybiBidG9hKHIucmVkdWNlKChhLHMpPT5hK1N0cmluZy5mcm9tQ29kZVBvaW50KHMpLCIiKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBycmEoKXtsZXQgdD1uZXcgVWludDhBcnJheSg5Nik7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0KTtsZXQgZT0iIjtmb3IobGV0IHI9MDtyPDMyOysrcillKz1TRmEodFszKnIrMF0sdFszKnIrMV0sdFszKnIrMl0pO3JldHVybiBlfWZ1bmN0aW9uIFNGYSh0LGUscil7bGV0IGE9dD4+MixzPSh0JjMpPDw0fGU+PjQsbj1lJjE1fChyJjE5Mik+PjIsbz1yJjYzO3JldHVyblthLHMsbixvXS5tYXAoTUZhKS5qb2luKCIiKX1mdW5jdGlvbiBNRmEodCl7bGV0IGU7cmV0dXJuIHQ8MjY/ZT10KzY1OnQ8NTI/ZT10LTI2Kzk3OnQ8NjI/ZT10LTUyKzQ4OmU9dD09PTYyPzMwOjQ1LFN0cmluZy5mcm9tQ2hhckNvZGUoZSl9dmFyIGFyYT11KCgpPT57aSh0cmEsIlMyNTYiKTtpKHJyYSwibmV3Q29kZVZlcmlmaWVyIik7aShTRmEsIm5leHRGb3VyQ2hhcnMiKTtpKE1GYSwidW5yZXNlcnZlZENoYXJhY3RlcnMiKX0pO2Z1bmN0aW9uIGlyYSgpe2xldCB0LGU7ZnVuY3Rpb24gcigpe2U9bmV3IFByb21pc2UoYT0+dD1hKX1yZXR1cm4gaShyLCJyZXNldCIpLHIoKSx7Z2V0IHByb21pc2UoKXtyZXR1cm4gZX0scmVzb2x2ZShhKXtyZXR1cm4gdChhKX0scmVzZXQ6cn19dmFyIHNyYT11KCgpPT57aShpcmEsInJlc2V0dGFibGVQcm9taXNlIil9KTtmdW5jdGlvbiBXcmUodCl7dnIuYnJvYWRjYXN0Q2hhbm5lbCYmKHZyLmJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UodCksbG9jYWxTdG9yYWdlLmdldEl0ZW0oSDZlKT09PSJ0cnVlIiYmdC50eXBlIT09ImF1dGgtbG9nb3V0IiYmKGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKEg2ZSksc2V0VGltZW91dCgoKT0+e3dpbmRvdy5jbG9zZSgpfSkpKX1mdW5jdGlvbiBRN3QoKXtjZy5maXJlRXZlbnQoKSxXcmUoe3R5cGU6ImF1dGgtbG9nb3V0In0pfWZ1bmN0aW9uIG9yYSgpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZn1hc3luYyBmdW5jdGlvbiBscmEoKXtsZXQgdD1ycmEoKTtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShCNmUsdCk7bGV0IGU9YXdhaXQgdHJhKHQpLHI9bmV3IFVSTCgiL29hdXRoL2F1dGhvcml6ZSIsdnIuZWRpdG9yT3JpZ2luKSx7c2VhcmNoUGFyYW1zOmF9PXI7cmV0dXJuIGEuYXBwZW5kKCJyZXNwb25zZV90eXBlIiwiY29kZSIpLGEuYXBwZW5kKCJjbGllbnRfaWQiLHZyLmNsaWVudElkKSxhLmFwcGVuZCgicmVkaXJlY3RfdXJpIixvcmEoKSksYS5hcHBlbmQoInNjb3BlIix2ci5vYXV0aFNjb3BlKSxhLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2UiLGUpLGEuYXBwZW5kKCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiLCJTMjU2Iiksci50b1N0cmluZygpfWZ1bmN0aW9uIFg3dCh0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIk9vcHMhIFRva2VucyBpcyBub3QgZGVmaW5lZCB3aGVuIGl0IGFsd2F5cyBzaG91bGQgYmUuIil9dmFyIHZyLG5yYSxjZyxjcmEsSjd0PXUoKCk9PntZN3QoKTtxNmUoKTtaN3QoKTthcmEoKTtzcmEoKTtHN3QoKTt2cj17aW5pdGlhbGl6ZWQ6ITEsYm9vdENhbGxlZDohMSxhdXRoQ29tcGxldGU6aXJhKCksY2xpZW50SWQ6IiIsb2F1dGhTY29wZToiIixicm9hZGNhc3RDaGFubmVsOm51bGwsZ2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBrMy5lZGl0b3JPcmlnaW59LHRva2VuczpudWxsfSxucmE9bmV3IGxnLGNnPW5ldyBsZztpKFdyZSwiYnJvYWRjYXN0TWVzc2FnZSIpO2NyYT17aW5pdCh7ZWRpdG9yT3JpZ2luOnQsY2xpZW50SWQ6ZSxzY29wZTpyfSl7aWYodnIuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJJbml0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIik7aWYoITAmJnZyLmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgYXV0aC5pbml0YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO3ZyLmluaXRpYWxpemVkPSEwLHZyLnRva2Vucz1Ody5mcm9tU3RvcmFnZSgpLHZyLmNsaWVudElkPWUsdnIub2F1dGhTY29wZT1yLHZyLmJyb2FkY2FzdENoYW5uZWw9bmV3IEJyb2FkY2FzdENoYW5uZWwoS3RhKSxrMy5zZXRRdWVyeVBhcmFtKCJjbGllbnRfaWQiLGUpLHQmJihrMy5lZGl0b3JPcmlnaW49bmV3IFVSTCh0KS5vcmlnaW4pLGNnLmxpc3RlbigoKT0+dnIuYXV0aENvbXBsZXRlLnJlc2V0KCkpLHZyLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscyk7YXN5bmMgZnVuY3Rpb24gcyhjKXtsZXQgZD1jLmRhdGE7aWYoZC50eXBlPT09ImF1dGgtY29tcGxldGUiKXt2ci50b2tlbnM9TncuZnJvbVN0b3JhZ2UoKSxhd2FpdCB2ci50b2tlbnMuYWN0aXZhdGUoUTd0KSx2ci5hdXRoQ29tcGxldGUucmVzb2x2ZSgpO3JldHVybn1pZihkLnR5cGU9PT0iYXV0aC1mYWlsZWQiKXtucmEuZmlyZUV2ZW50KGQpO3JldHVybn1pZihkLnR5cGU9PT0iYXV0aC1sb2dvdXQiKXtjZy5maXJlRXZlbnQoKTtyZXR1cm59fWlmKGkocywib25DaGFubmVsTWVzc2FnZSIpLHZyLnRva2Vucyl7bGV0IGM9dnIudG9rZW5zO2lmKGMub3JpZ2luPT09dnIuZWRpdG9yT3JpZ2luKXJldHVybihhc3luYygpPT57aWYoIWF3YWl0IGMuYWN0aXZhdGUoUTd0KSl7aWYodnIudG9rZW5zIT09YylyZXR1cm47Y2cuZmlyZUV2ZW50KCk7cmV0dXJufXZyLmF1dGhDb21wbGV0ZS5yZXNvbHZlKCl9KSgpLHtzdGF0dXM6ImF1dGhvcml6ZWQifTtWNmUoKSx2ci50b2tlbnM9bnVsbH1sZXQgbj1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx7c2VhcmNoUGFyYW1zOm99PW4sbD1pKCgpPT53aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsbiksInVwZGF0ZVVSTCIpO2lmKG8uaGFzKFI2ZSkpe2xldCBjPW8uZ2V0KFI2ZSksZD1vLmdldChXN3QpO3JldHVybiBvLmRlbGV0ZShSNmUpLG8uZGVsZXRlKFc3dCksbCgpLFdyZSh7dHlwZToiYXV0aC1mYWlsZWQiLGVycm9yOmMsZGVzY3JpcHRpb246ZH0pLHtzdGF0dXM6ImF1dGgtZmFpbGVkIixlcnJvcjpjLGRlc2NyaXB0aW9uOmR9fWlmKG8uaGFzKE82ZSkpe2xldCBjPW8uZ2V0KE82ZSksZD12ci5lZGl0b3JPcmlnaW47by5kZWxldGUoTzZlKSxsKCk7bGV0IGY9bG9jYWxTdG9yYWdlLmdldEl0ZW0oQjZlKTtyZXR1cm4gZj8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oQjZlKSxOdy5mcm9tQXV0aENvZGUoe2VkaXRvck9yaWdpbjpkLGNsaWVudElkOnZyLmNsaWVudElkLGF1dGhDb2RlOmMsY29kZVZlcmlmaWVyOmYscmVkaXJlY3RVcmk6b3JhKCl9KS50aGVuKGFzeW5jIHA9PntpZih2ci50b2tlbnM9cCxYN3QodnIudG9rZW5zKSwhYXdhaXQgdnIudG9rZW5zLmFjdGl2YXRlKFE3dCkpdGhyb3cgbmV3IEVycm9yO3ZyLmF1dGhDb21wbGV0ZS5yZXNvbHZlKCksV3JlKHt0eXBlOiJhdXRoLWNvbXBsZXRlIn0pfSkuY2F0Y2gocD0+e2NvbnNvbGUuZXJyb3IocCksY2cuZmlyZUV2ZW50KCksV3JlKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0pLHtzdGF0dXM6ImF1dGhvcml6ZWQifSk6e3N0YXR1czoibmVlZC1hdXRoIn19cmV0dXJue3N0YXR1czoibmVlZC1hdXRoIn19LGFzeW5jIHN0YXJ0QXV0aEZsb3coe3BvcHVwOnR9PXt9KXtpZighdnIuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJhdXRoLmluaXQgbXVzdCBiZSBjYWxsZWQgZmlyc3QiKTtpZih0KXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShINmUsInRydWUiKTtsZXQgZT01MDAscj02MjAsYT13aW5kb3cuc2NyZWVuTGVmdCsod2luZG93Lm91dGVyV2lkdGgtcikvMixzPXdpbmRvdy5zY3JlZW5Ub3ArKHdpbmRvdy5vdXRlckhlaWdodC1lKS8yO3dpbmRvdy5vcGVuKGF3YWl0IGxyYSgpLCJfYmxhbmsiLGBwb3B1cCx3aWR0aD0ke3J9LGhlaWdodD0ke2V9LGxlZnQ9JHthfSx0b3A9JHtzfWApfWVsc2Ugd2luZG93LmxvY2F0aW9uLmhyZWY9YXdhaXQgbHJhKCl9LGFzeW5jIGxvZ291dCh7aWdub3JlUmV2b2tlRXJyb3I6dH09e30pe2F3YWl0IHZyLnRva2Vucz8ucmV2b2tlKHZyLmNsaWVudElkLHQ/PyExKSxjZy5maXJlRXZlbnQoKSxXcmUoe3R5cGU6ImF1dGgtbG9nb3V0In0pfSxsb2dnZWRJbigpe3JldHVybiB2ci5hdXRoQ29tcGxldGUucHJvbWlzZX0sb24odCxlKXtzd2l0Y2godCl7Y2FzZSJhdXRoLWZhaWxlZCI6cmV0dXJuIG5yYS5saXN0ZW4oZSk7Y2FzZSJsb2dnZWQtb3V0IjpyZXR1cm4gY2cubGlzdGVuKGUpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBldmVudCB0eXBlICcke3R9Jy5gKX19fTtpKFE3dCwib25GYWlsZWRUb2tlblJlZnJlc2giKTtpKG9yYSwiZGVmYXVsdFJlZGlyZWN0VXJpIik7aShscmEsImdlbmVyYXRlT0F1dGhSZXF1ZXN0Iik7aShYN3QsImFzc2VydEF1dGhUb2tlbnMiKX0pO3ZhciBTMyxVNmU9dSgoKT0+eyhmdW5jdGlvbih0KXt0LlVuY2F1Z2h0RXhjZXB0aW9uPSJQUkVWSUVXX1VOQ0FVR0hUX0VYQ0VQVElPTiIsdC5VbmhhbmRsZWRSZWplY3Rpb249IlBSRVZJRVdfVU5IQU5ETEVEX1JFSkVDVElPTiIsdC5Db25zb2xlRXJyb3I9IlBSRVZJRVdfQ09OU09MRV9FUlJPUiJ9KShTM3x8KFMzPXt9KSl9KTtmdW5jdGlvbiBhOXQodCxlPXNlbGYpe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaShmdW5jdGlvbiByKGEpe2lmKCFhfHwhYS5kYXRhKXJldHVybjtsZXR7aWQ6cyx0eXBlOm4scGF0aDpvfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxhLmRhdGEpLGw9KGEuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoZGcpLGM7dHJ5e2xldCBkPW8uc2xpY2UoMCwtMSkucmVkdWNlKChwLGgpPT5wW2hdLHQpLGY9by5yZWR1Y2UoKHAsaCk9PnBbaF0sdCk7c3dpdGNoKG4pe2Nhc2UgMDpjPWY7YnJlYWs7Y2FzZSAxOmRbby5zbGljZSgtMSlbMF1dPWRnKGEuZGF0YS52YWx1ZSksYz0hMDticmVhaztjYXNlIDI6Yz1mLmFwcGx5KGQsbCk7YnJlYWs7Y2FzZSAzOntsZXQgcD1uZXcgZiguLi5sKTtjPXhyYShwKX1icmVhaztjYXNlIDQ6e2xldHtwb3J0MTpwLHBvcnQyOmh9PW5ldyBNZXNzYWdlQ2hhbm5lbDthOXQodCxoKSxjPWJyYShwLFtwXSl9YnJlYWs7Y2FzZSA1OmM9dm9pZCAwO2JyZWFrfX1jYXRjaChkKXtjPXt2YWx1ZTpkLFt0OXRdOjB9fVByb21pc2UucmVzb2x2ZShjKS5jYXRjaChkPT4oe3ZhbHVlOmQsW3Q5dF06MH0pKS50aGVuKGQ9PntsZXRbZixwXT1zOXQoZCk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZikse2lkOnN9KSxwKSxuPT09NSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksZnJhKGUpKX0pfSwiY2FsbGJhY2siKSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIExGYSh0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBmcmEodCl7TEZhKHQpJiZ0LmNsb3NlKCl9ZnVuY3Rpb24gaHJhKHQsZSl7cmV0dXJuIGk5dCh0LFtdLGUpfWZ1bmN0aW9uIFc2ZSh0KXtpZih0KXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gaTl0KHQsZT1bXSxyPWZ1bmN0aW9uKCl7fSl7bGV0IGE9ITEscz1uZXcgUHJveHkocix7Z2V0KG4sbyl7aWYoVzZlKGEpLG89PT11cmEpcmV0dXJuKCk9Pk93KHQse3R5cGU6NSxwYXRoOmUubWFwKGw9PmwudG9TdHJpbmcoKSl9KS50aGVuKCgpPT57ZnJhKHQpLGE9ITB9KTtpZihvPT09InRoZW4iKXtpZihlLmxlbmd0aD09PTApcmV0dXJue3RoZW46aSgoKT0+cywidGhlbiIpfTtsZXQgbD1Pdyh0LHt0eXBlOjAscGF0aDplLm1hcChjPT5jLnRvU3RyaW5nKCkpfSkudGhlbihkZyk7cmV0dXJuIGwudGhlbi5iaW5kKGwpfXJldHVybiBpOXQodCxbLi4uZSxvXSl9LHNldChuLG8sbCl7VzZlKGEpO2xldFtjLGRdPXM5dChsKTtyZXR1cm4gT3codCx7dHlwZToxLHBhdGg6Wy4uLmUsb10ubWFwKGY9PmYudG9TdHJpbmcoKSksdmFsdWU6Y30sZCkudGhlbihkZyl9LGFwcGx5KG4sbyxsKXtXNmUoYSk7bGV0IGM9ZVtlLmxlbmd0aC0xXTtpZihjPT09ZHJhKXJldHVybiBPdyh0LHt0eXBlOjR9KS50aGVuKGRnKTtpZihjPT09ImJpbmQiKXJldHVybiBpOXQodCxlLnNsaWNlKDAsLTEpKTtsZXRbZCxmXT1tcmEobCk7cmV0dXJuIE93KHQse3R5cGU6MixwYXRoOmUubWFwKHA9PnAudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmR9LGYpLnRoZW4oZGcpfSxjb25zdHJ1Y3QobixvKXtXNmUoYSk7bGV0W2wsY109bXJhKG8pO3JldHVybiBPdyh0LHt0eXBlOjMscGF0aDplLm1hcChkPT5kLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpsfSxjKS50aGVuKGRnKX19KTtyZXR1cm4gc31mdW5jdGlvbiBERmEodCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sdCl9ZnVuY3Rpb24gbXJhKHQpe2xldCBlPXQubWFwKHM5dCk7cmV0dXJuW2UubWFwKHI9PnJbMF0pLERGYShlLm1hcChyPT5yWzFdKSldfWZ1bmN0aW9uIGJyYSh0LGUpe3JldHVybiBncmEuc2V0KHQsZSksdH1mdW5jdGlvbiB4cmEodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7W2U5dF06ITB9KX1mdW5jdGlvbiAkRmEodCxlPXNlbGYscj0iKiIpe3JldHVybntwb3N0TWVzc2FnZTppKChhLHMpPT50LnBvc3RNZXNzYWdlKGEscixzKSwicG9zdE1lc3NhZ2UiKSxhZGRFdmVudExpc3RlbmVyOmUuYWRkRXZlbnRMaXN0ZW5lci5iaW5kKGUpLHJlbW92ZUV2ZW50TGlzdGVuZXI6ZS5yZW1vdmVFdmVudExpc3RlbmVyLmJpbmQoZSl9fWZ1bmN0aW9uIHM5dCh0KXtmb3IobGV0W2Uscl1vZiByOXQpaWYoci5jYW5IYW5kbGUodCkpe2xldFthLHNdPXIuc2VyaWFsaXplKHQpO3JldHVyblt7dHlwZTozLG5hbWU6ZSx2YWx1ZTphfSxzXX1yZXR1cm5be3R5cGU6MCx2YWx1ZTp0fSxncmEuZ2V0KHQpfHxbXV19ZnVuY3Rpb24gZGcodCl7c3dpdGNoKHQudHlwZSl7Y2FzZSAzOnJldHVybiByOXQuZ2V0KHQubmFtZSkuZGVzZXJpYWxpemUodC52YWx1ZSk7Y2FzZSAwOnJldHVybiB0LnZhbHVlfX1mdW5jdGlvbiBPdyh0LGUscil7cmV0dXJuIG5ldyBQcm9taXNlKGE9PntsZXQgcz1BRmEoKTt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGkoZnVuY3Rpb24gbihvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1zfHwodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKSxhKG8uZGF0YSkpfSwibCIpKSx0LnN0YXJ0JiZ0LnN0YXJ0KCksdC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpzfSxlKSxyKX0pfWZ1bmN0aW9uIEFGYSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9dmFyIENGYSx6RmEsZDIsZTl0LGRyYSx1cmEsdDl0LHByYSxfRmEsVEZhLHI5dCxncmEsdnJhPXUoKCk9PntDRmE9T2JqZWN0LmRlZmluZVByb3BlcnR5LHpGYT1pKCh0LGUpPT57Zm9yKHZhciByIGluIGUpQ0ZhKHQscix7Z2V0OmVbcl0sZW51bWVyYWJsZTohMH0pfSwiX19leHBvcnQiKSxkMj17fTt6RmEoZDIse2NyZWF0ZUVuZHBvaW50OmkoKCk9PmRyYSwiY3JlYXRlRW5kcG9pbnQiKSxleHBvc2U6aSgoKT0+YTl0LCJleHBvc2UiKSxwcm94eTppKCgpPT54cmEsInByb3h5IikscHJveHlNYXJrZXI6aSgoKT0+ZTl0LCJwcm94eU1hcmtlciIpLHJlbGVhc2VQcm94eTppKCgpPT51cmEsInJlbGVhc2VQcm94eSIpLHRyYW5zZmVyOmkoKCk9PmJyYSwidHJhbnNmZXIiKSx0cmFuc2ZlckhhbmRsZXJzOmkoKCk9PnI5dCwidHJhbnNmZXJIYW5kbGVycyIpLHdpbmRvd0VuZHBvaW50OmkoKCk9PiRGYSwid2luZG93RW5kcG9pbnQiKSx3cmFwOmkoKCk9PmhyYSwid3JhcCIpfSk7ZTl0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLGRyYT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSx1cmE9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLHQ5dD1TeW1ib2woIkNvbWxpbmsudGhyb3duIikscHJhPWkodD0+dHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbHx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIsImlzT2JqZWN0IiksX0ZhPXtjYW5IYW5kbGU6aSh0PT5wcmEodCkmJnRbZTl0XSwiY2FuSGFuZGxlIiksc2VyaWFsaXplKHQpe2xldHtwb3J0MTplLHBvcnQyOnJ9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gYTl0KHQsZSksW3IsW3JdXX0sZGVzZXJpYWxpemUodCl7cmV0dXJuIHQuc3RhcnQoKSxocmEodCl9fSxURmE9e2NhbkhhbmRsZTppKHQ9PnByYSh0KSYmdDl0IGluIHQsImNhbkhhbmRsZSIpLHNlcmlhbGl6ZSh7dmFsdWU6dH0pe2xldCBlO3JldHVybiB0IGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTp0Lm1lc3NhZ2UsbmFtZTp0Lm5hbWUsc3RhY2s6dC5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6dH0sW2UsW11dfSxkZXNlcmlhbGl6ZSh0KXt0aHJvdyB0LmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IodC52YWx1ZS5tZXNzYWdlKSx0LnZhbHVlKTp0LnZhbHVlfX0scjl0PW5ldyBNYXAoW1sicHJveHkiLF9GYV0sWyJ0aHJvdyIsVEZhXV0pO2koYTl0LCJleHBvc2UiKTtpKExGYSwiaXNNZXNzYWdlUG9ydCIpO2koZnJhLCJjbG9zZUVuZFBvaW50Iik7aShocmEsIndyYXAiKTtpKFc2ZSwidGhyb3dJZlByb3h5UmVsZWFzZWQiKTtpKGk5dCwiY3JlYXRlUHJveHkiKTtpKERGYSwibXlGbGF0Iik7aShtcmEsInByb2Nlc3NBcmd1bWVudHMiKTtncmE9bmV3IFdlYWtNYXA7aShicmEsInRyYW5zZmVyIik7aSh4cmEsInByb3h5Iik7aSgkRmEsIndpbmRvd0VuZHBvaW50Iik7aShzOXQsInRvV2lyZVZhbHVlIik7aShkZywiZnJvbVdpcmVWYWx1ZSIpO2koT3csInJlcXVlc3RSZXNwb25zZU1lc3NhZ2UiKTtpKEFGYSwiZ2VuZXJhdGVVVUlEIil9KTt2YXIgeXJhPXUoKCk9Pnt9KTtmdW5jdGlvbiBuOXQodCl7cmV0dXJuISh0PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCJ8fCEoInR5cGUiaW4gdCl8fCFFRmEuaW5jbHVkZXModC50eXBlKSl9dmFyIEVGYSx3cmE9dSgoKT0+e1U2ZSgpO0VGYT1bUzMuQ29uc29sZUVycm9yLFMzLlVuY2F1Z2h0RXhjZXB0aW9uLFMzLlVuaGFuZGxlZFJlamVjdGlvbl07aShuOXQsImlzUHJldmlld01lc3NhZ2UiKX0pO3ZhciBvOXQ9dSgoKT0+e3lyYSgpO1U2ZSgpO3dyYSgpfSk7ZnVuY3Rpb24gdWcodCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gdD9PYmplY3QuYXNzaWduKGUsdCk6ZX12YXIga3JhPXUoKCk9PntpKHVnLCJudWxsUHJvdG90eXBlIil9KTtmdW5jdGlvbiBsOXQodCl7bGV0IGU9e2Q6e319O2ZvcihsZXQgciBvZiBPYmplY3Qua2V5cyh0KSl7bGV0IGE9dFtyXTtpZigiZmlsZSJpbiBhKXtpZigic3ltbGluayJpbiBhLmZpbGUpe2UuZFtyXT17Zjp7bDphLmZpbGUuc3ltbGlua319O2NvbnRpbnVlfWxldCBuPWEuZmlsZS5jb250ZW50cyxvPXR5cGVvZiBuPT0ic3RyaW5nIj9uOklGYS5kZWNvZGUobiksbD10eXBlb2Ygbj09InN0cmluZyI/e306e2I6ITB9O2UuZFtyXT17Zjp7YzpvLC4uLmx9fTtjb250aW51ZX1sZXQgcz1sOXQoYS5kaXJlY3RvcnkpO2UuZFtyXT1zfXJldHVybiBlfWZ1bmN0aW9uIGM5dCh0KXtsZXQgZT11ZygpO2lmKCJmImluIHQpdGhyb3cgbmV3IEVycm9yKCJJdCBpcyBub3QgcG9zc2libGUgdG8gZXhwb3J0IGEgc2luZ2xlIGZpbGUgaW4gdGhlIEpTT04gZm9ybWF0LiIpO2lmKCJkImluIHQpZm9yKGxldCByIG9mIE9iamVjdC5rZXlzKHQuZCkpe2xldCBhPXQuZFtyXTsiZCJpbiBhP2Vbcl09dWcoe2RpcmVjdG9yeTpjOXQoYSl9KToiZiJpbiBhJiYoImMiaW4gYS5mP2Vbcl09dWcoe2ZpbGU6dWcoe2NvbnRlbnRzOmEuZi5iP1BGYShhLmYuYyk6YS5mLmN9KX0pOiJsImluIGEuZiYmKGVbcl09dWcoe2ZpbGU6dWcoe3N5bWxpbms6YS5mLmx9KX0pKSl9cmV0dXJuIGV9ZnVuY3Rpb24gUEZhKHQpe2xldCBlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyllW3JdPXRbcl0uY2hhckNvZGVBdCgwKTtyZXR1cm4gZX12YXIgSUZhLFNyYT11KCgpPT57a3JhKCk7SUZhPW5ldyBUZXh0RGVjb2RlcigibGF0aW4xIik7aShsOXQsInRvSW50ZXJuYWxGaWxlU3lzdGVtVHJlZSIpO2koYzl0LCJ0b0V4dGVybmFsRmlsZVN5c3RlbVRyZWUiKTtpKFBGYSwiZnJvbUJpbmFyeVN0cmluZyIpfSk7ZnVuY3Rpb24gbUMxKHQpe2lmKHZyLmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgY29uZmlndXJlQVBJS2V5YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO2szLnNldFF1ZXJ5UGFyYW0oImNsaWVudF9pZCIsdCl9YXN5bmMgZnVuY3Rpb24gRkZhKHQpe2xldHtzZXJ2ZXJQcm9taXNlOmV9PUJGYSh0KSxhPWF3YWl0KGF3YWl0IGUpLmJ1aWxkKHtob3N0OndpbmRvdy5sb2NhdGlvbi5ob3N0LHZlcnNpb246IjEuNi4xIix3b3JrZGlyTmFtZTp0LndvcmtkaXJOYW1lLGZvcndhcmRQcmV2aWV3RXJyb3JzOnQuZm9yd2FyZFByZXZpZXdFcnJvcnN9KSxbcyxuLG9dPWF3YWl0IFByb21pc2UuYWxsKFthLmZzKCksYS5wcmV2aWV3U2NyaXB0KCksYS5ydW50aW1lSW5mbygpXSk7cmV0dXJuIG5ldyBHcmUoYSxzLG4sbyl9ZnVuY3Rpb24gbTl0KHQpe2lmKHQhPW51bGwpcmV0dXJuIGU9PntlIGluc3RhbmNlb2YgVWludDhBcnJheT90KE1yYS5kZWNvZGUoZSkpOmU9PW51bGwmJnQobnVsbCl9fWZ1bmN0aW9uIEs2ZSh0KXtpZih0IT1udWxsKXJldHVybiBkMi5wcm94eSh0KX1mdW5jdGlvbiBCRmEodCl7aWYoWTZlIT1udWxsKXJldHVybiB0LmNvZXAhPT1kOXQuY29lcCYmKGNvbnNvbGUud2FybihgQXR0ZW1wdGluZyB0byBib290IFdlYkNvbnRhaW5lciB3aXRoICdjb2VwOiAke3QuY29lcH0nYCksY29uc29sZS53YXJuKGBGaXJzdCBib290IGhhZCAnY29lcDogJHtkOXQuY29lcH0nLCBuZXcgc2V0dGluZ3Mgd2lsbCBub3QgdGFrZSBlZmZlY3QhYCkpLHtzZXJ2ZXJQcm9taXNlOlk2ZX07dC5jb2VwJiZrMy5zZXRRdWVyeVBhcmFtKCJjb2VwIix0LmNvZXApLHQuZXhwZXJpbWVudGFsTm9kZSYmazMuc2V0UXVlcnlQYXJhbSgiZXhwZXJpbWVudGFsX25vZGUiLCIxIik7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7ZS5zdHlsZS5kaXNwbGF5PSJub25lIixlLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCJjcm9zcy1vcmlnaW4taXNvbGF0ZWQiKTtsZXQgcj1rMy51cmw7ZS5zcmM9ci50b1N0cmluZygpO2xldHtvcmlnaW46YX09cjtyZXR1cm4gZDl0PXsuLi50fSxZNmU9bmV3IFByb21pc2Uocz0+e2xldCBuPWkobz0+e2lmKG8ub3JpZ2luIT09YSlyZXR1cm47bGV0e2RhdGE6bH09bztpZihsLnR5cGU9PT0iaW5pdCIpe3MoZDIud3JhcChvLnBvcnRzWzBdKSk7cmV0dXJufWlmKGwudHlwZT09PSJ3YXJuaW5nIil7Y29uc29sZVtsLmxldmVsXS5jYWxsKGNvbnNvbGUsbC5tZXNzYWdlKTtyZXR1cm59fSwib25NZXNzYWdlIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG4pfSksZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZSxudWxsKSx7c2VydmVyUHJvbWlzZTpZNmV9fWZ1bmN0aW9uIEhGYSh0KXtyZXR1cm4gdHlwZW9mIHRbMF09PSJzdHJpbmcifWZ1bmN0aW9uIHFGYSh0KXtyZXR1cm4gdFswXWluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBWRmEoKXtsZXQgdD1udWxsO3JldHVybntzdHJlYW06bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydChhKXt0PWF9fSkscHVzaDppKGE9PnthIT1udWxsP3Q/LmVucXVldWUoYSk6KHQ/LmNsb3NlKCksdD1udWxsKX0sInB1c2giKX19ZnVuY3Rpb24gakZhKHQpe2xldCBlPSExLHI9aSgoKT0+e30sInVuc3Vic2NyaWJlIik7cmV0dXJue3N1YnNjcmliZShzKXtyZXR1cm4gcy50aGVuKG49PntyPW4sZSYmcigpfSksKCk9PntlPSEwLHIoKX19LGxpc3RlbmVyOmkoKCguLi5zKT0+e2V8fHQoLi4ucyl9KSwid3JhcHBlZCIpfX12YXIgaEMxLEc2ZSxZNmUsZDl0LE1yYSxORmEsR3JlLE9GYSxSRmEsdTl0LHA5dCxmOXQsaDl0LENyYT11KCgpPT57Sjd0KCk7VTZlKCk7dnJhKCk7Sjd0KCk7WTd0KCk7Wjd0KCk7bzl0KCk7U3JhKCk7bzl0KCk7aEMxPWNyYSxHNmU9bnVsbCxZNmU9bnVsbCxkOXQ9e30sTXJhPW5ldyBUZXh0RGVjb2RlcixORmE9bmV3IFRleHRFbmNvZGVyLEdyZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIldlYkNvbnRhaW5lciIpfV9pbnN0YW5jZTtfcnVudGltZUluZm87ZnM7c3RhdGljIF9pbnN0YW5jZT1udWxsO3N0YXRpYyBfdGVhcmRvd25Qcm9taXNlPW51bGw7X3Rvcm5Eb3duPSExO191bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcj1pKCgpPT57fSwiX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyIik7Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy5faW5zdGFuY2U9ZSx0aGlzLl9ydW50aW1lSW5mbz1zLHRoaXMuZnM9bmV3IGg5dChyKSx2ci5pbml0aWFsaXplZCYmKHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyPWVyYShuPT57dGhpcy5faW5zdGFuY2Uuc2V0Q3JlZGVudGlhbHMoe2FjY2Vzc1Rva2VuOm4sZWRpdG9yT3JpZ2luOnZyLmVkaXRvck9yaWdpbn0pfSksKGFzeW5jKCk9Pnthd2FpdCB2ci5hdXRoQ29tcGxldGUucHJvbWlzZSwhdGhpcy5fdG9ybkRvd24mJihYN3QodnIudG9rZW5zKSxhd2FpdCB0aGlzLl9pbnN0YW5jZS5zZXRDcmVkZW50aWFscyh7YWNjZXNzVG9rZW46dnIudG9rZW5zLmFjY2VzcyxlZGl0b3JPcmlnaW46dnIuZWRpdG9yT3JpZ2lufSkpfSkoKS5jYXRjaChuPT57Y29uc29sZS5lcnJvcihuKX0pKX1hc3luYyBzcGF3bihlLHIsYSl7bGV0IHM9W107QXJyYXkuaXNBcnJheShyKT9zPXI6YT1yO2xldCBuLG89bmV3IFJlYWRhYmxlU3RyZWFtO2lmKGE/Lm91dHB1dCE9PSExKXtsZXQgYj1WRmEoKTtuPWIucHVzaCxvPWIuc3RyZWFtfWxldCBsLGMsZCxmLHA9SzZlKG05dChuKSksaD1LNmUobTl0KGwpKSxtPUs2ZShtOXQoZCkpLHY9YXdhaXQgdGhpcy5faW5zdGFuY2UucnVuKHtjb21tYW5kOmUsYXJnczpzLGN3ZDphPy5jd2QsZW52OmE/LmVudix0ZXJtaW5hbDphPy50ZXJtaW5hbH0saCxtLHApO3JldHVybiBuZXcgZjl0KHYsbyxjLGYpfWFzeW5jIGV4cG9ydChlLHIpe2xldCBhPXtmb3JtYXQ6cj8uZm9ybWF0Pz8ianNvbiIsaW5jbHVkZXM6cj8uaW5jbHVkZXMsZXhjbHVkZXM6cj8uZXhjbHVkZXMsZXh0ZXJuYWw6ITB9LHM9YXdhaXQgdGhpcy5faW5zdGFuY2Uuc2VyaWFsaXplKGUsYSk7aWYoYS5mb3JtYXQ9PT0ianNvbiIpe2xldCBuPUpTT04ucGFyc2UoTXJhLmRlY29kZShzKSk7cmV0dXJuIGM5dChuKX1yZXR1cm4gc31vbihlLHIpe2lmKGU9PT0icHJldmlldy1tZXNzYWdlIil7bGV0IG49cjtyPWkoKG89PntuOXQobykmJm4obyl9KSwibGlzdGVuZXIiKX1sZXR7bGlzdGVuZXI6YSxzdWJzY3JpYmU6c309akZhKHIpO3JldHVybiBzKHRoaXMuX2luc3RhbmNlLm9uKGUsZDIucHJveHkoYSkpKX1tb3VudChlLHIpe2xldCBhPWUgaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KGUpOk5GYS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkobDl0KGUpKSk7cmV0dXJuIHRoaXMuX2luc3RhbmNlLmxvYWRGaWxlcyhkMi50cmFuc2ZlcihhLFthLmJ1ZmZlcl0pLHttb3VudFBvaW50czpyPy5tb3VudFBvaW50fSl9c2V0UHJldmlld1NjcmlwdChlLHIpe3JldHVybiB0aGlzLl9pbnN0YW5jZS5zZXRQcmV2aWV3U2NyaXB0KGUscil9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fcnVudGltZUluZm8ucGF0aH1nZXQgd29ya2Rpcigpe3JldHVybiB0aGlzLl9ydW50aW1lSW5mby5jd2R9dGVhcmRvd24oKXtpZih0aGlzLl90b3JuRG93bil0aHJvdyBuZXcgRXJyb3IoIldlYkNvbnRhaW5lciBhbHJlYWR5IHRvcm4gZG93biIpO3RoaXMuX3Rvcm5Eb3duPSEwLHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyKCk7bGV0IGU9aShhc3luYygpPT57dHJ5e2F3YWl0IHRoaXMuZnMuX3RlYXJkb3duKCksYXdhaXQgdGhpcy5faW5zdGFuY2UudGVhcmRvd24oKX1maW5hbGx5e3RoaXMuX2luc3RhbmNlW2QyLnJlbGVhc2VQcm94eV0oKSx0Ll9pbnN0YW5jZT09PXRoaXMmJih0Ll9pbnN0YW5jZT1udWxsKX19LCJ0ZWFyZG93bkZuIik7dC5fdGVhcmRvd25Qcm9taXNlPWUoKX1zdGF0aWMgYXN5bmMgYm9vdChlPXt9KXthd2FpdCB0aGlzLl90ZWFyZG93blByb21pc2UsdC5fdGVhcmRvd25Qcm9taXNlPW51bGw7bGV0e3dvcmtkaXJOYW1lOnJ9PWU7aWYod2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQmJmUuY29lcD09PSJub25lIiYmY29uc29sZS53YXJuKGBBIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaGVhZGVyIGlzIHJlcXVpcmVkIGluIGNyb3NzIG9yaWdpbiBpc29sYXRlZCBlbnZpcm9ubWVudHMuClNldCB0aGUgJ2NvZXAnIG9wdGlvbiB0byAncmVxdWlyZS1jb3JwJy5gKSxyPy5pbmNsdWRlcygiLyIpfHxyPT09Ii4uInx8cj09PSIuIil0aHJvdyBuZXcgRXJyb3IoIndvcmtkaXJOYW1lIHNob3VsZCBiZSBhIHZhbGlkIGZvbGRlciBuYW1lIik7Zm9yKHZyLmJvb3RDYWxsZWQ9ITA7RzZlOylhd2FpdCBHNmU7aWYodC5faW5zdGFuY2UpdGhyb3cgbmV3IEVycm9yKCJPbmx5IGEgc2luZ2xlIFdlYkNvbnRhaW5lciBpbnN0YW5jZSBjYW4gYmUgYm9vdGVkIik7bGV0IGE9RkZhKGUpO0c2ZT1hLmNhdGNoKCgpPT57fSk7dHJ5e2xldCBzPWF3YWl0IGE7cmV0dXJuIHQuX2luc3RhbmNlPXMsc31maW5hbGx5e0c2ZT1udWxsfX19O2kobUMxLCJjb25maWd1cmVBUElLZXkiKTtPRmE9MSxSRmE9Mix1OXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiRGlyRW50SW1wbCIpfW5hbWU7X3R5cGU7Y29uc3RydWN0b3IoZSxyKXt0aGlzLm5hbWU9ZSx0aGlzLl90eXBlPXJ9aXNGaWxlKCl7cmV0dXJuIHRoaXMuX3R5cGU9PT1PRmF9aXNEaXJlY3RvcnkoKXtyZXR1cm4gdGhpcy5fdHlwZT09PVJGYX19LHA5dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJGU1dhdGNoZXIiKX1fYXBpQ2xpZW50O19wYXRoO19vcHRpb25zO19saXN0ZW5lcjtfd3JhcHBlZExpc3RlbmVyO193YXRjaGVyO19jbG9zZWQ9ITE7Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy5fYXBpQ2xpZW50PWUsdGhpcy5fcGF0aD1yLHRoaXMuX29wdGlvbnM9YSx0aGlzLl9saXN0ZW5lcj1zLHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuYWRkKHRoaXMpLHRoaXMuX3dyYXBwZWRMaXN0ZW5lcj0obixvKT0+e3RoaXMuX2xpc3RlbmVyJiYhdGhpcy5fY2xvc2VkJiZ0aGlzLl9saXN0ZW5lcihuLG8pfSx0aGlzLl9hcGlDbGllbnQuX2ZzLndhdGNoKHRoaXMuX3BhdGgsdGhpcy5fb3B0aW9ucyxLNmUodGhpcy5fd3JhcHBlZExpc3RlbmVyKSkudGhlbihuPT57aWYodGhpcy5fd2F0Y2hlcj1uLHRoaXMuX2Nsb3NlZClyZXR1cm4gdGhpcy5fdGVhcmRvd24oKX0pLmNhdGNoKGNvbnNvbGUuZXJyb3IpfWFzeW5jIGNsb3NlKCl7dGhpcy5fY2xvc2VkfHwodGhpcy5fY2xvc2VkPSEwLHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuZGVsZXRlKHRoaXMpLGF3YWl0IHRoaXMuX3RlYXJkb3duKCkpfWFzeW5jIF90ZWFyZG93bigpe2F3YWl0IHRoaXMuX3dhdGNoZXI/LmNsb3NlKCkuZmluYWxseSgoKT0+e3RoaXMuX3dhdGNoZXI/LltkMi5yZWxlYXNlUHJveHldKCl9KX19LGY5dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXZWJDb250YWluZXJQcm9jZXNzSW1wbCIpfW91dHB1dDtpbnB1dDtleGl0O19wcm9jZXNzO3N0ZG91dDtzdGRlcnI7Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy5vdXRwdXQ9cix0aGlzLl9wcm9jZXNzPWUsdGhpcy5pbnB1dD1uZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOmkobj0+e3RoaXMuX2dldFByb2Nlc3MoKT8ud3JpdGUobikuY2F0Y2goKCk9Pnt9KX0sIndyaXRlIil9KSx0aGlzLmV4aXQ9dGhpcy5fb25FeGl0KCksdGhpcy5zdGRvdXQ9YSx0aGlzLnN0ZGVycj1zfWtpbGwoKXt0aGlzLl9wcm9jZXNzPy5raWxsKCl9cmVzaXplKGUpe3RoaXMuX2dldFByb2Nlc3MoKT8ucmVzaXplKGUpfWFzeW5jIF9vbkV4aXQoKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3Byb2Nlc3Mub25FeGl0fWZpbmFsbHl7dGhpcy5fcHJvY2Vzcz8uW2QyLnJlbGVhc2VQcm94eV0oKSx0aGlzLl9wcm9jZXNzPW51bGx9fV9nZXRQcm9jZXNzKCl7cmV0dXJuIHRoaXMuX3Byb2Nlc3M9PW51bGwmJmNvbnNvbGUud2FybigiVGhpcyBwcm9jZXNzIGFscmVhZHkgZXhpdGVkIiksdGhpcy5fcHJvY2Vzc319LGg5dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJGaWxlU3lzdGVtQVBJQ2xpZW50Iil9X2ZzO193YXRjaGVycz1uZXcgU2V0KFtdKTtjb25zdHJ1Y3RvcihlKXt0aGlzLl9mcz1lfXJtKC4uLmUpe3JldHVybiB0aGlzLl9mcy5ybSguLi5lKX1hc3luYyByZWFkRmlsZShlLHIpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5yZWFkRmlsZShlLHIpfWFzeW5jIHJlbmFtZShlLHIpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5yZW5hbWUoZSxyKX1hc3luYyB3cml0ZUZpbGUoZSxyLGEpe2lmKHIgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcz1yLmJ1ZmZlci5zbGljZShyLmJ5dGVPZmZzZXQsci5ieXRlT2Zmc2V0K3IuYnl0ZUxlbmd0aCk7cj1kMi50cmFuc2ZlcihuZXcgVWludDhBcnJheShzKSxbc10pfWF3YWl0IHRoaXMuX2ZzLndyaXRlRmlsZShlLHIsYSl9YXN5bmMgcmVhZGRpcihlLHIpe2xldCBhPWF3YWl0IHRoaXMuX2ZzLnJlYWRkaXIoZSxyKTtyZXR1cm4gSEZhKGEpfHxxRmEoYSk/YTphLm1hcChuPT5uZXcgdTl0KG4ubmFtZSxuWyJTeW1ib2wodHlwZSkiXSkpfWFzeW5jIG1rZGlyKGUscil7cmV0dXJuIGF3YWl0IHRoaXMuX2ZzLm1rZGlyKGUscil9d2F0Y2goZSxyLGEpe3JldHVybiB0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmKGE9cixyPW51bGwpLG5ldyBwOXQodGhpcyxlLHIsYSl9YXN5bmMgX3RlYXJkb3duKCl7dGhpcy5fZnNbZDIucmVsZWFzZVByb3h5XSgpLGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLl93YXRjaGVyc10ubWFwKGU9PmUuY2xvc2UoKSkpfX07aShGRmEsInVuc3luY2hyb25pemVkQm9vdCIpO2kobTl0LCJiaW5hcnlMaXN0ZW5lciIpO2koSzZlLCJwcm94eUxpc3RlbmVyIik7aShCRmEsInNlcnZlckZhY3RvcnkiKTtpKEhGYSwiaXNTdHJpbmdBcnJheSIpO2kocUZhLCJpc1R5cGVkQXJyYXlDb2xsZWN0aW9uIik7aShWRmEsInN0cmVhbVdpdGhQdXNoIik7aShqRmEsInN5bmNTdWJzY3JpcHRpb24iKX0pO3ZhciBwZyx6cmE9dSgoKT0+e0NyYSgpO3BnPWNsYXNzIHR7c3RhdGlje2kodGhpcywiV2ViQ29udGFpbmVyRW52aXJvbm1lbnQiKX1zdGF0aWMgc2hhcmVkQ29udGFpbmVyPW51bGw7c3RhdGljIGJvb3RQcm9taXNlPW51bGw7X3JlYWR5PSExO3R5cGU9IndlYmNvbnRhaW5lciI7Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3JlYWR5fWdldCBjb250YWluZXIoKXtyZXR1cm4gdC5zaGFyZWRDb250YWluZXJ9YXN5bmMgaW5pdCgpe2lmKCEodGhpcy5fcmVhZHkmJnQuc2hhcmVkQ29udGFpbmVyKSl7aWYodC5ib290UHJvbWlzZSl7YXdhaXQgdC5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYodC5zaGFyZWRDb250YWluZXIpe3RoaXMuX3JlYWR5PSEwO3JldHVybn1pZih0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI+InUiKXRocm93IG5ldyBFcnJvcihgV2ViQ29udGFpbmVyIHJlcXVpcmVzIFNoYXJlZEFycmF5QnVmZmVyIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUuIEVuc3VyZSB5b3VyIHNlcnZlciBzZW5kcyB0aGVzZSBoZWFkZXJzOgogIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5OiBzYW1lLW9yaWdpbgogIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3k6IHJlcXVpcmUtY29ycGApO3QuYm9vdFByb21pc2U9R3JlLmJvb3QoKTt0cnl7dC5zaGFyZWRDb250YWluZXI9YXdhaXQgdC5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMH1jYXRjaChlKXt0aHJvdyB0LmJvb3RQcm9taXNlPW51bGwsZX19fWFzeW5jIGRlc3Ryb3koKXt0LnNoYXJlZENvbnRhaW5lciYmKHQuc2hhcmVkQ29udGFpbmVyLnRlYXJkb3duKCksdC5zaGFyZWRDb250YWluZXI9bnVsbCx0LmJvb3RQcm9taXNlPW51bGwsdGhpcy5fcmVhZHk9ITEpfWFzeW5jIHJlYWRGaWxlKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSwidXRmLTgiKX1hc3luYyB3cml0ZUZpbGUoZSxyKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMud3JpdGVGaWxlKGUsciwidXRmLTgiKX1hc3luYyByZWFkRGlyKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksKGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSx7d2l0aEZpbGVUeXBlczohMH0pKS5tYXAoYT0+KHt0eXBlOmEuaXNEaXJlY3RvcnkoKT8iZGlyZWN0b3J5IjoiZmlsZSIsbmFtZTphLm5hbWUscGF0aDplPT09Ii8iP2AvJHthLm5hbWV9YDpgJHtlfS8ke2EubmFtZX1gfSkpfWFzeW5jIG1rZGlyKGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ta2RpcihlLHtyZWN1cnNpdmU6ITB9KX1hc3luYyBybShlLHIpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ybShlLHtyZWN1cnNpdmU6cj8ucmVjdXJzaXZlPz8hMX0pfWFzeW5jIGV4aXN0cyhlKXt0aGlzLmVuc3VyZVJlYWR5KCk7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZShlKSwhMH1jYXRjaHt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSksITB9Y2F0Y2h7cmV0dXJuITF9fX13YXRjaChlLHIsYSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCBzPXRoaXMuY29udGFpbmVyLmZzLndhdGNoKGUse3JlY3Vyc2l2ZTphPy5yZWN1cnNpdmU/PyExfSxyKTtyZXR1cm57c3RvcDppKCgpPT5zLmNsb3NlKCksInN0b3AiKX19YXN5bmMgc3Bhd24oZSxyPVtdKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IGE9YXdhaXQgdGhpcy5jb250YWluZXIuc3Bhd24oZSxyKTtyZXR1cm57b3V0cHV0OmEub3V0cHV0LGlucHV0OmEuaW5wdXQsZXhpdDphLmV4aXQsa2lsbDppKCgpPT5hLmtpbGwoKSwia2lsbCIpfX1nZXRTaGVsbENvbW1hbmQoKXtyZXR1cm57Y29tbWFuZDoianNoIixsYWJlbDoianNoIixwcm9tcHQ6In4vIn19YXN5bmMgbW91bnQoZSl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLm1vdW50KGUpfWdldENvbnRhaW5lcigpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksdGhpcy5jb250YWluZXJ9ZW5zdXJlUmVhZHkoKXtpZighdGhpcy5fcmVhZHl8fCF0aGlzLmNvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIldlYkNvbnRhaW5lckVudmlyb25tZW50IG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgZmlyc3QuIil9fX0pO3ZhciBfcmE9dSgoKT0+e3pyYSgpfSk7dmFyIFo2ZT11KCgpPT57R3RhKCk7X3JhKCl9KTt2YXIgVHJhPXUoKCk9PntONnQoKX0pO3ZhciBZcmUsZzl0PXUoKCk9PntZcmU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGVybWluYWxUYWJNYW5hZ2VyIil9dGFicz1uZXcgTWFwO3RhYkNvdW50ZXI9MDt4dGVybUJ1bmRsZT1udWxsO3h0ZXJtRml0QWRkb25CdW5kbGU9bnVsbDtzZXRYdGVybU1vZHVsZXMoZSxyKXt0aGlzLnh0ZXJtQnVuZGxlPWUsdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlPXJ9Z2VuZXJhdGVUYWJJZCgpe3JldHVybiB0aGlzLnRhYkNvdW50ZXIrKyxgdGVybWluYWwtJHt0aGlzLnRhYkNvdW50ZXJ9LSR7RGF0ZS5ub3coKX1gfWdldERlZmF1bHRMYWJlbChlLHIpe3N3aXRjaChlKXtjYXNlInNoZWxsIjpyZXR1cm4iYmFzaCI7Y2FzZSJzY3JpcHQiOnJldHVybiByPy5zY3JpcHROYW1lfHwic2NyaXB0IjtjYXNlInBhY2thZ2UtdXBkYXRlIjpyZXR1cm4gcj8ucGFja2FnZU5hbWU/YHVwZGF0ZSAke3IucGFja2FnZU5hbWV9YDoidXBkYXRlIjtjYXNlImN1c3RvbSI6cmV0dXJuIHI/LmNvbW1hbmR8fCJwcm9jZXNzIjtkZWZhdWx0OnJldHVybiJ0ZXJtaW5hbCJ9fWdldERlZmF1bHRJY29uKGUpe3N3aXRjaChlKXtjYXNlInNoZWxsIjpyZXR1cm4ibHVjaWRlOnRlcm1pbmFsIjtjYXNlInNjcmlwdCI6cmV0dXJuImx1Y2lkZTpwbGF5IjtjYXNlInBhY2thZ2UtdXBkYXRlIjpyZXR1cm4ibHVjaWRlOnBhY2thZ2VDaGVjayI7Y2FzZSJjdXN0b20iOnJldHVybiJsdWNpZGU6Y29kZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnRlcm1pbmFsIn19Z2V0VGVybWluYWxUaGVtZShlKXtyZXR1cm4gZT97YmFja2dyb3VuZDoiI2ZmZmZmZiIsZm9yZWdyb3VuZDoiIzMzMzMzMyIsY3Vyc29yOiIjMzMzMzMzIixjdXJzb3JBY2NlbnQ6IiNmZmZmZmYiLHNlbGVjdGlvbjoicmdiYSgwLCAwLCAwLCAwLjIpIixibGFjazoiIzAwMDAwMCIscmVkOiIjY2QzMTMxIixncmVlbjoiIzAwYmMwMCIseWVsbG93OiIjOTQ5ODAwIixibHVlOiIjMDQ1MWE1IixtYWdlbnRhOiIjYmMwNWJjIixjeWFuOiIjMDU5OGJjIix3aGl0ZToiIzU1NTU1NSIsYnJpZ2h0QmxhY2s6IiM2NjY2NjYiLGJyaWdodFJlZDoiI2NkMzEzMSIsYnJpZ2h0R3JlZW46IiMxNGNlMTQiLGJyaWdodFllbGxvdzoiI2I1YmEwMCIsYnJpZ2h0Qmx1ZToiIzA0NTFhNSIsYnJpZ2h0TWFnZW50YToiI2JjMDViYyIsYnJpZ2h0Q3lhbjoiIzA1OThiYyIsYnJpZ2h0V2hpdGU6IiNhNWE1YTUifTp7YmFja2dyb3VuZDoiIzAwMDAwMCIsZm9yZWdyb3VuZDoiI2ZmZmZmZiIsY3Vyc29yOiIjZmZmZmZmIixjdXJzb3JBY2NlbnQ6IiMwMDAwMDAiLHNlbGVjdGlvbjoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIn19Y3JlYXRlVGFiKGUscil7aWYoIXRoaXMueHRlcm1CdW5kbGV8fCF0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUpdGhyb3cgbmV3IEVycm9yKCJUZXJtaW5hbFRhYk1hbmFnZXI6IHh0ZXJtIG1vZHVsZXMgbm90IGluaXRpYWxpemVkLiBDYWxsIHNldFh0ZXJtTW9kdWxlcygpIGZpcnN0LiIpO2xldCBhPXRoaXMuZ2VuZXJhdGVUYWJJZCgpLHM9ZS50eXBlLG49bmV3IHRoaXMueHRlcm1CdW5kbGUuVGVybWluYWwoe2NvbnZlcnRFb2w6ITAsY3Vyc29yQmxpbms6ITAsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHIpLGZvbnRGYW1pbHk6J01lbmxvLCBNb25hY28sICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZScsZm9udFNpemU6MTMsbGluZUhlaWdodDoxLjJ9KSxvPW5ldyB0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUuRml0QWRkb247bi5sb2FkQWRkb24obyk7bGV0IGw9e2lkOmEsbGFiZWw6ZS5sYWJlbHx8dGhpcy5nZXREZWZhdWx0TGFiZWwocyxlLm1ldGFkYXRhKSxpY29uTmFtZTplLmljb25OYW1lfHx0aGlzLmdldERlZmF1bHRJY29uKHMpLHR5cGU6cyxjbG9zZWFibGU6ZS5jbG9zZWFibGU/P3MhPT0ic2hlbGwiLHRlcm1pbmFsOm4sZml0QWRkb246byxwcm9jZXNzOm51bGwsaW5wdXRXcml0ZXI6bnVsbCxleGl0ZWQ6ITEsZXhpdENvZGU6bnVsbCxjcmVhdGVkQXQ6RGF0ZS5ub3coKSxtZXRhZGF0YTplLm1ldGFkYXRhfTtyZXR1cm4gdGhpcy50YWJzLnNldChhLGwpLGx9Z2V0VGFiKGUpe3JldHVybiB0aGlzLnRhYnMuZ2V0KGUpfWdldEFsbFRhYnMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRhYnMudmFsdWVzKCkpLnNvcnQoKGUscik9PmUuY3JlYXRlZEF0LXIuY3JlYXRlZEF0KX1nZXRUYWJDb3VudCgpe3JldHVybiB0aGlzLnRhYnMuc2l6ZX1oYXNUYWIoZSl7cmV0dXJuIHRoaXMudGFicy5oYXMoZSl9Y2xvc2VUYWIoZSl7bGV0IHI9dGhpcy50YWJzLmdldChlKTtpZighcilyZXR1cm4hMTtpZihyLnByb2Nlc3MmJiFyLmV4aXRlZCl0cnl7ci5wcm9jZXNzLmtpbGwoKX1jYXRjaChhKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBraWxsIHByb2Nlc3M6IixhKX10cnl7ci50ZXJtaW5hbC5kaXNwb3NlKCl9Y2F0Y2goYSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZGlzcG9zZSB0ZXJtaW5hbDoiLGEpfXJldHVybiB0aGlzLnRhYnMuZGVsZXRlKGUpLCEwfXJlbmFtZVRhYihlLHIpe2xldCBhPXRoaXMudGFicy5nZXQoZSk7cmV0dXJuIGE/KGEubGFiZWw9ciwhMCk6ITF9bWFya1RhYkV4aXRlZChlLHIpe2xldCBhPXRoaXMudGFicy5nZXQoZSk7YSYmKGEuZXhpdGVkPSEwLGEuZXhpdENvZGU9cil9c2V0VGFiUHJvY2VzcyhlLHIsYSl7bGV0IHM9dGhpcy50YWJzLmdldChlKTtzJiYocy5wcm9jZXNzPXIscy5pbnB1dFdyaXRlcj1hKX11cGRhdGVBbGxUaGVtZXMoZSl7bGV0IHI9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKGUpO2ZvcihsZXQgYSBvZiB0aGlzLnRhYnMudmFsdWVzKCkpYS50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXJ9ZGlzcG9zZUFsbCgpe2ZvcihsZXRbZV1vZiB0aGlzLnRhYnMpdGhpcy5jbG9zZVRhYihlKTt0aGlzLnRhYnMuY2xlYXIoKX19fSk7dmFyIExyYT17fTtWZShMcmEse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDooKT0+Yjl0fSk7dmFyIHlmLGkxLGI5dCxLcmU9dSgoKT0+e3ZlKCk7TXIoKTtsdCgpO1o2ZSgpO0tyKCk7JDZlKCk7Zzl0KCk7cDMoKTt5Zj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0saTE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGI5dD0oKCk9PntsZXQgdD1bdWUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VUZXJtaW5hbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1AoKV0scD1bUCgpXSx2PVtQKHt0eXBlOk51bWJlcn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1baWUoKV0sTz1baWUoKV0seWYodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5leGVjdXRpb25FbnZpcm9ubWVudCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmV4ZWN1dGlvbkVudmlyb25tZW50PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSx5Zih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNldHVwQ29tbWFuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2V0dXBDb21tYW5kImluIHosImhhcyIpLGdldDppKHo9Pnouc2V0dXBDb21tYW5kLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc2V0dXBDb21tYW5kPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCxmKSx5Zih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudmlyb25tZW50VmFyaWFibGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJlbnZpcm9ubWVudFZhcmlhYmxlcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmVudmlyb25tZW50VmFyaWFibGVzLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouZW52aXJvbm1lbnRWYXJpYWJsZXM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLHlmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQmFyV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhYkJhcldpZHRoImluIHosImhhcyIpLGdldDppKHo9PnoudGFiQmFyV2lkdGgsImdldCIpLHNldDppKCh6LEEpPT57ei50YWJCYXJXaWR0aD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZykseWYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFiQmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzaG93VGFiQmFyImluIHosImhhcyIpLGdldDppKHo9Pnouc2hvd1RhYkJhciwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnNob3dUYWJCYXI9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLHlmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGFicyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRhYnMsImdldCIpLHNldDppKCh6LEEpPT57ei50YWJzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSx5Zih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZVRhYklkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJhY3RpdmVUYWJJZCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmFjdGl2ZVRhYklkLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouYWN0aXZlVGFiSWQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLHlmKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89aSgoKT0+e2xldCBDPW5ldyBwZztyZXR1cm4gd2A8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7Q30+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbD5gfSwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07cmVzaXplT2JzZXJ2ZXI7dGFiTWFuYWdlcjsjZT1pMSh0aGlzLG8sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KEMpe3RoaXMuI2U9Q30jdD0oaTEodGhpcyxsKSxpMSh0aGlzLGQsIiIpKTtnZXQgc2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNldHVwQ29tbWFuZChDKXt0aGlzLiN0PUN9I3I9KGkxKHRoaXMsZiksaTEodGhpcyxoLHt9KSk7Z2V0IGVudmlyb25tZW50VmFyaWFibGVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGVudmlyb25tZW50VmFyaWFibGVzKEMpe3RoaXMuI3I9Q30jYT0oaTEodGhpcyxtKSxpMSh0aGlzLGIsMTYwKSk7Z2V0IHRhYkJhcldpZHRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRhYkJhcldpZHRoKEMpe3RoaXMuI2E9Q30jaT0oaTEodGhpcyxnKSxpMSh0aGlzLGssITApKTtnZXQgc2hvd1RhYkJhcigpe3JldHVybiB0aGlzLiNpfXNldCBzaG93VGFiQmFyKEMpe3RoaXMuI2k9Q30jcz0oaTEodGhpcyxNKSxpMSh0aGlzLF8sW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNzfXNldCB0YWJzKEMpe3RoaXMuI3M9Q30jbj0oaTEodGhpcyxTKSxpMSh0aGlzLEwsbnVsbCkpO2dldCBhY3RpdmVUYWJJZCgpe3JldHVybiB0aGlzLiNufXNldCBhY3RpdmVUYWJJZChDKXt0aGlzLiNuPUN9dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj0oaTEodGhpcyxFKSxudWxsKTtpc0JyaWdodD0hMTt0ZXJtaW5hbEFjdGlvbmJhcj1udWxsO2Vudmlyb25tZW50RGVmZXJyZWQ9bmV3IGNyLnNtYXJ0cHJvbWlzZS5EZWZlcnJlZDtlbnZpcm9ubWVudFByb21pc2U9dGhpcy5lbnZpcm9ubWVudERlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudGFiTWFuYWdlcj1uZXcgWXJlLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5oYW5kbGVSZXNpemUoKX0pfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgI2FjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCBkZWVzLWFjdGlvbmJhciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBiYXIgb24gdGhlIHJpZ2h0IHNpZGUgKi8KICAgICAgLnRhYi1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFiLWJhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWJhci10aXRsZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudGFiLWJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAudGFiLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCAzMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIuZXhpdGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbi5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTAlKSIsImhzbCgxNDIgMzAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgOTMlKSIsImhzbCgwIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEM9dGhpcy5hY3RpdmVUYWJJZD90aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBNYWluIHRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCI+CiAgICAgICAgICAke0M/d2AKICAgICAgICAgICAgPGRpdiBpZD0iYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIzMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+Tm8gdGVybWluYWwgb3Blbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gVmVydGljYWwgdGFiIGJhciBvbiB0aGUgcmlnaHQgLS0+CiAgICAgICAgJHt0aGlzLnNob3dUYWJCYXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXIiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnRhYkJhcldpZHRofXB4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItYmFyLXRpdGxlIj5UZXJtaW5hbHM8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQWRkVGFifSB0aXRsZT0iTmV3IFRlcm1pbmFsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKHo9PndgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC10YWIgJHt6LmlkPT09dGhpcy5hY3RpdmVUYWJJZD8iYWN0aXZlIjoiIn0gJHt6LmV4aXRlZD8iZXhpdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnN3aXRjaFRvVGFiKHouaWQpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgLmljb249JHt6Lmljb25OYW1lfQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiLWljb24gJHt6LnByb2Nlc3MmJiF6LmV4aXRlZD8icnVubmluZyI6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbGFiZWwiPiR7ei5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICR7ei5leGl0ZWQ/d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhpdC1iYWRnZSAke3ouZXhpdENvZGU9PT0wPyJzdWNjZXNzIjoiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICAgICAke3ouZXhpdENvZGV9CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3ouY2xvc2VhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7QT0+dGhpcy5oYW5kbGVUYWJDbG9zZShBLHouaWQpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgQz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmlzQnJpZ2h0PUMudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249Qy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShGPT57dGhpcy5pc0JyaWdodD1GLHRoaXMudGFiTWFuYWdlci51cGRhdGVBbGxUaGVtZXMoRil9KTtsZXQgej1zbi5nZXRJbnN0YW5jZSgpLFtBLCRdPWF3YWl0IFByb21pc2UuYWxsKFt6LmxvYWRYdGVybSgpLHoubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGFiTWFuYWdlci5zZXRYdGVybU1vZHVsZXMoQSwkKSxhd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7bGV0IEM9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO0MmJnRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKEMpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRhYk1hbmFnZXIuZGlzcG9zZUFsbCgpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgaGFuZGxlQWRkVGFiKCl7YXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWhhbmRsZVRhYkNsb3NlKEMseil7Qy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsb3NlVGFiKHopfXN3aXRjaFRvVGFiKEMpe2lmKEM9PT10aGlzLmFjdGl2ZVRhYklkKXJldHVybjtsZXQgej10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKEMpO2lmKCF6KXJldHVybjtsZXQgQT10aGlzLmFjdGl2ZVRhYklkO3RoaXMuYWN0aXZlVGFiSWQmJnRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSx0aGlzLmFjdGl2ZVRhYklkPUMsdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKHopLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zd2l0Y2hlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpDLHByZXZpb3VzVGFiSWQ6QX19KSl9KX1kZXRhY2hBY3RpdmVUZXJtaW5hbCgpe2xldCBDPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtDJiYoQy5pbm5lckhUTUw9IiIpfWF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIoQyl7bGV0IHo9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO3omJih0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoeiksei5pbm5lckhUTUw9IiIsQy50ZXJtaW5hbC5vcGVuKHopLEMuZml0QWRkb24uZml0KCksQy50ZXJtaW5hbC5mb2N1cygpKX1oYW5kbGVSZXNpemUoKXtpZih0aGlzLmFjdGl2ZVRhYklkKXtsZXQgQz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpO0MmJkMuZml0QWRkb24uZml0KCl9fWFzeW5jIHNwYXduUHJvY2Vzc0ZvclRhYihDLHosQT1bXSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe0MudGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksQy50ZXJtaW5hbC53cml0ZShgXHUyNzRDIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUuXHIKYCksQy50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpO3JldHVybn10cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8KEMudGVybWluYWwud3JpdGUoYEluaXRpYWxpemluZyBlbnZpcm9ubWVudC4uLlxyCmApLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpKTtsZXQgJD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKHosQSk7JC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6aShZPT57Qy50ZXJtaW5hbC53cml0ZShZKX0sIndyaXRlIil9KSk7bGV0IEY9JC5pbnB1dC5nZXRXcml0ZXIoKTtDLnRlcm1pbmFsLm9uRGF0YShZPT57Ri53cml0ZShZKX0pLHRoaXMudGFiTWFuYWdlci5zZXRUYWJQcm9jZXNzKEMuaWQsJCxGKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSwkLmV4aXQudGhlbihZPT57dGhpcy5oYW5kbGVQcm9jZXNzRXhpdChDLmlkLFkpfSl9Y2F0Y2goJCl7Qy50ZXJtaW5hbC53cml0ZSgiXHgxQlszMW0iKSxDLnRlcm1pbmFsLndyaXRlKGBcdTI3NEMgRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6ICR7JH1ccgpgKSxDLnRlcm1pbmFsLndyaXRlKCJceDFCWzBtIiksY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6IiwkKX19YXN5bmMgZ2V0U2hlbGxDb21tYW5kKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJiF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5JiZhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Py5nZXRTaGVsbENvbW1hbmQ/YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5nZXRTaGVsbENvbW1hbmQoKTp7Y29tbWFuZDoianNoIixsYWJlbDoianNoIixwcm9tcHQ6In4vIn19aGFuZGxlUHJvY2Vzc0V4aXQoQyx6KXtsZXQgQT10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKEMpO2lmKCFBKXJldHVybjt0aGlzLnRhYk1hbmFnZXIubWFya1RhYkV4aXRlZChDLHopO2xldCAkPXo9PT0wP2BccgpceDFCWzMybVtQcm9jZXNzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHldXHgxQlswbVxyCmA6YFxyClx4MUJbMzFtW1Byb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAke3p9XVx4MUJbMG1ccgpgO0EudGVybWluYWwud3JpdGUoJCksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvY2Vzcy1jb21wbGV0ZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpDLGV4aXRDb2RlOnp9fSkpLEEuY2xvc2VhYmxlJiZ0aGlzLnNob3dFeGl0ZWRUYWJBY3Rpb25iYXIoQyxBLmxhYmVsLHopfWFzeW5jIHNob3dFeGl0ZWRUYWJBY3Rpb25iYXIoQyx6LEEpe2xldCAkPUE9PT0wOyhhd2FpdCB0aGlzLnNob3dBY3Rpb25iYXIoe21lc3NhZ2U6JD9gIiR7en0iIGNvbXBsZXRlZC4gQ2xvc2UgdGFiP2A6YCIke3p9IiBleGl0ZWQgKGNvZGUgJHtBfSkuIENsb3NlIHRhYj9gLHR5cGU6JD8iaW5mbyI6Indhcm5pbmciLGljb246JD8ibHVjaWRlOmNoZWNrQ2lyY2xlIjoibHVjaWRlOmFsZXJ0VHJpYW5nbGUiLGFjdGlvbnM6W3tpZDoiY2xvc2UiLGxhYmVsOiJDbG9zZSBUYWIiLHByaW1hcnk6ITB9LHtpZDoia2VlcCIsbGFiZWw6IktlZXAgT3BlbiJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJjbG9zZSJ9LGRpc21pc3NpYmxlOiEwfSkpLmFjdGlvbklkPT09ImNsb3NlIiYmdGhpcy5jbG9zZVRhYihDKX1hc3luYyBjcmVhdGVTaGVsbFRhYihDKXtsZXQgej1hd2FpdCB0aGlzLmdldFNoZWxsQ29tbWFuZCgpLEE9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOkN8fGAke3oubGFiZWx8fHouY29tbWFuZH0gJHt0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKSsxfWAsY2xvc2VhYmxlOnRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPjB9LHRoaXMuaXNCcmlnaHQpO3JldHVybiB0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLnN3aXRjaFRvVGFiKEEuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgdGhpcy5zcGF3blByb2Nlc3NGb3JUYWIoQSx6LmNvbW1hbmQsei5hcmdzfHxbXSksdGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCk9PT0xJiZ0aGlzLnNldHVwQ29tbWFuZCYmKGF3YWl0IHRoaXMud2FpdEZvclByb21wdChBLnRlcm1pbmFsLHoucHJvbXB0fHwifi8iKSxBLmlucHV0V3JpdGVyJiZBLmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6QS5pZH19KSksQS5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKEMpe2xldCB6PXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoQyx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksQy5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKHouaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsQy5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYih6LEMuY29tbWFuZCxDLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOnouaWR9fSkpLHouaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihDKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihDKT8odGhpcy5zd2l0Y2hUb1RhYihDKSwhMCk6ITF9Y2xvc2VUYWIoQyl7bGV0IHo9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihDKTtpZighenx8IXouY2xvc2VhYmxlKXJldHVybiExO2lmKEM9PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgQT10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLCQ9QS5maW5kSW5kZXgoWT0+WS5pZD09PUMpLEY9QVskKzFdfHxBWyQtMV07Rj90aGlzLnN3aXRjaFRvVGFiKEYuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKEMpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6Q319KSksITB9d3JpdGVUb1RhYihDLHope2xldCBBPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoQyk7cmV0dXJuIEE/KEEudGVybWluYWwud3JpdGUoeiksITApOiExfXNlbmRJbnB1dFRvVGFiKEMseil7bGV0IEE9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihDKTtyZXR1cm4hQXx8IUEuaW5wdXRXcml0ZXI/ITE6KEEuaW5wdXRXcml0ZXIud3JpdGUoeiksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoQyl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhDKX1hc3luYyB3YWl0Rm9yUHJvbXB0KEMseil7cmV0dXJuIG5ldyBQcm9taXNlKEE9PntsZXQgJD1pKCgpPT57bGV0IEY9Qy5idWZmZXIuYWN0aXZlO2ZvcihsZXQgWT0wO1k8Ri5sZW5ndGg7WSsrKXtsZXQgRz1GLmdldExpbmUoWSk7aWYoRyYmRy50cmFuc2xhdGVUb1N0cmluZygpLmluY2x1ZGVzKHopKXtzZXRUaW1lb3V0KCgpPT57QSgpfSwxMDApO3JldHVybn19c2V0VGltZW91dCgkLDEwMCl9LCJjaGVja1Byb21wdCIpOyQoKX0pfWFzeW5jIHNldEVudmlyb25tZW50VmFyaWFibGVzKEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRocm93IG5ldyBFcnJvcigiTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IGF2YWlsYWJsZSIpO2xldCB6PSIiO2ZvcihsZXQgQSBpbiBDKXorPWBleHBvcnQgJHtBfT0iJHtDW0FdfSIKYDthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSgiL3NvdXJjZS5lbnYiLHopfWdldEV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9c3RhdGlje2kxKGEscil9fTtyZXR1cm4gQj1hfSkoKX0pO3ZhciB4OXQsdjl0LERyYSwkcmEsQXJhLEVyYSxJcmE9dSgoKT0+e3ZlKCk7QnkoKTtGcCgpO1BwZSgpO1pwZSgpO1dwZSgpO3c5KCk7TDZlKCk7eDl0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx2OXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LERyYT0oKCk9PntsZXQgdD1bdWUoImRlbW8tdmlldy1kYXNoYm9hcmQiKV0sZSxyPVtdLGEscz15ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdEYXNoYm9hcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDt4OXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgfQogICAgYF07c3RhdHNUaWxlcz1be2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6MTIzNCx0eXBlOiJudW1iZXIiLGljb246ImZhVXNlcnMiLGRlc2NyaXB0aW9uOiIrMTUlIGZyb20gbGFzdCB3ZWVrIixjb2xvcjoiIzIyYzU1ZSJ9LHtpZDoicGFnZXZpZXdzIix0aXRsZToiUGFnZSBWaWV3cyIsdmFsdWU6NTY3MDAsdHlwZToibnVtYmVyIixpY29uOiJmYUV5ZSIsZGVzY3JpcHRpb246IjU2LjdrIHRvdGFsIHZpZXdzIixjb2xvcjoiIzNiODJmNiJ9LHtpZDoidXB0aW1lIix0aXRsZToiU3lzdGVtIFVwdGltZSIsdmFsdWU6ODksdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246ImZhU2VydmVyIixkZXNjcmlwdGlvbjoiTGFzdCAzMCBkYXlzIixjb2xvcjoiIzEwYjk4MSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTo4MCxjb2xvcjoiI2VmNDQ0NCJ9LHt2YWx1ZTo5MCxjb2xvcjoiI2Y1OWUwYiJ9LHt2YWx1ZToxMDAsY29sb3I6IiMxMGI5ODEifV19fSx7aWQ6InJlc3BvbnNlIix0aXRsZToiQXZnIFJlc3BvbnNlIFRpbWUiLHZhbHVlOjMuMix1bml0OiJzIix0eXBlOiJudW1iZXIiLGljb246ImZhQ2xvY2siLGRlc2NyaXB0aW9uOiItMC41cyBpbXByb3ZlbWVudCIsY29sb3I6IiNmNTllMGIifSx7aWQ6InJldmVudWUiLHRpdGxlOiJNb250aGx5IFJldmVudWUiLHZhbHVlOjQ4NTIwLHVuaXQ6IiQiLHR5cGU6InRyZW5kIixpY29uOiJmYURvbGxhclNpZ24iLGRlc2NyaXB0aW9uOiIrOC4yJSBncm93dGgiLGNvbG9yOiIjMjJjNTVlIix0cmVuZERhdGE6WzM1ZTMsMzhlMywzNzUwMCw0MWUzLDM5ODAwLDQyZTMsNDQxMDAsNDMyMDAsNDU2MDAsNDcxMDAsNDY4MDAsNDg1MjBdfSx7aWQ6InRyYWZmaWMiLHRpdGxlOiJUcmFmZmljIFRyZW5kIix2YWx1ZToxNjgwLHR5cGU6InRyZW5kIixpY29uOiJmYUNoYXJ0TGluZSIsZGVzY3JpcHRpb246Ikxhc3QgNyBkYXlzIixjb2xvcjoiIzNiODJmNiIsdHJlbmREYXRhOlsxMjAwLDEzNTAsMTEwMCwxNDUwLDE2MDAsMTU1MCwxNjgwXX1dO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+RGFzaGJvYXJkPC9oMT4KICAgICAgPHA+V2VsY29tZSB0byB5b3VyIGFwcGxpY2F0aW9uIGRhc2hib2FyZC4gSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgbWV0cmljczo8L3A+CiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMuc3RhdHNUaWxlc30KICAgICAgICBAdGlsZS1hY3Rpb249JHtvPT57Y29uc29sZS5sb2coIlRpbGUgYWN0aW9uOiIsby5kZXRhaWwpfX0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8aDIgc3R5bGU9Im1hcmdpbi10b3A6IDQwcHg7Ij5SZWNlbnQgQWN0aXZpdHk8L2gyPgogICAgICA8cD5CZWxvdyBpcyBhIGxvZyBvZiByZWNlbnQgc3lzdGVtIGV2ZW50cyBhbmQgdXNlciBhY3Rpdml0eSB0byBkZW1vbnN0cmF0ZSBzY3JvbGxhYmxlIGNvbnRlbnQuPC9wPgoKICAgICAgJHtbe3RpbWU6IjIgbWluIGFnbyIsZXZlbnQ6IlVzZXIgam9obkBleGFtcGxlLmNvbSBsb2dnZWQgaW4gZnJvbSAxOTIuMTY4LjEuNDIiLHR5cGU6ImluZm8ifSx7dGltZToiNSBtaW4gYWdvIixldmVudDoiRGVwbG95bWVudCB2My41Mi4xIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgb24gcHJvZHVjdGlvbiIsdHlwZToic3VjY2VzcyJ9LHt0aW1lOiIxMiBtaW4gYWdvIixldmVudDoiRGF0YWJhc2UgYmFja3VwIGZpbmlzaGVkIFx1MjAxNCAyLjQgR0IgY29tcHJlc3NlZCIsdHlwZToiaW5mbyJ9LHt0aW1lOiIxOCBtaW4gYWdvIixldmVudDoiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQgZm9yIGFwaS5leGFtcGxlLmNvbSAoZXhwaXJlcyAyMDI3LTA0LTAzKSIsdHlwZToic3VjY2VzcyJ9LHt0aW1lOiIyNSBtaW4gYWdvIixldmVudDoiTWVtb3J5IHVzYWdlIHNwaWtlIG9uIHdvcmtlci0wMyAoOTIlKSBcdTIwMTQgYXV0by1zY2FsZWQgdG8gNCBpbnN0YW5jZXMiLHR5cGU6Indhcm5pbmcifSx7dGltZToiMzEgbWluIGFnbyIsZXZlbnQ6Ik5ldyB1c2VyIHJlZ2lzdHJhdGlvbjogc2FyYWhAY29tcGFueS5pbyIsdHlwZToiaW5mbyJ9LHt0aW1lOiI0NSBtaW4gYWdvIixldmVudDonU2NoZWR1bGVkIGpvYiAiY2xlYW51cC10ZW1wLWZpbGVzIiBjb21wbGV0ZWQgXHUyMDE0IHJlbW92ZWQgMSwyNDcgZmlsZXMnLHR5cGU6ImluZm8ifSx7dGltZToiMSBob3VyIGFnbyIsZXZlbnQ6IkFQSSByYXRlIGxpbWl0IHJlYWNoZWQgZm9yIGNsaWVudCBhcHAtbW9iaWxlLWlvcyAoNDI5IHJlc3BvbnNlcykiLHR5cGU6Indhcm5pbmcifSx7dGltZToiMS41IGhvdXJzIGFnbyIsZXZlbnQ6IkNETiBjYWNoZSBwdXJnZWQgZm9yIC9hc3NldHMvKiBcdTIwMTQgMzQwIG9iamVjdHMgaW52YWxpZGF0ZWQiLHR5cGU6ImluZm8ifSx7dGltZToiMiBob3VycyBhZ28iLGV2ZW50OiJGYWlsZWQgbG9naW4gYXR0ZW1wdCBmb3IgYWRtaW5AZXhhbXBsZS5jb20gZnJvbSAyMDMuMC4xMTMuNTAgKGJsb2NrZWQpIix0eXBlOiJlcnJvciJ9LHt0aW1lOiIyLjUgaG91cnMgYWdvIixldmVudDoiV2ViaG9vayBkZWxpdmVyeSB0byBodHRwczovL2hvb2tzLnNsYWNrLmNvbSBzdWNjZWVkZWQgKDIwMCBPSykiLHR5cGU6ImluZm8ifSx7dGltZToiMyBob3VycyBhZ28iLGV2ZW50OidDcm9uIGpvYiAiZ2VuZXJhdGUtcmVwb3J0cyIgc3RhcnRlZCBcdTIwMTQgcHJvY2Vzc2luZyBRMSAyMDI2IGRhdGEnLHR5cGU6ImluZm8ifSx7dGltZToiMy41IGhvdXJzIGFnbyIsZXZlbnQ6IkxvYWQgYmFsYW5jZXIgaGVhbHRoIGNoZWNrOiBhbGwgOCBub2RlcyBoZWFsdGh5Iix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjQgaG91cnMgYWdvIixldmVudDoiRE5TIHByb3BhZ2F0aW9uIGNvbXBsZXRlIGZvciBuZXcgc3ViZG9tYWluIHN0YWdpbmcuZXhhbXBsZS5jb20iLHR5cGU6InN1Y2Nlc3MifV0ubWFwKG89PndgCiAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAiPgogICAgICAgICAgPHNwYW4gc3R5bGU9IgogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTUlKSIsImhzbCgwIDAlIDQ1JSkiKX07CiAgICAgICAgICAiPiR7by50aW1lfTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSIKICAgICAgICAgICAgY29sb3I6ICR7by50eXBlPT09ImVycm9yIj94LmJkVGhlbWUoImhzbCgwIDcyJSA1MCUpIiwiaHNsKDAgNzIlIDY1JSkiKTpvLnR5cGU9PT0id2FybmluZyI/eC5iZFRoZW1lKCJoc2woMjUgOTUlIDUwJSkiLCJoc2woMjUgOTUlIDYzJSkiKTpvLnR5cGU9PT0ic3VjY2VzcyI/eC5iZFRoZW1lKCJoc2woMTQyIDcwJSA0MCUpIiwiaHNsKDE0MiA3MCUgNTUlKSIpOnguYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDc1JSkiKX07CiAgICAgICAgICAiPiR7by5ldmVudH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1zdGF0aWN7djl0KGEscil9fTtyZXR1cm4gbj1hfSkoKSwkcmE9KCgpPT57bGV0IHQ9W3VlKCJkZW1vLXZpZXctYW5hbHl0aWNzIildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlbW9WaWV3QW5hbHl0aWNzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7eDl0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+QW5hbHl0aWNzPC9oMT4KICAgICAgPHA+VGhpcyBpcyB0aGUgYW5hbHl0aWNzIHZpZXcuIFlvdSBjYW4gYWRkIGNoYXJ0cyBhbmQgbWV0cmljcyBoZXJlLjwvcD4KICAgIGB9c3RhdGlje3Y5dChhLHIpfX07cmV0dXJuIG49YX0pKCksQXJhPSgoKT0+e2xldCB0PVt1ZSgiZGVtby12aWV3LXNldHRpbmdzIildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlbW9WaWV3U2V0dGluZ3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDt4OXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICAgIC5ob3Jpem9udGFsLWZvcm0tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNWY1ZjUiLCIjMWExYTFhIil9OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbjogMTVweCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+Q29uZmlndXJlIHlvdXIgYXBwbGljYXRpb24gc2V0dGluZ3MgYmVsb3c6PC9wPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkdlbmVyYWwgU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBwTmFtZSIgbGFiZWw9IkFwcGxpY2F0aW9uIE5hbWUiIHZhbHVlPSJNeSBBcHAiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwaUVuZHBvaW50IiBsYWJlbD0iQVBJIEVuZHBvaW50IiB2YWx1ZT0iaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJlbnZpcm9ubWVudCIKICAgICAgICAgICAgbGFiZWw9IkVudmlyb25tZW50IgogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJEZXZlbG9wbWVudCIsa2V5OiJkZXYifSx7b3B0aW9uOiJTdGFnaW5nIixrZXk6InN0YWdpbmcifSx7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVBbmFseXRpY3MiIGxhYmVsPSJFbmFibGUgQW5hbHl0aWNzIiB2YWx1ZT0iZmFsc2UiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNhdmUgR2VuZXJhbCBTZXR0aW5nczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+RGlzcGxheSBQcmVmZXJlbmNlczwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24iPgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij5RdWljayBkaXNwbGF5IHNldHRpbmdzIHVzaW5nIGhvcml6b250YWwgbGF5b3V0OjwvcD4KICAgICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJ0aGVtZSIKICAgICAgICAgICAgICBsYWJlbD0iVGhlbWUiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IixrZXk6ImxpZ2h0In0se29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn0se29wdGlvbjoiQXV0byIsa2V5OiJhdXRvIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkRhcmsiLGtleToiZGFyayJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0ibGFuZ3VhZ2UiCiAgICAgICAgICAgICAgbGFiZWw9Ikxhbmd1YWdlIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn0se29wdGlvbjoiR2VybWFuIixrZXk6ImRlIn0se29wdGlvbjoiU3BhbmlzaCIsa2V5OiJlcyJ9LHtvcHRpb246IkZyZW5jaCIsa2V5OiJmciJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iY29tcGFjdE1vZGUiIGxhYmVsPSJDb21wYWN0IE1vZGUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siUmVhbC10aW1lIiwiRGFpbHkgRGlnZXN0IiwiV2Vla2x5IFN1bW1hcnkiLCJOZXZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUmVhbC10aW1lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbEZyZXF1ZW5jeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InB1c2hOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIFB1c2ggTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0ic291bmRBbGVydHMiIGxhYmVsPSJQbGF5IFNvdW5kIGZvciBBbGVydHMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5VcGRhdGUgTm90aWZpY2F0aW9uczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3t2OXQoYSxyKX19O3JldHVybiBuPWF9KSgpLEVyYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICB0ZXJtaW5hbFNldHVwQ29tbWFuZD0iZWNobyAnV2VsY29tZSB0byB0aGUgdGVybWluYWwhJyIKICAgICAgLmdsb2JhbE1lc3NhZ2VzPSR7W3tpZDoidXBkYXRlIix0eXBlOiJpbmZvIixtZXNzYWdlOiJBIG5ldyB2ZXJzaW9uICh2My41MC4wKSBpcyBhdmFpbGFibGUgd2l0aCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcy4iLGRpc21pc3NpYmxlOiEwLGFjdGlvbnM6W3tuYW1lOiJVcGRhdGUgTm93IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIlVwZGF0aW5nLi4uIiksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJPcGVuaW5nIHJlbGVhc2Ugbm90ZXMuLi4iKSwiYWN0aW9uIil9XX0se2lkOiJtYWludGVuYW5jZSIsdHlwZToid2FybmluZyIsbWVzc2FnZToiU2NoZWR1bGVkIG1haW50ZW5hbmNlIHdpbmRvdzogQXByaWwgNSwgMjAyNiAwMjowMFx1MjAxMzA2OjAwIFVUQy4gU29tZSBzZXJ2aWNlcyBtYXkgYmUgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuIixkaXNtaXNzaWJsZTohMH0se2lkOiJjcml0aWNhbCIsdHlwZToiZXJyb3IiLG1lc3NhZ2U6IllvdXIgU1NMIGNlcnRpZmljYXRlIGV4cGlyZXMgaW4gMyBkYXlzLiBSZW5ldyBub3cgdG8gYXZvaWQgc2VydmljZSBkaXNydXB0aW9uLiIsZGlzbWlzc2libGU6ITEsYWN0aW9uczpbe25hbWU6IlJlbmV3IENlcnRpZmljYXRlIixpY29uTmFtZToibHVjaWRlOnNoaWVsZENoZWNrIixhY3Rpb246aSgoKT0+YWxlcnQoIlJlbmV3aW5nIGNlcnRpZmljYXRlLi4uIiksImFjdGlvbiIpfV19XX0KICAgICAgLnZpZXdUYWJzPSR7W3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsZWxlbWVudDpEcmF9LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixlbGVtZW50OiRyYSxzdWJWaWV3czpbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixlbGVtZW50OiRyYX0se25hbWU6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGVsZW1lbnQ6RHJhfV19LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsc3ViVmlld3M6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGVsZW1lbnQ6QXJhfSx7bmFtZToiQmlsbGluZyIsaWNvbk5hbWU6Imx1Y2lkZTpjcmVkaXRDYXJkIixlbGVtZW50OkFyYX1dfV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7dD0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIsdC5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGZnLGhsLFByYSxOcmE9dSgoKT0+e0lyYSgpO3ZlKCk7S3IoKTtsdCgpO2ZnPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxobD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUHJhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zaW1wbGUtYXBwZGFzaCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzU2ltcGxlQXBwRGFzaCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCh7dHlwZTpBcnJheX0pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOkFycmF5fSldLHk9W2llKCldLE49W2llKCldLGZnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibmFtZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm5hbWUsImdldCIpLHNldDppKChFLEIpPT57RS5uYW1lPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sbyxsKSxmZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ2aWV3VGFicyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnZpZXdUYWJzLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uudmlld1RhYnM9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxkLGYpLGZnKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxTZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InRlcm1pbmFsU2V0dXBDb21tYW5kImluIEUsImhhcyIpLGdldDppKEU9PkUudGVybWluYWxTZXR1cENvbW1hbmQsImdldCIpLHNldDppKChFLEIpPT57RS50ZXJtaW5hbFNldHVwQ29tbWFuZD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGgsbSksZmcodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnbG9iYWxNZXNzYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZ2xvYmFsTWVzc2FnZXMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5nbG9iYWxNZXNzYWdlcywiZ2V0Iiksc2V0OmkoKEUsQik9PntFLmdsb2JhbE1lc3NhZ2VzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sYixnKSxmZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2VsZWN0ZWRWaWV3ImluIEUsImhhcyIpLGdldDppKEU9PkUuc2VsZWN0ZWRWaWV3LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uuc2VsZWN0ZWRWaWV3PUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sayxNKSxmZyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9hY3RpdmVNZXNzYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iX2FjdGl2ZU1lc3NhZ2VzImluIEUsImhhcyIpLGdldDppKEU9PkUuX2FjdGl2ZU1lc3NhZ2VzLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuX2FjdGl2ZU1lc3NhZ2VzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sXyxTKSxmZyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpMfSxudWxsLHIpLE89YT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPUVyYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPWhsKHRoaXMsbywiQXBwbGljYXRpb24gRGFzaGJvYXJkIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShMKXt0aGlzLiNlPUx9I3Q9KGhsKHRoaXMsbCksaGwodGhpcyxkLFtdKSk7Z2V0IHZpZXdUYWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZpZXdUYWJzKEwpe3RoaXMuI3Q9TH0jcj0oaGwodGhpcyxmKSxobCh0aGlzLGgsJ2VjaG8gIlRlcm1pbmFsIHJlYWR5IicpKTtnZXQgdGVybWluYWxTZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGVybWluYWxTZXR1cENvbW1hbmQoTCl7dGhpcy4jcj1MfSNhPShobCh0aGlzLG0pLGhsKHRoaXMsYixbXSkpO2dldCBnbG9iYWxNZXNzYWdlcygpe3JldHVybiB0aGlzLiNhfXNldCBnbG9iYWxNZXNzYWdlcyhMKXt0aGlzLiNhPUx9I2k9KGhsKHRoaXMsZyksaGwodGhpcyxrLHZvaWQgMCkpO2dldCBzZWxlY3RlZFZpZXcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRWaWV3KEwpe3RoaXMuI2k9TH0jcz0oaGwodGhpcyxNKSxobCh0aGlzLF8sW10pKTtnZXQgX2FjdGl2ZU1lc3NhZ2VzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IF9hY3RpdmVNZXNzYWdlcyhMKXt0aGlzLiNzPUx9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmFwcGJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgbWluLWNvbnRlbnQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSIsIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24td3JhcHBlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYXBwTmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI2MjYyNiIsIiNlNWU1ZTUiKX07CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgc3BhbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiIC5jaGV2cm9uIHsKICAgICAgICBmbGV4OiAwIDAgYXV0bzsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzOmhvdmVyIC5jaGV2cm9uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzLmdyb3VwQWN0aXZlIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjoKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93cyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLXRvcCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLWJvdHRvbSAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuc3ViVmlld3MuZXhwYW5kZWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3czo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cy5leHBhbmRlZDo6YmVmb3JlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc3ViVmlld3MtaW5uZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc3ViIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIuc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTEycHg7CiAgICAgIH0KCiAgICAgIC5hcHBBY3Rpb25zIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgODQlIDYwJSAvIDAuMDgpIiwiaHNsKDAgODQlIDYwJSAvIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA4NCUgNDUlKSIsImhzbCgwIDg0JSA2NSUpIil9OwogICAgICB9CgogICAgICAuYXBwY29udGVudCB7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIGJvdHRvbTogMjRweDsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjQwcHgpOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuYXBwY29udGVudDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gYm90dG9tLAogICAgICAgICAgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC04cHg7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gdG9wLAogICAgICAgICAgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgei1pbmRleDogMTE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwoKICAgICAgfQoKICAgICAgLmNvbnRyb2w6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuY29udHJvbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY29udHJvbC5zdGF0dXMtdGVybWluYWwgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogR2xvYmFsIE1lc3NhZ2UgQmFubmVycyAqLwogICAgICAubWVzc2FnZUJhbm5lckFyZWEgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlRG93biAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci5kaXNtaXNzaW5nIHsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlVXAgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGJhbm5lclNsaWRlRG93biB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgYmFubmVyU2xpZGVVcCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTUpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMTgpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3MgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGluZm8gKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NyUpIiwiaHNsKDIxMCA1MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgNzAlIDMwJSkiLCJoc2woMjEwIDcwJSA4MCUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzAwODRmZjsKICAgICAgfQogICAgICAubWVzc2FnZUJhbm5lci1pbmZvIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDg0ZmY7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogc3VjY2VzcyAqLwogICAgICAubWVzc2FnZUJhbm5lci1zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTclKSIsImhzbCgxNDIgMzAlIDEwJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMTQyIDUwJSAyNSUpIiwiaHNsKDE0MiA1MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMyMmM1NWU7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItc3VjY2VzcyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IHdhcm5pbmcgKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgzOCA5MCUgOTclKSIsImhzbCgzOCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgzOCA2MCUgMjUlKSIsImhzbCgzOCA2MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmNTllMGI7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGVycm9yICovCiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzAlIDk3JSkiLCJoc2woMCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDYwJSAzMCUpIiwiaHNsKDAgNjAlIDgwJSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZWY0NDQ0OwogICAgICB9CiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50IHsKICAgICAgICB0b3A6IHZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHggLSB2YXIoLS1iYW5uZXItYXJlYS1oZWlnaHQsIDBweCkpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWljb24td3JhcHBlciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmxheW91dEdyaWQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBOYW1lIj4ke3RoaXMubmFtZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TmF2aWdhdGlvbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3VGFicyI+CiAgICAgICAgICAgICAgJHt0aGlzLnZpZXdUYWJzLm1hcChMPT57bGV0IEU9ISFMLnN1YlZpZXdzPy5sZW5ndGgsQj1FJiZ0aGlzLmlzR3JvdXBBY3RpdmUoTCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiAke3RoaXMuc2VsZWN0ZWRWaWV3PT09TD8ic2VsZWN0ZWQiOiIifSAke0U/Imhhc1N1YnMiOiIifSAke0I/Imdyb3VwQWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubG9hZFZpZXcoTCl9CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke0wuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7TC5pY29uTmFtZS5pbmNsdWRlcygiOiIpP0wuaWNvbk5hbWU6YGx1Y2lkZToke0wuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpmaWxlIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtMLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICR7RT93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgJHtFP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InN1YlZpZXdzICR7Qj8iZXhwYW5kZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID9pbmVydD0keyFCfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YlZpZXdzLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgJHtMLnN1YlZpZXdzLm1hcChDPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiBzdWIgJHt0aGlzLnNlbGVjdGVkVmlldz09PUM/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3o9Pnt6LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubG9hZFZpZXcoQyl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke0MuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke0MuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9DLmljb25OYW1lOmBsdWNpZGU6JHtDLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpkb3QifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7Qy5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBBY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ291dCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bG9nT3V0In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPlNpZ24gb3V0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5fYWN0aXZlTWVzc2FnZXMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlQmFubmVyQXJlYSI+CiAgICAgICAgICAke3RoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcChMPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2VCYW5uZXIgbWVzc2FnZUJhbm5lci0ke0wudHlwZX0iCiAgICAgICAgICAgICAgZGF0YS1tZXNzYWdlLWlkPSIke0wuaWR9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmdldE1lc3NhZ2VJY29uKEwpfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2VCYW5uZXItdGV4dCI+JHtMLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICR7TC5hY3Rpb25zPy5sZW5ndGg/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7TC5hY3Rpb25zLm1hcChFPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9uIiBAY2xpY2s9JHsoKT0+RS5hY3Rpb24oKX0+CiAgICAgICAgICAgICAgICAgICAgICAke0UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke0UuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9FLmljb25OYW1lOmBsdWNpZGU6JHtFLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtFLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHtMLmRpc21pc3NpYmxlIT09ITE/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItZGlzbWlzcyIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTWVzc2FnZShMLmlkKX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp4In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBjb250ZW50Ij4KICAgICAgICAgIDwhLS0gQ29udGVudCBnb2VzIGhlcmUgLS0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy1jb25uZWN0ZWQiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6d2lmaSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+Q29ubmVjdGVkPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy10ZXJtaW5hbCIgQGNsaWNrPSR7dGhpcy5sYXVuY2hUZXJtaW5hbH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp0ZXJtaW5hbCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+VGVybWluYWw8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChMKXtsZXQgRT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtpZihzdXBlci5maXJzdFVwZGF0ZWQoTCksdGhpcy52aWV3VGFicyYmdGhpcy52aWV3VGFicy5sZW5ndGg+MCl7bGV0IEI9dGhpcy5zZWxlY3RlZFZpZXd8fHRoaXMudmlld1RhYnNbMF07YXdhaXQgdGhpcy5sb2FkVmlldyhCKX19d2lsbFVwZGF0ZShMKXtpZihMLmhhcygiZ2xvYmFsTWVzc2FnZXMiKSl7bGV0IEU9bmV3IFNldCh0aGlzLmdsb2JhbE1lc3NhZ2VzLm1hcChGPT5GLmlkKSksQj1uZXcgU2V0KHRoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcChGPT5GLmlkKSksQz10aGlzLmdsb2JhbE1lc3NhZ2VzLmZpbHRlcihGPT4hQi5oYXMoRi5pZCkpLHo9TC5nZXQoImdsb2JhbE1lc3NhZ2VzIil8fFtdLEE9bmV3IFNldCh6Lm1hcChGPT5GLmlkKSksJD1uZXcgU2V0KFsuLi5BXS5maWx0ZXIoRj0+IUUuaGFzKEYpKSk7dGhpcy5fYWN0aXZlTWVzc2FnZXM9Wy4uLnRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihGPT4hJC5oYXMoRi5pZCkpLC4uLkNdfX11cGRhdGVkKEwpe3N1cGVyLnVwZGF0ZWQoTCksdGhpcy51cGRhdGVCYW5uZXJPZmZzZXQoKX11cGRhdGVCYW5uZXJPZmZzZXQoKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tZXNzYWdlQmFubmVyQXJlYSIpLEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLEI9TD9MLm9mZnNldEhlaWdodDowO0U/LnN0eWxlLnNldFByb3BlcnR5KCItLWJhbm5lci1hcmVhLWhlaWdodCIsYCR7Qn1weGApfSl9Z2V0TWVzc2FnZUljb24oTCl7cmV0dXJuIEwuaWNvbj9MLmljb246e2luZm86Imx1Y2lkZTppbmZvIixzdWNjZXNzOiJsdWNpZGU6Y2lyY2xlQ2hlY2siLHdhcm5pbmc6Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0IixlcnJvcjoibHVjaWRlOmNpcmNsZVgifVtMLnR5cGVdfWFkZE1lc3NhZ2UoTCl7bGV0IEU9TC5pZHx8YG1zZy0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YCxCPXtkaXNtaXNzaWJsZTohMCwuLi5MLGlkOkV9O3JldHVybiB0aGlzLl9hY3RpdmVNZXNzYWdlcz1bLi4udGhpcy5fYWN0aXZlTWVzc2FnZXMsQl0sRX1yZW1vdmVNZXNzYWdlKEwpe2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtbWVzc2FnZS1pZD0iJHtMfSJdYCk7RT8oRS5jbGFzc0xpc3QuYWRkKCJkaXNtaXNzaW5nIiksRS5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLCgpPT57dGhpcy5fYWN0aXZlTWVzc2FnZXM9dGhpcy5fYWN0aXZlTWVzc2FnZXMuZmlsdGVyKEI9PkIuaWQhPT1MKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZXNzYWdlLWRpc21pc3MiLHtkZXRhaWw6e2lkOkx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LHtvbmNlOiEwfSkpOnRoaXMuX2FjdGl2ZU1lc3NhZ2VzPXRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihCPT5CLmlkIT09TCl9Y2xlYXJNZXNzYWdlcygpe3RoaXMuX2FjdGl2ZU1lc3NhZ2VzPVtdfWN1cnJlbnRUZXJtaW5hbD0oaGwodGhpcyxTKSxudWxsKTthc3luYyBsYXVuY2hUZXJtaW5hbCgpe2xldCBMPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHRoaXMuY3VycmVudFRlcm1pbmFsKXthd2FpdCB0aGlzLmNsb3NlVGVybWluYWwoKTtyZXR1cm59bGV0IEU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDpCfT1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oS3JlKCksTHJhKSksQz1uZXcgQjtyZXR1cm4gQy5zZXR1cENvbW1hbmQ9dGhpcy50ZXJtaW5hbFNldHVwQ29tbWFuZCx0aGlzLmN1cnJlbnRUZXJtaW5hbD1DLEUuYXBwZW5kQ2hpbGQoQyksQy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLEMuc3R5bGUuekluZGV4PSIxMCIsQy5zdHlsZS50b3A9InZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KSIsQy5zdHlsZS5sZWZ0PSIyNDBweCIsQy5zdHlsZS5yaWdodD0iMHB4IixDLnN0eWxlLmhlaWdodD0iYXV0byIsQy5zdHlsZS5ib3R0b209IjI0cHgiLEMuc3R5bGUub3BhY2l0eT0iMCIsQy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk5KSIsQy5zdHlsZS50cmFuc2l0aW9uPSJhbGwgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSIsQy5zdHlsZS5ib3hTaGFkb3c9IjAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuNSksIDAgMCAwIDFweCByZ2IoMjU1IDI1NSAyNTUgLyAwLjA1KSIsQy5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9PnRoaXMuY2xvc2VUZXJtaW5hbCgpKSxhd2FpdCBMLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksQy5zdHlsZS5vcGFjaXR5PSIxIixDLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwKSBzY2FsZSgxKSIsQ31hc3luYyBjbG9zZVRlcm1pbmFsKCl7bGV0IEw9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5jdXJyZW50VGVybWluYWwmJih0aGlzLmN1cnJlbnRUZXJtaW5hbC5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLmN1cnJlbnRUZXJtaW5hbC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk5KSIsYXdhaXQgTC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDI1MCksdGhpcy5jdXJyZW50VGVybWluYWwucmVtb3ZlKCksdGhpcy5jdXJyZW50VGVybWluYWw9bnVsbCl9aXNHcm91cEFjdGl2ZShMKXtyZXR1cm4gdGhpcy5zZWxlY3RlZFZpZXc9PT1MPyEwOkwuc3ViVmlld3M/LnNvbWUoRT0+RT09PXRoaXMuc2VsZWN0ZWRWaWV3KT8/ITF9Y3VycmVudFZpZXc7YXN5bmMgbG9hZFZpZXcoTCl7aWYoIUwuZWxlbWVudCYmTC5zdWJWaWV3cz8ubGVuZ3RoKXtsZXQgQz1MLnN1YlZpZXdzLmZpbmQoej0+ei5lbGVtZW50KTtyZXR1cm4gQz90aGlzLmxvYWRWaWV3KEMpOnZvaWQgMH1pZighTC5lbGVtZW50KXJldHVybjtsZXQgRT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmFwcGNvbnRlbnQiKSxCPW5ldyBMLmVsZW1lbnQ7dGhpcy5jdXJyZW50VmlldyYmdGhpcy5jdXJyZW50Vmlldy5yZW1vdmUoKSxFLmFwcGVuZENoaWxkKEIpLHRoaXMuY3VycmVudFZpZXc9Qix0aGlzLnNlbGVjdGVkVmlldz1MLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctc2VsZWN0Iix7ZGV0YWlsOnt2aWV3Okx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c3RhdGlje2hsKGEscil9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBPcmE9dSgoKT0+e05yYSgpfSk7dmFyIFJyYSxGcmE9dSgoKT0+e3ZlKCk7UnJhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc2ltcGxlLWxvZ2luIAogICAgICBuYW1lPSJNeSBBcHBsaWNhdGlvbiIKICAgICAgQGxvZ2luPSR7dD0+e2NvbnNvbGUubG9nKCJMb2dpbiBldmVudCByZWNlaXZlZDoiLHQuZGV0YWlsKTtsZXQgZT10LmRldGFpbD8uZGF0YXx8dC5kZXRhaWw7ZT8udXNlcm5hbWUmJmU/LnBhc3N3b3JkP2FsZXJ0KGBMb2dpbiBhdHRlbXB0ZWQgd2l0aDoKVXNlcm5hbWU6ICR7ZS51c2VybmFtZX0KUGFzc3dvcmQ6ICR7ZS5wYXNzd29yZH1gKTpjb25zb2xlLmVycm9yKCJJbnZhbGlkIGxvZ2luIGRhdGEgc3RydWN0dXJlOiIsdC5kZXRhaWwpfX0KICAgID4KICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgICAgPGgxPldlbGNvbWUhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHRoZSBzbG90dGVkIGNvbnRlbnQgdGhhdCBhcHBlYXJzIGFmdGVyIGxvZ2luLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtc2ltcGxlLWxvZ2luPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEJyYSx5OXQsSHJhLHFyYT11KCgpPT57RnJhKCk7dmUoKTtsdCgpO25zKCk7QnJhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx5OXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEhyYT0oKCk9PntsZXQgdD1bdWUoImRlZXMtc2ltcGxlLWxvZ2luIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTaW1wbGVMb2dpbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sQnJhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibmFtZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLm5hbWUsImdldCIpLHNldDppKChmLHApPT57Zi5uYW1lPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxCcmEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1ScmE7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT15OXQodGhpcyxvLCJBcHBsaWNhdGlvbiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5sb2dpbkNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnNsb3RDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmxvZ2luIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDM2MHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuc3ViaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTo6cGFydChjb250ZW50KSB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIGRlZXMtZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIGRlZXMtaW5wdXQtdGV4dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWZvcm0tc3VibWl0IHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsb2dpbkNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5TaWduIGluPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YmhlYWRlciI+RW50ZXIgeW91ciBjcmVkZW50aWFscyB0byBhY2Nlc3MgJHt0aGlzLm5hbWV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9JHsiQ3JlZGVudGlhbHMifT4KICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idXNlcm5hbWUiIGxhYmVsPSJVc2VybmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iUGFzc3dvcmQiIGlzUGFzc3dvcmRCb29sIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNpZ24gaW48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGFpbmVyIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoZCl7c3VwZXIuZmlyc3RVcGRhdGVkKGQpO2xldCBmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtmJiZmLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwocD0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ2luIix7ZGV0YWlsOnAuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9KSl9YXN5bmMgc3dpdGNoVG9TbG90dGVkQ29udGVudCgpe2xldCBkPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5sb2dpbiIpLHA9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5sb2dpbkNvbnRhaW5lciIpLGg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zbG90Q29udGFpbmVyIik7Zi5zdHlsZS5vcGFjaXR5PSIwIixmLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgyMHB4KSIscC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixoLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgyMHB4KSIsYXdhaXQgZC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksaC5zdHlsZS5vcGFjaXR5PSIxIixoLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwcHgpIixhd2FpdCBkLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzAwKSxoLnN0eWxlLnBvaW50ZXJFdmVudHM9ImFsbCJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHk5dCh0aGlzLGwpfXN0YXRpY3t5OXQoYSxyKX19O3JldHVybiBjPWF9KSgpfSk7dmFyIFZyYT11KCgpPT57cXJhKCl9KTt2YXIganJhPXUoKCk9PntUcmEoKTtPcmEoKTtWcmEoKX0pO3ZhciBVcmE9dSgoKT0+e0tyKCl9KTt2YXIgV3JhLEdyYT11KCgpPT57dmUoKTtXcmE9aSgoKT0+d2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgYmFja2dyb3VuZDogIzg4ODg4ODsKICAgICAgfQogICAgICAubG9ncyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB3aWR0aDogNjAwcHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQogICAgICAubG9ncyBkaXYgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICAgIDxkZWVzLXNlYXJjaGJhcgogICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke2kocj0+e2xldCBzPXIudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjY2hhbmdlZCIpO3MmJihzLnRleHRDb250ZW50PWBzZWFyY2gtY2hhbmdlZDogJHtyLmRldGFpbC52YWx1ZX1gKX0sIm9uQ2hhbmdlZCIpfQogICAgICAgIEBzZWFyY2gtc3VibWl0PSR7aShyPT57bGV0IHM9ci50YXJnZXQuY2xvc2VzdCgiLmRlbW9XcmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoIiNzdWJtaXR0ZWQiKTtzJiYocy50ZXh0Q29udGVudD1gc2VhcmNoLXN1Ym1pdDogJHtyLmRldGFpbC52YWx1ZX1gKX0sIm9uU3VibWl0Iil9CiAgICAgID48L2RlZXMtc2VhcmNoYmFyPgogICAgICA8ZGl2IGNsYXNzPSJsb2dzIj4KICAgICAgICA8ZGl2IGlkPSJjaGFuZ2VkIj5zZWFyY2gtY2hhbmdlZDo8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJzdWJtaXR0ZWQiPnNlYXJjaC1zdWJtaXQ6PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBZcmEsdzl0LEtyYSxacmE9dSgoKT0+e3ZlKCk7ZmMoKTtHcmEoKTtsdCgpO1lyYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdzl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxLcmE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXNlYXJjaGJhciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzU2VhcmNoYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCgpXSxZcmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJmaWx0ZXJzImluIGYsImhhcyIpLGdldDppKGY9PmYuZmlsdGVycywiZ2V0Iiksc2V0OmkoKGYscCk9PntmLmZpbHRlcnM9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLFlyYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPVdyYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZShScC5ibHVlLE9wLmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKFJwLmJsdWVBY3RpdmUsT3AuYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9dzl0KHRoaXMsbyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhkKXt0aGlzLiNlPWR9c2VhcmNoSW5wdXQ9dzl0KHRoaXMsbCk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDp3YGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntkLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje3c5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgUXJhPXUoKCk9PntacmEoKX0pO3ZhciBYcmEsSnJhPXUoKCk9Pnt2ZSgpO1hyYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICB9CgogICAgLnRva2VuLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgIGdhcDogMTZweDsKICAgIH0KCiAgICAudG9rZW4taXRlbSB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQoKICAgIC50b2tlbi1uYW1lIHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CgogICAgLnRva2VuLXZhbHVlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zcGFjaW5nLWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNwYWNpbmctYm94IHsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnJhZGl1cy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnJhZGl1cy1ib3ggewogICAgICB3aWR0aDogNjBweDsKICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAuc2hhZG93LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc2hhZG93LWJveCB7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICB9CgogICAgLmhlaWdodC1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuaGVpZ2h0LWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgd2lkdGg6IDEyMHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXRoZW1lPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TcGFjaW5nIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc3BhY2luZy14cyB0aHJvdWdoIC0tZGVlcy1zcGFjaW5nLTN4bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eHMgKDRweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctc20pOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnNtICg4cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZCAoMTJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPmxnICgxNnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eGwgKDI0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjJ4bCAoMzJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+M3hsICg0OHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9yZGVyIFJhZGl1cyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXJhZGl1cy14cyB0aHJvdWdoIC0tZGVlcy1yYWRpdXMtZnVsbAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7Ij54czwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4ycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjRweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj44cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjEycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOyI+ZnVsbDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj45OTlweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2hhZG93IEVsZXZhdGlvbiBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNoYWRvdy14cyB0aHJvdWdoIC0tZGVlcy1zaGFkb3ctbGcKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3cteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWluaW1hbDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+c3VidGxlPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZWRpdW08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnByb21pbmVudDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29udHJvbCBIZWlnaHQgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSB0aHJvdWdoIC0tZGVlcy1jb250cm9sLWhlaWdodC14bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MzJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjM2cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40MHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQteGwpOyI+eGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDhweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHJhbnNpdGlvbiBEdXJhdGlvbnM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy10cmFuc2l0aW9uLWZhc3QgdGhyb3VnaCAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXIKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1mYXN0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjFzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjE1czwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvdzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4yczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjNzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtdGhlbWU+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgUncsSWMsZWFhLHRhYT11KCgpPT57dmUoKTtsdCgpO0pyYSgpO1J3PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxJYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZWFhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy10aGVtZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGhlbWUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOk9iamVjdH0pXSxwPVtQKHt0eXBlOk9iamVjdH0pXSx2PVtQKHt0eXBlOk9iamVjdH0pXSx5PVtQKHt0eXBlOk9iamVjdH0pXSxSdyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNwYWNpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImN1c3RvbVNwYWNpbmciaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jdXN0b21TcGFjaW5nLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuY3VzdG9tU3BhY2luZz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksUncodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21SYWRpdXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImN1c3RvbVJhZGl1cyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmN1c3RvbVJhZGl1cywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmN1c3RvbVJhZGl1cz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksUncodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21TaGFkb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXN0b21TaGFkb3dzImluIFMsImhhcyIpLGdldDppKFM9PlMuY3VzdG9tU2hhZG93cywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmN1c3RvbVNoYWRvd3M9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLFJ3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tVHJhbnNpdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImN1c3RvbVRyYW5zaXRpb25zImluIFMsImhhcyIpLGdldDppKFM9PlMuY3VzdG9tVHJhbnNpdGlvbnMsImdldCIpLHNldDppKChTLE8pPT57Uy5jdXN0b21UcmFuc2l0aW9ucz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUncodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21Db250cm9sSGVpZ2h0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jdXN0b21Db250cm9sSGVpZ2h0cywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmN1c3RvbUNvbnRyb2xIZWlnaHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxSdyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPVhyYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1JYyh0aGlzLG8sbnVsbCk7Z2V0IGN1c3RvbVNwYWNpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VzdG9tU3BhY2luZyhfKXt0aGlzLiNlPV99I3Q9KEljKHRoaXMsbCksSWModGhpcyxkLG51bGwpKTtnZXQgY3VzdG9tUmFkaXVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1c3RvbVJhZGl1cyhfKXt0aGlzLiN0PV99I3I9KEljKHRoaXMsZiksSWModGhpcyxoLG51bGwpKTtnZXQgY3VzdG9tU2hhZG93cygpe3JldHVybiB0aGlzLiNyfXNldCBjdXN0b21TaGFkb3dzKF8pe3RoaXMuI3I9X30jYT0oSWModGhpcyxtKSxJYyh0aGlzLGIsbnVsbCkpO2dldCBjdXN0b21UcmFuc2l0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21UcmFuc2l0aW9ucyhfKXt0aGlzLiNhPV99I2k9KEljKHRoaXMsZyksSWModGhpcyxrLG51bGwpKTtnZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoXyl7dGhpcy4jaT1ffXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICR7dGhpcy5nZW5lcmF0ZUN1c3RvbVN0eWxlcygpfQogICAgICA8L3N0eWxlPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl7bGV0IF89WyI6aG9zdCB7Il07aWYodGhpcy5jdXN0b21TcGFjaW5nKWZvcihsZXRbUyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tU3BhY2luZykpTyYmXy5wdXNoKGAgIC0tZGVlcy1zcGFjaW5nLSR7U306ICR7T307YCk7aWYodGhpcy5jdXN0b21SYWRpdXMpZm9yKGxldFtTLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21SYWRpdXMpKU8mJl8ucHVzaChgICAtLWRlZXMtcmFkaXVzLSR7U306ICR7T307YCk7aWYodGhpcy5jdXN0b21TaGFkb3dzKWZvcihsZXRbUyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tU2hhZG93cykpTyYmXy5wdXNoKGAgIC0tZGVlcy1zaGFkb3ctJHtTfTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVRyYW5zaXRpb25zKXtmb3IobGV0W1MsT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVRyYW5zaXRpb25zKSlpZihPKXtsZXQgTD1TPT09ImRlZmF1bHQiPyJkZWZhdWx0IjpTO18ucHVzaChgICAtLWRlZXMtdHJhbnNpdGlvbi0ke0x9OiAke099O2ApfX1pZih0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzKWZvcihsZXRbUyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpKU8mJl8ucHVzaChgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtJHtTfTogJHtPfTtgKTtyZXR1cm4gXy5wdXNoKCJ9IiksXy5qb2luKGAKYCl9c2V0U3BhY2luZyhfLFMpe3RoaXMuY3VzdG9tU3BhY2luZz17Li4udGhpcy5jdXN0b21TcGFjaW5nLFtfXTpTfX1zZXRSYWRpdXMoXyxTKXt0aGlzLmN1c3RvbVJhZGl1cz17Li4udGhpcy5jdXN0b21SYWRpdXMsW19dOlN9fXNldFNoYWRvdyhfLFMpe3RoaXMuY3VzdG9tU2hhZG93cz17Li4udGhpcy5jdXN0b21TaGFkb3dzLFtfXTpTfX1zZXRUcmFuc2l0aW9uKF8sUyl7dGhpcy5jdXN0b21UcmFuc2l0aW9ucz17Li4udGhpcy5jdXN0b21UcmFuc2l0aW9ucyxbX106U319c2V0Q29udHJvbEhlaWdodChfLFMpe3RoaXMuY3VzdG9tQ29udHJvbEhlaWdodHM9ey4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMsW19dOlN9fWdldFRoZW1lKCl7cmV0dXJue2NvbG9yczpzbC5jb2xvcnMsc3BhY2luZzp7Li4uc2wuc3BhY2luZywuLi50aGlzLmN1c3RvbVNwYWNpbmd9LHJhZGl1czp7Li4uc2wucmFkaXVzLC4uLnRoaXMuY3VzdG9tUmFkaXVzfSxzaGFkb3dzOnsuLi5zbC5zaGFkb3dzLC4uLnRoaXMuY3VzdG9tU2hhZG93c30sdHJhbnNpdGlvbnM6ey4uLnNsLnRyYW5zaXRpb25zLC4uLnRoaXMuY3VzdG9tVHJhbnNpdGlvbnN9LGNvbnRyb2xIZWlnaHRzOnsuLi5zbC5jb250cm9sSGVpZ2h0cywuLi50aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzfX19cmVzZXRUb0RlZmF1bHRzKCl7dGhpcy5jdXN0b21TcGFjaW5nPW51bGwsdGhpcy5jdXN0b21SYWRpdXM9bnVsbCx0aGlzLmN1c3RvbVNoYWRvd3M9bnVsbCx0aGlzLmN1c3RvbVRyYW5zaXRpb25zPW51bGwsdGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz1udWxsfWFwcGx5VGhlbWUoXyl7Xy5zcGFjaW5nJiYodGhpcy5jdXN0b21TcGFjaW5nPV8uc3BhY2luZyksXy5yYWRpdXMmJih0aGlzLmN1c3RvbVJhZGl1cz1fLnJhZGl1cyksXy5zaGFkb3dzJiYodGhpcy5jdXN0b21TaGFkb3dzPV8uc2hhZG93cyksXy50cmFuc2l0aW9ucyYmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9Xy50cmFuc2l0aW9ucyksXy5jb250cm9sSGVpZ2h0cyYmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHM9Xy5jb250cm9sSGVpZ2h0cyl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEljKHRoaXMsTSl9c3RhdGlje0ljKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciByYWE9dSgoKT0+e3RhYSgpfSk7dmFyIGFhYSxpYWEsc2FhPXUoKCk9Pnt2ZSgpO2s5dCgpO2FhYT1pKGFzeW5jIHQ9Pnthd2FpdCBuZXcgUHJvbWlzZShlPT57d2luZG93LnNldFRpbWVvdXQoKCk9PmUoKSx0KX0pfSwid2FpdEZvckRlbW9TdGVwIiksaWFhPWkoKCk9PntsZXQgdD0hMTtyZXR1cm4gd2AKICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogMTZweDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgcGFkZGluZzogMzJweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDA7IG1heC13aWR0aDogNTQwcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIExhdW5jaGVzIHRoZSB1cGRhdGVyIGFzIGEgc3RlcHBlciBmbG93LiBUaGUgZmlyc3Qgc3RlcCBzdHJlYW1zIHRlcm1pbmFsLXN0eWxlCiAgICAgICAgcHJvZ3Jlc3MgdXBkYXRlcyBhbmQgdGhlbiBtb3ZlcyBhdXRvbWF0aWNhbGx5IHRvIHRoZSByZWFkeSBzdGVwLgogICAgICA8L3A+CiAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgIEBjbGljaz0ke2FzeW5jKCk9PntpZighdCl7dD0hMDt0cnl7bGV0IGU9YXdhaXQgUTZlLmNyZWF0ZUFuZFNob3coe2N1cnJlbnRWZXJzaW9uOiIzLjc5LjAiLHVwZGF0ZWRWZXJzaW9uOiIzLjgwLjAiLG1vcmVJbmZvVXJsOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLGNoYW5nZWxvZ1VybDoiaHR0cHM6Ly9jb2RlLmZvc3MuZ2xvYmFsL2Rlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nLy0vYmxvYi9tYWluL2NoYW5nZWxvZy5tZCIsc3VjY2Vzc0FjdGlvbjoiY2xvc2UiLHN1Y2Nlc3NEZWxheU1zOjFlNH0pLHI9W3tsaW5lOiJDaGVja2luZyByZWxlYXNlIG1hbmlmZXN0IixwZXJjZW50YWdlOjEyLGRlbGF5OjU1MH0se2xpbmU6IkRvd25sb2FkaW5nIHNpZ25lZCBidW5kbGUiLHBlcmNlbnRhZ2U6MzMsZGVsYXk6NzAwfSx7bGluZToiVmVyaWZ5aW5nIGNoZWNrc3VtIixwZXJjZW50YWdlOjUxLGRlbGF5OjY1MH0se2xpbmU6IkFwcGx5aW5nIHVwZGF0ZSBmaWxlcyIscGVyY2VudGFnZTo3NCxkZWxheTo4MDB9LHtsaW5lOiJDbGVhbmluZyB1cCBwcmV2aW91cyByZWxlYXNlIixwZXJjZW50YWdlOjkxLGRlbGF5OjYwMH1dO2UudXBkYXRlUHJvZ3Jlc3Moe3N0YXR1c1RleHQ6IkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QuLi4iLHRlcm1pbmFsTGluZXM6WyJDaGVja2luZyByZWxlYXNlIG1hbmlmZXN0Il0scGVyY2VudGFnZToxMixpbmRldGVybWluYXRlOiEwfSk7Zm9yKGxldFthLHNdb2Ygci5lbnRyaWVzKCkpYT4wJiYoZS5hcHBlbmRQcm9ncmVzc0xpbmUocy5saW5lKSxlLnVwZGF0ZVByb2dyZXNzKHtwZXJjZW50YWdlOnMucGVyY2VudGFnZSxzdGF0dXNUZXh0OmAke3MubGluZX0uLi5gfSkpLGF3YWl0IGFhYShzLmRlbGF5KTthd2FpdCBlLm1hcmtVcGRhdGVSZWFkeSgpLGF3YWl0IGFhYSgxMDUwMCl9ZmluYWxseXt0PSExfX19fQogICAgICA+U2hvdyB1cGRhdGVyIGZsb3c8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgd2YsczEsUTZlLGs5dD11KCgpPT57dmUoKTtzYWEoKTtQNmUoKTtfcygpO3dmPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxzMT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUTZlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy11cGRhdGVyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNVcGRhdGVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpTdHJpbmd9KV0sTj1bUCh7dHlwZTpOdW1iZXJ9KV0sTz1bUCh7dHlwZTpTdHJpbmd9KV0sd2YodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VmVyc2lvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY3VycmVudFZlcnNpb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jdXJyZW50VmVyc2lvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmN1cnJlbnRWZXJzaW9uPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSx3Zih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwZGF0ZWRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ1cGRhdGVkVmVyc2lvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnVwZGF0ZWRWZXJzaW9uLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudXBkYXRlZFZlcnNpb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLHdmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9yZUluZm9VcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Im1vcmVJbmZvVXJsImluIHosImhhcyIpLGdldDppKHo9PnoubW9yZUluZm9VcmwsImdldCIpLHNldDppKCh6LEEpPT57ei5tb3JlSW5mb1VybD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGgsbSksd2YodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjaGFuZ2Vsb2dVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImNoYW5nZWxvZ1VybCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNoYW5nZWxvZ1VybCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmNoYW5nZWxvZ1VybD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksd2YodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWNjZXNzQWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzdWNjZXNzQWN0aW9uImluIHosImhhcyIpLGdldDppKHo9Pnouc3VjY2Vzc0FjdGlvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnN1Y2Nlc3NBY3Rpb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLHdmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VjY2Vzc0RlbGF5TXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InN1Y2Nlc3NEZWxheU1zImluIHosImhhcyIpLGdldDppKHo9Pnouc3VjY2Vzc0RlbGF5TXMsImdldCIpLHNldDppKCh6LEEpPT57ei5zdWNjZXNzRGVsYXlNcz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LF8sUyksd2YodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWNjZXNzQWN0aW9uTGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InN1Y2Nlc3NBY3Rpb25MYWJlbCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnN1Y2Nlc3NBY3Rpb25MYWJlbCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnN1Y2Nlc3NBY3Rpb25MYWJlbD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LEwsRSksd2YobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxyKSxCPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1pYWE7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coQz17fSl7bGV0IHo9bmV3IEI7cmV0dXJuIHouY3VycmVudFZlcnNpb249Qy5jdXJyZW50VmVyc2lvbj8/IiIsei51cGRhdGVkVmVyc2lvbj1DLnVwZGF0ZWRWZXJzaW9uPz8iIix6Lm1vcmVJbmZvVXJsPUMubW9yZUluZm9Vcmw/PyIiLHouY2hhbmdlbG9nVXJsPUMuY2hhbmdlbG9nVXJsPz8iIix6LnN1Y2Nlc3NBY3Rpb249Qy5zdWNjZXNzQWN0aW9uPz8iY2xvc2UiLHouc3VjY2Vzc0RlbGF5TXM9Qy5zdWNjZXNzRGVsYXlNcz8/MWU0LHouc3VjY2Vzc0FjdGlvbkxhYmVsPUMuc3VjY2Vzc0FjdGlvbkxhYmVsPz8iIix6Lm9uU3VjY2Vzc0FjdGlvbj1DLm9uU3VjY2Vzc0FjdGlvbj8/bnVsbCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHopLGF3YWl0IHouc2hvdygpLHp9I2U9czEodGhpcyxvLCIiKTtnZXQgY3VycmVudFZlcnNpb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFZlcnNpb24oQyl7dGhpcy4jZT1DfSN0PShzMSh0aGlzLGwpLHMxKHRoaXMsZCwiIikpO2dldCB1cGRhdGVkVmVyc2lvbigpe3JldHVybiB0aGlzLiN0fXNldCB1cGRhdGVkVmVyc2lvbihDKXt0aGlzLiN0PUN9I3I9KHMxKHRoaXMsZiksczEodGhpcyxoLCIiKSk7Z2V0IG1vcmVJbmZvVXJsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1vcmVJbmZvVXJsKEMpe3RoaXMuI3I9Q30jYT0oczEodGhpcyxtKSxzMSh0aGlzLGIsIiIpKTtnZXQgY2hhbmdlbG9nVXJsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGNoYW5nZWxvZ1VybChDKXt0aGlzLiNhPUN9I2k9KHMxKHRoaXMsZyksczEodGhpcyxrLCJjbG9zZSIpKTtnZXQgc3VjY2Vzc0FjdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBzdWNjZXNzQWN0aW9uKEMpe3RoaXMuI2k9Q30jcz0oczEodGhpcyxNKSxzMSh0aGlzLF8sMWU0KSk7Z2V0IHN1Y2Nlc3NEZWxheU1zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHN1Y2Nlc3NEZWxheU1zKEMpe3RoaXMuI3M9Q30jbj0oczEodGhpcyxTKSxzMSh0aGlzLEwsIiIpKTtnZXQgc3VjY2Vzc0FjdGlvbkxhYmVsKCl7cmV0dXJuIHRoaXMuI259c2V0IHN1Y2Nlc3NBY3Rpb25MYWJlbChDKXt0aGlzLiNuPUN9c3RlcHBlcj0oczEodGhpcyxFKSxudWxsKTtwcm9ncmVzc1N0ZXA9bnVsbDtzaG93UHJvbWlzZT1udWxsO29uU3VjY2Vzc0FjdGlvbj1udWxsO3N0YXRpYyBzdHlsZXM9W3JlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zaG93KCl9YXN5bmMgc2hvdygpe2lmKCF0aGlzLnN0ZXBwZXI/LmlzQ29ubmVjdGVkKXtpZih0aGlzLnNob3dQcm9taXNlKXJldHVybiB0aGlzLnNob3dQcm9taXNlO3RoaXMuc2hvd1Byb21pc2U9dGhpcy5vcGVuU3RlcHBlckZsb3coKTt0cnl7YXdhaXQgdGhpcy5zaG93UHJvbWlzZX1maW5hbGx5e3RoaXMuc2hvd1Byb21pc2U9bnVsbH19fXVwZGF0ZVByb2dyZXNzKEMpeyF0aGlzLnN0ZXBwZXJ8fCF0aGlzLnByb2dyZXNzU3RlcHx8dGhpcy5zdGVwcGVyLnVwZGF0ZVByb2dyZXNzU3RlcChDLHRoaXMucHJvZ3Jlc3NTdGVwKX1hcHBlbmRQcm9ncmVzc0xpbmUoQyl7IXRoaXMuc3RlcHBlcnx8IXRoaXMucHJvZ3Jlc3NTdGVwfHx0aGlzLnN0ZXBwZXIuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShDLHRoaXMucHJvZ3Jlc3NTdGVwKX1tYXJrVXBkYXRlRXJyb3IoQyl7dGhpcy5hcHBlbmRQcm9ncmVzc0xpbmUoYEVycm9yOiAke0N9YCksdGhpcy51cGRhdGVQcm9ncmVzcyh7aW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OkN9KX1hc3luYyBtYXJrVXBkYXRlUmVhZHkoKXshdGhpcy5zdGVwcGVyfHwhdGhpcy5wcm9ncmVzc1N0ZXB8fCh0aGlzLnN0ZXBwZXIudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOjEwMCxpbmRldGVybWluYXRlOiExLHN0YXR1c1RleHQ6IlVwZGF0ZSByZWFkeS4ifSx0aGlzLnByb2dyZXNzU3RlcCksdGhpcy5zdGVwcGVyLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoIlVwZGF0ZSByZWFkeSIsdGhpcy5wcm9ncmVzc1N0ZXApLHRoaXMuc3RlcHBlci5zZWxlY3RlZFN0ZXA9PT10aGlzLnByb2dyZXNzU3RlcCYmdGhpcy5zdGVwcGVyLmdvTmV4dCgpKX1hc3luYyBkZXN0cm95KCl7bGV0IEM9dGhpcy5zdGVwcGVyO3RoaXMuc3RlcHBlcj1udWxsLHRoaXMucHJvZ3Jlc3NTdGVwPW51bGwsQz8uaXNDb25uZWN0ZWQmJmF3YWl0IEMuZGVzdHJveSgpLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpfWFzeW5jIG9wZW5TdGVwcGVyRmxvdygpe2xldHtzdGVwczpDLHByb2dyZXNzU3RlcDp6fT10aGlzLmNyZWF0ZVVwZGF0ZXJTdGVwcygpO3RoaXMucHJvZ3Jlc3NTdGVwPXosdGhpcy5zdGVwcGVyPWF3YWl0IER3LmNyZWF0ZUFuZFNob3coe3N0ZXBzOkMsY2FuY2VsYWJsZTohMX0pfWNyZWF0ZVVwZGF0ZXJTdGVwcygpe2xldCBDPXRoaXMuZ2V0TGlua01lbnVPcHRpb25zKCksej17dGl0bGU6IlVwZGF0aW5nIHRoZSBhcHBsaWNhdGlvbiIsY29udGVudDp0aGlzLnJlbmRlclByb2dyZXNzQ29udGVudCgpLHByb2dyZXNzU3RlcDp7bGFiZWw6dGhpcy5nZXRQcm9ncmVzc0xhYmVsKCkscGVyY2VudGFnZTo1LGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzUm93czo0LHN0YXR1c1RleHQ6IlByZXBhcmluZyB1cGRhdGUuLi4iLHRlcm1pbmFsTGluZXM6WyJQcmVwYXJpbmcgdXBkYXRlIl19LG1lbnVPcHRpb25zOkMubGVuZ3RoPjA/Qzp2b2lkIDB9LEE9e3RpdGxlOnRoaXMudXBkYXRlZFZlcnNpb24/YFZlcnNpb24gJHt0aGlzLnVwZGF0ZWRWZXJzaW9ufSByZWFkeWA6IlVwZGF0ZSByZWFkeSIsY29udGVudDp0aGlzLnJlbmRlclJlYWR5Q29udGVudCgpLHByb2dyZXNzU3RlcDp7bGFiZWw6dGhpcy5nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwodGhpcy5nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCkpLHBlcmNlbnRhZ2U6MCxpbmRldGVybWluYXRlOiExLHNob3dQZXJjZW50YWdlOiExLHN0YXR1c1Jvd3M6MixzdGF0dXNUZXh0OnRoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyh0aGlzLmdldFN1Y2Nlc3NEZWxheVNlY29uZHMoKSl9LHZhbGlkYXRpb25GdW5jOmkoYXN5bmMoJCxGLFkpPT57YXdhaXQgdGhpcy5ydW5TdWNjZXNzQ291bnRkb3duKCQsQSxZKX0sInZhbGlkYXRpb25GdW5jIil9O3JldHVybntzdGVwczpbeixBXSxwcm9ncmVzc1N0ZXA6en19Z2V0UHJvZ3Jlc3NMYWJlbCgpe3JldHVybiB0aGlzLmN1cnJlbnRWZXJzaW9uJiZ0aGlzLnVwZGF0ZWRWZXJzaW9uP2Ake3RoaXMuY3VycmVudFZlcnNpb259IC0+ICR7dGhpcy51cGRhdGVkVmVyc2lvbn1gOnRoaXMudXBkYXRlZFZlcnNpb24/YFByZXBhcmluZyAke3RoaXMudXBkYXRlZFZlcnNpb259YDoiQXBwbGljYXRpb24gdXBkYXRlIn1nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCl7cmV0dXJuIE1hdGgubWF4KDEsTWF0aC5jZWlsKHRoaXMuc3VjY2Vzc0RlbGF5TXMvMWUzKSl9Z2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpe3JldHVybiB0aGlzLnN1Y2Nlc3NBY3Rpb25MYWJlbD90aGlzLnN1Y2Nlc3NBY3Rpb25MYWJlbDp0aGlzLm9uU3VjY2Vzc0FjdGlvbj8iQ29udGludWluZyBhdXRvbWF0aWNhbGx5Ijp0aGlzLnN1Y2Nlc3NBY3Rpb249PT0icmVsb2FkIj8iUmVsb2FkaW5nIGFwcGxpY2F0aW9uIjoiQ2xvc2luZyB1cGRhdGVyIn1nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwoQyl7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IGluICR7Q31zYH1nZXRTdWNjZXNzQ291bnRkb3duU3RhdHVzKEMpe2xldCB6PUM9PT0xPyJzZWNvbmQiOiJzZWNvbmRzIjtyZXR1cm5gJHt0aGlzLmdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKX0gaW4gJHtDfSAke3p9LmB9Z2V0U3VjY2Vzc0FjdGlvbk5vd0xhYmVsKCl7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IG5vdy4uLmB9Z2V0TGlua01lbnVPcHRpb25zKCl7bGV0IEM9W107cmV0dXJuIHRoaXMubW9yZUluZm9VcmwmJkMucHVzaCh7bmFtZToiTW9yZSBpbmZvIixhY3Rpb246aShhc3luYygpPT57dGhpcy5vcGVuRXh0ZXJuYWxVcmwodGhpcy5tb3JlSW5mb1VybCl9LCJhY3Rpb24iKX0pLHRoaXMuY2hhbmdlbG9nVXJsJiZDLnB1c2goe25hbWU6IkNoYW5nZWxvZyIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMub3BlbkV4dGVybmFsVXJsKHRoaXMuY2hhbmdlbG9nVXJsKX0sImFjdGlvbiIpfSksQ31yZW5kZXJWZXJzaW9uTWV0YShDLHope3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBtaW4td2lkdGg6IDEzMnB4OyBwYWRkaW5nOiAxMnB4IDE0cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICA+CiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IgogICAgICAgID4KICAgICAgICAgICR7Q30KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0ke2Bmb250LWZhbWlseTogJHtFcGV9OyBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpO2B9CiAgICAgICAgPgogICAgICAgICAgJHt6fQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUHJvZ3Jlc3NDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogMThweDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA2cHg7Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IgogICAgICAgICAgPgogICAgICAgICAgICBBcHBsaWNhdGlvbiB1cGRhdGUKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMS4zNTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7IgogICAgICAgICAgPgogICAgICAgICAgICBEb3dubG9hZGluZyBhbmQgYXBwbHlpbmcgdGhlIGxhdGVzdCByZWxlYXNlLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY1OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICAgICAgJHt0aGlzLmN1cnJlbnRWZXJzaW9uJiZ0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgTW92aW5nIGZyb20gPHN0cm9uZz4ke3RoaXMuY3VycmVudFZlcnNpb259PC9zdHJvbmc+IHRvIDxzdHJvbmc+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Ryb25nPi5gOnRoaXMudXBkYXRlZFZlcnNpb24/d2BQcmVwYXJpbmcgPHN0cm9uZz4ke3RoaXMudXBkYXRlZFZlcnNpb259PC9zdHJvbmc+IGZvciBpbnN0YWxsYXRpb24uYDoiVGhlIHVwZGF0ZXIgaXMgZmV0Y2hpbmcgdGhlIG5ld2VzdCBidWlsZCBhbmQgcHJlcGFyaW5nIGl0IGZvciBpbnN0YWxsYXRpb24uIn0KICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmN1cnJlbnRWZXJzaW9ufHx0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDEwcHg7Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbj90aGlzLnJlbmRlclZlcnNpb25NZXRhKCJDdXJyZW50IHZlcnNpb24iLHRoaXMuY3VycmVudFZlcnNpb24pOiIifQogICAgICAgICAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3RoaXMucmVuZGVyVmVyc2lvbk1ldGEoIkluY29taW5nIHZlcnNpb24iLHRoaXMudXBkYXRlZFZlcnNpb24pOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA0cHg7IHBhZGRpbmc6IDE0cHggMTZweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsgYm9yZGVyLXJhZGl1czogOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsiCiAgICAgICAgPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyI+CiAgICAgICAgICAgIEF1dG9tYXRpYyBmbG93CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7Ij4KICAgICAgICAgICAgVGhlIHVwZGF0ZXIgY29udGludWVzIG9uIGl0cyBvd24gb25jZSB0aGUgbmV3IGJ1aWxkIGlzIGluc3RhbGxlZCBhbmQgdmVyaWZpZWQuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclJlYWR5Q29udGVudCgpe2xldCBDPXRoaXMuZ2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpO3JldHVybiB3YAogICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDE4cHg7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNnB4OyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICAgID4KICAgICAgICAgICAgVXBkYXRlIGNvbXBsZXRlCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzU7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgVmVyc2lvbiA8c3BhbiBzdHlsZT0ke2Bmb250LWZhbWlseTogJHtFcGV9OyBmb250LXNpemU6IDAuOTVlbTtgfT4ke3RoaXMudXBkYXRlZFZlcnNpb259PC9zcGFuPiBpcyByZWFkeSB0byB1c2UuYDoiVGhlIG5ldyB2ZXJzaW9uIGlzIHJlYWR5IHRvIHVzZS4ifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY1OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICAgICAgVGhlIG5ldyBidWlsZCBoYXMgYmVlbiBpbnN0YWxsZWQgYW5kIHZlcmlmaWVkLiBZb3UgY2FuIHJldmlldyByZWxlYXNlIGRldGFpbHMgYmVsb3cgd2hpbGUgdGhlIG5leHQgYWN0aW9uIHJ1bnMgYXV0b21hdGljYWxseS4KICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDEwcHg7Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJWZXJzaW9uTWV0YSgiSW5zdGFsbGVkIHZlcnNpb24iLHRoaXMudXBkYXRlZFZlcnNpb24pfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA0cHg7IHBhZGRpbmc6IDE0cHggMTZweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsgYm9yZGVyLXJhZGl1czogOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsiCiAgICAgICAgPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyI+CiAgICAgICAgICAgIE5leHQgYWN0aW9uCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyI+CiAgICAgICAgICAgIFJ1bnMgYXV0b21hdGljYWxseSBpbiAke0N9IHNlY29uZHMuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIHJ1blN1Y2Nlc3NDb3VudGRvd24oQyx6LEEpe2xldCAkPU1hdGgubWF4KDFlMyx0aGlzLnN1Y2Nlc3NEZWxheU1zKSxGPURhdGUubm93KCk7Zm9yKDshQT8uYWJvcnRlZDspe2xldCBZPU1hdGgubWluKCQsRGF0ZS5ub3coKS1GKSxHPU1hdGgubWF4KDAsJC1ZKSxaPU1hdGgubWF4KDAsTWF0aC5jZWlsKEcvMWUzKSk7aWYoQy51cGRhdGVQcm9ncmVzc1N0ZXAoe2xhYmVsOkc+MD90aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25MYWJlbChaKTp0aGlzLmdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpLHBlcmNlbnRhZ2U6WS8kKjEwMCxpbmRldGVybWluYXRlOiExLHNob3dQZXJjZW50YWdlOiExLHN0YXR1c1RleHQ6Rz4wP3RoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyhaKTp0aGlzLmdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpfSx6KSxHPD0wKWJyZWFrO2lmKCFhd2FpdCB0aGlzLndhaXRGb3JDb3VudGRvd25UaWNrKDEwMCxBKSlyZXR1cm59YXdhaXQgdGhpcy5ydW5Db25maWd1cmVkU3VjY2Vzc0FjdGlvbigpfWFzeW5jIHdhaXRGb3JDb3VudGRvd25UaWNrKEMseil7cmV0dXJuIG5ldyBQcm9taXNlKEE9PntsZXQgJD0hMSxGPWkoWj0+eyR8fCgkPSEwLHomJnoucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLFkpLEEoWikpfSwiZmluaXNoIiksWT1pKCgpPT57d2luZG93LmNsZWFyVGltZW91dChHKSxGKCExKX0sImhhbmRsZUFib3J0IiksRz13aW5kb3cuc2V0VGltZW91dCgoKT0+e0YoITApfSxDKTt6JiZ6LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixZLHtvbmNlOiEwfSl9KX1hc3luYyBydW5Db25maWd1cmVkU3VjY2Vzc0FjdGlvbigpe2lmKHRoaXMub25TdWNjZXNzQWN0aW9uKXthd2FpdCB0aGlzLm9uU3VjY2Vzc0FjdGlvbigpO3JldHVybn1pZih0aGlzLnN1Y2Nlc3NBY3Rpb249PT0icmVsb2FkIil7YXdhaXQgdGhpcy5kZXN0cm95KCksd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO3JldHVybn1hd2FpdCB0aGlzLmRlc3Ryb3koKX1vcGVuRXh0ZXJuYWxVcmwoQyl7d2luZG93Lm9wZW4oQywiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpfXN0YXRpY3tzMShhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgbmFhPXUoKCk9PntrOXQoKX0pO3ZhciBvYWE9dSgoKT0+e002dCgpfSk7dmFyIGxhYT11KCgpPT57VXJhKCk7UXJhKCk7cmFhKCk7bmFhKCk7b2FhKCl9KTt2YXIgaGcsbWwsY2FhLFg2ZT11KCgpPT57dmUoKTtNcigpO2x0KCk7S3IoKTtzcygpO3NzKCk7UTQoKTtGcCgpO0ZwKCk7aGc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG1sPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxjYWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdvcmtzcGFjZS1maWxldHJlZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlRmlsZXRyZWUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtpZSgpXSx5PVtpZSgpXSxOPVtpZSgpXSxoZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuZXhlY3V0aW9uRW52aXJvbm1lbnQ9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxvLGwpLGhnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm9vdFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InJvb3RQYXRoImluIEUsImhhcyIpLGdldDppKEU9PkUucm9vdFBhdGgsImdldCIpLHNldDppKChFLEIpPT57RS5yb290UGF0aD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGQsZiksaGcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlbGVjdGVkUGF0aCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlbGVjdGVkUGF0aCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnNlbGVjdGVkUGF0aD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGgsbSksaGcodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmVlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idHJlZURhdGEiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS50cmVlRGF0YSwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnRyZWVEYXRhPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sYixnKSxoZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iaXNMb2FkaW5nImluIEUsImhhcyIpLGdldDppKEU9PkUuaXNMb2FkaW5nLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuaXNMb2FkaW5nPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sayxNKSxoZyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yTWVzc2FnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZXJyb3JNZXNzYWdlImluIEUsImhhcyIpLGdldDppKEU9PkUuZXJyb3JNZXNzYWdlLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuZXJyb3JNZXNzYWdlPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sXyxTKSxoZyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpMfSxudWxsLHIpLE89YT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogNDAwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsiPgogICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+PC9kZWVzLXdvcmtzcGFjZS1maWxldHJlZT4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPW1sKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoTCl7dGhpcy4jZT1MfSN0PShtbCh0aGlzLGwpLG1sKHRoaXMsZCwiLyIpKTtnZXQgcm9vdFBhdGgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcm9vdFBhdGgoTCl7dGhpcy4jdD1MfSNyPShtbCh0aGlzLGYpLG1sKHRoaXMsaCwiIikpO2dldCBzZWxlY3RlZFBhdGgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0ZWRQYXRoKEwpe3RoaXMuI3I9TH0jYT0obWwodGhpcyxtKSxtbCh0aGlzLGIsW10pKTtnZXQgdHJlZURhdGEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdHJlZURhdGEoTCl7dGhpcy4jYT1MfSNpPShtbCh0aGlzLGcpLG1sKHRoaXMsaywhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNMb2FkaW5nKEwpe3RoaXMuI2k9TH0jcz0obWwodGhpcyxNKSxtbCh0aGlzLF8sIiIpKTtnZXQgZXJyb3JNZXNzYWdlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGVycm9yTWVzc2FnZShMKXt0aGlzLiNzPUx9ZXhwYW5kZWRQYXRocz0obWwodGhpcyxTKSxuZXcgU2V0KTtsb2FkVHJlZVN0YXJ0ZWQ9ITE7Y2xpcGJvYXJkUGF0aD1udWxsO2NsaXBib2FyZE9wZXJhdGlvbj1udWxsO2ZpbGVXYXRjaGVyPW51bGw7cmVmcmVzaERlYm91bmNlVGltZW91dD1udWxsO2xhc3RFeGVjdXRpb25FbnZpcm9ubWVudD1udWxsO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnRyZWUtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDFweCA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MyUpIiwiaHNsKDAgMCUgMTQlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCA1MCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0uc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTIlKSIsImhzbCgyMTAgNTAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pbmRlbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5leHBhbmRlZCB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24uaGlkZGVuIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uZm9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCg0NSA4MCUgNDUlKSIsImhzbCg0NSA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5maWxlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLnR5cGVzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woMjExIDYwJSA0OCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmphdmFzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woNTMgOTMlIDU0JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uanNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA4MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5odG1sIHsKICAgICAgICBjb2xvcjogaHNsKDE0IDc3JSA1MiUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmNzcyB7CiAgICAgICAgY29sb3I6IGhzbCgyMjggNzclIDU5JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24ubWFya2Rvd24gewogICAgICAgIGNvbG9yOiBoc2woMCAwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogaHNsKDAgNzAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50P3RoaXMuaXNMb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZyI+CiAgICAgICAgICBMb2FkaW5nIGZpbGVzLi4uCiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvck1lc3NhZ2U/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciI+CiAgICAgICAgICAke3RoaXMuZXJyb3JNZXNzYWdlfQogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGV0cmVlLXRvb2xiYXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj5FeHBsb3Jlcjwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWFjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0gdGl0bGU9Ik5ldyBGaWxlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZVBsdXMifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKCIvIil9IHRpdGxlPSJOZXcgRm9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Zm9sZGVyUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy50cmVlRGF0YS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGZpbGVzIGZvdW5kLjwvZGl2PmA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJlZS1jb250YWluZXIiIEBjb250ZXh0bWVudT0ke3RoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51fT4KICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVHJlZSh0aGlzLnRyZWVEYXRhKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5Ij4KICAgICAgICAgIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBwcm92aWRlZC4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZW5kZXJUcmVlKEwpe3JldHVybiBMLm1hcChFPT50aGlzLnJlbmRlck5vZGUoRSkpfXJlbmRlck5vZGUoTCl7bGV0IEU9TC50eXBlPT09ImRpcmVjdG9yeSIsQj10aGlzLmV4cGFuZGVkUGF0aHMuaGFzKEwucGF0aCksQz1MLnBhdGg9PT10aGlzLnNlbGVjdGVkUGF0aCx6PXRoaXMuZ2V0RmlsZUljb25DbGFzcyhMKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0cmVlLWl0ZW0gJHtDPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7OCtMLmxldmVsKjE2fXB4IgogICAgICAgIEBjbGljaz0ke0E9PnRoaXMuaGFuZGxlSXRlbUNsaWNrKEEsTCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7QT0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShBLEwpfQogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZC1pY29uICR7Qj8iZXhwYW5kZWQiOiIifSAke0U/IiI6ImhpZGRlbiJ9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25SaWdodCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWljb24gJHt6fSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5nZXRGaWxlSWNvbihMKX0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtbmFtZSI+JHtMLm5hbWV9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHtFJiZCJiZMLmNoaWxkcmVuP3RoaXMucmVuZGVyVHJlZShMLmNoaWxkcmVuKToiIn0KICAgIGB9Z2V0RmlsZUljb24oTCl7aWYoTC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXRocy5oYXMoTC5wYXRoKT8ibHVjaWRlOmZvbGRlck9wZW4iOiJsdWNpZGU6Zm9sZGVyIjtzd2l0Y2goTC5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJqc29uIjpyZXR1cm4ibHVjaWRlOmZpbGVKc29uIjtjYXNlImh0bWwiOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJtZCI6cmV0dXJuImx1Y2lkZTpmaWxlVGV4dCI7Y2FzZSJwbmciOmNhc2UianBnIjpjYXNlImpwZWciOmNhc2UiZ2lmIjpjYXNlInN2ZyI6cmV0dXJuImx1Y2lkZTppbWFnZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOmZpbGUifX1nZXRGaWxlSWNvbkNsYXNzKEwpe2lmKEwudHlwZT09PSJkaXJlY3RvcnkiKXJldHVybiJmb2xkZXIiO3N3aXRjaChMLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImh0bWwiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImNzcyI7Y2FzZSJtZCI6cmV0dXJuIm1hcmtkb3duIjtkZWZhdWx0OnJldHVybiJmaWxlIn19YXN5bmMgaGFuZGxlSXRlbUNsaWNrKEwsRSl7TC5zdG9wUHJvcGFnYXRpb24oKSxFLnR5cGU9PT0iZGlyZWN0b3J5Ij9hd2FpdCB0aGlzLnRvZ2dsZURpcmVjdG9yeShFKToodGhpcy5zZWxlY3RlZFBhdGg9RS5wYXRoLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtc2VsZWN0Iix7ZGV0YWlsOntwYXRoOkUucGF0aCxuYW1lOkUubmFtZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9YXN5bmMgdG9nZ2xlRGlyZWN0b3J5KEwpe3RoaXMuZXhwYW5kZWRQYXRocy5oYXMoTC5wYXRoKT90aGlzLmV4cGFuZGVkUGF0aHMuZGVsZXRlKEwucGF0aCk6KHRoaXMuZXhwYW5kZWRQYXRocy5hZGQoTC5wYXRoKSwoIUwuY2hpbGRyZW58fEwuY2hpbGRyZW4ubGVuZ3RoPT09MCkmJmF3YWl0IHRoaXMubG9hZERpcmVjdG9yeUNvbnRlbnRzKEwpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBsb2FkRGlyZWN0b3J5Q29udGVudHMoTCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IEU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKEwucGF0aCk7TC5jaGlsZHJlbj10aGlzLnNvcnRFbnRyaWVzKEUpLm1hcChCPT4oey4uLkIsbGV2ZWw6TC5sZXZlbCsxLGV4cGFuZGVkOiExLGNoaWxkcmVuOkIudHlwZT09PSJkaXJlY3RvcnkiP1tdOnZvaWQgMH0pKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkgJHtMLnBhdGh9OmAsRSl9fWFzeW5jIGhhbmRsZUNvbnRleHRNZW51KEwsRSl7TC5wcmV2ZW50RGVmYXVsdCgpLEwuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEI9W107RS50eXBlPT09ImRpcmVjdG9yeSImJkIucHVzaCh7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKEUucGF0aCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKEUucGF0aCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0pLEIucHVzaCh7bmFtZToiUmVuYW1lIixpY29uTmFtZToicGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oRSksImFjdGlvbiIpfSx7bmFtZToiRHVwbGljYXRlIixpY29uTmFtZToiZmlsZXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShFKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jb3B5SXRlbShFKSwiYWN0aW9uIil9KSxFLnR5cGU9PT0iZGlyZWN0b3J5IiYmdGhpcy5jbGlwYm9hcmRQYXRoJiZCLnB1c2goe25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbShFLnBhdGgpLCJhY3Rpb24iKX0pLEIucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKEUpLCJhY3Rpb24iKX0pLGF3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEwsQil9YXN5bmMgaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KEwpe2lmKEwudGFyZ2V0LmNsb3Nlc3QoIi50cmVlLWl0ZW0iKSlyZXR1cm47TC5wcmV2ZW50RGVmYXVsdCgpLEwuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEI9W3tuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKSwiYWN0aW9uIil9XTt0aGlzLmNsaXBib2FyZFBhdGgmJkIucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpLCJhY3Rpb24iKX0pLGF3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEwsQil9YXN5bmMgc2hvd0lucHV0TW9kYWwoTCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIEU9PntsZXQgQj1hd2FpdCBlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOkwuaGVhZGluZyx3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7TC5sYWJlbH0KICAgICAgICAgICAgLnZhbHVlPSR7TC52YWx1ZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgej0+e2F3YWl0IHouZGVzdHJveSgpLEUobnVsbCl9LCJhY3Rpb24iKX0se25hbWU6TC5idXR0b25OYW1lfHwiQ3JlYXRlIixhY3Rpb246aShhc3luYyB6PT57bGV0IEY9ei5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IHouZGVzdHJveSgpLEUoRnx8bnVsbCl9LCJhY3Rpb24iKX1dfSk7YXdhaXQgQi51cGRhdGVDb21wbGV0ZTtsZXQgQz1CLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpO2lmKEMpe2xldCB6PUMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7eiYmKGF3YWl0IHoudXBkYXRlQ29tcGxldGUsei5mb2N1cygpKX19KX1hc3luYyBjcmVhdGVOZXdGaWxlKEwpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGaWxlIixsYWJlbDoiRmlsZSBuYW1lIn0pO2lmKCFFfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEI9TD09PSIvIj9gLyR7RX1gOmAke0x9LyR7RX1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShCLCIiKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWxlLWNyZWF0ZWQiLHtkZXRhaWw6e3BhdGg6Qn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChDKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGZpbGU6IixDKX19YXN5bmMgY3JlYXRlTmV3Rm9sZGVyKEwpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGb2xkZXIiLGxhYmVsOiJGb2xkZXIgbmFtZSJ9KTtpZighRXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBCPUw9PT0iLyI/YC8ke0V9YDpgJHtMfS8ke0V9YDt0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcihCKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmb2xkZXItY3JlYXRlZCIse2RldGFpbDp7cGF0aDpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKEMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyOiIsQyl9fWFzeW5jIGRlbGV0ZUl0ZW0oTCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWNvbmZpcm0oYERlbGV0ZSAke0wubmFtZX0/YCkpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEwucGF0aCx7cmVjdXJzaXZlOkwudHlwZT09PSJkaXJlY3RvcnkifSksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kZWxldGVkIix7ZGV0YWlsOntwYXRoOkwucGF0aCx0eXBlOkwudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChCKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGl0ZW06IixCKX19YXN5bmMgcmVuYW1lSXRlbShMKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEU9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiUmVuYW1lIixsYWJlbDoiTmV3IG5hbWUiLHZhbHVlOkwubmFtZSxidXR0b25OYW1lOiJSZW5hbWUifSk7aWYoIUV8fEU9PT1MLm5hbWUpcmV0dXJuO2xldCBCPUwucGF0aC5zdWJzdHJpbmcoMCxMLnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixDPUI9PT0iLyI/YC8ke0V9YDpgJHtCfS8ke0V9YDt0cnl7aWYoTC50eXBlPT09ImZpbGUiKXtsZXQgej1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKEwucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoQyx6KSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEwucGF0aCl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhMLnBhdGgsQyksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybShMLnBhdGgse3JlY3Vyc2l2ZTohMH0pO2F3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tcmVuYW1lZCIse2RldGFpbDp7b2xkUGF0aDpMLnBhdGgsbmV3UGF0aDpDLHR5cGU6TC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKHope2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5hbWUgaXRlbToiLHopfX1hc3luYyBkdXBsaWNhdGVJdGVtKEwpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgRT1MLnBhdGguc3Vic3RyaW5nKDAsTC5wYXRoLmxhc3RJbmRleE9mKCIvIikpfHwiLyIsQjtpZihMLnR5cGU9PT0iZmlsZSIpe2xldCB6PUwubmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKHo+MCl7bGV0IEE9TC5uYW1lLnN1YnN0cmluZygwLHopLCQ9TC5uYW1lLnN1YnN0cmluZyh6KTtCPWAke0F9X2NvcHkkeyR9YH1lbHNlIEI9YCR7TC5uYW1lfV9jb3B5YH1lbHNlIEI9YCR7TC5uYW1lfV9jb3B5YDtsZXQgQz1FPT09Ii8iP2AvJHtCfWA6YCR7RX0vJHtCfWA7dHJ5e2lmKEwudHlwZT09PSJmaWxlIil7bGV0IHo9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShMLnBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEMseil9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhMLnBhdGgsQyk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kdXBsaWNhdGVkIix7ZGV0YWlsOntzb3VyY2VQYXRoOkwucGF0aCxuZXdQYXRoOkMsdHlwZTpMLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goeil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGR1cGxpY2F0ZSBpdGVtOiIseil9fWFzeW5jIGNvcHlJdGVtKEwpe3RoaXMuY2xpcGJvYXJkUGF0aD1MLnBhdGgsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249ImNvcHkifWFzeW5jIHBhc3RlSXRlbShMKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXRoaXMuY2xpcGJvYXJkUGF0aClyZXR1cm47bGV0IEU9dGhpcy5jbGlwYm9hcmRQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJwYXN0ZWQiLEI9TD09PSIvIj9gLyR7RX1gOmAke0x9LyR7RX1gO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHModGhpcy5jbGlwYm9hcmRQYXRoKSl7Y29uc29sZS5lcnJvcigiU291cmNlIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cyIpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7cmV0dXJufXRyeXtsZXQgQz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHRoaXMuY2xpcGJvYXJkUGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoQixDKX1jYXRjaHthd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh0aGlzLmNsaXBib2FyZFBhdGgsQil9YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1wYXN0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6dGhpcy5jbGlwYm9hcmRQYXRoLHRhcmdldFBhdGg6Qn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNsaXBib2FyZFBhdGg9bnVsbCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj1udWxsfWNhdGNoKEMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBwYXN0ZSBpdGVtOiIsQyl9fWFzeW5jIGNvcHlEaXJlY3RvcnlDb250ZW50cyhMLEUpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKEUpO2xldCBCPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihMKTtmb3IobGV0IEMgb2YgQil7bGV0IHo9TD09PSIvIj9gLyR7Qy5uYW1lfWA6YCR7TH0vJHtDLm5hbWV9YCxBPUU9PT0iLyI/YC8ke0MubmFtZX1gOmAke0V9LyR7Qy5uYW1lfWA7aWYoQy50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoeixBKTtlbHNle2xldCAkPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoeik7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoQSwkKX19fWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFRyZWUoKX1hc3luYyB1cGRhdGVkKEwpe0wuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiYodGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQhPT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYodGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudD10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkVHJlZSgpLHRoaXMuc3RhcnRGaWxlV2F0Y2hlcigpKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3RvcEZpbGVXYXRjaGVyKCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0RmlsZVdhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmZpbGVXYXRjaGVyKSl0cnl7dGhpcy5maWxlV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvIiwoTCxFKT0+e3RoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnJlZnJlc2goKX0sMzAwKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKEwpe2NvbnNvbGUud2FybigiRmlsZSB3YXRjaGluZyBub3Qgc3VwcG9ydGVkOiIsTCl9fXN0b3BGaWxlV2F0Y2hlcigpe3RoaXMuZmlsZVdhdGNoZXImJih0aGlzLmZpbGVXYXRjaGVyLnN0b3AoKSx0aGlzLmZpbGVXYXRjaGVyPW51bGwpfWFzeW5jIGxvYWRUcmVlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMubG9hZFRyZWVTdGFydGVkKXt0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMCx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmVycm9yTWVzc2FnZT0iIjt0cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCk7bGV0IEw9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHRoaXMucm9vdFBhdGgpO3RoaXMudHJlZURhdGE9dGhpcy5zb3J0RW50cmllcyhMKS5tYXAoRT0+KHsuLi5FLGxldmVsOjAsZXhwYW5kZWQ6ITEsY2hpbGRyZW46RS50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKEwpe3RoaXMuZXJyb3JNZXNzYWdlPWBGYWlsZWQgdG8gbG9hZCBmaWxlczogJHtMfWAsY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgZmlsZSB0cmVlOiIsTCksdGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITF9ZmluYWxseXt0aGlzLmlzTG9hZGluZz0hMX19fXNvcnRFbnRyaWVzKEwpe3JldHVybiBMLnNvcnQoKEUsQik9PkUudHlwZSE9PUIudHlwZT9FLnR5cGU9PT0iZGlyZWN0b3J5Ij8tMToxOkUubmFtZS5sb2NhbGVDb21wYXJlKEIubmFtZSkpfWFzeW5jIHJlZnJlc2goKXt0aGlzLmV4cGFuZGVkUGF0aHMuY2xlYXIoKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMSxhd2FpdCB0aGlzLmxvYWRUcmVlKCl9c2VsZWN0RmlsZShMKXt0aGlzLnNlbGVjdGVkUGF0aD1MfXN0YXRpY3ttbChhLHIpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgUzl0LFpyZSxkYWEsTTl0PXUoKCk9Pnt2ZSgpO2x0KCk7cDMoKTtucygpO1M5dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sWnJlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxkYWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VUZXJtaW5hbFByZXZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOkFycmF5fSldLFM5dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImNvbW1hbmQiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5jb21tYW5kLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uY29tbWFuZD12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksUzl0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImxpbmVzImluIG0sImhhcyIpLGdldDppKG09Pm0ubGluZXMsImdldCIpLHNldDppKChtLHYpPT57bS5saW5lcz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksUzl0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgIC5jb21tYW5kPSR7InBucG0gaW5zdGFsbCJ9CiAgICAgIC5saW5lcz0ke1siUGFja2FnZXM6ICs0MiIsIlByb2dyZXNzOiByZXNvbHZlZCAxNDIsIHJldXNlZCAxNDAsIGRvd25sb2FkZWQgMiwgYWRkZWQgNDIsIGRvbmUiLCIiLCJkZXBlbmRlbmNpZXM6IiwiKyBAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UgNC4yLjMiLCIrIHR5cGVzY3JpcHQgNS4zLjMiLCIiLCJEb25lIGluIDIuM3MiXX0KICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9WnJlKHRoaXMsbywiIik7Z2V0IGNvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29tbWFuZChoKXt0aGlzLiNlPWh9I3Q9KFpyZSh0aGlzLGwpLFpyZSh0aGlzLGQsW10pKTtnZXQgbGluZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGluZXMoaCl7dGhpcy4jdD1ofXRlcm1pbmFsPShacmUodGhpcyxmKSxudWxsKTtmaXRBZGRvbj1udWxsO2xhc3RMaW5lQ291bnQ9MDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWljb24gewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWNvbW1hbmQgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAjeHRlcm0tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA4cHg7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIEN1c3RvbSBzY3JvbGxiYXIgZm9yIHh0ZXJtIHZpZXdwb3J0ICovCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWItaG92ZXIpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InRlcm1pbmFsLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybWluYWwtaGVhZGVyLWljb24iPiQ8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybWluYWwtaGVhZGVyLWNvbW1hbmQiPiR7dGhpcy5jb21tYW5kfHwiV2FpdGluZy4uLiJ9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGlkPSJ4dGVybS1jb250YWluZXIiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Z2V0VGVybWluYWxUaGVtZShoKXtyZXR1cm4gaD97YmFja2dyb3VuZDoiI2ZmZmZmZiIsZm9yZWdyb3VuZDoiIzMzMzMzMyIsY3Vyc29yOiIjMzMzMzMzIixjdXJzb3JBY2NlbnQ6IiNmZmZmZmYiLHNlbGVjdGlvbkJhY2tncm91bmQ6InJnYmEoMCwgMCwgMCwgMC4yKSJ9OntiYWNrZ3JvdW5kOiIjMDAwMDAwIixmb3JlZ3JvdW5kOiIjY2NjY2NjIixjdXJzb3I6IiNjY2NjY2MiLGN1cnNvckFjY2VudDoiIzAwMDAwMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIn19YXN5bmMgZmlyc3RVcGRhdGVkKGgpe3N1cGVyLmZpcnN0VXBkYXRlZChoKTtsZXQgbT10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJ4dGVybS1jb250YWluZXIiKTtpZighbSlyZXR1cm47bGV0IHY9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYj12LnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4sZz1zbi5nZXRJbnN0YW5jZSgpLFt5LGtdPWF3YWl0IFByb21pc2UuYWxsKFtnLmxvYWRYdGVybSgpLGcubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGVybWluYWw9bmV3IHkuVGVybWluYWwoe2NvbnZlcnRFb2w6ITAsY3Vyc29yQmxpbms6ITEsZGlzYWJsZVN0ZGluOiEwLGZvbnRTaXplOjEyLGZvbnRGYW1pbHk6IidTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2UiLHRoZW1lOnRoaXMuZ2V0VGVybWluYWxUaGVtZShiKSxzY3JvbGxiYWNrOjFlM30pLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj12LnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKE09Pnt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZShNKSl9KSx0aGlzLmZpdEFkZG9uPW5ldyBrLkZpdEFkZG9uLHRoaXMudGVybWluYWwubG9hZEFkZG9uKHRoaXMuZml0QWRkb24pLHRoaXMudGVybWluYWwub3BlbihtKSx0aGlzLmZpdEFkZG9uLmZpdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXRBZGRvbiYmdGhpcy5maXRBZGRvbi5maXQoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShtKSx0aGlzLndyaXRlTmV3TGluZXMoKX1hc3luYyB1cGRhdGVkKGgpe3N1cGVyLnVwZGF0ZWQoaCksaC5oYXMoImxpbmVzIikmJnRoaXMud3JpdGVOZXdMaW5lcygpfXdyaXRlTmV3TGluZXMoKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IGg9dGhpcy5saW5lcy5zbGljZSh0aGlzLmxhc3RMaW5lQ291bnQpO2ZvcihsZXQgbSBvZiBoKXRoaXMudGVybWluYWwud3JpdGVsbihtKTt0aGlzLmxhc3RMaW5lQ291bnQ9dGhpcy5saW5lcy5sZW5ndGh9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1udWxsKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwuZGlzcG9zZSgpLHRoaXMudGVybWluYWw9bnVsbCksYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX1hZGRMaW5lKGgpe3RoaXMubGluZXM9Wy4uLnRoaXMubGluZXMsaF19Y2xlYXIoKXt0aGlzLmxpbmVzPVtdLHRoaXMubGFzdExpbmVDb3VudD0wLHRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuY2xlYXIoKX1zdGF0aWN7WnJlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBGdyxQYyx1YWEsQzl0PXUoKCk9Pnt2ZSgpO2x0KCk7S3IoKTtzcygpO0Z3PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxQYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sdWFhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VCb3R0b21iYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtpZSgpXSxwPVtpZSgpXSx2PVtpZSgpXSx5PVtpZSgpXSxGdyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuZXhlY3V0aW9uRW52aXJvbm1lbnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxvLGwpLEZ3KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2NyaXB0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2NyaXB0cyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNjcmlwdHMsImdldCIpLHNldDppKChTLE8pPT57Uy5zY3JpcHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sZCxmKSxGdyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhY2thZ2VTdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InBhY2thZ2VTdGF0dXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5wYWNrYWdlU3RhdHVzLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MucGFja2FnZVN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksRncodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRkYXRlZFBhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvdXRkYXRlZFBhY2thZ2VzImluIFMsImhhcyIpLGdldDppKFM9PlMub3V0ZGF0ZWRQYWNrYWdlcywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLm91dGRhdGVkUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEZ3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNDaGVja2luZ1BhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpc0NoZWNraW5nUGFja2FnZXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pc0NoZWNraW5nUGFja2FnZXMsImdldCIpLHNldDppKChTLE8pPT57Uy5pc0NoZWNraW5nUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEZ3KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9I2U9UGModGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChfKXt0aGlzLiNlPV99I3Q9KFBjKHRoaXMsbCksUGModGhpcyxkLHt9KSk7Z2V0IHNjcmlwdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2NyaXB0cyhfKXt0aGlzLiN0PV99I3I9KFBjKHRoaXMsZiksUGModGhpcyxoLCJpZGxlIikpO2dldCBwYWNrYWdlU3RhdHVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBhY2thZ2VTdGF0dXMoXyl7dGhpcy4jcj1ffSNhPShQYyh0aGlzLG0pLFBjKHRoaXMsYixbXSkpO2dldCBvdXRkYXRlZFBhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG91dGRhdGVkUGFja2FnZXMoXyl7dGhpcy4jYT1ffSNpPShQYyh0aGlzLGcpLFBjKHRoaXMsaywhMSkpO2dldCBpc0NoZWNraW5nUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNDaGVja2luZ1BhY2thZ2VzKF8pe3RoaXMuI2k9X31wZW5kaW5nUGFja2FnZVVwZGF0ZT0oUGModGhpcyxNKSwhMSk7aGFuZGxlUHJvY2Vzc0NvbXBsZXRlPWkoXz0+e3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGUmJih0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDUwMCkpfSwiaGFuZGxlUHJvY2Vzc0NvbXBsZXRlIik7c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDYlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAud2lkZ2V0LXNlcGFyYXRvciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC53aWRnZXQucnVubmluZyB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnVwLXRvLWRhdGUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQudXBkYXRlcy1hdmFpbGFibGUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LmVycm9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5zcGlubmluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnNwYWNlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1iYXIiPgogICAgICAgIDwhLS0gU2NyaXB0IFJ1bm5lciBXaWRnZXQgLS0+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9IndpZGdldCIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2NyaXB0Q2xpY2t9CiAgICAgICAgICB0aXRsZT0iUnVuIHNjcmlwdCIKICAgICAgICA+CiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpwbGF5In0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+U2NyaXB0czwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+CgogICAgICAgIDwhLS0gUGFja2FnZSBDaGVja2VyIFdpZGdldCAtLT4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0id2lkZ2V0ICR7dGhpcy5nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKX0iCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVBhY2thZ2VDbGlja30KICAgICAgICAgIHRpdGxlPSIke3RoaXMuZ2V0UGFja2FnZVRvb2x0aXAoKX0iCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke3RoaXMuZ2V0UGFja2FnZUljb24oKX0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8ic3Bpbm5pbmciOiIifSIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPiR7dGhpcy5nZXRQYWNrYWdlU3RhdHVzVGV4dCgpfTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCiAgICAgICAgPCEtLSBGdXR1cmUgd2lkZ2V0cyBjYW4gYmUgYWRkZWQgaGVyZSAtLT4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicHJvY2Vzcy1jb21wbGV0ZSIsdGhpcy5oYW5kbGVQcm9jZXNzQ29tcGxldGUpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicHJvY2Vzcy1jb21wbGV0ZSIsdGhpcy5oYW5kbGVQcm9jZXNzQ29tcGxldGUpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFNjcmlwdHMoKSxhd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKX1hc3luYyB1cGRhdGVkKF8pe18uaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpLGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpKX1hc3luYyBsb2FkU2NyaXB0cygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL3BhY2thZ2UuanNvbiIpKXt0aGlzLnNjcmlwdHM9e307cmV0dXJufWxldCBTPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoIi9wYWNrYWdlLmpzb24iKSxPPUpTT04ucGFyc2UoUyk7dGhpcy5zY3JpcHRzPU8uc2NyaXB0c3x8e319Y2F0Y2goXyl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gbG9hZCBzY3JpcHRzIGZyb20gcGFja2FnZS5qc29uOiIsXyksdGhpcy5zY3JpcHRzPXt9fX1hc3luYyBoYW5kbGVTY3JpcHRDbGljayhfKXtfLnN0b3BQcm9wYWdhdGlvbigpO2xldCBTPU9iamVjdC5rZXlzKHRoaXMuc2NyaXB0cyk7aWYoUy5sZW5ndGg9PT0wKXJldHVybjtsZXQgTz1TLm1hcChMPT4oe25hbWU6TCxpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIixhY3Rpb246aShhc3luYygpPT57YXdhaXQgdGhpcy5ydW5TY3JpcHQoTCl9LCJhY3Rpb24iKX0pKTthd2FpdCBDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhfLE8pfWFzeW5jIHJ1blNjcmlwdChfKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IFM9e3R5cGU6InNjcmlwdCIsbGFiZWw6Xyxjb21tYW5kOiJwbnBtIixhcmdzOlsicnVuIixfXSxtZXRhZGF0YTp7c2NyaXB0TmFtZTpffX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpTfSkpfWFzeW5jIGNoZWNrUGFja2FnZXMoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5wYWNrYWdlU3RhdHVzPSJpZGxlIjtyZXR1cm59dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL3BhY2thZ2UuanNvbiIpKXt0aGlzLnBhY2thZ2VTdGF0dXM9ImlkbGUiO3JldHVybn10aGlzLnBhY2thZ2VTdGF0dXM9ImNoZWNraW5nIix0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMDtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKCJwbnBtIixbIm91dGRhdGVkIiwiLS1qc29uIl0pLE89IiIsTD1TLm91dHB1dC5nZXRSZWFkZXIoKTtpKGFzeW5jKCk9Pnt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTpDLHZhbHVlOnp9PWF3YWl0IEwucmVhZCgpO2lmKEMpYnJlYWs7Tys9en19Y2F0Y2h7fX0sInJlYWRPdXRwdXQiKSgpO2xldCBCPWF3YWl0IFByb21pc2UucmFjZShbUy5leGl0LG5ldyBQcm9taXNlKEM9PnNldFRpbWVvdXQoKCk9PkMoLTEpLDFlNCkpXSk7dHJ5e2F3YWl0IEwuY2FuY2VsKCl9Y2F0Y2h7fWlmKEI9PT0tMSl7Y29uc29sZS53YXJuKCJQYWNrYWdlIGNoZWNrIHRpbWVkIG91dCIpLHRoaXMucGFja2FnZVN0YXR1cz0iZXJyb3IiO3JldHVybn1pZihCPT09MCl0aGlzLnBhY2thZ2VTdGF0dXM9InVwLXRvLWRhdGUiLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcz1bXTtlbHNlIHRyeXtsZXQgQz1KU09OLnBhcnNlKE8pO3RoaXMub3V0ZGF0ZWRQYWNrYWdlcz10aGlzLnBhcnNlT3V0ZGF0ZWRQYWNrYWdlcyhDKSx0aGlzLnBhY2thZ2VTdGF0dXM9dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wPyJ1cGRhdGVzLWF2YWlsYWJsZSI6InVwLXRvLWRhdGUifWNhdGNoe3RoaXMucGFja2FnZVN0YXR1cz0idXBkYXRlcy1hdmFpbGFibGUiLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcz1bXX19Y2F0Y2goXyl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gY2hlY2sgZm9yIHBhY2thZ2UgdXBkYXRlczoiLF8pLHRoaXMucGFja2FnZVN0YXR1cz0iZXJyb3IifWZpbmFsbHl7dGhpcy5pc0NoZWNraW5nUGFja2FnZXM9ITF9fXBhcnNlT3V0ZGF0ZWRQYWNrYWdlcyhfKXtsZXQgUz1bXTtpZih0eXBlb2YgXz09Im9iamVjdCImJl8hPT1udWxsKWZvcihsZXRbTyxMXW9mIE9iamVjdC5lbnRyaWVzKF8pKXtsZXQgRT1MO1MucHVzaCh7bmFtZTpPLGN1cnJlbnQ6RS5jdXJyZW50fHwidW5rbm93biIsd2FudGVkOkUud2FudGVkfHxFLmN1cnJlbnR8fCJ1bmtub3duIixsYXRlc3Q6RS5sYXRlc3R8fEUud2FudGVkfHwidW5rbm93biIsdHlwZTpFLmRlcGVuZGVuY3lUeXBlPT09ImRldkRlcGVuZGVuY2llcyI/ImRldkRlcGVuZGVuY2llcyI6ImRlcGVuZGVuY2llcyJ9KX1yZXR1cm4gU31hc3luYyBoYW5kbGVQYWNrYWdlQ2xpY2soXyl7Xy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUz1bXTtpZihTLnB1c2goe25hbWU6dGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IkNoZWNraW5nLi4uIjoiQ2hlY2sgZm9yIHVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaEN3IixhY3Rpb246aShhc3luYygpPT57aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuO2xldCBPPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6ImNoZWNrIHBhY2thZ2VzIixjb21tYW5kOiJwbnBtIixhcmdzOlsib3V0ZGF0ZWQiXX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpPfSkpLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDNlMyl9LCJhY3Rpb24iKX0pLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGg+MCl7Uy5wdXNoKHtkaXZpZGVyOiEwfSk7bGV0IE89dGhpcy5vdXRkYXRlZFBhY2thZ2VzLnNsaWNlKDAsMTApO2ZvcihsZXQgTCBvZiBPKVMucHVzaCh7bmFtZTpgJHtMLm5hbWV9OiAke0wuY3VycmVudH0gXHUyMTkyICR7TC5sYXRlc3R9YCxpY29uTmFtZToibHVjaWRlOnBhY2thZ2UiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZVBhY2thZ2UoTC5uYW1lKX0sImFjdGlvbiIpfSk7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4xMCYmUy5wdXNoKHtuYW1lOmAuLi4gYW5kICR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aC0xMH0gbW9yZWAsaWNvbk5hbWU6Imx1Y2lkZTptb3JlSG9yaXpvbnRhbCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpfSksUy5wdXNoKHtkaXZpZGVyOiEwfSksUy5wdXNoKHtuYW1lOiJVcGRhdGUgYWxsIHBhY2thZ2VzIixpY29uTmFtZToibHVjaWRlOmFycm93VXBDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZUFsbFBhY2thZ2VzKCl9LCJhY3Rpb24iKX0pfWF3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKF8sUyl9YXN5bmMgdXBkYXRlUGFja2FnZShfKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZT0hMDtsZXQgUz17dHlwZToicGFja2FnZS11cGRhdGUiLGxhYmVsOmB1cGRhdGUgJHtffWAsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0IixfXSxtZXRhZGF0YTp7cGFja2FnZU5hbWU6X319O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6U30pKX1hc3luYyB1cGRhdGVBbGxQYWNrYWdlcygpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBfPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6InVwZGF0ZSBhbGwiLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJ1cGRhdGUiLCItLWxhdGVzdCJdfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOl99KSl9Z2V0UGFja2FnZVN0YXR1c0NsYXNzKCl7cmV0dXJuIHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyIiOnRoaXMucGFja2FnZVN0YXR1c31nZXRQYWNrYWdlSWNvbigpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJsdWNpZGU6bG9hZGVyMiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4ibHVjaWRlOmNoZWNrQ2lyY2xlIjtjYXNlInVwZGF0ZXMtYXZhaWxhYmxlIjpyZXR1cm4ibHVjaWRlOmFsZXJ0Q2lyY2xlIjtjYXNlImVycm9yIjpyZXR1cm4ibHVjaWRlOnhDaXJjbGUiO2RlZmF1bHQ6cmV0dXJuImx1Y2lkZTpwYWNrYWdlIn19Z2V0UGFja2FnZVN0YXR1c1RleHQoKXtpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm4iQ2hlY2tpbmcuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIlVwIHRvIGRhdGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybmAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGh9IHVwZGF0ZSR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aCE9PTE/InMiOiIifWA7Y2FzZSJlcnJvciI6cmV0dXJuIkNoZWNrIGZhaWxlZCI7ZGVmYXVsdDpyZXR1cm4iUGFja2FnZXMifX1nZXRQYWNrYWdlVG9vbHRpcCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZyBmb3IgcGFja2FnZSB1cGRhdGVzLi4uIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJBbGwgcGFja2FnZXMgYXJlIHVwIHRvIGRhdGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybmAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGh9IHBhY2thZ2UgdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF2YWlsYWJsZWA7Y2FzZSJlcnJvciI6cmV0dXJuIkZhaWxlZCB0byBjaGVjayBmb3IgdXBkYXRlcy4gQ2xpY2sgdG8gcmV0cnkuIjtkZWZhdWx0OnJldHVybiJDbGljayB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzIn19YXN5bmMgcmVmcmVzaFBhY2thZ2VTdGF0dXMoKXthd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKX1hc3luYyByZWZyZXNoU2NyaXB0cygpe2F3YWl0IHRoaXMubG9hZFNjcmlwdHMoKX1zdGF0aWN7UGMoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIFFyZSx6OXQ9dSgoKT0+e1FyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlU2NyaXB0SW50ZWxsaVNlbnNlTWFuYWdlciIpfWxvYWRlZExpYnM9bmV3IFNldDtub3RGb3VuZFBhY2thZ2VzPW5ldyBTZXQ7bW9uYWNvSW5zdGFuY2U9bnVsbDtleGVjdXRpb25FbnZpcm9ubWVudD1udWxsO2ZpbGVDYWNoZT1uZXcgTWFwO2FkZGVkRXh0cmFMaWJzPW5ldyBNYXA7Z2V0IHRzQXBpKCl7cmV0dXJuIHRoaXMubW9uYWNvSW5zdGFuY2U/dGhpcy5tb25hY29JbnN0YW5jZS5sYW5ndWFnZXMudHlwZXNjcmlwdDpudWxsfWFzeW5jIGluaXQoZSxyKXt0aGlzLm1vbmFjb0luc3RhbmNlPWUsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudD1yLHRoaXMuY29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCksYXdhaXQgdGhpcy5sb2FkQWxsUHJvamVjdEZpbGVzKCl9YXN5bmMgbG9hZEFsbFByb2plY3RGaWxlcygpe3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeSgiLyIpfWFzeW5jIGxvYWRGaWxlc0Zyb21EaXJlY3RvcnkoZSl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IHI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgYSBvZiByKXtsZXQgcz1lPT09Ii8iP2AvJHthLm5hbWV9YDpgJHtlfS8ke2EubmFtZX1gO2lmKGEubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihhLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWRGaWxlc0Zyb21EaXJlY3Rvcnkocyk7ZWxzZSBpZihhLnR5cGU9PT0iZmlsZSIpe2xldCBuPWEubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO2lmKG49PT0idHMifHxuPT09InRzeCJ8fG49PT0ianMifHxuPT09ImpzeCIpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUocyk7dGhpcy5hZGRGaWxlTW9kZWwocyxvKX1jYXRjaHt9fX19fWNhdGNoe319Y29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCl7bGV0IGU9dGhpcy50c0FwaTtlJiYoZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0Q29tcGlsZXJPcHRpb25zKHt0YXJnZXQ6ZS5TY3JpcHRUYXJnZXQuRVMyMDIwLG1vZHVsZTplLk1vZHVsZUtpbmQuRVNOZXh0LG1vZHVsZVJlc29sdXRpb246ZS5Nb2R1bGVSZXNvbHV0aW9uS2luZC5CdW5kbGVyPz9lLk1vZHVsZVJlc29sdXRpb25LaW5kLk5vZGVKcyxhbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzOiEwLGVzTW9kdWxlSW50ZXJvcDohMCxzdHJpY3Q6ITAsbm9FbWl0OiEwLGFsbG93SnM6ITAsY2hlY2tKczohMSxhbGxvd05vblRzRXh0ZW5zaW9uczohMCxsaWI6WyJlczIwMjAiLCJkb20iLCJkb20uaXRlcmFibGUiXSxiYXNlVXJsOiIvIixhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczohMCxyZXNvbHZlSnNvbk1vZHVsZTohMH0pLGUudHlwZXNjcmlwdERlZmF1bHRzLnNldERpYWdub3N0aWNzT3B0aW9ucyh7bm9TZW1hbnRpY1ZhbGlkYXRpb246ITEsbm9TeW50YXhWYWxpZGF0aW9uOiExfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RWFnZXJNb2RlbFN5bmMoITApKX1wYXJzZUltcG9ydHMoZSl7bGV0IHI9W10sYT0vaW1wb3J0XHMrKD86W1x3Knt9XHMsXStmcm9tXHMrKT9bJyJdKFteJyJdKylbJyJdL2cscztmb3IoOyhzPWEuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89c1sxXTtpZighby5zdGFydHNXaXRoKCIuIikmJiFvLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IGw9by5zdGFydHNXaXRoKCJAIik/by5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm8uc3BsaXQoIi8iKVswXTtyLnB1c2gobCl9fWxldCBuPS9yZXF1aXJlXHMqXChccypbJyJdKFteJyJdKylbJyJdXHMqXCkvZztmb3IoOyhzPW4uZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89c1sxXTtpZighby5zdGFydHNXaXRoKCIuIikmJiFvLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IGw9by5zdGFydHNXaXRoKCJAIik/by5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm8uc3BsaXQoIi8iKVswXTtyLnB1c2gobCl9fXJldHVyblsuLi5uZXcgU2V0KHIpXX1hc3luYyBsb2FkVHlwZXNGb3JQYWNrYWdlKGUpe2lmKCEoIXRoaXMubW9uYWNvSW5zdGFuY2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSYmIXRoaXMubG9hZGVkTGlicy5oYXMoZSkmJiF0aGlzLm5vdEZvdW5kUGFja2FnZXMuaGFzKGUpKXRyeXtsZXQgcj1hd2FpdCB0aGlzLnRyeUxvYWRQYWNrYWdlVHlwZXMoZSk7cnx8KHI9YXdhaXQgdGhpcy50cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSkpLHI/dGhpcy5sb2FkZWRMaWJzLmFkZChlKTp0aGlzLm5vdEZvdW5kUGFja2FnZXMuYWRkKGUpfWNhdGNoKHIpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgdHlwZXMgZm9yICR7ZX06YCxyKX19YXN5bmMgdHJ5TG9hZFBhY2thZ2VUeXBlcyhlKXtsZXQgcj10aGlzLnRzQXBpO2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhcilyZXR1cm4hMTtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke2V9YDt0cnl7bGV0IHM9YCR7YX0vcGFja2FnZS5qc29uYDtpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhzKSl7bGV0IGw9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShzKSxjPUpTT04ucGFyc2UobCk7aWYoci50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobCxgZmlsZTovLyR7c31gKSxjLnR5cGVzfHxjLnR5cGluZ3MpcmV0dXJuIGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoYSksITB9bGV0IG89W2Ake2F9L2luZGV4LmQudHNgLGAke2F9L2Rpc3QvaW5kZXguZC50c2AsYCR7YX0vbGliL2luZGV4LmQudHNgXTtmb3IobGV0IGwgb2YgbylpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhsKSlyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShhKSwhMDtyZXR1cm4hMX1jYXRjaChzKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgcGFja2FnZSB0eXBlcyBmb3IgJHtlfTpgLHMpLCExfX1hc3luYyBsb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShlKXtsZXQgcj10aGlzLnRzQXBpOyF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhcnx8YXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KGUpfWFzeW5jIGxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl7bGV0IHI9dGhpcy50c0FwaTtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhcikpdHJ5e2xldCBhPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihlKTtmb3IobGV0IHMgb2YgYSl7bGV0IG49ZT09PSIvIj9gLyR7cy5uYW1lfWA6YCR7ZX0vJHtzLm5hbWV9YDtpZihzLm5hbWUhPT0ibm9kZV9tb2R1bGVzIil7aWYocy50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KG4pO2Vsc2UgaWYocy50eXBlPT09ImZpbGUiJiZzLm5hbWUuZW5kc1dpdGgoIi5kLnRzIikpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUobik7ci50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobyxgZmlsZTovLyR7bn1gKX1jYXRjaHt9fX19Y2F0Y2h7fX1hc3luYyB0cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuITE7bGV0IGE9YC9ub2RlX21vZHVsZXMvJHtlLnN0YXJ0c1dpdGgoIkAiKT9gQHR5cGVzLyR7ZS5zbGljZSgxKS5yZXBsYWNlKCIvIiwiX18iKX1gOmBAdHlwZXMvJHtlfWB9YDt0cnl7bGV0IHM9YCR7YX0vaW5kZXguZC50c2A7cmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHMpPyhhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGEpLCEwKTohMX1jYXRjaHtyZXR1cm4hMX19YXN5bmMgcHJvY2Vzc0NvbnRlbnRDaGFuZ2UoZSl7bGV0IHI9dGhpcy5wYXJzZUltcG9ydHMoZSk7Zm9yKGxldCBhIG9mIHIpdGhpcy5sb2FkZWRMaWJzLmhhcyhhKXx8YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKGEpfWFzeW5jIHNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5ub3RGb3VuZFBhY2thZ2VzLmNsZWFyKCk7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL25vZGVfbW9kdWxlcyIpKXJldHVybjtsZXQgZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoIi9ub2RlX21vZHVsZXMiKTtmb3IobGV0IHIgb2YgZSlpZihyLnR5cGU9PT0iZGlyZWN0b3J5IilpZihyLm5hbWUuc3RhcnRzV2l0aCgiQCIpKXRyeXtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke3IubmFtZX1gLHM9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGEpO2ZvcihsZXQgbiBvZiBzKWlmKG4udHlwZT09PSJkaXJlY3RvcnkiKXtsZXQgbz1gJHtyLm5hbWV9LyR7bi5uYW1lfWA7YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKG8pfX1jYXRjaHt9ZWxzZSByLm5hbWUuc3RhcnRzV2l0aCgiLiIpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2Uoci5uYW1lKX1jYXRjaChlKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBzY2FuIG5vZGVfbW9kdWxlczoiLGUpfX19YWRkRmlsZU1vZGVsKGUscil7aWYoIXRoaXMubW9uYWNvSW5zdGFuY2UpcmV0dXJuO3RoaXMuZmlsZUNhY2hlLnNldChlLHIpO2xldCBhPXRoaXMubW9uYWNvSW5zdGFuY2UuVXJpLnBhcnNlKGBmaWxlOi8vJHtlfWApLHM9dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuZ2V0TW9kZWwoYSk7aWYocylzLmdldFZhbHVlKCkhPT1yJiZzLnNldFZhbHVlKHIpO2Vsc2V7bGV0IG49dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGUpO3RoaXMubW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZU1vZGVsKHIsbixhKX10aGlzLmFkZEZpbGVBc0V4dHJhTGliKGUscil9YWRkRmlsZUFzRXh0cmFMaWIoZSxyKXtsZXQgYT10aGlzLnRzQXBpO2lmKCFhKXJldHVybjtsZXQgcz10aGlzLmFkZGVkRXh0cmFMaWJzLmdldChlKTtzJiZzLmRpc3Bvc2UoKTtsZXQgbj1gZmlsZTovLyR7ZX1gLG89YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIocixuKTtpZih0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChlLG8pLGUuZW5kc1dpdGgoIi50cyIpJiYhZS5lbmRzV2l0aCgiLmQudHMiKSl7bGV0IGw9ZS5yZXBsYWNlKC9cLnRzJC8sIi5qcyIpLGM9YGZpbGU6Ly8ke2x9YCxkPWEudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHIsYyk7dGhpcy5hZGRlZEV4dHJhTGlicy5zZXQobCxkKSx0aGlzLmZpbGVDYWNoZS5zZXQobCxyKX1lbHNlIGlmKGUuZW5kc1dpdGgoIi50c3giKSl7bGV0IGw9ZS5yZXBsYWNlKC9cLnRzeCQvLCIuanN4IiksYz1gZmlsZTovLyR7bH1gLGQ9YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIocixjKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChsLGQpLHRoaXMuZmlsZUNhY2hlLnNldChsLHIpfX1nZXRGaWxlQ29udGVudChlKXtyZXR1cm4gdGhpcy5maWxlQ2FjaGUuZ2V0KGUpfWdldExhbmd1YWdlRnJvbVBhdGgoZSl7c3dpdGNoKGUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2RlZmF1bHQ6cmV0dXJuInBsYWludGV4dCJ9fX19KTt2YXIgbWcsZ2wscGFhLF85dD11KCgpPT57dmUoKTtNcigpO0E2dCgpO2x0KCk7ZzkoKTttZz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZ2w9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHBhYT0oKCk9PntsZXQgdD1bdWUoImRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpTdHJpbmd9KV0sTj1bUCh7dHlwZTpTdHJpbmd9KV0sbWcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im9yaWdpbmFsQ29udGVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm9yaWdpbmFsQ29udGVudCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLm9yaWdpbmFsQ29udGVudD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LG8sbCksbWcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im1vZGlmaWVkQ29udGVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1vZGlmaWVkQ29udGVudCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLm1vZGlmaWVkQ29udGVudD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGQsZiksbWcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJvcmlnaW5hbExhYmVsImluIEUsImhhcyIpLGdldDppKEU9PkUub3JpZ2luYWxMYWJlbCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLm9yaWdpbmFsTGFiZWw9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxoLG0pLG1nKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kaWZpZWRMYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibW9kaWZpZWRMYWJlbCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1vZGlmaWVkTGFiZWwsImdldCIpLHNldDppKChFLEIpPT57RS5tb2RpZmllZExhYmVsPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sYixnKSxtZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJsYW5ndWFnZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UubGFuZ3VhZ2U9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxrLE0pLG1nKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImZpbGVQYXRoImluIEUsImhhcyIpLGdldDppKEU9PkUuZmlsZVBhdGgsImdldCIpLHNldDppKChFLEIpPT57RS5maWxlUGF0aD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LF8sUyksbWcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxyKSxPPWE9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yCiAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIik7Cn1gfQogICAgICAubW9kaWZpZWRDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyBXb3JsZCEiKTsKICByZXR1cm4gdHJ1ZTsKfWB9CiAgICAgIC5sYW5ndWFnZT0keyJ0eXBlc2NyaXB0In0KICAgICAgLmZpbGVQYXRoPSR7Ii9kZW1vL2V4YW1wbGUudHMifQogICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07ZGlmZkVkaXRvckRlZmVycmVkPWNyLnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPWdsKHRoaXMsbywiIik7Z2V0IG9yaWdpbmFsQ29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBvcmlnaW5hbENvbnRlbnQoTCl7dGhpcy4jZT1MfSN0PShnbCh0aGlzLGwpLGdsKHRoaXMsZCwiIikpO2dldCBtb2RpZmllZENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbW9kaWZpZWRDb250ZW50KEwpe3RoaXMuI3Q9TH0jcj0oZ2wodGhpcyxmKSxnbCh0aGlzLGgsIkRpc2sgVmVyc2lvbiIpKTtnZXQgb3JpZ2luYWxMYWJlbCgpe3JldHVybiB0aGlzLiNyfXNldCBvcmlnaW5hbExhYmVsKEwpe3RoaXMuI3I9TH0jYT0oZ2wodGhpcyxtKSxnbCh0aGlzLGIsIkxvY2FsIFZlcnNpb24iKSk7Z2V0IG1vZGlmaWVkTGFiZWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbW9kaWZpZWRMYWJlbChMKXt0aGlzLiNhPUx9I2k9KGdsKHRoaXMsZyksZ2wodGhpcyxrLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNpfXNldCBsYW5ndWFnZShMKXt0aGlzLiNpPUx9I3M9KGdsKHRoaXMsTSksZ2wodGhpcyxfLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGZpbGVQYXRoKEwpe3RoaXMuI3M9TH1kaWZmRWRpdG9yPShnbCh0aGlzLFMpLG51bGwpO21vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGw7b3JpZ2luYWxNb2RlbD1udWxsO21vZGlmaWVkTW9kZWw9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdm8uc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5kaWZmLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5kaWZmLXRvb2xiYXIgewogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRpZmYtaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtZmlsZW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtbGFiZWxzIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZGlmZi1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBMPXRoaXMuZmlsZVBhdGguc3BsaXQoIi8iKS5wb3AoKXx8ImZpbGUiO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWZmLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtdG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWluZm8iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlmZi1maWxlbmFtZSI+JHtMfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpZmYtbGFiZWxzIj4ke3RoaXMub3JpZ2luYWxMYWJlbH0g4oaUICR7dGhpcy5tb2RpZmllZExhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1hY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWJ1dHRvbnMiPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZ29Ub1ByZXZpb3VzRGlmZn0KICAgICAgICAgICAgICA+UHJldmlvdXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZ29Ub05leHREaWZmfQogICAgICAgICAgICAgID5OZXh0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbi1idXR0b25zIj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9ImhpZ2hsaWdodGVkIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHRMb2NhbH0KICAgICAgICAgICAgICA+VXNlIExvY2FsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFjY2VwdERpc2t9CiAgICAgICAgICAgICAgPlVzZSBEaXNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmNsb3NlfQogICAgICAgICAgICAgID5DbG9zZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1jb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKG5ldyBNYXApLGF3YWl0IHRoaXMuaW5pdERpZmZFZGl0b3IoKX1hc3luYyBpbml0RGlmZkVkaXRvcigpe2xldCBMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRpZmYtY29udGFpbmVyIik7aWYoIUwpcmV0dXJuO2xldCBFPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21vbmFjby1lZGl0b3JAJHtScGV9YCxCPXdpbmRvdy5tb25hY287Qnx8KGF3YWl0IG5ldyBQcm9taXNlKFo9PntsZXQgZGU9c2V0SW50ZXJ2YWwoKCk9Pnt3aW5kb3cubW9uYWNvJiYoY2xlYXJJbnRlcnZhbChkZSksWigpKX0sMTAwKX0pLEI9d2luZG93Lm1vbmFjbyk7bGV0IEM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsQT1DLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4/InZzIjoidnMtZGFyayIsJD1EYXRlLm5vdygpLEY9Qi5VcmkucGFyc2UoYGRpZmY6Ly9vcmlnaW5hbC8keyR9JHt0aGlzLmZpbGVQYXRofWApLFk9Qi5VcmkucGFyc2UoYGRpZmY6Ly9tb2RpZmllZC8keyR9JHt0aGlzLmZpbGVQYXRofWApO3RoaXMub3JpZ2luYWxNb2RlbD1CLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm9yaWdpbmFsQ29udGVudCx0aGlzLmxhbmd1YWdlLEYpLHRoaXMubW9kaWZpZWRNb2RlbD1CLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm1vZGlmaWVkQ29udGVudCx0aGlzLmxhbmd1YWdlLFkpLHRoaXMuZGlmZkVkaXRvcj1CLmVkaXRvci5jcmVhdGVEaWZmRWRpdG9yKEwse2F1dG9tYXRpY0xheW91dDohMCxyZWFkT25seTohMSxvcmlnaW5hbEVkaXRhYmxlOiExLHJlbmRlclNpZGVCeVNpZGU6ITAsaWdub3JlVHJpbVdoaXRlc3BhY2U6ITEsZm9udFNpemU6MTQsbWluaW1hcDp7ZW5hYmxlZDohMX19KSxCLmVkaXRvci5zZXRUaGVtZShBKSx0aGlzLmRpZmZFZGl0b3Iuc2V0TW9kZWwoe29yaWdpbmFsOnRoaXMub3JpZ2luYWxNb2RlbCxtb2RpZmllZDp0aGlzLm1vZGlmaWVkTW9kZWx9KSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPUMudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoWj0+e2xldCBkZT1aPyJ2cyI6InZzLWRhcmsiO0IuZWRpdG9yLnNldFRoZW1lKGRlKX0pO2xldCBHPSJtb25hY28tZGlmZi1lZGl0b3ItY3NzIjtpZighdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZChHKSl7bGV0IGRlPWF3YWl0KGF3YWl0IGZldGNoKGAke0V9L21pbi92cy9lZGl0b3IvZWRpdG9yLm1haW4uY3NzYCkpLnRleHQoKSxEPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7RC5pZD1HLEQudGV4dENvbnRlbnQ9ZGUsdGhpcy5zaGFkb3dSb290Py5hcHBlbmQoRCl9c2V0VGltZW91dCgoKT0+e3RyeXt0aGlzLmRpZmZFZGl0b3I/LnJldmVhbEZpcnN0RGlmZigpfWNhdGNoe319LDEwMCksdGhpcy5kaWZmRWRpdG9yRGVmZXJyZWQucmVzb2x2ZSh0aGlzLmRpZmZFZGl0b3IpfWdvVG9OZXh0RGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJuZXh0Iil9Y2F0Y2h7fX1nb1RvUHJldmlvdXNEaWZmKCl7dHJ5e3RoaXMuZGlmZkVkaXRvcj8uZ29Ub0RpZmYoInByZXZpb3VzIil9Y2F0Y2h7fX1hY2NlcHRMb2NhbCgpe2xldCBMPXRoaXMuZGlmZkVkaXRvcj8uZ2V0TW9kaWZpZWRFZGl0b3IoKS5nZXRWYWx1ZSgpfHx0aGlzLm1vZGlmaWVkQ29udGVudDt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLXJlc29sdmVkIix7ZGV0YWlsOnthY3Rpb246InVzZS1sb2NhbCIsY29udGVudDpMfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFjY2VwdERpc2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLXJlc29sdmVkIix7ZGV0YWlsOnthY3Rpb246InVzZS1kaXNrIixjb250ZW50OnRoaXMub3JpZ2luYWxDb250ZW50fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNsb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy5vcmlnaW5hbE1vZGVsJiYodGhpcy5vcmlnaW5hbE1vZGVsLmRpc3Bvc2UoKSx0aGlzLm9yaWdpbmFsTW9kZWw9bnVsbCksdGhpcy5tb2RpZmllZE1vZGVsJiYodGhpcy5tb2RpZmllZE1vZGVsLmRpc3Bvc2UoKSx0aGlzLm1vZGlmaWVkTW9kZWw9bnVsbCksdGhpcy5kaWZmRWRpdG9yJiYodGhpcy5kaWZmRWRpdG9yLmRpc3Bvc2UoKSx0aGlzLmRpZmZFZGl0b3I9bnVsbCl9c3RhdGlje2dsKGEscil9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBMaSxkcixmYWEsaGFhPXUoKCk9Pnt2ZSgpO01yKCk7bHQoKTtaNmUoKTt2OSgpO1g2ZSgpO1g2ZSgpO0tyZSgpO0tyZSgpO005dCgpO0M5dCgpO0tyKCk7djkoKTt6OXQoKTtzcygpO3dhKCk7JDZlKCk7Xzl0KCk7TGk9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGRyPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxmYWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdvcmtzcGFjZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXSxhZSxYPVtdLEo9W10seGUsSz1bXSxWPVtdLGxlLG5lPVtdLGVlPVtdLHplLEhlPVtdLEdlPVtdLG90LERlPVtdLF9lPVtdLG9lLHNlPVtdLGNlPVtdLFRlLHFlPVtdLG50PVtdLHZ0LExlPVtdLHdlPVtdO3ZhciBPZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBnZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHthdHRyaWJ1dGU6ITF9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOk51bWJlcn0pXSxOPVtQKHt0eXBlOk51bWJlcn0pXSxPPVtpZSgpXSxCPVtpZSgpXSxBPVtpZSgpXSxZPVtpZSgpXSxkZT1baWUoKV0sZmU9W2llKCldLHBlPVtpZSgpXSxIPVtpZSgpXSxhZT1baWUoKV0seGU9W2llKCldLGxlPVtpZSgpXSx6ZT1baWUoKV0sb3Q9W2llKCldLG9lPVtpZSgpXSxUZT1baWUoKV0sdnQ9W2llKCldLExpKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoYmUsSWUpPT57YmUuZXhlY3V0aW9uRW52aXJvbm1lbnQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LG8sbCksTGkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsaXphdGlvblByb21pc2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpbml0aWFsaXphdGlvblByb21pc2UiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pbml0aWFsaXphdGlvblByb21pc2UsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5pbml0aWFsaXphdGlvblByb21pc2U9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LGQsZiksTGkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJzaG93RmlsZVRyZWUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5zaG93RmlsZVRyZWUsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5zaG93RmlsZVRyZWU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LGgsbSksTGkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJzaG93VGVybWluYWwiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5zaG93VGVybWluYWwsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5zaG93VGVybWluYWw9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LGIsZyksTGkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlVHJlZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iZmlsZVRyZWVXaWR0aCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmZpbGVUcmVlV2lkdGgsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5maWxlVHJlZVdpZHRoPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxrLE0pLExpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ0ZXJtaW5hbEhlaWdodCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnRlcm1pbmFsSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoYmUsSWUpPT57YmUudGVybWluYWxIZWlnaHQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LF8sUyksTGkodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuRmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJvcGVuRmlsZXMiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5vcGVuRmlsZXMsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5vcGVuRmlsZXM9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LEwsRSksTGkodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+ImFjdGl2ZUZpbGVQYXRoImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuYWN0aXZlRmlsZVBhdGgsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5hY3RpdmVGaWxlUGF0aD1JZX0sInNldCIpfSxtZXRhZGF0YTpnZX0sQyx6KSxMaSh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVGVybWluYWxDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpc1Rlcm1pbmFsQ29sbGFwc2VkImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuaXNUZXJtaW5hbENvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmlzVGVybWluYWxDb2xsYXBzZWQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LCQsRiksTGkodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0ZpbGVUcmVlQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iaXNGaWxlVHJlZUNvbGxhcHNlZCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmlzRmlsZVRyZWVDb2xsYXBzZWQsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5pc0ZpbGVUcmVlQ29sbGFwc2VkPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxHLFopLExpKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSW5pdGlhbGl6aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iaXNJbml0aWFsaXppbmciaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pc0luaXRpYWxpemluZywiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmlzSW5pdGlhbGl6aW5nPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxELFEpLExpKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJvdHRvbVBhbmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5hY3RpdmVCb3R0b21QYW5lbCwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmFjdGl2ZUJvdHRvbVBhbmVsPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxULFcpLExpKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iZGlhZ25vc3RpY01hcmtlcnMiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5kaWFnbm9zdGljTWFya2VycywiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmRpYWdub3N0aWNNYXJrZXJzPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxtZSxxKSxMaSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TYXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iYXV0b1NhdmUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5hdXRvU2F2ZSwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmF1dG9TYXZlPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxVLGopLExpKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iaW5pdENvbW1hbmQiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pbml0Q29tbWFuZCwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmluaXRDb21tYW5kPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxYLEopLExpKHRoaXMsbnVsbCx4ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRPdXRwdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpbml0T3V0cHV0ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuaW5pdE91dHB1dCwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmluaXRPdXRwdXQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LEssViksTGkodGhpcyxudWxsLGxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJjdXJyZW50RmlsZVRyZWVXaWR0aCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmN1cnJlbnRGaWxlVHJlZVdpZHRoLCJnZXQiKSxzZXQ6aSgoYmUsSWUpPT57YmUuY3VycmVudEZpbGVUcmVlV2lkdGg9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LG5lLGVlKSxMaSh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJjdXJyZW50VGVybWluYWxIZWlnaHQiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5jdXJyZW50VGVybWluYWxIZWlnaHQsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5jdXJyZW50VGVybWluYWxIZWlnaHQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LEhlLEdlKSxMaSh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nRmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpc0RyYWdnaW5nRmlsZVRyZWUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pc0RyYWdnaW5nRmlsZVRyZWUsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5pc0RyYWdnaW5nRmlsZVRyZWU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LERlLF9lKSxMaSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nVGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpc0RyYWdnaW5nVGVybWluYWwiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pc0RyYWdnaW5nVGVybWluYWwsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5pc0RyYWdnaW5nVGVybWluYWw9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LHNlLGNlKSxMaSh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RGlmZlZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJzaG93RGlmZlZpZXciaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5zaG93RGlmZlZpZXcsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5zaG93RGlmZlZpZXc9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LHFlLG50KSxMaSh0aGlzLG51bGwsdnQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaWZmVmlld0NvbmZpZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+ImRpZmZWaWV3Q29uZmlnImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZGlmZlZpZXdDb25maWcsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5kaWZmVmlld0NvbmZpZz1JZX0sInNldCIpfSxtZXRhZGF0YTpnZX0sTGUsd2UpLExpKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmdlfSxudWxsLHIpLE9lPWE9ZS52YWx1ZSxnZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnZX0pfXN0YXRpYyBkZW1vPWkoKCk9PntsZXQgZ2U9bmV3IHBnLGJlPShhc3luYygpPT57YXdhaXQgZ2UuaW5pdCgpO2xldCB3dD17InBhY2thZ2UuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtuYW1lOiJkZW1vLXByb2plY3QiLHZlcnNpb246IjEuMC4wIix0eXBlOiJtb2R1bGUiLHNjcmlwdHM6e2J1aWxkOiJ0c2MiLGRldjoidHNjIC0td2F0Y2gifSxkZXBlbmRlbmNpZXM6eyJAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UiOiJeNC4yLjMifSxkZXZEZXBlbmRlbmNpZXM6eyJAdHlwZXMvbm9kZSI6Il4yMi4wLjAiLHR5cGVzY3JpcHQ6Il41LjAuMCJ9fSxudWxsLDIpfX0sIm5wbWV4dHJhLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7ZGVlc0VkaXRvcldvcmtzcGFjZTp7b25Jbml0OiJwbnBtIGluc3RhbGwifX0sbnVsbCwyKX19LCJ0c2NvbmZpZy5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe2NvbXBpbGVyT3B0aW9uczp7dGFyZ2V0OiJFUzIwMjIiLG1vZHVsZToiTm9kZU5leHQiLG1vZHVsZVJlc29sdXRpb246Ik5vZGVOZXh0IixzdHJpY3Q6ITAsb3V0RGlyOiIuL2Rpc3QiLHJvb3REaXI6Ii4vc3JjIixkZWNsYXJhdGlvbjohMH0saW5jbHVkZTpbInNyYy8qKi8qIl19LG51bGwsMil9fSxzcmM6e2RpcmVjdG9yeTp7ImluZGV4LnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIE1haW4gZW50cnkgcG9pbnQKaW1wb3J0IHsgZ3JlZXQsIGZvcm1hdE5hbWUgfSBmcm9tICcuL3V0aWxzLmpzJzsKCmNvbnN0IG5hbWUgPSBmb3JtYXROYW1lKCdXb3JsZCcpOwpjb25zb2xlLmxvZyhncmVldChuYW1lKSk7CgovLyBFeGFtcGxlIGFzeW5jIGZ1bmN0aW9uCmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7CiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCdIZWxsbyBmcm9tIGFzeW5jIScpOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCm1haW4oKTsKYH19LCJ1dGlscy50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBVdGlsaXR5IGZ1bmN0aW9ucwoKZXhwb3J0IGludGVyZmFjZSBJVXNlciB7CiAgZmlyc3ROYW1lOiBzdHJpbmc7CiAgbGFzdE5hbWU6IHN0cmluZzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIFxgSGVsbG8sIFwke25hbWV9IVxgOwp9CgpleHBvcnQgZnVuY3Rpb24gZm9ybWF0TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogIHJldHVybiBuYW1lLnRyaW0oKS50b1VwcGVyQ2FzZSgpOwp9CgpleHBvcnQgZnVuY3Rpb24gY3JlYXRlVXNlcihmaXJzdE5hbWU6IHN0cmluZywgbGFzdE5hbWU6IHN0cmluZyk6IElVc2VyIHsKICByZXR1cm4geyBmaXJzdE5hbWUsIGxhc3ROYW1lIH07Cn0KYH19LCJpbXBvcnR0ZXN0LnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFRlc3QgbnBtIHBhY2thZ2UgaW1wb3J0cwppbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJzsKCi8vIFRoaXMgc2hvdWxkIGhhdmUgSW50ZWxsaVNlbnNlIHNob3dpbmcgZGVmZXIoKSBtZXRob2QKY29uc3QgZGVmZXJyZWQgPSBzbWFydHByb21pc2UuZGVmZXI8c3RyaW5nPigpOwoKLy8gVGVzdCB1c2luZyB0aGUgZGVmZXJyZWQgcHJvbWlzZQphc3luYyBmdW5jdGlvbiB0ZXN0U21hcnRQcm9taXNlKCkgewogIHNldFRpbWVvdXQoKCkgPT4gewogICAgZGVmZXJyZWQucmVzb2x2ZSgnSGVsbG8gZnJvbSBzbWFydHByb21pc2UhJyk7CiAgfSwgMTAwKTsKCiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVmZXJyZWQucHJvbWlzZTsKICBjb25zb2xlLmxvZyhyZXN1bHQpOwp9Cgp0ZXN0U21hcnRQcm9taXNlKCk7CmB9fX19fTthd2FpdCBnZS5tb3VudCh3dCl9KSgpLEllPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0llLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IHl0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtd29ya3NwYWNlIik7cmV0dXJuIHl0LmV4ZWN1dGlvbkVudmlyb25tZW50PWdlLHl0LmluaXRpYWxpemF0aW9uUHJvbWlzZT1iZSxJZS5hcHBlbmRDaGlsZCh5dCksd2AKICAgICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgICAgJHtJZX0KICAgICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgYH0sImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPWRyKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoZ2Upe3RoaXMuI2U9Z2V9I3Q9KGRyKHRoaXMsbCksZHIodGhpcyxkLG51bGwpKTtnZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxpemF0aW9uUHJvbWlzZShnZSl7dGhpcy4jdD1nZX0jcj0oZHIodGhpcyxmKSxkcih0aGlzLGgsITApKTtnZXQgc2hvd0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dGaWxlVHJlZShnZSl7dGhpcy4jcj1nZX0jYT0oZHIodGhpcyxtKSxkcih0aGlzLGIsITApKTtnZXQgc2hvd1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUZXJtaW5hbChnZSl7dGhpcy4jYT1nZX0jaT0oZHIodGhpcyxnKSxkcih0aGlzLGssMjUwKSk7Z2V0IGZpbGVUcmVlV2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZmlsZVRyZWVXaWR0aChnZSl7dGhpcy4jaT1nZX0jcz0oZHIodGhpcyxNKSxkcih0aGlzLF8sMjAwKSk7Z2V0IHRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRlcm1pbmFsSGVpZ2h0KGdlKXt0aGlzLiNzPWdlfSNuPShkcih0aGlzLFMpLGRyKHRoaXMsTCxbXSkpO2dldCBvcGVuRmlsZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgb3BlbkZpbGVzKGdlKXt0aGlzLiNuPWdlfSNvPShkcih0aGlzLEUpLGRyKHRoaXMsQywiIikpO2dldCBhY3RpdmVGaWxlUGF0aCgpe3JldHVybiB0aGlzLiNvfXNldCBhY3RpdmVGaWxlUGF0aChnZSl7dGhpcy4jbz1nZX0jbD0oZHIodGhpcyx6KSxkcih0aGlzLCQsITEpKTtnZXQgaXNUZXJtaW5hbENvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNsfXNldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKGdlKXt0aGlzLiNsPWdlfSNjPShkcih0aGlzLEYpLGRyKHRoaXMsRywhMSkpO2dldCBpc0ZpbGVUcmVlQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoZ2Upe3RoaXMuI2M9Z2V9I2Q9KGRyKHRoaXMsWiksZHIodGhpcyxELCEwKSk7Z2V0IGlzSW5pdGlhbGl6aW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSW5pdGlhbGl6aW5nKGdlKXt0aGlzLiNkPWdlfSN1PShkcih0aGlzLFEpLGRyKHRoaXMsVCwidGVybWluYWwiKSk7Z2V0IGFjdGl2ZUJvdHRvbVBhbmVsKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGFjdGl2ZUJvdHRvbVBhbmVsKGdlKXt0aGlzLiN1PWdlfSNwPShkcih0aGlzLFcpLGRyKHRoaXMsbWUsW10pKTtnZXQgZGlhZ25vc3RpY01hcmtlcnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZGlhZ25vc3RpY01hcmtlcnMoZ2Upe3RoaXMuI3A9Z2V9ZWRpdG9yRWxlbWVudD0oZHIodGhpcyxxKSxudWxsKTtpbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITE7aW50ZWxsaVNlbnNlTWFuYWdlcj1udWxsO2ludGVsbGlTZW5zZUluaXRpYWxpemVkPSExO25vZGVNb2R1bGVzV2F0Y2hlcj1udWxsO25vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGw7aW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PW51bGw7b3BlbkZpbGVXYXRjaGVycz1uZXcgTWFwO2ZpbGVDaGFuZ2VEZWJvdW5jZT1uZXcgTWFwO2FjdGlvbmJhckVsZW1lbnQ9bnVsbDsjZj1kcih0aGlzLFUsITEpO2dldCBhdXRvU2F2ZSgpe3JldHVybiB0aGlzLiNmfXNldCBhdXRvU2F2ZShnZSl7dGhpcy4jZj1nZX1hdXRvU2F2ZUludGVydmFsPShkcih0aGlzLGopLG51bGwpOyNoPWRyKHRoaXMsWCwiIik7Z2V0IGluaXRDb21tYW5kKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGluaXRDb21tYW5kKGdlKXt0aGlzLiNoPWdlfSNtPShkcih0aGlzLEopLGRyKHRoaXMsSyxbXSkpO2dldCBpbml0T3V0cHV0KCl7cmV0dXJuIHRoaXMuI219c2V0IGluaXRPdXRwdXQoZ2Upe3RoaXMuI209Z2V9I2c9KGRyKHRoaXMsViksZHIodGhpcyxuZSwyNTApKTtnZXQgY3VycmVudEZpbGVUcmVlV2lkdGgoKXtyZXR1cm4gdGhpcy4jZ31zZXQgY3VycmVudEZpbGVUcmVlV2lkdGgoZ2Upe3RoaXMuI2c9Z2V9I2I9KGRyKHRoaXMsZWUpLGRyKHRoaXMsSGUsMjAwKSk7Z2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodCgpe3JldHVybiB0aGlzLiNifXNldCBjdXJyZW50VGVybWluYWxIZWlnaHQoZ2Upe3RoaXMuI2I9Z2V9I3g9KGRyKHRoaXMsR2UpLGRyKHRoaXMsRGUsITEpKTtnZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI3h9c2V0IGlzRHJhZ2dpbmdGaWxlVHJlZShnZSl7dGhpcy4jeD1nZX0jdj0oZHIodGhpcyxfZSksZHIodGhpcyxzZSwhMSkpO2dldCBpc0RyYWdnaW5nVGVybWluYWwoKXtyZXR1cm4gdGhpcy4jdn1zZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKGdlKXt0aGlzLiN2PWdlfSN5PShkcih0aGlzLGNlKSxkcih0aGlzLHFlLCExKSk7Z2V0IHNob3dEaWZmVmlldygpe3JldHVybiB0aGlzLiN5fXNldCBzaG93RGlmZlZpZXcoZ2Upe3RoaXMuI3k9Z2V9I3c9KGRyKHRoaXMsbnQpLGRyKHRoaXMsTGUsbnVsbCkpO2dldCBkaWZmVmlld0NvbmZpZygpe3JldHVybiB0aGlzLiN3fXNldCBkaWZmVmlld0NvbmZpZyhnZSl7dGhpcy4jdz1nZX1rZXlkb3duSGFuZGxlcj0oZHIodGhpcyx3ZSksZ2U9PnsoZ2UubWV0YUtleXx8Z2UuY3RybEtleSkmJmdlLmtleT09PSJzIiYmIWdlLnNoaWZ0S2V5JiYoZ2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBY3RpdmVGaWxlKCkpLChnZS5tZXRhS2V5fHxnZS5jdHJsS2V5KSYmZ2Uuc2hpZnRLZXkmJmdlLmtleS50b0xvd2VyQ2FzZSgpPT09InMiJiYoZ2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBbGxGaWxlcygpKX0pO2hhbmRsZUZpbGVUcmVlTW91c2VEb3duPWkoZ2U9PntnZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApfSwiaGFuZGxlRmlsZVRyZWVNb3VzZURvd24iKTtoYW5kbGVGaWxlVHJlZU1vdXNlTW92ZT1pKGdlPT57aWYoIXRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlKXJldHVybjtsZXQgYmU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJZT1nZS5jbGllbnRYLWJlLmxlZnQseXQ9MTUwLHd0PWJlLndpZHRoKi41LFl0PU1hdGgubWF4KHl0LE1hdGgubWluKHd0LEllKSk7dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aD1ZdH0sImhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlIik7aGFuZGxlRmlsZVRyZWVNb3VzZVVwPWkoKCk9Pnt0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX0sImhhbmRsZUZpbGVUcmVlTW91c2VVcCIpO2hhbmRsZVRlcm1pbmFsTW91c2VEb3duPWkoZ2U9PntnZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApfSwiaGFuZGxlVGVybWluYWxNb3VzZURvd24iKTtoYW5kbGVUZXJtaW5hbE1vdXNlTW92ZT1pKGdlPT57aWYoIXRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsKXJldHVybjtsZXQgYmU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJZT1nZS5jbGllbnRZLWJlLnRvcCx5dD1iZS5oZWlnaHQtSWUsd3Q9MTAwLFl0PWJlLmhlaWdodCouNyx6YT1NYXRoLm1heCh3dCxNYXRoLm1pbihZdCx5dCkpO3RoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXphfSwiaGFuZGxlVGVybWluYWxNb3VzZU1vdmUiKTtoYW5kbGVUZXJtaW5hbE1vdXNlVXA9aSgoKT0+e3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfSwiaGFuZGxlVGVybWluYWxNb3VzZVVwIik7c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utb3V0ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZWRpdG9yLWFyZWEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZWRpdG9yLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucGFuZWwtYWN0aW9uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgMTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFiLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAudGFiLWNsb3NlIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1tb2RpZmllZCB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAzMnB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbXMtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA0NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQwIDcwJSA1MCUpIiwiaHNsKDQwIDcwJSA0NSUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlLm5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1saXN0IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0tZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLW1lc3NhZ2UgewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWxvY2F0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1lbXB0eSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTUlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyBkZWVzLWljb24gewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIFJlc2l6ZSBoYW5kbGVzICovCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3ZlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5maWxldHJlZS1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvci1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe2xldCBnZT1bIndvcmtzcGFjZS1jb250YWluZXIiLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlfHx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO3JldHVybiB0aGlzLmlzSW5pdGlhbGl6aW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5pdGlhbGl6aW5nIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxvYWRlcjIifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+SW5pdGlhbGl6aW5nIHdvcmtzcGFjZS4uLjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgICAgICAgIC5jb21tYW5kPSR7dGhpcy5pbml0Q29tbWFuZHx8IiJ9CiAgICAgICAgICAgIC5saW5lcz0ke3RoaXMuaW5pdE91dHB1dH0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLW91dGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSIke2dlfSI+CiAgICAgICAgICA8IS0tIEZpbGV0cmVlIHBhbmVsIChmdWxsIGhlaWdodCkgLS0+CiAgICAgICAgICAke3RoaXMuc2hvd0ZpbGVUcmVlP3dgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZmlsZXRyZWUtcGFuZWwgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/MDp0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRofXB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlCiAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgLnNlbGVjdGVkUGF0aD0ke3RoaXMuYWN0aXZlRmlsZVBhdGh9CiAgICAgICAgICAgICAgICBAZmlsZS1zZWxlY3Q9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8iIjp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLXZlcnRpY2FsICR7dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlRG93bn0KICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDwhLS0gRWRpdG9yICsgVGVybWluYWwgYXJlYSAtLT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1hcmVhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXBhbmVsIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5vcGVuRmlsZXMubWFwKGJlPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWIgJHtiZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmF0ZUZpbGUoYmUucGF0aCl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtiZS5tb2RpZmllZD93YDxzcGFuIGNsYXNzPSJ0YWItbW9kaWZpZWQiPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1uYW1lIj4ke2JlLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7SWU9PnRoaXMuY2xvc2VGaWxlKEllLGJlLnBhdGgpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItbWVudS1idXR0b24iIEBjbGljaz0ke3RoaXMuc2hvd0VkaXRvck1lbnV9IHRpdGxlPSJFZGl0b3Igb3B0aW9ucyI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOm1vcmVWZXJ0aWNhbCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2hvd0RpZmZWaWV3JiZ0aGlzLmRpZmZWaWV3Q29uZmlnP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuZGlmZlZpZXdDb25maWcuZmlsZVBhdGh9CiAgICAgICAgICAgICAgICAgICAgLm9yaWdpbmFsQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcub3JpZ2luYWxDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm1vZGlmaWVkQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmxhbmd1YWdlfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLXJlc29sdmVkPSR7dGhpcy5oYW5kbGVEaWZmUmVzb2x2ZWR9CiAgICAgICAgICAgICAgICAgICAgQGRpZmYtY2xvc2VkPSR7KCk9Pnt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9fQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICAgICAgICAgICAgICAgIGA6dGhpcy5vcGVuRmlsZXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZUNvZGUifSBpY29uU2l6ZT0iNDgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBhIGZpbGUgdG8gZWRpdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5jb250ZW50PSR7dGhpcy5nZXRBY3RpdmVGaWxlQ29udGVudCgpfQogICAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0aGlzLmFjdGl2ZUZpbGVQYXRoKX0KICAgICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBIb3Jpem9udGFsIHJlc2l6ZSBoYW5kbGUgZm9yIHRlcm1pbmFsIC0tPgogICAgICAgICAgICAke3RoaXMuc2hvd1Rlcm1pbmFsJiYhdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkP3dgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCAke3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlVGVybWluYWxNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgPCEtLSBUZXJtaW5hbCBwYW5lbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbD93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC1wYW5lbCAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgICAgICBzdHlsZT0iaGVpZ2h0OiAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8zMjp0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodH1weCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC10YWJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InRlcm1pbmFsIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBUZXJtaW5hbAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYW5lbC10YWIgJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmVCb3R0b21QYW5lbD0icHJvYmxlbXMifQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNpcmNsZUFsZXJ0In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIFByb2JsZW1zCiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhbmVsLXRhYi1iYWRnZSAke3RoaXMuZ2V0RXJyb3JDb3VudCgpPT09MD8id2FybmluZyI6IiJ9Ij4ke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RofTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYWN0aW9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVRlcm1pbmFsfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgLmljb249JHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uVXAiOiJsdWNpZGU6Y2hldnJvbkRvd24ifQogICAgICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InRlcm1pbmFsIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwKICAgICAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgICAgIC5zZXR1cENvbW1hbmQ9JHsiIn0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0icHJvYmxlbXMiPyJibG9jayI6Im5vbmUifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJQcm9ibGVtc1BhbmVsKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEJvdHRvbSBCYXIgKGZ1bGwgd2lkdGgpIC0tPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIKICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICBAcnVuLXByb2Nlc3M9JHt0aGlzLmhhbmRsZVJ1blByb2Nlc3N9CiAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bkhhbmRsZXIpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuYXV0b1NhdmVJbnRlcnZhbCksdGhpcy5hdXRvU2F2ZUludGVydmFsPW51bGwpLHRoaXMuc3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpLHRoaXMuc3RvcEFsbEZpbGVXYXRjaGVycygpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCl9YXN5bmMgdXBkYXRlZChnZSl7Z2UuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKSx0aGlzLmFjdGlvbmJhckVsZW1lbnR8fCh0aGlzLmFjdGlvbmJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdG9yLXBhbmVsIGRlZXMtYWN0aW9uYmFyIikpfWFzeW5jIGluaXRpYWxpemVXb3Jrc3BhY2UoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQpe3RoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSEwLHRoaXMuaXNJbml0aWFsaXppbmc9ITA7dHJ5e3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpLGF3YWl0IHRoaXMuZXhlY3V0ZU9uSW5pdENvbW1hbmQoKX1jYXRjaChnZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgd29ya3NwYWNlOiIsZ2UpLHRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSExfWZpbmFsbHl7dGhpcy5pc0luaXRpYWxpemluZz0hMX19fWFzeW5jIGV4ZWN1dGVPbkluaXRDb21tYW5kKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ucG1leHRyYS5qc29uIikpe2xldCBnZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvbnBtZXh0cmEuanNvbiIpLEllPUpTT04ucGFyc2UoZ2UpPy5kZWVzRWRpdG9yV29ya3NwYWNlPy5vbkluaXQ7aWYoSWUmJnR5cGVvZiBJZT09InN0cmluZyIpe2NvbnNvbGUubG9nKCJFeGVjdXRpbmcgb25Jbml0IGNvbW1hbmQ6IixJZSksdGhpcy5pbml0Q29tbWFuZD1JZSx0aGlzLmluaXRPdXRwdXQ9W107bGV0W3l0LC4uLnd0XT1JZS5zcGxpdCgiICIpLFl0PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oeXQsd3QpO1l0Lm91dHB1dC5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTppKFBhPT57bGV0IFlpPVBhLnNwbGl0KGAKYCk7Zm9yKGxldCBFZSBvZiBZaSlFZSYmKHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LEVlXSl9LCJ3cml0ZSIpfSkpO2xldCB6YT1hd2FpdCBZdC5leGl0O2NvbnNvbGUubG9nKCJvbkluaXQgY29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6Iix6YSksdGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsIiIsYENvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiAke3phfWBdfX19Y2F0Y2goZ2Upe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGV4ZWN1dGUgb25Jbml0IGNvbW1hbmQ6IixnZSl9fWFzeW5jIGluaXRpYWxpemVJbnRlbGxpU2Vuc2UoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZClyZXR1cm47bGV0IGdlPXdpbmRvdy5tb25hY287aWYoZ2V8fChhd2FpdCBuZXcgUHJvbWlzZShiZT0+c2V0VGltZW91dChiZSwxMDApKSxnZT13aW5kb3cubW9uYWNvKSwhZ2Upe2NvbnNvbGUud2FybigiTW9uYWNvIG5vdCB5ZXQgbG9hZGVkLCBJbnRlbGxpU2Vuc2Ugd2lsbCBiZSBpbml0aWFsaXplZCBsYXRlciIpO3JldHVybn10aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkPSEwLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcj1uZXcgUXJlLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KGdlLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuc2V0dXBNYXJrZXJMaXN0ZW5lcigpLHRoaXMuc3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKSxhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX1zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyKSl0cnl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaCgiL25vZGVfbW9kdWxlcyIsKGdlLGJlKT0+e3RoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9LDJlMyl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChnZSl7Y29uc29sZS53YXJuKCJDb3VsZCBub3Qgd2F0Y2ggbm9kZV9tb2R1bGVzOiIsZ2UpfX1zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXImJih0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlci5zdG9wKCksdGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9bnVsbCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0V2F0Y2hpbmdGaWxlKGdlKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKGdlKSkpdHJ5e2xldCBiZT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKGdlLChJZSx5dCk9PntsZXQgd3Q9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGdlKTt3dCYmY2xlYXJUaW1lb3V0KHd0KTtsZXQgWXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGdlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoZ2UpfSwzMDApO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChnZSxZdCl9KTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuc2V0KGdlLGJlKX1jYXRjaChiZSl7Y29uc29sZS53YXJuKGBDb3VsZCBub3Qgd2F0Y2ggZmlsZSAke2dlfTpgLGJlKX19c3RvcFdhdGNoaW5nRmlsZShnZSl7bGV0IGJlPXRoaXMub3BlbkZpbGVXYXRjaGVycy5nZXQoZ2UpO2JlJiYoYmUuc3RvcCgpLHRoaXMub3BlbkZpbGVXYXRjaGVycy5kZWxldGUoZ2UpKTtsZXQgSWU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGdlKTtJZSYmKGNsZWFyVGltZW91dChJZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGdlKSl9c3RvcEFsbEZpbGVXYXRjaGVycygpe2ZvcihsZXQgZ2Ugb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKWdlLnN0b3AoKTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuY2xlYXIoKTtmb3IobGV0IGdlIG9mIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLnZhbHVlcygpKWNsZWFyVGltZW91dChnZSk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKX1hc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoZ2Upe2xldCBiZT10aGlzLm9wZW5GaWxlcy5maW5kKEllPT5JZS5wYXRoPT09Z2UpO2lmKCEoIWJlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2xldCBJZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGdlKTtpZihJZT09PWJlLmNvbnRlbnQpcmV0dXJuO2lmKGJlLm1vZGlmaWVkKXtsZXQgeXQ9YXdhaXQgdGhpcy5hY3Rpb25iYXJFbGVtZW50Py5zaG93KHttZXNzYWdlOmAiJHtiZS5uYW1lfSIgY2hhbmdlZCBvbiBkaXNrLiBXaGF0IGRvIHlvdSB3YW50IHRvIGRvP2AsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpnaXRNZXJnZSIsYWN0aW9uczpbe2lkOiJsb2FkLWRpc2siLGxhYmVsOiJMb2FkIGZyb20gRGlzayIscHJpbWFyeTohMH0se2lkOiJzYXZlLWxvY2FsIixsYWJlbDoiU2F2ZSBMb2NhbCB0byBEaXNrIn0se2lkOiJjb21wYXJlIixsYWJlbDoiQ29tcGFyZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxNWUzLGRlZmF1bHRBY3Rpb25JZDoibG9hZC1kaXNrIn0sZGlzbWlzc2libGU6ITB9KTt5dD8uYWN0aW9uSWQ9PT0ibG9hZC1kaXNrIj9hd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGdlLEllLCExKTp5dD8uYWN0aW9uSWQ9PT0ic2F2ZS1sb2NhbCI/KGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGdlLGJlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcCh3dD0+d3QucGF0aD09PWdlP3suLi53dCxtb2RpZmllZDohMX06d3QpKTp5dD8uYWN0aW9uSWQ9PT0iY29tcGFyZSImJnRoaXMub3BlbkRpZmZWaWV3KGdlLGJlLmNvbnRlbnQsSWUpfWVsc2UgYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChnZSxJZSwhMCl9Y2F0Y2goSWUpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGhhbmRsZSBleHRlcm5hbCBjaGFuZ2UgZm9yICR7Z2V9OmAsSWUpfX1hc3luYyB1cGRhdGVGaWxlQ29udGVudChnZSxiZSxJZSl7aWYodGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKHl0PT55dC5wYXRoPT09Z2U/ey4uLnl0LGNvbnRlbnQ6YmUsbW9kaWZpZWQ6ITF9Onl0KSxnZT09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCB5dD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO3l0JiZhd2FpdCB5dC5zZXRDb250ZW50RXh0ZXJuYWwoYmUsSWUpfX1vcGVuRGlmZlZpZXcoZ2UsYmUsSWUpe3RoaXMuZGlmZlZpZXdDb25maWc9e2ZpbGVQYXRoOmdlLG9yaWdpbmFsQ29udGVudDpJZSxtb2RpZmllZENvbnRlbnQ6YmUsbGFuZ3VhZ2U6dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGdlKX0sdGhpcy5zaG93RGlmZlZpZXc9ITB9YXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKGdlKXtsZXR7YWN0aW9uOmJlLGNvbnRlbnQ6SWV9PWdlLmRldGFpbCx5dD10aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtpZigheXR8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGw7cmV0dXJufWlmKGJlPT09InVzZS1sb2NhbCIpe2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKHl0LEllKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAod3Q9Pnd0LnBhdGg9PT15dD97Li4ud3QsY29udGVudDpJZSxtb2RpZmllZDohMX06d3QpLHl0PT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IHd0PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7d3QmJmF3YWl0IHd0LnNldENvbnRlbnRFeHRlcm5hbChJZSwhMSl9fWVsc2UgYmU9PT0idXNlLWRpc2siJiZhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KHl0LEllLCExKTt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9YXN5bmMgaGFuZGxlRmlsZVNlbGVjdChnZSl7bGV0e3BhdGg6YmUsbmFtZTpJZX09Z2UuZGV0YWlsO2F3YWl0IHRoaXMub3BlbkZpbGUoYmUsSWUpfWFzeW5jIG9wZW5GaWxlKGdlLGJlKXtpZih0aGlzLm9wZW5GaWxlcy5maW5kKHl0PT55dC5wYXRoPT09Z2UpKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWdlO3JldHVybn1pZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgeXQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShnZSk7aWYodGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLHtwYXRoOmdlLG5hbWU6YmUsY29udGVudDp5dCxtb2RpZmllZDohMX1dLHRoaXMuYWN0aXZlRmlsZVBhdGg9Z2UsdGhpcy5zdGFydFdhdGNoaW5nRmlsZShnZSksIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UoWXQ9PnNldFRpbWVvdXQoWXQsNTAwKSksYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7bGV0IHd0PXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChnZSk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYod3Q9PT0idHlwZXNjcmlwdCJ8fHd0PT09ImphdmFzY3JpcHQiKSYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnByb2Nlc3NDb250ZW50Q2hhbmdlKHl0KX19Y2F0Y2goeXQpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGZpbGUgJHtnZX06YCx5dCl9fWFjdGl2YXRlRmlsZShnZSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1nZX1jbG9zZUZpbGUoZ2UsYmUpe2dlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBJZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgod3Q9Pnd0LnBhdGg9PT1iZSk7aWYoSWU9PT0tMSlyZXR1cm47bGV0IHl0PXRoaXMub3BlbkZpbGVzW0llXTtpZighKHl0Lm1vZGlmaWVkJiYhY29uZmlybShgJHt5dC5uYW1lfSBoYXMgdW5zYXZlZCBjaGFuZ2VzLiBDbG9zZSBhbnl3YXk/YCkpJiYodGhpcy5zdG9wV2F0Y2hpbmdGaWxlKGJlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5maWx0ZXIod3Q9Pnd0LnBhdGghPT1iZSksdGhpcy5hY3RpdmVGaWxlUGF0aD09PWJlKSlpZih0aGlzLm9wZW5GaWxlcy5sZW5ndGg+MCl7bGV0IHd0PU1hdGgubWluKEllLHRoaXMub3BlbkZpbGVzLmxlbmd0aC0xKTt0aGlzLmFjdGl2ZUZpbGVQYXRoPXRoaXMub3BlbkZpbGVzW3d0XS5wYXRofWVsc2UgdGhpcy5hY3RpdmVGaWxlUGF0aD0iIn1nZXRBY3RpdmVGaWxlQ29udGVudCgpe3JldHVybiB0aGlzLm9wZW5GaWxlcy5maW5kKGJlPT5iZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk/LmNvbnRlbnR8fCIifWhhbmRsZUNvbnRlbnRDaGFuZ2UoZ2Upe2xldCBiZT1nZS5kZXRhaWwsSWU9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KHd0PT53dC5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoSWU9PT0tMSlyZXR1cm47bGV0IHl0PXRoaXMub3BlbkZpbGVzW0llXTtpZih5dC5jb250ZW50IT09YmUpe3RoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcy5zbGljZSgwLEllKSx7Li4ueXQsY29udGVudDpiZSxtb2RpZmllZDohMH0sLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoSWUrMSldO2xldCB3dD10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYod3Q9PT0idHlwZXNjcmlwdCJ8fHd0PT09ImphdmFzY3JpcHQiKSYmKHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQpLHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKGJlKX0sNTAwKSl9fWdldExhbmd1YWdlRnJvbVBhdGgoZ2Upe2xldCBiZT1nZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO3JldHVybnt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIsbWQ6Im1hcmtkb3duIix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHhtbDoieG1sIixzcWw6InNxbCIscHk6InB5dGhvbiIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCJ9W2JlfHwiIl18fCJwbGFpbnRleHQifXRvZ2dsZVRlcm1pbmFsKCl7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWR9YXN5bmMgc2F2ZUFjdGl2ZUZpbGUoKXtsZXQgZ2U9dGhpcy5vcGVuRmlsZXMuZmluZChiZT0+YmUucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKCEoIWdlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGdlLnBhdGgsZ2UuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGJlPT5iZS5wYXRoPT09Z2UucGF0aD97Li4uYmUsbW9kaWZpZWQ6ITF9OmJlKSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoZ2UucGF0aCxnZS5jb250ZW50KX1jYXRjaChiZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNhdmUgZmlsZToiLGJlKX19YXN5bmMgc2F2ZUFsbEZpbGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7Zm9yKGxldCBnZSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoYmU9PmJlLm1vZGlmaWVkKSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoZ2UucGF0aCxnZS5jb250ZW50KSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoZ2UucGF0aCxnZS5jb250ZW50KX1jYXRjaChiZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHNhdmUgJHtnZS5wYXRofTpgLGJlKX10aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoZ2U9Pih7Li4uZ2UsbW9kaWZpZWQ6ITF9KSl9fWFzeW5jIHNob3dFZGl0b3JNZW51KGdlKXtnZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgYmU9W3tuYW1lOnRoaXMuYXV0b1NhdmU/Ilx1MjcxMyBBdXRvIFNhdmUiOiJBdXRvIFNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50b2dnbGVBdXRvU2F2ZSgpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246aShhc3luYygpPT50aGlzLnNhdmVBbGxGaWxlcygpLCJhY3Rpb24iKX1dO2F3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGdlLGJlKX10b2dnbGVBdXRvU2F2ZSgpe3RoaXMuYXV0b1NhdmU9IXRoaXMuYXV0b1NhdmUsdGhpcy5hdXRvU2F2ZT90aGlzLmF1dG9TYXZlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLm9wZW5GaWxlcy5zb21lKGJlPT5iZS5tb2RpZmllZCkmJnRoaXMuc2F2ZUFsbEZpbGVzKCl9LDJlMyk6dGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKX1nZXRFcnJvckNvdW50KCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMuZmlsdGVyKGdlPT5nZS5zZXZlcml0eT09PTgpLmxlbmd0aH1yZW5kZXJQcm9ibGVtc1BhbmVsKCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPT09MD93YAogICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrQ2lyY2xlIn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIHByb2JsZW1zIGRldGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWxpc3QiPgogICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5tYXAoZ2U9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWl0ZW0iIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9Qcm9ibGVtKGdlKX0+CiAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICBjbGFzcz0icHJvYmxlbS1pY29uICR7Z2Uuc2V2ZXJpdHk9PT04PyJlcnJvciI6Indhcm5pbmcifSIKICAgICAgICAgICAgICAuaWNvbj0ke2dlLnNldmVyaXR5PT09OD8ibHVjaWRlOmNpcmNsZVgiOiJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9CiAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tZGV0YWlscyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1tZXNzYWdlIj4ke2dlLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1sb2NhdGlvbiI+CiAgICAgICAgICAgICAgICAke2dlLnJlc291cmNlLnBhdGguc3BsaXQoIi8iKS5wb3AoKX0gKCR7Z2Uuc3RhcnRMaW5lTnVtYmVyfSwgJHtnZS5zdGFydENvbHVtbn0pCiAgICAgICAgICAgICAgICAke2dlLnNvdXJjZT9gWyR7Z2Uuc291cmNlfV1gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0oZ2Upe2xldCBiZT1nZS5yZXNvdXJjZS5wYXRoLEllPWJlLnNwbGl0KCIvIikucG9wKCl8fCIiO3RoaXMub3BlbkZpbGVzLmZpbmQoWXQ9Pll0LnBhdGg9PT1iZSk/dGhpcy5hY3RpdmVGaWxlUGF0aD1iZTphd2FpdCB0aGlzLm9wZW5GaWxlKGJlLEllKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCB3dD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2lmKHd0KXtsZXQgWXQ9YXdhaXQgd3QuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtZdC5yZXZlYWxMaW5lSW5DZW50ZXIoZ2Uuc3RhcnRMaW5lTnVtYmVyKSxZdC5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpnZS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmdlLnN0YXJ0Q29sdW1ufSksWXQuZm9jdXMoKX19c2V0dXBNYXJrZXJMaXN0ZW5lcigpe2xldCBnZT13aW5kb3cubW9uYWNvO2dlJiYoZ2UuZWRpdG9yLm9uRGlkQ2hhbmdlTWFya2VycyhiZT0+e3RoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKX0pLHRoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKSl9dXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKXtsZXQgZ2U9d2luZG93Lm1vbmFjbztpZighZ2UpcmV0dXJuO2xldCBiZT1nZS5lZGl0b3IuZ2V0TW9kZWxNYXJrZXJzKHt9KTt0aGlzLmRpYWdub3N0aWNNYXJrZXJzPWJlLm1hcChJZT0+KHttZXNzYWdlOkllLm1lc3NhZ2Usc2V2ZXJpdHk6SWUuc2V2ZXJpdHksc3RhcnRMaW5lTnVtYmVyOkllLnN0YXJ0TGluZU51bWJlcixzdGFydENvbHVtbjpJZS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOkllLmVuZExpbmVOdW1iZXIsZW5kQ29sdW1uOkllLmVuZENvbHVtbixzb3VyY2U6SWUuc291cmNlLHJlc291cmNlOntwYXRoOkllLnJlc291cmNlLnBhdGh9fSkpfWFzeW5jIGhhbmRsZVJ1blByb2Nlc3MoZ2Upe2xldCBiZT1nZS5kZXRhaWwsSWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpO2lmKCFJZSl7Y29uc29sZS53YXJuKCJUZXJtaW5hbCBjb21wb25lbnQgbm90IGZvdW5kIik7cmV0dXJufXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCYmKHRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hMSksdGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwiLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgSWUuY3JlYXRlUHJvY2Vzc1RhYih7dHlwZTpiZS50eXBlLGxhYmVsOmJlLmxhYmVsLGNvbW1hbmQ6YmUuY29tbWFuZCxhcmdzOmJlLmFyZ3MsbWV0YWRhdGE6YmUubWV0YWRhdGEsc3dpdGNoVG9UYWI6ITB9KX1zZXRGaWxlVHJlZVdpZHRoKGdlKXtsZXQgSWU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCouNTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPU1hdGgubWF4KDE1MCxNYXRoLm1pbihJZSxnZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXNldFRlcm1pbmFsSGVpZ2h0KGdlKXtsZXQgSWU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqLjc7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9TWF0aC5tYXgoMTAwLE1hdGgubWluKEllLGdlKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9cmVzZXRMYXlvdXQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXN0YXRpY3tkcihhLHIpfX07cmV0dXJuIE9lPWF9KSgpfSk7dmFyIG1hYT11KCgpPT57aGFhKCk7ejl0KCl9KTt2YXIgZ2FhPXUoKCk9Pnt2OSgpfSk7dmFyIGJhYT11KCgpPT57WDZlKCl9KTt2YXIgeGFhPXUoKCk9Pnt9KTt2YXIgdmFhPXUoKCk9PntLcmUoKTt4YWEoKTtnOXQoKX0pO3ZhciB5YWE9dSgoKT0+e005dCgpfSk7dmFyIFhyZSxNMyxxVDEsd2FhLGthYT11KCgpPT57dmUoKTtsdCgpO3Y5KCk7WHJlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxNMz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0scVQxPVh0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCksd2FhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24iKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZU1hcmtkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1baWUoKV0sdj1baWUoKV0sWHJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic3BsaXRSYXRpbyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnNwbGl0UmF0aW8sImdldCIpLHNldDppKChNLE4pPT57TS5zcGxpdFJhdGlvPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxYcmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5QYW5lbFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+Im1pblBhbmVsU2l6ZSJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLm1pblBhbmVsU2l6ZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLm1pblBhbmVsU2l6ZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsZiksWHJlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFNwbGl0UmF0aW8iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImN1cnJlbnRTcGxpdFJhdGlvImluIE0sImhhcyIpLGdldDppKE09Pk0uY3VycmVudFNwbGl0UmF0aW8sImdldCIpLHNldDppKChNLE4pPT57TS5jdXJyZW50U3BsaXRSYXRpbz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGgsbSksWHJlKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaXNEcmFnZ2luZyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmlzRHJhZ2dpbmcsImdldCIpLHNldDppKChNLE4pPT57TS5pc0RyYWdnaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSxYcmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCxyKSx5PWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bj48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3duPmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zcGxpdENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgIC5lZGl0b3JDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMDM2M2QiKX07CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXIsCiAgICAgIC5yZXNpemVIYW5kbGUuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjZmZmZmZmIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdXRsZXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwZDExMTciKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnTm90byBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvckNvbnRhaW5lciwKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5vdXRsZXRDb250YWluZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXTsjZT1NMyh0aGlzLG8sNTApO2dldCBzcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNwbGl0UmF0aW8oayl7dGhpcy4jZT1rfSN0PShNMyh0aGlzLGwpLE0zKHRoaXMsZCwxMCkpO2dldCBtaW5QYW5lbFNpemUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluUGFuZWxTaXplKGspe3RoaXMuI3Q9a30jcj0oTTModGhpcyxmKSxNMyh0aGlzLGgsNTApKTtnZXQgY3VycmVudFNwbGl0UmF0aW8oKXtyZXR1cm4gdGhpcy4jcn1zZXQgY3VycmVudFNwbGl0UmF0aW8oayl7dGhpcy4jcj1rfSNhPShNMyh0aGlzLG0pLE0zKHRoaXMsYiwhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzRHJhZ2dpbmcoayl7dGhpcy4jYT1rfXJlc2l6ZUhhbmRsZUVsZW1lbnQ9TTModGhpcyxnKTtjb250YWluZXJFbGVtZW50O3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzcGxpdENvbnRhaW5lciAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yQ29udGFpbmVyIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgLmxhbmd1YWdlPSR7Im1hcmtkb3duIn0KICAgICAgICAgICAgLmNvbnRlbnQ9JHtgIyBhIHRlc3QgY29udGVudAoKVGhpcyBpcyB0ZXN0IGNvbnRlbnQgdGhhdCBpcyBvZiBsb25nZXIgZm9ybSBhbiBob3BlZnVsbHkgc3RhcnRzIHRvIHdyYXAgd2hlbiBJIG5lZWQgaXQuIEFuZCB5ZXMsIGl0IGRvZXMgcGVyZmVjdGx5LiBuaWNlLgoKVGVzdCB8IEhlbGxvCi0tLSB8IC0tLQpZZWFoIHwgU28gZ29vZAoKVGhpcyBpcyByZWFsIGFzc2V0IEkgdGhpbmsuIFdoeSB3b3VsZCB3ZSB3YW50IHRvIGxlYXZlIHRoYXQgb24gdGhlIHRhYmxlPyBDYW4geW91IHRlbGwgbXkgdGhhdD8KCldoeSBhcmUgd2UgaGVyZT8KCkRvIHlvdSBrbm93PwoKPiBub3RlOgpUaGVyZSBpcyBzb21ldGhpbmcgZ29pbmcgb24uCgpcYFxgXGB0eXBlc2NyaXB0CmNvbnN0IGhlbGxvID0gJ3llcycKXGBcYFxgCmB9CiAgICAgICAgICAgIHdvcmRXcmFwPSJib3VuZGVkIgogICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJyZXNpemVIYW5kbGUgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im91dGxldENvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAkezEwMC10aGlzLmN1cnJlbnRTcGxpdFJhdGlvfSUiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoayl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKGspLHRoaXMuY3VycmVudFNwbGl0UmF0aW89dGhpcy5zcGxpdFJhdGlvLHRoaXMuY29udGFpbmVyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNwbGl0Q29udGFpbmVyIiksdGhpcy5yZXNpemVIYW5kbGVFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIucmVzaXplSGFuZGxlIik7bGV0IE09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLE49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IiksUz1hd2FpdCBuZXcgWHQucGx1Z2lucy5zbWFydG1hcmtkb3duLlNtYXJ0TWFya2Rvd24oKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bigibG9hZGluZy4uLiIpO00uY29udGVudFN1YmplY3Quc3Vic2NyaWJlKGFzeW5jIE89Pnthd2FpdCBTLnVwZGF0ZUZyb21NYXJrZG93blN0cmluZyhPKTtsZXQgTD1TLmh0bWw7Ti51cGRhdGVIdG1sVGV4dChMKX0pfWhhbmRsZU1vdXNlRG93bj1pKGs9PntrLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9LCJoYW5kbGVNb3VzZURvd24iKTtoYW5kbGVNb3VzZU1vdmU9aShrPT57aWYoIXRoaXMuaXNEcmFnZ2luZ3x8IXRoaXMuY29udGFpbmVyRWxlbWVudClyZXR1cm47bGV0IE09dGhpcy5jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE49TS53aWR0aCxTPShrLmNsaWVudFgtTS5sZWZ0KS9OKjEwMDtTPU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSxTKSksdGhpcy5jdXJyZW50U3BsaXRSYXRpbz1TfSwiaGFuZGxlTW91c2VNb3ZlIik7aGFuZGxlTW91c2VVcD1pKCgpPT57dGhpcy5pc0RyYWdnaW5nPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpJiZ3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX0sImhhbmRsZU1vdXNlVXAiKTthc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX1zZXRTcGxpdFJhdGlvKGspe3RoaXMuY3VycmVudFNwbGl0UmF0aW89TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLGspKX1yZXNldFNwbGl0UmF0aW8oKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpb31zdGF0aWN7TTMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIFNhYT11KCgpPT57a2FhKCl9KTt2YXIgTWFhLENhYT11KCgpPT57dmUoKTt3YSgpO3duKCk7TWFhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPCEtLSBEZW1vIDE6IEhlYWRpbmdzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJIZWFkaW5ncyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkFsbCBoZWFkaW5nIGxldmVscyBmcm9tIEgxIHRvIEg2In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5IZWFkaW5nIExldmVsIDE8L2gxPgogICAgICAgICAgICA8aDI+SGVhZGluZyBMZXZlbCAyPC9oMj4KICAgICAgICAgICAgPGgzPkhlYWRpbmcgTGV2ZWwgMzwvaDM+CiAgICAgICAgICAgIDxoND5IZWFkaW5nIExldmVsIDQ8L2g0PgogICAgICAgICAgICA8aDU+SGVhZGluZyBMZXZlbCA1PC9oNT4KICAgICAgICAgICAgPGg2PkhlYWRpbmcgTGV2ZWwgNjwvaDY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDI6IFRleHQgRm9ybWF0dGluZyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGV4dCBGb3JtYXR0aW5nIn0KICAgICAgICAuc3VidGl0bGU9JHsiQm9sZCwgaXRhbGljLCBsaW5rcywgY29kZSwgYW5kIGtleWJvYXJkIGlucHV0In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBwYXJhZ3JhcGggd2l0aCA8c3Ryb25nPmJvbGQgdGV4dDwvc3Ryb25nPiBhbmQgPGVtPml0YWxpYyB0ZXh0PC9lbT4uPC9wPgogICAgICAgICAgICA8cD5Zb3UgY2FuIGFsc28gdXNlIDxzdHJvbmc+PGVtPmJvbGQgaXRhbGljPC9lbT48L3N0cm9uZz4gZm9yIGVtcGhhc2lzLjwvcD4KICAgICAgICAgICAgPHA+SGVyZSdzIGEgPGEgaHJlZj0iIyI+bGluayBleGFtcGxlPC9hPiBhbmQgc29tZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4uPC9wPgogICAgICAgICAgICA8cD5QcmVzcyA8a2JkPkN0cmw8L2tiZD4gKyA8a2JkPkM8L2tiZD4gdG8gY29weSB0ZXh0LjwvcD4KICAgICAgICAgICAgPGhyPgogICAgICAgICAgICA8cD5BYm92ZSBpcyBhIGhvcml6b250YWwgcnVsZSBzZXBhcmF0b3IuPC9wPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAzOiBMaXN0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiTGlzdHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJPcmRlcmVkLCB1bm9yZGVyZWQsIGFuZCB0YXNrIGxpc3RzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMz5Vbm9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+Rmlyc3QgaXRlbTwvbGk+CiAgICAgICAgICAgICAgPGxpPlNlY29uZCBpdGVtCiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAxPC9saT4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDI8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UaGlyZCBpdGVtPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxoMz5PcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgb25lPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0d288L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHRocmVlPC9saT4KICAgICAgICAgICAgPC9vbD4KCiAgICAgICAgICAgIDxoMz5UYXNrIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkIGRpc2FibGVkPiBDb21wbGV0ZWQgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gUGVuZGluZyB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBBbm90aGVyIHRhc2s8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA0OiBDb2RlIEJsb2NrcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQ29kZSBCbG9ja3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJTeW50YXggaGlnaGxpZ2h0ZWQgY29kZSBleGFtcGxlcyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5JbmxpbmUgY29kZTogPGNvZGU+Y29uc3QgZ3JlZXRpbmcgPSAiSGVsbG8sIFdvcmxkISI7PC9jb2RlPjwvcD4KCiAgICAgICAgICAgIDxoMz5UeXBlU2NyaXB0IEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBodG1sLCBjc3MgfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmludGVyZmFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPklVc2VyPC9zcGFuPiB7CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+bmFtZTwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmVtYWlsPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+YWdlPC9zcGFuPj86IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5udW1iZXI8L3NwYW4+Owp9Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPmdldFVzZXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXN5bmM8L3NwYW4+ICg8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5pZDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+KTogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPlByb21pc2U8L3NwYW4+Jmx0O0lVc2VyJmd0OyA9Jmd0OyB7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IHJlc3BvbnNlID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXdhaXQ8L3NwYW4+IGZldGNoKFxgL2FwaS91c2Vycy9cJHtpZH1cYCk7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+cmV0dXJuPC9zcGFuPiByZXNwb25zZS5qc29uKCk7Cn07PC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgzPkpTT04gRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+ewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJuYW1lIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+ImRlZXMtY2F0YWxvZyI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJ2ZXJzaW9uIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+IjMuMC4wIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ImRlcGVuZGVuY2llcyI8L3NwYW4+OiB7CiAgICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Ijwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+Il4yLjAuMCI8L3NwYW4+CiAgfQp9PC9jb2RlPjwvcHJlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA1OiBUYWJsZXMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRhYmxlcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN0eWxlZCB0YWJsZXMgd2l0aCBhbHRlcm5hdGluZyByb3dzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5GZWF0dXJlPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5Qcmlvcml0eTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RGFyayBtb2RlIHN1cHBvcnQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+Q29tcGxldGVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPlJlc3BvbnNpdmUgZGVzaWduPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1lZGl1bTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+QWNjZXNzaWJpbGl0eTwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QbGFubmVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRvY3VtZW50YXRpb248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TG93PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNjogQmxvY2txdW90ZXMgJiBBbGVydHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkJsb2NrcXVvdGVzICYgQWxlcnRzIn0KICAgICAgICAuc3VidGl0bGU9JHsiUXVvdGVzIGFuZCBHaXRIdWItc3R5bGUgYWxlcnRzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzdGFuZGFyZCBibG9ja3F1b3RlLiBJdCdzIGdyZWF0IGZvciBoaWdobGlnaHRpbmcgaW1wb3J0YW50IGluZm9ybWF0aW9uIG9yIHF1b3RlcyBmcm9tIG90aGVyIHNvdXJjZXMuPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1ub3RlIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBub3RlIHRvIGRyYXcgYXR0ZW50aW9uIHRvIGltcG9ydGFudCBkZXRhaWxzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBIZXJlJ3MgYSBoZWxwZnVsIHRpcCB0byBpbXByb3ZlIHlvdXIgd29ya2Zsb3cuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5JbXBvcnRhbnQ6PC9zdHJvbmc+IFRoaXMgaW5mb3JtYXRpb24gaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgdG9waWMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXdhcm5pbmciPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gQmUgY2FyZWZ1bCB3aGVuIHBlcmZvcm1pbmcgdGhpcyBhY3Rpb24uPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWNhdXRpb24iPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Q2F1dGlvbjo8L3N0cm9uZz4gVGhpcyBhY3Rpb24gbWF5IGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNzogRnVsbCBEb2N1bWVudCAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiRnVsbCBEb2N1bWVudCJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkEgY29tcGxldGUgbWFya2Rvd24gZG9jdW1lbnQgZXhhbXBsZSJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+R2V0dGluZyBTdGFydGVkIEd1aWRlPC9oMT4KICAgICAgICAgICAgPHA+V2VsY29tZSB0byB0aGUgPHN0cm9uZz5kZWVzLWNhdGFsb2c8L3N0cm9uZz4gY29tcG9uZW50IGxpYnJhcnkuIFRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBnZXQgdXAgYW5kIHJ1bm5pbmcgcXVpY2tseS48L3A+CgogICAgICAgICAgICA8aDI+SW5zdGFsbGF0aW9uPC9oMj4KICAgICAgICAgICAgPHA+SW5zdGFsbCB0aGUgcGFja2FnZSB1c2luZyB5b3VyIHByZWZlcnJlZCBwYWNrYWdlIG1hbmFnZXI6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgcG5wbSAocmVjb21tZW5kZWQpPC9zcGFuPgpwbnBtIGFkZCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgbnBtPC9zcGFuPgpucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDI+QmFzaWMgVXNhZ2U8L2gyPgogICAgICAgICAgICA8cD5JbXBvcnQgYW5kIHVzZSBjb21wb25lbnRzIGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlczo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IERlZXNCdXR0b24gfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPi8vIFVzZSBpbiB5b3VyIHRlbXBsYXRlczwvc3Bhbj4KaHRtbFxgJmx0O2RlZXMtYnV0dG9uJmd0O0NsaWNrIG1lJmx0Oy9kZWVzLWJ1dHRvbiZndDtcYDwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IENoZWNrIHRoZSBkZW1vIHNob3djYXNlIGZvciBsaXZlIGV4YW1wbGVzIG9mIGFsbCBjb21wb25lbnRzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8aDI+QXZhaWxhYmxlIENvbXBvbmVudHM8L2gyPgogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+Q29tcG9uZW50PC90aD4KICAgICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWJ1dHRvbjwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UHJpbWFyeSBidXR0b24gY29tcG9uZW50PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWlucHV0LXRleHQ8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlRleHQgaW5wdXQgZmllbGQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtdGFibGU8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkRhdGEgdGFibGUgd2l0aCBzb3J0aW5nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLW1vZGFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Nb2RhbCBkaWFsb2c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgPGgyPk5leHQgU3RlcHM8L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkV4cGxvcmUgdGhlIDxhIGhyZWY9IiMiPmNvbXBvbmVudCBkb2N1bWVudGF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkNoZWNrIG91dCB0aGUgPGEgaHJlZj0iIyI+dGhlbWluZyBndWlkZTwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5Kb2luIG91ciA8YSBocmVmPSIjIj5jb21tdW5pdHkgRGlzY29yZDwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+IlRoZSBiZXN0IGNvbXBvbmVudCBsaWJyYXJ5IGlzIG9uZSB0aGF0IGdldHMgb3V0IG9mIHlvdXIgd2F5LiIgXHUyMDE0IERlc2lnbiBTeXN0ZW1zIFRlYW08L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgV0ZhLEdGYSx6YWEsX2FhPXUoKCk9Pnt2ZSgpO2x0KCk7Q2FhKCk7V0ZhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxHRmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHphYT0oKCk9PntsZXQgdD1bdWUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO1dGYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHIpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfXN0YXRpYyBkZW1vPU1hYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdOb3RvIFNhbnMnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIC5vdXRsZXQgewogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLyogSGVhZGluZ3MgKi8KICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMWYyMzI4IiwiI2YwZjZmYyIpfTsKICAgICAgfQoKICAgICAgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMmVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxLjVlbTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4zZW07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICAgICB9CgogICAgICBoNCB7CiAgICAgICAgZm9udC1zaXplOiAxZW07CiAgICAgIH0KCiAgICAgIGg1IHsKICAgICAgICBmb250LXNpemU6IDAuODc1ZW07CiAgICAgIH0KCiAgICAgIGg2IHsKICAgICAgICBmb250LXNpemU6IDAuODVlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAvKiBQYXJhZ3JhcGhzIGFuZCB0ZXh0ICovCiAgICAgIHAgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLyogTGlua3MgKi8KICAgICAgYSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDk2OWRhIiwiIzU4YTZmZiIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAvKiBTdHJvbmcgYW5kIGVtcGhhc2lzICovCiAgICAgIHN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBlbSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAvKiBMaXN0cyAqLwogICAgICB1bCwgb2wgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJlbTsKICAgICAgfQoKICAgICAgbGkgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgbGkgKyBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICB1bCB1bCwgdWwgb2wsIG9sIHVsLCBvbCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBCbG9ja3F1b3RlcyAqLwogICAgICBibG9ja3F1b3RlIHsKICAgICAgICBtYXJnaW46IDAgMCAxNnB4IDA7CiAgICAgICAgcGFkZGluZzogMCAxZW07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjU2ZDc2IiwiIzhiOTQ5ZSIpfTsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgfQoKICAgICAgYmxvY2txdW90ZSA+IDpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQoKICAgICAgYmxvY2txdW90ZSA+IDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbmxpbmUgY29kZSAqLwogICAgICBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiA4NSU7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsICdTRiBNb25vJywgTWVubG8sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDE3NSwgMTg0LCAxOTMsIDAuMikiLCJyZ2JhKDExMCwgMTE4LCAxMjksIDAuNCkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7CiAgICAgIH0KCiAgICAgIC8qIENvZGUgYmxvY2tzICovCiAgICAgIHByZSB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgZm9udC1zaXplOiA4NSU7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDU7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsICdTRiBNb25vJywgTWVubG8sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd29yZC13cmFwOiBub3JtYWw7CiAgICAgIH0KCiAgICAgIHByZSBjb2RlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgZm9udC1zaXplOiAxMDAlOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgIH0KCiAgICAgIC8qIFRhYmxlcyAqLwogICAgICB0YWJsZSB7CiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgdGFibGUgdGggewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgcGFkZGluZzogNnB4IDEzcHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICB9CgogICAgICB0YWJsZSB0ZCB7CiAgICAgICAgcGFkZGluZzogNnB4IDEzcHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwZDExMTciKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzIxMjYyZCIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt4LmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICB9CgogICAgICAvKiBIb3Jpem9udGFsIHJ1bGVzICovCiAgICAgIGhyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMjRweCAwOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAvKiBJbWFnZXMgKi8KICAgICAgaW1nIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhc2sgbGlzdHMgKi8KICAgICAgLnRhc2stbGlzdC1pdGVtIHsKICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YXNrLWxpc3QtaXRlbSBpbnB1dCB7CiAgICAgICAgbWFyZ2luOiAwIDAuMmVtIDAuMjVlbSAtMS40ZW07CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgfQoKICAgICAgLyogRGVmaW5pdGlvbiBsaXN0cyAqLwogICAgICBkbCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgZGwgZHQgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgZGwgZGQgewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBLZXlib2FyZCBpbnB1dCAqLwogICAgICBrYmQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAzcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgfQoKICAgICAgLyogRm9vdG5vdGVzICovCiAgICAgIC5mb290bm90ZXMgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMzJweDsKICAgICAgfQoKICAgICAgLyogQWxlcnRzL0FkbW9uaXRpb25zICovCiAgICAgIC5tYXJrZG93bi1hbGVydCB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LW5vdGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDksIDEwNSwgMjE4LCAwLjEpIiwicmdiYSg1NiwgMTM5LCAyNTMsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC13YXJuaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjYmY4NzAwIiwiI2QyOTkyMiIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3guYmRUaGVtZSgicmdiYSgxOTEsIDEzNSwgMCwgMC4xKSIsInJnYmEoMTg3LCAxMjgsIDksIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC1pbXBvcnRhbnQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM4MjUwZGYiLCIjYTM3MWY3Iil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDEzMCwgODAsIDIyMywgMC4xKSIsInJnYmEoMTYzLCAxMTMsIDI0NywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWNhdXRpb24gewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNjZjIyMmUiLCIjZjg1MTQ5Iil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDIwNywgMzQsIDQ2LCAwLjEpIiwicmdiYSgyNDgsIDgxLCA3MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXRpcCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzFhN2YzNyIsIiMzZmI5NTAiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt4LmJkVGhlbWUoInJnYmEoMjYsIDEyNywgNTUsIDAuMSkiLCJyZ2JhKDQ2LCAxNjAsIDY3LCAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBTeW50YXggaGlnaGxpZ2h0aW5nIGZvciBjb2RlIGJsb2NrcyAqLwogICAgICAuaGxqcy1jb21tZW50LAogICAgICAuaGxqcy1xdW90ZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmE3MzdkIiwiIzhiOTQ5ZSIpfTsKICAgICAgfQoKICAgICAgLmhsanMta2V5d29yZCwKICAgICAgLmhsanMtc2VsZWN0b3ItdGFnLAogICAgICAuaGxqcy1hZGRpdGlvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDczYTQ5IiwiI2ZmN2I3MiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtbnVtYmVyLAogICAgICAuaGxqcy1zdHJpbmcsCiAgICAgIC5obGpzLW1ldGEgLmhsanMtbWV0YS1zdHJpbmcsCiAgICAgIC5obGpzLWxpdGVyYWwsCiAgICAgIC5obGpzLWRvY3RhZywKICAgICAgLmhsanMtcmVnZXhwIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMzJmNjIiLCIjYTVkNmZmIil9OwogICAgICB9CgogICAgICAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtc2VjdGlvbiwKICAgICAgLmhsanMtbmFtZSwKICAgICAgLmhsanMtc2VsZWN0b3ItaWQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWNsYXNzIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2ZjQyYzEiLCIjZDJhOGZmIil9OwogICAgICB9CgogICAgICAuaGxqcy1hdHRyaWJ1dGUsCiAgICAgIC5obGpzLWF0dHIsCiAgICAgIC5obGpzLXZhcmlhYmxlLAogICAgICAuaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSwKICAgICAgLmhsanMtY2xhc3MgLmhsanMtdGl0bGUsCiAgICAgIC5obGpzLXR5cGUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwNWNjNSIsIiM3OWMwZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXN5bWJvbCwKICAgICAgLmhsanMtYnVsbGV0LAogICAgICAuaGxqcy1zdWJzdCwKICAgICAgLmhsanMtbWV0YSwKICAgICAgLmhsanMtbWV0YSAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci1hdHRyLAogICAgICAuaGxqcy1zZWxlY3Rvci1wc2V1ZG8sCiAgICAgIC5obGpzLWxpbmsgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2UzNjIwOSIsIiNmZmE2NTciKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWJ1aWx0X2luLAogICAgICAuaGxqcy1kZWxldGlvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYjMxZDI4IiwiI2ZmYTE5OCIpfTsKICAgICAgfQoKICAgICAgLmhsanMtZm9ybXVsYSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt4LmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICB9CgogICAgICAuaGxqcy1lbXBoYXNpcyB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuaGxqcy1zdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CiAgICBgXTtvdXRsZXQ7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im91dGxldCI+CiAgICAgICAgPGgxPk1hcmtkb3duIFByZXZpZXc8L2gxPgogICAgICAgIDxwPkNvbnRlbnQgd2lsbCBhcHBlYXIgaGVyZSB3aGVuIG1hcmtkb3duIGlzIHBhcnNlZC48L3A+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQobyl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKG8pLHRoaXMub3V0bGV0PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIub3V0bGV0Iil9YXN5bmMgdXBkYXRlSHRtbFRleHQobyl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLm91dGxldHx8KHRoaXMub3V0bGV0PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIub3V0bGV0IikpLHRoaXMub3V0bGV0LmlubmVySFRNTD1vfXN0YXRpY3tHRmEoYSxyKX19O3JldHVybiBuPWF9KSgpfSk7dmFyIFRhYT11KCgpPT57X2FhKCl9KTt2YXIgTGFhPXUoKCk9PntDOXQoKX0pO3ZhciBEYWE9dSgoKT0+e185dCgpfSk7dmFyICRhYT11KCgpPT57bWFhKCk7Z2FhKCk7YmFhKCk7dmFhKCk7eWFhKCk7U2FhKCk7VGFhKCk7TGFhKCk7RGFhKCl9KTt2YXIgQWFhPXUoKCk9Pnt9KTt2YXIgRWFhPXUoKCk9PntBYWEoKX0pO3ZhciBJYWE9dSgoKT0+e3ZlKCl9KTt2YXIgUGFhPXUoKCk9PntJYWEoKX0pO3ZhciBOYWE9dSgoKT0+e09vKCk7bHQoKTtmUXIoKTtNUXIoKTt3WHIoKTtxWHIoKTtmSnIoKTtnSnIoKTtOSnIoKTtEZWEoKTtOdGEoKTtVdGEoKTtaNmUoKTtqcmEoKTtsYWEoKTskYWEoKTtFYWEoKTtQYWEoKX0pO3ZhciBPYWEsUmFhPXUoKCk9PntPYWE9e25hbWU6IkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsdmVyc2lvbjoiMy44Mi4wIixkZXNjcmlwdGlvbjoiQSBjb21wcmVoZW5zaXZlIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBkeW5hbWljIHdlYiBjb21wb25lbnRzIGZvciBidWlsZGluZyBzb3BoaXN0aWNhdGVkIGFuZCBtb2Rlcm4gd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBKYXZhU2NyaXB0IGFuZCBUeXBlU2NyaXB0LiJ9fSk7dmFyIEpyZT17fTtWZShKcmUse0NhbnZhc1Bvb2w6KCk9PiR3LERlZXNBY3Rpb25iYXI6KCk9PlZYcixEZWVzQXBwdWk6KCk9PnJRcixEZWVzQXBwdWlBY3Rpdml0eWxvZzooKT0+S1ZyLERlZXNBcHB1aUJhcjooKT0+ZGpyLERlZXNBcHB1aUJvdHRvbWJhcjooKT0+aGpyLERlZXNBcHB1aU1haW5jb250ZW50OigpPT50UXIsRGVlc0FwcHVpTWFpbm1lbnU6KCk9PllacixEZWVzQXBwdWlQcm9maWxlRHJvcGRvd246KCk9PmNqcixEZWVzQXBwdWlTZWNvbmRhcnltZW51OigpPT5RWnIsRGVlc0FwcHVpVGFiczooKT0+ZVFyLERlZXNBdWRpb1ZpZXdlcjooKT0+T2VhLERlZXNCYWRnZTooKT0+WVhyLERlZXNCdXR0b246KCk9PnFacixEZWVzQnV0dG9uRXhpdDooKT0+Z1FyLERlZXNCdXR0b25Hcm91cDooKT0+d1FyLERlZXNDaGFydEFyZWE6KCk9PiRRcixEZWVzQ2hhcnRCYXI6KCk9PmpRcixEZWVzQ2hhcnREb251dDooKT0+WFFyLERlZXNDaGFydEdhdWdlOigpPT5uWHIsRGVlc0NoYXJ0TG9nOigpPT5kWHIsRGVlc0NoYXJ0UmFkYXI6KCk9PnZYcixEZWVzQ2hpcHM6KCk9PkZKcixEZWVzQ29udGV4dG1lbnU6KCk9PkNyLERlZXNEYXNoYm9hcmRncmlkOigpPT5pZWEsRGVlc0RhdGF2aWV3Q29kZWJveDooKT0+TVhyLERlZXNEYXRhdmlld1N0YXR1c29iamVjdDooKT0+TFhyLERlZXNGb3JtOigpPT5GWnIsRGVlc0Zvcm1TdWJtaXQ6KCk9PkdwZSxEZWVzRm9ybWF0dGluZ01lbnU6KCk9PnVmZSxEZWVzSGVhZGluZzooKT0+ZGVhLERlZXNIaW50OigpPT5lSnIsRGVlc0ljb246KCk9PlZWcixEZWVzSW1hZ2VWaWV3ZXI6KCk9PkVlYSxEZWVzSW5wdXRCYXNlOigpPT5FdCxEZWVzSW5wdXRDaGVja2JveDooKT0+SXBlLERlZXNJbnB1dENvZGU6KCk9PkZwZSxEZWVzSW5wdXREYXRlcGlja2VyOigpPT5IcGUsRGVlc0lucHV0RGF0ZXBpY2tlclBvcHVwOigpPT5CcGUsRGVlc0lucHV0RHJvcGRvd246KCk9PktwZSxEZWVzSW5wdXREcm9wZG93blBvcHVwOigpPT5ZcGUsRGVlc0lucHV0RmlsZXVwbG9hZDooKT0+UXBlLERlZXNJbnB1dEliYW46KCk9PnRmZSxEZWVzSW5wdXRMaXN0OigpPT5sZmUsRGVlc0lucHV0TXVsdGl0b2dnbGU6KCk9PnJmZSxEZWVzSW5wdXRQaG9uZTooKT0+aWZlLERlZXNJbnB1dFByb2ZpbGVQaWN0dXJlOigpPT5QSnIsRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvcjooKT0+anBlLERlZXNJbnB1dFJhZGlvZ3JvdXA6KCk9PlVwZSxEZWVzSW5wdXRSaWNodGV4dDooKT0+ejZlLERlZXNJbnB1dFRhZ3M6KCk9Pm9mZSxEZWVzSW5wdXRUZXh0OigpPT5WcGUsRGVlc0lucHV0VG9nZ2xlOigpPT5zZmUsRGVlc0lucHV0VHlwZWxpc3Q6KCk9Pm5mZSxEZWVzSW5wdXRXeXNpd3lnOigpPT5McmUsRGVlc0xhYmVsOigpPT5BanIsRGVlc01vYmlsZW5hdmlnYXRpb246KCk9PmRRcixEZWVzTW9kYWw6KCk9PmVhLERlZXNQYWdpbmF0aW9uOigpPT5nZWEsRGVlc1BhbmVsOigpPT52anIsRGVlc1BkZlZpZXdlcjooKT0+R2VhLERlZXNQcmV2aWV3OigpPT5RZWEsRGVlc1Byb2dyZXNzYmFyOigpPT5zSnIsRGVlc1NlYXJjaGJhcjooKT0+S3JhLERlZXNTZXR0aW5nczooKT0+a2VhLERlZXNTaG9wcGluZ1Byb2R1Y3RjYXJkOigpPT5qanIsRGVlc1NpbXBsZUFwcERhc2g6KCk9PlByYSxEZWVzU2ltcGxlTG9naW46KCk9PkhyYSxEZWVzU2xhc2hNZW51OigpPT5jZmUsRGVlc1NwZWVjaGJ1YmJsZTooKT0+SHRhLERlZXNTcGlubmVyOigpPT5vSnIsRGVlc1N0YXRzR3JpZDooKT0+VlpyLERlZXNTdGVwcGVyOigpPT5EdyxEZWVzU3RvcmFnZUJyb3dzZXI6KCk9PkZYcixEZWVzU3RvcmFnZUNvbHVtbnM6KCk9Pk5YcixEZWVzU3RvcmFnZUtleXM6KCk9Pk9YcixEZWVzU3RvcmFnZVByZXZpZXc6KCk9PlJYcixEZWVzVGFibGU6KCk9PlQ2ZSxEZWVzVGhlbWU6KCk9PmVhYSxEZWVzVGh1bWJuYWlsQXVkaW86KCk9PmJ0YSxEZWVzVGh1bWJuYWlsQmFzZTooKT0+dDEsRGVlc1RodW1ibmFpbEZvbGRlcjooKT0+RXRhLERlZXNUaHVtYm5haWxJbWFnZTooKT0+cHRhLERlZXNUaHVtYm5haWxOb3RlOigpPT5fdGEsRGVlc1RodW1ibmFpbFBkZjooKT0+b3RhLERlZXNUaHVtYm5haWxWaWRlbzooKT0+a3RhLERlZXNUaWxlOigpPT5ManIsRGVlc1RvYXN0OigpPT5tYSxEZWVzVXBkYXRlcjooKT0+UTZlLERlZXNWaWRlb1ZpZXdlcjooKT0+SGVhLERlZXNXaW5kb3dDb250cm9sczooKT0+bGpyLERlZXNXaW5kb3dMYXllcjooKT0+eW4sRGVlc1dvcmtzcGFjZTooKT0+ZmFhLERlZXNXb3Jrc3BhY2VCb3R0b21iYXI6KCk9PnVhYSxEZWVzV29ya3NwYWNlRGlmZkVkaXRvcjooKT0+cGFhLERlZXNXb3Jrc3BhY2VGaWxldHJlZTooKT0+Y2FhLERlZXNXb3Jrc3BhY2VNYXJrZG93bjooKT0+d2FhLERlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldDooKT0+emFhLERlZXNXb3Jrc3BhY2VNb25hY286KCk9PkVqcixEZWVzV29ya3NwYWNlVGVybWluYWw6KCk9PmI5dCxEZWVzV29ya3NwYWNlVGVybWluYWxQcmV2aWV3OigpPT5kYWEsRGVlc1d5c2l3eWdCbG9jazooKT0+eFpyLFBST0dSQU1NSU5HX0xBTkdVQUdFUzooKT0+dnRlLFBkZk1hbmFnZXI6KCk9PlNkLFBlcmZvcm1hbmNlTW9uaXRvcjooKT0+QXcsVGVybWluYWxUYWJNYW5hZ2VyOigpPT5ZcmUsVHlwZVNjcmlwdEludGVsbGlTZW5zZU1hbmFnZXI6KCk9PlFyZSxWaWV3UmVnaXN0cnk6KCk9PkRyZSxXZWJDb250YWluZXJFbnZpcm9ubWVudDooKT0+cGcsV3lzaXd5Z0Jsb2NrT3BlcmF0aW9uczooKT0+eXRlLFd5c2l3eWdCbG9ja3M6KCk9PkVuLFd5c2l3eWdDb252ZXJ0ZXJzOigpPT5YbCxXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyOigpPT56cmUsV3lzaXd5Z0Zvcm1hdHRpbmc6KCk9PnQzLFd5c2l3eWdIaXN0b3J5OigpPT5fcmUsV3lzaXd5Z0lucHV0SGFuZGxlcjooKT0+TXJlLFd5c2l3eWdLZXlib2FyZEhhbmRsZXI6KCk9PkNyZSxXeXNpd3lnTW9kYWxNYW5hZ2VyOigpPT5TcmUsV3lzaXd5Z1NlbGVjdGlvbjooKT0+aHQsV3lzaXd5Z1Nob3J0Y3V0czooKT0+Y3MsWkluZGV4UmVnaXN0cnk6KCk9PlJsZSxjb2xvcnM6KCk9Pk55LGNvbW1pdGluZm86KCk9Pk9hYSxjb21wb25lbnRaSW5kZXg6KCk9PmQ4YSxkZWJvdW5jZTooKT0+Z0ZhLGZvcm1hdENvdW50OigpPT5QWHIsZm9ybWF0RmlsZVNpemU6KCk9PlY3dCxmb3JtYXRTaXplOigpPT56dyxnZXRDb250ZW50VHlwZTooKT0+ZmYsZ2V0RGVmYXVsdENvbnRlbnQ6KCk9PlR3LGdldEZpbGVOYW1lOigpPT5qcixnZXRQYXJlbnRQcmVmaXg6KCk9PlRjLGdldFBhdGhTZWdtZW50czooKT0+c2csZ2V0WkluZGV4OigpPT5jOGEsaWNvbnM6KCk9PiRwZSxpc0luVmlld3BvcnQ6KCk9PnhGYSxyZWdpc3RlckFsbEJsb2NrSGFuZGxlcnM6KCk9PmZacix0aGVtZURlZmF1bHRTdHlsZXM6KCk9Pk5lLHRoZW1lRGVmYXVsdHM6KCk9PnNsLHRocm90dGxlOigpPT5iRmEsdGh1bWJuYWlsQmFzZVN0eWxlczooKT0+TG8sdmFsaWRhdGVNb3ZlOigpPT5fdyx3eXNpd3lnU3R5bGVzOigpPT5hbXQsekluZGV4TGF5ZXJzOigpPT5qcyx6SW5kZXhSZWdpc3RyeTooKT0+eXJ9KTt2YXIgVDl0PXUoKCk9PntOYWEoKTtmYygpO1JhYSgpfSk7dmFyIEw5dCxlYWUsWUZhLEQ5dD11KCgpPT57dmUoKTtMOXQ9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGVhZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sWUZhPSgoKT0+e2xldCB0PVt1ZSgic3otcmVzb3VyY2UtdXNhZ2UtY2FyZCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelJlc291cmNlVXNhZ2VDYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0sTDl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iZGF0YSJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmRhdGEsImdldCIpLHNldDppKChtLHYpPT57bS5kYXRhPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxMOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InNlcnZpY2VDb3VudCJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnNlcnZpY2VDb3VudCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnNlcnZpY2VDb3VudD12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksTDl0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXJlc291cmNlLXVzYWdlLWNhcmQKICAgICAgICAuZGF0YT0ke3tjcHU6LjUsbWVtb3J5VXNlZDoiMTkxIE1CIixtZW1vcnlUb3RhbDoiNDI5LjIgR0IiLG5ldHdvcmtJbjoiMzguOSBLQi9zIixuZXR3b3JrT3V0OiIxLjcgS0IvcyIsdG9wQ29uc3VtZXJzOlt7bmFtZToidGVzdC1uZ2lueCIsbWVtb3J5OiIzMi4xIE1CIn0se25hbWU6InRlc3QtdjIiLG1lbW9yeToiMzEuNyBNQiJ9XX19CiAgICAgICAgc2VydmljZUNvdW50PSI3IgogICAgICA+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9ZWFlKHRoaXMsbyx7Y3B1OjAsbWVtb3J5VXNlZDoiMCBNQiIsbWVtb3J5VG90YWw6IjAgR0IiLG5ldHdvcmtJbjoiMCBLQi9zIixuZXR3b3JrT3V0OiIwIEtCL3MiLHRvcENvbnN1bWVyczpbXX0pO2dldCBkYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGEoaCl7dGhpcy4jZT1ofSN0PShlYWUodGhpcyxsKSxlYWUodGhpcyxkLCIwIikpO2dldCBzZXJ2aWNlQ291bnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VydmljZUNvdW50KGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAudmlldy1hbGwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC52aWV3LWFsbDpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAubWV0cmljLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAubWV0cmljLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm1ldHJpYy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlOwogICAgICB9CgogICAgICAubmV0d29yay1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uZXR3b3JrLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm5ldHdvcmstaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAubmV0d29yay1pY29uLmRvd24gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5uZXR3b3JrLWljb24udXAgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC50b3AtY29uc3VtZXJzIHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmNvbnN1bWVycy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgICB9CgogICAgICAuY29uc3VtZXJzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmNvbnN1bWVyLWl0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY29uc3VtZXItbmFtZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UmVzb3VyY2UgVXNhZ2U8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPkFnZ3JlZ2F0ZWQgYWNyb3NzICR7dGhpcy5zZXJ2aWNlQ291bnR9IHNlcnZpY2VzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxhIGNsYXNzPSJ2aWV3LWFsbCI+VmlldyBBbGw8L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPkNQVTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZGF0YS5jcHUudG9GaXhlZCgxKX0lPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsIiBzdHlsZT0id2lkdGg6ICR7TWF0aC5taW4odGhpcy5kYXRhLmNwdSwxMDApfSUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5NZW1vcnk8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEubWVtb3J5VXNlZH0gLyAke3RoaXMuZGF0YS5tZW1vcnlUb3RhbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmNhbGN1bGF0ZU1lbW9yeVBlcmNlbnQoKX0lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWhlYWRlciI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+TmV0d29yazwvc3Bhbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXR3b3JrLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV0d29yay1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibmV0d29yay1pY29uIGRvd24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDV2MTRNMTkgMTJsLTcgNy03LTciLz4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5kYXRhLm5ldHdvcmtJbn0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuZXR3b3JrLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJuZXR3b3JrLWljb24gdXAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDE5VjVNNSAxMmw3LTcgNyA3Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAke3RoaXMuZGF0YS5uZXR3b3JrT3V0fQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuZGF0YS50b3BDb25zdW1lcnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRvcC1jb25zdW1lcnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25zdW1lcnMtbGFiZWwiPlRvcCBjb25zdW1lcnM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc3VtZXJzLWxpc3QiPgogICAgICAgICAgICAgICR7dGhpcy5kYXRhLnRvcENvbnN1bWVycy5tYXAoaD0+d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnN1bWVyLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb25zdW1lci1uYW1lIj4ke2gubmFtZX06PC9zcGFuPiAke2gubWVtb3J5fQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9Y2FsY3VsYXRlTWVtb3J5UGVyY2VudCgpe2xldCBoPXBhcnNlRmxvYXQodGhpcy5kYXRhLm1lbW9yeVVzZWQpLG09cGFyc2VGbG9hdCh0aGlzLmRhdGEubWVtb3J5VG90YWwpO3JldHVybiBtPT09MD8wOk1hdGgubWluKGgvbSoxMDAsMTAwKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZWFlKHRoaXMsZil9c3RhdGlje2VhZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgRmFhLCQ5dCxLRmEsQTl0PXUoKCk9Pnt2ZSgpO0ZhYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sJDl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxLRmE9KCgpPT57bGV0IHQ9W3VlKCJzei10cmFmZmljLWNhcmQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pUcmFmZmljQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLEZhYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImRhdGEiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5kYXRhLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuZGF0YT1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksRmFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNTAwcHg7Ij4KICAgICAgPHN6LXRyYWZmaWMtY2FyZAogICAgICAgIC5kYXRhPSR7e3JlcXVlc3RzOjEyNTAsZXJyb3JzOjE1LGVycm9yUGVyY2VudDoxLjIsYXZnUmVzcG9uc2U6MTQ1LHJlcVBlck1pbjoyMSxzdGF0dXMyeHg6ODUsc3RhdHVzM3h4OjUsc3RhdHVzNHh4Ojgsc3RhdHVzNXh4OjJ9fQogICAgICA+PC9zei10cmFmZmljLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT0kOXQodGhpcyxvLHtyZXF1ZXN0czowLGVycm9yczowLGVycm9yUGVyY2VudDowLGF2Z1Jlc3BvbnNlOjAscmVxUGVyTWluOjAsc3RhdHVzMnh4OjAsc3RhdHVzM3h4OjAsc3RhdHVzNHh4OjAsc3RhdHVzNXh4OjB9KTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAubWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAubWV0cmljIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubWV0cmljLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhci1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtc2VnbWVudCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtMnh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtM3h4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtNHh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhY2MxNSIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtNXh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VmNDQ0NCIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtbGVnZW5kIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLmxlZ2VuZC1pdGVtIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGQ9dGhpcy5kYXRhLnN0YXR1czJ4eCt0aGlzLmRhdGEuc3RhdHVzM3h4K3RoaXMuZGF0YS5zdGF0dXM0eHgrdGhpcy5kYXRhLnN0YXR1czV4eCxmPWQ+MD90aGlzLmRhdGEuc3RhdHVzMnh4L2QqMTAwOjAscD1kPjA/dGhpcy5kYXRhLnN0YXR1czN4eC9kKjEwMDowLGg9ZD4wP3RoaXMuZGF0YS5zdGF0dXM0eHgvZCoxMDA6MCxtPWQ+MD90aGlzLmRhdGEuc3RhdHVzNXh4L2QqMTAwOjA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+VHJhZmZpYyAoTGFzdCBIb3VyKTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPlJlcXVlc3QgbWV0cmljcyBmcm9tIGFjY2VzcyBsb2dzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+UmVxdWVzdHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5mb3JtYXROdW1iZXIodGhpcy5kYXRhLnJlcXVlc3RzKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPkVycm9yczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEuZXJyb3JzfSAoJHt0aGlzLmRhdGEuZXJyb3JQZXJjZW50fSUpPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5BdmcgUmVzcG9uc2U8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5kYXRhLmF2Z1Jlc3BvbnNlfW1zPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5SZXEvbWluPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZGF0YS5yZXFQZXJNaW59PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1iYXItY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1iYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtc2VnbWVudCBzdGF0dXMtMnh4IiBzdHlsZT0id2lkdGg6ICR7Zn0lIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLXNlZ21lbnQgc3RhdHVzLTN4eCIgc3R5bGU9IndpZHRoOiAke3B9JSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1zZWdtZW50IHN0YXR1cy00eHgiIHN0eWxlPSJ3aWR0aDogJHtofSUiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtc2VnbWVudCBzdGF0dXMtNXh4IiBzdHlsZT0id2lkdGg6ICR7bX0lIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWxlZ2VuZCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmQtaXRlbSI+Mnh4PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjN4eDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxlZ2VuZC1pdGVtIj40eHg8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmQtaXRlbSI+NXh4PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXROdW1iZXIoZCl7cmV0dXJuIGQ+PTFlNj8oZC8xZTYpLnRvRml4ZWQoMSkrIk0iOmQ+PTFlMz8oZC8xZTMpLnRvRml4ZWQoMSkrIksiOmQudG9TdHJpbmcoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksJDl0KHRoaXMsbCl9c3RhdGljeyQ5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgQmFhLEU5dCxaRmEsSTl0PXUoKCk9Pnt2ZSgpO0JhYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sRTl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxaRmE9KCgpPT57bGV0IHQ9W3VlKCJzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6UGxhdGZvcm1TZXJ2aWNlc0NhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLEJhYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJzZXJ2aWNlcyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnNlcnZpY2VzLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2Yuc2VydmljZXM9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEJhYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDUwMHB4OyI+CiAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkCiAgICAgICAgLnNlcnZpY2VzPSR7W3tuYW1lOiJNb25nb0RCIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTMyBTdG9yYWdlIChNaW5JTykiLHN0YXR1czoiMSBidWNrZXQiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTbWFydFByb3h5IFJldmVyc2UgUHJveHkiLHN0YXR1czoiUnVubmluZyIscnVubmluZzohMH0se25hbWU6IkNsaWNrSG91c2UiLHN0YXR1czoiMSBEQiIscnVubmluZzohMH1dfQogICAgICA+PC9zei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiUGxhdGZvcm0iXTsjZT1FOXQodGhpcyxvLFtdKTtnZXQgc2VydmljZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VydmljZXMoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VydmljZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWl0ZW06aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAke3guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC40KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90LnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2Utc3RhdHVzIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UGxhdGZvcm0gU2VydmljZXM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5JbmZyYXN0cnVjdHVyZSBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZXMtbGlzdCI+CiAgICAgICAgICAke3RoaXMuc2VydmljZXMubWFwKGQ9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZXJ2aWNlQ2xpY2soZCl9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWRvdCAke2QucnVubmluZz8icnVubmluZyI6InN0b3BwZWQifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZXJ2aWNlLW5hbWUiPiR7ZC5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlcnZpY2Utc3RhdHVzIj4ke2Quc3RhdHVzfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTZXJ2aWNlQ2xpY2soZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1jbGljayIse2RldGFpbDpkLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEU5dCh0aGlzLGwpfXN0YXRpY3tFOXQoYSxyKX19O3JldHVybiBjPWF9KSgpfSk7dmFyIEo2ZSxnZyxRRmEsUDl0PXUoKCk9Pnt2ZSgpO0o2ZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZ2c9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFFGYT0oKCk9PntsZXQgdD1bdWUoInN6LWNlcnRpZmljYXRlcy1jYXJkIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6Q2VydGlmaWNhdGVzQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6TnVtYmVyfSldLGM9W1Aoe3R5cGU6TnVtYmVyfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLEo2ZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InZhbGlkQ291bnQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy52YWxpZENvdW50LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cudmFsaWRDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksSjZlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhwaXJpbmdDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iZXhwaXJpbmdDb3VudCJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmV4cGlyaW5nQ291bnQsImdldCIpLHNldDppKChnLHkpPT57Zy5leHBpcmluZ0NvdW50PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCxmKSxKNmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleHBpcmVkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImV4cGlyZWRDb3VudCJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmV4cGlyZWRDb3VudCwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmV4cGlyZWRDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksSjZlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgIDxzei1jZXJ0aWZpY2F0ZXMtY2FyZCB2YWxpZENvdW50PSIyIj48L3N6LWNlcnRpZmljYXRlcy1jYXJkPgogICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQgdmFsaWRDb3VudD0iNSIgZXhwaXJpbmdDb3VudD0iMiI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgICAgPHN6LWNlcnRpZmljYXRlcy1jYXJkIHZhbGlkQ291bnQ9IjAiIGV4cGlyZWRDb3VudD0iMSI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1nZyh0aGlzLG8sMCk7Z2V0IHZhbGlkQ291bnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsaWRDb3VudChiKXt0aGlzLiNlPWJ9I3Q9KGdnKHRoaXMsbCksZ2codGhpcyxkLDApKTtnZXQgZXhwaXJpbmdDb3VudCgpe3JldHVybiB0aGlzLiN0fXNldCBleHBpcmluZ0NvdW50KGIpe3RoaXMuI3Q9Yn0jcj0oZ2codGhpcyxmKSxnZyh0aGlzLGgsMCkpO2dldCBleHBpcmVkQ291bnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZXhwaXJlZENvdW50KGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtaWNvbi52YWxpZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ZhY2MxNSIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtaWNvbi5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPkNlcnRpZmljYXRlczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPlNTTC9UTFMgY2VydGlmaWNhdGUgc3RhdHVzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1saXN0Ij4KICAgICAgICAgICR7dGhpcy52YWxpZENvdW50PjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzIj4KICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJzdGF0dXMtaWNvbiB2YWxpZCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtdGV4dCI+JHt0aGlzLnZhbGlkQ291bnR9IHZhbGlkPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLmV4cGlyaW5nQ291bnQ+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9InN0YXR1cy1pY29uIHdhcm5pbmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjkgMy44NkwxLjgyIDE4YTIgMiAwIDAgMCAxLjcxIDNoMTYuOTRhMiAyIDAgMCAwIDEuNzEtM0wxMy43MSAzLjg2YTIgMiAwIDAgMC0zLjQyIDB6Ij48L3BhdGg+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI5IiB4Mj0iMTIiIHkyPSIxMyI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIxMi4wMSIgeTI9IjE3Ij48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij4ke3RoaXMuZXhwaXJpbmdDb3VudH0gZXhwaXJpbmcgc29vbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgICR7dGhpcy5leHBpcmVkQ291bnQ+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9InN0YXR1cy1pY29uIGVycm9yIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE1IiB5MT0iOSIgeDI9IjkiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjkiIHkxPSI5IiB4Mj0iMTUiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtdGV4dCI+JHt0aGlzLmV4cGlyZWRDb3VudH0gZXhwaXJlZDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgICR7dGhpcy52YWxpZENvdW50PT09MCYmdGhpcy5leHBpcmluZ0NvdW50PT09MCYmdGhpcy5leHBpcmVkQ291bnQ9PT0wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij5ObyBjZXJ0aWZpY2F0ZXM8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxnZyh0aGlzLG0pfXN0YXRpY3tnZyhhLHIpfX07cmV0dXJuIHY9YX0pKCl9KTt2YXIgQncsTmMsWEZhLE45dD11KCgpPT57dmUoKTtCdz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sTmM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFhGYT0oKCk9PntsZXQgdD1bdWUoInN6LXJldmVyc2UtcHJveHktY2FyZCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelJldmVyc2VQcm94eUNhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6U3RyaW5nfSldLEJ3KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaHR0cFBvcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imh0dHBQb3J0ImluIFMsImhhcyIpLGdldDppKFM9PlMuaHR0cFBvcnQsImdldCIpLHNldDppKChTLE8pPT57Uy5odHRwUG9ydD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksQncodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwc1BvcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imh0dHBzUG9ydCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmh0dHBzUG9ydCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmh0dHBzUG9ydD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksQncodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwQWN0aXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJodHRwQWN0aXZlImluIFMsImhhcyIpLGdldDppKFM9PlMuaHR0cEFjdGl2ZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmh0dHBBY3RpdmU9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEJ3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaHR0cHNBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imh0dHBzQWN0aXZlImluIFMsImhhcyIpLGdldDppKFM9PlMuaHR0cHNBY3RpdmUsImdldCIpLHNldDppKChTLE8pPT57Uy5odHRwc0FjdGl2ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksQncodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJyb3V0ZUNvdW50ImluIFMsImhhcyIpLGdldDppKFM9PlMucm91dGVDb3VudCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnJvdXRlQ291bnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEJ3KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNDAwcHg7Ij4KICAgICAgPHN6LXJldmVyc2UtcHJveHktY2FyZAogICAgICAgIGh0dHBQb3J0PSI4MDgwIgogICAgICAgIGh0dHBzUG9ydD0iODQ0MyIKICAgICAgICBodHRwQWN0aXZlCiAgICAgICAgaHR0cHNBY3RpdmUKICAgICAgICByb3V0ZUNvdW50PSIzIgogICAgICA+PC9zei1yZXZlcnNlLXByb3h5LWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9TmModGhpcyxvLCI4MCIpO2dldCBodHRwUG9ydCgpe3JldHVybiB0aGlzLiNlfXNldCBodHRwUG9ydChfKXt0aGlzLiNlPV99I3Q9KE5jKHRoaXMsbCksTmModGhpcyxkLCI0NDMiKSk7Z2V0IGh0dHBzUG9ydCgpe3JldHVybiB0aGlzLiN0fXNldCBodHRwc1BvcnQoXyl7dGhpcy4jdD1ffSNyPShOYyh0aGlzLGYpLE5jKHRoaXMsaCwhMSkpO2dldCBodHRwQWN0aXZlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGh0dHBBY3RpdmUoXyl7dGhpcy4jcj1ffSNhPShOYyh0aGlzLG0pLE5jKHRoaXMsYiwhMSkpO2dldCBodHRwc0FjdGl2ZSgpe3JldHVybiB0aGlzLiNhfXNldCBodHRwc0FjdGl2ZShfKXt0aGlzLiNhPV99I2k9KE5jKHRoaXMsZyksTmModGhpcyxrLCIwIikpO2dldCByb3V0ZUNvdW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHJvdXRlQ291bnQoXyl7dGhpcy4jaT1ffXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5pdGVtcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLml0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5pdGVtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLml0ZW0tdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuYmFkZ2UuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLmluYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UmV2ZXJzZSBQcm94eTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPkhUVFAvSFRUUFMgcHJveHkgc3RhdHVzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Iml0ZW1zIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS1sYWJlbCI+SFRUUCAoJHt0aGlzLmh0dHBQb3J0fSk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke3RoaXMuaHR0cEFjdGl2ZT8iYWN0aXZlIjoiaW5hY3RpdmUifSI+CiAgICAgICAgICAgICAgJHt0aGlzLmh0dHBBY3RpdmU/IkFjdGl2ZSI6IkluYWN0aXZlIn0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPkhUVFBTICgke3RoaXMuaHR0cHNQb3J0fSk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke3RoaXMuaHR0cHNBY3RpdmU/ImFjdGl2ZSI6ImluYWN0aXZlIn0iPgogICAgICAgICAgICAgICR7dGhpcy5odHRwc0FjdGl2ZT8iQWN0aXZlIjoiSW5hY3RpdmUifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS1sYWJlbCI+Um91dGVzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS12YWx1ZSI+JHt0aGlzLnJvdXRlQ291bnR9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTmModGhpcyxNKX1zdGF0aWN7TmMoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIE85dCx0YWUsSkZhLFI5dD11KCgpPT57dmUoKTtPOXQ9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHRhZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sSkZhPSgoKT0+e2xldCB0PVt1ZSgic3otZG5zLXNzbC1jYXJkIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RG5zU3NsQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6Qm9vbGVhbn0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0sTzl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG5zQ29uZmlndXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iZG5zQ29uZmlndXJlZCJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmRuc0NvbmZpZ3VyZWQsImdldCIpLHNldDppKChtLHYpPT57bS5kbnNDb25maWd1cmVkPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxPOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY21lQ29uZmlndXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iYWNtZUNvbmZpZ3VyZWQiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5hY21lQ29uZmlndXJlZCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmFjbWVDb25maWd1cmVkPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxPOXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA0MDBweDsiPgogICAgICA8c3otZG5zLXNzbC1jYXJkCiAgICAgICAgZG5zQ29uZmlndXJlZAogICAgICAgIGFjbWVDb25maWd1cmVkCiAgICAgID48L3N6LWRucy1zc2wtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT10YWUodGhpcyxvLCExKTtnZXQgZG5zQ29uZmlndXJlZCgpe3JldHVybiB0aGlzLiNlfXNldCBkbnNDb25maWd1cmVkKGgpe3RoaXMuI2U9aH0jdD0odGFlKHRoaXMsbCksdGFlKHRoaXMsZCwhMSkpO2dldCBhY21lQ29uZmlndXJlZCgpe3JldHVybiB0aGlzLiN0fXNldCBhY21lQ29uZmlndXJlZChoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLml0ZW1zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAuaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLml0ZW0tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuYmFkZ2UuY29uZmlndXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uubm90LWNvbmZpZ3VyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5ETlMgJiBTU0w8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5Db25maWd1cmF0aW9uIHN0YXR1czwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtcyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPkNsb3VkZmxhcmUgRE5TPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt0aGlzLmRuc0NvbmZpZ3VyZWQ/ImNvbmZpZ3VyZWQiOiJub3QtY29uZmlndXJlZCJ9Ij4KICAgICAgICAgICAgICAke3RoaXMuZG5zQ29uZmlndXJlZD8iQ29uZmlndXJlZCI6Ik5vdCBjb25maWd1cmVkIn0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPkFDTUUgKExldCdzIEVuY3J5cHQpPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt0aGlzLmFjbWVDb25maWd1cmVkPyJjb25maWd1cmVkIjoibm90LWNvbmZpZ3VyZWQifSI+CiAgICAgICAgICAgICAgJHt0aGlzLmFjbWVDb25maWd1cmVkPyJDb25maWd1cmVkIjoiTm90IGNvbmZpZ3VyZWQifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0YWUodGhpcyxmKX1zdGF0aWN7dGFlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBIYWEsRjl0LGVCYSxCOXQ9dSgoKT0+e3ZlKCk7SGFhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxGOXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGVCYT0oKCk9PntsZXQgdD1bdWUoInN6LXF1aWNrLWFjdGlvbnMtY2FyZCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelF1aWNrQWN0aW9uc0NhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLEhhYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImFjdGlvbnMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5hY3Rpb25zLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuYWN0aW9ucz1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksSGFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXF1aWNrLWFjdGlvbnMtY2FyZAogICAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiRGVwbG95IFNlcnZpY2UiLGljb246InBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiVmlldyBBbGwgU2VydmljZXMifSx7bGFiZWw6IlBsYXRmb3JtIFNlcnZpY2VzIn0se2xhYmVsOiJNYW5hZ2UgRG9tYWlucyJ9XX0KICAgICAgPjwvc3otcXVpY2stYWN0aW9ucy1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9Rjl0KHRoaXMsbyxbXSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgYWN0aW9ucyhkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzI1NjNlYiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UXVpY2sgQWN0aW9uczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPkNvbW1vbiB0YXNrcyBhbmQgc2hvcnRjdXRzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgICAgJHt0aGlzLmFjdGlvbnMubWFwKGQ9PndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtkLnByaW1hcnk/InByaW1hcnkiOiJzZWNvbmRhcnkifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbkNsaWNrKGQpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7ZC5pY29uPT09InBsdXMiP3dgCiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImFjdGlvbi1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgJHtkLmxhYmVsfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUFjdGlvbkNsaWNrKGQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGlvbi1jbGljayIse2RldGFpbDpkLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEY5dCh0aGlzLGwpfXN0YXRpY3tGOXQoYSxyKX19O3JldHVybiBjPWF9KSgpfSk7dmFyIHFhYSxIOXQsdEJhLHE5dD11KCgpPT57dmUoKTtxYWE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LEg5dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sdEJhPSgoKT0+e2xldCB0PVt1ZSgic3otc3RhdHVzLWdyaWQtY2x1c3RlciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelN0YXR1c0dyaWRDbHVzdGVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0scWFhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InN0YXRzImluIGYsImhhcyIpLGdldDppKGY9PmYuc3RhdHMsImdldCIpLHNldDppKChmLHApPT57Zi5zdGF0cz1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCkscWFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogOTAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIKICAgICAgICAuc3RhdHM9JHt7dG90YWxTZXJ2aWNlczo3LHJ1bm5pbmc6NyxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJydW5uaW5nIn19CiAgICAgID48L3N6LXN0YXR1cy1ncmlkLWNsdXN0ZXI+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQgR3JpZHMiXTsjZT1IOXQodGhpcyxvLHt0b3RhbFNlcnZpY2VzOjAscnVubmluZzowLHN0b3BwZWQ6MCxkb2NrZXJTdGF0dXM6InN0b3BwZWQifSk7Z2V0IHN0YXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0YXRzKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoidG90YWwiLHRpdGxlOiJUb3RhbCBTZXJ2aWNlcyIsdmFsdWU6dGhpcy5zdGF0cy50b3RhbFNlcnZpY2VzLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9LHtpZDoicnVubmluZyIsdGl0bGU6IlJ1bm5pbmciLHZhbHVlOnRoaXMuc3RhdHMucnVubmluZyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjaGVjayIsY29sb3I6IiMyMmM1NWUifSx7aWQ6InN0b3BwZWQiLHRpdGxlOiJTdG9wcGVkIix2YWx1ZTp0aGlzLnN0YXRzLnN0b3BwZWQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2lyY2xlU3RvcCIsY29sb3I6dGhpcy5zdGF0cy5zdG9wcGVkPjA/IiNmNTllMGIiOnZvaWQgMH0se2lkOiJkb2NrZXIiLHRpdGxlOiJEb2NrZXIiLHZhbHVlOnRoaXMuc3RhdHMuZG9ja2VyU3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjoiU3RvcHBlZCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmNvbnRhaW5lciIsY29sb3I6dGhpcy5zdGF0cy5kb2NrZXJTdGF0dXM9PT0icnVubmluZyI/IiMyMmM1NWUiOiIjZWY0NDQ0In1dfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnRpbGVzfQogICAgICAgIC5taW5UaWxlV2lkdGg9JHsyMDB9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksSDl0KHRoaXMsbCl9c3RhdGlje0g5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgVjl0LHJhZSxyQmEsajl0PXUoKCk9Pnt2ZSgpO0Q5dCgpO0k5dCgpO1Y5dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0scmFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxyQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1zdGF0dXMtZ3JpZC1zZXJ2aWNlcyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelN0YXR1c0dyaWRTZXJ2aWNlcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6QXJyYXl9KV0sVjl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb3VyY2VVc2FnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4icmVzb3VyY2VVc2FnZSJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnJlc291cmNlVXNhZ2UsImdldCIpLHNldDppKChtLHYpPT57bS5yZXNvdXJjZVVzYWdlPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxWOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGF0Zm9ybVNlcnZpY2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJwbGF0Zm9ybVNlcnZpY2VzImluIG0sImhhcyIpLGdldDppKG09Pm0ucGxhdGZvcm1TZXJ2aWNlcywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnBsYXRmb3JtU2VydmljZXM9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLFY5dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otc3RhdHVzLWdyaWQtc2VydmljZXMKICAgICAgICAucmVzb3VyY2VVc2FnZT0ke3tjcHU6NDUsbWVtb3J5VXNlZDoiNC45NiBHQiIsbWVtb3J5VG90YWw6IjggR0IiLG5ldHdvcmtJbjoiMS4yIE1CL3MiLG5ldHdvcmtPdXQ6IjAuOCBNQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJhcGktc2VydmljZSIsbWVtb3J5OiI1MTIgTUIifSx7bmFtZToid2ViLWZyb250ZW5kIixtZW1vcnk6IjI1NiBNQiJ9LHtuYW1lOiJ3b3JrZXIiLG1lbW9yeToiMTI4IE1CIn1dfX0KICAgICAgICAucGxhdGZvcm1TZXJ2aWNlcz0ke1t7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiIxIERCIixydW5uaW5nOiEwfSx7bmFtZToiUzMgU3RvcmFnZSIsc3RhdHVzOiIxIGJ1Y2tldCIscnVubmluZzohMH0se25hbWU6IkNsaWNrSG91c2UiLHN0YXR1czoiU3RvcHBlZCIscnVubmluZzohMX0se25hbWU6IlJlZGlzIENhY2hlIixzdGF0dXM6IlJ1bm5pbmciLHJ1bm5pbmc6ITB9XX0KICAgICAgPjwvc3otc3RhdHVzLWdyaWQtc2VydmljZXM+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQgR3JpZHMiXTsjZT1yYWUodGhpcyxvLHtjcHU6MCxtZW1vcnlVc2VkOiIwIEdCIixtZW1vcnlUb3RhbDoiMCBHQiIsbmV0d29ya0luOiIwIE1CL3MiLG5ldHdvcmtPdXQ6IjAgTUIvcyIsdG9wQ29uc3VtZXJzOltdfSk7Z2V0IHJlc291cmNlVXNhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVzb3VyY2VVc2FnZShoKXt0aGlzLiNlPWh9I3Q9KHJhZSh0aGlzLGwpLHJhZSh0aGlzLGQsW10pKTtnZXQgcGxhdGZvcm1TZXJ2aWNlcygpe3JldHVybiB0aGlzLiN0fXNldCBwbGF0Zm9ybVNlcnZpY2VzKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxzei1yZXNvdXJjZS11c2FnZS1jYXJkCiAgICAgICAgICAuZGF0YT0ke3RoaXMucmVzb3VyY2VVc2FnZX0KICAgICAgICA+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkCiAgICAgICAgICAuc2VydmljZXM9JHt0aGlzLnBsYXRmb3JtU2VydmljZXN9CiAgICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxyYWUodGhpcyxmKX1zdGF0aWN7cmFlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBlbWUsYmcsYUJhLFU5dD11KCgpPT57dmUoKTtBOXQoKTtOOXQoKTtQOXQoKTtlbWU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGJnPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxhQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1zdGF0dXMtZ3JpZC1uZXR3b3JrIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6U3RhdHVzR3JpZE5ldHdvcmsiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOk9iamVjdH0pXSxwPVtQKHt0eXBlOk9iamVjdH0pXSxlbWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmFmZmljIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJ0cmFmZmljImluIGcsImhhcyIpLGdldDppKGc9PmcudHJhZmZpYywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnRyYWZmaWM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLGVtZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb3h5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJwcm94eSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnByb3h5LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cucHJveHk9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLGVtZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlcnRpZmljYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iY2VydGlmaWNhdGVzImluIGcsImhhcyIpLGdldDppKGc9PmcuY2VydGlmaWNhdGVzLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuY2VydGlmaWNhdGVzPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxlbWUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxNDAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLW5ldHdvcmsKICAgICAgICAudHJhZmZpYz0ke3tyZXF1ZXN0czoxMjU0MjAsZXJyb3JzOjE1MCxlcnJvclBlcmNlbnQ6LjEyLGF2Z1Jlc3BvbnNlOjQ1LHJlcVBlck1pbjo4NDcsc3RhdHVzMnh4Ojk1LjIsc3RhdHVzM3h4OjIuMSxzdGF0dXM0eHg6Mi4zLHN0YXR1czV4eDouNH19CiAgICAgICAgLnByb3h5PSR7e2h0dHBQb3J0OiI4MCIsaHR0cHNQb3J0OiI0NDMiLGh0dHBBY3RpdmU6ITAsaHR0cHNBY3RpdmU6ITAscm91dGVDb3VudDoiMTIifX0KICAgICAgICAuY2VydGlmaWNhdGVzPSR7e3ZhbGlkOjgsZXhwaXJpbmc6MixleHBpcmVkOjB9fQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1uZXR3b3JrPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIEdyaWRzIl07I2U9YmcodGhpcyxvLHtyZXF1ZXN0czowLGVycm9yczowLGVycm9yUGVyY2VudDowLGF2Z1Jlc3BvbnNlOjAscmVxUGVyTWluOjAsc3RhdHVzMnh4OjAsc3RhdHVzM3h4OjAsc3RhdHVzNHh4OjAsc3RhdHVzNXh4OjB9KTtnZXQgdHJhZmZpYygpe3JldHVybiB0aGlzLiNlfXNldCB0cmFmZmljKGIpe3RoaXMuI2U9Yn0jdD0oYmcodGhpcyxsKSxiZyh0aGlzLGQse2h0dHBQb3J0OiI4MCIsaHR0cHNQb3J0OiI0NDMiLGh0dHBBY3RpdmU6ITEsaHR0cHNBY3RpdmU6ITEscm91dGVDb3VudDoiMCJ9KSk7Z2V0IHByb3h5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHByb3h5KGIpe3RoaXMuI3Q9Yn0jcj0oYmcodGhpcyxmKSxiZyh0aGlzLGgse3ZhbGlkOjAsZXhwaXJpbmc6MCxleHBpcmVkOjB9KSk7Z2V0IGNlcnRpZmljYXRlcygpe3JldHVybiB0aGlzLiNyfXNldCBjZXJ0aWZpY2F0ZXMoYil7dGhpcy4jcj1ifXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5ncmlkID4gKiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8c3otdHJhZmZpYy1jYXJkCiAgICAgICAgICAuZGF0YT0ke3RoaXMudHJhZmZpY30KICAgICAgICA+PC9zei10cmFmZmljLWNhcmQ+CiAgICAgICAgPHN6LXJldmVyc2UtcHJveHktY2FyZAogICAgICAgICAgaHR0cFBvcnQ9IiR7dGhpcy5wcm94eS5odHRwUG9ydH0iCiAgICAgICAgICBodHRwc1BvcnQ9IiR7dGhpcy5wcm94eS5odHRwc1BvcnR9IgogICAgICAgICAgP2h0dHBBY3RpdmU9JHt0aGlzLnByb3h5Lmh0dHBBY3RpdmV9CiAgICAgICAgICA/aHR0cHNBY3RpdmU9JHt0aGlzLnByb3h5Lmh0dHBzQWN0aXZlfQogICAgICAgICAgcm91dGVDb3VudD0iJHt0aGlzLnByb3h5LnJvdXRlQ291bnR9IgogICAgICAgID48L3N6LXJldmVyc2UtcHJveHktY2FyZD4KICAgICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQKICAgICAgICAgIHZhbGlkPSIke3RoaXMuY2VydGlmaWNhdGVzLnZhbGlkfSIKICAgICAgICAgIGV4cGlyaW5nPSIke3RoaXMuY2VydGlmaWNhdGVzLmV4cGlyaW5nfSIKICAgICAgICAgIGV4cGlyZWQ9IiR7dGhpcy5jZXJ0aWZpY2F0ZXMuZXhwaXJlZH0iCiAgICAgICAgPjwvc3otY2VydGlmaWNhdGVzLWNhcmQ+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYmcodGhpcyxtKX1zdGF0aWN7YmcoYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIHRtZSx4ZyxpQmEsVzl0PXUoKCk9Pnt2ZSgpO1I5dCgpO0I5dCgpO3RtZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0seGc9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGlCYT0oKCk9PntsZXQgdD1bdWUoInN6LXN0YXR1cy1ncmlkLWluZnJhIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6U3RhdHVzR3JpZEluZnJhIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpCb29sZWFufSldLGM9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxwPVtQKHt0eXBlOkFycmF5fSldLHRtZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRuc0NvbmZpZ3VyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImRuc0NvbmZpZ3VyZWQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5kbnNDb25maWd1cmVkLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuZG5zQ29uZmlndXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksdG1lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNtZUNvbmZpZ3VyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImFjbWVDb25maWd1cmVkImluIGcsImhhcyIpLGdldDppKGc9PmcuYWNtZUNvbmZpZ3VyZWQsImdldCIpLHNldDppKChnLHkpPT57Zy5hY21lQ29uZmlndXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsZiksdG1lKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iYWN0aW9ucyJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmFjdGlvbnMsImdldCIpLHNldDppKChnLHkpPT57Zy5hY3Rpb25zPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSx0bWUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLWluZnJhCiAgICAgICAgZG5zQ29uZmlndXJlZAogICAgICAgIGFjbWVDb25maWd1cmVkCiAgICAgICAgLmFjdGlvbnM9JHtbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoicGx1cyIscHJpbWFyeTohMH0se2xhYmVsOiJWaWV3IEFsbCBTZXJ2aWNlcyJ9LHtsYWJlbDoiUGxhdGZvcm0gU2VydmljZXMifSx7bGFiZWw6Ik1hbmFnZSBEb21haW5zIn1dfQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCBHcmlkcyJdOyNlPXhnKHRoaXMsbywhMSk7Z2V0IGRuc0NvbmZpZ3VyZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG5zQ29uZmlndXJlZChiKXt0aGlzLiNlPWJ9I3Q9KHhnKHRoaXMsbCkseGcodGhpcyxkLCExKSk7Z2V0IGFjbWVDb25maWd1cmVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFjbWVDb25maWd1cmVkKGIpe3RoaXMuI3Q9Yn0jcj0oeGcodGhpcyxmKSx4Zyh0aGlzLGgsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNyfXNldCBhY3Rpb25zKGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxzei1kbnMtc3NsLWNhcmQKICAgICAgICAgID9kbnNDb25maWd1cmVkPSR7dGhpcy5kbnNDb25maWd1cmVkfQogICAgICAgICAgP2FjbWVDb25maWd1cmVkPSR7dGhpcy5hY21lQ29uZmlndXJlZH0KICAgICAgICA+PC9zei1kbnMtc3NsLWNhcmQ+CiAgICAgICAgPHN6LXF1aWNrLWFjdGlvbnMtY2FyZAogICAgICAgICAgLmFjdGlvbnM9JHt0aGlzLmFjdGlvbnN9CiAgICAgICAgICBAYWN0aW9uLWNsaWNrPSR7Yj0+dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOmIuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9CiAgICAgICAgPjwvc3otcXVpY2stYWN0aW9ucy1jYXJkPgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHhnKHRoaXMsbSl9c3RhdGlje3hnKGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBWYWEsRzl0LHNCYSxqYWE9dSgoKT0+e3ZlKCk7cTl0KCk7ajl0KCk7VTl0KCk7Vzl0KCk7VmFhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxHOXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHNCYT0oKCk9PntsZXQgdD1bdWUoInN6LWRhc2hib2FyZC12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RGFzaGJvYXJkVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLFZhYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImRhdGEiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5kYXRhLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuZGF0YT1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksVmFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTQwMHB4OyI+CiAgICAgIDxzei1kYXNoYm9hcmQtdmlldwogICAgICAgIC5kYXRhPSR7e2NsdXN0ZXI6e3RvdGFsU2VydmljZXM6NyxydW5uaW5nOjcsc3RvcHBlZDowLGRvY2tlclN0YXR1czoicnVubmluZyJ9LHJlc291cmNlVXNhZ2U6e2NwdTouNSxtZW1vcnlVc2VkOiIxOTEgTUIiLG1lbW9yeVRvdGFsOiI0MjkuMiBHQiIsbmV0d29ya0luOiIzOC45IEtCL3MiLG5ldHdvcmtPdXQ6IjEuNyBLQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJ0ZXN0LW5naW54IixtZW1vcnk6IjMyLjEgTUIifSx7bmFtZToidGVzdC12MiIsbWVtb3J5OiIzMS43IE1CIn1dfSxwbGF0Zm9ybVNlcnZpY2VzOlt7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiIxIERCIixydW5uaW5nOiEwfSx7bmFtZToiUzMgU3RvcmFnZSAoTWluSU8pIixzdGF0dXM6IjEgYnVja2V0IixydW5uaW5nOiEwfSx7bmFtZToiU21hcnRQcm94eSBSZXZlcnNlIFByb3h5IixzdGF0dXM6IlJ1bm5pbmciLHJ1bm5pbmc6ITB9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9XSx0cmFmZmljOntyZXF1ZXN0czoxMjUwLGVycm9yczoxNSxlcnJvclBlcmNlbnQ6MS4yLGF2Z1Jlc3BvbnNlOjE0NSxyZXFQZXJNaW46MjEsc3RhdHVzMnh4Ojg1LHN0YXR1czN4eDo1LHN0YXR1czR4eDo4LHN0YXR1czV4eDoyfSxwcm94eTp7aHR0cFBvcnQ6IjgwIixodHRwc1BvcnQ6IjQ0MyIsaHR0cEFjdGl2ZTohMCxodHRwc0FjdGl2ZTohMCxyb3V0ZUNvdW50OiIxMiJ9LGNlcnRpZmljYXRlczp7dmFsaWQ6OCxleHBpcmluZzoyLGV4cGlyZWQ6MH0sZG5zQ29uZmlndXJlZDohMCxhY21lQ29uZmlndXJlZDohMCxxdWlja0FjdGlvbnM6W3tsYWJlbDoiRGVwbG95IFNlcnZpY2UiLGljb246InBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiVmlldyBBbGwgU2VydmljZXMifSx7bGFiZWw6IlBsYXRmb3JtIFNlcnZpY2VzIn0se2xhYmVsOiJNYW5hZ2UgRG9tYWlucyJ9XX19CiAgICAgID48L3N6LWRhc2hib2FyZC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9Rzl0KHRoaXMsbyx7Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczowLHJ1bm5pbmc6MCxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJzdG9wcGVkIn0scmVzb3VyY2VVc2FnZTp7Y3B1OjAsbWVtb3J5VXNlZDoiMCBNQiIsbWVtb3J5VG90YWw6IjAgR0IiLG5ldHdvcmtJbjoiMCBLQi9zIixuZXR3b3JrT3V0OiIwIEtCL3MiLHRvcENvbnN1bWVyczpbXX0scGxhdGZvcm1TZXJ2aWNlczpbXSx0cmFmZmljOntyZXF1ZXN0czowLGVycm9yczowLGVycm9yUGVyY2VudDowLGF2Z1Jlc3BvbnNlOjAscmVxUGVyTWluOjAsc3RhdHVzMnh4OjAsc3RhdHVzM3h4OjAsc3RhdHVzNHh4OjAsc3RhdHVzNXh4OjB9LHByb3h5OntodHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiExLGh0dHBzQWN0aXZlOiExLHJvdXRlQ291bnQ6IjAifSxjZXJ0aWZpY2F0ZXM6e3ZhbGlkOjAsZXhwaXJpbmc6MCxleHBpcmVkOjB9LGRuc0NvbmZpZ3VyZWQ6ITEsYWNtZUNvbmZpZ3VyZWQ6ITEscXVpY2tBY3Rpb25zOltdfSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5kYXNoYm9hcmQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q2x1c3RlciBPdmVydmlldzwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtY2x1c3RlcgogICAgICAgICAgICAuc3RhdHM9JHt0aGlzLmRhdGEuY2x1c3Rlcn0KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLWNsdXN0ZXI+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNlcnZpY2VzICYgUmVzb3VyY2VzPC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1zZXJ2aWNlcwogICAgICAgICAgICAucmVzb3VyY2VVc2FnZT0ke3RoaXMuZGF0YS5yZXNvdXJjZVVzYWdlfQogICAgICAgICAgICAucGxhdGZvcm1TZXJ2aWNlcz0ke3RoaXMuZGF0YS5wbGF0Zm9ybVNlcnZpY2VzfQogICAgICAgICAgPjwvc3otc3RhdHVzLWdyaWQtc2VydmljZXM+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5ldHdvcmsgJiBUcmFmZmljPC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1uZXR3b3JrCiAgICAgICAgICAgIC50cmFmZmljPSR7dGhpcy5kYXRhLnRyYWZmaWN9CiAgICAgICAgICAgIC5wcm94eT0ke3RoaXMuZGF0YS5wcm94eX0KICAgICAgICAgICAgLmNlcnRpZmljYXRlcz0ke3RoaXMuZGF0YS5jZXJ0aWZpY2F0ZXN9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1uZXR3b3JrPgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5JbmZyYXN0cnVjdHVyZTwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtaW5mcmEKICAgICAgICAgICAgP2Ruc0NvbmZpZ3VyZWQ9JHt0aGlzLmRhdGEuZG5zQ29uZmlndXJlZH0KICAgICAgICAgICAgP2FjbWVDb25maWd1cmVkPSR7dGhpcy5kYXRhLmFjbWVDb25maWd1cmVkfQogICAgICAgICAgICAuYWN0aW9ucz0ke3RoaXMuZGF0YS5xdWlja0FjdGlvbnN9CiAgICAgICAgICAgIEBhY3Rpb24tY2xpY2s9JHtkPT50aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpb24tY2xpY2siLHtkZXRhaWw6ZC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLWluZnJhPgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxHOXQodGhpcyxsKX1zdGF0aWN7Rzl0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBrZixuMSxuQmEsVWFhPXUoKCk9Pnt2ZSgpO2tmPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxuMT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sbkJhPSgoKT0+e2xldCB0PVt1ZSgic3otbmV0d29yay1wcm94eS12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6TmV0d29ya1Byb3h5VmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6QXJyYXl9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkJvb2xlYW59KV0sa2YodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm94eVN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4icHJveHlTdGF0dXMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wcm94eVN0YXR1cywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnByb3h5U3RhdHVzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxrZih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdXRlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InJvdXRlQ291bnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5yb3V0ZUNvdW50LCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oucm91dGVDb3VudD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsZiksa2YodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZXJ0aWZpY2F0ZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjZXJ0aWZpY2F0ZUNvdW50ImluIHosImhhcyIpLGdldDppKHo9PnouY2VydGlmaWNhdGVDb3VudCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmNlcnRpZmljYXRlQ291bnQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLGtmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFyZ2V0Q291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhcmdldENvdW50ImluIHosImhhcyIpLGdldDppKHo9PnoudGFyZ2V0Q291bnQsImdldCIpLHNldDppKCh6LEEpPT57ei50YXJnZXRDb3VudD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksa2YodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0YXJnZXRzImluIHosImhhcyIpLGdldDppKHo9PnoudGFyZ2V0cywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnRhcmdldHM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLGtmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9ncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibG9ncyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmxvZ3MsImdldCIpLHNldDppKCh6LEEpPT57ei5sb2dzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSxrZih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cmVhbWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3RyZWFtaW5nImluIHosImhhcyIpLGdldDppKHo9Pnouc3RyZWFtaW5nLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc3RyZWFtaW5nPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSxrZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDE0MDBweDsiPgogICAgICA8c3otbmV0d29yay1wcm94eS12aWV3CiAgICAgICAgcHJveHlTdGF0dXM9InJ1bm5pbmciCiAgICAgICAgcm91dGVDb3VudD0iMyIKICAgICAgICBjZXJ0aWZpY2F0ZUNvdW50PSIyIgogICAgICAgIHRhcmdldENvdW50PSIxMSIKICAgICAgICAudGFyZ2V0cz0ke1t7dHlwZToic2VydmljZSIsbmFtZToidGVzdC1uZ2lueCIsZG9tYWluOiJhcHAuYmxldS5kZSIsdGFyZ2V0OiJsb2NhbGhvc3Q6ODA4MCIsc3RhdHVzOiJydW5uaW5nIn0se3R5cGU6InNlcnZpY2UiLG5hbWU6ImhlbGxvLXdvcmxkIixkb21haW46ImhlbGxvLnRhc2sudmMiLHRhcmdldDoibG9jYWxob3N0OjgwODEiLHN0YXR1czoicnVubmluZyJ9LHt0eXBlOiJyZWdpc3RyeSIsbmFtZToib25lYm94LXJlZ2lzdHJ5Iixkb21haW46bnVsbCx0YXJnZXQ6ImxvY2FsaG9zdDo0MDAwIixzdGF0dXM6InJ1bm5pbmcifSx7dHlwZToicGxhdGZvcm0iLG5hbWU6Ik1vbmdvREIiLGRvbWFpbjpudWxsLHRhcmdldDoibG9jYWxob3N0OjI3MDE3IixzdGF0dXM6InJ1bm5pbmcifSx7dHlwZToicGxhdGZvcm0iLG5hbWU6IkNsaWNrSG91c2UiLGRvbWFpbjpudWxsLHRhcmdldDoibG9jYWxob3N0OjgxMjMiLHN0YXR1czoicnVubmluZyJ9XX0KICAgICAgICAubG9ncz0ke1t7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMyIixtZXRob2Q6IkdFVCIscGF0aDoiL2FwaS9zZXJ2aWNlcyIsc3RhdHVzOjIwMCxkdXJhdGlvbjo0NSxpcDoiMTkyLjE2OC4xLjEwMCJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMDIgMTA6MTU6MzAiLG1ldGhvZDoiUE9TVCIscGF0aDoiL2FwaS9hdXRoL2xvZ2luIixzdGF0dXM6MjAwLGR1cmF0aW9uOjEyMCxpcDoiMTkyLjE2OC4xLjEwMSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMDIgMTA6MTU6MjgiLG1ldGhvZDoiR0VUIixwYXRoOiIvc3RhdGljL2J1bmRsZS5qcyIsc3RhdHVzOjMwNCxkdXJhdGlvbjo1LGlwOiIxOTIuMTY4LjEuMTAwIn1dfQogICAgICA+PC9zei1uZXR3b3JrLXByb3h5LXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9bjEodGhpcyxvLCJzdG9wcGVkIik7Z2V0IHByb3h5U3RhdHVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb3h5U3RhdHVzKEMpe3RoaXMuI2U9Q30jdD0objEodGhpcyxsKSxuMSh0aGlzLGQsIjAiKSk7Z2V0IHJvdXRlQ291bnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcm91dGVDb3VudChDKXt0aGlzLiN0PUN9I3I9KG4xKHRoaXMsZiksbjEodGhpcyxoLCIwIikpO2dldCBjZXJ0aWZpY2F0ZUNvdW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNlcnRpZmljYXRlQ291bnQoQyl7dGhpcy4jcj1DfSNhPShuMSh0aGlzLG0pLG4xKHRoaXMsYiwiMCIpKTtnZXQgdGFyZ2V0Q291bnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGFyZ2V0Q291bnQoQyl7dGhpcy4jYT1DfSNpPShuMSh0aGlzLGcpLG4xKHRoaXMsayxbXSkpO2dldCB0YXJnZXRzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhcmdldHMoQyl7dGhpcy4jaT1DfSNzPShuMSh0aGlzLE0pLG4xKHRoaXMsXyxbXSkpO2dldCBsb2dzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvZ3MoQyl7dGhpcy4jcz1DfSNuPShuMSh0aGlzLFMpLG4xKHRoaXMsTCwhMSkpO2dldCBzdHJlYW1pbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc3RyZWFtaW5nKEMpe3RoaXMuI249Q31zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAucmVmcmVzaC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZWZyZXNoLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICB9CgogICAgICAudGFibGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxLjVmciAxLjVmciAxLjVmciA4MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDEuNWZyIDEuNWZyIDEuNWZyIDgwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAudHlwZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CgogICAgICAudHlwZS1iYWRnZS5zZXJ2aWNlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC50eXBlLWJhZGdlLnJlZ2lzdHJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZThmZiIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzkzMzNlYSIsIiNhODU1ZjciKX07CiAgICAgIH0KCiAgICAgIC50eXBlLWJhZGdlLnBsYXRmb3JtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC50YXJnZXQtdmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmxvZ3MtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAubG9nLWVudHJ5IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubG9nLXRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmxvZy1tZXRob2QgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtMnh4IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAubG9nLXN0YXR1cy0zeHggewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5sb2ctc3RhdHVzLTR4eCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtNXh4IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuZW1wdHktbG9ncyB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoicHJveHktc3RhdHVzIix0aXRsZToiUHJveHkgU3RhdHVzIix2YWx1ZTp0aGlzLnByb3h5U3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjoiU3RvcHBlZCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sb3I6dGhpcy5wcm94eVN0YXR1cz09PSJydW5uaW5nIj8iIzIyYzU1ZSI6IiNlZjQ0NDQifSx7aWQ6InJvdXRlcyIsdGl0bGU6IlJvdXRlcyIsdmFsdWU6dGhpcy5yb3V0ZUNvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9LHtpZDoiY2VydGlmaWNhdGVzIix0aXRsZToiQ2VydGlmaWNhdGVzIix2YWx1ZTp0aGlzLmNlcnRpZmljYXRlQ291bnQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2hlY2sifSx7aWQ6InRhcmdldHMiLHRpdGxlOiJUYXJnZXRzIix2YWx1ZTp0aGlzLnRhcmdldENvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9XX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVmcmVzaC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlZnJlc2goKX0+UmVmcmVzaDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMudGlsZXN9CiAgICAgICAgLm1pblRpbGVXaWR0aD0kezIwMH0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPlRyYWZmaWMgVGFyZ2V0czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlNlcnZpY2VzLCByZWdpc3RyeSwgYW5kIHBsYXRmb3JtIHNlcnZpY2VzIHdpdGggdGhlaXIgcm91dGluZyBpbmZvPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPlR5cGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5OYW1lPC9zcGFuPgogICAgICAgICAgPHNwYW4+RG9tYWluPC9zcGFuPgogICAgICAgICAgPHNwYW4+VGFyZ2V0PC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy50YXJnZXRzLm1hcChDPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVUYXJnZXRDbGljayhDKX0+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLWJhZGdlICR7Qy50eXBlfSI+JHtDLnR5cGV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+JHtDLm5hbWV9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4ke0MuZG9tYWlufHwiLSJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0LXZhbHVlIj4ke0MudGFyZ2V0fTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke0Muc3RhdHVzfSI+JHtDLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BY2Nlc3MgTG9nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlJlYWwtdGltZSBwcm94eSBhY2Nlc3MgbG9nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ3MtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5sb2dzLmxlbmd0aD4wP3RoaXMubG9ncy5tYXAoQz0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nLWVudHJ5Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9nLXRpbWVzdGFtcCI+JHtDLnRpbWVzdGFtcH08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxvZy1tZXRob2QiPiR7Qy5tZXRob2R9PC9zcGFuPgogICAgICAgICAgICAgICR7Qy5wYXRofQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke3RoaXMuZ2V0U3RhdHVzQ2xhc3MoQy5zdGF0dXMpfSI+JHtDLnN0YXR1c308L3NwYW4+CiAgICAgICAgICAgICAgJHtDLmR1cmF0aW9ufW1zCiAgICAgICAgICAgICAgJHtDLmlwfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LWxvZ3MiPkNsaWNrICJTdHJlYW0iIHRvIHN0YXJ0IGxpdmUgYWNjZXNzIGxvZyBzdHJlYW1pbmc8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiAke3RoaXMuc3RyZWFtaW5nPyJkYW5nZXIiOiJwcmltYXJ5In0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZVN0cmVhbWluZygpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAke3RoaXMuc3RyZWFtaW5nP3dgPHJlY3QgeD0iNiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMSIvPmA6d2A8cG9seWdvbiBwb2ludHM9IjUsMyAxOSwxMiA1LDIxIi8+YH0KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICR7dGhpcy5zdHJlYW1pbmc/IlN0b3AiOiJTdHJlYW0ifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2xlYXJMb2dzKCl9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENsZWFyIGxvZ3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Z2V0U3RhdHVzQ2xhc3MoQyl7cmV0dXJuIEM+PTUwMD8ibG9nLXN0YXR1cy01eHgiOkM+PTQwMD8ibG9nLXN0YXR1cy00eHgiOkM+PTMwMD8ibG9nLXN0YXR1cy0zeHgiOiJsb2ctc3RhdHVzLTJ4eCJ9aGFuZGxlUmVmcmVzaCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlZnJlc2giLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhcmdldENsaWNrKEMpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhcmdldC1jbGljayIse2RldGFpbDpDLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9dG9nZ2xlU3RyZWFtaW5nKCl7dGhpcy5zdHJlYW1pbmc9IXRoaXMuc3RyZWFtaW5nLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS10b2dnbGUiLHtkZXRhaWw6e3N0cmVhbWluZzp0aGlzLnN0cmVhbWluZ30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDbGVhckxvZ3MoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGVhci1sb2dzIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbjEodGhpcyxFKX1zdGF0aWN7bjEoYSxyKX19O3JldHVybiBCPWF9KSgpfSk7dmFyIFdhYSxZOXQsb0JhLEdhYT11KCgpPT57dmUoKTtXYWE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LFk5dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sb0JhPSgoKT0+e2xldCB0PVt1ZSgic3otbmV0d29yay1kbnMtdmlldyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtEbnNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxXYWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWNvcmRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJyZWNvcmRzImluIGYsImhhcyIpLGdldDppKGY9PmYucmVjb3JkcywiZ2V0Iiksc2V0OmkoKGYscCk9PntmLnJlY29yZHM9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLFdhYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEwMDBweDsiPgogICAgICA8c3otbmV0d29yay1kbnMtdmlldwogICAgICAgIC5yZWNvcmRzPSR7W3tkb21haW46InByLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIxOTUuMjAxLjk4LjIzMiJ9LHtkb21haW46Im91dGxpbmUudGFzay52YyIsdHlwZToiQSIsdmFsdWU6IjE5NS4yMDEuOTguMjMyIn0se2RvbWFpbjoibnMxLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIyMTIuOTUuOTkuMTMwIn0se2RvbWFpbjoiYmxldS5kZSIsdHlwZToiQSIsdmFsdWU6IjIxMi45NS45OS4xMzAifSx7ZG9tYWluOiJtYWlsLmJsZXUuZGUiLHR5cGU6Ik1YIix2YWx1ZToiMTAgbWFpbC5ibGV1LmRlIn1dfQogICAgICA+PC9zei1uZXR3b3JrLWRucy12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTmV0d29yayJdOyNlPVk5dCh0aGlzLG8sW10pO2dldCByZWNvcmRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlY29yZHMoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zeW5jLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnN5bmMtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgODBweCAyZnIgMTAwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciA4MHB4IDJmciAxMDBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmRvbWFpbiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnR5cGUtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRlbGV0ZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuZGVsZXRlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj5NYW5hZ2UgRE5TIHJlY29yZHMgc3luY2VkIHdpdGggQ2xvdWRmbGFyZTwvc3Bhbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJzeW5jLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU3luYygpfT4KICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMCAxLTkgOW05LTlhOSA5IDAgMCAwLTktOW05IDlIM205IDlhOSA5IDAgMCAxLTktOW05IDljMS42NiAwIDMtNC4wMyAzLTlzLTEuMzQtOS0zLTltMCAxOGMtMS42NiAwLTMtNC4wMy0zLTlzMS4zNC05IDMtOSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBTeW5jIENsb3VkZmxhcmUKICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5Eb21haW48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5UeXBlPC9zcGFuPgogICAgICAgICAgPHNwYW4+VmFsdWU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZWNvcmRzLmxlbmd0aD4wP3RoaXMucmVjb3Jkcy5tYXAoZD0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb21haW4iPiR7ZC5kb21haW59PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0idHlwZS1iYWRnZSI+JHtkLnR5cGV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZhbHVlIj4ke2QudmFsdWV9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZWxldGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGUoZCl9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKTp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIEROUyByZWNvcmRzIGZvdW5kPC9kaXY+CiAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVN5bmMoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzeW5jIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUoZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlIix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWTl0KHRoaXMsbCl9c3RhdGlje1k5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgSzl0LGFhZSxsQmEsWWFhPXUoKCk9Pnt2ZSgpO0s5dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sYWFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxsQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1uZXR3b3JrLWRvbWFpbnMtdmlldyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtEb21haW5zVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6QXJyYXl9KV0sYz1bUCh7dHlwZTpPYmplY3R9KV0sSzl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tYWlucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iZG9tYWlucyJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmRvbWFpbnMsImdldCIpLHNldDppKChtLHYpPT57bS5kb21haW5zPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxLOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ic3RhdHMiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5zdGF0cywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnN0YXRzPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxLOXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LW5ldHdvcmstZG9tYWlucy12aWV3CiAgICAgICAgLmRvbWFpbnM9JHtbe2RvbWFpbjoiYmxldS5kZSIscHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDoyLGNlcnRpZmljYXRlU3RhdHVzOiJ2YWxpZCIsZXhwaXJlc0luOiI1MiBkYXlzIn0se2RvbWFpbjoidGFzay52YyIscHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDoxLGNlcnRpZmljYXRlU3RhdHVzOiJ2YWxpZCIsZXhwaXJlc0luOiI1MiBkYXlzIn0se2RvbWFpbjoiZXhhbXBsZS5jb20iLHByb3ZpZGVyOiJjbG91ZGZsYXJlIixzZXJ2aWNlQ291bnQ6MCxjZXJ0aWZpY2F0ZVN0YXR1czoiZXhwaXJpbmciLGV4cGlyZXNJbjoiNyBkYXlzIn1dfQogICAgICAgIC5zdGF0cz0ke3t0b3RhbDozLHZhbGlkOjIsZXhwaXJpbmc6MSxleHBpcmVkOjB9fQogICAgICA+PC9zei1uZXR3b3JrLWRvbWFpbnMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1hYWUodGhpcyxvLFtdKTtnZXQgZG9tYWlucygpe3JldHVybiB0aGlzLiNlfXNldCBkb21haW5zKGgpe3RoaXMuI2U9aH0jdD0oYWFlKHRoaXMsbCksYWFlKHRoaXMsZCx7dG90YWw6MCx2YWxpZDowLGV4cGlyaW5nOjAsZXhwaXJlZDowfSkpO2dldCBzdGF0cygpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0cyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN5bmMtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc3luYy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDgwcHggMTAwcHggMTAwcHggODBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmciA4MHB4IDEwMHB4IDEwMHB4IDgwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmRvbWFpbi1uYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAucHJvdmlkZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UudmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmV4cGlyaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXhwaXJlZCwKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmV4cGlyZXMgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC52aWV3LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudmlldy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2dldCB0aWxlcygpe3JldHVyblt7aWQ6InRvdGFsIix0aXRsZToiVG90YWwgRG9tYWlucyIsdmFsdWU6dGhpcy5zdGF0cy50b3RhbCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpnbG9iZSJ9LHtpZDoidmFsaWQiLHRpdGxlOiJWYWxpZCBDZXJ0aWZpY2F0ZXMiLHZhbHVlOnRoaXMuc3RhdHMudmFsaWQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hpZWxkQ2hlY2siLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJleHBpcmluZyIsdGl0bGU6IkV4cGlyaW5nIFNvb24iLHZhbHVlOnRoaXMuc3RhdHMuZXhwaXJpbmcsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hpZWxkQWxlcnQiLGNvbG9yOnRoaXMuc3RhdHMuZXhwaXJpbmc+MD8iI2Y1OWUwYiI6dm9pZCAwfSx7aWQ6ImV4cGlyZWQiLHRpdGxlOiJFeHBpcmVkL1BlbmRpbmciLHZhbHVlOnRoaXMuc3RhdHMuZXhwaXJlZCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjaXJjbGVPZmYiLGNvbG9yOnRoaXMuc3RhdHMuZXhwaXJlZD4wPyIjZWY0NDQ0Ijp2b2lkIDB9XX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZGVzY3JpcHRpb24iPk1hbmFnZSBkb21haW5zIGFuZCBTU0wgY2VydGlmaWNhdGVzPC9zcGFuPgogICAgICAgIDxidXR0b24gY2xhc3M9InN5bmMtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTeW5jKCl9PlN5bmMgQ2xvdWRmbGFyZTwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMudGlsZXN9CiAgICAgICAgLm1pblRpbGVXaWR0aD0kezIwMH0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5Eb21haW48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5Qcm92aWRlcjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlNlcnZpY2VzPC9zcGFuPgogICAgICAgICAgPHNwYW4+Q2VydGlmaWNhdGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5FeHBpcmVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+QWN0aW9uczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZG9tYWlucy5sZW5ndGg+MD90aGlzLmRvbWFpbnMubWFwKGg9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3ciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9tYWluLW5hbWUiPiR7aC5kb21haW59PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvdmlkZXIiPiR7aC5wcm92aWRlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPiR7aC5zZXJ2aWNlQ291bnR9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7aC5jZXJ0aWZpY2F0ZVN0YXR1c30iPiR7aC5jZXJ0aWZpY2F0ZVN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhwaXJlcyI+JHtoLmV4cGlyZXNJbnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idmlldy1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVZpZXcoaCl9PlZpZXc8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCk6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBkb21haW5zIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU3luYygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN5bmMiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVZpZXcoaCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldyIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGFhZSh0aGlzLGYpfXN0YXRpY3thYWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIFo5dCxpYWUsY0JhLEthYT11KCgpPT57dmUoKTtaOXQ9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGlhZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sY0JhPSgoKT0+e2xldCB0PVt1ZSgic3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelJlZ2lzdHJ5QWR2ZXJ0aXNlbWVudCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLFo5dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ic3RhdHVzImluIG0sImhhcyIpLGdldDppKG09Pm0uc3RhdHVzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uc3RhdHVzPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxaOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWdpc3RyeVVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4icmVnaXN0cnlVcmwiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5yZWdpc3RyeVVybCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnJlZ2lzdHJ5VXJsPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxaOXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA4MDBweDsiPgogICAgICA8c3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudAogICAgICAgIHN0YXR1cz0icnVubmluZyIKICAgICAgICByZWdpc3RyeVVybD0ibG9jYWxob3N0OjMwMDAvdjIiCiAgICAgID48L3N6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1pYWUodGhpcyxvLCJzdG9wcGVkIik7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNlfXNldCBzdGF0dXMoaCl7dGhpcy4jZT1ofSN0PShpYWUodGhpcyxsKSxpYWUodGhpcyxkLCIiKSk7Z2V0IHJlZ2lzdHJ5VXJsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJlZ2lzdHJ5VXJsKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1pY29uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5kZWZhdWx0LWJhZGdlIHsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmNhcmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmluZm8taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaW5mby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgIH0KCiAgICAgIC5pbmZvLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLm1hbmFnZS1saW5rIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5tYW5hZ2UtbGluazpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5xdWljay1zdGFydCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQtZGVzYyB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLmNvZGUtYmxvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiIzBhMGEwYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuY29kZS1saW5lIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLmNvZGUtbGluZTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuY29kZS1jb21tZW50IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2YjcyODAiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY29kZS1jb21tYW5kIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjZTRlNGU3Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktaWNvbiI+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj4KICAgICAgICAgICAgICBSZWdpc3RyeSBBZHZlcnRpc2VtZW50CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRlZmF1bHQtYmFkZ2UiPkRlZmF1bHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkNvbnRhaW5lciByZWdpc3RyeSBmb3IgeW91ciBzZXJ2aWNlczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWdyaWQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5TdGF0dXM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc3RhdHVzfSI+JHt0aGlzLnN0YXR1cz09PSJydW5uaW5nIj8iUnVubmluZyI6IlN0b3BwZWQifTwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5SZWdpc3RyeSBVUkw8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPiR7dGhpcy5yZWdpc3RyeVVybH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5BdXRoZW50aWNhdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibWFuYWdlLWxpbmsiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1hbmFnZVRva2VucygpfT5NYW5hZ2UgVG9rZW5zPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrLXN0YXJ0LXRpdGxlIj5RdWljayBTdGFydDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydC1kZXNjIj5UbyBwdXNoIGltYWdlcyB0byB0aGUgcmVnaXN0cnksIHVzZSBhIENJIG9yIEdsb2JhbCB0b2tlbjo8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWVudCI+IyBMb2dpbiB0byB0aGUgcmVnaXN0cnk8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tYW5kIj5kb2NrZXIgbG9naW4gJHt0aGlzLnJlZ2lzdHJ5VXJsLnNwbGl0KCIvIilbMF19IC11IHJlZ2lzdHJ5IC1wIFlPVVJfVE9LRU48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tZW50Ij4jIFRhZyBhbmQgcHVzaCB5b3VyIGltYWdlPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWFuZCI+ZG9ja2VyIHRhZyBteWFwcCAke3RoaXMucmVnaXN0cnlVcmwuc3BsaXQoIi8iKVswXX0vbXlzZXJ2aWNlOmxhdGVzdDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGluZSBjb2RlLWNvbW1hbmQiPmRvY2tlciBwdXNoICR7dGhpcy5yZWdpc3RyeVVybC5zcGxpdCgiLyIpWzBdfS9teXNlcnZpY2U6bGF0ZXN0PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVNYW5hZ2VUb2tlbnMoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYW5hZ2UtdG9rZW5zIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaWFlKHRoaXMsZil9c3RhdGlje2lhZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgWmFhLFE5dCxkQmEsUWFhPXUoKCk9Pnt2ZSgpO1phYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sUTl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxkQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6UmVnaXN0cnlFeHRlcm5hbFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLFphYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZ2lzdHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InJlZ2lzdHJpZXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5yZWdpc3RyaWVzLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YucmVnaXN0cmllcz1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksWmFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIix1c2VybmFtZToibXl1c2VyIix0eXBlOiJkb2NrZXJodWIifSx7aWQ6IjIiLG5hbWU6IkdpdEh1YiBDb250YWluZXIgUmVnaXN0cnkiLHVybDoiZ2hjci5pbyIsdXNlcm5hbWU6Im15b3JnIix0eXBlOiJnaGNyIn1dfQogICAgICA+PC9zei1yZWdpc3RyeS1leHRlcm5hbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9UTl0KHRoaXMsbyxbXSk7Z2V0IHJlZ2lzdHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVnaXN0cmllcyhkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWljb24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAucmVnaXN0cnktZGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LXVybCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1pY29uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuZW1wdHktdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj5FeHRlcm5hbCBSZWdpc3RyaWVzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkFkZCBjcmVkZW50aWFscyBmb3IgcHJpdmF0ZSBEb2NrZXIgcmVnaXN0cmllczwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFkZCgpfT5BZGQgUmVnaXN0cnk8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMucmVnaXN0cmllcy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWxpc3QiPgogICAgICAgICAgJHt0aGlzLnJlZ2lzdHJpZXMubWFwKGQ9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWl0ZW0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWluZm8iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktaWNvbiI+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1uYW1lIj4ke2QubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktdXJsIj4ke2QudXJsfSAoJHtkLnVzZXJuYW1lfSk8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWFjdGlvbnMiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRWRpdChkKX0+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZShkKX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJlbXB0eS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMy4yNyA2Ljk2IDEyIDEyLjAxIDIwLjczIDYuOTYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjIyLjA4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10aXRsZSI+Tm8gZXh0ZXJuYWwgcmVnaXN0cmllczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktZGVzY3JpcHRpb24iPkFkZCBjcmVkZW50aWFscyBmb3IgRG9ja2VyIEh1YiwgR2l0SHViIENvbnRhaW5lciBSZWdpc3RyeSwgb3Igb3RoZXIgcHJpdmF0ZSByZWdpc3RyaWVzLjwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZW1wdHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBZGQoKX0+QWRkIEV4dGVybmFsIFJlZ2lzdHJ5PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CiAgICBgfWhhbmRsZUFkZCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFkZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRWRpdChkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlZGl0Iix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUoZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlIix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUTl0KHRoaXMsbCl9c3RhdGlje1E5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgWGFhLFg5dCx1QmEsSmFhPXUoKCk9Pnt2ZSgpO1hhYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sWDl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSx1QmE9KCgpPT57bGV0IHQ9W3VlKCJzei1zZXJ2aWNlcy1saXN0LXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pTZXJ2aWNlc0xpc3RWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxYYWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VydmljZXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZXJ2aWNlcywiZ2V0Iiksc2V0OmkoKGYscCk9PntmLnNlcnZpY2VzPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxYYWEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2VzLWxpc3QtdmlldwogICAgICAgIC5zZXJ2aWNlcz0ke1t7bmFtZToidGVzdC1uZ2lueCIsaW1hZ2U6Im5naW54OmFscGluZSIsZG9tYWluOiJhcHAuYmxldS5kZSIsc3RhdHVzOiJydW5uaW5nIn0se25hbWU6ImhlbGxvLXdvcmxkIixpbWFnZToibG9jYWxob3N0OjMwMDAvaGVsbG8td29ybGQ6bGF0ZXN0Iixkb21haW46ImhlbGxvLnRhc2sudmMiLHN0YXR1czoicnVubmluZyJ9LHtuYW1lOiJ0ZXN0LXYyIixpbWFnZToibG9jYWxob3N0OjMwMDAvdGVzdC1yZWdpc3RyeTp2MSIsZG9tYWluOm51bGwsc3RhdHVzOiJydW5uaW5nIn0se25hbWU6ImFwaS1zZXJ2aWNlIixpbWFnZToibm9kZToxOC1hbHBpbmUiLGRvbWFpbjoiYXBpLmV4YW1wbGUuY29tIixzdGF0dXM6InN0b3BwZWQifV19CiAgICAgID48L3N6LXNlcnZpY2VzLWxpc3Qtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9WDl0KHRoaXMsbyxbXSk7Z2V0IHNlcnZpY2VzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlcnZpY2VzKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDJmciAxLjVmciAxMDBweCAyMDBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMmZyIDEuNWZyIDEwMHB4IDIwMHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAudGFibGUtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWU6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuaW1hZ2UgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZG9tYWluLWxpbmsgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAuZG9tYWluLWxpbms6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnJ1bm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnN0YXJ0aW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc3RvcCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnN0YXJ0IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5yZXN0YXJ0IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPk5hbWU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5JbWFnZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlN0YXR1czwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNlcnZpY2VzLmxlbmd0aD4wP3RoaXMuc2VydmljZXMubWFwKGQ9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3ciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VydmljZS1uYW1lIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZXJ2aWNlQ2xpY2soZCl9PiR7ZC5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlIiB0aXRsZT0iJHtkLmltYWdlfSI+JHtkLmltYWdlfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgJHtkLmRvbWFpbj93YDxhIGNsYXNzPSJkb21haW4tbGluayIgaHJlZj0iaHR0cHM6Ly8ke2QuZG9tYWlufSIgdGFyZ2V0PSJfYmxhbmsiPiR7ZC5kb21haW59PC9hPmA6Ii0ifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtkLnN0YXR1c30iPiR7ZC5zdGF0dXN9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGlvbnMiPgogICAgICAgICAgICAgICR7ZC5zdGF0dXM9PT0icnVubmluZyI/d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHN0b3AiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihkLCJzdG9wIil9PlN0b3A8L2J1dHRvbj5gOndgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzdGFydCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGQsInN0YXJ0Iil9PlN0YXJ0PC9idXR0b24+YH0KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHJlc3RhcnQiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihkLCJyZXN0YXJ0Iil9PlJlc3RhcnQ8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGQsImRlbGV0ZSIpfT5EZWxldGU8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCk6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBzZXJ2aWNlcyBkZXBsb3llZDwvZGl2PgogICAgICAgIGB9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTZXJ2aWNlQ2xpY2soZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1jbGljayIse2RldGFpbDpkLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aW9uKGQsZil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1hY3Rpb24iLHtkZXRhaWw6e3NlcnZpY2U6ZCxhY3Rpb246Zn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWDl0KHRoaXMsbCl9c3RhdGlje1g5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgSjl0LHNhZSxwQmEsZWlhPXUoKCk9Pnt2ZSgpO0o5dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sc2FlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxwQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pTZXJ2aWNlc0JhY2t1cHNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOkFycmF5fSldLEo5dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNjaGVkdWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ic2NoZWR1bGVzImluIG0sImhhcyIpLGdldDppKG09Pm0uc2NoZWR1bGVzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uc2NoZWR1bGVzPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxKOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJiYWNrdXBzImluIG0sImhhcyIpLGdldDppKG09Pm0uYmFja3VwcywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmJhY2t1cHM9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLEo5dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otc2VydmljZXMtYmFja3Vwcy12aWV3CiAgICAgICAgLnNjaGVkdWxlcz0ke1t7aWQ6IjEiLHNjb3BlOiJBbGwgU2VydmljZXMiLHJldGVudGlvbjoiRDo3LCBXOjQsIE06MTIiLHNjaGVkdWxlOiIwIDIgKiAqICoiLGxhc3RSdW46IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixuZXh0UnVuOiIxLzMvMjAyNiwgMjowMDowMCBBTSIsc3RhdHVzOiJhY3RpdmUifV19CiAgICAgICAgLmJhY2t1cHM9JHtbe2lkOiIxIixzZXJ2aWNlOiJ0ZXN0LW5naW54IixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIl19LHtpZDoiMiIsc2VydmljZToiaGVsbG8td29ybGQiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDIgQU0iLHNpemU6IjIxLjUgTUIiLGluY2x1ZGVzOlsiSW1hZ2UiXX0se2lkOiIzIixzZXJ2aWNlOiJ0ZXN0LWNoLWZpbmFsIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAwIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIiwiY2xpY2tob3VzZSJdfV19CiAgICAgID48L3N6LXNlcnZpY2VzLWJhY2t1cHMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9c2FlKHRoaXMsbyxbXSk7Z2V0IHNjaGVkdWxlcygpe3JldHVybiB0aGlzLiNlfXNldCBzY2hlZHVsZXMoaCl7dGhpcy4jZT1ofSN0PShzYWUodGhpcyxsKSxzYWUodGhpcyxkLFtdKSk7Z2V0IGJhY2t1cHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja3VwcyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnNjaGVkdWxlcy1oZWFkZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMS41ZnIgMS41ZnIgODBweCAxMjBweDsKICAgICAgfQoKICAgICAgLmJhY2t1cHMtaGVhZGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDEuNWZyIDEwMHB4IDFmciAxMjBweDsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnNjaGVkdWxlcy1yb3cgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMS41ZnIgMS41ZnIgODBweCAxMjBweDsKICAgICAgfQoKICAgICAgLmJhY2t1cHMtcm93IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDEuNWZyIDEwMHB4IDFmciAxMjBweDsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAudGFibGUtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5mYWlsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm1ldGEtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5pbmNsdWRlcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmluY2x1ZGUtYmFkZ2UgewogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnJvdy1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuaWNvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QmFja3VwIFNjaGVkdWxlczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkNvbmZpZ3VyZSBhdXRvbWF0ZWQgYmFja3VwIHNjaGVkdWxlcyBmb3IgeW91ciBzZXJ2aWNlczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciBzY2hlZHVsZXMtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPlNjb3BlPC9zcGFuPgogICAgICAgICAgPHNwYW4+UmV0ZW50aW9uPC9zcGFuPgogICAgICAgICAgPHNwYW4+U2NoZWR1bGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5MYXN0IFJ1bjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPk5leHQgUnVuPC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+QWN0aW9uczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2NoZWR1bGVzLm1hcChoPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IHNjaGVkdWxlcy1yb3ciPgogICAgICAgICAgICA8c3Bhbj4ke2guc2NvcGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0IiB0aXRsZT0iS2VlcDogJHtoLnJldGVudGlvbn0iPiR7aC5yZXRlbnRpb259PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2guc2NoZWR1bGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2gubGFzdFJ1bnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtdGV4dCI+JHtoLm5leHRSdW58fCItIn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtoLnN0YXR1c30iIHRpdGxlPSIke2guZXJyb3J8fCIifSI+CiAgICAgICAgICAgICAgICAke2guc3RhdHVzPT09ImFjdGl2ZSI/IkFjdGl2ZSI6aC5zdGF0dXM9PT0iZmFpbGVkIj8iRmFpbGVkIjoiRGlzYWJsZWQifQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icm93LWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iUnVuIGJhY2t1cCBub3ciIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJ1bk5vdyhoKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwb2x5Z29uIHBvaW50cz0iNSwzIDE5LDEyIDUsMjEiLz48L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IiR7aC5zdGF0dXM9PT0iZGlzYWJsZWQiPyJFbmFibGUiOiJEaXNhYmxlIn0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVRvZ2dsZShoKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgJHtoLnN0YXR1cz09PSJkaXNhYmxlZCI/d2A8cG9seWxpbmUgcG9pbnRzPSIyMCA2IDkgMTcgNCAxMiI+PC9wb2x5bGluZT5gOndgPHJlY3QgeD0iNiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMSIvPmB9CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiBkYW5nZXIiIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZVNjaGVkdWxlKGgpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVJbXBvcnQoKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTcgOCAxMiAzIDcgOCIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjMiIHgyPSIxMiIgeTI9IjE1Ii8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBJbXBvcnQgQmFja3VwCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZVNjaGVkdWxlKCl9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDcmVhdGUgU2NoZWR1bGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QWxsIEJhY2t1cHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Ccm93c2UgYW5kIG1hbmFnZSBhbGwgYmFja3VwcyBhY3Jvc3Mgc2VydmljZXM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIgYmFja3Vwcy1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+U2VydmljZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkNyZWF0ZWQ8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TaXplPC9zcGFuPgogICAgICAgICAgPHNwYW4+SW5jbHVkZXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5iYWNrdXBzLm1hcChoPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IGJhY2t1cHMtcm93Ij4KICAgICAgICAgICAgPHNwYW4+JHtoLnNlcnZpY2V9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2guY3JlYXRlZEF0fTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtdGV4dCI+JHtoLnNpemV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5jbHVkZXMtbGlzdCI+CiAgICAgICAgICAgICAgJHtoLmluY2x1ZGVzLm1hcChtPT53YDxzcGFuIGNsYXNzPSJpbmNsdWRlLWJhZGdlIj4ke219PC9zcGFuPmApfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyb3ctYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJEb3dubG9hZCBiYWNrdXAiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURvd25sb2FkKGgpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI3IDEwIDEyIDE1IDE3IDEwIi8+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE1IiB4Mj0iMTIiIHkyPSIzIi8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiBkYW5nZXIiIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZUJhY2t1cChoKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyw2IDUsNiAyMSw2Ii8+PHBhdGggZD0iTTE5LDZ2MTRhMiwyLDAsMCwxLTIsMkg3YTIsMiwwLDAsMS0yLTJWNm0zLDBWNGEyLDIsMCwwLDEsMi0yaDRhMiwyLDAsMCwxLDIsMnYyIi8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1oYW5kbGVJbXBvcnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbXBvcnQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNyZWF0ZVNjaGVkdWxlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY3JlYXRlLXNjaGVkdWxlIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSdW5Ob3coaCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLW5vdyIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVG9nZ2xlKGgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRvZ2dsZS1zY2hlZHVsZSIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlU2NoZWR1bGUoaCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLXNjaGVkdWxlIix7ZGV0YWlsOmgsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEb3dubG9hZChoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb3dubG9hZCIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlQmFja3VwKGgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1iYWNrdXAiLHtkZXRhaWw6aCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxzYWUodGhpcyxmKX1zdGF0aWN7c2FlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBDMyxxbixmQmEsdGlhPXUoKCk9Pnt2ZSgpO0MzPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxxbj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZkJhPSgoKT0+e2xldCB0PVt1ZSgic3otc2VydmljZS1kZXRhaWwtdmlldyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdO3ZhciBBPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelNlcnZpY2VEZXRhaWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpPYmplY3R9KV0scD1bUCh7dHlwZTpBcnJheX0pXSx2PVtQKHt0eXBlOkFycmF5fSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOk9iamVjdH0pXSxPPVtQKHt0eXBlOlN0cmluZ30pXSxCPVtpZSgpXSxDMyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InNlcnZpY2UiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zZXJ2aWNlLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0Yuc2VydmljZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksQzModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4ic3RhdHMiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zdGF0cywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnN0YXRzPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCxmKSxDMyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJhY2t1cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+ImJhY2t1cHMiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5iYWNrdXBzLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YuYmFja3Vwcz1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGgsbSksQzModGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJsb2dzImluIEYsImhhcyIpLGdldDppKEY9PkYubG9ncywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmxvZ3M9WX0sInNldCIpfSxtZXRhZGF0YTokfSxiLGcpLEMzKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RyZWFtaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJzdHJlYW1pbmciaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zdHJlYW1pbmcsImdldCIpLHNldDppKChGLFkpPT57Ri5zdHJlYW1pbmc9WX0sInNldCIpfSxtZXRhZGF0YTokfSxrLE0pLEMzKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29ya3NwYWNlRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+IndvcmtzcGFjZUVudmlyb25tZW50ImluIEYsImhhcyIpLGdldDppKEY9PkYud29ya3NwYWNlRW52aXJvbm1lbnQsImdldCIpLHNldDppKChGLFkpPT57Ri53b3Jrc3BhY2VFbnZpcm9ubWVudD1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LF8sUyksQzModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3Jrc3BhY2VQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJ3b3Jrc3BhY2VQYXRoImluIEYsImhhcyIpLGdldDppKEY9PkYud29ya3NwYWNlUGF0aCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLndvcmtzcGFjZVBhdGg9WX0sInNldCIpfSxtZXRhZGF0YTokfSxMLEUpLEMzKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+ImN1cnJlbnRWaWV3ImluIEYsImhhcyIpLGdldDppKEY9PkYuY3VycmVudFZpZXcsImdldCIpLHNldDppKChGLFkpPT57Ri5jdXJyZW50Vmlldz1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMseiksQzMobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCxyKSxBPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3tuYW1lOiJ0ZXN0LW5naW54IixzdGF0dXM6InJ1bm5pbmciLGltYWdlOiJuZ2lueDphbHBpbmUiLHBvcnQ6ODAsZG9tYWluOiJhcHAuYmxldS5kZSIsY29udGFpbmVySWQ6InBjaGJicjlmanI0ZyIsY3JlYXRlZDoiMTEvMTgvMjAyNSwgMjowNjo1NSBQTSIsdXBkYXRlZDoiMTEvMjYvMjAyNSwgNDowNTo0NiBQTSIscmVnaXN0cnk6IkRvY2tlciBIdWIiLHJlcG9zaXRvcnk6Im5naW54Iix0YWc6ImFscGluZSJ9fQogICAgICAgIC5zdGF0cz0ke3tjcHU6LjUsbWVtb3J5OiIzMi4xIE1CIixtZW1vcnlMaW1pdDoiNjEuMyBHQiIsbmV0d29ya0luOiI2LjQgS0IiLG5ldHdvcmtPdXQ6IjI1MiBCIn19CiAgICAgICAgLmJhY2t1cHM9JHtbe2lkOiIxIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMS45NiBNQiIsdHlwZToiRG9ja2VyIEltYWdlIn0se2lkOiIyIixjcmVhdGVkQXQ6IjExLzI3LzIwMjUsIDE6NDI6MjYgUE0iLHNpemU6IjUxLjc2IE1CIix0eXBlOiJEb2NrZXIgSW1hZ2UifV19CiAgICAgICAgLmxvZ3M9JHtbe3RpbWVzdGFtcDoiMjAyNC0wMS0wMiAxMDoxNTozMiIsbWVzc2FnZTonMTkyLjE2OC4xLjEwMCAtIC0gWzAyL0phbi8yMDI0OjEwOjE1OjMyICswMDAwXSAiR0VUIC8gSFRUUC8xLjEiIDIwMCA2MTInfSx7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMwIixtZXNzYWdlOicxOTIuMTY4LjEuMTAwIC0gLSBbMDIvSmFuLzIwMjQ6MTA6MTU6MzAgKzAwMDBdICJHRVQgL2Zhdmljb24uaWNvIEhUVFAvMS4xIiA0MDQgMTUzJ31dfQogICAgICA+PC9zei1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1xbih0aGlzLG8se25hbWU6IiIsc3RhdHVzOiJzdG9wcGVkIixpbWFnZToiIixwb3J0OjAsZG9tYWluOm51bGwsY29udGFpbmVySWQ6IiIsY3JlYXRlZDoiIix1cGRhdGVkOiIiLHJlZ2lzdHJ5OiIiLHJlcG9zaXRvcnk6IiIsdGFnOiIifSk7Z2V0IHNlcnZpY2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VydmljZSgkKXt0aGlzLiNlPSR9I3Q9KHFuKHRoaXMsbCkscW4odGhpcyxkLHtjcHU6MCxtZW1vcnk6IjAgTUIiLG1lbW9yeUxpbWl0OiIwIEdCIixuZXR3b3JrSW46IjAgQiIsbmV0d29ya091dDoiMCBCIn0pKTtnZXQgc3RhdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdHMoJCl7dGhpcy4jdD0kfSNyPShxbih0aGlzLGYpLHFuKHRoaXMsaCxbXSkpO2dldCBiYWNrdXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJhY2t1cHMoJCl7dGhpcy4jcj0kfSNhPShxbih0aGlzLG0pLHFuKHRoaXMsYixbXSkpO2dldCBsb2dzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxvZ3MoJCl7dGhpcy4jYT0kfSNpPShxbih0aGlzLGcpLHFuKHRoaXMsaywhMSkpO2dldCBzdHJlYW1pbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3RyZWFtaW5nKCQpe3RoaXMuI2k9JH0jcz0ocW4odGhpcyxNKSxxbih0aGlzLF8sbnVsbCkpO2dldCB3b3Jrc3BhY2VFbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNzfXNldCB3b3Jrc3BhY2VFbnZpcm9ubWVudCgkKXt0aGlzLiNzPSR9I249KHFuKHRoaXMsUykscW4odGhpcyxMLCIvIikpO2dldCB3b3Jrc3BhY2VQYXRoKCl7cmV0dXJuIHRoaXMuI259c2V0IHdvcmtzcGFjZVBhdGgoJCl7dGhpcy4jbj0kfSNvPShxbih0aGlzLEUpLHFuKHRoaXMsQywiZGV0YWlscyIpKTtnZXQgY3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy4jb31zZXQgY3VycmVudFZpZXcoJCl7dGhpcy4jbz0kfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5iYWNrLWxpbmsgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWxpbms6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgewogICAgICAgIC5jb250ZW50IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tYWluLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuY2FyZC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuY2FyZC10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNhcmQtc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jYXJkLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICB9CgogICAgICAuY2FyZC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZGV0YWlsLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgfQoKICAgICAgLmRldGFpbC12YWx1ZSBhIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbC12YWx1ZSBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0LWl0ZW0gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgfQoKICAgICAgLnN0YXQtbGFiZWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdGF0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3RhdC1zdWJ2YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLmJhY2t1cC1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuYmFja3VwLWRhdGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYmFja3VwLW1ldGEgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuYmFja3VwLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWctYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgOmhvc3QoLndvcmtzcGFjZS1tb2RlKSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtYmFjay1saW5rIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtYmFjay1saW5rOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZDRlZDgiLCIjOTNjNWZkIil9OwogICAgICB9CgogICAgICAud29ya3NwYWNlLXNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utc3RhdHVzLWJhZGdlLnJ1bm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXc9PT0id29ya3NwYWNlIj90aGlzLnJlbmRlcldvcmtzcGFjZVZpZXcoKTp0aGlzLnJlbmRlckRldGFpbHNWaWV3KCl9cmVuZGVyV29ya3NwYWNlVmlldygpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ3b3Jrc3BhY2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ3b3Jrc3BhY2UtYmFjay1saW5rIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDbG9zZVdvcmtzcGFjZSgpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTUgMTggOSAxMiAxNSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgQmFjayB0byBEZXRhaWxzCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3b3Jrc3BhY2Utc2VydmljZS1uYW1lIj4ke3RoaXMuc2VydmljZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3b3Jrc3BhY2Utc3RhdHVzLWJhZGdlICR7dGhpcy5zZXJ2aWNlLnN0YXR1c30iPjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3b3Jrc3BhY2UtY29udGFpbmVyIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZSAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLndvcmtzcGFjZUVudmlyb25tZW50fT48L2RlZXMtd29ya3NwYWNlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGV0YWlsc1ZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrLWxpbmsiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUJhY2soKX0+CiAgICAgICAgICA8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTUgMTggOSAxMiAxNSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1oZWFkZXIiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyNHB4OyI+CiAgICAgICAgPGgxIGNsYXNzPSJzZXJ2aWNlLW5hbWUiPiR7dGhpcy5zZXJ2aWNlLm5hbWV9PC9oMT4KICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7dGhpcy5zZXJ2aWNlLnN0YXR1c30iPiR7dGhpcy5zZXJ2aWNlLnN0YXR1c308L3NwYW4+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1jb250ZW50Ij4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+U2VydmljZSBEZXRhaWxzPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtbGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkltYWdlPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5pbWFnZX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+UG9ydDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UucG9ydH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+RG9tYWluPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAke3RoaXMuc2VydmljZS5kb21haW4/d2A8YSBocmVmPSJodHRwczovLyR7dGhpcy5zZXJ2aWNlLmRvbWFpbn0iIHRhcmdldD0iX2JsYW5rIj4ke3RoaXMuc2VydmljZS5kb21haW59PC9hPmA6Ii0ifQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+Q29udGFpbmVyIElEPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5jb250YWluZXJJZH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+Q3JlYXRlZDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UuY3JlYXRlZH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+VXBkYXRlZDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UudXBkYXRlZH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUVkaXQoKX0+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBMb2dzIn0KICAgICAgICAgICAgLmxvZ0VudHJpZXM9JHt0aGlzLmxvZ3MubWFwKCQ9Pih7dGltZXN0YW1wOiQudGltZXN0YW1wPy5pbmNsdWRlcz8uKCJUIik/JC50aW1lc3RhbXA6bmV3IERhdGUoJC50aW1lc3RhbXB8fERhdGUubm93KCkpLnRvSVNPU3RyaW5nKCksbGV2ZWw6JC5sZXZlbHx8ImluZm8iLG1lc3NhZ2U6JC5tZXNzYWdlfSkpfQogICAgICAgICAgICAuYXV0b1Njcm9sbD0keyEwfQogICAgICAgICAgICAubWF4RW50cmllcz0kezJlM30KICAgICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciI+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkxpdmUgc3RhdHM8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXRzLWdyaWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+Q1BVPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPiR7dGhpcy5zdGF0cy5jcHUudG9GaXhlZCgxKX0lPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPk1lbW9yeTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIj4ke3RoaXMuc3RhdHMubWVtb3J5fTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXN1YnZhbHVlIj5vZiAke3RoaXMuc3RhdHMubWVtb3J5TGltaXR9PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPk5ldHdvcmsgSW48L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+JHt0aGlzLnN0YXRzLm5ldHdvcmtJbn08L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+TmV0d29yayBPdXQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+JHt0aGlzLnN0YXRzLm5ldHdvcmtPdXR9PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+TWFuYWdlIHNlcnZpY2Ugc3RhdGU8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMtZ3JpZCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2VydmljZS5zdGF0dXM9PT0icnVubmluZyI/d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oInN0b3AiKX0+U3RvcCBTZXJ2aWNlPC9idXR0b24+YDp3YDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbigic3RhcnQiKX0+U3RhcnQgU2VydmljZTwvYnV0dG9uPmB9CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oInJlc3RhcnQiKX0+UmVzdGFydCBTZXJ2aWNlPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVPcGVuV29ya3NwYWNlKCl9PgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBtYXJnaW4tcmlnaHQ6IDRweDsiPgogICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjQgMTcgMTAgMTEgNCA1Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE5IiB4Mj0iMjAiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgT3BlbiBXb3Jrc3BhY2UKICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbigiZGVsZXRlIil9PkRlbGV0ZSBTZXJ2aWNlPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5JbWFnZSBTb3VyY2U8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+JHt0aGlzLnNlcnZpY2UucmVnaXN0cnk9PT0iRG9ja2VyIEh1YiI/IkV4dGVybmFsIGNvbnRhaW5lciByZWdpc3RyeSI6Ik9uZWJveCByZWdpc3RyeSJ9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtbGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlJlZ2lzdHJ5PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5yZWdpc3RyeX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+UmVwb3NpdG9yeTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UucmVwb3NpdG9yeX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+VGFnPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj48c3BhbiBjbGFzcz0idGFnLWJhZGdlIj4ke3RoaXMuc2VydmljZS50YWd9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+QmFja3Vwczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5DcmVhdGUgYW5kIG1hbmFnZSBzZXJ2aWNlIGJhY2t1cHM8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1saXN0Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5iYWNrdXBzLm1hcCgkPT53YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLWluZm8iPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLWRhdGUiPiR7JC5jcmVhdGVkQXR9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtbWV0YSI+JHskLnNpemV9IMK3ICR7JC50eXBlfTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iRG93bmxvYWQiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURvd25sb2FkQmFja3VwKCQpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI3IDEwIDEyIDE1IDE3IDEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTUiIHgyPSIxMiIgeTI9IjMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iUmVzdG9yZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVzdG9yZUJhY2t1cCgkKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjEgNCAxIDEwIDcgMTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMy41MSAxNWE5IDkgMCAxIDAgMi4xMy05LjM2TDEgMTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iRGVsZXRlIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGVCYWNrdXAoJCl9PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZUJhY2t1cCgpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICBDcmVhdGUgQmFja3VwCiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVCYWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmFjayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRWRpdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImVkaXQiLHtkZXRhaWw6dGhpcy5zZXJ2aWNlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aW9uKCQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlcnZpY2UtYWN0aW9uIix7ZGV0YWlsOntzZXJ2aWNlOnRoaXMuc2VydmljZSxhY3Rpb246JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX10b2dnbGVTdHJlYW1pbmcoKXt0aGlzLnN0cmVhbWluZz0hdGhpcy5zdHJlYW1pbmcsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic3RyZWFtLXRvZ2dsZSIse2RldGFpbDp7c3RyZWFtaW5nOnRoaXMuc3RyZWFtaW5nfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNsZWFyTG9ncygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsZWFyLWxvZ3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNyZWF0ZUJhY2t1cCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNyZWF0ZS1iYWNrdXAiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURvd25sb2FkQmFja3VwKCQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRvd25sb2FkLWJhY2t1cCIse2RldGFpbDokLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUmVzdG9yZUJhY2t1cCgkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXN0b3JlLWJhY2t1cCIse2RldGFpbDokLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlQmFja3VwKCQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1iYWNrdXAiLHtkZXRhaWw6JCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU9wZW5Xb3Jrc3BhY2UoKXt0aGlzLndvcmtzcGFjZUVudmlyb25tZW50Pyh0aGlzLmN1cnJlbnRWaWV3PSJ3b3Jrc3BhY2UiLHRoaXMuY2xhc3NMaXN0LmFkZCgid29ya3NwYWNlLW1vZGUiKSk6dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVxdWVzdC13b3Jrc3BhY2UiLHtkZXRhaWw6e3NlcnZpY2U6dGhpcy5zZXJ2aWNlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNsb3NlV29ya3NwYWNlKCl7dGhpcy5jdXJyZW50Vmlldz0iZGV0YWlscyIsdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ3b3Jrc3BhY2UtbW9kZSIpfXVwZGF0ZWQoJCl7c3VwZXIudXBkYXRlZCgkKSwkLmhhcygid29ya3NwYWNlRW52aXJvbm1lbnQiKSYmdGhpcy53b3Jrc3BhY2VFbnZpcm9ubWVudCYmdGhpcy5jdXJyZW50Vmlldz09PSJkZXRhaWxzIiYmKHRoaXMuY3VycmVudFZpZXc9IndvcmtzcGFjZSIsdGhpcy5jbGFzc0xpc3QuYWRkKCJ3b3Jrc3BhY2UtbW9kZSIpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscW4odGhpcyx6KX1zdGF0aWN7cW4oYSxyKX19O3JldHVybiBBPWF9KSgpfSk7dmFyIHJtZSx2ZyxoQmEscmlhPXUoKCk9Pnt2ZSgpO3JtZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdmc9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGhCYT0oKCk9PntsZXQgdD1bdWUoInN6LWFwcC1zdG9yZS12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6QXBwU3RvcmVWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtpZSgpXSxwPVtpZSgpXSxybWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJhcHBzImluIGcsImhhcyIpLGdldDppKGc9PmcuYXBwcywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmFwcHM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLHJtZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkQ2F0ZWdvcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InNlbGVjdGVkQ2F0ZWdvcnkiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5zZWxlY3RlZENhdGVnb3J5LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuc2VsZWN0ZWRDYXRlZ29yeT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsZikscm1lKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InNlYXJjaFF1ZXJ5ImluIGcsImhhcyIpLGdldDppKGc9Pmcuc2VhcmNoUXVlcnksImdldCIpLHNldDppKChnLHkpPT57Zy5zZWFyY2hRdWVyeT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSkscm1lKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1hcHAtc3RvcmUtdmlldwogICAgICAgIC5hcHBzPSR7W3tpZDoid29yZHByZXNzIixuYW1lOiJXb3JkUHJlc3MiLGRlc2NyaXB0aW9uOiJUaGUgd29ybGQncyBtb3N0IHBvcHVsYXIgb3Blbi1zb3VyY2UgY29udGVudCBtYW5hZ2VtZW50IHN5c3RlbSBmb3IgYnVpbGRpbmcgd2Vic2l0ZXMgYW5kIGJsb2dzLiIsY2F0ZWdvcnk6IkNNUyIsaWNvbk5hbWU6ImZpbGUtdGV4dCIsaW1hZ2U6IndvcmRwcmVzczpsYXRlc3QiLHBvcnQ6ODAsZW52VmFyczpbe2tleToiV09SRFBSRVNTX0RCX0hPU1QiLHZhbHVlOiIiLGRlc2NyaXB0aW9uOiJEYXRhYmFzZSBob3N0IGFkZHJlc3MiLHJlcXVpcmVkOiEwfSx7a2V5OiJXT1JEUFJFU1NfREJfVVNFUiIsdmFsdWU6IndvcmRwcmVzcyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIHVzZXJuYW1lIixyZXF1aXJlZDohMH0se2tleToiV09SRFBSRVNTX0RCX1BBU1NXT1JEIix2YWx1ZToiIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgcGFzc3dvcmQiLHJlcXVpcmVkOiEwfSx7a2V5OiJXT1JEUFJFU1NfREJfTkFNRSIsdmFsdWU6IndvcmRwcmVzcyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIG5hbWUiLHJlcXVpcmVkOiEwfV0sdm9sdW1lczpbIi92YXIvd3d3L2h0bWwiXSxlbmFibGVNb25nb0RCOiExLGVuYWJsZVMzOiExfSx7aWQ6ImdpdGVhIixuYW1lOiJHaXRlYSIsZGVzY3JpcHRpb246IkEgbGlnaHR3ZWlnaHQsIHNlbGYtaG9zdGVkIEdpdCBzZXJ2aWNlLiBQYWlubGVzcyBzZXR1cCBmb3IgeW91ciBvd24gY29kZSBob3N0aW5nIHBsYXRmb3JtLiIsY2F0ZWdvcnk6IkRldmVsb3BtZW50IixpY29uTmFtZToiZ2l0LWJyYW5jaCIsaW1hZ2U6ImdpdGVhL2dpdGVhOmxhdGVzdCIscG9ydDozZTMsZW52VmFyczpbe2tleToiR0lURUFfX2RhdGFiYXNlX19EQl9UWVBFIix2YWx1ZToic3FsaXRlMyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIHR5cGUiLHJlcXVpcmVkOiEwfSx7a2V5OiJHSVRFQV9fc2VydmVyX19ST09UX1VSTCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IlB1YmxpYyBVUkwgb2YgdGhlIEdpdGVhIGluc3RhbmNlIixyZXF1aXJlZDohMX1dLHZvbHVtZXM6WyIvZGF0YSJdfSx7aWQ6Imdob3N0IixuYW1lOiJHaG9zdCIsZGVzY3JpcHRpb246IkEgcG93ZXJmdWwgb3Blbi1zb3VyY2UgcHVibGlzaGluZyBwbGF0Zm9ybSBmb3IgcHJvZmVzc2lvbmFsIGJsb2dnZXJzIGFuZCBjb250ZW50IGNyZWF0b3JzLiIsY2F0ZWdvcnk6IkNNUyIsaWNvbk5hbWU6ImJvb2stb3BlbiIsaW1hZ2U6Imdob3N0OmxhdGVzdCIscG9ydDoyMzY4LGVudlZhcnM6W3trZXk6InVybCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IlB1YmxpYyBVUkwgZm9yIHRoZSBHaG9zdCBzaXRlIixyZXF1aXJlZDohMH0se2tleToiZGF0YWJhc2VfX2NsaWVudCIsdmFsdWU6InNxbGl0ZTMiLGRlc2NyaXB0aW9uOiJEYXRhYmFzZSBjbGllbnQgdHlwZSIscmVxdWlyZWQ6ITF9XSx2b2x1bWVzOlsiL3Zhci9saWIvZ2hvc3QvY29udGVudCJdfSx7aWQ6Im5naW54IixuYW1lOiJOZ2lueCIsZGVzY3JpcHRpb246IkhpZ2gtcGVyZm9ybWFuY2UgSFRUUCBzZXJ2ZXIgYW5kIHJldmVyc2UgcHJveHkgd2l0aCBsb3cgcmVzb3VyY2UgY29uc3VtcHRpb24uIixjYXRlZ29yeToiV2ViIFNlcnZlciIsaWNvbk5hbWU6Imdsb2JlIixpbWFnZToibmdpbng6YWxwaW5lIixwb3J0OjgwLHZvbHVtZXM6WyIvdXNyL3NoYXJlL25naW54L2h0bWwiLCIvZXRjL25naW54L2NvbmYuZCJdfSx7aWQ6InJlZGlzIixuYW1lOiJSZWRpcyIsZGVzY3JpcHRpb246IkluLW1lbW9yeSBkYXRhIHN0b3JlIHVzZWQgYXMgYSBkYXRhYmFzZSwgY2FjaGUsIHN0cmVhbWluZyBlbmdpbmUsIGFuZCBtZXNzYWdlIGJyb2tlci4iLGNhdGVnb3J5OiJEYXRhYmFzZSIsaWNvbk5hbWU6ImRhdGFiYXNlIixpbWFnZToicmVkaXM6YWxwaW5lIixwb3J0OjYzNzl9LHtpZDoicG9zdGdyZXMiLG5hbWU6IlBvc3RncmVTUUwiLGRlc2NyaXB0aW9uOiJBZHZhbmNlZCBvcGVuLXNvdXJjZSByZWxhdGlvbmFsIGRhdGFiYXNlIHdpdGggc3Ryb25nIHJlbGlhYmlsaXR5IGFuZCBmZWF0dXJlIHNldC4iLGNhdGVnb3J5OiJEYXRhYmFzZSIsaWNvbk5hbWU6ImRhdGFiYXNlIixpbWFnZToicG9zdGdyZXM6MTYtYWxwaW5lIixwb3J0OjU0MzIsZW52VmFyczpbe2tleToiUE9TVEdSRVNfVVNFUiIsdmFsdWU6InBvc3RncmVzIixkZXNjcmlwdGlvbjoiU3VwZXJ1c2VyIHVzZXJuYW1lIixyZXF1aXJlZDohMH0se2tleToiUE9TVEdSRVNfUEFTU1dPUkQiLHZhbHVlOiIiLGRlc2NyaXB0aW9uOiJTdXBlcnVzZXIgcGFzc3dvcmQiLHJlcXVpcmVkOiEwfSx7a2V5OiJQT1NUR1JFU19EQiIsdmFsdWU6InBvc3RncmVzIixkZXNjcmlwdGlvbjoiRGVmYXVsdCBkYXRhYmFzZSBuYW1lIixyZXF1aXJlZDohMX1dLHZvbHVtZXM6WyIvdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGEiXX1dfQogICAgICA+PC9zei1hcHAtc3RvcmUtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9dmcodGhpcyxvLFtdKTtnZXQgYXBwcygpe3JldHVybiB0aGlzLiNlfXNldCBhcHBzKGIpe3RoaXMuI2U9Yn0jdD0odmcodGhpcyxsKSx2Zyh0aGlzLGQsIkFsbCIpKTtnZXQgc2VsZWN0ZWRDYXRlZ29yeSgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZENhdGVnb3J5KGIpe3RoaXMuI3Q9Yn0jcj0odmcodGhpcyxmKSx2Zyh0aGlzLGgsIiIpKTtnZXQgc2VhcmNoUXVlcnkoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VhcmNoUXVlcnkoYil7dGhpcy4jcj1ifXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuY2F0ZWdvcnktcGlsbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuY2F0ZWdvcnktcGlsbCB7CiAgICAgICAgcGFkZGluZzogNnB4IDE0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LXBpbGw6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jYXRlZ29yeS1waWxsLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQgewogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHggMzZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuYXBwLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuYXBwLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkgewogICAgICAgIC5hcHAtZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CgogICAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICB9CgogICAgICAgIC5zZWFyY2gtaW5wdXQgewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgfQogICAgICB9CgogICAgICAuYXBwLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5hcHAtY2FyZDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCAke3guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjA1KSIsInJnYmEoMCwwLDAsMC4yKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC5jYXJkLXRvcCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hcHAtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ0cHg7CiAgICAgICAgaGVpZ2h0OiA0NHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuYXBwLWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjJweDsKICAgICAgICBoZWlnaHQ6IDIycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFwcC1pY29uIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAuYXBwLWljb24gLmxldHRlci1mYWxsYmFjayB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLmNhcmQtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5hcHAtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAuY2F0ZWdvcnktYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWZmNmZmIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5hcHAtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyOwogICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuY2FyZC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzFhMWExZSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAuaW1hZ2UtdGFnIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBtYXgtd2lkdGg6IDE2MHB4OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA3cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMC44NTsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWxzLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA3cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWxzLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgICAgcGFkZGluZzogNjRweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVtcHR5LWljb24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2dldCBjYXRlZ29yaWVzKCl7bGV0IGI9bmV3IFNldCh0aGlzLmFwcHMubWFwKGc9PmcuY2F0ZWdvcnkpKTtyZXR1cm5bIkFsbCIsLi4uQXJyYXkuZnJvbShiKS5zb3J0KCldfWdldCBmaWx0ZXJlZEFwcHMoKXtsZXQgYj10aGlzLmFwcHM7aWYodGhpcy5zZWxlY3RlZENhdGVnb3J5IT09IkFsbCImJihiPWIuZmlsdGVyKGc9PmcuY2F0ZWdvcnk9PT10aGlzLnNlbGVjdGVkQ2F0ZWdvcnkpKSx0aGlzLnNlYXJjaFF1ZXJ5LnRyaW0oKSl7bGV0IGc9dGhpcy5zZWFyY2hRdWVyeS50cmltKCkudG9Mb3dlckNhc2UoKTtiPWIuZmlsdGVyKHk9PnkubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGcpfHx5LmRlc2NyaXB0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZyl8fHkuY2F0ZWdvcnkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhnKSl9cmV0dXJuIGJ9cmVuZGVyKCl7bGV0IGI9dGhpcy5maWx0ZXJlZEFwcHM7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj5BcHAgU3RvcmU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkRlcGxveSBwb3B1bGFyIGFwcGxpY2F0aW9ucyB3aXRoIG9uZSBjbGljazwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhdGVnb3J5LXBpbGxzIj4KICAgICAgICAgICR7dGhpcy5jYXRlZ29yaWVzLm1hcChnPT53YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJjYXRlZ29yeS1waWxsICR7dGhpcy5zZWxlY3RlZENhdGVnb3J5PT09Zz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e3RoaXMuc2VsZWN0ZWRDYXRlZ29yeT1nfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2d9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC13cmFwcGVyIj4KICAgICAgICAgIDxzdmcgY2xhc3M9InNlYXJjaC1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4Ij48L2NpcmNsZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjIxIiB5MT0iMjEiIHgyPSIxNi42NSIgeTI9IjE2LjY1Ij48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0ic2VhcmNoLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGFwcHMuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9CiAgICAgICAgICAgIEBpbnB1dD0ke2c9Pnt0aGlzLnNlYXJjaFF1ZXJ5PWcudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgID4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJhcHAtZ3JpZCI+CiAgICAgICAgJHtiLmxlbmd0aD4wP2IubWFwKGc9PnRoaXMucmVuZGVyQXBwQ2FyZChnKSk6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJlbXB0eS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMjEiIHkxPSIyMSIgeDI9IjE2LjY1IiB5Mj0iMTYuNjUiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjgiIHkxPSIxMSIgeDI9IjE0IiB5Mj0iMTEiPjwvbGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktdGl0bGUiPk5vIGFwcHMgZm91bmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICAgICAgVHJ5IGFkanVzdGluZyB5b3VyIHNlYXJjaCBvciBmaWx0ZXIgdG8gZmluZCB3aGF0IHlvdSdyZSBsb29raW5nIGZvci4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQXBwQ2FyZChiKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYXBwLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtdG9wIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcC1pY29uIj4KICAgICAgICAgICAgJHtiLmljb25Vcmw/d2A8aW1nIHNyYz0iJHtiLmljb25Vcmx9IiBhbHQ9IiR7Yi5uYW1lfSI+YDpiLmljb25OYW1lP3RoaXMucmVuZGVySWNvbkJ5TmFtZShiLmljb25OYW1lKTp3YDxzcGFuIGNsYXNzPSJsZXR0ZXItZmFsbGJhY2siPiR7Yi5uYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfTwvc3Bhbj5gfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm8iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHAtbmFtZSI+JHtiLm5hbWV9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhdGVnb3J5LWJhZGdlIj4ke2IuY2F0ZWdvcnl9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhcHAtZGVzY3JpcHRpb24iPiR7Yi5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZvb3RlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaW1hZ2UtdGFnIiB0aXRsZT0iJHtiLmltYWdlfSI+JHtiLmltYWdlfTwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRldGFpbHMtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVWaWV3RGV0YWlscyhiKX0+CiAgICAgICAgICAgICAgVmlldyBEZXRhaWxzCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXBsb3ktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZXBsb3koYil9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIwIDEyIDIwIDIyIDQgMjIgNCAxMiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjciIHdpZHRoPSIyMCIgaGVpZ2h0PSI1Ij48L3JlY3Q+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMiIgeDI9IjEyIiB5Mj0iNyI+PC9saW5lPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDdINy41YTIuNSAyLjUgMCAwIDEgMC01QzExIDIgMTIgNyAxMiA3eiI+PC9wYXRoPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDdoNC41YTIuNSAyLjUgMCAwIDAgMC01QzEzIDIgMTIgNyAxMiA3eiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIERlcGxveQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVySWNvbkJ5TmFtZShiKXtyZXR1cm57ImZpbGUtdGV4dCI6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiI+PC9wYXRoPjxwb2x5bGluZSBwb2ludHM9IjE0IDIgMTQgOCAyMCA4Ij48L3BvbHlsaW5lPjxsaW5lIHgxPSIxNiIgeTE9IjEzIiB4Mj0iOCIgeTI9IjEzIj48L2xpbmU+PGxpbmUgeDE9IjE2IiB5MT0iMTciIHgyPSI4IiB5Mj0iMTciPjwvbGluZT48cG9seWxpbmUgcG9pbnRzPSIxMCA5IDkgOSA4IDkiPjwvcG9seWxpbmU+PC9zdmc+YCwiZ2l0LWJyYW5jaCI6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGxpbmUgeDE9IjYiIHkxPSIzIiB4Mj0iNiIgeTI9IjE1Ij48L2xpbmU+PGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIzIj48L2NpcmNsZT48Y2lyY2xlIGN4PSI2IiBjeT0iMTgiIHI9IjMiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xOCA5YTkgOSAwIDAgMS05IDkiPjwvcGF0aD48L3N2Zz5gLCJib29rLW9wZW4iOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0yIDNoNmE0IDQgMCAwIDEgNCA0djE0YTMgMyAwIDAgMC0zLTNIMnoiPjwvcGF0aD48cGF0aCBkPSJNMjIgM2gtNmE0IDQgMCAwIDAtNCA0djE0YTMgMyAwIDAgMSAzLTNoN3oiPjwvcGF0aD48L3N2Zz5gLGdsb2JlOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT48bGluZSB4MT0iMiIgeTE9IjEyIiB4Mj0iMjIiIHkyPSIxMiI+PC9saW5lPjxwYXRoIGQ9Ik0xMiAyYTE1LjMgMTUuMyAwIDAgMSA0IDEwIDE1LjMgMTUuMyAwIDAgMS00IDEwIDE1LjMgMTUuMyAwIDAgMS00LTEwIDE1LjMgMTUuMyAwIDAgMSA0LTEweiI+PC9wYXRoPjwvc3ZnPmAsZGF0YWJhc2U6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGVsbGlwc2UgY3g9IjEyIiBjeT0iNSIgcng9IjkiIHJ5PSIzIj48L2VsbGlwc2U+PHBhdGggZD0iTTIxIDEyYzAgMS42Ni00IDMtOSAzcy05LTEuMzQtOS0zIj48L3BhdGg+PHBhdGggZD0iTTMgNXYxNGMwIDEuNjYgNCAzIDkgM3M5LTEuMzQgOS0zVjUiPjwvcGF0aD48L3N2Zz5gLHNlcnZlcjp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHJlY3QgeD0iMiIgeT0iMTQiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSI2LjAxIiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSI2LjAxIiB5Mj0iMTgiPjwvbGluZT48L3N2Zz5gLHBhY2thZ2U6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGxpbmUgeDE9IjE2LjUiIHkxPSI5LjQiIHgyPSI3LjUiIHkyPSI0LjIxIj48L2xpbmU+PHBhdGggZD0iTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiI+PC9wYXRoPjxwb2x5bGluZSBwb2ludHM9IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2Ij48L3BvbHlsaW5lPjxsaW5lIHgxPSIxMiIgeTE9IjIyLjA4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPjwvc3ZnPmAsbWFpbDp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNNCA0aDE2YzEuMSAwIDIgLjkgMiAydjEyYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMnoiPjwvcGF0aD48cG9seWxpbmUgcG9pbnRzPSIyMiw2IDEyLDEzIDIsNiI+PC9wb2x5bGluZT48L3N2Zz5gLHNoaWVsZDp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ij48L3BhdGg+PC9zdmc+YCxtb25pdG9yOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PGxpbmUgeDE9IjgiIHkxPSIyMSIgeDI9IjE2IiB5Mj0iMjEiPjwvbGluZT48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyIiB5Mj0iMjEiPjwvbGluZT48L3N2Zz5gfVtiXXx8d2A8c3BhbiBjbGFzcz0ibGV0dGVyLWZhbGxiYWNrIj4/PC9zcGFuPmB9aGFuZGxlVmlld0RldGFpbHMoYil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1hcHAiLHtkZXRhaWw6e2FwcDpifSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlcGxveShiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZXBsb3ktYXBwIix7ZGV0YWlsOnthcHA6Yn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdmcodGhpcyxtKX1zdGF0aWN7dmcoYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIGVndCxuYWUsbUJhLGFpYT11KCgpPT57dmUoKTtlZ3Q9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG5hZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sbUJhPSgoKT0+e2xldCB0PVt1ZSgic3otdG9rZW5zLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pUb2tlbnNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOkFycmF5fSldLGVndCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdsb2JhbFRva2VucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iZ2xvYmFsVG9rZW5zImluIG0sImhhcyIpLGdldDppKG09Pm0uZ2xvYmFsVG9rZW5zLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uZ2xvYmFsVG9rZW5zPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxlZ3QodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjaVRva2VucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iY2lUb2tlbnMiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5jaVRva2VucywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmNpVG9rZW5zPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxlZ3QobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMDAwcHg7Ij4KICAgICAgPHN6LXRva2Vucy12aWV3CiAgICAgICAgLmdsb2JhbFRva2Vucz0ke1t7aWQ6IjEiLG5hbWU6IkNJL0NEIFBpcGVsaW5lIix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xNSIsbGFzdFVzZWQ6IjIwMjQtMDEtMjAifSx7aWQ6IjIiLG5hbWU6IkRldmVsb3BtZW50Iix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMCJ9XX0KICAgICAgICAuY2lUb2tlbnM9JHtbe2lkOiIzIixuYW1lOiJoZWxsby13b3JsZC1jaSIsdHlwZToiY2kiLHNlcnZpY2U6ImhlbGxvLXdvcmxkIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTgifSx7aWQ6IjQiLG5hbWU6ImFwaS1zZXJ2aWNlLWNpIix0eXBlOiJjaSIsc2VydmljZToiYXBpLXNlcnZpY2UiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMiIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifV19CiAgICAgID48L3N6LXRva2Vucy12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9bmFlKHRoaXMsbyxbXSk7Z2V0IGdsb2JhbFRva2Vucygpe3JldHVybiB0aGlzLiNlfXNldCBnbG9iYWxUb2tlbnMoaCl7dGhpcy4jZT1ofSN0PShuYWUodGhpcyxsKSxuYWUodGhpcyxkLFtdKSk7Z2V0IGNpVG9rZW5zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNpVG9rZW5zKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRva2VuLWxpc3QgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50b2tlbi1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnRva2VuLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnRva2VuLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRva2VuLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50b2tlbi1tZXRhIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnRva2VuLXNlcnZpY2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICB9CgogICAgICAudG9rZW4tYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMzJweCAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVtcHR5LXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5HbG9iYWwgVG9rZW5zPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+VG9rZW5zIHRoYXQgY2FuIHB1c2ggaW1hZ2VzIHRvIG11bHRpcGxlIHNlcnZpY2VzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmdsb2JhbFRva2Vucy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbGlzdCI+CiAgICAgICAgICAgICR7dGhpcy5nbG9iYWxUb2tlbnMubWFwKGg9PnRoaXMucmVuZGVyVG9rZW4oaCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10ZXh0Ij5ObyBnbG9iYWwgdG9rZW5zIGNyZWF0ZWQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGUoImdsb2JhbCIpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgQ3JlYXRlIFRva2VuCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNJIFRva2VucyAoU2VydmljZS1zcGVjaWZpYyk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Ub2tlbnMgdGllZCB0byBpbmRpdmlkdWFsIHNlcnZpY2VzIGZvciBDSS9DRCBwaXBlbGluZXM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuY2lUb2tlbnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWxpc3QiPgogICAgICAgICAgICAke3RoaXMuY2lUb2tlbnMubWFwKGg9PnRoaXMucmVuZGVyVG9rZW4oaCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10ZXh0Ij5ObyBDSSB0b2tlbnMgY3JlYXRlZDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYH0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgiY2kiKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENyZWF0ZSBUb2tlbgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJUb2tlbihoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taW5mbyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4ke2gubmFtZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW1ldGEiPgogICAgICAgICAgICAke2guc2VydmljZT93YDxzcGFuIGNsYXNzPSJ0b2tlbi1zZXJ2aWNlIj4ke2guc2VydmljZX08L3NwYW4+YDoiIn0KICAgICAgICAgICAgQ3JlYXRlZCAke2guY3JlYXRlZEF0fQogICAgICAgICAgICAke2gubGFzdFVzZWQ/d2AgwrcgTGFzdCB1c2VkICR7aC5sYXN0VXNlZH1gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDb3B5KGgpfT5Db3B5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSZWdlbmVyYXRlKGgpfT5SZWdlbmVyYXRlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlKGgpfT5EZWxldGU8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNyZWF0ZShoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjcmVhdGUiLHtkZXRhaWw6e3R5cGU6aH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb3B5KGgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvcHkiLHtkZXRhaWw6aCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlZ2VuZXJhdGUoaCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVnZW5lcmF0ZSIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlKGgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZSIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG5hZSh0aGlzLGYpfXN0YXRpY3tuYWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIHRndCxvYWUsZ0JhLGlpYT11KCgpPT57dmUoKTt0Z3Q9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG9hZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZ0JhPSgoKT0+e2xldCB0PVt1ZSgic3otc2V0dGluZ3MtdmlldyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelNldHRpbmdzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHRndCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNldHRpbmdzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJzZXR0aW5ncyJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnNldHRpbmdzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uc2V0dGluZ3M9dn0sInNldCIpfSxtZXRhZGF0YTpofSxvLGwpLHRndCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRVc2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJjdXJyZW50VXNlciJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmN1cnJlbnRVc2VyLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uY3VycmVudFVzZXI9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLHRndChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDgwMHB4OyI+CiAgICAgIDxzei1zZXR0aW5ncy12aWV3CiAgICAgICAgLnNldHRpbmdzPSR7e2RhcmtNb2RlOiEwLGNsb3VkZmxhcmVUb2tlbjoiIixjbG91ZGZsYXJlWm9uZUlkOiIiLGF1dG9SZW5ld0NlcnRzOiEwLHJlbmV3YWxUaHJlc2hvbGQ6MzAsYWNtZUVtYWlsOiJjZXJ0c0BleGFtcGxlLmNvbSIsaHR0cFBvcnQ6ODAsaHR0cHNQb3J0OjQ0Myxmb3JjZUh0dHBzOiEwfX0KICAgICAgICBjdXJyZW50VXNlcj0iYWRtaW4iCiAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1vYWUodGhpcyxvLHtkYXJrTW9kZTohMSxjbG91ZGZsYXJlVG9rZW46IiIsY2xvdWRmbGFyZVpvbmVJZDoiIixhdXRvUmVuZXdDZXJ0czohMCxyZW5ld2FsVGhyZXNob2xkOjMwLGFjbWVFbWFpbDoiIixodHRwUG9ydDo4MCxodHRwc1BvcnQ6NDQzLGZvcmNlSHR0cHM6ITB9KTtnZXQgc2V0dGluZ3MoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2V0dGluZ3MoaCl7dGhpcy4jZT1ofSN0PShvYWUodGhpcyxsKSxvYWUodGhpcyxkLCIiKSk7Z2V0IGN1cnJlbnRVc2VyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1cnJlbnRVc2VyKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tZ3JvdXAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5mb3JtLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZm9ybS1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLAogICAgICBpbnB1dFt0eXBlPSJwYXNzd29yZCJdLAogICAgICBpbnB1dFt0eXBlPSJlbWFpbCJdLAogICAgICBpbnB1dFt0eXBlPSJudW1iZXIiXSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogNDRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2g6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoLmFjdGl2ZTo6YWZ0ZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgfQoKICAgICAgLnBhc3N3b3JkLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnBhc3N3b3JkLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5wYXNzd29yZC1maWVsZHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5maWVsZC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXBwZWFyYW5jZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbGFiZWwtZ3JvdXAiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWxhYmVsIj5EYXJrIE1vZGU8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0taGludCI+VG9nZ2xlIGRhcmsgbW9kZSBvbiBvciBvZmY8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoICR7dGhpcy5zZXR0aW5ncy5kYXJrTW9kZT8iYWN0aXZlIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZURhcmtNb2RlKCl9PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DbG91ZGZsYXJlIEludGVncmF0aW9uPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q29uZmlndXJlIENsb3VkZmxhcmUgQVBJIGZvciBETlMgbWFuYWdlbWVudDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5BUEkgVG9rZW48L2Rpdj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJFbnRlciBDbG91ZGZsYXJlIEFQSSB0b2tlbiIgLnZhbHVlPSR7dGhpcy5zZXR0aW5ncy5jbG91ZGZsYXJlVG9rZW59IEBpbnB1dD0ke2g9PnRoaXMudXBkYXRlU2V0dGluZygiY2xvdWRmbGFyZVRva2VuIixoLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPlpvbmUgSUQgKE9wdGlvbmFsKTwvZGl2PgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iRGVmYXVsdCB6b25lIElEIiAudmFsdWU9JHt0aGlzLnNldHRpbmdzLmNsb3VkZmxhcmVab25lSWR9IEBpbnB1dD0ke2g9PnRoaXMudXBkYXRlU2V0dGluZygiY2xvdWRmbGFyZVpvbmVJZCIsaC50YXJnZXQudmFsdWUpfT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+R2V0IHlvdXIgQVBJIHRva2VuIGZyb20gdGhlIENsb3VkZmxhcmUgZGFzaGJvYXJkIHdpdGggRE5TIGVkaXQgcGVybWlzc2lvbnMuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNTTC9UTFMgU2V0dGluZ3M8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Db25maWd1cmUgY2VydGlmaWNhdGUgbWFuYWdlbWVudDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbGFiZWwtZ3JvdXAiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWxhYmVsIj5BdXRvLVJlbmV3IENlcnRpZmljYXRlczwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1oaW50Ij5BdXRvbWF0aWNhbGx5IHJlbmV3IGNlcnRpZmljYXRlcyBiZWZvcmUgZXhwaXJ5PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCAke3RoaXMuc2V0dGluZ3MuYXV0b1JlbmV3Q2VydHM/ImFjdGl2ZSI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVTZXR0aW5nKCJhdXRvUmVuZXdDZXJ0cyIpfT48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPlJlbmV3YWwgVGhyZXNob2xkIChkYXlzKTwvZGl2PgogICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiAudmFsdWU9JHtTdHJpbmcodGhpcy5zZXR0aW5ncy5yZW5ld2FsVGhyZXNob2xkKX0gQGlucHV0PSR7aD0+dGhpcy51cGRhdGVTZXR0aW5nKCJyZW5ld2FsVGhyZXNob2xkIixwYXJzZUludChoLnRhcmdldC52YWx1ZSkpfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5SZW5ldyBjZXJ0aWZpY2F0ZXMgd2hlbiB0aGV5IGhhdmUgZmV3ZXIgdGhhbiB0aGlzIG1hbnkgZGF5cyByZW1haW5pbmcuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+QUNNRSBFbWFpbDwvZGl2PgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJhZG1pbkBleGFtcGxlLmNvbSIgLnZhbHVlPSR7dGhpcy5zZXR0aW5ncy5hY21lRW1haWx9IEBpbnB1dD0ke2g9PnRoaXMudXBkYXRlU2V0dGluZygiYWNtZUVtYWlsIixoLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPkVtYWlsIGFkZHJlc3MgZm9yIExldCdzIEVuY3J5cHQgbm90aWZpY2F0aW9ucy48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmV0d29yayBTZXR0aW5nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkNvbmZpZ3VyZSBuZXR3b3JrIGFuZCBwcm94eSBzZXR0aW5nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+SFRUUCBQb3J0PC9kaXY+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgLnZhbHVlPSR7U3RyaW5nKHRoaXMuc2V0dGluZ3MuaHR0cFBvcnQpfSBAaW5wdXQ9JHtoPT50aGlzLnVwZGF0ZVNldHRpbmcoImh0dHBQb3J0IixwYXJzZUludChoLnRhcmdldC52YWx1ZSkpfT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5IVFRQUyBQb3J0PC9kaXY+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgLnZhbHVlPSR7U3RyaW5nKHRoaXMuc2V0dGluZ3MuaHR0cHNQb3J0KX0gQGlucHV0PSR7aD0+dGhpcy51cGRhdGVTZXR0aW5nKCJodHRwc1BvcnQiLHBhcnNlSW50KGgudGFyZ2V0LnZhbHVlKSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWxhYmVsLWdyb3VwIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1sYWJlbCI+Rm9yY2UgSFRUUFM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0taGludCI+UmVkaXJlY3QgYWxsIEhUVFAgdHJhZmZpYyB0byBIVFRQUzwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2ggJHt0aGlzLnNldHRpbmdzLmZvcmNlSHR0cHM/ImFjdGl2ZSI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVTZXR0aW5nKCJmb3JjZUh0dHBzIil9PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BY2NvdW50PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+TWFuYWdlIHlvdXIgYWNjb3VudCBzZXR0aW5nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkN1cnJlbnQgVXNlcjwvZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07Ij4ke3RoaXMuY3VycmVudFVzZXJ8fCJVbmtub3duIn08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhc3N3b3JkLXRpdGxlIj5DaGFuZ2UgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtZmllbGRzIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkN1cnJlbnQgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9ImN1cnJlbnRQYXNzd29yZCI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5OZXcgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9Im5ld1Bhc3N3b3JkIj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkNvbmZpcm0gUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9ImNvbmZpcm1QYXNzd29yZCI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2hhbmdlUGFzc3dvcmQoKX0+VXBkYXRlIFBhc3N3b3JkPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiAxMnB4IDE2cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogMTJweDsiPgogICAgICAgICAgU2F2ZSB5b3VyIGNoYW5nZXMgb3IgcmVzZXQgdG8gZGVmYXVsdHMuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVzZXQoKX0+UmVzZXQ8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVNhdmUoKX0+U2F2ZSBTZXR0aW5nczwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9dG9nZ2xlRGFya01vZGUoKXt0aGlzLnNldHRpbmdzPXsuLi50aGlzLnNldHRpbmdzLGRhcmtNb2RlOiF0aGlzLnNldHRpbmdzLmRhcmtNb2RlfSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXR0aW5nLWNoYW5nZSIse2RldGFpbDp7a2V5OiJkYXJrTW9kZSIsdmFsdWU6dGhpcy5zZXR0aW5ncy5kYXJrTW9kZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX10b2dnbGVTZXR0aW5nKGgpe3RoaXMuc2V0dGluZ3NbaF09IXRoaXMuc2V0dGluZ3NbaF0sdGhpcy5zZXR0aW5ncz17Li4udGhpcy5zZXR0aW5nc319dXBkYXRlU2V0dGluZyhoLG0pe3RoaXMuc2V0dGluZ3NbaF09bSx0aGlzLnNldHRpbmdzPXsuLi50aGlzLnNldHRpbmdzfX1oYW5kbGVDaGFuZ2VQYXNzd29yZCgpe2xldCBoPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImN1cnJlbnRQYXNzd29yZCIpPy52YWx1ZSxtPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoIm5ld1Bhc3N3b3JkIik/LnZhbHVlLHY9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiY29uZmlybVBhc3N3b3JkIik/LnZhbHVlO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZS1wYXNzd29yZCIse2RldGFpbDp7Y3VycmVudFBhc3N3b3JkOmgsbmV3UGFzc3dvcmQ6bSxjb25maXJtUGFzc3dvcmQ6dn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZXNldCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlc2V0Iix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTYXZlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2F2ZSIse2RldGFpbDp0aGlzLnNldHRpbmdzLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG9hZSh0aGlzLGYpfXN0YXRpY3tvYWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGxhZSx6MyxiQmEsc2lhPXUoKCk9Pnt2ZSgpO2xhZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sejM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGJCYT0oKCk9PntsZXQgdD1bdWUoInN6LWxvZ2luLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pMb2dpblZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkJvb2xlYW59KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0sbGFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ibG9hZGluZyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmxvYWRpbmcsImdldCIpLHNldDppKChNLE4pPT57TS5sb2FkaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxsYWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iZXJyb3IiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5lcnJvciwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmVycm9yPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxsYWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4idGl0bGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS50aXRsZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnRpdGxlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxsYWUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic3VidGl0bGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5zdWJ0aXRsZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnN1YnRpdGxlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSxsYWUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCxyKSx5PWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA2MDBweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGJhY2tncm91bmQ6ICMwOTA5MGI7Ij4KICAgICAgPHN6LWxvZ2luLXZpZXc+PC9zei1sb2dpbi12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9ejModGhpcyxvLCExKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBsb2FkaW5nKGspe3RoaXMuI2U9a30jdD0oejModGhpcyxsKSx6Myh0aGlzLGQsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZXJyb3Ioayl7dGhpcy4jdD1rfSNyPSh6Myh0aGlzLGYpLHozKHRoaXMsaCwic2VydmUuem9uZSIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGl0bGUoayl7dGhpcy4jcj1rfSNhPSh6Myh0aGlzLG0pLHozKHRoaXMsYiwiU2lnbiBpbiB0byB5b3VyIG9uZWJveCIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3VidGl0bGUoayl7dGhpcy4jYT1rfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogNDAwcHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgICAgfQoKICAgICAgLmxvZ28tc2VjdGlvbiB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgIH0KCiAgICAgIC5sb2dvIHsKICAgICAgICB3aWR0aDogNjRweDsKICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7CiAgICAgIH0KCiAgICAgIC5sb2dvIHN2ZyB7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZm9ybS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEycHggMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2U7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDk2LCAxNjUsIDI1MCwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dC5lcnJvciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5lcnJvci1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmMmYyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2ZlY2FjYSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuZXJyb3ItbWVzc2FnZSBzdmcgewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnN1Ym1pdC1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEycHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAyMDBtcyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnN1Ym1pdC1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgfQoKICAgICAgLnN1Ym1pdC1idXR0b246YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc3VibWl0LWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5zcGlubmVyIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogY3VycmVudENvbG9yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5mb290ZXIgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZm9vdGVyIGEgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAuZm9vdGVyIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28tc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28iPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiI+PC9wYXRoPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMy4yNyA2Ljk2IDEyIDEyLjAxIDIwLjczIDYuOTYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMi4wOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybSIgQHN1Ym1pdD0ke3RoaXMuaGFuZGxlU3VibWl0fT4KICAgICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMi4wMSIgeTI9IjE2Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICR7dGhpcy5lcnJvcn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCIgZm9yPSJ1c2VybmFtZSI+VXNlcm5hbWU8L2xhYmVsPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGlkPSJ1c2VybmFtZSIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0ICR7dGhpcy5lcnJvcj8iZXJyb3IiOiIifSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciB5b3VyIHVzZXJuYW1lIgogICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPSJ1c2VybmFtZSIKICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubG9hZGluZ30KICAgICAgICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCIgZm9yPSJwYXNzd29yZCI+UGFzc3dvcmQ8L2xhYmVsPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0icGFzc3dvcmQiCiAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgeW91ciBwYXNzd29yZCIKICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCIKICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubG9hZGluZ30KICAgICAgICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0LWJ1dHRvbiIgP2Rpc2FibGVkPSR7dGhpcy5sb2FkaW5nfT4KICAgICAgICAgICAgICAke3RoaXMubG9hZGluZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICBTaWduaW5nIGluLi4uCiAgICAgICAgICAgICAgYDoiU2lnbiBpbiJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9mb3JtPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICAgIFBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9zZXJ2ZS56b25lIiB0YXJnZXQ9Il9ibGFuayI+c2VydmUuem9uZTwvYT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU3VibWl0KGspe2sucHJldmVudERlZmF1bHQoKTtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJ1c2VybmFtZSIpLE49dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKTtpZighTXx8IU4pcmV0dXJuO2xldCBfPU0udmFsdWUudHJpbSgpLFM9Ti52YWx1ZTtpZighX3x8IVMpe3RoaXMuZXJyb3I9IlBsZWFzZSBlbnRlciBib3RoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCI7cmV0dXJufXRoaXMuZXJyb3I9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9naW4iLHtkZXRhaWw6e3VzZXJuYW1lOl8scGFzc3dvcmQ6U30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbGVhckZvcm0oKXtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJ1c2VybmFtZSIpLE09dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKTtrJiYoay52YWx1ZT0iIiksTSYmKE0udmFsdWU9IiIpLHRoaXMuZXJyb3I9IiJ9Zm9jdXNVc2VybmFtZSgpe2xldCBrPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInVzZXJuYW1lIik7ayYmay5mb2N1cygpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx6Myh0aGlzLGcpfXN0YXRpY3t6MyhhLHIpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgVm4sYmEseEJhLG5pYT11KCgpPT57dmUoKTtWbj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sYmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHhCYT0oKCk9PntsZXQgdD1bdWUoInN6LXNlcnZpY2UtY3JlYXRlLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdLHhlLEs9W10sVj1bXTt2YXIgbGU9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6U2VydmljZUNyZWF0ZVZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0scD1baWUoKV0sdj1baWUoKV0seT1baWUoKV0sTj1baWUoKV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZGU9W2llKCldLGZlPVtpZSgpXSxwZT1baWUoKV0sSD1baWUoKV0sYWU9W2llKCldLHhlPVtpZSgpXSxWbih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZ2lzdHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJyZWdpc3RyaWVzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUucmVnaXN0cmllcywiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnJlZ2lzdHJpZXM9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LG8sbCksVm4odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibG9hZGluZyJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmxvYWRpbmcsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5sb2FkaW5nPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxkLGYpLFZuKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJzZXJ2aWNlTmFtZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNlcnZpY2VOYW1lLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuc2VydmljZU5hbWU9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LGgsbSksVm4odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZVVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImltYWdlVXJsImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaW1hZ2VVcmwsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5pbWFnZVVybD16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sYixnKSxWbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkUmVnaXN0cnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJzZWxlY3RlZFJlZ2lzdHJ5ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuc2VsZWN0ZWRSZWdpc3RyeSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnNlbGVjdGVkUmVnaXN0cnk9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LGssTSksVm4odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3J0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InBvcnRzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUucG9ydHMsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5wb3J0cz16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sXyxTKSxWbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudlZhcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlbnZWYXJzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZW52VmFycywiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmVudlZhcnM9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LEwsRSksVm4odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4idm9sdW1lcyJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnZvbHVtZXMsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS52b2x1bWVzPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxDLHopLFZuKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3B1TGltaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJjcHVMaW1pdCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmNwdUxpbWl0LCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuY3B1TGltaXQ9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LCQsRiksVm4odGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW1vcnlMaW1pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im1lbW9yeUxpbWl0ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUubWVtb3J5TGltaXQsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5tZW1vcnlMaW1pdD16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sRyxaKSxWbih0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXN0YXJ0UG9saWN5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4icmVzdGFydFBvbGljeSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnJlc3RhcnRQb2xpY3ksImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5yZXN0YXJ0UG9saWN5PXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxELFEpLFZuKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5ldHdvcmtNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibmV0d29ya01vZGUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5uZXR3b3JrTW9kZSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLm5ldHdvcmtNb2RlPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxULFcpLFZuKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBZHZhbmNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InNob3dBZHZhbmNlZCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNob3dBZHZhbmNlZCwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnNob3dBZHZhbmNlZD16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sbWUscSksVm4odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVNb25nb0RCIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZW5hYmxlTW9uZ29EQiJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmVuYWJsZU1vbmdvREIsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5lbmFibGVNb25nb0RCPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxVLGopLFZuKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVMzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZW5hYmxlUzMiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5lbmFibGVTMywiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmVuYWJsZVMzPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxYLEopLFZuKHRoaXMsbnVsbCx4ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUNsaWNrSG91c2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlbmFibGVDbGlja0hvdXNlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZW5hYmxlQ2xpY2tIb3VzZSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmVuYWJsZUNsaWNrSG91c2U9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LEssViksVm4obnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bmV9LG51bGwsciksbGU9YT1lLnZhbHVlLG5lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm5lfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2UtY3JlYXRlLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6Ik9uZWJveCBSZWdpc3RyeSIsdXJsOiJyZWdpc3RyeS5vbmVib3gubG9jYWwifSx7aWQ6IjIiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIn1dfQogICAgICA+PC9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1iYSh0aGlzLG8sW10pO2dldCByZWdpc3RyaWVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZ2lzdHJpZXMobmUpe3RoaXMuI2U9bmV9I3Q9KGJhKHRoaXMsbCksYmEodGhpcyxkLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9hZGluZyhuZSl7dGhpcy4jdD1uZX0jcj0oYmEodGhpcyxmKSxiYSh0aGlzLGgsIiIpKTtnZXQgc2VydmljZU5hbWUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VydmljZU5hbWUobmUpe3RoaXMuI3I9bmV9I2E9KGJhKHRoaXMsbSksYmEodGhpcyxiLCIiKSk7Z2V0IGltYWdlVXJsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGltYWdlVXJsKG5lKXt0aGlzLiNhPW5lfSNpPShiYSh0aGlzLGcpLGJhKHRoaXMsaywiIikpO2dldCBzZWxlY3RlZFJlZ2lzdHJ5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkUmVnaXN0cnkobmUpe3RoaXMuI2k9bmV9I3M9KGJhKHRoaXMsTSksYmEodGhpcyxfLFt7aG9zdFBvcnQ6IiIsY29udGFpbmVyUG9ydDoiIixwcm90b2NvbDoidGNwIn1dKSk7Z2V0IHBvcnRzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBvcnRzKG5lKXt0aGlzLiNzPW5lfSNuPShiYSh0aGlzLFMpLGJhKHRoaXMsTCxbe2tleToiIix2YWx1ZToiIn1dKSk7Z2V0IGVudlZhcnMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZW52VmFycyhuZSl7dGhpcy4jbj1uZX0jbz0oYmEodGhpcyxFKSxiYSh0aGlzLEMsW10pKTtnZXQgdm9sdW1lcygpe3JldHVybiB0aGlzLiNvfXNldCB2b2x1bWVzKG5lKXt0aGlzLiNvPW5lfSNsPShiYSh0aGlzLHopLGJhKHRoaXMsJCwiIikpO2dldCBjcHVMaW1pdCgpe3JldHVybiB0aGlzLiNsfXNldCBjcHVMaW1pdChuZSl7dGhpcy4jbD1uZX0jYz0oYmEodGhpcyxGKSxiYSh0aGlzLEcsIiIpKTtnZXQgbWVtb3J5TGltaXQoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWVtb3J5TGltaXQobmUpe3RoaXMuI2M9bmV9I2Q9KGJhKHRoaXMsWiksYmEodGhpcyxELCJhbHdheXMiKSk7Z2V0IHJlc3RhcnRQb2xpY3koKXtyZXR1cm4gdGhpcy4jZH1zZXQgcmVzdGFydFBvbGljeShuZSl7dGhpcy4jZD1uZX0jdT0oYmEodGhpcyxRKSxiYSh0aGlzLFQsImJyaWRnZSIpKTtnZXQgbmV0d29ya01vZGUoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbmV0d29ya01vZGUobmUpe3RoaXMuI3U9bmV9I3A9KGJhKHRoaXMsVyksYmEodGhpcyxtZSwhMSkpO2dldCBzaG93QWR2YW5jZWQoKXtyZXR1cm4gdGhpcy4jcH1zZXQgc2hvd0FkdmFuY2VkKG5lKXt0aGlzLiNwPW5lfSNmPShiYSh0aGlzLHEpLGJhKHRoaXMsVSwhMSkpO2dldCBlbmFibGVNb25nb0RCKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGVuYWJsZU1vbmdvREIobmUpe3RoaXMuI2Y9bmV9I2g9KGJhKHRoaXMsaiksYmEodGhpcyxYLCExKSk7Z2V0IGVuYWJsZVMzKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGVuYWJsZVMzKG5lKXt0aGlzLiNoPW5lfSNtPShiYSh0aGlzLEopLGJhKHRoaXMsSywhMSkpO2dldCBlbmFibGVDbGlja0hvdXNlKCl7cmV0dXJuIHRoaXMuI219c2V0IGVuYWJsZUNsaWNrSG91c2UobmUpe3RoaXMuI209bmV9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlci1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgc3ZnIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmZvcm0tcm93LnNpbmdsZSB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIH0KCiAgICAgIC5mb3JtLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZm9ybS1sYWJlbCAucmVxdWlyZWQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dCwKICAgICAgLmZvcm0tc2VsZWN0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dDpmb2N1cywKICAgICAgLmZvcm0tc2VsZWN0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuZm9ybS1zZWxlY3QgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmR5bmFtaWMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZHluYW1pYy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5keW5hbWljLXJvdyAuZm9ybS1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmR5bmFtaWMtcm93IC5mb3JtLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDgwcHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5yZW1vdmUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5yZW1vdmUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZlY2FjYSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbiBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1hZHZhbmNlZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1hZHZhbmNlZCBzdmcgewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1hZHZhbmNlZC5vcGVuIHN2ZyB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsKICAgICAgfQoKICAgICAgLmNoZWNrYm94LXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY2hlY2tib3ggewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBhY2NlbnQtY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWl0ZW06aGFzKGlucHV0OmNoZWNrZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtaWNvbiB7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNzI3MmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWRlc2MgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogNDRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoIGlucHV0IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zbGlkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zbGlkZXI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBsZWZ0OiAzcHg7CiAgICAgICAgYm90dG9tOiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaCBpbnB1dDpjaGVja2VkICsgLnRvZ2dsZS1zbGlkZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggaW5wdXQ6Y2hlY2tlZCArIC50b2dnbGUtc2xpZGVyOjpiZWZvcmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgfQoKICAgICAgLmFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24gewogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wcmltYXJ5OmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLnNwaW5uZXIgewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10aXRsZSI+RGVwbG95IE5ldyBTZXJ2aWNlPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkNvbmZpZ3VyZSBhbmQgZGVwbG95IGEgbmV3IERvY2tlciBjb250YWluZXI8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEJhc2ljIEluZm8gU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgIDxsaW5lIHgxPSI5IiB5MT0iOSIgeDI9IjE1IiB5Mj0iOSI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iOSIgeTE9IjE1IiB4Mj0iMTUiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBCYXNpYyBJbmZvcm1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPlNlcnZpY2UgTmFtZSA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0ibXktc2VydmljZSIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlcnZpY2VOYW1lfQogICAgICAgICAgICAgIEBpbnB1dD0ke25lPT50aGlzLnNlcnZpY2VOYW1lPW5lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPlVuaXF1ZSBuYW1lIGZvciB0aGUgc2VydmljZSAoYWxwaGFudW1lcmljIGFuZCBoeXBoZW5zKTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5SZWdpc3RyeTwvbGFiZWw+CiAgICAgICAgICAgIDxzZWxlY3QKICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1zZWxlY3QiCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWxlY3RlZFJlZ2lzdHJ5fQogICAgICAgICAgICAgIEBjaGFuZ2U9JHtuZT0+dGhpcy5zZWxlY3RlZFJlZ2lzdHJ5PW5lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+Q3VzdG9tIEltYWdlIFVSTDwvb3B0aW9uPgogICAgICAgICAgICAgICR7dGhpcy5yZWdpc3RyaWVzLm1hcChuZT0+d2AKICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9JHtuZS5pZH0+JHtuZS5uYW1lfTwvb3B0aW9uPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93IHNpbmdsZSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5JbWFnZSA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0ibmdpbng6bGF0ZXN0IG9yIHJlZ2lzdHJ5LmV4YW1wbGUuY29tL2ltYWdlOnRhZyIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmltYWdlVXJsfQogICAgICAgICAgICAgIEBpbnB1dD0ke25lPT50aGlzLmltYWdlVXJsPW5lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPkRvY2tlciBpbWFnZSB0byBkZXBsb3kgKGluY2x1ZGUgdGFnKTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBQb3J0IENvbmZpZ3VyYXRpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyIiB5MT0iMTIiIHgyPSIyMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAyYTE1LjMgMTUuMyAwIDAgMSA0IDEwIDE1LjMgMTUuMyAwIDAgMS00IDEwIDE1LjMgMTUuMyAwIDAgMS00LTEwIDE1LjMgMTUuMyAwIDAgMSA0LTEweiI+PC9wYXRoPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBQb3J0IENvbmZpZ3VyYXRpb24KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLWxpc3QiPgogICAgICAgICAgJHt0aGlzLnBvcnRzLm1hcCgobmUsZWUpPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLXJvdyI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iSG9zdCBQb3J0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7bmUuaG9zdFBvcnR9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt6ZT0+dGhpcy51cGRhdGVQb3J0KGVlLCJob3N0UG9ydCIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iQ29udGFpbmVyIFBvcnQiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtuZS5jb250YWluZXJQb3J0fQogICAgICAgICAgICAgICAgQGlucHV0PSR7emU9PnRoaXMudXBkYXRlUG9ydChlZSwiY29udGFpbmVyUG9ydCIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNlbGVjdAogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0tc2VsZWN0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7bmUucHJvdG9jb2x9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7emU9PnRoaXMudXBkYXRlUG9ydChlZSwicHJvdG9jb2wiLHplLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idGNwIj5UQ1A8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVkcCI+VURQPC9vcHRpb24+CiAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgJHt0aGlzLnBvcnRzLmxlbmd0aD4xP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVQb3J0KGVlKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZGQtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRQb3J0KCl9PgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBBZGQgUG9ydCBNYXBwaW5nCiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBFbnZpcm9ubWVudCBWYXJpYWJsZXMgLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI0IDE3IDEwIDExIDQgNSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTkiIHgyPSIyMCIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEVudmlyb25tZW50IFZhcmlhYmxlcwogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtbGlzdCI+CiAgICAgICAgICAke3RoaXMuZW52VmFycy5tYXAoKG5lLGVlKT0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1yb3ciPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IktFWSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke25lLmtleX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3plPT50aGlzLnVwZGF0ZUVudlZhcihlZSwia2V5Iix6ZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJ2YWx1ZSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke25lLnZhbHVlfQogICAgICAgICAgICAgICAgQGlucHV0PSR7emU9PnRoaXMudXBkYXRlRW52VmFyKGVlLCJ2YWx1ZSIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt0aGlzLmVudlZhcnMubGVuZ3RoPjE/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJlbW92ZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUVudlZhcihlZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRkLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkRW52VmFyKCl9PgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUKICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIFBsYXRmb3JtIFNlcnZpY2VzIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIxNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjYiIHgyPSI2LjAxIiB5Mj0iNiI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjE4IiB4Mj0iNi4wMSIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIFBsYXRmb3JtIFNlcnZpY2VzCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50IiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTJweDsiPgogICAgICAgICAgRW5hYmxlIG1hbmFnZWQgaW5mcmFzdHJ1Y3R1cmUgc2VydmljZXMgZm9yIHRoaXMgZGVwbG95bWVudC4gUmVzb3VyY2VzIGFyZSBhdXRvbWF0aWNhbGx5IHByb3Zpc2lvbmVkIGFuZCBjb25uZWN0aW9uIGRldGFpbHMgaW5qZWN0ZWQgYXMgZW52aXJvbm1lbnQgdmFyaWFibGVzLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1saXN0Ij4KICAgICAgICAgIDxsYWJlbCBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWljb24iPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE3LjkzYy0zLjk1LS40OS03LTMuODUtNy03LjkzIDAtLjYyLjA4LTEuMjEuMjEtMS43OUw5IDE1djFjMCAxLjEuOSAyIDIgMnYxLjkzem02LjktMi41NGMtLjI2LS44MS0xLTEuMzktMS45LTEuMzloLTF2LTNjMC0uNTUtLjQ1LTEtMS0xSDh2LTJoMmMuNTUgMCAxLS40NSAxLTFWN2gyYzEuMSAwIDItLjkgMi0ydi0uNDFjMi45MyAxLjE5IDUgNC4wNiA1IDcuNDEgMCAyLjA4LS44IDMuOTctMi4xIDUuMzl6Ii8+PC9zdmc+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1uYW1lIj5Nb25nb0RCPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtZGVzYyI+RG9jdW1lbnQgZGF0YWJhc2Ugd2l0aCBhdXRvLXByb3Zpc2lvbmVkIGNyZWRlbnRpYWxzPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoIj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLmVuYWJsZU1vbmdvREJ9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7bmU9PnRoaXMuZW5hYmxlTW9uZ29EQj1uZS50YXJnZXQuY2hlY2tlZH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvZ2dsZS1zbGlkZXIiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgPGxhYmVsIGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaWNvbiI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMjEgMTYuNWMwIC4zOC0uMjEuNzEtLjUzLjg4bC03LjkgNC40NGMtLjE2LjEyLS4zNi4xOC0uNTcuMTgtLjIxIDAtLjQxLS4wNi0uNTctLjE4bC03LjktNC40NEEuOTkxLjk5MSAwIDAgMSAzIDE2LjV2LTljMC0uMzguMjEtLjcxLjUzLS44OGw3LjktNC40NGMuMTYtLjEyLjM2LS4xOC41Ny0uMTguMjEgMCAuNDEuMDYuNTcuMThsNy45IDQuNDRjLjMyLjE3LjUzLjUuNTMuODh2OXoiLz48L3N2Zz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLW5hbWUiPlMzIFN0b3JhZ2UgKE1pbklPKTwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWRlc2MiPk9iamVjdCBzdG9yYWdlIGJ1Y2tldCB3aXRoIGF1dG8tcHJvdmlzaW9uZWQgYWNjZXNzIGtleXM8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2giPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuZW5hYmxlUzN9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7bmU9PnRoaXMuZW5hYmxlUzM9bmUudGFyZ2V0LmNoZWNrZWR9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2dnbGUtc2xpZGVyIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxsYWJlbCBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWljb24iPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjYiIGhlaWdodD0iMjAiLz48cmVjdCB4PSI5IiB5PSI3IiB3aWR0aD0iNiIgaGVpZ2h0PSIxNSIvPjxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjYiIGhlaWdodD0iMTAiLz48L3N2Zz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLW5hbWUiPkNsaWNrSG91c2U8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1kZXNjIj5BbmFseXRpY3MgZGF0YWJhc2Ugd2l0aCBhdXRvLXByb3Zpc2lvbmVkIGNyZWRlbnRpYWxzPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoIj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLmVuYWJsZUNsaWNrSG91c2V9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7bmU9PnRoaXMuZW5hYmxlQ2xpY2tIb3VzZT1uZS50YXJnZXQuY2hlY2tlZH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvZ2dsZS1zbGlkZXIiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gQWR2YW5jZWQgT3B0aW9ucyBUb2dnbGUgLS0+CiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0idG9nZ2xlLWFkdmFuY2VkICR7dGhpcy5zaG93QWR2YW5jZWQ/Im9wZW4iOiIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zaG93QWR2YW5jZWQ9IXRoaXMuc2hvd0FkdmFuY2VkfQogICAgICA+CiAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiPjwvcG9seWxpbmU+CiAgICAgICAgPC9zdmc+CiAgICAgICAgQWR2YW5jZWQgT3B0aW9ucwogICAgICA8L2J1dHRvbj4KCiAgICAgICR7dGhpcy5zaG93QWR2YW5jZWQ/d2AKICAgICAgICA8IS0tIFZvbHVtZXMgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgVm9sdW1lIE1vdW50cwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLWxpc3QiPgogICAgICAgICAgICAke3RoaXMudm9sdW1lcy5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5ObyB2b2x1bWVzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgICAgYDp0aGlzLnZvbHVtZXMubWFwKChuZSxlZSk9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1yb3ciPgogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iL2hvc3QvcGF0aCIKICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7bmUuaG9zdFBhdGh9CiAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke3plPT50aGlzLnVwZGF0ZVZvbHVtZShlZSwiaG9zdFBhdGgiLHplLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIvY29udGFpbmVyL3BhdGgiCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke25lLmNvbnRhaW5lclBhdGh9CiAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke3plPT50aGlzLnVwZGF0ZVZvbHVtZShlZSwiY29udGFpbmVyUGF0aCIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94LXJvdyI+CiAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjaGVja2JveCIKICAgICAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke25lLnJlYWRPbmx5fQogICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHt6ZT0+dGhpcy51cGRhdGVWb2x1bWUoZWUsInJlYWRPbmx5Iix6ZS50YXJnZXQuY2hlY2tlZCl9CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0taGludCI+Uk88L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJlbW92ZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnJlbW92ZVZvbHVtZShlZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRkLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkVm9sdW1lKCl9PgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgQWRkIFZvbHVtZSBNb3VudAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gUmVzb3VyY2UgTGltaXRzIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cmVjdCB4PSIxIiB5PSI0IiB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxIiB5MT0iMTAiIHgyPSIyMyIgeTI9IjEwIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBSZXNvdXJjZSBMaW1pdHMKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkNQVSBMaW1pdDwvbGFiZWw+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iZS5nLiwgMS4wIG9yIDAuNSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuY3B1TGltaXR9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHtuZT0+dGhpcy5jcHVMaW1pdD1uZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+TnVtYmVyIG9mIENQVXMgKGxlYXZlIGVtcHR5IGZvciB1bmxpbWl0ZWQpPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPk1lbW9yeSBMaW1pdDwvbGFiZWw+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iZS5nLiwgNTEybSBvciAxZyIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMubWVtb3J5TGltaXR9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHtuZT0+dGhpcy5tZW1vcnlMaW1pdD1uZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+TWVtb3J5IGxpbWl0IChsZWF2ZSBlbXB0eSBmb3IgdW5saW1pdGVkKTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFJlc3RhcnQgUG9saWN5ICYgTmV0d29yayAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQgMTVhMS42NSAxLjY1IDAgMCAwIC4zMyAxLjgybC4wNi4wNmEyIDIgMCAwIDEgMCAyLjgzIDIgMiAwIDAgMS0yLjgzIDBsLS4wNi0uMDZhMS42NSAxLjY1IDAgMCAwLTEuODItLjMzIDEuNjUgMS42NSAwIDAgMC0xIDEuNTFWMjFhMiAyIDAgMCAxLTIgMiAyIDIgMCAwIDEtMi0ydi0uMDlBMS42NSAxLjY1IDAgMCAwIDkgMTkuNGExLjY1IDEuNjUgMCAwIDAtMS44Mi4zM2wtLjA2LjA2YTIgMiAwIDAgMS0yLjgzIDAgMiAyIDAgMCAxIDAtMi44M2wuMDYtLjA2YTEuNjUgMS42NSAwIDAgMCAuMzMtMS44MiAxLjY1IDEuNjUgMCAwIDAtMS41MS0xSDNhMiAyIDAgMCAxLTItMiAyIDIgMCAwIDEgMi0yaC4wOUExLjY1IDEuNjUgMCAwIDAgNC42IDlhMS42NSAxLjY1IDAgMCAwLS4zMy0xLjgybC0uMDYtLjA2YTIgMiAwIDAgMSAwLTIuODMgMiAyIDAgMCAxIDIuODMgMGwuMDYuMDZhMS42NSAxLjY1IDAgMCAwIDEuODIuMzNIOWExLjY1IDEuNjUgMCAwIDAgMS0xLjUxVjNhMiAyIDAgMCAxIDItMiAyIDIgMCAwIDEgMiAydi4wOWExLjY1IDEuNjUgMCAwIDAgMSAxLjUxIDEuNjUgMS42NSAwIDAgMCAxLjgyLS4zM2wuMDYtLjA2YTIgMiAwIDAgMSAyLjgzIDAgMiAyIDAgMCAxIDAgMi44M2wtLjA2LjA2YTEuNjUgMS42NSAwIDAgMC0uMzMgMS44MlY5YTEuNjUgMS42NSAwIDAgMCAxLjUxIDFIMjFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEtMiAyaC0uMDlhMS42NSAxLjY1IDAgMCAwLTEuNTEgMXoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENvbnRhaW5lciBTZXR0aW5ncwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+UmVzdGFydCBQb2xpY3k8L2xhYmVsPgogICAgICAgICAgICAgIDxzZWxlY3QKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLXNlbGVjdCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMucmVzdGFydFBvbGljeX0KICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtuZT0+dGhpcy5yZXN0YXJ0UG9saWN5PW5lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJhbHdheXMiPkFsd2F5czwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ib24tZmFpbHVyZSI+T24gRmFpbHVyZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ibmV2ZXIiPk5ldmVyPC9vcHRpb24+CiAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPk5ldHdvcmsgTW9kZTwvbGFiZWw+CiAgICAgICAgICAgICAgPHNlbGVjdAogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0tc2VsZWN0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5uZXR3b3JrTW9kZX0KICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtuZT0+dGhpcy5uZXR3b3JrTW9kZT1uZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYnJpZGdlIj5CcmlkZ2U8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Imhvc3QiPkhvc3Q8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im5vbmUiPk5vbmU8L29wdGlvbj4KICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgIDxidXR0b24gY2xhc3M9ImJ1dHRvbiBzZWNvbmRhcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNhbmNlbCgpfT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uCiAgICAgICAgICBjbGFzcz0iYnV0dG9uIHByaW1hcnkiCiAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmxvYWRpbmd8fCF0aGlzLmlzVmFsaWQoKX0KICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgID4KICAgICAgICAgICR7dGhpcy5sb2FkaW5nP3dgPGRpdiBjbGFzcz0ic3Bpbm5lciI+PC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5sb2FkaW5nPyJEZXBsb3lpbmcuLi4iOiJEZXBsb3kgU2VydmljZSJ9CiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYH1pc1ZhbGlkKCl7cmV0dXJuIHRoaXMuc2VydmljZU5hbWUudHJpbSgpIT09IiImJnRoaXMuaW1hZ2VVcmwudHJpbSgpIT09IiJ9YWRkUG9ydCgpe3RoaXMucG9ydHM9Wy4uLnRoaXMucG9ydHMse2hvc3RQb3J0OiIiLGNvbnRhaW5lclBvcnQ6IiIscHJvdG9jb2w6InRjcCJ9XX1yZW1vdmVQb3J0KG5lKXt0aGlzLnBvcnRzPXRoaXMucG9ydHMuZmlsdGVyKChlZSx6ZSk9PnplIT09bmUpfXVwZGF0ZVBvcnQobmUsZWUsemUpe2xldCBIZT1bLi4udGhpcy5wb3J0c107SGVbbmVdW2VlXT16ZSx0aGlzLnBvcnRzPUhlfWFkZEVudlZhcigpe3RoaXMuZW52VmFycz1bLi4udGhpcy5lbnZWYXJzLHtrZXk6IiIsdmFsdWU6IiJ9XX1yZW1vdmVFbnZWYXIobmUpe3RoaXMuZW52VmFycz10aGlzLmVudlZhcnMuZmlsdGVyKChlZSx6ZSk9PnplIT09bmUpfXVwZGF0ZUVudlZhcihuZSxlZSx6ZSl7bGV0IEhlPVsuLi50aGlzLmVudlZhcnNdO0hlW25lXVtlZV09emUsdGhpcy5lbnZWYXJzPUhlfWFkZFZvbHVtZSgpe3RoaXMudm9sdW1lcz1bLi4udGhpcy52b2x1bWVzLHtob3N0UGF0aDoiIixjb250YWluZXJQYXRoOiIiLHJlYWRPbmx5OiExfV19cmVtb3ZlVm9sdW1lKG5lKXt0aGlzLnZvbHVtZXM9dGhpcy52b2x1bWVzLmZpbHRlcigoZWUsemUpPT56ZSE9PW5lKX11cGRhdGVWb2x1bWUobmUsZWUsemUpe2xldCBIZT1bLi4udGhpcy52b2x1bWVzXTtIZVtuZV1bZWVdPXplLHRoaXMudm9sdW1lcz1IZX1oYW5kbGVDYW5jZWwoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjYW5jZWwiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNyZWF0ZSgpe2xldCBuZT17bmFtZTp0aGlzLnNlcnZpY2VOYW1lLnRyaW0oKSxpbWFnZTp0aGlzLmltYWdlVXJsLnRyaW0oKSxwb3J0czp0aGlzLnBvcnRzLmZpbHRlcihlZT0+ZWUuaG9zdFBvcnQmJmVlLmNvbnRhaW5lclBvcnQpLGVudlZhcnM6dGhpcy5lbnZWYXJzLmZpbHRlcihlZT0+ZWUua2V5KSx2b2x1bWVzOnRoaXMudm9sdW1lcy5maWx0ZXIoZWU9PmVlLmhvc3RQYXRoJiZlZS5jb250YWluZXJQYXRoKSxjcHVMaW1pdDp0aGlzLmNwdUxpbWl0LG1lbW9yeUxpbWl0OnRoaXMubWVtb3J5TGltaXQscmVzdGFydFBvbGljeTp0aGlzLnJlc3RhcnRQb2xpY3ksbmV0d29ya01vZGU6dGhpcy5uZXR3b3JrTW9kZSxlbmFibGVNb25nb0RCOnRoaXMuZW5hYmxlTW9uZ29EQixlbmFibGVTMzp0aGlzLmVuYWJsZVMzLGVuYWJsZUNsaWNrSG91c2U6dGhpcy5lbmFibGVDbGlja0hvdXNlfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjcmVhdGUtc2VydmljZSIse2RldGFpbDpuZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXJlc2V0KCl7dGhpcy5zZXJ2aWNlTmFtZT0iIix0aGlzLmltYWdlVXJsPSIiLHRoaXMuc2VsZWN0ZWRSZWdpc3RyeT0iIix0aGlzLnBvcnRzPVt7aG9zdFBvcnQ6IiIsY29udGFpbmVyUG9ydDoiIixwcm90b2NvbDoidGNwIn1dLHRoaXMuZW52VmFycz1be2tleToiIix2YWx1ZToiIn1dLHRoaXMudm9sdW1lcz1bXSx0aGlzLmNwdUxpbWl0PSIiLHRoaXMubWVtb3J5TGltaXQ9IiIsdGhpcy5yZXN0YXJ0UG9saWN5PSJhbHdheXMiLHRoaXMubmV0d29ya01vZGU9ImJyaWRnZSIsdGhpcy5zaG93QWR2YW5jZWQ9ITEsdGhpcy5lbmFibGVNb25nb0RCPSExLHRoaXMuZW5hYmxlUzM9ITEsdGhpcy5lbmFibGVDbGlja0hvdXNlPSExfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxiYSh0aGlzLFYpfXN0YXRpY3tiYShhLHIpfX07cmV0dXJuIGxlPWF9KSgpfSk7dmFyIGFtZSx5Zyx2QmEsb2lhPXUoKCk9Pnt2ZSgpO2FtZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0seWc9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHZCYT0oKCk9PntsZXQgdD1bdWUoInN6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pQbGF0Zm9ybVNlcnZpY2VEZXRhaWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpBcnJheX0pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sYW1lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4ic2VydmljZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnNlcnZpY2UsImdldCIpLHNldDppKChnLHkpPT57Zy5zZXJ2aWNlPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxhbWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJsb2dzImluIGcsImhhcyIpLGdldDppKGc9PmcubG9ncywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmxvZ3M9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLGFtZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbkxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImFjdGlvbkxvYWRpbmciaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5hY3Rpb25Mb2FkaW5nLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuYWN0aW9uTG9hZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksYW1lKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTAwMHB4OyI+CiAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlLWRldGFpbC12aWV3CiAgICAgICAgLnNlcnZpY2U9JHt7aWQ6IjEiLG5hbWU6Ik1vbmdvREIiLHR5cGU6Im1vbmdvZGIiLHN0YXR1czoicnVubmluZyIsdmVyc2lvbjoiNy4wLjQiLGhvc3Q6ImxvY2FsaG9zdCIscG9ydDoyNzAxNyxjcmVkZW50aWFsczp7dXNlcm5hbWU6ImFkbWluIixwYXNzd29yZDoiXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyIn0sY29uZmlnOntyZXBsaWNhU2V0OiJyczAiLGF1dGhFbmFibGVkOiEwfSxtZXRyaWNzOntjcHU6MTIsbWVtb3J5OjQ1LHN0b3JhZ2U6MjMsY29ubmVjdGlvbnM6OH19fQogICAgICAgIC5sb2dzPSR7W3t0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjIiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJDb25uZWN0aW9uIGFjY2VwdGVkIGZyb20gMTI3LjAuMC4xOjU0MzIxIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMCIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkluZGV4IGJ1aWxkIGNvbXBsZXRlZCBvbiBjb2xsZWN0aW9uIHVzZXJzIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoxNSIsbGV2ZWw6Indhcm4iLG1lc3NhZ2U6IlNsb3cgcXVlcnkgZGV0ZWN0ZWQ6IDEuMnMgb24gY29sbGVjdGlvbiBvcmRlcnMifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjEwIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiQ2hlY2twb2ludCBjb21wbGV0ZSJ9XX0KICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlBsYXRmb3JtIl07I2U9eWcodGhpcyxvLG51bGwpO2dldCBzZXJ2aWNlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlcnZpY2UoYil7dGhpcy4jZT1ifSN0PSh5Zyh0aGlzLGwpLHlnKHRoaXMsZCxbXSkpO2dldCBsb2dzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ3MoYil7dGhpcy4jdD1ifSNyPSh5Zyh0aGlzLGYpLHlnKHRoaXMsaCwhMSkpO2dldCBhY3Rpb25Mb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFjdGlvbkxvYWRpbmcoYil7dGhpcy4jcj1ifXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWljb24gewogICAgICAgIHdpZHRoOiA1NnB4OwogICAgICAgIGhlaWdodDogNTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtZGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuc2VydmljZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2VydmljZS1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuZnVsbC13aWR0aCB7CiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5pbmZvLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jb3B5LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgIC5tZXRyaWNzLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtY2FyZCB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbC5sb3cgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWZpbGwubWVkaXVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VhYjMwOCIsIiNlYWIzMDgiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1maWxsLmhpZ2ggewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1rZXkgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlLnRydWUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jb25maWctdmFsdWUuZmFsc2UgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5zZXJ2aWNlP3dgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uIj4KICAgICAgICAgICAgJHt0aGlzLnJlbmRlclNlcnZpY2VJY29uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtZGV0YWlscyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtbmFtZSI+JHt0aGlzLnNlcnZpY2UubmFtZX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1tZXRhIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7dGhpcy5zZXJ2aWNlLnN0YXR1c30iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0aGlzLnNlcnZpY2Uuc3RhdHVzLnNsaWNlKDEpfQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj5WZXJzaW9uICR7dGhpcy5zZXJ2aWNlLnZlcnNpb259PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cz09PSJydW5uaW5nIj93YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlc3RhcnQoKX0+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjMgNCAyMyAxMCAxNyAxMCI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjEgMjAgMSAxNCA3IDE0Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMuNTEgOWE5IDkgMCAwIDEgMTQuODUtMy4zNkwyMyAxME0xIDE0bDQuNjQgNC4zNkE5IDkgMCAwIDAgMjAuNDkgMTUiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBSZXN0YXJ0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRhbmdlciIgP2Rpc2FibGVkPSR7dGhpcy5hY3Rpb25Mb2FkaW5nfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTdG9wKCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxyZWN0IHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjEiPjwvcmVjdD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBTdG9wCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVN0YXJ0KCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI1LDMgMTksMTIgNSwyMSI+PC9wb2x5Z29uPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFN0YXJ0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8IS0tIENvbm5lY3Rpb24gSW5mbyAtLT4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBDb25uZWN0aW9uCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkhvc3Q8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuaG9zdH0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmhvc3QpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Qb3J0PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4ke3RoaXMuc2VydmljZS5wb3J0fTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzPy51c2VybmFtZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Vc2VybmFtZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHMudXNlcm5hbWV9CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLnVzZXJuYW1lKX0+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+UGFzc3dvcmQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCiPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMuc2VydmljZS5jcmVkZW50aWFscz8uYWNjZXNzS2V5P3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkFjY2VzcyBLZXk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLmFjY2Vzc0tleX0KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29weS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNvcHlUb0NsaXBib2FyZCh0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHMuYWNjZXNzS2V5KX0+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+U2VjcmV0IEtleTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj7igKLigKLigKLigKLigKLigKLigKLigKI8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPCEtLSBDb25maWd1cmF0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkuNCAxNWExLjY1IDEuNjUgMCAwIDAgLjMzIDEuODJsLjA2LjA2YTIgMiAwIDAgMSAwIDIuODMgMiAyIDAgMCAxLTIuODMgMGwtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMS0yLTJ2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMgMCAyIDIgMCAwIDEgMC0yLjgzbC4wNi0uMDZhMS42NSAxLjY1IDAgMCAwIC4zMy0xLjgyIDEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMSAyLTJoLjA5QTEuNjUgMS42NSAwIDAgMCA0LjYgOWExLjY1IDEuNjUgMCAwIDAtLjMzLTEuODJsLS4wNi0uMDZhMiAyIDAgMCAxIDAtMi44MyAyIDIgMCAwIDEgMi44MyAwbC4wNi4wNmExLjY1IDEuNjUgMCAwIDAgMS44Mi4zM0g5YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgMi0yIDIgMiAwIDAgMSAyIDJ2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMCAyIDIgMCAwIDEgMCAyLjgzbC0uMDYuMDZhMS42NSAxLjY1IDAgMCAwLS4zMyAxLjgyVjlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMS0yIDJoLS4wOWExLjY1IDEuNjUgMCAwIDAtMS41MSAxeiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXModGhpcy5zZXJ2aWNlLmNvbmZpZykubWFwKChbYixnXSk9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbmZpZy1rZXkiPiR7dGhpcy5mb3JtYXRDb25maWdLZXkoYil9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbmZpZy12YWx1ZSAke3R5cGVvZiBnPT0iYm9vbGVhbiI/Zz8idHJ1ZSI6ImZhbHNlIjoiIn0iPiR7dGhpcy5mb3JtYXRDb25maWdWYWx1ZShnKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gTWV0cmljcyAtLT4KICAgICAgICAke3RoaXMuc2VydmljZS5tZXRyaWNzP3dgCiAgICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSJmdWxsLXdpZHRoIj4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxOCIgeTE9IjIwIiB4Mj0iMTgiIHkyPSIxMCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMCIgeDI9IjEyIiB5Mj0iNCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjIwIiB4Mj0iNiIgeTI9IjE0Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIFJlc291cmNlIFVzYWdlCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5jcHV9JTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPkNQVTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3MuY3B1KX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5jcHV9JSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5tZW1vcnl9JTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPk1lbW9yeTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3MubWVtb3J5KX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5tZW1vcnl9JSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlfSU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWxhYmVsIj5TdG9yYWdlPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZmlsbCAke3RoaXMuZ2V0UHJvZ3Jlc3NDbGFzcyh0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlKX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlfSUiPjwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UubWV0cmljcy5jb25uZWN0aW9ucyE9PXZvaWQgMD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuc2VydmljZS5tZXRyaWNzLmNvbm5lY3Rpb25zfTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1sYWJlbCI+Q29ubmVjdGlvbnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIGA6IiJ9CgogICAgICAgIDwhLS0gTG9ncyAtLT4KICAgICAgICA8ZGl2IHN0eWxlPSJncmlkLWNvbHVtbjogMSAvIC0xOyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgTG9ncyJ9CiAgICAgICAgICAgIC5sb2dFbnRyaWVzPSR7dGhpcy5sb2dzLm1hcChiPT4oe3RpbWVzdGFtcDpiLnRpbWVzdGFtcC5pbmNsdWRlcygiVCIpP2IudGltZXN0YW1wOm5ldyBEYXRlKGIudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGxldmVsOmIubGV2ZWwsbWVzc2FnZTpiLm1lc3NhZ2V9KSl9CiAgICAgICAgICAgIC5hdXRvU2Nyb2xsPSR7ITB9CiAgICAgICAgICAgIC5tYXhFbnRyaWVzPSR7MmUzfQogICAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGA6d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gc2VydmljZSBzZWxlY3RlZDwvZGl2PmB9cmVuZGVyU2VydmljZUljb24oKXtzd2l0Y2godGhpcy5zZXJ2aWNlPy50eXBlKXtjYXNlIm1vbmdvZGIiOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NS0uNDktNy0zLjg1LTctNy45MyAwLS42Mi4wOC0xLjIxLjIxLTEuNzlMOSAxNXYxYzAgMS4xLjkgMiAyIDJ2MS45M3ptNi45LTIuNTRjLS4yNi0uODEtMS0xLjM5LTEuOS0xLjM5aC0xdi0zYzAtLjU1LS40NS0xLTEtMUg4di0yaDJjLjU1IDAgMS0uNDUgMS0xVjdoMmMxLjEgMCAyLS45IDItMnYtLjQxYzIuOTMgMS4xOSA1IDQuMDYgNSA3LjQxIDAgMi4wOC0uOCAzLjk3LTIuMSA1LjM5eiIvPjwvc3ZnPmA7Y2FzZSJtaW5pbyI6cmV0dXJuIHdgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTIxIDE2LjVjMCAuMzgtLjIxLjcxLS41My44OGwtNy45IDQuNDRjLS4xNi4xMi0uMzYuMTgtLjU3LjE4LS4yMSAwLS40MS0uMDYtLjU3LS4xOGwtNy45LTQuNDRBLjk5MS45OTEgMCAwIDEgMyAxNi41di05YzAtLjM4LjIxLS43MS41My0uODhsNy45LTQuNDRjLjE2LS4xMi4zNi0uMTguNTctLjE4LjIxIDAgLjQxLjA2LjU3LjE4bDcuOSA0LjQ0Yy4zMi4xNy41My41LjUzLjg4djl6Ii8+PC9zdmc+YDtjYXNlImNsaWNraG91c2UiOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIi8+PHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjYiIGhlaWdodD0iMTUiLz48cmVjdCB4PSIxNiIgeT0iMTIiIHdpZHRoPSI2IiBoZWlnaHQ9IjEwIi8+PC9zdmc+YDtjYXNlInJlZGlzIjpyZXR1cm4gd2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTIgMkwyIDdsMTAgNSAxMC01LTEwLTV6TTIgMTdsMTAgNSAxMC01TTIgMTJsMTAgNSAxMC01Ii8+PC9zdmc+YDtkZWZhdWx0OnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHJlY3QgeD0iMiIgeT0iMTQiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSI2LjAxIiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSI2LjAxIiB5Mj0iMTgiPjwvbGluZT48L3N2Zz5gfX1nZXRQcm9ncmVzc0NsYXNzKGIpe3JldHVybiBiPDUwPyJsb3ciOmI8ODA/Im1lZGl1bSI6ImhpZ2gifWZvcm1hdENvbmZpZ0tleShiKXtyZXR1cm4gYi5yZXBsYWNlKC8oW0EtWl0pL2csIiAkMSIpLnJlcGxhY2UoL14uLyxnPT5nLnRvVXBwZXJDYXNlKCkpfWZvcm1hdENvbmZpZ1ZhbHVlKGIpe3JldHVybiB0eXBlb2YgYj09ImJvb2xlYW4iP2I/IkVuYWJsZWQiOiJEaXNhYmxlZCI6U3RyaW5nKGIpfWNvcHlUb0NsaXBib2FyZChiKXtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChiKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb3B5Iix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTdGFydCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0YXJ0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVN0b3AoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdG9wIix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlc3RhcnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXN0YXJ0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx5Zyh0aGlzLG0pfXN0YXRpY3t5ZyhhLHIpfX07cmV0dXJuIHY9YX0pKCl9KTt2YXIgY2FlLF8zLHlCYSxsaWE9dSgoKT0+e3ZlKCk7Y2FlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxfMz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0seUJhPSgoKT0+e2xldCB0PVt1ZSgic3otZG9tYWluLWRldGFpbC12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RG9tYWluRGV0YWlsVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6T2JqZWN0fSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLGNhZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRvbWFpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iZG9tYWluImluIE0sImhhcyIpLGdldDppKE09Pk0uZG9tYWluLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uZG9tYWluPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxjYWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZXJ0aWZpY2F0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iY2VydGlmaWNhdGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5jZXJ0aWZpY2F0ZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmNlcnRpZmljYXRlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxjYWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkbnNSZWNvcmRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJkbnNSZWNvcmRzImluIE0sImhhcyIpLGdldDppKE09Pk0uZG5zUmVjb3JkcywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmRuc1JlY29yZHM9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxoLG0pLGNhZSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbkxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImFjdGlvbkxvYWRpbmciaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5hY3Rpb25Mb2FkaW5nLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uYWN0aW9uTG9hZGluZz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksY2FlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwscikseT1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTAwMHB4OyI+CiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7e2lkOiIxIixuYW1lOiJleGFtcGxlLmNvbSIsc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMCIscHJveHlSb3V0ZXM6WyIvYXBpLyoiLCIvYXBwLyoiXX19CiAgICAgICAgLmNlcnRpZmljYXRlPSR7e2lkOiIxIixkb21haW46ImV4YW1wbGUuY29tIixpc3N1ZXI6IkxldCdzIEVuY3J5cHQiLHZhbGlkRnJvbToiMjAyNC0wMS0xMCIsdmFsaWRVbnRpbDoiMjAyNC0wNC0xMCIsZGF5c1JlbWFpbmluZzo0NSxzdGF0dXM6InZhbGlkIixhdXRvUmVuZXc6ITAsY2hhaW46WyJSMyIsIklTUkcgUm9vdCBYMSJdfX0KICAgICAgICAuZG5zUmVjb3Jkcz0ke1t7aWQ6IjEiLHR5cGU6IkEiLG5hbWU6IkAiLHZhbHVlOiIxOTIuMTY4LjEuMTAwIix0dGw6MzYwMH0se2lkOiIyIix0eXBlOiJDTkFNRSIsbmFtZToid3d3Iix2YWx1ZToiZXhhbXBsZS5jb20iLHR0bDozNjAwfSx7aWQ6IjMiLHR5cGU6Ik1YIixuYW1lOiJAIix2YWx1ZToibWFpbC5leGFtcGxlLmNvbSIsdHRsOjM2MDAscHJpb3JpdHk6MTB9LHtpZDoiNCIsdHlwZToiVFhUIixuYW1lOiJAIix2YWx1ZToidj1zcGYxIGluY2x1ZGU6X3NwZi5leGFtcGxlLmNvbSB+YWxsIix0dGw6MzYwMH1dfQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9XzModGhpcyxvLG51bGwpO2dldCBkb21haW4oKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG9tYWluKGspe3RoaXMuI2U9a30jdD0oXzModGhpcyxsKSxfMyh0aGlzLGQsbnVsbCkpO2dldCBjZXJ0aWZpY2F0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBjZXJ0aWZpY2F0ZShrKXt0aGlzLiN0PWt9I3I9KF8zKHRoaXMsZiksXzModGhpcyxoLFtdKSk7Z2V0IGRuc1JlY29yZHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZG5zUmVjb3JkcyhrKXt0aGlzLiNyPWt9I2E9KF8zKHRoaXMsbSksXzModGhpcyxiLCExKSk7Z2V0IGFjdGlvbkxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYWN0aW9uTG9hZGluZyhrKXt0aGlzLiNhPWt9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZG9tYWluLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAuZG9tYWluLW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC52ZXJpZmllZC1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAudmVyaWZpZWQtYmFkZ2Ugc3ZnIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuZnVsbC13aWR0aCB7CiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5jZXJ0LXN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjBmZGY0IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4xKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmNlcnQtc3RhdHVzLmV4cGlyaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmJlYiIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjEpIil9OwogICAgICB9CgogICAgICAuY2VydC1zdGF0dXMuZXhwaXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWYyZjIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICB9CgogICAgICAuY2VydC1pY29uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbi52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24uZXhwaXJpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmM2M3IiwicmdiYSgyNDUsIDE1OCwgMTEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDk3NzA2IiwiI2Y1OWUwYiIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbi5leHBpcmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLmNlcnQtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmNlcnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cy52YWxpZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cy5leHBpcmluZyB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDk3NzA2IiwiI2Y1OWUwYiIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cy5leHBpcmVkIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY2VydC1kYXlzLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuaW5mby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5pbmZvLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAuaW5mby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5pbmZvLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaW5mby12YWx1ZS5lbmFibGVkIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuY2hhaW4tbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jaGFpbi1iYWRnZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZG5zLXRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRucy1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDFmciAyZnIgODBweCA2MHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmRucy1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDFmciAyZnIgODBweCA2MHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuZG5zLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAuZG5zLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIG1hcmdpbjogMCAtMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmRucy10eXBlIHsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuZG5zLW5hbWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kbnMtdmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5kbnMtdHRsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZG5zLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5yb3V0ZXMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5yb3V0ZS1iYWRnZSB7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5kb21haW4/d2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItaW5mbyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkb21haW4tbmFtZSI+CiAgICAgICAgICAgICR7dGhpcy5kb21haW4ubmFtZX0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuZG9tYWluLnN0YXR1c30iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi5zdGF0dXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdGhpcy5kb21haW4uc3RhdHVzLnNsaWNlKDEpfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbi1tZXRhIj4KICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi52ZXJpZmllZD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2ZXJpZmllZC1iYWRnZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxMS4wOFYxMmExMCAxMCAwIDEgMS01LjkzLTkuMTQiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjIgNCAxMiAxNC4wMSA5IDExLjAxIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICBWZXJpZmllZAogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDp3YDxzcGFuPk5vdCB2ZXJpZmllZDwvc3Bhbj5gfQogICAgICAgICAgICA8c3Bhbj5BZGRlZCAke3RoaXMuZG9tYWluLmNyZWF0ZWRBdH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAke3RoaXMuZG9tYWluLnZlcmlmaWVkPyIiOndgCiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iID9kaXNhYmxlZD0ke3RoaXMuYWN0aW9uTG9hZGluZ30gQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVmVyaWZ5KCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFZlcmlmeSBEb21haW4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICBgfQogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkYW5nZXIiID9kaXNhYmxlZD0ke3RoaXMuYWN0aW9uTG9hZGluZ30gQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlKCl9PgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyA2IDUgNiAyMSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZtMyAwVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgRGVsZXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8IS0tIENlcnRpZmljYXRlIFNlY3Rpb24gLS0+CiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cmVjdCB4PSIzIiB5PSIxMSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03IDExVjdhNSA1IDAgMCAxIDEwIDB2NCI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFNTTCBDZXJ0aWZpY2F0ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1zdGF0dXMgJHt0aGlzLmNlcnRpZmljYXRlLnN0YXR1c30iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1pY29uICR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXN9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlLnN0YXR1cz09PSJ2YWxpZCI/d2AKICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTEuMDhWMTJhMTAgMTAgMCAxIDEtNS45My05LjE0Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMiA0IDEyIDE0LjAxIDkgMTEuMDEiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIGA6dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXM9PT0iZXhwaXJpbmciP3dgCiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIuMDEiIHkyPSIxNiI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE1IiB5MT0iOSIgeDI9IjkiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjkiIHkxPSI5IiB4Mj0iMTUiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LWluZm8iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LXRpdGxlIj4ke3RoaXMuY2VydGlmaWNhdGUuc3RhdHVzPT09InZhbGlkIj8iQ2VydGlmaWNhdGUgVmFsaWQiOnRoaXMuY2VydGlmaWNhdGUuc3RhdHVzPT09ImV4cGlyaW5nIj8iQ2VydGlmaWNhdGUgRXhwaXJpbmcgU29vbiI6IkNlcnRpZmljYXRlIEV4cGlyZWQifTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LXN1YnRpdGxlIj5Jc3N1ZWQgYnkgJHt0aGlzLmNlcnRpZmljYXRlLmlzc3Vlcn08L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1kYXlzICR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXN9Ij4ke01hdGguYWJzKHRoaXMuY2VydGlmaWNhdGUuZGF5c1JlbWFpbmluZyl9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtZGF5cy1sYWJlbCI+JHt0aGlzLmNlcnRpZmljYXRlLmRheXNSZW1haW5pbmc+PTA/ImRheXMgbGVmdCI6ImRheXMgYWdvIn08L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+VmFsaWQgRnJvbTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4ke3RoaXMuY2VydGlmaWNhdGUudmFsaWRGcm9tfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+VmFsaWQgVW50aWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+JHt0aGlzLmNlcnRpZmljYXRlLnZhbGlkVW50aWx9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5BdXRvLVJlbmV3PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUgJHt0aGlzLmNlcnRpZmljYXRlLmF1dG9SZW5ldz8iZW5hYmxlZCI6IiJ9Ij4ke3RoaXMuY2VydGlmaWNhdGUuYXV0b1JlbmV3PyJFbmFibGVkIjoiRGlzYWJsZWQifTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke3RoaXMuY2VydGlmaWNhdGUuY2hhaW4mJnRoaXMuY2VydGlmaWNhdGUuY2hhaW4ubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkNlcnRpZmljYXRlIENoYWluPC9zcGFuPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFpbi1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAke3RoaXMuY2VydGlmaWNhdGUuY2hhaW4ubWFwKGs9PndgPHNwYW4gY2xhc3M9ImNoYWluLWJhZGdlIj4ke2t9PC9zcGFuPmApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gY2VydGlmaWNhdGUgY29uZmlndXJlZDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMuY2VydGlmaWNhdGU/d2AKICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVuZXdDZXJ0aWZpY2F0ZSgpfT5SZW5ldzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gUHJveHkgUm91dGVzIFNlY3Rpb24gLS0+CiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNiAzIDIxIDMgMjEgOCI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI0IiB5MT0iMjAiIHgyPSIyMSIgeTI9IjMiPjwvbGluZT4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIxIDE2IDIxIDIxIDE2IDIxIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE1IiB5MT0iMTUiIHgyPSIyMSIgeTI9IjIxIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iNCIgeTE9IjQiIHgyPSI5IiB5Mj0iOSI+PC9saW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFByb3h5IFJvdXRlcwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi5wcm94eVJvdXRlcyYmdGhpcy5kb21haW4ucHJveHlSb3V0ZXMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3V0ZXMtbGlzdCI+CiAgICAgICAgICAgICAgICAke3RoaXMuZG9tYWluLnByb3h5Um91dGVzLm1hcChrPT53YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icm91dGUtYmFkZ2UiPiR7a308L3NwYW4+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBwcm94eSByb3V0ZXMgY29uZmlndXJlZDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gRE5TIFJlY29yZHMgU2VjdGlvbiAtLT4KICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSJmdWxsLXdpZHRoIj4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMiIgeTE9IjEyIiB4Mj0iMjIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDJhMTUuMyAxNS4zIDAgMCAxIDQgMTAgMTUuMyAxNS4zIDAgMCAxLTQgMTAgMTUuMyAxNS4zIDAgMCAxLTQtMTAgMTUuMyAxNS4zIDAgMCAxIDQtMTB6Ij48L3BhdGg+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgRE5TIFJlY29yZHMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7dGhpcy5kbnNSZWNvcmRzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG5zLXRhYmxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRucy1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8c3Bhbj5UeXBlPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj5OYW1lPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj5WYWx1ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+VFRMPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy5kbnNSZWNvcmRzLm1hcChrPT53YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkbnMtcm93Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLXR5cGUiPiR7ay50eXBlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLW5hbWUiPiR7ay5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLXZhbHVlIiB0aXRsZT0iJHtrLnZhbHVlfSI+JHtrLnByaW9yaXR5P2Ake2sucHJpb3JpdHl9IGA6IiJ9JHtrLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLXR0bCI+JHtrLnR0bH1zPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkbnMtYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IkVkaXQiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUVkaXREbnNSZWNvcmQoayl9PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTExIDRINGEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41IDIuNWEyLjEyMSAyLjEyMSAwIDAgMSAzIDNMMTIgMTVsLTQgMSAxLTQgOS41LTkuNXoiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIGRhbmdlciIgdGl0bGU9IkRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlRG5zUmVjb3JkKGspfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2bTMgMFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gRE5TIHJlY29yZHMgY29uZmlndXJlZDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWRkRG5zUmVjb3JkKCl9PgogICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgQWRkIFJlY29yZAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgogICAgICA8L2Rpdj4KICAgIGA6d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gZG9tYWluIHNlbGVjdGVkPC9kaXY+YH1oYW5kbGVWZXJpZnkoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2ZXJpZnktZG9tYWluIix7ZGV0YWlsOnRoaXMuZG9tYWluLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLWRvbWFpbiIse2RldGFpbDp0aGlzLmRvbWFpbixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlbmV3Q2VydGlmaWNhdGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZW5ldy1jZXJ0aWZpY2F0ZSIse2RldGFpbDp0aGlzLmNlcnRpZmljYXRlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWRkRG5zUmVjb3JkKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWRkLWRucy1yZWNvcmQiLHtkZXRhaWw6dGhpcy5kb21haW4sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVFZGl0RG5zUmVjb3JkKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImVkaXQtZG5zLXJlY29yZCIse2RldGFpbDprLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlRG5zUmVjb3JkKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1kbnMtcmVjb3JkIix7ZGV0YWlsOmssYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksXzModGhpcyxnKX1zdGF0aWN7XzMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIGRhZSxUMyx3QmEsY2lhPXUoKCk9Pnt2ZSgpO2RhZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sVDM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHdCYT0oKCk9PntsZXQgdD1bdWUoInN6LW10YS1saXN0LXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pNdGFMaXN0VmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6QXJyYXl9KV0sYz1baWUoKV0scD1baWUoKV0sdj1baWUoKV0sZGFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW1haWxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJlbWFpbHMiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5lbWFpbHMsImdldCIpLHNldDppKChNLE4pPT57TS5lbWFpbHM9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLGRhZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJzZWFyY2hRdWVyeSJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uc2VhcmNoUXVlcnk9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxkLGYpLGRhZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1c0ZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic3RhdHVzRmlsdGVyImluIE0sImhhcyIpLGdldDppKE09Pk0uc3RhdHVzRmlsdGVyLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uc3RhdHVzRmlsdGVyPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxkYWUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb25GaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImRpcmVjdGlvbkZpbHRlciJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmRpcmVjdGlvbkZpbHRlciwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmRpcmVjdGlvbkZpbHRlcj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksZGFlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwscikseT1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1tdGEtbGlzdC12aWV3CiAgICAgICAgLmVtYWlscz0ke1t7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIixzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIn0se2lkOiIyIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImJvdW5jZWQiLGZyb206ImFsZXJ0c0BzZXJ2ZS56b25lIix0bzoiaW52YWxpZEBub3doZXJlLnRlc3QiLHN1YmplY3Q6IlNlcnZpY2UgQWxlcnQ6IENQVSBVc2FnZSBIaWdoIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6Mjg6MTAiLG1lc3NhZ2VJZDoiPGRlZjQ1NkBzZXJ2ZS56b25lPiIsc2l6ZToiOC4yIEtCIn0se2lkOiIzIixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsdG86ImFkbWluQHNlcnZlLnpvbmUiLHN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyNTowMCIsbWVzc2FnZUlkOiI8Z2hpNzg5QGN1c3RvbWVyLmNvbT4iLHNpemU6IjI0LjEgS0IifSx7aWQ6IjQiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoicmVqZWN0ZWQiLGZyb206ImJpbGxpbmdAc2VydmUuem9uZSIsdG86ImJsb2NrZWRAc3BhbS1kb21haW4udGVzdCIsc3ViamVjdDoiSW52b2ljZSAjMjAyNC0wMDEiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyMDo0NSIsbWVzc2FnZUlkOiI8amtsMDEyQHNlcnZlLnpvbmU+IixzaXplOiI0NS42IEtCIn0se2lkOiI1IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlZmVycmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJzbG93QHJlbW90ZS1zZXJ2ZXIudGVzdCIsc3ViamVjdDoiUGFzc3dvcmQgUmVzZXQgUmVxdWVzdCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjE1OjMwIixtZXNzYWdlSWQ6Ijxtbm8zNDVAc2VydmUuem9uZT4iLHNpemU6IjYuOCBLQiJ9LHtpZDoiNiIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToiY2lAZ2l0aHViLmNvbSIsdG86ImRldm9wc0BzZXJ2ZS56b25lIixzdWJqZWN0OiJCdWlsZCAjNDUyMSBwYXNzZWQiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoxMDowMCIsbWVzc2FnZUlkOiI8cHFyNjc4QGdpdGh1Yi5jb20+IixzaXplOiIxNS4zIEtCIn0se2lkOiI3IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6InBlbmRpbmciLGZyb206InJlcG9ydHNAc2VydmUuem9uZSIsdG86InRlYW1Ac2VydmUuem9uZSIsc3ViamVjdDoiV2Vla2x5IEluZnJhc3RydWN0dXJlIFJlcG9ydCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjA1OjAwIixtZXNzYWdlSWQ6IjxzdHU5MDFAc2VydmUuem9uZT4iLHNpemU6IjEwMi43IEtCIn1dfQogICAgICA+PC9zei1tdGEtbGlzdC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTVRBIl07I2U9VDModGhpcyxvLFtdKTtnZXQgZW1haWxzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGVtYWlscyhrKXt0aGlzLiNlPWt9I3Q9KFQzKHRoaXMsbCksVDModGhpcyxkLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KGspe3RoaXMuI3Q9a30jcj0oVDModGhpcyxmKSxUMyh0aGlzLGgsImFsbCIpKTtnZXQgc3RhdHVzRmlsdGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHN0YXR1c0ZpbHRlcihrKXt0aGlzLiNyPWt9I2E9KFQzKHRoaXMsbSksVDModGhpcyxiLCJhbGwiKSk7Z2V0IGRpcmVjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNhfXNldCBkaXJlY3Rpb25GaWx0ZXIoayl7dGhpcy4jYT1rfWdldCBmaWx0ZXJlZEVtYWlscygpe3JldHVybiB0aGlzLmVtYWlscy5maWx0ZXIoaz0+e2lmKHRoaXMuc3RhdHVzRmlsdGVyIT09ImFsbCImJmsuc3RhdHVzIT09dGhpcy5zdGF0dXNGaWx0ZXJ8fHRoaXMuZGlyZWN0aW9uRmlsdGVyIT09ImFsbCImJmsuZGlyZWN0aW9uIT09dGhpcy5kaXJlY3Rpb25GaWx0ZXIpcmV0dXJuITE7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IE09dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiBrLmZyb20udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhNKXx8ay50by50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKE0pfHxrLnN1YmplY3QudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhNKXx8ay5tZXNzYWdlSWQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhNKX1yZXR1cm4hMH0pfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmNoaXAtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jaGlwIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlc3VsdHMtY291bnQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDkwcHggMS41ZnIgMS41ZnIgMmZyIDE0MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDkwcHggMS41ZnIgMS41ZnIgMmZyIDE0MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWljb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1pY29uLmluYm91bmQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24taWNvbi5vdXRib3VuZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5kZWxpdmVyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmJvdW5jZWQsCiAgICAgIC5zdGF0dXMtYmFkZ2UucmVqZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlZmVycmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuZW1haWwtZnJvbSwKICAgICAgLmVtYWlsLXRvIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5lbWFpbC1zdWJqZWN0IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmVtYWlsLXRpbWVzdGFtcCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBrPXRoaXMuZmlsdGVyZWRFbWFpbHM7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgIDxpbnB1dAogICAgICAgICAgY2xhc3M9InNlYXJjaC1pbnB1dCIKICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGJ5IGZyb20sIHRvLCBzdWJqZWN0LCBvciBtZXNzYWdlIElELi4uIgogICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgIEBpbnB1dD0ke009Pnt0aGlzLnNlYXJjaFF1ZXJ5PU0udGFyZ2V0LnZhbHVlfX0KICAgICAgICAvPgogICAgICAgIDxkaXYgY2xhc3M9ImNoaXAtZ3JvdXAiPgogICAgICAgICAgJHtbImFsbCIsImluYm91bmQiLCJvdXRib3VuZCJdLm1hcChNPT53YAogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmRpcmVjdGlvbkZpbHRlcj09PU0/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5kaXJlY3Rpb25GaWx0ZXI9TX19CiAgICAgICAgICAgID4ke009PT0iYWxsIj8iQWxsIjpNPT09ImluYm91bmQiPyJJbmJvdW5kIjoiT3V0Ym91bmQifTwvYnV0dG9uPgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiZGVsaXZlcmVkIiwiYm91bmNlZCIsInJlamVjdGVkIiwiZGVmZXJyZWQiLCJwZW5kaW5nIl0ubWFwKE09PndgCiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuc3RhdHVzRmlsdGVyPT09TT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLnN0YXR1c0ZpbHRlcj1NfX0KICAgICAgICAgICAgPiR7TT09PSJhbGwiPyJBbGwiOk0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrTS5zbGljZSgxKX08L2J1dHRvbj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InJlc3VsdHMtY291bnQiPlNob3dpbmcgJHtrLmxlbmd0aH0gb2YgJHt0aGlzLmVtYWlscy5sZW5ndGh9IGVtYWlsczwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0idGFibGUtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+RnJvbTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlRvPC9zcGFuPgogICAgICAgICAgPHNwYW4+U3ViamVjdDwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlRpbWVzdGFtcDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke2subGVuZ3RoPjA/ay5tYXAoTT0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRW1haWxDbGljayhNKX0+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXJlY3Rpb24taWNvbiAke00uZGlyZWN0aW9ufSI+CiAgICAgICAgICAgICAgJHtNLmRpcmVjdGlvbj09PSJpbmJvdW5kIj93YDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PHBvbHlsaW5lIHBvaW50cz0iMTkgMTIgMTIgMTkgNSAxMiIvPjwvc3ZnPmA6d2A8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjEyIiB5Mj0iNSIvPjxwb2x5bGluZSBwb2ludHM9IjUgMTIgMTIgNSAxOSAxMiIvPjwvc3ZnPmB9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke00uc3RhdHVzfSI+JHtNLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtZnJvbSIgdGl0bGU9IiR7TS5mcm9tfSI+JHtNLmZyb219PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtdG8iIHRpdGxlPSIke00udG99Ij4ke00udG99PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtc3ViamVjdCIgdGl0bGU9IiR7TS5zdWJqZWN0fSI+JHtNLnN1YmplY3R9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtdGltZXN0YW1wIj4ke00udGltZXN0YW1wfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gZW1haWxzIGZvdW5kPC9kaXY+CiAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUVtYWlsQ2xpY2soayl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZW1haWwtY2xpY2siLHtkZXRhaWw6ayxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxUMyh0aGlzLGcpfXN0YXRpY3tUMyhhLHIpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgZGlhLHJndCxrQmEsdWlhPXUoKCk9Pnt2ZSgpO2RpYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0scmd0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxrQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1tdGEtZGV0YWlsLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pNdGFEZXRhaWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sZGlhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW1haWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImVtYWlsImluIGYsImhhcyIpLGdldDppKGY9PmYuZW1haWwsImdldCIpLHNldDppKChmLHApPT57Zi5lbWFpbD1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksZGlhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1tdGEtZGV0YWlsLXZpZXcKICAgICAgICAuZW1haWw9JHt7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIix0b0xpc3Q6WyJ1c2VyQGV4YW1wbGUuY29tIl0sc3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MzA6MjIiLG1lc3NhZ2VJZDoiPGFiYzEyM0BzZXJ2ZS56b25lPiIsc2l6ZToiMTIuNCBLQiIsc210cExvZzpbe3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuc2VydmUuem9uZSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwuZXhhbXBsZS5jb20gSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLVNUQVJUVExTIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlNUQVJUVExTIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjAgUmVhZHkgdG8gc3RhcnQgVExTIixyZXNwb25zZUNvZGU6MjIwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtQVVUSCBQTEFJTiBMT0dJTiIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgU0laRSA1MjQyODgwMCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJBVVRIIFBMQUlOIEFIVnpaWElBY0dGemMzZHZjbVE9In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMzUgMi43LjAgQXV0aGVudGljYXRpb24gc3VjY2Vzc2Z1bCIscmVzcG9uc2VDb2RlOjIzNX0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJNQUlMIEZST006PG5vcmVwbHlAc2VydmUuem9uZT4ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJSQ1BUIFRPOjx1c2VyQGV4YW1wbGUuY29tPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIEFjY2VwdGVkIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkRBVEEifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6JzM1NCBFbnRlciBtZXNzYWdlLCBlbmRpbmcgd2l0aCAiLiIgb24gYSBsaW5lIGJ5IGl0c2VsZicscmVzcG9uc2VDb2RlOjM1NH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiIuIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0sgaWQ9MXBRMnJTLTAwMDNBYi1DNCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJRVUlUIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjEgbWFpbC5leGFtcGxlLmNvbSBjbG9zaW5nIGNvbm5lY3Rpb24iLHJlc3BvbnNlQ29kZToyMjF9XSxjb25uZWN0aW9uSW5mbzp7c291cmNlSXA6IjEwLjAuMS41MCIsc291cmNlSG9zdG5hbWU6Im1haWwuc2VydmUuem9uZSIsZGVzdGluYXRpb25JcDoiOTMuMTg0LjIxNi4zNCIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjMiLHRsc0NpcGhlcjoiVExTX0FFU18yNTZfR0NNX1NIQTM4NCIsYXV0aGVudGljYXRlZDohMCxhdXRoTWV0aG9kOiJQTEFJTiIsYXV0aFVzZXI6Im5vcmVwbHlAc2VydmUuem9uZSJ9LGF1dGhlbnRpY2F0aW9uUmVzdWx0czp7c3BmOiJwYXNzIixzcGZEb21haW46InNlcnZlLnpvbmUiLGRraW06InBhc3MiLGRraW1Eb21haW46InNlcnZlLnpvbmUiLGRtYXJjOiJwYXNzIixkbWFyY1BvbGljeToicmVqZWN0In0saGVhZGVyczp7RnJvbToibm9yZXBseUBzZXJ2ZS56b25lIixUbzoidXNlckBleGFtcGxlLmNvbSIsU3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIixEYXRlOiJNb24sIDE1IEphbiAyMDI0IDE0OjMwOjIyICswMDAwIiwiTUlNRS1WZXJzaW9uIjoiMS4wIiwiQ29udGVudC1UeXBlIjoidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sYm9keTonPGh0bWw+XFxuPGhlYWQ+PHRpdGxlPldlbGNvbWU8L3RpdGxlPjwvaGVhZD5cXG48Ym9keT5cXG4gIDxoMT5XZWxjb21lIHRvIHNlcnZlLnpvbmUhPC9oMT5cXG4gIDxwPllvdXIgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS48L3A+XFxuICA8YSBocmVmPSJodHRwczovL3NlcnZlLnpvbmUvZGFzaGJvYXJkIj5HbyB0byBEYXNoYm9hcmQ8L2E+XFxuPC9ib2R5PlxcbjwvaHRtbD4nfX0KICAgICAgPjwvc3otbXRhLWRldGFpbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTVRBIl07I2U9cmd0KHRoaXMsbyxudWxsKTtnZXQgZW1haWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW1haWwoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5iYWNrLWxpbmsgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWxpbms6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5lbWFpbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmVtYWlsLXN1YmplY3QgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlbGl2ZXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYm91bmNlZCwKICAgICAgLnN0YXR1cy1iYWRnZS5yZWplY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGVmZXJyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24tYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWJhZGdlLmluYm91bmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWJhZGdlLm91dGJvdW5kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgewogICAgICAgIC5jb250ZW50IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tYWluLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuY2FyZC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuY2FyZC10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNhcmQtc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jYXJkLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAuZGV0YWlsLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuc210cC1sb2ctY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnNtdHAtbG9nLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5zbXRwLWxvZy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnNtdHAtbG9nLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC8qIFBoYXNlIHNlcGFyYXRvcnMgKi8KICAgICAgLnNtdHAtcGhhc2Utc2VwYXJhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5zbXRwLXBoYXNlLWxpbmUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuc210cC1waGFzZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAvKiBDaGF0IGJ1YmJsZXMgKi8KICAgICAgLnNtdHAtYnViYmxlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4OwogICAgICAgIG1heC13aWR0aDogNzAlOwogICAgICB9CgogICAgICAuc210cC1idWJibGUuY2xpZW50IHsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICB9CgogICAgICAuc210cC1idWJibGUuc2VydmVyIHsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4wNikiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEwKSIpfTsKICAgICAgICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiM0YWRlODAiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC5zbXRwLWJ1YmJsZS1jb21tYW5kIHsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zbXRwLWJ1YmJsZS1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc210cC1idWJibGUuc2VydmVyIC5zbXRwLWJ1YmJsZS1tZXRhIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tdGFnIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLXRhZy5jbGllbnQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi10YWcuc2VydmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyMmM1NWUiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAvKiBSZXNwb25zZSBjb2RlIGJhZGdlcyAqLwogICAgICAucmVzcG9uc2UtY29kZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDFweCA3cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICB9CgogICAgICAucmVzcG9uc2UtY29kZS1iYWRnZS5jb2RlLTJ4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMTUpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UuY29kZS0zeHggewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UuY29kZS00eHggewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDI1MCwgMjA0LCAyMSwgMC4xNSkiLCJyZ2JhKDI1MCwgMjA0LCAyMSwgMC4yNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UuY29kZS01eHggewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMjUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC8qIFNNVFAgbWV0YWRhdGEgYmFubmVyIOKAlCBzaXRzIGluc2lkZSBjb250ZW50LCBhYm92ZSB0aGUgbG9nICovCiAgICAgIC5zbXRwLWhlYWRlci1zdWJ0aXRsZSB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi1iYWRnZS5pbmJvdW5kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4xMikiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi1iYWRnZS5vdXRib3VuZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEyKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5lbWFpbC1ib2R5LWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50bHMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5hdXRoLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuYXV0aC1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmF1dGgtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hdXRoLWRvbWFpbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLmF1dGgtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5hdXRoLWJhZGdlLnBhc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYXV0aC1iYWRnZS5mYWlsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmF1dGgtYmFkZ2Uuc29mdGZhaWwsCiAgICAgIC5hdXRoLWJhZGdlLm5ldXRyYWwsCiAgICAgIC5hdXRoLWJhZGdlLm5vbmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnJlamVjdGlvbi1jYXJkOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZlY2FjYSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5yZWplY3Rpb24tY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5yZWplY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLnJlamVjdGlvbi10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjJmMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTkxYjFiIiwiI2ZjYTVhNSIpfTsKICAgICAgfQoKICAgICAgLnJlamVjdGlvbi10ZXh0Omxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5uby1lbWFpbCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy5lbWFpbClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJuby1lbWFpbCI+Tm8gZW1haWwgc2VsZWN0ZWQ8L2Rpdj5gO2xldCBkPXRoaXMuZW1haWw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmFjay1saW5rIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVCYWNrKCl9PgogICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiI+PC9wb2x5bGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQmFjayB0byBFbWFpbHMKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1oZWFkZXIiPgogICAgICAgIDxoMSBjbGFzcz0iZW1haWwtc3ViamVjdCI+JHtkLnN1YmplY3R9PC9oMT4KICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS1ncm91cCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7ZC5zdGF0dXN9Ij4ke2Quc3RhdHVzfTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXJlY3Rpb24tYmFkZ2UgJHtkLmRpcmVjdGlvbn0iPiR7ZC5kaXJlY3Rpb259PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW4tY29udGVudCI+CiAgICAgICAgICA8IS0tIEVtYWlsIE1ldGFkYXRhIC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5FbWFpbCBNZXRhZGF0YTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Gcm9tPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuZnJvbX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+VG88L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC50b0xpc3Quam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7ZC5jYyYmZC5jYy5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+Q0M8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNjLmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlN1YmplY3Q8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5zdWJqZWN0fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5EYXRlPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QudGltZXN0YW1wfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5NZXNzYWdlIElEPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QubWVzc2FnZUlkfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5TaXplPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2Quc2l6ZX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8IS0tIFNNVFAgVHJhbnNhY3Rpb24gTG9nIC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5TTVRQIFRyYW5zYWN0aW9uIExvZzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbXRwLWRpcmVjdGlvbi1iYWRnZSAke2QuZGlyZWN0aW9ufSI+JHtkLmRpcmVjdGlvbn08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLWhlYWRlci1zdWJ0aXRsZSI+CiAgICAgICAgICAgICAgJHtkLmRpcmVjdGlvbj09PSJvdXRib3VuZCI/YCR7ZC5jb25uZWN0aW9uSW5mby5zb3VyY2VIb3N0bmFtZX0gXHUyMTkyICR7ZC5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvbklwfToke2QuY29ubmVjdGlvbkluZm8uZGVzdGluYXRpb25Qb3J0fWA6YCR7ZC5jb25uZWN0aW9uSW5mby5zb3VyY2VJcH0gXHUyMTkyICR7ZC5jb25uZWN0aW9uSW5mby5zb3VyY2VIb3N0bmFtZX06JHtkLmNvbm5lY3Rpb25JbmZvLmRlc3RpbmF0aW9uUG9ydH1gfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLnJlbmRlclNtdHBMb2coZCl9CiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5U210cExvZygpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDE1SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWEyIDIgMCAwIDEgMiAydjEiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgQ29weSBMb2cKICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8IS0tIEVtYWlsIEJvZHkgLS0+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkVtYWlsIEJvZHkgKEVzY2FwZWQpPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtc3VidGl0bGUiPlJhdyBjb250ZW50IOKAlCBIVE1MIGlzIG5vdCByZW5kZXJlZDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgY2xhc3M9ImVtYWlsLWJvZHktY29udGFpbmVyIj4ke2QuYm9keX08L3ByZT4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICAgIDwhLS0gQ29ubmVjdGlvbiBJbmZvIC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5Db25uZWN0aW9uIEluZm88L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1saXN0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+U291cmNlIElQPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuY29ubmVjdGlvbkluZm8uc291cmNlSXB9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlNvdXJjZSBIb3N0bmFtZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLnNvdXJjZUhvc3RuYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5EZXN0aW5hdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLmRlc3RpbmF0aW9uSXB9OiR7ZC5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvblBvcnR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlRMUzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgJHtkLmNvbm5lY3Rpb25JbmZvLnRsc1ZlcnNpb24/d2A8c3BhbiBjbGFzcz0idGxzLWJhZGdlIj4ke2QuY29ubmVjdGlvbkluZm8udGxzVmVyc2lvbn08L3NwYW4+YDoiTm9uZSJ9CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtkLmNvbm5lY3Rpb25JbmZvLnRsc0NpcGhlcj93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+Q2lwaGVyPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby50bHNDaXBoZXJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkF1dGhlbnRpY2F0ZWQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby5hdXRoZW50aWNhdGVkPyJZZXMiOiJObyJ9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAke2QuY29ubmVjdGlvbkluZm8uYXV0aGVudGljYXRlZD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+QXV0aCBNZXRob2Q8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLmF1dGhNZXRob2R9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkF1dGggVXNlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuY29ubmVjdGlvbkluZm8uYXV0aFVzZXJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPCEtLSBBdXRoZW50aWNhdGlvbiBSZXN1bHRzIC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5BdXRoZW50aWNhdGlvbiBSZXN1bHRzPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRoLXJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1sYWJlbCI+U1BGPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1kb21haW4iPiR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuc3BmRG9tYWlufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtYmFkZ2UgJHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5zcGZ9Ij4ke2QuYXV0aGVudGljYXRpb25SZXN1bHRzLnNwZn08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0aC1yb3ciPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtbGFiZWwiPkRLSU08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWRvbWFpbiI+JHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5ka2ltRG9tYWlufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtYmFkZ2UgJHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5ka2ltfSI+JHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5ka2ltfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRoLXJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1sYWJlbCI+RE1BUkM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWRvbWFpbiI+cG9saWN5OiAke2QuYXV0aGVudGljYXRpb25SZXN1bHRzLmRtYXJjUG9saWN5fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtYmFkZ2UgJHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5kbWFyY30iPiR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZG1hcmN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDwhLS0gUmVqZWN0aW9uIERldGFpbHMgKGNvbmRpdGlvbmFsKSAtLT4KICAgICAgICAgICR7ZC5zdGF0dXM9PT0icmVqZWN0ZWQifHxkLnN0YXR1cz09PSJib3VuY2VkIj93YAogICAgICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSJyZWplY3Rpb24tY2FyZCI+CiAgICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+UmVqZWN0aW9uIERldGFpbHM8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgJHtkLnJlamVjdGlvblJlYXNvbj93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWplY3Rpb24tbGFiZWwiPlJlamVjdGlvbiBSZWFzb248L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVqZWN0aW9uLXRleHQiPiR7ZC5yZWplY3Rpb25SZWFzb259PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgJHtkLmJvdW5jZU1lc3NhZ2U/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVqZWN0aW9uLWxhYmVsIj5Cb3VuY2UgTWVzc2FnZTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWplY3Rpb24tdGV4dCI+JHtkLmJvdW5jZU1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1nZXRSZXNwb25zZUNvZGVCYWRnZUNsYXNzKGQpe3JldHVybiBkPj01MDA/ImNvZGUtNXh4IjpkPj00MDA/ImNvZGUtNHh4IjpkPj0zMDA/ImNvZGUtM3h4IjoiY29kZS0yeHgifWdldFNtdHBQaGFzZXMoZCl7bGV0IGY9W10scD0iIixoPTA7Zm9yKGxldCBtIG9mIGQpe2xldCB2PW0uY29tbWFuZC50b1VwcGVyQ2FzZSgpLGI9cDtpZihtLmRpcmVjdGlvbj09PSJjbGllbnQiJiYodi5zdGFydHNXaXRoKCJFSExPIil8fHYuc3RhcnRzV2l0aCgiSEVMTyIpPyhoKyssaD09PTE/Yj0iY29ubmVjdGlvbiI6Yj0icG9zdC10bHMiKTp2PT09IlNUQVJUVExTIj9iPSJ0bHMiOnYuc3RhcnRzV2l0aCgiQVVUSCIpP2I9ImF1dGgiOnYuc3RhcnRzV2l0aCgiTUFJTCBGUk9NIil8fHYuc3RhcnRzV2l0aCgiUkNQVCBUTyIpfHx2PT09IkRBVEEifHx2PT09Ii4iP2I9InRyYW5zZmVyIjp2PT09IlFVSVQiJiYoYj0iY2xvc2luZyIpKSxtLmRpcmVjdGlvbj09PSJzZXJ2ZXIiJiZiPT09IiImJihiPXB8fCJjb25uZWN0aW9uIiksYj09PSIiJiYoYj0iY29ubmVjdGlvbiIpLGIhPT1wKXtwPWI7bGV0IGc9e2Nvbm5lY3Rpb246IkNvbm5lY3Rpb24iLHRsczoiVExTIE5lZ290aWF0aW9uIiwicG9zdC10bHMiOiJQb3N0LVRMUyBIYW5kc2hha2UiLGF1dGg6IkF1dGhlbnRpY2F0aW9uIix0cmFuc2ZlcjoiTWFpbCBUcmFuc2ZlciIsY2xvc2luZzoiQ2xvc2luZyJ9O2YucHVzaCh7cGhhc2U6YixsYWJlbDpnW2JdfHxiLGVudHJpZXM6W119KX1mLmxlbmd0aD09PTAmJmYucHVzaCh7cGhhc2U6ImNvbm5lY3Rpb24iLGxhYmVsOiJDb25uZWN0aW9uIixlbnRyaWVzOltdfSksZltmLmxlbmd0aC0xXS5lbnRyaWVzLnB1c2gobSl9cmV0dXJuIGZ9cmVuZGVyU210cExvZyhkKXtsZXQgZj10aGlzLmdldFNtdHBQaGFzZXMoZC5zbXRwTG9nKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic210cC1sb2ctY29udGFpbmVyIj4KICAgICAgICAke2YubWFwKHA9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLXBoYXNlLXNlcGFyYXRvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtcGhhc2UtbGluZSI+PC9kaXY+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbXRwLXBoYXNlLWxhYmVsIj4ke3AubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLXBoYXNlLWxpbmUiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3AuZW50cmllcy5tYXAoaD0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1idWJibGUgJHtoLmRpcmVjdGlvbn0iPgogICAgICAgICAgICAgICR7aC5kaXJlY3Rpb249PT0ic2VydmVyIiYmaC5yZXNwb25zZUNvZGU/d2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZXNwb25zZS1jb2RlLWJhZGdlICR7dGhpcy5nZXRSZXNwb25zZUNvZGVCYWRnZUNsYXNzKGgucmVzcG9uc2VDb2RlKX0iPiR7aC5yZXNwb25zZUNvZGV9PC9zcGFuPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1idWJibGUtY29tbWFuZCI+JHtoLmNvbW1hbmR9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1idWJibGUtbWV0YSI+CiAgICAgICAgICAgICAgICA8c3Bhbj4ke2gudGltZXN0YW1wfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPsK3PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNtdHAtZGlyZWN0aW9uLXRhZyAke2guZGlyZWN0aW9ufSI+JHtoLmRpcmVjdGlvbj09PSJjbGllbnQiPyJDbGllbnQiOiJTZXJ2ZXIifTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWNvcHlTbXRwTG9nKCl7aWYoIXRoaXMuZW1haWwpcmV0dXJuO2xldCBkPXRoaXMuZW1haWwuc210cExvZy5tYXAoZj0+YFske2YudGltZXN0YW1wfV0gJHtmLmRpcmVjdGlvbj09PSJjbGllbnQiPyJDOiI6IlM6In0gJHtmLmNvbW1hbmR9YCkuam9pbihgCmApO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGQpfWhhbmRsZUJhY2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJiYWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscmd0KHRoaXMsbCl9c3RhdGlje3JndChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTtmdW5jdGlvbiBTQmEodCl7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIj9TdHJpbmcodCk6QXJyYXkuaXNBcnJheSh0KT90Lm1hcChlPT50eXBlb2YgZT09Im51bWJlciI/U3RyaW5nKGUpOmAke2UuZnJvbX1cdTIwMTMke2UudG99YCkuam9pbigiLCAiKTpTdHJpbmcodCl9ZnVuY3Rpb24gTUJhKHQpe2xldCBlPVtdO2ZvcihsZXQgciBvZiB0KXtsZXQgYT1BcnJheS5pc0FycmF5KHIuaG9zdCk/ci5ob3N0OltyLmhvc3RdLHM9ci5wb3J0PT09InByZXNlcnZlIj8iKHByZXNlcnZlKSI6U3RyaW5nKHIucG9ydCk7Zm9yKGxldCBuIG9mIGEpZS5wdXNoKGAke259OiR7c31gKX1yZXR1cm4gZX12YXIgYWd0LHVhZSxDQmEscGlhPXUoKCk9Pnt2ZSgpO2FndD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdWFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfTtpKFNCYSwiZm9ybWF0UG9ydHMiKTtpKE1CYSwiZm9ybWF0VGFyZ2V0cyIpO0NCYT0oKCk9PntsZXQgdD1bdWUoInN6LXJvdXRlLWNhcmQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pSb3V0ZUNhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0sYWd0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm91dGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InJvdXRlImluIG0sImhhcyIpLGdldDppKG09Pm0ucm91dGUsImdldCIpLHNldDppKChtLHYpPT57bS5yb3V0ZT12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksYWd0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0FjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InNob3dBY3Rpb25zImluIG0sImhhcyIpLGdldDppKG09Pm0uc2hvd0FjdGlvbnMsImdldCIpLHNldDppKChtLHYpPT57bS5zaG93QWN0aW9ucz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksYWd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNTIwcHg7Ij4KICAgICAgPHN6LXJvdXRlLWNhcmQKICAgICAgICAucm91dGU9JHt7bmFtZToiQVBJIEdhdGV3YXkiLGRlc2NyaXB0aW9uOiJNYWluIEFQSSBnYXRld2F5IHdpdGggVExTIHRlcm1pbmF0aW9uIGFuZCBsb2FkIGJhbGFuY2luZyIsZW5hYmxlZDohMCxwcmlvcml0eToxMCx0YWdzOlsid2ViIiwiYXBpIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czpbNDQzLDg0NDNdLGRvbWFpbnM6WyJhcGkuZXhhbXBsZS5jb20iLCIqLmFwaS5zZXJ2ZS56b25lIl0scGF0aDoiL2FwaS8qIixwcm90b2NvbDoiaHR0cCIsY2xpZW50SXA6WyIxMC4wLjAuMC84Il19LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6WyIxMC4wLjAuMSIsIjEwLjAuMC4yIl0scG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn0sd2Vic29ja2V0OntlbmFibGVkOiEwfSxsb2FkQmFsYW5jaW5nOnthbGdvcml0aG06InJvdW5kLXJvYmluIn0sZm9yd2FyZGluZ0VuZ2luZToibmZ0YWJsZXMifSxzZWN1cml0eTp7aXBBbGxvd0xpc3Q6WyIxMC4wLjAuMC84Il0saXBCbG9ja0xpc3Q6WyIxOTIuMTY4LjEwMC4wLzI0Il0scmF0ZUxpbWl0OntlbmFibGVkOiEwLG1heFJlcXVlc3RzOjEwMCx3aW5kb3c6NjB9LG1heENvbm5lY3Rpb25zOjFlM30sdnBuT25seTohMCxtZXRhZGF0YTp7c291cmNlUHJvZmlsZU5hbWU6IlNUQU5EQVJEIixuZXR3b3JrVGFyZ2V0TmFtZToiTE9TU0xFU1NfSU5GUkEifX19CiAgICAgID48L3N6LXJvdXRlLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJSb3V0ZXMiXTsjZT11YWUodGhpcyxvLG51bGwpO2dldCByb3V0ZSgpe3JldHVybiB0aGlzLiNlfXNldCByb3V0ZShoKXt0aGlzLiNlPWh9I3Q9KHVhZSh0aGlzLGwpLHVhZSh0aGlzLGQsITEpKTtnZXQgc2hvd0FjdGlvbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0FjdGlvbnMoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6OnBhcnQob3V0ZXIpIHsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZSwgYm94LXNoYWRvdyAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDYpIiwicmdiYSgwLDAsMCwwLjIpIil9OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyLWxlZnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5lbmFibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAke3guYmRUaGVtZSgicmdiYSgzNCwxOTcsOTQsMC40KSIsInJnYmEoMzQsMTk3LDk0LDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90LmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5yb3V0ZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuaGVhZGVyLWJhZGdlcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5mb3J3YXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zb2NrZXQtaGFuZGxlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZGU5ZmUiLCJyZ2JhKDEzOSwgOTIsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CgogICAgICAuYmFkZ2UuZW5hYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtYm9keSB7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAubWV0YS1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzUyNTI1YiIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5wcmlvcml0eSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLyogU2VjdGlvbnMgKi8KICAgICAgLnNlY3Rpb24gewogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQ7CiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTAxMDEwIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbjpsYXN0LW9mLXR5cGUgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLm1hdGNoIHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi5hY3Rpb24gewogICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLnNlY3VyaXR5IHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHt4LmJkVGhlbWUoIiNmNTllMGIiLCIjZjU5ZTBiIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi5saW5rZWQgewogICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAke3guYmRUaGVtZSgiIzhiNWNmNiIsIiM4YjVjZjYiKX07CiAgICAgIH0KCiAgICAgIC5saW5rZWQtbmFtZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VkZTlmZSIsInJnYmEoMTM5LCA5MiwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2ZDI4ZDkiLCIjYTc4YmZhIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZmllbGQtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLmZpZWxkLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuZmllbGQta2V5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1pbi13aWR0aDogNjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZmllbGQtdmFsdWUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNlNGU0ZTciKX07CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuZG9tYWluLWNoaXAgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZmY2ZmYiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZG9tYWluLWNoaXAuZ2xvYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWYzYzciLCJyZ2JhKDI0NSwgMTU4LCAxMSwgMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTI0MDBlIiwiI2ZiYmYyNCIpfTsKICAgICAgfQoKICAgICAgLm1vbm8gewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICAucHJvdG9jb2wtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAucHJvdG9jb2wtYmFkZ2UuaHR0cCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAucHJvdG9jb2wtYmFkZ2UudGNwIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnRscy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC50bHMtYmFkZ2UuYXV0byB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC50bHMtYmFkZ2UuY3VzdG9tIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZWRkNSIsInJnYmEoMjQ5LCAxMTUsIDIyLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2MyNDEwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KCiAgICAgIC5lbmdpbmUtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFlOGZmIiwicmdiYSgxNjgsIDg1LCAyNDcsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjN2UyMmNlIiwiI2MwODRmYyIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlci1wYWlyIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIC8qIEZlYXR1cmUgaWNvbnMgKi8KICAgICAgLmZlYXR1cmVzLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIG1hcmdpbi10b3A6IDE0cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzFhMWExYSIpfTsKICAgICAgfQoKICAgICAgLmZlYXR1cmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5uby1yb3V0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLnZwbiB7CiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7eC5iZFRoZW1lKCIjMDg5MWIyIiwiIzA2YjZkNCIpfTsKICAgICAgfQoKICAgICAgLnZwbi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAudnBuLWJhZGdlLm1hbmRhdG9yeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmY3ZWQiLCJyZ2JhKDI0OSwgMTE1LCAyMiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNjMjQxMGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAudnBuLWJhZGdlLm9wdGlvbmFsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VjZmRmNSIsInJnYmEoMTYsIDE4NSwgMTI5LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA0Nzg1NyIsIiMzNGQzOTkiKX07CiAgICAgIH0KCiAgICAgIC52cG4tdGFnIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VjZmVmZiIsInJnYmEoNiwgMTgyLCAyMTIsIDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzBlNzQ5MCIsIiMyMmQzZWUiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmVkaXQ6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy5yb3V0ZSlyZXR1cm4gd2AKICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5Ij48ZGl2IGNsYXNzPSJuby1yb3V0ZSI+Tm8gcm91dGUgZGF0YTwvZGl2PjwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgogICAgICBgO2xldCBoPXRoaXMucm91dGUsbT1oLmVuYWJsZWQhPT0hMSx2PWgubWF0Y2gsYj1oLmFjdGlvbixnPWguc2VjdXJpdHk7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPCEtLSBIZWFkZXIgLS0+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWxlZnQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWRvdCAke20/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyb3V0ZS1uYW1lIj4ke2gubmFtZXx8aC5pZHx8IlVubmFtZWQgUm91dGUifTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJhZGdlcyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke2IudHlwZX0iPiR7Yi50eXBlfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7bT8iZW5hYmxlZCI6ImRpc2FibGVkIn0iPiR7bT8iZW5hYmxlZCI6ImRpc2FibGVkIn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5Ij4KICAgICAgICAgICR7aC5kZXNjcmlwdGlvbj93YDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke2guZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRhLXJvdyI+CiAgICAgICAgICAgICR7aC50YWdzJiZoLnRhZ3MubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ0YWdzIj4ke2gudGFncy5tYXAoeT0+d2A8c3BhbiBjbGFzcz0idGFnIj4ke3l9PC9zcGFuPmApfTwvZGl2PmA6d2A8ZGl2PjwvZGl2PmB9CiAgICAgICAgICAgICR7aC5wcmlvcml0eSE9bnVsbD93YDxzcGFuIGNsYXNzPSJwcmlvcml0eSI+UHJpb3JpdHk6ICR7aC5wcmlvcml0eX08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDwhLS0gTWF0Y2ggU2VjdGlvbiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIG1hdGNoIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPk1hdGNoPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5Qb3J0czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7U0JhKHYucG9ydHMpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt2LmRvbWFpbnM/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkRvbWFpbnM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHt0aGlzLnJlbmRlckRvbWFpbnModi5kb21haW5zKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHt2LnBhdGg/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlBhdGg8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke3YucGF0aH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHt2LnByb3RvY29sP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5Qcm90b2NvbDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvdG9jb2wtYmFkZ2UgJHt2LnByb3RvY29sfSI+JHt2LnByb3RvY29sfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7di5jbGllbnRJcCYmdi5jbGllbnRJcC5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+Q2xpZW50PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHt2LmNsaWVudElwLmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7di50bHNWZXJzaW9uJiZ2LnRsc1ZlcnNpb24ubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlRMUyBWZXI8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHt2LnRsc1ZlcnNpb24uam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHt2LmhlYWRlcnM/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkhlYWRlcnM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgJHtPYmplY3QuZW50cmllcyh2LmhlYWRlcnMpLm1hcCgoW3ksa10pPT53YDxzcGFuIGNsYXNzPSJoZWFkZXItcGFpciI+JHt5fT0ke2t9PC9zcGFuPiBgKX0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBBY3Rpb24gU2VjdGlvbiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIGFjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5BY3Rpb248L2Rpdj4KICAgICAgICAgICR7Yi50YXJnZXRzJiZiLnRhcmdldHMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlRhcmdldHM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke01CYShiLnRhcmdldHMpLmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7Yi50bHM/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlRMUzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAke2IudGxzLm1vZGV9CiAgICAgICAgICAgICAgICAgICAgJHtiLnRscy5jZXJ0aWZpY2F0ZT9iLnRscy5jZXJ0aWZpY2F0ZT09PSJhdXRvIj93YCA8c3BhbiBjbGFzcz0idGxzLWJhZGdlIGF1dG8iPmF1dG8gY2VydDwvc3Bhbj5gOndgIDxzcGFuIGNsYXNzPSJ0bHMtYmFkZ2UgY3VzdG9tIj5jdXN0b20gY2VydDwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHtiLmZvcndhcmRpbmdFbmdpbmU/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkVuZ2luZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj48c3BhbiBjbGFzcz0iZW5naW5lLWJhZGdlIj4ke2IuZm9yd2FyZGluZ0VuZ2luZX08L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7Yi5sb2FkQmFsYW5jaW5nP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5MQjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke2IubG9hZEJhbGFuY2luZy5hbGdvcml0aG19PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7Yi53ZWJzb2NrZXQ/LmVuYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPldTPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPjxzcGFuIGNsYXNzPSJiYWRnZSBlbmFibGVkIj5lbmFibGVkPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gU2VjdXJpdHkgU2VjdGlvbiAtLT4KICAgICAgICAke2c/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIHNlY3VyaXR5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlNlY3VyaXR5PC9kaXY+CiAgICAgICAgICAgICAgICAke2cuaXBBbGxvd0xpc3QmJmcuaXBBbGxvd0xpc3QubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkFsbG93PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHtnLmlwQWxsb3dMaXN0LmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7Zy5pcEJsb2NrTGlzdCYmZy5pcEJsb2NrTGlzdC5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+QmxvY2s8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke2cuaXBCbG9ja0xpc3Quam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgJHtnLnJhdGVMaW1pdD8uZW5hYmxlZD93YAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UmF0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke2cucmF0ZUxpbWl0Lm1heFJlcXVlc3RzfSByZXEgLyAke2cucmF0ZUxpbWl0LndpbmRvd31zPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7Zy5tYXhDb25uZWN0aW9ucz93YAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+TWF4IENvbm48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHtnLm1heENvbm5lY3Rpb25zfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPCEtLSBWUE4gU2VjdGlvbiAtLT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJWcG4oKX0KCiAgICAgICAgICA8IS0tIExpbmtlZCBSZWZlcmVuY2VzIFNlY3Rpb24gLS0+CiAgICAgICAgICAke3RoaXMucmVuZGVyTGlua2VkKCl9CgogICAgICAgICAgPCEtLSBGZWF0dXJlIEljb25zIFJvdyAtLT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGZWF0dXJlcygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPgogICAgICAgICR7dGhpcy5zaG93QWN0aW9ucz93YAogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJjYXJkLWZvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIGVkaXQiIEBjbGljaz0ke3k9Pnt5LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdXRlLWVkaXQiLHtkZXRhaWw6dGhpcy5yb3V0ZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke3k9Pnt5LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdXRlLWRlbGV0ZSIse2RldGFpbDp0aGlzLnJvdXRlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT5EZWxldGU8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJEb21haW5zKGgpe2xldCBtPUFycmF5LmlzQXJyYXkoaCk/aDpbaF07cmV0dXJuIHdgJHttLm1hcCh2PT53YDxzcGFuIGNsYXNzPSJkb21haW4tY2hpcCAke3YuaW5jbHVkZXMoIioiKT8iZ2xvYiI6IiJ9Ij4ke3Z9PC9zcGFuPmApfWB9cmVuZGVyVnBuKCl7cmV0dXJuIHRoaXMucm91dGU/LnZwbk9ubHk/d2AKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiB2cG4iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlZQTiBBY2Nlc3M8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+TW9kZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2cG4tYmFkZ2UgbWFuZGF0b3J5Ij5WUE4gT25seTwvc3Bhbj4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgOndgYH1yZW5kZXJMaW5rZWQoKXtsZXQgaD10aGlzLnJvdXRlPy5tZXRhZGF0YTtpZighaClyZXR1cm4gd2BgO2xldCBtPSEhaC5zb3VyY2VQcm9maWxlTmFtZSx2PSEhaC5uZXR3b3JrVGFyZ2V0TmFtZTtyZXR1cm4hbSYmIXY/d2BgOndgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24gbGlua2VkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5MaW5rZWQ8L2Rpdj4KICAgICAgICAke20/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UHJvZmlsZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+PHNwYW4gY2xhc3M9ImxpbmtlZC1uYW1lIj4ke2guc291cmNlUHJvZmlsZU5hbWV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAke3Y/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+VGFyZ2V0PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj48c3BhbiBjbGFzcz0ibGlua2VkLW5hbWUiPiR7aC5uZXR3b3JrVGFyZ2V0TmFtZX08L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmVhdHVyZXMoKXtpZighdGhpcy5yb3V0ZSlyZXR1cm4gd2BgO2xldCBoPVtdLG09dGhpcy5yb3V0ZS5hY3Rpb24sdj10aGlzLnJvdXRlLnNlY3VyaXR5LGI9dGhpcy5yb3V0ZS5oZWFkZXJzLGc9dGhpcy5yb3V0ZS5tZXRhZGF0YTtyZXR1cm4gbS50bHMmJmgucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gxZjUxMjs8L3NwYW4+VExTPC9zcGFuPmApLG0ud2Vic29ja2V0Py5lbmFibGVkJiZoLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MjE5NDs8L3NwYW4+V1M8L3NwYW4+YCksbS5sb2FkQmFsYW5jaW5nJiZoLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MjY5Njs8L3NwYW4+TEI8L3NwYW4+YCksdiYmaC5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDFmNmUxOzwvc3Bhbj5TZWN1cml0eTwvc3Bhbj5gKSxiJiZoLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MjY5OTs8L3NwYW4+SGVhZGVyczwvc3Bhbj5gKSx0aGlzLnJvdXRlPy52cG5Pbmx5JiZoLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MWY1MTA7PC9zcGFuPlZQTjwvc3Bhbj5gKSwoZz8uc291cmNlUHJvZmlsZU5hbWV8fGc/Lm5ldHdvcmtUYXJnZXROYW1lKSYmaC5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDFmNTE3Ozwvc3Bhbj5MaW5rZWQ8L3NwYW4+YCksaC5sZW5ndGg9PT0wP3dgYDp3YDxkaXYgY2xhc3M9ImZlYXR1cmVzLXJvdyI+JHtofTwvZGl2PmB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHVhZSh0aGlzLGYpfXN0YXRpY3t1YWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIEh3LE9jLHpCYSxmaWE9dSgoKT0+e3ZlKCk7SHc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LE9jPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSx6QmE9KCgpPT57bGV0IHQ9W3VlKCJzei1yb3V0ZS1saXN0LXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pSb3V0ZUxpc3RWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHthdHRyaWJ1dGU6ITF9KV0scD1baWUoKV0sdj1baWUoKV0seT1baWUoKV0sSHcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InJvdXRlcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnJvdXRlcywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnJvdXRlcz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksSHcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aW9uc0ZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2hvd0FjdGlvbnNGaWx0ZXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaG93QWN0aW9uc0ZpbHRlciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNob3dBY3Rpb25zRmlsdGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sZCxmKSxIdyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWFyY2hRdWVyeSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc2VhcmNoUXVlcnk9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEh3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJhY3Rpb25GaWx0ZXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5hY3Rpb25GaWx0ZXIsImdldCIpLHNldDppKChTLE8pPT57Uy5hY3Rpb25GaWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEh3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlZEZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZW5hYmxlZEZpbHRlciJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmVuYWJsZWRGaWx0ZXIsImdldCIpLHNldDppKChTLE8pPT57Uy5lbmFibGVkRmlsdGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxIdyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otcm91dGUtbGlzdC12aWV3CiAgICAgICAgLnJvdXRlcz0ke1t7bmFtZToiSFRUUFMgR2F0ZXdheSIsZGVzY3JpcHRpb246Ik1haW4gd2ViIGdhdGV3YXkgd2l0aCBUTFMgdGVybWluYXRpb24iLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImh0dHBzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczpbIiouZXhhbXBsZS5jb20iLCJzZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMSIscG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19fSx7bmFtZToiU01UUCBJbmJvdW5kIixkZXNjcmlwdGlvbjoiRW1haWwgcmVsYXkgZm9yIGluY29taW5nIG1haWwiLGVuYWJsZWQ6ITAsdGFnczpbImVtYWlsIiwic210cCJdLG1hdGNoOntwb3J0czoyNSxkb21haW5zOiJtYWlsLnNlcnZlLnpvbmUifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjEuNSIscG9ydDoyNX1dfX0se25hbWU6IldlYlNvY2tldCBBUEkiLGRlc2NyaXB0aW9uOiJSZWFsLXRpbWUgV2ViU29ja2V0IGNvbm5lY3Rpb25zIixlbmFibGVkOiEwLHRhZ3M6WyJ3ZWIiLCJhcGkiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6IndzLmV4YW1wbGUuY29tIixwYXRoOiIvd3MvKiJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4zIixwb3J0OjkwOTB9XSx3ZWJzb2NrZXQ6e2VuYWJsZWQ6ITB9LHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fX0se25hbWU6Ik1haW50ZW5hbmNlIFBhZ2UiLGVuYWJsZWQ6ITEsdGFnczpbIndlYiJdLG1hdGNoOntwb3J0czpbODAsNDQzXSxkb21haW5zOiJvbGQuZXhhbXBsZS5jb20ifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn19XX0KICAgICAgPjwvc3otcm91dGUtbGlzdC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiUm91dGVzIl07I2U9T2ModGhpcyxvLFtdKTtnZXQgcm91dGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJvdXRlcyhfKXt0aGlzLiNlPV99I3Q9KE9jKHRoaXMsbCksT2ModGhpcyxkLG51bGwpKTtnZXQgc2hvd0FjdGlvbnNGaWx0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0FjdGlvbnNGaWx0ZXIoXyl7dGhpcy4jdD1ffSNyPShPYyh0aGlzLGYpLE9jKHRoaXMsaCwiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiNyfXNldCBzZWFyY2hRdWVyeShfKXt0aGlzLiNyPV99I2E9KE9jKHRoaXMsbSksT2ModGhpcyxiLCJhbGwiKSk7Z2V0IGFjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNhfXNldCBhY3Rpb25GaWx0ZXIoXyl7dGhpcy4jYT1ffSNpPShPYyh0aGlzLGcpLE9jKHRoaXMsaywiYWxsIikpO2dldCBlbmFibGVkRmlsdGVyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGVuYWJsZWRGaWx0ZXIoXyl7dGhpcy4jaT1ffWdldCBmaWx0ZXJlZFJvdXRlcygpe3JldHVybiB0aGlzLnJvdXRlcy5maWx0ZXIoXz0+e2lmKHRoaXMuYWN0aW9uRmlsdGVyIT09ImFsbCImJl8uYWN0aW9uLnR5cGUhPT10aGlzLmFjdGlvbkZpbHRlcnx8dGhpcy5lbmFibGVkRmlsdGVyPT09ImVuYWJsZWQiJiZfLmVuYWJsZWQ9PT0hMXx8dGhpcy5lbmFibGVkRmlsdGVyPT09ImRpc2FibGVkIiYmXy5lbmFibGVkIT09ITEpcmV0dXJuITE7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IFM9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzLnJvdXRlTWF0Y2hlc1NlYXJjaChfLFMpfXJldHVybiEwfSl9cm91dGVNYXRjaGVzU2VhcmNoKF8sUyl7aWYoXy5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFMpfHxfLmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFMpfHxfLm1hdGNoLmRvbWFpbnMmJihBcnJheS5pc0FycmF5KF8ubWF0Y2guZG9tYWlucyk/Xy5tYXRjaC5kb21haW5zOltfLm1hdGNoLmRvbWFpbnNdKS5zb21lKEU9PkUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTKSl8fHRoaXMuZm9ybWF0UG9ydHNGb3JTZWFyY2goXy5tYXRjaC5wb3J0cykuaW5jbHVkZXMoUyl8fF8ubWF0Y2gucGF0aD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTKXx8Xy5tYXRjaC5jbGllbnRJcD8uc29tZShMPT5MLmluY2x1ZGVzKFMpKSlyZXR1cm4hMDtpZihfLmFjdGlvbi50YXJnZXRzKXtmb3IobGV0IEwgb2YgXy5hY3Rpb24udGFyZ2V0cylpZigoQXJyYXkuaXNBcnJheShMLmhvc3QpP0wuaG9zdDpbTC5ob3N0XSkuc29tZShCPT5CLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoUykpKXJldHVybiEwfXJldHVybiEhXy50YWdzPy5zb21lKEw9PkwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTKSl9Zm9ybWF0UG9ydHNGb3JTZWFyY2goXyl7cmV0dXJuIHR5cGVvZiBfPT0ibnVtYmVyIj9TdHJpbmcoXyk6QXJyYXkuaXNBcnJheShfKT9fLm1hcChTPT50eXBlb2YgUz09Im51bWJlciI/U3RyaW5nKFMpOmAke1MuZnJvbX0tJHtTLnRvfWApLmpvaW4oIiAiKTpTdHJpbmcoXyl9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuY2hpcC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmNoaXA6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2hpcC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucmVzdWx0cy1jb3VudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNDIwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmdyaWQgc3otcm91dGUtY2FyZCB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZS1pY29uIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBfPXRoaXMuZmlsdGVyZWRSb3V0ZXM7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgIDxpbnB1dAogICAgICAgICAgY2xhc3M9InNlYXJjaC1pbnB1dCIKICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIHJvdXRlcyBieSBkb21haW4sIElQLCBwb3J0LCBwYXRoLCBvciB0YWcuLi4iCiAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgQGlucHV0PSR7Uz0+e3RoaXMuc2VhcmNoUXVlcnk9Uy50YXJnZXQudmFsdWV9fQogICAgICAgIC8+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiZm9yd2FyZCIsInNvY2tldC1oYW5kbGVyIl0ubWFwKFM9PndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmFjdGlvbkZpbHRlcj09PVM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmFjdGlvbkZpbHRlcj1TfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1M9PT0iYWxsIj8iQWxsIjpTPT09ImZvcndhcmQiPyJGb3J3YXJkIjoiU29ja2V0IEhhbmRsZXIifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlwLWdyb3VwIj4KICAgICAgICAgICR7WyJhbGwiLCJlbmFibGVkIiwiZGlzYWJsZWQiXS5tYXAoUz0+d2AKICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuZW5hYmxlZEZpbHRlcj09PVM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmVuYWJsZWRGaWx0ZXI9U319CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtTLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK1Muc2xpY2UoMSl9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InJlc3VsdHMtY291bnQiPgogICAgICAgIFNob3dpbmcgJHtfLmxlbmd0aH0gb2YgJHt0aGlzLnJvdXRlcy5sZW5ndGh9IHJvdXRlcwogICAgICA8L2Rpdj4KCiAgICAgICR7Xy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICAgICAgICAke18ubWFwKFM9PndgCiAgICAgICAgICAgICAgICAgIDxzei1yb3V0ZS1jYXJkCiAgICAgICAgICAgICAgICAgICAgLnJvdXRlPSR7U30KICAgICAgICAgICAgICAgICAgICAuc2hvd0FjdGlvbnM9JHt0aGlzLnNob3dBY3Rpb25zRmlsdGVyPy4oUyk/PyExfQogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJvdXRlQ2xpY2soUyl9CiAgICAgICAgICAgICAgICAgID48L3N6LXJvdXRlLWNhcmQ+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS1pY29uIj4mI3gxZjUwZDs8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2Pk5vIHJvdXRlcyBtYXRjaCB5b3VyIGZpbHRlcnM8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYH1oYW5kbGVSb3V0ZUNsaWNrKF8pe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdXRlLWNsaWNrIix7ZGV0YWlsOl8sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksT2ModGhpcyxNKX1zdGF0aWN7T2MoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIHUyLERpLF9CYSxoaWE9dSgoKT0+e3ZlKCk7dTI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LERpPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxfQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1jb25maWctc2VjdGlvbiIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXTt2YXIgZmU9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6Q29uZmlnU2VjdGlvbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBUPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6QXJyYXl9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkFycmF5fSldLEI9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxBPVtQKHt0eXBlOkJvb2xlYW59KV0sWT1baWUoKV0sZGU9W2llKCldLHUyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InRpdGxlImluIFcsImhhcyIpLGdldDppKFc9PlcudGl0bGUsImdldCIpLHNldDppKChXLHBlKT0+e1cudGl0bGU9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sbyxsKSx1Mih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1YnRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJzdWJ0aXRsZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnN1YnRpdGxlLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnN1YnRpdGxlPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGQsZiksdTIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJpY29uImluIFcsImhhcyIpLGdldDppKFc9PlcuaWNvbiwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5pY29uPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGgsbSksdTIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InN0YXR1cyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnN0YXR1cywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5zdGF0dXM9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSx1Mih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iZmllbGRzImluIFcsImhhcyIpLGdldDppKFc9PlcuZmllbGRzLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmZpZWxkcz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxrLE0pLHUyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iYWN0aW9ucyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmFjdGlvbnMsImdldCIpLHNldDppKChXLHBlKT0+e1cuYWN0aW9ucz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxfLFMpLHUyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGlua3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImxpbmtzImluIFcsImhhcyIpLGdldDppKFc9PlcubGlua3MsImdldCIpLHNldDppKChXLHBlKT0+e1cubGlua3M9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sTCxFKSx1Mih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJjb2xsYXBzaWJsZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmNvbGxhcHNpYmxlLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmNvbGxhcHNpYmxlPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEMseiksdTIodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImNvbGxhcHNlZCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5jb2xsYXBzZWQ9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sJCxGKSx1Mih0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJpc0NvbGxhcHNlZCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmlzQ29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmlzQ29sbGFwc2VkPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEcsWiksdTIodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzU2xvdHRlZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Imhhc1Nsb3R0ZWRDb250ZW50ImluIFcsImhhcyIpLGdldDppKFc9PlcuaGFzU2xvdHRlZENvbnRlbnQsImdldCIpLHNldDppKChXLHBlKT0+e1cuaGFzU2xvdHRlZENvbnRlbnQ9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sRCxRKSx1MihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpUfSxudWxsLHIpLGZlPWE9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgIHRpdGxlPSJTbWFydFByb3h5IgogICAgICBzdWJ0aXRsZT0iSFRUUC9IVFRQUyBhbmQgVENQL1NOSSByZXZlcnNlIHByb3h5IgogICAgICBpY29uPSJsdWNpZGU6bmV0d29yayIKICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAuZmllbGRzPSR7W3trZXk6IlJvdXRlIENvdW50Iix2YWx1ZToxMn0se2tleToiQUNNRSBFbmFibGVkIix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiQWNjb3VudCBFbWFpbCIsdmFsdWU6ImFkbWluQGV4YW1wbGUuY29tIn0se2tleToiVXNlIFByb2R1Y3Rpb24iLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBdXRvIFJlbmV3Iix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiUmVuZXcgVGhyZXNob2xkIix2YWx1ZToiMzAgZGF5cyJ9XX0KICAgICAgLmxpbmtzPSR7W3tsYWJlbDoiRG9jcyIsaHJlZjoiaHR0cHM6Ly9jb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvc21hcnRwcm94eSIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH1dfQogICAgICAuYWN0aW9ucz0ke1t7bGFiZWw6IkNvbmZpZ3VyZSIsaWNvbjoibHVjaWRlOnNldHRpbmdzIixldmVudDoiY29uZmlndXJlIn1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgdGl0bGU9IkVtYWlsIFNlcnZlciIKICAgICAgc3VidGl0bGU9IlNNVFAgZW1haWwgaGFuZGxpbmcgd2l0aCBzbWFydG10YSIKICAgICAgaWNvbj0ibHVjaWRlOm1haWwiCiAgICAgIHN0YXR1cz0iZGlzYWJsZWQiCiAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydHMiLHZhbHVlOlsiMjUiLCI0NjUiLCI1ODciXSx0eXBlOiJwaWxscyJ9LHtrZXk6Ikhvc3RuYW1lIix2YWx1ZTpudWxsfSx7a2V5OiJEb21haW5zIix2YWx1ZTpbImV4YW1wbGUuY29tIiwibWFpbC5leGFtcGxlLmNvbSJdLHR5cGU6InBpbGxzIn1dfQogICAgICAubGlua3M9JHtbe2xhYmVsOiJEb2NzIixocmVmOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvc2VydmUuem9uZS9zbWFydG10YSIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH0se2xhYmVsOiJTb3VyY2UiLGhyZWY6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9zZXJ2ZS56b25lL3NtYXJ0bXRhIixpY29uOiJsdWNpZGU6Z2l0aHViIixleHRlcm5hbDohMH1dfQogICAgICAuYWN0aW9ucz0ke1t7bGFiZWw6IkVuYWJsZSIsaWNvbjoibHVjaWRlOnBvd2VyIixldmVudDoiZW5hYmxlIn1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgdGl0bGU9IkROUyBTZXJ2ZXIiCiAgICAgIHN1YnRpdGxlPSJBdXRob3JpdGF0aXZlIEROUyB3aXRoIHNtYXJ0ZG5zIgogICAgICBpY29uPSJsdWNpZGU6Z2xvYmUiCiAgICAgIHN0YXR1cz0ibm90LWNvbmZpZ3VyZWQiCiAgICAgIGNvbGxhcHNpYmxlCiAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydCIsdmFsdWU6NTN9LHtrZXk6Ik5TIERvbWFpbnMiLHZhbHVlOlsibnMxLmV4YW1wbGUuY29tIiwibnMyLmV4YW1wbGUuY29tIl0sdHlwZToicGlsbHMifV19CiAgICAgIC5saW5rcz0ke1t7bGFiZWw6IkdldHRpbmcgU3RhcnRlZCIsaHJlZjoiaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2RucyIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ29uZmlndXJhdGlvbiJdOyNlPURpKHRoaXMsbywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKFQpe3RoaXMuI2U9VH0jdD0oRGkodGhpcyxsKSxEaSh0aGlzLGQsIiIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3VidGl0bGUoVCl7dGhpcy4jdD1UfSNyPShEaSh0aGlzLGYpLERpKHRoaXMsaCwiIikpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGljb24oVCl7dGhpcy4jcj1UfSNhPShEaSh0aGlzLG0pLERpKHRoaXMsYiwiZW5hYmxlZCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1cyhUKXt0aGlzLiNhPVR9I2k9KERpKHRoaXMsZyksRGkodGhpcyxrLFtdKSk7Z2V0IGZpZWxkcygpe3JldHVybiB0aGlzLiNpfXNldCBmaWVsZHMoVCl7dGhpcy4jaT1UfSNzPShEaSh0aGlzLE0pLERpKHRoaXMsXyxbXSkpO2dldCBhY3Rpb25zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFjdGlvbnMoVCl7dGhpcy4jcz1UfSNuPShEaSh0aGlzLFMpLERpKHRoaXMsTCxbXSkpO2dldCBsaW5rcygpe3JldHVybiB0aGlzLiNufXNldCBsaW5rcyhUKXt0aGlzLiNuPVR9I289KERpKHRoaXMsRSksRGkodGhpcyxDLCExKSk7Z2V0IGNvbGxhcHNpYmxlKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNpYmxlKFQpe3RoaXMuI289VH0jbD0oRGkodGhpcyx6KSxEaSh0aGlzLCQsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGNvbGxhcHNlZChUKXt0aGlzLiNsPVR9I2M9KERpKHRoaXMsRiksRGkodGhpcyxHLCExKSk7Z2V0IGlzQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzQ29sbGFwc2VkKFQpe3RoaXMuI2M9VH0jZD0oRGkodGhpcyxaKSxEaSh0aGlzLEQsITEpKTtnZXQgaGFzU2xvdHRlZENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaGFzU2xvdHRlZENvbnRlbnQoVCl7dGhpcy4jZD1UfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSBkZWVzLXRpbGU6OnBhcnQoY29udGVudCkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSBkZWVzLXRpbGU6OnBhcnQoZm9vdGVyKSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNpYmxlXSkgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzaWJsZV0pIC5zZWN0aW9uLWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAuaGVhZGVyLXRleHQgewogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLyogU3RhdHVzIGJhZGdlICovCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogM3B4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZW5hYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LDE5Nyw5NCwwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksNjgsNjgsMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLm5vdC1jb25maWd1cmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsInJnYmEoMTEzLDExMywxMjIsMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmM2M3IiwicmdiYSgyNDUsMTU4LDExLDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzkyNDAwZSIsIiNmYmJmMjQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogN3B4OwogICAgICAgIGhlaWdodDogN3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lbmFibGVkIC5zdGF0dXMtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGlzYWJsZWQgLnN0YXR1cy1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ub3QtY29uZmlndXJlZCAuc3RhdHVzLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLndhcm5pbmcgLnN0YXR1cy1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjU5ZTBiIiwiI2ZiYmYyNCIpfTsKICAgICAgfQoKICAgICAgLyogRm9vdGVyIGFjdGlvbiBidXR0b25zIOKAlCBjYW5vbmljYWwgZGVlcy1tb2RhbCAvIGRlZXMtdGlsZSBwYXR0ZXJuICovCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLyogQ2hldnJvbiAqLwogICAgICAuY2hldnJvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuY2hldnJvbi5jb2xsYXBzZWQgewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgIH0KCiAgICAgIC5jaGV2cm9uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5maWVsZHMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAvKiBGaWVsZCByb3dzICovCiAgICAgIC5maWVsZC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMWExYTFlIil9OwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmZpZWxkcy1saXN0IC5maWVsZC1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmZpZWxkLWtleSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5maWVsZC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5maWVsZC12YWx1ZS5udWxsLXZhbHVlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLyogQm9vbGVhbiBkaXNwbGF5ICovCiAgICAgIC5ib29sLXZhbHVlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuYm9vbC12YWx1ZS50cnVlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYm9vbC12YWx1ZS5mYWxzZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmJvb2wtZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLmJvb2wtdmFsdWUudHJ1ZSAuYm9vbC1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmJvb2wtdmFsdWUuZmFsc2UgLmJvb2wtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC8qIFBpbGxzICovCiAgICAgIC5waWxscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA1cHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLnBpbGwgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDlweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksMTMwLDI0NiwwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC8qIENvZGUgdmFsdWUgKi8KICAgICAgLmNvZGUtdmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAvKiBMaW5rIHZhbHVlICovCiAgICAgIC5saW5rLXZhbHVlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAubGluay12YWx1ZTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIERlc2NyaXB0aW9uIGhpbnQgKi8KICAgICAgLmZpZWxkLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAzcHg7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC8qIFNsb3QgZm9yIGN1c3RvbSBjb250ZW50ICovCiAgICAgIC5zbG90LWNvbnRlbnQgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxYTFhMWUiKX07CiAgICAgIH0KCiAgICAgIC5zbG90LWNvbnRlbnQuZW1wdHkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHR5cGUgKi8KICAgICAgLmJhZGdlLXZhbHVlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA5cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM1MjUyNWIiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pc0NvbGxhcHNlZD10aGlzLmNvbGxhcHNlZCx0aGlzLmNvbGxhcHNpYmxlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY29sbGFwc2libGUiLCIiKX11cGRhdGVkKFQpe3N1cGVyLnVwZGF0ZWQoVCksVC5oYXMoImlzQ29sbGFwc2VkIikmJnRoaXMudG9nZ2xlQXR0cmlidXRlKCJjb2xsYXBzZWQiLHRoaXMuaXNDb2xsYXBzZWQpfW9uU2xvdENoYW5nZShUKXtsZXQgVz1ULnRhcmdldDt0aGlzLmhhc1Nsb3R0ZWRDb250ZW50PVcuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjohMH0pLmxlbmd0aD4wfXJlbmRlcigpe2xldCBUPXtlbmFibGVkOiJFbmFibGVkIixkaXNhYmxlZDoiRGlzYWJsZWQiLCJub3QtY29uZmlndXJlZCI6Ik5vdCBDb25maWd1cmVkIix3YXJuaW5nOiJXYXJuaW5nIn07cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdgogICAgICAgICAgc2xvdD0iaGVhZGVyIgogICAgICAgICAgY2xhc3M9InNlY3Rpb24taGVhZGVyIgogICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmNvbGxhcHNpYmxlJiYodGhpcy5pc0NvbGxhcHNlZD0hdGhpcy5pc0NvbGxhcHNlZCl9fQogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1sZWZ0Ij4KICAgICAgICAgICAgJHt0aGlzLmljb24/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItaWNvbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRleHQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgICAgICR7dGhpcy5zdWJ0aXRsZT93YDxkaXYgY2xhc3M9ImhlYWRlci1zdWJ0aXRsZSI+JHt0aGlzLnN1YnRpdGxlfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItcmlnaHQiPgogICAgICAgICAgICAke3RoaXMuc3RhdHVzP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc3RhdHVzfSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWRvdCI+PC9zcGFuPgogICAgICAgICAgICAgICAgJHtUW3RoaXMuc3RhdHVzXXx8dGhpcy5zdGF0dXN9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMuY29sbGFwc2libGU/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hldnJvbiAke3RoaXMuaXNDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25Eb3duIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICR7dGhpcy5maWVsZHMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGRzLWxpc3QiPgogICAgICAgICAgICAgICR7dGhpcy5maWVsZHMubWFwKFc9PnRoaXMucmVuZGVyRmllbGQoVykpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzbG90LWNvbnRlbnQgJHt0aGlzLmhhc1Nsb3R0ZWRDb250ZW50PyIiOiJlbXB0eSJ9Ij4KICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLm9uU2xvdENoYW5nZX0+PC9zbG90PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmxpbmtzLmxlbmd0aD4wfHx0aGlzLmFjdGlvbnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgICAke3RoaXMubGlua3MubWFwKFc9PndgCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGNsYXNzPSJ0aWxlLWJ1dHRvbiIKICAgICAgICAgICAgICAgIGhyZWY9JHtXLmhyZWZ9CiAgICAgICAgICAgICAgICB0YXJnZXQ9JHtXLmV4dGVybmFsPyJfYmxhbmsiOiJfc2VsZiJ9CiAgICAgICAgICAgICAgICByZWw9JHtXLmV4dGVybmFsPyJub29wZW5lciBub3JlZmVycmVyIjoiIn0KICAgICAgICAgICAgICAgIEBjbGljaz0ke3BlPT5wZS5zdG9wUHJvcGFnYXRpb24oKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1cuaWNvbj93YDxkZWVzLWljb24gLmljb249JHtXLmljb259PjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke1cubGFiZWx9CiAgICAgICAgICAgICAgICAke1cuZXh0ZXJuYWw/d2A8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpleHRlcm5hbExpbmsifT48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICR7dGhpcy5hY3Rpb25zLm1hcChXPT53YAogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0ke3BlPT57cGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChXLmV2ZW50fHwiYWN0aW9uIix7ZGV0YWlsOlcuZGV0YWlsfHx7bGFiZWw6Vy5sYWJlbH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PgogICAgICAgICAgICAgICAgJHtXLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7Vy5pY29ufT48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgJHtXLmxhYmVsfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJGaWVsZChUKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1rZXkiPiR7VC5rZXl9PC9kaXY+CiAgICAgICAgPGRpdj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGaWVsZFZhbHVlKFQpfQogICAgICAgICAgJHtULmRlc2NyaXB0aW9uP3dgPGRpdiBjbGFzcz0iZmllbGQtZGVzY3JpcHRpb24iPiR7VC5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmllbGRWYWx1ZShUKXtsZXQgVz1ULnZhbHVlLHBlPVQudHlwZXx8dGhpcy5pbmZlclR5cGUoVyk7aWYoVz09bnVsbClyZXR1cm4gd2A8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbnVsbC12YWx1ZSI+Tm90IGNvbmZpZ3VyZWQ8L3NwYW4+YDtzd2l0Y2gocGUpe2Nhc2UiYm9vbGVhbiI6cmV0dXJuIHdgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYm9vbC12YWx1ZSAke1c/InRydWUiOiJmYWxzZSJ9Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJvb2wtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICR7Vz8iRW5hYmxlZCI6IkRpc2FibGVkIn0KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICBgO2Nhc2UicGlsbHMiOnJldHVybiBBcnJheS5pc0FycmF5KFcpJiZXLmxlbmd0aD09PTA/d2A8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbnVsbC12YWx1ZSI+Tm9uZTwvc3Bhbj5gOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxscyI+CiAgICAgICAgICAgICR7Vy5tYXAobWU9PndgPHNwYW4gY2xhc3M9InBpbGwiPiR7bWV9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImNvZGUiOnJldHVybiB3YDxzcGFuIGNsYXNzPSJjb2RlLXZhbHVlIj4ke1N0cmluZyhXKX08L3NwYW4+YDtjYXNlImJhZGdlIjpyZXR1cm4gd2A8c3BhbiBjbGFzcz0iYmFkZ2UtdmFsdWUiPiR7U3RyaW5nKFcpfTwvc3Bhbj5gO2Nhc2UibGluayI6cmV0dXJuIHdgCiAgICAgICAgICA8c3BhbgogICAgICAgICAgICBjbGFzcz0ibGluay12YWx1ZSIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PntULmxpbmtUbyYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmF2aWdhdGUiLHtkZXRhaWw6e3RhcmdldDpULmxpbmtUb30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19CiAgICAgICAgICA+JHtTdHJpbmcoVyl9PC9zcGFuPgogICAgICAgIGA7ZGVmYXVsdDpyZXR1cm4gd2A8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7U3RyaW5nKFcpfTwvc3Bhbj5gfX1pbmZlclR5cGUoVCl7cmV0dXJuIHR5cGVvZiBUPT0iYm9vbGVhbiI/ImJvb2xlYW4iOkFycmF5LmlzQXJyYXkoVCk/InBpbGxzIjoidGV4dCJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLERpKHRoaXMsUSl9c3RhdGlje0RpKGEscil9fTtyZXR1cm4gZmU9YX0pKCl9KTt2YXIgaWd0LHBhZSxUQmEsbWlhPXUoKCk9Pnt2ZSgpO2lndD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0scGFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxUQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1jb25maWctb3ZlcnZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pDb25maWdPdmVydmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLGlndCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImhlYWRpbmciaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5oZWFkaW5nLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uaGVhZGluZz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksaWd0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImluZm9UZXh0ImluIG0sImhhcyIpLGdldDppKG09Pm0uaW5mb1RleHQsImdldCIpLHNldDppKChtLHYpPT57bS5pbmZvVGV4dD12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksaWd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2A8c3otY29uZmlnLW92ZXJ2aWV3CiAgICBoZWFkaW5nPSJDb25maWd1cmF0aW9uIgogICAgaW5mb1RleHQ9IlRoaXMgaXMgYSByZWFkLW9ubHkgdmlldyBvZiB0aGUgY3VycmVudCBydW5uaW5nIGNvbmZpZ3VyYXRpb24uIgogID4KICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM3MTcxN2E7IGZvbnQtc2l6ZTogMTRweDsiPgogICAgICBQbGFjZSAmbHQ7c3otY29uZmlnLXNlY3Rpb24mZ3Q7IGVsZW1lbnRzIGhlcmUKICAgIDwvZGl2PgogIDwvc3otY29uZmlnLW92ZXJ2aWV3PmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNvbmZpZ3VyYXRpb24iXTsjZT1wYWUodGhpcyxvLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKGgpe3RoaXMuI2U9aH0jdD0ocGFlKHRoaXMsbCkscGFlKHRoaXMsZCwiIikpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBpbmZvVGV4dChoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLWJhbm5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTRweCAxOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWZmNmZmIiwicmdiYSg1OSwxMzAsMjQ2LDAuMDgpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjYmZkYmZlIiwicmdiYSg1OSwxMzAsMjQ2LDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMWU0MGFmIiwiIzkzYzVmZCIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLmluZm8tYmFubmVyIGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKHN6LWNvbmZpZy1zZWN0aW9uKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKHN6LWNvbmZpZy1zZWN0aW9uOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmhlYWRpbmc/d2A8ZGl2IGNsYXNzPSJoZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L2Rpdj5gOiIifQogICAgICAke3RoaXMuaW5mb1RleHQ/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJhbm5lciI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTppbmZvIn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMuaW5mb1RleHR9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxwYWUodGhpcyxmKX1zdGF0aWN7cGFlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBMQmEsREJhLCRCYSxnaWE9dSgoKT0+e3ZlKCk7YmwoKTtMQmE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LERCYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sJEJhPSgoKT0+e2xldCB0PVt1ZSgic3otZGVtby12aWV3LWRhc2hib2FyZCIpXSxlLHI9W10sYSxzPXllO3ZhciBuPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3RGFzaGJvYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7TEJhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9YXBwdWk9bnVsbDthc3luYyBvbkFjdGl2YXRlKG8pe3RoaXMuYXBwdWk9by5hcHB1aSx0aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRGVwbG95IFNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6Um9ja2V0IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJEZXBsb3kgc2VydmljZSIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQWRkIERvbWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpHbG9iZSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQWRkIGRvbWFpbiIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIFRva2VuIixpY29uTmFtZToibHVjaWRlOktleSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIHRva2VuIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3lzdGVtIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIFN0YXRzIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiVmlldyBMb2dzIixpY29uTmFtZToibHVjaWRlOlRlcm1pbmFsIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJWaWV3IGxvZ3MiKX0sImFjdGlvbiIpfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5EYXNoYm9hcmQ8L2gxPgogICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5PdmVydmlldyBvZiB5b3VyIG9uZWJveCBpbmZyYXN0cnVjdHVyZTwvcD4KICAgICAgPC9kaXY+CgogICAgICA8c3otZGFzaGJvYXJkLXZpZXcKICAgICAgICAuY2x1c3RlclN0YXRzPSR7e3RvdGFsU2VydmljZXM6MTIscnVubmluZzo5LHN0b3BwZWQ6Myxkb2NrZXJTdGF0dXM6InJ1bm5pbmcifX0KICAgICAgICAucmVzb3VyY2VVc2FnZT0ke3tjcHU6NDUsbWVtb3J5VXNlZDoiNi4yIEdCIixtZW1vcnlUb3RhbDoiMTYgR0IiLG5ldHdvcmtJbjoiMi41IE1CL3MiLG5ldHdvcmtPdXQ6IjEuMiBNQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJtb25nb2RiIixtZW1vcnk6IjEuMiBHQiJ9LHtuYW1lOiJjbGlja2hvdXNlIixtZW1vcnk6Ijk4MCBNQiJ9LHtuYW1lOiJuZ2lueC1wcm94eSIsbWVtb3J5OiIyNTYgTUIifV19fQogICAgICAgIC5wbGF0Zm9ybVNlcnZpY2VzPSR7W3tuYW1lOiJNb25nb0RCIixzdGF0dXM6InJ1bm5pbmciLGljb246ImRhdGFiYXNlIn0se25hbWU6IlMzIFN0b3JhZ2UiLHN0YXR1czoicnVubmluZyIsaWNvbjoic3RvcmFnZSJ9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6InN0b3BwZWQiLGljb246ImFuYWx5dGljcyJ9LHtuYW1lOiJSZWRpcyBDYWNoZSIsc3RhdHVzOiJydW5uaW5nIixpY29uOiJjYWNoZSJ9XX0KICAgICAgICAudHJhZmZpYz0ke3tyZXF1ZXN0czoxNTQyMCxlcnJvcnM6MjMsZXJyb3JQZXJjZW50Oi4xNSxhdmdSZXNwb25zZToxNDUscmVxUGVyTWluOjg1NixzdGF0dXMyeHg6MTQ4NTAsc3RhdHVzM3h4OjMyMCxzdGF0dXM0eHg6MjI3LHN0YXR1czV4eDoyM319CiAgICAgICAgLnByb3h5PSR7e2h0dHBQb3J0OiI4MCIsaHR0cHNQb3J0OiI0NDMiLGh0dHBBY3RpdmU6ITAsaHR0cHNBY3RpdmU6ITAscm91dGVDb3VudDoiMjQifX0KICAgICAgICAuY2VydGlmaWNhdGVzPSR7e3ZhbGlkOjE4LGV4cGlyaW5nOjIsZXhwaXJlZDowfX0KICAgICAgICAuZG5zPSR7e3JlY29yZHM6NDUsem9uZXM6OCxwZW5kaW5nQ2hhbmdlczowfX0KICAgICAgICAuc3NsPSR7e2FjdGl2ZUNlcnRzOjIwLGF1dG9SZW5ldzohMCxwcm92aWRlcjoiTGV0J3MgRW5jcnlwdCJ9fQogICAgICAgIEBxdWljay1hY3Rpb249JHtvPT5jb25zb2xlLmxvZygiUXVpY2sgYWN0aW9uOiIsby5kZXRhaWwpfQogICAgICA+PC9zei1kYXNoYm9hcmQtdmlldz4KICAgIGB9c3RhdGlje0RCYShhLHIpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgaW1lLHdnLEFCYSxiaWE9dSgoKT0+e3ZlKCk7YmwoKTtpbWU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHdnPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxBQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1kZW1vLXZpZXctc2VydmljZXMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld1NlcnZpY2VzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sYz1baWUoKV0scD1baWUoKV0saW1lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImN1cnJlbnRWaWV3ImluIGcsImhhcyIpLGdldDppKGc9PmcuY3VycmVudFZpZXcsImdldCIpLHNldDppKChnLHkpPT57Zy5jdXJyZW50Vmlldz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksaW1lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRTZXJ2aWNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJzZWxlY3RlZFNlcnZpY2UiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5zZWxlY3RlZFNlcnZpY2UsImdldCIpLHNldDppKChnLHkpPT57Zy5zZWxlY3RlZFNlcnZpY2U9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLGltZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJzZWxlY3RlZFBsYXRmb3JtU2VydmljZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2U9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLGltZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHIpLHY9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfWFwcHVpPW51bGw7I2U9d2codGhpcyxvLCJsaXN0Iik7Z2V0IGN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRWaWV3KGIpe3RoaXMuI2U9Yn0jdD0od2codGhpcyxsKSx3Zyh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZFNlcnZpY2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRTZXJ2aWNlKGIpe3RoaXMuI3Q9Yn0jcj0od2codGhpcyxmKSx3Zyh0aGlzLGgsbnVsbCkpO2dldCBzZWxlY3RlZFBsYXRmb3JtU2VydmljZSgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZFBsYXRmb3JtU2VydmljZShiKXt0aGlzLiNyPWJ9ZGVtb1NlcnZpY2VzPSh3Zyh0aGlzLG0pLFt7aWQ6IjEiLG5hbWU6Im5naW54LXByb3h5IixpbWFnZToibmdpbng6bGF0ZXN0IixzdGF0dXM6InJ1bm5pbmciLGNwdToiMi41JSIsbWVtb3J5OiIyNTYgTUIiLHBvcnRzOiI4MCwgNDQzIix1cHRpbWU6IjVkIDEyaCJ9LHtpZDoiMiIsbmFtZToiYXBpLWdhdGV3YXkiLGltYWdlOiJhcGktZ2F0ZXdheTp2Mi4xLjAiLHN0YXR1czoicnVubmluZyIsY3B1OiI4LjIlIixtZW1vcnk6IjUxMiBNQiIscG9ydHM6IjMwMDAiLHVwdGltZToiM2QgOGgifSx7aWQ6IjMiLG5hbWU6Indvcmtlci1zZXJ2aWNlIixpbWFnZToid29ya2VyOmxhdGVzdCIsc3RhdHVzOiJzdG9wcGVkIixjcHU6IjAlIixtZW1vcnk6IjAgTUIiLHBvcnRzOiItIix1cHRpbWU6Ii0ifSx7aWQ6IjQiLG5hbWU6InJlZGlzLWNhY2hlIixpbWFnZToicmVkaXM6Ny1hbHBpbmUiLHN0YXR1czoicnVubmluZyIsY3B1OiIxLjIlIixtZW1vcnk6IjEyOCBNQiIscG9ydHM6IjYzNzkiLHVwdGltZToiMTBkIDRoIn1dKTtkZW1vUGxhdGZvcm1TZXJ2aWNlPXtpZDoiMSIsbmFtZToiTW9uZ29EQiIsdHlwZToibW9uZ29kYiIsc3RhdHVzOiJydW5uaW5nIix2ZXJzaW9uOiI3LjAuNCIsaG9zdDoibG9jYWxob3N0Iixwb3J0OjI3MDE3LGNyZWRlbnRpYWxzOnt1c2VybmFtZToiYWRtaW4iLHBhc3N3b3JkOiJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjIifSxjb25maWc6e3JlcGxpY2FTZXQ6InJzMCIsYXV0aEVuYWJsZWQ6ITAsam91cm5hbGluZzohMH0sbWV0cmljczp7Y3B1OjEyLG1lbW9yeTo0NSxzdG9yYWdlOjIzLGNvbm5lY3Rpb25zOjh9fTtkZW1vUGxhdGZvcm1Mb2dzPVt7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIyIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiQ29ubmVjdGlvbiBhY2NlcHRlZCBmcm9tIDEyNy4wLjAuMTo1NDMyMSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjAiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJJbmRleCBidWlsZCBjb21wbGV0ZWQgb24gY29sbGVjdGlvbiB1c2VycyJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTUiLGxldmVsOiJ3YXJuIixtZXNzYWdlOiJTbG93IHF1ZXJ5IGRldGVjdGVkOiAxLjJzIG9uIGNvbGxlY3Rpb24gb3JkZXJzIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoxMCIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkNoZWNrcG9pbnQgY29tcGxldGUifV07ZGVtb0JhY2t1cFNjaGVkdWxlcz1be2lkOiIxIixzY29wZToiQWxsIFNlcnZpY2VzIixyZXRlbnRpb246IkQ6NywgVzo0LCBNOjEyIixzY2hlZHVsZToiMCAyICogKiAqIixsYXN0UnVuOiIxLzIvMjAyNiwgMjowMDowMyBBTSIsbmV4dFJ1bjoiMS8zLzIwMjYsIDI6MDA6MDAgQU0iLHN0YXR1czoiYWN0aXZlIn1dO2RlbW9CYWNrdXBzPVt7aWQ6IjEiLHNlcnZpY2U6Im5naW54LXByb3h5IixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIl19LHtpZDoiMiIsc2VydmljZToiYXBpLWdhdGV3YXkiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDIgQU0iLHNpemU6IjE1Ni41IE1CIixpbmNsdWRlczpbIkltYWdlIiwiVm9sdW1lcyJdfSx7aWQ6IjMiLHNlcnZpY2U6InJlZGlzLWNhY2hlIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAwIEFNIixzaXplOiI0OC4wIE1CIixpbmNsdWRlczpbIkltYWdlIiwiRGF0YSJdfV07c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMXB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwOwogICAgICB9CgogICAgICAuYmFjay1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJsaXN0Ij90aGlzLnJlbmRlckxpc3RWaWV3KCk6IiJ9CiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJjcmVhdGUiP3RoaXMucmVuZGVyQ3JlYXRlVmlldygpOiIifQogICAgICAke3RoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlsIj90aGlzLnJlbmRlckRldGFpbFZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09ImJhY2t1cHMiP3RoaXMucmVuZGVyQmFja3Vwc1ZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09InBsYXRmb3JtLWRldGFpbCI/dGhpcy5yZW5kZXJQbGF0Zm9ybURldGFpbFZpZXcoKToiIn0KICAgIGB9cmVuZGVyTGlzdFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+U2VydmljZXM8L2gxPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPk1hbmFnZSB5b3VyIERvY2tlciBjb250YWluZXJzIGFuZCBwbGF0Zm9ybSBzZXJ2aWNlczwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHNlY29uZGFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9ImJhY2t1cHMifT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNyA4IDEyIDMgNyA4Ii8+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMyIgeDI9IjEyIiB5Mj0iMTUiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEJhY2t1cHMKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9ImNyZWF0ZSJ9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBEZXBsb3kgU2VydmljZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0idGFicyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGFiIGFjdGl2ZSI+RG9ja2VyIFNlcnZpY2VzPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGFiIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2U9dGhpcy5kZW1vUGxhdGZvcm1TZXJ2aWNlLHRoaXMuY3VycmVudFZpZXc9InBsYXRmb3JtLWRldGFpbCJ9fT5QbGF0Zm9ybSBTZXJ2aWNlczwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxzei1zZXJ2aWNlcy1saXN0LXZpZXcKICAgICAgICAuc2VydmljZXM9JHt0aGlzLmRlbW9TZXJ2aWNlc30KICAgICAgICBAdmlldy1zZXJ2aWNlPSR7Yj0+e3RoaXMuc2VsZWN0ZWRTZXJ2aWNlPWIuZGV0YWlsLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCJ9fQogICAgICAgIEBzdGFydC1zZXJ2aWNlPSR7Yj0+Y29uc29sZS5sb2coIlN0YXJ0IHNlcnZpY2U6IixiLmRldGFpbCl9CiAgICAgICAgQHN0b3Atc2VydmljZT0ke2I9PmNvbnNvbGUubG9nKCJTdG9wIHNlcnZpY2U6IixiLmRldGFpbCl9CiAgICAgICAgQHJlc3RhcnQtc2VydmljZT0ke2I9PmNvbnNvbGUubG9nKCJSZXN0YXJ0IHNlcnZpY2U6IixiLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1zZXJ2aWNlPSR7Yj0+Y29uc29sZS5sb2coIkRlbGV0ZSBzZXJ2aWNlOiIsYi5kZXRhaWwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1saXN0LXZpZXc+CiAgICBgfXJlbmRlckNyZWF0ZVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXNlcnZpY2UtY3JlYXRlLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6Ik9uZWJveCBSZWdpc3RyeSIsdXJsOiJyZWdpc3RyeS5vbmVib3gubG9jYWwifSx7aWQ6IjIiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIn1dfQogICAgICAgIEBjcmVhdGUtc2VydmljZT0ke2I9Pntjb25zb2xlLmxvZygiQ3JlYXRlIHNlcnZpY2U6IixiLmRldGFpbCksdGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBjYW5jZWw9JHsoKT0+dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9CiAgICAgID48L3N6LXNlcnZpY2UtY3JlYXRlLXZpZXc+CiAgICBgfXJlbmRlckRldGFpbFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3tpZDp0aGlzLnNlbGVjdGVkU2VydmljZT8uaWR8fCIxIixuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5uYW1lfHwibmdpbngtcHJveHkiLGltYWdlOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5pbWFnZXx8Im5naW54OmxhdGVzdCIsc3RhdHVzOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5zdGF0dXN8fCJydW5uaW5nIixwb3J0czpbe2hvc3Q6IjgwIixjb250YWluZXI6IjgwIn0se2hvc3Q6IjQ0MyIsY29udGFpbmVyOiI0NDMifV0sZW52VmFyczpbe2tleToiTkdJTlhfSE9TVCIsdmFsdWU6ImxvY2FsaG9zdCJ9LHtrZXk6Ik5HSU5YX1BPUlQiLHZhbHVlOiI4MCJ9XSx2b2x1bWVzOlt7aG9zdDoiL2RhdGEvbmdpbngvY29uZiIsY29udGFpbmVyOiIvZXRjL25naW54L2NvbmYuZCJ9XSxjcmVhdGVkQXQ6IjIwMjQtMDEtMTUgMTA6MzA6MDAiLHJlc3RhcnRQb2xpY3k6ImFsd2F5cyJ9fQogICAgICAgIC5sb2dzPSR7W3t0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjIiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoyMiArMDAwMF0gIkdFVCAvIEhUVFAvMS4xIiAyMDAgNjEyJ30se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMSIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6JzEyNy4wLjAuMSAtIC0gWzIwL0phbi8yMDI0OjE0OjMwOjIxICswMDAwXSAiR0VUIC9hcGkvaGVhbHRoIEhUVFAvMS4xIiAyMDAgMTUnfSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIwIixsZXZlbDoid2FybiIsbWVzc2FnZToidXBzdHJlYW0gdGltZWQgb3V0ICgxMTA6IENvbm5lY3Rpb24gdGltZWQgb3V0KSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTkiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoxOSArMDAwMF0gIlBPU1QgL2FwaS9kYXRhIEhUVFAvMS4xIiAyMDEgODknfV19CiAgICAgICAgQHN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJTdGFydCIpfQogICAgICAgIEBzdG9wPSR7KCk9PmNvbnNvbGUubG9nKCJTdG9wIil9CiAgICAgICAgQHJlc3RhcnQ9JHsoKT0+Y29uc29sZS5sb2coIlJlc3RhcnQiKX0KICAgICAgICBAcmVxdWVzdC13b3Jrc3BhY2U9JHtiPT5jb25zb2xlLmxvZygiV29ya3NwYWNlIHJlcXVlc3RlZCBmb3I6IixiLmRldGFpbC5zZXJ2aWNlLm5hbWUpfQogICAgICA+PC9zei1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgYH1yZW5kZXJCYWNrdXBzVmlldygpe3JldHVybiB3YAogICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgPC9idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5CYWNrdXBzPC9oMT4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5NYW5hZ2UgYmFja3VwIHNjaGVkdWxlcyBhbmQgcmVzdG9yZSBwb2ludHM8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPHN6LXNlcnZpY2VzLWJhY2t1cHMtdmlldwogICAgICAgIC5zY2hlZHVsZXM9JHt0aGlzLmRlbW9CYWNrdXBTY2hlZHVsZXN9CiAgICAgICAgLmJhY2t1cHM9JHt0aGlzLmRlbW9CYWNrdXBzfQogICAgICAgIEBjcmVhdGUtc2NoZWR1bGU9JHsoKT0+Y29uc29sZS5sb2coIkNyZWF0ZSBzY2hlZHVsZSIpfQogICAgICAgIEBydW4tbm93PSR7Yj0+Y29uc29sZS5sb2coIlJ1biBub3c6IixiLmRldGFpbCl9CiAgICAgICAgQGRvd25sb2FkPSR7Yj0+Y29uc29sZS5sb2coIkRvd25sb2FkOiIsYi5kZXRhaWwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXc+CiAgICBgfXJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpe3JldHVybiB3YAogICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgPC9idXR0b24+CgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7dGhpcy5kZW1vUGxhdGZvcm1TZXJ2aWNlfQogICAgICAgIC5sb2dzPSR7dGhpcy5kZW1vUGxhdGZvcm1Mb2dzfQogICAgICAgIEBzdGFydD0keygpPT5jb25zb2xlLmxvZygiU3RhcnQiKX0KICAgICAgICBAc3RvcD0keygpPT5jb25zb2xlLmxvZygiU3RvcCIpfQogICAgICAgIEByZXN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJSZXN0YXJ0Iil9CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICBgfWFzeW5jIG9uQWN0aXZhdGUoYil7dGhpcy5hcHB1aT1iLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkRvY2tlciBTZXJ2aWNlcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJQbGF0Zm9ybSBTZXJ2aWNlcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJwbGF0Zm9ybS1kZXRhaWwiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkJhY2t1cHMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50Vmlldz0iYmFja3VwcyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXJ2aWNlcyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRGVwbG95IFNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJjcmVhdGUifSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpSZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlJlZnJlc2giKX0sImFjdGlvbiIpfV19LHtuYW1lOiJRdWljayBGaWx0ZXJzIixpdGVtczpbe2tleToiUnVubmluZyIsaWNvbk5hbWU6Imx1Y2lkZTpQbGF5IixiYWRnZToiMyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgcnVubmluZyIpfSwiYWN0aW9uIil9LHtrZXk6IlN0b3BwZWQiLGljb25OYW1lOiJsdWNpZGU6U3F1YXJlIixiYWRnZToiMSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHN0b3BwZWQiKX0sImFjdGlvbiIpfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWN7d2coYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIHNndCxmYWUsRUJhLHhpYT11KCgpPT57dmUoKTtibCgpO3NndD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZmFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxFQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1kZW1vLXZpZXctbmV0d29yayIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3TmV0d29yayIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHNndCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImN1cnJlbnRUYWIiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5jdXJyZW50VGFiLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uY3VycmVudFRhYj12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksc2d0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREb21haW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InNlbGVjdGVkRG9tYWluImluIG0sImhhcyIpLGdldDppKG09Pm0uc2VsZWN0ZWREb21haW4sImdldCIpLHNldDppKChtLHYpPT57bS5zZWxlY3RlZERvbWFpbj12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksc2d0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9YXBwdWk9bnVsbDsjZT1mYWUodGhpcyxvLCJwcm94eSIpO2dldCBjdXJyZW50VGFiKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRUYWIoaCl7dGhpcy4jZT1ofWFzeW5jIG9uQWN0aXZhdGUoaCl7dGhpcy5hcHB1aT1oLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IlJldmVyc2UgUHJveHkiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJwcm94eSIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRE5TIFJlY29yZHMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJkbnMiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkRvbWFpbnMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJkb21haW5zIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXt0aGlzLmFwcHVpJiYodGhpcy5jdXJyZW50VGFiPT09InByb3h5Ij90aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlJldmVyc2UgUHJveHkiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBSb3V0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgcm91dGUiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6UmVmcmVzaEN3IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3RhdGlzdGljcyIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiI0MiBBY3RpdmUgQ29ubmVjdGlvbnMifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiMTUsNDIwIFJlcXVlc3RzIFRvZGF5In1dfV19KTp0aGlzLmN1cnJlbnRUYWI9PT0iZG5zIj90aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkROUyBSZWNvcmRzIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgUmVjb3JkIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkFkZCByZWNvcmQiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCBab25lIixpY29uTmFtZToibHVjaWRlOlVwbG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiSW1wb3J0IHpvbmUiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJab25lcyIsaXRlbXM6W3trZXk6ImV4YW1wbGUuY29tIixpY29uTmFtZToibHVjaWRlOkdsb2JlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJTZWxlY3QgZXhhbXBsZS5jb20iKX0sImFjdGlvbiIpfSx7a2V5OiJleGFtcGxlLm5ldCIsaWNvbk5hbWU6Imx1Y2lkZTpHbG9iZSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiU2VsZWN0IGV4YW1wbGUubmV0Iil9LCJhY3Rpb24iKX0se2tleToibXlhcHAuaW8iLGljb25OYW1lOiJsdWNpZGU6R2xvYmUiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlNlbGVjdCBteWFwcC5pbyIpfSwiYWN0aW9uIil9XX1dfSk6KHRoaXMuY3VycmVudFRhYj09PSJkb21haW5zInx8dGhpcy5jdXJyZW50VGFiPT09ImRvbWFpbi1kZXRhaWwiKSYmdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJEb21haW5zIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgRG9tYWluIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkFkZCBkb21haW4iKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IlZlcmlmeSBBbGwiLGljb25OYW1lOiJsdWNpZGU6Q2hlY2tDaXJjbGUiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlZlcmlmeSBhbGwiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJDZXJ0aWZpY2F0ZXMiLGl0ZW1zOlt7a2V5OiJWYWxpZCIsaWNvbk5hbWU6Imx1Y2lkZTpTaGllbGRDaGVjayIsYmFkZ2U6IjMiLGJhZGdlVmFyaWFudDoic3VjY2VzcyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHZhbGlkIil9LCJhY3Rpb24iKX0se2tleToiRXhwaXJpbmcgU29vbiIsaWNvbk5hbWU6Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIixiYWRnZToiMSIsYmFkZ2VWYXJpYW50OiJ3YXJuaW5nIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgZXhwaXJpbmciKX0sImFjdGlvbiIpfV19XX0pKX1vbkRlYWN0aXZhdGUoKXt9I3Q9KGZhZSh0aGlzLGwpLGZhZSh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZERvbWFpbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZERvbWFpbihoKXt0aGlzLiN0PWh9ZGVtb1Byb3h5Um91dGVzPShmYWUodGhpcyxmKSxbe2lkOiIxIixkb21haW46ImFwaS5leGFtcGxlLmNvbSIsdGFyZ2V0OiJodHRwOi8vYXBpLWdhdGV3YXk6MzAwMCIsc3NsOiEwLHN0YXR1czoiYWN0aXZlIn0se2lkOiIyIixkb21haW46ImFwcC5leGFtcGxlLmNvbSIsdGFyZ2V0OiJodHRwOi8vZnJvbnRlbmQ6ODA4MCIsc3NsOiEwLHN0YXR1czoiYWN0aXZlIn0se2lkOiIzIixkb21haW46ImFkbWluLmV4YW1wbGUuY29tIix0YXJnZXQ6Imh0dHA6Ly9hZG1pbi1wYW5lbDo0MDAwIixzc2w6ITAsc3RhdHVzOiJhY3RpdmUifSx7aWQ6IjQiLGRvbWFpbjoibGVnYWN5LmV4YW1wbGUuY29tIix0YXJnZXQ6Imh0dHA6Ly9sZWdhY3k6NTAwMCIsc3NsOiExLHN0YXR1czoiaW5hY3RpdmUifV0pO2RlbW9BY2Nlc3NMb2dzPVt7dGltZXN0YW1wOiIxNDozMDoyMiIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9hcGkvdXNlcnMiLHN0YXR1czoyMDAsZHVyYXRpb246IjQ1bXMiLGlwOiIxOTIuMTY4LjEuMTAwIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLG1ldGhvZDoiUE9TVCIscGF0aDoiL2FwaS9vcmRlcnMiLHN0YXR1czoyMDEsZHVyYXRpb246IjEyMG1zIixpcDoiMTkyLjE2OC4xLjEwNSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixtZXRob2Q6IkdFVCIscGF0aDoiL2FwaS9wcm9kdWN0cyIsc3RhdHVzOjIwMCxkdXJhdGlvbjoiODltcyIsaXA6IjE5Mi4xNjguMS4xMDAifSx7dGltZXN0YW1wOiIxNDozMDoxOSIsbWV0aG9kOiJERUxFVEUiLHBhdGg6Ii9hcGkvY2FjaGUiLHN0YXR1czoyMDQsZHVyYXRpb246IjEybXMiLGlwOiIxOTIuMTY4LjEuNTAifSx7dGltZXN0YW1wOiIxNDozMDoxOCIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9oZWFsdGgiLHN0YXR1czoyMDAsZHVyYXRpb246IjVtcyIsaXA6IjEwLjAuMC4xIn1dO2RlbW9EbnNSZWNvcmRzPVt7aWQ6IjEiLHR5cGU6IkEiLG5hbWU6IkAiLHZhbHVlOiIxOTIuMTY4LjEuMTAwIix0dGw6MzYwMCx6b25lOiJleGFtcGxlLmNvbSJ9LHtpZDoiMiIsdHlwZToiQSIsbmFtZToiYXBpIix2YWx1ZToiMTkyLjE2OC4xLjEwMCIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20ifSx7aWQ6IjMiLHR5cGU6IkNOQU1FIixuYW1lOiJ3d3ciLHZhbHVlOiJleGFtcGxlLmNvbSIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20ifSx7aWQ6IjQiLHR5cGU6Ik1YIixuYW1lOiJAIix2YWx1ZToibWFpbC5leGFtcGxlLmNvbSIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20iLHByaW9yaXR5OjEwfSx7aWQ6IjUiLHR5cGU6IlRYVCIsbmFtZToiQCIsdmFsdWU6InY9c3BmMSBpbmNsdWRlOl9zcGYuZXhhbXBsZS5jb20gfmFsbCIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20ifV07ZGVtb0RvbWFpbnM9W3tpZDoiMSIsbmFtZToiZXhhbXBsZS5jb20iLHN0YXR1czoiYWN0aXZlIixzc2w6ITAsc3NsRXhwaXJ5OiIyMDI0LTA0LTE1IixkbnNQcm92aWRlcjoiQ2xvdWRmbGFyZSIscmVjb3JkQ291bnQ6MTJ9LHtpZDoiMiIsbmFtZToiYXBpLmV4YW1wbGUuY29tIixzdGF0dXM6ImFjdGl2ZSIsc3NsOiEwLHNzbEV4cGlyeToiMjAyNC0wNS0yMCIsZG5zUHJvdmlkZXI6IkNsb3VkZmxhcmUiLHJlY29yZENvdW50OjN9LHtpZDoiMyIsbmFtZToic3RhZ2luZy5leGFtcGxlLmNvbSIsc3RhdHVzOiJwZW5kaW5nIixzc2w6ITEsc3NsRXhwaXJ5Om51bGwsZG5zUHJvdmlkZXI6IkNsb3VkZmxhcmUiLHJlY29yZENvdW50OjJ9LHtpZDoiNCIsbmFtZToibGVnYWN5LmV4YW1wbGUubmV0IixzdGF0dXM6ImFjdGl2ZSIsc3NsOiEwLHNzbEV4cGlyeToiMjAyNC0wMi0xMCIsZG5zUHJvdmlkZXI6Ik1hbnVhbCIscmVjb3JkQ291bnQ6NX1dO2RlbW9Eb21haW5EZXRhaWw9e2lkOiIxIixuYW1lOiJleGFtcGxlLmNvbSIsc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMCIscHJveHlSb3V0ZXM6WyIvYXBpLyoiLCIvYXBwLyoiLCIvYWRtaW4vKiJdfTtkZW1vQ2VydGlmaWNhdGU9e2lkOiIxIixkb21haW46ImV4YW1wbGUuY29tIixpc3N1ZXI6IkxldCdzIEVuY3J5cHQiLHZhbGlkRnJvbToiMjAyNC0wMS0xMCIsdmFsaWRVbnRpbDoiMjAyNC0wNC0xMCIsZGF5c1JlbWFpbmluZzo0NSxzdGF0dXM6InZhbGlkIixhdXRvUmVuZXc6ITAsY2hhaW46WyJSMyIsIklTUkcgUm9vdCBYMSJdfTtkZW1vRG9tYWluRG5zUmVjb3Jkcz1be2lkOiIxIix0eXBlOiJBIixuYW1lOiJAIix2YWx1ZToiMTkyLjE2OC4xLjEwMCIsdHRsOjM2MDB9LHtpZDoiMiIsdHlwZToiQ05BTUUiLG5hbWU6Ind3dyIsdmFsdWU6ImV4YW1wbGUuY29tIix0dGw6MzYwMH0se2lkOiIzIix0eXBlOiJNWCIsbmFtZToiQCIsdmFsdWU6Im1haWwuZXhhbXBsZS5jb20iLHR0bDozNjAwLHByaW9yaXR5OjEwfSx7aWQ6IjQiLHR5cGU6IlRYVCIsbmFtZToiQCIsdmFsdWU6InY9c3BmMSBpbmNsdWRlOl9zcGYuZXhhbXBsZS5jb20gfmFsbCIsdHRsOjM2MDB9XTtzdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC50YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuYWN0aXZlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogLTFweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHggMXB4IDAgMDsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWluLWRldGFpbCI/dGhpcy5yZW5kZXJEb21haW5EZXRhaWwoKTp3YAogICAgICAke3RoaXMuY3VycmVudFRhYj09PSJwcm94eSI/dGhpcy5yZW5kZXJQcm94eVZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0iZG5zIj90aGlzLnJlbmRlckRuc1ZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWlucyI/dGhpcy5yZW5kZXJEb21haW5zVmlldygpOiIifQogICAgYH1yZW5kZXJQcm94eVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPHN6LW5ldHdvcmstcHJveHktdmlldwogICAgICAgIC5yb3V0ZXM9JHt0aGlzLmRlbW9Qcm94eVJvdXRlc30KICAgICAgICAuYWNjZXNzTG9ncz0ke3RoaXMuZGVtb0FjY2Vzc0xvZ3N9CiAgICAgICAgLnN0YXRzPSR7e2FjdGl2ZUNvbm5lY3Rpb25zOjQyLHJlcXVlc3RzVG9kYXk6MTU0MjAsYnl0ZXNUcmFuc2ZlcnJlZDoiMi40IEdCIn19CiAgICAgICAgQGFkZC1yb3V0ZT0keygpPT5jb25zb2xlLmxvZygiQWRkIHJvdXRlIil9CiAgICAgICAgQGVkaXQtcm91dGU9JHtoPT5jb25zb2xlLmxvZygiRWRpdCByb3V0ZToiLGguZGV0YWlsKX0KICAgICAgICBAZGVsZXRlLXJvdXRlPSR7aD0+Y29uc29sZS5sb2coIkRlbGV0ZSByb3V0ZToiLGguZGV0YWlsKX0KICAgICAgPjwvc3otbmV0d29yay1wcm94eS12aWV3PgogICAgYH1yZW5kZXJEbnNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLWRucy12aWV3CiAgICAgICAgLnJlY29yZHM9JHt0aGlzLmRlbW9EbnNSZWNvcmRzfQogICAgICAgIC56b25lcz0ke1siZXhhbXBsZS5jb20iLCJleGFtcGxlLm5ldCIsIm15YXBwLmlvIl19CiAgICAgICAgLnNlbGVjdGVkWm9uZT0keyJleGFtcGxlLmNvbSJ9CiAgICAgICAgQGFkZC1yZWNvcmQ9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByZWNvcmQiKX0KICAgICAgICBAZWRpdC1yZWNvcmQ9JHtoPT5jb25zb2xlLmxvZygiRWRpdCByZWNvcmQ6IixoLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1yZWNvcmQ9JHtoPT5jb25zb2xlLmxvZygiRGVsZXRlIHJlY29yZDoiLGguZGV0YWlsKX0KICAgICAgICBAY2hhbmdlLXpvbmU9JHtoPT5jb25zb2xlLmxvZygiQ2hhbmdlIHpvbmU6IixoLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstZG5zLXZpZXc+CiAgICBgfXJlbmRlckRvbWFpbnNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLWRvbWFpbnMtdmlldwogICAgICAgIC5kb21haW5zPSR7dGhpcy5kZW1vRG9tYWluc30KICAgICAgICBAYWRkLWRvbWFpbj0keygpPT5jb25zb2xlLmxvZygiQWRkIGRvbWFpbiIpfQogICAgICAgIEB2aWV3LWRvbWFpbj0ke2g9Pnt0aGlzLnNlbGVjdGVkRG9tYWluPWguZGV0YWlsLHRoaXMuY3VycmVudFRhYj0iZG9tYWluLWRldGFpbCJ9fQogICAgICAgIEByZW5ldy1zc2w9JHtoPT5jb25zb2xlLmxvZygiUmVuZXcgU1NMOiIsaC5kZXRhaWwpfQogICAgICAgIEBkZWxldGUtZG9tYWluPSR7aD0+Y29uc29sZS5sb2coIkRlbGV0ZSBkb21haW46IixoLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstZG9tYWlucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5EZXRhaWwoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRUYWI9ImRvbWFpbnMifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gRG9tYWlucwogICAgICA8L2J1dHRvbj4KCiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7dGhpcy5kZW1vRG9tYWluRGV0YWlsfQogICAgICAgIC5jZXJ0aWZpY2F0ZT0ke3RoaXMuZGVtb0NlcnRpZmljYXRlfQogICAgICAgIC5kbnNSZWNvcmRzPSR7dGhpcy5kZW1vRG9tYWluRG5zUmVjb3Jkc30KICAgICAgICBAdmVyaWZ5LWRvbWFpbj0keygpPT5jb25zb2xlLmxvZygiVmVyaWZ5IGRvbWFpbiIpfQogICAgICAgIEBkZWxldGUtZG9tYWluPSR7KCk9Pntjb25zb2xlLmxvZygiRGVsZXRlIGRvbWFpbiIpLHRoaXMuY3VycmVudFRhYj0iZG9tYWlucyJ9fQogICAgICAgIEByZW5ldy1jZXJ0aWZpY2F0ZT0keygpPT5jb25zb2xlLmxvZygiUmVuZXcgY2VydGlmaWNhdGUiKX0KICAgICAgICBAYWRkLWRucy1yZWNvcmQ9JHsoKT0+Y29uc29sZS5sb2coIkFkZCBETlMgcmVjb3JkIil9CiAgICAgICAgQGVkaXQtZG5zLXJlY29yZD0ke2g9PmNvbnNvbGUubG9nKCJFZGl0IEROUyByZWNvcmQ6IixoLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1kbnMtcmVjb3JkPSR7aD0+Y29uc29sZS5sb2coIkRlbGV0ZSBETlMgcmVjb3JkOiIsaC5kZXRhaWwpfQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICBgfXN0YXRpY3tmYWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIHZpYSxuZ3QsSUJhLHlpYT11KCgpPT57dmUoKTtibCgpO3ZpYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sbmd0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxJQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1kZW1vLXZpZXctcmVnaXN0cmllcyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3UmVnaXN0cmllcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLHZpYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImN1cnJlbnRUYWIiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5jdXJyZW50VGFiLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuY3VycmVudFRhYj1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksdmlhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9YXBwdWk9bnVsbDsjZT1uZ3QodGhpcyxvLCJvbmVib3giKTtnZXQgY3VycmVudFRhYigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VGFiKGQpe3RoaXMuI2U9ZH1hc3luYyBvbkFjdGl2YXRlKGQpe3RoaXMuYXBwdWk9ZC5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJSZWdpc3RyeSBBZHZlcnRpc2VtZW50IixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0ib25lYm94Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJFeHRlcm5hbCBSZWdpc3RyaWVzIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iZXh0ZXJuYWwiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9XSksdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9dXBkYXRlU2Vjb25kYXJ5TWVudSgpe3RoaXMuYXBwdWkmJih0aGlzLmN1cnJlbnRUYWI9PT0ib25lYm94Ij90aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlJlZ2lzdHJ5IEFkdmVydGlzZW1lbnQiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IlB1c2ggSW1hZ2UiLGljb25OYW1lOiJsdWNpZGU6VXBsb2FkIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJQdXNoIGltYWdlIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsdmFyaWFudDoiZGFuZ2VyIixrZXk6IkdhcmJhZ2UgQ29sbGVjdCIsaWNvbk5hbWU6Imx1Y2lkZTpUcmFzaDIiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkdDIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3RhdGlzdGljcyIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiI0IEltYWdlcyJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiI2NDAgTUIgVG90YWwifV19XX0pOnRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRXh0ZXJuYWwgUmVnaXN0cmllcyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFJlZ2lzdHJ5IixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkFkZCByZWdpc3RyeSIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiVGVzdCBBbGwiLGljb25OYW1lOiJsdWNpZGU6Q2hlY2tDaXJjbGUiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlRlc3QgYWxsIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiQ29ubmVjdGVkIixpdGVtczpbe2tleToiRG9ja2VyIEh1YiIsaWNvbk5hbWU6Imx1Y2lkZTpCb3giLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkRvY2tlciBIdWIiKX0sImFjdGlvbiIpfSx7a2V5OiJHSENSIixpY29uTmFtZToibHVjaWRlOkdpdGh1YiIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiR0hDUiIpfSwiYWN0aW9uIil9XX1dfSkpfW9uRGVhY3RpdmF0ZSgpe31kZW1vT25lYm94SW1hZ2VzPShuZ3QodGhpcyxsKSxbe2lkOiIxIixuYW1lOiJhcGktZ2F0ZXdheSIsdGFnczpbImxhdGVzdCIsInYyLjEuMCIsInYyLjAuMCJdLHNpemU6IjI1NiBNQiIsdXBkYXRlZDoiMjAyNC0wMS0yMCIscHVsbHM6MTQyfSx7aWQ6IjIiLG5hbWU6ImZyb250ZW5kIix0YWdzOlsibGF0ZXN0IiwidjEuNS4wIl0sc2l6ZToiMTI4IE1CIix1cGRhdGVkOiIyMDI0LTAxLTE5IixwdWxsczo4OX0se2lkOiIzIixuYW1lOiJ3b3JrZXItc2VydmljZSIsdGFnczpbImxhdGVzdCJdLHNpemU6IjY0IE1CIix1cGRhdGVkOiIyMDI0LTAxLTE4IixwdWxsczo1Nn0se2lkOiI0IixuYW1lOiJhZG1pbi1wYW5lbCIsdGFnczpbImxhdGVzdCIsInYzLjAuMCIsInYyLjkuMCJdLHNpemU6IjE5MiBNQiIsdXBkYXRlZDoiMjAyNC0wMS0xNyIscHVsbHM6MzR9XSk7ZGVtb0V4dGVybmFsUmVnaXN0cmllcz1be2lkOiIxIixuYW1lOiJEb2NrZXIgSHViIix1cmw6ImRvY2tlci5pbyIsc3RhdHVzOiJjb25uZWN0ZWQiLGltYWdlczoxMn0se2lkOiIyIixuYW1lOiJHaXRIdWIgQ29udGFpbmVyIFJlZ2lzdHJ5Iix1cmw6ImdoY3IuaW8iLHN0YXR1czoiY29ubmVjdGVkIixpbWFnZXM6OH0se2lkOiIzIixuYW1lOiJBV1MgRUNSIix1cmw6IjEyMzQ1Njc4OS5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIixzdGF0dXM6ImVycm9yIixpbWFnZXM6MH1dO3N0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMXB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0ib25lYm94Ij93YAogICAgICAgIDxzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50CiAgICAgICAgICAuaW1hZ2VzPSR7dGhpcy5kZW1vT25lYm94SW1hZ2VzfQogICAgICAgICAgLnN0YXRzPSR7e3RvdGFsSW1hZ2VzOjQsdG90YWxTaXplOiI2NDAgTUIiLHRvdGFsUHVsbHM6MzIxfX0KICAgICAgICAgIEB2aWV3LWltYWdlPSR7ZD0+Y29uc29sZS5sb2coIlZpZXcgaW1hZ2U6IixkLmRldGFpbCl9CiAgICAgICAgICBAZGVsZXRlLWltYWdlPSR7ZD0+Y29uc29sZS5sb2coIkRlbGV0ZSBpbWFnZToiLGQuZGV0YWlsKX0KICAgICAgICAgIEBkZWxldGUtdGFnPSR7ZD0+Y29uc29sZS5sb2coIkRlbGV0ZSB0YWc6IixkLmRldGFpbCl9CiAgICAgICAgPjwvc3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudD4KICAgICAgYDp3YAogICAgICAgIDxzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3CiAgICAgICAgICAucmVnaXN0cmllcz0ke3RoaXMuZGVtb0V4dGVybmFsUmVnaXN0cmllc30KICAgICAgICAgIEBhZGQtcmVnaXN0cnk9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByZWdpc3RyeSIpfQogICAgICAgICAgQGVkaXQtcmVnaXN0cnk9JHtkPT5jb25zb2xlLmxvZygiRWRpdCByZWdpc3RyeToiLGQuZGV0YWlsKX0KICAgICAgICAgIEBkZWxldGUtcmVnaXN0cnk9JHtkPT5jb25zb2xlLmxvZygiRGVsZXRlIHJlZ2lzdHJ5OiIsZC5kZXRhaWwpfQogICAgICAgICAgQHRlc3QtY29ubmVjdGlvbj0ke2Q9PmNvbnNvbGUubG9nKCJUZXN0IGNvbm5lY3Rpb246IixkLmRldGFpbCl9CiAgICAgICAgPjwvc3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldz4KICAgICAgYH0KICAgIGB9c3RhdGlje25ndChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgUEJhLE5CYSxPQmEsd2lhPXUoKCk9Pnt2ZSgpO2JsKCk7UEJhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxOQmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LE9CYT0oKCk9PntsZXQgdD1bdWUoInN6LWRlbW8tdmlldy10b2tlbnMiKV0sZSxyPVtdLGEscz15ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld1Rva2VucyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO1BCYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHIpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfWFwcHVpPW51bGw7YXN5bmMgb25BY3RpdmF0ZShvKXt0aGlzLmFwcHVpPW8uYXBwdWksdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUb2tlbnMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkNyZWF0ZSBHbG9iYWwgVG9rZW4iLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIGdsb2JhbCB0b2tlbiIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIENJIFRva2VuIixpY29uTmFtZToibHVjaWRlOkdpdEJyYW5jaCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIENJIHRva2VuIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiVG9rZW4gVHlwZXMiLGl0ZW1zOlt7a2V5OiJHbG9iYWwgVG9rZW5zIixpY29uTmFtZToibHVjaWRlOktleSIsYmFkZ2U6IjMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBnbG9iYWwiKX0sImFjdGlvbiIpfSx7a2V5OiJDSSBUb2tlbnMiLGljb25OYW1lOiJsdWNpZGU6Q3B1IixiYWRnZToiMyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIENJIil9LCJhY3Rpb24iKX1dfV19KX1vbkRlYWN0aXZhdGUoKXt9ZGVtb0dsb2JhbFRva2Vucz1be2lkOiIxIixuYW1lOiJDSS9DRCBQaXBlbGluZSIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTUiLGxhc3RVc2VkOiIyMDI0LTAxLTIwIn0se2lkOiIyIixuYW1lOiJEZXZlbG9wbWVudCIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTAifSx7aWQ6IjMiLG5hbWU6IlByb2R1Y3Rpb24gRGVwbG95Iix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wNSIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifV07ZGVtb0NpVG9rZW5zPVt7aWQ6IjQiLG5hbWU6ImFwaS1nYXRld2F5LWNpIix0eXBlOiJjaSIsc2VydmljZToiYXBpLWdhdGV3YXkiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xOCIsbGFzdFVzZWQ6IjIwMjQtMDEtMjAifSx7aWQ6IjUiLG5hbWU6ImZyb250ZW5kLWNpIix0eXBlOiJjaSIsc2VydmljZToiZnJvbnRlbmQiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMiIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifSx7aWQ6IjYiLG5hbWU6Indvcmtlci1zZXJ2aWNlLWNpIix0eXBlOiJjaSIsc2VydmljZToid29ya2VyLXNlcnZpY2UiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wOCJ9XTtzdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5Ub2tlbnM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5NYW5hZ2UgcmVnaXN0cnkgYWNjZXNzIHRva2VucyBmb3IgQ0kvQ0QgcGlwZWxpbmVzPC9wPgogICAgICA8L2Rpdj4KCiAgICAgIDxzei10b2tlbnMtdmlldwogICAgICAgIC5nbG9iYWxUb2tlbnM9JHt0aGlzLmRlbW9HbG9iYWxUb2tlbnN9CiAgICAgICAgLmNpVG9rZW5zPSR7dGhpcy5kZW1vQ2lUb2tlbnN9CiAgICAgICAgQGNyZWF0ZT0ke289PmNvbnNvbGUubG9nKCJDcmVhdGUgdG9rZW46IixvLmRldGFpbCl9CiAgICAgICAgQGNvcHk9JHtvPT5jb25zb2xlLmxvZygiQ29weSB0b2tlbjoiLG8uZGV0YWlsKX0KICAgICAgICBAcmVnZW5lcmF0ZT0ke289PmNvbnNvbGUubG9nKCJSZWdlbmVyYXRlIHRva2VuOiIsby5kZXRhaWwpfQogICAgICAgIEBkZWxldGU9JHtvPT5jb25zb2xlLmxvZygiRGVsZXRlIHRva2VuOiIsby5kZXRhaWwpfQogICAgICA+PC9zei10b2tlbnMtdmlldz4KICAgIGB9c3RhdGlje05CYShhLHIpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgUkJhLEZCYSxCQmEsa2lhPXUoKCk9Pnt2ZSgpO2JsKCk7UkJhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxGQmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEJCYT0oKCk9PntsZXQgdD1bdWUoInN6LWRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLHI9W10sYSxzPXllO3ZhciBuPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3U2V0dGluZ3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtSQmEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1hcHB1aT1udWxsO2FzeW5jIG9uQWN0aXZhdGUobyl7dGhpcy5hcHB1aT1vLmFwcHVpLHRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiU2V0dGluZ3MiLGdyb3Vwczpbe25hbWU6IkNhdGVnb3JpZXMiLGl0ZW1zOlt7a2V5OiJHZW5lcmFsIixpY29uTmFtZToibHVjaWRlOlNldHRpbmdzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJHZW5lcmFsIHNldHRpbmdzIil9LCJhY3Rpb24iKX0se2tleToiTmV0d29yayIsaWNvbk5hbWU6Imx1Y2lkZTpOZXR3b3JrIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJOZXR3b3JrIHNldHRpbmdzIil9LCJhY3Rpb24iKX0se2tleToiU2VjdXJpdHkiLGljb25OYW1lOiJsdWNpZGU6U2hpZWxkIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJTZWN1cml0eSBzZXR0aW5ncyIpfSwiYWN0aW9uIil9LHtrZXk6IkNlcnRpZmljYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpGaWxlQmFkZ2UiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkNlcnRpZmljYXRlIHNldHRpbmdzIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRXhwb3J0IENvbmZpZyIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRXhwb3J0IGNvbmZpZyIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IENvbmZpZyIsaWNvbk5hbWU6Imx1Y2lkZTpVcGxvYWQiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkltcG9ydCBjb25maWciKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIix2YXJpYW50OiJkYW5nZXIiLGtleToiUmVzZXQgdG8gRGVmYXVsdCIsaWNvbk5hbWU6Imx1Y2lkZTpSb3RhdGVDY3ciLGNvbmZpcm1NZXNzYWdlOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVzZXQgYWxsIHNldHRpbmdzIHRvIGRlZmF1bHQ/IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJSZXNldCBzZXR0aW5ncyIpfSwiYWN0aW9uIil9XX1dfSl9b25EZWFjdGl2YXRlKCl7fWRlbW9TZXR0aW5ncz17ZGFya01vZGU6ITAsY2xvdWRmbGFyZVRva2VuOiIiLGNsb3VkZmxhcmVab25lSWQ6IiIsYXV0b1JlbmV3Q2VydHM6ITAscmVuZXdhbFRocmVzaG9sZDozMCxhY21lRW1haWw6ImFkbWluQHNlcnZlLnpvbmUiLGh0dHBQb3J0OjgwLGh0dHBzUG9ydDo0NDMsZm9yY2VIdHRwczohMH07c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wYWdlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICB9CgogICAgICAucGFnZS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+U2V0dGluZ3M8L2gxPgogICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5Db25maWd1cmUgeW91ciBvbmVib3ggaW5zdGFuY2U8L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtY29udGFpbmVyIj4KICAgICAgICA8c3otc2V0dGluZ3MtdmlldwogICAgICAgICAgLnNldHRpbmdzPSR7dGhpcy5kZW1vU2V0dGluZ3N9CiAgICAgICAgICBjdXJyZW50VXNlcj0iYWRtaW4iCiAgICAgICAgICBAc2V0dGluZy1jaGFuZ2U9JHtvPT5jb25zb2xlLmxvZygiU2V0dGluZyBjaGFuZ2U6IixvLmRldGFpbCl9CiAgICAgICAgICBAY2hhbmdlLXBhc3N3b3JkPSR7bz0+Y29uc29sZS5sb2coIkNoYW5nZSBwYXNzd29yZDoiLG8uZGV0YWlsKX0KICAgICAgICAgIEByZXNldD0keygpPT5jb25zb2xlLmxvZygiUmVzZXQgc2V0dGluZ3MiKX0KICAgICAgICAgIEBzYXZlPSR7bz0+Y29uc29sZS5sb2coIlNhdmUgc2V0dGluZ3M6IixvLmRldGFpbCl9CiAgICAgICAgPjwvc3otc2V0dGluZ3Mtdmlldz4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tGQmEoYSxyKX19O3JldHVybiBuPWF9KSgpfSk7dmFyIHNtZSxrZyxIQmEsU2lhPXUoKCk9Pnt2ZSgpO2JsKCk7c21lPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxrZz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sSEJhPSgoKT0+e2xldCB0PVt1ZSgic3otZGVtby12aWV3LW10YSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3TXRhIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sYz1baWUoKV0scD1baWUoKV0sc21lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImN1cnJlbnRWaWV3ImluIGcsImhhcyIpLGdldDppKGc9PmcuY3VycmVudFZpZXcsImdldCIpLHNldDppKChnLHkpPT57Zy5jdXJyZW50Vmlldz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksc21lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRFbWFpbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4ic2VsZWN0ZWRFbWFpbCJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnNlbGVjdGVkRW1haWwsImdldCIpLHNldDppKChnLHkpPT57Zy5zZWxlY3RlZEVtYWlsPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCxmKSxzbWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50RGlyZWN0aW9uRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJjdXJyZW50RGlyZWN0aW9uRmlsdGVyImluIGcsImhhcyIpLGdldDppKGc9PmcuY3VycmVudERpcmVjdGlvbkZpbHRlciwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXI9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLHNtZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHIpLHY9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfWFwcHVpPW51bGw7I2U9a2codGhpcyxvLCJsaXN0Iik7Z2V0IGN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRWaWV3KGIpe3RoaXMuI2U9Yn0jdD0oa2codGhpcyxsKSxrZyh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZEVtYWlsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkRW1haWwoYil7dGhpcy4jdD1ifSNyPShrZyh0aGlzLGYpLGtnKHRoaXMsaCwiYWxsIikpO2dldCBjdXJyZW50RGlyZWN0aW9uRmlsdGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGN1cnJlbnREaXJlY3Rpb25GaWx0ZXIoYil7dGhpcy4jcj1ifWRlbW9FbWFpbHM9KGtnKHRoaXMsbSksW3tpZDoiMSIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206Im5vcmVwbHlAc2VydmUuem9uZSIsdG86InVzZXJAZXhhbXBsZS5jb20iLHN1YmplY3Q6IldlbGNvbWUgdG8gc2VydmUuem9uZSIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjMwOjIyIixtZXNzYWdlSWQ6IjxhYmMxMjNAc2VydmUuem9uZT4iLHNpemU6IjEyLjQgS0IifSx7aWQ6IjIiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiYm91bmNlZCIsZnJvbToiYWxlcnRzQHNlcnZlLnpvbmUiLHRvOiJpbnZhbGlkQG5vd2hlcmUudGVzdCIsc3ViamVjdDoiU2VydmljZSBBbGVydDogQ1BVIFVzYWdlIEhpZ2giLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyODoxMCIsbWVzc2FnZUlkOiI8ZGVmNDU2QHNlcnZlLnpvbmU+IixzaXplOiI4LjIgS0IifSx7aWQ6IjMiLGRpcmVjdGlvbjoiaW5ib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206InN1cHBvcnRAY3VzdG9tZXIuY29tIix0bzoiYWRtaW5Ac2VydmUuem9uZSIsc3ViamVjdDoiUmU6IEluZnJhc3RydWN0dXJlIFJldmlldyIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjI1OjAwIixtZXNzYWdlSWQ6IjxnaGk3ODlAY3VzdG9tZXIuY29tPiIsc2l6ZToiMjQuMSBLQiJ9LHtpZDoiNCIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJyZWplY3RlZCIsZnJvbToiYmlsbGluZ0BzZXJ2ZS56b25lIix0bzoiYmxvY2tlZEBzcGFtLWRvbWFpbi50ZXN0IixzdWJqZWN0OiJJbnZvaWNlICMyMDI0LTAwMSIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjIwOjQ1IixtZXNzYWdlSWQ6Ijxqa2wwMTJAc2VydmUuem9uZT4iLHNpemU6IjQ1LjYgS0IifSx7aWQ6IjUiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVmZXJyZWQiLGZyb206Im5vcmVwbHlAc2VydmUuem9uZSIsdG86InNsb3dAcmVtb3RlLXNlcnZlci50ZXN0IixzdWJqZWN0OiJQYXNzd29yZCBSZXNldCBSZXF1ZXN0Iix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MTU6MzAiLG1lc3NhZ2VJZDoiPG1ubzM0NUBzZXJ2ZS56b25lPiIsc2l6ZToiNi44IEtCIn0se2lkOiI2IixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJjaUBnaXRodWIuY29tIix0bzoiZGV2b3BzQHNlcnZlLnpvbmUiLHN1YmplY3Q6IkJ1aWxkICM0NTIxIHBhc3NlZCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjEwOjAwIixtZXNzYWdlSWQ6IjxwcXI2NzhAZ2l0aHViLmNvbT4iLHNpemU6IjE1LjMgS0IifSx7aWQ6IjciLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoicGVuZGluZyIsZnJvbToicmVwb3J0c0BzZXJ2ZS56b25lIix0bzoidGVhbUBzZXJ2ZS56b25lIixzdWJqZWN0OiJXZWVrbHkgSW5mcmFzdHJ1Y3R1cmUgUmVwb3J0Iix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MDU6MDAiLG1lc3NhZ2VJZDoiPHN0dTkwMUBzZXJ2ZS56b25lPiIsc2l6ZToiMTAyLjcgS0IifSx7aWQ6IjgiLGRpcmVjdGlvbjoiaW5ib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206Im1vbml0b3JpbmdAdXB0aW1lLmlvIix0bzoib3BzQHNlcnZlLnpvbmUiLHN1YmplY3Q6IlVwdGltZSBSZXBvcnQ6IDk5Ljk4JSIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDEzOjU1OjAwIixtZXNzYWdlSWQ6Ijx2d3gyMzRAdXB0aW1lLmlvPiIsc2l6ZToiOS4xIEtCIn1dKTtkZW1vRW1haWxEZXRhaWxzPXsxOntpZDoiMSIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206Im5vcmVwbHlAc2VydmUuem9uZSIsdG86InVzZXJAZXhhbXBsZS5jb20iLHRvTGlzdDpbInVzZXJAZXhhbXBsZS5jb20iXSxzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIixzbXRwTG9nOlt7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtU1RBUlRUTFMiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIFNJWkUgNTI0Mjg4MDAiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiU1RBUlRUTFMifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMCBSZWFkeSB0byBzdGFydCBUTFMiLHJlc3BvbnNlQ29kZToyMjB9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLnNlcnZlLnpvbmUifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLmV4YW1wbGUuY29tIEhlbGxvIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1BVVRIIFBMQUlOIExPR0lOIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkFVVEggUExBSU4gQUhWelpYSUFjR0Z6YzNkdmNtUT0ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIzNSAyLjcuMCBBdXRoZW50aWNhdGlvbiBzdWNjZXNzZnVsIixyZXNwb25zZUNvZGU6MjM1fSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ik1BSUwgRlJPTTo8bm9yZXBseUBzZXJ2ZS56b25lPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlJDUFQgVE86PHVzZXJAZXhhbXBsZS5jb20+In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgQWNjZXB0ZWQiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiREFUQSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDonMzU0IEVudGVyIG1lc3NhZ2UsIGVuZGluZyB3aXRoICIuIiBvbiBhIGxpbmUgYnkgaXRzZWxmJyxyZXNwb25zZUNvZGU6MzU0fSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ii4ifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyBpZD0xcFEyclMtMDAwM0FiLUM0IixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlFVSVQifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMSBtYWlsLmV4YW1wbGUuY29tIGNsb3NpbmcgY29ubmVjdGlvbiIscmVzcG9uc2VDb2RlOjIyMX1dLGNvbm5lY3Rpb25JbmZvOntzb3VyY2VJcDoiMTAuMC4xLjUwIixzb3VyY2VIb3N0bmFtZToibWFpbC5zZXJ2ZS56b25lIixkZXN0aW5hdGlvbklwOiI5My4xODQuMjE2LjM0IixkZXN0aW5hdGlvblBvcnQ6MjUsdGxzVmVyc2lvbjoiVExTdjEuMyIsdGxzQ2lwaGVyOiJUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IixhdXRoZW50aWNhdGVkOiEwLGF1dGhNZXRob2Q6IlBMQUlOIixhdXRoVXNlcjoibm9yZXBseUBzZXJ2ZS56b25lIn0sYXV0aGVudGljYXRpb25SZXN1bHRzOntzcGY6InBhc3MiLHNwZkRvbWFpbjoic2VydmUuem9uZSIsZGtpbToicGFzcyIsZGtpbURvbWFpbjoic2VydmUuem9uZSIsZG1hcmM6InBhc3MiLGRtYXJjUG9saWN5OiJyZWplY3QifSxoZWFkZXJzOntGcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLFRvOiJ1c2VyQGV4YW1wbGUuY29tIixTdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLERhdGU6Ik1vbiwgMTUgSmFuIDIwMjQgMTQ6MzA6MjIgKzAwMDAiLCJNSU1FLVZlcnNpb24iOiIxLjAiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgifSxib2R5OmA8aHRtbD4KPGhlYWQ+PHRpdGxlPldlbGNvbWU8L3RpdGxlPjwvaGVhZD4KPGJvZHk+CiAgPGgxPldlbGNvbWUgdG8gc2VydmUuem9uZSE8L2gxPgogIDxwPllvdXIgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS48L3A+CiAgPHA+R2V0IHN0YXJ0ZWQgYnkgdmlzaXRpbmcgeW91ciA8YSBocmVmPSJodHRwczovL3NlcnZlLnpvbmUvZGFzaGJvYXJkIj5kYXNoYm9hcmQ8L2E+LjwvcD4KPC9ib2R5Pgo8L2h0bWw+YH0sMjp7aWQ6IjIiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiYm91bmNlZCIsZnJvbToiYWxlcnRzQHNlcnZlLnpvbmUiLHRvOiJpbnZhbGlkQG5vd2hlcmUudGVzdCIsdG9MaXN0OlsiaW52YWxpZEBub3doZXJlLnRlc3QiXSxzdWJqZWN0OiJTZXJ2aWNlIEFsZXJ0OiBDUFUgVXNhZ2UgSGlnaCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjI4OjEwIixtZXNzYWdlSWQ6IjxkZWY0NTZAc2VydmUuem9uZT4iLHNpemU6IjguMiBLQiIscmVqZWN0aW9uUmVhc29uOiI1NTAgNS4xLjEgVGhlIGVtYWlsIGFjY291bnQgdGhhdCB5b3UgdHJpZWQgdG8gcmVhY2ggZG9lcyBub3QgZXhpc3QuIixib3VuY2VNZXNzYWdlOmBEZWxpdmVyeSB0byB0aGUgZm9sbG93aW5nIHJlY2lwaWVudCBmYWlsZWQgcGVybWFuZW50bHk6CgogICAgaW52YWxpZEBub3doZXJlLnRlc3QKClRlY2huaWNhbCBkZXRhaWxzIG9mIHBlcm1hbmVudCBmYWlsdXJlOgpHb29nbGUgdHJpZWQgdG8gZGVsaXZlciB5b3VyIG1lc3NhZ2UsIGJ1dCBpdCB3YXMgcmVqZWN0ZWQgYnkgdGhlIHNlcnZlciBmb3IgdGhlIHJlY2lwaWVudCBkb21haW4gbm93aGVyZS50ZXN0LmAsc210cExvZzpbe3RpbWVzdGFtcDoiMTQ6Mjg6MDgiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuc2VydmUuem9uZSJ9LHt0aW1lc3RhbXA6IjE0OjI4OjA4IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwubm93aGVyZS50ZXN0IEhlbGxvIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyODowOCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ik1BSUwgRlJPTTo8YWxlcnRzQHNlcnZlLnpvbmU+In0se3RpbWVzdGFtcDoiMTQ6Mjg6MDkiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0siLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI4OjA5IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiUkNQVCBUTzo8aW52YWxpZEBub3doZXJlLnRlc3Q+In0se3RpbWVzdGFtcDoiMTQ6Mjg6MTAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiI1NTAgNS4xLjEgVGhlIGVtYWlsIGFjY291bnQgdGhhdCB5b3UgdHJpZWQgdG8gcmVhY2ggZG9lcyBub3QgZXhpc3QuIixyZXNwb25zZUNvZGU6NTUwfSx7dGltZXN0YW1wOiIxNDoyODoxMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlFVSVQifSx7dGltZXN0YW1wOiIxNDoyODoxMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMSBCeWUiLHJlc3BvbnNlQ29kZToyMjF9XSxjb25uZWN0aW9uSW5mbzp7c291cmNlSXA6IjEwLjAuMS41MCIsc291cmNlSG9zdG5hbWU6Im1haWwuc2VydmUuem9uZSIsZGVzdGluYXRpb25JcDoiMTk4LjUxLjEwMC4yNSIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjIiLHRsc0NpcGhlcjoiRUNESEUtUlNBLUFFUzEyOC1HQ00tU0hBMjU2IixhdXRoZW50aWNhdGVkOiEwLGF1dGhNZXRob2Q6IlBMQUlOIixhdXRoVXNlcjoiYWxlcnRzQHNlcnZlLnpvbmUifSxhdXRoZW50aWNhdGlvblJlc3VsdHM6e3NwZjoicGFzcyIsc3BmRG9tYWluOiJzZXJ2ZS56b25lIixka2ltOiJwYXNzIixka2ltRG9tYWluOiJzZXJ2ZS56b25lIixkbWFyYzoicGFzcyIsZG1hcmNQb2xpY3k6InF1YXJhbnRpbmUifSxoZWFkZXJzOntGcm9tOiJhbGVydHNAc2VydmUuem9uZSIsVG86ImludmFsaWRAbm93aGVyZS50ZXN0IixTdWJqZWN0OiJTZXJ2aWNlIEFsZXJ0OiBDUFUgVXNhZ2UgSGlnaCIsRGF0ZToiTW9uLCAxNSBKYW4gMjAyNCAxNDoyODoxMCArMDAwMCIsIk1JTUUtVmVyc2lvbiI6IjEuMCIsIkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgifSxib2R5OmBBTEVSVDogQ1BVIFVzYWdlIEhpZ2gKClNlcnZpY2U6IGFwaS1nYXRld2F5CkN1cnJlbnQgVXNhZ2U6IDk0LjIlClRocmVzaG9sZDogOTAlClRpbWVzdGFtcDogMjAyNC0wMS0xNSAxNDoyODowMCBVVEMKClBsZWFzZSBpbnZlc3RpZ2F0ZSBpbW1lZGlhdGVseS5gfSwzOntpZDoiMyIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToic3VwcG9ydEBjdXN0b21lci5jb20iLHRvOiJhZG1pbkBzZXJ2ZS56b25lIix0b0xpc3Q6WyJhZG1pbkBzZXJ2ZS56b25lIl0sY2M6WyJvcHNAc2VydmUuem9uZSJdLHN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyNTowMCIsbWVzc2FnZUlkOiI8Z2hpNzg5QGN1c3RvbWVyLmNvbT4iLHNpemU6IjI0LjEgS0IiLHNtdHBMb2c6W3t0aW1lc3RhbXA6IjE0OjI0OjU4IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLmN1c3RvbWVyLmNvbSJ9LHt0aW1lc3RhbXA6IjE0OjI0OjU4IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwuc2VydmUuem9uZSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MjQ6NTgiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtU1RBUlRUTFMiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI0OjU4IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIFNJWkUgNTI0Mjg4MDAiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI0OjU5IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiU1RBUlRUTFMifSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMCBSZWFkeSB0byBzdGFydCBUTFMiLHJlc3BvbnNlQ29kZToyMjB9LHt0aW1lc3RhbXA6IjE0OjI0OjU5IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiTUFJTCBGUk9NOjxzdXBwb3J0QGN1c3RvbWVyLmNvbT4ifSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MjQ6NTkiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJSQ1BUIFRPOjxhZG1pbkBzZXJ2ZS56b25lPiJ9LHt0aW1lc3RhbXA6IjE0OjI1OjAwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIEFjY2VwdGVkIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkRBVEEifSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjM1NCBFbnRlciBtZXNzYWdlIixyZXNwb25zZUNvZGU6MzU0fSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ii4ifSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyBpZD0yYlIzc1QtMDAwNENkLUU1IixyZXNwb25zZUNvZGU6MjUwfV0sY29ubmVjdGlvbkluZm86e3NvdXJjZUlwOiIyMDMuMC4xMTMuNDUiLHNvdXJjZUhvc3RuYW1lOiJtYWlsLmN1c3RvbWVyLmNvbSIsZGVzdGluYXRpb25JcDoiMTAuMC4xLjUwIixkZXN0aW5hdGlvblBvcnQ6MjUsdGxzVmVyc2lvbjoiVExTdjEuMyIsdGxzQ2lwaGVyOiJUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IixhdXRoZW50aWNhdGVkOiExLGF1dGhNZXRob2Q6IiIsYXV0aFVzZXI6IiJ9LGF1dGhlbnRpY2F0aW9uUmVzdWx0czp7c3BmOiJwYXNzIixzcGZEb21haW46ImN1c3RvbWVyLmNvbSIsZGtpbToicGFzcyIsZGtpbURvbWFpbjoiY3VzdG9tZXIuY29tIixkbWFyYzoicGFzcyIsZG1hcmNQb2xpY3k6Im5vbmUifSxoZWFkZXJzOntGcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsVG86ImFkbWluQHNlcnZlLnpvbmUiLENDOiJvcHNAc2VydmUuem9uZSIsU3ViamVjdDoiUmU6IEluZnJhc3RydWN0dXJlIFJldmlldyIsRGF0ZToiTW9uLCAxNSBKYW4gMjAyNCAxNDoyNTowMCArMDAwMCIsIk1JTUUtVmVyc2lvbiI6IjEuMCIsIkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgiLCJJbi1SZXBseS1UbyI6IjxwcmV2MTIzQHNlcnZlLnpvbmU+In0sYm9keTpgSGkgQWRtaW4sCgpUaGFuayB5b3UgZm9yIHRoZSBkZXRhaWxlZCBpbmZyYXN0cnVjdHVyZSByZXZpZXcgcmVwb3J0LgoKV2UgaGF2ZSByZXZpZXdlZCB0aGUgcmVjb21tZW5kYXRpb25zIGFuZCB3b3VsZCBsaWtlIHRvCnByb2NlZWQgd2l0aCB0aGUgZm9sbG93aW5nOgoKMS4gVXBncmFkZSB0byB0aGUgUHJvIHRpZXIKMi4gRW5hYmxlIGF1dG9tYXRpYyBiYWNrdXBzCjMuIFNldCB1cCBtb25pdG9yaW5nIGFsZXJ0cwoKUGxlYXNlIGxldCB1cyBrbm93IHRoZSB0aW1lbGluZSBmb3IgdGhlc2UgY2hhbmdlcy4KCkJlc3QgcmVnYXJkcywKQ3VzdG9tZXIgU3VwcG9ydCBUZWFtYH19O2FzeW5jIG9uQWN0aXZhdGUoYil7dGhpcy5hcHB1aT1iLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkFsbCBFbWFpbHMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPSJhbGwiLHRoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkluYm91bmQiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPSJpbmJvdW5kIix0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJPdXRib3VuZCIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXI9Im91dGJvdW5kIix0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXt0aGlzLmFwcHVpJiZ0aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkVtYWlsIC8gTVRBIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCBlbWFpbHMiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkV4cG9ydCBMb2dzIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJFeHBvcnQgbG9ncyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXR1cyBGaWx0ZXJzIixpdGVtczpbe2tleToiRGVsaXZlcmVkIixpY29uTmFtZToibHVjaWRlOkNoZWNrQ2lyY2xlIixiYWRnZToiNSIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgZGVsaXZlcmVkIil9LCJhY3Rpb24iKX0se2tleToiQm91bmNlZCIsaWNvbk5hbWU6Imx1Y2lkZTpYQ2lyY2xlIixiYWRnZToiMSIsYmFkZ2VWYXJpYW50OiJlcnJvciIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIGJvdW5jZWQiKX0sImFjdGlvbiIpfSx7a2V5OiJEZWZlcnJlZCIsaWNvbk5hbWU6Imx1Y2lkZTpDbG9jayIsYmFkZ2U6IjEiLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIGRlZmVycmVkIil9LCJhY3Rpb24iKX0se2tleToiUGVuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTpMb2FkZXIiLGJhZGdlOiIxIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgcGVuZGluZyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXRpc3RpY3MiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiOCBUb3RhbCBFbWFpbHMifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiNjIuNSUgRGVsaXZlcnkgUmF0ZSJ9XX1dfSl9b25EZWFjdGl2YXRlKCl7fXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlsIiYmdGhpcy5zZWxlY3RlZEVtYWlsP3dgCiAgICAgICAgPHN6LW10YS1kZXRhaWwtdmlldwogICAgICAgICAgLmVtYWlsPSR7dGhpcy5zZWxlY3RlZEVtYWlsfQogICAgICAgICAgQGJhY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMuc2VsZWN0ZWRFbWFpbD1udWxsfX0KICAgICAgICA+PC9zei1tdGEtZGV0YWlsLXZpZXc+CiAgICAgIGA6d2AKICAgICAgPHN6LW10YS1saXN0LXZpZXcKICAgICAgICAuZW1haWxzPSR7dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPT09ImFsbCI/dGhpcy5kZW1vRW1haWxzOnRoaXMuZGVtb0VtYWlscy5maWx0ZXIoYj0+Yi5kaXJlY3Rpb249PT10aGlzLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXIpfQogICAgICAgIEBlbWFpbC1jbGljaz0ke2I9PnRoaXMuaGFuZGxlRW1haWxDbGljayhiLmRldGFpbCl9CiAgICAgID48L3N6LW10YS1saXN0LXZpZXc+CiAgICBgfWhhbmRsZUVtYWlsQ2xpY2soYil7bGV0IGc9dGhpcy5kZW1vRW1haWxEZXRhaWxzW2IuaWRdO2c/KHRoaXMuc2VsZWN0ZWRFbWFpbD1nLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIpOmNvbnNvbGUubG9nKCJObyBkZXRhaWwgZGF0YSBhdmFpbGFibGUgZm9yIGVtYWlsOiIsYi5pZCl9c3RhdGlje2tnKGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBNaWEsb2d0LHFCYSxDaWE9dSgoKT0+e3ZlKCk7YmwoKTtNaWE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG9ndD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0scUJhPSgoKT0+e2xldCB0PVt1ZSgic3otZGVtby12aWV3LXJvdXRlcyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3Um91dGVzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sTWlhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iY3VycmVudFRhYiJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmN1cnJlbnRUYWIsImdldCIpLHNldDppKChmLHApPT57Zi5jdXJyZW50VGFiPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxNaWEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1hcHB1aT1udWxsOyNlPW9ndCh0aGlzLG8sImFsbCIpO2dldCBjdXJyZW50VGFiKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRUYWIoZCl7dGhpcy4jZT1kfWRlbW9Sb3V0ZXM9KG9ndCh0aGlzLGwpLFt7aWQ6InJvdXRlLTEiLG5hbWU6IldlYiBGcm9udGVuZCIsZGVzY3JpcHRpb246Ik1haW4gd2Vic2l0ZSB3aXRoIFRMUyB0ZXJtaW5hdGlvbiBhbmQgYXV0b21hdGljIGNlcnRpZmljYXRlcyIsZW5hYmxlZDohMCxwcmlvcml0eToxMCx0YWdzOlsid2ViIiwiaHR0cHMiLCJwcm9kdWN0aW9uIl0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOlsic2VydmUuem9uZSIsInd3dy5zZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMTAiLHBvcnQ6M2UzfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19fSx7aWQ6InJvdXRlLTIiLG5hbWU6IkhUVFAgUmVkaXJlY3QiLGRlc2NyaXB0aW9uOiJSZWRpcmVjdHMgYWxsIEhUVFAgdHJhZmZpYyB0byBIVFRQUyIsZW5hYmxlZDohMCxwcmlvcml0eToxMDAsdGFnczpbIndlYiIsImh0dHAiLCJyZWRpcmVjdCJdLG1hdGNoOntwb3J0czo4MCxkb21haW5zOlsic2VydmUuem9uZSIsInd3dy5zZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn19LHtpZDoicm91dGUtMyIsbmFtZToiU01UUCBJbmJvdW5kIixkZXNjcmlwdGlvbjoiSW5ib3VuZCBlbWFpbCByZWxheSBmb3Igc2VydmUuem9uZSBkb21haW4iLGVuYWJsZWQ6ITAsdGFnczpbImVtYWlsIiwic210cCIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6MjUsZG9tYWluczoibWFpbC5zZXJ2ZS56b25lIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC4xLjUiLHBvcnQ6MjV9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtpZDoicm91dGUtNCIsbmFtZToiQVBJIEdhdGV3YXkiLGRlc2NyaXB0aW9uOiJBUEkgZ2F0ZXdheSB3aXRoIHJhdGUgbGltaXRpbmcsIENPUlMgaGVhZGVycywgYW5kIGxvYWQgYmFsYW5jaW5nIixlbmFibGVkOiEwLHByaW9yaXR5OjIwLHRhZ3M6WyJ3ZWIiLCJhcGkiLCJodHRwcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6ImFwaS5zZXJ2ZS56b25lIixwYXRoOiIvdjIvKiIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OlsiMTAuMC4wLjIwIiwiMTAuMC4wLjIxIiwiMTAuMC4wLjIyIl0scG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn0sbG9hZEJhbGFuY2luZzp7YWxnb3JpdGhtOiJyb3VuZC1yb2JpbiJ9fSxzZWN1cml0eTp7cmF0ZUxpbWl0OntlbmFibGVkOiEwLG1heFJlcXVlc3RzOjIwMCx3aW5kb3c6NjB9LG1heENvbm5lY3Rpb25zOjVlM30saGVhZGVyczp7cmVzcG9uc2U6eyJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iOiIqIiwiWC1SZXF1ZXN0LUlkIjoie3tyZXF1ZXN0SWR9fSJ9fX0se2lkOiJyb3V0ZS01IixuYW1lOiJXZWJTb2NrZXQgUmVhbHRpbWUiLGRlc2NyaXB0aW9uOiJSZWFsLXRpbWUgV2ViU29ja2V0IGNvbm5lY3Rpb25zIGZvciBsaXZlIHVwZGF0ZXMiLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImh0dHBzIiwid2Vic29ja2V0Il0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOiJ3cy5zZXJ2ZS56b25lIixwYXRoOiIvd3MvKiIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMzAiLHBvcnQ6OTA5MH1dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9LHdlYnNvY2tldDp7ZW5hYmxlZDohMH19fSx7aWQ6InJvdXRlLTYiLG5hbWU6IlRlbmFudCBXaWxkY2FyZCIsZGVzY3JpcHRpb246Ik11bHRpLXRlbmFudCB3aWxkY2FyZCByb3V0aW5nIGZvciBjdXN0b21lciBzdWJkb21haW5zIixlbmFibGVkOiEwLHByaW9yaXR5OjUwLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsIm11bHRpLXRlbmFudCJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoiKi5jdXN0b21lcnMuc2VydmUuem9uZSIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuNDAiLHBvcnQ6ODA4MH1dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fSxzZWN1cml0eTp7aXBBbGxvd0xpc3Q6WyIxMC4wLjAuMC84IiwiMTcyLjE2LjAuMC8xMiJdfX0se2lkOiJyb3V0ZS03IixuYW1lOiJNaWNyb3NlcnZpY2VzIExCIixkZXNjcmlwdGlvbjoiTG9hZC1iYWxhbmNlZCBtaWNyb3NlcnZpY2VzIGJhY2tlbmQgd2l0aCBJUC1oYXNoIGFmZmluaXR5IixlbmFibGVkOiEwLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6WzQ0Myw4NDQzXSxkb21haW5zOiJzZXJ2aWNlcy5zZXJ2ZS56b25lIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6WyIxMC4wLjIuMSIsIjEwLjAuMi4yIiwiMTAuMC4yLjMiLCIxMC4wLjIuNCJdLHBvcnQ6M2UzfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUtYW5kLXJlZW5jcnlwdCIsY2VydGlmaWNhdGU6ImF1dG8ifSxsb2FkQmFsYW5jaW5nOnthbGdvcml0aG06ImlwLWhhc2gifX19LHtpZDoicm91dGUtOCIsbmFtZToiRE5TIG92ZXIgSFRUUFMiLGRlc2NyaXB0aW9uOiJETlMtb3Zlci1IVFRQUyByZXNvbHZlciBlbmRwb2ludCIsZW5hYmxlZDohMCx0YWdzOlsiZG5zIiwiaHR0cHMiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6ImRucy5zZXJ2ZS56b25lIixwYXRoOiIvZG5zLXF1ZXJ5Iixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMy4xIixwb3J0OjgwNTN9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtpZDoicm91dGUtOSIsbmFtZToiSGlnaC1QZXJmIFRDUCBQcm94eSIsZGVzY3JpcHRpb246Ik5GVGFibGVzLWFjY2VsZXJhdGVkIFRDUCBwcm94eSBmb3IgZ2FtZSBzZXJ2ZXJzIixlbmFibGVkOiEwLHRhZ3M6WyJ0Y3AiLCJuZnRhYmxlcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6W3tmcm9tOjI3ZTMsdG86MjcwNTB9XSxwcm90b2NvbDoidGNwIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC40LjEiLHBvcnQ6InByZXNlcnZlIn1dLGZvcndhcmRpbmdFbmdpbmU6Im5mdGFibGVzIn19LHtpZDoicm91dGUtMTAiLG5hbWU6IkxlZ2FjeSBBZG1pbiBQYW5lbCIsZGVzY3JpcHRpb246IkRlcHJlY2F0ZWQgYWRtaW4gcGFuZWwgXHUyMDE0IGRpc2FibGVkIGZvciBtYWludGVuYW5jZSIsZW5hYmxlZDohMSx0YWdzOlsid2ViIiwiaHR0cHMiLCJkZXByZWNhdGVkIl0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOiJhZG1pbi1vbGQuc2VydmUuem9uZSIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn0sc2VjdXJpdHk6e2lwQmxvY2tMaXN0OlsiMC4wLjAuMC8wIl19fV0pO2dldCBmaWx0ZXJlZFJvdXRlcygpe3JldHVybiB0aGlzLmN1cnJlbnRUYWI9PT0iYWxsIj90aGlzLmRlbW9Sb3V0ZXM6dGhpcy5jdXJyZW50VGFiPT09Imh0dHBzIj90aGlzLmRlbW9Sb3V0ZXMuZmlsdGVyKGQ9PmQudGFncz8uc29tZShmPT5bIndlYiIsImh0dHBzIiwiaHR0cCJdLmluY2x1ZGVzKGYpKSk6dGhpcy5jdXJyZW50VGFiPT09ImVtYWlsIj90aGlzLmRlbW9Sb3V0ZXMuZmlsdGVyKGQ9PmQudGFncz8uc29tZShmPT5bImVtYWlsIiwic210cCJdLmluY2x1ZGVzKGYpKSk6dGhpcy5jdXJyZW50VGFiPT09ImRucyI/dGhpcy5kZW1vUm91dGVzLmZpbHRlcihkPT5kLnRhZ3M/LnNvbWUoZj0+WyJkbnMiXS5pbmNsdWRlcyhmKSkpOnRoaXMuZGVtb1JvdXRlc31hc3luYyBvbkFjdGl2YXRlKGQpe3RoaXMuYXBwdWk9ZC5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJBbGwgUm91dGVzIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iYWxsIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJIVFRQL1MiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJodHRwcyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRW1haWwiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJlbWFpbCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRE5TIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iZG5zIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXtpZighdGhpcy5hcHB1aSlyZXR1cm47bGV0IGQ9dGhpcy5kZW1vUm91dGVzLmxlbmd0aCxmPXRoaXMuZGVtb1JvdXRlcy5maWx0ZXIoaD0+aC5lbmFibGVkIT09ITEpLmxlbmd0aCxwPXRoaXMuZGVtb1JvdXRlcy5maWx0ZXIoaD0+aC5hY3Rpb24udHlwZT09PSJmb3J3YXJkIikubGVuZ3RoO3RoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUm91dGVzIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCByb3V0ZXMiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBSb3V0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgcm91dGUiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0aXN0aWNzIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7ZH0gVG90YWwgUm91dGVzYH0se3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7Zn0gQWN0aXZlYH0se3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7cH0gRm9yd2FyZGB9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOmAke2QtcH0gU29ja2V0IEhhbmRsZXJgfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3otcm91dGUtbGlzdC12aWV3CiAgICAgICAgLnJvdXRlcz0ke3RoaXMuZmlsdGVyZWRSb3V0ZXN9CiAgICAgICAgQHJvdXRlLWNsaWNrPSR7ZD0+e2NvbnNvbGUubG9nKCJSb3V0ZSBjbGlja2VkOiIsZC5kZXRhaWwubmFtZSl9fQogICAgICA+PC9zei1yb3V0ZS1saXN0LXZpZXc+CiAgICBgfXN0YXRpY3tvZ3QoYSxyKX19O3JldHVybiBjPWF9KSgpfSk7dmFyIFZCYSxqQmEsVUJhLHppYT11KCgpPT57dmUoKTtibCgpO1ZCYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sakJhPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxVQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1kZW1vLXZpZXctY29uZmlnIildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdDb25maWciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtWQmEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3otY29uZmlnLW92ZXJ2aWV3CiAgICAgICAgaW5mb1RleHQ9IlRoaXMgdmlldyBkaXNwbGF5cyB0aGUgY3VycmVudCBydW5uaW5nIGNvbmZpZ3VyYXRpb24uIERjUm91dGVyIGlzIGNvbmZpZ3VyZWQgdGhyb3VnaCBjb2RlIG9yIHJlbW90ZSBtYW5hZ2VtZW50LiIKICAgICAgPgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlN5c3RlbSIKICAgICAgICAgIHN1YnRpdGxlPSJCYXNlIHBhdGhzIGFuZCBpbmZyYXN0cnVjdHVyZSIKICAgICAgICAgIGljb249Imx1Y2lkZTpzZXJ2ZXIiCiAgICAgICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgICAgICAuZmllbGRzPSR7W3trZXk6IkJhc2UgRGlyZWN0b3J5Iix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlciJ9LHtrZXk6IkRhdGEgRGlyZWN0b3J5Iix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlci9kYXRhIn0se2tleToiUHVibGljIElQIix2YWx1ZToiMjAzLjAuMTEzLjUwIn0se2tleToiUHJveHkgSVBzIix2YWx1ZTpbIjIwMy4wLjExMy4xMCIsIjIwMy4wLjExMy4xMSJdLHR5cGU6InBpbGxzIn0se2tleToiVXB0aW1lIix2YWx1ZToiM2QgMTRoIDIybSJ9LHtrZXk6IlN0b3JhZ2UgQmFja2VuZCIsdmFsdWU6ImZpbGVzeXN0ZW0iLHR5cGU6ImJhZGdlIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJTbWFydFByb3h5IgogICAgICAgICAgc3VidGl0bGU9IkhUVFAvSFRUUFMgYW5kIFRDUC9TTkkgcmV2ZXJzZSBwcm94eSIKICAgICAgICAgIGljb249Imx1Y2lkZTpuZXR3b3JrIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJSb3V0ZSBDb3VudCIsdmFsdWU6MTJ9LHtrZXk6IkFDTUUgRW5hYmxlZCIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9LHtrZXk6IkFjY291bnQgRW1haWwiLHZhbHVlOiJhZG1pbkBzZXJ2ZS56b25lIn0se2tleToiVXNlIFByb2R1Y3Rpb24iLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBdXRvIFJlbmV3Iix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiUmVuZXcgVGhyZXNob2xkIix2YWx1ZToiMzAgZGF5cyJ9XX0KICAgICAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiVmlldyBSb3V0ZXMiLGljb246Imx1Y2lkZTphcnJvdy1yaWdodCIsZXZlbnQ6Im5hdmlnYXRlIixkZXRhaWw6e3ZpZXc6InJvdXRlcyJ9fV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkVtYWlsIFNlcnZlciIKICAgICAgICAgIHN1YnRpdGxlPSJTTVRQIGVtYWlsIGhhbmRsaW5nIHdpdGggc21hcnRtdGEiCiAgICAgICAgICBpY29uPSJsdWNpZGU6bWFpbCIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydHMiLHZhbHVlOlsiMjUiLCI0NjUiLCI1ODciXSx0eXBlOiJwaWxscyJ9LHtrZXk6Ikhvc3RuYW1lIix2YWx1ZToibWFpbC5zZXJ2ZS56b25lIn0se2tleToiRG9tYWlucyIsdmFsdWU6WyJzZXJ2ZS56b25lIiwibWFpbC5zZXJ2ZS56b25lIl0sdHlwZToicGlsbHMifSx7a2V5OiJFbWFpbCBSb3V0ZXMiLHZhbHVlOjV9LHtrZXk6IlJlY2VpdmVkIFBhdGgiLHZhbHVlOiIvZGF0YS9lbWFpbHMifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkROUyBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iQXV0aG9yaXRhdGl2ZSBETlMgd2l0aCBzbWFydGRucyIKICAgICAgICAgIGljb249Imx1Y2lkZTpnbG9iZSIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydCIsdmFsdWU6NTN9LHtrZXk6Ik5TIERvbWFpbnMiLHZhbHVlOlsibnMxLnNlcnZlLnpvbmUiLCJuczIuc2VydmUuem9uZSJdLHR5cGU6InBpbGxzIn0se2tleToiU2NvcGVzIix2YWx1ZTpbInNlcnZlLnpvbmUiLCJleGFtcGxlLmNvbSJdLHR5cGU6InBpbGxzIn0se2tleToiUmVjb3JkIENvdW50Iix2YWx1ZToyNH0se2tleToiRE5TIENoYWxsZW5nZSIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9XX0KICAgICAgICA+PC9zei1jb25maWctc2VjdGlvbj4KCiAgICAgICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgICAgICB0aXRsZT0iVExTIC8gQ2VydGlmaWNhdGVzIgogICAgICAgICAgc3VidGl0bGU9IkNlcnRpZmljYXRlIG1hbmFnZW1lbnQgYW5kIEFDTUUiCiAgICAgICAgICBpY29uPSJsdWNpZGU6c2hpZWxkLWNoZWNrIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJDb250YWN0IEVtYWlsIix2YWx1ZToiYWRtaW5Ac2VydmUuem9uZSJ9LHtrZXk6IkRvbWFpbiIsdmFsdWU6InNlcnZlLnpvbmUifSx7a2V5OiJTb3VyY2UiLHZhbHVlOiJhY21lIix0eXBlOiJiYWRnZSJ9LHtrZXk6IkNlcnRpZmljYXRlIFBhdGgiLHZhbHVlOm51bGx9LHtrZXk6IktleSBQYXRoIix2YWx1ZTpudWxsfV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkNhY2hlIERhdGFiYXNlIgogICAgICAgICAgc3VidGl0bGU9IlBlcnNpc3RlbnQgY2FjaGluZyB3aXRoIHNtYXJ0ZGF0YSIKICAgICAgICAgIGljb249Imx1Y2lkZTpkYXRhYmFzZSIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiU3RvcmFnZSBQYXRoIix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlci90c21kYiJ9LHtrZXk6IkRCIE5hbWUiLHZhbHVlOiJkY3JvdXRlciJ9LHtrZXk6IkRlZmF1bHQgVFRMIix2YWx1ZToiMzAgZGF5cyJ9LHtrZXk6IkNsZWFudXAgSW50ZXJ2YWwiLHZhbHVlOiIxIGhvdXIifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlJBRElVUyBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iTmV0d29yayBhdXRoZW50aWNhdGlvbiBhbmQgVkxBTiBhc3NpZ25tZW50IgogICAgICAgICAgaWNvbj0ibHVjaWRlOndpZmkiCiAgICAgICAgICBzdGF0dXM9Im5vdC1jb25maWd1cmVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJBdXRoIFBvcnQiLHZhbHVlOm51bGx9LHtrZXk6IkFjY291bnRpbmcgUG9ydCIsdmFsdWU6bnVsbH1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJSZW1vdGUgSW5ncmVzcyIKICAgICAgICAgIHN1YnRpdGxlPSJFZGdlIHR1bm5lbCBub2RlcyIKICAgICAgICAgIGljb249Imx1Y2lkZTpjbG91ZCIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiVHVubmVsIFBvcnQiLHZhbHVlOjg0NDN9LHtrZXk6Ikh1YiBEb21haW4iLHZhbHVlOiJodWIuc2VydmUuem9uZSJ9LHtrZXk6IlRMUyBDb25maWd1cmVkIix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgogICAgICA8L3N6LWNvbmZpZy1vdmVydmlldz4KICAgIGB9c3RhdGlje2pCYShhLHIpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgYmw9dSgoKT0+e0Q5dCgpO0E5dCgpO0k5dCgpO1A5dCgpO045dCgpO1I5dCgpO0I5dCgpO3E5dCgpO2o5dCgpO1U5dCgpO1c5dCgpO2phYSgpO1VhYSgpO0dhYSgpO1lhYSgpO0thYSgpO1FhYSgpO0phYSgpO2VpYSgpO3RpYSgpO3JpYSgpO2FpYSgpO2lpYSgpO3NpYSgpO25pYSgpO29pYSgpO2xpYSgpO2NpYSgpO3VpYSgpO3BpYSgpO2ZpYSgpO2hpYSgpO21pYSgpO2dpYSgpO2JpYSgpO3hpYSgpO3lpYSgpO3dpYSgpO2tpYSgpO1NpYSgpO0NpYSgpO3ppYSgpfSk7dmFyIGNJMSxfaWE9dSgoKT0+e3ZlKCk7Y0kxPWkoKCk9PndgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjRweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgaDEgewogICAgICBtYXJnaW46IDAgMCAzMnB4IDA7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICBjb2xvcjogIzFhMWExYTsKICAgIH0KICAgIC5jb21wb25lbnQtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMT5TZXJ2ZS5ab25lIENhdGFsb2c8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJjb21wb25lbnQtZGVtbyI+CiAgICAgICAgPHN6LWhlbGxvPjwvc3otaGVsbG8+CiAgICAgICAgPHN6LWhlbGxvIHRleHQ9IldlbGNvbWUgdG8gU2VydmUuWm9uZSEiPjwvc3otaGVsbG8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsIm1haW5wYWdlIil9KTt2YXIgaEkxLFRpYT11KCgpPT57dmUoKTtibCgpO2hJMT1pKCgpPT53YAogIDxzdHlsZT4KICAgIGh0bWwsIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgICBzei1kZW1vLWFwcC1zaGVsbCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB3aWR0aDogMTAwdnc7CiAgICB9CiAgPC9zdHlsZT4KICA8c3otZGVtby1hcHAtc2hlbGw+PC9zei1kZW1vLWFwcC1zaGVsbD4KYCwic3pEZW1vQXBwIil9KTt2YXIgV0JhLEdCYSxZQmEsTGlhPXUoKCk9Pnt2ZSgpO1Q5dCgpO2JsKCk7V0JhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxHQmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFlCYT0oKCk9PntsZXQgdD1bdWUoInN6LWRlbW8tYXBwLXNoZWxsIildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RGVtb0FwcFNoZWxsIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7V0JhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1hcHB1aT48L2RlZXMtYXBwdWk+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBvPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aSIpO28mJihvLmNvbmZpZ3VyZSh7YnJhbmRpbmc6e2xvZ29JY29uOiJsdWNpZGU6Qm94Iixsb2dvVGV4dDoic2VydmUuem9uZSJ9LGFwcEJhcjp7c2hvd1NlYXJjaDohMCxicmVhZGNydW1iczoic2VydmUuem9uZSIsbWVudUl0ZW1zOlt7bmFtZToiRmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgU2VydmljZSIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIk5ldyBTZXJ2aWNlIil9LCJhY3Rpb24iKX0se25hbWU6IkltcG9ydCBDb25maWd1cmF0aW9uIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIkltcG9ydCIpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQgQ29uZmlndXJhdGlvbiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJFeHBvcnQiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlByZWZlcmVuY2VzIixzaG9ydGN1dDoiQ21kKywiLGFjdGlvbjppKGFzeW5jKCk9PntvLm5hdmlnYXRlVG9WaWV3KCJzZXR0aW5ncyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRGFzaGJvYXJkIixzaG9ydGN1dDoiQ21kKzEiLGFjdGlvbjppKGFzeW5jKCk9PntvLm5hdmlnYXRlVG9WaWV3KCJkYXNoYm9hcmQiKX0sImFjdGlvbiIpfSx7bmFtZToiU2VydmljZXMiLHNob3J0Y3V0OiJDbWQrMiIsYWN0aW9uOmkoYXN5bmMoKT0+e28ubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LCJhY3Rpb24iKX0se25hbWU6Ik5ldHdvcmsiLHNob3J0Y3V0OiJDbWQrMyIsYWN0aW9uOmkoYXN5bmMoKT0+e28ubmF2aWdhdGVUb1ZpZXcoIm5ldHdvcmsiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFjdGl2aXR5IExvZyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtBIixhY3Rpb246aShhc3luYygpPT57by50b2dnbGVBY3Rpdml0eUxvZygpfSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT57by5zZXRNYWluTWVudUNvbGxhcHNlZCghby5tYWlubWVudUNvbGxhcHNlZCl9LCJhY3Rpb24iKX1dfSx7bmFtZToiU2VydmljZXMiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRGVwbG95IE5ldyBTZXJ2aWNlIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIkRlcGxveSIpfSwiYWN0aW9uIil9LHtuYW1lOiJTdGFydCBBbGwiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiU3RhcnQgYWxsIil9LCJhY3Rpb24iKX0se25hbWU6IlN0b3AgQWxsIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIlN0b3AgYWxsIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJHYXJiYWdlIENvbGxlY3QiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiR0MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGFjdGlvbjppKGFzeW5jKCk9Pnt3aW5kb3cub3BlbigiaHR0cHM6Ly9kb2NzLnNlcnZlLnpvbmUiLCJfYmxhbmsiKX0sImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJSZWxlYXNlIG5vdGVzIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCBzZXJ2ZS56b25lIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIkFib3V0Iil9LCJhY3Rpb24iKX1dfV19LHZpZXdzOlt7aWQ6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOkxheW91dERhc2hib2FyZCIsY29udGVudDoic3otZGVtby12aWV3LWRhc2hib2FyZCJ9LHtpZDoic2VydmljZXMiLG5hbWU6IlNlcnZpY2VzIixpY29uTmFtZToibHVjaWRlOlNlcnZlciIsY29udGVudDoic3otZGVtby12aWV3LXNlcnZpY2VzIn0se2lkOiJuZXR3b3JrIixuYW1lOiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOk5ldHdvcmsiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1uZXR3b3JrIn0se2lkOiJyZWdpc3RyaWVzIixuYW1lOiJSZWdpc3RyaWVzIixpY29uTmFtZToibHVjaWRlOkFyY2hpdmUiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1yZWdpc3RyaWVzIn0se2lkOiJ0b2tlbnMiLG5hbWU6IlRva2VucyIsaWNvbk5hbWU6Imx1Y2lkZTpLZXkiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy10b2tlbnMifSx7aWQ6Im10YSIsbmFtZToiRW1haWwgLyBNVEEiLGljb25OYW1lOiJsdWNpZGU6TWFpbCIsY29udGVudDoic3otZGVtby12aWV3LW10YSJ9LHtpZDoicm91dGVzIixuYW1lOiJSb3V0ZXMiLGljb25OYW1lOiJsdWNpZGU6Um91dGUiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1yb3V0ZXMifSx7aWQ6InNldHRpbmdzIixuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpTZXR0aW5ncyIsY29udGVudDoic3otZGVtby12aWV3LXNldHRpbmdzIn1dLG1haW5NZW51OntzZWN0aW9uczpbe25hbWU6Ik92ZXJ2aWV3Iix2aWV3czpbImRhc2hib2FyZCJdfSx7bmFtZToiSW5mcmFzdHJ1Y3R1cmUiLHZpZXdzOlsic2VydmljZXMiLCJuZXR3b3JrIiwicmVnaXN0cmllcyIsIm10YSIsInJvdXRlcyJdfSx7bmFtZToiQWRtaW5pc3RyYXRpb24iLHZpZXdzOlsidG9rZW5zIiwic2V0dGluZ3MiXX1dfSxkZWZhdWx0VmlldzoiZGFzaGJvYXJkIixvblZpZXdDaGFuZ2U6aSgobCxjKT0+e2NvbnNvbGUubG9nKCJWaWV3IGNoYW5nZWQgdG86IixsLGMpfSwib25WaWV3Q2hhbmdlIil9KSxvLnNldFVzZXIoe25hbWU6IkFkbWluIFVzZXIiLGVtYWlsOiJhZG1pbkBzZXJ2ZS56b25lIixzdGF0dXM6Im9ubGluZSJ9KSxvLnNldFByb2ZpbGVNZW51SXRlbXMoW3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOlVzZXIiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiUHJvZmlsZSIpfSwiYWN0aW9uIil9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpTbGlkZXJzSG9yaXpvbnRhbCIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJQcmVmZXJlbmNlcyIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsdWNpZGU6TG9nT3V0IixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIlNpZ24gT3V0Iil9LCJhY3Rpb24iKX1dKSl9c3RhdGlje0dCYShhLHIpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgRGlhPXUoKCk9PntfaWEoKTtUaWEoKTtMaWEoKX0pO3ZhciAkaWE9dSgoKT0+e2JsKCk7RGlhKCl9KTt2YXIgQWlhPU50KEFzPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShBcywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksQXMuZ2V0Rmlyc3RUcnVlT3JGYWxzZT1Bcy50aW1lb3V0QW5kQ29udGludWU9QXMudGltZW91dFdyYXA9QXMubWFwPUFzLnJlamVjdGVkUHJvbWlzZT1Bcy5yZXNvbHZlZFByb21pc2U9QXMuZGVmZXI9QXMuRGVmZXJyZWQ9dm9pZCAwO3ZhciBubWU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVmZXJyZWQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxyKT0+e3RoaXMucmVzb2x2ZT1hPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKGEpfSx0aGlzLnJlamVjdD1hPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLHIoYSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcHBlZEF0P3RoaXMuc3RvcHBlZEF0LXRoaXMuc3RhcnRlZEF0OkRhdGUubm93KCktdGhpcy5zdGFydGVkQXR9fTtBcy5EZWZlcnJlZD1ubWUsQXMuZGVmZXI9KCk9Pm5ldyBubWUsQXMucmVzb2x2ZWRQcm9taXNlPXQ9PlByb21pc2UucmVzb2x2ZSh0KSxBcy5yZWplY3RlZFByb21pc2U9dD0+UHJvbWlzZS5yZWplY3QodCksQXMubWFwPWFzeW5jKHQsZSk9PntsZXQgcj1bXSxhPVtdO2ZvcihsZXQgcyBvZiB0KXtsZXQgbj1lKHMpO3IucHVzaChuKSxuLnRoZW4obz0+e2EucHVzaChvKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKSxhfSxBcy50aW1lb3V0V3JhcD1hc3luYyh0LGUscj0hMCk9Pm5ldyBQcm9taXNlKChhLHMpPT57c2V0VGltZW91dCgoKT0+e3I/cyhuZXcgRXJyb3IoInRpbWVvdXQiKSk6YShudWxsKX0sZSksdC50aGVuKGEscyl9KSxBcy50aW1lb3V0QW5kQ29udGludWU9YXN5bmModCxlPTZlNCk9PkFzLnRpbWVvdXRXcmFwKHQsZSwhMSksQXMuZ2V0Rmlyc3RUcnVlT3JGYWxzZT1hc3luYyB0PT57bGV0IGU9QXMuZGVmZXIoKTtmb3IobGV0IHIgb2YgdClyLnRoZW4oYT0+e2E9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX19KTt2YXIgbGd0LEVpYT11KCgpPT57bGd0PUdhKEFpYSgpLDEpfSk7dmFyIElpYT11KCgpPT57fSk7dmFyIGNndCxQaWE9dSgoKT0+e0VpYSgpO0lpYSgpO2NndD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTbWFydGVudiIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2FkZWRTY3JpcHRzPVtdfWFzeW5jIGdldEVudkF3YXJlTW9kdWxlKGUpe2lmKHRoaXMuaXNOb2RlKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKGUubm9kZU1vZHVsZU5hbWUpO2lmKHRoaXMuaXNCcm93c2VyKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUoZS53ZWJVcmxBcmcsZS5nZXRGdW5jdGlvbik7Y29uc29sZS5lcnJvcigicGxhdGZvcm0gZm9yIGxvYWRpbmcgbm90IHN1cHBvcnRlZCBieSBzbWFydGVudiIpfWFzeW5jIGdldFNhZmVOb2RlTW9kdWxlKGUpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7ZX1gKTtyZXR1cm59cmV0dXJuIG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHtlfScpYCkoKX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUscil7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gcigpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCBhPWxndC5kZWZlcigpO2lmKGdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cylnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMoZSksYS5yZXNvbHZlKCk7ZWxzZXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtzLm9ubG9hZD0oKT0+e2EucmVzb2x2ZSgpfSxzLnNyYz1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyl9cmV0dXJuIGF3YWl0IGEucHJvbWlzZSxyKCl9Z2V0IHJ1bnRpbWVFbnYoKXtyZXR1cm4gdHlwZW9mIHByb2Nlc3M8InUiPyJub2RlIjoiYnJvd3NlciJ9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiF0aGlzLmlzTm9kZX1nZXQgdXNlckFnZW50KCl7cmV0dXJuIHRoaXMuaXNCcm93c2VyP25hdmlnYXRvci51c2VyQWdlbnQ6InVuZGVmaW5lZCJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IG5vZGVWZXJzaW9uKCl7cmV0dXJuIHByb2Nlc3MudmVyc2lvbn1nZXQgaXNDSSgpe3JldHVybiB0aGlzLmlzTm9kZT8hIXByb2Nlc3MuZW52LkNJOiExfWFzeW5jIGlzTWFjQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0iZGFyd2luIjohMX1hc3luYyBpc1dpbmRvd3NBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJ3aW4zMiI6ITF9YXN5bmMgaXNMaW51eEFzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImxpbnV4IjohMX1hc3luYyBwcmludEVudigpe3RoaXMuaXNOb2RlPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBOT0RFIiksY29uc29sZS5sb2coIm5vZGUgdmVyc2lvbiBpcyAiK3RoaXMubm9kZVZlcnNpb24pKTooY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlJPV1NFUiIpLGNvbnNvbGUubG9nKCJicm93c2VyIGlzICIrdGhpcy51c2VyQWdlbnQpKX19fSk7dmFyIGhhZT17fTtWZShoYWUse1NtYXJ0ZW52OigpPT5jZ3R9KTt2YXIgTmlhPXUoKCk9PntQaWEoKX0pO3ZhciBPaWE9dSgoKT0+e05pYSgpfSk7dmFyIGRndD17fTtWZShkZ3Qse3NoYTI1NkZyb21TdHJpbmc6KCk9PlhCYX0pO3ZhciBRQmEsWEJhLFJpYT11KCgpPT57T2lhKCk7UUJhPWkodD0+e2xldCBlPVtdLHI9bmV3IERhdGFWaWV3KHQpO2ZvcihsZXQgYT0wO2E8ci5ieXRlTGVuZ3RoO2ErPTQpe2xldCBuPXIuZ2V0VWludDMyKGEpLnRvU3RyaW5nKDE2KSxvPSIwMDAwMDAwMCIsbD0obytuKS5zbGljZSgtby5sZW5ndGgpO2UucHVzaChsKX1yZXR1cm4gZS5qb2luKCIiKX0sImhleCIpLFhCYT1pKGFzeW5jIHQ9PntsZXQgZT1uZXcgaGFlLlNtYXJ0ZW52O2lmKGUuaXNCcm93c2VyKXtsZXQgcj1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIscik7cmV0dXJuIFFCYShhKX1lbHNlIGlmKGUuaXNOb2RlKXJldHVybiBhd2FpdChhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJAcHVzaHJvY2tzL3NtYXJ0aGFzaCIpKS5zaGEyNTZGcm9tU3RyaW5nKHQpfSwic2hhMjU2RnJvbVN0cmluZyIpfSk7dmFyIEZpYT11KCgpPT57R24oKX0pO3ZhciBCaWE9dSgoKT0+e30pO3ZhciB1Z3QsSGlhPXUoKCk9PntGaWEoKTtCaWEoKTt1Z3Q9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRlbnYiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlLHIpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7ZX0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBhPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHtlfScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihhKSxhfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUoZSxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKGUpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2goZSk7bGV0IGE9eHQuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKGUpLGEucmVzb2x2ZSgpO2Vsc2V7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cy5vbmxvYWQ9KCk9PnthLnJlc29sdmUoKX0scy5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpfXJldHVybiBhd2FpdCBhLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBwZ3Q9e307VmUocGd0LHtTbWFydGVudjooKT0+dWd0fSk7dmFyIHFpYT11KCgpPT57SGlhKCl9KTt2YXIgRHNhPU50KChiYWUsVXcpPT57dmFyIGVIYT0yMDAsVmlhPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIixqaWE9OTAwNzE5OTI1NDc0MDk5MSxmZ3Q9IltvYmplY3QgQXJndW1lbnRzXSIsdEhhPSJbb2JqZWN0IEFycmF5XSIsVWlhPSJbb2JqZWN0IEJvb2xlYW5dIixXaWE9IltvYmplY3QgRGF0ZV0iLHJIYT0iW29iamVjdCBFcnJvcl0iLGhndD0iW29iamVjdCBGdW5jdGlvbl0iLEdpYT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLG9tZT0iW29iamVjdCBNYXBdIixZaWE9IltvYmplY3QgTnVtYmVyXSIsbWd0PSJbb2JqZWN0IE9iamVjdF0iLEtpYT0iW29iamVjdCBQcm9taXNlXSIsWmlhPSJbb2JqZWN0IFJlZ0V4cF0iLGxtZT0iW29iamVjdCBTZXRdIixRaWE9IltvYmplY3QgU3RyaW5nXSIsWGlhPSJbb2JqZWN0IFN5bWJvbF0iLGdndD0iW29iamVjdCBXZWFrTWFwXSIsSmlhPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsY21lPSJbb2JqZWN0IERhdGFWaWV3XSIsZXNhPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLHRzYT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixyc2E9IltvYmplY3QgSW50OEFycmF5XSIsYXNhPSJbb2JqZWN0IEludDE2QXJyYXldIixpc2E9IltvYmplY3QgSW50MzJBcnJheV0iLHNzYT0iW29iamVjdCBVaW50OEFycmF5XSIsbnNhPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsb3NhPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsbHNhPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsYUhhPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxpSGE9L1x3KiQvLHNIYT0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxuSGE9L14oPzowfFsxLTldXGQqKSQvLHJpPXt9O3JpW2ZndF09cmlbdEhhXT1yaVtKaWFdPXJpW2NtZV09cmlbVWlhXT1yaVtXaWFdPXJpW2VzYV09cmlbdHNhXT1yaVtyc2FdPXJpW2FzYV09cmlbaXNhXT1yaVtvbWVdPXJpW1lpYV09cmlbbWd0XT1yaVtaaWFdPXJpW2xtZV09cmlbUWlhXT1yaVtYaWFdPXJpW3NzYV09cmlbbnNhXT1yaVtvc2FdPXJpW2xzYV09ITAscmlbckhhXT1yaVtoZ3RdPXJpW2dndF09ITE7dmFyIG9IYT10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsbEhhPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsTDM9b0hhfHxsSGF8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksY3NhPXR5cGVvZiBiYWU9PSJvYmplY3QiJiZiYWUmJiFiYWUubm9kZVR5cGUmJmJhZSxkc2E9Y3NhJiZ0eXBlb2YgVXc9PSJvYmplY3QiJiZVdyYmIVV3Lm5vZGVUeXBlJiZVdyxjSGE9ZHNhJiZkc2EuZXhwb3J0cz09PWNzYTtmdW5jdGlvbiBkSGEodCxlKXtyZXR1cm4gdC5zZXQoZVswXSxlWzFdKSx0fWkoZEhhLCJhZGRNYXBFbnRyeSIpO2Z1bmN0aW9uIHVIYSh0LGUpe3JldHVybiB0LmFkZChlKSx0fWkodUhhLCJhZGRTZXRFbnRyeSIpO2Z1bmN0aW9uIHBIYSh0LGUpe2Zvcih2YXIgcj0tMSxhPXQ/dC5sZW5ndGg6MDsrK3I8YSYmZSh0W3JdLHIsdCkhPT0hMTspO3JldHVybiB0fWkocEhhLCJhcnJheUVhY2giKTtmdW5jdGlvbiBmSGEodCxlKXtmb3IodmFyIHI9LTEsYT1lLmxlbmd0aCxzPXQubGVuZ3RoOysrcjxhOyl0W3Mrcl09ZVtyXTtyZXR1cm4gdH1pKGZIYSwiYXJyYXlQdXNoIik7ZnVuY3Rpb24gdXNhKHQsZSxyLGEpe3ZhciBzPS0xLG49dD90Lmxlbmd0aDowO2ZvcihhJiZuJiYocj10Wysrc10pOysrczxuOylyPWUocix0W3NdLHMsdCk7cmV0dXJuIHJ9aSh1c2EsImFycmF5UmVkdWNlIik7ZnVuY3Rpb24gaEhhKHQsZSl7Zm9yKHZhciByPS0xLGE9QXJyYXkodCk7KytyPHQ7KWFbcl09ZShyKTtyZXR1cm4gYX1pKGhIYSwiYmFzZVRpbWVzIik7ZnVuY3Rpb24gbUhhKHQsZSl7cmV0dXJuIHQ/LltlXX1pKG1IYSwiZ2V0VmFsdWUiKTtmdW5jdGlvbiBwc2EodCl7dmFyIGU9ITE7aWYodCE9bnVsbCYmdHlwZW9mIHQudG9TdHJpbmchPSJmdW5jdGlvbiIpdHJ5e2U9ISEodCsiIil9Y2F0Y2h7fXJldHVybiBlfWkocHNhLCJpc0hvc3RPYmplY3QiKTtmdW5jdGlvbiBmc2EodCl7dmFyIGU9LTEscj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24oYSxzKXtyWysrZV09W3MsYV19KSxyfWkoZnNhLCJtYXBUb0FycmF5Iik7ZnVuY3Rpb24gYmd0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0KGUocikpfX1pKGJndCwib3ZlckFyZyIpO2Z1bmN0aW9uIGhzYSh0KXt2YXIgZT0tMSxyPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihhKXtyWysrZV09YX0pLHJ9aShoc2EsInNldFRvQXJyYXkiKTt2YXIgZ0hhPUFycmF5LnByb3RvdHlwZSxiSGE9RnVuY3Rpb24ucHJvdG90eXBlLGRtZT1PYmplY3QucHJvdG90eXBlLHhndD1MM1siX19jb3JlLWpzX3NoYXJlZF9fIl0sbXNhPShmdW5jdGlvbigpe3ZhciB0PS9bXi5dKyQvLmV4ZWMoeGd0JiZ4Z3Qua2V5cyYmeGd0LmtleXMuSUVfUFJPVE98fCIiKTtyZXR1cm4gdD8iU3ltYm9sKHNyYylfMS4iK3Q6IiJ9KSgpLGdzYT1iSGEudG9TdHJpbmcsU2Y9ZG1lLmhhc093blByb3BlcnR5LHVtZT1kbWUudG9TdHJpbmcseEhhPVJlZ0V4cCgiXiIrZ3NhLmNhbGwoU2YpLnJlcGxhY2UoYUhhLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpLGJzYT1jSGE/TDMuQnVmZmVyOnZvaWQgMCx4c2E9TDMuU3ltYm9sLHZzYT1MMy5VaW50OEFycmF5LHZIYT1iZ3QoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCkseUhhPU9iamVjdC5jcmVhdGUsd0hhPWRtZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxrSGE9Z0hhLnNwbGljZSx5c2E9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxTSGE9YnNhP2JzYS5pc0J1ZmZlcjp2b2lkIDAsTUhhPWJndChPYmplY3Qua2V5cyxPYmplY3QpLHZndD1qdyhMMywiRGF0YVZpZXciKSxtYWU9ancoTDMsIk1hcCIpLHlndD1qdyhMMywiUHJvbWlzZSIpLHdndD1qdyhMMywiU2V0Iiksa2d0PWp3KEwzLCJXZWFrTWFwIiksZ2FlPWp3KE9iamVjdCwiY3JlYXRlIiksQ0hhPUNnKHZndCksekhhPUNnKG1hZSksX0hhPUNnKHlndCksVEhhPUNnKHdndCksTEhhPUNnKGtndCksd3NhPXhzYT94c2EucHJvdG90eXBlOnZvaWQgMCxrc2E9d3NhP3dzYS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBTZyh0KXt2YXIgZT0tMSxyPXQ/dC5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIGE9dFtlXTt0aGlzLnNldChhWzBdLGFbMV0pfX1pKFNnLCJIYXNoIik7ZnVuY3Rpb24gREhhKCl7dGhpcy5fX2RhdGFfXz1nYWU/Z2FlKG51bGwpOnt9fWkoREhhLCJoYXNoQ2xlYXIiKTtmdW5jdGlvbiAkSGEodCl7cmV0dXJuIHRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XX1pKCRIYSwiaGFzaERlbGV0ZSIpO2Z1bmN0aW9uIEFIYSh0KXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGdhZSl7dmFyIHI9ZVt0XTtyZXR1cm4gcj09PVZpYT92b2lkIDA6cn1yZXR1cm4gU2YuY2FsbChlLHQpP2VbdF06dm9pZCAwfWkoQUhhLCJoYXNoR2V0Iik7ZnVuY3Rpb24gRUhhKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIGdhZT9lW3RdIT09dm9pZCAwOlNmLmNhbGwoZSx0KX1pKEVIYSwiaGFzaEhhcyIpO2Z1bmN0aW9uIElIYSh0LGUpe3ZhciByPXRoaXMuX19kYXRhX187cmV0dXJuIHJbdF09Z2FlJiZlPT09dm9pZCAwP1ZpYTplLHRoaXN9aShJSGEsImhhc2hTZXQiKSxTZy5wcm90b3R5cGUuY2xlYXI9REhhLFNnLnByb3RvdHlwZS5kZWxldGU9JEhhLFNnLnByb3RvdHlwZS5nZXQ9QUhhLFNnLnByb3RvdHlwZS5oYXM9RUhhLFNnLnByb3RvdHlwZS5zZXQ9SUhhO2Z1bmN0aW9uIEQzKHQpe3ZhciBlPS0xLHI9dD90Lmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgYT10W2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkoRDMsIkxpc3RDYWNoZSIpO2Z1bmN0aW9uIFBIYSgpe3RoaXMuX19kYXRhX189W119aShQSGEsImxpc3RDYWNoZUNsZWFyIik7ZnVuY3Rpb24gTkhhKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1wbWUoZSx0KTtpZihyPDApcmV0dXJuITE7dmFyIGE9ZS5sZW5ndGgtMTtyZXR1cm4gcj09YT9lLnBvcCgpOmtIYS5jYWxsKGUsciwxKSwhMH1pKE5IYSwibGlzdENhY2hlRGVsZXRlIik7ZnVuY3Rpb24gT0hhKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1wbWUoZSx0KTtyZXR1cm4gcjwwP3ZvaWQgMDplW3JdWzFdfWkoT0hhLCJsaXN0Q2FjaGVHZXQiKTtmdW5jdGlvbiBSSGEodCl7cmV0dXJuIHBtZSh0aGlzLl9fZGF0YV9fLHQpPi0xfWkoUkhhLCJsaXN0Q2FjaGVIYXMiKTtmdW5jdGlvbiBGSGEodCxlKXt2YXIgcj10aGlzLl9fZGF0YV9fLGE9cG1lKHIsdCk7cmV0dXJuIGE8MD9yLnB1c2goW3QsZV0pOnJbYV1bMV09ZSx0aGlzfWkoRkhhLCJsaXN0Q2FjaGVTZXQiKSxEMy5wcm90b3R5cGUuY2xlYXI9UEhhLEQzLnByb3RvdHlwZS5kZWxldGU9TkhhLEQzLnByb3RvdHlwZS5nZXQ9T0hhLEQzLnByb3RvdHlwZS5oYXM9UkhhLEQzLnByb3RvdHlwZS5zZXQ9RkhhO2Z1bmN0aW9uIHF3KHQpe3ZhciBlPS0xLHI9dD90Lmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgYT10W2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkocXcsIk1hcENhY2hlIik7ZnVuY3Rpb24gQkhhKCl7dGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgU2csbWFwOm5ldyhtYWV8fEQzKSxzdHJpbmc6bmV3IFNnfX1pKEJIYSwibWFwQ2FjaGVDbGVhciIpO2Z1bmN0aW9uIEhIYSh0KXtyZXR1cm4gZm1lKHRoaXMsdCkuZGVsZXRlKHQpfWkoSEhhLCJtYXBDYWNoZURlbGV0ZSIpO2Z1bmN0aW9uIHFIYSh0KXtyZXR1cm4gZm1lKHRoaXMsdCkuZ2V0KHQpfWkocUhhLCJtYXBDYWNoZUdldCIpO2Z1bmN0aW9uIFZIYSh0KXtyZXR1cm4gZm1lKHRoaXMsdCkuaGFzKHQpfWkoVkhhLCJtYXBDYWNoZUhhcyIpO2Z1bmN0aW9uIGpIYSh0LGUpe3JldHVybiBmbWUodGhpcyx0KS5zZXQodCxlKSx0aGlzfWkoakhhLCJtYXBDYWNoZVNldCIpLHF3LnByb3RvdHlwZS5jbGVhcj1CSGEscXcucHJvdG90eXBlLmRlbGV0ZT1ISGEscXcucHJvdG90eXBlLmdldD1xSGEscXcucHJvdG90eXBlLmhhcz1WSGEscXcucHJvdG90eXBlLnNldD1qSGE7ZnVuY3Rpb24gVncodCl7dGhpcy5fX2RhdGFfXz1uZXcgRDModCl9aShWdywiU3RhY2siKTtmdW5jdGlvbiBVSGEoKXt0aGlzLl9fZGF0YV9fPW5ldyBEM31pKFVIYSwic3RhY2tDbGVhciIpO2Z1bmN0aW9uIFdIYSh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5kZWxldGUodCl9aShXSGEsInN0YWNrRGVsZXRlIik7ZnVuY3Rpb24gR0hhKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX1pKEdIYSwic3RhY2tHZXQiKTtmdW5jdGlvbiBZSGEodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfWkoWUhhLCJzdGFja0hhcyIpO2Z1bmN0aW9uIEtIYSh0LGUpe3ZhciByPXRoaXMuX19kYXRhX187aWYociBpbnN0YW5jZW9mIEQzKXt2YXIgYT1yLl9fZGF0YV9fO2lmKCFtYWV8fGEubGVuZ3RoPGVIYS0xKXJldHVybiBhLnB1c2goW3QsZV0pLHRoaXM7cj10aGlzLl9fZGF0YV9fPW5ldyBxdyhhKX1yZXR1cm4gci5zZXQodCxlKSx0aGlzfWkoS0hhLCJzdGFja1NldCIpLFZ3LnByb3RvdHlwZS5jbGVhcj1VSGEsVncucHJvdG90eXBlLmRlbGV0ZT1XSGEsVncucHJvdG90eXBlLmdldD1HSGEsVncucHJvdG90eXBlLmhhcz1ZSGEsVncucHJvdG90eXBlLnNldD1LSGE7ZnVuY3Rpb24gWkhhKHQsZSl7dmFyIHI9Q2d0KHQpfHx5cWEodCk/aEhhKHQubGVuZ3RoLFN0cmluZyk6W10sYT1yLmxlbmd0aCxzPSEhYTtmb3IodmFyIG4gaW4gdCkoZXx8U2YuY2FsbCh0LG4pKSYmIShzJiYobj09Imxlbmd0aCJ8fGdxYShuLGEpKSkmJnIucHVzaChuKTtyZXR1cm4gcn1pKFpIYSwiYXJyYXlMaWtlS2V5cyIpO2Z1bmN0aW9uIFNzYSh0LGUscil7dmFyIGE9dFtlXTsoIShTZi5jYWxsKHQsZSkmJl9zYShhLHIpKXx8cj09PXZvaWQgMCYmIShlIGluIHQpKSYmKHRbZV09cil9aShTc2EsImFzc2lnblZhbHVlIik7ZnVuY3Rpb24gcG1lKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoO3ItLTspaWYoX3NhKHRbcl1bMF0sZSkpcmV0dXJuIHI7cmV0dXJuLTF9aShwbWUsImFzc29jSW5kZXhPZiIpO2Z1bmN0aW9uIFFIYSh0LGUpe3JldHVybiB0JiZNc2EoZSx6Z3QoZSksdCl9aShRSGEsImJhc2VBc3NpZ24iKTtmdW5jdGlvbiBTZ3QodCxlLHIsYSxzLG4sbyl7dmFyIGw7aWYoYSYmKGw9bj9hKHQscyxuLG8pOmEodCkpLGwhPT12b2lkIDApcmV0dXJuIGw7aWYoIWhtZSh0KSlyZXR1cm4gdDt2YXIgYz1DZ3QodCk7aWYoYyl7aWYobD1mcWEodCksIWUpcmV0dXJuIGRxYSh0LGwpfWVsc2V7dmFyIGQ9TWcodCksZj1kPT1oZ3R8fGQ9PUdpYTtpZihrcWEodCkpcmV0dXJuIGFxYSh0LGUpO2lmKGQ9PW1ndHx8ZD09Zmd0fHxmJiYhbil7aWYocHNhKHQpKXJldHVybiBuP3Q6e307aWYobD1ocWEoZj97fTp0KSwhZSlyZXR1cm4gdXFhKHQsUUhhKGwsdCkpfWVsc2V7aWYoIXJpW2RdKXJldHVybiBuP3Q6e307bD1tcWEodCxkLFNndCxlKX19b3x8KG89bmV3IFZ3KTt2YXIgcD1vLmdldCh0KTtpZihwKXJldHVybiBwO2lmKG8uc2V0KHQsbCksIWMpdmFyIGg9cj9wcWEodCk6emd0KHQpO3JldHVybiBwSGEoaHx8dCxmdW5jdGlvbihtLHYpe2gmJih2PW0sbT10W3ZdKSxTc2EobCx2LFNndChtLGUscixhLHYsdCxvKSl9KSxsfWkoU2d0LCJiYXNlQ2xvbmUiKTtmdW5jdGlvbiBYSGEodCl7cmV0dXJuIGhtZSh0KT95SGEodCk6e319aShYSGEsImJhc2VDcmVhdGUiKTtmdW5jdGlvbiBKSGEodCxlLHIpe3ZhciBhPWUodCk7cmV0dXJuIENndCh0KT9hOmZIYShhLHIodCkpfWkoSkhhLCJiYXNlR2V0QWxsS2V5cyIpO2Z1bmN0aW9uIGVxYSh0KXtyZXR1cm4gdW1lLmNhbGwodCl9aShlcWEsImJhc2VHZXRUYWciKTtmdW5jdGlvbiB0cWEodCl7aWYoIWhtZSh0KXx8eHFhKHQpKXJldHVybiExO3ZhciBlPUxzYSh0KXx8cHNhKHQpP3hIYTpzSGE7cmV0dXJuIGUudGVzdChDZyh0KSl9aSh0cWEsImJhc2VJc05hdGl2ZSIpO2Z1bmN0aW9uIHJxYSh0KXtpZighenNhKHQpKXJldHVybiBNSGEodCk7dmFyIGU9W107Zm9yKHZhciByIGluIE9iamVjdCh0KSlTZi5jYWxsKHQscikmJnIhPSJjb25zdHJ1Y3RvciImJmUucHVzaChyKTtyZXR1cm4gZX1pKHJxYSwiYmFzZUtleXMiKTtmdW5jdGlvbiBhcWEodCxlKXtpZihlKXJldHVybiB0LnNsaWNlKCk7dmFyIHI9bmV3IHQuY29uc3RydWN0b3IodC5sZW5ndGgpO3JldHVybiB0LmNvcHkocikscn1pKGFxYSwiY2xvbmVCdWZmZXIiKTtmdW5jdGlvbiBNZ3QodCl7dmFyIGU9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IHZzYShlKS5zZXQobmV3IHZzYSh0KSksZX1pKE1ndCwiY2xvbmVBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIGlxYSh0LGUpe3ZhciByPWU/TWd0KHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3Iocix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1pKGlxYSwiY2xvbmVEYXRhVmlldyIpO2Z1bmN0aW9uIHNxYSh0LGUscil7dmFyIGE9ZT9yKGZzYSh0KSwhMCk6ZnNhKHQpO3JldHVybiB1c2EoYSxkSGEsbmV3IHQuY29uc3RydWN0b3IpfWkoc3FhLCJjbG9uZU1hcCIpO2Z1bmN0aW9uIG5xYSh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxpSGEuZXhlYyh0KSk7cmV0dXJuIGUubGFzdEluZGV4PXQubGFzdEluZGV4LGV9aShucWEsImNsb25lUmVnRXhwIik7ZnVuY3Rpb24gb3FhKHQsZSxyKXt2YXIgYT1lP3IoaHNhKHQpLCEwKTpoc2EodCk7cmV0dXJuIHVzYShhLHVIYSxuZXcgdC5jb25zdHJ1Y3Rvcil9aShvcWEsImNsb25lU2V0Iik7ZnVuY3Rpb24gbHFhKHQpe3JldHVybiBrc2E/T2JqZWN0KGtzYS5jYWxsKHQpKTp7fX1pKGxxYSwiY2xvbmVTeW1ib2wiKTtmdW5jdGlvbiBjcWEodCxlKXt2YXIgcj1lP01ndCh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKHIsdC5ieXRlT2Zmc2V0LHQubGVuZ3RoKX1pKGNxYSwiY2xvbmVUeXBlZEFycmF5Iik7ZnVuY3Rpb24gZHFhKHQsZSl7dmFyIHI9LTEsYT10Lmxlbmd0aDtmb3IoZXx8KGU9QXJyYXkoYSkpOysrcjxhOyllW3JdPXRbcl07cmV0dXJuIGV9aShkcWEsImNvcHlBcnJheSIpO2Z1bmN0aW9uIE1zYSh0LGUscixhKXtyfHwocj17fSk7Zm9yKHZhciBzPS0xLG49ZS5sZW5ndGg7KytzPG47KXt2YXIgbz1lW3NdLGw9YT9hKHJbb10sdFtvXSxvLHIsdCk6dm9pZCAwO1NzYShyLG8sbD09PXZvaWQgMD90W29dOmwpfXJldHVybiByfWkoTXNhLCJjb3B5T2JqZWN0Iik7ZnVuY3Rpb24gdXFhKHQsZSl7cmV0dXJuIE1zYSh0LENzYSh0KSxlKX1pKHVxYSwiY29weVN5bWJvbHMiKTtmdW5jdGlvbiBwcWEodCl7cmV0dXJuIEpIYSh0LHpndCxDc2EpfWkocHFhLCJnZXRBbGxLZXlzIik7ZnVuY3Rpb24gZm1lKHQsZSl7dmFyIHI9dC5fX2RhdGFfXztyZXR1cm4gYnFhKGUpP3JbdHlwZW9mIGU9PSJzdHJpbmciPyJzdHJpbmciOiJoYXNoIl06ci5tYXB9aShmbWUsImdldE1hcERhdGEiKTtmdW5jdGlvbiBqdyh0LGUpe3ZhciByPW1IYSh0LGUpO3JldHVybiB0cWEocik/cjp2b2lkIDB9aShqdywiZ2V0TmF0aXZlIik7dmFyIENzYT15c2E/Ymd0KHlzYSxPYmplY3QpOkNxYSxNZz1lcWE7KHZndCYmTWcobmV3IHZndChuZXcgQXJyYXlCdWZmZXIoMSkpKSE9Y21lfHxtYWUmJk1nKG5ldyBtYWUpIT1vbWV8fHlndCYmTWcoeWd0LnJlc29sdmUoKSkhPUtpYXx8d2d0JiZNZyhuZXcgd2d0KSE9bG1lfHxrZ3QmJk1nKG5ldyBrZ3QpIT1nZ3QpJiYoTWc9aShmdW5jdGlvbih0KXt2YXIgZT11bWUuY2FsbCh0KSxyPWU9PW1ndD90LmNvbnN0cnVjdG9yOnZvaWQgMCxhPXI/Q2cocik6dm9pZCAwO2lmKGEpc3dpdGNoKGEpe2Nhc2UgQ0hhOnJldHVybiBjbWU7Y2FzZSB6SGE6cmV0dXJuIG9tZTtjYXNlIF9IYTpyZXR1cm4gS2lhO2Nhc2UgVEhhOnJldHVybiBsbWU7Y2FzZSBMSGE6cmV0dXJuIGdndH1yZXR1cm4gZX0sImdldFRhZyIpKTtmdW5jdGlvbiBmcWEodCl7dmFyIGU9dC5sZW5ndGgscj10LmNvbnN0cnVjdG9yKGUpO3JldHVybiBlJiZ0eXBlb2YgdFswXT09InN0cmluZyImJlNmLmNhbGwodCwiaW5kZXgiKSYmKHIuaW5kZXg9dC5pbmRleCxyLmlucHV0PXQuaW5wdXQpLHJ9aShmcWEsImluaXRDbG9uZUFycmF5Iik7ZnVuY3Rpb24gaHFhKHQpe3JldHVybiB0eXBlb2YgdC5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIiYmIXpzYSh0KT9YSGEodkhhKHQpKTp7fX1pKGhxYSwiaW5pdENsb25lT2JqZWN0Iik7ZnVuY3Rpb24gbXFhKHQsZSxyLGEpe3ZhciBzPXQuY29uc3RydWN0b3I7c3dpdGNoKGUpe2Nhc2UgSmlhOnJldHVybiBNZ3QodCk7Y2FzZSBVaWE6Y2FzZSBXaWE6cmV0dXJuIG5ldyBzKCt0KTtjYXNlIGNtZTpyZXR1cm4gaXFhKHQsYSk7Y2FzZSBlc2E6Y2FzZSB0c2E6Y2FzZSByc2E6Y2FzZSBhc2E6Y2FzZSBpc2E6Y2FzZSBzc2E6Y2FzZSBuc2E6Y2FzZSBvc2E6Y2FzZSBsc2E6cmV0dXJuIGNxYSh0LGEpO2Nhc2Ugb21lOnJldHVybiBzcWEodCxhLHIpO2Nhc2UgWWlhOmNhc2UgUWlhOnJldHVybiBuZXcgcyh0KTtjYXNlIFppYTpyZXR1cm4gbnFhKHQpO2Nhc2UgbG1lOnJldHVybiBvcWEodCxhLHIpO2Nhc2UgWGlhOnJldHVybiBscWEodCl9fWkobXFhLCJpbml0Q2xvbmVCeVRhZyIpO2Z1bmN0aW9uIGdxYSh0LGUpe3JldHVybiBlPWU/P2ppYSwhIWUmJih0eXBlb2YgdD09Im51bWJlciJ8fG5IYS50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9aShncWEsImlzSW5kZXgiKTtmdW5jdGlvbiBicWEodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIGU9PSJzdHJpbmcifHxlPT0ibnVtYmVyInx8ZT09InN5bWJvbCJ8fGU9PSJib29sZWFuIj90IT09Il9fcHJvdG9fXyI6dD09PW51bGx9aShicWEsImlzS2V5YWJsZSIpO2Z1bmN0aW9uIHhxYSh0KXtyZXR1cm4hIW1zYSYmbXNhIGluIHR9aSh4cWEsImlzTWFza2VkIik7ZnVuY3Rpb24genNhKHQpe3ZhciBlPXQmJnQuY29uc3RydWN0b3Iscj10eXBlb2YgZT09ImZ1bmN0aW9uIiYmZS5wcm90b3R5cGV8fGRtZTtyZXR1cm4gdD09PXJ9aSh6c2EsImlzUHJvdG90eXBlIik7ZnVuY3Rpb24gQ2codCl7aWYodCE9bnVsbCl7dHJ5e3JldHVybiBnc2EuY2FsbCh0KX1jYXRjaHt9dHJ5e3JldHVybiB0KyIifWNhdGNoe319cmV0dXJuIiJ9aShDZywidG9Tb3VyY2UiKTtmdW5jdGlvbiB2cWEodCl7cmV0dXJuIFNndCh0LCEwLCEwKX1pKHZxYSwiY2xvbmVEZWVwIik7ZnVuY3Rpb24gX3NhKHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT09dCYmZSE9PWV9aShfc2EsImVxIik7ZnVuY3Rpb24geXFhKHQpe3JldHVybiB3cWEodCkmJlNmLmNhbGwodCwiY2FsbGVlIikmJighd0hhLmNhbGwodCwiY2FsbGVlIil8fHVtZS5jYWxsKHQpPT1mZ3QpfWkoeXFhLCJpc0FyZ3VtZW50cyIpO3ZhciBDZ3Q9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBUc2EodCl7cmV0dXJuIHQhPW51bGwmJlNxYSh0Lmxlbmd0aCkmJiFMc2EodCl9aShUc2EsImlzQXJyYXlMaWtlIik7ZnVuY3Rpb24gd3FhKHQpe3JldHVybiBNcWEodCkmJlRzYSh0KX1pKHdxYSwiaXNBcnJheUxpa2VPYmplY3QiKTt2YXIga3FhPVNIYXx8enFhO2Z1bmN0aW9uIExzYSh0KXt2YXIgZT1obWUodCk/dW1lLmNhbGwodCk6IiI7cmV0dXJuIGU9PWhndHx8ZT09R2lhfWkoTHNhLCJpc0Z1bmN0aW9uIik7ZnVuY3Rpb24gU3FhKHQpe3JldHVybiB0eXBlb2YgdD09Im51bWJlciImJnQ+LTEmJnQlMT09MCYmdDw9amlhfWkoU3FhLCJpc0xlbmd0aCIpO2Z1bmN0aW9uIGhtZSh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hIXQmJihlPT0ib2JqZWN0Inx8ZT09ImZ1bmN0aW9uIil9aShobWUsImlzT2JqZWN0Iik7ZnVuY3Rpb24gTXFhKHQpe3JldHVybiEhdCYmdHlwZW9mIHQ9PSJvYmplY3QifWkoTXFhLCJpc09iamVjdExpa2UiKTtmdW5jdGlvbiB6Z3QodCl7cmV0dXJuIFRzYSh0KT9aSGEodCk6cnFhKHQpfWkoemd0LCJrZXlzIik7ZnVuY3Rpb24gQ3FhKCl7cmV0dXJuW119aShDcWEsInN0dWJBcnJheSIpO2Z1bmN0aW9uIHpxYSgpe3JldHVybiExfWkoenFhLCJzdHViRmFsc2UiKSxVdy5leHBvcnRzPXZxYX0pO3ZhciBtbWUsJHNhLGdtZSxfZ3Q9dSgoKT0+e3FpYSgpO3lTKCk7bW1lPUdhKERzYSgpLDEpLCRzYT1HYShBZ2UoKSwxKSxnbWU9JHNhLmRlZmF1bHR9KTtmdW5jdGlvbiBUcWEodCl7cmV0dXJuIHR5cGVvZiBCdWZmZXI8InUiP0J1ZmZlci5mcm9tKHQpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpfWZ1bmN0aW9uIExxYSh0KXtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7bGV0IGU9QnVmZmVyLmZyb20odCwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IodCkpLm1hcChlPT5lLmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBMZ3QodCxlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxibWUsZSl9ZnVuY3Rpb24gRGd0KHQpe3JldHVybiBKU09OLnBhcnNlKHQsQXNhKX1mdW5jdGlvbiBEcWEodCl7cmV0dXJuIElzYSh0KSYmdC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZUZ3QodC5kYXRhKX1mdW5jdGlvbiAkcWEodCl7cmV0dXJuIElzYSh0KSYmdC50eXBlPT09IkJ1ZmZlciImJihFc2EodC5kYXRhKXx8VGd0KHQuZGF0YSkpfHx0IGluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBFc2EodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gVGd0KHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gSXNhKHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfXZhciBibWUsQXNhLFBzYT11KCgpPT57X2d0KCk7aShUcWEsImJhc2U2NEVuY29kZSIpO2koTHFhLCJiYXNlNjREZWNvZGUiKTtpKExndCwic3RyaW5naWZ5Iik7aShEZ3QsInBhcnNlIik7Ym1lPWkoKHQsZSk9PntpZigkcWEoZSkpe2xldCByO2lmKCJkYXRhImluIGUmJkVzYShlLmRhdGEpKXI9bmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXI9ZTtlbHNlIHJldHVybiBlO3JldHVybnt0eXBlOiJFbmNvZGVkQnVmZmVyIixkYXRhOiJiYXNlNjQ6IitUcWEocil9fXJldHVybiBlfSwicmVwbGFjZXIiKSxBc2E9aSgodCxlKT0+e2lmKERxYShlKSYmVGd0KGUuZGF0YSkmJmUuZGF0YS5zdGFydHNXaXRoKCJiYXNlNjQ6Iikpe2xldCByPWUuZGF0YS5zbGljZSg3KTtyZXR1cm4gTHFhKHIpfXJldHVybiBlfSwicmV2aXZlciIpO2koRHFhLCJpc0VuY29kZWRCdWZmZXIiKTtpKCRxYSwiaXNCdWZmZXJMaWtlIik7aShFc2EsImlzQXJyYXkiKTtpKFRndCwiaXNTdHJpbmciKTtpKElzYSwiaXNPYmplY3QiKX0pO3ZhciBDZD17fTtWZShDZCx7U21hcnRqc29uOigpPT5BZ3QsZGVlcEVxdWFsSnNvbkxTdHJpbmdzOigpPT5GcWEsZGVlcEVxdWFsT2JqZWN0czooKT0+TnNhLGZvbGREZWM6KCk9PlJxYSxwYXJzZTooKT0+eG1lLHBhcnNlQmFzZTY0OigpPT5PcWEscGFyc2VKc29uTDooKT0+JGd0LHN0YWJsZU9uZVdheVN0cmluZ2lmeTooKT0+SXFhLHN0cmluZ2lmeTooKT0+emcsc3RyaW5naWZ5QmFzZTY0OigpPT5OcWEsc3RyaW5naWZ5SnNvbkw6KCk9PkVxYSxzdHJpbmdpZnlQcmV0dHk6KCk9PlBxYX0pO3ZhciB4bWUsJGd0LEVxYSxJcWEsemcsUHFhLE5xYSxPcWEsQWd0LFJxYSxOc2EsRnFhLE9zYT11KCgpPT57X2d0KCk7UHNhKCk7eG1lPURndCwkZ3Q9aSh0PT50LnNwbGl0KGAKYCkucmVkdWNlKChhLHMpPT57bGV0IG49cy50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjAmJmEucHVzaCh4bWUobikpLGF9LFtdKSwicGFyc2VKc29uTCIpLEVxYT1pKHQ9PnQubWFwKGU9PnpnKGUpKS5qb2luKGAKYCksInN0cmluZ2lmeUpzb25MIiksSXFhPWkoKHQsZSxyPXt9KT0+e2xldCBhPW5ldyBXZWFrU2V0LHM9aShsPT57aWYobD09PW51bGx8fHR5cGVvZiBsIT0ib2JqZWN0IilyZXR1cm4gbDtsZXQgYz1ibWUoIiIsbCk7aWYoYyYmYy50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgYy5kYXRhPT0ic3RyaW5nIilyZXR1cm4gYztpZihhLmhhcyhsKSlyZXR1cm4iX19jeWNsZV9fIjtpZihhLmFkZChsKSxBcnJheS5pc0FycmF5KGwpKXJldHVybiBsLm1hcChmPT5zKGYpKTtsZXQgZD17fTtmb3IobGV0IGYgb2YgT2JqZWN0LmtleXMobCkpdHJ5e2RbZl09cyhsW2ZdKX1jYXRjaHtkW2ZdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBkfSwic2FuaXRpemUiKSxuPXModCksbz17Li4ucixjeWNsZXM6ITB9O2lmKGUmJiFvLmNtcCl7bGV0IGw9bmV3IE1hcDtlLmZvckVhY2goKGMsZCk9Pmwuc2V0KGMsZCkpLG8uY21wPShjLGQpPT57bGV0IGY9bC5oYXMoYy5rZXkpP2wuZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscD1sLmhhcyhkLmtleSk/bC5nZXQoZC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gZiE9PXA/Zi1wOmMua2V5PGQua2V5Py0xOmMua2V5PmQua2V5PzE6MH19cmV0dXJuIGdtZShuLG8pfSwic3RhYmxlT25lV2F5U3RyaW5naWZ5Iiksemc9aSgodCxlLHI9e30pPT57bGV0IGE9TGd0KHQpO3Q9SlNPTi5wYXJzZShhKTtsZXQgcz17Li4ucn07aWYoZSYmIXMuY21wKXtsZXQgbz1uZXcgTWFwO2UuZm9yRWFjaCgobCxjKT0+by5zZXQobCxjKSkscy5jbXA9KGwsYyk9PntsZXQgZD1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxmPW8uaGFzKGMua2V5KT9vLmdldChjLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBkIT09Zj9kLWY6bC5rZXk8Yy5rZXk/LTE6bC5rZXk+Yy5rZXk/MTowfX1yZXR1cm4gZ21lKHQscyl9LCJzdHJpbmdpZnkiKSxQcWE9aSh0PT57bGV0IGU9emcodCkscj1KU09OLnBhcnNlKGUpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LCJzdHJpbmdpZnlQcmV0dHkiKSxOcWE9aSgoLi4udCk9PntsZXQgZT16ZyguLi50KTtyZXR1cm4gQnMuYmFzZTY0LmVuY29kZVVyaShlKX0sInN0cmluZ2lmeUJhc2U2NCIpLE9xYT1pKHQ9PntsZXQgZT1Ccy5iYXNlNjQsYT0oZS5kZWNvZGVVcml8fGUuZGVjb2RlKSh0KTtyZXR1cm4geG1lKGEpfSwicGFyc2VCYXNlNjQiKSxBZ3Q9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTbWFydGpzb24iKX1zdGF0aWMgZW5mb2xkRnJvbU9iamVjdChlKXtsZXQgcj1uZXcgdGhpcyxhPXIuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IHMgaW4gZSlhLmluZGV4T2YocykhPT0tMSYmKHJbc109ZVtzXSk7cmV0dXJuIHJ9c3RhdGljIGVuZm9sZEZyb21Kc29uKGUpe2xldCByPXhtZShlKTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KHIpfWZvbGRUb09iamVjdCgpe2xldCBlPW5ldyBTZXQ7cmV0dXJuIGUuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl7bGV0IHI9e30sYT1pKG49PntpZihuIGluc3RhbmNlb2YgdCl7aWYoZS5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiBlLmFkZChuKSxuLmZvbGRUb09iamVjdEludGVybmFsKGUpfXJldHVybiBBcnJheS5pc0FycmF5KG4pP24ubWFwKG89PmEobykpOm1tZS5kZWZhdWx0KG4pfSwiZm9sZFZhbHVlIikscz10aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBuIG9mIHMpe2xldCBvPXRoaXNbbl07cltuXT1hKG8pfXJldHVybiByfWZvbGRUb0pzb24oKXtsZXQgZT10aGlzLmZvbGRUb09iamVjdCgpO3JldHVybiB6ZyhlKX19LFJxYT1pKCgpPT4odCxlKT0+e3Quc2F2ZWFibGVQcm9wZXJ0aWVzfHwodC5zYXZlYWJsZVByb3BlcnRpZXM9W10pLHQuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2goZSl9LCJmb2xkRGVjIiksTnNhPWkoKHQsZSk9PntsZXQgcj16Zyh0KSxhPXpnKGUpO3JldHVybiByPT09YX0sImRlZXBFcXVhbE9iamVjdHMiKSxGcWE9aSgodCxlKT0+e2xldCByPSRndCh0KSxhPSRndChlKTtyZXR1cm4gTnNhKHIsYSl9LCJkZWVwRXF1YWxKc29uTFN0cmluZ3MiKX0pO3ZhciBSc2E9dSgoKT0+e2hvZSgpO3FmKCk7UmlhKCk7TmQoKTtPc2EoKTtHbigpO1pjKCk7eVMoKTtGd2UoKX0pO2Z1bmN0aW9uIEhxYSh0KXtyZXR1cm57cGVlcjp0LGFzeW5jIGdldFRhZ0J5SWQoZSl7aWYoIXQudGFncy5oYXMoZSkpcmV0dXJuO2xldCByPXQuZGF0YS5nZXQoYCR7RWd0fSR7ZX1gKTtyZXR1cm57aWQ6ZSxwYXlsb2FkOnJ9fX19dmFyIEVndCxJZ3QsRnNhPXUoKCk9PntSc2EoKTtFZ3Q9Il9fdHlwZWRzb2NrZXRfdGFnX18iO2koSHFhLCJ3cmFwU21hcnRTZXJ2ZVBlZXIiKTtJZ3Q9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJUeXBlZFNvY2tldCIpfXN0YXRpYyBhc3luYyBjcmVhdGVDbGllbnQoZSxyLGE9e30pe2xldCBuPXsuLi57YXV0b1JlY29ubmVjdDohMCxtYXhSZXRyaWVzOjEwMCxpbml0aWFsQmFja29mZk1zOjFlMyxtYXhCYWNrb2ZmTXM6NmU0fSwuLi5hfSxvPW5ldyB0KCJjbGllbnQiLGUpO3JldHVybiBvLmNsaWVudE9wdGlvbnM9bixvLnNlcnZlclVybD1yLG8uY3VycmVudEJhY2tvZmY9bi5pbml0aWFsQmFja29mZk1zLGF3YWl0IG8uY29ubmVjdCgpLG99c3RhdGlje3RoaXMudXNlV2luZG93TG9jYXRpb25PcmlnaW5Vcmw9KCk9PkgyLlNtYXJ0dXJsLmNyZWF0ZUZyb21VcmwoZ2xvYmFsVGhpcy5sb2NhdGlvbi5vcmlnaW4pLnRvU3RyaW5nKCl9c3RhdGljIGZyb21TbWFydFNlcnZlKGUscil7bGV0IGE9bmV3IE1hcDt0LnJlZ2lzdGVyVGFnSGFuZGxlcnMocik7bGV0IHM9bmV3IHQoInNlcnZlciIscik7cmV0dXJuIHMuc21hcnRTZXJ2ZVJlZj1lLHMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycz1hLHN9c3RhdGljIHJlZ2lzdGVyVGFnSGFuZGxlcnMoZSl7ZS5hZGRUeXBlZEhhbmRsZXIobmV3IG0xLlR5cGVkSGFuZGxlcigiX190eXBlZHNvY2tldF9zZXRUYWciLGFzeW5jKHIsYSk9PntsZXQgcz1hPy5sb2NhbERhdGE/LnBlZXI7cmV0dXJuIHM/KHMudGFncy5hZGQoci5uYW1lKSxzLmRhdGEuc2V0KGAke0VndH0ke3IubmFtZX1gLHIucGF5bG9hZCkse3N1Y2Nlc3M6ITB9KTooY29uc29sZS53YXJuKCJzZXRUYWc6IE5vIHBlZXIgZm91bmQgaW4gcmVxdWVzdCBjb250ZXh0Iikse3N1Y2Nlc3M6ITF9KX0pKSxlLmFkZFR5cGVkSGFuZGxlcihuZXcgbTEuVHlwZWRIYW5kbGVyKCJfX3R5cGVkc29ja2V0X3JlbW92ZVRhZyIsYXN5bmMocixhKT0+e2xldCBzPWE/LmxvY2FsRGF0YT8ucGVlcjtyZXR1cm4gcz8ocy50YWdzLmRlbGV0ZShyLm5hbWUpLHMuZGF0YS5kZWxldGUoYCR7RWd0fSR7ci5uYW1lfWApLHtzdWNjZXNzOiEwfSk6KGNvbnNvbGUud2FybigicmVtb3ZlVGFnOiBObyBwZWVyIGZvdW5kIGluIHJlcXVlc3QgY29udGV4dCIpLHtzdWNjZXNzOiExfSl9KSl9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnN0YXR1c1N1YmplY3Q9bmV3IG9hLnJ4anMuU3ViamVjdCx0aGlzLmNvbm5lY3Rpb25TdGF0dXM9Im5ldyIsdGhpcy53ZWJzb2NrZXQ9bnVsbCx0aGlzLmNsaWVudE9wdGlvbnM9bnVsbCx0aGlzLnNlcnZlclVybD0iIix0aGlzLnJldHJ5Q291bnQ9MCx0aGlzLmN1cnJlbnRCYWNrb2ZmPTFlMyx0aGlzLnBlbmRpbmdSZXF1ZXN0cz1uZXcgTWFwLHRoaXMuc21hcnRTZXJ2ZVJlZj1udWxsLHRoaXMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycz1uZXcgTWFwLHRoaXMuc2lkZT1lLHRoaXMudHlwZWRyb3V0ZXI9cn1hc3luYyBjb25uZWN0KCl7bGV0IGU9eHQuZGVmZXIoKTt0aGlzLnVwZGF0ZVN0YXR1cygiY29ubmVjdGluZyIpO2xldCByPXRoaXMudG9XZWJTb2NrZXRVcmwodGhpcy5zZXJ2ZXJVcmwpO2NvbnNvbGUubG9nKGBUeXBlZFNvY2tldCBjb25uZWN0aW5nIHRvICR7cn0uLi5gKSx0aGlzLndlYnNvY2tldD1uZXcgV2ViU29ja2V0KHIpO2xldCBhPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbm5lY3Rpb25TdGF0dXMhPT0iY29ubmVjdGVkIiYmKGNvbnNvbGUud2FybigiVHlwZWRTb2NrZXQgY29ubmVjdGlvbiB0aW1lb3V0IiksdGhpcy53ZWJzb2NrZXQ/LmNsb3NlKCksZS5yZWplY3QobmV3IEVycm9yKCJDb25uZWN0aW9uIHRpbWVvdXQiKSkpfSwxZTQpO3RoaXMud2Vic29ja2V0Lm9ub3Blbj0oKT0+e2NsZWFyVGltZW91dChhKSxjb25zb2xlLmxvZygiVHlwZWRTb2NrZXQgY29ubmVjdGVkISIpLHRoaXMudXBkYXRlU3RhdHVzKCJjb25uZWN0ZWQiKSx0aGlzLnJldHJ5Q291bnQ9MCx0aGlzLmN1cnJlbnRCYWNrb2ZmPXRoaXMuY2xpZW50T3B0aW9ucz8uaW5pdGlhbEJhY2tvZmZNcz8/MWUzLGUucmVzb2x2ZSgpfSx0aGlzLndlYnNvY2tldC5vbm1lc3NhZ2U9YXN5bmMgcz0+e2F3YWl0IHRoaXMuaGFuZGxlTWVzc2FnZShzLmRhdGEpfSx0aGlzLndlYnNvY2tldC5vbmNsb3NlPSgpPT57Y2xlYXJUaW1lb3V0KGEpLHRoaXMuaGFuZGxlRGlzY29ubmVjdCgpfSx0aGlzLndlYnNvY2tldC5vbmVycm9yPXM9Pntjb25zb2xlLmVycm9yKCJUeXBlZFNvY2tldCBXZWJTb2NrZXQgZXJyb3I6IixzKX07dHJ5e2F3YWl0IGUucHJvbWlzZX1jYXRjaChzKXtpZihjbGVhclRpbWVvdXQoYSksdGhpcy5jbGllbnRPcHRpb25zPy5hdXRvUmVjb25uZWN0KWF3YWl0IHRoaXMuc2NoZWR1bGVSZWNvbm5lY3QoKTtlbHNlIHRocm93IHN9fXRvV2ViU29ja2V0VXJsKGUpe2xldCByPW5ldyBVUkwoZSk7cmV0dXJuYCR7ci5wcm90b2NvbD09PSJodHRwczoiPyJ3c3M6Ijoid3M6In0vLyR7ci5ob3N0fSR7ci5wYXRobmFtZX1gfWFzeW5jIGhhbmRsZU1lc3NhZ2UoZSl7dHJ5e2xldCByPXR5cGVvZiBlPT0ic3RyaW5nIj9lOm5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShlKSxhPUNkLnBhcnNlKHIpO2lmKGEuY29ycmVsYXRpb24/LmlkJiZ0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMoYS5jb3JyZWxhdGlvbi5pZCkpe2xldCBuPXRoaXMucGVuZGluZ1JlcXVlc3RzLmdldChhLmNvcnJlbGF0aW9uLmlkKTt0aGlzLnBlbmRpbmdSZXF1ZXN0cy5kZWxldGUoYS5jb3JyZWxhdGlvbi5pZCksbi5yZXNvbHZlKGEpO3JldHVybn1sZXQgcz1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2UoYSk7cyYmdGhpcy53ZWJzb2NrZXQ/LnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTiYmdGhpcy53ZWJzb2NrZXQuc2VuZChDZC5zdHJpbmdpZnkocykpfWNhdGNoKHIpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IGZhaWxlZCB0byBwcm9jZXNzIG1lc3NhZ2U6IixyKX19aGFuZGxlRGlzY29ubmVjdCgpe2lmKHRoaXMuY29ubmVjdGlvblN0YXR1cyE9PSJkaXNjb25uZWN0ZWQiKXt0aGlzLnVwZGF0ZVN0YXR1cygiZGlzY29ubmVjdGVkIik7Zm9yKGxldFtlLHJdb2YgdGhpcy5wZW5kaW5nUmVxdWVzdHMpci5yZWplY3QobmV3IEVycm9yKCJUeXBlZFNvY2tldCBkaXNjb25uZWN0ZWQiKSk7dGhpcy5wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKSx0aGlzLmNsaWVudE9wdGlvbnM/LmF1dG9SZWNvbm5lY3QmJnRoaXMucmV0cnlDb3VudDx0aGlzLmNsaWVudE9wdGlvbnMubWF4UmV0cmllcyYmdGhpcy5zY2hlZHVsZVJlY29ubmVjdCgpfX1hc3luYyBzY2hlZHVsZVJlY29ubmVjdCgpe2lmKCF0aGlzLmNsaWVudE9wdGlvbnMpcmV0dXJuO3RoaXMudXBkYXRlU3RhdHVzKCJyZWNvbm5lY3RpbmciKSx0aGlzLnJldHJ5Q291bnQrKztsZXQgZT10aGlzLmN1cnJlbnRCYWNrb2ZmKi4yKihNYXRoLnJhbmRvbSgpKjItMSkscj1NYXRoLm1pbih0aGlzLmN1cnJlbnRCYWNrb2ZmK2UsdGhpcy5jbGllbnRPcHRpb25zLm1heEJhY2tvZmZNcyk7Y29uc29sZS5sb2coYFR5cGVkU29ja2V0IHJlY29ubmVjdGluZyBpbiAke01hdGgucm91bmQocil9bXMgKGF0dGVtcHQgJHt0aGlzLnJldHJ5Q291bnR9LyR7dGhpcy5jbGllbnRPcHRpb25zLm1heFJldHJpZXN9KWApLGF3YWl0IEt0LmRlbGF5Rm9yKHIpLHRoaXMuY3VycmVudEJhY2tvZmY9TWF0aC5taW4odGhpcy5jdXJyZW50QmFja29mZioyLHRoaXMuY2xpZW50T3B0aW9ucy5tYXhCYWNrb2ZmTXMpO3RyeXthd2FpdCB0aGlzLmNvbm5lY3QoKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJUeXBlZFNvY2tldCByZWNvbm5lY3Rpb24gZmFpbGVkOiIsYSl9fXVwZGF0ZVN0YXR1cyhlKXt0aGlzLmNvbm5lY3Rpb25TdGF0dXMhPT1lJiYodGhpcy5jb25uZWN0aW9uU3RhdHVzPWUsdGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoZSkpfWFzeW5jIHNlbmRSZXF1ZXN0KGUpe2lmKCF0aGlzLndlYnNvY2tldHx8dGhpcy53ZWJzb2NrZXQucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKXRocm93IG5ldyBFcnJvcigiV2ViU29ja2V0IG5vdCBjb25uZWN0ZWQiKTtlLmNvcnJlbGF0aW9ufHw9e2lkOkJzLmNyZWF0ZS5jcmVhdGVDcnlwdG9SYW5kb21TdHJpbmcoKSxwaGFzZToicmVxdWVzdCJ9O2xldCByPWUuY29ycmVsYXRpb24uaWQ7cmV0dXJuIG5ldyBQcm9taXNlKChhLHMpPT57bGV0IG49c2V0VGltZW91dCgoKT0+e3RoaXMucGVuZGluZ1JlcXVlc3RzLmRlbGV0ZShyKSxzKG5ldyBFcnJvcigiUmVxdWVzdCB0aW1lb3V0IikpfSwzZTQpO3RoaXMucGVuZGluZ1JlcXVlc3RzLnNldChyLHtyZXNvbHZlOmkobz0+e2NsZWFyVGltZW91dChuKSxhKG8pfSwicmVzb2x2ZSIpLHJlamVjdDppKG89PntjbGVhclRpbWVvdXQobikscyhvKX0sInJlamVjdCIpfSksdGhpcy53ZWJzb2NrZXQuc2VuZChDZC5zdHJpbmdpZnkoZSkpfSl9Y3JlYXRlVHlwZWRSZXF1ZXN0KGUscil7bGV0IGE9aShhc3luYyBzPT57aWYodGhpcy5zaWRlPT09ImNsaWVudCIpcmV0dXJuIHRoaXMuc2VuZFJlcXVlc3Qocyk7aWYoIXRoaXMuc21hcnRTZXJ2ZVJlZil0aHJvdyBuZXcgRXJyb3IoIlNlcnZlciBub3QgaW5pdGlhbGl6ZWQiKTtsZXQgbj1yO2lmKCFuKXtsZXQgbD10aGlzLnNtYXJ0U2VydmVSZWYuZ2V0V2ViU29ja2V0Q29ubmVjdGlvbnMoKTtpZihsLmxlbmd0aD09PTEpe2xldCBjPWxbMF07bj10aGlzLmdldE9yQ3JlYXRlV3JhcHBlcihjKX1lbHNlIHRocm93IGwubGVuZ3RoPT09MD9uZXcgRXJyb3IoIk5vIFdlYlNvY2tldCBjb25uZWN0aW9ucyBhdmFpbGFibGUiKTpuZXcgRXJyb3IoIk11bHRpcGxlIGNvbm5lY3Rpb25zIGF2YWlsYWJsZSAtIHNwZWNpZnkgdGFyZ2V0Q29ubmVjdGlvbiIpfWxldCBvPWF3YWl0IHRoaXMudHlwZWRyb3V0ZXIuZmlyZUV2ZW50SW50ZXJlc3RNYXAuYWRkSW50ZXJlc3Qocy5jb3JyZWxhdGlvbi5pZCxzKTtyZXR1cm4gbi5wZWVyLnNlbmQoQ2Quc3RyaW5naWZ5KHMpKSxhd2FpdCBvLmludGVyZXN0RnVsbGZpbGxlZH0sInBvc3RNZXRob2QiKTtyZXR1cm4gbmV3IG0xLlR5cGVkUmVxdWVzdChuZXcgbTEuVHlwZWRUYXJnZXQoe3Bvc3RNZXRob2Q6YX0pLGUpfWdldFN0YXR1cygpe3JldHVybiB0aGlzLmNvbm5lY3Rpb25TdGF0dXN9YXN5bmMgc3RvcCgpe3RoaXMuc2lkZT09PSJjbGllbnQiPyh0aGlzLmNsaWVudE9wdGlvbnMmJih0aGlzLmNsaWVudE9wdGlvbnMuYXV0b1JlY29ubmVjdD0hMSksdGhpcy53ZWJzb2NrZXQmJih0aGlzLndlYnNvY2tldC5jbG9zZSgpLHRoaXMud2Vic29ja2V0PW51bGwpLHRoaXMucGVuZGluZ1JlcXVlc3RzLmNsZWFyKCkpOnRoaXMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycy5jbGVhcigpfWFzeW5jIHNldFRhZyhlLHIpe2lmKHRoaXMuc2lkZSE9PSJjbGllbnQiKXRocm93IG5ldyBFcnJvcigic2V0VGFnIGlzIG9ubHkgYXZhaWxhYmxlIG9uIGNsaWVudHMiKTtpZighKGF3YWl0IHRoaXMuY3JlYXRlVHlwZWRSZXF1ZXN0KCJfX3R5cGVkc29ja2V0X3NldFRhZyIpLmZpcmUoe25hbWU6ZSxwYXlsb2FkOnJ9KSkuc3VjY2Vzcyl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBzZXQgdGFnIG9uIHNlcnZlciIpfWFzeW5jIHJlbW92ZVRhZyhlKXtpZih0aGlzLnNpZGUhPT0iY2xpZW50Iil0aHJvdyBuZXcgRXJyb3IoInJlbW92ZVRhZyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBjbGllbnRzIik7aWYoIShhd2FpdCB0aGlzLmNyZWF0ZVR5cGVkUmVxdWVzdCgiX190eXBlZHNvY2tldF9yZW1vdmVUYWciKS5maXJlKHtuYW1lOmV9KSkuc3VjY2Vzcyl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byByZW1vdmUgdGFnIG9uIHNlcnZlciIpfWdldE9yQ3JlYXRlV3JhcHBlcihlKXtsZXQgcj10aGlzLnNtYXJ0U2VydmVDb25uZWN0aW9uV3JhcHBlcnMuZ2V0KGUuaWQpO3JldHVybiByfHwocj1IcWEoZSksdGhpcy5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzLnNldChlLmlkLHIpKSxyfWFzeW5jIGZpbmRBbGxUYXJnZXRDb25uZWN0aW9ucyhlKXtpZih0aGlzLnNpZGUhPT0ic2VydmVyInx8IXRoaXMuc21hcnRTZXJ2ZVJlZil0aHJvdyBuZXcgRXJyb3IoImZpbmRBbGxUYXJnZXRDb25uZWN0aW9ucyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBzZXJ2ZXJzIik7bGV0IHI9W107Zm9yKGxldCBhIG9mIHRoaXMuc21hcnRTZXJ2ZVJlZi5nZXRXZWJTb2NrZXRDb25uZWN0aW9ucygpKXtsZXQgcz10aGlzLmdldE9yQ3JlYXRlV3JhcHBlcihhKTthd2FpdCBlKHMpJiZyLnB1c2gocyl9cmV0dXJuIHJ9YXN5bmMgZmluZFRhcmdldENvbm5lY3Rpb24oZSl7cmV0dXJuKGF3YWl0IHRoaXMuZmluZEFsbFRhcmdldENvbm5lY3Rpb25zKGUpKVswXX1hc3luYyBmaW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnNCeVRhZyhlLHIpe2lmKHRoaXMuc2lkZSE9PSJzZXJ2ZXIifHwhdGhpcy5zbWFydFNlcnZlUmVmKXRocm93IG5ldyBFcnJvcigiZmluZEFsbFRhcmdldENvbm5lY3Rpb25zQnlUYWcgaXMgb25seSBhdmFpbGFibGUgb24gc2VydmVycyIpO2xldCBhPXRoaXMuc21hcnRTZXJ2ZVJlZi5nZXRXZWJTb2NrZXRDb25uZWN0aW9uc0J5VGFnKGUpLHM9W107Zm9yKGxldCBuIG9mIGEpe2xldCBvPXRoaXMuZ2V0T3JDcmVhdGVXcmFwcGVyKG4pO2lmKHIhPT12b2lkIDApe2xldCBsPWF3YWl0IG8uZ2V0VGFnQnlJZChlKTtpZihDZC5zdHJpbmdpZnkobD8ucGF5bG9hZCkhPT1DZC5zdHJpbmdpZnkocikpY29udGludWV9cy5wdXNoKG8pfXJldHVybiBzfWFzeW5jIGZpbmRUYXJnZXRDb25uZWN0aW9uQnlUYWcoZSxyKXtyZXR1cm4oYXdhaXQgdGhpcy5maW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnNCeVRhZyhlLHIpKVswXX19fSk7dmFyICQzPXt9O1ZlKCQzLHtUeXBlZFNvY2tldDooKT0+SWd0fSk7dmFyIEJzYT11KCgpPT57RnNhKCl9KTt2YXIgY3QsbzE9dSgoKT0+e05vKCk7VDl0KCk7JGlhKCk7QnNhKCk7Y3Q9UzF9KTt2YXIgU24sSHNhPXUoKCk9PntObygpO1NuPSRyYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWFyZ2luOiBhdXRvOwogICAgbWF4LXdpZHRoOiAxMjgwcHg7CiAgICBwYWRkaW5nOiAxNnB4IDE2cHg7CiAgfQpgfSk7dmFyIHFzYSxQZ3QscXFhLHhhZSxWc2E9dSgoKT0+e05vKCk7cXNhPVt2aSgib2Itc2VjdGlvbmhlYWRpbmciKV07eGFlPWNsYXNzIGV4dGVuZHMocXFhPXlpKXtzdGF0aWN7aSh0aGlzLCJPYlNlY3Rpb25IZWFkaW5nIil9c3RhdGljIHN0eWxlcz1bb3IuZGVmYXVsdFN0eWxlcywkcmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLmhlYWRpbmcgewogICAgICAgIGZvbnQtZmFtaWx5OiAnQ2FsIFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoIiMxMTEiLCIjZmZmIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gUWVgCiAgICAgIDxoMSBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2gxPgogICAgYH19O1BndD0kaShxcWEpLHhhZT1EdChQZ3QsMCwiT2JTZWN0aW9uSGVhZGluZyIscXNhLHhhZSksWGUoUGd0LDEseGFlKX0pO3ZhciBSYz11KCgpPT57SHNhKCk7VnNhKCl9KTt2YXIgam49dSgoKT0+e3FmKCl9KTt2YXIganNhPXUoKCk9Pnt9KTt2YXIgVXNhPXUoKCk9Pnt9KTt2YXIgV3NhPXUoKCk9Pnt9KTt2YXIgR3NhPXUoKCk9Pnt9KTt2YXIgWXNhPXUoKCk9Pnt9KTt2YXIgS3NhPXUoKCk9Pnt9KTt2YXIgVnFhLFpzYT11KCgpPT57VnFhPXtzdGFuZGFyZDp7aG91cmx5OjAsZGFpbHk6Nyx3ZWVrbHk6NCxtb250aGx5OjEyfSxmcmVxdWVudDp7aG91cmx5OjI0LGRhaWx5Ojcsd2Vla2x5OjQsbW9udGhseToxMn0sbWluaW1hbDp7aG91cmx5OjAsZGFpbHk6Myx3ZWVrbHk6Mixtb250aGx5OjZ9LGxvbmd0ZXJtOntob3VybHk6MCxkYWlseToxNCx3ZWVrbHk6OCxtb250aGx5OjI0fX19KTt2YXIgUXNhPXUoKCk9Pnt9KTt2YXIgWHNhPXUoKCk9Pnt9KTt2YXIgTmd0PXt9O1ZlKE5ndCx7UkVURU5USU9OX1BSRVNFVFM6KCk9PlZxYX0pO3ZhciBVbj11KCgpPT57anNhKCk7VXNhKCk7V3NhKCk7R3NhKCk7WXNhKCk7S3NhKCk7WnNhKCk7UXNhKCk7WHNhKCl9KTt2YXIgSnNhPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgZW5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgdG5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgcm5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgYW5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgaW5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgc25hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgbm5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgb25hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgbG5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgY25hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgZG5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgdW5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgcG5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgZm5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgaG5hPXt9O3ZhciBtbmE9dSgoKT0+e0pzYSgpO2VuYSgpO3RuYSgpO3JuYSgpO2FuYSgpO2luYSgpO3NuYSgpO25uYSgpO29uYSgpO2xuYSgpO2NuYSgpO2RuYSgpO3VuYSgpO3BuYSgpO2ZuYSgpfSk7dmFyIEd3PXUoKCk9PntqbigpO1VuKCk7bW5hKCl9KTthc3luYyBmdW5jdGlvbiBVcWEoKXtpZighX2cpdHJ5e19nPWF3YWl0ICQzLlR5cGVkU29ja2V0LmNyZWF0ZUNsaWVudCh2YWUsJDMuVHlwZWRTb2NrZXQudXNlV2luZG93TG9jYXRpb25PcmlnaW5VcmwoKSksYXdhaXQgX2cuc2V0VGFnKCJyb2xlIiwib3BzX2Rhc2hib2FyZCIpLGNvbnNvbGUubG9nKCJUeXBlZFNvY2tldCBkYXNoYm9hcmQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCIpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IGNvbm5lY3Rpb24gZmFpbGVkOiIsdCksX2c9bnVsbH19YXN5bmMgZnVuY3Rpb24gV3FhKCl7aWYoX2cpe3RyeXthd2FpdCBfZy5kaXNjb25uZWN0KCl9Y2F0Y2h7fV9nPW51bGx9fXZhciBFMyxHaSx6ZCxHdCxRcixCYyxGYyxubixsMSx4bCxpcix4bmEsdm1lLEt3LHltZSx2bmEsUmd0LHluYSx3bmEsa25hLFNuYSxNbmEsQ25hLHdtZSxGZ3QsQmd0LGttZSx6bmEsSGd0LHlhZSx3YWUsX25hLFRuYSxxZ3QsVmd0LGpndCxTbWUsTG5hLE1tZSxEbmEsJG5hLGNOMSxBbmEsZE4xLEVuYSx1TjEsSW5hLFVndCxrYWUsUG5hLE5uYSxPbmEsUm5hLHBOMSxmTjEsaE4xLFl3LGpxYSxPZ3QsX2csdmFlLGduYSxibmEsRm5hLEJuYSxDbWUsSG5hLHAyPXUoYXN5bmMoKT0+e28xKCk7R3coKTtFMz1uZXcgY3QucGx1Z2lucy5zbWFydHN0YXRlLlNtYXJ0c3RhdGUsR2k9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJsb2dpbiIse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0sInBlcnNpc3RlbnQiKSx6ZD1hd2FpdCBFMy5nZXRTdGF0ZVBhcnQoInN5c3RlbSIse3N0YXR1czpudWxsfSwic29mdCIpLEd0PWF3YWl0IEUzLmdldFN0YXRlUGFydCgic2VydmljZXMiLHtzZXJ2aWNlczpbXSxjdXJyZW50U2VydmljZTpudWxsLGN1cnJlbnRTZXJ2aWNlTG9nczpbXSxjdXJyZW50U2VydmljZVN0YXRzOm51bGwscGxhdGZvcm1TZXJ2aWNlczpbXSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119LCJzb2Z0IiksUXI9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJuZXR3b3JrIix7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119LCJzb2Z0IiksQmM9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJyZWdpc3RyaWVzIix7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9LCJzb2Z0IiksRmM9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJiYWNrdXBzIix7YmFja3VwczpbXSxzY2hlZHVsZXM6W119LCJzb2Z0Iiksbm49YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJzZXR0aW5ncyIse3NldHRpbmdzOm51bGwsYmFja3VwUGFzc3dvcmRDb25maWd1cmVkOiExLG1hbmFnZWREY1JvdXRlclN0YXR1czpudWxsfSwic29mdCIpLGwxPWF3YWl0IEUzLmdldFN0YXRlUGFydCgiYXBwU3RvcmUiLHthcHBzOltdLHVwZ3JhZGVhYmxlU2VydmljZXM6W10sdXBncmFkZU9wZXJhdGlvbnM6W119LCJzb2Z0IikseGw9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJ1aSIse2FjdGl2ZVZpZXc6ImRhc2hib2FyZCIsYWN0aXZlU3VidmlldzpudWxsLGF1dG9SZWZyZXNoOiEwLHJlZnJlc2hJbnRlcnZhbDozZTR9KSxpcj1pKCgpPT4oe2lkZW50aXR5OkdpLmdldFN0YXRlKCkuaWRlbnRpdHl9KSwiZ2V0QWN0aW9uQ29udGV4dCIpLHhuYT1HaS5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e3RyeXtyZXR1cm57aWRlbnRpdHk6KGF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJhZG1pbkxvZ2luV2l0aFVzZXJuYW1lQW5kUGFzc3dvcmQiKS5maXJlKHt1c2VybmFtZTplLnVzZXJuYW1lLHBhc3N3b3JkOmUucGFzc3dvcmR9KSkuaWRlbnRpdHksaXNMb2dnZWRJbjohMH19Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkxvZ2luIGZhaWxlZDoiLHIpLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fX0pLHZtZT1HaS5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2UuaWRlbnRpdHkmJmF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJhZG1pbkxvZ291dCIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KX1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJMb2dvdXQgZXJyb3I6IixyKX1yZXR1cm57aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfX0pLEt3PXpkLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7cmV0dXJue3N0YXR1czooYXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFN5c3RlbVN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KSkuc3RhdHVzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHN5c3RlbSBzdGF0dXM6IixyKSx0LmdldFN0YXRlKCl9fSkseW1lPUd0LmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2VydmljZXM6YS5zZXJ2aWNlc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlczoiLHIpLHQuZ2V0U3RhdGUoKX19KSx2bmE9R3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXtsZXQgcz1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxjdXJyZW50U2VydmljZTpzLnNlcnZpY2V9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZToiLGEpLHQuZ2V0U3RhdGUoKX19KSxSZ3Q9R3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXthd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZUNvbmZpZzplLmNvbmZpZ30pO2xldCBuPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHNlcnZpY2VzOm4uc2VydmljZXN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIHNlcnZpY2U6IixhKSx0LmdldFN0YXRlKCl9fSkseW5hPUd0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IHI9aXIoKTt0cnl7YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZVNlcnZpY2UiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNlcnZpY2VOYW1lOmUubmFtZX0pO2xldCBzPXQuZ2V0U3RhdGUoKTtyZXR1cm57Li4ucyxzZXJ2aWNlczpzLnNlcnZpY2VzLmZpbHRlcihuPT5uLm5hbWUhPT1lLm5hbWUpLGN1cnJlbnRTZXJ2aWNlOm51bGx9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNlcnZpY2U6IixhKSx0LmdldFN0YXRlKCl9fSksd25hPUd0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IHI9aXIoKTt0cnl7YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0YXJ0U2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7bGV0IG49YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2VydmljZXM6bi5zZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBzZXJ2aWNlOiIsYSksdC5nZXRTdGF0ZSgpfX0pLGtuYT1HdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdG9wU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7bGV0IG49YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2VydmljZXM6bi5zZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdG9wIHNlcnZpY2U6IixhKSx0LmdldFN0YXRlKCl9fSksU25hPUd0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IHI9aXIoKTt0cnl7YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInJlc3RhcnRTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtsZXQgbj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxzZXJ2aWNlczpuLnNlcnZpY2VzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlc3RhcnQgc2VydmljZToiLGEpLHQuZ2V0U3RhdGUoKX19KSxNbmE9R3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXtsZXQgcz1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZUxvZ3MiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNlcnZpY2VOYW1lOmUubmFtZSx0YWlsOmUubGluZXN8fDIwMH0pO3JldHVybnsuLi50LmdldFN0YXRlKCksY3VycmVudFNlcnZpY2VMb2dzOnMubG9nc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlIGxvZ3M6IixhKSx0LmdldFN0YXRlKCl9fSksQ25hPUd0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IHI9aXIoKTt0cnl7bGV0IHM9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VTdGF0cyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxjdXJyZW50U2VydmljZVN0YXRzOnMuc3RhdHN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZSBzdGF0czoiLGEpLHQuZ2V0U3RhdGUoKX19KSx3bWU9R3QuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGxhdGZvcm1TZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHBsYXRmb3JtU2VydmljZXM6YS5wbGF0Zm9ybVNlcnZpY2VzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHBsYXRmb3JtIHNlcnZpY2VzOiIsciksdC5nZXRTdGF0ZSgpfX0pLEZndD1HdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydFBsYXRmb3JtU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO2xldCBuPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCkscGxhdGZvcm1TZXJ2aWNlczpuLnBsYXRmb3JtU2VydmljZXN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RhcnQgcGxhdGZvcm0gc2VydmljZToiLGEpLHQuZ2V0U3RhdGUoKX19KSxCZ3Q9R3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXthd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RvcFBsYXRmb3JtU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO2xldCBuPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCkscGxhdGZvcm1TZXJ2aWNlczpuLnBsYXRmb3JtU2VydmljZXN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RvcCBwbGF0Zm9ybSBzZXJ2aWNlOiIsYSksdC5nZXRTdGF0ZSgpfX0pLGttZT1HdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VTdGF0cyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOnMuc3RhdHN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGxhdGZvcm0gc2VydmljZSBzdGF0czoiLGEpLHsuLi50LmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGx9fX0pLHpuYT1HdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VMb2dzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlLHRhaWw6ZS50YWlsfHwxMDB9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOnMubG9nc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBwbGF0Zm9ybSBzZXJ2aWNlIGxvZ3M6IixhKSx7Li4udC5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOltdfX19KSxIZ3Q9UXIuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0TmV0d29ya1RhcmdldHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSx0YXJnZXRzOmEudGFyZ2V0c319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBuZXR3b3JrIHRhcmdldHM6IixyKSx0LmdldFN0YXRlKCl9fSkseWFlPVFyLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE5ldHdvcmtTdGF0cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHN0YXRzOmEuc3RhdHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggbmV0d29yayBzdGF0czoiLHIpLHQuZ2V0U3RhdGUoKX19KSx3YWU9UXIuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0VHJhZmZpY1N0YXRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksdHJhZmZpY1N0YXRzOmEuc3RhdHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdHJhZmZpYyBzdGF0czoiLHIpLHQuZ2V0U3RhdGUoKX19KSxfbmE9UXIuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0RG5zUmVjb3JkcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGRuc1JlY29yZHM6YS5yZWNvcmRzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIEROUyByZWNvcmRzOiIsciksdC5nZXRTdGF0ZSgpfX0pLFRuYT1Rci5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzeW5jRG5zIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXREbnNSZWNvcmRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksZG5zUmVjb3JkczpzLnJlY29yZHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3luYyBETlM6IixyKSx0LmdldFN0YXRlKCl9fSkscWd0PVFyLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldERvbWFpbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxkb21haW5zOmEuZG9tYWluc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBkb21haW5zOiIsciksdC5nZXRTdGF0ZSgpfX0pLFZndD1Rci5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRHYXRld2F5RG9tYWlucyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGdhdGV3YXlEb21haW5zOmEuZG9tYWluc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBnYXRld2F5IGRvbWFpbnM6IixyKSx0LmdldFN0YXRlKCl9fSksamd0PVFyLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEdhdGV3YXlEbnNSZWNvcmRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksZ2F0ZXdheURuc1JlY29yZHM6YS5yZWNvcmRzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGdhdGV3YXkgRE5TIHJlY29yZHM6IixyKSx0LmdldFN0YXRlKCl9fSksU21lPVFyLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImxpc3RDZXJ0aWZpY2F0ZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxjZXJ0aWZpY2F0ZXM6YS5jZXJ0aWZpY2F0ZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggY2VydGlmaWNhdGVzOiIsciksdC5nZXRTdGF0ZSgpfX0pLExuYT1Rci5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJyZW5ld0NlcnRpZmljYXRlIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxkb21haW46ZS5kb21haW59KTtsZXQgbj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwibGlzdENlcnRpZmljYXRlcyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGNlcnRpZmljYXRlczpuLmNlcnRpZmljYXRlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5ldyBjZXJ0aWZpY2F0ZToiLGEpLHQuZ2V0U3RhdGUoKX19KSxNbWU9QmMuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UmVnaXN0cnlUb2tlbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSx0b2tlbnM6YS50b2tlbnN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcmVnaXN0cnkgdG9rZW5zOiIsciksdC5nZXRTdGF0ZSgpfX0pLERuYT1CYy5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVSZWdpc3RyeVRva2VuIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSx0b2tlbjplLnRva2VufSk7bGV0IG49YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFJlZ2lzdHJ5VG9rZW5zIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksdG9rZW5zOm4udG9rZW5zfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSByZWdpc3RyeSB0b2tlbjoiLGEpLHQuZ2V0U3RhdGUoKX19KSwkbmE9QmMuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXthd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlUmVnaXN0cnlUb2tlbiIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksdG9rZW5JZDplLnRva2VuSWR9KTtsZXQgcz10LmdldFN0YXRlKCk7cmV0dXJuey4uLnMsdG9rZW5zOnMudG9rZW5zLmZpbHRlcihuPT5uLmlkIT09ZS50b2tlbklkKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgcmVnaXN0cnkgdG9rZW46IixhKSx0LmdldFN0YXRlKCl9fSksY04xPUZjLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxiYWNrdXBzOmEuYmFja3Vwc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBiYWNrdXBzOiIsciksdC5nZXRTdGF0ZSgpfX0pLEFuYT1GYy5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJkZWxldGVCYWNrdXAiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGJhY2t1cElkOmUuYmFja3VwSWR9KTtsZXQgcz10LmdldFN0YXRlKCk7cmV0dXJuey4uLnMsYmFja3VwczpzLmJhY2t1cHMuZmlsdGVyKG49Pm4uaWQhPT1lLmJhY2t1cElkKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgYmFja3VwOiIsYSksdC5nZXRTdGF0ZSgpfX0pLGROMT1GYy5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRCYWNrdXBTY2hlZHVsZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxzY2hlZHVsZXM6YS5zY2hlZHVsZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2NoZWR1bGVzOiIsciksdC5nZXRTdGF0ZSgpfX0pLEVuYT1GYy5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVCYWNrdXBTY2hlZHVsZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2NoZWR1bGVDb25maWc6ZS5jb25maWd9KTtsZXQgbj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwU2NoZWR1bGVzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2NoZWR1bGVzOm4uc2NoZWR1bGVzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBzY2hlZHVsZToiLGEpLHQuZ2V0U3RhdGUoKX19KSx1TjE9RmMuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXthd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNjaGVkdWxlSWQ6ZS5zY2hlZHVsZUlkfSk7bGV0IHM9dC5nZXRTdGF0ZSgpO3JldHVybnsuLi5zLHNjaGVkdWxlczpzLnNjaGVkdWxlcy5maWx0ZXIobj0+bi5pZCE9PWUuc2NoZWR1bGVJZCl9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNjaGVkdWxlOiIsYSksdC5nZXRTdGF0ZSgpfX0pLEluYT1GYy5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ0cmlnZ2VyQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNjaGVkdWxlSWQ6ZS5zY2hlZHVsZUlkfSk7bGV0IG49YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cHMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxiYWNrdXBzOm4uYmFja3Vwc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB0cmlnZ2VyIHNjaGVkdWxlOiIsYSksdC5nZXRTdGF0ZSgpfX0pLFVndD1ubi5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2xldFtyLGEsc109YXdhaXQgUHJvbWlzZS5hbGwoW25ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXR0aW5ncyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KSxuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwUGFzc3dvcmRTdGF0dXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSksbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE1hbmFnZWREY1JvdXRlclN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KV0pO3JldHVybntzZXR0aW5nczpyLnNldHRpbmdzLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDphLnN0YXR1cy5pc0NvbmZpZ3VyZWQsbWFuYWdlZERjUm91dGVyU3RhdHVzOnMuc3RhdHVzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNldHRpbmdzOiIsciksdC5nZXRTdGF0ZSgpfX0pLGthZT1ubi5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ1cGRhdGVTZXR0aW5ncyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2V0dGluZ3M6ZS5zZXR0aW5nc30pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2V0dGluZ3M6cy5zZXR0aW5nc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGRhdGUgc2V0dGluZ3M6IixhKSx0LmdldFN0YXRlKCl9fSksUG5hPW5uLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE1hbmFnZWREY1JvdXRlclN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czpyLnN0YXR1c319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBtYW5hZ2VkIGRjcm91dGVyIHN0YXR1czoiLHIpLHQuZ2V0U3RhdGUoKX19KSxObmE9bm4uY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgcj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RhcnRNYW5hZ2VkRGNSb3V0ZXIiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxtYW5hZ2VkRGNSb3V0ZXJTdGF0dXM6ci5zdGF0dXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RhcnQgbWFuYWdlZCBkY3JvdXRlcjoiLHIpLHQuZ2V0U3RhdGUoKX19KSxPbmE9bm4uY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgcj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RvcE1hbmFnZWREY1JvdXRlciIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czpyLnN0YXR1c319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdG9wIG1hbmFnZWQgZGNyb3V0ZXI6IixyKSx0LmdldFN0YXRlKCl9fSksUm5hPW5uLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInJlc3RhcnRNYW5hZ2VkRGNSb3V0ZXIiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxtYW5hZ2VkRGNSb3V0ZXJTdGF0dXM6ci5zdGF0dXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVzdGFydCBtYW5hZ2VkIGRjcm91dGVyOiIsciksdC5nZXRTdGF0ZSgpfX0pLHBOMT1ubi5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e3JldHVybiBhd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic2V0QmFja3VwUGFzc3dvcmQiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHBhc3N3b3JkOmUucGFzc3dvcmR9KSx7Li4udC5nZXRTdGF0ZSgpLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDohMH19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzZXQgYmFja3VwIHBhc3N3b3JkOiIsYSksdC5nZXRTdGF0ZSgpfX0pLGZOMT14bC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWUudmlldy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzKy9nLCItIiksYT1lLnN1YnZpZXc/ZS5zdWJ2aWV3LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKTpudWxsO3JldHVybnsuLi50LmdldFN0YXRlKCksYWN0aXZlVmlldzpyLGFjdGl2ZVN1YnZpZXc6YX19KSxoTjE9eGwuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT10LmdldFN0YXRlKCk7cmV0dXJuey4uLmUsYXV0b1JlZnJlc2g6IWUuYXV0b1JlZnJlc2h9fSksWXc9bnVsbCxqcWE9aShhc3luYygpPT57aWYoR2kuZ2V0U3RhdGUoKS5pc0xvZ2dlZEluKXRyeXthd2FpdCBQcm9taXNlLmFsbChbemQuZGlzcGF0Y2hBY3Rpb24oS3csbnVsbCksUXIuZGlzcGF0Y2hBY3Rpb24od2FlLG51bGwpXSl9Y2F0Y2h7fX0sImRpc3BhdGNoQ29tYmluZWRSZWZyZXNoQWN0aW9uIiksT2d0PWkoKCk9PntsZXQgdD14bC5nZXRTdGF0ZSgpLGU9R2kuZ2V0U3RhdGUoKTt0LmF1dG9SZWZyZXNoJiZlLmlzTG9nZ2VkSW4/KFl3JiZjbGVhckludGVydmFsKFl3KSxZdz1zZXRJbnRlcnZhbCgoKT0+e2pxYSgpfSx0LnJlZnJlc2hJbnRlcnZhbCkpOll3JiYoY2xlYXJJbnRlcnZhbChZdyksWXc9bnVsbCl9LCJzdGFydEF1dG9SZWZyZXNoIik7eGwuc2VsZWN0KHQ9PnQpLnN1YnNjcmliZSgoKT0+T2d0KCkpLEdpLnNlbGVjdCh0PT50KS5zdWJzY3JpYmUoKCk9Pk9ndCgpKSxPZ3QoKTtfZz1udWxsLHZhZT1uZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSb3V0ZXIsZ25hPWkoKHQsZSk9PntsZXQgcj10LmZpbmRJbmRleChzPT5zLm5hbWU9PT1lLm5hbWUpO2lmKHI9PT0tMSlyZXR1cm5bLi4udCxlXTtsZXQgYT1bLi4udF07cmV0dXJuIGFbcl09ZSxhfSwidXBzZXJ0U2VydmljZSIpLGJuYT1pKCh0LGUpPT4odC5maW5kSW5kZXgocz0+cy5pZD09PWUuaWQpPT09LTE/W2UsLi4udF06dC5tYXAocz0+cy5pZD09PWUuaWQ/ZTpzKSkuc29ydCgocyxuKT0+bi5zdGFydGVkQXQtcy5zdGFydGVkQXQpLnNsaWNlKDAsMjUpLCJ1cHNlcnRVcGdyYWRlT3BlcmF0aW9uIik7dmFlLmFkZFR5cGVkSGFuZGxlcihuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoU2VydmljZVVwZGF0ZSIsYXN5bmMgdD0+e2xldCBlPUd0LmdldFN0YXRlKCkscj1lLnNlcnZpY2VzLGE9ZS5jdXJyZW50U2VydmljZSxzPWUuY3VycmVudFNlcnZpY2VMb2dzLG49ZS5jdXJyZW50U2VydmljZVN0YXRzO3JldHVybiB0LmFjdGlvbj09PSJkZWxldGVkIj8ocj1yLmZpbHRlcihvPT5vLm5hbWUhPT10LnNlcnZpY2VOYW1lKSxhPy5uYW1lPT09dC5zZXJ2aWNlTmFtZSYmKGE9bnVsbCxzPVtdLG49bnVsbCkpOnQuc2VydmljZSYmKHI9Z25hKHIsdC5zZXJ2aWNlKSxhPy5uYW1lPT09dC5zZXJ2aWNlLm5hbWUmJihhPXQuc2VydmljZSkpLEd0LnNldFN0YXRlKHsuLi5lLHNlcnZpY2VzOnIsY3VycmVudFNlcnZpY2U6YSxjdXJyZW50U2VydmljZUxvZ3M6cyxjdXJyZW50U2VydmljZVN0YXRzOm59KSx7fX0pKSx2YWUuYWRkVHlwZWRIYW5kbGVyKG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXIoInB1c2hBcHBTdG9yZVVwZ3JhZGVQcm9ncmVzcyIsYXN5bmMgdD0+e2xldCBlPWwxLmdldFN0YXRlKCk7aWYobDEuc2V0U3RhdGUoey4uLmUsdXBncmFkZU9wZXJhdGlvbnM6Ym5hKGUudXBncmFkZU9wZXJhdGlvbnMsdC5vcGVyYXRpb24pLHVwZ3JhZGVhYmxlU2VydmljZXM6dC5vcGVyYXRpb24uc3RhdHVzPT09InN1Y2Nlc3MiP2UudXBncmFkZWFibGVTZXJ2aWNlcy5maWx0ZXIocj0+ci5zZXJ2aWNlTmFtZSE9PXQub3BlcmF0aW9uLnNlcnZpY2VOYW1lKTplLnVwZ3JhZGVhYmxlU2VydmljZXN9KSx0Lm9wZXJhdGlvbi5zZXJ2aWNlKXtsZXQgcj1HdC5nZXRTdGF0ZSgpO0d0LnNldFN0YXRlKHsuLi5yLHNlcnZpY2VzOmduYShyLnNlcnZpY2VzLHQub3BlcmF0aW9uLnNlcnZpY2UpLGN1cnJlbnRTZXJ2aWNlOnIuY3VycmVudFNlcnZpY2U/Lm5hbWU9PT10Lm9wZXJhdGlvbi5zZXJ2aWNlLm5hbWU/dC5vcGVyYXRpb24uc2VydmljZTpyLmN1cnJlbnRTZXJ2aWNlfSl9cmV0dXJue319KSksdmFlLmFkZFR5cGVkSGFuZGxlcihuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoUGxhdGZvcm1TZXJ2aWNlTG9nIixhc3luYyB0PT57bGV0IGU9R3QuZ2V0U3RhdGUoKSxyPXtpZDplLmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzLmxlbmd0aCxzZXJ2aWNlSWQ6MCx0aW1lc3RhbXA6bmV3IERhdGUodC5lbnRyeS50aW1lc3RhbXApLmdldFRpbWUoKSxtZXNzYWdlOnQuZW50cnkubWVzc2FnZSxsZXZlbDp0LmVudHJ5LmxldmVsLHNvdXJjZToic3Rkb3V0In0sYT1bLi4uZS5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9ncyxyXTtyZXR1cm4gYS5sZW5ndGg+MmUzJiZhLnNwbGljZSgwLGEubGVuZ3RoLTJlMyksR3Quc2V0U3RhdGUoey4uLmUsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6YX0pLHt9fSkpLHZhZS5hZGRUeXBlZEhhbmRsZXIobmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkSGFuZGxlcigicHVzaFNlcnZpY2VMb2ciLGFzeW5jIHQ9PntsZXQgZT1HdC5nZXRTdGF0ZSgpO2lmKCFlLmN1cnJlbnRTZXJ2aWNlfHxlLmN1cnJlbnRTZXJ2aWNlLm5hbWUhPT10LnNlcnZpY2VOYW1lKXJldHVybnt9O2xldCByPXtpZDplLmN1cnJlbnRTZXJ2aWNlTG9ncy5sZW5ndGgsc2VydmljZUlkOjAsdGltZXN0YW1wOm5ldyBEYXRlKHQuZW50cnkudGltZXN0YW1wKS5nZXRUaW1lKCksbWVzc2FnZTp0LmVudHJ5Lm1lc3NhZ2UsbGV2ZWw6dC5lbnRyeS5sZXZlbCxzb3VyY2U6InN0ZG91dCJ9LGE9Wy4uLmUuY3VycmVudFNlcnZpY2VMb2dzLHJdO3JldHVybiBhLmxlbmd0aD4yZTMmJmEuc3BsaWNlKDAsYS5sZW5ndGgtMmUzKSxHdC5zZXRTdGF0ZSh7Li4uZSxjdXJyZW50U2VydmljZUxvZ3M6YX0pLHt9fSkpO2koVXFhLCJjb25uZWN0U29ja2V0Iik7aShXcWEsImRpc2Nvbm5lY3RTb2NrZXQiKTtGbmE9bDEuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QXBwU3RvcmVUZW1wbGF0ZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxhcHBzOmEuYXBwc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBhcHAgdGVtcGxhdGVzOiIsciksdC5nZXRTdGF0ZSgpfX0pLEJuYT1sMS5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRVcGdyYWRlYWJsZUFwcFN0b3JlU2VydmljZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSx1cGdyYWRlYWJsZVNlcnZpY2VzOmEuc2VydmljZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdXBncmFkZWFibGUgc2VydmljZXM6IixyKSx0LmdldFN0YXRlKCl9fSksQ21lPWwxLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEFwcFN0b3JlVXBncmFkZU9wZXJhdGlvbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSx1cGdyYWRlT3BlcmF0aW9uczphLm9wZXJhdGlvbnN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdXBncmFkZSBvcGVyYXRpb25zOiIsciksdC5nZXRTdGF0ZSgpfX0pLEhuYT1sMS5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydEFwcFN0b3JlU2VydmljZVVwZ3JhZGUiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNlcnZpY2VOYW1lOmUuc2VydmljZU5hbWUsdGFyZ2V0VmVyc2lvbjplLnRhcmdldFZlcnNpb259KSxuPXQuZ2V0U3RhdGUoKTtyZXR1cm57Li4ubix1cGdyYWRlT3BlcmF0aW9uczpibmEobi51cGdyYWRlT3BlcmF0aW9ucyxzLm9wZXJhdGlvbil9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBncmFkZSBzZXJ2aWNlOiIsYSksdC5nZXRTdGF0ZSgpfX0pO0dpLnNlbGVjdCh0PT50KS5zdWJzY3JpYmUodD0+e3QuaXNMb2dnZWRJbj9VcWEoKTpXcWEoKX0pfSk7ZnVuY3Rpb24gVm5hKHQpe3JldHVybiBLcWEuaW5jbHVkZXModCl9ZnVuY3Rpb24gam5hKHQsZSl7cmV0dXJuIFp3W3RdPy5pbmNsdWRlcyhlKT8/ITF9dmFyIEdxYSxxbmEsWncsV2d0LFlxYSxLcWEsR2d0LGMxLFRnPXUoYXN5bmMoKT0+e28xKCk7YXdhaXQgcDIoKTtHcWE9Y3QucGx1Z2lucy5zbWFydHJvdXRlci5TbWFydFJvdXRlcixxbmE9WyJkYXNoYm9hcmQiLCJzZXR0aW5ncyJdLFp3PXthcHBzOlsiYXBwLXN0b3JlIiwic2VydmljZXMiXSxuZXR3b3JrOlsicHJveHkiLCJkb21haW5zIiwiZG5zLXJlY29yZHMiXSxyZWdpc3RyeTpbInJlZ2lzdHJpZXMiLCJ0b2tlbnMiXX0sV2d0PXthcHBzOiJhcHAtc3RvcmUiLG5ldHdvcms6InByb3h5IixyZWdpc3RyeToicmVnaXN0cmllcyJ9LFlxYT17ImFwcC1zdG9yZSI6e3ZpZXc6ImFwcHMiLHN1YnZpZXc6ImFwcC1zdG9yZSJ9LHNlcnZpY2VzOnt2aWV3OiJhcHBzIixzdWJ2aWV3OiJzZXJ2aWNlcyJ9LHByb3h5Ont2aWV3OiJuZXR3b3JrIixzdWJ2aWV3OiJwcm94eSJ9LGRvbWFpbnM6e3ZpZXc6Im5ldHdvcmsiLHN1YnZpZXc6ImRvbWFpbnMifSwiZG5zLXJlY29yZHMiOnt2aWV3OiJuZXR3b3JrIixzdWJ2aWV3OiJkbnMtcmVjb3JkcyJ9LHJlZ2lzdHJpZXM6e3ZpZXc6InJlZ2lzdHJ5IixzdWJ2aWV3OiJyZWdpc3RyaWVzIn0sdG9rZW5zOnt2aWV3OiJyZWdpc3RyeSIsc3VidmlldzoidG9rZW5zIn19LEtxYT1bLi4ucW5hLC4uLk9iamVjdC5rZXlzKFp3KV07aShWbmEsImlzVmFsaWRWaWV3Iik7aShqbmEsImlzVmFsaWRTdWJ2aWV3Iik7R2d0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkFwcFJvdXRlciIpfXJvdXRlcjtpbml0aWFsaXplZD0hMTtzdXBwcmVzc1N0YXRlVXBkYXRlPSExO2NvbnN0cnVjdG9yKCl7dGhpcy5yb3V0ZXI9bmV3IEdxYSh7ZGVidWc6ITF9KX1pbml0KCl7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMuc2V0dXBSb3V0ZXMoKSx0aGlzLnNldHVwU3RhdGVTeW5jKCksdGhpcy5oYW5kbGVJbml0aWFsUm91dGUoKSx0aGlzLmluaXRpYWxpemVkPSEwKX1zZXR1cFJvdXRlcygpe2ZvcihsZXQgZSBvZiBxbmEpdGhpcy5yb3V0ZXIub24oYC8ke2V9YCxhc3luYygpPT57dGhpcy51cGRhdGVWaWV3U3RhdGUoZSxudWxsKX0pO2ZvcihsZXQgZSBvZiBPYmplY3Qua2V5cyhadykpe3RoaXMucm91dGVyLm9uKGAvJHtlfWAsYXN5bmMoKT0+e3RoaXMubmF2aWdhdGVUbyhgLyR7ZX0vJHtXZ3RbZV19YCl9KTtmb3IobGV0IHIgb2YgWndbZV0pdGhpcy5yb3V0ZXIub24oYC8ke2V9LyR7cn1gLGFzeW5jKCk9Pnt0aGlzLnVwZGF0ZVZpZXdTdGF0ZShlLHIpfSl9dGhpcy5yb3V0ZXIub24oIi8iLGFzeW5jKCk9Pnt0aGlzLm5hdmlnYXRlVG8oIi9kYXNoYm9hcmQiKX0pfXNldHVwU3RhdGVTeW5jKCl7eGwuc2VsZWN0KCkuc3Vic2NyaWJlKGU9PntpZih0aGlzLnN1cHByZXNzU3RhdGVVcGRhdGUpcmV0dXJuO2xldCByPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxhPWUuYWN0aXZlU3Vidmlldz9gLyR7ZS5hY3RpdmVWaWV3fS8ke2UuYWN0aXZlU3Vidmlld31gOmAvJHtlLmFjdGl2ZVZpZXd9YDtyIT09YSYmKHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMCx0aGlzLnJvdXRlci5wdXNoVXJsKGEpLHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMSl9KX1oYW5kbGVJbml0aWFsUm91dGUoKXtsZXQgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7aWYoIWV8fGU9PT0iLyIpe3RoaXMucm91dGVyLnB1c2hVcmwoIi9kYXNoYm9hcmQiKTtyZXR1cm59bGV0IHI9ZS5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKSxhPXJbMF0scz1yWzFdO2lmKCFWbmEoYSkpe3RoaXMucm91dGVyLnB1c2hVcmwoIi9kYXNoYm9hcmQiKTtyZXR1cm59WndbYV0/cyYmam5hKGEscyk/dGhpcy51cGRhdGVWaWV3U3RhdGUoYSxzKTp0aGlzLnJvdXRlci5wdXNoVXJsKGAvJHthfS8ke1dndFthXX1gKTp0aGlzLnVwZGF0ZVZpZXdTdGF0ZShhLG51bGwpfXVwZGF0ZVZpZXdTdGF0ZShlLHIpe3RoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMDtsZXQgYT14bC5nZXRTdGF0ZSgpOyhhLmFjdGl2ZVZpZXchPT1lfHxhLmFjdGl2ZVN1YnZpZXchPT1yKSYmeGwuc2V0U3RhdGUoey4uLmEsYWN0aXZlVmlldzplLGFjdGl2ZVN1YnZpZXc6cn0pLHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMX1uYXZpZ2F0ZVRvKGUpe3RoaXMucm91dGVyLnB1c2hVcmwoZSl9bmF2aWdhdGVUb1ZpZXcoZSxyKXtsZXQgYT1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKSxzPXI/LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKTtpZighVm5hKGEpKXtsZXQgbj1ZcWFbYV07aWYobil7dGhpcy5uYXZpZ2F0ZVRvVmlldyhuLnZpZXcsbi5zdWJ2aWV3KTtyZXR1cm59dGhpcy5uYXZpZ2F0ZVRvKCIvZGFzaGJvYXJkIik7cmV0dXJufXMmJmpuYShhLHMpP3RoaXMubmF2aWdhdGVUbyhgLyR7YX0vJHtzfWApOlp3W2FdP3RoaXMubmF2aWdhdGVUbyhgLyR7YX0vJHtXZ3RbYV19YCk6dGhpcy5uYXZpZ2F0ZVRvKGAvJHthfWApfWdldEN1cnJlbnRWaWV3KCl7bGV0IGU9eGwuZ2V0U3RhdGUoKTtyZXR1cm4gZS5hY3RpdmVTdWJ2aWV3P2Ake2UuYWN0aXZlVmlld30vJHtlLmFjdGl2ZVN1YnZpZXd9YDplLmFjdGl2ZVZpZXd9ZGVzdHJveSgpe3RoaXMucm91dGVyLmRlc3Ryb3koKSx0aGlzLmluaXRpYWxpemVkPSExfX0sYzE9bmV3IEdndH0pO3ZhciBYbmE9e307VmUoWG5hLHtPYlZpZXdEYXNoYm9hcmQ6KCk9PlFndH0pO2Z1bmN0aW9uIFduYSh0KXtyZXR1cm4hdHx8dD09PTA/MDpNYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGgubG9nKDEwMjQpKSxVbmEubGVuZ3RoLTEpfWZ1bmN0aW9uIHptZSh0LGUpe2lmKCghdHx8dD09PTApJiZlPT09dm9pZCAwKXJldHVybiIwIEIiO2xldCByPWU/P1duYSh0KTtyZXR1cm5gJHsodC9NYXRoLnBvdygxMDI0LHIpKS50b0ZpeGVkKDEpfSAke1VuYVtyXX1gfXZhciBHbmEsWW5hLEtuYSxabmEsUW5hLGYyLFlndCxLZ3QsWmd0LFVuYSxfZCxRZ3QsWGd0PXUoYXN5bmMoKT0+e28xKCk7UmMoKTthd2FpdCBwMigpO2F3YWl0IFRnKCk7Tm8oKTtVbmE9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiXTtpKFduYSwiZ2V0Qnl0ZVVuaXRJbmRleCIpO2koem1lLCJmb3JtYXRCeXRlcyIpLFFuYT1bdmkoIm9iLXZpZXctZGFzaGJvYXJkIildO19kPWNsYXNzIF9kIGV4dGVuZHMoWm5hPXlpLEtuYT1bWnQoKV0sWW5hPVtadCgpXSxHbmE9W1p0KCldLFpuYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsWWd0LFhlKGYyLDgsdGhpcyx7c3RhdHVzOm51bGx9KSksWGUoZjIsMTEsdGhpcyk7dHIodGhpcyxLZ3QsWGUoZjIsMTIsdGhpcyx7c2VydmljZXM6W10sY3VycmVudFNlcnZpY2U6bnVsbCxjdXJyZW50U2VydmljZUxvZ3M6W10sY3VycmVudFNlcnZpY2VTdGF0czpudWxsLHBsYXRmb3JtU2VydmljZXM6W10sY3VycmVudFBsYXRmb3JtU2VydmljZTpudWxsLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VTdGF0czpudWxsLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOltdfSkpLFhlKGYyLDE1LHRoaXMpO3RyKHRoaXMsWmd0LFhlKGYyLDE2LHRoaXMse3RhcmdldHM6W10sc3RhdHM6bnVsbCx0cmFmZmljU3RhdHM6bnVsbCxkbnNSZWNvcmRzOltdLGRvbWFpbnM6W10sZ2F0ZXdheURvbWFpbnM6W10sZ2F0ZXdheURuc1JlY29yZHM6W10sY2VydGlmaWNhdGVzOltdfSkpLFhlKGYyLDE5LHRoaXMpO2xldCByPXpkLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuc3lzdGVtU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGE9R3Quc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5zZXJ2aWNlc1N0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBzPVFyLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMubmV0d29ya1N0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHMpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbemQuZGlzcGF0Y2hBY3Rpb24oS3csbnVsbCksR3QuZGlzcGF0Y2hBY3Rpb24oeW1lLG51bGwpLEd0LmRpc3BhdGNoQWN0aW9uKHdtZSxudWxsKSxRci5kaXNwYXRjaEFjdGlvbih5YWUsbnVsbCksUXIuZGlzcGF0Y2hBY3Rpb24od2FlLG51bGwpLFFyLmRpc3BhdGNoQWN0aW9uKFNtZSxudWxsKV0pfXJlbmRlcigpe2xldCByPXRoaXMuc3lzdGVtU3RhdGUuc3RhdHVzLGE9dGhpcy5zZXJ2aWNlc1N0YXRlLnNlcnZpY2VzLHM9dGhpcy5zZXJ2aWNlc1N0YXRlLnBsYXRmb3JtU2VydmljZXMsbj10aGlzLm5ldHdvcmtTdGF0ZS5zdGF0cyxvPXRoaXMubmV0d29ya1N0YXRlLnRyYWZmaWNTdGF0cyxsPXRoaXMubmV0d29ya1N0YXRlLmNlcnRpZmljYXRlcyxjPW8/LnN0YXR1c0NvdW50c3x8e30sZD1hLmZpbHRlcihnPT5nLnN0YXR1cz09PSJydW5uaW5nIikubGVuZ3RoLGY9YS5maWx0ZXIoZz0+Zy5zdGF0dXM9PT0ic3RvcHBlZCIpLmxlbmd0aCxwPVduYShyPy5kb2NrZXI/Lm1lbW9yeVRvdGFsfHxyPy5kb2NrZXI/Lm1lbW9yeVVzYWdlfHwwKSxoPWwuZmlsdGVyKGc9PmcuaXNWYWxpZCkubGVuZ3RoLG09bC5maWx0ZXIoZz0+Zy5pc1ZhbGlkJiZnLmV4cGlyZXNBdCYmZy5leHBpcmVzQXQtRGF0ZS5ub3coKTw3MjAqNjAqNjAqMWUzKS5sZW5ndGgsdj1sLmZpbHRlcihnPT4hZy5pc1ZhbGlkKS5sZW5ndGgsYj17Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczphLmxlbmd0aCxydW5uaW5nOmQsc3RvcHBlZDpmLGRvY2tlclN0YXR1czpyPy5kb2NrZXI/LnJ1bm5pbmc/InJ1bm5pbmciOiJzdG9wcGVkIn0scmVzb3VyY2VVc2FnZTp7Y3B1OnI/LmRvY2tlcj8uY3B1VXNhZ2V8fDAsbWVtb3J5VXNlZDp6bWUocj8uZG9ja2VyPy5tZW1vcnlVc2FnZXx8MCxwKSxtZW1vcnlUb3RhbDp6bWUocj8uZG9ja2VyPy5tZW1vcnlUb3RhbHx8MCxwKSxuZXR3b3JrSW46em1lKHI/LmRvY2tlcj8ubmV0d29ya0lufHwwKSxuZXR3b3JrT3V0OnptZShyPy5kb2NrZXI/Lm5ldHdvcmtPdXR8fDApLHRvcENvbnN1bWVyczpbXX0scGxhdGZvcm1TZXJ2aWNlczpzLmZpbHRlcihnPT5nLnN0YXR1cz09PSJydW5uaW5nInx8Zy5zdGF0dXM9PT0ic3RhcnRpbmcifHxnLnN0YXR1cz09PSJzdG9wcGluZyJ8fGcuaXNDb3JlKS5tYXAoZz0+KHtuYW1lOmcuZGlzcGxheU5hbWUsc3RhdHVzOmcuc3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjpnLnN0YXR1cz09PSJzdGFydGluZyI/IlN0YXJ0aW5nLi4uIjpnLnN0YXR1cz09PSJzdG9wcGluZyI/IlN0b3BwaW5nLi4uIjoiU3RvcHBlZCIscnVubmluZzpnLnN0YXR1cz09PSJydW5uaW5nIn0pKSx0cmFmZmljOntyZXF1ZXN0czpvPy5yZXF1ZXN0Q291bnR8fDAsZXJyb3JzOm8/LmVycm9yQ291bnR8fDAsZXJyb3JQZXJjZW50Om8/LmVycm9yUmF0ZXx8MCxhdmdSZXNwb25zZTpvPy5hdmdSZXNwb25zZVRpbWV8fDAscmVxUGVyTWluOm8/LnJlcXVlc3RzUGVyTWludXRlfHwwLHN0YXR1czJ4eDpjWyIyeHgiXXx8MCxzdGF0dXMzeHg6Y1siM3h4Il18fDAsc3RhdHVzNHh4OmNbIjR4eCJdfHwwLHN0YXR1czV4eDpjWyI1eHgiXXx8MH0scHJveHk6e2h0dHBQb3J0OlN0cmluZyhuPy5wcm94eT8uaHR0cFBvcnR8fDgwKSxodHRwc1BvcnQ6U3RyaW5nKG4/LnByb3h5Py5odHRwc1BvcnR8fDQ0MyksaHR0cEFjdGl2ZTpuPy5wcm94eT8ucnVubmluZ3x8ITEsaHR0cHNBY3RpdmU6bj8ucHJveHk/LnJ1bm5pbmd8fCExLHJvdXRlQ291bnQ6U3RyaW5nKG4/LnByb3h5Py5yb3V0ZXN8fDApfSxjZXJ0aWZpY2F0ZXM6e3ZhbGlkOmgsZXhwaXJpbmc6bSxleHBpcmVkOnZ9LGRuc0NvbmZpZ3VyZWQ6cj8uZG5zPy5jb25maWd1cmVkfHwhMSxhY21lQ29uZmlndXJlZDpyPy5zc2w/LmNvbmZpZ3VyZWR8fCExLHF1aWNrQWN0aW9uczpbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoibHVjaWRlOlBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiQWRkIERvbWFpbiIsaWNvbjoibHVjaWRlOkdsb2JlIn0se2xhYmVsOiJWaWV3IExvZ3MiLGljb246Imx1Y2lkZTpGaWxlVGV4dCJ9XX07cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RGFzaGJvYXJkPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsdXN0ZXIgT3ZlcnZpZXc8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIgLnN0YXRzPSR7Yi5jbHVzdGVyfT48L3N6LXN0YXR1cy1ncmlkLWNsdXN0ZXI+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNlcnZpY2VzICYgUmVzb3VyY2VzPC9oMj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2VzLWdyaWQiPgogICAgICAgICAgICA8c3otcmVzb3VyY2UtdXNhZ2UtY2FyZCAuZGF0YT0ke2IucmVzb3VyY2VVc2FnZX0+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgICAgICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgICAgICAgIC5zZXJ2aWNlcz0ke2IucGxhdGZvcm1TZXJ2aWNlc30KICAgICAgICAgICAgICBAc2VydmljZS1jbGljaz0ke2c9PnRoaXMuaGFuZGxlUGxhdGZvcm1TZXJ2aWNlQ2xpY2soZyl9CiAgICAgICAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2VzLWNhcmQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmV0d29yayAmIFRyYWZmaWM8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLW5ldHdvcmsKICAgICAgICAgICAgLnRyYWZmaWM9JHtiLnRyYWZmaWN9CiAgICAgICAgICAgIC5wcm94eT0ke2IucHJveHl9CiAgICAgICAgICAgIC5jZXJ0aWZpY2F0ZXM9JHtiLmNlcnRpZmljYXRlc30KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLW5ldHdvcms+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkluZnJhc3RydWN0dXJlPC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1pbmZyYQogICAgICAgICAgICA/ZG5zQ29uZmlndXJlZD0ke2IuZG5zQ29uZmlndXJlZH0KICAgICAgICAgICAgP2FjbWVDb25maWd1cmVkPSR7Yi5hY21lQ29uZmlndXJlZH0KICAgICAgICAgICAgLmFjdGlvbnM9JHtiLnF1aWNrQWN0aW9uc30KICAgICAgICAgICAgQGFjdGlvbi1jbGljaz0ke2c9PnRoaXMuaGFuZGxlUXVpY2tBY3Rpb24oZyl9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVRdWlja0FjdGlvbihyKXtsZXQgYT1yLmRldGFpbD8uYWN0aW9ufHxyLmRldGFpbD8ubGFiZWw7YT09PSJEZXBsb3kgU2VydmljZSI/YzEubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIik6YT09PSJBZGQgRG9tYWluIiYmYzEubmF2aWdhdGVUb1ZpZXcoIm5ldHdvcmsiKX1oYW5kbGVQbGF0Zm9ybVNlcnZpY2VDbGljayhyKXtsZXQgYT1yLmRldGFpbD8ubmFtZSxzPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbmQobj0+bi5kaXNwbGF5TmFtZT09PWEpO3MmJihHdC5zZXRTdGF0ZSh7Li4uR3QuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOnN9KSxjMS5uYXZpZ2F0ZVRvVmlldygic2VydmljZXMiKSl9fTtmMj0kaShabmEpLFlndD1uZXcgV2Vha01hcCxLZ3Q9bmV3IFdlYWtNYXAsWmd0PW5ldyBXZWFrTWFwLER0KGYyLDQsInN5c3RlbVN0YXRlIixLbmEsX2QsWWd0KSxEdChmMiw0LCJzZXJ2aWNlc1N0YXRlIixZbmEsX2QsS2d0KSxEdChmMiw0LCJuZXR3b3JrU3RhdGUiLEduYSxfZCxaZ3QpLF9kPUR0KGYyLDAsIk9iVmlld0Rhc2hib2FyZCIsUW5hLF9kKSxpKF9kLCJPYlZpZXdEYXNoYm9hcmQiKSxnaShfZCwic3R5bGVzIixbb3IuZGVmYXVsdFN0eWxlcyxTbiwkcmAKICAgICAgLmRhc2hib2FyZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMCAwIDEycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlcy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLnNlcnZpY2VzLWdyaWQgPiAqIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgewogICAgICAgIC5zZXJ2aWNlcy1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdKSxYZShmMiwxLF9kKTtRZ3Q9X2R9KTt2YXIgcG9hPXt9O1ZlKHBvYSx7T2JWaWV3QXBwU3RvcmU6KCk9PmRidH0pO3ZhciBKbmEsZW9hLHRvYSxyb2EsYW9hLGlvYSxzb2Esbm9hLG9vYSxsb2EsY29hLGRvYSx1b2EsdGEsSmd0LGVidCx0YnQscmJ0LGFidCxpYnQsc2J0LG5idCxvYnQsbGJ0LGNidCxNbixkYnQsZm9hPXUoYXN5bmMoKT0+e28xKCk7UmMoKTthd2FpdCBwMigpO0d3KCk7YXdhaXQgVGcoKTtObygpO3VvYT1bdmkoIm9iLXZpZXctYXBwc3RvcmUiKV07TW49Y2xhc3MgTW4gZXh0ZW5kcyhkb2E9eWksY29hPVtadCgpXSxsb2E9W1p0KCldLG9vYT1bWnQoKV0sbm9hPVtadCgpXSxzb2E9W1p0KCldLGlvYT1bWnQoKV0sYW9hPVtadCgpXSxyb2E9W1p0KCldLHRvYT1bWnQoKV0sZW9hPVtadCgpXSxKbmE9W1p0KCldLGRvYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsSmd0LFhlKHRhLDgsdGhpcyx7YXBwczpbXSx1cGdyYWRlYWJsZVNlcnZpY2VzOltdLHVwZ3JhZGVPcGVyYXRpb25zOltdfSkpLFhlKHRhLDExLHRoaXMpO3RyKHRoaXMsZWJ0LFhlKHRhLDEyLHRoaXMsImdyaWQiKSksWGUodGEsMTUsdGhpcyk7dHIodGhpcyx0YnQsWGUodGEsMTYsdGhpcyxudWxsKSksWGUodGEsMTksdGhpcyk7dHIodGhpcyxyYnQsWGUodGEsMjAsdGhpcyxudWxsKSksWGUodGEsMjMsdGhpcyk7dHIodGhpcyxhYnQsWGUodGEsMjQsdGhpcyxudWxsKSksWGUodGEsMjcsdGhpcyk7dHIodGhpcyxpYnQsWGUodGEsMjgsdGhpcywiIikpLFhlKHRhLDMxLHRoaXMpO3RyKHRoaXMsc2J0LFhlKHRhLDMyLHRoaXMsW10pKSxYZSh0YSwzNSx0aGlzKTt0cih0aGlzLG5idCxYZSh0YSwzNix0aGlzLCIiKSksWGUodGEsMzksdGhpcyk7dHIodGhpcyxvYnQsWGUodGEsNDAsdGhpcywiIikpLFhlKHRhLDQzLHRoaXMpO3RyKHRoaXMsbGJ0LFhlKHRhLDQ0LHRoaXMsITEpKSxYZSh0YSw0Nyx0aGlzKTt0cih0aGlzLGNidCxYZSh0YSw0OCx0aGlzLCExKSksWGUodGEsNTEsdGhpcyk7bGV0IHI9bDEuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5hcHBTdG9yZVN0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbbDEuZGlzcGF0Y2hBY3Rpb24oRm5hLG51bGwpLGwxLmRpc3BhdGNoQWN0aW9uKENtZSxudWxsKV0pfXJlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3PT09ImRldGFpbCI/dGhpcy5yZW5kZXJEZXRhaWxWaWV3KCk6dGhpcy5yZW5kZXJHcmlkVmlldygpfXJlbmRlckdyaWRWaWV3KCl7bGV0IHI9dGhpcy5hcHBTdG9yZVN0YXRlLmFwcHMubWFwKGE9Pih7aWQ6YS5pZCxuYW1lOmEubmFtZSxkZXNjcmlwdGlvbjphLmRlc2NyaXB0aW9uLGNhdGVnb3J5OmEuY2F0ZWdvcnksaWNvbk5hbWU6YS5pY29uTmFtZSxpY29uVXJsOmEuaWNvblVybCxpbWFnZToiIixwb3J0OjB9KSk7cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QXBwIFN0b3JlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgJHt0aGlzLnJlbmRlclVwZ3JhZGVPcGVyYXRpb25zKCl9CiAgICAgICR7ci5sZW5ndGg9PT0wP1FlYDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+TG9hZGluZyBhcHAgdGVtcGxhdGVzLi4uPC9kaXY+YDpRZWAKICAgICAgICAgIDxzei1hcHAtc3RvcmUtdmlldwogICAgICAgICAgICAuYXBwcz0ke3J9CiAgICAgICAgICAgIEB2aWV3LWFwcD0ke2E9PnRoaXMuaGFuZGxlVmlld0RldGFpbHMoYSl9CiAgICAgICAgICAgIEBkZXBsb3ktYXBwPSR7YT0+dGhpcy5oYW5kbGVBcHBDbGljayhhKX0KICAgICAgICAgID48L3N6LWFwcC1zdG9yZS12aWV3PgogICAgICAgIGB9CiAgICBgfXJlbmRlclVwZ3JhZGVPcGVyYXRpb25zKCl7bGV0IHI9dGhpcy5hcHBTdG9yZVN0YXRlLnVwZ3JhZGVPcGVyYXRpb25zLmZpbHRlcihhPT5hLnN0YXR1cz09PSJydW5uaW5nInx8YS5zdGF0dXM9PT0iZmFpbGVkIikuc2xpY2UoMCwzKTtyZXR1cm4gci5sZW5ndGg9PT0wPyIiOlFlYAogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+UmVjZW50IFVwZ3JhZGUgT3BlcmF0aW9uczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RwcmludC1saXN0Ij4KICAgICAgICAgICR7ci5tYXAoYT0+UWVgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RwcmludC1pdGVtIj4KICAgICAgICAgICAgICA8c3Bhbj4ke2Euc2VydmljZU5hbWV9OiAke2EuZnJvbVZlcnNpb259ICZyYXJyOyAke2EudGFyZ2V0VmVyc2lvbn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3RwcmludC1tZXRhIj4ke2Euc3RhdHVzfSAvICR7YS5zdGVwfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRldGFpbFZpZXcoKXtpZih0aGlzLmxvYWRpbmcpcmV0dXJuIFFlYAogICAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+TG9hZGluZyBhcHAgZGV0YWlscy4uLjwvZGl2PgogICAgICBgO2xldCByPXRoaXMuc2VsZWN0ZWRBcHAsYT10aGlzLnNlbGVjdGVkQXBwTWV0YSxzPXRoaXMuc2VsZWN0ZWRBcHBDb25maWc7aWYoIXJ8fCFzKXJldHVybiBRZWAKICAgICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QXBwIFN0b3JlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPkFwcCBub3QgZm91bmQuPC9kaXY+CiAgICAgIGA7bGV0IG49cy5wbGF0Zm9ybVJlcXVpcmVtZW50c3x8e30sbz1PYmplY3QudmFsdWVzKG4pLnNvbWUoQm9vbGVhbiksbD17bW9uZ29kYjoiTW9uZ29EQiIsczM6IlMzIChNaW5JTykiLGNsaWNraG91c2U6IkNsaWNrSG91c2UiLHJlZGlzOiJSZWRpcyIsbWFyaWFkYjoiTWFyaWFEQiJ9O3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkFwcCBTdG9yZTwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTZweDsiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0iZ3JpZCJ9fT4KICAgICAgICAmbGFycjsgQmFjayB0byBBcHAgU3RvcmUKICAgICAgPC9idXR0b24+CgogICAgICA8IS0tIEhlYWRlciAtLT4KICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWljb24iPiR7KHIubmFtZXx8Ij8iKVswXS50b1VwcGVyQ2FzZSgpfTwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZmxleDogMTsiPgogICAgICAgICAgICA8aDIgY2xhc3M9ImRldGFpbC10aXRsZSI+JHtyLm5hbWV9PC9oMj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1jYXRlZ29yeSI+JHtyLmNhdGVnb3J5fTwvc3Bhbj4KICAgICAgICAgICAgPHAgY2xhc3M9ImRldGFpbC1kZXNjcmlwdGlvbiI+JHtyLmRlc2NyaXB0aW9ufTwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLW1ldGEiPgogICAgICAgICAgICAgICR7YT8ubWFpbnRhaW5lcj9RZWA8c3Bhbj5NYWludGFpbmVyOiA8c3Ryb25nPiR7YS5tYWludGFpbmVyfTwvc3Ryb25nPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICR7YT8ubGlua3M/T2JqZWN0LmVudHJpZXMoYS5saW5rcykubWFwKChbYyxkXSk9PlFlYDxhIGhyZWY9IiR7ZH0iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4ke2N9PC9hPmApOiIifQogICAgICAgICAgICAgICR7ci50YWdzPy5sZW5ndGg/UWVgPHNwYW4+VGFnczogJHtyLnRhZ3Muam9pbigiLCAiKX08L3NwYW4+YDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIFBsYXRmb3JtIFNlcnZpY2VzIC0tPgogICAgICAke28/UWVgCiAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+UGxhdGZvcm0gU2VydmljZXM8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXMobikuZmlsdGVyKChbYyxkXSk9PmQpLm1hcCgoW2NdKT0+UWVgPHNwYW4gY2xhc3M9ImJhZGdlIj4ke2xbY118fGN9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsgbWFyZ2luLXRvcDogOHB4OyI+CiAgICAgICAgICAgIFRoZXNlIHBsYXRmb3JtIHNlcnZpY2VzIHdpbGwgYmUgYXV0b21hdGljYWxseSBwcm92aXNpb25lZCB3aGVuIHlvdSBkZXBsb3kuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgICR7dGhpcy5yZW5kZXJEZXBsb3ltZW50Rm9vdHByaW50KHMpfQoKICAgICAgPCEtLSBWZXJzaW9uICYgSW1hZ2UgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5WZXJzaW9uPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1yb3ciPgogICAgICAgICAgPHNlbGVjdCBjbGFzcz0idmVyc2lvbi1zZWxlY3QiIEBjaGFuZ2U9JHtjPT50aGlzLmhhbmRsZVZlcnNpb25DaGFuZ2UoYy50YXJnZXQudmFsdWUpfT4KICAgICAgICAgICAgJHsoYT8udmVyc2lvbnN8fFt0aGlzLnNlbGVjdGVkVmVyc2lvbl0pLm1hcChjPT5RZWA8b3B0aW9uIHZhbHVlPSIke2N9IiA/c2VsZWN0ZWQ9JHtjPT09dGhpcy5zZWxlY3RlZFZlcnNpb259PiR7Y30ke2M9PT1yLmxhdGVzdFZlcnNpb24/IiAobGF0ZXN0KSI6IiJ9PC9vcHRpb24+YCl9CiAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS10YWciPiR7cy5pbWFnZX08L3NwYW4+CiAgICAgICAgICAke3MubWluT25lYm94VmVyc2lvbj9RZWA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7Ij5SZXF1aXJlcyBvbmVib3ggJmdlOyAke3MubWluT25lYm94VmVyc2lvbn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEVudmlyb25tZW50IFZhcmlhYmxlcyAtLT4KICAgICAgJHt0aGlzLmVkaXRhYmxlRW52VmFycy5sZW5ndGg+MD9RZWAKICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5FbnZpcm9ubWVudCBWYXJpYWJsZXM8L2Rpdj4KICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZW52LXRhYmxlIj4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDMwJTsiPlZhcmlhYmxlPC90aD4KICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDQwJTsiPlZhbHVlPC90aD4KICAgICAgICAgICAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICR7dGhpcy5lZGl0YWJsZUVudlZhcnMubWFwKChjLGQpPT5RZWAKICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnYta2V5Ij4ke2Mua2V5fTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAke2MucmVxdWlyZWQ/UWVgPHNwYW4gY2xhc3M9ImVudi1iYWRnZSByZXF1aXJlZCI+cmVxdWlyZWQ8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAke2MucGxhdGZvcm1JbmplY3RlZD9RZWA8c3BhbiBjbGFzcz0iZW52LWJhZGdlIGF1dG8iPmF1dG88L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImVudi1pbnB1dCIKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHtjLnZhbHVlfQogICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7Yy5wbGF0Zm9ybUluamVjdGVkfHwhdGhpcy5kZXBsb3lNb2RlfQogICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHtjLnBsYXRmb3JtSW5qZWN0ZWQ/IkF1dG8taW5qZWN0ZWQgYnkgcGxhdGZvcm0iOiJFbnRlciB2YWx1ZS4uLiJ9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtmPT50aGlzLmhhbmRsZUVudlZhckNoYW5nZShkLGYudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImVudi1kZXNjIj4ke2MuZGVzY3JpcHRpb258fCIifTwvc3Bhbj48L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICA8IS0tIERlcGxveSBzZWN0aW9uIChvbmx5IGluIGRlcGxveSBtb2RlKSBvciBhY3Rpb24gYnV0dG9uICh2aWV3IG1vZGUpIC0tPgogICAgICAke3RoaXMuZGVwbG95TW9kZT9RZWAKICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5TZXJ2aWNlIE5hbWU8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0ibmFtZS1pbnB1dCIKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZXJ2aWNlTmFtZX0KICAgICAgICAgICAgcGxhY2Vob2xkZXI9ImUuZy4gbXktZ2hvc3QtYmxvZyIKICAgICAgICAgICAgQGlucHV0PSR7Yz0+e3RoaXMuc2VydmljZU5hbWU9Yy50YXJnZXQudmFsdWV9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA2cHg7Ij4KICAgICAgICAgICAgTG93ZXJjYXNlIGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zIG9ubHkuCiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIiBzdHlsZT0ibWFyZ2luLXRvcDogMThweDsiPkRvbWFpbjwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIGNsYXNzPSJuYW1lLWlucHV0IgogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlcnZpY2VEb21haW59CiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJlLmcuIGNsb3VkbHkuZXhhbXBsZS5jb20iCiAgICAgICAgICAgIEBpbnB1dD0ke2M9PnRoaXMuaGFuZGxlU2VydmljZURvbWFpbkNoYW5nZShjLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDZweDsiPgogICAgICAgICAgICBPbmVib3ggcm91dGVzIHRoaXMgZG9tYWluIHRvIHRoZSBkZXBsb3llZCBhcHAuIFJlcXVpcmVkIHdoZW4gdGhlIGFwcCB1c2VzIFNFUlZJQ0VfRE9NQUlOLgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnJlbmRlckRlcGxveUNvbmZpcm1hdGlvbihzKX0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXJvdyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9ImdyaWQifX0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVwbG95KCl9PgogICAgICAgICAgICAgIERlcGxveSB2JHt0aGlzLnNlbGVjdGVkVmVyc2lvbn0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDpRZWAKICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXJvdyIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0iZ3JpZCJ9fT4KICAgICAgICAgICAgJmxhcnI7IEJhY2sKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBAY2xpY2s9JHsoKT0+e3RoaXMuZGVwbG95TW9kZT0hMH19PgogICAgICAgICAgICBEZXBsb3kgdGhpcyBBcHAKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgfQogICAgYH1yZW5kZXJEZXBsb3ltZW50Rm9vdHByaW50KHIpe2xldCBhPXRoaXMuZ2V0Q29uZmlnVm9sdW1lcyhyKSxzPXIucHVibGlzaGVkUG9ydHN8fFtdO3JldHVybiBhLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MD8iIjpRZWAKICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPkRlcGxveW1lbnQgRm9vdHByaW50PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWxpc3QiPgogICAgICAgICAgJHthLm1hcChuPT5RZWAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuPlZvbHVtZSBtb3VudDwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdHByaW50LW1ldGEiPgogICAgICAgICAgICAgICAgJHtuLnNvdXJjZXx8bi5uYW1lfHwibWFuYWdlZCB2b2x1bWUifToke24ubW91bnRQYXRofSR7bi5yZWFkT25seT8iOnJvIjoiIn0KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgICAke3MubWFwKG49PlFlYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4+UHVibGlzaGVkIGhvc3QgcG9ydDwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdHByaW50LW1ldGEiPiR7dGhpcy5mb3JtYXRQdWJsaXNoZWRQb3J0KG4pfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3MubGVuZ3RoPjA/UWVgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvc3VyZS13YXJuaW5nIj4KICAgICAgICAgICAgVGhpcyBhcHAgcHVibGlzaGVzIHJhdyBob3N0IHBvcnRzIG91dHNpZGUgdGhlIEhUVFAgcHJveHkuIENvbmZpcm0gZmlyZXdhbGwgYW5kIG5ldHdvcmsgcG9saWN5IGJlZm9yZSBkZXBsb3lpbmcuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGVwbG95Q29uZmlybWF0aW9uKHIpe2xldCBhPXRoaXMuZ2V0Q29uZmlnVm9sdW1lcyhyKSxzPXIucHVibGlzaGVkUG9ydHN8fFtdO3JldHVybiBhLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MD8iIjpRZWAKICAgICAgPGRpdiBjbGFzcz0iZXhwb3N1cmUtd2FybmluZyI+CiAgICAgICAgRGVwbG95aW5nIHRoaXMgYXBwIHdpbGwgY3JlYXRlICR7YS5sZW5ndGh9IHBlcnNpc3RlbnQgdm9sdW1lKHMpCiAgICAgICAgJHtzLmxlbmd0aD4wP1FlYGFuZCBleHBvc2UgJHtzLmxlbmd0aH0gaG9zdCBwb3J0IGRlY2xhcmF0aW9uKHMpYDoiIn0uCiAgICAgIDwvZGl2PgogICAgYH1nZXRDb25maWdWb2x1bWVzKHIpe3JldHVybihyLnZvbHVtZXN8fFtdKS5tYXAoYT0+dHlwZW9mIGE9PSJzdHJpbmciP3ttb3VudFBhdGg6YX06YSkuZmlsdGVyKGE9PiEhYS5tb3VudFBhdGgpfWZvcm1hdFB1Ymxpc2hlZFBvcnQocil7bGV0IGE9ci5wcm90b2NvbHx8InRjcCIscz1yLnRhcmdldFBvcnRFbmQ/YCR7ci50YXJnZXRQb3J0fS0ke3IudGFyZ2V0UG9ydEVuZH1gOlN0cmluZyhyLnRhcmdldFBvcnQpLG49ci5wdWJsaXNoZWRQb3J0fHxyLnRhcmdldFBvcnQsbz1yLnB1Ymxpc2hlZFBvcnRFbmR8fChyLnRhcmdldFBvcnRFbmQ/bisoci50YXJnZXRQb3J0RW5kLXIudGFyZ2V0UG9ydCk6dm9pZCAwKSxsPW8/YCR7bn0tJHtvfWA6U3RyaW5nKG4pO3JldHVybmAke3IuaG9zdElwfHwiMC4wLjAuMCJ9OiR7bH0vJHthfSAtPiAke3N9LyR7YX1gfWFzeW5jIGhhbmRsZVZpZXdEZXRhaWxzKHIpe2xldCBhPXIuZGV0YWlsPy5hcHA7aWYoIWEpcmV0dXJuO2xldCBzPXRoaXMuYXBwU3RvcmVTdGF0ZS5hcHBzLmZpbmQobj0+bi5pZD09PWEuaWQpO3MmJih0aGlzLmRlcGxveU1vZGU9ITEsdGhpcy5zZWxlY3RlZEFwcD1zLHRoaXMuc2VsZWN0ZWRWZXJzaW9uPXMubGF0ZXN0VmVyc2lvbix0aGlzLnNlcnZpY2VOYW1lPXMuaWQsdGhpcy5sb2FkaW5nPSEwLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIsYXdhaXQgdGhpcy5mZXRjaFZlcnNpb25Db25maWcocy5pZCxzLmxhdGVzdFZlcnNpb24pLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgaGFuZGxlQXBwQ2xpY2socil7bGV0IGE9ci5kZXRhaWw/LmFwcDtpZighYSlyZXR1cm47bGV0IHM9dGhpcy5hcHBTdG9yZVN0YXRlLmFwcHMuZmluZChuPT5uLmlkPT09YS5pZCk7cyYmKHRoaXMuZGVwbG95TW9kZT0hMCx0aGlzLnNlbGVjdGVkQXBwPXMsdGhpcy5zZWxlY3RlZFZlcnNpb249cy5sYXRlc3RWZXJzaW9uLHRoaXMuc2VydmljZU5hbWU9cy5pZCx0aGlzLmxvYWRpbmc9ITAsdGhpcy5jdXJyZW50Vmlldz0iZGV0YWlsIixhd2FpdCB0aGlzLmZldGNoVmVyc2lvbkNvbmZpZyhzLmlkLHMubGF0ZXN0VmVyc2lvbiksdGhpcy5sb2FkaW5nPSExKX1hc3luYyBoYW5kbGVWZXJzaW9uQ2hhbmdlKHIpeyF0aGlzLnNlbGVjdGVkQXBwfHxyPT09dGhpcy5zZWxlY3RlZFZlcnNpb258fCh0aGlzLnNlbGVjdGVkVmVyc2lvbj1yLHRoaXMubG9hZGluZz0hMCxhd2FpdCB0aGlzLmZldGNoVmVyc2lvbkNvbmZpZyh0aGlzLnNlbGVjdGVkQXBwLmlkLHIpLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgZmV0Y2hWZXJzaW9uQ29uZmlnKHIsYSl7dHJ5e2xldCBzPUdpLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoIXMpcmV0dXJuO2xldCBvPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRBcHBTdG9yZUNvbmZpZyIpLmZpcmUoe2lkZW50aXR5OnMsYXBwSWQ6cix2ZXJzaW9uOmF9KTt0aGlzLnNlbGVjdGVkQXBwTWV0YT1vLmFwcE1ldGEsdGhpcy5zZWxlY3RlZEFwcENvbmZpZz1vLmNvbmZpZyx0aGlzLmVkaXRhYmxlRW52VmFycz0oby5jb25maWcuZW52VmFyc3x8W10pLm1hcChsPT4oe2tleTpsLmtleSx2YWx1ZTpsLnZhbHVlfHwiIixkZXNjcmlwdGlvbjpsLmRlc2NyaXB0aW9ufHwiIixyZXF1aXJlZDpsLnJlcXVpcmVkLHBsYXRmb3JtSW5qZWN0ZWQ6bC52YWx1ZT8uaW5jbHVkZXMoIiR7Iil8fCExfSkpLHRoaXMuc2VydmljZURvbWFpbj0iIn1jYXRjaChzKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggYXBwIGNvbmZpZzoiLHMpfX1oYW5kbGVFbnZWYXJDaGFuZ2UocixhKXtsZXQgcz1bLi4udGhpcy5lZGl0YWJsZUVudlZhcnNdO3Nbcl09ey4uLnNbcl0sdmFsdWU6YX0sdGhpcy5lZGl0YWJsZUVudlZhcnM9c31oYW5kbGVTZXJ2aWNlRG9tYWluQ2hhbmdlKHIpe3RoaXMuc2VydmljZURvbWFpbj10aGlzLm5vcm1hbGl6ZURvbWFpbihyKX1ub3JtYWxpemVEb21haW4ocil7cmV0dXJuIHIudHJpbSgpLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpLnJlcGxhY2UoL1wvJC8sIiIpfWFzeW5jIGhhbmRsZURlcGxveSgpe2xldCByPXRoaXMuc2VsZWN0ZWRBcHAsYT10aGlzLnNlbGVjdGVkQXBwQ29uZmlnO2lmKCFyfHwhYSlyZXR1cm47bGV0IHM9dGhpcy5lZGl0YWJsZUVudlZhcnMuZmlsdGVyKGw9PmwucmVxdWlyZWQmJiFsLnBsYXRmb3JtSW5qZWN0ZWQmJiFsLnZhbHVlLnRyaW0oKSk7aWYocy5sZW5ndGg+MCl7Y29uc29sZS5lcnJvcihgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6ICR7cy5tYXAobD0+bC5rZXkpLmpvaW4oIiwgIil9YCk7cmV0dXJufWlmKChhLmVudlZhcnN8fFtdKS5zb21lKGw9PmwudmFsdWU/LmluY2x1ZGVzKCIke1NFUlZJQ0VfRE9NQUlOfSIpKSYmIXRoaXMuc2VydmljZURvbWFpbil7Y29uc29sZS5lcnJvcigiQSBkb21haW4gaXMgcmVxdWlyZWQgZm9yIHRoaXMgYXBwLiIpO3JldHVybn1sZXQgbz17fTtmb3IobGV0IGwgb2YgdGhpcy5lZGl0YWJsZUVudlZhcnMpbC5rZXkmJmwudmFsdWUmJihvW2wua2V5XT1sLnZhbHVlKTt0cnl7bGV0IGw9R2kuZ2V0U3RhdGUoKS5pZGVudGl0eTtpZighbClyZXR1cm47YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImluc3RhbGxBcHBTdG9yZUFwcCIpLmZpcmUoe2lkZW50aXR5OmwsaW5zdGFsbDp7YXBwSWQ6ci5pZCx2ZXJzaW9uOnRoaXMuc2VsZWN0ZWRWZXJzaW9uLHNlcnZpY2VOYW1lOnRoaXMuc2VydmljZU5hbWV8fHIuaWQsZG9tYWluOnRoaXMuc2VydmljZURvbWFpbnx8dm9pZCAwLGVudlZhcnM6b319KSxzZXRUaW1lb3V0KCgpPT57YzEubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LDApfWNhdGNoKGwpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZXBsb3kgZnJvbSBBcHAgU3RvcmU6IixsKX19fTt0YT0kaShkb2EpLEpndD1uZXcgV2Vha01hcCxlYnQ9bmV3IFdlYWtNYXAsdGJ0PW5ldyBXZWFrTWFwLHJidD1uZXcgV2Vha01hcCxhYnQ9bmV3IFdlYWtNYXAsaWJ0PW5ldyBXZWFrTWFwLHNidD1uZXcgV2Vha01hcCxuYnQ9bmV3IFdlYWtNYXAsb2J0PW5ldyBXZWFrTWFwLGxidD1uZXcgV2Vha01hcCxjYnQ9bmV3IFdlYWtNYXAsRHQodGEsNCwiYXBwU3RvcmVTdGF0ZSIsY29hLE1uLEpndCksRHQodGEsNCwiY3VycmVudFZpZXciLGxvYSxNbixlYnQpLER0KHRhLDQsInNlbGVjdGVkQXBwIixvb2EsTW4sdGJ0KSxEdCh0YSw0LCJzZWxlY3RlZEFwcE1ldGEiLG5vYSxNbixyYnQpLER0KHRhLDQsInNlbGVjdGVkQXBwQ29uZmlnIixzb2EsTW4sYWJ0KSxEdCh0YSw0LCJzZWxlY3RlZFZlcnNpb24iLGlvYSxNbixpYnQpLER0KHRhLDQsImVkaXRhYmxlRW52VmFycyIsYW9hLE1uLHNidCksRHQodGEsNCwic2VydmljZU5hbWUiLHJvYSxNbixuYnQpLER0KHRhLDQsInNlcnZpY2VEb21haW4iLHRvYSxNbixvYnQpLER0KHRhLDQsImxvYWRpbmciLGVvYSxNbixsYnQpLER0KHRhLDQsImRlcGxveU1vZGUiLEpuYSxNbixjYnQpLE1uPUR0KHRhLDAsIk9iVmlld0FwcFN0b3JlIix1b2EsTW4pLGkoTW4sIk9iVmlld0FwcFN0b3JlIiksZ2koTW4sInN0eWxlcyIsW29yLmRlZmF1bHRTdHlsZXMsU24sJHJgCiAgICAgIC5kZXRhaWwtY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgIzA5MDkwYik7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtaWNvbiB7CiAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgaGVpZ2h0OiA2NHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIG1hcmdpbjogMCAwIDRweCAwOwogICAgICB9CgogICAgICAuZGV0YWlsLWNhdGVnb3J5IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbWV0YSBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAuZGV0YWlsLW1ldGEgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpOwogICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgfQoKICAgICAgLnZlcnNpb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAudmVyc2lvbi1zZWxlY3QgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTMsICMzZjNmNDYpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmltYWdlLXRhZyB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAuZW52LXRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICB9CgogICAgICAuZW52LXRhYmxlIHRoIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsKICAgICAgICBwYWRkaW5nOiA4cHggOHB4IDhweCAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgfQoKICAgICAgLmVudi10YWJsZSB0ZCB7CiAgICAgICAgcGFkZGluZzogNnB4IDhweCA2cHggMDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAuZW52LWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmVudi1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5lbnYta2V5IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNiwgI2Q0ZDRkOCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmVudi1kZXNjIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOwogICAgICB9CgogICAgICAuZW52LWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDsKICAgICAgfQoKICAgICAgLmVudi1iYWRnZS5yZXF1aXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgIH0KCiAgICAgIC5lbnYtYmFkZ2UuYXV0byB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4xNSk7CiAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgIH0KCiAgICAgIC5uYW1lLWlucHV0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICB9CgogICAgICAuYnRuIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5idG46aG92ZXIgeyBvcGFjaXR5OiAwLjk7IH0KCiAgICAgIC5idG4tcHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTAsICMwOTA5MGIpOwogICAgICB9CgogICAgICAuYnRuLXNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTYsICNkNGQ0ZDgpOwogICAgICB9CgogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgIH0KCiAgICAgIC5mb290cHJpbnQtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RwcmludC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTYsICNkNGQ0ZDgpOwogICAgICB9CgogICAgICAuZm9vdHByaW50LW1ldGEgewogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZXhwb3N1cmUtd2FybmluZyB7CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYF0pLFhlKHRhLDEsTW4pO2RidD1Nbn0pO3ZhciBacWEsX21lLGhvYT11KCgpPT57bzEoKTtHdygpO1pxYT1IaC5kb210b29scyxfbWU9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLnNlcnZpY2VOYW1lPWU7dGhpcy5pZGVudGl0eT1yLHRoaXMucmVnaXN0ZXJQcm9jZXNzU29ja2V0SGFuZGxlcnMoKX1zZXJ2aWNlTmFtZTtzdGF0aWN7aSh0aGlzLCJCYWNrZW5kRXhlY3V0aW9uRW52aXJvbm1lbnQiKX10eXBlPSJiYWNrZW5kIjtfcmVhZHk9ITE7aWRlbnRpdHk7cHJvY2Vzc1JvdXRlcj1uZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSb3V0ZXI7cHJvY2Vzc1NvY2tldD1udWxsO3Byb2Nlc3NTb2NrZXRQcm9taXNlPW51bGw7cHJvY2Vzc1N0YXRlcz1uZXcgTWFwO2dldCByZWFkeSgpe3JldHVybiB0aGlzLl9yZWFkeX1hc3luYyBpbml0KCl7aWYoIShhd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VFeGlzdHMiLHtwYXRoOiIvIn0pKS5leGlzdHMpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgYWNjZXNzIGNvbnRhaW5lciBmaWxlc3lzdGVtIGZvciBzZXJ2aWNlOiAke3RoaXMuc2VydmljZU5hbWV9YCk7dGhpcy5fcmVhZHk9ITB9YXN5bmMgZGVzdHJveSgpe2ZvcihsZXQgZSBvZiBBcnJheS5mcm9tKHRoaXMucHJvY2Vzc1N0YXRlcy5rZXlzKCkpKWF3YWl0IHRoaXMua2lsbFByb2Nlc3MoZSkuY2F0Y2goKCk9Pnt9KTthd2FpdCB0aGlzLnByb2Nlc3NTb2NrZXQ/LnN0b3AoKS5jYXRjaCgoKT0+e30pLHRoaXMucHJvY2Vzc1NvY2tldD1udWxsLHRoaXMucHJvY2Vzc1NvY2tldFByb21pc2U9bnVsbCx0aGlzLl9yZWFkeT0hMX1hc3luYyByZWFkRmlsZShlKXtyZXR1cm4oYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlUmVhZEZpbGUiLHtwYXRoOmV9KSkuY29udGVudH1hc3luYyB3cml0ZUZpbGUoZSxyKXthd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VXcml0ZUZpbGUiLHtwYXRoOmUsY29udGVudDpyfSl9YXN5bmMgcmVhZERpcihlKXtyZXR1cm4oYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlUmVhZERpciIse3BhdGg6ZX0pKS5lbnRyaWVzfWFzeW5jIG1rZGlyKGUpe2F3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZU1rZGlyIix7cGF0aDplfSl9YXN5bmMgcm0oZSxyKXthd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VSbSIse3BhdGg6ZSxyZWN1cnNpdmU6cj8ucmVjdXJzaXZlfSl9YXN5bmMgZXhpc3RzKGUpe3JldHVybihhd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VFeGlzdHMiLHtwYXRoOmV9KSkuZXhpc3RzfXdhdGNoKGUscixhKXtyZXR1cm57c3RvcDppKCgpPT57fSwic3RvcCIpfX1hc3luYyBzcGF3bihlLHIpe2xldCBhPWF3YWl0IHRoaXMuZW5zdXJlUHJvY2Vzc1NvY2tldCgpLHM9Y3J5cHRvLnJhbmRvbVVVSUQoKTthd2FpdCBhLnNldFRhZyhgd29ya3NwYWNlUHJvY2Vzczoke3N9YCwhMCk7bGV0IG49aSgoKT0+e30sInJlc29sdmVFeGl0Iiksbz1uZXcgUHJvbWlzZShkPT57bj1kfSksbD1uZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0OmkoZD0+e3RoaXMucHJvY2Vzc1N0YXRlcy5zZXQocyx7b3V0cHV0Q29udHJvbGxlcjpkLHJlc29sdmVFeGl0Om59KX0sInN0YXJ0IiksY2FuY2VsOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMua2lsbFByb2Nlc3MocykuY2F0Y2goKCk9Pnt9KX0sImNhbmNlbCIpfSk7dHJ5e2F3YWl0IGEuY3JlYXRlVHlwZWRSZXF1ZXN0KCJ3b3Jrc3BhY2VTdGFydFByb2Nlc3MiKS5maXJlKHtpZGVudGl0eTp0aGlzLmlkZW50aXR5LHNlcnZpY2VOYW1lOnRoaXMuc2VydmljZU5hbWUscHJvY2Vzc0lkOnMsY29tbWFuZDplLGFyZ3M6cn0pfWNhdGNoKGQpe2xldCBmPXRoaXMucHJvY2Vzc1N0YXRlcy5nZXQocyk7dGhpcy5wcm9jZXNzU3RhdGVzLmRlbGV0ZShzKSxhd2FpdCBhLnJlbW92ZVRhZyhgd29ya3NwYWNlUHJvY2Vzczoke3N9YCkuY2F0Y2goKCk9Pnt9KTt0cnl7Zj8ub3V0cHV0Q29udHJvbGxlci5lcnJvcihkKX1jYXRjaHt9dGhyb3cgZH1sZXQgYz1uZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOmkoYXN5bmMgZD0+e2F3YWl0IGEuY3JlYXRlVHlwZWRSZXF1ZXN0KCJ3b3Jrc3BhY2VQcm9jZXNzSW5wdXQiKS5maXJlKHtpZGVudGl0eTp0aGlzLmlkZW50aXR5LHByb2Nlc3NJZDpzLGlucHV0OmR9KX0sIndyaXRlIiksYWJvcnQ6aShhc3luYygpPT57YXdhaXQgdGhpcy5raWxsUHJvY2VzcyhzKS5jYXRjaCgoKT0+e30pfSwiYWJvcnQiKX0pO3JldHVybntvdXRwdXQ6bCxpbnB1dDpjLGV4aXQ6byxraWxsOmkoKCk9Pnt0aGlzLmtpbGxQcm9jZXNzKHMpfSwia2lsbCIpfX1hc3luYyBnZXRTaGVsbENvbW1hbmQoKXtyZXR1cm4oYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlR2V0U2hlbGxDb21tYW5kIix7fSkpLnNoZWxsQ29tbWFuZH1yZWdpc3RlclByb2Nlc3NTb2NrZXRIYW5kbGVycygpe3RoaXMucHJvY2Vzc1JvdXRlci5hZGRUeXBlZEhhbmRsZXIobmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkSGFuZGxlcigicHVzaFdvcmtzcGFjZVByb2Nlc3NPdXRwdXQiLGFzeW5jIGU9Pih0aGlzLnByb2Nlc3NTdGF0ZXMuZ2V0KGUucHJvY2Vzc0lkKT8ub3V0cHV0Q29udHJvbGxlci5lbnF1ZXVlKGUub3V0cHV0KSx7fSkpKSx0aGlzLnByb2Nlc3NSb3V0ZXIuYWRkVHlwZWRIYW5kbGVyKG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXIoInB1c2hXb3Jrc3BhY2VQcm9jZXNzRXhpdCIsYXN5bmMgZT0+KHRoaXMuY29tcGxldGVQcm9jZXNzU3RhdGUoZS5wcm9jZXNzSWQsZS5leGl0Q29kZSksYXdhaXQgdGhpcy5wcm9jZXNzU29ja2V0Py5yZW1vdmVUYWcoYHdvcmtzcGFjZVByb2Nlc3M6JHtlLnByb2Nlc3NJZH1gKS5jYXRjaCgoKT0+e30pLHt9KSkpfWFzeW5jIGVuc3VyZVByb2Nlc3NTb2NrZXQoKXtyZXR1cm4gdGhpcy5wcm9jZXNzU29ja2V0P3RoaXMucHJvY2Vzc1NvY2tldDoodGhpcy5wcm9jZXNzU29ja2V0UHJvbWlzZXx8KHRoaXMucHJvY2Vzc1NvY2tldFByb21pc2U9JDMuVHlwZWRTb2NrZXQuY3JlYXRlQ2xpZW50KHRoaXMucHJvY2Vzc1JvdXRlciwkMy5UeXBlZFNvY2tldC51c2VXaW5kb3dMb2NhdGlvbk9yaWdpblVybCgpLHthdXRvUmVjb25uZWN0OiEwfSkpLHRoaXMucHJvY2Vzc1NvY2tldD1hd2FpdCB0aGlzLnByb2Nlc3NTb2NrZXRQcm9taXNlLHRoaXMucHJvY2Vzc1NvY2tldCl9Y29tcGxldGVQcm9jZXNzU3RhdGUoZSxyKXtsZXQgYT10aGlzLnByb2Nlc3NTdGF0ZXMuZ2V0KGUpO2lmKGEpe3RyeXthLm91dHB1dENvbnRyb2xsZXIuY2xvc2UoKX1jYXRjaHt9YS5yZXNvbHZlRXhpdChyKSx0aGlzLnByb2Nlc3NTdGF0ZXMuZGVsZXRlKGUpfX1hc3luYyBraWxsUHJvY2VzcyhlKXtsZXQgcj10aGlzLnByb2Nlc3NTb2NrZXQ7ciYmKGF3YWl0IHIuY3JlYXRlVHlwZWRSZXF1ZXN0KCJ3b3Jrc3BhY2VLaWxsUHJvY2VzcyIpLmZpcmUoe2lkZW50aXR5OnRoaXMuaWRlbnRpdHkscHJvY2Vzc0lkOmV9KS5jYXRjaCgoKT0+e30pLHRoaXMuY29tcGxldGVQcm9jZXNzU3RhdGUoZSwtMSksYXdhaXQgci5yZW1vdmVUYWcoYHdvcmtzcGFjZVByb2Nlc3M6JHtlfWApLmNhdGNoKCgpPT57fSkpfWFzeW5jIGZpcmVSZXF1ZXN0KGUscil7cmV0dXJuIGF3YWl0IG5ldyBacWEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IixlKS5maXJlKHtpZGVudGl0eTp0aGlzLmlkZW50aXR5LHNlcnZpY2VOYW1lOnRoaXMuc2VydmljZU5hbWUsLi4ucn0pfX19KTt2YXIgem9hPXt9O1ZlKHpvYSx7T2JWaWV3U2VydmljZXM6KCk9PnZidH0pO2Z1bmN0aW9uIFRtZSh0KXtpZighdHx8dD09PTApcmV0dXJuIjAgQiI7bGV0IGU9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiXSxyPTEwMjQsYT1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGgubG9nKHIpKTtyZXR1cm5gJHsodC9NYXRoLnBvdyhyLGEpKS50b0ZpeGVkKDEpfSAke2VbYV19YH1mdW5jdGlvbiBRcWEodCl7bGV0IGU9dC5sYXN0SW5kZXhPZigiOiIpLHI9dC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBlPnImJmU+MD97cmVwb3NpdG9yeTp0LnN1YnN0cmluZygwLGUpLHRhZzp0LnN1YnN0cmluZyhlKzEpfTp7cmVwb3NpdG9yeTp0LHRhZzoibGF0ZXN0In19ZnVuY3Rpb24gbW9hKHQpe3N3aXRjaCh0KXtjYXNlInJ1bm5pbmciOnJldHVybiJydW5uaW5nIjtjYXNlInN0YXJ0aW5nIjpyZXR1cm4ic3RhcnRpbmciO2Nhc2UiZmFpbGVkIjpyZXR1cm4iZXJyb3IiO2RlZmF1bHQ6cmV0dXJuInN0b3BwZWQifX1mdW5jdGlvbiBYcWEodCl7bGV0IGU9UXFhKHQuaW1hZ2UpO3JldHVybntuYW1lOnQubmFtZSxzdGF0dXM6bW9hKHQuc3RhdHVzKSxpbWFnZTp0LmltYWdlLHBvcnQ6dC5wb3J0LGRvbWFpbjp0LmRvbWFpbnx8bnVsbCxjb250YWluZXJJZDp0LmNvbnRhaW5lcklEfHwiIixjcmVhdGVkOnQuY3JlYXRlZEF0P25ldyBEYXRlKHQuY3JlYXRlZEF0KS50b0xvY2FsZVN0cmluZygpOiItIix1cGRhdGVkOnQudXBkYXRlZEF0P25ldyBEYXRlKHQudXBkYXRlZEF0KS50b0xvY2FsZVN0cmluZygpOiItIixyZWdpc3RyeTp0LnVzZU9uZWJveFJlZ2lzdHJ5PyJPbmVib3ggUmVnaXN0cnkiOnQucmVnaXN0cnl8fCJEb2NrZXIgSHViIixyZXBvc2l0b3J5OnQucmVnaXN0cnlSZXBvc2l0b3J5fHxlLnJlcG9zaXRvcnksdGFnOnQucmVnaXN0cnlJbWFnZVRhZ3x8ZS50YWd9fWZ1bmN0aW9uIEpxYSh0KXtyZXR1cm57Y3B1OnQuY3B1UGVyY2VudCxtZW1vcnk6VG1lKHQubWVtb3J5VXNlZCksbWVtb3J5TGltaXQ6VG1lKHQubWVtb3J5TGltaXQpLG5ldHdvcmtJbjpUbWUodC5uZXR3b3JrUngpLG5ldHdvcmtPdXQ6VG1lKHQubmV0d29ya1R4KX19ZnVuY3Rpb24gZVZhKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QubWFwKGU9PntsZXQgcj1lLnRpbWVzdGFtcD90eXBlb2YgZS50aW1lc3RhbXA9PSJudW1iZXIiP25ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpOlN0cmluZyhlLnRpbWVzdGFtcCk6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGE9ZS5tZXNzYWdlfHxTdHJpbmcoZSkscz1lLmxldmVsfHwiaW5mbyI7cmV0dXJue3RpbWVzdGFtcDpyLG1lc3NhZ2U6YSxsZXZlbDpzfX0pOnR5cGVvZiB0PT0ic3RyaW5nIiYmdC50cmltKCk/dC5zcGxpdChgCmApLmZpbHRlcihlPT5lLnRyaW0oKSkubWFwKGU9PntsZXQgcj1lLm1hdGNoKC9eKFxkezR9LVxkezJ9LVxkezJ9VFtcZDouXStaPylccysoLiopLyksYT1yP3JbMV06bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHM9cj9yWzJdOmUsbj1zLnRvTG93ZXJDYXNlKCksbz1uLmluY2x1ZGVzKCJlcnJvciIpfHxuLmluY2x1ZGVzKCJmYXRhbCIpPyJlcnJvciI6bi5pbmNsdWRlcygid2FybiIpPyJ3YXJuIjoiaW5mbyI7cmV0dXJue3RpbWVzdGFtcDphLG1lc3NhZ2U6cyxsZXZlbDpvfX0pOltdfXZhciBnb2EsYm9hLHhvYSx2b2EseW9hLHdvYSxrb2EsU29hLE1vYSxDb2EsZWksdWJ0LHBidCxmYnQsaGJ0LG1idCxnYnQsYmJ0LHhidCx0VmEsZDEsdmJ0LHlidD11KGFzeW5jKCk9PntvMSgpO1JjKCk7YXdhaXQgcDIoKTtHdygpO2hvYSgpO05vKCk7aShUbWUsImZvcm1hdEJ5dGVzIik7aShRcWEsInBhcnNlSW1hZ2VTdHJpbmciKTtpKG1vYSwibWFwU3RhdHVzIik7aShYcWEsInRvU2VydmljZURldGFpbCIpO2koSnFhLCJ0b1NlcnZpY2VTdGF0cyIpO2koZVZhLCJwYXJzZUxvZ3MiKTt0VmE9e2NwdTowLG1lbW9yeToiMCBCIixtZW1vcnlMaW1pdDoiMCBCIixuZXR3b3JrSW46IjAgQiIsbmV0d29ya091dDoiMCBCIn07Q29hPVt2aSgib2Itdmlldy1zZXJ2aWNlcyIpXTtkMT1jbGFzcyBkMSBleHRlbmRzKE1vYT15aSxTb2E9W1p0KCldLGtvYT1bWnQoKV0sd29hPVtadCgpXSx5b2E9W1p0KCldLHZvYT1bWnQoKV0seG9hPVtadCgpXSxib2E9W1p0KCldLGdvYT1bWnQoKV0sTW9hKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dHIodGhpcyx1YnQsWGUoZWksOCx0aGlzLHtzZXJ2aWNlczpbXSxjdXJyZW50U2VydmljZTpudWxsLGN1cnJlbnRTZXJ2aWNlTG9nczpbXSxjdXJyZW50U2VydmljZVN0YXRzOm51bGwscGxhdGZvcm1TZXJ2aWNlczpbXSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119KSksWGUoZWksMTEsdGhpcyk7dHIodGhpcyxwYnQsWGUoZWksMTIsdGhpcyx7YmFja3VwczpbXSxzY2hlZHVsZXM6W119KSksWGUoZWksMTUsdGhpcyk7dHIodGhpcyxmYnQsWGUoZWksMTYsdGhpcywibGlzdCIpKSxYZShlaSwxOSx0aGlzKTt0cih0aGlzLGhidCxYZShlaSwyMCx0aGlzLCIiKSksWGUoZWksMjMsdGhpcyk7dHIodGhpcyxtYnQsWGUoZWksMjQsdGhpcywiIikpLFhlKGVpLDI3LHRoaXMpO3RyKHRoaXMsZ2J0LFhlKGVpLDI4LHRoaXMsITEpKSxYZShlaSwzMSx0aGlzKTt0cih0aGlzLGJidCxYZShlaSwzMix0aGlzLG51bGwpKSxYZShlaSwzNSx0aGlzKTt0cih0aGlzLHhidCxYZShlaSwzNix0aGlzLHthcHBzOltdLHVwZ3JhZGVhYmxlU2VydmljZXM6W10sdXBncmFkZU9wZXJhdGlvbnM6W119KSksWGUoZWksMzksdGhpcyk7bGV0IHI9R3Quc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5zZXJ2aWNlc1N0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBhPUZjLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuYmFja3Vwc1N0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBzPWwxLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuYXBwU3RvcmVTdGF0ZT1ufSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChzKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgUHJvbWlzZS5hbGwoW0d0LmRpc3BhdGNoQWN0aW9uKHltZSxudWxsKSxHdC5kaXNwYXRjaEFjdGlvbih3bWUsbnVsbCksbDEuZGlzcGF0Y2hBY3Rpb24oQm5hLG51bGwpLGwxLmRpc3BhdGNoQWN0aW9uKENtZSxudWxsKV0pO2xldCByPUd0LmdldFN0YXRlKCk7aWYoci5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlKXtsZXQgYT1yLmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2UudHlwZTtHdC5zZXRTdGF0ZSh7Li4uR3QuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGx9KSx0aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChhKX19cmVuZGVyKCl7c3dpdGNoKHRoaXMuY3VycmVudFZpZXcpe2Nhc2UiY3JlYXRlIjpyZXR1cm4gdGhpcy5yZW5kZXJDcmVhdGVWaWV3KCk7Y2FzZSJkZXRhaWwiOnJldHVybiB0aGlzLnJlbmRlckRldGFpbFZpZXcoKTtjYXNlImJhY2t1cHMiOnJldHVybiB0aGlzLnJlbmRlckJhY2t1cHNWaWV3KCk7Y2FzZSJwbGF0Zm9ybS1kZXRhaWwiOnJldHVybiB0aGlzLnJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucmVuZGVyTGlzdFZpZXcoKX19cmVuZGVyTGlzdFZpZXcoKXtsZXQgcj10aGlzLnNlcnZpY2VzU3RhdGUuc2VydmljZXMubWFwKGw9Pih7bmFtZTpsLm5hbWUsaW1hZ2U6bC5pbWFnZSxkb21haW46bC5kb21haW58fG51bGwsc3RhdHVzOm1vYShsLnN0YXR1cyl9KSksYT1pKGw9Pntzd2l0Y2gobCl7Y2FzZSJydW5uaW5nIjpyZXR1cm4iUnVubmluZyI7Y2FzZSJzdG9wcGVkIjpyZXR1cm4iU3RvcHBlZCI7Y2FzZSJzdGFydGluZyI6cmV0dXJuIlN0YXJ0aW5nLi4uIjtjYXNlInN0b3BwaW5nIjpyZXR1cm4iU3RvcHBpbmcuLi4iO2Nhc2UiZmFpbGVkIjpyZXR1cm4iRmFpbGVkIjtjYXNlIm5vdC1kZXBsb3llZCI6cmV0dXJuIk5vdCBEZXBsb3llZCI7ZGVmYXVsdDpyZXR1cm4gbH19LCJkaXNwbGF5U3RhdHVzIikscz10aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maWx0ZXIobD0+bC5zdGF0dXM9PT0icnVubmluZyJ8fGwuc3RhdHVzPT09InN0YXJ0aW5nInx8bC5zdGF0dXM9PT0ic3RvcHBpbmcifHxsLmlzQ29yZSksbj10aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maWx0ZXIobD0+IWwuaXNDb3JlJiYobC5zdGF0dXM9PT0ibm90LWRlcGxveWVkInx8bC5zdGF0dXM9PT0ic3RvcHBlZCJ8fGwuc3RhdHVzPT09ImZhaWxlZCIpKSxvPXMubWFwKGw9Pih7bmFtZTpsLmRpc3BsYXlOYW1lLHN0YXR1czphKGwuc3RhdHVzKSxydW5uaW5nOmwuc3RhdHVzPT09InJ1bm5pbmciLHR5cGU6bC50eXBlfSkpO3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPlNlcnZpY2VzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0icGFnZS1hY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXBsb3ktYnV0dG9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9ImNyZWF0ZSJ9fT4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgRGVwbG95IFNlcnZpY2UKICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxzei1zZXJ2aWNlcy1saXN0LXZpZXcKICAgICAgICAuc2VydmljZXM9JHtyfQogICAgICAgIEBzZXJ2aWNlLWNsaWNrPSR7bD0+e3RoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZT1sLmRldGFpbC5uYW1lfHxsLmRldGFpbC5zZXJ2aWNlPy5uYW1lLEd0LmRpc3BhdGNoQWN0aW9uKHZuYSx7bmFtZTp0aGlzLnNlbGVjdGVkU2VydmljZU5hbWV9KSxHdC5kaXNwYXRjaEFjdGlvbihNbmEse25hbWU6dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lfSksR3QuZGlzcGF0Y2hBY3Rpb24oQ25hLHtuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZX0pLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCJ9fQogICAgICAgIEBzZXJ2aWNlLWFjdGlvbj0ke2w9PnRoaXMuaGFuZGxlU2VydmljZUFjdGlvbihsKX0KICAgICAgPjwvc3otc2VydmljZXMtbGlzdC12aWV3PgogICAgICA8b2Itc2VjdGlvbmhlYWRpbmcgc3R5bGU9Im1hcmdpbi10b3A6IDMycHg7Ij5QbGF0Zm9ybSBTZXJ2aWNlczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxkaXYgc3R5bGU9Im1heC13aWR0aDogNTAwcHg7Ij4KICAgICAgICAke28ubGVuZ3RoPjA/UWVgCiAgICAgICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgICAgICAuc2VydmljZXM9JHtvfQogICAgICAgICAgICBAc2VydmljZS1jbGljaz0ke2w9PntsZXQgYz1sLmRldGFpbC50eXBlfHx0aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maW5kKGQ9PmQuZGlzcGxheU5hbWU9PT1sLmRldGFpbC5uYW1lKT8udHlwZTtjJiZ0aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChjKX19CiAgICAgICAgICA+PC9zei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtuLmxlbmd0aD4wP1FlYAogICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTEsICMwOTA5MGIpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBtYXJnaW4tdG9wOiAke28ubGVuZ3RoPjA/IjEycHgiOiIwIn07CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgICI+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tYm90dG9tOiAxMnB4OyI+QXZhaWxhYmxlIOKAlCBub3QgaW4gdXNlPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTJweDsiPgogICAgICAgICAgICAgICR7bi5tYXAobD0+UWVgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDhweCAwOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZTsiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChsLnR5cGUpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsgZmxleC1zaHJpbms6IDA7Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7Ij4ke2wuZGlzcGxheU5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTMsICMzZjNmNDYpOyI+JHthKGwuc3RhdHVzKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZGVwbG95RnJvbVRlbXBsYXRlKHIpe2xldCBhPXIuaWR8fHIubmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05LV0vZywiLSIpLHM9e307aWYoci5lbnZWYXJzKWZvcihsZXQgbyBvZiByLmVudlZhcnMpby5rZXkmJm8udmFsdWUmJihzW28ua2V5XT1vLnZhbHVlKTtsZXQgbj17bmFtZTphLGltYWdlOnIuaW1hZ2UscG9ydDpyLnBvcnR8fDgwLGVudlZhcnM6cyxlbmFibGVNb25nb0RCOnIuZW5hYmxlTW9uZ29EQnx8ITEsZW5hYmxlUzM6ci5lbmFibGVTM3x8ITEsZW5hYmxlQ2xpY2tIb3VzZTpyLmVuYWJsZUNsaWNrSG91c2V8fCExLGVuYWJsZVJlZGlzOnIuZW5hYmxlUmVkaXN8fCExLGVuYWJsZU1hcmlhREI6ci5lbmFibGVNYXJpYURCfHwhMX07YXdhaXQgR3QuZGlzcGF0Y2hBY3Rpb24oUmd0LHtjb25maWc6bn0pLHRoaXMucGVuZGluZ1RlbXBsYXRlPW51bGwsdGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9cmVuZGVyQ3JlYXRlVmlldygpe2lmKHRoaXMucGVuZGluZ1RlbXBsYXRlKXtsZXQgcj10aGlzLnBlbmRpbmdUZW1wbGF0ZTtyZXR1cm4gUWVgCiAgICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkRlcGxveSAke3IubmFtZX08L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgc3R5bGU9Im1heC13aWR0aDogNjAwcHg7IG1hcmdpbjogMCBhdXRvOyI+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjMDkwOTBiKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7IGJvcmRlci1yYWRpdXM6IDhweDsgcGFkZGluZzogMjRweDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPgogICAgICAgICAgICA8aDMgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE4cHg7Ij4ke3IubmFtZX08L2gzPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwIDAgMTZweCAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7IGZvbnQtc2l6ZTogMTRweDsiPiR7ci5kZXNjcmlwdGlvbn08L3A+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiAxMnB4OyBmb250LXNpemU6IDEzcHg7Ij4KICAgICAgICAgICAgICA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij5JbWFnZTo8L3NwYW4+IDxzdHJvbmc+JHtyLmltYWdlfTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPlBvcnQ6PC9zcGFuPiA8c3Ryb25nPiR7ci5wb3J0fTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPlNlcnZpY2UgTmFtZTo8L3NwYW4+IDxzdHJvbmc+JHtyLmlkfTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPkNhdGVnb3J5Ojwvc3Bhbj4gPHN0cm9uZz4ke3IuY2F0ZWdvcnl9PC9zdHJvbmc+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3IuZW5hYmxlTW9uZ29EQnx8ci5lbmFibGVTM3x8ci5lbmFibGVDbGlja0hvdXNlfHxyLmVuYWJsZVJlZGlzfHxyLmVuYWJsZU1hcmlhREI/UWVgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTJweDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij4KICAgICAgICAgICAgICAgIFBsYXRmb3JtIFNlcnZpY2VzOgogICAgICAgICAgICAgICAgJHtyLmVuYWJsZU1vbmdvREI/UWVgPHNwYW4gc3R5bGU9Im1hcmdpbi1yaWdodDogOHB4OyI+TW9uZ29EQjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgJHtyLmVuYWJsZVMzP1FlYDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPlMzPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3IuZW5hYmxlQ2xpY2tIb3VzZT9RZWA8c3BhbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA4cHg7Ij5DbGlja0hvdXNlPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3IuZW5hYmxlUmVkaXM/UWVgPHNwYW4gc3R5bGU9Im1hcmdpbi1yaWdodDogOHB4OyI+UmVkaXM8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICR7ci5lbmFibGVNYXJpYURCP1FlYDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPk1hcmlhREI8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIHN0eWxlPSJiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7IGNvbG9yOiBpbmhlcml0OyIgQGNsaWNrPSR7KCk9Pnt0aGlzLnBlbmRpbmdUZW1wbGF0ZT1udWxsLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmRlcGxveUZyb21UZW1wbGF0ZShyKX0+RGVwbG95ICR7ci5uYW1lfTwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+Q3JlYXRlIFNlcnZpY2U8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otc2VydmljZS1jcmVhdGUtdmlldwogICAgICAgIC5yZWdpc3RyaWVzPSR7W119CiAgICAgICAgQGNyZWF0ZS1zZXJ2aWNlPSR7YXN5bmMgcj0+e2xldCBhPXIuZGV0YWlsLHM9e25hbWU6YS5uYW1lLGltYWdlOmEuaW1hZ2UscG9ydDphLnBvcnRzPy5bMF0/LmNvbnRhaW5lclBvcnQ/cGFyc2VJbnQoYS5wb3J0c1swXS5jb250YWluZXJQb3J0LDEwKTo4MCxlbnZWYXJzOmEuZW52VmFycz8ucmVkdWNlKChuLG8pPT4oby5rZXkmJihuW28ua2V5XT1vLnZhbHVlKSxuKSx7fSksZW5hYmxlTW9uZ29EQjphLmVuYWJsZU1vbmdvREJ8fCExLGVuYWJsZVMzOmEuZW5hYmxlUzN8fCExLGVuYWJsZUNsaWNrSG91c2U6YS5lbmFibGVDbGlja0hvdXNlfHwhMSxlbmFibGVSZWRpczphLmVuYWJsZVJlZGlzfHwhMSxlbmFibGVNYXJpYURCOmEuZW5hYmxlTWFyaWFEQnx8ITF9O2F3YWl0IEd0LmRpc3BhdGNoQWN0aW9uKFJndCx7Y29uZmlnOnN9KSx0aGlzLmN1cnJlbnRWaWV3PSJsaXN0In19CiAgICAgICAgQGNhbmNlbD0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICA+PC9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3PgogICAgYH1yZW5kZXJEZXRhaWxWaWV3KCl7bGV0IHI9dGhpcy5zZXJ2aWNlc1N0YXRlLmN1cnJlbnRTZXJ2aWNlLGE9cj9YcWEocik6bnVsbCxzPXRoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50U2VydmljZVN0YXRzP0pxYSh0aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFNlcnZpY2VTdGF0cyk6dFZhLG49ZVZhKHRoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50U2VydmljZUxvZ3MpLG89cj90aGlzLmFwcFN0b3JlU3RhdGUudXBncmFkZWFibGVTZXJ2aWNlcy5maW5kKGQ9PmQuc2VydmljZU5hbWU9PT1yLm5hbWUpOm51bGwsbD1yP3RoaXMuYXBwU3RvcmVTdGF0ZS51cGdyYWRlT3BlcmF0aW9ucy5maW5kKGQ9PmQuc2VydmljZU5hbWU9PT1yLm5hbWUmJmQuc3RhdHVzPT09InJ1bm5pbmciKTpudWxsLGM9cj90aGlzLmFwcFN0b3JlU3RhdGUudXBncmFkZU9wZXJhdGlvbnMuZmluZChkPT5kLnNlcnZpY2VOYW1lPT09ci5uYW1lKTpudWxsO3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPlNlcnZpY2UgRGV0YWlsczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgICR7bD90aGlzLnJlbmRlclVwZ3JhZGVPcGVyYXRpb24obCk6IiJ9CiAgICAgICR7IWwmJmM/LnN0YXR1cz09PSJmYWlsZWQiP3RoaXMucmVuZGVyVXBncmFkZU9wZXJhdGlvbihjKToiIn0KICAgICAgJHtvP1FlYAogICAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSksIHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjEpKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAiPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7Ij4KICAgICAgICAgICAgICBVcGRhdGUgYXZhaWxhYmxlOiB2JHtvLmN1cnJlbnRWZXJzaW9ufSAmcmFycjsgdiR7by5sYXRlc3RWZXJzaW9ufQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDRweDsiPgogICAgICAgICAgICAgICR7by5oYXNNaWdyYXRpb24/Ik1pZ3JhdGlvbiBzY3JpcHQgYXZhaWxhYmxlIjoiQ29uZmlnLW9ubHkgdXBncmFkZSJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJkZXBsb3ktYnV0dG9uIgogICAgICAgICAgICBzdHlsZT0icGFkZGluZzogOHB4IDE2cHg7IGZvbnQtc2l6ZTogMTNweDsiCiAgICAgICAgICAgID9kaXNhYmxlZD0keyEhbH0KICAgICAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2F3YWl0IGwxLmRpc3BhdGNoQWN0aW9uKEhuYSx7c2VydmljZU5hbWU6by5zZXJ2aWNlTmFtZSx0YXJnZXRWZXJzaW9uOm8ubGF0ZXN0VmVyc2lvbn0pfX0KICAgICAgICAgID4ke2w/IlVwZ3JhZGluZy4uLiI6IlVwZ3JhZGUifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICA8c3otc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7YX0KICAgICAgICAubG9ncz0ke259CiAgICAgICAgLnN0YXRzPSR7c30KICAgICAgICBAYmFjaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBzZXJ2aWNlLWFjdGlvbj0ke2Q9PnRoaXMuaGFuZGxlU2VydmljZUFjdGlvbihkKX0KICAgICAgICBAcmVxdWVzdC13b3Jrc3BhY2U9JHthc3luYyBkPT57bGV0IGY9ZC5kZXRhaWw/LnNlcnZpY2U/Lm5hbWV8fHRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZSxwPUdpLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoISghZnx8IXApKXRyeXtsZXQgaD1uZXcgX21lKGYscCk7YXdhaXQgaC5pbml0KCk7bGV0IG09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJzei1zZXJ2aWNlLWRldGFpbC12aWV3Iik7bSYmKG0ud29ya3NwYWNlRW52aXJvbm1lbnQ9aCksdGhpcy53b3Jrc3BhY2VPcGVuPSEwLHRoaXMuY2xhc3NMaXN0LmFkZCgid29ya3NwYWNlLW1vZGUiKX1jYXRjaChoKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gb3BlbiB3b3Jrc3BhY2U6IixoKX19fQogICAgICAgIEBiYWNrPSR7KCk9Pnt0aGlzLndvcmtzcGFjZU9wZW49ITEsdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ3b3Jrc3BhY2UtbW9kZSIpLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgPjwvc3otc2VydmljZS1kZXRhaWwtdmlldz4KICAgIGB9cmVuZGVyVXBncmFkZU9wZXJhdGlvbihyKXtsZXQgYT1yLnN0YXR1cz09PSJmYWlsZWQiPyIjZjg3MTcxIjoiIzYwYTVmYSI7cmV0dXJuIFFlYAogICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjMDkwOTBiKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2F9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICI+CiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDE2cHg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsiPgogICAgICAgICAgICAgIFVwZ3JhZGUgJHtyLmZyb21WZXJzaW9ufSAmcmFycjsgJHtyLnRhcmdldFZlcnNpb259OiAke3Iuc3RlcH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA0cHg7Ij4KICAgICAgICAgICAgICAke3Iuc3RhdHVzPT09InJ1bm5pbmciPyJPcGVyYXRpb24gaXMgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZC4iOnIuZXJyb3J8fCJPcGVyYXRpb24gZmluaXNoZWQuIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiAke2F9OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4wNGVtOyI+CiAgICAgICAgICAgICR7ci5zdGF0dXN9CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMCwgIzAzMDMwNSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEzMHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgIj4ke3IucHJvZ3Jlc3NMaW5lcy5zbGljZSgtOCkuam9pbihgCmApfTwvZGl2PgogICAgICAgICR7ci53YXJuaW5ncy5sZW5ndGg+MD9RZWAKICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IGNvbG9yOiAjZmJiZjI0OyBmb250LXNpemU6IDEycHg7Ij4KICAgICAgICAgICAgJHtyLndhcm5pbmdzLmpvaW4oIiB8ICIpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckJhY2t1cHNWaWV3KCl7cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QmFja3Vwczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXcKICAgICAgICAuc2NoZWR1bGVzPSR7dGhpcy5iYWNrdXBzU3RhdGUuc2NoZWR1bGVzfQogICAgICAgIC5iYWNrdXBzPSR7dGhpcy5iYWNrdXBzU3RhdGUuYmFja3Vwc30KICAgICAgICBAY3JlYXRlLXNjaGVkdWxlPSR7cj0+e0ZjLmRpc3BhdGNoQWN0aW9uKEVuYSx7Y29uZmlnOnIuZGV0YWlsfSl9fQogICAgICAgIEBydW4tbm93PSR7cj0+e0ZjLmRpc3BhdGNoQWN0aW9uKEluYSx7c2NoZWR1bGVJZDpyLmRldGFpbC5zY2hlZHVsZUlkfSl9fQogICAgICAgIEBkZWxldGUtYmFja3VwPSR7cj0+e0ZjLmRpc3BhdGNoQWN0aW9uKEFuYSx7YmFja3VwSWQ6ci5kZXRhaWwuYmFja3VwSWR9KX19CiAgICAgID48L3N6LXNlcnZpY2VzLWJhY2t1cHMtdmlldz4KICAgIGB9bmF2aWdhdGVUb1BsYXRmb3JtRGV0YWlsKHIpe3RoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGU9cixHdC5zZXRTdGF0ZSh7Li4uR3QuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9nczpbXX0pO2xldCBhPXI7R3QuZGlzcGF0Y2hBY3Rpb24oa21lLHtzZXJ2aWNlVHlwZTphfSksR3QuZGlzcGF0Y2hBY3Rpb24oem5hLHtzZXJ2aWNlVHlwZTphfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jdXJyZW50Vmlldz0icGxhdGZvcm0tZGV0YWlsIn0pfXJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpe2xldCByPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbmQoYz0+Yy50eXBlPT09dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZSksYT10aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzLHM9e2NwdTphP01hdGgucm91bmQoYS5jcHVQZXJjZW50KTowLG1lbW9yeTphP01hdGgucm91bmQoYS5tZW1vcnlQZXJjZW50KTowLHN0b3JhZ2U6MCxjb25uZWN0aW9uczp2b2lkIDB9LG89cj97bW9uZ29kYjp7aG9zdDoib25lYm94LW1vbmdvZGIiLHBvcnQ6MjcwMTcsdmVyc2lvbjoiNC40Iixjb25maWc6e2VuZ2luZToiV2lyZWRUaWdlciIsYXV0aEVuYWJsZWQ6ITB9fSxtaW5pbzp7aG9zdDoib25lYm94LW1pbmlvIixwb3J0OjllMyx2ZXJzaW9uOiJsYXRlc3QiLGNvbmZpZzp7Y29uc29sZVBvcnQ6OTAwMSxyZWdpb246InVzLWVhc3QtMSJ9fSxjbGlja2hvdXNlOntob3N0OiJvbmVib3gtY2xpY2tob3VzZSIscG9ydDo4MTIzLHZlcnNpb246ImxhdGVzdCIsY29uZmlnOntuYXRpdmVQb3J0OjllMyxodHRwUG9ydDo4MTIzfX0sc21hcnRwcm94eTp7aG9zdDoib25lYm94LXNtYXJ0cHJveHkiLHBvcnQ6ODAsdmVyc2lvbjoibGF0ZXN0Iixjb25maWc6e2h0dHBzUG9ydDo0NDMsYWRtaW5BcGk6MjAxOX19LG1hcmlhZGI6e2hvc3Q6Im9uZWJveC1tYXJpYWRiIixwb3J0OjMzMDYsdmVyc2lvbjoiMTEiLGNvbmZpZzp7ZW5naW5lOiJJbm5vREIiLGF1dGhFbmFibGVkOiEwfX0scmVkaXM6e2hvc3Q6Im9uZWJveC1yZWRpcyIscG9ydDo2Mzc5LHZlcnNpb246IjctYWxwaW5lIixjb25maWc6e2FwcGVuZG9ubHk6ITAsbWF4RGF0YWJhc2VzOjE2fX19W3IudHlwZV18fHtob3N0OiJ1bmtub3duIixwb3J0OjAsdmVyc2lvbjoiIixjb25maWc6e319Ontob3N0OiIiLHBvcnQ6MCx2ZXJzaW9uOiIiLGNvbmZpZzp7fX0sbD1pKGM9Pntzd2l0Y2goYyl7Y2FzZSJydW5uaW5nIjpyZXR1cm4icnVubmluZyI7Y2FzZSJmYWlsZWQiOnJldHVybiJlcnJvciI7ZGVmYXVsdDpyZXR1cm4ic3RvcHBlZCJ9fSwibWFwUGxhdGZvcm1TdGF0dXMiKTtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5QbGF0Zm9ybSBTZXJ2aWNlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0icGFnZS1hY3Rpb25zIiBzdHlsZT0ianVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGVwbG95LWJ1dHRvbiIgc3R5bGU9ImJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsgY29sb3I6IGluaGVyaXQ7IiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QifX0+CiAgICAgICAgICAmbGFycjsgQmFjayB0byBTZXJ2aWNlcwogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHN6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3I/e2lkOnIudHlwZSxuYW1lOnIuZGlzcGxheU5hbWUsdHlwZTpyLnR5cGUsc3RhdHVzOmwoci5zdGF0dXMpLHZlcnNpb246by52ZXJzaW9uLGhvc3Q6by5ob3N0LHBvcnQ6by5wb3J0LGNvbmZpZzpvLmNvbmZpZyxtZXRyaWNzOnN9Om51bGx9CiAgICAgICAgLmxvZ3M9JHt0aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3MubWFwKGM9Pih7dGltZXN0YW1wOm5ldyBEYXRlKGMudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGxldmVsOmMubGV2ZWwsbWVzc2FnZTpjLm1lc3NhZ2V9KSl9CiAgICAgICAgQGJhY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgICBAc3RhcnQ9JHthc3luYygpPT57YXdhaXQgR3QuZGlzcGF0Y2hBY3Rpb24oRmd0LHtzZXJ2aWNlVHlwZTp0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlfSksR3QuZGlzcGF0Y2hBY3Rpb24oa21lLHtzZXJ2aWNlVHlwZTp0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlfSl9fQogICAgICAgIEBzdG9wPSR7YXN5bmMoKT0+e2F3YWl0IEd0LmRpc3BhdGNoQWN0aW9uKEJndCx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pfX0KICAgICAgICBAcmVzdGFydD0ke2FzeW5jKCk9Pnthd2FpdCBHdC5kaXNwYXRjaEFjdGlvbihCZ3Qse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KSxhd2FpdCBHdC5kaXNwYXRjaEFjdGlvbihGZ3Qse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KSxHdC5kaXNwYXRjaEFjdGlvbihrbWUse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KX19CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICBgfWFzeW5jIGhhbmRsZVNlcnZpY2VBY3Rpb24ocil7bGV0IGE9ci5kZXRhaWwuYWN0aW9uLHM9ci5kZXRhaWwuc2VydmljZT8ubmFtZXx8ci5kZXRhaWwubmFtZXx8dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lO3N3aXRjaChhKXtjYXNlInN0YXJ0Ijphd2FpdCBHdC5kaXNwYXRjaEFjdGlvbih3bmEse25hbWU6c30pO2JyZWFrO2Nhc2Uic3RvcCI6YXdhaXQgR3QuZGlzcGF0Y2hBY3Rpb24oa25hLHtuYW1lOnN9KTticmVhaztjYXNlInJlc3RhcnQiOmF3YWl0IEd0LmRpc3BhdGNoQWN0aW9uKFNuYSx7bmFtZTpzfSk7YnJlYWs7Y2FzZSJkZWxldGUiOmF3YWl0IEd0LmRpc3BhdGNoQWN0aW9uKHluYSx7bmFtZTpzfSksdGhpcy5jdXJyZW50Vmlldz0ibGlzdCI7YnJlYWt9fX07ZWk9JGkoTW9hKSx1YnQ9bmV3IFdlYWtNYXAscGJ0PW5ldyBXZWFrTWFwLGZidD1uZXcgV2Vha01hcCxoYnQ9bmV3IFdlYWtNYXAsbWJ0PW5ldyBXZWFrTWFwLGdidD1uZXcgV2Vha01hcCxiYnQ9bmV3IFdlYWtNYXAseGJ0PW5ldyBXZWFrTWFwLER0KGVpLDQsInNlcnZpY2VzU3RhdGUiLFNvYSxkMSx1YnQpLER0KGVpLDQsImJhY2t1cHNTdGF0ZSIsa29hLGQxLHBidCksRHQoZWksNCwiY3VycmVudFZpZXciLHdvYSxkMSxmYnQpLER0KGVpLDQsInNlbGVjdGVkU2VydmljZU5hbWUiLHlvYSxkMSxoYnQpLER0KGVpLDQsInNlbGVjdGVkUGxhdGZvcm1UeXBlIix2b2EsZDEsbWJ0KSxEdChlaSw0LCJ3b3Jrc3BhY2VPcGVuIix4b2EsZDEsZ2J0KSxEdChlaSw0LCJwZW5kaW5nVGVtcGxhdGUiLGJvYSxkMSxiYnQpLER0KGVpLDQsImFwcFN0b3JlU3RhdGUiLGdvYSxkMSx4YnQpLGQxPUR0KGVpLDAsIk9iVmlld1NlcnZpY2VzIixDb2EsZDEpLGkoZDEsIk9iVmlld1NlcnZpY2VzIiksZ2koZDEsInN0eWxlcyIsW29yLmRlZmF1bHRTdHlsZXMsU24sJHJgCiAgICAgIC5wYWdlLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtvci5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kZXBsb3ktYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5kZXBsb3ktYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdCgud29ya3NwYWNlLW1vZGUpIHsKICAgICAgICBtYXgtd2lkdGg6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICA6aG9zdCgud29ya3NwYWNlLW1vZGUpIG9iLXNlY3Rpb25oZWFkaW5nIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXSksWGUoZWksMSxkMSk7dmJ0PWQxfSk7dmFyIEFvYT17fTtWZShBb2Ese09iVmlld05ldHdvcms6KCk9Pk1idH0pO3ZhciBfb2EsVG9hLExvYSxEb2EsJG9hLGgyLHdidCxrYnQsU2J0LFRkLE1idCxDYnQ9dShhc3luYygpPT57bzEoKTtSYygpO2F3YWl0IHAyKCk7Tm8oKTskb2E9W3ZpKCJvYi12aWV3LW5ldHdvcmsiKV07VGQ9Y2xhc3MgVGQgZXh0ZW5kcyhEb2E9eWksTG9hPVtadCgpXSxUb2E9W1p0KCldLF9vYT1bWnQoKV0sRG9hKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dHIodGhpcyx3YnQsWGUoaDIsOCx0aGlzLHt0YXJnZXRzOltdLHN0YXRzOm51bGwsdHJhZmZpY1N0YXRzOm51bGwsZG5zUmVjb3JkczpbXSxkb21haW5zOltdLGdhdGV3YXlEb21haW5zOltdLGdhdGV3YXlEbnNSZWNvcmRzOltdLGNlcnRpZmljYXRlczpbXX0pKSxYZShoMiwxMSx0aGlzKTt0cih0aGlzLGtidCxYZShoMiwxMix0aGlzLCJwcm94eSIpKSxYZShoMiwxNSx0aGlzKTt0cih0aGlzLFNidCxYZShoMiwxNix0aGlzLCIiKSksWGUoaDIsMTksdGhpcyk7bGV0IHI9UXIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFByb21pc2UuYWxsKFtRci5kaXNwYXRjaEFjdGlvbihIZ3QsbnVsbCksUXIuZGlzcGF0Y2hBY3Rpb24oeWFlLG51bGwpLFFyLmRpc3BhdGNoQWN0aW9uKHdhZSxudWxsKSxRci5kaXNwYXRjaEFjdGlvbihfbmEsbnVsbCksUXIuZGlzcGF0Y2hBY3Rpb24ocWd0LG51bGwpLFFyLmRpc3BhdGNoQWN0aW9uKFNtZSxudWxsKV0pfXJlbmRlcigpe3N3aXRjaCh0aGlzLmN1cnJlbnRUYWIpe2Nhc2UiZG5zIjpyZXR1cm4gdGhpcy5yZW5kZXJEbnNWaWV3KCk7Y2FzZSJkb21haW5zIjpyZXR1cm4gdGhpcy5yZW5kZXJEb21haW5zVmlldygpO2Nhc2UiZG9tYWluLWRldGFpbCI6cmV0dXJuIHRoaXMucmVuZGVyRG9tYWluRGV0YWlsVmlldygpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucmVuZGVyUHJveHlWaWV3KCl9fXJlbmRlclByb3h5Vmlldygpe2xldCByPXRoaXMubmV0d29ya1N0YXRlLnN0YXRzO3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPk5ldHdvcms8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otbmV0d29yay1wcm94eS12aWV3CiAgICAgICAgLnByb3h5U3RhdHVzPSR7cj8ucHJveHk/LnJ1bm5pbmc/InJ1bm5pbmciOiJzdG9wcGVkIn0KICAgICAgICAucm91dGVDb3VudD0ke1N0cmluZyhyPy5wcm94eT8ucm91dGVzfHwwKX0KICAgICAgICAuY2VydGlmaWNhdGVDb3VudD0ke1N0cmluZyhyPy5wcm94eT8uY2VydGlmaWNhdGVzfHwwKX0KICAgICAgICAudGFyZ2V0Q291bnQ9JHtTdHJpbmcodGhpcy5uZXR3b3JrU3RhdGUudGFyZ2V0cy5sZW5ndGgpfQogICAgICAgIC50YXJnZXRzPSR7dGhpcy5uZXR3b3JrU3RhdGUudGFyZ2V0cy5tYXAoYT0+KHt0eXBlOmEudHlwZSxuYW1lOmEubmFtZSxkb21haW46YS5kb21haW4sdGFyZ2V0OmAke2EudGFyZ2V0SG9zdH06JHthLnRhcmdldFBvcnR9YCxzdGF0dXM6YS5zdGF0dXN9KSl9CiAgICAgICAgLmxvZ3M9JHtbXX0KICAgICAgICBAcmVmcmVzaD0keygpPT57UXIuZGlzcGF0Y2hBY3Rpb24oSGd0LG51bGwpLFFyLmRpc3BhdGNoQWN0aW9uKHlhZSxudWxsKX19CiAgICAgID48L3N6LW5ldHdvcmstcHJveHktdmlldz4KICAgIGB9cmVuZGVyRG5zVmlldygpe3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkROUyBSZWNvcmRzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LW5ldHdvcmstZG5zLXZpZXcKICAgICAgICAucmVjb3Jkcz0ke3RoaXMubmV0d29ya1N0YXRlLmRuc1JlY29yZHN9CiAgICAgICAgQHN5bmM9JHsoKT0+e1FyLmRpc3BhdGNoQWN0aW9uKFRuYSxudWxsKX19CiAgICAgICAgQGRlbGV0ZT0ke3I9Pntjb25zb2xlLmxvZygiRGVsZXRlIEROUyByZWNvcmQ6IixyLmRldGFpbCl9fQogICAgICA+PC9zei1uZXR3b3JrLWRucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5zVmlldygpe2xldCByPXRoaXMubmV0d29ya1N0YXRlLmNlcnRpZmljYXRlcztyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW5zPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LW5ldHdvcmstZG9tYWlucy12aWV3CiAgICAgICAgLmRvbWFpbnM9JHt0aGlzLm5ldHdvcmtTdGF0ZS5kb21haW5zLm1hcChhPT57bGV0IHM9ci5maW5kKG89Pm8uY2VydERvbWFpbj09PWEuZG9tYWluKSxuPSJwZW5kaW5nIjtyZXR1cm4gcyYmKHMuaXNWYWxpZD9zLmV4cGlyZXNBdCYmcy5leHBpcmVzQXQtRGF0ZS5ub3coKTw3MjAqNjAqNjAqMWUzP249ImV4cGlyaW5nIjpuPSJ2YWxpZCI6bj0iZXhwaXJlZCIpLHtkb21haW46YS5kb21haW4scHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDphLnNlcnZpY2VzPy5sZW5ndGh8fDAsY2VydGlmaWNhdGVTdGF0dXM6bn19KX0KICAgICAgICBAc3luYz0keygpPT57UXIuZGlzcGF0Y2hBY3Rpb24ocWd0LG51bGwpfX0KICAgICAgICBAdmlldz0ke2E9Pnt0aGlzLnNlbGVjdGVkRG9tYWluPWEuZGV0YWlsLmRvbWFpbnx8YS5kZXRhaWwsdGhpcy5jdXJyZW50VGFiPSJkb21haW4tZGV0YWlsIn19CiAgICAgID48L3N6LW5ldHdvcmstZG9tYWlucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5EZXRhaWxWaWV3KCl7bGV0IHI9dGhpcy5uZXR3b3JrU3RhdGUuZG9tYWlucy5maW5kKHM9PnMuZG9tYWluPT09dGhpcy5zZWxlY3RlZERvbWFpbiksYT10aGlzLm5ldHdvcmtTdGF0ZS5jZXJ0aWZpY2F0ZXMuZmluZChzPT5zLmNlcnREb21haW49PT10aGlzLnNlbGVjdGVkRG9tYWluKTtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW4gRGV0YWlsczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7cj97aWQ6dGhpcy5zZWxlY3RlZERvbWFpbixuYW1lOnRoaXMuc2VsZWN0ZWREb21haW4sc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiIn06bnVsbH0KICAgICAgICAuY2VydGlmaWNhdGU9JHthP3tpZDphLmRvbWFpbklkLGRvbWFpbjphLmNlcnREb21haW4saXNzdWVyOiJMZXQncyBFbmNyeXB0Iix2YWxpZEZyb206YS5pc3N1ZWRBdD9uZXcgRGF0ZShhLmlzc3VlZEF0KS50b0lTT1N0cmluZygpOiIiLHZhbGlkVW50aWw6YS5leHBpcmVzQXQ/bmV3IERhdGUoYS5leHBpcmVzQXQpLnRvSVNPU3RyaW5nKCk6IiIsZGF5c1JlbWFpbmluZzphLmV4cGlyZXNBdD9NYXRoLmZsb29yKChhLmV4cGlyZXNBdC1EYXRlLm5vdygpKS8oMTQ0MCo2MCoxZTMpKTowLHN0YXR1czphLmlzVmFsaWQ/InZhbGlkIjoiZXhwaXJlZCIsYXV0b1JlbmV3OiEwfTpudWxsfQogICAgICAgIC5kbnNSZWNvcmRzPSR7dGhpcy5uZXR3b3JrU3RhdGUuZG5zUmVjb3Jkcy5maWx0ZXIocz0+cy5kb21haW4/LmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWREb21haW4pKS5tYXAocz0+KHtpZDpzLmlkfHwiIix0eXBlOnMudHlwZSxuYW1lOnMuZG9tYWluLHZhbHVlOnMudmFsdWUsdHRsOjM2MDB9KSl9CiAgICAgICAgQHJlbmV3LWNlcnRpZmljYXRlPSR7KCk9PntRci5kaXNwYXRjaEFjdGlvbihMbmEse2RvbWFpbjp0aGlzLnNlbGVjdGVkRG9tYWlufSl9fQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICBgfX07aDI9JGkoRG9hKSx3YnQ9bmV3IFdlYWtNYXAsa2J0PW5ldyBXZWFrTWFwLFNidD1uZXcgV2Vha01hcCxEdChoMiw0LCJuZXR3b3JrU3RhdGUiLExvYSxUZCx3YnQpLER0KGgyLDQsImN1cnJlbnRUYWIiLFRvYSxUZCxrYnQpLER0KGgyLDQsInNlbGVjdGVkRG9tYWluIixfb2EsVGQsU2J0KSxUZD1EdChoMiwwLCJPYlZpZXdOZXR3b3JrIiwkb2EsVGQpLGkoVGQsIk9iVmlld05ldHdvcmsiKSxnaShUZCwic3R5bGVzIixbb3IuZGVmYXVsdFN0eWxlcyxTbiwkcmBgXSksWGUoaDIsMSxUZCk7TWJ0PVRkfSk7dmFyIE5vYT17fTtWZShOb2Ese09iVmlld0RvbWFpbnM6KCk9Pl9idH0pO3ZhciBFb2EsSW9hLFBvYSxRdyx6YnQsTWYsX2J0LE9vYT11KGFzeW5jKCk9PntSYygpO28xKCk7YXdhaXQgcDIoKTtObygpO1BvYT1bdmkoIm9iLXZpZXctZG9tYWlucyIpXTtNZj1jbGFzcyBNZiBleHRlbmRzKElvYT15aSxFb2E9W1p0KCldLElvYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsemJ0LFhlKFF3LDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksWGUoUXcsMTEsdGhpcyk7bGV0IHI9UXIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFFyLmRpc3BhdGNoQWN0aW9uKFZndCxudWxsKX1yZW5kZXIoKXtsZXQgcj10aGlzLm5ldHdvcmtTdGF0ZS5nYXRld2F5RG9tYWlucztyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW5zPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0ibXV0ZWQiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxNnB4OyI+CiAgICAgICAgRG9tYWlucyBhcmUgbWFuYWdlZCBpbiBkY3JvdXRlci4gT25lYm94IHNob3dzIGdhdGV3YXkgdmlzaWJpbGl0eSBmb3IgZGVwbG95ZWQgc2VydmljZXMuCiAgICAgIDwvZGl2PgogICAgICAke3IubGVuZ3RoP1FlYAogICAgICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgICAgIC5oZWFkaW5nMT0keyJHYXRld2F5IERvbWFpbnMifQogICAgICAgICAgICAgIC5oZWFkaW5nMj0keyJEb21haW5zIGltcG9ydGVkIGZyb20gZGNyb3V0ZXIgZ2F0ZXdheSB2aXNpYmlsaXR5In0KICAgICAgICAgICAgICAuZGF0YT0ke3J9CiAgICAgICAgICAgICAgLnNob3dDb2x1bW5GaWx0ZXJzPSR7ITB9CiAgICAgICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2E9Pih7RG9tYWluOlFlYAogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbiI+JHthLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgJHthLnByb3ZpZGVySWQ/UWVgPGRpdiBjbGFzcz0ibXV0ZWQiPlByb3ZpZGVyOiAke2EucHJvdmlkZXJJZH08L2Rpdj5gOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGAsU291cmNlOlFlYDxzcGFuIGNsYXNzPSJiYWRnZSI+JHthLnNvdXJjZXx8ImRjcm91dGVyIn08L3NwYW4+YCxBdXRob3JpdGF0aXZlOmEuYXV0aG9yaXRhdGl2ZT8iWWVzIjoiTm8iLFNlcnZpY2VzOmEuc2VydmljZUNvdW50fHwwfSl9CiAgICAgICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOnJvdGF0ZUN3Iix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKCk9Pnthd2FpdCBRci5kaXNwYXRjaEFjdGlvbihWZ3QsbnVsbCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNYW5hZ2UgaW4gZGNyb3V0ZXIiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYzppKGE9PiEhYS5tYW5hZ2VVcmwsImFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYyIpLGFjdGlvbkZ1bmM6aShhc3luYyBhPT57YS5pdGVtLm1hbmFnZVVybCYmZ2xvYmFsVGhpcy5vcGVuKGEuaXRlbS5tYW5hZ2VVcmwsIl9ibGFuayIsIm5vb3BlbmVyIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgICAgIGA6UWVgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGdhdGV3YXkgZG9tYWlucyBmb3VuZC4gQ29uZmlndXJlIGEgZGNyb3V0ZXIgZ2F0ZXdheSBpbiBTZXR0aW5ncy48L2Rpdj5gfQogICAgYH19O1F3PSRpKElvYSksemJ0PW5ldyBXZWFrTWFwLER0KFF3LDQsIm5ldHdvcmtTdGF0ZSIsRW9hLE1mLHpidCksTWY9RHQoUXcsMCwiT2JWaWV3RG9tYWlucyIsUG9hLE1mKSxpKE1mLCJPYlZpZXdEb21haW5zIiksZ2koTWYsInN0eWxlcyIsW29yLmRlZmF1bHRTdHlsZXMsU24sJHJgCiAgICAgIC5kb21haW4geyBmb250LXdlaWdodDogNjAwOyB9CiAgICAgIC5tdXRlZCB7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjNzE3MTdhKTsgZm9udC1zaXplOiAxM3B4OyB9CiAgICAgIC5iYWRnZSB7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBwYWRkaW5nOiAzcHggOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjZjRmNGY1KTsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgIC5lbXB0eSB7IHBhZGRpbmc6IDMycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyB9CiAgICBgXSksWGUoUXcsMSxNZik7X2J0PU1mfSk7dmFyIEhvYT17fTtWZShIb2Ese09iVmlld0Ruc1JlY29yZHM6KCk9PkxidH0pO3ZhciBSb2EsRm9hLEJvYSxYdyxUYnQsQ2YsTGJ0LHFvYT11KGFzeW5jKCk9PntSYygpO28xKCk7YXdhaXQgcDIoKTthd2FpdCBUZygpO05vKCk7Qm9hPVt2aSgib2Itdmlldy1kbnMtcmVjb3JkcyIpXTtDZj1jbGFzcyBDZiBleHRlbmRzKEZvYT15aSxSb2E9W1p0KCldLEZvYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsVGJ0LFhlKFh3LDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksWGUoWHcsMTEsdGhpcyk7bGV0IHI9UXIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFFyLmRpc3BhdGNoQWN0aW9uKGpndCxudWxsKX1yZW5kZXIoKXtsZXQgcj10aGlzLm5ldHdvcmtTdGF0ZS5nYXRld2F5RG5zUmVjb3JkcztyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5ETlMgUmVjb3Jkczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgICR7ci5sZW5ndGg/UWVgCiAgICAgICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICAgICAgLmhlYWRpbmcxPSR7IkdhdGV3YXkgRE5TIFJlY29yZHMifQogICAgICAgICAgICAgIC5oZWFkaW5nMj0keyJETlMgcmVjb3JkcyBwdWJsaXNoZWQgdGhyb3VnaCBkY3JvdXRlciBmb3IgT25lYm94IHNlcnZpY2VzIn0KICAgICAgICAgICAgICAuZGF0YT0ke3J9CiAgICAgICAgICAgICAgLnNob3dDb2x1bW5GaWx0ZXJzPSR7ITB9CiAgICAgICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2E9Pih7TmFtZTpRZWAKICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lIj4ke2EubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAke2EuZG9tYWluTmFtZT9RZWA8ZGl2IGNsYXNzPSJtdXRlZCI+JHthLmRvbWFpbk5hbWV9PC9kaXY+YDoiIn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgLFR5cGU6UWVgPHNwYW4gY2xhc3M9ImJhZGdlIj4ke2EudHlwZX08L3NwYW4+YCxWYWx1ZTpRZWA8c3BhbiBjbGFzcz0idmFsdWUiPiR7YS52YWx1ZXx8Ii0ifTwvc3Bhbj5gLFN0YXR1czpRZWA8c3BhbiBjbGFzcz0ke2Euc3RhdHVzPT09Im1pc3NpbmciPyJtaXNzaW5nIjoiIn0+JHthLnN0YXR1c308L3NwYW4+YCxTZXJ2aWNlOmEuc2VydmljZU5hbWV8fGEuYXBwSWR8fCItIn0pfQogICAgICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGVDdyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57YXdhaXQgUXIuZGlzcGF0Y2hBY3Rpb24oamd0LG51bGwpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiVmlldyBzZXJ2aWNlIixpY29uTmFtZToibHVjaWRlOmJveGVzIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57YzEubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNYW5hZ2UgaW4gZGNyb3V0ZXIiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYzppKGE9PiEhYS5tYW5hZ2VVcmwsImFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYyIpLGFjdGlvbkZ1bmM6aShhc3luYyBhPT57YS5pdGVtLm1hbmFnZVVybCYmZ2xvYmFsVGhpcy5vcGVuKGEuaXRlbS5tYW5hZ2VVcmwsIl9ibGFuayIsIm5vb3BlbmVyIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgICAgIGA6UWVgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGdhdGV3YXkgRE5TIHJlY29yZHMgZm91bmQuIENvbmZpZ3VyZSBhIGRjcm91dGVyIGdhdGV3YXkgaW4gU2V0dGluZ3MuPC9kaXY+YH0KICAgIGB9fTtYdz0kaShGb2EpLFRidD1uZXcgV2Vha01hcCxEdChYdyw0LCJuZXR3b3JrU3RhdGUiLFJvYSxDZixUYnQpLENmPUR0KFh3LDAsIk9iVmlld0Ruc1JlY29yZHMiLEJvYSxDZiksaShDZiwiT2JWaWV3RG5zUmVjb3JkcyIpLGdpKENmLCJzdHlsZXMiLFtvci5kZWZhdWx0U3R5bGVzLFNuLCRyYAogICAgICAubmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAgICAgLnZhbHVlIHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTsgfQogICAgICAubXV0ZWQgeyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAuYmFkZ2UgeyBib3JkZXItcmFkaXVzOiA5OTlweDsgcGFkZGluZzogM3B4IDhweDsgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgI2Y0ZjRmNSk7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAubWlzc2luZyB7IGNvbG9yOiAjZGMyNjI2OyB9CiAgICAgIC5lbXB0eSB7IHBhZGRpbmc6IDMycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyB9CiAgICBgXSksWGUoWHcsMSxDZik7TGJ0PUNmfSk7dmFyIEdvYT17fTtWZShHb2Ese09iVmlld1JlZ2lzdHJpZXM6KCk9PkFidH0pO3ZhciBWb2Esam9hLFVvYSxXb2EsSTMsRGJ0LCRidCxQMyxBYnQsRWJ0PXUoYXN5bmMoKT0+e28xKCk7UmMoKTthd2FpdCBwMigpO2F3YWl0IFRnKCk7Tm8oKTtXb2E9W3ZpKCJvYi12aWV3LXJlZ2lzdHJpZXMiKV07UDM9Y2xhc3MgUDMgZXh0ZW5kcyhVb2E9eWksam9hPVtadCgpXSxWb2E9W1p0KCldLFVvYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsRGJ0LFhlKEkzLDgsdGhpcyx7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9KSksWGUoSTMsMTEsdGhpcyk7dHIodGhpcywkYnQsWGUoSTMsMTIsdGhpcywib25lYm94IikpLFhlKEkzLDE1LHRoaXMpO2xldCByPUJjLnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMucmVnaXN0cmllc1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBCYy5kaXNwYXRjaEFjdGlvbihNbWUsbnVsbCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFRhYj09PSJleHRlcm5hbCI/dGhpcy5yZW5kZXJFeHRlcm5hbFZpZXcoKTp0aGlzLnJlbmRlck9uZWJveFZpZXcoKX1yZW5kZXJPbmVib3hWaWV3KCl7cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+UmVnaXN0cmllczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50CiAgICAgICAgLnN0YXR1cz0keyJydW5uaW5nIn0KICAgICAgICAucmVnaXN0cnlVcmw9JHsibG9jYWxob3N0OjUwMDAifQogICAgICAgIEBtYW5hZ2UtdG9rZW5zPSR7KCk9PntjMS5uYXZpZ2F0ZVRvVmlldygidG9rZW5zIil9fQogICAgICA+PC9zei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50PgogICAgYH1yZW5kZXJFeHRlcm5hbFZpZXcoKXtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5FeHRlcm5hbCBSZWdpc3RyaWVzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1tdfQogICAgICAgIEBhZGQ9JHtyPT57Y29uc29sZS5sb2coIkFkZCBleHRlcm5hbCByZWdpc3RyeToiLHIuZGV0YWlsKX19CiAgICAgID48L3N6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXc+CiAgICBgfX07STM9JGkoVW9hKSxEYnQ9bmV3IFdlYWtNYXAsJGJ0PW5ldyBXZWFrTWFwLER0KEkzLDQsInJlZ2lzdHJpZXNTdGF0ZSIsam9hLFAzLERidCksRHQoSTMsNCwiY3VycmVudFRhYiIsVm9hLFAzLCRidCksUDM9RHQoSTMsMCwiT2JWaWV3UmVnaXN0cmllcyIsV29hLFAzKSxpKFAzLCJPYlZpZXdSZWdpc3RyaWVzIiksZ2koUDMsInN0eWxlcyIsW29yLmRlZmF1bHRTdHlsZXMsU24sJHJgYF0pLFhlKEkzLDEsUDMpO0FidD1QM30pO3ZhciBRb2E9e307VmUoUW9hLHtPYlZpZXdUb2tlbnM6KCk9PlBidH0pO3ZhciBZb2EsS29hLFpvYSxKdyxJYnQsemYsUGJ0LE5idD11KGFzeW5jKCk9PntvMSgpO1JjKCk7YXdhaXQgcDIoKTtObygpO1pvYT1bdmkoIm9iLXZpZXctdG9rZW5zIildO3pmPWNsYXNzIHpmIGV4dGVuZHMoS29hPXlpLFlvYT1bWnQoKV0sS29hKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dHIodGhpcyxJYnQsWGUoSncsOCx0aGlzLHt0b2tlbnM6W10scmVnaXN0cnlTdGF0dXM6bnVsbH0pKSxYZShKdywxMSx0aGlzKTtsZXQgcj1CYy5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLnJlZ2lzdHJpZXNTdGF0ZT1hfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChyKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgQmMuZGlzcGF0Y2hBY3Rpb24oTW1lLG51bGwpfXJlbmRlcigpe2xldCByPXRoaXMucmVnaXN0cmllc1N0YXRlLnRva2Vucy5maWx0ZXIocz0+cy50eXBlPT09Imdsb2JhbCIpLGE9dGhpcy5yZWdpc3RyaWVzU3RhdGUudG9rZW5zLmZpbHRlcihzPT5zLnR5cGU9PT0iY2kiKTtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Ub2tlbnM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otdG9rZW5zLXZpZXcKICAgICAgICAuZ2xvYmFsVG9rZW5zPSR7ci5tYXAocz0+KHtpZDpzLmlkLG5hbWU6cy5uYW1lLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OnMuY3JlYXRlZEF0LGxhc3RVc2VkOnMubGFzdFVzZWR9KSl9CiAgICAgICAgLmNpVG9rZW5zPSR7YS5tYXAocz0+KHtpZDpzLmlkLG5hbWU6cy5uYW1lLHR5cGU6ImNpIixzZXJ2aWNlOnMuc2VydmljZSxjcmVhdGVkQXQ6cy5jcmVhdGVkQXQsbGFzdFVzZWQ6cy5sYXN0VXNlZH0pKX0KICAgICAgICBAY3JlYXRlPSR7cz0+e0JjLmRpc3BhdGNoQWN0aW9uKERuYSx7dG9rZW46e25hbWU6YG5ldy0ke3MuZGV0YWlsLnR5cGV9LXRva2VuYCx0eXBlOnMuZGV0YWlsLnR5cGUscGVybWlzc2lvbnM6WyJwdWxsIl19fSl9fQogICAgICAgIEBkZWxldGU9JHtzPT57QmMuZGlzcGF0Y2hBY3Rpb24oJG5hLHt0b2tlbklkOnMuZGV0YWlsLmlkfHxzLmRldGFpbC50b2tlbklkfSl9fQogICAgICA+PC9zei10b2tlbnMtdmlldz4KICAgIGB9fTtKdz0kaShLb2EpLElidD1uZXcgV2Vha01hcCxEdChKdyw0LCJyZWdpc3RyaWVzU3RhdGUiLFlvYSx6ZixJYnQpLHpmPUR0KEp3LDAsIk9iVmlld1Rva2VucyIsWm9hLHpmKSxpKHpmLCJPYlZpZXdUb2tlbnMiKSxnaSh6Ziwic3R5bGVzIixbb3IuZGVmYXVsdFN0eWxlcyxTbiwkcmBgXSksWGUoSncsMSx6Zik7UGJ0PXpmfSk7dmFyIHIxYT17fTtWZShyMWEse09iVmlld1NldHRpbmdzOigpPT5GYnR9KTt2YXIgWG9hLEpvYSxlMWEsdDFhLE4zLE9idCxSYnQsTzMsRmJ0LEJidD11KGFzeW5jKCk9PntvMSgpO1JjKCk7YXdhaXQgcDIoKTtObygpO3QxYT1bdmkoIm9iLXZpZXctc2V0dGluZ3MiKV07TzM9Y2xhc3MgTzMgZXh0ZW5kcyhlMWE9eWksSm9hPVtadCgpXSxYb2E9W1p0KCldLGUxYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsT2J0LFhlKE4zLDgsdGhpcyx7c2V0dGluZ3M6bnVsbCxiYWNrdXBQYXNzd29yZENvbmZpZ3VyZWQ6ITEsbWFuYWdlZERjUm91dGVyU3RhdHVzOm51bGx9KSksWGUoTjMsMTEsdGhpcyk7dHIodGhpcyxSYnQsWGUoTjMsMTIsdGhpcyx7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfSkpLFhlKE4zLDE1LHRoaXMpO2xldCByPW5uLnNlbGVjdChzPT5zKS5zdWJzY3JpYmUocz0+e3RoaXMuc2V0dGluZ3NTdGF0ZT1zfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChyKTtsZXQgYT1HaS5zZWxlY3Qocz0+cykuc3Vic2NyaWJlKHM9Pnt0aGlzLmxvZ2luU3RhdGU9c30pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IG5uLmRpc3BhdGNoQWN0aW9uKFVndCxudWxsKX1yZW5kZXIoKXtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5TZXR0aW5nczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgICR7dGhpcy5yZW5kZXJBZG1pblVpU2V0dGluZ3MoKX0KICAgICAgJHt0aGlzLnJlbmRlckV4dGVybmFsR2F0ZXdheVNldHRpbmdzKCl9CiAgICAgIDxzei1zZXR0aW5ncy12aWV3CiAgICAgICAgLnNldHRpbmdzPSR7dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzfHx7ZGFya01vZGU6ITAsY2xvdWRmbGFyZVRva2VuOiIiLGNsb3VkZmxhcmVab25lSWQ6IiIsYWRtaW5VaURvbWFpbjoiIixkY3JvdXRlck1vZGU6Im1hbmFnZWQiLGRjcm91dGVyTWFuYWdlZEltYWdlOiJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IixkY3JvdXRlck1hbmFnZWRPcHNQb3J0OjMzMDAsZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnQ6ODAsZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0OjQ0MyxkY3JvdXRlck1hbmFnZWREYXRhRGlyOiIuLy5ub2dpdC9kY3JvdXRlci1kYXRhIixkY3JvdXRlckdhdGV3YXlDbGllbnRJZDoiIixkY3JvdXRlcldvcmtIb3N0ZXJJZDoiIixhdXRvUmVuZXdDZXJ0czohMSxyZW5ld2FsVGhyZXNob2xkOjMwLGFjbWVFbWFpbDoiIixodHRwUG9ydDo4MCxodHRwc1BvcnQ6NDQzLGZvcmNlSHR0cHM6ITF9fQogICAgICAgIC5jdXJyZW50VXNlcj0ke3RoaXMubG9naW5TdGF0ZS5pZGVudGl0eT8udXNlcm5hbWV8fCJhZG1pbiJ9CiAgICAgICAgQHNldHRpbmctY2hhbmdlPSR7cj0+e2xldHtrZXk6YSx2YWx1ZTpzfT1yLmRldGFpbDtubi5kaXNwYXRjaEFjdGlvbihrYWUse3NldHRpbmdzOntbYV06c319KX19CiAgICAgICAgQHNhdmU9JHtyPT57bm4uZGlzcGF0Y2hBY3Rpb24oa2FlLHtzZXR0aW5nczpyLmRldGFpbH0pfX0KICAgICAgICBAY2hhbmdlLXBhc3N3b3JkPSR7cj0+e2NvbnNvbGUubG9nKCJDaGFuZ2UgcGFzc3dvcmQgcmVxdWVzdGVkOiIsci5kZXRhaWwpfX0KICAgICAgICBAcmVzZXQ9JHsoKT0+e25uLmRpc3BhdGNoQWN0aW9uKFVndCxudWxsKX19CiAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICBgfXJlbmRlckFkbWluVWlTZXR0aW5ncygpe2xldCByPXRoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5ncztyZXR1cm4gUWVgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJnYXRld2F5LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2F0ZXdheS10aXRsZSI+T25lYm94IEFkbWluIFVJPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2F0ZXdheS1zdWJ0aXRsZSI+Q29uZmlndXJlIHRoZSBwdWJsaWMgaG9zdG5hbWUgZm9yIHRoaXMgT25lYm94IGRhc2hib2FyZDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJhZG1pblVpRG9tYWluIiwiQWRtaW4gVUkgRG9tYWluIixyPy5hZG1pblVpRG9tYWlufHwiIiwiRXhhbXBsZTogb25lYm94LmV4YW1wbGUuY29tLiBMZWF2ZSBlbXB0eSB0byBkaXNhYmxlIHRoZSBwdWJsaWMgQWRtaW4gVUkgcm91dGUuIil9CiAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheVJlYWRvbmx5KCJMb2NhbCBUYXJnZXQiLCJPbmVib3ggT3BzU2VydmVyIG9uIHBvcnQgMzAwMCIsIlRoZSBleHRlcm5hbCBnYXRld2F5IGZvcndhcmRzIHRvIFNtYXJ0UHJveHksIHdoaWNoIGZvcndhcmRzIHRoaXMgaG9zdG5hbWUgdG8gdGhlIE9uZWJveCBBZG1pbiBVSS4iKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImdhdGV3YXktZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIHR5cGU9ImJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc2F2ZUFkbWluVWlTZXR0aW5ncygpfT4KICAgICAgICAgICAgU2F2ZSBBZG1pbiBVSSBEb21haW4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKXtsZXQgcj10aGlzLnNldHRpbmdzU3RhdGUuc2V0dGluZ3MsYT1yPy5kY3JvdXRlck1vZGV8fCJtYW5hZ2VkIjtyZXR1cm4gUWVgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJnYXRld2F5LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2F0ZXdheS10aXRsZSI+ZGNyb3V0ZXIgR2F0ZXdheTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktc3VidGl0bGUiPlJ1biBhIGxvY2FsIG1hbmFnZWQgZGNyb3V0ZXIgb3IgZGVsZWdhdGUgcm91dGluZyB0byBhbiBleHRlcm5hbCBkY3JvdXRlcjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktbW9kZS1yb3ciPgogICAgICAgICAgJHt0aGlzLnJlbmRlck1vZGVCdXR0b24oIm1hbmFnZWQiLCJNYW5hZ2VkIExvY2FsIixhKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJleHRlcm5hbCIsIkV4dGVybmFsIGRjcm91dGVyIixhKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJkaXNhYmxlZCIsIkRpc2FibGVkIixhKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke2E9PT0ibWFuYWdlZCI/dGhpcy5yZW5kZXJNYW5hZ2VkR2F0ZXdheVN0YXR1cygpOm51bGx9CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1jb250ZW50Ij4KICAgICAgICAgICR7YT09PSJtYW5hZ2VkIj9RZWAKICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkSW1hZ2UiLCJkY3JvdXRlciBJbWFnZSIscj8uZGNyb3V0ZXJNYW5hZ2VkSW1hZ2V8fCJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IiwiT0NJIGltYWdlIHVzZWQgZm9yIHRoZSBtYW5hZ2VkIGxvY2FsIGdhdGV3YXkuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyTWFuYWdlZERhdGFEaXIiLCJEYXRhIERpcmVjdG9yeSIscj8uZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcnx8Ii4vLm5vZ2l0L2Rjcm91dGVyLWRhdGEiLCJIb3N0IGRpcmVjdG9yeSBtb3VudGVkIGludG8gdGhlIGRjcm91dGVyIGNvbnRhaW5lci4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydCIsIkxvY2FsIE9wcyBQb3J0IixTdHJpbmcocj8uZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydHx8MzMwMCksIkJvdW5kIHRvIDEyNy4wLjAuMSBmb3IgT25lYm94IHRvIGNhbGwgZGNyb3V0ZXIgQVBJcy4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnQiLCJQdWJsaWMgSFRUUCBQb3J0IixTdHJpbmcocj8uZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnR8fDgwKSwiSG9zdCBwb3J0IG93bmVkIGJ5IGRjcm91dGVyIGZvciBIVFRQIGluZ3Jlc3MuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCIsIlB1YmxpYyBIVFRQUyBQb3J0IixTdHJpbmcocj8uZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0fHw0NDMpLCJIb3N0IHBvcnQgb3duZWQgYnkgZGNyb3V0ZXIgZm9yIEhUVFBTIGluZ3Jlc3MuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5UmVhZG9ubHkoIkdhdGV3YXkgQ2xpZW50IElEIixyPy5kY3JvdXRlckdhdGV3YXlDbGllbnRJZHx8cj8uZGNyb3V0ZXJXb3JrSG9zdGVySWR8fCJDcmVhdGVkIHdoZW4gbWFuYWdlZCBkY3JvdXRlciBzdGFydHMiLCJEaWFnbm9zdGljIG9ubHkuIE9uZWJveCBtYW5hZ2VzIHRoaXMgbG9jYWwgY2xpZW50IGF1dG9tYXRpY2FsbHkuIil9CiAgICAgICAgICBgOmE9PT0iZXh0ZXJuYWwiP1FlYAogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlckdhdGV3YXlVcmwiLCJHYXRld2F5IFVSTCIscj8uZGNyb3V0ZXJHYXRld2F5VXJsfHwiIiwiQmFzZSBVUkwgb2YgdGhlIGRjcm91dGVyIE9wc1NlcnZlci4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJHYXRld2F5QXBpVG9rZW4iLCJBUEkgVG9rZW4iLHI/LmRjcm91dGVyR2F0ZXdheUFwaVRva2VufHwiIiwiUmVxdWlyZXMgZ2F0ZXdheS1jbGllbnQgYWNjZXNzIGluIGRjcm91dGVyLiIsITApfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheVJlYWRvbmx5KCJHYXRld2F5IENsaWVudCBJRCIscj8uZGNyb3V0ZXJHYXRld2F5Q2xpZW50SWR8fHI/LmRjcm91dGVyV29ya0hvc3RlcklkfHwiRGVyaXZlZCBmcm9tIHRva2VuIiwiQ29uZmlndXJlIHRoaXMgaW4gZGNyb3V0ZXIgR2F0ZXdheSBDbGllbnRzLCBub3QgaW4gT25lYm94LiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlclRhcmdldEhvc3QiLCJUYXJnZXQgSG9zdCIscj8uZGNyb3V0ZXJUYXJnZXRIb3N0fHwiIiwiRGVmYXVsdHMgdG8gdGhlIGNvbmZpZ3VyZWQgc2VydmVyIElQIHdoZW4gZW1wdHkuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyVGFyZ2V0UG9ydCIsIlRhcmdldCBQb3J0IixTdHJpbmcocj8uZGNyb3V0ZXJUYXJnZXRQb3J0fHw4MCksIkludGVybmFsIEhUVFAgcG9ydCBkY3JvdXRlciBmb3J3YXJkcyB0by4iKX0KICAgICAgICAgIGA6UWVgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktZGlzYWJsZWQiPmRjcm91dGVyIHJvdXRlIGRlbGVnYXRpb24gaXMgZGlzYWJsZWQuIE9uZWJveCB3aWxsIGtlZXAgdXNpbmcgaXRzIGxvY2FsIFNtYXJ0UHJveHkgZGlyZWN0bHkuPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZ2F0ZXdheS1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgdHlwZT0iYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKX0+CiAgICAgICAgICAgIFNhdmUgZGNyb3V0ZXIgU2V0dGluZ3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyTW9kZUJ1dHRvbihyLGEscyl7cmV0dXJuIFFlYAogICAgICA8YnV0dG9uCiAgICAgICAgY2xhc3M9ImdhdGV3YXktbW9kZS1idXR0b24gJHtzPT09cj8iYWN0aXZlIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudXBkYXRlR2F0ZXdheURyYWZ0KCJkY3JvdXRlck1vZGUiLHIpfQogICAgICA+JHthfTwvYnV0dG9uPgogICAgYH1yZW5kZXJNYW5hZ2VkR2F0ZXdheVN0YXR1cygpe2xldCByPXRoaXMuc2V0dGluZ3NTdGF0ZS5tYW5hZ2VkRGNSb3V0ZXJTdGF0dXMsYT1yPy5ydW5uaW5nP3IuaGVhbHRoeT8iUnVubmluZyI6IlN0YXJ0aW5nIjoiU3RvcHBlZCI7cmV0dXJuIFFlYAogICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXN0YXR1cy1yb3ciPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXN0YXR1cy1sYWJlbCI+TWFuYWdlZCBkY3JvdXRlcjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1zdGF0dXMtdmFsdWUiPiR7YX0ke3I/LmdhdGV3YXlVcmw/YCBhdCAke3IuZ2F0ZXdheVVybH1gOiIifTwvZGl2PgogICAgICAgICAgJHtyPy5tZXNzYWdlP1FlYDxkaXYgY2xhc3M9ImdhdGV3YXktc3RhdHVzLWVycm9yIj4ke3IubWVzc2FnZX08L2Rpdj5gOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1hY3Rpb25zIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJTdGFydCJ9IC50eXBlPSR7ImRlZmF1bHQifSBAY2xpY2s9JHsoKT0+bm4uZGlzcGF0Y2hBY3Rpb24oTm5hLG51bGwpfT48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIC50ZXh0PSR7IlJlc3RhcnQifSAudHlwZT0keyJkZWZhdWx0In0gQGNsaWNrPSR7KCk9Pm5uLmRpc3BhdGNoQWN0aW9uKFJuYSxudWxsKX0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJTdG9wIn0gLnR5cGU9JHsiZGVmYXVsdCJ9IEBjbGljaz0keygpPT5ubi5kaXNwYXRjaEFjdGlvbihPbmEsbnVsbCl9PjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJHYXRld2F5SW5wdXQocixhLHMsbixvPSExKXtyZXR1cm4gUWVgCiAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktZmllbGQgJHtyPT09ImRjcm91dGVyR2F0ZXdheVVybCJ8fHI9PT0iYWRtaW5VaURvbWFpbiI/ImZ1bGwiOiIifSI+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLmtleT0ke3J9CiAgICAgICAgICAubGFiZWw9JHthfQogICAgICAgICAgLnZhbHVlPSR7c30KICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke259CiAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHtvfQogICAgICAgICAgQGlucHV0PSR7bD0+dGhpcy51cGRhdGVHYXRld2F5RHJhZnQocixsLnRhcmdldC52YWx1ZSl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR2F0ZXdheVJlYWRvbmx5KHIsYSxzKXtyZXR1cm4gUWVgCiAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktcmVhZG9ubHkiPgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktcmVhZG9ubHktbGFiZWwiPiR7cn08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXJlYWRvbmx5LXZhbHVlIj4ke2F9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1yZWFkb25seS1oaW50Ij4ke3N9PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH11cGRhdGVHYXRld2F5RHJhZnQocixhKXtsZXQgcz10aGlzLnNldHRpbmdzU3RhdGUuc2V0dGluZ3N8fHt9LG89bmV3IFNldChbImRjcm91dGVyVGFyZ2V0UG9ydCIsImRjcm91dGVyTWFuYWdlZE9wc1BvcnQiLCJkY3JvdXRlck1hbmFnZWRIdHRwUG9ydCIsImRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCJdKS5oYXMocik/TnVtYmVyKGEpfHwwOmE7dGhpcy5zZXR0aW5nc1N0YXRlPXsuLi50aGlzLnNldHRpbmdzU3RhdGUsc2V0dGluZ3M6ey4uLnMsW3JdOm99fX1hc3luYyBzYXZlRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKXtsZXQgcj10aGlzLnNldHRpbmdzU3RhdGUuc2V0dGluZ3M7ciYmKGF3YWl0IG5uLmRpc3BhdGNoQWN0aW9uKGthZSx7c2V0dGluZ3M6e2Rjcm91dGVyTW9kZTpyLmRjcm91dGVyTW9kZXx8Im1hbmFnZWQiLGRjcm91dGVyTWFuYWdlZEltYWdlOnIuZGNyb3V0ZXJNYW5hZ2VkSW1hZ2V8fCJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IixkY3JvdXRlck1hbmFnZWRPcHNQb3J0Ok51bWJlcihyLmRjcm91dGVyTWFuYWdlZE9wc1BvcnQpfHwzMzAwLGRjcm91dGVyTWFuYWdlZEh0dHBQb3J0Ok51bWJlcihyLmRjcm91dGVyTWFuYWdlZEh0dHBQb3J0KXx8ODAsZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0Ok51bWJlcihyLmRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCl8fDQ0MyxkY3JvdXRlck1hbmFnZWREYXRhRGlyOnIuZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcnx8Ii4vLm5vZ2l0L2Rjcm91dGVyLWRhdGEiLGRjcm91dGVyR2F0ZXdheVVybDpyLmRjcm91dGVyR2F0ZXdheVVybHx8IiIsZGNyb3V0ZXJHYXRld2F5QXBpVG9rZW46ci5kY3JvdXRlckdhdGV3YXlBcGlUb2tlbnx8IiIsZGNyb3V0ZXJUYXJnZXRIb3N0OnIuZGNyb3V0ZXJUYXJnZXRIb3N0fHwiIixkY3JvdXRlclRhcmdldFBvcnQ6TnVtYmVyKHIuZGNyb3V0ZXJUYXJnZXRQb3J0KXx8ODB9fSksYXdhaXQgbm4uZGlzcGF0Y2hBY3Rpb24oUG5hLG51bGwpKX1hc3luYyBzYXZlQWRtaW5VaVNldHRpbmdzKCl7bGV0IHI9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzO3ImJmF3YWl0IG5uLmRpc3BhdGNoQWN0aW9uKGthZSx7c2V0dGluZ3M6e2FkbWluVWlEb21haW46ci5hZG1pblVpRG9tYWlufHwiIn19KX19O04zPSRpKGUxYSksT2J0PW5ldyBXZWFrTWFwLFJidD1uZXcgV2Vha01hcCxEdChOMyw0LCJzZXR0aW5nc1N0YXRlIixKb2EsTzMsT2J0KSxEdChOMyw0LCJsb2dpblN0YXRlIixYb2EsTzMsUmJ0KSxPMz1EdChOMywwLCJPYlZpZXdTZXR0aW5ncyIsdDFhLE8zKSxpKE8zLCJPYlZpZXdTZXR0aW5ncyIpLGdpKE8zLCJzdHlsZXMiLFtvci5kZWZhdWx0U3R5bGVzLFNuLCRyYAogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmdhdGV3YXktY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtcm93LAogICAgICAuZ2F0ZXdheS1zdGF0dXMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7b3IuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtcm93IHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtYnV0dG9uIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke29yLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7b3IuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7b3IuYmRUaGVtZSgiIzNmM2Y0NiIsIiNkNGQ0ZDgiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udDogaW5oZXJpdDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke29yLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7b3IuYmRUaGVtZSgiI2VmZjZmZiIsIiMxNzI1NTQiKX07CiAgICAgICAgY29sb3I6ICR7b3IuYmRUaGVtZSgiIzFkNGVkOCIsIiNiZmRiZmUiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXN0YXR1cy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktc3RhdHVzLXZhbHVlIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdGF0dXMtZXJyb3IsCiAgICAgIC5nYXRld2F5LWRpc2FibGVkIHsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCIjYjkxYzFjIiwiI2ZjYTVhNSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWRpc2FibGVkIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1maWVsZC5mdWxsIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1yZWFkb25seSB7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7b3IuYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7b3IuYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXJlYWRvbmx5LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCIjNTI1MjViIiwiI2Q0ZDRkOCIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktcmVhZG9ubHktdmFsdWUgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7b3IuYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1yZWFkb25seS1oaW50IHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtvci5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgICAgIC5nYXRld2F5LWNvbnRlbnQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQoKICAgICAgICAuZ2F0ZXdheS1zdGF0dXMtcm93IHsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdKSxYZShOMywxLE8zKTtGYnQ9TzN9KTtvMSgpO2F3YWl0IHAyKCk7R3coKTthd2FpdCBUZygpO05vKCk7dmFyIGkxYSxzMWEsbjFhLG8xYSxsMWEsYzFhLGQxYSx1MWEsaHMsSGJ0LHFidCxWYnQsamJ0LFVidCxXYnQ7dTFhPVt2aSgib2ItYXBwLXNoZWxsIildO3ZhciB2bD1jbGFzcyB2bCBleHRlbmRzKGQxYT15aSxjMWE9W1p0KCldLGwxYT1bWnQoKV0sbzFhPVtadCgpXSxuMWE9W1p0KCldLHMxYT1bWnQoKV0saTFhPVtadCgpXSxkMWEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0cih0aGlzLEhidCxYZShocyw4LHRoaXMse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0pKSxYZShocywxMSx0aGlzKTt0cih0aGlzLHFidCxYZShocywxMix0aGlzLHthY3RpdmVWaWV3OiJkYXNoYm9hcmQiLGFjdGl2ZVN1YnZpZXc6bnVsbCxhdXRvUmVmcmVzaDohMCxyZWZyZXNoSW50ZXJ2YWw6M2U0fSkpLFhlKGhzLDE1LHRoaXMpO3RyKHRoaXMsVmJ0LFhlKGhzLDE2LHRoaXMse3N0YXR1czpudWxsfSkpLFhlKGhzLDE5LHRoaXMpO3RyKHRoaXMsamJ0LFhlKGhzLDIwLHRoaXMsW10pKSxYZShocywyMyx0aGlzKTt0cih0aGlzLFVidCxYZShocywyNCx0aGlzLCExKSksWGUoaHMsMjcsdGhpcyk7dHIodGhpcyxXYnQsWGUoaHMsMjgsdGhpcywiIikpLFhlKGhzLDMxLHRoaXMpO2dpKHRoaXMsInZpZXdUYWJzIixbe3NsdWc6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFhndCgpLnRoZW4oKCk9PlhuYSkpLk9iVmlld0Rhc2hib2FyZCkoKX0se3NsdWc6ImFwcHMiLG5hbWU6IkFwcHMiLGljb25OYW1lOiJsdWNpZGU6c3RvcmUiLHN1YlZpZXdzOlt7c2x1ZzoiYXBwLXN0b3JlIixuYW1lOiJBcHAgU3RvcmUiLGljb25OYW1lOiJsdWNpZGU6c3RvcmUiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBmb2EoKS50aGVuKCgpPT5wb2EpKS5PYlZpZXdBcHBTdG9yZSkoKX0se3NsdWc6InNlcnZpY2VzIixuYW1lOiJTZXJ2aWNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpib3hlcyIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IHlidCgpLnRoZW4oKCk9PnpvYSkpLk9iVmlld1NlcnZpY2VzKSgpfV19LHtzbHVnOiJuZXR3b3JrIixuYW1lOiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOm5ldHdvcmsiLHN1YlZpZXdzOlt7c2x1ZzoicHJveHkiLG5hbWU6IlByb3h5IixpY29uTmFtZToibHVjaWRlOnJvdXRlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgQ2J0KCkudGhlbigoKT0+QW9hKSkuT2JWaWV3TmV0d29yaykoKX0se3NsdWc6ImRvbWFpbnMiLG5hbWU6IkRvbWFpbnMiLGljb25OYW1lOiJsdWNpZGU6Z2xvYmUiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBPb2EoKS50aGVuKCgpPT5Ob2EpKS5PYlZpZXdEb21haW5zKSgpfSx7c2x1ZzoiZG5zLXJlY29yZHMiLG5hbWU6IkROUyBSZWNvcmRzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgcW9hKCkudGhlbigoKT0+SG9hKSkuT2JWaWV3RG5zUmVjb3JkcykoKX1dfSx7c2x1ZzoicmVnaXN0cnkiLG5hbWU6IlJlZ2lzdHJ5IixpY29uTmFtZToibHVjaWRlOnBhY2thZ2UiLHN1YlZpZXdzOlt7c2x1ZzoicmVnaXN0cmllcyIsbmFtZToiUmVnaXN0cmllcyIsaWNvbk5hbWU6Imx1Y2lkZTpwYWNrYWdlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgRWJ0KCkudGhlbigoKT0+R29hKSkuT2JWaWV3UmVnaXN0cmllcykoKX0se3NsdWc6InRva2VucyIsbmFtZToiVG9rZW5zIixpY29uTmFtZToibHVjaWRlOmtleSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IE5idCgpLnRoZW4oKCk9PlFvYSkpLk9iVmlld1Rva2VucykoKX1dfSx7c2x1Zzoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgQmJ0KCkudGhlbigoKT0+cjFhKSkuT2JWaWV3U2V0dGluZ3MpKCl9XSk7Z2kodGhpcywicmVzb2x2ZWRWaWV3VGFicyIsW10pO2dpKHRoaXMsInN1cHByZXNzZWRVcGRhdGVWZXJzaW9uIiwiIik7Z2kodGhpcywidXBncmFkZUZsb3dSdW5uaW5nIiwhMSk7ZG9jdW1lbnQudGl0bGU9Ik9uZWJveCI7bGV0IHI9R2kuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5sb2dpblN0YXRlPW4sdGhpcy51cGRhdGVHbG9iYWxNZXNzYWdlcygpLG4uaXNMb2dnZWRJbiYmemQuZGlzcGF0Y2hBY3Rpb24oS3csbnVsbCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBhPXpkLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuc3lzdGVtU3RhdGU9bix0aGlzLnVwZGF0ZUdsb2JhbE1lc3NhZ2VzKCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBzPXhsLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMudWlTdGF0ZT1uLHRoaXMuc3luY0FwcGRhc2hWaWV3KG4uYWN0aXZlVmlldyxuLmFjdGl2ZVN1YnZpZXcpfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChzKX1hc3luYyByZXNvbHZlVmlld1RhYnMocil7cmV0dXJuIFByb21pc2UuYWxsKHIubWFwKGFzeW5jIGE9PntsZXQgcz17c2x1ZzphLnNsdWcsbmFtZTphLm5hbWUsaWNvbk5hbWU6YS5pY29uTmFtZX07cmV0dXJuIGEuZWxlbWVudCYmKHMuZWxlbWVudD1hd2FpdCBhLmVsZW1lbnQpLGEuc3ViVmlld3MmJihzLnN1YlZpZXdzPWF3YWl0IHRoaXMucmVzb2x2ZVZpZXdUYWJzKGEuc3ViVmlld3MpKSxzfSkpfXNsdWdGb3Iocil7cmV0dXJuIHIuc2x1Zz8/ci5uYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKX1maW5kUGFyZW50KHIpe3JldHVybiB0aGlzLnJlc29sdmVkVmlld1RhYnMuZmluZChhPT5hLnN1YlZpZXdzPy5pbmNsdWRlcyhyKSl9ZmluZFZpZXdCeVNsdWcocixhKXtsZXQgcz10aGlzLnJlc29sdmVkVmlld1RhYnMuZmluZChuPT50aGlzLnNsdWdGb3Iobik9PT1yKTtpZihzKXJldHVybiBhJiZzLnN1YlZpZXdzP3Muc3ViVmlld3MuZmluZChuPT50aGlzLnNsdWdGb3Iobik9PT1hKT8/czpzfWdldCBjdXJyZW50Vmlld1RhYigpe2lmKHRoaXMucmVzb2x2ZWRWaWV3VGFicy5sZW5ndGghPT0wKXJldHVybiB0aGlzLmZpbmRWaWV3QnlTbHVnKHRoaXMudWlTdGF0ZS5hY3RpdmVWaWV3LHRoaXMudWlTdGF0ZS5hY3RpdmVTdWJ2aWV3KT8/dGhpcy5yZXNvbHZlZFZpZXdUYWJzWzBdfXJlbmRlcigpe3JldHVybiBRZWAKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRlZXMtc2ltcGxlLWxvZ2luIG5hbWU9Ik9uZWJveCI+CiAgICAgICAgICA8ZGVlcy1zaW1wbGUtYXBwZGFzaAogICAgICAgICAgICBuYW1lPSJPbmVib3giCiAgICAgICAgICAgIC52aWV3VGFicz0ke3RoaXMucmVzb2x2ZWRWaWV3VGFic30KICAgICAgICAgICAgLnNlbGVjdGVkVmlldz0ke3RoaXMuY3VycmVudFZpZXdUYWJ9CiAgICAgICAgICAgIC5nbG9iYWxNZXNzYWdlcz0ke3RoaXMuZ2xvYmFsTWVzc2FnZXN9CiAgICAgICAgICA+CiAgICAgICAgICA8L2RlZXMtc2ltcGxlLWFwcGRhc2g+CiAgICAgICAgPC9kZWVzLXNpbXBsZS1sb2dpbj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMucmVzb2x2ZWRWaWV3VGFicz1hd2FpdCB0aGlzLnJlc29sdmVWaWV3VGFicyh0aGlzLnZpZXdUYWJzKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCByPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpO3ImJnIuYWRkRXZlbnRMaXN0ZW5lcigibG9naW4iLG49Pnt0aGlzLmxvZ2luKG4uZGV0YWlsLmRhdGEudXNlcm5hbWUsbi5kZXRhaWwuZGF0YS5wYXNzd29yZCl9KTtsZXQgYT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKGEmJihhLmFkZEV2ZW50TGlzdGVuZXIoInZpZXctc2VsZWN0IixuPT57bGV0IG89bi5kZXRhaWwudmlldyxsPXRoaXMuZmluZFBhcmVudChvKSxjPXhsLmdldFN0YXRlKCk7aWYobCl7bGV0IGQ9dGhpcy5zbHVnRm9yKGwpLGY9dGhpcy5zbHVnRm9yKG8pO2lmKGMuYWN0aXZlVmlldz09PWQmJmMuYWN0aXZlU3Vidmlldz09PWYpcmV0dXJuO2MxLm5hdmlnYXRlVG9WaWV3KGQsZil9ZWxzZXtsZXQgZD10aGlzLnNsdWdGb3Iobyk7aWYoYy5hY3RpdmVWaWV3PT09ZCYmIWMuYWN0aXZlU3VidmlldylyZXR1cm47YzEubmF2aWdhdGVUb1ZpZXcoZCl9fSksYS5hZGRFdmVudExpc3RlbmVyKCJsb2dvdXQiLGFzeW5jKCk9Pnthd2FpdCBHaS5kaXNwYXRjaEFjdGlvbih2bWUsbnVsbCl9KSksYSYmdGhpcy5yZXNvbHZlZFZpZXdUYWJzLmxlbmd0aD4wKXtsZXQgbj14bC5nZXRTdGF0ZSgpLG89dGhpcy5maW5kVmlld0J5U2x1ZyhuLmFjdGl2ZVZpZXcsbi5hY3RpdmVTdWJ2aWV3KXx8dGhpcy5yZXNvbHZlZFZpZXdUYWJzWzBdO2F3YWl0IGEubG9hZFZpZXcobyl9bGV0IHM9R2kuZ2V0U3RhdGUoKTtpZihzLmlkZW50aXR5Py5qd3QpaWYocy5pZGVudGl0eS5leHBpcmVzQXQ+RGF0ZS5ub3coKSl7dGhpcy5sb2dpblN0YXRlPXMsciYmYXdhaXQgci5zd2l0Y2hUb1Nsb3R0ZWRDb250ZW50KCk7dHJ5e2xldCBvPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTeXN0ZW1TdGF0dXMiKS5maXJlKHtpZGVudGl0eTpzLmlkZW50aXR5fSk7emQuc2V0U3RhdGUoe3N0YXR1czpvLnN0YXR1c30pfWNhdGNoKG4pe2NvbnNvbGUud2FybigiU3RvcmVkIHNlc3Npb24gaW52YWxpZCwgcmV0dXJuaW5nIHRvIGxvZ2luOiIsbiksYXdhaXQgR2kuZGlzcGF0Y2hBY3Rpb24odm1lLG51bGwpLHImJndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX19ZWxzZSBhd2FpdCBHaS5kaXNwYXRjaEFjdGlvbih2bWUsbnVsbCl9YXN5bmMgbG9naW4ocixhKXtsZXQgcz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxuPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpLG89bj8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7byYmby5zZXRTdGF0dXMoInBlbmRpbmciLCJMb2dnaW5nIGluLi4uIiksKGF3YWl0IEdpLmRpc3BhdGNoQWN0aW9uKHhuYSx7dXNlcm5hbWU6cixwYXNzd29yZDphfSkpLmlkZW50aXR5PyhvJiZvLnNldFN0YXR1cygic3VjY2VzcyIsIkxvZ2dlZCBpbiEiKSxuJiZhd2FpdCBuLnN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKSxhd2FpdCB6ZC5kaXNwYXRjaEFjdGlvbihLdyxudWxsKSk6byYmKG8uc2V0U3RhdHVzKCJlcnJvciIsIkxvZ2luIGZhaWxlZCEiKSxhd2FpdCBzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxvLnJlc2V0KCkpfXVwZGF0ZUdsb2JhbE1lc3NhZ2VzKCl7bGV0IHI9dGhpcy5zeXN0ZW1TdGF0ZS5zdGF0dXM/Lm9uZWJveC51cGRhdGU7aWYoIXRoaXMubG9naW5TdGF0ZS5pc0xvZ2dlZElufHwhcj8udXBkYXRlQXZhaWxhYmxlfHwhci5sYXRlc3RWZXJzaW9ufHxyLmxhdGVzdFZlcnNpb249PT10aGlzLnN1cHByZXNzZWRVcGRhdGVWZXJzaW9uKXt0aGlzLmdsb2JhbE1lc3NhZ2VzPVtdO3JldHVybn10aGlzLmdsb2JhbE1lc3NhZ2VzPVt7aWQ6YG9uZWJveC11cGRhdGUtJHtyLmxhdGVzdFZlcnNpb259YCx0eXBlOiJpbmZvIixpY29uOiJsdWNpZGU6ZG93bmxvYWQiLG1lc3NhZ2U6YE9uZWJveCAke3IubGF0ZXN0VmVyc2lvbn0gaXMgYXZhaWxhYmxlLiBDdXJyZW50IHZlcnNpb246ICR7ci5jdXJyZW50VmVyc2lvbn0uYCxkaXNtaXNzaWJsZTohMSxhY3Rpb25zOlt7bmFtZToiVXBkYXRlIE5vdyIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoKCk9PnRoaXMuc3RhcnRPbmVib3hVcGdyYWRlRmxvdygpLCJhY3Rpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjppKCgpPT50aGlzLm9wZW5VcGRhdGVVcmwoci5jaGFuZ2Vsb2dVcmx8fHIucmVsZWFzZVVybCksImFjdGlvbiIpfSx7bmFtZToiTGF0ZXIiLGljb25OYW1lOiJsdWNpZGU6Y2xvY2siLGFjdGlvbjppKCgpPT57dGhpcy5zdXBwcmVzc2VkVXBkYXRlVmVyc2lvbj1yLmxhdGVzdFZlcnNpb258fCIiLHRoaXMudXBkYXRlR2xvYmFsTWVzc2FnZXMoKX0sImFjdGlvbiIpfV19XX1hc3luYyBzdGFydE9uZWJveFVwZ3JhZGVGbG93KCl7aWYodGhpcy51cGdyYWRlRmxvd1J1bm5pbmcpcmV0dXJuO2xldCByPUdpLmdldFN0YXRlKCkuaWRlbnRpdHksYT10aGlzLnN5c3RlbVN0YXRlLnN0YXR1cz8ub25lYm94LnVwZGF0ZTtpZighcnx8IWE/LmxhdGVzdFZlcnNpb24pcmV0dXJuO3RoaXMudXBncmFkZUZsb3dSdW5uaW5nPSEwO2xldCBzPWF3YWl0IEpyZS5EZWVzVXBkYXRlci5jcmVhdGVBbmRTaG93KHtjdXJyZW50VmVyc2lvbjphLmN1cnJlbnRWZXJzaW9uLHVwZGF0ZWRWZXJzaW9uOmEubGF0ZXN0VmVyc2lvbixtb3JlSW5mb1VybDphLnJlbGVhc2VVcmwsY2hhbmdlbG9nVXJsOmEuY2hhbmdlbG9nVXJsLHN1Y2Nlc3NBY3Rpb246InJlbG9hZCIsc3VjY2Vzc0RlbGF5TXM6M2U0LHN1Y2Nlc3NBY3Rpb25MYWJlbDoiUmVsb2FkaW5nIE9uZWJveCBVSSJ9KTt0cnl7cy51cGRhdGVQcm9ncmVzcyh7cGVyY2VudGFnZToxMCxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6IlJlcXVlc3RpbmcgdXBncmFkZS4uLiIsdGVybWluYWxMaW5lczpbIlJlcXVlc3RpbmcgT25lYm94IHVwZ3JhZGUiXX0pO2xldCBvPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydE9uZWJveFVwZ3JhZGUiKS5maXJlKHtpZGVudGl0eTpyfSk7aWYoIW8udXBncmFkZS5hY2NlcHRlZCl7cy5tYXJrVXBkYXRlRXJyb3Ioby51cGdyYWRlLm1lc3NhZ2UpLGF3YWl0IHRoaXMuZGVsYXkoNWUzKSxhd2FpdCBzLmRlc3Ryb3koKTtyZXR1cm59cy5hcHBlbmRQcm9ncmVzc0xpbmUoby51cGdyYWRlLm1lc3NhZ2UpLG8udXBncmFkZS5waWQmJnMuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBVcGdyYWRlIHByb2Nlc3MgUElEOiAke28udXBncmFkZS5waWR9YCksby51cGdyYWRlLmxvZ1BhdGgmJnMuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBVcGdyYWRlIGxvZzogJHtvLnVwZ3JhZGUubG9nUGF0aH1gKSxzLnVwZGF0ZVByb2dyZXNzKHtwZXJjZW50YWdlOjQ1LGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDoiSW5zdGFsbGVyIHN0YXJ0ZWQuLi4ifSksYXdhaXQgdGhpcy53YWl0Rm9yT25lYm94VXBncmFkZShzLG8udXBncmFkZS50YXJnZXRWZXJzaW9uLHIpLGF3YWl0IHMubWFya1VwZGF0ZVJlYWR5KCl9Y2F0Y2gobil7cy5tYXJrVXBkYXRlRXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UobikpLGF3YWl0IHRoaXMuZGVsYXkoNWUzKSxhd2FpdCBzLmRlc3Ryb3koKX1maW5hbGx5e3RoaXMudXBncmFkZUZsb3dSdW5uaW5nPSExfX1hc3luYyB3YWl0Rm9yT25lYm94VXBncmFkZShyLGEscyl7bGV0IG49dGhpcy5ub3JtYWxpemVWZXJzaW9uKGEpLG89RGF0ZS5ub3coKSs5ZTQsbD0wO2ZvcihyLmFwcGVuZFByb2dyZXNzTGluZSgiV2FpdGluZyBmb3IgT25lYm94IHRvIHJlc3RhcnQgd2l0aCB0aGUgbmV3IHZlcnNpb24iKTtEYXRlLm5vdygpPG87KXthd2FpdCB0aGlzLmRlbGF5KDVlMyksbCsrO3RyeXtsZXQgZD1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U3lzdGVtU3RhdHVzIikuZmlyZSh7aWRlbnRpdHk6c30pLGY9dGhpcy5ub3JtYWxpemVWZXJzaW9uKGQuc3RhdHVzLm9uZWJveC52ZXJzaW9uKTtpZihyLmFwcGVuZFByb2dyZXNzTGluZShgT25lYm94IEFQSSBhbnN3ZXJlZCB3aXRoICR7Zn1gKSxmPT09bil7ci51cGRhdGVQcm9ncmVzcyh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OmBPbmVib3ggJHtufSBpcyBvbmxpbmUuYH0pO3JldHVybn19Y2F0Y2h7ci5hcHBlbmRQcm9ncmVzc0xpbmUoIk9uZWJveCBBUEkgaXMgcmVzdGFydGluZy4uLiIpfXIudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6TWF0aC5taW4oOTUsNDUrbCo1KSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6YFdhaXRpbmcgZm9yIE9uZWJveCAke259Li4uYH0pfXIuYXBwZW5kUHJvZ3Jlc3NMaW5lKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHZlcnNpb24gY2hlY2s7IHJlbG9hZGluZyB0aGUgVUkgYW55d2F5Iil9b3BlblVwZGF0ZVVybChyKXt3aW5kb3cub3BlbihyLCJfYmxhbmsiLCJub29wZW5lcixub3JlZmVycmVyIil9YXN5bmMgZGVsYXkocil7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3Iocil9Z2V0RXJyb3JNZXNzYWdlKHIpe3JldHVybiByIGluc3RhbmNlb2YgRXJyb3I/ci5tZXNzYWdlOlN0cmluZyhyKX1ub3JtYWxpemVWZXJzaW9uKHIpe2xldCBhPXIudHJpbSgpO3JldHVybiBhLnN0YXJ0c1dpdGgoInYiKT9hOmB2JHthfWB9c3luY0FwcGRhc2hWaWV3KHIsYSl7bGV0IHM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1hcHBkYXNoIik7aWYoIXN8fHRoaXMucmVzb2x2ZWRWaWV3VGFicy5sZW5ndGg9PT0wKXJldHVybjtsZXQgbj10aGlzLmZpbmRWaWV3QnlTbHVnKHIsYSk7IW58fHMuc2VsZWN0ZWRWaWV3PT09bnx8cy5sb2FkVmlldyhuKX19O2hzPSRpKGQxYSksSGJ0PW5ldyBXZWFrTWFwLHFidD1uZXcgV2Vha01hcCxWYnQ9bmV3IFdlYWtNYXAsamJ0PW5ldyBXZWFrTWFwLFVidD1uZXcgV2Vha01hcCxXYnQ9bmV3IFdlYWtNYXAsRHQoaHMsNCwibG9naW5TdGF0ZSIsYzFhLHZsLEhidCksRHQoaHMsNCwidWlTdGF0ZSIsbDFhLHZsLHFidCksRHQoaHMsNCwic3lzdGVtU3RhdGUiLG8xYSx2bCxWYnQpLER0KGhzLDQsImdsb2JhbE1lc3NhZ2VzIixuMWEsdmwsamJ0KSxEdChocyw0LCJsb2dpbkxvYWRpbmciLHMxYSx2bCxVYnQpLER0KGhzLDQsImxvZ2luRXJyb3IiLGkxYSx2bCxXYnQpLHZsPUR0KGhzLDAsIk9iQXBwU2hlbGwiLHUxYSx2bCksaSh2bCwiT2JBcHBTaGVsbCIpLGdpKHZsLCJzdHlsZXMiLFtvci5kZWZhdWx0U3R5bGVzLCRyYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB9CiAgICBgXSksWGUoaHMsMSx2bCk7dmFyIGExYT12bDtSYygpO1hndCgpO3lidCgpO0NidCgpO0VidCgpO05idCgpO0JidCgpO28xKCk7Tm8oKTthd2FpdCBUZygpO2MxLmluaXQoKSxIaC5yZW5kZXIoUWVgCiAgPG9iLWFwcC1zaGVsbD48L29iLWFwcC1zaGVsbD4KYCxkb2N1bWVudC5ib2R5KTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9jc3MtdGFnLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvY3NzLXRhZy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvcmVhY3RpdmUtZWxlbWVudC5qczoKbGl0LWh0bWwvbGl0LWh0bWwuanM6CmxpdC1lbGVtZW50L2xpdC1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3Vuc2FmZS1odG1sLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvc3RhdGUuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2V2ZW50LW9wdGlvbnMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2Jhc2UuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hbGwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzeW5jLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1ub2Rlcy5qczoKbGl0LWh0bWwvYXN5bmMtZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3VudGlsLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLXJlcGxhY2UuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtYXBwZW5kLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3JlYWN0aXZlLWVsZW1lbnQuanM6CmxpdC1odG1sL2xpdC1odG1sLmpzOgpsaXQtZWxlbWVudC9saXQtZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcHJvcGVydHkuanM6CmxpdC1odG1sL2RpcmVjdGl2ZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy91bnNhZmUtaHRtbC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvY3VzdG9tLWVsZW1lbnQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3N0YXRlLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9ldmVudC1vcHRpb25zLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9iYXNlLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYWxsLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3luYy5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtbm9kZXMuanM6CmxpdC1odG1sL2FzeW5jLWRpcmVjdGl2ZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy91bnRpbC5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9hc3luYy1yZXBsYWNlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLWFwcGVuZC5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9yZXBlYXQuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKbGl0LWh0bWwvaXMtc2VydmVyLmpzOgpsaXQtaHRtbC9pcy1zZXJ2ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMiBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKc3dlZXQtc2Nyb2xsL3N3ZWV0LXNjcm9sbC5qczoKc3dlZXQtc2Nyb2xsL3N3ZWV0LXNjcm9sbC5qczoKICAoKiEgQHByZXNlcnZlIHN3ZWV0LXNjcm9sbCB2NC4wLjAgLSB0c3V5b3NoaXdhZGEgfCBNSVQgTGljZW5zZSAqKQogICgqISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZQogICAgICB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZQogICAgICBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIAogICAgICBUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICAgIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKICAgICAgTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KICAKICAgICAgU2VlIHRoZSBBcGFjaGUgVmVyc2lvbiAyLjAgTGljZW5zZSBmb3Igc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zCiAgICAgIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKikKCmxpdC1odG1sL3N0YXRpYy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLWhlbHBlcnMuanM6CmxpdC1odG1sL3N0YXRpYy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLWhlbHBlcnMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtZWxlbWVudHMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvcHJpdmF0ZS1hc3luYy1oZWxwZXJzLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2tleWVkLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1lbGVtZW50cy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9wcml2YXRlLWFzeW5jLWhlbHBlcnMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMva2V5ZWQuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtYnJhbmRzLXN2Zy1pY29ucy9pbmRleC5tanM6CkBmb3J0YXdlc29tZS9mcmVlLXJlZ3VsYXItc3ZnLWljb25zL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zL2luZGV4Lm1qczoKICAoKiEKICAgKiBGb250IEF3ZXNvbWUgRnJlZSA3LjIuMCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbQogICAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpCiAgICogQ29weXJpZ2h0IDIwMjYgRm9udGljb25zLCBJbmMuCiAgICopCgpsdWNpZGUvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9jcmVhdGVFbGVtZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy9oYXNBMTF5UHJvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvbWVyZ2VDbGFzc2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy90b0NhbWVsQ2FzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvdG9QYXNjYWxDYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vcmVwbGFjZUVsZW1lbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYS1sYXJnZS1zbWFsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FjY2Vzc2liaWxpdHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hY3Rpdml0eS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fpci12ZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWlycGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2stb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2stcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1zbW9rZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYnVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tY2VudGVyLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1jZW50ZXItdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1lbmQtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWVuZC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1jZW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LWNlbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtanVzdGlmeS1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLXNwYWNlLWFyb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYmV0d2Vlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXN0YXJ0LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1zdGFydC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtY2VudGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1zdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1jZW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1qdXN0aWZ5LWVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1hcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1iZXR3ZWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1idWxhbmNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FtcGhvcmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbmNob3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbmdyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fubm95ZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbnZpbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FudGVubmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcGVydHVyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcC13aW5kb3ctbWFjLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXBwbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcmNoaXZlLXJlc3RvcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcHAtd2luZG93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FybWNoYWlyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWRvd24tZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWxlZnQtZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXJpZ2h0LWRhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctdXAtZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tMC0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi0xLTAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLWEtei5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tZnJvbS1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi1uYXJyb3ctd2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXRvLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdG8tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXdpZGUtbmFycm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi16LWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC1mcm9tLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1sZWZ0LXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC10by1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWZyb20tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1yaWdodC10by1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC0wLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC0xLTAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1hLXouanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtZnJvbS1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1mcm9tLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtbmFycm93LXdpZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXRvLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC13aWRlLW5hcnJvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXotYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3dzLXVwLWZyb20tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FzdGVyaXNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXQtc2lnbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F0b20uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hdWRpby1saW5lcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F3YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXVkaW8td2F2ZWZvcm0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9heGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWJ5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXhpcy0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhY2twYWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1jZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1kb2xsYXItc2lnbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWV1cm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1pbmRpYW4tcnVwZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1pbmZvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtamFwYW5lc2UteWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1wZXJjZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXBvdW5kLXN0ZXJsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcXVlc3Rpb24tbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXJ1c3NpYW4tcnVibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1zd2lzcy1mcmFuYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXR1cmtpc2gtbGlyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZ2dhZ2UtY2xhaW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWxsb29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuYW5hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuZGFnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS1hcnJvdy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhcmNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXJyZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXNlbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdGguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWNoYXJnaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS1sb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWZ1bGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LW1lZGl1bS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnktcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnktd2FybmluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWFrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWFuLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWQtZG91YmxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVkLXNpbmdsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZWYtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVlZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1lbGVjdHJpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtcmluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmV0d2Vlbi12ZXJ0aWNhbC1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZXR3ZWVuLXZlcnRpY2FsLXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmljZXBzLWZsZXhlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jpa2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaW5hcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaW5vY3VsYXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlvaGF6YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpcmRob3VzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpdGNvaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibGVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsaW5kcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jsb2Nrcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsdWV0b290aC1jb25uZWN0ZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGgtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmx1ZXRvb3RoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9sZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsdWV0b290aC1zZWFyY2hpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib2x0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9tYi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1hdWRpby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWNvcHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2staGVhZHBob25lcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2staGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWltYWdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWxvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1tYXJrZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW9wZW4tY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW9wZW4tdGV4dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay10eXBlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay11cC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmstcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb20tYm94LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm90LW1lc3NhZ2Utc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm90LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdHRsZS13aW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm93LWFycm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm94LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm94ZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFja2V0cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWluLWNpcmN1aXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFpbi1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWNrLXdhbGwtZmlyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWNrLXdhbGwtc2hpZWxkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpY2std2FsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWVmY2FzZS1idXNpbmVzcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWVmY2FzZS1jb252ZXlvci1iZWx0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLW1lZGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmllZmNhc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmluZy10by1mcm9udC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JydXNoLWNsZWFuaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJ1c2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWJibGVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVnLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1Zy1wbGF5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVpbGRpbmctMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1aWxkaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVzLWZyb250LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FibGUtY2FyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWtlLXNsaWNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FrZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGN1bGF0b3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItYXJyb3ctZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY2hlY2stMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY2xvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1kYXlzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItZm9sZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW1pbnVzLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWhlYXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItcGx1cy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXJhbmdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItc3luYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXgtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbWVyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbWVyYS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5keS1jYW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FuZHktb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FuZHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5uYWJpcy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5uYWJpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcHRpb25zLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcHRpb25zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLWZyb250LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLXRheGktZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXJhdmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyZC1zaW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXJyb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNlLWxvd2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzZS1zZW5zaXRpdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNlLXVwcGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2Fzc2V0dGUtdGFwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXN0bGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jY3R2LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NjdHYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1hcmVhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYmFyLWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1kZWNyZWFzaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYmFyLWluY3JlYXNpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItc3RhY2tlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNhbmRsZXN0aWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY29sdW1uLWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1kZWNyZWFzaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY29sdW1uLWluY3JlYXNpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4tc3RhY2tlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWdhbnR0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5ldHdvcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1kZWNyZWFzaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbWJpbmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4taW5jcmVhc2luZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtZ2FudHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1waWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1zY2F0dGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtc3BsaW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2stY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVjay1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVmLWhhdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXJyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLWJpc2hvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLWtpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1wYXduLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mta25pZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3MtcXVlZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1yb29rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1maXJzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tbGFzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9uLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtZG93bi11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0LWVsbGlwc2lzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtbGVmdC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLXJpZ2h0LWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy11cC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaHVyY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaWdhcmV0dGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lnYXJldHRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGVjay1iaWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hldnJvbi1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZXZyb24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZXZyb24tdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRpdmlkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kb2xsYXItc2lnbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kb3QtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1lbGxpcHNpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1lcXVhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1mYWRpbmctYXJyb3ctdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZmFkaW5nLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZ2F1Z2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBhcmtpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGFya2luZy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGVyY2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wYXVzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1waWxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wb3VuZC1zdGVybGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wb3dlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1xdWVzdGlvbi1tYXJrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXNsYXNoLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc21hbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1zdG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXVzZXItcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY3VpdC1ib2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsYXBwZXJib2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpdHJ1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jb3B5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLWxpc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGFzdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtdHlwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTEwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay02LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay05LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1hcnJvdy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYXJyb3ctdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLWZhZGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3NlZC1jYXB0aW9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1iYWNrdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWRvd25sb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtZHJpenpsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWZvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWhhaWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1saWdodG5pbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1tb29uLXJhaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1tb29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtcmFpbi13aW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtcmFpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXNub3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zdW4tcmFpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN1bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN5bmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC11cGxvYWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3Zlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsdWIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2RlLXhtbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2ZmZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2lucy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbHVtbnMtMy1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21iaW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tbWFuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbXBhc3MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21wb25lbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21wdXRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbmNpZXJnZS1iZWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnRhY3Qtcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb25zdHJ1Y3Rpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb250YWluZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb250YWN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29udHJhc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb29raWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb29raW5nLXBvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHktY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1zbGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHkteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5bGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHlyaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1kb3duLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItZG93bi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1sZWZ0LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItbGVmdC11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1yaWdodC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLXJpZ2h0LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLXVwLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItdXAtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcHUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcmVkaXQtY2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NyZWF0aXZlLWNvbW1vbnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm9pc3NhbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3Jvc3MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm9zc2hhaXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2N1Ym9pZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2N1cC1zb2RhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3VycmVuY3kuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jeWxpbmRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLWJhY2t1cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLXphcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVjaW1hbHMtYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RlY2ltYWxzLWFycm93LXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVsZXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVzc2VydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1ldGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlhbW9uZC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1vbmQtcGVyY2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1vbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLWFsYnVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpdmlkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RuYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kbmEtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9sbGFyLXNpZ24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb251dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3Itb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3ItY2xvc2VkLWxvY2tlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3ItY2xvc2VkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG93bmxvYWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmFmdGluZy1jb21wYXNzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJhbWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmlsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcm9wbGV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcnVtc3RpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcnVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHVtYmJlbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lYXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFydGgtbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VhcnRoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWNsaXBzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VnZy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lZ2ctZnJpZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lbGxpcHNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWdnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWxsaXBzaXMtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lbGxpcHNpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLWFwcHJveGltYXRlbHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lcXVhbC1ub3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lcXVhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VyYXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V0aGVybmV0LXBvcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ldXJvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXYtY2hhcmdlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V4cGFuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V4dGVybmFsLWxpbmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9leWUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXllLWNsb3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V5ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZhY3RvcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mYXN0LWZvcndhcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZWF0aGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmVuY2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZXJyaXMtd2hlZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWFyY2hpdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWF4aXMtM2QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJhZGdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1ib3guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJyYWNlcy1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJyYWNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4taW5jcmVhc2luZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtcGllLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGVjay1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY29kZS1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRpZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtZGlnaXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWV4Y2xhbWF0aW9uLXBvaW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1pbWFnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWhlYWRwaG9uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtaW5wdXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWtleS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbWludXMtY29ybmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1tdXNpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLW91dHB1dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGVuLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGx1cy1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXF1ZXN0aW9uLW1hcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNlYXJjaC1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNjYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2lnbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zbGlkZXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zcHJlYWRzaGVldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc3RhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXN5bWxpbmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXRlcm1pbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10eXBlLWNvcm5lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdHlwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXVzZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXZpZGVvLWNhbWVyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdm9sdW1lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS14LWNvcm5lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbG0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maW5nZXJwcmludC1wYXR0ZXJuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlyZS1leHRpbmd1aXNoZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maXNoLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gtc3ltYm9sLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2hpbmctaG9vay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2hpbmctcm9kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhZy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLXRyaWFuZ2xlLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhZy10cmlhbmdsZS1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYW1lLWtpbmRsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhbWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzaGxpZ2h0LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNobGlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzay1jb25pY2FsLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNrLXJvdW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2stY29uaWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsaXAtaG9yaXpvbnRhbC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxpcC12ZXJ0aWNhbC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxvd2VyLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbG93ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2N1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGQtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItYXJjaGl2ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jbG9zZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZ2l0LTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZ2l0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWlucHV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWthbmJhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1vcGVuLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLW91dHB1dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zZWFyY2gtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1yb290LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zeW1saW5rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXN5bmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItdHJlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zvb3RwcmludHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb3JrbGlmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zvcm0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb3J3YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnJhbWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mcm93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1ZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdWxsc2NyZWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnVubmVsLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdW5uZWwteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1bm5lbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktaG9yaXpvbnRhbC1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LXRodW1ibmFpbHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LXZlcnRpY2FsLWVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYW1lcGFkLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYW1lcGFkLWRpcmVjdGlvbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FtZXBhZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhdWdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2F2ZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nZW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nZW9yZ2lhbi1sYXJpLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2hvc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWJyYW5jaC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1icmFuY2gtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1icmFuY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtY29tbWl0LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtY29tbWl0LXZlcnRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbXBhcmUtYXJyb3dzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbXBhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtZm9yay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1ncmFwaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1tZXJnZS1jb25mbGljdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1tZXJnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtYXJyb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWNsb3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlLWFycm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWRyYWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsYXNzLXdhdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xhc3Nlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsb2JlLWxvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xvYmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nb2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3B1LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JhZHVhdGlvbi1jYXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmFwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtMngyLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0yeDItcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtMngyLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtM3gyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0zeDMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlwLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlwLXZlcnRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyb3VwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3VpdGFyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtYnVyZ2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtbWVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1jb2lucy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtZmlzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtZ3JhYi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLWhlbHBpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLW1ldGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1wbGF0dGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmRiYWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kc2hha2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWRyaXZlLWRvd25sb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1kcml2ZS11cGxvYWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWRyaXZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1oYXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGF0LWdsYXNzZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXplLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZG1pLXBvcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZHBob25lLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRwaG9uZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkc2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtY3JhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1oYW5kc2hha2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LXB1bHNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGV4YWdvbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlbGljb3B0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oaWdobGlnaHRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hpc3RvcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3Atb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9zcGl0YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3RlbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXJnbGFzcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLWhlYXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91c2UtcGx1Zy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS13aWZpLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pY2UtY3JlYW0tYm93bC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ljZS1jcmVhbS1jb25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaWQtY2FyZC1sYW55YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaWQtY2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLXBsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS11cHNjYWxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbXBvcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbmJveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZGlhbi1ydXBlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZmluaXR5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5mby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luc3BlY3Rpb24tcGFuZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pdGFsaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pdGVyYXRpb24tY2N3LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaXRlcmF0aW9uLWN3LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvamFwYW5lc2UteWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvam95c3RpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rYW5iYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rYXlhay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleS1yb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleS1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXlib2FyZC1tdXNpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleWJvYXJkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleWJvYXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1jZWlsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1kZXNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1mbG9vci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtd2FsbC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC13YWxsLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbmQtcGxvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbmRtYXJrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFuZ3VhZ2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFwdG9wLW1pbmltYWwtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXB0b3AtbWluaW1hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhc3NvLXNlbGVjdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhc3NvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF1Z2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXllcnMtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5b3V0LWdyaWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtbGlzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1kYXNoYm9hcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtcGFuZWwtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1wYW5lbC10b3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtdGVtcGxhdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sZWFmeS1ncmVlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xlYWYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sZWN0ZXJuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVucy1jb25jYXZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVucy1jb252ZXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWJyYXJ5LWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZmUtYnVveS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpYnJhcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWdhdHVyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZ2h0YnVsYi1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWdodGJ1bGIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5lLWRvdC1yaWdodC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluZS1zcXVpZ2dsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmUtc3R5bGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5rLTItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWNoZWNrcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hldnJvbnMtZG93bi11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hldnJvbnMtdXAtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jb2xsYXBzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtZmlsdGVyLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWZpbHRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtaW5kZW50LWRlY3JlYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1pbmRlbnQtaW5jcmVhc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1tdXNpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3Qtb3JkZXJlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtcmVzdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3Qtc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXRvZG8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXRyZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXZpZGVvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvYWRlci1jaXJjbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXItcGlud2hlZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NhdGUtZml4ZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NhdGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jYXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jay1rZXlob2xlLW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLWtleWhvbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9nLWluLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9ncy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2x1Z2dhZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2ctb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9sbGlwb3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFnbmV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtcXVlc3Rpb24tbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC13YXJuaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWxib3guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlscy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tY2hlY2staW5zaWRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4taG91c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLW1pbnVzLWluc2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wbHVzLWluc2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi14LWluc2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4teC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGlubmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJzLXN0cm9rZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJ0aW5pLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWF4aW1pemUtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21heGltaXplLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVkYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWdhcGhvbmUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVnYXBob25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVtb3J5LXN0aWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVudS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lcmdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1tb3JlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXF1ZXN0aW9uLW1hcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1yZXBseS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXdhcm5pbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kaWZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1sb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtbW9yZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1xdW90ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXJlcGx5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtc2hhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtd2FybmluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlcy1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21ldHJvbm9tZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pYy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMtdm9jYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWNyb2NoaXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWNyb3Njb3BlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljcm93YXZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWlsZXN0b25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWlsay1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWluaW1pemUtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbmltaXplLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taXJyb3ItcmVjdGFuZ3VsYXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taXJyb3Itcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1jbG91ZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItcGF1c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXBsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXNtYXJ0cGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXNwZWFrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXN0b3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vb24tc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3RvcmJpa2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VudGFpbi1zbm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91bnRhaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2Utb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci0yLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXBvaW50ZXItYmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci1jbGljay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZGlhZ29uYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWRpYWdvbmFsLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWRvd24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXVwLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXVwLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL211c2ljLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tdXNpYy00LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uYXZpZ2F0aW9uLTItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uYXZpZ2F0aW9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmV0d29yay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25ld3NwYXBlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vbi1iaW5hcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay10YWJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZWJvb2stdGV4dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVib29rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZXBhZC10ZXh0LWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVwYWQtdGV4dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL251dC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9udXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24tcGF1c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb21lZ2EuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcHRpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcmlnYW1pLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb3JiaXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2Utb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2Utc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50LWJ1Y2tldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50LXJvbGxlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50YnJ1c2gtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWludGJydXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFsZXR0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmRhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtYm90dG9tLWNsb3NlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtYm90dG9tLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1jbG9zZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWxlZnQtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1yaWdodC1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtcmlnaHQtY2xvc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3AtYm90dG9tLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1jbG9zZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3Atb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVscy1sZWZ0LWJvdHRvbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVscy1yaWdodC1ib3R0b20uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbHMtdG9wLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXBlcmNsaXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXJlbnRoZXNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcmtpbmctbWV0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXVzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcnR5LXBvcHBlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bhdy1wcmludC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BjLWNhc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4tdG9vbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuY2lsLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1ydWxlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbnRhZ29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVyY2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlcnNvbi1zdGFuZGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BoaWxpcHBpbmUtcGVzby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLWNhbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1mb3J3YXJkZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1pbmNvbWluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW1pc3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW91dGdvaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpYW5vLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlja2F4ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpY3R1cmUtaW4tcGljdHVyZS0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGljdHVyZS1pbi1waWN0dXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlnZ3ktYmFuay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3ctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxjcm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsbC1ib3R0bGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waW4tb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpcGV0dGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waXp6YS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsYW5lLWxhbmRpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGFuZS10YWtlb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGxhbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGF5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGx1Zy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGx1Zy16YXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9ja2V0LWtuaWZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGx1Zy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvZGNhc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb2ludGVyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvcGNvcm4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3BzaWNsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvaW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3VuZC1zdGVybGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bvd2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG93ZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJlc2VudGF0aW9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJpbnRlci1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ByaW50ZXIteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ByaW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcm9qZWN0b3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcm9wb3J0aW9ucy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3B1enpsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3B5cmFtaWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9xci1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcXVvdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWJiaXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlhdGlvbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpby1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpby1yZWNlaXZlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaW8tdG93ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWluYm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmF0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmF0aW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWNlbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWV1cm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWluZGlhbi1ydXBlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtamFwYW5lc2UteWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1wb3VuZC1zdGVybGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtcnVzc2lhbi1ydWJsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtc3dpc3MtZnJhbmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LXRleHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC10dXJraXNoLWxpcmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtZWxsaXBzaXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtY2lyY2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWdvZ2dsZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3RhbmdsZS12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3ljbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWRvLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWRvLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZG8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWNjdy1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWNjdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY3ctb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJpZ2VyYXRvci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZ2V4LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVtb3ZlLWZvcm1hdHRpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBlYXQtMS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwZWF0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbGFjZS1hbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBsYWNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbHktYWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXdpbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yaWJib24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2luZy1jaGFpci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvbGxlci1jb2FzdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9zZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jY3cta2V5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY3ctc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdXRlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm91dGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy00LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcnNzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcnVsZXItZGltZW5zaW9uLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ydWxlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1c3NpYW4tcnVibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYWlsYm9hdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhbGFkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FuZHdpY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXRlbGxpdGUtZGlzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdGVsbGl0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdWRpLXJpeWFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2F2ZS1hbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXZlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FsZS0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYWxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NhbGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tYmFyY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tZXllLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1mYWNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1xci1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaG9vbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaXNzb3JzLWxpbmUtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nvb3Rlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaXNzb3JzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NyZWVuLXNoYXJlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjcmVlbi1zaGFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Njcm9sbC10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nyb2xsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlY3Rpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLXRvLWJhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VwYXJhdG9yLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXBhcmF0b3ItdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXItY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VydmVyLWNyYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VydmVyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcnZlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NldHRpbmdzLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXR0aW5ncy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoYXJlLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFwZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hlbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGVsdmluZy11bml0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWJhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1jb2ctY29ybmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1lbGxpcHNpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1oYWxmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLXF1ZXN0aW9uLW1hcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpcC13aGVlbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGlydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWJhZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWJhc2tldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWNhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG92ZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG93ZXItaGVhZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NocmVkZGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyaW1wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyaW5rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hydWIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHVmZmxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtaGlnaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC1sb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtbWVkaXVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmFsLXplcm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYXR1cmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWducG9zdC1iaWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWducG9zdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpcmVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2tpcC1iYWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2tpcC1mb3J3YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbGljZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NrdWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xpZGVycy1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xpZGVycy12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtYXJ0cGhvbmUtY2hhcmdpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWFydHBob25lLW5mYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtYXJ0cGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWlsZS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21pbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbmFpbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nub3dmbGFrZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NvYXAtZGlzcGVuc2VyLWRyb3BsZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb2ZhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc29sYXItcGFuZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb3VwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BhY2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGFkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYXJrbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGFya2xlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwZWFrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGVlY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGVsbC1jaGVjay0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlbGwtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGxpbmUtcG9pbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwbGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Bvb2wuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcG9ydC1zaG9lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BvdGxpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3ByYXktY2FuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Byb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFjdGl2aXR5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXJpZ2h0LWVudGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1yaWdodC1leGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXVwLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctdXAtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXN0ZXJpc2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29ycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jZW50ZXJsaW5lLWRhc2hlZC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNlbnRlcmxpbmUtZGFzaGVkLXZlcnRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZWNrLWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGV2cm9uLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZXZyb24tcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC1ib3R0b20tY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtYm90dG9tLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC1rYW5iYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLW1vdXNlLXBvaW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLXRleHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLXRvcC1zb2xpZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGl2aWRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1lcXVhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1mdW5jdGlvbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1rYW5iYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbGlicmFyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1tLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLW1lbnUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbW91c2UtcG9pbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wYXJraW5nLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wYXJraW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhdXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wZXJjZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBpLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1waWxjcm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBvd2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXJhZGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcm91bmQtY29ybmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNjaXNzb3JzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNpZ21hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNsYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNwbGl0LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3BsaXQtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXN0YWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXN0YXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3RvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS10ZXJtaW5hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS11c2VyLXJvdW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtZXhjbHVkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtaW50ZXJzZWN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlcy1zdWJ0cmFjdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtdW5pdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVpcmNsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlyY2xlLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlycmVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RhbXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLWhhbGYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0YXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGVwLWJhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGVwLWZvcndhcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGV0aG9zY29wZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0aWNrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdG9uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0aWNreS1ub3RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RvcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdHJldGNoLXZlcnRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RyZXRjaC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RyaWtldGhyb3VnaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1YnNjcmlwdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi1kaW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW4tbWVkaXVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLXNub3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW4tbW9vbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bnJpc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW5zZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdXBlcnNjcmlwdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3aXNzLWZyYW5jLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dhdGNoLWJvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zd2l0Y2gtY2FtZXJhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dvcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zeXJpbmdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dvcmRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLWNlbGxzLXNwbGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtY2VsbHMtbWVyZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jb2x1bW5zLXNwbGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtb2YtY29udGVudHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1wcm9wZXJ0aWVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtcm93cy1zcGxpdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGV0LXNtYXJ0cGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFncy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktMy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS01LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFuZ2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbGVzY29wZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhcmdldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbnQtdHJlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXJtaW5hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlc3QtdHViZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtYWxpZ24tY2VudGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVzdC10dWJlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtYWxpZ24tZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1qdXN0aWZ5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1zdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtY3Vyc29yLWlucHV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1jdXJzb3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWluaXRpYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtcXVvdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXdyYXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aGVhdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXItc25vd2ZsYWtlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXItc3VuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aHVtYnMtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RodW1icy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1wZXJjZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0LXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1zbGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldHMtcGxhbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGltZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGltZXItcmVzZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aW1lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvZ2dsZS1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9nZ2xlLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9pbGV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9vbC1jYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9vbGJveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvcm5hZG8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3J1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvdWNocGFkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvdWNocGFkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG93ZWwtcmFjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvd2VyLWNvbnRyb2wuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3ktYnJpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFjdG9yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhZmZpYy1jb25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhaW4tZnJvbnQtdHVubmVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhaW4tZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFpbi10cmFjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYW0tZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFuc2dlbmRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhc2gtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZWUtZGVjaWR1b3VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1wYWxtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1waW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVuZGluZy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlbmRpbmctdXAtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZW5kaW5nLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyaWFuZ2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJvcGh5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJ1Y2stZWxlY3RyaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cnVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cmtpc2gtbGlyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cm50YWJsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cnRsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2LW1pbmltYWwtcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2LW1pbmltYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90eXBlLW91dGxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90di5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R5cGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bWJyZWxsYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VtYnJlbGxhLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZGVybGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8tMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8tZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5kby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZm9sZC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5ncm91cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZm9sZC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuaXZlcnNpdHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmxpbmstMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VubGluay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VwbG9hZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VucGx1Zy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzYi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1sb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQtY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2Vycy1yb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRlbnNpbHMtY3Jvc3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3V0ZW5zaWxzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRpbGl0eS1wb2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmFyaWFibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92YXVsdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlY3Rvci1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZWdhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlbmV0aWFuLW1hc2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZW51cy1hbmQtbWFycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlicmF0ZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWJyYXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlkZW8tb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlkZW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWRlb3RhcGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWV3LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9pY2VtYWlsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sbGV5YmFsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvbHVtZS0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b3RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbGV0LWNhcmRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbGV0LW1pbmltYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxscGFwZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YW5kLXNwYXJrbGVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhcmVob3VzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhc2hpbmctbWFjaGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdGNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtYXJyb3ctZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdmVzLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtbGFkZGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YXlwb2ludHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJjYW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJob29rLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dlYmhvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQtdGlsZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aGVhdC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aGVhdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dob2xlLXdvcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktaGlnaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktbG93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktemVyby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktc3luYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5kLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2luZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpbmUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd29ya2Zsb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93b3JtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd3JlbmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3gtbGluZS10b3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96YXAtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvemFwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWFxdWFyaXVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWFyaWVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWNhbmNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1jYXByaWNvcm4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtZ2VtaW5pLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWxlby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1saWJyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1vcGhpdWNodXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtcGlzY2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXNhZ2l0dGFyaXVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXNjb3JwaW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtdGF1cnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXZpcmdvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9vbS1pbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvb20tb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnNBbmRBbGlhc2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vbHVjaWRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlIGx1Y2lkZSB2MS44LjAgLSBJU0MKICAgKgogICAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogICAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogICAqKQoKaWJhbnRvb2xzL2pzbmV4dC9pYmFudG9vbHMuanM6CiAgKCohCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgU2HFoWEgSm92YW5pxIcKICAgKiBMaWNlbnNlZCB1bmRlciB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAyLjAgb3IgdGhlIE1JVCBsaWNlbnNlLAogICAqIGF0IHlvdXIgb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAogICAqIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCiAgICogU1BEWC1GaWxlQ29weXJpZ2h0VGV4dDogU2HFoWEgSm92YW5pxIcKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUIG9yIE1QTC8yLjAKICAgKikKICAoKioKICAgKiBWYWxpZGF0aW9uLCBleHRyYWN0aW9uIGFuZCBjcmVhdGlvbiBvZiBJQkFOLCBCQkFOLCBCSUMvU1dJRlQgbnVtYmVycyBwbHVzIHNvbWUgb3RoZXIgaGVscGZ1bCBzdHVmZgogICAqIEBwYWNrYWdlIERvY3VtZW50YXRpb24KICAgKiBAYXV0aG9yIFNhxaFhIEpvdmFuacSHCiAgICogQG1vZHVsZSBpYmFudG9vbHMKICAgKiBAdmVyc2lvbiA0LjUuMQogICAqIEBsaWNlbnNlIE1JVCBvciBNUEwtMi4wCiAgICogQHByZWZlcnJlZAogICAqKQoqLwovLyMgc291cmNlTWFwcGluZ1VSTD1idW5kbGUuanMubWFwCg==" + "contentBase64": "dmFyIHoxdD1PYmplY3QuY3JlYXRlLFMxdD1PYmplY3QuZnJlZXplLEU0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgQzF0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIHFDYT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgakNhPU9iamVjdC5nZXRQcm90b3R5cGVPZixWQ2E9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgVDF0PShzLGUpPT4oZT1TeW1ib2xbc10pP2U6U3ltYm9sLmZvcigiU3ltYm9sLiIrcyksYjc9cz0+e3Rocm93IFR5cGVFcnJvcihzKX07dmFyICQxdD0ocyxlLHQpPT5lIGluIHM/RTQocyxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6c1tlXT10O3ZhciBpPShzLGUpPT5FNChzLCJuYW1lIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KTt2YXIgZz0ocyxlKT0+KCk9PihzJiYoZT1zKHM9MCkpLGUpO3ZhciBwbD0ocyxlKT0+KCk9PihlfHxzKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpLHl0PShzLGUpPT57Zm9yKHZhciB0IGluIGUpRTQocyx0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LFVDYT0ocyxlLHQsYSk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgciBvZiBxQ2EoZSkpIVZDYS5jYWxsKHMscikmJnIhPT10JiZFNChzLHIse2dldDooKT0+ZVtyXSxlbnVtZXJhYmxlOiEoYT1DMXQoZSxyKSl8fGEuZW51bWVyYWJsZX0pO3JldHVybiBzfTt2YXIgeG49KHMsZSx0KT0+KHQ9cyE9bnVsbD96MXQoakNhKHMpKTp7fSxVQ2EoZXx8IXN8fCFzLl9fZXNNb2R1bGU/RTQodCwiZGVmYXVsdCIse3ZhbHVlOnMsZW51bWVyYWJsZTohMH0pOnQscykpO3ZhciBSaT1zPT5bLCwsejF0KHM/LltUMXQoIm1ldGFkYXRhIildPz9udWxsKV0sRDF0PVsiY2xhc3MiLCJtZXRob2QiLCJnZXR0ZXIiLCJzZXR0ZXIiLCJhY2Nlc3NvciIsImZpZWxkIiwidmFsdWUiLCJnZXQiLCJzZXQiXSxLeD1zPT5zIT09dm9pZCAwJiZ0eXBlb2YgcyE9ImZ1bmN0aW9uIj9iNygiRnVuY3Rpb24gZXhwZWN0ZWQiKTpzLFdDYT0ocyxlLHQsYSxyKT0+KHtraW5kOkQxdFtzXSxuYW1lOmUsbWV0YWRhdGE6YSxhZGRJbml0aWFsaXplcjpuPT50Ll8/YjcoIkFscmVhZHkgaW5pdGlhbGl6ZWQiKTpyLnB1c2goS3gobnx8bnVsbCkpfSksR0NhPShzLGUpPT4kMXQoZSxUMXQoIm1ldGFkYXRhIiksc1szXSksaXQ9KHMsZSx0LGEpPT57Zm9yKHZhciByPTAsbj1zW2U+PjFdLG89biYmbi5sZW5ndGg7cjxvO3IrKyllJjE/bltyXS5jYWxsKHQpOmE9bltyXS5jYWxsKHQsYSk7cmV0dXJuIGF9LFJ0PShzLGUsdCxhLHIsbik9Pnt2YXIgbyxsLHAsZCx1LGM9ZSY3LGI9ISEoZSY4KSx2PSEhKGUmMTYpLHg9Yz4zP3MubGVuZ3RoKzE6Yz9iPzE6MjowLG09RDF0W2MrNV0sZj1jPjMmJihzW3gtMV09W10pLHk9c1t4XXx8KHNbeF09W10pLE09YyYmKCF2JiYhYiYmKHI9ci5wcm90b3R5cGUpLGM8NSYmKGM+M3x8IXYpJiZDMXQoYzw0P3I6e2dldFt0XSgpe3JldHVybiBfMXQodGhpcyxuKX0sc2V0W3RdKE4pe3JldHVybiBNMXQodGhpcyxuLE4pfX0sdCkpO2M/diYmYzw0JiZpKG4sKGM+Mj8ic2V0ICI6Yz4xPyJnZXQgIjoiIikrdCk6aShyLHQpO2Zvcih2YXIgej1hLmxlbmd0aC0xO3o+PTA7ei0tKWQ9V0NhKGMsdCxwPXt9LHNbM10seSksYyYmKGQuc3RhdGljPWIsZC5wcml2YXRlPXYsdT1kLmFjY2Vzcz17aGFzOnY/Tj0+S0NhKHIsTik6Tj0+dCBpbiBOfSxjXjMmJih1LmdldD12P049PihjXjE/XzF0OllDYSkoTixyLGNeND9uOk0uZ2V0KTpOPT5OW3RdKSxjPjImJih1LnNldD12PyhOLEMpPT5NMXQoTixyLEMsY140P246TS5zZXQpOihOLEMpPT5OW3RdPUMpKSxsPSgwLGFbel0pKGM/Yzw0P3Y/bjpNW21dOmM+ND92b2lkIDA6e2dldDpNLmdldCxzZXQ6TS5zZXR9OnIsZCkscC5fPTEsY140fHxsPT09dm9pZCAwP0t4KGwpJiYoYz40P2YudW5zaGlmdChsKTpjP3Y/bj1sOk1bbV09bDpyPWwpOnR5cGVvZiBsIT0ib2JqZWN0Inx8bD09PW51bGw/YjcoIk9iamVjdCBleHBlY3RlZCIpOihLeChvPWwuZ2V0KSYmKE0uZ2V0PW8pLEt4KG89bC5zZXQpJiYoTS5zZXQ9byksS3gobz1sLmluaXQpJiZmLnVuc2hpZnQobykpO3JldHVybiBjfHxHQ2EocyxyKSxNJiZFNChyLHQsTSksdj9jXjQ/bjpNOnJ9LHZpPShzLGUsdCk9PiQxdChzLHR5cGVvZiBlIT0ic3ltYm9sIj9lKyIiOmUsdCksRjJlPShzLGUsdCk9PmUuaGFzKHMpfHxiNygiQ2Fubm90ICIrdCksS0NhPShzLGUpPT5PYmplY3QoZSkhPT1lP2I3KCdDYW5ub3QgdXNlIHRoZSAiaW4iIG9wZXJhdG9yIG9uIHRoaXMgdmFsdWUnKTpzLmhhcyhlKSxfMXQ9KHMsZSx0KT0+KEYyZShzLGUsInJlYWQgZnJvbSBwcml2YXRlIGZpZWxkIiksdD90LmNhbGwocyk6ZS5nZXQocykpLGVhPShzLGUsdCk9PmUuaGFzKHMpP2I3KCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlIik6ZSBpbnN0YW5jZW9mIFdlYWtTZXQ/ZS5hZGQocyk6ZS5zZXQocyx0KSxNMXQ9KHMsZSx0LGEpPT4oRjJlKHMsZSwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZCIpLGE/YS5jYWxsKHMsdCk6ZS5zZXQocyx0KSx0KSxZQ2E9KHMsZSx0KT0+KEYyZShzLGUsImFjY2VzcyBwcml2YXRlIG1ldGhvZCIpLHQpO3ZhciBiYz0ocyxlKT0+UzF0KEU0KHMsInJhdyIse3ZhbHVlOlMxdChlfHxzLnNsaWNlKCkpfSkpO3ZhciBTSixZeCxCMmUsTDF0LHY3LGFhLEosX0osWngsSDJlPWcoKCk9PntTSj1nbG9iYWxUaGlzLFl4PVNKLlNoYWRvd1Jvb3QmJihTSi5TaGFkeUNTUz09PXZvaWQgMHx8U0ouU2hhZHlDU1MubmF0aXZlU2hhZG93KSYmImFkb3B0ZWRTdHlsZVNoZWV0cyJpbiBEb2N1bWVudC5wcm90b3R5cGUmJiJyZXBsYWNlImluIENTU1N0eWxlU2hlZXQucHJvdG90eXBlLEIyZT1TeW1ib2woKSxMMXQ9bmV3IFdlYWtNYXAsdjc9Y2xhc3N7c3RhdGlje2kodGhpcywibiIpfWNvbnN0cnVjdG9yKGUsdCxhKXtpZih0aGlzLl8kY3NzUmVzdWx0JD0hMCxhIT09QjJlKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1lLHRoaXMudD10fWdldCBzdHlsZVNoZWV0KCl7bGV0IGU9dGhpcy5vLHQ9dGhpcy50O2lmKFl4JiZlPT09dm9pZCAwKXtsZXQgYT10IT09dm9pZCAwJiZ0Lmxlbmd0aD09PTE7YSYmKGU9TDF0LmdldCh0KSksZT09PXZvaWQgMCYmKCh0aGlzLm89ZT1uZXcgQ1NTU3R5bGVTaGVldCkucmVwbGFjZVN5bmModGhpcy5jc3NUZXh0KSxhJiZMMXQuc2V0KHQsZSkpfXJldHVybiBlfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19LGFhPWkocz0+bmV3IHY3KHR5cGVvZiBzPT0ic3RyaW5nIj9zOnMrIiIsdm9pZCAwLEIyZSksInIiKSxKPWkoKHMsLi4uZSk9PntsZXQgdD1zLmxlbmd0aD09PTE/c1swXTplLnJlZHVjZSgoYSxyLG4pPT5hKyhvPT57aWYoby5fJGNzc1Jlc3VsdCQ9PT0hMClyZXR1cm4gby5jc3NUZXh0O2lmKHR5cGVvZiBvPT0ibnVtYmVyIilyZXR1cm4gbzt0aHJvdyBFcnJvcigiVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICIrbysiLiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuIil9KShyKStzW24rMV0sc1swXSk7cmV0dXJuIG5ldyB2Nyh0LHMsQjJlKX0sImkiKSxfSj1pKChzLGUpPT57aWYoWXgpcy5hZG9wdGVkU3R5bGVTaGVldHM9ZS5tYXAodD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/dDp0LnN0eWxlU2hlZXQpO2Vsc2UgZm9yKGxldCB0IG9mIGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikscj1TSi5saXROb25jZTtyIT09dm9pZCAwJiZhLnNldEF0dHJpYnV0ZSgibm9uY2UiLHIpLGEudGV4dENvbnRlbnQ9dC5jc3NUZXh0LHMuYXBwZW5kQ2hpbGQoYSl9fSwiUyIpLFp4PVl4P3M9PnM6cz0+cyBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgdD0iIjtmb3IobGV0IGEgb2YgZS5jc3NSdWxlcyl0Kz1hLmNzc1RleHQ7cmV0dXJuIGFhKHQpfSkocyk6c30pO3ZhciBaQ2EsWENhLFFDYSxKQ2EsZVRhLHRUYSxNSixFMXQsYVRhLHNUYSxYeCx4NyxReCxQMXQsVjIsSng9ZygoKT0+e0gyZSgpO0gyZSgpOyh7aXM6WkNhLGRlZmluZVByb3BlcnR5OlhDYSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6UUNhLGdldE93blByb3BlcnR5TmFtZXM6SkNhLGdldE93blByb3BlcnR5U3ltYm9sczplVGEsZ2V0UHJvdG90eXBlT2Y6dFRhfT1PYmplY3QpLE1KPWdsb2JhbFRoaXMsRTF0PU1KLnRydXN0ZWRUeXBlcyxhVGE9RTF0P0UxdC5lbXB0eVNjcmlwdDoiIixzVGE9TUoucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0LFh4PWkoKHMsZSk9PnMsImQiKSx4Nz17dG9BdHRyaWJ1dGUocyxlKXtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnM9cz9hVGE6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnM9cz09bnVsbD9zOkpTT04uc3RyaW5naWZ5KHMpfXJldHVybiBzfSxmcm9tQXR0cmlidXRlKHMsZSl7bGV0IHQ9cztzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnQ9cyE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6dD1zPT09bnVsbD9udWxsOk51bWJlcihzKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXt0PUpTT04ucGFyc2Uocyl9Y2F0Y2h7dD1udWxsfX1yZXR1cm4gdH19LFF4PWkoKHMsZSk9PiFaQ2EocyxlKSwiZiIpLFAxdD17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjp4NyxyZWZsZWN0OiExLHVzZURlZmF1bHQ6ITEsaGFzQ2hhbmdlZDpReH07U3ltYm9sLm1ldGFkYXRhPz89U3ltYm9sKCJtZXRhZGF0YSIpLE1KLmxpdFByb3BlcnR5TWV0YWRhdGE/Pz1uZXcgV2Vha01hcDtWMj1jbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpY3tpKHRoaXMsInkiKX1zdGF0aWMgYWRkSW5pdGlhbGl6ZXIoZSl7dGhpcy5fJEVpKCksKHRoaXMubD8/PVtdKS5wdXNoKGUpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuIHRoaXMuZmluYWxpemUoKSx0aGlzLl8kRWgmJlsuLi50aGlzLl8kRWgua2V5cygpXX1zdGF0aWMgY3JlYXRlUHJvcGVydHkoZSx0PVAxdCl7aWYodC5zdGF0ZSYmKHQuYXR0cmlidXRlPSExKSx0aGlzLl8kRWkoKSx0aGlzLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShlKSYmKCh0PU9iamVjdC5jcmVhdGUodCkpLndyYXBwZWQ9ITApLHRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGUsdCksIXQubm9BY2Nlc3Nvcil7bGV0IGE9U3ltYm9sKCkscj10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihlLGEsdCk7ciE9PXZvaWQgMCYmWENhKHRoaXMucHJvdG90eXBlLGUscil9fXN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoZSx0LGEpe2xldHtnZXQ6cixzZXQ6bn09UUNhKHRoaXMucHJvdG90eXBlLGUpPz97Z2V0KCl7cmV0dXJuIHRoaXNbdF19LHNldChvKXt0aGlzW3RdPW99fTtyZXR1cm57Z2V0OnIsc2V0KG8pe2xldCBsPXI/LmNhbGwodGhpcyk7bj8uY2FsbCh0aGlzLG8pLHRoaXMucmVxdWVzdFVwZGF0ZShlLGwsYSl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGUpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKT8/UDF0fXN0YXRpYyBfJEVpKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShYeCgiZWxlbWVudFByb3BlcnRpZXMiKSkpcmV0dXJuO2xldCBlPXRUYSh0aGlzKTtlLmZpbmFsaXplKCksZS5sIT09dm9pZCAwJiYodGhpcy5sPVsuLi5lLmxdKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzPW5ldyBNYXAoZS5lbGVtZW50UHJvcGVydGllcyl9c3RhdGljIGZpbmFsaXplKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShYeCgiZmluYWxpemVkIikpKXJldHVybjtpZih0aGlzLmZpbmFsaXplZD0hMCx0aGlzLl8kRWkoKSx0aGlzLmhhc093blByb3BlcnR5KFh4KCJwcm9wZXJ0aWVzIikpKXtsZXQgdD10aGlzLnByb3BlcnRpZXMsYT1bLi4uSkNhKHQpLC4uLmVUYSh0KV07Zm9yKGxldCByIG9mIGEpdGhpcy5jcmVhdGVQcm9wZXJ0eShyLHRbcl0pfWxldCBlPXRoaXNbU3ltYm9sLm1ldGFkYXRhXTtpZihlIT09bnVsbCl7bGV0IHQ9bGl0UHJvcGVydHlNZXRhZGF0YS5nZXQoZSk7aWYodCE9PXZvaWQgMClmb3IobGV0W2Escl1vZiB0KXRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGEscil9dGhpcy5fJEVoPW5ldyBNYXA7Zm9yKGxldFt0LGFdb2YgdGhpcy5lbGVtZW50UHJvcGVydGllcyl7bGV0IHI9dGhpcy5fJEV1KHQsYSk7ciE9PXZvaWQgMCYmdGhpcy5fJEVoLnNldChyLHQpfXRoaXMuZWxlbWVudFN0eWxlcz10aGlzLmZpbmFsaXplU3R5bGVzKHRoaXMuc3R5bGVzKX1zdGF0aWMgZmluYWxpemVTdHlsZXMoZSl7bGV0IHQ9W107aWYoQXJyYXkuaXNBcnJheShlKSl7bGV0IGE9bmV3IFNldChlLmZsYXQoMS8wKS5yZXZlcnNlKCkpO2ZvcihsZXQgciBvZiBhKXQudW5zaGlmdChaeChyKSl9ZWxzZSBlIT09dm9pZCAwJiZ0LnB1c2goWngoZSkpO3JldHVybiB0fXN0YXRpYyBfJEV1KGUsdCl7bGV0IGE9dC5hdHRyaWJ1dGU7cmV0dXJuIGE9PT0hMT92b2lkIDA6dHlwZW9mIGE9PSJzdHJpbmciP2E6dHlwZW9mIGU9PSJzdHJpbmciP2UudG9Mb3dlckNhc2UoKTp2b2lkIDB9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuXyRFcD12b2lkIDAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITEsdGhpcy5oYXNVcGRhdGVkPSExLHRoaXMuXyRFbT1udWxsLHRoaXMuXyRFdigpfV8kRXYoKXt0aGlzLl8kRVM9bmV3IFByb21pc2UoZT0+dGhpcy5lbmFibGVVcGRhdGluZz1lKSx0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLl8kRV8oKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNvbnN0cnVjdG9yLmw/LmZvckVhY2goZT0+ZSh0aGlzKSl9YWRkQ29udHJvbGxlcihlKXsodGhpcy5fJEVPPz89bmV3IFNldCkuYWRkKGUpLHRoaXMucmVuZGVyUm9vdCE9PXZvaWQgMCYmdGhpcy5pc0Nvbm5lY3RlZCYmZS5ob3N0Q29ubmVjdGVkPy4oKX1yZW1vdmVDb250cm9sbGVyKGUpe3RoaXMuXyRFTz8uZGVsZXRlKGUpfV8kRV8oKXtsZXQgZT1uZXcgTWFwLHQ9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztmb3IobGV0IGEgb2YgdC5rZXlzKCkpdGhpcy5oYXNPd25Qcm9wZXJ0eShhKSYmKGUuc2V0KGEsdGhpc1thXSksZGVsZXRlIHRoaXNbYV0pO2Uuc2l6ZT4wJiYodGhpcy5fJEVwPWUpfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT10aGlzLnNoYWRvd1Jvb3Q/P3RoaXMuYXR0YWNoU2hhZG93KHRoaXMuY29uc3RydWN0b3Iuc2hhZG93Um9vdE9wdGlvbnMpO3JldHVybiBfSihlLHRoaXMuY29uc3RydWN0b3IuZWxlbWVudFN0eWxlcyksZX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuZW5hYmxlVXBkYXRpbmcoITApLHRoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3RDb25uZWN0ZWQ/LigpKX1lbmFibGVVcGRhdGluZyhlKXt9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl8kRU8/LmZvckVhY2goZT0+ZS5ob3N0RGlzY29ubmVjdGVkPy4oKSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGUsdCxhKXt0aGlzLl8kQUsoZSxhKX1fJEVUKGUsdCl7bGV0IGE9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcy5nZXQoZSkscj10aGlzLmNvbnN0cnVjdG9yLl8kRXUoZSxhKTtpZihyIT09dm9pZCAwJiZhLnJlZmxlY3Q9PT0hMCl7bGV0IG49KGEuY29udmVydGVyPy50b0F0dHJpYnV0ZSE9PXZvaWQgMD9hLmNvbnZlcnRlcjp4NykudG9BdHRyaWJ1dGUodCxhLnR5cGUpO3RoaXMuXyRFbT1lLG49PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGUocik6dGhpcy5zZXRBdHRyaWJ1dGUocixuKSx0aGlzLl8kRW09bnVsbH19XyRBSyhlLHQpe2xldCBhPXRoaXMuY29uc3RydWN0b3Iscj1hLl8kRWguZ2V0KGUpO2lmKHIhPT12b2lkIDAmJnRoaXMuXyRFbSE9PXIpe2xldCBuPWEuZ2V0UHJvcGVydHlPcHRpb25zKHIpLG89dHlwZW9mIG4uY29udmVydGVyPT0iZnVuY3Rpb24iP3tmcm9tQXR0cmlidXRlOm4uY29udmVydGVyfTpuLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZSE9PXZvaWQgMD9uLmNvbnZlcnRlcjp4Nzt0aGlzLl8kRW09cjtsZXQgbD1vLmZyb21BdHRyaWJ1dGUodCxuLnR5cGUpO3RoaXNbcl09bD8/dGhpcy5fJEVqPy5nZXQocik/P2wsdGhpcy5fJEVtPW51bGx9fXJlcXVlc3RVcGRhdGUoZSx0LGEscj0hMSxuKXtpZihlIT09dm9pZCAwKXtsZXQgbz10aGlzLmNvbnN0cnVjdG9yO2lmKHI9PT0hMSYmKG49dGhpc1tlXSksYT8/PW8uZ2V0UHJvcGVydHlPcHRpb25zKGUpLCEoKGEuaGFzQ2hhbmdlZD8/UXgpKG4sdCl8fGEudXNlRGVmYXVsdCYmYS5yZWZsZWN0JiZuPT09dGhpcy5fJEVqPy5nZXQoZSkmJiF0aGlzLmhhc0F0dHJpYnV0ZShvLl8kRXUoZSxhKSkpKXJldHVybjt0aGlzLkMoZSx0LGEpfXRoaXMuaXNVcGRhdGVQZW5kaW5nPT09ITEmJih0aGlzLl8kRVM9dGhpcy5fJEVQKCkpfUMoZSx0LHt1c2VEZWZhdWx0OmEscmVmbGVjdDpyLHdyYXBwZWQ6bn0sbyl7YSYmISh0aGlzLl8kRWo/Pz1uZXcgTWFwKS5oYXMoZSkmJih0aGlzLl8kRWouc2V0KGUsbz8/dD8/dGhpc1tlXSksbiE9PSEwfHxvIT09dm9pZCAwKXx8KHRoaXMuXyRBTC5oYXMoZSl8fCh0aGlzLmhhc1VwZGF0ZWR8fGF8fCh0PXZvaWQgMCksdGhpcy5fJEFMLnNldChlLHQpKSxyPT09ITAmJnRoaXMuXyRFbSE9PWUmJih0aGlzLl8kRXE/Pz1uZXcgU2V0KS5hZGQoZSkpfWFzeW5jIF8kRVAoKXt0aGlzLmlzVXBkYXRlUGVuZGluZz0hMDt0cnl7YXdhaXQgdGhpcy5fJEVTfWNhdGNoKHQpe1Byb21pc2UucmVqZWN0KHQpfWxldCBlPXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gZSE9bnVsbCYmYXdhaXQgZSwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IobGV0W3Isbl1vZiB0aGlzLl8kRXApdGhpc1tyXT1uO3RoaXMuXyRFcD12b2lkIDB9bGV0IGE9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztpZihhLnNpemU+MClmb3IobGV0W3Isbl1vZiBhKXtsZXR7d3JhcHBlZDpvfT1uLGw9dGhpc1tyXTtvIT09ITB8fHRoaXMuXyRBTC5oYXMocil8fGw9PT12b2lkIDB8fHRoaXMuQyhyLHZvaWQgMCxuLGwpfX1sZXQgZT0hMSx0PXRoaXMuXyRBTDt0cnl7ZT10aGlzLnNob3VsZFVwZGF0ZSh0KSxlPyh0aGlzLndpbGxVcGRhdGUodCksdGhpcy5fJEVPPy5mb3JFYWNoKGE9PmEuaG9zdFVwZGF0ZT8uKCkpLHRoaXMudXBkYXRlKHQpKTp0aGlzLl8kRU0oKX1jYXRjaChhKXt0aHJvdyBlPSExLHRoaXMuXyRFTSgpLGF9ZSYmdGhpcy5fJEFFKHQpfXdpbGxVcGRhdGUoZSl7fV8kQUUoZSl7dGhpcy5fJEVPPy5mb3JFYWNoKHQ9PnQuaG9zdFVwZGF0ZWQ/LigpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZSkpLHRoaXMudXBkYXRlZChlKX1fJEVNKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKGUpe3JldHVybiEwfXVwZGF0ZShlKXt0aGlzLl8kRXEmJj10aGlzLl8kRXEuZm9yRWFjaCh0PT50aGlzLl8kRVQodCx0aGlzW3RdKSksdGhpcy5fJEVNKCl9dXBkYXRlZChlKXt9Zmlyc3RVcGRhdGVkKGUpe319O1YyLmVsZW1lbnRTdHlsZXM9W10sVjIuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifSxWMltYeCgiZWxlbWVudFByb3BlcnRpZXMiKV09bmV3IE1hcCxWMltYeCgiZmluYWxpemVkIildPW5ldyBNYXAsc1RhPy4oe1JlYWN0aXZlRWxlbWVudDpWMn0pLChNSi5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCIyLjEuMiIpfSk7ZnVuY3Rpb24gajF0KHMsZSl7aWYoIVUyZShzKXx8IXMuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gQTF0IT09dm9pZCAwP0ExdC5jcmVhdGVIVE1MKGUpOmV9ZnVuY3Rpb24gTjQocyxlLHQ9cyxhKXtpZihlPT09b2kpcmV0dXJuIGU7bGV0IHI9YSE9PXZvaWQgMD90Ll8kQ28/LlthXTp0Ll8kQ2wsbj10eShlKT92b2lkIDA6ZS5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIHI/LmNvbnN0cnVjdG9yIT09biYmKHI/Ll8kQU8/LighMSksbj09PXZvaWQgMD9yPXZvaWQgMDoocj1uZXcgbihzKSxyLl8kQVQocyx0LGEpKSxhIT09dm9pZCAwPyh0Ll8kQ28/Pz1bXSlbYV09cjp0Ll8kQ2w9ciksciE9PXZvaWQgMCYmKGU9TjQocyxyLl8kQVMocyxlLnZhbHVlcykscixhKSksZX12YXIgcTJlLEkxdCx6SixBMXQsajJlLHIwLFYyZSxpVGEsUDQsZXksdHksVTJlLE4xdCxXMmUsYXksUjF0LE8xdCxJNCxGMXQsQjF0LEgxdCxHMmUsdyxLMmUsWTJlLG9pLHhpLHExdCxBNCxWMXQsc3ksQ0oseTcsUjQsVEosJEosREosTEosWjJlLHJUYSxoMSxmMT1nKCgpPT57cTJlPWdsb2JhbFRoaXMsSTF0PWkocz0+cywiaSIpLHpKPXEyZS50cnVzdGVkVHlwZXMsQTF0PXpKP3pKLmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOmkocz0+cywiY3JlYXRlSFRNTCIpfSk6dm9pZCAwLGoyZT0iJGxpdCQiLHIwPWBsaXQkJHtNYXRoLnJhbmRvbSgpLnRvRml4ZWQoOSkuc2xpY2UoMil9JGAsVjJlPSI/IityMCxpVGE9YDwke1YyZX0+YCxQND1kb2N1bWVudCxleT1pKCgpPT5QNC5jcmVhdGVDb21tZW50KCIiKSwiYyIpLHR5PWkocz0+cz09PW51bGx8fHR5cGVvZiBzIT0ib2JqZWN0IiYmdHlwZW9mIHMhPSJmdW5jdGlvbiIsImEiKSxVMmU9QXJyYXkuaXNBcnJheSxOMXQ9aShzPT5VMmUocyl8fHR5cGVvZiBzPy5bU3ltYm9sLml0ZXJhdG9yXT09ImZ1bmN0aW9uIiwiZCIpLFcyZT1gWyAJClxmXHJdYCxheT0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxSMXQ9Ly0tPi9nLE8xdD0vPi9nLEk0PVJlZ0V4cChgPnwke1cyZX0oPzooW15cXHMiJz49L10rKSgke1cyZX0qPSR7VzJlfSooPzpbXiAJClxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSxGMXQ9LycvZyxCMXQ9LyIvZyxIMXQ9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLEcyZT1pKHM9PihlLC4uLnQpPT4oe18kbGl0VHlwZSQ6cyxzdHJpbmdzOmUsdmFsdWVzOnR9KSwieCIpLHc9RzJlKDEpLEsyZT1HMmUoMiksWTJlPUcyZSgzKSxvaT1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSx4aT1TeW1ib2wuZm9yKCJsaXQtbm90aGluZyIpLHExdD1uZXcgV2Vha01hcCxBND1QNC5jcmVhdGVUcmVlV2Fsa2VyKFA0LDEyOSk7aShqMXQsIlYiKTtWMXQ9aSgocyxlKT0+e2xldCB0PXMubGVuZ3RoLTEsYT1bXSxyLG49ZT09PTI/Ijxzdmc+IjplPT09Mz8iPG1hdGg+IjoiIixvPWF5O2ZvcihsZXQgbD0wO2w8dDtsKyspe2xldCBwPXNbbF0sZCx1LGM9LTEsYj0wO2Zvcig7YjxwLmxlbmd0aCYmKG8ubGFzdEluZGV4PWIsdT1vLmV4ZWMocCksdSE9PW51bGwpOyliPW8ubGFzdEluZGV4LG89PT1heT91WzFdPT09IiEtLSI/bz1SMXQ6dVsxXSE9PXZvaWQgMD9vPU8xdDp1WzJdIT09dm9pZCAwPyhIMXQudGVzdCh1WzJdKSYmKHI9UmVnRXhwKCI8LyIrdVsyXSwiZyIpKSxvPUk0KTp1WzNdIT09dm9pZCAwJiYobz1JNCk6bz09PUk0P3VbMF09PT0iPiI/KG89cj8/YXksYz0tMSk6dVsxXT09PXZvaWQgMD9jPS0yOihjPW8ubGFzdEluZGV4LXVbMl0ubGVuZ3RoLGQ9dVsxXSxvPXVbM109PT12b2lkIDA/STQ6dVszXT09PSciJz9CMXQ6RjF0KTpvPT09QjF0fHxvPT09RjF0P289STQ6bz09PVIxdHx8bz09PU8xdD9vPWF5OihvPUk0LHI9dm9pZCAwKTtsZXQgdj1vPT09STQmJnNbbCsxXS5zdGFydHNXaXRoKCIvPiIpPyIgIjoiIjtuKz1vPT09YXk/cCtpVGE6Yz49MD8oYS5wdXNoKGQpLHAuc2xpY2UoMCxjKStqMmUrcC5zbGljZShjKStyMCt2KTpwK3IwKyhjPT09LTI/bDp2KX1yZXR1cm5bajF0KHMsbisoc1t0XXx8Ijw/PiIpKyhlPT09Mj8iPC9zdmc+IjplPT09Mz8iPC9tYXRoPiI6IiIpKSxhXX0sIk4iKSxzeT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlMiKX1jb25zdHJ1Y3Rvcih7c3RyaW5nczplLF8kbGl0VHlwZSQ6dH0sYSl7bGV0IHI7dGhpcy5wYXJ0cz1bXTtsZXQgbj0wLG89MCxsPWUubGVuZ3RoLTEscD10aGlzLnBhcnRzLFtkLHVdPVYxdChlLHQpO2lmKHRoaXMuZWw9cy5jcmVhdGVFbGVtZW50KGQsYSksQTQuY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LHQ9PT0yfHx0PT09Myl7bGV0IGM9dGhpcy5lbC5jb250ZW50LmZpcnN0Q2hpbGQ7Yy5yZXBsYWNlV2l0aCguLi5jLmNoaWxkTm9kZXMpfWZvcig7KHI9QTQubmV4dE5vZGUoKSkhPT1udWxsJiZwLmxlbmd0aDxsOyl7aWYoci5ub2RlVHlwZT09PTEpe2lmKHIuaGFzQXR0cmlidXRlcygpKWZvcihsZXQgYyBvZiByLmdldEF0dHJpYnV0ZU5hbWVzKCkpaWYoYy5lbmRzV2l0aChqMmUpKXtsZXQgYj11W28rK10sdj1yLmdldEF0dHJpYnV0ZShjKS5zcGxpdChyMCkseD0vKFsuP0BdKT8oLiopLy5leGVjKGIpO3AucHVzaCh7dHlwZToxLGluZGV4Om4sbmFtZTp4WzJdLHN0cmluZ3M6dixjdG9yOnhbMV09PT0iLiI/VEo6eFsxXT09PSI/Ij8kSjp4WzFdPT09IkAiP0RKOlI0fSksci5yZW1vdmVBdHRyaWJ1dGUoYyl9ZWxzZSBjLnN0YXJ0c1dpdGgocjApJiYocC5wdXNoKHt0eXBlOjYsaW5kZXg6bn0pLHIucmVtb3ZlQXR0cmlidXRlKGMpKTtpZihIMXQudGVzdChyLnRhZ05hbWUpKXtsZXQgYz1yLnRleHRDb250ZW50LnNwbGl0KHIwKSxiPWMubGVuZ3RoLTE7aWYoYj4wKXtyLnRleHRDb250ZW50PXpKP3pKLmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgdj0wO3Y8Yjt2Kyspci5hcHBlbmQoY1t2XSxleSgpKSxBNC5uZXh0Tm9kZSgpLHAucHVzaCh7dHlwZToyLGluZGV4Oisrbn0pO3IuYXBwZW5kKGNbYl0sZXkoKSl9fX1lbHNlIGlmKHIubm9kZVR5cGU9PT04KWlmKHIuZGF0YT09PVYyZSlwLnB1c2goe3R5cGU6MixpbmRleDpufSk7ZWxzZXtsZXQgYz0tMTtmb3IoOyhjPXIuZGF0YS5pbmRleE9mKHIwLGMrMSkpIT09LTE7KXAucHVzaCh7dHlwZTo3LGluZGV4Om59KSxjKz1yMC5sZW5ndGgtMX1uKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KGUsdCl7bGV0IGE9UDQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gYS5pbm5lckhUTUw9ZSxhfX07aShONCwiTSIpO0NKPWNsYXNze3N0YXRpY3tpKHRoaXMsIlIiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD1lLHRoaXMuXyRBTT10fWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUoZSl7bGV0e2VsOntjb250ZW50OnR9LHBhcnRzOmF9PXRoaXMuXyRBRCxyPShlPy5jcmVhdGlvblNjb3BlPz9QNCkuaW1wb3J0Tm9kZSh0LCEwKTtBNC5jdXJyZW50Tm9kZT1yO2xldCBuPUE0Lm5leHROb2RlKCksbz0wLGw9MCxwPWFbMF07Zm9yKDtwIT09dm9pZCAwOyl7aWYobz09PXAuaW5kZXgpe2xldCBkO3AudHlwZT09PTI/ZD1uZXcgeTcobixuLm5leHRTaWJsaW5nLHRoaXMsZSk6cC50eXBlPT09MT9kPW5ldyBwLmN0b3IobixwLm5hbWUscC5zdHJpbmdzLHRoaXMsZSk6cC50eXBlPT09NiYmKGQ9bmV3IExKKG4sdGhpcyxlKSksdGhpcy5fJEFWLnB1c2goZCkscD1hWysrbF19byE9PXA/LmluZGV4JiYobj1BNC5uZXh0Tm9kZSgpLG8rKyl9cmV0dXJuIEE0LmN1cnJlbnROb2RlPVA0LHJ9cChlKXtsZXQgdD0wO2ZvcihsZXQgYSBvZiB0aGlzLl8kQVYpYSE9PXZvaWQgMCYmKGEuc3RyaW5ncyE9PXZvaWQgMD8oYS5fJEFJKGUsYSx0KSx0Kz1hLnN0cmluZ3MubGVuZ3RoLTIpOmEuXyRBSShlW3RdKSksdCsrfX0seTc9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJrIil9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpcy50eXBlPTIsdGhpcy5fJEFIPXhpLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPWUsdGhpcy5fJEFCPXQsdGhpcy5fJEFNPWEsdGhpcy5vcHRpb25zPXIsdGhpcy5fJEN2PXI/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCBlPXRoaXMuXyRBQS5wYXJlbnROb2RlLHQ9dGhpcy5fJEFNO3JldHVybiB0IT09dm9pZCAwJiZlPy5ub2RlVHlwZT09PTExJiYoZT10LnBhcmVudE5vZGUpLGV9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkoZSx0PXRoaXMpe2U9TjQodGhpcyxlLHQpLHR5KGUpP2U9PT14aXx8ZT09bnVsbHx8ZT09PSIiPyh0aGlzLl8kQUghPT14aSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPXhpKTplIT09dGhpcy5fJEFIJiZlIT09b2kmJnRoaXMuXyhlKTplLl8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKGUpOmUubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKGUpOk4xdChlKT90aGlzLmsoZSk6dGhpcy5fKGUpfU8oZSl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMuXyRBQil9VChlKXt0aGlzLl8kQUghPT1lJiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyhlKSl9XyhlKXt0aGlzLl8kQUghPT14aSYmdHkodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT1lOnRoaXMuVChQNC5jcmVhdGVUZXh0Tm9kZShlKSksdGhpcy5fJEFIPWV9JChlKXtsZXR7dmFsdWVzOnQsXyRsaXRUeXBlJDphfT1lLHI9dHlwZW9mIGE9PSJudW1iZXIiP3RoaXMuXyRBQyhlKTooYS5lbD09PXZvaWQgMCYmKGEuZWw9c3kuY3JlYXRlRWxlbWVudChqMXQoYS5oLGEuaFswXSksdGhpcy5vcHRpb25zKSksYSk7aWYodGhpcy5fJEFIPy5fJEFEPT09cil0aGlzLl8kQUgucCh0KTtlbHNle2xldCBuPW5ldyBDSihyLHRoaXMpLG89bi51KHRoaXMub3B0aW9ucyk7bi5wKHQpLHRoaXMuVChvKSx0aGlzLl8kQUg9bn19XyRBQyhlKXtsZXQgdD1xMXQuZ2V0KGUuc3RyaW5ncyk7cmV0dXJuIHQ9PT12b2lkIDAmJnExdC5zZXQoZS5zdHJpbmdzLHQ9bmV3IHN5KGUpKSx0fWsoZSl7VTJlKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2xldCB0PXRoaXMuXyRBSCxhLHI9MDtmb3IobGV0IG4gb2YgZSlyPT09dC5sZW5ndGg/dC5wdXNoKGE9bmV3IHModGhpcy5PKGV5KCkpLHRoaXMuTyhleSgpKSx0aGlzLHRoaXMub3B0aW9ucykpOmE9dFtyXSxhLl8kQUkobikscisrO3I8dC5sZW5ndGgmJih0aGlzLl8kQVIoYSYmYS5fJEFCLm5leHRTaWJsaW5nLHIpLHQubGVuZ3RoPXIpfV8kQVIoZT10aGlzLl8kQUEubmV4dFNpYmxpbmcsdCl7Zm9yKHRoaXMuXyRBUD8uKCExLCEwLHQpO2UhPT10aGlzLl8kQUI7KXtsZXQgYT1JMXQoZSkubmV4dFNpYmxpbmc7STF0KGUpLnJlbW92ZSgpLGU9YX19c2V0Q29ubmVjdGVkKGUpe3RoaXMuXyRBTT09PXZvaWQgMCYmKHRoaXMuXyRDdj1lLHRoaXMuXyRBUD8uKGUpKX19LFI0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkgiKX1nZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLHQsYSxyLG4pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD14aSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1lLHRoaXMubmFtZT10LHRoaXMuXyRBTT1yLHRoaXMub3B0aW9ucz1uLGEubGVuZ3RoPjJ8fGFbMF0hPT0iInx8YVsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoYS5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9YSk6dGhpcy5fJEFIPXhpfV8kQUkoZSx0PXRoaXMsYSxyKXtsZXQgbj10aGlzLnN0cmluZ3Msbz0hMTtpZihuPT09dm9pZCAwKWU9TjQodGhpcyxlLHQsMCksbz0hdHkoZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1vaSxvJiYodGhpcy5fJEFIPWUpO2Vsc2V7bGV0IGw9ZSxwLGQ7Zm9yKGU9blswXSxwPTA7cDxuLmxlbmd0aC0xO3ArKylkPU40KHRoaXMsbFthK3BdLHQscCksZD09PW9pJiYoZD10aGlzLl8kQUhbcF0pLG98fD0hdHkoZCl8fGQhPT10aGlzLl8kQUhbcF0sZD09PXhpP2U9eGk6ZSE9PXhpJiYoZSs9KGQ/PyIiKStuW3ArMV0pLHRoaXMuXyRBSFtwXT1kfW8mJiFyJiZ0aGlzLmooZSl9aihlKXtlPT09eGk/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGU/PyIiKX19LFRKPWNsYXNzIGV4dGVuZHMgUjR7c3RhdGlje2kodGhpcywiSSIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKGUpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPWU9PT14aT92b2lkIDA6ZX19LCRKPWNsYXNzIGV4dGVuZHMgUjR7c3RhdGlje2kodGhpcywiTCIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKGUpe3RoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUodGhpcy5uYW1lLCEhZSYmZSE9PXhpKX19LERKPWNsYXNzIGV4dGVuZHMgUjR7c3RhdGlje2kodGhpcywieiIpfWNvbnN0cnVjdG9yKGUsdCxhLHIsbil7c3VwZXIoZSx0LGEscixuKSx0aGlzLnR5cGU9NX1fJEFJKGUsdD10aGlzKXtpZigoZT1ONCh0aGlzLGUsdCwwKT8/eGkpPT09b2kpcmV0dXJuO2xldCBhPXRoaXMuXyRBSCxyPWU9PT14aSYmYSE9PXhpfHxlLmNhcHR1cmUhPT1hLmNhcHR1cmV8fGUub25jZSE9PWEub25jZXx8ZS5wYXNzaXZlIT09YS5wYXNzaXZlLG49ZSE9PXhpJiYoYT09PXhpfHxyKTtyJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxhKSxuJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxlKSx0aGlzLl8kQUg9ZX1oYW5kbGVFdmVudChlKXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LGUpOnRoaXMuXyRBSC5oYW5kbGVFdmVudChlKX19LExKPWNsYXNze3N0YXRpY3tpKHRoaXMsIloiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5lbGVtZW50PWUsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09dCx0aGlzLm9wdGlvbnM9YX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKGUpe040KHRoaXMsZSl9fSxaMmU9e006ajJlLFA6cjAsQTpWMmUsQzoxLEw6VjF0LFI6Q0osRDpOMXQsVjpONCxJOnk3LEg6UjQsTjokSixVOkRKLEI6VEosRjpMSn0sclRhPXEyZS5saXRIdG1sUG9seWZpbGxTdXBwb3J0O3JUYT8uKHN5LHk3KSwocTJlLmxpdEh0bWxWZXJzaW9ucz8/PVtdKS5wdXNoKCIzLjMuMiIpO2gxPWkoKHMsZSx0KT0+e2xldCBhPXQ/LnJlbmRlckJlZm9yZT8/ZSxyPWEuXyRsaXRQYXJ0JDtpZihyPT09dm9pZCAwKXtsZXQgbj10Py5yZW5kZXJCZWZvcmU/P251bGw7YS5fJGxpdFBhcnQkPXI9bmV3IHk3KGUuaW5zZXJ0QmVmb3JlKGV5KCksbiksbix2b2lkIDAsdD8/e30pfXJldHVybiByLl8kQUkocykscn0sIkQiKX0pO3ZhciBYMmUsbzAsb1RhLG5UYSxVMXQ9ZygoKT0+e0p4KCk7SngoKTtmMSgpO2YxKCk7WDJlPWdsb2JhbFRoaXMsbzA9Y2xhc3MgZXh0ZW5kcyBWMntzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz1lLmZpcnN0Q2hpbGQsZX11cGRhdGUoZSl7bGV0IHQ9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKGUpLHRoaXMuXyREbz1oMSh0LHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gb2l9fTtvMC5fJGxpdEVsZW1lbnQkPSEwLG8wLmZpbmFsaXplZD0hMCxYMmUubGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0Py4oe0xpdEVsZW1lbnQ6bzB9KTtvVGE9WDJlLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7b1RhPy4oe0xpdEVsZW1lbnQ6bzB9KTtuVGE9e18kQUs6aSgocyxlLHQpPT57cy5fJEFLKGUsdCl9LCJfJEFLIiksXyRBTDppKHM9PnMuXyRBTCwiXyRBTCIpfTsoWDJlLmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIGxUYSxXMXQ9ZygoKT0+e2xUYT0hMX0pO3ZhciB2Yz1nKCgpPT57SngoKTtmMSgpO1UxdCgpO1cxdCgpfSk7dmFyIGl5PXBsKEVKPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShFSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRUoudW5pPXZvaWQgMDt2YXIgY1RhPWkoKHM9InVuaSIpPT5gJHtzfV8keyJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZyxlPT57bGV0IHQ9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybihlPT09IngiP3Q6dCYzfDgpLnRvU3RyaW5nKDE2KX0pfWAsInVuaSIpO0VKLnVuaT1jVGF9KTt2YXIgUEoscnAsSUo9ZygoKT0+e1BKPWNsYXNze3N0YXRpY3tpKHRoaXMsIkRlZmVycmVkIil9Y2xhaW0oKXtpZih0aGlzLmNsYWltZWQpdGhyb3cgbmV3IEVycm9yKCJEZWZlcnJlZCBhbHJlYWR5IGNsYWltZWQiKTt0aGlzLmNsYWltZWQ9ITB9Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcHBlZEF0P3RoaXMuc3RvcHBlZEF0LXRoaXMuc3RhcnRlZEF0OkRhdGUubm93KCktdGhpcy5zdGFydGVkQXR9Y29uc3RydWN0b3IoKXt0aGlzLmNsYWltZWQ9ITEsdGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5yZXNvbHZlPWE9Pnt0aGlzLnN0YXR1cz0iZnVsZmlsbGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLGUoYSl9LHRoaXMucmVqZWN0PWE9Pnt0aGlzLnN0YXR1cz0icmVqZWN0ZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChhKX0sdGhpcy5zdGFydGVkQXQ9RGF0ZS5ub3coKSx0aGlzLnN0YXR1cz0icGVuZGluZyJ9KX19LHJwPWkoKCk9Pm5ldyBQSiwiZGVmZXIiKX0pO3ZhciBBSixkVGEsRzF0PWcoKCk9PntJSigpO0FKPWNsYXNze3N0YXRpY3tpKHRoaXMsIkN1bXVsYXRpdmVEZWZlcnJlZCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9cnAoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgZT1ycCgpO3JldHVybiB0aGlzLmFkZFByb21pc2UoZS5wcm9taXNlKSxlfWFkZFByb21pc2UoZSl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2goZSl9fSxkVGE9aSgoKT0+bmV3IEFKLCJjdW11bGF0aXZlRGVmZXIiKX0pO3ZhciBtdD17fTt5dChtdCx7Q3VtdWxhdGl2ZURlZmVycmVkOigpPT5BSixEZWZlcnJlZDooKT0+UEosY3VtdWxhdGl2ZURlZmVyOigpPT5kVGEsZGVmZXI6KCk9PnJwLGZyb21DYWxsYmFjazooKT0+Z1RhLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9Pm1UYSxtYXA6KCk9PmhUYSxyZWplY3RlZFByb21pc2U6KCk9PnBUYSxyZXNvbHZlZFByb21pc2U6KCk9PnVUYSx0aW1lb3V0QW5kQ29udGludWU6KCk9PmZUYSx0aW1lb3V0V3JhcDooKT0+SzF0fSk7ZnVuY3Rpb24gdVRhKHMpe3JldHVybiBQcm9taXNlLnJlc29sdmUocyl9dmFyIHBUYSxoVGEsSzF0LGZUYSxtVGEsZ1RhLGlvPWcoKCk9PntJSigpO0cxdCgpO0lKKCk7aSh1VGEsInJlc29sdmVkUHJvbWlzZSIpO3BUYT1pKHM9PlByb21pc2UucmVqZWN0KHMpLCJyZWplY3RlZFByb21pc2UiKSxoVGE9aShhc3luYyhzLGUpPT5Qcm9taXNlLmFsbChzLm1hcChlKSksIm1hcCIpLEsxdD1pKGFzeW5jKHMsZSx0PSEwKT0+bmV3IFByb21pc2UoKGEscik9PntzZXRUaW1lb3V0KCgpPT57dD9yKG5ldyBFcnJvcigidGltZW91dCIpKTphKG51bGwpfSxlKSxzLnRoZW4oYSxyKX0pLCJ0aW1lb3V0V3JhcCIpLGZUYT1pKGFzeW5jKHMsZT02ZTQpPT5LMXQocyxlLCExKSwidGltZW91dEFuZENvbnRpbnVlIiksbVRhPWkoYXN5bmMgcz0+e2xldCBlPXJwKCk7Zm9yKGxldCB0IG9mIHMpdC50aGVuKGE9PnthPT09ITAmJmUucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwocykudGhlbigoKT0+e2UucmVzb2x2ZSghMSl9KSxlLnByb21pc2V9LCJnZXRGaXJzdFRydWVPckZhbHNlIiksZ1RhPWkocz0+bmV3IFByb21pc2UoKGUsdCk9PntzKChhLHIpPT57YT90KGEpOmUocil9KX0pLCJmcm9tQ2FsbGJhY2siKX0pO3ZhciBOSj1nKCgpPT57aW8oKX0pO2Z1bmN0aW9uIExhKHMsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7UTJlKHMsZSk7ZnVuY3Rpb24gdCgpe3RoaXMuY29uc3RydWN0b3I9c31pKHQsIl9fIikscy5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKToodC5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IHQpfWZ1bmN0aW9uIHZUYShzLGUpe3ZhciB0PXt9O2Zvcih2YXIgYSBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLGEpJiZlLmluZGV4T2YoYSk8MCYmKHRbYV09c1thXSk7aWYocyE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciByPTAsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO3I8YS5sZW5ndGg7cisrKWUuaW5kZXhPZihhW3JdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxhW3JdKSYmKHRbYVtyXV09c1thW3JdXSk7cmV0dXJuIHR9ZnVuY3Rpb24geFRhKHMsZSx0LGEpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGgsbj1yPDM/ZTphPT09bnVsbD9hPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTphLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIiluPVJlZmxlY3QuZGVjb3JhdGUocyxlLHQsYSk7ZWxzZSBmb3IodmFyIGw9cy5sZW5ndGgtMTtsPj0wO2wtLSkobz1zW2xdKSYmKG49KHI8Mz9vKG4pOnI+Mz9vKGUsdCxuKTpvKGUsdCkpfHxuKTtyZXR1cm4gcj4zJiZuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LG4pLG59ZnVuY3Rpb24geVRhKHMsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsYSl7ZSh0LGEscyl9fWZ1bmN0aW9uIHdUYShzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH1mdW5jdGlvbiBrVGEocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9ZnVuY3Rpb24gU1RhKHMpe3JldHVybiB0eXBlb2Ygcz09InN5bWJvbCI/czoiIi5jb25jYXQocyl9ZnVuY3Rpb24gX1RhKHMsZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocywibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTp0PyIiLmNvbmNhdCh0LCIgIixlKTplfSl9ZnVuY3Rpb24gTVRhKHMsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShzLGUpfWZ1bmN0aW9uIGFkZShzLGUsdCxhKXtmdW5jdGlvbiByKG4pe3JldHVybiBuIGluc3RhbmNlb2YgdD9uOm5ldyB0KGZ1bmN0aW9uKG8pe28obil9KX1yZXR1cm4gaShyLCJhZG9wdCIpLG5ldyh0fHwodD1Qcm9taXNlKSkoZnVuY3Rpb24obixvKXtmdW5jdGlvbiBsKHUpe3RyeXtkKGEubmV4dCh1KSl9Y2F0Y2goYyl7byhjKX19aShsLCJmdWxmaWxsZWQiKTtmdW5jdGlvbiBwKHUpe3RyeXtkKGEudGhyb3codSkpfWNhdGNoKGMpe28oYyl9fWkocCwicmVqZWN0ZWQiKTtmdW5jdGlvbiBkKHUpe3UuZG9uZT9uKHUudmFsdWUpOnIodS52YWx1ZSkudGhlbihsLHApfWkoZCwic3RlcCIpLGQoKGE9YS5hcHBseShzLGV8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIHJ5KHMsZSl7dmFyIHQ9e2xhYmVsOjAsc2VudDppKGZ1bmN0aW9uKCl7aWYoblswXSYxKXRocm93IG5bMV07cmV0dXJuIG5bMV19LCJzZW50IiksdHJ5czpbXSxvcHM6W119LGEscixuLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PWwoMCksby50aHJvdz1sKDEpLG8ucmV0dXJuPWwoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBsKGQpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gcChbZCx1XSl9fWZ1bmN0aW9uIHAoZCl7aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvJiYobz0wLGRbMF0mJih0PTApKSx0Oyl0cnl7aWYoYT0xLHImJihuPWRbMF0mMj9yLnJldHVybjpkWzBdP3IudGhyb3d8fCgobj1yLnJldHVybikmJm4uY2FsbChyKSwwKTpyLm5leHQpJiYhKG49bi5jYWxsKHIsZFsxXSkpLmRvbmUpcmV0dXJuIG47c3dpdGNoKHI9MCxuJiYoZD1bZFswXSYyLG4udmFsdWVdKSxkWzBdKXtjYXNlIDA6Y2FzZSAxOm49ZDticmVhaztjYXNlIDQ6cmV0dXJuIHQubGFiZWwrKyx7dmFsdWU6ZFsxXSxkb25lOiExfTtjYXNlIDU6dC5sYWJlbCsrLHI9ZFsxXSxkPVswXTtjb250aW51ZTtjYXNlIDc6ZD10Lm9wcy5wb3AoKSx0LnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihuPXQudHJ5cywhKG49bi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXSkmJihkWzBdPT09Nnx8ZFswXT09PTIpKXt0PTA7Y29udGludWV9aWYoZFswXT09PTMmJighbnx8ZFsxXT5uWzBdJiZkWzFdPG5bM10pKXt0LmxhYmVsPWRbMV07YnJlYWt9aWYoZFswXT09PTYmJnQubGFiZWw8blsxXSl7dC5sYWJlbD1uWzFdLG49ZDticmVha31pZihuJiZ0LmxhYmVsPG5bMl0pe3QubGFiZWw9blsyXSx0Lm9wcy5wdXNoKGQpO2JyZWFrfW5bMl0mJnQub3BzLnBvcCgpLHQudHJ5cy5wb3AoKTtjb250aW51ZX1kPWUuY2FsbChzLHQpfWNhdGNoKHUpe2Q9WzYsdV0scj0wfWZpbmFsbHl7YT1uPTB9aWYoZFswXSY1KXRocm93IGRbMV07cmV0dXJue3ZhbHVlOmRbMF0/ZFsxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIHpUYShzLGUpe2Zvcih2YXIgdCBpbiBzKXQhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmZWRlKGUscyx0KX1mdW5jdGlvbiBWbyhzKXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3IsdD1lJiZzW2VdLGE9MDtpZih0KXJldHVybiB0LmNhbGwocyk7aWYocyYmdHlwZW9mIHMubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDppKGZ1bmN0aW9uKCl7cmV0dXJuIHMmJmE+PXMubGVuZ3RoJiYocz12b2lkIDApLHt2YWx1ZTpzJiZzW2ErK10sZG9uZTohc319LCJuZXh0Iil9O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gT2kocyxlKXt2YXIgdD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZzW1N5bWJvbC5pdGVyYXRvcl07aWYoIXQpcmV0dXJuIHM7dmFyIGE9dC5jYWxsKHMpLHIsbj1bXSxvO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKHI9YS5uZXh0KCkpLmRvbmU7KW4ucHVzaChyLnZhbHVlKX1jYXRjaChsKXtvPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYodD1hLnJldHVybikmJnQuY2FsbChhKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG59ZnVuY3Rpb24gQ1RhKCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXM9cy5jb25jYXQoT2koYXJndW1lbnRzW2VdKSk7cmV0dXJuIHN9ZnVuY3Rpb24gVFRhKCl7Zm9yKHZhciBzPTAsZT0wLHQ9YXJndW1lbnRzLmxlbmd0aDtlPHQ7ZSsrKXMrPWFyZ3VtZW50c1tlXS5sZW5ndGg7Zm9yKHZhciBhPUFycmF5KHMpLHI9MCxlPTA7ZTx0O2UrKylmb3IodmFyIG49YXJndW1lbnRzW2VdLG89MCxsPW4ubGVuZ3RoO288bDtvKysscisrKWFbcl09bltvXTtyZXR1cm4gYX1mdW5jdGlvbiBPcihzLGUsdCl7aWYodHx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciBhPTAscj1lLmxlbmd0aCxuO2E8cjthKyspKG58fCEoYSBpbiBlKSkmJihufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsYSkpLG5bYV09ZVthXSk7cmV0dXJuIHMuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiBuMChzKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIG4wPyh0aGlzLnY9cyx0aGlzKTpuZXcgbjAocyl9ZnVuY3Rpb24gc2RlKHMsZSx0KXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGE9dC5hcHBseShzLGV8fFtdKSxyLG49W107cmV0dXJuIHI9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbCgibmV4dCIpLGwoInRocm93IiksbCgicmV0dXJuIixvKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyO2Z1bmN0aW9uIG8odil7cmV0dXJuIGZ1bmN0aW9uKHgpe3JldHVybiBQcm9taXNlLnJlc29sdmUoeCkudGhlbih2LGMpfX1mdW5jdGlvbiBsKHYseCl7YVt2XSYmKHJbdl09ZnVuY3Rpb24obSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGYseSl7bi5wdXNoKFt2LG0sZix5XSk+MXx8cCh2LG0pfSl9LHgmJihyW3ZdPXgoclt2XSkpKX1mdW5jdGlvbiBwKHYseCl7dHJ5e2QoYVt2XSh4KSl9Y2F0Y2gobSl7YihuWzBdWzNdLG0pfX1mdW5jdGlvbiBkKHYpe3YudmFsdWUgaW5zdGFuY2VvZiBuMD9Qcm9taXNlLnJlc29sdmUodi52YWx1ZS52KS50aGVuKHUsYyk6YihuWzBdWzJdLHYpfWZ1bmN0aW9uIHUodil7cCgibmV4dCIsdil9ZnVuY3Rpb24gYyh2KXtwKCJ0aHJvdyIsdil9ZnVuY3Rpb24gYih2LHgpe3YoeCksbi5zaGlmdCgpLG4ubGVuZ3RoJiZwKG5bMF1bMF0sblswXVsxXSl9fWZ1bmN0aW9uICRUYShzKXt2YXIgZSx0O3JldHVybiBlPXt9LGEoIm5leHQiKSxhKCJ0aHJvdyIsZnVuY3Rpb24ocil7dGhyb3cgcn0pLGEoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIGEocixuKXtlW3JdPXNbcl0/ZnVuY3Rpb24obyl7cmV0dXJuKHQ9IXQpP3t2YWx1ZTpuMChzW3JdKG8pKSxkb25lOiExfTpuP24obyk6b306bn19ZnVuY3Rpb24gaWRlKHMpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT1zW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSx0O3JldHVybiBlP2UuY2FsbChzKToocz10eXBlb2YgVm89PSJmdW5jdGlvbiI/Vm8ocyk6c1tTeW1ib2wuaXRlcmF0b3JdKCksdD17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSx0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0KTtmdW5jdGlvbiBhKG4pe3Rbbl09c1tuXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwscCl7bz1zW25dKG8pLHIobCxwLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiByKG4sbyxsLHApe1Byb21pc2UucmVzb2x2ZShwKS50aGVuKGZ1bmN0aW9uKGQpe24oe3ZhbHVlOmQsZG9uZTpsfSl9LG8pfX1mdW5jdGlvbiBEVGEocyxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJyYXciLHt2YWx1ZTplfSk6cy5yYXc9ZSxzfWZ1bmN0aW9uIEVUYShzKXtpZihzJiZzLl9fZXNNb2R1bGUpcmV0dXJuIHM7dmFyIGU9e307aWYocyE9bnVsbClmb3IodmFyIHQ9dGRlKHMpLGE9MDthPHQubGVuZ3RoO2ErKyl0W2FdIT09ImRlZmF1bHQiJiZlZGUoZSxzLHRbYV0pO3JldHVybiBMVGEoZSxzKSxlfWZ1bmN0aW9uIFBUYShzKXtyZXR1cm4gcyYmcy5fX2VzTW9kdWxlP3M6e2RlZmF1bHQ6c319ZnVuY3Rpb24gSVRhKHMsZSx0LGEpe2lmKHQ9PT0iYSImJiFhKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3MhPT1lfHwhYTohZS5oYXMocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHQ9PT0ibSI/YTp0PT09ImEiP2EuY2FsbChzKTphP2EudmFsdWU6ZS5nZXQocyl9ZnVuY3Rpb24gQVRhKHMsZSx0LGEscil7aWYoYT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihhPT09ImEiJiYhcil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj9zIT09ZXx8IXI6IWUuaGFzKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGE9PT0iYSI/ci5jYWxsKHMsdCk6cj9yLnZhbHVlPXQ6ZS5zZXQocyx0KSx0fWZ1bmN0aW9uIE5UYShzLGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiBzPT0iZnVuY3Rpb24iP2U9PT1zOnMuaGFzKGUpfWZ1bmN0aW9uIFJUYShzLGUsdCl7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGEscjtpZih0KXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2E9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihhPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7YT1lW1N5bWJvbC5kaXNwb3NlXSx0JiYocj1hKX1pZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7ciYmKGE9aShmdW5jdGlvbigpe3RyeXtyLmNhbGwodGhpcyl9Y2F0Y2gobil7cmV0dXJuIFByb21pc2UucmVqZWN0KG4pfX0sImRpc3Bvc2UiKSkscy5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6YSxhc3luYzp0fSl9ZWxzZSB0JiZzLnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gRlRhKHMpe2Z1bmN0aW9uIGUobil7cy5lcnJvcj1zLmhhc0Vycm9yP25ldyBPVGEobixzLmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6bixzLmhhc0Vycm9yPSEwfWkoZSwiZmFpbCIpO3ZhciB0LGE9MDtmdW5jdGlvbiByKCl7Zm9yKDt0PXMuc3RhY2sucG9wKCk7KXRyeXtpZighdC5hc3luYyYmYT09PTEpcmV0dXJuIGE9MCxzLnN0YWNrLnB1c2godCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihyKTtpZih0LmRpc3Bvc2Upe3ZhciBuPXQuZGlzcG9zZS5jYWxsKHQudmFsdWUpO2lmKHQuYXN5bmMpcmV0dXJuIGF8PTIsUHJvbWlzZS5yZXNvbHZlKG4pLnRoZW4ocixmdW5jdGlvbihvKXtyZXR1cm4gZShvKSxyKCl9KX1lbHNlIGF8PTF9Y2F0Y2gobyl7ZShvKX1pZihhPT09MSlyZXR1cm4gcy5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdChzLmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZihzLmhhc0Vycm9yKXRocm93IHMuZXJyb3J9cmV0dXJuIGkociwibmV4dCIpLHIoKX1mdW5jdGlvbiBCVGEocyxlKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3Qocyk/cy5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHQsYSxyLG4sbyl7cmV0dXJuIGE/ZT8iLmpzeCI6Ii5qcyI6ciYmKCFufHwhbyk/dDpyK24rIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6c312YXIgUTJlLEoyZSxlZGUsTFRhLHRkZSxPVGEscmlzLExzPWcoKCk9PntRMmU9aShmdW5jdGlvbihzLGUpe3JldHVybiBRMmU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsYSl7dC5fX3Byb3RvX189YX18fGZ1bmN0aW9uKHQsYSl7Zm9yKHZhciByIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEscikmJih0W3JdPWFbcl0pfSxRMmUocyxlKX0sImV4dGVuZFN0YXRpY3MiKTtpKExhLCJfX2V4dGVuZHMiKTtKMmU9aShmdW5jdGlvbigpe3JldHVybiBKMmU9T2JqZWN0LmFzc2lnbnx8aShmdW5jdGlvbihlKXtmb3IodmFyIHQsYT0xLHI9YXJndW1lbnRzLmxlbmd0aDthPHI7YSsrKXt0PWFyZ3VtZW50c1thXTtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9cmV0dXJuIGV9LCJfX2Fzc2lnbiIpLEoyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJfX2Fzc2lnbiIpO2kodlRhLCJfX3Jlc3QiKTtpKHhUYSwiX19kZWNvcmF0ZSIpO2koeVRhLCJfX3BhcmFtIik7aSh3VGEsIl9fZXNEZWNvcmF0ZSIpO2koa1RhLCJfX3J1bkluaXRpYWxpemVycyIpO2koU1RhLCJfX3Byb3BLZXkiKTtpKF9UYSwiX19zZXRGdW5jdGlvbk5hbWUiKTtpKE1UYSwiX19tZXRhZGF0YSIpO2koYWRlLCJfX2F3YWl0ZXIiKTtpKHJ5LCJfX2dlbmVyYXRvciIpO2VkZT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbihzLGUsdCxhKXthPT09dm9pZCAwJiYoYT10KTt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7KCFyfHwoImdldCJpbiByPyFlLl9fZXNNb2R1bGU6ci53cml0YWJsZXx8ci5jb25maWd1cmFibGUpKSYmKHI9e2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYSxyKX0pOihmdW5jdGlvbihzLGUsdCxhKXthPT09dm9pZCAwJiYoYT10KSxzW2FdPWVbdF19KTtpKHpUYSwiX19leHBvcnRTdGFyIik7aShWbywiX192YWx1ZXMiKTtpKE9pLCJfX3JlYWQiKTtpKENUYSwiX19zcHJlYWQiKTtpKFRUYSwiX19zcHJlYWRBcnJheXMiKTtpKE9yLCJfX3NwcmVhZEFycmF5Iik7aShuMCwiX19hd2FpdCIpO2koc2RlLCJfX2FzeW5jR2VuZXJhdG9yIik7aSgkVGEsIl9fYXN5bmNEZWxlZ2F0b3IiKTtpKGlkZSwiX19hc3luY1ZhbHVlcyIpO2koRFRhLCJfX21ha2VUZW1wbGF0ZU9iamVjdCIpO0xUYT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbihzLGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbihzLGUpe3MuZGVmYXVsdD1lfSx0ZGU9aShmdW5jdGlvbihzKXtyZXR1cm4gdGRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXt2YXIgdD1bXTtmb3IodmFyIGEgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmKHRbdC5sZW5ndGhdPWEpO3JldHVybiB0fSx0ZGUocyl9LCJvd25LZXlzIik7aShFVGEsIl9faW1wb3J0U3RhciIpO2koUFRhLCJfX2ltcG9ydERlZmF1bHQiKTtpKElUYSwiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIpO2koQVRhLCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Iik7aShOVGEsIl9fY2xhc3NQcml2YXRlRmllbGRJbiIpO2koUlRhLCJfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSIpO09UYT10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbihzLGUsdCl7dmFyIGE9bmV3IEVycm9yKHQpO3JldHVybiBhLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsYS5lcnJvcj1zLGEuc3VwcHJlc3NlZD1lLGF9O2koRlRhLCJfX2Rpc3Bvc2VSZXNvdXJjZXMiKTtpKEJUYSwiX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24iKTtyaXM9e19fZXh0ZW5kczpMYSxfX2Fzc2lnbjpKMmUsX19yZXN0OnZUYSxfX2RlY29yYXRlOnhUYSxfX3BhcmFtOnlUYSxfX2VzRGVjb3JhdGU6d1RhLF9fcnVuSW5pdGlhbGl6ZXJzOmtUYSxfX3Byb3BLZXk6U1RhLF9fc2V0RnVuY3Rpb25OYW1lOl9UYSxfX21ldGFkYXRhOk1UYSxfX2F3YWl0ZXI6YWRlLF9fZ2VuZXJhdG9yOnJ5LF9fY3JlYXRlQmluZGluZzplZGUsX19leHBvcnRTdGFyOnpUYSxfX3ZhbHVlczpWbyxfX3JlYWQ6T2ksX19zcHJlYWQ6Q1RhLF9fc3ByZWFkQXJyYXlzOlRUYSxfX3NwcmVhZEFycmF5Ok9yLF9fYXdhaXQ6bjAsX19hc3luY0dlbmVyYXRvcjpzZGUsX19hc3luY0RlbGVnYXRvcjokVGEsX19hc3luY1ZhbHVlczppZGUsX19tYWtlVGVtcGxhdGVPYmplY3Q6RFRhLF9faW1wb3J0U3RhcjpFVGEsX19pbXBvcnREZWZhdWx0OlBUYSxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OklUYSxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0OkFUYSxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46TlRhLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOlJUYSxfX2Rpc3Bvc2VSZXNvdXJjZXM6RlRhLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOkJUYX19KTtmdW5jdGlvbiBzYShzKXtyZXR1cm4gdHlwZW9mIHM9PSJmdW5jdGlvbiJ9dmFyIHJvPWcoKCk9PntpKHNhLCJpc0Z1bmN0aW9uIil9KTtmdW5jdGlvbiBobChzKXt2YXIgZT1pKGZ1bmN0aW9uKGEpe0Vycm9yLmNhbGwoYSksYS5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja30sIl9zdXBlciIpLHQ9cyhlKTtyZXR1cm4gdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsdH12YXIgb3A9ZygoKT0+e2koaGwsImNyZWF0ZUVycm9yQ2xhc3MiKX0pO3ZhciBveSxyZGU9ZygoKT0+e29wKCk7b3k9aGwoZnVuY3Rpb24ocyl7cmV0dXJuIGkoZnVuY3Rpb24odCl7cyh0aGlzKSx0aGlzLm1lc3NhZ2U9dD90Lmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArdC5tYXAoZnVuY3Rpb24oYSxyKXtyZXR1cm4gcisxKyIpICIrYS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz10fSwiVW5zdWJzY3JpcHRpb25FcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gbTEocyxlKXtpZihzKXt2YXIgdD1zLmluZGV4T2YoZSk7MDw9dCYmcy5zcGxpY2UodCwxKX19dmFyIHc3PWcoKCk9PntpKG0xLCJhcnJSZW1vdmUiKX0pO2Z1bmN0aW9uIFJKKHMpe3JldHVybiBzIGluc3RhbmNlb2YgdHJ8fHMmJiJjbG9zZWQiaW4gcyYmc2Eocy5yZW1vdmUpJiZzYShzLmFkZCkmJnNhKHMudW5zdWJzY3JpYmUpfWZ1bmN0aW9uIFkxdChzKXtzYShzKT9zKCk6cy51bnN1YnNjcmliZSgpfXZhciB0cixvZGUsVTI9ZygoKT0+e0xzKCk7cm8oKTtyZGUoKTt3NygpO3RyPShmdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSl7dGhpcy5pbml0aWFsVGVhcmRvd249ZSx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl9maW5hbGl6ZXJzPW51bGx9cmV0dXJuIGkocywiU3Vic2NyaXB0aW9uIikscy5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgZSx0LGEscixuO2lmKCF0aGlzLmNsb3NlZCl7dGhpcy5jbG9zZWQ9ITA7dmFyIG89dGhpcy5fcGFyZW50YWdlO2lmKG8paWYodGhpcy5fcGFyZW50YWdlPW51bGwsQXJyYXkuaXNBcnJheShvKSl0cnl7Zm9yKHZhciBsPVZvKG8pLHA9bC5uZXh0KCk7IXAuZG9uZTtwPWwubmV4dCgpKXt2YXIgZD1wLnZhbHVlO2QucmVtb3ZlKHRoaXMpfX1jYXRjaChtKXtlPXtlcnJvcjptfX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYodD1sLnJldHVybikmJnQuY2FsbChsKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19ZWxzZSBvLnJlbW92ZSh0aGlzKTt2YXIgdT10aGlzLmluaXRpYWxUZWFyZG93bjtpZihzYSh1KSl0cnl7dSgpfWNhdGNoKG0pe249bSBpbnN0YW5jZW9mIG95P20uZXJyb3JzOlttXX12YXIgYz10aGlzLl9maW5hbGl6ZXJzO2lmKGMpe3RoaXMuX2ZpbmFsaXplcnM9bnVsbDt0cnl7Zm9yKHZhciBiPVZvKGMpLHY9Yi5uZXh0KCk7IXYuZG9uZTt2PWIubmV4dCgpKXt2YXIgeD12LnZhbHVlO3RyeXtZMXQoeCl9Y2F0Y2gobSl7bj1uPz9bXSxtIGluc3RhbmNlb2Ygb3k/bj1PcihPcihbXSxPaShuKSksT2kobS5lcnJvcnMpKTpuLnB1c2gobSl9fX1jYXRjaChtKXthPXtlcnJvcjptfX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYocj1iLnJldHVybikmJnIuY2FsbChiKX1maW5hbGx5e2lmKGEpdGhyb3cgYS5lcnJvcn19fWlmKG4pdGhyb3cgbmV3IG95KG4pfX0scy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3ZhciB0O2lmKGUmJmUhPT10aGlzKWlmKHRoaXMuY2xvc2VkKVkxdChlKTtlbHNle2lmKGUgaW5zdGFuY2VvZiBzKXtpZihlLmNsb3NlZHx8ZS5faGFzUGFyZW50KHRoaXMpKXJldHVybjtlLl9hZGRQYXJlbnQodGhpcyl9KHRoaXMuX2ZpbmFsaXplcnM9KHQ9dGhpcy5fZmluYWxpemVycykhPT1udWxsJiZ0IT09dm9pZCAwP3Q6W10pLnB1c2goZSl9fSxzLnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gdD09PWV8fEFycmF5LmlzQXJyYXkodCkmJnQuaW5jbHVkZXMoZSl9LHMucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KHQpPyh0LnB1c2goZSksdCk6dD9bdCxlXTplfSxzLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3BhcmVudGFnZTt0PT09ZT90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KHQpJiZtMSh0LGUpfSxzLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZmluYWxpemVyczt0JiZtMSh0LGUpLGUgaW5zdGFuY2VvZiBzJiZlLl9yZW1vdmVQYXJlbnQodGhpcyl9LHMuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIGU9bmV3IHM7cmV0dXJuIGUuY2xvc2VkPSEwLGV9KSgpLHN9KSgpLG9kZT10ci5FTVBUWTtpKFJKLCJpc1N1YnNjcmlwdGlvbiIpO2koWTF0LCJleGVjRmluYWxpemVyIil9KTt2YXIgeGMsazc9ZygoKT0+e3hjPXtvblVuaGFuZGxlZEVycm9yOm51bGwsb25TdG9wcGVkTm90aWZpY2F0aW9uOm51bGwsUHJvbWlzZTp2b2lkIDAsdXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZzohMSx1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6ITF9fSk7dmFyIFM3LG5kZT1nKCgpPT57THMoKTtTNz17c2V0VGltZW91dDppKGZ1bmN0aW9uKHMsZSl7Zm9yKHZhciB0PVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXRbYS0yXT1hcmd1bWVudHNbYV07dmFyIHI9UzcuZGVsZWdhdGU7cmV0dXJuIHI/LnNldFRpbWVvdXQ/ci5zZXRUaW1lb3V0LmFwcGx5KHIsT3IoW3MsZV0sT2kodCkpKTpzZXRUaW1lb3V0LmFwcGx5KHZvaWQgMCxPcihbcyxlXSxPaSh0KSkpfSwic2V0VGltZW91dCIpLGNsZWFyVGltZW91dDppKGZ1bmN0aW9uKHMpe3ZhciBlPVM3LmRlbGVnYXRlO3JldHVybihlPy5jbGVhclRpbWVvdXR8fGNsZWFyVGltZW91dCkocyl9LCJjbGVhclRpbWVvdXQiKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gT0oocyl7Uzcuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPXhjLm9uVW5oYW5kbGVkRXJyb3I7aWYoZSllKHMpO2Vsc2UgdGhyb3cgc30pfXZhciBsZGU9ZygoKT0+e2s3KCk7bmRlKCk7aShPSiwicmVwb3J0VW5oYW5kbGVkRXJyb3IiKX0pO2Z1bmN0aW9uIHljKCl7fXZhciBPND1nKCgpPT57aSh5Yywibm9vcCIpfSk7ZnVuY3Rpb24gWDF0KHMpe3JldHVybiBjZGUoIkUiLHZvaWQgMCxzKX1mdW5jdGlvbiBRMXQocyl7cmV0dXJuIGNkZSgiTiIscyx2b2lkIDApfWZ1bmN0aW9uIGNkZShzLGUsdCl7cmV0dXJue2tpbmQ6cyx2YWx1ZTplLGVycm9yOnR9fXZhciBaMXQsSjF0PWcoKCk9PntaMXQ9KGZ1bmN0aW9uKCl7cmV0dXJuIGNkZSgiQyIsdm9pZCAwLHZvaWQgMCl9KSgpO2koWDF0LCJlcnJvck5vdGlmaWNhdGlvbiIpO2koUTF0LCJuZXh0Tm90aWZpY2F0aW9uIik7aShjZGUsImNyZWF0ZU5vdGlmaWNhdGlvbiIpfSk7ZnVuY3Rpb24gXzcocyl7aWYoeGMudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyl7dmFyIGU9IUY0O2lmKGUmJihGND17ZXJyb3JUaHJvd246ITEsZXJyb3I6bnVsbH0pLHMoKSxlKXt2YXIgdD1GNCxhPXQuZXJyb3JUaHJvd24scj10LmVycm9yO2lmKEY0PW51bGwsYSl0aHJvdyByfX1lbHNlIHMoKX1mdW5jdGlvbiBlMnQocyl7eGMudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmRjQmJihGNC5lcnJvclRocm93bj0hMCxGNC5lcnJvcj1zKX12YXIgRjQsRko9ZygoKT0+e2s3KCk7RjQ9bnVsbDtpKF83LCJlcnJvckNvbnRleHQiKTtpKGUydCwiY2FwdHVyZUVycm9yIil9KTtmdW5jdGlvbiBkZGUocyxlKXtyZXR1cm4gSFRhLmNhbGwocyxlKX1mdW5jdGlvbiBCSihzKXt4Yy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP2UydChzKTpPSihzKX1mdW5jdGlvbiBqVGEocyl7dGhyb3cgc31mdW5jdGlvbiB1ZGUocyxlKXt2YXIgdD14Yy5vblN0b3BwZWROb3RpZmljYXRpb247dCYmUzcuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0KHMsZSl9KX12YXIgQjQsSFRhLHFUYSxucCxWVGEsbnk9ZygoKT0+e0xzKCk7cm8oKTtVMigpO2s3KCk7bGRlKCk7TzQoKTtKMXQoKTtuZGUoKTtGSigpO0I0PShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCl7dmFyIGE9cy5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBhLmlzU3RvcHBlZD0hMSx0PyhhLmRlc3RpbmF0aW9uPXQsUkoodCkmJnQuYWRkKGEpKTphLmRlc3RpbmF0aW9uPVZUYSxhfXJldHVybiBpKGUsIlN1YnNjcmliZXIiKSxlLmNyZWF0ZT1mdW5jdGlvbih0LGEscil7cmV0dXJuIG5ldyBucCh0LGEscil9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dGhpcy5pc1N0b3BwZWQ/dWRlKFExdCh0KSx0aGlzKTp0aGlzLl9uZXh0KHQpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt0aGlzLmlzU3RvcHBlZD91ZGUoWDF0KHQpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcih0KSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/dWRlKFoxdCx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fY29tcGxldGUoKSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5jbG9zZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCxzLnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLHRoaXMuZGVzdGluYXRpb249bnVsbCl9LGUucHJvdG90eXBlLl9uZXh0PWZ1bmN0aW9uKHQpe3RoaXMuZGVzdGluYXRpb24ubmV4dCh0KX0sZS5wcm90b3R5cGUuX2Vycm9yPWZ1bmN0aW9uKHQpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZS5wcm90b3R5cGUuX2NvbXBsZXRlPWZ1bmN0aW9uKCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LGV9KSh0ciksSFRhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO2koZGRlLCJiaW5kIik7cVRhPShmdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gaShzLCJDb25zdW1lck9ic2VydmVyIikscy5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZih0Lm5leHQpdHJ5e3QubmV4dChlKX1jYXRjaChhKXtCSihhKX19LHMucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHQuZXJyb3IpdHJ5e3QuZXJyb3IoZSl9Y2F0Y2goYSl7QkooYSl9ZWxzZSBCSihlKX0scy5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2godCl7QkoodCl9fSxzfSkoKSxucD0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSxyKXt2YXIgbj1zLmNhbGwodGhpcyl8fHRoaXMsbztpZihzYSh0KXx8IXQpbz17bmV4dDp0Pz92b2lkIDAsZXJyb3I6YT8/dm9pZCAwLGNvbXBsZXRlOnI/P3ZvaWQgMH07ZWxzZXt2YXIgbDtuJiZ4Yy51c2VEZXByZWNhdGVkTmV4dENvbnRleHQ/KGw9T2JqZWN0LmNyZWF0ZSh0KSxsLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7cmV0dXJuIG4udW5zdWJzY3JpYmUoKX0sbz17bmV4dDp0Lm5leHQmJmRkZSh0Lm5leHQsbCksZXJyb3I6dC5lcnJvciYmZGRlKHQuZXJyb3IsbCksY29tcGxldGU6dC5jb21wbGV0ZSYmZGRlKHQuY29tcGxldGUsbCl9KTpvPXR9cmV0dXJuIG4uZGVzdGluYXRpb249bmV3IHFUYShvKSxufXJldHVybiBpKGUsIlNhZmVTdWJzY3JpYmVyIiksZX0pKEI0KTtpKEJKLCJoYW5kbGVVbmhhbmRsZWRFcnJvciIpO2koalRhLCJkZWZhdWx0RXJyb3JIYW5kbGVyIik7aSh1ZGUsImhhbmRsZVN0b3BwZWROb3RpZmljYXRpb24iKTtWVGE9e2Nsb3NlZDohMCxuZXh0OnljLGVycm9yOmpUYSxjb21wbGV0ZTp5Y319KTt2YXIgSDQsbHk9ZygoKT0+e0g0PShmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSJ9KSgpfSk7ZnVuY3Rpb24gVzIocyl7cmV0dXJuIHN9dmFyIE03PWcoKCk9PntpKFcyLCJpZGVudGl0eSIpfSk7ZnVuY3Rpb24gVVRhKCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXNbZV09YXJndW1lbnRzW2VdO3JldHVybiBwZGUocyl9ZnVuY3Rpb24gcGRlKHMpe3JldHVybiBzLmxlbmd0aD09PTA/VzI6cy5sZW5ndGg9PT0xP3NbMF06aShmdW5jdGlvbih0KXtyZXR1cm4gcy5yZWR1Y2UoZnVuY3Rpb24oYSxyKXtyZXR1cm4gcihhKX0sdCl9LCJwaXBlZCIpfXZhciBoZGU9ZygoKT0+e003KCk7aShVVGEsInBpcGUiKTtpKHBkZSwicGlwZUZyb21BcnJheSIpfSk7ZnVuY3Rpb24gdDJ0KHMpe3ZhciBlO3JldHVybihlPXM/P3hjLlByb21pc2UpIT09bnVsbCYmZSE9PXZvaWQgMD9lOlByb21pc2V9ZnVuY3Rpb24gV1RhKHMpe3JldHVybiBzJiZzYShzLm5leHQpJiZzYShzLmVycm9yKSYmc2Eocy5jb21wbGV0ZSl9ZnVuY3Rpb24gR1RhKHMpe3JldHVybiBzJiZzIGluc3RhbmNlb2YgQjR8fFdUYShzKSYmUkoocyl9dmFyIHJhLHluPWcoKCk9PntueSgpO1UyKCk7bHkoKTtoZGUoKTtrNygpO3JvKCk7RkooKTtyYT0oZnVuY3Rpb24oKXtmdW5jdGlvbiBzKGUpe2UmJih0aGlzLl9zdWJzY3JpYmU9ZSl9cmV0dXJuIGkocywiT2JzZXJ2YWJsZSIpLHMucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHM7cmV0dXJuIHQuc291cmNlPXRoaXMsdC5vcGVyYXRvcj1lLHR9LHMucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlLHQsYSl7dmFyIHI9dGhpcyxuPUdUYShlKT9lOm5ldyBucChlLHQsYSk7cmV0dXJuIF83KGZ1bmN0aW9uKCl7dmFyIG89cixsPW8ub3BlcmF0b3IscD1vLnNvdXJjZTtuLmFkZChsP2wuY2FsbChuLHApOnA/ci5fc3Vic2NyaWJlKG4pOnIuX3RyeVN1YnNjcmliZShuKSl9KSxufSxzLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlKGUpfWNhdGNoKHQpe2UuZXJyb3IodCl9fSxzLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7dmFyIGE9dGhpcztyZXR1cm4gdD10MnQodCksbmV3IHQoZnVuY3Rpb24ocixuKXt2YXIgbz1uZXcgbnAoe25leHQ6aShmdW5jdGlvbihsKXt0cnl7ZShsKX1jYXRjaChwKXtuKHApLG8udW5zdWJzY3JpYmUoKX19LCJuZXh0IiksZXJyb3I6bixjb21wbGV0ZTpyfSk7YS5zdWJzY3JpYmUobyl9KX0scy5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4odD10aGlzLnNvdXJjZSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnN1YnNjcmliZShlKX0scy5wcm90b3R5cGVbSDRdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHMucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07cmV0dXJuIHBkZShlKSh0aGlzKX0scy5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGU9dDJ0KGUpLG5ldyBlKGZ1bmN0aW9uKGEscil7dmFyIG47dC5zdWJzY3JpYmUoZnVuY3Rpb24obyl7cmV0dXJuIG49b30sZnVuY3Rpb24obyl7cmV0dXJuIHIobyl9LGZ1bmN0aW9uKCl7cmV0dXJuIGEobil9KX0pfSxzLmNyZWF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHMoZSl9LHN9KSgpO2kodDJ0LCJnZXRQcm9taXNlQ3RvciIpO2koV1RhLCJpc09ic2VydmVyIik7aShHVGEsImlzU3Vic2NyaWJlciIpfSk7ZnVuY3Rpb24gZmRlKHMpe3JldHVybiBzYShzPy5saWZ0KX1mdW5jdGlvbiBYYShzKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoZmRlKGUpKXJldHVybiBlLmxpZnQoZnVuY3Rpb24odCl7dHJ5e3JldHVybiBzKHQsdGhpcyl9Y2F0Y2goYSl7dGhpcy5lcnJvcihhKX19KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmFibGUgdG8gbGlmdCB1bmtub3duIE9ic2VydmFibGUgdHlwZSIpfX12YXIgd3I9ZygoKT0+e3JvKCk7aShmZGUsImhhc0xpZnQiKTtpKFhhLCJvcGVyYXRlIil9KTtmdW5jdGlvbiBFYShzLGUsdCxhLHIpe3JldHVybiBuZXcgYTJ0KHMsZSx0LGEscil9dmFyIGEydCxvbz1nKCgpPT57THMoKTtueSgpO2koRWEsImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIpO2EydD0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSxyLG4sbyxsKXt2YXIgcD1zLmNhbGwodGhpcyx0KXx8dGhpcztyZXR1cm4gcC5vbkZpbmFsaXplPW8scC5zaG91bGRVbnN1YnNjcmliZT1sLHAuX25leHQ9YT9mdW5jdGlvbihkKXt0cnl7YShkKX1jYXRjaCh1KXt0LmVycm9yKHUpfX06cy5wcm90b3R5cGUuX25leHQscC5fZXJyb3I9bj9mdW5jdGlvbihkKXt0cnl7bihkKX1jYXRjaCh1KXt0LmVycm9yKHUpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06cy5wcm90b3R5cGUuX2Vycm9yLHAuX2NvbXBsZXRlPXI/ZnVuY3Rpb24oKXt0cnl7cigpfWNhdGNoKGQpe3QuZXJyb3IoZCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTpzLnByb3RvdHlwZS5fY29tcGxldGUscH1yZXR1cm4gaShlLCJPcGVyYXRvclN1YnNjcmliZXIiKSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciB0O2lmKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlfHx0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpe3ZhciBhPXRoaXMuY2xvc2VkO3MucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksIWEmJigodD10aGlzLm9uRmluYWxpemUpPT09bnVsbHx8dD09PXZvaWQgMHx8dC5jYWxsKHRoaXMpKX19LGV9KShCNCl9KTtmdW5jdGlvbiBISigpe3JldHVybiBYYShmdW5jdGlvbihzLGUpe3ZhciB0PW51bGw7cy5fcmVmQ291bnQrKzt2YXIgYT1FYShlLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7aWYoIXN8fHMuX3JlZkNvdW50PD0wfHwwPC0tcy5fcmVmQ291bnQpe3Q9bnVsbDtyZXR1cm59dmFyIHI9cy5fY29ubmVjdGlvbixuPXQ7dD1udWxsLHImJighbnx8cj09PW4pJiZyLnVuc3Vic2NyaWJlKCksZS51bnN1YnNjcmliZSgpfSk7cy5zdWJzY3JpYmUoYSksYS5jbG9zZWR8fCh0PXMuY29ubmVjdCgpKX0pfXZhciBxSj1nKCgpPT57d3IoKTtvbygpO2koSEosInJlZkNvdW50Iil9KTt2YXIgczJ0LGkydD1nKCgpPT57THMoKTt5bigpO1UyKCk7cUooKTtvbygpO3dyKCk7czJ0PShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCxhKXt2YXIgcj1zLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuc291cmNlPXQsci5zdWJqZWN0RmFjdG9yeT1hLHIuX3N1YmplY3Q9bnVsbCxyLl9yZWZDb3VudD0wLHIuX2Nvbm5lY3Rpb249bnVsbCxmZGUodCkmJihyLmxpZnQ9dC5saWZ0KSxyfXJldHVybiBpKGUsIkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSIpLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0U3ViamVjdCgpLnN1YnNjcmliZSh0KX0sZS5wcm90b3R5cGUuZ2V0U3ViamVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3N1YmplY3Q7cmV0dXJuKCF0fHx0LmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhpcy5fc3ViamVjdH0sZS5wcm90b3R5cGUuX3RlYXJkb3duPWZ1bmN0aW9uKCl7dGhpcy5fcmVmQ291bnQ9MDt2YXIgdD10aGlzLl9jb25uZWN0aW9uO3RoaXMuX3N1YmplY3Q9dGhpcy5fY29ubmVjdGlvbj1udWxsLHQ/LnVuc3Vic2NyaWJlKCl9LGUucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGE9dGhpcy5fY29ubmVjdGlvbjtpZighYSl7YT10aGlzLl9jb25uZWN0aW9uPW5ldyB0cjt2YXIgcj10aGlzLmdldFN1YmplY3QoKTthLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUoRWEocix2b2lkIDAsZnVuY3Rpb24oKXt0Ll90ZWFyZG93bigpLHIuY29tcGxldGUoKX0sZnVuY3Rpb24obil7dC5fdGVhcmRvd24oKSxyLmVycm9yKG4pfSxmdW5jdGlvbigpe3JldHVybiB0Ll90ZWFyZG93bigpfSkpKSxhLmNsb3NlZCYmKHRoaXMuX2Nvbm5lY3Rpb249bnVsbCxhPXRyLkVNUFRZKX1yZXR1cm4gYX0sZS5wcm90b3R5cGUucmVmQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gSEooKSh0aGlzKX0sZX0pKHJhKX0pO3ZhciBtZGUscjJ0PWcoKCk9PnttZGU9e25vdzppKGZ1bmN0aW9uKCl7cmV0dXJuKG1kZS5kZWxlZ2F0ZXx8cGVyZm9ybWFuY2UpLm5vdygpfSwibm93IiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBsMCxnZGU9ZygoKT0+e0xzKCk7VTIoKTtsMD17c2NoZWR1bGU6aShmdW5jdGlvbihzKXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsdD1jYW5jZWxBbmltYXRpb25GcmFtZSxhPWwwLmRlbGVnYXRlO2EmJihlPWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHQ9YS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIHI9ZShmdW5jdGlvbihuKXt0PXZvaWQgMCxzKG4pfSk7cmV0dXJuIG5ldyB0cihmdW5jdGlvbigpe3JldHVybiB0Py4ocil9KX0sInNjaGVkdWxlIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHM9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspc1tlXT1hcmd1bWVudHNbZV07dmFyIHQ9bDAuZGVsZWdhdGU7cmV0dXJuKHQ/LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsT3IoW10sT2kocykpKX0sInJlcXVlc3RBbmltYXRpb25GcmFtZSIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHM9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspc1tlXT1hcmd1bWVudHNbZV07dmFyIHQ9bDAuZGVsZWdhdGU7cmV0dXJuKHQ/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLE9yKFtdLE9pKHMpKSl9LCJjYW5jZWxBbmltYXRpb25GcmFtZSIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBLVGEocyl7cmV0dXJuIHM/bzJ0KHMpOllUYX1mdW5jdGlvbiBvMnQocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXt2YXIgdD1zfHxtZGUsYT10Lm5vdygpLHI9MCxuPWkoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KHI9bDAucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKG8pe3I9MDt2YXIgbD10Lm5vdygpO2UubmV4dCh7dGltZXN0YW1wOnM/bDpvLGVsYXBzZWQ6bC1hfSksbigpfSkpfSwicnVuIik7cmV0dXJuIG4oKSxmdW5jdGlvbigpe3ImJmwwLmNhbmNlbEFuaW1hdGlvbkZyYW1lKHIpfX0pfXZhciBZVGEsbjJ0PWcoKCk9Pnt5bigpO3IydCgpO2dkZSgpO2koS1RhLCJhbmltYXRpb25GcmFtZXMiKTtpKG8ydCwiYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSIpO1lUYT1vMnQoKX0pO3ZhciBiZGUsdmRlPWcoKCk9PntvcCgpO2JkZT1obChmdW5jdGlvbihzKXtyZXR1cm4gaShmdW5jdGlvbigpe3ModGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0sIk9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCIpfSl9KTt2YXIgVW8seGRlLHo3PWcoKCk9PntMcygpO3luKCk7VTIoKTt2ZGUoKTt3NygpO0ZKKCk7VW89KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSgpe3ZhciB0PXMuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gdC5jbG9zZWQ9ITEsdC5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsdC5vYnNlcnZlcnM9W10sdC5pc1N0b3BwZWQ9ITEsdC5oYXNFcnJvcj0hMSx0LnRocm93bkVycm9yPW51bGwsdH1yZXR1cm4gaShlLCJTdWJqZWN0IiksZS5wcm90b3R5cGUubGlmdD1mdW5jdGlvbih0KXt2YXIgYT1uZXcgeGRlKHRoaXMsdGhpcyk7cmV0dXJuIGEub3BlcmF0b3I9dCxhfSxlLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBiZGV9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dmFyIGE9dGhpcztfNyhmdW5jdGlvbigpe3ZhciByLG47aWYoYS5fdGhyb3dJZkNsb3NlZCgpLCFhLmlzU3RvcHBlZCl7YS5jdXJyZW50T2JzZXJ2ZXJzfHwoYS5jdXJyZW50T2JzZXJ2ZXJzPUFycmF5LmZyb20oYS5vYnNlcnZlcnMpKTt0cnl7Zm9yKHZhciBvPVZvKGEuY3VycmVudE9ic2VydmVycyksbD1vLm5leHQoKTshbC5kb25lO2w9by5uZXh0KCkpe3ZhciBwPWwudmFsdWU7cC5uZXh0KHQpfX1jYXRjaChkKXtyPXtlcnJvcjpkfX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19fX0pfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgYT10aGlzO183KGZ1bmN0aW9uKCl7aWYoYS5fdGhyb3dJZkNsb3NlZCgpLCFhLmlzU3RvcHBlZCl7YS5oYXNFcnJvcj1hLmlzU3RvcHBlZD0hMCxhLnRocm93bkVycm9yPXQ7Zm9yKHZhciByPWEub2JzZXJ2ZXJzO3IubGVuZ3RoOylyLnNoaWZ0KCkuZXJyb3IodCl9fSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztfNyhmdW5jdGlvbigpe2lmKHQuX3Rocm93SWZDbG9zZWQoKSwhdC5pc1N0b3BwZWQpe3QuaXNTdG9wcGVkPSEwO2Zvcih2YXIgYT10Lm9ic2VydmVyczthLmxlbmd0aDspYS5zaGlmdCgpLmNvbXBsZXRlKCl9fSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ9dGhpcy5jbG9zZWQ9ITAsdGhpcy5vYnNlcnZlcnM9dGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGx9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwib2JzZXJ2ZWQiLHtnZXQ6aShmdW5jdGlvbigpe3ZhciB0O3JldHVybigodD10aGlzLm9ic2VydmVycyk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0Lmxlbmd0aCk+MH0sImdldCIpLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuX3RyeVN1YnNjcmliZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHMucHJvdG90eXBlLl90cnlTdWJzY3JpYmUuY2FsbCh0aGlzLHQpfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyh0KSx0aGlzLl9pbm5lclN1YnNjcmliZSh0KX0sZS5wcm90b3R5cGUuX2lubmVyU3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciBhPXRoaXMscj10aGlzLG49ci5oYXNFcnJvcixvPXIuaXNTdG9wcGVkLGw9ci5vYnNlcnZlcnM7cmV0dXJuIG58fG8/b2RlOih0aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbCxsLnB1c2godCksbmV3IHRyKGZ1bmN0aW9uKCl7YS5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsbTEobCx0KX0pKX0sZS5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24odCl7dmFyIGE9dGhpcyxyPWEuaGFzRXJyb3Isbj1hLnRocm93bkVycm9yLG89YS5pc1N0b3BwZWQ7cj90LmVycm9yKG4pOm8mJnQuY29tcGxldGUoKX0sZS5wcm90b3R5cGUuYXNPYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHJhO3JldHVybiB0LnNvdXJjZT10aGlzLHR9LGUuY3JlYXRlPWZ1bmN0aW9uKHQsYSl7cmV0dXJuIG5ldyB4ZGUodCxhKX0sZX0pKHJhKSx4ZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEpe3ZhciByPXMuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5kZXN0aW5hdGlvbj10LHIuc291cmNlPWEscn1yZXR1cm4gaShlLCJBbm9ueW1vdXNTdWJqZWN0IiksZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgYSxyOyhyPShhPXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5uZXh0KT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChhLHQpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgYSxyOyhyPShhPXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5lcnJvcik9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwoYSx0KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgdCxhOyhhPSh0PXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5jb21wbGV0ZSk9PT1udWxsfHxhPT09dm9pZCAwfHxhLmNhbGwodCl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7dmFyIGEscjtyZXR1cm4ocj0oYT10aGlzLnNvdXJjZSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnN1YnNjcmliZSh0KSkhPT1udWxsJiZyIT09dm9pZCAwP3I6b2RlfSxlfSkoVW8pfSk7dmFyIEM3LGwydD1nKCgpPT57THMoKTt6NygpO0M3PShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCl7dmFyIGE9cy5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBhLl92YWx1ZT10LGF9cmV0dXJuIGkoZSwiQmVoYXZpb3JTdWJqZWN0IiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ2YWx1ZSIse2dldDppKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUoKX0sImdldCIpLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbih0KXt2YXIgYT1zLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcyx0KTtyZXR1cm4hYS5jbG9zZWQmJnQubmV4dCh0aGlzLl92YWx1ZSksYX0sZS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGE9dC5oYXNFcnJvcixyPXQudGhyb3duRXJyb3Isbj10Ll92YWx1ZTtpZihhKXRocm93IHI7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxufSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3MucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHRoaXMuX3ZhbHVlPXQpfSxlfSkoVW8pfSk7dmFyIGN5LHlkZT1nKCgpPT57Y3k9e25vdzppKGZ1bmN0aW9uKCl7cmV0dXJuKGN5LmRlbGVnYXRlfHxEYXRlKS5ub3coKX0sIm5vdyIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgVDcsd2RlPWcoKCk9PntMcygpO3o3KCk7eWRlKCk7VDc9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEscil7dD09PXZvaWQgMCYmKHQ9MS8wKSxhPT09dm9pZCAwJiYoYT0xLzApLHI9PT12b2lkIDAmJihyPWN5KTt2YXIgbj1zLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2J1ZmZlclNpemU9dCxuLl93aW5kb3dUaW1lPWEsbi5fdGltZXN0YW1wUHJvdmlkZXI9cixuLl9idWZmZXI9W10sbi5faW5maW5pdGVUaW1lV2luZG93PSEwLG4uX2luZmluaXRlVGltZVdpbmRvdz1hPT09MS8wLG4uX2J1ZmZlclNpemU9TWF0aC5tYXgoMSx0KSxuLl93aW5kb3dUaW1lPU1hdGgubWF4KDEsYSksbn1yZXR1cm4gaShlLCJSZXBsYXlTdWJqZWN0IiksZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgYT10aGlzLHI9YS5pc1N0b3BwZWQsbj1hLl9idWZmZXIsbz1hLl9pbmZpbml0ZVRpbWVXaW5kb3csbD1hLl90aW1lc3RhbXBQcm92aWRlcixwPWEuX3dpbmRvd1RpbWU7cnx8KG4ucHVzaCh0KSwhbyYmbi5wdXNoKGwubm93KCkrcCkpLHRoaXMuX3RyaW1CdWZmZXIoKSxzLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0KX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbih0KXt0aGlzLl90aHJvd0lmQ2xvc2VkKCksdGhpcy5fdHJpbUJ1ZmZlcigpO2Zvcih2YXIgYT10aGlzLl9pbm5lclN1YnNjcmliZSh0KSxyPXRoaXMsbj1yLl9pbmZpbml0ZVRpbWVXaW5kb3csbz1yLl9idWZmZXIsbD1vLnNsaWNlKCkscD0wO3A8bC5sZW5ndGgmJiF0LmNsb3NlZDtwKz1uPzE6Mil0Lm5leHQobFtwXSk7cmV0dXJuIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXModCksYX0sZS5wcm90b3R5cGUuX3RyaW1CdWZmZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGE9dC5fYnVmZmVyU2l6ZSxyPXQuX3RpbWVzdGFtcFByb3ZpZGVyLG49dC5fYnVmZmVyLG89dC5faW5maW5pdGVUaW1lV2luZG93LGw9KG8/MToyKSphO2lmKGE8MS8wJiZsPG4ubGVuZ3RoJiZuLnNwbGljZSgwLG4ubGVuZ3RoLWwpLCFvKXtmb3IodmFyIHA9ci5ub3coKSxkPTAsdT0xO3U8bi5sZW5ndGgmJm5bdV08PXA7dSs9MilkPXU7ZCYmbi5zcGxpY2UoMCxkKzEpfX0sZX0pKFVvKX0pO3ZhciBjMnQsZDJ0PWcoKCk9PntMcygpO3o3KCk7YzJ0PShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUoKXt2YXIgdD1zIT09bnVsbCYmcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIHQuX3ZhbHVlPW51bGwsdC5faGFzVmFsdWU9ITEsdC5faXNDb21wbGV0ZT0hMSx0fXJldHVybiBpKGUsIkFzeW5jU3ViamVjdCIpLGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHQpe3ZhciBhPXRoaXMscj1hLmhhc0Vycm9yLG49YS5faGFzVmFsdWUsbz1hLl92YWx1ZSxsPWEudGhyb3duRXJyb3IscD1hLmlzU3RvcHBlZCxkPWEuX2lzQ29tcGxldGU7cj90LmVycm9yKGwpOihwfHxkKSYmKG4mJnQubmV4dChvKSx0LmNvbXBsZXRlKCkpfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5fdmFsdWU9dCx0aGlzLl9oYXNWYWx1ZT0hMCl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxhPXQuX2hhc1ZhbHVlLHI9dC5fdmFsdWUsbj10Ll9pc0NvbXBsZXRlO258fCh0aGlzLl9pc0NvbXBsZXRlPSEwLGEmJnMucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHIpLHMucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcykpfSxlfSkoVW8pfSk7dmFyIGtkZSx1MnQ9ZygoKT0+e0xzKCk7VTIoKTtrZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEpe3JldHVybiBzLmNhbGwodGhpcyl8fHRoaXN9cmV0dXJuIGkoZSwiQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksdGhpc30sZX0pKHRyKX0pO3ZhciBkeSxwMnQ9ZygoKT0+e0xzKCk7ZHk9e3NldEludGVydmFsOmkoZnVuY3Rpb24ocyxlKXtmb3IodmFyIHQ9W10sYT0yO2E8YXJndW1lbnRzLmxlbmd0aDthKyspdFthLTJdPWFyZ3VtZW50c1thXTt2YXIgcj1keS5kZWxlZ2F0ZTtyZXR1cm4gcj8uc2V0SW50ZXJ2YWw/ci5zZXRJbnRlcnZhbC5hcHBseShyLE9yKFtzLGVdLE9pKHQpKSk6c2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLE9yKFtzLGVdLE9pKHQpKSl9LCJzZXRJbnRlcnZhbCIpLGNsZWFySW50ZXJ2YWw6aShmdW5jdGlvbihzKXt2YXIgZT1keS5kZWxlZ2F0ZTtyZXR1cm4oZT8uY2xlYXJJbnRlcnZhbHx8Y2xlYXJJbnRlcnZhbCkocyl9LCJjbGVhckludGVydmFsIiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBnMSwkNz1nKCgpPT57THMoKTt1MnQoKTtwMnQoKTt3NygpO2cxPShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCxhKXt2YXIgcj1zLmNhbGwodGhpcyx0LGEpfHx0aGlzO3JldHVybiByLnNjaGVkdWxlcj10LHIud29yaz1hLHIucGVuZGluZz0hMSxyfXJldHVybiBpKGUsIkFzeW5jQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxhKXt2YXIgcjtpZihhPT09dm9pZCAwJiYoYT0wKSx0aGlzLmNsb3NlZClyZXR1cm4gdGhpczt0aGlzLnN0YXRlPXQ7dmFyIG49dGhpcy5pZCxvPXRoaXMuc2NoZWR1bGVyO3JldHVybiBuIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKG8sbixhKSksdGhpcy5wZW5kaW5nPSEwLHRoaXMuZGVsYXk9YSx0aGlzLmlkPShyPXRoaXMuaWQpIT09bnVsbCYmciE9PXZvaWQgMD9yOnRoaXMucmVxdWVzdEFzeW5jSWQobyx0aGlzLmlkLGEpLHRoaXN9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksZHkuc2V0SW50ZXJ2YWwodC5mbHVzaC5iaW5kKHQsdGhpcykscil9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtpZihyPT09dm9pZCAwJiYocj0wKSxyIT1udWxsJiZ0aGlzLmRlbGF5PT09ciYmdGhpcy5wZW5kaW5nPT09ITEpcmV0dXJuIGE7YSE9bnVsbCYmZHkuY2xlYXJJbnRlcnZhbChhKX0sZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LGEpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7dmFyIHI9dGhpcy5fZXhlY3V0ZSh0LGEpO2lmKHIpcmV0dXJuIHI7dGhpcy5wZW5kaW5nPT09ITEmJnRoaXMuaWQhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9LGUucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHQsYSl7dmFyIHI9ITEsbjt0cnl7dGhpcy53b3JrKHQpfWNhdGNoKG8pe3I9ITAsbj1vfHxuZXcgRXJyb3IoIlNjaGVkdWxlZCBhY3Rpb24gdGhyZXcgZmFsc3kgZXJyb3IiKX1pZihyKXJldHVybiB0aGlzLnVuc3Vic2NyaWJlKCksbn0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtpZighdGhpcy5jbG9zZWQpe3ZhciB0PXRoaXMsYT10LmlkLHI9dC5zY2hlZHVsZXIsbj1yLmFjdGlvbnM7dGhpcy53b3JrPXRoaXMuc3RhdGU9dGhpcy5zY2hlZHVsZXI9bnVsbCx0aGlzLnBlbmRpbmc9ITEsbTEobix0aGlzKSxhIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHIsYSxudWxsKSksdGhpcy5kZWxheT1udWxsLHMucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyl9fSxlfSkoa2RlKX0pO2Z1bmN0aW9uIGgydChzKXtyZXR1cm4gcyBpbiBqSj8oZGVsZXRlIGpKW3NdLCEwKTohMX12YXIgWlRhLFNkZSxqSixfZGUsTW9zLGYydD1nKCgpPT57WlRhPTEsako9e307aShoMnQsImZpbmRBbmRDbGVhckhhbmRsZSIpO19kZT17c2V0SW1tZWRpYXRlOmkoZnVuY3Rpb24ocyl7dmFyIGU9WlRhKys7cmV0dXJuIGpKW2VdPSEwLFNkZXx8KFNkZT1Qcm9taXNlLnJlc29sdmUoKSksU2RlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaDJ0KGUpJiZzKCl9KSxlfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6aShmdW5jdGlvbihzKXtoMnQocyl9LCJjbGVhckltbWVkaWF0ZSIpfSxNb3M9e3BlbmRpbmc6aShmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhqSikubGVuZ3RofSwicGVuZGluZyIpfX0pO3ZhciBYVGEsUVRhLHV5LG0ydD1nKCgpPT57THMoKTtmMnQoKTtYVGE9X2RlLnNldEltbWVkaWF0ZSxRVGE9X2RlLmNsZWFySW1tZWRpYXRlLHV5PXtzZXRJbW1lZGlhdGU6aShmdW5jdGlvbigpe2Zvcih2YXIgcz1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylzW2VdPWFyZ3VtZW50c1tlXTt2YXIgdD11eS5kZWxlZ2F0ZTtyZXR1cm4odD8uc2V0SW1tZWRpYXRlfHxYVGEpLmFwcGx5KHZvaWQgMCxPcihbXSxPaShzKSkpfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6aShmdW5jdGlvbihzKXt2YXIgZT11eS5kZWxlZ2F0ZTtyZXR1cm4oZT8uY2xlYXJJbW1lZGlhdGV8fFFUYSkocyl9LCJjbGVhckltbWVkaWF0ZSIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgTWRlLGcydD1nKCgpPT57THMoKTskNygpO20ydCgpO01kZT0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSl7dmFyIHI9cy5jYWxsKHRoaXMsdCxhKXx8dGhpcztyZXR1cm4gci5zY2hlZHVsZXI9dCxyLndvcms9YSxyfXJldHVybiBpKGUsIkFzYXBBY3Rpb24iKSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbih0LGEscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPTApLHIhPT1udWxsJiZyPjA/cy5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHQsYSxyKToodC5hY3Rpb25zLnB1c2godGhpcyksdC5fc2NoZWR1bGVkfHwodC5fc2NoZWR1bGVkPXV5LnNldEltbWVkaWF0ZSh0LmZsdXNoLmJpbmQodCx2b2lkIDApKSkpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbih0LGEscil7dmFyIG47aWYocj09PXZvaWQgMCYmKHI9MCksciE9bnVsbD9yPjA6dGhpcy5kZWxheT4wKXJldHVybiBzLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMsdCxhLHIpO3ZhciBvPXQuYWN0aW9uczthIT1udWxsJiYoKG49b1tvLmxlbmd0aC0xXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmlkKSE9PWEmJih1eS5jbGVhckltbWVkaWF0ZShhKSx0Ll9zY2hlZHVsZWQ9PT1hJiYodC5fc2NoZWR1bGVkPXZvaWQgMCkpfSxlfSkoZzEpfSk7dmFyIHB5LHpkZT1nKCgpPT57eWRlKCk7cHk9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcyhlLHQpe3Q9PT12b2lkIDAmJih0PXMubm93KSx0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I9ZSx0aGlzLm5vdz10fXJldHVybiBpKHMsIlNjaGVkdWxlciIpLHMucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKGUsdCxhKXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLGUpLnNjaGVkdWxlKGEsdCl9LHMubm93PWN5Lm5vdyxzfSkoKX0pO3ZhciBiMSxENz1nKCgpPT57THMoKTt6ZGUoKTtiMT0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSl7YT09PXZvaWQgMCYmKGE9cHkubm93KTt2YXIgcj1zLmNhbGwodGhpcyx0LGEpfHx0aGlzO3JldHVybiByLmFjdGlvbnM9W10sci5fYWN0aXZlPSExLHJ9cmV0dXJuIGkoZSwiQXN5bmNTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt2YXIgYT10aGlzLmFjdGlvbnM7aWYodGhpcy5fYWN0aXZlKXthLnB1c2godCk7cmV0dXJufXZhciByO3RoaXMuX2FjdGl2ZT0hMDtkbyBpZihyPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrO3doaWxlKHQ9YS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEscil7Zm9yKDt0PWEuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IHJ9fSxlfSkocHkpfSk7dmFyIENkZSxiMnQ9ZygoKT0+e0xzKCk7RDcoKTtDZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSgpe3JldHVybiBzIT09bnVsbCYmcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGkoZSwiQXNhcFNjaGVkdWxlciIpLGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgYT10aGlzLl9zY2hlZHVsZWQ7dGhpcy5fc2NoZWR1bGVkPXZvaWQgMDt2YXIgcj10aGlzLmFjdGlvbnMsbjt0PXR8fHIuc2hpZnQoKTtkbyBpZihuPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrO3doaWxlKCh0PXJbMF0pJiZ0LmlkPT09YSYmci5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsodD1yWzBdKSYmdC5pZD09PWEmJnIuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlfSkoYjEpfSk7dmFyIHYydCxKVGEseDJ0PWcoKCk9PntnMnQoKTtiMnQoKTt2MnQ9bmV3IENkZShNZGUpLEpUYT12MnR9KTt2YXIgZmwsVGRlLGMwPWcoKCk9PnskNygpO0Q3KCk7Zmw9bmV3IGIxKGcxKSxUZGU9Zmx9KTt2YXIgJGRlLHkydD1nKCgpPT57THMoKTskNygpOyRkZT0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSl7dmFyIHI9cy5jYWxsKHRoaXMsdCxhKXx8dGhpcztyZXR1cm4gci5zY2hlZHVsZXI9dCxyLndvcms9YSxyfXJldHVybiBpKGUsIlF1ZXVlQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksYT4wP3MucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyx0LGEpOih0aGlzLmRlbGF5PWEsdGhpcy5zdGF0ZT10LHRoaXMuc2NoZWR1bGVyLmZsdXNoKHRoaXMpLHRoaXMpfSxlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKHQsYSl7cmV0dXJuIGE+MHx8dGhpcy5jbG9zZWQ/cy5wcm90b3R5cGUuZXhlY3V0ZS5jYWxsKHRoaXMsdCxhKTp0aGlzLl9leGVjdXRlKHQsYSl9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksciE9bnVsbCYmcj4wfHxyPT1udWxsJiZ0aGlzLmRlbGF5PjA/cy5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHQsYSxyKToodC5mbHVzaCh0aGlzKSwwKX0sZX0pKGcxKX0pO3ZhciBEZGUsdzJ0PWcoKCk9PntMcygpO0Q3KCk7RGRlPShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gcyE9PW51bGwmJnMuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIlF1ZXVlU2NoZWR1bGVyIiksZX0pKGIxKX0pO3ZhciBrMnQsZSRhLFMydD1nKCgpPT57eTJ0KCk7dzJ0KCk7azJ0PW5ldyBEZGUoJGRlKSxlJGE9azJ0fSk7dmFyIExkZSxfMnQ9ZygoKT0+e0xzKCk7JDcoKTtnZGUoKTtMZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEpe3ZhciByPXMuY2FsbCh0aGlzLHQsYSl8fHRoaXM7cmV0dXJuIHIuc2NoZWR1bGVyPXQsci53b3JrPWEscn1yZXR1cm4gaShlLCJBbmltYXRpb25GcmFtZUFjdGlvbiIpLGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksciE9PW51bGwmJnI+MD9zLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsdCxhLHIpOih0LmFjdGlvbnMucHVzaCh0aGlzKSx0Ll9zY2hlZHVsZWR8fCh0Ll9zY2hlZHVsZWQ9bDAucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZmx1c2godm9pZCAwKX0pKSl9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXt2YXIgbjtpZihyPT09dm9pZCAwJiYocj0wKSxyIT1udWxsP3I+MDp0aGlzLmRlbGF5PjApcmV0dXJuIHMucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyx0LGEscik7dmFyIG89dC5hY3Rpb25zO2EhPW51bGwmJmE9PT10Ll9zY2hlZHVsZWQmJigobj1vW28ubGVuZ3RoLTFdKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uaWQpIT09YSYmKGwwLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGEpLHQuX3NjaGVkdWxlZD12b2lkIDApfSxlfSkoZzEpfSk7dmFyIEVkZSxNMnQ9ZygoKT0+e0xzKCk7RDcoKTtFZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSgpe3JldHVybiBzIT09bnVsbCYmcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGkoZSwiQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt0aGlzLl9hY3RpdmU9ITA7dmFyIGE7dD9hPXQuaWQ6KGE9dGhpcy5fc2NoZWR1bGVkLHRoaXMuX3NjaGVkdWxlZD12b2lkIDApO3ZhciByPXRoaXMuYWN0aW9ucyxuO3Q9dHx8ci5zaGlmdCgpO2RvIGlmKG49dC5leGVjdXRlKHQuc3RhdGUsdC5kZWxheSkpYnJlYWs7d2hpbGUoKHQ9clswXSkmJnQuaWQ9PT1hJiZyLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxuKXtmb3IoOyh0PXJbMF0pJiZ0LmlkPT09YSYmci5zaGlmdCgpOyl0LnVuc3Vic2NyaWJlKCk7dGhyb3cgbn19LGV9KShiMSl9KTt2YXIgejJ0LHQkYSxDMnQ9ZygoKT0+e18ydCgpO00ydCgpO3oydD1uZXcgRWRlKExkZSksdCRhPXoydH0pO3ZhciBUMnQsUGRlLCQydD1nKCgpPT57THMoKTskNygpO1UyKCk7RDcoKTtUMnQ9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEpe3Q9PT12b2lkIDAmJih0PVBkZSksYT09PXZvaWQgMCYmKGE9MS8wKTt2YXIgcj1zLmNhbGwodGhpcyx0LGZ1bmN0aW9uKCl7cmV0dXJuIHIuZnJhbWV9KXx8dGhpcztyZXR1cm4gci5tYXhGcmFtZXM9YSxyLmZyYW1lPTAsci5pbmRleD0tMSxyfXJldHVybiBpKGUsIlZpcnR1YWxUaW1lU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxhPXQuYWN0aW9ucyxyPXQubWF4RnJhbWVzLG4sbzsobz1hWzBdKSYmby5kZWxheTw9ciYmKGEuc2hpZnQoKSx0aGlzLmZyYW1lPW8uZGVsYXksIShuPW8uZXhlY3V0ZShvLnN0YXRlLG8uZGVsYXkpKSk7KTtpZihuKXtmb3IoO289YS5zaGlmdCgpOylvLnVuc3Vic2NyaWJlKCk7dGhyb3cgbn19LGUuZnJhbWVUaW1lRmFjdG9yPTEwLGV9KShiMSksUGRlPShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCxhLHIpe3I9PT12b2lkIDAmJihyPXQuaW5kZXgrPTEpO3ZhciBuPXMuY2FsbCh0aGlzLHQsYSl8fHRoaXM7cmV0dXJuIG4uc2NoZWR1bGVyPXQsbi53b3JrPWEsbi5pbmRleD1yLG4uYWN0aXZlPSEwLG4uaW5kZXg9dC5pbmRleD1yLG59cmV0dXJuIGkoZSwiVmlydHVhbEFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHQsYSl7aWYoYT09PXZvaWQgMCYmKGE9MCksTnVtYmVyLmlzRmluaXRlKGEpKXtpZighdGhpcy5pZClyZXR1cm4gcy5wcm90b3R5cGUuc2NoZWR1bGUuY2FsbCh0aGlzLHQsYSk7dGhpcy5hY3RpdmU9ITE7dmFyIHI9bmV3IGUodGhpcy5zY2hlZHVsZXIsdGhpcy53b3JrKTtyZXR1cm4gdGhpcy5hZGQociksci5zY2hlZHVsZSh0LGEpfWVsc2UgcmV0dXJuIHRyLkVNUFRZfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbih0LGEscil7cj09PXZvaWQgMCYmKHI9MCksdGhpcy5kZWxheT10LmZyYW1lK3I7dmFyIG49dC5hY3Rpb25zO3JldHVybiBuLnB1c2godGhpcyksbi5zb3J0KGUuc29ydEFjdGlvbnMpLDF9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtyPT09dm9pZCAwJiYocj0wKX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24odCxhKXtpZih0aGlzLmFjdGl2ZT09PSEwKXJldHVybiBzLnByb3RvdHlwZS5fZXhlY3V0ZS5jYWxsKHRoaXMsdCxhKX0sZS5zb3J0QWN0aW9ucz1mdW5jdGlvbih0LGEpe3JldHVybiB0LmRlbGF5PT09YS5kZWxheT90LmluZGV4PT09YS5pbmRleD8wOnQuaW5kZXg+YS5pbmRleD8xOi0xOnQuZGVsYXk+YS5kZWxheT8xOi0xfSxlfSkoZzEpfSk7ZnVuY3Rpb24gYSRhKHMpe3JldHVybiBzP3MkYShzKTpWSn1mdW5jdGlvbiBzJGEocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXtyZXR1cm4gcy5zY2hlZHVsZShmdW5jdGlvbigpe3JldHVybiBlLmNvbXBsZXRlKCl9KX0pfXZhciBWSixVSj1nKCgpPT57eW4oKTtWSj1uZXcgcmEoZnVuY3Rpb24ocyl7cmV0dXJuIHMuY29tcGxldGUoKX0pO2koYSRhLCJlbXB0eSIpO2kocyRhLCJlbXB0eVNjaGVkdWxlZCIpfSk7ZnVuY3Rpb24gV0oocyl7cmV0dXJuIHMmJnNhKHMuc2NoZWR1bGUpfXZhciBJZGU9ZygoKT0+e3JvKCk7aShXSiwiaXNTY2hlZHVsZXIiKX0pO2Z1bmN0aW9uIEFkZShzKXtyZXR1cm4gc1tzLmxlbmd0aC0xXX1mdW5jdGlvbiBEMnQocyl7cmV0dXJuIHNhKEFkZShzKSk/cy5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gRzIocyl7cmV0dXJuIFdKKEFkZShzKSk/cy5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gUm5zKHMsZSl7cmV0dXJuIHR5cGVvZiBBZGUocyk9PSJudW1iZXIiP3MucG9wKCk6ZX12YXIgTDc9ZygoKT0+e3JvKCk7SWRlKCk7aShBZGUsImxhc3QiKTtpKEQydCwicG9wUmVzdWx0U2VsZWN0b3IiKTtpKEcyLCJwb3BTY2hlZHVsZXIiKTtpKFJucywicG9wTnVtYmVyIil9KTt2YXIgRTcsR0o9ZygoKT0+e0U3PWkoKGZ1bmN0aW9uKHMpe3JldHVybiBzJiZ0eXBlb2Ygcy5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgcyE9ImZ1bmN0aW9uIn0pLCJpc0FycmF5TGlrZSIpfSk7ZnVuY3Rpb24gS0oocyl7cmV0dXJuIHNhKHM/LnRoZW4pfXZhciBOZGU9ZygoKT0+e3JvKCk7aShLSiwiaXNQcm9taXNlIil9KTtmdW5jdGlvbiBZSihzKXtyZXR1cm4gc2Eoc1tINF0pfXZhciBSZGU9ZygoKT0+e2x5KCk7cm8oKTtpKFlKLCJpc0ludGVyb3BPYnNlcnZhYmxlIil9KTtmdW5jdGlvbiBaSihzKXtyZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3ImJnNhKHM/LltTeW1ib2wuYXN5bmNJdGVyYXRvcl0pfXZhciBPZGU9ZygoKT0+e3JvKCk7aShaSiwiaXNBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBYSihzKXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKHMhPT1udWxsJiZ0eXBlb2Ygcz09Im9iamVjdCI/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrcysiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX12YXIgRmRlPWcoKCk9PntpKFhKLCJjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvciIpfSk7ZnVuY3Rpb24gaSRhKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2whPSJmdW5jdGlvbiJ8fCFTeW1ib2wuaXRlcmF0b3I/IkBAaXRlcmF0b3IiOlN5bWJvbC5pdGVyYXRvcn12YXIgUUosQmRlPWcoKCk9PntpKGkkYSwiZ2V0U3ltYm9sSXRlcmF0b3IiKTtRSj1pJGEoKX0pO2Z1bmN0aW9uIEpKKHMpe3JldHVybiBzYShzPy5bUUpdKX12YXIgSGRlPWcoKCk9PntCZGUoKTtybygpO2koSkosImlzSXRlcmFibGUiKX0pO2Z1bmN0aW9uIGVlZShzKXtyZXR1cm4gc2RlKHRoaXMsYXJndW1lbnRzLGkoZnVuY3Rpb24oKXt2YXIgdCxhLHIsbjtyZXR1cm4gcnkodGhpcyxmdW5jdGlvbihvKXtzd2l0Y2goby5sYWJlbCl7Y2FzZSAwOnQ9cy5nZXRSZWFkZXIoKSxvLmxhYmVsPTE7Y2FzZSAxOm8udHJ5cy5wdXNoKFsxLCw5LDEwXSksby5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bNCxuMCh0LnJlYWQoKSldO2Nhc2UgMzpyZXR1cm4gYT1vLnNlbnQoKSxyPWEudmFsdWUsbj1hLmRvbmUsbj9bNCxuMCh2b2lkIDApXTpbMyw1XTtjYXNlIDQ6cmV0dXJuWzIsby5zZW50KCldO2Nhc2UgNTpyZXR1cm5bNCxuMChyKV07Y2FzZSA2OnJldHVybls0LG8uc2VudCgpXTtjYXNlIDc6cmV0dXJuIG8uc2VudCgpLFszLDJdO2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OnJldHVybiB0LnJlbGVhc2VMb2NrKCksWzddO2Nhc2UgMTA6cmV0dXJuWzJdfX0pfSwicmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvcl8xIikpfWZ1bmN0aW9uIHRlZShzKXtyZXR1cm4gc2Eocz8uZ2V0UmVhZGVyKX12YXIgYWVlPWcoKCk9PntMcygpO3JvKCk7aShlZWUsInJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IiKTtpKHRlZSwiaXNSZWFkYWJsZVN0cmVhbUxpa2UiKX0pO2Z1bmN0aW9uIG5pKHMpe2lmKHMgaW5zdGFuY2VvZiByYSlyZXR1cm4gcztpZihzIT1udWxsKXtpZihZSihzKSlyZXR1cm4gciRhKHMpO2lmKEU3KHMpKXJldHVybiBvJGEocyk7aWYoS0oocykpcmV0dXJuIG4kYShzKTtpZihaSihzKSlyZXR1cm4gTDJ0KHMpO2lmKEpKKHMpKXJldHVybiBsJGEocyk7aWYodGVlKHMpKXJldHVybiBjJGEocyl9dGhyb3cgWEoocyl9ZnVuY3Rpb24gciRhKHMpe3JldHVybiBuZXcgcmEoZnVuY3Rpb24oZSl7dmFyIHQ9c1tINF0oKTtpZihzYSh0LnN1YnNjcmliZSkpcmV0dXJuIHQuc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX1mdW5jdGlvbiBvJGEocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PHMubGVuZ3RoJiYhZS5jbG9zZWQ7dCsrKWUubmV4dChzW3RdKTtlLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBuJGEocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXtzLnRoZW4oZnVuY3Rpb24odCl7ZS5jbG9zZWR8fChlLm5leHQodCksZS5jb21wbGV0ZSgpKX0sZnVuY3Rpb24odCl7cmV0dXJuIGUuZXJyb3IodCl9KS50aGVuKG51bGwsT0opfSl9ZnVuY3Rpb24gbCRhKHMpe3JldHVybiBuZXcgcmEoZnVuY3Rpb24oZSl7dmFyIHQsYTt0cnl7Zm9yKHZhciByPVZvKHMpLG49ci5uZXh0KCk7IW4uZG9uZTtuPXIubmV4dCgpKXt2YXIgbz1uLnZhbHVlO2lmKGUubmV4dChvKSxlLmNsb3NlZClyZXR1cm59fWNhdGNoKGwpe3Q9e2Vycm9yOmx9fWZpbmFsbHl7dHJ5e24mJiFuLmRvbmUmJihhPXIucmV0dXJuKSYmYS5jYWxsKHIpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1lLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBMMnQocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXtkJGEocyxlKS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5lcnJvcih0KX0pfSl9ZnVuY3Rpb24gYyRhKHMpe3JldHVybiBMMnQoZWVlKHMpKX1mdW5jdGlvbiBkJGEocyxlKXt2YXIgdCxhLHIsbjtyZXR1cm4gYWRlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvLGw7cmV0dXJuIHJ5KHRoaXMsZnVuY3Rpb24ocCl7c3dpdGNoKHAubGFiZWwpe2Nhc2UgMDpwLnRyeXMucHVzaChbMCw1LDYsMTFdKSx0PWlkZShzKSxwLmxhYmVsPTE7Y2FzZSAxOnJldHVybls0LHQubmV4dCgpXTtjYXNlIDI6aWYoYT1wLnNlbnQoKSwhIWEuZG9uZSlyZXR1cm5bMyw0XTtpZihvPWEudmFsdWUsZS5uZXh0KG8pLGUuY2xvc2VkKXJldHVyblsyXTtwLmxhYmVsPTM7Y2FzZSAzOnJldHVyblszLDFdO2Nhc2UgNDpyZXR1cm5bMywxMV07Y2FzZSA1OnJldHVybiBsPXAuc2VudCgpLHI9e2Vycm9yOmx9LFszLDExXTtjYXNlIDY6cmV0dXJuIHAudHJ5cy5wdXNoKFs2LCw5LDEwXSksYSYmIWEuZG9uZSYmKG49dC5yZXR1cm4pP1s0LG4uY2FsbCh0KV06WzMsOF07Y2FzZSA3OnAuc2VudCgpLHAubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTppZihyKXRocm93IHIuZXJyb3I7cmV0dXJuWzddO2Nhc2UgMTA6cmV0dXJuWzddO2Nhc2UgMTE6cmV0dXJuIGUuY29tcGxldGUoKSxbMl19fSl9KX12YXIgQWw9ZygoKT0+e0xzKCk7R0ooKTtOZGUoKTt5bigpO1JkZSgpO09kZSgpO0ZkZSgpO0hkZSgpO2FlZSgpO3JvKCk7bGRlKCk7bHkoKTtpKG5pLCJpbm5lckZyb20iKTtpKHIkYSwiZnJvbUludGVyb3BPYnNlcnZhYmxlIik7aShvJGEsImZyb21BcnJheUxpa2UiKTtpKG4kYSwiZnJvbVByb21pc2UiKTtpKGwkYSwiZnJvbUl0ZXJhYmxlIik7aShMMnQsImZyb21Bc3luY0l0ZXJhYmxlIik7aShjJGEsImZyb21SZWFkYWJsZVN0cmVhbUxpa2UiKTtpKGQkYSwicHJvY2VzcyIpfSk7ZnVuY3Rpb24gRnIocyxlLHQsYSxyKXthPT09dm9pZCAwJiYoYT0wKSxyPT09dm9pZCAwJiYocj0hMSk7dmFyIG49ZS5zY2hlZHVsZShmdW5jdGlvbigpe3QoKSxyP3MuYWRkKHRoaXMuc2NoZWR1bGUobnVsbCxhKSk6dGhpcy51bnN1YnNjcmliZSgpfSxhKTtpZihzLmFkZChuKSwhcilyZXR1cm4gbn12YXIgbHA9ZygoKT0+e2koRnIsImV4ZWN1dGVTY2hlZHVsZSIpfSk7ZnVuY3Rpb24gUDcocyxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksWGEoZnVuY3Rpb24odCxhKXt0LnN1YnNjcmliZShFYShhLGZ1bmN0aW9uKHIpe3JldHVybiBGcihhLHMsZnVuY3Rpb24oKXtyZXR1cm4gYS5uZXh0KHIpfSxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gRnIoYSxzLGZ1bmN0aW9uKCl7cmV0dXJuIGEuY29tcGxldGUoKX0sZSl9LGZ1bmN0aW9uKHIpe3JldHVybiBGcihhLHMsZnVuY3Rpb24oKXtyZXR1cm4gYS5lcnJvcihyKX0sZSl9KSl9KX12YXIgaHk9ZygoKT0+e2xwKCk7d3IoKTtvbygpO2koUDcsIm9ic2VydmVPbiIpfSk7ZnVuY3Rpb24gSTcocyxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksWGEoZnVuY3Rpb24odCxhKXthLmFkZChzLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc3Vic2NyaWJlKGEpfSxlKSl9KX12YXIgZnk9ZygoKT0+e3dyKCk7aShJNywic3Vic2NyaWJlT24iKX0pO2Z1bmN0aW9uIEUydChzLGUpe3JldHVybiBuaShzKS5waXBlKEk3KGUpLFA3KGUpKX12YXIgUDJ0PWcoKCk9PntBbCgpO2h5KCk7ZnkoKTtpKEUydCwic2NoZWR1bGVPYnNlcnZhYmxlIil9KTtmdW5jdGlvbiBJMnQocyxlKXtyZXR1cm4gbmkocykucGlwZShJNyhlKSxQNyhlKSl9dmFyIEEydD1nKCgpPT57QWwoKTtoeSgpO2Z5KCk7aShJMnQsInNjaGVkdWxlUHJvbWlzZSIpfSk7ZnVuY3Rpb24gTjJ0KHMsZSl7cmV0dXJuIG5ldyByYShmdW5jdGlvbih0KXt2YXIgYT0wO3JldHVybiBlLnNjaGVkdWxlKGZ1bmN0aW9uKCl7YT09PXMubGVuZ3RoP3QuY29tcGxldGUoKToodC5uZXh0KHNbYSsrXSksdC5jbG9zZWR8fHRoaXMuc2NoZWR1bGUoKSl9KX0pfXZhciBSMnQ9ZygoKT0+e3luKCk7aShOMnQsInNjaGVkdWxlQXJyYXkiKX0pO2Z1bmN0aW9uIE8ydChzLGUpe3JldHVybiBuZXcgcmEoZnVuY3Rpb24odCl7dmFyIGE7cmV0dXJuIEZyKHQsZSxmdW5jdGlvbigpe2E9c1tRSl0oKSxGcih0LGUsZnVuY3Rpb24oKXt2YXIgcixuLG87dHJ5e3I9YS5uZXh0KCksbj1yLnZhbHVlLG89ci5kb25lfWNhdGNoKGwpe3QuZXJyb3IobCk7cmV0dXJufW8/dC5jb21wbGV0ZSgpOnQubmV4dChuKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBzYShhPy5yZXR1cm4pJiZhLnJldHVybigpfX0pfXZhciBGMnQ9ZygoKT0+e3luKCk7QmRlKCk7cm8oKTtscCgpO2koTzJ0LCJzY2hlZHVsZUl0ZXJhYmxlIil9KTtmdW5jdGlvbiBzZWUocyxlKXtpZighcyl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyByYShmdW5jdGlvbih0KXtGcih0LGUsZnVuY3Rpb24oKXt2YXIgYT1zW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO0ZyKHQsZSxmdW5jdGlvbigpe2EubmV4dCgpLnRoZW4oZnVuY3Rpb24ocil7ci5kb25lP3QuY29tcGxldGUoKTp0Lm5leHQoci52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBxZGU9ZygoKT0+e3luKCk7bHAoKTtpKHNlZSwic2NoZWR1bGVBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBCMnQocyxlKXtyZXR1cm4gc2VlKGVlZShzKSxlKX12YXIgSDJ0PWcoKCk9PntxZGUoKTthZWUoKTtpKEIydCwic2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UiKX0pO2Z1bmN0aW9uIGpkZShzLGUpe2lmKHMhPW51bGwpe2lmKFlKKHMpKXJldHVybiBFMnQocyxlKTtpZihFNyhzKSlyZXR1cm4gTjJ0KHMsZSk7aWYoS0oocykpcmV0dXJuIEkydChzLGUpO2lmKFpKKHMpKXJldHVybiBzZWUocyxlKTtpZihKSihzKSlyZXR1cm4gTzJ0KHMsZSk7aWYodGVlKHMpKXJldHVybiBCMnQocyxlKX10aHJvdyBYSihzKX12YXIgVmRlPWcoKCk9PntQMnQoKTtBMnQoKTtSMnQoKTtGMnQoKTtxZGUoKTtSZGUoKTtOZGUoKTtHSigpO0hkZSgpO09kZSgpO0ZkZSgpO2FlZSgpO0gydCgpO2koamRlLCJzY2hlZHVsZWQiKX0pO2Z1bmN0aW9uIEsyKHMsZSl7cmV0dXJuIGU/amRlKHMsZSk6bmkocyl9dmFyIG15PWcoKCk9PntWZGUoKTtBbCgpO2koSzIsImZyb20iKX0pO2Z1bmN0aW9uIHE0KCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXNbZV09YXJndW1lbnRzW2VdO3ZhciB0PUcyKHMpO3JldHVybiBLMihzLHQpfXZhciBVZGU9ZygoKT0+e0w3KCk7bXkoKTtpKHE0LCJvZiIpfSk7ZnVuY3Rpb24gV2RlKHMsZSl7dmFyIHQ9c2Eocyk/czpmdW5jdGlvbigpe3JldHVybiBzfSxhPWkoZnVuY3Rpb24ocil7cmV0dXJuIHIuZXJyb3IodCgpKX0sImluaXQiKTtyZXR1cm4gbmV3IHJhKGU/ZnVuY3Rpb24ocil7cmV0dXJuIGUuc2NoZWR1bGUoYSwwLHIpfTphKX12YXIgR2RlPWcoKCk9Pnt5bigpO3JvKCk7aShXZGUsInRocm93RXJyb3IiKX0pO2Z1bmN0aW9uIHUkYShzLGUpe3ZhciB0LGEscixuPXMsbz1uLmtpbmQsbD1uLnZhbHVlLHA9bi5lcnJvcjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7bz09PSJOIj8odD1lLm5leHQpPT09bnVsbHx8dD09PXZvaWQgMHx8dC5jYWxsKGUsbCk6bz09PSJFIj8oYT1lLmVycm9yKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChlLHApOihyPWUuY29tcGxldGUpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGUpfXZhciBLZGUscTJ0LGoydD1nKCgpPT57VUooKTtVZGUoKTtHZGUoKTtybygpOyhmdW5jdGlvbihzKXtzLk5FWFQ9Ik4iLHMuRVJST1I9IkUiLHMuQ09NUExFVEU9IkMifSkoS2RlfHwoS2RlPXt9KSk7cTJ0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSx0LGEpe3RoaXMua2luZD1lLHRoaXMudmFsdWU9dCx0aGlzLmVycm9yPWEsdGhpcy5oYXNWYWx1ZT1lPT09Ik4ifXJldHVybiBpKHMsIk5vdGlmaWNhdGlvbiIpLHMucHJvdG90eXBlLm9ic2VydmU9ZnVuY3Rpb24oZSl7cmV0dXJuIHUkYSh0aGlzLGUpfSxzLnByb3RvdHlwZS5kbz1mdW5jdGlvbihlLHQsYSl7dmFyIHI9dGhpcyxuPXIua2luZCxvPXIudmFsdWUsbD1yLmVycm9yO3JldHVybiBuPT09Ik4iP2U/LihvKTpuPT09IkUiP3Q/LihsKTphPy4oKX0scy5wcm90b3R5cGUuYWNjZXB0PWZ1bmN0aW9uKGUsdCxhKXt2YXIgcjtyZXR1cm4gc2EoKHI9ZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5leHQpP3RoaXMub2JzZXJ2ZShlKTp0aGlzLmRvKGUsdCxhKX0scy5wcm90b3R5cGUudG9PYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUua2luZCxhPWUudmFsdWUscj1lLmVycm9yLG49dD09PSJOIj9xNChhKTp0PT09IkUiP1dkZShmdW5jdGlvbigpe3JldHVybiByfSk6dD09PSJDIj9WSjowO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQgbm90aWZpY2F0aW9uIGtpbmQgIit0KTtyZXR1cm4gbn0scy5jcmVhdGVOZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgcygiTiIsZSl9LHMuY3JlYXRlRXJyb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBzKCJFIix2b2lkIDAsZSl9LHMuY3JlYXRlQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gcy5jb21wbGV0ZU5vdGlmaWNhdGlvbn0scy5jb21wbGV0ZU5vdGlmaWNhdGlvbj1uZXcgcygiQyIpLHN9KSgpO2kodSRhLCJvYnNlcnZlTm90aWZpY2F0aW9uIil9KTt2YXIgVjJ0PWcoKCk9Pnt9KTt2YXIgcCRhLFUydD1nKCgpPT57b3AoKTtwJGE9aGwoZnVuY3Rpb24ocyl7cmV0dXJuIGkoZnVuY3Rpb24oKXtzKHRoaXMpLHRoaXMubmFtZT0iRW1wdHlFcnJvciIsdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSJ9LCJFbXB0eUVycm9ySW1wbCIpfSl9KTt2YXIgVzJ0PWcoKCk9Pnt9KTt2YXIgRzJ0PWcoKCk9Pnt9KTt2YXIgaCRhLEsydD1nKCgpPT57b3AoKTtoJGE9aGwoZnVuY3Rpb24ocyl7cmV0dXJuIGkoZnVuY3Rpb24oKXtzKHRoaXMpLHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXMubWVzc2FnZT0iYXJndW1lbnQgb3V0IG9mIHJhbmdlIn0sIkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9ySW1wbCIpfSl9KTt2YXIgZiRhLFkydD1nKCgpPT57b3AoKTtmJGE9aGwoZnVuY3Rpb24ocyl7cmV0dXJuIGkoZnVuY3Rpb24odCl7cyh0aGlzKSx0aGlzLm5hbWU9Ik5vdEZvdW5kRXJyb3IiLHRoaXMubWVzc2FnZT10fSwiTm90Rm91bmRFcnJvckltcGwiKX0pfSk7dmFyIG0kYSxaMnQ9ZygoKT0+e29wKCk7bSRhPWhsKGZ1bmN0aW9uKHMpe3JldHVybiBpKGZ1bmN0aW9uKHQpe3ModGhpcyksdGhpcy5uYW1lPSJTZXF1ZW5jZUVycm9yIix0aGlzLm1lc3NhZ2U9dH0sIlNlcXVlbmNlRXJyb3JJbXBsIil9KX0pO2Z1bmN0aW9uIGllZShzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihzKX12YXIgWWRlPWcoKCk9PntpKGllZSwiaXNWYWxpZERhdGUiKX0pO2Z1bmN0aW9uIFEydChzLGUpe3ZhciB0PWllZShzKT97Zmlyc3Q6c306dHlwZW9mIHM9PSJudW1iZXIiP3tlYWNoOnN9OnMsYT10LmZpcnN0LHI9dC5lYWNoLG49dC53aXRoLG89bj09PXZvaWQgMD9nJGE6bixsPXQuc2NoZWR1bGVyLHA9bD09PXZvaWQgMD9lPz9mbDpsLGQ9dC5tZXRhLHU9ZD09PXZvaWQgMD9udWxsOmQ7aWYoYT09bnVsbCYmcj09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpO3JldHVybiBYYShmdW5jdGlvbihjLGIpe3ZhciB2LHgsbT1udWxsLGY9MCx5PWkoZnVuY3Rpb24oTSl7eD1GcihiLHAsZnVuY3Rpb24oKXt0cnl7di51bnN1YnNjcmliZSgpLG5pKG8oe21ldGE6dSxsYXN0VmFsdWU6bSxzZWVuOmZ9KSkuc3Vic2NyaWJlKGIpfWNhdGNoKHope2IuZXJyb3Ioeil9fSxNKX0sInN0YXJ0VGltZXIiKTt2PWMuc3Vic2NyaWJlKEVhKGIsZnVuY3Rpb24oTSl7eD8udW5zdWJzY3JpYmUoKSxmKyssYi5uZXh0KG09TSkscj4wJiZ5KHIpfSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7eD8uY2xvc2VkfHx4Py51bnN1YnNjcmliZSgpLG09bnVsbH0pKSwhZiYmeShhIT1udWxsP3R5cGVvZiBhPT0ibnVtYmVyIj9hOithLXAubm93KCk6cil9KX1mdW5jdGlvbiBnJGEocyl7dGhyb3cgbmV3IFgydChzKX12YXIgWDJ0LHJlZT1nKCgpPT57YzAoKTtZZGUoKTt3cigpO0FsKCk7b3AoKTtvbygpO2xwKCk7WDJ0PWhsKGZ1bmN0aW9uKHMpe3JldHVybiBpKGZ1bmN0aW9uKHQpe3Q9PT12b2lkIDAmJih0PW51bGwpLHModGhpcyksdGhpcy5tZXNzYWdlPSJUaW1lb3V0IGhhcyBvY2N1cnJlZCIsdGhpcy5uYW1lPSJUaW1lb3V0RXJyb3IiLHRoaXMuaW5mbz10fSwiVGltZW91dEVycm9ySW1wbCIpfSk7aShRMnQsInRpbWVvdXQiKTtpKGckYSwidGltZW91dEVycm9yRmFjdG9yeSIpfSk7ZnVuY3Rpb24gWTIocyxlKXtyZXR1cm4gWGEoZnVuY3Rpb24odCxhKXt2YXIgcj0wO3Quc3Vic2NyaWJlKEVhKGEsZnVuY3Rpb24obil7YS5uZXh0KHMuY2FsbChlLG4scisrKSl9KSl9KX12YXIgZ3k9ZygoKT0+e3dyKCk7b28oKTtpKFkyLCJtYXAiKX0pO2Z1bmN0aW9uIHYkYShzLGUpe3JldHVybiBiJGEoZSk/cy5hcHBseSh2b2lkIDAsT3IoW10sT2koZSkpKTpzKGUpfWZ1bmN0aW9uIG9lZShzKXtyZXR1cm4gWTIoZnVuY3Rpb24oZSl7cmV0dXJuIHYkYShzLGUpfSl9dmFyIGIkYSxaZGU9ZygoKT0+e0xzKCk7Z3koKTtiJGE9QXJyYXkuaXNBcnJheTtpKHYkYSwiY2FsbE9yQXBwbHkiKTtpKG9lZSwibWFwT25lT3JNYW55QXJncyIpfSk7dmFyIEoydD1nKCgpPT57fSk7dmFyIGVkdD1nKCgpPT57fSk7ZnVuY3Rpb24gdGR0KHMpe2lmKHMubGVuZ3RoPT09MSl7dmFyIGU9c1swXTtpZih4JGEoZSkpcmV0dXJue2FyZ3M6ZSxrZXlzOm51bGx9O2lmKFMkYShlKSl7dmFyIHQ9ayRhKGUpO3JldHVybnthcmdzOnQubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBlW2FdfSksa2V5czp0fX19cmV0dXJue2FyZ3M6cyxrZXlzOm51bGx9fWZ1bmN0aW9uIFMkYShzKXtyZXR1cm4gcyYmdHlwZW9mIHM9PSJvYmplY3QiJiZ5JGEocyk9PT13JGF9dmFyIHgkYSx5JGEsdyRhLGskYSxhZHQ9ZygoKT0+e3gkYT1BcnJheS5pc0FycmF5LHkkYT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsdyRhPU9iamVjdC5wcm90b3R5cGUsayRhPU9iamVjdC5rZXlzO2kodGR0LCJhcmdzQXJnQXJyYXlPck9iamVjdCIpO2koUyRhLCJpc1BPSk8iKX0pO2Z1bmN0aW9uIHNkdChzLGUpe3JldHVybiBzLnJlZHVjZShmdW5jdGlvbih0LGEscil7cmV0dXJuIHRbYV09ZVtyXSx0fSx7fSl9dmFyIGlkdD1nKCgpPT57aShzZHQsImNyZWF0ZU9iamVjdCIpfSk7ZnVuY3Rpb24gWGRlKCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXNbZV09YXJndW1lbnRzW2VdO3ZhciB0PUcyKHMpLGE9RDJ0KHMpLHI9dGR0KHMpLG49ci5hcmdzLG89ci5rZXlzO2lmKG4ubGVuZ3RoPT09MClyZXR1cm4gSzIoW10sdCk7dmFyIGw9bmV3IHJhKF8kYShuLHQsbz9mdW5jdGlvbihwKXtyZXR1cm4gc2R0KG8scCl9OlcyKSk7cmV0dXJuIGE/bC5waXBlKG9lZShhKSk6bH1mdW5jdGlvbiBfJGEocyxlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD1XMiksZnVuY3Rpb24oYSl7cmR0KGUsZnVuY3Rpb24oKXtmb3IodmFyIHI9cy5sZW5ndGgsbj1uZXcgQXJyYXkociksbz1yLGw9cixwPWkoZnVuY3Rpb24odSl7cmR0KGUsZnVuY3Rpb24oKXt2YXIgYz1LMihzW3VdLGUpLGI9ITE7Yy5zdWJzY3JpYmUoRWEoYSxmdW5jdGlvbih2KXtuW3VdPXYsYnx8KGI9ITAsbC0tKSxsfHxhLm5leHQodChuLnNsaWNlKCkpKX0sZnVuY3Rpb24oKXstLW98fGEuY29tcGxldGUoKX0pKX0sYSl9LCJfbG9vcF8xIiksZD0wO2Q8cjtkKyspcChkKX0sYSl9fWZ1bmN0aW9uIHJkdChzLGUsdCl7cz9Gcih0LHMsZSk6ZSgpfXZhciBvZHQ9ZygoKT0+e3luKCk7YWR0KCk7bXkoKTtNNygpO1pkZSgpO0w3KCk7aWR0KCk7b28oKTtscCgpO2koWGRlLCJjb21iaW5lTGF0ZXN0Iik7aShfJGEsImNvbWJpbmVMYXRlc3RJbml0Iik7aShyZHQsIm1heWJlU2NoZWR1bGUiKX0pO2Z1bmN0aW9uIG5kdChzLGUsdCxhLHIsbixvLGwpe3ZhciBwPVtdLGQ9MCx1PTAsYz0hMSxiPWkoZnVuY3Rpb24oKXtjJiYhcC5sZW5ndGgmJiFkJiZlLmNvbXBsZXRlKCl9LCJjaGVja0NvbXBsZXRlIiksdj1pKGZ1bmN0aW9uKG0pe3JldHVybiBkPGE/eChtKTpwLnB1c2gobSl9LCJvdXRlck5leHQiKSx4PWkoZnVuY3Rpb24obSl7biYmZS5uZXh0KG0pLGQrKzt2YXIgZj0hMTtuaSh0KG0sdSsrKSkuc3Vic2NyaWJlKEVhKGUsZnVuY3Rpb24oeSl7cj8uKHkpLG4/dih5KTplLm5leHQoeSl9LGZ1bmN0aW9uKCl7Zj0hMH0sdm9pZCAwLGZ1bmN0aW9uKCl7aWYoZil0cnl7ZC0tO2Zvcih2YXIgeT1pKGZ1bmN0aW9uKCl7dmFyIE09cC5zaGlmdCgpO28/RnIoZSxvLGZ1bmN0aW9uKCl7cmV0dXJuIHgoTSl9KTp4KE0pfSwiX2xvb3BfMSIpO3AubGVuZ3RoJiZkPGE7KXkoKTtiKCl9Y2F0Y2goTSl7ZS5lcnJvcihNKX19KSl9LCJkb0lubmVyU3ViIik7cmV0dXJuIHMuc3Vic2NyaWJlKEVhKGUsdixmdW5jdGlvbigpe2M9ITAsYigpfSkpLGZ1bmN0aW9uKCl7bD8uKCl9fXZhciBsZHQ9ZygoKT0+e0FsKCk7bHAoKTtvbygpO2kobmR0LCJtZXJnZUludGVybmFscyIpfSk7ZnVuY3Rpb24gajQocyxlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0xLzApLHNhKGUpP2o0KGZ1bmN0aW9uKGEscil7cmV0dXJuIFkyKGZ1bmN0aW9uKG4sbyl7cmV0dXJuIGUoYSxuLHIsbyl9KShuaShzKGEscikpKX0sdCk6KHR5cGVvZiBlPT0ibnVtYmVyIiYmKHQ9ZSksWGEoZnVuY3Rpb24oYSxyKXtyZXR1cm4gbmR0KGEscixzLHQpfSkpfXZhciBieT1nKCgpPT57Z3koKTtBbCgpO3dyKCk7bGR0KCk7cm8oKTtpKGo0LCJtZXJnZU1hcCIpfSk7ZnVuY3Rpb24gbmVlKHMpe3JldHVybiBzPT09dm9pZCAwJiYocz0xLzApLGo0KFcyLHMpfXZhciBsZWU9ZygoKT0+e2J5KCk7TTcoKTtpKG5lZSwibWVyZ2VBbGwiKX0pO2Z1bmN0aW9uIGNlZSgpe3JldHVybiBuZWUoMSl9dmFyIGRlZT1nKCgpPT57bGVlKCk7aShjZWUsImNvbmNhdEFsbCIpfSk7ZnVuY3Rpb24gdWVlKCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXNbZV09YXJndW1lbnRzW2VdO3JldHVybiBjZWUoKShLMihzLEcyKHMpKSl9dmFyIFFkZT1nKCgpPT57ZGVlKCk7TDcoKTtteSgpO2kodWVlLCJjb25jYXQiKX0pO3ZhciBjZHQ9ZygoKT0+e30pO3ZhciBkZHQ9ZygoKT0+e30pO3ZhciB1ZHQ9ZygoKT0+e30pO2Z1bmN0aW9uIFY0KHMsZSx0LGEpe2lmKHNhKHQpJiYoYT10LHQ9dm9pZCAwKSxhKXJldHVybiBWNChzLGUsdCkucGlwZShvZWUoYSkpO3ZhciByPU9pKEQkYShzKT96JGEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gc1tsXShlLHAsdCl9fSk6VCRhKHMpP00kYS5tYXAocGR0KHMsZSkpOiQkYShzKT9DJGEubWFwKHBkdChzLGUpKTpbXSwyKSxuPXJbMF0sbz1yWzFdO2lmKCFuJiZFNyhzKSlyZXR1cm4gajQoZnVuY3Rpb24obCl7cmV0dXJuIFY0KGwsZSx0KX0pKG5pKHMpKTtpZighbil0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGV2ZW50IHRhcmdldCIpO3JldHVybiBuZXcgcmEoZnVuY3Rpb24obCl7dmFyIHA9aShmdW5jdGlvbigpe2Zvcih2YXIgZD1bXSx1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKylkW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gbC5uZXh0KDE8ZC5sZW5ndGg/ZDpkWzBdKX0sImhhbmRsZXIiKTtyZXR1cm4gbihwKSxmdW5jdGlvbigpe3JldHVybiBvKHApfX0pfWZ1bmN0aW9uIHBkdChzLGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIHNbdF0oZSxhKX19fWZ1bmN0aW9uIFQkYShzKXtyZXR1cm4gc2Eocy5hZGRMaXN0ZW5lcikmJnNhKHMucmVtb3ZlTGlzdGVuZXIpfWZ1bmN0aW9uICQkYShzKXtyZXR1cm4gc2Eocy5vbikmJnNhKHMub2ZmKX1mdW5jdGlvbiBEJGEocyl7cmV0dXJuIHNhKHMuYWRkRXZlbnRMaXN0ZW5lcikmJnNhKHMucmVtb3ZlRXZlbnRMaXN0ZW5lcil9dmFyIE0kYSx6JGEsQyRhLGhkdD1nKCgpPT57THMoKTtBbCgpO3luKCk7YnkoKTtHSigpO3JvKCk7WmRlKCk7TSRhPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLHokYT1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sQyRhPVsib24iLCJvZmYiXTtpKFY0LCJmcm9tRXZlbnQiKTtpKHBkdCwidG9Db21tb25IYW5kbGVyUmVnaXN0cnkiKTtpKFQkYSwiaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIiKTtpKCQkYSwiaXNKUXVlcnlTdHlsZUV2ZW50RW1pdHRlciIpO2koRCRhLCJpc0V2ZW50VGFyZ2V0Iil9KTt2YXIgZmR0PWcoKCk9Pnt9KTt2YXIgbWR0PWcoKCk9Pnt9KTt2YXIgZ2R0PWcoKCk9Pnt9KTtmdW5jdGlvbiB2eShzLGUsdCl7cz09PXZvaWQgMCYmKHM9MCksdD09PXZvaWQgMCYmKHQ9VGRlKTt2YXIgYT0tMTtyZXR1cm4gZSE9bnVsbCYmKFdKKGUpP3Q9ZTphPWUpLG5ldyByYShmdW5jdGlvbihyKXt2YXIgbj1pZWUocyk/K3MtdC5ub3coKTpzO248MCYmKG49MCk7dmFyIG89MDtyZXR1cm4gdC5zY2hlZHVsZShmdW5jdGlvbigpe3IuY2xvc2VkfHwoci5uZXh0KG8rKyksMDw9YT90aGlzLnNjaGVkdWxlKHZvaWQgMCxhKTpyLmNvbXBsZXRlKCkpfSxuKX0pfXZhciBwZWU9ZygoKT0+e3luKCk7YzAoKTtJZGUoKTtZZGUoKTtpKHZ5LCJ0aW1lciIpfSk7ZnVuY3Rpb24gSmRlKHMsZSl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLGU9PT12b2lkIDAmJihlPWZsKSxzPDAmJihzPTApLHZ5KHMscyxlKX12YXIgYmR0PWcoKCk9PntjMCgpO3BlZSgpO2koSmRlLCJpbnRlcnZhbCIpfSk7dmFyIHZkdD1nKCgpPT57fSk7ZnVuY3Rpb24gTCRhKCl7cmV0dXJuIHhkdH12YXIgeGR0LGUwZT1nKCgpPT57eW4oKTtPNCgpO3hkdD1uZXcgcmEoeWMpO2koTCRhLCJuZXZlciIpfSk7dmFyIHlkdD1nKCgpPT57fSk7dmFyIHdkdD1nKCgpPT57fSk7ZnVuY3Rpb24gaGVlKHMsZSl7cmV0dXJuIFhhKGZ1bmN0aW9uKHQsYSl7dmFyIHI9MDt0LnN1YnNjcmliZShFYShhLGZ1bmN0aW9uKG4pe3JldHVybiBzLmNhbGwoZSxuLHIrKykmJmEubmV4dChuKX0pKX0pfXZhciB0MGU9ZygoKT0+e3dyKCk7b28oKTtpKGhlZSwiZmlsdGVyIil9KTt2YXIga2R0PWcoKCk9Pnt9KTt2YXIgU2R0PWcoKCk9Pnt9KTt2YXIgX2R0PWcoKCk9Pnt9KTt2YXIgTWR0PWcoKCk9Pnt9KTt2YXIgemR0PWcoKCk9Pnt9KTt2YXIgQ2R0PWcoKCk9Pnt9KTt2YXIgYTBlPWcoKCk9Pnt9KTt2YXIgczBlPWcoKCk9Pnt9KTtmdW5jdGlvbiBmZWUocyl7cmV0dXJuIFhhKGZ1bmN0aW9uKGUsdCl7dmFyIGE9W107cmV0dXJuIGUuc3Vic2NyaWJlKEVhKHQsZnVuY3Rpb24ocil7cmV0dXJuIGEucHVzaChyKX0sZnVuY3Rpb24oKXt0Lm5leHQoYSksdC5jb21wbGV0ZSgpfSkpLG5pKHMpLnN1YnNjcmliZShFYSh0LGZ1bmN0aW9uKCl7dmFyIHI9YTthPVtdLHQubmV4dChyKX0seWMpKSxmdW5jdGlvbigpe2E9bnVsbH19KX12YXIgaTBlPWcoKCk9Pnt3cigpO080KCk7b28oKTtBbCgpO2koZmVlLCJidWZmZXIiKX0pO2Z1bmN0aW9uIG1lZShzLGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1udWxsKSxlPWU/P3MsWGEoZnVuY3Rpb24odCxhKXt2YXIgcj1bXSxuPTA7dC5zdWJzY3JpYmUoRWEoYSxmdW5jdGlvbihvKXt2YXIgbCxwLGQsdSxjPW51bGw7bisrJWU9PT0wJiZyLnB1c2goW10pO3RyeXtmb3IodmFyIGI9Vm8ociksdj1iLm5leHQoKTshdi5kb25lO3Y9Yi5uZXh0KCkpe3ZhciB4PXYudmFsdWU7eC5wdXNoKG8pLHM8PXgubGVuZ3RoJiYoYz1jPz9bXSxjLnB1c2goeCkpfX1jYXRjaCh5KXtsPXtlcnJvcjp5fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYocD1iLnJldHVybikmJnAuY2FsbChiKX1maW5hbGx5e2lmKGwpdGhyb3cgbC5lcnJvcn19aWYoYyl0cnl7Zm9yKHZhciBtPVZvKGMpLGY9bS5uZXh0KCk7IWYuZG9uZTtmPW0ubmV4dCgpKXt2YXIgeD1mLnZhbHVlO20xKHIseCksYS5uZXh0KHgpfX1jYXRjaCh5KXtkPXtlcnJvcjp5fX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYodT1tLnJldHVybikmJnUuY2FsbChtKX1maW5hbGx5e2lmKGQpdGhyb3cgZC5lcnJvcn19fSxmdW5jdGlvbigpe3ZhciBvLGw7dHJ5e2Zvcih2YXIgcD1WbyhyKSxkPXAubmV4dCgpOyFkLmRvbmU7ZD1wLm5leHQoKSl7dmFyIHU9ZC52YWx1ZTthLm5leHQodSl9fWNhdGNoKGMpe289e2Vycm9yOmN9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihsPXAucmV0dXJuKSYmbC5jYWxsKHApfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1hLmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3I9bnVsbH0pKX0pfXZhciByMGU9ZygoKT0+e0xzKCk7d3IoKTtvbygpO3c3KCk7aShtZWUsImJ1ZmZlckNvdW50Iil9KTtmdW5jdGlvbiBnZWUocyl7Zm9yKHZhciBlLHQsYT1bXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKylhW3ItMV09YXJndW1lbnRzW3JdO3ZhciBuPShlPUcyKGEpKSE9PW51bGwmJmUhPT12b2lkIDA/ZTpmbCxvPSh0PWFbMF0pIT09bnVsbCYmdCE9PXZvaWQgMD90Om51bGwsbD1hWzFdfHwxLzA7cmV0dXJuIFhhKGZ1bmN0aW9uKHAsZCl7dmFyIHU9W10sYz0hMSxiPWkoZnVuY3Rpb24obSl7dmFyIGY9bS5idWZmZXIseT1tLnN1YnM7eS51bnN1YnNjcmliZSgpLG0xKHUsbSksZC5uZXh0KGYpLGMmJnYoKX0sImVtaXQiKSx2PWkoZnVuY3Rpb24oKXtpZih1KXt2YXIgbT1uZXcgdHI7ZC5hZGQobSk7dmFyIGY9W10seT17YnVmZmVyOmYsc3ViczptfTt1LnB1c2goeSksRnIobSxuLGZ1bmN0aW9uKCl7cmV0dXJuIGIoeSl9LHMpfX0sInN0YXJ0QnVmZmVyIik7byE9PW51bGwmJm8+PTA/RnIoZCxuLHYsbywhMCk6Yz0hMCx2KCk7dmFyIHg9RWEoZCxmdW5jdGlvbihtKXt2YXIgZix5LE09dS5zbGljZSgpO3RyeXtmb3IodmFyIHo9Vm8oTSksTj16Lm5leHQoKTshTi5kb25lO049ei5uZXh0KCkpe3ZhciBDPU4udmFsdWUsXz1DLmJ1ZmZlcjtfLnB1c2gobSksbDw9Xy5sZW5ndGgmJmIoQyl9fWNhdGNoKE8pe2Y9e2Vycm9yOk99fWZpbmFsbHl7dHJ5e04mJiFOLmRvbmUmJih5PXoucmV0dXJuKSYmeS5jYWxsKHopfWZpbmFsbHl7aWYoZil0aHJvdyBmLmVycm9yfX19LGZ1bmN0aW9uKCl7Zm9yKDt1Py5sZW5ndGg7KWQubmV4dCh1LnNoaWZ0KCkuYnVmZmVyKTt4Py51bnN1YnNjcmliZSgpLGQuY29tcGxldGUoKSxkLnVuc3Vic2NyaWJlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiB1PW51bGx9KTtwLnN1YnNjcmliZSh4KX0pfXZhciBvMGU9ZygoKT0+e0xzKCk7VTIoKTt3cigpO29vKCk7dzcoKTtjMCgpO0w3KCk7bHAoKTtpKGdlZSwiYnVmZmVyVGltZSIpfSk7dmFyIG4wZT1nKCgpPT57fSk7dmFyIGwwZT1nKCgpPT57fSk7dmFyIGMwZT1nKCgpPT57fSk7dmFyIGQwZT1nKCgpPT57fSk7dmFyIHUwZT1nKCgpPT57fSk7dmFyIHAwZT1nKCgpPT57fSk7dmFyIGgwZT1nKCgpPT57fSk7dmFyIFRkdD1nKCgpPT57fSk7dmFyIGYwZT1nKCgpPT57fSk7dmFyIG0wZT1nKCgpPT57fSk7dmFyIGcwZT1nKCgpPT57fSk7dmFyICRkdD1nKCgpPT57fSk7dmFyIGIwZT1nKCgpPT57fSk7dmFyIHYwZT1nKCgpPT57fSk7dmFyIHgwZT1nKCgpPT57fSk7ZnVuY3Rpb24gYmVlKHMpe3JldHVybiBYYShmdW5jdGlvbihlLHQpe3ZhciBhPSExLHI9bnVsbCxuPW51bGwsbz1pKGZ1bmN0aW9uKCl7aWYobj8udW5zdWJzY3JpYmUoKSxuPW51bGwsYSl7YT0hMTt2YXIgbD1yO3I9bnVsbCx0Lm5leHQobCl9fSwiZW1pdCIpO2Uuc3Vic2NyaWJlKEVhKHQsZnVuY3Rpb24obCl7bj8udW5zdWJzY3JpYmUoKSxhPSEwLHI9bCxuPUVhKHQsbyx5YyksbmkocyhsKSkuc3Vic2NyaWJlKG4pfSxmdW5jdGlvbigpe28oKSx0LmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3I9bj1udWxsfSkpfSl9dmFyIHkwZT1nKCgpPT57d3IoKTtPNCgpO29vKCk7QWwoKTtpKGJlZSwiZGVib3VuY2UiKX0pO2Z1bmN0aW9uIHZlZShzLGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1mbCksWGEoZnVuY3Rpb24odCxhKXt2YXIgcj1udWxsLG49bnVsbCxvPW51bGwsbD1pKGZ1bmN0aW9uKCl7aWYocil7ci51bnN1YnNjcmliZSgpLHI9bnVsbDt2YXIgZD1uO249bnVsbCxhLm5leHQoZCl9fSwiZW1pdCIpO2Z1bmN0aW9uIHAoKXt2YXIgZD1vK3MsdT1lLm5vdygpO2lmKHU8ZCl7cj10aGlzLnNjaGVkdWxlKHZvaWQgMCxkLXUpLGEuYWRkKHIpO3JldHVybn1sKCl9aShwLCJlbWl0V2hlbklkbGUiKSx0LnN1YnNjcmliZShFYShhLGZ1bmN0aW9uKGQpe249ZCxvPWUubm93KCkscnx8KHI9ZS5zY2hlZHVsZShwLHMpLGEuYWRkKHIpKX0sZnVuY3Rpb24oKXtsKCksYS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtuPXI9bnVsbH0pKX0pfXZhciB3MGU9ZygoKT0+e2MwKCk7d3IoKTtvbygpO2kodmVlLCJkZWJvdW5jZVRpbWUiKX0pO3ZhciBrMGU9ZygoKT0+e30pO3ZhciBTMGU9ZygoKT0+e30pO3ZhciBfMGU9ZygoKT0+e30pO3ZhciBNMGU9ZygoKT0+e30pO3ZhciB6MGU9ZygoKT0+e30pO3ZhciBDMGU9ZygoKT0+e30pO3ZhciBUMGU9ZygoKT0+e30pO3ZhciAkMGU9ZygoKT0+e30pO2Z1bmN0aW9uIEE3KHMsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPVcyKSxzPXM/P0UkYSxYYShmdW5jdGlvbih0LGEpe3ZhciByLG49ITA7dC5zdWJzY3JpYmUoRWEoYSxmdW5jdGlvbihvKXt2YXIgbD1lKG8pOyhufHwhcyhyLGwpKSYmKG49ITEscj1sLGEubmV4dChvKSl9KSl9KX1mdW5jdGlvbiBFJGEocyxlKXtyZXR1cm4gcz09PWV9dmFyIEQwZT1nKCgpPT57TTcoKTt3cigpO29vKCk7aShBNywiZGlzdGluY3RVbnRpbENoYW5nZWQiKTtpKEUkYSwiZGVmYXVsdENvbXBhcmUiKX0pO3ZhciBMMGU9ZygoKT0+e30pO3ZhciBFMGU9ZygoKT0+e30pO3ZhciBQMGU9ZygoKT0+e30pO3ZhciBJMGU9ZygoKT0+e30pO3ZhciBBMGU9ZygoKT0+e30pO3ZhciBOMGU9ZygoKT0+e30pO3ZhciBSMGU9ZygoKT0+e30pO3ZhciBPMGU9ZygoKT0+e30pO3ZhciBGMGU9ZygoKT0+e30pO3ZhciBCMGU9ZygoKT0+e30pO3ZhciBIMGU9ZygoKT0+e30pO3ZhciBxMGU9ZygoKT0+e30pO3ZhciBqMGU9ZygoKT0+e30pO3ZhciBWMGU9ZygoKT0+e30pO3ZhciBVMGU9ZygoKT0+e30pO3ZhciBXMGU9ZygoKT0+e30pO3ZhciBHMGU9ZygoKT0+e30pO3ZhciBLMGU9ZygoKT0+e30pO3ZhciBZMGU9ZygoKT0+e30pO3ZhciBaMGU9ZygoKT0+e30pO3ZhciBYMGU9ZygoKT0+e30pO3ZhciBRMGU9ZygoKT0+e30pO3ZhciBEZHQ9ZygoKT0+e30pO3ZhciBKMGU9ZygoKT0+e30pO3ZhciBldWU9ZygoKT0+e30pO3ZhciB0dWU9ZygoKT0+e30pO3ZhciBhdWU9ZygoKT0+e30pO3ZhciBzdWU9ZygoKT0+e30pO3ZhciBpdWU9ZygoKT0+e30pO3ZhciBydWU9ZygoKT0+e30pO3ZhciBvdWU9ZygoKT0+e30pO3ZhciBudWU9ZygoKT0+e30pO3ZhciBsdWU9ZygoKT0+e30pO3ZhciBjdWU9ZygoKT0+e30pO3ZhciBkdWU9ZygoKT0+e30pO3ZhciB1dWU9ZygoKT0+e30pO3ZhciBwdWU9ZygoKT0+e30pO3ZhciBodWU9ZygoKT0+e30pO3ZhciBmdWU9ZygoKT0+e30pO3ZhciBtdWU9ZygoKT0+e30pO3ZhciBndWU9ZygoKT0+e30pO3ZhciBidWU9ZygoKT0+e30pO2Z1bmN0aW9uIHhlZShzKXtzPT09dm9pZCAwJiYocz17fSk7dmFyIGU9cy5jb25uZWN0b3IsdD1lPT09dm9pZCAwP2Z1bmN0aW9uKCl7cmV0dXJuIG5ldyBVb306ZSxhPXMucmVzZXRPbkVycm9yLHI9YT09PXZvaWQgMD8hMDphLG49cy5yZXNldE9uQ29tcGxldGUsbz1uPT09dm9pZCAwPyEwOm4sbD1zLnJlc2V0T25SZWZDb3VudFplcm8scD1sPT09dm9pZCAwPyEwOmw7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciB1LGMsYix2PTAseD0hMSxtPSExLGY9aShmdW5jdGlvbigpe2M/LnVuc3Vic2NyaWJlKCksYz12b2lkIDB9LCJjYW5jZWxSZXNldCIpLHk9aShmdW5jdGlvbigpe2YoKSx1PWI9dm9pZCAwLHg9bT0hMX0sInJlc2V0IiksTT1pKGZ1bmN0aW9uKCl7dmFyIHo9dTt5KCksej8udW5zdWJzY3JpYmUoKX0sInJlc2V0QW5kVW5zdWJzY3JpYmUiKTtyZXR1cm4gWGEoZnVuY3Rpb24oeixOKXt2KyssIW0mJiF4JiZmKCk7dmFyIEM9Yj1iPz90KCk7Ti5hZGQoZnVuY3Rpb24oKXt2LS0sdj09PTAmJiFtJiYheCYmKGM9dnVlKE0scCkpfSksQy5zdWJzY3JpYmUoTiksIXUmJnY+MCYmKHU9bmV3IG5wKHtuZXh0OmkoZnVuY3Rpb24oXyl7cmV0dXJuIEMubmV4dChfKX0sIm5leHQiKSxlcnJvcjppKGZ1bmN0aW9uKF8pe209ITAsZigpLGM9dnVlKHkscixfKSxDLmVycm9yKF8pfSwiZXJyb3IiKSxjb21wbGV0ZTppKGZ1bmN0aW9uKCl7eD0hMCxmKCksYz12dWUoeSxvKSxDLmNvbXBsZXRlKCl9LCJjb21wbGV0ZSIpfSksbmkoeikuc3Vic2NyaWJlKHUpKX0pKGQpfX1mdW5jdGlvbiB2dWUocyxlKXtmb3IodmFyIHQ9W10sYT0yO2E8YXJndW1lbnRzLmxlbmd0aDthKyspdFthLTJdPWFyZ3VtZW50c1thXTtpZihlPT09ITApe3MoKTtyZXR1cm59aWYoZSE9PSExKXt2YXIgcj1uZXcgbnAoe25leHQ6aShmdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoKSxzKCl9LCJuZXh0Iil9KTtyZXR1cm4gbmkoZS5hcHBseSh2b2lkIDAsT3IoW10sT2kodCkpKSkuc3Vic2NyaWJlKHIpfX12YXIgeWVlPWcoKCk9PntMcygpO0FsKCk7ejcoKTtueSgpO3dyKCk7aSh4ZWUsInNoYXJlIik7aSh2dWUsImhhbmRsZVJlc2V0Iil9KTtmdW5jdGlvbiB3ZWUocyxlLHQpe3ZhciBhLHIsbixvLGw9ITE7cmV0dXJuIHMmJnR5cGVvZiBzPT0ib2JqZWN0Ij8oYT1zLmJ1ZmZlclNpemUsbz1hPT09dm9pZCAwPzEvMDphLHI9cy53aW5kb3dUaW1lLGU9cj09PXZvaWQgMD8xLzA6cixuPXMucmVmQ291bnQsbD1uPT09dm9pZCAwPyExOm4sdD1zLnNjaGVkdWxlcik6bz1zPz8xLzAseGVlKHtjb25uZWN0b3I6aShmdW5jdGlvbigpe3JldHVybiBuZXcgVDcobyxlLHQpfSwiY29ubmVjdG9yIikscmVzZXRPbkVycm9yOiEwLHJlc2V0T25Db21wbGV0ZTohMSxyZXNldE9uUmVmQ291bnRaZXJvOmx9KX12YXIgeHVlPWcoKCk9Pnt3ZGUoKTt5ZWUoKTtpKHdlZSwic2hhcmVSZXBsYXkiKX0pO3ZhciB5dWU9ZygoKT0+e30pO3ZhciB3dWU9ZygoKT0+e30pO3ZhciBrdWU9ZygoKT0+e30pO3ZhciBTdWU9ZygoKT0+e30pO3ZhciBfdWU9ZygoKT0+e30pO2Z1bmN0aW9uIGtlZSgpe2Zvcih2YXIgcz1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylzW2VdPWFyZ3VtZW50c1tlXTt2YXIgdD1HMihzKTtyZXR1cm4gWGEoZnVuY3Rpb24oYSxyKXsodD91ZWUocyxhLHQpOnVlZShzLGEpKS5zdWJzY3JpYmUocil9KX12YXIgTXVlPWcoKCk9PntRZGUoKTtMNygpO3dyKCk7aShrZWUsInN0YXJ0V2l0aCIpfSk7dmFyIHp1ZT1nKCgpPT57fSk7dmFyIEN1ZT1nKCgpPT57fSk7dmFyIFR1ZT1nKCgpPT57fSk7dmFyICR1ZT1nKCgpPT57fSk7ZnVuY3Rpb24gTjcocyl7cmV0dXJuIFhhKGZ1bmN0aW9uKGUsdCl7bmkocykuc3Vic2NyaWJlKEVhKHQsZnVuY3Rpb24oKXtyZXR1cm4gdC5jb21wbGV0ZSgpfSx5YykpLCF0LmNsb3NlZCYmZS5zdWJzY3JpYmUodCl9KX12YXIgRHVlPWcoKCk9Pnt3cigpO29vKCk7QWwoKTtPNCgpO2koTjcsInRha2VVbnRpbCIpfSk7dmFyIEx1ZT1nKCgpPT57fSk7dmFyIEV1ZT1nKCgpPT57fSk7ZnVuY3Rpb24gU2VlKHMsZSl7cmV0dXJuIFhhKGZ1bmN0aW9uKHQsYSl7dmFyIHI9ZT8/e30sbj1yLmxlYWRpbmcsbz1uPT09dm9pZCAwPyEwOm4sbD1yLnRyYWlsaW5nLHA9bD09PXZvaWQgMD8hMTpsLGQ9ITEsdT1udWxsLGM9bnVsbCxiPSExLHY9aShmdW5jdGlvbigpe2M/LnVuc3Vic2NyaWJlKCksYz1udWxsLHAmJihmKCksYiYmYS5jb21wbGV0ZSgpKX0sImVuZFRocm90dGxpbmciKSx4PWkoZnVuY3Rpb24oKXtjPW51bGwsYiYmYS5jb21wbGV0ZSgpfSwiY2xlYW51cFRocm90dGxpbmciKSxtPWkoZnVuY3Rpb24oeSl7cmV0dXJuIGM9bmkocyh5KSkuc3Vic2NyaWJlKEVhKGEsdix4KSl9LCJzdGFydFRocm90dGxlIiksZj1pKGZ1bmN0aW9uKCl7aWYoZCl7ZD0hMTt2YXIgeT11O3U9bnVsbCxhLm5leHQoeSksIWImJm0oeSl9fSwic2VuZCIpO3Quc3Vic2NyaWJlKEVhKGEsZnVuY3Rpb24oeSl7ZD0hMCx1PXksIShjJiYhYy5jbG9zZWQpJiYobz9mKCk6bSh5KSl9LGZ1bmN0aW9uKCl7Yj0hMCwhKHAmJmQmJmMmJiFjLmNsb3NlZCkmJmEuY29tcGxldGUoKX0pKX0pfXZhciBfZWU9ZygoKT0+e3dyKCk7b28oKTtBbCgpO2koU2VlLCJ0aHJvdHRsZSIpfSk7ZnVuY3Rpb24gTWVlKHMsZSx0KXtlPT09dm9pZCAwJiYoZT1mbCk7dmFyIGE9dnkocyxlKTtyZXR1cm4gU2VlKGZ1bmN0aW9uKCl7cmV0dXJuIGF9LHQpfXZhciBQdWU9ZygoKT0+e2MwKCk7X2VlKCk7cGVlKCk7aShNZWUsInRocm90dGxlVGltZSIpfSk7ZnVuY3Rpb24gRWR0KHMpe3JldHVybiBzPT09dm9pZCAwJiYocz1mbCksWGEoZnVuY3Rpb24oZSx0KXt2YXIgYT1zLm5vdygpO2Uuc3Vic2NyaWJlKEVhKHQsZnVuY3Rpb24ocil7dmFyIG49cy5ub3coKSxvPW4tYTthPW4sdC5uZXh0KG5ldyBMZHQocixvKSl9KSl9KX12YXIgTGR0LEl1ZT1nKCgpPT57YzAoKTt3cigpO29vKCk7aShFZHQsInRpbWVJbnRlcnZhbCIpO0xkdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBzKGUsdCl7dGhpcy52YWx1ZT1lLHRoaXMuaW50ZXJ2YWw9dH1yZXR1cm4gaShzLCJUaW1lSW50ZXJ2YWwiKSxzfSkoKX0pO3ZhciBBdWU9ZygoKT0+e30pO3ZhciBOdWU9ZygoKT0+e30pO3ZhciBSdWU9ZygoKT0+e30pO3ZhciBPdWU9ZygoKT0+e30pO3ZhciBGdWU9ZygoKT0+e30pO3ZhciBCdWU9ZygoKT0+e30pO3ZhciBIdWU9ZygoKT0+e30pO3ZhciBxdWU9ZygoKT0+e30pO3ZhciBqdWU9ZygoKT0+e30pO3ZhciBQZHQ9ZygoKT0+e30pO3ZhciBWdWU9ZygoKT0+e30pO3ZhciBSNz1nKCgpPT57eW4oKTtpMnQoKTtseSgpO24ydCgpO3o3KCk7bDJ0KCk7d2RlKCk7ZDJ0KCk7eDJ0KCk7YzAoKTtTMnQoKTtDMnQoKTskMnQoKTt6ZGUoKTtVMigpO255KCk7ajJ0KCk7aGRlKCk7TzQoKTtNNygpO1YydCgpO1cydCgpO0cydCgpO0sydCgpO1UydCgpO1kydCgpO3ZkZSgpO1oydCgpO3JlZSgpO3JkZSgpO0oydCgpO2VkdCgpO29kdCgpO1FkZSgpO2RkdCgpO2NkdCgpO1VKKCk7dWR0KCk7bXkoKTtoZHQoKTtmZHQoKTttZHQoKTtnZHQoKTtiZHQoKTt2ZHQoKTtlMGUoKTtVZGUoKTt5ZHQoKTt3ZHQoKTtrZHQoKTtTZHQoKTtfZHQoKTtHZGUoKTtwZWUoKTtNZHQoKTt6ZHQoKTtWZGUoKTtVSigpO2UwZSgpO0NkdCgpO2s3KCk7YTBlKCk7czBlKCk7aTBlKCk7cjBlKCk7bzBlKCk7bjBlKCk7bDBlKCk7YzBlKCk7aDBlKCk7cDBlKCk7ZjBlKCk7ZGVlKCk7bTBlKCk7ZzBlKCk7YjBlKCk7djBlKCk7eDBlKCk7eTBlKCk7dzBlKCk7azBlKCk7QzBlKCk7ejBlKCk7VDBlKCk7JDBlKCk7RDBlKCk7TDBlKCk7UDBlKCk7STBlKCk7QTBlKCk7TzBlKCk7UjBlKCk7TjBlKCk7RjBlKCk7dDBlKCk7QjBlKCk7SDBlKCk7cTBlKCk7ajBlKCk7VjBlKCk7XzBlKCk7VTBlKCk7RzBlKCk7Z3koKTtNMGUoKTtLMGUoKTtZMGUoKTtsZWUoKTtaMGUoKTtieSgpO1gwZSgpO1EwZSgpO0owZSgpO2V1ZSgpO3R1ZSgpO2h5KCk7YXVlKCk7c3VlKCk7aXVlKCk7cnVlKCk7b3VlKCk7bnVlKCk7bHVlKCk7Y3VlKCk7ZDBlKCk7ZHVlKCk7dXVlKCk7cHVlKCk7aHVlKCk7cUooKTtmdWUoKTttdWUoKTtndWUoKTtidWUoKTt5ZWUoKTt4dWUoKTt5dWUoKTt3dWUoKTtrdWUoKTtTdWUoKTtfdWUoKTtNdWUoKTtmeSgpO0N1ZSgpO3p1ZSgpO1R1ZSgpOyR1ZSgpO1MwZSgpO1cwZSgpO0R1ZSgpO0x1ZSgpO0V1ZSgpO19lZSgpO1B1ZSgpO0UwZSgpO0l1ZSgpO3JlZSgpO0F1ZSgpO051ZSgpO3UwZSgpO1J1ZSgpO091ZSgpO0Z1ZSgpO0J1ZSgpO0h1ZSgpO3F1ZSgpO2p1ZSgpO1Z1ZSgpfSk7dmFyIElkdD1nKCgpPT57fSk7dmFyIEFkdD1nKCgpPT57fSk7dmFyIE5kdD1nKCgpPT57YTBlKCk7czBlKCk7aTBlKCk7cjBlKCk7bzBlKCk7bjBlKCk7bDBlKCk7YzBlKCk7aDBlKCk7cDBlKCk7VGR0KCk7ZjBlKCk7JGR0KCk7ZGVlKCk7bTBlKCk7ZzBlKCk7YjBlKCk7djBlKCk7eDBlKCk7eTBlKCk7dzBlKCk7azBlKCk7QzBlKCk7ejBlKCk7VDBlKCk7JDBlKCk7RDBlKCk7TDBlKCk7UDBlKCk7STBlKCk7QTBlKCk7TzBlKCk7UjBlKCk7TjBlKCk7RjBlKCk7dDBlKCk7QjBlKCk7SDBlKCk7cTBlKCk7ajBlKCk7VjBlKCk7XzBlKCk7VTBlKCk7RzBlKCk7Z3koKTtNMGUoKTtLMGUoKTtZMGUoKTtEZHQoKTtsZWUoKTtaMGUoKTtieSgpO1gwZSgpO1EwZSgpO0owZSgpO2V1ZSgpO3R1ZSgpO2h5KCk7YXVlKCk7c3VlKCk7SWR0KCk7aXVlKCk7cnVlKCk7b3VlKCk7bnVlKCk7bHVlKCk7QWR0KCk7Y3VlKCk7ZDBlKCk7ZHVlKCk7dXVlKCk7cHVlKCk7aHVlKCk7cUooKTtmdWUoKTttdWUoKTtndWUoKTtidWUoKTt5ZWUoKTt4dWUoKTt5dWUoKTt3dWUoKTtrdWUoKTtTdWUoKTtfdWUoKTtNdWUoKTtmeSgpO0N1ZSgpO3p1ZSgpO1R1ZSgpOyR1ZSgpO1MwZSgpO1cwZSgpO0R1ZSgpO0x1ZSgpO0V1ZSgpO19lZSgpO1B1ZSgpO0UwZSgpO0l1ZSgpO3JlZSgpO0F1ZSgpO051ZSgpO3UwZSgpO1J1ZSgpO091ZSgpO0Z1ZSgpO0J1ZSgpO0h1ZSgpO3F1ZSgpO1BkdCgpO2p1ZSgpO1Z1ZSgpfSk7dmFyIE83PXt9O3l0KE83LHtPYnNlcnZhYmxlOigpPT5yYSxSZXBsYXlTdWJqZWN0OigpPT5UNyxTdWJqZWN0OigpPT5VbyxTdWJzY3JpcHRpb246KCk9PnRyLGZyb206KCk9PksyLGZyb21FdmVudDooKT0+VjQsb2Y6KCk9PnE0LG9wczooKT0+Y0xhfSk7dmFyIGNMYSx6ZWU9ZygoKT0+e1I3KCk7TmR0KCk7Y0xhPXtidWZmZXI6ZmVlLGJ1ZmZlckNvdW50Om1lZSxidWZmZXJUaW1lOmdlZSxkZWJvdW5jZTpiZWUsZGVib3VuY2VUaW1lOnZlZSxmaWx0ZXI6aGVlLG1hcDpZMixzdGFydFdpdGg6a2VlLHRha2VVbnRpbDpONyx0aHJvdHRsZVRpbWU6TWVlfX0pO3ZhciBVdWUsUmR0PWcoKCk9PntOSigpO3plZSgpO1V1ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJPYnNlcnZhYmxlbWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheT1uZXcgQXJyYXksdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheT1uZXcgQXJyYXl9Z2V0U3ViamVjdEZvckVtaXR0ZXJFdmVudChlLHQpe2xldCBhPXRoaXMub2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5LmZpbmQocj0+ci5ldmVudFJlZj09PWUmJnIuZXZlbnQ9PT10KTtpZihhKXJldHVybiBhLnN1YmplY3Q7e2xldCByPVY0KGUsdCksbj1uZXcgVW87ci5zdWJzY3JpYmUobik7bGV0IG89e3N1YmplY3Q6bixldmVudFJlZjplLGV2ZW50OnR9O3JldHVybiB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG8pLG8uc3ViamVjdH19Z2V0U3ViamVjdEZvckV2ZW50VGFyZ2V0KGUsdCl7bGV0IGE9dGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5maW5kKHI9PnIuZXZlbnRSZWY9PT1lJiZyLmV2ZW50PT09dCk7aWYoYSlyZXR1cm4gYS5zdWJqZWN0O3tsZXQgbj17c3ViamVjdDpuZXcgVW8sZXZlbnRSZWY6ZSxldmVudDp0fTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5wdXNoKG4pLG4uc3ViamVjdH19fX0pO3ZhciBXdWUsT2R0PWcoKCk9PntOSigpO3plZSgpO1d1ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJPYnNlcnZhYmxlSW50YWtlIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnM9e25leHQ6aShlPT57fSwibmV4dCIpLGNvbXBsZXRlOmkoZT0+e30sImNvbXBsZXRlIil9LHRoaXMuZ2VuZXJhdG9yPW51bGwsdGhpcy5idWZmZXJlZD0hMSx0aGlzLnBheWxvYWRCdWZmZXI9W10sdGhpcy5vYnNlcnZhYmxlPW5ldyByYShlPT57dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQ9KC4uLnQpPT5lLm5leHQodCksdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlPSgpPT4odGhpcy5jb21wbGV0ZWREZWZmZXJlZC5yZXNvbHZlKCksZS5jb21wbGV0ZSgpKX0pLHRoaXMuY29tcGxldGVkRGVmZmVyZWQ9bXQuZGVmZXIoKSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmZlcmVkLnByb21pc2V9c2V0T2JzZXJ2YWJsZShlKXt0aGlzLm9ic2VydmFibGU9ZX1wdXNoKGUpe3RoaXMuYnVmZmVyZWQ/dGhpcy5wYXlsb2FkQnVmZmVyLnB1c2goZSk6dGhpcy5pbnRlcm5hbFB1c2goZSl9cHVzaE1hbnkoZSl7Zm9yKGxldCB0IG9mIGUpdGhpcy5wdXNoKHQpfXNldEdlbmVyYXRvcihlKXt0aGlzLmdlbmVyYXRvcj1lfW1ha2VCdWZmZXJlZCgpe3RoaXMuYnVmZmVyZWQ9ITB9c3Vic2NyaWJlKC4uLmUpe3JldHVybiB0aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKC4uLmUpfXJlcXVlc3QoZSl7aWYoZSE9PTApZm9yKGxldCB0PTA7dCE9PWU7dCsrKWlmKHRoaXMucGF5bG9hZEJ1ZmZlci5sZW5ndGg+MCl0aGlzLmludGVybmFsUHVzaCh0aGlzLnBheWxvYWRCdWZmZXIuc2hpZnQoKSk7ZWxzZXtsZXQgYT10aGlzLmdlbmVyYXRvci5uZXh0KCk7dGhpcy5pbnRlcm5hbFB1c2goYS52YWx1ZSl9fXNpZ25hbENvbXBsZXRlKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlKCl9aW50ZXJuYWxQdXNoKGUpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0KGUpfX19KTtmdW5jdGlvbiBkTGEocyl7cmV0dXJuIG5ldyByYShlPT57bGV0IHQ9aSgoKT0+cy5wYXVzZSgpLCJwYXVzZVN0cmVhbSIpLGE9aSgoKT0+cHJvY2Vzcy5uZXh0VGljaygoKT0+cy5yZXN1bWUoKSksInJlc3VtZVN0cmVhbSIpLHI9aShuPT57dCgpLGUubmV4dChuKSxhKCl9LCJvbkRhdGEiKTtyZXR1cm4gcy5vbigiZGF0YSIscikscy5vbigiZXJyb3IiLG49PmUuZXJyb3IobikpLHMub24oImVuZCIsKCk9PmUuY29tcGxldGUoKSkscy5vbigiY2xvc2UiLCgpPT5lLmNvbXBsZXRlKCkpLCgpPT57cy5yZW1vdmVMaXN0ZW5lcigiZGF0YSIscikscy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGUuZXJyb3IpLHMucmVtb3ZlTGlzdGVuZXIoImVuZCIsZS5jb21wbGV0ZSkscy5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGUuY29tcGxldGUpfX0pfXZhciBGZHQ9ZygoKT0+e1I3KCk7aShkTGEsImZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlIil9KTt2YXIgbHM9e307eXQobHMse09ic2VydmFibGVJbnRha2U6KCk9Pld1ZSxPYnNlcnZhYmxlbWFwOigpPT5VdWUsZnJvbVN0cmVhbVdpdGhCYWNrcHJlc3N1cmU6KCk9PmRMYSxyeGpzOigpPT5PN30pO3ZhciBaMj1nKCgpPT57TkooKTtSZHQoKTtPZHQoKTtGZHQoKTt6ZWUoKX0pO2Z1bmN0aW9uIEwocyl7cmV0dXJuKGUsdCk9PnR5cGVvZiB0PT0ib2JqZWN0Ij9CZHQocyxlLHQpOigoYSxyLG4pPT57bGV0IG89ci5oYXNPd25Qcm9wZXJ0eShuKTtyZXR1cm4gci5jb25zdHJ1Y3Rvci5jcmVhdGVQcm9wZXJ0eShuLGEpLG8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLG4pOnZvaWQgMH0pKHMsZSx0KX12YXIgdUxhLEJkdCxDZWU9ZygoKT0+e0p4KCk7dUxhPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOng3LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpReH0sQmR0PWkoKHM9dUxhLGUsdCk9PntsZXR7a2luZDphLG1ldGFkYXRhOnJ9PXQsbj1nbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHIpO2lmKG49PT12b2lkIDAmJmdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5zZXQocixuPW5ldyBNYXApLGE9PT0ic2V0dGVyIiYmKChzPU9iamVjdC5jcmVhdGUocykpLndyYXBwZWQ9ITApLG4uc2V0KHQubmFtZSxzKSxhPT09ImFjY2Vzc29yIil7bGV0e25hbWU6b309dDtyZXR1cm57c2V0KGwpe2xldCBwPWUuZ2V0LmNhbGwodGhpcyk7ZS5zZXQuY2FsbCh0aGlzLGwpLHRoaXMucmVxdWVzdFVwZGF0ZShvLHAscywhMCxsKX0saW5pdChsKXtyZXR1cm4gbCE9PXZvaWQgMCYmdGhpcy5DKG8sdm9pZCAwLHMsbCksbH19fWlmKGE9PT0ic2V0dGVyIil7bGV0e25hbWU6b309dDtyZXR1cm4gZnVuY3Rpb24obCl7bGV0IHA9dGhpc1tvXTtlLmNhbGwodGhpcyxsKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxwLHMsITAsbCl9fXRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICIrYSl9LCJyIik7aShMLCJuIil9KTt2YXIgSGR0PWcoKCk9PntDZWUoKX0pO3ZhciBxZHQ9ZygoKT0+e30pO3ZhciBYdD17fTt5dChYdCx7VGltZW91dDooKT0+VGVlLGRlbGF5Rm9yOigpPT5qZHQsZGVsYXlGb3JSYW5kb206KCk9PnBMYX0pO3ZhciBqZHQscExhLFRlZSxkMD1nKCgpPT57aW8oKTtqZHQ9aShhc3luYyhzLGUsdD0hMSk9Pihhd2FpdCBuZXcgVGVlKHMsbnVsbCx0KS5wcm9taXNlLGUpLCJkZWxheUZvciIpLHBMYT1pKGFzeW5jKHMsZSx0LGE9ITEpPT4oYXdhaXQgamR0KE1hdGgucmFuZG9tKCkqKGUtcykrcyxudWxsLGEpLHQpLCJkZWxheUZvclJhbmRvbSIpLFRlZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaW1lb3V0Iil9Y29uc3RydWN0b3IoZSx0LGE9ITEpe3RoaXMuX2NhbmNlbGxlZD0hMSx0aGlzLnRpbWVvdXRJbk1pbGxpcz1lLHRoaXMuX2RlZmVycmVkPXJwKCksdGhpcy5wcm9taXNlPXRoaXMuX2RlZmVycmVkLnByb21pc2UsdGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fY2FuY2VsbGVkfHx0aGlzLl9kZWZlcnJlZC5yZXNvbHZlKHQpfSxlKSx0aGlzLnN0YXJ0ZWQ9RGF0ZS5ub3coKSxhJiZ0aGlzLm1ha2VVbnJlZmVkKCl9bWFrZVVucmVmZWQoKXt0aGlzLl90aW1lb3V0LnVucmVmPy4oKX1jYW5jZWwoKXt0aGlzLl9jYW5jZWxsZWQ9ITAsY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpfWdldFRpbWVMZWZ0KCl7bGV0IGU9dGhpcy5zdGFydGVkK3RoaXMudGltZW91dEluTWlsbGlzLURhdGUubm93KCk7cmV0dXJuIGU+MD9lOjB9fX0pO3ZhciB3Yz17fTt2YXIgVTQ9ZygoKT0+e30pO2Z1bmN0aW9uIFc0KHMpe2lmKHR5cGVvZiBzIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIHN0cmluZyIpO3JldHVybiBzLnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrKj8uXS9nLCJcXCQmIikucmVwbGFjZSgvLS9nLCJcXHgyZCIpfXZhciAkZWU9ZygoKT0+e2koVzQsImVzY2FwZVN0cmluZ1JlZ2V4cCIpfSk7dmFyIHh5PXt9O3l0KHh5LHtpc01hdGNoOigpPT5tTGEsbWF0Y2hlcjooKT0+ZkxhfSk7ZnVuY3Rpb24gZkxhKHMsZSx0KXtyZXR1cm4gVWR0KHMsZSx0LCExKX1mdW5jdGlvbiBtTGEocyxlLHQpe3JldHVybiBVZHQocyxlLHQsITApLmxlbmd0aD4wfXZhciBHdWUsVmR0LGhMYSxVZHQsV2R0PWcoKCk9PnskZWUoKTtHdWU9bmV3IE1hcCxWZHQ9aSgocyxlKT0+e2lmKCFBcnJheS5pc0FycmF5KHMpKXN3aXRjaCh0eXBlb2Ygcyl7Y2FzZSJzdHJpbmciOnM9W3NdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpzPVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2Ygc30nYCl9cmV0dXJuIHMuZmlsdGVyKHQ9PntpZih0eXBlb2YgdCE9InN0cmluZyIpe2lmKHR5cGVvZiB0PiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHtlfScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2YgdH0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LCJzYW5pdGl6ZUFycmF5IiksaExhPWkoKHMsZSk9PntlPXtjYXNlU2Vuc2l0aXZlOiExLC4uLmV9O2xldCB0PXMrSlNPTi5zdHJpbmdpZnkoZSk7aWYoR3VlLmhhcyh0KSlyZXR1cm4gR3VlLmdldCh0KTtsZXQgYT1zWzBdPT09IiEiO2EmJihzPXMuc2xpY2UoMSkpLHM9VzQocykucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgcj1uZXcgUmVnRXhwKGBeJHtzfSRgLGUuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiByLm5lZ2F0ZWQ9YSxHdWUuc2V0KHQscikscn0sIm1ha2VSZWdleHAiKSxVZHQ9aSgocyxlLHQsYSk9PntpZihzPVZkdChzLCJpbnB1dHMiKSxlPVZkdChlLCJwYXR0ZXJucyIpLGUubGVuZ3RoPT09MClyZXR1cm5bXTtlPWUubWFwKG89PmhMYShvLHQpKTtsZXR7YWxsUGF0dGVybnM6cn09dHx8e30sbj1bXTtmb3IobGV0IG8gb2Ygcyl7bGV0IGwscD1bLi4uZV0uZmlsbCghMSk7Zm9yKGxldFtkLHVdb2YgZS5lbnRyaWVzKCkpaWYodS50ZXN0KG8pJiYocFtkXT0hMCxsPSF1Lm5lZ2F0ZWQsIWwpKWJyZWFrO2lmKCEobD09PSExfHxsPT09dm9pZCAwJiZlLnNvbWUoZD0+IWQubmVnYXRlZCl8fHImJnAuc29tZSgoZCx1KT0+IWQmJiFlW3VdLm5lZ2F0ZWQpKSYmKG4ucHVzaChvKSxhKSlicmVha31yZXR1cm4gbn0sImJhc2VNYXRjaGVyIik7aShmTGEsIm1hdGNoZXIiKTtpKG1MYSwiaXNNYXRjaCIpfSk7dmFyIEdkdD1nKCgpPT57V2R0KCl9KTt2YXIgeXk9e307eXQoeXkse1NtYXJ0TWF0Y2g6KCk9Pkt1ZX0pO3ZhciBLdWUsS2R0PWcoKCk9PntHZHQoKTtLdWU9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRNYXRjaCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMud2lsZGNhcmQ9ZX1tYXRjaChlKXtyZXR1cm4geHkuaXNNYXRjaChlLHRoaXMud2lsZGNhcmQpfX19KTt2YXIgX3k9e307eXQoX3kse0Nyb246KCk9PmUwdCxDcm9uRGF0ZTooKT0+QnIsQ3JvblBhdHRlcm46KCk9PkRlZSxzY2hlZHVsZWRKb2JzOigpPT5GN30pO2Z1bmN0aW9uIHd5KHMpe3JldHVybiBEYXRlLlVUQyhzLnkscy5tLTEscy5kLHMuaCxzLmkscy5zKX1mdW5jdGlvbiBZdWUocyxlKXtyZXR1cm4gcy55PT09ZS55JiZzLm09PT1lLm0mJnMuZD09PWUuZCYmcy5oPT09ZS5oJiZzLmk9PT1lLmkmJnMucz09PWUuc31mdW5jdGlvbiBiTGEocyxlKXtsZXQgdD1uZXcgRGF0ZShEYXRlLnBhcnNlKHMpKTtpZihpc05hTih0KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSVNPODYwMSBwYXNzZWQgdG8gdGltZXpvbmUgcGFyc2VyLiIpO2xldCBhPXMuc3Vic3RyaW5nKDkpO3JldHVybiBhLmluY2x1ZGVzKCJaIil8fGEuaW5jbHVkZXMoIisiKXx8YS5pbmNsdWRlcygiLSIpP1p1ZSh0LmdldFVUQ0Z1bGxZZWFyKCksdC5nZXRVVENNb250aCgpKzEsdC5nZXRVVENEYXRlKCksdC5nZXRVVENIb3VycygpLHQuZ2V0VVRDTWludXRlcygpLHQuZ2V0VVRDU2Vjb25kcygpLCJFdGMvVVRDIik6WnVlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCkrMSx0LmdldERhdGUoKSx0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksZSl9ZnVuY3Rpb24gWWR0KHMsZSx0KXtyZXR1cm4gWmR0KGJMYShzLGUpLHQpfWZ1bmN0aW9uIFpkdChzLGUpe2xldCB0PW5ldyBEYXRlKHd5KHMpKSxhPWt5KHQscy50eikscj13eShzKSxuPXd5KGEpLG89ci1uLGw9bmV3IERhdGUodC5nZXRUaW1lKCkrbykscD1reShsLHMudHopO2lmKFl1ZShwLHMpKXtsZXQgYz1uZXcgRGF0ZShsLmdldFRpbWUoKS0zNmU1KSxiPWt5KGMscy50eik7cmV0dXJuIFl1ZShiLHMpP2M6bH1sZXQgZD1uZXcgRGF0ZShsLmdldFRpbWUoKSt3eShzKS13eShwKSksdT1reShkLHMudHopO2lmKFl1ZSh1LHMpKXJldHVybiBkO2lmKGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIGwuZ2V0VGltZSgpPmQuZ2V0VGltZSgpP2w6ZH1mdW5jdGlvbiBreShzLGUpe2xldCB0LGE7dHJ5e3Q9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6ZSx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksYT10LmZvcm1hdFRvUGFydHMocyl9Y2F0Y2gobil7bGV0IG89biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7ZX0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtvfWApfWxldCByPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgbiBvZiBhKShuLnR5cGU9PT0ieWVhciJ8fG4udHlwZT09PSJtb250aCJ8fG4udHlwZT09PSJkYXkifHxuLnR5cGU9PT0iaG91ciJ8fG4udHlwZT09PSJtaW51dGUifHxuLnR5cGU9PT0ic2Vjb25kIikmJihyW24udHlwZV09cGFyc2VJbnQobi52YWx1ZSwxMCkpO2lmKGlzTmFOKHIueWVhcil8fGlzTmFOKHIubW9udGgpfHxpc05hTihyLmRheSl8fGlzTmFOKHIuaG91cil8fGlzTmFOKHIubWludXRlKXx8aXNOYU4oci5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHtlfScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShyKX1gKTtyZXR1cm4gci5ob3VyPT09MjQmJihyLmhvdXI9MCkse3k6ci55ZWFyLG06ci5tb250aCxkOnIuZGF5LGg6ci5ob3VyLGk6ci5taW51dGUsczpyLnNlY29uZCx0ejplfX1mdW5jdGlvbiBadWUocyxlLHQsYSxyLG4sbyl7cmV0dXJue3k6cyxtOmUsZDp0LGg6YSxpOnIsczpuLHR6Om99fWZ1bmN0aW9uIHZMYShzKXtpZihzPT09dm9pZCAwJiYocz17fSksZGVsZXRlIHMubmFtZSxzLmxlZ2FjeU1vZGUhPT12b2lkIDAmJnMuZG9tQW5kRG93PT09dm9pZCAwP3MuZG9tQW5kRG93PSFzLmxlZ2FjeU1vZGU6cy5kb21BbmREb3c9PT12b2lkIDAmJihzLmRvbUFuZERvdz0hMSkscy5sZWdhY3lNb2RlPSFzLmRvbUFuZERvdyxzLnBhdXNlZD1zLnBhdXNlZD09PXZvaWQgMD8hMTpzLnBhdXNlZCxzLm1heFJ1bnM9cy5tYXhSdW5zPT09dm9pZCAwPzEvMDpzLm1heFJ1bnMscy5jYXRjaD1zLmNhdGNoPT09dm9pZCAwPyExOnMuY2F0Y2gscy5pbnRlcnZhbD1zLmludGVydmFsPT09dm9pZCAwPzA6cGFyc2VJbnQocy5pbnRlcnZhbC50b1N0cmluZygpLDEwKSxzLnV0Y09mZnNldD1zLnV0Y09mZnNldD09PXZvaWQgMD92b2lkIDA6cGFyc2VJbnQocy51dGNPZmZzZXQudG9TdHJpbmcoKSwxMCkscy5kYXlPZmZzZXQ9cy5kYXlPZmZzZXQ9PT12b2lkIDA/MDpwYXJzZUludChzLmRheU9mZnNldC50b1N0cmluZygpLDEwKSxzLnVucmVmPXMudW5yZWY9PT12b2lkIDA/ITE6cy51bnJlZixzLm1vZGU9cy5tb2RlPT09dm9pZCAwPyJhdXRvIjpzLm1vZGUscy5hbHRlcm5hdGl2ZVdlZWtkYXlzPXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz09PXZvaWQgMD8hMTpzLmFsdGVybmF0aXZlV2Vla2RheXMscy5zbG9wcHlSYW5nZXM9cy5zbG9wcHlSYW5nZXM9PT12b2lkIDA/ITE6cy5zbG9wcHlSYW5nZXMsIVsiYXV0byIsIjUtcGFydCIsIjYtcGFydCIsIjctcGFydCIsIjUtb3ItNi1wYXJ0cyIsIjYtb3ItNy1wYXJ0cyJdLmluY2x1ZGVzKHMubW9kZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogbW9kZSBtdXN0IGJlIG9uZSBvZiAnYXV0bycsICc1LXBhcnQnLCAnNi1wYXJ0JywgJzctcGFydCcsICc1LW9yLTYtcGFydHMnLCBvciAnNi1vci03LXBhcnRzJy4iKTtpZihzLnN0YXJ0QXQmJihzLnN0YXJ0QXQ9bmV3IEJyKHMuc3RhcnRBdCxzLnRpbWV6b25lKSkscy5zdG9wQXQmJihzLnN0b3BBdD1uZXcgQnIocy5zdG9wQXQscy50aW1lem9uZSkpLHMuaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTihzLmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgaXMgbm90IGEgbnVtYmVyIik7aWYocy5pbnRlcnZhbDwwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlIil9aWYocy51dGNPZmZzZXQhPT12b2lkIDApe2lmKGlzTmFOKHMudXRjT2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgdXRjT2Zmc2V0LCBzaG91bGQgYmUgbnVtYmVyIHJlcHJlc2VudGluZyBtaW51dGVzIG9mZnNldCBmcm9tIFVUQy4iKTtpZihzLnV0Y09mZnNldDwtODcwfHxzLnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogdXRjT2Zmc2V0IG91dCBvZiBib3VuZHMuIik7aWYocy51dGNPZmZzZXQhPT12b2lkIDAmJnMudGltZXpvbmUpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC4iKX1pZihzLnVucmVmIT09ITAmJnMudW5yZWYhPT0hMSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBVbnJlZiBzaG91bGQgYmUgZWl0aGVyIHRydWUsIGZhbHNlIG9yIHVuZGVmaW5lZChmYWxzZSkuIik7aWYocy5kYXlPZmZzZXQhPT12b2lkIDAmJnMuZGF5T2Zmc2V0IT09MCYmaXNOYU4ocy5kYXlPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciBkYXlPZmZzZXQsIHNob3VsZCBiZSBhIG51bWJlciByZXByZXNlbnRpbmcgZGF5cyB0byBvZmZzZXQuIik7cmV0dXJuIHN9ZnVuY3Rpb24gU3kocyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiBzPT0iZnVuY3Rpb24ifHxzIGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24geExhKHMpe3JldHVybiBTeShzKX1mdW5jdGlvbiB5TGEocyl7dHlwZW9mIERlbm88InUiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPCJ1Ij9EZW5vLnVucmVmVGltZXIocyk6cyYmdHlwZW9mIHMudW5yZWY8InUiJiZzLnVucmVmKCl9dmFyIFhkdCxEZWUsWHVlLGxpLEJyLFFkdCxGNyxlMHQsdDB0PWcoKCk9PntpKHd5LCJUIik7aShZdWUsIkQiKTtpKGJMYSwiQSIpO2koWWR0LCJ2Iik7aShaZHQsImsiKTtpKGt5LCJnIik7aShadWUsImIiKTtYZHQ9WzEsMiw0LDgsMTZdLERlZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDIil9cGF0dGVybjt0aW1lem9uZTttb2RlO2FsdGVybmF0aXZlV2Vla2RheXM7c2xvcHB5UmFuZ2VzO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7ZGF5T2ZXZWVrO3llYXI7bGFzdERheU9mTW9udGg7bGFzdFdlZWtkYXk7bmVhcmVzdFdlZWtkYXlzO3N0YXJET007c3RhckRPVztzdGFyWWVhcjt1c2VBbmRMb2dpYztjb25zdHJ1Y3RvcihzLGUsdCl7dGhpcy5wYXR0ZXJuPXMsdGhpcy50aW1lem9uZT1lLHRoaXMubW9kZT10Py5tb2RlPz8iYXV0byIsdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPXQ/LmFsdGVybmF0aXZlV2Vla2RheXM/PyExLHRoaXMuc2xvcHB5UmFuZ2VzPXQ/LnNsb3BweVJhbmdlcz8/ITEsdGhpcy5zZWNvbmQ9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5taW51dGU9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5ob3VyPUFycmF5KDI0KS5maWxsKDApLHRoaXMuZGF5PUFycmF5KDMxKS5maWxsKDApLHRoaXMubW9udGg9QXJyYXkoMTIpLmZpbGwoMCksdGhpcy5kYXlPZldlZWs9QXJyYXkoNykuZmlsbCgwKSx0aGlzLnllYXI9QXJyYXkoMWU0KS5maWxsKDApLHRoaXMubGFzdERheU9mTW9udGg9ITEsdGhpcy5sYXN0V2Vla2RheT0hMSx0aGlzLm5lYXJlc3RXZWVrZGF5cz1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLnN0YXJET009ITEsdGhpcy5zdGFyRE9XPSExLHRoaXMuc3RhclllYXI9ITEsdGhpcy51c2VBbmRMb2dpYz0hMSx0aGlzLnBhcnNlKCl9cGFyc2UoKXtpZighKHR5cGVvZiB0aGlzLnBhdHRlcm49PSJzdHJpbmcifHx0aGlzLnBhdHRlcm4gaW5zdGFuY2VvZiBTdHJpbmcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBQYXR0ZXJuIGhhcyB0byBiZSBvZiB0eXBlIHN0cmluZy4iKTt0aGlzLnBhdHRlcm4uaW5kZXhPZigiQCIpPj0wJiYodGhpcy5wYXR0ZXJuPXRoaXMuaGFuZGxlTmlja25hbWVzKHRoaXMucGF0dGVybikudHJpbSgpKTtsZXQgcz10aGlzLnBhdHRlcm4ubWF0Y2goL1xTKy9nKXx8WyIiXSxlPXMubGVuZ3RoO2lmKHMubGVuZ3RoPDV8fHMubGVuZ3RoPjcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGludmFsaWQgY29uZmlndXJhdGlvbiBmb3JtYXQgKCciK3RoaXMucGF0dGVybisiJyksIGV4YWN0bHkgZml2ZSwgc2l4LCBvciBzZXZlbiBzcGFjZSBzZXBhcmF0ZWQgcGFydHMgYXJlIHJlcXVpcmVkLiIpO2lmKHRoaXMubW9kZSE9PSJhdXRvIil7bGV0IGE7c3dpdGNoKHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmE9NTticmVhaztjYXNlIjYtcGFydCI6YT02O2JyZWFrO2Nhc2UiNy1wYXJ0IjphPTc7YnJlYWs7Y2FzZSI1LW9yLTYtcGFydHMiOmE9WzUsNl07YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmE9WzYsN107YnJlYWs7ZGVmYXVsdDphPTB9aWYoIShBcnJheS5pc0FycmF5KGEpP2EuaW5jbHVkZXMoZSk6ZT09PWEpKXtsZXQgcj1BcnJheS5pc0FycmF5KGEpP2Euam9pbigiIG9yICIpOmEudG9TdHJpbmcoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbW9kZSAnJHt0aGlzLm1vZGV9JyByZXF1aXJlcyBleGFjdGx5ICR7cn0gcGFydHMsIGJ1dCBwYXR0ZXJuICcke3RoaXMucGF0dGVybn0nIGhhcyAke2V9IHBhcnRzLmApfX1pZihzLmxlbmd0aD09PTUmJnMudW5zaGlmdCgiMCIpLHMubGVuZ3RoPT09NiYmcy5wdXNoKCIqIiksc1szXS50b1VwcGVyQ2FzZSgpPT09IkxXIj8odGhpcy5sYXN0V2Vla2RheT0hMCxzWzNdPSIiKTpzWzNdLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTCIpPj0wJiYoc1szXT1zWzNdLnJlcGxhY2UoL0wvZ2ksIiIpLHRoaXMubGFzdERheU9mTW9udGg9ITApLHNbM109PSIqIiYmKHRoaXMuc3RhckRPTT0hMCksc1s2XT09IioiJiYodGhpcy5zdGFyWWVhcj0hMCksc1s0XS5sZW5ndGg+PTMmJihzWzRdPXRoaXMucmVwbGFjZUFscGhhTW9udGhzKHNbNF0pKSxzWzVdLmxlbmd0aD49MyYmKHNbNV09dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzP3RoaXMucmVwbGFjZUFscGhhRGF5c1F1YXJ0eihzWzVdKTp0aGlzLnJlcGxhY2VBbHBoYURheXMoc1s1XSkpLHNbNV0uc3RhcnRzV2l0aCgiKyIpJiYodGhpcy51c2VBbmRMb2dpYz0hMCxzWzVdPXNbNV0uc3Vic3RyaW5nKDEpLHNbNV09PT0iIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IERheS1vZi13ZWVrIGZpZWxkIGNhbm5vdCBiZSBlbXB0eSBhZnRlciAnKycgbW9kaWZpZXIuIik7c3dpdGNoKHNbNV09PSIqIiYmKHRoaXMuc3RhckRPVz0hMCksdGhpcy5wYXR0ZXJuLmluZGV4T2YoIj8iKT49MCYmKHNbMF09c1swXS5yZXBsYWNlKC9cPy9nLCIqIiksc1sxXT1zWzFdLnJlcGxhY2UoL1w/L2csIioiKSxzWzJdPXNbMl0ucmVwbGFjZSgvXD8vZywiKiIpLHNbM109c1szXS5yZXBsYWNlKC9cPy9nLCIqIiksc1s0XT1zWzRdLnJlcGxhY2UoL1w/L2csIioiKSxzWzVdPXNbNV0ucmVwbGFjZSgvXD8vZywiKiIpLHNbNl0mJihzWzZdPXNbNl0ucmVwbGFjZSgvXD8vZywiKiIpKSksdGhpcy5tb2RlKXtjYXNlIjUtcGFydCI6c1swXT0iMCIsc1s2XT0iKiI7YnJlYWs7Y2FzZSI2LXBhcnQiOnNbNl09IioiO2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjpzWzZdPSIqIjticmVhaztjYXNlIjYtb3ItNy1wYXJ0cyI6YnJlYWs7Y2FzZSI3LXBhcnQiOmNhc2UiYXV0byI6YnJlYWt9dGhpcy50aHJvd0F0SWxsZWdhbENoYXJhY3RlcnMocyksdGhpcy5wYXJ0VG9BcnJheSgic2Vjb25kIixzWzBdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgibWludXRlIixzWzFdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgiaG91ciIsc1syXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImRheSIsc1szXSwtMSwxKSx0aGlzLnBhcnRUb0FycmF5KCJtb250aCIsc1s0XSwtMSwxKTtsZXQgdD10aGlzLmFsdGVybmF0aXZlV2Vla2RheXM/LTE6MDt0aGlzLnBhcnRUb0FycmF5KCJkYXlPZldlZWsiLHNbNV0sdCw2MyksdGhpcy5wYXJ0VG9BcnJheSgieWVhciIsc1s2XSwwLDEpLCF0aGlzLmFsdGVybmF0aXZlV2Vla2RheXMmJnRoaXMuZGF5T2ZXZWVrWzddJiYodGhpcy5kYXlPZldlZWtbMF09dGhpcy5kYXlPZldlZWtbN10pfXBhcnRUb0FycmF5KHMsZSx0LGEpe2xldCByPXRoaXNbc10sbj1zPT09ImRheSImJnRoaXMubGFzdERheU9mTW9udGgsbz1zPT09ImRheSImJnRoaXMubGFzdFdlZWtkYXk7aWYoZT09PSIiJiYhbiYmIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitzKyIgKCIrZSsiKSBpcyBlbXB0eSwgY2hlY2sgZm9yIHRyYWlsaW5nIHNwYWNlcy4iKTtpZihlPT09IioiKXJldHVybiByLmZpbGwoYSk7bGV0IGw9ZS5zcGxpdCgiLCIpO2lmKGwubGVuZ3RoPjEpZm9yKGxldCBwPTA7cDxsLmxlbmd0aDtwKyspdGhpcy5wYXJ0VG9BcnJheShzLGxbcF0sdCxhKTtlbHNlIGUuaW5kZXhPZigiLSIpIT09LTEmJmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVSYW5nZVdpdGhTdGVwcGluZyhlLHMsdCxhKTplLmluZGV4T2YoIi0iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2UoZSxzLHQsYSk6ZS5pbmRleE9mKCIvIikhPT0tMT90aGlzLmhhbmRsZVN0ZXBwaW5nKGUscyx0LGEpOmUhPT0iIiYmdGhpcy5oYW5kbGVOdW1iZXIoZSxzLHQsYSl9dGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHMpe2ZvcihsZXQgZT0wO2U8cy5sZW5ndGg7ZSsrKWlmKChlPT09Mz8vW14vKjAtOSxcLVd3TGxdKy86ZT09PTU/L1teLyowLTksXC0jTGxdKy86L1teLyowLTksXC1dKy8pLnRlc3Qoc1tlXSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitlKyIgKCIrc1tlXSsiKSBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMuIil9aGFuZGxlTnVtYmVyKHMsZSx0LGEpe2xldCByPXRoaXMuZXh0cmFjdE50aChzLGUpLG49cy50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIik7aWYoZSE9PSJkYXkiJiZuKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBOZWFyZXN0IHdlZWtkYXkgbW9kaWZpZXIgKFcpIG9ubHkgYWxsb3dlZCBpbiBkYXktb2YtbW9udGguIik7biYmKGU9Im5lYXJlc3RXZWVrZGF5cyIpO2xldCBvPXBhcnNlSW50KHJbMF0sMTApK3Q7aWYoaXNOYU4obykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46ICIrZSsiIGlzIG5vdCBhIG51bWJlcjogJyIrcysiJyIpO3RoaXMuc2V0UGFydChlLG8sclsxXXx8YSl9c2V0UGFydChzLGUsdCl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHBhcnQgc3BlY2lmaWVkOiAiK3MpO2lmKHM9PT0iZGF5T2ZXZWVrIil7aWYoZT09PTcmJihlPTApLGU8MHx8ZT42KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrOiAiK2UpO3RoaXMuc2V0TnRoV2Vla2RheU9mTW9udGgoZSx0KTtyZXR1cm59aWYocz09PSJzZWNvbmQifHxzPT09Im1pbnV0ZSIpe2lmKGU8MHx8ZT49NjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3MrIjogIitlKX1lbHNlIGlmKHM9PT0iaG91ciIpe2lmKGU8MHx8ZT49MjQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3MrIjogIitlKX1lbHNlIGlmKHM9PT0iZGF5Inx8cz09PSJuZWFyZXN0V2Vla2RheXMiKXtpZihlPDB8fGU+PTMxKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitzKyI6ICIrZSl9ZWxzZSBpZihzPT09Im1vbnRoIil7aWYoZTwwfHxlPj0xMil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrcysiOiAiK2UpfWVsc2UgaWYocz09PSJ5ZWFyIiYmKGU8MXx8ZT49MWU0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrcysiOiAiK2UrIiAoc3VwcG9ydGVkIHJhbmdlOiAxLTk5OTkpIik7dGhpc1tzXVtlXT10fXZhbGlkYXRlTm90TmFOKHMsZSl7aWYoaXNOYU4ocykpdGhyb3cgbmV3IFR5cGVFcnJvcihlKX12YWxpZGF0ZVJhbmdlKHMsZSx0LGEscil7aWYocz5lKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBGcm9tIHZhbHVlIGlzIGxhcmdlciB0aGFuIHRvIHZhbHVlOiAnIityKyInIik7aWYodCE9PXZvaWQgMCl7aWYodD09PTApdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogMCIpO2lmKHQ+dGhpc1thXS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlIG9mIHBhcnQgKCIrdGhpc1thXS5sZW5ndGgrIikiKX19aGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcocyxlLHQsYSl7aWYocy50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiByYW5nZXMgd2l0aCBzdGVwcGluZy4iKTtsZXQgcj10aGlzLmV4dHJhY3ROdGgocyxlKSxuPXJbMF0ubWF0Y2goL14oXGQrKS0oXGQrKVwvKFxkKykkLyk7aWYobj09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZSB3aXRoIHN0ZXBwaW5nOiAnIitzKyInIik7bGV0WyxvLGwscF09bixkPXBhcnNlSW50KG8sMTApK3QsdT1wYXJzZUludChsLDEwKSt0LGM9cGFyc2VJbnQocCwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihkLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTih1LCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHVwcGVyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihjLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShkLHUsYyxlLHMpO2ZvcihsZXQgYj1kO2I8PXU7Yis9Yyl0aGlzLnNldFBhcnQoZSxiLHJbMV18fGEpfWV4dHJhY3ROdGgocyxlKXtsZXQgdD1zLGE7aWYodC5pbmNsdWRlcygiIyIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogbnRoICgjKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQiKTthPXQuc3BsaXQoIiMiKVsxXSx0PXQuc3BsaXQoIiMiKVswXX1lbHNlIGlmKHQudG9VcHBlckNhc2UoKS5lbmRzV2l0aCgiTCIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogTCBtb2RpZmllciBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQgKHVzZSBMIGFsb25lIGZvciBkYXktb2YtbW9udGgpIik7YT0iTCIsdD10LnNsaWNlKDAsLTEpfXJldHVyblt0LGFdfWhhbmRsZVJhbmdlKHMsZSx0LGEpe2lmKHMudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gYSByYW5nZS4iKTtsZXQgcj10aGlzLmV4dHJhY3ROdGgocyxlKSxuPXJbMF0uc3BsaXQoIi0iKTtpZihuLmxlbmd0aCE9PTIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZTogJyIrcysiJyIpO2xldCBvPXBhcnNlSW50KG5bMF0sMTApK3QsbD1wYXJzZUludChuWzFdLDEwKSt0O3RoaXMudmFsaWRhdGVOb3ROYU4obywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4obCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShvLGwsdm9pZCAwLGUscyk7Zm9yKGxldCBwPW87cDw9bDtwKyspdGhpcy5zZXRQYXJ0KGUscCxyWzFdfHxhKX1oYW5kbGVTdGVwcGluZyhzLGUsdCxhKXtpZihzLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIHBhcnRzIHdpdGggc3RlcHBpbmcuIik7bGV0IHI9dGhpcy5leHRyYWN0TnRoKHMsZSksbj1yWzBdLnNwbGl0KCIvIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6ICciK3MrIiciKTtpZih0aGlzLnNsb3BweVJhbmdlcyluWzBdPT09IiImJihuWzBdPSIqIik7ZWxzZXtpZihuWzBdPT09IiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBtaXNzaW5nIHByZWZpeCAoJyIrcysiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpO2lmKG5bMF0hPT0iKiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBudW1lcmljIHByZWZpeCAoJyIrcysiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpfWxldCBvPTA7blswXSE9PSIqIiYmKG89cGFyc2VJbnQoblswXSwxMCkrdCk7bGV0IGw9cGFyc2VJbnQoblsxXSwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihsLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZSgwLHRoaXNbZV0ubGVuZ3RoLTEsbCxlLHMpO2ZvcihsZXQgcD1vO3A8dGhpc1tlXS5sZW5ndGg7cCs9bCl0aGlzLnNldFBhcnQoZSxwLHJbMV18fGEpfXJlcGxhY2VBbHBoYURheXMocyl7cmV0dXJuIHMucmVwbGFjZSgvLXN1bi9naSwiLTciKS5yZXBsYWNlKC9zdW4vZ2ksIjAiKS5yZXBsYWNlKC9tb24vZ2ksIjEiKS5yZXBsYWNlKC90dWUvZ2ksIjIiKS5yZXBsYWNlKC93ZWQvZ2ksIjMiKS5yZXBsYWNlKC90aHUvZ2ksIjQiKS5yZXBsYWNlKC9mcmkvZ2ksIjUiKS5yZXBsYWNlKC9zYXQvZ2ksIjYiKX1yZXBsYWNlQWxwaGFEYXlzUXVhcnR6KHMpe3JldHVybiBzLnJlcGxhY2UoL3N1bi9naSwiMSIpLnJlcGxhY2UoL21vbi9naSwiMiIpLnJlcGxhY2UoL3R1ZS9naSwiMyIpLnJlcGxhY2UoL3dlZC9naSwiNCIpLnJlcGxhY2UoL3RodS9naSwiNSIpLnJlcGxhY2UoL2ZyaS9naSwiNiIpLnJlcGxhY2UoL3NhdC9naSwiNyIpfXJlcGxhY2VBbHBoYU1vbnRocyhzKXtyZXR1cm4gcy5yZXBsYWNlKC9qYW4vZ2ksIjEiKS5yZXBsYWNlKC9mZWIvZ2ksIjIiKS5yZXBsYWNlKC9tYXIvZ2ksIjMiKS5yZXBsYWNlKC9hcHIvZ2ksIjQiKS5yZXBsYWNlKC9tYXkvZ2ksIjUiKS5yZXBsYWNlKC9qdW4vZ2ksIjYiKS5yZXBsYWNlKC9qdWwvZ2ksIjciKS5yZXBsYWNlKC9hdWcvZ2ksIjgiKS5yZXBsYWNlKC9zZXAvZ2ksIjkiKS5yZXBsYWNlKC9vY3QvZ2ksIjEwIikucmVwbGFjZSgvbm92L2dpLCIxMSIpLnJlcGxhY2UoL2RlYy9naSwiMTIiKX1oYW5kbGVOaWNrbmFtZXMocyl7bGV0IGU9cy50cmltKCkudG9Mb3dlckNhc2UoKTtpZihlPT09IkB5ZWFybHkifHxlPT09IkBhbm51YWxseSIpcmV0dXJuIjAgMCAxIDEgKiI7aWYoZT09PSJAbW9udGhseSIpcmV0dXJuIjAgMCAxICogKiI7aWYoZT09PSJAd2Vla2x5IilyZXR1cm4iMCAwICogKiAwIjtpZihlPT09IkBkYWlseSJ8fGU9PT0iQG1pZG5pZ2h0IilyZXR1cm4iMCAwICogKiAqIjtpZihlPT09IkBob3VybHkiKXJldHVybiIwICogKiAqICoiO2lmKGU9PT0iQHJlYm9vdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IEByZWJvb3QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGFuIGV2ZW50LWJhc2VkIHRyaWdnZXIgdGhhdCByZXF1aXJlcyBzeXN0ZW0gc3RhcnR1cCBkZXRlY3Rpb24uIik7cmV0dXJuIHN9c2V0TnRoV2Vla2RheU9mTW9udGgocyxlKXtpZih0eXBlb2YgZSE9Im51bWJlciImJmUudG9VcHBlckNhc2UoKT09PSJMIil0aGlzLmRheU9mV2Vla1tzXT10aGlzLmRheU9mV2Vla1tzXXwzMjtlbHNlIGlmKGU9PT02Myl0aGlzLmRheU9mV2Vla1tzXT02MztlbHNlIGlmKGU8NiYmZT4wKXRoaXMuZGF5T2ZXZWVrW3NdPXRoaXMuZGF5T2ZXZWVrW3NdfFhkdFtlLTFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG50aCB3ZWVrZGF5IG91dCBvZiByYW5nZSwgc2hvdWxkIGJlIDEtNSBvciBMLiBWYWx1ZTogJHtlfSwgVHlwZTogJHt0eXBlb2YgZX1gKX19LFh1ZT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGxpPVtbIm1vbnRoIiwieWVhciIsMF0sWyJkYXkiLCJtb250aCIsLTFdLFsiaG91ciIsImRheSIsMF0sWyJtaW51dGUiLCJob3VyIiwwXSxbInNlY29uZCIsIm1pbnV0ZSIsMF1dLEJyPWNsYXNzIEpkdHtzdGF0aWN7aSh0aGlzLCJzIil9dHo7bXM7c2Vjb25kO21pbnV0ZTtob3VyO2RheTttb250aDt5ZWFyO2NvbnN0cnVjdG9yKGUsdCl7aWYodGhpcy50ej10LGUmJmUgaW5zdGFuY2VvZiBEYXRlKWlmKCFpc05hTihlKSl0aGlzLmZyb21EYXRlKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgZGF0ZSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKTtlbHNlIGlmKGU9PW51bGwpdGhpcy5mcm9tRGF0ZShuZXcgRGF0ZSk7ZWxzZSBpZihlJiZ0eXBlb2YgZT09InN0cmluZyIpdGhpcy5mcm9tU3RyaW5nKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEpkdCl0aGlzLmZyb21Dcm9uRGF0ZShlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25EYXRlOiBJbnZhbGlkIHR5cGUgKCIrdHlwZW9mIGUrIikgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yIil9Z2V0TGFzdERheU9mTW9udGgoZSx0KXtyZXR1cm4gdCE9PTE/WHVlW3RdOm5ldyBEYXRlKERhdGUuVVRDKGUsdCsxLDApKS5nZXRVVENEYXRlKCl9Z2V0TGFzdFdlZWtkYXkoZSx0KXtsZXQgYT10aGlzLmdldExhc3REYXlPZk1vbnRoKGUsdCkscj1uZXcgRGF0ZShEYXRlLlVUQyhlLHQsYSkpLmdldFVUQ0RheSgpO3JldHVybiByPT09MD9hLTI6cj09PTY/YS0xOmF9Z2V0TmVhcmVzdFdlZWtkYXkoZSx0LGEpe2xldCByPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSx0KTtpZihhPnIpcmV0dXJuLTE7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEMoZSx0LGEpKS5nZXRVVENEYXkoKTtyZXR1cm4gbj09PTA/YT09PXI/YS0yOmErMTpuPT09Nj9hPT09MT9hKzI6YS0xOmF9aXNOdGhXZWVrZGF5T2ZNb250aChlLHQsYSxyKXtsZXQgbj1uZXcgRGF0ZShEYXRlLlVUQyhlLHQsYSkpLmdldFVUQ0RheSgpLG89MDtmb3IobGV0IGw9MTtsPD1hO2wrKyluZXcgRGF0ZShEYXRlLlVUQyhlLHQsbCkpLmdldFVUQ0RheSgpPT09biYmbysrO2lmKHImNjMmJlhkdFtvLTFdJnIpcmV0dXJuITA7aWYociYzMil7bGV0IGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aChlLHQpO2ZvcihsZXQgcD1hKzE7cDw9bDtwKyspaWYobmV3IERhdGUoRGF0ZS5VVEMoZSx0LHApKS5nZXRVVENEYXkoKT09PW4pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9ZnJvbURhdGUoZSl7aWYodGhpcy50eiE9PXZvaWQgMClpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpK3RoaXMudHosdGhpcy5ob3VyPWUuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1lLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ZS5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKTtlbHNlIHRyeXtsZXQgdD1reShlLHRoaXMudHopO3RoaXMubXM9ZS5nZXRNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD10LnMsdGhpcy5taW51dGU9dC5pLHRoaXMuaG91cj10LmgsdGhpcy5kYXk9dC5kLHRoaXMubW9udGg9dC5tLTEsdGhpcy55ZWFyPXQueX1jYXRjaCh0KXtsZXQgYT10IGluc3RhbmNlb2YgRXJyb3I/dC5tZXNzYWdlOlN0cmluZyh0KTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uRGF0ZTogRmFpbGVkIHRvIGNvbnZlcnQgZGF0ZSB0byB0aW1lem9uZSAnJHt0aGlzLnR6fScuIFRoaXMgbWF5IGhhcHBlbiB3aXRoIGludmFsaWQgdGltZXpvbmUgbmFtZXMgb3IgZGF0ZXMuIE9yaWdpbmFsIGVycm9yOiAke2F9YCl9ZWxzZSB0aGlzLm1zPWUuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRNaW51dGVzKCksdGhpcy5ob3VyPWUuZ2V0SG91cnMoKSx0aGlzLmRheT1lLmdldERhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0TW9udGgoKSx0aGlzLnllYXI9ZS5nZXRGdWxsWWVhcigpfWZyb21Dcm9uRGF0ZShlKXt0aGlzLnR6PWUudHosdGhpcy55ZWFyPWUueWVhcix0aGlzLm1vbnRoPWUubW9udGgsdGhpcy5kYXk9ZS5kYXksdGhpcy5ob3VyPWUuaG91cix0aGlzLm1pbnV0ZT1lLm1pbnV0ZSx0aGlzLnNlY29uZD1lLnNlY29uZCx0aGlzLm1zPWUubXN9YXBwbHkoKXtpZih0aGlzLm1vbnRoPjExfHx0aGlzLm1vbnRoPDB8fHRoaXMuZGF5Plh1ZVt0aGlzLm1vbnRoXXx8dGhpcy5kYXk8MXx8dGhpcy5ob3VyPjU5fHx0aGlzLm1pbnV0ZT41OXx8dGhpcy5zZWNvbmQ+NTl8fHRoaXMuaG91cjwwfHx0aGlzLm1pbnV0ZTwwfHx0aGlzLnNlY29uZDwwKXtsZXQgZT1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcykpO3JldHVybiB0aGlzLm1zPWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPWUuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1lLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ZS5nZXRVVENGdWxsWWVhcigpLCEwfWVsc2UgcmV0dXJuITF9ZnJvbVN0cmluZyhlKXtpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpe2xldCB0PVlkdChlKTt0aGlzLm1zPXQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9dC5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9dC5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXQuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT10LmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXQuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9dC5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKFlkdChlLHRoaXMudHopKX1maW5kTmV4dChlLHQsYSxyKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUsdCxhLHIsMSl9X2ZpbmRNYXRjaChlLHQsYSxyLG4pe2xldCBvPXRoaXNbdF0sbDthLmxhc3REYXlPZk1vbnRoJiYobD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSk7bGV0IHA9IWEuc3RhckRPVyYmdD09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwLGQ9dGhpc1t0XStyLHU9bj09PTE/Yz0+YzxhW3RdLmxlbmd0aDpjPT5jPj0wO2ZvcihsZXQgYz1kO3UoYyk7Yys9bil7bGV0IGI9YVt0XVtjXTtpZih0PT09ImRheSImJiFiKXtmb3IobGV0IHY9MDt2PGEubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDt2KyspaWYoYS5uZWFyZXN0V2Vla2RheXNbdl0pe2xldCB4PXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsdi1yKTtpZih4PT09LTEpY29udGludWU7aWYoeD09PWMtcil7Yj0xO2JyZWFrfX19aWYodD09PSJkYXkiJiZhLmxhc3RXZWVrZGF5KXtsZXQgdj10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtjLXI9PT12JiYoYj0xKX1pZih0PT09ImRheSImJmEubGFzdERheU9mTW9udGgmJmMtcj09bCYmKGI9MSksdD09PSJkYXkiJiYhYS5zdGFyRE9XKXtsZXQgdj1hLmRheU9mV2Vla1socCsoYy1yLTEpKSU3XTtpZih2JiZ2JjYzKXY9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLGMtcix2KT8xOjA7ZWxzZSBpZih2KXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHt2fWApO2EudXNlQW5kTG9naWM/Yj1iJiZ2OiFlLmRvbUFuZERvdyYmIWEuc3RhckRPTT9iPWJ8fHY6Yj1iJiZ2fWlmKGIpcmV0dXJuIHRoaXNbdF09Yy1yLG8hPT10aGlzW3RdPzI6MX1yZXR1cm4gM31yZWN1cnNlKGUsdCxhKXtpZihhPT09MCYmIWUuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG49LTE7Zm9yKGxldCBvPXRoaXMueWVhcisxO288ZS55ZWFyLmxlbmd0aCYmbzwxZTQ7bysrKWlmKGUueWVhcltvXT09PTEpe249bzticmVha31pZihuPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW4sdGhpcy5tb250aD0wLHRoaXMuZGF5PTEsdGhpcy5ob3VyPTAsdGhpcy5taW51dGU9MCx0aGlzLnNlY29uZD0wLHRoaXMubXM9MH1pZih0aGlzLnllYXI+PTFlNClyZXR1cm4gbnVsbH1sZXQgcj10aGlzLmZpbmROZXh0KHQsbGlbYV1bMF0sZSxsaVthXVsyXSk7aWYocj4xKXtsZXQgbj1hKzE7Zm9yKDtuPGxpLmxlbmd0aDspdGhpc1tsaVtuXVswXV09LWxpW25dWzJdLG4rKztpZihyPT09Myl7aWYodGhpc1tsaVthXVsxXV0rKyx0aGlzW2xpW2FdWzBdXT0tbGlbYV1bMl0sdGhpcy5hcHBseSgpLGE9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTAmJnRoaXMueWVhcjwxZTQ7KXRoaXMueWVhcisrO2lmKHRoaXMueWVhcj49MWU0fHx0aGlzLnllYXI+PWUueWVhci5sZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZShlLHQsMCl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZShlLHQsYS0xKX1yZXR1cm4gYSs9MSxhPj1saS5sZW5ndGg/dGhpczooZS5zdGFyWWVhcj90aGlzLnllYXI+PTNlMzp0aGlzLnllYXI+PTFlNCk/bnVsbDp0aGlzLnJlY3Vyc2UoZSx0LGEpfWluY3JlbWVudChlLHQsYSl7cmV0dXJuIHRoaXMuc2Vjb25kKz10LmludGVydmFsIT09dm9pZCAwJiZ0LmludGVydmFsPjEmJmE/dC5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKGUsdCwwKX1kZWNyZW1lbnQoZSx0KXtyZXR1cm4gdGhpcy5zZWNvbmQtPXQuaW50ZXJ2YWwhPT12b2lkIDAmJnQuaW50ZXJ2YWw+MT90LmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHQsMCwwKX1yZWN1cnNlQmFja3dhcmQoZSx0LGEscj0wKXtpZihyPjFlNClyZXR1cm4gbnVsbDtpZihhPT09MCYmIWUuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG89LTE7Zm9yKGxldCBsPXRoaXMueWVhci0xO2w+PTA7bC0tKWlmKGUueWVhcltsXT09PTEpe289bDticmVha31pZihvPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW8sdGhpcy5tb250aD0xMSx0aGlzLmRheT0zMSx0aGlzLmhvdXI9MjMsdGhpcy5taW51dGU9NTksdGhpcy5zZWNvbmQ9NTksdGhpcy5tcz0wfWlmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfWxldCBuPXRoaXMuZmluZFByZXZpb3VzKHQsbGlbYV1bMF0sZSxsaVthXVsyXSk7aWYobj4xKXtsZXQgbz1hKzE7Zm9yKDtvPGxpLmxlbmd0aDspe2xldCBsPWxpW29dWzBdLHA9bGlbb11bMl0sZD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShsLGUscCk7dGhpc1tsXT1kLG8rK31pZihuPT09Myl7aWYodGhpc1tsaVthXVsxXV0tLSxhPT09MCl7bGV0IHU9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXk+dSYmKHRoaXMuZGF5PXUpfWlmKGE9PT0xKWlmKHRoaXMuZGF5PD0wKXRoaXMuZGF5PTE7ZWxzZXtsZXQgdT10aGlzLnllYXIsYz10aGlzLm1vbnRoO2Zvcig7YzwwOyljKz0xMix1LS07Zm9yKDtjPjExOyljLT0xMix1Kys7bGV0IGI9YyE9PTE/WHVlW2NdOm5ldyBEYXRlKERhdGUuVVRDKHUsYysxLDApKS5nZXRVVENEYXRlKCk7dGhpcy5kYXk+YiYmKHRoaXMuZGF5PWIpfXRoaXMuYXBwbHkoKTtsZXQgbD1saVthXVswXSxwPWxpW2FdWzJdLGQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUobCxlLHApO2lmKGw9PT0iZGF5Iil7bGV0IHU9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpc1tsXT1NYXRoLm1pbihkLHUpfWVsc2UgdGhpc1tsXT1kO2lmKHRoaXMuYXBwbHkoKSxhPT09MCl7bGV0IHU9bGlbMV1bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiZGF5IixlLHUpLGI9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCksdj1NYXRoLm1pbihjLGIpO3YhPT10aGlzLmRheSYmKHRoaXMuZGF5PXYsdGhpcy5ob3VyPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJob3VyIixlLGxpWzJdWzJdKSx0aGlzLm1pbnV0ZT10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgibWludXRlIixlLGxpWzNdWzJdKSx0aGlzLnNlY29uZD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgic2Vjb25kIixlLGxpWzRdWzJdKSl9aWYoYT09PTAmJiFlLnN0YXJZZWFyKXtmb3IoO3RoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MDspdGhpcy55ZWFyLS07aWYodGhpcy55ZWFyPDApcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZUJhY2t3YXJkKGUsdCwwLHIrMSl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZUJhY2t3YXJkKGUsdCxhLTEscisxKX1yZXR1cm4gYSs9MSxhPj1saS5sZW5ndGg/dGhpczp0aGlzLnllYXI8MD9udWxsOnRoaXMucmVjdXJzZUJhY2t3YXJkKGUsdCxhLHIrMSl9Z2V0TWF4UGF0dGVyblZhbHVlKGUsdCxhKXtpZihlPT09ImRheSImJnQubGFzdERheU9mTW9udGgpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2lmKGU9PT0iZGF5IiYmIXQuc3RhckRPVylyZXR1cm4gdGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7Zm9yKGxldCByPXRbZV0ubGVuZ3RoLTE7cj49MDtyLS0paWYodFtlXVtyXSlyZXR1cm4gci1hO3JldHVybiB0W2VdLmxlbmd0aC0xLWF9ZmluZFByZXZpb3VzKGUsdCxhLHIpe3JldHVybiB0aGlzLl9maW5kTWF0Y2goZSx0LGEsciwtMSl9Z2V0RGF0ZShlKXtyZXR1cm4gZXx8dGhpcy50ej09PXZvaWQgMD9uZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcyk6dHlwZW9mIHRoaXMudHo9PSJudW1iZXIiP25ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZS10aGlzLnR6LHRoaXMuc2Vjb25kLHRoaXMubXMpKTpaZHQoWnVlKHRoaXMueWVhcix0aGlzLm1vbnRoKzEsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMudHopLCExKX1nZXRUaW1lKCl7cmV0dXJuIHRoaXMuZ2V0RGF0ZSghMSkuZ2V0VGltZSgpfW1hdGNoKGUsdCl7aWYoIWUuc3RhclllYXImJih0aGlzLnllYXI8MHx8dGhpcy55ZWFyPj1lLnllYXIubGVuZ3RofHxlLnllYXJbdGhpcy55ZWFyXT09PTApKXJldHVybiExO2ZvcihsZXQgYT0wO2E8bGkubGVuZ3RoO2ErKyl7bGV0IHI9bGlbYV1bMF0sbj1saVthXVsyXSxvPXRoaXNbcl07aWYobytuPDB8fG8rbj49ZVtyXS5sZW5ndGgpcmV0dXJuITE7bGV0IGw9ZVtyXVtvK25dO2lmKHI9PT0iZGF5Iil7aWYoIWwpe2ZvcihsZXQgcD0wO3A8ZS5uZWFyZXN0V2Vla2RheXMubGVuZ3RoO3ArKylpZihlLm5lYXJlc3RXZWVrZGF5c1twXSl7bGV0IGQ9dGhpcy5nZXROZWFyZXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCxwLW4pO2lmKGQhPT0tMSYmZD09PW8pe2w9MTticmVha319fWlmKGUubGFzdFdlZWtkYXkpe2xldCBwPXRoaXMuZ2V0TGFzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgpO289PT1wJiYobD0xKX1pZihlLmxhc3REYXlPZk1vbnRoKXtsZXQgcD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09cCYmKGw9MSl9aWYoIWUuc3RhckRPVyl7bGV0IHA9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCksZD1lLmRheU9mV2Vla1socCsoby0xKSklN107ZCYmZCY2MyYmKGQ9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLG8sZCk/MTowKSxlLnVzZUFuZExvZ2ljP2w9bCYmZDohdC5kb21BbmREb3cmJiFlLnN0YXJET00/bD1sfHxkOmw9bCYmZH19aWYoIWwpcmV0dXJuITF9cmV0dXJuITB9fTtpKHZMYSwiUiIpO2koU3ksInAiKTtpKHhMYSwiXyIpO2koeUxhLCJ4Iik7UWR0PTMwKjFlMyxGNz1bXSxlMHQ9Y2xhc3N7c3RhdGlje2kodGhpcywiRSIpfW5hbWU7b3B0aW9ucztfc3RhdGVzO2ZuO2dldFR6KCl7cmV0dXJuIHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldH1hcHBseURheU9mZnNldChzKXtpZih0aGlzLm9wdGlvbnMuZGF5T2Zmc2V0IT09dm9pZCAwJiZ0aGlzLm9wdGlvbnMuZGF5T2Zmc2V0IT09MCl7bGV0IGU9dGhpcy5vcHRpb25zLmRheU9mZnNldCoyNCo2MCo2MCoxZTM7cmV0dXJuIG5ldyBEYXRlKHMuZ2V0VGltZSgpK2UpfXJldHVybiBzfWNvbnN0cnVjdG9yKHMsZSx0KXtsZXQgYSxyO2lmKFN5KGUpKXI9ZTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilhPWU7ZWxzZSBpZihlIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgZm9yIG9wdGlvbnNJbi4gU2hvdWxkIGJlIG9uZSBvZiBmdW5jdGlvbiwgb3Igb2JqZWN0IChvcHRpb25zKS4iKTtpZihTeSh0KSlyPXQ7ZWxzZSBpZih0eXBlb2YgdD09Im9iamVjdCIpYT10O2Vsc2UgaWYodCE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBmdW5jSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYodGhpcy5uYW1lPWE/Lm5hbWUsdGhpcy5vcHRpb25zPXZMYShhKSx0aGlzLl9zdGF0ZXM9e2tpbGw6ITEsYmxvY2tpbmc6ITEscHJldmlvdXNSdW46dm9pZCAwLGN1cnJlbnRSdW46dm9pZCAwLG9uY2U6dm9pZCAwLGN1cnJlbnRUaW1lb3V0OnZvaWQgMCxtYXhSdW5zOmE/YS5tYXhSdW5zOnZvaWQgMCxwYXVzZWQ6YT9hLnBhdXNlZDohMSxwYXR0ZXJuOm5ldyBEZWUoIiogKiAqICogKiIsdm9pZCAwLHttb2RlOiJhdXRvIn0pfSxzJiYocyBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiBzPT0ic3RyaW5nIiYmcy5pbmRleE9mKCI6Iik+MCk/dGhpcy5fc3RhdGVzLm9uY2U9bmV3IEJyKHMsdGhpcy5nZXRUeigpKTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgRGVlKHMsdGhpcy5vcHRpb25zLnRpbWV6b25lLHttb2RlOnRoaXMub3B0aW9ucy5tb2RlLGFsdGVybmF0aXZlV2Vla2RheXM6dGhpcy5vcHRpb25zLmFsdGVybmF0aXZlV2Vla2RheXMsc2xvcHB5UmFuZ2VzOnRoaXMub3B0aW9ucy5zbG9wcHlSYW5nZXN9KSx0aGlzLm5hbWUpe2lmKEY3LmZpbmQobj0+bi5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNyb246IFRyaWVkIHRvIGluaXRpYWxpemUgbmV3IG5hbWVkIGpvYiAnIit0aGlzLm5hbWUrIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uIik7RjcucHVzaCh0aGlzKX1yZXR1cm4gciE9PXZvaWQgMCYmeExhKHIpJiYodGhpcy5mbj1yLHRoaXMuc2NoZWR1bGUoKSksdGhpc31uZXh0UnVuKHMpe2xldCBlPXRoaXMuX25leHQocyk7cmV0dXJuIGU/dGhpcy5hcHBseURheU9mZnNldChlLmdldERhdGUoITEpKTpudWxsfW5leHRSdW5zKHMsZSl7dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnM+dGhpcy5fc3RhdGVzLm1heFJ1bnMmJihzPXRoaXMuX3N0YXRlcy5tYXhSdW5zKTtsZXQgdD1lfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKHMsdCwibmV4dCIpfXByZXZpb3VzUnVucyhzLGUpe3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKHMsZXx8dm9pZCAwLCJwcmV2aW91cyIpfV9lbnVtZXJhdGVSdW5zKHMsZSx0KXtsZXQgYT1bXSxyPWU/bmV3IEJyKGUsdGhpcy5nZXRUeigpKTpudWxsLG49dD09PSJuZXh0Ij90aGlzLl9uZXh0OnRoaXMuX3ByZXZpb3VzO2Zvcig7cy0tOyl7bGV0IG89bi5jYWxsKHRoaXMscik7aWYoIW8pYnJlYWs7bGV0IGw9by5nZXREYXRlKCExKTthLnB1c2godGhpcy5hcHBseURheU9mZnNldChsKSkscj1vfXJldHVybiBhfW1hdGNoKHMpe2lmKHRoaXMuX3N0YXRlcy5vbmNlKXtsZXQgdD1uZXcgQnIocyx0aGlzLmdldFR6KCkpO3QubXM9MDtsZXQgYT1uZXcgQnIodGhpcy5fc3RhdGVzLm9uY2UsdGhpcy5nZXRUeigpKTtyZXR1cm4gYS5tcz0wLHQuZ2V0VGltZSgpPT09YS5nZXRUaW1lKCl9bGV0IGU9bmV3IEJyKHMsdGhpcy5nZXRUeigpKTtyZXR1cm4gZS5tcz0wLGUubWF0Y2godGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKX1nZXRQYXR0ZXJuKCl7aWYoIXRoaXMuX3N0YXRlcy5vbmNlKXJldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1nZXRPbmNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldERhdGUoKTpudWxsfWlzUnVubmluZygpe2xldCBzPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksZT0hdGhpcy5fc3RhdGVzLnBhdXNlZCx0PXRoaXMuZm4hPT12b2lkIDAsYT0hdGhpcy5fc3RhdGVzLmtpbGw7cmV0dXJuIGUmJnQmJmEmJnMhPT1udWxsfWlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9zdGF0ZXMua2lsbH1pc0J1c3koKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmJsb2NraW5nfWN1cnJlbnRSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4/dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4uZ2V0RGF0ZSgpOm51bGx9cHJldmlvdXNSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuP3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bi5nZXREYXRlKCk6bnVsbH1tc1RvTmV4dChzKXtsZXQgZT10aGlzLl9uZXh0KHMpO3JldHVybiBlP3MgaW5zdGFuY2VvZiBCcnx8cyBpbnN0YW5jZW9mIERhdGU/ZS5nZXRUaW1lKCktcy5nZXRUaW1lKCk6ZS5nZXRUaW1lKCktbmV3IEJyKHMpLmdldFRpbWUoKTpudWxsfXN0b3AoKXt0aGlzLl9zdGF0ZXMua2lsbD0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpO2xldCBzPUY3LmluZGV4T2YodGhpcyk7cz49MCYmRjcuc3BsaWNlKHMsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKHMpe2lmKHMmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJdCBpcyBub3QgYWxsb3dlZCB0byBzY2hlZHVsZSB0d28gZnVuY3Rpb25zIHVzaW5nIHRoZSBzYW1lIENyb25lciBpbnN0YW5jZS4iKTtzJiYodGhpcy5mbj1zKTtsZXQgZT10aGlzLm1zVG9OZXh0KCksdD10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pO3JldHVybiBlPT1udWxsfHxpc05hTihlKXx8dD09PW51bGw/dGhpczooZT5RZHQmJihlPVFkdCksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcih0KSxlKSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmeUxhKHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIocyl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBCcih2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKGUpe2lmKFN5KHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaChlLHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBCcihzLHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIocyl7bGV0IGU9bmV3IERhdGUsdD0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmZS5nZXRUaW1lKCk+PXMuZ2V0VGltZSgpLGE9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDt0JiYhYT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTp0JiZhJiZTeSh0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dChzKXtsZXQgZT0hIShzfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksdD0hMTshcyYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFtzLGVdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKHMsZSksdD0hcykscz1uZXcgQnIocyx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZzJiZzLmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJihzPXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgYT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IEJyKHMsdGhpcy5nZXRUeigpKTtyZXR1cm4hdCYmYSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoYT1hLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsZSkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PXMuZ2V0VGltZSgpfHxhPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmYS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6YX1fcHJldmlvdXMocyl7bGV0IGU9bmV3IEJyKHMsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZlLmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKGU9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IHQ9bmV3IEJyKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPGUuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KHQ9dC5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSx0PT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJnQuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOnQpfV9jYWxjdWxhdGVQcmV2aW91c1J1bihzLGUpe2xldCB0PW5ldyBCcih2b2lkIDAsdGhpcy5nZXRUeigpKSxhPXM7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD10LmdldFRpbWUoKSl7YT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgcj1hLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7cjw9dC5nZXRUaW1lKCk7KWE9bmV3IEJyKGEsdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxyPWEuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7ZT0hMH1yZXR1cm4gYT09PW51bGwmJihhPXZvaWQgMCksW2EsZV19fX0pO3ZhciBFZWUsTXksd0xhLHU4cyxYMixQZWUsV28sTmwsQjcsUXVlLGNwLEg3LEllZSxBZWUsTmVlLFJlZSxHNCxxNyxMZWUsYTB0LEp1ZSxlcGUsczB0LHRwZSx3YT1nKCgpPT57RWVlPTcsTXk9MzY1LjI0MjUsd0xhPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyx1OHM9LXdMYSxYMj02MDQ4ZTUsUGVlPTg2NGU1LFdvPTZlNCxObD0zNmU1LEI3PTFlMyxRdWU9NTI1NjAwLGNwPTQzMjAwLEg3PTE0NDAsSWVlPTYwLEFlZT0zLE5lZT0xMixSZWU9NCxHND0zNjAwLHE3PTYwLExlZT1HNCoyNCxhMHQ9TGVlKjcsSnVlPUxlZSozNjUuMjQyNSxlcGU9SnVlLzEyLHMwdD1lcGUqMyx0cGU9U3ltYm9sLmZvcigiY29uc3RydWN0RGF0ZUZyb20iKX0pO2Z1bmN0aW9uIHR0KHMsZSl7cmV0dXJuIHR5cGVvZiBzPT0iZnVuY3Rpb24iP3MoZSk6cyYmdHlwZW9mIHM9PSJvYmplY3QiJiZ0cGUgaW4gcz9zW3RwZV0oZSk6cyBpbnN0YW5jZW9mIERhdGU/bmV3IHMuY29uc3RydWN0b3IoZSk6bmV3IERhdGUoZSl9dmFyIGY4cyxHdD1nKCgpPT57d2EoKTtpKHR0LCJjb25zdHJ1Y3RGcm9tIik7ZjhzPXR0fSk7ZnVuY3Rpb24gQWUocyxlKXtyZXR1cm4gdHQoZXx8cyxzKX12YXIgdjhzLGF0PWcoKCk9PntHdCgpO2koQWUsInRvRGF0ZSIpO3Y4cz1BZX0pO2Z1bmN0aW9uIEhyKHMsZSx0KXtsZXQgYT1BZShzLHQ/LmluKTtyZXR1cm4gaXNOYU4oZSk/dHQodD8uaW58fHMsTmFOKTooZSYmYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK2UpLGEpfXZhciBTOHMsUTI9ZygoKT0+e0d0KCk7YXQoKTtpKEhyLCJhZGREYXlzIik7UzhzPUhyfSk7ZnVuY3Rpb24gSjIocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO2lmKGlzTmFOKGUpKXJldHVybiB0dCh0Py5pbnx8cyxOYU4pO2lmKCFlKXJldHVybiBhO2xldCByPWEuZ2V0RGF0ZSgpLG49dHQodD8uaW58fHMsYS5nZXRUaW1lKCkpO24uc2V0TW9udGgoYS5nZXRNb250aCgpK2UrMSwwKTtsZXQgbz1uLmdldERhdGUoKTtyZXR1cm4gcj49bz9uOihhLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCksciksYSl9dmFyIFQ4cyxqNz1nKCgpPT57R3QoKTthdCgpO2koSjIsImFkZE1vbnRocyIpO1Q4cz1KMn0pO2Z1bmN0aW9uIGRwKHMsZSx0KXtsZXR7eWVhcnM6YT0wLG1vbnRoczpyPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOmw9MCxtaW51dGVzOnA9MCxzZWNvbmRzOmQ9MH09ZSx1PUFlKHMsdD8uaW4pLGM9cnx8YT9KMih1LHIrYSoxMik6dSxiPW98fG4/SHIoYyxvK24qNyk6Yyx2PXArbCo2MCxtPShkK3YqNjApKjFlMztyZXR1cm4gdHQodD8uaW58fHMsK2IrbSl9dmFyIEE4cyxhcGU9ZygoKT0+e1EyKCk7ajcoKTtHdCgpO2F0KCk7aShkcCwiYWRkIik7QThzPWRwfSk7ZnVuY3Rpb24gT2VlKHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldERheSgpPT09Nn12YXIgRjhzLHNwZT1nKCgpPT57YXQoKTtpKE9lZSwiaXNTYXR1cmRheSIpO0Y4cz1PZWV9KTtmdW5jdGlvbiBGZWUocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0RGF5KCk9PT0wfXZhciBqOHMsaXBlPWcoKCk9PnthdCgpO2koRmVlLCJpc1N1bmRheSIpO2o4cz1GZWV9KTtmdW5jdGlvbiBlZChzLGUpe2xldCB0PUFlKHMsZT8uaW4pLmdldERheSgpO3JldHVybiB0PT09MHx8dD09PTZ9dmFyIEc4cyx6eT1nKCgpPT57YXQoKTtpKGVkLCJpc1dlZWtlbmQiKTtHOHM9ZWR9KTtmdW5jdGlvbiBCZWUocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pLHI9ZWQoYSx0KTtpZihpc05hTihlKSlyZXR1cm4gdHQodD8uaW4sTmFOKTtsZXQgbj1hLmdldEhvdXJzKCksbz1lPDA/LTE6MSxsPU1hdGgudHJ1bmMoZS81KTthLnNldERhdGUoYS5nZXREYXRlKCkrbCo3KTtsZXQgcD1NYXRoLmFicyhlJTUpO2Zvcig7cD4wOylhLnNldERhdGUoYS5nZXREYXRlKCkrbyksZWQoYSx0KXx8KHAtPTEpO3JldHVybiByJiZlZChhLHQpJiZlIT09MCYmKE9lZShhLHQpJiZhLnNldERhdGUoYS5nZXREYXRlKCkrKG88MD8yOi0xKSksRmVlKGEsdCkmJmEuc2V0RGF0ZShhLmdldERhdGUoKSsobzwwPzE6LTIpKSksYS5zZXRIb3VycyhuKSxhfXZhciB0Z3MscnBlPWcoKCk9PntHdCgpO3NwZSgpO2lwZSgpO3p5KCk7YXQoKTtpKEJlZSwiYWRkQnVzaW5lc3NEYXlzIik7dGdzPUJlZX0pO2Z1bmN0aW9uIHVwKHMsZSx0KXtyZXR1cm4gdHQodD8uaW58fHMsK0FlKHMpK2UpfXZhciBvZ3MsQ3k9ZygoKT0+e0d0KCk7YXQoKTtpKHVwLCJhZGRNaWxsaXNlY29uZHMiKTtvZ3M9dXB9KTtmdW5jdGlvbiBIZWUocyxlLHQpe3JldHVybiB1cChzLGUqTmwsdCl9dmFyIHVncyxvcGU9ZygoKT0+e0N5KCk7d2EoKTtpKEhlZSwiYWRkSG91cnMiKTt1Z3M9SGVlfSk7ZnVuY3Rpb24gRXMoKXtyZXR1cm4gaTB0fWZ1bmN0aW9uIHIwdChzKXtpMHQ9c312YXIgaTB0LEdvPWcoKCk9PntpMHQ9e307aShFcywiZ2V0RGVmYXVsdE9wdGlvbnMiKTtpKHIwdCwic2V0RGVmYXVsdE9wdGlvbnMiKX0pO2Z1bmN0aW9uIEtzKHMsZSl7bGV0IHQ9RXMoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Qud2Vla1N0YXJ0c09uPz90LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHI9QWUocyxlPy5pbiksbj1yLmdldERheSgpLG89KG48YT83OjApK24tYTtyZXR1cm4gci5zZXREYXRlKHIuZ2V0RGF0ZSgpLW8pLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgdmdzLHYxPWcoKCk9PntHbygpO2F0KCk7aShLcywic3RhcnRPZldlZWsiKTt2Z3M9S3N9KTtmdW5jdGlvbiBrcihzLGUpe3JldHVybiBLcyhzLHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIGtncyx0ZD1nKCgpPT57djEoKTtpKGtyLCJzdGFydE9mSVNPV2VlayIpO2tncz1rcn0pO2Z1bmN0aW9uIHduKHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT10LmdldEZ1bGxZZWFyKCkscj10dCh0LDApO3Iuc2V0RnVsbFllYXIoYSsxLDAsNCksci5zZXRIb3VycygwLDAsMCwwKTtsZXQgbj1rcihyKSxvPXR0KHQsMCk7by5zZXRGdWxsWWVhcihhLDAsNCksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1rcihvKTtyZXR1cm4gdC5nZXRUaW1lKCk+PW4uZ2V0VGltZSgpP2ErMTp0LmdldFRpbWUoKT49bC5nZXRUaW1lKCk/YTphLTF9dmFyIFRncyxwcD1nKCgpPT57R3QoKTt0ZCgpO2F0KCk7aSh3biwiZ2V0SVNPV2Vla1llYXIiKTtUZ3M9d259KTtmdW5jdGlvbiBGaShzKXtsZXQgZT1BZShzKSx0PW5ldyBEYXRlKERhdGUuVVRDKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCksZS5nZXRIb3VycygpLGUuZ2V0TWludXRlcygpLGUuZ2V0U2Vjb25kcygpLGUuZ2V0TWlsbGlzZWNvbmRzKCkpKTtyZXR1cm4gdC5zZXRVVENGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkpLCtzLSt0fXZhciB1MD1nKCgpPT57YXQoKTtpKEZpLCJnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIil9KTtmdW5jdGlvbiBWdChzLC4uLmUpe2xldCB0PXR0LmJpbmQobnVsbCxzfHxlLmZpbmQoYT0+dHlwZW9mIGE9PSJvYmplY3QiKSk7cmV0dXJuIGUubWFwKHQpfXZhciBScz1nKCgpPT57R3QoKTtpKFZ0LCJub3JtYWxpemVEYXRlcyIpfSk7ZnVuY3Rpb24gYWQocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4gdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBPZ3MsVHk9ZygoKT0+e2F0KCk7aShhZCwic3RhcnRPZkRheSIpO09ncz1hZH0pO2Z1bmN0aW9uIG5vKHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpLG49YWQoYSksbz1hZChyKSxsPStuLUZpKG4pLHA9K28tRmkobyk7cmV0dXJuIE1hdGgucm91bmQoKGwtcCkvUGVlKX12YXIgVWdzLHAwPWcoKCk9Pnt1MCgpO1JzKCk7d2EoKTtUeSgpO2kobm8sImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIpO1Vncz1ub30pO2Z1bmN0aW9uIFJsKHMsZSl7bGV0IHQ9d24ocyxlKSxhPXR0KGU/LmlufHxzLDApO3JldHVybiBhLnNldEZ1bGxZZWFyKHQsMCw0KSxhLnNldEhvdXJzKDAsMCwwLDApLGtyKGEpfXZhciBYZ3MsVjc9ZygoKT0+e0d0KCk7cHAoKTt0ZCgpO2koUmwsInN0YXJ0T2ZJU09XZWVrWWVhciIpO1hncz1SbH0pO2Z1bmN0aW9uIHFlZShzLGUsdCl7bGV0IGE9QWUocyx0Py5pbikscj1ubyhhLFJsKGEsdCkpLG49dHQodD8uaW58fHMsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoZSwwLDQpLG4uc2V0SG91cnMoMCwwLDAsMCksYT1SbChuKSxhLnNldERhdGUoYS5nZXREYXRlKCkrciksYX12YXIgaTdzLG5wZT1nKCgpPT57R3QoKTtwMCgpO1Y3KCk7YXQoKTtpKHFlZSwic2V0SVNPV2Vla1llYXIiKTtpN3M9cWVlfSk7ZnVuY3Rpb24gamVlKHMsZSx0KXtyZXR1cm4gcWVlKHMsd24ocyx0KStlLHQpfXZhciBjN3MsbHBlPWcoKCk9PntwcCgpO25wZSgpO2koamVlLCJhZGRJU09XZWVrWWVhcnMiKTtjN3M9amVlfSk7ZnVuY3Rpb24gVTcocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldFRpbWUoYS5nZXRUaW1lKCkrZSpXbyksYX12YXIgZjdzLFZlZT1nKCgpPT57d2EoKTthdCgpO2koVTcsImFkZE1pbnV0ZXMiKTtmN3M9VTd9KTtmdW5jdGlvbiBXNyhzLGUsdCl7cmV0dXJuIEoyKHMsZSozLHQpfXZhciB2N3MsVWVlPWcoKCk9PntqNygpO2koVzcsImFkZFF1YXJ0ZXJzIik7djdzPVc3fSk7ZnVuY3Rpb24gV2VlKHMsZSx0KXtyZXR1cm4gdXAocyxlKjFlMyx0KX12YXIgazdzLGNwZT1nKCgpPT57Q3koKTtpKFdlZSwiYWRkU2Vjb25kcyIpO2s3cz1XZWV9KTtmdW5jdGlvbiBocChzLGUsdCl7cmV0dXJuIEhyKHMsZSo3LHQpfXZhciB6N3MsJHk9ZygoKT0+e1EyKCk7aShocCwiYWRkV2Vla3MiKTt6N3M9aHB9KTtmdW5jdGlvbiBHZWUocyxlLHQpe3JldHVybiBKMihzLGUqMTIsdCl9dmFyIEQ3cyxkcGU9ZygoKT0+e2o3KCk7aShHZWUsImFkZFllYXJzIik7RDdzPUdlZX0pO2Z1bmN0aW9uIG8wdChzLGUsdCl7bGV0W2Escl09WytBZShzLnN0YXJ0LHQ/LmluKSwrQWUocy5lbmQsdD8uaW4pXS5zb3J0KChsLHApPT5sLXApLFtuLG9dPVsrQWUoZS5zdGFydCx0Py5pbiksK0FlKGUuZW5kLHQ/LmluKV0uc29ydCgobCxwKT0+bC1wKTtyZXR1cm4gdD8uaW5jbHVzaXZlP2E8PW8mJm48PXI6YTxvJiZuPHJ9dmFyIEk3cyxuMHQ9ZygoKT0+e2F0KCk7aShvMHQsImFyZUludGVydmFsc092ZXJsYXBwaW5nIik7STdzPW8wdH0pO2Z1bmN0aW9uIEtlZShzLGUpe2xldCB0LGE9ZT8uaW47cmV0dXJuIHMuZm9yRWFjaChyPT57IWEmJnR5cGVvZiByPT0ib2JqZWN0IiYmKGE9dHQuYmluZChudWxsLHIpKTtsZXQgbj1BZShyLGEpOyghdHx8dDxufHxpc05hTigrbikpJiYodD1uKX0pLHR0KGEsdHx8TmFOKX12YXIgRjdzLHVwZT1nKCgpPT57R3QoKTthdCgpO2koS2VlLCJtYXgiKTtGN3M9S2VlfSk7ZnVuY3Rpb24gWWVlKHMsZSl7bGV0IHQsYT1lPy5pbjtyZXR1cm4gcy5mb3JFYWNoKHI9PnshYSYmdHlwZW9mIHI9PSJvYmplY3QiJiYoYT10dC5iaW5kKG51bGwscikpO2xldCBuPUFlKHIsYSk7KCF0fHx0Pm58fGlzTmFOKCtuKSkmJih0PW4pfSksdHQoYSx0fHxOYU4pfXZhciBWN3MscHBlPWcoKCk9PntHdCgpO2F0KCk7aShZZWUsIm1pbiIpO1Y3cz1ZZWV9KTtmdW5jdGlvbiBsMHQocyxlLHQpe2xldFthLHIsbl09VnQodD8uaW4scyxlLnN0YXJ0LGUuZW5kKTtyZXR1cm4gWWVlKFtLZWUoW2Escl0sdCksbl0sdCl9dmFyIFo3cyxjMHQ9ZygoKT0+e1JzKCk7dXBlKCk7cHBlKCk7aShsMHQsImNsYW1wIik7WjdzPWwwdH0pO2Z1bmN0aW9uIFplZShzLGUpe2xldCB0PStBZShzKTtpZihpc05hTih0KSlyZXR1cm4gTmFOO2xldCBhLHI7cmV0dXJuIGUuZm9yRWFjaCgobixvKT0+e2xldCBsPUFlKG4pO2lmKGlzTmFOKCtsKSl7YT1OYU4scj1OYU47cmV0dXJufWxldCBwPU1hdGguYWJzKHQtK2wpOyhhPT1udWxsfHxwPHIpJiYoYT1vLHI9cCl9KSxhfXZhciBlOXMsaHBlPWcoKCk9PnthdCgpO2koWmVlLCJjbG9zZXN0SW5kZXhUbyIpO2U5cz1aZWV9KTtmdW5jdGlvbiBkMHQocyxlLHQpe2xldFthLC4uLnJdPVZ0KHQ/LmluLHMsLi4uZSksbj1aZWUoYSxyKTtpZih0eXBlb2Ygbj09Im51bWJlciImJmlzTmFOKG4pKXJldHVybiB0dChhLE5hTik7aWYobiE9PXZvaWQgMClyZXR1cm4gcltuXX12YXIgbzlzLHUwdD1nKCgpPT57UnMoKTtocGUoKTtHdCgpO2koZDB0LCJjbG9zZXN0VG8iKTtvOXM9ZDB0fSk7ZnVuY3Rpb24gS28ocyxlKXtsZXQgdD0rQWUocyktK0FlKGUpO3JldHVybiB0PDA/LTE6dD4wPzE6dH12YXIgZDlzLEs0PWcoKCk9PnthdCgpO2koS28sImNvbXBhcmVBc2MiKTtkOXM9S299KTtmdW5jdGlvbiBwMHQocyxlKXtsZXQgdD0rQWUocyktK0FlKGUpO3JldHVybiB0PjA/LTE6dDwwPzE6dH12YXIgZjlzLGgwdD1nKCgpPT57YXQoKTtpKHAwdCwiY29tcGFyZURlc2MiKTtmOXM9cDB0fSk7ZnVuY3Rpb24gUGEocyl7cmV0dXJuIHR0KHMsRGF0ZS5ub3coKSl9dmFyIHY5cyxxcj1nKCgpPT57R3QoKTtpKFBhLCJjb25zdHJ1Y3ROb3ciKTt2OXM9UGF9KTtmdW5jdGlvbiBmMHQocyl7bGV0IGU9TWF0aC50cnVuYyhzLzcpO3JldHVybiBlPT09MD8wOmV9dmFyIGs5cyxtMHQ9ZygoKT0+e3dhKCk7aShmMHQsImRheXNUb1dlZWtzIik7azlzPWYwdH0pO2Z1bmN0aW9uIHNkKHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpO3JldHVybithZChhKT09K2FkKHIpfXZhciBDOXMsRzc9ZygoKT0+e1JzKCk7VHkoKTtpKHNkLCJpc1NhbWVEYXkiKTtDOXM9c2R9KTtmdW5jdGlvbiBYZWUocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2Ygcz09Im9iamVjdCImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKT09PSJbb2JqZWN0IERhdGVdIn12YXIgRDlzLGZwZT1nKCgpPT57aShYZWUsImlzRGF0ZSIpO0Q5cz1YZWV9KTtmdW5jdGlvbiBrbyhzKXtyZXR1cm4hKCFYZWUocykmJnR5cGVvZiBzIT0ibnVtYmVyInx8aXNOYU4oK0FlKHMpKSl9dmFyIEE5cyxoMD1nKCgpPT57ZnBlKCk7YXQoKTtpKGtvLCJpc1ZhbGlkIik7QTlzPWtvfSk7ZnVuY3Rpb24gZzB0KHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpO2lmKCFrbyhhKXx8IWtvKHIpKXJldHVybiBOYU47bGV0IG49bm8oYSxyKSxvPW48MD8tMToxLGw9TWF0aC50cnVuYyhuLzcpLHA9bCo1LGQ9SHIocixsKjcpO2Zvcig7IXNkKGEsZCk7KXArPWVkKGQsdCk/MDpvLGQ9SHIoZCxvKTtyZXR1cm4gcD09PTA/MDpwfXZhciBWOXMsYjB0PWcoKCk9PntScygpO1EyKCk7cDAoKTtHNygpO2gwKCk7enkoKTtpKGcwdCwiZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzIik7VjlzPWcwdH0pO2Z1bmN0aW9uIFFlZShzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKTtyZXR1cm4gd24oYSx0KS13bihyLHQpfXZhciBZOXMsbXBlPWcoKCk9PntScygpO3BwKCk7aShRZWUsImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzIik7WTlzPVFlZX0pO2Z1bmN0aW9uIHYwdChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPWtyKGEpLG89a3IociksbD0rbi1GaShuKSxwPStvLUZpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLXApL1gyKX12YXIgYWJzLHgwdD1nKCgpPT57dTAoKTtScygpO3dhKCk7dGQoKTtpKHYwdCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrcyIpO2Ficz12MHR9KTtmdW5jdGlvbiBZNChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPWEuZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCksbz1hLmdldE1vbnRoKCktci5nZXRNb250aCgpO3JldHVybiBuKjEyK299dmFyIG9icyxKZWU9ZygoKT0+e1JzKCk7aShZNCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMiKTtvYnM9WTR9KTtmdW5jdGlvbiBEeShzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiBNYXRoLnRydW5jKHQuZ2V0TW9udGgoKS8zKSsxfXZhciBkYnMsZ3BlPWcoKCk9PnthdCgpO2koRHksImdldFF1YXJ0ZXIiKTtkYnM9RHl9KTtmdW5jdGlvbiBLNyhzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPWEuZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCksbz1EeShhKS1EeShyKTtyZXR1cm4gbio0K299dmFyIG1icyxicGU9ZygoKT0+e1JzKCk7Z3BlKCk7aShLNywiZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyIpO21icz1LN30pO2Z1bmN0aW9uIFo0KHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpLG49S3MoYSx0KSxvPUtzKHIsdCksbD0rbi1GaShuKSxwPStvLUZpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLXApL1gyKX12YXIga2JzLGV0ZT1nKCgpPT57dTAoKTtScygpO3dhKCk7djEoKTtpKFo0LCJkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzIik7a2JzPVo0fSk7ZnVuY3Rpb24gZnAocyxlLHQpe2xldFthLHJdPVZ0KHQ/LmluLHMsZSk7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCl9dmFyIHpicyx0dGU9ZygoKT0+e1JzKCk7aShmcCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyIpO3picz1mcH0pO2Z1bmN0aW9uIFk3KHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpLG49eTB0KGEsciksbz1NYXRoLmFicyhubyhhLHIpKTthLnNldERhdGUoYS5nZXREYXRlKCktbipvKTtsZXQgbD0rKHkwdChhLHIpPT09LW4pLHA9biooby1sKTtyZXR1cm4gcD09PTA/MDpwfWZ1bmN0aW9uIHkwdChzLGUpe2xldCB0PXMuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCl8fHMuZ2V0TW9udGgoKS1lLmdldE1vbnRoKCl8fHMuZ2V0RGF0ZSgpLWUuZ2V0RGF0ZSgpfHxzLmdldEhvdXJzKCktZS5nZXRIb3VycygpfHxzLmdldE1pbnV0ZXMoKS1lLmdldE1pbnV0ZXMoKXx8cy5nZXRTZWNvbmRzKCktZS5nZXRTZWNvbmRzKCl8fHMuZ2V0TWlsbGlzZWNvbmRzKCktZS5nZXRNaWxsaXNlY29uZHMoKTtyZXR1cm4gdDwwPy0xOnQ+MD8xOnR9dmFyIExicyxhdGU9ZygoKT0+e1JzKCk7cDAoKTtpKFk3LCJkaWZmZXJlbmNlSW5EYXlzIik7aSh5MHQsImNvbXBhcmVMb2NhbEFzYyIpO0xicz1ZN30pO2Z1bmN0aW9uIFlvKHMpe3JldHVybiBlPT57bGV0IGE9KHM/TWF0aFtzXTpNYXRoLnRydW5jKShlKTtyZXR1cm4gYT09PTA/MDphfX12YXIgZjA9ZygoKT0+e2koWW8sImdldFJvdW5kaW5nTWV0aG9kIil9KTtmdW5jdGlvbiBYNChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPSgrYS0rcikvTmw7cmV0dXJuIFlvKHQ/LnJvdW5kaW5nTWV0aG9kKShuKX12YXIgRmJzLHN0ZT1nKCgpPT57ZjAoKTtScygpO3dhKCk7aShYNCwiZGlmZmVyZW5jZUluSG91cnMiKTtGYnM9WDR9KTtmdW5jdGlvbiBpdGUocyxlLHQpe3JldHVybiBqZWUocywtZSx0KX12YXIgamJzLHZwZT1nKCgpPT57bHBlKCk7aShpdGUsInN1YklTT1dlZWtZZWFycyIpO2picz1pdGV9KTtmdW5jdGlvbiB3MHQocyxlLHQpe2xldFthLHJdPVZ0KHQ/LmluLHMsZSksbj1LbyhhLHIpLG89TWF0aC5hYnMoUWVlKGEscix0KSksbD1pdGUoYSxuKm8sdCkscD0rKEtvKGwscik9PT0tbiksZD1uKihvLXApO3JldHVybiBkPT09MD8wOmR9dmFyIFpicyxrMHQ9ZygoKT0+e1JzKCk7SzQoKTttcGUoKTt2cGUoKTtpKHcwdCwiZGlmZmVyZW5jZUluSVNPV2Vla1llYXJzIik7WmJzPXcwdH0pO2Z1bmN0aW9uIFo3KHMsZSl7cmV0dXJuK0FlKHMpLStBZShlKX12YXIgZXZzLHJ0ZT1nKCgpPT57YXQoKTtpKFo3LCJkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMiKTtldnM9Wjd9KTtmdW5jdGlvbiBRNChzLGUsdCl7bGV0IGE9WjcocyxlKS9XbztyZXR1cm4gWW8odD8ucm91bmRpbmdNZXRob2QpKGEpfXZhciBvdnMsb3RlPWcoKCk9PntmMCgpO3dhKCk7cnRlKCk7aShRNCwiZGlmZmVyZW5jZUluTWludXRlcyIpO292cz1RNH0pO2Z1bmN0aW9uIFg3KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIHQuc2V0SG91cnMoMjMsNTksNTksOTk5KSx0fXZhciBkdnMsbnRlPWcoKCk9PnthdCgpO2koWDcsImVuZE9mRGF5Iik7ZHZzPVg3fSk7ZnVuY3Rpb24gUTcocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0TW9udGgoKTtyZXR1cm4gdC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCksYSsxLDApLHQuc2V0SG91cnMoMjMsNTksNTksOTk5KSx0fXZhciBmdnMsbHRlPWcoKCk9PnthdCgpO2koUTcsImVuZE9mTW9udGgiKTtmdnM9UTd9KTtmdW5jdGlvbiBjdGUocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4rWDcodCxlKT09K1E3KHQsZSl9dmFyIHl2cyx4cGU9ZygoKT0+e250ZSgpO2x0ZSgpO2F0KCk7aShjdGUsImlzTGFzdERheU9mTW9udGgiKTt5dnM9Y3RlfSk7ZnVuY3Rpb24gbXAocyxlLHQpe2xldFthLHIsbl09VnQodD8uaW4scyxzLGUpLG89S28ocixuKSxsPU1hdGguYWJzKFk0KHIsbikpO2lmKGw8MSlyZXR1cm4gMDtyLmdldE1vbnRoKCk9PT0xJiZyLmdldERhdGUoKT4yNyYmci5zZXREYXRlKDMwKSxyLnNldE1vbnRoKHIuZ2V0TW9udGgoKS1vKmwpO2xldCBwPUtvKHIsbik9PT0tbztjdGUoYSkmJmw9PT0xJiZLbyhhLG4pPT09MSYmKHA9ITEpO2xldCBkPW8qKGwtK3ApO3JldHVybiBkPT09MD8wOmR9dmFyIEN2cyxMeT1nKCgpPT57UnMoKTtLNCgpO0plZSgpO3hwZSgpO2kobXAsImRpZmZlcmVuY2VJbk1vbnRocyIpO0N2cz1tcH0pO2Z1bmN0aW9uIFMwdChzLGUsdCl7bGV0IGE9bXAocyxlLHQpLzM7cmV0dXJuIFlvKHQ/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgRXZzLF8wdD1nKCgpPT57ZjAoKTtMeSgpO2koUzB0LCJkaWZmZXJlbmNlSW5RdWFydGVycyIpO0V2cz1TMHR9KTtmdW5jdGlvbiBpZChzLGUsdCl7bGV0IGE9WjcocyxlKS8xZTM7cmV0dXJuIFlvKHQ/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgUnZzLEV5PWcoKCk9PntmMCgpO3J0ZSgpO2koaWQsImRpZmZlcmVuY2VJblNlY29uZHMiKTtSdnM9aWR9KTtmdW5jdGlvbiBNMHQocyxlLHQpe2xldCBhPVk3KHMsZSx0KS83O3JldHVybiBZbyh0Py5yb3VuZGluZ01ldGhvZCkoYSl9dmFyIHF2cyx6MHQ9ZygoKT0+e2YwKCk7YXRlKCk7aShNMHQsImRpZmZlcmVuY2VJbldlZWtzIik7cXZzPU0wdH0pO2Z1bmN0aW9uIGR0ZShzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPUtvKGEsciksbz1NYXRoLmFicyhmcChhLHIpKTthLnNldEZ1bGxZZWFyKDE1ODQpLHIuc2V0RnVsbFllYXIoMTU4NCk7bGV0IGw9S28oYSxyKT09PS1uLHA9biooby0rbCk7cmV0dXJuIHA9PT0wPzA6cH12YXIgS3ZzLHlwZT1nKCgpPT57UnMoKTtLNCgpO3R0ZSgpO2koZHRlLCJkaWZmZXJlbmNlSW5ZZWFycyIpO0t2cz1kdGV9KTtmdW5jdGlvbiBsbyhzLGUpe2xldFt0LGFdPVZ0KHMsZS5zdGFydCxlLmVuZCk7cmV0dXJue3N0YXJ0OnQsZW5kOmF9fXZhciByZD1nKCgpPT57UnMoKTtpKGxvLCJub3JtYWxpemVJbnRlcnZhbCIpfSk7ZnVuY3Rpb24gdXRlKHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPyt0OithLG89cj9hOnQ7by5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscj0hcik7bGV0IHA9W107Zm9yKDsrbzw9bjspcC5wdXNoKHR0KHQsbykpLG8uc2V0RGF0ZShvLmdldERhdGUoKStsKSxvLnNldEhvdXJzKDAsMCwwLDApO3JldHVybiByP3AucmV2ZXJzZSgpOnB9dmFyIGF4cyx3cGU9ZygoKT0+e3JkKCk7R3QoKTtpKHV0ZSwiZWFjaERheU9mSW50ZXJ2YWwiKTtheHM9dXRlfSk7ZnVuY3Rpb24gQzB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPyt0OithLG89cj9hOnQ7by5zZXRNaW51dGVzKDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscj0hcik7bGV0IHA9W107Zm9yKDsrbzw9bjspcC5wdXNoKHR0KHQsbykpLG8uc2V0SG91cnMoby5nZXRIb3VycygpK2wpO3JldHVybiByP3AucmV2ZXJzZSgpOnB9dmFyIG54cyxUMHQ9ZygoKT0+e3JkKCk7R3QoKTtpKEMwdCwiZWFjaEhvdXJPZkludGVydmFsIik7bnhzPUMwdH0pO2Z1bmN0aW9uICQwdChzLGUpe2xldHtzdGFydDp0LGVuZDphfT1sbyhlPy5pbixzKTt0LnNldFNlY29uZHMoMCwwKTtsZXQgcj0rdD4rYSxuPXI/K3Q6K2Esbz1yP2E6dCxsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxyPSFyKTtsZXQgcD1bXTtmb3IoOytvPD1uOylwLnB1c2godHQodCxvKSksbz1VNyhvLGwpO3JldHVybiByP3AucmV2ZXJzZSgpOnB9dmFyIGh4cyxEMHQ9ZygoKT0+e3JkKCk7VmVlKCk7R3QoKTtpKCQwdCwiZWFjaE1pbnV0ZU9mSW50ZXJ2YWwiKTtoeHM9JDB0fSk7ZnVuY3Rpb24gTDB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPyt0OithLG89cj9hOnQ7by5zZXRIb3VycygwLDAsMCwwKSxvLnNldERhdGUoMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHI9IXIpO2xldCBwPVtdO2Zvcig7K288PW47KXAucHVzaCh0dCh0LG8pKSxvLnNldE1vbnRoKG8uZ2V0TW9udGgoKStsKTtyZXR1cm4gcj9wLnJldmVyc2UoKTpwfXZhciB2eHMsRTB0PWcoKCk9PntyZCgpO0d0KCk7aShMMHQsImVhY2hNb250aE9mSW50ZXJ2YWwiKTt2eHM9TDB0fSk7ZnVuY3Rpb24gb2QocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0TW9udGgoKSxyPWEtYSUzO3JldHVybiB0LnNldE1vbnRoKHIsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBreHMscHRlPWcoKCk9PnthdCgpO2kob2QsInN0YXJ0T2ZRdWFydGVyIik7a3hzPW9kfSk7ZnVuY3Rpb24gUDB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPytvZCh0KTorb2QoYSksbz1yP29kKGEpOm9kKHQpLGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHI9IXIpO2xldCBwPVtdO2Zvcig7K288PW47KXAucHVzaCh0dCh0LG8pKSxvPVc3KG8sbCk7cmV0dXJuIHI/cC5yZXZlcnNlKCk6cH12YXIgJHhzLEkwdD1nKCgpPT57cmQoKTtVZWUoKTtHdCgpO3B0ZSgpO2koUDB0LCJlYWNoUXVhcnRlck9mSW50ZXJ2YWwiKTskeHM9UDB0fSk7ZnVuY3Rpb24gQTB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yP0tzKGEsZSk6S3ModCxlKSxvPXI/S3ModCxlKTpLcyhhLGUpO24uc2V0SG91cnMoMTUpLG8uc2V0SG91cnMoMTUpO2xldCBsPStvLmdldFRpbWUoKSxwPW4sZD1lPy5zdGVwPz8xO2lmKCFkKXJldHVybltdO2Q8MCYmKGQ9LWQscj0hcik7bGV0IHU9W107Zm9yKDsrcDw9bDspcC5zZXRIb3VycygwKSx1LnB1c2godHQodCxwKSkscD1ocChwLGQpLHAuc2V0SG91cnMoMTUpO3JldHVybiByP3UucmV2ZXJzZSgpOnV9dmFyIE54cyxOMHQ9ZygoKT0+e3JkKCk7JHkoKTtHdCgpO3YxKCk7aShBMHQsImVhY2hXZWVrT2ZJbnRlcnZhbCIpO054cz1BMHR9KTtmdW5jdGlvbiBKNyhzLGUpe2xldHtzdGFydDp0LGVuZDphfT1sbyhlPy5pbixzKSxyPXV0ZSh7c3RhcnQ6dCxlbmQ6YX0sZSksbj1bXSxvPTA7Zm9yKDtvPHIubGVuZ3RoOyl7bGV0IGw9cltvKytdO2VkKGwpJiZuLnB1c2godHQodCxsKSl9cmV0dXJuIG59dmFyIGp4cyxodGU9ZygoKT0+e3JkKCk7R3QoKTt3cGUoKTt6eSgpO2koSjcsImVhY2hXZWVrZW5kT2ZJbnRlcnZhbCIpO2p4cz1KN30pO2Z1bmN0aW9uIGdwKHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIHQuc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9dmFyIEd4cyxQeT1nKCgpPT57YXQoKTtpKGdwLCJzdGFydE9mTW9udGgiKTtHeHM9Z3B9KTtmdW5jdGlvbiBSMHQocyxlKXtsZXQgdD1ncChzLGUpLGE9UTcocyxlKTtyZXR1cm4gSjcoe3N0YXJ0OnQsZW5kOmF9LGUpfXZhciBKeHMsTzB0PWcoKCk9PntodGUoKTtsdGUoKTtQeSgpO2koUjB0LCJlYWNoV2Vla2VuZE9mTW9udGgiKTtKeHM9UjB0fSk7ZnVuY3Rpb24gZnRlKHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT10LmdldEZ1bGxZZWFyKCk7cmV0dXJuIHQuc2V0RnVsbFllYXIoYSsxLDAsMCksdC5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHR9dmFyIHN5cyxrcGU9ZygoKT0+e2F0KCk7aShmdGUsImVuZE9mWWVhciIpO3N5cz1mdGV9KTtmdW5jdGlvbiBlOShzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiB0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH12YXIgbnlzLG10ZT1nKCgpPT57YXQoKTtpKGU5LCJzdGFydE9mWWVhciIpO255cz1lOX0pO2Z1bmN0aW9uIEYwdChzLGUpe2xldCB0PWU5KHMsZSksYT1mdGUocyxlKTtyZXR1cm4gSjcoe3N0YXJ0OnQsZW5kOmF9LGUpfXZhciBoeXMsQjB0PWcoKCk9PntodGUoKTtrcGUoKTttdGUoKTtpKEYwdCwiZWFjaFdlZWtlbmRPZlllYXIiKTtoeXM9RjB0fSk7ZnVuY3Rpb24gSDB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPyt0OithLG89cj9hOnQ7by5zZXRIb3VycygwLDAsMCwwKSxvLnNldE1vbnRoKDAsMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHI9IXIpO2xldCBwPVtdO2Zvcig7K288PW47KXAucHVzaCh0dCh0LG8pKSxvLnNldEZ1bGxZZWFyKG8uZ2V0RnVsbFllYXIoKStsKTtyZXR1cm4gcj9wLnJldmVyc2UoKTpwfXZhciB2eXMscTB0PWcoKCk9PntyZCgpO0d0KCk7aShIMHQsImVhY2hZZWFyT2ZJbnRlcnZhbCIpO3Z5cz1IMHR9KTtmdW5jdGlvbiBqMHQocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0RnVsbFllYXIoKSxyPTkrTWF0aC5mbG9vcihhLzEwKSoxMDtyZXR1cm4gdC5zZXRGdWxsWWVhcihyLDExLDMxKSx0LnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdH12YXIga3lzLFYwdD1nKCgpPT57YXQoKTtpKGowdCwiZW5kT2ZEZWNhZGUiKTtreXM9ajB0fSk7ZnVuY3Rpb24gVTB0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIHQuc2V0TWludXRlcyg1OSw1OSw5OTkpLHR9dmFyIHp5cyxXMHQ9ZygoKT0+e2F0KCk7aShVMHQsImVuZE9mSG91ciIpO3p5cz1VMHR9KTtmdW5jdGlvbiBndGUocyxlKXtsZXQgdD1FcygpLGE9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/dC53ZWVrU3RhcnRzT24/P3QubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscj1BZShzLGU/LmluKSxuPXIuZ2V0RGF5KCksbz0objxhPy03OjApKzYtKG4tYSk7cmV0dXJuIHIuc2V0RGF0ZShyLmdldERhdGUoKStvKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgTHlzLFNwZT1nKCgpPT57R28oKTthdCgpO2koZ3RlLCJlbmRPZldlZWsiKTtMeXM9Z3RlfSk7ZnVuY3Rpb24gRzB0KHMsZSl7cmV0dXJuIGd0ZShzLHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIEF5cyxLMHQ9ZygoKT0+e1NwZSgpO2koRzB0LCJlbmRPZklTT1dlZWsiKTtBeXM9RzB0fSk7ZnVuY3Rpb24gWTB0KHMsZSl7bGV0IHQ9d24ocyxlKSxhPXR0KGU/LmlufHxzLDApO2Euc2V0RnVsbFllYXIodCsxLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKTtsZXQgcj1rcihhLGUpO3JldHVybiByLnNldE1pbGxpc2Vjb25kcyhyLmdldE1pbGxpc2Vjb25kcygpLTEpLHJ9dmFyIEh5cyxaMHQ9ZygoKT0+e0d0KCk7cHAoKTt0ZCgpO2koWTB0LCJlbmRPZklTT1dlZWtZZWFyIik7SHlzPVkwdH0pO2Z1bmN0aW9uIFgwdChzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiB0LnNldFNlY29uZHMoNTksOTk5KSx0fXZhciBVeXMsUTB0PWcoKCk9PnthdCgpO2koWDB0LCJlbmRPZk1pbnV0ZSIpO1V5cz1YMHR9KTtmdW5jdGlvbiBKMHQocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0TW9udGgoKSxyPWEtYSUzKzM7cmV0dXJuIHQuc2V0TW9udGgociwwKSx0LnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdH12YXIgWXlzLGV1dD1nKCgpPT57YXQoKTtpKEowdCwiZW5kT2ZRdWFydGVyIik7WXlzPUowdH0pO2Z1bmN0aW9uIHR1dChzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiB0LnNldE1pbGxpc2Vjb25kcyg5OTkpLHR9dmFyIEp5cyxhdXQ9ZygoKT0+e2F0KCk7aSh0dXQsImVuZE9mU2Vjb25kIik7SnlzPXR1dH0pO2Z1bmN0aW9uIHN1dChzKXtyZXR1cm4gWDcoRGF0ZS5ub3coKSxzKX12YXIgc3dzLGl1dD1nKCgpPT57bnRlKCk7aShzdXQsImVuZE9mVG9kYXkiKTtzd3M9c3V0fSk7ZnVuY3Rpb24gcnV0KHMpe2xldCBlPVBhKHM/LmluKSx0PWUuZ2V0RnVsbFllYXIoKSxhPWUuZ2V0TW9udGgoKSxyPWUuZ2V0RGF0ZSgpLG49UGEocz8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKHQsYSxyKzEpLG4uc2V0SG91cnMoMjMsNTksNTksOTk5KSxzPy5pbj9zLmluKG4pOm59dmFyIG53cyxvdXQ9ZygoKT0+e3FyKCk7aShydXQsImVuZE9mVG9tb3Jyb3ciKTtud3M9cnV0fSk7ZnVuY3Rpb24gbnV0KHMpe2xldCBlPVBhKHM/LmluKSx0PXR0KHM/LmluLDApO3JldHVybiB0LnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCktMSksdC5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHR9dmFyIHB3cyxsdXQ9ZygoKT0+e0d0KCk7cXIoKTtpKG51dCwiZW5kT2ZZZXN0ZXJkYXkiKTtwd3M9bnV0fSk7dmFyIGtMYSxjdXQsZHV0PWcoKCk9PntrTGE9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxjdXQ9aSgocyxlLHQpPT57bGV0IGEscj1rTGFbc107cmV0dXJuIHR5cGVvZiByPT0ic3RyaW5nIj9hPXI6ZT09PTE/YT1yLm9uZTphPXIub3RoZXIucmVwbGFjZSgie3tjb3VudH19IixlLnRvU3RyaW5nKCkpLHQ/LmFkZFN1ZmZpeD90LmNvbXBhcmlzb24mJnQuY29tcGFyaXNvbj4wPyJpbiAiK2E6YSsiIGFnbyI6YX0sImZvcm1hdERpc3RhbmNlIil9KTtmdW5jdGlvbiBidGUocyl7cmV0dXJuKGU9e30pPT57bGV0IHQ9ZS53aWR0aD9TdHJpbmcoZS53aWR0aCk6cy5kZWZhdWx0V2lkdGg7cmV0dXJuIHMuZm9ybWF0c1t0XXx8cy5mb3JtYXRzW3MuZGVmYXVsdFdpZHRoXX19dmFyIHV1dD1nKCgpPT57aShidGUsImJ1aWxkRm9ybWF0TG9uZ0ZuIil9KTt2YXIgU0xhLF9MYSxNTGEscHV0LGh1dD1nKCgpPT57dXV0KCk7U0xhPXtmdWxsOiJFRUVFLCBNTU1NIGRvLCB5Iixsb25nOiJNTU1NIGRvLCB5IixtZWRpdW06Ik1NTSBkLCB5IixzaG9ydDoiTU0vZGQveXl5eSJ9LF9MYT17ZnVsbDoiaDptbTpzcyBhIHp6enoiLGxvbmc6Img6bW06c3MgYSB6IixtZWRpdW06Img6bW06c3MgYSIsc2hvcnQ6Img6bW0gYSJ9LE1MYT17ZnVsbDoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbG9uZzoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbWVkaXVtOiJ7e2RhdGV9fSwge3t0aW1lfX0iLHNob3J0OiJ7e2RhdGV9fSwge3t0aW1lfX0ifSxwdXQ9e2RhdGU6YnRlKHtmb3JtYXRzOlNMYSxkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpidGUoe2Zvcm1hdHM6X0xhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KSxkYXRlVGltZTpidGUoe2Zvcm1hdHM6TUxhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KX19KTt2YXIgekxhLGZ1dCxtdXQ9ZygoKT0+e3pMYT17bGFzdFdlZWs6IidsYXN0JyBlZWVlICdhdCcgcCIseWVzdGVyZGF5OiIneWVzdGVyZGF5IGF0JyBwIix0b2RheToiJ3RvZGF5IGF0JyBwIix0b21vcnJvdzoiJ3RvbW9ycm93IGF0JyBwIixuZXh0V2VlazoiZWVlZSAnYXQnIHAiLG90aGVyOiJQIn0sZnV0PWkoKHMsZSx0LGEpPT56TGFbc10sImZvcm1hdFJlbGF0aXZlIil9KTtmdW5jdGlvbiB0OShzKXtyZXR1cm4oZSx0KT0+e2xldCBhPXQ/LmNvbnRleHQ/U3RyaW5nKHQuY29udGV4dCk6InN0YW5kYWxvbmUiLHI7aWYoYT09PSJmb3JtYXR0aW5nIiYmcy5mb3JtYXR0aW5nVmFsdWVzKXtsZXQgbz1zLmRlZmF1bHRGb3JtYXR0aW5nV2lkdGh8fHMuZGVmYXVsdFdpZHRoLGw9dD8ud2lkdGg/U3RyaW5nKHQud2lkdGgpOm87cj1zLmZvcm1hdHRpbmdWYWx1ZXNbbF18fHMuZm9ybWF0dGluZ1ZhbHVlc1tvXX1lbHNle2xldCBvPXMuZGVmYXVsdFdpZHRoLGw9dD8ud2lkdGg/U3RyaW5nKHQud2lkdGgpOnMuZGVmYXVsdFdpZHRoO3I9cy52YWx1ZXNbbF18fHMudmFsdWVzW29dfWxldCBuPXMuYXJndW1lbnRDYWxsYmFjaz9zLmFyZ3VtZW50Q2FsbGJhY2soZSk6ZTtyZXR1cm4gcltuXX19dmFyIGd1dD1nKCgpPT57aSh0OSwiYnVpbGRMb2NhbGl6ZUZuIil9KTt2YXIgQ0xhLFRMYSwkTGEsRExhLExMYSxFTGEsUExhLGJ1dCx2dXQ9ZygoKT0+e2d1dCgpO0NMYT17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LFRMYT17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sJExhPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxETGE9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sTExhPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxFTGE9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LFBMYT1pKChzLGUpPT57bGV0IHQ9TnVtYmVyKHMpLGE9dCUxMDA7aWYoYT4yMHx8YTwxMClzd2l0Y2goYSUxMCl7Y2FzZSAxOnJldHVybiB0KyJzdCI7Y2FzZSAyOnJldHVybiB0KyJuZCI7Y2FzZSAzOnJldHVybiB0KyJyZCJ9cmV0dXJuIHQrInRoIn0sIm9yZGluYWxOdW1iZXIiKSxidXQ9e29yZGluYWxOdW1iZXI6UExhLGVyYTp0OSh7dmFsdWVzOkNMYSxkZWZhdWx0V2lkdGg6IndpZGUifSkscXVhcnRlcjp0OSh7dmFsdWVzOlRMYSxkZWZhdWx0V2lkdGg6IndpZGUiLGFyZ3VtZW50Q2FsbGJhY2s6aShzPT5zLTEsImFyZ3VtZW50Q2FsbGJhY2siKX0pLG1vbnRoOnQ5KHt2YWx1ZXM6JExhLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXk6dDkoe3ZhbHVlczpETGEsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLGRheVBlcmlvZDp0OSh7dmFsdWVzOkxMYSxkZWZhdWx0V2lkdGg6IndpZGUiLGZvcm1hdHRpbmdWYWx1ZXM6RUxhLGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IndpZGUifSl9fSk7ZnVuY3Rpb24gYTkocyl7cmV0dXJuKGUsdD17fSk9PntsZXQgYT10LndpZHRoLHI9YSYmcy5tYXRjaFBhdHRlcm5zW2FdfHxzLm1hdGNoUGF0dGVybnNbcy5kZWZhdWx0TWF0Y2hXaWR0aF0sbj1lLm1hdGNoKHIpO2lmKCFuKXJldHVybiBudWxsO2xldCBvPW5bMF0sbD1hJiZzLnBhcnNlUGF0dGVybnNbYV18fHMucGFyc2VQYXR0ZXJuc1tzLmRlZmF1bHRQYXJzZVdpZHRoXSxwPUFycmF5LmlzQXJyYXkobCk/QUxhKGwsYz0+Yy50ZXN0KG8pKTpJTGEobCxjPT5jLnRlc3QobykpLGQ7ZD1zLnZhbHVlQ2FsbGJhY2s/cy52YWx1ZUNhbGxiYWNrKHApOnAsZD10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKGQpOmQ7bGV0IHU9ZS5zbGljZShvLmxlbmd0aCk7cmV0dXJue3ZhbHVlOmQscmVzdDp1fX19ZnVuY3Rpb24gSUxhKHMsZSl7Zm9yKGxldCB0IGluIHMpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsdCkmJmUoc1t0XSkpcmV0dXJuIHR9ZnVuY3Rpb24gQUxhKHMsZSl7Zm9yKGxldCB0PTA7dDxzLmxlbmd0aDt0KyspaWYoZShzW3RdKSlyZXR1cm4gdH12YXIgeHV0PWcoKCk9PntpKGE5LCJidWlsZE1hdGNoRm4iKTtpKElMYSwiZmluZEtleSIpO2koQUxhLCJmaW5kSW5kZXgiKX0pO2Z1bmN0aW9uIHl1dChzKXtyZXR1cm4oZSx0PXt9KT0+e2xldCBhPWUubWF0Y2gocy5tYXRjaFBhdHRlcm4pO2lmKCFhKXJldHVybiBudWxsO2xldCByPWFbMF0sbj1lLm1hdGNoKHMucGFyc2VQYXR0ZXJuKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1zLnZhbHVlQ2FsbGJhY2s/cy52YWx1ZUNhbGxiYWNrKG5bMF0pOm5bMF07bz10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKG8pOm87bGV0IGw9ZS5zbGljZShyLmxlbmd0aCk7cmV0dXJue3ZhbHVlOm8scmVzdDpsfX19dmFyIHd1dD1nKCgpPT57aSh5dXQsImJ1aWxkTWF0Y2hQYXR0ZXJuRm4iKX0pO3ZhciBOTGEsUkxhLE9MYSxGTGEsQkxhLEhMYSxxTGEsakxhLFZMYSxVTGEsV0xhLEdMYSxrdXQsU3V0PWcoKCk9Pnt4dXQoKTt3dXQoKTtOTGE9L14oXGQrKSh0aHxzdHxuZHxyZCk/L2ksUkxhPS9cZCsvaSxPTGE9e25hcnJvdzovXihifGEpL2ksYWJicmV2aWF0ZWQ6L14oYlwuP1xzP2NcLj98YlwuP1xzP2NcLj9ccz9lXC4/fGFcLj9ccz9kXC4/fGNcLj9ccz9lXC4/KS9pLHdpZGU6L14oYmVmb3JlIGNocmlzdHxiZWZvcmUgY29tbW9uIGVyYXxhbm5vIGRvbWluaXxjb21tb24gZXJhKS9pfSxGTGE9e2FueTpbL15iL2ksL14oYXxjKS9pXX0sQkxhPXtuYXJyb3c6L15bMTIzNF0vaSxhYmJyZXZpYXRlZDovXnFbMTIzNF0vaSx3aWRlOi9eWzEyMzRdKHRofHN0fG5kfHJkKT8gcXVhcnRlci9pfSxITGE9e2FueTpbLzEvaSwvMi9pLC8zL2ksLzQvaV19LHFMYT17bmFycm93Oi9eW2pmbWFzb25kXS9pLGFiYnJldmlhdGVkOi9eKGphbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjKS9pLHdpZGU6L14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaX0sakxhPXtuYXJyb3c6Wy9eai9pLC9eZi9pLC9ebS9pLC9eYS9pLC9ebS9pLC9eai9pLC9eai9pLC9eYS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXSxhbnk6Wy9eamEvaSwvXmYvaSwvXm1hci9pLC9eYXAvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmF1L2ksL15zL2ksL15vL2ksL15uL2ksL15kL2ldfSxWTGE9e25hcnJvdzovXltzbXR3Zl0vaSxzaG9ydDovXihzdXxtb3x0dXx3ZXx0aHxmcnxzYSkvaSxhYmJyZXZpYXRlZDovXihzdW58bW9ufHR1ZXx3ZWR8dGh1fGZyaXxzYXQpL2ksd2lkZTovXihzdW5kYXl8bW9uZGF5fHR1ZXNkYXl8d2VkbmVzZGF5fHRodXJzZGF5fGZyaWRheXxzYXR1cmRheSkvaX0sVUxhPXtuYXJyb3c6Wy9ecy9pLC9ebS9pLC9edC9pLC9edy9pLC9edC9pLC9eZi9pLC9ecy9pXSxhbnk6Wy9ec3UvaSwvXm0vaSwvXnR1L2ksL153L2ksL150aC9pLC9eZi9pLC9ec2EvaV19LFdMYT17bmFycm93Oi9eKGF8cHxtaXxufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaSxhbnk6L14oW2FwXVwuP1xzP21cLj98bWlkbmlnaHR8bm9vbnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2l9LEdMYT17YW55OnthbTovXmEvaSxwbTovXnAvaSxtaWRuaWdodDovXm1pL2ksbm9vbjovXm5vL2ksbW9ybmluZzovbW9ybmluZy9pLGFmdGVybm9vbjovYWZ0ZXJub29uL2ksZXZlbmluZzovZXZlbmluZy9pLG5pZ2h0Oi9uaWdodC9pfX0sa3V0PXtvcmRpbmFsTnVtYmVyOnl1dCh7bWF0Y2hQYXR0ZXJuOk5MYSxwYXJzZVBhdHRlcm46UkxhLHZhbHVlQ2FsbGJhY2s6aShzPT5wYXJzZUludChzLDEwKSwidmFsdWVDYWxsYmFjayIpfSksZXJhOmE5KHttYXRjaFBhdHRlcm5zOk9MYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpGTGEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOmE5KHttYXRjaFBhdHRlcm5zOkJMYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpITGEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazppKHM9PnMrMSwidmFsdWVDYWxsYmFjayIpfSksbW9udGg6YTkoe21hdGNoUGF0dGVybnM6cUxhLGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmpMYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheTphOSh7bWF0Y2hQYXR0ZXJuczpWTGEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6VUxhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5UGVyaW9kOmE5KHttYXRjaFBhdHRlcm5zOldMYSxkZWZhdWx0TWF0Y2hXaWR0aDoiYW55IixwYXJzZVBhdHRlcm5zOkdMYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pfX0pO3ZhciBtbCxId3MsX3V0PWcoKCk9PntkdXQoKTtodXQoKTttdXQoKTt2dXQoKTtTdXQoKTttbD17Y29kZToiZW4tVVMiLGZvcm1hdERpc3RhbmNlOmN1dCxmb3JtYXRMb25nOnB1dCxmb3JtYXRSZWxhdGl2ZTpmdXQsbG9jYWxpemU6YnV0LG1hdGNoOmt1dCxvcHRpb25zOnt3ZWVrU3RhcnRzT246MCxmaXJzdFdlZWtDb250YWluc0RhdGU6MX19LEh3cz1tbH0pO3ZhciBKND1nKCgpPT57X3V0KCl9KTtmdW5jdGlvbiB2dGUocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4gbm8odCxlOSh0KSkrMX12YXIgS3dzLF9wZT1nKCgpPT57cDAoKTttdGUoKTthdCgpO2kodnRlLCJnZXREYXlPZlllYXIiKTtLd3M9dnRlfSk7ZnVuY3Rpb24gczkocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPStrcih0KS0rUmwodCk7cmV0dXJuIE1hdGgucm91bmQoYS9YMikrMX12YXIgdGtzLHh0ZT1nKCgpPT57d2EoKTt0ZCgpO1Y3KCk7YXQoKTtpKHM5LCJnZXRJU09XZWVrIik7dGtzPXM5fSk7ZnVuY3Rpb24gYnAocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0RnVsbFllYXIoKSxyPUVzKCksbj1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPXR0KGU/LmlufHxzLDApO28uc2V0RnVsbFllYXIoYSsxLDAsbiksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1LcyhvLGUpLHA9dHQoZT8uaW58fHMsMCk7cC5zZXRGdWxsWWVhcihhLDAsbikscC5zZXRIb3VycygwLDAsMCwwKTtsZXQgZD1LcyhwLGUpO3JldHVybit0Pj0rbD9hKzE6K3Q+PStkP2E6YS0xfXZhciBsa3MsSXk9ZygoKT0+e0dvKCk7R3QoKTt2MSgpO2F0KCk7aShicCwiZ2V0V2Vla1llYXIiKTtsa3M9YnB9KTtmdW5jdGlvbiBlMyhzLGUpe2xldCB0PUVzKCksYT1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz90LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dC5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxyPWJwKHMsZSksbj10dChlPy5pbnx8cywwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihyLDAsYSksbi5zZXRIb3VycygwLDAsMCwwKSxLcyhuLGUpfXZhciBta3MseXRlPWcoKCk9PntHbygpO0d0KCk7SXkoKTt2MSgpO2koZTMsInN0YXJ0T2ZXZWVrWWVhciIpO21rcz1lM30pO2Z1bmN0aW9uIGk5KHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT0rS3ModCxlKS0rZTModCxlKTtyZXR1cm4gTWF0aC5yb3VuZChhL1gyKSsxfXZhciBra3Msd3RlPWcoKCk9Pnt3YSgpO3YxKCk7eXRlKCk7YXQoKTtpKGk5LCJnZXRXZWVrIik7a2tzPWk5fSk7ZnVuY3Rpb24gUHQocyxlKXtsZXQgdD1zPDA/Ii0iOiIiLGE9TWF0aC5hYnMocykudG9TdHJpbmcoKS5wYWRTdGFydChlLCIwIik7cmV0dXJuIHQrYX12YXIgdDM9ZygoKT0+e2koUHQsImFkZExlYWRpbmdaZXJvcyIpfSk7dmFyIE9sLE1wZT1nKCgpPT57dDMoKTtPbD17eShzLGUpe2xldCB0PXMuZ2V0RnVsbFllYXIoKSxhPXQ+MD90OjEtdDtyZXR1cm4gUHQoZT09PSJ5eSI/YSUxMDA6YSxlLmxlbmd0aCl9LE0ocyxlKXtsZXQgdD1zLmdldE1vbnRoKCk7cmV0dXJuIGU9PT0iTSI/U3RyaW5nKHQrMSk6UHQodCsxLDIpfSxkKHMsZSl7cmV0dXJuIFB0KHMuZ2V0RGF0ZSgpLGUubGVuZ3RoKX0sYShzLGUpe2xldCB0PXMuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHQudG9VcHBlckNhc2UoKTtjYXNlImFhYSI6cmV0dXJuIHQ7Y2FzZSJhYWFhYSI6cmV0dXJuIHRbMF07ZGVmYXVsdDpyZXR1cm4gdD09PSJhbSI/ImEubS4iOiJwLm0uIn19LGgocyxlKXtyZXR1cm4gUHQocy5nZXRIb3VycygpJTEyfHwxMixlLmxlbmd0aCl9LEgocyxlKXtyZXR1cm4gUHQocy5nZXRIb3VycygpLGUubGVuZ3RoKX0sbShzLGUpe3JldHVybiBQdChzLmdldE1pbnV0ZXMoKSxlLmxlbmd0aCl9LHMocyxlKXtyZXR1cm4gUHQocy5nZXRTZWNvbmRzKCksZS5sZW5ndGgpfSxTKHMsZSl7bGV0IHQ9ZS5sZW5ndGgsYT1zLmdldE1pbGxpc2Vjb25kcygpLHI9TWF0aC50cnVuYyhhKk1hdGgucG93KDEwLHQtMykpO3JldHVybiBQdChyLGUubGVuZ3RoKX19fSk7ZnVuY3Rpb24gTXV0KHMsZT0iIil7bGV0IHQ9cz4wPyItIjoiKyIsYT1NYXRoLmFicyhzKSxyPU1hdGgudHJ1bmMoYS82MCksbj1hJTYwO3JldHVybiBuPT09MD90K1N0cmluZyhyKTp0K1N0cmluZyhyKStlK1B0KG4sMil9ZnVuY3Rpb24genV0KHMsZSl7cmV0dXJuIHMlNjA9PT0wPyhzPjA/Ii0iOiIrIikrUHQoTWF0aC5hYnMocykvNjAsMik6YTMocyxlKX1mdW5jdGlvbiBhMyhzLGU9IiIpe2xldCB0PXM+MD8iLSI6IisiLGE9TWF0aC5hYnMocykscj1QdChNYXRoLnRydW5jKGEvNjApLDIpLG49UHQoYSU2MCwyKTtyZXR1cm4gdCtyK2Urbn12YXIgcjksQXksQ3V0PWcoKCk9PntfcGUoKTt4dGUoKTtwcCgpO3d0ZSgpO0l5KCk7dDMoKTtNcGUoKTtyOT17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LEF5PXtHOmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0RnVsbFllYXIoKT4wPzE6MDtzd2l0Y2goZSl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIHQuZXJhKGEse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gdC5lcmEoYSx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiB0LmVyYShhLHt3aWR0aDoid2lkZSJ9KX19LCJHIikseTppKGZ1bmN0aW9uKHMsZSx0KXtpZihlPT09InlvIil7bGV0IGE9cy5nZXRGdWxsWWVhcigpLHI9YT4wP2E6MS1hO3JldHVybiB0Lm9yZGluYWxOdW1iZXIocix7dW5pdDoieWVhciJ9KX1yZXR1cm4gT2wueShzLGUpfSwieSIpLFk6aShmdW5jdGlvbihzLGUsdCxhKXtsZXQgcj1icChzLGEpLG49cj4wP3I6MS1yO2lmKGU9PT0iWVkiKXtsZXQgbz1uJTEwMDtyZXR1cm4gUHQobywyKX1yZXR1cm4gZT09PSJZbyI/dC5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6InllYXIifSk6UHQobixlLmxlbmd0aCl9LCJZIiksUjppKGZ1bmN0aW9uKHMsZSl7bGV0IHQ9d24ocyk7cmV0dXJuIFB0KHQsZS5sZW5ndGgpfSwiUiIpLHU6aShmdW5jdGlvbihzLGUpe2xldCB0PXMuZ2V0RnVsbFllYXIoKTtyZXR1cm4gUHQodCxlLmxlbmd0aCl9LCJ1IiksUTppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1NYXRoLmNlaWwoKHMuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJRIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UiUVEiOnJldHVybiBQdChhLDIpO2Nhc2UiUW8iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIoYSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJRIikscTppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1NYXRoLmNlaWwoKHMuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJxIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UicXEiOnJldHVybiBQdChhLDIpO2Nhc2UicW8iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIoYSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlInFxcSI6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJxIiksTTppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1zLmdldE1vbnRoKCk7c3dpdGNoKGUpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIE9sLk0ocyxlKTtjYXNlIk1vIjpyZXR1cm4gdC5vcmRpbmFsTnVtYmVyKGErMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiB0Lm1vbnRoKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gdC5tb250aChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQubW9udGgoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiTSIpLEw6aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9cy5nZXRNb250aCgpO3N3aXRjaChlKXtjYXNlIkwiOnJldHVybiBTdHJpbmcoYSsxKTtjYXNlIkxMIjpyZXR1cm4gUHQoYSsxLDIpO2Nhc2UiTG8iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIoYSsxLHt1bml0OiJtb250aCJ9KTtjYXNlIkxMTCI6cmV0dXJuIHQubW9udGgoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiTExMTEwiOnJldHVybiB0Lm1vbnRoKGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gdC5tb250aChhLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJMIiksdzppKGZ1bmN0aW9uKHMsZSx0LGEpe2xldCByPWk5KHMsYSk7cmV0dXJuIGU9PT0id28iP3Qub3JkaW5hbE51bWJlcihyLHt1bml0OiJ3ZWVrIn0pOlB0KHIsZS5sZW5ndGgpfSwidyIpLEk6aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9czkocyk7cmV0dXJuIGU9PT0iSW8iP3Qub3JkaW5hbE51bWJlcihhLHt1bml0OiJ3ZWVrIn0pOlB0KGEsZS5sZW5ndGgpfSwiSSIpLGQ6aShmdW5jdGlvbihzLGUsdCl7cmV0dXJuIGU9PT0iZG8iP3Qub3JkaW5hbE51bWJlcihzLmdldERhdGUoKSx7dW5pdDoiZGF0ZSJ9KTpPbC5kKHMsZSl9LCJkIiksRDppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT12dGUocyk7cmV0dXJuIGU9PT0iRG8iP3Qub3JkaW5hbE51bWJlcihhLHt1bml0OiJkYXlPZlllYXIifSk6UHQoYSxlLmxlbmd0aCl9LCJEIiksRTppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1zLmdldERheSgpO3N3aXRjaChlKXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gdC5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiB0LmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gdC5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIkUiKSxlOmkoZnVuY3Rpb24ocyxlLHQsYSl7bGV0IHI9cy5nZXREYXkoKSxuPShyLWEud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKGUpe2Nhc2UiZSI6cmV0dXJuIFN0cmluZyhuKTtjYXNlImVlIjpyZXR1cm4gUHQobiwyKTtjYXNlImVvIjpyZXR1cm4gdC5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6ImRheSJ9KTtjYXNlImVlZSI6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiB0LmRheShyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJlIiksYzppKGZ1bmN0aW9uKHMsZSx0LGEpe2xldCByPXMuZ2V0RGF5KCksbj0oci1hLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImMiOnJldHVybiBTdHJpbmcobik7Y2FzZSJjYyI6cmV0dXJuIFB0KG4sZS5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIobix7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiB0LmRheShyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sImMiKSxpOmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0RGF5KCkscj1hPT09MD83OmE7c3dpdGNoKGUpe2Nhc2UiaSI6cmV0dXJuIFN0cmluZyhyKTtjYXNlImlpIjpyZXR1cm4gUHQocixlLmxlbmd0aCk7Y2FzZSJpbyI6cmV0dXJuIHQub3JkaW5hbE51bWJlcihyLHt1bml0OiJkYXkifSk7Y2FzZSJpaWkiOnJldHVybiB0LmRheShhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJpaWlpaSI6cmV0dXJuIHQuZGF5KGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJpaWlpaWkiOnJldHVybiB0LmRheShhLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC5kYXkoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiaSIpLGE6aShmdW5jdGlvbihzLGUsdCl7bGV0IHI9cy5nZXRIb3VycygpLzEyPj0xPyJwbSI6ImFtIjtzd2l0Y2goZSl7Y2FzZSJhIjpjYXNlImFhIjpyZXR1cm4gdC5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhIjpyZXR1cm4gdC5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJhYWFhYSI6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC5kYXlQZXJpb2Qocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiYSIpLGI6aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9cy5nZXRIb3VycygpLHI7c3dpdGNoKGE9PT0xMj9yPXI5Lm5vb246YT09PTA/cj1yOS5taWRuaWdodDpyPWEvMTI+PTE/InBtIjoiYW0iLGUpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiB0LmRheVBlcmlvZChyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImIiKSxCOmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0SG91cnMoKSxyO3N3aXRjaChhPj0xNz9yPXI5LmV2ZW5pbmc6YT49MTI/cj1yOS5hZnRlcm5vb246YT49ND9yPXI5Lm1vcm5pbmc6cj1yOS5uaWdodCxlKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gdC5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiB0LmRheVBlcmlvZChyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIkIiKSxoOmkoZnVuY3Rpb24ocyxlLHQpe2lmKGU9PT0iaG8iKXtsZXQgYT1zLmdldEhvdXJzKCklMTI7cmV0dXJuIGE9PT0wJiYoYT0xMiksdC5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSl9cmV0dXJuIE9sLmgocyxlKX0sImgiKSxIOmkoZnVuY3Rpb24ocyxlLHQpe3JldHVybiBlPT09IkhvIj90Lm9yZGluYWxOdW1iZXIocy5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOk9sLkgocyxlKX0sIkgiKSxLOmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0SG91cnMoKSUxMjtyZXR1cm4gZT09PSJLbyI/dC5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSk6UHQoYSxlLmxlbmd0aCl9LCJLIiksazppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1zLmdldEhvdXJzKCk7cmV0dXJuIGE9PT0wJiYoYT0yNCksZT09PSJrbyI/dC5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSk6UHQoYSxlLmxlbmd0aCl9LCJrIiksbTppKGZ1bmN0aW9uKHMsZSx0KXtyZXR1cm4gZT09PSJtbyI/dC5vcmRpbmFsTnVtYmVyKHMuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6T2wubShzLGUpfSwibSIpLHM6aShmdW5jdGlvbihzLGUsdCl7cmV0dXJuIGU9PT0ic28iP3Qub3JkaW5hbE51bWJlcihzLmdldFNlY29uZHMoKSx7dW5pdDoic2Vjb25kIn0pOk9sLnMocyxlKX0sInMiKSxTOmkoZnVuY3Rpb24ocyxlKXtyZXR1cm4gT2wuUyhzLGUpfSwiUyIpLFg6aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9cy5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGE9PT0wKXJldHVybiJaIjtzd2l0Y2goZSl7Y2FzZSJYIjpyZXR1cm4genV0KGEpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIGEzKGEpO2RlZmF1bHQ6cmV0dXJuIGEzKGEsIjoiKX19LCJYIikseDppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1zLmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieCI6cmV0dXJuIHp1dChhKTtjYXNlInh4eHgiOmNhc2UieHgiOnJldHVybiBhMyhhKTtkZWZhdWx0OnJldHVybiBhMyhhLCI6Iil9fSwieCIpLE86aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9cy5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlIk8iOmNhc2UiT08iOmNhc2UiT09PIjpyZXR1cm4iR01UIitNdXQoYSwiOiIpO2RlZmF1bHQ6cmV0dXJuIkdNVCIrYTMoYSwiOiIpfX0sIk8iKSx6OmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIrTXV0KGEsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK2EzKGEsIjoiKX19LCJ6IiksdDppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1NYXRoLnRydW5jKCtzLzFlMyk7cmV0dXJuIFB0KGEsZS5sZW5ndGgpfSwidCIpLFQ6aShmdW5jdGlvbihzLGUsdCl7cmV0dXJuIFB0KCtzLGUubGVuZ3RoKX0sIlQiKX07aShNdXQsImZvcm1hdFRpbWV6b25lU2hvcnQiKTtpKHp1dCwiZm9ybWF0VGltZXpvbmVXaXRoT3B0aW9uYWxNaW51dGVzIik7aShhMywiZm9ybWF0VGltZXpvbmUiKX0pO3ZhciBUdXQsJHV0LEtMYSx2cCx6cGU9ZygoKT0+e1R1dD1pKChzLGUpPT57c3dpdGNoKHMpe2Nhc2UiUCI6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSwiZGF0ZUxvbmdGb3JtYXR0ZXIiKSwkdXQ9aSgocyxlKT0+e3N3aXRjaChzKXtjYXNlInAiOnJldHVybiBlLnRpbWUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlInBwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UicHBwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLnRpbWUoe3dpZHRoOiJmdWxsIn0pfX0sInRpbWVMb25nRm9ybWF0dGVyIiksS0xhPWkoKHMsZSk9PntsZXQgdD1zLm1hdGNoKC8oUCspKHArKT8vKXx8W10sYT10WzFdLHI9dFsyXTtpZighcilyZXR1cm4gVHV0KHMsZSk7bGV0IG47c3dpdGNoKGEpe2Nhc2UiUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoic2hvcnQifSk7YnJlYWs7Y2FzZSJQUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoibWVkaXVtIn0pO2JyZWFrO2Nhc2UiUFBQIjpuPWUuZGF0ZVRpbWUoe3dpZHRoOiJsb25nIn0pO2JyZWFrO2RlZmF1bHQ6bj1lLmRhdGVUaW1lKHt3aWR0aDoiZnVsbCJ9KTticmVha31yZXR1cm4gbi5yZXBsYWNlKCJ7e2RhdGV9fSIsVHV0KGEsZSkpLnJlcGxhY2UoInt7dGltZX19IiwkdXQocixlKSl9LCJkYXRlVGltZUxvbmdGb3JtYXR0ZXIiKSx2cD17cDokdXQsUDpLTGF9fSk7ZnVuY3Rpb24ga3RlKHMpe3JldHVybiBZTGEudGVzdChzKX1mdW5jdGlvbiBTdGUocyl7cmV0dXJuIFpMYS50ZXN0KHMpfWZ1bmN0aW9uIE55KHMsZSx0KXtsZXQgYT1RTGEocyxlLHQpO2lmKGNvbnNvbGUud2FybihhKSxYTGEuaW5jbHVkZXMocykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYSl9ZnVuY3Rpb24gUUxhKHMsZSx0KXtsZXQgYT1zWzBdPT09IlkiPyJ5ZWFycyI6ImRheXMgb2YgdGhlIG1vbnRoIjtyZXR1cm5gVXNlIFxgJHtzLnRvTG93ZXJDYXNlKCl9XGAgaW5zdGVhZCBvZiBcYCR7c31cYCAoaW4gXGAke2V9XGApIGZvciBmb3JtYXR0aW5nICR7YX0gdG8gdGhlIGlucHV0IFxgJHt0fVxgOyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRgfXZhciBZTGEsWkxhLFhMYSxDcGU9ZygoKT0+e1lMYT0vXkQrJC8sWkxhPS9eWSskLyxYTGE9WyJEIiwiREQiLCJZWSIsIllZWVkiXTtpKGt0ZSwiaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbiIpO2koU3RlLCJpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4iKTtpKE55LCJ3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yIik7aShRTGEsIm1lc3NhZ2UiKX0pO2Z1bmN0aW9uIFJ5KHMsZSx0KXtsZXQgYT1FcygpLHI9dD8ubG9jYWxlPz9hLmxvY2FsZT8/bWwsbj10Py5maXJzdFdlZWtDb250YWluc0RhdGU/P3Q/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGw9QWUocyx0Py5pbik7aWYoIWtvKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcD1lLm1hdGNoKGVFYSkubWFwKHU9PntsZXQgYz11WzBdO2lmKGM9PT0icCJ8fGM9PT0iUCIpe2xldCBiPXZwW2NdO3JldHVybiBiKHUsci5mb3JtYXRMb25nKX1yZXR1cm4gdX0pLmpvaW4oIiIpLm1hdGNoKEpMYSkubWFwKHU9PntpZih1PT09IicnIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZToiJyJ9O2xldCBjPXVbMF07aWYoYz09PSInIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTppRWEodSl9O2lmKEF5W2NdKXJldHVybntpc1Rva2VuOiEwLHZhbHVlOnV9O2lmKGMubWF0Y2goc0VhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK2MrImAiKTtyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTp1fX0pO3IubG9jYWxpemUucHJlcHJvY2Vzc29yJiYocD1yLmxvY2FsaXplLnByZXByb2Nlc3NvcihsLHApKTtsZXQgZD17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOm4sd2Vla1N0YXJ0c09uOm8sbG9jYWxlOnJ9O3JldHVybiBwLm1hcCh1PT57aWYoIXUuaXNUb2tlbilyZXR1cm4gdS52YWx1ZTtsZXQgYz11LnZhbHVlOyghdD8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZTdGUoYyl8fCF0Py51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZrdGUoYykpJiZOeShjLGUsU3RyaW5nKHMpKTtsZXQgYj1BeVtjWzBdXTtyZXR1cm4gYihsLGMsci5sb2NhbGl6ZSxkKX0pLmpvaW4oIiIpfWZ1bmN0aW9uIGlFYShzKXtsZXQgZT1zLm1hdGNoKHRFYSk7cmV0dXJuIGU/ZVsxXS5yZXBsYWNlKGFFYSwiJyIpOnN9dmFyIEpMYSxlRWEsdEVhLGFFYSxzRWEsWWtzLFRwZT1nKCgpPT57SjQoKTtHbygpO0N1dCgpO3pwZSgpO0NwZSgpO2gwKCk7YXQoKTtKTGE9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxlRWE9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csdEVhPS9eJyhbXl0qPyknPyQvLGFFYT0vJycvZyxzRWE9L1thLXpBLVpdLztpKFJ5LCJmb3JtYXQiKTtpKGlFYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7WWtzPVJ5fSk7ZnVuY3Rpb24gX3RlKHMsZSx0KXtsZXQgYT1FcygpLHI9dD8ubG9jYWxlPz9hLmxvY2FsZT8/bWwsbj0yNTIwLG89S28ocyxlKTtpZihpc05hTihvKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSx0LHthZGRTdWZmaXg6dD8uYWRkU3VmZml4LGNvbXBhcmlzb246b30pLFtwLGRdPVZ0KHQ/LmluLC4uLm8+MD9bZSxzXTpbcyxlXSksdT1pZChkLHApLGM9KEZpKGQpLUZpKHApKS8xZTMsYj1NYXRoLnJvdW5kKCh1LWMpLzYwKSx2O2lmKGI8MilyZXR1cm4gdD8uaW5jbHVkZVNlY29uZHM/dTw1P3IuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUsbCk6dTwxMD9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxsKTp1PDIwP3IuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLGwpOnU8NDA/ci5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAsbCk6dTw2MD9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLGwpOnIuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLGwpOmI9PT0wP3IuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEsbCk6ci5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGIsbCk7aWYoYjw0NSlyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGIsbCk7aWYoYjw5MClyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEsbCk7aWYoYjxINyl7bGV0IHg9TWF0aC5yb3VuZChiLzYwKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHgsbCl9ZWxzZXtpZihiPG4pcmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLGwpO2lmKGI8Y3Ape2xldCB4PU1hdGgucm91bmQoYi9INyk7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix4LGwpfWVsc2UgaWYoYjxjcCoyKXJldHVybiB2PU1hdGgucm91bmQoYi9jcCksci5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIix2LGwpfWlmKHY9bXAoZCxwKSx2PDEyKXtsZXQgeD1NYXRoLnJvdW5kKGIvY3ApO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix4LGwpfWVsc2V7bGV0IHg9diUxMixtPU1hdGgudHJ1bmModi8xMik7cmV0dXJuIHg8Mz9yLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsbSxsKTp4PDk/ci5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsbSxsKTpyLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLG0rMSxsKX19dmFyIG9TcywkcGU9ZygoKT0+e0o0KCk7R28oKTt1MCgpO1JzKCk7SzQoKTt3YSgpO0x5KCk7RXkoKTtpKF90ZSwiZm9ybWF0RGlzdGFuY2UiKTtvU3M9X3RlfSk7ZnVuY3Rpb24gTXRlKHMsZSx0KXtsZXQgYT1FcygpLHI9dD8ubG9jYWxlPz9hLmxvY2FsZT8/bWwsbj1LbyhzLGUpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbz1PYmplY3QuYXNzaWduKHt9LHQse2FkZFN1ZmZpeDp0Py5hZGRTdWZmaXgsY29tcGFyaXNvbjpufSksW2wscF09VnQodD8uaW4sLi4ubj4wP1tlLHNdOltzLGVdKSxkPVlvKHQ/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSx1PXAuZ2V0VGltZSgpLWwuZ2V0VGltZSgpLGM9dS9XbyxiPUZpKHApLUZpKGwpLHY9KHUtYikvV28seD10Py51bml0LG07aWYoeD9tPXg6YzwxP209InNlY29uZCI6Yzw2MD9tPSJtaW51dGUiOmM8SDc/bT0iaG91ciI6djxjcD9tPSJkYXkiOnY8UXVlP209Im1vbnRoIjptPSJ5ZWFyIixtPT09InNlY29uZCIpe2xldCBmPWQodS8xZTMpO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4U2Vjb25kcyIsZixvKX1lbHNlIGlmKG09PT0ibWludXRlIil7bGV0IGY9ZChjKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGYsbyl9ZWxzZSBpZihtPT09ImhvdXIiKXtsZXQgZj1kKGMvNjApO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4SG91cnMiLGYsbyl9ZWxzZSBpZihtPT09ImRheSIpe2xldCBmPWQodi9INyk7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhEYXlzIixmLG8pfWVsc2UgaWYobT09PSJtb250aCIpe2xldCBmPWQodi9jcCk7cmV0dXJuIGY9PT0xMiYmeCE9PSJtb250aCI/ci5mb3JtYXREaXN0YW5jZSgieFllYXJzIiwxLG8pOnIuZm9ybWF0RGlzdGFuY2UoInhNb250aHMiLGYsbyl9ZWxzZXtsZXQgZj1kKHYvUXVlKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieFllYXJzIixmLG8pfX12YXIgZ1NzLERwZT1nKCgpPT57SjQoKTtHbygpO2YwKCk7dTAoKTtScygpO0s0KCk7d2EoKTtpKE10ZSwiZm9ybWF0RGlzdGFuY2VTdHJpY3QiKTtnU3M9TXRlfSk7ZnVuY3Rpb24gRHV0KHMsZSl7cmV0dXJuIF90ZShzLFBhKHMpLGUpfXZhciB3U3MsTHV0PWcoKCk9PntxcigpOyRwZSgpO2koRHV0LCJmb3JtYXREaXN0YW5jZVRvTm93Iik7d1NzPUR1dH0pO2Z1bmN0aW9uIEV1dChzLGUpe3JldHVybiBNdGUocyxQYShzKSxlKX12YXIgelNzLFB1dD1nKCgpPT57cXIoKTtEcGUoKTtpKEV1dCwiZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdCIpO3pTcz1FdXR9KTtmdW5jdGlvbiBJdXQocyxlKXtsZXQgdD1FcygpLGE9ZT8ubG9jYWxlPz90LmxvY2FsZT8/bWwscj1lPy5mb3JtYXQ/P3JFYSxuPWU/Lnplcm8/PyExLG89ZT8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2U/ci5yZWR1Y2UoKHAsZCk9PntsZXQgdT1geCR7ZC5yZXBsYWNlKC8oXi4pLyxiPT5iLnRvVXBwZXJDYXNlKCkpfWAsYz1zW2RdO3JldHVybiBjIT09dm9pZCAwJiYobnx8c1tkXSk/cC5jb25jYXQoYS5mb3JtYXREaXN0YW5jZSh1LGMpKTpwfSxbXSkuam9pbihvKToiIn12YXIgckVhLExTcyxBdXQ9ZygoKT0+e0o0KCk7R28oKTtyRWE9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtpKEl1dCwiZm9ybWF0RHVyYXRpb24iKTtMU3M9SXV0fSk7ZnVuY3Rpb24gTnV0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7aWYoaXNOYU4oK3QpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1lPy5mb3JtYXQ/PyJleHRlbmRlZCIscj1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89IiIsbD1hPT09ImV4dGVuZGVkIj8iLSI6IiIscD1hPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYociE9PSJ0aW1lIil7bGV0IGQ9UHQodC5nZXREYXRlKCksMiksdT1QdCh0LmdldE1vbnRoKCkrMSwyKTtuPWAke1B0KHQuZ2V0RnVsbFllYXIoKSw0KX0ke2x9JHt1fSR7bH0ke2R9YH1pZihyIT09ImRhdGUiKXtsZXQgZD10LmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoZCE9PTApe2xldCBtPU1hdGguYWJzKGQpLGY9UHQoTWF0aC50cnVuYyhtLzYwKSwyKSx5PVB0KG0lNjAsMik7bz1gJHtkPDA/IisiOiItIn0ke2Z9OiR7eX1gfWVsc2Ugbz0iWiI7bGV0IHU9UHQodC5nZXRIb3VycygpLDIpLGM9UHQodC5nZXRNaW51dGVzKCksMiksYj1QdCh0LmdldFNlY29uZHMoKSwyKSx2PW49PT0iIj8iIjoiVCIseD1bdSxjLGJdLmpvaW4ocCk7bj1gJHtufSR7dn0ke3h9JHtvfWB9cmV0dXJuIG59dmFyIE5TcyxSdXQ9ZygoKT0+e3QzKCk7YXQoKTtpKE51dCwiZm9ybWF0SVNPIik7TlNzPU51dH0pO2Z1bmN0aW9uIE91dChzLGUpe2xldCB0PUFlKHMsZT8uaW4pO2lmKCFrbyh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGE9ZT8uZm9ybWF0Pz8iZXh0ZW5kZWQiLHI9ZT8ucmVwcmVzZW50YXRpb24/PyJjb21wbGV0ZSIsbj0iIixvPWE9PT0iZXh0ZW5kZWQiPyItIjoiIixsPWE9PT0iZXh0ZW5kZWQiPyI6IjoiIjtpZihyIT09InRpbWUiKXtsZXQgcD1QdCh0LmdldERhdGUoKSwyKSxkPVB0KHQuZ2V0TW9udGgoKSsxLDIpO249YCR7UHQodC5nZXRGdWxsWWVhcigpLDQpfSR7b30ke2R9JHtvfSR7cH1gfWlmKHIhPT0iZGF0ZSIpe2xldCBwPVB0KHQuZ2V0SG91cnMoKSwyKSxkPVB0KHQuZ2V0TWludXRlcygpLDIpLHU9UHQodC5nZXRTZWNvbmRzKCksMik7bj1gJHtufSR7bj09PSIiPyIiOiIgIn0ke3B9JHtsfSR7ZH0ke2x9JHt1fWB9cmV0dXJuIG59dmFyIHFTcyxGdXQ9ZygoKT0+e3QzKCk7aDAoKTthdCgpO2koT3V0LCJmb3JtYXRJU085MDc1Iik7cVNzPU91dH0pO2Z1bmN0aW9uIEJ1dChzKXtsZXR7eWVhcnM6ZT0wLG1vbnRoczp0PTAsZGF5czphPTAsaG91cnM6cj0wLG1pbnV0ZXM6bj0wLHNlY29uZHM6bz0wfT1zO3JldHVybmBQJHtlfVkke3R9TSR7YX1EVCR7cn1IJHtufU0ke299U2B9dmFyIFVTcyxIdXQ9ZygoKT0+e2koQnV0LCJmb3JtYXRJU09EdXJhdGlvbiIpO1VTcz1CdXR9KTtmdW5jdGlvbiBxdXQocyxlKXtsZXQgdD1BZShzLGU/LmluKTtpZigha28odCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWU/LmZyYWN0aW9uRGlnaXRzPz8wLHI9UHQodC5nZXREYXRlKCksMiksbj1QdCh0LmdldE1vbnRoKCkrMSwyKSxvPXQuZ2V0RnVsbFllYXIoKSxsPVB0KHQuZ2V0SG91cnMoKSwyKSxwPVB0KHQuZ2V0TWludXRlcygpLDIpLGQ9UHQodC5nZXRTZWNvbmRzKCksMiksdT0iIjtpZihhPjApe2xldCB2PXQuZ2V0TWlsbGlzZWNvbmRzKCkseD1NYXRoLnRydW5jKHYqTWF0aC5wb3coMTAsYS0zKSk7dT0iLiIrUHQoeCxhKX1sZXQgYz0iIixiPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihiIT09MCl7bGV0IHY9TWF0aC5hYnMoYikseD1QdChNYXRoLnRydW5jKHYvNjApLDIpLG09UHQodiU2MCwyKTtjPWAke2I8MD8iKyI6Ii0ifSR7eH06JHttfWB9ZWxzZSBjPSJaIjtyZXR1cm5gJHtvfS0ke259LSR7cn1UJHtsfToke3B9OiR7ZH0ke3V9JHtjfWB9dmFyIFhTcyxqdXQ9ZygoKT0+e3QzKCk7aDAoKTthdCgpO2kocXV0LCJmb3JtYXRSRkMzMzM5Iik7WFNzPXF1dH0pO2Z1bmN0aW9uIFZ1dChzKXtsZXQgZT1BZShzKTtpZigha28oZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCB0PW9FYVtlLmdldFVUQ0RheSgpXSxhPVB0KGUuZ2V0VVRDRGF0ZSgpLDIpLHI9bkVhW2UuZ2V0VVRDTW9udGgoKV0sbj1lLmdldFVUQ0Z1bGxZZWFyKCksbz1QdChlLmdldFVUQ0hvdXJzKCksMiksbD1QdChlLmdldFVUQ01pbnV0ZXMoKSwyKSxwPVB0KGUuZ2V0VVRDU2Vjb25kcygpLDIpO3JldHVybmAke3R9LCAke2F9ICR7cn0gJHtufSAke299OiR7bH06JHtwfSBHTVRgfXZhciBvRWEsbkVhLHNfcyxVdXQ9ZygoKT0+e3QzKCk7aDAoKTthdCgpO29FYT1bIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG5FYT1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO2koVnV0LCJmb3JtYXRSRkM3MjMxIik7c19zPVZ1dH0pO2Z1bmN0aW9uIFd1dChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPUVzKCksbz10Py5sb2NhbGU/P24ubG9jYWxlPz9tbCxsPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHA9bm8oYSxyKTtpZihpc05hTihwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGQ7cDwtNj9kPSJvdGhlciI6cDwtMT9kPSJsYXN0V2VlayI6cDwwP2Q9Inllc3RlcmRheSI6cDwxP2Q9InRvZGF5IjpwPDI/ZD0idG9tb3Jyb3ciOnA8Nz9kPSJuZXh0V2VlayI6ZD0ib3RoZXIiO2xldCB1PW8uZm9ybWF0UmVsYXRpdmUoZCxhLHIse2xvY2FsZTpvLHdlZWtTdGFydHNPbjpsfSk7cmV0dXJuIFJ5KGEsdSx7bG9jYWxlOm8sd2Vla1N0YXJ0c09uOmx9KX12YXIgdV9zLEd1dD1nKCgpPT57SjQoKTtHbygpO1JzKCk7cDAoKTtUcGUoKTtpKFd1dCwiZm9ybWF0UmVsYXRpdmUiKTt1X3M9V3V0fSk7ZnVuY3Rpb24gS3V0KHMsZSl7cmV0dXJuIEFlKHMqMWUzLGU/LmluKX12YXIgbV9zLFl1dD1nKCgpPT57YXQoKTtpKEt1dCwiZnJvbVVuaXhUaW1lIik7bV9zPUt1dH0pO2Z1bmN0aW9uIHp0ZShzLGUpe3JldHVybiBBZShzLGU/LmluKS5nZXREYXRlKCl9dmFyIHhfcyxMcGU9ZygoKT0+e2F0KCk7aSh6dGUsImdldERhdGUiKTt4X3M9enRlfSk7ZnVuY3Rpb24geHAocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0RGF5KCl9dmFyIFNfcyxPeT1nKCgpPT57YXQoKTtpKHhwLCJnZXREYXkiKTtTX3M9eHB9KTtmdW5jdGlvbiBDdGUocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0RnVsbFllYXIoKSxyPXQuZ2V0TW9udGgoKSxuPXR0KHQsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoYSxyKzEsMCksbi5zZXRIb3VycygwLDAsMCwwKSxuLmdldERhdGUoKX12YXIgVF9zLEVwZT1nKCgpPT57R3QoKTthdCgpO2koQ3RlLCJnZXREYXlzSW5Nb250aCIpO1Rfcz1DdGV9KTtmdW5jdGlvbiBUdGUocyxlKXtsZXQgYT1BZShzLGU/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiBhJTQwMD09PTB8fGElND09PTAmJmElMTAwIT09MH12YXIgRV9zLFBwZT1nKCgpPT57YXQoKTtpKFR0ZSwiaXNMZWFwWWVhciIpO0Vfcz1UdGV9KTtmdW5jdGlvbiBadXQocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4gTnVtYmVyLmlzTmFOKCt0KT9OYU46VHRlKHQpPzM2NjozNjV9dmFyIFJfcyxYdXQ9ZygoKT0+e1BwZSgpO2F0KCk7aShadXQsImdldERheXNJblllYXIiKTtSX3M9WnV0fSk7ZnVuY3Rpb24gUXV0KHMsZSl7bGV0IGE9QWUocyxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gTWF0aC5mbG9vcihhLzEwKSoxMH12YXIgSF9zLEp1dD1nKCgpPT57YXQoKTtpKFF1dCwiZ2V0RGVjYWRlIik7SF9zPVF1dH0pO2Z1bmN0aW9uICR0ZSgpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LEVzKCkpfXZhciBVX3MsSXBlPWcoKCk9PntHbygpO2koJHRlLCJnZXREZWZhdWx0T3B0aW9ucyIpO1Vfcz0kdGV9KTtmdW5jdGlvbiBlcHQocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0SG91cnMoKX12YXIgWV9zLHRwdD1nKCgpPT57YXQoKTtpKGVwdCwiZ2V0SG91cnMiKTtZX3M9ZXB0fSk7ZnVuY3Rpb24gRHRlKHMsZSl7bGV0IHQ9QWUocyxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIHQ9PT0wPzc6dH12YXIgSl9zLEFwZT1nKCgpPT57YXQoKTtpKER0ZSwiZ2V0SVNPRGF5Iik7Sl9zPUR0ZX0pO2Z1bmN0aW9uIGFwdChzLGUpe2xldCB0PVJsKHMsZSkscj0rUmwoaHAodCw2MCkpLSt0O3JldHVybiBNYXRoLnJvdW5kKHIvWDIpfXZhciByTXMsc3B0PWcoKCk9PnskeSgpO3dhKCk7VjcoKTtpKGFwdCwiZ2V0SVNPV2Vla3NJblllYXIiKTtyTXM9YXB0fSk7ZnVuY3Rpb24gaXB0KHMpe3JldHVybiBBZShzKS5nZXRNaWxsaXNlY29uZHMoKX12YXIgY01zLHJwdD1nKCgpPT57YXQoKTtpKGlwdCwiZ2V0TWlsbGlzZWNvbmRzIik7Y01zPWlwdH0pO2Z1bmN0aW9uIG9wdChzLGUpe3JldHVybiBBZShzLGU/LmluKS5nZXRNaW51dGVzKCl9dmFyIGhNcyxucHQ9ZygoKT0+e2F0KCk7aShvcHQsImdldE1pbnV0ZXMiKTtoTXM9b3B0fSk7ZnVuY3Rpb24gbHB0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldE1vbnRoKCl9dmFyIGJNcyxjcHQ9ZygoKT0+e2F0KCk7aShscHQsImdldE1vbnRoIik7Yk1zPWxwdH0pO2Z1bmN0aW9uIGRwdChzLGUpe2xldFt0LGFdPVsrQWUocy5zdGFydCksK0FlKHMuZW5kKV0uc29ydCgoYyxiKT0+Yy1iKSxbcixuXT1bK0FlKGUuc3RhcnQpLCtBZShlLmVuZCldLnNvcnQoKGMsYik9PmMtYik7aWYoISh0PG4mJnI8YSkpcmV0dXJuIDA7bGV0IGw9cjx0P3Q6cixwPWwtRmkobCksZD1uPmE/YTpuLHU9ZC1GaShkKTtyZXR1cm4gTWF0aC5jZWlsKCh1LXApL1BlZSl9dmFyIFNNcyx1cHQ9ZygoKT0+e3UwKCk7d2EoKTthdCgpO2koZHB0LCJnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFscyIpO1NNcz1kcHR9KTtmdW5jdGlvbiBwcHQocyl7cmV0dXJuIEFlKHMpLmdldFNlY29uZHMoKX12YXIgQ01zLGhwdD1nKCgpPT57YXQoKTtpKHBwdCwiZ2V0U2Vjb25kcyIpO0NNcz1wcHR9KTtmdW5jdGlvbiBmcHQocyl7cmV0dXJuK0FlKHMpfXZhciBMTXMsbXB0PWcoKCk9PnthdCgpO2koZnB0LCJnZXRUaW1lIik7TE1zPWZwdH0pO2Z1bmN0aW9uIGdwdChzKXtyZXR1cm4gTWF0aC50cnVuYygrQWUocykvMWUzKX12YXIgQU1zLGJwdD1nKCgpPT57YXQoKTtpKGdwdCwiZ2V0VW5peFRpbWUiKTtBTXM9Z3B0fSk7ZnVuY3Rpb24gdnB0KHMsZSl7bGV0IHQ9RXMoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Qud2Vla1N0YXJ0c09uPz90LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHI9enRlKEFlKHMsZT8uaW4pKTtpZihpc05hTihyKSlyZXR1cm4gTmFOO2xldCBuPXhwKGdwKHMsZSkpLG89YS1uO288PTAmJihvKz03KTtsZXQgbD1yLW87cmV0dXJuIE1hdGguY2VpbChsLzcpKzF9dmFyIGpNcyx4cHQ9ZygoKT0+e0dvKCk7THBlKCk7T3koKTtQeSgpO2F0KCk7aSh2cHQsImdldFdlZWtPZk1vbnRoIik7ak1zPXZwdH0pO2Z1bmN0aW9uIEx0ZShzLGUpe2xldCB0PUFlKHMsZT8uaW4pLGE9dC5nZXRNb250aCgpO3JldHVybiB0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSxhKzEsMCksdC5zZXRIb3VycygwLDAsMCwwKSxBZSh0LGU/LmluKX12YXIgR01zLE5wZT1nKCgpPT57YXQoKTtpKEx0ZSwibGFzdERheU9mTW9udGgiKTtHTXM9THRlfSk7ZnVuY3Rpb24geXB0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIFo0KEx0ZSh0LGUpLGdwKHQsZSksZSkrMX12YXIgZXpzLHdwdD1nKCgpPT57ZXRlKCk7TnBlKCk7UHkoKTthdCgpO2koeXB0LCJnZXRXZWVrc0luTW9udGgiKTtlenM9eXB0fSk7ZnVuY3Rpb24ga3B0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIGl6cyxTcHQ9ZygoKT0+e2F0KCk7aShrcHQsImdldFllYXIiKTtpenM9a3B0fSk7ZnVuY3Rpb24gX3B0KHMpe3JldHVybiBNYXRoLnRydW5jKHMqTmwpfXZhciBsenMsTXB0PWcoKCk9Pnt3YSgpO2koX3B0LCJob3Vyc1RvTWlsbGlzZWNvbmRzIik7bHpzPV9wdH0pO2Z1bmN0aW9uIHpwdChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKkllZSl9dmFyIHB6cyxDcHQ9ZygoKT0+e3dhKCk7aSh6cHQsImhvdXJzVG9NaW51dGVzIik7cHpzPXpwdH0pO2Z1bmN0aW9uIFRwdChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKkc0KX12YXIgZ3pzLCRwdD1nKCgpPT57d2EoKTtpKFRwdCwiaG91cnNUb1NlY29uZHMiKTtnenM9VHB0fSk7ZnVuY3Rpb24gRHB0KHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpO2lmKGlzTmFOKCthKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdGFydCBkYXRlIGlzIGludmFsaWQiKTtpZihpc05hTigrcikpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgaXMgaW52YWxpZCIpO2lmKHQ/LmFzc2VydFBvc2l0aXZlJiYrYT4rcil0aHJvdyBuZXcgVHlwZUVycm9yKCJFbmQgZGF0ZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IGRhdGUiKTtyZXR1cm57c3RhcnQ6YSxlbmQ6cn19dmFyIHl6cyxMcHQ9ZygoKT0+e1JzKCk7aShEcHQsImludGVydmFsIik7eXpzPURwdH0pO2Z1bmN0aW9uIEVwdChzLGUpe2xldHtzdGFydDp0LGVuZDphfT1sbyhlPy5pbixzKSxyPXt9LG49ZHRlKGEsdCk7biYmKHIueWVhcnM9bik7bGV0IG89ZHAodCx7eWVhcnM6ci55ZWFyc30pLGw9bXAoYSxvKTtsJiYoci5tb250aHM9bCk7bGV0IHA9ZHAobyx7bW9udGhzOnIubW9udGhzfSksZD1ZNyhhLHApO2QmJihyLmRheXM9ZCk7bGV0IHU9ZHAocCx7ZGF5czpyLmRheXN9KSxjPVg0KGEsdSk7YyYmKHIuaG91cnM9Yyk7bGV0IGI9ZHAodSx7aG91cnM6ci5ob3Vyc30pLHY9UTQoYSxiKTt2JiYoci5taW51dGVzPXYpO2xldCB4PWRwKGIse21pbnV0ZXM6ci5taW51dGVzfSksbT1pZChhLHgpO3JldHVybiBtJiYoci5zZWNvbmRzPW0pLHJ9dmFyIEx6cyxQcHQ9ZygoKT0+e3JkKCk7YXBlKCk7YXRlKCk7c3RlKCk7b3RlKCk7THkoKTtFeSgpO3lwZSgpO2koRXB0LCJpbnRlcnZhbFRvRHVyYXRpb24iKTtMenM9RXB0fSk7ZnVuY3Rpb24gSXB0KHMsZSx0KXtsZXQgYTtyZXR1cm4gbEVhKGUpP2E9ZTp0PWUsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodD8ubG9jYWxlLGEpLmZvcm1hdChBZShzKSl9ZnVuY3Rpb24gbEVhKHMpe3JldHVybiBzIT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gcyl9dmFyIEF6cyxBcHQ9ZygoKT0+e2F0KCk7aShJcHQsImludGxGb3JtYXQiKTtpKGxFYSwiaXNGb3JtYXRPcHRpb25zIik7QXpzPUlwdH0pO2Z1bmN0aW9uIE5wdChzLGUsdCl7bGV0IGE9MCxyLFtuLG9dPVZ0KHQ/LmluLHMsZSk7aWYodD8udW5pdClyPXQ/LnVuaXQscj09PSJzZWNvbmQiP2E9aWQobixvKTpyPT09Im1pbnV0ZSI/YT1RNChuLG8pOnI9PT0iaG91ciI/YT1YNChuLG8pOnI9PT0iZGF5Ij9hPW5vKG4sbyk6cj09PSJ3ZWVrIj9hPVo0KG4sbyk6cj09PSJtb250aCI/YT1ZNChuLG8pOnI9PT0icXVhcnRlciI/YT1LNyhuLG8pOnI9PT0ieWVhciImJihhPWZwKG4sbykpO2Vsc2V7bGV0IHA9aWQobixvKTtNYXRoLmFicyhwKTxxNz8oYT1pZChuLG8pLHI9InNlY29uZCIpOk1hdGguYWJzKHApPEc0PyhhPVE0KG4sbykscj0ibWludXRlIik6TWF0aC5hYnMocCk8TGVlJiZNYXRoLmFicyhubyhuLG8pKTwxPyhhPVg0KG4sbykscj0iaG91ciIpOk1hdGguYWJzKHApPGEwdCYmKGE9bm8obixvKSkmJk1hdGguYWJzKGEpPDc/cj0iZGF5IjpNYXRoLmFicyhwKTxlcGU/KGE9WjQobixvKSxyPSJ3ZWVrIik6TWF0aC5hYnMocCk8czB0PyhhPVk0KG4sbykscj0ibW9udGgiKTpNYXRoLmFicyhwKTxKdWU/SzcobixvKTw0PyhhPUs3KG4sbykscj0icXVhcnRlciIpOihhPWZwKG4sbykscj0ieWVhciIpOihhPWZwKG4sbykscj0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQodD8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi50fSkuZm9ybWF0KGEscil9dmFyIEt6cyxScHQ9ZygoKT0+e1JzKCk7d2EoKTtwMCgpO0plZSgpO2JwZSgpO2V0ZSgpO3R0ZSgpO3N0ZSgpO290ZSgpO0V5KCk7aShOcHQsImludGxGb3JtYXREaXN0YW5jZSIpO0t6cz1OcHR9KTtmdW5jdGlvbiBPcHQocyxlKXtyZXR1cm4rQWUocyk+K0FlKGUpfXZhciBRenMsRnB0PWcoKCk9PnthdCgpO2koT3B0LCJpc0FmdGVyIik7UXpzPU9wdH0pO2Z1bmN0aW9uIEJwdChzLGUpe3JldHVybitBZShzKTwrQWUoZSl9dmFyIGFDcyxIcHQ9ZygoKT0+e2F0KCk7aShCcHQsImlzQmVmb3JlIik7YUNzPUJwdH0pO2Z1bmN0aW9uIHFwdChzLGUpe3JldHVybitBZShzKT09K0FlKGUpfXZhciBvQ3MsanB0PWcoKCk9PnthdCgpO2kocXB0LCJpc0VxdWFsIik7b0NzPXFwdH0pO2Z1bmN0aW9uIFZwdChzLGUsdCl7bGV0IGE9bmV3IERhdGUocyxlLHQpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT1zJiZhLmdldE1vbnRoKCk9PT1lJiZhLmdldERhdGUoKT09PXR9dmFyIGNDcyxVcHQ9ZygoKT0+e2koVnB0LCJpc0V4aXN0cyIpO2NDcz1WcHR9KTtmdW5jdGlvbiBXcHQocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0RGF0ZSgpPT09MX12YXIgaENzLEdwdD1nKCgpPT57YXQoKTtpKFdwdCwiaXNGaXJzdERheU9mTW9udGgiKTtoQ3M9V3B0fSk7ZnVuY3Rpb24gS3B0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldERheSgpPT09NX12YXIgYkNzLFlwdD1nKCgpPT57YXQoKTtpKEtwdCwiaXNGcmlkYXkiKTtiQ3M9S3B0fSk7ZnVuY3Rpb24gWnB0KHMpe3JldHVybitBZShzKT5EYXRlLm5vdygpfXZhciB3Q3MsWHB0PWcoKCk9PnthdCgpO2koWnB0LCJpc0Z1dHVyZSIpO3dDcz1acHR9KTtmdW5jdGlvbiBFdGUocyxlKXtsZXQgdD1jRWEoZSk/bmV3IGUoMCk6dHQoZSwwKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihzLmdldEZ1bGxZZWFyKCkscy5nZXRNb250aCgpLHMuZ2V0RGF0ZSgpKSx0LnNldEhvdXJzKHMuZ2V0SG91cnMoKSxzLmdldE1pbnV0ZXMoKSxzLmdldFNlY29uZHMoKSxzLmdldE1pbGxpc2Vjb25kcygpKSx0fWZ1bmN0aW9uIGNFYShzKXtyZXR1cm4gdHlwZW9mIHM9PSJmdW5jdGlvbiImJnMucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PXN9dmFyIE1DcyxScGU9ZygoKT0+e0d0KCk7aShFdGUsInRyYW5zcG9zZSIpO2koY0VhLCJpc0NvbnN0cnVjdG9yIik7TUNzPUV0ZX0pO3ZhciBkRWEsUHRlLEl0ZSxBdGUsT3BlPWcoKCk9PntHdCgpO1JwZSgpO2RFYT0xMCxQdGU9Y2xhc3N7c3RhdGlje2kodGhpcywiU2V0dGVyIil9c3ViUHJpb3JpdHk9MDt2YWxpZGF0ZShlLHQpe3JldHVybiEwfX0sSXRlPWNsYXNzIGV4dGVuZHMgUHRle3N0YXRpY3tpKHRoaXMsIlZhbHVlU2V0dGVyIil9Y29uc3RydWN0b3IoZSx0LGEscixuKXtzdXBlcigpLHRoaXMudmFsdWU9ZSx0aGlzLnZhbGlkYXRlVmFsdWU9dCx0aGlzLnNldFZhbHVlPWEsdGhpcy5wcmlvcml0eT1yLG4mJih0aGlzLnN1YlByaW9yaXR5PW4pfXZhbGlkYXRlKGUsdCl7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZShlLHRoaXMudmFsdWUsdCl9c2V0KGUsdCxhKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZShlLHQsdGhpcy52YWx1ZSxhKX19LEF0ZT1jbGFzcyBleHRlbmRzIFB0ZXtzdGF0aWN7aSh0aGlzLCJEYXRlVGltZXpvbmVTZXR0ZXIiKX1wcmlvcml0eT1kRWE7c3ViUHJpb3JpdHk9LTE7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMuY29udGV4dD1lfHwoYT0+dHQodCxhKSl9c2V0KGUsdCl7cmV0dXJuIHQudGltZXN0YW1wSXNTZXQ/ZTp0dChlLEV0ZShlLHRoaXMuY29udGV4dCkpfX19KTt2YXIgRXQseHM9ZygoKT0+e09wZSgpO0V0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlBhcnNlciIpfXJ1bihlLHQsYSxyKXtsZXQgbj10aGlzLnBhcnNlKGUsdCxhLHIpO3JldHVybiBuP3tzZXR0ZXI6bmV3IEl0ZShuLnZhbHVlLHRoaXMudmFsaWRhdGUsdGhpcy5zZXQsdGhpcy5wcmlvcml0eSx0aGlzLnN1YlByaW9yaXR5KSxyZXN0Om4ucmVzdH06bnVsbH12YWxpZGF0ZShlLHQsYSl7cmV0dXJuITB9fX0pO3ZhciBOdGUsUXB0PWcoKCk9Pnt4cygpO050ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkVyYVBhcnNlciIpfXByaW9yaXR5PTE0MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiBhLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gYS5lcmEoZSx7d2lkdGg6IndpZGUifSl8fGEuZXJhKGUse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8YS5lcmEoZSx7d2lkdGg6Im5hcnJvdyJ9KX19c2V0KGUsdCxhKXtyZXR1cm4gdC5lcmE9YSxlLnNldEZ1bGxZZWFyKGEsMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiUiIsInUiLCJ0IiwiVCJdfX0pO3ZhciBjcyxrYyxabz1nKCgpPT57Y3M9e21vbnRoOi9eKDFbMC0yXXwwP1xkKS8sZGF0ZTovXigzWzAtMV18WzAtMl0/XGQpLyxkYXlPZlllYXI6L14oMzZbMC02XXwzWzAtNV1cZHxbMC0yXT9cZD9cZCkvLHdlZWs6L14oNVswLTNdfFswLTRdP1xkKS8saG91cjIzaDovXigyWzAtM118WzAtMV0/XGQpLyxob3VyMjRoOi9eKDJbMC00XXxbMC0xXT9cZCkvLGhvdXIxMWg6L14oMVswLTFdfDA/XGQpLyxob3VyMTJoOi9eKDFbMC0yXXwwP1xkKS8sbWludXRlOi9eWzAtNV0/XGQvLHNlY29uZDovXlswLTVdP1xkLyxzaW5nbGVEaWdpdDovXlxkLyx0d29EaWdpdHM6L15cZHsxLDJ9Lyx0aHJlZURpZ2l0czovXlxkezEsM30vLGZvdXJEaWdpdHM6L15cZHsxLDR9LyxhbnlEaWdpdHNTaWduZWQ6L14tP1xkKy8sc2luZ2xlRGlnaXRTaWduZWQ6L14tP1xkLyx0d29EaWdpdHNTaWduZWQ6L14tP1xkezEsMn0vLHRocmVlRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDN9Lyxmb3VyRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDR9L30sa2M9e2Jhc2ljT3B0aW9uYWxNaW51dGVzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSk/fFovLGJhc2ljOi9eKFsrLV0pKFxkezJ9KShcZHsyfSl8Wi8sYmFzaWNPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pKFxkezJ9KSgoXGR7Mn0pKT98Wi8sZXh0ZW5kZWQ6L14oWystXSkoXGR7Mn0pOihcZHsyfSl8Wi8sZXh0ZW5kZWRPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pOihcZHsyfSkoOihcZHsyfSkpP3xaL319KTtmdW5jdGlvbiBPcyhzLGUpe3JldHVybiBzJiZ7dmFsdWU6ZShzLnZhbHVlKSxyZXN0OnMucmVzdH19ZnVuY3Rpb24gdHMocyxlKXtsZXQgdD1lLm1hdGNoKHMpO3JldHVybiB0P3t2YWx1ZTpwYXJzZUludCh0WzBdLDEwKSxyZXN0OmUuc2xpY2UodFswXS5sZW5ndGgpfTpudWxsfWZ1bmN0aW9uIFNjKHMsZSl7bGV0IHQ9ZS5tYXRjaChzKTtpZighdClyZXR1cm4gbnVsbDtpZih0WzBdPT09IloiKXJldHVybnt2YWx1ZTowLHJlc3Q6ZS5zbGljZSgxKX07bGV0IGE9dFsxXT09PSIrIj8xOi0xLHI9dFsyXT9wYXJzZUludCh0WzJdLDEwKTowLG49dFszXT9wYXJzZUludCh0WzNdLDEwKTowLG89dFs1XT9wYXJzZUludCh0WzVdLDEwKTowO3JldHVybnt2YWx1ZTphKihyKk5sK24qV28rbypCNykscmVzdDplLnNsaWNlKHRbMF0ubGVuZ3RoKX19ZnVuY3Rpb24gUnRlKHMpe3JldHVybiB0cyhjcy5hbnlEaWdpdHNTaWduZWQscyl9ZnVuY3Rpb24gZ2EocyxlKXtzd2l0Y2gocyl7Y2FzZSAxOnJldHVybiB0cyhjcy5zaW5nbGVEaWdpdCxlKTtjYXNlIDI6cmV0dXJuIHRzKGNzLnR3b0RpZ2l0cyxlKTtjYXNlIDM6cmV0dXJuIHRzKGNzLnRocmVlRGlnaXRzLGUpO2Nhc2UgNDpyZXR1cm4gdHMoY3MuZm91ckRpZ2l0cyxlKTtkZWZhdWx0OnJldHVybiB0cyhuZXcgUmVnRXhwKCJeXFxkezEsIitzKyJ9IiksZSl9fWZ1bmN0aW9uIG85KHMsZSl7c3dpdGNoKHMpe2Nhc2UgMTpyZXR1cm4gdHMoY3Muc2luZ2xlRGlnaXRTaWduZWQsZSk7Y2FzZSAyOnJldHVybiB0cyhjcy50d29EaWdpdHNTaWduZWQsZSk7Y2FzZSAzOnJldHVybiB0cyhjcy50aHJlZURpZ2l0c1NpZ25lZCxlKTtjYXNlIDQ6cmV0dXJuIHRzKGNzLmZvdXJEaWdpdHNTaWduZWQsZSk7ZGVmYXVsdDpyZXR1cm4gdHMobmV3IFJlZ0V4cCgiXi0/XFxkezEsIitzKyJ9IiksZSl9fWZ1bmN0aW9uIG45KHMpe3N3aXRjaChzKXtjYXNlIm1vcm5pbmciOnJldHVybiA0O2Nhc2UiZXZlbmluZyI6cmV0dXJuIDE3O2Nhc2UicG0iOmNhc2Uibm9vbiI6Y2FzZSJhZnRlcm5vb24iOnJldHVybiAxMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiBPdGUocyxlKXtsZXQgdD1lPjAsYT10P2U6MS1lLHI7aWYoYTw9NTApcj1zfHwxMDA7ZWxzZXtsZXQgbj1hKzUwLG89TWF0aC50cnVuYyhuLzEwMCkqMTAwLGw9cz49biUxMDA7cj1zK28tKGw/MTAwOjApfXJldHVybiB0P3I6MS1yfWZ1bmN0aW9uIEZ0ZShzKXtyZXR1cm4gcyU0MDA9PT0wfHxzJTQ9PT0wJiZzJTEwMCE9PTB9dmFyIFBzPWcoKCk9Pnt3YSgpO1pvKCk7aShPcywibWFwVmFsdWUiKTtpKHRzLCJwYXJzZU51bWVyaWNQYXR0ZXJuIik7aShTYywicGFyc2VUaW1lem9uZVBhdHRlcm4iKTtpKFJ0ZSwicGFyc2VBbnlEaWdpdHNTaWduZWQiKTtpKGdhLCJwYXJzZU5EaWdpdHMiKTtpKG85LCJwYXJzZU5EaWdpdHNTaWduZWQiKTtpKG45LCJkYXlQZXJpb2RFbnVtVG9Ib3VycyIpO2koT3RlLCJub3JtYWxpemVUd29EaWdpdFllYXIiKTtpKEZ0ZSwiaXNMZWFwWWVhckluZGV4Iil9KTt2YXIgQnRlLEpwdD1nKCgpPT57eHMoKTtQcygpO0J0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIlllYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJ1IiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3BhcnNlKGUsdCxhKXtsZXQgcj1pKG49Pih7eWVhcjpuLGlzVHdvRGlnaXRZZWFyOnQ9PT0ieXkifSksInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJ5IjpyZXR1cm4gT3MoZ2EoNCxlKSxyKTtjYXNlInlvIjpyZXR1cm4gT3MoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InllYXIifSkscik7ZGVmYXVsdDpyZXR1cm4gT3MoZ2EodC5sZW5ndGgsZSkscil9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQuaXNUd29EaWdpdFllYXJ8fHQueWVhcj4wfXNldChlLHQsYSl7bGV0IHI9ZS5nZXRGdWxsWWVhcigpO2lmKGEuaXNUd29EaWdpdFllYXIpe2xldCBvPU90ZShhLnllYXIscik7cmV0dXJuIGUuc2V0RnVsbFllYXIobywwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1sZXQgbj0hKCJlcmEiaW4gdCl8fHQuZXJhPT09MT9hLnllYXI6MS1hLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIobiwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIEh0ZSxlaHQ9ZygoKT0+e0l5KCk7djEoKTt4cygpO1BzKCk7SHRlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiTG9jYWxXZWVrWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHQsYSl7bGV0IHI9aShuPT4oe3llYXI6bixpc1R3b0RpZ2l0WWVhcjp0PT09IllZIn0pLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHQpe2Nhc2UiWSI6cmV0dXJuIE9zKGdhKDQsZSkscik7Y2FzZSJZbyI6cmV0dXJuIE9zKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLHIpO2RlZmF1bHQ6cmV0dXJuIE9zKGdhKHQubGVuZ3RoLGUpLHIpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0LmlzVHdvRGlnaXRZZWFyfHx0LnllYXI+MH1zZXQoZSx0LGEscil7bGV0IG49YnAoZSxyKTtpZihhLmlzVHdvRGlnaXRZZWFyKXtsZXQgbD1PdGUoYS55ZWFyLG4pO3JldHVybiBlLnNldEZ1bGxZZWFyKGwsMCxyLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSksZS5zZXRIb3VycygwLDAsMCwwKSxLcyhlLHIpfWxldCBvPSEoImVyYSJpbiB0KXx8dC5lcmE9PT0xP2EueWVhcjoxLWEueWVhcjtyZXR1cm4gZS5zZXRGdWxsWWVhcihvLDAsci5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksS3MoZSxyKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJRIiwicSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiaSIsInQiLCJUIl19fSk7dmFyIHF0ZSx0aHQ9ZygoKT0+e3RkKCk7R3QoKTt4cygpO1BzKCk7cXRlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiSVNPV2Vla1llYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7cGFyc2UoZSx0KXtyZXR1cm4gdD09PSJSIj9vOSg0LGUpOm85KHQubGVuZ3RoLGUpfXNldChlLHQsYSl7bGV0IHI9dHQoZSwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcihhLDAsNCksci5zZXRIb3VycygwLDAsMCwwKSxrcihyKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIganRlLGFodD1nKCgpPT57eHMoKTtQcygpO2p0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkV4dGVuZGVkWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHQpe3JldHVybiB0PT09InUiP285KDQsZSk6bzkodC5sZW5ndGgsZSl9c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRGdWxsWWVhcihhLDAsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkciLCJ5IiwiWSIsIlIiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFZ0ZSxzaHQ9ZygoKT0+e3hzKCk7UHMoKTtWdGU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJRdWFydGVyUGFyc2VyIil9cHJpb3JpdHk9MTIwO3BhcnNlKGUsdCxhKXtzd2l0Y2godCl7Y2FzZSJRIjpjYXNlIlFRIjpyZXR1cm4gZ2EodC5sZW5ndGgsZSk7Y2FzZSJRbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQ+PTEmJnQ8PTR9c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRNb250aCgoYS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBVdGUsaWh0PWcoKCk9Pnt4cygpO1BzKCk7VXRlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZVF1YXJ0ZXJQYXJzZXIiKX1wcmlvcml0eT0xMjA7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlInEiOmNhc2UicXEiOnJldHVybiBnYSh0Lmxlbmd0aCxlKTtjYXNlInFvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBhLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MSYmdDw9NH1zZXQoZSx0LGEpe3JldHVybiBlLnNldE1vbnRoKChhLTEpKjMsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFd0ZSxyaHQ9ZygoKT0+e1pvKCk7eHMoKTtQcygpO1d0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIk1vbnRoUGFyc2VyIil9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIkwiLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3ByaW9yaXR5PTExMDtwYXJzZShlLHQsYSl7bGV0IHI9aShuPT5uLTEsInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJNIjpyZXR1cm4gT3ModHMoY3MubW9udGgsZSkscik7Y2FzZSJNTSI6cmV0dXJuIE9zKGdhKDIsZSkscik7Y2FzZSJNbyI6cmV0dXJuIE9zKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxyKTtjYXNlIk1NTSI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJNTU1NTSI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0xMX1zZXQoZSx0LGEpe3JldHVybiBlLnNldE1vbnRoKGEsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfX19KTt2YXIgR3RlLG9odD1nKCgpPT57Wm8oKTt4cygpO1BzKCk7R3RlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZU1vbnRoUGFyc2VyIil9cHJpb3JpdHk9MTEwO3BhcnNlKGUsdCxhKXtsZXQgcj1pKG49Pm4tMSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaCh0KXtjYXNlIkwiOnJldHVybiBPcyh0cyhjcy5tb250aCxlKSxyKTtjYXNlIkxMIjpyZXR1cm4gT3MoZ2EoMixlKSxyKTtjYXNlIkxvIjpyZXR1cm4gT3MoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1vbnRoIn0pLHIpO2Nhc2UiTExMIjpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQ+PTAmJnQ8PTExfXNldChlLHQsYSl7cmV0dXJuIGUuc2V0TW9udGgoYSwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIEt0ZShzLGUsdCl7bGV0IGE9QWUocyx0Py5pbikscj1pOShhLHQpLWU7cmV0dXJuIGEuc2V0RGF0ZShhLmdldERhdGUoKS1yKjcpLEFlKGEsdD8uaW4pfXZhciAkVHMsRnBlPWcoKCk9Pnt3dGUoKTthdCgpO2koS3RlLCJzZXRXZWVrIik7JFRzPUt0ZX0pO3ZhciBZdGUsbmh0PWcoKCk9PntGcGUoKTt2MSgpO1pvKCk7eHMoKTtQcygpO1l0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkxvY2FsV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UidyI6cmV0dXJuIHRzKGNzLndlZWssZSk7Y2FzZSJ3byI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0xJiZ0PD01M31zZXQoZSx0LGEscil7cmV0dXJuIEtzKEt0ZShlLGEscikscil9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIFp0ZShzLGUsdCl7bGV0IGE9QWUocyx0Py5pbikscj1zOShhLHQpLWU7cmV0dXJuIGEuc2V0RGF0ZShhLmdldERhdGUoKS1yKjcpLGF9dmFyIEhUcyxCcGU9ZygoKT0+e3h0ZSgpO2F0KCk7aShadGUsInNldElTT1dlZWsiKTtIVHM9WnRlfSk7dmFyIFh0ZSxsaHQ9ZygoKT0+e0JwZSgpO3RkKCk7Wm8oKTt4cygpO1BzKCk7WHRlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiSVNPV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiSSI6cmV0dXJuIHRzKGNzLndlZWssZSk7Y2FzZSJJbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0xJiZ0PD01M31zZXQoZSx0LGEpe3JldHVybiBrcihadGUoZSxhKSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgdUVhLHBFYSxRdGUsY2h0PWcoKCk9PntabygpO3hzKCk7UHMoKTt1RWE9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxwRWE9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxRdGU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJEYXRlUGFyc2VyIil9cHJpb3JpdHk9OTA7c3ViUHJpb3JpdHk9MTtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiZCI6cmV0dXJuIHRzKGNzLmRhdGUsZSk7Y2FzZSJkbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe2xldCBhPWUuZ2V0RnVsbFllYXIoKSxyPUZ0ZShhKSxuPWUuZ2V0TW9udGgoKTtyZXR1cm4gcj90Pj0xJiZ0PD1wRWFbbl06dD49MSYmdDw9dUVhW25dfXNldChlLHQsYSl7cmV0dXJuIGUuc2V0RGF0ZShhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIEp0ZSxkaHQ9ZygoKT0+e1pvKCk7eHMoKTtQcygpO0p0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkRheU9mWWVhclBhcnNlciIpfXByaW9yaXR5PTkwO3N1YnByaW9yaXR5PTE7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlIkQiOmNhc2UiREQiOnJldHVybiB0cyhjcy5kYXlPZlllYXIsZSk7Y2FzZSJEbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe2xldCBhPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gRnRlKGEpP3Q+PTEmJnQ8PTM2Njp0Pj0xJiZ0PD0zNjV9c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRNb250aCgwLGEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiB5cChzLGUsdCl7bGV0IGE9RXMoKSxyPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG49QWUocyx0Py5pbiksbz1uLmdldERheSgpLHA9KGUlNys3KSU3LGQ9Ny1yLHU9ZTwwfHxlPjY/ZS0obytkKSU3OihwK2QpJTctKG8rZCklNztyZXR1cm4gSHIobix1LHQpfXZhciBkJHMsRnk9ZygoKT0+e0dvKCk7UTIoKTthdCgpO2koeXAsInNldERheSIpO2Qkcz15cH0pO3ZhciBlYWUsdWh0PWcoKCk9PntGeSgpO3hzKCk7ZWFlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiBhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD02fXNldChlLHQsYSxyKXtyZXR1cm4gZT15cChlLGEsciksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB0YWUscGh0PWcoKCk9PntGeSgpO3hzKCk7UHMoKTt0YWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJMb2NhbERheVBhcnNlciIpfXByaW9yaXR5PTkwO3BhcnNlKGUsdCxhLHIpe2xldCBuPWkobz0+e2xldCBsPU1hdGguZmxvb3IoKG8tMSkvNykqNztyZXR1cm4obytyLndlZWtTdGFydHNPbis2KSU3K2x9LCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHQpe2Nhc2UiZSI6Y2FzZSJlZSI6cmV0dXJuIE9zKGdhKHQubGVuZ3RoLGUpLG4pO2Nhc2UiZW8iOnJldHVybiBPcyhhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pLG4pO2Nhc2UiZWVlIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiBhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD02fXNldChlLHQsYSxyKXtyZXR1cm4gZT15cChlLGEsciksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBhYWUsaGh0PWcoKCk9PntGeSgpO3hzKCk7UHMoKTthYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJTdGFuZEFsb25lTG9jYWxEYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHQsYSxyKXtsZXQgbj1pKG89PntsZXQgbD1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rci53ZWVrU3RhcnRzT24rNiklNytsfSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaCh0KXtjYXNlImMiOmNhc2UiY2MiOnJldHVybiBPcyhnYSh0Lmxlbmd0aCxlKSxuKTtjYXNlImNvIjpyZXR1cm4gT3MoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxuKTtjYXNlImNjYyI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiBhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MCYmdDw9Nn1zZXQoZSx0LGEscil7cmV0dXJuIGU9eXAoZSxhLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJlIiwidCIsIlQiXX19KTtmdW5jdGlvbiBzYWUocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pLHI9RHRlKGEsdCksbj1lLXI7cmV0dXJuIEhyKGEsbix0KX12YXIgRCRzLEhwZT1nKCgpPT57UTIoKTtBcGUoKTthdCgpO2koc2FlLCJzZXRJU09EYXkiKTtEJHM9c2FlfSk7dmFyIGlhZSxmaHQ9ZygoKT0+e0hwZSgpO3hzKCk7UHMoKTtpYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJJU09EYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHQsYSl7bGV0IHI9aShuPT5uPT09MD83Om4sInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJpIjpjYXNlImlpIjpyZXR1cm4gZ2EodC5sZW5ndGgsZSk7Y2FzZSJpbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXkifSk7Y2FzZSJpaWkiOnJldHVybiBPcyhhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxyKTtjYXNlImlpaWlpIjpyZXR1cm4gT3MoYS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxyKTtjYXNlImlpaWlpaSI6cmV0dXJuIE9zKGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxyKTtkZWZhdWx0OnJldHVybiBPcyhhLmRheShlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscil9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQ+PTEmJnQ8PTd9c2V0KGUsdCxhKXtyZXR1cm4gZT1zYWUoZSxhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHJhZSxtaHQ9ZygoKT0+e3hzKCk7UHMoKTtyYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJBTVBNUGFyc2VyIil9cHJpb3JpdHk9ODA7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLHQsYSl7cmV0dXJuIGUuc2V0SG91cnMobjkoYSksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIG9hZSxnaHQ9ZygoKT0+e3hzKCk7UHMoKTtvYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJBTVBNTWlkbmlnaHRQYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiYiI6Y2FzZSJiYiI6Y2FzZSJiYmIiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmJiYiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRIb3VycyhuOShhKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiQiIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgbmFlLGJodD1nKCgpPT57eHMoKTtQcygpO25hZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkRheVBlcmlvZFBhcnNlciIpfXByaW9yaXR5PTgwO3BhcnNlKGUsdCxhKXtzd2l0Y2godCl7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX1zZXQoZSx0LGEpe3JldHVybiBlLnNldEhvdXJzKG45KGEpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwidCIsIlQiXX19KTt2YXIgbGFlLHZodD1nKCgpPT57Wm8oKTt4cygpO1BzKCk7bGFlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiSG91cjF0bzEyUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlImgiOnJldHVybiB0cyhjcy5ob3VyMTJoLGUpO2Nhc2UiaG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBnYSh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MSYmdDw9MTJ9c2V0KGUsdCxhKXtsZXQgcj1lLmdldEhvdXJzKCk+PTEyO3JldHVybiByJiZhPDEyP2Uuc2V0SG91cnMoYSsxMiwwLDAsMCk6IXImJmE9PT0xMj9lLnNldEhvdXJzKDAsMCwwLDApOmUuc2V0SG91cnMoYSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBjYWUseGh0PWcoKCk9PntabygpO3hzKCk7UHMoKTtjYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJIb3VyMHRvMjNQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiSCI6cmV0dXJuIHRzKGNzLmhvdXIyM2gsZSk7Y2FzZSJIbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0yM31zZXQoZSx0LGEpe3JldHVybiBlLnNldEhvdXJzKGEsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBkYWUseWh0PWcoKCk9PntabygpO3hzKCk7UHMoKTtkYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJIb3VyMFRvMTFQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiSyI6cmV0dXJuIHRzKGNzLmhvdXIxMWgsZSk7Y2FzZSJLbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0xMX1zZXQoZSx0LGEpe3JldHVybiBlLmdldEhvdXJzKCk+PTEyJiZhPDEyP2Uuc2V0SG91cnMoYSsxMiwwLDAsMCk6ZS5zZXRIb3VycyhhLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImgiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIHVhZSx3aHQ9ZygoKT0+e1pvKCk7eHMoKTtQcygpO3VhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkhvdXIxVG8yNFBhcnNlciIpfXByaW9yaXR5PTcwO3BhcnNlKGUsdCxhKXtzd2l0Y2godCl7Y2FzZSJrIjpyZXR1cm4gdHMoY3MuaG91cjI0aCxlKTtjYXNlImtvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gZ2EodC5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQ+PTEmJnQ8PTI0fXNldChlLHQsYSl7bGV0IHI9YTw9MjQ/YSUyNDphO3JldHVybiBlLnNldEhvdXJzKHIsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciBwYWUsa2h0PWcoKCk9PntabygpO3hzKCk7UHMoKTtwYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJNaW51dGVQYXJzZXIiKX1wcmlvcml0eT02MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UibSI6cmV0dXJuIHRzKGNzLm1pbnV0ZSxlKTtjYXNlIm1vIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1pbnV0ZSJ9KTtkZWZhdWx0OnJldHVybiBnYSh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MCYmdDw9NTl9c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRNaW51dGVzKGEsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIGhhZSxTaHQ9ZygoKT0+e1pvKCk7eHMoKTtQcygpO2hhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIlNlY29uZFBhcnNlciIpfXByaW9yaXR5PTUwO3BhcnNlKGUsdCxhKXtzd2l0Y2godCl7Y2FzZSJzIjpyZXR1cm4gdHMoY3Muc2Vjb25kLGUpO2Nhc2Uic28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoic2Vjb25kIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD01OX1zZXQoZSx0LGEpe3JldHVybiBlLnNldFNlY29uZHMoYSwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIGZhZSxfaHQ9ZygoKT0+e3hzKCk7UHMoKTtmYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJGcmFjdGlvbk9mU2Vjb25kUGFyc2VyIil9cHJpb3JpdHk9MzA7cGFyc2UoZSx0KXtsZXQgYT1pKHI9Pk1hdGgudHJ1bmMocipNYXRoLnBvdygxMCwtdC5sZW5ndGgrMykpLCJ2YWx1ZUNhbGxiYWNrIik7cmV0dXJuIE9zKGdhKHQubGVuZ3RoLGUpLGEpfXNldChlLHQsYSl7cmV0dXJuIGUuc2V0TWlsbGlzZWNvbmRzKGEpLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgbWFlLE1odD1nKCgpPT57R3QoKTt1MCgpO1pvKCk7eHMoKTtQcygpO21hZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIklTT1RpbWV6b25lV2l0aFpQYXJzZXIiKX1wcmlvcml0eT0xMDtwYXJzZShlLHQpe3N3aXRjaCh0KXtjYXNlIlgiOnJldHVybiBTYyhrYy5iYXNpY09wdGlvbmFsTWludXRlcyxlKTtjYXNlIlhYIjpyZXR1cm4gU2Moa2MuYmFzaWMsZSk7Y2FzZSJYWFhYIjpyZXR1cm4gU2Moa2MuYmFzaWNPcHRpb25hbFNlY29uZHMsZSk7Y2FzZSJYWFhYWCI6cmV0dXJuIFNjKGtjLmV4dGVuZGVkT3B0aW9uYWxTZWNvbmRzLGUpO2RlZmF1bHQ6cmV0dXJuIFNjKGtjLmV4dGVuZGVkLGUpfX1zZXQoZSx0LGEpe3JldHVybiB0LnRpbWVzdGFtcElzU2V0P2U6dHQoZSxlLmdldFRpbWUoKS1GaShlKS1hKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCIsIngiXX19KTt2YXIgZ2FlLHpodD1nKCgpPT57R3QoKTt1MCgpO1pvKCk7eHMoKTtQcygpO2dhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIklTT1RpbWV6b25lUGFyc2VyIil9cHJpb3JpdHk9MTA7cGFyc2UoZSx0KXtzd2l0Y2godCl7Y2FzZSJ4IjpyZXR1cm4gU2Moa2MuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJ4eCI6cmV0dXJuIFNjKGtjLmJhc2ljLGUpO2Nhc2UieHh4eCI6cmV0dXJuIFNjKGtjLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UieHh4eHgiOnJldHVybiBTYyhrYy5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBTYyhrYy5leHRlbmRlZCxlKX19c2V0KGUsdCxhKXtyZXR1cm4gdC50aW1lc3RhbXBJc1NldD9lOnR0KGUsZS5nZXRUaW1lKCktRmkoZSktYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIGJhZSxDaHQ9ZygoKT0+e0d0KCk7eHMoKTtQcygpO2JhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIlRpbWVzdGFtcFNlY29uZHNQYXJzZXIiKX1wcmlvcml0eT00MDtwYXJzZShlKXtyZXR1cm4gUnRlKGUpfXNldChlLHQsYSl7cmV0dXJuW3R0KGUsYSoxZTMpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIHZhZSxUaHQ9ZygoKT0+e0d0KCk7eHMoKTtQcygpO3ZhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIlRpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlciIpfXByaW9yaXR5PTIwO3BhcnNlKGUpe3JldHVybiBSdGUoZSl9c2V0KGUsdCxhKXtyZXR1cm5bdHQoZSxhKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciB4YWUsJGh0PWcoKCk9PntRcHQoKTtKcHQoKTtlaHQoKTt0aHQoKTthaHQoKTtzaHQoKTtpaHQoKTtyaHQoKTtvaHQoKTtuaHQoKTtsaHQoKTtjaHQoKTtkaHQoKTt1aHQoKTtwaHQoKTtoaHQoKTtmaHQoKTttaHQoKTtnaHQoKTtiaHQoKTt2aHQoKTt4aHQoKTt5aHQoKTt3aHQoKTtraHQoKTtTaHQoKTtfaHQoKTtNaHQoKTt6aHQoKTtDaHQoKTtUaHQoKTt4YWU9e0c6bmV3IE50ZSx5Om5ldyBCdGUsWTpuZXcgSHRlLFI6bmV3IHF0ZSx1Om5ldyBqdGUsUTpuZXcgVnRlLHE6bmV3IFV0ZSxNOm5ldyBXdGUsTDpuZXcgR3RlLHc6bmV3IFl0ZSxJOm5ldyBYdGUsZDpuZXcgUXRlLEQ6bmV3IEp0ZSxFOm5ldyBlYWUsZTpuZXcgdGFlLGM6bmV3IGFhZSxpOm5ldyBpYWUsYTpuZXcgcmFlLGI6bmV3IG9hZSxCOm5ldyBuYWUsaDpuZXcgbGFlLEg6bmV3IGNhZSxLOm5ldyBkYWUsazpuZXcgdWFlLG06bmV3IHBhZSxzOm5ldyBoYWUsUzpuZXcgZmFlLFg6bmV3IG1hZSx4Om5ldyBnYWUsdDpuZXcgYmFlLFQ6bmV3IHZhZX19KTtmdW5jdGlvbiB5YWUocyxlLHQsYSl7bGV0IHI9aSgoKT0+dHQoYT8uaW58fHQsTmFOKSwiaW52YWxpZERhdGUiKSxuPSR0ZSgpLG89YT8ubG9jYWxlPz9uLmxvY2FsZT8/bWwsbD1hPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2E/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9uLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxwPWE/LndlZWtTdGFydHNPbj8/YT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wO2lmKCFlKXJldHVybiBzP3IoKTpBZSh0LGE/LmluKTtsZXQgZD17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOmwsd2Vla1N0YXJ0c09uOnAsbG9jYWxlOm99LHU9W25ldyBBdGUoYT8uaW4sdCldLGM9ZS5tYXRjaChmRWEpLm1hcChmPT57bGV0IHk9ZlswXTtpZih5IGluIHZwKXtsZXQgTT12cFt5XTtyZXR1cm4gTShmLG8uZm9ybWF0TG9uZyl9cmV0dXJuIGZ9KS5qb2luKCIiKS5tYXRjaChoRWEpLGI9W107Zm9yKGxldCBmIG9mIGMpeyFhPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJlN0ZShmKSYmTnkoZixlLHMpLCFhPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZrdGUoZikmJk55KGYsZSxzKTtsZXQgeT1mWzBdLE09eGFlW3ldO2lmKE0pe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6en09TTtpZihBcnJheS5pc0FycmF5KHopKXtsZXQgQz1iLmZpbmQoXz0+ei5pbmNsdWRlcyhfLnRva2VuKXx8Xy50b2tlbj09PXkpO2lmKEMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7Qy5mdWxsVG9rZW59XGAgYW5kIFxgJHtmfVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKE0uaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZiLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke2Z9XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7Yi5wdXNoKHt0b2tlbjp5LGZ1bGxUb2tlbjpmfSk7bGV0IE49TS5ydW4ocyxmLG8ubWF0Y2gsZCk7aWYoIU4pcmV0dXJuIHIoKTt1LnB1c2goTi5zZXR0ZXIpLHM9Ti5yZXN0fWVsc2V7aWYoeS5tYXRjaCh2RWEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIreSsiYCIpO2lmKGY9PT0iJyciP2Y9IiciOnk9PT0iJyImJihmPXhFYShmKSkscy5pbmRleE9mKGYpPT09MClzPXMuc2xpY2UoZi5sZW5ndGgpO2Vsc2UgcmV0dXJuIHIoKX19aWYocy5sZW5ndGg+MCYmYkVhLnRlc3QocykpcmV0dXJuIHIoKTtsZXQgdj11Lm1hcChmPT5mLnByaW9yaXR5KS5zb3J0KChmLHkpPT55LWYpLmZpbHRlcigoZix5LE0pPT5NLmluZGV4T2YoZik9PT15KS5tYXAoZj0+dS5maWx0ZXIoeT0+eS5wcmlvcml0eT09PWYpLnNvcnQoKHksTSk9Pk0uc3ViUHJpb3JpdHkteS5zdWJQcmlvcml0eSkpLm1hcChmPT5mWzBdKSx4PUFlKHQsYT8uaW4pO2lmKGlzTmFOKCt4KSlyZXR1cm4gcigpO2xldCBtPXt9O2ZvcihsZXQgZiBvZiB2KXtpZighZi52YWxpZGF0ZSh4LGQpKXJldHVybiByKCk7bGV0IHk9Zi5zZXQoeCxtLGQpO0FycmF5LmlzQXJyYXkoeSk/KHg9eVswXSxPYmplY3QuYXNzaWduKG0seVsxXSkpOng9eX1yZXR1cm4geH1mdW5jdGlvbiB4RWEocyl7cmV0dXJuIHMubWF0Y2gobUVhKVsxXS5yZXBsYWNlKGdFYSwiJyIpfXZhciBoRWEsZkVhLG1FYSxnRWEsYkVhLHZFYSxCTHMscXBlPWcoKCk9PntKNCgpO3pwZSgpO0NwZSgpO0d0KCk7SXBlKCk7YXQoKTtPcGUoKTskaHQoKTtoRWE9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxmRWE9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csbUVhPS9eJyhbXl0qPyknPyQvLGdFYT0vJycvZyxiRWE9L1xTLyx2RWE9L1thLXpBLVpdLztpKHlhZSwicGFyc2UiKTtpKHhFYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7QkxzPXlhZX0pO2Z1bmN0aW9uIERodChzLGUsdCl7cmV0dXJuIGtvKHlhZShzLGUsbmV3IERhdGUsdCkpfXZhciBVTHMsTGh0PWcoKCk9PntoMCgpO3FwZSgpO2koRGh0LCJpc01hdGNoIik7VUxzPURodH0pO2Z1bmN0aW9uIEVodChzLGUpe3JldHVybiBBZShzLGU/LmluKS5nZXREYXkoKT09PTF9dmFyIFlMcyxQaHQ9ZygoKT0+e2F0KCk7aShFaHQsImlzTW9uZGF5Iik7WUxzPUVodH0pO2Z1bmN0aW9uIElodChzKXtyZXR1cm4rQWUocyk8RGF0ZS5ub3coKX12YXIgSkxzLEFodD1nKCgpPT57YXQoKTtpKElodCwiaXNQYXN0Iik7SkxzPUlodH0pO2Z1bmN0aW9uIEJ5KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIHQuc2V0TWludXRlcygwLDAsMCksdH12YXIgc0VzLGpwZT1nKCgpPT57YXQoKTtpKEJ5LCJzdGFydE9mSG91ciIpO3NFcz1CeX0pO2Z1bmN0aW9uIHdhZShzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKTtyZXR1cm4rQnkoYSk9PStCeShyKX12YXIgbEVzLFZwZT1nKCgpPT57UnMoKTtqcGUoKTtpKHdhZSwiaXNTYW1lSG91ciIpO2xFcz13YWV9KTtmdW5jdGlvbiBsOShzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKTtyZXR1cm4rS3MoYSx0KT09K0tzKHIsdCl9dmFyIGhFcyxrYWU9ZygoKT0+e1JzKCk7djEoKTtpKGw5LCJpc1NhbWVXZWVrIik7aEVzPWw5fSk7ZnVuY3Rpb24gU2FlKHMsZSx0KXtyZXR1cm4gbDkocyxlLHsuLi50LHdlZWtTdGFydHNPbjoxfSl9dmFyIGJFcyxVcGU9ZygoKT0+e2thZSgpO2koU2FlLCJpc1NhbWVJU09XZWVrIik7YkVzPVNhZX0pO2Z1bmN0aW9uIE5odChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKTtyZXR1cm4rUmwoYSk9PStSbChyKX12YXIga0VzLFJodD1nKCgpPT57VjcoKTtScygpO2koTmh0LCJpc1NhbWVJU09XZWVrWWVhciIpO2tFcz1OaHR9KTtmdW5jdGlvbiBIeShzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiB0LnNldFNlY29uZHMoMCwwKSx0fXZhciB6RXMsV3BlPWcoKCk9PnthdCgpO2koSHksInN0YXJ0T2ZNaW51dGUiKTt6RXM9SHl9KTtmdW5jdGlvbiBfYWUocyxlKXtyZXR1cm4rSHkocyk9PStIeShlKX12YXIgREVzLEdwZT1nKCgpPT57V3BlKCk7aShfYWUsImlzU2FtZU1pbnV0ZSIpO0RFcz1fYWV9KTtmdW5jdGlvbiBNYWUocyxlLHQpe2xldFthLHJdPVZ0KHQ/LmluLHMsZSk7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKT09PXIuZ2V0RnVsbFllYXIoKSYmYS5nZXRNb250aCgpPT09ci5nZXRNb250aCgpfXZhciBJRXMsS3BlPWcoKCk9PntScygpO2koTWFlLCJpc1NhbWVNb250aCIpO0lFcz1NYWV9KTtmdW5jdGlvbiB6YWUocyxlLHQpe2xldFthLHJdPVZ0KHQ/LmluLHMsZSk7cmV0dXJuK29kKGEpPT0rb2Qocil9dmFyIEZFcyxZcGU9ZygoKT0+e1JzKCk7cHRlKCk7aSh6YWUsImlzU2FtZVF1YXJ0ZXIiKTtGRXM9emFlfSk7ZnVuY3Rpb24gcXkocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4gdC5zZXRNaWxsaXNlY29uZHMoMCksdH12YXIgakVzLFpwZT1nKCgpPT57YXQoKTtpKHF5LCJzdGFydE9mU2Vjb25kIik7akVzPXF5fSk7ZnVuY3Rpb24gQ2FlKHMsZSl7cmV0dXJuK3F5KHMpPT0rcXkoZSl9dmFyIEdFcyxYcGU9ZygoKT0+e1pwZSgpO2koQ2FlLCJpc1NhbWVTZWNvbmQiKTtHRXM9Q2FlfSk7ZnVuY3Rpb24gVGFlKHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT1yLmdldEZ1bGxZZWFyKCl9dmFyIFhFcyxRcGU9ZygoKT0+e1JzKCk7aShUYWUsImlzU2FtZVllYXIiKTtYRXM9VGFlfSk7ZnVuY3Rpb24gT2h0KHMsZSl7cmV0dXJuIHdhZShBZShzLGU/LmluKSxQYShlPy5pbnx8cykpfXZhciBzUHMsRmh0PWcoKCk9PntxcigpO1ZwZSgpO2F0KCk7aShPaHQsImlzVGhpc0hvdXIiKTtzUHM9T2h0fSk7ZnVuY3Rpb24gQmh0KHMsZSl7cmV0dXJuIFNhZSh0dChlPy5pbnx8cyxzKSxQYShlPy5pbnx8cykpfXZhciBjUHMsSGh0PWcoKCk9PntHdCgpO3FyKCk7VXBlKCk7aShCaHQsImlzVGhpc0lTT1dlZWsiKTtjUHM9Qmh0fSk7ZnVuY3Rpb24gcWh0KHMpe3JldHVybiBfYWUocyxQYShzKSl9dmFyIGZQcyxqaHQ9ZygoKT0+e3FyKCk7R3BlKCk7aShxaHQsImlzVGhpc01pbnV0ZSIpO2ZQcz1xaHR9KTtmdW5jdGlvbiBWaHQocyxlKXtyZXR1cm4gTWFlKHR0KGU/LmlufHxzLHMpLFBhKGU/LmlufHxzKSl9dmFyIHlQcyxVaHQ9ZygoKT0+e0d0KCk7cXIoKTtLcGUoKTtpKFZodCwiaXNUaGlzTW9udGgiKTt5UHM9Vmh0fSk7ZnVuY3Rpb24gV2h0KHMsZSl7cmV0dXJuIHphZSh0dChlPy5pbnx8cyxzKSxQYShlPy5pbnx8cykpfXZhciB6UHMsR2h0PWcoKCk9PntHdCgpO3FyKCk7WXBlKCk7aShXaHQsImlzVGhpc1F1YXJ0ZXIiKTt6UHM9V2h0fSk7ZnVuY3Rpb24gS2h0KHMpe3JldHVybiBDYWUocyxQYShzKSl9dmFyIExQcyxZaHQ9ZygoKT0+e3FyKCk7WHBlKCk7aShLaHQsImlzVGhpc1NlY29uZCIpO0xQcz1LaHR9KTtmdW5jdGlvbiBaaHQocyxlKXtyZXR1cm4gbDkodHQoZT8uaW58fHMscyksUGEoZT8uaW58fHMpLGUpfXZhciBSUHMsWGh0PWcoKCk9PntHdCgpO3FyKCk7a2FlKCk7aShaaHQsImlzVGhpc1dlZWsiKTtSUHM9Wmh0fSk7ZnVuY3Rpb24gUWh0KHMsZSl7cmV0dXJuIFRhZSh0dChlPy5pbnx8cyxzKSxQYShlPy5pbnx8cykpfXZhciBqUHMsSmh0PWcoKCk9PntHdCgpO3FyKCk7UXBlKCk7aShRaHQsImlzVGhpc1llYXIiKTtqUHM9UWh0fSk7ZnVuY3Rpb24gZTR0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldERheSgpPT09NH12YXIgR1BzLHQ0dD1nKCgpPT57YXQoKTtpKGU0dCwiaXNUaHVyc2RheSIpO0dQcz1lNHR9KTtmdW5jdGlvbiBhNHQocyxlKXtyZXR1cm4gc2QodHQoZT8uaW58fHMscyksUGEoZT8uaW58fHMpKX12YXIgSlBzLHM0dD1nKCgpPT57R3QoKTtxcigpO0c3KCk7aShhNHQsImlzVG9kYXkiKTtKUHM9YTR0fSk7ZnVuY3Rpb24gaTR0KHMsZSl7cmV0dXJuIHNkKHMsSHIoUGEoZT8uaW58fHMpLDEpLGUpfXZhciBySXMscjR0PWcoKCk9PntRMigpO3FyKCk7RzcoKTtpKGk0dCwiaXNUb21vcnJvdyIpO3JJcz1pNHR9KTtmdW5jdGlvbiBvNHQocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0RGF5KCk9PT0yfXZhciBjSXMsbjR0PWcoKCk9PnthdCgpO2kobzR0LCJpc1R1ZXNkYXkiKTtjSXM9bzR0fSk7ZnVuY3Rpb24gbDR0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldERheSgpPT09M312YXIgaElzLGM0dD1nKCgpPT57YXQoKTtpKGw0dCwiaXNXZWRuZXNkYXkiKTtoSXM9bDR0fSk7ZnVuY3Rpb24gZDR0KHMsZSx0KXtsZXQgYT0rQWUocyx0Py5pbiksW3Isbl09WytBZShlLnN0YXJ0LHQ/LmluKSwrQWUoZS5lbmQsdD8uaW4pXS5zb3J0KChvLGwpPT5vLWwpO3JldHVybiBhPj1yJiZhPD1ufXZhciBiSXMsdTR0PWcoKCk9PnthdCgpO2koZDR0LCJpc1dpdGhpbkludGVydmFsIik7YklzPWQ0dH0pO2Z1bmN0aW9uIHdwKHMsZSx0KXtyZXR1cm4gSHIocywtZSx0KX12YXIgd0lzLGp5PWcoKCk9PntRMigpO2kod3AsInN1YkRheXMiKTt3SXM9d3B9KTtmdW5jdGlvbiBwNHQocyxlKXtyZXR1cm4gc2QodHQoZT8uaW58fHMscyksd3AoUGEoZT8uaW58fHMpLDEpKX12YXIgVElzLGg0dD1nKCgpPT57R3QoKTtxcigpO0c3KCk7ankoKTtpKHA0dCwiaXNZZXN0ZXJkYXkiKTtUSXM9cDR0fSk7ZnVuY3Rpb24gZjR0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT10LmdldEZ1bGxZZWFyKCkscj05K01hdGguZmxvb3IoYS8xMCkqMTA7cmV0dXJuIHQuc2V0RnVsbFllYXIocisxLDAsMCksdC5zZXRIb3VycygwLDAsMCwwKSxBZSh0LGU/LmluKX12YXIgRUlzLG00dD1nKCgpPT57YXQoKTtpKGY0dCwibGFzdERheU9mRGVjYWRlIik7RUlzPWY0dH0pO2Z1bmN0aW9uICRhZShzLGUpe2xldCB0PUVzKCksYT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz90LndlZWtTdGFydHNPbj8/dC5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxyPUFlKHMsZT8uaW4pLG49ci5nZXREYXkoKSxvPShuPGE/LTc6MCkrNi0obi1hKTtyZXR1cm4gci5zZXRIb3VycygwLDAsMCwwKSxyLnNldERhdGUoci5nZXREYXRlKCkrbykscn12YXIgUklzLEpwZT1nKCgpPT57R28oKTthdCgpO2koJGFlLCJsYXN0RGF5T2ZXZWVrIik7UklzPSRhZX0pO2Z1bmN0aW9uIGc0dChzLGUpe3JldHVybiAkYWUocyx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciBISXMsYjR0PWcoKCk9PntKcGUoKTtpKGc0dCwibGFzdERheU9mSVNPV2VlayIpO0hJcz1nNHR9KTtmdW5jdGlvbiB2NHQocyxlKXtsZXQgdD13bihzLGUpLGE9dHQoZT8uaW58fHMsMCk7YS5zZXRGdWxsWWVhcih0KzEsMCw0KSxhLnNldEhvdXJzKDAsMCwwLDApO2xldCByPWtyKGEsZSk7cmV0dXJuIHIuc2V0RGF0ZShyLmdldERhdGUoKS0xKSxyfXZhciBHSXMseDR0PWcoKCk9PntHdCgpO3BwKCk7dGQoKTtpKHY0dCwibGFzdERheU9mSVNPV2Vla1llYXIiKTtHSXM9djR0fSk7ZnVuY3Rpb24geTR0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT10LmdldE1vbnRoKCkscj1hLWElMyszO3JldHVybiB0LnNldE1vbnRoKHIsMCksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBYSXMsdzR0PWcoKCk9PnthdCgpO2koeTR0LCJsYXN0RGF5T2ZRdWFydGVyIik7WElzPXk0dH0pO2Z1bmN0aW9uIGs0dChzLGUpe2xldCB0PUFlKHMsZT8uaW4pLGE9dC5nZXRGdWxsWWVhcigpO3JldHVybiB0LnNldEZ1bGxZZWFyKGErMSwwLDApLHQuc2V0SG91cnMoMCwwLDAsMCksdH12YXIgdEFzLFM0dD1nKCgpPT57YXQoKTtpKGs0dCwibGFzdERheU9mWWVhciIpO3RBcz1rNHR9KTtmdW5jdGlvbiBfNHQocyxlKXtsZXQgdD1BZShzKTtpZigha28odCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWUubWF0Y2goeUVhKTtyZXR1cm4gYT9hLm1hcChuPT57aWYobj09PSInJyIpcmV0dXJuIiciO2xldCBvPW5bMF07aWYobz09PSInIilyZXR1cm4gX0VhKG4pO2xldCBsPU9sW29dO2lmKGwpcmV0dXJuIGwodCxuKTtpZihvLm1hdGNoKFNFYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitvKyJgIik7cmV0dXJuIG59KS5qb2luKCIiKToiIn1mdW5jdGlvbiBfRWEocyl7bGV0IGU9cy5tYXRjaCh3RWEpO3JldHVybiBlP2VbMV0ucmVwbGFjZShrRWEsIiciKTpzfXZhciB5RWEsd0VhLGtFYSxTRWEsbkFzLE00dD1nKCgpPT57TXBlKCk7aDAoKTthdCgpO3lFYT0vKFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyx3RWE9L14nKFteXSo/KSc/JC8sa0VhPS8nJy9nLFNFYT0vW2EtekEtWl0vO2koXzR0LCJsaWdodEZvcm1hdCIpO2koX0VhLCJjbGVhbkVzY2FwZWRTdHJpbmciKTtuQXM9XzR0fSk7ZnVuY3Rpb24gejR0KHt5ZWFyczpzLG1vbnRoczplLHdlZWtzOnQsZGF5czphLGhvdXJzOnIsbWludXRlczpuLHNlY29uZHM6b30pe2xldCBsPTA7cyYmKGwrPXMqMzY1LjI0MjUpLGUmJihsKz1lKigzNjUuMjQyNS8xMikpLHQmJihsKz10KjcpLGEmJihsKz1hKTtsZXQgcD1sKjI0KjYwKjYwO3JldHVybiByJiYocCs9cio2MCo2MCksbiYmKHArPW4qNjApLG8mJihwKz1vKSxNYXRoLnRydW5jKHAqMWUzKX12YXIgdUFzLEM0dD1nKCgpPT57d2EoKTtpKHo0dCwibWlsbGlzZWNvbmRzIik7dUFzPXo0dH0pO2Z1bmN0aW9uIFQ0dChzKXtsZXQgZT1zL05sO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBtQXMsJDR0PWcoKCk9Pnt3YSgpO2koVDR0LCJtaWxsaXNlY29uZHNUb0hvdXJzIik7bUFzPVQ0dH0pO2Z1bmN0aW9uIEQ0dChzKXtsZXQgZT1zL1dvO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciB4QXMsTDR0PWcoKCk9Pnt3YSgpO2koRDR0LCJtaWxsaXNlY29uZHNUb01pbnV0ZXMiKTt4QXM9RDR0fSk7ZnVuY3Rpb24gRTR0KHMpe2xldCBlPXMvQjc7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIFNBcyxQNHQ9ZygoKT0+e3dhKCk7aShFNHQsIm1pbGxpc2Vjb25kc1RvU2Vjb25kcyIpO1NBcz1FNHR9KTtmdW5jdGlvbiBJNHQocyl7bGV0IGU9cy9JZWU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIENBcyxBNHQ9ZygoKT0+e3dhKCk7aShJNHQsIm1pbnV0ZXNUb0hvdXJzIik7Q0FzPUk0dH0pO2Z1bmN0aW9uIE40dChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKldvKX12YXIgTEFzLFI0dD1nKCgpPT57d2EoKTtpKE40dCwibWludXRlc1RvTWlsbGlzZWNvbmRzIik7TEFzPU40dH0pO2Z1bmN0aW9uIE80dChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKnE3KX12YXIgQUFzLEY0dD1nKCgpPT57d2EoKTtpKE80dCwibWludXRlc1RvU2Vjb25kcyIpO0FBcz1PNHR9KTtmdW5jdGlvbiBCNHQocyl7bGV0IGU9cy9BZWU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIEZBcyxINHQ9ZygoKT0+e3dhKCk7aShCNHQsIm1vbnRoc1RvUXVhcnRlcnMiKTtGQXM9QjR0fSk7ZnVuY3Rpb24gcTR0KHMpe2xldCBlPXMvTmVlO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBqQXMsajR0PWcoKCk9Pnt3YSgpO2kocTR0LCJtb250aHNUb1llYXJzIik7akFzPXE0dH0pO2Z1bmN0aW9uIFhvKHMsZSx0KXtsZXQgYT1lLXhwKHMsdCk7cmV0dXJuIGE8PTAmJihhKz03KSxIcihzLGEsdCl9dmFyIEtBcyxtMD1nKCgpPT57UTIoKTtPeSgpO2koWG8sIm5leHREYXkiKTtLQXM9WG99KTtmdW5jdGlvbiBWNHQocyxlKXtyZXR1cm4gWG8ocyw1LGUpfXZhciBRQXMsVTR0PWcoKCk9PnttMCgpO2koVjR0LCJuZXh0RnJpZGF5Iik7UUFzPVY0dH0pO2Z1bmN0aW9uIFc0dChzLGUpe3JldHVybiBYbyhzLDEsZSl9dmFyIGFOcyxHNHQ9ZygoKT0+e20wKCk7aShXNHQsIm5leHRNb25kYXkiKTthTnM9VzR0fSk7ZnVuY3Rpb24gSzR0KHMsZSl7cmV0dXJuIFhvKHMsNixlKX12YXIgb05zLFk0dD1nKCgpPT57bTAoKTtpKEs0dCwibmV4dFNhdHVyZGF5Iik7b05zPUs0dH0pO2Z1bmN0aW9uIFo0dChzLGUpe3JldHVybiBYbyhzLDAsZSl9dmFyIGROcyxYNHQ9ZygoKT0+e20wKCk7aShaNHQsIm5leHRTdW5kYXkiKTtkTnM9WjR0fSk7ZnVuY3Rpb24gUTR0KHMsZSl7cmV0dXJuIFhvKHMsNCxlKX12YXIgZk5zLEo0dD1nKCgpPT57bTAoKTtpKFE0dCwibmV4dFRodXJzZGF5Iik7Zk5zPVE0dH0pO2Z1bmN0aW9uIGUzdChzLGUpe3JldHVybiBYbyhzLDIsZSl9dmFyIHZOcyx0M3Q9ZygoKT0+e20wKCk7aShlM3QsIm5leHRUdWVzZGF5Iik7dk5zPWUzdH0pO2Z1bmN0aW9uIGEzdChzLGUpe3JldHVybiBYbyhzLDMsZSl9dmFyIGtOcyxzM3Q9ZygoKT0+e20wKCk7aShhM3QsIm5leHRXZWRuZXNkYXkiKTtrTnM9YTN0fSk7ZnVuY3Rpb24gcjN0KHMsZSl7bGV0IHQ9aSgoKT0+dHQoZT8uaW4sTmFOKSwiaW52YWxpZERhdGUiKSxhPWU/LmFkZGl0aW9uYWxEaWdpdHM/PzIscj1URWEocyksbjtpZihyLmRhdGUpe2xldCBkPSRFYShyLmRhdGUsYSk7bj1ERWEoZC5yZXN0RGF0ZVN0cmluZyxkLnllYXIpfWlmKCFufHxpc05hTigrbikpcmV0dXJuIHQoKTtsZXQgbz0rbixsPTAscDtpZihyLnRpbWUmJihsPUxFYShyLnRpbWUpLGlzTmFOKGwpKSlyZXR1cm4gdCgpO2lmKHIudGltZXpvbmUpe2lmKHA9RUVhKHIudGltZXpvbmUpLGlzTmFOKHApKXJldHVybiB0KCl9ZWxzZXtsZXQgZD1uZXcgRGF0ZShvK2wpLHU9QWUoMCxlPy5pbik7cmV0dXJuIHUuc2V0RnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpLGQuZ2V0VVRDTW9udGgoKSxkLmdldFVUQ0RhdGUoKSksdS5zZXRIb3VycyhkLmdldFVUQ0hvdXJzKCksZC5nZXRVVENNaW51dGVzKCksZC5nZXRVVENTZWNvbmRzKCksZC5nZXRVVENNaWxsaXNlY29uZHMoKSksdX1yZXR1cm4gQWUobytsK3AsZT8uaW4pfWZ1bmN0aW9uIFRFYShzKXtsZXQgZT17fSx0PXMuc3BsaXQoRGFlLmRhdGVUaW1lRGVsaW1pdGVyKSxhO2lmKHQubGVuZ3RoPjIpcmV0dXJuIGU7aWYoLzovLnRlc3QodFswXSk/YT10WzBdOihlLmRhdGU9dFswXSxhPXRbMV0sRGFlLnRpbWVab25lRGVsaW1pdGVyLnRlc3QoZS5kYXRlKSYmKGUuZGF0ZT1zLnNwbGl0KERhZS50aW1lWm9uZURlbGltaXRlcilbMF0sYT1zLnN1YnN0cihlLmRhdGUubGVuZ3RoLHMubGVuZ3RoKSkpLGEpe2xldCByPURhZS50aW1lem9uZS5leGVjKGEpO3I/KGUudGltZT1hLnJlcGxhY2UoclsxXSwiIiksZS50aW1lem9uZT1yWzFdKTplLnRpbWU9YX1yZXR1cm4gZX1mdW5jdGlvbiAkRWEocyxlKXtsZXQgdD1uZXcgUmVnRXhwKCJeKD86KFxcZHs0fXxbKy1dXFxkeyIrKDQrZSkrIn0pfChcXGR7Mn18WystXVxcZHsiKygyK2UpKyJ9KSQpIiksYT1zLm1hdGNoKHQpO2lmKCFhKXJldHVybnt5ZWFyOk5hTixyZXN0RGF0ZVN0cmluZzoiIn07bGV0IHI9YVsxXT9wYXJzZUludChhWzFdKTpudWxsLG49YVsyXT9wYXJzZUludChhWzJdKTpudWxsO3JldHVybnt5ZWFyOm49PT1udWxsP3I6bioxMDAscmVzdERhdGVTdHJpbmc6cy5zbGljZSgoYVsxXXx8YVsyXSkubGVuZ3RoKX19ZnVuY3Rpb24gREVhKHMsZSl7aWYoZT09PW51bGwpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IHQ9cy5tYXRjaChNRWEpO2lmKCF0KXJldHVybiBuZXcgRGF0ZShOYU4pO2xldCBhPSEhdFs0XSxyPVZ5KHRbMV0pLG49VnkodFsyXSktMSxvPVZ5KHRbM10pLGw9VnkodFs0XSkscD1WeSh0WzVdKS0xO2lmKGEpcmV0dXJuIFJFYShlLGwscCk/UEVhKGUsbCxwKTpuZXcgRGF0ZShOYU4pO3tsZXQgZD1uZXcgRGF0ZSgwKTtyZXR1cm4hQUVhKGUsbixvKXx8IU5FYShlLHIpP25ldyBEYXRlKE5hTik6KGQuc2V0VVRDRnVsbFllYXIoZSxuLE1hdGgubWF4KHIsbykpLGQpfX1mdW5jdGlvbiBWeShzKXtyZXR1cm4gcz9wYXJzZUludChzKToxfWZ1bmN0aW9uIExFYShzKXtsZXQgZT1zLm1hdGNoKHpFYSk7aWYoIWUpcmV0dXJuIE5hTjtsZXQgdD1laGUoZVsxXSksYT1laGUoZVsyXSkscj1laGUoZVszXSk7cmV0dXJuIE9FYSh0LGEscik/dCpObCthKldvK3IqMWUzOk5hTn1mdW5jdGlvbiBlaGUocyl7cmV0dXJuIHMmJnBhcnNlRmxvYXQocy5yZXBsYWNlKCIsIiwiLiIpKXx8MH1mdW5jdGlvbiBFRWEocyl7aWYocz09PSJaIilyZXR1cm4gMDtsZXQgZT1zLm1hdGNoKENFYSk7aWYoIWUpcmV0dXJuIDA7bGV0IHQ9ZVsxXT09PSIrIj8tMToxLGE9cGFyc2VJbnQoZVsyXSkscj1lWzNdJiZwYXJzZUludChlWzNdKXx8MDtyZXR1cm4gRkVhKGEscik/dCooYSpObCtyKldvKTpOYU59ZnVuY3Rpb24gUEVhKHMsZSx0KXtsZXQgYT1uZXcgRGF0ZSgwKTthLnNldFVUQ0Z1bGxZZWFyKHMsMCw0KTtsZXQgcj1hLmdldFVUQ0RheSgpfHw3LG49KGUtMSkqNyt0KzEtcjtyZXR1cm4gYS5zZXRVVENEYXRlKGEuZ2V0VVRDRGF0ZSgpK24pLGF9ZnVuY3Rpb24gaTN0KHMpe3JldHVybiBzJTQwMD09PTB8fHMlND09PTAmJnMlMTAwIT09MH1mdW5jdGlvbiBBRWEocyxlLHQpe3JldHVybiBlPj0wJiZlPD0xMSYmdD49MSYmdDw9KElFYVtlXXx8KGkzdChzKT8yOToyOCkpfWZ1bmN0aW9uIE5FYShzLGUpe3JldHVybiBlPj0xJiZlPD0oaTN0KHMpPzM2NjozNjUpfWZ1bmN0aW9uIFJFYShzLGUsdCl7cmV0dXJuIGU+PTEmJmU8PTUzJiZ0Pj0wJiZ0PD02fWZ1bmN0aW9uIE9FYShzLGUsdCl7cmV0dXJuIHM9PT0yND9lPT09MCYmdD09PTA6dD49MCYmdDw2MCYmZT49MCYmZTw2MCYmcz49MCYmczwyNX1mdW5jdGlvbiBGRWEocyxlKXtyZXR1cm4gZT49MCYmZTw9NTl9dmFyIERhZSxNRWEsekVhLENFYSxJRWEsVE5zLG8zdD1nKCgpPT57d2EoKTtHdCgpO2F0KCk7aShyM3QsInBhcnNlSVNPIik7RGFlPXtkYXRlVGltZURlbGltaXRlcjovW1QgXS8sdGltZVpvbmVEZWxpbWl0ZXI6L1taIF0vaSx0aW1lem9uZTovKFtaKy1dLiopJC99LE1FYT0vXi0/KD86KFxkezN9KXwoXGR7Mn0pKD86LT8oXGR7Mn0pKT98VyhcZHsyfSkoPzotPyhcZHsxfSkpP3wpJC8sekVhPS9eKFxkezJ9KD86Wy4sXVxkKik/KSg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/KD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8kLyxDRWE9L14oWystXSkoXGR7Mn0pKD86Oj8oXGR7Mn0pKT8kLztpKFRFYSwic3BsaXREYXRlU3RyaW5nIik7aSgkRWEsInBhcnNlWWVhciIpO2koREVhLCJwYXJzZURhdGUiKTtpKFZ5LCJwYXJzZURhdGVVbml0Iik7aShMRWEsInBhcnNlVGltZSIpO2koZWhlLCJwYXJzZVRpbWVVbml0Iik7aShFRWEsInBhcnNlVGltZXpvbmUiKTtpKFBFYSwiZGF5T2ZJU09XZWVrWWVhciIpO0lFYT1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07aShpM3QsImlzTGVhcFllYXJJbmRleCIpO2koQUVhLCJ2YWxpZGF0ZURhdGUiKTtpKE5FYSwidmFsaWRhdGVEYXlPZlllYXJEYXRlIik7aShSRWEsInZhbGlkYXRlV2Vla0RhdGUiKTtpKE9FYSwidmFsaWRhdGVUaW1lIik7aShGRWEsInZhbGlkYXRlVGltZXpvbmUiKTtUTnM9cjN0fSk7ZnVuY3Rpb24gbjN0KHMsZSl7bGV0IHQ9cy5tYXRjaCgvKFxkezR9KS0oXGR7Mn0pLShcZHsyfSlbVCBdKFxkezJ9KTooXGR7Mn0pOihcZHsyfSkoPzpcLihcZHswLDd9KSk/KD86WnwoLikoXGR7Mn0pOj8oXGR7Mn0pPyk/Lyk7cmV0dXJuIHQ/QWUoRGF0ZS5VVEMoK3RbMV0sK3RbMl0tMSwrdFszXSwrdFs0XS0oK3RbOV18fDApKih0WzhdPT0iLSI/LTE6MSksK3RbNV0tKCt0WzEwXXx8MCkqKHRbOF09PSItIj8tMToxKSwrdFs2XSwrKCh0WzddfHwiMCIpKyIwMCIpLnN1YnN0cmluZygwLDMpKSxlPy5pbik6QWUoTmFOLGU/LmluKX12YXIgRU5zLGwzdD1nKCgpPT57YXQoKTtpKG4zdCwicGFyc2VKU09OIik7RU5zPW4zdH0pO2Z1bmN0aW9uIFFvKHMsZSx0KXtsZXQgYT14cChzLHQpLWU7cmV0dXJuIGE8PTAmJihhKz03KSx3cChzLGEsdCl9dmFyIFJOcyxnMD1nKCgpPT57T3koKTtqeSgpO2koUW8sInByZXZpb3VzRGF5Iik7Uk5zPVFvfSk7ZnVuY3Rpb24gYzN0KHMsZSl7cmV0dXJuIFFvKHMsNSxlKX12YXIgSE5zLGQzdD1nKCgpPT57ZzAoKTtpKGMzdCwicHJldmlvdXNGcmlkYXkiKTtITnM9YzN0fSk7ZnVuY3Rpb24gdTN0KHMsZSl7cmV0dXJuIFFvKHMsMSxlKX12YXIgVU5zLHAzdD1nKCgpPT57ZzAoKTtpKHUzdCwicHJldmlvdXNNb25kYXkiKTtVTnM9dTN0fSk7ZnVuY3Rpb24gaDN0KHMsZSl7cmV0dXJuIFFvKHMsNixlKX12YXIgWU5zLGYzdD1nKCgpPT57ZzAoKTtpKGgzdCwicHJldmlvdXNTYXR1cmRheSIpO1lOcz1oM3R9KTtmdW5jdGlvbiBtM3QocyxlKXtyZXR1cm4gUW8ocywwLGUpfXZhciBKTnMsZzN0PWcoKCk9PntnMCgpO2kobTN0LCJwcmV2aW91c1N1bmRheSIpO0pOcz1tM3R9KTtmdW5jdGlvbiBiM3QocyxlKXtyZXR1cm4gUW8ocyw0LGUpfXZhciBzUnMsdjN0PWcoKCk9PntnMCgpO2koYjN0LCJwcmV2aW91c1RodXJzZGF5Iik7c1JzPWIzdH0pO2Z1bmN0aW9uIHgzdChzLGUpe3JldHVybiBRbyhzLDIsZSl9dmFyIG5Scyx5M3Q9ZygoKT0+e2cwKCk7aSh4M3QsInByZXZpb3VzVHVlc2RheSIpO25Scz14M3R9KTtmdW5jdGlvbiB3M3QocyxlKXtyZXR1cm4gUW8ocywzLGUpfXZhciB1UnMsazN0PWcoKCk9PntnMCgpO2kodzN0LCJwcmV2aW91c1dlZG5lc2RheSIpO3VScz13M3R9KTtmdW5jdGlvbiBTM3Qocyl7cmV0dXJuIE1hdGgudHJ1bmMocypBZWUpfXZhciBtUnMsXzN0PWcoKCk9Pnt3YSgpO2koUzN0LCJxdWFydGVyc1RvTW9udGhzIik7bVJzPVMzdH0pO2Z1bmN0aW9uIE0zdChzKXtsZXQgZT1zL1JlZTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgeFJzLHozdD1nKCgpPT57d2EoKTtpKE0zdCwicXVhcnRlcnNUb1llYXJzIik7eFJzPU0zdH0pO2Z1bmN0aW9uIEMzdChzLGUpe2xldCB0PWU/Lm5lYXJlc3RUbz8/MTtpZih0PDF8fHQ+MTIpcmV0dXJuIHR0KGU/LmlufHxzLE5hTik7bGV0IGE9QWUocyxlPy5pbikscj1hLmdldE1pbnV0ZXMoKS82MCxuPWEuZ2V0U2Vjb25kcygpLzYwLzYwLG89YS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAsbD1hLmdldEhvdXJzKCkrcituK28scD1lPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIix1PVlvKHApKGwvdCkqdDtyZXR1cm4gYS5zZXRIb3Vycyh1LDAsMCwwKSxhfXZhciBNUnMsVDN0PWcoKCk9PntmMCgpO0d0KCk7YXQoKTtpKEMzdCwicm91bmRUb05lYXJlc3RIb3VycyIpO01Scz1DM3R9KTtmdW5jdGlvbiAkM3QocyxlKXtsZXQgdD1lPy5uZWFyZXN0VG8/PzE7aWYodDwxfHx0PjMwKXJldHVybiB0dChzLE5hTik7bGV0IGE9QWUocyxlPy5pbikscj1hLmdldFNlY29uZHMoKS82MCxuPWEuZ2V0TWlsbGlzZWNvbmRzKCkvMWUzLzYwLG89YS5nZXRNaW51dGVzKCkrcituLGw9ZT8ucm91bmRpbmdNZXRob2Q/PyJyb3VuZCIsZD1ZbyhsKShvL3QpKnQ7cmV0dXJuIGEuc2V0TWludXRlcyhkLDAsMCksYX12YXIgTFJzLEQzdD1nKCgpPT57ZjAoKTtHdCgpO2F0KCk7aSgkM3QsInJvdW5kVG9OZWFyZXN0TWludXRlcyIpO0xScz0kM3R9KTtmdW5jdGlvbiBMM3Qocyl7bGV0IGU9cy9HNDtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgQVJzLEUzdD1nKCgpPT57d2EoKTtpKEwzdCwic2Vjb25kc1RvSG91cnMiKTtBUnM9TDN0fSk7ZnVuY3Rpb24gUDN0KHMpe3JldHVybiBzKkI3fXZhciBGUnMsSTN0PWcoKCk9Pnt3YSgpO2koUDN0LCJzZWNvbmRzVG9NaWxsaXNlY29uZHMiKTtGUnM9UDN0fSk7ZnVuY3Rpb24gQTN0KHMpe2xldCBlPXMvcTc7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIGpScyxOM3Q9ZygoKT0+e3dhKCk7aShBM3QsInNlY29uZHNUb01pbnV0ZXMiKTtqUnM9QTN0fSk7ZnVuY3Rpb24gYzkocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pLHI9YS5nZXRGdWxsWWVhcigpLG49YS5nZXREYXRlKCksbz10dCh0Py5pbnx8cywwKTtvLnNldEZ1bGxZZWFyKHIsZSwxNSksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1DdGUobyk7cmV0dXJuIGEuc2V0TW9udGgoZSxNYXRoLm1pbihuLGwpKSxhfXZhciBZUnMsTGFlPWcoKCk9PntHdCgpO0VwZSgpO2F0KCk7aShjOSwic2V0TW9udGgiKTtZUnM9Yzl9KTtmdW5jdGlvbiBSM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBpc05hTigrYSk/dHQodD8uaW58fHMsTmFOKTooZS55ZWFyIT1udWxsJiZhLnNldEZ1bGxZZWFyKGUueWVhciksZS5tb250aCE9bnVsbCYmKGE9YzkoYSxlLm1vbnRoKSksZS5kYXRlIT1udWxsJiZhLnNldERhdGUoZS5kYXRlKSxlLmhvdXJzIT1udWxsJiZhLnNldEhvdXJzKGUuaG91cnMpLGUubWludXRlcyE9bnVsbCYmYS5zZXRNaW51dGVzKGUubWludXRlcyksZS5zZWNvbmRzIT1udWxsJiZhLnNldFNlY29uZHMoZS5zZWNvbmRzKSxlLm1pbGxpc2Vjb25kcyE9bnVsbCYmYS5zZXRNaWxsaXNlY29uZHMoZS5taWxsaXNlY29uZHMpLGEpfXZhciB0T3MsTzN0PWcoKCk9PntHdCgpO0xhZSgpO2F0KCk7aShSM3QsInNldCIpO3RPcz1SM3R9KTtmdW5jdGlvbiBGM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldERhdGUoZSksYX12YXIgck9zLEIzdD1nKCgpPT57YXQoKTtpKEYzdCwic2V0RGF0ZSIpO3JPcz1GM3R9KTtmdW5jdGlvbiBIM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldE1vbnRoKDApLGEuc2V0RGF0ZShlKSxhfXZhciBjT3MscTN0PWcoKCk9PnthdCgpO2koSDN0LCJzZXREYXlPZlllYXIiKTtjT3M9SDN0fSk7ZnVuY3Rpb24gajN0KHMpe2xldCBlPXt9LHQ9RXMoKTtmb3IobGV0IGEgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxhKSYmKGVbYV09dFthXSk7Zm9yKGxldCBhIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsYSkmJihzW2FdPT09dm9pZCAwP2RlbGV0ZSBlW2FdOmVbYV09c1thXSk7cjB0KGUpfXZhciBoT3MsVjN0PWcoKCk9PntHbygpO2koajN0LCJzZXREZWZhdWx0T3B0aW9ucyIpO2hPcz1qM3R9KTtmdW5jdGlvbiBVM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldEhvdXJzKGUpLGF9dmFyIGJPcyxXM3Q9ZygoKT0+e2F0KCk7aShVM3QsInNldEhvdXJzIik7Yk9zPVUzdH0pO2Z1bmN0aW9uIEczdChzLGUsdCl7bGV0IGE9QWUocyx0Py5pbik7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKGUpLGF9dmFyIHdPcyxLM3Q9ZygoKT0+e2F0KCk7aShHM3QsInNldE1pbGxpc2Vjb25kcyIpO3dPcz1HM3R9KTtmdW5jdGlvbiBZM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldE1pbnV0ZXMoZSksYX12YXIgTU9zLFozdD1nKCgpPT57YXQoKTtpKFkzdCwic2V0TWludXRlcyIpO01Pcz1ZM3R9KTtmdW5jdGlvbiBYM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pLHI9TWF0aC50cnVuYyhhLmdldE1vbnRoKCkvMykrMSxuPWUtcjtyZXR1cm4gYzkoYSxhLmdldE1vbnRoKCkrbiozKX12YXIgRE9zLFEzdD1nKCgpPT57TGFlKCk7YXQoKTtpKFgzdCwic2V0UXVhcnRlciIpO0RPcz1YM3R9KTtmdW5jdGlvbiBKM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldFNlY29uZHMoZSksYX12YXIgSU9zLGVmdD1nKCgpPT57YXQoKTtpKEozdCwic2V0U2Vjb25kcyIpO0lPcz1KM3R9KTtmdW5jdGlvbiB0ZnQocyxlLHQpe2xldCBhPUVzKCkscj10Py5maXJzdFdlZWtDb250YWluc0RhdGU/P3Q/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPW5vKEFlKHMsdD8uaW4pLGUzKHMsdCksdCksbz10dCh0Py5pbnx8cywwKTtvLnNldEZ1bGxZZWFyKGUsMCxyKSxvLnNldEhvdXJzKDAsMCwwLDApO2xldCBsPWUzKG8sdCk7cmV0dXJuIGwuc2V0RGF0ZShsLmdldERhdGUoKStuKSxsfXZhciBxT3MsYWZ0PWcoKCk9PntHbygpO0d0KCk7cDAoKTt5dGUoKTthdCgpO2kodGZ0LCJzZXRXZWVrWWVhciIpO3FPcz10ZnR9KTtmdW5jdGlvbiBzZnQocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBpc05hTigrYSk/dHQodD8uaW58fHMsTmFOKTooYS5zZXRGdWxsWWVhcihlKSxhKX12YXIgR09zLGlmdD1nKCgpPT57R3QoKTthdCgpO2koc2Z0LCJzZXRZZWFyIik7R09zPXNmdH0pO2Z1bmN0aW9uIHJmdChzLGUpe2xldCB0PUFlKHMsZT8uaW4pLGE9dC5nZXRGdWxsWWVhcigpLHI9TWF0aC5mbG9vcihhLzEwKSoxMDtyZXR1cm4gdC5zZXRGdWxsWWVhcihyLDAsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBYT3Msb2Z0PWcoKCk9PnthdCgpO2kocmZ0LCJzdGFydE9mRGVjYWRlIik7WE9zPXJmdH0pO2Z1bmN0aW9uIG5mdChzKXtyZXR1cm4gYWQoRGF0ZS5ub3coKSxzKX12YXIgdEZzLGxmdD1nKCgpPT57VHkoKTtpKG5mdCwic3RhcnRPZlRvZGF5Iik7dEZzPW5mdH0pO2Z1bmN0aW9uIGNmdChzKXtsZXQgZT1QYShzPy5pbiksdD1lLmdldEZ1bGxZZWFyKCksYT1lLmdldE1vbnRoKCkscj1lLmdldERhdGUoKSxuPXR0KHM/LmluLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKHQsYSxyKzEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgb0ZzLGRmdD1nKCgpPT57R3QoKTtxcigpO2koY2Z0LCJzdGFydE9mVG9tb3Jyb3ciKTtvRnM9Y2Z0fSk7ZnVuY3Rpb24gdWZ0KHMpe2xldCBlPVBhKHM/LmluKSx0PWUuZ2V0RnVsbFllYXIoKSxhPWUuZ2V0TW9udGgoKSxyPWUuZ2V0RGF0ZSgpLG49UGEocz8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKHQsYSxyLTEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgZEZzLHBmdD1nKCgpPT57cXIoKTtpKHVmdCwic3RhcnRPZlllc3RlcmRheSIpO2RGcz11ZnR9KTtmdW5jdGlvbiBFYWUocyxlLHQpe3JldHVybiBKMihzLC1lLHQpfXZhciBmRnMsdGhlPWcoKCk9PntqNygpO2koRWFlLCJzdWJNb250aHMiKTtmRnM9RWFlfSk7ZnVuY3Rpb24gaGZ0KHMsZSx0KXtsZXR7eWVhcnM6YT0wLG1vbnRoczpyPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOmw9MCxtaW51dGVzOnA9MCxzZWNvbmRzOmQ9MH09ZSx1PUVhZShzLHIrYSoxMix0KSxjPXdwKHUsbytuKjcsdCksYj1wK2wqNjAseD0oZCtiKjYwKSoxZTM7cmV0dXJuIHR0KHQ/LmlufHxzLCtjLXgpfXZhciB5RnMsZmZ0PWcoKCk9PntHdCgpO2p5KCk7dGhlKCk7aShoZnQsInN1YiIpO3lGcz1oZnR9KTtmdW5jdGlvbiBtZnQocyxlLHQpe3JldHVybiBCZWUocywtZSx0KX12YXIgX0ZzLGdmdD1nKCgpPT57cnBlKCk7aShtZnQsInN1YkJ1c2luZXNzRGF5cyIpO19Gcz1tZnR9KTtmdW5jdGlvbiBiZnQocyxlLHQpe3JldHVybiBIZWUocywtZSx0KX12YXIgVEZzLHZmdD1nKCgpPT57b3BlKCk7aShiZnQsInN1YkhvdXJzIik7VEZzPWJmdH0pO2Z1bmN0aW9uIHhmdChzLGUsdCl7cmV0dXJuIHVwKHMsLWUsdCl9dmFyIEVGcyx5ZnQ9ZygoKT0+e0N5KCk7aSh4ZnQsInN1Yk1pbGxpc2Vjb25kcyIpO0VGcz14ZnR9KTtmdW5jdGlvbiB3ZnQocyxlLHQpe3JldHVybiBVNyhzLC1lLHQpfXZhciBORnMsa2Z0PWcoKCk9PntWZWUoKTtpKHdmdCwic3ViTWludXRlcyIpO05Gcz13ZnR9KTtmdW5jdGlvbiBTZnQocyxlLHQpe3JldHVybiBXNyhzLC1lLHQpfXZhciBCRnMsX2Z0PWcoKCk9PntVZWUoKTtpKFNmdCwic3ViUXVhcnRlcnMiKTtCRnM9U2Z0fSk7ZnVuY3Rpb24gTWZ0KHMsZSx0KXtyZXR1cm4gV2VlKHMsLWUsdCl9dmFyIFZGcyx6ZnQ9ZygoKT0+e2NwZSgpO2koTWZ0LCJzdWJTZWNvbmRzIik7VkZzPU1mdH0pO2Z1bmN0aW9uIENmdChzLGUsdCl7cmV0dXJuIGhwKHMsLWUsdCl9dmFyIEtGcyxUZnQ9ZygoKT0+eyR5KCk7aShDZnQsInN1YldlZWtzIik7S0ZzPUNmdH0pO2Z1bmN0aW9uICRmdChzLGUsdCl7cmV0dXJuIEdlZShzLC1lLHQpfXZhciBRRnMsRGZ0PWcoKCk9PntkcGUoKTtpKCRmdCwic3ViWWVhcnMiKTtRRnM9JGZ0fSk7ZnVuY3Rpb24gTGZ0KHMpe3JldHVybiBNYXRoLnRydW5jKHMqNyl9dmFyIGFCcyxFZnQ9ZygoKT0+e3dhKCk7aShMZnQsIndlZWtzVG9EYXlzIik7YUJzPUxmdH0pO2Z1bmN0aW9uIFBmdChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKjM2NS4yNDI1KX12YXIgb0JzLElmdD1nKCgpPT57d2EoKTtpKFBmdCwieWVhcnNUb0RheXMiKTtvQnM9UGZ0fSk7ZnVuY3Rpb24gQWZ0KHMpe3JldHVybiBNYXRoLnRydW5jKHMqTmVlKX12YXIgZEJzLE5mdD1nKCgpPT57d2EoKTtpKEFmdCwieWVhcnNUb01vbnRocyIpO2RCcz1BZnR9KTtmdW5jdGlvbiBSZnQocyl7cmV0dXJuIE1hdGgudHJ1bmMocypSZWUpfXZhciBmQnMsT2Z0PWcoKCk9Pnt3YSgpO2koUmZ0LCJ5ZWFyc1RvUXVhcnRlcnMiKTtmQnM9UmZ0fSk7dmFyIFV5PXt9O3l0KFV5LHthZGQ6KCk9PmRwLGFkZEJ1c2luZXNzRGF5czooKT0+QmVlLGFkZERheXM6KCk9PkhyLGFkZEhvdXJzOigpPT5IZWUsYWRkSVNPV2Vla1llYXJzOigpPT5qZWUsYWRkTWlsbGlzZWNvbmRzOigpPT51cCxhZGRNaW51dGVzOigpPT5VNyxhZGRNb250aHM6KCk9PkoyLGFkZFF1YXJ0ZXJzOigpPT5XNyxhZGRTZWNvbmRzOigpPT5XZWUsYWRkV2Vla3M6KCk9PmhwLGFkZFllYXJzOigpPT5HZWUsYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9Pm8wdCxjbGFtcDooKT0+bDB0LGNsb3Nlc3RJbmRleFRvOigpPT5aZWUsY2xvc2VzdFRvOigpPT5kMHQsY29tcGFyZUFzYzooKT0+S28sY29tcGFyZURlc2M6KCk9PnAwdCxjb25zdHJ1Y3RGcm9tOigpPT50dCxjb25zdHJ1Y3ROb3c6KCk9PlBhLGRheXNUb1dlZWtzOigpPT5mMHQsZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzOigpPT5nMHQsZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzOigpPT5ubyxkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFyczooKT0+UWVlLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3M6KCk9PnYwdCxkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoczooKT0+WTQsZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVyczooKT0+SzcsZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrczooKT0+WjQsZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFyczooKT0+ZnAsZGlmZmVyZW5jZUluRGF5czooKT0+WTcsZGlmZmVyZW5jZUluSG91cnM6KCk9Plg0LGRpZmZlcmVuY2VJbklTT1dlZWtZZWFyczooKT0+dzB0LGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kczooKT0+WjcsZGlmZmVyZW5jZUluTWludXRlczooKT0+UTQsZGlmZmVyZW5jZUluTW9udGhzOigpPT5tcCxkaWZmZXJlbmNlSW5RdWFydGVyczooKT0+UzB0LGRpZmZlcmVuY2VJblNlY29uZHM6KCk9PmlkLGRpZmZlcmVuY2VJbldlZWtzOigpPT5NMHQsZGlmZmVyZW5jZUluWWVhcnM6KCk9PmR0ZSxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+dXRlLGVhY2hIb3VyT2ZJbnRlcnZhbDooKT0+QzB0LGVhY2hNaW51dGVPZkludGVydmFsOigpPT4kMHQsZWFjaE1vbnRoT2ZJbnRlcnZhbDooKT0+TDB0LGVhY2hRdWFydGVyT2ZJbnRlcnZhbDooKT0+UDB0LGVhY2hXZWVrT2ZJbnRlcnZhbDooKT0+QTB0LGVhY2hXZWVrZW5kT2ZJbnRlcnZhbDooKT0+SjcsZWFjaFdlZWtlbmRPZk1vbnRoOigpPT5SMHQsZWFjaFdlZWtlbmRPZlllYXI6KCk9PkYwdCxlYWNoWWVhck9mSW50ZXJ2YWw6KCk9PkgwdCxlbmRPZkRheTooKT0+WDcsZW5kT2ZEZWNhZGU6KCk9PmowdCxlbmRPZkhvdXI6KCk9PlUwdCxlbmRPZklTT1dlZWs6KCk9PkcwdCxlbmRPZklTT1dlZWtZZWFyOigpPT5ZMHQsZW5kT2ZNaW51dGU6KCk9PlgwdCxlbmRPZk1vbnRoOigpPT5RNyxlbmRPZlF1YXJ0ZXI6KCk9PkowdCxlbmRPZlNlY29uZDooKT0+dHV0LGVuZE9mVG9kYXk6KCk9PnN1dCxlbmRPZlRvbW9ycm93OigpPT5ydXQsZW5kT2ZXZWVrOigpPT5ndGUsZW5kT2ZZZWFyOigpPT5mdGUsZW5kT2ZZZXN0ZXJkYXk6KCk9Pm51dCxmb3JtYXQ6KCk9PlJ5LGZvcm1hdERhdGU6KCk9PlJ5LGZvcm1hdERpc3RhbmNlOigpPT5fdGUsZm9ybWF0RGlzdGFuY2VTdHJpY3Q6KCk9Pk10ZSxmb3JtYXREaXN0YW5jZVRvTm93OigpPT5EdXQsZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdDooKT0+RXV0LGZvcm1hdER1cmF0aW9uOigpPT5JdXQsZm9ybWF0SVNPOigpPT5OdXQsZm9ybWF0SVNPOTA3NTooKT0+T3V0LGZvcm1hdElTT0R1cmF0aW9uOigpPT5CdXQsZm9ybWF0UkZDMzMzOTooKT0+cXV0LGZvcm1hdFJGQzcyMzE6KCk9PlZ1dCxmb3JtYXRSZWxhdGl2ZTooKT0+V3V0LGZvcm1hdHRlcnM6KCk9PkF5LGZyb21Vbml4VGltZTooKT0+S3V0LGdldERhdGU6KCk9Pnp0ZSxnZXREYXk6KCk9PnhwLGdldERheU9mWWVhcjooKT0+dnRlLGdldERheXNJbk1vbnRoOigpPT5DdGUsZ2V0RGF5c0luWWVhcjooKT0+WnV0LGdldERlY2FkZTooKT0+UXV0LGdldERlZmF1bHRPcHRpb25zOigpPT4kdGUsZ2V0SG91cnM6KCk9PmVwdCxnZXRJU09EYXk6KCk9PkR0ZSxnZXRJU09XZWVrOigpPT5zOSxnZXRJU09XZWVrWWVhcjooKT0+d24sZ2V0SVNPV2Vla3NJblllYXI6KCk9PmFwdCxnZXRNaWxsaXNlY29uZHM6KCk9PmlwdCxnZXRNaW51dGVzOigpPT5vcHQsZ2V0TW9udGg6KCk9PmxwdCxnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFsczooKT0+ZHB0LGdldFF1YXJ0ZXI6KCk9PkR5LGdldFNlY29uZHM6KCk9PnBwdCxnZXRUaW1lOigpPT5mcHQsZ2V0VW5peFRpbWU6KCk9PmdwdCxnZXRXZWVrOigpPT5pOSxnZXRXZWVrT2ZNb250aDooKT0+dnB0LGdldFdlZWtZZWFyOigpPT5icCxnZXRXZWVrc0luTW9udGg6KCk9PnlwdCxnZXRZZWFyOigpPT5rcHQsaG91cnNUb01pbGxpc2Vjb25kczooKT0+X3B0LGhvdXJzVG9NaW51dGVzOigpPT56cHQsaG91cnNUb1NlY29uZHM6KCk9PlRwdCxpbnRlcnZhbDooKT0+RHB0LGludGVydmFsVG9EdXJhdGlvbjooKT0+RXB0LGludGxGb3JtYXQ6KCk9PklwdCxpbnRsRm9ybWF0RGlzdGFuY2U6KCk9Pk5wdCxpc0FmdGVyOigpPT5PcHQsaXNCZWZvcmU6KCk9PkJwdCxpc0RhdGU6KCk9PlhlZSxpc0VxdWFsOigpPT5xcHQsaXNFeGlzdHM6KCk9PlZwdCxpc0ZpcnN0RGF5T2ZNb250aDooKT0+V3B0LGlzRnJpZGF5OigpPT5LcHQsaXNGdXR1cmU6KCk9PlpwdCxpc0xhc3REYXlPZk1vbnRoOigpPT5jdGUsaXNMZWFwWWVhcjooKT0+VHRlLGlzTWF0Y2g6KCk9PkRodCxpc01vbmRheTooKT0+RWh0LGlzUGFzdDooKT0+SWh0LGlzU2FtZURheTooKT0+c2QsaXNTYW1lSG91cjooKT0+d2FlLGlzU2FtZUlTT1dlZWs6KCk9PlNhZSxpc1NhbWVJU09XZWVrWWVhcjooKT0+Tmh0LGlzU2FtZU1pbnV0ZTooKT0+X2FlLGlzU2FtZU1vbnRoOigpPT5NYWUsaXNTYW1lUXVhcnRlcjooKT0+emFlLGlzU2FtZVNlY29uZDooKT0+Q2FlLGlzU2FtZVdlZWs6KCk9Pmw5LGlzU2FtZVllYXI6KCk9PlRhZSxpc1NhdHVyZGF5OigpPT5PZWUsaXNTdW5kYXk6KCk9PkZlZSxpc1RoaXNIb3VyOigpPT5PaHQsaXNUaGlzSVNPV2VlazooKT0+Qmh0LGlzVGhpc01pbnV0ZTooKT0+cWh0LGlzVGhpc01vbnRoOigpPT5WaHQsaXNUaGlzUXVhcnRlcjooKT0+V2h0LGlzVGhpc1NlY29uZDooKT0+S2h0LGlzVGhpc1dlZWs6KCk9PlpodCxpc1RoaXNZZWFyOigpPT5RaHQsaXNUaHVyc2RheTooKT0+ZTR0LGlzVG9kYXk6KCk9PmE0dCxpc1RvbW9ycm93OigpPT5pNHQsaXNUdWVzZGF5OigpPT5vNHQsaXNWYWxpZDooKT0+a28saXNXZWRuZXNkYXk6KCk9Pmw0dCxpc1dlZWtlbmQ6KCk9PmVkLGlzV2l0aGluSW50ZXJ2YWw6KCk9PmQ0dCxpc1llc3RlcmRheTooKT0+cDR0LGxhc3REYXlPZkRlY2FkZTooKT0+ZjR0LGxhc3REYXlPZklTT1dlZWs6KCk9Pmc0dCxsYXN0RGF5T2ZJU09XZWVrWWVhcjooKT0+djR0LGxhc3REYXlPZk1vbnRoOigpPT5MdGUsbGFzdERheU9mUXVhcnRlcjooKT0+eTR0LGxhc3REYXlPZldlZWs6KCk9PiRhZSxsYXN0RGF5T2ZZZWFyOigpPT5rNHQsbGlnaHRGb3JtYXQ6KCk9Pl80dCxsaWdodEZvcm1hdHRlcnM6KCk9Pk9sLGxvbmdGb3JtYXR0ZXJzOigpPT52cCxtYXg6KCk9PktlZSxtaWxsaXNlY29uZHM6KCk9Pno0dCxtaWxsaXNlY29uZHNUb0hvdXJzOigpPT5UNHQsbWlsbGlzZWNvbmRzVG9NaW51dGVzOigpPT5ENHQsbWlsbGlzZWNvbmRzVG9TZWNvbmRzOigpPT5FNHQsbWluOigpPT5ZZWUsbWludXRlc1RvSG91cnM6KCk9Pkk0dCxtaW51dGVzVG9NaWxsaXNlY29uZHM6KCk9Pk40dCxtaW51dGVzVG9TZWNvbmRzOigpPT5PNHQsbW9udGhzVG9RdWFydGVyczooKT0+QjR0LG1vbnRoc1RvWWVhcnM6KCk9PnE0dCxuZXh0RGF5OigpPT5YbyxuZXh0RnJpZGF5OigpPT5WNHQsbmV4dE1vbmRheTooKT0+VzR0LG5leHRTYXR1cmRheTooKT0+SzR0LG5leHRTdW5kYXk6KCk9Plo0dCxuZXh0VGh1cnNkYXk6KCk9PlE0dCxuZXh0VHVlc2RheTooKT0+ZTN0LG5leHRXZWRuZXNkYXk6KCk9PmEzdCxwYXJzZTooKT0+eWFlLHBhcnNlSVNPOigpPT5yM3QscGFyc2VKU09OOigpPT5uM3QscGFyc2VyczooKT0+eGFlLHByZXZpb3VzRGF5OigpPT5RbyxwcmV2aW91c0ZyaWRheTooKT0+YzN0LHByZXZpb3VzTW9uZGF5OigpPT51M3QscHJldmlvdXNTYXR1cmRheTooKT0+aDN0LHByZXZpb3VzU3VuZGF5OigpPT5tM3QscHJldmlvdXNUaHVyc2RheTooKT0+YjN0LHByZXZpb3VzVHVlc2RheTooKT0+eDN0LHByZXZpb3VzV2VkbmVzZGF5OigpPT53M3QscXVhcnRlcnNUb01vbnRoczooKT0+UzN0LHF1YXJ0ZXJzVG9ZZWFyczooKT0+TTN0LHJvdW5kVG9OZWFyZXN0SG91cnM6KCk9PkMzdCxyb3VuZFRvTmVhcmVzdE1pbnV0ZXM6KCk9PiQzdCxzZWNvbmRzVG9Ib3VyczooKT0+TDN0LHNlY29uZHNUb01pbGxpc2Vjb25kczooKT0+UDN0LHNlY29uZHNUb01pbnV0ZXM6KCk9PkEzdCxzZXQ6KCk9PlIzdCxzZXREYXRlOigpPT5GM3Qsc2V0RGF5OigpPT55cCxzZXREYXlPZlllYXI6KCk9PkgzdCxzZXREZWZhdWx0T3B0aW9uczooKT0+ajN0LHNldEhvdXJzOigpPT5VM3Qsc2V0SVNPRGF5OigpPT5zYWUsc2V0SVNPV2VlazooKT0+WnRlLHNldElTT1dlZWtZZWFyOigpPT5xZWUsc2V0TWlsbGlzZWNvbmRzOigpPT5HM3Qsc2V0TWludXRlczooKT0+WTN0LHNldE1vbnRoOigpPT5jOSxzZXRRdWFydGVyOigpPT5YM3Qsc2V0U2Vjb25kczooKT0+SjN0LHNldFdlZWs6KCk9Pkt0ZSxzZXRXZWVrWWVhcjooKT0+dGZ0LHNldFllYXI6KCk9PnNmdCxzdGFydE9mRGF5OigpPT5hZCxzdGFydE9mRGVjYWRlOigpPT5yZnQsc3RhcnRPZkhvdXI6KCk9PkJ5LHN0YXJ0T2ZJU09XZWVrOigpPT5rcixzdGFydE9mSVNPV2Vla1llYXI6KCk9PlJsLHN0YXJ0T2ZNaW51dGU6KCk9Pkh5LHN0YXJ0T2ZNb250aDooKT0+Z3Asc3RhcnRPZlF1YXJ0ZXI6KCk9Pm9kLHN0YXJ0T2ZTZWNvbmQ6KCk9PnF5LHN0YXJ0T2ZUb2RheTooKT0+bmZ0LHN0YXJ0T2ZUb21vcnJvdzooKT0+Y2Z0LHN0YXJ0T2ZXZWVrOigpPT5LcyxzdGFydE9mV2Vla1llYXI6KCk9PmUzLHN0YXJ0T2ZZZWFyOigpPT5lOSxzdGFydE9mWWVzdGVyZGF5OigpPT51ZnQsc3ViOigpPT5oZnQsc3ViQnVzaW5lc3NEYXlzOigpPT5tZnQsc3ViRGF5czooKT0+d3Asc3ViSG91cnM6KCk9PmJmdCxzdWJJU09XZWVrWWVhcnM6KCk9Pml0ZSxzdWJNaWxsaXNlY29uZHM6KCk9PnhmdCxzdWJNaW51dGVzOigpPT53ZnQsc3ViTW9udGhzOigpPT5FYWUsc3ViUXVhcnRlcnM6KCk9PlNmdCxzdWJTZWNvbmRzOigpPT5NZnQsc3ViV2Vla3M6KCk9PkNmdCxzdWJZZWFyczooKT0+JGZ0LHRvRGF0ZTooKT0+QWUsdHJhbnNwb3NlOigpPT5FdGUsd2Vla3NUb0RheXM6KCk9PkxmdCx5ZWFyc1RvRGF5czooKT0+UGZ0LHllYXJzVG9Nb250aHM6KCk9PkFmdCx5ZWFyc1RvUXVhcnRlcnM6KCk9PlJmdH0pO3ZhciBGZnQ9ZygoKT0+e2FwZSgpO3JwZSgpO1EyKCk7b3BlKCk7bHBlKCk7Q3koKTtWZWUoKTtqNygpO1VlZSgpO2NwZSgpOyR5KCk7ZHBlKCk7bjB0KCk7YzB0KCk7aHBlKCk7dTB0KCk7SzQoKTtoMHQoKTtHdCgpO3FyKCk7bTB0KCk7YjB0KCk7cDAoKTttcGUoKTt4MHQoKTtKZWUoKTticGUoKTtldGUoKTt0dGUoKTthdGUoKTtzdGUoKTtrMHQoKTtydGUoKTtvdGUoKTtMeSgpO18wdCgpO0V5KCk7ejB0KCk7eXBlKCk7d3BlKCk7VDB0KCk7RDB0KCk7RTB0KCk7STB0KCk7TjB0KCk7aHRlKCk7TzB0KCk7QjB0KCk7cTB0KCk7bnRlKCk7VjB0KCk7VzB0KCk7SzB0KCk7WjB0KCk7UTB0KCk7bHRlKCk7ZXV0KCk7YXV0KCk7aXV0KCk7b3V0KCk7U3BlKCk7a3BlKCk7bHV0KCk7VHBlKCk7JHBlKCk7RHBlKCk7THV0KCk7UHV0KCk7QXV0KCk7UnV0KCk7RnV0KCk7SHV0KCk7anV0KCk7VXV0KCk7R3V0KCk7WXV0KCk7THBlKCk7T3koKTtfcGUoKTtFcGUoKTtYdXQoKTtKdXQoKTtJcGUoKTt0cHQoKTtBcGUoKTt4dGUoKTtwcCgpO3NwdCgpO3JwdCgpO25wdCgpO2NwdCgpO3VwdCgpO2dwZSgpO2hwdCgpO21wdCgpO2JwdCgpO3d0ZSgpO3hwdCgpO0l5KCk7d3B0KCk7U3B0KCk7TXB0KCk7Q3B0KCk7JHB0KCk7THB0KCk7UHB0KCk7QXB0KCk7UnB0KCk7RnB0KCk7SHB0KCk7ZnBlKCk7anB0KCk7VXB0KCk7R3B0KCk7WXB0KCk7WHB0KCk7eHBlKCk7UHBlKCk7TGh0KCk7UGh0KCk7QWh0KCk7RzcoKTtWcGUoKTtVcGUoKTtSaHQoKTtHcGUoKTtLcGUoKTtZcGUoKTtYcGUoKTtrYWUoKTtRcGUoKTtzcGUoKTtpcGUoKTtGaHQoKTtIaHQoKTtqaHQoKTtVaHQoKTtHaHQoKTtZaHQoKTtYaHQoKTtKaHQoKTt0NHQoKTtzNHQoKTtyNHQoKTtuNHQoKTtoMCgpO2M0dCgpO3p5KCk7dTR0KCk7aDR0KCk7bTR0KCk7YjR0KCk7eDR0KCk7TnBlKCk7dzR0KCk7SnBlKCk7UzR0KCk7TTR0KCk7dXBlKCk7QzR0KCk7JDR0KCk7TDR0KCk7UDR0KCk7cHBlKCk7QTR0KCk7UjR0KCk7RjR0KCk7SDR0KCk7ajR0KCk7bTAoKTtVNHQoKTtHNHQoKTtZNHQoKTtYNHQoKTtKNHQoKTt0M3QoKTtzM3QoKTtxcGUoKTtvM3QoKTtsM3QoKTtnMCgpO2QzdCgpO3AzdCgpO2YzdCgpO2czdCgpO3YzdCgpO3kzdCgpO2szdCgpO18zdCgpO3ozdCgpO1QzdCgpO0QzdCgpO0UzdCgpO0kzdCgpO04zdCgpO08zdCgpO0IzdCgpO0Z5KCk7cTN0KCk7VjN0KCk7VzN0KCk7SHBlKCk7QnBlKCk7bnBlKCk7SzN0KCk7WjN0KCk7TGFlKCk7UTN0KCk7ZWZ0KCk7RnBlKCk7YWZ0KCk7aWZ0KCk7VHkoKTtvZnQoKTtqcGUoKTt0ZCgpO1Y3KCk7V3BlKCk7UHkoKTtwdGUoKTtacGUoKTtsZnQoKTtkZnQoKTt2MSgpO3l0ZSgpO210ZSgpO3BmdCgpO2ZmdCgpO2dmdCgpO2p5KCk7dmZ0KCk7dnBlKCk7eWZ0KCk7a2Z0KCk7dGhlKCk7X2Z0KCk7emZ0KCk7VGZ0KCk7RGZ0KCk7YXQoKTtScGUoKTtFZnQoKTtJZnQoKTtOZnQoKTtPZnQoKX0pO3ZhciBCZnQ9cGwoKGFoZSxzaGUpPT57KGZ1bmN0aW9uKHMsZSl7dHlwZW9mIGFoZT09Im9iamVjdCImJnR5cGVvZiBzaGU8InUiP3NoZS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToocz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczpzfHxzZWxmKS5kYXlqcz1lKCl9KShhaGUsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBzPTFlMyxlPTZlNCx0PTM2ZTUsYT0ibWlsbGlzZWNvbmQiLHI9InNlY29uZCIsbj0ibWludXRlIixvPSJob3VyIixsPSJkYXkiLHA9IndlZWsiLGQ9Im1vbnRoIix1PSJxdWFydGVyIixjPSJ5ZWFyIixiPSJkYXRlIix2PSJJbnZhbGlkIERhdGUiLHg9L14oXGR7NH0pWy0vXT8oXGR7MSwyfSk/Wy0vXT8oXGR7MCwyfSlbVHRcc10qKFxkezEsMn0pPzo/KFxkezEsMn0pPzo/KFxkezEsMn0pP1suOl0/KFxkKyk/JC8sbT0vXFsoW15cXV0rKV18WXsxLDR9fE17MSw0fXxEezEsMn18ZHsxLDR9fEh7MSwyfXxoezEsMn18YXxBfG17MSwyfXxzezEsMn18WnsxLDJ9fFNTUy9nLGY9e25hbWU6ImVuIix3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksbW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG9yZGluYWw6aShmdW5jdGlvbihTKXt2YXIgST1bInRoIiwic3QiLCJuZCIsInJkIl0sUD1TJTEwMDtyZXR1cm4iWyIrUysoSVsoUC0yMCklMTBdfHxJW1BdfHxJWzBdKSsiXSJ9LCJvcmRpbmFsIil9LHk9aShmdW5jdGlvbihTLEksUCl7dmFyIFI9U3RyaW5nKFMpO3JldHVybiFSfHxSLmxlbmd0aD49ST9TOiIiK0FycmF5KEkrMS1SLmxlbmd0aCkuam9pbihQKStTfSwibSIpLE09e3M6eSx6OmkoZnVuY3Rpb24oUyl7dmFyIEk9LVMudXRjT2Zmc2V0KCksUD1NYXRoLmFicyhJKSxSPU1hdGguZmxvb3IoUC82MCksSz1QJTYwO3JldHVybihJPD0wPyIrIjoiLSIpK3koUiwyLCIwIikrIjoiK3koSywyLCIwIil9LCJ6IiksbTppKGZ1bmN0aW9uIFMoSSxQKXtpZihJLmRhdGUoKTxQLmRhdGUoKSlyZXR1cm4tUyhQLEkpO3ZhciBSPTEyKihQLnllYXIoKS1JLnllYXIoKSkrKFAubW9udGgoKS1JLm1vbnRoKCkpLEs9SS5jbG9uZSgpLmFkZChSLGQpLFY9UC1LPDAsVz1JLmNsb25lKCkuYWRkKFIrKFY/LTE6MSksZCk7cmV0dXJuKygtKFIrKFAtSykvKFY/Sy1XOlctSykpfHwwKX0sInQiKSxhOmkoZnVuY3Rpb24oUyl7cmV0dXJuIFM8MD9NYXRoLmNlaWwoUyl8fDA6TWF0aC5mbG9vcihTKX0sImEiKSxwOmkoZnVuY3Rpb24oUyl7cmV0dXJue006ZCx5OmMsdzpwLGQ6bCxEOmIsaDpvLG06bixzOnIsbXM6YSxROnV9W1NdfHxTdHJpbmcoU3x8IiIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvcyQvLCIiKX0sInAiKSx1OmkoZnVuY3Rpb24oUyl7cmV0dXJuIFM9PT12b2lkIDB9LCJ1Iil9LHo9ImVuIixOPXt9O05bel09Zjt2YXIgQz0iJGlzRGF5anNPYmplY3QiLF89aShmdW5jdGlvbihTKXtyZXR1cm4gUyBpbnN0YW5jZW9mIEh8fCEoIVN8fCFTW0NdKX0sIlMiKSxPPWkoZnVuY3Rpb24gUyhJLFAsUil7dmFyIEs7aWYoIUkpcmV0dXJuIHo7aWYodHlwZW9mIEk9PSJzdHJpbmciKXt2YXIgVj1JLnRvTG93ZXJDYXNlKCk7TltWXSYmKEs9ViksUCYmKE5bVl09UCxLPVYpO3ZhciBXPUkuc3BsaXQoIi0iKTtpZighSyYmVy5sZW5ndGg+MSlyZXR1cm4gUyhXWzBdKX1lbHNle3ZhciBtZT1JLm5hbWU7TlttZV09SSxLPW1lfXJldHVybiFSJiZLJiYoej1LKSxLfHwhUiYmen0sInQiKSwkPWkoZnVuY3Rpb24oUyxJKXtpZihfKFMpKXJldHVybiBTLmNsb25lKCk7dmFyIFA9dHlwZW9mIEk9PSJvYmplY3QiP0k6e307cmV0dXJuIFAuZGF0ZT1TLFAuYXJncz1hcmd1bWVudHMsbmV3IEgoUCl9LCJPIiksRT1NO0UubD1PLEUuaT1fLEUudz1mdW5jdGlvbihTLEkpe3JldHVybiAkKFMse2xvY2FsZTpJLiRMLHV0YzpJLiR1LHg6SS4keCwkb2Zmc2V0OkkuJG9mZnNldH0pfTt2YXIgSD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBTKFApe3RoaXMuJEw9TyhQLmxvY2FsZSxudWxsLCEwKSx0aGlzLnBhcnNlKFApLHRoaXMuJHg9dGhpcy4keHx8UC54fHx7fSx0aGlzW0NdPSEwfWkoUywiTSIpO3ZhciBJPVMucHJvdG90eXBlO3JldHVybiBJLnBhcnNlPWZ1bmN0aW9uKFApe3RoaXMuJGQ9KGZ1bmN0aW9uKFIpe3ZhciBLPVIuZGF0ZSxWPVIudXRjO2lmKEs9PT1udWxsKXJldHVybiBuZXcgRGF0ZShOYU4pO2lmKEUudShLKSlyZXR1cm4gbmV3IERhdGU7aWYoSyBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKEspO2lmKHR5cGVvZiBLPT0ic3RyaW5nIiYmIS9aJC9pLnRlc3QoSykpe3ZhciBXPUsubWF0Y2goeCk7aWYoVyl7dmFyIG1lPVdbMl0tMXx8MCxCPShXWzddfHwiMCIpLnN1YnN0cmluZygwLDMpO3JldHVybiBWP25ldyBEYXRlKERhdGUuVVRDKFdbMV0sbWUsV1szXXx8MSxXWzRdfHwwLFdbNV18fDAsV1s2XXx8MCxCKSk6bmV3IERhdGUoV1sxXSxtZSxXWzNdfHwxLFdbNF18fDAsV1s1XXx8MCxXWzZdfHwwLEIpfX1yZXR1cm4gbmV3IERhdGUoSyl9KShQKSx0aGlzLmluaXQoKX0sSS5pbml0PWZ1bmN0aW9uKCl7dmFyIFA9dGhpcy4kZDt0aGlzLiR5PVAuZ2V0RnVsbFllYXIoKSx0aGlzLiRNPVAuZ2V0TW9udGgoKSx0aGlzLiREPVAuZ2V0RGF0ZSgpLHRoaXMuJFc9UC5nZXREYXkoKSx0aGlzLiRIPVAuZ2V0SG91cnMoKSx0aGlzLiRtPVAuZ2V0TWludXRlcygpLHRoaXMuJHM9UC5nZXRTZWNvbmRzKCksdGhpcy4kbXM9UC5nZXRNaWxsaXNlY29uZHMoKX0sSS4kdXRpbHM9ZnVuY3Rpb24oKXtyZXR1cm4gRX0sSS5pc1ZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9TdHJpbmcoKSE9PXZ9LEkuaXNTYW1lPWZ1bmN0aW9uKFAsUil7dmFyIEs9JChQKTtyZXR1cm4gdGhpcy5zdGFydE9mKFIpPD1LJiZLPD10aGlzLmVuZE9mKFIpfSxJLmlzQWZ0ZXI9ZnVuY3Rpb24oUCxSKXtyZXR1cm4gJChQKTx0aGlzLnN0YXJ0T2YoUil9LEkuaXNCZWZvcmU9ZnVuY3Rpb24oUCxSKXtyZXR1cm4gdGhpcy5lbmRPZihSKTwkKFApfSxJLiRnPWZ1bmN0aW9uKFAsUixLKXtyZXR1cm4gRS51KFApP3RoaXNbUl06dGhpcy5zZXQoSyxQKX0sSS51bml4PWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZmxvb3IodGhpcy52YWx1ZU9mKCkvMWUzKX0sSS52YWx1ZU9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQuZ2V0VGltZSgpfSxJLnN0YXJ0T2Y9ZnVuY3Rpb24oUCxSKXt2YXIgSz10aGlzLFY9ISFFLnUoUil8fFIsVz1FLnAoUCksbWU9aShmdW5jdGlvbihRLGllKXt2YXIgdGU9RS53KEsuJHU/RGF0ZS5VVEMoSy4keSxpZSxRKTpuZXcgRGF0ZShLLiR5LGllLFEpLEspO3JldHVybiBWP3RlOnRlLmVuZE9mKGwpfSwibCIpLEI9aShmdW5jdGlvbihRLGllKXtyZXR1cm4gRS53KEsudG9EYXRlKClbUV0uYXBwbHkoSy50b0RhdGUoInMiKSwoVj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKGllKSksSyl9LCIkIiksVT10aGlzLiRXLGhlPXRoaXMuJE0sRj10aGlzLiRELGo9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpO3N3aXRjaChXKXtjYXNlIGM6cmV0dXJuIFY/bWUoMSwwKTptZSgzMSwxMSk7Y2FzZSBkOnJldHVybiBWP21lKDEsaGUpOm1lKDAsaGUrMSk7Y2FzZSBwOnZhciB1ZT10aGlzLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDAsbGU9KFU8dWU/VSs3OlUpLXVlO3JldHVybiBtZShWP0YtbGU6RisoNi1sZSksaGUpO2Nhc2UgbDpjYXNlIGI6cmV0dXJuIEIoaisiSG91cnMiLDApO2Nhc2UgbzpyZXR1cm4gQihqKyJNaW51dGVzIiwxKTtjYXNlIG46cmV0dXJuIEIoaisiU2Vjb25kcyIsMik7Y2FzZSByOnJldHVybiBCKGorIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sSS5lbmRPZj1mdW5jdGlvbihQKXtyZXR1cm4gdGhpcy5zdGFydE9mKFAsITEpfSxJLiRzZXQ9ZnVuY3Rpb24oUCxSKXt2YXIgSyxWPUUucChQKSxXPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxtZT0oSz17fSxLW2xdPVcrIkRhdGUiLEtbYl09VysiRGF0ZSIsS1tkXT1XKyJNb250aCIsS1tjXT1XKyJGdWxsWWVhciIsS1tvXT1XKyJIb3VycyIsS1tuXT1XKyJNaW51dGVzIixLW3JdPVcrIlNlY29uZHMiLEtbYV09VysiTWlsbGlzZWNvbmRzIixLKVtWXSxCPVY9PT1sP3RoaXMuJEQrKFItdGhpcy4kVyk6UjtpZihWPT09ZHx8Vj09PWMpe3ZhciBVPXRoaXMuY2xvbmUoKS5zZXQoYiwxKTtVLiRkW21lXShCKSxVLmluaXQoKSx0aGlzLiRkPVUuc2V0KGIsTWF0aC5taW4odGhpcy4kRCxVLmRheXNJbk1vbnRoKCkpKS4kZH1lbHNlIG1lJiZ0aGlzLiRkW21lXShCKTtyZXR1cm4gdGhpcy5pbml0KCksdGhpc30sSS5zZXQ9ZnVuY3Rpb24oUCxSKXtyZXR1cm4gdGhpcy5jbG9uZSgpLiRzZXQoUCxSKX0sSS5nZXQ9ZnVuY3Rpb24oUCl7cmV0dXJuIHRoaXNbRS5wKFApXSgpfSxJLmFkZD1mdW5jdGlvbihQLFIpe3ZhciBLLFY9dGhpcztQPU51bWJlcihQKTt2YXIgVz1FLnAoUiksbWU9aShmdW5jdGlvbihoZSl7dmFyIEY9JChWKTtyZXR1cm4gRS53KEYuZGF0ZShGLmRhdGUoKStNYXRoLnJvdW5kKGhlKlApKSxWKX0sInkiKTtpZihXPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiRNK1ApO2lmKFc9PT1jKXJldHVybiB0aGlzLnNldChjLHRoaXMuJHkrUCk7aWYoVz09PWwpcmV0dXJuIG1lKDEpO2lmKFc9PT1wKXJldHVybiBtZSg3KTt2YXIgQj0oSz17fSxLW25dPWUsS1tvXT10LEtbcl09cyxLKVtXXXx8MSxVPXRoaXMuJGQuZ2V0VGltZSgpK1AqQjtyZXR1cm4gRS53KFUsdGhpcyl9LEkuc3VidHJhY3Q9ZnVuY3Rpb24oUCxSKXtyZXR1cm4gdGhpcy5hZGQoLTEqUCxSKX0sSS5mb3JtYXQ9ZnVuY3Rpb24oUCl7dmFyIFI9dGhpcyxLPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gSy5pbnZhbGlkRGF0ZXx8djt2YXIgVj1QfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLFc9RS56KHRoaXMpLG1lPXRoaXMuJEgsQj10aGlzLiRtLFU9dGhpcy4kTSxoZT1LLndlZWtkYXlzLEY9Sy5tb250aHMsaj1LLm1lcmlkaWVtLHVlPWkoZnVuY3Rpb24oaWUsdGUsZWUsa2Upe3JldHVybiBpZSYmKGllW3RlXXx8aWUoUixWKSl8fGVlW3RlXS5zbGljZSgwLGtlKX0sImgiKSxsZT1pKGZ1bmN0aW9uKGllKXtyZXR1cm4gRS5zKG1lJTEyfHwxMixpZSwiMCIpfSwiZCIpLFE9anx8ZnVuY3Rpb24oaWUsdGUsZWUpe3ZhciBrZT1pZTwxMj8iQU0iOiJQTSI7cmV0dXJuIGVlP2tlLnRvTG93ZXJDYXNlKCk6a2V9O3JldHVybiBWLnJlcGxhY2UobSwoZnVuY3Rpb24oaWUsdGUpe3JldHVybiB0ZXx8KGZ1bmN0aW9uKGVlKXtzd2l0Y2goZWUpe2Nhc2UiWVkiOnJldHVybiBTdHJpbmcoUi4keSkuc2xpY2UoLTIpO2Nhc2UiWVlZWSI6cmV0dXJuIEUucyhSLiR5LDQsIjAiKTtjYXNlIk0iOnJldHVybiBVKzE7Y2FzZSJNTSI6cmV0dXJuIEUucyhVKzEsMiwiMCIpO2Nhc2UiTU1NIjpyZXR1cm4gdWUoSy5tb250aHNTaG9ydCxVLEYsMyk7Y2FzZSJNTU1NIjpyZXR1cm4gdWUoRixVKTtjYXNlIkQiOnJldHVybiBSLiREO2Nhc2UiREQiOnJldHVybiBFLnMoUi4kRCwyLCIwIik7Y2FzZSJkIjpyZXR1cm4gU3RyaW5nKFIuJFcpO2Nhc2UiZGQiOnJldHVybiB1ZShLLndlZWtkYXlzTWluLFIuJFcsaGUsMik7Y2FzZSJkZGQiOnJldHVybiB1ZShLLndlZWtkYXlzU2hvcnQsUi4kVyxoZSwzKTtjYXNlImRkZGQiOnJldHVybiBoZVtSLiRXXTtjYXNlIkgiOnJldHVybiBTdHJpbmcobWUpO2Nhc2UiSEgiOnJldHVybiBFLnMobWUsMiwiMCIpO2Nhc2UiaCI6cmV0dXJuIGxlKDEpO2Nhc2UiaGgiOnJldHVybiBsZSgyKTtjYXNlImEiOnJldHVybiBRKG1lLEIsITApO2Nhc2UiQSI6cmV0dXJuIFEobWUsQiwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKEIpO2Nhc2UibW0iOnJldHVybiBFLnMoQiwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKFIuJHMpO2Nhc2Uic3MiOnJldHVybiBFLnMoUi4kcywyLCIwIik7Y2FzZSJTU1MiOnJldHVybiBFLnMoUi4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIFd9cmV0dXJuIG51bGx9KShpZSl8fFcucmVwbGFjZSgiOiIsIiIpfSkpfSxJLnV0Y09mZnNldD1mdW5jdGlvbigpe3JldHVybiAxNSotTWF0aC5yb3VuZCh0aGlzLiRkLmdldFRpbWV6b25lT2Zmc2V0KCkvMTUpfSxJLmRpZmY9ZnVuY3Rpb24oUCxSLEspe3ZhciBWLFc9dGhpcyxtZT1FLnAoUiksQj0kKFApLFU9KEIudXRjT2Zmc2V0KCktdGhpcy51dGNPZmZzZXQoKSkqZSxoZT10aGlzLUIsRj1pKGZ1bmN0aW9uKCl7cmV0dXJuIEUubShXLEIpfSwiRCIpO3N3aXRjaChtZSl7Y2FzZSBjOlY9RigpLzEyO2JyZWFrO2Nhc2UgZDpWPUYoKTticmVhaztjYXNlIHU6Vj1GKCkvMzticmVhaztjYXNlIHA6Vj0oaGUtVSkvNjA0OGU1O2JyZWFrO2Nhc2UgbDpWPShoZS1VKS84NjRlNTticmVhaztjYXNlIG86Vj1oZS90O2JyZWFrO2Nhc2UgbjpWPWhlL2U7YnJlYWs7Y2FzZSByOlY9aGUvczticmVhaztkZWZhdWx0OlY9aGV9cmV0dXJuIEs/VjpFLmEoVil9LEkuZGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRPZihkKS4kRH0sSS4kbG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIE5bdGhpcy4kTF19LEkubG9jYWxlPWZ1bmN0aW9uKFAsUil7aWYoIVApcmV0dXJuIHRoaXMuJEw7dmFyIEs9dGhpcy5jbG9uZSgpLFY9TyhQLFIsITApO3JldHVybiBWJiYoSy4kTD1WKSxLfSxJLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIEUudyh0aGlzLiRkLHRoaXMpfSxJLnRvRGF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LEkudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMudG9JU09TdHJpbmcoKTpudWxsfSxJLnRvSVNPU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9JU09TdHJpbmcoKX0sSS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKCl9LFN9KSgpLGs9SC5wcm90b3R5cGU7cmV0dXJuICQucHJvdG90eXBlPWssW1siJG1zIixhXSxbIiRzIixyXSxbIiRtIixuXSxbIiRIIixvXSxbIiRXIixsXSxbIiRNIixkXSxbIiR5IixjXSxbIiREIixiXV0uZm9yRWFjaCgoZnVuY3Rpb24oUyl7a1tTWzFdXT1mdW5jdGlvbihJKXtyZXR1cm4gdGhpcy4kZyhJLFNbMF0sU1sxXSl9fSkpLCQuZXh0ZW5kPWZ1bmN0aW9uKFMsSSl7cmV0dXJuIFMuJGl8fChTKEksSCwkKSxTLiRpPSEwKSwkfSwkLmxvY2FsZT1PLCQuaXNEYXlqcz1fLCQudW5peD1mdW5jdGlvbihTKXtyZXR1cm4gJCgxZTMqUyl9LCQuZW49Tlt6XSwkLkxzPU4sJC5wPXt9LCR9KSl9KTt2YXIgSGZ0PXBsKChpaGUscmhlKT0+eyhmdW5jdGlvbihzLGUpe3R5cGVvZiBpaGU9PSJvYmplY3QiJiZ0eXBlb2YgcmhlPCJ1Ij9yaGUuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHM9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6c3x8c2VsZikuZGF5anNfcGx1Z2luX2lzVG9kYXk9ZSgpfSkoaWhlLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZnVuY3Rpb24ocyxlLHQpe2UucHJvdG90eXBlLmlzVG9kYXk9ZnVuY3Rpb24oKXt2YXIgYT0iWVlZWS1NTS1ERCIscj10KCk7cmV0dXJuIHRoaXMuZm9ybWF0KGEpPT09ci5mb3JtYXQoYSl9fX0pKX0pO2Z1bmN0aW9uIEJFYShzKXtyZXR1cm57ZGF5czpNYXRoLnRydW5jKHMvODY0ZTUpLGhvdXJzOk1hdGgudHJ1bmMocy8zNmU1JTI0KSxtaW51dGVzOk1hdGgudHJ1bmMocy82ZTQlNjApLHNlY29uZHM6TWF0aC50cnVuYyhzLzFlMyU2MCksbWlsbGlzZWNvbmRzOk1hdGgudHJ1bmMocyUxZTMpLG1pY3Jvc2Vjb25kczpNYXRoLnRydW5jKHFmdChzKjFlMyklMWUzKSxuYW5vc2Vjb25kczpNYXRoLnRydW5jKHFmdChzKjFlNiklMWUzKX19ZnVuY3Rpb24gSEVhKHMpe3JldHVybntkYXlzOnMvODY0MDAwMDBuLGhvdXJzOnMvMzYwMDAwMG4lMjRuLG1pbnV0ZXM6cy82MDAwMG4lNjBuLHNlY29uZHM6cy8xMDAwbiU2MG4sbWlsbGlzZWNvbmRzOnMlMTAwMG4sbWljcm9zZWNvbmRzOjBuLG5hbm9zZWNvbmRzOjBufX1mdW5jdGlvbiBvaGUocyl7c3dpdGNoKHR5cGVvZiBzKXtjYXNlIm51bWJlciI6e2lmKE51bWJlci5pc0Zpbml0ZShzKSlyZXR1cm4gQkVhKHMpO2JyZWFrfWNhc2UiYmlnaW50IjpyZXR1cm4gSEVhKHMpfXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKX12YXIgcWZ0LGpmdD1nKCgpPT57cWZ0PWkocz0+TnVtYmVyLmlzRmluaXRlKHMpP3M6MCwidG9aZXJvSWZJbmZpbml0eSIpO2koQkVhLCJwYXJzZU51bWJlciIpO2koSEVhLCJwYXJzZUJpZ2ludCIpO2kob2hlLCJwYXJzZU1pbGxpc2Vjb25kcyIpfSk7ZnVuY3Rpb24gV3kocyxlKXtsZXQgdD10eXBlb2Ygcz09ImJpZ2ludCI7aWYoIXQmJiFOdW1iZXIuaXNGaW5pdGUocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyIG9yIGJpZ2ludCIpO2U9ey4uLmV9O2xldCBhPXM8MD8iLSI6IiI7cz1zPDA/LXM6cyxlLmNvbG9uTm90YXRpb24mJihlLmNvbXBhY3Q9ITEsZS5mb3JtYXRTdWJNaWxsaXNlY29uZHM9ITEsZS5zZXBhcmF0ZU1pbGxpc2Vjb25kcz0hMSxlLnZlcmJvc2U9ITEpLGUuY29tcGFjdCYmKGUudW5pdENvdW50PTEsZS5zZWNvbmRzRGVjaW1hbERpZ2l0cz0wLGUubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0cz0wKTtsZXQgcj1bXSxuPWkoKHUsYyk9PntsZXQgYj1NYXRoLmZsb29yKHUqMTAqKmMrVkVhKTtyZXR1cm4oTWF0aC5yb3VuZChiKS8xMCoqYykudG9GaXhlZChjKX0sImZsb29yRGVjaW1hbHMiKSxvPWkoKHUsYyxiLHYpPT57aWYoISgoci5sZW5ndGg9PT0wfHwhZS5jb2xvbk5vdGF0aW9uKSYmcUVhKHUpJiYhKGUuY29sb25Ob3RhdGlvbiYmYj09PSJtIikpKXtpZih2Pz89U3RyaW5nKHUpLGUuY29sb25Ob3RhdGlvbil7bGV0IHg9di5pbmNsdWRlcygiLiIpP3Yuc3BsaXQoIi4iKVswXS5sZW5ndGg6di5sZW5ndGgsbT1yLmxlbmd0aD4wPzI6MTt2PSIwIi5yZXBlYXQoTWF0aC5tYXgoMCxtLXgpKSt2fWVsc2Ugdis9ZS52ZXJib3NlPyIgIitqRWEoYyx1KTpiO3IucHVzaCh2KX19LCJhZGQiKSxsPW9oZShzKSxwPUJpZ0ludChsLmRheXMpO2lmKGUuaGlkZVllYXJBbmREYXlzP28oQmlnSW50KHApKjI0bitCaWdJbnQobC5ob3VycyksImhvdXIiLCJoIik6KGUuaGlkZVllYXI/byhwLCJkYXkiLCJkIik6KG8ocC8zNjVuLCJ5ZWFyIiwieSIpLG8ocCUzNjVuLCJkYXkiLCJkIikpLG8oTnVtYmVyKGwuaG91cnMpLCJob3VyIiwiaCIpKSxvKE51bWJlcihsLm1pbnV0ZXMpLCJtaW51dGUiLCJtIiksIWUuaGlkZVNlY29uZHMpaWYoZS5zZXBhcmF0ZU1pbGxpc2Vjb25kc3x8ZS5mb3JtYXRTdWJNaWxsaXNlY29uZHN8fCFlLmNvbG9uTm90YXRpb24mJnM8MWUzJiYhZS5zdWJTZWNvbmRzQXNEZWNpbWFscyl7bGV0IHU9TnVtYmVyKGwuc2Vjb25kcyksYz1OdW1iZXIobC5taWxsaXNlY29uZHMpLGI9TnVtYmVyKGwubWljcm9zZWNvbmRzKSx2PU51bWJlcihsLm5hbm9zZWNvbmRzKTtpZihvKHUsInNlY29uZCIsInMiKSxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kcylvKGMsIm1pbGxpc2Vjb25kIiwibXMiKSxvKGIsIm1pY3Jvc2Vjb25kIiwiXHhCNXMiKSxvKHYsIm5hbm9zZWNvbmQiLCJucyIpO2Vsc2V7bGV0IHg9YytiLzFlMyt2LzFlNixtPXR5cGVvZiBlLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP2UubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0czowLGY9eD49MT9NYXRoLnJvdW5kKHgpOk1hdGguY2VpbCh4KSx5PW0/eC50b0ZpeGVkKG0pOmY7byhOdW1iZXIucGFyc2VGbG9hdCh5KSwibWlsbGlzZWNvbmQiLCJtcyIseSl9fWVsc2V7bGV0IHU9KHQ/TnVtYmVyKHMlVUVhKTpzKS8xZTMlNjAsYz10eXBlb2YgZS5zZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/ZS5zZWNvbmRzRGVjaW1hbERpZ2l0czoxLGI9bih1LGMpLHY9ZS5rZWVwRGVjaW1hbHNPbldob2xlU2Vjb25kcz9iOmIucmVwbGFjZSgvXC4wKyQvLCIiKTtvKE51bWJlci5wYXJzZUZsb2F0KHYpLCJzZWNvbmQiLCJzIix2KX1pZihyLmxlbmd0aD09PTApcmV0dXJuIGErIjAiKyhlLnZlcmJvc2U/IiBtaWxsaXNlY29uZHMiOiJtcyIpO2xldCBkPWUuY29sb25Ob3RhdGlvbj8iOiI6IiAiO3JldHVybiB0eXBlb2YgZS51bml0Q291bnQ9PSJudW1iZXIiJiYocj1yLnNsaWNlKDAsTWF0aC5tYXgoZS51bml0Q291bnQsMSkpKSxhK3Iuam9pbihkKX12YXIgcUVhLGpFYSxWRWEsVUVhLFZmdD1nKCgpPT57amZ0KCk7cUVhPWkocz0+cz09PTB8fHM9PT0wbiwiaXNaZXJvIiksakVhPWkoKHMsZSk9PmU9PT0xfHxlPT09MW4/czpgJHtzfXNgLCJwbHVyYWxpemUiKSxWRWE9MWUtNyxVRWE9MjRuKjYwbio2MG4qMTAwMG47aShXeSwicHJldHR5TWlsbGlzZWNvbmRzIil9KTt2YXIgczMsVWZ0LGtwPWcoKCk9Pnt1OSgpO2QwKCk7aW8oKTt0MHQoKTtGZnQoKTtzMz14bihCZnQoKSwxKSxVZnQ9eG4oSGZ0KCksMSk7VmZ0KCk7czMuZGVmYXVsdC5leHRlbmQoVWZ0LmRlZmF1bHQpfSk7dmFyIEd5LG5oZT1nKCgpPT57a3AoKTtsaGUoKTtHeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDcm9uSm9iIil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLm5leHRFeGVjdXRpb25Vbml4PTAsdGhpcy5jcm9uRXhwcmVzc2lvbj10LHRoaXMuam9iRnVuY3Rpb249YSx0aGlzLmNyb25QYXJzZXI9bmV3IF95LkNyb24odCl9Y2hlY2tFeGVjdXRpb24oKXtpZih0aGlzLnN0YXR1cz09PSJzdG9wcGVkIilyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peDtpZih0aGlzLm5leHRFeGVjdXRpb25Vbml4PT09MCYmdGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpLERhdGUubm93KCk+dGhpcy5uZXh0RXhlY3V0aW9uVW5peCl7bGV0IGU9dGhpcy5qb2JGdW5jdGlvbih0aGlzLm5leHRFeGVjdXRpb25Vbml4KTtlIGluc3RhbmNlb2YgUHJvbWlzZSYmZS5jYXRjaCh0PT5jb25zb2xlLmxvZyh0KSksdGhpcy5uZXh0RXhlY3V0aW9uVW5peD10aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCl9cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXh9Z2V0TmV4dEV4ZWN1dGlvblRpbWUoKXtyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peD1EYXRlLm5vdygpK3RoaXMuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpfWdldFRpbWVUb05leHRFeGVjdXRpb24oKXtyZXR1cm4gdGhpcy5jcm9uUGFyc2VyLm1zVG9OZXh0KCl9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCJ9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIn19fSk7dmFyIGNoZSxsaGU9ZygoKT0+e2twKCk7bmhlKCk7Y2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNyb25NYW5hZ2VyIil9Y29uc3RydWN0b3IoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5jcm9uam9icz1uZXcgRnMuT2JqZWN0TWFwLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bnVsbH13YWtlQ3ljbGUoKXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkJiZ0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5yZXNvbHZlKCl9YWRkQ3JvbmpvYihlLHQpe2xldCBhPW5ldyBHeSh0aGlzLGUsdCk7cmV0dXJuIHRoaXMuY3JvbmpvYnMuYWRkKGEpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYoYS5zdGFydCgpLHRoaXMud2FrZUN5Y2xlKCkpLGF9cmVtb3ZlQ3JvbmpvYihlKXtlLnN0b3AoKSx0aGlzLmNyb25qb2JzLnJlbW92ZShlKSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy53YWtlQ3ljbGUoKX1zdGFydCgpe2lmKHRoaXMuc3RhdHVzIT09InN0YXJ0ZWQiKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7Zm9yKGxldCBlIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSllLnN0YXJ0KCk7dGhpcy5ydW5Dcm9uQ3ljbGUoKX19YXN5bmMgcnVuQ3JvbkN5Y2xlKCl7Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIjspe3RoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bmV3IG10LkRlZmVycmVkO2xldCBlPTEvMDtmb3IobGV0IHQgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKXt0LmNoZWNrRXhlY3V0aW9uKCk7bGV0IGE9dC5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCk7YTxlJiYoZT1hKX1pZihlPDEvMCYmZT4wKXRoaXMuZXhlY3V0aW9uVGltZW91dD1uZXcgWHQuVGltZW91dChlKSxhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuZXhlY3V0aW9uVGltZW91dC5wcm9taXNlLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZV0pLHRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKTtlbHNle2lmKGU8PTApY29udGludWU7YXdhaXQgdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5wcm9taXNlfX10aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9c3RvcCgpe3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYodGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuZXhlY3V0aW9uVGltZW91dCYmdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpLHRoaXMud2FrZUN5Y2xlKCkpO2ZvcihsZXQgZSBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpZS5zdG9wKCl9fX0pO3ZhciBTcCxkaGUsV0VhLEdFYSx1aGU9ZygoKT0+e2twKCk7U3A9e3llYXJzOmkoKHM9MSk9PnMqMzE1NGU3LCJ5ZWFycyIpLG1vbnRoczppKChzPTEpPT5zKjI2MjhlNiwibW9udGhzIiksd2Vla3M6aSgocz0xKT0+cyo2MDQ4ZTUsIndlZWtzIiksZGF5czppKChzPTEpPT5zKjg2NGU1LCJkYXlzIiksaG91cnM6aSgocz0xKT0+cyozNmU1LCJob3VycyIpLG1pbnV0ZXM6aSgocz0xKT0+cyo2ZTQsIm1pbnV0ZXMiKSxzZWNvbmRzOmkoKHM9MSk9PnMqMWUzLCJzZWNvbmRzIil9LGRoZT1pKHM9PntsZXQgZT0wLHQ9aShhPT57ZT1lK2F9LCJhZGRNaWxsaVNlY29uZHMiKTtyZXR1cm4gcy55ZWFycyYmdChTcC55ZWFycyhzLnllYXJzKSkscy5tb250aHMmJnQoU3AubW9udGhzKHMubW9udGhzKSkscy53ZWVrcyYmdChTcC53ZWVrcyhzLndlZWtzKSkscy5kYXlzJiZ0KFNwLmRheXMocy5kYXlzKSkscy5ob3VycyYmdChTcC5ob3VycyhzLmhvdXJzKSkscy5taW51dGVzJiZ0KFNwLm1pbnV0ZXMocy5taW51dGVzKSkscy5zZWNvbmRzJiZ0KFNwLnNlY29uZHMocy5zZWNvbmRzKSksZX0sImdldE1pbGxpU2Vjb25kc0Zyb21Vbml0cyIpLFdFYT1pKHM9Pld5KHMpLCJnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVTdHJpbmciKSxHRWE9aShzPT5VeS5mb3JtYXREaXN0YW5jZVRvTm93KG5ldyBEYXRlKHMpKSwiZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlQWdvVGltZSIpfSk7dmFyIHBoZSxXZnQ9ZygoKT0+e2twKCk7dWhlKCk7cGhlPWNsYXNzIHMgZXh0ZW5kcyBEYXRle3N0YXRpY3tpKHRoaXMsIkV4dGVuZGVkRGF0ZSIpfXN0YXRpYyBmcm9tTWlsbGlzKGUpe3JldHVybiBuZXcgcyhlKX1zdGF0aWMgZnJvbURhdGUoZSl7cmV0dXJuIG5ldyBzKGUuZ2V0VGltZSgpKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZShlKXtsZXQgdD0vKC4qKVwuKC4qKVwuKC4qKS8uZXhlYyhlKSxyPW5ldyBEYXRlKHBhcnNlRmxvYXQodFszXSkscGFyc2VGbG9hdCh0WzJdKS0xLHBhcnNlRmxvYXQodFsxXSkpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHMocil9c3RhdGljIGZyb21IeXBoZWREYXRlKGUpe2xldCB0PW5ldyBEYXRlKGUpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHModCl9c3RhdGljIGZyb21FdXJvcGVhbkRhdGVBbmRUaW1lKGUsdD0iMTI6MDA6MDAiLGE9IkV1cm9wZS9CZXJsaW4iKXtsZXQgcj0vKC4qKVwuKC4qKVwuKC4qKS8uZXhlYyhlKSxuPWkoZD0+YDAke2R9YC5zbGljZSgtMiksInNsaWNlRGF0ZSIpLG89YCR7clszXX0tJHtuKHJbMl0pfS0ke24oclsxXSl9VCR7dH1gLHA9czMuZGVmYXVsdChvKS50b0RhdGUoKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyBzKHApfWNvbnN0cnVjdG9yKGU9RGF0ZS5ub3coKSl7c3VwZXIoZSl9ZXhwb3J0VG9FdXJvcGVhbkRhdGUoKXtsZXQgZT10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHtlLmRheVN0cmluZ30uJHtlLm1vbnRoU3RyaW5nfS4ke2UueWVhclN0cmluZ31gfWV4cG9ydFRvSHlwaGVkU29ydGFibGVEYXRlKCl7bGV0IGU9dGhpcy5leHBvcnRUb1VuaXRzKCk7cmV0dXJuYCR7ZS55ZWFyU3RyaW5nfS0ke2UubW9udGhTdHJpbmd9LSR7ZS5kYXlTdHJpbmd9YH1leHBvcnRUb1VuaXRzKCl7bGV0IGU9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHQ9WyJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSIsIlN1bmRheSJdO3JldHVybnt5ZWFyOnRoaXMuZ2V0RnVsbFllYXIoKSx5ZWFyU3RyaW5nOmAke3RoaXMuZ2V0RnVsbFllYXIoKX1gLG1vbnRoOnRoaXMuZ2V0TW9udGgoKSsxLG1vbnRoU3RyaW5nOigiMCIrKHRoaXMuZ2V0TW9udGgoKSsxKSkuc2xpY2UoLTIpLG1vbnRoTmFtZTplW3RoaXMuZ2V0TW9udGgoKV0sZGF5OnRoaXMuZ2V0RGF0ZSgpLGRheVN0cmluZzooIjAiK3RoaXMuZ2V0RGF0ZSgpKS5zbGljZSgtMiksZGF5T2ZUaGVXZWVrOnRoaXMuZ2V0RGF5KCksZGF5T2ZUaGVXZWVrTmFtZTp0W3RoaXMuZ2V0RGF5KCldfX1mb3JtYXQoZSl7cmV0dXJuIHMzLmRlZmF1bHQodGhpcy5nZXRUaW1lKCkpLmZvcm1hdChlKX1pc1RvZGF5KCl7cmV0dXJuIHMzLmRlZmF1bHQodGhpcy5nZXRUaW1lKCkpLmlzVG9kYXkoKX1sZXNzVGltZVBhc3NlZFRvTm93KGUpe2xldCB0PWRoZShlKTtyZXR1cm4gRGF0ZS5ub3coKS10aGlzLmdldFRpbWUoKTx0fW1vcmVUaW1lUGFzc2VkVG9Ob3coZSl7cmV0dXJuIXRoaXMubGVzc1RpbWVQYXNzZWRUb05vdyhlKX19fSk7dmFyIGhoZSxHZnQ9ZygoKT0+e2hoZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJIcnRNZWFzdXJlbWVudCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9c3RhcnQoKXt0aGlzLl9zdGFydGVkPSEwLHRoaXMuX21pbGxpU3RhcnQ9RGF0ZS5ub3coKX1zdG9wKCl7aWYodGhpcy5fc3RhcnRlZD09PSExKXtjb25zb2xlLmxvZygiSGFzbid0IHN0YXJ0ZWQgeWV0Iik7cmV0dXJufXJldHVybiB0aGlzLl9taWxsaURpZmY9RGF0ZS5ub3coKS10aGlzLl9taWxsaVN0YXJ0LHRoaXMubmFub1NlY29uZHM9dGhpcy5fbWlsbGlEaWZmKjFlMyx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLl9taWxsaURpZmYsdGhpc31yZXNldCgpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfX19KTt2YXIgZmhlLEtmdD1nKCgpPT57a3AoKTtmaGU9Y2xhc3N7c3RhdGlje2kodGhpcywiSW50ZXJ2YWwiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPW51bGwsdGhpcy5pbnRlcnZhbEpvYnM9W10sdGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcz1lfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2xldCBlPW5ldyBEYXRlO3RoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1lLGkoYXN5bmMoKT0+e2Zvcig7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJnRoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj09PWU7KWF3YWl0IFh0LmRlbGF5Rm9yKHRoaXMuaW50ZXJ2YWxNaWxsaXNlY29uZHMpLHRoaXMuZXhlY3V0ZUludGVydmFsSm9icygpfSwicnVuSW50ZXJ2YWwiKSgpfXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPW51bGx9YWRkSW50ZXJ2YWxKb2IoZSl7dGhpcy5pbnRlcnZhbEpvYnMucHVzaChlKX1leGVjdXRlSW50ZXJ2YWxKb2JzKCl7Zm9yKGxldCBlIG9mIHRoaXMuaW50ZXJ2YWxKb2JzKWUoKX19fSk7dmFyIHA5LG1oZT1nKCgpPT57a3AoKTtwOT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlRpbWVTdGFtcCIpfXN0YXRpYyBmcm9tTWlsbGlTZWNvbmRzKGUpe3JldHVybiBuZXcgcyhlKX1zdGF0aWMgZnJvbVRpbWVTdGFtcChlKXtsZXQgdD1uZXcgcztyZXR1cm4gdC5jaGFuZ2U9dC5taWxsaVNlY29uZHMtZS5taWxsaVNlY29uZHMsdH1jb25zdHJ1Y3RvcihlKXt0aGlzLmNoYW5nZT1udWxsLGU/dHlwZW9mIGU9PSJudW1iZXIiJiYodGhpcy5kYXRlPW5ldyBEYXRlKGUpKTp0aGlzLmRhdGU9bmV3IERhdGUsdGhpcy5taWxsaVNlY29uZHM9dGhpcy5kYXRlLmdldFRpbWUoKSx0aGlzLmVwb2NodGltZT1NYXRoLmZsb29yKHRoaXMubWlsbGlTZWNvbmRzLzFlMyl9aXNPbGRlclRoYW5PdGhlclRpbWVTdGFtcChlLHQ9MCl7cmV0dXJuIHRoaXMubWlsbGlTZWNvbmRzPGUubWlsbGlTZWNvbmRzLXR9aXNPbGRlclRoYW4oZSx0PTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcyt0PGUubWlsbGlTZWNvbmRzfWlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChlLHQ9MCl7cmV0dXJuIHRoaXMubWlsbGlTZWNvbmRzPmUubWlsbGlTZWNvbmRzK3R9aXNZb3VuZ2VyVGhhbk1pbGxpU2Vjb25kcyhlKXtsZXQgYT1uZXcgcygpLmVwb2NodGltZS1lLHI9bmV3IHMoYSk7cmV0dXJuIHRoaXMuaXNZb3VuZ2VyVGhhbk90aGVyVGltZVN0YW1wKHIpfX19KTt2YXIgZ2hlLFlmdD1nKCgpPT57a3AoKTttaGUoKTtnaGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGltZXIiKX1nZXQgdGltZUxlZnQoKXtyZXR1cm4gdGhpcy50aW1lSW5NaWxsaXNlY29uZHMtdGhpcy5wYXVzZWRBdC5jaGFuZ2V9Y29uc3RydWN0b3IoZSl7dGhpcy5zdGF0ZT0iaW5pdGlhdGVkIix0aGlzLmNvbXBsZXRlZERlZmVycmVkPW10LmRlZmVyKCksdGhpcy50aW1lSW5NaWxsaXNlY29uZHM9ZSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmVycmVkLnByb21pc2V9c3RhcnQoKXtpZighdGhpcy5zdGFydGVkQXQpdGhpcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5yZXNvbHZlKCl9LHRoaXMudGltZUluTWlsbGlzZWNvbmRzKSx0aGlzLnN0YXJ0ZWRBdD1uZXcgcDk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIHJlc3VtZSBpbnN0ZWFkIil9cGF1c2UoKXt0aGlzLnN0YXJ0ZWRBdCYmKGNsZWFyVGltZW91dCh0aGlzLmN1cnJlbnRUaW1lb3V0KSx0aGlzLmN1cnJlbnRUaW1lb3V0PW51bGwsdGhpcy5wYXVzZWRBdD1wOS5mcm9tVGltZVN0YW1wKHRoaXMuc3RhcnRlZEF0KSl9cmVzdW1lKCl7aWYodGhpcy5zdGFydGVkQXQpdGhpcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5yZXNvbHZlKCl9LHRoaXMudGltZUxlZnQpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJ0aW1lciBoYXMgTk9UIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgLnN0YXJ0KCkgaW5zdGVhZCIpfXJlc2V0KCl7dGhpcy5wYXVzZSgpLHRoaXMuc3RhcnRlZEF0PW51bGwsdGhpcy5wYXVzZWRBdD1udWxsfX19KTt2YXIgaTM9e307eXQoaTMse0Nyb25Kb2I6KCk9Pkd5LENyb25NYW5hZ2VyOigpPT5jaGUsRXh0ZW5kZWREYXRlOigpPT5waGUsSHJ0TWVhc3VyZW1lbnQ6KCk9PmhoZSxJbnRlcnZhbDooKT0+ZmhlLFRpbWVTdGFtcDooKT0+cDksVGltZXI6KCk9PmdoZSxnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lOigpPT5HRWEsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nOigpPT5XRWEsZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzOigpPT5kaGUsdW5pdHM6KCk9PlNwfSk7dmFyIFpmdD1nKCgpPT57bGhlKCk7bmhlKCk7V2Z0KCk7R2Z0KCk7S2Z0KCk7WWZ0KCk7bWhlKCk7dWhlKCl9KTt2YXIgUWZ0PXBsKChUVXMsWGZ0KT0+eyJ1c2Ugc3RyaWN0IjtYZnQuZXhwb3J0cz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTeW1ib2xUcmVlTm9kZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5wYXJlbnQ9bnVsbCx0aGlzLnByZXZpb3VzU2libGluZz1udWxsLHRoaXMubmV4dFNpYmxpbmc9bnVsbCx0aGlzLmZpcnN0Q2hpbGQ9bnVsbCx0aGlzLmxhc3RDaGlsZD1udWxsLHRoaXMuY2hpbGRyZW5WZXJzaW9uPTAsdGhpcy5jaGlsZEluZGV4Q2FjaGVkVXBUbz1udWxsLHRoaXMuY2FjaGVkSW5kZXg9LTEsdGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOfWdldCBpc0F0dGFjaGVkKCl7cmV0dXJuISEodGhpcy5wYXJlbnR8fHRoaXMucHJldmlvdXNTaWJsaW5nfHx0aGlzLm5leHRTaWJsaW5nKX1nZXQgaGFzQ2hpbGRyZW4oKXtyZXR1cm4hIXRoaXMuZmlyc3RDaGlsZH1jaGlsZHJlbkNoYW5nZWQoKXt0aGlzLmNoaWxkcmVuVmVyc2lvbj10aGlzLmNoaWxkcmVuVmVyc2lvbisxJjQyOTQ5NjcyOTUsdGhpcy5jaGlsZEluZGV4Q2FjaGVkVXBUbz1udWxsfWdldENhY2hlZEluZGV4KGUpe3JldHVybiB0aGlzLmNhY2hlZEluZGV4VmVyc2lvbiE9PWUuY2hpbGRyZW5WZXJzaW9uPyh0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1OYU4sLTEpOnRoaXMuY2FjaGVkSW5kZXh9c2V0Q2FjaGVkSW5kZXgoZSx0KXt0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1lLmNoaWxkcmVuVmVyc2lvbix0aGlzLmNhY2hlZEluZGV4PXR9fX0pO3ZhciBlbXQ9cGwoKERVcyxKZnQpPT57InVzZSBzdHJpY3QiO0pmdC5leHBvcnRzPU9iamVjdC5mcmVlemUoe0RJU0NPTk5FQ1RFRDoxLFBSRUNFRElORzoyLEZPTExPV0lORzo0LENPTlRBSU5TOjgsQ09OVEFJTkVEX0JZOjE2fSl9KTt2YXIgcm10PXBsKChMVXMsaW10KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdG10PVN5bWJvbCgpLGFtdD1TeW1ib2woKSxfcD1TeW1ib2woKSxzbXQ9U3ltYm9sKCkseDE9Y2xhc3N7c3RhdGlje2kodGhpcywiVHJlZUl0ZXJhdG9yIil9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpc1t0bXRdPWUsdGhpc1thbXRdPXQsdGhpc1tfcF09YSx0aGlzW3NtdF09cn1uZXh0KCl7bGV0IGU9dGhpc1t0bXRdLHQ9dGhpc1tzbXRdLGE9dGhpc1thbXRdO2lmKCF0aGlzW19wXSlyZXR1cm57ZG9uZTohMCx2YWx1ZTphfTtsZXQgcj10aGlzW19wXTtyZXR1cm4gdD09PTE/dGhpc1tfcF09ZS5fbm9kZShyKS5wcmV2aW91c1NpYmxpbmc6dD09PTI/dGhpc1tfcF09ZS5fbm9kZShyKS5uZXh0U2libGluZzp0PT09Mz90aGlzW19wXT1lLl9ub2RlKHIpLnBhcmVudDp0PT09ND90aGlzW19wXT1lLnByZWNlZGluZyhyLHtyb290OmF9KTp0aGlzW19wXT1lLmZvbGxvd2luZyhyLHtyb290OmF9KSx7ZG9uZTohMSx2YWx1ZTpyfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh4MS5wcm90b3R5cGUsU3ltYm9sLml0ZXJhdG9yLHt2YWx1ZTppKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LCJ2YWx1ZSIpLHdyaXRhYmxlOiExfSkseDEuUFJFVj0xLHgxLk5FWFQ9Mix4MS5QQVJFTlQ9Myx4MS5QUkVDRURJTkc9NCx4MS5GT0xMT1dJTkc9NSxPYmplY3QuZnJlZXplKHgxKSxPYmplY3QuZnJlZXplKHgxLnByb3RvdHlwZSksaW10LmV4cG9ydHM9eDF9KTt2YXIgbm10PXBsKChQVXMsb210KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgWUVhPVFmdCgpLE1wPWVtdCgpLF9jPXJtdCgpO2Z1bmN0aW9uIGJoZSgpe3JldHVybiEwfWkoYmhlLCJyZXR1cm5UcnVlIik7ZnVuY3Rpb24gaDkocyxlKXtyZXR1cm4gc1tzLmxlbmd0aC0xLWVdfWkoaDksInJldmVyc2VBcnJheUluZGV4Iik7dmFyIFBhZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTeW1ib2xUcmVlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5zeW1ib2w9U3ltYm9sKGV8fCJTeW1ib2xUcmVlIGRhdGEiKX1pbml0aWFsaXplKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLGV9X25vZGUoZSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZVt0aGlzLnN5bWJvbF07cmV0dXJuIHR8fChlW3RoaXMuc3ltYm9sXT1uZXcgWUVhKX1oYXNDaGlsZHJlbihlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5oYXNDaGlsZHJlbn1maXJzdENoaWxkKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmZpcnN0Q2hpbGR9bGFzdENoaWxkKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmxhc3RDaGlsZH1wcmV2aW91c1NpYmxpbmcoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nfW5leHRTaWJsaW5nKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLm5leHRTaWJsaW5nfXBhcmVudChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5wYXJlbnR9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl7bGV0IHQsYT1lO2Zvcig7dD10aGlzLl9ub2RlKGEpLmxhc3RDaGlsZDspYT10O3JldHVybiBhfXByZWNlZGluZyhlLHQpe2xldCBhPXQmJnQucm9vdDtpZihlPT09YSlyZXR1cm4gbnVsbDtsZXQgcj10aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZztyZXR1cm4gcj90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KHIpOnRoaXMuX25vZGUoZSkucGFyZW50fWZvbGxvd2luZyhlLHQpe2xldCBhPXQmJnQucm9vdCxuPSEodCYmdC5za2lwQ2hpbGRyZW4pJiZ0aGlzLl9ub2RlKGUpLmZpcnN0Q2hpbGQ7aWYobilyZXR1cm4gbjtsZXQgbz1lO2Rve2lmKG89PT1hKXJldHVybiBudWxsO2xldCBsPXRoaXMuX25vZGUobykubmV4dFNpYmxpbmc7aWYobClyZXR1cm4gbDtvPXRoaXMuX25vZGUobykucGFyZW50fXdoaWxlKG8pO3JldHVybiBudWxsfWNoaWxkcmVuVG9BcnJheShlLHQpe2xldCBhPXQmJnQuYXJyYXl8fFtdLHI9dCYmdC5maWx0ZXJ8fGJoZSxuPXQmJnQudGhpc0FyZ3x8dm9pZCAwLG89dGhpcy5fbm9kZShlKSxsPW8uZmlyc3RDaGlsZCxwPTA7Zm9yKDtsOyl7bGV0IGQ9dGhpcy5fbm9kZShsKTtkLnNldENhY2hlZEluZGV4KG8scCksci5jYWxsKG4sbCkmJmEucHVzaChsKSxsPWQubmV4dFNpYmxpbmcsKytwfXJldHVybiBhfWFuY2VzdG9yc1RvQXJyYXkoZSx0KXtsZXQgYT10JiZ0LmFycmF5fHxbXSxyPXQmJnQuZmlsdGVyfHxiaGUsbj10JiZ0LnRoaXNBcmd8fHZvaWQgMCxvPWU7Zm9yKDtvOylyLmNhbGwobixvKSYmYS5wdXNoKG8pLG89dGhpcy5fbm9kZShvKS5wYXJlbnQ7cmV0dXJuIGF9dHJlZVRvQXJyYXkoZSx0KXtsZXQgYT10JiZ0LmFycmF5fHxbXSxyPXQmJnQuZmlsdGVyfHxiaGUsbj10JiZ0LnRoaXNBcmd8fHZvaWQgMCxvPWU7Zm9yKDtvOylyLmNhbGwobixvKSYmYS5wdXNoKG8pLG89dGhpcy5mb2xsb3dpbmcobyx7cm9vdDplfSk7cmV0dXJuIGF9Y2hpbGRyZW5JdGVyYXRvcihlLHQpe2xldCBhPXQmJnQucmV2ZXJzZSxyPXRoaXMuX25vZGUoZSk7cmV0dXJuIG5ldyBfYyh0aGlzLGUsYT9yLmxhc3RDaGlsZDpyLmZpcnN0Q2hpbGQsYT9fYy5QUkVWOl9jLk5FWFQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gbmV3IF9jKHRoaXMsZSx0aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZyxfYy5QUkVWKX1uZXh0U2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gbmV3IF9jKHRoaXMsZSx0aGlzLl9ub2RlKGUpLm5leHRTaWJsaW5nLF9jLk5FWFQpfWFuY2VzdG9yc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgX2ModGhpcyxlLGUsX2MuUEFSRU5UKX10cmVlSXRlcmF0b3IoZSx0KXtsZXQgYT10JiZ0LnJldmVyc2U7cmV0dXJuIG5ldyBfYyh0aGlzLGUsYT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpOmUsYT9fYy5QUkVDRURJTkc6X2MuRk9MTE9XSU5HKX1pbmRleChlKXtsZXQgdD10aGlzLl9ub2RlKGUpLGE9dGhpcy5fbm9kZSh0LnBhcmVudCk7aWYoIWEpcmV0dXJuLTE7bGV0IHI9dC5nZXRDYWNoZWRJbmRleChhKTtpZihyPj0wKXJldHVybiByO3I9MDtsZXQgbj1hLmZpcnN0Q2hpbGQ7aWYoYS5jaGlsZEluZGV4Q2FjaGVkVXBUbyl7bGV0IG89dGhpcy5fbm9kZShhLmNoaWxkSW5kZXhDYWNoZWRVcFRvKTtuPW8ubmV4dFNpYmxpbmcscj1vLmdldENhY2hlZEluZGV4KGEpKzF9Zm9yKDtuOyl7bGV0IG89dGhpcy5fbm9kZShuKTtpZihvLnNldENhY2hlZEluZGV4KGEsciksbj09PWUpYnJlYWs7KytyLG49by5uZXh0U2libGluZ31yZXR1cm4gYS5jaGlsZEluZGV4Q2FjaGVkVXBUbz1lLHJ9Y2hpbGRyZW5Db3VudChlKXtsZXQgdD10aGlzLl9ub2RlKGUpO3JldHVybiB0Lmxhc3RDaGlsZD90aGlzLmluZGV4KHQubGFzdENoaWxkKSsxOjB9Y29tcGFyZVRyZWVQb3NpdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiAwO2xldCBhPVtdO3tsZXQgdT1lO2Zvcig7dTspe2lmKHU9PT10KXJldHVybiBNcC5DT05UQUlOU3xNcC5QUkVDRURJTkc7YS5wdXNoKHUpLHU9dGhpcy5wYXJlbnQodSl9fWxldCByPVtdO3tsZXQgdT10O2Zvcig7dTspe2lmKHU9PT1lKXJldHVybiBNcC5DT05UQUlORURfQll8TXAuRk9MTE9XSU5HO3IucHVzaCh1KSx1PXRoaXMucGFyZW50KHUpfX1sZXQgbj1oOShhLDApO2lmKCFufHxuIT09aDkociwwKSlyZXR1cm4gTXAuRElTQ09OTkVDVEVEO2xldCBvPTAsbD1NYXRoLm1pbihhLmxlbmd0aCxyLmxlbmd0aCk7Zm9yKGxldCB1PTA7dTxsOysrdSl7bGV0IGM9aDkoYSx1KSxiPWg5KHIsdSk7aWYoYyE9PWIpYnJlYWs7bz11fWxldCBwPXRoaXMuaW5kZXgoaDkoYSxvKzEpKTtyZXR1cm4gdGhpcy5pbmRleChoOShyLG8rMSkpPHA/TXAuUFJFQ0VESU5HOk1wLkZPTExPV0lOR31yZW1vdmUoZSl7bGV0IHQ9dGhpcy5fbm9kZShlKSxhPXRoaXMuX25vZGUodC5wYXJlbnQpLHI9dGhpcy5fbm9kZSh0LnByZXZpb3VzU2libGluZyksbj10aGlzLl9ub2RlKHQubmV4dFNpYmxpbmcpO3JldHVybiBhJiYoYS5maXJzdENoaWxkPT09ZSYmKGEuZmlyc3RDaGlsZD10Lm5leHRTaWJsaW5nKSxhLmxhc3RDaGlsZD09PWUmJihhLmxhc3RDaGlsZD10LnByZXZpb3VzU2libGluZykpLHImJihyLm5leHRTaWJsaW5nPXQubmV4dFNpYmxpbmcpLG4mJihuLnByZXZpb3VzU2libGluZz10LnByZXZpb3VzU2libGluZyksdC5wYXJlbnQ9bnVsbCx0LnByZXZpb3VzU2libGluZz1udWxsLHQubmV4dFNpYmxpbmc9bnVsbCx0LmNhY2hlZEluZGV4PS0xLHQuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTixhJiZhLmNoaWxkcmVuQ2hhbmdlZCgpLGV9aW5zZXJ0QmVmb3JlKGUsdCl7bGV0IGE9dGhpcy5fbm9kZShlKSxyPXRoaXMuX25vZGUoYS5wcmV2aW91c1NpYmxpbmcpLG49dGhpcy5fbm9kZSh0KSxvPXRoaXMuX25vZGUoYS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1hLnBhcmVudCxuLnByZXZpb3VzU2libGluZz1hLnByZXZpb3VzU2libGluZyxuLm5leHRTaWJsaW5nPWUsYS5wcmV2aW91c1NpYmxpbmc9dCxyJiYoci5uZXh0U2libGluZz10KSxvJiZvLmZpcnN0Q2hpbGQ9PT1lJiYoby5maXJzdENoaWxkPXQpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCksdH1pbnNlcnRBZnRlcihlLHQpe2xldCBhPXRoaXMuX25vZGUoZSkscj10aGlzLl9ub2RlKGEubmV4dFNpYmxpbmcpLG49dGhpcy5fbm9kZSh0KSxvPXRoaXMuX25vZGUoYS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1hLnBhcmVudCxuLnByZXZpb3VzU2libGluZz1lLG4ubmV4dFNpYmxpbmc9YS5uZXh0U2libGluZyxhLm5leHRTaWJsaW5nPXQsciYmKHIucHJldmlvdXNTaWJsaW5nPXQpLG8mJm8ubGFzdENoaWxkPT09ZSYmKG8ubGFzdENoaWxkPXQpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCksdH1wcmVwZW5kQ2hpbGQoZSx0KXtsZXQgYT10aGlzLl9ub2RlKGUpLHI9dGhpcy5fbm9kZSh0KTtpZihyLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gYS5oYXNDaGlsZHJlbj90aGlzLmluc2VydEJlZm9yZShhLmZpcnN0Q2hpbGQsdCk6KHIucGFyZW50PWUsYS5maXJzdENoaWxkPXQsYS5sYXN0Q2hpbGQ9dCxhLmNoaWxkcmVuQ2hhbmdlZCgpKSx0fWFwcGVuZENoaWxkKGUsdCl7bGV0IGE9dGhpcy5fbm9kZShlKSxyPXRoaXMuX25vZGUodCk7aWYoci5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGEuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRBZnRlcihhLmxhc3RDaGlsZCx0KTooci5wYXJlbnQ9ZSxhLmZpcnN0Q2hpbGQ9dCxhLmxhc3RDaGlsZD10LGEuY2hpbGRyZW5DaGFuZ2VkKCkpLHR9fTtvbXQuZXhwb3J0cz1QYWUsUGFlLlRyZWVQb3NpdGlvbj1NcH0pO3ZhciBJYWUsTWM9ZygoKT0+e2QwKCk7S2R0KCk7aW8oKTtaMigpO1pmdCgpO0lhZT14bihubXQoKSwxKX0pO3ZhciB2aGUsbG10PWcoKCk9PntNYygpO3ZoZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJBc3luY0V4ZWN1dGlvblN0YWNrIil9ZXhlY3V0aW9uU2xvdHM9W107aXNQcm9jZXNzaW5nPSExO25vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5PTEvMDtub25FeGNsdXNpdmVDdXJyZW50Q291bnQ9MDtub25FeGNsdXNpdmVQZW5kaW5nUXVldWU9W107YXN5bmMgZ2V0RXhjbHVzaXZlRXhlY3V0aW9uU2xvdChlLHQpe2xldCBhPW10LmRlZmVyKCkscj17ZnVuY1RvRXhlY3V0ZTplLGV4ZWN1dGlvbkRlZmVycmVkOmEsdGltZW91dDp0LG1vZGU6ImV4Y2x1c2l2ZSJ9O3JldHVybiB0aGlzLmV4ZWN1dGlvblNsb3RzLnB1c2gociksdGhpcy5wcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSxhLnByb21pc2V9YXN5bmMgZ2V0Tm9uRXhjbHVzaXZlRXhlY3V0aW9uU2xvdChlLHQpe2xldCBhPW10LmRlZmVyKCkscj17ZnVuY1RvRXhlY3V0ZTplLGV4ZWN1dGlvbkRlZmVycmVkOmEsdGltZW91dDp0LG1vZGU6Im5vbmV4Y2x1c2l2ZSJ9O3JldHVybiB0aGlzLmV4ZWN1dGlvblNsb3RzLnB1c2gociksdGhpcy5wcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSxhLnByb21pc2V9c2V0Tm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3koZSl7aWYoIU51bWJlci5pc0Zpbml0ZShlKXx8ZTwxKXRocm93IG5ldyBFcnJvcigibm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3kgbXVzdCBiZSBhIGZpbml0ZSBudW1iZXIgPj0gMSIpO3RoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9ZX1nZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5fWdldEFjdGl2ZU5vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50fWdldFBlbmRpbmdOb25FeGNsdXNpdmVDb3VudCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5sZW5ndGh9YXN5bmMgcHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCl7aWYoIXRoaXMuaXNQcm9jZXNzaW5nKXtmb3IodGhpcy5pc1Byb2Nlc3Npbmc9ITA7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MDspe2xldCBlPXRoaXMuZXhlY3V0aW9uU2xvdHNbMF07aWYoZS5tb2RlPT09ImV4Y2x1c2l2ZSIpYXdhaXQgdGhpcy5leGVjdXRlRXhjbHVzaXZlU2xvdChlKSx0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCk7ZWxzZXtsZXQgdD1bXTtmb3IoO3RoaXMuZXhlY3V0aW9uU2xvdHMubGVuZ3RoPjAmJnRoaXMuZXhlY3V0aW9uU2xvdHNbMF0ubW9kZT09PSJub25leGNsdXNpdmUiOyl0LnB1c2godGhpcy5leGVjdXRpb25TbG90cy5zaGlmdCgpKTthd2FpdCB0aGlzLmV4ZWN1dGVOb25FeGNsdXNpdmVTbG90cyh0KX19dGhpcy5pc1Byb2Nlc3Npbmc9ITF9fWFzeW5jIGV4ZWN1dGVFeGNsdXNpdmVTbG90KGUpe3RyeXtpZihlLnRpbWVvdXQpe2xldCB0PW5ldyBYdC5UaW1lb3V0KGUudGltZW91dCk7dHJ5e2xldCBhPWF3YWl0IFByb21pc2UucmFjZShbZS5mdW5jVG9FeGVjdXRlKCksdC5wcm9taXNlLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTt0LmNhbmNlbCgpLGUuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX1jYXRjaChhKXt0aHJvdyB0LmNhbmNlbCgpLGF9fWVsc2V7bGV0IHQ9YXdhaXQgZS5mdW5jVG9FeGVjdXRlKCk7ZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHQpfX1jYXRjaCh0KXtlLmV4ZWN1dGlvbkRlZmVycmVkLnJlamVjdCh0KX19YXN5bmMgZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKGUpe2xldCB0PWUubWFwKGFzeW5jIGE9Pnthd2FpdCB0aGlzLndhaXRGb3JOb25FeGNsdXNpdmVTbG90KCk7dHJ5e2lmKGEudGltZW91dCl7bGV0IHI9bmV3IFh0LlRpbWVvdXQoYS50aW1lb3V0KTt0cnl7bGV0IG49YXdhaXQgUHJvbWlzZS5yYWNlKFthLmZ1bmNUb0V4ZWN1dGUoKSxyLnByb21pc2UudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO3IuY2FuY2VsKCksYS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKG4pfWNhdGNoKG4pe3Rocm93IHIuY2FuY2VsKCksbn19ZWxzZXtsZXQgcj1hd2FpdCBhLmZ1bmNUb0V4ZWN1dGUoKTthLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe2EuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfWZpbmFsbHl7dGhpcy5yZWxlYXNlTm9uRXhjbHVzaXZlU2xvdCgpfX0pO2F3YWl0IFByb21pc2UuYWxsKHQpfXdhaXRGb3JOb25FeGNsdXNpdmVTbG90KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50PHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k/KHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50KyssUHJvbWlzZS5yZXNvbHZlKCkpOm5ldyBQcm9taXNlKGU9Pnt0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5wdXNoKCgpPT57dGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxlKCl9KX0pfXJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl7dGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQtLTtsZXQgZT10aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5zaGlmdCgpO2UmJmUoKX19fSk7dmFyIHhoZSxjbXQ9ZygoKT0+e01jKCk7eGhlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJhY2twcmVzc3VyZWRBcnJheSIpfWRhdGE7aGlnaFdhdGVyTWFyaztoYXNTcGFjZT1uZXcgbHMucnhqcy5TdWJqZWN0O2l0ZW1zQXZhaWxhYmxlPW5ldyBscy5yeGpzLlN1YmplY3Q7aXNEZXN0cm95ZWQ9ITE7Y29uc3RydWN0b3IoZT0xNil7dGhpcy5kYXRhPVtdLHRoaXMuaGlnaFdhdGVyTWFyaz1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aH1wdXNoKGUpe3RoaXMuZGF0YS5wdXNoKGUpLHRoaXMuaXRlbXNBdmFpbGFibGUubmV4dCgiaXRlbXNBdmFpbGFibGUiKTtsZXQgdD10aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKTtyZXR1cm4gdCYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLHR9cHVzaE1hbnkoZSl7Zm9yKGxldCB0IG9mIGUpdGhpcy5wdXNoKHQpO3JldHVybiB0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKX1zaGlmdCgpe2xldCBlPXRoaXMuZGF0YS5zaGlmdCgpO3JldHVybiB0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKSYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLGV9cGVlaygpe3JldHVybiB0aGlzLmRhdGFbMF19Y2hlY2tTcGFjZUF2YWlsYWJsZSgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPHRoaXMuaGlnaFdhdGVyTWFya31jaGVja0hhc0l0ZW1zKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg+MH13YWl0Rm9yU3BhY2UoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2lmKHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfHx0aGlzLmlzRGVzdHJveWVkKWUoKTtlbHNle2xldCB0PXRoaXMuaGFzU3BhY2Uuc3Vic2NyaWJlKHtuZXh0OmkoKCk9Pnt0LnVuc3Vic2NyaWJlKCksZSgpfSwibmV4dCIpLGNvbXBsZXRlOmkoKCk9PntlKCl9LCJjb21wbGV0ZSIpfSl9fSl9d2FpdEZvckl0ZW1zKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntpZih0aGlzLmRhdGEubGVuZ3RoPjB8fHRoaXMuaXNEZXN0cm95ZWQpZSgpO2Vsc2V7bGV0IHQ9dGhpcy5pdGVtc0F2YWlsYWJsZS5zdWJzY3JpYmUoe25leHQ6aSgoKT0+e3QudW5zdWJzY3JpYmUoKSxlKCl9LCJuZXh0IiksY29tcGxldGU6aSgoKT0+e2UoKX0sImNvbXBsZXRlIil9KX19KX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLmRhdGFbU3ltYm9sLml0ZXJhdG9yXSgpfWRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWVkPSEwLHRoaXMuaGFzU3BhY2UuY29tcGxldGUoKSx0aGlzLml0ZW1zQXZhaWxhYmxlLmNvbXBsZXRlKCl9fX0pO3ZhciByMyxBYWU9ZygoKT0+e01jKCk7cjM9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJGYXN0TWFwIil9bWFwT2JqZWN0PW5ldyBNYXA7aXNVbmlxdWVLZXkoZSl7cmV0dXJuIXRoaXMubWFwT2JqZWN0LmhhcyhlKX1oYXMoZSl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmhhcyhlKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLm1hcE9iamVjdC5zaXplfWFkZFRvTWFwKGUsdCxhKXtyZXR1cm4gdGhpcy5pc1VuaXF1ZUtleShlKXx8YSYmYS5mb3JjZT8odGhpcy5tYXBPYmplY3Quc2V0KGUsdCksITApOiExfWdldEJ5S2V5KGUpe3JldHVybiB0aGlzLm1hcE9iamVjdC5nZXQoZSl9cmVtb3ZlRnJvbU1hcChlKXtsZXQgdD10aGlzLm1hcE9iamVjdC5nZXQoZSk7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmRlbGV0ZShlKSx0fWdldEtleXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLm1hcE9iamVjdC5rZXlzKCkpfXZhbHVlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwT2JqZWN0LnZhbHVlcygpKX1lbnRyaWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5tYXBPYmplY3QuZW50cmllcygpKX1jbGVhbigpe3RoaXMubWFwT2JqZWN0LmNsZWFyKCl9Y29uY2F0KGUpe2xldCB0PW5ldyBzO2ZvcihsZXQgYSBvZiB0aGlzLmdldEtleXMoKSl0LmFkZFRvTWFwKGEsdGhpcy5nZXRCeUtleShhKSk7Zm9yKGxldCBhIG9mIGUuZ2V0S2V5cygpKXQuYWRkVG9NYXAoYSxlLmdldEJ5S2V5KGEpLHtmb3JjZTohMH0pO3JldHVybiB0fWFkZEFsbEZyb21PdGhlcihlKXtmb3IobGV0IHQgb2YgZS5nZXRLZXlzKCkpdGhpcy5hZGRUb01hcCh0LGUuZ2V0QnlLZXkodCkse2ZvcmNlOiEwfSl9YXN5bmMgZmluZChlKXtmb3IobGV0IHQgb2YgdGhpcy5nZXRLZXlzKCkpe2xldCBhPXRoaXMuZ2V0QnlLZXkodCk7aWYoYXdhaXQgZShhKSlyZXR1cm4gYX19W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5tYXBPYmplY3QuZW50cmllcygpfX19KTt2YXIgZG10LGIwLEt5PWcoKCk9PntNYygpO0FhZSgpO2RtdD1pKChzPSJ1bmkiKT0+YCR7c314eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLGU9PntsZXQgdD1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKGU9PT0ieCI/dDp0JjN8OCkudG9TdHJpbmcoMTYpfSksInVuaSIpLGIwPWNsYXNzIHN7c3RhdGlje2kodGhpcywiT2JqZWN0TWFwIil9ZmFzdE1hcD1uZXcgcjM7cmV2ZXJzZU1hcD1uZXcgTWFwO2V2ZW50U3ViamVjdD1uZXcgbHMucnhqcy5TdWJqZWN0O2NvbnN0cnVjdG9yKCl7fWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLnNpemV9YWRkTWFwcGVkVW5pcXVlKGUsdCl7dGhpcy5mYXN0TWFwLmFkZFRvTWFwKGUsdCksdGhpcy5yZXZlcnNlTWFwLnNldCh0LGUpfWdldE1hcHBlZFVuaXF1ZShlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGUpfXJlbW92ZU1hcHBlZFVuaXF1ZShlKXtsZXQgdD10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChlKTtyZXR1cm4gdCE9PXZvaWQgMCYmKHRoaXMucmV2ZXJzZU1hcC5kZWxldGUodCksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6dH0pKSx0fWFkZChlKXtsZXQgdD10aGlzLnJldmVyc2VNYXAuZ2V0KGUpO2lmKHQhPT12b2lkIDApcmV0dXJuIHQ7bGV0IGE9ZG10KCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUoYSxlKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDplfSksYX1hZGRBcnJheShlKXtmb3IobGV0IHQgb2YgZSl0aGlzLmFkZCh0KX1jaGVja0Zvck9iamVjdChlKXtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmhhcyhlKX1nZXRLZXlGb3JPYmplY3QoZSl7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5nZXQoZSk/P251bGx9YXN5bmMgZmluZChlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmZpbmQoZSl9ZmluZFN5bmMoZSl7Zm9yKGxldCB0IG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYoZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodCkpKXJldHVybiB0aGlzLmdldE1hcHBlZFVuaXF1ZSh0KX1hc3luYyBmaW5kT25lQW5kUmVtb3ZlKGUpe2xldCB0PWF3YWl0IHRoaXMuZmluZChlKTtyZXR1cm4gdCYmdGhpcy5yZW1vdmUodCksdH1maW5kT25lQW5kUmVtb3ZlU3luYyhlKXtsZXQgdD10aGlzLmZpbmRTeW5jKGUpO3JldHVybiB0JiZ0aGlzLnJlbW92ZSh0KSx0fWFzeW5jIGZvckVhY2goZSl7Zm9yKGxldCB0IG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpYXdhaXQgZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodCkpfWdldE9uZUFuZFJlbW92ZSgpe2xldCBlPXRoaXMuZmFzdE1hcC5nZXRLZXlzKCk7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO3tsZXQgdD1lWzBdLGE9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAodCk7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5kZWxldGUoYSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6YX0pLGF9fWdldEFycmF5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC52YWx1ZXMoKX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5zaXplPT09MH1yZW1vdmUoZSl7bGV0IHQ9dGhpcy5yZXZlcnNlTWFwLmdldChlKTtpZih0IT09dm9pZCAwKXtsZXQgYT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcCh0KTtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShhKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDphfSksYX1yZXR1cm4gbnVsbH13aXBlKCl7bGV0IGU9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtmb3IobGV0IHQgb2YgZSl7bGV0IGE9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAodCk7dGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShhKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDphfSl9fWNvbmNhdChlKXtsZXQgdD1uZXcgczt0LmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHRoaXMuZmFzdE1hcCksdC5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApO2ZvcihsZXQgYSBvZiB0LmZhc3RNYXAuZ2V0S2V5cygpKXQucmV2ZXJzZU1hcC5zZXQodC5mYXN0TWFwLmdldEJ5S2V5KGEpLGEpO3JldHVybiB0fWFkZEFsbEZyb21PdGhlcihlKXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCk7Zm9yKGxldCB0IG9mIGUuZmFzdE1hcC5nZXRLZXlzKCkpdGhpcy5yZXZlcnNlTWFwLnNldChlLmZhc3RNYXAuZ2V0QnlLZXkodCksdCl9bWFwKGUpe3JldHVybiB0aGlzLmdldEFycmF5KCkubWFwKGUpfWZpbHRlcihlKXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpLmZpbHRlcihlKX1yZWR1Y2UoZSx0KXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpLnJlZHVjZShlLHQpfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKVtTeW1ib2wuaXRlcmF0b3JdKCl9ZGVzdHJveSgpe3RoaXMud2lwZSgpLHRoaXMucmV2ZXJzZU1hcC5jbGVhcigpLHRoaXMuZXZlbnRTdWJqZWN0LmNvbXBsZXRlKCl9fX0pO3ZhciBZeSx5aGU9ZygoKT0+e01jKCk7d2hlKCk7WXk9Y2xhc3N7c3RhdGlje2kodGhpcywiSW50ZXJlc3QiKX1vcHRpb25zO2ludGVyZXN0TWFwUmVmO29yaWdpbmFsSW50ZXJlc3Q7Y29tcGFyaXNvbkZ1bmM7ZGVzdHJ1Y3Rpb25UaW1lcj1uZXcgaTMuVGltZXIoMWU0KTtpc0Z1bGxmaWxsZWQ9ITE7aXNEZXN0cm95ZWQ9ITE7ZnVsbGZpbGxtZW50U3RvcmU9W107bWFya0xvc3RUaW1lb3V0PW51bGw7Z2V0IGNvbXBhcmlzb25TdHJpbmcoKXtyZXR1cm4gdGhpcy5jb21wYXJpc29uRnVuYyh0aGlzLm9yaWdpbmFsSW50ZXJlc3QpfWludGVyZXN0RGVmZXJyZWQ9bmV3IG10LkRlZmVycmVkO2ludGVyZXN0RnVsbGZpbGxlZD10aGlzLmludGVyZXN0RGVmZXJyZWQucHJvbWlzZTtmdWxsZmlsbEludGVyZXN0KGUpe3RoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUoZSksdGhpcy5kZXN0cm95KCl9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpcy5pbnRlcmVzdE1hcFJlZj1lLHRoaXMub3JpZ2luYWxJbnRlcmVzdD10LHRoaXMuY29tcGFyaXNvbkZ1bmM9YSx0aGlzLm9wdGlvbnM9cix0aGlzLmRlc3RydWN0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9Pnt0aGlzLmlzRGVzdHJveWVkfHx0aGlzLmRlc3Ryb3koKX0pLHRoaXMub3B0aW9ucz8ubWFya0xvc3RBZnRlckRlZmF1bHQmJih0aGlzLm1hcmtMb3N0VGltZW91dD1uZXcgWHQuVGltZW91dCh0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQpLHRoaXMubWFya0xvc3RUaW1lb3V0LnByb21pc2UudGhlbigoKT0+e3RoaXMuaXNEZXN0cm95ZWR8fHRoaXMubWFya0xvc3QoKX0pKX1kZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3llZHx8KHRoaXMuaXNEZXN0cm95ZWQ9ITAsdGhpcy5kZXN0cnVjdGlvblRpbWVyLnJlc2V0KCksdGhpcy5tYXJrTG9zdFRpbWVvdXQmJih0aGlzLm1hcmtMb3N0VGltZW91dC5jYW5jZWwoKSx0aGlzLm1hcmtMb3N0VGltZW91dD1udWxsKSx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3RNYXBSZWYucmVtb3ZlSW50ZXJlc3QodGhpcyksIXRoaXMuaXNGdWxsZmlsbGVkJiZ0aGlzLm9wdGlvbnM/LmRlZmF1bHRGdWxsZmlsbG1lbnQmJih0aGlzLmlzRnVsbGZpbGxlZD0hMCx0aGlzLmludGVyZXN0RGVmZXJyZWQucmVzb2x2ZSh0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCkpKX1tYXJrTG9zdCgpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5zdGFydCgpfXJlbmV3KCl7dGhpcy5kZXN0cnVjdGlvblRpbWVyLnJlc2V0KCl9fX0pO3ZhciBraGUsd2hlPWcoKCk9PntNYygpO0t5KCk7eWhlKCk7a2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkludGVyZXN0TWFwIil9b3B0aW9ucztpbnRlcmVzdE9iamVjdE1hcD1uZXcgYjA7aW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nPW5ldyBNYXA7Y29tcGFyaXNvbkZ1bmM7Y29uc3RydWN0b3IoZSx0PXt9KXt0aGlzLmNvbXBhcmlzb25GdW5jPWUsdGhpcy5vcHRpb25zPXR9YXN5bmMgYWRkSW50ZXJlc3QoZSx0KXtsZXQgYT10aGlzLmNvbXBhcmlzb25GdW5jKGUpLHIsbj10aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5nZXQoYSk7cmV0dXJuIG4/KHI9bixyLnJlbmV3KCkpOihyPW5ldyBZeSh0aGlzLGUsdGhpcy5jb21wYXJpc29uRnVuYyx7bWFya0xvc3RBZnRlckRlZmF1bHQ6dGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0LGRlZmF1bHRGdWxsZmlsbG1lbnQ6dH0pLHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuYWRkKHIpLHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLnNldChhLHIpKSx0aGlzLmludGVyZXN0T2JzZXJ2YWJsZS5wdXNoKHIpLHJ9aW50ZXJlc3RPYnNlcnZhYmxlPW5ldyBscy5PYnNlcnZhYmxlSW50YWtlO3JlbW92ZUludGVyZXN0KGUpe3RoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZE9uZUFuZFJlbW92ZVN5bmModD0+ZS5jb21wYXJpc29uU3RyaW5nPT09dC5jb21wYXJpc29uU3RyaW5nKSx0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5kZWxldGUoZS5jb21wYXJpc29uU3RyaW5nKX1jaGVja0ludGVyZXN0KGUpe2xldCB0PXRoaXMuY29tcGFyaXNvbkZ1bmMoZSk7cmV0dXJuIHRoaXMuY2hlY2tJbnRlcmVzdEJ5U3RyaW5nKHQpfWNoZWNrSW50ZXJlc3RCeVN0cmluZyhlKXtyZXR1cm4gdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuaGFzKGUpfWluZm9ybUxvc3RJbnRlcmVzdChlKXtsZXQgdD10aGlzLmZpbmRJbnRlcmVzdChlKTt0JiZ0Lm1hcmtMb3N0KCl9ZmluZEludGVyZXN0KGUpe2xldCB0PXRoaXMuY29tcGFyaXNvbkZ1bmMoZSk7cmV0dXJuIHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmdldCh0KT8/bnVsbH1kZXN0cm95KCl7bGV0IGU9dGhpcy5pbnRlcmVzdE9iamVjdE1hcC5nZXRBcnJheSgpO2ZvcihsZXQgdCBvZiBlKXQuZGVzdHJveSgpO3RoaXMuaW50ZXJlc3RPYmplY3RNYXAud2lwZSgpLHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmNsZWFyKCksdGhpcy5pbnRlcmVzdE9ic2VydmFibGUuc2lnbmFsQ29tcGxldGUoKX19fSk7dmFyIFNoZSx1bXQ9ZygoKT0+e01jKCk7U2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxpbWl0ZWRBcnJheSIpfWFycmF5PVtdO2FycmF5TGltaXQ7Y29uc3RydWN0b3IoZSl7dGhpcy5hcnJheUxpbWl0PWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmFycmF5Lmxlbmd0aH1hZGRPbmUoZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9YWRkTWFueShlKXtmb3IobGV0IHQgb2YgZSl0aGlzLmFkZE9uZSh0KX1zZXRMaW1pdChlKXt0aGlzLmFycmF5TGltaXQ9ZSx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWdldEF2ZXJhZ2UoKXtpZih0aGlzLmFycmF5Lmxlbmd0aD09PTApcmV0dXJuIDA7aWYodHlwZW9mIHRoaXMuYXJyYXlbMF09PSJudW1iZXIiKXtsZXQgZT0wO2ZvcihsZXQgdCBvZiB0aGlzLmFycmF5KWU9ZSt0O3JldHVybiBlL3RoaXMuYXJyYXkubGVuZ3RofWVsc2UgcmV0dXJuIG51bGx9cmVtb3ZlKGUpe2xldCB0PXRoaXMuYXJyYXkuaW5kZXhPZihlKTtyZXR1cm4gdCE9PS0xPyh0aGlzLmFycmF5LnNwbGljZSh0LDEpLCEwKTohMX1jbGVhcigpe3RoaXMuYXJyYXkubGVuZ3RoPTB9Z2V0QXJyYXkoKXtyZXR1cm5bLi4udGhpcy5hcnJheV19W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5hcnJheVtTeW1ib2wuaXRlcmF0b3JdKCl9fX0pO3ZhciBfaGUscG10PWcoKCk9PntNYygpO0t5KCk7X2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxvb3BUcmFja2VyIil9cmVmZXJlbmNlT2JqZWN0TWFwPW5ldyBiMDtjb25zdHJ1Y3Rvcigpe31jaGVja0FuZFRyYWNrKGUpe3JldHVybiB0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5jaGVja0Zvck9iamVjdChlKT8hMToodGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuYWRkKGUpLCEwKX1yZXNldCgpe3RoaXMucmVmZXJlbmNlT2JqZWN0TWFwLndpcGUoKX1kZXN0cm95KCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuZGVzdHJveSgpfX19KTt2YXIgWnksTWhlPWcoKCk9PntNYygpO1p5PWNsYXNze3N0YXRpY3tpKHRoaXMsIlN0cmluZ21hcCIpfV9zdHJpbmdBcnJheT1bXTtfdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W107Y29uc3RydWN0b3IoKXt9YWRkU3RyaW5nKGUpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2goZSksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkoZSl7Zm9yKGxldCB0IG9mIGUpdGhpcy5hZGRTdHJpbmcodCl9cmVtb3ZlU3RyaW5nKGUpe3RoaXMuX3N0cmluZ0FycmF5PXRoaXMuX3N0cmluZ0FycmF5LmZpbHRlcih0PT50IT09ZSksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9d2lwZSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMubm90aWZ5VHJpZ2dlcigpfWNoZWNrU3RyaW5nKGUpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5pbmRleE9mKGUpIT09LTF9Y2hlY2tNaW5pbWF0Y2goZSl7bGV0IHQ9bmV3IHl5LlNtYXJ0TWF0Y2goZSksYT0hMTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5tYXRjaChyKSYmKGE9ITApO3JldHVybiBhfWNoZWNrSXNFbXB0eSgpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5sZW5ndGg9PT0wfWdldFN0cmluZ0FycmF5KCl7bGV0IGU9W107Zm9yKGxldCB0IG9mIHRoaXMuX3N0cmluZ0FycmF5KWUucHVzaCh0KTtyZXR1cm4gZX1yZWdpc3RlclVudGlsVHJ1ZShlLHQpe2xldCBhPW10LmRlZmVyKCk7cmV0dXJuIHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LnB1c2goKCk9PntsZXQgcj1lKHRoaXMuZ2V0U3RyaW5nQXJyYXkoKSk7cmV0dXJuIHI9PT0hMCYmKHQmJnQoKSxhLnJlc29sdmUoKSkscn0pLHRoaXMubm90aWZ5VHJpZ2dlcigpLGEucHJvbWlzZX1ub3RpZnlUcmlnZ2VyKCl7bGV0IGU9dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkuZmlsdGVyKHQ9PiF0KCkpO3RoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PWV9ZGVzdHJveSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PVtdfX19KTt2YXIgWHksemhlPWcoKCk9PntNYygpO1h5PWNsYXNze3N0YXRpY3tpKHRoaXMsIlRpbWVkQWdncmVndG9yIil9b3B0aW9ucztzdG9yYWdlQXJyYXk9W107aXNTdG9wcGVkPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz1lfWFnZ3JlZ2F0aW9uVGltZXI7Y2hlY2tBZ2dyZWdhdGlvblN0YXR1cygpe2lmKHRoaXMuaXNTdG9wcGVkKXJldHVybjtsZXQgZT1pKCgpPT57dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW5ldyBpMy5UaW1lcih0aGlzLm9wdGlvbnMuYWdncmVnYXRpb25JbnRlcnZhbEluTWlsbGlzKSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9PntpZih0aGlzLmlzU3RvcHBlZCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufWxldCB0PXRoaXMuc3RvcmFnZUFycmF5O2lmKHQubGVuZ3RoPT09MCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufXRoaXMuc3RvcmFnZUFycmF5PVtdLGUoKSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbih0KX0pLHRoaXMuYWdncmVnYXRpb25UaW1lci5zdGFydCgpfSwiYWRkQWdncmVnYXRpb25UaW1lciIpO3RoaXMuYWdncmVnYXRpb25UaW1lcnx8ZSgpfWFkZChlKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuc3RvcmFnZUFycmF5LnB1c2goZSksdGhpcy5jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCkpfXN0b3AoZT0hMSl7aWYodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5hZ2dyZWdhdGlvblRpbWVyJiYodGhpcy5hZ2dyZWdhdGlvblRpbWVyLnJlc2V0KCksdGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGwpLGUmJnRoaXMuc3RvcmFnZUFycmF5Lmxlbmd0aD4wKXtsZXQgdD10aGlzLnN0b3JhZ2VBcnJheTt0aGlzLnN0b3JhZ2VBcnJheT1bXSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbih0KX1lbHNlIHRoaXMuc3RvcmFnZUFycmF5PVtdfXJlc3RhcnQoKXt0aGlzLmlzU3RvcHBlZD0hMX19fSk7dmFyIENoZSxobXQ9ZygoKT0+e01jKCk7Q2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRyZWUiKX1zeW1ib2xUcmVlO2NvbnN0cnVjdG9yKCl7dGhpcy5zeW1ib2xUcmVlPW5ldyBJYWUuZGVmYXVsdH1pbml0aWFsaXplKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5pdGlhbGl6ZShlKX1oYXNDaGlsZHJlbihlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmhhc0NoaWxkcmVuKGUpfWZpcnN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5maXJzdENoaWxkKGUpfWxhc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RDaGlsZChlKX1wcmV2aW91c1NpYmxpbmcoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmcoZSl9bmV4dFNpYmxpbmcoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZyhlKX1wYXJlbnQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wYXJlbnQoZSl9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKX1wcmVjZWRpbmcoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZWNlZGluZyhlLHQpfWZvbGxvd2luZyhlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZm9sbG93aW5nKGUsdCl9Y2hpbGRyZW5Ub0FycmF5KGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlblRvQXJyYXkoZSx0KX1hbmNlc3RvcnNUb0FycmF5KGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNUb0FycmF5KGUsdCl9dHJlZVRvQXJyYXkoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVUb0FycmF5KGUsdCl9Y2hpbGRyZW5JdGVyYXRvcihlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5JdGVyYXRvcihlLHQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZ3NJdGVyYXRvcihlKX1uZXh0U2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpfWFuY2VzdG9yc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYW5jZXN0b3JzSXRlcmF0b3IoZSl9dHJlZUl0ZXJhdG9yKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlSXRlcmF0b3IoZSx0KX1pbmRleChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluZGV4KGUpfWNoaWxkcmVuQ291bnQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlbkNvdW50KGUpfWNvbXBhcmVUcmVlUG9zaXRpb24oZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNvbXBhcmVUcmVlUG9zaXRpb24oZSx0KX1yZW1vdmUoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5yZW1vdmUoZSl9aW5zZXJ0QmVmb3JlKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRCZWZvcmUoZSx0KX1pbnNlcnRBZnRlcihlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5zZXJ0QWZ0ZXIoZSx0KX1wcmVwZW5kQ2hpbGQoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXBlbmRDaGlsZChlLHQpfWFwcGVuZENoaWxkKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hcHBlbmRDaGlsZChlLHQpfXRvSnNvbldpdGhIaWVyYWNoeShlKXtsZXQgdD1pKGE9PntsZXQgcj1bXTtpZih0aGlzLmhhc0NoaWxkcmVuKGEpKXtsZXQgbj10aGlzLmNoaWxkcmVuVG9BcnJheShhLHt9KTtmb3IobGV0IG8gb2YgbilyLnB1c2godChvKSl9cmV0dXJue2RhdGE6YSxjaGlsZHJlbjpyfX0sImJ1aWxkTm9kZSIpO3JldHVybiB0KGUpfWZyb21Kc29uV2l0aEhpZXJhY2h5KGUsdCl7bGV0IGE9aSgocixuKT0+e2xldCBvPXQ/dChyLmRhdGEpOnIuZGF0YTt0aGlzLmluaXRpYWxpemUobyksbiYmdGhpcy5hcHBlbmRDaGlsZChuLG8pO2ZvcihsZXQgbCBvZiByLmNoaWxkcmVuKWEobCxvKTtyZXR1cm4gb30sImJ1aWxkVHJlZSIpO3JldHVybiBhKGUpfX19KTt2YXIgRnM9e307eXQoRnMse0FzeW5jRXhlY3V0aW9uU3RhY2s6KCk9PnZoZSxCYWNrcHJlc3N1cmVkQXJyYXk6KCk9PnhoZSxGYXN0TWFwOigpPT5yMyxJbnRlcmVzdDooKT0+WXksSW50ZXJlc3RNYXA6KCk9PmtoZSxMaW1pdGVkQXJyYXk6KCk9PlNoZSxMb29wVHJhY2tlcjooKT0+X2hlLE9iamVjdE1hcDooKT0+YjAsU3RyaW5nbWFwOigpPT5aeSxUaW1lZEFnZ3JlZ2F0b3I6KCk9Plh5LFRpbWVkQWdncmVndG9yOigpPT5YeSxUcmVlOigpPT5DaGUsdW5pOigpPT5kbXR9KTt2YXIgdTk9ZygoKT0+e2xtdCgpO2NtdCgpO0FhZSgpO3doZSgpO3loZSgpO3VtdCgpO3BtdCgpO0t5KCk7TWhlKCk7emhlKCk7emhlKCk7aG10KCl9KTt2YXIgVHA9e307eXQoVHAse2FyZVVpbnQ4QXJyYXlzRXF1YWw6KCk9PnNQYSxhc3NlcnRVaW50OEFycmF5OigpPT5DcCxhc3NlcnRVaW50OEFycmF5T3JBcnJheUJ1ZmZlcjooKT0+dm10LGJhc2U2NFRvU3RyaW5nOigpPT5jUGEsYmFzZTY0VG9VaW50OEFycmF5OigpPT5rbXQsY29tcGFyZVVpbnQ4QXJyYXlzOigpPT5pUGEsY29uY2F0VWludDhBcnJheXM6KCk9PmFQYSxnZXRVaW50QkU6KCk9PmhQYSxoZXhUb1VpbnQ4QXJyYXk6KCk9PnBQYSxpbmNsdWRlczooKT0+ZlBhLGluZGV4T2Y6KCk9PlNtdCxpc1VpbnQ4QXJyYXk6KCk9PlRoZSxzdHJpbmdUb0Jhc2U2NDooKT0+bFBhLHN0cmluZ1RvVWludDhBcnJheTooKT0+eW10LHRvVWludDhBcnJheTooKT0+dFBhLHVpbnQ4QXJyYXlUb0Jhc2U2NDooKT0+d210LHVpbnQ4QXJyYXlUb0hleDooKT0+dVBhLHVpbnQ4QXJyYXlUb1N0cmluZzooKT0+eG10fSk7ZnVuY3Rpb24gZm10KHMsZSx0KXtyZXR1cm4gcz9zLmNvbnN0cnVjdG9yPT09ZT8hMDpaRWEuY2FsbChzKT09PXQ6ITF9ZnVuY3Rpb24gVGhlKHMpe3JldHVybiBmbXQocyxVaW50OEFycmF5LFhFYSl9ZnVuY3Rpb24gSkVhKHMpe3JldHVybiBmbXQocyxBcnJheUJ1ZmZlcixRRWEpfWZ1bmN0aW9uIGVQYShzKXtyZXR1cm4gVGhlKHMpfHxKRWEocyl9ZnVuY3Rpb24gQ3Aocyl7aWYoIVRoZShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCwgZ290IFxgJHt0eXBlb2Ygc31cYGApfWZ1bmN0aW9uIHZtdChzKXtpZighZVBhKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgVWludDhBcnJheVxgIG9yIFxgQXJyYXlCdWZmZXJcYCwgZ290IFxgJHt0eXBlb2Ygc31cYGApfWZ1bmN0aW9uIHRQYShzKXtpZihzIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIG5ldyBVaW50OEFycmF5KHMpO2lmKEFycmF5QnVmZmVyLmlzVmlldyhzKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocy5idWZmZXIscy5ieXRlT2Zmc2V0LHMuYnl0ZUxlbmd0aCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5zdXBwb3J0ZWQgdmFsdWUsIGdvdCBcYCR7dHlwZW9mIHN9XGAuYCl9ZnVuY3Rpb24gYVBhKHMsZSl7aWYocy5sZW5ndGg9PT0wKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtlPz89cy5yZWR1Y2UoKHIsbik9PnIrbi5sZW5ndGgsMCk7bGV0IHQ9bmV3IFVpbnQ4QXJyYXkoZSksYT0wO2ZvcihsZXQgciBvZiBzKUNwKHIpLHQuc2V0KHIsYSksYSs9ci5sZW5ndGg7cmV0dXJuIHR9ZnVuY3Rpb24gc1BhKHMsZSl7aWYoQ3AocyksQ3AoZSkscz09PWUpcmV0dXJuITA7aWYocy5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrKylpZihzW3RdIT09ZVt0XSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBpUGEocyxlKXtDcChzKSxDcChlKTtsZXQgdD1NYXRoLm1pbihzLmxlbmd0aCxlLmxlbmd0aCk7Zm9yKGxldCBhPTA7YTx0O2ErKyl7bGV0IHI9c1thXS1lW2FdO2lmKHIhPT0wKXJldHVybiBNYXRoLnNpZ24ocil9cmV0dXJuIE1hdGguc2lnbihzLmxlbmd0aC1lLmxlbmd0aCl9ZnVuY3Rpb24geG10KHMsZT0idXRmOCIpe3JldHVybiB2bXQocyksbW10W2VdPz89bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoZSksbW10W2VdLmRlY29kZShzKX1mdW5jdGlvbiBReShzKXtpZih0eXBlb2YgcyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBzdHJpbmdcYCwgZ290IFxgJHt0eXBlb2Ygc31cYGApfWZ1bmN0aW9uIHltdChzKXtyZXR1cm4gUXkocyksclBhLmVuY29kZShzKX1mdW5jdGlvbiBvUGEocyl7cmV0dXJuIHMucmVwbGFjZUFsbCgiKyIsIi0iKS5yZXBsYWNlQWxsKCIvIiwiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWZ1bmN0aW9uIG5QYShzKXtsZXQgZT1zLnJlcGxhY2VBbGwoIi0iLCIrIikucmVwbGFjZUFsbCgiXyIsIi8iKSx0PSg0LWUubGVuZ3RoJTQpJTQ7cmV0dXJuIGUrIj0iLnJlcGVhdCh0KX1mdW5jdGlvbiB3bXQocyx7dXJsU2FmZTplPSExfT17fSl7Q3Aocyk7bGV0IHQ9IiI7Zm9yKGxldCBhPTA7YTxzLmxlbmd0aDthKz1nbXQpe2xldCByPXMuc3ViYXJyYXkoYSxhK2dtdCk7dCs9Z2xvYmFsVGhpcy5idG9hKFN0cmluZy5mcm9tQ29kZVBvaW50LmFwcGx5KHZvaWQgMCxyKSl9cmV0dXJuIGU/b1BhKHQpOnR9ZnVuY3Rpb24ga210KHMpe3JldHVybiBReShzKSxVaW50OEFycmF5LmZyb20oZ2xvYmFsVGhpcy5hdG9iKG5QYShzKSksZT0+ZS5jb2RlUG9pbnRBdCgwKSl9ZnVuY3Rpb24gbFBhKHMse3VybFNhZmU6ZT0hMX09e30pe3JldHVybiBReShzKSx3bXQoeW10KHMpLHt1cmxTYWZlOmV9KX1mdW5jdGlvbiBjUGEocyl7cmV0dXJuIFF5KHMpLHhtdChrbXQocykpfWZ1bmN0aW9uIHVQYShzKXtDcChzKTtsZXQgZT0iIjtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrKyllKz1kUGFbc1t0XV07cmV0dXJuIGV9ZnVuY3Rpb24gcFBhKHMpe2lmKFF5KHMpLHMubGVuZ3RoJTIhPT0wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIZXggc3RyaW5nIGxlbmd0aC4iKTtsZXQgZT1zLmxlbmd0aC8yLHQ9bmV3IFVpbnQ4QXJyYXkoZSk7Zm9yKGxldCBhPTA7YTxlO2ErKyl7bGV0IHI9Ym10W3NbYSoyXV0sbj1ibXRbc1thKjIrMV1dO2lmKHI9PT12b2lkIDB8fG49PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEhleCBjaGFyYWN0ZXIgZW5jb3VudGVyZWQgYXQgcG9zaXRpb24gJHthKjJ9YCk7dFthXT1yPDw0fG59cmV0dXJuIHR9ZnVuY3Rpb24gaFBhKHMpe2xldHtieXRlTGVuZ3RoOmV9PXM7aWYoZT09PTYpcmV0dXJuIHMuZ2V0VWludDE2KDApKjIqKjMyK3MuZ2V0VWludDMyKDIpO2lmKGU9PT01KXJldHVybiBzLmdldFVpbnQ4KDApKjIqKjMyK3MuZ2V0VWludDMyKDEpO2lmKGU9PT00KXJldHVybiBzLmdldFVpbnQzMigwKTtpZihlPT09MylyZXR1cm4gcy5nZXRVaW50OCgwKSoyKioxNitzLmdldFVpbnQxNigxKTtpZihlPT09MilyZXR1cm4gcy5nZXRVaW50MTYoMCk7aWYoZT09PTEpcmV0dXJuIHMuZ2V0VWludDgoMCl9ZnVuY3Rpb24gU210KHMsZSl7bGV0IHQ9cy5sZW5ndGgsYT1lLmxlbmd0aDtpZihhPT09MHx8YT50KXJldHVybi0xO2xldCByPXQtYTtmb3IobGV0IG49MDtuPD1yO24rKyl7bGV0IG89ITA7Zm9yKGxldCBsPTA7bDxhO2wrKylpZihzW24rbF0hPT1lW2xdKXtvPSExO2JyZWFrfWlmKG8pcmV0dXJuIG59cmV0dXJuLTF9ZnVuY3Rpb24gZlBhKHMsZSl7cmV0dXJuIFNtdChzLGUpIT09LTF9dmFyIFpFYSxYRWEsUUVhLG1tdCxyUGEsZ210LGRQYSxibXQsX210PWcoKCk9PntaRWE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxYRWE9IltvYmplY3QgVWludDhBcnJheV0iLFFFYT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iO2koZm10LCJpc1R5cGUiKTtpKFRoZSwiaXNVaW50OEFycmF5Iik7aShKRWEsImlzQXJyYXlCdWZmZXIiKTtpKGVQYSwiaXNVaW50OEFycmF5T3JBcnJheUJ1ZmZlciIpO2koQ3AsImFzc2VydFVpbnQ4QXJyYXkiKTtpKHZtdCwiYXNzZXJ0VWludDhBcnJheU9yQXJyYXlCdWZmZXIiKTtpKHRQYSwidG9VaW50OEFycmF5Iik7aShhUGEsImNvbmNhdFVpbnQ4QXJyYXlzIik7aShzUGEsImFyZVVpbnQ4QXJyYXlzRXF1YWwiKTtpKGlQYSwiY29tcGFyZVVpbnQ4QXJyYXlzIik7bW10PXt1dGY4Om5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKCJ1dGY4Iil9O2koeG10LCJ1aW50OEFycmF5VG9TdHJpbmciKTtpKFF5LCJhc3NlcnRTdHJpbmciKTtyUGE9bmV3IGdsb2JhbFRoaXMuVGV4dEVuY29kZXI7aSh5bXQsInN0cmluZ1RvVWludDhBcnJheSIpO2kob1BhLCJiYXNlNjRUb0Jhc2U2NFVybCIpO2koblBhLCJiYXNlNjRVcmxUb0Jhc2U2NCIpO2dtdD02NTUzNTtpKHdtdCwidWludDhBcnJheVRvQmFzZTY0Iik7aShrbXQsImJhc2U2NFRvVWludDhBcnJheSIpO2kobFBhLCJzdHJpbmdUb0Jhc2U2NCIpO2koY1BhLCJiYXNlNjRUb1N0cmluZyIpO2RQYT1BcnJheS5mcm9tKHtsZW5ndGg6MjU2fSwocyxlKT0+ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKTtpKHVQYSwidWludDhBcnJheVRvSGV4Iik7Ym10PXswOjAsMToxLDI6MiwzOjMsNDo0LDU6NSw2OjYsNzo3LDg6OCw5OjksYToxMCxiOjExLGM6MTIsZDoxMyxlOjE0LGY6MTUsQToxMCxCOjExLEM6MTIsRDoxMyxFOjE0LEY6MTV9O2kocFBhLCJoZXhUb1VpbnQ4QXJyYXkiKTtpKGhQYSwiZ2V0VWludEJFIik7aShTbXQsImluZGV4T2YiKTtpKGZQYSwiaW5jbHVkZXMiKX0pO3ZhciBNbXQ9ZygoKT0+e19tdCgpfSk7dmFyIHkxPXt9O3l0KHkxLHtiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PnZQYSxlbnN1cmVQdXJlVWludDhBcnJheTooKT0+d1BhLGlzQnVmZmVyTGlrZTooKT0+eVBhLGlzVWludDhBcnJheTooKT0+eFBhLHVJbnQ4QXJyYXlFeHRyYXM6KCk9PmdQYSx1SW50OEFycmF5VG9CYXNlNjQ6KCk9PmJQYX0pO2Z1bmN0aW9uIGJQYShzKXtyZXR1cm4gVHAudWludDhBcnJheVRvQmFzZTY0KHMpfWZ1bmN0aW9uIHZQYShzKXtyZXR1cm4gVHAuYmFzZTY0VG9VaW50OEFycmF5KHMpfWZ1bmN0aW9uIHlQYShzKXtyZXR1cm4gcyYmdHlwZW9mIHMuYnl0ZUxlbmd0aD09Im51bWJlciI/ITA6dHlwZW9mIEJ1ZmZlcjwidSImJkJ1ZmZlci5pc0J1ZmZlcj9CdWZmZXIuaXNCdWZmZXIocyk6ITF9ZnVuY3Rpb24gd1BhKHMpe2xldCBlPW5ldyBVaW50OEFycmF5KHMubGVuZ3RoKTtyZXR1cm4gZS5zZXQocyksZX12YXIgZ1BhLHhQYSwkaGU9ZygoKT0+e01tdCgpO2dQYT1UcDtpKGJQYSwidUludDhBcnJheVRvQmFzZTY0Iik7aSh2UGEsImJhc2U2NFRvVWludDhBcnJheSIpO3hQYT1pKHM9PlRwLmlzVWludDhBcnJheShzKSwiaXNVaW50OEFycmF5Iik7aSh5UGEsImlzQnVmZmVyTGlrZSIpO2kod1BhLCJlbnN1cmVQdXJlVWludDhBcnJheSIpfSk7dmFyIEp5PWcoKCk9PntpbygpfSk7dmFyIGV3LE5hZT1nKCgpPT57SnkoKTtldz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJHdWFyZCIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5ndWFyZEZ1bmN0aW9uPWUsdGhpcy5vcHRpb25zPXR9YXN5bmMgZXhlYyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5ndWFyZEZ1bmN0aW9uKGUpfWFzeW5jIGdldEZhaWxlZEhpbnQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuZXhlYyhlKT9udWxsOnRoaXMub3B0aW9ucy5mYWlsZWRIaW50fX19KTt2YXIgdHcsRGhlPWcoKCk9PntKeSgpO3R3PWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje2kodGhpcywiR3VhcmRFcnJvciIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubmFtZT0iR3VhcmRFcnJvciJ9fX0pO3ZhciBhdyxMaGU9ZygoKT0+e0p5KCk7TmFlKCk7YXc9Y2xhc3MgZXh0ZW5kcyBld3tzdGF0aWN7aSh0aGlzLCJHdWFyZFNldCIpfWNvbnN0cnVjdG9yKGU9W10pe3N1cGVyKGFzeW5jIHQ9PnRoaXMuYWxsR3VhcmRzUGFzcyh0KSksdGhpcy5ndWFyZHM9ZX1hc3luYyBleGVjQWxsV2l0aERhdGEoZSx0PXttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pe2xldCBhPVtdO2ZvcihsZXQgbiBvZiB0aGlzLmd1YXJkcyl7bGV0IG89bi5leGVjKGUpO2lmKHQubW9kZT09PSJzZXJpYWwiJiZhd2FpdCBvLGEucHVzaChvKSx0LnN0b3BPbkZhaWwmJiFhd2FpdCBvKXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChhKX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoYSl9YXN5bmMgYWxsR3VhcmRzUGFzcyhlLHQ9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7cmV0dXJuKGF3YWl0IHRoaXMuZXhlY0FsbFdpdGhEYXRhKGUsdCkpLmV2ZXJ5KHI9PnIpfWFzeW5jIGFueUd1YXJkc1Bhc3MoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZXhlY0FsbFdpdGhEYXRhKGUse21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSkpLnNvbWUoYT0+YSl9Z2V0RmFpbGVkSGludChlKXtmb3IobGV0IHQgb2YgdGhpcy5ndWFyZHMpe2xldCBhPXQuZ2V0RmFpbGVkSGludChlKTtpZihhKXJldHVybiBhfX19fSk7dmFyIHYwPXt9O3l0KHYwLHtHdWFyZDooKT0+ZXcsR3VhcmRFcnJvcjooKT0+dHcsR3VhcmRTZXQ6KCk9PmF3LHBhc3NHdWFyZHNPclJlamVjdDooKT0+a1BhfSk7dmFyIGtQYSxFaGU9ZygoKT0+e0p5KCk7TmFlKCk7RGhlKCk7TmFlKCk7TGhlKCk7TGhlKCk7RGhlKCk7a1BhPWkoYXN5bmMocyxlKT0+e2xldCB0PW5ldyBhdyhlKTtpZighYXdhaXQgdC5hbGxHdWFyZHNQYXNzKHMpKXtsZXQgcj1hd2FpdCB0LmdldEZhaWxlZEhpbnQocyk7dGhyb3cgbmV3IHR3KGBHdWFyZHMgZmFpbGVkOgoke3J9CiAgICBgKX19LCJwYXNzR3VhcmRzT3JSZWplY3QiKX0pO3ZhciBmOSxQaGU9ZygoKT0+e2Y5PWNsYXNze3N0YXRpY3tpKHRoaXMsIkludGVyY2VwdG9yTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnB1c2goZSl9YWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLnB1c2goZSl9YWRkRXJyb3JJbnRlcmNlcHRvcihlKXt0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnB1c2goZSl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpe2xldCB0PXRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5pbmRleE9mKGUpO3Q+LTEmJnRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5zcGxpY2UodCwxKX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKGUpe2xldCB0PXRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMuaW5kZXhPZihlKTt0Pi0xJiZ0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLnNwbGljZSh0LDEpfXJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl7bGV0IHQ9dGhpcy5lcnJvckludGVyY2VwdG9ycy5pbmRleE9mKGUpO3Q+LTEmJnRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuc3BsaWNlKHQsMSl9Y2xlYXJBbGwoKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnM9W10sdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycz1bXSx0aGlzLmVycm9ySW50ZXJjZXB0b3JzPVtdfWFzeW5jIHByb2Nlc3NSZXF1ZXN0KGUpe2xldCB0PWU7Zm9yKGxldCBhIG9mIHRoaXMucmVxdWVzdEludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCBhKHQpfWNhdGNoKHIpe3Rocm93IGF3YWl0IHRoaXMucHJvY2Vzc0Vycm9yKHIgaW5zdGFuY2VvZiBFcnJvcj9yOm5ldyBFcnJvcihTdHJpbmcocikpKX1yZXR1cm4gdH1hc3luYyBwcm9jZXNzUmVzcG9uc2UoZSl7bGV0IHQ9ZTtmb3IobGV0IGEgb2YgdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCBhKHQpfWNhdGNoKHIpe3Rocm93IGF3YWl0IHRoaXMucHJvY2Vzc0Vycm9yKHIgaW5zdGFuY2VvZiBFcnJvcj9yOm5ldyBFcnJvcihTdHJpbmcocikpKX1yZXR1cm4gdH1hc3luYyBwcm9jZXNzRXJyb3IoZSl7bGV0IHQ9ZTtmb3IobGV0IGEgb2YgdGhpcy5lcnJvckludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCBhKHQpfWNhdGNoKHIpe3Q9ciBpbnN0YW5jZW9mIEVycm9yP3I6bmV3IEVycm9yKFN0cmluZyhyKSl9cmV0dXJuIHR9Z2V0SW50ZXJjZXB0b3JDb3VudHMoKXtyZXR1cm57cmVxdWVzdDp0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMubGVuZ3RoLHJlc3BvbnNlOnRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMubGVuZ3RoLGVycm9yOnRoaXMuZXJyb3JJbnRlcmNlcHRvcnMubGVuZ3RofX19fSk7dmFyIHptdD1nKCgpPT57aW8oKX0pO3ZhciBDbXQ9ZygoKT0+e30pO3ZhciBJaGUsVG10PWcoKCk9Pnt6bXQoKTtDbXQoKTtJaGU9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRlbnYiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlLHQpe2lmKCF0aGlzLmlzTm9kZSYmIXRoaXMuaXNEZW5vJiYhdGhpcy5pc0J1bil7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBzZXJ2ZXIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dDogJHtlfS4gVGhpcyBkb2VzIG5vdCB0aHJvdy5gKTtyZXR1cm59bGV0IGE9YXdhaXQgbmV3IEZ1bmN0aW9uKGByZXR1cm4gaW1wb3J0KCcke2V9JylgKSgpO3JldHVybiB0JiZhd2FpdCB0KGEpLGF9YXN5bmMgZ2V0U2FmZVdlYk1vZHVsZShlLHQpe2lmKCF0aGlzLmlzQnJvd3Nlcil7Y29uc29sZS5lcnJvcigiWW91IHRyaWVkIHRvIGxvYWQgYSB3ZWIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dCIpO3JldHVybn1pZih0aGlzLmxvYWRlZFNjcmlwdHMuaW5jbHVkZXMoZSkpcmV0dXJuIHQoKTt0aGlzLmxvYWRlZFNjcmlwdHMucHVzaChlKTtsZXQgYT1tdC5kZWZlcigpLHI9Z2xvYmFsVGhpcztpZihyLmltcG9ydFNjcmlwdHMpci5pbXBvcnRTY3JpcHRzKGUpLGEucmVzb2x2ZSgpO2Vsc2V7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7bi5vbmxvYWQ9KCk9PnthLnJlc29sdmUoKX0sbi5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG4pfXJldHVybiBhd2FpdCBhLnByb21pc2UsdCgpfWdldCBydW50aW1lRW52KCl7bGV0IGU9Z2xvYmFsVGhpcztyZXR1cm4gdHlwZW9mIGUuRGVubzwidSImJnR5cGVvZiBlLkRlbm8udmVyc2lvbjwidSI/ImRlbm8iOnR5cGVvZiBlLkJ1bjwidSImJnR5cGVvZiBlLkJ1bi52ZXJzaW9uPCJ1Ij8iYnVuIjp0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/Lm5vZGU8InUiPyJub2RlIjoodHlwZW9mIGdsb2JhbFRoaXMud2luZG93PCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuZG9jdW1lbnQ8InUiLCJicm93c2VyIil9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnJvd3NlciJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IGlzRGVubygpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iZGVubyJ9Z2V0IGlzQnVuKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJidW4ifWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc05vZGU/cHJvY2Vzcy52ZXJzaW9uOiJ1bmRlZmluZWQifWdldCBkZW5vVmVyc2lvbigpe3JldHVybiB0aGlzLmlzRGVubz9nbG9iYWxUaGlzLkRlbm8/LnZlcnNpb24/LmRlbm8/PyJ1bmRlZmluZWQiOiJ1bmRlZmluZWQifWdldCBidW5WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNCdW4/Z2xvYmFsVGhpcy5CdW4/LnZlcnNpb24/PyJ1bmRlZmluZWQiOiJ1bmRlZmluZWQifWFzeW5jIGdldFNhZmVNb2R1bGVGb3IoZSx0LGEpe2xldCByO2lmKEFycmF5LmlzQXJyYXkoZSk/cj1lLmZsYXRNYXAobj0+bj09PSJzZXJ2ZXIiP1sibm9kZSIsImRlbm8iLCJidW4iXTpbbl0pOmU9PT0ic2VydmVyIj9yPVsibm9kZSIsImRlbm8iLCJidW4iXTpyPVtlXSwhci5pbmNsdWRlcyh0aGlzLnJ1bnRpbWVFbnYpKXtjb25zb2xlLndhcm4oYE1vZHVsZSAiJHt0fSIgcmVxdWVzdGVkIGZvciBydW50aW1lKHMpIFske3Iuam9pbigiLCAiKX1dIGJ1dCBjdXJyZW50IHJ1bnRpbWUgaXMgIiR7dGhpcy5ydW50aW1lRW52fSIuIFNraXBwaW5nIGxvYWQuYCk7cmV0dXJufWlmKHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0KTtpZih0aGlzLmlzQnJvd3Nlcil7aWYoIWEpe2NvbnNvbGUuZXJyb3IoYEJyb3dzZXIgbW9kdWxlIGxvYWQgcmVxdWlyZXMgZ2V0RnVuY3Rpb24gcGFyYW1ldGVyIGZvciAiJHt0fSJgKTtyZXR1cm59cmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZSh0LGEpfX1nZXQgaXNDSSgpe3JldHVybiB0aGlzLmlzTm9kZT8hIXByb2Nlc3MuZW52LkNJOiExfWFzeW5jIGlzTWFjQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHRoaXMuaXNEZW5vPyJub2RlOm9zIjoib3MiKSk/LnBsYXRmb3JtKCk9PT0iZGFyd2luIjohMX1hc3luYyBpc1dpbmRvd3NBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUodGhpcy5pc0Rlbm8/Im5vZGU6b3MiOiJvcyIpKT8ucGxhdGZvcm0oKT09PSJ3aW4zMiI6ITF9YXN5bmMgaXNMaW51eEFzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bj8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0aGlzLmlzRGVubz8ibm9kZTpvcyI6Im9zIikpPy5wbGF0Zm9ybSgpPT09ImxpbnV4IjohMX1hc3luYyBwcmludEVudigpe3RoaXMuaXNOb2RlPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBOT0RFIiksY29uc29sZS5sb2coIm5vZGUgdmVyc2lvbiBpcyAiK3RoaXMubm9kZVZlcnNpb24pKTp0aGlzLmlzRGVubz8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gREVOTyIpLGNvbnNvbGUubG9nKCJkZW5vIHZlcnNpb24gaXMgIit0aGlzLmRlbm9WZXJzaW9uKSk6dGhpcy5pc0J1bj8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlVOIiksY29uc29sZS5sb2coImJ1biB2ZXJzaW9uIGlzICIrdGhpcy5idW5WZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciB3MT17fTt5dCh3MSx7U21hcnRlbnY6KCk9PkloZX0pO3ZhciBzdz1nKCgpPT57VG10KCl9KTt2YXIgQWhlLGl3PWcoKCk9PntBaGU9eG4oaXkoKSwxKX0pO3ZhciBSYWU9e307eXQoUmFlLHtjcmVhdGVDcnlwdG9SYW5kb21TdHJpbmc6KCk9PlRQYSxjcmVhdGVSYW5kb21TdHJpbmc6KCk9PkNQYX0pO3ZhciBNUGEselBhLENQYSxUUGEsJG10PWcoKCk9PntpdygpO01QYT1pKChzLGUpPT57aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLmNyeXB0byYmZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtsZXQgdD1lLXMsYT1uZXcgVWludDMyQXJyYXkoMSk7cmV0dXJuIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhKSxzK2FbMF0ldH1lbHNlIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtcykpK3N9LCJnZXRSYW5kb21JbnQiKSx6UGE9aSgocyxlLHQpPT57bGV0IGE9e0E6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixhOiJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsMDoiMDEyMzQ1Njc4OSIsIiEiOiIhQCMkJV4mKigpXystPVtde318OzosLjw+PyIsIioiOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/In0scj1zO2UmJmU+cy5sZW5ndGg/cj1zLnJlcGVhdChNYXRoLmNlaWwoZS9zLmxlbmd0aCkpLnNsaWNlKDAsZSk6ZSYmKHI9cy5zbGljZSgwLGUpKTtsZXQgbj0iIjtmb3IobGV0IG8gb2YgcilpZihhW29dKXtsZXQgbD1hW29dLHA9TVBhKDAsbC5sZW5ndGgpO24rPWxbcF19ZWxzZSBuKz1vO3JldHVybiBufSwiY3VzdG9tUmFuZG9tYXRpYyIpLENQYT1pKChzLGUsdCk9PnpQYShzLGUsdCksImNyZWF0ZVJhbmRvbVN0cmluZyIpLFRQYT1pKCgpPT5BaGUudW5pKCksImNyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZyIpfSk7dmFyIE9hZT17fTt5dChPYWUse21ha2VFbnZPYmplY3Q6KCk9PiRQYX0pO3ZhciAkUGEsRG10PWcoKCk9PntpdygpOyRQYT1pKGZ1bmN0aW9uKHMpe2xldCBlPXt9LHQ9LyguKik9KC4qKS87aWYodHlwZW9mIHM8InUiKWZvcihsZXQgYSBvZiBzKXtsZXQgcj10LmV4ZWMoYSk7ciYmKGVbclsxXV09clsyXSl9cmV0dXJuIGV9LCJtYWtlRW52T2JqZWN0Iil9KTt2YXIgbmQ9e307eXQobmQse2luZGVudDooKT0+TFBhLGluZGVudFdpdGhQcmVmaXg6KCk9PkVQYSxub3JtYWxpemU6KCk9PlBQYX0pO3ZhciBOaGUsUmhlLERQYSxMUGEsRVBhLFBQYSxMbXQ9ZygoKT0+e2l3KCk7TmhlPWkocz0+e2xldCBlPXMuc3BsaXQoYApgKTtyZXR1cm4gRFBhKGUpfSwic3BsaXRTdHJpbmdBdExpbmVCcmVhayIpLFJoZT1pKHM9PntsZXQgZT0iIjtmb3IobGV0IHQgb2YgcyllPWUrdCtgCmA7cmV0dXJuIGV9LCJqb2luU3RyaW5nV2l0aExpbmVCcmVha3MiKSxEUGE9aShzPT57bGV0IGU9L15bXHNdKiQvO3JldHVybiBlLnRlc3Qoc1swXSkmJnMuc2hpZnQoKSxlLnRlc3Qoc1tzLmxlbmd0aC0xXSkmJnMucG9wKCksc30sImNsZWFuU3RyaW5nQXJyYXkiKSxMUGE9aSgocyxlKT0+e2xldCB0PU5oZShzKTtmb3IobGV0IHIgb2YgdClyPSIgIi5yZXBlYXQoZSkrcjtyZXR1cm4gUmhlKHQpfSwiaW5kZW50IiksRVBhPWkoKHMsZSk9PntsZXQgdCxhPU5oZShzKSxyPVtdO2ZvcihsZXQgbiBvZiBhKXIucHVzaChlK24pO3JldHVybiB0PVJoZShyKSx0fSwiaW5kZW50V2l0aFByZWZpeCIpLFBQYT1pKHM9PntsZXQgZSx0PU5oZShzKSxhLHI9L14oXHMqKS8sbj0vXihccyopJC87Zm9yKGxldCBwIG9mIHQpe2xldCBkPXIuZXhlYyhwKSx1PWQ/ZFsxXToiIjsodHlwZW9mIGE+InUifHx1Lmxlbmd0aDxhKSYmIW4udGVzdChwKSYmKGE9dS5sZW5ndGgpfWxldCBvPVtdLGw9YXx8MDtmb3IobGV0IHAgb2YgdClvLnB1c2gocC5zdWJzdHIobCkpO3JldHVybiBlPVJoZShvKSxlfSwibm9ybWFsaXplIil9KTt2YXIgRmFlPXt9O3l0KEZhZSx7cmVwbGFjZUFsbDooKT0+RW10LHN0YW5kYXJkOigpPT5BUGF9KTt2YXIgRW10LElQYSxBUGEsUG10PWcoKCk9PntFbXQ9aSgocyxlLHQpPT5zLnJlcGxhY2UobmV3IFJlZ0V4cChlLCJnIiksdCksInJlcGxhY2VBbGwiKSxJUGE9aShzPT57bGV0IGU9cy5zcGxpdChgCmApLHQ9MS8wO2ZvcihsZXQgYSBvZiBlKWlmKGEudHJpbSgpLmxlbmd0aD4wKXtsZXQgcj1hLm1hdGNoKC9eKFxzKikvKTtyJiYodD1NYXRoLm1pbih0LHJbMV0ubGVuZ3RoKSl9cmV0dXJuIHQ9PT0xLzB8fHQ9PT0wP3M6ZS5tYXAoYT0+YS5sZW5ndGg+PXQ/YS5zbGljZSh0KTphKS5qb2luKGAKYCl9LCJzdHJpcEluZGVudCIpLEFQYT1pKChzLGUpPT57bGV0IHQ9cztyZXR1cm4oIWV8fGUuc3RyaXBJbmRlbnQpJiYodD1JUGEodCkpLCghZXx8ZS5ub3JtYWxpemVOZXdsaW5lKSYmKHQ9dC5yZXBsYWNlKC9cclxuL2csYApgKSksKCFlfHxlLnJlcGxhY2VUYWJzKSYmKHQ9RW10KHQsIgkvIiwiICIpKSwoIWV8fGUuc3RyaXBMZWFkaW5nVHJhaWxpbmdFbXB0eUxpbmVzKSYmKHQ9dC5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKS5yZXBsYWNlKC9ccypbXHJcbl0kL2dtLCIiKSksKCFlfHxlLnN0cmlwQWxsRW1wdHlMaW5lcykmJih0PXQucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikpLHR9LCJzdGFuZGFyZCIpfSk7dmFyIE9oZSxCYWUsbTksRmhlPWcoKCk9PntPaGU9e2VuY29kZTppKHM9PntpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20ocywidXRmOCIpLnRvU3RyaW5nKCJiYXNlNjQiKTtpZih0eXBlb2YgYnRvYTwidSIpe2xldCBlPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzKSx0PUFycmF5LmZyb20oZSxhPT5TdHJpbmcuZnJvbUNoYXJDb2RlKGEpKS5qb2luKCIiKTtyZXR1cm4gYnRvYSh0KX1lbHNle2xldCBlPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIix0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzKSxhPSIiLHI9MDtmb3IoO3I8dC5sZW5ndGg7KXtsZXQgbj10W3IrK10sbz1yPHQubGVuZ3RoP3RbcisrXTowLGw9cjx0Lmxlbmd0aD90W3IrK106MCxwPW48PDE2fG88PDh8bDthKz1lLmNoYXJBdChwPj4xOCY2MyksYSs9ZS5jaGFyQXQocD4+MTImNjMpLGErPXItMjx0Lmxlbmd0aD9lLmNoYXJBdChwPj42JjYzKToiPSIsYSs9ci0xPHQubGVuZ3RoP2UuY2hhckF0KHAmNjMpOiI9In1yZXR1cm4gYX19LCJlbmNvZGUiKSxkZWNvZGU6aShzPT57bGV0IGU9cy5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKS5wYWRFbmQocy5sZW5ndGgrKDQtcy5sZW5ndGglNCklNCwiPSIpO2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbShlLCJiYXNlNjQiKS50b1N0cmluZygidXRmOCIpO2lmKHR5cGVvZiBhdG9iPCJ1Iil7bGV0IHQ9YXRvYihlKSxhPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKylhW3JdPXQuY2hhckNvZGVBdChyKTtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGEpfWVsc2V7bGV0IHQ9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGE9W10scj0wO2Zvcig7cjxlLmxlbmd0aDspe2xldCBuPXQuaW5kZXhPZihlLmNoYXJBdChyKyspKSxvPXQuaW5kZXhPZihlLmNoYXJBdChyKyspKSxsPXQuaW5kZXhPZihlLmNoYXJBdChyKyspKSxwPXQuaW5kZXhPZihlLmNoYXJBdChyKyspKSxkPW48PDE4fG88PDEyfGw8PDZ8cDthLnB1c2goZD4+MTYmMjU1KSxsIT09NjQmJmEucHVzaChkPj44JjI1NSkscCE9PTY0JiZhLnB1c2goZCYyNTUpfXJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoYSkpfX0sImRlY29kZSIpfSxCYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFzZTY0Iil9Y29uc3RydWN0b3IoZSx0KXtzd2l0Y2godCl7Y2FzZSJzdHJpbmciOnRoaXMucmVmU3RyaW5nPWU7YnJlYWs7Y2FzZSJiYXNlNjQiOnRoaXMucmVmU3RyaW5nPW05LmRlY29kZShlKTticmVhaztjYXNlImJhc2U2NHVyaSI6dGhpcy5yZWZTdHJpbmc9bTkuZGVjb2RlKGUpfX1nZXQgc2ltcGxlU3RyaW5nKCl7cmV0dXJuIHRoaXMucmVmU3RyaW5nfWdldCBiYXNlNjRTdHJpbmcoKXtyZXR1cm4gbTkuZW5jb2RlKHRoaXMucmVmU3RyaW5nKX1nZXQgYmFzZTY0VXJpU3RyaW5nKCl7cmV0dXJuIG05LmVuY29kZVVyaSh0aGlzLnJlZlN0cmluZyl9fSxtOT17ZW5jb2RlOmkocz0+T2hlLmVuY29kZShzKSwiZW5jb2RlIiksZW5jb2RlVXJpOmkocz0+T2hlLmVuY29kZShzKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIiksImVuY29kZVVyaSIpLGRlY29kZTppKHM9Pk9oZS5kZWNvZGUocyksImRlY29kZSIpLGlzQmFzZTY0Omkocz0+L14oW0EtWmEtejAtOSsvXXs0fSkqKFtBLVphLXowLTkrL117M309fFtBLVphLXowLTkrL117Mn09PSk/JC8udGVzdChzKSwiaXNCYXNlNjQiKX19KTt2YXIgSGFlPXt9O3l0KEhhZSx7aXNCYXNlNjQ6KCk9PlJQYSxpc1V0Zjg6KCk9Pk5QYX0pO3ZhciBOUGEsUlBhLEltdD1nKCgpPT57aXcoKTtGaGUoKTtOUGE9aShzPT57bGV0IHQ9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHMpLGE9MDtmb3IoO2E8dC5sZW5ndGg7KXtpZih0W2FdPT09OXx8dFthXT09PTEwfHx0W2FdPT09MTN8fDMyPD10W2FdJiZ0W2FdPD0xMjYpe2ErPTE7Y29udGludWV9aWYoMTk0PD10W2FdJiZ0W2FdPD0yMjMmJjEyODw9dFthKzFdJiZ0W2ErMV08PTE5MSl7YSs9Mjtjb250aW51ZX1pZih0W2FdPT09MjI0JiYxNjA8PXRbYSsxXSYmdFthKzFdPD0xOTEmJjEyODw9dFthKzJdJiZ0W2ErMl08PTE5MXx8KDIyNTw9dFthXSYmdFthXTw9MjM2fHx0W2FdPT09MjM4fHx0W2FdPT09MjM5KSYmMTI4PD10W2ErMV0mJnRbYSsxXTw9MTkxJiYxMjg8PXRbYSsyXSYmdFthKzJdPD0xOTF8fHRbYV09PT0yMzcmJjEyODw9dFthKzFdJiZ0W2ErMV08PTE1OSYmMTI4PD10W2ErMl0mJnRbYSsyXTw9MTkxKXthKz0zO2NvbnRpbnVlfWlmKHRbYV09PT0yNDAmJjE0NDw9dFthKzFdJiZ0W2ErMV08PTE5MSYmMTI4PD10W2ErMl0mJnRbYSsyXTw9MTkxJiYxMjg8PXRbYSszXSYmdFthKzNdPD0xOTF8fDI0MTw9dFthXSYmdFthXTw9MjQzJiYxMjg8PXRbYSsxXSYmdFthKzFdPD0xOTEmJjEyODw9dFthKzJdJiZ0W2ErMl08PTE5MSYmMTI4PD10W2ErM10mJnRbYSszXTw9MTkxfHx0W2FdPT09MjQ0JiYxMjg8PXRbYSsxXSYmdFthKzFdPD0xNDMmJjEyODw9dFthKzJdJiZ0W2ErMl08PTE5MSYmMTI4PD10W2ErM10mJnRbYSszXTw9MTkxKXthKz00O2NvbnRpbnVlfXJldHVybiExfXJldHVybiEwfSwiaXNVdGY4IiksUlBhPWkocz0+e2xldCBlPS9bXkEtWjAtOStcLz1dL2ksdD1zLmxlbmd0aDtpZighdHx8dCU0IT09MHx8ZS50ZXN0KHMpKXJldHVybiExO2xldCBhPXMuaW5kZXhPZigiPSIpO3JldHVybiBhPT09LTF8fGE9PT10LTF8fGE9PT10LTImJnNbdC0xXT09PSI9In0sImlzQmFzZTY0Iil9KTt2YXIgcWFlLEFtdD1nKCgpPT57cWFlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkRvbWFpbiIpfWNvbnN0cnVjdG9yKGUpe3RoaXMucHJvdG9jb2w9dGhpcy5fcHJvdG9jb2xSZWdleChlKSx0aGlzLnByb3RvY29sfHwoZT1gaHR0cHM6Ly8ke2V9YCksdGhpcy5ub2RlUGFyc2VkVXJsPW5ldyBVUkwoZSksdGhpcy5wb3J0PXRoaXMubm9kZVBhcnNlZFVybC5wb3J0O2xldCB0PXRoaXMuX2RvbWFpblJlZ2V4KGUucmVwbGFjZSh0aGlzLm5vZGVQYXJzZWRVcmwucGF0aG5hbWUsIiIpKTtbdGhpcy5sZXZlbDEsdGhpcy5sZXZlbDIsdGhpcy5sZXZlbDMsdGhpcy5sZXZlbDQsdGhpcy5sZXZlbDVdPXQsdGhpcy5mdWxsTmFtZT0iIjtmb3IobGV0IGEgb2YgdCl0aGlzLmZ1bGxOYW1lPT09IiI/dGhpcy5mdWxsTmFtZT1hOnRoaXMuZnVsbE5hbWU9YSsiLiIrdGhpcy5mdWxsTmFtZTt0aGlzLnpvbmVOYW1lPVt0aGlzLmxldmVsMix0aGlzLmxldmVsMV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIi4iKSx0aGlzLnRvcExldmVsPXRoaXMubGV2ZWwxLHRoaXMuZG9tYWluTmFtZT10aGlzLmxldmVsMix0aGlzLnN1YkRvbWFpbj10aGlzLmxldmVsM31fZG9tYWluUmVnZXgoZSl7bGV0IGE9LyhbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9JC8uZXhlYyhlKTtpZighYSlyZXR1cm5bXTtsZXQgcj1bLi4uYV0ucmV2ZXJzZSgpO3JldHVybiByLnBvcCgpLHIuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvIT09IiJ9KX1fcHJvdG9jb2xSZWdleChlKXtsZXQgYT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYoYSlyZXR1cm4gYVsxXX1fcG9ydFJlZ2V4KGUpe2xldCBhPS9eKFthLXpBLVowLTldKik6XC9cLy8uZXhlYyhlKTtpZihhKXJldHVybiBhWzFdfX19KTt2YXIgamFlLE9QYSxObXQsUm10PWcoKCk9PntqYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiR2l0UmVwbyIpfWNvbnN0cnVjdG9yKGUsdCl7bGV0IGE9T1BhKGUpO2lmKCFhKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBnaXQgcmVwb3NpdG9yeSBVUkw6ICR7ZX1gKTt0aGlzLmhvc3Q9YVsxXSx0aGlzLnVzZXI9YVsyXSx0aGlzLnJlcG89YVszXSx0aGlzLmFjY2Vzc1Rva2VuPXQsdGhpcy5zc2hVcmw9Tm10KHRoaXMuaG9zdCx0aGlzLnVzZXIsdGhpcy5yZXBvLHRoaXMuYWNjZXNzVG9rZW4sInNzaCIpLHRoaXMuaHR0cHNVcmw9Tm10KHRoaXMuaG9zdCx0aGlzLnVzZXIsdGhpcy5yZXBvLHRoaXMuYWNjZXNzVG9rZW4sImh0dHBzIil9fSxPUGE9aShmdW5jdGlvbihzKXtyZXR1cm4vKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvfFw6KShbYS16QS1aMC05XC1fXC5dKikoPzpcLykoW2EtekEtWjAtOVwtX1wuXSopKD86XC5naXQpLy5leGVjKHMpfSwiZ2l0UmVnZXgiKSxObXQ9aShmdW5jdGlvbihzLGUsdCxhPSIiLHIpe3N3aXRjaChhIT09IiImJihhPWErIkAiKSxyKXtjYXNlImh0dHBzIjpyZXR1cm4iaHR0cHM6Ly8iK2ErcysiLyIrZSsiLyIrdCsiLmdpdCI7Y2FzZSJzc2giOnJldHVybiJnaXRAIitzKyI6IitlKyIvIit0KyIuZ2l0In19LCJnaXRMaW5rIil9KTt2YXIgYXI9e307eXQoYXIse0Jhc2U2NDooKT0+QmFlLERvbWFpbjooKT0+cWFlLEdpdFJlcG86KCk9PmphZSxiYXNlNjQ6KCk9Pm05LGNyZWF0ZTooKT0+UmFlLGRvY2tlcjooKT0+T2FlLGluZGVudDooKT0+bmQsbm9ybWFsaXplOigpPT5GYWUsdHlwZTooKT0+SGFlfSk7dmFyIG8zPWcoKCk9PnskbXQoKTtEbXQoKTtMbXQoKTtQbXQoKTtJbXQoKTtGaGUoKTtBbXQoKTtSbXQoKX0pO3ZhciBCaGU9cGwoKGJHcyxPbXQpPT57InVzZSBzdHJpY3QiO09tdC5leHBvcnRzPWZ1bmN0aW9uKHMsZSl7ZXx8KGU9e30pLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT17Y21wOmV9KTt2YXIgdD10eXBlb2YgZS5jeWNsZXM9PSJib29sZWFuIj9lLmN5Y2xlczohMSxhPWUuY21wJiYoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihsLHApe3ZhciBkPXtrZXk6bCx2YWx1ZTpvW2xdfSx1PXtrZXk6cCx2YWx1ZTpvW3BdfTtyZXR1cm4gbihkLHUpfX19KShlLmNtcCkscj1bXTtyZXR1cm4gaSgoZnVuY3Rpb24gbihvKXtpZihvJiZvLnRvSlNPTiYmdHlwZW9mIG8udG9KU09OPT0iZnVuY3Rpb24iJiYobz1vLnRvSlNPTigpKSxvIT09dm9pZCAwKXtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG8pPyIiK286Im51bGwiO2lmKHR5cGVvZiBvIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7dmFyIGwscDtpZihBcnJheS5pc0FycmF5KG8pKXtmb3IocD0iWyIsbD0wO2w8by5sZW5ndGg7bCsrKWwmJihwKz0iLCIpLHArPW4ob1tsXSl8fCJudWxsIjtyZXR1cm4gcCsiXSJ9aWYobz09PW51bGwpcmV0dXJuIm51bGwiO2lmKHIuaW5kZXhPZihvKSE9PS0xKXtpZih0KXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBkPXIucHVzaChvKS0xLHU9T2JqZWN0LmtleXMobykuc29ydChhJiZhKG8pKTtmb3IocD0iIixsPTA7bDx1Lmxlbmd0aDtsKyspe3ZhciBjPXVbbF0sYj1uKG9bY10pO2ImJihwJiYocCs9IiwiKSxwKz1KU09OLnN0cmluZ2lmeShjKSsiOiIrYil9cmV0dXJuIHIuc3BsaWNlKGQsMSksInsiK3ArIn0ifX0pLCJzdHJpbmdpZnkiKShzKX19KTt2YXIgRm10LFZhZSxIaGU9ZygoKT0+e3N3KCk7bzMoKTtGbXQ9eG4oQmhlKCksMSksVmFlPUZtdC5kZWZhdWx0fSk7ZnVuY3Rpb24gQlBhKHMpe2xldCBlPUJtdCgpO3JldHVybiBlP2UuZnJvbShzKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLnMpKX1mdW5jdGlvbiBIUGEocyl7bGV0IGU9Qm10KCk7aWYoZSl7bGV0IHQ9ZS5mcm9tKHMsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKHMpKS5tYXAodD0+dC5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gamhlKHMsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHMsVWFlLGUpfWZ1bmN0aW9uIFZoZShzKXtyZXR1cm4gSlNPTi5wYXJzZShzLEhtdCl9ZnVuY3Rpb24gcVBhKHMpe3JldHVybiBqbXQocykmJnMudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmcWhlKHMuZGF0YSl9ZnVuY3Rpb24galBhKHMpe3JldHVybiBqbXQocykmJnMudHlwZT09PSJCdWZmZXIiJiYocW10KHMuZGF0YSl8fHFoZShzLmRhdGEpKXx8cyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24gcW10KHMpe3JldHVybiBBcnJheS5pc0FycmF5KHMpfWZ1bmN0aW9uIHFoZShzKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmcifWZ1bmN0aW9uIGptdChzKXtyZXR1cm4gdHlwZW9mIHM9PSJvYmplY3QiJiZzIT09bnVsbH12YXIgQm10LFVhZSxIbXQsVm10PWcoKCk9PntIaGUoKTtCbXQ9aSgoKT0+Z2xvYmFsVGhpcy5CdWZmZXIsImdldE5vZGVCdWZmZXIiKTtpKEJQYSwiYmFzZTY0RW5jb2RlIik7aShIUGEsImJhc2U2NERlY29kZSIpO2koamhlLCJzdHJpbmdpZnkiKTtpKFZoZSwicGFyc2UiKTtVYWU9aSgocyxlKT0+e2lmKGpQYShlKSl7bGV0IHQ7aWYoImRhdGEiaW4gZSYmcW10KGUuZGF0YSkpdD1uZXcgVWludDhBcnJheShlLmRhdGEpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpdD1lO2Vsc2UgcmV0dXJuIGU7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK0JQYSh0KX19cmV0dXJuIGV9LCJyZXBsYWNlciIpLEhtdD1pKChzLGUpPT57aWYocVBhKGUpJiZxaGUoZS5kYXRhKSYmZS5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHQ9ZS5kYXRhLnNsaWNlKDcpO3JldHVybiBIUGEodCl9cmV0dXJuIGV9LCJyZXZpdmVyIik7aShxUGEsImlzRW5jb2RlZEJ1ZmZlciIpO2koalBhLCJpc0J1ZmZlckxpa2UiKTtpKHFtdCwiaXNBcnJheSIpO2kocWhlLCJpc1N0cmluZyIpO2koam10LCJpc09iamVjdCIpfSk7dmFyIGpyPXt9O3l0KGpyLHtTbWFydGpzb246KCk9PldoZSxkZWVwRXF1YWxKc29uTFN0cmluZ3M6KCk9PlhQYSxkZWVwRXF1YWxPYmplY3RzOigpPT5VbXQsZm9sZERlYzooKT0+WlBhLHBhcnNlOigpPT5XYWUscGFyc2VCYXNlNjQ6KCk9PllQYSxwYXJzZUpzb25MOigpPT5VaGUsc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT5XUGEsc3RyaW5naWZ5OigpPT5uMyxzdHJpbmdpZnlCYXNlNjQ6KCk9PktQYSxzdHJpbmdpZnlKc29uTDooKT0+VVBhLHN0cmluZ2lmeVByZXR0eTooKT0+R1BhfSk7dmFyIFdhZSxVaGUsVVBhLFdQYSxuMyxHUGEsS1BhLFlQYSxXaGUsWlBhLFVtdCxYUGEsZzk9ZygoKT0+e0hoZSgpO1ZtdCgpO1dhZT1WaGUsVWhlPWkocz0+cy5zcGxpdChgCmApLnJlZHVjZSgoYSxyKT0+e2xldCBuPXIudHJpbSgpO3JldHVybiBuLmxlbmd0aD4wJiZhLnB1c2goV2FlKG4pKSxhfSxbXSksInBhcnNlSnNvbkwiKSxVUGE9aShzPT5zLm1hcChlPT5uMyhlKSkuam9pbihgCmApLCJzdHJpbmdpZnlKc29uTCIpLFdQYT1pKChzLGUsdD17fSk9PntsZXQgYT1uZXcgV2Vha1NldCxyPWkobD0+e2lmKGw9PT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCIpcmV0dXJuIGw7bGV0IHA9VWFlKCIiLGwpO2lmKHAmJnAudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmdHlwZW9mIHAuZGF0YT09InN0cmluZyIpcmV0dXJuIHA7aWYoYS5oYXMobCkpcmV0dXJuIl9fY3ljbGVfXyI7aWYoYS5hZGQobCksQXJyYXkuaXNBcnJheShsKSlyZXR1cm4gbC5tYXAodT0+cih1KSk7bGV0IGQ9e307Zm9yKGxldCB1IG9mIE9iamVjdC5rZXlzKGwpKXRyeXtkW3VdPXIobFt1XSl9Y2F0Y2h7ZFt1XT0iX191bnNlcmlhbGl6YWJsZV9fIn1yZXR1cm4gZH0sInNhbml0aXplIiksbj1yKHMpLG89ey4uLnQsY3ljbGVzOiEwfTtpZihlJiYhby5jbXApe2xldCBsPW5ldyBNYXA7ZS5mb3JFYWNoKChwLGQpPT5sLnNldChwLGQpKSxvLmNtcD0ocCxkKT0+e2xldCB1PWwuaGFzKHAua2V5KT9sLmdldChwLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGM9bC5oYXMoZC5rZXkpP2wuZ2V0KGQua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIHUhPT1jP3UtYzpwLmtleTxkLmtleT8tMTpwLmtleT5kLmtleT8xOjB9fXJldHVybiBWYWUobixvKX0sInN0YWJsZU9uZVdheVN0cmluZ2lmeSIpLG4zPWkoKHMsZSx0PXt9KT0+e2xldCBhPWpoZShzKTtzPUpTT04ucGFyc2UoYSk7bGV0IHI9ey4uLnR9O2lmKGUmJiFyLmNtcCl7bGV0IG89bmV3IE1hcDtlLmZvckVhY2goKGwscCk9Pm8uc2V0KGwscCkpLHIuY21wPShsLHApPT57bGV0IGQ9by5oYXMobC5rZXkpP28uZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1vLmhhcyhwLmtleSk/by5nZXQocC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gZCE9PXU/ZC11Omwua2V5PHAua2V5Py0xOmwua2V5PnAua2V5PzE6MH19cmV0dXJuIFZhZShzLHIpfSwic3RyaW5naWZ5IiksR1BhPWkocz0+e2xldCBlPW4zKHMpLHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfSwic3RyaW5naWZ5UHJldHR5IiksS1BhPWkoKC4uLnMpPT57bGV0IGU9bjMoLi4ucyk7cmV0dXJuIGFyLmJhc2U2NC5lbmNvZGVVcmkoZSl9LCJzdHJpbmdpZnlCYXNlNjQiKSxZUGE9aShzPT57bGV0IGU9YXIuYmFzZTY0LGE9KGUuZGVjb2RlVXJpfHxlLmRlY29kZSkocyk7cmV0dXJuIFdhZShhKX0sInBhcnNlQmFzZTY0IiksV2hlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiU21hcnRqc29uIil9c3RhdGljIGVuZm9sZEZyb21PYmplY3QoZSl7bGV0IHQ9bmV3IHRoaXMsYT10LnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCByIGluIGUpYS5pbmRleE9mKHIpIT09LTEmJih0W3JdPWVbcl0pO3JldHVybiB0fXN0YXRpYyBlbmZvbGRGcm9tSnNvbihlKXtsZXQgdD1XYWUoZSk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdCh0KX1zYXZlYWJsZVByb3BlcnRpZXM9W107Zm9sZFRvT2JqZWN0KCl7bGV0IGU9bmV3IFNldDtyZXR1cm4gZS5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbChlKX1mb2xkVG9PYmplY3RJbnRlcm5hbChlKXtsZXQgdD17fSxhPWkobj0+e2lmKG4gaW5zdGFuY2VvZiBzKXtpZihlLmhhcyhuKSl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIGRldGVjdGVkIik7cmV0dXJuIGUuYWRkKG4pLG4uZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9cmV0dXJuIEFycmF5LmlzQXJyYXkobik/bi5tYXAobz0+YShvKSk6c3RydWN0dXJlZENsb25lKG4pfSwiZm9sZFZhbHVlIikscj10aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBuIG9mIHIpe2xldCBvPXRoaXNbbl07dFtuXT1hKG8pfXJldHVybiB0fWZvbGRUb0pzb24oKXtsZXQgZT10aGlzLmZvbGRUb09iamVjdCgpO3JldHVybiBuMyhlKX19LFpQYT1pKCgpPT4ocyxlKT0+e2xldCB0PVN0cmluZyhlLm5hbWUpO2UuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24oKXt0aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8KHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzPVtdKSx0aGlzLnNhdmVhYmxlUHJvcGVydGllcy5pbmNsdWRlcyh0KXx8dGhpcy5zYXZlYWJsZVByb3BlcnRpZXMucHVzaCh0KX0pfSwiZm9sZERlYyIpLFVtdD1pKChzLGUpPT57bGV0IHQ9bjMocyksYT1uMyhlKTtyZXR1cm4gdD09PWF9LCJkZWVwRXF1YWxPYmplY3RzIiksWFBhPWkoKHMsZSk9PntsZXQgdD1VaGUocyksYT1VaGUoZSk7cmV0dXJuIFVtdCh0LGEpfSwiZGVlcEVxdWFsSnNvbkxTdHJpbmdzIil9KTt2YXIgb3c9e307eXQob3cse2RlbGV0ZURCOigpPT5lNnQsb3BlbkRCOigpPT5KbXQsdW53cmFwOigpPT5ydyx3cmFwOigpPT5sZH0pO2Z1bmN0aW9uIFFQYSgpe3JldHVybiBXbXR8fChXbXQ9W0lEQkRhdGFiYXNlLElEQk9iamVjdFN0b3JlLElEQkluZGV4LElEQkN1cnNvcixJREJUcmFuc2FjdGlvbl0pfWZ1bmN0aW9uIEpQYSgpe3JldHVybiBHbXR8fChHbXQ9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSl9ZnVuY3Rpb24gZUlhKHMpe2xldCBlPW5ldyBQcm9taXNlKCh0LGEpPT57bGV0IHI9aSgoKT0+e3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsbikscy5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbyl9LCJ1bmxpc3RlbiIpLG49aSgoKT0+e3QobGQocy5yZXN1bHQpKSxyKCl9LCJzdWNjZXNzIiksbz1pKCgpPT57YShzLmVycm9yKSxyKCl9LCJlcnJvciIpO3MuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsbikscy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbyl9KTtyZXR1cm4gR2FlLnNldChlLHMpLGV9ZnVuY3Rpb24gdElhKHMpe2lmKEtoZS5oYXMocykpcmV0dXJuO2xldCBlPW5ldyBQcm9taXNlKCh0LGEpPT57bGV0IHI9aSgoKT0+e3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG4pLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSwidW5saXN0ZW4iKSxuPWkoKCk9Pnt0KCkscigpfSwiY29tcGxldGUiKSxvPWkoKCk9PnthKHMuZXJyb3J8fG5ldyBET01FeGNlcHRpb24oIkFib3J0RXJyb3IiLCJBYm9ydEVycm9yIikpLHIoKX0sImVycm9yIik7cy5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsbikscy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbykscy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9KTtLaGUuc2V0KHMsZSl9ZnVuY3Rpb24gS210KHMpe1poZT1zKFpoZSl9ZnVuY3Rpb24gYUlhKHMpe3JldHVybiBKUGEoKS5pbmNsdWRlcyhzKT9mdW5jdGlvbiguLi5lKXtyZXR1cm4gcy5hcHBseShydyh0aGlzKSxlKSxsZCh0aGlzLnJlcXVlc3QpfTpmdW5jdGlvbiguLi5lKXtyZXR1cm4gbGQocy5hcHBseShydyh0aGlzKSxlKSl9fWZ1bmN0aW9uIHNJYShzKXtyZXR1cm4gdHlwZW9mIHM9PSJmdW5jdGlvbiI/YUlhKHMpOihzIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJnRJYShzKSxHaGUocyxRUGEoKSk/bmV3IFByb3h5KHMsWmhlKTpzKX1mdW5jdGlvbiBsZChzKXtpZihzIGluc3RhbmNlb2YgSURCUmVxdWVzdClyZXR1cm4gZUlhKHMpO2lmKFloZS5oYXMocykpcmV0dXJuIFloZS5nZXQocyk7bGV0IGU9c0lhKHMpO3JldHVybiBlIT09cyYmKFloZS5zZXQocyxlKSxHYWUuc2V0KGUscykpLGV9ZnVuY3Rpb24gSm10KHMsZSx7YmxvY2tlZDp0LHVwZ3JhZGU6YSxibG9ja2luZzpyLHRlcm1pbmF0ZWQ6bn09e30pe2xldCBvPWluZGV4ZWREQi5vcGVuKHMsZSksbD1sZChvKTtyZXR1cm4gYSYmby5hZGRFdmVudExpc3RlbmVyKCJ1cGdyYWRlbmVlZGVkIixwPT57YShsZChvLnJlc3VsdCkscC5vbGRWZXJzaW9uLHAubmV3VmVyc2lvbixsZChvLnRyYW5zYWN0aW9uKSxwKX0pLHQmJm8uYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIscD0+dChwLm9sZFZlcnNpb24scC5uZXdWZXJzaW9uLHApKSxsLnRoZW4ocD0+e24mJnAuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT5uKCkpLHImJnAuYWRkRXZlbnRMaXN0ZW5lcigidmVyc2lvbmNoYW5nZSIsZD0+cihkLm9sZFZlcnNpb24sZC5uZXdWZXJzaW9uLGQpKX0pLmNhdGNoKCgpPT57fSksbH1mdW5jdGlvbiBlNnQocyx7YmxvY2tlZDplfT17fSl7bGV0IHQ9aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKHMpO3JldHVybiBlJiZ0LmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLGE9PmUoYS5vbGRWZXJzaW9uLGEpKSxsZCh0KS50aGVuKCgpPT57fSl9ZnVuY3Rpb24gWW10KHMsZSl7aWYoIShzIGluc3RhbmNlb2YgSURCRGF0YWJhc2UmJiEoZSBpbiBzKSYmdHlwZW9mIGU9PSJzdHJpbmciKSlyZXR1cm47aWYoWGhlLmdldChlKSlyZXR1cm4gWGhlLmdldChlKTtsZXQgdD1lLnJlcGxhY2UoL0Zyb21JbmRleCQvLCIiKSxhPWUhPT10LHI9cklhLmluY2x1ZGVzKHQpO2lmKCEodCBpbihhP0lEQkluZGV4OklEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpfHwhKHJ8fGlJYS5pbmNsdWRlcyh0KSkpcmV0dXJuO2xldCBuPWkoYXN5bmMgZnVuY3Rpb24obywuLi5sKXtsZXQgcD10aGlzLnRyYW5zYWN0aW9uKG8scj8icmVhZHdyaXRlIjoicmVhZG9ubHkiKSxkPXAuc3RvcmU7cmV0dXJuIGEmJihkPWQuaW5kZXgobC5zaGlmdCgpKSksKGF3YWl0IFByb21pc2UuYWxsKFtkW3RdKC4uLmwpLHImJnAuZG9uZV0pKVswXX0sIm1ldGhvZCIpO3JldHVybiBYaGUuc2V0KGUsbiksbn1hc3luYyBmdW5jdGlvbipsSWEoLi4ucyl7bGV0IGU9dGhpcztpZihlIGluc3RhbmNlb2YgSURCQ3Vyc29yfHwoZT1hd2FpdCBlLm9wZW5DdXJzb3IoLi4ucykpLCFlKXJldHVybjtlPWU7bGV0IHQ9bmV3IFByb3h5KGUsbklhKTtmb3IoWG10LnNldCh0LGUpLEdhZS5zZXQodCxydyhlKSk7ZTspeWllbGQgdCxlPWF3YWl0KFFoZS5nZXQodCl8fGUuY29udGludWUoKSksUWhlLmRlbGV0ZSh0KX1mdW5jdGlvbiBRbXQocyxlKXtyZXR1cm4gZT09PVN5bWJvbC5hc3luY0l0ZXJhdG9yJiZHaGUocyxbSURCSW5kZXgsSURCT2JqZWN0U3RvcmUsSURCQ3Vyc29yXSl8fGU9PT0iaXRlcmF0ZSImJkdoZShzLFtJREJJbmRleCxJREJPYmplY3RTdG9yZV0pfXZhciBHaGUsV210LEdtdCxLaGUsWWhlLEdhZSxaaGUscncsaUlhLHJJYSxYaGUsb0lhLFptdCxRaGUsWG10LG5JYSx0NnQ9ZygoKT0+e0doZT1pKChzLGUpPT5lLnNvbWUodD0+cyBpbnN0YW5jZW9mIHQpLCJpbnN0YW5jZU9mQW55Iik7aShRUGEsImdldElkYlByb3h5YWJsZVR5cGVzIik7aShKUGEsImdldEN1cnNvckFkdmFuY2VNZXRob2RzIik7S2hlPW5ldyBXZWFrTWFwLFloZT1uZXcgV2Vha01hcCxHYWU9bmV3IFdlYWtNYXA7aShlSWEsInByb21pc2lmeVJlcXVlc3QiKTtpKHRJYSwiY2FjaGVEb25lUHJvbWlzZUZvclRyYW5zYWN0aW9uIik7WmhlPXtnZXQocyxlLHQpe2lmKHMgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbil7aWYoZT09PSJkb25lIilyZXR1cm4gS2hlLmdldChzKTtpZihlPT09InN0b3JlIilyZXR1cm4gdC5vYmplY3RTdG9yZU5hbWVzWzFdP3ZvaWQgMDp0Lm9iamVjdFN0b3JlKHQub2JqZWN0U3RvcmVOYW1lc1swXSl9cmV0dXJuIGxkKHNbZV0pfSxzZXQocyxlLHQpe3JldHVybiBzW2VdPXQsITB9LGhhcyhzLGUpe3JldHVybiBzIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJihlPT09ImRvbmUifHxlPT09InN0b3JlIik/ITA6ZSBpbiBzfX07aShLbXQsInJlcGxhY2VUcmFwcyIpO2koYUlhLCJ3cmFwRnVuY3Rpb24iKTtpKHNJYSwidHJhbnNmb3JtQ2FjaGFibGVWYWx1ZSIpO2kobGQsIndyYXAiKTtydz1pKHM9PkdhZS5nZXQocyksInVud3JhcCIpO2koSm10LCJvcGVuREIiKTtpKGU2dCwiZGVsZXRlREIiKTtpSWE9WyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSxySWE9WyJwdXQiLCJhZGQiLCJkZWxldGUiLCJjbGVhciJdLFhoZT1uZXcgTWFwO2koWW10LCJnZXRNZXRob2QiKSxLbXQocz0+KHsuLi5zLGdldDppKChlLHQsYSk9PlltdChlLHQpfHxzLmdldChlLHQsYSksImdldCIpLGhhczppKChlLHQpPT4hIVltdChlLHQpfHxzLmhhcyhlLHQpLCJoYXMiKX0pKTtvSWE9WyJjb250aW51ZSIsImNvbnRpbnVlUHJpbWFyeUtleSIsImFkdmFuY2UiXSxabXQ9e30sUWhlPW5ldyBXZWFrTWFwLFhtdD1uZXcgV2Vha01hcCxuSWE9e2dldChzLGUpe2lmKCFvSWEuaW5jbHVkZXMoZSkpcmV0dXJuIHNbZV07bGV0IHQ9Wm10W2VdO3JldHVybiB0fHwodD1abXRbZV09ZnVuY3Rpb24oLi4uYSl7UWhlLnNldCh0aGlzLFhtdC5nZXQodGhpcylbZV0oLi4uYSkpfSksdH19O2kobElhLCJpdGVyYXRlIik7aShRbXQsImlzSXRlcmF0b3JQcm9wIiksS210KHM9Pih7Li4ucyxnZXQoZSx0LGEpe3JldHVybiBRbXQoZSx0KT9sSWE6cy5nZXQoZSx0LGEpfSxoYXMoZSx0KXtyZXR1cm4gUW10KGUsdCl8fHMuaGFzKGUsdCl9fSkpfSk7dmFyIEpoZT1nKCgpPT57dTkoKTtzdygpO2c5KCk7aW8oKTtaMigpO1U0KCk7dDZ0KCl9KTt2YXIgbncsZTRlPWcoKCk9PntKaGUoKTtudz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXZWJTdG9yZSIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuaW5pdENhbGxlZD0hMSx0aGlzLnJlYWR5RGVmZXJyZWQ9bXQuZGVmZXIoKSx0aGlzLm9wdGlvbnM9ZX1hc3luYyBpbml0KCl7aWYodGhpcy5pbml0Q2FsbGVkKXthd2FpdCB0aGlzLnJlYWR5RGVmZXJyZWQucHJvbWlzZTtyZXR1cm59dGhpcy5pbml0Q2FsbGVkPSEwO2xldCBlPW5ldyB3MS5TbWFydGVudjtpZighZS5pc0Jyb3dzZXImJiFnbG9iYWxUaGlzLmluZGV4ZWREQiYmKGNvbnNvbGUubG9nKCJoZXkiKSxjb25zb2xlLmxvZyhnbG9iYWxUaGlzLmluZGV4ZWREQiksYXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIvYXV0byIpLCFnbG9iYWxUaGlzLmluZGV4ZWREQikpe2xldCB0PWF3YWl0IGUuZ2V0U2FmZU5vZGVNb2R1bGUoImZha2UtaW5kZXhlZGRiIik7Z2xvYmFsVGhpcy5pbmRleGVkREI9bmV3IHQuSURCRmFjdG9yeX10aGlzLmRiPWF3YWl0IG93Lm9wZW5EQih0aGlzLm9wdGlvbnMuZGJOYW1lLDEse3VwZ3JhZGU6aSh0PT57dC5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX0sInVwZ3JhZGUiKX0pLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9YXN5bmMgZ2V0KGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLGUpfWFzeW5jIGNoZWNrKGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSwhIWF3YWl0IHRoaXMuZ2V0KGUpfWFzeW5jIHNldChlLHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLnB1dCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQsZSl9YXN5bmMgZGVsZXRlKGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmRlbGV0ZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLGUpfWFzeW5jIGNsZWFyKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuY2xlYXIodGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9YXN5bmMga2V5cygpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldEFsbEtleXModGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9fX0pO3ZhciB0NGUsczZ0PWcoKCk9PntlNGUoKTtKaGUoKTt0NGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRyZXF1ZXN0Q2FjaGUiKX1jb25zdHJ1Y3RvcihlPSJkZWZhdWx0Iil7dGhpcy53ZWJzdG9yZT1uZXcgbncoe2RiTmFtZToidHJTdG9yZSIsc3RvcmVOYW1lOmB0clN0b3JlLSR7ZX1gfSl9YnVpbGRLZXkoZSl7cmV0dXJuIGpyLnN0cmluZ2lmeSh7bWV0aG9kOmUubWV0aG9kLHJlcXVlc3Q6ZS5yZXF1ZXN0fSl9YXN5bmMgc2V0QnlSZXF1ZXN0KGUpe2lmKCFlLnJlc3BvbnNlKXRocm93IG5ldyBFcnJvcigiWW91IGNhbm5vdCBzdG9yZSByZXF1ZXN0cyB3aXRob3V0IGEgcmVzcG9uc2UgcHJlc2VudCIpO2F3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHRoaXMuYnVpbGRLZXkoZSksZSl9YXN5bmMgZ2V0QnlSZXF1ZXN0KGUpe3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0aGlzLmJ1aWxkS2V5KGUpKX19fSk7dmFyIGsxPXt9O3l0KGsxLHtUeXBlZHJlcXVlc3RDYWNoZTooKT0+dDRlLFdlYlN0b3JlOigpPT5ud30pO3ZhciBLYWU9ZygoKT0+e3M2dCgpO2U0ZSgpfSk7dmFyIGx3PWcoKCk9PntkMCgpO3N3KCk7ZzkoKTtpbygpO0thZSgpfSk7dmFyIGI5LFphZT1nKCgpPT57bHcoKTtiOT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYWNoZVN0b3JlIil9Y29uc3RydWN0b3IoZT0id2VicmVxdWVzdC12NCIsdD0iY2FjaGUiKXt0aGlzLndlYnN0b3JlPW5ldyBrMS5XZWJTdG9yZSh7ZGJOYW1lOmUsc3RvcmVOYW1lOnR9KSx0aGlzLmluaXRQcm9taXNlPXRoaXMuaW5pdCgpfWFzeW5jIGluaXQoKXt9Z2VuZXJhdGVDYWNoZUtleShlKXtsZXQgdD1lLnVybCxhPWUubWV0aG9kO3JldHVybiBhPT09IkdFVCI/dDpgJHthfToke3R9YH1hc3luYyBzZXQoZSx0KXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuc2V0KGUsdCl9YXN5bmMgZ2V0KGUpe2F3YWl0IHRoaXMuaW5pdFByb21pc2U7dHJ5e3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldChlKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19YXN5bmMgaGFzKGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2hlY2soZSl9YXN5bmMgZGVsZXRlKGUpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5kZWxldGUoZSl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2xlYXIoKX1yZXNwb25zZUZyb21DYWNoZUVudHJ5KGUpe2xldCB0PW5ldyBIZWFkZXJzKGUuaGVhZGVycyk7cmV0dXJuIG5ldyBSZXNwb25zZShlLnJlc3BvbnNlLHtzdGF0dXM6ZS5zdGF0dXMsc3RhdHVzVGV4dDplLnN0YXR1c1RleHQsaGVhZGVyczp0fSl9YXN5bmMgY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLHQsYSl7bGV0IHI9dC5jbG9uZSgpLG49YXdhaXQgci5hcnJheUJ1ZmZlcigpLG89e307cmV0dXJuIHIuaGVhZGVycy5mb3JFYWNoKChsLHApPT57b1twXT1sfSkse3Jlc3BvbnNlOm4saGVhZGVyczpvLHRpbWVzdGFtcDpEYXRlLm5vdygpLGV0YWc6YT8uZXRhZ3x8ci5oZWFkZXJzLmdldCgiZXRhZyIpfHx2b2lkIDAsbGFzdE1vZGlmaWVkOmE/Lmxhc3RNb2RpZmllZHx8ci5oZWFkZXJzLmdldCgibGFzdC1tb2RpZmllZCIpfHx2b2lkIDAsbWF4QWdlOmE/Lm1heEFnZSx1cmw6ZSxzdGF0dXM6ci5zdGF0dXMsc3RhdHVzVGV4dDpyLnN0YXR1c1RleHR9fWFzeW5jIHBydW5lRXhwaXJlZCgpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLDB9fX0pO2Z1bmN0aW9uIGNJYShzKXtsZXQgZT17bWF4QWdlOjAsaW1tdXRhYmxlOiExLG5vQ2FjaGU6ITEsbm9TdG9yZTohMSxtdXN0UmV2YWxpZGF0ZTohMX07aWYoIXMpcmV0dXJuIGU7bGV0IHQ9cy50b0xvd2VyQ2FzZSgpLnNwbGl0KCIsIikubWFwKGE9PmEudHJpbSgpKTtmb3IobGV0IGEgb2YgdClpZihhPT09Im5vLWNhY2hlIillLm5vQ2FjaGU9ITA7ZWxzZSBpZihhPT09Im5vLXN0b3JlIillLm5vU3RvcmU9ITA7ZWxzZSBpZihhPT09ImltbXV0YWJsZSIpZS5pbW11dGFibGU9ITA7ZWxzZSBpZihhPT09Im11c3QtcmV2YWxpZGF0ZSIpZS5tdXN0UmV2YWxpZGF0ZT0hMDtlbHNlIGlmKGEuc3RhcnRzV2l0aCgibWF4LWFnZT0iKSl7bGV0IHI9cGFyc2VJbnQoYS5zcGxpdCgiPSIpWzFdLDEwKTtpc05hTihyKXx8KGUubWF4QWdlPXIqMWUzKX1yZXR1cm4gZX1mdW5jdGlvbiBkSWEocyl7aWYocyl0cnl7cmV0dXJuIG5ldyBEYXRlKHMpLmdldFRpbWUoKX1jYXRjaHtyZXR1cm59fWZ1bmN0aW9uIGNkKHMpe2xldCBlPXMuZ2V0KCJjYWNoZS1jb250cm9sIiksdD1zLmdldCgiZXhwaXJlcyIpLGE9cy5nZXQoImV0YWciKSxyPXMuZ2V0KCJsYXN0LW1vZGlmaWVkIiksbj1jSWEoZSk7aWYobi5tYXhBZ2U9PT0wJiZ0KXtsZXQgbz1kSWEodCk7byYmKG4ubWF4QWdlPU1hdGgubWF4KDAsby1EYXRlLm5vdygpKSl9cmV0dXJue21heEFnZTpuLm1heEFnZXx8MCxldGFnOmF8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6cnx8dm9pZCAwLGltbXV0YWJsZTpuLmltbXV0YWJsZXx8ITEsbm9DYWNoZTpuLm5vQ2FjaGV8fCExLG5vU3RvcmU6bi5ub1N0b3JlfHwhMSxtdXN0UmV2YWxpZGF0ZTpuLm11c3RSZXZhbGlkYXRlfHwhMX19ZnVuY3Rpb24gY3cocyxlKXtpZihlLm5vU3RvcmUpcmV0dXJuITE7aWYoZS5pbW11dGFibGUpcmV0dXJuITA7bGV0IHQ9RGF0ZS5ub3coKS1zLnRpbWVzdGFtcCxhPXMubWF4QWdlfHxlLm1heEFnZXx8MDtyZXR1cm4gYT09PTA/ITE6dDxhfWZ1bmN0aW9uIGR3KHMpe3JldHVybiBzLm5vQ2FjaGV8fHMubXVzdFJldmFsaWRhdGV9ZnVuY3Rpb24gWGFlKHMpe2xldCBlPXt9O3JldHVybiBzLmV0YWcmJihlWyJpZi1ub25lLW1hdGNoIl09cy5ldGFnKSxzLmxhc3RNb2RpZmllZCYmKGVbImlmLW1vZGlmaWVkLXNpbmNlIl09cy5sYXN0TW9kaWZpZWQpLGV9ZnVuY3Rpb24gUWFlKHMpe2xldCBlPXt9O3JldHVybiBzLmZvckVhY2goKHQsYSk9PntlW2FdPXR9KSxlfWZ1bmN0aW9uIGk2dChzKXtsZXQgZT1uZXcgSGVhZGVycztyZXR1cm4gT2JqZWN0LmVudHJpZXMocykuZm9yRWFjaCgoW3QsYV0pPT57ZS5zZXQodCxhKX0pLGV9dmFyIEphZT1nKCgpPT57aShjSWEsInBhcnNlQ2FjaGVDb250cm9sIik7aShkSWEsInBhcnNlRXhwaXJlcyIpO2koY2QsImV4dHJhY3RDYWNoZU1ldGFkYXRhIik7aShjdywiaXNGcmVzaCIpO2koZHcsInJlcXVpcmVzUmV2YWxpZGF0aW9uIik7aShYYWUsImNyZWF0ZUNvbmRpdGlvbmFsSGVhZGVycyIpO2koUWFlLCJoZWFkZXJzVG9PYmplY3QiKTtpKGk2dCwib2JqZWN0VG9IZWFkZXJzIil9KTtmdW5jdGlvbiByNnQocyl7c3dpdGNoKHMpe2Nhc2UibmV0d29yay1maXJzdCI6cmV0dXJuIG5ldyBlc2U7Y2FzZSJjYWNoZS1maXJzdCI6cmV0dXJuIG5ldyBhNGU7Y2FzZSJzdGFsZS13aGlsZS1yZXZhbGlkYXRlIjpyZXR1cm4gbmV3IHM0ZTtjYXNlIm5ldHdvcmstb25seSI6cmV0dXJuIG5ldyBpNGU7Y2FzZSJjYWNoZS1vbmx5IjpyZXR1cm4gbmV3IHI0ZTtkZWZhdWx0OnJldHVybiBuZXcgZXNlfX12YXIgZXNlLGE0ZSxzNGUsaTRlLHI0ZSxvNnQ9ZygoKT0+e1phZSgpO0phZSgpO2VzZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOZXR3b3JrRmlyc3RTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7dHJ5e2xldCB0PWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpO3JldHVybiB0Lm9rJiZhd2FpdCB0aGlzLmNhY2hlUmVzcG9uc2UoZSx0KSx7cmVzcG9uc2U6dCxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWNhdGNoKHQpe2UubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBOZXR3b3JrIGZhaWxlZCwgdHJ5aW5nIGNhY2hlOiIsdCk7bGV0IGE9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihhKXJldHVybntyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShhKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9O3Rocm93IHR9fWFzeW5jIGNhY2hlUmVzcG9uc2UoZSx0KXtsZXQgYT1jZCh0LmhlYWRlcnMpO2lmKGEubm9TdG9yZSlyZXR1cm47bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCx0LGEpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxyKX19LGE0ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYWNoZUZpcnN0U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCB0PWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYodCl7bGV0IG49Y2QobmV3IEhlYWRlcnModC5oZWFkZXJzKSk7aWYoY3codCxuKSlyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIGhpdCAoZnJlc2gpOiIsZS5yZXF1ZXN0LnVybCkse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07aWYoZHcobikmJih0LmV0YWd8fHQubGFzdE1vZGlmaWVkKSlyZXR1cm4gYXdhaXQgdGhpcy5yZXZhbGlkYXRlKGUsdCl9ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIG1pc3MsIGZldGNoaW5nOiIsZS5yZXF1ZXN0LnVybCk7bGV0IGE9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCkscj1jZChhLmhlYWRlcnMpO2lmKCFyLm5vU3RvcmUpe2xldCBuPWF3YWl0IGUuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUucmVxdWVzdC51cmwsYSxyKTthd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXksbil9cmV0dXJue3Jlc3BvbnNlOmEsZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1hc3luYyByZXZhbGlkYXRlKGUsdCl7bGV0IGE9WGFlKHQpLHI9bmV3IFJlcXVlc3QoZS5yZXF1ZXN0LnVybCx7bWV0aG9kOmUucmVxdWVzdC5tZXRob2QsaGVhZGVyczp7Li4uUWFlKGUucmVxdWVzdC5oZWFkZXJzKSwuLi5hfX0pO3RyeXtsZXQgbj1hd2FpdCBlLmZldGNoRm4ocik7aWYobi5zdGF0dXM9PT0zMDQpcmV0dXJuIGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBDYWNoZSByZXZhbGlkYXRlZCAoMzA0KToiLGUucmVxdWVzdC51cmwpLHQudGltZXN0YW1wPURhdGUubm93KCksYXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHQpLHtyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeSh0KSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITB9O2lmKG4ub2spe2xldCBvPWNkKG4uaGVhZGVycyk7aWYoIW8ubm9TdG9yZSl7bGV0IGw9YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxuLG8pO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxsKX19cmV0dXJue3Jlc3BvbnNlOm4sZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiEwfX1jYXRjaChuKXtyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIFJldmFsaWRhdGlvbiBmYWlsZWQsIHVzaW5nIGNhY2hlOiIsbikse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0sczRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN0YWxlV2hpbGVSZXZhbGlkYXRlU3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCB0PWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYodCl7bGV0IG49ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkodCk7cmV0dXJuIHRoaXMucmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLHQpLmNhdGNoKG89PntlLmxvZ2dpbmcmJmNvbnNvbGUud2FybigiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGZhaWxlZDoiLG8pfSkse3Jlc3BvbnNlOm4sZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfX1sZXQgYT1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxyPWNkKGEuaGVhZGVycyk7aWYoIXIubm9TdG9yZSYmYS5vayl7bGV0IG49YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxhLHIpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6YSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGVJbkJhY2tncm91bmQoZSx0KXtsZXQgYT1jZChuZXcgSGVhZGVycyh0LmhlYWRlcnMpKTtpZighKGN3KHQsYSkmJiFkdyhhKSkpdHJ5e2xldCByPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpO2lmKHIub2spe2xldCBuPWNkKHIuaGVhZGVycyk7aWYoIW4ubm9TdG9yZSl7bGV0IG89YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxyLG4pO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxvKSxlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gY29tcGxldGU6IixlLnJlcXVlc3QudXJsKX19fWNhdGNoKHIpe2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIscil9fX0saTRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5ldHdvcmtPbmx5U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe3JldHVybntyZXNwb25zZTphd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fX0scjRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlT25seVN0cmF0ZWd5Iil9YXN5bmMgZXhlY3V0ZShlKXtsZXQgdD1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKCF0KXRocm93IG5ldyBFcnJvcihgQ2FjaGUgbWlzcyBmb3IgJHtlLnJlcXVlc3QudXJsfSAoY2FjaGUtb25seSBtb2RlKWApO3JldHVybntyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeSh0KSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fX07aShyNnQsImdldFN0cmF0ZWd5SGFuZGxlciIpfSk7dmFyIHY5LG80ZT1nKCgpPT57WmFlKCk7bzZ0KCk7SmFlKCk7djk9Y2xhc3N7c3RhdGlje2kodGhpcywiQ2FjaGVNYW5hZ2VyIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmNhY2hlU3RvcmU9bmV3IGI5KGUsdCl9YXN5bmMgZXhlY3V0ZShlLHQsYSl7bGV0IHI9dGhpcy5kZXRlcm1pbmVTdHJhdGVneShlLHQpO2lmKHI9PT0ibmV0d29yay1vbmx5IilyZXR1cm57cmVzcG9uc2U6YXdhaXQgYShlKSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9O2xldCBuPXRoaXMuZ2VuZXJhdGVDYWNoZUtleShlLHQpLG89cjZ0KHIpLGw9e3JlcXVlc3Q6ZSxjYWNoZUtleTpuLGNhY2hlU3RvcmU6dGhpcy5jYWNoZVN0b3JlLGZldGNoRm46YSxsb2dnaW5nOnQubG9nZ2luZ307cmV0dXJuIGF3YWl0IG8uZXhlY3V0ZShsKX1kZXRlcm1pbmVTdHJhdGVneShlLHQpe3JldHVybiB0LmNhY2hlU3RyYXRlZ3k/dC5jYWNoZVN0cmF0ZWd5OnQuY2FjaGU/dGhpcy5tYXBDYWNoZU1vZGVUb1N0cmF0ZWd5KHQuY2FjaGUpOmUuY2FjaGU/dGhpcy5tYXBDYWNoZU1vZGVUb1N0cmF0ZWd5KGUuY2FjaGUpOiJuZXR3b3JrLWZpcnN0In1tYXBDYWNoZU1vZGVUb1N0cmF0ZWd5KGUpe3N3aXRjaChlKXtjYXNlImRlZmF1bHQiOnJldHVybiJuZXR3b3JrLWZpcnN0IjtjYXNlIm5vLXN0b3JlIjpjYXNlInJlbG9hZCI6cmV0dXJuIm5ldHdvcmstb25seSI7Y2FzZSJuby1jYWNoZSI6cmV0dXJuIm5ldHdvcmstZmlyc3QiO2Nhc2UiZm9yY2UtY2FjaGUiOnJldHVybiJjYWNoZS1maXJzdCI7Y2FzZSJvbmx5LWlmLWNhY2hlZCI6cmV0dXJuImNhY2hlLW9ubHkiO2RlZmF1bHQ6cmV0dXJuIm5ldHdvcmstZmlyc3QifX1nZW5lcmF0ZUNhY2hlS2V5KGUsdCl7cmV0dXJuIHQuY2FjaGVLZXk/dHlwZW9mIHQuY2FjaGVLZXk9PSJmdW5jdGlvbiI/dC5jYWNoZUtleShlKTp0LmNhY2hlS2V5OnRoaXMuY2FjaGVTdG9yZS5nZW5lcmF0ZUNhY2hlS2V5KGUpfWFzeW5jIGNsZWFyKCl7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmNsZWFyKCl9YXN5bmMgZGVsZXRlKGUpe2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5kZWxldGUoZSl9YXN5bmMgaGFzKGUpe3JldHVybiBhd2FpdCB0aGlzLmNhY2hlU3RvcmUuaGFzKGUpfWdldFN0b3JlKCl7cmV0dXJuIHRoaXMuY2FjaGVTdG9yZX19fSk7ZnVuY3Rpb24gbjZ0KHMpe3N3aXRjaChzKXtjYXNlImV4cG9uZW50aWFsIjpyZXR1cm4gbmV3IHRzZTtjYXNlImxpbmVhciI6cmV0dXJuIG5ldyBuNGU7Y2FzZSJjb25zdGFudCI6cmV0dXJuIG5ldyBsNGU7ZGVmYXVsdDpyZXR1cm4gbmV3IHRzZX19ZnVuY3Rpb24gbDZ0KHMsZT0uMSl7bGV0IHQ9cyplKk1hdGgucmFuZG9tKCk7cmV0dXJuIHMrdH12YXIgdHNlLG40ZSxsNGUsYzZ0PWcoKCk9Pnt0c2U9Y2xhc3N7c3RhdGlje2kodGhpcywiRXhwb25lbnRpYWxCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxhKXtsZXQgcj10Kk1hdGgucG93KDIsZS0xKTtyZXR1cm4gTWF0aC5taW4ocixhKX19LG40ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMaW5lYXJCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxhKXtsZXQgcj10KmU7cmV0dXJuIE1hdGgubWluKHIsYSl9fSxsNGU9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29uc3RhbnRCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxhKXtyZXR1cm4gTWF0aC5taW4odCxhKX19O2kobjZ0LCJnZXRCYWNrb2ZmQ2FsY3VsYXRvciIpO2kobDZ0LCJhZGRKaXR0ZXIiKX0pO3ZhciB4OSxjNGU9ZygoKT0+e2x3KCk7YzZ0KCk7eDk9Y2xhc3N7c3RhdGlje2kodGhpcywiUmV0cnlNYW5hZ2VyIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy5vcHRpb25zPXttYXhBdHRlbXB0czplLm1heEF0dGVtcHRzPz8zLGJhY2tvZmY6ZS5iYWNrb2ZmPz8iZXhwb25lbnRpYWwiLGluaXRpYWxEZWxheTplLmluaXRpYWxEZWxheT8/MWUzLG1heERlbGF5OmUubWF4RGVsYXk/PzNlNCxyZXRyeU9uOmUucmV0cnlPbj8/WzQwOCw0MjksNTAwLDUwMiw1MDMsNTA0XSxvblJldHJ5OmUub25SZXRyeT8/KCgpPT57fSl9fWFzeW5jIGV4ZWN1dGUoZSx0KXtsZXQgYSxyO2ZvcihsZXQgbj0xO248PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cztuKyspdHJ5e2xldCBvPWF3YWl0IGUoKTtpZihvIGluc3RhbmNlb2YgUmVzcG9uc2UmJnRoaXMuc2hvdWxkUmV0cnlSZXNwb25zZShvKSl7aWYocj1vLG49PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHMpcmV0dXJuIG87bGV0IGw9dGhpcy5jYWxjdWxhdGVEZWxheShuKTt0aGlzLm9wdGlvbnMub25SZXRyeShuLG5ldyBFcnJvcihgSFRUUCAke28uc3RhdHVzfWApLGwpLGF3YWl0IHRoaXMuZGVsYXkobCk7Y29udGludWV9cmV0dXJuIG99Y2F0Y2gobyl7YT1vIGluc3RhbmNlb2YgRXJyb3I/bzpuZXcgRXJyb3IoU3RyaW5nKG8pKTtsZXQgbD10P3QobyxuKTp0aGlzLnNob3VsZFJldHJ5RXJyb3Iobyk7aWYobj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0c3x8IWwpdGhyb3cgYTtsZXQgcD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4sYSxwKSxhd2FpdCB0aGlzLmRlbGF5KHApfXRocm93IGF8fG5ldyBFcnJvcigiTWF4IHJldHJ5IGF0dGVtcHRzIHJlYWNoZWQiKX1hc3luYyBleGVjdXRlV2l0aEZhbGxiYWNrcyhlLHQsYSl7aWYoZS5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiTm8gVVJMcyBwcm92aWRlZCBmb3IgZmFsbGJhY2sgZXhlY3V0aW9uIik7bGV0IHIsbj1bXTtmb3IobGV0IG8gb2YgZSl0cnl7bGV0IGw9YXdhaXQgdGhpcy5leGVjdXRlKGFzeW5jKCk9PmF3YWl0IGEobyx0KSk7aWYobC5zdGF0dXM8NDAwfHxsLnN0YXR1cz49NDAwJiZsLnN0YXR1czw1MDAmJmwuc3RhdHVzIT09NDA4KXJldHVybiBsO24ucHVzaChvKSxyPW5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtsLnN0YXR1c31gKX1jYXRjaChsKXtuLnB1c2gobykscj1sIGluc3RhbmNlb2YgRXJyb3I/bDpuZXcgRXJyb3IoU3RyaW5nKGwpKX10aHJvdyBuZXcgRXJyb3IoYEFsbCBVUkxzIGZhaWxlZDogJHtuLmpvaW4oIiwgIil9LiBMYXN0IGVycm9yOiAke3I/Lm1lc3NhZ2V8fCJVbmtub3duIGVycm9yIn1gKX1zaG91bGRSZXRyeVJlc3BvbnNlKGUpe2xldCB0PXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUpOkFycmF5LmlzQXJyYXkodCk/dC5pbmNsdWRlcyhlLnN0YXR1cyk6ITF9c2hvdWxkUmV0cnlFcnJvcihlKXtpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yJiZlLm1lc3NhZ2UuaW5jbHVkZXMoImZldGNoIil8fGUubmFtZT09PSJBYm9ydEVycm9yInx8ZS5tZXNzYWdlLmluY2x1ZGVzKCJ0aW1lb3V0IikpcmV0dXJuITA7bGV0IHQ9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Qodm9pZCAwLGUpOiExfWNhbGN1bGF0ZURlbGF5KGUpe2xldCBhPW42dCh0aGlzLm9wdGlvbnMuYmFja29mZikuY2FsY3VsYXRlKGUsdGhpcy5vcHRpb25zLmluaXRpYWxEZWxheSx0aGlzLm9wdGlvbnMubWF4RGVsYXkpO3JldHVybiBsNnQoYSl9YXN5bmMgZGVsYXkoZSl7YXdhaXQgWHQuZGVsYXlGb3IoZSl9fX0pO3ZhciB5OSxkNGU9ZygoKT0+e2x3KCk7eTk9Y2xhc3N7c3RhdGlje2kodGhpcywiUmVxdWVzdERlZHVwbGljYXRvciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5pbkZsaWdodFJlcXVlc3RzPW5ldyBNYXB9Z2VuZXJhdGVLZXkoZSl7bGV0IHQ9ZS51cmwsYT1lLm1ldGhvZDtyZXR1cm4gYT09PSJHRVQifHxhPT09IkhFQUQiP2Ake2F9OiR7dH1gOmAke2F9OiR7dH06JHtEYXRlLm5vdygpfWB9YXN5bmMgZXhlY3V0ZShlLHQpe2xldCBhPXRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5nZXQoZSk7aWYoYSlyZXR1cm57cmVzcG9uc2U6KGF3YWl0IGEucHJvbWlzZSkuY2xvbmUoKSx3YXNEZWR1cGxpY2F0ZWQ6ITB9O2xldCByPW10LmRlZmVyKCk7dGhpcy5pbkZsaWdodFJlcXVlc3RzLnNldChlLHIpO3RyeXtsZXQgbj1hd2FpdCB0KCk7cmV0dXJuIHIucmVzb2x2ZShuKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLHtyZXNwb25zZTpuLHdhc0RlZHVwbGljYXRlZDohMX19Y2F0Y2gobil7dGhyb3cgci5yZWplY3QobiksdGhpcy5pbkZsaWdodFJlcXVlc3RzLmRlbGV0ZShlKSxufX1pc0luRmxpZ2h0KGUpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuaGFzKGUpfWdldEluRmxpZ2h0Q291bnQoKXtyZXR1cm4gdGhpcy5pbkZsaWdodFJlcXVlc3RzLnNpemV9Y2xlYXIoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuY2xlYXIoKX19fSk7ZnVuY3Rpb24gdUlhKHMpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1uZXcgWHQuVGltZW91dChzLG51bGwpO3JldHVybiB0LnByb21pc2UudGhlbigoKT0+e2UuYWJvcnQoKX0pLHtjb250cm9sbGVyOmUsY2xlYW51cDppKCgpPT57dC5jYW5jZWwoKX0sImNsZWFudXAiKX19YXN5bmMgZnVuY3Rpb24gdTRlKHMsZSx0KXtsZXR7Y29udHJvbGxlcjphLGNsZWFudXA6cn09dUlhKHQpO3RyeXtsZXQgbj1hd2FpdCBmZXRjaChzLHsuLi5lLHNpZ25hbDphLnNpZ25hbH0pO3JldHVybiByKCksbn1jYXRjaChuKXt0aHJvdyByKCksbiBpbnN0YW5jZW9mIEVycm9yJiZuLm5hbWU9PT0iQWJvcnRFcnJvciI/bmV3IEVycm9yKGBSZXF1ZXN0IHRpbWVvdXQgYWZ0ZXIgJHt0fW1zOiAke3N9YCk6bn19dmFyIGQ2dD1nKCgpPT57bHcoKTtpKHVJYSwiY3JlYXRlVGltZW91dENvbnRyb2xsZXIiKTtpKHU0ZSwiZmV0Y2hXaXRoVGltZW91dCIpfSk7dmFyIGwzLHA0ZT1nKCgpPT57UGhlKCk7bzRlKCk7YzRlKCk7ZDRlKCk7ZDZ0KCk7bDM9Y2xhc3N7c3RhdGlje2kodGhpcywiV2VicmVxdWVzdENsaWVudCIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMuZGVmYXVsdE9wdGlvbnM9ZSx0aGlzLmludGVyY2VwdG9yTWFuYWdlcj1uZXcgZjksdGhpcy5jYWNoZU1hbmFnZXI9bmV3IHY5LHRoaXMuZGVkdXBsaWNhdG9yPW5ldyB5OX1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVxdWVzdEludGVyY2VwdG9yKGUpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKX1hZGRFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZEVycm9ySW50ZXJjZXB0b3IoZSl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcihlKX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpfWNsZWFySW50ZXJjZXB0b3JzKCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuY2xlYXJBbGwoKX1hc3luYyBjbGVhckNhY2hlKCl7YXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuY2xlYXIoKX1hc3luYyByZXF1ZXN0KGUsdD17fSl7bGV0IGE9ey4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsLi4udH0scjtpZih0eXBlb2YgZT09InN0cmluZyI/cj1uZXcgUmVxdWVzdChlLGEpOnI9ZSxyPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXF1ZXN0KHIpLGEuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0KWZvcihsZXQgbyBvZiBhLmludGVyY2VwdG9ycy5yZXF1ZXN0KXI9YXdhaXQgbyhyKTtpZihhLmRlZHVwbGljYXRlPz8hMSl7bGV0IG89dGhpcy5kZWR1cGxpY2F0b3IuZ2VuZXJhdGVLZXkocik7cmV0dXJuKGF3YWl0IHRoaXMuZGVkdXBsaWNhdG9yLmV4ZWN1dGUobyxhc3luYygpPT5hd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KHIsYSkpKS5yZXNwb25zZX1yZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChyLGEpfWFzeW5jIGV4ZWN1dGVSZXF1ZXN0KGUsdCl7dHJ5e2xldCBhPXR5cGVvZiB0LnJldHJ5PT0ib2JqZWN0Ij90LnJldHJ5OnQucmV0cnk/e306dm9pZCAwLHI9aShhc3luYyBsPT57bGV0IHA9dC50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IHU0ZShsLnVybCx7bWV0aG9kOmwubWV0aG9kLGhlYWRlcnM6bC5oZWFkZXJzLGJvZHk6bC5ib2R5LC4uLnR9LHApfSwiZmV0Y2hGbkZvclJlcXVlc3QiKSxuPWkoYXN5bmMobCxwKT0+e2xldCBkPXQudGltZW91dD8/NmU0O3JldHVybiBhd2FpdCB1NGUobCxwLGQpfSwiZmV0Y2hGbkZvckZhbGxiYWNrcyIpLG87aWYoYSl7bGV0IGw9bmV3IHg5KGEpO2lmKHQuZmFsbGJhY2tVcmxzJiZ0LmZhbGxiYWNrVXJscy5sZW5ndGg+MCl7bGV0IHA9W2UudXJsLC4uLnQuZmFsbGJhY2tVcmxzXTtvPWF3YWl0IGwuZXhlY3V0ZVdpdGhGYWxsYmFja3MocCx7bWV0aG9kOmUubWV0aG9kLGhlYWRlcnM6ZS5oZWFkZXJzLGJvZHk6ZS5ib2R5LC4uLnR9LG4pfWVsc2Ugbz1hd2FpdCBsLmV4ZWN1dGUoYXN5bmMoKT0+KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSx0LHIpKS5yZXNwb25zZSl9ZWxzZSBvPShhd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5leGVjdXRlKGUsdCxyKSkucmVzcG9uc2U7aWYobz1hd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzUmVzcG9uc2UobyksdC5pbnRlcmNlcHRvcnM/LnJlc3BvbnNlKWZvcihsZXQgbCBvZiB0LmludGVyY2VwdG9ycy5yZXNwb25zZSlvPWF3YWl0IGwobyk7cmV0dXJuIG99Y2F0Y2goYSl7dGhyb3cgYXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc0Vycm9yKGEgaW5zdGFuY2VvZiBFcnJvcj9hOm5ldyBFcnJvcihTdHJpbmcoYSkpKX19YXN5bmMgZ2V0SnNvbihlLHQ9e30pe2xldCBhPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi50LG1ldGhvZDoiR0VUIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLnQuaGVhZGVyc3x8e319fSk7aWYoIWEub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7YS5zdGF0dXN9OiAke2Euc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgYS5qc29uKCl9YXN5bmMgcG9zdEpzb24oZSx0LGE9e30pe2xldCByPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi5hLG1ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uYS5oZWFkZXJzfHx7fX0sYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pO2lmKCFyLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke3Iuc3RhdHVzfTogJHtyLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IHIuanNvbigpfWFzeW5jIHB1dEpzb24oZSx0LGE9e30pe2xldCByPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi5hLG1ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5hLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KHQpfSk7aWYoIXIub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7ci5zdGF0dXN9OiAke3Iuc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgci5qc29uKCl9YXN5bmMgZGVsZXRlSnNvbihlLHQ9e30pe2xldCBhPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi50LG1ldGhvZDoiREVMRVRFIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLnQuaGVhZGVyc3x8e319fSk7aWYoIWEub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7YS5zdGF0dXN9OiAke2Euc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgYS5qc29uKCl9fX0pO2FzeW5jIGZ1bmN0aW9uIEZsKHMsZSl7bGV0IHQ9cyBpbnN0YW5jZW9mIFJlcXVlc3Q/cy51cmw6U3RyaW5nKHMpLGE9cyBpbnN0YW5jZW9mIFJlcXVlc3Q/czpuZXcgUmVxdWVzdCh0LGUpO3JldHVybiBhd2FpdCBTMS5yZXF1ZXN0KGEsZSl9dmFyIFMxLHU2dD1nKCgpPT57cDRlKCk7UzE9bmV3IGwzO2koRmwsIndlYnJlcXVlc3QiKSxGbC5nZXRKc29uPWFzeW5jIGZ1bmN0aW9uKHMsZSl7cmV0dXJuIGF3YWl0IFMxLmdldEpzb24ocyxlKX0sRmwucG9zdEpzb249YXN5bmMgZnVuY3Rpb24ocyxlLHQpe3JldHVybiBhd2FpdCBTMS5wb3N0SnNvbihzLGUsdCl9LEZsLnB1dEpzb249YXN5bmMgZnVuY3Rpb24ocyxlLHQpe3JldHVybiBhd2FpdCBTMS5wdXRKc29uKHMsZSx0KX0sRmwuZGVsZXRlSnNvbj1hc3luYyBmdW5jdGlvbihzLGUpe3JldHVybiBhd2FpdCBTMS5kZWxldGVKc29uKHMsZSl9LEZsLmFkZFJlcXVlc3RJbnRlcmNlcHRvcj1mdW5jdGlvbihzKXtTMS5hZGRSZXF1ZXN0SW50ZXJjZXB0b3Iocyl9LEZsLmFkZFJlc3BvbnNlSW50ZXJjZXB0b3I9ZnVuY3Rpb24ocyl7UzEuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcihzKX0sRmwuYWRkRXJyb3JJbnRlcmNlcHRvcj1mdW5jdGlvbihzKXtTMS5hZGRFcnJvckludGVyY2VwdG9yKHMpfSxGbC5jbGVhckludGVyY2VwdG9ycz1mdW5jdGlvbigpe1MxLmNsZWFySW50ZXJjZXB0b3JzKCl9LEZsLmNsZWFyQ2FjaGU9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBTMS5jbGVhckNhY2hlKCl9LEZsLmNyZWF0ZUNsaWVudD1mdW5jdGlvbihzKXtyZXR1cm4gbmV3IGwzKHMpfSxGbC5nZXREZWZhdWx0Q2xpZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFMxfX0pO3ZhciBfMT17fTt5dChfMSx7Q2FjaGVNYW5hZ2VyOigpPT52OSxDYWNoZVN0b3JlOigpPT5iOSxJbnRlcmNlcHRvck1hbmFnZXI6KCk9PmY5LFJlcXVlc3REZWR1cGxpY2F0b3I6KCk9Pnk5LFJldHJ5TWFuYWdlcjooKT0+eDksV2VicmVxdWVzdENsaWVudDooKT0+bDMsY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzOigpPT5YYWUsZXh0cmFjdENhY2hlTWV0YWRhdGE6KCk9PmNkLGhlYWRlcnNUb09iamVjdDooKT0+UWFlLGlzRnJlc2g6KCk9PmN3LG9iamVjdFRvSGVhZGVyczooKT0+aTZ0LHJlcXVpcmVzUmV2YWxpZGF0aW9uOigpPT5kdyx3ZWJyZXF1ZXN0OigpPT5GbH0pO3ZhciBhc2U9ZygoKT0+e3U2dCgpO3A0ZSgpO280ZSgpO1phZSgpO2M0ZSgpO1BoZSgpO2Q0ZSgpO0phZSgpfSk7dmFyICRwLERwPWcoKCk9PntVNCgpOyRwPXhuKGl5KCksMSk7dTkoKTskaGUoKTtkMCgpO0VoZSgpO2lvKCk7YXNlKCl9KTt2YXIgTTEsdzk9ZygoKT0+e0RwKCk7TTE9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRSZXNwb25zZUVycm9yIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmVycm9yVGV4dD1lLHRoaXMuZXJyb3JEYXRhPXR9fX0pO3ZhciBpc2UscDZ0PWcoKCk9Pnt3OSgpO0RwKCk7aXNlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkVG9vbHMiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9jYWxEYXRhPXt9fWFzeW5jIHBhc3NHdWFyZHMoZSx0KXtsZXQgYT1uZXcgdjAuR3VhcmRTZXQoZSk7aWYoIWF3YWl0IGEuYWxsR3VhcmRzUGFzcyh0KSl7bGV0IG49YXdhaXQgYS5nZXRGYWlsZWRIaW50KHQpO3Rocm93IG5ldyBNMShgZ3VhcmQgZmFpbGVkOiAke259YCx7ZmFpbGVkSGludDpufSl9fX19KTt2YXIgaDRlLGY0ZT1nKCgpPT57RHAoKTt3OSgpO3A2dCgpO2g0ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZEhhbmRsZXIiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMubWV0aG9kPWUsdGhpcy5oYW5kbGVyRnVuY3Rpb249dH1hc3luYyBhZGRSZXNwb25zZShlKXtpZihlLm1ldGhvZCE9PXRoaXMubWV0aG9kKXRocm93IG5ldyBFcnJvcigidGhpcyBoYW5kbGVyIGhhcyBiZWVuIGdpdmVuIGEgd3JvbmcgbWV0aG9kIHRvIGFuc3dlciB0by4gUGxlYXNlIHVzZSBhIFR5cGVkUm91dGVyIHRvIGZpbHRlciByZXF1ZXN0cyIpO2xldCB0LGE9bmV3IGlzZTtlLmxvY2FsRGF0YSYmKGEubG9jYWxEYXRhPWUubG9jYWxEYXRhKTtsZXQgcj1hd2FpdCB0aGlzLmhhbmRsZXJGdW5jdGlvbihlLnJlcXVlc3QsYSkuY2F0Y2gobj0+e24gaW5zdGFuY2VvZiBNMT90PW46Y29uc29sZS5sb2cobil9KTtyZXR1cm4gdCYmKGUuZXJyb3I9e3RleHQ6dC5lcnJvclRleHQsZGF0YTp0LmVycm9yRGF0YX0pLHImJihlLnJlc3BvbnNlPXIpLGU/LmNvcnJlbGF0aW9uPy5waGFzZSYmKGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIiksZX19fSk7dmFyIGMzLHV3PWcoKCk9PntEcCgpO3JzZSgpO2Y0ZSgpO200ZSgpO3c5KCk7YzM9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJvdXRlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5ob29rcz17fSx0aGlzLnJvdXRlck1hcD1uZXcgRnMuT2JqZWN0TWFwLHRoaXMuaGFuZGxlck1hcD1uZXcgRnMuT2JqZWN0TWFwLHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zPW5ldyBGcy5PYmplY3RNYXAsdGhpcy5taWRkbGV3YXJlcz1bXSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwPW5ldyBGcy5JbnRlcmVzdE1hcChlPT5lKX1zdGF0aWMgZ2V0IGdsb2JhbEhvb2tzKCl7cmV0dXJuIGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzfHwoZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3M9e30pLGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzfXN0YXRpYyBzZXQgZ2xvYmFsSG9va3MoZSl7Z2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3M9ZX1zdGF0aWMgc2V0R2xvYmFsSG9va3MoZSl7bGV0IHQ9cy5nbG9iYWxIb29rcztzLmdsb2JhbEhvb2tzPXsuLi50LC4uLmV9fXN0YXRpYyBjbGVhckdsb2JhbEhvb2tzKCl7Z2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3M9e319c2V0SG9va3MoZSl7dGhpcy5ob29rcz17Li4udGhpcy5ob29rcywuLi5lfX1jYWxsSG9vayhlLHQpe3RyeXtzLmdsb2JhbEhvb2tzW2VdPy4odCksdGhpcy5ob29rc1tlXT8uKHQpfWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoYFR5cGVkUm91dGVyIGhvb2sgZXJyb3IgKCR7ZX0pOmAsYSl9fWFkZE1pZGRsZXdhcmUoZSl7dGhpcy5taWRkbGV3YXJlcy5wdXNoKGUpfWFkZFR5cGVkSGFuZGxlcihlKXtpZih0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLm1ldGhvZCkpdGhyb3cgbmV3IEVycm9yKGBhIFR5cGVkSGFuZGxlciBmb3IgJHtlLm1ldGhvZH0gYWxyZWR5IGV4aXN0cyEgQ2FuJ3QgYWRkIGFub3RoZXIgb25lLmApO3RoaXMuaGFuZGxlck1hcC5hZGQoZSl9YWRkVHlwZWRSb3V0ZXIoZSl7dGhpcy5yb3V0ZXJNYXAuZmluZFN5bmMoYT0+YT09PWUpfHwodGhpcy5yb3V0ZXJNYXAuYWRkKGUpLGUuYWRkVHlwZWRSb3V0ZXIodGhpcykpfWNoZWNrRm9yVHlwZWRIYW5kbGVyKGUpe3JldHVybiEhdGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSl9Z2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUsdD1bXSl7dC5wdXNoKHRoaXMpO2xldCBhO3JldHVybiBhPXRoaXMuaGFuZGxlck1hcC5maW5kU3luYyhyPT5yLm1ldGhvZD09PWUpLGF8fHRoaXMucm91dGVyTWFwLmdldEFycmF5KCkuZm9yRWFjaChyPT57IWEmJiF0LmluY2x1ZGVzKHIpJiYoYT1yLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLHQpKX0pLGF9Z2V0VHlwZWRIYW5kbGVyQW5kUm91dGVyKGUsdD1bXSl7dC5wdXNoKHRoaXMpO2xldCBhPXRoaXMuaGFuZGxlck1hcC5maW5kU3luYyhyPT5yLm1ldGhvZD09PWUpO2lmKGEpcmV0dXJue2hhbmRsZXI6YSxyb3V0ZXI6dGhpc307Zm9yKGxldCByIG9mIHRoaXMucm91dGVyTWFwLmdldEFycmF5KCkpaWYoIXQuaW5jbHVkZXMocikpe2xldCBuPXIuZ2V0VHlwZWRIYW5kbGVyQW5kUm91dGVyKGUsdCk7aWYobilyZXR1cm4gbn1yZXR1cm4gbnVsbH1zdGF0aWN7dGhpcy5kZWZhdWx0Um91dGVPcHRpb25zPXtsb2NhbFJlcXVlc3Q6ITEsc2tpcEhvb2tzOiExfX1hc3luYyByb3V0ZUFuZEFkZFJlc3BvbnNlKGUsdD17fSl7bGV0IGE9ey4uLnMuZGVmYXVsdFJvdXRlT3B0aW9ucywuLi50fTtpZihlPXoxLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksZS5sb2NhbERhdGE9ZS5sb2NhbERhdGF8fHt9LGUubG9jYWxEYXRhLmZpcnN0VHlwZWRyb3V0ZXI9dGhpcyxlLm1ldGhvZD09PSIjI1ZpcnR1YWxTdHJlYW0jIyIpe2xldCByPWF3YWl0IHRoaXMuaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpO3JldHVybiByLmxvY2FsRGF0YT1udWxsLHJ9aWYoZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlcXVlc3QifHxhLmxvY2FsUmVxdWVzdCl7bGV0IHI9RGF0ZS5ub3coKTthLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6cixwYXlsb2FkOmUucmVxdWVzdH0pO2xldCBuPXRoaXMuZ2V0VHlwZWRIYW5kbGVyQW5kUm91dGVyKGUubWV0aG9kKTtpZighbilyZXR1cm4gY29uc29sZS5sb2coYENhbm5vdCBmaW5kIGhhbmRsZXIgZm9yIG1ldGhvZG5hbWUgJHtlLm1ldGhvZH1gKSxlLmVycm9yPXt0ZXh0OiJUaGVyZSBpcyBubyBhdmFpbGFibGUgbWV0aG9kIGZvciB0aGlzIGNhbGwgb24gdGhlIHNlcnZlciBzaWRlIixkYXRhOnt9fSxlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIsZS5sb2NhbERhdGE9bnVsbCxlPXoxLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1yLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZTtsZXR7aGFuZGxlcjpvLHJvdXRlcjpsfT1uO2lmKGwubWlkZGxld2FyZXMubGVuZ3RoPjApdHJ5e2ZvcihsZXQgcCBvZiBsLm1pZGRsZXdhcmVzKWF3YWl0IHAoZSl9Y2F0Y2gocCl7cmV0dXJuIHAgaW5zdGFuY2VvZiBNMT9lLmVycm9yPXt0ZXh0OnAuZXJyb3JUZXh0LGRhdGE6cC5lcnJvckRhdGF8fHt9fTplLmVycm9yPXt0ZXh0OnAubWVzc2FnZXx8Ik1pZGRsZXdhcmUgZXJyb3IiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9ejEuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlfXJldHVybiBlPWF3YWl0IG8uYWRkUmVzcG9uc2UoZSksZS5sb2NhbERhdGE9bnVsbCxlPXoxLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1yLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZX1lbHNlIHJldHVybiBlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVzcG9uc2UiPyhhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcC5maW5kSW50ZXJlc3QoZS5jb3JyZWxhdGlvbi5pZCk/LmZ1bGxmaWxsSW50ZXJlc3QoZSksbnVsbCk6KGNvbnNvbGUubG9nKCJyZWNlaXZlZCB3ZWlyZGx5IHNoYXBlZCByZXF1ZXN0IiksY29uc29sZS5sb2coZSksbnVsbCl9YXN5bmMgaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpe2xldCB0PWF3YWl0IHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmZpbmQoYXN5bmMgcj0+ci5zdHJlYW1JZD09PWUucmVxdWVzdC5zdHJlYW1JZCk7aWYodCljb25zb2xlLmxvZyhgc3VjY2VzczogZm91bmQgcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKTtlbHNlIHJldHVybiBjb25zb2xlLmxvZyhgbm8gcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gZm91bmQgZm9yIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApLGNvbnNvbGUubG9nKHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmdldEFycmF5KCkpLGU7cmV0dXJuIGF3YWl0IHQuaGFuZGxlU3RyZWFtVHIoZSl9fX0pO3ZhciBoNnQsejEscnNlPWcoKCk9PntEcCgpO3V3KCk7aDZ0PSIjIyMjIyMjIyMjIyMjQ0xPU0lORyBCSVQjIyMjIyMjIyMjIyMjIix6MT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlZpcnR1YWxTdHJlYW0iKX1zdGF0aWMgZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx0LGEscj1bXSl7cmV0dXJuIWV8fHkxLmlzQnVmZmVyTGlrZShlKT9lOmUgaW5zdGFuY2VvZiBzPyghZS5zaWRlJiZ0LnNlbmRNZXRob2QmJihlLnNpZGU9InJlcXVlc3RpbmciLGUuc2VuZE1ldGhvZD10LnNlbmRNZXRob2QpLCFlLnNpZGUmJnQudHlwZWRyb3V0ZXImJihlLnNpZGU9InJlc3BvbmRpbmciLGUudHlwZWRyb3V0ZXI9dC50eXBlZHJvdXRlcix0LnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoZSkpLCFhLnJlc3BvbnNlfHxyLmluY2x1ZGVzKCJyZXNwb25zZSIpPyhlLnN0YXJ0S2VlcEFsaXZlTG9vcCgpLHtfaXNWaXJ0dWFsU3RyZWFtOiEwLHN0cmVhbUlkOmUuc3RyZWFtSWR9KTp7X09CTUlUVEVEX1ZJUlRVQUxfU1RSRUFNOiEwLHJlYXNvbjoicGF0aCBpcyB1bmRlciAucmVxdWVzdDogb2JtaXR0ZWQgZm9yIGRlZHVwbGljYXRpb24gcmVhc29ucyBpbiByZXNwb25zZSBjeWNsZS4ifSk6QXJyYXkuaXNBcnJheShlKT9lLm1hcCgobixvKT0+cy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhuLHQsYXx8ZSxyLmNvbmNhdChTdHJpbmcobykpKSk6ZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Ij9PYmplY3QuZW50cmllcyhlKS5yZWR1Y2UoKG4sW28sbF0pPT57bGV0IHA9ci5jb25jYXQobyk7cmV0dXJuIG5bb109cy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhsLHQsYXx8ZSxwKSxufSx7fSk6ZX1zdGF0aWMgZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGUsdCl7aWYoeTEuaXNCdWZmZXJMaWtlKGUpfHxlIGluc3RhbmNlb2YgYzMpcmV0dXJuIGU7aWYoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYoZSBpbnN0YW5jZW9mIFNldHx8ZSBpbnN0YW5jZW9mIE1hcHx8ZSBpbnN0YW5jZW9mIERhdGV8fGUgaW5zdGFuY2VvZiBSZWdFeHB8fGUgaW5zdGFuY2VvZiBFcnJvcnx8ZSBpbnN0YW5jZW9mIFByb21pc2V8fHR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGU7aWYoZS5faXNWaXJ0dWFsU3RyZWFtKXtsZXQgYT1uZXcgcztyZXR1cm4gYS5zdHJlYW1JZD1lLnN0cmVhbUlkLCFhLnNpZGUmJnQuc2VuZE1ldGhvZCYmKGEuc2lkZT0icmVxdWVzdGluZyIsYS5zZW5kTWV0aG9kPXQuc2VuZE1ldGhvZCksIWEuc2lkZSYmdC50eXBlZHJvdXRlciYmKGEuc2lkZT0icmVzcG9uZGluZyIsYS50eXBlZHJvdXRlcj10LnR5cGVkcm91dGVyLHQudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChhKSksYS5zdGFydEtlZXBBbGl2ZUxvb3AoKSxhfWVsc2UgaWYoQXJyYXkuaXNBcnJheShlKSl7bGV0IGE9W107Zm9yKGxldCByIG9mIGUpYS5wdXNoKHMuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHIsdCkpO3JldHVybiBhfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgoYSxyKT0+KGFbcl09cy5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZVtyXSx0KSxhKSx7fSl9ZWxzZSByZXR1cm4gZX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RyZWFtSWQ9JHAudW5pKCksdGhpcy5rZWVwQWxpdmU9ITAsdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5PW5ldyBGcy5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheT1uZXcgRnMuQmFja3ByZXNzdXJlZEFycmF5KDE2KX1zdGF0aWMgcmVjb25zdGl0dXRlQmluYXJ5RGF0YShlKXtpZihlPT1udWxsfHxlIGluc3RhbmNlb2YgVWludDhBcnJheXx8dHlwZW9mIEJ1ZmZlcjwidSImJkJ1ZmZlci5pc0J1ZmZlcihlKSlyZXR1cm4gZTtpZih0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUudHlwZT09PSJCdWZmZXIiJiZBcnJheS5pc0FycmF5KGUuZGF0YSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuZGF0YSk7bGV0IHQ9T2JqZWN0LmtleXMoZSk7aWYodC5sZW5ndGg+MCYmdC5ldmVyeShhPT4vXlxkKyQvLnRlc3QoYSkpKXtsZXQgYT1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgciBvZiB0KWFbTnVtYmVyKHIpXT1lW3JdO2lmKGEuZXZlcnkocj0+dHlwZW9mIHI9PSJudW1iZXIiKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSl9fXJldHVybiBlfWFzeW5jIHdvcmtPblF1ZXVlKCl7aWYodGhpcy53b3JraW5nRGVmZXJyZWQpcmV0dXJuIHRoaXMud29ya2luZ0RlZmVycmVkLnByb21pc2U7aWYodGhpcy53b3JraW5nRGVmZXJyZWQ9bXQuZGVmZXIoKSx0aGlzLnNpZGU9PT0icmVxdWVzdGluZyIpe2xldCBlPSF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLHQ9ITEsYT0hMSxyPWkoYXN5bmMoKT0+e2xldCBuPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOiRwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pntjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMX0pO24mJm4ucmVzcG9uc2UmJihhPW4ucmVzcG9uc2UuYmFja3ByZXNzdXJlLHQ9bi5yZXNwb25zZS5uZXh0KX0sImdldEZlZWRiYWNrIik7Zm9yKGF3YWl0IHIoKTt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MHx8dDspe2lmKGEpZm9yKDthOyljb25zb2xlLmxvZygid2FpdGluZyBmb3IgZmVlZGJhY2sgYmVjYXVzZSBvZiBiYWNrcHJlc3N1cmUuLi4iKSxhd2FpdCBYdC5kZWxheUZvcig1MCksYXdhaXQgcigpO2xldCBuO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiYobj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKSk7bGV0IG87bz1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDokcC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6bj8iY2h1bmsiOiJyZWFkIixiYWNrcHJlc3N1cmU6ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLC4uLm4/e2NodW5rRGF0YTpufTp7fX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT4oY29uc29sZS5sb2coInN0cmVhbSBlbmRlZCBpbW1hdHVyZWx5IiksdGhpcy5rZWVwQWxpdmU9ITEsbnVsbCkpLG8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuY2h1bmtEYXRhJiZ0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChzLnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoby5yZXNwb25zZS5jaHVua0RhdGEpKSxhPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksdD1vJiZvLnJlc3BvbnNlJiZvLnJlc3BvbnNlLm5leHR9fXRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKSx0aGlzLndvcmtpbmdEZWZlcnJlZD1udWxsfWFzeW5jIGhhbmRsZVN0cmVhbVRyKGUpe2lmKGUucmVxdWVzdC5rZWVwQWxpdmU9PT0hMCYmdGhpcy5rZWVwQWxpdmU9PT0hMD90aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpOmUucmVxdWVzdC5rZWVwQWxpdmU9PT0hMSYmKHRoaXMua2VlcEFsaXZlPSExKSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0ia2VlcEFsaXZlIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJmZWVkYmFjayImJihlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImNodW5rIil7aWYodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2gocy5yZWNvbnN0aXR1dGVCaW5hcnlEYXRhKGUucmVxdWVzdC5jaHVua0RhdGEpKSx0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCYmZS5yZXNwb25zZS5iYWNrcHJlc3N1cmU9PT0hMSl7bGV0IHQ9dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCk7ZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImNodW5rIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4xLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxjaHVua0RhdGE6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9fWVsc2UgZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX07ZS5yZXF1ZXN0PW51bGx9cmV0dXJuIGV9YXN5bmMgY2xlYW51cCgpe3RoaXMudHlwZWRyb3V0ZXImJnRoaXMudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLnJlbW92ZSh0aGlzKX1hc3luYyBzdGFydEtlZXBBbGl2ZUxvb3AoKXtpZih0aGlzLnNpZGU9PT0icmVzcG9uZGluZyIpcmV0dXJuO2F3YWl0IFh0LmRlbGF5Rm9yKDApLGNvbnNvbGUubG9nKGBzdGFydGluZyBrZWVwYWxpdmUgbG9vcCBvbiBzaWRlICR7dGhpcy5zaWRlfWApO2xldCBlPTA7Zm9yKDt0aGlzLmtlZXBBbGl2ZTspYXdhaXQgdGhpcy50cmlnZ2VyS2VlcEFsaXZlKCksYXdhaXQgWHQuZGVsYXlGb3IoMWUzKTthd2FpdCBYdC5kZWxheUZvcigxZTMpLGF3YWl0IHRoaXMuY2xlYW51cCgpLGNvbnNvbGUubG9nKGBjbGVhbmVkIHVwIGZvciBzdHJlYW0gJHt0aGlzLnN0cmVhbUlkfWApfWFzeW5jIHRyaWdnZXJLZWVwQWxpdmUoKXtpZih0aGlzLnNpZGU9PT0icmVxdWVzdGluZyIpe2NvbnNvbGUubG9nKCJrZWVwYWxpdmUgc2VudC4iKTtsZXQgZT1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDokcC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pnt0aGlzLmtlZXBBbGl2ZT0hMX0pO2UmJmUucmVzcG9uc2UmJmUucmVzcG9uc2Uua2VlcEFsaXZlPT09ITE/dGhpcy5rZWVwQWxpdmU9ITE6dGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ9RGF0ZS5ub3coKSxlJiZlLnJlc3BvbnNlJiZlLnJlc3BvbnNlLm5leHQmJnRoaXMud29ya09uUXVldWUoKX1EYXRlLm5vdygpLXRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PjFlNCYmKGNvbnNvbGUubG9nKGBjbG9zaW5nIHN0cmVhbSBmb3IgJHt0aGlzLnN0cmVhbUlkfWApLHRoaXMua2VlcEFsaXZlPSExKX1hc3luYyBzZW5kRGF0YShlKXt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChlKSx0aGlzLndvcmtPblF1ZXVlKCksYXdhaXQgdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JTcGFjZSgpfWFzeW5jIGZldGNoRGF0YSgpe3JldHVybiB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuaGFzU3BhY2UsYXdhaXQgdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JJdGVtcygpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfWFzeW5jIHJlYWRGcm9tV2Vic3RyZWFtKGUsdD0hMCl7bGV0IGE9ZS5nZXRSZWFkZXIoKSxyPSExO2Zvcig7IXI7KXtsZXR7dmFsdWU6bixkb25lOm99PWF3YWl0IGEucmVhZCgpO24mJmF3YWl0IHRoaXMuc2VuZERhdGEobikscj1vfXQmJmF3YWl0IHRoaXMuY2xvc2UoITApfWFzeW5jIHdyaXRlVG9XZWJzdHJlYW0oZSl7bGV0IHQ9ZS5nZXRXcml0ZXIoKTtmb3IoO3RoaXMua2VlcEFsaXZlfHx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tIYXNJdGVtcygpOyl7bGV0IGE9YXdhaXQgdGhpcy5mZXRjaERhdGEoKTtpZihhPT09aDZ0KXt0LnJlbGVhc2VMb2NrKCksYXdhaXQgZS5jbG9zZSgpO2JyZWFrfWF3YWl0IHQud3JpdGUoYSl9fWFzeW5jIGNsb3NlKGU9ITEpe2UmJnRoaXMuc2VuZERhdGEoaDZ0KSx0aGlzLmtlZXBBbGl2ZT0hMX19fSk7dmFyIGc0ZSxiNGU9ZygoKT0+e3V3KCk7RHAoKTtnNGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRUYXJnZXQiKX1jb25zdHJ1Y3RvcihlKXtpZihlLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXImJiFlLnR5cGVkUm91dGVyUmVmKXRocm93IG5ldyBFcnJvcigieW91IGhhdmUgdG8gc3BlY2lmeSBhIHR5cGVkcm91dGVyIHdoZW4gdXNpbmcgcG9zdG1ldGhvZCB3aXRoIHR5cGVkcm91dGVyIik7dGhpcy5vcHRpb25zPWV9YXN5bmMgcG9zdChlKXtsZXQgdDt0aGlzLm9wdGlvbnMudHlwZWRSb3V0ZXJSZWYmJih0PWF3YWl0IHRoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZi5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkLGUpKTtsZXQgcj1hd2FpdCh0aGlzLm9wdGlvbnMucG9zdE1ldGhvZHx8dGhpcy5vcHRpb25zLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIpKGUpLG47cmV0dXJuIHQ/bj1hd2FpdCB0LmludGVyZXN0RnVsbGZpbGxlZDpyP249cjpuPWUsbn19fSk7ZnVuY3Rpb24gZjZ0KHMsZSl7dHJ5e2MzLmdsb2JhbEhvb2tzW3NdPy4oZSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcihgVHlwZWRSZXF1ZXN0IGhvb2sgZXJyb3IgKCR7c30pOmAsdCl9fXZhciBwSWEsdjRlLG00ZT1nKCgpPT57RHAoKTtyc2UoKTt3OSgpO3V3KCk7YjRlKCk7cElhPW5ldyBfMS5XZWJyZXF1ZXN0Q2xpZW50O2koZjZ0LCJjYWxsR2xvYmFsSG9vayIpO3Y0ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlcXVlc3QiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuc2tpcEhvb2tzPSExLHR5cGVvZiBlPT0ic3RyaW5nIj90aGlzLnVybEVuZFBvaW50PWU6dGhpcy50eXBlZFRhcmdldD1lLHRoaXMubWV0aG9kPXR9YXN5bmMgZmlyZShlLHQ9ITEpe2xldCBhPURhdGUubm93KCkscj17bWV0aG9kOnRoaXMubWV0aG9kLHJlcXVlc3Q6ZSxyZXNwb25zZTpudWxsLGNvcnJlbGF0aW9uOntpZDokcC51bmkoKSxwaGFzZToicmVxdWVzdCJ9fTtyPXoxLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHIse3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fGY2dCgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOnIuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6YSxwYXlsb2FkOmV9KTtsZXQgbjtyZXR1cm4gbj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChyLHQpLG49ejEuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG4se3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fGY2dCgib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDpyLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6bj8ucmVzcG9uc2UsZXJyb3I6bj8uZXJyb3I/LnRleHR9KSxuLnJlc3BvbnNlfWFzeW5jIHBvc3RUck9iamVjdChlLHQ9ITEpe2xldCBhO2lmKHRoaXMudXJsRW5kUG9pbnQ/YT1hd2FpdCBwSWEucG9zdEpzb24odGhpcy51cmxFbmRQb2ludCxlLHQ/e2NhY2hlU3RyYXRlZ3k6ImNhY2hlLWZpcnN0In06e30pOmE9YXdhaXQgdGhpcy50eXBlZFRhcmdldC5wb3N0KGUpLGEuZXJyb3Ipe2lmKGNvbnNvbGUuZXJyb3IoYG1ldGhvZDogPj4ke3RoaXMubWV0aG9kfTw8IGdvdCBhbiBFUlJPUjogIiR7YS5lcnJvci50ZXh0fSIgd2l0aCBkYXRhICR7SlNPTi5zdHJpbmdpZnkoYS5lcnJvci5kYXRhLG51bGwsMil9YCksIWEucmV0cnkpdGhyb3cgbmV3IE0xKGEuZXJyb3IudGV4dCxhLmVycm9yLmRhdGEpO3JldHVybiBudWxsfXJldHVybiBhLnJldHJ5JiYoY29uc29sZS5sb2coYHNlcnZlciByZXF1ZXN0ZWQgcmV0cnkgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uOiAke2EucmV0cnkucmVhc29ufWApLGF3YWl0IFh0LmRlbGF5Rm9yKGEucmV0cnkud2FpdEZvck1zKSxhPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KGUsdCkpLGF9fX0pO3ZhciBMcD17fTt5dChMcCx7VHlwZWRIYW5kbGVyOigpPT5oNGUsVHlwZWRSZXF1ZXN0OigpPT52NGUsVHlwZWRSZXNwb25zZUVycm9yOigpPT5NMSxUeXBlZFJvdXRlcjooKT0+YzMsVHlwZWRUYXJnZXQ6KCk9Pmc0ZSxWaXJ0dWFsU3RyZWFtOigpPT56MX0pO3ZhciBtNnQ9ZygoKT0+e200ZSgpO2Y0ZSgpO3V3KCk7dzkoKTtiNGUoKTtyc2UoKX0pO2Z1bmN0aW9uIGc2dChzKXtyZXR1cm4gcyYmdHlwZW9mIHMudGhlbj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBkZChzLGUpe3JldHVybiBzfHwocz0wKSxuZXcgUHJvbWlzZShmdW5jdGlvbih0KXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0KGUpfSxzKX0pfWZ1bmN0aW9uIHg2dChzLGUpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtcysxKStzKX1mdW5jdGlvbiB4MCgpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMil9ZnVuY3Rpb24geTAoKXt2YXIgcz1EYXRlLm5vdygpKjFlMztyZXR1cm4gczw9eDRlJiYocz14NGUrMSkseDRlPXMsc31mdW5jdGlvbiB5NnQoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3M8InUiJiZ0eXBlb2YgbmF2aWdhdG9yLmxvY2tzLnJlcXVlc3Q9PSJmdW5jdGlvbiJ9dmFyIGI2dCx2NnQsQmwseDRlLEVwPWcoKCk9PntpKGc2dCwiaXNQcm9taXNlIik7YjZ0PVByb21pc2UucmVzb2x2ZSghMSksdjZ0PVByb21pc2UucmVzb2x2ZSghMCksQmw9UHJvbWlzZS5yZXNvbHZlKCk7aShkZCwic2xlZXAiKTtpKHg2dCwicmFuZG9tSW50Iik7aSh4MCwicmFuZG9tVG9rZW4iKTt4NGU9MDtpKHkwLCJtaWNyb1NlY29uZHMiKTtpKHk2dCwic3VwcG9ydHNXZWJMb2NrQVBJIil9KTtmdW5jdGlvbiBtSWEocyl7dmFyIGU9e3RpbWU6eTAoKSxtZXNzYWdlc0NhbGxiYWNrOm51bGwsYmM6bmV3IEJyb2FkY2FzdENoYW5uZWwocyksc3ViRm5zOltdfTtyZXR1cm4gZS5iYy5vbm1lc3NhZ2U9ZnVuY3Rpb24odCl7ZS5tZXNzYWdlc0NhbGxiYWNrJiZlLm1lc3NhZ2VzQ2FsbGJhY2sodC5kYXRhKX0sZX1mdW5jdGlvbiBnSWEocyl7cy5iYy5jbG9zZSgpLHMuc3ViRm5zPVtdfWZ1bmN0aW9uIGJJYShzLGUpe3RyeXtyZXR1cm4gcy5iYy5wb3N0TWVzc2FnZShlLCExKSxCbH1jYXRjaCh0KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QodCl9fWZ1bmN0aW9uIHZJYShzLGUpe3MubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIHhJYSgpe2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmZ2xvYmFsVGhpcy5EZW5vJiZnbG9iYWxUaGlzLkRlbm8uYXJncylyZXR1cm4hMDtpZigodHlwZW9mIHdpbmRvdzwidSJ8fHR5cGVvZiBzZWxmPCJ1IikmJnR5cGVvZiBCcm9hZGNhc3RDaGFubmVsPT0iZnVuY3Rpb24iKXtpZihCcm9hZGNhc3RDaGFubmVsLl9wdWJrZXkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBEbyBub3Qgb3ZlcndyaXRlIHdpbmRvdy5Ccm9hZGNhc3RDaGFubmVsIHdpdGggdGhpcyBtb2R1bGUsIHRoaXMgaXMgbm90IGEgcG9seWZpbGwiKTtyZXR1cm4hMH1lbHNlIHJldHVybiExfWZ1bmN0aW9uIHlJYSgpe3JldHVybiAxNTB9dmFyIGhJYSxmSWEsdzZ0LGs2dD1nKCgpPT57RXAoKTtoSWE9eTAsZklhPSJuYXRpdmUiO2kobUlhLCJjcmVhdGUiKTtpKGdJYSwiY2xvc2UiKTtpKGJJYSwicG9zdE1lc3NhZ2UiKTtpKHZJYSwib25NZXNzYWdlIik7aSh4SWEsImNhbkJlVXNlZCIpO2koeUlhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7dzZ0PXtjcmVhdGU6bUlhLGNsb3NlOmdJYSxvbk1lc3NhZ2U6dklhLHBvc3RNZXNzYWdlOmJJYSxjYW5CZVVzZWQ6eElhLHR5cGU6ZklhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6eUlhLG1pY3JvU2Vjb25kczpoSWF9fSk7ZnVuY3Rpb24gd0lhKHMpe2xldCBlPXk0ZSgpLXMudHRsLHQ9cy5tYXBbU3ltYm9sLml0ZXJhdG9yXSgpO2Zvcig7Oyl7bGV0IGE9dC5uZXh0KCkudmFsdWU7aWYoIWEpYnJlYWs7bGV0IHI9YVswXTtpZihhWzFdPGUpcy5tYXAuZGVsZXRlKHIpO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIHk0ZSgpe3JldHVybiBEYXRlLm5vdygpfXZhciBrOSx3NGU9ZygoKT0+e2s5PWNsYXNze3N0YXRpY3tpKHRoaXMsIk9ibGl2aW91c1NldCIpfXR0bDttYXA9bmV3IE1hcDtfdG89ITE7Y29uc3RydWN0b3IoZSl7dGhpcy50dGw9ZX1oYXMoZSl7bGV0IHQ9dGhpcy5tYXAuZ2V0KGUpO3JldHVybiB0eXBlb2YgdD4idSI/ITE6dDx5NGUoKS10aGlzLnR0bD8odGhpcy5tYXAuZGVsZXRlKGUpLCExKTohMH1hZGQoZSl7dGhpcy5tYXAuZGVsZXRlKGUpLHRoaXMubWFwLnNldChlLHk0ZSgpKSx0aGlzLl90b3x8KHRoaXMuX3RvPSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLl90bz0hMSx3SWEodGhpcyl9LDApKX1jbGVhcigpe3RoaXMubWFwLmNsZWFyKCl9fTtpKHdJYSwicmVtb3ZlVG9vT2xkVmFsdWVzIik7aSh5NGUsIm5vdyIpfSk7ZnVuY3Rpb24gZDMoKXt2YXIgcz1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHMpKTtyZXR1cm4gdHlwZW9mIGUud2ViV29ya2VyU3VwcG9ydD4idSImJihlLndlYldvcmtlclN1cHBvcnQ9ITApLGUuaWRifHwoZS5pZGI9e30pLGUuaWRiLnR0bHx8KGUuaWRiLnR0bD0xZTMqNDUpLGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWx8fChlLmlkYi5mYWxsYmFja0ludGVydmFsPTE1MCkscy5pZGImJnR5cGVvZiBzLmlkYi5vbmNsb3NlPT0iZnVuY3Rpb24iJiYoZS5pZGIub25jbG9zZT1zLmlkYi5vbmNsb3NlKSxlLmxvY2Fsc3RvcmFnZXx8KGUubG9jYWxzdG9yYWdlPXt9KSxlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0fHwoZS5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dD0xZTMqNjApLHMubWV0aG9kcyYmKGUubWV0aG9kcz1zLm1ldGhvZHMpLGUubm9kZXx8KGUubm9kZT17fSksZS5ub2RlLnR0bHx8KGUubm9kZS50dGw9MWUzKjYwKjIpLGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlc3x8KGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlcz0yMDQ4KSx0eXBlb2YgZS5ub2RlLnVzZUZhc3RQYXRoPiJ1IiYmKGUubm9kZS51c2VGYXN0UGF0aD0hMCksZX12YXIgb3NlPWcoKCk9PntpKGQzLCJmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyIpfSk7ZnVuY3Rpb24gUzZ0KCl7aWYodHlwZW9mIGluZGV4ZWREQjwidSIpcmV0dXJuIGluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93PCJ1Iil7aWYodHlwZW9mIHdpbmRvdy5tb3pJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubW96SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cud2Via2l0SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93LndlYmtpdEluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93Lm1zSW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1zSW5kZXhlZERCfXJldHVybiExfWZ1bmN0aW9uIG5zZShzKXtzLmNvbW1pdCYmcy5jb21taXQoKX1mdW5jdGlvbiBNSWEocyl7dmFyIGU9UzZ0KCksdD1TSWErcyxhPWUub3Blbih0KTtyZXR1cm4gYS5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24ocil7dmFyIG49ci50YXJnZXQucmVzdWx0O24uY3JlYXRlT2JqZWN0U3RvcmUoQzEse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSl9LG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbil7YS5vbmVycm9yPWZ1bmN0aW9uKG8pe3JldHVybiBuKG8pfSxhLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3IoYS5yZXN1bHQpfX0pfWZ1bmN0aW9uIHpJYShzLGUsdCl7dmFyIGE9RGF0ZS5ub3coKSxyPXt1dWlkOmUsdGltZTphLGRhdGE6dH0sbj1zLnRyYW5zYWN0aW9uKFtDMV0sInJlYWR3cml0ZSIscHcpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvLGwpe24ub25jb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiBvKCl9LG4ub25lcnJvcj1mdW5jdGlvbihkKXtyZXR1cm4gbChkKX07dmFyIHA9bi5vYmplY3RTdG9yZShDMSk7cC5hZGQociksbnNlKG4pfSl9ZnVuY3Rpb24gZ1lzKHMpe3ZhciBlPXMudHJhbnNhY3Rpb24oQzEsInJlYWRvbmx5IixwdyksdD1lLm9iamVjdFN0b3JlKEMxKSxhPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyKXt0Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24obil7dmFyIG89bi50YXJnZXQucmVzdWx0O28/KGEucHVzaChvLnZhbHVlKSxvLmNvbnRpbnVlKCkpOihuc2UoZSkscihhKSl9fSl9ZnVuY3Rpb24gQ0lhKHMsZSl7dmFyIHQ9cy50cmFuc2FjdGlvbihDMSwicmVhZG9ubHkiLHB3KSxhPXQub2JqZWN0U3RvcmUoQzEpLHI9W10sbj1JREJLZXlSYW5nZS5ib3VuZChlKzEsMS8wKTtpZihhLmdldEFsbCl7dmFyIG89YS5nZXRBbGwobik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHAsZCl7by5vbmVycm9yPWZ1bmN0aW9uKHUpe3JldHVybiBkKHUpfSxvLm9uc3VjY2Vzcz1mdW5jdGlvbih1KXtwKHUudGFyZ2V0LnJlc3VsdCl9fSl9ZnVuY3Rpb24gbCgpe3RyeXtyZXR1cm4gbj1JREJLZXlSYW5nZS5ib3VuZChlKzEsMS8wKSxhLm9wZW5DdXJzb3Iobil9Y2F0Y2h7cmV0dXJuIGEub3BlbkN1cnNvcigpfX1yZXR1cm4gaShsLCJvcGVuQ3Vyc29yIiksbmV3IFByb21pc2UoZnVuY3Rpb24ocCxkKXt2YXIgdT1sKCk7dS5vbmVycm9yPWZ1bmN0aW9uKGMpe3JldHVybiBkKGMpfSx1Lm9uc3VjY2Vzcz1mdW5jdGlvbihjKXt2YXIgYj1jLnRhcmdldC5yZXN1bHQ7Yj9iLnZhbHVlLmlkPGUrMT9iLmNvbnRpbnVlKGUrMSk6KHIucHVzaChiLnZhbHVlKSxiLmNvbnRpbnVlKCkpOihuc2UodCkscChyKSl9fSl9ZnVuY3Rpb24gVElhKHMsZSl7aWYocy5jbG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIHQ9cy5kYi50cmFuc2FjdGlvbihDMSwicmVhZHdyaXRlIixwdyksYT10Lm9iamVjdFN0b3JlKEMxKTtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24ocil7dmFyIG49YS5kZWxldGUocik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pe24ub25zdWNjZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX19KX0pKX1mdW5jdGlvbiAkSWEocyxlKXt2YXIgdD1EYXRlLm5vdygpLWUsYT1zLnRyYW5zYWN0aW9uKEMxLCJyZWFkb25seSIscHcpLHI9YS5vYmplY3RTdG9yZShDMSksbj1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7ci5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKGwpe3ZhciBwPWwudGFyZ2V0LnJlc3VsdDtpZihwKXt2YXIgZD1wLnZhbHVlO2QudGltZTx0PyhuLnB1c2goZCkscC5jb250aW51ZSgpKToobnNlKGEpLG8obikpfWVsc2UgbyhuKX19KX1mdW5jdGlvbiBESWEocyl7cmV0dXJuICRJYShzLmRiLHMub3B0aW9ucy5pZGIudHRsKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBUSWEocyxlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKX0pfWZ1bmN0aW9uIExJYShzLGUpe3JldHVybiBlPWQzKGUpLE1JYShzKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBhPXtjbG9zZWQ6ITEsbGFzdEN1cnNvcklkOjAsY2hhbm5lbE5hbWU6cyxvcHRpb25zOmUsdXVpZDp4MCgpLGVNSXM6bmV3IGs5KGUuaWRiLnR0bCoyKSx3cml0ZUJsb2NrUHJvbWlzZTpCbCxtZXNzYWdlc0NhbGxiYWNrOm51bGwscmVhZFF1ZXVlUHJvbWlzZXM6W10sZGI6dH07cmV0dXJuIHQub25jbG9zZT1mdW5jdGlvbigpe2EuY2xvc2VkPSEwLGUuaWRiLm9uY2xvc2UmJmUuaWRiLm9uY2xvc2UoKX0sXzZ0KGEpLGF9KX1mdW5jdGlvbiBfNnQocyl7cy5jbG9zZWR8fE02dChzKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGRkKHMub3B0aW9ucy5pZGIuZmFsbGJhY2tJbnRlcnZhbCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIF82dChzKX0pfWZ1bmN0aW9uIEVJYShzLGUpe3JldHVybiEocy51dWlkPT09ZS51dWlkfHxlLmVNSXMuaGFzKHMuaWQpfHxzLmRhdGEudGltZTxlLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lKX1mdW5jdGlvbiBNNnQocyl7cmV0dXJuIHMuY2xvc2VkP0JsOnMubWVzc2FnZXNDYWxsYmFjaz9DSWEocy5kYixzLmxhc3RDdXJzb3JJZCkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1lLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4hIWF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ+cy5sYXN0Q3Vyc29ySWQmJihzLmxhc3RDdXJzb3JJZD1hLmlkKSxhfSkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBFSWEoYSxzKX0pLnNvcnQoZnVuY3Rpb24oYSxyKXtyZXR1cm4gYS50aW1lLXIudGltZX0pO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24oYSl7cy5tZXNzYWdlc0NhbGxiYWNrJiYocy5lTUlzLmFkZChhLmlkKSxzLm1lc3NhZ2VzQ2FsbGJhY2soYS5kYXRhKSl9KSxCbH0pOkJsfWZ1bmN0aW9uIFBJYShzKXtzLmNsb3NlZD0hMCxzLmRiLmNsb3NlKCl9ZnVuY3Rpb24gSUlhKHMsZSl7cmV0dXJuIHMud3JpdGVCbG9ja1Byb21pc2U9cy53cml0ZUJsb2NrUHJvbWlzZS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHpJYShzLmRiLHMudXVpZCxlKX0pLnRoZW4oZnVuY3Rpb24oKXt4NnQoMCwxMCk9PT0wJiZESWEocyl9KSxzLndyaXRlQmxvY2tQcm9taXNlfWZ1bmN0aW9uIEFJYShzLGUsdCl7cy5tZXNzYWdlc0NhbGxiYWNrVGltZT10LHMubWVzc2FnZXNDYWxsYmFjaz1lLE02dChzKX1mdW5jdGlvbiBOSWEoKXtyZXR1cm4hIVM2dCgpfWZ1bmN0aW9uIFJJYShzKXtyZXR1cm4gcy5pZGIuZmFsbGJhY2tJbnRlcnZhbCoyfXZhciBrSWEsU0lhLEMxLHB3LF9JYSx6NnQsQzZ0PWcoKCk9PntFcCgpO3c0ZSgpO29zZSgpO2tJYT15MCxTSWE9InB1YmtleS5icm9hZGNhc3QtY2hhbm5lbC0wLSIsQzE9Im1lc3NhZ2VzIixwdz17ZHVyYWJpbGl0eToicmVsYXhlZCJ9LF9JYT0iaWRiIjtpKFM2dCwiZ2V0SWRiIik7aShuc2UsImNvbW1pdEluZGV4ZWREQlRyYW5zYWN0aW9uIik7aShNSWEsImNyZWF0ZURhdGFiYXNlIik7aSh6SWEsIndyaXRlTWVzc2FnZSIpO2koZ1lzLCJnZXRBbGxNZXNzYWdlcyIpO2koQ0lhLCJnZXRNZXNzYWdlc0hpZ2hlclRoYW4iKTtpKFRJYSwicmVtb3ZlTWVzc2FnZXNCeUlkIik7aSgkSWEsImdldE9sZE1lc3NhZ2VzIik7aShESWEsImNsZWFuT2xkTWVzc2FnZXMiKTtpKExJYSwiY3JlYXRlIik7aShfNnQsIl9yZWFkTG9vcCIpO2koRUlhLCJfZmlsdGVyTWVzc2FnZSIpO2koTTZ0LCJyZWFkTmV3TWVzc2FnZXMiKTtpKFBJYSwiY2xvc2UiKTtpKElJYSwicG9zdE1lc3NhZ2UiKTtpKEFJYSwib25NZXNzYWdlIik7aShOSWEsImNhbkJlVXNlZCIpO2koUklhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7ejZ0PXtjcmVhdGU6TElhLGNsb3NlOlBJYSxvbk1lc3NhZ2U6QUlhLHBvc3RNZXNzYWdlOklJYSxjYW5CZVVzZWQ6TklhLHR5cGU6X0lhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6UklhLG1pY3JvU2Vjb25kczprSWF9fSk7ZnVuY3Rpb24gVDZ0KCl7dmFyIHM7aWYodHlwZW9mIHdpbmRvdz4idSIpcmV0dXJuIG51bGw7dHJ5e3M9d2luZG93LmxvY2FsU3RvcmFnZSxzPXdpbmRvd1siaWU4LWV2ZW50bGlzdGVuZXIvc3RvcmFnZSJdfHx3aW5kb3cubG9jYWxTdG9yYWdlfWNhdGNoe31yZXR1cm4gc31mdW5jdGlvbiAkNnQocyl7cmV0dXJuIEZJYStzfWZ1bmN0aW9uIEhJYShzLGUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0KXtkZCgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgYT0kNnQocy5jaGFubmVsTmFtZSkscj17dG9rZW46eDAoKSx0aW1lOkRhdGUubm93KCksZGF0YTplLHV1aWQ6cy51dWlkfSxuPUpTT04uc3RyaW5naWZ5KHIpO1Q2dCgpLnNldEl0ZW0oYSxuKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtvLmluaXRFdmVudCgic3RvcmFnZSIsITAsITApLG8ua2V5PWEsby5uZXdWYWx1ZT1uLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG8pLHQoKX0pfSl9ZnVuY3Rpb24gcUlhKHMsZSl7dmFyIHQ9JDZ0KHMpLGE9aShmdW5jdGlvbihuKXtuLmtleT09PXQmJmUoSlNPTi5wYXJzZShuLm5ld1ZhbHVlKSl9LCJsaXN0ZW5lciIpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsYSksYX1mdW5jdGlvbiBqSWEocyl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHMpfWZ1bmN0aW9uIFZJYShzLGUpe2lmKGU9ZDMoZSksIUQ2dCgpKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbDogbG9jYWxzdG9yYWdlIGNhbm5vdCBiZSB1c2VkIik7dmFyIHQ9eDAoKSxhPW5ldyBrOShlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0KSxyPXtjaGFubmVsTmFtZTpzLHV1aWQ6dCxlTUlzOmF9O3JldHVybiByLmxpc3RlbmVyPXFJYShzLGZ1bmN0aW9uKG4pe3IubWVzc2FnZXNDYWxsYmFjayYmbi51dWlkIT09dCYmKCFuLnRva2VufHxhLmhhcyhuLnRva2VuKXx8bi5kYXRhLnRpbWUmJm4uZGF0YS50aW1lPHIubWVzc2FnZXNDYWxsYmFja1RpbWV8fChhLmFkZChuLnRva2VuKSxyLm1lc3NhZ2VzQ2FsbGJhY2sobi5kYXRhKSkpfSkscn1mdW5jdGlvbiBVSWEocyl7aklhKHMubGlzdGVuZXIpfWZ1bmN0aW9uIFdJYShzLGUsdCl7cy5tZXNzYWdlc0NhbGxiYWNrVGltZT10LHMubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIEQ2dCgpe3ZhciBzPVQ2dCgpO2lmKCFzKXJldHVybiExO3RyeXt2YXIgZT0iX19icm9hZGNhc3RjaGFubmVsX2NoZWNrIjtzLnNldEl0ZW0oZSwid29ya3MiKSxzLnJlbW92ZUl0ZW0oZSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gR0lhKCl7dmFyIHM9MTIwLGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO3JldHVybiBlLmluY2x1ZGVzKCJzYWZhcmkiKSYmIWUuaW5jbHVkZXMoImNocm9tZSIpP3MqMjpzfXZhciBPSWEsRklhLEJJYSxMNnQsRTZ0PWcoKCk9Pnt3NGUoKTtvc2UoKTtFcCgpO09JYT15MCxGSWE9InB1YmtleS5icm9hZGNhc3RDaGFubmVsLSIsQklhPSJsb2NhbHN0b3JhZ2UiO2koVDZ0LCJnZXRMb2NhbFN0b3JhZ2UiKTtpKCQ2dCwic3RvcmFnZUtleSIpO2koSElhLCJwb3N0TWVzc2FnZSIpO2kocUlhLCJhZGRTdG9yYWdlRXZlbnRMaXN0ZW5lciIpO2koaklhLCJyZW1vdmVTdG9yYWdlRXZlbnRMaXN0ZW5lciIpO2koVklhLCJjcmVhdGUiKTtpKFVJYSwiY2xvc2UiKTtpKFdJYSwib25NZXNzYWdlIik7aShENnQsImNhbkJlVXNlZCIpO2koR0lhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7TDZ0PXtjcmVhdGU6VklhLGNsb3NlOlVJYSxvbk1lc3NhZ2U6V0lhLHBvc3RNZXNzYWdlOkhJYSxjYW5CZVVzZWQ6RDZ0LHR5cGU6QklhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6R0lhLG1pY3JvU2Vjb25kczpPSWF9fSk7ZnVuY3Rpb24gWUlhKHMpe3ZhciBlPXt0aW1lOlA2dCgpLG5hbWU6cyxtZXNzYWdlc0NhbGxiYWNrOm51bGx9O3JldHVybiBrNGUuYWRkKGUpLGV9ZnVuY3Rpb24gWklhKHMpe2s0ZS5kZWxldGUocyl9ZnVuY3Rpb24gWElhKHMsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGE9QXJyYXkuZnJvbShrNGUpO2EuZm9yRWFjaChmdW5jdGlvbihyKXtyLm5hbWU9PT1zLm5hbWUmJnIhPT1zJiZyLm1lc3NhZ2VzQ2FsbGJhY2smJnIudGltZTxlLnRpbWUmJnIubWVzc2FnZXNDYWxsYmFjayhlKX0pLHQoKX0sSTZ0KX0pfWZ1bmN0aW9uIFFJYShzLGUpe3MubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIEpJYSgpe3JldHVybiEwfWZ1bmN0aW9uIGVBYSgpe3JldHVybiBJNnR9dmFyIFA2dCxLSWEsazRlLEk2dCxBNnQsTjZ0PWcoKCk9PntFcCgpO1A2dD15MCxLSWE9InNpbXVsYXRlIixrNGU9bmV3IFNldDtpKFlJYSwiY3JlYXRlIik7aShaSWEsImNsb3NlIik7STZ0PTU7aShYSWEsInBvc3RNZXNzYWdlIik7aShRSWEsIm9uTWVzc2FnZSIpO2koSklhLCJjYW5CZVVzZWQiKTtpKGVBYSwiYXZlcmFnZVJlc3BvbnNlVGltZSIpO0E2dD17Y3JlYXRlOllJYSxjbG9zZTpaSWEsb25NZXNzYWdlOlFJYSxwb3N0TWVzc2FnZTpYSWEsY2FuQmVVc2VkOkpJYSx0eXBlOktJYSxhdmVyYWdlUmVzcG9uc2VUaW1lOmVBYSxtaWNyb1NlY29uZHM6UDZ0fX0pO2Z1bmN0aW9uIFM0ZShzKXt2YXIgZT1bXS5jb25jYXQocy5tZXRob2RzLFI2dCkuZmlsdGVyKEJvb2xlYW4pO2lmKHMudHlwZSl7aWYocy50eXBlPT09InNpbXVsYXRlIilyZXR1cm4gQTZ0O3ZhciB0PWUuZmluZChmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlPT09cy50eXBlfSk7aWYodClyZXR1cm4gdDt0aHJvdyBuZXcgRXJyb3IoIm1ldGhvZC10eXBlICIrcy50eXBlKyIgbm90IGZvdW5kIil9cy53ZWJXb3JrZXJTdXBwb3J0fHwoZT1lLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlIT09ImlkYiJ9KSk7dmFyIGE9ZS5maW5kKGZ1bmN0aW9uKHIpe3JldHVybiByLmNhbkJlVXNlZCgpfSk7aWYoYSlyZXR1cm4gYTt0aHJvdyBuZXcgRXJyb3IoIk5vIHVzYWJsZSBtZXRob2QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShSNnQubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLnR5cGV9KSkpfXZhciBSNnQsTzZ0PWcoKCk9PntrNnQoKTtDNnQoKTtFNnQoKTtONnQoKTtSNnQ9W3c2dCx6NnQsTDZ0XTtpKFM0ZSwiY2hvb3NlTWV0aG9kIil9KTtmdW5jdGlvbiBhQWEocyl7cz1kMyhzKTt2YXIgZT1TNGUocyk7cmV0dXJuIGUudHlwZT09PSJub2RlIj9lLmNsZWFyTm9kZUZvbGRlcigpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pOmI2dH1mdW5jdGlvbiBzQWEocyl7XzRlPXN9ZnVuY3Rpb24gRjZ0KHMsZSx0KXt2YXIgYT1zLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmEsdHlwZTplLGRhdGE6dH0sbj1zLl9wcmVwUD9zLl9wcmVwUDpCbDtyZXR1cm4gbi50aGVuKGZ1bmN0aW9uKCl7dmFyIG89cy5tZXRob2QucG9zdE1lc3NhZ2Uocy5fc3RhdGUscik7cmV0dXJuIHMuX3VNUC5hZGQobyksby5jYXRjaCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcy5fdU1QLmRlbGV0ZShvKX0pLG99KX1mdW5jdGlvbiBpQWEocyl7dmFyIGU9cy5tZXRob2QuY3JlYXRlKHMubmFtZSxzLm9wdGlvbnMpO2c2dChlKT8ocy5fcHJlcFA9ZSxlLnRoZW4oZnVuY3Rpb24odCl7cy5fc3RhdGU9dH0pKTpzLl9zdGF0ZT1lfWZ1bmN0aW9uIEI2dChzKXtyZXR1cm4gcy5fYWRkRUwubWVzc2FnZS5sZW5ndGg+MHx8cy5fYWRkRUwuaW50ZXJuYWwubGVuZ3RoPjB9ZnVuY3Rpb24gSDZ0KHMsZSx0KXtzLl9hZGRFTFtlXS5wdXNoKHQpLHJBYShzKX1mdW5jdGlvbiBxNnQocyxlLHQpe3MuX2FkZEVMW2VdPXMuX2FkZEVMW2VdLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYSE9PXR9KSxvQWEocyl9ZnVuY3Rpb24gckFhKHMpe2lmKCFzLl9pTCYmQjZ0KHMpKXt2YXIgZT1pKGZ1bmN0aW9uKHIpe3MuX2FkZEVMW3IudHlwZV0uZm9yRWFjaChmdW5jdGlvbihuKXtyLnRpbWU+PW4udGltZSYmbi5mbihyLmRhdGEpfSl9LCJsaXN0ZW5lckZuIiksdD1zLm1ldGhvZC5taWNyb1NlY29uZHMoKTtzLl9wcmVwUD9zLl9wcmVwUC50aGVuKGZ1bmN0aW9uKCl7cy5faUw9ITAscy5tZXRob2Qub25NZXNzYWdlKHMuX3N0YXRlLGUsdCl9KToocy5faUw9ITAscy5tZXRob2Qub25NZXNzYWdlKHMuX3N0YXRlLGUsdCkpfX1mdW5jdGlvbiBvQWEocyl7aWYocy5faUwmJiFCNnQocykpe3MuX2lMPSExO3ZhciBlPXMubWV0aG9kLm1pY3JvU2Vjb25kcygpO3MubWV0aG9kLm9uTWVzc2FnZShzLl9zdGF0ZSxudWxsLGUpfX12YXIgTTRlLHRBYSx1MyxfNGUsajZ0PWcoKCk9PntFcCgpO082dCgpO29zZSgpO000ZT1uZXcgU2V0LHRBYT0wLHUzPWkoZnVuY3Rpb24oZSx0KXt0aGlzLmlkPXRBYSsrLE00ZS5hZGQodGhpcyksdGhpcy5uYW1lPWUsXzRlJiYodD1fNGUpLHRoaXMub3B0aW9ucz1kMyh0KSx0aGlzLm1ldGhvZD1TNGUodGhpcy5vcHRpb25zKSx0aGlzLl9pTD0hMSx0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUw9e21lc3NhZ2U6W10saW50ZXJuYWw6W119LHRoaXMuX3VNUD1uZXcgU2V0LHRoaXMuX2JlZkM9W10sdGhpcy5fcHJlcFA9bnVsbCxpQWEodGhpcyl9LCJCcm9hZGNhc3RDaGFubmVsIik7dTMuX3B1YmtleT0hMDtpKGFBYSwiY2xlYXJOb2RlRm9sZGVyIik7aShzQWEsImVuZm9yY2VPcHRpb25zIiksdTMucHJvdG90eXBlPXtwb3N0TWVzc2FnZTppKGZ1bmN0aW9uKGUpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSgpOiBDYW5ub3QgcG9zdCBtZXNzYWdlIGFmdGVyIGNoYW5uZWwgaGFzIGNsb3NlZCAiK0pTT04uc3RyaW5naWZ5KGUpKTtyZXR1cm4gRjZ0KHRoaXMsIm1lc3NhZ2UiLGUpfSwicG9zdE1lc3NhZ2UiKSxwb3N0SW50ZXJuYWw6aShmdW5jdGlvbihlKXtyZXR1cm4gRjZ0KHRoaXMsImludGVybmFsIixlKX0sInBvc3RJbnRlcm5hbCIpLHNldCBvbm1lc3NhZ2Uocyl7dmFyIGU9dGhpcy5tZXRob2QubWljcm9TZWNvbmRzKCksdD17dGltZTplLGZuOnN9O3E2dCh0aGlzLCJtZXNzYWdlIix0aGlzLl9vbk1MKSxzJiZ0eXBlb2Ygcz09ImZ1bmN0aW9uIj8odGhpcy5fb25NTD10LEg2dCh0aGlzLCJtZXNzYWdlIix0KSk6dGhpcy5fb25NTD1udWxsfSxhZGRFdmVudExpc3RlbmVyOmkoZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmEsZm46dH07SDZ0KHRoaXMsZSxyKX0sImFkZEV2ZW50TGlzdGVuZXIiKSxyZW1vdmVFdmVudExpc3RlbmVyOmkoZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzLl9hZGRFTFtlXS5maW5kKGZ1bmN0aW9uKHIpe3JldHVybiByLmZuPT09dH0pO3E2dCh0aGlzLGUsYSl9LCJyZW1vdmVFdmVudExpc3RlbmVyIiksY2xvc2U6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMuY2xvc2VkKXtNNGUuZGVsZXRlKHRoaXMpLHRoaXMuY2xvc2VkPSEwO3ZhciB0PXRoaXMuX3ByZXBQP3RoaXMuX3ByZXBQOkJsO3JldHVybiB0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUwubWVzc2FnZT1bXSx0LnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShlLl91TVApKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5fYmVmQy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEoKX0pKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tZXRob2QuY2xvc2UoZS5fc3RhdGUpfSl9fSwiY2xvc2UiKSxnZXQgdHlwZSgpe3JldHVybiB0aGlzLm1ldGhvZC50eXBlfSxnZXQgaXNDbG9zZWQoKXtyZXR1cm4gdGhpcy5jbG9zZWR9fTtpKEY2dCwiX3Bvc3QiKTtpKGlBYSwiX3ByZXBhcmVDaGFubmVsIik7aShCNnQsIl9oYXNNZXNzYWdlTGlzdGVuZXJzIik7aShINnQsIl9hZGRMaXN0ZW5lck9iamVjdCIpO2kocTZ0LCJfcmVtb3ZlTGlzdGVuZXJPYmplY3QiKTtpKHJBYSwiX3N0YXJ0TGlzdGVuaW5nIik7aShvQWEsIl9zdG9wTGlzdGVuaW5nIil9KTtmdW5jdGlvbiBWNnQocyl7aWYodHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPT0iZnVuY3Rpb24iJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUpe3ZhciBlPXNlbGYuY2xvc2UuYmluZChzZWxmKTtzZWxmLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIHMoKSxlKCl9fWVsc2V7aWYodHlwZW9mIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyIT0iZnVuY3Rpb24iKXJldHVybjt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe3MoKX0sITApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7cygpfSwhMCl9fXZhciBVNnQ9ZygoKT0+e2koVjZ0LCJhZGRCcm93c2VyIil9KTtmdW5jdGlvbiBXNnQocyl7cHJvY2Vzcy5vbigiZXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gcygpfSkscHJvY2Vzcy5vbigiYmVmb3JlRXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gcygpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oIlNJR0lOVCIsZnVuY3Rpb24oKXtyZXR1cm4gcygpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oInVuY2F1Z2h0RXhjZXB0aW9uIixmdW5jdGlvbihlKXtyZXR1cm4gcygpLnRoZW4oZnVuY3Rpb24oKXtjb25zb2xlLnRyYWNlKGUpLHByb2Nlc3MuZXhpdCgxMDEpfSl9KX12YXIgRzZ0PWcoKCk9PntpKFc2dCwiYWRkTm9kZSIpfSk7ZnVuY3Rpb24gY0FhKCl7SzZ0fHwoSzZ0PSEwLGxBYShkQWEpKX1mdW5jdGlvbiBZNnQocyl7aWYoY0FhKCksdHlwZW9mIHMhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJMaXN0ZW5lciBpcyBubyBmdW5jdGlvbiIpO3AzLmFkZChzKTt2YXIgZT17cmVtb3ZlOmkoZnVuY3Rpb24oKXtyZXR1cm4gcDMuZGVsZXRlKHMpfSwicmVtb3ZlIikscnVuOmkoZnVuY3Rpb24oKXtyZXR1cm4gcDMuZGVsZXRlKHMpLHMoKX0sInJ1biIpfTtyZXR1cm4gZX1mdW5jdGlvbiBkQWEoKXt2YXIgcz1bXTtyZXR1cm4gcDMuZm9yRWFjaChmdW5jdGlvbihlKXtzLnB1c2goZSgpKSxwMy5kZWxldGUoZSl9KSxQcm9taXNlLmFsbChzKX1mdW5jdGlvbiBWWXMoKXtwMy5jbGVhcigpfWZ1bmN0aW9uIFVZcygpe3JldHVybiBwMy5zaXplfXZhciBuQWEsbEFhLHAzLEs2dCxaNnQ9ZygoKT0+e1U2dCgpO0c2dCgpO25BYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHlwZW9mIHByb2Nlc3M8InUiP3Byb2Nlc3M6MCk9PT0iW29iamVjdCBwcm9jZXNzXSIsbEFhPW5BYT9XNnQ6VjZ0LHAzPW5ldyBTZXQsSzZ0PSExO2koY0FhLCJzdGFydExpc3RlbmluZyIpO2koWTZ0LCJhZGQiKTtpKGRBYSwicnVuQWxsIik7aShWWXMsInJlbW92ZUFsbCIpO2koVVlzLCJnZXRTaXplIil9KTtmdW5jdGlvbiB3MChzLGUpe3ZhciB0PXtjb250ZXh0OiJsZWFkZXIiLGFjdGlvbjplLHRva2VuOnMudG9rZW59O3JldHVybiBzLmJyb2FkY2FzdENoYW5uZWwucG9zdEludGVybmFsKHQpfWZ1bmN0aW9uIGh3KHMpe3MuaXNMZWFkZXI9ITAscy5faGFzTGVhZGVyPSEwO3ZhciBlPVk2dChmdW5jdGlvbigpe3JldHVybiBzLmRpZSgpfSk7cy5fdW5sLnB1c2goZSk7dmFyIHQ9aShmdW5jdGlvbihyKXtyLmNvbnRleHQ9PT0ibGVhZGVyIiYmci5hY3Rpb249PT0iYXBwbHkiJiZ3MChzLCJ0ZWxsIiksci5jb250ZXh0PT09ImxlYWRlciImJnIuYWN0aW9uPT09InRlbGwiJiYhcy5fZHBMQyYmKHMuX2RwTEM9ITAscy5fZHBMKCksdzAocywidGVsbCIpKX0sImlzTGVhZGVyTGlzdGVuZXIiKTtyZXR1cm4gcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIix0KSxzLl9sc3Rucy5wdXNoKHQpLHcwKHMsInRlbGwiKX12YXIgbHNlPWcoKCk9PntaNnQoKTtpKHcwLCJzZW5kTGVhZGVyTWVzc2FnZSIpO2koaHcsImJlTGVhZGVyIil9KTt2YXIgejRlLFg2dCxRNnQ9ZygoKT0+e0VwKCk7bHNlKCk7ejRlPWkoZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1lLGUuX2JlZkMucHVzaChmdW5jdGlvbigpe3JldHVybiBhLmRpZSgpfSksdGhpcy5fb3B0aW9ucz10LHRoaXMuaXNMZWFkZXI9ITEsdGhpcy5pc0RlYWQ9ITEsdGhpcy50b2tlbj14MCgpLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubD1bXSx0aGlzLl9kcEw9ZnVuY3Rpb24oKXt9LHRoaXMuX2RwTEM9ITEsdGhpcy5fd0tNQz17fSx0aGlzLmxOPSJwdWJrZXktYmN8fCIrZS5tZXRob2QudHlwZSsifHwiK2UubmFtZX0sIkxlYWRlckVsZWN0aW9uV2ViTG9jayIpLFg2dD0iTGVhZGVyRWxlY3Rpb25XZWJMb2NrLmRpZSgpIGNhbGxlZCI7ejRlLnByb3RvdHlwZT17aGFzTGVhZGVyOmkoZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBhPXQuaGVsZD90LmhlbGQuZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiByLm5hbWU9PT1lLmxOfSk6W107cmV0dXJuISEoYSYmYS5sZW5ndGg+MCl9KX0sImhhc0xlYWRlciIpLGF3YWl0TGVhZGVyc2hpcDppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighdGhpcy5fd0xNUCl7dGhpcy5fd0tNQy5jPW5ldyBBYm9ydENvbnRyb2xsZXI7dmFyIHQ9bmV3IFByb21pc2UoZnVuY3Rpb24oYSxyKXtlLl93S01DLnJlcz1hLGUuX3dLTUMucmVqPXJ9KTt0aGlzLl93TE1QPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGEscil7bmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoZS5sTix7c2lnbmFsOmUuX3dLTUMuYy5zaWduYWx9LGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3dLTUMuYz12b2lkIDAsaHcoZSksYSgpLHR9KS5jYXRjaChmdW5jdGlvbihuKXtuLm1lc3NhZ2UmJm4ubWVzc2FnZT09PVg2dHx8KGUuX3dLTUMucmVqJiZlLl93S01DLnJlaihuKSxyKG4pKX0pfSl9cmV0dXJuIHRoaXMuX3dMTVB9LCJhd2FpdExlYWRlcnNoaXAiKSxzZXQgb25kdXBsaWNhdGUocyl7fSxkaWU6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsdCl9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5pc0xlYWRlcj0hMSksdGhpcy5pc0RlYWQ9ITAsdGhpcy5fd0tNQy5yZXMmJnRoaXMuX3dLTUMucmVzKCksdGhpcy5fd0tNQy5jJiZ0aGlzLl93S01DLmMuYWJvcnQobmV3IEVycm9yKFg2dCkpLHcwKHRoaXMsImRlYXRoIil9LCJkaWUiKX19KTtmdW5jdGlvbiB1QWEocyl7cmV0dXJuIHMuaXNMZWFkZXI/Qmw6bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIHQ9ITE7ZnVuY3Rpb24gYSgpe3R8fCh0PSEwLHMuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbiksZSghMCkpfWkoYSwiZmluaXNoIikscy5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7cy5pc0xlYWRlciYmYSgpfSk7dmFyIHI9aShmdW5jdGlvbigpe3JldHVybiBkZChzLl9vcHRpb25zLmZhbGxiYWNrSW50ZXJ2YWwpLnRoZW4oZnVuY3Rpb24oKXtpZighKHMuaXNEZWFkfHx0KSlpZihzLmlzTGVhZGVyKWEoKTtlbHNlIHJldHVybiBzLmFwcGx5T25jZSghMCkudGhlbihmdW5jdGlvbigpe3MuaXNMZWFkZXI/YSgpOnIoKX0pfSl9LCJ0cnlPbkZhbGxCYWNrIik7cigpO3ZhciBuPWkoZnVuY3Rpb24obCl7bC5jb250ZXh0PT09ImxlYWRlciImJmwuYWN0aW9uPT09ImRlYXRoIiYmKHMuX2hhc0xlYWRlcj0hMSxzLmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXtzLmlzTGVhZGVyJiZhKCl9KSl9LCJ3aGVuRGVhdGhMaXN0ZW5lciIpO3MuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbikscy5fbHN0bnMucHVzaChuKX0pfWZ1bmN0aW9uIHBBYShzLGUpe3JldHVybiBzfHwocz17fSkscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHMpKSxzLmZhbGxiYWNrSW50ZXJ2YWx8fChzLmZhbGxiYWNrSW50ZXJ2YWw9M2UzKSxzLnJlc3BvbnNlVGltZXx8KHMucmVzcG9uc2VUaW1lPWUubWV0aG9kLmF2ZXJhZ2VSZXNwb25zZVRpbWUoZS5vcHRpb25zKSksc31mdW5jdGlvbiBoQWEocyxlKXtpZihzLl9sZWFkZXJFbGVjdG9yKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbCBhbHJlYWR5IGhhcyBhIGxlYWRlci1lbGVjdG9yIik7ZT1wQWEoZSxzKTt2YXIgdD15NnQoKT9uZXcgejRlKHMsZSk6bmV3IEo2dChzLGUpO3JldHVybiBzLl9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gdC5kaWUoKX0pLHMuX2xlYWRlckVsZWN0b3I9dCx0fXZhciBKNnQsZTV0PWcoKCk9PntFcCgpO2xzZSgpO1E2dCgpO0o2dD1pKGZ1bmN0aW9uKGUsdCl7dmFyIGE9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9ZSx0aGlzLl9vcHRpb25zPXQsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLl9oYXNMZWFkZXI9ITEsdGhpcy5pc0RlYWQ9ITEsdGhpcy50b2tlbj14MCgpLHRoaXMuX2FwbFE9QmwsdGhpcy5fYXBsUUM9MCx0aGlzLl91bmw9W10sdGhpcy5fbHN0bnM9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExO3ZhciByPWkoZnVuY3Rpb24obyl7by5jb250ZXh0PT09ImxlYWRlciImJihvLmFjdGlvbj09PSJkZWF0aCImJihhLl9oYXNMZWFkZXI9ITEpLG8uYWN0aW9uPT09InRlbGwiJiYoYS5faGFzTGVhZGVyPSEwKSl9LCJoYXNMZWFkZXJMaXN0ZW5lciIpO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsciksdGhpcy5fbHN0bnMucHVzaChyKX0sIkxlYWRlckVsZWN0aW9uIik7SjZ0LnByb3RvdHlwZT17aGFzTGVhZGVyOmkoZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2hhc0xlYWRlcil9LCJoYXNMZWFkZXIiKSxhcHBseU9uY2U6aShmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKHRoaXMuaXNMZWFkZXIpcmV0dXJuIGRkKDAsITApO2lmKHRoaXMuaXNEZWFkKXJldHVybiBkZCgwLCExKTtpZih0aGlzLl9hcGxRQz4xKXJldHVybiB0aGlzLl9hcGxRO3ZhciBhPWkoZnVuY3Rpb24oKXtpZih0LmlzTGVhZGVyKXJldHVybiB2NnQ7dmFyIG49ITEsbyxsPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHUpe289aShmdW5jdGlvbigpe249ITAsdSgpfSwic3RvcENyaXRlcmlhUHJvbWlzZVJlc29sdmUiKX0pLHA9aShmdW5jdGlvbihjKXtjLmNvbnRleHQ9PT0ibGVhZGVyIiYmYy50b2tlbiE9dC50b2tlbiYmKGMuYWN0aW9uPT09ImFwcGx5IiYmYy50b2tlbj50LnRva2VuJiZvKCksYy5hY3Rpb249PT0idGVsbCImJihvKCksdC5faGFzTGVhZGVyPSEwKSl9LCJoYW5kbGVNZXNzYWdlIik7dC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixwKTt2YXIgZD1lP3QuX29wdGlvbnMucmVzcG9uc2VUaW1lKjQ6dC5fb3B0aW9ucy5yZXNwb25zZVRpbWU7cmV0dXJuIHcwKHQsImFwcGx5IikudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW2RkKGQpLGwudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdzAodCwiYXBwbHkiKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yYWNlKFtkZChkKSxsLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKX0pXSl9KS5jYXRjaChmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixwKSxuPyExOmh3KHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSl9LCJhcHBseVJ1biIpO3JldHVybiB0aGlzLl9hcGxRQz10aGlzLl9hcGxRQysxLHRoaXMuX2FwbFE9dGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEoKX0pLnRoZW4oZnVuY3Rpb24oKXt0Ll9hcGxRQz10Ll9hcGxRQy0xfSksdGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuaXNMZWFkZXJ9KX0sImFwcGx5T25jZSIpLGF3YWl0TGVhZGVyc2hpcDppKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FMUHx8KHRoaXMuX2FMUD11QWEodGhpcykpLHRoaXMuX2FMUH0sImF3YWl0TGVhZGVyc2hpcCIpLHNldCBvbmR1cGxpY2F0ZShzKXt0aGlzLl9kcEw9c30sZGllOmkoZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHQpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCx3MCh0aGlzLCJkZWF0aCIpfSwiZGllIil9O2kodUFhLCJfYXdhaXRMZWFkZXJzaGlwT25jZSIpO2kocEFhLCJmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyIpO2koaEFhLCJjcmVhdGVMZWFkZXJFbGVjdGlvbiIpfSk7dmFyIHQ1dD1nKCgpPT57ajZ0KCk7ZTV0KCk7bHNlKCl9KTt2YXIgYTV0PWcoKCk9PntkMCgpO1U0KCk7bTZ0KCk7dDV0KCl9KTt2YXIgQzRlLFQ0ZSxzNXQ9ZygoKT0+e2E1dCgpO0M0ZT1nbG9iYWxUaGlzLkJyb2FkY2FzdENoYW5uZWw7QzRlfHwoQzRlPXUzKTtUNGU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVlc0NvbW1zIil9Y29uc3RydWN0b3IoKXt0aGlzLmJyb2FkY2FzdENoYW5uZWw9bmV3IEM0ZSgiZGVlcy1jb21tcyIpLHRoaXMudHlwZWRyb3V0ZXI9bmV3IExwLlR5cGVkUm91dGVyLHRoaXMudHlwZWR0YXJnZXQ9bmV3IExwLlR5cGVkVGFyZ2V0KHtwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyOmkoYXN5bmMgZT0+e3RoaXMucG9zdE1lc3NhZ2UoZSl9LCJwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyIiksdHlwZWRSb3V0ZXJSZWY6dGhpcy50eXBlZHJvdXRlcn0pLHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2U9YXN5bmMgZT0+e2xldCB0PWUubWV0aG9kP2U6ZS5kYXRhO2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHQpKTtsZXQgYT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2UodCx7c2tpcEhvb2tzOiEwfSk7YSYmIWEuZXJyb3ImJnRoaXMucG9zdE1lc3NhZ2UoYSl9fWNyZWF0ZVR5cGVkUmVxdWVzdChlKXtyZXR1cm4gbmV3IExwLlR5cGVkUmVxdWVzdCh0aGlzLnR5cGVkdGFyZ2V0LGUpfWFzeW5jIHBvc3RNZXNzYWdlKGUpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShlKX1hc3luYyBjcmVhdGVUeXBlZEhhbmRsZXIoZSx0KXt0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgTHAuVHlwZWRIYW5kbGVyKGUsdCkpfX19KTt2YXIgZnc9e307eXQoZncse0RlZXNDb21tczooKT0+VDRlfSk7dmFyIGk1dD1nKCgpPT57czV0KCl9KTt2YXIgUHAsSXA9ZygoKT0+e1U0KCk7UHA9eG4oaXkoKSwxKTt1OSgpOyRoZSgpO2QwKCk7RWhlKCk7aW8oKTthc2UoKX0pO3ZhciBUMSxTOT1nKCgpPT57SXAoKTtUMT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlc3BvbnNlRXJyb3IiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuZXJyb3JUZXh0PWUsdGhpcy5lcnJvckRhdGE9dH19fSk7dmFyIGRzZSxyNXQ9ZygoKT0+e1M5KCk7SXAoKTtkc2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRUb29scyIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2NhbERhdGE9e319YXN5bmMgcGFzc0d1YXJkcyhlLHQpe2xldCBhPW5ldyB2MC5HdWFyZFNldChlKTtpZighYXdhaXQgYS5hbGxHdWFyZHNQYXNzKHQpKXtsZXQgbj1hd2FpdCBhLmdldEZhaWxlZEhpbnQodCk7dGhyb3cgbmV3IFQxKGBndWFyZCBmYWlsZWQ6ICR7bn1gLHtmYWlsZWRIaW50Om59KX19fX0pO3ZhciAkNGUsRDRlPWcoKCk9PntJcCgpO1M5KCk7cjV0KCk7JDRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkSGFuZGxlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5tZXRob2Q9ZSx0aGlzLmhhbmRsZXJGdW5jdGlvbj10fWFzeW5jIGFkZFJlc3BvbnNlKGUpe2lmKGUubWV0aG9kIT09dGhpcy5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzIik7bGV0IHQsYT1uZXcgZHNlO2UubG9jYWxEYXRhJiYoYS5sb2NhbERhdGE9ZS5sb2NhbERhdGEpO2xldCByPWF3YWl0IHRoaXMuaGFuZGxlckZ1bmN0aW9uKGUucmVxdWVzdCxhKS5jYXRjaChuPT57biBpbnN0YW5jZW9mIFQxP3Q9bjpjb25zb2xlLmxvZyhuKX0pO3JldHVybiB0JiYoZS5lcnJvcj17dGV4dDp0LmVycm9yVGV4dCxkYXRhOnQuZXJyb3JEYXRhfSksciYmKGUucmVzcG9uc2U9ciksZT8uY29ycmVsYXRpb24/LnBoYXNlJiYoZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiKSxlfX19KTt2YXIgaDMsbXc9ZygoKT0+e0lwKCk7dXNlKCk7RDRlKCk7TDRlKCk7UzkoKTtoMz1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlR5cGVkUm91dGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmhvb2tzPXt9LHRoaXMucm91dGVyTWFwPW5ldyBGcy5PYmplY3RNYXAsdGhpcy5oYW5kbGVyTWFwPW5ldyBGcy5PYmplY3RNYXAsdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXM9bmV3IEZzLk9iamVjdE1hcCx0aGlzLm1pZGRsZXdhcmVzPVtdLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXA9bmV3IEZzLkludGVyZXN0TWFwKGU9PmUpfXN0YXRpYyBnZXQgZ2xvYmFsSG9va3MoKXtyZXR1cm4gZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N8fChnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fSksZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N9c3RhdGljIHNldCBnbG9iYWxIb29rcyhlKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz1lfXN0YXRpYyBzZXRHbG9iYWxIb29rcyhlKXtsZXQgdD1zLmdsb2JhbEhvb2tzO3MuZ2xvYmFsSG9va3M9ey4uLnQsLi4uZX19c3RhdGljIGNsZWFyR2xvYmFsSG9va3MoKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fX1zZXRIb29rcyhlKXt0aGlzLmhvb2tzPXsuLi50aGlzLmhvb2tzLC4uLmV9fWNhbGxIb29rKGUsdCl7dHJ5e3MuZ2xvYmFsSG9va3NbZV0/Lih0KSx0aGlzLmhvb2tzW2VdPy4odCl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgVHlwZWRSb3V0ZXIgaG9vayBlcnJvciAoJHtlfSk6YCxhKX19YWRkTWlkZGxld2FyZShlKXt0aGlzLm1pZGRsZXdhcmVzLnB1c2goZSl9YWRkVHlwZWRIYW5kbGVyKGUpe2lmKHRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoYGEgVHlwZWRIYW5kbGVyIGZvciAke2UubWV0aG9kfSBhbHJlZHkgZXhpc3RzISBDYW4ndCBhZGQgYW5vdGhlciBvbmUuYCk7dGhpcy5oYW5kbGVyTWFwLmFkZChlKX1hZGRUeXBlZFJvdXRlcihlKXt0aGlzLnJvdXRlck1hcC5maW5kU3luYyhhPT5hPT09ZSl8fCh0aGlzLnJvdXRlck1hcC5hZGQoZSksZS5hZGRUeXBlZFJvdXRlcih0aGlzKSl9Y2hlY2tGb3JUeXBlZEhhbmRsZXIoZSl7cmV0dXJuISF0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlKX1nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSx0PVtdKXt0LnB1c2godGhpcyk7bGV0IGE7cmV0dXJuIGE9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHI9PnIubWV0aG9kPT09ZSksYXx8dGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKS5mb3JFYWNoKHI9PnshYSYmIXQuaW5jbHVkZXMocikmJihhPXIuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUsdCkpfSksYX1nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZSx0PVtdKXt0LnB1c2godGhpcyk7bGV0IGE9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHI9PnIubWV0aG9kPT09ZSk7aWYoYSlyZXR1cm57aGFuZGxlcjphLHJvdXRlcjp0aGlzfTtmb3IobGV0IHIgb2YgdGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKSlpZighdC5pbmNsdWRlcyhyKSl7bGV0IG49ci5nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZSx0KTtpZihuKXJldHVybiBufXJldHVybiBudWxsfXN0YXRpY3t0aGlzLmRlZmF1bHRSb3V0ZU9wdGlvbnM9e2xvY2FsUmVxdWVzdDohMSxza2lwSG9va3M6ITF9fWFzeW5jIHJvdXRlQW5kQWRkUmVzcG9uc2UoZSx0PXt9KXtsZXQgYT17Li4ucy5kZWZhdWx0Um91dGVPcHRpb25zLC4uLnR9O2lmKGU9JDEuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxlLmxvY2FsRGF0YT1lLmxvY2FsRGF0YXx8e30sZS5sb2NhbERhdGEuZmlyc3RUeXBlZHJvdXRlcj10aGlzLGUubWV0aG9kPT09IiMjVmlydHVhbFN0cmVhbSMjIil7bGV0IHI9YXdhaXQgdGhpcy5oYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QoZSk7cmV0dXJuIHIubG9jYWxEYXRhPW51bGwscn1pZihlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVxdWVzdCJ8fGEubG9jYWxSZXF1ZXN0KXtsZXQgcj1EYXRlLm5vdygpO2Euc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDpyLHBheWxvYWQ6ZS5yZXF1ZXN0fSk7bGV0IG49dGhpcy5nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZS5tZXRob2QpO2lmKCFuKXJldHVybiBjb25zb2xlLmxvZyhgQ2Fubm90IGZpbmQgaGFuZGxlciBmb3IgbWV0aG9kbmFtZSAke2UubWV0aG9kfWApLGUuZXJyb3I9e3RleHQ6IlRoZXJlIGlzIG5vIGF2YWlsYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FsbCBvbiB0aGUgc2VydmVyIHNpZGUiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9JDEuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlO2xldHtoYW5kbGVyOm8scm91dGVyOmx9PW47aWYobC5taWRkbGV3YXJlcy5sZW5ndGg+MCl0cnl7Zm9yKGxldCBwIG9mIGwubWlkZGxld2FyZXMpYXdhaXQgcChlKX1jYXRjaChwKXtyZXR1cm4gcCBpbnN0YW5jZW9mIFQxP2UuZXJyb3I9e3RleHQ6cC5lcnJvclRleHQsZGF0YTpwLmVycm9yRGF0YXx8e319OmUuZXJyb3I9e3RleHQ6cC5tZXNzYWdlfHwiTWlkZGxld2FyZSBlcnJvciIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT0kMS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcixwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9cmV0dXJuIGU9YXdhaXQgby5hZGRSZXNwb25zZShlKSxlLmxvY2FsRGF0YT1udWxsLGU9JDEuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlfWVsc2UgcmV0dXJuIGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXNwb25zZSI/KGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCkscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwLmZpbmRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkKT8uZnVsbGZpbGxJbnRlcmVzdChlKSxudWxsKTooY29uc29sZS5sb2coInJlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QiKSxjb25zb2xlLmxvZyhlKSxudWxsKX1hc3luYyBoYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QoZSl7bGV0IHQ9YXdhaXQgdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZmluZChhc3luYyByPT5yLnN0cmVhbUlkPT09ZS5yZXF1ZXN0LnN0cmVhbUlkKTtpZih0KWNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApO2Vsc2UgcmV0dXJuIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCksY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSksZTtyZXR1cm4gYXdhaXQgdC5oYW5kbGVTdHJlYW1UcihlKX19fSk7dmFyIG81dCwkMSx1c2U9ZygoKT0+e0lwKCk7bXcoKTtvNXQ9IiMjIyMjIyMjIyMjIyNDTE9TSU5HIEJJVCMjIyMjIyMjIyMjIyMiLCQxPWNsYXNzIHN7c3RhdGlje2kodGhpcywiVmlydHVhbFN0cmVhbSIpfXN0YXRpYyBlbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHQsYSxyPVtdKXtyZXR1cm4hZXx8eTEuaXNCdWZmZXJMaWtlKGUpP2U6ZSBpbnN0YW5jZW9mIHM/KCFlLnNpZGUmJnQuc2VuZE1ldGhvZCYmKGUuc2lkZT0icmVxdWVzdGluZyIsZS5zZW5kTWV0aG9kPXQuc2VuZE1ldGhvZCksIWUuc2lkZSYmdC50eXBlZHJvdXRlciYmKGUuc2lkZT0icmVzcG9uZGluZyIsZS50eXBlZHJvdXRlcj10LnR5cGVkcm91dGVyLHQudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChlKSksIWEucmVzcG9uc2V8fHIuaW5jbHVkZXMoInJlc3BvbnNlIik/KGUuc3RhcnRLZWVwQWxpdmVMb29wKCkse19pc1ZpcnR1YWxTdHJlYW06ITAsc3RyZWFtSWQ6ZS5zdHJlYW1JZH0pOntfT0JNSVRURURfVklSVFVBTF9TVFJFQU06ITAscmVhc29uOiJwYXRoIGlzIHVuZGVyIC5yZXF1ZXN0OiBvYm1pdHRlZCBmb3IgZGVkdXBsaWNhdGlvbiByZWFzb25zIGluIHJlc3BvbnNlIGN5Y2xlLiJ9KTpBcnJheS5pc0FycmF5KGUpP2UubWFwKChuLG8pPT5zLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKG4sdCxhfHxlLHIuY29uY2F0KFN0cmluZyhvKSkpKTplIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiP09iamVjdC5lbnRyaWVzKGUpLnJlZHVjZSgobixbbyxsXSk9PntsZXQgcD1yLmNvbmNhdChvKTtyZXR1cm4gbltvXT1zLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGwsdCxhfHxlLHApLG59LHt9KTplfXN0YXRpYyBkZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSx0KXtpZih5MS5pc0J1ZmZlckxpa2UoZSl8fGUgaW5zdGFuY2VvZiBoMylyZXR1cm4gZTtpZihlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiKXtpZihlIGluc3RhbmNlb2YgU2V0fHxlIGluc3RhbmNlb2YgTWFwfHxlIGluc3RhbmNlb2YgRGF0ZXx8ZSBpbnN0YW5jZW9mIFJlZ0V4cHx8ZSBpbnN0YW5jZW9mIEVycm9yfHxlIGluc3RhbmNlb2YgUHJvbWlzZXx8dHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gZTtpZihlLl9pc1ZpcnR1YWxTdHJlYW0pe2xldCBhPW5ldyBzO3JldHVybiBhLnN0cmVhbUlkPWUuc3RyZWFtSWQsIWEuc2lkZSYmdC5zZW5kTWV0aG9kJiYoYS5zaWRlPSJyZXF1ZXN0aW5nIixhLnNlbmRNZXRob2Q9dC5zZW5kTWV0aG9kKSwhYS5zaWRlJiZ0LnR5cGVkcm91dGVyJiYoYS5zaWRlPSJyZXNwb25kaW5nIixhLnR5cGVkcm91dGVyPXQudHlwZWRyb3V0ZXIsdC50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGEpKSxhLnN0YXJ0S2VlcEFsaXZlTG9vcCgpLGF9ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1bXTtmb3IobGV0IHIgb2YgZSlhLnB1c2gocy5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsocix0KSk7cmV0dXJuIGF9ZWxzZSByZXR1cm4gT2JqZWN0LmtleXMoZSkucmVkdWNlKChhLHIpPT4oYVtyXT1zLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlW3JdLHQpLGEpLHt9KX1lbHNlIHJldHVybiBlfWNvbnN0cnVjdG9yKCl7dGhpcy5zdHJlYW1JZD1QcC51bmkoKSx0aGlzLmtlZXBBbGl2ZT0hMCx0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IEZzLkJhY2twcmVzc3VyZWRBcnJheSgxNiksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5PW5ldyBGcy5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpfXN0YXRpYyByZWNvbnN0aXR1dGVCaW5hcnlEYXRhKGUpe2lmKGU9PW51bGx8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiBlO2lmKHR5cGVvZiBlPT0ib2JqZWN0Iil7aWYoZS50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgZS5kYXRhPT0ic3RyaW5nIiYmZS5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IGE9ZS5kYXRhLnNsaWNlKDcpO2lmKHR5cGVvZiBCdWZmZXI8InUiKXtsZXQgcj1CdWZmZXIuZnJvbShhLCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoci5idWZmZXIsci5ieXRlT2Zmc2V0LHIuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYihhKSkubWFwKHI9PnIuY2hhckNvZGVBdCgwKSkpfWlmKGUudHlwZT09PSJCdWZmZXIiJiZBcnJheS5pc0FycmF5KGUuZGF0YSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuZGF0YSk7bGV0IHQ9T2JqZWN0LmtleXMoZSk7aWYodC5sZW5ndGg+MCYmdC5ldmVyeShhPT4vXlxkKyQvLnRlc3QoYSkpKXtsZXQgYT1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgciBvZiB0KWFbTnVtYmVyKHIpXT1lW3JdO2lmKGEuZXZlcnkocj0+dHlwZW9mIHI9PSJudW1iZXIiKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSl9fXJldHVybiBlfWFzeW5jIHdvcmtPblF1ZXVlKCl7aWYodGhpcy53b3JraW5nRGVmZXJyZWQpcmV0dXJuIHRoaXMud29ya2luZ0RlZmVycmVkLnByb21pc2U7aWYodGhpcy53b3JraW5nRGVmZXJyZWQ9bXQuZGVmZXIoKSx0aGlzLnNpZGU9PT0icmVxdWVzdGluZyIpe2xldCBlPSF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLHQ9ITEsYT0hMSxyPWkoYXN5bmMoKT0+e2xldCBuPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOlBwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pntjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMX0pO24mJm4ucmVzcG9uc2UmJihhPW4ucmVzcG9uc2UuYmFja3ByZXNzdXJlLHQ9bi5yZXNwb25zZS5uZXh0KX0sImdldEZlZWRiYWNrIik7Zm9yKGF3YWl0IHIoKTt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MHx8dDspe2lmKGEpZm9yKDthOyljb25zb2xlLmxvZygid2FpdGluZyBmb3IgZmVlZGJhY2sgYmVjYXVzZSBvZiBiYWNrcHJlc3N1cmUuLi4iKSxhd2FpdCBYdC5kZWxheUZvcig1MCksYXdhaXQgcigpO2xldCBuO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiYobj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKSk7bGV0IG87bz1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDpQcC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6bj8iY2h1bmsiOiJyZWFkIixiYWNrcHJlc3N1cmU6ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLC4uLm4/e2NodW5rRGF0YTpufTp7fX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT4oY29uc29sZS5sb2coInN0cmVhbSBlbmRlZCBpbW1hdHVyZWx5IiksdGhpcy5rZWVwQWxpdmU9ITEsbnVsbCkpLG8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuY2h1bmtEYXRhJiZ0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChzLnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoby5yZXNwb25zZS5jaHVua0RhdGEpKSxhPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksdD1vJiZvLnJlc3BvbnNlJiZvLnJlc3BvbnNlLm5leHR9fXRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKSx0aGlzLndvcmtpbmdEZWZlcnJlZD1udWxsfWFzeW5jIGhhbmRsZVN0cmVhbVRyKGUpe2lmKGUucmVxdWVzdC5rZWVwQWxpdmU9PT0hMCYmdGhpcy5rZWVwQWxpdmU9PT0hMD90aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpOmUucmVxdWVzdC5rZWVwQWxpdmU9PT0hMSYmKHRoaXMua2VlcEFsaXZlPSExKSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0ia2VlcEFsaXZlIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJmZWVkYmFjayImJihlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImNodW5rIil7aWYodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2gocy5yZWNvbnN0aXR1dGVCaW5hcnlEYXRhKGUucmVxdWVzdC5jaHVua0RhdGEpKSx0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCYmZS5yZXNwb25zZS5iYWNrcHJlc3N1cmU9PT0hMSl7bGV0IHQ9dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCk7ZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImNodW5rIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4xLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxjaHVua0RhdGE6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9fWVsc2UgZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX07ZS5yZXF1ZXN0PW51bGx9cmV0dXJuIGV9YXN5bmMgY2xlYW51cCgpe3RoaXMudHlwZWRyb3V0ZXImJnRoaXMudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLnJlbW92ZSh0aGlzKX1hc3luYyBzdGFydEtlZXBBbGl2ZUxvb3AoKXtpZih0aGlzLnNpZGU9PT0icmVzcG9uZGluZyIpcmV0dXJuO2F3YWl0IFh0LmRlbGF5Rm9yKDApLGNvbnNvbGUubG9nKGBzdGFydGluZyBrZWVwYWxpdmUgbG9vcCBvbiBzaWRlICR7dGhpcy5zaWRlfWApO2xldCBlPTA7Zm9yKDt0aGlzLmtlZXBBbGl2ZTspYXdhaXQgdGhpcy50cmlnZ2VyS2VlcEFsaXZlKCksYXdhaXQgWHQuZGVsYXlGb3IoMWUzKTthd2FpdCBYdC5kZWxheUZvcigxZTMpLGF3YWl0IHRoaXMuY2xlYW51cCgpLGNvbnNvbGUubG9nKGBjbGVhbmVkIHVwIGZvciBzdHJlYW0gJHt0aGlzLnN0cmVhbUlkfWApfWFzeW5jIHRyaWdnZXJLZWVwQWxpdmUoKXtpZih0aGlzLnNpZGU9PT0icmVxdWVzdGluZyIpe2NvbnNvbGUubG9nKCJrZWVwYWxpdmUgc2VudC4iKTtsZXQgZT1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDpQcC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pnt0aGlzLmtlZXBBbGl2ZT0hMX0pO2UmJmUucmVzcG9uc2UmJmUucmVzcG9uc2Uua2VlcEFsaXZlPT09ITE/dGhpcy5rZWVwQWxpdmU9ITE6dGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ9RGF0ZS5ub3coKSxlJiZlLnJlc3BvbnNlJiZlLnJlc3BvbnNlLm5leHQmJnRoaXMud29ya09uUXVldWUoKX1EYXRlLm5vdygpLXRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PjFlNCYmKGNvbnNvbGUubG9nKGBjbG9zaW5nIHN0cmVhbSBmb3IgJHt0aGlzLnN0cmVhbUlkfWApLHRoaXMua2VlcEFsaXZlPSExKX1hc3luYyBzZW5kRGF0YShlKXt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChlKSx0aGlzLndvcmtPblF1ZXVlKCksYXdhaXQgdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JTcGFjZSgpfWFzeW5jIGZldGNoRGF0YSgpe3JldHVybiB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuaGFzU3BhY2UsYXdhaXQgdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JJdGVtcygpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfWFzeW5jIHJlYWRGcm9tV2Vic3RyZWFtKGUsdD0hMCl7bGV0IGE9ZS5nZXRSZWFkZXIoKSxyPSExO2Zvcig7IXI7KXtsZXR7dmFsdWU6bixkb25lOm99PWF3YWl0IGEucmVhZCgpO24mJmF3YWl0IHRoaXMuc2VuZERhdGEobikscj1vfXQmJmF3YWl0IHRoaXMuY2xvc2UoITApfWFzeW5jIHdyaXRlVG9XZWJzdHJlYW0oZSl7bGV0IHQ9ZS5nZXRXcml0ZXIoKTtmb3IoO3RoaXMua2VlcEFsaXZlfHx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tIYXNJdGVtcygpOyl7bGV0IGE9YXdhaXQgdGhpcy5mZXRjaERhdGEoKTtpZihhPT09bzV0KXt0LnJlbGVhc2VMb2NrKCksYXdhaXQgZS5jbG9zZSgpO2JyZWFrfWF3YWl0IHQud3JpdGUoYSl9fWFzeW5jIGNsb3NlKGU9ITEpe2UmJnRoaXMuc2VuZERhdGEobzV0KSx0aGlzLmtlZXBBbGl2ZT0hMX19fSk7dmFyIEU0ZSxQNGU9ZygoKT0+e213KCk7SXAoKTtFNGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRUYXJnZXQiKX1jb25zdHJ1Y3RvcihlKXtpZihlLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXImJiFlLnR5cGVkUm91dGVyUmVmKXRocm93IG5ldyBFcnJvcigieW91IGhhdmUgdG8gc3BlY2lmeSBhIHR5cGVkcm91dGVyIHdoZW4gdXNpbmcgcG9zdG1ldGhvZCB3aXRoIHR5cGVkcm91dGVyIik7dGhpcy5vcHRpb25zPWV9YXN5bmMgcG9zdChlKXtsZXQgdDt0aGlzLm9wdGlvbnMudHlwZWRSb3V0ZXJSZWYmJih0PWF3YWl0IHRoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZi5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkLGUpKTtsZXQgcj1hd2FpdCh0aGlzLm9wdGlvbnMucG9zdE1ldGhvZHx8dGhpcy5vcHRpb25zLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIpKGUpLG47cmV0dXJuIHQ/bj1hd2FpdCB0LmludGVyZXN0RnVsbGZpbGxlZDpyP249cjpuPWUsbn19fSk7ZnVuY3Rpb24gbjV0KHMsZSl7dHJ5e2gzLmdsb2JhbEhvb2tzW3NdPy4oZSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcihgVHlwZWRSZXF1ZXN0IGhvb2sgZXJyb3IgKCR7c30pOmAsdCl9fXZhciBtQWEsZ3csTDRlPWcoKCk9PntJcCgpO3VzZSgpO1M5KCk7bXcoKTtQNGUoKTttQWE9bmV3IF8xLldlYnJlcXVlc3RDbGllbnQ7aShuNXQsImNhbGxHbG9iYWxIb29rIik7Z3c9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRSZXF1ZXN0Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnNraXBIb29rcz0hMSx0eXBlb2YgZT09InN0cmluZyI/dGhpcy51cmxFbmRQb2ludD1lOnRoaXMudHlwZWRUYXJnZXQ9ZSx0aGlzLm1ldGhvZD10fWFzeW5jIGZpcmUoZSx0PSExKXtsZXQgYT1EYXRlLm5vdygpLHI9e21ldGhvZDp0aGlzLm1ldGhvZCxyZXF1ZXN0OmUscmVzcG9uc2U6bnVsbCxjb3JyZWxhdGlvbjp7aWQ6UHAudW5pKCkscGhhc2U6InJlcXVlc3QifX07cj0kMS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhyLHtzZW5kTWV0aG9kOmkobz0+dGhpcy5wb3N0VHJPYmplY3QobyksInNlbmRNZXRob2QiKX0pLHRoaXMuc2tpcEhvb2tzfHxuNXQoIm9uT3V0Z29pbmdSZXF1ZXN0Iix7Y29ycmVsYXRpb25JZDpyLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVxdWVzdCIsdGltZXN0YW1wOmEscGF5bG9hZDplfSk7bGV0IG47cmV0dXJuIG49YXdhaXQgdGhpcy5wb3N0VHJPYmplY3Qocix0KSxuPSQxLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhuLHtzZW5kTWV0aG9kOmkobz0+dGhpcy5wb3N0VHJPYmplY3QobyksInNlbmRNZXRob2QiKX0pLHRoaXMuc2tpcEhvb2tzfHxuNXQoIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ci5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktYSxwYXlsb2FkOm4/LnJlc3BvbnNlLGVycm9yOm4/LmVycm9yPy50ZXh0fSksbi5yZXNwb25zZX1hc3luYyBwb3N0VHJPYmplY3QoZSx0PSExKXtsZXQgYTtpZih0aGlzLnVybEVuZFBvaW50P2E9YXdhaXQgbUFhLnBvc3RKc29uKHRoaXMudXJsRW5kUG9pbnQsZSx0P3tjYWNoZVN0cmF0ZWd5OiJjYWNoZS1maXJzdCJ9Ont9KTphPWF3YWl0IHRoaXMudHlwZWRUYXJnZXQucG9zdChlKSxhLmVycm9yKXtpZihjb25zb2xlLmVycm9yKGBtZXRob2Q6ID4+JHt0aGlzLm1ldGhvZH08PCBnb3QgYW4gRVJST1I6ICIke2EuZXJyb3IudGV4dH0iIHdpdGggZGF0YSAke0pTT04uc3RyaW5naWZ5KGEuZXJyb3IuZGF0YSxudWxsLDIpfWApLCFhLnJldHJ5KXRocm93IG5ldyBUMShhLmVycm9yLnRleHQsYS5lcnJvci5kYXRhKTtyZXR1cm4gbnVsbH1yZXR1cm4gYS5yZXRyeSYmKGNvbnNvbGUubG9nKGBzZXJ2ZXIgcmVxdWVzdGVkIHJldHJ5IGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbjogJHthLnJldHJ5LnJlYXNvbn1gKSxhd2FpdCBYdC5kZWxheUZvcihhLnJldHJ5LndhaXRGb3JNcyksYT1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChlLHQpKSxhfX19KTt2YXIgZ2w9e307eXQoZ2wse1R5cGVkSGFuZGxlcjooKT0+JDRlLFR5cGVkUmVxdWVzdDooKT0+Z3csVHlwZWRSZXNwb25zZUVycm9yOigpPT5UMSxUeXBlZFJvdXRlcjooKT0+aDMsVHlwZWRUYXJnZXQ6KCk9PkU0ZSxWaXJ0dWFsU3RyZWFtOigpPT4kMX0pO3ZhciBwc2U9ZygoKT0+e0w0ZSgpO0Q0ZSgpO213KCk7UzkoKTtQNGUoKTt1c2UoKX0pO2Z1bmN0aW9uIGRzKHMpe2lmKHMmJnR5cGVvZiBzPT0ib2JqZWN0Iilzd2l0Y2goc1tKb10pe2Nhc2UgemM6Y2FzZSB1ZDpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBJYShzKXtpZihzJiZ0eXBlb2Ygcz09Im9iamVjdCIpc3dpdGNoKHNbSm9dKXtjYXNlIGJ3OmNhc2UgemM6Y2FzZSBibDpjYXNlIHVkOnJldHVybiEwfXJldHVybiExfXZhciBidyx2dyx6Yyxoc2UsYmwsdWQsSm8sdmwseGwseWwsQ2EsbGEsd2wseHcsdXM9ZygoKT0+e2J3PVN5bWJvbC5mb3IoInlhbWwuYWxpYXMiKSx2dz1TeW1ib2wuZm9yKCJ5YW1sLmRvY3VtZW50IiksemM9U3ltYm9sLmZvcigieWFtbC5tYXAiKSxoc2U9U3ltYm9sLmZvcigieWFtbC5wYWlyIiksYmw9U3ltYm9sLmZvcigieWFtbC5zY2FsYXIiKSx1ZD1TeW1ib2wuZm9yKCJ5YW1sLnNlcSIpLEpvPVN5bWJvbC5mb3IoInlhbWwubm9kZS50eXBlIiksdmw9aShzPT4hIXMmJnR5cGVvZiBzPT0ib2JqZWN0IiYmc1tKb109PT1idywiaXNBbGlhcyIpLHhsPWkocz0+ISFzJiZ0eXBlb2Ygcz09Im9iamVjdCImJnNbSm9dPT09dncsImlzRG9jdW1lbnQiKSx5bD1pKHM9PiEhcyYmdHlwZW9mIHM9PSJvYmplY3QiJiZzW0pvXT09PXpjLCJpc01hcCIpLENhPWkocz0+ISFzJiZ0eXBlb2Ygcz09Im9iamVjdCImJnNbSm9dPT09aHNlLCJpc1BhaXIiKSxsYT1pKHM9PiEhcyYmdHlwZW9mIHM9PSJvYmplY3QiJiZzW0pvXT09PWJsLCJpc1NjYWxhciIpLHdsPWkocz0+ISFzJiZ0eXBlb2Ygcz09Im9iamVjdCImJnNbSm9dPT09dWQsImlzU2VxIik7aShkcywiaXNDb2xsZWN0aW9uIik7aShJYSwiaXNOb2RlIik7eHc9aShzPT4obGEocyl8fGRzKHMpKSYmISFzLmFuY2hvciwiaGFzQW5jaG9yIil9KTtmdW5jdGlvbiBIbChzLGUpe2xldCB0PWM1dChlKTt4bChzKT9fOShudWxsLHMuY29udGVudHMsdCxPYmplY3QuZnJlZXplKFtzXSkpPT09cGQmJihzLmNvbnRlbnRzPW51bGwpOl85KG51bGwscyx0LE9iamVjdC5mcmVlemUoW10pKX1mdW5jdGlvbiBfOShzLGUsdCxhKXtsZXQgcj1kNXQocyxlLHQsYSk7aWYoSWEocil8fENhKHIpKXJldHVybiB1NXQocyxhLHIpLF85KHMscix0LGEpO2lmKHR5cGVvZiByIT0ic3ltYm9sIil7aWYoZHMoZSkpe2E9T2JqZWN0LmZyZWV6ZShhLmNvbmNhdChlKSk7Zm9yKGxldCBuPTA7bjxlLml0ZW1zLmxlbmd0aDsrK24pe2xldCBvPV85KG4sZS5pdGVtc1tuXSx0LGEpO2lmKHR5cGVvZiBvPT0ibnVtYmVyIiluPW8tMTtlbHNle2lmKG89PT1rbClyZXR1cm4ga2w7bz09PXBkJiYoZS5pdGVtcy5zcGxpY2UobiwxKSxuLT0xKX19fWVsc2UgaWYoQ2EoZSkpe2E9T2JqZWN0LmZyZWV6ZShhLmNvbmNhdChlKSk7bGV0IG49XzkoImtleSIsZS5rZXksdCxhKTtpZihuPT09a2wpcmV0dXJuIGtsO249PT1wZCYmKGUua2V5PW51bGwpO2xldCBvPV85KCJ2YWx1ZSIsZS52YWx1ZSx0LGEpO2lmKG89PT1rbClyZXR1cm4ga2w7bz09PXBkJiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIHJ9YXN5bmMgZnVuY3Rpb24gZjMocyxlKXtsZXQgdD1jNXQoZSk7eGwocyk/YXdhaXQgTTkobnVsbCxzLmNvbnRlbnRzLHQsT2JqZWN0LmZyZWV6ZShbc10pKT09PXBkJiYocy5jb250ZW50cz1udWxsKTphd2FpdCBNOShudWxsLHMsdCxPYmplY3QuZnJlZXplKFtdKSl9YXN5bmMgZnVuY3Rpb24gTTkocyxlLHQsYSl7bGV0IHI9YXdhaXQgZDV0KHMsZSx0LGEpO2lmKElhKHIpfHxDYShyKSlyZXR1cm4gdTV0KHMsYSxyKSxNOShzLHIsdCxhKTtpZih0eXBlb2YgciE9InN5bWJvbCIpe2lmKGRzKGUpKXthPU9iamVjdC5mcmVlemUoYS5jb25jYXQoZSkpO2ZvcihsZXQgbj0wO248ZS5pdGVtcy5sZW5ndGg7KytuKXtsZXQgbz1hd2FpdCBNOShuLGUuaXRlbXNbbl0sdCxhKTtpZih0eXBlb2Ygbz09Im51bWJlciIpbj1vLTE7ZWxzZXtpZihvPT09a2wpcmV0dXJuIGtsO289PT1wZCYmKGUuaXRlbXMuc3BsaWNlKG4sMSksbi09MSl9fX1lbHNlIGlmKENhKGUpKXthPU9iamVjdC5mcmVlemUoYS5jb25jYXQoZSkpO2xldCBuPWF3YWl0IE05KCJrZXkiLGUua2V5LHQsYSk7aWYobj09PWtsKXJldHVybiBrbDtuPT09cGQmJihlLmtleT1udWxsKTtsZXQgbz1hd2FpdCBNOSgidmFsdWUiLGUudmFsdWUsdCxhKTtpZihvPT09a2wpcmV0dXJuIGtsO289PT1wZCYmKGUudmFsdWU9bnVsbCl9fXJldHVybiByfWZ1bmN0aW9uIGM1dChzKXtyZXR1cm4gdHlwZW9mIHM9PSJvYmplY3QiJiYocy5Db2xsZWN0aW9ufHxzLk5vZGV8fHMuVmFsdWUpP09iamVjdC5hc3NpZ24oe0FsaWFzOnMuTm9kZSxNYXA6cy5Ob2RlLFNjYWxhcjpzLk5vZGUsU2VxOnMuTm9kZX0scy5WYWx1ZSYme01hcDpzLlZhbHVlLFNjYWxhcjpzLlZhbHVlLFNlcTpzLlZhbHVlfSxzLkNvbGxlY3Rpb24mJntNYXA6cy5Db2xsZWN0aW9uLFNlcTpzLkNvbGxlY3Rpb259LHMpOnN9ZnVuY3Rpb24gZDV0KHMsZSx0LGEpe2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiB0KHMsZSxhKTtpZih5bChlKSlyZXR1cm4gdC5NYXA/LihzLGUsYSk7aWYod2woZSkpcmV0dXJuIHQuU2VxPy4ocyxlLGEpO2lmKENhKGUpKXJldHVybiB0LlBhaXI/LihzLGUsYSk7aWYobGEoZSkpcmV0dXJuIHQuU2NhbGFyPy4ocyxlLGEpO2lmKHZsKGUpKXJldHVybiB0LkFsaWFzPy4ocyxlLGEpfWZ1bmN0aW9uIHU1dChzLGUsdCl7bGV0IGE9ZVtlLmxlbmd0aC0xXTtpZihkcyhhKSlhLml0ZW1zW3NdPXQ7ZWxzZSBpZihDYShhKSlzPT09ImtleSI/YS5rZXk9dDphLnZhbHVlPXQ7ZWxzZSBpZih4bChhKSlhLmNvbnRlbnRzPXQ7ZWxzZXtsZXQgcj12bChhKT8iYWxpYXMiOiJzY2FsYXIiO3Rocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlcGxhY2Ugbm9kZSB3aXRoICR7cn0gcGFyZW50YCl9fXZhciBrbCxsNXQscGQseXc9ZygoKT0+e3VzKCk7a2w9U3ltYm9sKCJicmVhayB2aXNpdCIpLGw1dD1TeW1ib2woInNraXAgY2hpbGRyZW4iKSxwZD1TeW1ib2woInJlbW92ZSBub2RlIik7aShIbCwidmlzaXQiKSxIbC5CUkVBSz1rbCxIbC5TS0lQPWw1dCxIbC5SRU1PVkU9cGQ7aShfOSwidmlzaXRfIik7aShmMywidmlzaXRBc3luYyIpLGYzLkJSRUFLPWtsLGYzLlNLSVA9bDV0LGYzLlJFTU9WRT1wZDtpKE05LCJ2aXNpdEFzeW5jXyIpO2koYzV0LCJpbml0VmlzaXRvciIpO2koZDV0LCJjYWxsVmlzaXRvciIpO2kodTV0LCJyZXBsYWNlTm9kZSIpfSk7dmFyIGdBYSxiQWEsRDEsSTRlPWcoKCk9Pnt1cygpO3l3KCk7Z0FhPXsiISI6IiUyMSIsIiwiOiIlMkMiLCJbIjoiJTVCIiwiXSI6IiU1RCIsInsiOiIlN0IiLCJ9IjoiJTdEIn0sYkFhPWkocz0+cy5yZXBsYWNlKC9bISxbXF17fV0vZyxlPT5nQWFbZV0pLCJlc2NhcGVUYWdOYW1lIiksRDE9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEaXJlY3RpdmVzIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmRvY1N0YXJ0PW51bGwsdGhpcy5kb2NFbmQ9ITEsdGhpcy55YW1sPU9iamVjdC5hc3NpZ24oe30scy5kZWZhdWx0WWFtbCxlKSx0aGlzLnRhZ3M9T2JqZWN0LmFzc2lnbih7fSxzLmRlZmF1bHRUYWdzLHQpfWNsb25lKCl7bGV0IGU9bmV3IHModGhpcy55YW1sLHRoaXMudGFncyk7cmV0dXJuIGUuZG9jU3RhcnQ9dGhpcy5kb2NTdGFydCxlfWF0RG9jdW1lbnQoKXtsZXQgZT1uZXcgcyh0aGlzLnlhbWwsdGhpcy50YWdzKTtzd2l0Y2godGhpcy55YW1sLnZlcnNpb24pe2Nhc2UiMS4xIjp0aGlzLmF0TmV4dERvY3VtZW50PSEwO2JyZWFrO2Nhc2UiMS4yIjp0aGlzLmF0TmV4dERvY3VtZW50PSExLHRoaXMueWFtbD17ZXhwbGljaXQ6cy5kZWZhdWx0WWFtbC5leHBsaWNpdCx2ZXJzaW9uOiIxLjIifSx0aGlzLnRhZ3M9T2JqZWN0LmFzc2lnbih7fSxzLmRlZmF1bHRUYWdzKTticmVha31yZXR1cm4gZX1hZGQoZSx0KXt0aGlzLmF0TmV4dERvY3VtZW50JiYodGhpcy55YW1sPXtleHBsaWNpdDpzLmRlZmF1bHRZYW1sLmV4cGxpY2l0LHZlcnNpb246IjEuMSJ9LHRoaXMudGFncz1PYmplY3QuYXNzaWduKHt9LHMuZGVmYXVsdFRhZ3MpLHRoaXMuYXROZXh0RG9jdW1lbnQ9ITEpO2xldCBhPWUudHJpbSgpLnNwbGl0KC9bIFx0XSsvKSxyPWEuc2hpZnQoKTtzd2l0Y2gocil7Y2FzZSIlVEFHIjp7aWYoYS5sZW5ndGghPT0yJiYodCgwLCIlVEFHIGRpcmVjdGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IHR3byBwYXJ0cyIpLGEubGVuZ3RoPDIpKXJldHVybiExO2xldFtuLG9dPWE7cmV0dXJuIHRoaXMudGFnc1tuXT1vLCEwfWNhc2UiJVlBTUwiOntpZih0aGlzLnlhbWwuZXhwbGljaXQ9ITAsYS5sZW5ndGghPT0xKXJldHVybiB0KDAsIiVZQU1MIGRpcmVjdGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IG9uZSBwYXJ0IiksITE7bGV0W25dPWE7aWYobj09PSIxLjEifHxuPT09IjEuMiIpcmV0dXJuIHRoaXMueWFtbC52ZXJzaW9uPW4sITA7e2xldCBvPS9eXGQrXC5cZCskLy50ZXN0KG4pO3JldHVybiB0KDYsYFVuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiAke259YCxvKSwhMX19ZGVmYXVsdDpyZXR1cm4gdCgwLGBVbmtub3duIGRpcmVjdGl2ZSAke3J9YCwhMCksITF9fXRhZ05hbWUoZSx0KXtpZihlPT09IiEiKXJldHVybiIhIjtpZihlWzBdIT09IiEiKXJldHVybiB0KGBOb3QgYSB2YWxpZCB0YWc6ICR7ZX1gKSxudWxsO2lmKGVbMV09PT0iPCIpe2xldCBvPWUuc2xpY2UoMiwtMSk7cmV0dXJuIG89PT0iISJ8fG89PT0iISEiPyh0KGBWZXJiYXRpbSB0YWdzIGFyZW4ndCByZXNvbHZlZCwgc28gJHtlfSBpcyBpbnZhbGlkLmApLG51bGwpOihlW2UubGVuZ3RoLTFdIT09Ij4iJiZ0KCJWZXJiYXRpbSB0YWdzIG11c3QgZW5kIHdpdGggYSA+Iiksbyl9bGV0WyxhLHJdPWUubWF0Y2goL14oLiohKShbXiFdKikkL3MpO3J8fHQoYFRoZSAke2V9IHRhZyBoYXMgbm8gc3VmZml4YCk7bGV0IG49dGhpcy50YWdzW2FdO2lmKG4pdHJ5e3JldHVybiBuK2RlY29kZVVSSUNvbXBvbmVudChyKX1jYXRjaChvKXtyZXR1cm4gdChTdHJpbmcobykpLG51bGx9cmV0dXJuIGE9PT0iISI/ZToodChgQ291bGQgbm90IHJlc29sdmUgdGFnOiAke2V9YCksbnVsbCl9dGFnU3RyaW5nKGUpe2ZvcihsZXRbdCxhXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMudGFncykpaWYoZS5zdGFydHNXaXRoKGEpKXJldHVybiB0K2JBYShlLnN1YnN0cmluZyhhLmxlbmd0aCkpO3JldHVybiBlWzBdPT09IiEiP2U6YCE8JHtlfT5gfXRvU3RyaW5nKGUpe2xldCB0PXRoaXMueWFtbC5leHBsaWNpdD9bYCVZQU1MICR7dGhpcy55YW1sLnZlcnNpb258fCIxLjIifWBdOltdLGE9T2JqZWN0LmVudHJpZXModGhpcy50YWdzKSxyO2lmKGUmJmEubGVuZ3RoPjAmJklhKGUuY29udGVudHMpKXtsZXQgbj17fTtIbChlLmNvbnRlbnRzLChvLGwpPT57SWEobCkmJmwudGFnJiYobltsLnRhZ109ITApfSkscj1PYmplY3Qua2V5cyhuKX1lbHNlIHI9W107Zm9yKGxldFtuLG9db2YgYSluPT09IiEhIiYmbz09PSJ0YWc6eWFtbC5vcmcsMjAwMjoifHwoIWV8fHIuc29tZShsPT5sLnN0YXJ0c1dpdGgobykpKSYmdC5wdXNoKGAlVEFHICR7bn0gJHtvfWApO3JldHVybiB0LmpvaW4oYApgKX19O0QxLmRlZmF1bHRZYW1sPXtleHBsaWNpdDohMSx2ZXJzaW9uOiIxLjIifSxEMS5kZWZhdWx0VGFncz17IiEhIjoidGFnOnlhbWwub3JnLDIwMDI6In19KTtmdW5jdGlvbiB3dyhzKXtpZigvW1x4MDAtXHgxOVxzLFtcXXt9XS8udGVzdChzKSl7bGV0IHQ9YEFuY2hvciBtdXN0IG5vdCBjb250YWluIHdoaXRlc3BhY2Ugb3IgY29udHJvbCBjaGFyYWN0ZXJzOiAke0pTT04uc3RyaW5naWZ5KHMpfWA7dGhyb3cgbmV3IEVycm9yKHQpfXJldHVybiEwfWZ1bmN0aW9uIGZzZShzKXtsZXQgZT1uZXcgU2V0O3JldHVybiBIbChzLHtWYWx1ZSh0LGEpe2EuYW5jaG9yJiZlLmFkZChhLmFuY2hvcil9fSksZX1mdW5jdGlvbiBtc2UocyxlKXtmb3IobGV0IHQ9MTs7Kyt0KXtsZXQgYT1gJHtzfSR7dH1gO2lmKCFlLmhhcyhhKSlyZXR1cm4gYX19ZnVuY3Rpb24gQTRlKHMsZSl7bGV0IHQ9W10sYT1uZXcgTWFwLHI9bnVsbDtyZXR1cm57b25BbmNob3I6aShuPT57dC5wdXNoKG4pLHI/PyhyPWZzZShzKSk7bGV0IG89bXNlKGUscik7cmV0dXJuIHIuYWRkKG8pLG99LCJvbkFuY2hvciIpLHNldEFuY2hvcnM6aSgoKT0+e2ZvcihsZXQgbiBvZiB0KXtsZXQgbz1hLmdldChuKTtpZih0eXBlb2Ygbz09Im9iamVjdCImJm8uYW5jaG9yJiYobGEoby5ub2RlKXx8ZHMoby5ub2RlKSkpby5ub2RlLmFuY2hvcj1vLmFuY2hvcjtlbHNle2xldCBsPW5ldyBFcnJvcigiRmFpbGVkIHRvIHJlc29sdmUgcmVwZWF0ZWQgb2JqZWN0ICh0aGlzIHNob3VsZCBub3QgaGFwcGVuKSIpO3Rocm93IGwuc291cmNlPW4sbH19fSwic2V0QW5jaG9ycyIpLHNvdXJjZU9iamVjdHM6YX19dmFyIGdzZT1nKCgpPT57dXMoKTt5dygpO2kod3csImFuY2hvcklzVmFsaWQiKTtpKGZzZSwiYW5jaG9yTmFtZXMiKTtpKG1zZSwiZmluZE5ld0FuY2hvciIpO2koQTRlLCJjcmVhdGVOb2RlQW5jaG9ycyIpfSk7ZnVuY3Rpb24gazAocyxlLHQsYSl7aWYoYSYmdHlwZW9mIGE9PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCByPTAsbj1hLmxlbmd0aDtyPG47KytyKXtsZXQgbz1hW3JdLGw9azAocyxhLFN0cmluZyhyKSxvKTtsPT09dm9pZCAwP2RlbGV0ZSBhW3JdOmwhPT1vJiYoYVtyXT1sKX1lbHNlIGlmKGEgaW5zdGFuY2VvZiBNYXApZm9yKGxldCByIG9mIEFycmF5LmZyb20oYS5rZXlzKCkpKXtsZXQgbj1hLmdldChyKSxvPWswKHMsYSxyLG4pO289PT12b2lkIDA/YS5kZWxldGUocik6byE9PW4mJmEuc2V0KHIsbyl9ZWxzZSBpZihhIGluc3RhbmNlb2YgU2V0KWZvcihsZXQgciBvZiBBcnJheS5mcm9tKGEpKXtsZXQgbj1rMChzLGEscixyKTtuPT09dm9pZCAwP2EuZGVsZXRlKHIpOm4hPT1yJiYoYS5kZWxldGUociksYS5hZGQobikpfWVsc2UgZm9yKGxldFtyLG5db2YgT2JqZWN0LmVudHJpZXMoYSkpe2xldCBvPWswKHMsYSxyLG4pO289PT12b2lkIDA/ZGVsZXRlIGFbcl06byE9PW4mJihhW3JdPW8pfXJldHVybiBzLmNhbGwoZSx0LGEpfXZhciBONGU9ZygoKT0+e2koazAsImFwcGx5UmV2aXZlciIpfSk7ZnVuY3Rpb24gU3IocyxlLHQpe2lmKEFycmF5LmlzQXJyYXkocykpcmV0dXJuIHMubWFwKChhLHIpPT5TcihhLFN0cmluZyhyKSx0KSk7aWYocyYmdHlwZW9mIHMudG9KU09OPT0iZnVuY3Rpb24iKXtpZighdHx8IXh3KHMpKXJldHVybiBzLnRvSlNPTihlLHQpO2xldCBhPXthbGlhc0NvdW50OjAsY291bnQ6MSxyZXM6dm9pZCAwfTt0LmFuY2hvcnMuc2V0KHMsYSksdC5vbkNyZWF0ZT1uPT57YS5yZXM9bixkZWxldGUgdC5vbkNyZWF0ZX07bGV0IHI9cy50b0pTT04oZSx0KTtyZXR1cm4gdC5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShyKSxyfXJldHVybiB0eXBlb2Ygcz09ImJpZ2ludCImJiF0Py5rZWVwP051bWJlcihzKTpzfXZhciBBcD1nKCgpPT57dXMoKTtpKFNyLCJ0b0pTIil9KTt2YXIgUzAsYnNlPWcoKCk9PntONGUoKTt1cygpO0FwKCk7UzA9Y2xhc3N7c3RhdGlje2kodGhpcywiTm9kZUJhc2UiKX1jb25zdHJ1Y3RvcihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxKbyx7dmFsdWU6ZX0pfWNsb25lKCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiB0aGlzLnJhbmdlJiYoZS5yYW5nZT10aGlzLnJhbmdlLnNsaWNlKCkpLGV9dG9KUyhlLHttYXBBc01hcDp0LG1heEFsaWFzQ291bnQ6YSxvbkFuY2hvcjpyLHJldml2ZXI6bn09e30pe2lmKCF4bChlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBIGRvY3VtZW50IGFyZ3VtZW50IGlzIHJlcXVpcmVkIik7bGV0IG89e2FuY2hvcnM6bmV3IE1hcCxkb2M6ZSxrZWVwOiEwLG1hcEFzTWFwOnQ9PT0hMCxtYXBLZXlXYXJuZWQ6ITEsbWF4QWxpYXNDb3VudDp0eXBlb2YgYT09Im51bWJlciI/YToxMDB9LGw9U3IodGhpcywiIixvKTtpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIilmb3IobGV0e2NvdW50OnAscmVzOmR9b2Ygby5hbmNob3JzLnZhbHVlcygpKXIoZCxwKTtyZXR1cm4gdHlwZW9mIG49PSJmdW5jdGlvbiI/azAobix7IiI6bH0sIiIsbCk6bH19fSk7ZnVuY3Rpb24gdnNlKHMsZSx0KXtpZih2bChlKSl7bGV0IGE9ZS5yZXNvbHZlKHMpLHI9dCYmYSYmdC5nZXQoYSk7cmV0dXJuIHI/ci5jb3VudCpyLmFsaWFzQ291bnQ6MH1lbHNlIGlmKGRzKGUpKXtsZXQgYT0wO2ZvcihsZXQgciBvZiBlLml0ZW1zKXtsZXQgbj12c2UocyxyLHQpO24+YSYmKGE9bil9cmV0dXJuIGF9ZWxzZSBpZihDYShlKSl7bGV0IGE9dnNlKHMsZS5rZXksdCkscj12c2UocyxlLnZhbHVlLHQpO3JldHVybiBNYXRoLm1heChhLHIpfXJldHVybiAxfXZhciBDYyxrdz1nKCgpPT57Z3NlKCk7eXcoKTt1cygpO2JzZSgpO0FwKCk7Q2M9Y2xhc3MgZXh0ZW5kcyBTMHtzdGF0aWN7aSh0aGlzLCJBbGlhcyIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGJ3KSx0aGlzLnNvdXJjZT1lLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJ0YWciLHtzZXQoKXt0aHJvdyBuZXcgRXJyb3IoIkFsaWFzIG5vZGVzIGNhbm5vdCBoYXZlIHRhZ3MiKX19KX1yZXNvbHZlKGUsdCl7aWYodD8ubWF4QWxpYXNDb3VudD09PTApdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJBbGlhcyByZXNvbHV0aW9uIGlzIGRpc2FibGVkIik7bGV0IGE7dD8uYWxpYXNSZXNvbHZlQ2FjaGU/YT10LmFsaWFzUmVzb2x2ZUNhY2hlOihhPVtdLEhsKGUse05vZGU6aSgobixvKT0+eyh2bChvKXx8eHcobykpJiZhLnB1c2gobyl9LCJOb2RlIil9KSx0JiYodC5hbGlhc1Jlc29sdmVDYWNoZT1hKSk7bGV0IHI7Zm9yKGxldCBuIG9mIGEpe2lmKG49PT10aGlzKWJyZWFrO24uYW5jaG9yPT09dGhpcy5zb3VyY2UmJihyPW4pfXJldHVybiByfXRvSlNPTihlLHQpe2lmKCF0KXJldHVybntzb3VyY2U6dGhpcy5zb3VyY2V9O2xldHthbmNob3JzOmEsZG9jOnIsbWF4QWxpYXNDb3VudDpufT10LG89dGhpcy5yZXNvbHZlKHIsdCk7aWYoIW8pe2xldCBwPWBVbnJlc29sdmVkIGFsaWFzICh0aGUgYW5jaG9yIG11c3QgYmUgc2V0IGJlZm9yZSB0aGUgYWxpYXMpOiAke3RoaXMuc291cmNlfWA7dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKHApfWxldCBsPWEuZ2V0KG8pO2lmKGx8fChTcihvLG51bGwsdCksbD1hLmdldChvKSksbD8ucmVzPT09dm9pZCAwKXtsZXQgcD0iVGhpcyBzaG91bGQgbm90IGhhcHBlbjogQWxpYXMgYW5jaG9yIHdhcyBub3QgcmVzb2x2ZWQ/Ijt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IocCl9aWYobj49MCYmKGwuY291bnQrPTEsbC5hbGlhc0NvdW50PT09MCYmKGwuYWxpYXNDb3VudD12c2UocixvLGEpKSxsLmNvdW50KmwuYWxpYXNDb3VudD5uKSl7bGV0IHA9IkV4Y2Vzc2l2ZSBhbGlhcyBjb3VudCBpbmRpY2F0ZXMgYSByZXNvdXJjZSBleGhhdXN0aW9uIGF0dGFjayI7dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKHApfXJldHVybiBsLnJlc310b1N0cmluZyhlLHQsYSl7bGV0IHI9YCoke3RoaXMuc291cmNlfWA7aWYoZSl7aWYod3codGhpcy5zb3VyY2UpLGUub3B0aW9ucy52ZXJpZnlBbGlhc09yZGVyJiYhZS5hbmNob3JzLmhhcyh0aGlzLnNvdXJjZSkpe2xldCBuPWBVbnJlc29sdmVkIGFsaWFzICh0aGUgYW5jaG9yIG11c3QgYmUgc2V0IGJlZm9yZSB0aGUgYWxpYXMpOiAke3RoaXMuc291cmNlfWA7dGhyb3cgbmV3IEVycm9yKG4pfWlmKGUuaW1wbGljaXRLZXkpcmV0dXJuYCR7cn0gYH1yZXR1cm4gcn19O2kodnNlLCJnZXRBbGlhc0NvdW50Iil9KTt2YXIgU3csTHQsX3I9ZygoKT0+e3VzKCk7YnNlKCk7QXAoKTtTdz1pKHM9PiFzfHx0eXBlb2YgcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIHMhPSJvYmplY3QiLCJpc1NjYWxhclZhbHVlIiksTHQ9Y2xhc3MgZXh0ZW5kcyBTMHtzdGF0aWN7aSh0aGlzLCJTY2FsYXIiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihibCksdGhpcy52YWx1ZT1lfXRvSlNPTihlLHQpe3JldHVybiB0Py5rZWVwP3RoaXMudmFsdWU6U3IodGhpcy52YWx1ZSxlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKX19O0x0LkJMT0NLX0ZPTERFRD0iQkxPQ0tfRk9MREVEIixMdC5CTE9DS19MSVRFUkFMPSJCTE9DS19MSVRFUkFMIixMdC5QTEFJTj0iUExBSU4iLEx0LlFVT1RFX0RPVUJMRT0iUVVPVEVfRE9VQkxFIixMdC5RVU9URV9TSU5HTEU9IlFVT1RFX1NJTkdMRSJ9KTtmdW5jdGlvbiB4QWEocyxlLHQpe2lmKGUpe2xldCBhPXQuZmlsdGVyKG49Pm4udGFnPT09ZSkscj1hLmZpbmQobj0+IW4uZm9ybWF0KT8/YVswXTtpZighcil0aHJvdyBuZXcgRXJyb3IoYFRhZyAke2V9IG5vdCBmb3VuZGApO3JldHVybiByfXJldHVybiB0LmZpbmQoYT0+YS5pZGVudGlmeT8uKHMpJiYhYS5mb3JtYXQpfWZ1bmN0aW9uIGhkKHMsZSx0KXtpZih4bChzKSYmKHM9cy5jb250ZW50cyksSWEocykpcmV0dXJuIHM7aWYoQ2Eocykpe2xldCBjPXQuc2NoZW1hW3pjXS5jcmVhdGVOb2RlPy4odC5zY2hlbWEsbnVsbCx0KTtyZXR1cm4gYy5pdGVtcy5wdXNoKHMpLGN9KHMgaW5zdGFuY2VvZiBTdHJpbmd8fHMgaW5zdGFuY2VvZiBOdW1iZXJ8fHMgaW5zdGFuY2VvZiBCb29sZWFufHx0eXBlb2YgQmlnSW50PCJ1IiYmcyBpbnN0YW5jZW9mIEJpZ0ludCkmJihzPXMudmFsdWVPZigpKTtsZXR7YWxpYXNEdXBsaWNhdGVPYmplY3RzOmEsb25BbmNob3I6cixvblRhZ09iajpuLHNjaGVtYTpvLHNvdXJjZU9iamVjdHM6bH09dCxwO2lmKGEmJnMmJnR5cGVvZiBzPT0ib2JqZWN0Iil7aWYocD1sLmdldChzKSxwKXJldHVybiBwLmFuY2hvcj8/KHAuYW5jaG9yPXIocykpLG5ldyBDYyhwLmFuY2hvcik7cD17YW5jaG9yOm51bGwsbm9kZTpudWxsfSxsLnNldChzLHApfWU/LnN0YXJ0c1dpdGgoIiEhIikmJihlPXZBYStlLnNsaWNlKDIpKTtsZXQgZD14QWEocyxlLG8udGFncyk7aWYoIWQpe2lmKHMmJnR5cGVvZiBzLnRvSlNPTj09ImZ1bmN0aW9uIiYmKHM9cy50b0pTT04oKSksIXN8fHR5cGVvZiBzIT0ib2JqZWN0Iil7bGV0IGM9bmV3IEx0KHMpO3JldHVybiBwJiYocC5ub2RlPWMpLGN9ZD1zIGluc3RhbmNlb2YgTWFwP29bemNdOlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3Qocyk/b1t1ZF06b1t6Y119biYmKG4oZCksZGVsZXRlIHQub25UYWdPYmopO2xldCB1PWQ/LmNyZWF0ZU5vZGU/ZC5jcmVhdGVOb2RlKHQuc2NoZW1hLHMsdCk6dHlwZW9mIGQ/Lm5vZGVDbGFzcz8uZnJvbT09ImZ1bmN0aW9uIj9kLm5vZGVDbGFzcy5mcm9tKHQuc2NoZW1hLHMsdCk6bmV3IEx0KHMpO3JldHVybiBlP3UudGFnPWU6ZC5kZWZhdWx0fHwodS50YWc9ZC50YWcpLHAmJihwLm5vZGU9dSksdX12YXIgdkFhLF93PWcoKCk9PntrdygpO3VzKCk7X3IoKTt2QWE9InRhZzp5YW1sLm9yZywyMDAyOiI7aSh4QWEsImZpbmRUYWdPYmplY3QiKTtpKGhkLCJjcmVhdGVOb2RlIil9KTtmdW5jdGlvbiB6OShzLGUsdCl7bGV0IGE9dDtmb3IobGV0IHI9ZS5sZW5ndGgtMTtyPj0wOy0tcil7bGV0IG49ZVtyXTtpZih0eXBlb2Ygbj09Im51bWJlciImJk51bWJlci5pc0ludGVnZXIobikmJm4+PTApe2xldCBvPVtdO29bbl09YSxhPW99ZWxzZSBhPW5ldyBNYXAoW1tuLGFdXSl9cmV0dXJuIGhkKGEsdm9pZCAwLHthbGlhc0R1cGxpY2F0ZU9iamVjdHM6ITEsa2VlcFVuZGVmaW5lZDohMSxvbkFuY2hvcjppKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBwbGVhc2UgcmVwb3J0IGEgYnVnLiIpfSwib25BbmNob3IiKSxzY2hlbWE6cyxzb3VyY2VPYmplY3RzOm5ldyBNYXB9KX12YXIgZzMsbTMseHNlPWcoKCk9PntfdygpO3VzKCk7YnNlKCk7aSh6OSwiY29sbGVjdGlvbkZyb21QYXRoIik7ZzM9aShzPT5zPT1udWxsfHx0eXBlb2Ygcz09Im9iamVjdCImJiEhc1tTeW1ib2wuaXRlcmF0b3JdKCkubmV4dCgpLmRvbmUsImlzRW1wdHlQYXRoIiksbTM9Y2xhc3MgZXh0ZW5kcyBTMHtzdGF0aWN7aSh0aGlzLCJDb2xsZWN0aW9uIil9Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywic2NoZW1hIix7dmFsdWU6dCxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMH0pfWNsb25lKGUpe2xldCB0PU9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHRoaXMpKTtyZXR1cm4gZSYmKHQuc2NoZW1hPWUpLHQuaXRlbXM9dC5pdGVtcy5tYXAoYT0+SWEoYSl8fENhKGEpP2EuY2xvbmUoZSk6YSksdGhpcy5yYW5nZSYmKHQucmFuZ2U9dGhpcy5yYW5nZS5zbGljZSgpKSx0fWFkZEluKGUsdCl7aWYoZzMoZSkpdGhpcy5hZGQodCk7ZWxzZXtsZXRbYSwuLi5yXT1lLG49dGhpcy5nZXQoYSwhMCk7aWYoZHMobikpbi5hZGRJbihyLHQpO2Vsc2UgaWYobj09PXZvaWQgMCYmdGhpcy5zY2hlbWEpdGhpcy5zZXQoYSx6OSh0aGlzLnNjaGVtYSxyLHQpKTtlbHNlIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWUFNTCBjb2xsZWN0aW9uIGF0ICR7YX0uIFJlbWFpbmluZyBwYXRoOiAke3J9YCl9fWRlbGV0ZUluKGUpe2xldFt0LC4uLmFdPWU7aWYoYS5sZW5ndGg9PT0wKXJldHVybiB0aGlzLmRlbGV0ZSh0KTtsZXQgcj10aGlzLmdldCh0LCEwKTtpZihkcyhyKSlyZXR1cm4gci5kZWxldGVJbihhKTt0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke3R9LiBSZW1haW5pbmcgcGF0aDogJHthfWApfWdldEluKGUsdCl7bGV0W2EsLi4ucl09ZSxuPXRoaXMuZ2V0KGEsITApO3JldHVybiByLmxlbmd0aD09PTA/IXQmJmxhKG4pP24udmFsdWU6bjpkcyhuKT9uLmdldEluKHIsdCk6dm9pZCAwfWhhc0FsbE51bGxWYWx1ZXMoZSl7cmV0dXJuIHRoaXMuaXRlbXMuZXZlcnkodD0+e2lmKCFDYSh0KSlyZXR1cm4hMTtsZXQgYT10LnZhbHVlO3JldHVybiBhPT1udWxsfHxlJiZsYShhKSYmYS52YWx1ZT09bnVsbCYmIWEuY29tbWVudEJlZm9yZSYmIWEuY29tbWVudCYmIWEudGFnfSl9aGFzSW4oZSl7bGV0W3QsLi4uYV09ZTtpZihhLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuaGFzKHQpO2xldCByPXRoaXMuZ2V0KHQsITApO3JldHVybiBkcyhyKT9yLmhhc0luKGEpOiExfXNldEluKGUsdCl7bGV0W2EsLi4ucl09ZTtpZihyLmxlbmd0aD09PTApdGhpcy5zZXQoYSx0KTtlbHNle2xldCBuPXRoaXMuZ2V0KGEsITApO2lmKGRzKG4pKW4uc2V0SW4ocix0KTtlbHNlIGlmKG49PT12b2lkIDAmJnRoaXMuc2NoZW1hKXRoaXMuc2V0KGEsejkodGhpcy5zY2hlbWEscix0KSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke2F9LiBSZW1haW5pbmcgcGF0aDogJHtyfWApfX19fSk7ZnVuY3Rpb24gcWwocyxlKXtyZXR1cm4vXlxuKyQvLnRlc3Qocyk/cy5zdWJzdHJpbmcoMSk6ZT9zLnJlcGxhY2UoL14oPyEgKiQpL2dtLGUpOnN9dmFyIFI0ZSxMMSxNdz1nKCgpPT57UjRlPWkocz0+cy5yZXBsYWNlKC9eKD8hJCkoPzogJCk/L2dtLCIjIiksInN0cmluZ2lmeUNvbW1lbnQiKTtpKHFsLCJpbmRlbnRDb21tZW50Iik7TDE9aSgocyxlLHQpPT5zLmVuZHNXaXRoKGAKYCk/cWwodCxlKTp0LmluY2x1ZGVzKGAKYCk/YApgK3FsKHQsZSk6KHMuZW5kc1dpdGgoIiAiKT8iIjoiICIpK3QsImxpbmVDb21tZW50Iil9KTtmdW5jdGlvbiBUOShzLGUsdD0iZmxvdyIse2luZGVudEF0U3RhcnQ6YSxsaW5lV2lkdGg6cj04MCxtaW5Db250ZW50V2lkdGg6bj0yMCxvbkZvbGQ6byxvbk92ZXJmbG93Omx9PXt9KXtpZighcnx8cjwwKXJldHVybiBzO3I8biYmKG49MCk7bGV0IHA9TWF0aC5tYXgoMStuLDErci1lLmxlbmd0aCk7aWYocy5sZW5ndGg8PXApcmV0dXJuIHM7bGV0IGQ9W10sdT17fSxjPXItZS5sZW5ndGg7dHlwZW9mIGE9PSJudW1iZXIiJiYoYT5yLU1hdGgubWF4KDIsbik/ZC5wdXNoKDApOmM9ci1hKTtsZXQgYix2LHg9ITEsbT0tMSxmPS0xLHk9LTE7dD09PXp3JiYobT1wNXQocyxtLGUubGVuZ3RoKSxtIT09LTEmJihjPW0rcCkpO2ZvcihsZXQgejt6PXNbbSs9MV07KXtpZih0PT09QzkmJno9PT0iXFwiKXtzd2l0Y2goZj1tLHNbbSsxXSl7Y2FzZSJ4IjptKz0zO2JyZWFrO2Nhc2UidSI6bSs9NTticmVhaztjYXNlIlUiOm0rPTk7YnJlYWs7ZGVmYXVsdDptKz0xfXk9bX1pZih6PT09YApgKXQ9PT16dyYmKG09cDV0KHMsbSxlLmxlbmd0aCkpLGM9bStlLmxlbmd0aCtwLGI9dm9pZCAwO2Vsc2V7aWYoej09PSIgIiYmdiYmdiE9PSIgIiYmdiE9PWAKYCYmdiE9PSIJIil7bGV0IE49c1ttKzFdO04mJk4hPT0iICImJk4hPT1gCmAmJk4hPT0iCSImJihiPW0pfWlmKG0+PWMpaWYoYilkLnB1c2goYiksYz1iK3AsYj12b2lkIDA7ZWxzZSBpZih0PT09Qzkpe2Zvcig7dj09PSIgInx8dj09PSIJIjspdj16LHo9c1ttKz0xXSx4PSEwO2xldCBOPW0+eSsxP20tMjpmLTE7aWYodVtOXSlyZXR1cm4gcztkLnB1c2goTiksdVtOXT0hMCxjPU4rcCxiPXZvaWQgMH1lbHNlIHg9ITB9dj16fWlmKHgmJmwmJmwoKSxkLmxlbmd0aD09PTApcmV0dXJuIHM7byYmbygpO2xldCBNPXMuc2xpY2UoMCxkWzBdKTtmb3IobGV0IHo9MDt6PGQubGVuZ3RoOysreil7bGV0IE49ZFt6XSxDPWRbeisxXXx8cy5sZW5ndGg7Tj09PTA/TT1gCiR7ZX0ke3Muc2xpY2UoMCxDKX1gOih0PT09QzkmJnVbTl0mJihNKz1gJHtzW05dfVxcYCksTSs9YAoke2V9JHtzLnNsaWNlKE4rMSxDKX1gKX1yZXR1cm4gTX1mdW5jdGlvbiBwNXQocyxlLHQpe2xldCBhPWUscj1lKzEsbj1zW3JdO2Zvcig7bj09PSIgInx8bj09PSIJIjspaWYoZTxyK3Qpbj1zWysrZV07ZWxzZXtkbyBuPXNbKytlXTt3aGlsZShuJiZuIT09YApgKTthPWUscj1lKzEsbj1zW3JdfXJldHVybiBhfXZhciB5c2UsencsQzksaDV0PWcoKCk9Pnt5c2U9ImZsb3ciLHp3PSJibG9jayIsQzk9InF1b3RlZCI7aShUOSwiZm9sZEZsb3dMaW5lcyIpO2kocDV0LCJjb25zdW1lTW9yZUluZGVudGVkTGluZXMiKX0pO2Z1bmN0aW9uIHlBYShzLGUsdCl7aWYoIWV8fGU8MClyZXR1cm4hMTtsZXQgYT1lLXQscj1zLmxlbmd0aDtpZihyPD1hKXJldHVybiExO2ZvcihsZXQgbj0wLG89MDtuPHI7KytuKWlmKHNbbl09PT1gCmApe2lmKG4tbz5hKXJldHVybiEwO2lmKG89bisxLHItbzw9YSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBDdyhzLGUpe2xldCB0PUpTT04uc3RyaW5naWZ5KHMpO2lmKGUub3B0aW9ucy5kb3VibGVRdW90ZWRBc0pTT04pcmV0dXJuIHQ7bGV0e2ltcGxpY2l0S2V5OmF9PWUscj1lLm9wdGlvbnMuZG91YmxlUXVvdGVkTWluTXVsdGlMaW5lTGVuZ3RoLG49ZS5pbmRlbnR8fChrc2Uocyk/IiAgIjoiIiksbz0iIixsPTA7Zm9yKGxldCBwPTAsZD10W3BdO2Q7ZD10WysrcF0paWYoZD09PSIgIiYmdFtwKzFdPT09IlxcIiYmdFtwKzJdPT09Im4iJiYobys9dC5zbGljZShsLHApKyJcXCAiLHArPTEsbD1wLGQ9IlxcIiksZD09PSJcXCIpc3dpdGNoKHRbcCsxXSl7Y2FzZSJ1Ijp7bys9dC5zbGljZShsLHApO2xldCB1PXQuc3Vic3RyKHArMiw0KTtzd2l0Y2godSl7Y2FzZSIwMDAwIjpvKz0iXFwwIjticmVhaztjYXNlIjAwMDciOm8rPSJcXGEiO2JyZWFrO2Nhc2UiMDAwYiI6bys9IlxcdiI7YnJlYWs7Y2FzZSIwMDFiIjpvKz0iXFxlIjticmVhaztjYXNlIjAwODUiOm8rPSJcXE4iO2JyZWFrO2Nhc2UiMDBhMCI6bys9IlxcXyI7YnJlYWs7Y2FzZSIyMDI4IjpvKz0iXFxMIjticmVhaztjYXNlIjIwMjkiOm8rPSJcXFAiO2JyZWFrO2RlZmF1bHQ6dS5zdWJzdHIoMCwyKT09PSIwMCI/bys9IlxceCIrdS5zdWJzdHIoMik6bys9dC5zdWJzdHIocCw2KX1wKz01LGw9cCsxfWJyZWFrO2Nhc2UibiI6aWYoYXx8dFtwKzJdPT09JyInfHx0Lmxlbmd0aDxyKXArPTE7ZWxzZXtmb3Iobys9dC5zbGljZShsLHApK2AKCmA7dFtwKzJdPT09IlxcIiYmdFtwKzNdPT09Im4iJiZ0W3ArNF0hPT0nIic7KW8rPWAKYCxwKz0yO28rPW4sdFtwKzJdPT09IiAiJiYobys9IlxcIikscCs9MSxsPXArMX1icmVhaztkZWZhdWx0OnArPTF9cmV0dXJuIG89bD9vK3Quc2xpY2UobCk6dCxhP286VDkobyxuLEM5LHdzZShlLCExKSl9ZnVuY3Rpb24gTzRlKHMsZSl7aWYoZS5vcHRpb25zLnNpbmdsZVF1b3RlPT09ITF8fGUuaW1wbGljaXRLZXkmJnMuaW5jbHVkZXMoYApgKXx8L1sgXHRdXG58XG5bIFx0XS8udGVzdChzKSlyZXR1cm4gQ3cocyxlKTtsZXQgdD1lLmluZGVudHx8KGtzZShzKT8iICAiOiIiKSxhPSInIitzLnJlcGxhY2UoLycvZywiJyciKS5yZXBsYWNlKC9cbisvZyxgJCYKJHt0fWApKyInIjtyZXR1cm4gZS5pbXBsaWNpdEtleT9hOlQ5KGEsdCx5c2Usd3NlKGUsITEpKX1mdW5jdGlvbiAkOShzLGUpe2xldHtzaW5nbGVRdW90ZTp0fT1lLm9wdGlvbnMsYTtpZih0PT09ITEpYT1DdztlbHNle2xldCByPXMuaW5jbHVkZXMoJyInKSxuPXMuaW5jbHVkZXMoIiciKTtyJiYhbj9hPU80ZTpuJiYhcj9hPUN3OmE9dD9PNGU6Q3d9cmV0dXJuIGEocyxlKX1mdW5jdGlvbiBTc2Uoe2NvbW1lbnQ6cyx0eXBlOmUsdmFsdWU6dH0sYSxyLG4pe2xldHtibG9ja1F1b3RlOm8sY29tbWVudFN0cmluZzpsLGxpbmVXaWR0aDpwfT1hLm9wdGlvbnM7aWYoIW98fC9cbltcdCBdKyQvLnRlc3QodCkpcmV0dXJuICQ5KHQsYSk7bGV0IGQ9YS5pbmRlbnR8fChhLmZvcmNlQmxvY2tJbmRlbnR8fGtzZSh0KT8iICAiOiIiKSx1PW89PT0ibGl0ZXJhbCI/ITA6bz09PSJmb2xkZWQifHxlPT09THQuQkxPQ0tfRk9MREVEPyExOmU9PT1MdC5CTE9DS19MSVRFUkFMPyEwOiF5QWEodCxwLGQubGVuZ3RoKTtpZighdClyZXR1cm4gdT9gfApgOmA+CmA7bGV0IGMsYjtmb3IoYj10Lmxlbmd0aDtiPjA7LS1iKXtsZXQgQz10W2ItMV07aWYoQyE9PWAKYCYmQyE9PSIJIiYmQyE9PSIgIilicmVha31sZXQgdj10LnN1YnN0cmluZyhiKSx4PXYuaW5kZXhPZihgCmApO3g9PT0tMT9jPSItIjp0PT09dnx8eCE9PXYubGVuZ3RoLTE/KGM9IisiLG4mJm4oKSk6Yz0iIix2JiYodD10LnNsaWNlKDAsLXYubGVuZ3RoKSx2W3YubGVuZ3RoLTFdPT09YApgJiYodj12LnNsaWNlKDAsLTEpKSx2PXYucmVwbGFjZShGNGUsYCQmJHtkfWApKTtsZXQgbT0hMSxmLHk9LTE7Zm9yKGY9MDtmPHQubGVuZ3RoOysrZil7bGV0IEM9dFtmXTtpZihDPT09IiAiKW09ITA7ZWxzZSBpZihDPT09YApgKXk9ZjtlbHNlIGJyZWFrfWxldCBNPXQuc3Vic3RyaW5nKDAseTxmP3krMTpmKTtNJiYodD10LnN1YnN0cmluZyhNLmxlbmd0aCksTT1NLnJlcGxhY2UoL1xuKy9nLGAkJiR7ZH1gKSk7bGV0IE49KG0/ZD8iMiI6IjEiOiIiKStjO2lmKHMmJihOKz0iICIrbChzLnJlcGxhY2UoLyA/W1xyXG5dKy9nLCIgIikpLHImJnIoKSksIXUpe2xldCBDPXQucmVwbGFjZSgvXG4rL2csYAokJmApLnJlcGxhY2UoLyg/Ol58XG4pKFtcdCBdLiopKD86KFtcblx0IF0qKVxuKD8hW1xuXHQgXSkpPy9nLCIkMSQyIikucmVwbGFjZSgvXG4rL2csYCQmJHtkfWApLF89ITEsTz13c2UoYSwhMCk7byE9PSJmb2xkZWQiJiZlIT09THQuQkxPQ0tfRk9MREVEJiYoTy5vbk92ZXJmbG93PSgpPT57Xz0hMH0pO2xldCAkPVQ5KGAke019JHtDfSR7dn1gLGQsencsTyk7aWYoIV8pcmV0dXJuYD4ke059CiR7ZH0keyR9YH1yZXR1cm4gdD10LnJlcGxhY2UoL1xuKy9nLGAkJiR7ZH1gKSxgfCR7Tn0KJHtkfSR7TX0ke3R9JHt2fWB9ZnVuY3Rpb24gd0FhKHMsZSx0LGEpe2xldHt0eXBlOnIsdmFsdWU6bn09cyx7YWN0dWFsU3RyaW5nOm8saW1wbGljaXRLZXk6bCxpbmRlbnQ6cCxpbmRlbnRTdGVwOmQsaW5GbG93OnV9PWU7aWYobCYmbi5pbmNsdWRlcyhgCmApfHx1JiYvW1tcXXt9LF0vLnRlc3QobikpcmV0dXJuICQ5KG4sZSk7aWYoL15bXG5cdCAsW1xde30jJiohfD4nIiVAYF18Xls/LV0kfF5bPy1dWyBcdF18W1xuOl1bIFx0XXxbIFx0XVxufFtcblx0IF0jfFtcblx0IDpdJC8udGVzdChuKSlyZXR1cm4gbHx8dXx8IW4uaW5jbHVkZXMoYApgKT8kOShuLGUpOlNzZShzLGUsdCxhKTtpZighbCYmIXUmJnIhPT1MdC5QTEFJTiYmbi5pbmNsdWRlcyhgCmApKXJldHVybiBTc2UocyxlLHQsYSk7aWYoa3NlKG4pKXtpZihwPT09IiIpcmV0dXJuIGUuZm9yY2VCbG9ja0luZGVudD0hMCxTc2UocyxlLHQsYSk7aWYobCYmcD09PWQpcmV0dXJuICQ5KG4sZSl9bGV0IGM9bi5yZXBsYWNlKC9cbisvZyxgJCYKJHtwfWApO2lmKG8pe2xldCBiPWkobT0+bS5kZWZhdWx0JiZtLnRhZyE9PSJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiJiZtLnRlc3Q/LnRlc3QoYyksInRlc3QiKSx7Y29tcGF0OnYsdGFnczp4fT1lLmRvYy5zY2hlbWE7aWYoeC5zb21lKGIpfHx2Py5zb21lKGIpKXJldHVybiAkOShuLGUpfXJldHVybiBsP2M6VDkoYyxwLHlzZSx3c2UoZSwhMSkpfWZ1bmN0aW9uIGZkKHMsZSx0LGEpe2xldHtpbXBsaWNpdEtleTpyLGluRmxvdzpufT1lLG89dHlwZW9mIHMudmFsdWU9PSJzdHJpbmciP3M6T2JqZWN0LmFzc2lnbih7fSxzLHt2YWx1ZTpTdHJpbmcocy52YWx1ZSl9KSx7dHlwZTpsfT1zO2whPT1MdC5RVU9URV9ET1VCTEUmJi9bXHgwMC1ceDA4XHgwYi1ceDFmXHg3Zi1ceDlmXHV7RDgwMH0tXHV7REZGRn1dL3UudGVzdChvLnZhbHVlKSYmKGw9THQuUVVPVEVfRE9VQkxFKTtsZXQgcD1pKHU9Pntzd2l0Y2godSl7Y2FzZSBMdC5CTE9DS19GT0xERUQ6Y2FzZSBMdC5CTE9DS19MSVRFUkFMOnJldHVybiByfHxuPyQ5KG8udmFsdWUsZSk6U3NlKG8sZSx0LGEpO2Nhc2UgTHQuUVVPVEVfRE9VQkxFOnJldHVybiBDdyhvLnZhbHVlLGUpO2Nhc2UgTHQuUVVPVEVfU0lOR0xFOnJldHVybiBPNGUoby52YWx1ZSxlKTtjYXNlIEx0LlBMQUlOOnJldHVybiB3QWEobyxlLHQsYSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19LCJfc3RyaW5naWZ5IiksZD1wKGwpO2lmKGQ9PT1udWxsKXtsZXR7ZGVmYXVsdEtleVR5cGU6dSxkZWZhdWx0U3RyaW5nVHlwZTpjfT1lLm9wdGlvbnMsYj1yJiZ1fHxjO2lmKGQ9cChiKSxkPT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGRlZmF1bHQgc3RyaW5nIHR5cGUgJHtifWApfXJldHVybiBkfXZhciB3c2Usa3NlLEY0ZSxUdz1nKCgpPT57X3IoKTtoNXQoKTt3c2U9aSgocyxlKT0+KHtpbmRlbnRBdFN0YXJ0OmU/cy5pbmRlbnQubGVuZ3RoOnMuaW5kZW50QXRTdGFydCxsaW5lV2lkdGg6cy5vcHRpb25zLmxpbmVXaWR0aCxtaW5Db250ZW50V2lkdGg6cy5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aH0pLCJnZXRGb2xkT3B0aW9ucyIpLGtzZT1pKHM9Pi9eKCV8LS0tfFwuXC5cLikvbS50ZXN0KHMpLCJjb250YWluc0RvY3VtZW50TWFya2VyIik7aSh5QWEsImxpbmVMZW5ndGhPdmVyTGltaXQiKTtpKEN3LCJkb3VibGVRdW90ZWRTdHJpbmciKTtpKE80ZSwic2luZ2xlUXVvdGVkU3RyaW5nIik7aSgkOSwicXVvdGVkU3RyaW5nIik7dHJ5e0Y0ZT1uZXcgUmVnRXhwKGAoXnwoPzwhCikpCisoPyEKfCQpYCwiZyIpfWNhdGNoe0Y0ZT0vXG4rKD8hXG58JCkvZ31pKFNzZSwiYmxvY2tTdHJpbmciKTtpKHdBYSwicGxhaW5TdHJpbmciKTtpKGZkLCJzdHJpbmdpZnlTdHJpbmciKX0pO2Z1bmN0aW9uICR3KHMsZSl7bGV0IHQ9T2JqZWN0LmFzc2lnbih7YmxvY2tRdW90ZTohMCxjb21tZW50U3RyaW5nOlI0ZSxkZWZhdWx0S2V5VHlwZTpudWxsLGRlZmF1bHRTdHJpbmdUeXBlOiJQTEFJTiIsZGlyZWN0aXZlczpudWxsLGRvdWJsZVF1b3RlZEFzSlNPTjohMSxkb3VibGVRdW90ZWRNaW5NdWx0aUxpbmVMZW5ndGg6NDAsZmFsc2VTdHI6ImZhbHNlIixmbG93Q29sbGVjdGlvblBhZGRpbmc6ITAsaW5kZW50U2VxOiEwLGxpbmVXaWR0aDo4MCxtaW5Db250ZW50V2lkdGg6MjAsbnVsbFN0cjoibnVsbCIsc2ltcGxlS2V5czohMSxzaW5nbGVRdW90ZTpudWxsLHRyYWlsaW5nQ29tbWE6ITEsdHJ1ZVN0cjoidHJ1ZSIsdmVyaWZ5QWxpYXNPcmRlcjohMH0scy5zY2hlbWEudG9TdHJpbmdPcHRpb25zLGUpLGE7c3dpdGNoKHQuY29sbGVjdGlvblN0eWxlKXtjYXNlImJsb2NrIjphPSExO2JyZWFrO2Nhc2UiZmxvdyI6YT0hMDticmVhaztkZWZhdWx0OmE9bnVsbH1yZXR1cm57YW5jaG9yczpuZXcgU2V0LGRvYzpzLGZsb3dDb2xsZWN0aW9uUGFkZGluZzp0LmZsb3dDb2xsZWN0aW9uUGFkZGluZz8iICI6IiIsaW5kZW50OiIiLGluZGVudFN0ZXA6dHlwZW9mIHQuaW5kZW50PT0ibnVtYmVyIj8iICIucmVwZWF0KHQuaW5kZW50KToiICAiLGluRmxvdzphLG9wdGlvbnM6dH19ZnVuY3Rpb24ga0FhKHMsZSl7aWYoZS50YWcpe2xldCByPXMuZmlsdGVyKG49Pm4udGFnPT09ZS50YWcpO2lmKHIubGVuZ3RoPjApcmV0dXJuIHIuZmluZChuPT5uLmZvcm1hdD09PWUuZm9ybWF0KT8/clswXX1sZXQgdCxhO2lmKGxhKGUpKXthPWUudmFsdWU7bGV0IHI9cy5maWx0ZXIobj0+bi5pZGVudGlmeT8uKGEpKTtpZihyLmxlbmd0aD4xKXtsZXQgbj1yLmZpbHRlcihvPT5vLnRlc3QpO24ubGVuZ3RoPjAmJihyPW4pfXQ9ci5maW5kKG49Pm4uZm9ybWF0PT09ZS5mb3JtYXQpPz9yLmZpbmQobj0+IW4uZm9ybWF0KX1lbHNlIGE9ZSx0PXMuZmluZChyPT5yLm5vZGVDbGFzcyYmYSBpbnN0YW5jZW9mIHIubm9kZUNsYXNzKTtpZighdCl7bGV0IHI9YT8uY29uc3RydWN0b3I/Lm5hbWU/PyhhPT09bnVsbD8ibnVsbCI6dHlwZW9mIGEpO3Rocm93IG5ldyBFcnJvcihgVGFnIG5vdCByZXNvbHZlZCBmb3IgJHtyfSB2YWx1ZWApfXJldHVybiB0fWZ1bmN0aW9uIFNBYShzLGUse2FuY2hvcnM6dCxkb2M6YX0pe2lmKCFhLmRpcmVjdGl2ZXMpcmV0dXJuIiI7bGV0IHI9W10sbj0obGEocyl8fGRzKHMpKSYmcy5hbmNob3I7biYmd3cobikmJih0LmFkZChuKSxyLnB1c2goYCYke259YCkpO2xldCBvPXMudGFnPz8oZS5kZWZhdWx0P251bGw6ZS50YWcpO3JldHVybiBvJiZyLnB1c2goYS5kaXJlY3RpdmVzLnRhZ1N0cmluZyhvKSksci5qb2luKCIgIil9ZnVuY3Rpb24gbWQocyxlLHQsYSl7aWYoQ2EocykpcmV0dXJuIHMudG9TdHJpbmcoZSx0LGEpO2lmKHZsKHMpKXtpZihlLmRvYy5kaXJlY3RpdmVzKXJldHVybiBzLnRvU3RyaW5nKGUpO2lmKGUucmVzb2x2ZWRBbGlhc2VzPy5oYXMocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHN0cmluZ2lmeSBjaXJjdWxhciBzdHJ1Y3R1cmUgd2l0aG91dCBhbGlhcyBub2RlcyIpO2UucmVzb2x2ZWRBbGlhc2VzP2UucmVzb2x2ZWRBbGlhc2VzLmFkZChzKTplLnJlc29sdmVkQWxpYXNlcz1uZXcgU2V0KFtzXSkscz1zLnJlc29sdmUoZS5kb2MpfWxldCByLG49SWEocyk/czplLmRvYy5jcmVhdGVOb2RlKHMse29uVGFnT2JqOmkocD0+cj1wLCJvblRhZ09iaiIpfSk7cj8/KHI9a0FhKGUuZG9jLnNjaGVtYS50YWdzLG4pKTtsZXQgbz1TQWEobixyLGUpO28ubGVuZ3RoPjAmJihlLmluZGVudEF0U3RhcnQ9KGUuaW5kZW50QXRTdGFydD8/MCkrby5sZW5ndGgrMSk7bGV0IGw9dHlwZW9mIHIuc3RyaW5naWZ5PT0iZnVuY3Rpb24iP3Iuc3RyaW5naWZ5KG4sZSx0LGEpOmxhKG4pP2ZkKG4sZSx0LGEpOm4udG9TdHJpbmcoZSx0LGEpO3JldHVybiBvP2xhKG4pfHxsWzBdPT09InsifHxsWzBdPT09IlsiP2Ake299ICR7bH1gOmAke299CiR7ZS5pbmRlbnR9JHtsfWA6bH12YXIgRHc9ZygoKT0+e2dzZSgpO3VzKCk7TXcoKTtUdygpO2koJHcsImNyZWF0ZVN0cmluZ2lmeUNvbnRleHQiKTtpKGtBYSwiZ2V0VGFnT2JqZWN0Iik7aShTQWEsInN0cmluZ2lmeVByb3BzIik7aShtZCwic3RyaW5naWZ5Iil9KTtmdW5jdGlvbiBCNGUoe2tleTpzLHZhbHVlOmV9LHQsYSxyKXtsZXR7YWxsTnVsbFZhbHVlczpuLGRvYzpvLGluZGVudDpsLGluZGVudFN0ZXA6cCxvcHRpb25zOntjb21tZW50U3RyaW5nOmQsaW5kZW50U2VxOnUsc2ltcGxlS2V5czpjfX09dCxiPUlhKHMpJiZzLmNvbW1lbnR8fG51bGw7aWYoYyl7aWYoYil0aHJvdyBuZXcgRXJyb3IoIldpdGggc2ltcGxlIGtleXMsIGtleSBub2RlcyBjYW5ub3QgaGF2ZSBjb21tZW50cyIpO2lmKGRzKHMpfHwhSWEocykmJnR5cGVvZiBzPT0ib2JqZWN0Iil7bGV0IE89IldpdGggc2ltcGxlIGtleXMsIGNvbGxlY3Rpb24gY2Fubm90IGJlIHVzZWQgYXMgYSBrZXkgdmFsdWUiO3Rocm93IG5ldyBFcnJvcihPKX19bGV0IHY9IWMmJighc3x8YiYmZT09bnVsbCYmIXQuaW5GbG93fHxkcyhzKXx8KGxhKHMpP3MudHlwZT09PUx0LkJMT0NLX0ZPTERFRHx8cy50eXBlPT09THQuQkxPQ0tfTElURVJBTDp0eXBlb2Ygcz09Im9iamVjdCIpKTt0PU9iamVjdC5hc3NpZ24oe30sdCx7YWxsTnVsbFZhbHVlczohMSxpbXBsaWNpdEtleTohdiYmKGN8fCFuKSxpbmRlbnQ6bCtwfSk7bGV0IHg9ITEsbT0hMSxmPW1kKHMsdCwoKT0+eD0hMCwoKT0+bT0hMCk7aWYoIXYmJiF0LmluRmxvdyYmZi5sZW5ndGg+MTAyNCl7aWYoYyl0aHJvdyBuZXcgRXJyb3IoIldpdGggc2ltcGxlIGtleXMsIHNpbmdsZSBsaW5lIHNjYWxhciBtdXN0IG5vdCBzcGFuIG1vcmUgdGhhbiAxMDI0IGNoYXJhY3RlcnMiKTt2PSEwfWlmKHQuaW5GbG93KXtpZihufHxlPT1udWxsKXJldHVybiB4JiZhJiZhKCksZj09PSIiPyI/Ijp2P2A/ICR7Zn1gOmZ9ZWxzZSBpZihuJiYhY3x8ZT09bnVsbCYmdilyZXR1cm4gZj1gPyAke2Z9YCxiJiYheD9mKz1MMShmLHQuaW5kZW50LGQoYikpOm0mJnImJnIoKSxmO3gmJihiPW51bGwpLHY/KGImJihmKz1MMShmLHQuaW5kZW50LGQoYikpKSxmPWA/ICR7Zn0KJHtsfTpgKTooZj1gJHtmfTpgLGImJihmKz1MMShmLHQuaW5kZW50LGQoYikpKSk7bGV0IHksTSx6O0lhKGUpPyh5PSEhZS5zcGFjZUJlZm9yZSxNPWUuY29tbWVudEJlZm9yZSx6PWUuY29tbWVudCk6KHk9ITEsTT1udWxsLHo9bnVsbCxlJiZ0eXBlb2YgZT09Im9iamVjdCImJihlPW8uY3JlYXRlTm9kZShlKSkpLHQuaW1wbGljaXRLZXk9ITEsIXYmJiFiJiZsYShlKSYmKHQuaW5kZW50QXRTdGFydD1mLmxlbmd0aCsxKSxtPSExLCF1JiZwLmxlbmd0aD49MiYmIXQuaW5GbG93JiYhdiYmd2woZSkmJiFlLmZsb3cmJiFlLnRhZyYmIWUuYW5jaG9yJiYodC5pbmRlbnQ9dC5pbmRlbnQuc3Vic3RyaW5nKDIpKTtsZXQgTj0hMSxDPW1kKGUsdCwoKT0+Tj0hMCwoKT0+bT0hMCksXz0iICI7aWYoYnx8eXx8TSl7aWYoXz15P2AKYDoiIixNKXtsZXQgTz1kKE0pO18rPWAKJHtxbChPLHQuaW5kZW50KX1gfUM9PT0iIiYmIXQuaW5GbG93P189PT1gCmAmJnomJihfPWAKCmApOl8rPWAKJHt0LmluZGVudH1gfWVsc2UgaWYoIXYmJmRzKGUpKXtsZXQgTz1DWzBdLCQ9Qy5pbmRleE9mKGAKYCksRT0kIT09LTEsSD10LmluRmxvdz8/ZS5mbG93Pz9lLml0ZW1zLmxlbmd0aD09PTA7aWYoRXx8IUgpe2xldCBrPSExO2lmKEUmJihPPT09IiYifHxPPT09IiEiKSl7bGV0IFM9Qy5pbmRleE9mKCIgIik7Tz09PSImIiYmUyE9PS0xJiZTPCQmJkNbUysxXT09PSIhIiYmKFM9Qy5pbmRleE9mKCIgIixTKzEpKSwoUz09PS0xfHwkPFMpJiYoaz0hMCl9a3x8KF89YAoke3QuaW5kZW50fWApfX1lbHNlKEM9PT0iInx8Q1swXT09PWAKYCkmJihfPSIiKTtyZXR1cm4gZis9XytDLHQuaW5GbG93P04mJmEmJmEoKTp6JiYhTj9mKz1MMShmLHQuaW5kZW50LGQoeikpOm0mJnImJnIoKSxmfXZhciBmNXQ9ZygoKT0+e3VzKCk7X3IoKTtEdygpO013KCk7aShCNGUsInN0cmluZ2lmeVBhaXIiKX0pO2Z1bmN0aW9uIF9BYShzLC4uLmUpe3M9PT0iZGVidWciJiZjb25zb2xlLmxvZyguLi5lKX1mdW5jdGlvbiBMdyhzLGUpeyhzPT09ImRlYnVnInx8cz09PSJ3YXJuIikmJmNvbnNvbGUud2FybihlKX12YXIgSDRlPWcoKCk9PntpKF9BYSwiZGVidWciKTtpKEx3LCJ3YXJuIil9KTtmdW5jdGlvbiBNc2UocyxlLHQpe2xldCBhPW01dChzLHQpO2lmKHdsKGEpKWZvcihsZXQgciBvZiBhLml0ZW1zKXE0ZShzLGUscik7ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgciBvZiBhKXE0ZShzLGUscik7ZWxzZSBxNGUocyxlLGEpfWZ1bmN0aW9uIHE0ZShzLGUsdCl7bGV0IGE9bTV0KHMsdCk7aWYoIXlsKGEpKXRocm93IG5ldyBFcnJvcigiTWVyZ2Ugc291cmNlcyBtdXN0IGJlIG1hcHMgb3IgbWFwIGFsaWFzZXMiKTtsZXQgcj1hLnRvSlNPTihudWxsLHMsTWFwKTtmb3IobGV0W24sb11vZiByKWUgaW5zdGFuY2VvZiBNYXA/ZS5oYXMobil8fGUuc2V0KG4sbyk6ZSBpbnN0YW5jZW9mIFNldD9lLmFkZChuKTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiBlfWZ1bmN0aW9uIG01dChzLGUpe3JldHVybiBzJiZ2bChlKT9lLnJlc29sdmUocy5kb2Mscyk6ZX12YXIgX3NlLFRjLGo0ZSx6c2U9ZygoKT0+e3VzKCk7X3IoKTtfc2U9Ijw8IixUYz17aWRlbnRpZnk6aShzPT5zPT09X3NlfHx0eXBlb2Ygcz09InN5bWJvbCImJnMuZGVzY3JpcHRpb249PT1fc2UsImlkZW50aWZ5IiksZGVmYXVsdDoia2V5Iix0YWc6InRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIix0ZXN0Oi9ePDwkLyxyZXNvbHZlOmkoKCk9Pk9iamVjdC5hc3NpZ24obmV3IEx0KFN5bWJvbChfc2UpKSx7YWRkVG9KU01hcDpNc2V9KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTppKCgpPT5fc2UsInN0cmluZ2lmeSIpfSxqNGU9aSgocyxlKT0+KFRjLmlkZW50aWZ5KGUpfHxsYShlKSYmKCFlLnR5cGV8fGUudHlwZT09PUx0LlBMQUlOKSYmVGMuaWRlbnRpZnkoZS52YWx1ZSkpJiZzPy5kb2Muc2NoZW1hLnRhZ3Muc29tZSh0PT50LnRhZz09PVRjLnRhZyYmdC5kZWZhdWx0KSwiaXNNZXJnZUtleSIpO2koTXNlLCJhZGRNZXJnZVRvSlNNYXAiKTtpKHE0ZSwibWVyZ2VWYWx1ZSIpO2kobTV0LCJyZXNvbHZlQWxpYXNWYWx1ZSIpfSk7ZnVuY3Rpb24gRXcocyxlLHtrZXk6dCx2YWx1ZTphfSl7aWYoSWEodCkmJnQuYWRkVG9KU01hcCl0LmFkZFRvSlNNYXAocyxlLGEpO2Vsc2UgaWYoajRlKHMsdCkpTXNlKHMsZSxhKTtlbHNle2xldCByPVNyKHQsIiIscyk7aWYoZSBpbnN0YW5jZW9mIE1hcCllLnNldChyLFNyKGEscixzKSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgU2V0KWUuYWRkKHIpO2Vsc2V7bGV0IG49TUFhKHQscixzKSxvPVNyKGEsbixzKTtuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOmVbbl09b319cmV0dXJuIGV9ZnVuY3Rpb24gTUFhKHMsZSx0KXtpZihlPT09bnVsbClyZXR1cm4iIjtpZih0eXBlb2YgZSE9Im9iamVjdCIpcmV0dXJuIFN0cmluZyhlKTtpZihJYShzKSYmdD8uZG9jKXtsZXQgYT0kdyh0LmRvYyx7fSk7YS5hbmNob3JzPW5ldyBTZXQ7Zm9yKGxldCBuIG9mIHQuYW5jaG9ycy5rZXlzKCkpYS5hbmNob3JzLmFkZChuLmFuY2hvcik7YS5pbkZsb3c9ITAsYS5pblN0cmluZ2lmeUtleT0hMDtsZXQgcj1zLnRvU3RyaW5nKGEpO2lmKCF0Lm1hcEtleVdhcm5lZCl7bGV0IG49SlNPTi5zdHJpbmdpZnkocik7bi5sZW5ndGg+NDAmJihuPW4uc3Vic3RyaW5nKDAsMzYpKycuLi4iJyksTHcodC5kb2Mub3B0aW9ucy5sb2dMZXZlbCxgS2V5cyB3aXRoIGNvbGxlY3Rpb24gdmFsdWVzIHdpbGwgYmUgc3RyaW5naWZpZWQgZHVlIHRvIEpTIE9iamVjdCByZXN0cmljdGlvbnM6ICR7bn0uIFNldCBtYXBBc01hcDogdHJ1ZSB0byB1c2Ugb2JqZWN0IGtleXMuYCksdC5tYXBLZXlXYXJuZWQ9ITB9cmV0dXJuIHJ9cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfXZhciBWNGU9ZygoKT0+e0g0ZSgpO3pzZSgpO0R3KCk7dXMoKTtBcCgpO2koRXcsImFkZFBhaXJUb0pTTWFwIik7aShNQWEsInN0cmluZ2lmeUtleSIpfSk7ZnVuY3Rpb24gYjMocyxlLHQpe2xldCBhPWhkKHMsdm9pZCAwLHQpLHI9aGQoZSx2b2lkIDAsdCk7cmV0dXJuIG5ldyBjaShhLHIpfXZhciBjaSxOcD1nKCgpPT57X3coKTtmNXQoKTtWNGUoKTt1cygpO2koYjMsImNyZWF0ZVBhaXIiKTtjaT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlBhaXIiKX1jb25zdHJ1Y3RvcihlLHQ9bnVsbCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsSm8se3ZhbHVlOmhzZX0pLHRoaXMua2V5PWUsdGhpcy52YWx1ZT10fWNsb25lKGUpe2xldHtrZXk6dCx2YWx1ZTphfT10aGlzO3JldHVybiBJYSh0KSYmKHQ9dC5jbG9uZShlKSksSWEoYSkmJihhPWEuY2xvbmUoZSkpLG5ldyBzKHQsYSl9dG9KU09OKGUsdCl7bGV0IGE9dD8ubWFwQXNNYXA/bmV3IE1hcDp7fTtyZXR1cm4gRXcodCxhLHRoaXMpfXRvU3RyaW5nKGUsdCxhKXtyZXR1cm4gZT8uZG9jP0I0ZSh0aGlzLGUsdCxhKTpKU09OLnN0cmluZ2lmeSh0aGlzKX19fSk7ZnVuY3Rpb24gUHcocyxlLHQpe3JldHVybihlLmluRmxvdz8/cy5mbG93P0NBYTp6QWEpKHMsZSx0KX1mdW5jdGlvbiB6QWEoe2NvbW1lbnQ6cyxpdGVtczplfSx0LHtibG9ja0l0ZW1QcmVmaXg6YSxmbG93Q2hhcnM6cixpdGVtSW5kZW50Om4sb25DaG9tcEtlZXA6byxvbkNvbW1lbnQ6bH0pe2xldHtpbmRlbnQ6cCxvcHRpb25zOntjb21tZW50U3RyaW5nOmR9fT10LHU9T2JqZWN0LmFzc2lnbih7fSx0LHtpbmRlbnQ6bix0eXBlOm51bGx9KSxjPSExLGI9W107Zm9yKGxldCB4PTA7eDxlLmxlbmd0aDsrK3gpe2xldCBtPWVbeF0sZj1udWxsO2lmKElhKG0pKSFjJiZtLnNwYWNlQmVmb3JlJiZiLnB1c2goIiIpLENzZSh0LGIsbS5jb21tZW50QmVmb3JlLGMpLG0uY29tbWVudCYmKGY9bS5jb21tZW50KTtlbHNlIGlmKENhKG0pKXtsZXQgTT1JYShtLmtleSk/bS5rZXk6bnVsbDtNJiYoIWMmJk0uc3BhY2VCZWZvcmUmJmIucHVzaCgiIiksQ3NlKHQsYixNLmNvbW1lbnRCZWZvcmUsYykpfWM9ITE7bGV0IHk9bWQobSx1LCgpPT5mPW51bGwsKCk9PmM9ITApO2YmJih5Kz1MMSh5LG4sZChmKSkpLGMmJmYmJihjPSExKSxiLnB1c2goYSt5KX1sZXQgdjtpZihiLmxlbmd0aD09PTApdj1yLnN0YXJ0K3IuZW5kO2Vsc2V7dj1iWzBdO2ZvcihsZXQgeD0xO3g8Yi5sZW5ndGg7Kyt4KXtsZXQgbT1iW3hdO3YrPW0/YAoke3B9JHttfWA6YApgfX1yZXR1cm4gcz8odis9YApgK3FsKGQocykscCksbCYmbCgpKTpjJiZvJiZvKCksdn1mdW5jdGlvbiBDQWEoe2l0ZW1zOnN9LGUse2Zsb3dDaGFyczp0LGl0ZW1JbmRlbnQ6YX0pe2xldHtpbmRlbnQ6cixpbmRlbnRTdGVwOm4sZmxvd0NvbGxlY3Rpb25QYWRkaW5nOm8sb3B0aW9uczp7Y29tbWVudFN0cmluZzpsfX09ZTthKz1uO2xldCBwPU9iamVjdC5hc3NpZ24oe30sZSx7aW5kZW50OmEsaW5GbG93OiEwLHR5cGU6bnVsbH0pLGQ9ITEsdT0wLGM9W107Zm9yKGxldCB4PTA7eDxzLmxlbmd0aDsrK3gpe2xldCBtPXNbeF0sZj1udWxsO2lmKElhKG0pKW0uc3BhY2VCZWZvcmUmJmMucHVzaCgiIiksQ3NlKGUsYyxtLmNvbW1lbnRCZWZvcmUsITEpLG0uY29tbWVudCYmKGY9bS5jb21tZW50KTtlbHNlIGlmKENhKG0pKXtsZXQgTT1JYShtLmtleSk/bS5rZXk6bnVsbDtNJiYoTS5zcGFjZUJlZm9yZSYmYy5wdXNoKCIiKSxDc2UoZSxjLE0uY29tbWVudEJlZm9yZSwhMSksTS5jb21tZW50JiYoZD0hMCkpO2xldCB6PUlhKG0udmFsdWUpP20udmFsdWU6bnVsbDt6Pyh6LmNvbW1lbnQmJihmPXouY29tbWVudCksei5jb21tZW50QmVmb3JlJiYoZD0hMCkpOm0udmFsdWU9PW51bGwmJk0/LmNvbW1lbnQmJihmPU0uY29tbWVudCl9ZiYmKGQ9ITApO2xldCB5PW1kKG0scCwoKT0+Zj1udWxsKTtkfHwoZD1jLmxlbmd0aD51fHx5LmluY2x1ZGVzKGAKYCkpLHg8cy5sZW5ndGgtMT95Kz0iLCI6ZS5vcHRpb25zLnRyYWlsaW5nQ29tbWEmJihlLm9wdGlvbnMubGluZVdpZHRoPjAmJihkfHwoZD1jLnJlZHVjZSgoTSx6KT0+TSt6Lmxlbmd0aCsyLDIpKyh5Lmxlbmd0aCsyKT5lLm9wdGlvbnMubGluZVdpZHRoKSksZCYmKHkrPSIsIikpLGYmJih5Kz1MMSh5LGEsbChmKSkpLGMucHVzaCh5KSx1PWMubGVuZ3RofWxldHtzdGFydDpiLGVuZDp2fT10O2lmKGMubGVuZ3RoPT09MClyZXR1cm4gYit2O2lmKCFkKXtsZXQgeD1jLnJlZHVjZSgobSxmKT0+bStmLmxlbmd0aCsyLDIpO2Q9ZS5vcHRpb25zLmxpbmVXaWR0aD4wJiZ4PmUub3B0aW9ucy5saW5lV2lkdGh9aWYoZCl7bGV0IHg9Yjtmb3IobGV0IG0gb2YgYyl4Kz1tP2AKJHtufSR7cn0ke219YDpgCmA7cmV0dXJuYCR7eH0KJHtyfSR7dn1gfWVsc2UgcmV0dXJuYCR7Yn0ke299JHtjLmpvaW4oIiAiKX0ke299JHt2fWB9ZnVuY3Rpb24gQ3NlKHtpbmRlbnQ6cyxvcHRpb25zOntjb21tZW50U3RyaW5nOmV9fSx0LGEscil7aWYoYSYmciYmKGE9YS5yZXBsYWNlKC9eXG4rLywiIikpLGEpe2xldCBuPXFsKGUoYSkscyk7dC5wdXNoKG4udHJpbVN0YXJ0KCkpfX12YXIgVTRlPWcoKCk9Pnt1cygpO0R3KCk7TXcoKTtpKFB3LCJzdHJpbmdpZnlDb2xsZWN0aW9uIik7aSh6QWEsInN0cmluZ2lmeUJsb2NrQ29sbGVjdGlvbiIpO2koQ0FhLCJzdHJpbmdpZnlGbG93Q29sbGVjdGlvbiIpO2koQ3NlLCJhZGRDb21tZW50QmVmb3JlIil9KTtmdW5jdGlvbiBfMChzLGUpe2xldCB0PWxhKGUpP2UudmFsdWU6ZTtmb3IobGV0IGEgb2YgcylpZihDYShhKSYmKGEua2V5PT09ZXx8YS5rZXk9PT10fHxsYShhLmtleSkmJmEua2V5LnZhbHVlPT09dCkpcmV0dXJuIGF9dmFyIHlpLFJwPWcoKCk9PntVNGUoKTtWNGUoKTt4c2UoKTt1cygpO05wKCk7X3IoKTtpKF8wLCJmaW5kUGFpciIpO3lpPWNsYXNzIGV4dGVuZHMgbTN7c3RhdGlje2kodGhpcywiWUFNTE1hcCIpfXN0YXRpYyBnZXQgdGFnTmFtZSgpe3JldHVybiJ0YWc6eWFtbC5vcmcsMjAwMjptYXAifWNvbnN0cnVjdG9yKGUpe3N1cGVyKHpjLGUpLHRoaXMuaXRlbXM9W119c3RhdGljIGZyb20oZSx0LGEpe2xldHtrZWVwVW5kZWZpbmVkOnIscmVwbGFjZXI6bn09YSxvPW5ldyB0aGlzKGUpLGw9aSgocCxkKT0+e2lmKHR5cGVvZiBuPT0iZnVuY3Rpb24iKWQ9bi5jYWxsKHQscCxkKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkobikmJiFuLmluY2x1ZGVzKHApKXJldHVybjsoZCE9PXZvaWQgMHx8cikmJm8uaXRlbXMucHVzaChiMyhwLGQsYSkpfSwiYWRkIik7aWYodCBpbnN0YW5jZW9mIE1hcClmb3IobGV0W3AsZF1vZiB0KWwocCxkKTtlbHNlIGlmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Iilmb3IobGV0IHAgb2YgT2JqZWN0LmtleXModCkpbChwLHRbcF0pO3JldHVybiB0eXBlb2YgZS5zb3J0TWFwRW50cmllcz09ImZ1bmN0aW9uIiYmby5pdGVtcy5zb3J0KGUuc29ydE1hcEVudHJpZXMpLG99YWRkKGUsdCl7bGV0IGE7Q2EoZSk/YT1lOiFlfHx0eXBlb2YgZSE9Im9iamVjdCJ8fCEoImtleSJpbiBlKT9hPW5ldyBjaShlLGU/LnZhbHVlKTphPW5ldyBjaShlLmtleSxlLnZhbHVlKTtsZXQgcj1fMCh0aGlzLml0ZW1zLGEua2V5KSxuPXRoaXMuc2NoZW1hPy5zb3J0TWFwRW50cmllcztpZihyKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoYEtleSAke2Eua2V5fSBhbHJlYWR5IHNldGApO2xhKHIudmFsdWUpJiZTdyhhLnZhbHVlKT9yLnZhbHVlLnZhbHVlPWEudmFsdWU6ci52YWx1ZT1hLnZhbHVlfWVsc2UgaWYobil7bGV0IG89dGhpcy5pdGVtcy5maW5kSW5kZXgobD0+bihhLGwpPDApO289PT0tMT90aGlzLml0ZW1zLnB1c2goYSk6dGhpcy5pdGVtcy5zcGxpY2UobywwLGEpfWVsc2UgdGhpcy5pdGVtcy5wdXNoKGEpfWRlbGV0ZShlKXtsZXQgdD1fMCh0aGlzLml0ZW1zLGUpO3JldHVybiB0P3RoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZih0KSwxKS5sZW5ndGg+MDohMX1nZXQoZSx0KXtsZXQgcj1fMCh0aGlzLml0ZW1zLGUpPy52YWx1ZTtyZXR1cm4oIXQmJmxhKHIpP3IudmFsdWU6cik/P3ZvaWQgMH1oYXMoZSl7cmV0dXJuISFfMCh0aGlzLml0ZW1zLGUpfXNldChlLHQpe3RoaXMuYWRkKG5ldyBjaShlLHQpLCEwKX10b0pTT04oZSx0LGEpe2xldCByPWE/bmV3IGE6dD8ubWFwQXNNYXA/bmV3IE1hcDp7fTt0Py5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShyKTtmb3IobGV0IG4gb2YgdGhpcy5pdGVtcylFdyh0LHIsbik7cmV0dXJuIHJ9dG9TdHJpbmcoZSx0LGEpe2lmKCFlKXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtmb3IobGV0IHIgb2YgdGhpcy5pdGVtcylpZighQ2EocikpdGhyb3cgbmV3IEVycm9yKGBNYXAgaXRlbXMgbXVzdCBhbGwgYmUgcGFpcnM7IGZvdW5kICR7SlNPTi5zdHJpbmdpZnkocil9IGluc3RlYWRgKTtyZXR1cm4hZS5hbGxOdWxsVmFsdWVzJiZ0aGlzLmhhc0FsbE51bGxWYWx1ZXMoITEpJiYoZT1PYmplY3QuYXNzaWduKHt9LGUse2FsbE51bGxWYWx1ZXM6ITB9KSksUHcodGhpcyxlLHtibG9ja0l0ZW1QcmVmaXg6IiIsZmxvd0NoYXJzOntzdGFydDoieyIsZW5kOiJ9In0saXRlbUluZGVudDplLmluZGVudHx8IiIsb25DaG9tcEtlZXA6YSxvbkNvbW1lbnQ6dH0pfX19KTt2YXIgJGMsRDk9ZygoKT0+e3VzKCk7UnAoKTskYz17Y29sbGVjdGlvbjoibWFwIixkZWZhdWx0OiEwLG5vZGVDbGFzczp5aSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm1hcCIscmVzb2x2ZShzLGUpe3JldHVybiB5bChzKXx8ZSgiRXhwZWN0ZWQgYSBtYXBwaW5nIGZvciB0aGlzIHRhZyIpLHN9LGNyZWF0ZU5vZGU6aSgocyxlLHQpPT55aS5mcm9tKHMsZSx0KSwiY3JlYXRlTm9kZSIpfX0pO2Z1bmN0aW9uIFRzZShzKXtsZXQgZT1sYShzKT9zLnZhbHVlOnM7cmV0dXJuIGUmJnR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9TnVtYmVyKGUpKSx0eXBlb2YgZT09Im51bWJlciImJk51bWJlci5pc0ludGVnZXIoZSkmJmU+PTA/ZTpudWxsfXZhciBWcixPcD1nKCgpPT57X3coKTtVNGUoKTt4c2UoKTt1cygpO19yKCk7QXAoKTtWcj1jbGFzcyBleHRlbmRzIG0ze3N0YXRpY3tpKHRoaXMsIllBTUxTZXEiKX1zdGF0aWMgZ2V0IHRhZ05hbWUoKXtyZXR1cm4idGFnOnlhbWwub3JnLDIwMDI6c2VxIn1jb25zdHJ1Y3RvcihlKXtzdXBlcih1ZCxlKSx0aGlzLml0ZW1zPVtdfWFkZChlKXt0aGlzLml0ZW1zLnB1c2goZSl9ZGVsZXRlKGUpe2xldCB0PVRzZShlKTtyZXR1cm4gdHlwZW9mIHQhPSJudW1iZXIiPyExOnRoaXMuaXRlbXMuc3BsaWNlKHQsMSkubGVuZ3RoPjB9Z2V0KGUsdCl7bGV0IGE9VHNlKGUpO2lmKHR5cGVvZiBhIT0ibnVtYmVyIilyZXR1cm47bGV0IHI9dGhpcy5pdGVtc1thXTtyZXR1cm4hdCYmbGEocik/ci52YWx1ZTpyfWhhcyhlKXtsZXQgdD1Uc2UoZSk7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIiYmdDx0aGlzLml0ZW1zLmxlbmd0aH1zZXQoZSx0KXtsZXQgYT1Uc2UoZSk7aWYodHlwZW9mIGEhPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSB2YWxpZCBpbmRleCwgbm90ICR7ZX0uYCk7bGV0IHI9dGhpcy5pdGVtc1thXTtsYShyKSYmU3codCk/ci52YWx1ZT10OnRoaXMuaXRlbXNbYV09dH10b0pTT04oZSx0KXtsZXQgYT1bXTt0Py5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShhKTtsZXQgcj0wO2ZvcihsZXQgbiBvZiB0aGlzLml0ZW1zKWEucHVzaChTcihuLFN0cmluZyhyKyspLHQpKTtyZXR1cm4gYX10b1N0cmluZyhlLHQsYSl7cmV0dXJuIGU/UHcodGhpcyxlLHtibG9ja0l0ZW1QcmVmaXg6Ii0gIixmbG93Q2hhcnM6e3N0YXJ0OiJbIixlbmQ6Il0ifSxpdGVtSW5kZW50OihlLmluZGVudHx8IiIpKyIgICIsb25DaG9tcEtlZXA6YSxvbkNvbW1lbnQ6dH0pOkpTT04uc3RyaW5naWZ5KHRoaXMpfXN0YXRpYyBmcm9tKGUsdCxhKXtsZXR7cmVwbGFjZXI6cn09YSxuPW5ldyB0aGlzKGUpO2lmKHQmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCkpe2xldCBvPTA7Zm9yKGxldCBsIG9mIHQpe2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXtsZXQgcD10IGluc3RhbmNlb2YgU2V0P2w6U3RyaW5nKG8rKyk7bD1yLmNhbGwodCxwLGwpfW4uaXRlbXMucHVzaChoZChsLHZvaWQgMCxhKSl9fXJldHVybiBufX07aShUc2UsImFzSXRlbUluZGV4Iil9KTt2YXIgRGMsTDk9ZygoKT0+e3VzKCk7T3AoKTtEYz17Y29sbGVjdGlvbjoic2VxIixkZWZhdWx0OiEwLG5vZGVDbGFzczpWcix0YWc6InRhZzp5YW1sLm9yZywyMDAyOnNlcSIscmVzb2x2ZShzLGUpe3JldHVybiB3bChzKXx8ZSgiRXhwZWN0ZWQgYSBzZXF1ZW5jZSBmb3IgdGhpcyB0YWciKSxzfSxjcmVhdGVOb2RlOmkoKHMsZSx0KT0+VnIuZnJvbShzLGUsdCksImNyZWF0ZU5vZGUiKX19KTt2YXIgTTAsSXc9ZygoKT0+e1R3KCk7TTA9e2lkZW50aWZ5Omkocz0+dHlwZW9mIHM9PSJzdHJpbmciLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLHJlc29sdmU6aShzPT5zLCJyZXNvbHZlIiksc3RyaW5naWZ5KHMsZSx0LGEpe3JldHVybiBlPU9iamVjdC5hc3NpZ24oe2FjdHVhbFN0cmluZzohMH0sZSksZmQocyxlLHQsYSl9fX0pO3ZhciBGcCwkc2U9ZygoKT0+e19yKCk7RnA9e2lkZW50aWZ5Omkocz0+cz09bnVsbCwiaWRlbnRpZnkiKSxjcmVhdGVOb2RlOmkoKCk9Pm5ldyBMdChudWxsKSwiY3JlYXRlTm9kZSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsIix0ZXN0Oi9eKD86fnxbTm5ddWxsfE5VTEwpPyQvLHJlc29sdmU6aSgoKT0+bmV3IEx0KG51bGwpLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkoKHtzb3VyY2U6c30sZSk9PnR5cGVvZiBzPT0ic3RyaW5nIiYmRnAudGVzdC50ZXN0KHMpP3M6ZS5vcHRpb25zLm51bGxTdHIsInN0cmluZ2lmeSIpfX0pO3ZhciBFOSxXNGU9ZygoKT0+e19yKCk7RTk9e2lkZW50aWZ5Omkocz0+dHlwZW9mIHM9PSJib29sZWFuIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIsdGVzdDovXig/OltUdF1ydWV8VFJVRXxbRmZdYWxzZXxGQUxTRSkkLyxyZXNvbHZlOmkocz0+bmV3IEx0KHNbMF09PT0idCJ8fHNbMF09PT0iVCIpLCJyZXNvbHZlIiksc3RyaW5naWZ5KHtzb3VyY2U6cyx2YWx1ZTplfSx0KXtpZihzJiZFOS50ZXN0LnRlc3Qocykpe2xldCBhPXNbMF09PT0idCJ8fHNbMF09PT0iVCI7aWYoZT09PWEpcmV0dXJuIHN9cmV0dXJuIGU/dC5vcHRpb25zLnRydWVTdHI6dC5vcHRpb25zLmZhbHNlU3RyfX19KTtmdW5jdGlvbiBTbyh7Zm9ybWF0OnMsbWluRnJhY3Rpb25EaWdpdHM6ZSx0YWc6dCx2YWx1ZTphfSl7aWYodHlwZW9mIGE9PSJiaWdpbnQiKXJldHVybiBTdHJpbmcoYSk7bGV0IHI9dHlwZW9mIGE9PSJudW1iZXIiP2E6TnVtYmVyKGEpO2lmKCFpc0Zpbml0ZShyKSlyZXR1cm4gaXNOYU4ocik/Ii5uYW4iOnI8MD8iLS5pbmYiOiIuaW5mIjtsZXQgbj1PYmplY3QuaXMoYSwtMCk/Ii0wIjpKU09OLnN0cmluZ2lmeShhKTtpZighcyYmZSYmKCF0fHx0PT09InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0IikmJi9eLT9cZC8udGVzdChuKSYmIW4uaW5jbHVkZXMoImUiKSl7bGV0IG89bi5pbmRleE9mKCIuIik7bzwwJiYobz1uLmxlbmd0aCxuKz0iLiIpO2xldCBsPWUtKG4ubGVuZ3RoLW8tMSk7Zm9yKDtsLS0gPjA7KW4rPSIwIn1yZXR1cm4gbn12YXIgUDk9ZygoKT0+e2koU28sInN0cmluZ2lmeU51bWJlciIpfSk7dmFyIEF3LE53LFJ3LEc0ZT1nKCgpPT57X3IoKTtQOSgpO0F3PXtpZGVudGlmeTppKHM9PnR5cGVvZiBzPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L14oPzpbLStdP1wuKD86aW5mfEluZnxJTkYpfFwubmFufFwuTmFOfFwuTkFOKSQvLHJlc29sdmU6aShzPT5zLnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09Im5hbiI/TmFOOnNbMF09PT0iLSI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpTb30sTnc9e2lkZW50aWZ5Omkocz0+dHlwZW9mIHM9PSJudW1iZXIiLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsZm9ybWF0OiJFWFAiLHRlc3Q6L15bLStdPyg/OlwuWzAtOV0rfFswLTldKyg/OlwuWzAtOV0qKT8pW2VFXVstK10/WzAtOV0rJC8scmVzb2x2ZTppKHM9PnBhcnNlRmxvYXQocyksInJlc29sdmUiKSxzdHJpbmdpZnkocyl7bGV0IGU9TnVtYmVyKHMudmFsdWUpO3JldHVybiBpc0Zpbml0ZShlKT9lLnRvRXhwb25lbnRpYWwoKTpTbyhzKX19LFJ3PXtpZGVudGlmeTppKHM9PnR5cGVvZiBzPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L15bLStdPyg/OlwuWzAtOV0rfFswLTldK1wuWzAtOV0qKSQvLHJlc29sdmUocyl7bGV0IGU9bmV3IEx0KHBhcnNlRmxvYXQocykpLHQ9cy5pbmRleE9mKCIuIik7cmV0dXJuIHQhPT0tMSYmc1tzLmxlbmd0aC0xXT09PSIwIiYmKGUubWluRnJhY3Rpb25EaWdpdHM9cy5sZW5ndGgtdC0xKSxlfSxzdHJpbmdpZnk6U299fSk7ZnVuY3Rpb24gZzV0KHMsZSx0KXtsZXR7dmFsdWU6YX09cztyZXR1cm4gRHNlKGEpJiZhPj0wP3QrYS50b1N0cmluZyhlKTpTbyhzKX12YXIgRHNlLEs0ZSxPdyxGdyxCdyxZNGU9ZygoKT0+e1A5KCk7RHNlPWkocz0+dHlwZW9mIHM9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKHMpLCJpbnRJZGVudGlmeSIpLEs0ZT1pKChzLGUsdCx7aW50QXNCaWdJbnQ6YX0pPT5hP0JpZ0ludChzKTpwYXJzZUludChzLnN1YnN0cmluZyhlKSx0KSwiaW50UmVzb2x2ZSIpO2koZzV0LCJpbnRTdHJpbmdpZnkiKTtPdz17aWRlbnRpZnk6aShzPT5Ec2UocykmJnM+PTAsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJPQ1QiLHRlc3Q6L14wb1swLTddKyQvLHJlc29sdmU6aSgocyxlLHQpPT5LNGUocywyLDgsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6aShzPT5nNXQocyw4LCIwbyIpLCJzdHJpbmdpZnkiKX0sRnc9e2lkZW50aWZ5OkRzZSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iix0ZXN0Oi9eWy0rXT9bMC05XSskLyxyZXNvbHZlOmkoKHMsZSx0KT0+SzRlKHMsMCwxMCx0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpTb30sQnc9e2lkZW50aWZ5Omkocz0+RHNlKHMpJiZzPj0wLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLGZvcm1hdDoiSEVYIix0ZXN0Oi9eMHhbMC05YS1mQS1GXSskLyxyZXNvbHZlOmkoKHMsZSx0KT0+SzRlKHMsMiwxNix0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTppKHM9Pmc1dChzLDE2LCIweCIpLCJzdHJpbmdpZnkiKX19KTt2YXIgWjRlLGI1dD1nKCgpPT57RDkoKTskc2UoKTtMOSgpO0l3KCk7VzRlKCk7RzRlKCk7WTRlKCk7WjRlPVskYyxEYyxNMCxGcCxFOSxPdyxGdyxCdyxBdyxOdyxSd119KTtmdW5jdGlvbiB2NXQocyl7cmV0dXJuIHR5cGVvZiBzPT0iYmlnaW50Inx8TnVtYmVyLmlzSW50ZWdlcihzKX12YXIgTHNlLFRBYSwkQWEsWDRlLHg1dD1nKCgpPT57X3IoKTtEOSgpO0w5KCk7aSh2NXQsImludElkZW50aWZ5Iik7THNlPWkoKHt2YWx1ZTpzfSk9PkpTT04uc3RyaW5naWZ5KHMpLCJzdHJpbmdpZnlKU09OIiksVEFhPVt7aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09InN0cmluZyIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnN0ciIscmVzb2x2ZTppKHM9PnMsInJlc29sdmUiKSxzdHJpbmdpZnk6THNlfSx7aWRlbnRpZnk6aShzPT5zPT1udWxsLCJpZGVudGlmeSIpLGNyZWF0ZU5vZGU6aSgoKT0+bmV3IEx0KG51bGwpLCJjcmVhdGVOb2RlIiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHRlc3Q6L15udWxsJC8scmVzb2x2ZTppKCgpPT5udWxsLCJyZXNvbHZlIiksc3RyaW5naWZ5OkxzZX0se2lkZW50aWZ5Omkocz0+dHlwZW9mIHM9PSJib29sZWFuIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIsdGVzdDovXnRydWUkfF5mYWxzZSQvLHJlc29sdmU6aShzPT5zPT09InRydWUiLCJyZXNvbHZlIiksc3RyaW5naWZ5OkxzZX0se2lkZW50aWZ5OnY1dCxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iix0ZXN0Oi9eLT8oPzowfFsxLTldWzAtOV0qKSQvLHJlc29sdmU6aSgocyxlLHtpbnRBc0JpZ0ludDp0fSk9PnQ/QmlnSW50KHMpOnBhcnNlSW50KHMsMTApLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkoKHt2YWx1ZTpzfSk9PnY1dChzKT9zLnRvU3RyaW5nKCk6SlNPTi5zdHJpbmdpZnkocyksInN0cmluZ2lmeSIpfSx7aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix0ZXN0Oi9eLT8oPzowfFsxLTldWzAtOV0qKSg/OlwuWzAtOV0qKT8oPzpbZUVdWy0rXT9bMC05XSspPyQvLHJlc29sdmU6aShzPT5wYXJzZUZsb2F0KHMpLCJyZXNvbHZlIiksc3RyaW5naWZ5OkxzZX1dLCRBYT17ZGVmYXVsdDohMCx0YWc6IiIsdGVzdDovXi8scmVzb2x2ZShzLGUpe3JldHVybiBlKGBVbnJlc29sdmVkIHBsYWluIHNjYWxhciAke0pTT04uc3RyaW5naWZ5KHMpfWApLHN9fSxYNGU9WyRjLERjXS5jb25jYXQoVEFhLCRBYSl9KTt2YXIgSTksUTRlPWcoKCk9PntfcigpO1R3KCk7STk9e2lkZW50aWZ5Omkocz0+cyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksImlkZW50aWZ5IiksZGVmYXVsdDohMSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeSIscmVzb2x2ZShzLGUpe2lmKHR5cGVvZiBhdG9iPT0iZnVuY3Rpb24iKXtsZXQgdD1hdG9iKHMucmVwbGFjZSgvW1xuXHJdL2csIiIpKSxhPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoOysrcilhW3JdPXQuY2hhckNvZGVBdChyKTtyZXR1cm4gYX1lbHNlIHJldHVybiBlKCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBhdG9iIGlzIHJlcXVpcmVkIiksc30sc3RyaW5naWZ5KHtjb21tZW50OnMsdHlwZTplLHZhbHVlOnR9LGEscixuKXtpZighdClyZXR1cm4iIjtsZXQgbz10LGw7aWYodHlwZW9mIGJ0b2E9PSJmdW5jdGlvbiIpe2xldCBwPSIiO2ZvcihsZXQgZD0wO2Q8by5sZW5ndGg7KytkKXArPVN0cmluZy5mcm9tQ2hhckNvZGUob1tkXSk7bD1idG9hKHApfWVsc2UgdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBidG9hIGlzIHJlcXVpcmVkIik7aWYoZT8/KGU9THQuQkxPQ0tfTElURVJBTCksZSE9PUx0LlFVT1RFX0RPVUJMRSl7bGV0IHA9TWF0aC5tYXgoYS5vcHRpb25zLmxpbmVXaWR0aC1hLmluZGVudC5sZW5ndGgsYS5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aCksZD1NYXRoLmNlaWwobC5sZW5ndGgvcCksdT1uZXcgQXJyYXkoZCk7Zm9yKGxldCBjPTAsYj0wO2M8ZDsrK2MsYis9cCl1W2NdPWwuc3Vic3RyKGIscCk7bD11LmpvaW4oZT09PUx0LkJMT0NLX0xJVEVSQUw/YApgOiIgIil9cmV0dXJuIGZkKHtjb21tZW50OnMsdHlwZTplLHZhbHVlOmx9LGEscixuKX19fSk7ZnVuY3Rpb24gRXNlKHMsZSl7aWYod2wocykpZm9yKGxldCB0PTA7dDxzLml0ZW1zLmxlbmd0aDsrK3Qpe2xldCBhPXMuaXRlbXNbdF07aWYoIUNhKGEpKXtpZih5bChhKSl7YS5pdGVtcy5sZW5ndGg+MSYmZSgiRWFjaCBwYWlyIG11c3QgaGF2ZSBpdHMgb3duIHNlcXVlbmNlIGluZGljYXRvciIpO2xldCByPWEuaXRlbXNbMF18fG5ldyBjaShuZXcgTHQobnVsbCkpO2lmKGEuY29tbWVudEJlZm9yZSYmKHIua2V5LmNvbW1lbnRCZWZvcmU9ci5rZXkuY29tbWVudEJlZm9yZT9gJHthLmNvbW1lbnRCZWZvcmV9CiR7ci5rZXkuY29tbWVudEJlZm9yZX1gOmEuY29tbWVudEJlZm9yZSksYS5jb21tZW50KXtsZXQgbj1yLnZhbHVlPz9yLmtleTtuLmNvbW1lbnQ9bi5jb21tZW50P2Ake2EuY29tbWVudH0KJHtuLmNvbW1lbnR9YDphLmNvbW1lbnR9YT1yfXMuaXRlbXNbdF09Q2EoYSk/YTpuZXcgY2koYSl9fWVsc2UgZSgiRXhwZWN0ZWQgYSBzZXF1ZW5jZSBmb3IgdGhpcyB0YWciKTtyZXR1cm4gc31mdW5jdGlvbiBQc2UocyxlLHQpe2xldHtyZXBsYWNlcjphfT10LHI9bmV3IFZyKHMpO3IudGFnPSJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlycyI7bGV0IG49MDtpZihlJiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKWZvcihsZXQgbyBvZiBlKXt0eXBlb2YgYT09ImZ1bmN0aW9uIiYmKG89YS5jYWxsKGUsU3RyaW5nKG4rKyksbykpO2xldCBsLHA7aWYoQXJyYXkuaXNBcnJheShvKSlpZihvLmxlbmd0aD09PTIpbD1vWzBdLHA9b1sxXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFtrZXksIHZhbHVlXSB0dXBsZTogJHtvfWApO2Vsc2UgaWYobyYmbyBpbnN0YW5jZW9mIE9iamVjdCl7bGV0IGQ9T2JqZWN0LmtleXMobyk7aWYoZC5sZW5ndGg9PT0xKWw9ZFswXSxwPW9bbF07ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCB0dXBsZSB3aXRoIG9uZSBrZXksIG5vdCAke2QubGVuZ3RofSBrZXlzYCl9ZWxzZSBsPW87ci5pdGVtcy5wdXNoKGIzKGwscCx0KSl9cmV0dXJuIHJ9dmFyIEE5LElzZT1nKCgpPT57dXMoKTtOcCgpO19yKCk7T3AoKTtpKEVzZSwicmVzb2x2ZVBhaXJzIik7aShQc2UsImNyZWF0ZVBhaXJzIik7QTk9e2NvbGxlY3Rpb246InNlcSIsZGVmYXVsdDohMSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIixyZXNvbHZlOkVzZSxjcmVhdGVOb2RlOlBzZX19KTt2YXIgdjMsTjksSjRlPWcoKCk9Pnt1cygpO0FwKCk7UnAoKTtPcCgpO0lzZSgpO3YzPWNsYXNzIHMgZXh0ZW5kcyBWcntzdGF0aWN7aSh0aGlzLCJZQU1MT01hcCIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmFkZD15aS5wcm90b3R5cGUuYWRkLmJpbmQodGhpcyksdGhpcy5kZWxldGU9eWkucHJvdG90eXBlLmRlbGV0ZS5iaW5kKHRoaXMpLHRoaXMuZ2V0PXlpLnByb3RvdHlwZS5nZXQuYmluZCh0aGlzKSx0aGlzLmhhcz15aS5wcm90b3R5cGUuaGFzLmJpbmQodGhpcyksdGhpcy5zZXQ9eWkucHJvdG90eXBlLnNldC5iaW5kKHRoaXMpLHRoaXMudGFnPXMudGFnfXRvSlNPTihlLHQpe2lmKCF0KXJldHVybiBzdXBlci50b0pTT04oZSk7bGV0IGE9bmV3IE1hcDt0Py5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShhKTtmb3IobGV0IHIgb2YgdGhpcy5pdGVtcyl7bGV0IG4sbztpZihDYShyKT8obj1TcihyLmtleSwiIix0KSxvPVNyKHIudmFsdWUsbix0KSk6bj1TcihyLCIiLHQpLGEuaGFzKG4pKXRocm93IG5ldyBFcnJvcigiT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXMiKTthLnNldChuLG8pfXJldHVybiBhfXN0YXRpYyBmcm9tKGUsdCxhKXtsZXQgcj1Qc2UoZSx0LGEpLG49bmV3IHRoaXM7cmV0dXJuIG4uaXRlbXM9ci5pdGVtcyxufX07djMudGFnPSJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIjtOOT17Y29sbGVjdGlvbjoic2VxIixpZGVudGlmeTppKHM9PnMgaW5zdGFuY2VvZiBNYXAsImlkZW50aWZ5Iiksbm9kZUNsYXNzOnYzLGRlZmF1bHQ6ITEsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIixyZXNvbHZlKHMsZSl7bGV0IHQ9RXNlKHMsZSksYT1bXTtmb3IobGV0e2tleTpyfW9mIHQuaXRlbXMpbGEocikmJihhLmluY2x1ZGVzKHIudmFsdWUpP2UoYE9yZGVyZWQgbWFwcyBtdXN0IG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSBrZXlzOiAke3IudmFsdWV9YCk6YS5wdXNoKHIudmFsdWUpKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdjMsdCl9LGNyZWF0ZU5vZGU6aSgocyxlLHQpPT52My5mcm9tKHMsZSx0KSwiY3JlYXRlTm9kZSIpfX0pO2Z1bmN0aW9uIHk1dCh7dmFsdWU6cyxzb3VyY2U6ZX0sdCl7cmV0dXJuIGUmJihzP0FzZTpOc2UpLnRlc3QudGVzdChlKT9lOnM/dC5vcHRpb25zLnRydWVTdHI6dC5vcHRpb25zLmZhbHNlU3RyfXZhciBBc2UsTnNlLHc1dD1nKCgpPT57X3IoKTtpKHk1dCwiYm9vbFN0cmluZ2lmeSIpO0FzZT17aWRlbnRpZnk6aShzPT5zPT09ITAsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmJvb2wiLHRlc3Q6L14oPzpZfHl8W1l5XWVzfFlFU3xbVHRdcnVlfFRSVUV8W09vXW58T04pJC8scmVzb2x2ZTppKCgpPT5uZXcgTHQoITApLCJyZXNvbHZlIiksc3RyaW5naWZ5Onk1dH0sTnNlPXtpZGVudGlmeTppKHM9PnM9PT0hMSwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIsdGVzdDovXig/Ok58bnxbTm5db3xOT3xbRmZdYWxzZXxGQUxTRXxbT29dZmZ8T0ZGKSQvLHJlc29sdmU6aSgoKT0+bmV3IEx0KCExKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTp5NXR9fSk7dmFyIGUzZSx0M2UsYTNlLGs1dD1nKCgpPT57X3IoKTtQOSgpO2UzZT17aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix0ZXN0Oi9eKD86Wy0rXT9cLig/OmluZnxJbmZ8SU5GKXxcLm5hbnxcLk5hTnxcLk5BTikkLyxyZXNvbHZlOmkocz0+cy5zbGljZSgtMykudG9Mb3dlckNhc2UoKT09PSJuYW4iP05hTjpzWzBdPT09Ii0iP051bWJlci5ORUdBVElWRV9JTkZJTklUWTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksInJlc29sdmUiKSxzdHJpbmdpZnk6U299LHQzZT17aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iixmb3JtYXQ6IkVYUCIsdGVzdDovXlstK10/KD86WzAtOV1bMC05X10qKT8oPzpcLlswLTlfXSopP1tlRV1bLStdP1swLTldKyQvLHJlc29sdmU6aShzPT5wYXJzZUZsb2F0KHMucmVwbGFjZSgvXy9nLCIiKSksInJlc29sdmUiKSxzdHJpbmdpZnkocyl7bGV0IGU9TnVtYmVyKHMudmFsdWUpO3JldHVybiBpc0Zpbml0ZShlKT9lLnRvRXhwb25lbnRpYWwoKTpTbyhzKX19LGEzZT17aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix0ZXN0Oi9eWy0rXT8oPzpbMC05XVswLTlfXSopP1wuWzAtOV9dKiQvLHJlc29sdmUocyl7bGV0IGU9bmV3IEx0KHBhcnNlRmxvYXQocy5yZXBsYWNlKC9fL2csIiIpKSksdD1zLmluZGV4T2YoIi4iKTtpZih0IT09LTEpe2xldCBhPXMuc3Vic3RyaW5nKHQrMSkucmVwbGFjZSgvXy9nLCIiKTthW2EubGVuZ3RoLTFdPT09IjAiJiYoZS5taW5GcmFjdGlvbkRpZ2l0cz1hLmxlbmd0aCl9cmV0dXJuIGV9LHN0cmluZ2lmeTpTb319KTtmdW5jdGlvbiBSc2UocyxlLHQse2ludEFzQmlnSW50OmF9KXtsZXQgcj1zWzBdO2lmKChyPT09Ii0ifHxyPT09IisiKSYmKGUrPTEpLHM9cy5zdWJzdHJpbmcoZSkucmVwbGFjZSgvXy9nLCIiKSxhKXtzd2l0Y2godCl7Y2FzZSAyOnM9YDBiJHtzfWA7YnJlYWs7Y2FzZSA4OnM9YDBvJHtzfWA7YnJlYWs7Y2FzZSAxNjpzPWAweCR7c31gO2JyZWFrfWxldCBvPUJpZ0ludChzKTtyZXR1cm4gcj09PSItIj9CaWdJbnQoLTEpKm86b31sZXQgbj1wYXJzZUludChzLHQpO3JldHVybiByPT09Ii0iPy0xKm46bn1mdW5jdGlvbiBzM2UocyxlLHQpe2xldHt2YWx1ZTphfT1zO2lmKEh3KGEpKXtsZXQgcj1hLnRvU3RyaW5nKGUpO3JldHVybiBhPDA/Ii0iK3Qrci5zdWJzdHIoMSk6dCtyfXJldHVybiBTbyhzKX12YXIgSHcsaTNlLHIzZSxvM2UsbjNlLFM1dD1nKCgpPT57UDkoKTtIdz1pKHM9PnR5cGVvZiBzPT0iYmlnaW50Inx8TnVtYmVyLmlzSW50ZWdlcihzKSwiaW50SWRlbnRpZnkiKTtpKFJzZSwiaW50UmVzb2x2ZSIpO2koczNlLCJpbnRTdHJpbmdpZnkiKTtpM2U9e2lkZW50aWZ5Okh3LGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLGZvcm1hdDoiQklOIix0ZXN0Oi9eWy0rXT8wYlswLTFfXSskLyxyZXNvbHZlOmkoKHMsZSx0KT0+UnNlKHMsMiwyLHQpLCJyZXNvbHZlIiksc3RyaW5naWZ5Omkocz0+czNlKHMsMiwiMGIiKSwic3RyaW5naWZ5Iil9LHIzZT17aWRlbnRpZnk6SHcsZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJPQ1QiLHRlc3Q6L15bLStdPzBbMC03X10rJC8scmVzb2x2ZTppKChzLGUsdCk9PlJzZShzLDEsOCx0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTppKHM9PnMzZShzLDgsIjAiKSwic3RyaW5naWZ5Iil9LG8zZT17aWRlbnRpZnk6SHcsZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsdGVzdDovXlstK10/WzAtOV1bMC05X10qJC8scmVzb2x2ZTppKChzLGUsdCk9PlJzZShzLDAsMTAsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6U299LG4zZT17aWRlbnRpZnk6SHcsZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJIRVgiLHRlc3Q6L15bLStdPzB4WzAtOWEtZkEtRl9dKyQvLHJlc29sdmU6aSgocyxlLHQpPT5Sc2UocywyLDE2LHQpLCJyZXNvbHZlIiksc3RyaW5naWZ5Omkocz0+czNlKHMsMTYsIjB4IiksInN0cmluZ2lmeSIpfX0pO3ZhciB4MyxSOSxsM2U9ZygoKT0+e3VzKCk7TnAoKTtScCgpO3gzPWNsYXNzIHMgZXh0ZW5kcyB5aXtzdGF0aWN7aSh0aGlzLCJZQU1MU2V0Iil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50YWc9cy50YWd9YWRkKGUpe2xldCB0O0NhKGUpP3Q9ZTplJiZ0eXBlb2YgZT09Im9iamVjdCImJiJrZXkiaW4gZSYmInZhbHVlImluIGUmJmUudmFsdWU9PT1udWxsP3Q9bmV3IGNpKGUua2V5LG51bGwpOnQ9bmV3IGNpKGUsbnVsbCksXzAodGhpcy5pdGVtcyx0LmtleSl8fHRoaXMuaXRlbXMucHVzaCh0KX1nZXQoZSx0KXtsZXQgYT1fMCh0aGlzLml0ZW1zLGUpO3JldHVybiF0JiZDYShhKT9sYShhLmtleSk/YS5rZXkudmFsdWU6YS5rZXk6YX1zZXQoZSx0KXtpZih0eXBlb2YgdCE9ImJvb2xlYW4iKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYm9vbGVhbiB2YWx1ZSBmb3Igc2V0KGtleSwgdmFsdWUpIGluIGEgWUFNTCBzZXQsIG5vdCAke3R5cGVvZiB0fWApO2xldCBhPV8wKHRoaXMuaXRlbXMsZSk7YSYmIXQ/dGhpcy5pdGVtcy5zcGxpY2UodGhpcy5pdGVtcy5pbmRleE9mKGEpLDEpOiFhJiZ0JiZ0aGlzLml0ZW1zLnB1c2gobmV3IGNpKGUpKX10b0pTT04oZSx0KXtyZXR1cm4gc3VwZXIudG9KU09OKGUsdCxTZXQpfXRvU3RyaW5nKGUsdCxhKXtpZighZSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcyk7aWYodGhpcy5oYXNBbGxOdWxsVmFsdWVzKCEwKSlyZXR1cm4gc3VwZXIudG9TdHJpbmcoT2JqZWN0LmFzc2lnbih7fSxlLHthbGxOdWxsVmFsdWVzOiEwfSksdCxhKTt0aHJvdyBuZXcgRXJyb3IoIlNldCBpdGVtcyBtdXN0IGFsbCBoYXZlIG51bGwgdmFsdWVzIil9c3RhdGljIGZyb20oZSx0LGEpe2xldHtyZXBsYWNlcjpyfT1hLG49bmV3IHRoaXMoZSk7aWYodCYmU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdCh0KSlmb3IobGV0IG8gb2YgdCl0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmKG89ci5jYWxsKHQsbyxvKSksbi5pdGVtcy5wdXNoKGIzKG8sbnVsbCxhKSk7cmV0dXJuIG59fTt4My50YWc9InRhZzp5YW1sLm9yZywyMDAyOnNldCI7Ujk9e2NvbGxlY3Rpb246Im1hcCIsaWRlbnRpZnk6aShzPT5zIGluc3RhbmNlb2YgU2V0LCJpZGVudGlmeSIpLG5vZGVDbGFzczp4MyxkZWZhdWx0OiExLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6c2V0IixjcmVhdGVOb2RlOmkoKHMsZSx0KT0+eDMuZnJvbShzLGUsdCksImNyZWF0ZU5vZGUiKSxyZXNvbHZlKHMsZSl7aWYoeWwocykpe2lmKHMuaGFzQWxsTnVsbFZhbHVlcyghMCkpcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHgzLHMpO2UoIlNldCBpdGVtcyBtdXN0IGFsbCBoYXZlIG51bGwgdmFsdWVzIil9ZWxzZSBlKCJFeHBlY3RlZCBhIG1hcHBpbmcgZm9yIHRoaXMgdGFnIik7cmV0dXJuIHN9fX0pO2Z1bmN0aW9uIGMzZShzLGUpe2xldCB0PXNbMF0sYT10PT09Ii0ifHx0PT09IisiP3Muc3Vic3RyaW5nKDEpOnMscj1pKG89PmU/QmlnSW50KG8pOk51bWJlcihvKSwibnVtIiksbj1hLnJlcGxhY2UoL18vZywiIikuc3BsaXQoIjoiKS5yZWR1Y2UoKG8sbCk9Pm8qcig2MCkrcihsKSxyKDApKTtyZXR1cm4gdD09PSItIj9yKC0xKSpuOm59ZnVuY3Rpb24gXzV0KHMpe2xldHt2YWx1ZTplfT1zLHQ9aShvPT5vLCJudW0iKTtpZih0eXBlb2YgZT09ImJpZ2ludCIpdD1pKG89PkJpZ0ludChvKSwibnVtIik7ZWxzZSBpZihpc05hTihlKXx8IWlzRmluaXRlKGUpKXJldHVybiBTbyhzKTtsZXQgYT0iIjtlPDAmJihhPSItIixlKj10KC0xKSk7bGV0IHI9dCg2MCksbj1bZSVyXTtyZXR1cm4gZTw2MD9uLnVuc2hpZnQoMCk6KGU9KGUtblswXSkvcixuLnVuc2hpZnQoZSVyKSxlPj02MCYmKGU9KGUtblswXSkvcixuLnVuc2hpZnQoZSkpKSxhK24ubWFwKG89PlN0cmluZyhvKS5wYWRTdGFydCgyLCIwIikpLmpvaW4oIjoiKS5yZXBsYWNlKC8wMDAwMDBcZCokLywiIil9dmFyIHF3LGp3LHkzLGQzZT1nKCgpPT57UDkoKTtpKGMzZSwicGFyc2VTZXhhZ2VzaW1hbCIpO2koXzV0LCJzdHJpbmdpZnlTZXhhZ2VzaW1hbCIpO3F3PXtpZGVudGlmeTppKHM9PnR5cGVvZiBzPT0iYmlnaW50Inx8TnVtYmVyLmlzSW50ZWdlcihzKSwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6IlRJTUUiLHRlc3Q6L15bLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrJC8scmVzb2x2ZTppKChzLGUse2ludEFzQmlnSW50OnR9KT0+YzNlKHMsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6XzV0fSxqdz17aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iixmb3JtYXQ6IlRJTUUiLHRlc3Q6L15bLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXC5bMC05X10qJC8scmVzb2x2ZTppKHM9PmMzZShzLCExKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpfNXR9LHkzPXtpZGVudGlmeTppKHM9PnMgaW5zdGFuY2VvZiBEYXRlLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLHRlc3Q6UmVnRXhwKCJeKFswLTldezR9KS0oWzAtOV17MSwyfSktKFswLTldezEsMn0pKD86KD86dHxUfFsgXFx0XSspKFswLTldezEsMn0pOihbMC05XXsxLDJ9KTooWzAtOV17MSwyfShcXC5bMC05XSspPykoPzpbIFxcdF0qKFp8Wy0rXVswMTJdP1swLTldKD86OlswLTldezJ9KT8pKT8pPyQiKSxyZXNvbHZlKHMpe2xldCBlPXMubWF0Y2goeTMudGVzdCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCIhIXRpbWVzdGFtcCBleHBlY3RzIGEgZGF0ZSwgc3RhcnRpbmcgd2l0aCB5eXl5LW1tLWRkIik7bGV0Wyx0LGEscixuLG8sbF09ZS5tYXAoTnVtYmVyKSxwPWVbN10/TnVtYmVyKChlWzddKyIwMCIpLnN1YnN0cigxLDMpKTowLGQ9RGF0ZS5VVEModCxhLTEscixufHwwLG98fDAsbHx8MCxwKSx1PWVbOF07aWYodSYmdSE9PSJaIil7bGV0IGM9YzNlKHUsITEpO01hdGguYWJzKGMpPDMwJiYoYyo9NjApLGQtPTZlNCpjfXJldHVybiBuZXcgRGF0ZShkKX0sc3RyaW5naWZ5OmkoKHt2YWx1ZTpzfSk9PnM/LnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKFQwMDowMDowMCk/XC4wMDBaJC8sIiIpPz8iIiwic3RyaW5naWZ5Iil9fSk7dmFyIE9zZSxNNXQ9ZygoKT0+e0Q5KCk7JHNlKCk7TDkoKTtJdygpO1E0ZSgpO3c1dCgpO2s1dCgpO1M1dCgpO3pzZSgpO0o0ZSgpO0lzZSgpO2wzZSgpO2QzZSgpO09zZT1bJGMsRGMsTTAsRnAsQXNlLE5zZSxpM2UscjNlLG8zZSxuM2UsZTNlLHQzZSxhM2UsSTksVGMsTjksQTksUjkscXcsancseTNdfSk7ZnVuY3Rpb24gVncocyxlLHQpe2xldCBhPXo1dC5nZXQoZSk7aWYoYSYmIXMpcmV0dXJuIHQmJiFhLmluY2x1ZGVzKFRjKT9hLmNvbmNhdChUYyk6YS5zbGljZSgpO2xldCByPWE7aWYoIXIpaWYoQXJyYXkuaXNBcnJheShzKSlyPVtdO2Vsc2V7bGV0IG49QXJyYXkuZnJvbSh6NXQua2V5cygpKS5maWx0ZXIobz0+byE9PSJ5YW1sMTEiKS5tYXAobz0+SlNPTi5zdHJpbmdpZnkobykpLmpvaW4oIiwgIik7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHNjaGVtYSAiJHtlfSI7IHVzZSBvbmUgb2YgJHtufSBvciBkZWZpbmUgY3VzdG9tVGFncyBhcnJheWApfWlmKEFycmF5LmlzQXJyYXkocykpZm9yKGxldCBuIG9mIHMpcj1yLmNvbmNhdChuKTtlbHNlIHR5cGVvZiBzPT0iZnVuY3Rpb24iJiYocj1zKHIuc2xpY2UoKSkpO3JldHVybiB0JiYocj1yLmNvbmNhdChUYykpLHIucmVkdWNlKChuLG8pPT57bGV0IGw9dHlwZW9mIG89PSJzdHJpbmciP0M1dFtvXTpvO2lmKCFsKXtsZXQgcD1KU09OLnN0cmluZ2lmeShvKSxkPU9iamVjdC5rZXlzKEM1dCkubWFwKHU9PkpTT04uc3RyaW5naWZ5KHUpKS5qb2luKCIsICIpO3Rocm93IG5ldyBFcnJvcihgVW5rbm93biBjdXN0b20gdGFnICR7cH07IHVzZSBvbmUgb2YgJHtkfWApfXJldHVybiBuLmluY2x1ZGVzKGwpfHxuLnB1c2gobCksbn0sW10pfXZhciB6NXQsQzV0LHUzZSxUNXQ9ZygoKT0+e0Q5KCk7JHNlKCk7TDkoKTtJdygpO1c0ZSgpO0c0ZSgpO1k0ZSgpO2I1dCgpO3g1dCgpO1E0ZSgpO3pzZSgpO0o0ZSgpO0lzZSgpO001dCgpO2wzZSgpO2QzZSgpO3o1dD1uZXcgTWFwKFtbImNvcmUiLFo0ZV0sWyJmYWlsc2FmZSIsWyRjLERjLE0wXV0sWyJqc29uIixYNGVdLFsieWFtbDExIixPc2VdLFsieWFtbC0xLjEiLE9zZV1dKSxDNXQ9e2JpbmFyeTpJOSxib29sOkU5LGZsb2F0OlJ3LGZsb2F0RXhwOk53LGZsb2F0TmFOOkF3LGZsb2F0VGltZTpqdyxpbnQ6RncsaW50SGV4OkJ3LGludE9jdDpPdyxpbnRUaW1lOnF3LG1hcDokYyxtZXJnZTpUYyxudWxsOkZwLG9tYXA6TjkscGFpcnM6QTksc2VxOkRjLHNldDpSOSx0aW1lc3RhbXA6eTN9LHUzZT17InRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeSI6STksInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIjpUYywidGFnOnlhbWwub3JnLDIwMDI6b21hcCI6TjksInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIjpBOSwidGFnOnlhbWwub3JnLDIwMDI6c2V0IjpSOSwidGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wIjp5M307aShWdywiZ2V0VGFncyIpfSk7dmFyIERBYSxCcCxwM2U9ZygoKT0+e3VzKCk7RDkoKTtMOSgpO0l3KCk7VDV0KCk7REFhPWkoKHMsZSk9PnMua2V5PGUua2V5Py0xOnMua2V5PmUua2V5PzE6MCwic29ydE1hcEVudHJpZXNCeUtleSIpLEJwPWNsYXNzIHN7c3RhdGlje2kodGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3Ioe2NvbXBhdDplLGN1c3RvbVRhZ3M6dCxtZXJnZTphLHJlc29sdmVLbm93blRhZ3M6cixzY2hlbWE6bixzb3J0TWFwRW50cmllczpvLHRvU3RyaW5nRGVmYXVsdHM6bH0pe3RoaXMuY29tcGF0PUFycmF5LmlzQXJyYXkoZSk/VncoZSwiY29tcGF0Iik6ZT9WdyhudWxsLGUpOm51bGwsdGhpcy5uYW1lPXR5cGVvZiBuPT0ic3RyaW5nIiYmbnx8ImNvcmUiLHRoaXMua25vd25UYWdzPXI/dTNlOnt9LHRoaXMudGFncz1Wdyh0LHRoaXMubmFtZSxhKSx0aGlzLnRvU3RyaW5nT3B0aW9ucz1sPz9udWxsLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHpjLHt2YWx1ZTokY30pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGJsLHt2YWx1ZTpNMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHVkLHt2YWx1ZTpEY30pLHRoaXMuc29ydE1hcEVudHJpZXM9dHlwZW9mIG89PSJmdW5jdGlvbiI/bzpvPT09ITA/REFhOm51bGx9Y2xvbmUoKXtsZXQgZT1PYmplY3QuY3JlYXRlKHMucHJvdG90eXBlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHRoaXMpKTtyZXR1cm4gZS50YWdzPXRoaXMudGFncy5zbGljZSgpLGV9fX0pO2Z1bmN0aW9uIGgzZShzLGUpe2xldCB0PVtdLGE9ZS5kaXJlY3RpdmVzPT09ITA7aWYoZS5kaXJlY3RpdmVzIT09ITEmJnMuZGlyZWN0aXZlcyl7bGV0IHA9cy5kaXJlY3RpdmVzLnRvU3RyaW5nKHMpO3A/KHQucHVzaChwKSxhPSEwKTpzLmRpcmVjdGl2ZXMuZG9jU3RhcnQmJihhPSEwKX1hJiZ0LnB1c2goIi0tLSIpO2xldCByPSR3KHMsZSkse2NvbW1lbnRTdHJpbmc6bn09ci5vcHRpb25zO2lmKHMuY29tbWVudEJlZm9yZSl7dC5sZW5ndGghPT0xJiZ0LnVuc2hpZnQoIiIpO2xldCBwPW4ocy5jb21tZW50QmVmb3JlKTt0LnVuc2hpZnQocWwocCwiIikpfWxldCBvPSExLGw9bnVsbDtpZihzLmNvbnRlbnRzKXtpZihJYShzLmNvbnRlbnRzKSl7aWYocy5jb250ZW50cy5zcGFjZUJlZm9yZSYmYSYmdC5wdXNoKCIiKSxzLmNvbnRlbnRzLmNvbW1lbnRCZWZvcmUpe2xldCB1PW4ocy5jb250ZW50cy5jb21tZW50QmVmb3JlKTt0LnB1c2gocWwodSwiIikpfXIuZm9yY2VCbG9ja0luZGVudD0hIXMuY29tbWVudCxsPXMuY29udGVudHMuY29tbWVudH1sZXQgcD1sP3ZvaWQgMDooKT0+bz0hMCxkPW1kKHMuY29udGVudHMsciwoKT0+bD1udWxsLHApO2wmJihkKz1MMShkLCIiLG4obCkpKSwoZFswXT09PSJ8Inx8ZFswXT09PSI+IikmJnRbdC5sZW5ndGgtMV09PT0iLS0tIj90W3QubGVuZ3RoLTFdPWAtLS0gJHtkfWA6dC5wdXNoKGQpfWVsc2UgdC5wdXNoKG1kKHMuY29udGVudHMscikpO2lmKHMuZGlyZWN0aXZlcz8uZG9jRW5kKWlmKHMuY29tbWVudCl7bGV0IHA9bihzLmNvbW1lbnQpO3AuaW5jbHVkZXMoYApgKT8odC5wdXNoKCIuLi4iKSx0LnB1c2gocWwocCwiIikpKTp0LnB1c2goYC4uLiAke3B9YCl9ZWxzZSB0LnB1c2goIi4uLiIpO2Vsc2V7bGV0IHA9cy5jb21tZW50O3AmJm8mJihwPXAucmVwbGFjZSgvXlxuKy8sIiIpKSxwJiYoKCFvfHxsKSYmdFt0Lmxlbmd0aC0xXSE9PSIiJiZ0LnB1c2goIiIpLHQucHVzaChxbChuKHApLCIiKSkpfXJldHVybiB0LmpvaW4oYApgKStgCmB9dmFyICQ1dD1nKCgpPT57dXMoKTtEdygpO013KCk7aShoM2UsInN0cmluZ2lmeURvY3VtZW50Iil9KTtmdW5jdGlvbiBPOShzKXtpZihkcyhzKSlyZXR1cm4hMDt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGEgWUFNTCBjb2xsZWN0aW9uIGFzIGRvY3VtZW50IGNvbnRlbnRzIil9dmFyIExjLFV3PWcoKCk9PntrdygpO3hzZSgpO3VzKCk7TnAoKTtBcCgpO3AzZSgpOyQ1dCgpO2dzZSgpO040ZSgpO193KCk7STRlKCk7TGM9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEb2N1bWVudCIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLmNvbW1lbnRCZWZvcmU9bnVsbCx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLEpvLHt2YWx1ZTp2d30pO2xldCByPW51bGw7dHlwZW9mIHQ9PSJmdW5jdGlvbiJ8fEFycmF5LmlzQXJyYXkodCk/cj10OmE9PT12b2lkIDAmJnQmJihhPXQsdD12b2lkIDApO2xldCBuPU9iamVjdC5hc3NpZ24oe2ludEFzQmlnSW50OiExLGtlZXBTb3VyY2VUb2tlbnM6ITEsbG9nTGV2ZWw6Indhcm4iLHByZXR0eUVycm9yczohMCxzdHJpY3Q6ITAsc3RyaW5nS2V5czohMSx1bmlxdWVLZXlzOiEwLHZlcnNpb246IjEuMiJ9LGEpO3RoaXMub3B0aW9ucz1uO2xldHt2ZXJzaW9uOm99PW47YT8uX2RpcmVjdGl2ZXM/KHRoaXMuZGlyZWN0aXZlcz1hLl9kaXJlY3RpdmVzLmF0RG9jdW1lbnQoKSx0aGlzLmRpcmVjdGl2ZXMueWFtbC5leHBsaWNpdCYmKG89dGhpcy5kaXJlY3RpdmVzLnlhbWwudmVyc2lvbikpOnRoaXMuZGlyZWN0aXZlcz1uZXcgRDEoe3ZlcnNpb246b30pLHRoaXMuc2V0U2NoZW1hKG8sYSksdGhpcy5jb250ZW50cz1lPT09dm9pZCAwP251bGw6dGhpcy5jcmVhdGVOb2RlKGUscixhKX1jbG9uZSgpe2xldCBlPU9iamVjdC5jcmVhdGUocy5wcm90b3R5cGUse1tKb106e3ZhbHVlOnZ3fX0pO3JldHVybiBlLmNvbW1lbnRCZWZvcmU9dGhpcy5jb21tZW50QmVmb3JlLGUuY29tbWVudD10aGlzLmNvbW1lbnQsZS5lcnJvcnM9dGhpcy5lcnJvcnMuc2xpY2UoKSxlLndhcm5pbmdzPXRoaXMud2FybmluZ3Muc2xpY2UoKSxlLm9wdGlvbnM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLm9wdGlvbnMpLHRoaXMuZGlyZWN0aXZlcyYmKGUuZGlyZWN0aXZlcz10aGlzLmRpcmVjdGl2ZXMuY2xvbmUoKSksZS5zY2hlbWE9dGhpcy5zY2hlbWEuY2xvbmUoKSxlLmNvbnRlbnRzPUlhKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuY2xvbmUoZS5zY2hlbWEpOnRoaXMuY29udGVudHMsdGhpcy5yYW5nZSYmKGUucmFuZ2U9dGhpcy5yYW5nZS5zbGljZSgpKSxlfWFkZChlKXtPOSh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5hZGQoZSl9YWRkSW4oZSx0KXtPOSh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5hZGRJbihlLHQpfWNyZWF0ZUFsaWFzKGUsdCl7aWYoIWUuYW5jaG9yKXtsZXQgYT1mc2UodGhpcyk7ZS5hbmNob3I9IXR8fGEuaGFzKHQpP21zZSh0fHwiYSIsYSk6dH1yZXR1cm4gbmV3IENjKGUuYW5jaG9yKX1jcmVhdGVOb2RlKGUsdCxhKXtsZXQgcjtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIillPXQuY2FsbCh7IiI6ZX0sIiIsZSkscj10O2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGY9aShNPT50eXBlb2YgTT09Im51bWJlciJ8fE0gaW5zdGFuY2VvZiBTdHJpbmd8fE0gaW5zdGFuY2VvZiBOdW1iZXIsImtleVRvU3RyIikseT10LmZpbHRlcihmKS5tYXAoU3RyaW5nKTt5Lmxlbmd0aD4wJiYodD10LmNvbmNhdCh5KSkscj10fWVsc2UgYT09PXZvaWQgMCYmdCYmKGE9dCx0PXZvaWQgMCk7bGV0e2FsaWFzRHVwbGljYXRlT2JqZWN0czpuLGFuY2hvclByZWZpeDpvLGZsb3c6bCxrZWVwVW5kZWZpbmVkOnAsb25UYWdPYmo6ZCx0YWc6dX09YT8/e30se29uQW5jaG9yOmMsc2V0QW5jaG9yczpiLHNvdXJjZU9iamVjdHM6dn09QTRlKHRoaXMsb3x8ImEiKSx4PXthbGlhc0R1cGxpY2F0ZU9iamVjdHM6bj8/ITAsa2VlcFVuZGVmaW5lZDpwPz8hMSxvbkFuY2hvcjpjLG9uVGFnT2JqOmQscmVwbGFjZXI6cixzY2hlbWE6dGhpcy5zY2hlbWEsc291cmNlT2JqZWN0czp2fSxtPWhkKGUsdSx4KTtyZXR1cm4gbCYmZHMobSkmJihtLmZsb3c9ITApLGIoKSxtfWNyZWF0ZVBhaXIoZSx0LGE9e30pe2xldCByPXRoaXMuY3JlYXRlTm9kZShlLG51bGwsYSksbj10aGlzLmNyZWF0ZU5vZGUodCxudWxsLGEpO3JldHVybiBuZXcgY2kocixuKX1kZWxldGUoZSl7cmV0dXJuIE85KHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZGVsZXRlKGUpOiExfWRlbGV0ZUluKGUpe3JldHVybiBnMyhlKT90aGlzLmNvbnRlbnRzPT1udWxsPyExOih0aGlzLmNvbnRlbnRzPW51bGwsITApOk85KHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZGVsZXRlSW4oZSk6ITF9Z2V0KGUsdCl7cmV0dXJuIGRzKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZ2V0KGUsdCk6dm9pZCAwfWdldEluKGUsdCl7cmV0dXJuIGczKGUpPyF0JiZsYSh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLnZhbHVlOnRoaXMuY29udGVudHM6ZHModGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5nZXRJbihlLHQpOnZvaWQgMH1oYXMoZSl7cmV0dXJuIGRzKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuaGFzKGUpOiExfWhhc0luKGUpe3JldHVybiBnMyhlKT90aGlzLmNvbnRlbnRzIT09dm9pZCAwOmRzKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuaGFzSW4oZSk6ITF9c2V0KGUsdCl7dGhpcy5jb250ZW50cz09bnVsbD90aGlzLmNvbnRlbnRzPXo5KHRoaXMuc2NoZW1hLFtlXSx0KTpPOSh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5zZXQoZSx0KX1zZXRJbihlLHQpe2czKGUpP3RoaXMuY29udGVudHM9dDp0aGlzLmNvbnRlbnRzPT1udWxsP3RoaXMuY29udGVudHM9ejkodGhpcy5zY2hlbWEsQXJyYXkuZnJvbShlKSx0KTpPOSh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5zZXRJbihlLHQpfXNldFNjaGVtYShlLHQ9e30pe3R5cGVvZiBlPT0ibnVtYmVyIiYmKGU9U3RyaW5nKGUpKTtsZXQgYTtzd2l0Y2goZSl7Y2FzZSIxLjEiOnRoaXMuZGlyZWN0aXZlcz90aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uPSIxLjEiOnRoaXMuZGlyZWN0aXZlcz1uZXcgRDEoe3ZlcnNpb246IjEuMSJ9KSxhPXtyZXNvbHZlS25vd25UYWdzOiExLHNjaGVtYToieWFtbC0xLjEifTticmVhaztjYXNlIjEuMiI6Y2FzZSJuZXh0Ijp0aGlzLmRpcmVjdGl2ZXM/dGhpcy5kaXJlY3RpdmVzLnlhbWwudmVyc2lvbj1lOnRoaXMuZGlyZWN0aXZlcz1uZXcgRDEoe3ZlcnNpb246ZX0pLGE9e3Jlc29sdmVLbm93blRhZ3M6ITAsc2NoZW1hOiJjb3JlIn07YnJlYWs7Y2FzZSBudWxsOnRoaXMuZGlyZWN0aXZlcyYmZGVsZXRlIHRoaXMuZGlyZWN0aXZlcyxhPW51bGw7YnJlYWs7ZGVmYXVsdDp7bGV0IHI9SlNPTi5zdHJpbmdpZnkoZSk7dGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAnMS4xJywgJzEuMicgb3IgbnVsbCBhcyBmaXJzdCBhcmd1bWVudCwgYnV0IGZvdW5kOiAke3J9YCl9fWlmKHQuc2NoZW1hIGluc3RhbmNlb2YgT2JqZWN0KXRoaXMuc2NoZW1hPXQuc2NoZW1hO2Vsc2UgaWYoYSl0aGlzLnNjaGVtYT1uZXcgQnAoT2JqZWN0LmFzc2lnbihhLHQpKTtlbHNlIHRocm93IG5ldyBFcnJvcigiV2l0aCBhIG51bGwgWUFNTCB2ZXJzaW9uLCB0aGUgeyBzY2hlbWE6IFNjaGVtYSB9IG9wdGlvbiBpcyByZXF1aXJlZCIpfXRvSlMoe2pzb246ZSxqc29uQXJnOnQsbWFwQXNNYXA6YSxtYXhBbGlhc0NvdW50OnIsb25BbmNob3I6bixyZXZpdmVyOm99PXt9KXtsZXQgbD17YW5jaG9yczpuZXcgTWFwLGRvYzp0aGlzLGtlZXA6IWUsbWFwQXNNYXA6YT09PSEwLG1hcEtleVdhcm5lZDohMSxtYXhBbGlhc0NvdW50OnR5cGVvZiByPT0ibnVtYmVyIj9yOjEwMH0scD1Tcih0aGlzLmNvbnRlbnRzLHQ/PyIiLGwpO2lmKHR5cGVvZiBuPT0iZnVuY3Rpb24iKWZvcihsZXR7Y291bnQ6ZCxyZXM6dX1vZiBsLmFuY2hvcnMudmFsdWVzKCkpbih1LGQpO3JldHVybiB0eXBlb2Ygbz09ImZ1bmN0aW9uIj9rMChvLHsiIjpwfSwiIixwKTpwfXRvSlNPTihlLHQpe3JldHVybiB0aGlzLnRvSlMoe2pzb246ITAsanNvbkFyZzplLG1hcEFzTWFwOiExLG9uQW5jaG9yOnR9KX10b1N0cmluZyhlPXt9KXtpZih0aGlzLmVycm9ycy5sZW5ndGg+MCl0aHJvdyBuZXcgRXJyb3IoIkRvY3VtZW50IHdpdGggZXJyb3JzIGNhbm5vdCBiZSBzdHJpbmdpZmllZCIpO2lmKCJpbmRlbnQiaW4gZSYmKCFOdW1iZXIuaXNJbnRlZ2VyKGUuaW5kZW50KXx8TnVtYmVyKGUuaW5kZW50KTw9MCkpe2xldCB0PUpTT04uc3RyaW5naWZ5KGUuaW5kZW50KTt0aHJvdyBuZXcgRXJyb3IoYCJpbmRlbnQiIG9wdGlvbiBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgbm90ICR7dH1gKX1yZXR1cm4gaDNlKHRoaXMsZSl9fTtpKE85LCJhc3NlcnRDb2xsZWN0aW9uIil9KTt2YXIgSHAsa24scXAsRjksV3c9ZygoKT0+e0hwPWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje2kodGhpcywiWUFNTEVycm9yIil9Y29uc3RydWN0b3IoZSx0LGEscil7c3VwZXIoKSx0aGlzLm5hbWU9ZSx0aGlzLmNvZGU9YSx0aGlzLm1lc3NhZ2U9cix0aGlzLnBvcz10fX0sa249Y2xhc3MgZXh0ZW5kcyBIcHtzdGF0aWN7aSh0aGlzLCJZQU1MUGFyc2VFcnJvciIpfWNvbnN0cnVjdG9yKGUsdCxhKXtzdXBlcigiWUFNTFBhcnNlRXJyb3IiLGUsdCxhKX19LHFwPWNsYXNzIGV4dGVuZHMgSHB7c3RhdGlje2kodGhpcywiWUFNTFdhcm5pbmciKX1jb25zdHJ1Y3RvcihlLHQsYSl7c3VwZXIoIllBTUxXYXJuaW5nIixlLHQsYSl9fSxGOT1pKChzLGUpPT50PT57aWYodC5wb3NbMF09PT0tMSlyZXR1cm47dC5saW5lUG9zPXQucG9zLm1hcChsPT5lLmxpbmVQb3MobCkpO2xldHtsaW5lOmEsY29sOnJ9PXQubGluZVBvc1swXTt0Lm1lc3NhZ2UrPWAgYXQgbGluZSAke2F9LCBjb2x1bW4gJHtyfWA7bGV0IG49ci0xLG89cy5zdWJzdHJpbmcoZS5saW5lU3RhcnRzW2EtMV0sZS5saW5lU3RhcnRzW2FdKS5yZXBsYWNlKC9bXG5ccl0rJC8sIiIpO2lmKG4+PTYwJiZvLmxlbmd0aD44MCl7bGV0IGw9TWF0aC5taW4obi0zOSxvLmxlbmd0aC03OSk7bz0iXHUyMDI2IitvLnN1YnN0cmluZyhsKSxuLT1sLTF9aWYoby5sZW5ndGg+ODAmJihvPW8uc3Vic3RyaW5nKDAsNzkpKyJcdTIwMjYiKSxhPjEmJi9eICokLy50ZXN0KG8uc3Vic3RyaW5nKDAsbikpKXtsZXQgbD1zLnN1YnN0cmluZyhlLmxpbmVTdGFydHNbYS0yXSxlLmxpbmVTdGFydHNbYS0xXSk7bC5sZW5ndGg+ODAmJihsPWwuc3Vic3RyaW5nKDAsNzkpK2BcdTIwMjYKYCksbz1sK299aWYoL1teIF0vLnRlc3Qobykpe2xldCBsPTEscD10LmxpbmVQb3NbMV07cD8ubGluZT09PWEmJnAuY29sPnImJihsPU1hdGgubWF4KDEsTWF0aC5taW4ocC5jb2wtciw4MC1uKSkpO2xldCBkPSIgIi5yZXBlYXQobikrIl4iLnJlcGVhdChsKTt0Lm1lc3NhZ2UrPWA6Cgoke299CiR7ZH0KYH19LCJwcmV0dGlmeUVycm9yIil9KTtmdW5jdGlvbiBFMShzLHtmbG93OmUsaW5kaWNhdG9yOnQsbmV4dDphLG9mZnNldDpyLG9uRXJyb3I6bixwYXJlbnRJbmRlbnQ6byxzdGFydE9uTmV3bGluZTpsfSl7bGV0IHA9ITEsZD1sLHU9bCxjPSIiLGI9IiIsdj0hMSx4PSExLG09bnVsbCxmPW51bGwseT1udWxsLE09bnVsbCx6PW51bGwsTj1udWxsLEM9bnVsbDtmb3IobGV0ICQgb2Ygcylzd2l0Y2goeCYmKCQudHlwZSE9PSJzcGFjZSImJiQudHlwZSE9PSJuZXdsaW5lIiYmJC50eXBlIT09ImNvbW1hIiYmbigkLm9mZnNldCwiTUlTU0lOR19DSEFSIiwiVGFncyBhbmQgYW5jaG9ycyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBuZXh0IHRva2VuIGJ5IHdoaXRlIHNwYWNlIikseD0hMSksbSYmKGQmJiQudHlwZSE9PSJjb21tZW50IiYmJC50eXBlIT09Im5ld2xpbmUiJiZuKG0sIlRBQl9BU19JTkRFTlQiLCJUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvbiIpLG09bnVsbCksJC50eXBlKXtjYXNlInNwYWNlIjohZSYmKHQhPT0iZG9jLXN0YXJ0Inx8YT8udHlwZSE9PSJmbG93LWNvbGxlY3Rpb24iKSYmJC5zb3VyY2UuaW5jbHVkZXMoIgkiKSYmKG09JCksdT0hMDticmVhaztjYXNlImNvbW1lbnQiOnt1fHxuKCQsIk1JU1NJTkdfQ0hBUiIsIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMiKTtsZXQgRT0kLnNvdXJjZS5zdWJzdHJpbmcoMSl8fCIgIjtjP2MrPWIrRTpjPUUsYj0iIixkPSExO2JyZWFrfWNhc2UibmV3bGluZSI6ZD9jP2MrPSQuc291cmNlOighTnx8dCE9PSJzZXEtaXRlbS1pbmQiKSYmKHA9ITApOmIrPSQuc291cmNlLGQ9ITAsdj0hMCwoZnx8eSkmJihNPSQpLHU9ITA7YnJlYWs7Y2FzZSJhbmNob3IiOmYmJm4oJCwiTVVMVElQTEVfQU5DSE9SUyIsIkEgbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSBhbmNob3IiKSwkLnNvdXJjZS5lbmRzV2l0aCgiOiIpJiZuKCQub2Zmc2V0KyQuc291cmNlLmxlbmd0aC0xLCJCQURfQUxJQVMiLCJBbmNob3IgZW5kaW5nIGluIDogaXMgYW1iaWd1b3VzIiwhMCksZj0kLEM/PyhDPSQub2Zmc2V0KSxkPSExLHU9ITEseD0hMDticmVhaztjYXNlInRhZyI6e3kmJm4oJCwiTVVMVElQTEVfVEFHUyIsIkEgbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSB0YWciKSx5PSQsQz8/KEM9JC5vZmZzZXQpLGQ9ITEsdT0hMSx4PSEwO2JyZWFrfWNhc2UgdDooZnx8eSkmJm4oJCwiQkFEX1BST1BfT1JERVIiLGBBbmNob3JzIGFuZCB0YWdzIG11c3QgYmUgYWZ0ZXIgdGhlICR7JC5zb3VyY2V9IGluZGljYXRvcmApLE4mJm4oJCwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgJHskLnNvdXJjZX0gaW4gJHtlPz8iY29sbGVjdGlvbiJ9YCksTj0kLGQ9dD09PSJzZXEtaXRlbS1pbmQifHx0PT09ImV4cGxpY2l0LWtleS1pbmQiLHU9ITE7YnJlYWs7Y2FzZSJjb21tYSI6aWYoZSl7eiYmbigkLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAsIGluICR7ZX1gKSx6PSQsZD0hMSx1PSExO2JyZWFrfWRlZmF1bHQ6bigkLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAkeyQudHlwZX0gdG9rZW5gKSxkPSExLHU9ITF9bGV0IF89c1tzLmxlbmd0aC0xXSxPPV8/Xy5vZmZzZXQrXy5zb3VyY2UubGVuZ3RoOnI7cmV0dXJuIHgmJmEmJmEudHlwZSE9PSJzcGFjZSImJmEudHlwZSE9PSJuZXdsaW5lIiYmYS50eXBlIT09ImNvbW1hIiYmKGEudHlwZSE9PSJzY2FsYXIifHxhLnNvdXJjZSE9PSIiKSYmbihhLm9mZnNldCwiTUlTU0lOR19DSEFSIiwiVGFncyBhbmQgYW5jaG9ycyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBuZXh0IHRva2VuIGJ5IHdoaXRlIHNwYWNlIiksbSYmKGQmJm0uaW5kZW50PD1vfHxhPy50eXBlPT09ImJsb2NrLW1hcCJ8fGE/LnR5cGU9PT0iYmxvY2stc2VxIikmJm4obSwiVEFCX0FTX0lOREVOVCIsIlRhYnMgYXJlIG5vdCBhbGxvd2VkIGFzIGluZGVudGF0aW9uIikse2NvbW1hOnosZm91bmQ6TixzcGFjZUJlZm9yZTpwLGNvbW1lbnQ6YyxoYXNOZXdsaW5lOnYsYW5jaG9yOmYsdGFnOnksbmV3bGluZUFmdGVyUHJvcDpNLGVuZDpPLHN0YXJ0OkM/P099fXZhciBHdz1nKCgpPT57aShFMSwicmVzb2x2ZVByb3BzIil9KTtmdW5jdGlvbiB6MChzKXtpZighcylyZXR1cm4gbnVsbDtzd2l0Y2gocy50eXBlKXtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6aWYocy5zb3VyY2UuaW5jbHVkZXMoYApgKSlyZXR1cm4hMDtpZihzLmVuZCl7Zm9yKGxldCBlIG9mIHMuZW5kKWlmKGUudHlwZT09PSJuZXdsaW5lIilyZXR1cm4hMH1yZXR1cm4hMTtjYXNlImZsb3ctY29sbGVjdGlvbiI6Zm9yKGxldCBlIG9mIHMuaXRlbXMpe2ZvcihsZXQgdCBvZiBlLnN0YXJ0KWlmKHQudHlwZT09PSJuZXdsaW5lIilyZXR1cm4hMDtpZihlLnNlcCl7Zm9yKGxldCB0IG9mIGUuc2VwKWlmKHQudHlwZT09PSJuZXdsaW5lIilyZXR1cm4hMH1pZih6MChlLmtleSl8fHowKGUudmFsdWUpKXJldHVybiEwfXJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciBGc2U9ZygoKT0+e2koejAsImNvbnRhaW5zTmV3bGluZSIpfSk7ZnVuY3Rpb24gQjkocyxlLHQpe2lmKGU/LnR5cGU9PT0iZmxvdy1jb2xsZWN0aW9uIil7bGV0IGE9ZS5lbmRbMF07YS5pbmRlbnQ9PT1zJiYoYS5zb3VyY2U9PT0iXSJ8fGEuc291cmNlPT09In0iKSYmejAoZSkmJnQoYSwiQkFEX0lOREVOVCIsIkZsb3cgZW5kIGluZGljYXRvciBzaG91bGQgYmUgbW9yZSBpbmRlbnRlZCB0aGFuIHBhcmVudCIsITApfX12YXIgZjNlPWcoKCk9PntGc2UoKTtpKEI5LCJmbG93SW5kZW50Q2hlY2siKX0pO2Z1bmN0aW9uIEt3KHMsZSx0KXtsZXR7dW5pcXVlS2V5czphfT1zLm9wdGlvbnM7aWYoYT09PSExKXJldHVybiExO2xldCByPXR5cGVvZiBhPT0iZnVuY3Rpb24iP2E6KG4sbyk9Pm49PT1vfHxsYShuKSYmbGEobykmJm4udmFsdWU9PT1vLnZhbHVlO3JldHVybiBlLnNvbWUobj0+cihuLmtleSx0KSl9dmFyIG0zZT1nKCgpPT57dXMoKTtpKEt3LCJtYXBJbmNsdWRlcyIpfSk7ZnVuY3Rpb24gZzNlKHtjb21wb3NlTm9kZTpzLGNvbXBvc2VFbXB0eU5vZGU6ZX0sdCxhLHIsbil7bGV0IG89bj8ubm9kZUNsYXNzPz95aSxsPW5ldyBvKHQuc2NoZW1hKTt0LmF0Um9vdCYmKHQuYXRSb290PSExKTtsZXQgcD1hLm9mZnNldCxkPW51bGw7Zm9yKGxldCB1IG9mIGEuaXRlbXMpe2xldHtzdGFydDpjLGtleTpiLHNlcDp2LHZhbHVlOnh9PXUsbT1FMShjLHtpbmRpY2F0b3I6ImV4cGxpY2l0LWtleS1pbmQiLG5leHQ6Yj8/dj8uWzBdLG9mZnNldDpwLG9uRXJyb3I6cixwYXJlbnRJbmRlbnQ6YS5pbmRlbnQsc3RhcnRPbk5ld2xpbmU6ITB9KSxmPSFtLmZvdW5kO2lmKGYpe2lmKGImJihiLnR5cGU9PT0iYmxvY2stc2VxIj9yKHAsIkJMT0NLX0FTX0lNUExJQ0lUX0tFWSIsIkEgYmxvY2sgc2VxdWVuY2UgbWF5IG5vdCBiZSB1c2VkIGFzIGFuIGltcGxpY2l0IG1hcCBrZXkiKToiaW5kZW50ImluIGImJmIuaW5kZW50IT09YS5pbmRlbnQmJnIocCwiQkFEX0lOREVOVCIsRDV0KSksIW0uYW5jaG9yJiYhbS50YWcmJiF2KXtkPW0uZW5kLG0uY29tbWVudCYmKGwuY29tbWVudD9sLmNvbW1lbnQrPWAKYCttLmNvbW1lbnQ6bC5jb21tZW50PW0uY29tbWVudCk7Y29udGludWV9KG0ubmV3bGluZUFmdGVyUHJvcHx8ejAoYikpJiZyKGI/P2NbYy5sZW5ndGgtMV0sIk1VTFRJTElORV9JTVBMSUNJVF9LRVkiLCJJbXBsaWNpdCBrZXlzIG5lZWQgdG8gYmUgb24gYSBzaW5nbGUgbGluZSIpfWVsc2UgbS5mb3VuZD8uaW5kZW50IT09YS5pbmRlbnQmJnIocCwiQkFEX0lOREVOVCIsRDV0KTt0LmF0S2V5PSEwO2xldCB5PW0uZW5kLE09Yj9zKHQsYixtLHIpOmUodCx5LGMsbnVsbCxtLHIpO3Quc2NoZW1hLmNvbXBhdCYmQjkoYS5pbmRlbnQsYixyKSx0LmF0S2V5PSExLEt3KHQsbC5pdGVtcyxNKSYmcih5LCJEVVBMSUNBVEVfS0VZIiwiTWFwIGtleXMgbXVzdCBiZSB1bmlxdWUiKTtsZXQgej1FMSh2Pz9bXSx7aW5kaWNhdG9yOiJtYXAtdmFsdWUtaW5kIixuZXh0Ongsb2Zmc2V0Ok0ucmFuZ2VbMl0sb25FcnJvcjpyLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohYnx8Yi50eXBlPT09ImJsb2NrLXNjYWxhciJ9KTtpZihwPXouZW5kLHouZm91bmQpe2YmJih4Py50eXBlPT09ImJsb2NrLW1hcCImJiF6Lmhhc05ld2xpbmUmJnIocCwiQkxPQ0tfQVNfSU1QTElDSVRfS0VZIiwiTmVzdGVkIG1hcHBpbmdzIGFyZSBub3QgYWxsb3dlZCBpbiBjb21wYWN0IG1hcHBpbmdzIiksdC5vcHRpb25zLnN0cmljdCYmbS5zdGFydDx6LmZvdW5kLm9mZnNldC0xMDI0JiZyKE0ucmFuZ2UsIktFWV9PVkVSXzEwMjRfQ0hBUlMiLCJUaGUgOiBpbmRpY2F0b3IgbXVzdCBiZSBhdCBtb3N0IDEwMjQgY2hhcnMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIGFuIGltcGxpY2l0IGJsb2NrIG1hcHBpbmcga2V5IikpO2xldCBOPXg/cyh0LHgseixyKTplKHQscCx2LG51bGwseixyKTt0LnNjaGVtYS5jb21wYXQmJkI5KGEuaW5kZW50LHgscikscD1OLnJhbmdlWzJdO2xldCBDPW5ldyBjaShNLE4pO3Qub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoQy5zcmNUb2tlbj11KSxsLml0ZW1zLnB1c2goQyl9ZWxzZXtmJiZyKE0ucmFuZ2UsIk1JU1NJTkdfQ0hBUiIsIkltcGxpY2l0IG1hcCBrZXlzIG5lZWQgdG8gYmUgZm9sbG93ZWQgYnkgbWFwIHZhbHVlcyIpLHouY29tbWVudCYmKE0uY29tbWVudD9NLmNvbW1lbnQrPWAKYCt6LmNvbW1lbnQ6TS5jb21tZW50PXouY29tbWVudCk7bGV0IE49bmV3IGNpKE0pO3Qub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoTi5zcmNUb2tlbj11KSxsLml0ZW1zLnB1c2goTil9fXJldHVybiBkJiZkPHAmJnIoZCwiSU1QT1NTSUJMRSIsIk1hcCBjb21tZW50IHdpdGggdHJhaWxpbmcgY29udGVudCIpLGwucmFuZ2U9W2Eub2Zmc2V0LHAsZD8/cF0sbH12YXIgRDV0LEw1dD1nKCgpPT57TnAoKTtScCgpO0d3KCk7RnNlKCk7ZjNlKCk7bTNlKCk7RDV0PSJBbGwgbWFwcGluZyBpdGVtcyBtdXN0IHN0YXJ0IGF0IHRoZSBzYW1lIGNvbHVtbiI7aShnM2UsInJlc29sdmVCbG9ja01hcCIpfSk7ZnVuY3Rpb24gYjNlKHtjb21wb3NlTm9kZTpzLGNvbXBvc2VFbXB0eU5vZGU6ZX0sdCxhLHIsbil7bGV0IG89bj8ubm9kZUNsYXNzPz9WcixsPW5ldyBvKHQuc2NoZW1hKTt0LmF0Um9vdCYmKHQuYXRSb290PSExKSx0LmF0S2V5JiYodC5hdEtleT0hMSk7bGV0IHA9YS5vZmZzZXQsZD1udWxsO2ZvcihsZXR7c3RhcnQ6dSx2YWx1ZTpjfW9mIGEuaXRlbXMpe2xldCBiPUUxKHUse2luZGljYXRvcjoic2VxLWl0ZW0taW5kIixuZXh0OmMsb2Zmc2V0OnAsb25FcnJvcjpyLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohMH0pO2lmKCFiLmZvdW5kKWlmKGIuYW5jaG9yfHxiLnRhZ3x8YyljPy50eXBlPT09ImJsb2NrLXNlcSI/cihiLmVuZCwiQkFEX0lOREVOVCIsIkFsbCBzZXF1ZW5jZSBpdGVtcyBtdXN0IHN0YXJ0IGF0IHRoZSBzYW1lIGNvbHVtbiIpOnIocCwiTUlTU0lOR19DSEFSIiwiU2VxdWVuY2UgaXRlbSB3aXRob3V0IC0gaW5kaWNhdG9yIik7ZWxzZXtkPWIuZW5kLGIuY29tbWVudCYmKGwuY29tbWVudD1iLmNvbW1lbnQpO2NvbnRpbnVlfWxldCB2PWM/cyh0LGMsYixyKTplKHQsYi5lbmQsdSxudWxsLGIscik7dC5zY2hlbWEuY29tcGF0JiZCOShhLmluZGVudCxjLHIpLHA9di5yYW5nZVsyXSxsLml0ZW1zLnB1c2godil9cmV0dXJuIGwucmFuZ2U9W2Eub2Zmc2V0LHAsZD8/cF0sbH12YXIgRTV0PWcoKCk9PntPcCgpO0d3KCk7ZjNlKCk7aShiM2UsInJlc29sdmVCbG9ja1NlcSIpfSk7ZnVuY3Rpb24gUDEocyxlLHQsYSl7bGV0IHI9IiI7aWYocyl7bGV0IG49ITEsbz0iIjtmb3IobGV0IGwgb2Ygcyl7bGV0e3NvdXJjZTpwLHR5cGU6ZH09bDtzd2l0Y2goZCl7Y2FzZSJzcGFjZSI6bj0hMDticmVhaztjYXNlImNvbW1lbnQiOnt0JiYhbiYmYShsLCJNSVNTSU5HX0NIQVIiLCJDb21tZW50cyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIG90aGVyIHRva2VucyBieSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzIik7bGV0IHU9cC5zdWJzdHJpbmcoMSl8fCIgIjtyP3IrPW8rdTpyPXUsbz0iIjticmVha31jYXNlIm5ld2xpbmUiOnImJihvKz1wKSxuPSEwO2JyZWFrO2RlZmF1bHQ6YShsLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAke2R9IGF0IG5vZGUgZW5kYCl9ZSs9cC5sZW5ndGh9fXJldHVybntjb21tZW50OnIsb2Zmc2V0OmV9fXZhciBIOT1nKCgpPT57aShQMSwicmVzb2x2ZUVuZCIpfSk7ZnVuY3Rpb24geTNlKHtjb21wb3NlTm9kZTpzLGNvbXBvc2VFbXB0eU5vZGU6ZX0sdCxhLHIsbil7bGV0IG89YS5zdGFydC5zb3VyY2U9PT0ieyIsbD1vPyJmbG93IG1hcCI6ImZsb3cgc2VxdWVuY2UiLHA9bj8ubm9kZUNsYXNzPz8obz95aTpWciksZD1uZXcgcCh0LnNjaGVtYSk7ZC5mbG93PSEwO2xldCB1PXQuYXRSb290O3UmJih0LmF0Um9vdD0hMSksdC5hdEtleSYmKHQuYXRLZXk9ITEpO2xldCBjPWEub2Zmc2V0K2Euc3RhcnQuc291cmNlLmxlbmd0aDtmb3IobGV0IGY9MDtmPGEuaXRlbXMubGVuZ3RoOysrZil7bGV0IHk9YS5pdGVtc1tmXSx7c3RhcnQ6TSxrZXk6eixzZXA6Tix2YWx1ZTpDfT15LF89RTEoTSx7ZmxvdzpsLGluZGljYXRvcjoiZXhwbGljaXQta2V5LWluZCIsbmV4dDp6Pz9OPy5bMF0sb2Zmc2V0OmMsb25FcnJvcjpyLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohMX0pO2lmKCFfLmZvdW5kKXtpZighXy5hbmNob3ImJiFfLnRhZyYmIU4mJiFDKXtmPT09MCYmXy5jb21tYT9yKF8uY29tbWEsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICwgaW4gJHtsfWApOmY8YS5pdGVtcy5sZW5ndGgtMSYmcihfLnN0YXJ0LCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCBlbXB0eSBpdGVtIGluICR7bH1gKSxfLmNvbW1lbnQmJihkLmNvbW1lbnQ/ZC5jb21tZW50Kz1gCmArXy5jb21tZW50OmQuY29tbWVudD1fLmNvbW1lbnQpLGM9Xy5lbmQ7Y29udGludWV9IW8mJnQub3B0aW9ucy5zdHJpY3QmJnowKHopJiZyKHosIk1VTFRJTElORV9JTVBMSUNJVF9LRVkiLCJJbXBsaWNpdCBrZXlzIG9mIGZsb3cgc2VxdWVuY2UgcGFpcnMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lIil9aWYoZj09PTApXy5jb21tYSYmcihfLmNvbW1hLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAsIGluICR7bH1gKTtlbHNlIGlmKF8uY29tbWF8fHIoXy5zdGFydCwiTUlTU0lOR19DSEFSIixgTWlzc2luZyAsIGJldHdlZW4gJHtsfSBpdGVtc2ApLF8uY29tbWVudCl7bGV0IE89IiI7ZTpmb3IobGV0ICQgb2YgTSlzd2l0Y2goJC50eXBlKXtjYXNlImNvbW1hIjpjYXNlInNwYWNlIjpicmVhaztjYXNlImNvbW1lbnQiOk89JC5zb3VyY2Uuc3Vic3RyaW5nKDEpO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfWlmKE8pe2xldCAkPWQuaXRlbXNbZC5pdGVtcy5sZW5ndGgtMV07Q2EoJCkmJigkPSQudmFsdWU/PyQua2V5KSwkLmNvbW1lbnQ/JC5jb21tZW50Kz1gCmArTzokLmNvbW1lbnQ9TyxfLmNvbW1lbnQ9Xy5jb21tZW50LnN1YnN0cmluZyhPLmxlbmd0aCsxKX19aWYoIW8mJiFOJiYhXy5mb3VuZCl7bGV0IE89Qz9zKHQsQyxfLHIpOmUodCxfLmVuZCxOLG51bGwsXyxyKTtkLml0ZW1zLnB1c2goTyksYz1PLnJhbmdlWzJdLHgzZShDKSYmcihPLnJhbmdlLCJCTE9DS19JTl9GTE9XIix2M2UpfWVsc2V7dC5hdEtleT0hMDtsZXQgTz1fLmVuZCwkPXo/cyh0LHosXyxyKTplKHQsTyxNLG51bGwsXyxyKTt4M2UoeikmJnIoJC5yYW5nZSwiQkxPQ0tfSU5fRkxPVyIsdjNlKSx0LmF0S2V5PSExO2xldCBFPUUxKE4/P1tdLHtmbG93OmwsaW5kaWNhdG9yOiJtYXAtdmFsdWUtaW5kIixuZXh0OkMsb2Zmc2V0OiQucmFuZ2VbMl0sb25FcnJvcjpyLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohMX0pO2lmKEUuZm91bmQpe2lmKCFvJiYhXy5mb3VuZCYmdC5vcHRpb25zLnN0cmljdCl7aWYoTilmb3IobGV0IFMgb2YgTil7aWYoUz09PUUuZm91bmQpYnJlYWs7aWYoUy50eXBlPT09Im5ld2xpbmUiKXtyKFMsIk1VTFRJTElORV9JTVBMSUNJVF9LRVkiLCJJbXBsaWNpdCBrZXlzIG9mIGZsb3cgc2VxdWVuY2UgcGFpcnMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lIik7YnJlYWt9fV8uc3RhcnQ8RS5mb3VuZC5vZmZzZXQtMTAyNCYmcihFLmZvdW5kLCJLRVlfT1ZFUl8xMDI0X0NIQVJTIiwiVGhlIDogaW5kaWNhdG9yIG11c3QgYmUgYXQgbW9zdCAxMDI0IGNoYXJzIGFmdGVyIHRoZSBzdGFydCBvZiBhbiBpbXBsaWNpdCBmbG93IHNlcXVlbmNlIGtleSIpfX1lbHNlIEMmJigic291cmNlImluIEMmJkMuc291cmNlPy5bMF09PT0iOiI/cihDLCJNSVNTSU5HX0NIQVIiLGBNaXNzaW5nIHNwYWNlIGFmdGVyIDogaW4gJHtsfWApOnIoRS5zdGFydCwiTUlTU0lOR19DSEFSIixgTWlzc2luZyAsIG9yIDogYmV0d2VlbiAke2x9IGl0ZW1zYCkpO2xldCBIPUM/cyh0LEMsRSxyKTpFLmZvdW5kP2UodCxFLmVuZCxOLG51bGwsRSxyKTpudWxsO0g/eDNlKEMpJiZyKEgucmFuZ2UsIkJMT0NLX0lOX0ZMT1ciLHYzZSk6RS5jb21tZW50JiYoJC5jb21tZW50PyQuY29tbWVudCs9YApgK0UuY29tbWVudDokLmNvbW1lbnQ9RS5jb21tZW50KTtsZXQgaz1uZXcgY2koJCxIKTtpZih0Lm9wdGlvbnMua2VlcFNvdXJjZVRva2VucyYmKGsuc3JjVG9rZW49eSksbyl7bGV0IFM9ZDtLdyh0LFMuaXRlbXMsJCkmJnIoTywiRFVQTElDQVRFX0tFWSIsIk1hcCBrZXlzIG11c3QgYmUgdW5pcXVlIiksUy5pdGVtcy5wdXNoKGspfWVsc2V7bGV0IFM9bmV3IHlpKHQuc2NoZW1hKTtTLmZsb3c9ITAsUy5pdGVtcy5wdXNoKGspO2xldCBJPShIPz8kKS5yYW5nZTtTLnJhbmdlPVskLnJhbmdlWzBdLElbMV0sSVsyXV0sZC5pdGVtcy5wdXNoKFMpfWM9SD9ILnJhbmdlWzJdOkUuZW5kfX1sZXQgYj1vPyJ9IjoiXSIsW3YsLi4ueF09YS5lbmQsbT1jO2lmKHY/LnNvdXJjZT09PWIpbT12Lm9mZnNldCt2LnNvdXJjZS5sZW5ndGg7ZWxzZXtsZXQgZj1sWzBdLnRvVXBwZXJDYXNlKCkrbC5zdWJzdHJpbmcoMSkseT11P2Ake2Z9IG11c3QgZW5kIHdpdGggYSAke2J9YDpgJHtmfSBpbiBibG9jayBjb2xsZWN0aW9uIG11c3QgYmUgc3VmZmljaWVudGx5IGluZGVudGVkIGFuZCBlbmQgd2l0aCBhICR7Yn1gO3IoYyx1PyJNSVNTSU5HX0NIQVIiOiJCQURfSU5ERU5UIix5KSx2JiZ2LnNvdXJjZS5sZW5ndGghPT0xJiZ4LnVuc2hpZnQodil9aWYoeC5sZW5ndGg+MCl7bGV0IGY9UDEoeCxtLHQub3B0aW9ucy5zdHJpY3Qscik7Zi5jb21tZW50JiYoZC5jb21tZW50P2QuY29tbWVudCs9YApgK2YuY29tbWVudDpkLmNvbW1lbnQ9Zi5jb21tZW50KSxkLnJhbmdlPVthLm9mZnNldCxtLGYub2Zmc2V0XX1lbHNlIGQucmFuZ2U9W2Eub2Zmc2V0LG0sbV07cmV0dXJuIGR9dmFyIHYzZSx4M2UsUDV0PWcoKCk9Pnt1cygpO05wKCk7UnAoKTtPcCgpO0g5KCk7R3coKTtGc2UoKTttM2UoKTt2M2U9IkJsb2NrIGNvbGxlY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB3aXRoaW4gZmxvdyBjb2xsZWN0aW9ucyIseDNlPWkocz0+cyYmKHMudHlwZT09PSJibG9jay1tYXAifHxzLnR5cGU9PT0iYmxvY2stc2VxIiksImlzQmxvY2siKTtpKHkzZSwicmVzb2x2ZUZsb3dDb2xsZWN0aW9uIil9KTtmdW5jdGlvbiB3M2UocyxlLHQsYSxyLG4pe2xldCBvPXQudHlwZT09PSJibG9jay1tYXAiP2czZShzLGUsdCxhLG4pOnQudHlwZT09PSJibG9jay1zZXEiP2IzZShzLGUsdCxhLG4pOnkzZShzLGUsdCxhLG4pLGw9by5jb25zdHJ1Y3RvcjtyZXR1cm4gcj09PSIhInx8cj09PWwudGFnTmFtZT8oby50YWc9bC50YWdOYW1lLG8pOihyJiYoby50YWc9ciksbyl9ZnVuY3Rpb24gazNlKHMsZSx0LGEscil7bGV0IG49YS50YWcsbz1uP2UuZGlyZWN0aXZlcy50YWdOYW1lKG4uc291cmNlLGI9PnIobiwiVEFHX1JFU09MVkVfRkFJTEVEIixiKSk6bnVsbDtpZih0LnR5cGU9PT0iYmxvY2stc2VxIil7bGV0e2FuY2hvcjpiLG5ld2xpbmVBZnRlclByb3A6dn09YSx4PWImJm4/Yi5vZmZzZXQ+bi5vZmZzZXQ/YjpuOmI/P247eCYmKCF2fHx2Lm9mZnNldDx4Lm9mZnNldCkmJnIoeCwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBuZXdsaW5lIGFmdGVyIGJsb2NrIHNlcXVlbmNlIHByb3BzIil9bGV0IGw9dC50eXBlPT09ImJsb2NrLW1hcCI/Im1hcCI6dC50eXBlPT09ImJsb2NrLXNlcSI/InNlcSI6dC5zdGFydC5zb3VyY2U9PT0ieyI/Im1hcCI6InNlcSI7aWYoIW58fCFvfHxvPT09IiEifHxvPT09eWkudGFnTmFtZSYmbD09PSJtYXAifHxvPT09VnIudGFnTmFtZSYmbD09PSJzZXEiKXJldHVybiB3M2UocyxlLHQscixvKTtsZXQgcD1lLnNjaGVtYS50YWdzLmZpbmQoYj0+Yi50YWc9PT1vJiZiLmNvbGxlY3Rpb249PT1sKTtpZighcCl7bGV0IGI9ZS5zY2hlbWEua25vd25UYWdzW29dO2lmKGI/LmNvbGxlY3Rpb249PT1sKWUuc2NoZW1hLnRhZ3MucHVzaChPYmplY3QuYXNzaWduKHt9LGIse2RlZmF1bHQ6ITF9KSkscD1iO2Vsc2UgcmV0dXJuIGI/cihuLCJCQURfQ09MTEVDVElPTl9UWVBFIixgJHtiLnRhZ30gdXNlZCBmb3IgJHtsfSBjb2xsZWN0aW9uLCBidXQgZXhwZWN0cyAke2IuY29sbGVjdGlvbj8/InNjYWxhciJ9YCwhMCk6cihuLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGBVbnJlc29sdmVkIHRhZzogJHtvfWAsITApLHczZShzLGUsdCxyLG8pfWxldCBkPXczZShzLGUsdCxyLG8scCksdT1wLnJlc29sdmU/LihkLGI9PnIobiwiVEFHX1JFU09MVkVfRkFJTEVEIixiKSxlLm9wdGlvbnMpPz9kLGM9SWEodSk/dTpuZXcgTHQodSk7cmV0dXJuIGMucmFuZ2U9ZC5yYW5nZSxjLnRhZz1vLHA/LmZvcm1hdCYmKGMuZm9ybWF0PXAuZm9ybWF0KSxjfXZhciBJNXQ9ZygoKT0+e3VzKCk7X3IoKTtScCgpO09wKCk7TDV0KCk7RTV0KCk7UDV0KCk7aSh3M2UsInJlc29sdmVDb2xsZWN0aW9uIik7aShrM2UsImNvbXBvc2VDb2xsZWN0aW9uIil9KTtmdW5jdGlvbiBZdyhzLGUsdCl7bGV0IGE9ZS5vZmZzZXQscj1MQWEoZSxzLm9wdGlvbnMuc3RyaWN0LHQpO2lmKCFyKXJldHVybnt2YWx1ZToiIix0eXBlOm51bGwsY29tbWVudDoiIixyYW5nZTpbYSxhLGFdfTtsZXQgbj1yLm1vZGU9PT0iPiI/THQuQkxPQ0tfRk9MREVEOkx0LkJMT0NLX0xJVEVSQUwsbz1lLnNvdXJjZT9FQWEoZS5zb3VyY2UpOltdLGw9by5sZW5ndGg7Zm9yKGxldCBtPW8ubGVuZ3RoLTE7bT49MDstLW0pe2xldCBmPW9bbV1bMV07aWYoZj09PSIifHxmPT09IlxyIilsPW07ZWxzZSBicmVha31pZihsPT09MCl7bGV0IG09ci5jaG9tcD09PSIrIiYmby5sZW5ndGg+MD9gCmAucmVwZWF0KE1hdGgubWF4KDEsby5sZW5ndGgtMSkpOiIiLGY9YStyLmxlbmd0aDtyZXR1cm4gZS5zb3VyY2UmJihmKz1lLnNvdXJjZS5sZW5ndGgpLHt2YWx1ZTptLHR5cGU6bixjb21tZW50OnIuY29tbWVudCxyYW5nZTpbYSxmLGZdfX1sZXQgcD1lLmluZGVudCtyLmluZGVudCxkPWUub2Zmc2V0K3IubGVuZ3RoLHU9MDtmb3IobGV0IG09MDttPGw7KyttKXtsZXRbZix5XT1vW21dO2lmKHk9PT0iInx8eT09PSJcciIpci5pbmRlbnQ9PT0wJiZmLmxlbmd0aD5wJiYocD1mLmxlbmd0aCk7ZWxzZXtmLmxlbmd0aDxwJiZ0KGQrZi5sZW5ndGgsIk1JU1NJTkdfQ0hBUiIsIkJsb2NrIHNjYWxhcnMgd2l0aCBtb3JlLWluZGVudGVkIGxlYWRpbmcgZW1wdHkgbGluZXMgbXVzdCB1c2UgYW4gZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yIiksci5pbmRlbnQ9PT0wJiYocD1mLmxlbmd0aCksdT1tLHA9PT0wJiYhcy5hdFJvb3QmJnQoZCwiQkFEX0lOREVOVCIsIkJsb2NrIHNjYWxhciB2YWx1ZXMgaW4gY29sbGVjdGlvbnMgbXVzdCBiZSBpbmRlbnRlZCIpO2JyZWFrfWQrPWYubGVuZ3RoK3kubGVuZ3RoKzF9Zm9yKGxldCBtPW8ubGVuZ3RoLTE7bT49bDstLW0pb1ttXVswXS5sZW5ndGg+cCYmKGw9bSsxKTtsZXQgYz0iIixiPSIiLHY9ITE7Zm9yKGxldCBtPTA7bTx1OysrbSljKz1vW21dWzBdLnNsaWNlKHApK2AKYDtmb3IobGV0IG09dTttPGw7KyttKXtsZXRbZix5XT1vW21dO2QrPWYubGVuZ3RoK3kubGVuZ3RoKzE7bGV0IE09eVt5Lmxlbmd0aC0xXT09PSJcciI7aWYoTSYmKHk9eS5zbGljZSgwLC0xKSkseSYmZi5sZW5ndGg8cCl7bGV0IE49YEJsb2NrIHNjYWxhciBsaW5lcyBtdXN0IG5vdCBiZSBsZXNzIGluZGVudGVkIHRoYW4gdGhlaXIgJHtyLmluZGVudD8iZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yIjoiZmlyc3QgbGluZSJ9YDt0KGQteS5sZW5ndGgtKE0/MjoxKSwiQkFEX0lOREVOVCIsTiksZj0iIn1uPT09THQuQkxPQ0tfTElURVJBTD8oYys9YitmLnNsaWNlKHApK3ksYj1gCmApOmYubGVuZ3RoPnB8fHlbMF09PT0iCSI/KGI9PT0iICI/Yj1gCmA6IXYmJmI9PT1gCmAmJihiPWAKCmApLGMrPWIrZi5zbGljZShwKSt5LGI9YApgLHY9ITApOnk9PT0iIj9iPT09YApgP2MrPWAKYDpiPWAKYDooYys9Yit5LGI9IiAiLHY9ITEpfXN3aXRjaChyLmNob21wKXtjYXNlIi0iOmJyZWFrO2Nhc2UiKyI6Zm9yKGxldCBtPWw7bTxvLmxlbmd0aDsrK20pYys9YApgK29bbV1bMF0uc2xpY2UocCk7Y1tjLmxlbmd0aC0xXSE9PWAKYCYmKGMrPWAKYCk7YnJlYWs7ZGVmYXVsdDpjKz1gCmB9bGV0IHg9YStyLmxlbmd0aCtlLnNvdXJjZS5sZW5ndGg7cmV0dXJue3ZhbHVlOmMsdHlwZTpuLGNvbW1lbnQ6ci5jb21tZW50LHJhbmdlOlthLHgseF19fWZ1bmN0aW9uIExBYSh7b2Zmc2V0OnMscHJvcHM6ZX0sdCxhKXtpZihlWzBdLnR5cGUhPT0iYmxvY2stc2NhbGFyLWhlYWRlciIpcmV0dXJuIGEoZVswXSwiSU1QT1NTSUJMRSIsIkJsb2NrIHNjYWxhciBoZWFkZXIgbm90IGZvdW5kIiksbnVsbDtsZXR7c291cmNlOnJ9PWVbMF0sbj1yWzBdLG89MCxsPSIiLHA9LTE7Zm9yKGxldCBiPTE7YjxyLmxlbmd0aDsrK2Ipe2xldCB2PXJbYl07aWYoIWwmJih2PT09Ii0ifHx2PT09IisiKSlsPXY7ZWxzZXtsZXQgeD1OdW1iZXIodik7IW8mJng/bz14OnA9PT0tMSYmKHA9cytiKX19cCE9PS0xJiZhKHAsIlVORVhQRUNURURfVE9LRU4iLGBCbG9jayBzY2FsYXIgaGVhZGVyIGluY2x1ZGVzIGV4dHJhIGNoYXJhY3RlcnM6ICR7cn1gKTtsZXQgZD0hMSx1PSIiLGM9ci5sZW5ndGg7Zm9yKGxldCBiPTE7YjxlLmxlbmd0aDsrK2Ipe2xldCB2PWVbYl07c3dpdGNoKHYudHlwZSl7Y2FzZSJzcGFjZSI6ZD0hMDtjYXNlIm5ld2xpbmUiOmMrPXYuc291cmNlLmxlbmd0aDticmVhaztjYXNlImNvbW1lbnQiOnQmJiFkJiZhKHYsIk1JU1NJTkdfQ0hBUiIsIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMiKSxjKz12LnNvdXJjZS5sZW5ndGgsdT12LnNvdXJjZS5zdWJzdHJpbmcoMSk7YnJlYWs7Y2FzZSJlcnJvciI6YSh2LCJVTkVYUEVDVEVEX1RPS0VOIix2Lm1lc3NhZ2UpLGMrPXYuc291cmNlLmxlbmd0aDticmVhaztkZWZhdWx0OntsZXQgeD1gVW5leHBlY3RlZCB0b2tlbiBpbiBibG9jayBzY2FsYXIgaGVhZGVyOiAke3YudHlwZX1gO2EodiwiVU5FWFBFQ1RFRF9UT0tFTiIseCk7bGV0IG09di5zb3VyY2U7bSYmdHlwZW9mIG09PSJzdHJpbmciJiYoYys9bS5sZW5ndGgpfX19cmV0dXJue21vZGU6bixpbmRlbnQ6byxjaG9tcDpsLGNvbW1lbnQ6dSxsZW5ndGg6Y319ZnVuY3Rpb24gRUFhKHMpe2xldCBlPXMuc3BsaXQoL1xuKCAqKS8pLHQ9ZVswXSxhPXQubWF0Y2goL14oICopLyksbj1bYT8uWzFdP1thWzFdLHQuc2xpY2UoYVsxXS5sZW5ndGgpXTpbIiIsdF1dO2ZvcihsZXQgbz0xO288ZS5sZW5ndGg7bys9MiluLnB1c2goW2Vbb10sZVtvKzFdXSk7cmV0dXJuIG59dmFyIFMzZT1nKCgpPT57X3IoKTtpKFl3LCJyZXNvbHZlQmxvY2tTY2FsYXIiKTtpKExBYSwicGFyc2VCbG9ja1NjYWxhckhlYWRlciIpO2koRUFhLCJzcGxpdExpbmVzIil9KTtmdW5jdGlvbiBadyhzLGUsdCl7bGV0e29mZnNldDphLHR5cGU6cixzb3VyY2U6bixlbmQ6b309cyxsLHAsZD1pKChiLHYseCk9PnQoYStiLHYseCksIl9vbkVycm9yIik7c3dpdGNoKHIpe2Nhc2Uic2NhbGFyIjpsPUx0LlBMQUlOLHA9UEFhKG4sZCk7YnJlYWs7Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6bD1MdC5RVU9URV9TSU5HTEUscD1JQWEobixkKTticmVhaztjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpsPUx0LlFVT1RFX0RPVUJMRSxwPUFBYShuLGQpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHQocywiVU5FWFBFQ1RFRF9UT0tFTiIsYEV4cGVjdGVkIGEgZmxvdyBzY2FsYXIgdmFsdWUsIGJ1dCBmb3VuZDogJHtyfWApLHt2YWx1ZToiIix0eXBlOm51bGwsY29tbWVudDoiIixyYW5nZTpbYSxhK24ubGVuZ3RoLGErbi5sZW5ndGhdfX1sZXQgdT1hK24ubGVuZ3RoLGM9UDEobyx1LGUsdCk7cmV0dXJue3ZhbHVlOnAsdHlwZTpsLGNvbW1lbnQ6Yy5jb21tZW50LHJhbmdlOlthLHUsYy5vZmZzZXRdfX1mdW5jdGlvbiBQQWEocyxlKXtsZXQgdD0iIjtzd2l0Y2goc1swXSl7Y2FzZSIJIjp0PSJhIHRhYiBjaGFyYWN0ZXIiO2JyZWFrO2Nhc2UiLCI6dD0iZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVyICwiO2JyZWFrO2Nhc2UiJSI6dD0iZGlyZWN0aXZlIGluZGljYXRvciBjaGFyYWN0ZXIgJSI7YnJlYWs7Y2FzZSJ8IjpjYXNlIj4iOnt0PWBibG9jayBzY2FsYXIgaW5kaWNhdG9yICR7c1swXX1gO2JyZWFrfWNhc2UiQCI6Y2FzZSJgIjp7dD1gcmVzZXJ2ZWQgY2hhcmFjdGVyICR7c1swXX1gO2JyZWFrfX1yZXR1cm4gdCYmZSgwLCJCQURfU0NBTEFSX1NUQVJUIixgUGxhaW4gdmFsdWUgY2Fubm90IHN0YXJ0IHdpdGggJHt0fWApLEE1dChzKX1mdW5jdGlvbiBJQWEocyxlKXtyZXR1cm4oc1tzLmxlbmd0aC0xXSE9PSInInx8cy5sZW5ndGg9PT0xKSYmZShzLmxlbmd0aCwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBjbG9zaW5nICdxdW90ZSIpLEE1dChzLnNsaWNlKDEsLTEpKS5yZXBsYWNlKC8nJy9nLCInIil9ZnVuY3Rpb24gQTV0KHMpe2xldCBlLHQ7dHJ5e2U9bmV3IFJlZ0V4cChgKC4qPykoPzwhWyAJXSlbIAldKlxyPwpgLCJzeSIpLHQ9bmV3IFJlZ0V4cChgWyAJXSooLio/KSg/Oig/PCFbIAldKVsgCV0qKT9ccj8KYCwic3kiKX1jYXRjaHtlPS8oLio/KVsgXHRdKlxyP1xuL3N5LHQ9L1sgXHRdKiguKj8pWyBcdF0qXHI/XG4vc3l9bGV0IGE9ZS5leGVjKHMpO2lmKCFhKXJldHVybiBzO2xldCByPWFbMV0sbj0iICIsbz1lLmxhc3RJbmRleDtmb3IodC5sYXN0SW5kZXg9bzthPXQuZXhlYyhzKTspYVsxXT09PSIiP249PT1gCmA/cis9bjpuPWAKYDoocis9bithWzFdLG49IiAiKSxvPXQubGFzdEluZGV4O2xldCBsPS9bIFx0XSooLiopL3N5O3JldHVybiBsLmxhc3RJbmRleD1vLGE9bC5leGVjKHMpLHIrbisoYT8uWzFdPz8iIil9ZnVuY3Rpb24gQUFhKHMsZSl7bGV0IHQ9IiI7Zm9yKGxldCBhPTE7YTxzLmxlbmd0aC0xOysrYSl7bGV0IHI9c1thXTtpZighKHI9PT0iXHIiJiZzW2ErMV09PT1gCmApKWlmKHI9PT1gCmApe2xldHtmb2xkOm4sb2Zmc2V0Om99PU5BYShzLGEpO3QrPW4sYT1vfWVsc2UgaWYocj09PSJcXCIpe2xldCBuPXNbKythXSxvPVJBYVtuXTtpZihvKXQrPW87ZWxzZSBpZihuPT09YApgKWZvcihuPXNbYSsxXTtuPT09IiAifHxuPT09IgkiOyluPXNbKythKzFdO2Vsc2UgaWYobj09PSJcciImJnNbYSsxXT09PWAKYClmb3Iobj1zWysrYSsxXTtuPT09IiAifHxuPT09IgkiOyluPXNbKythKzFdO2Vsc2UgaWYobj09PSJ4Inx8bj09PSJ1Inx8bj09PSJVIil7bGV0IGw9bj09PSJ4Ij8yOm49PT0idSI/NDo4O3QrPU9BYShzLGErMSxsLGUpLGErPWx9ZWxzZXtsZXQgbD1zLnN1YnN0cihhLTEsMik7ZShhLTEsIkJBRF9EUV9FU0NBUEUiLGBJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAke2x9YCksdCs9bH19ZWxzZSBpZihyPT09IiAifHxyPT09IgkiKXtsZXQgbj1hLG89c1thKzFdO2Zvcig7bz09PSIgInx8bz09PSIJIjspbz1zWysrYSsxXTtvIT09YApgJiYhKG89PT0iXHIiJiZzW2ErMl09PT1gCmApJiYodCs9YT5uP3Muc2xpY2UobixhKzEpOnIpfWVsc2UgdCs9cn1yZXR1cm4oc1tzLmxlbmd0aC0xXSE9PSciJ3x8cy5sZW5ndGg9PT0xKSYmZShzLmxlbmd0aCwiTUlTU0lOR19DSEFSIiwnTWlzc2luZyBjbG9zaW5nICJxdW90ZScpLHR9ZnVuY3Rpb24gTkFhKHMsZSl7bGV0IHQ9IiIsYT1zW2UrMV07Zm9yKDsoYT09PSIgInx8YT09PSIJInx8YT09PWAKYHx8YT09PSJcciIpJiYhKGE9PT0iXHIiJiZzW2UrMl0hPT1gCmApOylhPT09YApgJiYodCs9YApgKSxlKz0xLGE9c1tlKzFdO3JldHVybiB0fHwodD0iICIpLHtmb2xkOnQsb2Zmc2V0OmV9fWZ1bmN0aW9uIE9BYShzLGUsdCxhKXtsZXQgcj1zLnN1YnN0cihlLHQpLG89ci5sZW5ndGg9PT10JiYvXlswLTlhLWZBLUZdKyQvLnRlc3Qocik/cGFyc2VJbnQociwxNik6TmFOO3RyeXtyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQobyl9Y2F0Y2h7bGV0IGw9cy5zdWJzdHIoZS0yLHQrMik7cmV0dXJuIGEoZS0yLCJCQURfRFFfRVNDQVBFIixgSW52YWxpZCBlc2NhcGUgc2VxdWVuY2UgJHtsfWApLGx9fXZhciBSQWEsXzNlPWcoKCk9PntfcigpO0g5KCk7aShadywicmVzb2x2ZUZsb3dTY2FsYXIiKTtpKFBBYSwicGxhaW5WYWx1ZSIpO2koSUFhLCJzaW5nbGVRdW90ZWRWYWx1ZSIpO2koQTV0LCJmb2xkTGluZXMiKTtpKEFBYSwiZG91YmxlUXVvdGVkVmFsdWUiKTtpKE5BYSwiZm9sZE5ld2xpbmUiKTtSQWE9ezA6IlwwIixhOiJceDA3IixiOiJcYiIsZToiXHgxQiIsZjoiXGYiLG46YApgLHI6IlxyIix0OiIJIix2OiJcdiIsTjoiXHg4NSIsXzoiXHhBMCIsTDoiXHUyMDI4IixQOiJcdTIwMjkiLCIgIjoiICIsJyInOiciJywiLyI6Ii8iLCJcXCI6IlxcIiwiCSI6IgkifTtpKE9BYSwicGFyc2VDaGFyQ29kZSIpfSk7ZnVuY3Rpb24gQnNlKHMsZSx0LGEpe2xldHt2YWx1ZTpyLHR5cGU6bixjb21tZW50Om8scmFuZ2U6bH09ZS50eXBlPT09ImJsb2NrLXNjYWxhciI/WXcocyxlLGEpOlp3KGUscy5vcHRpb25zLnN0cmljdCxhKSxwPXQ/cy5kaXJlY3RpdmVzLnRhZ05hbWUodC5zb3VyY2UsYz0+YSh0LCJUQUdfUkVTT0xWRV9GQUlMRUQiLGMpKTpudWxsLGQ7cy5vcHRpb25zLnN0cmluZ0tleXMmJnMuYXRLZXk/ZD1zLnNjaGVtYVtibF06cD9kPUZBYShzLnNjaGVtYSxyLHAsdCxhKTplLnR5cGU9PT0ic2NhbGFyIj9kPUJBYShzLHIsZSxhKTpkPXMuc2NoZW1hW2JsXTtsZXQgdTt0cnl7bGV0IGM9ZC5yZXNvbHZlKHIsYj0+YSh0Pz9lLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGIpLHMub3B0aW9ucyk7dT1sYShjKT9jOm5ldyBMdChjKX1jYXRjaChjKXtsZXQgYj1jIGluc3RhbmNlb2YgRXJyb3I/Yy5tZXNzYWdlOlN0cmluZyhjKTthKHQ/P2UsIlRBR19SRVNPTFZFX0ZBSUxFRCIsYiksdT1uZXcgTHQocil9cmV0dXJuIHUucmFuZ2U9bCx1LnNvdXJjZT1yLG4mJih1LnR5cGU9bikscCYmKHUudGFnPXApLGQuZm9ybWF0JiYodS5mb3JtYXQ9ZC5mb3JtYXQpLG8mJih1LmNvbW1lbnQ9byksdX1mdW5jdGlvbiBGQWEocyxlLHQsYSxyKXtpZih0PT09IiEiKXJldHVybiBzW2JsXTtsZXQgbj1bXTtmb3IobGV0IGwgb2Ygcy50YWdzKWlmKCFsLmNvbGxlY3Rpb24mJmwudGFnPT09dClpZihsLmRlZmF1bHQmJmwudGVzdCluLnB1c2gobCk7ZWxzZSByZXR1cm4gbDtmb3IobGV0IGwgb2YgbilpZihsLnRlc3Q/LnRlc3QoZSkpcmV0dXJuIGw7bGV0IG89cy5rbm93blRhZ3NbdF07cmV0dXJuIG8mJiFvLmNvbGxlY3Rpb24/KHMudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30sbyx7ZGVmYXVsdDohMSx0ZXN0OnZvaWQgMH0pKSxvKToocihhLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGBVbnJlc29sdmVkIHRhZzogJHt0fWAsdCE9PSJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiKSxzW2JsXSl9ZnVuY3Rpb24gQkFhKHthdEtleTpzLGRpcmVjdGl2ZXM6ZSxzY2hlbWE6dH0sYSxyLG4pe2xldCBvPXQudGFncy5maW5kKGw9PihsLmRlZmF1bHQ9PT0hMHx8cyYmbC5kZWZhdWx0PT09ImtleSIpJiZsLnRlc3Q/LnRlc3QoYSkpfHx0W2JsXTtpZih0LmNvbXBhdCl7bGV0IGw9dC5jb21wYXQuZmluZChwPT5wLmRlZmF1bHQmJnAudGVzdD8udGVzdChhKSk/P3RbYmxdO2lmKG8udGFnIT09bC50YWcpe2xldCBwPWUudGFnU3RyaW5nKG8udGFnKSxkPWUudGFnU3RyaW5nKGwudGFnKSx1PWBWYWx1ZSBtYXkgYmUgcGFyc2VkIGFzIGVpdGhlciAke3B9IG9yICR7ZH1gO24ociwiVEFHX1JFU09MVkVfRkFJTEVEIix1LCEwKX19cmV0dXJuIG99dmFyIE41dD1nKCgpPT57dXMoKTtfcigpO1MzZSgpO18zZSgpO2koQnNlLCJjb21wb3NlU2NhbGFyIik7aShGQWEsImZpbmRTY2FsYXJUYWdCeU5hbWUiKTtpKEJBYSwiZmluZFNjYWxhclRhZ0J5VGVzdCIpfSk7ZnVuY3Rpb24gTTNlKHMsZSx0KXtpZihlKXt0Pz8odD1lLmxlbmd0aCk7Zm9yKGxldCBhPXQtMTthPj0wOy0tYSl7bGV0IHI9ZVthXTtzd2l0Y2goci50eXBlKXtjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6cy09ci5zb3VyY2UubGVuZ3RoO2NvbnRpbnVlfWZvcihyPWVbKythXTtyPy50eXBlPT09InNwYWNlIjspcys9ci5zb3VyY2UubGVuZ3RoLHI9ZVsrK2FdO2JyZWFrfX1yZXR1cm4gc312YXIgUjV0PWcoKCk9PntpKE0zZSwiZW1wdHlTY2FsYXJQb3NpdGlvbiIpfSk7ZnVuY3Rpb24gSHNlKHMsZSx0LGEpe2xldCByPXMuYXRLZXkse3NwYWNlQmVmb3JlOm4sY29tbWVudDpvLGFuY2hvcjpsLHRhZzpwfT10LGQsdT0hMDtzd2l0Y2goZS50eXBlKXtjYXNlImFsaWFzIjpkPXFBYShzLGUsYSksKGx8fHApJiZhKGUsIkFMSUFTX1BST1BTIiwiQW4gYWxpYXMgbm9kZSBtdXN0IG5vdCBzcGVjaWZ5IGFueSBwcm9wZXJ0aWVzIik7YnJlYWs7Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2UiYmxvY2stc2NhbGFyIjpkPUJzZShzLGUscCxhKSxsJiYoZC5hbmNob3I9bC5zb3VyY2Uuc3Vic3RyaW5nKDEpKTticmVhaztjYXNlImJsb2NrLW1hcCI6Y2FzZSJibG9jay1zZXEiOmNhc2UiZmxvdy1jb2xsZWN0aW9uIjp0cnl7ZD1rM2UoSEFhLHMsZSx0LGEpLGwmJihkLmFuY2hvcj1sLnNvdXJjZS5zdWJzdHJpbmcoMSkpfWNhdGNoKGMpe2xldCBiPWMgaW5zdGFuY2VvZiBFcnJvcj9jLm1lc3NhZ2U6U3RyaW5nKGMpO2EoZSwiUkVTT1VSQ0VfRVhIQVVTVElPTiIsYil9YnJlYWs7ZGVmYXVsdDp7bGV0IGM9ZS50eXBlPT09ImVycm9yIj9lLm1lc3NhZ2U6YFVuc3VwcG9ydGVkIHRva2VuICh0eXBlOiAke2UudHlwZX0pYDthKGUsIlVORVhQRUNURURfVE9LRU4iLGMpLHU9ITF9fXJldHVybiBkPz8oZD1YdyhzLGUub2Zmc2V0LHZvaWQgMCxudWxsLHQsYSkpLGwmJmQuYW5jaG9yPT09IiImJmEobCwiQkFEX0FMSUFTIiwiQW5jaG9yIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmciKSxyJiZzLm9wdGlvbnMuc3RyaW5nS2V5cyYmKCFsYShkKXx8dHlwZW9mIGQudmFsdWUhPSJzdHJpbmcifHxkLnRhZyYmZC50YWchPT0idGFnOnlhbWwub3JnLDIwMDI6c3RyIikmJmEocD8/ZSwiTk9OX1NUUklOR19LRVkiLCJXaXRoIHN0cmluZ0tleXMsIGFsbCBrZXlzIG11c3QgYmUgc3RyaW5ncyIpLG4mJihkLnNwYWNlQmVmb3JlPSEwKSxvJiYoZS50eXBlPT09InNjYWxhciImJmUuc291cmNlPT09IiI/ZC5jb21tZW50PW86ZC5jb21tZW50QmVmb3JlPW8pLHMub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiZ1JiYoZC5zcmNUb2tlbj1lKSxkfWZ1bmN0aW9uIFh3KHMsZSx0LGEse3NwYWNlQmVmb3JlOnIsY29tbWVudDpuLGFuY2hvcjpvLHRhZzpsLGVuZDpwfSxkKXtsZXQgdT17dHlwZToic2NhbGFyIixvZmZzZXQ6TTNlKGUsdCxhKSxpbmRlbnQ6LTEsc291cmNlOiIifSxjPUJzZShzLHUsbCxkKTtyZXR1cm4gbyYmKGMuYW5jaG9yPW8uc291cmNlLnN1YnN0cmluZygxKSxjLmFuY2hvcj09PSIiJiZkKG8sIkJBRF9BTElBUyIsIkFuY2hvciBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nIikpLHImJihjLnNwYWNlQmVmb3JlPSEwKSxuJiYoYy5jb21tZW50PW4sYy5yYW5nZVsyXT1wKSxjfWZ1bmN0aW9uIHFBYSh7b3B0aW9uczpzfSx7b2Zmc2V0OmUsc291cmNlOnQsZW5kOmF9LHIpe2xldCBuPW5ldyBDYyh0LnN1YnN0cmluZygxKSk7bi5zb3VyY2U9PT0iIiYmcihlLCJCQURfQUxJQVMiLCJBbGlhcyBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nIiksbi5zb3VyY2UuZW5kc1dpdGgoIjoiKSYmcihlK3QubGVuZ3RoLTEsIkJBRF9BTElBUyIsIkFsaWFzIGVuZGluZyBpbiA6IGlzIGFtYmlndW91cyIsITApO2xldCBvPWUrdC5sZW5ndGgsbD1QMShhLG8scy5zdHJpY3Qscik7cmV0dXJuIG4ucmFuZ2U9W2UsbyxsLm9mZnNldF0sbC5jb21tZW50JiYobi5jb21tZW50PWwuY29tbWVudCksbn12YXIgSEFhLE81dD1nKCgpPT57a3coKTt1cygpO0k1dCgpO041dCgpO0g5KCk7UjV0KCk7SEFhPXtjb21wb3NlTm9kZTpIc2UsY29tcG9zZUVtcHR5Tm9kZTpYd307aShIc2UsImNvbXBvc2VOb2RlIik7aShYdywiY29tcG9zZUVtcHR5Tm9kZSIpO2kocUFhLCJjb21wb3NlQWxpYXMiKX0pO2Z1bmN0aW9uIHozZShzLGUse29mZnNldDp0LHN0YXJ0OmEsdmFsdWU6cixlbmQ6bn0sbyl7bGV0IGw9T2JqZWN0LmFzc2lnbih7X2RpcmVjdGl2ZXM6ZX0scykscD1uZXcgTGModm9pZCAwLGwpLGQ9e2F0S2V5OiExLGF0Um9vdDohMCxkaXJlY3RpdmVzOnAuZGlyZWN0aXZlcyxvcHRpb25zOnAub3B0aW9ucyxzY2hlbWE6cC5zY2hlbWF9LHU9RTEoYSx7aW5kaWNhdG9yOiJkb2Mtc3RhcnQiLG5leHQ6cj8/bj8uWzBdLG9mZnNldDp0LG9uRXJyb3I6byxwYXJlbnRJbmRlbnQ6MCxzdGFydE9uTmV3bGluZTohMH0pO3UuZm91bmQmJihwLmRpcmVjdGl2ZXMuZG9jU3RhcnQ9ITAsciYmKHIudHlwZT09PSJibG9jay1tYXAifHxyLnR5cGU9PT0iYmxvY2stc2VxIikmJiF1Lmhhc05ld2xpbmUmJm8odS5lbmQsIk1JU1NJTkdfQ0hBUiIsIkJsb2NrIGNvbGxlY3Rpb24gY2Fubm90IHN0YXJ0IG9uIHNhbWUgbGluZSB3aXRoIGRpcmVjdGl2ZXMtZW5kIG1hcmtlciIpKSxwLmNvbnRlbnRzPXI/SHNlKGQscix1LG8pOlh3KGQsdS5lbmQsYSxudWxsLHUsbyk7bGV0IGM9cC5jb250ZW50cy5yYW5nZVsyXSxiPVAxKG4sYywhMSxvKTtyZXR1cm4gYi5jb21tZW50JiYocC5jb21tZW50PWIuY29tbWVudCkscC5yYW5nZT1bdCxjLGIub2Zmc2V0XSxwfXZhciBGNXQ9ZygoKT0+e1V3KCk7TzV0KCk7SDkoKTtHdygpO2koejNlLCJjb21wb3NlRG9jIil9KTtmdW5jdGlvbiBRdyhzKXtpZih0eXBlb2Ygcz09Im51bWJlciIpcmV0dXJuW3MscysxXTtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBzLmxlbmd0aD09PTI/czpbc1swXSxzWzFdXTtsZXR7b2Zmc2V0OmUsc291cmNlOnR9PXM7cmV0dXJuW2UsZSsodHlwZW9mIHQ9PSJzdHJpbmciP3QubGVuZ3RoOjEpXX1mdW5jdGlvbiBCNXQocyl7bGV0IGU9IiIsdD0hMSxhPSExO2ZvcihsZXQgcj0wO3I8cy5sZW5ndGg7KytyKXtsZXQgbj1zW3JdO3N3aXRjaChuWzBdKXtjYXNlIiMiOmUrPShlPT09IiI/IiI6YT9gCgpgOmAKYCkrKG4uc3Vic3RyaW5nKDEpfHwiICIpLHQ9ITAsYT0hMTticmVhaztjYXNlIiUiOnNbcisxXT8uWzBdIT09IiMiJiYocis9MSksdD0hMTticmVhaztkZWZhdWx0OnR8fChhPSEwKSx0PSExfX1yZXR1cm57Y29tbWVudDplLGFmdGVyRW1wdHlMaW5lOmF9fXZhciBDMCxDM2U9ZygoKT0+e0k0ZSgpO1V3KCk7V3coKTt1cygpO0Y1dCgpO0g5KCk7aShRdywiZ2V0RXJyb3JQb3MiKTtpKEI1dCwicGFyc2VQcmVsdWRlIik7QzA9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29tcG9zZXIiKX1jb25zdHJ1Y3RvcihlPXt9KXt0aGlzLmRvYz1udWxsLHRoaXMuYXREaXJlY3RpdmVzPSExLHRoaXMucHJlbHVkZT1bXSx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdLHRoaXMub25FcnJvcj0odCxhLHIsbik9PntsZXQgbz1Rdyh0KTtuP3RoaXMud2FybmluZ3MucHVzaChuZXcgcXAobyxhLHIpKTp0aGlzLmVycm9ycy5wdXNoKG5ldyBrbihvLGEscikpfSx0aGlzLmRpcmVjdGl2ZXM9bmV3IEQxKHt2ZXJzaW9uOmUudmVyc2lvbnx8IjEuMiJ9KSx0aGlzLm9wdGlvbnM9ZX1kZWNvcmF0ZShlLHQpe2xldHtjb21tZW50OmEsYWZ0ZXJFbXB0eUxpbmU6cn09QjV0KHRoaXMucHJlbHVkZSk7aWYoYSl7bGV0IG49ZS5jb250ZW50cztpZih0KWUuY29tbWVudD1lLmNvbW1lbnQ/YCR7ZS5jb21tZW50fQoke2F9YDphO2Vsc2UgaWYocnx8ZS5kaXJlY3RpdmVzLmRvY1N0YXJ0fHwhbillLmNvbW1lbnRCZWZvcmU9YTtlbHNlIGlmKGRzKG4pJiYhbi5mbG93JiZuLml0ZW1zLmxlbmd0aD4wKXtsZXQgbz1uLml0ZW1zWzBdO0NhKG8pJiYobz1vLmtleSk7bGV0IGw9by5jb21tZW50QmVmb3JlO28uY29tbWVudEJlZm9yZT1sP2Ake2F9CiR7bH1gOmF9ZWxzZXtsZXQgbz1uLmNvbW1lbnRCZWZvcmU7bi5jb21tZW50QmVmb3JlPW8/YCR7YX0KJHtvfWA6YX19dD8oQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS5lcnJvcnMsdGhpcy5lcnJvcnMpLEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGUud2FybmluZ3MsdGhpcy53YXJuaW5ncykpOihlLmVycm9ycz10aGlzLmVycm9ycyxlLndhcm5pbmdzPXRoaXMud2FybmluZ3MpLHRoaXMucHJlbHVkZT1bXSx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdfXN0cmVhbUluZm8oKXtyZXR1cm57Y29tbWVudDpCNXQodGhpcy5wcmVsdWRlKS5jb21tZW50LGRpcmVjdGl2ZXM6dGhpcy5kaXJlY3RpdmVzLGVycm9yczp0aGlzLmVycm9ycyx3YXJuaW5nczp0aGlzLndhcm5pbmdzfX0qY29tcG9zZShlLHQ9ITEsYT0tMSl7Zm9yKGxldCByIG9mIGUpeWllbGQqdGhpcy5uZXh0KHIpO3lpZWxkKnRoaXMuZW5kKHQsYSl9Km5leHQoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJkaXJlY3RpdmUiOnRoaXMuZGlyZWN0aXZlcy5hZGQoZS5zb3VyY2UsKHQsYSxyKT0+e2xldCBuPVF3KGUpO25bMF0rPXQsdGhpcy5vbkVycm9yKG4sIkJBRF9ESVJFQ1RJVkUiLGEscil9KSx0aGlzLnByZWx1ZGUucHVzaChlLnNvdXJjZSksdGhpcy5hdERpcmVjdGl2ZXM9ITA7YnJlYWs7Y2FzZSJkb2N1bWVudCI6e2xldCB0PXozZSh0aGlzLm9wdGlvbnMsdGhpcy5kaXJlY3RpdmVzLGUsdGhpcy5vbkVycm9yKTt0aGlzLmF0RGlyZWN0aXZlcyYmIXQuZGlyZWN0aXZlcy5kb2NTdGFydCYmdGhpcy5vbkVycm9yKGUsIk1JU1NJTkdfQ0hBUiIsIk1pc3NpbmcgZGlyZWN0aXZlcy1lbmQvZG9jLXN0YXJ0IGluZGljYXRvciBsaW5lIiksdGhpcy5kZWNvcmF0ZSh0LCExKSx0aGlzLmRvYyYmKHlpZWxkIHRoaXMuZG9jKSx0aGlzLmRvYz10LHRoaXMuYXREaXJlY3RpdmVzPSExO2JyZWFrfWNhc2UiYnl0ZS1vcmRlci1tYXJrIjpjYXNlInNwYWNlIjpicmVhaztjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6dGhpcy5wcmVsdWRlLnB1c2goZS5zb3VyY2UpO2JyZWFrO2Nhc2UiZXJyb3IiOntsZXQgdD1lLnNvdXJjZT9gJHtlLm1lc3NhZ2V9OiAke0pTT04uc3RyaW5naWZ5KGUuc291cmNlKX1gOmUubWVzc2FnZSxhPW5ldyBrbihRdyhlKSwiVU5FWFBFQ1RFRF9UT0tFTiIsdCk7dGhpcy5hdERpcmVjdGl2ZXN8fCF0aGlzLmRvYz90aGlzLmVycm9ycy5wdXNoKGEpOnRoaXMuZG9jLmVycm9ycy5wdXNoKGEpO2JyZWFrfWNhc2UiZG9jLWVuZCI6e2lmKCF0aGlzLmRvYyl7bGV0IGE9IlVuZXhwZWN0ZWQgZG9jLWVuZCB3aXRob3V0IHByZWNlZGluZyBkb2N1bWVudCI7dGhpcy5lcnJvcnMucHVzaChuZXcga24oUXcoZSksIlVORVhQRUNURURfVE9LRU4iLGEpKTticmVha310aGlzLmRvYy5kaXJlY3RpdmVzLmRvY0VuZD0hMDtsZXQgdD1QMShlLmVuZCxlLm9mZnNldCtlLnNvdXJjZS5sZW5ndGgsdGhpcy5kb2Mub3B0aW9ucy5zdHJpY3QsdGhpcy5vbkVycm9yKTtpZih0aGlzLmRlY29yYXRlKHRoaXMuZG9jLCEwKSx0LmNvbW1lbnQpe2xldCBhPXRoaXMuZG9jLmNvbW1lbnQ7dGhpcy5kb2MuY29tbWVudD1hP2Ake2F9CiR7dC5jb21tZW50fWA6dC5jb21tZW50fXRoaXMuZG9jLnJhbmdlWzJdPXQub2Zmc2V0O2JyZWFrfWRlZmF1bHQ6dGhpcy5lcnJvcnMucHVzaChuZXcga24oUXcoZSksIlVORVhQRUNURURfVE9LRU4iLGBVbnN1cHBvcnRlZCB0b2tlbiAke2UudHlwZX1gKSl9fSplbmQoZT0hMSx0PS0xKXtpZih0aGlzLmRvYyl0aGlzLmRlY29yYXRlKHRoaXMuZG9jLCEwKSx5aWVsZCB0aGlzLmRvYyx0aGlzLmRvYz1udWxsO2Vsc2UgaWYoZSl7bGV0IGE9T2JqZWN0LmFzc2lnbih7X2RpcmVjdGl2ZXM6dGhpcy5kaXJlY3RpdmVzfSx0aGlzLm9wdGlvbnMpLHI9bmV3IExjKHZvaWQgMCxhKTt0aGlzLmF0RGlyZWN0aXZlcyYmdGhpcy5vbkVycm9yKHQsIk1JU1NJTkdfQ0hBUiIsIk1pc3NpbmcgZGlyZWN0aXZlcy1lbmQgaW5kaWNhdG9yIGxpbmUiKSxyLnJhbmdlPVswLHQsdF0sdGhpcy5kZWNvcmF0ZShyLCExKSx5aWVsZCByfX19fSk7ZnVuY3Rpb24gJDNlKHMsZT0hMCx0KXtpZihzKXtsZXQgYT1pKChyLG4sbyk9PntsZXQgbD10eXBlb2Ygcj09Im51bWJlciI/cjpBcnJheS5pc0FycmF5KHIpP3JbMF06ci5vZmZzZXQ7aWYodCl0KGwsbixvKTtlbHNlIHRocm93IG5ldyBrbihbbCxsKzFdLG4sbyl9LCJfb25FcnJvciIpO3N3aXRjaChzLnR5cGUpe2Nhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpyZXR1cm4gWncocyxlLGEpO2Nhc2UiYmxvY2stc2NhbGFyIjpyZXR1cm4gWXcoe29wdGlvbnM6e3N0cmljdDplfX0scyxhKX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gRDNlKHMsZSl7bGV0e2ltcGxpY2l0S2V5OnQ9ITEsaW5kZW50OmEsaW5GbG93OnI9ITEsb2Zmc2V0Om49LTEsdHlwZTpvPSJQTEFJTiJ9PWUsbD1mZCh7dHlwZTpvLHZhbHVlOnN9LHtpbXBsaWNpdEtleTp0LGluZGVudDphPjA/IiAiLnJlcGVhdChhKToiIixpbkZsb3c6cixvcHRpb25zOntibG9ja1F1b3RlOiEwLGxpbmVXaWR0aDotMX19KSxwPWUuZW5kPz9be3R5cGU6Im5ld2xpbmUiLG9mZnNldDotMSxpbmRlbnQ6YSxzb3VyY2U6YApgfV07c3dpdGNoKGxbMF0pe2Nhc2UifCI6Y2FzZSI+Ijp7bGV0IGQ9bC5pbmRleE9mKGAKYCksdT1sLnN1YnN0cmluZygwLGQpLGM9bC5zdWJzdHJpbmcoZCsxKStgCmAsYj1be3R5cGU6ImJsb2NrLXNjYWxhci1oZWFkZXIiLG9mZnNldDpuLGluZGVudDphLHNvdXJjZTp1fV07cmV0dXJuIEg1dChiLHApfHxiLnB1c2goe3R5cGU6Im5ld2xpbmUiLG9mZnNldDotMSxpbmRlbnQ6YSxzb3VyY2U6YApgfSkse3R5cGU6ImJsb2NrLXNjYWxhciIsb2Zmc2V0Om4saW5kZW50OmEscHJvcHM6Yixzb3VyY2U6Y319Y2FzZSciJzpyZXR1cm57dHlwZToiZG91YmxlLXF1b3RlZC1zY2FsYXIiLG9mZnNldDpuLGluZGVudDphLHNvdXJjZTpsLGVuZDpwfTtjYXNlIiciOnJldHVybnt0eXBlOiJzaW5nbGUtcXVvdGVkLXNjYWxhciIsb2Zmc2V0Om4saW5kZW50OmEsc291cmNlOmwsZW5kOnB9O2RlZmF1bHQ6cmV0dXJue3R5cGU6InNjYWxhciIsb2Zmc2V0Om4saW5kZW50OmEsc291cmNlOmwsZW5kOnB9fX1mdW5jdGlvbiBMM2UocyxlLHQ9e30pe2xldHthZnRlcktleTphPSExLGltcGxpY2l0S2V5OnI9ITEsaW5GbG93Om49ITEsdHlwZTpvfT10LGw9ImluZGVudCJpbiBzP3MuaW5kZW50Om51bGw7aWYoYSYmdHlwZW9mIGw9PSJudW1iZXIiJiYobCs9MiksIW8pc3dpdGNoKHMudHlwZSl7Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6bz0iUVVPVEVfU0lOR0xFIjticmVhaztjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpvPSJRVU9URV9ET1VCTEUiO2JyZWFrO2Nhc2UiYmxvY2stc2NhbGFyIjp7bGV0IGQ9cy5wcm9wc1swXTtpZihkLnR5cGUhPT0iYmxvY2stc2NhbGFyLWhlYWRlciIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJsb2NrIHNjYWxhciBoZWFkZXIiKTtvPWQuc291cmNlWzBdPT09Ij4iPyJCTE9DS19GT0xERUQiOiJCTE9DS19MSVRFUkFMIjticmVha31kZWZhdWx0Om89IlBMQUlOIn1sZXQgcD1mZCh7dHlwZTpvLHZhbHVlOmV9LHtpbXBsaWNpdEtleTpyfHxsPT09bnVsbCxpbmRlbnQ6bCE9PW51bGwmJmw+MD8iICIucmVwZWF0KGwpOiIiLGluRmxvdzpuLG9wdGlvbnM6e2Jsb2NrUXVvdGU6ITAsbGluZVdpZHRoOi0xfX0pO3N3aXRjaChwWzBdKXtjYXNlInwiOmNhc2UiPiI6akFhKHMscCk7YnJlYWs7Y2FzZSciJzpUM2UocyxwLCJkb3VibGUtcXVvdGVkLXNjYWxhciIpO2JyZWFrO2Nhc2UiJyI6VDNlKHMscCwic2luZ2xlLXF1b3RlZC1zY2FsYXIiKTticmVhaztkZWZhdWx0OlQzZShzLHAsInNjYWxhciIpfX1mdW5jdGlvbiBqQWEocyxlKXtsZXQgdD1lLmluZGV4T2YoYApgKSxhPWUuc3Vic3RyaW5nKDAsdCkscj1lLnN1YnN0cmluZyh0KzEpK2AKYDtpZihzLnR5cGU9PT0iYmxvY2stc2NhbGFyIil7bGV0IG49cy5wcm9wc1swXTtpZihuLnR5cGUhPT0iYmxvY2stc2NhbGFyLWhlYWRlciIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJsb2NrIHNjYWxhciBoZWFkZXIiKTtuLnNvdXJjZT1hLHMuc291cmNlPXJ9ZWxzZXtsZXR7b2Zmc2V0Om59PXMsbz0iaW5kZW50ImluIHM/cy5pbmRlbnQ6LTEsbD1be3R5cGU6ImJsb2NrLXNjYWxhci1oZWFkZXIiLG9mZnNldDpuLGluZGVudDpvLHNvdXJjZTphfV07SDV0KGwsImVuZCJpbiBzP3MuZW5kOnZvaWQgMCl8fGwucHVzaCh7dHlwZToibmV3bGluZSIsb2Zmc2V0Oi0xLGluZGVudDpvLHNvdXJjZTpgCmB9KTtmb3IobGV0IHAgb2YgT2JqZWN0LmtleXMocykpcCE9PSJ0eXBlIiYmcCE9PSJvZmZzZXQiJiZkZWxldGUgc1twXTtPYmplY3QuYXNzaWduKHMse3R5cGU6ImJsb2NrLXNjYWxhciIsaW5kZW50Om8scHJvcHM6bCxzb3VyY2U6cn0pfX1mdW5jdGlvbiBINXQocyxlKXtpZihlKWZvcihsZXQgdCBvZiBlKXN3aXRjaCh0LnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6cy5wdXNoKHQpO2JyZWFrO2Nhc2UibmV3bGluZSI6cmV0dXJuIHMucHVzaCh0KSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBUM2UocyxlLHQpe3N3aXRjaChzLnR5cGUpe2Nhc2Uic2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpzLnR5cGU9dCxzLnNvdXJjZT1lO2JyZWFrO2Nhc2UiYmxvY2stc2NhbGFyIjp7bGV0IGE9cy5wcm9wcy5zbGljZSgxKSxyPWUubGVuZ3RoO3MucHJvcHNbMF0udHlwZT09PSJibG9jay1zY2FsYXItaGVhZGVyIiYmKHItPXMucHJvcHNbMF0uc291cmNlLmxlbmd0aCk7Zm9yKGxldCBuIG9mIGEpbi5vZmZzZXQrPXI7ZGVsZXRlIHMucHJvcHMsT2JqZWN0LmFzc2lnbihzLHt0eXBlOnQsc291cmNlOmUsZW5kOmF9KTticmVha31jYXNlImJsb2NrLW1hcCI6Y2FzZSJibG9jay1zZXEiOntsZXQgcj17dHlwZToibmV3bGluZSIsb2Zmc2V0OnMub2Zmc2V0K2UubGVuZ3RoLGluZGVudDpzLmluZGVudCxzb3VyY2U6YApgfTtkZWxldGUgcy5pdGVtcyxPYmplY3QuYXNzaWduKHMse3R5cGU6dCxzb3VyY2U6ZSxlbmQ6W3JdfSk7YnJlYWt9ZGVmYXVsdDp7bGV0IGE9ImluZGVudCJpbiBzP3MuaW5kZW50Oi0xLHI9ImVuZCJpbiBzJiZBcnJheS5pc0FycmF5KHMuZW5kKT9zLmVuZC5maWx0ZXIobj0+bi50eXBlPT09InNwYWNlInx8bi50eXBlPT09ImNvbW1lbnQifHxuLnR5cGU9PT0ibmV3bGluZSIpOltdO2ZvcihsZXQgbiBvZiBPYmplY3Qua2V5cyhzKSluIT09InR5cGUiJiZuIT09Im9mZnNldCImJmRlbGV0ZSBzW25dO09iamVjdC5hc3NpZ24ocyx7dHlwZTp0LGluZGVudDphLHNvdXJjZTplLGVuZDpyfSl9fX12YXIgcTV0PWcoKCk9PntTM2UoKTtfM2UoKTtXdygpO1R3KCk7aSgkM2UsInJlc29sdmVBc1NjYWxhciIpO2koRDNlLCJjcmVhdGVTY2FsYXJUb2tlbiIpO2koTDNlLCJzZXRTY2FsYXJWYWx1ZSIpO2koakFhLCJzZXRCbG9ja1NjYWxhclZhbHVlIik7aShINXQsImFkZEVuZHRvQmxvY2tQcm9wcyIpO2koVDNlLCJzZXRGbG93U2NhbGFyVmFsdWUiKX0pO2Z1bmN0aW9uIHFzZShzKXtzd2l0Y2gocy50eXBlKXtjYXNlImJsb2NrLXNjYWxhciI6e2xldCBlPSIiO2ZvcihsZXQgdCBvZiBzLnByb3BzKWUrPXFzZSh0KTtyZXR1cm4gZStzLnNvdXJjZX1jYXNlImJsb2NrLW1hcCI6Y2FzZSJibG9jay1zZXEiOntsZXQgZT0iIjtmb3IobGV0IHQgb2Ygcy5pdGVtcyllKz1qc2UodCk7cmV0dXJuIGV9Y2FzZSJmbG93LWNvbGxlY3Rpb24iOntsZXQgZT1zLnN0YXJ0LnNvdXJjZTtmb3IobGV0IHQgb2Ygcy5pdGVtcyllKz1qc2UodCk7Zm9yKGxldCB0IG9mIHMuZW5kKWUrPXQuc291cmNlO3JldHVybiBlfWNhc2UiZG9jdW1lbnQiOntsZXQgZT1qc2Uocyk7aWYocy5lbmQpZm9yKGxldCB0IG9mIHMuZW5kKWUrPXQuc291cmNlO3JldHVybiBlfWRlZmF1bHQ6e2xldCBlPXMuc291cmNlO2lmKCJlbmQiaW4gcyYmcy5lbmQpZm9yKGxldCB0IG9mIHMuZW5kKWUrPXQuc291cmNlO3JldHVybiBlfX19ZnVuY3Rpb24ganNlKHtzdGFydDpzLGtleTplLHNlcDp0LHZhbHVlOmF9KXtsZXQgcj0iIjtmb3IobGV0IG4gb2YgcylyKz1uLnNvdXJjZTtpZihlJiYocis9cXNlKGUpKSx0KWZvcihsZXQgbiBvZiB0KXIrPW4uc291cmNlO3JldHVybiBhJiYocis9cXNlKGEpKSxyfXZhciBFM2UsajV0PWcoKCk9PntFM2U9aShzPT4idHlwZSJpbiBzP3FzZShzKTpqc2UocyksInN0cmluZ2lmeSIpO2kocXNlLCJzdHJpbmdpZnlUb2tlbiIpO2koanNlLCJzdHJpbmdpZnlJdGVtIil9KTtmdW5jdGlvbiBUMChzLGUpeyJ0eXBlImluIHMmJnMudHlwZT09PSJkb2N1bWVudCImJihzPXtzdGFydDpzLnN0YXJ0LHZhbHVlOnMudmFsdWV9KSxVNXQoT2JqZWN0LmZyZWV6ZShbXSkscyxlKX1mdW5jdGlvbiBVNXQocyxlLHQpe2xldCBhPXQoZSxzKTtpZih0eXBlb2YgYT09InN5bWJvbCIpcmV0dXJuIGE7Zm9yKGxldCByIG9mWyJrZXkiLCJ2YWx1ZSJdKXtsZXQgbj1lW3JdO2lmKG4mJiJpdGVtcyJpbiBuKXtmb3IobGV0IG89MDtvPG4uaXRlbXMubGVuZ3RoOysrbyl7bGV0IGw9VTV0KE9iamVjdC5mcmVlemUocy5jb25jYXQoW1tyLG9dXSkpLG4uaXRlbXNbb10sdCk7aWYodHlwZW9mIGw9PSJudW1iZXIiKW89bC0xO2Vsc2V7aWYobD09PVAzZSlyZXR1cm4gUDNlO2w9PT1WNXQmJihuLml0ZW1zLnNwbGljZShvLDEpLG8tPTEpfX10eXBlb2YgYT09ImZ1bmN0aW9uIiYmcj09PSJrZXkiJiYoYT1hKGUscykpfX1yZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiI/YShlLHMpOmF9dmFyIFAzZSxWQWEsVjV0LFc1dD1nKCgpPT57UDNlPVN5bWJvbCgiYnJlYWsgdmlzaXQiKSxWQWE9U3ltYm9sKCJza2lwIGNoaWxkcmVuIiksVjV0PVN5bWJvbCgicmVtb3ZlIGl0ZW0iKTtpKFQwLCJ2aXNpdCIpLFQwLkJSRUFLPVAzZSxUMC5TS0lQPVZBYSxUMC5SRU1PVkU9VjV0LFQwLml0ZW1BdFBhdGg9KHMsZSk9PntsZXQgdD1zO2ZvcihsZXRbYSxyXW9mIGUpe2xldCBuPXQ/LlthXTtpZihuJiYiaXRlbXMiaW4gbil0PW4uaXRlbXNbcl07ZWxzZSByZXR1cm59cmV0dXJuIHR9LFQwLnBhcmVudENvbGxlY3Rpb249KHMsZSk9PntsZXQgdD1UMC5pdGVtQXRQYXRoKHMsZS5zbGljZSgwLC0xKSksYT1lW2UubGVuZ3RoLTFdWzBdLHI9dD8uW2FdO2lmKHImJiJpdGVtcyJpbiByKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigiUGFyZW50IGNvbGxlY3Rpb24gbm90IGZvdW5kIil9O2koVTV0LCJfdmlzaXQiKX0pO3ZhciBKdz17fTt5dChKdyx7Qk9NOigpPT5xOSxET0NVTUVOVDooKT0+ajksRkxPV19FTkQ6KCk9PlY5LFNDQUxBUjooKT0+dzMsY3JlYXRlU2NhbGFyVG9rZW46KCk9PkQzZSxpc0NvbGxlY3Rpb246KCk9Pkc1dCxpc1NjYWxhcjooKT0+SzV0LHByZXR0eVRva2VuOigpPT5ZNXQscmVzb2x2ZUFzU2NhbGFyOigpPT4kM2Usc2V0U2NhbGFyVmFsdWU6KCk9PkwzZSxzdHJpbmdpZnk6KCk9PkUzZSx0b2tlblR5cGU6KCk9PlZzZSx2aXNpdDooKT0+VDB9KTtmdW5jdGlvbiBZNXQocyl7c3dpdGNoKHMpe2Nhc2UgcTk6cmV0dXJuIjxCT00+IjtjYXNlIGo5OnJldHVybiI8RE9DPiI7Y2FzZSBWOTpyZXR1cm4iPEZMT1dfRU5EPiI7Y2FzZSB3MzpyZXR1cm4iPFNDQUxBUj4iO2RlZmF1bHQ6cmV0dXJuIEpTT04uc3RyaW5naWZ5KHMpfX1mdW5jdGlvbiBWc2Uocyl7c3dpdGNoKHMpe2Nhc2UgcTk6cmV0dXJuImJ5dGUtb3JkZXItbWFyayI7Y2FzZSBqOTpyZXR1cm4iZG9jLW1vZGUiO2Nhc2UgVjk6cmV0dXJuImZsb3ctZXJyb3ItZW5kIjtjYXNlIHczOnJldHVybiJzY2FsYXIiO2Nhc2UiLS0tIjpyZXR1cm4iZG9jLXN0YXJ0IjtjYXNlIi4uLiI6cmV0dXJuImRvYy1lbmQiO2Nhc2UiIjpjYXNlYApgOmNhc2VgXHIKYDpyZXR1cm4ibmV3bGluZSI7Y2FzZSItIjpyZXR1cm4ic2VxLWl0ZW0taW5kIjtjYXNlIj8iOnJldHVybiJleHBsaWNpdC1rZXktaW5kIjtjYXNlIjoiOnJldHVybiJtYXAtdmFsdWUtaW5kIjtjYXNlInsiOnJldHVybiJmbG93LW1hcC1zdGFydCI7Y2FzZSJ9IjpyZXR1cm4iZmxvdy1tYXAtZW5kIjtjYXNlIlsiOnJldHVybiJmbG93LXNlcS1zdGFydCI7Y2FzZSJdIjpyZXR1cm4iZmxvdy1zZXEtZW5kIjtjYXNlIiwiOnJldHVybiJjb21tYSJ9c3dpdGNoKHNbMF0pe2Nhc2UiICI6Y2FzZSIJIjpyZXR1cm4ic3BhY2UiO2Nhc2UiIyI6cmV0dXJuImNvbW1lbnQiO2Nhc2UiJSI6cmV0dXJuImRpcmVjdGl2ZS1saW5lIjtjYXNlIioiOnJldHVybiJhbGlhcyI7Y2FzZSImIjpyZXR1cm4iYW5jaG9yIjtjYXNlIiEiOnJldHVybiJ0YWciO2Nhc2UiJyI6cmV0dXJuInNpbmdsZS1xdW90ZWQtc2NhbGFyIjtjYXNlJyInOnJldHVybiJkb3VibGUtcXVvdGVkLXNjYWxhciI7Y2FzZSJ8IjpjYXNlIj4iOnJldHVybiJibG9jay1zY2FsYXItaGVhZGVyIn1yZXR1cm4gbnVsbH12YXIgcTksajksVjksdzMsRzV0LEs1dCxVc2U9ZygoKT0+e3E1dCgpO2o1dCgpO1c1dCgpO3E5PSJcdUZFRkYiLGo5PSICIixWOT0iGCIsdzM9Ih8iLEc1dD1pKHM9PiEhcyYmIml0ZW1zImluIHMsImlzQ29sbGVjdGlvbiIpLEs1dD1pKHM9PiEhcyYmKHMudHlwZT09PSJzY2FsYXIifHxzLnR5cGU9PT0ic2luZ2xlLXF1b3RlZC1zY2FsYXIifHxzLnR5cGU9PT0iZG91YmxlLXF1b3RlZC1zY2FsYXIifHxzLnR5cGU9PT0iYmxvY2stc2NhbGFyIiksImlzU2NhbGFyIik7aShZNXQsInByZXR0eVRva2VuIik7aShWc2UsInRva2VuVHlwZSIpfSk7ZnVuY3Rpb24gSTEocyl7c3dpdGNoKHMpe2Nhc2Ugdm9pZCAwOmNhc2UiICI6Y2FzZWAKYDpjYXNlIlxyIjpjYXNlIgkiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fXZhciBaNXQsVUFhLFdzZSxXQWEsSTNlLGpwLEEzZT1nKCgpPT57VXNlKCk7aShJMSwiaXNFbXB0eSIpO1o1dD1uZXcgU2V0KCIwMTIzNDU2Nzg5QUJDREVGYWJjZGVmIiksVUFhPW5ldyBTZXQoIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LSM7Lz86QCY9KyRfLiF+KicoKSIpLFdzZT1uZXcgU2V0KCIsW117fSIpLFdBYT1uZXcgU2V0KGAgLFtde30KXHIJYCksSTNlPWkocz0+IXN8fFdBYS5oYXMocyksImlzTm90QW5jaG9yQ2hhciIpLGpwPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxleGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmF0RW5kPSExLHRoaXMuYmxvY2tTY2FsYXJJbmRlbnQ9LTEsdGhpcy5ibG9ja1NjYWxhcktlZXA9ITEsdGhpcy5idWZmZXI9IiIsdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsPTAsdGhpcy5pbmRlbnROZXh0PTAsdGhpcy5pbmRlbnRWYWx1ZT0wLHRoaXMubGluZUVuZFBvcz1udWxsLHRoaXMubmV4dD1udWxsLHRoaXMucG9zPTB9KmxleChlLHQ9ITEpe2lmKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBUeXBlRXJyb3IoInNvdXJjZSBpcyBub3QgYSBzdHJpbmciKTt0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlcj90aGlzLmJ1ZmZlcitlOmUsdGhpcy5saW5lRW5kUG9zPW51bGx9dGhpcy5hdEVuZD0hdDtsZXQgYT10aGlzLm5leHQ/PyJzdHJlYW0iO2Zvcig7YSYmKHR8fHRoaXMuaGFzQ2hhcnMoMSkpOylhPXlpZWxkKnRoaXMucGFyc2VOZXh0KGEpfWF0TGluZUVuZCgpe2xldCBlPXRoaXMucG9zLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0PT09IiAifHx0PT09IgkiOyl0PXRoaXMuYnVmZmVyWysrZV07cmV0dXJuIXR8fHQ9PT0iIyJ8fHQ9PT1gCmA/ITA6dD09PSJcciI/dGhpcy5idWZmZXJbZSsxXT09PWAKYDohMX1jaGFyQXQoZSl7cmV0dXJuIHRoaXMuYnVmZmVyW3RoaXMucG9zK2VdfWNvbnRpbnVlU2NhbGFyKGUpe2xldCB0PXRoaXMuYnVmZmVyW2VdO2lmKHRoaXMuaW5kZW50TmV4dD4wKXtsZXQgYT0wO2Zvcig7dD09PSIgIjspdD10aGlzLmJ1ZmZlclsrK2ErZV07aWYodD09PSJcciIpe2xldCByPXRoaXMuYnVmZmVyW2ErZSsxXTtpZihyPT09YApgfHwhciYmIXRoaXMuYXRFbmQpcmV0dXJuIGUrYSsxfXJldHVybiB0PT09YApgfHxhPj10aGlzLmluZGVudE5leHR8fCF0JiYhdGhpcy5hdEVuZD9lK2E6LTF9aWYodD09PSItInx8dD09PSIuIil7bGV0IGE9dGhpcy5idWZmZXIuc3Vic3RyKGUsMyk7aWYoKGE9PT0iLS0tInx8YT09PSIuLi4iKSYmSTEodGhpcy5idWZmZXJbZSszXSkpcmV0dXJuLTF9cmV0dXJuIGV9Z2V0TGluZSgpe2xldCBlPXRoaXMubGluZUVuZFBvcztyZXR1cm4odHlwZW9mIGUhPSJudW1iZXIifHxlIT09LTEmJmU8dGhpcy5wb3MpJiYoZT10aGlzLmJ1ZmZlci5pbmRleE9mKGAKYCx0aGlzLnBvcyksdGhpcy5saW5lRW5kUG9zPWUpLGU9PT0tMT90aGlzLmF0RW5kP3RoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyk6bnVsbDoodGhpcy5idWZmZXJbZS0xXT09PSJcciImJihlLT0xKSx0aGlzLmJ1ZmZlci5zdWJzdHJpbmcodGhpcy5wb3MsZSkpfWhhc0NoYXJzKGUpe3JldHVybiB0aGlzLnBvcytlPD10aGlzLmJ1ZmZlci5sZW5ndGh9c2V0TmV4dChlKXtyZXR1cm4gdGhpcy5idWZmZXI9dGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKSx0aGlzLnBvcz0wLHRoaXMubGluZUVuZFBvcz1udWxsLHRoaXMubmV4dD1lLG51bGx9cGVlayhlKXtyZXR1cm4gdGhpcy5idWZmZXIuc3Vic3RyKHRoaXMucG9zLGUpfSpwYXJzZU5leHQoZSl7c3dpdGNoKGUpe2Nhc2Uic3RyZWFtIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVN0cmVhbSgpO2Nhc2UibGluZS1zdGFydCI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VMaW5lU3RhcnQoKTtjYXNlImJsb2NrLXN0YXJ0IjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKTtjYXNlImRvYyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VEb2N1bWVudCgpO2Nhc2UiZmxvdyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VGbG93Q29sbGVjdGlvbigpO2Nhc2UicXVvdGVkLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKTtjYXNlImJsb2NrLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhcigpO2Nhc2UicGxhaW4tc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVBsYWluU2NhbGFyKCl9fSpwYXJzZVN0cmVhbSgpe2xldCBlPXRoaXMuZ2V0TGluZSgpO2lmKGU9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoInN0cmVhbSIpO2lmKGVbMF09PT1xOSYmKHlpZWxkKnRoaXMucHVzaENvdW50KDEpLGU9ZS5zdWJzdHJpbmcoMSkpLGVbMF09PT0iJSIpe2xldCB0PWUubGVuZ3RoLGE9ZS5pbmRleE9mKCIjIik7Zm9yKDthIT09LTE7KXtsZXQgbj1lW2EtMV07aWYobj09PSIgInx8bj09PSIJIil7dD1hLTE7YnJlYWt9ZWxzZSBhPWUuaW5kZXhPZigiIyIsYSsxKX1mb3IoOzspe2xldCBuPWVbdC0xXTtpZihuPT09IiAifHxuPT09IgkiKXQtPTE7ZWxzZSBicmVha31sZXQgcj0oeWllbGQqdGhpcy5wdXNoQ291bnQodCkpKyh5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApKTtyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtciksdGhpcy5wdXNoTmV3bGluZSgpLCJzdHJlYW0ifWlmKHRoaXMuYXRMaW5lRW5kKCkpe2xldCB0PXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7cmV0dXJuIHlpZWxkKnRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpLHlpZWxkKnRoaXMucHVzaE5ld2xpbmUoKSwic3RyZWFtIn1yZXR1cm4geWllbGQgajkseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpfSpwYXJzZUxpbmVTdGFydCgpe2xldCBlPXRoaXMuY2hhckF0KDApO2lmKCFlJiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJsaW5lLXN0YXJ0Iik7aWYoZT09PSItInx8ZT09PSIuIil7aWYoIXRoaXMuYXRFbmQmJiF0aGlzLmhhc0NoYXJzKDQpKXJldHVybiB0aGlzLnNldE5leHQoImxpbmUtc3RhcnQiKTtsZXQgdD10aGlzLnBlZWsoMyk7aWYoKHQ9PT0iLS0tInx8dD09PSIuLi4iKSYmSTEodGhpcy5jaGFyQXQoMykpKXJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgzKSx0aGlzLmluZGVudFZhbHVlPTAsdGhpcy5pbmRlbnROZXh0PTAsdD09PSItLS0iPyJkb2MiOiJzdHJlYW0ifXJldHVybiB0aGlzLmluZGVudFZhbHVlPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMSksdGhpcy5pbmRlbnROZXh0PnRoaXMuaW5kZW50VmFsdWUmJiFJMSh0aGlzLmNoYXJBdCgxKSkmJih0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSkseWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKX0qcGFyc2VCbG9ja1N0YXJ0KCl7bGV0W2UsdF09dGhpcy5wZWVrKDIpO2lmKCF0JiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zdGFydCIpO2lmKChlPT09Ii0ifHxlPT09Ij8ifHxlPT09IjoiKSYmSTEodCkpe2xldCBhPSh5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpO3JldHVybiB0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSsxLHRoaXMuaW5kZW50VmFsdWUrPWEseWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKX1yZXR1cm4iZG9jIn0qcGFyc2VEb2N1bWVudCgpe3lpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7bGV0IGU9dGhpcy5nZXRMaW5lKCk7aWYoZT09PW51bGwpcmV0dXJuIHRoaXMuc2V0TmV4dCgiZG9jIik7bGV0IHQ9eWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpO3N3aXRjaChlW3RdKXtjYXNlIiMiOnlpZWxkKnRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpO2Nhc2Ugdm9pZCAwOnJldHVybiB5aWVsZCp0aGlzLnB1c2hOZXdsaW5lKCkseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpO2Nhc2UieyI6Y2FzZSJbIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsPTEsImZsb3ciO2Nhc2UifSI6Y2FzZSJdIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksImRvYyI7Y2FzZSIqIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoVW50aWwoSTNlKSwiZG9jIjtjYXNlJyInOmNhc2UiJyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKTtjYXNlInwiOmNhc2UiPiI6cmV0dXJuIHQrPXlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhckhlYWRlcigpLHQrPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkseWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtdCkseWllbGQqdGhpcy5wdXNoTmV3bGluZSgpLHlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhcigpO2RlZmF1bHQ6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VQbGFpblNjYWxhcigpfX0qcGFyc2VGbG93Q29sbGVjdGlvbigpe2xldCBlLHQsYT0tMTtkbyBlPXlpZWxkKnRoaXMucHVzaE5ld2xpbmUoKSxlPjA/KHQ9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCExKSx0aGlzLmluZGVudFZhbHVlPWE9dCk6dD0wLHQrPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7d2hpbGUoZSt0PjApO2xldCByPXRoaXMuZ2V0TGluZSgpO2lmKHI9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoImZsb3ciKTtpZigoYSE9PS0xJiZhPHRoaXMuaW5kZW50TmV4dCYmclswXSE9PSIjInx8YT09PTAmJihyLnN0YXJ0c1dpdGgoIi0tLSIpfHxyLnN0YXJ0c1dpdGgoIi4uLiIpKSYmSTEoclszXSkpJiYhKGE9PT10aGlzLmluZGVudE5leHQtMSYmdGhpcy5mbG93TGV2ZWw9PT0xJiYoclswXT09PSJdInx8clswXT09PSJ9IikpKXJldHVybiB0aGlzLmZsb3dMZXZlbD0wLHlpZWxkIFY5LHlpZWxkKnRoaXMucGFyc2VMaW5lU3RhcnQoKTtsZXQgbj0wO2Zvcig7cltuXT09PSIsIjspbis9eWllbGQqdGhpcy5wdXNoQ291bnQoMSksbis9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSx0aGlzLmZsb3dLZXk9ITE7c3dpdGNoKG4rPXlpZWxkKnRoaXMucHVzaEluZGljYXRvcnMoKSxyW25dKXtjYXNlIHZvaWQgMDpyZXR1cm4iZmxvdyI7Y2FzZSIjIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoci5sZW5ndGgtbiksImZsb3ciO2Nhc2UieyI6Y2FzZSJbIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsKz0xLCJmbG93IjtjYXNlIn0iOmNhc2UiXSI6cmV0dXJuIHlpZWxkKnRoaXMucHVzaENvdW50KDEpLHRoaXMuZmxvd0tleT0hMCx0aGlzLmZsb3dMZXZlbC09MSx0aGlzLmZsb3dMZXZlbD8iZmxvdyI6ImRvYyI7Y2FzZSIqIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoVW50aWwoSTNlKSwiZmxvdyI7Y2FzZSciJzpjYXNlIiciOnJldHVybiB0aGlzLmZsb3dLZXk9ITAseWllbGQqdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO2Nhc2UiOiI6e2xldCBvPXRoaXMuY2hhckF0KDEpO2lmKHRoaXMuZmxvd0tleXx8STEobyl8fG89PT0iLCIpcmV0dXJuIHRoaXMuZmxvd0tleT0hMSx5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSx5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApLCJmbG93In1kZWZhdWx0OnJldHVybiB0aGlzLmZsb3dLZXk9ITEseWllbGQqdGhpcy5wYXJzZVBsYWluU2NhbGFyKCl9fSpwYXJzZVF1b3RlZFNjYWxhcigpe2xldCBlPXRoaXMuY2hhckF0KDApLHQ9dGhpcy5idWZmZXIuaW5kZXhPZihlLHRoaXMucG9zKzEpO2lmKGU9PT0iJyIpZm9yKDt0IT09LTEmJnRoaXMuYnVmZmVyW3QrMV09PT0iJyI7KXQ9dGhpcy5idWZmZXIuaW5kZXhPZigiJyIsdCsyKTtlbHNlIGZvcig7dCE9PS0xOyl7bGV0IG49MDtmb3IoO3RoaXMuYnVmZmVyW3QtMS1uXT09PSJcXCI7KW4rPTE7aWYobiUyPT09MClicmVhazt0PXRoaXMuYnVmZmVyLmluZGV4T2YoJyInLHQrMSl9bGV0IGE9dGhpcy5idWZmZXIuc3Vic3RyaW5nKDAsdCkscj1hLmluZGV4T2YoYApgLHRoaXMucG9zKTtpZihyIT09LTEpe2Zvcig7ciE9PS0xOyl7bGV0IG49dGhpcy5jb250aW51ZVNjYWxhcihyKzEpO2lmKG49PT0tMSlicmVhaztyPWEuaW5kZXhPZihgCmAsbil9ciE9PS0xJiYodD1yLShhW3ItMV09PT0iXHIiPzI6MSkpfWlmKHQ9PT0tMSl7aWYoIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dCgicXVvdGVkLXNjYWxhciIpO3Q9dGhpcy5idWZmZXIubGVuZ3RofXJldHVybiB5aWVsZCp0aGlzLnB1c2hUb0luZGV4KHQrMSwhMSksdGhpcy5mbG93TGV2ZWw/ImZsb3ciOiJkb2MifSpwYXJzZUJsb2NrU2NhbGFySGVhZGVyKCl7dGhpcy5ibG9ja1NjYWxhckluZGVudD0tMSx0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMTtsZXQgZT10aGlzLnBvcztmb3IoOzspe2xldCB0PXRoaXMuYnVmZmVyWysrZV07aWYodD09PSIrIil0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMDtlbHNlIGlmKHQ+IjAiJiZ0PD0iOSIpdGhpcy5ibG9ja1NjYWxhckluZGVudD1OdW1iZXIodCktMTtlbHNlIGlmKHQhPT0iLSIpYnJlYWt9cmV0dXJuIHlpZWxkKnRoaXMucHVzaFVudGlsKHQ9PkkxKHQpfHx0PT09IiMiKX0qcGFyc2VCbG9ja1NjYWxhcigpe2xldCBlPXRoaXMucG9zLTEsdD0wLGE7ZTpmb3IobGV0IG49dGhpcy5wb3M7YT10aGlzLmJ1ZmZlcltuXTsrK24pc3dpdGNoKGEpe2Nhc2UiICI6dCs9MTticmVhaztjYXNlYApgOmU9bix0PTA7YnJlYWs7Y2FzZSJcciI6e2xldCBvPXRoaXMuYnVmZmVyW24rMV07aWYoIW8mJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXNjYWxhciIpO2lmKG89PT1gCmApYnJlYWt9ZGVmYXVsdDpicmVhayBlfWlmKCFhJiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zY2FsYXIiKTtpZih0Pj10aGlzLmluZGVudE5leHQpe3RoaXMuYmxvY2tTY2FsYXJJbmRlbnQ9PT0tMT90aGlzLmluZGVudE5leHQ9dDp0aGlzLmluZGVudE5leHQ9dGhpcy5ibG9ja1NjYWxhckluZGVudCsodGhpcy5pbmRlbnROZXh0PT09MD8xOnRoaXMuaW5kZW50TmV4dCk7ZG97bGV0IG49dGhpcy5jb250aW51ZVNjYWxhcihlKzEpO2lmKG49PT0tMSlicmVhaztlPXRoaXMuYnVmZmVyLmluZGV4T2YoYApgLG4pfXdoaWxlKGUhPT0tMSk7aWYoZT09PS0xKXtpZighdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zY2FsYXIiKTtlPXRoaXMuYnVmZmVyLmxlbmd0aH19bGV0IHI9ZSsxO2ZvcihhPXRoaXMuYnVmZmVyW3JdO2E9PT0iICI7KWE9dGhpcy5idWZmZXJbKytyXTtpZihhPT09IgkiKXtmb3IoO2E9PT0iCSJ8fGE9PT0iICJ8fGE9PT0iXHIifHxhPT09YApgOylhPXRoaXMuYnVmZmVyWysrcl07ZT1yLTF9ZWxzZSBpZighdGhpcy5ibG9ja1NjYWxhcktlZXApZG97bGV0IG49ZS0xLG89dGhpcy5idWZmZXJbbl07bz09PSJcciImJihvPXRoaXMuYnVmZmVyWy0tbl0pO2xldCBsPW47Zm9yKDtvPT09IiAiOylvPXRoaXMuYnVmZmVyWy0tbl07aWYobz09PWAKYCYmbj49dGhpcy5wb3MmJm4rMSt0PmwpZT1uO2Vsc2UgYnJlYWt9d2hpbGUoITApO3JldHVybiB5aWVsZCB3Myx5aWVsZCp0aGlzLnB1c2hUb0luZGV4KGUrMSwhMCkseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpfSpwYXJzZVBsYWluU2NhbGFyKCl7bGV0IGU9dGhpcy5mbG93TGV2ZWw+MCx0PXRoaXMucG9zLTEsYT10aGlzLnBvcy0xLHI7Zm9yKDtyPXRoaXMuYnVmZmVyWysrYV07KWlmKHI9PT0iOiIpe2xldCBuPXRoaXMuYnVmZmVyW2ErMV07aWYoSTEobil8fGUmJldzZS5oYXMobikpYnJlYWs7dD1hfWVsc2UgaWYoSTEocikpe2xldCBuPXRoaXMuYnVmZmVyW2ErMV07aWYocj09PSJcciImJihuPT09YApgPyhhKz0xLHI9YApgLG49dGhpcy5idWZmZXJbYSsxXSk6dD1hKSxuPT09IiMifHxlJiZXc2UuaGFzKG4pKWJyZWFrO2lmKHI9PT1gCmApe2xldCBvPXRoaXMuY29udGludWVTY2FsYXIoYSsxKTtpZihvPT09LTEpYnJlYWs7YT1NYXRoLm1heChhLG8tMil9fWVsc2V7aWYoZSYmV3NlLmhhcyhyKSlicmVhazt0PWF9cmV0dXJuIXImJiF0aGlzLmF0RW5kP3RoaXMuc2V0TmV4dCgicGxhaW4tc2NhbGFyIik6KHlpZWxkIHczLHlpZWxkKnRoaXMucHVzaFRvSW5kZXgodCsxLCEwKSxlPyJmbG93IjoiZG9jIil9KnB1c2hDb3VudChlKXtyZXR1cm4gZT4wPyh5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsZSksdGhpcy5wb3MrPWUsZSk6MH0qcHVzaFRvSW5kZXgoZSx0KXtsZXQgYT10aGlzLmJ1ZmZlci5zbGljZSh0aGlzLnBvcyxlKTtyZXR1cm4gYT8oeWllbGQgYSx0aGlzLnBvcys9YS5sZW5ndGgsYS5sZW5ndGgpOih0JiYoeWllbGQiIiksMCl9KnB1c2hJbmRpY2F0b3JzKCl7c3dpdGNoKHRoaXMuY2hhckF0KDApKXtjYXNlIiEiOnJldHVybih5aWVsZCp0aGlzLnB1c2hUYWcoKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpKyh5aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCkpO2Nhc2UiJiI6cmV0dXJuKHlpZWxkKnRoaXMucHVzaFVudGlsKEkzZSkpKyh5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApKSsoeWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpKTtjYXNlIi0iOmNhc2UiPyI6Y2FzZSI6Ijp7bGV0IGU9dGhpcy5mbG93TGV2ZWw+MCx0PXRoaXMuY2hhckF0KDEpO2lmKEkxKHQpfHxlJiZXc2UuaGFzKHQpKXJldHVybiBlP3RoaXMuZmxvd0tleSYmKHRoaXMuZmxvd0tleT0hMSk6dGhpcy5pbmRlbnROZXh0PXRoaXMuaW5kZW50VmFsdWUrMSwoeWllbGQqdGhpcy5wdXNoQ291bnQoMSkpKyh5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApKSsoeWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpKX19cmV0dXJuIDB9KnB1c2hUYWcoKXtpZih0aGlzLmNoYXJBdCgxKT09PSI8Iil7bGV0IGU9dGhpcy5wb3MrMix0PXRoaXMuYnVmZmVyW2VdO2Zvcig7IUkxKHQpJiZ0IT09Ij4iOyl0PXRoaXMuYnVmZmVyWysrZV07cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgodD09PSI+Ij9lKzE6ZSwhMSl9ZWxzZXtsZXQgZT10aGlzLnBvcysxLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0OylpZihVQWEuaGFzKHQpKXQ9dGhpcy5idWZmZXJbKytlXTtlbHNlIGlmKHQ9PT0iJSImJlo1dC5oYXModGhpcy5idWZmZXJbZSsxXSkmJlo1dC5oYXModGhpcy5idWZmZXJbZSsyXSkpdD10aGlzLmJ1ZmZlcltlKz0zXTtlbHNlIGJyZWFrO3JldHVybiB5aWVsZCp0aGlzLnB1c2hUb0luZGV4KGUsITEpfX0qcHVzaE5ld2xpbmUoKXtsZXQgZT10aGlzLmJ1ZmZlclt0aGlzLnBvc107cmV0dXJuIGU9PT1gCmA/eWllbGQqdGhpcy5wdXNoQ291bnQoMSk6ZT09PSJcciImJnRoaXMuY2hhckF0KDEpPT09YApgP3lpZWxkKnRoaXMucHVzaENvdW50KDIpOjB9KnB1c2hTcGFjZXMoZSl7bGV0IHQ9dGhpcy5wb3MtMSxhO2RvIGE9dGhpcy5idWZmZXJbKyt0XTt3aGlsZShhPT09IiAifHxlJiZhPT09IgkiKTtsZXQgcj10LXRoaXMucG9zO3JldHVybiByPjAmJih5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsciksdGhpcy5wb3M9dCkscn0qcHVzaFVudGlsKGUpe2xldCB0PXRoaXMucG9zLGE9dGhpcy5idWZmZXJbdF07Zm9yKDshZShhKTspYT10aGlzLmJ1ZmZlclsrK3RdO3JldHVybiB5aWVsZCp0aGlzLnB1c2hUb0luZGV4KHQsITEpfX19KTt2YXIgVnAsTjNlPWcoKCk9PntWcD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMaW5lQ291bnRlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5saW5lU3RhcnRzPVtdLHRoaXMuYWRkTmV3TGluZT1lPT50aGlzLmxpbmVTdGFydHMucHVzaChlKSx0aGlzLmxpbmVQb3M9ZT0+e2xldCB0PTAsYT10aGlzLmxpbmVTdGFydHMubGVuZ3RoO2Zvcig7dDxhOyl7bGV0IG49dCthPj4xO3RoaXMubGluZVN0YXJ0c1tuXTxlP3Q9bisxOmE9bn1pZih0aGlzLmxpbmVTdGFydHNbdF09PT1lKXJldHVybntsaW5lOnQrMSxjb2w6MX07aWYodD09PTApcmV0dXJue2xpbmU6MCxjb2w6ZX07bGV0IHI9dGhpcy5saW5lU3RhcnRzW3QtMV07cmV0dXJue2xpbmU6dCxjb2w6ZS1yKzF9fX19fSk7ZnVuY3Rpb24gVXAocyxlKXtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoOysrdClpZihzW3RdLnR5cGU9PT1lKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFg1dChzKXtmb3IobGV0IGU9MDtlPHMubGVuZ3RoOysrZSlzd2l0Y2goc1tlXS50eXBlKXtjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4gZX1yZXR1cm4tMX1mdW5jdGlvbiBRNXQocyl7c3dpdGNoKHM/LnR5cGUpe2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImZsb3ctY29sbGVjdGlvbiI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gR3NlKHMpe3N3aXRjaChzLnR5cGUpe2Nhc2UiZG9jdW1lbnQiOnJldHVybiBzLnN0YXJ0O2Nhc2UiYmxvY2stbWFwIjp7bGV0IGU9cy5pdGVtc1tzLml0ZW1zLmxlbmd0aC0xXTtyZXR1cm4gZS5zZXA/P2Uuc3RhcnR9Y2FzZSJibG9jay1zZXEiOnJldHVybiBzLml0ZW1zW3MuaXRlbXMubGVuZ3RoLTFdLnN0YXJ0O2RlZmF1bHQ6cmV0dXJuW119fWZ1bmN0aW9uIFU5KHMpe2lmKHMubGVuZ3RoPT09MClyZXR1cm5bXTtsZXQgZT1zLmxlbmd0aDtlOmZvcig7LS1lPj0wOylzd2l0Y2goc1tlXS50eXBlKXtjYXNlImRvYy1zdGFydCI6Y2FzZSJleHBsaWNpdC1rZXktaW5kIjpjYXNlIm1hcC12YWx1ZS1pbmQiOmNhc2Uic2VxLWl0ZW0taW5kIjpjYXNlIm5ld2xpbmUiOmJyZWFrIGV9Zm9yKDtzWysrZV0/LnR5cGU9PT0ic3BhY2UiOyk7cmV0dXJuIHMuc3BsaWNlKGUscy5sZW5ndGgpfWZ1bmN0aW9uIEo1dChzKXtpZihzLnN0YXJ0LnR5cGU9PT0iZmxvdy1zZXEtc3RhcnQiKWZvcihsZXQgZSBvZiBzLml0ZW1zKWUuc2VwJiYhZS52YWx1ZSYmIVVwKGUuc3RhcnQsImV4cGxpY2l0LWtleS1pbmQiKSYmIVVwKGUuc2VwLCJtYXAtdmFsdWUtaW5kIikmJihlLmtleSYmKGUudmFsdWU9ZS5rZXkpLGRlbGV0ZSBlLmtleSxRNXQoZS52YWx1ZSk/ZS52YWx1ZS5lbmQ/QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS52YWx1ZS5lbmQsZS5zZXApOmUudmFsdWUuZW5kPWUuc2VwOkFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGUuc3RhcnQsZS5zZXApLGRlbGV0ZSBlLnNlcCl9dmFyICQwLFIzZT1nKCgpPT57VXNlKCk7QTNlKCk7aShVcCwiaW5jbHVkZXNUb2tlbiIpO2koWDV0LCJmaW5kTm9uRW1wdHlJbmRleCIpO2koUTV0LCJpc0Zsb3dUb2tlbiIpO2koR3NlLCJnZXRQcmV2UHJvcHMiKTtpKFU5LCJnZXRGaXJzdEtleVN0YXJ0UHJvcHMiKTtpKEo1dCwiZml4Rmxvd1NlcUl0ZW1zIik7JDA9Y2xhc3N7c3RhdGlje2kodGhpcywiUGFyc2VyIil9Y29uc3RydWN0b3IoZSl7dGhpcy5hdE5ld0xpbmU9ITAsdGhpcy5hdFNjYWxhcj0hMSx0aGlzLmluZGVudD0wLHRoaXMub2Zmc2V0PTAsdGhpcy5vbktleUxpbmU9ITEsdGhpcy5zdGFjaz1bXSx0aGlzLnNvdXJjZT0iIix0aGlzLnR5cGU9IiIsdGhpcy5sZXhlcj1uZXcganAsdGhpcy5vbk5ld0xpbmU9ZX0qcGFyc2UoZSx0PSExKXt0aGlzLm9uTmV3TGluZSYmdGhpcy5vZmZzZXQ9PT0wJiZ0aGlzLm9uTmV3TGluZSgwKTtmb3IobGV0IGEgb2YgdGhpcy5sZXhlci5sZXgoZSx0KSl5aWVsZCp0aGlzLm5leHQoYSk7dHx8KHlpZWxkKnRoaXMuZW5kKCkpfSpuZXh0KGUpe2lmKHRoaXMuc291cmNlPWUsdGhpcy5hdFNjYWxhcil7dGhpcy5hdFNjYWxhcj0hMSx5aWVsZCp0aGlzLnN0ZXAoKSx0aGlzLm9mZnNldCs9ZS5sZW5ndGg7cmV0dXJufWxldCB0PVZzZShlKTtpZih0KWlmKHQ9PT0ic2NhbGFyIil0aGlzLmF0TmV3TGluZT0hMSx0aGlzLmF0U2NhbGFyPSEwLHRoaXMudHlwZT0ic2NhbGFyIjtlbHNle3N3aXRjaCh0aGlzLnR5cGU9dCx5aWVsZCp0aGlzLnN0ZXAoKSx0KXtjYXNlIm5ld2xpbmUiOnRoaXMuYXROZXdMaW5lPSEwLHRoaXMuaW5kZW50PTAsdGhpcy5vbk5ld0xpbmUmJnRoaXMub25OZXdMaW5lKHRoaXMub2Zmc2V0K2UubGVuZ3RoKTticmVhaztjYXNlInNwYWNlIjp0aGlzLmF0TmV3TGluZSYmZVswXT09PSIgIiYmKHRoaXMuaW5kZW50Kz1lLmxlbmd0aCk7YnJlYWs7Y2FzZSJleHBsaWNpdC1rZXktaW5kIjpjYXNlIm1hcC12YWx1ZS1pbmQiOmNhc2Uic2VxLWl0ZW0taW5kIjp0aGlzLmF0TmV3TGluZSYmKHRoaXMuaW5kZW50Kz1lLmxlbmd0aCk7YnJlYWs7Y2FzZSJkb2MtbW9kZSI6Y2FzZSJmbG93LWVycm9yLWVuZCI6cmV0dXJuO2RlZmF1bHQ6dGhpcy5hdE5ld0xpbmU9ITF9dGhpcy5vZmZzZXQrPWUubGVuZ3RofWVsc2V7bGV0IGE9YE5vdCBhIFlBTUwgdG9rZW46ICR7ZX1gO3lpZWxkKnRoaXMucG9wKHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6YSxzb3VyY2U6ZX0pLHRoaXMub2Zmc2V0Kz1lLmxlbmd0aH19KmVuZCgpe2Zvcig7dGhpcy5zdGFjay5sZW5ndGg+MDspeWllbGQqdGhpcy5wb3AoKX1nZXQgc291cmNlVG9rZW4oKXtyZXR1cm57dHlwZTp0aGlzLnR5cGUsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpzdGVwKCl7bGV0IGU9dGhpcy5wZWVrKDEpO2lmKHRoaXMudHlwZT09PSJkb2MtZW5kIiYmZT8udHlwZSE9PSJkb2MtZW5kIil7Zm9yKDt0aGlzLnN0YWNrLmxlbmd0aD4wOyl5aWVsZCp0aGlzLnBvcCgpO3RoaXMuc3RhY2sucHVzaCh7dHlwZToiZG9jLWVuZCIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZTp0aGlzLnNvdXJjZX0pO3JldHVybn1pZighZSlyZXR1cm4geWllbGQqdGhpcy5zdHJlYW0oKTtzd2l0Y2goZS50eXBlKXtjYXNlImRvY3VtZW50IjpyZXR1cm4geWllbGQqdGhpcy5kb2N1bWVudChlKTtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMuc2NhbGFyKGUpO2Nhc2UiYmxvY2stc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5ibG9ja1NjYWxhcihlKTtjYXNlImJsb2NrLW1hcCI6cmV0dXJuIHlpZWxkKnRoaXMuYmxvY2tNYXAoZSk7Y2FzZSJibG9jay1zZXEiOnJldHVybiB5aWVsZCp0aGlzLmJsb2NrU2VxdWVuY2UoZSk7Y2FzZSJmbG93LWNvbGxlY3Rpb24iOnJldHVybiB5aWVsZCp0aGlzLmZsb3dDb2xsZWN0aW9uKGUpO2Nhc2UiZG9jLWVuZCI6cmV0dXJuIHlpZWxkKnRoaXMuZG9jdW1lbnRFbmQoZSl9eWllbGQqdGhpcy5wb3AoKX1wZWVrKGUpe3JldHVybiB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLWVdfSpwb3AoZSl7bGV0IHQ9ZT8/dGhpcy5zdGFjay5wb3AoKTtpZighdCl5aWVsZHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZToiIixtZXNzYWdlOiJUcmllZCB0byBwb3AgYW4gZW1wdHkgc3RhY2sifTtlbHNlIGlmKHRoaXMuc3RhY2subGVuZ3RoPT09MCl5aWVsZCB0O2Vsc2V7bGV0IGE9dGhpcy5wZWVrKDEpO3N3aXRjaCh0LnR5cGU9PT0iYmxvY2stc2NhbGFyIj90LmluZGVudD0iaW5kZW50ImluIGE/YS5pbmRlbnQ6MDp0LnR5cGU9PT0iZmxvdy1jb2xsZWN0aW9uIiYmYS50eXBlPT09ImRvY3VtZW50IiYmKHQuaW5kZW50PTApLHQudHlwZT09PSJmbG93LWNvbGxlY3Rpb24iJiZKNXQodCksYS50eXBlKXtjYXNlImRvY3VtZW50IjphLnZhbHVlPXQ7YnJlYWs7Y2FzZSJibG9jay1zY2FsYXIiOmEucHJvcHMucHVzaCh0KTticmVhaztjYXNlImJsb2NrLW1hcCI6e2xldCByPWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV07aWYoci52YWx1ZSl7YS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6dCxzZXA6W119KSx0aGlzLm9uS2V5TGluZT0hMDtyZXR1cm59ZWxzZSBpZihyLnNlcClyLnZhbHVlPXQ7ZWxzZXtPYmplY3QuYXNzaWduKHIse2tleTp0LHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSFyLmV4cGxpY2l0S2V5O3JldHVybn1icmVha31jYXNlImJsb2NrLXNlcSI6e2xldCByPWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV07ci52YWx1ZT9hLml0ZW1zLnB1c2goe3N0YXJ0OltdLHZhbHVlOnR9KTpyLnZhbHVlPXQ7YnJlYWt9Y2FzZSJmbG93LWNvbGxlY3Rpb24iOntsZXQgcj1hLml0ZW1zW2EuaXRlbXMubGVuZ3RoLTFdOyFyfHxyLnZhbHVlP2EuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5OnQsc2VwOltdfSk6ci5zZXA/ci52YWx1ZT10Ok9iamVjdC5hc3NpZ24ocix7a2V5OnQsc2VwOltdfSk7cmV0dXJufWRlZmF1bHQ6eWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnBvcCh0KX1pZigoYS50eXBlPT09ImRvY3VtZW50Inx8YS50eXBlPT09ImJsb2NrLW1hcCJ8fGEudHlwZT09PSJibG9jay1zZXEiKSYmKHQudHlwZT09PSJibG9jay1tYXAifHx0LnR5cGU9PT0iYmxvY2stc2VxIikpe2xldCByPXQuaXRlbXNbdC5pdGVtcy5sZW5ndGgtMV07ciYmIXIuc2VwJiYhci52YWx1ZSYmci5zdGFydC5sZW5ndGg+MCYmWDV0KHIuc3RhcnQpPT09LTEmJih0LmluZGVudD09PTB8fHIuc3RhcnQuZXZlcnkobj0+bi50eXBlIT09ImNvbW1lbnQifHxuLmluZGVudDx0LmluZGVudCkpJiYoYS50eXBlPT09ImRvY3VtZW50Ij9hLmVuZD1yLnN0YXJ0OmEuaXRlbXMucHVzaCh7c3RhcnQ6ci5zdGFydH0pLHQuaXRlbXMuc3BsaWNlKC0xLDEpKX19fSpzdHJlYW0oKXtzd2l0Y2godGhpcy50eXBlKXtjYXNlImRpcmVjdGl2ZS1saW5lIjp5aWVsZHt0eXBlOiJkaXJlY3RpdmUiLG9mZnNldDp0aGlzLm9mZnNldCxzb3VyY2U6dGhpcy5zb3VyY2V9O3JldHVybjtjYXNlImJ5dGUtb3JkZXItbWFyayI6Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOnlpZWxkIHRoaXMuc291cmNlVG9rZW47cmV0dXJuO2Nhc2UiZG9jLW1vZGUiOmNhc2UiZG9jLXN0YXJ0Ijp7bGV0IGU9e3R5cGU6ImRvY3VtZW50IixvZmZzZXQ6dGhpcy5vZmZzZXQsc3RhcnQ6W119O3RoaXMudHlwZT09PSJkb2Mtc3RhcnQiJiZlLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbiksdGhpcy5zdGFjay5wdXNoKGUpO3JldHVybn19eWllbGR7dHlwZToiZXJyb3IiLG9mZnNldDp0aGlzLm9mZnNldCxtZXNzYWdlOmBVbmV4cGVjdGVkICR7dGhpcy50eXBlfSB0b2tlbiBpbiBZQU1MIHN0cmVhbWAsc291cmNlOnRoaXMuc291cmNlfX0qZG9jdW1lbnQoZSl7aWYoZS52YWx1ZSlyZXR1cm4geWllbGQqdGhpcy5saW5lRW5kKGUpO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiZG9jLXN0YXJ0Ijp7WDV0KGUuc3RhcnQpIT09LTE/KHlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCkpOmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm59Y2FzZSJhbmNob3IiOmNhc2UidGFnIjpjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6ZS5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybn1sZXQgdD10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTt0P3RoaXMuc3RhY2sucHVzaCh0KTp5aWVsZHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6YFVuZXhwZWN0ZWQgJHt0aGlzLnR5cGV9IHRva2VuIGluIFlBTUwgZG9jdW1lbnRgLHNvdXJjZTp0aGlzLnNvdXJjZX19KnNjYWxhcihlKXtpZih0aGlzLnR5cGU9PT0ibWFwLXZhbHVlLWluZCIpe2xldCB0PUdzZSh0aGlzLnBlZWsoMikpLGE9VTkodCkscjtlLmVuZD8ocj1lLmVuZCxyLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZGVsZXRlIGUuZW5kKTpyPVt0aGlzLnNvdXJjZVRva2VuXTtsZXQgbj17dHlwZToiYmxvY2stbWFwIixvZmZzZXQ6ZS5vZmZzZXQsaW5kZW50OmUuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6YSxrZXk6ZSxzZXA6cn1dfTt0aGlzLm9uS2V5TGluZT0hMCx0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdPW59ZWxzZSB5aWVsZCp0aGlzLmxpbmVFbmQoZSl9KmJsb2NrU2NhbGFyKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjplLnByb3BzLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2Uic2NhbGFyIjppZihlLnNvdXJjZT10aGlzLnNvdXJjZSx0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmluZGVudD0wLHRoaXMub25OZXdMaW5lKXtsZXQgdD10aGlzLnNvdXJjZS5pbmRleE9mKGAKYCkrMTtmb3IoO3QhPT0wOyl0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCt0KSx0PXRoaXMuc291cmNlLmluZGV4T2YoYApgLHQpKzF9eWllbGQqdGhpcy5wb3AoKTticmVhaztkZWZhdWx0OnlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCl9fSpibG9ja01hcChlKXtsZXQgdD1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UibmV3bGluZSI6aWYodGhpcy5vbktleUxpbmU9ITEsdC52YWx1ZSl7bGV0IGE9ImVuZCJpbiB0LnZhbHVlP3QudmFsdWUuZW5kOnZvaWQgMDsoQXJyYXkuaXNBcnJheShhKT9hW2EubGVuZ3RoLTFdOnZvaWQgMCk/LnR5cGU9PT0iY29tbWVudCI/YT8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pfWVsc2UgdC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6aWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2UgaWYodC5zZXApdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtlbHNle2lmKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQodC5zdGFydCxlLmluZGVudCkpe2xldCByPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMl0/LnZhbHVlPy5lbmQ7aWYoQXJyYXkuaXNBcnJheShyKSl7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkocix0LnN0YXJ0KSxyLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZS5pdGVtcy5wb3AoKTtyZXR1cm59fXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKX1yZXR1cm59aWYodGhpcy5pbmRlbnQ+PWUuaW5kZW50KXtsZXQgYT0hdGhpcy5vbktleUxpbmUmJnRoaXMuaW5kZW50PT09ZS5pbmRlbnQscj1hJiYodC5zZXB8fHQuZXhwbGljaXRLZXkpJiZ0aGlzLnR5cGUhPT0ic2VxLWl0ZW0taW5kIixuPVtdO2lmKHImJnQuc2VwJiYhdC52YWx1ZSl7bGV0IG89W107Zm9yKGxldCBsPTA7bDx0LnNlcC5sZW5ndGg7KytsKXtsZXQgcD10LnNlcFtsXTtzd2l0Y2gocC50eXBlKXtjYXNlIm5ld2xpbmUiOm8ucHVzaChsKTticmVhaztjYXNlInNwYWNlIjpicmVhaztjYXNlImNvbW1lbnQiOnAuaW5kZW50PmUuaW5kZW50JiYoby5sZW5ndGg9MCk7YnJlYWs7ZGVmYXVsdDpvLmxlbmd0aD0wfX1vLmxlbmd0aD49MiYmKG49dC5zZXAuc3BsaWNlKG9bMV0pKX1zd2l0Y2godGhpcy50eXBlKXtjYXNlImFuY2hvciI6Y2FzZSJ0YWciOnJ8fHQudmFsdWU/KG4ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om59KSx0aGlzLm9uS2V5TGluZT0hMCk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2UiZXhwbGljaXQta2V5LWluZCI6IXQuc2VwJiYhdC5leHBsaWNpdEtleT8odC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHQuZXhwbGljaXRLZXk9ITApOnJ8fHQudmFsdWU/KG4ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om4sZXhwbGljaXRLZXk6ITB9KSk6dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl0sZXhwbGljaXRLZXk6ITB9XX0pLHRoaXMub25LZXlMaW5lPSEwO3JldHVybjtjYXNlIm1hcC12YWx1ZS1pbmQiOmlmKHQuZXhwbGljaXRLZXkpaWYodC5zZXApaWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtlbHNlIGlmKFVwKHQuc2VwLCJtYXAtdmFsdWUtaW5kIikpdGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpuLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pO2Vsc2UgaWYoUTV0KHQua2V5KSYmIVVwKHQuc2VwLCJuZXdsaW5lIikpe2xldCBvPVU5KHQuc3RhcnQpLGw9dC5rZXkscD10LnNlcDtwLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZGVsZXRlIHQua2V5LGRlbGV0ZSB0LnNlcCx0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Om8sa2V5Omwsc2VwOnB9XX0pfWVsc2Ugbi5sZW5ndGg+MD90LnNlcD10LnNlcC5jb25jYXQobix0aGlzLnNvdXJjZVRva2VuKTp0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2Vsc2UgaWYoVXAodC5zdGFydCwibmV3bGluZSIpKU9iamVjdC5hc3NpZ24odCx7a2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2V7bGV0IG89VTkodC5zdGFydCk7dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpvLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pfWVsc2UgdC5zZXA/dC52YWx1ZXx8cj9lLml0ZW1zLnB1c2goe3N0YXJ0Om4sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pOlVwKHQuc2VwLCJtYXAtdmFsdWUtaW5kIik/dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbXSxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfV19KTp0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOk9iamVjdC5hc3NpZ24odCx7a2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pO3RoaXMub25LZXlMaW5lPSEwO3JldHVybjtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6e2xldCBvPXRoaXMuZmxvd1NjYWxhcih0aGlzLnR5cGUpO3J8fHQudmFsdWU/KGUuaXRlbXMucHVzaCh7c3RhcnQ6bixrZXk6byxzZXA6W119KSx0aGlzLm9uS2V5TGluZT0hMCk6dC5zZXA/dGhpcy5zdGFjay5wdXNoKG8pOihPYmplY3QuYXNzaWduKHQse2tleTpvLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwKTtyZXR1cm59ZGVmYXVsdDp7bGV0IG89dGhpcy5zdGFydEJsb2NrVmFsdWUoZSk7aWYobyl7aWYoby50eXBlPT09ImJsb2NrLXNlcSIpe2lmKCF0LmV4cGxpY2l0S2V5JiZ0LnNlcCYmIVVwKHQuc2VwLCJuZXdsaW5lIikpe3lpZWxkKnRoaXMucG9wKHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6IlVuZXhwZWN0ZWQgYmxvY2stc2VxLWluZCBvbiBzYW1lIGxpbmUgd2l0aCBrZXkiLHNvdXJjZTp0aGlzLnNvdXJjZX0pO3JldHVybn19ZWxzZSBhJiZlLml0ZW1zLnB1c2goe3N0YXJ0Om59KTt0aGlzLnN0YWNrLnB1c2gobyk7cmV0dXJufX19fXlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCl9KmJsb2NrU2VxdWVuY2UoZSl7bGV0IHQ9ZS5pdGVtc1tlLml0ZW1zLmxlbmd0aC0xXTtzd2l0Y2godGhpcy50eXBlKXtjYXNlIm5ld2xpbmUiOmlmKHQudmFsdWUpe2xldCBhPSJlbmQiaW4gdC52YWx1ZT90LnZhbHVlLmVuZDp2b2lkIDA7KEFycmF5LmlzQXJyYXkoYSk/YVthLmxlbmd0aC0xXTp2b2lkIDApPy50eXBlPT09ImNvbW1lbnQiP2E/LnB1c2godGhpcy5zb3VyY2VUb2tlbik6ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KX1lbHNlIHQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjppZih0LnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtpZih0aGlzLmF0SW5kZW50ZWRDb21tZW50KHQuc3RhcnQsZS5pbmRlbnQpKXtsZXQgcj1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTJdPy52YWx1ZT8uZW5kO2lmKEFycmF5LmlzQXJyYXkocikpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHIsdC5zdGFydCksci5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucG9wKCk7cmV0dXJufX10LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbil9cmV0dXJuO2Nhc2UiYW5jaG9yIjpjYXNlInRhZyI6aWYodC52YWx1ZXx8dGhpcy5pbmRlbnQ8PWUuaW5kZW50KWJyZWFrO3Quc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzZXEtaXRlbS1pbmQiOmlmKHRoaXMuaW5kZW50IT09ZS5pbmRlbnQpYnJlYWs7dC52YWx1ZXx8VXAodC5zdGFydCwic2VxLWl0ZW0taW5kIik/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWlmKHRoaXMuaW5kZW50PmUuaW5kZW50KXtsZXQgYT10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihhKXt0aGlzLnN0YWNrLnB1c2goYSk7cmV0dXJufX15aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpfSpmbG93Q29sbGVjdGlvbihlKXtsZXQgdD1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO2lmKHRoaXMudHlwZT09PSJmbG93LWVycm9yLWVuZCIpe2xldCBhO2RvIHlpZWxkKnRoaXMucG9wKCksYT10aGlzLnBlZWsoMSk7d2hpbGUoYT8udHlwZT09PSJmbG93LWNvbGxlY3Rpb24iKX1lbHNlIGlmKGUuZW5kLmxlbmd0aD09PTApe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiY29tbWEiOmNhc2UiZXhwbGljaXQta2V5LWluZCI6IXR8fHQuc2VwP2UuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk6dC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybjtjYXNlIm1hcC12YWx1ZS1pbmQiOiF0fHx0LnZhbHVlP2UuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pOnQuc2VwP3Quc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik6T2JqZWN0LmFzc2lnbih0LHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7cmV0dXJuO2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjpjYXNlImFuY2hvciI6Y2FzZSJ0YWciOiF0fHx0LnZhbHVlP2UuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjp7bGV0IHI9dGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7IXR8fHQudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6cixzZXA6W119KTp0LnNlcD90aGlzLnN0YWNrLnB1c2gocik6T2JqZWN0LmFzc2lnbih0LHtrZXk6cixzZXA6W119KTtyZXR1cm59Y2FzZSJmbG93LW1hcC1lbmQiOmNhc2UiZmxvdy1zZXEtZW5kIjplLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybn1sZXQgYT10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTthP3RoaXMuc3RhY2sucHVzaChhKTooeWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKSl9ZWxzZXtsZXQgYT10aGlzLnBlZWsoMik7aWYoYS50eXBlPT09ImJsb2NrLW1hcCImJih0aGlzLnR5cGU9PT0ibWFwLXZhbHVlLWluZCImJmEuaW5kZW50PT09ZS5pbmRlbnR8fHRoaXMudHlwZT09PSJuZXdsaW5lIiYmIWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV0uc2VwKSl5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpO2Vsc2UgaWYodGhpcy50eXBlPT09Im1hcC12YWx1ZS1pbmQiJiZhLnR5cGUhPT0iZmxvdy1jb2xsZWN0aW9uIil7bGV0IHI9R3NlKGEpLG49VTkocik7SjV0KGUpO2xldCBvPWUuZW5kLnNwbGljZSgxLGUuZW5kLmxlbmd0aCk7by5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2xldCBsPXt0eXBlOiJibG9jay1tYXAiLG9mZnNldDplLm9mZnNldCxpbmRlbnQ6ZS5pbmRlbnQsaXRlbXM6W3tzdGFydDpuLGtleTplLHNlcDpvfV19O3RoaXMub25LZXlMaW5lPSEwLHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV09bH1lbHNlIHlpZWxkKnRoaXMubGluZUVuZChlKX19Zmxvd1NjYWxhcihlKXtpZih0aGlzLm9uTmV3TGluZSl7bGV0IHQ9dGhpcy5zb3VyY2UuaW5kZXhPZihgCmApKzE7Zm9yKDt0IT09MDspdGhpcy5vbk5ld0xpbmUodGhpcy5vZmZzZXQrdCksdD10aGlzLnNvdXJjZS5pbmRleE9mKGAKYCx0KSsxfXJldHVybnt0eXBlOmUsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxzb3VyY2U6dGhpcy5zb3VyY2V9fXN0YXJ0QmxvY2tWYWx1ZShlKXtzd2l0Y2godGhpcy50eXBlKXtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6cmV0dXJuIHRoaXMuZmxvd1NjYWxhcih0aGlzLnR5cGUpO2Nhc2UiYmxvY2stc2NhbGFyLWhlYWRlciI6cmV0dXJue3R5cGU6ImJsb2NrLXNjYWxhciIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxwcm9wczpbdGhpcy5zb3VyY2VUb2tlbl0sc291cmNlOiIifTtjYXNlImZsb3ctbWFwLXN0YXJ0IjpjYXNlImZsb3ctc2VxLXN0YXJ0IjpyZXR1cm57dHlwZToiZmxvdy1jb2xsZWN0aW9uIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHN0YXJ0OnRoaXMuc291cmNlVG9rZW4saXRlbXM6W10sZW5kOltdfTtjYXNlInNlcS1pdGVtLWluZCI6cmV0dXJue3R5cGU6ImJsb2NrLXNlcSIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX1dfTtjYXNlImV4cGxpY2l0LWtleS1pbmQiOnt0aGlzLm9uS2V5TGluZT0hMDtsZXQgdD1Hc2UoZSksYT1VOSh0KTtyZXR1cm4gYS5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDphLGV4cGxpY2l0S2V5OiEwfV19fWNhc2UibWFwLXZhbHVlLWluZCI6e3RoaXMub25LZXlMaW5lPSEwO2xldCB0PUdzZShlKSxhPVU5KHQpO3JldHVybnt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDphLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX19fXJldHVybiBudWxsfWF0SW5kZW50ZWRDb21tZW50KGUsdCl7cmV0dXJuIHRoaXMudHlwZSE9PSJjb21tZW50Inx8dGhpcy5pbmRlbnQ8PXQ/ITE6ZS5ldmVyeShhPT5hLnR5cGU9PT0ibmV3bGluZSJ8fGEudHlwZT09PSJzcGFjZSIpfSpkb2N1bWVudEVuZChlKXt0aGlzLnR5cGUhPT0iZG9jLW1vZGUiJiYoZS5lbmQ/ZS5lbmQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLmVuZD1bdGhpcy5zb3VyY2VUb2tlbl0sdGhpcy50eXBlPT09Im5ld2xpbmUiJiYoeWllbGQqdGhpcy5wb3AoKSkpfSpsaW5lRW5kKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiY29tbWEiOmNhc2UiZG9jLXN0YXJ0IjpjYXNlImRvYy1lbmQiOmNhc2UiZmxvdy1zZXEtZW5kIjpjYXNlImZsb3ctbWFwLWVuZCI6Y2FzZSJtYXAtdmFsdWUtaW5kIjp5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpO2JyZWFrO2Nhc2UibmV3bGluZSI6dGhpcy5vbktleUxpbmU9ITE7ZGVmYXVsdDplLmVuZD9lLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuZW5kPVt0aGlzLnNvdXJjZVRva2VuXSx0aGlzLnR5cGU9PT0ibmV3bGluZSImJih5aWVsZCp0aGlzLnBvcCgpKX19fX0pO2Z1bmN0aW9uIGU4dChzKXtsZXQgZT1zLnByZXR0eUVycm9ycyE9PSExO3JldHVybntsaW5lQ291bnRlcjpzLmxpbmVDb3VudGVyfHxlJiZuZXcgVnB8fG51bGwscHJldHR5RXJyb3JzOmV9fWZ1bmN0aW9uIEtzZShzLGU9e30pe2xldHtsaW5lQ291bnRlcjp0LHByZXR0eUVycm9yczphfT1lOHQoZSkscj1uZXcgJDAodD8uYWRkTmV3TGluZSksbj1uZXcgQzAoZSksbz1BcnJheS5mcm9tKG4uY29tcG9zZShyLnBhcnNlKHMpKSk7aWYoYSYmdClmb3IobGV0IGwgb2YgbylsLmVycm9ycy5mb3JFYWNoKEY5KHMsdCkpLGwud2FybmluZ3MuZm9yRWFjaChGOShzLHQpKTtyZXR1cm4gby5sZW5ndGg+MD9vOk9iamVjdC5hc3NpZ24oW10se2VtcHR5OiEwfSxuLnN0cmVhbUluZm8oKSl9ZnVuY3Rpb24gZWsocyxlPXt9KXtsZXR7bGluZUNvdW50ZXI6dCxwcmV0dHlFcnJvcnM6YX09ZTh0KGUpLHI9bmV3ICQwKHQ/LmFkZE5ld0xpbmUpLG49bmV3IEMwKGUpLG89bnVsbDtmb3IobGV0IGwgb2Ygbi5jb21wb3NlKHIucGFyc2UocyksITAscy5sZW5ndGgpKWlmKCFvKW89bDtlbHNlIGlmKG8ub3B0aW9ucy5sb2dMZXZlbCE9PSJzaWxlbnQiKXtvLmVycm9ycy5wdXNoKG5ldyBrbihsLnJhbmdlLnNsaWNlKDAsMiksIk1VTFRJUExFX0RPQ1MiLCJTb3VyY2UgY29udGFpbnMgbXVsdGlwbGUgZG9jdW1lbnRzOyBwbGVhc2UgdXNlIFlBTUwucGFyc2VBbGxEb2N1bWVudHMoKSIpKTticmVha31yZXR1cm4gYSYmdCYmKG8uZXJyb3JzLmZvckVhY2goRjkocyx0KSksby53YXJuaW5ncy5mb3JFYWNoKEY5KHMsdCkpKSxvfWZ1bmN0aW9uIFlzZShzLGUsdCl7bGV0IGE7dHlwZW9mIGU9PSJmdW5jdGlvbiI/YT1lOnQ9PT12b2lkIDAmJmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKHQ9ZSk7bGV0IHI9ZWsocyx0KTtpZighcilyZXR1cm4gbnVsbDtpZihyLndhcm5pbmdzLmZvckVhY2gobj0+THcoci5vcHRpb25zLmxvZ0xldmVsLG4pKSxyLmVycm9ycy5sZW5ndGg+MCl7aWYoci5vcHRpb25zLmxvZ0xldmVsIT09InNpbGVudCIpdGhyb3cgci5lcnJvcnNbMF07ci5lcnJvcnM9W119cmV0dXJuIHIudG9KUyhPYmplY3QuYXNzaWduKHtyZXZpdmVyOmF9LHQpKX1mdW5jdGlvbiBac2UocyxlLHQpe2xldCBhPW51bGw7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiJ8fEFycmF5LmlzQXJyYXkoZSk/YT1lOnQ9PT12b2lkIDAmJmUmJih0PWUpLHR5cGVvZiB0PT0ic3RyaW5nIiYmKHQ9dC5sZW5ndGgpLHR5cGVvZiB0PT0ibnVtYmVyIil7bGV0IHI9TWF0aC5yb3VuZCh0KTt0PXI8MT92b2lkIDA6cj44P3tpbmRlbnQ6OH06e2luZGVudDpyfX1pZihzPT09dm9pZCAwKXtsZXR7a2VlcFVuZGVmaW5lZDpyfT10Pz9lPz97fTtpZighcilyZXR1cm59cmV0dXJuIHhsKHMpJiYhYT9zLnRvU3RyaW5nKHQpOm5ldyBMYyhzLGEsdCkudG9TdHJpbmcodCl9dmFyIHQ4dD1nKCgpPT57QzNlKCk7VXcoKTtXdygpO0g0ZSgpO3VzKCk7TjNlKCk7UjNlKCk7aShlOHQsInBhcnNlT3B0aW9ucyIpO2koS3NlLCJwYXJzZUFsbERvY3VtZW50cyIpO2koZWssInBhcnNlRG9jdW1lbnQiKTtpKFlzZSwicGFyc2UiKTtpKFpzZSwic3RyaW5naWZ5Iil9KTt2YXIgTzNlPXt9O3l0KE8zZSx7QWxpYXM6KCk9PkNjLENTVDooKT0+SncsQ29tcG9zZXI6KCk9PkMwLERvY3VtZW50OigpPT5MYyxMZXhlcjooKT0+anAsTGluZUNvdW50ZXI6KCk9PlZwLFBhaXI6KCk9PmNpLFBhcnNlcjooKT0+JDAsU2NhbGFyOigpPT5MdCxTY2hlbWE6KCk9PkJwLFlBTUxFcnJvcjooKT0+SHAsWUFNTE1hcDooKT0+eWksWUFNTFBhcnNlRXJyb3I6KCk9PmtuLFlBTUxTZXE6KCk9PlZyLFlBTUxXYXJuaW5nOigpPT5xcCxpc0FsaWFzOigpPT52bCxpc0NvbGxlY3Rpb246KCk9PmRzLGlzRG9jdW1lbnQ6KCk9PnhsLGlzTWFwOigpPT55bCxpc05vZGU6KCk9PklhLGlzUGFpcjooKT0+Q2EsaXNTY2FsYXI6KCk9PmxhLGlzU2VxOigpPT53bCxwYXJzZTooKT0+WXNlLHBhcnNlQWxsRG9jdW1lbnRzOigpPT5Lc2UscGFyc2VEb2N1bWVudDooKT0+ZWssc3RyaW5naWZ5OigpPT5ac2UsdmlzaXQ6KCk9PkhsLHZpc2l0QXN5bmM6KCk9PmYzfSk7dmFyIEYzZT1nKCgpPT57QzNlKCk7VXcoKTtwM2UoKTtXdygpO2t3KCk7dXMoKTtOcCgpO19yKCk7UnAoKTtPcCgpO1VzZSgpO0EzZSgpO04zZSgpO1IzZSgpO3Q4dCgpO3l3KCl9KTt2YXIgazM9e307eXQoazMse0FsaWFzOigpPT5DYyxDU1Q6KCk9Pkp3LENvbXBvc2VyOigpPT5DMCxEb2N1bWVudDooKT0+TGMsTGV4ZXI6KCk9PmpwLExpbmVDb3VudGVyOigpPT5WcCxQYWlyOigpPT5jaSxQYXJzZXI6KCk9PiQwLFNjYWxhcjooKT0+THQsU2NoZW1hOigpPT5CcCxZQU1MRXJyb3I6KCk9PkhwLFlBTUxNYXA6KCk9PnlpLFlBTUxQYXJzZUVycm9yOigpPT5rbixZQU1MU2VxOigpPT5WcixZQU1MV2FybmluZzooKT0+cXAsZGVmYXVsdDooKT0+R0FhLGlzQWxpYXM6KCk9PnZsLGlzQ29sbGVjdGlvbjooKT0+ZHMsaXNEb2N1bWVudDooKT0+eGwsaXNNYXA6KCk9PnlsLGlzTm9kZTooKT0+SWEsaXNQYWlyOigpPT5DYSxpc1NjYWxhcjooKT0+bGEsaXNTZXE6KCk9PndsLHBhcnNlOigpPT5Zc2UscGFyc2VBbGxEb2N1bWVudHM6KCk9PktzZSxwYXJzZURvY3VtZW50OigpPT5layxzdHJpbmdpZnk6KCk9PlpzZSx2aXNpdDooKT0+SGwsdmlzaXRBc3luYzooKT0+ZjN9KTt2YXIgR0FhLGE4dD1nKCgpPT57RjNlKCk7RjNlKCk7R0FhPU8zZX0pO3ZhciBzOHQ9ZygoKT0+e2E4dCgpfSk7dmFyIHRrPXt9O3l0KHRrLHtnZXRZYW1sRG9jRnJvbVN0cmluZzooKT0+WEFhLG9iamVjdFRvWWFtbFN0cmluZzooKT0+WkFhLHlhbWxTdHJpbmdUb09iamVjdDooKT0+WUFhfSk7dmFyIFlBYSxaQWEsWEFhLGk4dD1nKCgpPT57czh0KCk7WUFhPWkoYXN5bmMgcz0+azMucGFyc2UocyksInlhbWxTdHJpbmdUb09iamVjdCIpLFpBYT1pKGFzeW5jIHM9PmszLnN0cmluZ2lmeShzKSwib2JqZWN0VG9ZYW1sU3RyaW5nIiksWEFhPWkoYXN5bmMgcz0+azMucGFyc2VEb2N1bWVudChzKSwiZ2V0WWFtbERvY0Zyb21TdHJpbmciKX0pO2Z1bmN0aW9uIEIzZShzKXtpZihzKXRocm93IHN9dmFyIHI4dD1nKCgpPT57aShCM2UsImJhaWwiKX0pO3ZhciBmOHQ9cGwoKFdzaSxoOHQpPT57InVzZSBzdHJpY3QiO3ZhciBYc2U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxvOHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxuOHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LGw4dD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGM4dD1pKGZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXkuaXNBcnJheT09ImZ1bmN0aW9uIj9BcnJheS5pc0FycmF5KGUpOm84dC5jYWxsKGUpPT09IltvYmplY3QgQXJyYXldIn0sImlzQXJyYXkiKSxkOHQ9aShmdW5jdGlvbihlKXtpZighZXx8bzh0LmNhbGwoZSkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgdD1Yc2UuY2FsbChlLCJjb25zdHJ1Y3RvciIpLGE9ZS5jb25zdHJ1Y3RvciYmZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUmJlhzZS5jYWxsKGUuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIik7aWYoZS5jb25zdHJ1Y3RvciYmIXQmJiFhKXJldHVybiExO3ZhciByO2ZvcihyIGluIGUpO3JldHVybiB0eXBlb2Ygcj4idSJ8fFhzZS5jYWxsKGUscil9LCJpc1BsYWluT2JqZWN0IiksdTh0PWkoZnVuY3Rpb24oZSx0KXtuOHQmJnQubmFtZT09PSJfX3Byb3RvX18iP244dChlLHQubmFtZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6dC5uZXdWYWx1ZSx3cml0YWJsZTohMH0pOmVbdC5uYW1lXT10Lm5ld1ZhbHVlfSwic2V0UHJvcGVydHkiKSxwOHQ9aShmdW5jdGlvbihlLHQpe2lmKHQ9PT0iX19wcm90b19fIilpZihYc2UuY2FsbChlLHQpKXtpZihsOHQpcmV0dXJuIGw4dChlLHQpLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiBlW3RdfSwiZ2V0UHJvcGVydHkiKTtoOHQuZXhwb3J0cz1pKGZ1bmN0aW9uIHMoKXt2YXIgZSx0LGEscixuLG8sbD1hcmd1bWVudHNbMF0scD0xLGQ9YXJndW1lbnRzLmxlbmd0aCx1PSExO2Zvcih0eXBlb2YgbD09ImJvb2xlYW4iJiYodT1sLGw9YXJndW1lbnRzWzFdfHx7fSxwPTIpLChsPT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCImJnR5cGVvZiBsIT0iZnVuY3Rpb24iKSYmKGw9e30pO3A8ZDsrK3ApaWYoZT1hcmd1bWVudHNbcF0sZSE9bnVsbClmb3IodCBpbiBlKWE9cDh0KGwsdCkscj1wOHQoZSx0KSxsIT09ciYmKHUmJnImJihkOHQocil8fChuPWM4dChyKSkpPyhuPyhuPSExLG89YSYmYzh0KGEpP2E6W10pOm89YSYmZDh0KGEpP2E6e30sdTh0KGwse25hbWU6dCxuZXdWYWx1ZTpzKHUsbyxyKX0pKTp0eXBlb2YgcjwidSImJnU4dChsLHtuYW1lOnQsbmV3VmFsdWU6cn0pKTtyZXR1cm4gbH0sImV4dGVuZCIpfSk7dmFyIFdwPWcoKCk9Pnt9KTtmdW5jdGlvbiBhayhzKXtpZih0eXBlb2YgcyE9Im9iamVjdCJ8fHM9PT1udWxsKXJldHVybiExO2xldCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZihzKTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gcykmJiEoU3ltYm9sLml0ZXJhdG9yIGluIHMpfXZhciBtOHQ9ZygoKT0+e2koYWssImlzUGxhaW5PYmplY3QiKX0pO2Z1bmN0aW9uIEgzZSgpe2xldCBzPVtdLGU9e3J1bjp0LHVzZTphfTtyZXR1cm4gZTtmdW5jdGlvbiB0KC4uLnIpe2xldCBuPS0xLG89ci5wb3AoKTtpZih0eXBlb2YgbyE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIitvKTtsKG51bGwsLi4ucik7ZnVuY3Rpb24gbChwLC4uLmQpe2xldCB1PXNbKytuXSxjPS0xO2lmKHApe28ocCk7cmV0dXJufWZvcig7KytjPHIubGVuZ3RoOykoZFtjXT09PW51bGx8fGRbY109PT12b2lkIDApJiYoZFtjXT1yW2NdKTtyPWQsdT9nOHQodSxsKSguLi5kKTpvKG51bGwsLi4uZCl9aShsLCJuZXh0Iil9ZnVuY3Rpb24gYShyKXtpZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrcik7cmV0dXJuIHMucHVzaChyKSxlfX1mdW5jdGlvbiBnOHQocyxlKXtsZXQgdDtyZXR1cm4gYTtmdW5jdGlvbiBhKC4uLm8pe2xldCBsPXMubGVuZ3RoPm8ubGVuZ3RoLHA7bCYmby5wdXNoKHIpO3RyeXtwPXMuYXBwbHkodGhpcyxvKX1jYXRjaChkKXtsZXQgdT1kO2lmKGwmJnQpdGhyb3cgdTtyZXR1cm4gcih1KX1sfHwocCYmcC50aGVuJiZ0eXBlb2YgcC50aGVuPT0iZnVuY3Rpb24iP3AudGhlbihuLHIpOnAgaW5zdGFuY2VvZiBFcnJvcj9yKHApOm4ocCkpfWZ1bmN0aW9uIHIobywuLi5sKXt0fHwodD0hMCxlKG8sLi4ubCkpfWZ1bmN0aW9uIG4obyl7cihudWxsLG8pfX12YXIgYjh0PWcoKCk9PntpKEgzZSwidHJvdWdoIik7aShnOHQsIndyYXAiKX0pO3ZhciB2OHQ9ZygoKT0+e2I4dCgpfSk7ZnVuY3Rpb24gR3Aocyl7cmV0dXJuIXN8fHR5cGVvZiBzIT0ib2JqZWN0Ij8iIjoicG9zaXRpb24iaW4gc3x8InR5cGUiaW4gcz94OHQocy5wb3NpdGlvbik6InN0YXJ0ImluIHN8fCJlbmQiaW4gcz94OHQocyk6ImxpbmUiaW4gc3x8ImNvbHVtbiJpbiBzP3EzZShzKToiIn1mdW5jdGlvbiBxM2Uocyl7cmV0dXJuIHk4dChzJiZzLmxpbmUpKyI6Iit5OHQocyYmcy5jb2x1bW4pfWZ1bmN0aW9uIHg4dChzKXtyZXR1cm4gcTNlKHMmJnMuc3RhcnQpKyItIitxM2UocyYmcy5lbmQpfWZ1bmN0aW9uIHk4dChzKXtyZXR1cm4gcyYmdHlwZW9mIHM9PSJudW1iZXIiP3M6MX12YXIgdzh0PWcoKCk9PntpKEdwLCJzdHJpbmdpZnlQb3NpdGlvbiIpO2kocTNlLCJwb2ludCIpO2koeDh0LCJwb3NpdGlvbiIpO2koeTh0LCJpbmRleCIpfSk7dmFyIGozZT1nKCgpPT57dzh0KCl9KTt2YXIgY28sazh0PWcoKCk9PntqM2UoKTtjbz1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tpKHRoaXMsIlZGaWxlTWVzc2FnZSIpfWNvbnN0cnVjdG9yKGUsdCxhKXtzdXBlcigpLHR5cGVvZiB0PT0ic3RyaW5nIiYmKGE9dCx0PXZvaWQgMCk7bGV0IHI9IiIsbj17fSxvPSExO2lmKHQmJigibGluZSJpbiB0JiYiY29sdW1uImluIHQ/bj17cGxhY2U6dH06InN0YXJ0ImluIHQmJiJlbmQiaW4gdD9uPXtwbGFjZTp0fToidHlwZSJpbiB0P249e2FuY2VzdG9yczpbdF0scGxhY2U6dC5wb3NpdGlvbn06bj17Li4udH0pLHR5cGVvZiBlPT0ic3RyaW5nIj9yPWU6IW4uY2F1c2UmJmUmJihvPSEwLHI9ZS5tZXNzYWdlLG4uY2F1c2U9ZSksIW4ucnVsZUlkJiYhbi5zb3VyY2UmJnR5cGVvZiBhPT0ic3RyaW5nIil7bGV0IHA9YS5pbmRleE9mKCI6Iik7cD09PS0xP24ucnVsZUlkPWE6KG4uc291cmNlPWEuc2xpY2UoMCxwKSxuLnJ1bGVJZD1hLnNsaWNlKHArMSkpfWlmKCFuLnBsYWNlJiZuLmFuY2VzdG9ycyYmbi5hbmNlc3RvcnMpe2xldCBwPW4uYW5jZXN0b3JzW24uYW5jZXN0b3JzLmxlbmd0aC0xXTtwJiYobi5wbGFjZT1wLnBvc2l0aW9uKX1sZXQgbD1uLnBsYWNlJiYic3RhcnQiaW4gbi5wbGFjZT9uLnBsYWNlLnN0YXJ0Om4ucGxhY2U7dGhpcy5hbmNlc3RvcnM9bi5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW4uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1sP2wuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPXIsdGhpcy5saW5lPWw/bC5saW5lOnZvaWQgMCx0aGlzLm5hbWU9R3Aobi5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9bi5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1uLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW4uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1vJiZuLmNhdXNlJiZ0eXBlb2Ygbi5jYXVzZS5zdGFjaz09InN0cmluZyI/bi5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtjby5wcm90b3R5cGUuZmlsZT0iIixjby5wcm90b3R5cGUubmFtZT0iIixjby5wcm90b3R5cGUucmVhc29uPSIiLGNvLnByb3RvdHlwZS5tZXNzYWdlPSIiLGNvLnByb3RvdHlwZS5zdGFjaz0iIixjby5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxjby5wcm90b3R5cGUubGluZT12b2lkIDAsY28ucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsY28ucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxjby5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLGNvLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsY28ucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsY28ucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgUzh0PWcoKCk9PntrOHQoKX0pO2Z1bmN0aW9uIFFBYShzLGUpe2lmKGUhPT12b2lkIDAmJnR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7c2socyk7bGV0IHQ9MCxhPS0xLHI9cy5sZW5ndGgsbjtpZihlPT09dm9pZCAwfHxlLmxlbmd0aD09PTB8fGUubGVuZ3RoPnMubGVuZ3RoKXtmb3IoO3ItLTspaWYocy5jb2RlUG9pbnRBdChyKT09PTQ3KXtpZihuKXt0PXIrMTticmVha319ZWxzZSBhPDAmJihuPSEwLGE9cisxKTtyZXR1cm4gYTwwPyIiOnMuc2xpY2UodCxhKX1pZihlPT09cylyZXR1cm4iIjtsZXQgbz0tMSxsPWUubGVuZ3RoLTE7Zm9yKDtyLS07KWlmKHMuY29kZVBvaW50QXQocik9PT00Nyl7aWYobil7dD1yKzE7YnJlYWt9fWVsc2UgbzwwJiYobj0hMCxvPXIrMSksbD4tMSYmKHMuY29kZVBvaW50QXQocik9PT1lLmNvZGVQb2ludEF0KGwtLSk/bDwwJiYoYT1yKToobD0tMSxhPW8pKTtyZXR1cm4gdD09PWE/YT1vOmE8MCYmKGE9cy5sZW5ndGgpLHMuc2xpY2UodCxhKX1mdW5jdGlvbiBKQWEocyl7aWYoc2socykscy5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgZT0tMSx0PXMubGVuZ3RoLGE7Zm9yKDstLXQ7KWlmKHMuY29kZVBvaW50QXQodCk9PT00Nyl7aWYoYSl7ZT10O2JyZWFrfX1lbHNlIGF8fChhPSEwKTtyZXR1cm4gZTwwP3MuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOmU9PT0xJiZzLmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjpzLnNsaWNlKDAsZSl9ZnVuY3Rpb24gZU5hKHMpe3NrKHMpO2xldCBlPXMubGVuZ3RoLHQ9LTEsYT0wLHI9LTEsbj0wLG87Zm9yKDtlLS07KXtsZXQgbD1zLmNvZGVQb2ludEF0KGUpO2lmKGw9PT00Nyl7aWYobyl7YT1lKzE7YnJlYWt9Y29udGludWV9dDwwJiYobz0hMCx0PWUrMSksbD09PTQ2P3I8MD9yPWU6biE9PTEmJihuPTEpOnI+LTEmJihuPS0xKX1yZXR1cm4gcjwwfHx0PDB8fG49PT0wfHxuPT09MSYmcj09PXQtMSYmcj09PWErMT8iIjpzLnNsaWNlKHIsdCl9ZnVuY3Rpb24gdE5hKC4uLnMpe2xldCBlPS0xLHQ7Zm9yKDsrK2U8cy5sZW5ndGg7KXNrKHNbZV0pLHNbZV0mJih0PXQ9PT12b2lkIDA/c1tlXTp0KyIvIitzW2VdKTtyZXR1cm4gdD09PXZvaWQgMD8iLiI6YU5hKHQpfWZ1bmN0aW9uIGFOYShzKXtzayhzKTtsZXQgZT1zLmNvZGVQb2ludEF0KDApPT09NDcsdD1zTmEocywhZSk7cmV0dXJuIHQubGVuZ3RoPT09MCYmIWUmJih0PSIuIiksdC5sZW5ndGg+MCYmcy5jb2RlUG9pbnRBdChzLmxlbmd0aC0xKT09PTQ3JiYodCs9Ii8iKSxlPyIvIit0OnR9ZnVuY3Rpb24gc05hKHMsZSl7bGV0IHQ9IiIsYT0wLHI9LTEsbj0wLG89LTEsbCxwO2Zvcig7KytvPD1zLmxlbmd0aDspe2lmKG88cy5sZW5ndGgpbD1zLmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYobD09PTQ3KWJyZWFrO2w9NDd9aWYobD09PTQ3KXtpZighKHI9PT1vLTF8fG49PT0xKSlpZihyIT09by0xJiZuPT09Mil7aWYodC5sZW5ndGg8Mnx8YSE9PTJ8fHQuY29kZVBvaW50QXQodC5sZW5ndGgtMSkhPT00Nnx8dC5jb2RlUG9pbnRBdCh0Lmxlbmd0aC0yKSE9PTQ2KXtpZih0Lmxlbmd0aD4yKXtpZihwPXQubGFzdEluZGV4T2YoIi8iKSxwIT09dC5sZW5ndGgtMSl7cDwwPyh0PSIiLGE9MCk6KHQ9dC5zbGljZSgwLHApLGE9dC5sZW5ndGgtMS10Lmxhc3RJbmRleE9mKCIvIikpLHI9byxuPTA7Y29udGludWV9fWVsc2UgaWYodC5sZW5ndGg+MCl7dD0iIixhPTAscj1vLG49MDtjb250aW51ZX19ZSYmKHQ9dC5sZW5ndGg+MD90KyIvLi4iOiIuLiIsYT0yKX1lbHNlIHQubGVuZ3RoPjA/dCs9Ii8iK3Muc2xpY2UocisxLG8pOnQ9cy5zbGljZShyKzEsbyksYT1vLXItMTtyPW8sbj0wfWVsc2UgbD09PTQ2JiZuPi0xP24rKzpuPS0xfXJldHVybiB0fWZ1bmN0aW9uIHNrKHMpe2lmKHR5cGVvZiBzIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkocykpfXZhciBBMSxfOHQ9ZygoKT0+e0ExPXtiYXNlbmFtZTpRQWEsZGlybmFtZTpKQWEsZXh0bmFtZTplTmEsam9pbjp0TmEsc2VwOiIvIn07aShRQWEsImJhc2VuYW1lIik7aShKQWEsImRpcm5hbWUiKTtpKGVOYSwiZXh0bmFtZSIpO2kodE5hLCJqb2luIik7aShhTmEsIm5vcm1hbGl6ZSIpO2koc05hLCJub3JtYWxpemVTdHJpbmciKTtpKHNrLCJhc3NlcnRQYXRoIil9KTtmdW5jdGlvbiBpTmEoKXtyZXR1cm4iLyJ9dmFyIE04dCx6OHQ9ZygoKT0+e004dD17Y3dkOmlOYX07aShpTmEsImN3ZCIpfSk7ZnVuY3Rpb24gVzkocyl7cmV0dXJuISEocyE9PW51bGwmJnR5cGVvZiBzPT0ib2JqZWN0IiYmImhyZWYiaW4gcyYmcy5ocmVmJiYicHJvdG9jb2wiaW4gcyYmcy5wcm90b2NvbCYmcy5hdXRoPT09dm9pZCAwKX12YXIgVjNlPWcoKCk9PntpKFc5LCJpc1VybCIpfSk7ZnVuY3Rpb24gQzh0KHMpe2lmKHR5cGVvZiBzPT0ic3RyaW5nIilzPW5ldyBVUkwocyk7ZWxzZSBpZighVzkocykpe2xldCBlPW5ldyBUeXBlRXJyb3IoJ1RoZSAicGF0aCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnK3MrImAiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX0FSR19UWVBFIixlfWlmKHMucHJvdG9jb2whPT0iZmlsZToiKXtsZXQgZT1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLGV9cmV0dXJuIHJOYShzKX1mdW5jdGlvbiByTmEocyl7aWYocy5ob3N0bmFtZSE9PSIiKXtsZXQgYT1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgYS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixhfWxldCBlPXMucGF0aG5hbWUsdD0tMTtmb3IoOysrdDxlLmxlbmd0aDspaWYoZS5jb2RlUG9pbnRBdCh0KT09PTM3JiZlLmNvZGVQb2ludEF0KHQrMSk9PT01MCl7bGV0IGE9ZS5jb2RlUG9pbnRBdCh0KzIpO2lmKGE9PT03MHx8YT09PTEwMil7bGV0IHI9bmV3IFR5cGVFcnJvcigiRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzIik7dGhyb3cgci5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIIixyfX1yZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGUpfXZhciBUOHQ9ZygoKT0+e1YzZSgpO1YzZSgpO2koQzh0LCJ1cmxUb1BhdGgiKTtpKHJOYSwiZ2V0UGF0aEZyb21VUkxQb3NpeCIpfSk7ZnVuY3Rpb24gVzNlKHMsZSl7aWYocyYmcy5pbmNsdWRlcyhBMS5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrZSsiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIitBMS5zZXArImAiKX1mdW5jdGlvbiBHM2UocyxlKXtpZighcyl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGVtcHR5Iil9ZnVuY3Rpb24gJDh0KHMsZSl7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nIGAiK2UrImAgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28iKX1mdW5jdGlvbiBvTmEocyl7cmV0dXJuISEocyYmdHlwZW9mIHM9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBzJiYiYnl0ZU9mZnNldCJpbiBzKX12YXIgVTNlLGlrLEQ4dD1nKCgpPT57Uzh0KCk7Xzh0KCk7ejh0KCk7VDh0KCk7VTNlPVsiaGlzdG9yeSIsInBhdGgiLCJiYXNlbmFtZSIsInN0ZW0iLCJleHRuYW1lIiwiZGlybmFtZSJdLGlrPWNsYXNze3N0YXRpY3tpKHRoaXMsIlZGaWxlIil9Y29uc3RydWN0b3IoZSl7bGV0IHQ7ZT9XOShlKT90PXtwYXRoOmV9OnR5cGVvZiBlPT0ic3RyaW5nInx8b05hKGUpP3Q9e3ZhbHVlOmV9OnQ9ZTp0PXt9LHRoaXMuY3dkPSJjd2QiaW4gdD8iIjpNOHQuY3dkKCksdGhpcy5kYXRhPXt9LHRoaXMuaGlzdG9yeT1bXSx0aGlzLm1lc3NhZ2VzPVtdLHRoaXMudmFsdWUsdGhpcy5tYXAsdGhpcy5yZXN1bHQsdGhpcy5zdG9yZWQ7bGV0IGE9LTE7Zm9yKDsrK2E8VTNlLmxlbmd0aDspe2xldCBuPVUzZVthXTtuIGluIHQmJnRbbl0hPT12b2lkIDAmJnRbbl0hPT1udWxsJiYodGhpc1tuXT1uPT09Imhpc3RvcnkiP1suLi50W25dXTp0W25dKX1sZXQgcjtmb3IociBpbiB0KVUzZS5pbmNsdWRlcyhyKXx8KHRoaXNbcl09dFtyXSl9Z2V0IGJhc2VuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0ExLmJhc2VuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBiYXNlbmFtZShlKXtHM2UoZSwiYmFzZW5hbWUiKSxXM2UoZSwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9QTEuam9pbih0aGlzLmRpcm5hbWV8fCIiLGUpfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0ExLmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUoZSl7JDh0KHRoaXMuYmFzZW5hbWUsImRpcm5hbWUiKSx0aGlzLnBhdGg9QTEuam9pbihlfHwiIix0aGlzLmJhc2VuYW1lKX1nZXQgZXh0bmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9BMS5leHRuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBleHRuYW1lKGUpe2lmKFczZShlLCJleHRuYW1lIiksJDh0KHRoaXMuZGlybmFtZSwiZXh0bmFtZSIpLGUpe2lmKGUuY29kZVBvaW50QXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gIik7aWYoZS5pbmNsdWRlcygiLiIsMSkpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cyIpfXRoaXMucGF0aD1BMS5qb2luKHRoaXMuZGlybmFtZSx0aGlzLnN0ZW0rKGV8fCIiKSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV19c2V0IHBhdGgoZSl7VzkoZSkmJihlPUM4dChlKSksRzNlKGUsInBhdGgiKSx0aGlzLnBhdGghPT1lJiZ0aGlzLmhpc3RvcnkucHVzaChlKX1nZXQgc3RlbSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9BMS5iYXNlbmFtZSh0aGlzLnBhdGgsdGhpcy5leHRuYW1lKTp2b2lkIDB9c2V0IHN0ZW0oZSl7RzNlKGUsInN0ZW0iKSxXM2UoZSwic3RlbSIpLHRoaXMucGF0aD1BMS5qb2luKHRoaXMuZGlybmFtZXx8IiIsZSsodGhpcy5leHRuYW1lfHwiIikpfWZhaWwoZSx0LGEpe2xldCByPXRoaXMubWVzc2FnZShlLHQsYSk7dGhyb3cgci5mYXRhbD0hMCxyfWluZm8oZSx0LGEpe2xldCByPXRoaXMubWVzc2FnZShlLHQsYSk7cmV0dXJuIHIuZmF0YWw9dm9pZCAwLHJ9bWVzc2FnZShlLHQsYSl7bGV0IHI9bmV3IGNvKGUsdCxhKTtyZXR1cm4gdGhpcy5wYXRoJiYoci5uYW1lPXRoaXMucGF0aCsiOiIrci5uYW1lLHIuZmlsZT10aGlzLnBhdGgpLHIuZmF0YWw9ITEsdGhpcy5tZXNzYWdlcy5wdXNoKHIpLHJ9dG9TdHJpbmcoZSl7cmV0dXJuIHRoaXMudmFsdWU9PT12b2lkIDA/IiI6dHlwZW9mIHRoaXMudmFsdWU9PSJzdHJpbmciP3RoaXMudmFsdWU6bmV3IFRleHREZWNvZGVyKGV8fHZvaWQgMCkuZGVjb2RlKHRoaXMudmFsdWUpfX07aShXM2UsImFzc2VydFBhcnQiKTtpKEczZSwiYXNzZXJ0Tm9uRW1wdHkiKTtpKCQ4dCwiYXNzZXJ0UGF0aCIpO2kob05hLCJpc1VpbnQ4QXJyYXkiKX0pO3ZhciBMOHQ9ZygoKT0+e0Q4dCgpfSk7dmFyIEU4dCxQOHQ9ZygoKT0+e0U4dD1pKChmdW5jdGlvbihzKXtsZXQgYT10aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxyPWFbc10sbj1pKGZ1bmN0aW9uKCl7cmV0dXJuIHIuYXBwbHkobixhcmd1bWVudHMpfSwiYXBwbHkiKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG4sYSksbn0pLCJDYWxsYWJsZUluc3RhbmNlIil9KTtmdW5jdGlvbiBZM2UocyxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrcysiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24gWjNlKHMsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK3MrImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gWDNlKHMsZSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK3MrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiBJOHQocyl7aWYoIWFrKHMpfHx0eXBlb2Ygcy50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrcysiYCIpfWZ1bmN0aW9uIEE4dChzLGUsdCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJgIitzKyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrZSsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gUXNlKHMpe3JldHVybiBsTmEocyk/czpuZXcgaWsocyl9ZnVuY3Rpb24gbE5hKHMpe3JldHVybiEhKHMmJnR5cGVvZiBzPT0ib2JqZWN0IiYmIm1lc3NhZ2UiaW4gcyYmIm1lc3NhZ2VzImluIHMpfWZ1bmN0aW9uIGNOYShzKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmcifHxkTmEocyl9ZnVuY3Rpb24gZE5hKHMpe3JldHVybiEhKHMmJnR5cGVvZiBzPT0ib2JqZWN0IiYmImJ5dGVMZW5ndGgiaW4gcyYmImJ5dGVPZmZzZXQiaW4gcyl9dmFyIEpzZSxuTmEsSzNlLHJrLE44dD1nKCgpPT57cjh0KCk7SnNlPXhuKGY4dCgpLDEpO1dwKCk7bTh0KCk7djh0KCk7TDh0KCk7UDh0KCk7bk5hPXt9Lmhhc093blByb3BlcnR5LEszZT1jbGFzcyBzIGV4dGVuZHMgRTh0e3N0YXRpY3tpKHRoaXMsIlByb2Nlc3NvciIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPUgzZSgpfWNvcHkoKXtsZXQgZT1uZXcgcyx0PS0xO2Zvcig7Kyt0PHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCBhPXRoaXMuYXR0YWNoZXJzW3RdO2UudXNlKC4uLmEpfXJldHVybiBlLmRhdGEoKDAsSnNlLmRlZmF1bHQpKCEwLHt9LHRoaXMubmFtZXNwYWNlKSksZX1kYXRhKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9hcmd1bWVudHMubGVuZ3RoPT09Mj8oWDNlKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2VbZV09dCx0aGlzKTpuTmEuY2FsbCh0aGlzLm5hbWVzcGFjZSxlKSYmdGhpcy5uYW1lc3BhY2VbZV18fHZvaWQgMDplPyhYM2UoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZT1lLHRoaXMpOnRoaXMubmFtZXNwYWNlfWZyZWV6ZSgpe2lmKHRoaXMuZnJvemVuKXJldHVybiB0aGlzO2xldCBlPXRoaXM7Zm9yKDsrK3RoaXMuZnJlZXplSW5kZXg8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0W3QsLi4uYV09dGhpcy5hdHRhY2hlcnNbdGhpcy5mcmVlemVJbmRleF07aWYoYVswXT09PSExKWNvbnRpbnVlO2FbMF09PT0hMCYmKGFbMF09dm9pZCAwKTtsZXQgcj10LmNhbGwoZSwuLi5hKTt0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmdGhpcy50cmFuc2Zvcm1lcnMudXNlKHIpfXJldHVybiB0aGlzLmZyb3plbj0hMCx0aGlzLmZyZWV6ZUluZGV4PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0aGlzfXBhcnNlKGUpe3RoaXMuZnJlZXplKCk7bGV0IHQ9UXNlKGUpLGE9dGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyO3JldHVybiBZM2UoInBhcnNlIixhKSxhKFN0cmluZyh0KSx0KX1wcm9jZXNzKGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gdGhpcy5mcmVlemUoKSxZM2UoInByb2Nlc3MiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksWjNlKCJwcm9jZXNzIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSx0P3Iodm9pZCAwLHQpOm5ldyBQcm9taXNlKHIpO2Z1bmN0aW9uIHIobixvKXtsZXQgbD1Rc2UoZSkscD1hLnBhcnNlKGwpO2EucnVuKHAsbCxmdW5jdGlvbih1LGMsYil7aWYodXx8IWN8fCFiKXJldHVybiBkKHUpO2xldCB2PWMseD1hLnN0cmluZ2lmeSh2LGIpO2NOYSh4KT9iLnZhbHVlPXg6Yi5yZXN1bHQ9eCxkKHUsYil9KTtmdW5jdGlvbiBkKHUsYyl7dXx8IWM/byh1KTpuP24oYyk6dCh2b2lkIDAsYyl9aShkLCJyZWFsRG9uZSIpfWkociwiZXhlY3V0b3IiKX1wcm9jZXNzU3luYyhlKXtsZXQgdD0hMSxhO3JldHVybiB0aGlzLmZyZWV6ZSgpLFkzZSgicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksWjNlKCJwcm9jZXNzU3luYyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdGhpcy5wcm9jZXNzKGUsciksQTh0KCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLHQpLGE7ZnVuY3Rpb24gcihuLG8pe3Q9ITAsQjNlKG4pLGE9b31pKHIsInJlYWxEb25lIil9cnVuKGUsdCxhKXtJOHQoZSksdGhpcy5mcmVlemUoKTtsZXQgcj10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4hYSYmdHlwZW9mIHQ9PSJmdW5jdGlvbiImJihhPXQsdD12b2lkIDApLGE/bih2b2lkIDAsYSk6bmV3IFByb21pc2Uobik7ZnVuY3Rpb24gbihvLGwpe2xldCBwPVFzZSh0KTtyLnJ1bihlLHAsZCk7ZnVuY3Rpb24gZCh1LGMsYil7bGV0IHY9Y3x8ZTt1P2wodSk6bz9vKHYpOmEodm9pZCAwLHYsYil9aShkLCJyZWFsRG9uZSIpfWkobiwiZXhlY3V0b3IiKX1ydW5TeW5jKGUsdCl7bGV0IGE9ITEscjtyZXR1cm4gdGhpcy5ydW4oZSx0LG4pLEE4dCgicnVuU3luYyIsInJ1biIsYSkscjtmdW5jdGlvbiBuKG8sbCl7QjNlKG8pLHI9bCxhPSEwfWkobiwicmVhbERvbmUiKX1zdHJpbmdpZnkoZSx0KXt0aGlzLmZyZWV6ZSgpO2xldCBhPVFzZSh0KSxyPXRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXI7cmV0dXJuIFozZSgic3RyaW5naWZ5IixyKSxJOHQoZSkscihlLGEpfXVzZShlLC4uLnQpe2xldCBhPXRoaXMuYXR0YWNoZXJzLHI9dGhpcy5uYW1lc3BhY2U7aWYoWDNlKCJ1c2UiLHRoaXMuZnJvemVuKSxlIT1udWxsKWlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXAoZSx0KTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilBcnJheS5pc0FycmF5KGUpP2woZSk6byhlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2UrImAiKTtyZXR1cm4gdGhpcztmdW5jdGlvbiBuKGQpe2lmKHR5cGVvZiBkPT0iZnVuY3Rpb24iKXAoZCxbXSk7ZWxzZSBpZih0eXBlb2YgZD09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShkKSl7bGV0W3UsLi4uY109ZDtwKHUsYyl9ZWxzZSBvKGQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrZCsiYCIpfWZ1bmN0aW9uIG8oZCl7aWYoISgicGx1Z2lucyJpbiBkKSYmISgic2V0dGluZ3MiaW4gZCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUgYnV0IHJlY2VpdmVkIGFuIGVtcHR5IHByZXNldCwgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlOiBwcmVzZXRzIHR5cGljYWxseSBjb21lIHdpdGggYHBsdWdpbnNgIGFuZCBzb21ldGltZXMgd2l0aCBgc2V0dGluZ3NgLCBidXQgdGhpcyBoYXMgbmVpdGhlciIpO2woZC5wbHVnaW5zKSxkLnNldHRpbmdzJiYoci5zZXR0aW5ncz0oMCxKc2UuZGVmYXVsdCkoITAsci5zZXR0aW5ncyxkLnNldHRpbmdzKSl9ZnVuY3Rpb24gbChkKXtsZXQgdT0tMTtpZihkIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoZCkpZm9yKDsrK3U8ZC5sZW5ndGg7KXtsZXQgYz1kW3VdO24oYyl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2QrImAiKX1mdW5jdGlvbiBwKGQsdSl7bGV0IGM9LTEsYj0tMTtmb3IoOysrYzxhLmxlbmd0aDspaWYoYVtjXVswXT09PWQpe2I9YzticmVha31pZihiPT09LTEpYS5wdXNoKFtkLC4uLnVdKTtlbHNlIGlmKHUubGVuZ3RoPjApe2xldFt2LC4uLnhdPXUsbT1hW2JdWzFdO2FrKG0pJiZhayh2KSYmKHY9KDAsSnNlLmRlZmF1bHQpKCEwLG0sdikpLGFbYl09W2QsdiwuLi54XX19fX0scms9bmV3IEszZSgpLmZyZWV6ZSgpO2koWTNlLCJhc3NlcnRQYXJzZXIiKTtpKFozZSwiYXNzZXJ0Q29tcGlsZXIiKTtpKFgzZSwiYXNzZXJ0VW5mcm96ZW4iKTtpKEk4dCwiYXNzZXJ0Tm9kZSIpO2koQTh0LCJhc3NlcnREb25lIik7aShRc2UsInZmaWxlIik7aShsTmEsImxvb2tzTGlrZUFWRmlsZSIpO2koY05hLCJsb29rc0xpa2VBVmFsdWUiKTtpKGROYSwiaXNVaW50OEFycmF5Iil9KTt2YXIgUjh0PWcoKCk9PntOOHQoKX0pO2Z1bmN0aW9uIEs5KHMsZSl7bGV0IHQ9U3RyaW5nKHMpO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBjaGFyYWN0ZXIiKTtsZXQgYT0wLHI9dC5pbmRleE9mKGUpO2Zvcig7ciE9PS0xOylhKysscj10LmluZGV4T2YoZSxyK2UubGVuZ3RoKTtyZXR1cm4gYX12YXIgUTNlPWcoKCk9PntpKEs5LCJjY291bnQiKX0pO2Z1bmN0aW9uIFMzKHMpe3JldHVybiBzIT09bnVsbCYmKHM8MzJ8fHM9PT0xMjcpfWZ1bmN0aW9uIHZ0KHMpe3JldHVybiBzIT09bnVsbCYmczwtMn1mdW5jdGlvbiBBYShzKXtyZXR1cm4gcyE9PW51bGwmJihzPDB8fHM9PT0zMil9ZnVuY3Rpb24gSHQocyl7cmV0dXJuIHM9PT0tMnx8cz09PS0xfHxzPT09MzJ9ZnVuY3Rpb24gS3Aocyl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCE9PW51bGwmJnQ+LTEmJnMudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKX19dmFyIFVyLEJpLE84dCxvayxGOHQsQjh0LF8zLGdkLFZhPWcoKCk9PntVcj1LcCgvW0EtWmEtel0vKSxCaT1LcCgvW1xkQS1aYS16XS8pLE84dD1LcCgvWyMtJyorXC0tOT0/QS1aXi1+XS8pO2koUzMsImFzY2lpQ29udHJvbCIpO29rPUtwKC9cZC8pLEY4dD1LcCgvW1xkQS1GYS1mXS8pLEI4dD1LcCgvWyEtLzotQFstYHstfl0vKTtpKHZ0LCJtYXJrZG93bkxpbmVFbmRpbmciKTtpKEFhLCJtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIik7aShIdCwibWFya2Rvd25TcGFjZSIpO18zPUtwKC9ccHtQfXxccHtTfS91KSxnZD1LcCgvXHMvKTtpKEtwLCJyZWdleENoZWNrIil9KTtmdW5jdGlvbiB1TmEocyl7bGV0IGU9W10sdD0tMTtmb3IoOysrdDxzLmxlbmd0aDspZVt0XT1EMChzW3RdKTtyZXR1cm4gZWllKGEpO2Z1bmN0aW9uIGEoLi4ucil7bGV0IG49LTE7Zm9yKDsrK248ZS5sZW5ndGg7KWlmKGVbbl0uYXBwbHkodGhpcyxyKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gcE5hKHMpe2xldCBlPXM7cmV0dXJuIGVpZSh0KTtmdW5jdGlvbiB0KGEpe2xldCByPWEsbjtmb3IobiBpbiBzKWlmKHJbbl0hPT1lW25dKXJldHVybiExO3JldHVybiEwfX1mdW5jdGlvbiBoTmEocyl7cmV0dXJuIGVpZShlKTtmdW5jdGlvbiBlKHQpe3JldHVybiB0JiZ0LnR5cGU9PT1zfX1mdW5jdGlvbiBlaWUocyl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0LGEscil7cmV0dXJuISEoSDh0KHQpJiZzLmNhbGwodGhpcyx0LHR5cGVvZiBhPT0ibnVtYmVyIj9hOnZvaWQgMCxyfHx2b2lkIDApKX19ZnVuY3Rpb24gZk5hKCl7cmV0dXJuITB9ZnVuY3Rpb24gSDh0KHMpe3JldHVybiBzIT09bnVsbCYmdHlwZW9mIHM9PSJvYmplY3QiJiYidHlwZSJpbiBzfXZhciBxOHQsRDAsajh0PWcoKCk9PntxOHQ9aSgoZnVuY3Rpb24ocyxlLHQsYSxyKXtsZXQgbj1EMChlKTtpZih0IT1udWxsJiYodHlwZW9mIHQhPSJudW1iZXIifHx0PDB8fHQ9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4Iik7aWYoYSE9bnVsbCYmKCFxOHQoYSl8fCFhLmNoaWxkcmVuKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBhcmVudCBub2RlIik7aWYoYT09bnVsbCE9KHQ9PW51bGwpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4Iik7cmV0dXJuIEg4dChzKT9uLmNhbGwocixzLHQsYSk6ITF9KSwiaXMiKSxEMD1pKChmdW5jdGlvbihzKXtpZihzPT1udWxsKXJldHVybiBmTmE7aWYodHlwZW9mIHM9PSJmdW5jdGlvbiIpcmV0dXJuIGVpZShzKTtpZih0eXBlb2Ygcz09Im9iamVjdCIpcmV0dXJuIEFycmF5LmlzQXJyYXkocyk/dU5hKHMpOnBOYShzKTtpZih0eXBlb2Ygcz09InN0cmluZyIpcmV0dXJuIGhOYShzKTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0Iil9KSwiY29udmVydCIpO2kodU5hLCJhbnlGYWN0b3J5Iik7aShwTmEsInByb3BlcnRpZXNGYWN0b3J5Iik7aShoTmEsInR5cGVGYWN0b3J5Iik7aShlaWUsImNhc3RGYWN0b3J5Iik7aShmTmEsIm9rIik7aShIOHQsImxvb2tzTGlrZUFOb2RlIil9KTt2YXIgdGllPWcoKCk9PntqOHQoKX0pO3ZhciBWOHQ9ZygoKT0+e30pO2Z1bmN0aW9uIG5rKHMsZSx0LGEpe2xldCByO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIj8oYT10LHQ9ZSk6cj1lO2xldCBuPUQwKHIpLG89YT8tMToxO2wocyx2b2lkIDAsW10pKCk7ZnVuY3Rpb24gbChwLGQsdSl7bGV0IGM9cCYmdHlwZW9mIHA9PSJvYmplY3QiP3A6e307aWYodHlwZW9mIGMudHlwZT09InN0cmluZyIpe2xldCB2PXR5cGVvZiBjLnRhZ05hbWU9PSJzdHJpbmciP2MudGFnTmFtZTp0eXBlb2YgYy5uYW1lPT0ic3RyaW5nIj9jLm5hbWU6dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJuYW1lIix7dmFsdWU6Im5vZGUgKCIrKHAudHlwZSsodj8iPCIrdisiPiI6IiIpKSsiKSJ9KX1yZXR1cm4gYjtmdW5jdGlvbiBiKCl7bGV0IHY9VTh0LHgsbSxmO2lmKCghZXx8bihwLGQsdVt1Lmxlbmd0aC0xXXx8dm9pZCAwKSkmJih2PW1OYSh0KHAsdSkpLHZbMF09PT1NMykpcmV0dXJuIHY7aWYoImNoaWxkcmVuImluIHAmJnAuY2hpbGRyZW4pe2xldCB5PXA7aWYoeS5jaGlsZHJlbiYmdlswXSE9PXNpZSlmb3IobT0oYT95LmNoaWxkcmVuLmxlbmd0aDotMSkrbyxmPXUuY29uY2F0KHkpO20+LTEmJm08eS5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgTT15LmNoaWxkcmVuW21dO2lmKHg9bChNLG0sZikoKSx4WzBdPT09TTMpcmV0dXJuIHg7bT10eXBlb2YgeFsxXT09Im51bWJlciI/eFsxXTptK299fXJldHVybiB2fX1pKGwsImZhY3RvcnkiKX1mdW5jdGlvbiBtTmEocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/czp0eXBlb2Ygcz09Im51bWJlciI/W2FpZSxzXTpzPT1udWxsP1U4dDpbc119dmFyIFU4dCxhaWUsTTMsc2llLFc4dD1nKCgpPT57dGllKCk7Vjh0KCk7VTh0PVtdLGFpZT0hMCxNMz0hMSxzaWU9InNraXAiO2kobmssInZpc2l0UGFyZW50cyIpO2kobU5hLCJ0b1Jlc3VsdCIpfSk7dmFyIGlpZT1nKCgpPT57Vzh0KCl9KTtmdW5jdGlvbiBKM2UocyxlLHQpe2xldCByPUQwKCh0fHx7fSkuaWdub3JlfHxbXSksbj1nTmEoZSksbz0tMTtmb3IoOysrbzxuLmxlbmd0aDspbmsocywidGV4dCIsbCk7ZnVuY3Rpb24gbChkLHUpe2xldCBjPS0xLGI7Zm9yKDsrK2M8dS5sZW5ndGg7KXtsZXQgdj11W2NdLHg9Yj9iLmNoaWxkcmVuOnZvaWQgMDtpZihyKHYseD94LmluZGV4T2Yodik6dm9pZCAwLGIpKXJldHVybjtiPXZ9aWYoYilyZXR1cm4gcChkLHUpfWkobCwidmlzaXRvciIpO2Z1bmN0aW9uIHAoZCx1KXtsZXQgYz11W3UubGVuZ3RoLTFdLGI9bltvXVswXSx2PW5bb11bMV0seD0wLGY9Yy5jaGlsZHJlbi5pbmRleE9mKGQpLHk9ITEsTT1bXTtiLmxhc3RJbmRleD0wO2xldCB6PWIuZXhlYyhkLnZhbHVlKTtmb3IoO3o7KXtsZXQgTj16LmluZGV4LEM9e2luZGV4OnouaW5kZXgsaW5wdXQ6ei5pbnB1dCxzdGFjazpbLi4udSxkXX0sXz12KC4uLnosQyk7aWYodHlwZW9mIF89PSJzdHJpbmciJiYoXz1fLmxlbmd0aD4wP3t0eXBlOiJ0ZXh0Iix2YWx1ZTpffTp2b2lkIDApLF89PT0hMT9iLmxhc3RJbmRleD1OKzE6KHghPT1OJiZNLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmQudmFsdWUuc2xpY2UoeCxOKX0pLEFycmF5LmlzQXJyYXkoXyk/TS5wdXNoKC4uLl8pOl8mJk0ucHVzaChfKSx4PU4relswXS5sZW5ndGgseT0hMCksIWIuZ2xvYmFsKWJyZWFrO3o9Yi5leGVjKGQudmFsdWUpfXJldHVybiB5Pyh4PGQudmFsdWUubGVuZ3RoJiZNLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmQudmFsdWUuc2xpY2UoeCl9KSxjLmNoaWxkcmVuLnNwbGljZShmLDEsLi4uTSkpOk09W2RdLGYrTS5sZW5ndGh9aShwLCJoYW5kbGVyIil9ZnVuY3Rpb24gZ05hKHMpe2xldCBlPVtdO2lmKCFBcnJheS5pc0FycmF5KHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZpbmQgYW5kIHJlcGxhY2UgdHVwbGUgb3IgbGlzdCBvZiB0dXBsZXMiKTtsZXQgdD0hc1swXXx8QXJyYXkuaXNBcnJheShzWzBdKT9zOltzXSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOyl7bGV0IHI9dFthXTtlLnB1c2goW2JOYShyWzBdKSx2TmEoclsxXSldKX1yZXR1cm4gZX1mdW5jdGlvbiBiTmEocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9uZXcgUmVnRXhwKFc0KHMpLCJnIik6c31mdW5jdGlvbiB2TmEocyl7cmV0dXJuIHR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6ZnVuY3Rpb24oKXtyZXR1cm4gc319dmFyIEc4dD1nKCgpPT57JGVlKCk7aWllKCk7dGllKCk7aShKM2UsImZpbmRBbmRSZXBsYWNlIik7aShnTmEsInRvUGFpcnMiKTtpKGJOYSwidG9FeHByZXNzaW9uIik7aSh2TmEsInRvRnVuY3Rpb24iKX0pO3ZhciBLOHQ9ZygoKT0+e0c4dCgpfSk7ZnVuY3Rpb24gc2ZlKCl7cmV0dXJue3RyYW5zZm9ybXM6W19OYV0sZW50ZXI6e2xpdGVyYWxBdXRvbGluazp4TmEsbGl0ZXJhbEF1dG9saW5rRW1haWw6YWZlLGxpdGVyYWxBdXRvbGlua0h0dHA6YWZlLGxpdGVyYWxBdXRvbGlua1d3dzphZmV9LGV4aXQ6e2xpdGVyYWxBdXRvbGluazpTTmEsbGl0ZXJhbEF1dG9saW5rRW1haWw6a05hLGxpdGVyYWxBdXRvbGlua0h0dHA6eU5hLGxpdGVyYWxBdXRvbGlua1d3dzp3TmF9fX1mdW5jdGlvbiBpZmUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJAIixiZWZvcmU6IlsrXFwtLlxcd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OmVmZSxub3RJbkNvbnN0cnVjdDp0ZmV9LHtjaGFyYWN0ZXI6Ii4iLGJlZm9yZToiW1d3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6ZWZlLG5vdEluQ29uc3RydWN0OnRmZX0se2NoYXJhY3RlcjoiOiIsYmVmb3JlOiJbcHNdIixhZnRlcjoiXFwvIixpbkNvbnN0cnVjdDplZmUsbm90SW5Db25zdHJ1Y3Q6dGZlfV19fWZ1bmN0aW9uIHhOYShzKXt0aGlzLmVudGVyKHt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX0scyl9ZnVuY3Rpb24gYWZlKHMpe3RoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLHMpfWZ1bmN0aW9uIHlOYShzKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLHMpfWZ1bmN0aW9uIHdOYShzKXt0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLHMpO2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZS50eXBlLGUudXJsPSJodHRwOi8vIit0aGlzLnNsaWNlU2VyaWFsaXplKHMpfWZ1bmN0aW9uIGtOYShzKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLHMpfWZ1bmN0aW9uIFNOYShzKXt0aGlzLmV4aXQocyl9ZnVuY3Rpb24gX05hKHMpe0ozZShzLFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSxNTmFdLFsvKD88PV58XHN8XHB7UH18XHB7U30pKFstLlx3K10rKUAoWy1cd10rKD86XC5bLVx3XSspKykvZ3Usek5hXV0se2lnbm9yZTpbImxpbmsiLCJsaW5rUmVmZXJlbmNlIl19KX1mdW5jdGlvbiBNTmEocyxlLHQsYSxyKXtsZXQgbj0iIjtpZighWTh0KHIpfHwoL153L2kudGVzdChlKSYmKHQ9ZSt0LGU9IiIsbj0iaHR0cDovLyIpLCFDTmEodCkpKXJldHVybiExO2xldCBvPVROYSh0K2EpO2lmKCFvWzBdKXJldHVybiExO2xldCBsPXt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDpuK2Urb1swXSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrb1swXX1dfTtyZXR1cm4gb1sxXT9bbCx7dHlwZToidGV4dCIsdmFsdWU6b1sxXX1dOmx9ZnVuY3Rpb24gek5hKHMsZSx0LGEpe3JldHVybiFZOHQoYSwhMCl8fC9bLVxkX10kLy50ZXN0KHQpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrZSsiQCIrdCxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrIkAiK3R9XX19ZnVuY3Rpb24gQ05hKHMpe2xldCBlPXMuc3BsaXQoIi4iKTtyZXR1cm4hKGUubGVuZ3RoPDJ8fGVbZS5sZW5ndGgtMV0mJigvXy8udGVzdChlW2UubGVuZ3RoLTFdKXx8IS9bYS16QS1aXGRdLy50ZXN0KGVbZS5sZW5ndGgtMV0pKXx8ZVtlLmxlbmd0aC0yXSYmKC9fLy50ZXN0KGVbZS5sZW5ndGgtMl0pfHwhL1thLXpBLVpcZF0vLnRlc3QoZVtlLmxlbmd0aC0yXSkpKX1mdW5jdGlvbiBUTmEocyl7bGV0IGU9L1shIiYnKSwuOjs8Pj9cXX1dKyQvLmV4ZWMocyk7aWYoIWUpcmV0dXJuW3Msdm9pZCAwXTtzPXMuc2xpY2UoMCxlLmluZGV4KTtsZXQgdD1lWzBdLGE9dC5pbmRleE9mKCIpIikscj1LOShzLCIoIiksbj1LOShzLCIpIik7Zm9yKDthIT09LTEmJnI+bjspcys9dC5zbGljZSgwLGErMSksdD10LnNsaWNlKGErMSksYT10LmluZGV4T2YoIikiKSxuKys7cmV0dXJuW3MsdF19ZnVuY3Rpb24gWTh0KHMsZSl7bGV0IHQ9cy5pbnB1dC5jaGFyQ29kZUF0KHMuaW5kZXgtMSk7cmV0dXJuKHMuaW5kZXg9PT0wfHxnZCh0KXx8XzModCkpJiYoIWV8fHQhPT00Nyl9dmFyIGVmZSx0ZmUsWjh0PWcoKCk9PntRM2UoKTtXcCgpO1ZhKCk7Szh0KCk7ZWZlPSJwaHJhc2luZyIsdGZlPVsiYXV0b2xpbmsiLCJsaW5rIiwiaW1hZ2UiLCJsYWJlbCJdO2koc2ZlLCJnZm1BdXRvbGlua0xpdGVyYWxGcm9tTWFya2Rvd24iKTtpKGlmZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsVG9NYXJrZG93biIpO2koeE5hLCJlbnRlckxpdGVyYWxBdXRvbGluayIpO2koYWZlLCJlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlIik7aSh5TmEsImV4aXRMaXRlcmFsQXV0b2xpbmtIdHRwIik7aSh3TmEsImV4aXRMaXRlcmFsQXV0b2xpbmtXd3ciKTtpKGtOYSwiZXhpdExpdGVyYWxBdXRvbGlua0VtYWlsIik7aShTTmEsImV4aXRMaXRlcmFsQXV0b2xpbmsiKTtpKF9OYSwidHJhbnNmb3JtR2ZtQXV0b2xpbmtMaXRlcmFscyIpO2koTU5hLCJmaW5kVXJsIik7aSh6TmEsImZpbmRFbWFpbCIpO2koQ05hLCJpc0NvcnJlY3REb21haW4iKTtpKFROYSwic3BsaXRVcmwiKTtpKFk4dCwicHJldmlvdXMiKX0pO3ZhciBYOHQ9ZygoKT0+e1o4dCgpfSk7ZnVuY3Rpb24gSGkocyl7cmV0dXJuIHMucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvXiB8ICQvZywiIikudG9Mb3dlckNhc2UoKS50b1VwcGVyQ2FzZSgpfXZhciBZcD1nKCgpPT57aShIaSwibm9ybWFsaXplSWRlbnRpZmllciIpfSk7ZnVuY3Rpb24gJE5hKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBETmEocyl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVSZWZlcmVuY2UiLGlkZW50aWZpZXI6IiIsbGFiZWw6IiJ9LHMpfWZ1bmN0aW9uIExOYSgpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gRU5hKHMpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlRGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDoiIixjaGlsZHJlbjpbXX0scyl9ZnVuY3Rpb24gUE5hKHMpe2xldCBlPXRoaXMucmVzdW1lKCksdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3QudHlwZSx0LmlkZW50aWZpZXI9SGkodGhpcy5zbGljZVNlcmlhbGl6ZShzKSkudG9Mb3dlckNhc2UoKSx0LmxhYmVsPWV9ZnVuY3Rpb24gSU5hKHMpe3RoaXMuZXhpdChzKX1mdW5jdGlvbiBBTmEocyl7bGV0IGU9dGhpcy5yZXN1bWUoKSx0PXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dC50eXBlLHQuaWRlbnRpZmllcj1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKHMpKS50b0xvd2VyQ2FzZSgpLHQubGFiZWw9ZX1mdW5jdGlvbiBOTmEocyl7dGhpcy5leGl0KHMpfWZ1bmN0aW9uIFJOYSgpe3JldHVybiJbIn1mdW5jdGlvbiBROHQocyxlLHQsYSl7bGV0IHI9dC5jcmVhdGVUcmFja2VyKGEpLG49ci5tb3ZlKCJbXiIpLG89dC5lbnRlcigiZm9vdG5vdGVSZWZlcmVuY2UiKSxsPXQuZW50ZXIoInJlZmVyZW5jZSIpO3JldHVybiBuKz1yLm1vdmUodC5zYWZlKHQuYXNzb2NpYXRpb25JZChzKSx7YWZ0ZXI6Il0iLGJlZm9yZTpufSkpLGwoKSxvKCksbis9ci5tb3ZlKCJdIiksbn1mdW5jdGlvbiByZmUoKXtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzokTmEsZ2ZtRm9vdG5vdGVDYWxsOkROYSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzpMTmEsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOkVOYX0sZXhpdDp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOlBOYSxnZm1Gb290bm90ZUNhbGw6SU5hLGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOkFOYSxnZm1Gb290bm90ZURlZmluaXRpb246Tk5hfX19ZnVuY3Rpb24gb2ZlKHMpe2xldCBlPSExO3JldHVybiBzJiZzLmZpcnN0TGluZUJsYW5rJiYoZT0hMCkse2hhbmRsZXJzOntmb290bm90ZURlZmluaXRpb246dCxmb290bm90ZVJlZmVyZW5jZTpROHR9LHVuc2FmZTpbe2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInBocmFzaW5nIiwicmVmZXJlbmNlIl19XX07ZnVuY3Rpb24gdChhLHIsbixvKXtsZXQgbD1uLmNyZWF0ZVRyYWNrZXIobykscD1sLm1vdmUoIlteIiksZD1uLmVudGVyKCJmb290bm90ZURlZmluaXRpb24iKSx1PW4uZW50ZXIoImxhYmVsIik7cmV0dXJuIHArPWwubW92ZShuLnNhZmUobi5hc3NvY2lhdGlvbklkKGEpLHtiZWZvcmU6cCxhZnRlcjoiXSJ9KSksdSgpLHArPWwubW92ZSgiXToiKSxhLmNoaWxkcmVuJiZhLmNoaWxkcmVuLmxlbmd0aD4wJiYobC5zaGlmdCg0KSxwKz1sLm1vdmUoKGU/YApgOiIgIikrbi5pbmRlbnRMaW5lcyhuLmNvbnRhaW5lckZsb3coYSxsLmN1cnJlbnQoKSksZT9KOHQ6T05hKSkpLGQoKSxwfWkodCwiZm9vdG5vdGVEZWZpbml0aW9uIil9ZnVuY3Rpb24gT05hKHMsZSx0KXtyZXR1cm4gZT09PTA/czpKOHQocyxlLHQpfWZ1bmN0aW9uIEo4dChzLGUsdCl7cmV0dXJuKHQ/IiI6IiAgICAiKStzfXZhciBlZ3Q9ZygoKT0+e1dwKCk7WXAoKTtROHQucGVlaz1STmE7aSgkTmEsImVudGVyRm9vdG5vdGVDYWxsU3RyaW5nIik7aShETmEsImVudGVyRm9vdG5vdGVDYWxsIik7aShMTmEsImVudGVyRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtpKEVOYSwiZW50ZXJGb290bm90ZURlZmluaXRpb24iKTtpKFBOYSwiZXhpdEZvb3Rub3RlQ2FsbFN0cmluZyIpO2koSU5hLCJleGl0Rm9vdG5vdGVDYWxsIik7aShBTmEsImV4aXRGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpO2koTk5hLCJleGl0Rm9vdG5vdGVEZWZpbml0aW9uIik7aShSTmEsImZvb3Rub3RlUmVmZXJlbmNlUGVlayIpO2koUTh0LCJmb290bm90ZVJlZmVyZW5jZSIpO2kocmZlLCJnZm1Gb290bm90ZUZyb21NYXJrZG93biIpO2kob2ZlLCJnZm1Gb290bm90ZVRvTWFya2Rvd24iKTtpKE9OYSwibWFwRXhjZXB0Rmlyc3QiKTtpKEo4dCwibWFwQWxsIil9KTt2YXIgdGd0PWcoKCk9PntlZ3QoKX0pO2Z1bmN0aW9uIG5mZSgpe3JldHVybntjYW5Db250YWluRW9sczpbImRlbGV0ZSJdLGVudGVyOntzdHJpa2V0aHJvdWdoOkJOYX0sZXhpdDp7c3RyaWtldGhyb3VnaDpITmF9fX1mdW5jdGlvbiBsZmUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJ+IixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OkZOYX1dLGhhbmRsZXJzOntkZWxldGU6YWd0fX19ZnVuY3Rpb24gQk5hKHMpe3RoaXMuZW50ZXIoe3R5cGU6ImRlbGV0ZSIsY2hpbGRyZW46W119LHMpfWZ1bmN0aW9uIEhOYShzKXt0aGlzLmV4aXQocyl9ZnVuY3Rpb24gYWd0KHMsZSx0LGEpe2xldCByPXQuY3JlYXRlVHJhY2tlcihhKSxuPXQuZW50ZXIoInN0cmlrZXRocm91Z2giKSxvPXIubW92ZSgifn4iKTtyZXR1cm4gbys9dC5jb250YWluZXJQaHJhc2luZyhzLHsuLi5yLmN1cnJlbnQoKSxiZWZvcmU6byxhZnRlcjoifiJ9KSxvKz1yLm1vdmUoIn5+IiksbigpLG99ZnVuY3Rpb24gcU5hKCl7cmV0dXJuIn4ifXZhciBGTmEsc2d0PWcoKCk9PntGTmE9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdO2FndC5wZWVrPXFOYTtpKG5mZSwiZ2ZtU3RyaWtldGhyb3VnaEZyb21NYXJrZG93biIpO2kobGZlLCJnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93biIpO2koQk5hLCJlbnRlclN0cmlrZXRocm91Z2giKTtpKEhOYSwiZXhpdFN0cmlrZXRocm91Z2giKTtpKGFndCwiaGFuZGxlRGVsZXRlIik7aShxTmEsInBlZWtEZWxldGUiKX0pO3ZhciBpZ3Q9ZygoKT0+e3NndCgpfSk7ZnVuY3Rpb24gak5hKHMpe3JldHVybiBzLmxlbmd0aH1mdW5jdGlvbiBvZ3QocyxlKXtsZXQgdD1lfHx7fSxhPSh0LmFsaWdufHxbXSkuY29uY2F0KCkscj10LnN0cmluZ0xlbmd0aHx8ak5hLG49W10sbz1bXSxsPVtdLHA9W10sZD0wLHU9LTE7Zm9yKDsrK3U8cy5sZW5ndGg7KXtsZXQgbT1bXSxmPVtdLHk9LTE7Zm9yKHNbdV0ubGVuZ3RoPmQmJihkPXNbdV0ubGVuZ3RoKTsrK3k8c1t1XS5sZW5ndGg7KXtsZXQgTT1WTmEoc1t1XVt5XSk7aWYodC5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IHo9cihNKTtmW3ldPXosKHBbeV09PT12b2lkIDB8fHo+cFt5XSkmJihwW3ldPXopfW0ucHVzaChNKX1vW3VdPW0sbFt1XT1mfWxldCBjPS0xO2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmImxlbmd0aCJpbiBhKWZvcig7KytjPGQ7KW5bY109cmd0KGFbY10pO2Vsc2V7bGV0IG09cmd0KGEpO2Zvcig7KytjPGQ7KW5bY109bX1jPS0xO2xldCBiPVtdLHY9W107Zm9yKDsrK2M8ZDspe2xldCBtPW5bY10sZj0iIix5PSIiO209PT05OT8oZj0iOiIseT0iOiIpOm09PT0xMDg/Zj0iOiI6bT09PTExNCYmKHk9IjoiKTtsZXQgTT10LmFsaWduRGVsaW1pdGVycz09PSExPzE6TWF0aC5tYXgoMSxwW2NdLWYubGVuZ3RoLXkubGVuZ3RoKSx6PWYrIi0iLnJlcGVhdChNKSt5O3QuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJihNPWYubGVuZ3RoK00reS5sZW5ndGgsTT5wW2NdJiYocFtjXT1NKSx2W2NdPU0pLGJbY109en1vLnNwbGljZSgxLDAsYiksbC5zcGxpY2UoMSwwLHYpLHU9LTE7bGV0IHg9W107Zm9yKDsrK3U8by5sZW5ndGg7KXtsZXQgbT1vW3VdLGY9bFt1XTtjPS0xO2xldCB5PVtdO2Zvcig7KytjPGQ7KXtsZXQgTT1tW2NdfHwiIix6PSIiLE49IiI7aWYodC5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IEM9cFtjXS0oZltjXXx8MCksXz1uW2NdO189PT0xMTQ/ej0iICIucmVwZWF0KEMpOl89PT05OT9DJTI/KHo9IiAiLnJlcGVhdChDLzIrLjUpLE49IiAiLnJlcGVhdChDLzItLjUpKTooej0iICIucmVwZWF0KEMvMiksTj16KTpOPSIgIi5yZXBlYXQoQyl9dC5kZWxpbWl0ZXJTdGFydCE9PSExJiYhYyYmeS5wdXNoKCJ8IiksdC5wYWRkaW5nIT09ITEmJiEodC5hbGlnbkRlbGltaXRlcnM9PT0hMSYmTT09PSIiKSYmKHQuZGVsaW1pdGVyU3RhcnQhPT0hMXx8YykmJnkucHVzaCgiICIpLHQuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaCh6KSx5LnB1c2goTSksdC5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeS5wdXNoKE4pLHQucGFkZGluZyE9PSExJiZ5LnB1c2goIiAiKSwodC5kZWxpbWl0ZXJFbmQhPT0hMXx8YyE9PWQtMSkmJnkucHVzaCgifCIpfXgucHVzaCh0LmRlbGltaXRlckVuZD09PSExP3kuam9pbigiIikucmVwbGFjZSgvICskLywiIik6eS5qb2luKCIiKSl9cmV0dXJuIHguam9pbihgCmApfWZ1bmN0aW9uIFZOYShzKXtyZXR1cm4gcz09bnVsbD8iIjpTdHJpbmcocyl9ZnVuY3Rpb24gcmd0KHMpe2xldCBlPXR5cGVvZiBzPT0ic3RyaW5nIj9zLmNvZGVQb2ludEF0KDApOjA7cmV0dXJuIGU9PT02N3x8ZT09PTk5Pzk5OmU9PT03Nnx8ZT09PTEwOD8xMDg6ZT09PTgyfHxlPT09MTE0PzExNDowfXZhciBuZ3Q9ZygoKT0+e2koak5hLCJkZWZhdWx0U3RyaW5nTGVuZ3RoIik7aShvZ3QsIm1hcmtkb3duVGFibGUiKTtpKFZOYSwic2VyaWFsaXplIik7aShyZ3QsInRvQWxpZ25tZW50Iil9KTtmdW5jdGlvbiByaWUocyxlKXtsZXQgdD1lfHx7fTtmdW5jdGlvbiBhKHIsLi4ubil7bGV0IG89YS5pbnZhbGlkLGw9YS5oYW5kbGVycztpZihyJiZsZ3QuY2FsbChyLHMpKXtsZXQgcD1TdHJpbmcocltzXSk7bz1sZ3QuY2FsbChsLHApP2xbcF06YS51bmtub3dufWlmKG8pcmV0dXJuIG8uY2FsbCh0aGlzLHIsLi4ubil9cmV0dXJuIGkoYSwib25lIiksYS5oYW5kbGVycz10LmhhbmRsZXJzfHx7fSxhLmludmFsaWQ9dC5pbnZhbGlkLGEudW5rbm93bj10LnVua25vd24sYX12YXIgbGd0LGNmZT1nKCgpPT57bGd0PXt9Lmhhc093blByb3BlcnR5O2kocmllLCJ6d2l0Y2giKX0pO2Z1bmN0aW9uIGRmZShzLGUpe2xldCB0PS0xLGE7aWYoZS5leHRlbnNpb25zKWZvcig7Kyt0PGUuZXh0ZW5zaW9ucy5sZW5ndGg7KWRmZShzLGUuZXh0ZW5zaW9uc1t0XSk7Zm9yKGEgaW4gZSlpZihVTmEuY2FsbChlLGEpKXN3aXRjaChhKXtjYXNlImV4dGVuc2lvbnMiOmJyZWFrO2Nhc2UidW5zYWZlIjp7Y2d0KHNbYV0sZVthXSk7YnJlYWt9Y2FzZSJqb2luIjp7Y2d0KHNbYV0sZVthXSk7YnJlYWt9Y2FzZSJoYW5kbGVycyI6e1dOYShzW2FdLGVbYV0pO2JyZWFrfWRlZmF1bHQ6cy5vcHRpb25zW2FdPWVbYV19cmV0dXJuIHN9ZnVuY3Rpb24gY2d0KHMsZSl7ZSYmcy5wdXNoKC4uLmUpfWZ1bmN0aW9uIFdOYShzLGUpe2UmJk9iamVjdC5hc3NpZ24ocyxlKX12YXIgVU5hLGRndD1nKCgpPT57VU5hPXt9Lmhhc093blByb3BlcnR5O2koZGZlLCJjb25maWd1cmUiKTtpKGNndCwibGlzdCIpO2koV05hLCJtYXAiKX0pO2Z1bmN0aW9uIHVndChzLGUsdCxhKXtsZXQgcj10LmVudGVyKCJibG9ja3F1b3RlIiksbj10LmNyZWF0ZVRyYWNrZXIoYSk7bi5tb3ZlKCI+ICIpLG4uc2hpZnQoMik7bGV0IG89dC5pbmRlbnRMaW5lcyh0LmNvbnRhaW5lckZsb3cocyxuLmN1cnJlbnQoKSksR05hKTtyZXR1cm4gcigpLG99ZnVuY3Rpb24gR05hKHMsZSx0KXtyZXR1cm4iPiIrKHQ/IiI6IiAiKStzfXZhciBwZ3Q9ZygoKT0+e2kodWd0LCJibG9ja3F1b3RlIik7aShHTmEsIm1hcCIpfSk7ZnVuY3Rpb24gb2llKHMsZSl7cmV0dXJuIGhndChzLGUuaW5Db25zdHJ1Y3QsITApJiYhaGd0KHMsZS5ub3RJbkNvbnN0cnVjdCwhMSl9ZnVuY3Rpb24gaGd0KHMsZSx0KXtpZih0eXBlb2YgZT09InN0cmluZyImJihlPVtlXSksIWV8fGUubGVuZ3RoPT09MClyZXR1cm4gdDtsZXQgYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspaWYocy5pbmNsdWRlcyhlW2FdKSlyZXR1cm4hMDtyZXR1cm4hMX12YXIgdWZlPWcoKCk9PntpKG9pZSwicGF0dGVybkluU2NvcGUiKTtpKGhndCwibGlzdEluU2NvcGUiKX0pO2Z1bmN0aW9uIHBmZShzLGUsdCxhKXtsZXQgcj0tMTtmb3IoOysrcjx0LnVuc2FmZS5sZW5ndGg7KWlmKHQudW5zYWZlW3JdLmNoYXJhY3Rlcj09PWAKYCYmb2llKHQuc3RhY2ssdC51bnNhZmVbcl0pKXJldHVybi9bIFx0XS8udGVzdChhLmJlZm9yZSk/IiI6IiAiO3JldHVybmBcXApgfXZhciBmZ3Q9ZygoKT0+e3VmZSgpO2kocGZlLCJoYXJkQnJlYWsiKX0pO2Z1bmN0aW9uIG1ndChzLGUpe2xldCB0PVN0cmluZyhzKSxhPXQuaW5kZXhPZihlKSxyPWEsbj0wLG89MDtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgc3Vic3RyaW5nIik7Zm9yKDthIT09LTE7KWE9PT1yPysrbj5vJiYobz1uKTpuPTEscj1hK2UubGVuZ3RoLGE9dC5pbmRleE9mKGUscik7cmV0dXJuIG99dmFyIGdndD1nKCgpPT57aShtZ3QsImxvbmdlc3RTdHJlYWsiKX0pO2Z1bmN0aW9uIGxrKHMsZSl7cmV0dXJuISEoZS5vcHRpb25zLmZlbmNlcz09PSExJiZzLnZhbHVlJiYhcy5sYW5nJiYvW14gXHJcbl0vLnRlc3Qocy52YWx1ZSkmJiEvXltcdCBdKig/OltcclxuXXwkKXwoPzpefFtcclxuXSlbXHQgXSokLy50ZXN0KHMudmFsdWUpKX12YXIgaGZlPWcoKCk9PntpKGxrLCJmb3JtYXRDb2RlQXNJbmRlbnRlZCIpfSk7ZnVuY3Rpb24gYmd0KHMpe2xldCBlPXMub3B0aW9ucy5mZW5jZXx8ImAiO2lmKGUhPT0iYCImJmUhPT0ifiIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gIik7cmV0dXJuIGV9dmFyIHZndD1nKCgpPT57aShiZ3QsImNoZWNrRmVuY2UiKX0pO2Z1bmN0aW9uIHhndChzLGUsdCxhKXtsZXQgcj1iZ3QodCksbj1zLnZhbHVlfHwiIixvPXI9PT0iYCI/IkdyYXZlQWNjZW50IjoiVGlsZGUiO2lmKGxrKHMsdCkpe2xldCBjPXQuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGI9dC5pbmRlbnRMaW5lcyhuLEtOYSk7cmV0dXJuIGMoKSxifWxldCBsPXQuY3JlYXRlVHJhY2tlcihhKSxwPXIucmVwZWF0KE1hdGgubWF4KG1ndChuLHIpKzEsMykpLGQ9dC5lbnRlcigiY29kZUZlbmNlZCIpLHU9bC5tb3ZlKHApO2lmKHMubGFuZyl7bGV0IGM9dC5lbnRlcihgY29kZUZlbmNlZExhbmcke299YCk7dSs9bC5tb3ZlKHQuc2FmZShzLmxhbmcse2JlZm9yZTp1LGFmdGVyOiIgIixlbmNvZGU6WyJgIl0sLi4ubC5jdXJyZW50KCl9KSksYygpfWlmKHMubGFuZyYmcy5tZXRhKXtsZXQgYz10LmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7b31gKTt1Kz1sLm1vdmUoIiAiKSx1Kz1sLm1vdmUodC5zYWZlKHMubWV0YSx7YmVmb3JlOnUsYWZ0ZXI6YApgLGVuY29kZTpbImAiXSwuLi5sLmN1cnJlbnQoKX0pKSxjKCl9cmV0dXJuIHUrPWwubW92ZShgCmApLG4mJih1Kz1sLm1vdmUobitgCmApKSx1Kz1sLm1vdmUocCksZCgpLHV9ZnVuY3Rpb24gS05hKHMsZSx0KXtyZXR1cm4odD8iIjoiICAgICIpK3N9dmFyIHlndD1nKCgpPT57Z2d0KCk7aGZlKCk7dmd0KCk7aSh4Z3QsImNvZGUiKTtpKEtOYSwibWFwIil9KTtmdW5jdGlvbiBZOShzKXtsZXQgZT1zLm9wdGlvbnMucXVvdGV8fCciJztpZihlIT09JyInJiZlIT09IiciKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYCdgIik7cmV0dXJuIGV9dmFyIG5pZT1nKCgpPT57aShZOSwiY2hlY2tRdW90ZSIpfSk7ZnVuY3Rpb24gd2d0KHMsZSx0LGEpe2xldCByPVk5KHQpLG49cj09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXQuZW50ZXIoImRlZmluaXRpb24iKSxsPXQuZW50ZXIoImxhYmVsIikscD10LmNyZWF0ZVRyYWNrZXIoYSksZD1wLm1vdmUoIlsiKTtyZXR1cm4gZCs9cC5tb3ZlKHQuc2FmZSh0LmFzc29jaWF0aW9uSWQocykse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5wLmN1cnJlbnQoKX0pKSxkKz1wLm1vdmUoIl06ICIpLGwoKSwhcy51cmx8fC9bXDAtIFx1MDA3Rl0vLnRlc3Qocy51cmwpPyhsPXQuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPXAubW92ZSgiPCIpLGQrPXAubW92ZSh0LnNhZmUocy51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5wLmN1cnJlbnQoKX0pKSxkKz1wLm1vdmUoIj4iKSk6KGw9dC5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1wLm1vdmUodC5zYWZlKHMudXJsLHtiZWZvcmU6ZCxhZnRlcjpzLnRpdGxlPyIgIjpgCmAsLi4ucC5jdXJyZW50KCl9KSkpLGwoKSxzLnRpdGxlJiYobD10LmVudGVyKGB0aXRsZSR7bn1gKSxkKz1wLm1vdmUoIiAiK3IpLGQrPXAubW92ZSh0LnNhZmUocy50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6ciwuLi5wLmN1cnJlbnQoKX0pKSxkKz1wLm1vdmUociksbCgpKSxvKCksZH12YXIga2d0PWcoKCk9PntuaWUoKTtpKHdndCwiZGVmaW5pdGlvbiIpfSk7ZnVuY3Rpb24gU2d0KHMpe2xldCBlPXMub3B0aW9ucy5lbXBoYXNpc3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGVtcGhhc2lzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuZW1waGFzaXNgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBfZ3Q9ZygoKT0+e2koU2d0LCJjaGVja0VtcGhhc2lzIil9KTtmdW5jdGlvbiBqbChzKXtyZXR1cm4iJiN4IitzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgWjk9ZygoKT0+e2koamwsImVuY29kZUNoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gTDAocyl7aWYocz09PW51bGx8fEFhKHMpfHxnZChzKSlyZXR1cm4gMTtpZihfMyhzKSlyZXR1cm4gMn12YXIgbGllPWcoKCk9PntWYSgpO2koTDAsImNsYXNzaWZ5Q2hhcmFjdGVyIil9KTtmdW5jdGlvbiBYOShzLGUsdCl7bGV0IGE9TDAocykscj1MMChlKTtyZXR1cm4gYT09PXZvaWQgMD9yPT09dm9pZCAwP3Q9PT0iXyI/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnI9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiEwfTphPT09MT9yPT09dm9pZCAwP3tpbnNpZGU6ITEsb3V0c2lkZTohMX06cj09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnI9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpyPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITF9OntpbnNpZGU6ITEsb3V0c2lkZTohMX19dmFyIGZmZT1nKCgpPT57bGllKCk7aShYOSwiZW5jb2RlSW5mbyIpfSk7ZnVuY3Rpb24gbWZlKHMsZSx0LGEpe2xldCByPVNndCh0KSxuPXQuZW50ZXIoImVtcGhhc2lzIiksbz10LmNyZWF0ZVRyYWNrZXIoYSksbD1vLm1vdmUocikscD1vLm1vdmUodC5jb250YWluZXJQaHJhc2luZyhzLHthZnRlcjpyLGJlZm9yZTpsLC4uLm8uY3VycmVudCgpfSkpLGQ9cC5jaGFyQ29kZUF0KDApLHU9WDkoYS5iZWZvcmUuY2hhckNvZGVBdChhLmJlZm9yZS5sZW5ndGgtMSksZCxyKTt1Lmluc2lkZSYmKHA9amwoZCkrcC5zbGljZSgxKSk7bGV0IGM9cC5jaGFyQ29kZUF0KHAubGVuZ3RoLTEpLGI9WDkoYS5hZnRlci5jaGFyQ29kZUF0KDApLGMscik7Yi5pbnNpZGUmJihwPXAuc2xpY2UoMCwtMSkramwoYykpO2xldCB2PW8ubW92ZShyKTtyZXR1cm4gbigpLHQuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpiLm91dHNpZGUsYmVmb3JlOnUub3V0c2lkZX0sbCtwK3Z9ZnVuY3Rpb24gWU5hKHMsZSx0KXtyZXR1cm4gdC5vcHRpb25zLmVtcGhhc2lzfHwiKiJ9dmFyIE1ndD1nKCgpPT57X2d0KCk7WjkoKTtmZmUoKTttZmUucGVlaz1ZTmE7aShtZmUsImVtcGhhc2lzIik7aShZTmEsImVtcGhhc2lzUGVlayIpfSk7ZnVuY3Rpb24gY2socyxlLHQsYSl7bGV0IHIsbixvO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIj8obj12b2lkIDAsbz1lLHI9dCk6KG49ZSxvPXQscj1hKSxuayhzLG4sbCxyKTtmdW5jdGlvbiBsKHAsZCl7bGV0IHU9ZFtkLmxlbmd0aC0xXSxjPXU/dS5jaGlsZHJlbi5pbmRleE9mKHApOnZvaWQgMDtyZXR1cm4gbyhwLGMsdSl9aShsLCJvdmVybG9hZCIpfXZhciB6Z3Q9ZygoKT0+e2lpZSgpO2lpZSgpO2koY2ssInZpc2l0Iil9KTt2YXIgZ2ZlPWcoKCk9Pnt6Z3QoKX0pO2Z1bmN0aW9uIHozKHMsZSl7bGV0IHQ9ZXx8Wk5hLGE9dHlwZW9mIHQuaW5jbHVkZUltYWdlQWx0PT0iYm9vbGVhbiI/dC5pbmNsdWRlSW1hZ2VBbHQ6ITAscj10eXBlb2YgdC5pbmNsdWRlSHRtbD09ImJvb2xlYW4iP3QuaW5jbHVkZUh0bWw6ITA7cmV0dXJuIENndChzLGEscil9ZnVuY3Rpb24gQ2d0KHMsZSx0KXtpZihYTmEocykpe2lmKCJ2YWx1ZSJpbiBzKXJldHVybiBzLnR5cGU9PT0iaHRtbCImJiF0PyIiOnMudmFsdWU7aWYoZSYmImFsdCJpbiBzJiZzLmFsdClyZXR1cm4gcy5hbHQ7aWYoImNoaWxkcmVuImluIHMpcmV0dXJuIFRndChzLmNoaWxkcmVuLGUsdCl9cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/VGd0KHMsZSx0KToiIn1mdW5jdGlvbiBUZ3QocyxlLHQpe2xldCBhPVtdLHI9LTE7Zm9yKDsrK3I8cy5sZW5ndGg7KWFbcl09Q2d0KHNbcl0sZSx0KTtyZXR1cm4gYS5qb2luKCIiKX1mdW5jdGlvbiBYTmEocyl7cmV0dXJuISEocyYmdHlwZW9mIHM9PSJvYmplY3QiKX12YXIgWk5hLCRndD1nKCgpPT57Wk5hPXt9O2koejMsInRvU3RyaW5nIik7aShDZ3QsIm9uZSIpO2koVGd0LCJhbGwiKTtpKFhOYSwibm9kZSIpfSk7dmFyIGNpZT1nKCgpPT57JGd0KCl9KTtmdW5jdGlvbiBkaWUocyxlKXtsZXQgdD0hMTtyZXR1cm4gY2socyxmdW5jdGlvbihhKXtpZigidmFsdWUiaW4gYSYmL1xyP1xufFxyLy50ZXN0KGEudmFsdWUpfHxhLnR5cGU9PT0iYnJlYWsiKXJldHVybiB0PSEwLE0zfSksISEoKCFzLmRlcHRofHxzLmRlcHRoPDMpJiZ6MyhzKSYmKGUub3B0aW9ucy5zZXRleHR8fHQpKX12YXIgYmZlPWcoKCk9PntnZmUoKTtjaWUoKTtpKGRpZSwiZm9ybWF0SGVhZGluZ0FzU2V0ZXh0Iil9KTtmdW5jdGlvbiBEZ3QocyxlLHQsYSl7bGV0IHI9TWF0aC5tYXgoTWF0aC5taW4oNixzLmRlcHRofHwxKSwxKSxuPXQuY3JlYXRlVHJhY2tlcihhKTtpZihkaWUocyx0KSl7bGV0IHU9dC5lbnRlcigiaGVhZGluZ1NldGV4dCIpLGM9dC5lbnRlcigicGhyYXNpbmciKSxiPXQuY29udGFpbmVyUGhyYXNpbmcocyx7Li4ubi5jdXJyZW50KCksYmVmb3JlOmAKYCxhZnRlcjpgCmB9KTtyZXR1cm4gYygpLHUoKSxiK2AKYCsocj09PTE/Ij0iOiItIikucmVwZWF0KGIubGVuZ3RoLShNYXRoLm1heChiLmxhc3RJbmRleE9mKCJcciIpLGIubGFzdEluZGV4T2YoYApgKSkrMSkpfWxldCBvPSIjIi5yZXBlYXQociksbD10LmVudGVyKCJoZWFkaW5nQXR4IikscD10LmVudGVyKCJwaHJhc2luZyIpO24ubW92ZShvKyIgIik7bGV0IGQ9dC5jb250YWluZXJQaHJhc2luZyhzLHtiZWZvcmU6IiMgIixhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KTtyZXR1cm4vXltcdCBdLy50ZXN0KGQpJiYoZD1qbChkLmNoYXJDb2RlQXQoMCkpK2Quc2xpY2UoMSkpLGQ9ZD9vKyIgIitkOm8sdC5vcHRpb25zLmNsb3NlQXR4JiYoZCs9IiAiK28pLHAoKSxsKCksZH12YXIgTGd0PWcoKCk9PntaOSgpO2JmZSgpO2koRGd0LCJoZWFkaW5nIil9KTtmdW5jdGlvbiB2ZmUocyl7cmV0dXJuIHMudmFsdWV8fCIifWZ1bmN0aW9uIFFOYSgpe3JldHVybiI8In12YXIgRWd0PWcoKCk9Pnt2ZmUucGVlaz1RTmE7aSh2ZmUsImh0bWwiKTtpKFFOYSwiaHRtbFBlZWsiKX0pO2Z1bmN0aW9uIHhmZShzLGUsdCxhKXtsZXQgcj1ZOSh0KSxuPXI9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbz10LmVudGVyKCJpbWFnZSIpLGw9dC5lbnRlcigibGFiZWwiKSxwPXQuY3JlYXRlVHJhY2tlcihhKSxkPXAubW92ZSgiIVsiKTtyZXR1cm4gZCs9cC5tb3ZlKHQuc2FmZShzLmFsdCx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLnAuY3VycmVudCgpfSkpLGQrPXAubW92ZSgiXSgiKSxsKCksIXMudXJsJiZzLnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHMudXJsKT8obD10LmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxkKz1wLm1vdmUoIjwiKSxkKz1wLm1vdmUodC5zYWZlKHMudXJsLHtiZWZvcmU6ZCxhZnRlcjoiPiIsLi4ucC5jdXJyZW50KCl9KSksZCs9cC5tb3ZlKCI+IikpOihsPXQuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksZCs9cC5tb3ZlKHQuc2FmZShzLnVybCx7YmVmb3JlOmQsYWZ0ZXI6cy50aXRsZT8iICI6IikiLC4uLnAuY3VycmVudCgpfSkpKSxsKCkscy50aXRsZSYmKGw9dC5lbnRlcihgdGl0bGUke259YCksZCs9cC5tb3ZlKCIgIityKSxkKz1wLm1vdmUodC5zYWZlKHMudGl0bGUse2JlZm9yZTpkLGFmdGVyOnIsLi4ucC5jdXJyZW50KCl9KSksZCs9cC5tb3ZlKHIpLGwoKSksZCs9cC5tb3ZlKCIpIiksbygpLGR9ZnVuY3Rpb24gSk5hKCl7cmV0dXJuIiEifXZhciBQZ3Q9ZygoKT0+e25pZSgpO3hmZS5wZWVrPUpOYTtpKHhmZSwiaW1hZ2UiKTtpKEpOYSwiaW1hZ2VQZWVrIil9KTtmdW5jdGlvbiB5ZmUocyxlLHQsYSl7bGV0IHI9cy5yZWZlcmVuY2VUeXBlLG49dC5lbnRlcigiaW1hZ2VSZWZlcmVuY2UiKSxvPXQuZW50ZXIoImxhYmVsIiksbD10LmNyZWF0ZVRyYWNrZXIoYSkscD1sLm1vdmUoIiFbIiksZD10LnNhZmUocy5hbHQse2JlZm9yZTpwLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3ArPWwubW92ZShkKyJdWyIpLG8oKTtsZXQgdT10LnN0YWNrO3Quc3RhY2s9W10sbz10LmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgYz10LnNhZmUodC5hc3NvY2lhdGlvbklkKHMpLHtiZWZvcmU6cCxhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KTtyZXR1cm4gbygpLHQuc3RhY2s9dSxuKCkscj09PSJmdWxsInx8IWR8fGQhPT1jP3ArPWwubW92ZShjKyJdIik6cj09PSJzaG9ydGN1dCI/cD1wLnNsaWNlKDAsLTEpOnArPWwubW92ZSgiXSIpLHB9ZnVuY3Rpb24gZVJhKCl7cmV0dXJuIiEifXZhciBJZ3Q9ZygoKT0+e3lmZS5wZWVrPWVSYTtpKHlmZSwiaW1hZ2VSZWZlcmVuY2UiKTtpKGVSYSwiaW1hZ2VSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiB3ZmUocyxlLHQpe2xldCBhPXMudmFsdWV8fCIiLHI9ImAiLG49LTE7Zm9yKDtuZXcgUmVnRXhwKCIoXnxbXmBdKSIrcisiKFteYF18JCkiKS50ZXN0KGEpOylyKz0iYCI7Zm9yKC9bXiBcclxuXS8udGVzdChhKSYmKC9eWyBcclxuXS8udGVzdChhKSYmL1sgXHJcbl0kLy50ZXN0KGEpfHwvXmB8YCQvLnRlc3QoYSkpJiYoYT0iICIrYSsiICIpOysrbjx0LnVuc2FmZS5sZW5ndGg7KXtsZXQgbz10LnVuc2FmZVtuXSxsPXQuY29tcGlsZVBhdHRlcm4obykscDtpZihvLmF0QnJlYWspZm9yKDtwPWwuZXhlYyhhKTspe2xldCBkPXAuaW5kZXg7YS5jaGFyQ29kZUF0KGQpPT09MTAmJmEuY2hhckNvZGVBdChkLTEpPT09MTMmJmQtLSxhPWEuc2xpY2UoMCxkKSsiICIrYS5zbGljZShwLmluZGV4KzEpfX1yZXR1cm4gcithK3J9ZnVuY3Rpb24gdFJhKCl7cmV0dXJuImAifXZhciBBZ3Q9ZygoKT0+e3dmZS5wZWVrPXRSYTtpKHdmZSwiaW5saW5lQ29kZSIpO2kodFJhLCJpbmxpbmVDb2RlUGVlayIpfSk7ZnVuY3Rpb24ga2ZlKHMsZSl7bGV0IHQ9ejMocyk7cmV0dXJuISEoIWUub3B0aW9ucy5yZXNvdXJjZUxpbmsmJnMudXJsJiYhcy50aXRsZSYmcy5jaGlsZHJlbiYmcy5jaGlsZHJlbi5sZW5ndGg9PT0xJiZzLmNoaWxkcmVuWzBdLnR5cGU9PT0idGV4dCImJih0PT09cy51cmx8fCJtYWlsdG86Iit0PT09cy51cmwpJiYvXlthLXpdW2EteisuLV0rOi9pLnRlc3Qocy51cmwpJiYhL1tcMC0gPD5cdTAwN0ZdLy50ZXN0KHMudXJsKSl9dmFyIE5ndD1nKCgpPT57Y2llKCk7aShrZmUsImZvcm1hdExpbmtBc0F1dG9saW5rIil9KTtmdW5jdGlvbiBTZmUocyxlLHQsYSl7bGV0IHI9WTkodCksbj1yPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89dC5jcmVhdGVUcmFja2VyKGEpLGwscDtpZihrZmUocyx0KSl7bGV0IHU9dC5zdGFjazt0LnN0YWNrPVtdLGw9dC5lbnRlcigiYXV0b2xpbmsiKTtsZXQgYz1vLm1vdmUoIjwiKTtyZXR1cm4gYys9by5tb3ZlKHQuY29udGFpbmVyUGhyYXNpbmcocyx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLm8uY3VycmVudCgpfSkpLGMrPW8ubW92ZSgiPiIpLGwoKSx0LnN0YWNrPXUsY31sPXQuZW50ZXIoImxpbmsiKSxwPXQuZW50ZXIoImxhYmVsIik7bGV0IGQ9by5tb3ZlKCJbIik7cmV0dXJuIGQrPW8ubW92ZSh0LmNvbnRhaW5lclBocmFzaW5nKHMse2JlZm9yZTpkLGFmdGVyOiJdKCIsLi4uby5jdXJyZW50KCl9KSksZCs9by5tb3ZlKCJdKCIpLHAoKSwhcy51cmwmJnMudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3Qocy51cmwpPyhwPXQuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPW8ubW92ZSgiPCIpLGQrPW8ubW92ZSh0LnNhZmUocy51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUoIj4iKSk6KHA9dC5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1vLm1vdmUodC5zYWZlKHMudXJsLHtiZWZvcmU6ZCxhZnRlcjpzLnRpdGxlPyIgIjoiKSIsLi4uby5jdXJyZW50KCl9KSkpLHAoKSxzLnRpdGxlJiYocD10LmVudGVyKGB0aXRsZSR7bn1gKSxkKz1vLm1vdmUoIiAiK3IpLGQrPW8ubW92ZSh0LnNhZmUocy50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6ciwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUocikscCgpKSxkKz1vLm1vdmUoIikiKSxsKCksZH1mdW5jdGlvbiBhUmEocyxlLHQpe3JldHVybiBrZmUocyx0KT8iPCI6IlsifXZhciBSZ3Q9ZygoKT0+e25pZSgpO05ndCgpO1NmZS5wZWVrPWFSYTtpKFNmZSwibGluayIpO2koYVJhLCJsaW5rUGVlayIpfSk7ZnVuY3Rpb24gX2ZlKHMsZSx0LGEpe2xldCByPXMucmVmZXJlbmNlVHlwZSxuPXQuZW50ZXIoImxpbmtSZWZlcmVuY2UiKSxvPXQuZW50ZXIoImxhYmVsIiksbD10LmNyZWF0ZVRyYWNrZXIoYSkscD1sLm1vdmUoIlsiKSxkPXQuY29udGFpbmVyUGhyYXNpbmcocyx7YmVmb3JlOnAsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7cCs9bC5tb3ZlKGQrIl1bIiksbygpO2xldCB1PXQuc3RhY2s7dC5zdGFjaz1bXSxvPXQuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBjPXQuc2FmZSh0LmFzc29jaWF0aW9uSWQocykse2JlZm9yZTpwLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBvKCksdC5zdGFjaz11LG4oKSxyPT09ImZ1bGwifHwhZHx8ZCE9PWM/cCs9bC5tb3ZlKGMrIl0iKTpyPT09InNob3J0Y3V0Ij9wPXAuc2xpY2UoMCwtMSk6cCs9bC5tb3ZlKCJdIikscH1mdW5jdGlvbiBzUmEoKXtyZXR1cm4iWyJ9dmFyIE9ndD1nKCgpPT57X2ZlLnBlZWs9c1JhO2koX2ZlLCJsaW5rUmVmZXJlbmNlIik7aShzUmEsImxpbmtSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiBROShzKXtsZXQgZT1zLm9wdGlvbnMuYnVsbGV0fHwiKiI7aWYoZSE9PSIqIiYmZSE9PSIrIiYmZSE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5idWxsZXRgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7cmV0dXJuIGV9dmFyIHVpZT1nKCgpPT57aShROSwiY2hlY2tCdWxsZXQiKX0pO2Z1bmN0aW9uIEZndChzKXtsZXQgZT1ROShzKSx0PXMub3B0aW9ucy5idWxsZXRPdGhlcjtpZighdClyZXR1cm4gZT09PSIqIj8iLSI6IioiO2lmKHQhPT0iKiImJnQhPT0iKyImJnQhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrdCsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3RoZXJgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7aWYodD09PWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgYnVsbGV0YCAoYCIrZSsiYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAiK3QrImApIHRvIGJlIGRpZmZlcmVudCIpO3JldHVybiB0fXZhciBCZ3Q9ZygoKT0+e3VpZSgpO2koRmd0LCJjaGVja0J1bGxldE90aGVyIil9KTtmdW5jdGlvbiBIZ3Qocyl7bGV0IGU9cy5vcHRpb25zLmJ1bGxldE9yZGVyZWR8fCIuIjtpZihlIT09Ii4iJiZlIT09IikiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmJ1bGxldE9yZGVyZWRgLCBleHBlY3RlZCBgLmAgb3IgYClgIik7cmV0dXJuIGV9dmFyIHFndD1nKCgpPT57aShIZ3QsImNoZWNrQnVsbGV0T3JkZXJlZCIpfSk7ZnVuY3Rpb24gcGllKHMpe2xldCBlPXMub3B0aW9ucy5ydWxlfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSItIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5ydWxlYCwgZXhwZWN0ZWQgYCpgLCBgLWAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBNZmU9ZygoKT0+e2kocGllLCJjaGVja1J1bGUiKX0pO2Z1bmN0aW9uIGpndChzLGUsdCxhKXtsZXQgcj10LmVudGVyKCJsaXN0Iiksbj10LmJ1bGxldEN1cnJlbnQsbz1zLm9yZGVyZWQ/SGd0KHQpOlE5KHQpLGw9cy5vcmRlcmVkP289PT0iLiI/IikiOiIuIjpGZ3QodCkscD1lJiZ0LmJ1bGxldExhc3RVc2VkP289PT10LmJ1bGxldExhc3RVc2VkOiExO2lmKCFzLm9yZGVyZWQpe2xldCB1PXMuY2hpbGRyZW4/cy5jaGlsZHJlblswXTp2b2lkIDA7aWYoKG89PT0iKiJ8fG89PT0iLSIpJiZ1JiYoIXUuY2hpbGRyZW58fCF1LmNoaWxkcmVuWzBdKSYmdC5zdGFja1t0LnN0YWNrLmxlbmd0aC0xXT09PSJsaXN0IiYmdC5zdGFja1t0LnN0YWNrLmxlbmd0aC0yXT09PSJsaXN0SXRlbSImJnQuc3RhY2tbdC5zdGFjay5sZW5ndGgtM109PT0ibGlzdCImJnQuc3RhY2tbdC5zdGFjay5sZW5ndGgtNF09PT0ibGlzdEl0ZW0iJiZ0LmluZGV4U3RhY2tbdC5pbmRleFN0YWNrLmxlbmd0aC0xXT09PTAmJnQuaW5kZXhTdGFja1t0LmluZGV4U3RhY2subGVuZ3RoLTJdPT09MCYmdC5pbmRleFN0YWNrW3QuaW5kZXhTdGFjay5sZW5ndGgtM109PT0wJiYocD0hMCkscGllKHQpPT09byYmdSl7bGV0IGM9LTE7Zm9yKDsrK2M8cy5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgYj1zLmNoaWxkcmVuW2NdO2lmKGImJmIudHlwZT09PSJsaXN0SXRlbSImJmIuY2hpbGRyZW4mJmIuY2hpbGRyZW5bMF0mJmIuY2hpbGRyZW5bMF0udHlwZT09PSJ0aGVtYXRpY0JyZWFrIil7cD0hMDticmVha319fX1wJiYobz1sKSx0LmJ1bGxldEN1cnJlbnQ9bztsZXQgZD10LmNvbnRhaW5lckZsb3cocyxhKTtyZXR1cm4gdC5idWxsZXRMYXN0VXNlZD1vLHQuYnVsbGV0Q3VycmVudD1uLHIoKSxkfXZhciBWZ3Q9ZygoKT0+e3VpZSgpO0JndCgpO3FndCgpO01mZSgpO2koamd0LCJsaXN0Iil9KTtmdW5jdGlvbiBVZ3Qocyl7bGV0IGU9cy5vcHRpb25zLmxpc3RJdGVtSW5kZW50fHwib25lIjtpZihlIT09InRhYiImJmUhPT0ib25lIiYmZSE9PSJtaXhlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMubGlzdEl0ZW1JbmRlbnRgLCBleHBlY3RlZCBgdGFiYCwgYG9uZWAsIG9yIGBtaXhlZGAiKTtyZXR1cm4gZX12YXIgV2d0PWcoKCk9PntpKFVndCwiY2hlY2tMaXN0SXRlbUluZGVudCIpfSk7ZnVuY3Rpb24gR2d0KHMsZSx0LGEpe2xldCByPVVndCh0KSxuPXQuYnVsbGV0Q3VycmVudHx8UTkodCk7ZSYmZS50eXBlPT09Imxpc3QiJiZlLm9yZGVyZWQmJihuPSh0eXBlb2YgZS5zdGFydD09Im51bWJlciImJmUuc3RhcnQ+LTE/ZS5zdGFydDoxKSsodC5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOmUuY2hpbGRyZW4uaW5kZXhPZihzKSkrbik7bGV0IG89bi5sZW5ndGgrMTsocj09PSJ0YWIifHxyPT09Im1peGVkIiYmKGUmJmUudHlwZT09PSJsaXN0IiYmZS5zcHJlYWR8fHMuc3ByZWFkKSkmJihvPU1hdGguY2VpbChvLzQpKjQpO2xldCBsPXQuY3JlYXRlVHJhY2tlcihhKTtsLm1vdmUobisiICIucmVwZWF0KG8tbi5sZW5ndGgpKSxsLnNoaWZ0KG8pO2xldCBwPXQuZW50ZXIoImxpc3RJdGVtIiksZD10LmluZGVudExpbmVzKHQuY29udGFpbmVyRmxvdyhzLGwuY3VycmVudCgpKSx1KTtyZXR1cm4gcCgpLGQ7ZnVuY3Rpb24gdShjLGIsdil7cmV0dXJuIGI/KHY/IiI6IiAiLnJlcGVhdChvKSkrYzoodj9uOm4rIiAiLnJlcGVhdChvLW4ubGVuZ3RoKSkrY31pKHUsIm1hcCIpfXZhciBLZ3Q9ZygoKT0+e3VpZSgpO1dndCgpO2koR2d0LCJsaXN0SXRlbSIpfSk7ZnVuY3Rpb24gWWd0KHMsZSx0LGEpe2xldCByPXQuZW50ZXIoInBhcmFncmFwaCIpLG49dC5lbnRlcigicGhyYXNpbmciKSxvPXQuY29udGFpbmVyUGhyYXNpbmcocyxhKTtyZXR1cm4gbigpLHIoKSxvfXZhciBaZ3Q9ZygoKT0+e2koWWd0LCJwYXJhZ3JhcGgiKX0pO3ZhciB6ZmUsWGd0PWcoKCk9Pnt0aWUoKTt6ZmU9RDAoWyJicmVhayIsImRlbGV0ZSIsImVtcGhhc2lzIiwiZm9vdG5vdGUiLCJmb290bm90ZVJlZmVyZW5jZSIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwiaW5saW5lTWF0aCIsImxpbmsiLCJsaW5rUmVmZXJlbmNlIiwibWR4SnN4VGV4dEVsZW1lbnQiLCJtZHhUZXh0RXhwcmVzc2lvbiIsInN0cm9uZyIsInRleHQiLCJ0ZXh0RGlyZWN0aXZlIl0pfSk7dmFyIFFndD1nKCgpPT57WGd0KCl9KTtmdW5jdGlvbiBKZ3QocyxlLHQsYSl7cmV0dXJuKHMuY2hpbGRyZW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4gemZlKG8pfSk/dC5jb250YWluZXJQaHJhc2luZzp0LmNvbnRhaW5lckZsb3cpLmNhbGwodCxzLGEpfXZhciBlN3Q9ZygoKT0+e1FndCgpO2koSmd0LCJyb290Iil9KTtmdW5jdGlvbiB0N3Qocyl7bGV0IGU9cy5vcHRpb25zLnN0cm9uZ3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHN0cm9uZyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnN0cm9uZ2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIGE3dD1nKCgpPT57aSh0N3QsImNoZWNrU3Ryb25nIil9KTtmdW5jdGlvbiBDZmUocyxlLHQsYSl7bGV0IHI9dDd0KHQpLG49dC5lbnRlcigic3Ryb25nIiksbz10LmNyZWF0ZVRyYWNrZXIoYSksbD1vLm1vdmUocityKSxwPW8ubW92ZSh0LmNvbnRhaW5lclBocmFzaW5nKHMse2FmdGVyOnIsYmVmb3JlOmwsLi4uby5jdXJyZW50KCl9KSksZD1wLmNoYXJDb2RlQXQoMCksdT1YOShhLmJlZm9yZS5jaGFyQ29kZUF0KGEuYmVmb3JlLmxlbmd0aC0xKSxkLHIpO3UuaW5zaWRlJiYocD1qbChkKStwLnNsaWNlKDEpKTtsZXQgYz1wLmNoYXJDb2RlQXQocC5sZW5ndGgtMSksYj1YOShhLmFmdGVyLmNoYXJDb2RlQXQoMCksYyxyKTtiLmluc2lkZSYmKHA9cC5zbGljZSgwLC0xKStqbChjKSk7bGV0IHY9by5tb3ZlKHIrcik7cmV0dXJuIG4oKSx0LmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6Yi5vdXRzaWRlLGJlZm9yZTp1Lm91dHNpZGV9LGwrcCt2fWZ1bmN0aW9uIGlSYShzLGUsdCl7cmV0dXJuIHQub3B0aW9ucy5zdHJvbmd8fCIqIn12YXIgczd0PWcoKCk9PnthN3QoKTtaOSgpO2ZmZSgpO0NmZS5wZWVrPWlSYTtpKENmZSwic3Ryb25nIik7aShpUmEsInN0cm9uZ1BlZWsiKX0pO2Z1bmN0aW9uIGk3dChzLGUsdCxhKXtyZXR1cm4gdC5zYWZlKHMudmFsdWUsYSl9dmFyIHI3dD1nKCgpPT57aShpN3QsInRleHQiKX0pO2Z1bmN0aW9uIG83dChzKXtsZXQgZT1zLm9wdGlvbnMucnVsZVJlcGV0aXRpb258fDM7aWYoZTwzKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIHJlcGV0aXRpb24gYCIrZSsiYCBmb3IgYG9wdGlvbnMucnVsZVJlcGV0aXRpb25gLCBleHBlY3RlZCBgM2Agb3IgbW9yZSIpO3JldHVybiBlfXZhciBuN3Q9ZygoKT0+e2kobzd0LCJjaGVja1J1bGVSZXBldGl0aW9uIil9KTtmdW5jdGlvbiBsN3QocyxlLHQpe2xldCBhPShwaWUodCkrKHQub3B0aW9ucy5ydWxlU3BhY2VzPyIgIjoiIikpLnJlcGVhdChvN3QodCkpO3JldHVybiB0Lm9wdGlvbnMucnVsZVNwYWNlcz9hLnNsaWNlKDAsLTEpOmF9dmFyIGM3dD1nKCgpPT57bjd0KCk7TWZlKCk7aShsN3QsInRoZW1hdGljQnJlYWsiKX0pO3ZhciBDMyxUZmU9ZygoKT0+e3BndCgpO2ZndCgpO3lndCgpO2tndCgpO01ndCgpO0xndCgpO0VndCgpO1BndCgpO0lndCgpO0FndCgpO1JndCgpO09ndCgpO1ZndCgpO0tndCgpO1pndCgpO2U3dCgpO3M3dCgpO3I3dCgpO2M3dCgpO0MzPXtibG9ja3F1b3RlOnVndCxicmVhazpwZmUsY29kZTp4Z3QsZGVmaW5pdGlvbjp3Z3QsZW1waGFzaXM6bWZlLGhhcmRCcmVhazpwZmUsaGVhZGluZzpEZ3QsaHRtbDp2ZmUsaW1hZ2U6eGZlLGltYWdlUmVmZXJlbmNlOnlmZSxpbmxpbmVDb2RlOndmZSxsaW5rOlNmZSxsaW5rUmVmZXJlbmNlOl9mZSxsaXN0OmpndCxsaXN0SXRlbTpHZ3QscGFyYWdyYXBoOllndCxyb290OkpndCxzdHJvbmc6Q2ZlLHRleHQ6aTd0LHRoZW1hdGljQnJlYWs6bDd0fX0pO2Z1bmN0aW9uIHJSYShzLGUsdCxhKXtpZihlLnR5cGU9PT0iY29kZSImJmxrKGUsYSkmJihzLnR5cGU9PT0ibGlzdCJ8fHMudHlwZT09PWUudHlwZSYmbGsocyxhKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiB0JiZ0eXBlb2YgdC5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gcy50eXBlPT09InBhcmFncmFwaCImJihzLnR5cGU9PT1lLnR5cGV8fGUudHlwZT09PSJkZWZpbml0aW9uInx8ZS50eXBlPT09ImhlYWRpbmciJiZkaWUoZSxhKSk/dm9pZCAwOnQuc3ByZWFkPzE6MH12YXIgZDd0LHU3dD1nKCgpPT57aGZlKCk7YmZlKCk7ZDd0PVtyUmFdO2koclJhLCJqb2luRGVmYXVsdHMiKX0pO3ZhciBUMyxwN3QsaDd0PWcoKCk9PntUMz1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl0scDd0PVt7Y2hhcmFjdGVyOiIJIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjpgCmAsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOiIgIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiISIsYWZ0ZXI6IlxcWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpUM30se2NoYXJhY3RlcjonIicsaW5Db25zdHJ1Y3Q6InRpdGxlUXVvdGUifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IiMifSx7Y2hhcmFjdGVyOiIjIixpbkNvbnN0cnVjdDoiaGVhZGluZ0F0eCIsYWZ0ZXI6YCg/OltccgpdfCQpYH0se2NoYXJhY3RlcjoiJiIsYWZ0ZXI6IlsjQS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiJyIsaW5Db25zdHJ1Y3Q6InRpdGxlQXBvc3Ryb3BoZSJ9LHtjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHtiZWZvcmU6IlxcXSIsY2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OlQzfSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiKSJ9LHtjaGFyYWN0ZXI6IikiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKiIsYWZ0ZXI6YCg/OlsgCVxyCipdKWB9LHtjaGFyYWN0ZXI6IioiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6VDN9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKyIsYWZ0ZXI6YCg/OlsgCVxyCl0pYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjpgKD86WyAJXHIKLV0pYH0se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6Ii4iLGFmdGVyOmAoPzpbIAlccgpdfCQpYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0ifSx7Y2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6VDN9LHtjaGFyYWN0ZXI6IjwiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij4ifSx7Y2hhcmFjdGVyOiI+IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJbIn0se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpUM30se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7Y2hhcmFjdGVyOiJcXCIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiJdIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiXyJ9LHtjaGFyYWN0ZXI6Il8iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6VDN9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiYCJ9LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiXX0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpUM30se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ+In1dfSk7ZnVuY3Rpb24gWnAocyl7bGV0IGU9IiYiK3MrIjsiO2Y3dC5pbm5lckhUTUw9ZTtsZXQgdD1mN3QudGV4dENvbnRlbnQ7cmV0dXJuIHQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKT09PTU5JiZzIT09InNlbWkifHx0PT09ZT8hMTp0fXZhciBmN3QsZGs9ZygoKT0+e2Y3dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7aShacCwiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIEo5KHMsZSl7bGV0IHQ9TnVtYmVyLnBhcnNlSW50KHMsZSk7cmV0dXJuIHQ8OXx8dD09PTExfHx0PjEzJiZ0PDMyfHx0PjEyNiYmdDwxNjB8fHQ+NTUyOTUmJnQ8NTczNDR8fHQ+NjQ5NzUmJnQ8NjUwMDh8fCh0JjY1NTM1KT09PTY1NTM1fHwodCY2NTUzNSk9PT02NTUzNHx8dD4xMTE0MTExPyJcdUZGRkQiOlN0cmluZy5mcm9tQ29kZVBvaW50KHQpfXZhciBoaWU9ZygoKT0+e2koSjksImRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIGZpZShzKXtyZXR1cm4gcy5yZXBsYWNlKG9SYSxuUmEpfWZ1bmN0aW9uIG5SYShzLGUsdCl7aWYoZSlyZXR1cm4gZTtpZih0LmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IHI9dC5jaGFyQ29kZUF0KDEpLG49cj09PTEyMHx8cj09PTg4O3JldHVybiBKOSh0LnNsaWNlKG4/MjoxKSxuPzE2OjEwKX1yZXR1cm4gWnAodCl8fHN9dmFyIG9SYSwkZmU9ZygoKT0+e2RrKCk7aGllKCk7b1JhPS9cXChbIS0vOi1AWy1gey1+XSl8JigjKD86XGR7MSw3fXx4W1xkYS1mXXsxLDZ9KXxbXGRhLXpdezEsMzF9KTsvZ2k7aShmaWUsImRlY29kZVN0cmluZyIpO2koblJhLCJkZWNvZGUiKX0pO2Z1bmN0aW9uIG03dChzKXtyZXR1cm4gcy5sYWJlbHx8IXMuaWRlbnRpZmllcj9zLmxhYmVsfHwiIjpmaWUocy5pZGVudGlmaWVyKX12YXIgZzd0PWcoKCk9PnskZmUoKTtpKG03dCwiYXNzb2NpYXRpb24iKX0pO2Z1bmN0aW9uIGI3dChzKXtpZighcy5fY29tcGlsZWQpe2xldCBlPShzLmF0QnJlYWs/IltcXHJcXG5dW1xcdCBdKiI6IiIpKyhzLmJlZm9yZT8iKD86IitzLmJlZm9yZSsiKSI6IiIpO3MuX2NvbXBpbGVkPW5ldyBSZWdFeHAoKGU/IigiK2UrIikiOiIiKSsoL1t8XFx7fSgpW1xdXiQrKj8uLV0vLnRlc3Qocy5jaGFyYWN0ZXIpPyJcXCI6IiIpK3MuY2hhcmFjdGVyKyhzLmFmdGVyPyIoPzoiK3MuYWZ0ZXIrIikiOiIiKSwiZyIpfXJldHVybiBzLl9jb21waWxlZH12YXIgdjd0PWcoKCk9PntpKGI3dCwiY29tcGlsZVBhdHRlcm4iKX0pO2Z1bmN0aW9uIHg3dChzLGUsdCl7bGV0IGE9ZS5pbmRleFN0YWNrLHI9cy5jaGlsZHJlbnx8W10sbj1bXSxvPS0xLGw9dC5iZWZvcmUscDthLnB1c2goLTEpO2xldCBkPWUuY3JlYXRlVHJhY2tlcih0KTtmb3IoOysrbzxyLmxlbmd0aDspe2xldCB1PXJbb10sYztpZihhW2EubGVuZ3RoLTFdPW8sbysxPHIubGVuZ3RoKXtsZXQgeD1lLmhhbmRsZS5oYW5kbGVyc1tyW28rMV0udHlwZV07eCYmeC5wZWVrJiYoeD14LnBlZWspLGM9eD94KHJbbysxXSxzLGUse2JlZm9yZToiIixhZnRlcjoiIiwuLi5kLmN1cnJlbnQoKX0pLmNoYXJBdCgwKToiIn1lbHNlIGM9dC5hZnRlcjtuLmxlbmd0aD4wJiYobD09PSJcciJ8fGw9PT1gCmApJiZ1LnR5cGU9PT0iaHRtbCImJihuW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0ucmVwbGFjZSgvKFxyP1xufFxyKSQvLCIgIiksbD0iICIsZD1lLmNyZWF0ZVRyYWNrZXIodCksZC5tb3ZlKG4uam9pbigiIikpKTtsZXQgYj1lLmhhbmRsZSh1LHMsZSx7Li4uZC5jdXJyZW50KCksYWZ0ZXI6YyxiZWZvcmU6bH0pO3AmJnA9PT1iLnNsaWNlKDAsMSkmJihiPWpsKHAuY2hhckNvZGVBdCgwKSkrYi5zbGljZSgxKSk7bGV0IHY9ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm87ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89dm9pZCAwLHA9dm9pZCAwLHYmJihuLmxlbmd0aD4wJiZ2LmJlZm9yZSYmbD09PW5bbi5sZW5ndGgtMV0uc2xpY2UoLTEpJiYobltuLmxlbmd0aC0xXT1uW24ubGVuZ3RoLTFdLnNsaWNlKDAsLTEpK2psKGwuY2hhckNvZGVBdCgwKSkpLHYuYWZ0ZXImJihwPWMpKSxkLm1vdmUoYiksbi5wdXNoKGIpLGw9Yi5zbGljZSgtMSl9cmV0dXJuIGEucG9wKCksbi5qb2luKCIiKX12YXIgeTd0PWcoKCk9PntaOSgpO2koeDd0LCJjb250YWluZXJQaHJhc2luZyIpfSk7ZnVuY3Rpb24gdzd0KHMsZSx0KXtsZXQgYT1lLmluZGV4U3RhY2sscj1zLmNoaWxkcmVufHxbXSxuPWUuY3JlYXRlVHJhY2tlcih0KSxvPVtdLGw9LTE7Zm9yKGEucHVzaCgtMSk7KytsPHIubGVuZ3RoOyl7bGV0IHA9cltsXTthW2EubGVuZ3RoLTFdPWwsby5wdXNoKG4ubW92ZShlLmhhbmRsZShwLHMsZSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KSkpLHAudHlwZSE9PSJsaXN0IiYmKGUuYnVsbGV0TGFzdFVzZWQ9dm9pZCAwKSxsPHIubGVuZ3RoLTEmJm8ucHVzaChuLm1vdmUobFJhKHAscltsKzFdLHMsZSkpKX1yZXR1cm4gYS5wb3AoKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIGxSYShzLGUsdCxhKXtsZXQgcj1hLmpvaW4ubGVuZ3RoO2Zvcig7ci0tOyl7bGV0IG49YS5qb2luW3JdKHMsZSx0LGEpO2lmKG49PT0hMHx8bj09PTEpYnJlYWs7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybmAKYC5yZXBlYXQoMStuKTtpZihuPT09ITEpcmV0dXJuYAoKPCEtLS0tPgoKYH1yZXR1cm5gCgpgfXZhciBrN3Q9ZygoKT0+e2kodzd0LCJjb250YWluZXJGbG93Iik7aShsUmEsImJldHdlZW4iKX0pO2Z1bmN0aW9uIFM3dChzLGUpe2xldCB0PVtdLGE9MCxyPTAsbjtmb3IoO249Y1JhLmV4ZWMocyk7KW8ocy5zbGljZShhLG4uaW5kZXgpKSx0LnB1c2goblswXSksYT1uLmluZGV4K25bMF0ubGVuZ3RoLHIrKztyZXR1cm4gbyhzLnNsaWNlKGEpKSx0LmpvaW4oIiIpO2Z1bmN0aW9uIG8obCl7dC5wdXNoKGUobCxyLCFsKSl9aShvLCJvbmUiKX12YXIgY1JhLF83dD1nKCgpPT57Y1JhPS9ccj9cbnxcci9nO2koUzd0LCJpbmRlbnRMaW5lcyIpfSk7ZnVuY3Rpb24gejd0KHMsZSx0KXtsZXQgYT0odC5iZWZvcmV8fCIiKSsoZXx8IiIpKyh0LmFmdGVyfHwiIikscj1bXSxuPVtdLG89e30sbD0tMTtmb3IoOysrbDxzLnVuc2FmZS5sZW5ndGg7KXtsZXQgdT1zLnVuc2FmZVtsXTtpZighb2llKHMuc3RhY2ssdSkpY29udGludWU7bGV0IGM9cy5jb21waWxlUGF0dGVybih1KSxiO2Zvcig7Yj1jLmV4ZWMoYSk7KXtsZXQgdj0iYmVmb3JlImluIHV8fCEhdS5hdEJyZWFrLHg9ImFmdGVyImluIHUsbT1iLmluZGV4Kyh2P2JbMV0ubGVuZ3RoOjApO3IuaW5jbHVkZXMobSk/KG9bbV0uYmVmb3JlJiYhdiYmKG9bbV0uYmVmb3JlPSExKSxvW21dLmFmdGVyJiYheCYmKG9bbV0uYWZ0ZXI9ITEpKTooci5wdXNoKG0pLG9bbV09e2JlZm9yZTp2LGFmdGVyOnh9KX19ci5zb3J0KGRSYSk7bGV0IHA9dC5iZWZvcmU/dC5iZWZvcmUubGVuZ3RoOjAsZD1hLmxlbmd0aC0odC5hZnRlcj90LmFmdGVyLmxlbmd0aDowKTtmb3IobD0tMTsrK2w8ci5sZW5ndGg7KXtsZXQgdT1yW2xdO3U8cHx8dT49ZHx8dSsxPGQmJnJbbCsxXT09PXUrMSYmb1t1XS5hZnRlciYmIW9bdSsxXS5iZWZvcmUmJiFvW3UrMV0uYWZ0ZXJ8fHJbbC0xXT09PXUtMSYmb1t1XS5iZWZvcmUmJiFvW3UtMV0uYmVmb3JlJiYhb1t1LTFdLmFmdGVyfHwocCE9PXUmJm4ucHVzaChNN3QoYS5zbGljZShwLHUpLCJcXCIpKSxwPXUsL1shLS86LUBbLWB7LX5dLy50ZXN0KGEuY2hhckF0KHUpKSYmKCF0LmVuY29kZXx8IXQuZW5jb2RlLmluY2x1ZGVzKGEuY2hhckF0KHUpKSk/bi5wdXNoKCJcXCIpOihuLnB1c2goamwoYS5jaGFyQ29kZUF0KHUpKSkscCsrKSl9cmV0dXJuIG4ucHVzaChNN3QoYS5zbGljZShwLGQpLHQuYWZ0ZXIpKSxuLmpvaW4oIiIpfWZ1bmN0aW9uIGRSYShzLGUpe3JldHVybiBzLWV9ZnVuY3Rpb24gTTd0KHMsZSl7bGV0IHQ9L1xcKD89WyEtLzotQFstYHstfl0pL2csYT1bXSxyPVtdLG49cytlLG89LTEsbD0wLHA7Zm9yKDtwPXQuZXhlYyhuKTspYS5wdXNoKHAuaW5kZXgpO2Zvcig7KytvPGEubGVuZ3RoOylsIT09YVtvXSYmci5wdXNoKHMuc2xpY2UobCxhW29dKSksci5wdXNoKCJcXCIpLGw9YVtvXTtyZXR1cm4gci5wdXNoKHMuc2xpY2UobCkpLHIuam9pbigiIil9dmFyIEM3dD1nKCgpPT57WjkoKTt1ZmUoKTtpKHo3dCwic2FmZSIpO2koZFJhLCJudW1lcmljYWwiKTtpKE03dCwiZXNjYXBlQmFja3NsYXNoZXMiKX0pO2Z1bmN0aW9uIFQ3dChzKXtsZXQgZT1zfHx7fSx0PWUubm93fHx7fSxhPWUubGluZVNoaWZ0fHwwLHI9dC5saW5lfHwxLG49dC5jb2x1bW58fDE7cmV0dXJue21vdmU6cCxjdXJyZW50Om8sc2hpZnQ6bH07ZnVuY3Rpb24gbygpe3JldHVybntub3c6e2xpbmU6cixjb2x1bW46bn0sbGluZVNoaWZ0OmF9fWZ1bmN0aW9uIGwoZCl7YSs9ZH1mdW5jdGlvbiBwKGQpe2xldCB1PWR8fCIiLGM9dS5zcGxpdCgvXHI/XG58XHIvZyksYj1jW2MubGVuZ3RoLTFdO3JldHVybiByKz1jLmxlbmd0aC0xLG49Yy5sZW5ndGg9PT0xP24rYi5sZW5ndGg6MStiLmxlbmd0aCthLHV9fXZhciAkN3Q9ZygoKT0+e2koVDd0LCJ0cmFjayIpfSk7ZnVuY3Rpb24gRGZlKHMsZSl7bGV0IHQ9ZXx8e30sYT17YXNzb2NpYXRpb25JZDptN3QsY29udGFpbmVyUGhyYXNpbmc6ZlJhLGNvbnRhaW5lckZsb3c6bVJhLGNyZWF0ZVRyYWNrZXI6VDd0LGNvbXBpbGVQYXR0ZXJuOmI3dCxlbnRlcjpuLGhhbmRsZXJzOnsuLi5DM30saGFuZGxlOnZvaWQgMCxpbmRlbnRMaW5lczpTN3QsaW5kZXhTdGFjazpbXSxqb2luOlsuLi5kN3RdLG9wdGlvbnM6e30sc2FmZTpnUmEsc3RhY2s6W10sdW5zYWZlOlsuLi5wN3RdfTtkZmUoYSx0KSxhLm9wdGlvbnMudGlnaHREZWZpbml0aW9ucyYmYS5qb2luLnB1c2goaFJhKSxhLmhhbmRsZT1yaWUoInR5cGUiLHtpbnZhbGlkOnVSYSx1bmtub3duOnBSYSxoYW5kbGVyczphLmhhbmRsZXJzfSk7bGV0IHI9YS5oYW5kbGUocyx2b2lkIDAsYSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsbm93OntsaW5lOjEsY29sdW1uOjF9LGxpbmVTaGlmdDowfSk7cmV0dXJuIHImJnIuY2hhckNvZGVBdChyLmxlbmd0aC0xKSE9PTEwJiZyLmNoYXJDb2RlQXQoci5sZW5ndGgtMSkhPT0xMyYmKHIrPWAKYCkscjtmdW5jdGlvbiBuKG8pe3JldHVybiBhLnN0YWNrLnB1c2gobyksbDtmdW5jdGlvbiBsKCl7YS5zdGFjay5wb3AoKX1pKGwsImV4aXQiKX1pKG4sImVudGVyIil9ZnVuY3Rpb24gdVJhKHMpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB2YWx1ZSBgIitzKyJgLCBleHBlY3RlZCBub2RlIil9ZnVuY3Rpb24gcFJhKHMpe2xldCBlPXM7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHVua25vd24gbm9kZSBgIitlLnR5cGUrImAiKX1mdW5jdGlvbiBoUmEocyxlKXtpZihzLnR5cGU9PT0iZGVmaW5pdGlvbiImJnMudHlwZT09PWUudHlwZSlyZXR1cm4gMH1mdW5jdGlvbiBmUmEocyxlKXtyZXR1cm4geDd0KHMsdGhpcyxlKX1mdW5jdGlvbiBtUmEocyxlKXtyZXR1cm4gdzd0KHMsdGhpcyxlKX1mdW5jdGlvbiBnUmEocyxlKXtyZXR1cm4gejd0KHRoaXMscyxlKX12YXIgRDd0PWcoKCk9PntjZmUoKTtkZ3QoKTtUZmUoKTt1N3QoKTtoN3QoKTtnN3QoKTt2N3QoKTt5N3QoKTtrN3QoKTtfN3QoKTtDN3QoKTskN3QoKTtpKERmZSwidG9NYXJrZG93biIpO2kodVJhLCJpbnZhbGlkIik7aShwUmEsInVua25vd24iKTtpKGhSYSwiam9pbkRlZmluaXRpb24iKTtpKGZSYSwiY29udGFpbmVyUGhyYXNpbmdCb3VuZCIpO2kobVJhLCJjb250YWluZXJGbG93Qm91bmQiKTtpKGdSYSwic2FmZUJvdW5kIil9KTt2YXIgbWllPWcoKCk9PntEN3QoKTtUZmUoKX0pO2Z1bmN0aW9uIEVmZSgpe3JldHVybntlbnRlcjp7dGFibGU6YlJhLHRhYmxlRGF0YTpMN3QsdGFibGVIZWFkZXI6TDd0LHRhYmxlUm93OnhSYX0sZXhpdDp7Y29kZVRleHQ6eVJhLHRhYmxlOnZSYSx0YWJsZURhdGE6TGZlLHRhYmxlSGVhZGVyOkxmZSx0YWJsZVJvdzpMZmV9fX1mdW5jdGlvbiBiUmEocyl7bGV0IGU9cy5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOmUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0PT09Im5vbmUiP251bGw6dH0pLGNoaWxkcmVuOltdfSxzKSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiB2UmEocyl7dGhpcy5leGl0KHMpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiB4UmEocyl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSxzKX1mdW5jdGlvbiBMZmUocyl7dGhpcy5leGl0KHMpfWZ1bmN0aW9uIEw3dChzKXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSxzKX1mdW5jdGlvbiB5UmEocyl7bGV0IGU9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyx3UmEpKTtsZXQgdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3QudHlwZSx0LnZhbHVlPWUsdGhpcy5leGl0KHMpfWZ1bmN0aW9uIHdSYShzLGUpe3JldHVybiBlPT09InwiP2U6c31mdW5jdGlvbiBQZmUocyl7bGV0IGU9c3x8e30sdD1lLnRhYmxlQ2VsbFBhZGRpbmcsYT1lLnRhYmxlUGlwZUFsaWduLHI9ZS5zdHJpbmdMZW5ndGgsbj10PyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTpiLHRhYmxlOm8sdGFibGVDZWxsOnAsdGFibGVSb3c6bH19O2Z1bmN0aW9uIG8odix4LG0sZil7cmV0dXJuIGQodSh2LG0sZiksdi5hbGlnbil9ZnVuY3Rpb24gbCh2LHgsbSxmKXtsZXQgeT1jKHYsbSxmKSxNPWQoW3ldKTtyZXR1cm4gTS5zbGljZSgwLE0uaW5kZXhPZihgCmApKX1mdW5jdGlvbiBwKHYseCxtLGYpe2xldCB5PW0uZW50ZXIoInRhYmxlQ2VsbCIpLE09bS5lbnRlcigicGhyYXNpbmciKSx6PW0uY29udGFpbmVyUGhyYXNpbmcodix7Li4uZixiZWZvcmU6bixhZnRlcjpufSk7cmV0dXJuIE0oKSx5KCksen1mdW5jdGlvbiBkKHYseCl7cmV0dXJuIG9ndCh2LHthbGlnbjp4LGFsaWduRGVsaW1pdGVyczphLHBhZGRpbmc6dCxzdHJpbmdMZW5ndGg6cn0pfWZ1bmN0aW9uIHUodix4LG0pe2xldCBmPXYuY2hpbGRyZW4seT0tMSxNPVtdLHo9eC5lbnRlcigidGFibGUiKTtmb3IoOysreTxmLmxlbmd0aDspTVt5XT1jKGZbeV0seCxtKTtyZXR1cm4geigpLE19ZnVuY3Rpb24gYyh2LHgsbSl7bGV0IGY9di5jaGlsZHJlbix5PS0xLE09W10sej14LmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt5PGYubGVuZ3RoOylNW3ldPXAoZlt5XSx2LHgsbSk7cmV0dXJuIHooKSxNfWZ1bmN0aW9uIGIodix4LG0pe2xldCBmPUMzLmlubGluZUNvZGUodix4LG0pO3JldHVybiBtLnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKGY9Zi5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLGZ9fXZhciBFN3Q9ZygoKT0+e1dwKCk7bmd0KCk7bWllKCk7aShFZmUsImdmbVRhYmxlRnJvbU1hcmtkb3duIik7aShiUmEsImVudGVyVGFibGUiKTtpKHZSYSwiZXhpdFRhYmxlIik7aSh4UmEsImVudGVyUm93Iik7aShMZmUsImV4aXQiKTtpKEw3dCwiZW50ZXJDZWxsIik7aSh5UmEsImV4aXRDb2RlVGV4dCIpO2kod1JhLCJyZXBsYWNlIik7aShQZmUsImdmbVRhYmxlVG9NYXJrZG93biIpfSk7dmFyIFA3dD1nKCgpPT57RTd0KCl9KTtmdW5jdGlvbiBJZmUoKXtyZXR1cm57ZXhpdDp7dGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZDpJN3QsdGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkOkk3dCxwYXJhZ3JhcGg6a1JhfX19ZnVuY3Rpb24gQWZlKCl7cmV0dXJue3Vuc2FmZTpbe2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2xpc3RJdGVtOlNSYX19fWZ1bmN0aW9uIEk3dChzKXtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2UudHlwZSxlLmNoZWNrZWQ9cy50eXBlPT09InRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQifWZ1bmN0aW9uIGtSYShzKXtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2lmKGUmJmUudHlwZT09PSJsaXN0SXRlbSImJnR5cGVvZiBlLmNoZWNrZWQ9PSJib29sZWFuIil7bGV0IHQ9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt0LnR5cGU7bGV0IGE9dC5jaGlsZHJlblswXTtpZihhJiZhLnR5cGU9PT0idGV4dCIpe2xldCByPWUuY2hpbGRyZW4sbj0tMSxvO2Zvcig7KytuPHIubGVuZ3RoOyl7bGV0IGw9cltuXTtpZihsLnR5cGU9PT0icGFyYWdyYXBoIil7bz1sO2JyZWFrfX1vPT09dCYmKGEudmFsdWU9YS52YWx1ZS5zbGljZSgxKSxhLnZhbHVlLmxlbmd0aD09PTA/dC5jaGlsZHJlbi5zaGlmdCgpOnQucG9zaXRpb24mJmEucG9zaXRpb24mJnR5cGVvZiBhLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldD09Im51bWJlciImJihhLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbisrLGEucG9zaXRpb24uc3RhcnQub2Zmc2V0KyssdC5wb3NpdGlvbi5zdGFydD1PYmplY3QuYXNzaWduKHt9LGEucG9zaXRpb24uc3RhcnQpKSl9fXRoaXMuZXhpdChzKX1mdW5jdGlvbiBTUmEocyxlLHQsYSl7bGV0IHI9cy5jaGlsZHJlblswXSxuPXR5cGVvZiBzLmNoZWNrZWQ9PSJib29sZWFuIiYmciYmci50eXBlPT09InBhcmFncmFwaCIsbz0iWyIrKHMuY2hlY2tlZD8ieCI6IiAiKSsiXSAiLGw9dC5jcmVhdGVUcmFja2VyKGEpO24mJmwubW92ZShvKTtsZXQgcD1DMy5saXN0SXRlbShzLGUsdCx7Li4uYSwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBuJiYocD1wLnJlcGxhY2UoL14oPzpbKistXXxcZCtcLikoW1xyXG5dfCB7MSwzfSkvLGQpKSxwO2Z1bmN0aW9uIGQodSl7cmV0dXJuIHUrb31pKGQsImNoZWNrIil9dmFyIEE3dD1nKCgpPT57V3AoKTttaWUoKTtpKElmZSwiZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duIik7aShBZmUsImdmbVRhc2tMaXN0SXRlbVRvTWFya2Rvd24iKTtpKEk3dCwiZXhpdENoZWNrIik7aShrUmEsImV4aXRQYXJhZ3JhcGhXaXRoVGFza0xpc3RJdGVtIik7aShTUmEsImxpc3RJdGVtV2l0aFRhc2tMaXN0SXRlbSIpfSk7dmFyIE43dD1nKCgpPT57QTd0KCl9KTtmdW5jdGlvbiBOZmUoKXtyZXR1cm5bc2ZlKCkscmZlKCksbmZlKCksRWZlKCksSWZlKCldfWZ1bmN0aW9uIFJmZShzKXtyZXR1cm57ZXh0ZW5zaW9uczpbaWZlKCksb2ZlKHMpLGxmZSgpLFBmZShzKSxBZmUoKV19fXZhciBSN3Q9ZygoKT0+e1g4dCgpO3RndCgpO2lndCgpO1A3dCgpO043dCgpO2koTmZlLCJnZm1Gcm9tTWFya2Rvd24iKTtpKFJmZSwiZ2ZtVG9NYXJrZG93biIpfSk7dmFyIE83dD1nKCgpPT57Ujd0KCl9KTtmdW5jdGlvbiBzcihzLGUsdCxhKXtsZXQgcj1zLmxlbmd0aCxuPTAsbztpZihlPDA/ZT0tZT5yPzA6citlOmU9ZT5yP3I6ZSx0PXQ+MD90OjAsYS5sZW5ndGg8MWU0KW89QXJyYXkuZnJvbShhKSxvLnVuc2hpZnQoZSx0KSxzLnNwbGljZSguLi5vKTtlbHNlIGZvcih0JiZzLnNwbGljZShlLHQpO248YS5sZW5ndGg7KW89YS5zbGljZShuLG4rMWU0KSxvLnVuc2hpZnQoZSwwKSxzLnNwbGljZSguLi5vKSxuKz0xZTQsZSs9MWU0fWZ1bmN0aW9uIE1yKHMsZSl7cmV0dXJuIHMubGVuZ3RoPjA/KHNyKHMscy5sZW5ndGgsMCxlKSxzKTplfXZhciBiZD1nKCgpPT57aShzciwic3BsaWNlIik7aShNciwicHVzaCIpfSk7ZnVuY3Rpb24gZ2llKHMpe2xldCBlPXt9LHQ9LTE7Zm9yKDsrK3Q8cy5sZW5ndGg7KV9SYShlLHNbdF0pO3JldHVybiBlfWZ1bmN0aW9uIF9SYShzLGUpe2xldCB0O2Zvcih0IGluIGUpe2xldCByPShPZmUuY2FsbChzLHQpP3NbdF06dm9pZCAwKXx8KHNbdF09e30pLG49ZVt0XSxvO2lmKG4pZm9yKG8gaW4gbil7T2ZlLmNhbGwocixvKXx8KHJbb109W10pO2xldCBsPW5bb107TVJhKHJbb10sQXJyYXkuaXNBcnJheShsKT9sOmw/W2xdOltdKX19fWZ1bmN0aW9uIE1SYShzLGUpe2xldCB0PS0xLGE9W107Zm9yKDsrK3Q8ZS5sZW5ndGg7KShlW3RdLmFkZD09PSJhZnRlciI/czphKS5wdXNoKGVbdF0pO3NyKHMsMCwwLGEpfWZ1bmN0aW9uIGJpZShzKXtsZXQgZT17fSx0PS0xO2Zvcig7Kyt0PHMubGVuZ3RoOyl6UmEoZSxzW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiB6UmEocyxlKXtsZXQgdDtmb3IodCBpbiBlKXtsZXQgcj0oT2ZlLmNhbGwocyx0KT9zW3RdOnZvaWQgMCl8fChzW3RdPXt9KSxuPWVbdF0sbztpZihuKWZvcihvIGluIG4pcltvXT1uW29dfX12YXIgT2ZlLHZpZT1nKCgpPT57YmQoKTtPZmU9e30uaGFzT3duUHJvcGVydHk7aShnaWUsImNvbWJpbmVFeHRlbnNpb25zIik7aShfUmEsInN5bnRheEV4dGVuc2lvbiIpO2koTVJhLCJjb25zdHJ1Y3RzIik7aShiaWUsImNvbWJpbmVIdG1sRXh0ZW5zaW9ucyIpO2koelJhLCJodG1sRXh0ZW5zaW9uIil9KTtmdW5jdGlvbiBIZmUoKXtyZXR1cm57dGV4dDp2ZH19ZnVuY3Rpb24gJFJhKHMsZSx0KXtsZXQgYT10aGlzLHIsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybiFGZmUoYyl8fCFXN3QuY2FsbChhLGEucHJldmlvdXMpfHxCZmUoYS5ldmVudHMpP3QoYyk6KHMuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLHMuZW50ZXIoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksbChjKSl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gRmZlKGMpPyhzLmNvbnN1bWUoYyksbCk6Yz09PTY0PyhzLmNvbnN1bWUoYykscCk6dChjKX1mdW5jdGlvbiBwKGMpe3JldHVybiBjPT09NDY/cy5jaGVjayhUUmEsdSxkKShjKTpjPT09NDV8fGM9PT05NXx8QmkoYyk/KG49ITAscy5jb25zdW1lKGMpLHApOnUoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gcy5jb25zdW1lKGMpLHI9ITAscH1mdW5jdGlvbiB1KGMpe3JldHVybiBuJiZyJiZVcihhLnByZXZpb3VzKT8ocy5leGl0KCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLHMuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShjKSk6dChjKX19ZnVuY3Rpb24gRFJhKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIG8hPT04NyYmbyE9PTExOXx8IVY3dC5jYWxsKGEsYS5wcmV2aW91cyl8fEJmZShhLmV2ZW50cyk/dChvKToocy5lbnRlcigibGl0ZXJhbEF1dG9saW5rIikscy5lbnRlcigibGl0ZXJhbEF1dG9saW5rV3d3Iikscy5jaGVjayhDUmEscy5hdHRlbXB0KEY3dCxzLmF0dGVtcHQoQjd0LG4pLHQpLHQpKG8pKX1mdW5jdGlvbiBuKG8pe3JldHVybiBzLmV4aXQoImxpdGVyYWxBdXRvbGlua1d3dyIpLHMuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShvKX19ZnVuY3Rpb24gTFJhKHMsZSx0KXtsZXQgYT10aGlzLHI9IiIsbj0hMTtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybihjPT09NzJ8fGM9PT0xMDQpJiZVN3QuY2FsbChhLGEucHJldmlvdXMpJiYhQmZlKGEuZXZlbnRzKT8ocy5lbnRlcigibGl0ZXJhbEF1dG9saW5rIikscy5lbnRlcigibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHIrPVN0cmluZy5mcm9tQ29kZVBvaW50KGMpLHMuY29uc3VtZShjKSxsKTp0KGMpfWZ1bmN0aW9uIGwoYyl7aWYoVXIoYykmJnIubGVuZ3RoPDUpcmV0dXJuIHIrPVN0cmluZy5mcm9tQ29kZVBvaW50KGMpLHMuY29uc3VtZShjKSxsO2lmKGM9PT01OCl7bGV0IGI9ci50b0xvd2VyQ2FzZSgpO2lmKGI9PT0iaHR0cCJ8fGI9PT0iaHR0cHMiKXJldHVybiBzLmNvbnN1bWUoYykscH1yZXR1cm4gdChjKX1mdW5jdGlvbiBwKGMpe3JldHVybiBjPT09NDc/KHMuY29uc3VtZShjKSxuP2Q6KG49ITAscCkpOnQoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gYz09PW51bGx8fFMzKGMpfHxBYShjKXx8Z2QoYyl8fF8zKGMpP3QoYyk6cy5hdHRlbXB0KEY3dCxzLmF0dGVtcHQoQjd0LHUpLHQpKGMpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIHMuZXhpdCgibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHMuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShjKX19ZnVuY3Rpb24gRVJhKHMsZSx0KXtsZXQgYT0wO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuKG89PT04N3x8bz09PTExOSkmJmE8Mz8oYSsrLHMuY29uc3VtZShvKSxyKTpvPT09NDYmJmE9PT0zPyhzLmNvbnN1bWUobyksbik6dChvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09bnVsbD90KG8pOmUobyl9fWZ1bmN0aW9uIFBSYShzLGUsdCl7bGV0IGEscixuO3JldHVybiBvO2Z1bmN0aW9uIG8oZCl7cmV0dXJuIGQ9PT00Nnx8ZD09PTk1P3MuY2hlY2soSDd0LHAsbCkoZCk6ZD09PW51bGx8fEFhKGQpfHxnZChkKXx8ZCE9PTQ1JiZfMyhkKT9wKGQpOihuPSEwLHMuY29uc3VtZShkKSxvKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09OTU/YT0hMDoocj1hLGE9dm9pZCAwKSxzLmNvbnN1bWUoZCksb31mdW5jdGlvbiBwKGQpe3JldHVybiByfHxhfHwhbj90KGQpOmUoZCl9fWZ1bmN0aW9uIElSYShzLGUpe2xldCB0PTAsYT0wO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIG89PT00MD8odCsrLHMuY29uc3VtZShvKSxyKTpvPT09NDEmJmE8dD9uKG8pOm89PT0zM3x8bz09PTM0fHxvPT09Mzh8fG89PT0zOXx8bz09PTQxfHxvPT09NDJ8fG89PT00NHx8bz09PTQ2fHxvPT09NTh8fG89PT01OXx8bz09PTYwfHxvPT09NjN8fG89PT05M3x8bz09PTk1fHxvPT09MTI2P3MuY2hlY2soSDd0LGUsbikobyk6bz09PW51bGx8fEFhKG8pfHxnZChvKT9lKG8pOihzLmNvbnN1bWUobykscil9ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PTQxJiZhKysscy5jb25zdW1lKG8pLHJ9fWZ1bmN0aW9uIEFSYShzLGUsdCl7cmV0dXJuIGE7ZnVuY3Rpb24gYShsKXtyZXR1cm4gbD09PTMzfHxsPT09MzR8fGw9PT0zOXx8bD09PTQxfHxsPT09NDJ8fGw9PT00NHx8bD09PTQ2fHxsPT09NTh8fGw9PT01OXx8bD09PTYzfHxsPT09OTV8fGw9PT0xMjY/KHMuY29uc3VtZShsKSxhKTpsPT09Mzg/KHMuY29uc3VtZShsKSxuKTpsPT09OTM/KHMuY29uc3VtZShsKSxyKTpsPT09NjB8fGw9PT1udWxsfHxBYShsKXx8Z2QobCk/ZShsKTp0KGwpfWZ1bmN0aW9uIHIobCl7cmV0dXJuIGw9PT1udWxsfHxsPT09NDB8fGw9PT05MXx8QWEobCl8fGdkKGwpP2UobCk6YShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBVcihsKT9vKGwpOnQobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbD09PTU5PyhzLmNvbnN1bWUobCksYSk6VXIobCk/KHMuY29uc3VtZShsKSxvKTp0KGwpfX1mdW5jdGlvbiBOUmEocyxlLHQpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIHMuY29uc3VtZShuKSxyfWZ1bmN0aW9uIHIobil7cmV0dXJuIEJpKG4pP3Qobik6ZShuKX19ZnVuY3Rpb24gVjd0KHMpe3JldHVybiBzPT09bnVsbHx8cz09PTQwfHxzPT09NDJ8fHM9PT05NXx8cz09PTkxfHxzPT09OTN8fHM9PT0xMjZ8fEFhKHMpfWZ1bmN0aW9uIFU3dChzKXtyZXR1cm4hVXIocyl9ZnVuY3Rpb24gVzd0KHMpe3JldHVybiEocz09PTQ3fHxGZmUocykpfWZ1bmN0aW9uIEZmZShzKXtyZXR1cm4gcz09PTQzfHxzPT09NDV8fHM9PT00Nnx8cz09PTk1fHxCaShzKX1mdW5jdGlvbiBCZmUocyl7bGV0IGU9cy5sZW5ndGgsdD0hMTtmb3IoO2UtLTspe2xldCBhPXNbZV1bMV07aWYoKGEudHlwZT09PSJsYWJlbExpbmsifHxhLnR5cGU9PT0ibGFiZWxJbWFnZSIpJiYhYS5fYmFsYW5jZWQpe3Q9ITA7YnJlYWt9aWYoYS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50byl7dD0hMTticmVha319cmV0dXJuIHMubGVuZ3RoPjAmJiF0JiYoc1tzLmxlbmd0aC0xXVsxXS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50bz0hMCksdH12YXIgQ1JhLEY3dCxCN3QsSDd0LFRSYSxxN3Qsajd0LEUwLHZkLEc3dD1nKCgpPT57VmEoKTtDUmE9e3Rva2VuaXplOkVSYSxwYXJ0aWFsOiEwfSxGN3Q9e3Rva2VuaXplOlBSYSxwYXJ0aWFsOiEwfSxCN3Q9e3Rva2VuaXplOklSYSxwYXJ0aWFsOiEwfSxIN3Q9e3Rva2VuaXplOkFSYSxwYXJ0aWFsOiEwfSxUUmE9e3Rva2VuaXplOk5SYSxwYXJ0aWFsOiEwfSxxN3Q9e25hbWU6Ind3d0F1dG9saW5rIix0b2tlbml6ZTpEUmEscHJldmlvdXM6Vjd0fSxqN3Q9e25hbWU6InByb3RvY29sQXV0b2xpbmsiLHRva2VuaXplOkxSYSxwcmV2aW91czpVN3R9LEUwPXtuYW1lOiJlbWFpbEF1dG9saW5rIix0b2tlbml6ZTokUmEscHJldmlvdXM6Vzd0fSx2ZD17fTtpKEhmZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsIik7Zm9yKHZhciAkMz00ODskMzwxMjM7KXZkWyQzXT1FMCwkMysrLCQzPT09NTg/JDM9NjU6JDM9PT05MSYmKCQzPTk3KTt2ZFs0M109RTAsdmRbNDVdPUUwLHZkWzQ2XT1FMCx2ZFs5NV09RTAsdmRbNzJdPVtFMCxqN3RdLHZkWzEwNF09W0UwLGo3dF0sdmRbODddPVtFMCxxN3RdLHZkWzExOV09W0UwLHE3dF07aSgkUmEsInRva2VuaXplRW1haWxBdXRvbGluayIpO2koRFJhLCJ0b2tlbml6ZVd3d0F1dG9saW5rIik7aShMUmEsInRva2VuaXplUHJvdG9jb2xBdXRvbGluayIpO2koRVJhLCJ0b2tlbml6ZVd3d1ByZWZpeCIpO2koUFJhLCJ0b2tlbml6ZURvbWFpbiIpO2koSVJhLCJ0b2tlbml6ZVBhdGgiKTtpKEFSYSwidG9rZW5pemVUcmFpbCIpO2koTlJhLCJ0b2tlbml6ZUVtYWlsRG9tYWluRG90VHJhaWwiKTtpKFY3dCwicHJldmlvdXNXd3ciKTtpKFU3dCwicHJldmlvdXNQcm90b2NvbCIpO2koVzd0LCJwcmV2aW91c0VtYWlsIik7aShGZmUsImdmbUF0ZXh0Iik7aShCZmUsInByZXZpb3VzVW5iYWxhbmNlZCIpfSk7ZnVuY3Rpb24geGllKHMpe3JldHVybiBzLnJlcGxhY2UoL1siJjw+XS9nLGUpO2Z1bmN0aW9uIGUodCl7cmV0dXJuIiYiK1JSYVt0XSsiOyJ9fXZhciBSUmEscWZlPWcoKCk9PntSUmE9eyciJzoicXVvdCIsIiYiOiJhbXAiLCI8IjoibHQiLCI+IjoiZ3QifTtpKHhpZSwiZW5jb2RlIil9KTtmdW5jdGlvbiB4ZChzLGUpe2xldCB0PXhpZShWbChzfHwiIikpO2lmKCFlKXJldHVybiB0O2xldCBhPXQuaW5kZXhPZigiOiIpLHI9dC5pbmRleE9mKCI/Iiksbj10LmluZGV4T2YoIiMiKSxvPXQuaW5kZXhPZigiLyIpO3JldHVybiBhPDB8fG8+LTEmJmE+b3x8cj4tMSYmYT5yfHxuPi0xJiZhPm58fGUudGVzdCh0LnNsaWNlKDAsYSkpP3Q6IiJ9ZnVuY3Rpb24gVmwocyl7bGV0IGU9W10sdD0tMSxhPTAscj0wO2Zvcig7Kyt0PHMubGVuZ3RoOyl7bGV0IG49cy5jaGFyQ29kZUF0KHQpLG89IiI7aWYobj09PTM3JiZCaShzLmNoYXJDb2RlQXQodCsxKSkmJkJpKHMuY2hhckNvZGVBdCh0KzIpKSlyPTI7ZWxzZSBpZihuPDEyOCkvWyEjJCYtOz0/LVpfYS16fl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuKSl8fChvPVN0cmluZy5mcm9tQ2hhckNvZGUobikpO2Vsc2UgaWYobj41NTI5NSYmbjw1NzM0NCl7bGV0IGw9cy5jaGFyQ29kZUF0KHQrMSk7bjw1NjMyMCYmbD41NjMxOSYmbDw1NzM0ND8obz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4sbCkscj0xKTpvPSJcdUZGRkQifWVsc2Ugbz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pO28mJihlLnB1c2gocy5zbGljZShhLHQpLGVuY29kZVVSSUNvbXBvbmVudChvKSksYT10K3IrMSxvPSIiKSxyJiYodCs9cixyPTApfXJldHVybiBlLmpvaW4oIiIpK3Muc2xpY2UoYSl9dmFyIHlkPWcoKCk9PntWYSgpO3FmZSgpO2koeGQsInNhbml0aXplVXJpIik7aShWbCwibm9ybWFsaXplVXJpIil9KTtmdW5jdGlvbiBWZmUoKXtyZXR1cm57ZXhpdDp7bGl0ZXJhbEF1dG9saW5rRW1haWw6RlJhLGxpdGVyYWxBdXRvbGlua0h0dHA6QlJhLGxpdGVyYWxBdXRvbGlua1d3dzpPUmF9fX1mdW5jdGlvbiBPUmEocyl7amZlLmNhbGwodGhpcyxzLCJodHRwOi8vIil9ZnVuY3Rpb24gRlJhKHMpe2pmZS5jYWxsKHRoaXMscywibWFpbHRvOiIpfWZ1bmN0aW9uIEJSYShzKXtqZmUuY2FsbCh0aGlzLHMpfWZ1bmN0aW9uIGpmZShzLGUpe2xldCB0PXRoaXMuc2xpY2VTZXJpYWxpemUocyk7dGhpcy50YWcoJzxhIGhyZWY9IicreGQoKGV8fCIiKSt0KSsnIj4nKSx0aGlzLnJhdyh0aGlzLmVuY29kZSh0KSksdGhpcy50YWcoIjwvYT4iKX12YXIgSzd0PWcoKCk9Pnt5ZCgpO2koVmZlLCJnZm1BdXRvbGlua0xpdGVyYWxIdG1sIik7aShPUmEsImxpdGVyYWxBdXRvbGlua1d3dyIpO2koRlJhLCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpO2koQlJhLCJsaXRlcmFsQXV0b2xpbmtIdHRwIik7aShqZmUsImFuY2hvckZyb21Ub2tlbiIpfSk7dmFyIFk3dD1nKCgpPT57Rzd0KCk7Szd0KCl9KTtmdW5jdGlvbiBYcChzLGUsdCl7bGV0IGE9W10scj0tMTtmb3IoOysrcjxzLmxlbmd0aDspe2xldCBuPXNbcl0ucmVzb2x2ZUFsbDtuJiYhYS5pbmNsdWRlcyhuKSYmKGU9bihlLHQpLGEucHVzaChuKSl9cmV0dXJuIGV9dmFyIHVrPWcoKCk9PntpKFhwLCJyZXNvbHZlQWxsIil9KTtmdW5jdGlvbiBIUmEocyxlKXtsZXQgdD0tMSxhLHIsbixvLGwscCxkLHU7Zm9yKDsrK3Q8cy5sZW5ndGg7KWlmKHNbdF1bMF09PT0iZW50ZXIiJiZzW3RdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZzW3RdWzFdLl9jbG9zZSl7Zm9yKGE9dDthLS07KWlmKHNbYV1bMF09PT0iZXhpdCImJnNbYV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJnNbYV1bMV0uX29wZW4mJmUuc2xpY2VTZXJpYWxpemUoc1thXVsxXSkuY2hhckNvZGVBdCgwKT09PWUuc2xpY2VTZXJpYWxpemUoc1t0XVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKHNbYV1bMV0uX2Nsb3NlfHxzW3RdWzFdLl9vcGVuKSYmKHNbdF1bMV0uZW5kLm9mZnNldC1zW3RdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgoc1thXVsxXS5lbmQub2Zmc2V0LXNbYV1bMV0uc3RhcnQub2Zmc2V0K3NbdF1bMV0uZW5kLm9mZnNldC1zW3RdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7cD1zW2FdWzFdLmVuZC5vZmZzZXQtc1thXVsxXS5zdGFydC5vZmZzZXQ+MSYmc1t0XVsxXS5lbmQub2Zmc2V0LXNbdF1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2xldCBjPXsuLi5zW2FdWzFdLmVuZH0sYj17Li4uc1t0XVsxXS5zdGFydH07Wjd0KGMsLXApLFo3dChiLHApLG89e3R5cGU6cD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OmMsZW5kOnsuLi5zW2FdWzFdLmVuZH19LGw9e3R5cGU6cD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi5zW3RdWzFdLnN0YXJ0fSxlbmQ6Yn0sbj17dHlwZTpwPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi5zW2FdWzFdLmVuZH0sZW5kOnsuLi5zW3RdWzFdLnN0YXJ0fX0scj17dHlwZTpwPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4uby5zdGFydH0sZW5kOnsuLi5sLmVuZH19LHNbYV1bMV0uZW5kPXsuLi5vLnN0YXJ0fSxzW3RdWzFdLnN0YXJ0PXsuLi5sLmVuZH0sZD1bXSxzW2FdWzFdLmVuZC5vZmZzZXQtc1thXVsxXS5zdGFydC5vZmZzZXQmJihkPU1yKGQsW1siZW50ZXIiLHNbYV1bMV0sZV0sWyJleGl0IixzW2FdWzFdLGVdXSkpLGQ9TXIoZCxbWyJlbnRlciIscixlXSxbImVudGVyIixvLGVdLFsiZXhpdCIsbyxlXSxbImVudGVyIixuLGVdXSksZD1NcihkLFhwKGUucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLHMuc2xpY2UoYSsxLHQpLGUpKSxkPU1yKGQsW1siZXhpdCIsbixlXSxbImVudGVyIixsLGVdLFsiZXhpdCIsbCxlXSxbImV4aXQiLHIsZV1dKSxzW3RdWzFdLmVuZC5vZmZzZXQtc1t0XVsxXS5zdGFydC5vZmZzZXQ/KHU9MixkPU1yKGQsW1siZW50ZXIiLHNbdF1bMV0sZV0sWyJleGl0IixzW3RdWzFdLGVdXSkpOnU9MCxzcihzLGEtMSx0LWErMyxkKSx0PWErZC5sZW5ndGgtdS0yO2JyZWFrfX1mb3IodD0tMTsrK3Q8cy5sZW5ndGg7KXNbdF1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJihzW3RdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gc31mdW5jdGlvbiBxUmEocyxlKXtsZXQgdD10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxhPXRoaXMucHJldmlvdXMscj1MMChhKSxuO3JldHVybiBvO2Z1bmN0aW9uIG8ocCl7cmV0dXJuIG49cCxzLmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLGwocCl9ZnVuY3Rpb24gbChwKXtpZihwPT09bilyZXR1cm4gcy5jb25zdW1lKHApLGw7bGV0IGQ9cy5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLHU9TDAocCksYz0hdXx8dT09PTImJnJ8fHQuaW5jbHVkZXMocCksYj0hcnx8cj09PTImJnV8fHQuaW5jbHVkZXMoYSk7cmV0dXJuIGQuX29wZW49ISEobj09PTQyP2M6YyYmKHJ8fCFiKSksZC5fY2xvc2U9ISEobj09PTQyP2I6YiYmKHV8fCFjKSksZShwKX19ZnVuY3Rpb24gWjd0KHMsZSl7cy5jb2x1bW4rPWUscy5vZmZzZXQrPWUscy5fYnVmZmVySW5kZXgrPWV9dmFyIHBrLFg3dD1nKCgpPT57YmQoKTtsaWUoKTt1aygpO3BrPXtuYW1lOiJhdHRlbnRpb24iLHJlc29sdmVBbGw6SFJhLHRva2VuaXplOnFSYX07aShIUmEsInJlc29sdmVBbGxBdHRlbnRpb24iKTtpKHFSYSwidG9rZW5pemVBdHRlbnRpb24iKTtpKFo3dCwibW92ZVBvaW50Iil9KTtmdW5jdGlvbiBqUmEocyxlLHQpe2xldCBhPTA7cmV0dXJuIHI7ZnVuY3Rpb24gcih2KXtyZXR1cm4gcy5lbnRlcigiYXV0b2xpbmsiKSxzLmVudGVyKCJhdXRvbGlua01hcmtlciIpLHMuY29uc3VtZSh2KSxzLmV4aXQoImF1dG9saW5rTWFya2VyIikscy5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLG59ZnVuY3Rpb24gbih2KXtyZXR1cm4gVXIodik/KHMuY29uc3VtZSh2KSxvKTp2PT09NjQ/dCh2KTpkKHYpfWZ1bmN0aW9uIG8odil7cmV0dXJuIHY9PT00M3x8dj09PTQ1fHx2PT09NDZ8fEJpKHYpPyhhPTEsbCh2KSk6ZCh2KX1mdW5jdGlvbiBsKHYpe3JldHVybiB2PT09NTg/KHMuY29uc3VtZSh2KSxhPTAscCk6KHY9PT00M3x8dj09PTQ1fHx2PT09NDZ8fEJpKHYpKSYmYSsrPDMyPyhzLmNvbnN1bWUodiksbCk6KGE9MCxkKHYpKX1mdW5jdGlvbiBwKHYpe3JldHVybiB2PT09NjI/KHMuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLHMuZW50ZXIoImF1dG9saW5rTWFya2VyIikscy5jb25zdW1lKHYpLHMuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxzLmV4aXQoImF1dG9saW5rIiksZSk6dj09PW51bGx8fHY9PT0zMnx8dj09PTYwfHxTMyh2KT90KHYpOihzLmNvbnN1bWUodikscCl9ZnVuY3Rpb24gZCh2KXtyZXR1cm4gdj09PTY0PyhzLmNvbnN1bWUodiksdSk6Tzh0KHYpPyhzLmNvbnN1bWUodiksZCk6dCh2KX1mdW5jdGlvbiB1KHYpe3JldHVybiBCaSh2KT9jKHYpOnQodil9ZnVuY3Rpb24gYyh2KXtyZXR1cm4gdj09PTQ2PyhzLmNvbnN1bWUodiksYT0wLHUpOnY9PT02Mj8ocy5leGl0KCJhdXRvbGlua1Byb3RvY29sIikudHlwZT0iYXV0b2xpbmtFbWFpbCIscy5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxzLmNvbnN1bWUodikscy5leGl0KCJhdXRvbGlua01hcmtlciIpLHMuZXhpdCgiYXV0b2xpbmsiKSxlKTpiKHYpfWZ1bmN0aW9uIGIodil7aWYoKHY9PT00NXx8QmkodikpJiZhKys8NjMpe2xldCB4PXY9PT00NT9iOmM7cmV0dXJuIHMuY29uc3VtZSh2KSx4fXJldHVybiB0KHYpfX12YXIgVWZlLFE3dD1nKCgpPT57VmEoKTtVZmU9e25hbWU6ImF1dG9saW5rIix0b2tlbml6ZTpqUmF9O2koalJhLCJ0b2tlbml6ZUF1dG9saW5rIil9KTtmdW5jdGlvbiBLdChzLGUsdCxhKXtsZXQgcj1hP2EtMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8ocCl7cmV0dXJuIEh0KHApPyhzLmVudGVyKHQpLGwocCkpOmUocCl9ZnVuY3Rpb24gbChwKXtyZXR1cm4gSHQocCkmJm4rKzxyPyhzLmNvbnN1bWUocCksbCk6KHMuZXhpdCh0KSxlKHApKX19dmFyIGlyPWcoKCk9PntWYSgpO2koS3QsImZhY3RvcnlTcGFjZSIpfSk7ZnVuY3Rpb24gVlJhKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiBIdChuKT9LdChzLHIsImxpbmVQcmVmaXgiKShuKTpyKG4pfWZ1bmN0aW9uIHIobil7cmV0dXJuIG49PT1udWxsfHx2dChuKT9lKG4pOnQobil9fXZhciB3ZCx5aWU9ZygoKT0+e2lyKCk7VmEoKTt3ZD17cGFydGlhbDohMCx0b2tlbml6ZTpWUmF9O2koVlJhLCJ0b2tlbml6ZUJsYW5rTGluZSIpfSk7ZnVuY3Rpb24gVVJhKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7aWYobz09PTYyKXtsZXQgbD1hLmNvbnRhaW5lclN0YXRlO3JldHVybiBsLm9wZW58fChzLmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLGwub3Blbj0hMCkscy5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLHMuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSxzLmNvbnN1bWUobykscy5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksbn1yZXR1cm4gdChvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBIdChvKT8ocy5lbnRlcigiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSxzLmNvbnN1bWUobykscy5leGl0KCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLHMuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUpOihzLmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSxlKG8pKX19ZnVuY3Rpb24gV1JhKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIEh0KG8pP0t0KHMsbiwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShvKTpuKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIHMuYXR0ZW1wdCh3aWUsZSx0KShvKX19ZnVuY3Rpb24gR1JhKHMpe3MuZXhpdCgiYmxvY2tRdW90ZSIpfXZhciB3aWUsSjd0PWcoKCk9PntpcigpO1ZhKCk7d2llPXtjb250aW51YXRpb246e3Rva2VuaXplOldSYX0sZXhpdDpHUmEsbmFtZToiYmxvY2tRdW90ZSIsdG9rZW5pemU6VVJhfTtpKFVSYSwidG9rZW5pemVCbG9ja1F1b3RlU3RhcnQiKTtpKFdSYSwidG9rZW5pemVCbG9ja1F1b3RlQ29udGludWF0aW9uIik7aShHUmEsImV4aXQiKX0pO2Z1bmN0aW9uIEtSYShzLGUsdCl7cmV0dXJuIGE7ZnVuY3Rpb24gYShuKXtyZXR1cm4gcy5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIikscy5lbnRlcigiZXNjYXBlTWFya2VyIikscy5jb25zdW1lKG4pLHMuZXhpdCgiZXNjYXBlTWFya2VyIikscn1mdW5jdGlvbiByKG4pe3JldHVybiBCOHQobik/KHMuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIikscy5jb25zdW1lKG4pLHMuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxzLmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLGUpOnQobil9fXZhciBraWUsZTl0PWcoKCk9PntWYSgpO2tpZT17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTpLUmF9O2koS1JhLCJ0b2tlbml6ZUNoYXJhY3RlckVzY2FwZSIpfSk7ZnVuY3Rpb24gWVJhKHMsZSx0KXtsZXQgYT10aGlzLHI9MCxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChjKXtyZXR1cm4gcy5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIikscy5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIikscy5jb25zdW1lKGMpLHMuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIikscH1mdW5jdGlvbiBwKGMpe3JldHVybiBjPT09MzU/KHMuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxzLmNvbnN1bWUoYykscy5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksZCk6KHMuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj0zMSxvPUJpLHUoYykpfWZ1bmN0aW9uIGQoYyl7cmV0dXJuIGM9PT04OHx8Yz09PTEyMD8ocy5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxzLmNvbnN1bWUoYykscy5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLHMuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj02LG89Rjh0LHUpOihzLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxvPW9rLHUoYykpfWZ1bmN0aW9uIHUoYyl7aWYoYz09PTU5JiZyKXtsZXQgYj1zLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIik7cmV0dXJuIG89PT1CaSYmIVpwKGEuc2xpY2VTZXJpYWxpemUoYikpP3QoYyk6KHMuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHMuY29uc3VtZShjKSxzLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHMuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlIiksZSl9cmV0dXJuIG8oYykmJnIrKzxuPyhzLmNvbnN1bWUoYyksdSk6dChjKX19dmFyIFNpZSx0OXQ9ZygoKT0+e2RrKCk7VmEoKTtTaWU9e25hbWU6ImNoYXJhY3RlclJlZmVyZW5jZSIsdG9rZW5pemU6WVJhfTtpKFlSYSwidG9rZW5pemVDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIFpSYShzLGUsdCl7bGV0IGE9dGhpcyxyPXtwYXJ0aWFsOiEwLHRva2VuaXplOkN9LG49MCxvPTAsbDtyZXR1cm4gcDtmdW5jdGlvbiBwKF8pe3JldHVybiBkKF8pfWZ1bmN0aW9uIGQoXyl7bGV0IE89YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBuPU8mJk9bMV0udHlwZT09PSJsaW5lUHJlZml4Ij9PWzJdLnNsaWNlU2VyaWFsaXplKE9bMV0sITApLmxlbmd0aDowLGw9XyxzLmVudGVyKCJjb2RlRmVuY2VkIikscy5lbnRlcigiY29kZUZlbmNlZEZlbmNlIikscy5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSx1KF8pfWZ1bmN0aW9uIHUoXyl7cmV0dXJuIF89PT1sPyhvKysscy5jb25zdW1lKF8pLHUpOm88Mz90KF8pOihzLmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksSHQoXyk/S3QocyxjLCJ3aGl0ZXNwYWNlIikoXyk6YyhfKSl9ZnVuY3Rpb24gYyhfKXtyZXR1cm4gXz09PW51bGx8fHZ0KF8pPyhzLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLGEuaW50ZXJydXB0P2UoXyk6cy5jaGVjayhhOXQsbSxOKShfKSk6KHMuZW50ZXIoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksYihfKSl9ZnVuY3Rpb24gYihfKXtyZXR1cm4gXz09PW51bGx8fHZ0KF8pPyhzLmV4aXQoImNodW5rU3RyaW5nIikscy5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksYyhfKSk6SHQoXyk/KHMuZXhpdCgiY2h1bmtTdHJpbmciKSxzLmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxLdChzLHYsIndoaXRlc3BhY2UiKShfKSk6Xz09PTk2JiZfPT09bD90KF8pOihzLmNvbnN1bWUoXyksYil9ZnVuY3Rpb24gdihfKXtyZXR1cm4gXz09PW51bGx8fHZ0KF8pP2MoXyk6KHMuZW50ZXIoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSkseChfKSl9ZnVuY3Rpb24geChfKXtyZXR1cm4gXz09PW51bGx8fHZ0KF8pPyhzLmV4aXQoImNodW5rU3RyaW5nIikscy5leGl0KCJjb2RlRmVuY2VkRmVuY2VNZXRhIiksYyhfKSk6Xz09PTk2JiZfPT09bD90KF8pOihzLmNvbnN1bWUoXykseCl9ZnVuY3Rpb24gbShfKXtyZXR1cm4gcy5hdHRlbXB0KHIsTixmKShfKX1mdW5jdGlvbiBmKF8pe3JldHVybiBzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKF8pLHMuZXhpdCgibGluZUVuZGluZyIpLHl9ZnVuY3Rpb24geShfKXtyZXR1cm4gbj4wJiZIdChfKT9LdChzLE0sImxpbmVQcmVmaXgiLG4rMSkoXyk6TShfKX1mdW5jdGlvbiBNKF8pe3JldHVybiBfPT09bnVsbHx8dnQoXyk/cy5jaGVjayhhOXQsbSxOKShfKToocy5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLHooXykpfWZ1bmN0aW9uIHooXyl7cmV0dXJuIF89PT1udWxsfHx2dChfKT8ocy5leGl0KCJjb2RlRmxvd1ZhbHVlIiksTShfKSk6KHMuY29uc3VtZShfKSx6KX1mdW5jdGlvbiBOKF8pe3JldHVybiBzLmV4aXQoImNvZGVGZW5jZWQiKSxlKF8pfWZ1bmN0aW9uIEMoXyxPLCQpe2xldCBFPTA7cmV0dXJuIEg7ZnVuY3Rpb24gSChSKXtyZXR1cm4gXy5lbnRlcigibGluZUVuZGluZyIpLF8uY29uc3VtZShSKSxfLmV4aXQoImxpbmVFbmRpbmciKSxrfWZ1bmN0aW9uIGsoUil7cmV0dXJuIF8uZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLEh0KFIpP0t0KF8sUywibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShSKTpTKFIpfWZ1bmN0aW9uIFMoUil7cmV0dXJuIFI9PT1sPyhfLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLEkoUikpOiQoUil9ZnVuY3Rpb24gSShSKXtyZXR1cm4gUj09PWw/KEUrKyxfLmNvbnN1bWUoUiksSSk6RT49bz8oXy5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLEh0KFIpP0t0KF8sUCwid2hpdGVzcGFjZSIpKFIpOlAoUikpOiQoUil9ZnVuY3Rpb24gUChSKXtyZXR1cm4gUj09PW51bGx8fHZ0KFIpPyhfLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLE8oUikpOiQoUil9fX1mdW5jdGlvbiBYUmEocyxlLHQpe2xldCBhPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihvKXtyZXR1cm4gbz09PW51bGw/dChvKToocy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShvKSxzLmV4aXQoImxpbmVFbmRpbmciKSxuKX1mdW5jdGlvbiBuKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/dChvKTplKG8pfX12YXIgYTl0LF9pZSxzOXQ9ZygoKT0+e2lyKCk7VmEoKTthOXQ9e3BhcnRpYWw6ITAsdG9rZW5pemU6WFJhfSxfaWU9e2NvbmNyZXRlOiEwLG5hbWU6ImNvZGVGZW5jZWQiLHRva2VuaXplOlpSYX07aShaUmEsInRva2VuaXplQ29kZUZlbmNlZCIpO2koWFJhLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIEpSYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKGQpe3JldHVybiBzLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxLdChzLG4sImxpbmVQcmVmaXgiLDUpKGQpfWZ1bmN0aW9uIG4oZCl7bGV0IHU9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiB1JiZ1WzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnVbMl0uc2xpY2VTZXJpYWxpemUodVsxXSwhMCkubGVuZ3RoPj00P28oZCk6dChkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBkPT09bnVsbD9wKGQpOnZ0KGQpP3MuYXR0ZW1wdChRUmEsbyxwKShkKToocy5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLGwoZCkpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQ9PT1udWxsfHx2dChkKT8ocy5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbyhkKSk6KHMuY29uc3VtZShkKSxsKX1mdW5jdGlvbiBwKGQpe3JldHVybiBzLmV4aXQoImNvZGVJbmRlbnRlZCIpLGUoZCl9fWZ1bmN0aW9uIGVPYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/dChvKTp2dChvKT8ocy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShvKSxzLmV4aXQoImxpbmVFbmRpbmciKSxyKTpLdChzLG4sImxpbmVQcmVmaXgiLDUpKG8pfWZ1bmN0aW9uIG4obyl7bGV0IGw9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBsJiZsWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJmxbMl0uc2xpY2VTZXJpYWxpemUobFsxXSwhMCkubGVuZ3RoPj00P2Uobyk6dnQobyk/cihvKTp0KG8pfX12YXIgaGssUVJhLGk5dD1nKCgpPT57aXIoKTtWYSgpO2hrPXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOkpSYX0sUVJhPXtwYXJ0aWFsOiEwLHRva2VuaXplOmVPYX07aShKUmEsInRva2VuaXplQ29kZUluZGVudGVkIik7aShlT2EsInRva2VuaXplRnVydGhlclN0YXJ0Iil9KTtmdW5jdGlvbiB0T2Eocyl7bGV0IGU9cy5sZW5ndGgtNCx0PTMsYSxyO2lmKChzW3RdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fHNbdF1bMV0udHlwZT09PSJzcGFjZSIpJiYoc1tlXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxzW2VdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKGE9dDsrK2E8ZTspaWYoc1thXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe3NbdF1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixzW2VdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIsdCs9MixlLT0yO2JyZWFrfX1mb3IoYT10LTEsZSsrOysrYTw9ZTspcj09PXZvaWQgMD9hIT09ZSYmc1thXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYocj1hKTooYT09PWV8fHNbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJihzW3JdWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsYSE9PXIrMiYmKHNbcl1bMV0uZW5kPXNbYS0xXVsxXS5lbmQscy5zcGxpY2UocisyLGEtci0yKSxlLT1hLXItMixhPXIrMikscj12b2lkIDApO3JldHVybiBzfWZ1bmN0aW9uIGFPYShzKXtyZXR1cm4gcyE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIHNPYShzLGUsdCl7bGV0IGE9dGhpcyxyPTAsbixvO3JldHVybiBsO2Z1bmN0aW9uIGwoYil7cmV0dXJuIHMuZW50ZXIoImNvZGVUZXh0Iikscy5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLHAoYil9ZnVuY3Rpb24gcChiKXtyZXR1cm4gYj09PTk2PyhzLmNvbnN1bWUoYikscisrLHApOihzLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxkKGIpKX1mdW5jdGlvbiBkKGIpe3JldHVybiBiPT09bnVsbD90KGIpOmI9PT0zMj8ocy5lbnRlcigic3BhY2UiKSxzLmNvbnN1bWUoYikscy5leGl0KCJzcGFjZSIpLGQpOmI9PT05Nj8obz1zLmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbj0wLGMoYikpOnZ0KGIpPyhzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKGIpLHMuZXhpdCgibGluZUVuZGluZyIpLGQpOihzLmVudGVyKCJjb2RlVGV4dERhdGEiKSx1KGIpKX1mdW5jdGlvbiB1KGIpe3JldHVybiBiPT09bnVsbHx8Yj09PTMyfHxiPT09OTZ8fHZ0KGIpPyhzLmV4aXQoImNvZGVUZXh0RGF0YSIpLGQoYikpOihzLmNvbnN1bWUoYiksdSl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gYj09PTk2PyhzLmNvbnN1bWUoYiksbisrLGMpOm49PT1yPyhzLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxzLmV4aXQoImNvZGVUZXh0IiksZShiKSk6KG8udHlwZT0iY29kZVRleHREYXRhIix1KGIpKX19dmFyIFdmZSxyOXQ9ZygoKT0+e1ZhKCk7V2ZlPXtuYW1lOiJjb2RlVGV4dCIscHJldmlvdXM6YU9hLHJlc29sdmU6dE9hLHRva2VuaXplOnNPYX07aSh0T2EsInJlc29sdmVDb2RlVGV4dCIpO2koYU9hLCJwcmV2aW91cyIpO2koc09hLCJ0b2tlbml6ZUNvZGVUZXh0Iil9KTtmdW5jdGlvbiBmayhzLGUpe2xldCB0PTA7aWYoZS5sZW5ndGg8MWU0KXMucHVzaCguLi5lKTtlbHNlIGZvcig7dDxlLmxlbmd0aDspcy5wdXNoKC4uLmUuc2xpY2UodCx0KzFlNCkpLHQrPTFlNH12YXIgbWssR2ZlPWcoKCk9Pnttaz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTcGxpY2VCdWZmZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmxlZnQ9ZT9bLi4uZV06W10sdGhpcy5yaWdodD1bXX1nZXQoZSl7aWYoZTwwfHxlPj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK2UrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIGU8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbZV06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC1lK3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UoZSx0KXtsZXQgYT10Pz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGE8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UoZSxhKTplPnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1hK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKGUpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWErdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UoZSx0LGEpe2xldCByPXR8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyhlKSk7bGV0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtcixOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBhJiZmayh0aGlzLmxlZnQsYSksbi5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2goZSl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaChlKX1wdXNoTWFueShlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLGZrKHRoaXMubGVmdCxlKX11bnNoaWZ0KGUpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaChlKX11bnNoaWZ0TWFueShlKXt0aGlzLnNldEN1cnNvcigwKSxmayh0aGlzLnJpZ2h0LGUucmV2ZXJzZSgpKX1zZXRDdXJzb3IoZSl7aWYoIShlPT09dGhpcy5sZWZ0Lmxlbmd0aHx8ZT50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fGU8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKGU8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHQ9dGhpcy5sZWZ0LnNwbGljZShlLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7ZmsodGhpcy5yaWdodCx0LnJldmVyc2UoKSl9ZWxzZXtsZXQgdD10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLWUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtmayh0aGlzLmxlZnQsdC5yZXZlcnNlKCkpfX19O2koZmssImNodW5rZWRQdXNoIil9KTtmdW5jdGlvbiBNaWUocyl7bGV0IGU9e30sdD0tMSxhLHIsbixvLGwscCxkLHU9bmV3IG1rKHMpO2Zvcig7Kyt0PHUubGVuZ3RoOyl7Zm9yKDt0IGluIGU7KXQ9ZVt0XTtpZihhPXUuZ2V0KHQpLHQmJmFbMV0udHlwZT09PSJjaHVua0Zsb3ciJiZ1LmdldCh0LTEpWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiJiYocD1hWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPHAubGVuZ3RoJiZwW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiYmKG4rPTIpLG48cC5sZW5ndGgmJnBbbl1bMV0udHlwZT09PSJjb250ZW50IikpZm9yKDsrK248cC5sZW5ndGgmJnBbbl1bMV0udHlwZSE9PSJjb250ZW50IjspcFtuXVsxXS50eXBlPT09ImNodW5rVGV4dCImJihwW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKGFbMF09PT0iZW50ZXIiKWFbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKGUsaU9hKHUsdCkpLHQ9ZVt0XSxkPSEwKTtlbHNlIGlmKGFbMV0uX2NvbnRhaW5lcil7Zm9yKG49dCxyPXZvaWQgMDtuLS07KWlmKG89dS5nZXQobiksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKHImJih1LmdldChyKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLHI9bik7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7ciYmKGFbMV0uZW5kPXsuLi51LmdldChyKVsxXS5zdGFydH0sbD11LnNsaWNlKHIsdCksbC51bnNoaWZ0KGEpLHUuc3BsaWNlKHIsdC1yKzEsbCkpfX1yZXR1cm4gc3IocywwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1LnNsaWNlKDApKSwhZH1mdW5jdGlvbiBpT2EocyxlKXtsZXQgdD1zLmdldChlKVsxXSxhPXMuZ2V0KGUpWzJdLHI9ZS0xLG49W10sbz10Ll90b2tlbml6ZXI7b3x8KG89YS5wYXJzZXJbdC5jb250ZW50VHlwZV0odC5zdGFydCksdC5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2xldCBsPW8uZXZlbnRzLHA9W10sZD17fSx1LGMsYj0tMSx2PXQseD0wLG09MCxmPVttXTtmb3IoO3Y7KXtmb3IoO3MuZ2V0KCsrcilbMV0hPT12Oyk7bi5wdXNoKHIpLHYuX3Rva2VuaXplcnx8KHU9YS5zbGljZVN0cmVhbSh2KSx2Lm5leHR8fHUucHVzaChudWxsKSxjJiZvLmRlZmluZVNraXAodi5zdGFydCksdi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUodSksdi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSksYz12LHY9di5uZXh0fWZvcih2PXQ7KytiPGwubGVuZ3RoOylsW2JdWzBdPT09ImV4aXQiJiZsW2ItMV1bMF09PT0iZW50ZXIiJiZsW2JdWzFdLnR5cGU9PT1sW2ItMV1bMV0udHlwZSYmbFtiXVsxXS5zdGFydC5saW5lIT09bFtiXVsxXS5lbmQubGluZSYmKG09YisxLGYucHVzaChtKSx2Ll90b2tlbml6ZXI9dm9pZCAwLHYucHJldmlvdXM9dm9pZCAwLHY9di5uZXh0KTtmb3Ioby5ldmVudHM9W10sdj8odi5fdG9rZW5pemVyPXZvaWQgMCx2LnByZXZpb3VzPXZvaWQgMCk6Zi5wb3AoKSxiPWYubGVuZ3RoO2ItLTspe2xldCB5PWwuc2xpY2UoZltiXSxmW2IrMV0pLE09bi5wb3AoKTtwLnB1c2goW00sTSt5Lmxlbmd0aC0xXSkscy5zcGxpY2UoTSwyLHkpfWZvcihwLnJldmVyc2UoKSxiPS0xOysrYjxwLmxlbmd0aDspZFt4K3BbYl1bMF1dPXgrcFtiXVsxXSx4Kz1wW2JdWzFdLXBbYl1bMF0tMTtyZXR1cm4gZH12YXIgS2ZlPWcoKCk9PntiZCgpO0dmZSgpO0dmZSgpO2koTWllLCJzdWJ0b2tlbml6ZSIpO2koaU9hLCJzdWJjb250ZW50Iil9KTtmdW5jdGlvbiBvT2Eocyl7cmV0dXJuIE1pZShzKSxzfWZ1bmN0aW9uIG5PYShzLGUpe2xldCB0O3JldHVybiBhO2Z1bmN0aW9uIGEobCl7cmV0dXJuIHMuZW50ZXIoImNvbnRlbnQiKSx0PXMuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLHIobCl9ZnVuY3Rpb24gcihsKXtyZXR1cm4gbD09PW51bGw/bihsKTp2dChsKT9zLmNoZWNrKHJPYSxvLG4pKGwpOihzLmNvbnN1bWUobCkscil9ZnVuY3Rpb24gbihsKXtyZXR1cm4gcy5leGl0KCJjaHVua0NvbnRlbnQiKSxzLmV4aXQoImNvbnRlbnQiKSxlKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIHMuY29uc3VtZShsKSxzLmV4aXQoImNodW5rQ29udGVudCIpLHQubmV4dD1zLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6dH0pLHQ9dC5uZXh0LHJ9fWZ1bmN0aW9uIGxPYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG8pe3JldHVybiBzLmV4aXQoImNodW5rQ29udGVudCIpLHMuZW50ZXIoImxpbmVFbmRpbmciKSxzLmNvbnN1bWUobykscy5leGl0KCJsaW5lRW5kaW5nIiksS3QocyxuLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbHx8dnQobykpcmV0dXJuIHQobyk7bGV0IGw9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJmwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmbFsyXS5zbGljZVNlcmlhbGl6ZShsWzFdLCEwKS5sZW5ndGg+PTQ/ZShvKTpzLmludGVycnVwdChhLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csdCxlKShvKX19dmFyIFlmZSxyT2Esbzl0PWcoKCk9PntpcigpO1ZhKCk7S2ZlKCk7WWZlPXtyZXNvbHZlOm9PYSx0b2tlbml6ZTpuT2F9LHJPYT17cGFydGlhbDohMCx0b2tlbml6ZTpsT2F9O2kob09hLCJyZXNvbHZlQ29udGVudCIpO2kobk9hLCJ0b2tlbml6ZUNvbnRlbnQiKTtpKGxPYSwidG9rZW5pemVDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIHppZShzLGUsdCxhLHIsbixvLGwscCl7bGV0IGQ9cHx8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9MDtyZXR1cm4gYztmdW5jdGlvbiBjKHkpe3JldHVybiB5PT09NjA/KHMuZW50ZXIoYSkscy5lbnRlcihyKSxzLmVudGVyKG4pLHMuY29uc3VtZSh5KSxzLmV4aXQobiksYik6eT09PW51bGx8fHk9PT0zMnx8eT09PTQxfHxTMyh5KT90KHkpOihzLmVudGVyKGEpLHMuZW50ZXIobykscy5lbnRlcihsKSxzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksbSh5KSl9ZnVuY3Rpb24gYih5KXtyZXR1cm4geT09PTYyPyhzLmVudGVyKG4pLHMuY29uc3VtZSh5KSxzLmV4aXQobikscy5leGl0KHIpLHMuZXhpdChhKSxlKToocy5lbnRlcihsKSxzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksdih5KSl9ZnVuY3Rpb24gdih5KXtyZXR1cm4geT09PTYyPyhzLmV4aXQoImNodW5rU3RyaW5nIikscy5leGl0KGwpLGIoeSkpOnk9PT1udWxsfHx5PT09NjB8fHZ0KHkpP3QoeSk6KHMuY29uc3VtZSh5KSx5PT09OTI/eDp2KX1mdW5jdGlvbiB4KHkpe3JldHVybiB5PT09NjB8fHk9PT02Mnx8eT09PTkyPyhzLmNvbnN1bWUoeSksdik6dih5KX1mdW5jdGlvbiBtKHkpe3JldHVybiF1JiYoeT09PW51bGx8fHk9PT00MXx8QWEoeSkpPyhzLmV4aXQoImNodW5rU3RyaW5nIikscy5leGl0KGwpLHMuZXhpdChvKSxzLmV4aXQoYSksZSh5KSk6dTxkJiZ5PT09NDA/KHMuY29uc3VtZSh5KSx1KyssbSk6eT09PTQxPyhzLmNvbnN1bWUoeSksdS0tLG0pOnk9PT1udWxsfHx5PT09MzJ8fHk9PT00MHx8UzMoeSk/dCh5KToocy5jb25zdW1lKHkpLHk9PT05Mj9mOm0pfWZ1bmN0aW9uIGYoeSl7cmV0dXJuIHk9PT00MHx8eT09PTQxfHx5PT09OTI/KHMuY29uc3VtZSh5KSxtKTptKHkpfX12YXIgWmZlPWcoKCk9PntWYSgpO2koemllLCJmYWN0b3J5RGVzdGluYXRpb24iKX0pO2Z1bmN0aW9uIENpZShzLGUsdCxhLHIsbil7bGV0IG89dGhpcyxsPTAscDtyZXR1cm4gZDtmdW5jdGlvbiBkKHYpe3JldHVybiBzLmVudGVyKGEpLHMuZW50ZXIocikscy5jb25zdW1lKHYpLHMuZXhpdChyKSxzLmVudGVyKG4pLHV9ZnVuY3Rpb24gdSh2KXtyZXR1cm4gbD45OTl8fHY9PT1udWxsfHx2PT09OTF8fHY9PT05MyYmIXB8fHY9PT05NCYmIWwmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIG8ucGFyc2VyLmNvbnN0cnVjdHM/dCh2KTp2PT09OTM/KHMuZXhpdChuKSxzLmVudGVyKHIpLHMuY29uc3VtZSh2KSxzLmV4aXQocikscy5leGl0KGEpLGUpOnZ0KHYpPyhzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKHYpLHMuZXhpdCgibGluZUVuZGluZyIpLHUpOihzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksYyh2KSl9ZnVuY3Rpb24gYyh2KXtyZXR1cm4gdj09PW51bGx8fHY9PT05MXx8dj09PTkzfHx2dCh2KXx8bCsrPjk5OT8ocy5leGl0KCJjaHVua1N0cmluZyIpLHUodikpOihzLmNvbnN1bWUodikscHx8KHA9IUh0KHYpKSx2PT09OTI/YjpjKX1mdW5jdGlvbiBiKHYpe3JldHVybiB2PT09OTF8fHY9PT05Mnx8dj09PTkzPyhzLmNvbnN1bWUodiksbCsrLGMpOmModil9fXZhciBYZmU9ZygoKT0+e1ZhKCk7aShDaWUsImZhY3RvcnlMYWJlbCIpfSk7ZnVuY3Rpb24gVGllKHMsZSx0LGEscixuKXtsZXQgbztyZXR1cm4gbDtmdW5jdGlvbiBsKGIpe3JldHVybiBiPT09MzR8fGI9PT0zOXx8Yj09PTQwPyhzLmVudGVyKGEpLHMuZW50ZXIocikscy5jb25zdW1lKGIpLHMuZXhpdChyKSxvPWI9PT00MD80MTpiLHApOnQoYil9ZnVuY3Rpb24gcChiKXtyZXR1cm4gYj09PW8/KHMuZW50ZXIocikscy5jb25zdW1lKGIpLHMuZXhpdChyKSxzLmV4aXQoYSksZSk6KHMuZW50ZXIobiksZChiKSl9ZnVuY3Rpb24gZChiKXtyZXR1cm4gYj09PW8/KHMuZXhpdChuKSxwKG8pKTpiPT09bnVsbD90KGIpOnZ0KGIpPyhzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKGIpLHMuZXhpdCgibGluZUVuZGluZyIpLEt0KHMsZCwibGluZVByZWZpeCIpKToocy5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHUoYikpfWZ1bmN0aW9uIHUoYil7cmV0dXJuIGI9PT1vfHxiPT09bnVsbHx8dnQoYik/KHMuZXhpdCgiY2h1bmtTdHJpbmciKSxkKGIpKToocy5jb25zdW1lKGIpLGI9PT05Mj9jOnUpfWZ1bmN0aW9uIGMoYil7cmV0dXJuIGI9PT1vfHxiPT09OTI/KHMuY29uc3VtZShiKSx1KTp1KGIpfX12YXIgUWZlPWcoKCk9PntpcigpO1ZhKCk7aShUaWUsImZhY3RvcnlUaXRsZSIpfSk7ZnVuY3Rpb24gRDMocyxlKXtsZXQgdDtyZXR1cm4gYTtmdW5jdGlvbiBhKHIpe3JldHVybiB2dChyKT8ocy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShyKSxzLmV4aXQoImxpbmVFbmRpbmciKSx0PSEwLGEpOkh0KHIpP0t0KHMsYSx0PyJsaW5lUHJlZml4IjoibGluZVN1ZmZpeCIpKHIpOmUocil9fXZhciBKZmU9ZygoKT0+e2lyKCk7VmEoKTtpKEQzLCJmYWN0b3J5V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gZE9hKHMsZSx0KXtsZXQgYT10aGlzLHI7cmV0dXJuIG47ZnVuY3Rpb24gbih2KXtyZXR1cm4gcy5lbnRlcigiZGVmaW5pdGlvbiIpLG8odil9ZnVuY3Rpb24gbyh2KXtyZXR1cm4gQ2llLmNhbGwoYSxzLGwsdCwiZGVmaW5pdGlvbkxhYmVsIiwiZGVmaW5pdGlvbkxhYmVsTWFya2VyIiwiZGVmaW5pdGlvbkxhYmVsU3RyaW5nIikodil9ZnVuY3Rpb24gbCh2KXtyZXR1cm4gcj1IaShhLnNsaWNlU2VyaWFsaXplKGEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpLHY9PT01OD8ocy5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLHMuY29uc3VtZSh2KSxzLmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxwKTp0KHYpfWZ1bmN0aW9uIHAodil7cmV0dXJuIEFhKHYpP0QzKHMsZCkodik6ZCh2KX1mdW5jdGlvbiBkKHYpe3JldHVybiB6aWUocyx1LHQsImRlZmluaXRpb25EZXN0aW5hdGlvbiIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWwiLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3IiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nIikodil9ZnVuY3Rpb24gdSh2KXtyZXR1cm4gcy5hdHRlbXB0KGNPYSxjLGMpKHYpfWZ1bmN0aW9uIGModil7cmV0dXJuIEh0KHYpP0t0KHMsYiwid2hpdGVzcGFjZSIpKHYpOmIodil9ZnVuY3Rpb24gYih2KXtyZXR1cm4gdj09PW51bGx8fHZ0KHYpPyhzLmV4aXQoImRlZmluaXRpb24iKSxhLnBhcnNlci5kZWZpbmVkLnB1c2gociksZSh2KSk6dCh2KX19ZnVuY3Rpb24gdU9hKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKGwpe3JldHVybiBBYShsKT9EMyhzLHIpKGwpOnQobCl9ZnVuY3Rpb24gcihsKXtyZXR1cm4gVGllKHMsbix0LCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBIdChsKT9LdChzLG8sIndoaXRlc3BhY2UiKShsKTpvKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT1udWxsfHx2dChsKT9lKGwpOnQobCl9fXZhciBlbWUsY09hLG45dD1nKCgpPT57WmZlKCk7WGZlKCk7aXIoKTtRZmUoKTtKZmUoKTtWYSgpO1lwKCk7ZW1lPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpkT2F9LGNPYT17cGFydGlhbDohMCx0b2tlbml6ZTp1T2F9O2koZE9hLCJ0b2tlbml6ZURlZmluaXRpb24iKTtpKHVPYSwidG9rZW5pemVUaXRsZUJlZm9yZSIpfSk7ZnVuY3Rpb24gcE9hKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiBzLmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSxzLmNvbnN1bWUobikscn1mdW5jdGlvbiByKG4pe3JldHVybiB2dChuKT8ocy5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSxlKG4pKTp0KG4pfX12YXIgdG1lLGw5dD1nKCgpPT57VmEoKTt0bWU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6cE9hfTtpKHBPYSwidG9rZW5pemVIYXJkQnJlYWtFc2NhcGUiKX0pO2Z1bmN0aW9uIGhPYShzLGUpe2xldCB0PXMubGVuZ3RoLTIsYT0zLHIsbjtyZXR1cm4gc1thXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoYSs9MiksdC0yPmEmJnNbdF1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHQtPTIpLHNbdF1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoYT09PXQtMXx8dC00PmEmJnNbdC0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHQtPWErMT09PXQ/Mjo0KSx0PmEmJihyPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6c1thXVsxXS5zdGFydCxlbmQ6c1t0XVsxXS5lbmR9LG49e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6c1thXVsxXS5zdGFydCxlbmQ6c1t0XVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxzcihzLGEsdC1hKzEsW1siZW50ZXIiLHIsZV0sWyJlbnRlciIsbixlXSxbImV4aXQiLG4sZV0sWyJleGl0IixyLGVdXSkpLHN9ZnVuY3Rpb24gZk9hKHMsZSx0KXtsZXQgYT0wO3JldHVybiByO2Z1bmN0aW9uIHIodSl7cmV0dXJuIHMuZW50ZXIoImF0eEhlYWRpbmciKSxuKHUpfWZ1bmN0aW9uIG4odSl7cmV0dXJuIHMuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8odSl9ZnVuY3Rpb24gbyh1KXtyZXR1cm4gdT09PTM1JiZhKys8Nj8ocy5jb25zdW1lKHUpLG8pOnU9PT1udWxsfHxBYSh1KT8ocy5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKHUpKTp0KHUpfWZ1bmN0aW9uIGwodSl7cmV0dXJuIHU9PT0zNT8ocy5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIikscCh1KSk6dT09PW51bGx8fHZ0KHUpPyhzLmV4aXQoImF0eEhlYWRpbmciKSxlKHUpKTpIdCh1KT9LdChzLGwsIndoaXRlc3BhY2UiKSh1KToocy5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxkKHUpKX1mdW5jdGlvbiBwKHUpe3JldHVybiB1PT09MzU/KHMuY29uc3VtZSh1KSxwKToocy5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKHUpKX1mdW5jdGlvbiBkKHUpe3JldHVybiB1PT09bnVsbHx8dT09PTM1fHxBYSh1KT8ocy5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLGwodSkpOihzLmNvbnN1bWUodSksZCl9fXZhciBhbWUsYzl0PWcoKCk9PntpcigpO1ZhKCk7YmQoKTthbWU9e25hbWU6ImhlYWRpbmdBdHgiLHJlc29sdmU6aE9hLHRva2VuaXplOmZPYX07aShoT2EsInJlc29sdmVIZWFkaW5nQXR4Iik7aShmT2EsInRva2VuaXplSGVhZGluZ0F0eCIpfSk7dmFyIGQ5dCxzbWUsdTl0PWcoKCk9PntkOXQ9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSxzbWU9WyJwcmUiLCJzY3JpcHQiLCJzdHlsZSIsInRleHRhcmVhIl19KTtmdW5jdGlvbiBiT2Eocyl7bGV0IGU9cy5sZW5ndGg7Zm9yKDtlLS0mJiEoc1tlXVswXT09PSJlbnRlciImJnNbZV1bMV0udHlwZT09PSJodG1sRmxvdyIpOyk7cmV0dXJuIGU+MSYmc1tlLTJdWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJihzW2VdWzFdLnN0YXJ0PXNbZS0yXVsxXS5zdGFydCxzW2UrMV1bMV0uc3RhcnQ9c1tlLTJdWzFdLnN0YXJ0LHMuc3BsaWNlKGUtMiwyKSksc31mdW5jdGlvbiB2T2EocyxlLHQpe2xldCBhPXRoaXMscixuLG8sbCxwO3JldHVybiBkO2Z1bmN0aW9uIGQoRil7cmV0dXJuIHUoRil9ZnVuY3Rpb24gdShGKXtyZXR1cm4gcy5lbnRlcigiaHRtbEZsb3ciKSxzLmVudGVyKCJodG1sRmxvd0RhdGEiKSxzLmNvbnN1bWUoRiksY31mdW5jdGlvbiBjKEYpe3JldHVybiBGPT09MzM/KHMuY29uc3VtZShGKSxiKTpGPT09NDc/KHMuY29uc3VtZShGKSxuPSEwLG0pOkY9PT02Mz8ocy5jb25zdW1lKEYpLHI9MyxhLmludGVycnVwdD9lOkIpOlVyKEYpPyhzLmNvbnN1bWUoRiksbz1TdHJpbmcuZnJvbUNoYXJDb2RlKEYpLGYpOnQoRil9ZnVuY3Rpb24gYihGKXtyZXR1cm4gRj09PTQ1PyhzLmNvbnN1bWUoRikscj0yLHYpOkY9PT05MT8ocy5jb25zdW1lKEYpLHI9NSxsPTAseCk6VXIoRik/KHMuY29uc3VtZShGKSxyPTQsYS5pbnRlcnJ1cHQ/ZTpCKTp0KEYpfWZ1bmN0aW9uIHYoRil7cmV0dXJuIEY9PT00NT8ocy5jb25zdW1lKEYpLGEuaW50ZXJydXB0P2U6Qik6dChGKX1mdW5jdGlvbiB4KEYpe2xldCBqPSJDREFUQVsiO3JldHVybiBGPT09ai5jaGFyQ29kZUF0KGwrKyk/KHMuY29uc3VtZShGKSxsPT09ai5sZW5ndGg/YS5pbnRlcnJ1cHQ/ZTpTOngpOnQoRil9ZnVuY3Rpb24gbShGKXtyZXR1cm4gVXIoRik/KHMuY29uc3VtZShGKSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoRiksZik6dChGKX1mdW5jdGlvbiBmKEYpe2lmKEY9PT1udWxsfHxGPT09NDd8fEY9PT02Mnx8QWEoRikpe2xldCBqPUY9PT00Nyx1ZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIWomJiFuJiZzbWUuaW5jbHVkZXModWUpPyhyPTEsYS5pbnRlcnJ1cHQ/ZShGKTpTKEYpKTpkOXQuaW5jbHVkZXMoby50b0xvd2VyQ2FzZSgpKT8ocj02LGo/KHMuY29uc3VtZShGKSx5KTphLmludGVycnVwdD9lKEYpOlMoRikpOihyPTcsYS5pbnRlcnJ1cHQmJiFhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/dChGKTpuP00oRik6eihGKSl9cmV0dXJuIEY9PT00NXx8QmkoRik/KHMuY29uc3VtZShGKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEYpLGYpOnQoRil9ZnVuY3Rpb24geShGKXtyZXR1cm4gRj09PTYyPyhzLmNvbnN1bWUoRiksYS5pbnRlcnJ1cHQ/ZTpTKTp0KEYpfWZ1bmN0aW9uIE0oRil7cmV0dXJuIEh0KEYpPyhzLmNvbnN1bWUoRiksTSk6SChGKX1mdW5jdGlvbiB6KEYpe3JldHVybiBGPT09NDc/KHMuY29uc3VtZShGKSxIKTpGPT09NTh8fEY9PT05NXx8VXIoRik/KHMuY29uc3VtZShGKSxOKTpIdChGKT8ocy5jb25zdW1lKEYpLHopOkgoRil9ZnVuY3Rpb24gTihGKXtyZXR1cm4gRj09PTQ1fHxGPT09NDZ8fEY9PT01OHx8Rj09PTk1fHxCaShGKT8ocy5jb25zdW1lKEYpLE4pOkMoRil9ZnVuY3Rpb24gQyhGKXtyZXR1cm4gRj09PTYxPyhzLmNvbnN1bWUoRiksXyk6SHQoRik/KHMuY29uc3VtZShGKSxDKTp6KEYpfWZ1bmN0aW9uIF8oRil7cmV0dXJuIEY9PT1udWxsfHxGPT09NjB8fEY9PT02MXx8Rj09PTYyfHxGPT09OTY/dChGKTpGPT09MzR8fEY9PT0zOT8ocy5jb25zdW1lKEYpLHA9RixPKTpIdChGKT8ocy5jb25zdW1lKEYpLF8pOiQoRil9ZnVuY3Rpb24gTyhGKXtyZXR1cm4gRj09PXA/KHMuY29uc3VtZShGKSxwPW51bGwsRSk6Rj09PW51bGx8fHZ0KEYpP3QoRik6KHMuY29uc3VtZShGKSxPKX1mdW5jdGlvbiAkKEYpe3JldHVybiBGPT09bnVsbHx8Rj09PTM0fHxGPT09Mzl8fEY9PT00N3x8Rj09PTYwfHxGPT09NjF8fEY9PT02Mnx8Rj09PTk2fHxBYShGKT9DKEYpOihzLmNvbnN1bWUoRiksJCl9ZnVuY3Rpb24gRShGKXtyZXR1cm4gRj09PTQ3fHxGPT09NjJ8fEh0KEYpP3ooRik6dChGKX1mdW5jdGlvbiBIKEYpe3JldHVybiBGPT09NjI/KHMuY29uc3VtZShGKSxrKTp0KEYpfWZ1bmN0aW9uIGsoRil7cmV0dXJuIEY9PT1udWxsfHx2dChGKT9TKEYpOkh0KEYpPyhzLmNvbnN1bWUoRiksayk6dChGKX1mdW5jdGlvbiBTKEYpe3JldHVybiBGPT09NDUmJnI9PT0yPyhzLmNvbnN1bWUoRiksSyk6Rj09PTYwJiZyPT09MT8ocy5jb25zdW1lKEYpLFYpOkY9PT02MiYmcj09PTQ/KHMuY29uc3VtZShGKSxVKTpGPT09NjMmJnI9PT0zPyhzLmNvbnN1bWUoRiksQik6Rj09PTkzJiZyPT09NT8ocy5jb25zdW1lKEYpLG1lKTp2dChGKSYmKHI9PT02fHxyPT09Nyk/KHMuZXhpdCgiaHRtbEZsb3dEYXRhIikscy5jaGVjayhtT2EsaGUsSSkoRikpOkY9PT1udWxsfHx2dChGKT8ocy5leGl0KCJodG1sRmxvd0RhdGEiKSxJKEYpKToocy5jb25zdW1lKEYpLFMpfWZ1bmN0aW9uIEkoRil7cmV0dXJuIHMuY2hlY2soZ09hLFAsaGUpKEYpfWZ1bmN0aW9uIFAoRil7cmV0dXJuIHMuZW50ZXIoImxpbmVFbmRpbmciKSxzLmNvbnN1bWUoRikscy5leGl0KCJsaW5lRW5kaW5nIiksUn1mdW5jdGlvbiBSKEYpe3JldHVybiBGPT09bnVsbHx8dnQoRik/SShGKToocy5lbnRlcigiaHRtbEZsb3dEYXRhIiksUyhGKSl9ZnVuY3Rpb24gSyhGKXtyZXR1cm4gRj09PTQ1PyhzLmNvbnN1bWUoRiksQik6UyhGKX1mdW5jdGlvbiBWKEYpe3JldHVybiBGPT09NDc/KHMuY29uc3VtZShGKSxvPSIiLFcpOlMoRil9ZnVuY3Rpb24gVyhGKXtpZihGPT09NjIpe2xldCBqPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4gc21lLmluY2x1ZGVzKGopPyhzLmNvbnN1bWUoRiksVSk6UyhGKX1yZXR1cm4gVXIoRikmJm8ubGVuZ3RoPDg/KHMuY29uc3VtZShGKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEYpLFcpOlMoRil9ZnVuY3Rpb24gbWUoRil7cmV0dXJuIEY9PT05Mz8ocy5jb25zdW1lKEYpLEIpOlMoRil9ZnVuY3Rpb24gQihGKXtyZXR1cm4gRj09PTYyPyhzLmNvbnN1bWUoRiksVSk6Rj09PTQ1JiZyPT09Mj8ocy5jb25zdW1lKEYpLEIpOlMoRil9ZnVuY3Rpb24gVShGKXtyZXR1cm4gRj09PW51bGx8fHZ0KEYpPyhzLmV4aXQoImh0bWxGbG93RGF0YSIpLGhlKEYpKToocy5jb25zdW1lKEYpLFUpfWZ1bmN0aW9uIGhlKEYpe3JldHVybiBzLmV4aXQoImh0bWxGbG93IiksZShGKX19ZnVuY3Rpb24geE9hKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIHZ0KG8pPyhzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKG8pLHMuZXhpdCgibGluZUVuZGluZyIpLG4pOnQobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gYS5wYXJzZXIubGF6eVthLm5vdygpLmxpbmVdP3Qobyk6ZShvKX19ZnVuY3Rpb24geU9hKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKHIpe3JldHVybiBzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKHIpLHMuZXhpdCgibGluZUVuZGluZyIpLHMuYXR0ZW1wdCh3ZCxlLHQpfX12YXIgaW1lLG1PYSxnT2EscDl0PWcoKCk9PntWYSgpO3U5dCgpO3lpZSgpO2ltZT17Y29uY3JldGU6ITAsbmFtZToiaHRtbEZsb3ciLHJlc29sdmVUbzpiT2EsdG9rZW5pemU6dk9hfSxtT2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6eU9hfSxnT2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6eE9hfTtpKGJPYSwicmVzb2x2ZVRvSHRtbEZsb3ciKTtpKHZPYSwidG9rZW5pemVIdG1sRmxvdyIpO2koeE9hLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb25TdGFydCIpO2koeU9hLCJ0b2tlbml6ZUJsYW5rTGluZUJlZm9yZSIpfSk7ZnVuY3Rpb24gd09hKHMsZSx0KXtsZXQgYT10aGlzLHIsbixvO3JldHVybiBsO2Z1bmN0aW9uIGwoQil7cmV0dXJuIHMuZW50ZXIoImh0bWxUZXh0Iikscy5lbnRlcigiaHRtbFRleHREYXRhIikscy5jb25zdW1lKEIpLHB9ZnVuY3Rpb24gcChCKXtyZXR1cm4gQj09PTMzPyhzLmNvbnN1bWUoQiksZCk6Qj09PTQ3PyhzLmNvbnN1bWUoQiksQyk6Qj09PTYzPyhzLmNvbnN1bWUoQikseik6VXIoQik/KHMuY29uc3VtZShCKSwkKTp0KEIpfWZ1bmN0aW9uIGQoQil7cmV0dXJuIEI9PT00NT8ocy5jb25zdW1lKEIpLHUpOkI9PT05MT8ocy5jb25zdW1lKEIpLG49MCx4KTpVcihCKT8ocy5jb25zdW1lKEIpLE0pOnQoQil9ZnVuY3Rpb24gdShCKXtyZXR1cm4gQj09PTQ1PyhzLmNvbnN1bWUoQiksdik6dChCKX1mdW5jdGlvbiBjKEIpe3JldHVybiBCPT09bnVsbD90KEIpOkI9PT00NT8ocy5jb25zdW1lKEIpLGIpOnZ0KEIpPyhvPWMsVihCKSk6KHMuY29uc3VtZShCKSxjKX1mdW5jdGlvbiBiKEIpe3JldHVybiBCPT09NDU/KHMuY29uc3VtZShCKSx2KTpjKEIpfWZ1bmN0aW9uIHYoQil7cmV0dXJuIEI9PT02Mj9LKEIpOkI9PT00NT9iKEIpOmMoQil9ZnVuY3Rpb24geChCKXtsZXQgVT0iQ0RBVEFbIjtyZXR1cm4gQj09PVUuY2hhckNvZGVBdChuKyspPyhzLmNvbnN1bWUoQiksbj09PVUubGVuZ3RoP206eCk6dChCKX1mdW5jdGlvbiBtKEIpe3JldHVybiBCPT09bnVsbD90KEIpOkI9PT05Mz8ocy5jb25zdW1lKEIpLGYpOnZ0KEIpPyhvPW0sVihCKSk6KHMuY29uc3VtZShCKSxtKX1mdW5jdGlvbiBmKEIpe3JldHVybiBCPT09OTM/KHMuY29uc3VtZShCKSx5KTptKEIpfWZ1bmN0aW9uIHkoQil7cmV0dXJuIEI9PT02Mj9LKEIpOkI9PT05Mz8ocy5jb25zdW1lKEIpLHkpOm0oQil9ZnVuY3Rpb24gTShCKXtyZXR1cm4gQj09PW51bGx8fEI9PT02Mj9LKEIpOnZ0KEIpPyhvPU0sVihCKSk6KHMuY29uc3VtZShCKSxNKX1mdW5jdGlvbiB6KEIpe3JldHVybiBCPT09bnVsbD90KEIpOkI9PT02Mz8ocy5jb25zdW1lKEIpLE4pOnZ0KEIpPyhvPXosVihCKSk6KHMuY29uc3VtZShCKSx6KX1mdW5jdGlvbiBOKEIpe3JldHVybiBCPT09NjI/SyhCKTp6KEIpfWZ1bmN0aW9uIEMoQil7cmV0dXJuIFVyKEIpPyhzLmNvbnN1bWUoQiksXyk6dChCKX1mdW5jdGlvbiBfKEIpe3JldHVybiBCPT09NDV8fEJpKEIpPyhzLmNvbnN1bWUoQiksXyk6TyhCKX1mdW5jdGlvbiBPKEIpe3JldHVybiB2dChCKT8obz1PLFYoQikpOkh0KEIpPyhzLmNvbnN1bWUoQiksTyk6SyhCKX1mdW5jdGlvbiAkKEIpe3JldHVybiBCPT09NDV8fEJpKEIpPyhzLmNvbnN1bWUoQiksJCk6Qj09PTQ3fHxCPT09NjJ8fEFhKEIpP0UoQik6dChCKX1mdW5jdGlvbiBFKEIpe3JldHVybiBCPT09NDc/KHMuY29uc3VtZShCKSxLKTpCPT09NTh8fEI9PT05NXx8VXIoQik/KHMuY29uc3VtZShCKSxIKTp2dChCKT8obz1FLFYoQikpOkh0KEIpPyhzLmNvbnN1bWUoQiksRSk6SyhCKX1mdW5jdGlvbiBIKEIpe3JldHVybiBCPT09NDV8fEI9PT00Nnx8Qj09PTU4fHxCPT09OTV8fEJpKEIpPyhzLmNvbnN1bWUoQiksSCk6ayhCKX1mdW5jdGlvbiBrKEIpe3JldHVybiBCPT09NjE/KHMuY29uc3VtZShCKSxTKTp2dChCKT8obz1rLFYoQikpOkh0KEIpPyhzLmNvbnN1bWUoQiksayk6RShCKX1mdW5jdGlvbiBTKEIpe3JldHVybiBCPT09bnVsbHx8Qj09PTYwfHxCPT09NjF8fEI9PT02Mnx8Qj09PTk2P3QoQik6Qj09PTM0fHxCPT09Mzk/KHMuY29uc3VtZShCKSxyPUIsSSk6dnQoQik/KG89UyxWKEIpKTpIdChCKT8ocy5jb25zdW1lKEIpLFMpOihzLmNvbnN1bWUoQiksUCl9ZnVuY3Rpb24gSShCKXtyZXR1cm4gQj09PXI/KHMuY29uc3VtZShCKSxyPXZvaWQgMCxSKTpCPT09bnVsbD90KEIpOnZ0KEIpPyhvPUksVihCKSk6KHMuY29uc3VtZShCKSxJKX1mdW5jdGlvbiBQKEIpe3JldHVybiBCPT09bnVsbHx8Qj09PTM0fHxCPT09Mzl8fEI9PT02MHx8Qj09PTYxfHxCPT09OTY/dChCKTpCPT09NDd8fEI9PT02Mnx8QWEoQik/RShCKToocy5jb25zdW1lKEIpLFApfWZ1bmN0aW9uIFIoQil7cmV0dXJuIEI9PT00N3x8Qj09PTYyfHxBYShCKT9FKEIpOnQoQil9ZnVuY3Rpb24gSyhCKXtyZXR1cm4gQj09PTYyPyhzLmNvbnN1bWUoQikscy5leGl0KCJodG1sVGV4dERhdGEiKSxzLmV4aXQoImh0bWxUZXh0IiksZSk6dChCKX1mdW5jdGlvbiBWKEIpe3JldHVybiBzLmV4aXQoImh0bWxUZXh0RGF0YSIpLHMuZW50ZXIoImxpbmVFbmRpbmciKSxzLmNvbnN1bWUoQikscy5leGl0KCJsaW5lRW5kaW5nIiksV31mdW5jdGlvbiBXKEIpe3JldHVybiBIdChCKT9LdChzLG1lLCJsaW5lUHJlZml4IixhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEIpOm1lKEIpfWZ1bmN0aW9uIG1lKEIpe3JldHVybiBzLmVudGVyKCJodG1sVGV4dERhdGEiKSxvKEIpfX12YXIgcm1lLGg5dD1nKCgpPT57aXIoKTtWYSgpO3JtZT17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOndPYX07aSh3T2EsInRva2VuaXplSHRtbFRleHQiKX0pO2Z1bmN0aW9uIE1PYShzKXtsZXQgZT0tMSx0PVtdO2Zvcig7KytlPHMubGVuZ3RoOyl7bGV0IGE9c1tlXVsxXTtpZih0LnB1c2goc1tlXSksYS50eXBlPT09ImxhYmVsSW1hZ2UifHxhLnR5cGU9PT0ibGFiZWxMaW5rInx8YS50eXBlPT09ImxhYmVsRW5kIil7bGV0IHI9YS50eXBlPT09ImxhYmVsSW1hZ2UiPzQ6MjthLnR5cGU9ImRhdGEiLGUrPXJ9fXJldHVybiBzLmxlbmd0aCE9PXQubGVuZ3RoJiZzcihzLDAscy5sZW5ndGgsdCksc31mdW5jdGlvbiB6T2EocyxlKXtsZXQgdD1zLmxlbmd0aCxhPTAscixuLG8sbDtmb3IoO3QtLTspaWYocj1zW3RdWzFdLG4pe2lmKHIudHlwZT09PSJsaW5rInx8ci50eXBlPT09ImxhYmVsTGluayImJnIuX2luYWN0aXZlKWJyZWFrO3NbdF1bMF09PT0iZW50ZXIiJiZyLnR5cGU9PT0ibGFiZWxMaW5rIiYmKHIuX2luYWN0aXZlPSEwKX1lbHNlIGlmKG8pe2lmKHNbdF1bMF09PT0iZW50ZXIiJiYoci50eXBlPT09ImxhYmVsSW1hZ2UifHxyLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFyLl9iYWxhbmNlZCYmKG49dCxyLnR5cGUhPT0ibGFiZWxMaW5rIikpe2E9MjticmVha319ZWxzZSByLnR5cGU9PT0ibGFiZWxFbmQiJiYobz10KTtsZXQgcD17dHlwZTpzW25dWzFdLnR5cGU9PT0ibGFiZWxMaW5rIj8ibGluayI6ImltYWdlIixzdGFydDp7Li4uc1tuXVsxXS5zdGFydH0sZW5kOnsuLi5zW3MubGVuZ3RoLTFdWzFdLmVuZH19LGQ9e3R5cGU6ImxhYmVsIixzdGFydDp7Li4uc1tuXVsxXS5zdGFydH0sZW5kOnsuLi5zW29dWzFdLmVuZH19LHU9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLnNbbithKzJdWzFdLmVuZH0sZW5kOnsuLi5zW28tMl1bMV0uc3RhcnR9fTtyZXR1cm4gbD1bWyJlbnRlciIscCxlXSxbImVudGVyIixkLGVdXSxsPU1yKGwscy5zbGljZShuKzEsbithKzMpKSxsPU1yKGwsW1siZW50ZXIiLHUsZV1dKSxsPU1yKGwsWHAoZS5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwscy5zbGljZShuK2ErNCxvLTMpLGUpKSxsPU1yKGwsW1siZXhpdCIsdSxlXSxzW28tMl0sc1tvLTFdLFsiZXhpdCIsZCxlXV0pLGw9TXIobCxzLnNsaWNlKG8rMSkpLGw9TXIobCxbWyJleGl0IixwLGVdXSksc3IocyxuLHMubGVuZ3RoLGwpLHN9ZnVuY3Rpb24gQ09hKHMsZSx0KXtsZXQgYT10aGlzLHI9YS5ldmVudHMubGVuZ3RoLG4sbztmb3IoO3ItLTspaWYoKGEuZXZlbnRzW3JdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGEuZXZlbnRzW3JdWzFdLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFhLmV2ZW50c1tyXVsxXS5fYmFsYW5jZWQpe249YS5ldmVudHNbcl1bMV07YnJlYWt9cmV0dXJuIGw7ZnVuY3Rpb24gbChiKXtyZXR1cm4gbj9uLl9pbmFjdGl2ZT9jKGIpOihvPWEucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoSGkoYS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOmEubm93KCl9KSkpLHMuZW50ZXIoImxhYmVsRW5kIikscy5lbnRlcigibGFiZWxNYXJrZXIiKSxzLmNvbnN1bWUoYikscy5leGl0KCJsYWJlbE1hcmtlciIpLHMuZXhpdCgibGFiZWxFbmQiKSxwKTp0KGIpfWZ1bmN0aW9uIHAoYil7cmV0dXJuIGI9PT00MD9zLmF0dGVtcHQoa09hLHUsbz91OmMpKGIpOmI9PT05MT9zLmF0dGVtcHQoU09hLHUsbz9kOmMpKGIpOm8/dShiKTpjKGIpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIHMuYXR0ZW1wdChfT2EsdSxjKShiKX1mdW5jdGlvbiB1KGIpe3JldHVybiBlKGIpfWZ1bmN0aW9uIGMoYil7cmV0dXJuIG4uX2JhbGFuY2VkPSEwLHQoYil9fWZ1bmN0aW9uIFRPYShzLGUsdCl7cmV0dXJuIGE7ZnVuY3Rpb24gYShjKXtyZXR1cm4gcy5lbnRlcigicmVzb3VyY2UiKSxzLmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLHMuY29uc3VtZShjKSxzLmV4aXQoInJlc291cmNlTWFya2VyIikscn1mdW5jdGlvbiByKGMpe3JldHVybiBBYShjKT9EMyhzLG4pKGMpOm4oYyl9ZnVuY3Rpb24gbihjKXtyZXR1cm4gYz09PTQxP3UoYyk6emllKHMsbyxsLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikoYyl9ZnVuY3Rpb24gbyhjKXtyZXR1cm4gQWEoYyk/RDMocyxwKShjKTp1KGMpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIHQoYyl9ZnVuY3Rpb24gcChjKXtyZXR1cm4gYz09PTM0fHxjPT09Mzl8fGM9PT00MD9UaWUocyxkLHQsInJlc291cmNlVGl0bGUiLCJyZXNvdXJjZVRpdGxlTWFya2VyIiwicmVzb3VyY2VUaXRsZVN0cmluZyIpKGMpOnUoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gQWEoYyk/RDMocyx1KShjKTp1KGMpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGM9PT00MT8ocy5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSxzLmNvbnN1bWUoYykscy5leGl0KCJyZXNvdXJjZU1hcmtlciIpLHMuZXhpdCgicmVzb3VyY2UiKSxlKTp0KGMpfX1mdW5jdGlvbiAkT2EocyxlLHQpe2xldCBhPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihsKXtyZXR1cm4gQ2llLmNhbGwoYSxzLG4sbywicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIikobCl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gYS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhIaShhLnNsaWNlU2VyaWFsaXplKGEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpKT9lKGwpOnQobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gdChsKX19ZnVuY3Rpb24gRE9hKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiBzLmVudGVyKCJyZWZlcmVuY2UiKSxzLmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSxzLmNvbnN1bWUobikscy5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSxyfWZ1bmN0aW9uIHIobil7cmV0dXJuIG49PT05Mz8ocy5lbnRlcigicmVmZXJlbmNlTWFya2VyIikscy5jb25zdW1lKG4pLHMuZXhpdCgicmVmZXJlbmNlTWFya2VyIikscy5leGl0KCJyZWZlcmVuY2UiKSxlKTp0KG4pfX12YXIgTDMsa09hLFNPYSxfT2EsJGllPWcoKCk9PntaZmUoKTtYZmUoKTtRZmUoKTtKZmUoKTtWYSgpO2JkKCk7WXAoKTt1aygpO0wzPXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDpNT2EscmVzb2x2ZVRvOnpPYSx0b2tlbml6ZTpDT2F9LGtPYT17dG9rZW5pemU6VE9hfSxTT2E9e3Rva2VuaXplOiRPYX0sX09hPXt0b2tlbml6ZTpET2F9O2koTU9hLCJyZXNvbHZlQWxsTGFiZWxFbmQiKTtpKHpPYSwicmVzb2x2ZVRvTGFiZWxFbmQiKTtpKENPYSwidG9rZW5pemVMYWJlbEVuZCIpO2koVE9hLCJ0b2tlbml6ZVJlc291cmNlIik7aSgkT2EsInRva2VuaXplUmVmZXJlbmNlRnVsbCIpO2koRE9hLCJ0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZCIpfSk7ZnVuY3Rpb24gTE9hKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobCl7cmV0dXJuIHMuZW50ZXIoImxhYmVsSW1hZ2UiKSxzLmVudGVyKCJsYWJlbEltYWdlTWFya2VyIikscy5jb25zdW1lKGwpLHMuZXhpdCgibGFiZWxJbWFnZU1hcmtlciIpLG59ZnVuY3Rpb24gbihsKXtyZXR1cm4gbD09PTkxPyhzLmVudGVyKCJsYWJlbE1hcmtlciIpLHMuY29uc3VtZShsKSxzLmV4aXQoImxhYmVsTWFya2VyIikscy5leGl0KCJsYWJlbEltYWdlIiksbyk6dChsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBsPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGEucGFyc2VyLmNvbnN0cnVjdHM/dChsKTplKGwpfX12YXIgb21lLGY5dD1nKCgpPT57JGllKCk7b21lPXtuYW1lOiJsYWJlbFN0YXJ0SW1hZ2UiLHJlc29sdmVBbGw6TDMucmVzb2x2ZUFsbCx0b2tlbml6ZTpMT2F9O2koTE9hLCJ0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZSIpfSk7ZnVuY3Rpb24gRU9hKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIHMuZW50ZXIoImxhYmVsTGluayIpLHMuZW50ZXIoImxhYmVsTWFya2VyIikscy5jb25zdW1lKG8pLHMuZXhpdCgibGFiZWxNYXJrZXIiKSxzLmV4aXQoImxhYmVsTGluayIpLG59ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBhLnBhcnNlci5jb25zdHJ1Y3RzP3Qobyk6ZShvKX19dmFyIG5tZSxtOXQ9ZygoKT0+eyRpZSgpO25tZT17bmFtZToibGFiZWxTdGFydExpbmsiLHJlc29sdmVBbGw6TDMucmVzb2x2ZUFsbCx0b2tlbml6ZTpFT2F9O2koRU9hLCJ0b2tlbml6ZUxhYmVsU3RhcnRMaW5rIil9KTtmdW5jdGlvbiBQT2EocyxlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KGEpe3JldHVybiBzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKGEpLHMuZXhpdCgibGluZUVuZGluZyIpLEt0KHMsZSwibGluZVByZWZpeCIpfX12YXIgZ2ssZzl0PWcoKCk9PntpcigpO1ZhKCk7Z2s9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOlBPYX07aShQT2EsInRva2VuaXplTGluZUVuZGluZyIpfSk7ZnVuY3Rpb24gSU9hKHMsZSx0KXtsZXQgYT0wLHI7cmV0dXJuIG47ZnVuY3Rpb24gbihkKXtyZXR1cm4gcy5lbnRlcigidGhlbWF0aWNCcmVhayIpLG8oZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gcj1kLGwoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PXI/KHMuZW50ZXIoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLHAoZCkpOmE+PTMmJihkPT09bnVsbHx8dnQoZCkpPyhzLmV4aXQoInRoZW1hdGljQnJlYWsiKSxlKGQpKTp0KGQpfWZ1bmN0aW9uIHAoZCl7cmV0dXJuIGQ9PT1yPyhzLmNvbnN1bWUoZCksYSsrLHApOihzLmV4aXQoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLEh0KGQpP0t0KHMsbCwid2hpdGVzcGFjZSIpKGQpOmwoZCkpfX12YXIgRTMsbG1lPWcoKCk9PntpcigpO1ZhKCk7RTM9e25hbWU6InRoZW1hdGljQnJlYWsiLHRva2VuaXplOklPYX07aShJT2EsInRva2VuaXplVGhlbWF0aWNCcmVhayIpfSk7ZnVuY3Rpb24gUk9hKHMsZSx0KXtsZXQgYT10aGlzLHI9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdLG49ciYmclsxXS50eXBlPT09ImxpbmVQcmVmaXgiP3JbMl0uc2xpY2VTZXJpYWxpemUoclsxXSwhMCkubGVuZ3RoOjAsbz0wO3JldHVybiBsO2Z1bmN0aW9uIGwodil7bGV0IHg9YS5jb250YWluZXJTdGF0ZS50eXBlfHwodj09PTQyfHx2PT09NDN8fHY9PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYoeD09PSJsaXN0VW5vcmRlcmVkIj8hYS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fHY9PT1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpvayh2KSl7aWYoYS5jb250YWluZXJTdGF0ZS50eXBlfHwoYS5jb250YWluZXJTdGF0ZS50eXBlPXgscy5lbnRlcih4LHtfY29udGFpbmVyOiEwfSkpLHg9PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIHMuZW50ZXIoImxpc3RJdGVtUHJlZml4Iiksdj09PTQyfHx2PT09NDU/cy5jaGVjayhFMyx0LGQpKHYpOmQodik7aWYoIWEuaW50ZXJydXB0fHx2PT09NDkpcmV0dXJuIHMuZW50ZXIoImxpc3RJdGVtUHJlZml4Iikscy5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLHAodil9cmV0dXJuIHQodil9ZnVuY3Rpb24gcCh2KXtyZXR1cm4gb2sodikmJisrbzwxMD8ocy5jb25zdW1lKHYpLHApOighYS5pbnRlcnJ1cHR8fG88MikmJihhLmNvbnRhaW5lclN0YXRlLm1hcmtlcj92PT09YS5jb250YWluZXJTdGF0ZS5tYXJrZXI6dj09PTQxfHx2PT09NDYpPyhzLmV4aXQoImxpc3RJdGVtVmFsdWUiKSxkKHYpKTp0KHYpfWZ1bmN0aW9uIGQodil7cmV0dXJuIHMuZW50ZXIoImxpc3RJdGVtTWFya2VyIikscy5jb25zdW1lKHYpLHMuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxhLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8dixzLmNoZWNrKHdkLGEuaW50ZXJydXB0P3Q6dSxzLmF0dGVtcHQoQU9hLGIsYykpfWZ1bmN0aW9uIHUodil7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxuKyssYih2KX1mdW5jdGlvbiBjKHYpe3JldHVybiBIdCh2KT8ocy5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIikscy5jb25zdW1lKHYpLHMuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksYik6dCh2KX1mdW5jdGlvbiBiKHYpe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLnNpemU9bithLnNsaWNlU2VyaWFsaXplKHMuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLGUodil9fWZ1bmN0aW9uIE9PYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxzLmNoZWNrKHdkLHIsbik7ZnVuY3Rpb24gcihsKXtyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1hLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxhLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsS3QocyxlLCJsaXN0SXRlbUluZGVudCIsYS5jb250YWluZXJTdGF0ZS5zaXplKzEpKGwpfWkociwib25CbGFuayIpO2Z1bmN0aW9uIG4obCl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFIdChsKT8oYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxvKGwpKTooYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxzLmF0dGVtcHQoTk9hLGUsbykobCkpfWkobiwibm90QmxhbmsiKTtmdW5jdGlvbiBvKGwpe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9ITAsYS5pbnRlcnJ1cHQ9dm9pZCAwLEt0KHMscy5hdHRlbXB0KGVuLGUsdCksImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkobCl9aShvLCJub3RJbkN1cnJlbnRJdGVtIil9ZnVuY3Rpb24gRk9hKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiBLdChzLHIsImxpc3RJdGVtSW5kZW50IixhLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gcihuKXtsZXQgbz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG8mJm9bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09YS5jb250YWluZXJTdGF0ZS5zaXplP2Uobik6dChuKX19ZnVuY3Rpb24gQk9hKHMpe3MuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpfWZ1bmN0aW9uIEhPYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gS3QocyxyLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gcihuKXtsZXQgbz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIUh0KG4pJiZvJiZvWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIj9lKG4pOnQobil9fXZhciBlbixBT2EsTk9hLGI5dD1nKCgpPT57aXIoKTtWYSgpO3lpZSgpO2xtZSgpO2VuPXtjb250aW51YXRpb246e3Rva2VuaXplOk9PYX0sZXhpdDpCT2EsbmFtZToibGlzdCIsdG9rZW5pemU6Uk9hfSxBT2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6SE9hfSxOT2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6Rk9hfTtpKFJPYSwidG9rZW5pemVMaXN0U3RhcnQiKTtpKE9PYSwidG9rZW5pemVMaXN0Q29udGludWF0aW9uIik7aShGT2EsInRva2VuaXplSW5kZW50Iik7aShCT2EsInRva2VuaXplTGlzdEVuZCIpO2koSE9hLCJ0b2tlbml6ZUxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gcU9hKHMsZSl7bGV0IHQ9cy5sZW5ndGgsYSxyLG47Zm9yKDt0LS07KWlmKHNbdF1bMF09PT0iZW50ZXIiKXtpZihzW3RdWzFdLnR5cGU9PT0iY29udGVudCIpe2E9dDticmVha31zW3RdWzFdLnR5cGU9PT0icGFyYWdyYXBoIiYmKHI9dCl9ZWxzZSBzW3RdWzFdLnR5cGU9PT0iY29udGVudCImJnMuc3BsaWNlKHQsMSksIW4mJnNbdF1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKG49dCk7bGV0IG89e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi5zW2FdWzFdLnN0YXJ0fSxlbmQ6ey4uLnNbcy5sZW5ndGgtMV1bMV0uZW5kfX07cmV0dXJuIHNbcl1bMV0udHlwZT0ic2V0ZXh0SGVhZGluZ1RleHQiLG4/KHMuc3BsaWNlKHIsMCxbImVudGVyIixvLGVdKSxzLnNwbGljZShuKzEsMCxbImV4aXQiLHNbYV1bMV0sZV0pLHNbYV1bMV0uZW5kPXsuLi5zW25dWzFdLmVuZH0pOnNbYV1bMV09byxzLnB1c2goWyJleGl0IixvLGVdKSxzfWZ1bmN0aW9uIGpPYShzLGUsdCl7bGV0IGE9dGhpcyxyO3JldHVybiBuO2Z1bmN0aW9uIG4oZCl7bGV0IHU9YS5ldmVudHMubGVuZ3RoLGM7Zm9yKDt1LS07KWlmKGEuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJmEuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZVByZWZpeCImJmEuZXZlbnRzW3VdWzFdLnR5cGUhPT0iY29udGVudCIpe2M9YS5ldmVudHNbdV1bMV0udHlwZT09PSJwYXJhZ3JhcGgiO2JyZWFrfXJldHVybiFhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0mJihhLmludGVycnVwdHx8Yyk/KHMuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lIikscj1kLG8oZCkpOnQoZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gcy5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLGwoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PXI/KHMuY29uc3VtZShkKSxsKToocy5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksSHQoZCk/S3QocyxwLCJsaW5lU3VmZml4IikoZCk6cChkKSl9ZnVuY3Rpb24gcChkKXtyZXR1cm4gZD09PW51bGx8fHZ0KGQpPyhzLmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksZShkKSk6dChkKX19dmFyIERpZSx2OXQ9ZygoKT0+e2lyKCk7VmEoKTtEaWU9e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOnFPYSx0b2tlbml6ZTpqT2F9O2kocU9hLCJyZXNvbHZlVG9TZXRleHRVbmRlcmxpbmUiKTtpKGpPYSwidG9rZW5pemVTZXRleHRVbmRlcmxpbmUiKX0pO3ZhciBMaWU9ZygoKT0+e1g3dCgpO1E3dCgpO3lpZSgpO0o3dCgpO2U5dCgpO3Q5dCgpO3M5dCgpO2k5dCgpO3I5dCgpO285dCgpO245dCgpO2w5dCgpO2M5dCgpO3A5dCgpO2g5dCgpOyRpZSgpO2Y5dCgpO205dCgpO2c5dCgpO2I5dCgpO3Y5dCgpO2xtZSgpfSk7ZnVuY3Rpb24gY21lKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpLT2EsY29udGludWF0aW9uOnt0b2tlbml6ZTpZT2F9LGV4aXQ6Wk9hfX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6R09hfSw5Mzp7bmFtZToiZ2ZtUG90ZW50aWFsRm9vdG5vdGVDYWxsIixhZGQ6ImFmdGVyIix0b2tlbml6ZTpVT2EscmVzb2x2ZVRvOldPYX19fX1mdW5jdGlvbiBVT2EocyxlLHQpe2xldCBhPXRoaXMscj1hLmV2ZW50cy5sZW5ndGgsbj1hLnBhcnNlci5nZm1Gb290bm90ZXN8fChhLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG87Zm9yKDtyLS07KXtsZXQgcD1hLmV2ZW50c1tyXVsxXTtpZihwLnR5cGU9PT0ibGFiZWxJbWFnZSIpe289cDticmVha31pZihwLnR5cGU9PT0iZ2ZtRm9vdG5vdGVDYWxsInx8cC50eXBlPT09ImxhYmVsTGluayJ8fHAudHlwZT09PSJsYWJlbCJ8fHAudHlwZT09PSJpbWFnZSJ8fHAudHlwZT09PSJsaW5rIilicmVha31yZXR1cm4gbDtmdW5jdGlvbiBsKHApe2lmKCFvfHwhby5fYmFsYW5jZWQpcmV0dXJuIHQocCk7bGV0IGQ9SGkoYS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6by5lbmQsZW5kOmEubm93KCl9KSk7cmV0dXJuIGQuY29kZVBvaW50QXQoMCkhPT05NHx8IW4uaW5jbHVkZXMoZC5zbGljZSgxKSk/dChwKToocy5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxzLmNvbnN1bWUocCkscy5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUocCkpfX1mdW5jdGlvbiBXT2EocyxlKXtsZXQgdD1zLmxlbmd0aCxhO2Zvcig7dC0tOylpZihzW3RdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSImJnNbdF1bMF09PT0iZW50ZXIiKXthPXNbdF1bMV07YnJlYWt9c1t0KzFdWzFdLnR5cGU9ImRhdGEiLHNbdCszXVsxXS50eXBlPSJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciI7bGV0IHI9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxzW3QrM11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHNbcy5sZW5ndGgtMV1bMV0uZW5kKX0sbj17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHNbdCszXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHNbdCszXVsxXS5lbmQpfTtuLmVuZC5jb2x1bW4rKyxuLmVuZC5vZmZzZXQrKyxuLmVuZC5fYnVmZmVySW5kZXgrKztsZXQgbz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG4uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxzW3MubGVuZ3RoLTFdWzFdLnN0YXJ0KX0sbD17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sby5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sby5lbmQpfSxwPVtzW3QrMV0sc1t0KzJdLFsiZW50ZXIiLHIsZV0sc1t0KzNdLHNbdCs0XSxbImVudGVyIixuLGVdLFsiZXhpdCIsbixlXSxbImVudGVyIixvLGVdLFsiZW50ZXIiLGwsZV0sWyJleGl0IixsLGVdLFsiZXhpdCIsbyxlXSxzW3MubGVuZ3RoLTJdLHNbcy5sZW5ndGgtMV0sWyJleGl0IixyLGVdXTtyZXR1cm4gcy5zcGxpY2UodCxzLmxlbmd0aC10KzEsLi4ucCksc31mdW5jdGlvbiBHT2EocyxlLHQpe2xldCBhPXRoaXMscj1hLnBhcnNlci5nZm1Gb290bm90ZXN8fChhLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG49MCxvO3JldHVybiBsO2Z1bmN0aW9uIGwoYyl7cmV0dXJuIHMuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbCIpLHMuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIikscy5jb25zdW1lKGMpLHMuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxwfWZ1bmN0aW9uIHAoYyl7cmV0dXJuIGMhPT05ND90KGMpOihzLmVudGVyKCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSxzLmNvbnN1bWUoYykscy5leGl0KCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSxzLmVudGVyKCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKSxzLmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLGQpfWZ1bmN0aW9uIGQoYyl7aWYobj45OTl8fGM9PT05MyYmIW98fGM9PT1udWxsfHxjPT09OTF8fEFhKGMpKXJldHVybiB0KGMpO2lmKGM9PT05Myl7cy5leGl0KCJjaHVua1N0cmluZyIpO2xldCBiPXMuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIik7cmV0dXJuIHIuaW5jbHVkZXMoSGkoYS5zbGljZVNlcmlhbGl6ZShiKSkpPyhzLmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHMuY29uc3VtZShjKSxzLmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIikscy5leGl0KCJnZm1Gb290bm90ZUNhbGwiKSxlKTp0KGMpfXJldHVybiBBYShjKXx8KG89ITApLG4rKyxzLmNvbnN1bWUoYyksYz09PTkyP3U6ZH1mdW5jdGlvbiB1KGMpe3JldHVybiBjPT09OTF8fGM9PT05Mnx8Yz09PTkzPyhzLmNvbnN1bWUoYyksbisrLGQpOmQoYyl9fWZ1bmN0aW9uIEtPYShzLGUsdCl7bGV0IGE9dGhpcyxyPWEucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGEucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbixvPTAsbDtyZXR1cm4gcDtmdW5jdGlvbiBwKHgpe3JldHVybiBzLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLHMuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIikscy5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxzLmNvbnN1bWUoeCkscy5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGR9ZnVuY3Rpb24gZCh4KXtyZXR1cm4geD09PTk0PyhzLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxzLmNvbnN1bWUoeCkscy5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxzLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLHMuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsdSk6dCh4KX1mdW5jdGlvbiB1KHgpe2lmKG8+OTk5fHx4PT09OTMmJiFsfHx4PT09bnVsbHx8eD09PTkxfHxBYSh4KSlyZXR1cm4gdCh4KTtpZih4PT09OTMpe3MuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgbT1zLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cmV0dXJuIG49SGkoYS5zbGljZVNlcmlhbGl6ZShtKSkscy5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxzLmNvbnN1bWUoeCkscy5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHMuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxifXJldHVybiBBYSh4KXx8KGw9ITApLG8rKyxzLmNvbnN1bWUoeCkseD09PTkyP2M6dX1mdW5jdGlvbiBjKHgpe3JldHVybiB4PT09OTF8fHg9PT05Mnx8eD09PTkzPyhzLmNvbnN1bWUoeCksbysrLHUpOnUoeCl9ZnVuY3Rpb24gYih4KXtyZXR1cm4geD09PTU4PyhzLmVudGVyKCJkZWZpbml0aW9uTWFya2VyIikscy5jb25zdW1lKHgpLHMuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLHIuaW5jbHVkZXMobil8fHIucHVzaChuKSxLdChzLHYsImdmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UiKSk6dCh4KX1mdW5jdGlvbiB2KHgpe3JldHVybiBlKHgpfX1mdW5jdGlvbiBZT2EocyxlLHQpe3JldHVybiBzLmNoZWNrKHdkLGUscy5hdHRlbXB0KFZPYSxlLHQpKX1mdW5jdGlvbiBaT2Eocyl7cy5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBYT2EocyxlLHQpe2xldCBhPXRoaXM7cmV0dXJuIEt0KHMsciwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiByKG4pe2xldCBvPWEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09ImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09ND9lKG4pOnQobil9fXZhciBWT2EseDl0PWcoKCk9PntMaWUoKTtpcigpO1ZhKCk7WXAoKTtWT2E9e3Rva2VuaXplOlhPYSxwYXJ0aWFsOiEwfTtpKGNtZSwiZ2ZtRm9vdG5vdGUiKTtpKFVPYSwidG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwiKTtpKFdPYSwicmVzb2x2ZVRvUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsIik7aShHT2EsInRva2VuaXplR2ZtRm9vdG5vdGVDYWxsIik7aShLT2EsInRva2VuaXplRGVmaW5pdGlvblN0YXJ0Iik7aShZT2EsInRva2VuaXplRGVmaW5pdGlvbkNvbnRpbnVhdGlvbiIpO2koWk9hLCJnZm1Gb290bm90ZURlZmluaXRpb25FbmQiKTtpKFhPYSwidG9rZW5pemVJbmRlbnQiKX0pO2Z1bmN0aW9uIHk5dChzLGUpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhzKzEpKyhlPjE/Ii0iK2U6IiIpfWZ1bmN0aW9uIGRtZShzKXtsZXQgZT1zfHxKT2EsdD1lLmxhYmVsfHwiRm9vdG5vdGVzIixhPWUubGFiZWxUYWdOYW1lfHwiaDIiLHI9ZS5sYWJlbEF0dHJpYnV0ZXM9PT1udWxsfHxlLmxhYmVsQXR0cmlidXRlcz09PXZvaWQgMD8nY2xhc3M9InNyLW9ubHkiJzplLmxhYmVsQXR0cmlidXRlcyxuPWUuYmFja0xhYmVsfHx5OXQsbz1lLmNsb2JiZXJQcmVmaXg9PT1udWxsfHxlLmNsb2JiZXJQcmVmaXg9PT12b2lkIDA/InVzZXItY29udGVudC0iOmUuY2xvYmJlclByZWZpeDtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe3RoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLnB1c2goITEpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9fSxleGl0OntnZm1Gb290bm90ZURlZmluaXRpb24oKXtsZXQgbD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKSxwPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKSxkPXRoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLHU9cC5wb3AoKSxjPXRoaXMucmVzdW1lKCk7bHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIixsPXt9KSxRT2EuY2FsbChsLHUpfHwobFt1XT1jKSxkLnBvcCgpLHRoaXMuc2V0RGF0YSgic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCksdGhpcy5zZXREYXRhKCJsYXN0V2FzVGFnIil9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKGwpe2xldCBwPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKTtwfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIixwPVtdKSxwLnB1c2goSGkodGhpcy5zbGljZVNlcmlhbGl6ZShsKSkpLHRoaXMucmVzdW1lKCksdGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKGwpe2xldCBwPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKSxkPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIiksdT1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKGwpKSxjO3RoaXMucmVzdW1lKCkscHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIscD1bXSksZHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiLGQ9e30pO2xldCBiPXAuaW5kZXhPZih1KSx2PXhkKHUudG9Mb3dlckNhc2UoKSk7Yj09PS0xPyhwLnB1c2godSksZFt1XT0xLGM9cC5sZW5ndGgpOihkW3VdKyssYz1iKzEpO2xldCB4PWRbdV07dGhpcy50YWcoJzxzdXA+PGEgaHJlZj0iIycrbysiZm4tIit2KyciIGlkPSInK28rImZucmVmLSIrdisoeD4xPyItIit4OiIiKSsnIiBkYXRhLWZvb3Rub3RlLXJlZj0iIiBhcmlhLWRlc2NyaWJlZGJ5PSJmb290bm90ZS1sYWJlbCI+JytTdHJpbmcoYykrIjwvYT48L3N1cD4iKX0sbnVsbCgpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKXx8W10scD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpfHx7fSxkPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpfHx7fSx1PS0xO2ZvcihsLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPHNlY3Rpb24gZGF0YS1mb290bm90ZXM9IiIgY2xhc3M9ImZvb3Rub3RlcyI+PCcrYSsnIGlkPSJmb290bm90ZS1sYWJlbCInKyhyPyIgIityOiIiKSsiPiIpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHQpKSx0aGlzLnRhZygiPC8iK2ErIj4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8b2w+IikpOysrdTxsLmxlbmd0aDspe2xldCBjPWxbdV0sYj14ZChjLnRvTG93ZXJDYXNlKCkpLHY9MCx4PVtdO2Zvcig7Kyt2PD1wW2NdOyl4LnB1c2goJzxhIGhyZWY9IiMnK28rImZucmVmLSIrYisodj4xPyItIit2OiIiKSsnIiBkYXRhLWZvb3Rub3RlLWJhY2tyZWY9IiIgYXJpYS1sYWJlbD0iJyt0aGlzLmVuY29kZSh0eXBlb2Ygbj09InN0cmluZyI/bjpuKHUsdikpKyciIGNsYXNzPSJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiPlx1MjFBOScrKHY+MT8iPHN1cD4iK3YrIjwvc3VwPiI6IiIpKyI8L2E+Iik7bGV0IG09eC5qb2luKCIgIiksZj0hMTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8bGkgaWQ9IicrbysiZm4tIitiKyciPicpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoZFtjXS5yZXBsYWNlKC88XC9wPig/OlxyP1xufFxyKT8kLyxmdW5jdGlvbih5KXtyZXR1cm4gZj0hMCwiICIrbSt5fSkpLGZ8fCh0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKG0pKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L2xpPiIpfWwubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L29sPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvc2VjdGlvbj4iKSl9fX19dmFyIFFPYSxKT2Esdzl0PWcoKCk9PntZcCgpO3lkKCk7UU9hPXt9Lmhhc093blByb3BlcnR5LEpPYT17fTtpKHk5dCwiZGVmYXVsdEJhY2tMYWJlbCIpO2koZG1lLCJnZm1Gb290bm90ZUh0bWwiKX0pO3ZhciBrOXQ9ZygoKT0+e3g5dCgpO3c5dCgpfSk7ZnVuY3Rpb24gdW1lKCl7cmV0dXJue2VudGVyOntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjxkZWw+Iil9fSxleGl0OntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjwvZGVsPiIpfX19fXZhciBTOXQ9ZygoKT0+e2kodW1lLCJnZm1TdHJpa2V0aHJvdWdoSHRtbCIpfSk7ZnVuY3Rpb24gcG1lKHMpe2xldCB0PShzfHx7fSkuc2luZ2xlVGlsZGUsYT17bmFtZToic3RyaWtldGhyb3VnaCIsdG9rZW5pemU6bixyZXNvbHZlQWxsOnJ9O3JldHVybiB0PT1udWxsJiYodD0hMCkse3RleHQ6ezEyNjphfSxpbnNpZGVTcGFuOntudWxsOlthXX0sYXR0ZW50aW9uTWFya2Vyczp7bnVsbDpbMTI2XX19O2Z1bmN0aW9uIHIobyxsKXtsZXQgcD0tMTtmb3IoOysrcDxvLmxlbmd0aDspaWYob1twXVswXT09PSJlbnRlciImJm9bcF1bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZvW3BdWzFdLl9jbG9zZSl7bGV0IGQ9cDtmb3IoO2QtLTspaWYob1tkXVswXT09PSJleGl0IiYmb1tkXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bZF1bMV0uX29wZW4mJm9bcF1bMV0uZW5kLm9mZnNldC1vW3BdWzFdLnN0YXJ0Lm9mZnNldD09PW9bZF1bMV0uZW5kLm9mZnNldC1vW2RdWzFdLnN0YXJ0Lm9mZnNldCl7b1twXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiLG9bZF1bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIjtsZXQgdT17dHlwZToic3RyaWtldGhyb3VnaCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvW2RdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW3BdWzFdLmVuZCl9LGM9e3R5cGU6InN0cmlrZXRocm91Z2hUZXh0IixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bZF1bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW3BdWzFdLnN0YXJ0KX0sYj1bWyJlbnRlciIsdSxsXSxbImVudGVyIixvW2RdWzFdLGxdLFsiZXhpdCIsb1tkXVsxXSxsXSxbImVudGVyIixjLGxdXSx2PWwucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsO3YmJnNyKGIsYi5sZW5ndGgsMCxYcCh2LG8uc2xpY2UoZCsxLHApLGwpKSxzcihiLGIubGVuZ3RoLDAsW1siZXhpdCIsYyxsXSxbImVudGVyIixvW3BdWzFdLGxdLFsiZXhpdCIsb1twXVsxXSxsXSxbImV4aXQiLHUsbF1dKSxzcihvLGQtMSxwLWQrMyxiKSxwPWQrYi5sZW5ndGgtMjticmVha319Zm9yKHA9LTE7KytwPG8ubGVuZ3RoOylvW3BdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmKG9bcF1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBvfWkociwicmVzb2x2ZUFsbFN0cmlrZXRocm91Z2giKTtmdW5jdGlvbiBuKG8sbCxwKXtsZXQgZD10aGlzLnByZXZpb3VzLHU9dGhpcy5ldmVudHMsYz0wO3JldHVybiBiO2Z1bmN0aW9uIGIoeCl7cmV0dXJuIGQ9PT0xMjYmJnVbdS5sZW5ndGgtMV1bMV0udHlwZSE9PSJjaGFyYWN0ZXJFc2NhcGUiP3AoeCk6KG8uZW50ZXIoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLHYoeCkpfWZ1bmN0aW9uIHYoeCl7bGV0IG09TDAoZCk7aWYoeD09PTEyNilyZXR1cm4gYz4xP3AoeCk6KG8uY29uc3VtZSh4KSxjKyssdik7aWYoYzwyJiYhdClyZXR1cm4gcCh4KTtsZXQgZj1vLmV4aXQoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLHk9TDAoeCk7cmV0dXJuIGYuX29wZW49IXl8fHk9PT0yJiYhIW0sZi5fY2xvc2U9IW18fG09PT0yJiYhIXksbCh4KX19aShuLCJ0b2tlbml6ZVN0cmlrZXRocm91Z2giKX12YXIgXzl0PWcoKCk9PntiZCgpO2xpZSgpO3VrKCk7aShwbWUsImdmbVN0cmlrZXRocm91Z2giKX0pO3ZhciBNOXQ9ZygoKT0+e1M5dCgpO185dCgpfSk7ZnVuY3Rpb24gZm1lKCl7cmV0dXJue2VudGVyOnt0YWJsZShzKXtsZXQgZT1zLl9hbGlnbjt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGFibGU+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIixlKX0sdGFibGVCb2R5KCl7dGhpcy50YWcoIjx0Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHM9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIiksdD1obWVbc1tlXV07dD09PXZvaWQgMD90aGlzLmJ1ZmZlcigpOih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK3QrIj4iKSl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgcz10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSx0PWhtZVtzW2VdXTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGgiK3QrIj4iKX0sdGFibGVSb3coKXt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIiwwKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dHI+Iil9fSxleGl0Ontjb2RlVGV4dERhdGEocyl7bGV0IGU9dGhpcy5zbGljZVNlcmlhbGl6ZShzKTt0aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxlRmEpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShlKSl9LHRhYmxlKCl7dGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIiksdGhpcy5zZXREYXRhKCJzbHVycEFsbExpbmVFbmRpbmdzIiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90YWJsZT4iKX0sdGFibGVCb2R5KCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHM9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7ZSBpbiBzPyh0aGlzLnRhZygiPC90ZD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKzEpKTp0aGlzLnJlc3VtZSgpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCBzPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTt0aGlzLnRhZygiPC90aD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixzKzEpfSx0YWJsZVJvdygpe2xldCBzPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2Zvcig7ZTxzLmxlbmd0aDspdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIitobWVbc1tlXV0rIj48L3RkPiIpLGUrKzt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RyPiIpfX19fWZ1bmN0aW9uIGVGYShzLGUpe3JldHVybiBlPT09InwiP2U6c312YXIgaG1lLHo5dD1nKCgpPT57aG1lPXtub25lOiIiLGxlZnQ6JyBhbGlnbj0ibGVmdCInLHJpZ2h0OicgYWxpZ249InJpZ2h0IicsY2VudGVyOicgYWxpZ249ImNlbnRlciInfTtpKGZtZSwiZ2ZtVGFibGVIdG1sIik7aShlRmEsInJlcGxhY2UiKX0pO2Z1bmN0aW9uIHRGYShzLGUsdCxhKXtsZXQgcj0wO2lmKCEodD09PTAmJmEubGVuZ3RoPT09MCkpe2Zvcig7cjxzLm1hcC5sZW5ndGg7KXtpZihzLm1hcFtyXVswXT09PWUpe3MubWFwW3JdWzFdKz10LHMubWFwW3JdWzJdLnB1c2goLi4uYSk7cmV0dXJufXIrPTF9cy5tYXAucHVzaChbZSx0LGFdKX19dmFyIEVpZSxDOXQ9ZygoKT0+e0VpZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFZGl0TWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1bXX1hZGQoZSx0LGEpe3RGYSh0aGlzLGUsdCxhKX1jb25zdW1lKGUpe2lmKHRoaXMubWFwLnNvcnQoZnVuY3Rpb24obixvKXtyZXR1cm4gblswXS1vWzBdfSksdGhpcy5tYXAubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9dGhpcy5tYXAubGVuZ3RoLGE9W107Zm9yKDt0PjA7KXQtPTEsYS5wdXNoKGUuc2xpY2UodGhpcy5tYXBbdF1bMF0rdGhpcy5tYXBbdF1bMV0pLHRoaXMubWFwW3RdWzJdKSxlLmxlbmd0aD10aGlzLm1hcFt0XVswXTthLnB1c2goZS5zbGljZSgpKSxlLmxlbmd0aD0wO2xldCByPWEucG9wKCk7Zm9yKDtyOyl7Zm9yKGxldCBuIG9mIHIpZS5wdXNoKG4pO3I9YS5wb3AoKX10aGlzLm1hcC5sZW5ndGg9MH19O2kodEZhLCJhZGRJbXBsZW1lbnRhdGlvbiIpfSk7ZnVuY3Rpb24gVDl0KHMsZSl7bGV0IHQ9ITEsYT1bXTtmb3IoO2U8cy5sZW5ndGg7KXtsZXQgcj1zW2VdO2lmKHQpe2lmKHJbMF09PT0iZW50ZXIiKXJbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiJiZhLnB1c2goc1tlKzFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiPyJsZWZ0Ijoibm9uZSIpO2Vsc2UgaWYoclsxXS50eXBlPT09InRhYmxlQ29udGVudCIpe2lmKHNbZS0xXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIil7bGV0IG49YS5sZW5ndGgtMTthW25dPWFbbl09PT0ibGVmdCI/ImNlbnRlciI6InJpZ2h0In19ZWxzZSBpZihyWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciKWJyZWFrfWVsc2UgclswXT09PSJlbnRlciImJnJbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyImJih0PSEwKTtlKz0xfXJldHVybiBhfXZhciAkOXQ9ZygoKT0+e2koVDl0LCJnZm1UYWJsZUFsaWduIil9KTtmdW5jdGlvbiBtbWUoKXtyZXR1cm57Zmxvdzp7bnVsbDp7bmFtZToidGFibGUiLHRva2VuaXplOmFGYSxyZXNvbHZlQWxsOnNGYX19fX1mdW5jdGlvbiBhRmEocyxlLHQpe2xldCBhPXRoaXMscj0wLG49MCxvO3JldHVybiBsO2Z1bmN0aW9uIGwoSCl7bGV0IGs9YS5ldmVudHMubGVuZ3RoLTE7Zm9yKDtrPi0xOyl7bGV0IFA9YS5ldmVudHNba11bMV0udHlwZTtpZihQPT09ImxpbmVFbmRpbmcifHxQPT09ImxpbmVQcmVmaXgiKWstLTtlbHNlIGJyZWFrfWxldCBTPWs+LTE/YS5ldmVudHNba11bMV0udHlwZTpudWxsLEk9Uz09PSJ0YWJsZUhlYWQifHxTPT09InRhYmxlUm93Ij9fOnA7cmV0dXJuIEk9PT1fJiZhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/dChIKTpJKEgpfWZ1bmN0aW9uIHAoSCl7cmV0dXJuIHMuZW50ZXIoInRhYmxlSGVhZCIpLHMuZW50ZXIoInRhYmxlUm93IiksZChIKX1mdW5jdGlvbiBkKEgpe3JldHVybiBIPT09MTI0fHwobz0hMCxuKz0xKSx1KEgpfWZ1bmN0aW9uIHUoSCl7cmV0dXJuIEg9PT1udWxsP3QoSCk6dnQoSCk/bj4xPyhuPTAsYS5pbnRlcnJ1cHQ9ITAscy5leGl0KCJ0YWJsZVJvdyIpLHMuZW50ZXIoImxpbmVFbmRpbmciKSxzLmNvbnN1bWUoSCkscy5leGl0KCJsaW5lRW5kaW5nIiksdik6dChIKTpIdChIKT9LdChzLHUsIndoaXRlc3BhY2UiKShIKToobis9MSxvJiYobz0hMSxyKz0xKSxIPT09MTI0PyhzLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIikscy5jb25zdW1lKEgpLHMuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLG89ITAsdSk6KHMuZW50ZXIoImRhdGEiKSxjKEgpKSl9ZnVuY3Rpb24gYyhIKXtyZXR1cm4gSD09PW51bGx8fEg9PT0xMjR8fEFhKEgpPyhzLmV4aXQoImRhdGEiKSx1KEgpKToocy5jb25zdW1lKEgpLEg9PT05Mj9iOmMpfWZ1bmN0aW9uIGIoSCl7cmV0dXJuIEg9PT05Mnx8SD09PTEyND8ocy5jb25zdW1lKEgpLGMpOmMoSCl9ZnVuY3Rpb24gdihIKXtyZXR1cm4gYS5pbnRlcnJ1cHQ9ITEsYS5wYXJzZXIubGF6eVthLm5vdygpLmxpbmVdP3QoSCk6KHMuZW50ZXIoInRhYmxlRGVsaW1pdGVyUm93Iiksbz0hMSxIdChIKT9LdChzLHgsImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoSCk6eChIKSl9ZnVuY3Rpb24geChIKXtyZXR1cm4gSD09PTQ1fHxIPT09NTg/ZihIKTpIPT09MTI0PyhvPSEwLHMuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSxzLmNvbnN1bWUoSCkscy5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksbSk6QyhIKX1mdW5jdGlvbiBtKEgpe3JldHVybiBIdChIKT9LdChzLGYsIndoaXRlc3BhY2UiKShIKTpmKEgpfWZ1bmN0aW9uIGYoSCl7cmV0dXJuIEg9PT01OD8obis9MSxvPSEwLHMuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIikscy5jb25zdW1lKEgpLHMuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx5KTpIPT09NDU/KG4rPTEseShIKSk6SD09PW51bGx8fHZ0KEgpP04oSCk6QyhIKX1mdW5jdGlvbiB5KEgpe3JldHVybiBIPT09NDU/KHMuZW50ZXIoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksTShIKSk6QyhIKX1mdW5jdGlvbiBNKEgpe3JldHVybiBIPT09NDU/KHMuY29uc3VtZShIKSxNKTpIPT09NTg/KG89ITAscy5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHMuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIikscy5jb25zdW1lKEgpLHMuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx6KToocy5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHooSCkpfWZ1bmN0aW9uIHooSCl7cmV0dXJuIEh0KEgpP0t0KHMsTiwid2hpdGVzcGFjZSIpKEgpOk4oSCl9ZnVuY3Rpb24gTihIKXtyZXR1cm4gSD09PTEyND94KEgpOkg9PT1udWxsfHx2dChIKT8hb3x8ciE9PW4/QyhIKToocy5leGl0KCJ0YWJsZURlbGltaXRlclJvdyIpLHMuZXhpdCgidGFibGVIZWFkIiksZShIKSk6QyhIKX1mdW5jdGlvbiBDKEgpe3JldHVybiB0KEgpfWZ1bmN0aW9uIF8oSCl7cmV0dXJuIHMuZW50ZXIoInRhYmxlUm93IiksTyhIKX1mdW5jdGlvbiBPKEgpe3JldHVybiBIPT09MTI0PyhzLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIikscy5jb25zdW1lKEgpLHMuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLE8pOkg9PT1udWxsfHx2dChIKT8ocy5leGl0KCJ0YWJsZVJvdyIpLGUoSCkpOkh0KEgpP0t0KHMsTywid2hpdGVzcGFjZSIpKEgpOihzLmVudGVyKCJkYXRhIiksJChIKSl9ZnVuY3Rpb24gJChIKXtyZXR1cm4gSD09PW51bGx8fEg9PT0xMjR8fEFhKEgpPyhzLmV4aXQoImRhdGEiKSxPKEgpKToocy5jb25zdW1lKEgpLEg9PT05Mj9FOiQpfWZ1bmN0aW9uIEUoSCl7cmV0dXJuIEg9PT05Mnx8SD09PTEyND8ocy5jb25zdW1lKEgpLCQpOiQoSCl9fWZ1bmN0aW9uIHNGYShzLGUpe2xldCB0PS0xLGE9ITAscj0wLG49WzAsMCwwLDBdLG89WzAsMCwwLDBdLGw9ITEscD0wLGQsdSxjLGI9bmV3IEVpZTtmb3IoOysrdDxzLmxlbmd0aDspe2xldCB2PXNbdF0seD12WzFdO3ZbMF09PT0iZW50ZXIiP3gudHlwZT09PSJ0YWJsZUhlYWQiPyhsPSExLHAhPT0wJiYoRDl0KGIsZSxwLGQsdSksdT12b2lkIDAscD0wKSxkPXt0eXBlOiJ0YWJsZSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx4LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx4LmVuZCl9LGIuYWRkKHQsMCxbWyJlbnRlciIsZCxlXV0pKTp4LnR5cGU9PT0idGFibGVSb3cifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhhPSEwLGM9dm9pZCAwLG49WzAsMCwwLDBdLG89WzAsdCsxLDAsMF0sbCYmKGw9ITEsdT17dHlwZToidGFibGVCb2R5IixzdGFydDpPYmplY3QuYXNzaWduKHt9LHguc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHguZW5kKX0sYi5hZGQodCwwLFtbImVudGVyIix1LGVdXSkpLHI9eC50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8yOnU/MzoxKTpyJiYoeC50eXBlPT09ImRhdGEifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKT8oYT0hMSxvWzJdPT09MCYmKG5bMV0hPT0wJiYob1swXT1vWzFdLGM9UGllKGIsZSxuLHIsdm9pZCAwLGMpLG49WzAsMCwwLDBdKSxvWzJdPXQpKTp4LnR5cGU9PT0idGFibGVDZWxsRGl2aWRlciImJihhP2E9ITE6KG5bMV0hPT0wJiYob1swXT1vWzFdLGM9UGllKGIsZSxuLHIsdm9pZCAwLGMpKSxuPW8sbz1bblsxXSx0LDAsMF0pKTp4LnR5cGU9PT0idGFibGVIZWFkIj8obD0hMCxwPXQpOngudHlwZT09PSJ0YWJsZVJvdyJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KHA9dCxuWzFdIT09MD8ob1swXT1vWzFdLGM9UGllKGIsZSxuLHIsdCxjKSk6b1sxXSE9PTAmJihjPVBpZShiLGUsbyxyLHQsYykpLHI9MCk6ciYmKHgudHlwZT09PSJkYXRhInx8eC50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyInx8eC50eXBlPT09InRhYmxlRGVsaW1pdGVyRmlsbGVyIikmJihvWzNdPXQpfWZvcihwIT09MCYmRDl0KGIsZSxwLGQsdSksYi5jb25zdW1lKGUuZXZlbnRzKSx0PS0xOysrdDxlLmV2ZW50cy5sZW5ndGg7KXtsZXQgdj1lLmV2ZW50c1t0XTt2WzBdPT09ImVudGVyIiYmdlsxXS50eXBlPT09InRhYmxlIiYmKHZbMV0uX2FsaWduPVQ5dChlLmV2ZW50cyx0KSl9cmV0dXJuIHN9ZnVuY3Rpb24gUGllKHMsZSx0LGEscixuKXtsZXQgbz1hPT09MT8idGFibGVIZWFkZXIiOmE9PT0yPyJ0YWJsZURlbGltaXRlciI6InRhYmxlRGF0YSIsbD0idGFibGVDb250ZW50Ijt0WzBdIT09MCYmKG4uZW5kPU9iamVjdC5hc3NpZ24oe30sZWIoZS5ldmVudHMsdFswXSkpLHMuYWRkKHRbMF0sMCxbWyJleGl0IixuLGVdXSkpO2xldCBwPWViKGUuZXZlbnRzLHRbMV0pO2lmKG49e3R5cGU6byxzdGFydDpPYmplY3QuYXNzaWduKHt9LHApLGVuZDpPYmplY3QuYXNzaWduKHt9LHApfSxzLmFkZCh0WzFdLDAsW1siZW50ZXIiLG4sZV1dKSx0WzJdIT09MCl7bGV0IGQ9ZWIoZS5ldmVudHMsdFsyXSksdT1lYihlLmV2ZW50cyx0WzNdKSxjPXt0eXBlOmwsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxkKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx1KX07aWYocy5hZGQodFsyXSwwLFtbImVudGVyIixjLGVdXSksYSE9PTIpe2xldCBiPWUuZXZlbnRzW3RbMl1dLHY9ZS5ldmVudHNbdFszXV07aWYoYlsxXS5lbmQ9T2JqZWN0LmFzc2lnbih7fSx2WzFdLmVuZCksYlsxXS50eXBlPSJjaHVua1RleHQiLGJbMV0uY29udGVudFR5cGU9InRleHQiLHRbM10+dFsyXSsxKXtsZXQgeD10WzJdKzEsbT10WzNdLXRbMl0tMTtzLmFkZCh4LG0sW10pfX1zLmFkZCh0WzNdKzEsMCxbWyJleGl0IixjLGVdXSl9cmV0dXJuIHIhPT12b2lkIDAmJihuLmVuZD1PYmplY3QuYXNzaWduKHt9LGViKGUuZXZlbnRzLHIpKSxzLmFkZChyLDAsW1siZXhpdCIsbixlXV0pLG49dm9pZCAwKSxufWZ1bmN0aW9uIEQ5dChzLGUsdCxhLHIpe2xldCBuPVtdLG89ZWIoZS5ldmVudHMsdCk7ciYmKHIuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIscixlXSkpLGEuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIsYSxlXSkscy5hZGQodCsxLDAsbil9ZnVuY3Rpb24gZWIocyxlKXtsZXQgdD1zW2VdLGE9dFswXT09PSJlbnRlciI/InN0YXJ0IjoiZW5kIjtyZXR1cm4gdFsxXVthXX12YXIgTDl0PWcoKCk9PntpcigpO1ZhKCk7Qzl0KCk7JDl0KCk7aShtbWUsImdmbVRhYmxlIik7aShhRmEsInRva2VuaXplVGFibGUiKTtpKHNGYSwicmVzb2x2ZVRhYmxlIik7aShQaWUsImZsdXNoQ2VsbCIpO2koRDl0LCJmbHVzaFRhYmxlRW5kIik7aShlYiwiZ2V0UG9pbnQiKX0pO3ZhciBFOXQ9ZygoKT0+e3o5dCgpO0w5dCgpfSk7ZnVuY3Rpb24gZ21lKCl7cmV0dXJue2V4aXQ6e2h0bWxGbG93RGF0YShzKXtJOXQuY2FsbCh0aGlzLHMsUDl0KX0saHRtbFRleHREYXRhKHMpe0k5dC5jYWxsKHRoaXMscyxpRmEpfX19fWZ1bmN0aW9uIEk5dChzLGUpe2xldCB0PXRoaXMuc2xpY2VTZXJpYWxpemUocyk7dGhpcy5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCYmKHQ9dC5yZXBsYWNlKGUsIiZsdDskMSQyIikpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHQpKX12YXIgUDl0LGlGYSxBOXQ9ZygoKT0+e1A5dD0vPChcLz8pKGlmcmFtZXxub2VtYmVkfG5vZnJhbWVzfHBsYWludGV4dHxzY3JpcHR8c3R5bGV8dGl0bGV8dGV4dGFyZWF8eG1wKSg/PVtcdFxuXGZcciAvPl0pL2dpLGlGYT1uZXcgUmVnRXhwKCJeIitQOXQuc291cmNlLCJpIik7aShnbWUsImdmbVRhZ2ZpbHRlckh0bWwiKTtpKEk5dCwiZXhpdEh0bWxEYXRhIil9KTt2YXIgTjl0PWcoKCk9PntBOXQoKX0pO2Z1bmN0aW9uIGJtZSgpe3JldHVybntlbnRlcjp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPSIiICcpfX0sZXhpdDp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCIvPiIpfSx0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkKCl7dGhpcy50YWcoJ2NoZWNrZWQ9IiIgJyl9fX19dmFyIFI5dD1nKCgpPT57aShibWUsImdmbVRhc2tMaXN0SXRlbUh0bWwiKX0pO2Z1bmN0aW9uIHZtZSgpe3JldHVybnt0ZXh0Ons5MTpyRmF9fX1mdW5jdGlvbiBvRmEocyxlLHQpe2xldCBhPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihwKXtyZXR1cm4gYS5wcmV2aW91cyE9PW51bGx8fCFhLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/dChwKToocy5lbnRlcigidGFza0xpc3RDaGVjayIpLHMuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxzLmNvbnN1bWUocCkscy5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksbil9ZnVuY3Rpb24gbihwKXtyZXR1cm4gQWEocCk/KHMuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLHMuY29uc3VtZShwKSxzLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLG8pOnA9PT04OHx8cD09PTEyMD8ocy5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLHMuY29uc3VtZShwKSxzLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxvKTp0KHApfWZ1bmN0aW9uIG8ocCl7cmV0dXJuIHA9PT05Mz8ocy5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHMuY29uc3VtZShwKSxzLmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxzLmV4aXQoInRhc2tMaXN0Q2hlY2siKSxsKTp0KHApfWZ1bmN0aW9uIGwocCl7cmV0dXJuIHZ0KHApP2UocCk6SHQocCk/cy5jaGVjayh7dG9rZW5pemU6bkZhfSxlLHQpKHApOnQocCl9fWZ1bmN0aW9uIG5GYShzLGUsdCl7cmV0dXJuIEt0KHMsYSwid2hpdGVzcGFjZSIpO2Z1bmN0aW9uIGEocil7cmV0dXJuIHI9PT1udWxsP3Qocik6ZShyKX19dmFyIHJGYSxPOXQ9ZygoKT0+e2lyKCk7VmEoKTtyRmE9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOm9GYX07aSh2bWUsImdmbVRhc2tMaXN0SXRlbSIpO2kob0ZhLCJ0b2tlbml6ZVRhc2tsaXN0Q2hlY2siKTtpKG5GYSwic3BhY2VUaGVuTm9uU3BhY2UiKX0pO3ZhciBGOXQ9ZygoKT0+e1I5dCgpO085dCgpfSk7ZnVuY3Rpb24gQjl0KHMpe3JldHVybiBnaWUoW0hmZSgpLGNtZSgpLHBtZShzKSxtbWUoKSx2bWUoKV0pfWZ1bmN0aW9uIGowaShzKXtyZXR1cm4gYmllKFtWZmUoKSxkbWUocyksdW1lKCksZm1lKCksZ21lKCksYm1lKCldKX12YXIgSDl0PWcoKCk9Pnt2aWUoKTtZN3QoKTtrOXQoKTtNOXQoKTtFOXQoKTtOOXQoKTtGOXQoKTtpKEI5dCwiZ2ZtIik7aShqMGksImdmbUh0bWwiKX0pO2Z1bmN0aW9uIHRiKHMpe2xldCBlPXRoaXMsdD1zfHxsRmEsYT1lLmRhdGEoKSxyPWEubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGEubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbj1hLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChhLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG89YS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGEudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO3IucHVzaChCOXQodCkpLG4ucHVzaChOZmUoKSksby5wdXNoKFJmZSh0KSl9dmFyIGxGYSxxOXQ9ZygoKT0+e083dCgpO0g5dCgpO2xGYT17fTtpKHRiLCJyZW1hcmtHZm0iKX0pO3ZhciBqOXQ9ZygoKT0+e3E5dCgpfSk7ZnVuY3Rpb24geG1lKHMpe2xldCBlPXN8fHt9LHQ9ITAsYT17fSxyPVtbXV0sbj1bXSxvPVtdLHA9YmllKFt7ZW50ZXI6e2Jsb2NrUXVvdGU6Uixjb2RlRmVuY2VkOm1lLGNvZGVGZW5jZWRGZW5jZUluZm86Zixjb2RlRmVuY2VkRmVuY2VNZXRhOmYsY29kZUluZGVudGVkOmhlLGNvZGVUZXh0OmNlLGNvbnRlbnQ6VGUsZGVmaW5pdGlvbjp5ZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6QSxkZWZpbml0aW9uTGFiZWxTdHJpbmc6ZixkZWZpbml0aW9uVGl0bGVTdHJpbmc6ZixlbXBoYXNpczpnZSxodG1sRmxvdzpXZSxodG1sVGV4dDpNZSxpbWFnZTpqLGxhYmVsOmYsbGluazp1ZSxsaXN0SXRlbU1hcmtlcjprLGxpc3RJdGVtVmFsdWU6SCxsaXN0T3JkZXJlZDokLGxpc3RVbm9yZGVyZWQ6RSxwYXJhZ3JhcGg6VixyZWZlcmVuY2U6ZixyZXNvdXJjZTp0ZSxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOmVlLHJlc291cmNlVGl0bGVTdHJpbmc6ZixzZXRleHRIZWFkaW5nOkJlLHN0cm9uZzpJZX0sZXhpdDp7YXR4SGVhZGluZzpEZSxhdHhIZWFkaW5nU2VxdWVuY2U6UmUsYXV0b2xpbmtFbWFpbDpqYSxhdXRvbGlua1Byb3RvY29sOlp0LGJsb2NrUXVvdGU6SyxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTp2ZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpvdCxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOm90LGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOlV0LGNvZGVGZW5jZWQ6Rixjb2RlRmVuY2VkRmVuY2U6VSxjb2RlRmVuY2VkRmVuY2VJbmZvOkIsY29kZUZlbmNlZEZlbmNlTWV0YTpPLGNvZGVGbG93VmFsdWU6RWUsY29kZUluZGVudGVkOkYsY29kZVRleHQ6ZGUsY29kZVRleHREYXRhOnZlLGRhdGE6dmUsZGVmaW5pdGlvbjphZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6c2UsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOnEsZGVmaW5pdGlvblRpdGxlU3RyaW5nOm9lLGVtcGhhc2lzOkxlLGhhcmRCcmVha0VzY2FwZTpqZSxoYXJkQnJlYWtUcmFpbGluZzpqZSxodG1sRmxvdzpzdCxodG1sRmxvd0RhdGE6dmUsaHRtbFRleHQ6c3QsaHRtbFRleHREYXRhOnZlLGltYWdlOlosbGFiZWw6USxsYWJlbFRleHQ6bGUsbGluZUVuZGluZzpiZSxsaW5rOlosbGlzdE9yZGVyZWQ6UyxsaXN0VW5vcmRlcmVkOkkscGFyYWdyYXBoOlcscmVmZXJlbmNlOk8scmVmZXJlbmNlU3RyaW5nOmllLHJlc291cmNlOk8scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzprZSxyZXNvdXJjZVRpdGxlU3RyaW5nOlgsc2V0ZXh0SGVhZGluZzpDZSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOl9lLHNldGV4dEhlYWRpbmdUZXh0OkdlLHN0cm9uZzpLZSx0aGVtYXRpY0JyZWFrOlllfX0sLi4uZS5odG1sRXh0ZW5zaW9uc3x8W11dKSxkPXtkZWZpbml0aW9uczphLHRpZ2h0U3RhY2s6b30sdT17YnVmZmVyOmYsZW5jb2RlOl8sZ2V0RGF0YTptLGxpbmVFbmRpbmdJZk5lZWRlZDpDLG9wdGlvbnM6ZSxyYXc6eixyZXN1bWU6eSxzZXREYXRhOngsdGFnOk19LGM9ZS5kZWZhdWx0TGluZUVuZGluZztyZXR1cm4gYjtmdW5jdGlvbiBiKGV0KXtsZXQgYnQ9LTEseWE9MCxlcz1bXSxycz1bXSxwcz1bXTtmb3IoOysrYnQ8ZXQubGVuZ3RoOykhYyYmKGV0W2J0XVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxldFtidF1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKSYmKGM9ZXRbYnRdWzJdLnNsaWNlU2VyaWFsaXplKGV0W2J0XVsxXSkpLChldFtidF1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fGV0W2J0XVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKSYmKGV0W2J0XVswXT09PSJlbnRlciI/ZXMucHVzaChidCk6dihldC5zbGljZShlcy5wb3AoKSxidCkpKSxldFtidF1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKGV0W2J0XVswXT09PSJlbnRlciI/KHBzPU1yKHBzLGV0LnNsaWNlKHlhLGJ0KSkseWE9YnQpOihycz1NcihycyxldC5zbGljZSh5YSxidCsxKSkseWE9YnQrMSkpO3JzPU1yKHJzLHBzKSxycz1NcihycyxldC5zbGljZSh5YSkpLGJ0PS0xO2xldCBucz1ycztmb3IocC5lbnRlci5udWxsJiZwLmVudGVyLm51bGwuY2FsbCh1KTsrK2J0PGV0Lmxlbmd0aDspe2xldCB0aT1wW25zW2J0XVswXV0sYWk9bnNbYnRdWzFdLnR5cGUsemU9dGlbYWldO1Y5dC5jYWxsKHRpLGFpKSYmemUmJnplLmNhbGwoe3NsaWNlU2VyaWFsaXplOm5zW2J0XVsyXS5zbGljZVNlcmlhbGl6ZSwuLi51fSxuc1tidF1bMV0pfXJldHVybiBwLmV4aXQubnVsbCYmcC5leGl0Lm51bGwuY2FsbCh1KSxyWzBdLmpvaW4oIiIpfWZ1bmN0aW9uIHYoZXQpe2xldCBidD1ldC5sZW5ndGgseWE9MCxlcz0wLHJzPSExLHBzO2Zvcig7Kyt5YTxidDspe2xldCBucz1ldFt5YV07aWYobnNbMV0uX2NvbnRhaW5lcilwcz12b2lkIDAsbnNbMF09PT0iZW50ZXIiP2VzKys6ZXMtLTtlbHNlIHN3aXRjaChuc1sxXS50eXBlKXtjYXNlImxpc3RJdGVtUHJlZml4Ijp7bnNbMF09PT0iZXhpdCImJihwcz0hMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpicmVhaztjYXNlImxpbmVFbmRpbmdCbGFuayI6e25zWzBdPT09ImVudGVyIiYmIWVzJiYocHM/cHM9dm9pZCAwOnJzPSEwKTticmVha31kZWZhdWx0OnBzPXZvaWQgMH19ZXRbMF1bMV0uX2xvb3NlPXJzfWZ1bmN0aW9uIHgoZXQsYnQpe2RbZXRdPWJ0fWZ1bmN0aW9uIG0oZXQpe3JldHVybiBkW2V0XX1mdW5jdGlvbiBmKCl7ci5wdXNoKFtdKX1mdW5jdGlvbiB5KCl7cmV0dXJuIHIucG9wKCkuam9pbigiIil9ZnVuY3Rpb24gTShldCl7dCYmKHgoImxhc3RXYXNUYWciLCEwKSxyW3IubGVuZ3RoLTFdLnB1c2goZXQpKX1mdW5jdGlvbiB6KGV0KXt4KCJsYXN0V2FzVGFnIikscltyLmxlbmd0aC0xXS5wdXNoKGV0KX1mdW5jdGlvbiBOKCl7eihjfHxgCmApfWZ1bmN0aW9uIEMoKXtsZXQgZXQ9cltyLmxlbmd0aC0xXSxidD1ldFtldC5sZW5ndGgtMV0seWE9YnQ/YnQuY2hhckNvZGVBdChidC5sZW5ndGgtMSk6bnVsbDt5YT09PTEwfHx5YT09PTEzfHx5YT09PW51bGx8fE4oKX1mdW5jdGlvbiBfKGV0KXtyZXR1cm4gbSgiaWdub3JlRW5jb2RlIik/ZXQ6eGllKGV0KX1mdW5jdGlvbiBPKCl7eSgpfWZ1bmN0aW9uICQoZXQpe28ucHVzaCghZXQuX2xvb3NlKSxDKCksTSgiPG9sIikseCgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gRShldCl7by5wdXNoKCFldC5fbG9vc2UpLEMoKSxNKCI8dWwiKSx4KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBIKGV0KXtpZihtKCJleHBlY3RGaXJzdEl0ZW0iKSl7bGV0IGJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKGV0KSwxMCk7YnQhPT0xJiZNKCcgc3RhcnQ9IicrXyhTdHJpbmcoYnQpKSsnIicpfX1mdW5jdGlvbiBrKCl7bSgiZXhwZWN0Rmlyc3RJdGVtIik/TSgiPiIpOlAoKSxDKCksTSgiPGxpPiIpLHgoImV4cGVjdEZpcnN0SXRlbSIpLHgoImxhc3RXYXNUYWciKX1mdW5jdGlvbiBTKCl7UCgpLG8ucG9wKCksTigpLE0oIjwvb2w+Iil9ZnVuY3Rpb24gSSgpe1AoKSxvLnBvcCgpLE4oKSxNKCI8L3VsPiIpfWZ1bmN0aW9uIFAoKXttKCJsYXN0V2FzVGFnIikmJiFtKCJzbHVycEFsbExpbmVFbmRpbmdzIikmJkMoKSxNKCI8L2xpPiIpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBSKCl7by5wdXNoKCExKSxDKCksTSgiPGJsb2NrcXVvdGU+Iil9ZnVuY3Rpb24gSygpe28ucG9wKCksQygpLE0oIjwvYmxvY2txdW90ZT4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gVigpe29bby5sZW5ndGgtMV18fChDKCksTSgiPHA+IikpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBXKCl7b1tvLmxlbmd0aC0xXT94KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCk6TSgiPC9wPiIpfWZ1bmN0aW9uIG1lKCl7QygpLE0oIjxwcmU+PGNvZGUiKSx4KCJmZW5jZXNDb3VudCIsMCl9ZnVuY3Rpb24gQigpe2xldCBldD15KCk7TSgnIGNsYXNzPSJsYW5ndWFnZS0nK2V0KyciJyl9ZnVuY3Rpb24gVSgpe2xldCBldD1tKCJmZW5jZXNDb3VudCIpfHwwO2V0fHwoTSgiPiIpLHgoInNsdXJwT25lTGluZUVuZGluZyIsITApKSx4KCJmZW5jZXNDb3VudCIsZXQrMSl9ZnVuY3Rpb24gaGUoKXtDKCksTSgiPHByZT48Y29kZT4iKX1mdW5jdGlvbiBGKCl7bGV0IGV0PW0oImZlbmNlc0NvdW50Iik7ZXQhPT12b2lkIDAmJmV0PDImJmQudGlnaHRTdGFjay5sZW5ndGg+MCYmIW0oImxhc3RXYXNUYWciKSYmTigpLG0oImZsb3dDb2RlU2VlbkRhdGEiKSYmQygpLE0oIjwvY29kZT48L3ByZT4iKSxldCE9PXZvaWQgMCYmZXQ8MiYmQygpLHgoImZsb3dDb2RlU2VlbkRhdGEiKSx4KCJmZW5jZXNDb3VudCIpLHgoInNsdXJwT25lTGluZUVuZGluZyIpfWZ1bmN0aW9uIGooKXtuLnB1c2goe2ltYWdlOiEwfSksdD12b2lkIDB9ZnVuY3Rpb24gdWUoKXtuLnB1c2goe30pfWZ1bmN0aW9uIGxlKGV0KXtuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShldCl9ZnVuY3Rpb24gUSgpe25bbi5sZW5ndGgtMV0ubGFiZWw9eSgpfWZ1bmN0aW9uIGllKGV0KXtuW24ubGVuZ3RoLTFdLnJlZmVyZW5jZUlkPXRoaXMuc2xpY2VTZXJpYWxpemUoZXQpfWZ1bmN0aW9uIHRlKCl7ZigpLG5bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249IiJ9ZnVuY3Rpb24gZWUoKXtmKCkseCgiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24ga2UoKXtuW24ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXkoKSx4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBYKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gWigpe2xldCBldD1uLmxlbmd0aC0xLGJ0PW5bZXRdLHlhPWJ0LnJlZmVyZW5jZUlkfHxidC5sYWJlbElkLGVzPWJ0LmRlc3RpbmF0aW9uPT09dm9pZCAwP2FbSGkoeWEpXTpidDtmb3IodD0hMDtldC0tOylpZihuW2V0XS5pbWFnZSl7dD12b2lkIDA7YnJlYWt9YnQuaW1hZ2U/KE0oJzxpbWcgc3JjPSInK3hkKGVzLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6Y0ZhKSsnIiBhbHQ9IicpLHooYnQubGFiZWwpLE0oJyInKSk6TSgnPGEgaHJlZj0iJyt4ZChlcy5kZXN0aW5hdGlvbixlLmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOlU5dCkrJyInKSxNKGVzLnRpdGxlPycgdGl0bGU9IicrZXMudGl0bGUrJyInOiIiKSxidC5pbWFnZT9NKCIgLz4iKTooTSgiPiIpLHooYnQubGFiZWwpLE0oIjwvYT4iKSksbi5wb3AoKX1mdW5jdGlvbiB5ZSgpe2YoKSxuLnB1c2goe30pfWZ1bmN0aW9uIHEoZXQpe3koKSxuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShldCl9ZnVuY3Rpb24gQSgpe2YoKSx4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBzZSgpe25bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHgoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIG9lKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gYWUoKXtsZXQgZXQ9bltuLmxlbmd0aC0xXSxidD1IaShldC5sYWJlbElkKTt5KCksVjl0LmNhbGwoYSxidCl8fChhW2J0XT1uW24ubGVuZ3RoLTFdKSxuLnBvcCgpfWZ1bmN0aW9uIFRlKCl7eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIFJlKGV0KXttKCJoZWFkaW5nUmFuayIpfHwoeCgiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoZXQpLmxlbmd0aCksQygpLE0oIjxoIittKCJoZWFkaW5nUmFuayIpKyI+IikpfWZ1bmN0aW9uIEJlKCl7ZigpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBHZSgpe3goInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiBEZSgpe00oIjwvaCIrbSgiaGVhZGluZ1JhbmsiKSsiPiIpLHgoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gX2UoZXQpe3goImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKGV0KS5jaGFyQ29kZUF0KDApPT09NjE/MToyKX1mdW5jdGlvbiBDZSgpe2xldCBldD15KCk7QygpLE0oIjxoIittKCJoZWFkaW5nUmFuayIpKyI+IikseihldCksTSgiPC9oIittKCJoZWFkaW5nUmFuayIpKyI+IikseCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHgoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gdmUoZXQpe3ooXyh0aGlzLnNsaWNlU2VyaWFsaXplKGV0KSkpfWZ1bmN0aW9uIGJlKGV0KXtpZighbSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpKXtpZihtKCJzbHVycE9uZUxpbmVFbmRpbmciKSl7eCgic2x1cnBPbmVMaW5lRW5kaW5nIik7cmV0dXJufWlmKG0oImluQ29kZVRleHQiKSl7eigiICIpO3JldHVybn16KF8odGhpcy5zbGljZVNlcmlhbGl6ZShldCkpKX19ZnVuY3Rpb24gRWUoZXQpe3ooXyh0aGlzLnNsaWNlU2VyaWFsaXplKGV0KSkpLHgoImZsb3dDb2RlU2VlbkRhdGEiLCEwKX1mdW5jdGlvbiBqZSgpe00oIjxiciAvPiIpfWZ1bmN0aW9uIFdlKCl7QygpLE1lKCl9ZnVuY3Rpb24gc3QoKXt4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBNZSgpe2UuYWxsb3dEYW5nZXJvdXNIdG1sJiZ4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBnZSgpe00oIjxlbT4iKX1mdW5jdGlvbiBJZSgpe00oIjxzdHJvbmc+Iil9ZnVuY3Rpb24gY2UoKXt4KCJpbkNvZGVUZXh0IiwhMCksTSgiPGNvZGU+Iil9ZnVuY3Rpb24gZGUoKXt4KCJpbkNvZGVUZXh0IiksTSgiPC9jb2RlPiIpfWZ1bmN0aW9uIExlKCl7TSgiPC9lbT4iKX1mdW5jdGlvbiBLZSgpe00oIjwvc3Ryb25nPiIpfWZ1bmN0aW9uIFllKCl7QygpLE0oIjxociAvPiIpfWZ1bmN0aW9uIG90KGV0KXt4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixldC50eXBlKX1mdW5jdGlvbiBVdChldCl7bGV0IGJ0PXRoaXMuc2xpY2VTZXJpYWxpemUoZXQpLHlhPW0oImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT9KOShidCxtKCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpOlpwKGJ0KTt6KF8oeWEpKSx4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIil9ZnVuY3Rpb24gWnQoZXQpe2xldCBidD10aGlzLnNsaWNlU2VyaWFsaXplKGV0KTtNKCc8YSBocmVmPSInK3hkKGJ0LGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6VTl0KSsnIj4nKSx6KF8oYnQpKSxNKCI8L2E+Iil9ZnVuY3Rpb24gamEoZXQpe2xldCBidD10aGlzLnNsaWNlU2VyaWFsaXplKGV0KTtNKCc8YSBocmVmPSInK3hkKCJtYWlsdG86IitidCkrJyI+JykseihfKGJ0KSksTSgiPC9hPiIpfX12YXIgVjl0LFU5dCxjRmEseW1lPWcoKCk9PntkaygpO2JkKCk7dmllKCk7aGllKCk7cWZlKCk7WXAoKTt5ZCgpO1Y5dD17fS5oYXNPd25Qcm9wZXJ0eSxVOXQ9L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSxjRmE9L15odHRwcz8kL2k7aSh4bWUsImNvbXBpbGUiKX0pO2Z1bmN0aW9uIGRGYShzKXtsZXQgZT1zLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5jb250ZW50SW5pdGlhbCxhLHIpLHQ7cmV0dXJuIGU7ZnVuY3Rpb24gYShsKXtpZihsPT09bnVsbCl7cy5jb25zdW1lKGwpO3JldHVybn1yZXR1cm4gcy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShsKSxzLmV4aXQoImxpbmVFbmRpbmciKSxLdChzLGUsImxpbmVQcmVmaXgiKX1mdW5jdGlvbiByKGwpe3JldHVybiBzLmVudGVyKCJwYXJhZ3JhcGgiKSxuKGwpfWZ1bmN0aW9uIG4obCl7bGV0IHA9cy5lbnRlcigiY2h1bmtUZXh0Iix7Y29udGVudFR5cGU6InRleHQiLHByZXZpb3VzOnR9KTtyZXR1cm4gdCYmKHQubmV4dD1wKSx0PXAsbyhsKX1mdW5jdGlvbiBvKGwpe2lmKGw9PT1udWxsKXtzLmV4aXQoImNodW5rVGV4dCIpLHMuZXhpdCgicGFyYWdyYXBoIikscy5jb25zdW1lKGwpO3JldHVybn1yZXR1cm4gdnQobCk/KHMuY29uc3VtZShsKSxzLmV4aXQoImNodW5rVGV4dCIpLG4pOihzLmNvbnN1bWUobCksbyl9fXZhciBXOXQsRzl0PWcoKCk9PntpcigpO1ZhKCk7Vzl0PXt0b2tlbml6ZTpkRmF9O2koZEZhLCJpbml0aWFsaXplQ29udGVudCIpfSk7ZnVuY3Rpb24gdUZhKHMpe2xldCBlPXRoaXMsdD1bXSxhPTAscixuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbCh6KXtpZihhPHQubGVuZ3RoKXtsZXQgTj10W2FdO3JldHVybiBlLmNvbnRhaW5lclN0YXRlPU5bMV0scy5hdHRlbXB0KE5bMF0uY29udGludWF0aW9uLHAsZCkoeil9cmV0dXJuIGQoeil9ZnVuY3Rpb24gcCh6KXtpZihhKyssZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93KXtlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLHImJk0oKTtsZXQgTj1lLmV2ZW50cy5sZW5ndGgsQz1OLF87Zm9yKDtDLS07KWlmKGUuZXZlbnRzW0NdWzBdPT09ImV4aXQiJiZlLmV2ZW50c1tDXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe189ZS5ldmVudHNbQ11bMV0uZW5kO2JyZWFrfXkoYSk7bGV0IE89Tjtmb3IoO088ZS5ldmVudHMubGVuZ3RoOyllLmV2ZW50c1tPXVsxXS5lbmQ9ey4uLl99LE8rKztyZXR1cm4gc3IoZS5ldmVudHMsQysxLDAsZS5ldmVudHMuc2xpY2UoTikpLGUuZXZlbnRzLmxlbmd0aD1PLGQoeil9cmV0dXJuIGwoeil9ZnVuY3Rpb24gZCh6KXtpZihhPT09dC5sZW5ndGgpe2lmKCFyKXJldHVybiBiKHopO2lmKHIuY3VycmVudENvbnN0cnVjdCYmci5jdXJyZW50Q29uc3RydWN0LmNvbmNyZXRlKXJldHVybiB4KHopO2UuaW50ZXJydXB0PSEhKHIuY3VycmVudENvbnN0cnVjdCYmIXIuX2dmbVRhYmxlRHluYW1pY0ludGVycnVwdEhhY2spfXJldHVybiBlLmNvbnRhaW5lclN0YXRlPXt9LHMuY2hlY2soSzl0LHUsYykoeil9ZnVuY3Rpb24gdSh6KXtyZXR1cm4gciYmTSgpLHkoYSksYih6KX1mdW5jdGlvbiBjKHope3JldHVybiBlLnBhcnNlci5sYXp5W2Uubm93KCkubGluZV09YSE9PXQubGVuZ3RoLG89ZS5ub3coKS5vZmZzZXQseCh6KX1mdW5jdGlvbiBiKHope3JldHVybiBlLmNvbnRhaW5lclN0YXRlPXt9LHMuYXR0ZW1wdChLOXQsdix4KSh6KX1mdW5jdGlvbiB2KHope3JldHVybiBhKyssdC5wdXNoKFtlLmN1cnJlbnRDb25zdHJ1Y3QsZS5jb250YWluZXJTdGF0ZV0pLGIoeil9ZnVuY3Rpb24geCh6KXtpZih6PT09bnVsbCl7ciYmTSgpLHkoMCkscy5jb25zdW1lKHopO3JldHVybn1yZXR1cm4gcj1yfHxlLnBhcnNlci5mbG93KGUubm93KCkpLHMuZW50ZXIoImNodW5rRmxvdyIse190b2tlbml6ZXI6cixjb250ZW50VHlwZToiZmxvdyIscHJldmlvdXM6bn0pLG0oeil9ZnVuY3Rpb24gbSh6KXtpZih6PT09bnVsbCl7ZihzLmV4aXQoImNodW5rRmxvdyIpLCEwKSx5KDApLHMuY29uc3VtZSh6KTtyZXR1cm59cmV0dXJuIHZ0KHopPyhzLmNvbnN1bWUoeiksZihzLmV4aXQoImNodW5rRmxvdyIpKSxhPTAsZS5pbnRlcnJ1cHQ9dm9pZCAwLGwpOihzLmNvbnN1bWUoeiksbSl9ZnVuY3Rpb24gZih6LE4pe2xldCBDPWUuc2xpY2VTdHJlYW0oeik7aWYoTiYmQy5wdXNoKG51bGwpLHoucHJldmlvdXM9bixuJiYobi5uZXh0PXopLG49eixyLmRlZmluZVNraXAoei5zdGFydCksci53cml0ZShDKSxlLnBhcnNlci5sYXp5W3ouc3RhcnQubGluZV0pe2xldCBfPXIuZXZlbnRzLmxlbmd0aDtmb3IoO18tLTspaWYoci5ldmVudHNbX11bMV0uc3RhcnQub2Zmc2V0PG8mJighci5ldmVudHNbX11bMV0uZW5kfHxyLmV2ZW50c1tfXVsxXS5lbmQub2Zmc2V0Pm8pKXJldHVybjtsZXQgTz1lLmV2ZW50cy5sZW5ndGgsJD1PLEUsSDtmb3IoOyQtLTspaWYoZS5ldmVudHNbJF1bMF09PT0iZXhpdCImJmUuZXZlbnRzWyRdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7aWYoRSl7SD1lLmV2ZW50c1skXVsxXS5lbmQ7YnJlYWt9RT0hMH1mb3IoeShhKSxfPU87XzxlLmV2ZW50cy5sZW5ndGg7KWUuZXZlbnRzW19dWzFdLmVuZD17Li4uSH0sXysrO3NyKGUuZXZlbnRzLCQrMSwwLGUuZXZlbnRzLnNsaWNlKE8pKSxlLmV2ZW50cy5sZW5ndGg9X319ZnVuY3Rpb24geSh6KXtsZXQgTj10Lmxlbmd0aDtmb3IoO04tLSA+ejspe2xldCBDPXRbTl07ZS5jb250YWluZXJTdGF0ZT1DWzFdLENbMF0uZXhpdC5jYWxsKGUscyl9dC5sZW5ndGg9en1mdW5jdGlvbiBNKCl7ci53cml0ZShbbnVsbF0pLG49dm9pZCAwLHI9dm9pZCAwLGUuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDB9fWZ1bmN0aW9uIHBGYShzLGUsdCl7cmV0dXJuIEt0KHMscy5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZG9jdW1lbnQsZSx0KSwibGluZVByZWZpeCIsdGhpcy5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KX12YXIgWTl0LEs5dCxaOXQ9ZygoKT0+e2lyKCk7VmEoKTtiZCgpO1k5dD17dG9rZW5pemU6dUZhfSxLOXQ9e3Rva2VuaXplOnBGYX07aSh1RmEsImluaXRpYWxpemVEb2N1bWVudCIpO2kocEZhLCJ0b2tlbml6ZUNvbnRhaW5lciIpfSk7ZnVuY3Rpb24gaEZhKHMpe2xldCBlPXRoaXMsdD1zLmF0dGVtcHQod2QsYSxzLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxyLEt0KHMscy5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxyLHMuYXR0ZW1wdChZZmUscikpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gdDtmdW5jdGlvbiBhKG4pe2lmKG49PT1udWxsKXtzLmNvbnN1bWUobik7cmV0dXJufXJldHVybiBzLmVudGVyKCJsaW5lRW5kaW5nQmxhbmsiKSxzLmNvbnN1bWUobikscy5leGl0KCJsaW5lRW5kaW5nQmxhbmsiKSxlLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHR9ZnVuY3Rpb24gcihuKXtpZihuPT09bnVsbCl7cy5jb25zdW1lKG4pO3JldHVybn1yZXR1cm4gcy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShuKSxzLmV4aXQoImxpbmVFbmRpbmciKSxlLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHR9fXZhciBYOXQsUTl0PWcoKCk9PntMaWUoKTtpcigpO1ZhKCk7WDl0PXt0b2tlbml6ZTpoRmF9O2koaEZhLCJpbml0aWFsaXplRmxvdyIpfSk7ZnVuY3Rpb24gSjl0KHMpe3JldHVybntyZXNvbHZlQWxsOmVidChzPT09InRleHQiP2ZGYTp2b2lkIDApLHRva2VuaXplOmV9O2Z1bmN0aW9uIGUodCl7bGV0IGE9dGhpcyxyPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbc10sbj10LmF0dGVtcHQocixvLGwpO3JldHVybiBvO2Z1bmN0aW9uIG8odSl7cmV0dXJuIGQodSk/bih1KTpsKHUpfWZ1bmN0aW9uIGwodSl7aWYodT09PW51bGwpe3QuY29uc3VtZSh1KTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImRhdGEiKSx0LmNvbnN1bWUodSkscH1mdW5jdGlvbiBwKHUpe3JldHVybiBkKHUpPyh0LmV4aXQoImRhdGEiKSxuKHUpKToodC5jb25zdW1lKHUpLHApfWZ1bmN0aW9uIGQodSl7aWYodT09PW51bGwpcmV0dXJuITA7bGV0IGM9clt1XSxiPS0xO2lmKGMpZm9yKDsrK2I8Yy5sZW5ndGg7KXtsZXQgdj1jW2JdO2lmKCF2LnByZXZpb3VzfHx2LnByZXZpb3VzLmNhbGwoYSxhLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fWZ1bmN0aW9uIGVidChzKXtyZXR1cm4gZTtmdW5jdGlvbiBlKHQsYSl7bGV0IHI9LTEsbjtmb3IoOysrcjw9dC5sZW5ndGg7KW49PT12b2lkIDA/dFtyXSYmdFtyXVsxXS50eXBlPT09ImRhdGEiJiYobj1yLHIrKyk6KCF0W3JdfHx0W3JdWzFdLnR5cGUhPT0iZGF0YSIpJiYociE9PW4rMiYmKHRbbl1bMV0uZW5kPXRbci0xXVsxXS5lbmQsdC5zcGxpY2UobisyLHItbi0yKSxyPW4rMiksbj12b2lkIDApO3JldHVybiBzP3ModCxhKTp0fX1mdW5jdGlvbiBmRmEocyxlKXtsZXQgdD0wO2Zvcig7Kyt0PD1zLmxlbmd0aDspaWYoKHQ9PT1zLmxlbmd0aHx8c1t0XVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmc1t0LTFdWzFdLnR5cGU9PT0iZGF0YSIpe2xldCBhPXNbdC0xXVsxXSxyPWUuc2xpY2VTdHJlYW0oYSksbj1yLmxlbmd0aCxvPS0xLGw9MCxwO2Zvcig7bi0tOyl7bGV0IGQ9cltuXTtpZih0eXBlb2YgZD09InN0cmluZyIpe2ZvcihvPWQubGVuZ3RoO2QuY2hhckNvZGVBdChvLTEpPT09MzI7KWwrKyxvLS07aWYobylicmVhaztvPS0xfWVsc2UgaWYoZD09PS0yKXA9ITAsbCsrO2Vsc2UgaWYoZCE9PS0xKXtuKys7YnJlYWt9fWlmKGUuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiZ0PT09cy5sZW5ndGgmJihsPTApLGwpe2xldCBkPXt0eXBlOnQ9PT1zLmxlbmd0aHx8cHx8bDwyPyJsaW5lU3VmZml4IjoiaGFyZEJyZWFrVHJhaWxpbmciLHN0YXJ0OntfYnVmZmVySW5kZXg6bj9vOmEuc3RhcnQuX2J1ZmZlckluZGV4K28sX2luZGV4OmEuc3RhcnQuX2luZGV4K24sbGluZTphLmVuZC5saW5lLGNvbHVtbjphLmVuZC5jb2x1bW4tbCxvZmZzZXQ6YS5lbmQub2Zmc2V0LWx9LGVuZDp7Li4uYS5lbmR9fTthLmVuZD17Li4uZC5zdGFydH0sYS5zdGFydC5vZmZzZXQ9PT1hLmVuZC5vZmZzZXQ/T2JqZWN0LmFzc2lnbihhLGQpOihzLnNwbGljZSh0LDAsWyJlbnRlciIsZCxlXSxbImV4aXQiLGQsZV0pLHQrPTIpfXQrK31yZXR1cm4gc312YXIgdGJ0LGFidCxzYnQsd21lPWcoKCk9Pnt0YnQ9e3Jlc29sdmVBbGw6ZWJ0KCl9LGFidD1KOXQoInN0cmluZyIpLHNidD1KOXQoInRleHQiKTtpKEo5dCwiaW5pdGlhbGl6ZUZhY3RvcnkiKTtpKGVidCwiY3JlYXRlUmVzb2x2ZXIiKTtpKGZGYSwicmVzb2x2ZUFsbExpbmVTdWZmaXhlcyIpfSk7dmFyIGttZT17fTt5dChrbWUse2F0dGVudGlvbk1hcmtlcnM6KCk9PmtGYSxjb250ZW50SW5pdGlhbDooKT0+Z0ZhLGRpc2FibGU6KCk9PlNGYSxkb2N1bWVudDooKT0+bUZhLGZsb3c6KCk9PnZGYSxmbG93SW5pdGlhbDooKT0+YkZhLGluc2lkZVNwYW46KCk9PndGYSxzdHJpbmc6KCk9PnhGYSx0ZXh0OigpPT55RmF9KTt2YXIgbUZhLGdGYSxiRmEsdkZhLHhGYSx5RmEsd0ZhLGtGYSxTRmEsaWJ0PWcoKCk9PntMaWUoKTt3bWUoKTttRmE9ezQyOmVuLDQzOmVuLDQ1OmVuLDQ4OmVuLDQ5OmVuLDUwOmVuLDUxOmVuLDUyOmVuLDUzOmVuLDU0OmVuLDU1OmVuLDU2OmVuLDU3OmVuLDYyOndpZX0sZ0ZhPXs5MTplbWV9LGJGYT17Wy0yXTpoayxbLTFdOmhrLDMyOmhrfSx2RmE9ezM1OmFtZSw0MjpFMyw0NTpbRGllLEUzXSw2MDppbWUsNjE6RGllLDk1OkUzLDk2Ol9pZSwxMjY6X2llfSx4RmE9ezM4OlNpZSw5MjpraWV9LHlGYT17Wy01XTpnayxbLTRdOmdrLFstM106Z2ssMzM6b21lLDM4OlNpZSw0Mjpwayw2MDpbVWZlLHJtZV0sOTE6bm1lLDkyOlt0bWUsa2llXSw5MzpMMyw5NTpwayw5NjpXZmV9LHdGYT17bnVsbDpbcGssdGJ0XX0sa0ZhPXtudWxsOls0Miw5NV19LFNGYT17bnVsbDpbXX19KTtmdW5jdGlvbiByYnQocyxlLHQpe2xldCBhPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTp0JiZ0LmxpbmV8fDEsY29sdW1uOnQmJnQuY29sdW1ufHwxLG9mZnNldDp0JiZ0Lm9mZnNldHx8MH0scj17fSxuPVtdLG89W10sbD1bXSxwPSEwLGQ9e2F0dGVtcHQ6RShPKSxjaGVjazpFKCQpLGNvbnN1bWU6TixlbnRlcjpDLGV4aXQ6XyxpbnRlcnJ1cHQ6RSgkLHtpbnRlcnJ1cHQ6ITB9KX0sdT17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6eSxldmVudHM6W10sbm93OmYscGFyc2VyOnMscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTp4LHNsaWNlU3RyZWFtOm0sd3JpdGU6dn0sYz1lLnRva2VuaXplLmNhbGwodSxkKSxiO3JldHVybiBlLnJlc29sdmVBbGwmJm4ucHVzaChlKSx1O2Z1bmN0aW9uIHYoSSl7cmV0dXJuIG89TXIobyxJKSxNKCksb1tvLmxlbmd0aC0xXSE9PW51bGw/W106KEgoZSwwKSx1LmV2ZW50cz1YcChuLHUuZXZlbnRzLHUpLHUuZXZlbnRzKX1pKHYsIndyaXRlIik7ZnVuY3Rpb24geChJLFApe3JldHVybiBNRmEobShJKSxQKX1pKHgsInNsaWNlU2VyaWFsaXplIik7ZnVuY3Rpb24gbShJKXtyZXR1cm4gX0ZhKG8sSSl9aShtLCJzbGljZVN0cmVhbSIpO2Z1bmN0aW9uIGYoKXtsZXR7X2J1ZmZlckluZGV4OkksX2luZGV4OlAsbGluZTpSLGNvbHVtbjpLLG9mZnNldDpWfT1hO3JldHVybntfYnVmZmVySW5kZXg6SSxfaW5kZXg6UCxsaW5lOlIsY29sdW1uOkssb2Zmc2V0OlZ9fWkoZiwibm93Iik7ZnVuY3Rpb24geShJKXtyW0kubGluZV09SS5jb2x1bW4sUygpfWkoeSwiZGVmaW5lU2tpcCIpO2Z1bmN0aW9uIE0oKXtsZXQgSTtmb3IoO2EuX2luZGV4PG8ubGVuZ3RoOyl7bGV0IFA9b1thLl9pbmRleF07aWYodHlwZW9mIFA9PSJzdHJpbmciKWZvcihJPWEuX2luZGV4LGEuX2J1ZmZlckluZGV4PDAmJihhLl9idWZmZXJJbmRleD0wKTthLl9pbmRleD09PUkmJmEuX2J1ZmZlckluZGV4PFAubGVuZ3RoOyl6KFAuY2hhckNvZGVBdChhLl9idWZmZXJJbmRleCkpO2Vsc2UgeihQKX19aShNLCJtYWluIik7ZnVuY3Rpb24geihJKXtwPXZvaWQgMCxiPUksYz1jKEkpfWkoeiwiZ28iKTtmdW5jdGlvbiBOKEkpe3Z0KEkpPyhhLmxpbmUrKyxhLmNvbHVtbj0xLGEub2Zmc2V0Kz1JPT09LTM/MjoxLFMoKSk6SSE9PS0xJiYoYS5jb2x1bW4rKyxhLm9mZnNldCsrKSxhLl9idWZmZXJJbmRleDwwP2EuX2luZGV4Kys6KGEuX2J1ZmZlckluZGV4KyssYS5fYnVmZmVySW5kZXg9PT1vW2EuX2luZGV4XS5sZW5ndGgmJihhLl9idWZmZXJJbmRleD0tMSxhLl9pbmRleCsrKSksdS5wcmV2aW91cz1JLHA9ITB9aShOLCJjb25zdW1lIik7ZnVuY3Rpb24gQyhJLFApe2xldCBSPVB8fHt9O3JldHVybiBSLnR5cGU9SSxSLnN0YXJ0PWYoKSx1LmV2ZW50cy5wdXNoKFsiZW50ZXIiLFIsdV0pLGwucHVzaChSKSxSfWkoQywiZW50ZXIiKTtmdW5jdGlvbiBfKEkpe2xldCBQPWwucG9wKCk7cmV0dXJuIFAuZW5kPWYoKSx1LmV2ZW50cy5wdXNoKFsiZXhpdCIsUCx1XSksUH1pKF8sImV4aXQiKTtmdW5jdGlvbiBPKEksUCl7SChJLFAuZnJvbSl9aShPLCJvbnN1Y2Nlc3NmdWxjb25zdHJ1Y3QiKTtmdW5jdGlvbiAkKEksUCl7UC5yZXN0b3JlKCl9aSgkLCJvbnN1Y2Nlc3NmdWxjaGVjayIpO2Z1bmN0aW9uIEUoSSxQKXtyZXR1cm4gUjtmdW5jdGlvbiBSKEssVixXKXtsZXQgbWUsQixVLGhlO3JldHVybiBBcnJheS5pc0FycmF5KEspP2ooSyk6InRva2VuaXplImluIEs/aihbS10pOkYoSyk7ZnVuY3Rpb24gRihpZSl7cmV0dXJuIHRlO2Z1bmN0aW9uIHRlKGVlKXtsZXQga2U9ZWUhPT1udWxsJiZpZVtlZV0sWD1lZSE9PW51bGwmJmllLm51bGwsWj1bLi4uQXJyYXkuaXNBcnJheShrZSk/a2U6a2U/W2tlXTpbXSwuLi5BcnJheS5pc0FycmF5KFgpP1g6WD9bWF06W11dO3JldHVybiBqKFopKGVlKX19ZnVuY3Rpb24gaihpZSl7cmV0dXJuIG1lPWllLEI9MCxpZS5sZW5ndGg9PT0wP1c6dWUoaWVbQl0pfWZ1bmN0aW9uIHVlKGllKXtyZXR1cm4gdGU7ZnVuY3Rpb24gdGUoZWUpe3JldHVybiBoZT1rKCksVT1pZSxpZS5wYXJ0aWFsfHwodS5jdXJyZW50Q29uc3RydWN0PWllKSxpZS5uYW1lJiZ1LnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcyhpZS5uYW1lKT9RKGVlKTppZS50b2tlbml6ZS5jYWxsKFA/T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKHUpLFApOnUsZCxsZSxRKShlZSl9fWZ1bmN0aW9uIGxlKGllKXtyZXR1cm4gcD0hMCxJKFUsaGUpLFZ9ZnVuY3Rpb24gUShpZSl7cmV0dXJuIHA9ITAsaGUucmVzdG9yZSgpLCsrQjxtZS5sZW5ndGg/dWUobWVbQl0pOld9fX1pKEUsImNvbnN0cnVjdEZhY3RvcnkiKTtmdW5jdGlvbiBIKEksUCl7SS5yZXNvbHZlQWxsJiYhbi5pbmNsdWRlcyhJKSYmbi5wdXNoKEkpLEkucmVzb2x2ZSYmc3IodS5ldmVudHMsUCx1LmV2ZW50cy5sZW5ndGgtUCxJLnJlc29sdmUodS5ldmVudHMuc2xpY2UoUCksdSkpLEkucmVzb2x2ZVRvJiYodS5ldmVudHM9SS5yZXNvbHZlVG8odS5ldmVudHMsdSkpfWkoSCwiYWRkUmVzdWx0Iik7ZnVuY3Rpb24gaygpe2xldCBJPWYoKSxQPXUucHJldmlvdXMsUj11LmN1cnJlbnRDb25zdHJ1Y3QsSz11LmV2ZW50cy5sZW5ndGgsVj1BcnJheS5mcm9tKGwpO3JldHVybntmcm9tOksscmVzdG9yZTpXfTtmdW5jdGlvbiBXKCl7YT1JLHUucHJldmlvdXM9UCx1LmN1cnJlbnRDb25zdHJ1Y3Q9Uix1LmV2ZW50cy5sZW5ndGg9SyxsPVYsUygpfX1pKGssInN0b3JlIik7ZnVuY3Rpb24gUygpe2EubGluZSBpbiByJiZhLmNvbHVtbjwyJiYoYS5jb2x1bW49clthLmxpbmVdLGEub2Zmc2V0Kz1yW2EubGluZV0tMSl9aShTLCJhY2NvdW50Rm9yUG90ZW50aWFsU2tpcCIpfWZ1bmN0aW9uIF9GYShzLGUpe2xldCB0PWUuc3RhcnQuX2luZGV4LGE9ZS5zdGFydC5fYnVmZmVySW5kZXgscj1lLmVuZC5faW5kZXgsbj1lLmVuZC5fYnVmZmVySW5kZXgsbztpZih0PT09cilvPVtzW3RdLnNsaWNlKGEsbildO2Vsc2V7aWYobz1zLnNsaWNlKHQsciksYT4tMSl7bGV0IGw9b1swXTt0eXBlb2YgbD09InN0cmluZyI/b1swXT1sLnNsaWNlKGEpOm8uc2hpZnQoKX1uPjAmJm8ucHVzaChzW3JdLnNsaWNlKDAsbikpfXJldHVybiBvfWZ1bmN0aW9uIE1GYShzLGUpe2xldCB0PS0xLGE9W10scjtmb3IoOysrdDxzLmxlbmd0aDspe2xldCBuPXNbdF0sbztpZih0eXBlb2Ygbj09InN0cmluZyIpbz1uO2Vsc2Ugc3dpdGNoKG4pe2Nhc2UtNTp7bz0iXHIiO2JyZWFrfWNhc2UtNDp7bz1gCmA7YnJlYWt9Y2FzZS0zOntvPWBccgpgO2JyZWFrfWNhc2UtMjp7bz1lPyIgIjoiCSI7YnJlYWt9Y2FzZS0xOntpZighZSYmciljb250aW51ZTtvPSIgIjticmVha31kZWZhdWx0Om89U3RyaW5nLmZyb21DaGFyQ29kZShuKX1yPW49PT0tMixhLnB1c2gobyl9cmV0dXJuIGEuam9pbigiIil9dmFyIG9idD1nKCgpPT57VmEoKTtiZCgpO3VrKCk7aShyYnQsImNyZWF0ZVRva2VuaXplciIpO2koX0ZhLCJzbGljZUNodW5rcyIpO2koTUZhLCJzZXJpYWxpemVDaHVua3MiKX0pO2Z1bmN0aW9uIGJrKHMpe2xldCBhPXtjb25zdHJ1Y3RzOmdpZShba21lLC4uLihzfHx7fSkuZXh0ZW5zaW9uc3x8W11dKSxjb250ZW50OnIoVzl0KSxkZWZpbmVkOltdLGRvY3VtZW50OnIoWTl0KSxmbG93OnIoWDl0KSxsYXp5Ont9LHN0cmluZzpyKGFidCksdGV4dDpyKHNidCl9O3JldHVybiBhO2Z1bmN0aW9uIHIobil7cmV0dXJuIG87ZnVuY3Rpb24gbyhsKXtyZXR1cm4gcmJ0KGEsbixsKX19fXZhciBTbWU9ZygoKT0+e3ZpZSgpO0c5dCgpO1o5dCgpO1E5dCgpO3dtZSgpO2lidCgpO29idCgpO2koYmssInBhcnNlIil9KTtmdW5jdGlvbiB2ayhzKXtmb3IoOyFNaWUocyk7KTtyZXR1cm4gc312YXIgX21lPWcoKCk9PntLZmUoKTtpKHZrLCJwb3N0cHJvY2VzcyIpfSk7ZnVuY3Rpb24geGsoKXtsZXQgcz0xLGU9IiIsdD0hMCxhO3JldHVybiByO2Z1bmN0aW9uIHIobixvLGwpe2xldCBwPVtdLGQsdSxjLGIsdjtmb3Iobj1lKyh0eXBlb2Ygbj09InN0cmluZyI/bi50b1N0cmluZygpOm5ldyBUZXh0RGVjb2RlcihvfHx2b2lkIDApLmRlY29kZShuKSksYz0wLGU9IiIsdCYmKG4uY2hhckNvZGVBdCgwKT09PTY1Mjc5JiZjKyssdD12b2lkIDApO2M8bi5sZW5ndGg7KXtpZihuYnQubGFzdEluZGV4PWMsZD1uYnQuZXhlYyhuKSxiPWQmJmQuaW5kZXghPT12b2lkIDA/ZC5pbmRleDpuLmxlbmd0aCx2PW4uY2hhckNvZGVBdChiKSwhZCl7ZT1uLnNsaWNlKGMpO2JyZWFrfWlmKHY9PT0xMCYmYz09PWImJmEpcC5wdXNoKC0zKSxhPXZvaWQgMDtlbHNlIHN3aXRjaChhJiYocC5wdXNoKC01KSxhPXZvaWQgMCksYzxiJiYocC5wdXNoKG4uc2xpY2UoYyxiKSkscys9Yi1jKSx2KXtjYXNlIDA6e3AucHVzaCg2NTUzMykscysrO2JyZWFrfWNhc2UgOTp7Zm9yKHU9TWF0aC5jZWlsKHMvNCkqNCxwLnB1c2goLTIpO3MrKzx1OylwLnB1c2goLTEpO2JyZWFrfWNhc2UgMTA6e3AucHVzaCgtNCkscz0xO2JyZWFrfWRlZmF1bHQ6YT0hMCxzPTF9Yz1iKzF9cmV0dXJuIGwmJihhJiZwLnB1c2goLTUpLGUmJnAucHVzaChlKSxwLnB1c2gobnVsbCkpLHB9fXZhciBuYnQsTW1lPWcoKCk9PntuYnQ9L1tcMFx0XG5ccl0vZztpKHhrLCJwcmVwcm9jZXNzIil9KTtmdW5jdGlvbiBLdWkocyxlLHQpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyImJih0PWUsZT12b2lkIDApLHhtZSh0KSh2ayhiayh0KS5kb2N1bWVudCgpLndyaXRlKHhrKCkocyxlLCEwKSkpKX12YXIgbGJ0PWcoKCk9Pnt5bWUoKTtTbWUoKTtfbWUoKTtNbWUoKTt5bWUoKTtTbWUoKTtfbWUoKTtNbWUoKTtpKEt1aSwibWljcm9tYXJrIil9KTtmdW5jdGlvbiB6bWUocyxlLHQpe3JldHVybiBlJiZ0eXBlb2YgZT09Im9iamVjdCImJih0PWUsZT12b2lkIDApLHpGYSh0KSh2ayhiayh0KS5kb2N1bWVudCgpLndyaXRlKHhrKCkocyxlLCEwKSkpKX1mdW5jdGlvbiB6RmEocyl7bGV0IGU9e3RyYW5zZm9ybXM6W10sY2FuQ29udGFpbkVvbHM6WyJlbXBoYXNpcyIsImZyYWdtZW50IiwiaGVhZGluZyIsInBhcmFncmFwaCIsInN0cm9uZyJdLGVudGVyOnthdXRvbGluazpuKGFlKSxhdXRvbGlua1Byb3RvY29sOkUsYXV0b2xpbmtFbWFpbDpFLGF0eEhlYWRpbmc6bihxKSxibG9ja1F1b3RlOm4oZWUpLGNoYXJhY3RlckVzY2FwZTpFLGNoYXJhY3RlclJlZmVyZW5jZTpFLGNvZGVGZW5jZWQ6bihrZSksY29kZUZlbmNlZEZlbmNlSW5mbzpvLGNvZGVGZW5jZWRGZW5jZU1ldGE6byxjb2RlSW5kZW50ZWQ6bihrZSxvKSxjb2RlVGV4dDpuKFgsbyksY29kZVRleHREYXRhOkUsZGF0YTpFLGNvZGVGbG93VmFsdWU6RSxkZWZpbml0aW9uOm4oWiksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOm8sZGVmaW5pdGlvbkxhYmVsU3RyaW5nOm8sZGVmaW5pdGlvblRpdGxlU3RyaW5nOm8sZW1waGFzaXM6bih5ZSksaGFyZEJyZWFrRXNjYXBlOm4oQSksaGFyZEJyZWFrVHJhaWxpbmc6bihBKSxodG1sRmxvdzpuKHNlLG8pLGh0bWxGbG93RGF0YTpFLGh0bWxUZXh0Om4oc2UsbyksaHRtbFRleHREYXRhOkUsaW1hZ2U6bihvZSksbGFiZWw6byxsaW5rOm4oYWUpLGxpc3RJdGVtOm4oUmUpLGxpc3RJdGVtVmFsdWU6YixsaXN0T3JkZXJlZDpuKFRlLGMpLGxpc3RVbm9yZGVyZWQ6bihUZSkscGFyYWdyYXBoOm4oQmUpLHJlZmVyZW5jZTpGLHJlZmVyZW5jZVN0cmluZzpvLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6byxyZXNvdXJjZVRpdGxlU3RyaW5nOm8sc2V0ZXh0SGVhZGluZzpuKHEpLHN0cm9uZzpuKEdlKSx0aGVtYXRpY0JyZWFrOm4oX2UpfSxleGl0OnthdHhIZWFkaW5nOnAoKSxhdHhIZWFkaW5nU2VxdWVuY2U6QyxhdXRvbGluazpwKCksYXV0b2xpbmtFbWFpbDp0ZSxhdXRvbGlua1Byb3RvY29sOmllLGJsb2NrUXVvdGU6cCgpLGNoYXJhY3RlckVzY2FwZVZhbHVlOkgsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6dWUsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzp1ZSxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpsZSxjaGFyYWN0ZXJSZWZlcmVuY2U6USxjb2RlRmVuY2VkOnAoZiksY29kZUZlbmNlZEZlbmNlOm0sY29kZUZlbmNlZEZlbmNlSW5mbzp2LGNvZGVGZW5jZWRGZW5jZU1ldGE6eCxjb2RlRmxvd1ZhbHVlOkgsY29kZUluZGVudGVkOnAoeSksY29kZVRleHQ6cChSKSxjb2RlVGV4dERhdGE6SCxkYXRhOkgsZGVmaW5pdGlvbjpwKCksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOk4sZGVmaW5pdGlvbkxhYmVsU3RyaW5nOk0sZGVmaW5pdGlvblRpdGxlU3RyaW5nOnosZW1waGFzaXM6cCgpLGhhcmRCcmVha0VzY2FwZTpwKFMpLGhhcmRCcmVha1RyYWlsaW5nOnAoUyksaHRtbEZsb3c6cChJKSxodG1sRmxvd0RhdGE6SCxodG1sVGV4dDpwKFApLGh0bWxUZXh0RGF0YTpILGltYWdlOnAoViksbGFiZWw6bWUsbGFiZWxUZXh0OlcsbGluZUVuZGluZzprLGxpbms6cChLKSxsaXN0SXRlbTpwKCksbGlzdE9yZGVyZWQ6cCgpLGxpc3RVbm9yZGVyZWQ6cCgpLHBhcmFncmFwaDpwKCkscmVmZXJlbmNlU3RyaW5nOmoscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpCLHJlc291cmNlVGl0bGVTdHJpbmc6VSxyZXNvdXJjZTpoZSxzZXRleHRIZWFkaW5nOnAoJCksc2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZTpPLHNldGV4dEhlYWRpbmdUZXh0Ol8sc3Ryb25nOnAoKSx0aGVtYXRpY0JyZWFrOnAoKX19O2RidChlLChzfHx7fSkubWRhc3RFeHRlbnNpb25zfHxbXSk7bGV0IHQ9e307cmV0dXJuIGE7ZnVuY3Rpb24gYShDZSl7bGV0IHZlPXt0eXBlOiJyb290IixjaGlsZHJlbjpbXX0sYmU9e3N0YWNrOlt2ZV0sdG9rZW5TdGFjazpbXSxjb25maWc6ZSxlbnRlcjpsLGV4aXQ6ZCxidWZmZXI6byxyZXN1bWU6dSxkYXRhOnR9LEVlPVtdLGplPS0xO2Zvcig7KytqZTxDZS5sZW5ndGg7KWlmKENlW2plXVsxXS50eXBlPT09Imxpc3RPcmRlcmVkInx8Q2VbamVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpaWYoQ2VbamVdWzBdPT09ImVudGVyIilFZS5wdXNoKGplKTtlbHNle2xldCBXZT1FZS5wb3AoKTtqZT1yKENlLFdlLGplKX1mb3IoamU9LTE7KytqZTxDZS5sZW5ndGg7KXtsZXQgV2U9ZVtDZVtqZV1bMF1dO2NidC5jYWxsKFdlLENlW2plXVsxXS50eXBlKSYmV2VbQ2VbamVdWzFdLnR5cGVdLmNhbGwoT2JqZWN0LmFzc2lnbih7c2xpY2VTZXJpYWxpemU6Q2VbamVdWzJdLnNsaWNlU2VyaWFsaXplfSxiZSksQ2VbamVdWzFdKX1pZihiZS50b2tlblN0YWNrLmxlbmd0aD4wKXtsZXQgV2U9YmUudG9rZW5TdGFja1tiZS50b2tlblN0YWNrLmxlbmd0aC0xXTsoV2VbMV18fHVidCkuY2FsbChiZSx2b2lkIDAsV2VbMF0pfWZvcih2ZS5wb3NpdGlvbj17c3RhcnQ6UXAoQ2UubGVuZ3RoPjA/Q2VbMF1bMV0uc3RhcnQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pLGVuZDpRcChDZS5sZW5ndGg+MD9DZVtDZS5sZW5ndGgtMl1bMV0uZW5kOntsaW5lOjEsY29sdW1uOjEsb2Zmc2V0OjB9KX0samU9LTE7KytqZTxlLnRyYW5zZm9ybXMubGVuZ3RoOyl2ZT1lLnRyYW5zZm9ybXNbamVdKHZlKXx8dmU7cmV0dXJuIHZlfWZ1bmN0aW9uIHIoQ2UsdmUsYmUpe2xldCBFZT12ZS0xLGplPS0xLFdlPSExLHN0LE1lLGdlLEllO2Zvcig7KytFZTw9YmU7KXtsZXQgY2U9Q2VbRWVdO3N3aXRjaChjZVsxXS50eXBlKXtjYXNlImxpc3RVbm9yZGVyZWQiOmNhc2UibGlzdE9yZGVyZWQiOmNhc2UiYmxvY2tRdW90ZSI6e2NlWzBdPT09ImVudGVyIj9qZSsrOmplLS0sSWU9dm9pZCAwO2JyZWFrfWNhc2UibGluZUVuZGluZ0JsYW5rIjp7Y2VbMF09PT0iZW50ZXIiJiYoc3QmJiFJZSYmIWplJiYhZ2UmJihnZT1FZSksSWU9dm9pZCAwKTticmVha31jYXNlImxpbmVQcmVmaXgiOmNhc2UibGlzdEl0ZW1WYWx1ZSI6Y2FzZSJsaXN0SXRlbU1hcmtlciI6Y2FzZSJsaXN0SXRlbVByZWZpeCI6Y2FzZSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiOmJyZWFrO2RlZmF1bHQ6SWU9dm9pZCAwfWlmKCFqZSYmY2VbMF09PT0iZW50ZXIiJiZjZVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4Inx8amU9PT0tMSYmY2VbMF09PT0iZXhpdCImJihjZVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQifHxjZVsxXS50eXBlPT09Imxpc3RPcmRlcmVkIikpe2lmKHN0KXtsZXQgZGU9RWU7Zm9yKE1lPXZvaWQgMDtkZS0tOyl7bGV0IExlPUNlW2RlXTtpZihMZVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxMZVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpe2lmKExlWzBdPT09ImV4aXQiKWNvbnRpbnVlO01lJiYoQ2VbTWVdWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIsV2U9ITApLExlWzFdLnR5cGU9ImxpbmVFbmRpbmciLE1lPWRlfWVsc2UgaWYoIShMZVsxXS50eXBlPT09ImxpbmVQcmVmaXgifHxMZVsxXS50eXBlPT09ImJsb2NrUXVvdGVQcmVmaXgifHxMZVsxXS50eXBlPT09ImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlInx8TGVbMV0udHlwZT09PSJibG9ja1F1b3RlTWFya2VyInx8TGVbMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCIpKWJyZWFrfWdlJiYoIU1lfHxnZTxNZSkmJihzdC5fc3ByZWFkPSEwKSxzdC5lbmQ9T2JqZWN0LmFzc2lnbih7fSxNZT9DZVtNZV1bMV0uc3RhcnQ6Y2VbMV0uZW5kKSxDZS5zcGxpY2UoTWV8fEVlLDAsWyJleGl0IixzdCxjZVsyXV0pLEVlKyssYmUrK31pZihjZVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4Iil7bGV0IGRlPXt0eXBlOiJsaXN0SXRlbSIsX3NwcmVhZDohMSxzdGFydDpPYmplY3QuYXNzaWduKHt9LGNlWzFdLnN0YXJ0KSxlbmQ6dm9pZCAwfTtzdD1kZSxDZS5zcGxpY2UoRWUsMCxbImVudGVyIixkZSxjZVsyXV0pLEVlKyssYmUrKyxnZT12b2lkIDAsSWU9ITB9fX1yZXR1cm4gQ2VbdmVdWzFdLl9zcHJlYWQ9V2UsYmV9ZnVuY3Rpb24gbihDZSx2ZSl7cmV0dXJuIGJlO2Z1bmN0aW9uIGJlKEVlKXtsLmNhbGwodGhpcyxDZShFZSksRWUpLHZlJiZ2ZS5jYWxsKHRoaXMsRWUpfX1mdW5jdGlvbiBvKCl7dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJmcmFnbWVudCIsY2hpbGRyZW46W119KX1mdW5jdGlvbiBsKENlLHZlLGJlKXt0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLnB1c2goQ2UpLHRoaXMuc3RhY2sucHVzaChDZSksdGhpcy50b2tlblN0YWNrLnB1c2goW3ZlLGJlfHx2b2lkIDBdKSxDZS5wb3NpdGlvbj17c3RhcnQ6UXAodmUuc3RhcnQpLGVuZDp2b2lkIDB9fWZ1bmN0aW9uIHAoQ2Upe3JldHVybiB2ZTtmdW5jdGlvbiB2ZShiZSl7Q2UmJkNlLmNhbGwodGhpcyxiZSksZC5jYWxsKHRoaXMsYmUpfX1mdW5jdGlvbiBkKENlLHZlKXtsZXQgYmU9dGhpcy5zdGFjay5wb3AoKSxFZT10aGlzLnRva2VuU3RhY2sucG9wKCk7aWYoRWUpRWVbMF0udHlwZSE9PUNlLnR5cGUmJih2ZT92ZS5jYWxsKHRoaXMsQ2UsRWVbMF0pOihFZVsxXXx8dWJ0KS5jYWxsKHRoaXMsQ2UsRWVbMF0pKTtlbHNlIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK0NlLnR5cGUrImAgKCIrR3Aoe3N0YXJ0OkNlLnN0YXJ0LGVuZDpDZS5lbmR9KSsiKTogaXRcdTIwMTlzIG5vdCBvcGVuIik7YmUucG9zaXRpb24uZW5kPVFwKENlLmVuZCl9ZnVuY3Rpb24gdSgpe3JldHVybiB6Myh0aGlzLnN0YWNrLnBvcCgpKX1mdW5jdGlvbiBjKCl7dGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZT0hMH1mdW5jdGlvbiBiKENlKXtpZih0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlKXtsZXQgdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTt2ZS5zdGFydD1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZShDZSksMTApLHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWU9dm9pZCAwfX1mdW5jdGlvbiB2KCl7bGV0IENlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS5sYW5nPUNlfWZ1bmN0aW9uIHgoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLm1ldGE9Q2V9ZnVuY3Rpb24gbSgpe3RoaXMuZGF0YS5mbG93Q29kZUluc2lkZXx8KHRoaXMuYnVmZmVyKCksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPSEwKX1mdW5jdGlvbiBmKCl7bGV0IENlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS52YWx1ZT1DZS5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9dm9pZCAwfWZ1bmN0aW9uIHkoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnZhbHVlPUNlLnJlcGxhY2UoLyhccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIE0oQ2Upe2xldCB2ZT10aGlzLnJlc3VtZSgpLGJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07YmUubGFiZWw9dmUsYmUuaWRlbnRpZmllcj1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKENlKSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB6KCl7bGV0IENlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS50aXRsZT1DZX1mdW5jdGlvbiBOKCl7bGV0IENlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS51cmw9Q2V9ZnVuY3Rpb24gQyhDZSl7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYoIXZlLmRlcHRoKXtsZXQgYmU9dGhpcy5zbGljZVNlcmlhbGl6ZShDZSkubGVuZ3RoO3ZlLmRlcHRoPWJlfX1mdW5jdGlvbiBfKCl7dGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmc9ITB9ZnVuY3Rpb24gTyhDZSl7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dmUuZGVwdGg9dGhpcy5zbGljZVNlcmlhbGl6ZShDZSkuY29kZVBvaW50QXQoMCk9PT02MT8xOjJ9ZnVuY3Rpb24gJCgpe3RoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nPXZvaWQgMH1mdW5jdGlvbiBFKENlKXtsZXQgYmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXS5jaGlsZHJlbixFZT1iZVtiZS5sZW5ndGgtMV07KCFFZXx8RWUudHlwZSE9PSJ0ZXh0IikmJihFZT1EZSgpLEVlLnBvc2l0aW9uPXtzdGFydDpRcChDZS5zdGFydCksZW5kOnZvaWQgMH0sYmUucHVzaChFZSkpLHRoaXMuc3RhY2sucHVzaChFZSl9ZnVuY3Rpb24gSChDZSl7bGV0IHZlPXRoaXMuc3RhY2sucG9wKCk7dmUudmFsdWUrPXRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpLHZlLnBvc2l0aW9uLmVuZD1RcChDZS5lbmQpfWZ1bmN0aW9uIGsoQ2Upe2xldCB2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5hdEhhcmRCcmVhayl7bGV0IGJlPXZlLmNoaWxkcmVuW3ZlLmNoaWxkcmVuLmxlbmd0aC0xXTtiZS5wb3NpdGlvbi5lbmQ9UXAoQ2UuZW5kKSx0aGlzLmRhdGEuYXRIYXJkQnJlYWs9dm9pZCAwO3JldHVybn0hdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcmJmUuY2FuQ29udGFpbkVvbHMuaW5jbHVkZXModmUudHlwZSkmJihFLmNhbGwodGhpcyxDZSksSC5jYWxsKHRoaXMsQ2UpKX1mdW5jdGlvbiBTKCl7dGhpcy5kYXRhLmF0SGFyZEJyZWFrPSEwfWZ1bmN0aW9uIEkoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnZhbHVlPUNlfWZ1bmN0aW9uIFAoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnZhbHVlPUNlfWZ1bmN0aW9uIFIoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnZhbHVlPUNlfWZ1bmN0aW9uIEsoKXtsZXQgQ2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCB2ZT10aGlzLmRhdGEucmVmZXJlbmNlVHlwZXx8InNob3J0Y3V0IjtDZS50eXBlKz0iUmVmZXJlbmNlIixDZS5yZWZlcmVuY2VUeXBlPXZlLGRlbGV0ZSBDZS51cmwsZGVsZXRlIENlLnRpdGxlfWVsc2UgZGVsZXRlIENlLmlkZW50aWZpZXIsZGVsZXRlIENlLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBWKCl7bGV0IENlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlKXtsZXQgdmU9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7Q2UudHlwZSs9IlJlZmVyZW5jZSIsQ2UucmVmZXJlbmNlVHlwZT12ZSxkZWxldGUgQ2UudXJsLGRlbGV0ZSBDZS50aXRsZX1lbHNlIGRlbGV0ZSBDZS5pZGVudGlmaWVyLGRlbGV0ZSBDZS5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gVyhDZSl7bGV0IHZlPXRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpLGJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07YmUubGFiZWw9ZmllKHZlKSxiZS5pZGVudGlmaWVyPUhpKHZlKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIG1lKCl7bGV0IENlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0sdmU9dGhpcy5yZXN1bWUoKSxiZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZT0hMCxiZS50eXBlPT09ImxpbmsiKXtsZXQgRWU9Q2UuY2hpbGRyZW47YmUuY2hpbGRyZW49RWV9ZWxzZSBiZS5hbHQ9dmV9ZnVuY3Rpb24gQigpe2xldCBDZT10aGlzLnJlc3VtZSgpLHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dmUudXJsPUNlfWZ1bmN0aW9uIFUoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnRpdGxlPUNlfWZ1bmN0aW9uIGhlKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiBGKCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gaihDZSl7bGV0IHZlPXRoaXMucmVzdW1lKCksYmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtiZS5sYWJlbD12ZSxiZS5pZGVudGlmaWVyPUhpKHRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiB1ZShDZSl7dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU9Q2UudHlwZX1mdW5jdGlvbiBsZShDZSl7bGV0IHZlPXRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpLGJlPXRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlLEVlO2JlPyhFZT1KOSh2ZSxiZT09PSJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIj8xMDoxNiksdGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU9dm9pZCAwKTpFZT1acCh2ZSk7bGV0IGplPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07amUudmFsdWUrPUVlfWZ1bmN0aW9uIFEoQ2Upe2xldCB2ZT10aGlzLnN0YWNrLnBvcCgpO3ZlLnBvc2l0aW9uLmVuZD1RcChDZS5lbmQpfWZ1bmN0aW9uIGllKENlKXtILmNhbGwodGhpcyxDZSk7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dmUudXJsPXRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpfWZ1bmN0aW9uIHRlKENlKXtILmNhbGwodGhpcyxDZSk7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dmUudXJsPSJtYWlsdG86Iit0aGlzLnNsaWNlU2VyaWFsaXplKENlKX1mdW5jdGlvbiBlZSgpe3JldHVybnt0eXBlOiJibG9ja3F1b3RlIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24ga2UoKXtyZXR1cm57dHlwZToiY29kZSIsbGFuZzpudWxsLG1ldGE6bnVsbCx2YWx1ZToiIn19ZnVuY3Rpb24gWCgpe3JldHVybnt0eXBlOiJpbmxpbmVDb2RlIix2YWx1ZToiIn19ZnVuY3Rpb24gWigpe3JldHVybnt0eXBlOiJkZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOm51bGwsdGl0bGU6bnVsbCx1cmw6IiJ9fWZ1bmN0aW9uIHllKCl7cmV0dXJue3R5cGU6ImVtcGhhc2lzIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gcSgpe3JldHVybnt0eXBlOiJoZWFkaW5nIixkZXB0aDowLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBBKCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gc2UoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIG9lKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gYWUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIFRlKENlKXtyZXR1cm57dHlwZToibGlzdCIsb3JkZXJlZDpDZS50eXBlPT09Imxpc3RPcmRlcmVkIixzdGFydDpudWxsLHNwcmVhZDpDZS5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBSZShDZSl7cmV0dXJue3R5cGU6Imxpc3RJdGVtIixzcHJlYWQ6Q2UuX3NwcmVhZCxjaGVja2VkOm51bGwsY2hpbGRyZW46W119fWZ1bmN0aW9uIEJlKCl7cmV0dXJue3R5cGU6InBhcmFncmFwaCIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEdlKCl7cmV0dXJue3R5cGU6InN0cm9uZyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIERlKCl7cmV0dXJue3R5cGU6InRleHQiLHZhbHVlOiIifX1mdW5jdGlvbiBfZSgpe3JldHVybnt0eXBlOiJ0aGVtYXRpY0JyZWFrIn19fWZ1bmN0aW9uIFFwKHMpe3JldHVybntsaW5lOnMubGluZSxjb2x1bW46cy5jb2x1bW4sb2Zmc2V0OnMub2Zmc2V0fX1mdW5jdGlvbiBkYnQocyxlKXtsZXQgdD0tMTtmb3IoOysrdDxlLmxlbmd0aDspe2xldCBhPWVbdF07QXJyYXkuaXNBcnJheShhKT9kYnQocyxhKTpDRmEocyxhKX19ZnVuY3Rpb24gQ0ZhKHMsZSl7bGV0IHQ7Zm9yKHQgaW4gZSlpZihjYnQuY2FsbChlLHQpKXN3aXRjaCh0KXtjYXNlImNhbkNvbnRhaW5Fb2xzIjp7bGV0IGE9ZVt0XTthJiZzW3RdLnB1c2goLi4uYSk7YnJlYWt9Y2FzZSJ0cmFuc2Zvcm1zIjp7bGV0IGE9ZVt0XTthJiZzW3RdLnB1c2goLi4uYSk7YnJlYWt9Y2FzZSJlbnRlciI6Y2FzZSJleGl0Ijp7bGV0IGE9ZVt0XTthJiZPYmplY3QuYXNzaWduKHNbdF0sYSk7YnJlYWt9fX1mdW5jdGlvbiB1YnQocyxlKXt0aHJvdyBzP25ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK3MudHlwZSsiYCAoIitHcCh7c3RhcnQ6cy5zdGFydCxlbmQ6cy5lbmR9KSsiKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitHcCh7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBvcGVuIik6bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitHcCh7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBzdGlsbCBvcGVuIil9dmFyIGNidCxwYnQ9ZygoKT0+e2NpZSgpO2xidCgpO2hpZSgpOyRmZSgpO1lwKCk7ZGsoKTtqM2UoKTtjYnQ9e30uaGFzT3duUHJvcGVydHk7aSh6bWUsImZyb21NYXJrZG93biIpO2koekZhLCJjb21waWxlciIpO2koUXAsInBvaW50Iik7aShkYnQsImNvbmZpZ3VyZSIpO2koQ0ZhLCJleHRlbnNpb24iKTtpKHVidCwiZGVmYXVsdE9uRXJyb3IiKX0pO3ZhciBoYnQ9ZygoKT0+e3BidCgpfSk7ZnVuY3Rpb24gYWIocyl7bGV0IGU9dGhpcztlLnBhcnNlcj10O2Z1bmN0aW9uIHQoYSl7cmV0dXJuIHptZShhLHsuLi5lLmRhdGEoInNldHRpbmdzIiksLi4ucyxleHRlbnNpb25zOmUuZGF0YSgibWljcm9tYXJrRXh0ZW5zaW9ucyIpfHxbXSxtZGFzdEV4dGVuc2lvbnM6ZS5kYXRhKCJmcm9tTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9aSh0LCJwYXJzZXIiKX12YXIgZmJ0PWcoKCk9PntoYnQoKTtpKGFiLCJyZW1hcmtQYXJzZSIpfSk7dmFyIG1idD1nKCgpPT57ZmJ0KCl9KTt2YXIgZ2J0PXBsKChicGksQ21lKT0+eyhmdW5jdGlvbigpe3ZhciBzO3R5cGVvZiBDbWU8InUiP3M9Q21lLmV4cG9ydHM9YTpzPShmdW5jdGlvbigpe3JldHVybiB0aGlzfHwoMCxldmFsKSgidGhpcyIpfSkoKSxzLmZvcm1hdD1hLHMudnNwcmludGY9dCx0eXBlb2YgY29uc29sZTwidSImJnR5cGVvZiBjb25zb2xlLmxvZz09ImZ1bmN0aW9uIiYmKHMucHJpbnRmPWUpO2Z1bmN0aW9uIGUoKXtjb25zb2xlLmxvZyhhLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9aShlLCJwcmludGYiKTtmdW5jdGlvbiB0KHIsbil7cmV0dXJuIGEuYXBwbHkobnVsbCxbcl0uY29uY2F0KG4pKX1pKHQsInZzcHJpbnRmIik7ZnVuY3Rpb24gYShyKXtmb3IodmFyIG49MSxvPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxsPTAscD1yLmxlbmd0aCxkPSIiLHUsYz0hMSxiLHYseD0hMSxtLGY9aShmdW5jdGlvbigpe3JldHVybiBvW24rK119LCJuZXh0QXJnIikseT1pKGZ1bmN0aW9uKCl7Zm9yKHZhciBNPSIiOy9cZC8udGVzdChyW2xdKTspTSs9cltsKytdLHU9cltsXTtyZXR1cm4gTS5sZW5ndGg+MD9wYXJzZUludChNKTpudWxsfSwic2x1cnBOdW1iZXIiKTtsPHA7KytsKWlmKHU9cltsXSxjKXN3aXRjaChjPSExLHU9PSIuIj8oeD0hMSx1PXJbKytsXSk6dT09IjAiJiZyW2wrMV09PSIuIj8oeD0hMCxsKz0yLHU9cltsXSk6eD0hMCxtPXkoKSx1KXtjYXNlImIiOmQrPXBhcnNlSW50KGYoKSwxMCkudG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjpiPWYoKSx0eXBlb2YgYj09InN0cmluZyJ8fGIgaW5zdGFuY2VvZiBTdHJpbmc/ZCs9YjpkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGIsMTApKTticmVhaztjYXNlImQiOmQrPXBhcnNlSW50KGYoKSwxMCk7YnJlYWs7Y2FzZSJmIjp2PVN0cmluZyhwYXJzZUZsb2F0KGYoKSkudG9GaXhlZChtfHw2KSksZCs9eD92OnYucmVwbGFjZSgvXjAvLCIiKTticmVhaztjYXNlImoiOmQrPUpTT04uc3RyaW5naWZ5KGYoKSk7YnJlYWs7Y2FzZSJvIjpkKz0iMCIrcGFyc2VJbnQoZigpLDEwKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmQrPWYoKTticmVhaztjYXNlIngiOmQrPSIweCIrcGFyc2VJbnQoZigpLDEwKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpkKz0iMHgiK3BhcnNlSW50KGYoKSwxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDpkKz11O2JyZWFrfWVsc2UgdT09PSIlIj9jPSEwOmQrPXU7cmV0dXJuIGR9aShhLCJmb3JtYXQiKX0pKCl9KTtmdW5jdGlvbiBQMyhzKXtyZXR1cm4gZS5kaXNwbGF5TmFtZT1zLmRpc3BsYXlOYW1lfHxzLm5hbWUsZTtmdW5jdGlvbiBlKHQsLi4uYSl7bGV0IHI9dCYmKDAsYmJ0LmRlZmF1bHQpKHQsLi4uYSk7cmV0dXJuIG5ldyBzKHIpfWkoZSwiRm9ybWF0dGVkRXJyb3IiKX12YXIgYmJ0LHlrLHZidD1nKCgpPT57YmJ0PXhuKGdidCgpLDEpLHlrPU9iamVjdC5hc3NpZ24oUDMoRXJyb3IpLHtldmFsOlAzKEV2YWxFcnJvcikscmFuZ2U6UDMoUmFuZ2VFcnJvcikscmVmZXJlbmNlOlAzKFJlZmVyZW5jZUVycm9yKSxzeW50YXg6UDMoU3ludGF4RXJyb3IpLHR5cGU6UDMoVHlwZUVycm9yKSx1cmk6UDMoVVJJRXJyb3IpfSk7aShQMywiY3JlYXRlIil9KTtmdW5jdGlvbiBzYihzKXtsZXQgZT1bXSx0PS0xLGE9QXJyYXkuaXNBcnJheShzKT9zOnM/W3NdOlsieWFtbCJdO2Zvcig7Kyt0PGEubGVuZ3RoOyllW3RdPVRGYShhW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiBURmEocyl7bGV0IGU9cztpZih0eXBlb2YgZT09InN0cmluZyIpe2lmKCFJaWUuY2FsbCh4YnQsZSkpdGhyb3cgeWsoIk1pc3NpbmcgbWF0dGVyIGRlZmluaXRpb24gZm9yIGAlc2AiLGUpO2U9e3R5cGU6ZSxtYXJrZXI6eGJ0W2VdfX1lbHNlIGlmKHR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyB5aygiRXhwZWN0ZWQgbWF0dGVyIHRvIGJlIGFuIG9iamVjdCwgbm90IGAlamAiLGUpO2lmKCFJaWUuY2FsbChlLCJ0eXBlIikpdGhyb3cgeWsoIk1pc3NpbmcgYHR5cGVgIGluIG1hdHRlciBgJWpgIixlKTtpZighSWllLmNhbGwoZSwiZmVuY2UiKSYmIUlpZS5jYWxsKGUsIm1hcmtlciIpKXRocm93IHlrKCJNaXNzaW5nIGBtYXJrZXJgIG9yIGBmZW5jZWAgaW4gbWF0dGVyIGAlamAiLGUpO3JldHVybiBlfXZhciBJaWUseGJ0LFRtZT1nKCgpPT57dmJ0KCk7SWllPXt9Lmhhc093blByb3BlcnR5LHhidD17eWFtbDoiLSIsdG9tbDoiKyJ9O2koc2IsInRvTWF0dGVycyIpO2koVEZhLCJtYXR0ZXIiKX0pO2Z1bmN0aW9uIERtZShzKXtsZXQgZT1zYihzKSx0PXt9LGE9LTE7Zm9yKDsrK2E8ZS5sZW5ndGg7KXtsZXQgcj1lW2FdLG49JG1lKHIsIm9wZW4iKS5jaGFyQ29kZUF0KDApLG89JEZhKHIpLGw9dFtuXTtBcnJheS5pc0FycmF5KGwpP2wucHVzaChvKTp0W25dPVtvXX1yZXR1cm57Zmxvdzp0fX1mdW5jdGlvbiAkRmEocyl7bGV0IGU9cy5hbnl3aGVyZSx0PXMudHlwZSxhPXQrIkZlbmNlIixyPWErIlNlcXVlbmNlIixuPXQrIlZhbHVlIixvPXt0b2tlbml6ZTp1LHBhcnRpYWw6ITB9LGwscD0wO3JldHVybnt0b2tlbml6ZTpkLGNvbmNyZXRlOiEwfTtmdW5jdGlvbiBkKGMsYix2KXtsZXQgeD10aGlzO3JldHVybiBtO2Z1bmN0aW9uIG0oTyl7bGV0ICQ9eC5ub3coKTtyZXR1cm4gJC5jb2x1bW49PT0xJiYoJC5saW5lPT09MXx8ZSkmJihsPSRtZShzLCJvcGVuIikscD0wLE89PT1sLmNoYXJDb2RlQXQocCkpPyhjLmVudGVyKHQpLGMuZW50ZXIoYSksYy5lbnRlcihyKSxmKE8pKTp2KE8pfWZ1bmN0aW9uIGYoTyl7cmV0dXJuIHA9PT1sLmxlbmd0aD8oYy5leGl0KHIpLEh0KE8pPyhjLmVudGVyKCJ3aGl0ZXNwYWNlIikseShPKSk6TShPKSk6Tz09PWwuY2hhckNvZGVBdChwKyspPyhjLmNvbnN1bWUoTyksZik6dihPKX1mdW5jdGlvbiB5KE8pe3JldHVybiBIdChPKT8oYy5jb25zdW1lKE8pLHkpOihjLmV4aXQoIndoaXRlc3BhY2UiKSxNKE8pKX1mdW5jdGlvbiBNKE8pe3JldHVybiB2dChPKT8oYy5leGl0KGEpLGMuZW50ZXIoImxpbmVFbmRpbmciKSxjLmNvbnN1bWUoTyksYy5leGl0KCJsaW5lRW5kaW5nIiksbD0kbWUocywiY2xvc2UiKSxwPTAsYy5hdHRlbXB0KG8sXyx6KSk6dihPKX1mdW5jdGlvbiB6KE8pe3JldHVybiBPPT09bnVsbHx8dnQoTyk/QyhPKTooYy5lbnRlcihuKSxOKE8pKX1mdW5jdGlvbiBOKE8pe3JldHVybiBPPT09bnVsbHx8dnQoTyk/KGMuZXhpdChuKSxDKE8pKTooYy5jb25zdW1lKE8pLE4pfWZ1bmN0aW9uIEMoTyl7cmV0dXJuIE89PT1udWxsP3YoTyk6KGMuZW50ZXIoImxpbmVFbmRpbmciKSxjLmNvbnN1bWUoTyksYy5leGl0KCJsaW5lRW5kaW5nIiksYy5hdHRlbXB0KG8sXyx6KSl9ZnVuY3Rpb24gXyhPKXtyZXR1cm4gYy5leGl0KHQpLGIoTyl9fWZ1bmN0aW9uIHUoYyxiLHYpe2xldCB4PTA7cmV0dXJuIG07ZnVuY3Rpb24gbSh6KXtyZXR1cm4gej09PWwuY2hhckNvZGVBdCh4KT8oYy5lbnRlcihhKSxjLmVudGVyKHIpLGYoeikpOnYoeil9ZnVuY3Rpb24gZih6KXtyZXR1cm4geD09PWwubGVuZ3RoPyhjLmV4aXQociksSHQoeik/KGMuZW50ZXIoIndoaXRlc3BhY2UiKSx5KHopKTpNKHopKTp6PT09bC5jaGFyQ29kZUF0KHgrKyk/KGMuY29uc3VtZSh6KSxmKTp2KHopfWZ1bmN0aW9uIHkoeil7cmV0dXJuIEh0KHopPyhjLmNvbnN1bWUoeikseSk6KGMuZXhpdCgid2hpdGVzcGFjZSIpLE0oeikpfWZ1bmN0aW9uIE0oeil7cmV0dXJuIHo9PT1udWxsfHx2dCh6KT8oYy5leGl0KGEpLGIoeikpOnYoeil9fX1mdW5jdGlvbiAkbWUocyxlKXtyZXR1cm4gcy5tYXJrZXI/eWJ0KHMubWFya2VyLGUpLnJlcGVhdCgzKTp5YnQocy5mZW5jZSxlKX1mdW5jdGlvbiB5YnQocyxlKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmciP3M6c1tlXX12YXIgd2J0PWcoKCk9PntWYSgpO1RtZSgpO2koRG1lLCJmcm9udG1hdHRlciIpO2koJEZhLCJjcmVhdGVDb25zdHJ1Y3QiKTtpKCRtZSwiZmVuY2UiKTtpKHlidCwicGljayIpfSk7dmFyIGtidD1nKCgpPT57fSk7dmFyIExtZT1nKCgpPT57d2J0KCk7a2J0KCk7VG1lKCl9KTtmdW5jdGlvbiBQbWUocyl7bGV0IGU9c2IocyksdD17fSxhPXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXtsZXQgbj1lW3JdO3Rbbi50eXBlXT1ERmEobiksYVtuLnR5cGVdPUxGYSxhW24udHlwZSsiVmFsdWUiXT1FRmF9cmV0dXJue2VudGVyOnQsZXhpdDphfX1mdW5jdGlvbiBERmEocyl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0KXt0aGlzLmVudGVyKHt0eXBlOnMudHlwZSx2YWx1ZToiIn0sdCksdGhpcy5idWZmZXIoKX19ZnVuY3Rpb24gTEZhKHMpe2xldCBlPXRoaXMucmVzdW1lKCksdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdOyJ2YWx1ZSJpbiB0LHRoaXMuZXhpdChzKSx0LnZhbHVlPWUucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gRUZhKHMpe3RoaXMuY29uZmlnLmVudGVyLmRhdGEuY2FsbCh0aGlzLHMpLHRoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMscyl9ZnVuY3Rpb24gSW1lKHMpe2xldCBlPVtdLHQ9e30sYT1zYihzKSxyPS0xO2Zvcig7KytyPGEubGVuZ3RoOyl7bGV0IG49YVtyXTt0W24udHlwZV09UEZhKG4pO2xldCBvPUVtZShuLCJvcGVuIik7ZS5wdXNoKHthdEJyZWFrOiEwLGNoYXJhY3RlcjpvLmNoYXJBdCgwKSxhZnRlcjpXNChvLmNoYXJBdCgxKSl9KX1yZXR1cm57dW5zYWZlOmUsaGFuZGxlcnM6dH19ZnVuY3Rpb24gUEZhKHMpe2xldCBlPUVtZShzLCJvcGVuIiksdD1FbWUocywiY2xvc2UiKTtyZXR1cm4gYTtmdW5jdGlvbiBhKHIpe3JldHVybiBlKyhyLnZhbHVlP2AKYCtyLnZhbHVlOiIiKStgCmArdH19ZnVuY3Rpb24gRW1lKHMsZSl7cmV0dXJuIHMubWFya2VyP1NidChzLm1hcmtlcixlKS5yZXBlYXQoMyk6U2J0KHMuZmVuY2UsZSl9ZnVuY3Rpb24gU2J0KHMsZSl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9zOnNbZV19dmFyIF9idD1nKCgpPT57V3AoKTtMbWUoKTskZWUoKTtpKFBtZSwiZnJvbnRtYXR0ZXJGcm9tTWFya2Rvd24iKTtpKERGYSwib3BlbmVyIik7aShMRmEsImNsb3NlIik7aShFRmEsInZhbHVlIik7aShJbWUsImZyb250bWF0dGVyVG9NYXJrZG93biIpO2koUEZhLCJoYW5kbGVyIik7aShFbWUsImZlbmNlIik7aShTYnQsInBpY2siKX0pO3ZhciBNYnQ9ZygoKT0+e19idCgpfSk7ZnVuY3Rpb24gaWIocyl7bGV0IGU9dGhpcyx0PXN8fElGYSxhPWUuZGF0YSgpLHI9YS5taWNyb21hcmtFeHRlbnNpb25zfHwoYS5taWNyb21hcmtFeHRlbnNpb25zPVtdKSxuPWEuZnJvbU1hcmtkb3duRXh0ZW5zaW9uc3x8KGEuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucz1bXSksbz1hLnRvTWFya2Rvd25FeHRlbnNpb25zfHwoYS50b01hcmtkb3duRXh0ZW5zaW9ucz1bXSk7ci5wdXNoKERtZSh0KSksbi5wdXNoKFBtZSh0KSksby5wdXNoKEltZSh0KSl9dmFyIElGYSx6YnQ9ZygoKT0+e01idCgpO0xtZSgpO0lGYT0ieWFtbCI7aShpYiwicmVtYXJrRnJvbnRtYXR0ZXIiKX0pO3ZhciBDYnQ9ZygoKT0+e3pidCgpfSk7dmFyIEFtZT1nKCgpPT57fSk7dmFyIEFGYSxUYnQsTkZhLEZpZSwkYnQ9ZygoKT0+e0FtZSgpO0FGYT10eXBlb2Ygc2VsZj09Im9iamVjdCI/c2VsZjpnbG9iYWxUaGlzLFRidD1pKChzLGUpPT57c3dpdGNoKHMpe2Nhc2UiRnVuY3Rpb24iOmNhc2UiU2hhcmVkV29ya2VyIjpjYXNlIldvcmtlciI6Y2FzZSJldmFsIjpjYXNlInNldEludGVydmFsIjpjYXNlInNldFRpbWVvdXQiOnRocm93IG5ldyBUeXBlRXJyb3IoInVuYWJsZSB0byBkZXNlcmlhbGl6ZSAiK3MpfXJldHVybiBuZXcgQUZhW3NdKGUpfSwiZ3VhcmQiKSxORmE9aSgocyxlKT0+e2xldCB0PWkoKHIsbik9PihzLnNldChuLHIpLHIpLCJhcyIpLGE9aShyPT57aWYocy5oYXMocikpcmV0dXJuIHMuZ2V0KHIpO2xldFtuLG9dPWVbcl07c3dpdGNoKG4pe2Nhc2UgMDpjYXNlLTE6cmV0dXJuIHQobyxyKTtjYXNlIDE6e2xldCBsPXQoW10scik7Zm9yKGxldCBwIG9mIG8pbC5wdXNoKGEocCkpO3JldHVybiBsfWNhc2UgMjp7bGV0IGw9dCh7fSxyKTtmb3IobGV0W3AsZF1vZiBvKWxbYShwKV09YShkKTtyZXR1cm4gbH1jYXNlIDM6cmV0dXJuIHQobmV3IERhdGUobykscik7Y2FzZSA0OntsZXR7c291cmNlOmwsZmxhZ3M6cH09bztyZXR1cm4gdChuZXcgUmVnRXhwKGwscCkscil9Y2FzZSA1OntsZXQgbD10KG5ldyBNYXAscik7Zm9yKGxldFtwLGRdb2YgbylsLnNldChhKHApLGEoZCkpO3JldHVybiBsfWNhc2UgNjp7bGV0IGw9dChuZXcgU2V0LHIpO2ZvcihsZXQgcCBvZiBvKWwuYWRkKGEocCkpO3JldHVybiBsfWNhc2UgNzp7bGV0e25hbWU6bCxtZXNzYWdlOnB9PW87cmV0dXJuIHQoVGJ0KGwscCkscil9Y2FzZSA4OnJldHVybiB0KEJpZ0ludChvKSxyKTtjYXNlIkJpZ0ludCI6cmV0dXJuIHQoT2JqZWN0KEJpZ0ludChvKSkscik7Y2FzZSJBcnJheUJ1ZmZlciI6cmV0dXJuIHQobmV3IFVpbnQ4QXJyYXkobykuYnVmZmVyLG8pO2Nhc2UiRGF0YVZpZXciOntsZXR7YnVmZmVyOmx9PW5ldyBVaW50OEFycmF5KG8pO3JldHVybiB0KG5ldyBEYXRhVmlldyhsKSxvKX19cmV0dXJuIHQoVGJ0KG4sbykscil9LCJ1bnBhaXIiKTtyZXR1cm4gYX0sImRlc2VyaWFsaXplciIpLEZpZT1pKHM9Pk5GYShuZXcgTWFwLHMpKDApLCJkZXNlcmlhbGl6ZSIpfSk7dmFyIG9iLFJGYSxPRmEsU2ssQmllLEZGYSxIaWUsRGJ0PWcoKCk9PntBbWUoKTtvYj0iIix7dG9TdHJpbmc6UkZhfT17fSx7a2V5czpPRmF9PU9iamVjdCxTaz1pKHM9PntsZXQgZT10eXBlb2YgcztpZihlIT09Im9iamVjdCJ8fCFzKXJldHVyblswLGVdO2xldCB0PVJGYS5jYWxsKHMpLnNsaWNlKDgsLTEpO3N3aXRjaCh0KXtjYXNlIkFycmF5IjpyZXR1cm5bMSxvYl07Y2FzZSJPYmplY3QiOnJldHVyblsyLG9iXTtjYXNlIkRhdGUiOnJldHVyblszLG9iXTtjYXNlIlJlZ0V4cCI6cmV0dXJuWzQsb2JdO2Nhc2UiTWFwIjpyZXR1cm5bNSxvYl07Y2FzZSJTZXQiOnJldHVybls2LG9iXTtjYXNlIkRhdGFWaWV3IjpyZXR1cm5bMSx0XX1yZXR1cm4gdC5pbmNsdWRlcygiQXJyYXkiKT9bMSx0XTp0LmluY2x1ZGVzKCJFcnJvciIpP1s3LHRdOlsyLHRdfSwidHlwZU9mIiksQmllPWkoKFtzLGVdKT0+cz09PTAmJihlPT09ImZ1bmN0aW9uInx8ZT09PSJzeW1ib2wiKSwic2hvdWxkU2tpcCIpLEZGYT1pKChzLGUsdCxhKT0+e2xldCByPWkoKG8sbCk9PntsZXQgcD1hLnB1c2gobyktMTtyZXR1cm4gdC5zZXQobCxwKSxwfSwiYXMiKSxuPWkobz0+e2lmKHQuaGFzKG8pKXJldHVybiB0LmdldChvKTtsZXRbbCxwXT1TayhvKTtzd2l0Y2gobCl7Y2FzZSAwOntsZXQgdT1vO3N3aXRjaChwKXtjYXNlImJpZ2ludCI6bD04LHU9by50b1N0cmluZygpO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjppZihzKXRocm93IG5ldyBUeXBlRXJyb3IoInVuYWJsZSB0byBzZXJpYWxpemUgIitwKTt1PW51bGw7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiByKFstMV0sbyl9cmV0dXJuIHIoW2wsdV0sbyl9Y2FzZSAxOntpZihwKXtsZXQgYj1vO3JldHVybiBwPT09IkRhdGFWaWV3Ij9iPW5ldyBVaW50OEFycmF5KG8uYnVmZmVyKTpwPT09IkFycmF5QnVmZmVyIiYmKGI9bmV3IFVpbnQ4QXJyYXkobykpLHIoW3AsWy4uLmJdXSxvKX1sZXQgdT1bXSxjPXIoW2wsdV0sbyk7Zm9yKGxldCBiIG9mIG8pdS5wdXNoKG4oYikpO3JldHVybiBjfWNhc2UgMjp7aWYocClzd2l0Y2gocCl7Y2FzZSJCaWdJbnQiOnJldHVybiByKFtwLG8udG9TdHJpbmcoKV0sbyk7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOnJldHVybiByKFtwLG8udmFsdWVPZigpXSxvKX1pZihlJiYidG9KU09OImluIG8pcmV0dXJuIG4oby50b0pTT04oKSk7bGV0IHU9W10sYz1yKFtsLHVdLG8pO2ZvcihsZXQgYiBvZiBPRmEobykpKHN8fCFCaWUoU2sob1tiXSkpKSYmdS5wdXNoKFtuKGIpLG4ob1tiXSldKTtyZXR1cm4gY31jYXNlIDM6cmV0dXJuIHIoW2wsby50b0lTT1N0cmluZygpXSxvKTtjYXNlIDQ6e2xldHtzb3VyY2U6dSxmbGFnczpjfT1vO3JldHVybiByKFtsLHtzb3VyY2U6dSxmbGFnczpjfV0sbyl9Y2FzZSA1OntsZXQgdT1bXSxjPXIoW2wsdV0sbyk7Zm9yKGxldFtiLHZdb2Ygbykoc3x8IShCaWUoU2soYikpfHxCaWUoU2sodikpKSkmJnUucHVzaChbbihiKSxuKHYpXSk7cmV0dXJuIGN9Y2FzZSA2OntsZXQgdT1bXSxjPXIoW2wsdV0sbyk7Zm9yKGxldCBiIG9mIG8pKHN8fCFCaWUoU2soYikpKSYmdS5wdXNoKG4oYikpO3JldHVybiBjfX1sZXR7bWVzc2FnZTpkfT1vO3JldHVybiByKFtsLHtuYW1lOnAsbWVzc2FnZTpkfV0sbyl9LCJwYWlyIik7cmV0dXJuIG59LCJzZXJpYWxpemVyIiksSGllPWkoKHMse2pzb246ZSxsb3NzeTp0fT17fSk9PntsZXQgYT1bXTtyZXR1cm4gRkZhKCEoZXx8dCksISFlLG5ldyBNYXAsYSkocyksYX0sInNlcmlhbGl6ZSIpfSk7dmFyIEpwLHFpZT1nKCgpPT57JGJ0KCk7RGJ0KCk7SnA9dHlwZW9mIHN0cnVjdHVyZWRDbG9uZT09ImZ1bmN0aW9uIj8ocyxlKT0+ZSYmKCJqc29uImluIGV8fCJsb3NzeSJpbiBlKT9GaWUoSGllKHMsZSkpOnN0cnVjdHVyZWRDbG9uZShzKToocyxlKT0+RmllKEhpZShzLGUpKX0pO2Z1bmN0aW9uIExidChzKXtyZXR1cm4gZTtmdW5jdGlvbiBlKHQpe2xldCBhPXQmJnQucG9zaXRpb24mJnQucG9zaXRpb25bc118fHt9O2lmKHR5cGVvZiBhLmxpbmU9PSJudW1iZXIiJiZhLmxpbmU+MCYmdHlwZW9mIGEuY29sdW1uPT0ibnVtYmVyIiYmYS5jb2x1bW4+MClyZXR1cm57bGluZTphLmxpbmUsY29sdW1uOmEuY29sdW1uLG9mZnNldDp0eXBlb2YgYS5vZmZzZXQ9PSJudW1iZXIiJiZhLm9mZnNldD4tMT9hLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiBfayhzKXtsZXQgZT1WaWUocyksdD1qaWUocyk7aWYoZSYmdClyZXR1cm57c3RhcnQ6ZSxlbmQ6dH19dmFyIGppZSxWaWUsRWJ0PWcoKCk9PntqaWU9TGJ0KCJlbmQiKSxWaWU9TGJ0KCJzdGFydCIpO2koTGJ0LCJwb2ludCIpO2koX2ssInBvc2l0aW9uIil9KTt2YXIgVWllPWcoKCk9PntFYnQoKX0pO3ZhciBJMyxXaWUsRm1lPWcoKCk9PntJMz1bImFyaWFEZXNjcmliZWRCeSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5Il0sV2llPXthbmNlc3RvcnM6e3Rib2R5OlsidGFibGUiXSx0ZDpbInRhYmxlIl0sdGg6WyJ0YWJsZSJdLHRoZWFkOlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sdHI6WyJ0YWJsZSJdfSxhdHRyaWJ1dGVzOnthOlsuLi5JMywiZGF0YUZvb3Rub3RlQmFja3JlZiIsImRhdGFGb290bm90ZVJlZiIsWyJjbGFzc05hbWUiLCJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXSwiaHJlZiJdLGJsb2NrcXVvdGU6WyJjaXRlIl0sY29kZTpbWyJjbGFzc05hbWUiLC9ebGFuZ3VhZ2UtLi9dXSxkZWw6WyJjaXRlIl0sZGl2OlsiaXRlbVNjb3BlIiwiaXRlbVR5cGUiXSxkbDpbLi4uSTNdLGgyOltbImNsYXNzTmFtZSIsInNyLW9ubHkiXV0saW1nOlsuLi5JMywibG9uZ0Rlc2MiLCJzcmMiXSxpbnB1dDpbWyJkaXNhYmxlZCIsITBdLFsidHlwZSIsImNoZWNrYm94Il1dLGluczpbImNpdGUiXSxsaTpbWyJjbGFzc05hbWUiLCJ0YXNrLWxpc3QtaXRlbSJdXSxvbDpbLi4uSTMsWyJjbGFzc05hbWUiLCJjb250YWlucy10YXNrLWxpc3QiXV0scTpbImNpdGUiXSxzZWN0aW9uOlsiZGF0YUZvb3Rub3RlcyIsWyJjbGFzc05hbWUiLCJmb290bm90ZXMiXV0sc291cmNlOlsic3JjU2V0Il0sc3VtbWFyeTpbLi4uSTNdLHRhYmxlOlsuLi5JM10sdWw6Wy4uLkkzLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLCIqIjpbImFiYnIiLCJhY2NlcHQiLCJhY2NlcHRDaGFyc2V0IiwiYWNjZXNzS2V5IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJheGlzIiwiYm9yZGVyIiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsImNoYXIiLCJjaGFyT2ZmIiwiY2hhclNldCIsImNoZWNrZWQiLCJjbGVhciIsImNvbFNwYW4iLCJjb2xvciIsImNvbHMiLCJjb21wYWN0IiwiY29vcmRzIiwiZGF0ZVRpbWUiLCJkaXIiLCJlbmNUeXBlIiwiZnJhbWUiLCJoU3BhY2UiLCJoZWFkZXJzIiwiaGVpZ2h0IiwiaHJlZkxhbmciLCJodG1sRm9yIiwiaWQiLCJpc01hcCIsIml0ZW1Qcm9wIiwibGFiZWwiLCJsYW5nIiwibWF4TGVuZ3RoIiwibWVkaWEiLCJtZXRob2QiLCJtdWx0aXBsZSIsIm5hbWUiLCJub0hyZWYiLCJub1NoYWRlIiwibm9XcmFwIiwib3BlbiIsInByb21wdCIsInJlYWRPbmx5IiwicmV2Iiwicm93U3BhbiIsInJvd3MiLCJydWxlcyIsInNjb3BlIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemUiLCJzcGFuIiwic3RhcnQiLCJzdW1tYXJ5IiwidGFiSW5kZXgiLCJ0aXRsZSIsInVzZU1hcCIsInZBbGlnbiIsInZhbHVlIiwid2lkdGgiXX0sY2xvYmJlcjpbImFyaWFEZXNjcmliZWRCeSIsImFyaWFMYWJlbGxlZEJ5IiwiaWQiLCJuYW1lIl0sY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscHJvdG9jb2xzOntjaXRlOlsiaHR0cCIsImh0dHBzIl0saHJlZjpbImh0dHAiLCJodHRwcyIsImlyYyIsImlyY3MiLCJtYWlsdG8iLCJ4bXBwIl0sbG9uZ0Rlc2M6WyJodHRwIiwiaHR0cHMiXSxzcmM6WyJodHRwIiwiaHR0cHMiXX0scmVxdWlyZWQ6e2lucHV0OntkaXNhYmxlZDohMCx0eXBlOiJjaGVja2JveCJ9fSxzdHJpcDpbInNjcmlwdCJdLHRhZ05hbWVzOlsiYSIsImIiLCJibG9ja3F1b3RlIiwiYnIiLCJjb2RlIiwiZGQiLCJkZWwiLCJkZXRhaWxzIiwiZGl2IiwiZGwiLCJkdCIsImVtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaHIiLCJpIiwiaW1nIiwiaW5wdXQiLCJpbnMiLCJrYmQiLCJsaSIsIm9sIiwicCIsInBpY3R1cmUiLCJwcmUiLCJxIiwicnAiLCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNlY3Rpb24iLCJzb3VyY2UiLCJzcGFuIiwic3RyaWtlIiwic3Ryb25nIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRmb290IiwidGgiLCJ0aGVhZCIsInRyIiwidHQiLCJ1bCIsInZhciJdfX0pO2Z1bmN0aW9uIEJtZShzLGUpe2xldCB0PXt0eXBlOiJyb290IixjaGlsZHJlbjpbXX0sYT17c2NoZW1hOmU/ey4uLldpZSwuLi5lfTpXaWUsc3RhY2s6W119LHI9UGJ0KGEscyk7cmV0dXJuIHImJihBcnJheS5pc0FycmF5KHIpP3IubGVuZ3RoPT09MT90PXJbMF06dC5jaGlsZHJlbj1yOnQ9ciksdH1mdW5jdGlvbiBQYnQocyxlKXtpZihlJiZ0eXBlb2YgZT09Im9iamVjdCIpe2xldCB0PWU7c3dpdGNoKHR5cGVvZiB0LnR5cGU9PSJzdHJpbmciP3QudHlwZToiIil7Y2FzZSJjb21tZW50IjpyZXR1cm4gQkZhKHMsdCk7Y2FzZSJkb2N0eXBlIjpyZXR1cm4gSEZhKHMsdCk7Y2FzZSJlbGVtZW50IjpyZXR1cm4gcUZhKHMsdCk7Y2FzZSJyb290IjpyZXR1cm4gakZhKHMsdCk7Y2FzZSJ0ZXh0IjpyZXR1cm4gVkZhKHMsdCk7ZGVmYXVsdDp9fX1mdW5jdGlvbiBCRmEocyxlKXtpZihzLnNjaGVtYS5hbGxvd0NvbW1lbnRzKXtsZXQgdD10eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIixhPXQuaW5kZXhPZigiLS0+Iiksbj17dHlwZToiY29tbWVudCIsdmFsdWU6YTwwP3Q6dC5zbGljZSgwLGEpfTtyZXR1cm4gTWsobixlKSxufX1mdW5jdGlvbiBIRmEocyxlKXtpZihzLnNjaGVtYS5hbGxvd0RvY3R5cGVzKXtsZXQgdD17dHlwZToiZG9jdHlwZSJ9O3JldHVybiBNayh0LGUpLHR9fWZ1bmN0aW9uIHFGYShzLGUpe2xldCB0PXR5cGVvZiBlLnRhZ05hbWU9PSJzdHJpbmciP2UudGFnTmFtZToiIjtzLnN0YWNrLnB1c2godCk7bGV0IGE9SWJ0KHMsZS5jaGlsZHJlbikscj1VRmEocyxlLnByb3BlcnRpZXMpO3Muc3RhY2sucG9wKCk7bGV0IG49ITE7aWYodCYmdCE9PSIqIiYmKCFzLnNjaGVtYS50YWdOYW1lc3x8cy5zY2hlbWEudGFnTmFtZXMuaW5jbHVkZXModCkpJiYobj0hMCxzLnNjaGVtYS5hbmNlc3RvcnMmJmVoLmNhbGwocy5zY2hlbWEuYW5jZXN0b3JzLHQpKSl7bGV0IGw9cy5zY2hlbWEuYW5jZXN0b3JzW3RdLHA9LTE7Zm9yKG49ITE7KytwPGwubGVuZ3RoOylzLnN0YWNrLmluY2x1ZGVzKGxbcF0pJiYobj0hMCl9aWYoIW4pcmV0dXJuIHMuc2NoZW1hLnN0cmlwJiYhcy5zY2hlbWEuc3RyaXAuaW5jbHVkZXModCk/YTp2b2lkIDA7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6dCxwcm9wZXJ0aWVzOnIsY2hpbGRyZW46YX07cmV0dXJuIE1rKG8sZSksb31mdW5jdGlvbiBqRmEocyxlKXtsZXQgYT17dHlwZToicm9vdCIsY2hpbGRyZW46SWJ0KHMsZS5jaGlsZHJlbil9O3JldHVybiBNayhhLGUpLGF9ZnVuY3Rpb24gVkZhKHMsZSl7bGV0IGE9e3R5cGU6InRleHQiLHZhbHVlOnR5cGVvZiBlLnZhbHVlPT0ic3RyaW5nIj9lLnZhbHVlOiIifTtyZXR1cm4gTWsoYSxlKSxhfWZ1bmN0aW9uIElidChzLGUpe2xldCB0PVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBhPWUscj0tMTtmb3IoOysrcjxhLmxlbmd0aDspe2xldCBuPVBidChzLGFbcl0pO24mJihBcnJheS5pc0FycmF5KG4pP3QucHVzaCguLi5uKTp0LnB1c2gobikpfX1yZXR1cm4gdH1mdW5jdGlvbiBVRmEocyxlKXtsZXQgdD1zLnN0YWNrW3Muc3RhY2subGVuZ3RoLTFdLGE9cy5zY2hlbWEuYXR0cmlidXRlcyxyPXMuc2NoZW1hLnJlcXVpcmVkLG49YSYmZWguY2FsbChhLHQpP2FbdF06dm9pZCAwLG89YSYmZWguY2FsbChhLCIqIik/YVsiKiJdOnZvaWQgMCxsPWUmJnR5cGVvZiBlPT0ib2JqZWN0Ij9lOnt9LHA9e30sZDtmb3IoZCBpbiBsKWlmKGVoLmNhbGwobCxkKSl7bGV0IHU9bFtkXSxjPUFidChzLFJidChuLGQpLGQsdSk7Yz09bnVsbCYmKGM9QWJ0KHMsUmJ0KG8sZCksZCx1KSksYyE9bnVsbCYmKHBbZF09Yyl9aWYociYmZWguY2FsbChyLHQpKXtsZXQgdT1yW3RdO2ZvcihkIGluIHUpZWguY2FsbCh1LGQpJiYhZWguY2FsbChwLGQpJiYocFtkXT11W2RdKX1yZXR1cm4gcH1mdW5jdGlvbiBBYnQocyxlLHQsYSl7cmV0dXJuIGU/QXJyYXkuaXNBcnJheShhKT9XRmEocyxlLHQsYSk6TmJ0KHMsZSx0LGEpOnZvaWQgMH1mdW5jdGlvbiBXRmEocyxlLHQsYSl7bGV0IHI9LTEsbj1bXTtmb3IoOysrcjxhLmxlbmd0aDspe2xldCBvPU5idChzLGUsdCxhW3JdKTsodHlwZW9mIG89PSJudW1iZXIifHx0eXBlb2Ygbz09InN0cmluZyIpJiZuLnB1c2gobyl9cmV0dXJuIG59ZnVuY3Rpb24gTmJ0KHMsZSx0LGEpe2lmKCEodHlwZW9mIGEhPSJib29sZWFuIiYmdHlwZW9mIGEhPSJudW1iZXIiJiZ0eXBlb2YgYSE9InN0cmluZyIpJiZHRmEocyx0LGEpKXtpZih0eXBlb2YgZT09Im9iamVjdCImJmUubGVuZ3RoPjEpe2xldCByPSExLG49MDtmb3IoOysrbjxlLmxlbmd0aDspe2xldCBvPWVbbl07aWYobyYmdHlwZW9mIG89PSJvYmplY3QiJiYiZmxhZ3MiaW4gbyl7aWYoby50ZXN0KFN0cmluZyhhKSkpe3I9ITA7YnJlYWt9fWVsc2UgaWYobz09PWEpe3I9ITA7YnJlYWt9fWlmKCFyKXJldHVybn1yZXR1cm4gcy5zY2hlbWEuY2xvYmJlciYmcy5zY2hlbWEuY2xvYmJlclByZWZpeCYmcy5zY2hlbWEuY2xvYmJlci5pbmNsdWRlcyh0KT9zLnNjaGVtYS5jbG9iYmVyUHJlZml4K2E6YX19ZnVuY3Rpb24gR0ZhKHMsZSx0KXtsZXQgYT1zLnNjaGVtYS5wcm90b2NvbHMmJmVoLmNhbGwocy5zY2hlbWEucHJvdG9jb2xzLGUpP3Muc2NoZW1hLnByb3RvY29sc1tlXTp2b2lkIDA7aWYoIWF8fGEubGVuZ3RoPT09MClyZXR1cm4hMDtsZXQgcj1TdHJpbmcodCksbj1yLmluZGV4T2YoIjoiKSxvPXIuaW5kZXhPZigiPyIpLGw9ci5pbmRleE9mKCIjIikscD1yLmluZGV4T2YoIi8iKTtpZihuPDB8fHA+LTEmJm4+cHx8bz4tMSYmbj5vfHxsPi0xJiZuPmwpcmV0dXJuITA7bGV0IGQ9LTE7Zm9yKDsrK2Q8YS5sZW5ndGg7KXtsZXQgdT1hW2RdO2lmKG49PT11Lmxlbmd0aCYmci5zbGljZSgwLHUubGVuZ3RoKT09PXUpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gTWsocyxlKXtsZXQgdD1fayhlKTtlLmRhdGEmJihzLmRhdGE9SnAoZS5kYXRhKSksdCYmKHMucG9zaXRpb249dCl9ZnVuY3Rpb24gUmJ0KHMsZSl7bGV0IHQsYT0tMTtpZihzKWZvcig7KythPHMubGVuZ3RoOyl7bGV0IHI9c1thXSxuPXR5cGVvZiByPT0ic3RyaW5nIj9yOnJbMF07aWYobj09PWUpcmV0dXJuIHI7bj09PSJkYXRhKiImJih0PXIpfWlmKGUubGVuZ3RoPjQmJmUuc2xpY2UoMCw0KS50b0xvd2VyQ2FzZSgpPT09ImRhdGEiKXJldHVybiB0fXZhciBlaCxPYnQ9ZygoKT0+e3FpZSgpO1VpZSgpO0ZtZSgpO2VoPXt9Lmhhc093blByb3BlcnR5O2koQm1lLCJzYW5pdGl6ZSIpO2koUGJ0LCJ0cmFuc2Zvcm0iKTtpKEJGYSwiY29tbWVudCIpO2koSEZhLCJkb2N0eXBlIik7aShxRmEsImVsZW1lbnQiKTtpKGpGYSwicm9vdCIpO2koVkZhLCJ0ZXh0Iik7aShJYnQsImNoaWxkcmVuIik7aShVRmEsInByb3BlcnRpZXMiKTtpKEFidCwicHJvcGVydHlWYWx1ZSIpO2koV0ZhLCJwcm9wZXJ0eVZhbHVlTWFueSIpO2koTmJ0LCJwcm9wZXJ0eVZhbHVlUHJpbWl0aXZlIik7aShHRmEsInNhZmVQcm90b2NvbCIpO2koTWssInBhdGNoIik7aShSYnQsImZpbmREZWZpbml0aW9uIil9KTt2YXIgRmJ0PWcoKCk9PntPYnQoKTtGbWUoKX0pO2Z1bmN0aW9uIEJidChzLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJibG9ja3F1b3RlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMud3JhcChzLmFsbChlKSwhMCl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgSGJ0PWcoKCk9PntpKEJidCwiYmxvY2txdW90ZSIpfSk7ZnVuY3Rpb24gcWJ0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImJyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gcy5wYXRjaChlLHQpLFtzLmFwcGx5RGF0YShlLHQpLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX12YXIgamJ0PWcoKCk9PntpKHFidCwiaGFyZEJyZWFrIil9KTtmdW5jdGlvbiBWYnQocyxlKXtsZXQgdD1lLnZhbHVlP2UudmFsdWUrYApgOiIiLGE9e30scj1lLmxhbmc/ZS5sYW5nLnNwbGl0KC9ccysvKTpbXTtyLmxlbmd0aD4wJiYoYS5jbGFzc05hbWU9WyJsYW5ndWFnZS0iK3JbMF1dKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczphLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6dH1dfTtyZXR1cm4gZS5tZXRhJiYobi5kYXRhPXttZXRhOmUubWV0YX0pLHMucGF0Y2goZSxuKSxuPXMuYXBwbHlEYXRhKGUsbiksbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicHJlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltuXX0scy5wYXRjaChlLG4pLG59dmFyIFVidD1nKCgpPT57aShWYnQsImNvZGUiKX0pO2Z1bmN0aW9uIFdidChzLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJkZWwiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46cy5hbGwoZSl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgR2J0PWcoKCk9PntpKFdidCwic3RyaWtldGhyb3VnaCIpfSk7ZnVuY3Rpb24gS2J0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImVtIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMuYWxsKGUpfTtyZXR1cm4gcy5wYXRjaChlLHQpLHMuYXBwbHlEYXRhKGUsdCl9dmFyIFlidD1nKCgpPT57aShLYnQsImVtcGhhc2lzIil9KTtmdW5jdGlvbiBaYnQocyxlKXtsZXQgdD10eXBlb2Ygcy5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP3Mub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIixhPVN0cmluZyhlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCkscj1WbChhLnRvTG93ZXJDYXNlKCkpLG49cy5mb290bm90ZU9yZGVyLmluZGV4T2YoYSksbyxsPXMuZm9vdG5vdGVDb3VudHMuZ2V0KGEpO2w9PT12b2lkIDA/KGw9MCxzLmZvb3Rub3RlT3JkZXIucHVzaChhKSxvPXMuZm9vdG5vdGVPcmRlci5sZW5ndGgpOm89bisxLGwrPTEscy5mb290bm90ZUNvdW50cy5zZXQoYSxsKTtsZXQgcD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczp7aHJlZjoiIyIrdCsiZm4tIityLGlkOnQrImZucmVmLSIrcisobD4xPyItIitsOiIiKSxkYXRhRm9vdG5vdGVSZWY6ITAsYXJpYURlc2NyaWJlZEJ5OlsiZm9vdG5vdGUtbGFiZWwiXX0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpTdHJpbmcobyl9XX07cy5wYXRjaChlLHApO2xldCBkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdXAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3BdfTtyZXR1cm4gcy5wYXRjaChlLGQpLHMuYXBwbHlEYXRhKGUsZCl9dmFyIFhidD1nKCgpPT57eWQoKTtpKFpidCwiZm9vdG5vdGVSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIFFidChzLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJoIitlLmRlcHRoLHByb3BlcnRpZXM6e30sY2hpbGRyZW46cy5hbGwoZSl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgSmJ0PWcoKCk9PntpKFFidCwiaGVhZGluZyIpfSk7ZnVuY3Rpb24gZXZ0KHMsZSl7aWYocy5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCl7bGV0IHQ9e3R5cGU6InJhdyIsdmFsdWU6ZS52YWx1ZX07cmV0dXJuIHMucGF0Y2goZSx0KSxzLmFwcGx5RGF0YShlLHQpfX12YXIgdHZ0PWcoKCk9PntpKGV2dCwiaHRtbCIpfSk7ZnVuY3Rpb24gR2llKHMsZSl7bGV0IHQ9ZS5yZWZlcmVuY2VUeXBlLGE9Il0iO2lmKHQ9PT0iY29sbGFwc2VkIj9hKz0iW10iOnQ9PT0iZnVsbCImJihhKz0iWyIrKGUubGFiZWx8fGUuaWRlbnRpZmllcikrIl0iKSxlLnR5cGU9PT0iaW1hZ2VSZWZlcmVuY2UiKXJldHVyblt7dHlwZToidGV4dCIsdmFsdWU6IiFbIitlLmFsdCthfV07bGV0IHI9cy5hbGwoZSksbj1yWzBdO24mJm4udHlwZT09PSJ0ZXh0Ij9uLnZhbHVlPSJbIituLnZhbHVlOnIudW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IlsifSk7bGV0IG89cltyLmxlbmd0aC0xXTtyZXR1cm4gbyYmby50eXBlPT09InRleHQiP28udmFsdWUrPWE6ci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTphfSkscn12YXIgSG1lPWcoKCk9PntpKEdpZSwicmV2ZXJ0Iil9KTtmdW5jdGlvbiBhdnQocyxlKXtsZXQgdD1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGE9cy5kZWZpbml0aW9uQnlJZC5nZXQodCk7aWYoIWEpcmV0dXJuIEdpZShzLGUpO2xldCByPXtzcmM6VmwoYS51cmx8fCIiKSxhbHQ6ZS5hbHR9O2EudGl0bGUhPT1udWxsJiZhLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1hLnRpdGxlKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W119O3JldHVybiBzLnBhdGNoKGUsbikscy5hcHBseURhdGEoZSxuKX12YXIgc3Z0PWcoKCk9Pnt5ZCgpO0htZSgpO2koYXZ0LCJpbWFnZVJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gaXZ0KHMsZSl7bGV0IHQ9e3NyYzpWbChlLnVybCl9O2UuYWx0IT09bnVsbCYmZS5hbHQhPT12b2lkIDAmJih0LmFsdD1lLmFsdCksZS50aXRsZSE9PW51bGwmJmUudGl0bGUhPT12b2lkIDAmJih0LnRpdGxlPWUudGl0bGUpO2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbWciLHByb3BlcnRpZXM6dCxjaGlsZHJlbjpbXX07cmV0dXJuIHMucGF0Y2goZSxhKSxzLmFwcGx5RGF0YShlLGEpfXZhciBydnQ9ZygoKT0+e3lkKCk7aShpdnQsImltYWdlIil9KTtmdW5jdGlvbiBvdnQocyxlKXtsZXQgdD17dHlwZToidGV4dCIsdmFsdWU6ZS52YWx1ZS5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIil9O3MucGF0Y2goZSx0KTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbdF19O3JldHVybiBzLnBhdGNoKGUsYSkscy5hcHBseURhdGEoZSxhKX12YXIgbnZ0PWcoKCk9PntpKG92dCwiaW5saW5lQ29kZSIpfSk7ZnVuY3Rpb24gbHZ0KHMsZSl7bGV0IHQ9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPXMuZGVmaW5pdGlvbkJ5SWQuZ2V0KHQpO2lmKCFhKXJldHVybiBHaWUocyxlKTtsZXQgcj17aHJlZjpWbChhLnVybHx8IiIpfTthLnRpdGxlIT09bnVsbCYmYS50aXRsZSE9PXZvaWQgMCYmKHIudGl0bGU9YS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6cixjaGlsZHJlbjpzLmFsbChlKX07cmV0dXJuIHMucGF0Y2goZSxuKSxzLmFwcGx5RGF0YShlLG4pfXZhciBjdnQ9ZygoKT0+e3lkKCk7SG1lKCk7aShsdnQsImxpbmtSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIGR2dChzLGUpe2xldCB0PXtocmVmOlZsKGUudXJsKX07ZS50aXRsZSE9PW51bGwmJmUudGl0bGUhPT12b2lkIDAmJih0LnRpdGxlPWUudGl0bGUpO2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnQsY2hpbGRyZW46cy5hbGwoZSl9O3JldHVybiBzLnBhdGNoKGUsYSkscy5hcHBseURhdGEoZSxhKX12YXIgdXZ0PWcoKCk9Pnt5ZCgpO2koZHZ0LCJsaW5rIil9KTtmdW5jdGlvbiBodnQocyxlLHQpe2xldCBhPXMuYWxsKGUpLHI9dD9LRmEodCk6cHZ0KGUpLG49e30sbz1bXTtpZih0eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCB1PWFbMF0sYzt1JiZ1LnR5cGU9PT0iZWxlbWVudCImJnUudGFnTmFtZT09PSJwIj9jPXU6KGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119LGEudW5zaGlmdChjKSksYy5jaGlsZHJlbi5sZW5ndGg+MCYmYy5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxjLmNoaWxkcmVuLnVuc2hpZnQoe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImlucHV0Iixwcm9wZXJ0aWVzOnt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDplLmNoZWNrZWQsZGlzYWJsZWQ6ITB9LGNoaWxkcmVuOltdfSksbi5jbGFzc05hbWU9WyJ0YXNrLWxpc3QtaXRlbSJdfWxldCBsPS0xO2Zvcig7KytsPGEubGVuZ3RoOyl7bGV0IHU9YVtsXTsocnx8bCE9PTB8fHUudHlwZSE9PSJlbGVtZW50Inx8dS50YWdOYW1lIT09InAiKSYmby5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSx1LnR5cGU9PT0iZWxlbWVudCImJnUudGFnTmFtZT09PSJwIiYmIXI/by5wdXNoKC4uLnUuY2hpbGRyZW4pOm8ucHVzaCh1KX1sZXQgcD1hW2EubGVuZ3RoLTFdO3AmJihyfHxwLnR5cGUhPT0iZWxlbWVudCJ8fHAudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7bGV0IGQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOm4sY2hpbGRyZW46b307cmV0dXJuIHMucGF0Y2goZSxkKSxzLmFwcGx5RGF0YShlLGQpfWZ1bmN0aW9uIEtGYShzKXtsZXQgZT0hMTtpZihzLnR5cGU9PT0ibGlzdCIpe2U9cy5zcHJlYWR8fCExO2xldCB0PXMuY2hpbGRyZW4sYT0tMTtmb3IoOyFlJiYrK2E8dC5sZW5ndGg7KWU9cHZ0KHRbYV0pfXJldHVybiBlfWZ1bmN0aW9uIHB2dChzKXtsZXQgZT1zLnNwcmVhZDtyZXR1cm4gZT8/cy5jaGlsZHJlbi5sZW5ndGg+MX12YXIgZnZ0PWcoKCk9PntpKGh2dCwibGlzdEl0ZW0iKTtpKEtGYSwibGlzdExvb3NlIik7aShwdnQsImxpc3RJdGVtTG9vc2UiKX0pO2Z1bmN0aW9uIG12dChzLGUpe2xldCB0PXt9LGE9cy5hbGwoZSkscj0tMTtmb3IodHlwZW9mIGUuc3RhcnQ9PSJudW1iZXIiJiZlLnN0YXJ0IT09MSYmKHQuc3RhcnQ9ZS5zdGFydCk7KytyPGEubGVuZ3RoOyl7bGV0IG89YVtyXTtpZihvLnR5cGU9PT0iZWxlbWVudCImJm8udGFnTmFtZT09PSJsaSImJm8ucHJvcGVydGllcyYmQXJyYXkuaXNBcnJheShvLnByb3BlcnRpZXMuY2xhc3NOYW1lKSYmby5wcm9wZXJ0aWVzLmNsYXNzTmFtZS5pbmNsdWRlcygidGFzay1saXN0LWl0ZW0iKSl7dC5jbGFzc05hbWU9WyJjb250YWlucy10YXNrLWxpc3QiXTticmVha319bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ZS5vcmRlcmVkPyJvbCI6InVsIixwcm9wZXJ0aWVzOnQsY2hpbGRyZW46cy53cmFwKGEsITApfTtyZXR1cm4gcy5wYXRjaChlLG4pLHMuYXBwbHlEYXRhKGUsbil9dmFyIGd2dD1nKCgpPT57aShtdnQsImxpc3QiKX0pO2Z1bmN0aW9uIGJ2dChzLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMuYWxsKGUpfTtyZXR1cm4gcy5wYXRjaChlLHQpLHMuYXBwbHlEYXRhKGUsdCl9dmFyIHZ2dD1nKCgpPT57aShidnQsInBhcmFncmFwaCIpfSk7ZnVuY3Rpb24geHZ0KHMsZSl7bGV0IHQ9e3R5cGU6InJvb3QiLGNoaWxkcmVuOnMud3JhcChzLmFsbChlKSl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgeXZ0PWcoKCk9PntpKHh2dCwicm9vdCIpfSk7ZnVuY3Rpb24gd3Z0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN0cm9uZyIscHJvcGVydGllczp7fSxjaGlsZHJlbjpzLmFsbChlKX07cmV0dXJuIHMucGF0Y2goZSx0KSxzLmFwcGx5RGF0YShlLHQpfXZhciBrdnQ9ZygoKT0+e2kod3Z0LCJzdHJvbmciKX0pO2Z1bmN0aW9uIFN2dChzLGUpe2xldCB0PXMuYWxsKGUpLGE9dC5zaGlmdCgpLHI9W107aWYoYSl7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRoZWFkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMud3JhcChbYV0sITApfTtzLnBhdGNoKGUuY2hpbGRyZW5bMF0sbyksci5wdXNoKG8pfWlmKHQubGVuZ3RoPjApe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0Ym9keSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpzLndyYXAodCwhMCl9LGw9VmllKGUuY2hpbGRyZW5bMV0pLHA9amllKGUuY2hpbGRyZW5bZS5jaGlsZHJlbi5sZW5ndGgtMV0pO2wmJnAmJihvLnBvc2l0aW9uPXtzdGFydDpsLGVuZDpwfSksci5wdXNoKG8pfWxldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0YWJsZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpzLndyYXAociwhMCl9O3JldHVybiBzLnBhdGNoKGUsbikscy5hcHBseURhdGEoZSxuKX12YXIgX3Z0PWcoKCk9PntVaWUoKTtpKFN2dCwidGFibGUiKX0pO2Z1bmN0aW9uIE12dChzLGUsdCl7bGV0IGE9dD90LmNoaWxkcmVuOnZvaWQgMCxuPShhP2EuaW5kZXhPZihlKToxKT09PTA/InRoIjoidGQiLG89dCYmdC50eXBlPT09InRhYmxlIj90LmFsaWduOnZvaWQgMCxsPW8/by5sZW5ndGg6ZS5jaGlsZHJlbi5sZW5ndGgscD0tMSxkPVtdO2Zvcig7KytwPGw7KXtsZXQgYz1lLmNoaWxkcmVuW3BdLGI9e30sdj1vP29bcF06dm9pZCAwO3YmJihiLmFsaWduPXYpO2xldCB4PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczpiLGNoaWxkcmVuOltdfTtjJiYoeC5jaGlsZHJlbj1zLmFsbChjKSxzLnBhdGNoKGMseCkseD1zLmFwcGx5RGF0YShjLHgpKSxkLnB1c2goeCl9bGV0IHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMud3JhcChkLCEwKX07cmV0dXJuIHMucGF0Y2goZSx1KSxzLmFwcGx5RGF0YShlLHUpfXZhciB6dnQ9ZygoKT0+e2koTXZ0LCJ0YWJsZVJvdyIpfSk7ZnVuY3Rpb24gQ3Z0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMuYWxsKGUpfTtyZXR1cm4gcy5wYXRjaChlLHQpLHMuYXBwbHlEYXRhKGUsdCl9dmFyIFR2dD1nKCgpPT57aShDdnQsInRhYmxlQ2VsbCIpfSk7ZnVuY3Rpb24gRHZ0KHMpe2xldCBlPVN0cmluZyhzKSx0PS9ccj9cbnxcci9nLGE9dC5leGVjKGUpLHI9MCxuPVtdO2Zvcig7YTspbi5wdXNoKCR2dChlLnNsaWNlKHIsYS5pbmRleCkscj4wLCEwKSxhWzBdKSxyPWEuaW5kZXgrYVswXS5sZW5ndGgsYT10LmV4ZWMoZSk7cmV0dXJuIG4ucHVzaCgkdnQoZS5zbGljZShyKSxyPjAsITEpKSxuLmpvaW4oIiIpfWZ1bmN0aW9uICR2dChzLGUsdCl7bGV0IGE9MCxyPXMubGVuZ3RoO2lmKGUpe2xldCBuPXMuY29kZVBvaW50QXQoYSk7Zm9yKDtuPT09OXx8bj09PTMyOylhKyssbj1zLmNvZGVQb2ludEF0KGEpfWlmKHQpe2xldCBuPXMuY29kZVBvaW50QXQoci0xKTtmb3IoO249PT05fHxuPT09MzI7KXItLSxuPXMuY29kZVBvaW50QXQoci0xKX1yZXR1cm4gcj5hP3Muc2xpY2UoYSxyKToiIn12YXIgbTRpLGc0aSxMdnQ9ZygoKT0+e200aT05LGc0aT0zMjtpKER2dCwidHJpbUxpbmVzIik7aSgkdnQsInRyaW1MaW5lIil9KTtmdW5jdGlvbiBFdnQocyxlKXtsZXQgdD17dHlwZToidGV4dCIsdmFsdWU6RHZ0KFN0cmluZyhlLnZhbHVlKSl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgUHZ0PWcoKCk9PntMdnQoKTtpKEV2dCwidGV4dCIpfSk7ZnVuY3Rpb24gSXZ0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImhyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gcy5wYXRjaChlLHQpLHMuYXBwbHlEYXRhKGUsdCl9dmFyIEF2dD1nKCgpPT57aShJdnQsInRoZW1hdGljQnJlYWsiKX0pO2Z1bmN0aW9uIEtpZSgpe312YXIgcW1lLGptZT1nKCgpPT57SGJ0KCk7amJ0KCk7VWJ0KCk7R2J0KCk7WWJ0KCk7WGJ0KCk7SmJ0KCk7dHZ0KCk7c3Z0KCk7cnZ0KCk7bnZ0KCk7Y3Z0KCk7dXZ0KCk7ZnZ0KCk7Z3Z0KCk7dnZ0KCk7eXZ0KCk7a3Z0KCk7X3Z0KCk7enZ0KCk7VHZ0KCk7UHZ0KCk7QXZ0KCk7cW1lPXtibG9ja3F1b3RlOkJidCxicmVhazpxYnQsY29kZTpWYnQsZGVsZXRlOldidCxlbXBoYXNpczpLYnQsZm9vdG5vdGVSZWZlcmVuY2U6WmJ0LGhlYWRpbmc6UWJ0LGh0bWw6ZXZ0LGltYWdlUmVmZXJlbmNlOmF2dCxpbWFnZTppdnQsaW5saW5lQ29kZTpvdnQsbGlua1JlZmVyZW5jZTpsdnQsbGluazpkdnQsbGlzdEl0ZW06aHZ0LGxpc3Q6bXZ0LHBhcmFncmFwaDpidnQscm9vdDp4dnQsc3Ryb25nOnd2dCx0YWJsZTpTdnQsdGFibGVDZWxsOkN2dCx0YWJsZVJvdzpNdnQsdGV4dDpFdnQsdGhlbWF0aWNCcmVhazpJdnQsdG9tbDpLaWUseWFtbDpLaWUsZGVmaW5pdGlvbjpLaWUsZm9vdG5vdGVEZWZpbml0aW9uOktpZX07aShLaWUsImlnbm9yZSIpfSk7ZnVuY3Rpb24gTnZ0KHMsZSl7bGV0IHQ9W3t0eXBlOiJ0ZXh0Iix2YWx1ZToiXHUyMUE5In1dO3JldHVybiBlPjEmJnQucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKGUpfV19KSx0fWZ1bmN0aW9uIFJ2dChzLGUpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhzKzEpKyhlPjE/Ii0iK2U6IiIpfWZ1bmN0aW9uIE92dChzKXtsZXQgZT10eXBlb2Ygcy5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP3Mub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIix0PXMub3B0aW9ucy5mb290bm90ZUJhY2tDb250ZW50fHxOdnQsYT1zLm9wdGlvbnMuZm9vdG5vdGVCYWNrTGFiZWx8fFJ2dCxyPXMub3B0aW9ucy5mb290bm90ZUxhYmVsfHwiRm9vdG5vdGVzIixuPXMub3B0aW9ucy5mb290bm90ZUxhYmVsVGFnTmFtZXx8ImgyIixvPXMub3B0aW9ucy5mb290bm90ZUxhYmVsUHJvcGVydGllc3x8e2NsYXNzTmFtZTpbInNyLW9ubHkiXX0sbD1bXSxwPS0xO2Zvcig7KytwPHMuZm9vdG5vdGVPcmRlci5sZW5ndGg7KXtsZXQgZD1zLmZvb3Rub3RlQnlJZC5nZXQocy5mb290bm90ZU9yZGVyW3BdKTtpZighZCljb250aW51ZTtsZXQgdT1zLmFsbChkKSxjPVN0cmluZyhkLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksYj1WbChjLnRvTG93ZXJDYXNlKCkpLHY9MCx4PVtdLG09cy5mb290bm90ZUNvdW50cy5nZXQoYyk7Zm9yKDttIT09dm9pZCAwJiYrK3Y8PW07KXt4Lmxlbmd0aD4wJiZ4LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pO2xldCBNPXR5cGVvZiB0PT0ic3RyaW5nIj90OnQocCx2KTt0eXBlb2YgTT09InN0cmluZyImJihNPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpNfSkseC5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIitlKyJmbnJlZi0iK2IrKHY+MT8iLSIrdjoiIiksZGF0YUZvb3Rub3RlQmFja3JlZjoiIixhcmlhTGFiZWw6dHlwZW9mIGE9PSJzdHJpbmciP2E6YShwLHYpLGNsYXNzTmFtZTpbImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdfSxjaGlsZHJlbjpBcnJheS5pc0FycmF5KE0pP006W01dfSl9bGV0IGY9dVt1Lmxlbmd0aC0xXTtpZihmJiZmLnR5cGU9PT0iZWxlbWVudCImJmYudGFnTmFtZT09PSJwIil7bGV0IE09Zi5jaGlsZHJlbltmLmNoaWxkcmVuLmxlbmd0aC0xXTtNJiZNLnR5cGU9PT0idGV4dCI/TS52YWx1ZSs9IiAiOmYuY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksZi5jaGlsZHJlbi5wdXNoKC4uLngpfWVsc2UgdS5wdXNoKC4uLngpO2xldCB5PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczp7aWQ6ZSsiZm4tIitifSxjaGlsZHJlbjpzLndyYXAodSwhMCl9O3MucGF0Y2goZCx5KSxsLnB1c2goeSl9aWYobC5sZW5ndGghPT0wKXJldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzZWN0aW9uIixwcm9wZXJ0aWVzOntkYXRhRm9vdG5vdGVzOiEwLGNsYXNzTmFtZTpbImZvb3Rub3RlcyJdfSxjaGlsZHJlbjpbe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6bixwcm9wZXJ0aWVzOnsuLi5KcChvKSxpZDoiZm9vdG5vdGUtbGFiZWwifSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnJ9XX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH0se3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6Im9sIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMud3JhcChsLCEwKX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfX12YXIgVm1lPWcoKCk9PntxaWUoKTt5ZCgpO2koTnZ0LCJkZWZhdWx0Rm9vdG5vdGVCYWNrQ29udGVudCIpO2koUnZ0LCJkZWZhdWx0Rm9vdG5vdGVCYWNrTGFiZWwiKTtpKE92dCwiZm9vdGVyIil9KTtmdW5jdGlvbiBCdnQocyxlKXtsZXQgdD1lfHxZRmEsYT1uZXcgTWFwLHI9bmV3IE1hcCxuPW5ldyBNYXAsbz17Li4ucW1lLC4uLnQuaGFuZGxlcnN9LGw9e2FsbDpkLGFwcGx5RGF0YTpYRmEsZGVmaW5pdGlvbkJ5SWQ6YSxmb290bm90ZUJ5SWQ6cixmb290bm90ZUNvdW50czpuLGZvb3Rub3RlT3JkZXI6W10saGFuZGxlcnM6byxvbmU6cCxvcHRpb25zOnQscGF0Y2g6WkZhLHdyYXA6SkZhfTtyZXR1cm4gY2socyxmdW5jdGlvbih1KXtpZih1LnR5cGU9PT0iZGVmaW5pdGlvbiJ8fHUudHlwZT09PSJmb290bm90ZURlZmluaXRpb24iKXtsZXQgYz11LnR5cGU9PT0iZGVmaW5pdGlvbiI/YTpyLGI9U3RyaW5nKHUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKTtjLmhhcyhiKXx8Yy5zZXQoYix1KX19KSxsO2Z1bmN0aW9uIHAodSxjKXtsZXQgYj11LnR5cGUsdj1sLmhhbmRsZXJzW2JdO2lmKFVtZS5jYWxsKGwuaGFuZGxlcnMsYikmJnYpcmV0dXJuIHYobCx1LGMpO2lmKGwub3B0aW9ucy5wYXNzVGhyb3VnaCYmbC5vcHRpb25zLnBhc3NUaHJvdWdoLmluY2x1ZGVzKGIpKXtpZigiY2hpbGRyZW4iaW4gdSl7bGV0e2NoaWxkcmVuOm0sLi4uZn09dSx5PUpwKGYpO3JldHVybiB5LmNoaWxkcmVuPWwuYWxsKHUpLHl9cmV0dXJuIEpwKHUpfXJldHVybihsLm9wdGlvbnMudW5rbm93bkhhbmRsZXJ8fFFGYSkobCx1LGMpfWkocCwib25lIik7ZnVuY3Rpb24gZCh1KXtsZXQgYz1bXTtpZigiY2hpbGRyZW4iaW4gdSl7bGV0IGI9dS5jaGlsZHJlbix2PS0xO2Zvcig7Kyt2PGIubGVuZ3RoOyl7bGV0IHg9bC5vbmUoYlt2XSx1KTtpZih4KXtpZih2JiZiW3YtMV0udHlwZT09PSJicmVhayImJighQXJyYXkuaXNBcnJheSh4KSYmeC50eXBlPT09InRleHQiJiYoeC52YWx1ZT1GdnQoeC52YWx1ZSkpLCFBcnJheS5pc0FycmF5KHgpJiZ4LnR5cGU9PT0iZWxlbWVudCIpKXtsZXQgbT14LmNoaWxkcmVuWzBdO20mJm0udHlwZT09PSJ0ZXh0IiYmKG0udmFsdWU9RnZ0KG0udmFsdWUpKX1BcnJheS5pc0FycmF5KHgpP2MucHVzaCguLi54KTpjLnB1c2goeCl9fX1yZXR1cm4gY31pKGQsImFsbCIpfWZ1bmN0aW9uIFpGYShzLGUpe3MucG9zaXRpb24mJihlLnBvc2l0aW9uPV9rKHMpKX1mdW5jdGlvbiBYRmEocyxlKXtsZXQgdD1lO2lmKHMmJnMuZGF0YSl7bGV0IGE9cy5kYXRhLmhOYW1lLHI9cy5kYXRhLmhDaGlsZHJlbixuPXMuZGF0YS5oUHJvcGVydGllcztpZih0eXBlb2YgYT09InN0cmluZyIpaWYodC50eXBlPT09ImVsZW1lbnQiKXQudGFnTmFtZT1hO2Vsc2V7bGV0IG89ImNoaWxkcmVuImluIHQ/dC5jaGlsZHJlbjpbdF07dD17dHlwZToiZWxlbWVudCIsdGFnTmFtZTphLHByb3BlcnRpZXM6e30sY2hpbGRyZW46b319dC50eXBlPT09ImVsZW1lbnQiJiZuJiZPYmplY3QuYXNzaWduKHQucHJvcGVydGllcyxKcChuKSksImNoaWxkcmVuImluIHQmJnQuY2hpbGRyZW4mJnIhPT1udWxsJiZyIT09dm9pZCAwJiYodC5jaGlsZHJlbj1yKX1yZXR1cm4gdH1mdW5jdGlvbiBRRmEocyxlKXtsZXQgdD1lLmRhdGF8fHt9LGE9InZhbHVlImluIGUmJiEoVW1lLmNhbGwodCwiaFByb3BlcnRpZXMiKXx8VW1lLmNhbGwodCwiaENoaWxkcmVuIikpP3t0eXBlOiJ0ZXh0Iix2YWx1ZTplLnZhbHVlfTp7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMuYWxsKGUpfTtyZXR1cm4gcy5wYXRjaChlLGEpLHMuYXBwbHlEYXRhKGUsYSl9ZnVuY3Rpb24gSkZhKHMsZSl7bGV0IHQ9W10sYT0tMTtmb3IoZSYmdC5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KTsrK2E8cy5sZW5ndGg7KWEmJnQucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksdC5wdXNoKHNbYV0pO3JldHVybiBlJiZzLmxlbmd0aD4wJiZ0LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHR9ZnVuY3Rpb24gRnZ0KHMpe2xldCBlPTAsdD1zLmNoYXJDb2RlQXQoZSk7Zm9yKDt0PT09OXx8dD09PTMyOyllKyssdD1zLmNoYXJDb2RlQXQoZSk7cmV0dXJuIHMuc2xpY2UoZSl9dmFyIFVtZSxZRmEsSHZ0PWcoKCk9PntxaWUoKTtnZmUoKTtVaWUoKTtqbWUoKTtVbWU9e30uaGFzT3duUHJvcGVydHksWUZhPXt9O2koQnZ0LCJjcmVhdGVTdGF0ZSIpO2koWkZhLCJwYXRjaCIpO2koWEZhLCJhcHBseURhdGEiKTtpKFFGYSwiZGVmYXVsdFVua25vd25IYW5kbGVyIik7aShKRmEsIndyYXAiKTtpKEZ2dCwidHJpbU1hcmtkb3duU3BhY2VTdGFydCIpfSk7ZnVuY3Rpb24gV21lKHMsZSl7bGV0IHQ9QnZ0KHMsZSksYT10Lm9uZShzLHZvaWQgMCkscj1PdnQodCksbj1BcnJheS5pc0FycmF5KGEpP3t0eXBlOiJyb290IixjaGlsZHJlbjphfTphfHx7dHlwZToicm9vdCIsY2hpbGRyZW46W119O3JldHVybiByJiYoImNoaWxkcmVuImluIG4sbi5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LHIpKSxufXZhciBxdnQ9ZygoKT0+e1dwKCk7Vm1lKCk7SHZ0KCk7aShXbWUsInRvSGFzdCIpfSk7dmFyIGp2dD1nKCgpPT57am1lKCk7cXZ0KCk7Vm1lKCl9KTt2YXIgVnZ0LFV2dD1nKCgpPT57VnZ0PVsiYXJlYSIsImJhc2UiLCJiYXNlZm9udCIsImJnc291bmQiLCJiciIsImNvbCIsImNvbW1hbmQiLCJlbWJlZCIsImZyYW1lIiwiaHIiLCJpbWFnZSIsImltZyIsImlucHV0Iiwia2V5Z2VuIiwibGluayIsIm1ldGEiLCJwYXJhbSIsInNvdXJjZSIsInRyYWNrIiwid2JyIl19KTt2YXIgUDAsR21lPWcoKCk9PntQMD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTY2hlbWEiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5ub3JtYWw9dCx0aGlzLnByb3BlcnR5PWUsYSYmKHRoaXMuc3BhY2U9YSl9fTtQMC5wcm90b3R5cGUubm9ybWFsPXt9LFAwLnByb3RvdHlwZS5wcm9wZXJ0eT17fSxQMC5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7ZnVuY3Rpb24gS21lKHMsZSl7bGV0IHQ9e30sYT17fTtmb3IobGV0IHIgb2YgcylPYmplY3QuYXNzaWduKHQsci5wcm9wZXJ0eSksT2JqZWN0LmFzc2lnbihhLHIubm9ybWFsKTtyZXR1cm4gbmV3IFAwKHQsYSxlKX12YXIgV3Z0PWcoKCk9PntHbWUoKTtpKEttZSwibWVyZ2UiKX0pO2Z1bmN0aW9uIG5iKHMpe3JldHVybiBzLnRvTG93ZXJDYXNlKCl9dmFyIFlpZT1nKCgpPT57aShuYiwibm9ybWFsaXplIil9KTt2YXIgdW8sWW1lPWcoKCk9Pnt1bz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbmZvIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmF0dHJpYnV0ZT10LHRoaXMucHJvcGVydHk9ZX19O3VvLnByb3RvdHlwZS5hdHRyaWJ1dGU9IiIsdW8ucHJvdG90eXBlLmJvb2xlYW5pc2g9ITEsdW8ucHJvdG90eXBlLmJvb2xlYW49ITEsdW8ucHJvdG90eXBlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZD0hMSx1by5wcm90b3R5cGUuY29tbWFTZXBhcmF0ZWQ9ITEsdW8ucHJvdG90eXBlLmRlZmluZWQ9ITEsdW8ucHJvdG90eXBlLm11c3RVc2VQcm9wZXJ0eT0hMSx1by5wcm90b3R5cGUubnVtYmVyPSExLHVvLnByb3RvdHlwZS5vdmVybG9hZGVkQm9vbGVhbj0hMSx1by5wcm90b3R5cGUucHJvcGVydHk9IiIsdW8ucHJvdG90eXBlLnNwYWNlU2VwYXJhdGVkPSExLHVvLnByb3RvdHlwZS5zcGFjZT12b2lkIDB9KTt2YXIgems9e307eXQoemsse2Jvb2xlYW46KCk9PnBhLGJvb2xlYW5pc2g6KCk9PnFpLGNvbW1hT3JTcGFjZVNlcGFyYXRlZDooKT0+U2wsY29tbWFTZXBhcmF0ZWQ6KCk9PnRoLG51bWJlcjooKT0+bnQsb3ZlcmxvYWRlZEJvb2xlYW46KCk9PlppZSxzcGFjZVNlcGFyYXRlZDooKT0+QnN9KTtmdW5jdGlvbiBBMygpe3JldHVybiAyKiorK2VCYX12YXIgZUJhLHBhLHFpLFppZSxudCxCcyx0aCxTbCxDaz1nKCgpPT57ZUJhPTAscGE9QTMoKSxxaT1BMygpLFppZT1BMygpLG50PUEzKCksQnM9QTMoKSx0aD1BMygpLFNsPUEzKCk7aShBMywiaW5jcmVtZW50Iil9KTtmdW5jdGlvbiBHdnQocyxlLHQpe3QmJihzW2VdPXQpfXZhciBabWUsTjMsWG1lPWcoKCk9PntZbWUoKTtDaygpO1ptZT1PYmplY3Qua2V5cyh6ayksTjM9Y2xhc3MgZXh0ZW5kcyB1b3tzdGF0aWN7aSh0aGlzLCJEZWZpbmVkSW5mbyIpfWNvbnN0cnVjdG9yKGUsdCxhLHIpe2xldCBuPS0xO2lmKHN1cGVyKGUsdCksR3Z0KHRoaXMsInNwYWNlIixyKSx0eXBlb2YgYT09Im51bWJlciIpZm9yKDsrK248Wm1lLmxlbmd0aDspe2xldCBvPVptZVtuXTtHdnQodGhpcyxabWVbbl0sKGEmemtbb10pPT09emtbb10pfX19O04zLnByb3RvdHlwZS5kZWZpbmVkPSEwO2koR3Z0LCJtYXJrIil9KTtmdW5jdGlvbiBFYyhzKXtsZXQgZT17fSx0PXt9O2ZvcihsZXRbYSxyXW9mIE9iamVjdC5lbnRyaWVzKHMucHJvcGVydGllcykpe2xldCBuPW5ldyBOMyhhLHMudHJhbnNmb3JtKHMuYXR0cmlidXRlc3x8e30sYSkscixzLnNwYWNlKTtzLm11c3RVc2VQcm9wZXJ0eSYmcy5tdXN0VXNlUHJvcGVydHkuaW5jbHVkZXMoYSkmJihuLm11c3RVc2VQcm9wZXJ0eT0hMCksZVthXT1uLHRbbmIoYSldPWEsdFtuYihuLmF0dHJpYnV0ZSldPWF9cmV0dXJuIG5ldyBQMChlLHQscy5zcGFjZSl9dmFyIFIzPWcoKCk9PntZaWUoKTtYbWUoKTtHbWUoKTtpKEVjLCJjcmVhdGUiKX0pO3ZhciBRbWUsS3Z0PWcoKCk9PntSMygpO0NrKCk7UW1lPUVjKHtwcm9wZXJ0aWVzOnthcmlhQWN0aXZlRGVzY2VuZGFudDpudWxsLGFyaWFBdG9taWM6cWksYXJpYUF1dG9Db21wbGV0ZTpudWxsLGFyaWFCdXN5OnFpLGFyaWFDaGVja2VkOnFpLGFyaWFDb2xDb3VudDpudCxhcmlhQ29sSW5kZXg6bnQsYXJpYUNvbFNwYW46bnQsYXJpYUNvbnRyb2xzOkJzLGFyaWFDdXJyZW50Om51bGwsYXJpYURlc2NyaWJlZEJ5OkJzLGFyaWFEZXRhaWxzOm51bGwsYXJpYURpc2FibGVkOnFpLGFyaWFEcm9wRWZmZWN0OkJzLGFyaWFFcnJvck1lc3NhZ2U6bnVsbCxhcmlhRXhwYW5kZWQ6cWksYXJpYUZsb3dUbzpCcyxhcmlhR3JhYmJlZDpxaSxhcmlhSGFzUG9wdXA6bnVsbCxhcmlhSGlkZGVuOnFpLGFyaWFJbnZhbGlkOm51bGwsYXJpYUtleVNob3J0Y3V0czpudWxsLGFyaWFMYWJlbDpudWxsLGFyaWFMYWJlbGxlZEJ5OkJzLGFyaWFMZXZlbDpudCxhcmlhTGl2ZTpudWxsLGFyaWFNb2RhbDpxaSxhcmlhTXVsdGlMaW5lOnFpLGFyaWFNdWx0aVNlbGVjdGFibGU6cWksYXJpYU9yaWVudGF0aW9uOm51bGwsYXJpYU93bnM6QnMsYXJpYVBsYWNlaG9sZGVyOm51bGwsYXJpYVBvc0luU2V0Om50LGFyaWFQcmVzc2VkOnFpLGFyaWFSZWFkT25seTpxaSxhcmlhUmVsZXZhbnQ6bnVsbCxhcmlhUmVxdWlyZWQ6cWksYXJpYVJvbGVEZXNjcmlwdGlvbjpCcyxhcmlhUm93Q291bnQ6bnQsYXJpYVJvd0luZGV4Om50LGFyaWFSb3dTcGFuOm50LGFyaWFTZWxlY3RlZDpxaSxhcmlhU2V0U2l6ZTpudCxhcmlhU29ydDpudWxsLGFyaWFWYWx1ZU1heDpudCxhcmlhVmFsdWVNaW46bnQsYXJpYVZhbHVlTm93Om50LGFyaWFWYWx1ZVRleHQ6bnVsbCxyb2xlOm51bGx9LHRyYW5zZm9ybShzLGUpe3JldHVybiBlPT09InJvbGUiP2U6ImFyaWEtIitlLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCl9fSl9KTtmdW5jdGlvbiBYaWUocyxlKXtyZXR1cm4gZSBpbiBzP3NbZV06ZX12YXIgSm1lPWcoKCk9PntpKFhpZSwiY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybSIpfSk7ZnVuY3Rpb24gUWllKHMsZSl7cmV0dXJuIFhpZShzLGUudG9Mb3dlckNhc2UoKSl9dmFyIGU2ZT1nKCgpPT57Sm1lKCk7aShRaWUsImNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSIpfSk7dmFyIFl2dCxadnQ9ZygoKT0+e2U2ZSgpO1IzKCk7Q2soKTtZdnQ9RWMoe2F0dHJpYnV0ZXM6e2FjY2VwdGNoYXJzZXQ6ImFjY2VwdC1jaGFyc2V0IixjbGFzc25hbWU6ImNsYXNzIixodG1sZm9yOiJmb3IiLGh0dHBlcXVpdjoiaHR0cC1lcXVpdiJ9LG11c3RVc2VQcm9wZXJ0eTpbImNoZWNrZWQiLCJtdWx0aXBsZSIsIm11dGVkIiwic2VsZWN0ZWQiXSxwcm9wZXJ0aWVzOnthYmJyOm51bGwsYWNjZXB0OnRoLGFjY2VwdENoYXJzZXQ6QnMsYWNjZXNzS2V5OkJzLGFjdGlvbjpudWxsLGFsbG93Om51bGwsYWxsb3dGdWxsU2NyZWVuOnBhLGFsbG93UGF5bWVudFJlcXVlc3Q6cGEsYWxsb3dVc2VyTWVkaWE6cGEsYWx0Om51bGwsYXM6bnVsbCxhc3luYzpwYSxhdXRvQ2FwaXRhbGl6ZTpudWxsLGF1dG9Db21wbGV0ZTpCcyxhdXRvRm9jdXM6cGEsYXV0b1BsYXk6cGEsYmxvY2tpbmc6QnMsY2FwdHVyZTpudWxsLGNoYXJTZXQ6bnVsbCxjaGVja2VkOnBhLGNpdGU6bnVsbCxjbGFzc05hbWU6QnMsY29sczpudCxjb2xTcGFuOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRFZGl0YWJsZTpxaSxjb250cm9sczpwYSxjb250cm9sc0xpc3Q6QnMsY29vcmRzOm50fHRoLGNyb3NzT3JpZ2luOm51bGwsZGF0YTpudWxsLGRhdGVUaW1lOm51bGwsZGVjb2Rpbmc6bnVsbCxkZWZhdWx0OnBhLGRlZmVyOnBhLGRpcjpudWxsLGRpck5hbWU6bnVsbCxkaXNhYmxlZDpwYSxkb3dubG9hZDpaaWUsZHJhZ2dhYmxlOnFpLGVuY1R5cGU6bnVsbCxlbnRlcktleUhpbnQ6bnVsbCxmZXRjaFByaW9yaXR5Om51bGwsZm9ybTpudWxsLGZvcm1BY3Rpb246bnVsbCxmb3JtRW5jVHlwZTpudWxsLGZvcm1NZXRob2Q6bnVsbCxmb3JtTm9WYWxpZGF0ZTpwYSxmb3JtVGFyZ2V0Om51bGwsaGVhZGVyczpCcyxoZWlnaHQ6bnQsaGlkZGVuOlppZSxoaWdoOm50LGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGh0bWxGb3I6QnMsaHR0cEVxdWl2OkJzLGlkOm51bGwsaW1hZ2VTaXplczpudWxsLGltYWdlU3JjU2V0Om51bGwsaW5lcnQ6cGEsaW5wdXRNb2RlOm51bGwsaW50ZWdyaXR5Om51bGwsaXM6bnVsbCxpc01hcDpwYSxpdGVtSWQ6bnVsbCxpdGVtUHJvcDpCcyxpdGVtUmVmOkJzLGl0ZW1TY29wZTpwYSxpdGVtVHlwZTpCcyxraW5kOm51bGwsbGFiZWw6bnVsbCxsYW5nOm51bGwsbGFuZ3VhZ2U6bnVsbCxsaXN0Om51bGwsbG9hZGluZzpudWxsLGxvb3A6cGEsbG93Om50LG1hbmlmZXN0Om51bGwsbWF4Om51bGwsbWF4TGVuZ3RoOm50LG1lZGlhOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbWluTGVuZ3RoOm50LG11bHRpcGxlOnBhLG11dGVkOnBhLG5hbWU6bnVsbCxub25jZTpudWxsLG5vTW9kdWxlOnBhLG5vVmFsaWRhdGU6cGEsb25BYm9ydDpudWxsLG9uQWZ0ZXJQcmludDpudWxsLG9uQXV4Q2xpY2s6bnVsbCxvbkJlZm9yZU1hdGNoOm51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVmb3JlVG9nZ2xlOm51bGwsb25CZWZvcmVVbmxvYWQ6bnVsbCxvbkJsdXI6bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db250ZXh0TG9zdDpudWxsLG9uQ29udGV4dE1lbnU6bnVsbCxvbkNvbnRleHRSZXN0b3JlZDpudWxsLG9uQ29weTpudWxsLG9uQ3VlQ2hhbmdlOm51bGwsb25DdXQ6bnVsbCxvbkRibENsaWNrOm51bGwsb25EcmFnOm51bGwsb25EcmFnRW5kOm51bGwsb25EcmFnRW50ZXI6bnVsbCxvbkRyYWdFeGl0Om51bGwsb25EcmFnTGVhdmU6bnVsbCxvbkRyYWdPdmVyOm51bGwsb25EcmFnU3RhcnQ6bnVsbCxvbkRyb3A6bnVsbCxvbkR1cmF0aW9uQ2hhbmdlOm51bGwsb25FbXB0aWVkOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb3JtRGF0YTpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTGFuZ3VhZ2VDaGFuZ2U6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkRW5kOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1lc3NhZ2VFcnJvcjpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVqZWN0aW9uSGFuZGxlZDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TY3JvbGxFbmQ6bnVsbCxvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2xvdENoYW5nZTpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVuaGFuZGxlZFJlamVjdGlvbjpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvbldoZWVsOm51bGwsb3BlbjpwYSxvcHRpbXVtOm50LHBhdHRlcm46bnVsbCxwaW5nOkJzLHBsYWNlaG9sZGVyOm51bGwscGxheXNJbmxpbmU6cGEscG9wb3ZlcjpudWxsLHBvcG92ZXJUYXJnZXQ6bnVsbCxwb3BvdmVyVGFyZ2V0QWN0aW9uOm51bGwscG9zdGVyOm51bGwscHJlbG9hZDpudWxsLHJlYWRPbmx5OnBhLHJlZmVycmVyUG9saWN5Om51bGwscmVsOkJzLHJlcXVpcmVkOnBhLHJldmVyc2VkOnBhLHJvd3M6bnQscm93U3BhbjpudCxzYW5kYm94OkJzLHNjb3BlOm51bGwsc2NvcGVkOnBhLHNlYW1sZXNzOnBhLHNlbGVjdGVkOnBhLHNoYWRvd1Jvb3RDbG9uYWJsZTpwYSxzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6cGEsc2hhZG93Um9vdE1vZGU6bnVsbCxzaGFwZTpudWxsLHNpemU6bnQsc2l6ZXM6bnVsbCxzbG90Om51bGwsc3BhbjpudCxzcGVsbENoZWNrOnFpLHNyYzpudWxsLHNyY0RvYzpudWxsLHNyY0xhbmc6bnVsbCxzcmNTZXQ6bnVsbCxzdGFydDpudCxzdGVwOm51bGwsc3R5bGU6bnVsbCx0YWJJbmRleDpudCx0YXJnZXQ6bnVsbCx0aXRsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHR5cGU6bnVsbCx0eXBlTXVzdE1hdGNoOnBhLHVzZU1hcDpudWxsLHZhbHVlOnFpLHdpZHRoOm50LHdyYXA6bnVsbCx3cml0aW5nU3VnZ2VzdGlvbnM6bnVsbCxhbGlnbjpudWxsLGFMaW5rOm51bGwsYXJjaGl2ZTpCcyxheGlzOm51bGwsYmFja2dyb3VuZDpudWxsLGJnQ29sb3I6bnVsbCxib3JkZXI6bnQsYm9yZGVyQ29sb3I6bnVsbCxib3R0b21NYXJnaW46bnQsY2VsbFBhZGRpbmc6bnVsbCxjZWxsU3BhY2luZzpudWxsLGNoYXI6bnVsbCxjaGFyT2ZmOm51bGwsY2xhc3NJZDpudWxsLGNsZWFyOm51bGwsY29kZTpudWxsLGNvZGVCYXNlOm51bGwsY29kZVR5cGU6bnVsbCxjb2xvcjpudWxsLGNvbXBhY3Q6cGEsZGVjbGFyZTpwYSxldmVudDpudWxsLGZhY2U6bnVsbCxmcmFtZTpudWxsLGZyYW1lQm9yZGVyOm51bGwsaFNwYWNlOm50LGxlZnRNYXJnaW46bnQsbGluazpudWxsLGxvbmdEZXNjOm51bGwsbG93U3JjOm51bGwsbWFyZ2luSGVpZ2h0Om50LG1hcmdpbldpZHRoOm50LG5vUmVzaXplOnBhLG5vSHJlZjpwYSxub1NoYWRlOnBhLG5vV3JhcDpwYSxvYmplY3Q6bnVsbCxwcm9maWxlOm51bGwscHJvbXB0Om51bGwscmV2Om51bGwscmlnaHRNYXJnaW46bnQscnVsZXM6bnVsbCxzY2hlbWU6bnVsbCxzY3JvbGxpbmc6cWksc3RhbmRieTpudWxsLHN1bW1hcnk6bnVsbCx0ZXh0Om51bGwsdG9wTWFyZ2luOm50LHZhbHVlVHlwZTpudWxsLHZlcnNpb246bnVsbCx2QWxpZ246bnVsbCx2TGluazpudWxsLHZTcGFjZTpudCxhbGxvd1RyYW5zcGFyZW5jeTpudWxsLGF1dG9Db3JyZWN0Om51bGwsYXV0b1NhdmU6bnVsbCxkaXNhYmxlUGljdHVyZUluUGljdHVyZTpwYSxkaXNhYmxlUmVtb3RlUGxheWJhY2s6cGEscHJlZml4Om51bGwscHJvcGVydHk6bnVsbCxyZXN1bHRzOm50LHNlY3VyaXR5Om51bGwsdW5zZWxlY3RhYmxlOm51bGx9LHNwYWNlOiJodG1sIix0cmFuc2Zvcm06UWllfSl9KTt2YXIgWHZ0LFF2dD1nKCgpPT57Sm1lKCk7UjMoKTtDaygpO1h2dD1FYyh7YXR0cmlidXRlczp7YWNjZW50SGVpZ2h0OiJhY2NlbnQtaGVpZ2h0IixhbGlnbm1lbnRCYXNlbGluZToiYWxpZ25tZW50LWJhc2VsaW5lIixhcmFiaWNGb3JtOiJhcmFiaWMtZm9ybSIsYmFzZWxpbmVTaGlmdDoiYmFzZWxpbmUtc2hpZnQiLGNhcEhlaWdodDoiY2FwLWhlaWdodCIsY2xhc3NOYW1lOiJjbGFzcyIsY2xpcFBhdGg6ImNsaXAtcGF0aCIsY2xpcFJ1bGU6ImNsaXAtcnVsZSIsY29sb3JJbnRlcnBvbGF0aW9uOiJjb2xvci1pbnRlcnBvbGF0aW9uIixjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLGNvbG9yUHJvZmlsZToiY29sb3ItcHJvZmlsZSIsY29sb3JSZW5kZXJpbmc6ImNvbG9yLXJlbmRlcmluZyIsY3Jvc3NPcmlnaW46ImNyb3Nzb3JpZ2luIixkYXRhVHlwZToiZGF0YXR5cGUiLGRvbWluYW50QmFzZWxpbmU6ImRvbWluYW50LWJhc2VsaW5lIixlbmFibGVCYWNrZ3JvdW5kOiJlbmFibGUtYmFja2dyb3VuZCIsZmlsbE9wYWNpdHk6ImZpbGwtb3BhY2l0eSIsZmlsbFJ1bGU6ImZpbGwtcnVsZSIsZmxvb2RDb2xvcjoiZmxvb2QtY29sb3IiLGZsb29kT3BhY2l0eToiZmxvb2Qtb3BhY2l0eSIsZm9udEZhbWlseToiZm9udC1mYW1pbHkiLGZvbnRTaXplOiJmb250LXNpemUiLGZvbnRTaXplQWRqdXN0OiJmb250LXNpemUtYWRqdXN0Iixmb250U3RyZXRjaDoiZm9udC1zdHJldGNoIixmb250U3R5bGU6ImZvbnQtc3R5bGUiLGZvbnRWYXJpYW50OiJmb250LXZhcmlhbnQiLGZvbnRXZWlnaHQ6ImZvbnQtd2VpZ2h0IixnbHlwaE5hbWU6ImdseXBoLW5hbWUiLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIixnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIixocmVmTGFuZzoiaHJlZmxhbmciLGhvcml6QWR2WDoiaG9yaXotYWR2LXgiLGhvcml6T3JpZ2luWDoiaG9yaXotb3JpZ2luLXgiLGhvcml6T3JpZ2luWToiaG9yaXotb3JpZ2luLXkiLGltYWdlUmVuZGVyaW5nOiJpbWFnZS1yZW5kZXJpbmciLGxldHRlclNwYWNpbmc6ImxldHRlci1zcGFjaW5nIixsaWdodGluZ0NvbG9yOiJsaWdodGluZy1jb2xvciIsbWFya2VyRW5kOiJtYXJrZXItZW5kIixtYXJrZXJNaWQ6Im1hcmtlci1taWQiLG1hcmtlclN0YXJ0OiJtYXJrZXItc3RhcnQiLG5hdkRvd246Im5hdi1kb3duIixuYXZEb3duTGVmdDoibmF2LWRvd24tbGVmdCIsbmF2RG93blJpZ2h0OiJuYXYtZG93bi1yaWdodCIsbmF2TGVmdDoibmF2LWxlZnQiLG5hdk5leHQ6Im5hdi1uZXh0IixuYXZQcmV2OiJuYXYtcHJldiIsbmF2UmlnaHQ6Im5hdi1yaWdodCIsbmF2VXA6Im5hdi11cCIsbmF2VXBMZWZ0OiJuYXYtdXAtbGVmdCIsbmF2VXBSaWdodDoibmF2LXVwLXJpZ2h0IixvbkFib3J0OiJvbmFib3J0IixvbkFjdGl2YXRlOiJvbmFjdGl2YXRlIixvbkFmdGVyUHJpbnQ6Im9uYWZ0ZXJwcmludCIsb25CZWZvcmVQcmludDoib25iZWZvcmVwcmludCIsb25CZWdpbjoib25iZWdpbiIsb25DYW5jZWw6Im9uY2FuY2VsIixvbkNhblBsYXk6Im9uY2FucGxheSIsb25DYW5QbGF5VGhyb3VnaDoib25jYW5wbGF5dGhyb3VnaCIsb25DaGFuZ2U6Im9uY2hhbmdlIixvbkNsaWNrOiJvbmNsaWNrIixvbkNsb3NlOiJvbmNsb3NlIixvbkNvcHk6Im9uY29weSIsb25DdWVDaGFuZ2U6Im9uY3VlY2hhbmdlIixvbkN1dDoib25jdXQiLG9uRGJsQ2xpY2s6Im9uZGJsY2xpY2siLG9uRHJhZzoib25kcmFnIixvbkRyYWdFbmQ6Im9uZHJhZ2VuZCIsb25EcmFnRW50ZXI6Im9uZHJhZ2VudGVyIixvbkRyYWdFeGl0OiJvbmRyYWdleGl0IixvbkRyYWdMZWF2ZToib25kcmFnbGVhdmUiLG9uRHJhZ092ZXI6Im9uZHJhZ292ZXIiLG9uRHJhZ1N0YXJ0OiJvbmRyYWdzdGFydCIsb25Ecm9wOiJvbmRyb3AiLG9uRHVyYXRpb25DaGFuZ2U6Im9uZHVyYXRpb25jaGFuZ2UiLG9uRW1wdGllZDoib25lbXB0aWVkIixvbkVuZDoib25lbmQiLG9uRW5kZWQ6Im9uZW5kZWQiLG9uRXJyb3I6Im9uZXJyb3IiLG9uRm9jdXM6Im9uZm9jdXMiLG9uRm9jdXNJbjoib25mb2N1c2luIixvbkZvY3VzT3V0OiJvbmZvY3Vzb3V0Iixvbkhhc2hDaGFuZ2U6Im9uaGFzaGNoYW5nZSIsb25JbnB1dDoib25pbnB1dCIsb25JbnZhbGlkOiJvbmludmFsaWQiLG9uS2V5RG93bjoib25rZXlkb3duIixvbktleVByZXNzOiJvbmtleXByZXNzIixvbktleVVwOiJvbmtleXVwIixvbkxvYWQ6Im9ubG9hZCIsb25Mb2FkZWREYXRhOiJvbmxvYWRlZGRhdGEiLG9uTG9hZGVkTWV0YWRhdGE6Im9ubG9hZGVkbWV0YWRhdGEiLG9uTG9hZFN0YXJ0OiJvbmxvYWRzdGFydCIsb25NZXNzYWdlOiJvbm1lc3NhZ2UiLG9uTW91c2VEb3duOiJvbm1vdXNlZG93biIsb25Nb3VzZUVudGVyOiJvbm1vdXNlZW50ZXIiLG9uTW91c2VMZWF2ZToib25tb3VzZWxlYXZlIixvbk1vdXNlTW92ZToib25tb3VzZW1vdmUiLG9uTW91c2VPdXQ6Im9ubW91c2VvdXQiLG9uTW91c2VPdmVyOiJvbm1vdXNlb3ZlciIsb25Nb3VzZVVwOiJvbm1vdXNldXAiLG9uTW91c2VXaGVlbDoib25tb3VzZXdoZWVsIixvbk9mZmxpbmU6Im9ub2ZmbGluZSIsb25PbmxpbmU6Im9ub25saW5lIixvblBhZ2VIaWRlOiJvbnBhZ2VoaWRlIixvblBhZ2VTaG93OiJvbnBhZ2VzaG93IixvblBhc3RlOiJvbnBhc3RlIixvblBhdXNlOiJvbnBhdXNlIixvblBsYXk6Im9ucGxheSIsb25QbGF5aW5nOiJvbnBsYXlpbmciLG9uUG9wU3RhdGU6Im9ucG9wc3RhdGUiLG9uUHJvZ3Jlc3M6Im9ucHJvZ3Jlc3MiLG9uUmF0ZUNoYW5nZToib25yYXRlY2hhbmdlIixvblJlcGVhdDoib25yZXBlYXQiLG9uUmVzZXQ6Im9ucmVzZXQiLG9uUmVzaXplOiJvbnJlc2l6ZSIsb25TY3JvbGw6Im9uc2Nyb2xsIixvblNlZWtlZDoib25zZWVrZWQiLG9uU2Vla2luZzoib25zZWVraW5nIixvblNlbGVjdDoib25zZWxlY3QiLG9uU2hvdzoib25zaG93IixvblN0YWxsZWQ6Im9uc3RhbGxlZCIsb25TdG9yYWdlOiJvbnN0b3JhZ2UiLG9uU3VibWl0OiJvbnN1Ym1pdCIsb25TdXNwZW5kOiJvbnN1c3BlbmQiLG9uVGltZVVwZGF0ZToib250aW1ldXBkYXRlIixvblRvZ2dsZToib250b2dnbGUiLG9uVW5sb2FkOiJvbnVubG9hZCIsb25Wb2x1bWVDaGFuZ2U6Im9udm9sdW1lY2hhbmdlIixvbldhaXRpbmc6Im9ud2FpdGluZyIsb25ab29tOiJvbnpvb20iLG92ZXJsaW5lUG9zaXRpb246Im92ZXJsaW5lLXBvc2l0aW9uIixvdmVybGluZVRoaWNrbmVzczoib3ZlcmxpbmUtdGhpY2tuZXNzIixwYWludE9yZGVyOiJwYWludC1vcmRlciIscGFub3NlMToicGFub3NlLTEiLHBvaW50ZXJFdmVudHM6InBvaW50ZXItZXZlbnRzIixyZWZlcnJlclBvbGljeToicmVmZXJyZXJwb2xpY3kiLHJlbmRlcmluZ0ludGVudDoicmVuZGVyaW5nLWludGVudCIsc2hhcGVSZW5kZXJpbmc6InNoYXBlLXJlbmRlcmluZyIsc3RvcENvbG9yOiJzdG9wLWNvbG9yIixzdG9wT3BhY2l0eToic3RvcC1vcGFjaXR5IixzdHJpa2V0aHJvdWdoUG9zaXRpb246InN0cmlrZXRocm91Z2gtcG9zaXRpb24iLHN0cmlrZXRocm91Z2hUaGlja25lc3M6InN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIixzdHJva2VEYXNoQXJyYXk6InN0cm9rZS1kYXNoYXJyYXkiLHN0cm9rZURhc2hPZmZzZXQ6InN0cm9rZS1kYXNob2Zmc2V0IixzdHJva2VMaW5lQ2FwOiJzdHJva2UtbGluZWNhcCIsc3Ryb2tlTGluZUpvaW46InN0cm9rZS1saW5lam9pbiIsc3Ryb2tlTWl0ZXJMaW1pdDoic3Ryb2tlLW1pdGVybGltaXQiLHN0cm9rZU9wYWNpdHk6InN0cm9rZS1vcGFjaXR5IixzdHJva2VXaWR0aDoic3Ryb2tlLXdpZHRoIix0YWJJbmRleDoidGFiaW5kZXgiLHRleHRBbmNob3I6InRleHQtYW5jaG9yIix0ZXh0RGVjb3JhdGlvbjoidGV4dC1kZWNvcmF0aW9uIix0ZXh0UmVuZGVyaW5nOiJ0ZXh0LXJlbmRlcmluZyIsdHJhbnNmb3JtT3JpZ2luOiJ0cmFuc2Zvcm0tb3JpZ2luIix0eXBlT2Y6InR5cGVvZiIsdW5kZXJsaW5lUG9zaXRpb246InVuZGVybGluZS1wb3NpdGlvbiIsdW5kZXJsaW5lVGhpY2tuZXNzOiJ1bmRlcmxpbmUtdGhpY2tuZXNzIix1bmljb2RlQmlkaToidW5pY29kZS1iaWRpIix1bmljb2RlUmFuZ2U6InVuaWNvZGUtcmFuZ2UiLHVuaXRzUGVyRW06InVuaXRzLXBlci1lbSIsdkFscGhhYmV0aWM6InYtYWxwaGFiZXRpYyIsdkhhbmdpbmc6InYtaGFuZ2luZyIsdklkZW9ncmFwaGljOiJ2LWlkZW9ncmFwaGljIix2TWF0aGVtYXRpY2FsOiJ2LW1hdGhlbWF0aWNhbCIsdmVjdG9yRWZmZWN0OiJ2ZWN0b3ItZWZmZWN0Iix2ZXJ0QWR2WToidmVydC1hZHYteSIsdmVydE9yaWdpblg6InZlcnQtb3JpZ2luLXgiLHZlcnRPcmlnaW5ZOiJ2ZXJ0LW9yaWdpbi15Iix3b3JkU3BhY2luZzoid29yZC1zcGFjaW5nIix3cml0aW5nTW9kZToid3JpdGluZy1tb2RlIix4SGVpZ2h0OiJ4LWhlaWdodCIscGxheWJhY2tPcmRlcjoicGxheWJhY2tvcmRlciIsdGltZWxpbmVCZWdpbjoidGltZWxpbmViZWdpbiJ9LHByb3BlcnRpZXM6e2Fib3V0OlNsLGFjY2VudEhlaWdodDpudCxhY2N1bXVsYXRlOm51bGwsYWRkaXRpdmU6bnVsbCxhbGlnbm1lbnRCYXNlbGluZTpudWxsLGFscGhhYmV0aWM6bnQsYW1wbGl0dWRlOm50LGFyYWJpY0Zvcm06bnVsbCxhc2NlbnQ6bnQsYXR0cmlidXRlTmFtZTpudWxsLGF0dHJpYnV0ZVR5cGU6bnVsbCxhemltdXRoOm50LGJhbmR3aWR0aDpudWxsLGJhc2VsaW5lU2hpZnQ6bnVsbCxiYXNlRnJlcXVlbmN5Om51bGwsYmFzZVByb2ZpbGU6bnVsbCxiYm94Om51bGwsYmVnaW46bnVsbCxiaWFzOm50LGJ5Om51bGwsY2FsY01vZGU6bnVsbCxjYXBIZWlnaHQ6bnQsY2xhc3NOYW1lOkJzLGNsaXA6bnVsbCxjbGlwUGF0aDpudWxsLGNsaXBQYXRoVW5pdHM6bnVsbCxjbGlwUnVsZTpudWxsLGNvbG9yOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczpudWxsLGNvbG9yUHJvZmlsZTpudWxsLGNvbG9yUmVuZGVyaW5nOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRTY3JpcHRUeXBlOm51bGwsY29udGVudFN0eWxlVHlwZTpudWxsLGNyb3NzT3JpZ2luOm51bGwsY3Vyc29yOm51bGwsY3g6bnVsbCxjeTpudWxsLGQ6bnVsbCxkYXRhVHlwZTpudWxsLGRlZmF1bHRBY3Rpb246bnVsbCxkZXNjZW50Om50LGRpZmZ1c2VDb25zdGFudDpudCxkaXJlY3Rpb246bnVsbCxkaXNwbGF5Om51bGwsZHVyOm51bGwsZGl2aXNvcjpudCxkb21pbmFudEJhc2VsaW5lOm51bGwsZG93bmxvYWQ6cGEsZHg6bnVsbCxkeTpudWxsLGVkZ2VNb2RlOm51bGwsZWRpdGFibGU6bnVsbCxlbGV2YXRpb246bnQsZW5hYmxlQmFja2dyb3VuZDpudWxsLGVuZDpudWxsLGV2ZW50Om51bGwsZXhwb25lbnQ6bnQsZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDpudWxsLGZpbGw6bnVsbCxmaWxsT3BhY2l0eTpudCxmaWxsUnVsZTpudWxsLGZpbHRlcjpudWxsLGZpbHRlclJlczpudWxsLGZpbHRlclVuaXRzOm51bGwsZmxvb2RDb2xvcjpudWxsLGZsb29kT3BhY2l0eTpudWxsLGZvY3VzYWJsZTpudWxsLGZvY3VzSGlnaGxpZ2h0Om51bGwsZm9udEZhbWlseTpudWxsLGZvbnRTaXplOm51bGwsZm9udFNpemVBZGp1c3Q6bnVsbCxmb250U3RyZXRjaDpudWxsLGZvbnRTdHlsZTpudWxsLGZvbnRWYXJpYW50Om51bGwsZm9udFdlaWdodDpudWxsLGZvcm1hdDpudWxsLGZyOm51bGwsZnJvbTpudWxsLGZ4Om51bGwsZnk6bnVsbCxnMTp0aCxnMjp0aCxnbHlwaE5hbWU6dGgsZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6bnVsbCxnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6bnVsbCxnbHlwaFJlZjpudWxsLGdyYWRpZW50VHJhbnNmb3JtOm51bGwsZ3JhZGllbnRVbml0czpudWxsLGhhbmRsZXI6bnVsbCxoYW5naW5nOm50LGhhdGNoQ29udGVudFVuaXRzOm51bGwsaGF0Y2hVbml0czpudWxsLGhlaWdodDpudWxsLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGhvcml6QWR2WDpudCxob3Jpek9yaWdpblg6bnQsaG9yaXpPcmlnaW5ZOm50LGlkOm51bGwsaWRlb2dyYXBoaWM6bnQsaW1hZ2VSZW5kZXJpbmc6bnVsbCxpbml0aWFsVmlzaWJpbGl0eTpudWxsLGluOm51bGwsaW4yOm51bGwsaW50ZXJjZXB0Om50LGs6bnQsazE6bnQsazI6bnQsazM6bnQsazQ6bnQsa2VybmVsTWF0cml4OlNsLGtlcm5lbFVuaXRMZW5ndGg6bnVsbCxrZXlQb2ludHM6bnVsbCxrZXlTcGxpbmVzOm51bGwsa2V5VGltZXM6bnVsbCxrZXJuaW5nOm51bGwsbGFuZzpudWxsLGxlbmd0aEFkanVzdDpudWxsLGxldHRlclNwYWNpbmc6bnVsbCxsaWdodGluZ0NvbG9yOm51bGwsbGltaXRpbmdDb25lQW5nbGU6bnQsbG9jYWw6bnVsbCxtYXJrZXJFbmQ6bnVsbCxtYXJrZXJNaWQ6bnVsbCxtYXJrZXJTdGFydDpudWxsLG1hcmtlckhlaWdodDpudWxsLG1hcmtlclVuaXRzOm51bGwsbWFya2VyV2lkdGg6bnVsbCxtYXNrOm51bGwsbWFza0NvbnRlbnRVbml0czpudWxsLG1hc2tVbml0czpudWxsLG1hdGhlbWF0aWNhbDpudWxsLG1heDpudWxsLG1lZGlhOm51bGwsbWVkaWFDaGFyYWN0ZXJFbmNvZGluZzpudWxsLG1lZGlhQ29udGVudEVuY29kaW5nczpudWxsLG1lZGlhU2l6ZTpudCxtZWRpYVRpbWU6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtb2RlOm51bGwsbmFtZTpudWxsLG5hdkRvd246bnVsbCxuYXZEb3duTGVmdDpudWxsLG5hdkRvd25SaWdodDpudWxsLG5hdkxlZnQ6bnVsbCxuYXZOZXh0Om51bGwsbmF2UHJldjpudWxsLG5hdlJpZ2h0Om51bGwsbmF2VXA6bnVsbCxuYXZVcExlZnQ6bnVsbCxuYXZVcFJpZ2h0Om51bGwsbnVtT2N0YXZlczpudWxsLG9ic2VydmVyOm51bGwsb2Zmc2V0Om51bGwsb25BYm9ydDpudWxsLG9uQWN0aXZhdGU6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWdpbjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb2N1c0luOm51bGwsb25Gb2N1c091dDpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk1vdXNlV2hlZWw6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVwZWF0Om51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TaG93Om51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvblpvb206bnVsbCxvcGFjaXR5Om51bGwsb3BlcmF0b3I6bnVsbCxvcmRlcjpudWxsLG9yaWVudDpudWxsLG9yaWVudGF0aW9uOm51bGwsb3JpZ2luOm51bGwsb3ZlcmZsb3c6bnVsbCxvdmVybGF5Om51bGwsb3ZlcmxpbmVQb3NpdGlvbjpudCxvdmVybGluZVRoaWNrbmVzczpudCxwYWludE9yZGVyOm51bGwscGFub3NlMTpudWxsLHBhdGg6bnVsbCxwYXRoTGVuZ3RoOm50LHBhdHRlcm5Db250ZW50VW5pdHM6bnVsbCxwYXR0ZXJuVHJhbnNmb3JtOm51bGwscGF0dGVyblVuaXRzOm51bGwscGhhc2U6bnVsbCxwaW5nOkJzLHBpdGNoOm51bGwscGxheWJhY2tPcmRlcjpudWxsLHBvaW50ZXJFdmVudHM6bnVsbCxwb2ludHM6bnVsbCxwb2ludHNBdFg6bnQscG9pbnRzQXRZOm50LHBvaW50c0F0WjpudCxwcmVzZXJ2ZUFscGhhOm51bGwscHJlc2VydmVBc3BlY3RSYXRpbzpudWxsLHByaW1pdGl2ZVVuaXRzOm51bGwscHJvcGFnYXRlOm51bGwscHJvcGVydHk6U2wscjpudWxsLHJhZGl1czpudWxsLHJlZmVycmVyUG9saWN5Om51bGwscmVmWDpudWxsLHJlZlk6bnVsbCxyZWw6U2wscmV2OlNsLHJlbmRlcmluZ0ludGVudDpudWxsLHJlcGVhdENvdW50Om51bGwscmVwZWF0RHVyOm51bGwscmVxdWlyZWRFeHRlbnNpb25zOlNsLHJlcXVpcmVkRmVhdHVyZXM6U2wscmVxdWlyZWRGb250czpTbCxyZXF1aXJlZEZvcm1hdHM6U2wscmVzb3VyY2U6bnVsbCxyZXN0YXJ0Om51bGwscmVzdWx0Om51bGwscm90YXRlOm51bGwscng6bnVsbCxyeTpudWxsLHNjYWxlOm51bGwsc2VlZDpudWxsLHNoYXBlUmVuZGVyaW5nOm51bGwsc2lkZTpudWxsLHNsb3BlOm51bGwsc25hcHNob3RUaW1lOm51bGwsc3BlY3VsYXJDb25zdGFudDpudCxzcGVjdWxhckV4cG9uZW50Om50LHNwcmVhZE1ldGhvZDpudWxsLHNwYWNpbmc6bnVsbCxzdGFydE9mZnNldDpudWxsLHN0ZERldmlhdGlvbjpudWxsLHN0ZW1oOm51bGwsc3RlbXY6bnVsbCxzdGl0Y2hUaWxlczpudWxsLHN0b3BDb2xvcjpudWxsLHN0b3BPcGFjaXR5Om51bGwsc3RyaWtldGhyb3VnaFBvc2l0aW9uOm50LHN0cmlrZXRocm91Z2hUaGlja25lc3M6bnQsc3RyaW5nOm51bGwsc3Ryb2tlOm51bGwsc3Ryb2tlRGFzaEFycmF5OlNsLHN0cm9rZURhc2hPZmZzZXQ6bnVsbCxzdHJva2VMaW5lQ2FwOm51bGwsc3Ryb2tlTGluZUpvaW46bnVsbCxzdHJva2VNaXRlckxpbWl0Om50LHN0cm9rZU9wYWNpdHk6bnQsc3Ryb2tlV2lkdGg6bnVsbCxzdHlsZTpudWxsLHN1cmZhY2VTY2FsZTpudCxzeW5jQmVoYXZpb3I6bnVsbCxzeW5jQmVoYXZpb3JEZWZhdWx0Om51bGwsc3luY01hc3RlcjpudWxsLHN5bmNUb2xlcmFuY2U6bnVsbCxzeW5jVG9sZXJhbmNlRGVmYXVsdDpudWxsLHN5c3RlbUxhbmd1YWdlOlNsLHRhYkluZGV4Om50LHRhYmxlVmFsdWVzOm51bGwsdGFyZ2V0Om51bGwsdGFyZ2V0WDpudCx0YXJnZXRZOm50LHRleHRBbmNob3I6bnVsbCx0ZXh0RGVjb3JhdGlvbjpudWxsLHRleHRSZW5kZXJpbmc6bnVsbCx0ZXh0TGVuZ3RoOm51bGwsdGltZWxpbmVCZWdpbjpudWxsLHRpdGxlOm51bGwsdHJhbnNmb3JtQmVoYXZpb3I6bnVsbCx0eXBlOm51bGwsdHlwZU9mOlNsLHRvOm51bGwsdHJhbnNmb3JtOm51bGwsdHJhbnNmb3JtT3JpZ2luOm51bGwsdTE6bnVsbCx1MjpudWxsLHVuZGVybGluZVBvc2l0aW9uOm50LHVuZGVybGluZVRoaWNrbmVzczpudCx1bmljb2RlOm51bGwsdW5pY29kZUJpZGk6bnVsbCx1bmljb2RlUmFuZ2U6bnVsbCx1bml0c1BlckVtOm50LHZhbHVlczpudWxsLHZBbHBoYWJldGljOm50LHZNYXRoZW1hdGljYWw6bnQsdmVjdG9yRWZmZWN0Om51bGwsdkhhbmdpbmc6bnQsdklkZW9ncmFwaGljOm50LHZlcnNpb246bnVsbCx2ZXJ0QWR2WTpudCx2ZXJ0T3JpZ2luWDpudCx2ZXJ0T3JpZ2luWTpudCx2aWV3Qm94Om51bGwsdmlld1RhcmdldDpudWxsLHZpc2liaWxpdHk6bnVsbCx3aWR0aDpudWxsLHdpZHRoczpudWxsLHdvcmRTcGFjaW5nOm51bGwsd3JpdGluZ01vZGU6bnVsbCx4Om51bGwseDE6bnVsbCx4MjpudWxsLHhDaGFubmVsU2VsZWN0b3I6bnVsbCx4SGVpZ2h0Om50LHk6bnVsbCx5MTpudWxsLHkyOm51bGwseUNoYW5uZWxTZWxlY3RvcjpudWxsLHo6bnVsbCx6b29tQW5kUGFuOm51bGx9LHNwYWNlOiJzdmciLHRyYW5zZm9ybTpYaWV9KX0pO3ZhciB0NmUsSnZ0PWcoKCk9PntSMygpO3Q2ZT1FYyh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybShzLGUpe3JldHVybiJ4bGluazoiK2Uuc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBhNmUsZXh0PWcoKCk9PntSMygpO2U2ZSgpO2E2ZT1FYyh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06UWllfSl9KTt2YXIgczZlLHR4dD1nKCgpPT57UjMoKTtzNmU9RWMoe3Byb3BlcnRpZXM6e3htbEJhc2U6bnVsbCx4bWxMYW5nOm51bGwseG1sU3BhY2U6bnVsbH0sc3BhY2U6InhtbCIsdHJhbnNmb3JtKHMsZSl7cmV0dXJuInhtbDoiK2Uuc2xpY2UoMykudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBheHQ9ZygoKT0+e30pO2Z1bmN0aW9uIGk2ZShzLGUpe2xldCB0PW5iKGUpLGE9ZSxyPXVvO2lmKHQgaW4gcy5ub3JtYWwpcmV0dXJuIHMucHJvcGVydHlbcy5ub3JtYWxbdF1dO2lmKHQubGVuZ3RoPjQmJnQuc2xpY2UoMCw0KT09PSJkYXRhIiYmYUJhLnRlc3QoZSkpe2lmKGUuY2hhckF0KDQpPT09Ii0iKXtsZXQgbj1lLnNsaWNlKDUpLnJlcGxhY2Uoc3h0LGlCYSk7YT0iZGF0YSIrbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStuLnNsaWNlKDEpfWVsc2V7bGV0IG49ZS5zbGljZSg0KTtpZighc3h0LnRlc3Qobikpe2xldCBvPW4ucmVwbGFjZSh0QmEsc0JhKTtvLmNoYXJBdCgwKSE9PSItIiYmKG89Ii0iK28pLGU9ImRhdGEiK299fXI9TjN9cmV0dXJuIG5ldyByKGEsZSl9ZnVuY3Rpb24gc0JhKHMpe3JldHVybiItIitzLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gaUJhKHMpe3JldHVybiBzLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpfXZhciB0QmEsc3h0LGFCYSxpeHQ9ZygoKT0+e1htZSgpO1ltZSgpO1lpZSgpO3RCYT0vW0EtWl0vZyxzeHQ9Ly1bYS16XS9nLGFCYT0vXmRhdGFbLVx3LjpdKyQvaTtpKGk2ZSwiZmluZCIpO2koc0JhLCJrZWJhYiIpO2koaUJhLCJjYW1lbGNhc2UiKX0pO3ZhciByeHQsSmllLHI2ZT1nKCgpPT57V3Z0KCk7S3Z0KCk7WnZ0KCk7UXZ0KCk7SnZ0KCk7ZXh0KCk7dHh0KCk7YXh0KCk7aXh0KCk7WWllKCk7cnh0PUttZShbUW1lLFl2dCx0NmUsYTZlLHM2ZV0sImh0bWwiKSxKaWU9S21lKFtRbWUsWHZ0LHQ2ZSxhNmUsczZlXSwic3ZnIil9KTtmdW5jdGlvbiBvNmUocyxlKXtpZihzPXMucmVwbGFjZShlLnN1YnNldD9jQmEoZS5zdWJzZXQpOnJCYSxhKSxlLnN1YnNldHx8ZS5lc2NhcGVPbmx5KXJldHVybiBzO3JldHVybiBzLnJlcGxhY2Uob0JhLHQpLnJlcGxhY2UobkJhLGEpO2Z1bmN0aW9uIHQocixuLG8pe3JldHVybiBlLmZvcm1hdCgoci5jaGFyQ29kZUF0KDApLTU1Mjk2KSoxMDI0K3IuY2hhckNvZGVBdCgxKS01NjMyMCs2NTUzNixvLmNoYXJDb2RlQXQobisyKSxlKX1mdW5jdGlvbiBhKHIsbixvKXtyZXR1cm4gZS5mb3JtYXQoci5jaGFyQ29kZUF0KDApLG8uY2hhckNvZGVBdChuKzEpLGUpfX1mdW5jdGlvbiBjQmEocyl7bGV0IGU9b3h0LmdldChzKTtyZXR1cm4gZXx8KGU9ZEJhKHMpLG94dC5zZXQocyxlKSksZX1mdW5jdGlvbiBkQmEocyl7bGV0IGU9W10sdD0tMTtmb3IoOysrdDxzLmxlbmd0aDspZS5wdXNoKHNbdF0ucmVwbGFjZShsQmEsIlxcJCYiKSk7cmV0dXJuIG5ldyBSZWdFeHAoIig/OiIrZS5qb2luKCJ8IikrIikiLCJnIil9dmFyIHJCYSxvQmEsbkJhLGxCYSxveHQsbnh0PWcoKCk9PntyQmE9L1siJic8PmBdL2csb0JhPS9bXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl0vZyxuQmE9L1tceDAxLVx0XHZcZlx4MEUtXHgxRlx4N0ZceDgxXHg4RFx4OEZceDkwXHg5RFx4QTAtXHVGRkZGXS9nLGxCYT0vW3xcXHt9KClbXF1eJCsqPy5dL2csb3h0PW5ldyBXZWFrTWFwO2kobzZlLCJjb3JlIik7aShjQmEsImNoYXJhY3RlcnNUb0V4cHJlc3Npb25DYWNoZWQiKTtpKGRCYSwiY2hhcmFjdGVyc1RvRXhwcmVzc2lvbiIpfSk7ZnVuY3Rpb24gbHh0KHMsZSx0KXtsZXQgYT0iJiN4IitzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiB0JiZlJiYhdUJhLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShlKSk/YTphKyI7In12YXIgdUJhLGN4dD1nKCgpPT57dUJhPS9bXGRBLUZhLWZdLztpKGx4dCwidG9IZXhhZGVjaW1hbCIpfSk7ZnVuY3Rpb24gZHh0KHMsZSx0KXtsZXQgYT0iJiMiK1N0cmluZyhzKTtyZXR1cm4gdCYmZSYmIXBCYS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP2E6YSsiOyJ9dmFyIHBCYSx1eHQ9ZygoKT0+e3BCYT0vXGQvO2koZHh0LCJ0b0RlY2ltYWwiKX0pO3ZhciBweHQsaHh0PWcoKCk9PntweHQ9WyJBRWxpZyIsIkFNUCIsIkFhY3V0ZSIsIkFjaXJjIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJBdW1sIiwiQ09QWSIsIkNjZWRpbCIsIkVUSCIsIkVhY3V0ZSIsIkVjaXJjIiwiRWdyYXZlIiwiRXVtbCIsIkdUIiwiSWFjdXRlIiwiSWNpcmMiLCJJZ3JhdmUiLCJJdW1sIiwiTFQiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyYyIsIk9ncmF2ZSIsIk9zbGFzaCIsIk90aWxkZSIsIk91bWwiLCJRVU9UIiwiUkVHIiwiVEhPUk4iLCJVYWN1dGUiLCJVY2lyYyIsIlVncmF2ZSIsIlV1bWwiLCJZYWN1dGUiLCJhYWN1dGUiLCJhY2lyYyIsImFjdXRlIiwiYWVsaWciLCJhZ3JhdmUiLCJhbXAiLCJhcmluZyIsImF0aWxkZSIsImF1bWwiLCJicnZiYXIiLCJjY2VkaWwiLCJjZWRpbCIsImNlbnQiLCJjb3B5IiwiY3VycmVuIiwiZGVnIiwiZGl2aWRlIiwiZWFjdXRlIiwiZWNpcmMiLCJlZ3JhdmUiLCJldGgiLCJldW1sIiwiZnJhYzEyIiwiZnJhYzE0IiwiZnJhYzM0IiwiZ3QiLCJpYWN1dGUiLCJpY2lyYyIsImlleGNsIiwiaWdyYXZlIiwiaXF1ZXN0IiwiaXVtbCIsImxhcXVvIiwibHQiLCJtYWNyIiwibWljcm8iLCJtaWRkb3QiLCJuYnNwIiwibm90IiwibnRpbGRlIiwib2FjdXRlIiwib2NpcmMiLCJvZ3JhdmUiLCJvcmRmIiwib3JkbSIsIm9zbGFzaCIsIm90aWxkZSIsIm91bWwiLCJwYXJhIiwicGx1c21uIiwicG91bmQiLCJxdW90IiwicmFxdW8iLCJyZWciLCJzZWN0Iiwic2h5Iiwic3VwMSIsInN1cDIiLCJzdXAzIiwic3psaWciLCJ0aG9ybiIsInRpbWVzIiwidWFjdXRlIiwidWNpcmMiLCJ1Z3JhdmUiLCJ1bWwiLCJ1dW1sIiwieWFjdXRlIiwieWVuIiwieXVtbCJdfSk7dmFyIGVyZSxmeHQ9ZygoKT0+e2VyZT17bmJzcDoiXHhBMCIsaWV4Y2w6Ilx4QTEiLGNlbnQ6Ilx4QTIiLHBvdW5kOiJceEEzIixjdXJyZW46Ilx4QTQiLHllbjoiXHhBNSIsYnJ2YmFyOiJceEE2IixzZWN0OiJceEE3Iix1bWw6Ilx4QTgiLGNvcHk6Ilx4QTkiLG9yZGY6Ilx4QUEiLGxhcXVvOiJceEFCIixub3Q6Ilx4QUMiLHNoeToiXHhBRCIscmVnOiJceEFFIixtYWNyOiJceEFGIixkZWc6Ilx4QjAiLHBsdXNtbjoiXHhCMSIsc3VwMjoiXHhCMiIsc3VwMzoiXHhCMyIsYWN1dGU6Ilx4QjQiLG1pY3JvOiJceEI1IixwYXJhOiJceEI2IixtaWRkb3Q6Ilx4QjciLGNlZGlsOiJceEI4IixzdXAxOiJceEI5IixvcmRtOiJceEJBIixyYXF1bzoiXHhCQiIsZnJhYzE0OiJceEJDIixmcmFjMTI6Ilx4QkQiLGZyYWMzNDoiXHhCRSIsaXF1ZXN0OiJceEJGIixBZ3JhdmU6Ilx4QzAiLEFhY3V0ZToiXHhDMSIsQWNpcmM6Ilx4QzIiLEF0aWxkZToiXHhDMyIsQXVtbDoiXHhDNCIsQXJpbmc6Ilx4QzUiLEFFbGlnOiJceEM2IixDY2VkaWw6Ilx4QzciLEVncmF2ZToiXHhDOCIsRWFjdXRlOiJceEM5IixFY2lyYzoiXHhDQSIsRXVtbDoiXHhDQiIsSWdyYXZlOiJceENDIixJYWN1dGU6Ilx4Q0QiLEljaXJjOiJceENFIixJdW1sOiJceENGIixFVEg6Ilx4RDAiLE50aWxkZToiXHhEMSIsT2dyYXZlOiJceEQyIixPYWN1dGU6Ilx4RDMiLE9jaXJjOiJceEQ0IixPdGlsZGU6Ilx4RDUiLE91bWw6Ilx4RDYiLHRpbWVzOiJceEQ3IixPc2xhc2g6Ilx4RDgiLFVncmF2ZToiXHhEOSIsVWFjdXRlOiJceERBIixVY2lyYzoiXHhEQiIsVXVtbDoiXHhEQyIsWWFjdXRlOiJceEREIixUSE9STjoiXHhERSIsc3psaWc6Ilx4REYiLGFncmF2ZToiXHhFMCIsYWFjdXRlOiJceEUxIixhY2lyYzoiXHhFMiIsYXRpbGRlOiJceEUzIixhdW1sOiJceEU0IixhcmluZzoiXHhFNSIsYWVsaWc6Ilx4RTYiLGNjZWRpbDoiXHhFNyIsZWdyYXZlOiJceEU4IixlYWN1dGU6Ilx4RTkiLGVjaXJjOiJceEVBIixldW1sOiJceEVCIixpZ3JhdmU6Ilx4RUMiLGlhY3V0ZToiXHhFRCIsaWNpcmM6Ilx4RUUiLGl1bWw6Ilx4RUYiLGV0aDoiXHhGMCIsbnRpbGRlOiJceEYxIixvZ3JhdmU6Ilx4RjIiLG9hY3V0ZToiXHhGMyIsb2NpcmM6Ilx4RjQiLG90aWxkZToiXHhGNSIsb3VtbDoiXHhGNiIsZGl2aWRlOiJceEY3Iixvc2xhc2g6Ilx4RjgiLHVncmF2ZToiXHhGOSIsdWFjdXRlOiJceEZBIix1Y2lyYzoiXHhGQiIsdXVtbDoiXHhGQyIseWFjdXRlOiJceEZEIix0aG9ybjoiXHhGRSIseXVtbDoiXHhGRiIsZm5vZjoiXHUwMTkyIixBbHBoYToiXHUwMzkxIixCZXRhOiJcdTAzOTIiLEdhbW1hOiJcdTAzOTMiLERlbHRhOiJcdTAzOTQiLEVwc2lsb246Ilx1MDM5NSIsWmV0YToiXHUwMzk2IixFdGE6Ilx1MDM5NyIsVGhldGE6Ilx1MDM5OCIsSW90YToiXHUwMzk5IixLYXBwYToiXHUwMzlBIixMYW1iZGE6Ilx1MDM5QiIsTXU6Ilx1MDM5QyIsTnU6Ilx1MDM5RCIsWGk6Ilx1MDM5RSIsT21pY3JvbjoiXHUwMzlGIixQaToiXHUwM0EwIixSaG86Ilx1MDNBMSIsU2lnbWE6Ilx1MDNBMyIsVGF1OiJcdTAzQTQiLFVwc2lsb246Ilx1MDNBNSIsUGhpOiJcdTAzQTYiLENoaToiXHUwM0E3IixQc2k6Ilx1MDNBOCIsT21lZ2E6Ilx1MDNBOSIsYWxwaGE6Ilx1MDNCMSIsYmV0YToiXHUwM0IyIixnYW1tYToiXHUwM0IzIixkZWx0YToiXHUwM0I0IixlcHNpbG9uOiJcdTAzQjUiLHpldGE6Ilx1MDNCNiIsZXRhOiJcdTAzQjciLHRoZXRhOiJcdTAzQjgiLGlvdGE6Ilx1MDNCOSIsa2FwcGE6Ilx1MDNCQSIsbGFtYmRhOiJcdTAzQkIiLG11OiJcdTAzQkMiLG51OiJcdTAzQkQiLHhpOiJcdTAzQkUiLG9taWNyb246Ilx1MDNCRiIscGk6Ilx1MDNDMCIscmhvOiJcdTAzQzEiLHNpZ21hZjoiXHUwM0MyIixzaWdtYToiXHUwM0MzIix0YXU6Ilx1MDNDNCIsdXBzaWxvbjoiXHUwM0M1IixwaGk6Ilx1MDNDNiIsY2hpOiJcdTAzQzciLHBzaToiXHUwM0M4IixvbWVnYToiXHUwM0M5Iix0aGV0YXN5bToiXHUwM0QxIix1cHNpaDoiXHUwM0QyIixwaXY6Ilx1MDNENiIsYnVsbDoiXHUyMDIyIixoZWxsaXA6Ilx1MjAyNiIscHJpbWU6Ilx1MjAzMiIsUHJpbWU6Ilx1MjAzMyIsb2xpbmU6Ilx1MjAzRSIsZnJhc2w6Ilx1MjA0NCIsd2VpZXJwOiJcdTIxMTgiLGltYWdlOiJcdTIxMTEiLHJlYWw6Ilx1MjExQyIsdHJhZGU6Ilx1MjEyMiIsYWxlZnN5bToiXHUyMTM1IixsYXJyOiJcdTIxOTAiLHVhcnI6Ilx1MjE5MSIscmFycjoiXHUyMTkyIixkYXJyOiJcdTIxOTMiLGhhcnI6Ilx1MjE5NCIsY3JhcnI6Ilx1MjFCNSIsbEFycjoiXHUyMUQwIix1QXJyOiJcdTIxRDEiLHJBcnI6Ilx1MjFEMiIsZEFycjoiXHUyMUQzIixoQXJyOiJcdTIxRDQiLGZvcmFsbDoiXHUyMjAwIixwYXJ0OiJcdTIyMDIiLGV4aXN0OiJcdTIyMDMiLGVtcHR5OiJcdTIyMDUiLG5hYmxhOiJcdTIyMDciLGlzaW46Ilx1MjIwOCIsbm90aW46Ilx1MjIwOSIsbmk6Ilx1MjIwQiIscHJvZDoiXHUyMjBGIixzdW06Ilx1MjIxMSIsbWludXM6Ilx1MjIxMiIsbG93YXN0OiJcdTIyMTciLHJhZGljOiJcdTIyMUEiLHByb3A6Ilx1MjIxRCIsaW5maW46Ilx1MjIxRSIsYW5nOiJcdTIyMjAiLGFuZDoiXHUyMjI3IixvcjoiXHUyMjI4IixjYXA6Ilx1MjIyOSIsY3VwOiJcdTIyMkEiLGludDoiXHUyMjJCIix0aGVyZTQ6Ilx1MjIzNCIsc2ltOiJcdTIyM0MiLGNvbmc6Ilx1MjI0NSIsYXN5bXA6Ilx1MjI0OCIsbmU6Ilx1MjI2MCIsZXF1aXY6Ilx1MjI2MSIsbGU6Ilx1MjI2NCIsZ2U6Ilx1MjI2NSIsc3ViOiJcdTIyODIiLHN1cDoiXHUyMjgzIixuc3ViOiJcdTIyODQiLHN1YmU6Ilx1MjI4NiIsc3VwZToiXHUyMjg3IixvcGx1czoiXHUyMjk1IixvdGltZXM6Ilx1MjI5NyIscGVycDoiXHUyMkE1IixzZG90OiJcdTIyQzUiLGxjZWlsOiJcdTIzMDgiLHJjZWlsOiJcdTIzMDkiLGxmbG9vcjoiXHUyMzBBIixyZmxvb3I6Ilx1MjMwQiIsbGFuZzoiXHUyMzI5IixyYW5nOiJcdTIzMkEiLGxvejoiXHUyNUNBIixzcGFkZXM6Ilx1MjY2MCIsY2x1YnM6Ilx1MjY2MyIsaGVhcnRzOiJcdTI2NjUiLGRpYW1zOiJcdTI2NjYiLHF1b3Q6JyInLGFtcDoiJiIsbHQ6IjwiLGd0OiI+IixPRWxpZzoiXHUwMTUyIixvZWxpZzoiXHUwMTUzIixTY2Fyb246Ilx1MDE2MCIsc2Nhcm9uOiJcdTAxNjEiLFl1bWw6Ilx1MDE3OCIsY2lyYzoiXHUwMkM2Iix0aWxkZToiXHUwMkRDIixlbnNwOiJcdTIwMDIiLGVtc3A6Ilx1MjAwMyIsdGhpbnNwOiJcdTIwMDkiLHp3bmo6Ilx1MjAwQyIsendqOiJcdTIwMEQiLGxybToiXHUyMDBFIixybG06Ilx1MjAwRiIsbmRhc2g6Ilx1MjAxMyIsbWRhc2g6Ilx1MjAxNCIsbHNxdW86Ilx1MjAxOCIscnNxdW86Ilx1MjAxOSIsc2JxdW86Ilx1MjAxQSIsbGRxdW86Ilx1MjAxQyIscmRxdW86Ilx1MjAxRCIsYmRxdW86Ilx1MjAxRSIsZGFnZ2VyOiJcdTIwMjAiLERhZ2dlcjoiXHUyMDIxIixwZXJtaWw6Ilx1MjAzMCIsbHNhcXVvOiJcdTIwMzkiLHJzYXF1bzoiXHUyMDNBIixldXJvOiJcdTIwQUMifX0pO3ZhciBteHQsZ3h0PWcoKCk9PntteHQ9WyJjZW50IiwiY29weSIsImRpdmlkZSIsImd0IiwibHQiLCJub3QiLCJwYXJhIiwidGltZXMiXX0pO2Z1bmN0aW9uIHZ4dChzLGUsdCxhKXtsZXQgcj1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpO2lmKGJ4dC5jYWxsKG42ZSxyKSl7bGV0IG49bjZlW3JdLG89IiYiK247cmV0dXJuIHQmJnB4dC5pbmNsdWRlcyhuKSYmIW14dC5pbmNsdWRlcyhuKSYmKCFhfHxlJiZlIT09NjEmJmhCYS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpKT9vOm8rIjsifXJldHVybiIifXZhciBieHQsbjZlLHRyZSxoQmEseHh0PWcoKCk9PntoeHQoKTtmeHQoKTtneHQoKTtieHQ9e30uaGFzT3duUHJvcGVydHksbjZlPXt9O2Zvcih0cmUgaW4gZXJlKWJ4dC5jYWxsKGVyZSx0cmUpJiYobjZlW2VyZVt0cmVdXT10cmUpO2hCYT0vW15cZEEtWmEtel0vO2kodnh0LCJ0b05hbWVkIil9KTtmdW5jdGlvbiB5eHQocyxlLHQpe2xldCBhPWx4dChzLGUsdC5vbWl0T3B0aW9uYWxTZW1pY29sb25zKSxyO2lmKCh0LnVzZU5hbWVkUmVmZXJlbmNlc3x8dC51c2VTaG9ydGVzdFJlZmVyZW5jZXMpJiYocj12eHQocyxlLHQub21pdE9wdGlvbmFsU2VtaWNvbG9ucyx0LmF0dHJpYnV0ZSkpLCh0LnVzZVNob3J0ZXN0UmVmZXJlbmNlc3x8IXIpJiZ0LnVzZVNob3J0ZXN0UmVmZXJlbmNlcyl7bGV0IG49ZHh0KHMsZSx0Lm9taXRPcHRpb25hbFNlbWljb2xvbnMpO24ubGVuZ3RoPGEubGVuZ3RoJiYoYT1uKX1yZXR1cm4gciYmKCF0LnVzZVNob3J0ZXN0UmVmZXJlbmNlc3x8ci5sZW5ndGg8YS5sZW5ndGgpP3I6YX12YXIgd3h0PWcoKCk9PntjeHQoKTt1eHQoKTt4eHQoKTtpKHl4dCwiZm9ybWF0U21hcnQiKX0pO2Z1bmN0aW9uIGt4dChzKXtyZXR1cm4iJiN4IitzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgU3h0PWcoKCk9PntpKGt4dCwiZm9ybWF0QmFzaWMiKX0pO2Z1bmN0aW9uIEkwKHMsZSl7cmV0dXJuIG82ZShzLE9iamVjdC5hc3NpZ24oe2Zvcm1hdDp5eHR9LGUpKX1mdW5jdGlvbiBWZmkocyxlKXtyZXR1cm4gbzZlKHMsT2JqZWN0LmFzc2lnbih7Zm9ybWF0Omt4dH0sZSkpfXZhciBfeHQ9ZygoKT0+e254dCgpO3d4dCgpO1N4dCgpO2koSTAsInN0cmluZ2lmeUVudGl0aWVzIik7aShWZmksInN0cmluZ2lmeUVudGl0aWVzTGlnaHQiKX0pO3ZhciBhcmU9ZygoKT0+e194dCgpfSk7ZnVuY3Rpb24gTXh0KHMsZSx0LGEpe3JldHVybiBhLnNldHRpbmdzLmJvZ3VzQ29tbWVudHM/Ijw/IitJMChzLnZhbHVlLE9iamVjdC5hc3NpZ24oe30sYS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6bUJhfSkpKyI+IjoiPCEtLSIrcy52YWx1ZS5yZXBsYWNlKGZCYSxyKSsiLS0+IjtmdW5jdGlvbiByKG4pe3JldHVybiBJMChuLE9iamVjdC5hc3NpZ24oe30sYS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6Z0JhfSkpfX12YXIgZkJhLG1CYSxnQmEsenh0PWcoKCk9PnthcmUoKTtmQmE9L14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZyxtQmE9WyI+Il0sZ0JhPVsiPCIsIj4iXTtpKE14dCwiY29tbWVudCIpfSk7ZnVuY3Rpb24gQ3h0KHMsZSx0LGEpe3JldHVybiI8ISIrKGEuc2V0dGluZ3MudXBwZXJEb2N0eXBlPyJET0NUWVBFIjoiZG9jdHlwZSIpKyhhLnNldHRpbmdzLnRpZ2h0RG9jdHlwZT8iIjoiICIpKyJodG1sPiJ9dmFyIFR4dD1nKCgpPT57aShDeHQsImRvY3R5cGUiKX0pO2Z1bmN0aW9uIGVtaShzKXtsZXQgZT1bXSx0PVN0cmluZyhzfHwiIiksYT10LmluZGV4T2YoIiwiKSxyPTAsbj0hMTtmb3IoOyFuOyl7YT09PS0xJiYoYT10Lmxlbmd0aCxuPSEwKTtsZXQgbz10LnNsaWNlKHIsYSkudHJpbSgpOyhvfHwhbikmJmUucHVzaChvKSxyPWErMSxhPXQuaW5kZXhPZigiLCIscil9cmV0dXJuIGV9ZnVuY3Rpb24gJHh0KHMsZSl7bGV0IHQ9ZXx8e307cmV0dXJuKHNbcy5sZW5ndGgtMV09PT0iIj9bLi4ucywiIl06cykuam9pbigodC5wYWRSaWdodD8iICI6IiIpKyIsIisodC5wYWRMZWZ0PT09ITE/IiI6IiAiKSkudHJpbSgpfXZhciBEeHQ9ZygoKT0+e2koZW1pLCJwYXJzZSIpO2koJHh0LCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIHNtaShzKXtsZXQgZT1TdHJpbmcoc3x8IiIpLnRyaW0oKTtyZXR1cm4gZT9lLnNwbGl0KC9bIFx0XG5cclxmXSsvZyk6W119ZnVuY3Rpb24gTHh0KHMpe3JldHVybiBzLmpvaW4oIiAiKS50cmltKCl9dmFyIEV4dD1nKCgpPT57aShzbWksInBhcnNlIik7aShMeHQsInN0cmluZ2lmeSIpfSk7ZnVuY3Rpb24gTzMocyl7cmV0dXJuIHR5cGVvZiBzPT0ib2JqZWN0Ij9zLnR5cGU9PT0idGV4dCI/UHh0KHMudmFsdWUpOiExOlB4dChzKX1mdW5jdGlvbiBQeHQocyl7cmV0dXJuIHMucmVwbGFjZShiQmEsIiIpPT09IiJ9dmFyIGJCYSxJeHQ9ZygoKT0+e2JCYT0vWyBcdFxuXGZccl0vZztpKE8zLCJ3aGl0ZXNwYWNlIik7aShQeHQsImVtcHR5Iil9KTt2YXIgc3JlPWcoKCk9PntJeHQoKX0pO2Z1bmN0aW9uIEF4dChzKXtyZXR1cm4gZTtmdW5jdGlvbiBlKHQsYSxyKXtsZXQgbj10P3QuY2hpbGRyZW46dkJhLG89KGF8fDApK3MsbD1uW29dO2lmKCFyKWZvcig7bCYmTzMobCk7KW8rPXMsbD1uW29dO3JldHVybiBsfX12YXIgcnIsbDZlLHZCYSxjNmU9ZygoKT0+e3NyZSgpO3JyPUF4dCgxKSxsNmU9QXh0KC0xKSx2QmE9W107aShBeHQsInNpYmxpbmdzIil9KTtmdW5jdGlvbiBpcmUocyl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0LGEscil7cmV0dXJuIHhCYS5jYWxsKHMsdC50YWdOYW1lKSYmc1t0LnRhZ05hbWVdKHQsYSxyKX19dmFyIHhCYSxkNmU9ZygoKT0+e3hCYT17fS5oYXNPd25Qcm9wZXJ0eTtpKGlyZSwib21pc3Npb24iKX0pO2Z1bmN0aW9uIHU2ZShzLGUsdCl7bGV0IGE9cnIodCxlLCEwKTtyZXR1cm4hYXx8YS50eXBlIT09ImNvbW1lbnQiJiYhKGEudHlwZT09PSJ0ZXh0IiYmTzMoYS52YWx1ZS5jaGFyQXQoMCkpKX1mdW5jdGlvbiB5QmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIWF8fGEudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiB3QmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIWF8fGEudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBrQmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIGE/YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09ImFkZHJlc3MifHxhLnRhZ05hbWU9PT0iYXJ0aWNsZSJ8fGEudGFnTmFtZT09PSJhc2lkZSJ8fGEudGFnTmFtZT09PSJibG9ja3F1b3RlInx8YS50YWdOYW1lPT09ImRldGFpbHMifHxhLnRhZ05hbWU9PT0iZGl2Inx8YS50YWdOYW1lPT09ImRsInx8YS50YWdOYW1lPT09ImZpZWxkc2V0Inx8YS50YWdOYW1lPT09ImZpZ2NhcHRpb24ifHxhLnRhZ05hbWU9PT0iZmlndXJlInx8YS50YWdOYW1lPT09ImZvb3RlciJ8fGEudGFnTmFtZT09PSJmb3JtInx8YS50YWdOYW1lPT09ImgxInx8YS50YWdOYW1lPT09ImgyInx8YS50YWdOYW1lPT09ImgzInx8YS50YWdOYW1lPT09Img0Inx8YS50YWdOYW1lPT09Img1Inx8YS50YWdOYW1lPT09Img2Inx8YS50YWdOYW1lPT09ImhlYWRlciJ8fGEudGFnTmFtZT09PSJoZ3JvdXAifHxhLnRhZ05hbWU9PT0iaHIifHxhLnRhZ05hbWU9PT0ibWFpbiJ8fGEudGFnTmFtZT09PSJtZW51Inx8YS50YWdOYW1lPT09Im5hdiJ8fGEudGFnTmFtZT09PSJvbCJ8fGEudGFnTmFtZT09PSJwInx8YS50YWdOYW1lPT09InByZSJ8fGEudGFnTmFtZT09PSJzZWN0aW9uInx8YS50YWdOYW1lPT09InRhYmxlInx8YS50YWdOYW1lPT09InVsIik6IXR8fCEodC50eXBlPT09ImVsZW1lbnQiJiYodC50YWdOYW1lPT09ImEifHx0LnRhZ05hbWU9PT0iYXVkaW8ifHx0LnRhZ05hbWU9PT0iZGVsInx8dC50YWdOYW1lPT09ImlucyJ8fHQudGFnTmFtZT09PSJtYXAifHx0LnRhZ05hbWU9PT0ibm9zY3JpcHQifHx0LnRhZ05hbWU9PT0idmlkZW8iKSl9ZnVuY3Rpb24gU0JhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJsaSJ9ZnVuY3Rpb24gX0JhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiEhKGEmJmEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJkdCJ8fGEudGFnTmFtZT09PSJkZCIpKX1mdW5jdGlvbiBNQmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIWF8fGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJkdCJ8fGEudGFnTmFtZT09PSJkZCIpfWZ1bmN0aW9uIE54dChzLGUsdCl7bGV0IGE9cnIodCxlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09InJwInx8YS50YWdOYW1lPT09InJ0Iil9ZnVuY3Rpb24gekJhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJvcHRncm91cCJ9ZnVuY3Rpb24gQ0JhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0ib3B0aW9uInx8YS50YWdOYW1lPT09Im9wdGdyb3VwIil9ZnVuY3Rpb24gVEJhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiEhKGEmJmEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJ0Ym9keSJ8fGEudGFnTmFtZT09PSJ0Zm9vdCIpKX1mdW5jdGlvbiAkQmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIWF8fGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJ0Ym9keSJ8fGEudGFnTmFtZT09PSJ0Zm9vdCIpfWZ1bmN0aW9uIERCYShzLGUsdCl7cmV0dXJuIXJyKHQsZSl9ZnVuY3Rpb24gTEJhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJ0ciJ9ZnVuY3Rpb24gUnh0KHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGQifHxhLnRhZ05hbWU9PT0idGgiKX12YXIgVGsscDZlPWcoKCk9PntzcmUoKTtjNmUoKTtkNmUoKTtUaz1pcmUoe2JvZHk6d0JhLGNhcHRpb246dTZlLGNvbGdyb3VwOnU2ZSxkZDpNQmEsZHQ6X0JhLGhlYWQ6dTZlLGh0bWw6eUJhLGxpOlNCYSxvcHRncm91cDp6QmEsb3B0aW9uOkNCYSxwOmtCYSxycDpOeHQscnQ6Tnh0LHRib2R5OiRCYSx0ZDpSeHQsdGZvb3Q6REJhLHRoOlJ4dCx0aGVhZDpUQmEsdHI6TEJhfSk7aSh1NmUsImhlYWRPckNvbGdyb3VwT3JDYXB0aW9uIik7aSh5QmEsImh0bWwiKTtpKHdCYSwiYm9keSIpO2koa0JhLCJwIik7aShTQmEsImxpIik7aShfQmEsImR0Iik7aShNQmEsImRkIik7aShOeHQsInJ1YnlFbGVtZW50Iik7aSh6QmEsIm9wdGdyb3VwIik7aShDQmEsIm9wdGlvbiIpO2koVEJhLCJ0aGVhZCIpO2koJEJhLCJ0Ym9keSIpO2koREJhLCJ0Zm9vdCIpO2koTEJhLCJ0ciIpO2koUnh0LCJjZWxscyIpfSk7ZnVuY3Rpb24gRUJhKHMpe2xldCBlPXJyKHMsLTEpO3JldHVybiFlfHxlLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gUEJhKHMpe2xldCBlPW5ldyBTZXQ7Zm9yKGxldCBhIG9mIHMuY2hpbGRyZW4paWYoYS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09ImJhc2UifHxhLnRhZ05hbWU9PT0idGl0bGUiKSl7aWYoZS5oYXMoYS50YWdOYW1lKSlyZXR1cm4hMTtlLmFkZChhLnRhZ05hbWUpfWxldCB0PXMuY2hpbGRyZW5bMF07cmV0dXJuIXR8fHQudHlwZT09PSJlbGVtZW50In1mdW5jdGlvbiBJQmEocyl7bGV0IGU9cnIocywtMSwhMCk7cmV0dXJuIWV8fGUudHlwZSE9PSJjb21tZW50IiYmIShlLnR5cGU9PT0idGV4dCImJk8zKGUudmFsdWUuY2hhckF0KDApKSkmJiEoZS50eXBlPT09ImVsZW1lbnQiJiYoZS50YWdOYW1lPT09Im1ldGEifHxlLnRhZ05hbWU9PT0ibGluayJ8fGUudGFnTmFtZT09PSJzY3JpcHQifHxlLnRhZ05hbWU9PT0ic3R5bGUifHxlLnRhZ05hbWU9PT0idGVtcGxhdGUiKSl9ZnVuY3Rpb24gQUJhKHMsZSx0KXtsZXQgYT1sNmUodCxlKSxyPXJyKHMsLTEsITApO3JldHVybiB0JiZhJiZhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJjb2xncm91cCImJlRrKGEsdC5jaGlsZHJlbi5pbmRleE9mKGEpLHQpPyExOiEhKHImJnIudHlwZT09PSJlbGVtZW50IiYmci50YWdOYW1lPT09ImNvbCIpfWZ1bmN0aW9uIE5CYShzLGUsdCl7bGV0IGE9bDZlKHQsZSkscj1ycihzLC0xKTtyZXR1cm4gdCYmYSYmYS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09InRoZWFkInx8YS50YWdOYW1lPT09InRib2R5IikmJlRrKGEsdC5jaGlsZHJlbi5pbmRleE9mKGEpLHQpPyExOiEhKHImJnIudHlwZT09PSJlbGVtZW50IiYmci50YWdOYW1lPT09InRyIil9dmFyIE94dCxGeHQ9ZygoKT0+e3NyZSgpO2M2ZSgpO3A2ZSgpO2Q2ZSgpO094dD1pcmUoe2JvZHk6SUJhLGNvbGdyb3VwOkFCYSxoZWFkOlBCYSxodG1sOkVCYSx0Ym9keTpOQmF9KTtpKEVCYSwiaHRtbCIpO2koUEJhLCJoZWFkIik7aShJQmEsImJvZHkiKTtpKEFCYSwiY29sZ3JvdXAiKTtpKE5CYSwidGJvZHkiKX0pO2Z1bmN0aW9uIEJ4dChzLGUsdCxhKXtsZXQgcj1hLnNjaGVtYSxuPXIuc3BhY2U9PT0ic3ZnIj8hMTphLnNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3Msbz1yLnNwYWNlPT09InN2ZyI/YS5zZXR0aW5ncy5jbG9zZUVtcHR5RWxlbWVudHM6YS5zZXR0aW5ncy52b2lkcy5pbmNsdWRlcyhzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSksbD1bXSxwO3Iuc3BhY2U9PT0iaHRtbCImJnMudGFnTmFtZT09PSJzdmciJiYoYS5zY2hlbWE9SmllKTtsZXQgZD1SQmEoYSxzLnByb3BlcnRpZXMpLHU9YS5hbGwoci5zcGFjZT09PSJodG1sIiYmcy50YWdOYW1lPT09InRlbXBsYXRlIj9zLmNvbnRlbnQ6cyk7cmV0dXJuIGEuc2NoZW1hPXIsdSYmKG89ITEpLChkfHwhbnx8IU94dChzLGUsdCkpJiYobC5wdXNoKCI8IixzLnRhZ05hbWUsZD8iICIrZDoiIiksbyYmKHIuc3BhY2U9PT0ic3ZnInx8YS5zZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nKSYmKHA9ZC5jaGFyQXQoZC5sZW5ndGgtMSksKCFhLnNldHRpbmdzLnRpZ2h0U2VsZkNsb3Npbmd8fHA9PT0iLyJ8fHAmJnAhPT0nIicmJnAhPT0iJyIpJiZsLnB1c2goIiAiKSxsLnB1c2goIi8iKSksbC5wdXNoKCI+IikpLGwucHVzaCh1KSwhbyYmKCFufHwhVGsocyxlLHQpKSYmbC5wdXNoKCI8LyIrcy50YWdOYW1lKyI+IiksbC5qb2luKCIiKX1mdW5jdGlvbiBSQmEocyxlKXtsZXQgdD1bXSxhPS0xLHI7aWYoZSl7Zm9yKHIgaW4gZSlpZihlW3JdIT09bnVsbCYmZVtyXSE9PXZvaWQgMCl7bGV0IG49T0JhKHMscixlW3JdKTtuJiZ0LnB1c2gobil9fWZvcig7KythPHQubGVuZ3RoOyl7bGV0IG49cy5zZXR0aW5ncy50aWdodEF0dHJpYnV0ZXM/dFthXS5jaGFyQXQodFthXS5sZW5ndGgtMSk6dm9pZCAwO2EhPT10Lmxlbmd0aC0xJiZuIT09JyInJiZuIT09IiciJiYodFthXSs9IiAiKX1yZXR1cm4gdC5qb2luKCIiKX1mdW5jdGlvbiBPQmEocyxlLHQpe2xldCBhPWk2ZShzLnNjaGVtYSxlKSxyPXMuc2V0dGluZ3MuYWxsb3dQYXJzZUVycm9ycyYmcy5zY2hlbWEuc3BhY2U9PT0iaHRtbCI/MDoxLG49cy5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM/MDoxLG89cy5xdW90ZSxsO2lmKGEub3ZlcmxvYWRlZEJvb2xlYW4mJih0PT09YS5hdHRyaWJ1dGV8fHQ9PT0iIik/dD0hMDooYS5ib29sZWFufHxhLm92ZXJsb2FkZWRCb29sZWFuKSYmKHR5cGVvZiB0IT0ic3RyaW5nInx8dD09PWEuYXR0cmlidXRlfHx0PT09IiIpJiYodD0hIXQpLHQ9PW51bGx8fHQ9PT0hMXx8dHlwZW9mIHQ9PSJudW1iZXIiJiZOdW1iZXIuaXNOYU4odCkpcmV0dXJuIiI7bGV0IHA9STAoYS5hdHRyaWJ1dGUsT2JqZWN0LmFzc2lnbih7fSxzLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpycmUubmFtZVtyXVtuXX0pKTtyZXR1cm4gdD09PSEwfHwodD1BcnJheS5pc0FycmF5KHQpPyhhLmNvbW1hU2VwYXJhdGVkPyR4dDpMeHQpKHQse3BhZExlZnQ6IXMuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzfSk6U3RyaW5nKHQpLHMuc2V0dGluZ3MuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMmJiF0KT9wOihzLnNldHRpbmdzLnByZWZlclVucXVvdGVkJiYobD1JMCh0LE9iamVjdC5hc3NpZ24oe30scy5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHthdHRyaWJ1dGU6ITAsc3Vic2V0OnJyZS51bnF1b3RlZFtyXVtuXX0pKSksbCE9PXQmJihzLnNldHRpbmdzLnF1b3RlU21hcnQmJks5KHQsbyk+SzkodCxzLmFsdGVybmF0aXZlKSYmKG89cy5hbHRlcm5hdGl2ZSksbD1vK0kwKHQsT2JqZWN0LmFzc2lnbih7fSxzLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDoobz09PSInIj9ycmUuc2luZ2xlOnJyZS5kb3VibGUpW3JdW25dLGF0dHJpYnV0ZTohMH0pKStvKSxwKyhsJiYiPSIrbCkpfXZhciBycmUsSHh0PWcoKCk9PntRM2UoKTtEeHQoKTtyNmUoKTtFeHQoKTthcmUoKTtwNmUoKTtGeHQoKTtycmU9e25hbWU6W1tgCQpcZlxyICYvPT5gLnNwbGl0KCIiKSxgCQpcZlxyICImJy89PlxgYC5zcGxpdCgiIildLFtgXDAJClxmXHIgIiYnLzw9PmAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJicvPD0+XGBgLnNwbGl0KCIiKV1dLHVucXVvdGVkOltbYAkKXGZcciAmPmAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIiksYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIildXSxzaW5nbGU6W1siJiciLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWyJcMCYnIi5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dLGRvdWJsZTpbWyciJicuc3BsaXQoIiIpLCJcIiYnYCIuc3BsaXQoIiIpXSxbJ1wwIiYnLnNwbGl0KCIiKSwiXDBcIiYnYCIuc3BsaXQoIiIpXV19O2koQnh0LCJlbGVtZW50Iik7aShSQmEsInNlcmlhbGl6ZUF0dHJpYnV0ZXMiKTtpKE9CYSwic2VyaWFsaXplQXR0cmlidXRlIil9KTtmdW5jdGlvbiBvcmUocyxlLHQsYSl7cmV0dXJuIHQmJnQudHlwZT09PSJlbGVtZW50IiYmKHQudGFnTmFtZT09PSJzY3JpcHQifHx0LnRhZ05hbWU9PT0ic3R5bGUiKT9zLnZhbHVlOkkwKHMudmFsdWUsT2JqZWN0LmFzc2lnbih7fSxhLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpGQmF9KSl9dmFyIEZCYSxoNmU9ZygoKT0+e2FyZSgpO0ZCYT1bIjwiLCImIl07aShvcmUsInRleHQiKX0pO2Z1bmN0aW9uIHF4dChzLGUsdCxhKXtyZXR1cm4gYS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0h0bWw/cy52YWx1ZTpvcmUocyxlLHQsYSl9dmFyIGp4dD1nKCgpPT57aDZlKCk7aShxeHQsInJhdyIpfSk7ZnVuY3Rpb24gVnh0KHMsZSx0LGEpe3JldHVybiBhLmFsbChzKX12YXIgVXh0PWcoKCk9PntpKFZ4dCwicm9vdCIpfSk7ZnVuY3Rpb24gQkJhKHMpe3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgbm9kZSwgbm90IGAiK3MrImAiKX1mdW5jdGlvbiBIQmEocyl7bGV0IGU9czt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgIitlLnR5cGUrImAiKX12YXIgV3h0LEd4dD1nKCgpPT57Y2ZlKCk7enh0KCk7VHh0KCk7SHh0KCk7anh0KCk7VXh0KCk7aDZlKCk7V3h0PXJpZSgidHlwZSIse2ludmFsaWQ6QkJhLHVua25vd246SEJhLGhhbmRsZXJzOntjb21tZW50Ok14dCxkb2N0eXBlOkN4dCxlbGVtZW50OkJ4dCxyYXc6cXh0LHJvb3Q6Vnh0LHRleHQ6b3JlfX0pO2koQkJhLCJpbnZhbGlkIik7aShIQmEsInVua25vd24iKX0pO2Z1bmN0aW9uIGY2ZShzLGUpe2xldCB0PWV8fHFCYSxhPXQucXVvdGV8fCciJyxyPWE9PT0nIic/IiciOiciJztpZihhIT09JyInJiZhIT09IiciKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBxdW90ZSBgIithKyJgLCBleHBlY3RlZCBgJ2Agb3IgYFwiYCIpO3JldHVybntvbmU6VUJhLGFsbDpXQmEsc2V0dGluZ3M6e29taXRPcHRpb25hbFRhZ3M6dC5vbWl0T3B0aW9uYWxUYWdzfHwhMSxhbGxvd1BhcnNlRXJyb3JzOnQuYWxsb3dQYXJzZUVycm9yc3x8ITEsYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzOnQuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzfHwhMSxxdW90ZVNtYXJ0OnQucXVvdGVTbWFydHx8ITEscHJlZmVyVW5xdW90ZWQ6dC5wcmVmZXJVbnF1b3RlZHx8ITEsdGlnaHRBdHRyaWJ1dGVzOnQudGlnaHRBdHRyaWJ1dGVzfHwhMSx1cHBlckRvY3R5cGU6dC51cHBlckRvY3R5cGV8fCExLHRpZ2h0RG9jdHlwZTp0LnRpZ2h0RG9jdHlwZXx8ITEsYm9ndXNDb21tZW50czp0LmJvZ3VzQ29tbWVudHN8fCExLHRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0czp0LnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c3x8ITEsdGlnaHRTZWxmQ2xvc2luZzp0LnRpZ2h0U2VsZkNsb3Npbmd8fCExLGNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzOnQuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXN8fCExLGFsbG93RGFuZ2Vyb3VzSHRtbDp0LmFsbG93RGFuZ2Vyb3VzSHRtbHx8ITEsdm9pZHM6dC52b2lkc3x8VnZ0LGNoYXJhY3RlclJlZmVyZW5jZXM6dC5jaGFyYWN0ZXJSZWZlcmVuY2VzfHxqQmEsY2xvc2VTZWxmQ2xvc2luZzp0LmNsb3NlU2VsZkNsb3Npbmd8fCExLGNsb3NlRW1wdHlFbGVtZW50czp0LmNsb3NlRW1wdHlFbGVtZW50c3x8ITF9LHNjaGVtYTp0LnNwYWNlPT09InN2ZyI/SmllOnJ4dCxxdW90ZTphLGFsdGVybmF0aXZlOnJ9Lm9uZShBcnJheS5pc0FycmF5KHMpP3t0eXBlOiJyb290IixjaGlsZHJlbjpzfTpzLHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIFVCYShzLGUsdCl7cmV0dXJuIFd4dChzLGUsdCx0aGlzKX1mdW5jdGlvbiBXQmEocyl7bGV0IGU9W10sdD1zJiZzLmNoaWxkcmVufHxWQmEsYT0tMTtmb3IoOysrYTx0Lmxlbmd0aDspZVthXT10aGlzLm9uZSh0W2FdLGEscyk7cmV0dXJuIGUuam9pbigiIil9dmFyIHFCYSxqQmEsVkJhLEt4dD1nKCgpPT57VXZ0KCk7cjZlKCk7R3h0KCk7cUJhPXt9LGpCYT17fSxWQmE9W107aShmNmUsInRvSHRtbCIpO2koVUJhLCJvbmUiKTtpKFdCYSwiYWxsIil9KTt2YXIgWXh0PWcoKCk9PntLeHQoKX0pO2Z1bmN0aW9uIGxiKHMpe2xldCBlPXRoaXMse2hhbmRsZXJzOnQsc2FuaXRpemU6YSwuLi5yfT1zfHxHQmEsbj0hMSxvO3R5cGVvZiBhPT0iYm9vbGVhbiI/bj0hYTphJiYobz1hKSxlLmNvbXBpbGVyPWw7ZnVuY3Rpb24gbChwLGQpe2xldCB1PVdtZShwLHtoYW5kbGVyczp0LGFsbG93RGFuZ2Vyb3VzSHRtbDpufSksYz1uP3U6Qm1lKHUsbyksYj1mNmUoYyx7Li4ucixhbGxvd0Rhbmdlcm91c0h0bWw6bn0pO3JldHVybiBkLmV4dG5hbWUmJihkLmV4dG5hbWU9Ii5odG1sIikscCYmcC50eXBlPT09InJvb3QiJiZiJiYvW15cclxuXS8udGVzdChiLmNoYXJBdChiLmxlbmd0aC0xKSk/YitgCmA6Yn1pKGwsImNvbXBpbGVyIil9dmFyIEdCYSxaeHQ9ZygoKT0+e0ZidCgpO2p2dCgpO1l4dCgpO0dCYT17fTtpKGxiLCJyZW1hcmtIdG1sIil9KTt2YXIgWHh0PWcoKCk9PntaeHQoKX0pO2Z1bmN0aW9uIGNiKHMpe2xldCBlPXRoaXM7ZS5jb21waWxlcj10O2Z1bmN0aW9uIHQoYSl7cmV0dXJuIERmZShhLHsuLi5lLmRhdGEoInNldHRpbmdzIiksLi4ucyxleHRlbnNpb25zOmUuZGF0YSgidG9NYXJrZG93bkV4dGVuc2lvbnMiKXx8W119KX1pKHQsImNvbXBpbGVyIil9dmFyIFF4dD1nKCgpPT57bWllKCk7aShjYiwicmVtYXJrU3RyaW5naWZ5Iil9KTt2YXIgSnh0PWcoKCk9PntReHQoKX0pO2Z1bmN0aW9uIEtCYShzKXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgdD1hcmd1bWVudHNbZV07Zm9yKHZhciBhIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJihzW2FdPXRbYV0pfXJldHVybiBzfWZ1bmN0aW9uIG02ZShzLGUpe3JldHVybiBBcnJheShlKzEpLmpvaW4ocyl9ZnVuY3Rpb24gZXl0KHMpe3JldHVybiBzLnJlcGxhY2UoL15cbiovLCIiKX1mdW5jdGlvbiB0eXQocyl7Zm9yKHZhciBlPXMubGVuZ3RoO2U+MCYmc1tlLTFdPT09YApgOyllLS07cmV0dXJuIHMuc3Vic3RyaW5nKDAsZSl9ZnVuY3Rpb24gYXl0KHMpe3JldHVybiB0eXQoZXl0KHMpKX1mdW5jdGlvbiBnNmUocyl7cmV0dXJuIGI2ZShzLFlCYSl9ZnVuY3Rpb24gaXl0KHMpe3JldHVybiBiNmUocyxzeXQpfWZ1bmN0aW9uIFpCYShzKXtyZXR1cm4gb3l0KHMsc3l0KX1mdW5jdGlvbiBYQmEocyl7cmV0dXJuIGI2ZShzLHJ5dCl9ZnVuY3Rpb24gUUJhKHMpe3JldHVybiBveXQocyxyeXQpfWZ1bmN0aW9uIGI2ZShzLGUpe3JldHVybiBlLmluZGV4T2Yocy5ub2RlTmFtZSk+PTB9ZnVuY3Rpb24gb3l0KHMsZSl7cmV0dXJuIHMuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmUuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gcy5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KS5sZW5ndGh9KX1mdW5jdGlvbiBueXQocyl7cmV0dXJuIEpCYS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yZXBsYWNlKHRbMF0sdFsxXSl9LHMpfWZ1bmN0aW9uIG5yZShzKXtyZXR1cm4gcz9zLnJlcGxhY2UoLyhcbitccyopKy9nLGAKYCk6IiJ9ZnVuY3Rpb24gdjZlKHMpe3ZhciBlPXMucmVwbGFjZSgvKFs8PigpXSkvZywiXFwkMSIpO3JldHVybiBlLmluZGV4T2YoIiAiKT49MD8iPCIrZSsiPiI6ZX1mdW5jdGlvbiB4NmUocyl7cmV0dXJuIHMucmVwbGFjZSgvIi9nLCdcXCInKX1mdW5jdGlvbiBseXQocyl7dGhpcy5vcHRpb25zPXMsdGhpcy5fa2VlcD1bXSx0aGlzLl9yZW1vdmU9W10sdGhpcy5ibGFua1J1bGU9e3JlcGxhY2VtZW50OnMuYmxhbmtSZXBsYWNlbWVudH0sdGhpcy5rZWVwUmVwbGFjZW1lbnQ9cy5rZWVwUmVwbGFjZW1lbnQsdGhpcy5kZWZhdWx0UnVsZT17cmVwbGFjZW1lbnQ6cy5kZWZhdWx0UmVwbGFjZW1lbnR9LHRoaXMuYXJyYXk9W107Zm9yKHZhciBlIGluIHMucnVsZXMpdGhpcy5hcnJheS5wdXNoKHMucnVsZXNbZV0pfWZ1bmN0aW9uIHk2ZShzLGUsdCl7Zm9yKHZhciBhPTA7YTxzLmxlbmd0aDthKyspe3ZhciByPXNbYV07aWYoZUhhKHIsZSx0KSlyZXR1cm4gcn19ZnVuY3Rpb24gZUhhKHMsZSx0KXt2YXIgYT1zLmZpbHRlcjtpZih0eXBlb2YgYT09InN0cmluZyIpe2lmKGE9PT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuITB9ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKXtpZihhLmluZGV4T2YoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT4tMSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKXtpZihhLmNhbGwocyxlLHQpKXJldHVybiEwfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiYGZpbHRlcmAgbmVlZHMgdG8gYmUgYSBzdHJpbmcsIGFycmF5LCBvciBmdW5jdGlvbiIpfWZ1bmN0aW9uIHRIYShzKXt2YXIgZT1zLmVsZW1lbnQsdD1zLmlzQmxvY2ssYT1zLmlzVm9pZCxyPXMuaXNQcmV8fGZ1bmN0aW9uKGMpe3JldHVybiBjLm5vZGVOYW1lPT09IlBSRSJ9O2lmKCEoIWUuZmlyc3RDaGlsZHx8cihlKSkpe2Zvcih2YXIgbj1udWxsLG89ITEsbD1udWxsLHA9Y3l0KGwsZSxyKTtwIT09ZTspe2lmKHAubm9kZVR5cGU9PT0zfHxwLm5vZGVUeXBlPT09NCl7dmFyIGQ9cC5kYXRhLnJlcGxhY2UoL1sgXHJcblx0XSsvZywiICIpO2lmKCghbnx8LyAkLy50ZXN0KG4uZGF0YSkpJiYhbyYmZFswXT09PSIgIiYmKGQ9ZC5zdWJzdHIoMSkpLCFkKXtwPXc2ZShwKTtjb250aW51ZX1wLmRhdGE9ZCxuPXB9ZWxzZSBpZihwLm5vZGVUeXBlPT09MSl0KHApfHxwLm5vZGVOYW1lPT09IkJSIj8obiYmKG4uZGF0YT1uLmRhdGEucmVwbGFjZSgvICQvLCIiKSksbj1udWxsLG89ITEpOmEocCl8fHIocCk/KG49bnVsbCxvPSEwKTpuJiYobz0hMSk7ZWxzZXtwPXc2ZShwKTtjb250aW51ZX12YXIgdT1jeXQobCxwLHIpO2w9cCxwPXV9biYmKG4uZGF0YT1uLmRhdGEucmVwbGFjZSgvICQvLCIiKSxuLmRhdGF8fHc2ZShuKSl9fWZ1bmN0aW9uIHc2ZShzKXt2YXIgZT1zLm5leHRTaWJsaW5nfHxzLnBhcmVudE5vZGU7cmV0dXJuIHMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzKSxlfWZ1bmN0aW9uIGN5dChzLGUsdCl7cmV0dXJuIHMmJnMucGFyZW50Tm9kZT09PWV8fHQoZSk/ZS5uZXh0U2libGluZ3x8ZS5wYXJlbnROb2RlOmUuZmlyc3RDaGlsZHx8ZS5uZXh0U2libGluZ3x8ZS5wYXJlbnROb2RlfWZ1bmN0aW9uIGFIYSgpe3ZhciBzPWs2ZS5ET01QYXJzZXIsZT0hMTt0cnl7bmV3IHMoKS5wYXJzZUZyb21TdHJpbmcoIiIsInRleHQvaHRtbCIpJiYoZT0hMCl9Y2F0Y2h7fXJldHVybiBlfWZ1bmN0aW9uIHNIYSgpe3ZhciBzPWkoZnVuY3Rpb24oKXt9LCJQYXJzZXIiKTtyZXR1cm4gaUhhKCk/cy5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKTtyZXR1cm4gdC5kZXNpZ25Nb2RlPSJvbiIsdC5vcGVuKCksdC53cml0ZShlKSx0LmNsb3NlKCksdH06cy5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7cmV0dXJuIHQub3BlbigpLHQud3JpdGUoZSksdC5jbG9zZSgpLHR9LHN9ZnVuY3Rpb24gaUhhKCl7dmFyIHM9ITE7dHJ5e2RvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikub3BlbigpfWNhdGNoe2s2ZS5BY3RpdmVYT2JqZWN0JiYocz0hMCl9cmV0dXJuIHN9ZnVuY3Rpb24gb0hhKHMsZSl7dmFyIHQ7aWYodHlwZW9mIHM9PSJzdHJpbmciKXt2YXIgYT1uSGEoKS5wYXJzZUZyb21TdHJpbmcoJzx4LXR1cm5kb3duIGlkPSJ0dXJuZG93bi1yb290Ij4nK3MrIjwveC10dXJuZG93bj4iLCJ0ZXh0L2h0bWwiKTt0PWEuZ2V0RWxlbWVudEJ5SWQoInR1cm5kb3duLXJvb3QiKX1lbHNlIHQ9cy5jbG9uZU5vZGUoITApO3JldHVybiB0SGEoe2VsZW1lbnQ6dCxpc0Jsb2NrOmc2ZSxpc1ZvaWQ6aXl0LGlzUHJlOmUucHJlZm9ybWF0dGVkQ29kZT9sSGE6bnVsbH0pLHR9ZnVuY3Rpb24gbkhhKCl7cmV0dXJuIFM2ZT1TNmV8fG5ldyBySGEsUzZlfWZ1bmN0aW9uIGxIYShzKXtyZXR1cm4gcy5ub2RlTmFtZT09PSJQUkUifHxzLm5vZGVOYW1lPT09IkNPREUifWZ1bmN0aW9uIGNIYShzLGUpe3JldHVybiBzLmlzQmxvY2s9ZzZlKHMpLHMuaXNDb2RlPXMubm9kZU5hbWU9PT0iQ09ERSJ8fHMucGFyZW50Tm9kZS5pc0NvZGUscy5pc0JsYW5rPWRIYShzKSxzLmZsYW5raW5nV2hpdGVzcGFjZT11SGEocyxlKSxzfWZ1bmN0aW9uIGRIYShzKXtyZXR1cm4haXl0KHMpJiYhWEJhKHMpJiYvXlxzKiQvaS50ZXN0KHMudGV4dENvbnRlbnQpJiYhWkJhKHMpJiYhUUJhKHMpfWZ1bmN0aW9uIHVIYShzLGUpe2lmKHMuaXNCbG9ja3x8ZS5wcmVmb3JtYXR0ZWRDb2RlJiZzLmlzQ29kZSlyZXR1cm57bGVhZGluZzoiIix0cmFpbGluZzoiIn07dmFyIHQ9cEhhKHMudGV4dENvbnRlbnQpO3JldHVybiB0LmxlYWRpbmdBc2NpaSYmZHl0KCJsZWZ0IixzLGUpJiYodC5sZWFkaW5nPXQubGVhZGluZ05vbkFzY2lpKSx0LnRyYWlsaW5nQXNjaWkmJmR5dCgicmlnaHQiLHMsZSkmJih0LnRyYWlsaW5nPXQudHJhaWxpbmdOb25Bc2NpaSkse2xlYWRpbmc6dC5sZWFkaW5nLHRyYWlsaW5nOnQudHJhaWxpbmd9fWZ1bmN0aW9uIHBIYShzKXt2YXIgZT1zLm1hdGNoKC9eKChbIFx0XHJcbl0qKShccyopKSg/Oig/PVxTKVtcc1xTXSpcUyk/KChccyo/KShbIFx0XHJcbl0qKSkkLyk7cmV0dXJue2xlYWRpbmc6ZVsxXSxsZWFkaW5nQXNjaWk6ZVsyXSxsZWFkaW5nTm9uQXNjaWk6ZVszXSx0cmFpbGluZzplWzRdLHRyYWlsaW5nTm9uQXNjaWk6ZVs1XSx0cmFpbGluZ0FzY2lpOmVbNl19fWZ1bmN0aW9uIGR5dChzLGUsdCl7dmFyIGEscixuO3JldHVybiBzPT09ImxlZnQiPyhhPWUucHJldmlvdXNTaWJsaW5nLHI9LyAkLyk6KGE9ZS5uZXh0U2libGluZyxyPS9eIC8pLGEmJihhLm5vZGVUeXBlPT09Mz9uPXIudGVzdChhLm5vZGVWYWx1ZSk6dC5wcmVmb3JtYXR0ZWRDb2RlJiZhLm5vZGVOYW1lPT09IkNPREUiP249ITE6YS5ub2RlVHlwZT09PTEmJiFnNmUoYSkmJihuPXIudGVzdChhLnRleHRDb250ZW50KSkpLG59ZnVuY3Rpb24gYWgocyl7aWYoISh0aGlzIGluc3RhbmNlb2YgYWgpKXJldHVybiBuZXcgYWgocyk7dmFyIGU9e3J1bGVzOnRuLGhlYWRpbmdTdHlsZToic2V0ZXh0IixocjoiKiAqICoiLGJ1bGxldExpc3RNYXJrZXI6IioiLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsZmVuY2U6ImBgYCIsZW1EZWxpbWl0ZXI6Il8iLHN0cm9uZ0RlbGltaXRlcjoiKioiLGxpbmtTdHlsZToiaW5saW5lZCIsbGlua1JlZmVyZW5jZVN0eWxlOiJmdWxsIixicjoiICAiLHByZWZvcm1hdHRlZENvZGU6ITEsYmxhbmtSZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsYSl7cmV0dXJuIGEuaXNCbG9jaz9gCgpgOiIifSwiYmxhbmtSZXBsYWNlbWVudCIpLGtlZXBSZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsYSl7cmV0dXJuIGEuaXNCbG9jaz9gCgpgK2Eub3V0ZXJIVE1MK2AKCmA6YS5vdXRlckhUTUx9LCJrZWVwUmVwbGFjZW1lbnQiKSxkZWZhdWx0UmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGEpe3JldHVybiBhLmlzQmxvY2s/YAoKYCt0K2AKCmA6dH0sImRlZmF1bHRSZXBsYWNlbWVudCIpfTt0aGlzLm9wdGlvbnM9S0JhKHt9LGUscyksdGhpcy5ydWxlcz1uZXcgbHl0KHRoaXMub3B0aW9ucyl9ZnVuY3Rpb24gdXl0KHMpe3ZhciBlPXRoaXM7cmV0dXJuIGhIYS5jYWxsKHMuY2hpbGROb2RlcyxmdW5jdGlvbih0LGEpe2E9bmV3IGNIYShhLGUub3B0aW9ucyk7dmFyIHI9IiI7cmV0dXJuIGEubm9kZVR5cGU9PT0zP3I9YS5pc0NvZGU/YS5ub2RlVmFsdWU6ZS5lc2NhcGUoYS5ub2RlVmFsdWUpOmEubm9kZVR5cGU9PT0xJiYocj1tSGEuY2FsbChlLGEpKSxweXQodCxyKX0sIiIpfWZ1bmN0aW9uIGZIYShzKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnJ1bGVzLmZvckVhY2goZnVuY3Rpb24odCl7dHlwZW9mIHQuYXBwZW5kPT0iZnVuY3Rpb24iJiYocz1weXQocyx0LmFwcGVuZChlLm9wdGlvbnMpKSl9KSxzLnJlcGxhY2UoL15bXHRcclxuXSsvLCIiKS5yZXBsYWNlKC9bXHRcclxuXHNdKyQvLCIiKX1mdW5jdGlvbiBtSGEocyl7dmFyIGU9dGhpcy5ydWxlcy5mb3JOb2RlKHMpLHQ9dXl0LmNhbGwodGhpcyxzKSxhPXMuZmxhbmtpbmdXaGl0ZXNwYWNlO3JldHVybihhLmxlYWRpbmd8fGEudHJhaWxpbmcpJiYodD10LnRyaW0oKSksYS5sZWFkaW5nK2UucmVwbGFjZW1lbnQodCxzLHRoaXMub3B0aW9ucykrYS50cmFpbGluZ31mdW5jdGlvbiBweXQocyxlKXt2YXIgdD10eXQocyksYT1leXQoZSkscj1NYXRoLm1heChzLmxlbmd0aC10Lmxlbmd0aCxlLmxlbmd0aC1hLmxlbmd0aCksbj1gCgpgLnN1YnN0cmluZygwLHIpO3JldHVybiB0K24rYX1mdW5jdGlvbiBnSGEocyl7cmV0dXJuIHMhPW51bGwmJih0eXBlb2Ygcz09InN0cmluZyJ8fHMubm9kZVR5cGUmJihzLm5vZGVUeXBlPT09MXx8cy5ub2RlVHlwZT09PTl8fHMubm9kZVR5cGU9PT0xMSkpfXZhciBZQmEsc3l0LHJ5dCxKQmEsdG4sazZlLHJIYSxTNmUsaEhhLGh5dD1nKCgpPT57aShLQmEsImV4dGVuZCIpO2kobTZlLCJyZXBlYXQiKTtpKGV5dCwidHJpbUxlYWRpbmdOZXdsaW5lcyIpO2kodHl0LCJ0cmltVHJhaWxpbmdOZXdsaW5lcyIpO2koYXl0LCJ0cmltTmV3bGluZXMiKTtZQmE9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07aShnNmUsImlzQmxvY2siKTtzeXQ9WyJBUkVBIiwiQkFTRSIsIkJSIiwiQ09MIiwiQ09NTUFORCIsIkVNQkVEIiwiSFIiLCJJTUciLCJJTlBVVCIsIktFWUdFTiIsIkxJTksiLCJNRVRBIiwiUEFSQU0iLCJTT1VSQ0UiLCJUUkFDSyIsIldCUiJdO2koaXl0LCJpc1ZvaWQiKTtpKFpCYSwiaGFzVm9pZCIpO3J5dD1bIkEiLCJUQUJMRSIsIlRIRUFEIiwiVEJPRFkiLCJURk9PVCIsIlRIIiwiVEQiLCJJRlJBTUUiLCJTQ1JJUFQiLCJBVURJTyIsIlZJREVPIl07aShYQmEsImlzTWVhbmluZ2Z1bFdoZW5CbGFuayIpO2koUUJhLCJoYXNNZWFuaW5nZnVsV2hlbkJsYW5rIik7aShiNmUsImlzIik7aShveXQsImhhcyIpO0pCYT1bWy9cXC9nLCJcXFxcIl0sWy9cKi9nLCJcXCoiXSxbL14tL2csIlxcLSJdLFsvXlwrIC9nLCJcXCsgIl0sWy9eKD0rKS9nLCJcXCQxIl0sWy9eKCN7MSw2fSkgL2csIlxcJDEgIl0sWy9gL2csIlxcYCJdLFsvXn5+fi9nLCJcXH5+fiJdLFsvXFsvZywiXFxbIl0sWy9cXS9nLCJcXF0iXSxbL14+L2csIlxcPiJdLFsvXy9nLCJcXF8iXSxbL14oXGQrKVwuIC9nLCIkMVxcLiAiXV07aShueXQsImVzY2FwZU1hcmtkb3duIik7dG49e307dG4ucGFyYWdyYXBoPXtmaWx0ZXI6InAiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyl7cmV0dXJuYAoKYCtzK2AKCmB9LCJyZXBsYWNlbWVudCIpfSx0bi5saW5lQnJlYWs9e2ZpbHRlcjoiYnIiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3JldHVybiB0LmJyK2AKYH0sInJlcGxhY2VtZW50Iil9LHRuLmhlYWRpbmc9e2ZpbHRlcjpbImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3ZhciBhPU51bWJlcihlLm5vZGVOYW1lLmNoYXJBdCgxKSk7aWYodC5oZWFkaW5nU3R5bGU9PT0ic2V0ZXh0IiYmYTwzKXt2YXIgcj1tNmUoYT09PTE/Ij0iOiItIixzLmxlbmd0aCk7cmV0dXJuYAoKYCtzK2AKYCtyK2AKCmB9ZWxzZSByZXR1cm5gCgpgK202ZSgiIyIsYSkrIiAiK3MrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmJsb2NrcXVvdGU9e2ZpbHRlcjoiYmxvY2txdW90ZSIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzKXtyZXR1cm4gcz1heXQocykucmVwbGFjZSgvXi9nbSwiPiAiKSxgCgpgK3MrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmxpc3Q9e2ZpbHRlcjpbInVsIiwib2wiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHMsZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0Lm5vZGVOYW1lPT09IkxJIiYmdC5sYXN0RWxlbWVudENoaWxkPT09ZT9gCmArczpgCgpgK3MrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmxpc3RJdGVtPXtmaWx0ZXI6ImxpIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHMsZSx0KXt2YXIgYT10LmJ1bGxldExpc3RNYXJrZXIrIiAgICIscj1lLnBhcmVudE5vZGU7aWYoci5ub2RlTmFtZT09PSJPTCIpe3ZhciBuPXIuZ2V0QXR0cmlidXRlKCJzdGFydCIpLG89QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChyLmNoaWxkcmVuLGUpO2E9KG4/TnVtYmVyKG4pK286bysxKSsiLiAgIn12YXIgbD0vXG4kLy50ZXN0KHMpO3JldHVybiBzPWF5dChzKSsobD9gCmA6IiIpLHM9cy5yZXBsYWNlKC9cbi9nbSxgCmArIiAiLnJlcGVhdChhLmxlbmd0aCkpLGErcysoZS5uZXh0U2libGluZz9gCmA6IiIpfSwicmVwbGFjZW1lbnQiKX0sdG4uaW5kZW50ZWRDb2RlQmxvY2s9e2ZpbHRlcjppKGZ1bmN0aW9uKHMsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iaW5kZW50ZWQiJiZzLm5vZGVOYW1lPT09IlBSRSImJnMuZmlyc3RDaGlsZCYmcy5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzLGUsdCl7cmV0dXJuYAoKICAgIGArZS5maXJzdENoaWxkLnRleHRDb250ZW50LnJlcGxhY2UoL1xuL2csYAogICAgYCkrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmZlbmNlZENvZGVCbG9jaz17ZmlsdGVyOmkoZnVuY3Rpb24ocyxlKXtyZXR1cm4gZS5jb2RlQmxvY2tTdHlsZT09PSJmZW5jZWQiJiZzLm5vZGVOYW1lPT09IlBSRSImJnMuZmlyc3RDaGlsZCYmcy5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiLHI9KGEubWF0Y2goL2xhbmd1YWdlLShcUyspLyl8fFtudWxsLCIiXSlbMV0sbj1lLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQsbz10LmZlbmNlLmNoYXJBdCgwKSxsPTMscD1uZXcgUmVnRXhwKCJeIitvKyJ7Myx9IiwiZ20iKSxkO2Q9cC5leGVjKG4pOylkWzBdLmxlbmd0aD49bCYmKGw9ZFswXS5sZW5ndGgrMSk7dmFyIHU9bTZlKG8sbCk7cmV0dXJuYAoKYCt1K3IrYApgK24ucmVwbGFjZSgvXG4kLywiIikrYApgK3UrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmhvcml6b250YWxSdWxlPXtmaWx0ZXI6ImhyIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHMsZSx0KXtyZXR1cm5gCgpgK3QuaHIrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmlubGluZUxpbms9e2ZpbHRlcjppKGZ1bmN0aW9uKHMsZSl7cmV0dXJuIGUubGlua1N0eWxlPT09ImlubGluZWQiJiZzLm5vZGVOYW1lPT09IkEiJiZzLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzLGUpe3ZhciB0PXY2ZShlLmdldEF0dHJpYnV0ZSgiaHJlZiIpKSxhPXg2ZShucmUoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpKSxyPWE/JyAiJythKyciJzoiIjtyZXR1cm4iWyIrcysiXSgiK3QrcisiKSJ9LCJyZXBsYWNlbWVudCIpfSx0bi5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6aShmdW5jdGlvbihzLGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJyZWZlcmVuY2VkIiYmcy5ub2RlTmFtZT09PSJBIiYmcy5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3ZhciBhPXY2ZShlLmdldEF0dHJpYnV0ZSgiaHJlZiIpKSxyPW5yZShlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSk7ciYmKHI9JyAiJyt4NmUocikrJyInKTt2YXIgbixvO3N3aXRjaCh0LmxpbmtSZWZlcmVuY2VTdHlsZSl7Y2FzZSJjb2xsYXBzZWQiOm49IlsiK3MrIl1bXSIsbz0iWyIrcysiXTogIithK3I7YnJlYWs7Y2FzZSJzaG9ydGN1dCI6bj0iWyIrcysiXSIsbz0iWyIrcysiXTogIithK3I7YnJlYWs7ZGVmYXVsdDp2YXIgbD10aGlzLnJlZmVyZW5jZXMubGVuZ3RoKzE7bj0iWyIrcysiXVsiK2wrIl0iLG89IlsiK2wrIl06ICIrYStyfXJldHVybiB0aGlzLnJlZmVyZW5jZXMucHVzaChvKSxufSwicmVwbGFjZW1lbnQiKSxyZWZlcmVuY2VzOltdLGFwcGVuZDppKGZ1bmN0aW9uKHMpe3ZhciBlPSIiO3JldHVybiB0aGlzLnJlZmVyZW5jZXMubGVuZ3RoJiYoZT1gCgpgK3RoaXMucmVmZXJlbmNlcy5qb2luKGAKYCkrYAoKYCx0aGlzLnJlZmVyZW5jZXM9W10pLGV9LCJhcHBlbmQiKX0sdG4uZW1waGFzaXM9e2ZpbHRlcjpbImVtIiwiaSJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3JldHVybiBzLnRyaW0oKT90LmVtRGVsaW1pdGVyK3MrdC5lbURlbGltaXRlcjoiIn0sInJlcGxhY2VtZW50Iil9LHRuLnN0cm9uZz17ZmlsdGVyOlsic3Ryb25nIiwiYiJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3JldHVybiBzLnRyaW0oKT90LnN0cm9uZ0RlbGltaXRlcitzK3Quc3Ryb25nRGVsaW1pdGVyOiIifSwicmVwbGFjZW1lbnQiKX0sdG4uY29kZT17ZmlsdGVyOmkoZnVuY3Rpb24ocyl7dmFyIGU9cy5wcmV2aW91c1NpYmxpbmd8fHMubmV4dFNpYmxpbmcsdD1zLnBhcmVudE5vZGUubm9kZU5hbWU9PT0iUFJFIiYmIWU7cmV0dXJuIHMubm9kZU5hbWU9PT0iQ09ERSImJiF0fSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzKXtpZighcylyZXR1cm4iIjtzPXMucmVwbGFjZSgvXHI/XG58XHIvZywiICIpO2Zvcih2YXIgZT0vXmB8XiAuKj9bXiBdLiogJHxgJC8udGVzdChzKT8iICI6IiIsdD0iYCIsYT1zLm1hdGNoKC9gKy9nbSl8fFtdO2EuaW5kZXhPZih0KSE9PS0xOyl0PXQrImAiO3JldHVybiB0K2UrcytlK3R9LCJyZXBsYWNlbWVudCIpfSx0bi5pbWFnZT17ZmlsdGVyOiJpbWciLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlKXt2YXIgdD1ueXQobnJlKGUuZ2V0QXR0cmlidXRlKCJhbHQiKSkpLGE9djZlKGUuZ2V0QXR0cmlidXRlKCJzcmMiKXx8IiIpLHI9bnJlKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSxuPXI/JyAiJyt4NmUocikrJyInOiIiO3JldHVybiBhPyIhWyIrdCsiXSgiK2ErbisiKSI6IiJ9LCJyZXBsYWNlbWVudCIpfTtpKG5yZSwiY2xlYW5BdHRyaWJ1dGUiKTtpKHY2ZSwiZXNjYXBlTGlua0Rlc3RpbmF0aW9uIik7aSh4NmUsImVzY2FwZUxpbmtUaXRsZSIpO2kobHl0LCJSdWxlcyIpLGx5dC5wcm90b3R5cGU9e2FkZDppKGZ1bmN0aW9uKHMsZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpfSwiYWRkIiksa2VlcDppKGZ1bmN0aW9uKHMpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOnMscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0sImtlZXAiKSxyZW1vdmU6aShmdW5jdGlvbihzKXt0aGlzLl9yZW1vdmUudW5zaGlmdCh7ZmlsdGVyOnMscmVwbGFjZW1lbnQ6aShmdW5jdGlvbigpe3JldHVybiIifSwicmVwbGFjZW1lbnQiKX0pfSwicmVtb3ZlIiksZm9yTm9kZTppKGZ1bmN0aW9uKHMpe2lmKHMuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIGU7cmV0dXJuKGU9eTZlKHRoaXMuYXJyYXkscyx0aGlzLm9wdGlvbnMpKXx8KGU9eTZlKHRoaXMuX2tlZXAscyx0aGlzLm9wdGlvbnMpKXx8KGU9eTZlKHRoaXMuX3JlbW92ZSxzLHRoaXMub3B0aW9ucykpP2U6dGhpcy5kZWZhdWx0UnVsZX0sImZvck5vZGUiKSxmb3JFYWNoOmkoZnVuY3Rpb24ocyl7Zm9yKHZhciBlPTA7ZTx0aGlzLmFycmF5Lmxlbmd0aDtlKyspcyh0aGlzLmFycmF5W2VdLGUpfSwiZm9yRWFjaCIpfTtpKHk2ZSwiZmluZFJ1bGUiKTtpKGVIYSwiZmlsdGVyVmFsdWUiKTtpKHRIYSwiY29sbGFwc2VXaGl0ZXNwYWNlIik7aSh3NmUsInJlbW92ZSIpO2koY3l0LCJuZXh0Iik7azZlPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fTtpKGFIYSwiY2FuUGFyc2VIVE1MTmF0aXZlbHkiKTtpKHNIYSwiY3JlYXRlSFRNTFBhcnNlciIpO2koaUhhLCJzaG91bGRVc2VBY3RpdmVYIik7ckhhPWFIYSgpP2s2ZS5ET01QYXJzZXI6c0hhKCk7aShvSGEsIlJvb3ROb2RlIik7aShuSGEsImh0bWxQYXJzZXIiKTtpKGxIYSwiaXNQcmVPckNvZGUiKTtpKGNIYSwiTm9kZSIpO2koZEhhLCJpc0JsYW5rIik7aSh1SGEsImZsYW5raW5nV2hpdGVzcGFjZSIpO2kocEhhLCJlZGdlV2hpdGVzcGFjZSIpO2koZHl0LCJpc0ZsYW5rZWRCeVdoaXRlc3BhY2UiKTtoSGE9QXJyYXkucHJvdG90eXBlLnJlZHVjZTtpKGFoLCJUdXJuZG93blNlcnZpY2UiKSxhaC5wcm90b3R5cGU9e3R1cm5kb3duOmkoZnVuY3Rpb24ocyl7aWYoIWdIYShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKHMrIiBpcyBub3QgYSBzdHJpbmcsIG9yIGFuIGVsZW1lbnQvZG9jdW1lbnQvZnJhZ21lbnQgbm9kZS4iKTtpZihzPT09IiIpcmV0dXJuIiI7dmFyIGU9dXl0LmNhbGwodGhpcyxuZXcgb0hhKHMsdGhpcy5vcHRpb25zKSk7cmV0dXJuIGZIYS5jYWxsKHRoaXMsZSl9LCJ0dXJuZG93biIpLHVzZTppKGZ1bmN0aW9uKHMpe2lmKEFycmF5LmlzQXJyYXkocykpZm9yKHZhciBlPTA7ZTxzLmxlbmd0aDtlKyspdGhpcy51c2Uoc1tlXSk7ZWxzZSBpZih0eXBlb2Ygcz09ImZ1bmN0aW9uIilzKHRoaXMpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigicGx1Z2luIG11c3QgYmUgYSBGdW5jdGlvbiBvciBhbiBBcnJheSBvZiBGdW5jdGlvbnMiKTtyZXR1cm4gdGhpc30sInVzZSIpLGFkZFJ1bGU6aShmdW5jdGlvbihzLGUpe3JldHVybiB0aGlzLnJ1bGVzLmFkZChzLGUpLHRoaXN9LCJhZGRSdWxlIiksa2VlcDppKGZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnJ1bGVzLmtlZXAocyksdGhpc30sImtlZXAiKSxyZW1vdmU6aShmdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5ydWxlcy5yZW1vdmUocyksdGhpc30sInJlbW92ZSIpLGVzY2FwZTppKGZ1bmN0aW9uKHMpe3JldHVybiBueXQocyl9LCJlc2NhcGUiKX07aSh1eXQsInByb2Nlc3MiKTtpKGZIYSwicG9zdFByb2Nlc3MiKTtpKG1IYSwicmVwbGFjZW1lbnRGb3JOb2RlIik7aShweXQsImpvaW4iKTtpKGdIYSwiY2FuQ29udmVydCIpfSk7dmFyICQ2ZT17fTt5dCgkNmUse2dmbTooKT0+Z3l0LGhpZ2hsaWdodGVkQ29kZUJsb2NrOigpPT5NNmUsc3RyaWtldGhyb3VnaDooKT0+ejZlLHRhYmxlczooKT0+QzZlLHRhc2tMaXN0SXRlbXM6KCk9PlQ2ZX0pO2Z1bmN0aW9uIE02ZShzKXtzLmFkZFJ1bGUoImhpZ2hsaWdodGVkQ29kZUJsb2NrIix7ZmlsdGVyOmkoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5maXJzdENoaWxkO3JldHVybiBlLm5vZGVOYW1lPT09IkRJViImJmZ5dC50ZXN0KGUuY2xhc3NOYW1lKSYmdCYmdC5ub2RlTmFtZT09PSJQUkUifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihlLHQsYSl7dmFyIHI9dC5jbGFzc05hbWV8fCIiLG49KHIubWF0Y2goZnl0KXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK2EuZmVuY2UrbitgCmArdC5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCthLmZlbmNlK2AKCmB9LCJyZXBsYWNlbWVudCIpfSl9ZnVuY3Rpb24gejZlKHMpe3MuYWRkUnVsZSgic3RyaWtldGhyb3VnaCIse2ZpbHRlcjpbImRlbCIsInMiLCJzdHJpa2UiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKGUpe3JldHVybiJ+IitlKyJ+In0sInJlcGxhY2VtZW50Iil9KX1mdW5jdGlvbiBfNmUocyl7dmFyIGU9cy5wYXJlbnROb2RlO3JldHVybiBlLm5vZGVOYW1lPT09IlRIRUFEInx8ZS5maXJzdENoaWxkPT09cyYmKGUubm9kZU5hbWU9PT0iVEFCTEUifHx4SGEoZSkpJiZ2SGEuY2FsbChzLmNoaWxkTm9kZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iVEgifSl9ZnVuY3Rpb24geEhhKHMpe3ZhciBlPXMucHJldmlvdXNTaWJsaW5nO3JldHVybiBzLm5vZGVOYW1lPT09IlRCT0RZIiYmKCFlfHxlLm5vZGVOYW1lPT09IlRIRUFEIiYmL15ccyokL2kudGVzdChlLnRleHRDb250ZW50KSl9ZnVuY3Rpb24gbXl0KHMsZSl7dmFyIHQ9YkhhLmNhbGwoZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMsZSksYT0iICI7cmV0dXJuIHQ9PT0wJiYoYT0ifCAiKSxhK3MrIiB8In1mdW5jdGlvbiBDNmUocyl7cy5rZWVwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVOYW1lPT09IlRBQkxFIiYmIV82ZSh0LnJvd3NbMF0pfSk7Zm9yKHZhciBlIGluIGRiKXMuYWRkUnVsZShlLGRiW2VdKX1mdW5jdGlvbiBUNmUocyl7cy5hZGRSdWxlKCJ0YXNrTGlzdEl0ZW1zIix7ZmlsdGVyOmkoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PSJjaGVja2JveCImJmUucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJMSSJ9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQuY2hlY2tlZD8iW3hdIjoiWyBdIikrIiAifSwicmVwbGFjZW1lbnQiKX0pfWZ1bmN0aW9uIGd5dChzKXtzLnVzZShbTTZlLHo2ZSxDNmUsVDZlXSl9dmFyIGZ5dCxiSGEsdkhhLGRiLGJ5dD1nKCgpPT57Znl0PS9oaWdobGlnaHQtKD86dGV4dHxzb3VyY2UpLShbYS16MC05XSspLztpKE02ZSwiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siKTtpKHo2ZSwic3RyaWtldGhyb3VnaCIpO2JIYT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZix2SGE9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LGRiPXt9O2RiLnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlKXtyZXR1cm4gbXl0KHMsZSl9LCJyZXBsYWNlbWVudCIpfSxkYi50YWJsZVJvdz17ZmlsdGVyOiJ0ciIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzLGUpe3ZhciB0PSIiLGE9e2xlZnQ6IjotLSIscmlnaHQ6Ii0tOiIsY2VudGVyOiI6LToifTtpZihfNmUoZSkpZm9yKHZhciByPTA7cjxlLmNoaWxkTm9kZXMubGVuZ3RoO3IrKyl7dmFyIG49Ii0tLSIsbz0oZS5jaGlsZE5vZGVzW3JdLmdldEF0dHJpYnV0ZSgiYWxpZ24iKXx8IiIpLnRvTG93ZXJDYXNlKCk7byYmKG49YVtvXXx8biksdCs9bXl0KG4sZS5jaGlsZE5vZGVzW3JdKX1yZXR1cm5gCmArcysodD9gCmArdDoiIil9LCJyZXBsYWNlbWVudCIpfSxkYi50YWJsZT17ZmlsdGVyOmkoZnVuY3Rpb24ocyl7cmV0dXJuIHMubm9kZU5hbWU9PT0iVEFCTEUiJiZfNmUocy5yb3dzWzBdKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyl7cmV0dXJuIHM9cy5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK3MrYAoKYH0sInJlcGxhY2VtZW50Iil9LGRiLnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzKXtyZXR1cm4gc30sInJlcGxhY2VtZW50Iil9O2koXzZlLCJpc0hlYWRpbmdSb3ciKTtpKHhIYSwiaXNGaXJzdFRib2R5Iik7aShteXQsImNlbGwiKTtpKEM2ZSwidGFibGVzIik7aShUNmUsInRhc2tMaXN0SXRlbXMiKTtpKGd5dCwiZ2ZtIil9KTt2YXIgRDZlLEw2ZT1nKCgpPT57aTh0KCk7Ujh0KCk7ajl0KCk7bWJ0KCk7Q2J0KCk7WHh0KCk7Snh0KCk7aHl0KCk7Ynl0KCk7RDZlPSQ2ZX0pO3ZhciB5SGEsbHJlLHh5dD1nKCgpPT57TDZlKCk7eUhhPWkocz0+cy50eXBlPT09InlhbWwiJiYidmFsdWUiaW4gcyYmdHlwZW9mIHMudmFsdWU9PSJzdHJpbmciLCJpc1lhbWxOb2RlIiksbHJlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiTWRQYXJzZWRSZXN1bHQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMub3JpZ2luYWxTdHJpbmc9IiIsdGhpcy50aXRsZT0iIix0aGlzLmh0bWw9IiIsdGhpcy5mcm9udG1hdHRlckRhdGE9e319c3RhdGljIGFzeW5jIGNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKXtsZXQgdD1uZXcgcztyZXR1cm4gYXdhaXQgdC51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSksdH1hc3luYyB1cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7dGhpcy5vcmlnaW5hbFN0cmluZz1lO2xldCB0LGE9YXdhaXQgcmsoKS51c2UoYWIpLnVzZSh0YikudXNlKGliLFsieWFtbCIsInRvbWwiXSkudXNlKGNiKS51c2UobGIpLnVzZSgoKT0+cj0+e2xldCBuPXIuY2hpbGRyZW4uZmluZCh5SGEpO24mJih0PW4udmFsdWUpfSkucHJvY2VzcyhlKTt0aGlzLmh0bWw9YS50b1N0cmluZygpLHQ/dGhpcy5mcm9udG1hdHRlckRhdGE9YXdhaXQgdGsueWFtbFN0cmluZ1RvT2JqZWN0KHQpOnRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fX19KTt2YXIgJGs9e307eXQoJGsse1NtYXJ0TWFya2Rvd246KCk9PkU2ZX0pO3ZhciBFNmUseXl0PWcoKCk9PntMNmUoKTt4eXQoKTtFNmU9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJTbWFydE1hcmtkb3duIil9c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbChlKXtyZXR1cm4oYXdhaXQgbmV3IHMoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKXtyZXR1cm4gYXdhaXQgbHJlLmNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKX1odG1sVG9NYXJrZG93bihlKXtsZXQgdD1uZXcgYWgoe2hlYWRpbmdTdHlsZToiYXR4Iixjb2RlQmxvY2tTdHlsZToiZmVuY2VkIn0pO3JldHVybiB0LnVzZShENmUuZ2ZtKSx0LnR1cm5kb3duKGUpfX19KTt2YXIgenl0PXBsKE4xPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShOMSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTjEuUGF0aEVycm9yPU4xLlRva2VuRGF0YT12b2lkIDAsTjEucGFyc2U9QTZlLE4xLmNvbXBpbGU9X0hhLE4xLm1hdGNoPXpIYSxOMS5wYXRoVG9SZWdleHA9U3l0LE4xLnN0cmluZ2lmeT1USGE7dmFyIFA2ZT0iLyIsSTZlPWkocz0+cywiTk9PUF9WQUxVRSIpLHdIYT0vXlskX1xwe0lEX1N0YXJ0fV0kL3Usd3l0PS9eWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dJC91LGtIYT0vXlskX1xwe0lEX1N0YXJ0fV1bJFx1MjAwY1x1MjAwZFxwe0lEX0NvbnRpbnVlfV0qJC91O2Z1bmN0aW9uIFNIYShzKXtyZXR1cm4gcy5yZXBsYWNlKC9be30oKVxbXF0rPyE6KlxcXS9nLCJcXCQmIil9aShTSGEsImVzY2FwZVRleHQiKTtmdW5jdGlvbiBBMChzKXtyZXR1cm4gcy5yZXBsYWNlKC9bLisqP14ke30oKVtcXXwvXFxdL2csIlxcJCYiKX1pKEEwLCJlc2NhcGUiKTt2YXIgY3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRva2VuRGF0YSIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy50b2tlbnM9ZSx0aGlzLm9yaWdpbmFsUGF0aD10fX07TjEuVG9rZW5EYXRhPWNyZTt2YXIga2Q9Y2xhc3MgZXh0ZW5kcyBUeXBlRXJyb3J7c3RhdGlje2kodGhpcywiUGF0aEVycm9yIil9Y29uc3RydWN0b3IoZSx0KXtsZXQgYT1lO3QmJihhKz1gOiAke3R9YCksYSs9IjsgdmlzaXQgaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yIGZvciBpbmZvIixzdXBlcihhKSx0aGlzLm9yaWdpbmFsUGF0aD10fX07TjEuUGF0aEVycm9yPWtkO2Z1bmN0aW9uIEE2ZShzLGU9e30pe2xldHtlbmNvZGVQYXRoOnQ9STZlfT1lLGE9Wy4uLnNdLHI9MDtmdW5jdGlvbiBuKG8pe2xldCBsPVtdLHA9IiI7ZnVuY3Rpb24gZCgpe3AmJihsLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOnQocCl9KSxwPSIiKX1mb3IoaShkLCJ3cml0ZVBhdGgiKTtyPGEubGVuZ3RoOyl7bGV0IHU9YVtyKytdO2lmKHU9PT1vKXJldHVybiBkKCksbDtpZih1PT09IlxcIil7aWYocj09PWEubGVuZ3RoKXRocm93IG5ldyBrZChgVW5leHBlY3RlZCBlbmQgYWZ0ZXIgXFwgYXQgaW5kZXggJHtyfWAscyk7cCs9YVtyKytdO2NvbnRpbnVlfWlmKHU9PT0iOiJ8fHU9PT0iKiIpe2xldCBjPXU9PT0iOiI/InBhcmFtIjoid2lsZGNhcmQiLGI9IiI7aWYod0hhLnRlc3QoYVtyXSkpZG8gYis9YVtyKytdO3doaWxlKHd5dC50ZXN0KGFbcl0pKTtlbHNlIGlmKGFbcl09PT0nIicpe2xldCB2PXI7Zm9yKDtyPGEubGVuZ3RoOyl7aWYoYVsrK3JdPT09JyInKXtyKyssdj0wO2JyZWFrfWFbcl09PT0iXFwiJiZyKyssYis9YVtyXX1pZih2KXRocm93IG5ldyBrZChgVW50ZXJtaW5hdGVkIHF1b3RlIGF0IGluZGV4ICR7dn1gLHMpfWlmKCFiKXRocm93IG5ldyBrZChgTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBpbmRleCAke3J9YCxzKTtkKCksbC5wdXNoKHt0eXBlOmMsbmFtZTpifSk7Y29udGludWV9aWYodT09PSJ7Iil7ZCgpLGwucHVzaCh7dHlwZToiZ3JvdXAiLHRva2VuczpuKCJ9Iil9KTtjb250aW51ZX1pZih1PT09In0ifHx1PT09IigifHx1PT09IikifHx1PT09IlsifHx1PT09Il0ifHx1PT09IisifHx1PT09Ij8ifHx1PT09IiEiKXRocm93IG5ldyBrZChgVW5leHBlY3RlZCAke3V9IGF0IGluZGV4ICR7ci0xfWAscyk7cCs9dX1pZihvKXRocm93IG5ldyBrZChgVW5leHBlY3RlZCBlbmQgYXQgaW5kZXggJHtyfSwgZXhwZWN0ZWQgJHtvfWAscyk7cmV0dXJuIGQoKSxsfXJldHVybiBpKG4sImNvbnN1bWVVbnRpbCIpLG5ldyBjcmUobigiIikscyl9aShBNmUsInBhcnNlIik7ZnVuY3Rpb24gX0hhKHMsZT17fSl7bGV0e2VuY29kZTp0PWVuY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6YT1QNmV9PWUscj10eXBlb2Ygcz09Im9iamVjdCI/czpBNmUocyxlKSxuPWt5dChyLnRva2VucyxhLHQpO3JldHVybiBpKGZ1bmN0aW9uKGw9e30pe2xldCBwPVtdLGQ9bihsLHApO2lmKHAubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoYE1pc3NpbmcgcGFyYW1ldGVyczogJHtwLmpvaW4oIiwgIil9YCk7cmV0dXJuIGR9LCJwYXRoIil9aShfSGEsImNvbXBpbGUiKTtmdW5jdGlvbiBreXQocyxlLHQpe2xldCBhPXMubWFwKHI9Pk1IYShyLGUsdCkpO3JldHVybihyLG4pPT57bGV0IG89IiI7Zm9yKGxldCBsIG9mIGEpbys9bChyLG4pO3JldHVybiBvfX1pKGt5dCwidG9rZW5zVG9GdW5jdGlvbiIpO2Z1bmN0aW9uIE1IYShzLGUsdCl7aWYocy50eXBlPT09InRleHQiKXJldHVybigpPT5zLnZhbHVlO2lmKHMudHlwZT09PSJncm91cCIpe2xldCByPWt5dChzLnRva2VucyxlLHQpO3JldHVybihuLG8pPT57bGV0IGw9by5sZW5ndGgscD1yKG4sbyk7cmV0dXJuIG8ubGVuZ3RoPT09bD9wOihvLmxlbmd0aD1sLCIiKX19bGV0IGE9dHx8STZlO3JldHVybiBzLnR5cGU9PT0id2lsZGNhcmQiJiZ0IT09ITE/KHIsbik9PntsZXQgbz1yW3MubmFtZV07aWYobz09bnVsbClyZXR1cm4gbi5wdXNoKHMubmFtZSksIiI7aWYoIUFycmF5LmlzQXJyYXkobyl8fG8ubGVuZ3RoPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtzLm5hbWV9IiB0byBiZSBhIG5vbi1lbXB0eSBhcnJheWApO2xldCBsPSIiO2ZvcihsZXQgcD0wO3A8by5sZW5ndGg7cCsrKXtpZih0eXBlb2Ygb1twXSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7cy5uYW1lfS8ke3B9IiB0byBiZSBhIHN0cmluZ2ApO3A+MCYmKGwrPWUpLGwrPWEob1twXSl9cmV0dXJuIGx9OihyLG4pPT57bGV0IG89cltzLm5hbWVdO2lmKG89PW51bGwpcmV0dXJuIG4ucHVzaChzLm5hbWUpLCIiO2lmKHR5cGVvZiBvIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtzLm5hbWV9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVybiBhKG8pfX1pKE1IYSwidG9rZW5Ub0Z1bmN0aW9uIik7ZnVuY3Rpb24gekhhKHMsZT17fSl7bGV0e2RlY29kZTp0PWRlY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6YT1QNmV9PWUse3JlZ2V4cDpyLGtleXM6bn09U3l0KHMsZSksbz1uLm1hcChsPT50PT09ITE/STZlOmwudHlwZT09PSJwYXJhbSI/dDpwPT5wLnNwbGl0KGEpLm1hcCh0KSk7cmV0dXJuIGkoZnVuY3Rpb24ocCl7bGV0IGQ9ci5leGVjKHApO2lmKCFkKXJldHVybiExO2xldCB1PWRbMF0sYz1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgYj0xO2I8ZC5sZW5ndGg7YisrKXtpZihkW2JdPT09dm9pZCAwKWNvbnRpbnVlO2xldCB2PW5bYi0xXSx4PW9bYi0xXTtjW3YubmFtZV09eChkW2JdKX1yZXR1cm57cGF0aDp1LHBhcmFtczpjfX0sIm1hdGNoIil9aSh6SGEsIm1hdGNoIik7ZnVuY3Rpb24gU3l0KHMsZT17fSl7bGV0e2RlbGltaXRlcjp0PVA2ZSxlbmQ6YT0hMCxzZW5zaXRpdmU6cj0hMSx0cmFpbGluZzpuPSEwfT1lLG89W10sbD0iIixwPTA7ZnVuY3Rpb24gZChjKXtpZihBcnJheS5pc0FycmF5KGMpKXtmb3IobGV0IHYgb2YgYylkKHYpO3JldHVybn1sZXQgYj10eXBlb2YgYz09Im9iamVjdCI/YzpBNmUoYyxlKTtONmUoYi50b2tlbnMsMCxbXSx2PT57aWYocD49MjU2KXRocm93IG5ldyBrZCgiVG9vIG1hbnkgcGF0aCBjb21iaW5hdGlvbnMiLGIub3JpZ2luYWxQYXRoKTtwPjAmJihsKz0ifCIpLGwrPUNIYSh2LHQsbyxiLm9yaWdpbmFsUGF0aCkscCsrfSl9aShkLCJwcm9jZXNzIiksZChzKTtsZXQgdT1gXig/OiR7bH0pYDtyZXR1cm4gbiYmKHUrPSIoPzoiK0EwKHQpKyIkKT8iKSx1Kz1hPyIkIjoiKD89IitBMCh0KSsifCQpIix7cmVnZXhwOm5ldyBSZWdFeHAodSxyPyIiOiJpIiksa2V5czpvfX1pKFN5dCwicGF0aFRvUmVnZXhwIik7ZnVuY3Rpb24gTjZlKHMsZSx0LGEpe2Zvcig7ZTxzLmxlbmd0aDspe2xldCByPXNbZSsrXTtpZihyLnR5cGU9PT0iZ3JvdXAiKXtsZXQgbj10Lmxlbmd0aDtONmUoci50b2tlbnMsMCx0LG89Pk42ZShzLGUsbyxhKSksdC5sZW5ndGg9bjtjb250aW51ZX10LnB1c2gocil9YSh0KX1pKE42ZSwiZmxhdHRlbiIpO2Z1bmN0aW9uIENIYShzLGUsdCxhKXtsZXQgcj0iIixuPSIiLG89IiIsbD0wLHA9MCxkPTA7ZnVuY3Rpb24gdShiLHYpe2Zvcig7YjxzLmxlbmd0aDspe2xldCB4PXNbYisrXTtpZih4LnR5cGU9PT12KXJldHVybiEwO2lmKHgudHlwZT09PSJ0ZXh0IiYmeC52YWx1ZS5pbmNsdWRlcyhlKSlicmVha31yZXR1cm4hMX1pKHUsImhhc0luU2VnbWVudCIpO2Z1bmN0aW9uIGMoYil7bGV0IHY9IiI7Zm9yKDtiPHMubGVuZ3RoOyl7bGV0IHg9c1tiKytdO2lmKHgudHlwZSE9PSJ0ZXh0IilicmVhazt2Kz14LnZhbHVlfXJldHVybiB2fWZvcihpKGMsInBlZWtUZXh0Iik7ZDxzLmxlbmd0aDspe2xldCBiPXNbZCsrXTtpZihiLnR5cGU9PT0idGV4dCIpe3IrPUEwKGIudmFsdWUpLG4rPWIudmFsdWUsbD09PTImJihvKz1iLnZhbHVlKSxiLnZhbHVlLmluY2x1ZGVzKGUpJiYocD0wKTtjb250aW51ZX1pZihiLnR5cGU9PT0icGFyYW0ifHxiLnR5cGU9PT0id2lsZGNhcmQiKXtpZihsJiYhbil0aHJvdyBuZXcga2QoYE1pc3NpbmcgdGV4dCBiZWZvcmUgIiR7Yi5uYW1lfSIgJHtiLnR5cGV9YCxhKTtiLnR5cGU9PT0icGFyYW0iPyhyKz1wJjI/YCgke3NoKGUsbil9KylgOnUoZCwid2lsZGNhcmQiKT9gKCR7c2goZSxjKGQpKX0rKWA6cCYxP2AoJHtzaChlLG4pfSt8JHtBMChuKX0pYDpgKCR7c2goZSwiIil9KylgLHB8PWw9MSk6KHIrPXAmMj9gKCR7c2gobiwiIil9KylgOm8/YCgke3NoKG8sIiIpfSt8JHtzaChlLCIiKX0rKWA6IihbXl0rKSIsbz0iIixwfD1sPTIpLHQucHVzaChiKSxuPSIiO2NvbnRpbnVlfXRocm93IG5ldyBUeXBlRXJyb3IoYFVua25vd24gdG9rZW4gdHlwZTogJHtiLnR5cGV9YCl9cmV0dXJuIHJ9aShDSGEsInRvUmVnRXhwU291cmNlIik7ZnVuY3Rpb24gc2gocyxlKXtyZXR1cm4gZS5sZW5ndGg+cy5sZW5ndGg/c2goZSxzKToocz09PWUmJihlPSIiKSxlLmxlbmd0aD4xP2AoPzooPyEke0EwKHMpfXwke0EwKGUpfSlbXl0pYDpzLmxlbmd0aD4xP2AoPzooPyEke0EwKHMpfSlbXiR7QTAoZSl9XSlgOmBbXiR7QTAocytlKX1dYCl9aShzaCwibmVnYXRlIik7ZnVuY3Rpb24gX3l0KHMsZSl7bGV0IHQ9IiI7Zm9yKDtlPHMubGVuZ3RoOyl7bGV0IGE9c1tlKytdO2lmKGEudHlwZT09PSJ0ZXh0Iil7dCs9U0hhKGEudmFsdWUpO2NvbnRpbnVlfWlmKGEudHlwZT09PSJncm91cCIpe3QrPSJ7IitfeXQoYS50b2tlbnMsMCkrIn0iO2NvbnRpbnVlfWlmKGEudHlwZT09PSJwYXJhbSIpe3QrPSI6IitNeXQoYS5uYW1lLHNbZV0pO2NvbnRpbnVlfWlmKGEudHlwZT09PSJ3aWxkY2FyZCIpe3QrPSIqIitNeXQoYS5uYW1lLHNbZV0pO2NvbnRpbnVlfXRocm93IG5ldyBUeXBlRXJyb3IoYFVua25vd24gdG9rZW4gdHlwZTogJHthLnR5cGV9YCl9cmV0dXJuIHR9aShfeXQsInN0cmluZ2lmeVRva2VucyIpO2Z1bmN0aW9uIFRIYShzKXtyZXR1cm4gX3l0KHMudG9rZW5zLDApfWkoVEhhLCJzdHJpbmdpZnkiKTtmdW5jdGlvbiBNeXQocyxlKXtyZXR1cm4ha0hhLnRlc3Qocyl8fGU/LnR5cGU9PT0idGV4dCImJnd5dC50ZXN0KGUudmFsdWVbMF0pP0pTT04uc3RyaW5naWZ5KHMpOnN9aShNeXQsInN0cmluZ2lmeU5hbWUiKX0pO3ZhciBSNmUsTzZlPWcoKCk9Pnt1OSgpO1oyKCk7UjZlPXhuKHp5dCgpLDEpfSk7dmFyIGRyZSxDeXQ9ZygoKT0+e082ZSgpO2RyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJRdWVyeVBhcmFtcyIpfWNvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKGUsdCxhPSJyZXBsYWNlIil7dmFyIHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyLnNldChlLHQpLGE9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IityLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrci50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKGUsdD0icmVwbGFjZSIpe3ZhciBhPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7YS5kZWxldGUoZSksdD09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK2EudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IithLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0oZSl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVtlXX19fSk7dmFyIFI2aSxGNmUsVHl0PWcoKCk9PntPNmUoKTtDeXQoKTtSNmk9aShzPT57Y29uc29sZS5sb2coYCVjW1JvdXRlcl0lYyAke3N9YCwiY29sb3I6IHJnYigyNTUsIDEwNSwgMTAwKTsiLCJjb2xvcjogaW5oZXJpdCIpfSwicm91dGVMb2ciKSxGNmU9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJTbWFydFJvdXRlciIpfWNvbnN0cnVjdG9yKGUsdD0iIil7dGhpcy5vcHRpb25zPXtkZWJ1ZzohMX0sdGhpcy5xdWVyeVBhcmFtcz1uZXcgZHJlLHRoaXMucm91dGVzPVtdLHRoaXMub3B0aW9ucz17Li4udGhpcy5vcHRpb25zLC4uLmV9LHRoaXMuYmFzZVBhdGg9dCx0aGlzLnBvcHN0YXRlTGlzdGVuZXI9YT0+e2EucHJldmVudERlZmF1bHQoKSx0aGlzLl9oYW5kbGVSb3V0ZVN0YXRlKCl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKX1jcmVhdGVTdWJSb3V0ZXIoZSx0KXtsZXQgYT1gJHt0aGlzLmJhc2VQYXRofSR7ZX1gO3JldHVybiBuZXcgcyh7Li4udGhpcy5vcHRpb25zLC4uLnR9LGEpfWFzeW5jIHB1c2hVcmwoZT0iLyIsdD17fSl7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDthIT09d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lP3dpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh0LHdpbmRvdy5kb2N1bWVudC50aXRsZSxhKTp3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUodCx3aW5kb3cuZG9jdW1lbnQudGl0bGUsYSksYXdhaXQgdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfW9uKGUsdCl7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YCxyPXttYXRjaEZ1bmN0aW9uOlI2ZS5tYXRjaChhKSxoYW5kbGVyOnR9O3JldHVybiB0aGlzLnJvdXRlcy5wdXNoKHIpLGkoKCk9Pnt0aGlzLnJvdXRlcy5zcGxpY2UodGhpcy5yb3V0ZXMuaW5kZXhPZihyKSwxKX0sInJlbW92ZUZ1bmN0aW9uIil9YXN5bmMgX2hhbmRsZVJvdXRlU3RhdGUoKXtsZXQgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsdD10aGlzLnJvdXRlcy5maWx0ZXIoYT0+ISFhLm1hdGNoRnVuY3Rpb24oZSkpO2ZvcihsZXQgYSBvZiB0KXtsZXQgcj1hLm1hdGNoRnVuY3Rpb24oZSk7YS5oYW5kbGVyKHsuLi5yLnZhbHVlT2YoKSxxdWVyeVBhcmFtczp0aGlzLnF1ZXJ5UGFyYW1zLmdldEFsbEFzT2JqZWN0KCl9KX19ZGVzdHJveSgpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKSx0aGlzLnJvdXRlcz1bXX19fSk7dmFyIEYzPXt9O3l0KEYzLHtTbWFydFJvdXRlcjooKT0+RjZlfSk7dmFyICR5dD1nKCgpPT57VHl0KCl9KTt2YXIgRHl0PWcoKCk9PntzdygpO2c5KCl9KTtmdW5jdGlvbiBTZChzLGUpe3JldHVybiBzPj4+ZXxzPDwzMi1lfWZ1bmN0aW9uIFBIYShzLGUpe2xldCB0PWVbMF0sYT1lWzFdLHI9ZVsyXSxuPWVbM10sbz1lWzRdLGw9ZVs1XSxwPWVbNl0sZD1lWzddO2ZvcihsZXQgdT0wO3U8NjQ7dSsrKXtpZih1Pj0xNil7bGV0IHk9U2Qoc1t1LTE1XSw3KV5TZChzW3UtMTVdLDE4KV5zW3UtMTVdPj4+MyxNPVNkKHNbdS0yXSwxNyleU2Qoc1t1LTJdLDE5KV5zW3UtMl0+Pj4xMDtzW3VdPXNbdS0xNl0reStzW3UtN10rTT4+PjB9bGV0IGM9U2Qobyw2KV5TZChvLDExKV5TZChvLDI1KSxiPW8mbF5+byZwLHY9ZCtjK2IrTEhhW3VdK3NbdV0+Pj4wLHg9U2QodCwyKV5TZCh0LDEzKV5TZCh0LDIyKSxtPXQmYV50JnJeYSZyLGY9eCttPj4+MDtkPXAscD1sLGw9byxvPW4rdj4+PjAsbj1yLHI9YSxhPXQsdD12K2Y+Pj4wfWVbMF09ZVswXSt0Pj4+MCxlWzFdPWVbMV0rYT4+PjAsZVsyXT1lWzJdK3I+Pj4wLGVbM109ZVszXStuPj4+MCxlWzRdPWVbNF0rbz4+PjAsZVs1XT1lWzVdK2w+Pj4wLGVbNl09ZVs2XStwPj4+MCxlWzddPWVbN10rZD4+PjB9ZnVuY3Rpb24gQjZlKHMpe2xldCBlPVsuLi5FSGFdLHQ9cy5sZW5ndGgsYT10Kjgscj10JTY0PDU2PzU2LXQlNjQ6MTIwLXQlNjQsbj1uZXcgVWludDhBcnJheSh0K3IrOCk7bi5zZXQocyksblt0XT0xMjg7bGV0IG89bmV3IERhdGFWaWV3KG4uYnVmZmVyKTtvLnNldFVpbnQzMihuLmxlbmd0aC04LDAsITEpLG8uc2V0VWludDMyKG4ubGVuZ3RoLTQsYT4+PjAsITEpO2ZvcihsZXQgcD0wO3A8bi5sZW5ndGg7cCs9NjQpe2xldCBkPW5ldyBBcnJheSg2NCk7Zm9yKGxldCB1PTA7dTwxNjt1KyspZFt1XT1vLmdldFVpbnQzMihwK3UqNCwhMSk7UEhhKGQsZSl9bGV0IGw9IiI7Zm9yKGxldCBwPTA7cDw4O3ArKylsKz1lW3BdLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIik7cmV0dXJuIGx9dmFyIExIYSxFSGEsTHl0PWcoKCk9PntMSGE9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sRUhhPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07aShTZCwicm90ciIpO2koUEhhLCJzaGEyNTZUcmFuc2Zvcm0iKTtpKEI2ZSwic2hhMjU2RmFsbGJhY2siKX0pO3ZhciBEaz17fTt5dChEayx7bWQ1RnJvbVN0cmluZzooKT0+RkhhLHNoYTI1NkZyb21CdWZmZXI6KCk9PkFIYSxzaGEyNTZGcm9tRmlsZTooKT0+T0hhLHNoYTI1NkZyb21TdHJlYW06KCk9PlJIYSxzaGEyNTZGcm9tU3RyaW5nOigpPT5JeXQsc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PklIYSxzaGEyNjVGcm9tT2JqZWN0OigpPT5OSGF9KTt2YXIgRXl0LFB5dCxJeXQsSUhhLEFIYSxOSGEsUkhhLE9IYSxGSGEsQXl0PWcoKCk9PntEeXQoKTtMeXQoKTtFeXQ9aShzPT57bGV0IGU9W10sdD1uZXcgRGF0YVZpZXcocyk7Zm9yKGxldCBhPTA7YTx0LmJ5dGVMZW5ndGg7YSs9NCl7bGV0IG49dC5nZXRVaW50MzIoYSkudG9TdHJpbmcoMTYpLG89IjAwMDAwMDAwIixsPShvK24pLnNsaWNlKC1vLmxlbmd0aCk7ZS5wdXNoKGwpfXJldHVybiBlLmpvaW4oIiIpfSwiaGV4IiksUHl0PWkoKCk9PnR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8uc3VidGxlIT09dm9pZCAwLCJpc0NyeXB0b1N1YnRsZUF2YWlsYWJsZSIpLEl5dD1pKGFzeW5jIHM9PntsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocyk7aWYoUHl0KCkpe2xldCB0PWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4gRXl0KHQpfWVsc2UgcmV0dXJuIEI2ZShlKX0sInNoYTI1NkZyb21TdHJpbmciKSxJSGE9aShzPT57dGhyb3cgY29uc29sZS53YXJuKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3QgdHJ1bHkgc3luY2hyb25vdXMgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpLG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBVc2Ugc2hhMjU2RnJvbVN0cmluZyBpbnN0ZWFkLiIpfSwic2hhMjU2RnJvbVN0cmluZ1N5bmMiKSxBSGE9aShhc3luYyBzPT57aWYoUHl0KCkpe2xldCBlO2lmKHMgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcj1zO2U9ci5idWZmZXIuc2xpY2Uoci5ieXRlT2Zmc2V0LHIuYnl0ZU9mZnNldCtyLmJ5dGVMZW5ndGgpfWVsc2UgZT1zO2xldCB0PWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4gRXl0KHQpfWVsc2V7bGV0IGU9cyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/czpuZXcgVWludDhBcnJheShzKTtyZXR1cm4gQjZlKGUpfX0sInNoYTI1NkZyb21CdWZmZXIiKSxOSGE9aShhc3luYyBzPT57bGV0IGU9anIuc3RyaW5naWZ5KHMpO3JldHVybiBhd2FpdCBJeXQoZSl9LCJzaGEyNjVGcm9tT2JqZWN0IiksUkhhPWkocz0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sInNoYTI1NkZyb21TdHJlYW0iKSxPSGE9aShhc3luYyBzPT57dGhyb3cgbmV3IEVycm9yKCJzaGEyNTZGcm9tRmlsZSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sInNoYTI1NkZyb21GaWxlIiksRkhhPWkoYXN5bmMgcz0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfSwibWQ1RnJvbVN0cmluZyIpfSk7dmFyIHVyZT1nKCgpPT57QXl0KCk7ZzkoKTtpbygpO1oyKCk7S2FlKCl9KTt2YXIgTGssSDZlPWcoKCk9PntwcmUoKTtMaz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZUFjdGlvbiIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdGF0ZVBhcnRSZWY9ZSx0aGlzLmFjdGlvbkRlZj10fXRyaWdnZXIoZSl7cmV0dXJuIHRoaXMuc3RhdGVQYXJ0UmVmLmRpc3BhdGNoQWN0aW9uKHRoaXMsZSl9fX0pO2Z1bmN0aW9uIEhIYSgpe3JldHVybiB0eXBlb2YgZG9jdW1lbnQ+InUiP3E0KCEwKTpuZXcgcmEocz0+e3MubmV4dCghZG9jdW1lbnQuaGlkZGVuKTtsZXQgZT1pKCgpPT5zLm5leHQoIWRvY3VtZW50LmhpZGRlbiksImhhbmRsZXIiKTtyZXR1cm4gZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZSksKCk9PmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGUpfSl9dmFyIHViLHE2ZT1nKCgpPT57UjcoKTtpKEhIYSwiY3JlYXRlVmlzaWJpbGl0eU9ic2VydmFibGUiKTt1Yj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZVByb2Nlc3MiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuc3RhdHVzU3ViamVjdD1uZXcgQzcoImlkbGUiKSx0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249bnVsbCx0aGlzLnByb2Nlc3NpbmdRdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnN0YXRlUGFydFJlZj1lLHRoaXMucHJvZHVjZXJGbj10LnByb2R1Y2VyLHRoaXMucmVkdWNlcj10LnJlZHVjZXIsdGhpcy5zaWRlRWZmZWN0PXQuc2lkZUVmZmVjdCx0aGlzLmF1dG9QYXVzZU9wdGlvbj10LmF1dG9QYXVzZT8/ITF9Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLnN0YXR1c1N1YmplY3QuZ2V0VmFsdWUoKX1nZXQgc3RhdHVzJCgpe3JldHVybiB0aGlzLnN0YXR1c1N1YmplY3QuYXNPYnNlcnZhYmxlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc3RhcnQgYSBkaXNwb3NlZCBwcm9jZXNzIik7dGhpcy5zdGF0dXMhPT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicnVubmluZyIpLHRoaXMuc3Vic2NyaWJlUHJvZHVjZXIoKSx0aGlzLnNldHVwQXV0b1BhdXNlKCkpfXBhdXNlKCl7aWYodGhpcy5zdGF0dXM9PT0iZGlzcG9zZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBhdXNlIGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzPT09InJ1bm5pbmciJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInBhdXNlZCIpLHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzdW1lIGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzPT09InBhdXNlZCImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicnVubmluZyIpLHRoaXMuc3Vic2NyaWJlUHJvZHVjZXIoKSl9ZGlzcG9zZSgpe3RoaXMuc3RhdHVzIT09ImRpc3Bvc2VkIiYmKHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpLHRoaXMudGVhcmRvd25BdXRvUGF1c2UoKSx0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgiZGlzcG9zZWQiKSx0aGlzLnN0YXR1c1N1YmplY3QuY29tcGxldGUoKSx0aGlzLnN0YXRlUGFydFJlZi5fcmVtb3ZlUHJvY2Vzcyh0aGlzKSl9c3Vic2NyaWJlUHJvZHVjZXIoKXt0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKTtsZXQgZT10aGlzLnByb2R1Y2VyRm4oKTt0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPWUuc3Vic2NyaWJlKHtuZXh0OmkodD0+e3RoaXMucHJvY2Vzc2luZ1F1ZXVlPXRoaXMucHJvY2Vzc2luZ1F1ZXVlLnRoZW4oYXN5bmMoKT0+e3RyeXtpZih0aGlzLnNpZGVFZmZlY3QpYXdhaXQgdGhpcy5zaWRlRWZmZWN0KHQpO2Vsc2UgaWYodGhpcy5yZWR1Y2VyKXtsZXQgYT10aGlzLnN0YXRlUGFydFJlZi5nZXRTdGF0ZSgpO2EhPT12b2lkIDAmJmF3YWl0IHRoaXMuc3RhdGVQYXJ0UmVmLnNldFN0YXRlKHRoaXMucmVkdWNlcihhLHQpKX19Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiU3RhdGVQcm9jZXNzIHZhbHVlIGhhbmRsaW5nIGVycm9yOiIsYSl9fSl9LCJuZXh0IiksZXJyb3I6aSh0PT57Y29uc29sZS5lcnJvcigiU3RhdGVQcm9jZXNzIHByb2R1Y2VyIGVycm9yOiIsdCksdGhpcy5zdGF0dXM9PT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicGF1c2VkIiksdGhpcy51bnN1YnNjcmliZVByb2R1Y2VyKCkpfSwiZXJyb3IiKX0pfXVuc3Vic2NyaWJlUHJvZHVjZXIoKXt0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uJiYodGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMucHJvZHVjZXJTdWJzY3JpcHRpb249bnVsbCl9c2V0dXBBdXRvUGF1c2UoKXtpZih0aGlzLnRlYXJkb3duQXV0b1BhdXNlKCksIXRoaXMuYXV0b1BhdXNlT3B0aW9uKXJldHVybjtsZXQgZT10aGlzLmF1dG9QYXVzZU9wdGlvbj09PSJ2aXNpYmlsaXR5Ij9ISGEoKTp0aGlzLmF1dG9QYXVzZU9wdGlvbjt0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbj1lLnN1YnNjcmliZSh0PT57IXQmJnRoaXMuc3RhdHVzPT09InJ1bm5pbmciP3RoaXMucGF1c2UoKTp0JiZ0aGlzLnN0YXR1cz09PSJwYXVzZWQiJiZ0aGlzLnJlc3VtZSgpfSl9dGVhcmRvd25BdXRvUGF1c2UoKXt0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbiYmKHRoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249bnVsbCl9fX0pO2Z1bmN0aW9uIHFIYShzKXtyZXR1cm4gbmV3IHJhKGU9PntpZihzLmFib3J0ZWQpe2UubmV4dCgpLGUuY29tcGxldGUoKTtyZXR1cm59bGV0IHQ9aSgoKT0+e2UubmV4dCgpLGUuY29tcGxldGUoKX0sImhhbmRsZXIiKTtyZXR1cm4gcy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsdCksKCk9PnMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHQpfSl9dmFyIEVrLHByZT1nKCgpPT57dXJlKCk7UjcoKTtINmUoKTtxNmUoKTtpKHFIYSwiZnJvbUFib3J0U2lnbmFsIik7RWs9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZVBhcnQiKX1zdGF0aWN7dGhpcy5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIPTEwfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdGF0ZT1uZXcgQzcodm9pZCAwKSx0aGlzLmRpc3Bvc2VkPSExLHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkPW10LmN1bXVsYXRpdmVEZWZlcigpLHRoaXMubXV0YXRpb25RdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5wcm9jZXNzZXM9W10sdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLm5hbWU9ZSx0JiYodGhpcy53ZWJTdG9yZU9wdGlvbnM9dCl9YXN5bmMgaW5pdCgpe2lmKHRoaXMud2ViU3RvcmVPcHRpb25zKXt0aGlzLndlYlN0b3JlPW5ldyBrMS5XZWJTdG9yZSh0aGlzLndlYlN0b3JlT3B0aW9ucyksYXdhaXQgdGhpcy53ZWJTdG9yZS5pbml0KCk7bGV0IGU9YXdhaXQgdGhpcy53ZWJTdG9yZS5nZXQoU3RyaW5nKHRoaXMubmFtZSkpO2UmJnRoaXMudmFsaWRhdGVTdGF0ZShlKSYmKHRoaXMuc3RhdGVTdG9yZT1lLGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCkpfX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlU3RvcmV9YWRkTWlkZGxld2FyZShlKXtyZXR1cm4gdGhpcy5taWRkbGV3YXJlcy5wdXNoKGUpLCgpPT57bGV0IHQ9dGhpcy5taWRkbGV3YXJlcy5pbmRleE9mKGUpO3QhPT0tMSYmdGhpcy5taWRkbGV3YXJlcy5zcGxpY2UodCwxKX19YXN5bmMgc2V0U3RhdGUoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO3JldHVybiB0aGlzLm11dGF0aW9uUXVldWU9dGhpcy5tdXRhdGlvblF1ZXVlLnRoZW4oKCk9PnRoaXMuYXBwbHlTdGF0ZShlKSwoKT0+dGhpcy5hcHBseVN0YXRlKGUpKX1hc3luYyBhcHBseVN0YXRlKGUpe2xldCB0PWU7Zm9yKGxldCBhIG9mIHRoaXMubWlkZGxld2FyZXMpdD1hd2FpdCBhKHQsdGhpcy5zdGF0ZVN0b3JlKTtpZighdGhpcy52YWxpZGF0ZVN0YXRlKHQpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGF0ZSBzdHJ1Y3R1cmUgZm9yIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSdgKTtyZXR1cm4gdGhpcy53ZWJTdG9yZSYmYXdhaXQgdGhpcy53ZWJTdG9yZS5zZXQoU3RyaW5nKHRoaXMubmFtZSksdCksdGhpcy5zdGF0ZVN0b3JlPXQsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSx0aGlzLnN0YXRlU3RvcmV9dmFsaWRhdGVTdGF0ZShlKXtyZXR1cm4gZSE9bnVsbH1hc3luYyBub3RpZnlDaGFuZ2UoKXtsZXQgZT10aGlzLnN0YXRlU3RvcmU7aWYoZT09PXZvaWQgMClyZXR1cm47aWYodGhpcy5zbWFydHN0YXRlUmVmPy5pc0JhdGNoaW5nKXt0aGlzLnNtYXJ0c3RhdGVSZWYucmVnaXN0ZXJQZW5kaW5nTm90aWZpY2F0aW9uKHRoaXMpO3JldHVybn1sZXQgdD1pKGFzeW5jIGE9PmF3YWl0IERrLnNoYTI1NkZyb21TdHJpbmcoanIuc3RhYmxlT25lV2F5U3RyaW5naWZ5KGEpKSwiY3JlYXRlU3RhdGVIYXNoIik7dHJ5e2xldCBhPWF3YWl0IHQoZSk7aWYodGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaCYmYT09PXRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gpcmV0dXJuO3RoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2g9YX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBTdGF0ZSBoYXNoIGNvbXB1dGF0aW9uIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxhKX10aGlzLnN0YXRlLm5leHQoZSl9bm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSgpe3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJmNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPXNldFRpbWVvdXQoKCk9Pnt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy5zdGF0ZVN0b3JlIT09dm9pZCAwJiZ0aGlzLm5vdGlmeUNoYW5nZSgpLmNhdGNoKGU9Pntjb25zb2xlLmVycm9yKGBub3RpZnlDaGFuZ2VDdW11bGF0aXZlIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxlKX0pfSwwKX1zZWxlY3QoZSx0KXtsZXQgYT10Py5zaWduYWwhPW51bGw7aWYoIWEpe2lmKGUpe2lmKHRoaXMuc2VsZWN0b3JDYWNoZS5oYXMoZSkpcmV0dXJuIHRoaXMuc2VsZWN0b3JDYWNoZS5nZXQoZSl9ZWxzZSBpZih0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlKXJldHVybiB0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlfWxldCByPWV8fChwPT5wKSxuPVN5bWJvbCgic2VsZWN0b3ItZXJyb3IiKSxvPXRoaXMuc3RhdGUucGlwZShscy5yeGpzLm9wcy5maWx0ZXIocD0+cCE9PXZvaWQgMCksbHMucnhqcy5vcHMubWFwKHA9Pnt0cnl7cmV0dXJuIHIocCl9Y2F0Y2goZCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYFNlbGVjdG9yIGVycm9yIGluIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSc6YCxkKSxufX0pLGxzLnJ4anMub3BzLmZpbHRlcihwPT5wIT09biksQTcoKHAsZCk9PkpTT04uc3RyaW5naWZ5KHApPT09SlNPTi5zdHJpbmdpZnkoZCkpKTtpZihhKXJldHVybiBvPW8ucGlwZShONyhxSGEodC5zaWduYWwpKSksbztsZXQgbD1vLnBpcGUod2VlKHtidWZmZXJTaXplOjEscmVmQ291bnQ6ITB9KSk7cmV0dXJuIGU/dGhpcy5zZWxlY3RvckNhY2hlLnNldChlLGwpOnRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bCxsfWNyZWF0ZUFjdGlvbihlKXtyZXR1cm4gbmV3IExrKHRoaXMsZSl9Y3JlYXRlQWN0aW9uQ29udGV4dChlKXtsZXQgdD10aGlzO3JldHVybntkaXNwYXRjaDppKGFzeW5jKGEscik9PntpZihlPj1zLk1BWF9ORVNURURfRElTUEFUQ0hfREVQVEgpdGhyb3cgbmV3IEVycm9yKGBNYXhpbXVtIG5lc3RlZCBhY3Rpb24gZGlzcGF0Y2ggZGVwdGggKCR7cy5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIfSkgZXhjZWVkZWQuIENoZWNrIGZvciBjaXJjdWxhciBhY3Rpb24gZGlzcGF0Y2hlcy5gKTtsZXQgbj10LmNyZWF0ZUFjdGlvbkNvbnRleHQoZSsxKSxvPWF3YWl0IGEuYWN0aW9uRGVmKHQscixuKTtyZXR1cm4gdC5hcHBseVN0YXRlKG8pfSwiZGlzcGF0Y2giKX19YXN5bmMgZGlzcGF0Y2hBY3Rpb24oZSx0KXtpZih0aGlzLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcihgU3RhdGVQYXJ0ICcke3RoaXMubmFtZX0nIGhhcyBiZWVuIGRpc3Bvc2VkYCk7YXdhaXQgdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQucHJvbWlzZTtsZXQgYT1pKGFzeW5jKCk9PntsZXQgcj10aGlzLmNyZWF0ZUFjdGlvbkNvbnRleHQoMCksbj1hd2FpdCBlLmFjdGlvbkRlZih0aGlzLHQscik7cmV0dXJuIHRoaXMuYXBwbHlTdGF0ZShuKX0sImV4ZWN1dGUiKTtyZXR1cm4gdGhpcy5tdXRhdGlvblF1ZXVlPXRoaXMubXV0YXRpb25RdWV1ZS50aGVuKGEsYSl9YXN5bmMgd2FpdFVudGlsUHJlc2VudChlLHQpe2xldCBhLHI7dHlwZW9mIHQ9PSJudW1iZXIiP2E9dDp0JiYoYT10LnRpbWVvdXRNcyxyPXQuc2lnbmFsKTtsZXQgbj1tdC5kZWZlcigpLG89dGhpcy5zZWxlY3QoZSksbD0hMTtpZihyPy5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiQWJvcnRlZCIpO2xldCBwPW8uc3Vic2NyaWJlKGM9PntjIT1udWxsJiYhbCYmKGw9ITAsbi5yZXNvbHZlKGMpKX0pLGQ7YSYmKGQ9c2V0VGltZW91dCgoKT0+e2x8fChsPSEwLHAudW5zdWJzY3JpYmUoKSxuLnJlamVjdChuZXcgRXJyb3IoYHdhaXRVbnRpbFByZXNlbnQgdGltZWQgb3V0IGFmdGVyICR7YX1tc2ApKSl9LGEpKTtsZXQgdT1yPygpPT57bHx8KGw9ITAscC51bnN1YnNjcmliZSgpLGQmJmNsZWFyVGltZW91dChkKSxuLnJlamVjdChuZXcgRXJyb3IoIkFib3J0ZWQiKSkpfTp2b2lkIDA7ciYmdSYmci5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsdSk7dHJ5e3JldHVybiBhd2FpdCBuLnByb21pc2V9ZmluYWxseXtwLnVuc3Vic2NyaWJlKCksZCYmY2xlYXJUaW1lb3V0KGQpLHImJnUmJnIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHUpfX1hc3luYyBzdGF0ZVNldHVwKGUpe2xldCB0PWUodGhpcyk7dGhpcy5jdW11bGF0aXZlRGVmZXJyZWQuYWRkUHJvbWlzZSh0KSxhd2FpdCB0aGlzLnNldFN0YXRlKGF3YWl0IHQpfWNyZWF0ZVByb2Nlc3MoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2xldCB0PW5ldyB1Yih0aGlzLGUpO3JldHVybiB0aGlzLnByb2Nlc3Nlcy5wdXNoKHQpLGUuYXV0b1N0YXJ0JiZ0LnN0YXJ0KCksdH1jcmVhdGVTY2hlZHVsZWRBY3Rpb24oZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2xldCB0PW5ldyB1Yih0aGlzLHtwcm9kdWNlcjppKCgpPT5KZGUoZS5pbnRlcnZhbE1zKSwicHJvZHVjZXIiKSxzaWRlRWZmZWN0OmkoYXN5bmMoKT0+e2F3YWl0IGUuYWN0aW9uLnRyaWdnZXIoZS5wYXlsb2FkKX0sInNpZGVFZmZlY3QiKSxhdXRvUGF1c2U6ZS5hdXRvUGF1c2U/PyExfSk7cmV0dXJuIHRoaXMucHJvY2Vzc2VzLnB1c2godCksdC5zdGFydCgpLHR9X3JlbW92ZVByb2Nlc3MoZSl7bGV0IHQ9dGhpcy5wcm9jZXNzZXMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMucHJvY2Vzc2VzLnNwbGljZSh0LDEpfWRpc3Bvc2UoKXtpZighdGhpcy5kaXNwb3NlZCl7dGhpcy5kaXNwb3NlZD0hMDtmb3IobGV0IGUgb2ZbLi4udGhpcy5wcm9jZXNzZXNdKWUuZGlzcG9zZSgpO3RoaXMucHJvY2Vzc2VzLmxlbmd0aD0wLHRoaXMuc3RhdGUuY29tcGxldGUoKSx0aGlzLm11dGF0aW9uUXVldWU9UHJvbWlzZS5yZXNvbHZlKCksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiYmKGNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwpLHRoaXMubWlkZGxld2FyZXMubGVuZ3RoPTAsdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLndlYlN0b3JlPW51bGwsdGhpcy5zbWFydHN0YXRlUmVmPXZvaWQgMCx0aGlzLnN0YXRlU3RvcmU9dm9pZCAwfX19fSk7ZnVuY3Rpb24gajZlKHMsZSl7cmV0dXJuIFhkZShzLm1hcCh0PT50LnNlbGVjdCgpKSkucGlwZShZMih0PT5lKC4uLnQpKSxBNygodCxhKT0+SlNPTi5zdHJpbmdpZnkodCk9PT1KU09OLnN0cmluZ2lmeShhKSkpfXZhciBWNmU9ZygoKT0+e3VyZSgpO1I3KCk7aShqNmUsImNvbXB1dGVkIil9KTt2YXIgVTZlLE55dD1nKCgpPT57dXJlKCk7cHJlKCk7VjZlKCk7VTZlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0c3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uPW5ldyBNYXAsdGhpcy5iYXRjaERlcHRoPTAsdGhpcy5pc0ZsdXNoaW5nPSExLHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnM9bmV3IFNldH1nZXQgaXNCYXRjaGluZygpe3JldHVybiB0aGlzLmJhdGNoRGVwdGg+MH1yZWdpc3RlclBlbmRpbmdOb3RpZmljYXRpb24oZSl7dGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5hZGQoZSl9YXN5bmMgYmF0Y2goZSl7dGhpcy5iYXRjaERlcHRoKys7dHJ5e2F3YWl0IGUoKX1maW5hbGx5e2lmKHRoaXMuYmF0Y2hEZXB0aC0tLHRoaXMuYmF0Y2hEZXB0aD09PTAmJiF0aGlzLmlzRmx1c2hpbmcpe3RoaXMuaXNGbHVzaGluZz0hMDt0cnl7Zm9yKDt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLnNpemU+MDspe2xldCB0PVsuLi50aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zXTt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmNsZWFyKCk7Zm9yKGxldCBhIG9mIHQpdHJ5e2F3YWl0IGEubm90aWZ5Q2hhbmdlKCl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcigiRXJyb3IgZmx1c2hpbmcgbm90aWZpY2F0aW9uIGZvciBzdGF0ZSBwYXJ0OiIscil9fX1maW5hbGx5e3RoaXMuaXNGbHVzaGluZz0hMX19fX1jb21wdXRlZChlLHQpe3JldHVybiBqNmUoZSx0KX1kaXNwb3NlKCl7Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKHRoaXMuc3RhdGVQYXJ0TWFwKSl7bGV0IHQ9dGhpcy5zdGF0ZVBhcnRNYXBbZV07dCYmdC5kaXNwb3NlKCl9dGhpcy5zdGF0ZVBhcnRNYXA9e30sdGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uY2xlYXIoKSx0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmNsZWFyKCl9YXN5bmMgZ2V0U3RhdGVQYXJ0KGUsdCxhPSJzb2Z0Iil7bGV0IHI9dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZ2V0KGUpO2lmKHIpcmV0dXJuIHI7bGV0IG49dGhpcy5zdGF0ZVBhcnRNYXBbZV07aWYobilzd2l0Y2goYSl7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOm4uZGlzcG9zZSgpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG59ZWxzZSBpZih0PT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgZG9lcyBub3QgZXhpc3QgYW5kIG5vIGluaXRpYWwgc3RhdGUgcHJvdmlkZWRgKTtsZXQgbz10aGlzLmNyZWF0ZVN0YXRlUGFydChlLHQsYSk7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uc2V0KGUsbyk7dHJ5e3JldHVybiBhd2FpdCBvfWZpbmFsbHl7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZGVsZXRlKGUpfX1hc3luYyBjcmVhdGVTdGF0ZVBhcnQoZSx0LGE9InNvZnQiKXtsZXQgcj1uZXcgRWsoZSxhPT09InBlcnNpc3RlbnQiP3tkYk5hbWU6InNtYXJ0c3RhdGUiLHN0b3JlTmFtZTplfTp2b2lkIDApO3Iuc21hcnRzdGF0ZVJlZj10aGlzLGF3YWl0IHIuaW5pdCgpO2xldCBuPXIuZ2V0U3RhdGUoKTtyZXR1cm4gYT09PSJwZXJzaXN0ZW50IiYmbiE9PXZvaWQgMD9hd2FpdCByLnNldFN0YXRlKHsuLi50LC4uLm59KTphd2FpdCByLnNldFN0YXRlKHQpLHRoaXMuc3RhdGVQYXJ0TWFwW2VdPXIscn19fSk7ZnVuY3Rpb24gakhhKHMsZSl7bGV0e2NvbnRleHQ6dCxzdGF0ZVBhcnQ6YSxzZWxlY3RvckZuOnJ9PWUsbj1uZXcgU2V0LG89YS5zZWxlY3Qocikuc3Vic2NyaWJlKGQ9Pntmb3IobGV0IHUgb2Ygbil1KGQpfSksbD1pKCgpPT57bGV0IGQ9YS5nZXRTdGF0ZSgpO2lmKGQhPT12b2lkIDApcmV0dXJuIHI/cihkKTpkfSwiZ2V0VmFsdWUiKSxwPWkoZD0+e2xldCB1PWQsYz11LmRldGFpbDtpZighKCFjfHxjLmNvbnRleHQhPT10KSlpZih1LnN0b3BQcm9wYWdhdGlvbigpLGMuc3Vic2NyaWJlKXtsZXQgYj1jLmNhbGxiYWNrO24uYWRkKGIpO2xldCB2PWkoKCk9Pm4uZGVsZXRlKGIpLCJ1bnN1YnNjcmliZSIpO2IobCgpLHYpfWVsc2UgYy5jYWxsYmFjayhsKCkpfSwiaGFuZGxlciIpO3JldHVybiBzLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHQtcmVxdWVzdCIscCksKCk9PntzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHQtcmVxdWVzdCIscCksby51bnN1YnNjcmliZSgpLG4uY2xlYXIoKX19dmFyIFJ5dD1nKCgpPT57aShqSGEsImF0dGFjaENvbnRleHRQcm92aWRlciIpfSk7dmFyIEIzPXt9O3l0KEIzLHtTbWFydHN0YXRlOigpPT5VNmUsU3RhdGVBY3Rpb246KCk9PkxrLFN0YXRlUGFydDooKT0+RWssU3RhdGVQcm9jZXNzOigpPT51YixhdHRhY2hDb250ZXh0UHJvdmlkZXI6KCk9PmpIYSxjb21wdXRlZDooKT0+ajZlfSk7dmFyIE95dD1nKCgpPT57Tnl0KCk7cHJlKCk7SDZlKCk7VjZlKCk7Unl0KCk7cTZlKCl9KTt2YXIgRnl0PWcoKCk9Pnt9KTt2YXIgVzZlLEJ5dD1nKCgpPT57Rnl0KCk7VzZlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiU21hcnR1cmwiKX1zdGF0aWMgY3JlYXRlRnJvbVVybChlLHQpe2xldCBhPW5ldyBVUkwoZSkscj17fSxuPVtdO2Euc2VhcmNoJiZhLnNlYXJjaC5yZXBsYWNlKCI/IiwiIikuc3BsaXQoIiYiKS5tYXAoZD0+e24ucHVzaCh7a2V5OmQuc3BsaXQoIj0iKVswXSx2YWx1ZTpkLnNwbGl0KCI9IilbMV19KX0pO2ZvcihsZXQgZCBvZiBuKXJbZC5rZXldPWQudmFsdWU7aWYodD8uc2VhcmNoUGFyYW1zKWZvcihsZXQgZCBvZiBPYmplY3Qua2V5cyh0LnNlYXJjaFBhcmFtcykpcltkXT10LnNlYXJjaFBhcmFtc1tkXTtsZXQgbz1hLnBhdGhuYW1lfHwiIjtpZihPYmplY3Qua2V5cyhyKS5sZW5ndGg+MCl7bys9Ij8iO2xldCBkPSEwO2ZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyhyKSlkP2Q9ITE6bys9IiYiLG8rPWAke3V9PSR7clt1XX1gfWxldCBsPXsuLi5hLGhyZWY6YS5ocmVmLG9yaWdpbjphLm9yaWdpbixwcm90b2NvbDphLnByb3RvY29sLHVzZXJuYW1lOmEudXNlcm5hbWUscGFzc3dvcmQ6YS5wYXNzd29yZCxob3N0OmEuaG9zdCxob3N0bmFtZTphLmhvc3RuYW1lLHBvcnQ6YS5wb3J0LHBhdGg6byxwYXRobmFtZTphLnBhdGhuYW1lLHNlYXJjaDphLnNlYXJjaCxzZWFyY2hQYXJhbXM6cixoYXNoOmEuaGFzaH07IWwucG9ydCYmbC5wcm90b2NvbD09PSJodHRwczoiJiYobC5wb3J0PSI0NDMiKSwhbC5wb3J0JiZsLnByb3RvY29sPT09Imh0dHA6IiYmKGwucG9ydD0iODAiKTtsZXQgcD1uZXcgcztyZXR1cm4gT2JqZWN0LmFzc2lnbihwLGwpLHB9c3RhdGljIGNyZWF0ZUZyb21QYXJzZWRVcmwoZSl7bGV0IHQ9bmV3IHM7cmV0dXJuIE9iamVjdC5hc3NpZ24odCxlKSx0fWNvbnN0cnVjdG9yKCl7dGhpcy5zZWFyY2hQYXJhbXM9e319Y2xvbmUoKXtsZXQgZT1uZXcgcztyZXR1cm4gT2JqZWN0LmFzc2lnbihlLHRoaXMpLGUuc2VhcmNoUGFyYW1zPXsuLi50aGlzLnNlYXJjaFBhcmFtc30sZX1zZXQoZSx0KXtyZXR1cm4gdGhpc1tlXT10LHRoaXN9dG9TdHJpbmcoKXtsZXQgZT0iIjtyZXR1cm4gdGhpcy51c2VybmFtZSYmIXRoaXMucGFzc3dvcmQmJihlPWAke3RoaXMudXNlcm5hbWV9QGApLHRoaXMudXNlcm5hbWUmJnRoaXMucGFzc3dvcmQmJihlPWAke3RoaXMudXNlcm5hbWV9OiR7dGhpcy5wYXNzd29yZH1AYCksYCR7dGhpcy5wcm90b2NvbH0vLyR7ZX0ke3RoaXMuaG9zdG5hbWV9OiR7dGhpcy5wb3J0fSR7dGhpcy5wYXRofWB9fX0pO3ZhciBSMT17fTt5dChSMSx7U21hcnR1cmw6KCk9Plc2ZX0pO3ZhciBHNmU9ZygoKT0+e0J5dCgpfSk7dmFyIEh5dD1nKCgpPT57fSk7dmFyIEs2ZT1nKCgpPT57U24oKTtTbigpfSk7dmFyIHF5dD1nKCgpPT57fSk7dmFyIGp5dD1nKCgpPT57fSk7dmFyIFZ5dD1nKCgpPT57fSk7dmFyIFV5dD1nKCgpPT57fSk7dmFyIFk2ZT17fTt2YXIgWjZlPWcoKCk9PntxeXQoKTtqeXQoKTtWeXQoKTtVeXQoKX0pO3ZhciBXeXQ9ZygoKT0+e1o2ZSgpO2hyZSgpfSk7dmFyIEd5dD1nKCgpPT57U24oKX0pO3ZhciBLeXQ9ZygoKT0+e30pO3ZhciBZeXQ9ZygoKT0+e1NuKCl9KTt2YXIgWnl0PWcoKCk9PntTbigpfSk7dmFyIFh5dD1nKCgpPT57fSk7dmFyIFF5dD1nKCgpPT57fSk7dmFyIEp5dD1nKCgpPT57fSk7dmFyIFg2ZT17fTt2YXIgZnJlPWcoKCk9PntHeXQoKTtLeXQoKTtZeXQoKTtaeXQoKTtYeXQoKTtReXQoKTtKeXQoKX0pO3ZhciBld3Q9ZygoKT0+e2ZyZSgpO0s2ZSgpfSk7dmFyIHR3dD1nKCgpPT57aHJlKCk7ZnJlKCl9KTt2YXIgYXd0PWcoKCk9Pnt9KTt2YXIgc3d0PWcoKCk9Pnt9KTt2YXIgUTZlPXt9O3ZhciBocmU9ZygoKT0+e0h5dCgpO0s2ZSgpO1d5dCgpO2V3dCgpO3R3dCgpO2F3dCgpO3N3dCgpfSk7dmFyIGl3dD1nKCgpPT57fSk7dmFyIHJ3dD1nKCgpPT57fSk7dmFyIEo2ZT17fTt2YXIgb3d0PWcoKCk9Pntpd3QoKTtyd3QoKX0pO3ZhciBud3Q9ZygoKT0+e30pO3ZhciBsd3Q9ZygoKT0+e30pO3ZhciBlNWU9e307dmFyIGN3dD1nKCgpPT57bnd0KCk7bHd0KCl9KTt2YXIgdDVlPXt9O3ZhciBkd3Q9ZygoKT0+e30pO3ZhciBhNWU9ZygoKT0+e1NuKCl9KTt2YXIgdXd0PWcoKCk9PntTbigpfSk7dmFyIHB3dD1nKCgpPT57YTVlKCl9KTt2YXIgczVlPXt9O3ZhciBod3Q9ZygoKT0+e2E1ZSgpO3V3dCgpO3B3dCgpfSk7dmFyIGZ3dD1nKCgpPT57fSk7dmFyIG13dD1nKCgpPT57fSk7dmFyIGk1ZT17fTt2YXIgZ3d0PWcoKCk9Pntmd3QoKTttd3QoKX0pO3ZhciByNWU9ZygoKT0+e30pO3ZhciBvNWUsYnd0PWcoKCk9PntyNWUoKTtvNWU9Y2xhc3N7c3RhdGlje2kodGhpcywiSUNuYW1lRGVzY3JpcHRvciIpfX19KTt2YXIgdnd0PWcoKCk9Pnt9KTt2YXIgeHd0PWcoKCk9Pnt9KTt2YXIgeXd0PWcoKCk9Pnt9KTt2YXIgd3d0PWcoKCk9Pnt9KTt2YXIga3d0PWcoKCk9Pnt9KTt2YXIgU3d0PWcoKCk9Pnt9KTt2YXIgX3d0PWcoKCk9Pnt9KTt2YXIgTXd0PWcoKCk9Pnt9KTt2YXIgend0PWcoKCk9Pnt9KTt2YXIgQ3d0PWcoKCk9Pnt9KTt2YXIgbXJlPXt9O3l0KG1yZSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+bzVlfSk7dmFyIFR3dD1nKCgpPT57cjVlKCk7Ynd0KCk7dnd0KCk7eHd0KCk7eXd0KCk7d3d0KCk7a3d0KCk7U3d0KCk7X3d0KCk7TXd0KCk7end0KCk7Q3d0KCl9KTt2YXIgbjVlPWcoKCk9Pnt9KTt2YXIgJHd0PWcoKCk9PntuNWUoKX0pO3ZhciBsNWU9e307dmFyIER3dD1nKCgpPT57JHd0KCk7bjVlKCl9KTt2YXIgYzVlPXt9O3ZhciBMd3Q9ZygoKT0+e30pO3ZhciBFd3Q9ZygoKT0+e30pO3ZhciBQd3Q9ZygoKT0+e30pO3ZhciBJd3Q9ZygoKT0+e30pO3ZhciBkNWU9e307dmFyIEF3dD1nKCgpPT57RXd0KCk7UHd0KCk7SXd0KCl9KTt2YXIgTnd0PWcoKCk9Pnt9KTt2YXIgSDM9e307eXQoSDMse2J1c2luZXNzOigpPT5RNmUsY29kZTooKT0+SjZlLGNvbnRhaW5lcjooKT0+ZTVlLGNvbnRlbnQ6KCk9PnM1ZSxkYXRhYmFzZTooKT0+WTZlLGRlc2NyaXB0b3JzOigpPT50NWUsZmluYW5jZTooKT0+WDZlLGdlbmVyYWw6KCk9Pmk1ZSxuZXR3b3JrOigpPT5tcmUsc2FhczooKT0+bDVlLHN0b3JhZ2U6KCk9PmM1ZSx3ZWJzaXRlOigpPT5kNWV9KTt2YXIgU249ZygoKT0+e2hyZSgpO293dCgpO2N3dCgpO1o2ZSgpO2R3dCgpO2ZyZSgpO2h3dCgpO2d3dCgpO1R3dCgpO0R3dCgpO0x3dCgpO0F3dCgpO053dCgpfSk7dmFyIE4wPWcoKCk9PntpbygpO1NuKCl9KTt2YXIgZ3JlPWcoKCk9PntOMCgpfSk7dmFyIGloLFBrPWcoKCk9PntOMCgpO2loPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZyIpfWNvbnN0cnVjdG9yKCl7dGhpcy50YWdMZXZlbD0ibGV2ZWxib3VuZCJ9YXBwZW5kVG9Eb20oKXshdGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQmJiF0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfXJlbW92ZUZyb21Eb20oKXt0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudD90aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpOnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZ0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfX19KTt2YXIgcTMsYnJlPWcoKCk9PntOMCgpO2dyZSgpO1BrKCk7cTM9Y2xhc3MgcyBleHRlbmRzIGloe3N0YXRpY3tpKHRoaXMsIkpzb25MZFRhZyIpfXN0YXRpYyBjcmVhdGVDb21wYW55SnNvbkxkKGUpe2xldCB0PXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkNvcnBvcmF0aW9uIixuYW1lOmUubmFtZSxhbHRlcm5hdGVOYW1lOmUubmFtZS5yZXBsYWNlKCIgR21iSCIsIiIpLHVybDplLndlYnNpdGUsbG9nbzplLmxvZ29VcmwsY29udGFjdFBvaW50OnsiQHR5cGUiOiJDb250YWN0UG9pbnQiLHRlbGVwaG9uZTplLnBob25lLGNvbnRhY3RUeXBlOiJjdXN0b21lciBzZXJ2aWNlIixhcmVhU2VydmVkOiJERSIsYXZhaWxhYmxlTGFuZ3VhZ2U6WyJlbiIsIkdlcm1hbiJdfSxzYW1lQXM6W119LGE9ZS5zb2NpYWxzPy5maW5kKG89Pm8udHlwZT09PSJmYWNlYm9vayIpPy51cmw7YSYmdC5zYW1lQXMucHVzaChhKTtsZXQgcj1lLnNvY2lhbHM/LmZpbmQobz0+by50eXBlPT09InR3aXR0ZXIiKT8udXJsO3JldHVybiByJiZ0LnNhbWVBcy5wdXNoKHIpLG5ldyBzKHQpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZUpzb25MZChlKXtsZXQgdD17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJOZXdzQXJ0aWNsZSIsbWFpbkVudGl0eU9mUGFnZTp7IkB0eXBlIjoiV2ViUGFnZSIsIkBpZCI6d2luZG93LmxvY2F0aW9uLmhyZWZ9LGhlYWRsaW5lOiJBcnRpY2xlIGhlYWRsaW5lIixpbWFnZTpbZS5mZWF0dXJlZEltYWdlVXJsXSxkYXRlUHVibGlzaGVkOm5ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGRhdGVNb2RpZmllZDpuZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxhdXRob3I6eyJAdHlwZSI6IlBlcnNvbiIsbmFtZTpgJHtlLmF1dGhvci5maXJzdE5hbWV9ICR7ZS5hdXRob3Iuc3VyTmFtZX1gfSxwdWJsaXNoZXI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsbmFtZTplLmF1dGhvci5zdXJOYW1lLGxvZ286eyJAdHlwZSI6IkltYWdlT2JqZWN0Iix1cmw6ZS5hdXRob3Iuc3VyTmFtZX19LGRlc2NyaXB0aW9uOmUuYXV0aG9yLmZpcnN0TmFtZX07cmV0dXJuIG5ldyBzKHQpfXN0YXRpYyBjcmVhdGVQcm9kdWN0SnNvbkxkKGUsdCl7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiU29mdHdhcmVBcHBsaWNhdGlvbiIsbmFtZTplLm5hbWUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixvcGVyYXRpbmdTeXN0ZW06ZS5vcyxhcHBsaWNhdGlvbkNhdGVnb3J5OmUuY2F0ZWdvcnksb2ZmZXJzOnsiQHR5cGUiOiJPZmZlciIsbmFtZToiVXNlci1iYXNlZCBQbGFuIixwcmljZVNwZWNpZmljYXRpb246eyJAdHlwZSI6IlByb3BlcnR5VmFsdWVTcGVjaWZpY2F0aW9uIix2YWx1ZU5hbWU6Ik51bWJlciBvZiBVc2VycyIsdmFsdWVSZXF1aXJlZDohMCxwcmljZToiNC45OSIscHJpY2VDdXJyZW5jeToiRVVSIn19LHB1Ymxpc2hlcjp0P3RoaXMuY3JlYXRlQ29tcGFueUpzb25MZCh0KS5lbGVtZW50UmVmLnRleHRDb250ZW50OnZvaWQgMCxzY3JlZW5zaG90OiJodHRwczovL3d3dy5zb2NpYWwuaW8vc2NyZWVuc2hvdC5wbmciLHVybDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvLyJ9O3JldHVybiBuZXcgcyhhKX1jb25zdHJ1Y3RvcihlKXtzdXBlcigpO2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3QudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiIsdC50ZXh0PUpTT04uc3RyaW5naWZ5KGUpLHRoaXMuZWxlbWVudFJlZj10fX19KTt2YXIgX24sdnJlPWcoKCk9PntOMCgpO1BrKCk7X249Y2xhc3MgcyBleHRlbmRzIGloe3N0YXRpY3tpKHRoaXMsIk9wZW5ncmFwaFRhZyIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhlKXtsZXQgdD1bXTtyZXR1cm4gdC5wdXNoKG5ldyBzKCJvZzp1cmwiLGUudXJsPz9nbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSx0LnB1c2gobmV3IHMoIm9nOnRpdGxlIixlLnRpdGxlKSksdC5wdXNoKG5ldyBzKCJvZzpkZXNjcmlwdGlvbiIsZS5jb250ZW50KSksdC5wdXNoKG5ldyBzKCJvZzppbWFnZSIsZS5mZWF0dXJlZEltYWdlVXJsPz8iIikpLHR9c3RhdGljIGNyZWF0ZVByb2R1Y3RPZ1RhZ3MoZSl7bGV0IHQ9W107cmV0dXJuIHQucHVzaChuZXcgcygib2c6dHlwZSIsInByb2R1Y3QiKSksdC5wdXNoKG5ldyBzKCJvZzp1cmwiLGdsb2JhbFRoaXMubG9jYXRpb24uaHJlZikpLHQucHVzaChuZXcgcygib2c6dGl0bGUiLGAke2UubmFtZX0gLSAke2Uuc2xvZ2FufWApKSx0LnB1c2gobmV3IHMoIm9nOnNpdGVfbmFtZSIsZS5uYW1lKSksdC5wdXNoKG5ldyBzKCJvZzpkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLHQucHVzaChuZXcgcygib2c6aW1hZ2UiLGUubG9nb0xpbmspKSx0fXN0YXRpYyBjcmVhdGVDb21wYW55T2dUYWdzKGUpe2xldCB0PVtdO3JldHVybiB0LnB1c2gobmV3IHMoIm9nOnR5cGUiLCJjb21wYW55IikpLHQucHVzaChuZXcgcygib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSx0LnB1c2gobmV3IHMoIm9nOnRpdGxlIixlLm5hbWUpKSx0LnB1c2gobmV3IHMoIm9nOnNpdGVfbmFtZSIsZS5uYW1lKSksdC5wdXNoKG5ldyBzKCJvZzpkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLHQucHVzaChuZXcgcygib2c6aW1hZ2UiLGUubG9nb1VybD8/IiIpKSx0fWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7YS5zZXRBdHRyaWJ1dGUoInByb3BlcnR5IixlKSxhLmNvbnRlbnQ9dCx0aGlzLmVsZW1lbnRSZWY9YX19fSk7dmFyIHBiLHU1ZT1nKCgpPT57UGsoKTticmUoKTt2cmUoKTtwNWUoKTtOMCgpO3BiPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZ0xldmVsIil9c2V0IHRpdGxlKGUpe3RoaXMudGl0bGVTdG9yZT1lLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJihkb2N1bWVudC50aXRsZT10aGlzLnRpdGxlU3RvcmUpfWdldCB0aXRsZSgpe3JldHVybiB0aGlzLnRpdGxlU3RvcmV9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnRhZ3M9W10sdGhpcy5zdGF0ZT0iZGlzYWJsZWQiLHRoaXMudGFnTWFuYWdlclJlZj1lLHRoaXMudHlwZT10fWFkZFRhZyhlKXtpZihlIGluc3RhbmNlb2YgQXJyYXkpZm9yKGxldCB0IG9mIGUpdGhpcy5hZGRUYWcodCk7ZWxzZSB0aGlzLnRhZ3MucHVzaChlKSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiZlLmFwcGVuZFRvRG9tKCl9YXN5bmMgYWRkQ29tcGFueUluZm8oZSl7dGhpcy5hZGRUYWcocTMuY3JlYXRlQ29tcGFueUpzb25MZChlKSksdGhpcy5hZGRUYWcobmV3IF9uKCJvZzp0eXBlIiwiYnVzaW5lc3MuYnVzaW5lc3MiKSksdGhpcy5hZGRUYWcobmV3IF9uKCJvZzp0aXRsZSIsZS5uYW1lKSksdGhpcy5hZGRUYWcobmV3IF9uKCJvZzp1cmwiLGUud2Vic2l0ZT8/IiIpKSx0aGlzLmFkZFRhZyhuZXcgX24oIm9nOmltYWdlIixlLmxvZ29Vcmw/PyIiKSksdGhpcy5hZGRUYWcobmV3IF9uKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuYWRkcmVzcy5zdHJlZXROYW1lfSAke2UuYWRkcmVzcy5ob3VzZU51bWJlcn1gKSksdGhpcy5hZGRUYWcobmV3IF9uKCJidXNpbmVzczpjb250YWN0X2RhdGE6bG9jYWxpdHkiLGUuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IF9uKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmFkZHJlc3MuY2l0eSkpLHRoaXMuYWRkVGFnKG5ldyBfbigiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnBvc3RhbF9jb2RlIixlLmFkZHJlc3MucG9zdGFsQ29kZSkpLHRoaXMuYWRkVGFnKG5ldyBfbigiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmNvdW50cnlfbmFtZSIsZS5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcocTMuY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKF9uLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLHQpe3RoaXMuYWRkVGFnKHEzLmNyZWF0ZVByb2R1Y3RKc29uTGQoZSx0KSksdGhpcy5hZGRUYWcoX24uY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIFBjLGg1ZT1nKCgpPT57UGsoKTtQYz1jbGFzcyBleHRlbmRzIGloe3N0YXRpY3tpKHRoaXMsIk1ldGFUYWciKX1jb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2EubmFtZT1lLGEuY29udGVudD10LHRoaXMuZWxlbWVudFJlZj1hfX19KTt2YXIgeHJlLHA1ZT1nKCgpPT57dTVlKCk7TjAoKTtncmUoKTtoNWUoKTticmUoKTt2cmUoKTt4cmU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGFnTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcgcGIodGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IHBiKHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cChlKXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IFBjKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgUGMoInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksZS50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IFBjKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBQYygidHdpdHRlcjpzaXRlIixlLnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgUGMoInR3aXR0ZXI6Y3JlYXRvciIsZS50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBQYygiZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxlLmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBQYygiY2Fub25pY2FsIixlLmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKGUubGRDb21wYW55JiYhZS5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKGUubGRDb21wYW55KTticmVhaztjYXNlISFlLmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyhlLmxkUHJvZHVjdCxlLmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKGUpe2xldCB0PW5ldyBwYih0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHQudGl0bGU9ZS50aXRsZSxlLmRlc2NyaXB0aW9uJiZ0LmFkZFRhZyhuZXcgUGMoImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD10LGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCksdH1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBJayxSd3Q9ZygoKT0+e04wKCk7Z3JlKCk7cDVlKCk7dTVlKCk7SWs9Y2xhc3N7c3RhdGlje2kodGhpcywiV2ViU2V0dXAiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRhZ01hbmFnZXI9bmV3IHhyZSx0aGlzLnJlYWR5RGVmZXJyZWQ9bXQuZGVmZXIoKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZD1tdC5kZWZlcigpLHRoaXMucmVhZHlQcm9taXNlPXRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMucmVhZHlGb3JTbWFydHNzclByb21pc2U9dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucHJvbWlzZSx0aGlzLm9wdGlvbnM9ZSx0aGlzLnNldHVwKCkudGhlbigoKT0+e3RoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9KX1hc3luYyBzZXR1cChlKXtlJiYodGhpcy5vcHRpb25zPWUpLGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXR1cCh0aGlzLm9wdGlvbnMubWV0YU9iamVjdCl9cmV2ZXJ0VG9CYXNlTGV2ZWwoKXt0aGlzLnRhZ01hbmFnZXIucmV2ZXJ0VG9CYXNlTGV2ZWwoKX1hc3luYyBzZXRTdWJMZXZlbChlKXtyZXR1cm4gYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldFN1YlBhZ2VMZXZlbChlKX1mbGFzaFRpdGxlKGUpe31pbmZvcm1SZWFkeUZvclNtYXJ0c3NyKCl7dGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHxjb25zb2xlLmVycm9yKCJZb3UgaGF2ZSBub3QgaW5kaWNhdGVkIHRoYXQgeW91IGluZm9ybSBzbWFydHNzciBieSBhIGRlZGljYXRlZCBzaWduYWwhIFBsZWFzZSBjb25zaWRlciBkb2luZyBzbyEiKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9fX0pO3ZhciBmNWUsT3d0PWcoKCk9PntOMCgpO2Y1ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaXRsZSIpfX19KTt2YXIgbTVlPXt9O3l0KG01ZSx7SnNvbkxkVGFnOigpPT5xMyxNZXRhVGFnOigpPT5QYyxPcGVuZ3JhcGhUYWc6KCk9Pl9uLFRpdGxlOigpPT5mNWUsV2ViU2V0dXA6KCk9PklrfSk7dmFyIHlyZT1nKCgpPT57Und0KCk7aDVlKCk7dnJlKCk7YnJlKCk7T3d0KCl9KTtmdW5jdGlvbiBGd3QocyxlLHQpe3JldHVybiBNYXRoLm1heChzLE1hdGgubWluKGUsdCkpfWZ1bmN0aW9uIFdIYShzLGUsdCl7cmV0dXJuKDEtdCkqcyt0KmV9ZnVuY3Rpb24gR0hhKHMsZSx0LGEpe3JldHVybiBXSGEocyxlLDEtTWF0aC5leHAoLXQqYSkpfWZ1bmN0aW9uIEtIYShzLGUpe3JldHVybihzJWUrZSklZX1mdW5jdGlvbiBaSGEocyxlKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oLi4uYSl7bGV0IHI9dGhpcztjbGVhclRpbWVvdXQodCksdD1zZXRUaW1lb3V0KCgpPT57dD12b2lkIDAscy5hcHBseShyLGEpfSxlKX19dmFyIFVIYSxZSGEsWEhhLEJ3dCxId3QscmgsUUhhLHF3dCxBayxqd3Q9ZygoKT0+e1VIYT0iMS4zLjE3IjtpKEZ3dCwiY2xhbXAiKTtpKFdIYSwibGVycCIpO2koR0hhLCJkYW1wIik7aShLSGEsIm1vZHVsbyIpO1lIYT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJBbmltYXRlIil9aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKHMpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IGU9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPXM7bGV0IHQ9Rnd0KDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO2U9dD49MTtsZXQgYT1lPzE6dGhpcy5lYXNpbmcodCk7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSphfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPUdIYSh0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLHMpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApO2UmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLGUpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8ocyxlLHtsZXJwOnQsZHVyYXRpb246YSxlYXNpbmc6cixvblN0YXJ0Om4sb25VcGRhdGU6b30pe3RoaXMuZnJvbT10aGlzLnZhbHVlPXMsdGhpcy50bz1lLHRoaXMubGVycD10LHRoaXMuZHVyYXRpb249YSx0aGlzLmVhc2luZz1yLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxuPy4oKSx0aGlzLm9uVXBkYXRlPW99fTtpKFpIYSwiZGVib3VuY2UiKTtYSGE9Y2xhc3N7c3RhdGlje2kodGhpcywiRGltZW5zaW9ucyIpfWNvbnN0cnVjdG9yKHMsZSx7YXV0b1Jlc2l6ZTp0PSEwLGRlYm91bmNlOmE9MjUwfT17fSl7dGhpcy53cmFwcGVyPXMsdGhpcy5jb250ZW50PWUsdCYmKHRoaXMuZGVib3VuY2VkUmVzaXplPVpIYSh0aGlzLnJlc2l6ZSxhKSx0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpOih0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCkpLHRoaXMucmVzaXplKCl9d2lkdGg9MDtoZWlnaHQ9MDtzY3JvbGxIZWlnaHQ9MDtzY3JvbGxXaWR0aD0wO2RlYm91bmNlZFJlc2l6ZTt3cmFwcGVyUmVzaXplT2JzZXJ2ZXI7Y29udGVudFJlc2l6ZU9ic2VydmVyO2Rlc3Ryb3koKXt0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy53cmFwcGVyPT09d2luZG93JiZ0aGlzLmRlYm91bmNlZFJlc2l6ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpfXJlc2l6ZT1pKCgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfSwicmVzaXplIik7b25XcmFwcGVyUmVzaXplPWkoKCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9LCJvbldyYXBwZXJSZXNpemUiKTtvbkNvbnRlbnRSZXNpemU9aSgoKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfSwib25Db250ZW50UmVzaXplIik7Z2V0IGxpbWl0KCl7cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aC10aGlzLndpZHRoLHk6dGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5oZWlnaHR9fX0sQnd0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkVtaXR0ZXIiKX1ldmVudHM9e307ZW1pdChzLC4uLmUpe2xldCB0PXRoaXMuZXZlbnRzW3NdfHxbXTtmb3IobGV0IGE9MCxyPXQubGVuZ3RoO2E8cjthKyspdFthXT8uKC4uLmUpfW9uKHMsZSl7cmV0dXJuIHRoaXMuZXZlbnRzW3NdPy5wdXNoKGUpfHwodGhpcy5ldmVudHNbc109W2VdKSwoKT0+e3RoaXMuZXZlbnRzW3NdPXRoaXMuZXZlbnRzW3NdPy5maWx0ZXIodD0+ZSE9PXQpfX1vZmYocyxlKXt0aGlzLmV2ZW50c1tzXT10aGlzLmV2ZW50c1tzXT8uZmlsdGVyKHQ9PmUhPT10KX1kZXN0cm95KCl7dGhpcy5ldmVudHM9e319fSxId3Q9MTAwLzYscmg9e3Bhc3NpdmU6ITF9LFFIYT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU2Nyb2xsIil9Y29uc3RydWN0b3IocyxlPXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD1zLHRoaXMub3B0aW9ucz1lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxyaCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LHJoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLHJoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxyaCl9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IEJ3dDtvbihzLGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24ocyxlKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxyaCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LHJoKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLHJoKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxyaCl9b25Ub3VjaFN0YXJ0PWkocz0+e2xldHtjbGllbnRYOmUsY2xpZW50WTp0fT1zLnRhcmdldFRvdWNoZXM/cy50YXJnZXRUb3VjaGVzWzBdOnM7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT10LHRoaXMubGFzdERlbHRhPXt4OjAseTowfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOjAsZGVsdGFZOjAsZXZlbnQ6c30pfSwib25Ub3VjaFN0YXJ0Iik7b25Ub3VjaE1vdmU9aShzPT57bGV0e2NsaWVudFg6ZSxjbGllbnRZOnR9PXMudGFyZ2V0VG91Y2hlcz9zLnRhcmdldFRvdWNoZXNbMF06cyxhPS0oZS10aGlzLnRvdWNoU3RhcnQueCkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcixyPS0odC10aGlzLnRvdWNoU3RhcnQueSkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcjt0aGlzLnRvdWNoU3RhcnQueD1lLHRoaXMudG91Y2hTdGFydC55PXQsdGhpcy5sYXN0RGVsdGE9e3g6YSx5OnJ9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6YSxkZWx0YVk6cixldmVudDpzfSl9LCJvblRvdWNoTW92ZSIpO29uVG91Y2hFbmQ9aShzPT57dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDp0aGlzLmxhc3REZWx0YS54LGRlbHRhWTp0aGlzLmxhc3REZWx0YS55LGV2ZW50OnN9KX0sIm9uVG91Y2hFbmQiKTtvbldoZWVsPWkocz0+e2xldHtkZWx0YVg6ZSxkZWx0YVk6dCxkZWx0YU1vZGU6YX09cyxyPWE9PT0xP0h3dDphPT09Mj90aGlzLndpbmRvdy53aWR0aDoxLG49YT09PTE/SHd0OmE9PT0yP3RoaXMud2luZG93LmhlaWdodDoxO2UqPXIsdCo9bixlKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHQqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIsdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTp0LGV2ZW50OnN9KX0sIm9uV2hlZWwiKTtvbldpbmRvd1Jlc2l6ZT1pKCgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fSwib25XaW5kb3dSZXNpemUiKX0scXd0PWkocz0+TWF0aC5taW4oMSwxLjAwMS1NYXRoLnBvdygyLC0xMCpzKSksImRlZmF1bHRFYXNpbmciKSxBaz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMZW5pcyIpfV9pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IFlIYTtlbWl0dGVyPW5ldyBCd3Q7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOnM9d2luZG93LGNvbnRlbnQ6ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OnQ9cyxzbW9vdGhXaGVlbDphPSEwLHN5bmNUb3VjaDpyPSExLHN5bmNUb3VjaExlcnA6bj0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om89MS43LGR1cmF0aW9uOmwsZWFzaW5nOnAsbGVycDpkPS4xLGluZmluaXRlOnU9ITEsb3JpZW50YXRpb246Yz0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpiPWM9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOnY9MSx3aGVlbE11bHRpcGxpZXI6eD0xLGF1dG9SZXNpemU6bT0hMCxwcmV2ZW50OmYsdmlydHVhbFNjcm9sbDp5LG92ZXJzY3JvbGw6TT0hMCxhdXRvUmFmOno9ITEsYW5jaG9yczpOPSExLGF1dG9Ub2dnbGU6Qz0hMSxhbGxvd05lc3RlZFNjcm9sbDpfPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Tz0hMSxuYWl2ZURpbWVuc2lvbnM6JD1PLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpFPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj1VSGEsKCFzfHxzPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKHM9d2luZG93KSx0eXBlb2YgbD09Im51bWJlciImJnR5cGVvZiBwIT0iZnVuY3Rpb24iP3A9cXd0OnR5cGVvZiBwPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbCE9Im51bWJlciImJihsPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjpzLGNvbnRlbnQ6ZSxldmVudHNUYXJnZXQ6dCxzbW9vdGhXaGVlbDphLHN5bmNUb3VjaDpyLHN5bmNUb3VjaExlcnA6bix0b3VjaEluZXJ0aWFFeHBvbmVudDpvLGR1cmF0aW9uOmwsZWFzaW5nOnAsbGVycDpkLGluZmluaXRlOnUsZ2VzdHVyZU9yaWVudGF0aW9uOmIsb3JpZW50YXRpb246Yyx0b3VjaE11bHRpcGxpZXI6dix3aGVlbE11bHRpcGxpZXI6eCxhdXRvUmVzaXplOm0scHJldmVudDpmLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOk0sYXV0b1JhZjp6LGFuY2hvcnM6TixhdXRvVG9nZ2xlOkMsYWxsb3dOZXN0ZWRTY3JvbGw6XyxuYWl2ZURpbWVuc2lvbnM6JCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6RX0sdGhpcy5kaW1lbnNpb25zPW5ldyBYSGEocyxlLHthdXRvUmVzaXplOm19KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IFFIYSh0LHt0b3VjaE11bHRpcGxpZXI6dix3aGVlbE11bHRpcGxpZXI6eH0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbihzLGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24ocyxlKX1vZmYocyxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZihzLGUpfW9uU2Nyb2xsRW5kPWkocz0+e3MgaW5zdGFuY2VvZiBDdXN0b21FdmVudHx8KHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoInx8dGhpcy5pc1Njcm9sbGluZz09PSExKSYmcy5zdG9wUHJvcGFnYXRpb24oKX0sIm9uU2Nyb2xsRW5kIik7ZGlzcGF0Y2hTY3JvbGxlbmRFdmVudD1pKCgpPT57dGhpcy5vcHRpb25zLndyYXBwZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNjcm9sbGVuZCIse2J1YmJsZXM6dGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3csZGV0YWlsOntsZW5pc1Njcm9sbEVuZDohMH19KSl9LCJkaXNwYXRjaFNjcm9sbGVuZEV2ZW50Iik7Z2V0IG92ZXJmbG93KCl7bGV0IHM9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVtzXX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9aShzPT57cy5wcm9wZXJ0eU5hbWUuaW5jbHVkZXMoIm92ZXJmbG93IikmJnRoaXMuY2hlY2tPdmVyZmxvdygpfSwib25UcmFuc2l0aW9uRW5kIik7c2V0U2Nyb2xsKHMpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OnMsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDpzLGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9aShzPT57bGV0IHQ9cy5jb21wb3NlZFBhdGgoKS5maWx0ZXIoYT0+YSBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50JiZhLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTtpZih0aGlzLm9wdGlvbnMuYW5jaG9ycyl7bGV0IGE9dC5maW5kKHI9PnIuZ2V0QXR0cmlidXRlKCJocmVmIik/LmluY2x1ZGVzKCIjIikpO2lmKGEpe2xldCByPWEuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYocil7bGV0IG49dHlwZW9mIHRoaXMub3B0aW9ucy5hbmNob3JzPT0ib2JqZWN0IiYmdGhpcy5vcHRpb25zLmFuY2hvcnM/dGhpcy5vcHRpb25zLmFuY2hvcnM6dm9pZCAwLG89YCMke3Iuc3BsaXQoIiMiKVsxXX1gO3RoaXMuc2Nyb2xsVG8obyxuKX19fXRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUmJnQuZmluZChyPT5yLmhvc3Q9PT13aW5kb3cubG9jYXRpb24uaG9zdCkmJnRoaXMucmVzZXQoKX0sIm9uQ2xpY2siKTtvblBvaW50ZXJEb3duPWkocz0+e3MuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfSwib25Qb2ludGVyRG93biIpO29uVmlydHVhbFNjcm9sbD1pKHM9PntpZih0eXBlb2YgdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGw9PSJmdW5jdGlvbiImJnRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsKHMpPT09ITEpcmV0dXJuO2xldHtkZWx0YVg6ZSxkZWx0YVk6dCxldmVudDphfT1zO2lmKHRoaXMuZW1pdHRlci5lbWl0KCJ2aXJ0dWFsLXNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTp0LGV2ZW50OmF9KSxhLmN0cmxLZXl8fGEubGVuaXNTdG9wUHJvcGFnYXRpb24pcmV0dXJuO2xldCByPWEudHlwZS5pbmNsdWRlcygidG91Y2giKSxuPWEudHlwZS5pbmNsdWRlcygid2hlZWwiKTt0aGlzLmlzVG91Y2hpbmc9YS50eXBlPT09InRvdWNoc3RhcnQifHxhLnR5cGU9PT0idG91Y2htb3ZlIjtsZXQgbz1lPT09MCYmdD09PTA7aWYodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmciYmYS50eXBlPT09InRvdWNoc3RhcnQiJiZvJiYhdGhpcy5pc1N0b3BwZWQmJiF0aGlzLmlzTG9ja2VkKXt0aGlzLnJlc2V0KCk7cmV0dXJufWxldCBwPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0idmVydGljYWwiJiZ0PT09MHx8dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmZT09PTA7aWYob3x8cClyZXR1cm47bGV0IGQ9YS5jb21wb3NlZFBhdGgoKTtkPWQuc2xpY2UoMCxkLmluZGV4T2YodGhpcy5yb290RWxlbWVudCkpO2xldCB1PXRoaXMub3B0aW9ucy5wcmV2ZW50O2lmKGQuZmluZChmPT5mIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0eXBlb2YgdT09ImZ1bmN0aW9uIiYmdT8uKGYpfHxmLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQiKXx8ciYmZi5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoIil8fG4mJmYuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC13aGVlbCIpfHx0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwmJnRoaXMuY2hlY2tOZXN0ZWRTY3JvbGwoZix7ZGVsdGFYOmUsZGVsdGFZOnR9KSkpKXJldHVybjtpZih0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCl7YS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCEodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmcnx8dGhpcy5vcHRpb25zLnNtb290aFdoZWVsJiZuKSl7dGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIix0aGlzLmFuaW1hdGUuc3RvcCgpLGEubGVuaXNTdG9wUHJvcGFnYXRpb249ITA7cmV0dXJufWxldCBiPXQ7dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJib3RoIj9iPU1hdGguYWJzKHQpPk1hdGguYWJzKGUpP3Q6ZTp0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiYoYj1lKSwoIXRoaXMub3B0aW9ucy5vdmVyc2Nyb2xsfHx0aGlzLm9wdGlvbnMuaW5maW5pdGV8fHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93JiZ0aGlzLmxpbWl0PjAmJih0aGlzLmFuaW1hdGVkU2Nyb2xsPjAmJnRoaXMuYW5pbWF0ZWRTY3JvbGw8dGhpcy5saW1pdHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PTAmJnQ+MHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PXRoaXMubGltaXQmJnQ8MCkpJiYoYS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMCksYS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9ciYmdGhpcy5vcHRpb25zLnN5bmNUb3VjaCxtPXImJmEudHlwZT09PSJ0b3VjaGVuZCI7bSYmKGI9TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpKk1hdGgucG93KE1hdGguYWJzKHRoaXMudmVsb2NpdHkpLHRoaXMub3B0aW9ucy50b3VjaEluZXJ0aWFFeHBvbmVudCkpLHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwrYix7cHJvZ3JhbW1hdGljOiExLC4uLnY/e2xlcnA6bT90aGlzLm9wdGlvbnMuc3luY1RvdWNoTGVycDoxfTp7bGVycDp0aGlzLm9wdGlvbnMubGVycCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOnRoaXMub3B0aW9ucy5lYXNpbmd9fSl9LCJvblZpcnR1YWxTY3JvbGwiKTtyZXNpemUoKXt0aGlzLmRpbWVuc2lvbnMucmVzaXplKCksdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmVtaXQoKX1lbWl0KCl7dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIsdGhpcyl9b25OYXRpdmVTY3JvbGw9aSgoKT0+e2lmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0IT09bnVsbCYmKGNsZWFyVGltZW91dCh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCksdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbCksdGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtyZXR1cm59aWYodGhpcy5pc1Njcm9sbGluZz09PSExfHx0aGlzLmlzU2Nyb2xsaW5nPT09Im5hdGl2ZSIpe2xldCBzPXRoaXMuYW5pbWF0ZWRTY3JvbGw7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9dGhpcy5hbmltYXRlZFNjcm9sbC1zLHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLmFuaW1hdGVkU2Nyb2xsLXMpLHRoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIiksdGhpcy5lbWl0KCksdGhpcy52ZWxvY2l0eSE9PTAmJih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PTAsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmVtaXQoKX0sNDAwKSl9fSwib25OYXRpdmVTY3JvbGwiKTtyZXNldCgpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHk9MCx0aGlzLmFuaW1hdGUuc3RvcCgpfXN0YXJ0KCl7aWYodGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpO3JldHVybn10aGlzLmludGVybmFsU3RhcnQoKX19aW50ZXJuYWxTdGFydCgpe3RoaXMuaXNTdG9wcGVkJiYodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuZW1pdCgpKX1zdG9wKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgib3ZlcmZsb3ciLCJjbGlwIik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdG9wKCl9fWludGVybmFsU3RvcCgpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuZW1pdCgpKX1yYWY9aShzPT57bGV0IGU9cy0odGhpcy50aW1lfHxzKTt0aGlzLnRpbWU9cyx0aGlzLmFuaW1hdGUuYWR2YW5jZShlKi4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9LCJyYWYiKTtzY3JvbGxUbyhzLHtvZmZzZXQ6ZT0wLGltbWVkaWF0ZTp0PSExLGxvY2s6YT0hMSxwcm9ncmFtbWF0aWM6cj0hMCxsZXJwOm49cj90aGlzLm9wdGlvbnMubGVycDp2b2lkIDAsZHVyYXRpb246bz1yP3RoaXMub3B0aW9ucy5kdXJhdGlvbjp2b2lkIDAsZWFzaW5nOmw9cj90aGlzLm9wdGlvbnMuZWFzaW5nOnZvaWQgMCxvblN0YXJ0OnAsb25Db21wbGV0ZTpkLGZvcmNlOnU9ITEsdXNlckRhdGE6Y309e30pe2lmKCEoKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKSYmIXUpKXtpZih0eXBlb2Ygcz09InN0cmluZyImJlsidG9wIiwibGVmdCIsInN0YXJ0IiwiIyJdLmluY2x1ZGVzKHMpKXM9MDtlbHNlIGlmKHR5cGVvZiBzPT0ic3RyaW5nIiYmWyJib3R0b20iLCJyaWdodCIsImVuZCJdLmluY2x1ZGVzKHMpKXM9dGhpcy5saW1pdDtlbHNle2xldCBiO2lmKHR5cGVvZiBzPT0ic3RyaW5nIj8oYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHMpLGJ8fChzPT09IiN0b3AiP3M9MDpjb25zb2xlLndhcm4oIkxlbmlzOiBUYXJnZXQgbm90IGZvdW5kIixzKSkpOnMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmcz8ubm9kZVR5cGUmJihiPXMpLGIpe2lmKHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93KXtsZXQgeD10aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2UtPXRoaXMuaXNIb3Jpem9udGFsP3gubGVmdDp4LnRvcH1sZXQgdj1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3M9KHRoaXMuaXNIb3Jpem9udGFsP3YubGVmdDp2LnRvcCkrdGhpcy5hbmltYXRlZFNjcm9sbH19aWYodHlwZW9mIHM9PSJudW1iZXIiKXtpZihzKz1lLHM9TWF0aC5yb3VuZChzKSx0aGlzLm9wdGlvbnMuaW5maW5pdGUpe2lmKHIpe3RoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5zY3JvbGw7bGV0IGI9cy10aGlzLmFuaW1hdGVkU2Nyb2xsO2I+dGhpcy5saW1pdC8yP3M9cy10aGlzLmxpbWl0OmI8LXRoaXMubGltaXQvMiYmKHM9cyt0aGlzLmxpbWl0KX19ZWxzZSBzPUZ3dCgwLHMsdGhpcy5saW1pdCk7aWYocz09PXRoaXMudGFyZ2V0U2Nyb2xsKXtwPy4odGhpcyksZD8uKHRoaXMpO3JldHVybn1pZih0aGlzLnVzZXJEYXRhPWM/P3t9LHQpe3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9cyx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksdGhpcy5yZXNldCgpLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpLHRoaXMuZW1pdCgpLGQ/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSk7cmV0dXJufXJ8fCh0aGlzLnRhcmdldFNjcm9sbD1zKSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBsIT0iZnVuY3Rpb24iP2w9cXd0OnR5cGVvZiBsPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMuYW5pbWF0ZS5mcm9tVG8odGhpcy5hbmltYXRlZFNjcm9sbCxzLHtkdXJhdGlvbjpvLGVhc2luZzpsLGxlcnA6bixvblN0YXJ0OmkoKCk9PnthJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixwPy4odGhpcyl9LCJvblN0YXJ0Iiksb25VcGRhdGU6aSgoYix2KT0+e3RoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PWItdGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSksdGhpcy5hbmltYXRlZFNjcm9sbD1iLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSxyJiYodGhpcy50YXJnZXRTY3JvbGw9Yiksdnx8dGhpcy5lbWl0KCksdiYmKHRoaXMucmVzZXQoKSx0aGlzLmVtaXQoKSxkPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpKX0sIm9uVXBkYXRlIil9KX19fXByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITF9KX1jaGVja05lc3RlZFNjcm9sbChzLHtkZWx0YVg6ZSxkZWx0YVk6dH0pe2xldCBhPURhdGUubm93KCkscj1zLl9sZW5pcz8/PXt9LG4sbyxsLHAsZCx1LGMsYix2PXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb247aWYoYS0oci50aW1lPz8wKT4yZTMpe3IudGltZT1EYXRlLm5vdygpO2xldCBDPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHMpO3IuY29tcHV0ZWRTdHlsZT1DO2xldCBfPUMub3ZlcmZsb3dYLE89Qy5vdmVyZmxvd1k7aWYobj1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoXyksbz1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoTyksci5oYXNPdmVyZmxvd1g9bixyLmhhc092ZXJmbG93WT1vLCFuJiYhb3x8dj09PSJ2ZXJ0aWNhbCImJiFvfHx2PT09Imhvcml6b250YWwiJiYhbilyZXR1cm4hMTtkPXMuc2Nyb2xsV2lkdGgsdT1zLnNjcm9sbEhlaWdodCxjPXMuY2xpZW50V2lkdGgsYj1zLmNsaWVudEhlaWdodCxsPWQ+YyxwPXU+YixyLmlzU2Nyb2xsYWJsZVg9bCxyLmlzU2Nyb2xsYWJsZVk9cCxyLnNjcm9sbFdpZHRoPWQsci5zY3JvbGxIZWlnaHQ9dSxyLmNsaWVudFdpZHRoPWMsci5jbGllbnRIZWlnaHQ9Yn1lbHNlIGw9ci5pc1Njcm9sbGFibGVYLHA9ci5pc1Njcm9sbGFibGVZLG49ci5oYXNPdmVyZmxvd1gsbz1yLmhhc092ZXJmbG93WSxkPXIuc2Nyb2xsV2lkdGgsdT1yLnNjcm9sbEhlaWdodCxjPXIuY2xpZW50V2lkdGgsYj1yLmNsaWVudEhlaWdodDtpZighbiYmIW98fCFsJiYhcHx8dj09PSJ2ZXJ0aWNhbCImJighb3x8IXApfHx2PT09Imhvcml6b250YWwiJiYoIW58fCFsKSlyZXR1cm4hMTtsZXQgeDtpZih2PT09Imhvcml6b250YWwiKXg9IngiO2Vsc2UgaWYodj09PSJ2ZXJ0aWNhbCIpeD0ieSI7ZWxzZXtsZXQgQz1lIT09MCxfPXQhPT0wO0MmJm4mJmwmJih4PSJ4IiksXyYmbyYmcCYmKHg9InkiKX1pZigheClyZXR1cm4hMTtsZXQgbSxmLHksTSx6O2lmKHg9PT0ieCIpbT1zLnNjcm9sbExlZnQsZj1kLWMseT1lLE09bix6PWw7ZWxzZSBpZih4PT09InkiKW09cy5zY3JvbGxUb3AsZj11LWIseT10LE09byx6PXA7ZWxzZSByZXR1cm4hMTtyZXR1cm4oeT4wP208ZjptPjApJiZNJiZ6fWdldCByb290RWxlbWVudCgpe3JldHVybiB0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdz9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6dGhpcy5vcHRpb25zLndyYXBwZXJ9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5uYWl2ZURpbWVuc2lvbnM/dGhpcy5pc0hvcml6b250YWw/dGhpcy5yb290RWxlbWVudC5zY3JvbGxXaWR0aC10aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoOnRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMucm9vdEVsZW1lbnQuY2xpZW50SGVpZ2h0OnRoaXMuZGltZW5zaW9ucy5saW1pdFt0aGlzLmlzSG9yaXpvbnRhbD8ieCI6InkiXX1nZXQgaXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIn1nZXQgYWN0dWFsU2Nyb2xsKCl7bGV0IHM9dGhpcy5vcHRpb25zLndyYXBwZXI7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsP3Muc2Nyb2xsWD8/cy5zY3JvbGxMZWZ0OnMuc2Nyb2xsWT8/cy5zY3JvbGxUb3B9Z2V0IHNjcm9sbCgpe3JldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGU/S0hhKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5saW1pdCk6dGhpcy5hbmltYXRlZFNjcm9sbH1nZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5saW1pdD09PTA/MTp0aGlzLnNjcm9sbC90aGlzLmxpbWl0fWdldCBpc1Njcm9sbGluZygpe3JldHVybiB0aGlzLl9pc1Njcm9sbGluZ31zZXQgaXNTY3JvbGxpbmcocyl7dGhpcy5faXNTY3JvbGxpbmchPT1zJiYodGhpcy5faXNTY3JvbGxpbmc9cyx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RvcHBlZH1zZXQgaXNTdG9wcGVkKHMpe3RoaXMuX2lzU3RvcHBlZCE9PXMmJih0aGlzLl9pc1N0b3BwZWQ9cyx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5faXNMb2NrZWR9c2V0IGlzTG9ja2VkKHMpe3RoaXMuX2lzTG9ja2VkIT09cyYmKHRoaXMuX2lzTG9ja2VkPXMsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU21vb3RoKCl7cmV0dXJuIHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIn1nZXQgY2xhc3NOYW1lKCl7bGV0IHM9ImxlbmlzIjtyZXR1cm4gdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJihzKz0iIGxlbmlzLWF1dG9Ub2dnbGUiKSx0aGlzLmlzU3RvcHBlZCYmKHMrPSIgbGVuaXMtc3RvcHBlZCIpLHRoaXMuaXNMb2NrZWQmJihzKz0iIGxlbmlzLWxvY2tlZCIpLHRoaXMuaXNTY3JvbGxpbmcmJihzKz0iIGxlbmlzLXNjcm9sbGluZyIpLHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIiYmKHMrPSIgbGVuaXMtc21vb3RoIiksc311cGRhdGVDbGFzc05hbWUoKXt0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT1gJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKX1jbGVhblVwQ2xhc3NOYW1lKCl7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvbGVuaXMoLVx3Kyk/L2csIiIpLnRyaW0oKX19fSk7dmFyIFZ3dD1wbCgoZzVlLGI1ZSk9PnsoZnVuY3Rpb24ocyxlKXt0eXBlb2YgZzVlPT0ib2JqZWN0IiYmdHlwZW9mIGI1ZTwidSI/YjVlLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOihzPXN8fHNlbGYscy5Td2VldFNjcm9sbD1lKCkpfSkoZzVlLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBzPWkoZnVuY3Rpb24oKXtyZXR1cm4gcz1PYmplY3QuYXNzaWdufHxpKGZ1bmN0aW9uKGllKXtmb3IodmFyIHRlLGVlPTEsa2U9YXJndW1lbnRzLmxlbmd0aDtlZTxrZTtlZSsrKXt0ZT1hcmd1bWVudHNbZWVdO2Zvcih2YXIgWCBpbiB0ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsWCkmJihpZVtYXT10ZVtYXSl9cmV0dXJuIGllfSwiX19hc3NpZ24iKSxzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIl9fYXNzaWduIiksZT0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksdD1lP3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGE9KGZ1bmN0aW9uKCl7dmFyIFE9ITE7aWYoIWUpcmV0dXJuIFE7dHJ5e3ZhciBpZT13aW5kb3csdGU9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmkoZnVuY3Rpb24oKXtRPSEwfSwiZ2V0Iil9KTtpZS5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLHRlKSxpZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLHRlKX1jYXRjaHt9cmV0dXJuIFF9KSgpLHI9aShmdW5jdGlvbihRKXtyZXR1cm4gdHlwZW9mIFE9PSJzdHJpbmcifSwiaXNTdHJpbmciKSxuPWkoZnVuY3Rpb24oUSl7cmV0dXJuIHR5cGVvZiBRPT0iZnVuY3Rpb24ifSwiaXNGdW5jdGlvbiIpLG89aShmdW5jdGlvbihRKXtyZXR1cm4gQXJyYXkuaXNBcnJheShRKX0sImlzQXJyYXkiKSxsPWkoZnVuY3Rpb24oUSl7cmV0dXJuIW8oUSkmJlEtcGFyc2VGbG9hdChRKSsxPj0wfSwiaXNOdW1lcmljIikscD1pKGZ1bmN0aW9uKFEsaWUpe3JldHVybiBRJiZRLmhhc093blByb3BlcnR5KGllKX0sImhhc1Byb3AiKSxkPWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCx1PWU/d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLGM9TWF0aC5jb3MsYj1NYXRoLnNpbix2PU1hdGgucG93LHg9TWF0aC5zcXJ0LG09TWF0aC5QSSxmPXtsaW5lYXI6aShmdW5jdGlvbihRKXtyZXR1cm4gUX0sImxpbmVhciIpLGVhc2VJblF1YWQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqKGllLz1rZSkqaWUrdGV9LCJlYXNlSW5RdWFkIiksZWFzZU91dFF1YWQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4tZWUqKGllLz1rZSkqKGllLTIpK3RlfSwiZWFzZU91dFF1YWQiKSxlYXNlSW5PdXRRdWFkOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuKGllLz1rZS8yKTwxP2VlLzIqaWUqaWUrdGU6LWVlLzIqKC0taWUqKGllLTIpLTEpK3RlfSwiZWFzZUluT3V0UXVhZCIpLGVhc2VJbkN1YmljOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuIGVlKihpZS89a2UpKmllKmllK3RlfSwiZWFzZUluQ3ViaWMiKSxlYXNlT3V0Q3ViaWM6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqKChpZT1pZS9rZS0xKSppZSppZSsxKSt0ZX0sImVhc2VPdXRDdWJpYyIpLGVhc2VJbk91dEN1YmljOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuKGllLz1rZS8yKTwxP2VlLzIqaWUqaWUqaWUrdGU6ZWUvMiooKGllLT0yKSppZSppZSsyKSt0ZX0sImVhc2VJbk91dEN1YmljIiksZWFzZUluUXVhcnQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqKGllLz1rZSkqaWUqaWUqaWUrdGV9LCJlYXNlSW5RdWFydCIpLGVhc2VPdXRRdWFydDppKGZ1bmN0aW9uKFEsaWUsdGUsZWUsa2Upe3JldHVybi1lZSooKGllPWllL2tlLTEpKmllKmllKmllLTEpK3RlfSwiZWFzZU91dFF1YXJ0IiksZWFzZUluT3V0UXVhcnQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4oaWUvPWtlLzIpPDE/ZWUvMippZSppZSppZSppZSt0ZTotZWUvMiooKGllLT0yKSppZSppZSppZS0yKSt0ZX0sImVhc2VJbk91dFF1YXJ0IiksZWFzZUluUXVpbnQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqKGllLz1rZSkqaWUqaWUqaWUqaWUrdGV9LCJlYXNlSW5RdWludCIpLGVhc2VPdXRRdWludDppKGZ1bmN0aW9uKFEsaWUsdGUsZWUsa2Upe3JldHVybiBlZSooKGllPWllL2tlLTEpKmllKmllKmllKmllKzEpK3RlfSwiZWFzZU91dFF1aW50IiksZWFzZUluT3V0UXVpbnQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4oaWUvPWtlLzIpPDE/ZWUvMippZSppZSppZSppZSppZSt0ZTplZS8yKigoaWUtPTIpKmllKmllKmllKmllKzIpK3RlfSwiZWFzZUluT3V0UXVpbnQiKSxlYXNlSW5TaW5lOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuLWVlKmMoaWUva2UqKG0vMikpK2VlK3RlfSwiZWFzZUluU2luZSIpLGVhc2VPdXRTaW5lOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuIGVlKmIoaWUva2UqKG0vMikpK3RlfSwiZWFzZU91dFNpbmUiKSxlYXNlSW5PdXRTaW5lOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuLWVlLzIqKGMobSppZS9rZSktMSkrdGV9LCJlYXNlSW5PdXRTaW5lIiksZWFzZUluRXhwbzppKGZ1bmN0aW9uKFEsaWUsdGUsZWUsa2Upe3JldHVybiBpZT09PTA/dGU6ZWUqdigyLDEwKihpZS9rZS0xKSkrdGV9LCJlYXNlSW5FeHBvIiksZWFzZU91dEV4cG86aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gaWU9PT1rZT90ZStlZTplZSooLXYoMiwtMTAqaWUva2UpKzEpK3RlfSwiZWFzZU91dEV4cG8iKSxlYXNlSW5PdXRFeHBvOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuIGllPT09MD90ZTppZT09PWtlP3RlK2VlOihpZS89a2UvMik8MT9lZS8yKnYoMiwxMCooaWUtMSkpK3RlOmVlLzIqKC12KDIsLTEwKi0taWUpKzIpK3RlfSwiZWFzZUluT3V0RXhwbyIpLGVhc2VJbkNpcmM6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4tZWUqKHgoMS0oaWUvPWtlKSppZSktMSkrdGV9LCJlYXNlSW5DaXJjIiksZWFzZU91dENpcmM6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqeCgxLShpZT1pZS9rZS0xKSppZSkrdGV9LCJlYXNlT3V0Q2lyYyIpLGVhc2VJbk91dENpcmM6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4oaWUvPWtlLzIpPDE/LWVlLzIqKHgoMS1pZSppZSktMSkrdGU6ZWUvMiooeCgxLShpZS09MikqaWUpKzEpK3RlfSwiZWFzZUluT3V0Q2lyYyIpfSx5PWkoZnVuY3Rpb24oUSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFE/ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChRKTpbXSl9LCIkJCIpLE09aShmdW5jdGlvbihRKXtyZXR1cm4geShRKS5zaGlmdCgpfHxudWxsfSwiJCIpLHo9aShmdW5jdGlvbihRKXtyZXR1cm4gUSBpbnN0YW5jZW9mIEVsZW1lbnR9LCJpc0VsZW1lbnQiKSxOPWkoZnVuY3Rpb24oUSl7cmV0dXJuIFE9PT13aW5kb3d9LCJpc1dpbmRvdyIpLEM9aShmdW5jdGlvbihRKXtyZXR1cm4gUT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8UT09PWRvY3VtZW50LmJvZHl9LCJpc1Jvb3RDb250YWluZXIiKSxfPWkoZnVuY3Rpb24oUSxpZSl7aWYoeihpZSkpcmV0dXJuIFE9PT1pZTtmb3IodmFyIHRlPXkoaWUpLGVlPXRlLmxlbmd0aDstLWVlPj0wJiZ0ZVtlZV0hPT1ROyk7cmV0dXJuIGVlPi0xfSwibWF0Y2hlcyIpLE89aShmdW5jdGlvbihRKXtyZXR1cm4gTWF0aC5tYXgoUS5zY3JvbGxIZWlnaHQsUS5jbGllbnRIZWlnaHQsUS5vZmZzZXRIZWlnaHQpfSwiZ2V0SGVpZ2h0IiksJD1pKGZ1bmN0aW9uKFEpe3JldHVybiBNYXRoLm1heChRLnNjcm9sbFdpZHRoLFEuY2xpZW50V2lkdGgsUS5vZmZzZXRXaWR0aCl9LCJnZXRXaWR0aCIpLEU9aShmdW5jdGlvbihRKXtyZXR1cm57d2lkdGg6JChRKSxoZWlnaHQ6TyhRKX19LCJnZXRTaXplIiksSD1pKGZ1bmN0aW9uKFEpe3ZhciBpZT1OKFEpfHxDKFEpO3JldHVybnt2aWV3cG9ydDp7d2lkdGg6aWU/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpRLmNsaWVudFdpZHRoLGhlaWdodDppZT93aW5kb3cuaW5uZXJIZWlnaHQ6US5jbGllbnRIZWlnaHR9LHNpemU6aWU/e3dpZHRoOk1hdGgubWF4KCQoZG9jdW1lbnQuYm9keSksJChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSxoZWlnaHQ6TWF0aC5tYXgoTyhkb2N1bWVudC5ib2R5KSxPKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfTpFKFEpfX0sImdldFZpZXdwb3J0QW5kRWxlbWVudFNpemVzIiksaz17eToic2Nyb2xsVG9wIix4OiJzY3JvbGxMZWZ0In0sUz17eToicGFnZVlPZmZzZXQiLHg6InBhZ2VYT2Zmc2V0In0sST1pKGZ1bmN0aW9uKFEsaWUpe3JldHVybiBOKFEpP1FbU1tpZV1dOlFba1tpZV1dfSwiZ2V0U2Nyb2xsIiksUD1pKGZ1bmN0aW9uKFEsaWUsdGUpe2lmKE4oUSkpe3ZhciBlZT10ZT09PSJ5IjtRLnNjcm9sbFRvKGVlP1EucGFnZVhPZmZzZXQ6aWUsZWU/aWU6US5wYWdlWU9mZnNldCl9ZWxzZSBRW2tbdGVdXT1pZX0sInNldFNjcm9sbCIpLFI9aShmdW5jdGlvbihRLGllKXt2YXIgdGU9US5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0ZS53aWR0aHx8dGUuaGVpZ2h0KXt2YXIgZWU9e3RvcDowLGxlZnQ6MH0sa2U9dm9pZCAwO2lmKE4oaWUpfHxDKGllKSlrZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZWUudG9wPXdpbmRvd1tTLnldLGVlLmxlZnQ9d2luZG93W1MueF07ZWxzZXtrZT1pZTt2YXIgWD1rZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlZS50b3A9WC50b3AqLTEra2Vbay55XSxlZS5sZWZ0PVgubGVmdCotMStrZVtrLnhdfXJldHVybnt0b3A6dGUudG9wK2VlLnRvcC1rZS5jbGllbnRUb3AsbGVmdDp0ZS5sZWZ0K2VlLmxlZnQta2UuY2xpZW50TGVmdH19cmV0dXJuIHRlfSwiZ2V0T2Zmc2V0IiksSz0oZnVuY3Rpb24oKXtyZXR1cm4gZT8ib253aGVlbCJpbiBkb2N1bWVudD8id2hlZWwiOiJtb3VzZXdoZWVsIjoid2hlZWwifSkoKSxWPWkoZnVuY3Rpb24oUSl7cmV0dXJuIFE9PT0id2hlZWwiP0s6UX0sImV2ZW50TmFtZSIpLFc9aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXt0ZS5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oWCl7UVtpZV0oVihYKSxlZSxhP3twYXNzaXZlOmtlfTohMSl9KX0sImFwcGx5IiksbWU9aShmdW5jdGlvbihRLGllLHRlLGVlKXtyZXR1cm4gVyhRLCJhZGRFdmVudExpc3RlbmVyIixpZSx0ZSxlZSl9LCJhZGRFdmVudCIpLEI9aShmdW5jdGlvbihRLGllLHRlLGVlKXtyZXR1cm4gVyhRLCJyZW1vdmVFdmVudExpc3RlbmVyIixpZSx0ZSxlZSl9LCJyZW1vdmVFdmVudCIpLFU9L14oXCt8LSk9KFxkKyg/OlwuXGQrKT8pJC8saGU9aShmdW5jdGlvbihRLGllKXt2YXIgdGU9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYocChRLCJ0b3AiKXx8cChRLCJsZWZ0IikpdGU9cyh7fSx0ZSxRKTtlbHNlIGlmKG8oUSkpaWYoUS5sZW5ndGg+MSl0ZS50b3A9UVswXSx0ZS5sZWZ0PVFbMV07ZWxzZSBpZihRLmxlbmd0aD09PTEpdGUudG9wPWllP1FbMF06MCx0ZS5sZWZ0PWllPzA6UVswXTtlbHNlIHJldHVybiBudWxsO2Vsc2UgaWYobChRKSlpZT90ZS50b3A9UTp0ZS5sZWZ0PVE7ZWxzZSBpZihyKFEpKXt2YXIgZWU9US50cmltKCkubWF0Y2goVSk7aWYoIWVlKXJldHVybiBudWxsO3ZhciBrZT1lZVsxXSxYPXBhcnNlSW50KGVlWzJdLDEwKTtrZT09PSIrIj8odGUudG9wPWllP1g6MCx0ZS5sZWZ0PWllPzA6WCk6KHRlLnRvcD1pZT8tWDowLHRlLmxlZnQ9aWU/MDotWCksdGUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gdGV9LCJwYXJzZUNvb3JkaW5hdGUiKSxGPXt0cmlnZ2VyOiJbZGF0YS1zY3JvbGxdIixoZWFkZXI6IltkYXRhLXNjcm9sbC1oZWFkZXJdIixkdXJhdGlvbjoxZTMsZWFzaW5nOiJlYXNlT3V0UXVpbnQiLG9mZnNldDowLHZlcnRpY2FsOiEwLGhvcml6b250YWw6ITEsY2FuY2VsbGFibGU6ITAsdXBkYXRlVVJMOiExLHByZXZlbnREZWZhdWx0OiEwLHN0b3BQcm9wYWdhdGlvbjohMCxiZWZvcmU6bnVsbCxhZnRlcjpudWxsLGNhbmNlbDpudWxsLGNvbXBsZXRlOm51bGwsc3RlcDpudWxsfSxqPSJjbGljayIsdWU9IndoZWVsIHRvdWNoc3RhcnQgdG91Y2htb3ZlIixsZT0oZnVuY3Rpb24oKXtmdW5jdGlvbiBRKGllLHRlKXt2YXIgZWU9dGhpczt0aGlzLiRlbD1udWxsLHRoaXMuY3R4PXskdHJpZ2dlcjpudWxsLG9wdHM6bnVsbCxwcm9ncmVzczohMSxwb3M6bnVsbCxzdGFydFBvczpudWxsLGVhc2luZzpudWxsLHN0YXJ0OjAsaWQ6MCxjYW5jZWw6ITEsaGFzaDpudWxsfSx0aGlzLmxvb3A9ZnVuY3Rpb24oWCl7dmFyIFo9ZWUseWU9Wi4kZWwscT1aLmN0eDtpZihxLnN0YXJ0fHwocS5zdGFydD1YKSwhcS5wcm9ncmVzc3x8IXllKXtlZS5zdG9wKCk7cmV0dXJufXZhciBBPXEub3B0cyxzZT1xLnBvcyxvZT1xLnN0YXJ0LGFlPXEuc3RhcnRQb3MsVGU9cS5lYXNpbmcsUmU9QS5kdXJhdGlvbixCZT17dG9wOiJ5IixsZWZ0OiJ4In0sR2U9WC1vZSxEZT1NYXRoLm1pbigxLE1hdGgubWF4KEdlL1JlLDApKTtPYmplY3Qua2V5cyhzZSkuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIENlPXNlW19lXSx2ZT1hZVtfZV0sYmU9Q2UtdmU7aWYoYmUhPT0wKXt2YXIgRWU9VGUoRGUsUmUqRGUsMCwxLFJlKTtQKHllLE1hdGgucm91bmQodmUrYmUqRWUpLEJlW19lXSl9fSksR2U8PVJlPyhlZS5ob29rKEEsInN0ZXAiLERlKSxxLmlkPVEucmFmKGVlLmxvb3ApKTplZS5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihYKXtmb3IodmFyIFo9ZWUub3B0cyx5ZT1YLnRhcmdldDt5ZSYmeWUhPT1kb2N1bWVudDt5ZT15ZS5wYXJlbnROb2RlKWlmKF8oeWUsWi50cmlnZ2VyKSl7dmFyIHE9SlNPTi5wYXJzZSh5ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsLW9wdGlvbnMiKXx8Int9IiksQT15ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsIiksc2U9QXx8eWUuZ2V0QXR0cmlidXRlKCJocmVmIiksb2U9cyh7fSxaLHEpLGFlPW9lLnByZXZlbnREZWZhdWx0LFRlPW9lLnN0b3BQcm9wYWdhdGlvbixSZT1vZS52ZXJ0aWNhbCxCZT1vZS5ob3Jpem9udGFsO2FlJiZYLnByZXZlbnREZWZhdWx0KCksVGUmJlguc3RvcFByb3BhZ2F0aW9uKCksZWUuY3R4LiR0cmlnZ2VyPXllLEJlJiZSZT9lZS50byhzZSxvZSk6UmU/ZWUudG9Ub3Aoc2Usb2UpOkJlJiZlZS50b0xlZnQoc2Usb2UpO2JyZWFrfX0sdGhpcy5oYW5kbGVTdG9wPWZ1bmN0aW9uKFgpe3ZhciBaPWVlLmN0eCx5ZT1aLm9wdHM7eWUmJnllLmNhbmNlbGxhYmxlPyhaLmNhbmNlbD0hMCxlZS5zdG9wKCkpOlgucHJldmVudERlZmF1bHQoKX0sdGhpcy5vcHRzPXMoe30sRixpZXx8e30pO3ZhciBrZT1udWxsO2UmJih0eXBlb2YgdGU9PSJzdHJpbmciP2tlPU0odGUpOnRlIT1udWxsP2tlPXRlOmtlPXdpbmRvdyksdGhpcy4kZWw9a2Usa2UmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIGkoUSwiU3dlZXRTY3JvbGwiKSxRLmNyZWF0ZT1mdW5jdGlvbihpZSx0ZSl7cmV0dXJuIG5ldyBRKGllLHRlKX0sUS5wcm90b3R5cGUudG89ZnVuY3Rpb24oaWUsdGUpe2lmKGUpe3ZhciBlZT10aGlzLGtlPWVlLiRlbCxYPWVlLmN0eCxaPWVlLm9wdHMseWU9WC4kdHJpZ2dlcixxPXMoe30sWix0ZXx8e30pLEE9cS5vZmZzZXQsc2U9cS52ZXJ0aWNhbCxvZT1xLmhvcml6b250YWwsYWU9eihxLmhlYWRlcik/cS5oZWFkZXI6TShxLmhlYWRlciksVGU9L14jLyxSZT1yKGllKSYmVGUudGVzdChpZSk/aWU6bnVsbDtpZihYLm9wdHM9cSxYLmNhbmNlbD0hMSxYLmhhc2g9UmUsdGhpcy5zdG9wKCksISFrZSl7dmFyIEJlPWhlKEEsc2UpLEdlPWhlKGllLHNlKSxEZT17dG9wOjAsbGVmdDowfTtpZihHZSlpZihHZS5yZWxhdGl2ZSl7dmFyIF9lPUkoa2Usc2U/InkiOiJ4Iik7RGUudG9wPXNlP19lK0dlLnRvcDpHZS50b3AsRGUubGVmdD1zZT9HZS5sZWZ0Ol9lK0dlLmxlZnR9ZWxzZSBEZT1HZTtlbHNlIGlmKHIoaWUpJiZpZSE9PSIjIil7dmFyIENlPU0oaWUpO2lmKCFDZSlyZXR1cm47RGU9UihDZSxrZSl9QmUmJihEZS50b3ArPUJlLnRvcCxEZS5sZWZ0Kz1CZS5sZWZ0KSxhZSYmKERlLnRvcD1NYXRoLm1heCgwLERlLnRvcC1FKGFlKS5oZWlnaHQpKTt2YXIgdmU9SChrZSksYmU9dmUudmlld3BvcnQsRWU9dmUuc2l6ZTtpZihEZS50b3A9c2U/TWF0aC5tYXgoMCxNYXRoLm1pbihFZS5oZWlnaHQtYmUuaGVpZ2h0LERlLnRvcCkpOkkoa2UsInkiKSxEZS5sZWZ0PW9lP01hdGgubWF4KDAsTWF0aC5taW4oRWUud2lkdGgtYmUud2lkdGgsRGUubGVmdCkpOkkoa2UsIngiKSx0aGlzLmhvb2socSwiYmVmb3JlIixEZSx5ZSk9PT0hMSl7WC5vcHRzPW51bGw7cmV0dXJufVgucG9zPURlLHRoaXMuc3RhcnQocSksdGhpcy5iaW5kKCExLCEwKX19fSxRLnByb3RvdHlwZS50b1RvcD1mdW5jdGlvbihpZSx0ZSl7dGhpcy50byhpZSxzKHt9LHRlfHx7fSx7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMX0pKX0sUS5wcm90b3R5cGUudG9MZWZ0PWZ1bmN0aW9uKGllLHRlKXt0aGlzLnRvKGllLHMoe30sdGV8fHt9LHt2ZXJ0aWNhbDohMSxob3Jpem9udGFsOiEwfSkpfSxRLnByb3RvdHlwZS50b0VsZW1lbnQ9ZnVuY3Rpb24oaWUsdGUpe3ZhciBlZT10aGlzLiRlbDshZXx8IWVlfHx0aGlzLnRvKFIoaWUsZWUpLHRlfHx7fSl9LFEucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oaWUpe2llPT09dm9pZCAwJiYoaWU9ITEpO3ZhciB0ZT10aGlzLGVlPXRlLiRlbCxrZT10ZS5jdHgsWD1rZS5wb3M7IWVlfHwha2UucHJvZ3Jlc3N8fChRLmNhZihrZS5pZCksa2UucHJvZ3Jlc3M9ITEsa2Uuc3RhcnQ9MCxrZS5pZD0wLGllJiZYJiYoUChlZSxYLmxlZnQsIngiKSxQKGVlLFgudG9wLCJ5IikpLHRoaXMuY29tcGxldGUoKSl9LFEucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihpZSl7aWYodGhpcy4kZWwpe3ZhciB0ZT1zKHt9LHRoaXMub3B0cyxpZSk7dGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMub3B0cz10ZSx0aGlzLmJpbmQoITAsITEpfX0sUS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJGVsJiYodGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMuJGVsPW51bGwpfSxRLnByb3RvdHlwZS5vbkJlZm9yZT1mdW5jdGlvbihpZSx0ZSl7cmV0dXJuITB9LFEucHJvdG90eXBlLm9uU3RlcD1mdW5jdGlvbihpZSl7fSxRLnByb3RvdHlwZS5vbkFmdGVyPWZ1bmN0aW9uKGllLHRlKXt9LFEucHJvdG90eXBlLm9uQ2FuY2VsPWZ1bmN0aW9uKCl7fSxRLnByb3RvdHlwZS5vbkNvbXBsZXRlPWZ1bmN0aW9uKGllKXt9LFEucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKGllKXt2YXIgdGU9dGhpcy5jdHg7dGUub3B0cz1pZSx0ZS5wcm9ncmVzcz0hMCx0ZS5lYXNpbmc9bihpZS5lYXNpbmcpP2llLmVhc2luZzpmW2llLmVhc2luZ107dmFyIGVlPXRoaXMuJGVsLGtlPXt0b3A6SShlZSwieSIpLGxlZnQ6SShlZSwieCIpfTt0ZS5zdGFydFBvcz1rZSx0ZS5pZD1RLnJhZih0aGlzLmxvb3ApfSxRLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBpZT10aGlzLHRlPWllLiRlbCxlZT1pZS5jdHgsa2U9ZWUuaGFzaCxYPWVlLmNhbmNlbCxaPWVlLm9wdHMseWU9ZWUucG9zLHE9ZWUuJHRyaWdnZXI7aWYoISghdGV8fCFaKSl7aWYoa2UhPW51bGwmJmtlIT09d2luZG93LmxvY2F0aW9uLmhhc2gpe3ZhciBBPVoudXBkYXRlVVJMO2UmJnQmJkEhPT0hMSYmd2luZG93Lmhpc3RvcnlbQT09PSJyZXBsYWNlIj8icmVwbGFjZVN0YXRlIjoicHVzaFN0YXRlIl0obnVsbCwiIixrZSl9dGhpcy51bmJpbmQoITEsITApLGVlLm9wdHM9bnVsbCxlZS4kdHJpZ2dlcj1udWxsLFg/dGhpcy5ob29rKFosImNhbmNlbCIpOnRoaXMuaG9vayhaLCJhZnRlciIseWUscSksdGhpcy5ob29rKFosImNvbXBsZXRlIixYKX19LFEucHJvdG90eXBlLmhvb2s9ZnVuY3Rpb24oaWUsdGUpe2Zvcih2YXIgZWU9W10sa2U9MjtrZTxhcmd1bWVudHMubGVuZ3RoO2tlKyspZWVba2UtMl09YXJndW1lbnRzW2tlXTt2YXIgWCxaPWllW3RlXSx5ZSxxO3JldHVybiBuKFopJiYoeWU9Wi5hcHBseSh0aGlzLGVlLmNvbmNhdChbdGhpc10pKSkscT0oWD10aGlzKVsib24iKyh0ZVswXS50b1VwcGVyQ2FzZSgpK3RlLnNsaWNlKDEpKV0uYXBwbHkoWCxlZSkseWUhPT12b2lkIDA/eWU6cX0sUS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbihpZSx0ZSl7dmFyIGVlPXRoaXMsa2U9ZWUuJGVsLFg9ZWUuY3R4Lm9wdHM7a2UmJihpZSYmbWUoa2Usaix0aGlzLmhhbmRsZUNsaWNrLCExKSx0ZSYmbWUoa2UsdWUsdGhpcy5oYW5kbGVTdG9wLFg/WC5jYW5jZWxsYWJsZTohMCkpfSxRLnByb3RvdHlwZS51bmJpbmQ9ZnVuY3Rpb24oaWUsdGUpe3ZhciBlZT10aGlzLGtlPWVlLiRlbCxYPWVlLmN0eC5vcHRzO2tlJiYoaWUmJkIoa2Usaix0aGlzLmhhbmRsZUNsaWNrLCExKSx0ZSYmQihrZSx1ZSx0aGlzLmhhbmRsZVN0b3AsWD9YLmNhbmNlbGxhYmxlOiEwKSl9LFEucmFmPWQsUS5jYWY9dSxRfSkoKTtyZXR1cm4gbGV9KX0pO3ZhciBoYixKSGEsZmI9ZygoKT0+e2k1dCgpO3BzZSgpO2QwKCk7ZzkoKTt5eXQoKTtpbygpOyR5dCgpO1oyKCk7T3l0KCk7bzMoKTtHNmUoKTthc2UoKTt5cmUoKTtLYWUoKTtLeSgpO01oZSgpO0FhZSgpO2p3dCgpO2hiPXhuKFZ3dCgpLDEpLEpIYT17T2JqZWN0TWFwOmIwLFN0cmluZ21hcDpaeSxGYXN0TWFwOnIzfX0pO3ZhciBNaT17fTt5dChNaSx7Y29udGFpbmVyQ29udGV4dFN0eWxlczooKT0+YXFhLGNzc0ZvckNvbnN0cmFpbnQ6KCk9PmVxYSxjc3NGb3JDb25zdHJhaW50Q29udGFpbmVyOigpPT50cWEsY3NzRm9yQ29udGFpbmVyOigpPT5Yd3QsY3NzRm9yRGVza3RvcDooKT0+c3FhLGNzc0Zvck5vdGVib29rOigpPT5pcWEsY3NzRm9yUGhhYmxldDooKT0+b3FhLGNzc0ZvclBob25lOigpPT5ucWEsY3NzRm9yVGFibGV0OigpPT5ycWEsY3NzRm9yVmlld3BvcnQ6KCk9PmozLGRlc2t0b3A6KCk9Pld3dCxub3RlYm9vazooKT0+R3d0LHBoYWJsZXQ6KCk9Pll3dCxwaG9uZTooKT0+Wnd0LHRhYmxldDooKT0+S3d0fSk7dmFyIFd3dCxHd3QsS3d0LFl3dCxad3QsVXd0LGozLFh3dCxlcWEsdHFhLGFxYSxzcWEsaXFhLHJxYSxvcWEsbnFhLHY1ZT1nKCgpPT57bWIoKTt2YygpO1d3dD0xNjAwLEd3dD0xMjQwLEt3dD0xMDI0LFl3dD02MDAsWnd0PTQwMCxVd3Q9aShzPT57bGV0IGU9W107cmV0dXJuIHMubWluV2lkdGgmJmUucHVzaChgKG1pbi13aWR0aDogJHtzLm1pbldpZHRofXB4KWApLHMubWF4V2lkdGgmJmUucHVzaChgKG1heC13aWR0aDogJHtzLm1heFdpZHRofXB4KWApLGUuam9pbigiIGFuZCAiKX0sImJ1aWxkQ29uZGl0aW9uIiksajM9aSgocyxlKT0+YWEoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0ICR7ZX0gewogICAgICAke3MuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAke2V9IHsKICAgICAgJHtzLmNzc1RleHR9CiAgICB9CiAgYCksImNzc0ZvclZpZXdwb3J0IiksWHd0PWkoKHMsZSx0KT0+YWEoYAogICAgQGNvbnRhaW5lciAke3R9ICR7ZX0gewogICAgICAke3MuY3NzVGV4dH0KICAgIH0KICBgKSwiY3NzRm9yQ29udGFpbmVyIiksZXFhPWkocz0+ZT0+ajMoZSxVd3QocykpLCJjc3NGb3JDb25zdHJhaW50IiksdHFhPWkoKHMsZSk9PnQ9Plh3dCh0LFV3dChzKSxlKSwiY3NzRm9yQ29uc3RyYWludENvbnRhaW5lciIpLGFxYT1pKHM9PkpgCiAgOmhvc3QgewogICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplOwogICAgY29udGFpbmVyLW5hbWU6ICR7YWEocyl9OwogIH0KYCwiY29udGFpbmVyQ29udGV4dFN0eWxlcyIpLHNxYT1pKHM9PmozKHMsYChtaW4td2lkdGg6ICR7V3d0fXB4KWApLCJjc3NGb3JEZXNrdG9wIiksaXFhPWkocz0+ajMocyxgKG1heC13aWR0aDogJHtHd3R9cHgpYCksImNzc0Zvck5vdGVib29rIikscnFhPWkocz0+ajMocyxgKG1heC13aWR0aDogJHtLd3R9cHgpYCksImNzc0ZvclRhYmxldCIpLG9xYT1pKHM9PmozKHMsYChtYXgtd2lkdGg6ICR7WXd0fXB4KWApLCJjc3NGb3JQaGFibGV0IiksbnFhPWkocz0+ajMocyxgKG1heC13aWR0aDogJHtad3R9cHgpYCksImNzc0ZvclBob25lIil9KTt2YXIga3JlLFF3dD1nKCgpPT57ZmIoKTtrcmU9Y2xhc3N7c3RhdGlje2kodGhpcywiU2Nyb2xsZXIiKX1kb210b29sc0luc3RhbmNlO2Rpc3Bvc2VkPSExO3Njcm9sbENhbGxiYWNrcz1bXTtsZW5pc0luc3RhbmNlPW51bGw7bGVuaXNTY3JvbGxVbnN1YnNjcmliZT1udWxsO25hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQ9ITE7aGFuZGxlTmF0aXZlU2Nyb2xsPWkoZT0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfSwiaGFuZGxlTmF0aXZlU2Nyb2xsIik7aGFuZGxlTGVuaXNTY3JvbGw9aShlPT57dGhpcy5leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl9LCJoYW5kbGVMZW5pc1Njcm9sbCIpO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tdG9vbHNJbnN0YW5jZT1lLHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKX1zd2VldFNjcm9sbGVyPW5ldyBoYi5kZWZhdWx0KHt9KTthc3luYyB0b0VsZW1lbnQoZSx0KXt0aGlzLnN3ZWV0U2Nyb2xsZXIudG9FbGVtZW50KGUsdCksdD8uZHVyYXRpb24mJmF3YWl0IFh0LmRlbGF5Rm9yKHQuZHVyYXRpb24pfWFzeW5jIGRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpe2xldCBlPWdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5zY3JvbGxCZWhhdmlvcix0PWRvY3VtZW50LmJvZHk/Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5zY3JvbGxCZWhhdmlvcjoiYXV0byI7aWYoZT09PSJzbW9vdGgifHx0PT09InNtb290aCIpcmV0dXJuITA7bGV0IGE9bXQuZGVmZXIoKSxyPTEyLG49MyxvPS43NSxsPTEyMDAscD1bXSxkPWkodj0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdSksd2luZG93LmNsZWFyVGltZW91dChiKSxhLnJlc29sdmUodil9LCJmaW5hbGl6ZSIpO2Z1bmN0aW9uIHUodil7cC5wdXNoKHYuZGVsdGFZKSxwLmxlbmd0aD49ciYmYygpfWkodSwib25XaGVlbCIpO2Z1bmN0aW9uIGMoKXtpZihwLmxlbmd0aDwyKXtkKCExKTtyZXR1cm59bGV0IHY9cC5sZW5ndGgtMSx4PTA7Zm9yKGxldCBmPTA7Zjx2O2YrKylNYXRoLmFicyhwW2YrMV0tcFtmXSk8PW4mJngrKztsZXQgbT14L3Y7ZChtPj1vKX1pKGMsImFuYWx5emVFdmVudHMiKTtsZXQgYj13aW5kb3cuc2V0VGltZW91dCgoKT0+e2MoKX0sbCk7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsdSx7cGFzc2l2ZTohMH0pLGEucHJvbWlzZX1hc3luYyBlbmFibGVMZW5pc1Njcm9sbChlKXtpZih0aGlzLmRpc3Bvc2VkKXJldHVybjt0aGlzLmxlbmlzSW5zdGFuY2UmJnRoaXMuZGlzYWJsZUxlbmlzU2Nyb2xsKCk7bGV0IHQ9bmV3IEFrKHthdXRvUmFmOiEwfSk7aWYoZT8uZGlzYWJsZU9uTmF0aXZlU21vb3RoU2Nyb2xsJiZhd2FpdCB0aGlzLmRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpKXt0LmRlc3Ryb3koKTtyZXR1cm59dGhpcy5sZW5pc0luc3RhbmNlPXQsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpfWRpc2FibGVMZW5pc1Njcm9sbCgpe3RoaXMubGVuaXNJbnN0YW5jZSYmKHRoaXMuZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpLHRoaXMubGVuaXNJbnN0YW5jZS5kZXN0cm95KCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGwsdGhpcy5hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpKX1vblNjcm9sbChlKXtyZXR1cm4gdGhpcy5zY3JvbGxDYWxsYmFja3MucHVzaChlKSwoKT0+e3RoaXMuc2Nyb2xsQ2FsbGJhY2tzPXRoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZpbHRlcih0PT50IT09ZSl9fWV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKXt0aGlzLnNjcm9sbENhbGxiYWNrcy5mb3JFYWNoKGU9Pnt0cnl7ZSgpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHNjcm9sbCBjYWxsYmFjazoiLHQpfX0pfWF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl7dGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkfHx0aGlzLmRpc3Bvc2VkfHwod2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVOYXRpdmVTY3JvbGwpLHRoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZD0hMCl9ZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCksdGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkPSExKX1hdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCl7dGhpcy5sZW5pc0luc3RhbmNlJiYhdGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlJiYodGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlPXRoaXMubGVuaXNJbnN0YW5jZS5vbigic2Nyb2xsIix0aGlzLmhhbmRsZUxlbmlzU2Nyb2xsKSl9ZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZSYmKHRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZSgpLHRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZT1udWxsKX1kaXNwb3NlKCl7dGhpcy5kaXNwb3NlZHx8KHRoaXMuZGlzcG9zZWQ9ITAsdGhpcy5kZXRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlPy5kZXN0cm95KCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGwsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuc2Nyb2xsQ2FsbGJhY2tzPVtdLHRoaXMuc3dlZXRTY3JvbGxlci5kZXN0cm95KCkpfX19KTt2YXIgU3JlLEp3dD1nKCgpPT57bWIoKTtmYigpO1NyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaGVtZU1hbmFnZXIiKX1kb210b29sc1JlZjtnb0JyaWdodEJvb2xlYW49ITE7cHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpO3RoZW1lT2JzZXJ2YWJsZT1uZXcgbHMucnhqcy5SZXBsYXlTdWJqZWN0KDEpO2F1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPW51bGw7cHJlZmVycmVkQ29sb3JTY2hlbWVDaGFuZ2VIYW5kbGVyPWkoZT0+e3RoaXMuZ29CcmlnaHRCb29sZWFuPWUubWF0Y2hlcyx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9LCJwcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXIiKTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbXRvb2xzUmVmPWUsdGhpcy5nb0JyaWdodEJvb2xlYW49dGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2gubWF0Y2hlcyx0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVDaGFuZ2VIYW5kbGVyKSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9YXN5bmMgZW5hYmxlQXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2UoKXthd2FpdCB0aGlzLmRvbXRvb2xzUmVmLmRvbVJlYWR5LnByb21pc2UsdGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbnx8KHRoaXMuYXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb249dGhpcy50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKHtuZXh0OmkoZT0+e2RvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZD1lPyIjZmZmIjoiIzAwMCJ9LCJuZXh0Iil9KSl9dXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKXt0aGlzLmRvbXRvb2xzUmVmLmRpc3Bvc2VkfHx0aGlzLnRoZW1lT2JzZXJ2YWJsZS5uZXh0KHRoaXMuZ29CcmlnaHRCb29sZWFuKX1nb0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSEwLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1nb0RhcmsoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9dG9nZ2xlRGFya0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSF0aGlzLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9ZGlzcG9zZSgpe3RoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXIpLHRoaXMuYXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj1udWxsLHRoaXMudGhlbWVPYnNlcnZhYmxlLmNvbXBsZXRlKCl9fX0pO3ZhciBaZSxfcmUsZWt0PWcoKCk9PntmYigpOyhmdW5jdGlvbihzKXtzW3MuQmFja3NwYWNlPThdPSJCYWNrc3BhY2UiLHNbcy5UYWI9OV09IlRhYiIsc1tzLkVudGVyPTEzXT0iRW50ZXIiLHNbcy5TaGlmdD0xNl09IlNoaWZ0IixzW3MuQ3RybD0xN109IkN0cmwiLHNbcy5BbHQ9MThdPSJBbHQiLHNbcy5QYXVzZUJyZWFrPTE5XT0iUGF1c2VCcmVhayIsc1tzLkNhcHNMb2NrPTIwXT0iQ2Fwc0xvY2siLHNbcy5Fc2NhcGU9MjddPSJFc2NhcGUiLHNbcy5TcGFjZT0zMl09IlNwYWNlIixzW3MuUGFnZVVwPTMzXT0iUGFnZVVwIixzW3MuUGFnZURvd249MzRdPSJQYWdlRG93biIsc1tzLkVuZD0zNV09IkVuZCIsc1tzLkhvbWU9MzZdPSJIb21lIixzW3MuTGVmdEFycm93PTM3XT0iTGVmdEFycm93IixzW3MuVXBBcnJvdz0zOF09IlVwQXJyb3ciLHNbcy5SaWdodEFycm93PTM5XT0iUmlnaHRBcnJvdyIsc1tzLkRvd25BcnJvdz00MF09IkRvd25BcnJvdyIsc1tzLkluc2VydD00NV09Ikluc2VydCIsc1tzLkRlbGV0ZT00Nl09IkRlbGV0ZSIsc1tzLlplcm89NDhdPSJaZXJvIixzW3MuQ2xvc2VkUGFyZW49NDhdPSJDbG9zZWRQYXJlbiIsc1tzLk9uZT00OV09Ik9uZSIsc1tzLkV4Y2xhbWF0aW9uTWFyaz00OV09IkV4Y2xhbWF0aW9uTWFyayIsc1tzLlR3bz01MF09IlR3byIsc1tzLkF0U2lnbj01MF09IkF0U2lnbiIsc1tzLlRocmVlPTUxXT0iVGhyZWUiLHNbcy5Qb3VuZFNpZ249NTFdPSJQb3VuZFNpZ24iLHNbcy5IYXNoPTUxXT0iSGFzaCIsc1tzLkZvdXI9NTJdPSJGb3VyIixzW3MuRG9sbGFyU2lnbj01Ml09IkRvbGxhclNpZ24iLHNbcy5GaXZlPTUzXT0iRml2ZSIsc1tzLlBlcmNlbnRTaWduPTUzXT0iUGVyY2VudFNpZ24iLHNbcy5TaXg9NTRdPSJTaXgiLHNbcy5DYXJldD01NF09IkNhcmV0IixzW3MuSGF0PTU0XT0iSGF0IixzW3MuU2V2ZW49NTVdPSJTZXZlbiIsc1tzLkFtcGVyc2FuZD01NV09IkFtcGVyc2FuZCIsc1tzLkVpZ2h0PTU2XT0iRWlnaHQiLHNbcy5TdGFyPTU2XT0iU3RhciIsc1tzLkFzdGVyaWs9NTZdPSJBc3RlcmlrIixzW3MuTmluZT01N109Ik5pbmUiLHNbcy5PcGVuUGFyZW49NTddPSJPcGVuUGFyZW4iLHNbcy5BPTY1XT0iQSIsc1tzLkI9NjZdPSJCIixzW3MuQz02N109IkMiLHNbcy5EPTY4XT0iRCIsc1tzLkU9NjldPSJFIixzW3MuRj03MF09IkYiLHNbcy5HPTcxXT0iRyIsc1tzLkg9NzJdPSJIIixzW3MuST03M109IkkiLHNbcy5KPTc0XT0iSiIsc1tzLks9NzVdPSJLIixzW3MuTD03Nl09IkwiLHNbcy5NPTc3XT0iTSIsc1tzLk49NzhdPSJOIixzW3MuTz03OV09Ik8iLHNbcy5QPTgwXT0iUCIsc1tzLlE9ODFdPSJRIixzW3MuUj04Ml09IlIiLHNbcy5TPTgzXT0iUyIsc1tzLlQ9ODRdPSJUIixzW3MuVT04NV09IlUiLHNbcy5WPTg2XT0iViIsc1tzLlc9ODddPSJXIixzW3MuWD04OF09IlgiLHNbcy5ZPTg5XT0iWSIsc1tzLlo9OTBdPSJaIixzW3MuTGVmdFdpbmRvd0tleT05MV09IkxlZnRXaW5kb3dLZXkiLHNbcy5SaWdodFdpbmRvd0tleT05Ml09IlJpZ2h0V2luZG93S2V5IixzW3MuU2VsZWN0S2V5PTkzXT0iU2VsZWN0S2V5IixzW3MuTnVtcGFkMD05Nl09Ik51bXBhZDAiLHNbcy5OdW1wYWQxPTk3XT0iTnVtcGFkMSIsc1tzLk51bXBhZDI9OThdPSJOdW1wYWQyIixzW3MuTnVtcGFkMz05OV09Ik51bXBhZDMiLHNbcy5OdW1wYWQ0PTEwMF09Ik51bXBhZDQiLHNbcy5OdW1wYWQ1PTEwMV09Ik51bXBhZDUiLHNbcy5OdW1wYWQ2PTEwMl09Ik51bXBhZDYiLHNbcy5OdW1wYWQ3PTEwM109Ik51bXBhZDciLHNbcy5OdW1wYWQ4PTEwNF09Ik51bXBhZDgiLHNbcy5OdW1wYWQ5PTEwNV09Ik51bXBhZDkiLHNbcy5NdWx0aXBseT0xMDZdPSJNdWx0aXBseSIsc1tzLkFkZD0xMDddPSJBZGQiLHNbcy5TdWJ0cmFjdD0xMDldPSJTdWJ0cmFjdCIsc1tzLkRlY2ltYWxQb2ludD0xMTBdPSJEZWNpbWFsUG9pbnQiLHNbcy5EaXZpZGU9MTExXT0iRGl2aWRlIixzW3MuRjE9MTEyXT0iRjEiLHNbcy5GMj0xMTNdPSJGMiIsc1tzLkYzPTExNF09IkYzIixzW3MuRjQ9MTE1XT0iRjQiLHNbcy5GNT0xMTZdPSJGNSIsc1tzLkY2PTExN109IkY2IixzW3MuRjc9MTE4XT0iRjciLHNbcy5GOD0xMTldPSJGOCIsc1tzLkY5PTEyMF09IkY5IixzW3MuRjEwPTEyMV09IkYxMCIsc1tzLkYxMT0xMjJdPSJGMTEiLHNbcy5GMTI9MTIzXT0iRjEyIixzW3MuTnVtTG9jaz0xNDRdPSJOdW1Mb2NrIixzW3MuU2Nyb2xsTG9jaz0xNDVdPSJTY3JvbGxMb2NrIixzW3MuU2VtaUNvbG9uPTE4Nl09IlNlbWlDb2xvbiIsc1tzLkVxdWFscz0xODddPSJFcXVhbHMiLHNbcy5Db21tYT0xODhdPSJDb21tYSIsc1tzLkRhc2g9MTg5XT0iRGFzaCIsc1tzLlBlcmlvZD0xOTBdPSJQZXJpb2QiLHNbcy5VbmRlclNjb3JlPTE4OV09IlVuZGVyU2NvcmUiLHNbcy5QbHVzU2lnbj0xODddPSJQbHVzU2lnbiIsc1tzLkZvcndhcmRTbGFzaD0xOTFdPSJGb3J3YXJkU2xhc2giLHNbcy5UaWxkZT0xOTJdPSJUaWxkZSIsc1tzLkdyYXZlQWNjZW50PTE5Ml09IkdyYXZlQWNjZW50IixzW3MuT3BlbkJyYWNrZXQ9MjE5XT0iT3BlbkJyYWNrZXQiLHNbcy5DbG9zZWRCcmFja2V0PTIyMV09IkNsb3NlZEJyYWNrZXQiLHNbcy5RdW90ZT0yMjJdPSJRdW90ZSJ9KShaZXx8KFplPXt9KSk7X3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIktleWJvYXJkIil9ZG9tTm9kZTttYXBDb21ib3NUb0hhbmRsZXJzPW5ldyBNYXA7cHJlc3NlZEtleXM9bmV3IFNldDtsaXN0ZW5pbmc9ITE7Y29uc3RydWN0b3IoZSl7dGhpcy5kb21Ob2RlPWUsdGhpcy5zdGFydExpc3RlbmluZygpfWtleUVudW09WmU7b24oZSl7bGV0IHQ9bmV3IGxzLnJ4anMuU3ViamVjdDtyZXR1cm4gdGhpcy5yZWdpc3RlcktleXMoZSx0KSx0fXRyaWdnZXJLZXlQcmVzcyhlKXtsZXQgdD10aGlzLm5vcm1hbGl6ZUtleXMoZSk7Zm9yKGxldCBhIG9mIHQpdGhpcy5wcmVzc2VkS2V5cy5hZGQoYSk7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyh0aGlzLmNyZWF0ZUtleWJvYXJkRXZlbnQodCkpO2ZvcihsZXQgYSBvZiB0KXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKGEpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5saXN0ZW5pbmd8fCh0aGlzLmRvbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSx0aGlzLmRvbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuaGFuZGxlS2V5VXApLHRoaXMubGlzdGVuaW5nPSEwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5saXN0ZW5pbmcmJih0aGlzLmRvbU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSx0aGlzLmRvbU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuaGFuZGxlS2V5VXApLHRoaXMubGlzdGVuaW5nPSExKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpO2ZvcihsZXQgZSBvZiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMudmFsdWVzKCkpZm9yKGxldCB0IG9mIGUuc3ViamVjdHMpdC5jb21wbGV0ZSgpO3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1kaXNwb3NlKCl7dGhpcy5jbGVhcigpfWhhbmRsZUtleURvd249aShlPT57bGV0IHQ9dGhpcy5yZXNvbHZlS2V5KGUpO3QhPT1udWxsJiYodGhpcy5wcmVzc2VkS2V5cy5hZGQodCksdGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyhlKSl9LCJoYW5kbGVLZXlEb3duIik7Y2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoZSl7dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmZvckVhY2godD0+e2lmKHRoaXMuYXJlQWxsS2V5c1ByZXNzZWQodC5rZXlzKSlmb3IobGV0IGEgb2YgdC5zdWJqZWN0cylhLm5leHQoZSl9KX1oYW5kbGVLZXlVcD1pKGU9PntsZXQgdD10aGlzLnJlc29sdmVLZXkoZSk7dCE9PW51bGwmJnRoaXMucHJlc3NlZEtleXMuZGVsZXRlKHQpfSwiaGFuZGxlS2V5VXAiKTthcmVBbGxLZXlzUHJlc3NlZChlKXtsZXQgdD0hMDtyZXR1cm4gZS5mb3JFYWNoKGE9Pnt0aGlzLnByZXNzZWRLZXlzLmhhcyhhKXx8KHQ9ITEpfSksdH1yZWdpc3RlcktleXMoZSx0KXtsZXQgYT10aGlzLm5vcm1hbGl6ZUtleXMoZSkscj1hLmpvaW4oIisiKSxuPXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5nZXQocik7aWYoIW4pe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQocix7a2V5czphLHN1YmplY3RzOlt0XX0pO3JldHVybn1uLnN1YmplY3RzLnB1c2godCl9bm9ybWFsaXplS2V5cyhlKXtyZXR1cm5bLi4ubmV3IFNldChlKV0uc29ydCgodCxhKT0+dC1hKX1yZXNvbHZlS2V5KGUpe3JldHVybiB0aGlzLnJlc29sdmVLZXlGcm9tQ29kZShlLmNvZGUpPz90aGlzLnJlc29sdmVLZXlGcm9tS2V5KGUua2V5KT8/dGhpcy5yZXNvbHZlS2V5RnJvbUtleUNvZGUoZS5rZXlDb2RlKX1yZXNvbHZlS2V5RnJvbUNvZGUoZSl7aWYoIWUpcmV0dXJuIG51bGw7aWYoZS5zdGFydHNXaXRoKCJLZXkiKSYmZS5sZW5ndGg9PT00KXJldHVybiBaZVtlLnNsaWNlKDMpXT8/bnVsbDtpZihlLnN0YXJ0c1dpdGgoIkRpZ2l0IikmJmUubGVuZ3RoPT09NilyZXR1cm4gdGhpcy5yZXNvbHZlS2V5RnJvbUtleShlLnNsaWNlKDUpKTtzd2l0Y2goZSl7Y2FzZSJCYWNrc3BhY2UiOnJldHVybiBaZS5CYWNrc3BhY2U7Y2FzZSJUYWIiOnJldHVybiBaZS5UYWI7Y2FzZSJFbnRlciI6Y2FzZSJOdW1wYWRFbnRlciI6cmV0dXJuIFplLkVudGVyO2Nhc2UiU2hpZnRMZWZ0IjpjYXNlIlNoaWZ0UmlnaHQiOnJldHVybiBaZS5TaGlmdDtjYXNlIkNvbnRyb2xMZWZ0IjpjYXNlIkNvbnRyb2xSaWdodCI6cmV0dXJuIFplLkN0cmw7Y2FzZSJBbHRMZWZ0IjpjYXNlIkFsdFJpZ2h0IjpyZXR1cm4gWmUuQWx0O2Nhc2UiUGF1c2UiOnJldHVybiBaZS5QYXVzZUJyZWFrO2Nhc2UiQ2Fwc0xvY2siOnJldHVybiBaZS5DYXBzTG9jaztjYXNlIkVzY2FwZSI6cmV0dXJuIFplLkVzY2FwZTtjYXNlIlNwYWNlIjpyZXR1cm4gWmUuU3BhY2U7Y2FzZSJQYWdlVXAiOnJldHVybiBaZS5QYWdlVXA7Y2FzZSJQYWdlRG93biI6cmV0dXJuIFplLlBhZ2VEb3duO2Nhc2UiRW5kIjpyZXR1cm4gWmUuRW5kO2Nhc2UiSG9tZSI6cmV0dXJuIFplLkhvbWU7Y2FzZSJBcnJvd0xlZnQiOnJldHVybiBaZS5MZWZ0QXJyb3c7Y2FzZSJBcnJvd1VwIjpyZXR1cm4gWmUuVXBBcnJvdztjYXNlIkFycm93UmlnaHQiOnJldHVybiBaZS5SaWdodEFycm93O2Nhc2UiQXJyb3dEb3duIjpyZXR1cm4gWmUuRG93bkFycm93O2Nhc2UiSW5zZXJ0IjpyZXR1cm4gWmUuSW5zZXJ0O2Nhc2UiRGVsZXRlIjpyZXR1cm4gWmUuRGVsZXRlO2Nhc2UiTWV0YUxlZnQiOnJldHVybiBaZS5MZWZ0V2luZG93S2V5O2Nhc2UiTWV0YVJpZ2h0IjpyZXR1cm4gWmUuUmlnaHRXaW5kb3dLZXk7Y2FzZSJDb250ZXh0TWVudSI6cmV0dXJuIFplLlNlbGVjdEtleTtjYXNlIk51bXBhZDAiOnJldHVybiBaZS5OdW1wYWQwO2Nhc2UiTnVtcGFkMSI6cmV0dXJuIFplLk51bXBhZDE7Y2FzZSJOdW1wYWQyIjpyZXR1cm4gWmUuTnVtcGFkMjtjYXNlIk51bXBhZDMiOnJldHVybiBaZS5OdW1wYWQzO2Nhc2UiTnVtcGFkNCI6cmV0dXJuIFplLk51bXBhZDQ7Y2FzZSJOdW1wYWQ1IjpyZXR1cm4gWmUuTnVtcGFkNTtjYXNlIk51bXBhZDYiOnJldHVybiBaZS5OdW1wYWQ2O2Nhc2UiTnVtcGFkNyI6cmV0dXJuIFplLk51bXBhZDc7Y2FzZSJOdW1wYWQ4IjpyZXR1cm4gWmUuTnVtcGFkODtjYXNlIk51bXBhZDkiOnJldHVybiBaZS5OdW1wYWQ5O2Nhc2UiTnVtcGFkTXVsdGlwbHkiOnJldHVybiBaZS5NdWx0aXBseTtjYXNlIk51bXBhZEFkZCI6cmV0dXJuIFplLkFkZDtjYXNlIk51bXBhZFN1YnRyYWN0IjpyZXR1cm4gWmUuU3VidHJhY3Q7Y2FzZSJOdW1wYWREZWNpbWFsIjpyZXR1cm4gWmUuRGVjaW1hbFBvaW50O2Nhc2UiTnVtcGFkRGl2aWRlIjpyZXR1cm4gWmUuRGl2aWRlO2Nhc2UiRjEiOnJldHVybiBaZS5GMTtjYXNlIkYyIjpyZXR1cm4gWmUuRjI7Y2FzZSJGMyI6cmV0dXJuIFplLkYzO2Nhc2UiRjQiOnJldHVybiBaZS5GNDtjYXNlIkY1IjpyZXR1cm4gWmUuRjU7Y2FzZSJGNiI6cmV0dXJuIFplLkY2O2Nhc2UiRjciOnJldHVybiBaZS5GNztjYXNlIkY4IjpyZXR1cm4gWmUuRjg7Y2FzZSJGOSI6cmV0dXJuIFplLkY5O2Nhc2UiRjEwIjpyZXR1cm4gWmUuRjEwO2Nhc2UiRjExIjpyZXR1cm4gWmUuRjExO2Nhc2UiRjEyIjpyZXR1cm4gWmUuRjEyO2Nhc2UiTnVtTG9jayI6cmV0dXJuIFplLk51bUxvY2s7Y2FzZSJTY3JvbGxMb2NrIjpyZXR1cm4gWmUuU2Nyb2xsTG9jaztjYXNlIlNlbWljb2xvbiI6cmV0dXJuIFplLlNlbWlDb2xvbjtjYXNlIkVxdWFsIjpyZXR1cm4gWmUuRXF1YWxzO2Nhc2UiQ29tbWEiOnJldHVybiBaZS5Db21tYTtjYXNlIk1pbnVzIjpyZXR1cm4gWmUuRGFzaDtjYXNlIlBlcmlvZCI6cmV0dXJuIFplLlBlcmlvZDtjYXNlIlNsYXNoIjpyZXR1cm4gWmUuRm9yd2FyZFNsYXNoO2Nhc2UiQmFja3F1b3RlIjpyZXR1cm4gWmUuVGlsZGU7Y2FzZSJCcmFja2V0TGVmdCI6cmV0dXJuIFplLk9wZW5CcmFja2V0O2Nhc2UiQnJhY2tldFJpZ2h0IjpyZXR1cm4gWmUuQ2xvc2VkQnJhY2tldDtjYXNlIlF1b3RlIjpyZXR1cm4gWmUuUXVvdGU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19cmVzb2x2ZUtleUZyb21LZXkoZSl7aWYoIWUpcmV0dXJuIG51bGw7aWYoZS5sZW5ndGg9PT0xKXtsZXQgdD1lLnRvVXBwZXJDYXNlKCk7aWYodD49IkEiJiZ0PD0iWiIpcmV0dXJuIFplW3RdPz9udWxsO3N3aXRjaChlKXtjYXNlIjAiOnJldHVybiBaZS5aZXJvO2Nhc2UiMSI6cmV0dXJuIFplLk9uZTtjYXNlIjIiOnJldHVybiBaZS5Ud287Y2FzZSIzIjpyZXR1cm4gWmUuVGhyZWU7Y2FzZSI0IjpyZXR1cm4gWmUuRm91cjtjYXNlIjUiOnJldHVybiBaZS5GaXZlO2Nhc2UiNiI6cmV0dXJuIFplLlNpeDtjYXNlIjciOnJldHVybiBaZS5TZXZlbjtjYXNlIjgiOnJldHVybiBaZS5FaWdodDtjYXNlIjkiOnJldHVybiBaZS5OaW5lO2Nhc2UiICI6cmV0dXJuIFplLlNwYWNlO2Nhc2UiOyI6cmV0dXJuIFplLlNlbWlDb2xvbjtjYXNlIj0iOnJldHVybiBaZS5FcXVhbHM7Y2FzZSIsIjpyZXR1cm4gWmUuQ29tbWE7Y2FzZSItIjpyZXR1cm4gWmUuRGFzaDtjYXNlIi4iOnJldHVybiBaZS5QZXJpb2Q7Y2FzZSIvIjpyZXR1cm4gWmUuRm9yd2FyZFNsYXNoO2Nhc2UiYCI6cmV0dXJuIFplLlRpbGRlO2Nhc2UiWyI6cmV0dXJuIFplLk9wZW5CcmFja2V0O2Nhc2UiXSI6cmV0dXJuIFplLkNsb3NlZEJyYWNrZXQ7Y2FzZSInIjpyZXR1cm4gWmUuUXVvdGU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19c3dpdGNoKGUpe2Nhc2UiQmFja3NwYWNlIjpyZXR1cm4gWmUuQmFja3NwYWNlO2Nhc2UiVGFiIjpyZXR1cm4gWmUuVGFiO2Nhc2UiRW50ZXIiOnJldHVybiBaZS5FbnRlcjtjYXNlIlNoaWZ0IjpyZXR1cm4gWmUuU2hpZnQ7Y2FzZSJDb250cm9sIjpyZXR1cm4gWmUuQ3RybDtjYXNlIkFsdCI6cmV0dXJuIFplLkFsdDtjYXNlIlBhdXNlIjpyZXR1cm4gWmUuUGF1c2VCcmVhaztjYXNlIkNhcHNMb2NrIjpyZXR1cm4gWmUuQ2Fwc0xvY2s7Y2FzZSJFc2NhcGUiOnJldHVybiBaZS5Fc2NhcGU7Y2FzZSJQYWdlVXAiOnJldHVybiBaZS5QYWdlVXA7Y2FzZSJQYWdlRG93biI6cmV0dXJuIFplLlBhZ2VEb3duO2Nhc2UiRW5kIjpyZXR1cm4gWmUuRW5kO2Nhc2UiSG9tZSI6cmV0dXJuIFplLkhvbWU7Y2FzZSJBcnJvd0xlZnQiOnJldHVybiBaZS5MZWZ0QXJyb3c7Y2FzZSJBcnJvd1VwIjpyZXR1cm4gWmUuVXBBcnJvdztjYXNlIkFycm93UmlnaHQiOnJldHVybiBaZS5SaWdodEFycm93O2Nhc2UiQXJyb3dEb3duIjpyZXR1cm4gWmUuRG93bkFycm93O2Nhc2UiSW5zZXJ0IjpyZXR1cm4gWmUuSW5zZXJ0O2Nhc2UiRGVsZXRlIjpyZXR1cm4gWmUuRGVsZXRlO2Nhc2UiTWV0YSI6cmV0dXJuIFplLkxlZnRXaW5kb3dLZXk7Y2FzZSJDb250ZXh0TWVudSI6cmV0dXJuIFplLlNlbGVjdEtleTtjYXNlIk51bUxvY2siOnJldHVybiBaZS5OdW1Mb2NrO2Nhc2UiU2Nyb2xsTG9jayI6cmV0dXJuIFplLlNjcm9sbExvY2s7ZGVmYXVsdDpyZXR1cm4gbnVsbH19cmVzb2x2ZUtleUZyb21LZXlDb2RlKGUpe3JldHVybiB0eXBlb2YgZSE9Im51bWJlciI/bnVsbDp0eXBlb2YgWmVbZV08InUiP2U6bnVsbH1jcmVhdGVLZXlib2FyZEV2ZW50KGUpe2xldCB0PWVbZS5sZW5ndGgtMV0/P1plLkVudGVyLGE9dGhpcy5nZXRLZXlEZXNjcmlwdG9yKHQpO3JldHVybiBuZXcgS2V5Ym9hcmRFdmVudCgia2V5ZG93biIse2tleTphLmtleSxjb2RlOmEuY29kZSxjdHJsS2V5OmUuaW5jbHVkZXMoWmUuQ3RybCksc2hpZnRLZXk6ZS5pbmNsdWRlcyhaZS5TaGlmdCksYWx0S2V5OmUuaW5jbHVkZXMoWmUuQWx0KSxtZXRhS2V5OmUuaW5jbHVkZXMoWmUuTGVmdFdpbmRvd0tleSl8fGUuaW5jbHVkZXMoWmUuUmlnaHRXaW5kb3dLZXkpfSl9Z2V0S2V5RGVzY3JpcHRvcihlKXtzd2l0Y2goZSl7Y2FzZSBaZS5DdHJsOnJldHVybntrZXk6IkNvbnRyb2wiLGNvZGU6IkNvbnRyb2xMZWZ0In07Y2FzZSBaZS5TaGlmdDpyZXR1cm57a2V5OiJTaGlmdCIsY29kZToiU2hpZnRMZWZ0In07Y2FzZSBaZS5BbHQ6cmV0dXJue2tleToiQWx0Iixjb2RlOiJBbHRMZWZ0In07Y2FzZSBaZS5FbnRlcjpyZXR1cm57a2V5OiJFbnRlciIsY29kZToiRW50ZXIifTtjYXNlIFplLlNwYWNlOnJldHVybntrZXk6IiAiLGNvZGU6IlNwYWNlIn07ZGVmYXVsdDp7bGV0IHQ9WmVbZV07aWYodCYmdC5sZW5ndGg9PT0xJiZ0Pj0iQSImJnQ8PSJaIilyZXR1cm57a2V5OnQudG9Mb3dlckNhc2UoKSxjb2RlOmBLZXkke3R9YH07aWYoZT49WmUuWmVybyYmZTw9WmUuTmluZSl7bGV0IGE9U3RyaW5nKGUtWmUuWmVybyk7cmV0dXJue2tleTphLGNvZGU6YERpZ2l0JHthfWB9fXJldHVybntrZXk6dD8/IlVuaWRlbnRpZmllZCIsY29kZToiVW5pZGVudGlmaWVkIn19fX19fSk7dmFyIGppLG1iPWcoKCk9PntmYigpO3Y1ZSgpO1F3dCgpO3lyZSgpO0p3dCgpO2VrdCgpO2ppPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRG9tVG9vbHMiKX1zdGF0aWMgaW5pdGlhbGl6YXRpb25Qcm9taXNlPW51bGw7c3RhdGljIGFzeW5jIHNldHVwRG9tVG9vbHMoZT17fSl7aWYoZS5pZ25vcmVHbG9iYWwpe2xldCB0PW5ldyBzKGUpO3JldHVybiBhd2FpdCB0LmluaXRpYWxpemF0aW9uUHJvbWlzZSx0fWlmKGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzJiYhZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMuZGlzcG9zZWQpcmV0dXJuIGF3YWl0IGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzLmluaXRpYWxpemF0aW9uUHJvbWlzZSxnbG9iYWxUaGlzLmRlZXNEb21Ub29scztpZighcy5pbml0aWFsaXphdGlvblByb21pc2Upe2xldCB0PW5ldyBzKGUpO2dsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPXQscy5pbml0aWFsaXphdGlvblByb21pc2U9dC5pbml0aWFsaXphdGlvblByb21pc2UudGhlbigoKT0+dCkuY2F0Y2goYT0+e3Rocm93IGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPT09dCYmKGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPXZvaWQgMCkscy5pbml0aWFsaXphdGlvblByb21pc2U9bnVsbCxhfSl9cmV0dXJuIGF3YWl0IHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlfXN0YXRpYyBnZXRHbG9iYWxEb21Ub29sc1N5bmMoKXtsZXQgZT1nbG9iYWxUaGlzLmRlZXNEb21Ub29scztpZighZXx8ZS5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoIllvdSB0cmllZCB0byBhY2Nlc3MgZG9tdG9vbHMgc3luY2hyb25vdXNseSB0b28gZWFybHkiKTtyZXR1cm4gZX1lbGVtZW50cz17aGVhZEVsZW1lbnQ6bnVsbCxib2R5RWxlbWVudDpudWxsfTt3ZWJzZXR1cD1uZXcgSWsoe21ldGFPYmplY3Q6e3RpdGxlOiIifX0pO3NtYXJ0c3RhdGU9bmV3IEIzLlNtYXJ0c3RhdGU7ZG9tVG9vbHNTdGF0ZVBhcnQ9dGhpcy5zbWFydHN0YXRlLmdldFN0YXRlUGFydCgiZG9tdG9vbHMiLHt2aXJ0dWFsVmlld3BvcnQ6Im5hdGl2ZSIsand0OiIifSk7cm91dGVyPW5ldyBGMy5TbWFydFJvdXRlcih7ZGVidWc6ITF9KTtjb252ZW5pZW5jZT17dHlwZWRyZXF1ZXN0OmdsLHNtYXJ0ZGVsYXk6WHQsc21hcnRqc29uOmpyLHNtYXJ0dXJsOlIxfTtkZWVzQ29tbXM9bmV3IGZ3LkRlZXNDb21tcztzY3JvbGxlcj1uZXcga3JlKHRoaXMpO3RoZW1lTWFuYWdlcj1uZXcgU3JlKHRoaXMpO2tleWJvYXJkPW51bGw7ZGlzcG9zZWQ9ITE7ZG9tVG9vbHNSZWFkeT1tdC5kZWZlcigpO2RvbVJlYWR5PW10LmRlZmVyKCk7Z2xvYmFsU3R5bGVzUmVhZHk9bXQuZGVmZXIoKTtpbml0aWFsaXphdGlvblByb21pc2U7bWFuYWdlZERvbU5vZGVzPVtdO3JlYWR5U3RhdGVDaGFuZ2VkRnVuYz1pKCgpPT57dGhpcy50cnlNYXJrRG9tUmVhZHkoKX0sInJlYWR5U3RhdGVDaGFuZ2VkRnVuYyIpO2NvbnN0cnVjdG9yKGUpe3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlPXRoaXMuaW5pdGlhbGl6ZSgpfXJ1bk9uY2VQcm9taXNlTWFwPW5ldyBNYXA7YXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMudHJ5TWFya0RvbVJlYWR5KCksdGhpcy5kb21SZWFkeS5zdGF0dXM9PT0icGVuZGluZyImJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHRoaXMucmVhZHlTdGF0ZUNoYW5nZWRGdW5jKSx0aGlzLmRvbVRvb2xzUmVhZHkuc3RhdHVzPT09InBlbmRpbmciJiZ0aGlzLmRvbVRvb2xzUmVhZHkucmVzb2x2ZSgpfXRyeU1hcmtEb21SZWFkeSgpe3RoaXMuZGlzcG9zZWR8fHRoaXMuZG9tUmVhZHkuc3RhdHVzIT09InBlbmRpbmcifHxkb2N1bWVudC5yZWFkeVN0YXRlIT09ImludGVyYWN0aXZlIiYmZG9jdW1lbnQucmVhZHlTdGF0ZSE9PSJjb21wbGV0ZSJ8fCFkb2N1bWVudC5oZWFkfHwhZG9jdW1lbnQuYm9keXx8KHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQ9ZG9jdW1lbnQuaGVhZCx0aGlzLmVsZW1lbnRzLmJvZHlFbGVtZW50PWRvY3VtZW50LmJvZHksdGhpcy5rZXlib2FyZHx8KHRoaXMua2V5Ym9hcmQ9bmV3IF9yZShkb2N1bWVudC5ib2R5KSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsdGhpcy5yZWFkeVN0YXRlQ2hhbmdlZEZ1bmMpLHRoaXMuZG9tUmVhZHkucmVzb2x2ZSgpKX10cmFja01hbmFnZWREb21Ob2RlKGUpe3JldHVybiB0aGlzLm1hbmFnZWREb21Ob2Rlcy5wdXNoKGUpLGV9Z2V0SGVhZE9yQm9keUVsZW1lbnQoKXtsZXQgZT10aGlzLmVsZW1lbnRzLmhlYWRFbGVtZW50fHxkb2N1bWVudC5oZWFkfHx0aGlzLmVsZW1lbnRzLmJvZHlFbGVtZW50fHxkb2N1bWVudC5ib2R5O2lmKCFlKXRocm93IG5ldyBFcnJvcigiRG9tVG9vbHMgY291bGQgbm90IGZpbmQgYSBET00gdGFyZ2V0IGVsZW1lbnQgdG8gYXR0YWNoIHJlc291cmNlcyB0byIpO3JldHVybiBlfWFzeW5jIHJ1bk9uY2UoZSx0KXtsZXQgYT10aGlzLnJ1bk9uY2VQcm9taXNlTWFwLmdldChlKTtyZXR1cm4gYXx8KGE9UHJvbWlzZS5yZXNvbHZlKCkudGhlbihhc3luYygpPT5hd2FpdCB0KCkpLHRoaXMucnVuT25jZVByb21pc2VNYXAuc2V0KGUsYSkpLGF3YWl0IGF9YXN5bmMgc2V0R2xvYmFsU3R5bGVzKGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgdD10aGlzLnRyYWNrTWFuYWdlZERvbU5vZGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSk7dC50eXBlPSJ0ZXh0L2NzcyIsdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSksdGhpcy5nZXRIZWFkT3JCb2R5RWxlbWVudCgpLmFwcGVuZENoaWxkKHQpfWFzeW5jIHNldEV4dGVybmFsU2NyaXB0KGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgdD1tdC5kZWZlcigpLGE9dGhpcy50cmFja01hbmFnZWREb21Ob2RlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKTthLnNyYz1lLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt0LnJlc29sdmUoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT57dC5yZWplY3QobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBzY3JpcHQ6ICR7ZX1gKSl9KSx0aGlzLmdldEhlYWRPckJvZHlFbGVtZW50KCkuYXBwZW5kKGEpLGF3YWl0IHQucHJvbWlzZX1hc3luYyBzZXRFeHRlcm5hbENzcyhlKXthd2FpdCB0aGlzLmRvbVJlYWR5LnByb21pc2U7bGV0IHQ9bXQuZGVmZXIoKSxhPXRoaXMudHJhY2tNYW5hZ2VkRG9tTm9kZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIikpO2EucmVsPSJzdHlsZXNoZWV0IixhLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGEuaHJlZj1lLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt0LnJlc29sdmUoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT57dC5yZWplY3QobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBzdHlsZXNoZWV0OiAke2V9YCkpfSksdGhpcy5nZXRIZWFkT3JCb2R5RWxlbWVudCgpLmFwcGVuZChhKSxhd2FpdCB0LnByb21pc2V9YXN5bmMgc2V0V2Vic2l0ZUluZm8oZSl7YXdhaXQgdGhpcy53ZWJzZXR1cC5zZXR1cChlKSxhd2FpdCB0aGlzLndlYnNldHVwLnJlYWR5UHJvbWlzZX1kaXNwb3NlKCl7aWYoIXRoaXMuZGlzcG9zZWQpe3RoaXMuZGlzcG9zZWQ9ITAsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsdGhpcy5yZWFkeVN0YXRlQ2hhbmdlZEZ1bmMpLHRoaXMua2V5Ym9hcmQ/LmRpc3Bvc2UoKSx0aGlzLmtleWJvYXJkPW51bGwsdGhpcy5zY3JvbGxlci5kaXNwb3NlKCksdGhpcy50aGVtZU1hbmFnZXIuZGlzcG9zZSgpO2ZvcihsZXQgZSBvZiB0aGlzLm1hbmFnZWREb21Ob2RlcyllLnJlbW92ZSgpO3RoaXMubWFuYWdlZERvbU5vZGVzLmxlbmd0aD0wLGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPT09dGhpcyYmKGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPXZvaWQgMCxzLmluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsKX19fX0pO3ZhciBNcmUsdGt0LGFrdD1nKCgpPT57bWIoKTt2YygpO01yZT0oKCk9PntsZXQgcz1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyBPUyBYIik9PT0tMT9KYGAuY3NzVGV4dDoiIjtyZXR1cm4gSmAKICAgIC8qIHdpZHRoICovCiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgd2lkdGg6IDBweDsKICAgIH0KICAgIGJvZHkgewogICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7CiAgICB9CiAgYC5jc3NUZXh0fSkoKSx0a3Q9SmAKICAvKgogIEBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21hdGVyaWFsaWNvbnMvdjQyL2ZsVWhScTZ0elpjbFFFSi1WZGctSXVpYURzTmNJaFE4dFEud29mZjIpCiAgICAgIGZvcm1hdCgnd29mZjInKTsKICB9ICovCgogIC8qIGdsb2JhbCBib2R5IHN0eWxlcyAqLwogIGJvZHkgewogICAgbWFyZ2luOiAwcHg7CiAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIC8qIHNjcm9sbCBiYXIgc3R5bGVzICovCiAgJHthYShNcmUpfQpgLmNzc1RleHR9KTt2YXIgdGE9e307eXQodGEse3NldHVwOigpPT5kcWEsc3RhdGljU3R5bGVzOigpPT5scWEsc3R5bGVzOigpPT5jcWF9KTt2YXIgbHFhLGNxYSxkcWEsc2t0PWcoKCk9PnttYigpO2FrdCgpO3ZjKCk7bHFhPUpgCiAgKiB7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgOmhvc3QgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgfQoKICAke2FhKE1yZSl9CmAsY3FhPXdgCiAgPHN0eWxlPgogICAgKiB7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICB9CgogICAgJHtNcmV9CiAgPC9zdHlsZT4KYCxkcWE9aShhc3luYyhzLGU9e30pPT57bGV0IHQ9YXdhaXQgamkuc2V0dXBEb21Ub29scyhlKTtyZXR1cm4gYXdhaXQgdC5ydW5PbmNlKCJlbGVtZW50QmFzaWNTZXR1cCIsYXN5bmMoKT0+e2F3YWl0IHQuc2V0R2xvYmFsU3R5bGVzKHRrdCl9KSx0Lmdsb2JhbFN0eWxlc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmdC5nbG9iYWxTdHlsZXNSZWFkeS5yZXNvbHZlKCksYXdhaXQgdC5nbG9iYWxTdHlsZXNSZWFkeS5wcm9taXNlLHR9LCJzZXR1cCIpfSk7dmFyIHpyZT17fTt5dCh6cmUse2Nzc0dyaWRDb2x1bW5zOigpPT51cWF9KTt2YXIgdXFhLGlrdD1nKCgpPT57dXFhPWkoKHMsZSk9PntsZXQgdD0iIjtmb3IobGV0IGE9MDthPHM7YSsrKXQrPWAgY2FsYygoMTAwJS8ke3N9KSAtICgke2UqKHMtMSl9cHgvJHtzfSkpYDtyZXR1cm4gdH0sImNzc0dyaWRDb2x1bW5zIil9KTt2YXIgdXQ9e307eXQodXQse1N3ZWV0U2Nyb2xsOigpPT5oYi5kZWZhdWx0LHNtYXJ0ZGVsYXk6KCk9Plh0LHNtYXJ0bWFya2Rvd246KCk9PiRrLHNtYXJ0cHJvbWlzZTooKT0+bXQsc21hcnRyb3V0ZXI6KCk9PkYzLHNtYXJ0cng6KCk9PmxzLHNtYXJ0c3RhdGU6KCk9PkIzLHNtYXJ0c3RyaW5nOigpPT5hcixzbWFydHVybDooKT0+UjEsdHlwZWRyZXF1ZXN0OigpPT5nbH0pO3ZhciBya3Q9ZygoKT0+e2ZiKCl9KTt2YXIgbHQ9e307eXQobHQse0RvbVRvb2xzOigpPT5qaSxUeXBlZFJlcXVlc3Q6KCk9Pmd3LGJyZWFrcG9pbnRzOigpPT5NaSxjc3M6KCk9PnpyZSxlbGVtZW50QmFzaWM6KCk9PnRhLHBsdWdpbnM6KCk9PnV0fSk7dmFyIGt0PWcoKCk9PntxZHQoKTtza3QoKTt2NWUoKTtpa3QoKTttYigpO3BzZSgpO3lyZSgpO3JrdCgpfSk7dmFyIHg1ZSxvaCx5NWU9ZygoKT0+e3g1ZT14bihpeSgpLDEpO1oyKCk7dmMoKTtIZHQoKTtrdCgpO29oPXtjc3M6Six1bnNhZmVDU1M6YWEsTGl0RWxlbWVudDpvMCxwcm9wZXJ0eTpMfX0pO3ZhciBDcmUsbmt0PWcoKCk9Pnt2YygpO3k1ZSgpO2t0KCk7Q3JlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiQ3NzTWFuYWdlciIpfXN0YXRpYyBpbnN0YW5jZT1udWxsO3N0YXRpYyBnZXRTaW5nbGV0b24oKXtyZXR1cm4gcy5pbnN0YW5jZXx8KHMuaW5zdGFuY2U9bmV3IHMpLHMuaW5zdGFuY2V9ZG9tdG9vbHNQcm9taXNlPWppLnNldHVwRG9tVG9vbHMoKTtnb0JyaWdodD0hMTtiZFZhclRyaXBsZXRTdG9yZT1bXTtjb25zdHJ1Y3Rvcigpe3RoaXMuZG9tdG9vbHNQcm9taXNlLnRoZW4oYXN5bmMgZT0+e2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoYXN5bmMgdD0+e3RoaXMuZ29CcmlnaHQ9dCxhd2FpdCBlLmRvbVJlYWR5LnByb21pc2U7Zm9yKGxldCBhIG9mIHRoaXMuYmRWYXJUcmlwbGV0U3RvcmUpZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShhLmNzc1Zhck5hbWUsdGhpcy5nb0JyaWdodD9hLmJyaWdodFZhbHVlOmEuZGFya1ZhbHVlKX0pfSl9Z2V0IGRlZmF1bHRTdHlsZXMoKXtyZXR1cm4gdGEuc3RhdGljU3R5bGVzfWdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MoZSl7cmV0dXJuIGUuaXN8fGUubmFtZS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCl9Y3NzRm9yRGVza3RvcChlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWluLXdpZHRoOiAke01pLmRlc2t0b3B9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3ModCkpKTphYShNaS5jc3NGb3JEZXNrdG9wKGUpKX1jc3NGb3JOb3RlYm9vayhlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWF4LXdpZHRoOiAke01pLm5vdGVib29rfXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHQpKSk6YWEoTWkuY3NzRm9yTm90ZWJvb2soZSkpfWNzc0ZvclRhYmxldChlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWF4LXdpZHRoOiAke01pLnRhYmxldH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyh0KSkpOmFhKE1pLmNzc0ZvclRhYmxldChlKSl9Y3NzRm9yUGhhYmxldChlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWF4LXdpZHRoOiAke01pLnBoYWJsZXR9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3ModCkpKTphYShNaS5jc3NGb3JQaGFibGV0KGUpKX1jc3NGb3JQaG9uZShlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWF4LXdpZHRoOiAke01pLnBob25lfXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHQpKSk6YWEoTWkuY3NzRm9yUGhvbmUoZSkpfWNzc0ZvckNvbnN0cmFpbnQoZSl7cmV0dXJuIHQ9PmFhKE1pLmNzc0ZvckNvbnN0cmFpbnQoZSkodCkpfWJkVGhlbWUoZSx0KXtsZXQgYSxyO2ppLmdldEdsb2JhbERvbVRvb2xzU3luYygpP3I9amkuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj9lOnQ6cj10O2xldCBuPXRoaXMuYmRWYXJUcmlwbGV0U3RvcmUuZmluZChvPT5vLmRhcmtWYWx1ZT09PXQmJm8uYnJpZ2h0VmFsdWU9PT1lKTtpZihuKWE9bi5jc3NWYXJOYW1lO2Vsc2V7bGV0IG89e2Nzc1Zhck5hbWU6YC0tJHt4NWUudW5pKCl9YCxicmlnaHRWYWx1ZTplLGRhcmtWYWx1ZTp0fTt0aGlzLmJkVmFyVHJpcGxldFN0b3JlLnB1c2gobyksdGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBsPT57YXdhaXQgbC5kb21SZWFkeS5wcm9taXNlLGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoby5jc3NWYXJOYW1lLHIpfSksYT1vLmNzc1Zhck5hbWV9cmV0dXJuIG9oLnVuc2FmZUNTUyhgdmFyKCR7YX0sICR7cn0pYCl9Y3NzR3JpZENvbHVtbnM9aSgoZSx0KT0+e2xldCBhPSIiO2ZvcihsZXQgcj0wO3I8ZTtyKyspYSs9YCBjYWxjKCgxMDAlLyR7ZX0pIC0gKCR7dCooZS0xKX1weC8ke2V9KSlgO3JldHVybiBvaC51bnNhZmVDU1MoYSl9LCJjc3NHcmlkQ29sdW1ucyIpfX0pO3ZhciB3NWUscHFhLGs1ZSxocWEsbGt0LFRyZSxNbixmcWEsbXFhLGNrdD1nKCgpPT57ZjEoKTt3NWU9U3ltYm9sLmZvcigiIikscHFhPWkocz0+e2lmKHM/LnI9PT13NWUpcmV0dXJuIHM/Ll8kbGl0U3RhdGljJH0sIm8iKSxrNWU9aShzPT4oe18kbGl0U3RhdGljJDpzLHI6dzVlfSksInMiKSxocWE9aSgocywuLi5lKT0+KHtfJGxpdFN0YXRpYyQ6ZS5yZWR1Y2UoKHQsYSxyKT0+dCsobj0+e2lmKG4uXyRsaXRTdGF0aWMkIT09dm9pZCAwKXJldHVybiBuLl8kbGl0U3RhdGljJDt0aHJvdyBFcnJvcihgVmFsdWUgcGFzc2VkIHRvICdsaXRlcmFsJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2xpdGVyYWwnIHJlc3VsdDogJHtufS4gVXNlICd1bnNhZmVTdGF0aWMnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQKICAgICAgICAgICAgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LmApfSkoYSkrc1tyKzFdLHNbMF0pLHI6dzVlfSksImkiKSxsa3Q9bmV3IE1hcCxUcmU9aShzPT4oZSwuLi50KT0+e2xldCBhPXQubGVuZ3RoLHIsbixvPVtdLGw9W10scCxkPTAsdT0hMTtmb3IoO2Q8YTspe2ZvcihwPWVbZF07ZDxhJiYobj10W2RdLChyPXBxYShuKSkhPT12b2lkIDApOylwKz1yK2VbKytkXSx1PSEwO2QhPT1hJiZsLnB1c2gobiksby5wdXNoKHApLGQrK31pZihkPT09YSYmby5wdXNoKGVbYV0pLHUpe2xldCBjPW8uam9pbigiJCRsaXQkJCIpOyhlPWxrdC5nZXQoYykpPT09dm9pZCAwJiYoby5yYXc9byxsa3Quc2V0KGMsZT1vKSksdD1sfXJldHVybiBzKGUsLi4udCl9LCJuIiksTW49VHJlKHcpLGZxYT1UcmUoSzJlKSxtcWE9VHJlKFkyZSl9KTt2YXIgZGt0PWcoKCk9Pntja3QoKX0pO3ZhciBfZCx6cixJYyxSMD1nKCgpPT57X2Q9e0FUVFJJQlVURToxLENISUxEOjIsUFJPUEVSVFk6MyxCT09MRUFOX0FUVFJJQlVURTo0LEVWRU5UOjUsRUxFTUVOVDo2fSx6cj1pKHM9PiguLi5lKT0+KHtfJGxpdERpcmVjdGl2ZSQ6cyx2YWx1ZXM6ZX0pLCJlIiksSWM9Y2xhc3N7c3RhdGlje2kodGhpcywiaSIpfWNvbnN0cnVjdG9yKGUpe31nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFUKGUsdCxhKXt0aGlzLl8kQ3Q9ZSx0aGlzLl8kQU09dCx0aGlzLl8kQ2k9YX1fJEFTKGUsdCl7cmV0dXJuIHRoaXMudXBkYXRlKGUsdCl9dXBkYXRlKGUsdCl7cmV0dXJuIHRoaXMucmVuZGVyKC4uLnQpfX19KTt2YXIgZ2IsVjMsdWt0PWcoKCk9PntmMSgpO1IwKCk7Z2I9Y2xhc3MgZXh0ZW5kcyBJY3tzdGF0aWN7aSh0aGlzLCJlIil9Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD14aSxlLnR5cGUhPT1fZC5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PXhpfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PW9pKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgdD1bZV07cmV0dXJuIHQucmF3PXQsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczp0LHZhbHVlczpbXX19fTtnYi5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIixnYi5yZXN1bHRUeXBlPTE7VjM9enIoZ2IpfSk7dmFyIHBrdD1nKCgpPT57dWt0KCl9KTt2YXIgUzVlLF81ZT1nKCgpPT57UzVlPWkocz0+KGUsdCk9Pnt0IT09dm9pZCAwP3QuYWRkSW5pdGlhbGl6ZXIoKCk9PntjdXN0b21FbGVtZW50cy5kZWZpbmUocyxlKX0pOmN1c3RvbUVsZW1lbnRzLmRlZmluZShzLGUpfSwidCIpfSk7dmFyIGhrdD1nKCgpPT57XzVlKCl9KTtmdW5jdGlvbiBuZShzKXtyZXR1cm4oZSx0KT0+e2lmKGUuaXM9cyxlLm5hbWUpe2xldCBhPWdxYShlLm5hbWUpO2EhPT1zJiZjb25zb2xlLndhcm4oYFtkZWVzLWVsZW1lbnRdIENsYXNzICIke2UubmFtZX0iIGtlYmFiLWNhc2VzIHRvICIke2F9IiBidXQgdGFnIGlzICIke3N9Ii4gQ29udGFpbmVyIHF1ZXJpZXMgdXNlIC5pcyAoIiR7c30iKS5gKX1yZXR1cm4gUzVlKHMpKGUsdCl9fXZhciBncWEsZmt0PWcoKCk9Pntoa3QoKTtncWE9aShzPT5zLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSwiY2FtZWxUb0tlYmFiIik7aShuZSwiY3VzdG9tRWxlbWVudCIpfSk7ZnVuY3Rpb24gWShzKXtyZXR1cm4gTCh7Li4ucyxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgbWt0PWcoKCk9PntDZWUoKTtpKFksInIiKX0pO2Z1bmN0aW9uIGJxYShzKXtyZXR1cm4oZSx0KT0+e2xldCBhPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6ZVt0XTtPYmplY3QuYXNzaWduKGEscyl9fXZhciBna3Q9ZygoKT0+e2koYnFhLCJ0Iil9KTt2YXIgQWMsYmI9ZygoKT0+e0FjPWkoKHMsZSx0KT0+KHQuY29uZmlndXJhYmxlPSEwLHQuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiZ0eXBlb2YgZSE9Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGUsdCksdCksImUiKX0pO2Z1bmN0aW9uIE01ZShzLGUpe3JldHVybih0LGEscik9PntsZXQgbj1pKG89Pm8ucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihzKT8/bnVsbCwibyIpO2lmKGUpe2xldHtnZXQ6byxzZXQ6bH09dHlwZW9mIGE9PSJvYmplY3QiP3Q6cj8/KCgpPT57bGV0IHA9U3ltYm9sKCk7cmV0dXJue2dldCgpe3JldHVybiB0aGlzW3BdfSxzZXQoZCl7dGhpc1twXT1kfX19KSgpO3JldHVybiBBYyh0LGEse2dldCgpe2xldCBwPW8uY2FsbCh0aGlzKTtyZXR1cm4gcD09PXZvaWQgMCYmKHA9bih0aGlzKSwocCE9PW51bGx8fHRoaXMuaGFzVXBkYXRlZCkmJmwuY2FsbCh0aGlzLHApKSxwfX0pfXJldHVybiBBYyh0LGEse2dldCgpe3JldHVybiBuKHRoaXMpfX0pfX12YXIgYmt0PWcoKCk9PntiYigpO2koTTVlLCJlIil9KTtmdW5jdGlvbiB6NWUocyl7cmV0dXJuKGUsdCk9PkFjKGUsdCx7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KHZxYT8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwocyl9fSl9dmFyIHZxYSx2a3Q9ZygoKT0+e2JiKCk7aSh6NWUsInIiKX0pO2Z1bmN0aW9uIEM1ZShzKXtyZXR1cm4oZSx0KT0+QWMoZSx0LHthc3luYyBnZXQoKXtyZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iocyk/P251bGx9fSl9dmFyIHhrdD1nKCgpPT57YmIoKTtpKEM1ZSwiciIpfSk7ZnVuY3Rpb24geHFhKHMpe3JldHVybihlLHQpPT57bGV0e3Nsb3Q6YSxzZWxlY3RvcjpyfT1zPz97fSxuPSJzbG90IisoYT9gW25hbWU9JHthfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gQWMoZSx0LHtnZXQoKXtsZXQgbz10aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IobiksbD1vPy5hc3NpZ25lZEVsZW1lbnRzKHMpPz9bXTtyZXR1cm4gcj09PXZvaWQgMD9sOmwuZmlsdGVyKHA9PnAubWF0Y2hlcyhyKSl9fSl9fXZhciB5a3Q9ZygoKT0+e2JiKCk7aSh4cWEsIm8iKX0pO2Z1bmN0aW9uIHlxYShzKXtyZXR1cm4oZSx0KT0+e2xldHtzbG90OmF9PXM/P3t9LHI9InNsb3QiKyhhP2BbbmFtZT0ke2F9XWA6Ijpub3QoW25hbWVdKSIpO3JldHVybiBBYyhlLHQse2dldCgpe3JldHVybiB0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iocik/LmFzc2lnbmVkTm9kZXMocyk/P1tdfX0pfX12YXIgd2t0PWcoKCk9PntiYigpO2koeXFhLCJuIil9KTt2YXIga2t0PWcoKCk9PntfNWUoKTtDZWUoKTtta3QoKTtna3QoKTtia3QoKTt2a3QoKTt4a3QoKTt5a3QoKTt3a3QoKX0pO3ZhciBTa3QsJHJlLHdlLF9rdD1nKCgpPT57eTVlKCk7dmMoKTtTa3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LCRyZT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sd2U9KCgpPT57bGV0IHM9b2guTGl0RWxlbWVudCxlLHQ9W10sYT1bXSxyLG49W10sbz1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNFbGVtZW50Iil9c3RhdGlje2xldCBwPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W29oLnByb3BlcnR5KHt0eXBlOkJvb2xlYW59KV0scj1bb2gucHJvcGVydHkoKV0sU2t0KHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ29CcmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZD0+ImdvQnJpZ2h0ImluIGQsImhhcyIpLGdldDppKGQ9PmQuZ29CcmlnaHQsImdldCIpLHNldDppKChkLHUpPT57ZC5nb0JyaWdodD11fSwic2V0Iil9LG1ldGFkYXRhOnB9LHQsYSksU2t0KHRoaXMsbnVsbCxyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tdG9vbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZD0+ImRvbXRvb2xzImluIGQsImhhcyIpLGdldDppKGQ9PmQuZG9tdG9vbHMsImdldCIpLHNldDppKChkLHUpPT57ZC5kb210b29scz11fSwic2V0Iil9LG1ldGFkYXRhOnB9LG4sbykscCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpwfSl9c3RhdGljIGdldENvbnRhaW5lck5hbWUoKXtyZXR1cm4gdGhpcy5pc3x8dGhpcy5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1zdGF0aWMgY3NzRm9yQ29uc3RyYWludChwKXtyZXR1cm4gZD0+bHQuYnJlYWtwb2ludHMuY3NzRm9yQ29uc3RyYWludENvbnRhaW5lcihwLHRoaXMuZ2V0Q29udGFpbmVyTmFtZSgpKShkKX0jZT0kcmUodGhpcyx0LCExKTtnZXQgZ29CcmlnaHQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZ29CcmlnaHQocCl7dGhpcy4jZT1wfWRvbXRvb2xzUHJvbWlzZT0kcmUodGhpcyxhKTsjdD0kcmUodGhpcyxuLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKHApe3RoaXMuI3Q9cH1yeFN1YnNjcmlwdGlvbnM9KCRyZSh0aGlzLG8pLFtdKTt0aGVtZVN1YnNjcmlwdGlvbjtlbGVtZW50RG9tUmVhZHlEZWZlcnJlZD1sdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2VsZW1lbnREb21SZWFkeT10aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IocD17fSl7c3VwZXIoKSx0aGlzLmRvbXRvb2xzUHJvbWlzZT1sdC5lbGVtZW50QmFzaWMuc2V0dXAodGhpcyxwKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGQ9Pnt0aGlzLmRvbXRvb2xzPWR9KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7bGV0IHA9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy50aGVtZVN1YnNjcmlwdGlvbj1wLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGQ9Pnt0aGlzLmdvQnJpZ2h0PWQsdGhpcy50aGVtZUNoYW5nZWQmJnRoaXMudGhlbWVDaGFuZ2VkKGQpfSksdGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRoZW1lU3Vic2NyaXB0aW9uKTtmb3IobGV0IGQgb2YgdGhpcy5zdGFydHVwRnVuY3Rpb25zKWF3YWl0IGQoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudENvbm5lY3RlZCIpKX1maXJzdFVwZGF0ZWQocCl7c3VwZXIuZmlyc3RVcGRhdGVkKHApLHRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXJ0dXBGdW5jdGlvbnM9W107cmVnaXN0ZXJTdGFydHVwRnVuY3Rpb24ocCl7dGhpcy5zdGFydHVwRnVuY3Rpb25zLnB1c2gocCl9Z2FyYmFnZUZ1bmN0aW9ucz1bXTtyZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihwKXt0aGlzLmdhcmJhZ2VGdW5jdGlvbnMucHVzaChwKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7Zm9yKGxldCBwIG9mIHRoaXMucnhTdWJzY3JpcHRpb25zKXAudW5zdWJzY3JpYmUoKTtmb3IobGV0IHAgb2YgdGhpcy5nYXJiYWdlRnVuY3Rpb25zKWF3YWl0IHAoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudERpc2Nvbm5lY3RlZCIpKX19fSkoKX0pO2Z1bmN0aW9uIHZiKCl7cmV0dXJuIGZ1bmN0aW9uKHMpe2xldCBlPXMuaXN8fHMubmFtZS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksdD1zLm5hbWU/d3FhKHMubmFtZSk6bnVsbDtpZih0JiZ0IT09ZSl7bGV0IG49aShsPT5sJiZsLmNzc1RleHQmJmwuY3NzVGV4dC5pbmNsdWRlcyhgQGNvbnRhaW5lciAke3R9YCk/YWEobC5jc3NUZXh0LnJlcGxhY2VBbGwoYEBjb250YWluZXIgJHt0fWAsYEBjb250YWluZXIgJHtlfWApKTpsLCJmaXhTdHlsZSIpLG89cy5zdHlsZXM7QXJyYXkuaXNBcnJheShvKT9zLnN0eWxlcz1vLm1hcChuKTpvJiYocy5zdHlsZXM9bihvKSl9bGV0IGE9TWkuY29udGFpbmVyQ29udGV4dFN0eWxlcyhlKSxyPXMuc3R5bGVzO3JldHVybiBBcnJheS5pc0FycmF5KHIpP3Muc3R5bGVzPVsuLi5yLGFdOnI/cy5zdHlsZXM9W3IsYV06cy5zdHlsZXM9W2FdLHN9fXZhciB3cWEsTWt0PWcoKCk9Pnt2YygpO2t0KCk7d3FhPWkocz0+cy5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksImNhbWVsVG9LZWJhYiIpO2kodmIsImNvbnRhaW5lclJlc3BvbnNpdmUiKX0pO3ZhciBrcWEsemt0LFQ1ZSxTcWEsX3FhLE1xYSx6cWEsQ3FhLCQ1ZSxDa3QsTzAsTzEsVHFhLE5rLEQ1ZSxSayxMNWUseGI9ZygoKT0+e2YxKCk7KHtJOmtxYX09WjJlKSx6a3Q9aShzPT5zLCJpIiksVDVlPWkocz0+cz09PW51bGx8fHR5cGVvZiBzIT0ib2JqZWN0IiYmdHlwZW9mIHMhPSJmdW5jdGlvbiIsIm4iKSxTcWE9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sX3FhPWkoKHMsZSk9PmU9PT12b2lkIDA/cz8uXyRsaXRUeXBlJCE9PXZvaWQgMDpzPy5fJGxpdFR5cGUkPT09ZSwibCIpLE1xYT1pKHM9PnM/Ll8kbGl0VHlwZSQ/LmghPW51bGwsImQiKSx6cWE9aShzPT5zPy5fJGxpdERpcmVjdGl2ZSQhPT12b2lkIDAsImMiKSxDcWE9aShzPT5zPy5fJGxpdERpcmVjdGl2ZSQsImYiKSwkNWU9aShzPT5zLnN0cmluZ3M9PT12b2lkIDAsInIiKSxDa3Q9aSgoKT0+ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIiksInMiKSxPMD1pKChzLGUsdCk9PntsZXQgYT1zLl8kQUEucGFyZW50Tm9kZSxyPWU9PT12b2lkIDA/cy5fJEFCOmUuXyRBQTtpZih0PT09dm9pZCAwKXtsZXQgbj1hLmluc2VydEJlZm9yZShDa3QoKSxyKSxvPWEuaW5zZXJ0QmVmb3JlKENrdCgpLHIpO3Q9bmV3IGtxYShuLG8scyxzLm9wdGlvbnMpfWVsc2V7bGV0IG49dC5fJEFCLm5leHRTaWJsaW5nLG89dC5fJEFNLGw9byE9PXM7aWYobCl7bGV0IHA7dC5fJEFRPy4ocyksdC5fJEFNPXMsdC5fJEFQIT09dm9pZCAwJiYocD1zLl8kQVUpIT09by5fJEFVJiZ0Ll8kQVAocCl9aWYobiE9PXJ8fGwpe2xldCBwPXQuXyRBQTtmb3IoO3AhPT1uOyl7bGV0IGQ9emt0KHApLm5leHRTaWJsaW5nO3prdChhKS5pbnNlcnRCZWZvcmUocCxyKSxwPWR9fX1yZXR1cm4gdH0sInYiKSxPMT1pKChzLGUsdD1zKT0+KHMuXyRBSShlLHQpLHMpLCJ1IiksVHFhPXt9LE5rPWkoKHMsZT1UcWEpPT5zLl8kQUg9ZSwicCIpLEQ1ZT1pKHM9PnMuXyRBSCwiTSIpLFJrPWkocz0+e3MuXyRBUigpLHMuXyRBQS5yZW1vdmUoKX0sImgiKSxMNWU9aShzPT57cy5fJEFSKCl9LCJqIil9KTtmdW5jdGlvbiAkcWEocyl7dGhpcy5fJEFOIT09dm9pZCAwPyhEcmUodGhpcyksdGhpcy5fJEFNPXMsVGt0KHRoaXMpKTp0aGlzLl8kQU09c31mdW5jdGlvbiBEcWEocyxlPSExLHQ9MCl7bGV0IGE9dGhpcy5fJEFILHI9dGhpcy5fJEFOO2lmKHIhPT12b2lkIDAmJnIuc2l6ZSE9PTApaWYoZSlpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgbj10O248YS5sZW5ndGg7bisrKU9rKGFbbl0sITEpLERyZShhW25dKTtlbHNlIGEhPW51bGwmJihPayhhLCExKSxEcmUoYSkpO2Vsc2UgT2sodGhpcyxzKX12YXIgT2ssRHJlLFRrdCxMcWEsVWwsTHJlPWcoKCk9Pnt4YigpO1IwKCk7UjAoKTtPaz1pKChzLGUpPT57bGV0IHQ9cy5fJEFOO2lmKHQ9PT12b2lkIDApcmV0dXJuITE7Zm9yKGxldCBhIG9mIHQpYS5fJEFPPy4oZSwhMSksT2soYSxlKTtyZXR1cm4hMH0sInMiKSxEcmU9aShzPT57bGV0IGUsdDtkb3tpZigoZT1zLl8kQU0pPT09dm9pZCAwKWJyZWFrO3Q9ZS5fJEFOLHQuZGVsZXRlKHMpLHM9ZX13aGlsZSh0Py5zaXplPT09MCl9LCJvIiksVGt0PWkocz0+e2ZvcihsZXQgZTtlPXMuXyRBTTtzPWUpe2xldCB0PWUuXyRBTjtpZih0PT09dm9pZCAwKWUuXyRBTj10PW5ldyBTZXQ7ZWxzZSBpZih0LmhhcyhzKSlicmVhazt0LmFkZChzKSxMcWEoZSl9fSwiciIpO2koJHFhLCJoIik7aShEcWEsIm4iKTtMcWE9aShzPT57cy50eXBlPT1fZC5DSElMRCYmKHMuXyRBUD8/PURxYSxzLl8kQVE/Pz0kcWEpfSwiYyIpLFVsPWNsYXNzIGV4dGVuZHMgSWN7c3RhdGlje2kodGhpcywiZiIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQoZSx0LGEpe3N1cGVyLl8kQVQoZSx0LGEpLFRrdCh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPWUuXyRBVX1fJEFPKGUsdD0hMCl7ZSE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPWUsZT90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLHQmJihPayh0aGlzLGUpLERyZSh0aGlzKSl9c2V0VmFsdWUoZSl7aWYoJDVlKHRoaXMuXyRDdCkpdGhpcy5fJEN0Ll8kQUkoZSx0aGlzKTtlbHNle2xldCB0PVsuLi50aGlzLl8kQ3QuXyRBSF07dFt0aGlzLl8kQ2ldPWUsdGhpcy5fJEN0Ll8kQUkodCx0aGlzLDApfX1kaXNjb25uZWN0ZWQoKXt9cmVjb25uZWN0ZWQoKXt9fX0pO3ZhciBFcmU9ZygoKT0+e0xyZSgpfSk7dmFyIEU1ZSwka3QsRXFhLERrdD1nKCgpPT57dmMoKTtFcmUoKTtFNWU9Y2xhc3MgZXh0ZW5kcyBVbHtzdGF0aWN7aSh0aGlzLCJSZXNvbHZlRGlyZWN0aXZlIil9cHJvbWlzZTtoYXNQcm9taXNlU2V0dGxlZD0hMTtyZW5kZXIoZSl7cmV0dXJuIHRoaXMucHJvbWlzZSE9PWUmJih0aGlzLnByb21pc2U9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLmhhbmRsZVByb21pc2UoZSkpLG9pfWhhbmRsZVByb21pc2UoZSl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMSxlLnRoZW4odD0+e3RoaXMucHJvbWlzZT09PWUmJiF0aGlzLmhhc1Byb21pc2VTZXR0bGVkJiYodGhpcy5zZXRWYWx1ZSh0KSx0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwKX0pLmNhdGNoKHQ9Pnt0aGlzLnByb21pc2U9PT1lJiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUodCksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwfXJlY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZHx8dGhpcy5oYW5kbGVQcm9taXNlKHRoaXMucHJvbWlzZSl9fSwka3Q9enIoRTVlKSxFcWE9aShzPT4ka3QocygpKSwicmVzb2x2ZUV4ZWMiKX0pO3ZhciBQNWUsUHFhLExrdD1nKCgpPT57dmMoKTtFcmUoKTtaMigpO1A1ZT1jbGFzcyBleHRlbmRzIFVse3N0YXRpY3tpKHRoaXMsIlN1YnNjcmliZURpcmVjdGl2ZSIpfW9ic2VydmFibGU7c3ViPW51bGw7cmVuZGVyKGUpe3JldHVybiB0aGlzLm9ic2VydmFibGUhPT1lJiYodGhpcy5zdWI/LnVuc3Vic2NyaWJlKCksdGhpcy5vYnNlcnZhYmxlPWUsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5zdWJzY3JpYmUoZSkpLG9pfXN1YnNjcmliZShlKXt0aGlzLnN1Yj1lLnN1YnNjcmliZSh0PT57dGhpcy5zZXRWYWx1ZSh0KX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdWJzY3JpYmUodGhpcy5vYnNlcnZhYmxlKX19LFBxYT16cihQNWUpfSk7dmFyIEk1ZSxFa3QsUGt0PWcoKCk9Pnt2YygpO0VyZSgpO1oyKCk7STVlPWNsYXNzIGV4dGVuZHMgVWx7c3RhdGlje2kodGhpcywiU3Vic2NyaWJlV2l0aFRlbXBsYXRlRGlyZWN0aXZlIil9b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcihlLHQpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT1lfHx0aGlzLnRlbXBsYXRlRm4hPT10KSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT1lLHRoaXMudGVtcGxhdGVGbj10LHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksb2l9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKGU9PntsZXQgdD10aGlzLnRlbXBsYXRlRm4oZSk7dGhpcy5zZXRWYWx1ZSh0KX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0sRWt0PXpyKEk1ZSl9KTt2YXIgQTVlLFUzLFczLE41ZT1nKCgpPT57QTVlPWkoYXN5bmMocyxlKT0+e2ZvciBhd2FpdChsZXQgdCBvZiBzKWlmKGF3YWl0IGUodCk9PT0hMSlyZXR1cm59LCJ0IiksVTM9Y2xhc3N7c3RhdGlje2kodGhpcywicyIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuRz1lfWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdChlKXt0aGlzLkc9ZX1kZXJlZigpe3JldHVybiB0aGlzLkd9fSxXMz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXt0aGlzLlk9dm9pZCAwLHRoaXMuWj12b2lkIDB9Z2V0KCl7cmV0dXJuIHRoaXMuWX1wYXVzZSgpe3RoaXMuWT8/PW5ldyBQcm9taXNlKGU9PnRoaXMuWj1lKX1yZXN1bWUoKXt0aGlzLlo/LigpLHRoaXMuWT10aGlzLlo9dm9pZCAwfX19KTt2YXIgSWt0LEFrdCxQcmUsUjVlLE5rdD1nKCgpPT57ZjEoKTt4YigpO0xyZSgpO041ZSgpO1IwKCk7SWt0PWkocz0+IVQ1ZShzKSYmdHlwZW9mIHMudGhlbj09ImZ1bmN0aW9uIiwibiIpLEFrdD0xMDczNzQxODIzLFByZT1jbGFzcyBleHRlbmRzIFVse3N0YXRpY3tpKHRoaXMsImMiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1Ba3QsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IFUzKHRoaXMpLHRoaXMuXyRDWD1uZXcgVzN9cmVuZGVyKC4uLmUpe3JldHVybiBlLmZpbmQodD0+IUlrdCh0KSk/P29pfXVwZGF0ZShlLHQpe2xldCBhPXRoaXMuXyRDYnQscj1hLmxlbmd0aDt0aGlzLl8kQ2J0PXQ7bGV0IG49dGhpcy5fJENLLG89dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBsPTA7bDx0Lmxlbmd0aCYmIShsPnRoaXMuXyRDd3QpO2wrKyl7bGV0IHA9dFtsXTtpZighSWt0KHApKXJldHVybiB0aGlzLl8kQ3d0PWwscDtsPHImJnA9PT1hW2xdfHwodGhpcy5fJEN3dD1Ba3Qscj0wLFByb21pc2UucmVzb2x2ZShwKS50aGVuKGFzeW5jIGQ9Pntmb3IoO28uZ2V0KCk7KWF3YWl0IG8uZ2V0KCk7bGV0IHU9bi5kZXJlZigpO2lmKHUhPT12b2lkIDApe2xldCBjPXUuXyRDYnQuaW5kZXhPZihwKTtjPi0xJiZjPHUuXyRDd3QmJih1Ll8kQ3d0PWMsdS5zZXRWYWx1ZShkKSl9fSkpfXJldHVybiBvaX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxSNWU9enIoUHJlKX0pO3ZhciBSa3Q9ZygoKT0+e05rdCgpfSk7dmFyIHliLElxYSxPa3Q9ZygoKT0+e2YxKCk7THJlKCk7TjVlKCk7UjAoKTt5Yj1jbGFzcyBleHRlbmRzIFVse3N0YXRpY3tpKHRoaXMsIm8iKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJENLPW5ldyBVMyh0aGlzKSx0aGlzLl8kQ1g9bmV3IFczfXJlbmRlcihlLHQpe3JldHVybiBvaX11cGRhdGUoZSxbdCxhXSl7aWYodGhpcy5pc0Nvbm5lY3RlZHx8dGhpcy5kaXNjb25uZWN0ZWQoKSx0PT09dGhpcy5fJENKKXJldHVybiBvaTt0aGlzLl8kQ0o9dDtsZXQgcj0wLHtfJENLOm4sXyRDWDpvfT10aGlzO3JldHVybiBBNWUodCxhc3luYyBsPT57Zm9yKDtvLmdldCgpOylhd2FpdCBvLmdldCgpO2xldCBwPW4uZGVyZWYoKTtpZihwIT09dm9pZCAwKXtpZihwLl8kQ0ohPT10KXJldHVybiExO2EhPT12b2lkIDAmJihsPWEobCxyKSkscC5jb21taXRWYWx1ZShsLHIpLHIrK31yZXR1cm4hMH0pLG9pfWNvbW1pdFZhbHVlKGUsdCl7dGhpcy5zZXRWYWx1ZShlKX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxJcWE9enIoeWIpfSk7dmFyIE81ZSxGa3Q9ZygoKT0+e1IwKCk7T2t0KCk7eGIoKTtPNWU9enIoY2xhc3MgZXh0ZW5kcyB5Yntjb25zdHJ1Y3RvcihzKXtpZihzdXBlcihzKSxzLnR5cGUhPT1fZC5DSElMRCl0aHJvdyBFcnJvcigiYXN5bmNBcHBlbmQgY2FuIG9ubHkgYmUgdXNlZCBpbiBjaGlsZCBleHByZXNzaW9ucyIpfXVwZGF0ZShzLGUpe3JldHVybiB0aGlzLl8kQ3R0PXMsc3VwZXIudXBkYXRlKHMsZSl9Y29tbWl0VmFsdWUocyxlKXtlPT09MCYmTDVlKHRoaXMuXyRDdHQpO2xldCB0PU8wKHRoaXMuXyRDdHQpO08xKHQscyl9fSl9KTt2YXIgQmt0PWcoKCk9PntGa3QoKX0pO3ZhciBGNWUsSGt0PWcoKCk9PntmMSgpO1IwKCk7eGIoKTtGNWU9enIoY2xhc3MgZXh0ZW5kcyBJY3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5rZXk9eGl9cmVuZGVyKHMsZSl7cmV0dXJuIHRoaXMua2V5PXMsZX11cGRhdGUocyxbZSx0XSl7cmV0dXJuIGUhPT10aGlzLmtleSYmKE5rKHMpLHRoaXMua2V5PWUpLHR9fSl9KTt2YXIgcWt0PWcoKCk9PntIa3QoKX0pO3ZhciBqa3QsQjVlLFZrdD1nKCgpPT57ZjEoKTtSMCgpO3hiKCk7amt0PWkoKHMsZSx0KT0+e2xldCBhPW5ldyBNYXA7Zm9yKGxldCByPWU7cjw9dDtyKyspYS5zZXQoc1tyXSxyKTtyZXR1cm4gYX0sInUiKSxCNWU9enIoY2xhc3MgZXh0ZW5kcyBJY3tjb25zdHJ1Y3RvcihzKXtpZihzdXBlcihzKSxzLnR5cGUhPT1fZC5DSElMRCl0aHJvdyBFcnJvcigicmVwZWF0KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiB0ZXh0IGV4cHJlc3Npb25zIil9ZHQocyxlLHQpe2xldCBhO3Q9PT12b2lkIDA/dD1lOmUhPT12b2lkIDAmJihhPWUpO2xldCByPVtdLG49W10sbz0wO2ZvcihsZXQgbCBvZiBzKXJbb109YT9hKGwsbyk6byxuW29dPXQobCxvKSxvKys7cmV0dXJue3ZhbHVlczpuLGtleXM6cn19cmVuZGVyKHMsZSx0KXtyZXR1cm4gdGhpcy5kdChzLGUsdCkudmFsdWVzfXVwZGF0ZShzLFtlLHQsYV0pe2xldCByPUQ1ZShzKSx7dmFsdWVzOm4sa2V5czpvfT10aGlzLmR0KGUsdCxhKTtpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gdGhpcy51dD1vLG47bGV0IGw9dGhpcy51dD8/PVtdLHA9W10sZCx1LGM9MCxiPXIubGVuZ3RoLTEsdj0wLHg9bi5sZW5ndGgtMTtmb3IoO2M8PWImJnY8PXg7KWlmKHJbY109PT1udWxsKWMrKztlbHNlIGlmKHJbYl09PT1udWxsKWItLTtlbHNlIGlmKGxbY109PT1vW3ZdKXBbdl09TzEocltjXSxuW3ZdKSxjKyssdisrO2Vsc2UgaWYobFtiXT09PW9beF0pcFt4XT1PMShyW2JdLG5beF0pLGItLSx4LS07ZWxzZSBpZihsW2NdPT09b1t4XSlwW3hdPU8xKHJbY10sblt4XSksTzAocyxwW3grMV0scltjXSksYysrLHgtLTtlbHNlIGlmKGxbYl09PT1vW3ZdKXBbdl09TzEocltiXSxuW3ZdKSxPMChzLHJbY10scltiXSksYi0tLHYrKztlbHNlIGlmKGQ9PT12b2lkIDAmJihkPWprdChvLHYseCksdT1qa3QobCxjLGIpKSxkLmhhcyhsW2NdKSlpZihkLmhhcyhsW2JdKSl7bGV0IG09dS5nZXQob1t2XSksZj1tIT09dm9pZCAwP3JbbV06bnVsbDtpZihmPT09bnVsbCl7bGV0IHk9TzAocyxyW2NdKTtPMSh5LG5bdl0pLHBbdl09eX1lbHNlIHBbdl09TzEoZixuW3ZdKSxPMChzLHJbY10sZiksclttXT1udWxsO3YrK31lbHNlIFJrKHJbYl0pLGItLTtlbHNlIFJrKHJbY10pLGMrKztmb3IoO3Y8PXg7KXtsZXQgbT1PMChzLHBbeCsxXSk7TzEobSxuW3ZdKSxwW3YrK109bX1mb3IoO2M8PWI7KXtsZXQgbT1yW2MrK107bSE9PW51bGwmJlJrKG0pfXJldHVybiB0aGlzLnV0PW8sTmsocyxwKSxvaX19KX0pO3ZhciBVa3Q9ZygoKT0+e1ZrdCgpfSk7dmFyIFZpPXt9O3l0KFZpLHthc3luY0FwcGVuZDooKT0+TzVlLGtleWVkOigpPT5GNWUscmVwZWF0OigpPT5CNWUscmVzb2x2ZTooKT0+JGt0LHJlc29sdmVFeGVjOigpPT5FcWEsc3Vic2NyaWJlOigpPT5QcWEsc3Vic2NyaWJlV2l0aFRlbXBsYXRlOigpPT5Fa3QsdW50aWw6KCk9PlI1ZX0pO3ZhciBXa3Q9ZygoKT0+e0RrdCgpO0xrdCgpO1BrdCgpO1JrdCgpO0JrdCgpO3FrdCgpO1VrdCgpfSk7dmFyIEczPXt9O3l0KEczLHtEZWVzRWxlbWVudDooKT0+d2UsY29udGFpbmVyUmVzcG9uc2l2ZTooKT0+dmIsY3NzOigpPT5KLGNzc01hbmFnZXI6KCk9PmgsY3VzdG9tRWxlbWVudDooKT0+bmUsZGlyZWN0aXZlczooKT0+VmksZG9tdG9vbHM6KCk9Pmx0LGh0bWw6KCk9PncscHJvcGVydHk6KCk9PkwscXVlcnk6KCk9Pk01ZSxxdWVyeUFsbDooKT0+ejVlLHF1ZXJ5QXN5bmM6KCk9PkM1ZSxyZW5kZXI6KCk9PmgxLHN0YXRlOigpPT5ZLHN0YXRpYzooKT0+TW4sdW5zYWZlQ1NTOigpPT5hYSx1bnNhZmVIVE1MOigpPT5WMyx1bnNhZmVTdGF0aWM6KCk9Pms1ZX0pO3ZhciBoLHBlPWcoKCk9Pntua3QoKTt2YygpO2RrdCgpO3BrdCgpO2ZrdCgpO2trdCgpO2t0KCk7X2t0KCk7TWt0KCk7V2t0KCk7aD1DcmUuZ2V0U2luZ2xldG9uKCl9KTtmdW5jdGlvbiBBcWEocyxlKXtsZXQgdD1XcltzXTtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZlP3RbZV18fCJhdXRvIjp0eXBlb2YgdD09Im51bWJlciI/dDoiYXV0byJ9dmFyIFdyLE5xYSxJcmUseGEsem49ZygoKT0+e1dyPXtiYXNlOntjb250ZW50OiJhdXRvIixpbnB1dEVsZW1lbnRzOjF9LGZpeGVkOnthcHBCYXI6MTAsc2lkZU1lbnU6MTAsbW9iaWxlTmF2OjI1MH0sYmFja2Ryb3A6e2Ryb3Bkb3duOjE5OTksbW9kYWw6Mjk5OSxjb250ZXh0TWVudTozOTk5fSxvdmVybGF5Ontkcm9wZG93bjoyZTMsbW9kYWw6M2UzLGNvbnRleHRNZW51OjRlMyx0b2FzdDo1ZTN9LG1vZGFsRHJvcGRvd246MzUwMCx3eXNpd3lnTWVudXM6NDUwMH07aShBcWEsImdldFpJbmRleCIpO05xYT17ImRlZXMtbW9kYWwiOldyLm92ZXJsYXkubW9kYWwsImRlZXMtd2luZG93bGF5ZXIiOldyLm92ZXJsYXkuZHJvcGRvd24sImRlZXMtY29udGV4dG1lbnUiOldyLm92ZXJsYXkuY29udGV4dE1lbnUsImRlZXMtdG9hc3QiOldyLm92ZXJsYXkudG9hc3QsImRlZXMtYXBwdWktbWFpbm1lbnUiOldyLmZpeGVkLmFwcEJhciwiZGVlcy1tb2JpbGVuYXZpZ2F0aW9uIjpXci5maXhlZC5tb2JpbGVOYXYsImRlZXMtc2xhc2gtbWVudSI6V3Iud3lzaXd5Z01lbnVzLCJkZWVzLWZvcm1hdHRpbmctbWVudSI6V3Iud3lzaXd5Z01lbnVzfSxJcmU9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJaSW5kZXhSZWdpc3RyeSIpfXN0YXRpYyBpbnN0YW5jZTthY3RpdmVFbGVtZW50cz1uZXcgU2V0O2VsZW1lbnRaSW5kZXhNYXA9bmV3IFdlYWtNYXA7Y3VycmVudFpJbmRleD0xZTM7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHMuaW5zdGFuY2V8fChzLmluc3RhbmNlPW5ldyBzKSxzLmluc3RhbmNlfWdldE5leHRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4Kz0xMCx0aGlzLmN1cnJlbnRaSW5kZXh9cmVnaXN0ZXIoZSx0KXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmFkZChlKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXAuc2V0KGUsdCl9dW5yZWdpc3RlcihlKXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmRlbGV0ZShlKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZGVsZXRlKGUpLHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZT09PTAmJih0aGlzLmN1cnJlbnRaSW5kZXg9MWUzKX1nZXRFbGVtZW50WkluZGV4KGUpe3JldHVybiB0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KGUpfWdldEFjdGl2ZUNvdW50KCl7cmV0dXJuIHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZX1nZXRDdXJyZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY3VycmVudFpJbmRleH1jbGVhcigpe3RoaXMuYWN0aXZlRWxlbWVudHMuY2xlYXIoKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXA9bmV3IFdlYWtNYXAsdGhpcy5jdXJyZW50WkluZGV4PTFlM31nZXRBY3RpdmVFbGVtZW50c0luT3JkZXIoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFjdGl2ZUVsZW1lbnRzKS5zb3J0KChlLHQpPT57bGV0IGE9dGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlKXx8MCxyPXRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQodCl8fDA7cmV0dXJuIGEtcn0pfX0seGE9SXJlLmdldEluc3RhbmNlKCl9KTt2YXIgV2wsVWksV2ksSGUscHQ9ZygoKT0+e3BlKCk7V2w9e2NvbG9yczp7bGlnaHQ6e2JnUHJpbWFyeToiaHNsKDAgMCUgMTAwJSkiLGJnU2Vjb25kYXJ5OiJoc2woMCAwJSA5OCUpIixiZ1RlcnRpYXJ5OiJoc2woMCAwJSA5NiUpIix0ZXh0UHJpbWFyeToiaHNsKDAgMCUgMy45JSkiLHRleHRTZWNvbmRhcnk6ImhzbCgwIDAlIDIwJSkiLHRleHRNdXRlZDoiaHNsKDAgMCUgNDUlKSIsdGV4dFdhcm06IiM3ODcxNmMiLGJvcmRlckRlZmF1bHQ6ImhzbCgwIDAlIDg5LjglKSIsYm9yZGVyU3VidGxlOiJoc2woMCAwJSA5MyUpIixib3JkZXJTdHJvbmc6ImhzbCgwIDAlIDgwJSkiLGFjY2VudFByaW1hcnk6IiMzYjgyZjYiLGFjY2VudFN1Y2Nlc3M6IiMyMmM1NWUiLGFjY2VudFdhcm5pbmc6IiNmNTllMGIiLGFjY2VudEVycm9yOiIjZWY0NDQ0IixiYWRnZURlZmF1bHRCZzoiI2Y0ZjRmNSIsYmFkZ2VEZWZhdWx0Rmc6IiMzZjNmNDYiLGJhZGdlU3VjY2Vzc0JnOiIjZGNmY2U3IixiYWRnZVN1Y2Nlc3NGZzoiIzE2NjUzNCIsYmFkZ2VXYXJuaW5nQmc6IiNmZWYzYzciLGJhZGdlV2FybmluZ0ZnOiIjOTI0MDBlIixiYWRnZUVycm9yQmc6IiNmZWUyZTIiLGJhZGdlRXJyb3JGZzoiIzk5MWIxYiJ9LGRhcms6e2JnUHJpbWFyeToiaHNsKDAgMCUgMy45JSkiLGJnU2Vjb25kYXJ5OiJoc2woMCAwJSAzLjklKSIsYmdUZXJ0aWFyeToiaHNsKDAgMCUgNyUpIix0ZXh0UHJpbWFyeToiaHNsKDAgMCUgOTglKSIsdGV4dFNlY29uZGFyeToiaHNsKDAgMCUgNjMuOSUpIix0ZXh0TXV0ZWQ6ImhzbCgwIDAlIDU1JSkiLHRleHRXYXJtOiIjYjVhOTlhIixib3JkZXJEZWZhdWx0OiJoc2woMCAwJSAxNC45JSkiLGJvcmRlclN1YnRsZToiaHNsKDAgMCUgMTElKSIsYm9yZGVyU3Ryb25nOiJoc2woMCAwJSAyMCUpIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCIsYmFkZ2VEZWZhdWx0Qmc6IiMyNzI3MmEiLGJhZGdlRGVmYXVsdEZnOiIjYTFhMWFhIixiYWRnZVN1Y2Nlc3NCZzoiIzE0NTMyZCIsYmFkZ2VTdWNjZXNzRmc6IiM0YWRlODAiLGJhZGdlV2FybmluZ0JnOiIjNDUxYTAzIixiYWRnZVdhcm5pbmdGZzoiI2ZiYmYyNCIsYmFkZ2VFcnJvckJnOiIjNDUwYTBhIixiYWRnZUVycm9yRmc6IiNmODcxNzEifX0sc3BhY2luZzp7eHM6IjRweCIsc206IjhweCIsbWQ6IjEycHgiLGxnOiIxNnB4Iix4bDoiMjRweCIsIjJ4bCI6IjMycHgiLCIzeGwiOiI0OHB4In0scmFkaXVzOnt4czoiMnB4IixzbToiNHB4IixtZDoiNnB4IixsZzoiOHB4Iix4bDoiMTJweCIsZnVsbDoiOTk5cHgifSxzaGFkb3dzOnt4czoiMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSkiLHNtOiIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIixtZDoiMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLGxnOiIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkifSx0cmFuc2l0aW9uczp7ZmFzdDoiMC4xcyIsZGVmYXVsdDoiMC4xNXMiLHNsb3c6IjAuMnMiLHNsb3dlcjoiMC4zcyJ9LGNvbnRyb2xIZWlnaHRzOntzbToiMzJweCIsbWQ6IjM2cHgiLGxnOiI0MHB4Iix4bDoiNDhweCJ9fSxVaT1XbC5jb2xvcnMubGlnaHQsV2k9V2wuY29sb3JzLmRhcmssSGU9SmAKICA6aG9zdCB7CiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJhY2tncm91bmQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5OiAke2guYmRUaGVtZShVaS5iZ1ByaW1hcnksV2kuYmdQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5OiAke2guYmRUaGVtZShVaS5iZ1NlY29uZGFyeSxXaS5iZ1NlY29uZGFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5OiAke2guYmRUaGVtZShVaS5iZ1RlcnRpYXJ5LFdpLmJnVGVydGlhcnkpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFRleHQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnk6ICR7aC5iZFRoZW1lKFVpLnRleHRQcmltYXJ5LFdpLnRleHRQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnk6ICR7aC5iZFRoZW1lKFVpLnRleHRTZWNvbmRhcnksV2kudGV4dFNlY29uZGFyeSl9OwogICAgLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQ6ICR7aC5iZFRoZW1lKFVpLnRleHRNdXRlZCxXaS50ZXh0TXV0ZWQpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJvcmRlciAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0OiAke2guYmRUaGVtZShVaS5ib3JkZXJEZWZhdWx0LFdpLmJvcmRlckRlZmF1bHQpfTsKICAgIC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlOiAke2guYmRUaGVtZShVaS5ib3JkZXJTdWJ0bGUsV2kuYm9yZGVyU3VidGxlKX07CiAgICAtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZzogJHtoLmJkVGhlbWUoVWkuYm9yZGVyU3Ryb25nLFdpLmJvcmRlclN0cm9uZyl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgV2FybSBUZXh0IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdGV4dC13YXJtOiAke2guYmRUaGVtZShVaS50ZXh0V2FybSxXaS50ZXh0V2FybSl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQWNjZW50IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnk6ICR7aC5iZFRoZW1lKFVpLmFjY2VudFByaW1hcnksV2kuYWNjZW50UHJpbWFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzOiAke2guYmRUaGVtZShVaS5hY2NlbnRTdWNjZXNzLFdpLmFjY2VudFN1Y2Nlc3MpfTsKICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZzogJHtoLmJkVGhlbWUoVWkuYWNjZW50V2FybmluZyxXaS5hY2NlbnRXYXJuaW5nKX07CiAgICAtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yOiAke2guYmRUaGVtZShVaS5hY2NlbnRFcnJvcixXaS5hY2NlbnRFcnJvcil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQmFkZ2UgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWJnOiAke2guYmRUaGVtZShVaS5iYWRnZURlZmF1bHRCZyxXaS5iYWRnZURlZmF1bHRCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmc6ICR7aC5iZFRoZW1lKFVpLmJhZGdlRGVmYXVsdEZnLFdpLmJhZGdlRGVmYXVsdEZnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utc3VjY2Vzcy1iZzogJHtoLmJkVGhlbWUoVWkuYmFkZ2VTdWNjZXNzQmcsV2kuYmFkZ2VTdWNjZXNzQmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnOiAke2guYmRUaGVtZShVaS5iYWRnZVN1Y2Nlc3NGZyxXaS5iYWRnZVN1Y2Nlc3NGZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctYmc6ICR7aC5iZFRoZW1lKFVpLmJhZGdlV2FybmluZ0JnLFdpLmJhZGdlV2FybmluZ0JnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZzogJHtoLmJkVGhlbWUoVWkuYmFkZ2VXYXJuaW5nRmcsV2kuYmFkZ2VXYXJuaW5nRmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZzogJHtoLmJkVGhlbWUoVWkuYmFkZ2VFcnJvckJnLFdpLmJhZGdlRXJyb3JCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWZnOiAke2guYmRUaGVtZShVaS5iYWRnZUVycm9yRmcsV2kuYmFkZ2VFcnJvckZnKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBJbnRlcmFjdGl2ZSBTdGF0ZXMKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1ob3ZlcjogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgLS1kZWVzLWNvbG9yLWFjdGl2ZTogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgLS1kZWVzLWNvbG9yLXByZXNzZWQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgIC0tZGVlcy1jb2xvci1yb3ctaG92ZXI6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgRm9jdXMgUmluZwogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWZvY3VzLXJpbmc6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC40KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgVG9vbHRpcCAoaW52ZXJ0ZWQgY29udHJhc3QpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdG9vbHRpcC1iZzogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgLS1kZWVzLWNvbG9yLXRvb2x0aXAtZmc6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIExpbmsKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1saW5rOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAtLWRlZXMtY29sb3ItbGluay1ob3ZlcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjOTNiYmZkIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQ29kZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWNvZGUtYmc6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgLS1kZWVzLWNvbG9yLWNvZGUtYmxvY2stYmc6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFNlbGVjdGlvbgogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXNlbGVjdGlvbjogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBTY3JvbGxiYXIKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgIC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWItaG92ZXI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTcGFjaW5nIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc3BhY2luZy14czogNHB4OwogICAgLS1kZWVzLXNwYWNpbmctc206IDhweDsKICAgIC0tZGVlcy1zcGFjaW5nLW1kOiAxMnB4OwogICAgLS1kZWVzLXNwYWNpbmctbGc6IDE2cHg7CiAgICAtLWRlZXMtc3BhY2luZy14bDogMjRweDsKICAgIC0tZGVlcy1zcGFjaW5nLTJ4bDogMzJweDsKICAgIC0tZGVlcy1zcGFjaW5nLTN4bDogNDhweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBCb3JkZXIgUmFkaXVzIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtcmFkaXVzLXhzOiAycHg7CiAgICAtLWRlZXMtcmFkaXVzLXNtOiA0cHg7CiAgICAtLWRlZXMtcmFkaXVzLW1kOiA2cHg7CiAgICAtLWRlZXMtcmFkaXVzLWxnOiA4cHg7CiAgICAtLWRlZXMtcmFkaXVzLXhsOiAxMnB4OwogICAgLS1kZWVzLXJhZGl1cy1mdWxsOiA5OTlweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTaGFkb3cgRWxldmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgIC0tZGVlcy1zaGFkb3ctc206IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAtLWRlZXMtc2hhZG93LW1kOiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgIC0tZGVlcy1zaGFkb3ctbGc6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBUcmFuc2l0aW9uIER1cmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0OiAwLjFzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDogMC4xNXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93OiAwLjJzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyOiAwLjNzOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbnRyb2wgSGVpZ2h0IFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtc206IDMycHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbWQ6IDM2cHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbGc6IDQwcHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQteGw6IDQ4cHg7CiAgfQpgfSk7dmFyIHBvPWcoKCk9PntpbygpO1NuKCl9KTt2YXIgR2t0LEtrdD1nKCgpPT57cGUoKTtwbygpO29yKCk7R2t0PWkoKCk9PndgCjxzdHlsZT4KICAud2l0aE1hcmdpbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMjBweDsKICB9CiAgLmRlbW8tY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAyMHB4OwogICAgcGFkZGluZzogMjBweDsKICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogIH0KICAuZGVtby1hcmVhIHsKICAgIHBhZGRpbmc6IDQwcHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IGNvbnRleHQtbWVudTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICB9CiAgLmRlbW8tYXJlYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDIpOwogIH0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkJhc2ljIENvbnRleHQgTWVudSB3aXRoIE5lc3RlZCBTdWJtZW51cyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke3M9PntrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhzLFt7bmFtZToiRmlsZSIsaWNvbk5hbWU6ImZpbGVUZXh0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyIsaWNvbk5hbWU6ImZpbGVQbHVzIixzaG9ydGN1dDoiQ21kK04iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4iLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK08iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIixpY29uTmFtZToic2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHBvcnQgYXMgUERGIixpY29uTmFtZToiZG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHBvcnQgUERGIiksImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IGFzIEhUTUwiLGljb25OYW1lOiJjb2RlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IEhUTUwiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJlZGl0MyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsaWNvbk5hbWU6ImNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsaWNvbk5hbWU6InNlYXJjaCIsc2hvcnRjdXQ6IkNtZCtGIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpLCJhY3Rpb24iKX0se25hbWU6IlJlcGxhY2UiLGljb25OYW1lOiJyZXBlYXQiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGljb25OYW1lOiJleWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiWm9vbSBJbiIsaWNvbk5hbWU6Inpvb21JbiIsc2hvcnRjdXQ6IkNtZCsrIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBpbiIpLCJhY3Rpb24iKX0se25hbWU6Ilpvb20gT3V0IixpY29uTmFtZToiem9vbU91dCIsc2hvcnRjdXQ6IkNtZCstIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBvdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXNldCBab29tIixpY29uTmFtZToibWF4aW1pemUyIixzaG9ydGN1dDoiQ21kKzAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXNldCB6b29tIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZ1bGwgU2NyZWVuIixpY29uTmFtZToibWF4aW1pemUiLHNob3J0Y3V0OiJGMTEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsIHNjcmVlbiIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se25hbWU6IkhlbHAiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRhdGlvbiIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2hvcnRjdXRzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0IiksImFjdGlvbiIpfV19XSl9fT4KICAgICAgPGgzPlJpZ2h0LWNsaWNrIGFueXdoZXJlIGluIHRoaXMgYXJlYTwvaDM+CiAgICAgIDxwPkEgY29udGV4dCBtZW51IHdpdGggbmVzdGVkIHN1Ym1lbnVzIHdpbGwgYXBwZWFyPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkNvbXBvbmVudC1TcGVjaWZpYyBDb250ZXh0IE1lbnUiPgogICAgPGRlZXMtYnV0dG9uIHN0eWxlPSJtYXJnaW46IDIwcHg7IiBAY29udGV4dG1lbnU9JHtzPT57a2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMocyxbe25hbWU6IkJ1dHRvbiBBY3Rpb25zIixpY29uTmFtZToibW91c2VQb2ludGVyIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkNsaWNrIixpY29uTmFtZToibW91c2UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDbGljayBhY3Rpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJEb3VibGUgQ2xpY2siLGljb25OYW1lOiJ6YXAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb3VibGUgY2xpY2siKSwiYWN0aW9uIil9LHtuYW1lOiJMb25nIFByZXNzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb25nIHByZXNzIiksImFjdGlvbiIpfV19LHtuYW1lOiJCdXR0b24gU3RhdGUiLGljb25OYW1lOiJ0b2dnbGVMZWZ0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkVuYWJsZSIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRW5hYmxlIiksImFjdGlvbiIpfSx7bmFtZToiRGlzYWJsZSIsaWNvbk5hbWU6InhDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEaXNhYmxlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNob3ciLGljb25OYW1lOiJleWUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG93IiksImFjdGlvbiIpfSx7bmFtZToiSGlkZSIsaWNvbk5hbWU6ImV5ZU9mZiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkhpZGUiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEaXNhYmxlZCBBY3Rpb24iLGljb25OYW1lOiJiYW4iLGRpc2FibGVkOiEwLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUaGlzIHNob3VsZCBub3QgcnVuIiksImFjdGlvbiIpfSx7bmFtZToiUHJvcGVydGllcyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQnV0dG9uIHByb3BlcnRpZXMiKSwiYWN0aW9uIil9XSl9fT5SaWdodC1jbGljayBvbiB0aGlzIGJ1dHRvbjwvZGVlcy1idXR0b24+CiAgPC9kZWVzLXBhbmVsPgoKICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJBZHZhbmNlZCBDb250ZXh0IE1lbnUgRXhhbXBsZSI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke3M9PntrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhzLFt7bmFtZToiRm9ybWF0IixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJCb2xkIixpY29uTmFtZToiYm9sZCIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQm9sZCIpLCJhY3Rpb24iKX0se25hbWU6Ikl0YWxpYyIsaWNvbk5hbWU6Iml0YWxpYyIsc2hvcnRjdXQ6IkNtZCtJIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiSXRhbGljIiksImFjdGlvbiIpfSx7bmFtZToiVW5kZXJsaW5lIixpY29uTmFtZToidW5kZXJsaW5lIixzaG9ydGN1dDoiQ21kK1UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRlcmxpbmUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRm9udCBTaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZvbnQgc2l6ZSBtZW51IiksImFjdGlvbiIpfSx7bmFtZToiRm9udCBDb2xvciIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IGNvbG9yIG1lbnUiKSwiYWN0aW9uIil9XX0se25hbWU6IlRyYW5zZm9ybSIsaWNvbk5hbWU6InNodWZmbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG8gVXBwZXJjYXNlIixpY29uTmFtZToiYXJyb3dVcCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVwcGVyY2FzZSIpLCJhY3Rpb24iKX0se25hbWU6IlRvIExvd2VyY2FzZSIsaWNvbk5hbWU6ImFycm93RG93biIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkxvd2VyY2FzZSIpLCJhY3Rpb24iKX0se25hbWU6IkNhcGl0YWxpemUiLGljb25OYW1lOiJ0eXBlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ2FwaXRhbGl6ZSIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRlbGV0ZSIpLCJhY3Rpb24iKX1dKX19PgogICAgICA8aDM+QWR2YW5jZWQgTmVzdGVkIE1lbnUgRXhhbXBsZTwvaDM+CiAgICAgIDxwPlRoaXMgc2hvd3MgZGVlcGx5IG5lc3RlZCBzdWJtZW51cyBhbmQgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnM8L3A+CiAgICA8L2Rpdj4KICA8L2RlZXMtcGFuZWw+CiAgCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iU3RhdGljIENvbnRleHQgTWVudSAoQWx3YXlzIFZpc2libGUpIj4KICAgIDxkZWVzLWNvbnRleHRtZW51CiAgICAgIGNsYXNzPSJ3aXRoTWFyZ2luIgogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyUGx1cyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtOIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IHByb2plY3QiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIFByb2plY3QiLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK1NoaWZ0K08iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHByb2plY3QiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiUHJvamVjdCBBbHBoYSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gQWxwaGEiKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9qZWN0IEJldGEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEJldGEiKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9qZWN0IEdhbW1hIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBHYW1tYSIpLCJhY3Rpb24iKX1dfV19LHtuYW1lOiJUb29scyIsaWNvbk5hbWU6InRvb2wiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVGVybWluYWwiLGljb25OYW1lOiJ0ZXJtaW5hbCIsc2hvcnRjdXQ6IkNtZCtUIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVGVybWluYWwiKSwiYWN0aW9uIil9LHtuYW1lOiJDb25zb2xlIixpY29uTmFtZToibW9uaXRvciIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29uc29sZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHRlbnNpb25zIixpY29uTmFtZToicGFja2FnZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4dGVuc2lvbnMiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6InNsaWRlcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcmVmZXJlbmNlcyIpLCJhY3Rpb24iKX1dfQogICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICA8L2RlZXMtcGFuZWw+CjwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEZrLEYwLGhvLEYxPWcoKCk9PntwZSgpO3puKCk7Rms9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEYwPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxobz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd2luZG93bGF5ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dpbmRvd0xheWVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bTCh7dHlwZTpCb29sZWFufSldLEZrKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3B0aW9ucyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm9wdGlvbnMsImdldCIpLHNldDppKCh6LE4pPT57ei5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxGayh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJhY2tkcm9wWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJiYWNrZHJvcFpJbmRleCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmJhY2tkcm9wWkluZGV4LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYmFja2Ryb3BaSW5kZXg9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLEZrKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY29udGVudFpJbmRleCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNvbnRlbnRaSW5kZXgsImdldCIpLHNldDppKCh6LE4pPT57ei5jb250ZW50WkluZGV4PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxGayh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InZpc2libGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudmlzaWJsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksRmsobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxkZWVzLXdpbmRvd2xheWVyPjwvZGVlcy13aW5kb3dsYXllcj5gLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coTSl7bGV0IHo9bHQuRG9tVG9vbHMuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCksTj1uZXcgeTtyZXR1cm4gTi5vcHRpb25zPXsuLi5OLm9wdGlvbnMsLi4uTX0sZG9jdW1lbnQuYm9keS5hcHBlbmQoTiksYXdhaXQgei5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLE4uc2hvdygpLE59I2U9RjAodGhpcyxvLHtibHVyOiExfSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhNKXt0aGlzLiNlPU19I3Q9KEYwKHRoaXMsbCksRjAodGhpcyxkLDFlMykpO2dldCBiYWNrZHJvcFpJbmRleCgpe3JldHVybiB0aGlzLiN0fXNldCBiYWNrZHJvcFpJbmRleChNKXt0aGlzLiN0PU19I2E9KEYwKHRoaXMsdSksRjAodGhpcyxiLDEwMDEpKTtnZXQgY29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBjb250ZW50WkluZGV4KE0pe3RoaXMuI2E9TX0jcz0oRjAodGhpcyx2KSxGMCh0aGlzLG0sITEpKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCB2aXNpYmxlKE0pe3RoaXMuI3M9TX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksRjAodGhpcyxmKSxsdC5lbGVtZW50QmFzaWMuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtsdC5lbGVtZW50QmFzaWMuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgLndpbmRvd092ZXJsYXkgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxKSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDBweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmJhY2tkcm9wWkluZGV4fTsKICAgICAgICB9CiAgICAgICAgLnNsb3RDb250ZW50IHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmNvbnRlbnRaSW5kZXh9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zbG90Q29udGVudCA+ICogewogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aXNpYmxlIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygwLjkpICR7dGhpcy5vcHRpb25zLmJsdXI/ImJsdXIoMnB4KSI6IiJ9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5kaXNwYXRjaENsaWNrZWR9IGNsYXNzPSJ3aW5kb3dPdmVybGF5ICR7dGhpcy52aXNpYmxlPyJ2aXNpYmxlIjpudWxsfSI+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGVudCI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7c2V0VGltZW91dCgoKT0+e3RoaXMudmlzaWJsZT0hMH0sMTAwKX1kaXNwYXRjaENsaWNrZWQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIikpfXRvZ2dsZVZpc2liaWxpdHkoKXt0aGlzLnZpc2libGU9IXRoaXMudmlzaWJsZX1nZXRDb250ZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY29udGVudFpJbmRleH1hc3luYyBzaG93KCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5iYWNrZHJvcFpJbmRleD14YS5nZXROZXh0WkluZGV4KCksdGhpcy5jb250ZW50WkluZGV4PXhhLmdldE5leHRaSW5kZXgoKSx4YS5yZWdpc3Rlcih0aGlzLHRoaXMuYmFja2Ryb3BaSW5kZXgpLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITB9YXN5bmMgaGlkZSgpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMX1hc3luYyBkZXN0cm95KCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7YXdhaXQgdGhpcy5oaWRlKCksYXdhaXQgTS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCkseGEudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnJlbW92ZSgpfXN0YXRpY3tGMChhLHQpfX07cmV0dXJuIHk9YX0pKCl9KTtmdW5jdGlvbiBINWUocyxlKXsoZT09bnVsbHx8ZT5zLmxlbmd0aCkmJihlPXMubGVuZ3RoKTtmb3IodmFyIHQ9MCxhPUFycmF5KGUpO3Q8ZTt0KyspYVt0XT1zW3RdO3JldHVybiBhfWZ1bmN0aW9uIE9xYShzKXtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBzfWZ1bmN0aW9uIEZxYShzKXtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBINWUocyl9ZnVuY3Rpb24gQnFhKHMsZSl7aWYoIShzIGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gWWt0KHMsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBhPWVbdF07YS5lbnVtZXJhYmxlPWEuZW51bWVyYWJsZXx8ITEsYS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGEmJihhLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocyxYa3QoYS5rZXkpLGEpfX1mdW5jdGlvbiBIcWEocyxlLHQpe3JldHVybiBlJiZZa3Qocy5wcm90b3R5cGUsZSksdCYmWWt0KHMsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksc31mdW5jdGlvbiBBcmUocyxlKXt2YXIgdD10eXBlb2YgU3ltYm9sPCJ1IiYmc1tTeW1ib2wuaXRlcmF0b3JdfHxzWyJAQGl0ZXJhdG9yIl07aWYoIXQpe2lmKEFycmF5LmlzQXJyYXkocyl8fCh0PXE1ZShzKSl8fGUmJnMmJnR5cGVvZiBzLmxlbmd0aD09Im51bWJlciIpe3QmJihzPXQpO3ZhciBhPTAscj1pKGZ1bmN0aW9uKCl7fSwiRiIpO3JldHVybntzOnIsbjppKGZ1bmN0aW9uKCl7cmV0dXJuIGE+PXMubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTpzW2ErK119fSwibiIpLGU6aShmdW5jdGlvbihwKXt0aHJvdyBwfSwiZSIpLGY6cn19dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dmFyIG4sbz0hMCxsPSExO3JldHVybntzOmkoZnVuY3Rpb24oKXt0PXQuY2FsbChzKX0sInMiKSxuOmkoZnVuY3Rpb24oKXt2YXIgcD10Lm5leHQoKTtyZXR1cm4gbz1wLmRvbmUscH0sIm4iKSxlOmkoZnVuY3Rpb24ocCl7bD0hMCxuPXB9LCJlIiksZjppKGZ1bmN0aW9uKCl7dHJ5e298fHQucmV0dXJuPT1udWxsfHx0LnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyBufX0sImYiKX19ZnVuY3Rpb24gaGEocyxlLHQpe3JldHVybihlPVhrdChlKSlpbiBzP09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGUse3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpzW2VdPXQsc31mdW5jdGlvbiBxcWEocyxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cyx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmTnJlKHMsZSl9ZnVuY3Rpb24ganFhKHMpe2lmKHR5cGVvZiBTeW1ib2w8InUiJiZzW1N5bWJvbC5pdGVyYXRvcl0hPW51bGx8fHNbIkBAaXRlcmF0b3IiXSE9bnVsbClyZXR1cm4gQXJyYXkuZnJvbShzKX1mdW5jdGlvbiBWcWEocyxlKXt2YXIgdD1zPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDwidSImJnNbU3ltYm9sLml0ZXJhdG9yXXx8c1siQEBpdGVyYXRvciJdO2lmKHQhPW51bGwpe3ZhciBhLHIsbixvLGw9W10scD0hMCxkPSExO3RyeXtpZihuPSh0PXQuY2FsbChzKSkubmV4dCxlPT09MCl7aWYoT2JqZWN0KHQpIT09dClyZXR1cm47cD0hMX1lbHNlIGZvcig7IShwPShhPW4uY2FsbCh0KSkuZG9uZSkmJihsLnB1c2goYS52YWx1ZSksbC5sZW5ndGghPT1lKTtwPSEwKTt9Y2F0Y2godSl7ZD0hMCxyPXV9ZmluYWxseXt0cnl7aWYoIXAmJnQucmV0dXJuIT1udWxsJiYobz10LnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGQpdGhyb3cgcn19cmV0dXJuIGx9fWZ1bmN0aW9uIFVxYSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBXcWEoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIFprdChzLGUpe3ZhciB0PU9iamVjdC5rZXlzKHMpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7ZSYmKGE9YS5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxyKS5lbnVtZXJhYmxlfSkpLHQucHVzaC5hcHBseSh0LGEpfXJldHVybiB0fWZ1bmN0aW9uIGR0KHMpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciB0PWFyZ3VtZW50c1tlXSE9bnVsbD9hcmd1bWVudHNbZV06e307ZSUyP1prdChPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24oYSl7aGEocyxhLHRbYV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6Wmt0KE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihhKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocyxhLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxhKSl9KX1yZXR1cm4gc31mdW5jdGlvbiBOcmUocyxlKXtyZXR1cm4gTnJlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsYSl7cmV0dXJuIHQuX19wcm90b19fPWEsdH0sTnJlKHMsZSl9ZnVuY3Rpb24gUnJlKHMsZSl7cmV0dXJuIE9xYShzKXx8VnFhKHMsZSl8fHE1ZShzLGUpfHxVcWEoKX1mdW5jdGlvbiBCMShzKXtyZXR1cm4gRnFhKHMpfHxqcWEocyl8fHE1ZShzKXx8V3FhKCl9ZnVuY3Rpb24gR3FhKHMsZSl7aWYodHlwZW9mIHMhPSJvYmplY3QifHwhcylyZXR1cm4gczt2YXIgdD1zW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodCE9PXZvaWQgMCl7dmFyIGE9dC5jYWxsKHMsZXx8ImRlZmF1bHQiKTtpZih0eXBlb2YgYSE9Im9iamVjdCIpcmV0dXJuIGE7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oZT09PSJzdHJpbmciP1N0cmluZzpOdW1iZXIpKHMpfWZ1bmN0aW9uIFhrdChzKXt2YXIgZT1HcWEocywic3RyaW5nIik7cmV0dXJuIHR5cGVvZiBlPT0ic3ltYm9sIj9lOmUrIiJ9ZnVuY3Rpb24gT3JlKHMpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIE9yZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sT3JlKHMpfWZ1bmN0aW9uIHE1ZShzLGUpe2lmKHMpe2lmKHR5cGVvZiBzPT0ic3RyaW5nIilyZXR1cm4gSDVlKHMsZSk7dmFyIHQ9e30udG9TdHJpbmcuY2FsbChzKS5zbGljZSg4LC0xKTtyZXR1cm4gdD09PSJPYmplY3QiJiZzLmNvbnN0cnVjdG9yJiYodD1zLmNvbnN0cnVjdG9yLm5hbWUpLHQ9PT0iTWFwInx8dD09PSJTZXQiP0FycmF5LmZyb20ocyk6dD09PSJBcmd1bWVudHMifHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KT9INWUocyxlKTp2b2lkIDB9fWZ1bmN0aW9uIGFuKCl7YW49aShmdW5jdGlvbihyLG4pe3JldHVybiBuZXcgdChyLHZvaWQgMCxuKX0sIl93cmFwUmVnRXhwIik7dmFyIHM9UmVnRXhwLnByb3RvdHlwZSxlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHQocixuLG8pe3ZhciBsPVJlZ0V4cChyLG4pO3JldHVybiBlLnNldChsLG98fGUuZ2V0KHIpKSxOcmUobCx0LnByb3RvdHlwZSl9aSh0LCJCYWJlbFJlZ0V4cCIpO2Z1bmN0aW9uIGEocixuKXt2YXIgbz1lLmdldChuKTtyZXR1cm4gT2JqZWN0LmtleXMobykucmVkdWNlKGZ1bmN0aW9uKGwscCl7dmFyIGQ9b1twXTtpZih0eXBlb2YgZD09Im51bWJlciIpbFtwXT1yW2RdO2Vsc2V7Zm9yKHZhciB1PTA7cltkW3VdXT09PXZvaWQgMCYmdSsxPGQubGVuZ3RoOyl1Kys7bFtwXT1yW2RbdV1dfXJldHVybiBsfSxPYmplY3QuY3JlYXRlKG51bGwpKX1yZXR1cm4gaShhLCJidWlsZEdyb3VwcyIpLHFxYSh0LFJlZ0V4cCksdC5wcm90b3R5cGUuZXhlYz1mdW5jdGlvbihyKXt2YXIgbj1zLmV4ZWMuY2FsbCh0aGlzLHIpO2lmKG4pe24uZ3JvdXBzPWEobix0aGlzKTt2YXIgbz1uLmluZGljZXM7byYmKG8uZ3JvdXBzPWEobyx0aGlzKSl9cmV0dXJuIG59LHQucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXT1mdW5jdGlvbihyLG4pe2lmKHR5cGVvZiBuPT0ic3RyaW5nIil7dmFyIG89ZS5nZXQodGhpcyk7cmV0dXJuIHNbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxyLG4ucmVwbGFjZSgvXCQ8KFtePl0rKSg+fCQpL2csZnVuY3Rpb24ocCxkLHUpe2lmKHU9PT0iIilyZXR1cm4gcDt2YXIgYz1vW2RdO3JldHVybiBBcnJheS5pc0FycmF5KGMpPyIkIitjLmpvaW4oIiQiKTp0eXBlb2YgYz09Im51bWJlciI/IiQiK2M6IiJ9KSl9aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpe3ZhciBsPXRoaXM7cmV0dXJuIHNbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxyLGZ1bmN0aW9uKCl7dmFyIHA9YXJndW1lbnRzO3JldHVybiB0eXBlb2YgcFtwLmxlbmd0aC0xXSE9Im9iamVjdCImJihwPVtdLnNsaWNlLmNhbGwocCkpLnB1c2goYShwLGwpKSxuLmFwcGx5KHRoaXMscCl9KX1yZXR1cm4gc1tTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHIsbil9LGFuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBIayhzKXtyZXR1cm4gbmV3IFByb3h5KHMse2dldDppKGZ1bmN0aW9uKHQsYSl7cmV0dXJuIGEgaW4gdD90W2FdOnRbX29dfSwiZ2V0Iil9KX1mdW5jdGlvbiBBVmEocyl7dmFyIGU9ZGkucXVlcnlTZWxlY3Rvcigic2NyaXB0WyIrcysiXSIpO2lmKGUpcmV0dXJuIGUuZ2V0QXR0cmlidXRlKHMpfWZ1bmN0aW9uIE5WYShzKXtyZXR1cm4gcz09PSIiPyEwOnM9PT0iZmFsc2UiPyExOnM9PT0idHJ1ZSI/ITA6c31mdW5jdGlvbiBSVmEocyl7cmV0dXJuIGprLnB1c2gocyksZnVuY3Rpb24oKXtqay5zcGxpY2UoamsuaW5kZXhPZihzKSwxKX19ZnVuY3Rpb24gT1ZhKHMpe2lmKCEoIXN8fCFCMCkpe3ZhciBlPWRpLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLGUuaW5uZXJIVE1MPXM7Zm9yKHZhciB0PWRpLmhlYWQuY2hpbGROb2RlcyxhPW51bGwscj10Lmxlbmd0aC0xO3I+LTE7ci0tKXt2YXIgbj10W3JdLG89KG4udGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk7WyJTVFlMRSIsIkxJTksiXS5pbmRleE9mKG8pPi0xJiYoYT1uKX1yZXR1cm4gZGkuaGVhZC5pbnNlcnRCZWZvcmUoZSxhKSxzfX1mdW5jdGlvbiBIU3QoKXtmb3IodmFyIHM9MTIsZT0iIjtzLS0gPjA7KWUrPUZWYVtNYXRoLnJhbmRvbSgpKjYyfDBdO3JldHVybiBlfWZ1bmN0aW9uIGtiKHMpe2Zvcih2YXIgZT1bXSx0PShzfHxbXSkubGVuZ3RoPj4+MDt0LS07KWVbdF09c1t0XTtyZXR1cm4gZX1mdW5jdGlvbiBhOGUocyl7cmV0dXJuIHMuY2xhc3NMaXN0P2tiKHMuY2xhc3NMaXN0KToocy5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pfWZ1bmN0aW9uIHFTdChzKXtyZXR1cm4iIi5jb25jYXQocykucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpfWZ1bmN0aW9uIEJWYShzKXtyZXR1cm4gT2JqZWN0LmtleXMoc3x8e30pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlKyIiLmNvbmNhdCh0LCc9IicpLmNvbmNhdChxU3Qoc1t0XSksJyIgJyl9LCIiKS50cmltKCl9ZnVuY3Rpb24gSHJlKHMpe3JldHVybiBPYmplY3Qua2V5cyhzfHx7fSkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUrIiIuY29uY2F0KHQsIjogIikuY29uY2F0KHNbdF0udHJpbSgpLCI7Iil9LCIiKX1mdW5jdGlvbiBzOGUocyl7cmV0dXJuIHMuc2l6ZSE9PU1kLnNpemV8fHMueCE9PU1kLnh8fHMueSE9PU1kLnl8fHMucm90YXRlIT09TWQucm90YXRlfHxzLmZsaXBYfHxzLmZsaXBZfWZ1bmN0aW9uIEhWYShzKXt2YXIgZT1zLnRyYW5zZm9ybSx0PXMuY29udGFpbmVyV2lkdGgsYT1zLmljb25XaWR0aCxyPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdCh0LzIsIiAyNTYpIil9LG49InRyYW5zbGF0ZSgiLmNvbmNhdChlLngqMzIsIiwgIikuY29uY2F0KGUueSozMiwiKSAiKSxvPSJzY2FsZSgiLmNvbmNhdChlLnNpemUvMTYqKGUuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KGUuc2l6ZS8xNiooZS5mbGlwWT8tMToxKSwiKSAiKSxsPSJyb3RhdGUoIi5jb25jYXQoZS5yb3RhdGUsIiAwIDApIikscD17dHJhbnNmb3JtOiIiLmNvbmNhdChuLCIgIikuY29uY2F0KG8sIiAiKS5jb25jYXQobCl9LGQ9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KGEvMiotMSwiIC0yNTYpIil9O3JldHVybntvdXRlcjpyLGlubmVyOnAscGF0aDpkfX1mdW5jdGlvbiBxVmEocyl7dmFyIGU9cy50cmFuc2Zvcm0sdD1zLndpZHRoLGE9dD09PXZvaWQgMD9HNWU6dCxyPXMuaGVpZ2h0LG49cj09PXZvaWQgMD9HNWU6cixvPXMuc3RhcnRDZW50ZXJlZCxsPW89PT12b2lkIDA/ITE6byxwPSIiO3JldHVybiBsJiZyU3Q/cCs9InRyYW5zbGF0ZSgiLmNvbmNhdChlLngvbGgtYS8yLCJlbSwgIikuY29uY2F0KGUueS9saC1uLzIsImVtKSAiKTpsP3ArPSJ0cmFuc2xhdGUoY2FsYygtNTAlICsgIi5jb25jYXQoZS54L2xoLCJlbSksIGNhbGMoLTUwJSArICIpLmNvbmNhdChlLnkvbGgsImVtKSkgIik6cCs9InRyYW5zbGF0ZSgiLmNvbmNhdChlLngvbGgsImVtLCAiKS5jb25jYXQoZS55L2xoLCJlbSkgIikscCs9InNjYWxlKCIuY29uY2F0KGUuc2l6ZS9saCooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplL2xoKihlLmZsaXBZPy0xOjEpLCIpICIpLHArPSJyb3RhdGUoIi5jb25jYXQoZS5yb3RhdGUsImRlZykgIikscH1mdW5jdGlvbiBqU3QoKXt2YXIgcz1MU3QsZT1FU3QsdD1XdC5jc3NQcmVmaXgsYT1XdC5yZXBsYWNlbWVudENsYXNzLHI9alZhO2lmKHQhPT1zfHxhIT09ZSl7dmFyIG49bmV3IFJlZ0V4cCgiXFwuIi5jb25jYXQocywiXFwtIiksImciKSxvPW5ldyBSZWdFeHAoIlxcLS0iLmNvbmNhdChzLCJcXC0iKSwiZyIpLGw9bmV3IFJlZ0V4cCgiXFwuIi5jb25jYXQoZSksImciKTtyPXIucmVwbGFjZShuLCIuIi5jb25jYXQodCwiLSIpKS5yZXBsYWNlKG8sIi0tIi5jb25jYXQodCwiLSIpKS5yZXBsYWNlKGwsIi4iLmNvbmNhdChhKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gaThlKCl7V3QuYXV0b0FkZENzcyYmIVZTdCYmKE9WYShqU3QoKSksVlN0PSEwKX1mdW5jdGlvbiBVVmEocyl7QjAmJihxcmU/c2V0VGltZW91dChzLDApOlVTdC5wdXNoKHMpKX1mdW5jdGlvbiBWayhzKXt2YXIgZT1zLnRhZyx0PXMuYXR0cmlidXRlcyxhPXQ9PT12b2lkIDA/e306dCxyPXMuY2hpbGRyZW4sbj1yPT09dm9pZCAwP1tdOnI7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9xU3Qocyk6IjwiLmNvbmNhdChlLCIgIikuY29uY2F0KEJWYShhKSwiPiIpLmNvbmNhdChuLm1hcChWaykuam9pbigiIiksIjwvIikuY29uY2F0KGUsIj4iKX1mdW5jdGlvbiBHU3QocyxlLHQpe2lmKHMmJnNbZV0mJnNbZV1bdF0pcmV0dXJue3ByZWZpeDplLGljb25OYW1lOnQsaWNvbjpzW2VdW3RdfX1mdW5jdGlvbiBLU3Qocyl7cmV0dXJuIEIxKHMpLmxlbmd0aCE9PTE/bnVsbDpzLmNvZGVQb2ludEF0KDApLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBZU3Qocyl7cmV0dXJuIE9iamVjdC5rZXlzKHMpLnJlZHVjZShmdW5jdGlvbihlLHQpe3ZhciBhPXNbdF0scj0hIWEuaWNvbjtyZXR1cm4gcj9lW2EuaWNvbk5hbWVdPWEuaWNvbjplW3RdPWEsZX0se30pfWZ1bmN0aW9uIG84ZShzLGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7fSxhPXQuc2tpcEhvb2tzLHI9YT09PXZvaWQgMD8hMTphLG49WVN0KGUpO3R5cGVvZiBIMS5ob29rcy5hZGRQYWNrPT0iZnVuY3Rpb24iJiYhcj9IMS5ob29rcy5hZGRQYWNrKHMsWVN0KGUpKTpIMS5zdHlsZXNbc109ZHQoZHQoe30sSDEuc3R5bGVzW3NdfHx7fSksbikscz09PSJmYXMiJiZvOGUoImZhIixlKX1mdW5jdGlvbiBZVmEocyl7cmV0dXJufklWYS5pbmRleE9mKHMpfWZ1bmN0aW9uIFpWYShzLGUpe3ZhciB0PWUuc3BsaXQoIi0iKSxhPXRbMF0scj10LnNsaWNlKDEpLmpvaW4oIi0iKTtyZXR1cm4gYT09PXMmJnIhPT0iIiYmIVlWYShyKT9yOm51bGx9ZnVuY3Rpb24gYzhlKHMsZSl7cmV0dXJuKFhTdFtzXXx8e30pW2VdfWZ1bmN0aW9uIFhWYShzLGUpe3JldHVybihRU3Rbc118fHt9KVtlXX1mdW5jdGlvbiBZMyhzLGUpe3JldHVybih0X3Rbc118fHt9KVtlXX1mdW5jdGlvbiBzX3Qocyl7cmV0dXJuIEpTdFtzXXx8e3ByZWZpeDpudWxsLGljb25OYW1lOm51bGx9fWZ1bmN0aW9uIFFWYShzKXt2YXIgZT1lX3Rbc10sdD1jOGUoImZhcyIscyk7cmV0dXJuIGV8fCh0P3twcmVmaXg6ImZhcyIsaWNvbk5hbWU6dH06bnVsbCl8fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiBjaCgpe3JldHVybiBsOGV9ZnVuY3Rpb24gSlZhKHMpe3ZhciBlPV9vLHQ9WlN0LnJlZHVjZShmdW5jdGlvbihhLHIpe3JldHVybiBhW3JdPSIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQociksYX0se30pO3JldHVybiBNU3QuZm9yRWFjaChmdW5jdGlvbihhKXsocy5pbmNsdWRlcyh0W2FdKXx8cy5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiBLVmFbYV0uaW5jbHVkZXMocil9KSkmJihlPWEpfSksZX1mdW5jdGlvbiBqcmUocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHQ9ZS5mYW1pbHksYT10PT09dm9pZCAwP19vOnQscj0kVmFbYV1bc107aWYoYT09PUJrJiYhcylyZXR1cm4iZmFkIjt2YXIgbj1SU3RbYV1bc118fFJTdFthXVtyXSxvPXMgaW4gSDEuc3R5bGVzP3M6bnVsbCxsPW58fG98fG51bGw7cmV0dXJuIGx9ZnVuY3Rpb24gZVVhKHMpe3ZhciBlPVtdLHQ9bnVsbDtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciByPVpWYShXdC5jc3NQcmVmaXgsYSk7cj90PXI6YSYmZS5wdXNoKGEpfSkse2ljb25OYW1lOnQscmVzdDplfX1mdW5jdGlvbiByX3Qocyl7cmV0dXJuIHMuc29ydCgpLmZpbHRlcihmdW5jdGlvbihlLHQsYSl7cmV0dXJuIGEuaW5kZXhPZihlKT09PXR9KX1mdW5jdGlvbiBWcmUocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHQ9ZS5za2lwTG9va3VwcyxhPXQ9PT12b2lkIDA/ITE6dCxyPW51bGwsbj1yX3Qocy5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIG9fdC5pbmNsdWRlcyh2KX0pKSxvPXJfdChzLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4hb190LmluY2x1ZGVzKHYpfSkpLGw9bi5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIHI9diwhblN0LmluY2x1ZGVzKHYpfSkscD1ScmUobCwxKSxkPXBbMF0sdT1kPT09dm9pZCAwP251bGw6ZCxjPUpWYShuKSxiPWR0KGR0KHt9LGVVYShvKSkse30se3ByZWZpeDpqcmUodSx7ZmFtaWx5OmN9KX0pO3JldHVybiBkdChkdChkdCh7fSxiKSxpVWEoe3ZhbHVlczpzLGZhbWlseTpjLHN0eWxlczpVayxjb25maWc6V3QsY2Fub25pY2FsOmIsZ2l2ZW5QcmVmaXg6cn0pKSx0VWEoYSxyLGIpKX1mdW5jdGlvbiB0VWEocyxlLHQpe3ZhciBhPXQucHJlZml4LHI9dC5pY29uTmFtZTtpZihzfHwhYXx8IXIpcmV0dXJue3ByZWZpeDphLGljb25OYW1lOnJ9O3ZhciBuPWU9PT0iZmEiP3NfdChyKTp7fSxvPVkzKGEscik7cmV0dXJuIHI9bi5pY29uTmFtZXx8b3x8cixhPW4ucHJlZml4fHxhLGE9PT0iZmFyIiYmIVVrLmZhciYmVWsuZmFzJiYhV3QuYXV0b0ZldGNoU3ZnJiYoYT0iZmFzIikse3ByZWZpeDphLGljb25OYW1lOnJ9fWZ1bmN0aW9uIGlVYShzKXt2YXIgZT1zLnZhbHVlcyx0PXMuZmFtaWx5LGE9cy5jYW5vbmljYWwscj1zLmdpdmVuUHJlZml4LG49cj09PXZvaWQgMD8iIjpyLG89cy5zdHlsZXMsbD1vPT09dm9pZCAwP3t9Om8scD1zLmNvbmZpZyxkPXA9PT12b2lkIDA/e306cCx1PXQ9PT1CayxjPWUuaW5jbHVkZXMoImZhLWR1b3RvbmUiKXx8ZS5pbmNsdWRlcygiZmFkIiksYj1kLmZhbWlseURlZmF1bHQ9PT0iZHVvdG9uZSIsdj1hLnByZWZpeD09PSJmYWQifHxhLnByZWZpeD09PSJmYS1kdW90b25lIjtpZighdSYmKGN8fGJ8fHYpJiYoYS5wcmVmaXg9ImZhZCIpLChlLmluY2x1ZGVzKCJmYS1icmFuZHMiKXx8ZS5pbmNsdWRlcygiZmFiIikpJiYoYS5wcmVmaXg9ImZhYiIpLCFhLnByZWZpeCYmYVVhLmluY2x1ZGVzKHQpKXt2YXIgeD1PYmplY3Qua2V5cyhsKS5maW5kKGZ1bmN0aW9uKGYpe3JldHVybiBzVWEuaW5jbHVkZXMoZil9KTtpZih4fHxkLmF1dG9GZXRjaFN2Zyl7dmFyIG09eGphLmdldCh0KS5kZWZhdWx0U2hvcnRQcmVmaXhJZDthLnByZWZpeD1tLGEuaWNvbk5hbWU9WTMoYS5wcmVmaXgsYS5pY29uTmFtZSl8fGEuaWNvbk5hbWV9fXJldHVybihhLnByZWZpeD09PSJmYSJ8fG49PT0iZmEiKSYmKGEucHJlZml4PWNoKCl8fCJmYXMiKSxhfWZ1bmN0aW9uIG5VYShzLGUpe3ZhciB0PWUubWl4b3V0c1RvO3JldHVybiBuX3Q9cyxTYj17fSxPYmplY3Qua2V5cyhfYikuZm9yRWFjaChmdW5jdGlvbihhKXtvVWEuaW5kZXhPZihhKT09PS0xJiZkZWxldGUgX2JbYV19KSxuX3QuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgcj1hLm1peG91dD9hLm1peG91dCgpOnt9O2lmKE9iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24obyl7dHlwZW9mIHJbb109PSJmdW5jdGlvbiImJih0W29dPXJbb10pLE9yZShyW29dKT09PSJvYmplY3QiJiZPYmplY3Qua2V5cyhyW29dKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3Rbb118fCh0W29dPXt9KSx0W29dW2xdPXJbb11bbF19KX0pLGEuaG9va3Mpe3ZhciBuPWEuaG9va3MoKTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe1NiW29dfHwoU2Jbb109W10pLFNiW29dLnB1c2gobltvXSl9KX1hLnByb3ZpZGVzJiZhLnByb3ZpZGVzKF9iKX0pLHR9ZnVuY3Rpb24gZDhlKHMsZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkodD4yP3QtMjowKSxyPTI7cjx0O3IrKylhW3ItMl09YXJndW1lbnRzW3JdO3ZhciBuPVNiW3NdfHxbXTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG8pe2U9by5hcHBseShudWxsLFtlXS5jb25jYXQoYSkpfSksZX1mdW5jdGlvbiBaMyhzKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlPjE/ZS0xOjApLGE9MTthPGU7YSsrKXRbYS0xXT1hcmd1bWVudHNbYV07dmFyIHI9U2Jbc118fFtdO3IuZm9yRWFjaChmdW5jdGlvbihuKXtuLmFwcGx5KG51bGwsdCl9KX1mdW5jdGlvbiBkaCgpe3ZhciBzPWFyZ3VtZW50c1swXSxlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gX2Jbc10/X2Jbc10uYXBwbHkobnVsbCxlKTp2b2lkIDB9ZnVuY3Rpb24gdThlKHMpe3MucHJlZml4PT09ImZhIiYmKHMucHJlZml4PSJmYXMiKTt2YXIgZT1zLmljb25OYW1lLHQ9cy5wcmVmaXh8fGNoKCk7aWYoZSlyZXR1cm4gZT1ZMyh0LGUpfHxlLEdTdChsX3QuZGVmaW5pdGlvbnMsdCxlKXx8R1N0KEgxLnN0eWxlcyx0LGUpfWZ1bmN0aW9uIFVyZShzLGUpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocywiYWJzdHJhY3QiLHtnZXQ6ZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJodG1sIix7Z2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gcy5hYnN0cmFjdC5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIFZrKGEpfSl9LCJnZXQiKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJub2RlIix7Z2V0OmkoZnVuY3Rpb24oKXtpZihCMCl7dmFyIGE9ZGkuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGEuaW5uZXJIVE1MPXMuaHRtbCxhLmNoaWxkcmVufX0sImdldCIpfSksc31mdW5jdGlvbiBwVWEocyl7dmFyIGU9cy5jaGlsZHJlbix0PXMubWFpbixhPXMubWFzayxyPXMuYXR0cmlidXRlcyxuPXMuc3R5bGVzLG89cy50cmFuc2Zvcm07aWYoczhlKG8pJiZ0LmZvdW5kJiYhYS5mb3VuZCl7dmFyIGw9dC53aWR0aCxwPXQuaGVpZ2h0LGQ9e3g6bC9wLzIseTouNX07ci5zdHlsZT1IcmUoZHQoZHQoe30sbikse30seyJ0cmFuc2Zvcm0tb3JpZ2luIjoiIi5jb25jYXQoZC54K28ueC8xNiwiZW0gIikuY29uY2F0KGQueStvLnkvMTYsImVtIil9KSl9cmV0dXJuW3t0YWc6InN2ZyIsYXR0cmlidXRlczpyLGNoaWxkcmVuOmV9XX1mdW5jdGlvbiBoVWEocyl7dmFyIGU9cy5wcmVmaXgsdD1zLmljb25OYW1lLGE9cy5jaGlsZHJlbixyPXMuYXR0cmlidXRlcyxuPXMuc3ltYm9sLG89bj09PSEwPyIiLmNvbmNhdChlLCItIikuY29uY2F0KFd0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdCh0KTpuO3JldHVyblt7dGFnOiJzdmciLGF0dHJpYnV0ZXM6e3N0eWxlOiJkaXNwbGF5OiBub25lOyJ9LGNoaWxkcmVuOlt7dGFnOiJzeW1ib2wiLGF0dHJpYnV0ZXM6ZHQoZHQoe30scikse30se2lkOm99KSxjaGlsZHJlbjphfV19XX1mdW5jdGlvbiBmVWEocyl7dmFyIGU9WyJhcmlhLWxhYmVsIiwiYXJpYS1sYWJlbGxlZGJ5IiwidGl0bGUiLCJyb2xlIl07cmV0dXJuIGUuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdCBpbiBzfSl9ZnVuY3Rpb24gcDhlKHMpe3ZhciBlPXMuaWNvbnMsdD1lLm1haW4sYT1lLm1hc2sscj1zLnByZWZpeCxuPXMuaWNvbk5hbWUsbz1zLnRyYW5zZm9ybSxsPXMuc3ltYm9sLHA9cy5tYXNrSWQsZD1zLmV4dHJhLHU9cy53YXRjaGFibGUsYz11PT09dm9pZCAwPyExOnUsYj1hLmZvdW5kP2E6dCx2PWIud2lkdGgseD1iLmhlaWdodCxtPVtXdC5yZXBsYWNlbWVudENsYXNzLG4/IiIuY29uY2F0KFd0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChuKToiIl0uZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiBkLmNsYXNzZXMuaW5kZXhPZihDKT09PS0xfSkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiBDIT09IiJ8fCEhQ30pLmNvbmNhdChkLmNsYXNzZXMpLmpvaW4oIiAiKSxmPXtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOmR0KGR0KHt9LGQuYXR0cmlidXRlcykse30seyJkYXRhLXByZWZpeCI6ciwiZGF0YS1pY29uIjpuLGNsYXNzOm0scm9sZTpkLmF0dHJpYnV0ZXMucm9sZXx8ImltZyIsdmlld0JveDoiMCAwICIuY29uY2F0KHYsIiAiKS5jb25jYXQoeCl9KX07IWZVYShkLmF0dHJpYnV0ZXMpJiYhZC5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdJiYoZi5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdPSJ0cnVlIiksYyYmKGYuYXR0cmlidXRlc1tLM109IiIpO3ZhciB5PWR0KGR0KHt9LGYpLHt9LHtwcmVmaXg6cixpY29uTmFtZTpuLG1haW46dCxtYXNrOmEsbWFza0lkOnAsdHJhbnNmb3JtOm8sc3ltYm9sOmwsc3R5bGVzOmR0KHt9LGQuc3R5bGVzKX0pLE09YS5mb3VuZCYmdC5mb3VuZD9kaCgiZ2VuZXJhdGVBYnN0cmFjdE1hc2siLHkpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX06ZGgoImdlbmVyYXRlQWJzdHJhY3RJY29uIix5KXx8e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319LHo9TS5jaGlsZHJlbixOPU0uYXR0cmlidXRlcztyZXR1cm4geS5jaGlsZHJlbj16LHkuYXR0cmlidXRlcz1OLGw/aFVhKHkpOnBVYSh5KX1mdW5jdGlvbiBjX3Qocyl7dmFyIGU9cy5jb250ZW50LHQ9cy53aWR0aCxhPXMuaGVpZ2h0LHI9cy50cmFuc2Zvcm0sbj1zLmV4dHJhLG89cy53YXRjaGFibGUsbD1vPT09dm9pZCAwPyExOm8scD1kdChkdCh7fSxuLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczpuLmNsYXNzZXMuam9pbigiICIpfSk7bCYmKHBbSzNdPSIiKTt2YXIgZD1kdCh7fSxuLnN0eWxlcyk7czhlKHIpJiYoZC50cmFuc2Zvcm09cVZhKHt0cmFuc2Zvcm06cixzdGFydENlbnRlcmVkOiEwLHdpZHRoOnQsaGVpZ2h0OmF9KSxkWyItd2Via2l0LXRyYW5zZm9ybSJdPWQudHJhbnNmb3JtKTt2YXIgdT1IcmUoZCk7dS5sZW5ndGg+MCYmKHAuc3R5bGU9dSk7dmFyIGM9W107cmV0dXJuIGMucHVzaCh7dGFnOiJzcGFuIixhdHRyaWJ1dGVzOnAsY2hpbGRyZW46W2VdfSksY31mdW5jdGlvbiBtVWEocyl7dmFyIGU9cy5jb250ZW50LHQ9cy5leHRyYSxhPWR0KGR0KHt9LHQuYXR0cmlidXRlcykse30se2NsYXNzOnQuY2xhc3Nlcy5qb2luKCIgIil9KSxyPUhyZSh0LnN0eWxlcyk7ci5sZW5ndGg+MCYmKGEuc3R5bGU9cik7dmFyIG49W107cmV0dXJuIG4ucHVzaCh7dGFnOiJzcGFuIixhdHRyaWJ1dGVzOmEsY2hpbGRyZW46W2VdfSksbn1mdW5jdGlvbiBmOGUocyl7dmFyIGU9c1swXSx0PXNbMV0sYT1zLnNsaWNlKDQpLHI9UnJlKGEsMSksbj1yWzBdLG89bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9vPXt0YWc6ImciLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQodDhlLkdST1VQKX0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQodDhlLlNFQ09OREFSWSksZmlsbDoiY3VycmVudENvbG9yIixkOm5bMF19fSx7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntjbGFzczoiIi5jb25jYXQoV3QuY3NzUHJlZml4LCItIikuY29uY2F0KHQ4ZS5QUklNQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6blsxXX19XX06bz17dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntmaWxsOiJjdXJyZW50Q29sb3IiLGQ6bn19LHtmb3VuZDohMCx3aWR0aDplLGhlaWdodDp0LGljb246b319ZnVuY3Rpb24gYlVhKHMsZSl7IUFTdCYmIVd0LnNob3dNaXNzaW5nSWNvbnMmJnMmJmNvbnNvbGUuZXJyb3IoJ0ljb24gd2l0aCBuYW1lICInLmNvbmNhdChzLCciIGFuZCBwcmVmaXggIicpLmNvbmNhdChlLCciIGlzIG1pc3NpbmcuJykpfWZ1bmN0aW9uIG04ZShzLGUpe3ZhciB0PWU7cmV0dXJuIGU9PT0iZmEiJiZXdC5zdHlsZURlZmF1bHQhPT1udWxsJiYoZT1jaCgpKSxuZXcgUHJvbWlzZShmdW5jdGlvbihhLHIpe2lmKHQ9PT0iZmEiKXt2YXIgbj1zX3Qocyl8fHt9O3M9bi5pY29uTmFtZXx8cyxlPW4ucHJlZml4fHxlfWlmKHMmJmUmJmg4ZVtlXSYmaDhlW2VdW3NdKXt2YXIgbz1oOGVbZV1bc107cmV0dXJuIGEoZjhlKG8pKX1iVWEocyxlKSxhKGR0KGR0KHt9LGdVYSkse30se2ljb246V3Quc2hvd01pc3NpbmdJY29ucyYmcz9kaCgibWlzc2luZ0ljb25BYnN0cmFjdCIpfHx7fTp7fX0pKX0pfWZ1bmN0aW9uIHBfdChzKXt2YXIgZT1zLmdldEF0dHJpYnV0ZT9zLmdldEF0dHJpYnV0ZShLMyk6bnVsbDtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIHhVYShzKXt2YXIgZT1zLmdldEF0dHJpYnV0ZT9zLmdldEF0dHJpYnV0ZShZNWUpOm51bGwsdD1zLmdldEF0dHJpYnV0ZT9zLmdldEF0dHJpYnV0ZShaNWUpOm51bGw7cmV0dXJuIGUmJnR9ZnVuY3Rpb24geVVhKHMpe3JldHVybiBzJiZzLmNsYXNzTGlzdCYmcy5jbGFzc0xpc3QuY29udGFpbnMmJnMuY2xhc3NMaXN0LmNvbnRhaW5zKFd0LnJlcGxhY2VtZW50Q2xhc3MpfWZ1bmN0aW9uIHdVYSgpe2lmKFd0LmF1dG9SZXBsYWNlU3ZnPT09ITApcmV0dXJuIEdyZS5yZXBsYWNlO3ZhciBzPUdyZVtXdC5hdXRvUmVwbGFjZVN2Z107cmV0dXJuIHN8fEdyZS5yZXBsYWNlfWZ1bmN0aW9uIGtVYShzKXtyZXR1cm4gZGkuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIscyl9ZnVuY3Rpb24gU1VhKHMpe3JldHVybiBkaS5jcmVhdGVFbGVtZW50KHMpfWZ1bmN0aW9uIGhfdChzKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sdD1lLmNlRm4sYT10PT09dm9pZCAwP3MudGFnPT09InN2ZyI/a1VhOlNVYTp0O2lmKHR5cGVvZiBzPT0ic3RyaW5nIilyZXR1cm4gZGkuY3JlYXRlVGV4dE5vZGUocyk7dmFyIHI9YShzLnRhZyk7T2JqZWN0LmtleXMocy5hdHRyaWJ1dGVzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihvKXtyLnNldEF0dHJpYnV0ZShvLHMuYXR0cmlidXRlc1tvXSl9KTt2YXIgbj1zLmNoaWxkcmVufHxbXTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG8pe3IuYXBwZW5kQ2hpbGQoaF90KG8se2NlRm46YX0pKX0pLHJ9ZnVuY3Rpb24gX1VhKHMpe3ZhciBlPSIgIi5jb25jYXQocy5vdXRlckhUTUwsIiAiKTtyZXR1cm4gZT0iIi5jb25jYXQoZSwiRm9udCBBd2Vzb21lIGZvbnRhd2Vzb21lLmNvbSAiKSxlfWZ1bmN0aW9uIGZfdChzKXtzKCl9ZnVuY3Rpb24gbV90KHMsZSl7dmFyIHQ9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpXcmU7aWYocy5sZW5ndGg9PT0wKXQoKTtlbHNle3ZhciBhPWZfdDtXdC5tdXRhdGVBcHByb2FjaD09PUNWYSYmKGE9bmgucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxmX3QpLGEoZnVuY3Rpb24oKXt2YXIgcj13VWEoKSxuPWI4ZS5iZWdpbigibXV0YXRlIik7cy5tYXAociksbigpLHQoKX0pfX1mdW5jdGlvbiBnX3QoKXt2OGU9ITB9ZnVuY3Rpb24geDhlKCl7djhlPSExfWZ1bmN0aW9uIGJfdChzKXtpZihpU3QmJld0Lm9ic2VydmVNdXRhdGlvbnMpe3ZhciBlPXMudHJlZUNhbGxiYWNrLHQ9ZT09PXZvaWQgMD9XcmU6ZSxhPXMubm9kZUNhbGxiYWNrLHI9YT09PXZvaWQgMD9XcmU6YSxuPXMucHNldWRvRWxlbWVudHNDYWxsYmFjayxvPW49PT12b2lkIDA/V3JlOm4sbD1zLm9ic2VydmVNdXRhdGlvbnNSb290LHA9bD09PXZvaWQgMD9kaTpsO0tyZT1uZXcgaVN0KGZ1bmN0aW9uKGQpe2lmKCF2OGUpe3ZhciB1PWNoKCk7a2IoZCkuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLnR5cGU9PT0iY2hpbGRMaXN0IiYmYy5hZGRlZE5vZGVzLmxlbmd0aD4wJiYhcF90KGMuYWRkZWROb2Rlc1swXSkmJihXdC5zZWFyY2hQc2V1ZG9FbGVtZW50cyYmbyhjLnRhcmdldCksdChjLnRhcmdldCkpLGMudHlwZT09PSJhdHRyaWJ1dGVzIiYmYy50YXJnZXQucGFyZW50Tm9kZSYmV3Quc2VhcmNoUHNldWRvRWxlbWVudHMmJm8oW2MudGFyZ2V0XSwhMCksYy50eXBlPT09ImF0dHJpYnV0ZXMiJiZwX3QoYy50YXJnZXQpJiZ+UFZhLmluZGV4T2YoYy5hdHRyaWJ1dGVOYW1lKSlpZihjLmF0dHJpYnV0ZU5hbWU9PT0iY2xhc3MiJiZ4VWEoYy50YXJnZXQpKXt2YXIgYj1WcmUoYThlKGMudGFyZ2V0KSksdj1iLnByZWZpeCx4PWIuaWNvbk5hbWU7Yy50YXJnZXQuc2V0QXR0cmlidXRlKFk1ZSx2fHx1KSx4JiZjLnRhcmdldC5zZXRBdHRyaWJ1dGUoWjVlLHgpfWVsc2UgeVVhKGMudGFyZ2V0KSYmcihjLnRhcmdldCl9KX19KSxCMCYmS3JlLm9ic2VydmUocCx7Y2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSl9fWZ1bmN0aW9uIE1VYSgpe0tyZSYmS3JlLmRpc2Nvbm5lY3QoKX1mdW5jdGlvbiB6VWEocyl7dmFyIGU9cy5nZXRBdHRyaWJ1dGUoInN0eWxlIiksdD1bXTtyZXR1cm4gZSYmKHQ9ZS5zcGxpdCgiOyIpLnJlZHVjZShmdW5jdGlvbihhLHIpe3ZhciBuPXIuc3BsaXQoIjoiKSxvPW5bMF0sbD1uLnNsaWNlKDEpO3JldHVybiBvJiZsLmxlbmd0aD4wJiYoYVtvXT1sLmpvaW4oIjoiKS50cmltKCkpLGF9LHt9KSksdH1mdW5jdGlvbiBDVWEocyl7dmFyIGU9cy5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlZml4IiksdD1zLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIiksYT1zLmlubmVyVGV4dCE9PXZvaWQgMD9zLmlubmVyVGV4dC50cmltKCk6IiIscj1WcmUoYThlKHMpKTtyZXR1cm4gci5wcmVmaXh8fChyLnByZWZpeD1jaCgpKSxlJiZ0JiYoci5wcmVmaXg9ZSxyLmljb25OYW1lPXQpLHIuaWNvbk5hbWUmJnIucHJlZml4fHwoci5wcmVmaXgmJmEubGVuZ3RoPjAmJihyLmljb25OYW1lPVhWYShyLnByZWZpeCxzLmlubmVyVGV4dCl8fGM4ZShyLnByZWZpeCxLU3Qocy5pbm5lclRleHQpKSksIXIuaWNvbk5hbWUmJld0LmF1dG9GZXRjaFN2ZyYmcy5maXJzdENoaWxkJiZzLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKHIuaWNvbk5hbWU9cy5maXJzdENoaWxkLmRhdGEpKSxyfWZ1bmN0aW9uIFRVYShzKXt2YXIgZT1rYihzLmF0dHJpYnV0ZXMpLnJlZHVjZShmdW5jdGlvbih0LGEpe3JldHVybiB0Lm5hbWUhPT0iY2xhc3MiJiZ0Lm5hbWUhPT0ic3R5bGUiJiYodFthLm5hbWVdPWEudmFsdWUpLHR9LHt9KTtyZXR1cm4gZX1mdW5jdGlvbiAkVWEoKXtyZXR1cm57aWNvbk5hbWU6bnVsbCxwcmVmaXg6bnVsbCx0cmFuc2Zvcm06TWQsc3ltYm9sOiExLG1hc2s6e2ljb25OYW1lOm51bGwscHJlZml4Om51bGwscmVzdDpbXX0sbWFza0lkOm51bGwsZXh0cmE6e2NsYXNzZXM6W10sc3R5bGVzOnt9LGF0dHJpYnV0ZXM6e319fX1mdW5jdGlvbiB2X3Qocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOntzdHlsZVBhcnNlcjohMH0sdD1DVWEocyksYT10Lmljb25OYW1lLHI9dC5wcmVmaXgsbj10LnJlc3Qsbz1UVWEocyksbD1kOGUoInBhcnNlTm9kZUF0dHJpYnV0ZXMiLHt9LHMpLHA9ZS5zdHlsZVBhcnNlcj96VWEocyk6W107cmV0dXJuIGR0KHtpY29uTmFtZTphLHByZWZpeDpyLHRyYW5zZm9ybTpNZCxtYXNrOntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHJlc3Q6W119LG1hc2tJZDpudWxsLHN5bWJvbDohMSxleHRyYTp7Y2xhc3NlczpuLHN0eWxlczpwLGF0dHJpYnV0ZXM6b319LGwpfWZ1bmN0aW9uIHhfdChzKXt2YXIgZT1XdC5hdXRvUmVwbGFjZVN2Zz09PSJuZXN0Ij92X3Qocyx7c3R5bGVQYXJzZXI6ITF9KTp2X3Qocyk7cmV0dXJufmUuZXh0cmEuY2xhc3Nlcy5pbmRleE9mKE9TdCk/ZGgoImdlbmVyYXRlTGF5ZXJzVGV4dCIscyxlKTpkaCgiZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uIixzLGUpfWZ1bmN0aW9uIExVYSgpe3JldHVybltdLmNvbmNhdChCMSh6U3QpLEIxKCRTdCkpfWZ1bmN0aW9uIHlfdChzKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtpZighQjApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciB0PWRpLmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QsYT1pKGZ1bmN0aW9uKGMpe3JldHVybiB0LmFkZCgiIi5jb25jYXQoUFN0LCItIikuY29uY2F0KGMpKX0sImhjbEFkZCIpLHI9aShmdW5jdGlvbihjKXtyZXR1cm4gdC5yZW1vdmUoIiIuY29uY2F0KFBTdCwiLSIpLmNvbmNhdChjKSl9LCJoY2xSZW1vdmUiKSxuPVd0LmF1dG9GZXRjaFN2Zz9MVWEoKTpuU3QuY29uY2F0KE9iamVjdC5rZXlzKERVYSkpO24uaW5jbHVkZXMoImZhIil8fG4ucHVzaCgiZmEiKTt2YXIgbz1bIi4iLmNvbmNhdChPU3QsIjpub3QoWyIpLmNvbmNhdChLMywiXSkiKV0uY29uY2F0KG4ubWFwKGZ1bmN0aW9uKHUpe3JldHVybiIuIi5jb25jYXQodSwiOm5vdChbIikuY29uY2F0KEszLCJdKSIpfSkpLmpvaW4oIiwgIik7aWYoby5sZW5ndGg9PT0wKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgbD1bXTt0cnl7bD1rYihzLnF1ZXJ5U2VsZWN0b3JBbGwobykpfWNhdGNoe31pZihsLmxlbmd0aD4wKWEoInBlbmRpbmciKSxyKCJjb21wbGV0ZSIpO2Vsc2UgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBwPWI4ZS5iZWdpbigib25UcmVlIiksZD1sLnJlZHVjZShmdW5jdGlvbih1LGMpe3RyeXt2YXIgYj14X3QoYyk7YiYmdS5wdXNoKGIpfWNhdGNoKHYpe0FTdHx8di5uYW1lPT09Ik1pc3NpbmdJY29uIiYmY29uc29sZS5lcnJvcih2KX1yZXR1cm4gdX0sW10pO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih1LGMpe1Byb21pc2UuYWxsKGQpLnRoZW4oZnVuY3Rpb24oYil7bV90KGIsZnVuY3Rpb24oKXthKCJhY3RpdmUiKSxhKCJjb21wbGV0ZSIpLHIoInBlbmRpbmciKSx0eXBlb2YgZT09ImZ1bmN0aW9uIiYmZSgpLHAoKSx1KCl9KX0pLmNhdGNoKGZ1bmN0aW9uKGIpe3AoKSxjKGIpfSl9KX1mdW5jdGlvbiBFVWEocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOm51bGw7eF90KHMpLnRoZW4oZnVuY3Rpb24odCl7dCYmbV90KFt0XSxlKX0pfWZ1bmN0aW9uIFBVYShzKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9KGV8fHt9KS5pY29uP2U6dThlKGV8fHt9KSxyPXQubWFzaztyZXR1cm4gciYmKHI9KHJ8fHt9KS5pY29uP3I6dThlKHJ8fHt9KSkscyhhLGR0KGR0KHt9LHQpLHt9LHttYXNrOnJ9KSl9fWZ1bmN0aW9uIEJVYShzKXt2YXIgZT1zLnJlcGxhY2Uod190LCIiKTtyZXR1cm4gS1N0KEIxKGUpWzBdfHwiIil9ZnVuY3Rpb24gSFVhKHMpe3ZhciBlPXMuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mZWF0dXJlLXNldHRpbmdzIikuaW5jbHVkZXMoInNzMDEiKSx0PXMuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLGE9dC5yZXBsYWNlKHdfdCwiIikscj1hLmNvZGVQb2ludEF0KDApLG49cj49a190WzBdJiZyPD1rX3RbMV0sbz1hLmxlbmd0aD09PTI/YVswXT09PWFbMV06ITE7cmV0dXJuIG58fG98fGV9ZnVuY3Rpb24gcVVhKHMsZSl7dmFyIHQ9cy5yZXBsYWNlKC9eWyciXXxbJyJdJC9nLCIiKS50b0xvd2VyQ2FzZSgpLGE9cGFyc2VJbnQoZSkscj1pc05hTihhKT8ibm9ybWFsIjphO3JldHVybih5OGVbdF18fHt9KVtyXXx8RlVhW3RdfWZ1bmN0aW9uIF9fdChzLGUpe3ZhciB0PSIiLmNvbmNhdCh6VmEpLmNvbmNhdChlLnJlcGxhY2UoIjoiLCItIikpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhLHIpe2lmKHMuZ2V0QXR0cmlidXRlKHQpIT09bnVsbClyZXR1cm4gYSgpO3ZhciBuPWtiKHMuY2hpbGRyZW4pLG89bi5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIF8uZ2V0QXR0cmlidXRlKEs1ZSk9PT1lfSlbMF0sbD1uaC5nZXRDb21wdXRlZFN0eWxlKHMsZSkscD1sLmdldFByb3BlcnR5VmFsdWUoImZvbnQtZmFtaWx5IiksZD1wLm1hdGNoKExWYSksdT1sLmdldFByb3BlcnR5VmFsdWUoImZvbnQtd2VpZ2h0IiksYz1sLmdldFByb3BlcnR5VmFsdWUoImNvbnRlbnQiKTtpZihvJiYhZClyZXR1cm4gcy5yZW1vdmVDaGlsZChvKSxhKCk7aWYoZCYmYyE9PSJub25lIiYmYyE9PSIiKXt2YXIgYj1sLmdldFByb3BlcnR5VmFsdWUoImNvbnRlbnQiKSx2PXFVYShwLHUpLHg9QlVhKGIpLG09ZFswXS5zdGFydHNXaXRoKCJGb250QXdlc29tZSIpLGY9SFVhKGwpLHk9YzhlKHYseCksTT15O2lmKG0pe3ZhciB6PVFWYSh4KTt6Lmljb25OYW1lJiZ6LnByZWZpeCYmKHk9ei5pY29uTmFtZSx2PXoucHJlZml4KX1pZih5JiYhZiYmKCFvfHxvLmdldEF0dHJpYnV0ZShZNWUpIT09dnx8by5nZXRBdHRyaWJ1dGUoWjVlKSE9PU0pKXtzLnNldEF0dHJpYnV0ZSh0LE0pLG8mJnMucmVtb3ZlQ2hpbGQobyk7dmFyIE49JFVhKCksQz1OLmV4dHJhO0MuYXR0cmlidXRlc1tLNWVdPWUsbThlKHksdikudGhlbihmdW5jdGlvbihfKXt2YXIgTz1wOGUoZHQoZHQoe30sTikse30se2ljb25zOnttYWluOl8sbWFzazppX3QoKX0scHJlZml4OnYsaWNvbk5hbWU6TSxleHRyYTpDLHdhdGNoYWJsZTohMH0pKSwkPWRpLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTtlPT09Ijo6YmVmb3JlIj9zLmluc2VydEJlZm9yZSgkLHMuZmlyc3RDaGlsZCk6cy5hcHBlbmRDaGlsZCgkKSwkLm91dGVySFRNTD1PLm1hcChmdW5jdGlvbihFKXtyZXR1cm4gVmsoRSl9KS5qb2luKGAKYCkscy5yZW1vdmVBdHRyaWJ1dGUodCksYSgpfSkuY2F0Y2gocil9ZWxzZSBhKCl9ZWxzZSBhKCl9KX1mdW5jdGlvbiBqVWEocyl7cmV0dXJuIFByb21pc2UuYWxsKFtfX3QocywiOjpiZWZvcmUiKSxfX3QocywiOjphZnRlciIpXSl9ZnVuY3Rpb24gVlVhKHMpe3JldHVybiBzLnBhcmVudE5vZGUhPT1kb2N1bWVudC5oZWFkJiYhflRWYS5pbmRleE9mKHMudGFnTmFtZS50b1VwcGVyQ2FzZSgpKSYmIXMuZ2V0QXR0cmlidXRlKEs1ZSkmJighcy5wYXJlbnROb2RlfHxzLnBhcmVudE5vZGUudGFnTmFtZSE9PSJzdmciKX1mdW5jdGlvbiBNX3Qocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExO2lmKEIwKXt2YXIgdDtpZihlKXQ9cztlbHNlIGlmKFd0LnNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4pdD1zLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKTtlbHNle3ZhciBhPW5ldyBTZXQscj1BcmUoZG9jdW1lbnQuc3R5bGVTaGVldHMpLG47dHJ5e2ZvcihyLnMoKTshKG49ci5uKCkpLmRvbmU7KXt2YXIgbz1uLnZhbHVlO3RyeXt2YXIgbD1BcmUoby5jc3NSdWxlcykscDt0cnl7Zm9yKGwucygpOyEocD1sLm4oKSkuZG9uZTspe3ZhciBkPXAudmFsdWUsdT1XVWEoZC5zZWxlY3RvclRleHQpLGM9QXJlKHUpLGI7dHJ5e2ZvcihjLnMoKTshKGI9Yy5uKCkpLmRvbmU7KXt2YXIgdj1iLnZhbHVlO2EuYWRkKHYpfX1jYXRjaChtKXtjLmUobSl9ZmluYWxseXtjLmYoKX19fWNhdGNoKG0pe2wuZShtKX1maW5hbGx5e2wuZigpfX1jYXRjaChtKXtXdC5zZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzJiZjb25zb2xlLndhcm4oIkZvbnQgQXdlc29tZTogY2Fubm90IHBhcnNlIHN0eWxlc2hlZXQ6ICIuY29uY2F0KG8uaHJlZiwiICgiKS5jb25jYXQobS5tZXNzYWdlLGApCklmIGl0IGRlY2xhcmVzIGFueSBGb250IEF3ZXNvbWUgQ1NTIHBzZXVkby1lbGVtZW50cywgdGhleSB3aWxsIG5vdCBiZSByZW5kZXJlZCBhcyBTVkcgaWNvbnMuIEFkZCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiB0byB0aGUgPGxpbms+LCBlbmFibGUgc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiBmb3Igc2xvd2VyIGJ1dCBtb3JlIHRob3JvdWdoIERPTSBwYXJzaW5nLCBvciBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgYnkgc2V0dGluZyBzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIHRvIGZhbHNlLmApKX19fWNhdGNoKG0pe3IuZShtKX1maW5hbGx5e3IuZigpfWlmKCFhLnNpemUpcmV0dXJuO3ZhciB4PUFycmF5LmZyb20oYSkuam9pbigiLCAiKTt0cnl7dD1zLnF1ZXJ5U2VsZWN0b3JBbGwoeCl9Y2F0Y2h7fX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obSxmKXt2YXIgeT1rYih0KS5maWx0ZXIoVlVhKS5tYXAoalVhKSxNPWI4ZS5iZWdpbigic2VhcmNoUHNldWRvRWxlbWVudHMiKTtnX3QoKSxQcm9taXNlLmFsbCh5KS50aGVuKGZ1bmN0aW9uKCl7TSgpLHg4ZSgpLG0oKX0pLmNhdGNoKGZ1bmN0aW9uKCl7TSgpLHg4ZSgpLGYoKX0pfSl9fWZ1bmN0aW9uIFRfdChzKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITA7cmV0dXJuIHMuYXR0cmlidXRlcyYmKHMuYXR0cmlidXRlcy5maWxsfHxlKSYmKHMuYXR0cmlidXRlcy5maWxsPSJibGFjayIpLHN9ZnVuY3Rpb24gWlVhKHMpe3JldHVybiBzLnRhZz09PSJnIj9zLmNoaWxkcmVuOltzXX12YXIgUWt0LGo1ZSxKa3QsZVN0LHRTdCxLcWEsYVN0LHNTdCxuaCxkaSxpU3QsRnJlLEx2aSxCMCxyU3QsVjVlLFlxYSxacWEsb1N0LFhxYSxuU3QsX28sQmssbFN0LGNTdCxkU3QsdVN0LHBTdCxoU3QsZlN0LG1TdCxnU3QsYlN0LHZTdCx4U3QseVN0LHdTdCxrU3QsU1N0LF9TdCxRcWEsSnFhLGVqYSx0amEsYWphLHNqYSxpamEscmphLG9qYSxuamEsbGphLGNqYSxkamEsdWphLHBqYSxoamEsZmphLG1qYSxnamEsTVN0LEV2aSxiamEsdmphLHhqYSx5amEselN0LENTdCx3amEsa2phLFNqYSxfamEsTWphLFB2aSx6amEsQ2phLFRqYSxUU3QsVTVlLEJyZSwkamEsRGphLExqYSxFamEsUGphLElqYSxBamEsTmphLFJqYSxPamEsRmphLEJqYSxIamEscWphLGpqYSxWamEsVWphLFdqYSxHamEsS2phLFlqYSxaamEsWGphLFFqYSxKamEsZVZhLHRWYSxhVmEsc1ZhLGlWYSxyVmEsb1ZhLG5WYSxsVmEsY1ZhLGRWYSx1VmEscFZhLGhWYSxJdmksZlZhLG1WYSxnVmEsYlZhLEF2aSx2VmEseFZhLFc1ZSx5VmEsJFN0LHdWYSxEU3Qsa1ZhLFNWYSxfVmEsTVZhLEgwLEc1ZSxMU3QsRVN0LEszLEs1ZSx6VmEsWTVlLFo1ZSxQU3QsQ1ZhLFRWYSxJU3QsQVN0LE5TdCwkVmEsWDVlLFJTdCxRNWUsSjVlLGU4ZSxOdmksRFZhLE9TdCxMVmEsRVZhLFJ2aSxQVmEsdDhlLElWYSxxayxCU3Qsd2IsV3QsamssbGgsTWQsRlZhLGpWYSxWU3QsVlZhLHEwLEgxLFVTdCxXU3QscXJlLFdWYSxyOGUsbjhlLHExLE92aSxGdmksVWssR1ZhLFpTdCxLVmEsbDhlLFhTdCxRU3QsSlN0LGVfdCx0X3QsYV90LGlfdCxvX3QsYVVhLHNVYSxyVWEsbl90LFNiLF9iLG9VYSxsX3QsbFVhLGNVYSxkVWEsX2wsdVVhLGg4ZSxnVWEsZF90LGc4ZSxXayx2VWEsdV90LGI4ZSxXcmUsR3JlLHY4ZSxLcmUsRFVhLElVYSxBVWEsTlVhLFJVYSxPVWEsd190LGtfdCxTX3QseThlLEZVYSxVVWEsV1VhLEdVYSx6X3QsS1VhLENfdCxZVWEsdzhlLFhVYSxRVWEsSlVhLGVXYSx0V2EsYVdhLHNXYSxpV2EscldhLG9XYSxuV2EsR2ssbFdhLGNXYSxkV2EsRlN0LGs4ZT1nKCgpPT57aShINWUsIl9hcnJheUxpa2VUb0FycmF5Iik7aShPcWEsIl9hcnJheVdpdGhIb2xlcyIpO2koRnFhLCJfYXJyYXlXaXRob3V0SG9sZXMiKTtpKEJxYSwiX2NsYXNzQ2FsbENoZWNrIik7aShZa3QsIl9kZWZpbmVQcm9wZXJ0aWVzIik7aShIcWEsIl9jcmVhdGVDbGFzcyIpO2koQXJlLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIpO2koaGEsIl9kZWZpbmVQcm9wZXJ0eSIpO2kocXFhLCJfaW5oZXJpdHMiKTtpKGpxYSwiX2l0ZXJhYmxlVG9BcnJheSIpO2koVnFhLCJfaXRlcmFibGVUb0FycmF5TGltaXQiKTtpKFVxYSwiX25vbkl0ZXJhYmxlUmVzdCIpO2koV3FhLCJfbm9uSXRlcmFibGVTcHJlYWQiKTtpKFprdCwib3duS2V5cyIpO2koZHQsIl9vYmplY3RTcHJlYWQyIik7aShOcmUsIl9zZXRQcm90b3R5cGVPZiIpO2koUnJlLCJfc2xpY2VkVG9BcnJheSIpO2koQjEsIl90b0NvbnN1bWFibGVBcnJheSIpO2koR3FhLCJfdG9QcmltaXRpdmUiKTtpKFhrdCwiX3RvUHJvcGVydHlLZXkiKTtpKE9yZSwiX3R5cGVvZiIpO2kocTVlLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiKTtpKGFuLCJfd3JhcFJlZ0V4cCIpO1FrdD1pKGZ1bmN0aW9uKCl7fSwibm9vcCIpLGo1ZT17fSxKa3Q9e30sZVN0PW51bGwsdFN0PXttYXJrOlFrdCxtZWFzdXJlOlFrdH07dHJ5e3R5cGVvZiB3aW5kb3c8InUiJiYoajVlPXdpbmRvdyksdHlwZW9mIGRvY3VtZW50PCJ1IiYmKEprdD1kb2N1bWVudCksdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI8InUiJiYoZVN0PU11dGF0aW9uT2JzZXJ2ZXIpLHR5cGVvZiBwZXJmb3JtYW5jZTwidSImJih0U3Q9cGVyZm9ybWFuY2UpfWNhdGNoe31LcWE9ajVlLm5hdmlnYXRvcnx8e30sYVN0PUtxYS51c2VyQWdlbnQsc1N0PWFTdD09PXZvaWQgMD8iIjphU3Qsbmg9ajVlLGRpPUprdCxpU3Q9ZVN0LEZyZT10U3QsTHZpPSEhbmguZG9jdW1lbnQsQjA9ISFkaS5kb2N1bWVudEVsZW1lbnQmJiEhZGkuaGVhZCYmdHlwZW9mIGRpLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiImJnR5cGVvZiBkaS5jcmVhdGVFbGVtZW50PT0iZnVuY3Rpb24iLHJTdD1+c1N0LmluZGV4T2YoIk1TSUUiKXx8fnNTdC5pbmRleE9mKCJUcmlkZW50LyIpLFlxYT0vZmEoa3xrZHxzfHJ8bHx0fGR8ZHJ8ZGx8ZHR8YnxzbHJ8c2xwcnx3c2J8dGx8bnN8bmRzfGVzfGd0fGpyfGpmcnxqZHJ8dXNifHVmc2J8dWRzYnxjcnxzc3xzcnxzbHxzdHxzZHN8c2RyfHNkbHxzZHQpP1tcLVwgXS8sWnFhPS9Gb250ID9Bd2Vzb21lID8oWzU2NyBdKikoU29saWR8UmVndWxhcnxMaWdodHxUaGlufER1b3RvbmV8QnJhbmRzfEZyZWV8UHJvfFNoYXJwIER1b3RvbmV8U2hhcnB8S2l0fE5vdGRvZyBEdW98Tm90ZG9nfENoaXNlbHxFdGNofEdyYXBoaXRlfFRodW1icHJpbnR8SmVsbHkgRmlsbHxKZWxseSBEdW98SmVsbHl8VXRpbGl0eXxVdGlsaXR5IEZpbGx8VXRpbGl0eSBEdW98U2xhYiBQcmVzc3xTbGFifFdoaXRlYm9hcmQpPy4qL2ksb1N0PXtjbGFzc2ljOntmYToic29saWQiLGZhczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIixmYWI6ImJyYW5kcyIsImZhLWJyYW5kcyI6ImJyYW5kcyJ9LGR1b3RvbmU6e2ZhOiJzb2xpZCIsZmFkOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLCJmYS1kdW90b25lIjoic29saWQiLGZhZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFkbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYWR0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSxzaGFycDp7ZmE6InNvbGlkIixmYXNzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhc3I6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXN0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2ZhOiJzb2xpZCIsZmFzZHM6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFzZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzZGw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFzZHQ6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LHNsYWI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHI6InJlZ3VsYXIifSwic2xhYi1wcmVzcyI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHByOiJyZWd1bGFyIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoibGlnaHQiLGZhdGw6ImxpZ2h0In0sd2hpdGVib2FyZDp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhd3NiOiJzZW1pYm9sZCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoic29saWQiLGZhbnM6InNvbGlkIn0sIm5vdGRvZy1kdW8iOnsiZmEtc29saWQiOiJzb2xpZCIsZmFuZHM6InNvbGlkIn0sZXRjaDp7ImZhLXNvbGlkIjoic29saWQiLGZhZXM6InNvbGlkIn0sZ3JhcGhpdGU6eyJmYS10aGluIjoidGhpbiIsZmFndDoidGhpbiJ9LGplbGx5OnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhanI6InJlZ3VsYXIifSwiamVsbHktZmlsbCI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZnI6InJlZ3VsYXIifSwiamVsbHktZHVvIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpkcjoicmVndWxhciJ9LGNoaXNlbDp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWNyOiJyZWd1bGFyIn0sdXRpbGl0eTp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhdXNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVkc2I6InNlbWlib2xkIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVmc2I6InNlbWlib2xkIn19LFhxYT17R1JPVVA6ImR1b3RvbmUtZ3JvdXAiLFNXQVBfT1BBQ0lUWToic3dhcC1vcGFjaXR5IixQUklNQVJZOiJwcmltYXJ5IixTRUNPTkRBUlk6InNlY29uZGFyeSJ9LG5TdD1bImZhLWNsYXNzaWMiLCJmYS1kdW90b25lIiwiZmEtc2hhcnAiLCJmYS1zaGFycC1kdW90b25lIiwiZmEtdGh1bWJwcmludCIsImZhLXdoaXRlYm9hcmQiLCJmYS1ub3Rkb2ciLCJmYS1ub3Rkb2ctZHVvIiwiZmEtY2hpc2VsIiwiZmEtZXRjaCIsImZhLWdyYXBoaXRlIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxfbz0iY2xhc3NpYyIsQms9ImR1b3RvbmUiLGxTdD0ic2hhcnAiLGNTdD0ic2hhcnAtZHVvdG9uZSIsZFN0PSJjaGlzZWwiLHVTdD0iZXRjaCIscFN0PSJncmFwaGl0ZSIsaFN0PSJqZWxseSIsZlN0PSJqZWxseS1kdW8iLG1TdD0iamVsbHktZmlsbCIsZ1N0PSJub3Rkb2ciLGJTdD0ibm90ZG9nLWR1byIsdlN0PSJzbGFiIix4U3Q9InNsYWItcHJlc3MiLHlTdD0idGh1bWJwcmludCIsd1N0PSJ1dGlsaXR5IixrU3Q9InV0aWxpdHktZHVvIixTU3Q9InV0aWxpdHktZmlsbCIsX1N0PSJ3aGl0ZWJvYXJkIixRcWE9IkNsYXNzaWMiLEpxYT0iRHVvdG9uZSIsZWphPSJTaGFycCIsdGphPSJTaGFycCBEdW90b25lIixhamE9IkNoaXNlbCIsc2phPSJFdGNoIixpamE9IkdyYXBoaXRlIixyamE9IkplbGx5IixvamE9IkplbGx5IER1byIsbmphPSJKZWxseSBGaWxsIixsamE9Ik5vdGRvZyIsY2phPSJOb3Rkb2cgRHVvIixkamE9IlNsYWIiLHVqYT0iU2xhYiBQcmVzcyIscGphPSJUaHVtYnByaW50IixoamE9IlV0aWxpdHkiLGZqYT0iVXRpbGl0eSBEdW8iLG1qYT0iVXRpbGl0eSBGaWxsIixnamE9IldoaXRlYm9hcmQiLE1TdD1bX28sQmssbFN0LGNTdCxkU3QsdVN0LHBTdCxoU3QsZlN0LG1TdCxnU3QsYlN0LHZTdCx4U3QseVN0LHdTdCxrU3QsU1N0LF9TdF0sRXZpPShWNWU9e30saGEoaGEoaGEoaGEoaGEoaGEoaGEoaGEoaGEoaGEoVjVlLF9vLFFxYSksQmssSnFhKSxsU3QsZWphKSxjU3QsdGphKSxkU3QsYWphKSx1U3Qsc2phKSxwU3QsaWphKSxoU3QscmphKSxmU3Qsb2phKSxtU3QsbmphKSxoYShoYShoYShoYShoYShoYShoYShoYShoYShWNWUsZ1N0LGxqYSksYlN0LGNqYSksdlN0LGRqYSkseFN0LHVqYSkseVN0LHBqYSksd1N0LGhqYSksa1N0LGZqYSksU1N0LG1qYSksX1N0LGdqYSkpLGJqYT17Y2xhc3NpYzp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwiLDEwMDoiZmF0In0sZHVvdG9uZTp7OTAwOiJmYWQiLDQwMDoiZmFkciIsMzAwOiJmYWRsIiwxMDA6ImZhZHQifSxzaGFycDp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLDMwMDoiZmFzbCIsMTAwOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOns5MDA6ImZhc2RzIiw0MDA6ImZhc2RyIiwzMDA6ImZhc2RsIiwxMDA6ImZhc2R0In0sc2xhYjp7NDAwOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7NDAwOiJmYXNscHIifSx3aGl0ZWJvYXJkOns2MDA6ImZhd3NiIn0sdGh1bWJwcmludDp7MzAwOiJmYXRsIn0sbm90ZG9nOns5MDA6ImZhbnMifSwibm90ZG9nLWR1byI6ezkwMDoiZmFuZHMifSxldGNoOns5MDA6ImZhZXMifSxncmFwaGl0ZTp7MTAwOiJmYWd0In0sY2hpc2VsOns0MDA6ImZhY3IifSxqZWxseTp7NDAwOiJmYWpyIn0sImplbGx5LWZpbGwiOns0MDA6ImZhamZyIn0sImplbGx5LWR1byI6ezQwMDoiZmFqZHIifSx1dGlsaXR5Ons2MDA6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7NjAwOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7NjAwOiJmYXVmc2IifX0sdmphPXsiRm9udCBBd2Vzb21lIDcgRnJlZSI6ezkwMDoiZmFzIiw0MDA6ImZhciJ9LCJGb250IEF3ZXNvbWUgNyBQcm8iOns5MDA6ImZhcyIsNDAwOiJmYXIiLG5vcm1hbDoiZmFyIiwzMDA6ImZhbCIsMTAwOiJmYXQifSwiRm9udCBBd2Vzb21lIDcgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA3IER1b3RvbmUiOns5MDA6ImZhZCIsNDAwOiJmYWRyIixub3JtYWw6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIjp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLG5vcm1hbDoiZmFzciIsMzAwOiJmYXNsIiwxMDA6ImZhc3QifSwiRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSI6ezkwMDoiZmFzZHMiLDQwMDoiZmFzZHIiLG5vcm1hbDoiZmFzZHIiLDMwMDoiZmFzZGwiLDEwMDoiZmFzZHQifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkiOns0MDA6ImZhanIiLG5vcm1hbDoiZmFqciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsIjp7NDAwOiJmYWpmciIsbm9ybWFsOiJmYWpmciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8iOns0MDA6ImZhamRyIixub3JtYWw6ImZhamRyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIiOns0MDA6ImZhc2xyIixub3JtYWw6ImZhc2xyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MiOns0MDA6ImZhc2xwciIsbm9ybWFsOiJmYXNscHIifSwiRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCI6ezMwMDoiZmF0bCIsbm9ybWFsOiJmYXRsIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyI6ezkwMDoiZmFucyIsbm9ybWFsOiJmYW5zIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8iOns5MDA6ImZhbmRzIixub3JtYWw6ImZhbmRzIn0sIkZvbnQgQXdlc29tZSA3IEV0Y2giOns5MDA6ImZhZXMiLG5vcm1hbDoiZmFlcyJ9LCJGb250IEF3ZXNvbWUgNyBHcmFwaGl0ZSI6ezEwMDoiZmFndCIsbm9ybWFsOiJmYWd0In0sIkZvbnQgQXdlc29tZSA3IENoaXNlbCI6ezQwMDoiZmFjciIsbm9ybWFsOiJmYWNyIn0sIkZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQiOns2MDA6ImZhd3NiIixub3JtYWw6ImZhd3NiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkiOns2MDA6ImZhdXNiIixub3JtYWw6ImZhdXNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvIjp7NjAwOiJmYXVkc2IiLG5vcm1hbDoiZmF1ZHNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCI6ezYwMDoiZmF1ZnNiIixub3JtYWw6ImZhdWZzYiJ9fSx4amE9bmV3IE1hcChbWyJjbGFzc2ljIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImJyYW5kcyJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZHVvdG9uZSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWQiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc3MiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwLWR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzZHMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImNoaXNlbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWNyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJldGNoIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZ3JhcGhpdGUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFndCIsZGVmYXVsdFN0eWxlSWQ6InRoaW4iLHN0eWxlSWRzOlsidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjEwMH1dLFsiamVsbHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFqciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamRyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJqZWxseS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamZyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJub3Rkb2ciLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFucyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJub3Rkb2ctZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbmRzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNsYWIiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbInNsYWItcHJlc3MiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHByIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJ0aHVtYnByaW50Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdGwiLGRlZmF1bHRTdHlsZUlkOiJsaWdodCIsc3R5bGVJZHM6WyJsaWdodCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjMwMH1dLFsidXRpbGl0eSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ1dGlsaXR5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVkc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdWZzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ3aGl0ZWJvYXJkIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhd3NiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XV0pLHlqYT17Y2hpc2VsOntyZWd1bGFyOiJmYWNyIn0sY2xhc3NpYzp7YnJhbmRzOiJmYWIiLGxpZ2h0OiJmYWwiLHJlZ3VsYXI6ImZhciIsc29saWQ6ImZhcyIsdGhpbjoiZmF0In0sZHVvdG9uZTp7bGlnaHQ6ImZhZGwiLHJlZ3VsYXI6ImZhZHIiLHNvbGlkOiJmYWQiLHRoaW46ImZhZHQifSxldGNoOntzb2xpZDoiZmFlcyJ9LGdyYXBoaXRlOnt0aGluOiJmYWd0In0samVsbHk6e3JlZ3VsYXI6ImZhanIifSwiamVsbHktZHVvIjp7cmVndWxhcjoiZmFqZHIifSwiamVsbHktZmlsbCI6e3JlZ3VsYXI6ImZhamZyIn0sbm90ZG9nOntzb2xpZDoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7c29saWQ6ImZhbmRzIn0sc2hhcnA6e2xpZ2h0OiJmYXNsIixyZWd1bGFyOiJmYXNyIixzb2xpZDoiZmFzcyIsdGhpbjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7bGlnaHQ6ImZhc2RsIixyZWd1bGFyOiJmYXNkciIsc29saWQ6ImZhc2RzIix0aGluOiJmYXNkdCJ9LHNsYWI6e3JlZ3VsYXI6ImZhc2xyIn0sInNsYWItcHJlc3MiOntyZWd1bGFyOiJmYXNscHIifSx0aHVtYnByaW50OntsaWdodDoiZmF0bCJ9LHV0aWxpdHk6e3NlbWlib2xkOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6e3NlbWlib2xkOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7c2VtaWJvbGQ6ImZhdWZzYiJ9LHdoaXRlYm9hcmQ6e3NlbWlib2xkOiJmYXdzYiJ9fSx6U3Q9WyJmYWsiLCJmYS1raXQiLCJmYWtkIiwiZmEta2l0LWR1b3RvbmUiXSxDU3Q9e2tpdDp7ZmFrOiJraXQiLCJmYS1raXQiOiJraXQifSwia2l0LWR1b3RvbmUiOntmYWtkOiJraXQtZHVvdG9uZSIsImZhLWtpdC1kdW90b25lIjoia2l0LWR1b3RvbmUifX0sd2phPVsia2l0Il0sa2phPSJraXQiLFNqYT0ia2l0LWR1b3RvbmUiLF9qYT0iS2l0IixNamE9IktpdCBEdW90b25lIixQdmk9aGEoaGEoe30sa2phLF9qYSksU2phLE1qYSksemphPXtraXQ6eyJmYS1raXQiOiJmYWsifSwia2l0LWR1b3RvbmUiOnsiZmEta2l0LWR1b3RvbmUiOiJmYWtkIn19LENqYT17IkZvbnQgQXdlc29tZSBLaXQiOns0MDA6ImZhayIsbm9ybWFsOiJmYWsifSwiRm9udCBBd2Vzb21lIEtpdCBEdW90b25lIjp7NDAwOiJmYWtkIixub3JtYWw6ImZha2QifX0sVGphPXtraXQ6e2ZhazoiZmEta2l0In0sImtpdC1kdW90b25lIjp7ZmFrZDoiZmEta2l0LWR1b3RvbmUifX0sVFN0PXtraXQ6e2tpdDoiZmFrIn0sImtpdC1kdW90b25lIjp7ImtpdC1kdW90b25lIjoiZmFrZCJ9fSxCcmU9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSwkamE9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1ncmFwaGl0ZSIsImZhLWplbGx5IiwiZmEtamVsbHktZmlsbCIsImZhLWplbGx5LWR1byIsImZhLXNsYWIiLCJmYS1zbGFiLXByZXNzIiwiZmEtdXRpbGl0eSIsImZhLXV0aWxpdHktZHVvIiwiZmEtdXRpbGl0eS1maWxsIl0sRGphPSJjbGFzc2ljIixMamE9ImR1b3RvbmUiLEVqYT0ic2hhcnAiLFBqYT0ic2hhcnAtZHVvdG9uZSIsSWphPSJjaGlzZWwiLEFqYT0iZXRjaCIsTmphPSJncmFwaGl0ZSIsUmphPSJqZWxseSIsT2phPSJqZWxseS1kdW8iLEZqYT0iamVsbHktZmlsbCIsQmphPSJub3Rkb2ciLEhqYT0ibm90ZG9nLWR1byIscWphPSJzbGFiIixqamE9InNsYWItcHJlc3MiLFZqYT0idGh1bWJwcmludCIsVWphPSJ1dGlsaXR5IixXamE9InV0aWxpdHktZHVvIixHamE9InV0aWxpdHktZmlsbCIsS2phPSJ3aGl0ZWJvYXJkIixZamE9IkNsYXNzaWMiLFpqYT0iRHVvdG9uZSIsWGphPSJTaGFycCIsUWphPSJTaGFycCBEdW90b25lIixKamE9IkNoaXNlbCIsZVZhPSJFdGNoIix0VmE9IkdyYXBoaXRlIixhVmE9IkplbGx5IixzVmE9IkplbGx5IER1byIsaVZhPSJKZWxseSBGaWxsIixyVmE9Ik5vdGRvZyIsb1ZhPSJOb3Rkb2cgRHVvIixuVmE9IlNsYWIiLGxWYT0iU2xhYiBQcmVzcyIsY1ZhPSJUaHVtYnByaW50IixkVmE9IlV0aWxpdHkiLHVWYT0iVXRpbGl0eSBEdW8iLHBWYT0iVXRpbGl0eSBGaWxsIixoVmE9IldoaXRlYm9hcmQiLEl2aT0oVTVlPXt9LGhhKGhhKGhhKGhhKGhhKGhhKGhhKGhhKGhhKGhhKFU1ZSxEamEsWWphKSxMamEsWmphKSxFamEsWGphKSxQamEsUWphKSxJamEsSmphKSxBamEsZVZhKSxOamEsdFZhKSxSamEsYVZhKSxPamEsc1ZhKSxGamEsaVZhKSxoYShoYShoYShoYShoYShoYShoYShoYShoYShVNWUsQmphLHJWYSksSGphLG9WYSkscWphLG5WYSksamphLGxWYSksVmphLGNWYSksVWphLGRWYSksV2phLHVWYSksR2phLHBWYSksS2phLGhWYSkpLGZWYT0ia2l0IixtVmE9ImtpdC1kdW90b25lIixnVmE9IktpdCIsYlZhPSJLaXQgRHVvdG9uZSIsQXZpPWhhKGhhKHt9LGZWYSxnVmEpLG1WYSxiVmEpLHZWYT17Y2xhc3NpYzp7ImZhLWJyYW5kcyI6ImZhYiIsImZhLWR1b3RvbmUiOiJmYWQiLCJmYS1saWdodCI6ImZhbCIsImZhLXJlZ3VsYXIiOiJmYXIiLCJmYS1zb2xpZCI6ImZhcyIsImZhLXRoaW4iOiJmYXQifSxkdW90b25lOnsiZmEtcmVndWxhciI6ImZhZHIiLCJmYS1saWdodCI6ImZhZGwiLCJmYS10aGluIjoiZmFkdCJ9LHNoYXJwOnsiZmEtc29saWQiOiJmYXNzIiwiZmEtcmVndWxhciI6ImZhc3IiLCJmYS1saWdodCI6ImZhc2wiLCJmYS10aGluIjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7ImZhLXNvbGlkIjoiZmFzZHMiLCJmYS1yZWd1bGFyIjoiZmFzZHIiLCJmYS1saWdodCI6ImZhc2RsIiwiZmEtdGhpbiI6ImZhc2R0In0sc2xhYjp7ImZhLXJlZ3VsYXIiOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7ImZhLXJlZ3VsYXIiOiJmYXNscHIifSx3aGl0ZWJvYXJkOnsiZmEtc2VtaWJvbGQiOiJmYXdzYiJ9LHRodW1icHJpbnQ6eyJmYS1saWdodCI6ImZhdGwifSxub3Rkb2c6eyJmYS1zb2xpZCI6ImZhbnMifSwibm90ZG9nLWR1byI6eyJmYS1zb2xpZCI6ImZhbmRzIn0sZXRjaDp7ImZhLXNvbGlkIjoiZmFlcyJ9LGdyYXBoaXRlOnsiZmEtdGhpbiI6ImZhZ3QifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJmYWpyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6ImZhamZyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoiZmFqZHIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoiZmFjciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7ImZhLXNlbWlib2xkIjoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6ImZhdWZzYiJ9fSx4VmE9e2NsYXNzaWM6WyJmYXMiLCJmYXIiLCJmYWwiLCJmYXQiLCJmYWQiXSxkdW90b25lOlsiZmFkciIsImZhZGwiLCJmYWR0Il0sc2hhcnA6WyJmYXNzIiwiZmFzciIsImZhc2wiLCJmYXN0Il0sInNoYXJwLWR1b3RvbmUiOlsiZmFzZHMiLCJmYXNkciIsImZhc2RsIiwiZmFzZHQiXSxzbGFiOlsiZmFzbHIiXSwic2xhYi1wcmVzcyI6WyJmYXNscHIiXSx3aGl0ZWJvYXJkOlsiZmF3c2IiXSx0aHVtYnByaW50OlsiZmF0bCJdLG5vdGRvZzpbImZhbnMiXSwibm90ZG9nLWR1byI6WyJmYW5kcyJdLGV0Y2g6WyJmYWVzIl0sZ3JhcGhpdGU6WyJmYWd0Il0samVsbHk6WyJmYWpyIl0sImplbGx5LWZpbGwiOlsiZmFqZnIiXSwiamVsbHktZHVvIjpbImZhamRyIl0sY2hpc2VsOlsiZmFjciJdLHV0aWxpdHk6WyJmYXVzYiJdLCJ1dGlsaXR5LWR1byI6WyJmYXVkc2IiXSwidXRpbGl0eS1maWxsIjpbImZhdWZzYiJdfSxXNWU9e2NsYXNzaWM6e2ZhYjoiZmEtYnJhbmRzIixmYWQ6ImZhLWR1b3RvbmUiLGZhbDoiZmEtbGlnaHQiLGZhcjoiZmEtcmVndWxhciIsZmFzOiJmYS1zb2xpZCIsZmF0OiJmYS10aGluIn0sZHVvdG9uZTp7ZmFkcjoiZmEtcmVndWxhciIsZmFkbDoiZmEtbGlnaHQiLGZhZHQ6ImZhLXRoaW4ifSxzaGFycDp7ZmFzczoiZmEtc29saWQiLGZhc3I6ImZhLXJlZ3VsYXIiLGZhc2w6ImZhLWxpZ2h0IixmYXN0OiJmYS10aGluIn0sInNoYXJwLWR1b3RvbmUiOntmYXNkczoiZmEtc29saWQiLGZhc2RyOiJmYS1yZWd1bGFyIixmYXNkbDoiZmEtbGlnaHQiLGZhc2R0OiJmYS10aGluIn0sc2xhYjp7ZmFzbHI6ImZhLXJlZ3VsYXIifSwic2xhYi1wcmVzcyI6e2Zhc2xwcjoiZmEtcmVndWxhciJ9LHdoaXRlYm9hcmQ6e2Zhd3NiOiJmYS1zZW1pYm9sZCJ9LHRodW1icHJpbnQ6e2ZhdGw6ImZhLWxpZ2h0In0sbm90ZG9nOntmYW5zOiJmYS1zb2xpZCJ9LCJub3Rkb2ctZHVvIjp7ZmFuZHM6ImZhLXNvbGlkIn0sZXRjaDp7ZmFlczoiZmEtc29saWQifSxncmFwaGl0ZTp7ZmFndDoiZmEtdGhpbiJ9LGplbGx5OntmYWpyOiJmYS1yZWd1bGFyIn0sImplbGx5LWZpbGwiOntmYWpmcjoiZmEtcmVndWxhciJ9LCJqZWxseS1kdW8iOntmYWpkcjoiZmEtcmVndWxhciJ9LGNoaXNlbDp7ZmFjcjoiZmEtcmVndWxhciJ9LHV0aWxpdHk6e2ZhdXNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6e2ZhdWRzYjoiZmEtc2VtaWJvbGQifSwidXRpbGl0eS1maWxsIjp7ZmF1ZnNiOiJmYS1zZW1pYm9sZCJ9fSx5VmE9WyJmYS1zb2xpZCIsImZhLXJlZ3VsYXIiLCJmYS1saWdodCIsImZhLXRoaW4iLCJmYS1kdW90b25lIiwiZmEtYnJhbmRzIiwiZmEtc2VtaWJvbGQiXSwkU3Q9WyJmYSIsImZhcyIsImZhciIsImZhbCIsImZhdCIsImZhZCIsImZhZHIiLCJmYWRsIiwiZmFkdCIsImZhYiIsImZhc3MiLCJmYXNyIiwiZmFzbCIsImZhc3QiLCJmYXNkcyIsImZhc2RyIiwiZmFzZGwiLCJmYXNkdCIsImZhc2xyIiwiZmFzbHByIiwiZmF3c2IiLCJmYXRsIiwiZmFucyIsImZhbmRzIiwiZmFlcyIsImZhZ3QiLCJmYWpyIiwiZmFqZnIiLCJmYWpkciIsImZhY3IiLCJmYXVzYiIsImZhdWRzYiIsImZhdWZzYiJdLmNvbmNhdCgkamEseVZhKSx3VmE9WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iLCJkdW90b25lIiwiYnJhbmRzIiwic2VtaWJvbGQiXSxEU3Q9WzEsMiwzLDQsNSw2LDcsOCw5LDEwXSxrVmE9RFN0LmNvbmNhdChbMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjBdKSxTVmE9WyJhdyIsImZ3IiwicHVsbC1sZWZ0IiwicHVsbC1yaWdodCJdLF9WYT1bXS5jb25jYXQoQjEoT2JqZWN0LmtleXMoeFZhKSksd1ZhLFNWYSxbIjJ4cyIsInhzIiwic20iLCJsZyIsInhsIiwiMnhsIiwiYmVhdCIsImJvcmRlciIsImZhZGUiLCJiZWF0LWZhZGUiLCJib3VuY2UiLCJmbGlwLWJvdGgiLCJmbGlwLWhvcml6b250YWwiLCJmbGlwLXZlcnRpY2FsIiwiZmxpcCIsImludmVyc2UiLCJsYXllcnMiLCJsYXllcnMtYm90dG9tLWxlZnQiLCJsYXllcnMtYm90dG9tLXJpZ2h0IiwibGF5ZXJzLWNvdW50ZXIiLCJsYXllcnMtdGV4dCIsImxheWVycy10b3AtbGVmdCIsImxheWVycy10b3AtcmlnaHQiLCJsaSIsInB1bGwtZW5kIiwicHVsbC1zdGFydCIsInB1bHNlIiwicm90YXRlLTE4MCIsInJvdGF0ZS0yNzAiLCJyb3RhdGUtOTAiLCJyb3RhdGUtYnkiLCJzaGFrZSIsInNwaW4tcHVsc2UiLCJzcGluLXJldmVyc2UiLCJzcGluIiwic3RhY2stMXgiLCJzdGFjay0yeCIsInN0YWNrIiwidWwiLCJ3aWR0aC1hdXRvIiwid2lkdGgtZml4ZWQiLEJyZS5HUk9VUCxCcmUuU1dBUF9PUEFDSVRZLEJyZS5QUklNQVJZLEJyZS5TRUNPTkRBUlldKS5jb25jYXQoRFN0Lm1hcChmdW5jdGlvbihzKXtyZXR1cm4iIi5jb25jYXQocywieCIpfSkpLmNvbmNhdChrVmEubWFwKGZ1bmN0aW9uKHMpe3JldHVybiJ3LSIuY29uY2F0KHMpfSkpLE1WYT17IkZvbnQgQXdlc29tZSA1IEZyZWUiOns5MDA6ImZhcyIsNDAwOiJmYXIifSwiRm9udCBBd2Vzb21lIDUgUHJvIjp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwifSwiRm9udCBBd2Vzb21lIDUgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA1IER1b3RvbmUiOns5MDA6ImZhZCJ9fSxIMD0iX19fRk9OVF9BV0VTT01FX19fIixHNWU9MTYsTFN0PSJmYSIsRVN0PSJzdmctaW5saW5lLS1mYSIsSzM9ImRhdGEtZmEtaTJzdmciLEs1ZT0iZGF0YS1mYS1wc2V1ZG8tZWxlbWVudCIselZhPSJkYXRhLWZhLXBzZXVkby1lbGVtZW50LXBlbmRpbmciLFk1ZT0iZGF0YS1wcmVmaXgiLFo1ZT0iZGF0YS1pY29uIixQU3Q9ImZvbnRhd2Vzb21lLWkyc3ZnIixDVmE9ImFzeW5jIixUVmE9WyJIVE1MIiwiSEVBRCIsIlNUWUxFIiwiU0NSSVBUIl0sSVN0PVsiOjpiZWZvcmUiLCI6OmFmdGVyIiwiOmJlZm9yZSIsIjphZnRlciJdLEFTdD0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSkoKTtpKEhrLCJmYW1pbHlQcm94eSIpO05TdD1kdCh7fSxvU3QpO05TdFtfb109ZHQoZHQoZHQoZHQoe30seyJmYS1kdW90b25lIjoiZHVvdG9uZSJ9KSxvU3RbX29dKSxDU3Qua2l0KSxDU3RbImtpdC1kdW90b25lIl0pOyRWYT1IayhOU3QpLFg1ZT1kdCh7fSx5amEpO1g1ZVtfb109ZHQoZHQoZHQoZHQoe30se2R1b3RvbmU6ImZhZCJ9KSxYNWVbX29dKSxUU3Qua2l0KSxUU3RbImtpdC1kdW90b25lIl0pO1JTdD1IayhYNWUpLFE1ZT1kdCh7fSxXNWUpO1E1ZVtfb109ZHQoZHQoe30sUTVlW19vXSksVGphLmtpdCk7SjVlPUhrKFE1ZSksZThlPWR0KHt9LHZWYSk7ZThlW19vXT1kdChkdCh7fSxlOGVbX29dKSx6amEua2l0KTtOdmk9SGsoZThlKSxEVmE9WXFhLE9TdD0iZmEtbGF5ZXJzLXRleHQiLExWYT1acWEsRVZhPWR0KHt9LGJqYSksUnZpPUhrKEVWYSksUFZhPVsiY2xhc3MiLCJkYXRhLXByZWZpeCIsImRhdGEtaWNvbiIsImRhdGEtZmEtdHJhbnNmb3JtIiwiZGF0YS1mYS1tYXNrIl0sdDhlPVhxYSxJVmE9W10uY29uY2F0KEIxKHdqYSksQjEoX1ZhKSkscWs9bmguRm9udEF3ZXNvbWVDb25maWd8fHt9O2koQVZhLCJnZXRBdHRyQ29uZmlnIik7aShOVmEsImNvZXJjZSIpLGRpJiZ0eXBlb2YgZGkucXVlcnlTZWxlY3Rvcj09ImZ1bmN0aW9uIiYmKEZTdD1bWyJkYXRhLWZhbWlseS1wcmVmaXgiLCJmYW1pbHlQcmVmaXgiXSxbImRhdGEtY3NzLXByZWZpeCIsImNzc1ByZWZpeCJdLFsiZGF0YS1mYW1pbHktZGVmYXVsdCIsImZhbWlseURlZmF1bHQiXSxbImRhdGEtc3R5bGUtZGVmYXVsdCIsInN0eWxlRGVmYXVsdCJdLFsiZGF0YS1yZXBsYWNlbWVudC1jbGFzcyIsInJlcGxhY2VtZW50Q2xhc3MiXSxbImRhdGEtYXV0by1yZXBsYWNlLXN2ZyIsImF1dG9SZXBsYWNlU3ZnIl0sWyJkYXRhLWF1dG8tYWRkLWNzcyIsImF1dG9BZGRDc3MiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cyIsInNlYXJjaFBzZXVkb0VsZW1lbnRzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtd2FybmluZ3MiLCJzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtZnVsbC1zY2FuIiwic2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiJdLFsiZGF0YS1vYnNlcnZlLW11dGF0aW9ucyIsIm9ic2VydmVNdXRhdGlvbnMiXSxbImRhdGEtbXV0YXRlLWFwcHJvYWNoIiwibXV0YXRlQXBwcm9hY2giXSxbImRhdGEta2VlcC1vcmlnaW5hbC1zb3VyY2UiLCJrZWVwT3JpZ2luYWxTb3VyY2UiXSxbImRhdGEtbWVhc3VyZS1wZXJmb3JtYW5jZSIsIm1lYXN1cmVQZXJmb3JtYW5jZSJdLFsiZGF0YS1zaG93LW1pc3NpbmctaWNvbnMiLCJzaG93TWlzc2luZ0ljb25zIl1dLEZTdC5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciBlPVJyZShzLDIpLHQ9ZVswXSxhPWVbMV0scj1OVmEoQVZhKHQpKTtyIT1udWxsJiYocWtbYV09cil9KSk7QlN0PXtzdHlsZURlZmF1bHQ6InNvbGlkIixmYW1pbHlEZWZhdWx0Ol9vLGNzc1ByZWZpeDpMU3QscmVwbGFjZW1lbnRDbGFzczpFU3QsYXV0b1JlcGxhY2VTdmc6ITAsYXV0b0FkZENzczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50czohMSxzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzOiEwLHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW46ITEsb2JzZXJ2ZU11dGF0aW9uczohMCxtdXRhdGVBcHByb2FjaDoiYXN5bmMiLGtlZXBPcmlnaW5hbFNvdXJjZTohMCxtZWFzdXJlUGVyZm9ybWFuY2U6ITEsc2hvd01pc3NpbmdJY29uczohMH07cWsuZmFtaWx5UHJlZml4JiYocWsuY3NzUHJlZml4PXFrLmZhbWlseVByZWZpeCk7d2I9ZHQoZHQoe30sQlN0KSxxayk7d2IuYXV0b1JlcGxhY2VTdmd8fCh3Yi5vYnNlcnZlTXV0YXRpb25zPSExKTtXdD17fTtPYmplY3Qua2V5cyhCU3QpLmZvckVhY2goZnVuY3Rpb24ocyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFd0LHMse2VudW1lcmFibGU6ITAsc2V0OmkoZnVuY3Rpb24odCl7d2Jbc109dCxqay5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKFd0KX0pfSwic2V0IiksZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gd2Jbc119LCJnZXQiKX0pfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFd0LCJmYW1pbHlQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLHNldDppKGZ1bmN0aW9uKGUpe3diLmNzc1ByZWZpeD1lLGprLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQoV3QpfSl9LCJzZXQiKSxnZXQ6aShmdW5jdGlvbigpe3JldHVybiB3Yi5jc3NQcmVmaXh9LCJnZXQiKX0pLG5oLkZvbnRBd2Vzb21lQ29uZmlnPVd0O2prPVtdO2koUlZhLCJvbkNoYW5nZSIpO2xoPUc1ZSxNZD17c2l6ZToxNix4OjAseTowLHJvdGF0ZTowLGZsaXBYOiExLGZsaXBZOiExfTtpKE9WYSwiaW5zZXJ0Q3NzIik7RlZhPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7aShIU3QsIm5leHRVbmlxdWVJZCIpO2koa2IsInRvQXJyYXkiKTtpKGE4ZSwiY2xhc3NBcnJheSIpO2kocVN0LCJodG1sRXNjYXBlIik7aShCVmEsImpvaW5BdHRyaWJ1dGVzIik7aShIcmUsImpvaW5TdHlsZXMiKTtpKHM4ZSwidHJhbnNmb3JtSXNNZWFuaW5nZnVsIik7aShIVmEsInRyYW5zZm9ybUZvclN2ZyIpO2kocVZhLCJ0cmFuc2Zvcm1Gb3JDc3MiKTtqVmE9YDpyb290LCA6aG9zdCB7CiAgLS1mYS1mb250LXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBGcmVlJzsKICAtLWZhLWZvbnQtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRnJlZSc7CiAgLS1mYS1mb250LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBQcm8nOwogIC0tZmEtZm9udC10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBQcm8nOwogIC0tZmEtZm9udC1kdW90b25lOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWJyYW5kczogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgQnJhbmRzJzsKICAtLWZhLWZvbnQtc2hhcnAtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2xhYi1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTbGFiJzsKICAtLWZhLWZvbnQtc2xhYi1wcmVzcy1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTbGFiIFByZXNzJzsKICAtLWZhLWZvbnQtd2hpdGVib2FyZC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgV2hpdGVib2FyZCc7CiAgLS1mYS1mb250LXRodW1icHJpbnQtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFRodW1icHJpbnQnOwogIC0tZmEtZm9udC1ub3Rkb2ctc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IE5vdGRvZyc7CiAgLS1mYS1mb250LW5vdGRvZy1kdW8tc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8nOwogIC0tZmEtZm9udC1ldGNoLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBFdGNoJzsKICAtLWZhLWZvbnQtZ3JhcGhpdGUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgR3JhcGhpdGUnOwogIC0tZmEtZm9udC1qZWxseS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSc7CiAgLS1mYS1mb250LWplbGx5LWZpbGwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHkgRmlsbCc7CiAgLS1mYS1mb250LWplbGx5LWR1by1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8nOwogIC0tZmEtZm9udC1jaGlzZWwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgQ2hpc2VsJzsKICAtLWZhLWZvbnQtdXRpbGl0eS1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSc7CiAgLS1mYS1mb250LXV0aWxpdHktZHVvLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBVdGlsaXR5IER1byc7CiAgLS1mYS1mb250LXV0aWxpdHktZmlsbC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBGaWxsJzsKfQoKLnN2Zy1pbmxpbmUtLWZhIHsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKICBkaXNwbGF5OiB2YXIoLS1mYS1kaXNwbGF5LCBpbmxpbmUtYmxvY2spOwogIGhlaWdodDogMWVtOwogIG92ZXJmbG93OiB2aXNpYmxlOwogIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLTJ4cyB7CiAgdmVydGljYWwtYWxpZ246IDAuMWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS14cyB7CiAgdmVydGljYWwtYWxpZ246IDBlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtc20gewogIHZlcnRpY2FsLWFsaWduOiAtMC4wNzE0Mjg1NzE0ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLWxnIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMmVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS14bCB7CiAgdmVydGljYWwtYWxpZ246IC0wLjI1ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLTJ4bCB7CiAgdmVydGljYWwtYWxpZ246IC0wLjMxMjVlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtcHVsbC1sZWZ0LAouc3ZnLWlubGluZS0tZmEgLmZhLXB1bGwtc3RhcnQgewogIGZsb2F0OiBpbmxpbmUtc3RhcnQ7CiAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtcmlnaHQsCi5zdmctaW5saW5lLS1mYSAuZmEtcHVsbC1lbmQgewogIGZsb2F0OiBpbmxpbmUtZW5kOwogIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLWxpIHsKICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7CiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSkpOwogIGluc2V0LWJsb2NrLXN0YXJ0OiAwLjI1ZW07IC8qIHN5bmNpbmcgdmVydGljYWwgYWxpZ25tZW50IHdpdGggV2ViIEZvbnQgcmVuZGVyaW5nICovCn0KCi5mYS1sYXllcnMtY291bnRlciwgLmZhLWxheWVycy10ZXh0IHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLmZhLWxheWVycyB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMWVtOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCwgMS4yNWVtKTsKfQouZmEtbGF5ZXJzIC5zdmctaW5saW5lLS1mYSB7CiAgaW5zZXQ6IDA7CiAgbWFyZ2luOiBhdXRvOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwp9CgouZmEtbGF5ZXJzLXRleHQgewogIGxlZnQ6IDUwJTsKICB0b3A6IDUwJTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwp9CgouZmEtbGF5ZXJzLWNvdW50ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZhLWNvdW50ZXItYmFja2dyb3VuZC1jb2xvciwgI2ZmMjUzYSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtY291bnRlci1ib3JkZXItcmFkaXVzLCAxZW0pOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS1mYS1jb3VudGVyLWxpbmUtaGVpZ2h0LCAxKTsKICBtYXgtd2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWF4LXdpZHRoLCA1ZW0pOwogIG1pbi13aWR0aDogdmFyKC0tZmEtY291bnRlci1taW4td2lkdGgsIDEuNWVtKTsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBhZGRpbmc6IHZhcigtLWZhLWNvdW50ZXItcGFkZGluZywgMC4yNWVtIDAuNWVtKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWNvdW50ZXItc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7Cn0KCi5mYS1sYXllcnMtYm90dG9tLXJpZ2h0IHsKICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0b3A6IGF1dG87CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7Cn0KCi5mYS1sYXllcnMtYm90dG9tLWxlZnQgewogIGJvdHRvbTogdmFyKC0tZmEtYm90dG9tLCAwKTsKICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTsKICByaWdodDogYXV0bzsKICB0b3A6IGF1dG87CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDsKfQoKLmZhLWxheWVycy10b3AtcmlnaHQgewogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLXRvcC1sZWZ0IHsKICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTsKICByaWdodDogYXV0bzsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKfQoKLmZhLTF4IHsKICBmb250LXNpemU6IDFlbTsKfQoKLmZhLTJ4IHsKICBmb250LXNpemU6IDJlbTsKfQoKLmZhLTN4IHsKICBmb250LXNpemU6IDNlbTsKfQoKLmZhLTR4IHsKICBmb250LXNpemU6IDRlbTsKfQoKLmZhLTV4IHsKICBmb250LXNpemU6IDVlbTsKfQoKLmZhLTZ4IHsKICBmb250LXNpemU6IDZlbTsKfQoKLmZhLTd4IHsKICBmb250LXNpemU6IDdlbTsKfQoKLmZhLTh4IHsKICBmb250LXNpemU6IDhlbTsKfQoKLmZhLTl4IHsKICBmb250LXNpemU6IDllbTsKfQoKLmZhLTEweCB7CiAgZm9udC1zaXplOiAxMGVtOwp9CgouZmEtMnhzIHsKICBmb250LXNpemU6IGNhbGMoMTAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxMCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTAgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEteHMgewogIGZvbnQtc2l6ZTogY2FsYygxMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDEyICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxMiAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS1zbSB7CiAgZm9udC1zaXplOiBjYWxjKDE0IC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDE0cHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTQgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDE0IC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLWxnIHsKICBmb250LXNpemU6IGNhbGMoMjAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAyMCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjAgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEteGwgewogIGZvbnQtc2l6ZTogY2FsYygyNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAyNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDI0ICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAyNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS0yeGwgewogIGZvbnQtc2l6ZTogY2FsYygzMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAzMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDMyICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAzMiAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS13aWR0aC1hdXRvIHsKICAtLWZhLXdpZHRoOiBhdXRvOwp9CgouZmEtZncsCi5mYS13aWR0aC1maXhlZCB7CiAgLS1mYS13aWR0aDogMS4yNWVtOwp9CgouZmEtdWwgewogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1saS1tYXJnaW4sIDIuNWVtKTsKICBwYWRkaW5nLWlubGluZS1zdGFydDogMDsKfQouZmEtdWwgPiBsaSB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouZmEtbGkgewogIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTsKICBsaW5lLWhlaWdodDogaW5oZXJpdDsKfQoKLyogSGVhZHMgVXA6IEJvcmRlcmVkIEljb25zIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiB0aGUgZnV0dXJlIQogIC0gVGhpcyBmZWF0dXJlIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlIG9mIEZvbnQgQXdlc29tZSAodjgpIQogIC0gWW91IG1heSBjb250aW51ZSB0byB1c2UgaXQgaW4gdGhpcyB2ZXJzaW9uICp2NyksIGJ1dCBpdCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gRm9udCBBd2Vzb21lIHY4LgoqLwovKiBOb3RlczoKKiAtLUB7di4kY3NzLXByZWZpeH0tYm9yZGVyLXdpZHRoID0gMS8xNiBieSBkZWZhdWx0ICh0byByZW5kZXIgYXMgfjFweCBiYXNlZCBvbiBhIDE2cHggZGVmYXVsdCBmb250LXNpemUpCiogLS1Ae3YuJGNzcy1wcmVmaXh9LWJvcmRlci1wYWRkaW5nID0KICAqKiAzLzE2IGZvciB2ZXJ0aWNhbCBwYWRkaW5nICh0byBnaXZlIH4ycHggb2YgdmVydGljYWwgd2hpdGVzcGFjZSBhcm91bmQgYW4gaWNvbiBjb25zaWRlcmluZyBpdCdzIHZlcnRpY2FsIGFsaWdubWVudCkKICAqKiA0LzE2IGZvciBob3Jpem9udGFsIHBhZGRpbmcgKHRvIGdpdmUgfjRweCBvZiBob3Jpem9udGFsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24pCiovCi5mYS1ib3JkZXIgewogIGJvcmRlci1jb2xvcjogdmFyKC0tZmEtYm9yZGVyLWNvbG9yLCAjZWVlKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYS1ib3JkZXItcmFkaXVzLCAwLjFlbSk7CiAgYm9yZGVyLXN0eWxlOiB2YXIoLS1mYS1ib3JkZXItc3R5bGUsIHNvbGlkKTsKICBib3JkZXItd2lkdGg6IHZhcigtLWZhLWJvcmRlci13aWR0aCwgMC4wNjI1ZW0pOwogIGJveC1zaXppbmc6IHZhcigtLWZhLWJvcmRlci1ib3gtc2l6aW5nLCBjb250ZW50LWJveCk7CiAgcGFkZGluZzogdmFyKC0tZmEtYm9yZGVyLXBhZGRpbmcsIDAuMTg3NWVtIDAuMjVlbSk7Cn0KCi5mYS1wdWxsLWxlZnQsCi5mYS1wdWxsLXN0YXJ0IHsKICBmbG9hdDogaW5saW5lLXN0YXJ0OwogIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9CgouZmEtcHVsbC1yaWdodCwKLmZhLXB1bGwtZW5kIHsKICBmbG9hdDogaW5saW5lLWVuZDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9CgouZmEtYmVhdCB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQ7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTsKfQoKLmZhLWJvdW5jZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJvdW5jZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuMjgsIDAuODQsIDAuNDIsIDEpKTsKfQoKLmZhLWZhZGUgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1mYWRlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpKTsKfQoKLmZhLWJlYXQtZmFkZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQtZmFkZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7Cn0KCi5mYS1mbGlwIHsKICBhbmltYXRpb24tbmFtZTogZmEtZmxpcDsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgZWFzZS1pbi1vdXQpOwp9CgouZmEtc2hha2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zaGFrZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTsKfQoKLmZhLXNwaW4gewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMnMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBsaW5lYXIpOwp9CgouZmEtc3Bpbi1yZXZlcnNlIHsKICAtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7Cn0KCi5mYS1wdWxzZSwKLmZhLXNwaW4tcHVsc2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgc3RlcHMoOCkpOwp9CgpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogIC5mYS1iZWF0LAogIC5mYS1ib3VuY2UsCiAgLmZhLWZhZGUsCiAgLmZhLWJlYXQtZmFkZSwKICAuZmEtZmxpcCwKICAuZmEtcHVsc2UsCiAgLmZhLXNoYWtlLAogIC5mYS1zcGluLAogIC5mYS1zcGluLXB1bHNlIHsKICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJlYXQgewogIDAlLCA5MCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgNDUlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYmVhdC1zY2FsZSwgMS4yNSkpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJvdW5jZSB7CiAgMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KICAxMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteCwgMS4xKSwgdmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXksIDAuOSkpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDMwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXgsIDAuOSksIHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXksIDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLWhlaWdodCwgLTAuNWVtKSk7CiAgfQogIDUwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXgsIDEuMDUpLCB2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS15LCAwLjk1KSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgNTclIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtcmVib3VuZCwgLTAuMTI1ZW0pKTsKICB9CiAgNjQlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtZmFkZSB7CiAgNTAlIHsKICAgIG9wYWNpdHk6IHZhcigtLWZhLWZhZGUtb3BhY2l0eSwgMC40KTsKICB9Cn0KQGtleWZyYW1lcyBmYS1iZWF0LWZhZGUgewogIDAlLCAxMDAlIHsKICAgIG9wYWNpdHk6IHZhcigtLWZhLWJlYXQtZmFkZS1vcGFjaXR5LCAwLjQpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgNTAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtZmFkZS1zY2FsZSwgMS4xMjUpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1mbGlwIHsKICA1MCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUzZCh2YXIoLS1mYS1mbGlwLXgsIDApLCB2YXIoLS1mYS1mbGlwLXksIDEpLCB2YXIoLS1mYS1mbGlwLXosIDApLCB2YXIoLS1mYS1mbGlwLWFuZ2xlLCAtMTgwZGVnKSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtc2hha2UgewogIDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7CiAgfQogIDQlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsKICB9CiAgOCUsIDI0JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMThkZWcpOwogIH0KICAxMiUsIDI4JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxOGRlZyk7CiAgfQogIDE2JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjJkZWcpOwogIH0KICAyMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMjJkZWcpOwogIH0KICAzMiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTEyZGVnKTsKICB9CiAgMzYlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDEyZGVnKTsKICB9CiAgNDAlLCAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLXNwaW4gewogIDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9Ci5mYS1yb3RhdGUtOTAgewogIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKfQoKLmZhLXJvdGF0ZS0xODAgewogIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Cn0KCi5mYS1yb3RhdGUtMjcwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOwp9CgouZmEtZmxpcC1ob3Jpem9udGFsIHsKICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTsKfQoKLmZhLWZsaXAtdmVydGljYWwgewogIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOwp9CgouZmEtZmxpcC1ib3RoLAouZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWwgewogIHRyYW5zZm9ybTogc2NhbGUoLTEsIC0xKTsKfQoKLmZhLXJvdGF0ZS1ieSB7CiAgdHJhbnNmb3JtOiByb3RhdGUodmFyKC0tZmEtcm90YXRlLWFuZ2xlLCAwKSk7Cn0KCi5zdmctaW5saW5lLS1mYSAuZmEtcHJpbWFyeSB7CiAgZmlsbDogdmFyKC0tZmEtcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKTsKICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpOwp9Cgouc3ZnLWlubGluZS0tZmEgLmZhLXNlY29uZGFyeSB7CiAgZmlsbDogdmFyKC0tZmEtc2Vjb25kYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpOwogIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1wcmltYXJ5IHsKICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtc2Vjb25kYXJ5IHsKICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpOwp9Cgouc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtcHJpbWFyeSwKLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXNlY29uZGFyeSB7CiAgZmlsbDogYmxhY2s7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1pbnZlcnNlIHsKICBmaWxsOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKfQoKLmZhLXN0YWNrIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgaGVpZ2h0OiAyZW07CiAgbGluZS1oZWlnaHQ6IDJlbTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICB3aWR0aDogMi41ZW07Cn0KCi5mYS1pbnZlcnNlIHsKICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0xeCB7CiAgLS1mYS13aWR0aDogMS4yNWVtOwogIGhlaWdodDogMWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXN0YWNrLTJ4IHsKICAtLWZhLXdpZHRoOiAyLjVlbTsKICBoZWlnaHQ6IDJlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgpOwp9CgouZmEtc3RhY2stMXgsCi5mYS1zdGFjay0yeCB7CiAgaW5zZXQ6IDA7CiAgbWFyZ2luOiBhdXRvOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiB2YXIoLS1mYS1zdGFjay16LWluZGV4LCBhdXRvKTsKfWA7aShqU3QsImNzcyIpO1ZTdD0hMTtpKGk4ZSwiZW5zdXJlQ3NzIik7VlZhPXttaXhvdXQ6aShmdW5jdGlvbigpe3JldHVybntkb206e2NzczpqU3QsaW5zZXJ0Q3NzOmk4ZX19fSwibWl4b3V0IiksaG9va3M6aShmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246aShmdW5jdGlvbigpe2k4ZSgpfSwiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIiksYmVmb3JlSTJzdmc6aShmdW5jdGlvbigpe2k4ZSgpfSwiYmVmb3JlSTJzdmciKX19LCJob29rcyIpfSxxMD1uaHx8e307cTBbSDBdfHwocTBbSDBdPXt9KSxxMFtIMF0uc3R5bGVzfHwocTBbSDBdLnN0eWxlcz17fSkscTBbSDBdLmhvb2tzfHwocTBbSDBdLmhvb2tzPXt9KSxxMFtIMF0uc2hpbXN8fChxMFtIMF0uc2hpbXM9W10pO0gxPXEwW0gwXSxVU3Q9W10sV1N0PWkoZnVuY3Rpb24oKXtkaS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixXU3QpLHFyZT0xLFVTdC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pfSwibGlzdGVuZXIiKSxxcmU9ITE7QjAmJihxcmU9KGRpLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KGRpLnJlYWR5U3RhdGUpLHFyZXx8ZGkuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsV1N0KSk7aShVVmEsImRvbXJlYWR5Iik7aShWaywidG9IdG1sIik7aShHU3QsImljb25Gcm9tTWFwcGluZyIpO1dWYT1pKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGEscixuLG8pe3JldHVybiBlLmNhbGwodCxhLHIsbixvKX19LCJiaW5kSW50ZXJuYWw0IikscjhlPWkoZnVuY3Rpb24oZSx0LGEscil7dmFyIG49T2JqZWN0LmtleXMoZSksbz1uLmxlbmd0aCxsPXIhPT12b2lkIDA/V1ZhKHQscik6dCxwLGQsdTtmb3IoYT09PXZvaWQgMD8ocD0xLHU9ZVtuWzBdXSk6KHA9MCx1PWEpO3A8bztwKyspZD1uW3BdLHU9bCh1LGVbZF0sZCxlKTtyZXR1cm4gdX0sImZhc3RSZWR1Y2VPYmplY3QiKTtpKEtTdCwidG9IZXgiKTtpKFlTdCwibm9ybWFsaXplSWNvbnMiKTtpKG84ZSwiZGVmaW5lSWNvbnMiKTtuOGU9MSxxMT0yLE92aT1bW3ExLGFuKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi4qcGF0aC4qZD0iKFteIl0qKSIvLHtkMjoyLGQxOjN9KV0sW3ExLGFuKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi8se2QyOjJ9KV0sW244ZSxhbigvcGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiLipkPSIoW14iXSspIi8se2QxOjF9KV1dLEZ2aT1bW3ExLGFuKC9wYXRoIGNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipkPSIoW14iXSspIi4qcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjI6MSxkMjoyLGF0dHIxOjMsZDE6NH0pXSxbcTEsYW4oL3BhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi4qcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjIsYXR0cjI6MyxkMjo0fSldLFtxMSxhbigvcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjE6MSxkMToyfSldLFtxMSxhbigvcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMjoxLGQyOjJ9KV0sW3ExLGFuKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLyx7ZDI6MSxhdHRyMjoyLGQxOjMsYXR0cjE6NH0pXSxbcTEsYW4oL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIvLHtkMToxLGF0dHIxOjIsZDI6MyxhdHRyMjo0fSldLFtxMSxhbigvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLyx7ZDE6MSxhdHRyMToyfSldLFtxMSxhbigvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIvLHtkMjoxLGF0dHIyOjJ9KV0sW3ExLGFuKC9wYXRoIGQ9IihbXiJdKykiLipwYXRoIGQ9IihbXiJdKykiLyx7ZDE6MSxkMjoyfSldLFtuOGUsYW4oL3BhdGggZD0iKFteIl0rKSIvLHtkMToxfSldLFtuOGUsYW4oL3BhdGggc3R5bGU9IihbXiJdKykiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXV0sVWs9SDEuc3R5bGVzLEdWYT1IMS5zaGltcyxaU3Q9T2JqZWN0LmtleXMoSjVlKSxLVmE9WlN0LnJlZHVjZShmdW5jdGlvbihzLGUpe3JldHVybiBzW2VdPU9iamVjdC5rZXlzKEo1ZVtlXSksc30se30pLGw4ZT1udWxsLFhTdD17fSxRU3Q9e30sSlN0PXt9LGVfdD17fSx0X3Q9e307aShZVmEsImlzUmVzZXJ2ZWQiKTtpKFpWYSwiZ2V0SWNvbk5hbWUiKTthX3Q9aShmdW5jdGlvbigpe3ZhciBlPWkoZnVuY3Rpb24obil7cmV0dXJuIHI4ZShVayxmdW5jdGlvbihvLGwscCl7cmV0dXJuIG9bcF09cjhlKGwsbix7fSksb30se30pfSwibG9va3VwIik7WFN0PWUoZnVuY3Rpb24ocixuLG8pe2lmKG5bM10mJihyW25bM11dPW8pLG5bMl0pe3ZhciBsPW5bMl0uZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiB0eXBlb2YgcD09Im51bWJlciJ9KTtsLmZvckVhY2goZnVuY3Rpb24ocCl7cltwLnRvU3RyaW5nKDE2KV09b30pfXJldHVybiByfSksUVN0PWUoZnVuY3Rpb24ocixuLG8pe2lmKHJbb109byxuWzJdKXt2YXIgbD1uWzJdLmZpbHRlcihmdW5jdGlvbihwKXtyZXR1cm4gdHlwZW9mIHA9PSJzdHJpbmcifSk7bC5mb3JFYWNoKGZ1bmN0aW9uKHApe3JbcF09b30pfXJldHVybiByfSksdF90PWUoZnVuY3Rpb24ocixuLG8pe3ZhciBsPW5bMl07cmV0dXJuIHJbb109byxsLmZvckVhY2goZnVuY3Rpb24ocCl7cltwXT1vfSkscn0pO3ZhciB0PSJmYXIiaW4gVWt8fFd0LmF1dG9GZXRjaFN2ZyxhPXI4ZShHVmEsZnVuY3Rpb24ocixuKXt2YXIgbz1uWzBdLGw9blsxXSxwPW5bMl07cmV0dXJuIGw9PT0iZmFyIiYmIXQmJihsPSJmYXMiKSx0eXBlb2Ygbz09InN0cmluZyImJihyLm5hbWVzW29dPXtwcmVmaXg6bCxpY29uTmFtZTpwfSksdHlwZW9mIG89PSJudW1iZXIiJiYoci51bmljb2Rlc1tvLnRvU3RyaW5nKDE2KV09e3ByZWZpeDpsLGljb25OYW1lOnB9KSxyfSx7bmFtZXM6e30sdW5pY29kZXM6e319KTtKU3Q9YS5uYW1lcyxlX3Q9YS51bmljb2RlcyxsOGU9anJlKFd0LnN0eWxlRGVmYXVsdCx7ZmFtaWx5Old0LmZhbWlseURlZmF1bHR9KX0sImJ1aWxkIik7UlZhKGZ1bmN0aW9uKHMpe2w4ZT1qcmUocy5zdHlsZURlZmF1bHQse2ZhbWlseTpXdC5mYW1pbHlEZWZhdWx0fSl9KSxhX3QoKTtpKGM4ZSwiYnlVbmljb2RlIik7aShYVmEsImJ5TGlnYXR1cmUiKTtpKFkzLCJieUFsaWFzIik7aShzX3QsImJ5T2xkTmFtZSIpO2koUVZhLCJieU9sZFVuaWNvZGUiKTtpKGNoLCJnZXREZWZhdWx0VXNhYmxlUHJlZml4Iik7aV90PWkoZnVuY3Rpb24oKXtyZXR1cm57cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbCxyZXN0OltdfX0sImVtcHR5Q2Fub25pY2FsSWNvbiIpO2koSlZhLCJnZXRGYW1pbHlJZCIpO2koanJlLCJnZXRDYW5vbmljYWxQcmVmaXgiKTtpKGVVYSwibW92ZU5vbkZhQ2xhc3Nlc1RvUmVzdCIpO2kocl90LCJzb3J0ZWRVbmlxdWVWYWx1ZXMiKTtvX3Q9JFN0LmNvbmNhdCh6U3QpO2koVnJlLCJnZXRDYW5vbmljYWxJY29uIik7aSh0VWEsImFwcGx5U2hpbUFuZEFsaWFzIik7YVVhPU1TdC5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHMhPT1fb3x8cyE9PUJrfSksc1VhPU9iamVjdC5rZXlzKFc1ZSkuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzIT09X299KS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIE9iamVjdC5rZXlzKFc1ZVtzXSl9KS5mbGF0KCk7aShpVWEsImdldERlZmF1bHRDYW5vbmljYWxQcmVmaXgiKTtyVWE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcygpe0JxYSh0aGlzLHMpLHRoaXMuZGVmaW5pdGlvbnM9e319cmV0dXJuIGkocywiTGlicmFyeSIpLEhxYShzLFt7a2V5OiJhZGQiLHZhbHVlOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxhPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoYSksbj0wO248YTtuKyspcltuXT1hcmd1bWVudHNbbl07dmFyIG89ci5yZWR1Y2UodGhpcy5fcHVsbERlZmluaXRpb25zLHt9KTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3QuZGVmaW5pdGlvbnNbbF09ZHQoZHQoe30sdC5kZWZpbml0aW9uc1tsXXx8e30pLG9bbF0pLG84ZShsLG9bbF0pO3ZhciBwPUo1ZVtfb11bbF07cCYmbzhlKHAsb1tsXSksYV90KCl9KX0sImFkZCIpfSx7a2V5OiJyZXNldCIsdmFsdWU6aShmdW5jdGlvbigpe3RoaXMuZGVmaW5pdGlvbnM9e319LCJyZXNldCIpfSx7a2V5OiJfcHVsbERlZmluaXRpb25zIix2YWx1ZTppKGZ1bmN0aW9uKHQsYSl7dmFyIHI9YS5wcmVmaXgmJmEuaWNvbk5hbWUmJmEuaWNvbj97MDphfTphO3JldHVybiBPYmplY3Qua2V5cyhyKS5tYXAoZnVuY3Rpb24obil7dmFyIG89cltuXSxsPW8ucHJlZml4LHA9by5pY29uTmFtZSxkPW8uaWNvbix1PWRbMl07dFtsXXx8KHRbbF09e30pLHUubGVuZ3RoPjAmJnUuZm9yRWFjaChmdW5jdGlvbihjKXt0eXBlb2YgYz09InN0cmluZyImJih0W2xdW2NdPWQpfSksdFtsXVtwXT1kfSksdH0sIl9wdWxsRGVmaW5pdGlvbnMiKX1dKX0pKCksbl90PVtdLFNiPXt9LF9iPXt9LG9VYT1PYmplY3Qua2V5cyhfYik7aShuVWEsInJlZ2lzdGVyUGx1Z2lucyIpO2koZDhlLCJjaGFpbkhvb2tzIik7aShaMywiY2FsbEhvb2tzIik7aShkaCwiY2FsbFByb3ZpZGVkIik7aSh1OGUsImZpbmRJY29uRGVmaW5pdGlvbiIpO2xfdD1uZXcgclVhLGxVYT1pKGZ1bmN0aW9uKCl7V3QuYXV0b1JlcGxhY2VTdmc9ITEsV3Qub2JzZXJ2ZU11dGF0aW9ucz0hMSxaMygibm9BdXRvIil9LCJub0F1dG8iKSxjVWE9e2kyc3ZnOmkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e307cmV0dXJuIEIwPyhaMygiYmVmb3JlSTJzdmciLGUpLGRoKCJwc2V1ZG9FbGVtZW50czJzdmciLGUpLGRoKCJpMnN2ZyIsZSkpOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiT3BlcmF0aW9uIHJlcXVpcmVzIGEgRE9NIG9mIHNvbWUga2luZC4iKSl9LCJpMnN2ZyIpLHdhdGNoOmkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sdD1lLmF1dG9SZXBsYWNlU3ZnUm9vdDtXdC5hdXRvUmVwbGFjZVN2Zz09PSExJiYoV3QuYXV0b1JlcGxhY2VTdmc9ITApLFd0Lm9ic2VydmVNdXRhdGlvbnM9ITAsVVZhKGZ1bmN0aW9uKCl7dVVhKHthdXRvUmVwbGFjZVN2Z1Jvb3Q6dH0pLFozKCJ3YXRjaCIsZSl9KX0sIndhdGNoIil9LGRVYT17aWNvbjppKGZ1bmN0aW9uKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2lmKE9yZShlKT09PSJvYmplY3QiJiZlLnByZWZpeCYmZS5pY29uTmFtZSlyZXR1cm57cHJlZml4OmUucHJlZml4LGljb25OYW1lOlkzKGUucHJlZml4LGUuaWNvbk5hbWUpfHxlLmljb25OYW1lfTtpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09PTIpe3ZhciB0PWVbMV0uaW5kZXhPZigiZmEtIik9PT0wP2VbMV0uc2xpY2UoMyk6ZVsxXSxhPWpyZShlWzBdKTtyZXR1cm57cHJlZml4OmEsaWNvbk5hbWU6WTMoYSx0KXx8dH19aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZS5pbmRleE9mKCIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi0iKSk+LTF8fGUubWF0Y2goRFZhKSkpe3ZhciByPVZyZShlLnNwbGl0KCIgIikse3NraXBMb29rdXBzOiEwfSk7cmV0dXJue3ByZWZpeDpyLnByZWZpeHx8Y2goKSxpY29uTmFtZTpZMyhyLnByZWZpeCxyLmljb25OYW1lKXx8ci5pY29uTmFtZX19aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgbj1jaCgpO3JldHVybntwcmVmaXg6bixpY29uTmFtZTpZMyhuLGUpfHxlfX19LCJpY29uIil9LF9sPXtub0F1dG86bFVhLGNvbmZpZzpXdCxkb206Y1VhLHBhcnNlOmRVYSxsaWJyYXJ5OmxfdCxmaW5kSWNvbkRlZmluaXRpb246dThlLHRvSHRtbDpWa30sdVVhPWkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sdD1lLmF1dG9SZXBsYWNlU3ZnUm9vdCxhPXQ9PT12b2lkIDA/ZGk6dDsoT2JqZWN0LmtleXMoSDEuc3R5bGVzKS5sZW5ndGg+MHx8V3QuYXV0b0ZldGNoU3ZnKSYmQjAmJld0LmF1dG9SZXBsYWNlU3ZnJiZfbC5kb20uaTJzdmcoe25vZGU6YX0pfSwiYXV0b1JlcGxhY2UiKTtpKFVyZSwiZG9tVmFyaWFudHMiKTtpKHBVYSwiYXNJY29uIik7aShoVWEsImFzU3ltYm9sIik7aShmVWEsImlzTGFiZWxlZCIpO2kocDhlLCJtYWtlSW5saW5lU3ZnQWJzdHJhY3QiKTtpKGNfdCwibWFrZUxheWVyc1RleHRBYnN0cmFjdCIpO2kobVVhLCJtYWtlTGF5ZXJzQ291bnRlckFic3RyYWN0Iik7aDhlPUgxLnN0eWxlcztpKGY4ZSwiYXNGb3VuZEljb24iKTtnVWE9e2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyfTtpKGJVYSwibWF5YmVOb3RpZnlNaXNzaW5nIik7aShtOGUsImZpbmRJY29uIik7ZF90PWkoZnVuY3Rpb24oKXt9LCJub29wIiksZzhlPVd0Lm1lYXN1cmVQZXJmb3JtYW5jZSYmRnJlJiZGcmUubWFyayYmRnJlLm1lYXN1cmU/RnJlOnttYXJrOmRfdCxtZWFzdXJlOmRfdH0sV2s9J0ZBICI3LjIuMCInLHZVYT1pKGZ1bmN0aW9uKGUpe3JldHVybiBnOGUubWFyaygiIi5jb25jYXQoV2ssIiAiKS5jb25jYXQoZSwiIGJlZ2lucyIpKSxmdW5jdGlvbigpe3JldHVybiB1X3QoZSl9fSwiYmVnaW4iKSx1X3Q9aShmdW5jdGlvbihlKXtnOGUubWFyaygiIi5jb25jYXQoV2ssIiAiKS5jb25jYXQoZSwiIGVuZHMiKSksZzhlLm1lYXN1cmUoIiIuY29uY2F0KFdrLCIgIikuY29uY2F0KGUpLCIiLmNvbmNhdChXaywiICIpLmNvbmNhdChlLCIgYmVnaW5zIiksIiIuY29uY2F0KFdrLCIgIikuY29uY2F0KGUsIiBlbmRzIikpfSwiZW5kIiksYjhlPXtiZWdpbjp2VWEsZW5kOnVfdH0sV3JlPWkoZnVuY3Rpb24oKXt9LCJub29wIik7aShwX3QsImlzV2F0Y2hlZCIpO2koeFVhLCJoYXNQcmVmaXhBbmRJY29uIik7aSh5VWEsImhhc0JlZW5SZXBsYWNlZCIpO2kod1VhLCJnZXRNdXRhdG9yIik7aShrVWEsImNyZWF0ZUVsZW1lbnROUyIpO2koU1VhLCJjcmVhdGVFbGVtZW50Iik7aShoX3QsImNvbnZlcnRTVkciKTtpKF9VYSwibm9kZUFzQ29tbWVudCIpO0dyZT17cmVwbGFjZTppKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF07aWYodC5wYXJlbnROb2RlKWlmKGVbMV0uZm9yRWFjaChmdW5jdGlvbihyKXt0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGhfdChyKSx0KX0pLHQuZ2V0QXR0cmlidXRlKEszKT09PW51bGwmJld0LmtlZXBPcmlnaW5hbFNvdXJjZSl7dmFyIGE9ZGkuY3JlYXRlQ29tbWVudChfVWEodCkpO3QucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoYSx0KX1lbHNlIHQucmVtb3ZlKCl9LCJyZXBsYWNlIiksbmVzdDppKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sYT1lWzFdO2lmKH5hOGUodCkuaW5kZXhPZihXdC5yZXBsYWNlbWVudENsYXNzKSlyZXR1cm4gR3JlLnJlcGxhY2UoZSk7dmFyIHI9bmV3IFJlZ0V4cCgiIi5jb25jYXQoV3QuY3NzUHJlZml4LCItLioiKSk7aWYoZGVsZXRlIGFbMF0uYXR0cmlidXRlcy5pZCxhWzBdLmF0dHJpYnV0ZXMuY2xhc3Mpe3ZhciBuPWFbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihsLHApe3JldHVybiBwPT09V3QucmVwbGFjZW1lbnRDbGFzc3x8cC5tYXRjaChyKT9sLnRvU3ZnLnB1c2gocCk6bC50b05vZGUucHVzaChwKSxsfSx7dG9Ob2RlOltdLHRvU3ZnOltdfSk7YVswXS5hdHRyaWJ1dGVzLmNsYXNzPW4udG9Tdmcuam9pbigiICIpLG4udG9Ob2RlLmxlbmd0aD09PTA/dC5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik6dC5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLnRvTm9kZS5qb2luKCIgIikpfXZhciBvPWEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBWayhsKX0pLmpvaW4oYApgKTt0LnNldEF0dHJpYnV0ZShLMywiIiksdC5pbm5lckhUTUw9b30sIm5lc3QiKX07aShmX3QsInBlcmZvcm1PcGVyYXRpb25TeW5jIik7aShtX3QsInBlcmZvcm0iKTt2OGU9ITE7aShnX3QsImRpc2FibGVPYnNlcnZhdGlvbiIpO2koeDhlLCJlbmFibGVPYnNlcnZhdGlvbiIpO0tyZT1udWxsO2koYl90LCJvYnNlcnZlIik7aShNVWEsImRpc2Nvbm5lY3QiKTtpKHpVYSwic3R5bGVQYXJzZXIiKTtpKENVYSwiY2xhc3NQYXJzZXIiKTtpKFRVYSwiYXR0cmlidXRlc1BhcnNlciIpO2koJFVhLCJibGFua01ldGEiKTtpKHZfdCwicGFyc2VNZXRhIik7RFVhPUgxLnN0eWxlcztpKHhfdCwiZ2VuZXJhdGVNdXRhdGlvbiIpO2koTFVhLCJnZXRLbm93blByZWZpeGVzIik7aSh5X3QsIm9uVHJlZSIpO2koRVVhLCJvbk5vZGUiKTtpKFBVYSwicmVzb2x2ZUljb25zIik7SVVhPWkoZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9dC50cmFuc2Zvcm0scj1hPT09dm9pZCAwP01kOmEsbj10LnN5bWJvbCxvPW49PT12b2lkIDA/ITE6bixsPXQubWFzayxwPWw9PT12b2lkIDA/bnVsbDpsLGQ9dC5tYXNrSWQsdT1kPT09dm9pZCAwP251bGw6ZCxjPXQuY2xhc3NlcyxiPWM9PT12b2lkIDA/W106Yyx2PXQuYXR0cmlidXRlcyx4PXY9PT12b2lkIDA/e306dixtPXQuc3R5bGVzLGY9bT09PXZvaWQgMD97fTptO2lmKGUpe3ZhciB5PWUucHJlZml4LE09ZS5pY29uTmFtZSx6PWUuaWNvbjtyZXR1cm4gVXJlKGR0KHt0eXBlOiJpY29uIn0sZSksZnVuY3Rpb24oKXtyZXR1cm4gWjMoImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2ljb25EZWZpbml0aW9uOmUscGFyYW1zOnR9KSxwOGUoe2ljb25zOnttYWluOmY4ZSh6KSxtYXNrOnA/ZjhlKHAuaWNvbik6e2ZvdW5kOiExLHdpZHRoOm51bGwsaGVpZ2h0Om51bGwsaWNvbjp7fX19LHByZWZpeDp5LGljb25OYW1lOk0sdHJhbnNmb3JtOmR0KGR0KHt9LE1kKSxyKSxzeW1ib2w6byxtYXNrSWQ6dSxleHRyYTp7YXR0cmlidXRlczp4LHN0eWxlczpmLGNsYXNzZXM6Yn19KX0pfX0sInJlbmRlciIpLEFVYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57aWNvbjpQVWEoSVVhKX19LCJtaXhvdXQiKSxob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6aShmdW5jdGlvbih0KXtyZXR1cm4gdC50cmVlQ2FsbGJhY2s9eV90LHQubm9kZUNhbGxiYWNrPUVVYSx0fSwibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmkyc3ZnPWZ1bmN0aW9uKHQpe3ZhciBhPXQubm9kZSxyPWE9PT12b2lkIDA/ZGk6YSxuPXQuY2FsbGJhY2ssbz1uPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpuO3JldHVybiB5X3QocixvKX0sZS5nZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb249ZnVuY3Rpb24odCxhKXt2YXIgcj1hLmljb25OYW1lLG49YS5wcmVmaXgsbz1hLnRyYW5zZm9ybSxsPWEuc3ltYm9sLHA9YS5tYXNrLGQ9YS5tYXNrSWQsdT1hLmV4dHJhO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihjLGIpe1Byb21pc2UuYWxsKFttOGUocixuKSxwLmljb25OYW1lP204ZShwLmljb25OYW1lLHAucHJlZml4KTpQcm9taXNlLnJlc29sdmUoe2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyLGljb246e319KV0pLnRoZW4oZnVuY3Rpb24odil7dmFyIHg9UnJlKHYsMiksbT14WzBdLGY9eFsxXTtjKFt0LHA4ZSh7aWNvbnM6e21haW46bSxtYXNrOmZ9LHByZWZpeDpuLGljb25OYW1lOnIsdHJhbnNmb3JtOm8sc3ltYm9sOmwsbWFza0lkOmQsZXh0cmE6dSx3YXRjaGFibGU6ITB9KV0pfSkuY2F0Y2goYil9KX0sZS5nZW5lcmF0ZUFic3RyYWN0SWNvbj1mdW5jdGlvbih0KXt2YXIgYT10LmNoaWxkcmVuLHI9dC5hdHRyaWJ1dGVzLG49dC5tYWluLG89dC50cmFuc2Zvcm0sbD10LnN0eWxlcyxwPUhyZShsKTtwLmxlbmd0aD4wJiYoci5zdHlsZT1wKTt2YXIgZDtyZXR1cm4gczhlKG8pJiYoZD1kaCgiZ2VuZXJhdGVBYnN0cmFjdFRyYW5zZm9ybUdyb3VwaW5nIix7bWFpbjpuLHRyYW5zZm9ybTpvLGNvbnRhaW5lcldpZHRoOm4ud2lkdGgsaWNvbldpZHRoOm4ud2lkdGh9KSksYS5wdXNoKGR8fG4uaWNvbikse2NoaWxkcmVuOmEsYXR0cmlidXRlczpyfX19LCJwcm92aWRlcyIpfSxOVWE9e21peG91dDppKGZ1bmN0aW9uKCl7cmV0dXJue2xheWVyOmkoZnVuY3Rpb24odCl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHI9YS5jbGFzc2VzLG49cj09PXZvaWQgMD9bXTpyO3JldHVybiBVcmUoe3R5cGU6ImxheWVyIn0sZnVuY3Rpb24oKXtaMygiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7YXNzZW1ibGVyOnQscGFyYW1zOmF9KTt2YXIgbz1bXTtyZXR1cm4gdChmdW5jdGlvbihsKXtBcnJheS5pc0FycmF5KGwpP2wubWFwKGZ1bmN0aW9uKHApe289by5jb25jYXQocC5hYnN0cmFjdCl9KTpvPW8uY29uY2F0KGwuYWJzdHJhY3QpfSksW3t0YWc6InNwYW4iLGF0dHJpYnV0ZXM6e2NsYXNzOlsiIi5jb25jYXQoV3QuY3NzUHJlZml4LCItbGF5ZXJzIildLmNvbmNhdChCMShuKSkuam9pbigiICIpfSxjaGlsZHJlbjpvfV19KX0sImxheWVyIil9fSwibWl4b3V0Iil9LFJVYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57Y291bnRlcjppKGZ1bmN0aW9uKHQpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWEudGl0bGUsbj1yPT09dm9pZCAwP251bGw6cixvPWEuY2xhc3NlcyxsPW89PT12b2lkIDA/W106byxwPWEuYXR0cmlidXRlcyxkPXA9PT12b2lkIDA/e306cCx1PWEuc3R5bGVzLGM9dT09PXZvaWQgMD97fTp1O3JldHVybiBVcmUoe3R5cGU6ImNvdW50ZXIiLGNvbnRlbnQ6dH0sZnVuY3Rpb24oKXtyZXR1cm4gWjMoImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2NvbnRlbnQ6dCxwYXJhbXM6YX0pLG1VYSh7Y29udGVudDp0LnRvU3RyaW5nKCksdGl0bGU6bixleHRyYTp7YXR0cmlidXRlczpkLHN0eWxlczpjLGNsYXNzZXM6WyIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi1sYXllcnMtY291bnRlciIpXS5jb25jYXQoQjEobCkpfX0pfSl9LCJjb3VudGVyIil9fSwibWl4b3V0Iil9LE9VYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57dGV4dDppKGZ1bmN0aW9uKHQpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWEudHJhbnNmb3JtLG49cj09PXZvaWQgMD9NZDpyLG89YS5jbGFzc2VzLGw9bz09PXZvaWQgMD9bXTpvLHA9YS5hdHRyaWJ1dGVzLGQ9cD09PXZvaWQgMD97fTpwLHU9YS5zdHlsZXMsYz11PT09dm9pZCAwP3t9OnU7cmV0dXJuIFVyZSh7dHlwZToidGV4dCIsY29udGVudDp0fSxmdW5jdGlvbigpe3JldHVybiBaMygiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDp0LHBhcmFtczphfSksY190KHtjb250ZW50OnQsdHJhbnNmb3JtOmR0KGR0KHt9LE1kKSxuKSxleHRyYTp7YXR0cmlidXRlczpkLHN0eWxlczpjLGNsYXNzZXM6WyIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQoQjEobCkpfX0pfSl9LCJ0ZXh0Iil9fSwibWl4b3V0IikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlTGF5ZXJzVGV4dD1mdW5jdGlvbih0LGEpe3ZhciByPWEudHJhbnNmb3JtLG49YS5leHRyYSxvPW51bGwsbD1udWxsO2lmKHJTdCl7dmFyIHA9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0KS5mb250U2l6ZSwxMCksZD10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO289ZC53aWR0aC9wLGw9ZC5oZWlnaHQvcH1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFt0LGNfdCh7Y29udGVudDp0LmlubmVySFRNTCx3aWR0aDpvLGhlaWdodDpsLHRyYW5zZm9ybTpyLGV4dHJhOm4sd2F0Y2hhYmxlOiEwfSldKX19LCJwcm92aWRlcyIpfSx3X3Q9bmV3IFJlZ0V4cCgnIicsInVnIiksa190PVsxMTA1OTIwLDExMTIzMTldLFNfdD1kdChkdChkdChkdCh7fSx7Rm9udEF3ZXNvbWU6e25vcm1hbDoiZmFzIiw0MDA6ImZhcyJ9fSksdmphKSxNVmEpLENqYSkseThlPU9iamVjdC5rZXlzKFNfdCkucmVkdWNlKGZ1bmN0aW9uKHMsZSl7cmV0dXJuIHNbZS50b0xvd2VyQ2FzZSgpXT1TX3RbZV0sc30se30pLEZVYT1PYmplY3Qua2V5cyh5OGUpLnJlZHVjZShmdW5jdGlvbihzLGUpe3ZhciB0PXk4ZVtlXTtyZXR1cm4gc1tlXT10WzkwMF18fEIxKE9iamVjdC5lbnRyaWVzKHQpKVswXVsxXSxzfSx7fSk7aShCVWEsImhleFZhbHVlRnJvbUNvbnRlbnQiKTtpKEhVYSwiaXNTZWNvbmRhcnlMYXllciIpO2kocVVhLCJnZXRQcmVmaXgiKTtpKF9fdCwicmVwbGFjZUZvclBvc2l0aW9uIik7aShqVWEsInJlcGxhY2UiKTtpKFZVYSwicHJvY2Vzc2FibGUiKTtVVWE9aShmdW5jdGlvbihlKXtyZXR1cm4hIWUmJklTdC5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBlLmluY2x1ZGVzKHQpfSl9LCJoYXNQc2V1ZG9FbGVtZW50IiksV1VhPWkoZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107dmFyIHQ9bmV3IFNldCxhPWUuc3BsaXQoLywoPyFbXigpXSpcKSkvKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAudHJpbSgpfSk7YT1hLmZsYXRNYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAuaW5jbHVkZXMoIigiKT9wOnAuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQudHJpbSgpfSl9KTt2YXIgcj1BcmUoYSksbjt0cnl7Zm9yKHIucygpOyEobj1yLm4oKSkuZG9uZTspe3ZhciBvPW4udmFsdWU7aWYoVVVhKG8pKXt2YXIgbD1JU3QucmVkdWNlKGZ1bmN0aW9uKHAsZCl7cmV0dXJuIHAucmVwbGFjZShkLCIiKX0sbyk7bCE9PSIiJiZsIT09IioiJiZ0LmFkZChsKX19fWNhdGNoKHApe3IuZShwKX1maW5hbGx5e3IuZigpfXJldHVybiB0fSwicGFyc2VDU1NSdWxlRm9yUHNldWRvcyIpO2koTV90LCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO0dVYT17aG9va3M6aShmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmkoZnVuY3Rpb24odCl7cmV0dXJuIHQucHNldWRvRWxlbWVudHNDYWxsYmFjaz1NX3QsdH0sIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiKX19LCJob29rcyIpLHByb3ZpZGVzOmkoZnVuY3Rpb24oZSl7ZS5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24odCl7dmFyIGE9dC5ub2RlLHI9YT09PXZvaWQgMD9kaTphO1d0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZNX3Qocil9fSwicHJvdmlkZXMiKX0sel90PSExLEtVYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57ZG9tOnt1bndhdGNoOmkoZnVuY3Rpb24oKXtnX3QoKSx6X3Q9ITB9LCJ1bndhdGNoIil9fX0sIm1peG91dCIpLGhvb2tzOmkoZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmkoZnVuY3Rpb24oKXtiX3QoZDhlKCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzIix7fSkpfSwiYm9vdHN0cmFwIiksbm9BdXRvOmkoZnVuY3Rpb24oKXtNVWEoKX0sIm5vQXV0byIpLHdhdGNoOmkoZnVuY3Rpb24odCl7dmFyIGE9dC5vYnNlcnZlTXV0YXRpb25zUm9vdDt6X3Q/eDhlKCk6Yl90KGQ4ZSgibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIse29ic2VydmVNdXRhdGlvbnNSb290OmF9KSl9LCJ3YXRjaCIpfX0sImhvb2tzIil9LENfdD1pKGZ1bmN0aW9uKGUpe3ZhciB0PXtzaXplOjE2LHg6MCx5OjAsZmxpcFg6ITEsZmxpcFk6ITEscm90YXRlOjB9O3JldHVybiBlLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiAiKS5yZWR1Y2UoZnVuY3Rpb24oYSxyKXt2YXIgbj1yLnRvTG93ZXJDYXNlKCkuc3BsaXQoIi0iKSxvPW5bMF0sbD1uLnNsaWNlKDEpLmpvaW4oIi0iKTtpZihvJiZsPT09ImgiKXJldHVybiBhLmZsaXBYPSEwLGE7aWYobyYmbD09PSJ2IilyZXR1cm4gYS5mbGlwWT0hMCxhO2lmKGw9cGFyc2VGbG9hdChsKSxpc05hTihsKSlyZXR1cm4gYTtzd2l0Y2gobyl7Y2FzZSJncm93IjphLnNpemU9YS5zaXplK2w7YnJlYWs7Y2FzZSJzaHJpbmsiOmEuc2l6ZT1hLnNpemUtbDticmVhaztjYXNlImxlZnQiOmEueD1hLngtbDticmVhaztjYXNlInJpZ2h0IjphLng9YS54K2w7YnJlYWs7Y2FzZSJ1cCI6YS55PWEueS1sO2JyZWFrO2Nhc2UiZG93biI6YS55PWEueStsO2JyZWFrO2Nhc2Uicm90YXRlIjphLnJvdGF0ZT1hLnJvdGF0ZStsO2JyZWFrfXJldHVybiBhfSx0KX0sInBhcnNlVHJhbnNmb3JtU3RyaW5nIiksWVVhPXttaXhvdXQ6aShmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmkoZnVuY3Rpb24odCl7cmV0dXJuIENfdCh0KX0sInRyYW5zZm9ybSIpfX19LCJtaXhvdXQiKSxob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6aShmdW5jdGlvbih0LGEpe3ZhciByPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLXRyYW5zZm9ybSIpO3JldHVybiByJiYodC50cmFuc2Zvcm09Q190KHIpKSx0fSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbih0KXt2YXIgYT10Lm1haW4scj10LnRyYW5zZm9ybSxuPXQuY29udGFpbmVyV2lkdGgsbz10Lmljb25XaWR0aCxsPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChuLzIsIiAyNTYpIil9LHA9InRyYW5zbGF0ZSgiLmNvbmNhdChyLngqMzIsIiwgIikuY29uY2F0KHIueSozMiwiKSAiKSxkPSJzY2FsZSgiLmNvbmNhdChyLnNpemUvMTYqKHIuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KHIuc2l6ZS8xNiooci5mbGlwWT8tMToxKSwiKSAiKSx1PSJyb3RhdGUoIi5jb25jYXQoci5yb3RhdGUsIiAwIDApIiksYz17dHJhbnNmb3JtOiIiLmNvbmNhdChwLCIgIikuY29uY2F0KGQsIiAiKS5jb25jYXQodSl9LGI9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG8vMiotMSwiIC0yNTYpIil9LHY9e291dGVyOmwsaW5uZXI6YyxwYXRoOmJ9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6ZHQoe30sdi5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6ZHQoe30sdi5pbm5lciksY2hpbGRyZW46W3t0YWc6YS5pY29uLnRhZyxjaGlsZHJlbjphLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpkdChkdCh7fSxhLmljb24uYXR0cmlidXRlcyksdi5wYXRoKX1dfV19fX0sInByb3ZpZGVzIil9LHc4ZT17eDowLHk6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn07aShUX3QsImZpbGxCbGFjayIpO2koWlVhLCJkZUdyb3VwIik7WFVhPXtob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6aShmdW5jdGlvbih0LGEpe3ZhciByPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2siKSxuPXI/VnJlKHIuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG8udHJpbSgpfSkpOmlfdCgpO3JldHVybiBuLnByZWZpeHx8KG4ucHJlZml4PWNoKCkpLHQubWFzaz1uLHQubWFza0lkPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2staWQiKSx0fSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RNYXNrPWZ1bmN0aW9uKHQpe3ZhciBhPXQuY2hpbGRyZW4scj10LmF0dHJpYnV0ZXMsbj10Lm1haW4sbz10Lm1hc2ssbD10Lm1hc2tJZCxwPXQudHJhbnNmb3JtLGQ9bi53aWR0aCx1PW4uaWNvbixjPW8ud2lkdGgsYj1vLmljb24sdj1IVmEoe3RyYW5zZm9ybTpwLGNvbnRhaW5lcldpZHRoOmMsaWNvbldpZHRoOmR9KSx4PXt0YWc6InJlY3QiLGF0dHJpYnV0ZXM6ZHQoZHQoe30sdzhlKSx7fSx7ZmlsbDoid2hpdGUifSl9LG09dS5jaGlsZHJlbj97Y2hpbGRyZW46dS5jaGlsZHJlbi5tYXAoVF90KX06e30sZj17dGFnOiJnIixhdHRyaWJ1dGVzOmR0KHt9LHYuaW5uZXIpLGNoaWxkcmVuOltUX3QoZHQoe3RhZzp1LnRhZyxhdHRyaWJ1dGVzOmR0KGR0KHt9LHUuYXR0cmlidXRlcyksdi5wYXRoKX0sbSkpXX0seT17dGFnOiJnIixhdHRyaWJ1dGVzOmR0KHt9LHYub3V0ZXIpLGNoaWxkcmVuOltmXX0sTT0ibWFzay0iLmNvbmNhdChsfHxIU3QoKSksej0iY2xpcC0iLmNvbmNhdChsfHxIU3QoKSksTj17dGFnOiJtYXNrIixhdHRyaWJ1dGVzOmR0KGR0KHt9LHc4ZSkse30se2lkOk0sbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W3gseV19LEM9e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDp6fSxjaGlsZHJlbjpaVWEoYil9LE5dfTtyZXR1cm4gYS5wdXNoKEMse3RhZzoicmVjdCIsYXR0cmlidXRlczpkdCh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdCh6LCIpIiksbWFzazoidXJsKCMiLmNvbmNhdChNLCIpIil9LHc4ZSl9KSx7Y2hpbGRyZW46YSxhdHRyaWJ1dGVzOnJ9fX0sInByb3ZpZGVzIil9LFFVYT17cHJvdmlkZXM6aShmdW5jdGlvbihlKXt2YXIgdD0hMTtuaC5tYXRjaE1lZGlhJiYodD1uaC5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXMpLGUubWlzc2luZ0ljb25BYnN0cmFjdD1mdW5jdGlvbigpe3ZhciBhPVtdLHI9e2ZpbGw6ImN1cnJlbnRDb2xvciJ9LG49e2F0dHJpYnV0ZVR5cGU6IlhNTCIscmVwZWF0Q291bnQ6ImluZGVmaW5pdGUiLGR1cjoiMnMifTthLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpkdChkdCh7fSxyKSx7fSx7ZDoiTTE1Ni41LDQ0Ny43bC0xMi42LDI5LjVjLTE4LjctOS41LTM1LjktMjEuMi01MS41LTM0LjlsMjIuNy0yMi43QzEyNy42LDQzMC41LDE0MS41LDQ0MCwxNTYuNSw0NDcuN3ogTTQwLjYsMjcySDguNSBjMS40LDIxLjIsNS40LDQxLjcsMTEuNyw2MS4xTDUwLDMyMS4yQzQ1LjEsMzA1LjUsNDEuOCwyODksNDAuNiwyNzJ6IE00MC42LDI0MGMxLjQtMTguOCw1LjItMzcsMTEuMS01NC4xbC0yOS41LTEyLjYgQzE0LjcsMTk0LjMsMTAsMjE2LjcsOC41LDI0MEg0MC42eiBNNjQuMywxNTYuNWM3LjgtMTQuOSwxNy4yLTI4LjgsMjguMS00MS41TDY5LjcsOTIuM2MtMTMuNywxNS42LTI1LjUsMzIuOC0zNC45LDUxLjUgTDY0LjMsMTU2LjV6IE0zOTcsNDE5LjZjLTEzLjksMTItMjkuNCwyMi4zLTQ2LjEsMzAuNGwxMS45LDI5LjhjMjAuNy05LjksMzkuOC0yMi42LDU2LjktMzcuNkwzOTcsNDE5LjZ6IE0xMTUsOTIuNCBjMTMuOS0xMiwyOS40LTIyLjMsNDYuMS0zMC40bC0xMS45LTI5LjhjLTIwLjcsOS45LTM5LjgsMjIuNi01Ni44LDM3LjZMMTE1LDkyLjR6IE00NDcuNywzNTUuNWMtNy44LDE0LjktMTcuMiwyOC44LTI4LjEsNDEuNSBsMjIuNywyMi43YzEzLjctMTUuNiwyNS41LTMyLjksMzQuOS01MS41TDQ0Ny43LDM1NS41eiBNNDcxLjQsMjcyYy0xLjQsMTguOC01LjIsMzctMTEuMSw1NC4xbDI5LjUsMTIuNiBjNy41LTIxLjEsMTIuMi00My41LDEzLjYtNjYuOEg0NzEuNHogTTMyMS4yLDQ2MmMtMTUuNyw1LTMyLjIsOC4yLTQ5LjIsOS40djMyLjFjMjEuMi0xLjQsNDEuNy01LjQsNjEuMS0xMS43TDMyMS4yLDQ2MnogTTI0MCw0NzEuNGMtMTguOC0xLjQtMzctNS4yLTU0LjEtMTEuMWwtMTIuNiwyOS41YzIxLjEsNy41LDQzLjUsMTIuMiw2Ni44LDEzLjZWNDcxLjR6IE00NjIsMTkwLjhjNSwxNS43LDguMiwzMi4yLDkuNCw0OS4yaDMyLjEgYy0xLjQtMjEuMi01LjQtNDEuNy0xMS43LTYxLjFMNDYyLDE5MC44eiBNOTIuNCwzOTdjLTEyLTEzLjktMjIuMy0yOS40LTMwLjQtNDYuMWwtMjkuOCwxMS45YzkuOSwyMC43LDIyLjYsMzkuOCwzNy42LDU2LjkgTDkyLjQsMzk3eiBNMjcyLDQwLjZjMTguOCwxLjQsMzYuOSw1LjIsNTQuMSwxMS4xbDEyLjYtMjkuNUMzMTcuNywxNC43LDI5NS4zLDEwLDI3Miw4LjVWNDAuNnogTTE5MC44LDUwIGMxNS43LTUsMzIuMi04LjIsNDkuMi05LjRWOC41Yy0yMS4yLDEuNC00MS43LDUuNC02MS4xLDExLjdMMTkwLjgsNTB6IE00NDIuMyw5Mi4zTDQxOS42LDExNWMxMiwxMy45LDIyLjMsMjkuNCwzMC41LDQ2LjEgbDI5LjgtMTEuOUM0NzAsMTI4LjUsNDU3LjMsMTA5LjQsNDQyLjMsOTIuM3ogTTM5Nyw5Mi40bDIyLjctMjIuN2MtMTUuNi0xMy43LTMyLjgtMjUuNS01MS41LTM0LjlsLTEyLjYsMjkuNSBDMzcwLjQsNzIuMSwzODQuNCw4MS41LDM5Nyw5Mi40eiJ9KX0pO3ZhciBvPWR0KGR0KHt9LG4pLHt9LHthdHRyaWJ1dGVOYW1lOiJvcGFjaXR5In0pLGw9e3RhZzoiY2lyY2xlIixhdHRyaWJ1dGVzOmR0KGR0KHt9LHIpLHt9LHtjeDoiMjU2IixjeToiMzY0IixyOiIyOCJ9KSxjaGlsZHJlbjpbXX07cmV0dXJuIHR8fGwuY2hpbGRyZW4ucHVzaCh7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOmR0KGR0KHt9LG4pLHt9LHthdHRyaWJ1dGVOYW1lOiJyIix2YWx1ZXM6IjI4OzE0OzI4OzI4OzE0OzI4OyJ9KX0se3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpkdChkdCh7fSxvKSx7fSx7dmFsdWVzOiIxOzA7MTsxOzA7MTsifSl9KSxhLnB1c2gobCksYS5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6ZHQoZHQoe30scikse30se29wYWNpdHk6IjEiLGQ6Ik0yNjMuNywzMTJoLTE2Yy02LjYsMC0xMi01LjQtMTItMTJjMC03MSw3Ny40LTYzLjksNzcuNC0xMDcuOGMwLTIwLTE3LjgtNDAuMi01Ny40LTQwLjJjLTI5LjEsMC00NC4zLDkuNi01OS4yLDI4LjcgYy0zLjksNS0xMS4xLDYtMTYuMiwyLjRsLTEzLjEtOS4yYy01LjYtMy45LTYuOS0xMS44LTIuNi0xNy4yYzIxLjItMjcuMiw0Ni40LTQ0LjcsOTEuMi00NC43YzUyLjMsMCw5Ny40LDI5LjgsOTcuNCw4MC4yIGMwLDY3LjYtNzcuNCw2My41LTc3LjQsMTA3LjhDMjc1LjcsMzA2LjYsMjcwLjMsMzEyLDI2My43LDMxMnoifSksY2hpbGRyZW46dD9bXTpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpkdChkdCh7fSxvKSx7fSx7dmFsdWVzOiIxOzA7MDswOzA7MTsifSl9XX0pLHR8fGEucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOmR0KGR0KHt9LHIpLHt9LHtvcGFjaXR5OiIwIixkOiJNMjMyLjUsMTM0LjVsNywxNjhjMC4zLDYuNCw1LjYsMTEuNSwxMiwxMS41aDljNi40LDAsMTEuNy01LjEsMTItMTEuNWw3LTE2OGMwLjMtNi44LTUuMi0xMi41LTEyLTEyLjVoLTIzIEMyMzcuNywxMjIsMjMyLjIsMTI3LjcsMjMyLjUsMTM0LjV6In0pLGNoaWxkcmVuOlt7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOmR0KGR0KHt9LG8pLHt9LHt2YWx1ZXM6IjA7MDsxOzE7MDswOyJ9KX1dfSkse3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6Im1pc3NpbmcifSxjaGlsZHJlbjphfX19LCJwcm92aWRlcyIpfSxKVWE9e2hvb2tzOmkoZnVuY3Rpb24oKXtyZXR1cm57cGFyc2VOb2RlQXR0cmlidXRlczppKGZ1bmN0aW9uKHQsYSl7dmFyIHI9YS5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtc3ltYm9sIiksbj1yPT09bnVsbD8hMTpyPT09IiI/ITA6cjtyZXR1cm4gdC5zeW1ib2w9bix0fSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIil9LGVXYT1bVlZhLEFVYSxOVWEsUlVhLE9VYSxHVWEsS1VhLFlVYSxYVWEsUVVhLEpVYV07blVhKGVXYSx7bWl4b3V0c1RvOl9sfSk7dFdhPV9sLm5vQXV0byxhV2E9X2wuY29uZmlnLHNXYT1fbC5saWJyYXJ5LGlXYT1fbC5kb20scldhPV9sLnBhcnNlLG9XYT1fbC5maW5kSWNvbkRlZmluaXRpb24sbldhPV9sLnRvSHRtbCxHaz1fbC5pY29uLGxXYT1fbC5sYXllcixjV2E9X2wudGV4dCxkV2E9X2wuY291bnRlcn0pO3ZhciB1V2EsUzhlLCRfdCxEX3QsTF90LEVfdCxfOGUsUF90LElfdCxBX3QsTl90LFJfdCxPX3QsRl90LEJfdCxIX3QscV90LGpfdCxWX3QsVV90LFdfdCxHX3QsS190LFlfdCxaX3QsWF90LFFfdCxKX3QsZU10LE04ZSx0TXQsYU10LHNNdCxpTXQsck10LG9NdCxuTXQsbE10LGNNdCxkTXQsdU10LHBNdCxoTXQsZk10LG1NdCxnTXQsYk10LHZNdCx4TXQsejhlLHlNdCx3TXQsa010LFNNdCxfTXQsTU10LHpNdCxDTXQsVE10LCRNdCxETXQsTE10LEVNdCxQTXQsSU10LEFNdCxOTXQsUk10LE9NdCxGTXQsQk10LEM4ZSxITXQscU10LGpNdCxWTXQsVU10LFdNdCxHTXQsS010LFlNdCxaTXQsWE10LFFNdCxKTXQsZXp0LHR6dCxhenQsc3p0LGl6dCxyenQsb3p0LG56dCxsenQsY3p0LGR6dCx1enQscHp0LGh6dCxmenQsbXp0LGd6dCxienQsdnp0LHh6dCx5enQsd3p0LGt6dCxTenQsX3p0LE16dCx6enQsQ3p0LE1iLFR6dCwkenQsVDhlLER6dCxMenQsRXp0LCQ4ZSxQenQsSXp0LFlyZSxBenQsTnp0LEQ4ZSxSenQsT3p0LEZ6dCxCenQsSHp0LEw4ZSxxenQsanp0LFZ6dCxVenQsV3p0LEd6dCxLenQsWXp0LFp6dCxYenQsRThlLFF6dCxKenQsZUN0LHRDdCxhQ3Qsc0N0LGlDdCxyQ3Qsb0N0LFA4ZSxuQ3QsbEN0LGNDdCxkQ3QsdUN0LHBDdCxoQ3QsZkN0LEk4ZSxtQ3QsZ0N0LGJDdCxBOGUsdkN0LHhDdCx5Q3Qsd0N0LGtDdCxTQ3QsX0N0LE1DdCx6Q3QsQ0N0LFRDdCwkQ3QsREN0LExDdCxFQ3QsUEN0LElDdCxBQ3QsTkN0LFJDdCxPQ3QsRkN0LEJDdCxIQ3QscUN0LGpDdCxWQ3QsTjhlLFVDdCxXQ3QsR0N0LEtDdCxZQ3QsWkN0LFhDdCxSOGUsUUN0LEpDdCxlVHQsdFR0LGFUdCxzVHQsaVR0LHJUdCxvVHQsblR0LGxUdCxjVHQsZFR0LHVUdCxwVHQsaFR0LGZUdCxtVHQsZ1R0LGJUdCx2VHQseFR0LHlUdCx3VHQsa1R0LFNUdCxfVHQsTVR0LHpUdCxDVHQsVFR0LCRUdCxEVHQsTFR0LEVUdCxQVHQsSVR0LEFUdCxOVHQsUlR0LE9UdCxGVHQsemIsQlR0LEhUdCxxVHQsalR0LFZUdCxPOGUsVVR0LFdUdCxHVHQsQ2IsS1R0LFlUdCxaVHQsWFR0LFFUdCxKVHQsRjhlLGUkdCx0JHQsYSR0LHMkdCxpJHQsciR0LG8kdCxuJHQsbCR0LGMkdCxkJHQsdSR0LHAkdCxoJHQsZiR0LG0kdCxYMyxnJHQsYiR0LHYkdCx4JHQseSR0LHckdCxrJHQsUyR0LF8kdCxNJHQseiR0LEMkdCxUJHQsJCR0LEQkdCxMJHQsRSR0LFAkdCxJJHQsQSR0LE4kdCxSJHQsTyR0LEYkdCxCJHQsSCR0LHEkdCxqJHQsViR0LFUkdCxXJHQsRyR0LEskdCxZJHQsWiR0LFgkdCxRJHQsSiR0LGVEdCxCOGUsdER0LGFEdCxzRHQsaUR0LHJEdCxvRHQsbkR0LGxEdCxjRHQsZER0LHVEdCxwRHQsaER0LGZEdCxtRHQsSDhlLGdEdCxiRHQsdkR0LHhEdCx5RHQsd0R0LHE4ZSxrRHQsU0R0LF9EdCxNRHQsekR0LENEdCxURHQsJER0LEREdCxMRHQsRUR0LFBEdCxJRHQsQUR0LE5EdCxSRHQsT0R0LEZEdCxCRHQsSER0LHFEdCxqRHQsVkR0LFVEdCxXRHQsR0R0LEtEdCxZRHQsajhlLFRiLFpEdCxYRHQsUUR0LEpEdCxlTHQsdEx0LGFMdCxzTHQsaUx0LHJMdCxvTHQsbkx0LFY4ZSxsTHQsY0x0LGRMdCx1THQscEx0LGhMdCxmTHQsbUx0LCRiLGdMdCxiTHQsdkx0LHhMdCx5THQsd0x0LGtMdCxTTHQsX0x0LE1MdCx6THQsQ0x0LFRMdCxVOGUsJEx0LERMdCxMTHQsRUx0LFBMdCxJTHQsQUx0LE5MdCxSTHQsT0x0LEZMdCxCTHQsSEx0LHFMdCxqTHQsVkx0LFVMdCxXOGUsV0x0LEdMdCxLTHQsRzhlLFlMdCxaTHQsWEx0LFFMdCxEYixKTHQsSzhlLGVFdCx0RXQsYUV0LHNFdCxpRXQsckV0LFk4ZSxvRXQsbkV0LGxFdCxjRXQsZEV0LHVFdCxwRXQsaEV0LGZFdCxtRXQsZ0V0LGJFdCx2RXQseEV0LHlFdCx3RXQsa0V0LFNFdCxfRXQsTUV0LHpFdCxDRXQsVEV0LCRFdCxERXQsWjhlLExFdCxFRXQsUEV0LElFdCxBRXQsTkV0LFJFdCxPRXQsWDhlLEZFdCxCRXQsSEV0LHFFdCxqRXQsVkV0LFVFdCxXRXQsR0V0LEtFdCxZRXQsWkV0LFhFdCxRRXQsUThlLEpFdCxlUHQsdFB0LGFQdCxzUHQsaVB0LHJQdCxvUHQsblB0LGxQdCxjUHQsZFB0LHVQdCxwUHQsaFB0LEo4ZSxmUHQsbVB0LGdQdCxiUHQsdlB0LHhQdCx5UHQsd1B0LGtQdCxTUHQsX1B0LE1QdCx6UHQsQ1B0LExiLFRQdCwkUHQsRFB0LExQdCxFUHQsUFB0LElQdCxBUHQsTlB0LFJQdCxlZ2UsT1B0LEZQdCxCUHQsSFB0LHFQdCxqUHQsVlB0LFVQdCxXUHQsR1B0LEtQdCxZUHQsWlB0LFhQdCxRUHQsSlB0LGVJdCx0SXQsYUl0LHNJdCxpSXQsckl0LG9JdCxuSXQsbEl0LGNJdCxkSXQsdUl0LHBJdCxoSXQsZkl0LG1JdCxnSXQsYkl0LHZJdCx4SXQseUl0LHdJdCx0Z2Usa0l0LFNJdCxfSXQsTUl0LHpJdCxhZ2UsQ0l0LFRJdCwkSXQsREl0LExJdCxFSXQscFdhLHNnZT1nKCgpPT57dVdhPSJmYWIiLFM4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0aHViIixpY29uOls0NDgsNTEyLFsiZ2l0aHViLXNxdWFyZSJdLCJmMDkyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNjUuOCA0MDcuN2MwLTEuOCAwLTYgLjEtMTEuNiAuMS0xMS40IC4xLTI4LjggLjEtNDMuNyAwLTE1LjYtNS4yLTI1LjUtMTEuMy0zMC43IDM3LTQuMSA3Ni05LjIgNzYtNzMuMSAwLTE4LjItNi41LTI3LjMtMTcuMS0zOSAxLjctNC4zIDcuNC0yMi0xLjctNDUtMTMuOS00LjMtNDUuNyAxNy45LTQ1LjcgMTcuOS0yNi42LTcuNS01Ni42LTcuNS04My4yIDAgMCAwLTMxLjgtMjIuMi00NS43LTE3LjktOS4xIDIyLjktMy41IDQwLjYtMS43IDQ1LTEwLjYgMTEuNy0xNS42IDIwLjgtMTUuNiAzOSAwIDYzLjYgMzcuMyA2OSA3NC4zIDczLjEtNC44IDQuMy05LjEgMTEuNy0xMC42IDIyLjMtOS41IDQuMy0zMy44IDExLjctNDguMy0xMy45LTkuMS0xNS44LTI1LjUtMTcuMS0yNS41LTE3LjEtMTYuMi0uMi0xLjEgMTAuMi0xLjEgMTAuMiAxMC44IDUgMTguNCAyNC4yIDE4LjQgMjQuMiA5LjcgMjkuNyA1Ni4xIDE5LjcgNTYuMSAxOS43IDAgOSAuMSAyMS43IC4xIDMwLjYgMCA0LjggLjEgOC42IC4xIDEwIDAgNC4zLTMgOS41LTExLjUgOC02Ni0yMi4xLTExMi4yLTg0LjktMTEyLjItMTU4LjMgMC05MS44IDcwLjItMTYxLjUgMTYyLTE2MS41UzM4OCAxNjUuNiAzODggMjU3LjRjLjEgNzMuNC00NC43IDEzNi4zLTExMC43IDE1OC4zLTguNCAxLjUtMTEuNS0zLjctMTEuNS04em0tOTAuNS01NC44Yy0uMi0xLjUgMS4xLTIuOCAzLTMuMiAxLjktLjIgMy43IC42IDMuOSAxLjkgLjMgMS4zLTEgMi42LTMgMy0xLjkgLjQtMy43LS40LTMuOS0xLjd6bS05LjEgMy4yYy0yLjIgLjItMy43LS45LTMuNy0yLjQgMC0xLjMgMS41LTIuNCAzLjUtMi40IDEuOS0uMiAzLjcgLjkgMy43IDIuNCAwIDEuMy0xLjUgMi40LTMuNSAyLjR6bS0xNC4zLTIuMmMtMS45LS40LTMuMi0xLjktMi44LTMuMnMyLjQtMS45IDQuMS0xLjVjMiAuNiAzLjMgMi4xIDIuOCAzLjQtLjQgMS4zLTIuNCAxLjktNC4xIDEuM3ptLTEyLjUtNy4zYy0xLjUtMS4zLTEuOS0zLjItLjktNC4xIC45LTEuMSAyLjgtLjkgNC4zIC42IDEuMyAxLjMgMS44IDMuMyAuOSA0LjEtLjkgMS4xLTIuOCAuOS00LjMtLjZ6bS04LjUtMTBjLTEuMS0xLjUtMS4xLTMuMiAwLTMuOSAxLjEtLjkgMi44LS4yIDMuNyAxLjMgMS4xIDEuNSAxLjEgMy4zIDAgNC4xLS45IC42LTIuNiAwLTMuNy0xLjV6bS02LjMtOC44Yy0xLjEtMS4zLTEuMy0yLjgtLjQtMy41IC45LS45IDIuNC0uNCAzLjUgLjYgMS4xIDEuMyAxLjMgMi44IC40IDMuNS0uOSAuOS0yLjQgLjQtMy41LS42em0tNi02LjRjLTEuMy0uNi0xLjktMS43LTEuNS0yLjYgLjQtLjYgMS41LS45IDIuOC0uNCAxLjMgLjcgMS45IDEuOCAxLjUgMi42LS40IC45LTEuNyAxLjEtMi44IC40eiJdfSwkX3Q9UzhlLERfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGluay1wZWFrcyIsaWNvbjpbNTc2LDUxMixbXSwiZjczMSIsIk00NjUuNCA0MDkuNGw4Ny4xLTE1MC4yLTMyLS4zLTU1LjEgOTUtMjA2LjItMzUzLjktMjM2LjIgNDA3LjQgMzIgLjMgMjA0LjItMzUyLjEgMjA2LjIgMzUzLjh6TTExMC4xIDM2NS4zbDMyLjEgMCAxMTcuNC0yMDIuNSAyMDMuNCAzNDkuMSAzMi41IC4xLTIzNS44LTQwNC42LTE0OS42IDI1Ny45eiJdfSxMX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLWRyaXZlIixpY29uOls1MTIsNTEyLFtdLCJmM2FhIiwiTTMzOSAzMTQuOUwxNzUuNCAzMiAzMzYuNiAzMiA1MDAuMiAzMTQuOSAzMzkgMzE0Ljl6TTIwMS41IDMzOC41bC04MC42IDE0MS41IDMxMC41IDAgODAuNi0xNDEuNS0zMTAuNSAwek0xNTQuMSA2Ny40TDAgMzM4LjUgODAuNiA0ODAgMjM3IDIwOC44IDE1NC4xIDY3LjR6Il19LEVfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdXRvcHJlZml4ZXIiLGljb246WzY0MCw1MTIsW10sImY0MWMiLCJNMzE4LjQgMTZsLTE2MSA0ODAgNzcuNSAwIDI1LjQtODEuNCAxMTkuNSAwIDI1LjIgODEuNCA3Ny41IDAtMTY0LjEtNDgwek0yNzguMSAzNTcuOWw0MS4yLTEzMC40IDEuNSAwIDQwLjkgMTMwLjQtODMuNiAwek02NDAgNDA1TDYzMCAzNzMuNiA0NjIuMSAzNTggNDgxLjUgNDE0LjUgNjQwIDQwNXpNMTc3LjkgMzU4TDEwIDM3My43IDAgNDA1IDE1OC41IDQxNC40IDE3Ny45IDM1OHoiXX0sXzhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS12aWFkZW8iLGljb246WzQ0OCw1MTIsWyJ2aWFkZW8tc3F1YXJlIl0sImYyYWEiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTExOC4zIDM4MS4yYy02OC03My42LTE5LjgtMTk2LjEgODEuMi0xOTYuMSAxMy4zIDAgMjYuNiAyLjEgMzkuMSA2LjctNC4zIDguNC03LjMgMTcuNi04LjQgMjcuMS05LjctNC4xLTIwLjItNi0zMC43LTYtNDguOCAwLTg0LjYgNDEuNy04NC42IDg4LjkgMCA0MyAyOC41IDc4LjcgNjkuNSA4NS45IDYxLjUtMjQgNzIuOS0xMTcuNiA3Mi45LTE3NSAwLTcuMyAwLTE0LjgtLjYtMjIuMS0xMS4yLTMyLjktMjYuNi02NC42LTQ0LjItOTQuNSAyNy4xIDE4LjMgNDEuOSA2Mi41IDQ0LjIgOTQuMWwwIC40YzcuNyAyMi41IDExLjggNDYuMiAxMS44IDcwIDAgNTQuMS0yMS45IDk5LTY4LjMgMTI4LjJsLTIuNCAuMmM1MCAxIDg2LjItMzguNiA4Ni4yLTg3LjIgMC0xMi4yLTIuMS0yNC4zLTYuOS0zNS43IDkuNS0xLjkgMTguNS01LjYgMjYuNC0xMC41IDE1LjMgMzYuNiAxMi42IDg3LjMtMjIuOCAxMjUuNi00Mi40IDQ2LjItMTIwIDQ2LjYtMTYyLjQgMHpNMjc0LjYgMjE3LjZjMjEuOS0xMiA0OS42LTMwLjcgNjIuMy01MyAxLjUtMyA0LjEtOC42IDQuNS0xMi0xMi41IDI3LjktNDQuMiA0OS44LTczLjkgNTYuNy00LjctNy4zLTcuNS0xNS41LTcuNS0yNC4zIDAtMTAuMyA1LjItMjQuMSAxMi45LTMxLjYgOC4zLTcuOSAxOC0xMC45IDI3LjktMTQuMSAxNi01LjEgMzIuNS0xMC4zIDQ0LjUtMzUuOSAzMi41IDQ2LjIgMTMuMSAxMzAuMy0zNi4zIDEzMC4zLTEzLjMgMC0yNS4xLTcuMS0zNC40LTE2LjF6Il19LFBfdD1fOGUsSV90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNwYW5lbCIsaWNvbjpbNjQwLDUxMixbXSwiZjM4OCIsIk0yMTAuMyAyMjAuMmMtNS42LTI0LjgtMjYuOS00MS4yLTUxLTQxLjJsLTM3IDBjLTcuMSAwLTEyLjUgNC41LTE0LjMgMTAuOUw3My4xIDMyMCA5Ny44IDMxOS45YzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2wyNS44LTk1LjcgMTkuOCAwYzguNCAwIDE2LjIgNS42IDE4LjMgMTQuOCAyLjUgMTAuOS01LjkgMjIuNi0xOC4zIDIyLjZsLTEwLjMgMGMtNyAwLTEyLjUgNC42LTE0LjMgMTAuOGwtNi40IDIzLjggMzIgMGMzNy4yIDAgNTguMy0zNi4yIDUxLjctNjUuM3ptLTE1Ni41IDI4bDE4LjYgMGM2LjkgMCAxMi40LTQuNCAxNC4zLTEwLjlsNi4yLTIzLjYtNDAgMEMzMCAyMTMuNyA5IDIyNy44IDEuNyAyNTQuOC03IDI4OC42IDE4LjUgMzIwIDUyIDMyMGwxMi40IDAgNy4xLTI2LjFjMS4yLTQuNC0yLjItOC4zLTYuNC04LjNsLTExLjMgMGMtMjQuNyAwLTI0LjktMzcuNCAwLTM3LjR6bTI0Ny41LTM0LjhsLTc3LjkgMC0zLjUgMTMuNGMtMi40IDkuNiA0LjUgMTguNSAxNC4yIDE4LjVsNTcuNSAwYzQgMCAyLjQgNC4zIDIuMSA1LjNsLTguNiAzMS44Yy0uNCAxLjQtLjkgNS4zLTUuNSA1LjNsLTM0LjkgMGMtNS4zIDAtNS4zLTcuOSAwLTcuOWwyMS42IDBjNi44IDAgMTIuMy00LjYgMTQuMi0xMC44bDMuNS0xMy4yLTQ4LjQgMGMtMzkuMiAwLTQzLjYgNjMuOC0uNyA2My44bDU3LjUgLjJjMTEuMiAwIDIwLjYtNy4yIDIzLjQtMTcuOGwxNC01MS44YzQuOC0xOS4yLTkuNy0zNi44LTI4LjUtMzYuOHpNNjMzLjEgMTc5bC0xOC45IDBjLTQuOSAwLTkuMiAzLjItMTAuNCA3LjlMNTY4LjIgMzIwYzIwLjcgMCAzOS44LTEzLjggNDQuOS0zNC41bDI2LjUtOTguMmMxLjItNC4zLTItOC4zLTYuNS04LjN6TTM5Ni44IDIxMy43bDAgLjEtNDguMyAwLTI2LjIgOThjLTEuMiA0LjQgMi4yIDguMyA2LjQgOC4zbDE4LjkgMGM0LjggMCA5LjItMyAxMC40LTcuOGwxNy4yLTY0IDE5LjggMGMxMi41IDAgMjEuNCAxMS44IDE4LjEgMjMuNGwtMTAuNiA0MGMtMS4yIDQuMyAxLjkgOC4zIDYuNCA4LjNsMTkuMSAwYzQuNiAwIDkuMS0yLjkgMTAuMy03LjhsOC44LTMzLjFjOS0zMy4xLTE1LjktNjUuNC01MC4zLTY1LjR6bTk4LjMgNzQuNmMtMy42IDAtNi0zLjQtNS4xLTYuN2w4LTMwYy45LTMuOSAzLjctNiA3LjgtNmwzMi45IDBjMi42IDAgNC42IDIuNCAzLjkgNS4xbC0uNyAyLjZjLS42IDItMS45IDMtMy45IDNsLTIxLjYgMGMtNyAwLTEyLjYgNC42LTE0LjIgMTAuOGwtMy41IDEzIDUzLjQgMGMxMC41IDAgMjAuMy02LjYgMjMuMi0xNy42bDMuMi0xMmM0LjktMTkuMS05LjMtMzYuOC0yOC4zLTM2LjhsLTQ3LjMgMGMtMTcuOSAwLTMzLjggMTItMzguNiAyOS42bC0xMC44IDQwYy01IDE3LjcgOC4zIDM2LjcgMjguMyAzNi43bDY2LjcgMGM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsNS43LTIxLTczLjMgMHoiXX0sQV90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lbmRlbGV5IixpY29uOls2NDAsNTEyLFtdLCJmN2IzIiwiTTYyNC42IDMyNS4yYy0xMi4zLTEyLjQtMjkuNy0xOS4yLTQ4LjQtMTcuMi00My4zLTEtNDkuNy0zNC45LTM3LjUtOTguOCAyMi44LTU3LjUtMTQuOS0xMzEuNS04Ny40LTEzMC44LTc3LjQgLjctODEuNyA4Mi0xMzAuOSA4Mi00OC4xIDAtNTQtODEuMy0xMzAuOS04Mi03Mi45LS44LTExMC4xIDczLjMtODcuNCAxMzAuOCAxMi4yIDYzLjkgNS44IDk3LjgtMzcuNSA5OC44LTIxLjItMi4zLTM3IDYuNS01MyAyMi41LTE5LjkgMTkuNy0xOS4zIDk0LjggNDIuNiAxMDIuNiA0Ny4xIDUuOSA4MS42LTQyLjkgNjEuMi04Ny44LTQ3LjMtMTAzLjcgMTg1LjktMTA2LjEgMTQ2LjUtOC4yLS4xIC4xLS4yIC4yLS4zIC40LTI2LjggNDIuOCA2LjggOTcuNCA1OC44IDk1LjIgNTIuMSAyLjEgODUuNC01Mi42IDU4LjgtOTUuMi0uMS0uMi0uMi0uMy0uMy0uNC0zOS40LTk3LjkgMTkzLjgtOTUuNSAxNDYuNSA4LjItNC42IDEwLTYuNyAyMS4zLTUuNyAzMyA0LjkgNTMuNCA2OC43IDc0LjEgMTA0LjkgMzUuMiAxNy44LTE0LjggMjMuMS02NS42IDAtODguM3pNMzIwLjcgMzA2LjFsLS42IDBjLTQzLjQgMC02Mi44LTM3LjUtNjIuOC02Mi44IDAtMzQuNyAyOC4yLTYyLjggNjIuOC02Mi44bC42IDBjMzQuNyAwIDYyLjggMjguMSA2Mi44IDYyLjggMCAyNS0xOS4yIDYyLjgtNjIuOCA2Mi44eiJdfSxOX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJhZnQyZGlnaXRhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjM5NiIsIk00OTYgMzk4LjFsLTE0NC04Mi4yIDAgNjQuNy05MS4zIDBjMzAuOC0zNSA4MS44LTk1LjkgMTExLjgtMTQ5LjMgMzUuMi02Mi42IDE2LjEtMTIzLjQtMTIuOC0xNTMuMy00LjQtNC42LTYyLjItNjIuOS0xNjYtNDEuMi01OS4xIDEyLjQtODkuNCA0My40LTEwNC4zIDY3LjMtMTMuMSAyMC45LTE3IDM5LjgtMTguMiA0Ny43LTUuNSAzMyAxOS40IDY3LjEgNTYuNyA2Ny4xIDMxLjcgMCA1Ny4zLTI1LjcgNTcuMy01Ny40IDAtMjcuMS0xOS43LTUyLjEtNDgtNTYuOCAxLjgtNy4zIDE3LjctMjEuMSAyNi4zLTI0LjcgNDEuMS0xNy4zIDc4IDUuMiA4My4zIDMzLjUgOC4zIDQ0LjMtMzcuMSA5MC40LTY5LjcgMTI3LjYtNzYuNiA4Ny0xNDIuOCAxNTUuNy0xNjEuMSAxNzQuOGwzMzYtLjEgMCA2NC4yIDE0NC04MS45ek0zODUuOSAzNzFsNDcuMSAyNy4yLTQ3LjEgMjcuMiAwLTU0LjR6TTEwNS40IDE2MS40YTIyLjQgMjIuNCAwIDEgMSA0NC44IDAgMjIuNCAyMi40IDAgMSAxIC00NC44IDB6TTk4LjUgMzgwLjVjMjUuNi0yNy40IDk3LjctMTA0LjcgMTUwLjgtMTY5LjkgMzUuMS00My4xIDQwLjMtODIuNCAyOC40LTExMi43LTcuNC0xOC44LTE3LjUtMzAuMi0yNC4zLTM1LjcgNDUuMyAyLjEgNjggMjMuNCA4Mi4yIDM4LjMgMCAwIDQyLjQgNDguMiA1LjggMTEzLjMtMzcgNjUuOS0xMTAuOSAxNDcuNS0xMjguNSAxNjYuN2wtMTE0LjQgMHoiXX0sUl90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlcGx5ZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlNiIsIk0zMjAgNDgwbC0xOTIgMEM1Ny42IDQ4MCAwIDQyMi40IDAgMzUyTDAgMTYwQzAgODkuNiA1Ny42IDMyIDEyOCAzMmwxOTIgMGM3MC40IDAgMTI4IDU3LjYgMTI4IDEyOGwwIDE5MmMwIDcwLjQtNTcuNiAxMjgtMTI4IDEyOHpNMTkzLjQgMjczLjJjLTYuMS0yLTExLjYtMy4xLTE2LjQtMy4xLTcuMiAwLTEzLjUgMS45LTE4LjkgNS42cy05LjYgOS0xMi44IDE1LjhsLTEuMSAwLTQuMi0xOC4zLTI4IDAgMCAxMzguOSAzNi4xIDAgMC04OS43YzEuNS01LjQgNC40LTkuOCA4LjctMTMuMnM5LjgtNS4xIDE2LjItNS4xYzQuNiAwIDkuOCAxIDE1LjYgMy4xbDQuOC0zNHpNMzA4LjYgMzc2LjZjLTMuMiAyLjQtNy43IDQuOC0xMy43IDcuMXMtMTIuOCAzLjUtMjAuNCAzLjVjLTEyLjIgMC0yMS4xLTMtMjYuNS04LjktNS41LTUuOS04LjUtMTQuNy05LTI2LjRsODMuMyAwYy45LTQuOCAxLjYtOS40IDIuMS0xMy45IC41LTQuNCAuNy04LjYgLjctMTIuNSAwLTEwLjctMS42LTE5LjctNC43LTI2LjktMy4yLTcuMi03LjMtMTMtMTIuNS0xNy4yLTUuMi00LjMtMTEuMS03LjMtMTcuOC05LjItNi43LTEuOC0xMy41LTIuOC0yMC42LTIuOC0yMS4xIDAtMzcuNSA2LjEtNDkuMiAxOC4zcy0xNy41IDMwLjUtMTcuNSA1NWMwIDIyLjggNS4yIDQwLjcgMTUuNiA1My43IDEwLjQgMTMuMSAyNi44IDE5LjYgNDkuMiAxOS42IDEwLjcgMCAyMC45LTEuNSAzMC40LTQuNnMxNy4xLTYuOCAyMi42LTExLjJsLTEyLTIzLjZ6bS0yMS44LTcwLjNjMy44IDUuNCA1LjMgMTMuMSA0LjYgMjMuMWwtNTEuNyAwYy45LTkuNCAzLjctMTcgOC4yLTIyLjZzMTEuNS04LjUgMjEtOC41YzguMi0uMSAxNC4xIDIuNiAxNy45IDh6bTc5LjkgMi41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjQtOS42LTUuNy0xNi43LTUuN2MtNi43IDAtMTIgMS45LTE2LjEgNS43cy02LjEgOC45LTYuMSAxNS40IDIgMTEuNyA2LjEgMTUuNnptMCAxMDAuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40LTkuNi01LjctMTYuNy01LjdjLTYuNyAwLTEyIDEuOS0xNi4xIDUuN3MtNi4xIDguOS02LjEgMTUuNGMwIDYuNiAyIDExLjcgNi4xIDE1LjZ6Il19LE9fdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbXBpcmUiLGljb246WzUxMiw1MTIsW10sImYxZDEiLCJNMjk1LjYgNTQuMmMtMTAuOC0yLjItMjIuMS0zLjMtMzMuNS0zLjZsMC0xOC4yYzc4LjEgMi4yIDE0Ni4xIDQ0IDE4NC42IDEwNi42bC0xNS44IDkuMWMtNi4xLTkuNy0xMi43LTE4LjgtMjAuMi0yNy4xbC0xOCAxNS41Yy0yNi0yOS42LTYxLjQtNTAuNy0xMDEuOS01OC40bDQuOC0yMy45ek02MS40IDMyMi40bDIzLTcuN2MtNi40LTE4LjMtMTAtMzguMi0xMC01OC43czMuMy00MC40IDkuNy01OC43bC0yMi43LTcuN2MzLjYtMTAuOCA4LjMtMjEuMyAxMy42LTMxbC0xNS44LTkuMUM0MiAxODEgMzIuMSAyMTcuNSAzMi4xIDI1NnMxMCA3NSAyNy4xIDEwNi42TDc1IDM1My41Yy01LjMtMTAtOS43LTIwLjMtMTMuNi0zMS4xek0yMjEuMSA0MzRjLTQwLjQtOC03NS44LTI5LjEtMTAxLjktNTguN2wtMTggMTUuOGMtNy41LTguNi0xNC40LTE3LjctMjAuMi0yNy40bC0xNiA5LjRjMzguNSA2Mi4zIDEwNi44IDEwNC4zIDE4NC45IDEwNi42bDAtMTguM2MtMTEuMy0uMy0yMi43LTEuNy0zMy41LTMuNmw0LjctMjMuOHpNMTAxLjMgMTIwLjlsMTggMTUuNWMyNi0yOS42IDYxLjQtNTAuNyAxMDEuOS01OC40bC00LjctMjMuOGMxMC44LTIuMiAyMi4xLTMuMyAzMy41LTMuNmwwLTE4LjJDMTcxLjkgMzQuNiAxMDMuOSA3Ni40IDY1LjQgMTM5bDE1LjggOS4xYzYtOS43IDEyLjYtMTguOSAyMC4xLTI3LjJ6TTQxMC43IDM5MS4xbC0xOC0xNS44Yy0yNiAyOS42LTYxLjQgNTAuNy0xMDEuOSA1OC43bDQuNyAyMy44Yy0xMC44IDEuOS0yMi4xIDMuMy0zMy41IDMuNmwwIDE4LjNjNzguMS0yLjIgMTQ2LjQtNDQuMyAxODQuOS0xMDYuNmwtMTYuMS05LjRjLTUuNyA5LjctMTIuNiAxOC44LTIwLjEgMjcuNHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptNDgzLjggMGEyMzUuOCAyMzUuOCAwIDEgMCAtNDcxLjYgMCAyMzUuOCAyMzUuOCAwIDEgMCA0NzEuNiAwem0tMzktMTA2LjZMNDM3IDE1OC41YzUuMyA5LjcgMTAgMjAuMiAxMy42IDMxbC0yMi43IDcuN2M2LjQgMTguMyA5LjcgMzguMiA5LjcgNTguN3MtMy42IDQwLjQtMTAgNTguN2wyMyA3LjdjLTMuOSAxMC44LTguMyAyMS0xMy42IDMxbDE1LjggOS4xQzQ3MCAzMzEgNDc5LjkgMjk0LjUgNDc5LjkgMjU2cy05LjktNzUtMjcuMS0xMDYuNnptLTE4MyAxNzcuN2MxNi4zLTMuMyAzMC40LTExLjYgNDAuNy0yMy41bDUxLjIgNDQuOGMxMS45LTEzLjYgMjEuMy0yOS4zIDI3LjEtNDYuOGwtNjQuMi0yMi4xYzIuNS03LjUgMy45LTE1LjIgMy45LTIzLjVzLTEuNC0xNi4xLTMuOS0yMy41bDY0LjUtMjIuMWMtNi4xLTE3LjQtMTUuNS0zMy4yLTI3LjQtNDYuOGwtNTEuMiA0NC44Yy0xMC4yLTExLjktMjQuNC0yMC41LTQwLjctMjMuOGwxMy4zLTY2LjRjLTguNi0xLjktMTcuNy0yLjgtMjcuMS0yLjhzLTE4LjUgLjgtMjcuMSAyLjhsMTMuMyA2Ni40Yy0xNi4zIDMuMy0zMC40IDExLjktNDAuNyAyMy44bC01MS4yLTQ0LjhjLTExLjkgMTMuNi0yMS4zIDI5LjMtMjcuNCA0Ni44bDY0LjUgMjIuMWMtMi41IDcuNS0zLjkgMTUuMi0zLjkgMjMuNXMxLjQgMTYuMSAzLjkgMjMuNWwtNjQuMiAyMi4xYzUuOCAxNy40IDE1LjIgMzMuMiAyNy4xIDQ2LjhsNTEuMi00NC44YzEwLjIgMTEuOSAyNC40IDIwLjIgNDAuNyAyMy41bC0xMy4zIDY2LjdjOC42IDEuNyAxNy43IDIuOCAyNy4xIDIuOHMxOC41LTEuMSAyNy4xLTIuOGwtMTMuMy02Ni43eiJdfSxGX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWNjZXNzaWJsZS1pY29uIixpY29uOls0NDgsNTEyLFs2MjEwN10sImYzNjgiLCJNNDIzLjkgMjU1LjhMNDExIDQxMy4xYy0zLjMgNDAuNy02My45IDM1LjEtNjAuNi00LjlsMTAtMTIyLjUtNDEuMSAyLjNjMTAuMSAyMC43IDE1LjggNDMuOSAxNS44IDY4LjUgMCA0MS4yLTE2LjEgNzguNy00Mi4zIDEwNi41bC0zOS4zLTM5LjNjNTcuOS02My43IDEzLjEtMTY3LjItNzQtMTY3LjItMjUuOSAwLTQ5LjUgOS45LTY3LjIgMjZMNzMgMjQzLjJjMjItMjAuNyA1MC4xLTM1LjEgODEuNC00MC4ybDc1LjMtODUuNy00Mi42LTI0LjgtNTEuNiA0NkMxMDUuNSAxNjUuMyA2NC45IDEyMCA5NSA5My4xbDY4LTYwLjdjOS44LTguOCAyNC4xLTEwLjIgMzUuNS0zLjYgMCAwIDEzOS4zIDgwLjkgMTM5LjUgODEuMSAxNi4yIDEwLjEgMjAuNyAzNiA2LjEgNTIuNmwtNTguNCA2Ni41IDEwNi4xLTUuOWMxOC41LTEuMSAzMy42IDE0LjQgMzIuMSAzMi43ek0zNTkgMTAxLjhBNTAuOSA1MC45IDAgMSAwIDM1OSAwIDUwLjkgNTAuOSAwIDEgMCAzNTkgMTAxLjh6TTE3OS42IDQ1Ni41Yy04MC42IDAtMTI3LjQtOTAuNi04Mi43LTE1Ni4xTDU3LjIgMjYwLjdDMzYuNCAyODcgMjQgMzIwLjMgMjQgMzU2LjQgMjQgNDg3LjEgMTc0LjcgNTU3LjggMjc1LjQgNDc4LjlsLTM5LjctMzkuN2MtMTYgMTAuOS0zNS4zIDE3LjMtNTYuMSAxNy4zeiJdfSxCX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXVvcmEiLGljb246WzQ0OCw1MTIsW10sImYyYzQiLCJNNDQwLjcgMzg2LjdsLTI5LjMgMGMtMS41IDEzLjUtMTAuNSAzMC44LTMzIDMwLjgtMjAuNSAwLTM1LjMtMTQuMi00OS41LTM1LjggNDQuMi0zNC4yIDc0LjctODcuNSA3NC43LTE1MyAuMS0xMTcuNS05Ni42LTE5Ni43LTE5OC40LTE5Ni43LTk5LjcgMC0xOTcuNyA3OS43LTE5Ny43IDE5Ni43IDAgMTM0LjEgMTMxLjMgMjIxLjYgMjQ5IDE4OSAxOS43IDMzLjYgNDUuNyA2Mi4zIDk1LjIgNjIuMyA4MS44IDAgOTAuOC03NS4zIDg5LTkzLjN6TTI5Ny4yIDMyOS4yYy0xOS41LTI5LjItNDMuNy01Mi4yLTkxLjUtNTIuMi0zMC41IDAtNTQuMyAxMC02OSAyMi44bDEyLjIgMjQuM2M2LjItMyAxMy00IDE5LjgtNCAzNS41IDAgNTMuNyAzMC44IDY5LjIgNjEuMy0xMCAzLTIwLjcgNC4yLTMyLjcgNC4yLTc1IDAtMTA3LjUtNTMtMTA3LjUtMTU2LjcgMC0xMDQuNCAzMi41LTE1Ny45IDEwNy41LTE1Ny45IDc2LjIgMCAxMDguNyA1My41IDEwOC43IDE1Ny43IC4xIDQxLjgtNS40IDc1LjYtMTYuNyAxMDAuNXoiXX0sSF90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWpjYiIsaWNvbjpbNTc2LDUxMixbXSwiZjI0YiIsIk00MzEuNSAyNDQuM2wwLTMyLjNjNDEuMiAwIDM4LjUgLjIgMzguNSAuMiA3LjMgMS4zIDEzLjMgNy4zIDEzLjMgMTYgMCA4LjgtNiAxNC41LTEzLjMgMTUuOC0xLjIgLjQtMy4zIC4zLTM4LjUgLjN6bTQyLjggMjAuMmMtMi44LS43LTMuMy0uNS00Mi44LS41bDAgMzVjMzkuNiAwIDQwIC4yIDQyLjgtLjUgNy41LTEuNSAxMy41LTggMTMuNS0xNyAwLTguNy02LTE1LjUtMTMuNS0xN3pNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTgyIDE5Mi4zbC01NyAwYzAgNjcuMSAxMC43IDEwOS43LTM1LjggMTA5LjctMTkuNSAwLTM4LjgtNS43LTU3LjItMTQuOGwwIDI4YzMwIDguMyA2OCA4LjMgNjggOC4zIDk3LjkgMCA4Mi00Ny43IDgyLTEzMS4yem0xNzguNSA0LjVjLTYzLjQtMTYtMTY1LTE0LjktMTY1IDU5LjMgMCA3Ny4xIDEwOC4yIDczLjYgMTY1IDU5LjJsMC0yOC4zQzMxMi45IDMxMS43IDI1MyAzMDkgMjUzIDI1NnM1OS44LTU1LjYgMTA3LjUtMzEuMmwwLTI4ek01NDQgMjg2LjVjMC0xOC41LTE2LjUtMzAuNS0zOC0zMmwwLS44YzE5LjUtMi43IDMwLjMtMTUuNSAzMC4zLTMwLjIgMC0xOS0xNS43LTMwLTM3LTMxIDAgMCA2LjMtLjMtMTIwLjMtLjNsMCAxMjcuNSAxMjIuNyAwYzI0LjMgLjEgNDIuMy0xMi45IDQyLjMtMzMuMnoiXX0scV90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZG9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc5OCIsIk0wIDI1NS44Qy4xIDEzMi4yIDEwMC4zIDMyIDIyNCAzMlM0NDggMTMyLjMgNDQ4IDI1NiAzNDcuOCA0NzkuOSAyMjQuMSA0ODBMNTAuOSA0ODBDMjIuOCA0ODAgLjEgNDU3LjMgMCA0MjkuMmwwIDAgMC0xNzMuNCAwIDB6bTM0Mi42LTYzLjFjMC0zOS43LTM1LjYtNjguNS03My4yLTY4LjUtMzQuOSAwLTY1LjggMjYuMy03MC4xIDU5LjktLjIgMy44LS40IDUtLjQgOC41LS4xIDIxLjEgMCA0Mi44LS44IDY0LjQgLjkgMjYuMSAxIDUyLjEgMCA3Ni42IDAgMjcuMS0xOS40IDQ1LjUtNDQuNyA0NS41cy00NS44LTIwLjItNDUuOC00NS41Yy41LTI3LjcgMjIuNi00NS4zIDQ4LjUtNDYuMWwuMiAwIDI2LjMtLjIgMC0zNy4zLTI2LjMgLjJjLTQ3LjEtLjQtODQuNiAzNi41LTg1LjkgODMuNCAwIDQ1LjYgMzcuNSA4Mi45IDgzIDgyLjkgNDMgMCA3OC43LTMzLjYgODIuNi03NS42bC4yLTUzLjUgMzIuNi0uM2MyNS4zIC4yIDI1LTM3LjgtLjItMzcuM2wtMzIuNCAuM2MwLTYuNCAuMS0xMi44IC4xLTE5LjIgLjEtMTIuNyAuMS0yNS40LS4xLTM4LjIgLjEtMTYuNSAxNS44LTMxLjIgMzMuMi0zMS4yIDE3LjUgMCAzNS45IDguNyAzNS45IDMxLjIgMCAzLjItLjEgNS4xLS4zIDYuMy0xLjkgMTAuNSA1LjIgMjAuNCAxNS43IDIxLjkgMTAuNiAxLjUgMjAuMi02LjEgMjEuMi0xNi42IC42LTQuMiAuNy03LjkgLjctMTEuNnoiXX0sal90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR1b2xpbmdvIixpY29uOls1NzYsNTEyLFtdLCJlODEyIiwiTTUwNC4zIDIzMC41YzEwLjQgODguNS00My40IDE3Mi4xLTEyOC4yIDE5OXMtMTc2LjYtMTAuMy0yMTguOS04OC43Yy03MiAzLTEzNy40LTM5LjgtMTYzLjItMTA1LjUtMi42LTYuNi0xLjktMTQgMS45LTE5LjlzMTAuMi05LjcgMTcuMi0xMC4xbDk2LjEtNi0yMy44LTc1LjljLTYuMy0yMC0yLjItNDEuOSAxMS01OC4zczMzLjctMjUgNTQuNS0yM2M1Mi4yIDUgODYuOCA0LjggMTA0LS42UzMwMCAxNi43IDMzOS0xNi45YzE1LjktMTMuNyAzNy43LTE4LjUgNTcuOC0xMi43czM2LjEgMjEuMyA0Mi40IDQxLjRMNDYyLjggODcgNTQzLjYgMzcuM2M2LTMuNyAxMy40LTQuMyAxOS45LTEuNnMxMS4zIDguMyAxMi45IDE1LjJjMTYuMiA2OC4yLTEyLjQgMTQwLjMtNzIuMSAxNzkuNXpNMjU4LjUgNDc1LjlsMCAwYzE1LjEgNy41IDIxLjUgMjUuOCAxNC4yIDQxcy0yNS40IDIxLjktNDAuNyAxNC45bC00My45LTIxYy0xNS4xLTcuNS0yMS41LTI1LjgtMTQuMi00MXMyNS40LTIxLjkgNDAuNy0xNC45bDQzLjggMjF6TTU2NC42IDM0NS43YzE0LjggOC40IDIwIDI3LjMgMTEuNiA0Mi4ybC0yMy45IDQyLjRjLTguNyAxNC4zLTI3LjEgMTkuMi00MS42IDEwLjlzLTE5LjktMjYuNi0xMi00MS40bDIzLjktNDIuNGM0LTcuMSAxMC43LTEyLjQgMTguNi0xNC42czE2LjMtMS4yIDIzLjQgMi45eiJdfSxWX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3RkcmFmdCIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMSIsIk0zODQgMTkybC02NCAwIDAgMTI4LTEyOCAwIDAgMTI4LTE5MiAwIDAtMjUuNiAxNjYuNCAwIDAtMTI4IDEyOCAwIDAtMTI4IDg5LjYgMCAwIDI1LjZ6bS0yNS42IDM4LjRsMCAxMjgtMTI4IDAgMCAxMjgtMTY2LjQgMCAwIDI1LjYgMTkyIDAgMC0xMjggMTI4IDAgMC0xNTMuNi0yNS42IDB6bTI1LjYgMTkybC04OS42IDAgMCA4OS42IDI1LjYgMCAwLTY0IDY0IDAgMC0yNS42ek0wIDBsMCAzODQgMTI4IDAgMC0xMjggMTI4IDAgMC0xMjggMTI4IDAgMC0xMjgtMzg0IDB6Il19LFVfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlYnNkIixpY29uOls0NDgsNTEyLFtdLCJmM2E0IiwiTTMwMy43IDk2LjJjMTEuMS0xMS4xIDExNS41LTc3IDEzOS4yLTUzLjIgMjMuNyAyMy43LTQyLjEgMTI4LjEtNTMuMiAxMzkuMnMtMzkuNCAuOS02My4xLTIyLjljLTIzLjgtMjMuNy0zNC4xLTUyLTIyLjktNjMuMXpNMTA5LjkgNjguMUM3My42IDQ3LjUgMjIgMjQuNiA1LjYgNDEuMS0xMSA1Ny43IDEyLjcgMTEwLjUgMzMuNSAxNDYuOCA1MiAxMTQuNiA3OC4zIDg3LjUgMTA5LjkgNjguMXpNNDA2LjcgMTc0YzMuMyAxMS4zIDIuNyAyMC43LTIuNyAyNi4xLTIwLjMgMjAuMy04Ny41LTI3LTEwOS4zLTcwLjEtMTgtMzIuMy0xMS4xLTUzLjQgMTQuOS00OC43IDUuNy0zLjYgMTIuMy03LjYgMTkuNi0xMS42LTI5LjgtMTUuNS02My42LTI0LjMtOTkuNS0yNC4zLTExOS4xIDAtMjE1LjYgOTYuNS0yMTUuNiAyMTUuNiAwIDExOSA5Ni41IDIxNS42IDIxNS42IDIxNS42UzQ0NS4zIDM4MC4xIDQ0NS4zIDI2MWMwLTM4LjQtMTAuMS03NC41LTI3LjctMTA1LjgtMy45IDctNy42IDEzLjMtMTAuOSAxOC44eiJdfSxXX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2R5c2VlIixpY29uOls1MTIsNTEyLFtdLCJlNWM2IiwiTTQwNi43IDQ2M2MtNDIuMyAzMC44LTk0LjQgNDktMTUwLjcgNDktMTExLjEgMC0yMDUuNy03MC44LTI0MS4xLTE2OS44IDIuNCAxLjcgNS45IDMuNiA3LjkgNC40IDE2LjMgNy40IDQwLjEtNS40IDYyLjktMjguNyA2LjktNi45IDE0LjQtMTIuNCAyMi44LTE3LjMgMTguMy0xMS45IDM3LjYtMjAuOCA1OC40LTI3LjIgMCAwIDIyLjMgMzQuMiA0My4xIDc0LjhzLTIyLjMgNTQtMjcuMiA1NGMtLjMgMC0uOCAwLTEuNS0uMS0xMS0uNS03MC0zLTU2IDUxLjEgMTQuOSA1Ny40IDk3LjUgMzYuNiAxMzkuNiA4LjlzMzEuNy0xMTguMyAzMS43LTExOC4zYzQxLjEtNi40IDU0IDM3LjEgNTcuOSA1OS40IC44IDQuNiAxLjEgOS45IDEuNCAxNS41IDEuMSAyMS4yIDIuMyA0NS42IDM1LjMgNDYuNCA1LjMgMCAxMC42LS44IDE1LjUtMmwwLS4xem0tOTUuMy0yMy43Yy0yLS41LTMuNS0yLjUtMy01IDEtMi41IDMtMy41IDUtM3MzLjUgMyAzIDUtMi41IDMuNS01IDN6bS0yMDctOTUuNmMxLjUtLjUgMy41IDEgNCAzIDAgMi0xIDQtMyA0LTEuNSAuNS0zLjUtMS00LTMtLjUtMS41IDEtMy41IDMtNHpNNDUxLjggNDIxYzM3LjUtNDQuNiA2MC4yLTEwMi4yIDYwLjItMTY1IDAtNjcuNS0yNi4xLTEyOC45LTY4LjgtMTc0LjctLjEgMjMuNS02LjEgNDguMi0xNi44IDY5LjItMTEuOSAyMC4zLTQ5IDU4LjktNjkuOCA3OC43LS43IC4zLTEuMSAuOS0xLjUgMS40LS4yIC4yLS4zIC40LS41IC42LTUgNi45LTQgMTYuOCAzIDIxLjggMjEuMyAxNS44IDU2LjQgNDUuNiA1OS40IDcyLjggMy41IDM0LjkgMjcuOSA3NS42IDM0LjIgODYuMiAuOCAxLjMgMS4zIDIuMSAxLjQgMi40IDAgMi4yLS40IDQuMy0uOCA2LjVsMCAuMXpNMzkwLjcgMjUxYy0uNSAzIDEgNS45IDQgNi40czUuOS0xIDYuNC00LTEtNS45LTQtNi40Yy0zLTEtNS45IDEtNi40IDR6bTYxLjQtNjAuOWwtMTEuNCA1LjQtMyAxMi45LTUuNC0xMS40LTEyLjktMyAxMS40LTUuNCAzLTEyLjkgNS40IDExLjQgMTIuOSAzek0zOTUuNSA0MS4zYy0xNi4yIDguMi0yMi4xIDMyLjgtMjkgNjEuNC0uMyAxLjQtLjcgMi44LTEgNC4yLTkuNSAzOC41LTMwLjYgMzcuNi00MS43IDM3LjItMS4xIDAtMi0uMS0yLjktLjEtNS4xIDAtNi00LTguOS0xNy4xLTIuNi0xMi4xLTYuOS0zMi0xNy45LTYzLjYtMjIuNy02NS44LTgyLjctNDkuNC0xMjguMi0yMi4yLTU1LjMgMzMuMS0zNC40IDEwMS45LTE5LjggMTQ5LjQgLjcgMi4yIDEuNCA0LjQgMiA2LjYtNCA0LTEzLjggNy41LTI2IDExLjktMTIuMSA0LjMtMjYuNiA5LjUtNDAuMyAxNi45LTMzLjkgMTgtNzAuMyA0OS03OS44IDYyLjYtMS4zLTEwLjctMi0yMS41LTItMzIuNSAwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDUxLjQgMCA5OS40IDE1LjIgMTM5LjUgNDEuM3pNNTguOSAxODkuNmMtMS41LTItNC41LTMtNi40LTEuNXMtMyA0LjUtMS41IDYuNCA0LjUgMyA2LjQgMS41YzIuNS0xLjUgMy00LjUgMS41LTYuNHpNMzI3LjMgNjQuOWMyLTEuNSA1LS41IDYuNCAxLjUgMS41IDIuNSAxIDUuNC0xLjUgNi40LTIgMS41LTUgLjUtNi40LTEuNXMtLjUtNSAxLjUtNi40ek05NS4xIDEwNWMtLjUgMS41IC41IDMgMiAzIDEuNSAuNSAzLS41IDMtMiAuNS0xLjUtLjUtMy0yLTNzLTMgLjUtMyAyem04NC43LS41Yy0zLjUtNDMuMSAzNy4xLTU0IDM3LjEtNTQgNDQuMS0xNS40IDU2IDUuOSA2Ni40IDM3LjZzMyA0Mi42LTM4LjYgNTguOS02MS45LTQuNS02NC45LTQyLjZsMCAuMXptODkuNiAxNC45bDEgMGMyLjUgMCA1LTIgNS01IDItNi45IDEtMTQuNC0yLTIwLjgtMS41LTItNC0zLjUtNi40LTIuNS0zIDEtNC41IDQtMy41IDYuOSAyIDQuNSAzIDkuOSAxLjUgMTQuOS0uNSAzIDEuNSA1LjkgNC41IDYuNGwtLjEgLjF6bS05LjktNDEuNmMtMiAwLTQtMS01LTNzLTItMy41LTMtNWMtMi0yLTItNS40IDAtNy40czUuNC0yIDcuNCAwYzIgMi41IDMuNSA1IDUgNy40cy41IDUuOS0yLjUgNy40Yy0uNiAwLTEgLjItMS4zIC4zLS4yIC4xLS40IC4yLS42IC4ybDAgLjF6Il19LEdfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZy1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImYyNjEiLCJNMjU3LjUgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTIwOCAzODIuOGwtMTI1LjctMTI1LjcgMTI1LjctMTI1LjcgMzUuMiAzNS40LTI0LjIgMjQuMi0xMS4xLTExLjEtNzcuMiA3Ny4yIDc3LjIgNzcuMiAyNi42LTI2LjYtNTMuMS01Mi45IDI0LjQtMjQuNCA3Ny4yIDc3LjItNzUgNzUuMnptOTktMi4ybC0zNS4yLTM1LjIgMjQuMS0yNC40IDExLjEgMTEuMSA3Ny4yLTc3LjItNzcuMi03Ny4yLTI2LjUgMjYuNSA1My4xIDUyLjktMjQuNCAyNC40LTc3LjItNzcuMiA3NS03NSAxMjUuNyAxMjUuNy0xMjUuNyAxMjUuNnoiXX0sS190PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkZmxhcmUiLGljb246WzY0MCw1MTIsW10sImUwN2QiLCJNNDA3LjkgMzE5LjlMMTc3LjEgMzE3Yy0uNyAwLTEuNC0uMi0yLS41cy0xLjItLjgtMS42LTEuNGMtLjQtLjYtLjctMS4zLS43LTJzMC0xLjQgLjItMi4xYy40LTEuMSAxLjEtMi4xIDIuMS0yLjhzMi4xLTEuMiAzLjMtMS4ybDIzMi45LTIuOWMyNy42LTEuMyA1Ny41LTIzLjYgNjgtNTAuOGwxMy4zLTM0LjVjLjQtLjkgLjUtMS45IC41LTIuOSAwLS41LS4xLTEuMS0uMi0xLjYtNy40LTMyLjItMjUtNjEuMS01MC4zLTgyLjNzLTU2LjctMzMuNy04OS43LTM1LjUtNjUuNiA3LjMtOTMgMjUuNy00OCA0NS4zLTU4LjggNzYuNWMtMTEuMy04LjUtMjQuOS0xMy4zLTM5LTEzLjdzLTI4IDMuNS0zOS44IDExLjQtMjAuOCAxOS4xLTI1LjkgMzIuMy01LjkgMjcuNi0yLjQgNDEuM2MtNTIuMyAxLjUtOTQuMiA0NC4xLTk0LjIgOTYuNSAwIDQuNyAuMyA5LjMgMSAxNCAuMiAxLjEgLjcgMi4xIDEuNSAyLjhzMS45IDEuMSAyLjkgMS4xbDQyNi4xIC4xYzAgMCAuMSAwIC4xIDAgMS4yIDAgMi4zLS40IDMuMy0xLjFzMS42LTEuNyAyLTIuOWwzLjMtMTEuM2MzLjktMTMuNCAyLjQtMjUuOC00LjEtMzQuOS02LTguNC0xNi4xLTEzLjMtMjguMi0xMy45em0xMDUuOS05OC44Yy0yLjEgMC00LjMgLjEtNi40IC4yLS44IC4xLTEuNSAuMy0yLjEgLjhzLTEgMS4xLTEuMyAxLjhsLTkuMSAzMS4yYy0zLjkgMTMuNC0yLjQgMjUuOCA0LjEgMzQuOSA2IDguNCAxNi4xIDEzLjMgMjguMiAxMy45bDQ5LjIgMi45Yy43IDAgMS40IC4yIDIgLjVzMS4xIC44IDEuNSAxLjRjLjQgLjYgLjcgMS4zIC44IDJzMCAxLjUtLjIgMi4xYy0uNCAxLjEtMS4xIDIuMS0yLjEgMi44cy0yLjEgMS4yLTMuMyAxLjJsLTUxLjEgMi45Yy0yNy44IDEuMy01Ny43IDIzLjYtNjguMSA1MC44bC0zLjcgOS42Yy0uMiAuNC0uMiAuOC0uMiAxLjNzLjIgLjggLjQgMS4yIC42IC43IC45IC45IC44IC4zIDEuMiAuM2MwIDAgLjEgMCAuMSAwbDE3NS45IDBjMSAwIDItLjMgMi44LS45czEuNC0xLjUgMS43LTIuNGMzLjEtMTEuMSA0LjctMjIuNSA0LjctMzQgMC02OS4zLTU2LjUtMTI1LjUtMTI2LjEtMTI1LjV6Il19LFlfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYWNrZXJyYW5rIixpY29uOls1MTIsNTEyLFtdLCJmNWY3IiwiTTQ3Ny45IDEyOEM0NjMuNCAxMDMgMjg1LjUgMCAyNTYuNSAwcy0yMDYuOSAxMDIuOC0yMjEuMyAxMjgtMTQuNSAyMzAuOCAwIDI1NiAxOTIuNCAxMjggMjIxLjMgMTI4IDIwNi44LTEwMi45IDIyMS4zLTEyOCAxNC41LTIzMSAwLTI1NnpNMzE2LjUgNDE0LjJjLTQgMC00MC45LTM1LjgtMzgtMzguNyAuOS0uOSA2LjMtMS41IDE3LjUtMS44IDAtMjYuMiAuNi02OC42IC45LTg2LjMgMC0yLS40LTMuNC0uNC01LjhsLTc5LjkgMGMwIDcuMS0uNSAzNi4yIDEuNCA3Mi45IC4yIDQuNS0xLjYgNi01LjcgNS45LTEwLjEgMC0yMC4zLS4xLTMwLjQtLjEtNC4xIDAtNS45LTEuNS01LjctNi4xIC45LTMzLjQgMy04NC0uMi0yMTIuN2wwLTMuMmMtOS43LS40LTE2LjQtMS0xNy4zLTEuOC0yLjktMi45IDM0LjUtMzguNyAzOC41LTM4LjdzNDEuMiAzNS44IDM4LjMgMzguN2MtLjkgLjktNy45IDEuNS0xNi44IDEuOGwwIDMuMmMtMi40IDI1LjgtMiA3OS42LTIuNiAxMDUuNGw4MC4zIDBjMC00LjYgLjQtMzQuNy0xLjItODMuNi0uMS0zLjQgMS01LjIgNC4yLTUuMiAxMS4xLS4xIDIyLjItLjEgMzMuMi0uMSAzLjUgMCA0LjYgMS43IDQuNSA1LjQtMy43IDE5MS4zLS43IDE3Ny45LS43IDIxMC4zIDguOSAuNCAxNi44IDEgMTcuNyAxLjggMi45IDIuOS0zMy42IDM4LjctMzcuNiAzOC43bDAgMHoiXX0sWl90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNreWF0bGFzIixpY29uOls2NDAsNTEyLFtdLCJmMjE2IiwiTTY0MCAzMjkuM2MwIDY1LjktNTIuNSAxMTQuNC0xMTcuNSAxMTQuNC0xNjUuOSAwLTE5Ni42LTI0OS43LTM1OS43LTI0OS43LTE0Ni45IDAtMTQ3LjEgMjEyLjIgNS42IDIxMi4yIDQyLjUgMCA5MC45LTE3LjggMTI1LjMtNDIuNSA1LjYtNC4xIDE2LjktMTYuMyAyMi44LTE2LjNzMTAuOSA1IDEwLjkgMTAuOWMwIDcuOC0xMy4xIDE5LjEtMTguNyAyNC4xLTQwLjkgMzUuNi0xMDAuMyA2MS4yLTE1NC43IDYxLjItODMuNCAuMS0xNTQtNTktMTU0LTE0NC45UzY3LjUgMTQ5LjYgMTUyLjggMTQ5LjZjMTg1LjMgMCAyMjIuNSAyNDUuOSAzNjEuOSAyNDUuOSA5OS45IDAgOTQuOC0xMzkuNyAzLjQtMTM5LjctMTcuNSAwLTM1IDExLjYtNDYuOSAxMS42LTguNCAwLTE1LjktNy4yLTE1LjktMTUuNiAwLTExLjYgNS4zLTIzLjcgNS4zLTM2LjMgMC02Ni42LTUwLjktMTE0LjctMTE2LjktMTE0LjctNTMuMSAwLTgwIDM2LjktODguOCAzNi45LTYuMiAwLTExLjItNS0xMS4yLTExLjIgMC01LjYgNC4xLTEwLjMgNy44LTE0LjQgMjUuMy0yOC44IDY0LjctNDMuNyAxMDIuOC00My43IDc5LjQgMCAxMzkuMSA1OC40IDEzOS4xIDEzNy44IDAgNi45LS4zIDEzLjctMS4yIDIwLjYgMTEuOS0zLjEgMjQuMS00LjcgMzUuOS00LjcgNjAuNyAwIDExMS45IDQ1LjMgMTExLjkgMTA3LjJ6Il19LFhfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXNrcHJvIixpY29uOls0NDgsNTEyLFtdLCJmMzhmIiwiTTEyMiA0MDYuMmw4NCAwYzIzLjEgMCA0My45LTMuNSA2Mi42LTEwLjcgMTguNy03LjEgMzQuNy0xNy4xIDQ4LTMwLjEgMTMuMy0xMy40IDIzLjYtMjkuMiAzMC43LTQ3LjUgMy45LTkuNiA2LjgtMTkuOCA4LjYtMzAuNmw3My43IDBjLTIuNSAyMS4zLTcuNyA0MS4zLTE1LjUgNjAtMTEuMSAyNy4yLTI2LjkgNTAuOC00Ny4zIDcwLjktMjAgMTkuNi00NC4yIDM0LjgtNzIuNiA0NS40cy02MCAxNi05NC43IDE2bC0xNDkuOCAuMiAwLTE5Mi40IDcyLjMtLjIgMCAxMTguOHpNMTk5LjQgMzJjMzQuNyAwIDY2LjIgNS40IDk0LjcgMTYgMjguNSAxMC43IDUyLjkgMjYuMSA3My4zIDQ2LjIgMjAuNCAxOS42IDM2LjIgNDMuMiA0Ny4zIDcwLjkgNy41IDE4LjMgMTIuNCAzOC4xIDE0LjkgNTkuM2wtNzMuNy0uMWMtMS45LTEwLjUtNC43LTIwLjUtOC42LTI5LjktNy4xLTE4LjctMTcuMy0zNC41LTMwLjctNDcuNS0xMy4zLTEzLjQtMjkuMy0yMy42LTQ4LTMwLjgtMTguNi03LjEtMzkuNS0xMC43LTYyLjctMTAuN2wtODQgMCAwIDExOC44LTcyLjIgLjIgMC0xOTIuMyAxNDkuNy0uMXoiXX0sUV90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlc29sdmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlNyIsIk0yODkuMiAyNzguMmM0Ni0xMy4zIDQ5LjYtMjMuNSA0NC00My40TDMyMiAxOTUuNWMtNi4xLTIwLjktMTguNC0yOC4xLTcxLjEtMTIuOGwtMTg4LjIgNTQuMSAyOC42IDk4LjYgMTk3LjktNTcuMnpNMjU2LjUgOEMxMzkuNCA4IDQxLjIgODguNyAxNS4yIDE5Ny41bDIyMS45LTYzLjljMzQuOC0xMC4yIDU0LjItMTEuNyA3OS4zLTguMiAzNi4zIDYuMSA1Mi43IDI1IDYxLjQgNTUuMmwxMC43IDM3LjhjOC4yIDI4LjEgMSA1MC42LTIzLjUgNzMuNi0xOS40IDE3LjQtMzEuMiAyNC41LTYxLjQgMzMuMmwtOTIuNiAyNi42IDIyMC40IDI3LjEgOS43IDM0LjItNDguMSAxMy4zLTI4Ni44LTM3LjMgMjMgODAuMkMxNjYgNDkxLjMgMjA5LjUgNTA0IDI1NS41IDUwNCAzOTIuNSA1MDQgNTA0IDM5Mi42IDUwNCAyNTUuNyA1MDUgMTE5LjQgMzkzLjUgOCAyNTYuNSA4ek00Ni4zIDM4OC42TDggMjU2LjhjMCA0OC41IDE0LjMgOTMuNCAzOC4zIDEzMS44eiJdfSxKX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2tiZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjM3YiIsIk0xNjYgMTE2LjljMCAyMy40LTE2LjQgNDkuMS03Mi41IDQ5LjFsLTcwLjEgMCAyMS04OC44IDY3LjggMGM0Mi4xIDAgNTMuOCAyMy4zIDUzLjggMzkuN3pNMjkyLjIgNzcuMmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuNC0xMS42LTM5LjctNTMuNy0zOS43ek04OC44IDIwOC4xbC02Ny44IDAtMjEgODguOCA3MC4xIDBjNTYuMSAwIDcyLjUtMjMuNCA3Mi41LTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My44LTM5Ljd6bTE4MC4xIDBsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuNy0zOS43em0xODkuMy01My44bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6bS0yOCAxMzcuOWwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6TTI0MC44IDM0NmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43eiJdfSxlTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyaXBlLXMiLGljb246WzM4NCw1MTIsW10sImY0MmEiLCJNMTU1LjYgMTU0LjZjMC0yMi4zIDE4LjYtMzAuOSA0OC40LTMwLjkgNDMuNCAwIDk4LjUgMTMuMyAxNDEuOSAzNi43bDAtMTM0LjNjLTQ3LjMtMTguOS05NC41LTI2LjEtMTQxLjgtMjYuMS0xMTUuNyAwLTE5Mi44IDYwLjQtMTkyLjggMTYxLjQgMCAxNTcuOSAyMTYuOCAxMzIuMyAyMTYuOCAyMDAuNCAwIDI2LjQtMjIuOSAzNC45LTU0LjcgMzQuOS00Ny4yIDAtMTA4LjItMTkuNS0xNTYuMS00NS41bDAgMTI4LjVjNDkuMyAyMS4zIDEwMi4zIDMyLjMgMTU2IDMyLjQgMTE4LjYgMCAyMDAuMy01MSAyMDAuMy0xNTMuNiAwLTE3MC4yLTIxOC0xMzkuNy0yMTgtMjAzLjl6Il19LE04ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtYmVoYW5jZSIsaWNvbjpbNDQ4LDUxMixbImJlaGFuY2Utc3F1YXJlIl0sImYxYjUiLCJNMTU1LjMgMzE4LjRjMTcuMiAwIDMxLjItNi4xIDMxLjItMjUuNCAwLTE5LjctMTEuNy0yNy40LTMwLjMtMjcuNWwtNDYgMCAwIDUyLjkgNDUuMSAwem0tNS40LTEyOS42bC0zOS42IDAgMCA0NC44IDQyLjcgMGMxNS4xIDAgMjUuOC02LjYgMjUuOC0yMi45IDAtMTcuNy0xMy43LTIxLjktMjguOS0yMS45em0xMjkuNSA3NC44bDYyLjIgMGMtMS43LTE4LjUtMTEuMy0yOS43LTMwLjUtMjkuNy0xOC4zIDAtMzAuNSAxMS40LTMxLjcgMjkuN3pNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTM0OS41IDE4NWwtNzcuOCAwIDAtMTguOSA3Ny44IDAgMCAxOC45ek0xOTMuNyAyNDMuN2MyMy42IDYuNyAzNSAyNy41IDM1IDUxLjYgMCAzOS0zMi43IDU1LjctNjcuNiA1NS45bC05My4xIDAgMC0xOTIgOTAuNSAwYzMyLjkgMCA2MS40IDkuMyA2MS40IDQ3LjUgMCAxOS4zLTkgMjguOC0yNi4yIDM3em0xMTguNy0zOC42YzQzLjUgMCA2Ny42IDM0LjMgNjcuNiA3NS40IDAgMS42LS4xIDMuMy0uMiA1IDAgLjgtLjEgMS41LS4xIDIuMmwtMTAwLjIgMGMwIDIyLjIgMTEuNyAzNS4zIDM0LjEgMzUuMyAxMS42IDAgMjYuNS02LjIgMzAuMi0xOC4xbDMzLjcgMGMtMTAuNCAzMS45LTMxLjkgNDYuOC02NS4xIDQ2LjgtNDMuOCAwLTcxLjEtMjkuNy03MS4xLTczIDAtNDEuOCAyOC43LTczLjYgNzEuMS03My42eiJdfSx0TXQ9TThlLGFNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZXJ2aWNlc3RhY2siLGljb246WzUxMiw1MTIsW10sImYzZWMiLCJNOTYgMjE2YzgxLjcgMTAuMiAyNzMuNyAxMDIuMyAzMDQgMjMyTDggNDQ4Yzk5LjUtOC4xIDE4NC41LTEzNyA4OC0yMzJ6TTEyOCA2NGMzMi4zIDM1LjYgNDcuNyA4My45IDQ2LjQgMTMzLjYgODIuOSAzMy43IDIwNy4zIDEyMy43IDIzMy42IDI1MC40bDk2IDBDNDYzLjMgMjMxLjkgMjMwLjggNzkuNSAxMjggNjR6Il19LHNNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyb2NrZXRjaGF0IixpY29uOls1NzYsNTEyLFtdLCJmM2U4IiwiTTI4NC41IDIyNC44Yy02LjcgMC0xMy4zIDIuMS0xOC45IDUuOHMtOS45IDkuMS0xMi41IDE1LjQtMy4yIDEzLjEtMS45IDE5LjcgNC42IDEyLjcgOS40IDE3LjQgMTAuOSA4IDE3LjUgOS4zIDEzLjUgLjYgMTkuNy0yIDExLjUtNyAxNS4zLTEyLjYgNS43LTEyLjIgNS43LTE4LjljMC05LjEtMy43LTE3LjgtMTAuMS0yNC4ycy0xNS4xLTEwLTI0LjItOS45em0tMTEwLjQgMGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTEwbDAgMHptMjIwLjkgMGEzNC4xIDM0LjEgMCAxIDAgLjQgNjguMiAzNC4xIDM0LjEgMCAxIDAgLS40LTY4LjJ6bTE1My44LTU1LjNjLTE1LjUtMjQuMi0zNy4zLTQ1LjYtNjQuNy02My42LTUyLjktMzQuOC0xMjIuNC01NC0xOTUuNy01NC0yNC4yIDAtNDguMyAyLjEtNzIgNi40LTE0LjktMTQuMy0zMS41LTI2LjYtNDkuNS0zNi42LTY2LjgtMzMuMy0xMjUuNi0yMC45LTE1NS4zLTEwLjItMi4zIC44LTQuMyAyLjEtNS45IDMuOXMtMi43IDMuOS0zLjMgNi4yLS41IDQuNyAuMSA3LjEgMS44IDQuNCAzLjUgNi4xQzI3IDU2LjUgNjEuNiA5OS4zIDUzLjEgMTM4LjMgMjAgMTcyLjIgMiAyMTMgMiAyNTUuNiAyIDI5OSAyMCAzMzkuOCA1My4xIDM3My43IDYxLjYgNDEyLjcgMjcgNDU1LjYgNiA0NzcuMiA0LjMgNDc5IDMuMiA0ODEuMSAyLjUgNDgzLjRzLS43IDQuNy0uMSA3IDEuNyA0LjUgMy4zIDYuMiAzLjYgMy4xIDUuOSAzLjljMjkuNyAxMC43IDg4LjUgMjMuMSAxNTUuMy0xMC4yIDE4LTEwIDM0LjctMjIuMyA0OS41LTM2LjYgMjMuOCA0LjMgNDcuOSA2LjQgNzIgNi40IDczLjMgMCAxNDIuOC0xOS4yIDE5NS43LTU0IDI3LjQtMTggNDkuMS0zOS40IDY0LjctNjMuNiAxNy4zLTI2LjkgMjYuMS01NS45IDI2LjEtODYuMSAwLTMxLTguOC02MC0yNi4xLTg2LjlsMCAwek0yODUuNCA0MDkuOWMtMzAuMiAuMS02MC4zLTMuOC04OS40LTExLjVsLTIwLjEgMTkuNGMtMTEuMiAxMC43LTIzLjYgMjAtMzcuMSAyNy42LTE2LjQgOC4yLTM0LjIgMTMuMy01Mi41IDE0LjkgMS0xLjggMS45LTMuNiAyLjgtNS40IDIwLjItMzcuMSAyNS42LTcwLjUgMTYuMy0xMDAuMS0zMy0yNi01Mi44LTU5LjItNTIuOC05NS40IDAtODMuMSAxMDQuMy0xNTAuNSAyMzIuOC0xNTAuNXMyMzIuOSA2Ny40IDIzMi45IDE1MC41YzAgODMuMS0xMDQuMyAxNTAuNS0yMzIuOSAxNTAuNXoiXX0saU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYmVsIixpY29uOls1MTIsNTEyLFtdLCJmMWQwIiwiTTI1Ni45IDUwNGMtMTM5LjMgMC0yNDcuNS0xMTYuMi0yNDMuMy0yNTQuMSAyLjgtNzkuMiA0My4yLTE1Mi4yIDExNi41LTIwMC40IC4zIDAgMS45LS42IDEuMSAuOC01LjggNS41LTExMS4zIDEyOS44LTE0LjEgMjI2LjQgNDkuOCA0OS41IDkwIDIuNSA5MCAyLjUgMzguNS01MC4xLS42LTEyNS45LS42LTEyNS45LTEwLTI0LjktNDUuNy00MC4xLTQ1LjctNDAuMWwyOC44LTMxLjhjMjQuNCAxMC41IDQzLjIgMzguNyA0My4yIDM4LjcgLjgtMjkuNi0yMS45LTYxLjQtMjEuOS02MS40TDI1NS41IDggMjk5LjggNTguMWMtMjAuNSAyOC44LTIxLjkgNjIuNi0yMS45IDYyLjYgMTMuOC0yMyA0My41LTM5LjMgNDMuNS0zOS4zbDI4LjUgMzEuOGMtMjcuNCA4LjktNDUuNCAzOS45LTQ1LjQgMzkuOS0xNS44IDI4LjUtMjcuMSA4OS40IC42IDEyNy4zIDMyLjQgNDQuNiA4Ny43LTIuOCA4Ny43LTIuOCAxMDIuNy05MS45LTEwLjUtMjI1LTEwLjUtMjI1LTYuMS01LjUgLjgtMi44IC44LTIuOCA1MC4xIDM2LjUgMTE0LjYgODQuNCAxMTYuMiAyMDQuOCAyIDE0NS42LTk5LjkgMjQ5LjQtMjQyLjQgMjQ5LjR6Il19LHJNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2ViLWF3ZXNvbWUiLGljb246WzQ0OCw1MTIsW10sImU2ODMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjM1IDE3Ny42bDUzIDQ2LjQgNTIuMi0xMC40Yy0yLjYtMy45LTQuMi04LjUtNC4yLTEzLjYgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLTEwLjMgMjMuNi0yMy4yIDI0TDMwNC41IDM0OS4xYy01LjIgMTEuNS0xNi42IDE4LjktMjkuMiAxOC45bC0xMDIuNiAwYy0xMi42IDAtMjQtNy40LTI5LjItMTguOUw4Ny4yIDIyNGMtMTIuOS0uNC0yMy4yLTExLTIzLjItMjQgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDUtMS41IDkuNy00LjIgMTMuNkwxNjAgMjI0IDIxMy4xIDE3Ny42Yy04LjktNC4xLTE1LTEzLjEtMTUtMjMuNiAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2YzAgMTAuNS02LjIgMTkuNS0xNS4xIDIzLjZ6Il19LG9NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rdHJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkOCIsIk0xNiAxNzMuNGwxMjUuOCAwLTg5LjQtODUuNCA0OS41LTUxIDg1LjIgODcuOCAwLTEyNC44IDczLjkgMCAwIDEyNC44IDg1LjItODcuNiA0OS40IDUwLjgtODkuNCA4NS4yIDEyNS43IDAgMCA3MC41LTEyNi40IDAgOTAgODcuNi00OS4zIDQ5LjgtMTIyLjItMTIzLTEyMi4yIDEyMy00OS41LTQ5LjYgOTAtODcuNi0xMjYuNCAwIDAtNzAuNXpNMTg2LjkgMzQ0LjhsNzMuOSAwIDAgMTY3LjItNzMuOSAwIDAtMTY3LjJ6Il19LG5NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaW1wbHlidWlsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjIxNSIsIk00ODEuNiA2NGwtMTA2IDBDMzYxLjEgNjQgMzQ5IDc1LjggMzQ5IDkwLjNsMCAzOS42LTE4NS4zIDAgMC0zOS42YzAtMTQuNS0xMi0yNi4zLTI2LjYtMjYuM2wtMTA2IDBDMTYuNSA2NCA0LjcgNzUuOCA0LjcgOTAuM2wwIDMzMS40YzAgMTQuNSAxMS44IDI2LjMgMjYuNiAyNi4zbDQ1MC40IDBjMTQuOCAwIDI2LjYtMTEuOCAyNi42LTI2LjNsMC0zMzEuNGMtLjItMTQuNS0xMi0yNi4zLTI2LjctMjYuM3pNMTUwLjUgMjIyLjdhNjYuNSA2Ni41IDAgMSAxIC0uMyAxMzMuMSA2Ni41IDY2LjUgMCAxIDEgLjMtMTMzLjF6bTIxMS45IC4xYTY2LjUgNjYuNSAwIDEgMSAuMyAxMzIuOSA2Ni41IDY2LjUgMCAxIDEgLS4zLTEzMi45eiJdfSxsTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1YmJlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTVjNyIsIk0xMzYuNSAyOTQuMmw1OC44IDIyLjljOS4xLTM2LjggMjUuNC02MS4xIDU1LTYxLjEgNDkuNCAwIDcxLjQgNjMuNiAxNDIuNCA2My42IDE1LjYgMCAzNS45LTIuOCA1NS4zLTEzLjNsMCA2MS43YzAgNjEuOC01MC40IDExMi0xMTIuMyAxMTJMMCA0ODAgNDEuOCA0MjQgMCAzNjggNDEuNyAzMTIgMCAyNTYuMSA0MS44IDIwMC4xIDAgMTQ0LjEgNDEuOCA4OCAwIDMyIDMzNS43IDMyQzM5Ny42IDMyIDQ0OCA4Mi4zIDQ0OCAxNDQuMWwwIDUxLjNjLTkuMiAzNi4zLTI1LjkgNjAuNi01NSA2MC42LTQ5LjYgMC03MS42LTYzLjUtMTQyLjQtNjMuNS0zNS45IDAtOTUuMiAxNC42LTExNC4xIDEwMS42bDAgLjF6Il19LGNNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBlciIsaWNvbjpbNjQwLDUxMixbXSwiZjM3MSIsIk00Mi4xIDIzOS4xYzIyLjIgMCAyOSAyLjggMzMuNSAxNC42bC44IDAgMC0yMi45YzAtMTEuMy00LjgtMTUuNC0xNy45LTE1LjQtMTEuMyAwLTE0LjQgMi41LTE1LjEgMTIuOGwtMzguNiAwYy4zLTEzLjkgMS41LTE5LjEgNS44LTI0LjQgNy4zLTguOCAxOC45LTExLjggNDYuMS0xMS44IDMzIDAgNDcuMSA1IDUzLjkgMTguOSAyIDQuMyA0IDE1LjYgNCAyMy43bDAgNzYuMy0zOC4zIDAgMS4zLTE5LjEtMSAwYy01LjMgMTUuNi0xMy42IDIwLjQtMzUuNSAyMC40LTMwLjMgMC00MS4xLTEwLjEtNDEuMS0zNy4zIDAtMjUuMiAxMi4zLTM1LjggNDIuMS0zNS44em0xNy4xIDQ4LjFjMTMuMSAwIDE2LjktMyAxNi45LTEzLjQgMC05LjEtNC4zLTExLjYtMTkuNi0xMS42LTEzLjEgMC0xNy45IDMtMTcuOSAxMi4xLS4xIDEwLjQgMy43IDEyLjkgMjAuNiAxMi45ek0xMzcgMTkyLjNsMzguMyAwLTEuNSAyMC42IC44IDBjOS4xLTE3LjEgMTUuOS0yMC45IDM3LjUtMjAuOSAxNC40IDAgMjQuNyAzIDMxLjUgOS4xIDkuOCA4LjYgMTIuOCAyMC40IDEyLjggNDguMSAwIDMwLTMgNDMuMS0xMi4xIDUyLjktNi44IDcuMy0xNi40IDEwLjEtMzMuMiAxMC4xLTIwLjQgMC0yOS4yLTUuNS0zMy44LTIxLjJsLS44IDAgMCA3MC4zLTM5LjUgMCAwLTE2OXpNMjE3LjkgMjUzYzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTcuOS02MC43bDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjMgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjkgLjEgMHpNMzU2LjcgMjUzYzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTMuOC0zLjhjMC0yNS40IDMuMy0zNy44IDEyLjMtNDUuOCA4LjgtOC4xIDIyLjItMTEuMyA0NS4xLTExLjMgNDIuOCAwIDU1LjcgMTIuOCA1NS43IDU1LjdsMCAxMS4xLTc1LjMgMGMtLjMgMi0uMyA0LS4zIDQuOCAwIDE2LjkgNC41IDIxLjkgMjAuMSAyMS45IDEzLjkgMCAxNy45LTMgMTcuOS0xMy45bDM3LjUgMCAwIDIuM2MwIDkuOC0yLjUgMTguOS02LjggMjQuNy03LjMgOS44LTE5LjYgMTMuNi00NC4zIDEzLjYtMjcuNSAwLTQxLjYtMy4zLTUwLjYtMTIuMy04LjUtOC41LTExLjMtMjEuMy0xMS4zLTUwLjh6bTc2LjQtMTEuNmMtLjMtMS44LS4zLTMuMy0uMy0zLjggMC0xMi4zLTMuMy0xNC42LTE5LjYtMTQuNi0xNC40IDAtMTcuMSAzLTE4LjEgMTUuMWwtLjMgMy4zIDM4LjMgMHptNTUuNi00NS4zbDM4LjMgMC0xLjggMTkuOSAuNyAwYzYuOC0xNC45IDE0LjQtMjAuMiAyOS43LTIwLjIgMTAuOCAwIDE5LjEgMy4zIDIzLjQgOS4zIDUuMyA3LjMgNi44IDE0LjQgNi44IDM0IDAgMS41IDAgNSAuMiA5LjNsLTM1IDBjLjMtMS44IC4zLTMuMyAuMy00IDAtMTUuNC0yLTE5LjQtMTAuMy0xOS40LTYuMyAwLTEwLjggMy4zLTEzLjEgOS4zLTEgMy0xIDQuMy0xIDEyLjNsMCA2OC0zOC4zIDAgMC0xMTguNSAuMSAweiJdfSxkTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXNjaG9sYXIiLGljb246WzUxMiw1MTIsW10sImU2M2IiLCJNMzkwLjkgMjk4LjVzMCAuMSAuMSAuMWM5LjIgMTkuNCAxNC40IDQxLjEgMTQuNCA2NC0uMSA4Mi41LTY2LjkgMTQ5LjQtMTQ5LjQgMTQ5LjRTMTA2LjcgNDQ1LjEgMTA2LjcgMzYyLjdjMC0yMi45IDUuMi00NC42IDE0LjQtNjQgMS43LTMuNiAzLjYtNy4yIDUuNi0xMC43IDQuNC03LjYgOS40LTE0LjcgMTUtMjEuMyAyNy40LTMyLjYgNjguNS01My4zIDExNC40LTUzLjMgMzMuNiAwIDY0LjYgMTEuMSA4OS42IDI5LjkgOS4xIDYuOSAxNy40IDE0LjcgMjQuOCAyMy41IDUuNiA2LjYgMTAuNiAxMy44IDE1IDIxLjMgMiAzLjQgMy44IDcgNS41IDEwLjVsLS4xLS4xem0yNi40LTE4LjhjLTMwLjEtNTguNC05MS05OC40LTE2MS4zLTk4LjRzLTEzMS4yIDQwLTE2MS4zIDk4LjRsLTk0LjctNzcgMjU2LTIwMi43IDI1NiAyMDIuNy05NC43IDc3LjEgMC0uMXoiXX0sdU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inlhcm4iLGljb246WzUxMiw1MTIsW10sImY3ZTMiLCJNNDAxLjkgMzQ1LjJjLTM5IDkuMy00OC40IDMyLjEtMTA0IDQ3LjQgMCAwLTIuNyA0LTEwLjQgNS44LTEzLjQgMy4zLTYzLjkgNi02OC41IDYuMS0xMi40IC4xLTE5LjktMy4yLTIyLTguMi02LjQtMTUuMyA5LjItMjIgOS4yLTIyLTguMS01LTktOS45LTkuOC04LjEtMi40IDUuOC0zLjYgMjAuMS0xMC4xIDI2LjUtOC44IDguOS0yNS41IDUuOS0zNS4zIC44LTEwLjgtNS43IC44LTE5LjIgLjgtMTkuMnMtNS44IDMuNC0xMC41LTMuNmMtNi05LjMtMTcuMS0zNy4zIDExLjUtNjItMS4zLTEwLjEtNC42LTUzLjcgNDAuNi04NS42IDAgMC0yMC42LTIyLjgtMTIuOS00My4zIDUtMTMuNCA3LTEzLjMgOC42LTEzLjkgNS43LTIuMiAxMS4zLTQuNiAxNS40LTkuMSAyMC42LTIyLjIgNDYuOC0xOCA0Ni44LTE4czEyLjQtMzcuOCAyMy45LTMwLjRjMy41IDIuMyAxNi4zIDMwLjYgMTYuMyAzMC42czEzLjYtNy45IDE1LjEtNWM4LjIgMTYgOS4yIDQ2LjUgNS42IDY1LjEtNi4xIDMwLjYtMjEuNCA0Ny4xLTI3LjYgNTcuNS0xLjQgMi40IDE2LjUgMTAgMjcuOCA0MS4zIDEwLjQgMjguNiAxLjEgNTIuNyAyLjggNTUuMyAuOCAxLjQgMTMuNyAuOCAzNi40LTEzLjIgMTIuOC03LjkgMjguMS0xNi45IDQ1LjQtMTcgMTYuNy0uNSAxNy42IDE5LjIgNC45IDIyLjJ6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQxNi43IDc1LjJjLTEuNy0xMy42LTEzLjItMjMtMjgtMjIuOC0yMiAuMy00MC41IDExLjctNTIuOCAxOS4yLTQuOCAzLTguOSA1LjItMTIuNCA2LjggMy4xLTQ0LjUtMjIuNS03My4xLTI4LjctNzkuNCA3LjgtMTEuMyAxOC40LTI3LjggMjMuNC01My4yIDQuMy0yMS43IDMtNTUuNS02LjktNzQuNS0xLjYtMy4xLTcuNC0xMS4yLTIxLTcuNC05LjctMjAtMTMtMjIuMS0xNS42LTIzLjgtMS4xLS43LTIzLjYtMTYuNC00MS40IDI4LTEyLjIgLjktMzEuMyA1LjMtNDcuNSAyMi44LTIgMi4yLTUuOSAzLjgtMTAuMSA1LjRsLjEgMGMtOC40IDMtMTIuMyA5LjktMTYuOSAyMi4zLTYuNSAxNy40IC4yIDM0LjYgNi44IDQ1LjctMTcuOCAxNS45LTM3IDM5LjgtMzUuNyA4Mi41LTM0IDM2LTExLjggNzMtNS42IDc5LjYtMS42IDExLjEgMy43IDE5LjQgMTIgMjMuOCAxMi42IDYuNyAzMC4zIDkuNiA0My45IDIuOCA0LjkgNS4yIDEzLjggMTAuMSAzMCAxMC4xIDYuOCAwIDU4LTIuOSA3Mi42LTYuNSA2LjgtMS42IDExLjUtNC41IDE0LjYtNy4xIDkuOC0zLjEgMzYuOC0xMi4zIDYyLjItMjguNyAxOC0xMS43IDI0LjItMTQuMiAzNy42LTE3LjQgMTIuOS0zLjIgMjEtMTUuMSAxOS40LTI4LjJ6Il19LHBNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1vdmVyZmxvdyIsaWNvbjpbMzg0LDUxMixbXSwiZjE2YyIsIk0yOTEgMzExbC0xOTUuNy00MS4zLTguMiAzOS4zIDE5NS43IDQxIDguMi0zOXptNTEtODdMMTg4LjUgOTUuNyAxNjMgMTI2LjUgMzE2LjUgMjU0LjggMzQyIDIyNHptLTMxLjIgMzkuN0wxMjkuNSAxNzkgMTEyLjggMjE1LjUgMjk0IDMwMCAzMTAuOCAyNjMuN3pNMjYyLjMgMzJsLTMyIDI0IDExOS4zIDE2MC4zIDMyLTI0LTExOS4zLTE2MC4zem0yMC41IDMyOGwtMjAwIDAgMCAzOS43IDIwMCAwIDAtMzkuN3ptMzkuNyA4MGwtMjc5LjUgMCAwLTEyMC00MCAwIDAgMTYwIDM1OS41IDAgMC0xNjAtNDAgMCAwIDEyMHoiXX0saE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWV0b290aCIsaWNvbjpbMzg0LDUxMixbXSwiZjI5MyIsIk0yNjAuNiAxNzEuMWwtNDIuOSA0Mi45LS4zLTg2IDQzLjIgNDMuMXpNMjE3LjQgMzkwLjlsNDMuMS00My4xLTQyLjktNDIuOS0uMiA4NnpNMzg0IDI1OS40QzM4NCA0NjUgMzEyLjEgNTEyIDE5OC45IDUxMlMwIDQ2NSAwIDI1OS40IDgzLjQgMCAxOTYuNiAwIDM4NCA1My45IDM4NCAyNTkuNHptLTE1OC41IDBsNzkuNC04OC42LTEyNS4xLTEzNC4zIDAgMTc2LjktNzMuOC03My44LTI3IDI2LjkgOTIuNyA5My05Mi43IDkzIDI2LjkgMjYuOSA3My44LTczLjggMi4zIDE3MCAxMjcuNC0xMjcuNS04My45LTg4Ljd6Il19LGZNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jLWpwIixpY29uOls1MTIsNTEyLFtdLCJmNGVhIiwiTTI1NS43IDhDMTExLjYgOCA4IDEyNC44IDggMjU2IDggMzkyLjQgMTE5LjggNTA0IDI1NS43IDUwNCAzODUuOSA1MDQgNTA0IDQwMy4yIDUwNCAyNTYgNTA0IDExNy4yIDM5Ni41IDggMjU1LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMS4xIDMtNDEuMiA5LTYwLjNsMTI3IDU2LjUtMjcuOSAwIDAgMzguNiA1OC4xIDAgNS43IDExLjggMCAxOC43LTYzLjggMCAwIDM4LjcgNjMuOCAwIDAgNTYgNjEuNyAwIDAtNTYgNjQuMiAwIDAtMzUuNyA4MSAzNi4xYy0xLjUgMi4yLTU3LjEgOTguMy0xNzUuMiA5OC4zem04Ny42LTEzNy4zbC01Ny42IDAgMC0xOC43IDIuOS01LjYgNTQuNyAyNC4zem02LjUtNTEuNGwwLTE3LjgtMzguNiAwIDYzLTExNi02NS44IDAtNDMuNCA5Ni0yMy0xMC4yLTM5LjYtODUuNy02NS44IDAgMjcuMyA1MS04MS45LTM2LjVjMjcuOC00NC4xIDgyLjYtOTguMSAxNzMuNy05OC4xIDExMi44IDAgMjAzIDkwIDIwMyAyMDMuNCAwIDIxLTIuNyA0MC42LTcuOSA1OUwzNTAuNCAyNzB6Il19LG1NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWRkaXQiLGljb246WzUxMiw1MTIsW10sImYxYTEiLCJNMCAyNTZDMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2IDM5Ny40IDUxMiAyNTYgNTEyTDM3LjEgNTEyYy0xMy43IDAtMjAuNS0xNi41LTEwLjktMjYuMkw3NSA0MzdDMjguNyAzOTAuNyAwIDMyNi43IDAgMjU2ek0zNDkuNiAxNTMuNmMyMy42IDAgNDIuNy0xOS4xIDQyLjctNDIuN3MtMTkuMS00Mi43LTQyLjctNDIuN2MtMjAuNiAwLTM3LjggMTQuNi00MS44IDM0LTM0LjUgMy43LTYxLjQgMzMtNjEuNCA2OC40bDAgLjJjLTM3LjUgMS42LTcxLjggMTIuMy05OSAyOS4xLTEwLjEtNy44LTIyLjgtMTIuNS0zNi41LTEyLjUtMzMgMC01OS44IDI2LjgtNTkuOCA1OS44IDAgMjQgMTQuMSA0NC42IDM0LjQgNTQuMSAyIDY5LjQgNzcuNiAxMjUuMiAxNzAuNiAxMjUuMnMxNjguNy01NS45IDE3MC42LTEyNS4zYzIwLjItOS42IDM0LjEtMzAuMiAzNC4xLTU0IDAtMzMtMjYuOC01OS44LTU5LjgtNTkuOC0xMy43IDAtMjYuMyA0LjYtMzYuNCAxMi40LTI3LjQtMTctNjIuMS0yNy43LTEwMC0yOS4xbDAtLjJjMC0yNS40IDE4LjktNDYuNSA0My40LTQ5LjkgNC40IDE4LjggMjEuMyAzMi44IDQxLjUgMzIuOGwuMSAuMnpNMTc3LjEgMjQ2LjljMTYuNyAwIDI5LjUgMTcuNiAyOC41IDM5LjNzLTEzLjUgMjkuNi0zMC4zIDI5LjYtMzEuNC04LjgtMzAuNC0zMC41IDE1LjQtMzguMyAzMi4xLTM4LjNsLjEtLjF6bTE5MC4xIDM4LjNjMSAyMS43LTEzLjcgMzAuNS0zMC40IDMwLjVzLTI5LjMtNy45LTMwLjMtMjkuNiAxMS44LTM5LjMgMjguNS0zOS4zIDMxLjIgMTYuNiAzMi4xIDM4LjNsLjEgLjF6bS00OC4xIDU2LjdjLTEwLjMgMjQuNi0zNC42IDQxLjktNjMgNDEuOXMtNTIuNy0xNy4zLTYzLTQxLjljLTEuMi0yLjkgLjgtNi4yIDMuOS02LjUgMTguNC0xLjkgMzguMy0yLjkgNTkuMS0yLjlzNDAuNyAxIDU5LjEgMi45YzMuMSAuMyA1LjEgMy42IDMuOSA2LjV6Il19LGdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25uZWN0ZGV2ZWxvcCIsaWNvbjpbNTc2LDUxMixbXSwiZjIwZSIsIk01NTAuOCAyNDFsLTUwLjEtODYuOGMxLjEtMi4xIDEuOS00LjYgMS45LTcuMiAwLTgtNi43LTE0LjctMTQuNy0xNUw0MzIuNCAzNi4xYy41LTEuNiAxLjEtMy4yIDEuMS00LjggMC04LjYtNy0xNS4zLTE1LjMtMTUuMy00LjggMC04LjggMi4xLTExLjggNS42bC0xMDYuNiAwYy0yLjctMy41LTYuNy01LjYtMTEuNS01LjZzLTguOCAyLjEtMTEuNSA1LjZsLTEwNi4xIDBjLTIuOS0zLjUtNy01LjYtMTEuOC01LjYtOC4zIDAtMTUuMyA2LjctMTUuMyAxNS4zIDAgMS42IC41IDMuNSAxLjEgNC44bC01NiA5Ny4yYy01LjQgMi40LTkuMSA3LjUtOS4xIDEzLjcgMCAuNSAuMyAxLjEgLjMgMS42TDI2LjYgMjQwLjdjLTcuMiAxLjMtMTIuNiA3LjUtMTIuNiAxNSAwIDcuMiA1LjEgMTMuNCAxMi4xIDE1bDU1LjIgOTUuNGMtLjUgMS42LS44IDIuOS0uOCA0LjggMCA3LjIgNS4xIDEzLjQgMTIuMSAxNC43bDUxLjcgODkuN2MtLjUgMS42LTEuMSAzLjUtMS4xIDUuNCAwIDguNiA3IDE1LjMgMTUuMyAxNS4zIDQuOCAwIDguOC0yLjEgMTEuNS01LjRsMTA2LjkgMGMyLjcgMy4yIDcgNS40IDExLjUgNS40czguOC0yLjEgMTEuNS01LjRsMTA3LjEgMGMyLjcgMi45IDYuNyA0LjggMTEgNC44IDguNiAwIDE1LjMtNyAxNS4zLTE1LjMgMC0xLjYtLjMtMi45LS44LTQuM2w1MS43LTkwLjNjNy0xLjMgMTIuMS03LjUgMTIuMS0xNC43IDAtMS42LS4zLTMuMi0uOC00LjhsNTQuOS05NS40YzctMS4zIDEyLjMtNy41IDEyLjMtMTUgMC03LjItNS4xLTEzLjQtMTEuOC0xNC43em0tMzk3IDIwOS43bC00My43LTc1LjggNDMuNyAwIDAgNzUuOHptMC04My44bC00My43IDBjLS4zLTEuMS0uOC0yLjEtMS4zLTMuMmw0NS00Ny40IDAgNTAuNnptMC02Mi40bC01MC40IDUzLjNjLTEuMy0uNS0yLjctMS4zLTQtMS42TDQzLjcgMjU5LjhjLjUtMS4zIC41LTIuNyAuNS00czAtMi40LS4zLTMuNWw1Mi05MGMyLjctLjMgNS40LTEuMSA3LjgtMi43bDUwLjEgNTIgMCA5Mi45em0wLTEwMi4zTDEwOCAxNTQuOGMxLjMtMi4xIDIuMS00LjggMi4xLTcuOCAwLS4zLS4zLS44LS4zLTEuMWw0My45LTE1LjggMCA3Mi4xem0wLTgwLjZsLTQzLjcgMTUuOCA0My43LTc1LjUgMCA1OS43em0zMjYuNSAzOS4xbC44IDEuMy0zNS40IDE2Ny4xLTYzLjgtNjcuMiA5OC0xMDEuNSAuMyAuM3pNMjkyLjEgMzU1LjFsMTEuNSAxMS44LTIyLjggMCAxMS4zLTExLjh6bS0uMy0xMS4zbC04My4zLTg1LjQgNzkuNi04NC40IDgzIDg3LjYtNzkuMyA4Mi4yem01LjQgNS45bDc5LjMtODIuMiA2Ny41IDcxLjMtNS45IDI4LjEtMTI0IDAtMTYuOS0xNy4xek00MTAuNyA0NC40YzEuMSAuNSAyLjEgMS4xIDMuNSAxLjNsNTcuOSAxMDAuNyAwIC41YzAgMi45IC44IDUuNiAyLjEgNy44bC05Ny41IDEwMS4yLTgzLTg3LjYgMTE3LjEtMTI0em0tOS4xLTIuMWwtMTEzLjYgMTIwLjMtNTcuMS02MC4zIDE2Ni4zLTYwIDQuMyAwem0tMTIzLjUgMGMyLjcgMi43IDYuMiA0LjMgMTAuMiA0LjNzNy41LTEuNiAxMC4yLTQuM2w3NSAwLTE0OC40IDUzLjYtNTAuOS01My42IDEwMy45IDB6TTE2MS45IDQ3LjlsMS4xLTIuMWMuOS0uMiAxLjgtLjUgMi43LS44bDUxLjIgNTMuOC01NC45IDE5LjggMC03MC43em0wIDc5LjNsNjAuOC0yMiA1OS43IDYzLjItNzkuNiA4NC4xLTQxLTQyLjEgMC04My4zem0wIDkyLjdsMzYuNCAzNy44LTM2LjQgMzguMyAwLTc2LjF6bTAgODcuOWw0Mi4xLTQ0LjUgODIuOCA4Ni0xNy4xIDE3LjctMTA3LjcgMCAwLTU5LjJ6bTcgMTYyLjFjLTEuNi0xLjYtMy41LTIuNy01LjktMy41bC0xLjEtMS42IDAtODkuNyA5OS45IDAtOTEuNiA5NC44LTEuMyAwem0xMjkuOSAwYy0yLjctMi40LTYuNC00LjMtMTAuNC00LjNzLTcuOCAxLjktMTAuNCA0LjNsLTk2LjQgMCA5MS42LTk0LjggMzguMyAwIDkxLjYgOTQuOC0xMDQuMiAwem0xMjAtMTEuOGwtNC4zIDcuNWMtMS4zIC4zLTIuNCAuOC0zLjUgMS4zbC04OS4yLTkxLjkgMTE0LjQgMC0xNy40IDgzem0xMi45LTIyLjJsMTIuOS02MC44IDIyIDAtMzQuOCA2MC44em0zNC44LTY4LjhsLTIwLjQgMCA0LjYtMjEuMiAxNy4xIDE4LjJjLS41IC44LTEuMSAxLjktMS4zIDIuOXptNjYuMi0xMDcuNGwtNTUuNCA5Ni43Yy0xLjMgLjUtMi43IDEuMS00IDEuOWwtMjAuNi0yMiAzNC42LTE2My45IDQ1LjggNzkuM2MtLjMgMS4zLS44IDIuNy0uOCA0LjMgMCAxLjMgLjMgMi40IC41IDMuN3oiXX0sYk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlc2VhcmNoZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmOCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yNjIuMiAzNjYuNGMtNi42IDMtMzMuMiA2LTUwLTE0LjItOS4yLTEwLjYtMjUuMy0zMy4zLTQyLjItNjMuNi04LjkgMC0xNC43IDAtMjEuNC0uNmwwIDQ2LjRjMCAyMy41IDYgMjEuMiAyNS44IDIzLjlsMCA4LjFjLTYuOS0uMy0yMy4xLS44LTM1LjYtLjgtMTMuMSAwLTI2LjEgLjYtMzMuNiAuOGwwLTguMWMxNS41LTIuOSAyMi0xLjMgMjItMjMuOWwwLTEwOS40YzAtMjIuNi02LjQtMjEtMjItMjMuOWwwLTguMWMyNS44IDEgNTMuMS0uNiA3MC45LS42IDMxLjcgMCA1NS45IDE0LjQgNTUuOSA0NS42IDAgMjEuMS0xNi43IDQyLjItMzkuMiA0Ny41IDEzLjYgMjQuMiAzMCA0NS42IDQyLjIgNTguOSA3LjIgNy44IDE3LjIgMTQuNyAyNy4yIDE0LjdsMCA3LjN6bTIyLjktMTM1Yy0yMy4zIDAtMzIuMi0xNS43LTMyLjItMzIuMmwwLTMyLjJjMC0xMi4yIDguOC0zMC40IDM0LTMwLjRzMzAuNCAxNy45IDMwLjQgMTcuOWwtMTAuNyA3LjJzLTUuNS0xMi41LTE5LjctMTIuNWMtNy45IDAtMTkuNyA3LjMtMTkuNyAxOS43bDAgMjYuOGMwIDEzLjQgNi42IDIzLjMgMTcuOSAyMy4zIDE0LjEgMCAyMS41LTEwLjkgMjEuNS0yNi44bC0xNy45IDAgMC0xMC43IDMwLjQgMGMwIDIwLjUgNC43IDQ5LjktMzQgNDkuOXpNMTY4LjYgMjc2LjFjLTkuNCAwLTEzLjYtLjMtMjAtLjhsMC02OS43YzYuNC0uNiAxNS0uNiAyMi41LS42IDIzLjMgMCAzNy4yIDEyLjIgMzcuMiAzNC41IDAgMjEuOS0xNSAzNi42LTM5LjcgMzYuNnoiXX0sdk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpZ25hbC1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImU2NjMiLCJNMjU2IDBjLTEzLjMgMC0yNi4zIDEtMzkuMSAzbDMuNyAyMy43QzIzMi4xIDI0LjkgMjQ0IDI0IDI1NiAyNHMyMy45IC45IDM1LjQgMi43TDI5NS4xIDNDMjgyLjMgMSAyNjkuMyAwIDI1NiAwem02MC44IDcuM2wtNS43IDIzLjNjMjMuNCA1LjcgNDUuNCAxNC45IDY1LjQgMjcuMWwxMi41LTIwLjVjLTIyLjEtMTMuNC00Ni40LTIzLjYtNzIuMi0yOS45em03Ni40IDYxLjZjMTkuMSAxNCAzNiAzMC45IDUwLjEgNTAuMWwxOS40LTE0LjJDNDQ3IDgzLjYgNDI4LjQgNjUgNDA3LjMgNDkuNUwzOTMuMSA2OC44em04MS43IDU0LjJsLTIwLjUgMTIuNWMxMi4yIDIwIDIxLjQgNDIgMjcuMSA2NS40bDIzLjMtNS43Yy02LjMtMjUuOC0xNi41LTUwLjEtMjkuOS03Mi4yem0xMC41IDk3LjVjMS44IDExLjUgMi43IDIzLjQgMi43IDM1LjRzLS45IDIzLjktMi43IDM1LjRsMjMuNyAzLjdjMS45LTEyLjcgMy0yNS44IDMtMzkuMXMtMS0yNi4zLTMtMzkuMWwtMjMuNyAzLjd6bS0zMSAxNTUuOWwyMC41IDEyLjVjMTMuNC0yMi4xIDIzLjYtNDYuNCAyOS45LTcyLjJsLTIzLjMtNS43Yy01LjcgMjMuNC0xNC45IDQ1LjQtMjcuMSA2NS40em04LjIgMzAuOGwtMTkuNC0xNC4yYy0xNCAxOS4xLTMwLjkgMzYtNTAuMSA1MC4xbDE0LjIgMTkuNGMyMS4xLTE1LjUgMzkuOC0zNC4xIDU1LjItNTUuMnptLTg2LjEgNDdjLTIwIDEyLjItNDIgMjEuNC02NS40IDI3LjFsNS43IDIzLjNjMjUuOC02LjMgNTAuMS0xNi41IDcyLjItMjkuOWwtMTIuNS0yMC41ek0yOTUuMSA1MDlsLTMuNy0yMy43QzI3OS45IDQ4Ny4xIDI2OCA0ODggMjU2IDQ4OHMtMjMuOS0uOS0zNS40LTIuN0wyMTYuOSA1MDljMTIuNyAxLjkgMjUuOCAzIDM5LjEgM3MyNi4zLTEgMzkuMS0zem0tOTQuMS0yNy42Yy0xNy42LTQuMy0zNC40LTEwLjYtNTAuMS0xOC42bC03LjgtNC0zMi44IDcuNyA1LjUgMjMuNCAyNC4zLTUuN2MxNy40IDguOSAzNS45IDE1LjggNTUuMyAyMC41bDUuNy0yMy4zek05NS40IDQ5NC42TDkwIDQ3MS4zIDQ4LjMgNDgxYy0xMC40IDIuNC0xOS43LTYuOS0xNy4zLTE3LjNsOS43LTQxLjYtMjMuNC01LjUtOS43IDQxLjZDMS4yIDQ4NiAyNiA1MTAuOCA1My44IDUwNC40bDQxLjYtOS43em0tNTAtOTIuOWw3LjctMzIuOC00LTcuOGMtOC0xNS43LTE0LjMtMzIuNS0xOC42LTUwLjFMNy4zIDMxNi43QzEyIDMzNi4xIDE4LjkgMzU0LjcgMjcuNyAzNzJsLTUuNyAyNC4zIDIzLjQgNS41ek0zIDI5NS4xbDIzLjctMy43QzI0LjkgMjc5LjkgMjQgMjY4IDI0IDI1NnMuOS0yMy45IDIuNy0zNS40TDMgMjE2LjlDMSAyMjkuNyAwIDI0Mi43IDAgMjU2czEgMjYuMyAzIDM5LjF6bTI3LjYtOTQuMWM1LjctMjMuNCAxNC45LTQ1LjQgMjcuMS02NS40TDM3LjIgMTIzLjFjLTEzLjQgMjIuMS0yMy42IDQ2LjQtMjkuOSA3Mi4ybDIzLjMgNS43em0xOC45LTk2LjJsMTkuNCAxNC4yYzE0LTE5LjEgMzAuOS0zNiA1MC4xLTUwLjFMMTA0LjcgNDkuNUM4My42IDY1IDY1IDgzLjYgNDkuNSAxMDQuN3ptODYuMS00N2MyMC0xMi4yIDQyLTIxLjQgNjUuNC0yNy4xTDE5NS4yIDcuM2MtMjUuOCA2LjMtNTAuMSAxNi41LTcyLjIgMjkuOWwxMi41IDIwLjV6TTI1NiA0NjRjMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4UzM3MC45IDQ4IDI1NiA0OCA0OCAxNDEuMSA0OCAyNTZjMCAzNi40IDkuNCA3MC43IDI1LjggMTAwLjUgMS42IDIuOSAyLjEgNi4yIDEuNCA5LjRsLTIxLjYgOTIuNSA5Mi41LTIxLjZjMy4yLS43IDYuNS0uMiA5LjQgMS40IDI5LjggMTYuNSA2NCAyNS44IDEwMC41IDI1Ljh6Il19LHhNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4aW5nIixpY29uOlszODQsNTEyLFtdLCJmMTY4IiwiTTE2Mi43IDIxMGMtMS44IDMuMy0yNS4yIDQ0LjQtNzAuMSAxMjMuNS00LjkgOC4zLTEwLjggMTIuNS0xNy43IDEyLjVMOS44IDM0NmMtNy43IDAtMTIuMS03LjUtOC41LTE0LjRsNjktMTIxLjNjLjIgMCAuMi0uMSAwLS4zTDI2LjQgMTM0LjRjLTQuMy03LjggLjMtMTQuMSA4LjUtMTQuMWw2NS4xIDBjNy4zIDAgMTMuMyA0LjEgMTggMTIuMkwxNjIuNyAyMTB6TTM4Mi42IDQ2LjFsLTE0NCAyNTMgMCAuMyA5MS42IDE2Ni42YzMuOSA3LjEgLjIgMTQuMS04LjUgMTQuMWwtNjUuMiAwYy03LjYgMC0xMy42LTQtMTgtMTIuMkwxNDYuMSAyOTkuNGMzLjMtNS44IDUxLjUtOTAuOCAxNDQuOC0yNTUuMiA0LjYtOC4xIDEwLjQtMTIuMiAxNy41LTEyLjJsNjUuNyAwYzggMCAxMi4zIDYuNyA4LjUgMTQuMXoiXX0sejhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1qcyIsaWNvbjpbNDQ4LDUxMixbImpzLXNxdWFyZSJdLCJmM2I5IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xODAuOSA0NDQuOWMtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41em04NS44LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjYtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzeiJdfSx5TXQ9ejhlLHdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250aWNvbnMiLGljb246WzQ0OCw1MTIsW10sImYyODAiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMTg3IDE3Mi45Yy0xOC40IDAtMTkgOS45LTE5IDI3LjRsMCAyMy4zYzAgMi40LTMuNSA0LjQtLjYgNC40bDY3LjQgMC0xMS4xIDM3LjMtNTUuNyAwIDAgMTEyLjljMCA1LjgtMiA2LjcgMy4yIDcuM2w0My41IDQuMSAwIDI1LjEtMTMwLjcgMCAwLTI1LjcgMjEuMy0yYzUuMi0uNiA2LjctMi4zIDYuNy03LjlsMC0xMTEuNGMwLTIuMy0yLjktMi4zLTUuOC0yLjNsLTIyLjIgMCAwLTM3LjQgMjggMCAwLTIxYzAtNDkuNiAyNi41LTcwIDc3LjMtNzAgMzQuMSAwIDY0LjcgOC4yIDY0LjcgNTIuOGwtNTAuNyA2LjFjLjMtMTguNy00LjQtMjMtMTYuMy0yM3ptNzQuMyAyNDEuOGwwLTI1LjEgMjAuNC0yLjZjNS4yLS42IDcuNi0xLjcgNy42LTcuM2wwLTEwNy45YzAtNC4xLTIuOS02LjctNi43LTcuOWwtMjQuMi02LjQgNi43LTI5LjUgODAuMiAwIDAgMTUxLjdjMCA1LjgtMi42IDYuNCAyLjkgNy4zbDE1LjcgMi42IDAgMjUuMS0xMDIuNiAwem04MC44LTI1NS41bDkgMzMuMi03LjMgNy4zLTMxLjItMTYuNi0zMS4yIDE2LjYtNy4zLTcuMyA5LTMzLjItMjEuOC0yNC4yIDMuNS05LjYgMjcuNyAwIDE1LjUtMjggOS4zIDAgMTUuNSAyOCAyNy43IDAgMy41IDkuNi0yMS45IDI0LjJ6Il19LGtNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1cHMiLGljb246WzM4NCw1MTIsW10sImY3ZTAiLCJNMTAzLjIgMzAzYy01LjIgMy42LTMyLjYgMTMuMS0zMi42LTE5bDAtMTA0LTMyLjcgMCAwIDEwMi42YzAgNzQuOSA4MC4yIDUxLjEgOTcuOSAzOWwwLTE0MS42LTMyLjYgMCAwIDEyM3pNNCA3NC44TDQgMjk1LjdjMCAxMDMuNyA3NC45IDEzNS4yIDE4Ny43IDE4NC4xIDExMi40LTQ4LjkgMTg3LjctODAuMiAxODcuNy0xODQuMWwwLTIyMC45QzI2My4xIDEzLjIgOTcuNiAyNS4yIDQgNzQuOHpNMzYyLjEgMjk1LjdjMCA4Ni42LTUzLjIgMTEzLjYtMTcwLjQgMTY1LjMtMTE3LjUtNTEuOC0xNzAuNS03OC43LTE3MC41LTE2NS4zbDAtMTI2LjRjMTAyLjMtOTMuOCAyMzEuNi0xMDAgMzQwLjktODkuOGwwIDIxNi4yek0xNTIuNSAxODguM2wwIDIxMi44IDMyLjcgMCAwLTY4LjdjMjQuNCA3LjMgNzEuNy0yLjYgNzEuNy03OC41IDAtOTcuNC04MC43LTgwLjktMTA0LjQtNjUuNnptMzIuNyAxMTcuM2wwLTEwMC4zYzguNC00LjIgMzguNC0xMi43IDM4LjQgNDkuMyAwIDY3LjktMzYuNCA1MS44LTM4LjQgNTF6bTc5LjEtODYuNGMuMSA0Ny4zIDUxLjYgNDIuNSA1Mi4yIDcwLjQgLjYgMjMuNS0zMC40IDIzLTUwLjggNC45bDAgMzAuMWMzNi4yIDIxLjUgODEuOSA4LjEgODMuMi0zMy41IDEuNy01MS41LTU0LjEtNDYuNi01My40LTczLjIgLjYtMjAuMyAzMC42LTIwLjUgNDguNS0yLjJsMC0yOC40Yy0yOC41LTIyLTc5LjktOS4yLTc5LjcgMzEuOXoiXX0sU010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFtYXpvbi1wYXkiLGljb246WzY0MCw1MTIsW10sImY0MmMiLCJNMTQgMzI1LjNjMi4zLTQuMiA1LjItNC45IDkuNy0yLjUgMTAuNCA1LjYgMjAuNiAxMS40IDMxLjIgMTYuNyA0MC42IDIwLjIgODMuMyAzNS44IDEyNy40IDQ2LjMgMjAuOCA1IDQxLjkgOSA2My4yIDExLjggMzEuNSA0LjIgNjMuMiA2IDk1IDUuMiAxNy40LS40IDM0LjgtMS44IDUyLjEtMy44IDU2LjItNi42IDExMS4xLTIxIDE2My4zLTQyLjggMi45LTEuMiA1LjktMiA5LjEtMS4yIDYuNyAxLjggOSA5IDQuMSAxMy45LTMgMi43LTYuMiA1LjItOS42IDcuNC0zMC43IDIxLjEtNjQuMiAzNi40LTk5LjYgNDcuOS0yNC41IDcuOS00OS42IDEzLjgtNzUuMSAxNy42LTE3LjYgMi43LTM1LjQgNC4zLTUzLjIgNC44LS44IDAtMS43IC4yLTIuNSAuM2wtMjEuMSAwYy0uOC0uMS0xLjctLjItMi41LS4zLTMuNi0uMi03LjItLjMtMTAuNy0uNC0xNi45LS44LTMzLjctMi41LTUwLjQtNS4zLTI3LjQtNC41LTU0LjMtMTEuNS04MC40LTIwLjktNTMuNy0xOS40LTEwMy4xLTQ4LjktMTQ1LjYtODctMS44LTEuNi0zLTMuOC00LjQtNS43bDAtMnpNMTcyIDY1LjFsLTQuMyAuNmMtMTMuOCAxLjctMjYuOCA2LjktMzggMTUuMS0yLjQgMS43LTQuNiAzLjUtNy4xIDUuNC0uMi0uNC0uMy0uOS0uNC0xLjQtLjQtMi43LS44LTUuNS0xLjMtOC4yLS43LTQuNi0zLTYuNi03LjYtNi42bC0xMS41IDBjLTYuOSAwLTguMiAxLjMtOC4yIDguMmwwIDIwOS4zYzAgMSAwIDIgLjEgMyAuMiAzIDIgNC45IDQuOSA1IDcgLjEgMTQuMSAuMSAyMS4xIDAgMi45IDAgNC43LTIgNS01IC4xLTEgLjEtMiAuMS0zbDAtNzIuNGMxLjEgLjkgMS43IDEuNCAyLjIgMS45IDE3LjkgMTQuOSAzOC41IDE5LjggNjEgMTUuNCAyMC40LTQgMzQuNi0xNi41IDQzLjgtMzQuOSA3LTEzLjkgOS45LTI4LjcgMTAuMy00NC4xIC41LTE3LjEtMS4yLTMzLjktOC4xLTQ5LjgtOC41LTE5LjYtMjIuNi0zMi41LTQzLjktMzYuOS0zLjItLjctNi41LTEtOS44LTEuNS0yLjgtLjEtNS41LS4xLTguMy0uMXpNMTI0LjYgMTA3Yy0uMS0uNyAuMS0xLjMgLjQtMS45cy44LTEuMSAxLjMtMS40YzEzLjctOS41IDI4LjgtMTQuNSA0NS42LTEzLjIgMTQuOSAxLjEgMjcuMSA4LjQgMzMuNSAyNS45IDMuOSAxMC43IDQuOSAyMS44IDQuOSAzMyAwIDEwLjQtLjggMjAuNi00IDMwLjYtNi44IDIxLjMtMjIuNCAyOS40LTQyLjYgMjguNS0xNC0uNi0yNi4yLTYtMzcuNC0xMy45LS42LS4zLTEtLjgtMS4zLTEuNHMtLjQtMS4yLS40LTEuOWMuMS0xNC4xIDAtMjguMSAwLTQyLjJzLjEtMjggMC00Mi4xek0zMzAuMyA2NS4xYy0xIC4xLTIgLjMtMi45IC40LTkuNyAuNC0xOS40IDEuOC0yOC45IDQuMS02LjEgMS42LTEyIDMuOC0xNy45IDUuOC0zLjYgMS4yLTUuNCAzLjgtNS4zIDcuNyAuMSAzLjMtLjEgNi42IDAgOS45IC4xIDQuOCAyLjEgNi4xIDYuOCA0LjkgNy44LTIgMTUuNi00LjIgMjMuNS01LjcgMTIuMy0yLjMgMjQuNy0zLjMgMzcuMi0xLjQgNi41IDEgMTIuNiAyLjkgMTYuOCA4LjQgMy43IDQuOCA1LjEgMTAuNSA1LjMgMTYuNCAuMyA4LjMgLjIgMTYuNiAuMyAyNC45IDAgLjUtLjEgLjktLjIgMS40LS41LS4xLS45IDAtMS4zLS4xLTEwLjUtMi42LTIxLjItNC4yLTMyLTQuOS0xMS4zLS42LTIyLjUgLjEtMzMuMyAzLjktMTIuOSA0LjUtMjMuMyAxMi4zLTI5LjQgMjQuOS00LjcgOS44LTUuNCAyMC4yLTMuOSAzMC43IDIgMTQgOSAyNC44IDIxLjQgMzEuNyAxMS45IDYuNiAyNC44IDcuNCAzNy45IDUuNCAxNS4xLTIuMyAyOC41LTguNyA0MC4zLTE4LjQgLjUtLjQgMS0uOCAxLjYtMS4xIC42IDMuOCAxLjEgNy40IDEuOCAxMSAuNiAzLjEgMi41IDUuMSA1LjQgNS4yIDUuNCAuMSAxMC45IC4xIDE2LjMgMCAxLjMgMCAyLjUtLjUgMy40LTEuNHMxLjQtMi4xIDEuNS0zLjNjLjEtLjkgLjEtMS45IC4xLTIuOGwwLTEwNmMwLTQuMy0uMy04LjYtLjktMTIuOS0xLjktMTIuOS03LjQtMjMuNS0xOS0zMC40LTYuNy00LTE0LjEtNi0yMS44LTcuMS0zLjYtLjUtNy4yLS44LTEwLjgtMS4zLTMuOSAuMS03LjkgLjEtMTEuOSAuMXptMzUgMTI3LjdjMCAuNi0uMSAxLjItLjMgMS43cy0uNyAxLTEuMiAxLjNjLTExLjIgOC4xLTIzLjUgMTMuNS0zNy40IDE0LjktNS43IC42LTExLjQgLjQtMTYuOC0xLjgtMy0xLjEtNS42LTIuOS03LjgtNS4ycy0zLjctNS4xLTQuNi04LjFjLTItNi4zLTItMTMuMS0uMS0xOS40IDIuNS04LjMgOC40LTEzIDE2LjQtMTUuNiA4LTIuNCAxNi41LTMuMiAyNC44LTIuMiA4LjQgLjcgMTYuNiAyLjMgMjUgMy40IDEuNiAuMiAyLjEgMSAyLjEgMi42LS4xIDQuOCAwIDkuNSAwIDE0LjNzLS4yIDkuNC0uMSAxNC4xek02MjUuMiAzMjIuMmMtMS01LTQuOC02LjktOS4xLTguMy02LjgtMi4xLTEzLjktMy41LTIxLTMuOS0xMy4xLTEuMS0yNi4zLS41LTM5LjIgMS45LTE0LjMgMi43LTI3LjkgNy4zLTQwIDE1LjYtMS40IC45LTIuNyAyLjEtMy43IDMuNS0uNCAuNi0uNiAxLjMtLjcgMS45czAgMS40IC4yIDIuMWMuNCAxLjUgMi4xIDEuOSAzLjYgMS44IC43IDAgMS41IDAgMi4yLS4xIDcuOC0uOCAxNS41LTEuNyAyMy4zLTIuNSAxMS40LTEuMSAyMi45LTEuOCAzNC4zLS45IDQuOSAuNCA5LjcgMS4zIDE0LjQgMi43IDUuMSAxLjQgNy40IDUuMiA3LjYgMTAuNCAuNCA4LTEuNCAxNS43LTMuNSAyMy4zLTQuMSAxNS40LTEwIDMwLjMtMTUuOCA0NS4xLS40IDEtLjggMi0xIDMtLjUgMi45IDEuMiA0LjggNC4xIDQuMSAxLjgtLjQgMy40LTEuMyA0LjgtMi41IDQuNS00LjIgOC44LTguNyAxMi43LTEzLjQgMTIuOC0xNi40IDIwLjMtMzUuMyAyNC43LTU1LjYgLjgtMy42IDEuNC03LjMgMi4xLTEwLjlsMC0xNy4zek00OTMuMSAxOTljLTEyLjktMzUuNy0yNS44LTcxLjQtMzguNy0xMDcuMi0yLTUuNy00LjItMTEuMy02LjMtMTYuOS0xLjEtMi45LTMuMi00LjgtNi40LTQuOC03LjYtLjEtMTUuMi0uMi0yMi45LS4xLTIuNSAwLTMuNyAyLTMuMiA0LjUgLjUgMi4xIDEuMSA0LjEgMS45IDYuMSAxOS42IDQ4LjUgMzkuMyA5NyA1OS4xIDE0NS41IDEuNyA0LjEgMi4xIDcuNiAuMiAxMS44LTMuMyA3LjMtNS45IDE1LTkuMyAyMi4zLTMgNi41LTggMTEuNC0xNS4yIDEzLjMtNSAxLjMtMTAuMiAxLjctMTUuNCAxLjEtMi41LS4yLTUtLjgtNy41LTEtMy40LS4yLTUuMSAxLjMtNS4yIDQuOC0uMSAzLjMtLjEgNi42IDAgOS45IC4xIDUuNSAyIDggNy40IDguOSA1LjYgMS4xIDExLjIgMS44IDE2LjkgMiAxNy4xIC40IDMwLjctNi41IDM5LjUtMjEuNCAzLjUtNS45IDYuNi0xMiA5LjItMTguNCAyMy43LTU5LjggNDcuMi0xMTkuNyA3MC42LTE3OS42IC43LTEuOCAxLjMtMy42IDEuNi01LjUgLjQtMi44LS45LTQuNC0zLjctNC40LTYuNi0uMS0xMy4zIDAtMTkuOSAwLTEuNy0uMS0zLjQgLjMtNC43IDEuM3MtMi40IDIuMy0zIDMuOWMtLjUgMS40LTEuMSAyLjctMS42IDQuMWwtMzQuOCAxMDBjLTIuNSA3LjItNS4xIDE0LjUtNy43IDIyLjItLjQtMS4xLS42LTEuNy0uOS0yLjR6Il19LF9NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYW5kb3JhIixpY29uOlszODQsNTEyLFtdLCJlN2RhIiwiTTIwMS4zIDMyTDAgMzIgMCA0ODAgMTIwLjIgNDgwYzExLjIgMCAyMC4zLTkuMSAyMC4zLTIwLjNsMC04Ni4xIDMwLjEgMGMxNDcuMSAwIDIwNy4zLTgyLjkgMjA3LjMtMTc5LjkgMC0xMTkuNy05MC45LTE2MS44LTE3Ni41LTE2MS44eiJdfSxNTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmlkIixpY29uOls0NDgsNTEyLFtdLCJmMTliIiwiTTI3MS41IDQzMmwtNjggMzJDODguNSA0NTMuNyAwIDM5Mi41IDAgMzE4LjIgMCAyNDYuNyA4Mi41IDE4Ny4yIDE5MS43IDE3My45bDAgNDNjLTcxLjUgMTIuNS0xMjQgNTMtMTI0IDEwMS4zIDAgNTEgNTguNSA5My4zIDEzNS43IDEwM2wwLTM0MCA2OC0zMy4yIDAgMzg0IC4xIDB6TTQ0OCAyOTFsLTEzMS4zLTI4LjUgMzYuOC0yMC43Yy0xOS41LTExLjUtNDMuNS0yMC03MC0yNC44bDAtNDNjNDYuMiA1LjUgODcuNyAxOS41IDEyMC4zIDM5LjNsMzUtMTkuOCA5LjIgOTcuNXoiXX0sek10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZzY28iLGljb246WzUxMiw1MTIsW10sImU3ZGQiLCJNMzU3LjYgMjU2YzAtMjcuMS0xMC42LTUyLjUtMjkuNy03MS43cy00NC42LTI5LjctNzEuNy0yOS43bC0uMSAwYy0yNy4xIDAtNTIuNiAxMC42LTcxLjcgMjkuN3MtMjkuNyA0NC42LTI5LjcgNzEuN2MwIDI3LjEgMTAuNiA1Mi41IDI5LjcgNzEuNyAxOS4yIDE5LjIgNDQuNiAyOS43IDcxLjcgMjkuN2wuMSAwYzI3LjEgMCA1Mi42LTEwLjYgNzEuNy0yOS43IDE5LjItMTkuMiAyOS43LTQ0LjYgMjkuNy03MS43ek0xNzYuMyA0ODIuMWMyMyA4LjEgNDcgMTIuNiA3MS42IDEzLjRsMC01OS4xYy0xNy4xLS43LTMzLjUtMy44LTQ5LTguOWwtMjIuNiA1NC42em0xMzctNTQuNmMtMTUuNSA1LjEtMzIgOC4yLTQ5IDguOWwwIDU5LjFjMjQuNi0uOCA0OC42LTUuMyA3MS42LTEzLjRsLTIyLjYtNTQuNnpNOTIuNSA0MzEuMmMyMC4yIDE4LjkgNDMuMyAzNCA2OC43IDQ1bDIyLjUtNTQuNWMtMTguMy03LjktMzUuMS0xOC44LTQ5LjgtMzEuOUw5Mi41IDQzMS4yem0yODUuOS00MS40Yy0xNC42IDEzLjItMzEuNCAyNC00OS44IDMxLjlsMjIuNSA1NC41YzI1LjQtMTEgNDguNC0yNi4xIDY4LjctNDVsLTQxLjQtNDEuNHpNMTQ1LjQgMzc4LjJjMTMuNiAxMi4xIDI5IDIxLjkgNDUuOCAyOSAxOCA3LjYgMzcuMSAxMiA1Ni43IDEyLjlsMC00Ni44Yy0yNi40LTEuOC01MC4zLTEyLjMtNjkuMS0yOC42bC0zMy40IDMzLjR6bTE4OC0zMy40Yy0xOC44IDE2LjMtNDIuNyAyNi44LTY5LjEgMjguNmwwIDQ2LjhjMTkuNi0uOSAzOC43LTUuMyA1Ni43LTEyLjkgMTYuOC03LjEgMzIuMi0xNi45IDQ1LjgtMjlsLTMzLjQtMzMuNHpNMzguNSAzNTYuNmMxMC43IDIzLjIgMjUgNDQuMyA0Mi41IDYzLjFsNDEuMy00MS4zYy0xMi40LTEzLjQtMjIuOS0yOC42LTMwLjktNDUuMkwzOC41IDM1Ni42em0zODIuNC0yMy41Yy04IDE2LjYtMTguNSAzMS45LTMwLjkgNDUuMmw0MS4zIDQxLjNjMTcuNS0xOC43IDMxLjgtMzkuOSA0Mi41LTYzLjFsLTUyLjktMjMuNXptLTMzMS02OWMxLjEgMTguOCA1LjQgMzcuMiAxMi44IDU0LjUgNy41IDE3LjggMTggMzQgMzEuMiA0OC4ybDMzLjUtMzMuNWMtMTYuNC0xOC44LTI2LjktNDIuOC0yOC43LTY5LjJsLTQ4LjggMHptMjgzLjcgMGMtMS44IDI2LjQtMTIuMyA1MC40LTI4LjcgNjkuMmwzMy41IDMzLjVjMTMuMS0xNC4yIDIzLjYtMzAuNCAzMS4yLTQ4LjIgNy4zLTE3LjQgMTEuNi0zNS43IDEyLjctNTQuNWwtNDguNyAwem0tMzU3LjEgMGMuOSAyNi43IDYuMSA1Mi43IDE1LjYgNzcuNUw4NSAzMTguMmMtNi40LTE3LTEwLjMtMzUuMS0xMS4zLTU0bC01Ny4xIDB6bTQyMi4xIDBjLTEgMTguOS01IDM3LjEtMTEuMyA1NGw1Mi44IDIzLjVjOS41LTI0LjggMTQuNy01MC44IDE1LjYtNzcuNWwtNTcuMSAwek0zMi4xIDE3MC40Yy05LjUgMjQuOC0xNC43IDUwLjgtMTUuNiA3Ny41bDU3LjEgMGMxLTE4LjkgNS0zNy4xIDExLjMtNTRMMzIuMSAxNzAuNHptMTAxLjctMjUuMmMtMTMuMSAxNC4yLTIzLjYgMzAuNC0zMS4yIDQ4LjItNy4zIDE3LjQtMTEuNiAzNS43LTEyLjggNTQuNWw0OC44IDBjMS44LTI2LjQgMTIuMy01MC40IDI4LjctNjkuMmwtMzMuNS0zMy41em0yMTEuMSAzMy41YzE2LjQgMTguOCAyNi45IDQyLjggMjguNyA2OS4ybDQ4LjcgMGMtMS4xLTE4LjgtNS40LTM3LjItMTIuNy01NC41LTcuNS0xNy44LTE4LTM0LTMxLjItNDguMmwtMzMuNSAzMy41em04Mi40IDE1LjJjNi40IDE3IDEwLjMgMzUuMSAxMS4zIDU0bDU3LjEgMGMtLjktMjYuNy02LjEtNTIuNy0xNS42LTc3LjVsLTUyLjggMjMuNXpNODEgOTIuM0M2My40IDExMSA0OS4yIDEzMi4yIDM4LjUgMTU1LjRsNTIuOSAyMy41YzgtMTYuNiAxOC41LTMxLjkgMzAuOS00NS4yTDgxIDkyLjN6bTMwOSA0MS4zYzEyLjQgMTMuNCAyMi45IDI4LjYgMzAuOSA0NS4ybDUyLjktMjMuNWMtMTAuNy0yMy4yLTI1LTQ0LjMtNDIuNS02My4xTDM5MCAxMzMuN3pNMjQ4IDkxLjhjLTE5LjYgLjktMzguNyA1LjMtNTYuNyAxMi45LTE2LjggNy4xLTMyLjIgMTYuOS00NS44IDI5bDMzLjQgMzMuNGMxOC44LTE2LjMgNDIuNy0yNi44IDY5LjEtMjguNmwwLTQ2Ljd6bTE2LjMgNDYuN2MyNi40IDEuOCA1MC4zIDEyLjMgNjkuMSAyOC42bDMzLjQtMzMuNGMtMTMuNi0xMi4xLTI5LTIxLjktNDUuOC0yOS0xOC03LjYtMzcuMS0xMi01Ni43LTEyLjlsMCA0Ni43ek0xNjEuMiAzNS44Yy0yNS40IDExLTQ4LjQgMjYuMS02OC43IDQ1bDQxLjQgNDEuNGMxNC43LTEzLjIgMzEuNC0yNCA0OS44LTMxLjlMMTYxLjIgMzUuOHpNMzI4LjYgOTAuM2MxOC4zIDcuOSAzNS4xIDE4LjggNDkuOCAzMS45bDQxLjQtNDEuNGMtMjAuMi0xOC45LTQzLjMtMzQtNjguNy00NUwzMjguNiA5MC4zek0yNDggMTYuNGMtMjQuNiAuOC00OC42IDUuMy03MS42IDEzLjRsMjIuNiA1NC42YzE1LjUtNS4xIDMyLTguMiA0OS04LjlsMC01OS4xem0xNi4zIDU5LjFjMTcuMSAuNyAzMy41IDMuOCA0OSA4LjlsMjIuNi01NC42Yy0yMy04LjEtNDctMTIuNi03MS42LTEzLjRsMCA1OS4xek01MTIuMiAyNjQuMmwtLjIgMEM1MDcuOCAzOTkgMzk5LjIgNTA3LjcgMjY0LjMgNTExLjlsMCAuMS0xNi4zIDAgMC0uMUMxMTMuMSA1MDcuNyA0LjUgMzk5IC4yIDI2NC4xbC0uMiAwIDAtMTYuMyAuMiAwQzQuNSAxMTMgMTEzLjEgNC4zIDI0OCAuMWwwLS4xIDE2LjMgMCAwIC4xQzM5OS4yIDQuMyA1MDcuOCAxMTMgNTEyIDI0Ny45bC4yIDAgMCAxNi4zeiJdfSxDTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xvYmFsZWFrcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg1ZCIsIk00MTEuMiAzMi4yYzIwLjIgMCAzNi44IDE2LjYgMzYuOCAzNi45bDAgMzczLjhjMCAyMC4yLTE2LjYgMzYuOS0zNi44IDM2LjlsLTk0LjQgMCAyOC03OS40YzMuMS04LjgtMS42LTE4LjctMTAuNC0yMS44LTEuNi0uNS0yLjYtMS00LjItMXMtMy42IDAtNS4yIC41Yy01LjIgMS05LjkgNS4yLTExLjkgMTAuOWwtNi4yIDE2LjYgMC02Ny41YzAtMTAuOS03LjgtMTkuNy0xOC4yLTIxLjhsLTcuMiAwYy0uNSAwLTEgMC0xLjYgLjUtLjUgMC0xIC41LTEuNiAuNS0yLjYgMS01LjIgMi42LTcuMiA0LjFsMC00LjFjMC01LjctMi42LTEwLjQtNS43LTE0bC0xLTFjLTEtMS0yLjYtMi4xLTQuMi0yLjZsMC0yNi41YzAtNS4yLTQuMS05LjMtOS4zLTkuM2wtMzkuOSAwYy02LjcgMC0xMS40LTcuMy04LjMtMTMuNUwyODMuMSA4NC4xYzE0LjUtMzEuMSA0NS42LTUxLjQgODAuNC01MS45bDQ3LjcgMHptLTE2NiAwYzE3LjYgMCAzMC4xIDE2LjEgMjggMzIuMi0yLjYgMy42LTQuNyA3LjgtNi4yIDEwLjlMMTg2LjYgMjQxLjVjLTguOCAxOC43IDQuMiA0MCAyNC40IDQwbDMwLjYgMCAwIDE2LjFjLTcuOCAzLjEtMTMgMTAuOS0xMyAxOS43bDAgMy42Yy0zLjYtMy42LTguOC01LjctMTQuNS01LjctMTEuOSAwLTIxLjggOS45LTIxLjggMjEuOGwwIDE5LjItMy4xIDBjLTkuMyAwLTE3LjEgNy44LTE3LjEgMTcuMWwwIDEwNS45LTk1LjQgMGMtNDIgMC03Mi42LTQwLjUtNjEuMi04MS41IDEtMy4xIDQuMi01LjIgNy4zLTQuN2wyMS4yIDBjMjQuNCAwIDQ0LjYtMjAuMiA0NC42LTQ1LjJsMC00LjJjMC0yNC45LTE5LjctNDUuMi00NC42LTQ1LjItLjUgMC0xLS41LTEtMWw4LjgtMzIuN2MyLjEtNi4yLTIuNi0xMS45LTguOC0xMS45bC0zMy4yIDBjLTYuNyAwLTExLjQtNy4zLTguMy0xMy41TDc2LjcgODQuN2MxNi4xLTMyLjIgNDguMi01Mi40IDg0LTUyLjRsODQuNSAwek0xMzMuNyAxNDQuNGMtMTAuNCAwLTE4LjcgOC4zLTE4LjcgMTguNyAwIDkuOSA4LjMgMTguNyAxOC43IDE4LjcgMTAuNCAwIDE4LjctOC4zIDE4LjctMTguN3MtOC4zLTE4LjctMTguNy0xOC43em0yMDIuOCAwYTE4LjYgMTguNiAwIDEgMCAtLjIgMzcuMiAxOC42IDE4LjYgMCAxIDAgLjItMzcuMnoiXX0sVE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZlbm1vIixpY29uOls2NDAsNTEyLFtdLCJlODVhIiwiTTY3LjggMjAyLjdjMi40IDUgMy45IDExIDMuOSAxOS44IDAgMTYuMi0xMS41IDM5LjgtMjAuNyA1NC45bC05LjktNzkuNy00MSAzLjkgMTguOCAxMTIgNDYuOSAwYzIwLjUtMjYuOSA0NS44LTY1LjMgNDUuOC05NC44IDAtOS4zLTEuOS0xNi42LTYuMy0yMy43bC0zNy40IDcuNXptMTEzLTcuMWMtNDIuOCAwLTYzLjUgMzctNjMuNSA3MS45IDAgMjYuOSAxMi44IDQ4LjUgNDguNCA0OC41IDE0IDAgMjguNS0zIDM3LjgtNy41bDUtMzMuNmMtMTMuMiA2LjctMjMuMyA5LjMtMzMuOSA5LjMtOS43IDAtMTcuMS01LjItMTcuMS0xOC4zIDIyLS4yIDYwLTkuMyA2MC0zOC44IDAtMTguMy0xMy4yLTMxLjUtMzYuNy0zMS41bDAgMHptLTIyLjUgNDguOWMxLjEtMTIuOSAxMS0yMiAxOC42LTIyIDQuMyAwIDggMi42IDggNy43IDAgMTAuOC0xOSAxNC4yLTI2LjYgMTQuMmwwIDB6bTE1MC4yLTQ4LjljLTE1LjMgMC0yNi4xIDUuOC0zNC4zIDExLjJsLS40LTkuMy0zNC44IDAtMTguNCAxMTYuMSA0MC4yIDAgMTIuNy04MS40YzMuNS0xLjcgOC42LTQuMSAxMy44LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA2LjUgMCAyLjItLjcgNi0uOSA4bC0xMS4yIDcxLjEgNDAgMCAxMi4zLTc3LjVjLjctNC4xIDEuMy0xMC4zIDEuMy0xNC42IDAtMTUuNS03LjEtMjUuOS0yNy40LTI1Ljl6bTE4My4yIDBjLTE0LjkgMC0yNS43IDQuNS0zNy4yIDEyLjctNC4xLTcuMy0xMi4zLTEyLjctMjQuOC0xMi43LTE0LjUgMC0yNS4zIDUuOC0zMy4zIDExLjZsLTEuMS05LjctMzQuNCAwLTE4LjQgMTE2LjEgNDAuMiAwIDEyLjgtODEuNGMzLjUtMS43IDguNi00LjEgMTMuOC00LjEgMy45IDAgNy4xIDEuMyA3LjEgNy4xIDAgMS41LS40IDMuOS0uNiA1LjhsLTExLjQgNzIuNiA0MCAwIDEyLjctODEuNGMzLjctMS45IDguNi00LjEgMTMuNi00LjEgMy45IDAgNy4xIDEuMyA3LjEgNy4xIDAgMS41LS40IDMuOS0uNyA1LjhsLTExLjQgNzIuNiA0MCAwIDEyLjMtNzcuNWMuNy00LjEgMS4zLTEwLjMgMS4zLTE0LjYgMC0xNS41LTcuMS0yNS45LTI3LjctMjUuOWwwIDB6bTEwMi4yIDBjLTQ0LjcgMC02NC4yIDM0LjMtNjQuMiA3MC45IDAgMjcuOCAxMS4yIDUwIDQ1LjEgNTAgNDUuOCAwIDY1LTM3LjUgNjUtNzMuNyAwLTI3LjQtMTIuMy00Ny4yLTQ2LTQ3LjJ6bS0xMy40IDkwYy03LjEgMC0xMC4xLTYuNy0xMC4xLTE3LjUgMC0xNC4yIDMuMi00MiAxOS00MiA3LjEgMCA5LjUgNi41IDkuNSAxNS45IDAgMTQuMi0zLjUgNDMuNS0xOC40IDQzLjV6Il19LCRNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1YnVudHUiLGljb246WzU3Niw1MTIsW10sImY3ZGYiLCJNNDY5LjIgNzVjMC0yMC4xLTgtMzkuMy0yMi4yLTUzLjVzLTMzLjQtMjIuMi01My41LTIyLjItMzkuMyA4LTUzLjUgMjIuMi0yMi4yIDMzLjQtMjIuMiA1My41YzAgMjAuMSA4IDM5LjMgMjIuMSA1My41czMzLjQgMjIuMSA1My41IDIyLjEgMzkuMy04IDUzLjUtMjIuMSAyMi4xLTMzLjQgMjIuMS01My41bC4xIDB6bS0zMTUgMTY1LjdhNzUuNiA3NS42IDAgMSAwIC0xNTEuMiAwIDc1LjYgNzUuNiAwIDEgMCAxNTEuMiAwek01NyAzNDZjMTguNiA0Ni45IDUxIDg3IDkzIDExNS4xczkxLjUgNDIuNiAxNDIgNDEuN2MtMTQuNy0xOC42LTIyLjktNDEuNS0yMy4yLTY1LjItNi44LS45LTEzLjMtMi4xLTE5LjUtMy40LTI2LjgtNS43LTUxLjktMTcuMy03My42LTM0cy0zOS4zLTM4LjEtNTEuNy02Mi41Yy0yMC45IDkuOS00NC41IDEyLjgtNjcuMSA4LjJsLjEgLjF6bTM5NS4xIDg5LjhhNzUuNiA3NS42IDAgMSAwIC0xNTEuMiAwIDc1LjYgNzUuNiAwIDEgMCAxNTEuMiAwek00NDQgMzUxLjZjMTguNSAxNC44IDMxLjYgMzUuMiAzNy4yIDU4LjIgMzMuMy00MS4zIDUyLjYtOTIuMiA1NC44LTE0NS4ycy0xMi41LTEwNS40LTQyLjItMTQ5LjRjLTguNiAyMS41LTI0IDM5LjYtNDMuOCA1MS42IDE1LjQgMjguNiAyMi45IDYwLjggMjEuOSA5My4ycy0xMC43IDY0LTI4IDkxLjZsLjEgMHpNMTAxLjEgMTM1LjRjMTIuNCAyLjcgMjQuMyA3LjUgMzUuMSAxNC4zIDE2LjYtMjQuMiAzOC45LTQ0LjEgNjQuOC01OFMyNTUuOCA3MC40IDI4NS4yIDcwYy4yLTUuOSAuOS0xMS45IDItMTcuNyAzLjYtMTYuNyAxMS4xLTMyLjMgMjEuOC00NS41LTQ3LjctMy44LTk1LjQgNi0xMzcuNiAyOC41Uzk0LjMgOTEuNyA3MC44IDEzMy40YzIuNy0uMiA1LjMtLjMgOC0uMyA3LjUgMCAxNSAuOCAyMi40IDIuM2wtLjEgMHoiXX0sRE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYWNvaW4iLGljb246WzM4NCw1MTIsW10sImYyMzciLCJNMzg0IDMybC02NCAwLTgwLjcgMTkyLTk0LjUgMC04MC44LTE5Mi02NCAwIDQ4IDExMi00OCAwIDAgNDggNjguNSAwIDEzLjggMzItODIuMyAwIDAgNDggMTAyLjggMCA4OS4yIDIwOCA4OS4yLTIwOCAxMDIuOCAwIDAtNDgtODIuMyAwIDEzLjgtMzIgNjguNSAwIDAtNDgtNDggMCA0OC0xMTJ6TTE5MiAzMzZsLTI3LTY0IDU0IDAtMjcgNjR6Il19LExNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ6aGlodSIsaWNvbjpbNjQwLDUxMixbXSwiZjYzZiIsIk0xNzAuNSAxNDguMWwwIDIxNy41IDIzLjQgMCA3LjcgMjYuNCA0Mi0yNi40IDQ5LjUgMCAwLTIxNy41LTEyMi43IDB6bTk3LjggMTkzLjlsLTI3LjkgMC0yNy45IDE3LjUtNS4xLTE3LjUtMTEuOSAwIDAtMTcwLjMgNzIuOCAwIDAgMTcwLjN6TTE0OS44IDI0Ny43bC01Mi4zIDBjMS43LTI3LjEgMi4yLTUxLjYgMi4yLTczLjVsNTEuMiAwczItMjIuNi04LjYtMjIuM2wtODguNSAwYzMuNS0xMy4xIDcuOS0yNi43IDEzLjEtNDAuNyAwIDAtMjQuMSAwLTMyLjMgMjEuNi0zLjQgOC45LTEzLjIgNDMuMS0zMC43IDc4LjEgNS45LS42IDI1LjQtMS4yIDM2LjgtMjIuMiAyLjEtNS45IDIuNS02LjcgNS4xLTE0LjVsMjguOSAwYzAgMTAuNS0xLjIgNjYuOS0xLjcgNzMuNGwtNTIuMyAwYy0xMS43IDAtMTUuNiAyMy42LTE1LjYgMjMuNmw2NS42IDBjLTQuNCA0OS45LTI4IDkxLjktNzAuOCAxMjUuMSAyMC41IDUuOSA0MC45LS45IDUxLTkuOSAwIDAgMjMtMjAuOSAzNS42LTY5LjNsNTQgNjQuOXM3LjktMjYuOS0xLjItNDBjLTcuNi04LjktMjguMS0zMy4xLTM2LjgtNDEuOEw4Ny45IDMxMmM0LjQtMTQgNy0yNy42IDcuOS00MC43bDYxLjYgMHMtLjEtMjMuNi03LjYtMjMuNmwwIDB6bTQxMi0xLjZjMjAuOC0yNS42IDQ1LTU4LjYgNDUtNTguNnMtMTguNi0xNC44LTI3LjQtNC4xYy02IDguMi0zNi44IDQ4LjItMzYuOCA0OC4ybDE5LjIgMTQuNHpNNDExLjggMTg3Yy05LTguMi0yNS45IDIuMS0yNS45IDIuMXMzOS41IDU1IDQxLjEgNTcuNGwxOS41LTEzLjdzLTI1LjctMzcuNi0zNC43LTQ1LjlsMCAwIDAgMHpNNjQwIDI1OC40Yy0xOS44IDAtMTMwLjkgLjktMTMxLjEgLjlsMC0xMDFjNC44IDAgMTIuNC0uNCAyMi44LTEuMiA0MC45LTIuNCA3MC4xLTQgODcuOC00LjggMCAwIDEyLjItMjcuMi0uNi0zMy40LTMuMS0xLjItMjMuMiA0LjYtMjMuMiA0LjZzLTE2NS4yIDE2LjUtMjMyLjQgMThjMS42IDguOCA3LjYgMTcuMSAxNS44IDE5LjYgMTMuMyAzLjUgMjIuNyAxLjcgNDkuMiAuOSAyNC44LTEuNiA0My43LTIuNCA1Ni41LTIuNGwwIDk5LjgtMTMzLjUgMHMyLjggMjIuMyAyNS41IDIyLjlsMTA3LjkgMCAwIDcwLjljMCAxNC0xMS4yIDIyLTI0LjUgMjEuMS0xNC4xIC4xLTI2LjEtMS4xLTQxLjctMS44IDIgNCA2LjMgMTQuNCAxOS4zIDIxLjggOS45IDQuOCAxNi4yIDYuNiAyNiA2LjYgMjkuNiAwIDQ1LjctMTcuMyA0NC45LTQ1LjNsMC03My4zIDEyMi40IDBjOS43IDAgOC43LTIzLjggOC43LTIzLjhsMCAweiJdfSxFTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFuZGV4IixpY29uOlsyNTYsNTEyLFtdLCJmNDEzIiwiTTE1My4xIDMxNS44TDY1LjcgNTEyIDIgNTEyIDk4IDMwMi4yQzUyLjkgMjc5LjMgMjIuOCAyMzcuOCAyMi44IDE2MS4xIDIyLjcgNTMuNyA5MC44IDAgMTcxLjcgMGw4Mi4zIDAgMCA1MTItNTUuMSAwIDAtMTk2LjItNDUuOCAwek0xOTguOSA0Ni41bC0yOS40IDBjLTQ0LjQgMC04Ny40IDI5LjQtODcuNCAxMTQuNiAwIDgyLjMgMzkuNCAxMDguOCA4Ny40IDEwOC44bDI5LjQgMCAwLTIyMy40eiJdfSxQTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGl4aXYiLGljb246WzQ0OCw1MTIsW10sImU2NDAiLCJNOTYgMzJDNDMgMzIgMCA3NSAwIDEyOEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05Nkw5NiAzMnptNzcuNyAyMTcuM2E2MC4xIDYwLjEgMCAxIDAgMTIwLjMgMCA2MC4xIDYwLjEgMCAxIDAgLTEyMC4zIDB6TTExOS4xIDM4Ny44Yy0uMy0uOC0uNS0xLjctLjUtMi42bDAtMjQ0LjNjMC0xLjggLjctMy42IDItNC45czMtMiA0LjktMmwxNi45IDBjMS4yIDAgMi4zIC4zIDMuMyAuOHMxLjkgMS4zIDIuNSAyLjNsMTQgMjEuOGMxOS43LTE1LjYgNDQuNS0yNSA3MS42LTI1IDYzLjYgMCAxMTUuMiA1MS42IDExNS4yIDExNS4yUzI5Ny41IDM2NC41IDIzMy44IDM2NC41Yy0yMiAwLTQyLjYtNi4yLTYwLjEtMTYuOWwwIDM3LjZjMCAuOS0uMiAxLjgtLjUgMi42cy0uOSAxLjYtMS41IDIuMi0xLjQgMS4xLTIuMiAxLjUtMS43IC41LTIuNiAuNWwtNDEuMyAwYy0uOSAwLTEuOC0uMi0yLjYtLjVzLTEuNi0uOS0yLjItMS41LTEuMS0xLjQtMS41LTIuMnoiXX0sSU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5haSIsaWNvbjpbNTEyLDUxMixbXSwiZTdjZiIsIk0xOTYuNCAxODUuOGwwLTQ4LjZjMC00LjEgMS41LTcuMiA1LjEtOS4ybDk3LjgtNTYuM2MxMy4zLTcuNyAyOS4yLTExLjMgNDUuNi0xMS4zIDYxLjQgMCAxMDAuNCA0Ny42IDEwMC40IDk4LjMgMCAzLjYgMCA3LjctLjUgMTEuOEwzNDMuMyAxMTEuMWMtNi4xLTMuNi0xMi4zLTMuNi0xOC40IDBMMTk2LjQgMTg1Ljh6TTQyNC43IDM3NS4ybDAtMTE2LjJjMC03LjItMy4xLTEyLjMtOS4yLTE1LjlMMjg3IDE2OC40IDMyOSAxNDQuM2MzLjYtMiA2LjctMiAxMC4yIDBMNDM3IDIwMC43YzI4LjIgMTYuNCA0Ny4xIDUxLjIgNDcuMSA4NSAwIDM4LjktMjMgNzQuOC01OS40IDg5LjZsMCAwek0xNjYuMiAyNzIuOGwtNDItMjQuNmMtMy42LTItNS4xLTUuMS01LjEtOS4ybDAtMTEyLjZjMC01NC44IDQyLTk2LjMgOTguOC05Ni4zIDIxLjUgMCA0MS41IDcuMiA1OC40IDIwTDE3NS40IDEwOC41Yy02LjEgMy42LTkuMiA4LjctOS4yIDE1LjlsMCAxNDguNSAwIDB6bTkwLjQgNTIuMmwtNjAuMi0zMy44IDAtNzEuNyA2MC4yLTMzLjggNjAuMiAzMy44IDAgNzEuNy02MC4yIDMzLjh6bTM4LjcgMTU1LjdjLTIxLjUgMC00MS41LTcuMi01OC40LTIwbDEwMC45LTU4LjRjNi4xLTMuNiA5LjItOC43IDkuMi0xNS45bDAtMTQ4LjUgNDIuNSAyNC42YzMuNiAyIDUuMSA1LjEgNS4xIDkuMmwwIDExMi42YzAgNTQuOC00Mi41IDk2LjMtOTkuMyA5Ni4zbDAgMHpNMTczLjggMzY2LjVMNzYuMSAzMTAuMmMtMjguMi0xNi40LTQ3LjEtNTEuMi00Ny4xLTg1IDAtMzkuNCAyMy42LTc0LjggNTkuOS04OS42bDAgMTE2LjdjMCA3LjIgMy4xIDEyLjMgOS4yIDE1LjlsMTI4IDc0LjItNDIgMjQuMWMtMy42IDItNi43IDItMTAuMiAwem0tNS42IDg0Yy01Ny45IDAtMTAwLjQtNDMuNS0xMDAuNC05Ny4zIDAtNC4xIC41LTguMiAxLTEyLjNsMTAwLjkgNTguNGM2LjEgMy42IDEyLjMgMy42IDE4LjQgMGwxMjguNS03NC4yIDAgNDguNmMwIDQuMS0xLjUgNy4yLTUuMSA5LjJsLTk3LjggNTYuM2MtMTMuMyA3LjctMjkuMiAxMS4zLTQ1LjYgMTEuM2wwIDB6bTEyNyA2MC45YzYyIDAgMTEzLjctNDQgMTI1LjQtMTAyLjQgNTcuMy0xNC45IDk0LjItNjguNiA5NC4yLTEyMy40IDAtMzUuOC0xNS40LTcwLjctNDMtOTUuNyAyLjYtMTAuOCA0LjEtMjEuNSA0LjEtMzIuMyAwLTczLjItNTkuNC0xMjgtMTI4LTEyOC0xMy44IDAtMjcuMSAyLTQwLjQgNi43LTIzLTIyLjUtNTQuOC0zNi45LTg5LjYtMzYuOS02MiAwLTExMy43IDQ0LTEyNS40IDEwMi40LTU3LjMgMTQuOC05NC4yIDY4LjYtOTQuMiAxMjMuNCAwIDM1LjggMTUuNCA3MC43IDQzIDk1LjctMi42IDEwLjgtNC4xIDIxLjUtNC4xIDMyLjMgMCA3My4yIDU5LjQgMTI4IDEyOCAxMjggMTMuOCAwIDI3LjEtMiA0MC40LTYuNyAyMyAyMi41IDU0LjggMzYuOSA4OS42IDM2Ljl6Il19LEFNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXRoIixpY29uOls0NDgsNTEyLFtdLCJmNTEyIiwiTTAgMzJsNjkuNyAxMTguOC01OC45LTExLjUgNjkuOCA5MWMtMyAxNy0zIDM0LjQgMCA1MS40bC02OS44IDkxIDU4LjktMTEuNS02OS43IDExOC44IDExOC44LTY5LjctMTEuNSA1OC45IDkxLTY5LjhjMTcgMyAzNC41IDMgNTEuNSAwbDkxIDY5LjgtMTEuNS01OC45IDExOC43IDY5LjctNjkuNy0xMTguOCA1OC45IDExLjUtNjkuOC05MWMzLTE3IDMtMzQuNCAwLTUxLjRsNjkuOC05MS01OC45IDExLjUgNjkuNy0xMTguOC0xMTguNyA2OS43IDExLjUtNTguOS05MS4xIDY5LjljLTguNS0xLjUtMTcuMS0yLjMtMjUuNy0yLjNzLTE3LjIgLjgtMjUuNyAyLjNMMTA3LjIgNDIuOCAxMTguOCAxMDEuNyAwIDMyek0yMjQgMzgwLjJhMTI0LjIgMTI0LjIgMCAxIDEgMC0yNDguNCAxMjQuMiAxMjQuMiAwIDEgMSAwIDI0OC40em0wLTIxMS44YTg3LjYgODcuNiAwIDEgMCAwIDE3NS4xIDg3LjYgODcuNiAwIDEgMCAwLTE3NS4xeiJdfSxOTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianVsaWEiLGljb246WzY0MCw1MTIsW10sImU4NTIiLCJNMTI0IDQwNi41YzAgMTYuMS0xLjggMjkuMS01LjQgMzlzLTguOCAxNy42LTE1LjUgMjMuMS0xNC43IDkuMS0yNC4xIDExLTE5LjggMi44LTMxLjIgMi44Yy0xNS41IDAtMjcuMy0yLjQtMzUuNS03LjNTMCA0NjQuNSAwIDQ1Ny43YzAtNS42IDIuMy0xMC40IDYuOS0xNC4zczEwLjgtNS44IDE4LjUtNS44YzUuOCAwIDEwLjQgMS42IDEzLjkgNC43czYuMyA2LjIgOC42IDkuM2MyLjYgMy40IDQuOCA1LjYgNi41IDYuOHMzLjQgMS43IDQuOCAxLjdjMy4xIDAgNS40LTEuOCA3LTUuNHMyLjQtMTAuNyAyLjQtMjEuMmwwLTE5OC43IDU1LjQtMTUuMiAwIDE4Ni45em03OC45LTE4MS42bDAgMTI3LjljMCAzLjYgLjcgNi45IDIuMSAxMHMzLjMgNS44IDUuNyA4LjEgNS4yIDQuMSA4LjUgNS40IDYuNyAyLjEgMTAuNCAyLjFjNC4yIDAgOC45LTIuMyAxNC43LTYuNCA5LjItNi40IDE0LjctMTAuOSAxNC43LTE2LjFsMC0xMzEgNTUuMSAwIDAgMTgxLjYtNTUuMSAwIDAtMTYuOWMtNy4zIDYuMS0xNSAxMS0yMy4yIDE0LjdzLTE2LjIgNS42LTIzLjkgNS42Yy05IDAtMTcuNC0xLjUtMjUuMS00LjVzLTE0LjUtNy0yMC4zLTEyLjItMTAuNC0xMS4yLTEzLjctMTguMWMtMy4zLTYuOS01LTE0LjMtNS0yMi4ybDAtMTI3LjkgNTUuMSAwek0zOTEuNCA0MDYuNWwtNTQuOSAwIDAtMjU0LjYgNTQuOS0xNS4yIDAgMjY5Ljh6bTIyLjktMTcxLjdsNTUuMS0xNS4yIDAgMTg2LjktNTUuMSAwIDAtMTcxLjd6bTE3MC4zIDc3LjljLTUuMyAyLjMtMTAuNyA0LjktMTYuMSA3LjlzLTEwLjMgNi4yLTE0LjcgOS44LTggNy4zLTEwLjggMTEuNC00LjEgOC4yLTQuMSAxMi42YzAgMy40IC40IDYuNiAxLjMgOS44czIuMSA1LjggMy44IDguMSAzLjQgNC4xIDUuMyA1LjQgNCAyLjEgNi4zIDIuMWM0LjUgMCA5LjEtMS40IDEzLjctNC4xczkuNy02LjIgMTUuNC0xMC40bDAtNTIuNXpNNjQwIDQwNi41bC01NS40IDAgMC0xNC41Yy0zLjEgMi42LTYgNS04LjkgNy4xcy02LjIgNC4xLTkuOCA1LjctNy43IDIuOS0xMi4yIDMuOGMtNC41IC45LTkuOCAxLjMtMTUuOSAxLjMtOC40IDAtMTUuOS0xLjItMjIuNi0zLjYtNi43LTIuNC0xMi40LTUuNy0xNy05LjlzLTguMy05LjEtMTAuOC0xNC45Yy0yLjUtNS43LTMuOC0xMi0zLjgtMTguNyAwLTYuOSAxLjMtMTMuMiA0LTE4LjkgMi43LTUuNiA2LjMtMTAuNyAxMC45LTE1LjIgNC42LTQuNSA5LjktOC41IDE2LjEtMTIuMXMxMi43LTYuOCAxOS43LTkuOCAxNC4zLTUuNyAyMS45LTguMiAxNS4xLTQuOSAyMi41LTcuMWw2LTEuNSAwLTE3LjljMC0xMS42LTIuMi0xOS44LTYuNi0yNC43cy0xMC40LTcuMy0xNy44LTcuM2MtOC43IDAtMTQuOCAyLjEtMTguMSA2LjNzLTUuMSA5LjMtNS4xIDE1LjJjMCAzLjQtLjQgNi43LTEuMSA5LjktLjcgMy4yLTIgNi0zLjcgOC41cy00LjMgNC40LTcuNiA1LjhjLTMuMyAxLjUtNy41IDIuMi0xMi41IDIuMi03LjcgMC0xNC0yLjItMTguOS02LjYtNC44LTQuNC03LjMtMTAtNy4zLTE2LjggMC02LjMgMi4xLTEyLjEgNi40LTE3LjUgNC4zLTUuNCAxMC0xMCAxNy4zLTEzLjkgNy4zLTMuOSAxNS42LTYuOSAyNS4xLTkuMnMxOS42LTMuNCAzMC4yLTMuNGMxMy4xIDAgMjQuMyAxLjIgMzMuNyAzLjVzMTcuMiA1LjcgMjMuMyAxMCAxMC42IDkuNiAxMy41IDE1LjcgNC40IDEzIDQuNCAyMC42bDAgMTM2LjF6TTYwIDE3Mi45YTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6TTQ1Mi4yIDk1YTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6bTQ1IDc3LjlhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHptLTg5LjkgMGEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAweiJdfSxSTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmZjLWRpcmVjdGlvbmFsIixpY29uOls1MTIsNTEyLFtdLCJlNTMwIiwiTTIxMS44IDQ4OC42YzEuNiAyLjUgMi4xIDUuNiAxLjQgOC41LS42IDIuOS0yLjQgNS41LTQuOSA3LjEtMi42IDEuNi01LjYgMi4xLTguNiAxLjUtNjEuNC0xMy45LTExNS42LTQ5LjktMTUyLjItMTAxLjJTLTUuNCAyOTAuMyAxLjYgMjI3LjdjNy02Mi43IDM2LjgtMTIwLjUgODMuNy0xNjIuNSA0Ni45LTQyIDEwNy43LTY1LjIgMTcwLjctNjUuMiAxLjUgMCAyLjEgLjMgNC4zIC45IDEuNCAuNiAxLjggMS40IDMuNyAyLjUgMS4xIDEuMSAxLjkgMi4zIDIuNSAzLjcgLjUgMS40IC44IDIuOCAuOCA0LjNsMCAxMDEgMjQuNS0yNS45YzEtMS4xIDIuMi0yIDMuNi0yLjYgMS4zLS42IDIuOC0uOSA0LjMtMSAxLjUtLjEgMi45IC4yIDQuMyAuN3MyLjcgMS4zIDMuOCAyLjRjMSAxIDEuOSAyLjIgMi41IDMuNiAuNiAxLjMgMSAyLjggMSA0LjNzLS4yIDMtLjcgNC4zYy0uNiAxLjQtMS40IDIuNi0yLjQgMy43bC00NCA0Ni42Yy0xLjEgMS4xLTIuMyAyLTMuNyAyLjYtMS41IC42LTMgLjktNS40IC45LS42IDAtMi4yLS4zLTMuNi0uOXMtMi43LTEuNS0zLjctMi42bC00NC4xLTQ2LjZjLTItMi4yLTMuMS01LjEtMy04LjEgMC0zIDEuMy02LjcgMy41LTcuOSAyLjItMi4xIDUuMS0zLjIgOC4xLTMuMSAzIC4xIDUuOCAxLjMgNy45IDMuNWwyNC41IDI2IDAtODkuNWMtNTYuNCAyLjgtMTA5LjggMjUuOC0xNTAuNSA2NS00MC42IDM5LjEtNjUuNyA5MS43LTcwLjYgMTQ3LjlTMzQuNCAzNDguMSA2Ny43IDM5My43YzMyLjQgNDUuNSA4MiA3Ny41IDEzNyA4OS45IDIuOSAuNyA1LjUgMi41IDcuMSA1ek0xNzEuNCAxMjYuMWMtLjggMS4zLTEuOSAyLjQtMy4xIDMuMi0yMC41IDEzLjktMzcuMiAzMi42LTQ4LjggNTQuNXMtMTcuNyA0Ni4zLTE3LjcgNzEuMSA2LjEgNDkuMiAxNy43IDcwLjJjMTEuNiAyMi44IDI4LjMgNDEuNSA0OC44IDU1LjQgMi41IDEuNyA0LjIgNC4zIDQuNyA3LjMgLjYgMi45LS45IDYtMS43IDguNC0xLjcgMi41LTUuMiA0LjItNy4zIDMuOS0yLjkgMS40LTYgLjgtOC40LS45LTIzLjYtMTYtNDIuOC0zNy41LTU2LjEtNjIuNy0xMy4zLTI1LjEtMjAuMy01My4xLTIwLjMtODEuNiAwLTI4LjQgNy01Ni41IDIwLjMtODEuNiAxMy4zLTI1LjIgMzIuNS00Ni43IDU2LjEtNjIuNyAxLjItLjggMi42LTEuNCA0LTEuOCAxLjUtLjMgMy0uMyA0LjUgMCAxLjQgLjIgMi44IC44IDQuMSAxLjZzMi4zIDEuOSAzLjIgMy4xYy44IDEuMiAxLjQgMi42IDEuNyA0LjFzLjMgMyAwIDQuNGMtLjMgMS41LS44IDIuOS0xLjcgNC4xek0zNDAuOSAzODMuNWMuOC0xLjIgMS45LTIuMyAyLjItMy4xbDAtLjFjMjEuMy0xNCAzOC0zMi43IDQ5LjYtNTQuNiAxMS41LTIxLjggMTcuNS00Ni4yIDE3LjUtNzAuOXMtNi00OS4xLTE3LjUtNzFjLTExLjYtMjIuNy0yOC4zLTQwLjUtNDkuNi01NC41LS4zLS44LTEuNC0xLjktMi4yLTMuMS0uOC0xLjMtMS40LTIuNy0xLjYtNC4xLTEuMi0xLjUtLjMtMyAwLTQuNCAuMy0xLjUgLjktMi45IDEuNy00LjEgLjktMS4yIDEuMS0yLjMgMy4yLTMuMSAxLjItLjggMi42LTEuMyA0LjEtMS42czIuOS0uMyA0LjQgMCAyLjggLjkgNC4xIDEuOGMyMy40IDE2IDQyLjcgMzcuNSA1NS45IDYyLjYgMTMuMyAyNS4xIDE5LjQgNTMuMSAxOS40IDgxLjUgMCAyOC41LTYuMSA1Ni41LTE5LjQgODEuNi0xMy4yIDI1LjEtMzIuNSA0Ni42LTU1LjkgNjIuNi0xLjMgLjktMi42IDEuNS00LjEgMS44cy0yLjkgLjMtNC40IDAtMi45LTEuNy00LjEtMS42Yy0yLjEtLjgtMi4zLTEuOS0zLjItMy4xLS44LTEuMi0xLjQtMi42LTEuNy00LjEtLjMtMS40LTEuMi0yLjkgMC00LjQgLjItMS40IC44LTIuOCAxLjYtNC4xek0zMTIuMyA2LjNjNTYuMiAxMi43IDEwNi40IDQ0IDE0Mi43IDg4LjcgMzAuNCAzNy42IDQ5LjYgODMgNTUuMyAxMzEgNS42IDQ4LTIuNCA5Ni43LTIzLjIgMTQwLjMtMjAuOSA0My42LTUzLjYgODAuNS05NC41IDEwNi4zLTQwLjkgMjUuNy04OC4yIDM5LjQtMTM2LjYgMzkuNC0xLjUgMC0yLjktLjMtNC4zLS45LTEuNC0uNS0yLjYtMS40LTMuNy0yLjQtMS45LTEuMS0xLjktMi4zLTIuNC0zLjctLjYtMS40LS45LTIuOC0uOS00LjNsMC05OS4yLTI0LjUgMjZjLTIuMSAyLjItNC45IDIuNi03LjkgMy42LTMgLjEtNS45LTEuMS04LjEtNC0yLjItMS4yLTMuNS00LTMuNS03LS4xLTMgMS01LjkgMy04LjFsNDQuMS00Ni42YzEuMy0yLjIgNS4xLTMuNCA3LjMtMy40IDQgMCA2LjkgMS4yIDkuMSAzLjRsNDQgNDYuNmMyLjEgMi4yIDMuMiA1LjEgMy4xIDguMXMtMS40IDUuOC0zLjUgN2MtMi4yIDIuOS01LjEgNC4xLTguMSA0LTMtMS01LjktMS40LTcuOS0zLjZsLTI0LjUtMjUuOSAwIDg3LjVjNTYuNC0yLjggMTA5LjgtMjUuOCAxNTAuNS02NSA0MC43LTQwIDY1LjgtOTEuNyA3MC43LTE0Ny45IDQuOC01Ny4xLTEwLjgtMTEyLjMtNDQuMS0xNTcuOS0zMy4zLTQ1LjYtODItNzcuNS0xMzctODkuOS0xLjUtLjMtMi44LS45LTQuMS0xLjgtMS4yLS45LTIuMi0xLjktMy0zLjItLjgtMS4yLTIuMi0yLjYtMS42LTQuMS0uMi0xLjUtLjItMyAuMS00LjQgLjQtMS40IDEtMi44IDEuOC00IC45LTEuMiAyLTIuMiAzLjItMyAxLjMtLjggMi43LTEuMyA0LjEtMS42IDEuNS0uMyAzLS4yIDQuNCAuMXptNDAuOCAyNDkuOGMwIDMxLjQtMTcuNSA2MS4xLTQ5LjMgODMuNS0yLjEgMS41LTQuOCAyLjMtNy40IDItMi43LS4yLTUuMi0xLjMtNy0zLjJsLTcwLjEtNjkuOGMtMi4yLTIuMS00LjItNS0zLjQtOCAwLTMgMS4yLTUuOSAzLjMtOCAyLjItMi4xIDUtMy4zIDgtMy4zczUuOSAxLjIgOCAzLjNsNjMuMSA2Mi44YzIwLjgtMTcuMSAzMi4yLTM3LjkgMzIuMi01OS4zIDAtMjMuOS0xNC4xLTQ3LTM5LjctNjUuMS0yLjUtMS43LTQuMS00LjMtNC42LTcuMy0uNS0yLjkgLjEtNiAxLjktOC40IDEuNy0yLjUgNC4zLTQuMSA3LjMtNC42IDIuOS0uNSA2IC4xIDguNCAxLjkgMzEuOCAyMi40IDQ5LjMgNTIuMSA0OS4zIDgzLjV6TTIxNi43IDM0MS41Yy0zIC41LTYtLjItOC41LTEuOS0zMS43LTIyLjQtNTAuMS01Mi4xLTUwLjEtODMuNXMxOC40LTYxLjEgNTAuMS04My41YzIuMi0xLjYgNC45LTIuMyA3LjUtMi4xIDIuNyAuMyA1LjEgMS40IDcgMy4zbDcwLjEgNjkuOGMyLjEgMi4xIDMuMyA1IDMuMyA4cy0yIDUuOC0zLjMgOGMtMi4xIDIuMS01IDMuMy03LjkgMy4zLTMgMC02LjgtMS4yLTgtMy4zbC02My4xLTYyLjljLTIwLjkgMTcuMy0zMi4yIDM4LTMyLjIgNTkuNCAwIDIzIDE0LjEgNDcgMzkuNyA2NSAyLjQgMS44IDQuMSA0LjQgNC42IDcuNCAuNSAyLjktLjIgNS45LTEuOSA4LjQtMS43IDIuNC00LjQgNC4xLTcuMyA0LjZ6Il19LE9NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLWJ5IixpY29uOls1MTIsNTEyLFtdLCJmNGU3IiwiTTMyMi45IDE5NC40bDAgMTAxLjQtMjguMyAwIDAgMTIwLjUtNzcuMSAwIDAtMTIwLjQtMjguMyAwIDAtMTAxLjVjMC00LjQgMS42LTguMiA0LjYtMTEuMyAzLjEtMy4xIDYuOS00LjcgMTEuMy00LjdsMTAxLjkgMGM0LjEgMCA3LjggMS42IDExLjEgNC43IDMuMSAzLjIgNC44IDYuOSA0LjggMTEuM3ptLTMyLjUtNjQuNWEzNC41IDM0LjUgMCAxIDEgLTY5IC44IDM0LjUgMzQuNSAwIDEgMSA2OS0uOHpNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zeiJdfSxGTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW1icmFjbyIsaWNvbjpbNTEyLDUxMixbXSwiZjhlOCIsIk0yNTYuMyA4YTI0OCAyNDggMCAxIDAgLS43IDQ5NiAyNDggMjQ4IDAgMSAwIC43LTQ5NnptMTQ1IDI2NmMtLjggMjcuMS01LjQgNDguOC0xNCA2NXMtMjMuMSAyNy45LTQzLjUgMzVjLTIwLjQgNy4xLTQ4LjkgMTAuNi04NS40IDEwLjVsLTQuNiAwYy0zNi41IC4xLTY1LTMuMy04NS40LTEwLjVzLTM0LjktMTguOC00My41LTM1Yy04LjYtMTYuMi0xMy4yLTM3LjktMTQtNjUtLjctMTAuMi0uNy0yMC41IDAtMzAuNyAuNC0xNC43IDEuNi0yOS4zIDMuNi00My45IDEuOS0xMy40IDMuNi0yMi42IDUuNC0zMiAxLTQuOSAxLjMtNi40IDEuOC04LjQgLjMtMS4xIC45LTIuMSAxLjgtMi44czItMS4xIDMuMS0xLjFsLjcgMCAzMiA1YzEuMiAuMiAyLjIgLjggMyAxLjdzMS4yIDIuMSAxLjIgMy4zYzAgLjMgMCAuNSAwIC44bC0xLjcgOC44Yy0xLjYgOC44LTMuMiAyMC4xLTQuOCAzMy43LTEuNyAxNC0yLjUgMjguMS0yLjYgNDIuMi0uMiAyNyAyLjUgNDYuOSA4LjEgNTkuOCAyLjggNi40IDcuMiAxMiAxMi42IDE2LjRzMTEuOSA3LjQgMTguNyA4LjhjMTguOCA0IDM4LjEgNS43IDU3LjMgNS4xbDEwLjMgMGMxOS4yIC42IDM4LjUtMS4yIDU3LjMtNS4yIDYuOC0xLjQgMTMuMi00LjUgMTguNi04LjhzOS43LTEwIDEyLjUtMTYuNGM1LjctMTIuOSA4LjQtMzIuOSA4LjEtNTkuOC0uMS0xNC4xLTEtMjguMi0yLjYtNDIuMS0xLjctMTMuNi0zLjMtMjQuOC00LjktMzMuN2wtMS43LTguOGMwLS4zIDAtLjUgMC0uOCAwLTEuMiAuNC0yLjQgMS4yLTMuM3MxLjgtMS41IDMtMS43bDMyLTUgLjggMGMxLjEgMCAyLjIgLjQgMy4xIDEuMXMxLjUgMS43IDEuOCAyLjhjLjYgMiAuOCAzLjYgMS44IDguNCAxLjggOS42IDMuNSAxOC44IDUuNCAzMiAyIDE0LjYgMy4yIDI5LjIgMy42IDQzLjkgLjcgMTAuMiAuNyAyMC41IDAgMzAuN2wwIDB6Il19LEJNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob29saSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyNyIsIk0xNDQuNSAzNTJsMzguMyAuOGMtMTMuMi00LjYtMjYtMTAuMi0zOC4zLTE2LjhsMCAxNnptNTcuNy01LjNsMCA1LjMtMTkuNCAuOGMzNi41IDEyLjUgNjkuOSAxNC4yIDk0LjcgNy4yLTE5LjkgLjItNDUuOC0yLjYtNzUuMy0xMy4zek02MTEuMSAyMzEuNWMxNS45IDAgMjguOS0xMi45IDI4LjktMjguOXMtMTIuOS0yNC41LTI4LjktMjQuNWMtMTUuOSAwLTI4LjkgOC42LTI4LjkgMjQuNXMxMi45IDI4LjkgMjguOSAyOC45ek01ODIuMSAzNTJsNTcuOSAwIDAtMTEwLjUtNTcuOSAwIDAgMTEwLjV6bS03My43IDBsNTcuOSAwIDAtMTk1LjMtNTcuOSAyNy4zIDAgMTY4em0tMzEtMTE5LjRjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4zLTEuMS01MC40IDE3LjFjLTE4LjIgMTguMi0xNi44IDMzLjktMTYuOCA1Mi42cy0xLjQgMzQuMyAxNi44IDUyLjUgNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjgtMzMuOCAxNi44LTUyLjUtLjEtMTguOCAxLjMtMzQuNS0xNi44LTUyLjZ6bS0zOS44IDcxLjljMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjVsMC00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjlsMCA0MC40ek0zMzEuNCAyMzIuNmMtMTguMi0xOC4yLTUwLjQtMTcuMS01MC40LTE3LjFzLTMyLjItMS4xLTUwLjQgMTcuMWMtMS45IDEuOS0zLjcgMy45LTUuMyA2LTM4LjItMjkuNi03Mi41LTQ2LjUtMTAyLjEtNjEuMWwwLTIwLjctMjIuNSAxMC42Yy01NC40LTIyLjEtODktMTguMi05Ny4zIC4xIDAgMC0yNC45IDMyLjggNjEuOCAxMTAuOGwwIDczLjcgNTcuOSAwIDAtMjguNmMtNi41LTQuMi0xMy04LjctMTkuNC0xMy42LTE0LjgtMTEuMi0yNy40LTIxLjYtMzguNC0zMS40bDAtMzFjMTMuMSAxNC43IDMwLjUgMzEuNCA1My40IDUwLjNsNC41IDMuNiAwLTI5LjhjMC02LjkgMS43LTE4LjIgMTAuOC0xOC4yczEwLjYgNi45IDEwLjYgMTVsMCA0OC43YzE4IDEyLjIgMzcuMyAyMi4xIDU3LjcgMjkuNmwwLTkzLjljMC0xOC43LTEzLjQtMzcuNC00MC42LTM3LjQtMTUuOC0uMS0zMC41IDguMi0zOC41IDIxLjlsMC01NC4zYzQxLjkgMjAuOSA4My45IDQ2LjUgOTkuOSA1OC4zLTEwLjIgMTQuNi05LjMgMjguMS05LjMgNDMuNyAwIDE4LjctMS40IDM0LjMgMTYuOCA1Mi41czUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi43LTMzLjggMTYuNy01Mi41IDAtMTguNSAxLjUtMzQuMi0xNi43LTUyLjN6TTY1LjIgMTg0bDAgNjMuM2MtNDguNy01NC41LTM4LjktNzYtMzUuMi03OS4xIDEzLjUtMTEuNCAzNy41LTggNjQuNCAyLjFMNjUuMiAxODR6TTI5MS43IDMwNC41YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41bDAtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45bDAgNDAuNHoiXX0sQzhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1naXQiLGljb246WzQ0OCw1MTIsWyJnaXQtc3F1YXJlIl0sImYxZDIiLCJNMTIwLjggMzM1LjVjLTUuOS0uNC0xMi42LS44LTIwLjItMS4zLTMuMyA0LjEtNi42IDguNC02LjYgMTMuNSAwIDE4LjUgNjUuNSAxOC41IDY1LjUtMS41IDAtOC4zLTcuNC04LjctMzguOC0xMC43bC4xIDB6bTcuOC0xMTcuOWMtMzIuMyAwLTMzLjcgNDQuNS0uNyA0NC41IDMyLjUgMCAzMS43LTQ0LjUgLjctNDQuNXpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTI0My45IDE3Mi4yYy0xNC41IDAtMjIuOS04LjQtMjIuOS0yMi45czguNC0yMi4zIDIyLjktMjIuM2MxNC43IDAgMjMuMSA3LjggMjMuMSAyMi4zcy04LjQgMjIuOS0yMy4xIDIyLjl6TTE0OS42IDE5NWw0OS41IDAgMCAyMS42LTIzLjQgMS44YzQuNiA1LjggOS40IDE0IDkuNCAyNS43IDAgNDguNy01Ny4yIDQ3LjItNzQuMiA0Mi40bC04LjQgMTMuNGM1IC4zIDkuOCAuNiAxNC4zIC44IDU2LjMgMy4yIDgwLjUgNC42IDgwLjUgMzguNSAwIDI5LjItMjUuNyA0NS43LTY5LjkgNDUuNy00NiAwLTYzLjUtMTEuNi02My41LTMxLjcgMC0xMS40IDUuMS0xNy41IDE0LTI1LjktOC40LTMuNS0xMS4yLTkuOS0xMS4yLTE2LjggMC05LjYgNy40LTE2LjMgMjMtMzAuNmwuMi0uMmMtMTIuNC02LjEtMjEuOC0xOS4zLTIxLjgtMzguMSAwLTUxLjYgNTYuNi01My4zIDgxLjYtNDYuOGwtLjEgLjJ6TTI3MC41IDMwMy4xbDEzIDEuOCAwIDIwLjEtNzIuNCAwIDAtMjAuMWMyLjctLjQgNS0uNyA2LjktLjkgOS45LTEuMiAxMC4xLTEuMyAxMC4xLTZsMC03NC43YzAtNC40LS45LTQuNy0xMC4xLTcuOC0xLjktLjctNC4yLTEuNC02LjktMi40bDIuOC0yMC42IDUyLjYgMCAwIDEwNS41YzAgNC4xIC4yIDQuNiA0LjEgNS4xbC0uMSAwem0xMDYuNi0xMC40TDM4NCAzMTVjLTEwLjkgNS40LTI2LjkgMTAuMi00MS40IDEwLjItMzAuMiAwLTQxLjctMTIuMi00MS43LTQwLjlsMC02Ni42YzAtLjggMC0xLjQtLjItMS44LS44LTEuMi00LjItLjctMTkuNi0uN2wwLTIyLjZjMjIuMy0yLjUgMzEuMi0xMy43IDM0LTQxLjRsMjQuMiAwYzAgMzMuMy0uNiAzOCAuNyAzOC42IC4zIC4xIC43IDAgMS4zIDBsMzUuOCAwIDAgMjUuNC0zNy44IDAgMCA2MS42Yy0uMiA2LjMtLjkgMzAuNCAzNy45IDE1LjlsLS4xIDB6Il19LEhNdD1DOGUscU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9kbm9rbGFzc25pa2kiLGljb246WzMyMCw1MTIsW10sImYyNjMiLCJNMjc1LjEgMzM0Yy0yNy40IDE3LjQtNjUuMSAyNC4zLTkwIDI2LjlsMjAuOSAyMC42IDc2LjMgNzYuM2MyNy45IDI4LjYtMTcuNSA3My4zLTQ1LjcgNDUuNy0xOS4xLTE5LjQtNDcuMS00Ny40LTc2LjMtNzYuNkw4NCA1MDMuNGMtMjguMiAyNy41LTczLjYtMTcuNi00NS40LTQ1LjcgMTkuNC0xOS40IDQ3LjEtNDcuNCA3Ni4zLTc2LjNsMjAuNi0yMC42Yy0yNC42LTIuNi02Mi45LTkuMS05MC42LTI2LjktMzIuNi0yMS00Ni45LTMzLjMtMzQuMy01OSA3LjQtMTQuNiAyNy43LTI2LjkgNTQuNi01LjcgMCAwIDM2LjMgMjguOSA5NC45IDI4LjlTMjU1IDI2OS4yIDI1NSAyNjkuMmMyNi45LTIxLjEgNDcuMS04LjkgNTQuNiA1LjcgMTIuNCAyNS43LTEuOSAzOC0zNC41IDU5LjF6bTE0LjYtMjA0LjdhMTI5LjcgMTI5LjcgMCAxIDEgLTI1OS40IC40IDEyOS43IDEyOS43IDAgMSAxIDI1OS40LS40em0tMTkzLjQgLjRhNjMuNyA2My43IDAgMSAwIDEyNy40LS40IDYzLjcgNjMuNyAwIDEgMCAtMTI3LjQgLjR6Il19LGpNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcnVwYWwiLGljb246WzM4NCw1MTIsW10sImYxYTkiLCJNMjcyLjMgMTA4LjFDMjM2LjUgNzIuNSAyMDIuNSAzOC40IDE5Mi40IDAgMTgyLjQgMzguNCAxNDguMSA3Mi41IDExMi40IDEwOC4xIDU4LjggMTYxLjctMS45IDIyMi40LTEuOSAzMTMuNC00LjMgNDIwLjcgODAuOCA1MDkuNiAxODguMSA1MTJzMTk2LjItODIuOCAxOTguNS0xOTAuMWMuMS0yLjggLjEtNS42IDAtOC41IDAtOTEuMS02MC44LTE1MS43LTExNC4zLTIwNS4zek05OCAzMzEuMWMtNS45IDcuNS0xMSAxNS42LTE1LjIgMjQuMi0uMyAuNy0uOCAxLjMtMS4zIDEuOHMtMS4yIC44LTIgMWwtMS43IDBjLTQuMyAwLTkuMi04LjUtOS4yLTguNS0xLjMtMi0yLjUtNC4yLTMuNy02LjRsLS44LTEuOGMtMTEuMi0yNS43LTEuNS02Mi4zLTEuNS02Mi4zIDQuOC0xNy44IDEyLjctMzQuNyAyMy4yLTQ5LjkgNi40LTkuNiAxMy41LTE4LjkgMjEtMjcuN2w5LjIgOS4yIDQzLjUgNDQuNGMuOCAuOSAxLjMgMi4xIDEuMyAzLjNzLS41IDIuNC0xLjMgMy4zTDExNC4xIDMxMi4zIDk4IDMzMS4xem05Ni42IDEyNy4zYy0xMi45LS4xLTI1LjYtMy45LTM2LjQtMTFzLTE5LjQtMTcuMS0yNC42LTI4LjktNy0yNC45LTUtMzcuNyA3LjYtMjQuNyAxNi4yLTM0LjRjMTQuMi0xNi45IDMxLjUtMzMuNSA1MC4zLTU1LjMgMjIuMyAyMy44IDM2LjkgNDAuMSA1MS4yIDU4IDEuMSAxLjQgMi4xIDIuOSAzIDQuNCA3LjggMTEuMSAxMiAyNC40IDEyIDM4IDAgOC44LTEuNyAxNy40LTUgMjUuNXMtOC4yIDE1LjUtMTQuNCAyMS43LTEzLjUgMTEuMS0yMS42IDE0LjUtMTYuNyA1LjEtMjUuNSA1LjFsLS4yIDB6TTMyMC43IDM1MS42Yy0uNCAxLjQtMS4yIDIuNi0yLjMgMy42cy0yLjQgMS42LTMuOCAxLjhsLTEuMyAwYy0yLjYtLjktNC45LTIuNy02LjMtNS4xLTExLjYtMTcuNS0yNC45LTMzLjktMzkuNS00OWwtMTcuOC0xOC40LTU5LjEtNjEuM2MtMTIuNC0xMS41LTI0LjItMjMuNi0zNS40LTM2LjMtLjMtLjUtLjYtLjktLjktMS40LTItMi44LTMuNi01LjktNC43LTkuMmwwLTEuOGMtLjgtNS0uNC0xMC4xIDEuMi0xNXM0LjQtOS4yIDgtMTIuN2MxMS40LTExLjQgMjMtMjMgMzMuOC0zNC45IDEyIDEzLjMgMjQuOCAyNiAzNy40IDM4LjYgMjUuOCAyNCA0OS4xIDUwLjUgNjkuNiA3OS4xIDE3LjMgMjQuNSAyNi43IDUzLjggMjcgODMuOC0uMSAxMi45LTIuMiAyNS44LTYgMzguMnoiXX0sVk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXItYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3ZCIsIk00NDYuNiAyMjIuN2MtMS44LTgtNi44LTE1LjQtMTIuNS0xOC41LTEuOC0xLTEzLTIuMi0yNS0yLjctMjAuMS0uOS0yMi4zLTEuMy0yOC43LTUtMTAuMS01LjktMTIuOC0xMi4zLTEyLjktMjkuNS0uMS0zMy0xMy44LTYzLjctNDAuOS05MS4zLTE5LjMtMTkuNy00MC45LTMzLTY1LjUtNDAuNS01LjktMS44LTE5LjEtMi40LTYzLjMtMi45LTY5LjQtLjgtODQuOCAuNi0xMDguNCAxMC00My41IDE3LjItNzQuNyA1My44LTg2LjEgMTAwLjYtMi4xIDguOC0yLjYgMjIuOS0zLjEgMTAzLjktLjYgMTAxLjUgLjEgMTE2LjQgNi40IDEzNi41IDE1LjYgNDkuNiA1OS45IDg2LjMgMTA0LjQgOTQuMyAxNC44IDIuNyAxOTcuMyAzLjMgMjE2IC44IDMyLjUtNC40IDU4LTE3LjUgODEuOS00MS45IDE3LjMtMTcuNyAyOC4xLTM2LjggMzUuMi02Mi4xIDQuOS0xNy42IDQuNS0xNDIuOCAyLjUtMTUxLjd6TTEyNC41IDE1OS4xYzcuOC03LjkgMTAtOC4yIDU4LjgtOC4yIDQzLjkgMCA0NS40IC4xIDUxLjggMy40IDkuMyA0LjcgMTMuNCAxMS4zIDEzLjQgMjEuOSAwIDkuNS0zLjggMTYuMi0xMi4zIDIxLjYtNC42IDIuOS03LjMgMy4xLTUwLjMgMy4zLTI2LjUgLjItNDcuNy0uNC01MC44LTEuMi0xNi42LTQuNy0yMi44LTI4LjUtMTAuNi00MC44ek0zMTYuMyAzNTguOWwtMTQuOSAyLjQtNzcuNSAuOWMtNjguMSAuOC04Ny4zLS40LTkwLjktMi03LjEtMy4xLTEzLjgtMTEuNy0xNC45LTE5LjQtMS4xLTcuMyAyLjYtMTcuMyA4LjItMjIuNCA3LjEtNi40IDEwLjItNi42IDk3LjMtNi43IDg5LjYtLjEgODkuMS0uMSA5Ny42IDcuOCAxMi4xIDExLjMgOS41IDMxLjItNC45IDM5LjR6Il19LFVNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnZpc2lvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjdiMCIsIk00MDcuNCAzMkw0MC42IDMyQzE4LjIgMzIgMCA1MC4yIDAgNzIuNkwwIDQzOS40QzAgNDYxLjggMTguMiA0ODAgNDAuNiA0ODBsMzY2LjggMGMyMi40IDAgNDAuNi0xOC4yIDQwLjYtNDAuNmwwLTM2Ni44QzQ0OCA1MC4yIDQyOS44IDMyIDQwNy40IDMyek0xNzYuMSAxNDUuNmMuNCAyMy40LTIyLjQgMjcuMy0yNi42IDI3LjQtMTQuOSAwLTI3LjEtMTItMjcuMS0yNyAuMS0zNS4yIDUzLjEtMzUuNSA1My43LS40ek0zMzIuOCAzNzdjLTY1LjYgMC0zNC4xLTc0LTI1LTEwNi42IDE0LjEtNDYuNC00NS4yLTU5LTU5LjkgLjdsLTI1LjggMTAzLjMtNDUuMSAwIDguMS0zMi41Yy0zMS41IDUxLjgtOTQuNiA0NC40LTk0LjYtNC4zIC4xLTE0LjMgLjktMTQgMjMtMTA0LjFsLTMxLjggMCA5LjctMzUuNiA3Ni40IDBjLTMzLjYgMTMzLjctMzIuNiAxMjYuOS0zMi45IDEzOC4yIDAgMjAuOSA0MC45IDEzLjUgNTcuNC0yMy4ybDE5LjgtNzkuNC0zMi4zIDAgOS43LTM1LjYgNjguOCAwLTguOSA0MC41YzQwLjUtNzUuNSAxMjcuOS00Ny44IDEwMS44IDM4LTE0LjIgNTEuMS0xNC42IDUwLjctMTQuOSA1OC44IDAgMTUuNSAxNy41IDIyLjYgMzEuOC0xNi45TDM4NiAzMjVjLTEwLjUgMzYuNy0yOS40IDUyLTUzLjIgNTJ6Il19LFdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1mIixpY29uOlszMjAsNTEyLFtdLCJmMzllIiwiTTgwIDI5OS4zbDAgMjEyLjcgMTE2IDAgMC0yMTIuNyA4Ni41IDAgMTgtOTcuOC0xMDQuNSAwIDAtMzQuNmMwLTUxLjcgMjAuMy03MS41IDcyLjctNzEuNSAxNi4zIDAgMjkuNCAuNCAzNyAxLjJsMC04OC43QzI5MS40IDQgMjU2LjQgMCAyMzYuMiAwIDEyOS4zIDAgODAgNTAuNSA4MCAxNTkuNGwwIDQyLjEtNjYgMCAwIDk3LjggNjYgMHoiXX0sR010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNlbnRvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4OSIsIk0yODkuNiA5Ny41bDMxLjYgMzEuNy03Ni4zIDc2LjUgMC0xMDguMiA0NC43IDB6TTEyNy4yIDEyOS4ybDc2LjMgNzYuNSAwLTEwOC4yLTQ0LjcgMC0zMS42IDMxLjd6bTQxLjUtNDEuNmw0NC43IDAgMCAxMjcuOSAxMC44IDEwLjggMTAuOC0xMC44IDAtMTI3LjkgNDQuNyAwLTU1LjUtNTUuNi01NS41IDU1LjZ6bTI2LjIgMTY4LjFsLTEwLjgtMTAuOC0xMjguNiAwIDAtNDQuOC01NS41IDU1LjYgNTUuNSA1NS42IDAtNDQuOCAxMjguNiAwIDEwLjgtMTAuOHpNMjc0LjIgMjM1bDEwNy45IDAgMC00NC44LTMxLjYtMzEuNy03Ni4zIDc2LjV6bTE3My4zIDIwLjdsLTU1LjUtNTUuNiAwIDQ0LjgtMTI3LjcgMC0xMC44IDEwLjggMTAuOCAxMC44IDEyNy43IDAgMCA0NC44IDU1LjUtNTUuNnpNNjUuNCAxNzYuMmwzMi41LTMxLjcgOTAuMyA5MC41IDE1LjMgMCAwLTE1LjMtOTAuMy05MC41IDMxLjYtMzEuNy03OS40IDAgMCA3OC43ek0zODIuMSA5Ny41bC03OC41IDAgMzEuNiAzMS43LTkwLjMgOTAuNSAwIDE1LjMgMTUuMyAwIDkwLjMtOTAuNSAzMS42IDMxLjcgMC03OC43ek0yMDMuNSA0MTMuOWwwLTEwOC4xLTc2LjMgNzYuNSAzMS42IDMxLjcgNDQuNyAwIDAtLjF6TTY1LjQgMjM1bDEwOC44IDAtNzYuMy03Ni41LTMyLjUgMzEuNyAwIDQ0Ljh6TTM4Mi4xIDMzNS4ybC0zMS42IDMxLjctOTAuMy05MC41LTE1LjMgMCAwIDE1LjMgOTAuMyA5MC41LTMxLjYgMzEuNyA3OC41IDAgMC03OC43em0wLTU4LjhsLTEwNy45IDAgNzYuMyA3Ni41IDMxLjYtMzEuNyAwLTQ0Ljh6TTMyMS4yIDM4Mi4ybC03Ni4zLTc2LjUgMCAxMDguMSA0NC43IDAgMzEuNi0zMS42ek05Ny45IDM1Mi45bDc2LjMtNzYuNS0xMDguOCAwIDAgNDQuOCAzMi41IDMxLjd6bTE4MS44IDcwLjlsLTQ0LjcgMCAwLTEyNy45LTEwLjgtMTAuOC0xMC44IDEwLjggMCAxMjcuOS00NC43IDAgNTUuNSA1NS42IDU1LjUtNTUuNnpNMTEzLjIgMzgyLjJsOTAuMy05MC41IDAtMTUuMy0xNS4zIDAtOTAuMyA5MC41LTMyLjUtMzEuNyAwIDc4LjcgNzkuNCAwLTMxLjYtMzEuN3oiXX0sS010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjYWxld2F5IixpY29uOls0NDgsNTEyLFtdLCJlODU5IiwiTTI0My40IDExNy4zbC04NC4zIDBjLTE4LjUgMi4xLTMyLjcgMTcuNS0zMy40IDM2bDAgMTIxLjljMCA4LjIgMy4yIDE1LjMgOC41IDIwLjdzMTIuNSA4LjYgMjAuNiA4LjZjMTYgMCAyOS4yLTEzLjIgMjkuMi0yOS4ybDAtNzcuNGMwLTEyLjEgMTAtMjIuMSAyMi4xLTIyLjFsMzguMSAwYzguMiAwIDE1LjMtMy4yIDIwLjYtOC42czguNS0xMi44IDguNS0yMWMwLTE2LTEzLjktMjguOS0yOS45LTI4Ljl6TTIwNS4zIDM5NS40bDg0LjMgMGMxOC41LTIuMSAzMi43LTE3LjUgMzMuNC0zNmwwLTEyMS45YzAtOC4yLTMuMi0xNS4zLTguNS0yMC43cy0xMi41LTguNi0yMC42LTguNmMtMTYgMC0yOS4yIDEzLjItMjkuMiAyOS4ybDAgNzcuNGMwIDEyLjEtMTAgMjIuMS0yMi4xIDIyLjFsLTM4LjEgMGMtOC4yIDAtMTUuMyAzLjItMjAuNiA4LjZzLTguNSAxMi44LTguNSAyMWMuNCAxNiAxMy45IDI4LjkgMjkuOSAyOC45ek0xMDQuMyAwTDI1Ny42IDBjMTAxIDAgMTgyLjUgODEuNiAxODIuMSAxODIuOWwwIDI0Mi44Yy00LjYgNDYtNDIgODIuNC04OC4yIDg2LjNMMTkwIDUxMkM4OS4zIDUxMiA3LjUgNDMwIDcuNSAzMjkuMUw3LjUgOTdjMC01My41IDQzLjQtOTcgOTYuOC05N3pNMzgxLjcgMTgyLjljMC02OC41LTU1LjktMTI0LjQtMTI0LjItMTI0LjRsLTE1MyAwQzgzLjMgNTguNSA2Ni4yIDc1LjYgNjYuMiA5N2wwIDIzMi4xYzAgNjguOCA1NS41IDEyNC40IDEyNC4yIDEyNC40bDE1OC43IDBjMTYuNy0yLjEgMjkuOS0xNSAzMi43LTMxLjRsMC0yMzkuMnoiXX0sWU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWFtYXpvbi1wYXkiLGljb246WzU3Niw1MTIsW10sImY0MmQiLCJNMTI0LjcgMjAxLjhjLjEtMTEuOCAwLTIzLjUgMC0zNS4zbDAtMzUuM2MwLTEuMyAuNC0yIDEuNC0yLjcgMTEuNS04IDI0LjEtMTIuMSAzOC4yLTExLjEgMTIuNSAuOSAyMi43IDcgMjguMSAyMS43IDMuMyA4LjkgNC4xIDE4LjIgNC4xIDI3LjcgMCA4LjctLjcgMTcuMy0zLjQgMjUuNi01LjcgMTcuOC0xOC43IDI0LjctMzUuNyAyMy45LTExLjctLjUtMjEuOS01LTMxLjQtMTEuNy0uOS0uOC0xLjQtMS42LTEuMy0yLjh6bTE1NC45IDE0LjZjNC42IDEuOCA5LjMgMiAxNC4xIDEuNSAxMS42LTEuMiAyMS45LTUuNyAzMS4zLTEyLjUgLjktLjYgMS4zLTEuMyAxLjMtMi41LS4xLTMuOSAwLTcuOSAwLTExLjggMC00LS4xLTggMC0xMiAwLTEuNC0uNC0yLTEuOC0yLjItNy0uOS0xMy45LTIuMi0yMC45LTIuOS03LS42LTE0LS4zLTIwLjggMS45LTYuNyAyLjItMTEuNyA2LjItMTMuNyAxMy4xLTEuNiA1LjQtMS42IDEwLjggLjEgMTYuMiAxLjYgNS41IDUuMiA5LjIgMTAuNCAxMS4yek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zNjguNSAxMDMuOWMuNCAxLjcgLjkgMy40IDEuNiA1LjEgMTYuNSA0MC42IDMyLjkgODEuMyA0OS41IDEyMS45IDEuNCAzLjUgMS43IDYuNCAuMiA5LjktMi44IDYuMi00LjkgMTIuNi03LjggMTguNy0yLjYgNS41LTYuNyA5LjUtMTIuNyAxMS4yLTQuMiAxLjEtOC41IDEuMy0xMi45IC45LTIuMS0uMi00LjItLjctNi4zLS44LTIuOC0uMi00LjIgMS4xLTQuMyA0LS4xIDIuOC0uMSA1LjYgMCA4LjMgLjEgNC42IDEuNiA2LjcgNi4yIDcuNSA0LjcgLjggOS40IDEuNiAxNC4yIDEuNyAxNC4zIC4zIDI1LjctNS40IDMzLjEtMTcuOSAyLjktNC45IDUuNi0xMC4xIDcuNy0xNS40IDE5LjgtNTAuMSAzOS41LTEwMC4zIDU5LjItMTUwLjUgLjYtMS41IDEuMS0zIDEuMy00LjYgLjQtMi40LS43LTMuNi0zLjEtMy43LTUuNi0uMS0xMS4xIDAtMTYuNyAwLTMuMSAwLTUuMyAxLjQtNi40IDQuMy0uNCAxLjEtLjkgMi4zLTEuMyAzLjRsLTI5LjEgODMuN2MtMi4xIDYuMS00LjIgMTIuMS02LjUgMTguNi0uNC0uOS0uNi0xLjQtLjgtMS45LTEwLjgtMjkuOS0yMS42LTU5LjktMzIuNC04OS44LTEuNy00LjctMy41LTkuNS01LjMtMTQuMi0uOS0yLjUtMi43LTQtNS40LTQtNi40LS4xLTEyLjgtLjItMTkuMi0uMS0yLjIgMC0zLjMgMS42LTIuOCAzLjd6TTI0Mi40IDIwNmMxLjcgMTEuNyA3LjYgMjAuOCAxOCAyNi42IDkuOSA1LjUgMjAuNyA2LjIgMzEuNyA0LjYgMTIuNy0xLjkgMjMuOS03LjMgMzMuOC0xNS41IC40LS4zIC44LS42IDEuNC0xIC41IDMuMiAuOSA2LjIgMS41IDkuMiAuNSAyLjYgMi4xIDQuMyA0LjUgNC40IDQuNiAuMSA5LjEgLjEgMTMuNyAwIDIuMy0uMSAzLjgtMS42IDQtMy45IC4xLS44IC4xLTEuNiAuMS0yLjNsMC04OC44YzAtMy42LS4yLTcuMi0uNy0xMC44LTEuNi0xMC44LTYuMi0xOS43LTE1LjktMjUuNC01LjYtMy4zLTExLjgtNS0xOC4yLTUuOS0zLS40LTYtLjctOS4xLTEuMWwtMTAgMGMtLjggLjEtMS42IC4zLTIuNSAuMy04LjIgLjQtMTYuMyAxLjQtMjQuMiAzLjUtNS4xIDEuMy0xMCAzLjItMTUgNC45LTMgMS00LjUgMy4yLTQuNCA2LjUgLjEgMi44LS4xIDUuNiAwIDguMyAuMSA0LjEgMS44IDUuMiA1LjcgNC4xIDYuNS0xLjcgMTMuMS0zLjUgMTkuNy00LjggMTAuMy0xLjkgMjAuNy0yLjcgMzEuMS0xLjIgNS40IC44IDEwLjUgMi40IDE0LjEgNyAzLjEgNCA0LjIgOC44IDQuNCAxMy43IC4zIDYuOSAuMiAxMy45IC4zIDIwLjggMCAuNC0uMSAuNy0uMiAxLjItLjQgMC0uOCAwLTEuMS0uMS04LjgtMi4xLTE3LjctMy42LTI2LjgtNC4xLTkuNS0uNS0xOC45IC4xLTI3LjkgMy4yLTEwLjggMy44LTE5LjUgMTAuMy0yNC42IDIwLjgtNC4xIDguMy00LjYgMTctMy40IDI1Ljh6TTk4LjcgMTA2LjlsMCAxNzUuM2MwIC44IDAgMS43IC4xIDIuNSAuMiAyLjUgMS43IDQuMSA0LjEgNC4yIDUuOSAuMSAxMS44IC4xIDE3LjcgMCAyLjUgMCA0LTEuNyA0LjEtNC4xIC4xLS44IC4xLTEuNyAuMS0yLjVsMC02MC43Yy45IC43IDEuNCAxLjIgMS45IDEuNiAxNSAxMi41IDMyLjIgMTYuNiA1MS4xIDEyLjkgMTcuMS0zLjQgMjguOS0xMy45IDM2LjctMjkuMiA1LjgtMTEuNiA4LjMtMjQuMSA4LjctMzcgLjUtMTQuMy0xLTI4LjQtNi44LTQxLjctNy4xLTE2LjQtMTguOS0yNy4zLTM2LjctMzAuOS0yLjctLjYtNS41LS44LTguMi0xLjJsLTcgMGMtMS4yIC4yLTIuNCAuMy0zLjYgLjUtMTEuNyAxLjQtMjIuMyA1LjgtMzEuOCAxMi43LTIgMS40LTMuOSAzLTUuOSA0LjUtLjEtLjUtLjMtLjgtLjQtMS4yLS40LTIuMy0uNy00LjYtMS4xLTYuOS0uNi0zLjktMi41LTUuNS02LjQtNS42bC05LjcgMGMtNS45LS4xLTYuOSAxLTYuOSA2Ljh6TTQ5My42IDMzOWMtMi43LS43LTUuMSAwLTcuNiAxLTQzLjkgMTguNC04OS41IDMwLjItMTM2LjggMzUuOC0xNC41IDEuNy0yOS4xIDIuOC00My43IDMuMi0yNi42IC43LTUzLjItLjgtNzkuNi00LjMtMTcuOC0yLjQtMzUuNS01LjctNTMtOS45LTM3LTguOS03Mi43LTIxLjctMTA2LjctMzguOC04LjgtNC40LTE3LjQtOS4zLTI2LjEtMTQtMy44LTIuMS02LjItMS41LTguMiAyLjFsMCAxLjdjMS4yIDEuNiAyLjIgMy40IDMuNyA0LjggMzYgMzIuMiA3Ni42IDU2LjUgMTIyIDcyLjkgMjEuOSA3LjkgNDQuNCAxMy43IDY3LjMgMTcuNSAxNCAyLjMgMjggMy44IDQyLjIgNC41IDMgLjEgNiAuMiA5IC40IC43IDAgMS40IC4yIDIuMSAuM2wxNy43IDBjLjctLjEgMS40LS4zIDIuMS0uMyAxNC45LS40IDI5LjgtMS44IDQ0LjYtNCAyMS40LTMuMiA0Mi40LTguMSA2Mi45LTE0LjcgMjkuNi05LjYgNTcuNy0yMi40IDgzLjQtNDAuMSAyLjgtMS45IDUuNy0zLjggOC02LjIgNC4zLTQuNCAyLjMtMTAuNC0zLjMtMTEuOXpNNTQ0IDMxMS4zYy0uOC00LjItNC01LjgtNy42LTctNS43LTEuOS0xMS42LTIuOC0xNy42LTMuMy0xMS0uOS0yMi0uNC0zMi44IDEuNi0xMiAyLjItMjMuNCA2LjEtMzMuNSAxMy4xLTEuMiAuOC0yLjQgMS44LTMuMSAzLS42IC45LS43IDIuMy0uNSAzLjQgLjMgMS4zIDEuNyAxLjYgMyAxLjUgLjYgMCAxLjIgMCAxLjgtLjFsMTkuNS0yLjFjOS42LS45IDE5LjItMS41IDI4LjgtLjggNC4xIC4zIDguMSAxLjIgMTIgMi4yIDQuMyAxLjEgNi4yIDQuNCA2LjQgOC43IC4zIDYuNy0xLjIgMTMuMS0yLjkgMTkuNS0zLjUgMTIuOS04LjMgMjUuNC0xMy4zIDM3LjgtLjMgLjgtLjcgMS43LS44IDIuNS0uNCAyLjUgMSA0IDMuNCAzLjUgMS40LS4zIDMtMS4xIDQtMi4xIDMuNy0zLjYgNy41LTcuMiAxMC42LTExLjIgMTAuNy0xMy44IDE3LTI5LjYgMjAuNy00Ni42IC43LTMgMS4yLTYuMSAxLjctOS4xIC4yLTQuNyAuMi05LjYgLjItMTQuNXoiXX0sWk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImViYXkiLGljb246WzY0MCw1MTIsW10sImY0ZjQiLCJNNjA2LjUgMTg5LjVsLTU0LjggMTA5LjktNTQuOS0xMDkuOS0zNy41IDAgMTAuOSAyMC42Yy0xMS41LTE5LTM1LjktMjYtNjMuMy0yNi0zMS44IDAtNjcuOSA4LjctNzEuNSA0My4xbDMzLjcgMGMxLjQtMTMuOCAxNS43LTIxLjggMzUtMjEuOCAyNiAwIDQxIDkuNiA0MSAzM2wwIDMuNGMtMTIuNyAwLTI4IC4xLTQxLjcgLjQtNDIuNCAuOS02OS42IDEwLTc2LjcgMzQuNCAxLTUuMiAxLjUtMTAuNiAxLjUtMTYuMiAwLTUyLjEtMzkuNy03Ni4yLTc1LjQtNzYuMi0yMS4zIDAtNDMgNS41LTU4LjcgMjQuMmwwLTgwLjYtMzIuMSAwIDAgMTY5LjVjMCAxMC4zLS42IDIyLjktMS4xIDMzLjFsMzEuNSAwYy43LTYuMyAxLjEtMTIuOSAxLjEtMTkuNSAxMy42IDE2LjYgMzUuNCAyNC45IDU4LjcgMjQuOSAzNi45IDAgNjQuOS0yMS45IDczLjMtNTQuMi0uNSAyLjgtLjcgNS44LS43IDkgMCAyNC4xIDIxLjEgNDUgNjAuNiA0NSAyNi42IDAgNDUuOC01LjcgNjEuOS0yNS41IDAgNi42IC4zIDEzLjMgMS4xIDIwLjJsMjkuOCAwYy0uNy04LjItMS0xNy41LTEtMjYuOGwwLTY1LjZjMC05LjMtMS43LTE3LjItNC44LTIzLjhsNjEuNSAxMTYuMS0yOC41IDU0LjEgMzUuOSAwIDk5LjItMTk0LjgtMzQgMHpNMjQ0LjIgMzEzLjhjLTI5LjYgMC01MC4yLTIxLjUtNTAuMi01My44IDAtMzIuNCAyMC42LTUzLjggNTAuMi01My44IDI5LjggMCA1MC4yIDIxLjQgNTAuMiA1My44IDAgMzIuMy0yMC40IDUzLjgtNTAuMiA1My44em0yMDAuOS00Ny4zYzAgMzAtMTcuOSA0OC40LTUxLjYgNDguNC0yNS4xIDAtMzUtMTMuNC0zNS0yNS44IDAtMTkuMSAxOC4xLTI0LjQgNDcuMi0yNS4zIDEzLjEtLjUgMjcuNi0uNiAzOS40LS42bDAgMy4zek0zMy4yIDI2OC4xbDEyOC44IDAgMC04LjVjMC01MS43LTMzLjEtNzUuNC03OC40LTc1LjQtNTYuOCAwLTgzIDMwLjgtODMgNzcuNiAwIDQyLjUgMjUuMyA3NCA4Mi41IDc0IDMxLjQgMCA2OC0xMS43IDc0LjQtNDYuMWwtMzMuMSAwYy0xMiAzNS44LTg3LjcgMzYuNy05MS4yLTIxLjZ6bTk1LTIxLjRsLTk0LjQgMGM2LjktNTYuNiA5Mi4xLTU0LjcgOTQuNCAweiJdfSxYTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29udGFvIixpY29uOls1MTIsNTEyLFtdLCJmMjZkIiwiTTQ1LjQgMzA1YzE0LjQgNjcuMSAyNi40IDEyOSA2OC4yIDE3NUwzNCA0ODBjLTE4LjcgMC0zNC0xNS4yLTM0LTM0TDAgNjZDMCA0Ny4zIDE1LjIgMzIgMzQgMzJsNTcuNyAwYy0xMy44IDEyLjYtMjYuMSAyNy4yLTM2LjkgNDMuNi00NS40IDcwLTI3IDE0Ni44LTkuNCAyMjkuNHpNNDc4IDMybC05MC4yIDBjMjEuNCAyMS40IDM5LjIgNDkuNSA1Mi43IDg0LjFMMzAzLjQgMTQ1LjRjLTE0LjktMjktMzcuOC01My4zLTgyLjYtNDMuOS0yNC42IDUuMy00MSAxOS4zLTQ4LjMgMzQuNi04LjggMTguNy0xMy4yIDM5LjggOC4yIDE0MC4zIDIxLjEgMTAwLjIgMzMuNyAxMTcuNyA0OS41IDEzMS4yIDEyLjkgMTEuMSAzMy40IDE3IDU4LjMgMTEuNyA0NC41LTkuNCA1NS43LTQwLjcgNTcuNC03My4ybDEzNy40LTI5LjZjMy4yIDcxLjUtMTguNyAxMjUuMi01Ny40IDE2My42bDUyLjEgMGMxOC43IDAgMzQtMTUuMiAzNC0zNEw1MTIgNjZjMC0xOC44LTE1LjItMzQtMzQtMzR6Il19LFFNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGxvIixpY29uOls1MTIsNTEyLFtdLCJmNWYxIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzk5LjggMjkzLjJDMzgzLjMgMzU4LjUgMzIzLjggNDA0LjggMjU2IDQwNC44UzEyOC43IDM1OC41IDExMi4yIDI5My4yYy0xLjYtNy40IDIuNS0xNS43IDkuOS0xNy40czE1LjcgMi41IDE3LjQgOS45YzE0IDUyLjkgNjIgOTAuMSAxMTYuNiA5MC4xczEwMi41LTM3LjIgMTE2LjYtOTAuMWMxLjctNy40IDkuOS0xMi40IDE3LjQtOS45IDcuNCAxLjcgMTIuNCA5LjkgOS45IDE3LjR6Il19LEpNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXN0cml4IixpY29uOls0NDgsNTEyLFtdLCJmM2VlIiwiTTQ0OCA0NDlMMzAxLjIgMzAwLjJjMjAtMjcuOSAzMS45LTYyLjIgMzEuOS05OS4yIDAtOTMuMS03NC43LTE2OC45LTE2Ni41LTE2OC45LTkxLjktLjEtMTY2LjYgNzUuNy0xNjYuNiAxNjguOFM3NC43IDM2OS44IDE2Ni41IDM2OS44YzM5LjggMCA3Ni4zLTE0LjIgMTA1LTM3LjlMNDE3LjUgNDgwIDQ0OCA0NDl6TTE2Ni41IDMzMC44Yy03MC42IDAtMTI4LjEtNTguMy0xMjguMS0xMjkuOVM5NS45IDcxIDE2Ni41IDcxIDI5NC42IDEyOS4zIDI5NC42IDIwMC45IDIzNy4yIDMzMC44IDE2Ni41IDMzMC44eiJdfSxlenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGVyaXNjb3BlIixpY29uOls0NDgsNTEyLFtdLCJmM2RhIiwiTTM3MCA2My42Yy0zOC42LTQxLTg5LjUtNjMuNi0xNDMuNC02My42LTExNC43IDAtMjA4LjEgOTYuMi0yMDguMSAyMTQuNCAwIDc1LjEgNTcuOCAxNTkuOCA4Mi43IDE5Mi43IDM2LjYgNDguNCA5MS40IDEwNC45IDEyNS40IDEwNC45IDQxLjYgMCAxMTIuOS05NC4yIDEyMC45LTEwNSAyNC42LTMzLjEgODItMTE4LjMgODItMTkyLjYgMC01Ni41LTIxLjEtMTEwLjEtNTkuNS0xNTAuOHpNMjI2LjYgNDkzLjljLTQyLjUgMC0xOTAtMTY3LjMtMTkwLTI3OS40IDAtMTA3LjQgODMuOS0xOTYuMyAxOTAtMTk2LjMgMTAwLjggMCAxODQuNyA4OSAxODQuNyAxOTYuMyAuMSAxMTIuMS0xNDcuNCAyNzkuNC0xODQuNyAyNzkuNHpNMzM4IDIwNi44YzAgNTkuMS01MS4xIDEwOS43LTExMC44IDEwOS43LTEwMC42IDAtMTUwLjctMTA4LjItOTIuOS0xODEuOGwwIC40YzAgMjQuNSAyMC4xIDQ0LjQgNDQuOCA0NC40czQ0LjgtMTkuOSA0NC44LTQ0LjRjMC0xOC4yLTExLjEtMzMuOC0yNi45LTQwLjcgNzYuNi0xOS4yIDE0MSAzOS4zIDE0MSAxMTIuNHoiXX0sdHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV4cGVkaXRlZHNzbCIsaWNvbjpbNTEyLDUxMixbXSwiZjIzZSIsIk0yNTYgNDMuNGEyMTIuNiAyMTIuNiAwIDEgMCAwIDQyNS4yIDIxMi42IDIxMi42IDAgMSAwIDAtNDI1LjJ6TTE1OC42IDE3Ni4zYzAtNTMuNyA0My43LTk3LjQgOTcuNC05Ny40czk3LjQgNDMuNyA5Ny40IDk3LjRsMCAyNi42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjZjMC04Mi4xLTEyNC04Mi4xLTEyNCAwbDAgMjYuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi42IC4yIDB6TTM5Ny43IDM4MGMwIDkuNy04IDE3LjctMTcuNyAxNy43bC0yNDggMGMtOS43IDAtMTcuNy04LTE3LjctMTcuN2wwLTE0MS43YzAtOS43IDgtMTcuNyAxNy43LTE3LjdsMjQ4IDBjOS43IDAgMTcuNyA4IDE3LjcgMTcuN2wwIDE0MS43em0tMjQ4LTEzNy4zbDAgMTMyLjljMCAyLjUtMS45IDQuNC00LjQgNC40bC04LjkgMGMtMi41IDAtNC40LTEuOS00LjQtNC40bDAtMTMyLjljMC0yLjUgMS45LTQuNCA0LjQtNC40bDguOSAwYzIuNSAwIDQuNCAxLjkgNC40IDQuNHptMTQxLjcgNDguN2MwIDEzLTcuMiAyNC40LTE3LjcgMzAuNGwwIDMxLjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMzEuNmMtMTAuNS02LjEtMTcuNy0xNy40LTE3LjctMzAuNCAwLTE5LjcgMTUuOC0zNS40IDM1LjQtMzUuNHMzNS41IDE1LjggMzUuNSAzNS40ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTcuN2EyMzAuMyAyMzAuMyAwIDEgMSAwIDQ2MC42IDIzMC4zIDIzMC4zIDAgMSAxIDAtNDYwLjZ6Il19LGF6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuYXBzdGVyIixpY29uOls1MTIsNTEyLFtdLCJmM2QyIiwiTTMwNi4zIDM3My42Yy0xNC4yIDEzLjYtMzEuMyAyNC4xLTUwLjQgMzAuNS0xOS02LjQtMzYuMi0xNi45LTUwLjMtMzAuNWwxMDAuNyAwem00NC0xOTkuNmMyMC0xNi45IDQzLjYtMjkuMiA2OS42LTM2LjJsMCAxNjEuMmMwIDIxOS40LTMyOCAyMTcuNi0zMjggLjNsMC0xNjEuNmMyNS45IDYuOSA0OS42IDE5LjYgNjkuNSAzNi40IDU2LjgtNDAgMTMyLjUtMzkuOSAxODguOS0uMXpNMTQxLjUgMTE1LjVjNjQuNC02MCAxNjQuMy02MC4xIDIyOC45LS4yLTcuMSAzLjUtMTMuOSA3LjMtMjAuNiAxMS41LTU4LjctMzAuNS0xMjkuMi0zMC40LTE4Ny45IC4xLTYuMy00LTEzLjktOC4yLTIwLjQtMTEuNHpNNTEuOCA5My4ybDAgNjkuM2MtNTguNCAzNi41LTU4LjQgMTIxLjEgLjEgMTU4LjMgMjYuNCAyNDUuMSAzODEuNyAyNDAuMyA0MDcuNiAxLjVsLjMtMS43YzU4LjctMzYuMyA1OC45LTEyMS43IC4yLTE1OC4ybDAtNjkuMmMtMTcuMyAuNS0zNCAzLTUwLjEgNy40LTgyLTkxLjUtMjI1LjUtOTEuNS0zMDcuNSAuMS0xNi4zLTQuNC0zMy4xLTctNTAuNi03LjV6TTI2Ny4yIDM1MnMzNi0uMyA2MS4zLTEuNWMxMC4yLS41IDIxLjEtNCAyNS41LTYuNSAyNi4zLTE1LjEgMjUuNC0zOS4yIDI2LjItNDcuNC03OS41LS42LTk5LjktMy45LTExMyA1NS40ek0xMzEuNyAyOTYuN2MuOCA4LjItLjEgMzIuMyAyNi4yIDQ3LjQgNC40IDIuNSAxNS4yIDYgMjUuNSA2LjUgMjUuMyAxLjEgNjEuMyAxLjUgNjEuMyAxLjUtMTMuMi01OS40LTMzLjctNTYuMS0xMTMtNTUuNHpNMzAwLjggNDIwLjFjLTMuMi01LjMtNi45LTcuMy02LjktNy4zLTI0LjggNy4zLTUyLjIgNi45LTc1LjkgMCAwIDAtMi45IDEuNS02LjQgNi42LTIuOCA0LjEtMy43IDkuNi0zLjcgOS42IDI5LjEgMTcuNiA2Ny4xIDE3LjYgOTYuMiAwLS4xLS4xLS4zLTQtMy4zLTguOXoiXX0sc3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlbGljaW91cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjFhNSIsIk00NDYuNiA2OGMtLjQtMS41LS45LTMtMS40LTQuNS0uOS0yLjUtMi00LjgtMy4zLTcuMS0xLjQtMi40LTMtNC44LTQuNy02LjktMi4xLTIuNS00LjQtNC44LTYuOS02LjgtMS4xLS45LTIuMi0xLjctMy4zLTIuNS0xLjMtLjktMi42LTEuNy00LTIuNC0xLjgtMS0zLjYtMS44LTUuNS0yLjUtMS43LS43LTMuNS0xLjMtNS40LTEuNy0zLjgtMS03LjktMS41LTEyLTEuNWwtMzUyIDBDMjEuNiAzMiAuMSA1My41IC4xIDgwbDAgMzUyYzAgNC4xIC41IDguMiAxLjUgMTIgMiA3LjcgNS44IDE0LjYgMTEgMjAuMyAxIDEuMSAyLjEgMi4yIDMuMyAzLjMgNS43IDUuMiAxMi42IDkgMjAuMyAxMSAzLjggMSA3LjkgMS41IDEyIDEuNWwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1Mi4xYy0uMS00LjEtLjYtOC4yLTEuNi0xMnpNNDE2LjEgNDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC0xOTItMTkyIDAgMC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDE3NiAwIDAgMTkyIDE5MiAwIDAgMTc2eiJdfSxpenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3VpbGRlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3ZSIsIk00NDMuOSA2NEw1IDY0YzAgMTAzLjMgMjIuMiAxODAuMSA0My40IDIyMi40IDY0LjEgMTI3LjggMTc2IDE2MS42IDE3Ny4zIDE2MS42IDU1LjctMjAuNSAxMDQuNS01Ni4zIDE0MC42LTEwMy41IDI1LjktMzMuOSA1My4xLTg3LjIgNjUuOS0xNDUuOGwtMjU5LjkgMGM0LjEgMzYuNCAyMi4yIDY3LjkgNDUuMSA4Ni45bDg4LjYgMGMtMTcgMjguMi00OC4yIDU0LjQtODAuNSA2OS41LTMxLjItMTMuMy02OS4xLTQ2LjUtOTYuNS05OC40LTI2LjctNTMuOC0yNy4xLTEwNS45LTI3LjEtMTA1LjlsMzM2LjEgMGM0LTI4LjggNS45LTU3LjkgNS45LTg2Ljl6Il19LHJ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvYnNpZGlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZTg3OSIsIk0xNDIuMyAzMjAuM2MzNi4xLTguMiA3MC4zLTExIDEwMS4zIC43IDMxLjggMTEuOSA2MS43IDM5LjYgODYuNyA5Ni04LjEgMTcuNy0xMi40IDM2LjktMTQuNyA1My44LTMuMSAyMi45LTI1LjQgNDAuNy00Ny43IDM0LjYtMzEuNy04LjctNjguMy0yMi4zLTEwMS4zLTI0LjktNC40LS4zLTUwLjYtMy44LTUwLjYtMy44LTEuNy0uMS0zLjQtLjQtNS4xLS44IDMxLjUtNjQuMiAzOC4yLTExNS4xIDMxLjMtMTU1LjR6TTU1IDIxOS41YzIyLjMgMTQuOCA0OS41IDM3LjggNjQuMSA3My42IDE2LjEgMzkuNCAxNy44IDk1LjctMjEuNiAxNzYuMS0xLS44LTIuMS0xLjctMy0yLjdMNy40IDM3Ni44Yy05LjUtOS44LTEyLjEtMjQuNC02LjUtMzYuOSAuNi0xLjMgNDQuNi05OC4zIDU0LjEtMTIwLjR6bTI2NC4zLTkxLjNjNC45IDYuMiA3LjQgMTQgNy40IDIxLjkgLjEgMjAuOCAxLjggNjMuNiAxMy4zIDkxLjIgMTEuMiAyNi44IDMxLjggNTUuOCA0Mi41IDcwIDQuMSA1LjUgNC44IDEyLjkgMS4zIDE4LjctNy42IDEyLjgtMjIuNiAzNy41LTQzLjggNjkuMi0uMyAuNC0uNiAuOS0uOCAxLjMtMjUuMi01Mi4yLTU1LjktODAuNy05MC40LTkzLjYtOS42LTMuNi0xOS41LTYtMjkuNC03LjMtMTcuOC00NS44LTIzLjItNzkuNy0yMi0xMDYuNCAxLjItMjcuNCA5LjItNDcuOCAxOC4yLTY2LjMgOC45LTE4LjEgMTkuOC0zNS45IDI0LjktNTUuNyAzLjItMTIuNSA0LjItMjUuOCAxLjctNDAuOWw3Ny4xIDk4ek0xODQuMiAxNC4xYzEwLjMtOS4yIDI0LjYtMTAuOCAzNi4zLTUuNSA5LjYgMjQuNiA5LjcgNDIuOCA1LjYgNTguOC00LjYgMTcuOC0xNC4xIDMzLTIzLjkgNTIuOC05LjYgMTkuNS0xOC40IDQyLTE5LjcgNzIuMy0xLjIgMjcuOSA0LjEgNjEuOSAyMC40IDEwNS44LTIxLS42LTQyLjUgMi42LTYzLjcgNy40LTEuNy02LjQtMy44LTEyLjQtNi4xLTE4LjItMTcuMy00Mi4yLTQ5LjktNjcuOS03NC4xLTgzLjMgMy4xLTE4LjcgOC4yLTU1LjQgMTEuNi03Ny41IDEuMi03LjYgNC45LTE0LjYgMTAuNy0xOS44TDE4NC4yIDE0LjF6Il19LG96dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4Ym94IixpY29uOls1MTIsNTEyLFtdLCJmNDEyIiwiTTM2OS45IDMxOC4yYzQ0LjMgNTQuMyA2NC43IDk4LjggNTQuNCAxMTguNy03LjkgMTUuMS01Ni43IDQ0LjYtOTIuNiA1NS45LTI5LjYgOS4zLTY4LjQgMTMuMy0xMDAuNCAxMC4yLTM4LjItMy43LTc2LjktMTcuNC0xMTAuMS0zOS0yNy45LTE4LjItMzQuMi0yNS43LTM0LjItNDAuNiAwLTI5LjkgMzIuOS04Mi4zIDg5LjItMTQyLjEgMzItMzMuOSA3Ni41LTczLjcgODEuNC03Mi42IDkuNCAyLjEgODQuMyA3NS4xIDExMi4zIDEwOS41ek0xODguNiAxNDMuOGMtMjkuNy0yNi45LTU4LjEtNTMuOS04Ni40LTYzLjQtMTUuMi01LjEtMTYuMy00LjgtMjguNyA4LjEtMjkuMiAzMC40LTUzLjUgNzkuNy02MC4zIDEyMi40LTUuNCAzNC4yLTYuMSA0My44LTQuMiA2MC41IDUuNiA1MC41IDE3LjMgODUuNCA0MC41IDEyMC45IDkuNSAxNC42IDEyLjEgMTcuMyA5LjMgOS45LTQuMi0xMS0uMy0zNy41IDkuNS02NCAxNC4zLTM5IDUzLjktMTEyLjkgMTIwLjMtMTk0LjR6bTMxMS42IDYzLjVjLTE2LjktODAtNjcuNS0xMzAuMy03NC42LTEzMC4zLTcuMyAwLTI0LjIgNi41LTM2IDEzLjktMjMuMyAxNC41LTQxIDMxLjQtNjQuMyA1Mi44IDQyLjQgNTMuMyAxMDIuMiAxMzkuNCAxMjIuOSAyMDIuMyA2LjggMjAuNyA5LjcgNDEuMSA3LjQgNTIuMy0xLjcgOC41LTEuNyA4LjUgMS40IDQuNiA2LjEtNy43IDE5LjktMzEuMyAyNS40LTQzLjUgNy40LTE2LjIgMTUtNDAuMiAxOC42LTU4LjcgNC4zLTIyLjUgMy45LTcwLjgtLjgtOTMuNHpNMTQxLjMgNDNjNDcuNy0yLjUgMTA5LjcgMzQuNSAxMTQuMyAzNS40IC43IC4xIDEwLjQtNC4yIDIxLjYtOS43IDYzLjktMzEuMSA5NC0yNS44IDEwNy40LTI1LjItNjMuOS0zOS4zLTE1Mi43LTUwLTIzMy45LTExLjctMjMuNCAxMS4xLTI0IDExLjktOS40IDExLjJ6Il19LG56dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnRhcHBkIixpY29uOls2NDAsNTEyLFtdLCJmNDA1IiwiTTQwMS41IDQ5LjlDMzIxLjcgMjEwIDMxNi45IDIwMi40IDMxMy42IDIyMy4xbC01LjIgMzIuOGMtMS45IDEyLTYuNiAyMy41LTEzLjcgMzMuNEwxNDUuOCA0OTcuMWMtNy42IDEwLjYtMjAuNCAxNi4yLTMzLjQgMTQuNi00MC4zLTUtNzcuOC0zMi4yLTk1LjMtNjguNS01LjctMTEuOC00LjUtMjUuOCAzLjEtMzYuNEwxNjkuMSAxOTguOWM3LjEtOS45IDE2LjQtMTggMjcuMi0yMy43bDI5LjMtMTUuNWMxOC41LTkuOCA5LjctMTEuOSAxMzUuNi0xMzguOSAxLTQuOCAxLTcuMyAzLjYtOCAzLS43IDYuNi0xIDYuMy00LjZsLS40LTQuNmMtLjItMS45IDEuMy0zLjYgMy4yLTMuNiA0LjUtLjEgMTMuMiAxLjIgMjUuNiAxMCAxMi4zIDguOSAxNi40IDE2LjggMTcuNyAyMS4xIC42IDEuOC0uNiAzLjctMi40IDQuMmwtNC41IDEuMWMtMy40IC45LTIuNSA0LjQtMi4zIDcuNCAuMSAyLjgtMi4zIDMuNi02LjUgNi4xek0yMzAuMyAzNi40YzMuNCAuOSAyLjUgNC40IDIuMyA3LjQtLjIgMi43IDIuMSAzLjUgNi40IDYgNy45IDE1LjkgMTUuMyAzMC41IDIyLjIgNDQgLjcgMS4zIDIuMyAxLjUgMy4zIC41IDExLjItMTIgMjQuNi0yNi4yIDQwLjUtNDIuNiAxLjMtMS40IDEuNC0zLjUgLjEtNC45LTgtOC4yLTE2LjUtMTYuOS0yNS42LTI2LjEtMS00LjctMS03LjMtMy42LTgtMy0uOC02LjYtMS02LjMtNC42IC4zLTMuMyAxLjQtOC4xLTIuOC04LjItNC41LS4xLTEzLjIgMS4xLTI1LjYgMTAtMTIuMyA4LjktMTYuNCAxNi44LTE3LjcgMjEuMS0xLjQgNC4yIDMuNiA0LjYgNi44IDUuNHpNNjIwLjIgNDA2LjdMNDcxLjQgMTk4LjhjLTEzLjItMTguNS0yNi42LTIzLjQtNTYuNC0zOS4xLTExLjItNS45LTE0LjItMTAuOS0zMC41LTI4LjktMS0xLjEtMi45LS45LTMuNiAuNS00Ni4zIDg4LjgtNDcuMSA4Mi44LTQ5IDk0LjgtMS43IDEwLjctMS4zIDIwIC4zIDI5LjggMS45IDEyIDYuNiAyMy41IDEzLjcgMzMuNEw0OTQuOCA0OTcuMmM3LjYgMTAuNiAyMC4yIDE2LjIgMzMuMSAxNC43IDQwLjMtNC45IDc4LTMyIDk1LjctNjguNiA1LjQtMTEuOSA0LjMtMjUuOS0zLjQtMzYuNnoiXX0sbHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbHVzLWciLGljb246WzY0MCw1MTIsW10sImYwZDUiLCJNMzg2LjMgMjI4LjVjMS44IDkuNyAzLjEgMTkuNCAzLjEgMzIgMCAxMDkuOC03My42IDE4Ny41LTE4NC40IDE4Ny41LTEwNi4xIDAtMTkyLTg1LjktMTkyLTE5MlM5OC45IDY0IDIwNSA2NGM1MS45IDAgOTUuMSAxOC45IDEyOC42IDUwLjNsLTUyLjEgNTBjLTE0LjEtMTMuNi0zOS0yOS42LTc2LjUtMjkuNi02NS41IDAtMTE4LjkgNTQuMi0xMTguOSAxMjEuM1MxMzkuNSAzNzcuMyAyMDUgMzc3LjNjNzYgMCAxMDQuNS01NC43IDEwOS04Mi44bC0xMDkgMCAwLTY2IDE4MS4zIDAgMCAwem0xODUuNCA2LjRsMC01NS43LTU2IDAgMCA1NS43LTU1LjcgMCAwIDU2IDU1LjcgMCAwIDU1LjcgNTYgMCAwLTU1LjcgNTUuNyAwIDAtNTYtNTUuNyAweiJdfSxjenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjExMyIsIk0yMDIuMSAzMjguN2MwIDIwLjktMTAuOSA1NS4xLTM2LjcgNTUuMXMtMzYuNy0zNC4yLTM2LjctNTUuMSAxMC45LTU1LjEgMzYuNy01NS4xIDM2LjcgMzQuMiAzNi43IDU1LjF6TTQ5NiAyNzguMmMwIDMxLjktMy4yIDY1LjctMTcuNSA5NS0zNy45IDc2LjYtMTQyLjEgNzQuOC0yMTYuNyA3NC44LTc1LjggMC0xODYuMiAyLjctMjI1LjYtNzQuOC0xNC42LTI5LTIwLjItNjMuMS0yMC4yLTk1IDAtNDEuOSAxMy45LTgxLjUgNDEuNS0xMTMuNi01LjItMTUuOC03LjctMzIuNC03LjctNDguOCAwLTIxLjUgNC45LTMyLjMgMTQuNi01MS44IDQ1LjMgMCA3NC4zIDkgMTA4LjggMzYgMjktNi45IDU4LjgtMTAgODguNy0xMCAyNyAwIDU0LjIgMi45IDgwLjQgOS4yIDM0LTI2LjcgNjMtMzUuMiAxMDcuOC0zNS4yIDkuOCAxOS41IDE0LjYgMzAuMyAxNC42IDUxLjggMCAxNi40LTIuNiAzMi43LTcuNyA0OC4yIDI3LjUgMzIuNCAzOSA3Mi4zIDM5IDExNC4yem0tNjQuMyA1MC41YzAtNDMuOS0yNi43LTgyLjYtNzMuNS04Mi42LTE4LjkgMC0zNyAzLjQtNTYgNi0xNC45IDIuMy0yOS44IDMuMi00NS4xIDMuMi0xNS4yIDAtMzAuMS0uOS00NS4xLTMuMi0xOC43LTIuNi0zNy02LTU2LTYtNDYuOCAwLTczLjUgMzguNy03My41IDgyLjYgMCA4Ny44IDgwLjQgMTAxLjMgMTUwLjQgMTAxLjNsNDguMiAwYzcwLjMgMCAxNTAuNi0xMy40IDE1MC42LTEwMS4zem0tODIuNi01NS4xYy0yNS44IDAtMzYuNyAzNC4yLTM2LjcgNTUuMXMxMC45IDU1LjEgMzYuNyA1NS4xIDM2LjctMzQuMiAzNi43LTU1LjEtMTAuOS01NS4xLTM2LjctNTUuMXoiXX0sZHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdldC1wb2NrZXQiLGljb246WzQ0OCw1MTIsW10sImYyNjUiLCJNNDA3LjYgNjRsLTM2NyAwQzE4LjUgNjQgMCA4Mi41IDAgMTA0LjZMMCAyMzkuOEMwIDM2NC41IDk5LjcgNDY0IDIyNC4yIDQ2NCAzNDguMiA0NjQgNDQ4IDM2NC41IDQ0OCAyMzkuOGwwLTEzNS4yQzQ0OCA4Mi4yIDQzMC4zIDY0IDQwNy42IDY0em0tMTYyIDI2OC41Yy0xMi40IDExLjgtMzEuNCAxMS4xLTQyLjQgMC0xMTMuNy0xMDguOS0xMTQuOS0xMDUuMS0xMTQuOS0xMjMuMiAwLTE2LjkgMTMuOC0zMC43IDMwLjctMzAuNyAxNyAwIDE2LjEgMy44IDEwNS4yIDg5LjMgOTAuNi04Ni45IDg4LjYtODkuMyAxMDUuNS04OS4zczMwLjcgMTMuOCAzMC43IDMwLjdjMCAxNy44LTIuOSAxNS43LTExNC44IDEyMy4yeiJdfSx1enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xpZGUiLGljb246WzQ0OCw1MTIsW10sImYyYTUiLCJNMjUyLjggMTQ4LjZjMCA4LjgtMS42IDE3LjctMy40IDI2LjQtNS44IDI3LjgtMTEuNiA1NS44LTE3LjMgODMuNi0xLjQgNi4zLTguMyA0LjktMTMuNyA0LjktMjMuOCAwLTMwLjUtMjYtMzAuNS00NS41IDAtMjkuMyAxMS4yLTY4LjEgMzguNS04My4xIDQuMy0yLjUgOS4yLTQuMiAxNC4xLTQuMiAxMS40IDAgMTIuMyA4LjMgMTIuMyAxNy45ek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zODQgMjY3YzAtNS4xLTIwLjgtMzcuNy0yNS41LTM5LjUtMi4yLS45LTcuMi0yLjMtOS42LTIuMy0yMy4xIDAtMzguNyAxMC41LTU4LjIgMjEuNWwtLjUtLjVjNC4zLTI5LjQgMTQuNi01Ny4yIDE0LjYtODcuNCAwLTQ0LjYtMjMuOC02Mi43LTY3LjUtNjIuNy03MS43IDAtMTA4IDcwLjgtMTA4IDEyMy41IDAgNTQuNyAzMiA4NSA4Ni4zIDg1IDcuNSAwIDYuOS0uNiA2LjkgMi4zLTEwLjUgODAuMy01Ni41IDgyLjktNTYuNSA1OC45IDAtMjQuNCAyOC0zNi41IDI4LjMtMzgtLjItNy42LTI5LjMtMTcuMi0zNi43LTE3LjItMjEuMSAwLTMyLjcgMzMtMzIuNyA1MC42IDAgMzIuMyAyMC40IDU0LjcgNTMuMyA1NC43IDQ4LjIgMCA4My40LTQ5LjcgOTQuMy05MS43IDkuNC0zNy43IDctMzkuNCAxMi4zLTQyLjEgMjAtMTAuMSAzNS44LTE2LjggNTguNC0xNi44IDExLjEgMCAxOSAyLjMgMzYuNyA1LjIgMS44IC4xIDQuMS0xLjcgNC4xLTMuNXoiXX0scHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdHkiLGljb246WzUxMiw1MTIsW10sImYzN2EiLCJNODYuNSA2Ny4yYzk1LjQtODkuMiAyNDYuMS05MS4yIDM0My4xIDMuOCAxNC4zIDE0LjEtNi40IDM3LjEtMjIuNCAyMS41LTg0LjgtODIuNC0yMTUuOC04MC4zLTI5OC45LTMuMi0xNi4zIDE1LjEtMzYuNS04LjMtMjEuOC0yMi4xem05OC45IDQxOC42YzE5LjMgNS43IDI5LjMtMjMuNiA3LjktMzAtMTEyLjItMzMuOS0xNzUuOC0xNDkuNy0xNDcuNS0yNjEgNS0xOS42LTI0LjktMjguMS0zMC4yLTcuMS0zMi4xIDEyNy40IDQxLjEgMjU5LjggMTY5LjggMjk4LjF6bTE0OC4xLTJjMTIxLjktNDAuMiAxOTIuOS0xNjYuOSAxNjQuNC0yOTEtNC41LTE5LjctMzQuOS0xMy44LTMwIDcuOSAyNC4yIDEwNy43LTM3LjEgMjE3LjktMTQzLjIgMjUzLjQtMjEuMiA3LTEwLjQgMzYgOC44IDI5Ljd6bS02Mi45LTc5bC4yLTcxLjhjMC04LjItNi42LTE0LjgtMTQuOC0xNC44cy0xNC44IDYuNy0xNC44IDE0LjhsLS4yIDcxLjhjMCA4LjIgNi42IDE0LjggMTQuOCAxNC44czE0LjgtNi42IDE0LjgtMTQuOHptNzEtMjY5YzIuMSA5MC45IDQuNyAxMzEuOS04NS41IDEzMi41LTkyLjUtLjctODYuOS00NC4zLTg1LjUtMTMyLjUgMC0yMS44LTMyLjUtMTkuNi0zMi41IDBsMCA3MS42YzAgNjkuMyA2MC43IDkwLjkgMTE4IDkwLjEgNTcuMyAuOCAxMTgtMjAuOCAxMTgtOTAuMWwwLTcxLjZjMC0xOS42LTMyLjUtMjEuOC0zMi41IDB6Il19LGh6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGV4cGxvcmVyIixpY29uOls1MTIsNTEyLFtdLCJmMmRlIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTQ4MCAwYTIyNCAyMjQgMCAxIDAgLTQ0OCAwIDIyNCAyMjQgMCAxIDAgNDQ4IDB6TTE2MC45IDEyNC42bDg2LjkgMzcuMS0zNy4xIDg2LjktODYuOS0zNy4xIDM3LjEtODYuOXptMTEwIDE2OS4xbDQ2LjYgOTQtMTQuNiAwLTUwLTEwMC00OC45IDEwMC0xNCAwIDUxLjEtMTA2LjktMjIuMy05LjQgNi0xNCA2OC42IDI5LjEtNiAxNC4zLTE2LjUtNy4xek0yNTkuMSAxNzcuNGw2OC42IDI5LjQtMjkuNCA2OC4zLTY4LjMtMjkuMSAyOS4xLTY4LjZ6bTgwLjMgNDIuOWw1NC42IDIzLjEtMjMuNCA1NC4zLTU0LjMtMjMuMSAyMy4xLTU0LjN6Il19LGZ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWdhcG9ydCIsaWNvbjpbNTEyLDUxMixbXSwiZjVhMyIsIk0yMjIuNSAyMDkuNmwwIDY2LjIgMzMuNSAzMy41IDMzLjMtMzMuMyAwLTY2LjQtMzMuNC0zMy40LTMzLjQgMzMuNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MDEuMSA0MjIuNGwtMjYuMSAxOS4yLTI2LTE5LjIgMC02NS41LTMzLjQtMzMuNC0zMy40IDMzLjQgMCA2NS41LTI2LjIgMTkuMi0yNi4xLTE5LjIgMC02NS41LTMzLjQtMzMuNC0zMy41IDMzLjQgMCA2NS41LTI2LjEgMTkuMi0yNi4xLTE5LjIgMC04NyA1OS41LTU5LjUgMC04Ny45IDU5LjUtNTkuNSAwLTc1LjYgMjYuMS0xOS4yIDI2LjEgMTkuMiAwIDc1LjYgNTkuNSA1OS41IDAgODcuNiA1OS43IDU5LjcgMCA4Ny4xLS4xIDB6Il19LG16dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZWV0Y29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg2YSIsIk0yMzUuNCA5LjNDMjQ2LjUtMi41IDI2NS4xLTMuMiAyNzcgNy45czEyLjUgMjkuOCAxLjQgNDEuNmwtNDMgNDZjMjEuNSAzLjMgNDIuMSAxMS44IDU5LjEgMjUuNmw3NC42IDYwLjNjMTIuNiAxMC4yIDE0LjYgMjguOCA0LjQgNDEuNHMtMjguNyAxNC42LTQxLjQgNC40bC03NC42LTYwLjNjLTI2LjItMjEuMS03MS45LTE4LjItOTQuNSA1LjlMODEgMjYxYy0yMS41IDIzLTE5LjEgNjAgNS42IDg0LjJsOTEuMiA4OS40YzI0LjkgMjQgNjUuNiAyNCA5MC4xLS40bDUxLjEtNTFjMTEuNS0xMS41IDMwLjEtMTEuNSA0MS42IC4xczExLjQgMzAuMi0uMSA0MS43bC01MS4xIDUxYy00Ny4xIDQ3LjEtMTI0IDQ3LjctMTcxLjkgMS42bC05Mi05MC4yQy0xLjQgMzQxLjMtNiAyNjcuOSAzOCAyMjAuN0wyMzUuNCA5LjN6TTQxMS43IDI3My4yYzE2LjIgMCAyOS40IDEzLjIgMjkuNCAyOS41cy0xMy4yIDI5LjUtMjkuNCAyOS41bC0yMTYuOSAwYy0xNi4yIDAtMjkuNC0xMy4yLTI5LjQtMjkuNXMxMy4yLTI5LjUgMjkuNC0yOS41bDIxNi45IDB6Il19LGd6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZGIiLGljb246WzU3Niw1MTIsW10sImY4Y2EiLCJNMTcuNCAxNjAuNGwtMTAuNCAxOTEuNiA0My45IDAgNS42LTc5LjggMjcuOSA3OS44IDQ0LjcgMCAyNS41LTc3LjQgNC44IDc3LjQgNDUuNSAwLTEyLjgtMTkxLjYtNDUuNSAwLTQwLjcgMTE3LjMtNDIuMy0xMTcuMy00Ni4zIDB6bTI4MSAwbC00Ny45IDAgMCAxOTEuNiA0Ny45IDBzOTUgLjggOTQuMi05NS44Yy0uOC05NC4yLTk0LjItOTUuOC05NC4yLTk1LjhsMCAwem0tMS4yIDE0Ni41bDAtMTAyLjFzNDYgNC4zIDQ2LjggNTAuNi00Ni44IDUxLjUtNDYuOCA1MS41bDAgMHptMjM4LjMtNzQuMmM3LjItMTEuNCAxMC0yNSA4LTM4LjMtNS4zLTM1LjgtNTUuMS0zNC4zLTU1LjEtMzQuM2wtNTEuOSAwIDAgMTkxLjYgNDUuNSAwczg3IDQuOCA4Ny02My44YzAtNDMuMS0zMy41LTU1LjEtMzMuNS01NS4xbDAgMHptLTUxLjktMzEuOXMxMy42LTEuNiAxNiA5LjZjMS40IDYuNy00IDEyLTQgMTJsLTEyIDAgMC0yMS42em0tLjEgMTA5LjVsLjEtMjQuOSAwLTE4LjIgLjEgMHM0MS42LTQuNyA0MS4yIDIyLjRjLS4zIDI1LjctNDEuMyAyMC43LTQxLjMgMjAuN2wwIDB6Il19LGJ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlNCIsaWNvbjpbNTEyLDUxMixbXSwiZjNkNyIsIk0yNTYgNTA0QzExOSA1MDQgOCAzOTMgOCAyNTZTMTE5IDggMjU2IDhjMjAuOSAwIDQxLjMgMi42IDYwLjcgNy41TDUwLjMgMzkyIDI1NiAzOTIgMjU2IDUwNHptMC0xNDMuNmwwLTIxMy42LTE0OS40IDIxMy42IDE0OS40IDB6TTM1MiAzOTJsMCA5Mi43YzQ1LjctMTkuMiA4NC41LTUxLjcgMTExLjQtOTIuN0wzNTIgMzkyem01Ny40LTEzOC4ybC0yMS4yIDguNCAyMS4yIDguMyAwLTE2Ljd6bS0yMC4zIDU0LjVjLTYuNyAwLTggNi4zLTggMTIuOWwwIDcuNyAxNi4yIDAgMC0xMGMwLTUuOS0yLjMtMTAuNi04LjItMTAuNnpNNTA0IDI1NmMwIDM3LjMtOC4yIDcyLjctMjMgMTA0LjRsLTEyOSAwIDAtMzMzLjFDNDQxLjMgNjQuOCA1MDQgMTUzLjEgNTA0IDI1NnpNMzY4LjQgMTQzLjZsNjguMiAwIDAtNDcuNi0xMy45IDAgMCAzMi42LTEzLjkgMCAwLTI5LjYtMTMuOSAwIDAgMjkuNi0xMi43IDAgMC0zMi42LTEzLjkgMCAwIDQ3LjYgLjEgMHptNjguMSAxODUuM2wtMjYuNSAwIDAtMTFjMC0xNS40LTUuNi0yNS4yLTIwLjktMjUuMi0xNS40IDAtMjAuNyAxMC42LTIwLjcgMjUuOWwwIDI1LjMgNjguMiAwIDAtMTUtLjEgMHptMC0xMDNsLTY4LjIgMjkuNyAwIDEyLjQgNjguMiAyOS41IDAtMTYuNi0xNC40LTUuNyAwLTI2LjUgMTQuNC01LjkgMC0xNi45em0tNC44LTY4LjVsLTM1LjYgMCAwIDI2LjYgMTMuOSAwIDAtMTIuMiAxMSAwYzguNiAxNS44IDEuMyAzNS4zLTE4LjYgMzUuMy0yMi41IDAtMjguMy0yNS4zLTE1LjUtMzcuN2wtMTEuNi0xMC42Yy0xNi4yIDE3LjUtMTIuMiA2My45IDI3LjEgNjMuOSAzNCAwIDQ0LjctMzUuOSAyOS4zLTY1LjN6Il19LHZ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGUtcmVkLXlldGkiLGljb246WzUxMiw1MTIsW10sImY2OWQiLCJNNDg4LjcgMjQxLjdsMjAuNyA3LjFjLTkuNi0yMy45LTIzLjktMzctMzEuNy00NC44bDcuMS0xOC4yYy4yIDAgMTIuMy0yNy44LTIuNS0zMC43LS42LTExLjMtNi42LTI3LTE4LjQtMjctNy42LTEwLjYtMTcuNy0xMi4zLTMwLjctNS45LTkuMSA0LjQtMTcuNiAxMC0yNS4zIDE2LjUtNS4zLTYuNC0zIC40LTMtMjkuOC0zNy4xLTI0LjMtNDUuNC0xMS43LTc0LjggM2wuNSAuNWMtMjItNy43LTQ1LjEtMTIuMi02OC40LTEzLjMtNS41LTguNy0xOC42LTE5LjEtMjUuMS0yNS4xbDI0LjggNy4xYy01LjUtNS41LTI2LjgtMTIuOS0zNC4yLTE1LjIgMTguMi00LjEgMjkuOC0yMC44IDQyLjUtMzMtMzQuOS0xMC4xLTY3LjktNS45LTk3LjkgMTEuOGwxMi00NC4yLTEuOC0uNWMtMzEuNiAyNC4yLTMzIDQxLjktMzMuNyA0NS41LS45LTIuNC02LjMtMTkuNi0xNS4yLTI3LTMuMyA4LjEtMy41IDE3LjEtLjUgMjUuMyAzIDguNCA1LjkgMTQuOCA4LjQgMTguOS0xNi0zLjMtMjguMy00LjktNDkuMiAwbC0zLjcgMCAzMyAxNC4zYy0yMC4yIDE4LjktMzYuMSA0MS45LTQ2LjcgNjcuNGwtMS43IDguNCAxLjcgMS43IDcuNi00LjdjLTMuMyAxMS42LTUuMyAxOS40LTYuNiAyNS44LTEwLjkgMTIuMi0yMC4yIDI1LjgtMjcuOCA0MC4zLTE1IDEtMzEuOCAxMC44LTQwLjMgMTQuM2wzIDMuNCAyOC44IDFjLS41IDEtLjcgMi4yLTEuMiAzLjItNy4zIDYuNC0zOS44IDM3LjctMzMgODAuN2wyMC4yLTIyLjRjLjUgMS43IC43IDMuNCAxLjIgNS4yIDAgMjUuNSAuNCA4OS42IDY0LjkgMTUwLjUgNDMuNiA0MCA5NiA2MC4yIDE1Ny41IDYwLjIgMTIxLjcgMCAyMjMtODcuMyAyMjMtMjExLjUgNi44LTkuNy0xLjIgMyAxNi43LTI1LjFsMTMgMTQuMyAyLjUtLjVjLTEuOC0xMS43LTQuOC0yMy4xLTguOS0zNC4yLTEuNS00LjgtMy44LTkuMy02LjgtMTMuM2wwIDB6TTM5OC41IDExMS4ybC0uNSAyMS45YzUuNSAxOC4xIDE2LjkgMTcuMiAyMi40IDE3LjJsLTMuNC00LjcgMjIuNC01LjRjLTkgLjUtMTggLjUtMjcgMCAxMi44LTIuMSAzMy4zLTI5IDQzLTExLjMgMy40IDcuNiA2LjQgMTcuMiA5LjMgMjcuOGwxLjctNS45Yy0xLjMtNS0xLjgtMTAuMS0xLjctMTUuMiA1LjQgLjUgOC44IDMuNCA5LjMgMTAuMSAuNSA2LjQgMS43IDE0LjggMy40IDI1LjNsNC43LTExLjNjNC42IDAgNC41LTMuNi0yLjUgMjAuNy0yMC45LTguNy0zNS4xLTguNC00Ni41LTguNGwxOC4yLTE2Yy0yNS4zIDguMi0zMyAxMC44LTU0LjggMjAuOS0xLjEtNS40LTUtMTMuNS0xNi0xOS45LTMuMiAzLjgtMi44IC45LS43IDE0LjhsLTIuNSAwYy0xLjItOC4yLTQuMS0xNi04LjQtMjMuMWw0LjItMy40YzguNC03LjEgMTEuOC0xNC4zIDEwLjYtMjEuOS0uNS02LjQtNS40LTEzLjUtMTMuNS0yMC43IDUuNi0zLjQgMTUuMi0uNCAyOC4zIDguNXptLTM5LjYtMTAuMWMyLjcgMS45IDExLjQgNS40IDE4LjkgMTcuMiA0LjIgOC40IDQgOS44IDMuNCAxMS4xLS41IDIuNC0uNSA0LjMtMyA3LjEtMS43IDIuNS01LjQgNC43LTExLjggNy42LTcuNi0xMy0xNi41LTIzLjYtMjcuOC0zMS4ybDIwLjMtMTEuOHptLTI2Ny40IDQybDEuMi0xLjdjMS4yLTIuOSA0LjItNy42IDkuMy0xNS4ybDIuNS0zLjQtMTMgMTIuMyA1LjQtNC43LTEwLjEgOS4zLTQuMiAxLjJjMTIuMy0yNC4xIDIzLjEtNDEuMyAzMi41LTUwLjIgOS4zLTkuMyAxNi0xNiAyMC4yLTE5LjRsLTYuNCAxLjJjLTExLjMtNC4yLTE5LjQtNy4xLTI0LjgtOC40IDIuNS0uNSAzLjctLjUgMy4yLS41IDEwLjMgMCAxNy41IC41IDIwLjkgMS4yIDUuMiAxLjcgMTAuNiAyLjUgMTYgMi41bC41LTEuNy04LjQtMzUuOCAxMy41IDI5YzIuOC00LjQgNC44LTkuMiA1LjktMTQuMyAxLjctNi40IDUuNC0xMyAxMC4xLTE5LjRzNy42LTEwLjYgOS4zLTExLjNjLTIuNiA4LjMtNC43IDE2LjgtNi40IDI1LjNsLTEuNyA3LjEtLjUgNC43IDIuNSAyLjVjMjEuOS0xMy41IDQ1LjUtMTkuNCA3MS4zLTE4LjlsMjEuMSAuNWMtMTEuOCAxMy41LTI3LjggMjEuOS00OC41IDI0LjgtNy43IDEuNC0xNS42IDIuNC0yMy40IDIuOWwtLjItLjUtMi41LTEuMmMtNC44LTEtOS43LS4zLTE0IDItMi41LS4yLTQuOS0uNS03LjEtLjdsLTIuNSAxLjcgLjUgMS4yYzIgLjIgMy45IC41IDYuMiAuN2wtMiAzLjQgMy40LS41LTEwLjYgMTEuM2MtNC4yIDMtNS40IDYuNC00LjIgOS4zbDUuNC0zLjQgMS4yIDBjNi4xLTguMiAxNS4yLTEzLjYgMjUuMy0xNS4ybDAtM2M2LjQgLjUgMTMgMSAxOS40IDEuMiA2LjQgMCA4LjQgLjUgNS40IDEuMiA3LjIgNCAxNC4xIDguNiAyMC43IDEzLjUgMTMuNSAxMC4xIDIzLjYgMjEuOSAzMCAzNS40IDguOCAxOC4yIDEzLjUgMzcuMSAxMy41IDU2LjYgMCA5LjUtMSAxOS0zIDI4LjMtMy41IDE1LjktOC45IDMxLjMtMTYgNDZsMi41IC41YzE4LjItMTkuNyA0MS45LTE2IDQ5LjItMTZsLTYuNCA1LjkgMjIuNCAxNy43LTEuNyAzMC43Yy01LjQtMTIuMy0xNi41LTIxLjEtMzMtMjcuOCAxNi41IDE0LjggMjMuNiAyMS4xIDIxLjkgMjAuMi00LjgtMi44LTMuNS0xLjktMTAuOC0zLjcgNC4xIDQuMSAxNy41IDE4LjggMTguMiAyMC43bC4yIC4yLS4yIC4yYzAgMS44IDEuNi0xLjItMTQgMjIuOS03NS4yLTE1LjMtMTA2LjMtNDIuNy0xNDEuMi02My4ybDExLjggMS4yYy0xMS44LTE4LjUtMTUuNi0xNy43LTM4LjQtMjYuMWwxMC42LTguNGMtOC44LTMtMTguMi0zLTI4LjMgLjVsNy42LTEwLjYtMS4yLTEuN2MtMTQuOSA0LjMtMTkuOCA5LjItMjIuNiAxMS4zLTEuMS01LjUtMi44LTEyLjQtMTIuMy0yOC44bC0xLjIgMjctMTMuMi01YzEuNS0yNS4yIDUuNC01MC41IDEzLjItNzQuNnpNMzY4IDQ3My4xYy00OS45IDI1LTU2LjEgMjIuNC01OSAyMy45LTI5LjgtMTEuOC01MC45LTMxLjctNjMuNS01OC44bDMwIDE2LjVjLTkuOC05LjMtMTguMy0xNi41LTM4LjQtNDQuM2wxMS44IDIzLjEtMTcuNy03LjZjMTQuMiAyMS4xIDIzLjUgNTEuNyA2Ni42IDczLjUtMTIwLjggMjQuMi0xOTktNzIuMS0yMDAuOS03NC4zIDExLjEgOS4yIDIyLjkgMTcuNSAzNS40IDI0LjggMy40IDEuNyA3LjEgMi41IDEwLjEgMS4ybC0xNi0yMC43YzkuMiA0LjIgOS41IDQuNSA2OS4xIDI5LTQyLjUtMjAuNy03My44LTQwLjgtOTMuMi02MC4yLS41IDYuNC0xLjIgMTAuMS0xLjIgMTAuMSA4LjcgNy4zIDE1LjggMTYuNCAyMC43IDI2LjYtMzktMTguOS01Ny42LTQ3LjYtNzEuMy04Mi42IDQ5LjkgNTUuMSAxMTguOSAzNy41IDEyMC41IDM3LjEgMzQuOCAxNi40IDY5LjkgMjMuNiAxMTMuOSAxMC42IDMuMyAwIDIwLjMgMTcgMjUuMyAzOS4xbDQuMi0zLTIuNS0yMy42YzkgOSAyNC45IDIyLjYgMzQuNCAxMy0xNS42LTUuMy0yMy41LTkuNS0yOS41LTMxLjcgNC42IDQuMiA3LjYgOSAyNy44IDE1bDEuMi0xLjItMTAuNS0xNC4yYzExLjctNC44LTMuNSAxIDMyLTEwLjggNC4zIDM0LjMgOSA0OS4yIC43IDg5LjV6TTQ4My4zIDI1OC43bC0yLjUgLjUgMyA5LjNjLTMuNSA1LjktMjMuNyA0NC4zLTcxLjYgNzkuNy0zOS41IDI5LjgtNzYuNiAzOS4xLTgwLjkgNDAuM2wtNy42LTcuMS0xLjIgMyAxNC4zIDE2LTcuMS00LjcgMy40IDQuMi0xLjIgMC0yMS45LTEzLjUgOS4zIDI2LjYtMTktMjcuOS0xLjIgMi41IDcuNiAyOWMtNi4xLTguMi0yMS0zMi42LTU2LjgtMzkuNmwzMi41IDIxLjJjLTMxLjIgNC43LTYzIDIuNS05My4yLTYuNC00LjItMS4yLTguOS0yLjUtMTMuNS00LjJsMS4yLTMtNDQuOC0yMi40IDI2LjEgMjIuNGMtNTcuNyA5LjEtMTEzLTI1LjQtMTI2LjQtODMuNEwyOS4zIDI4NC44IDcgMzA3LjFjMTkuNS01Ny41IDI1LjYtNTcuOSA1MS40LTcwLjEtOS4xLTUuMy0xLjYtMy4zLTM4LjQtOS4zIDE1LjgtNS44IDMzLTE1LjQgNzMgNS4yIDEuMi0uNyAyLjQtMS4zIDMuNy0xLjcgLjYtMy4yIC40LS44IDEtMTEuOCAzLjkgMTAgMy42IDguNyAzIDkuM2wxLjcgLjVjMTIuNy02LjUgOC45LTQuNSAxNy04LjlsLTUuNCAxMy41IDIyLjMtNS44LTguNCA4LjQgMi41IDIuNWM0LjUtMS44IDMwLjMgMy40IDQwLjggMTZsLTIzLjYtMi41YzM5LjQgMjMgNTEuNSA1NCA1NS44IDY5LjZsMS43LTEuMmMtMi44LTIyLjMtMTIuNC0zMy45LTE2LTQwLjEgNC4yIDUgMzkuMiAzNC42IDExMC40IDQ2LTExLjMtLjUtMjMuMSA1LjQtMzQuOSAxOC45bDQ2LjctMjAuMi05LjMgMjEuOWM3LjYtMTAuMSAxNC44LTIzLjYgMjEuMi0zOS42bDAtLjUgMS4yLTMtMS4yIDE2YzEzLjUtNDEuOCAyNS4zLTc4LjUgMzUuNC0xMDkuN2wxMy41LTI3LjggMC0yLTUuNC00LjIgMTAuMSAwIDUuOSA0LjIgMi41LTEuMi0zLjQtMTYgMTIuMyAxOC45IDQxLjgtMjAuMi0xNC44IDEzIC41IDIuOSAxNy43LS41YzExLjEgLjQgMjIuMSAxLjggMzMgNC4ybC0yMy42IDIuNS0xLjIgMyAyNi42IDIzLjFjOS45IDkuOSAxOC45IDIwLjYgMjcgMzItMTEuMi0zLjMtMTAuMy0zLjQtMjEuMi0zLjRsMTIuMyAzMi41LTguOS0xMi44em0tNi4xLTcxLjNsLTMuOSAxMy0xNC4zLTExLjggMTguMi0xLjJ6bS0yNTQuOCA3LjFjMS43IDEwLjYgNC43IDE3LjcgOC44IDIxLjktOS4zIDYuNi0yNy41IDEzLjktNDYuNSAxNmwuNSAxLjJjOC4zIDEuMyAxNi45IC40IDI0LjgtMi41bC03LjEgMTNjNC4yLTEuNyAxMC4xLTcuMSAxNy43LTE0LjggMTEuOS01LjUgMTIuNy01LjEgMjAuMi0xNi0xMi43LTYuNC0xNS43LTEzLjctMTguNC0xOC44em0zLjctMTAyLjNjLTYuNC0zLjQtMTAuNiAzLTEyLjMgMTguOXMyLjUgMjkuNSAxMS44IDM5LjYgMTguMiAxMC42IDI2LjEgMyAzLjQtMjMuNi0xMS4zLTQ3LjdjLTMuNS01LjctOC40LTEwLjUtMTQuMy0xMy44bDAgMHptLTQuNyA0Ni4zYzUuNCAyLjIgMTAuNSAxLjkgMTIuMy0xMC42bDAtNC43LTEuMiAuNWMtNC4zLTMuMS0yLjUtNC41LTEuNy02LjJsLjUtLjVjLS45LTEuMi01LTguMS0xMi41IDQuNy0uNS0xMy41IC41LTIxLjkgMy0yNC44IDEuMi0yLjUgNC43LTEuMiAxMS4zIDQuMiA2LjQgNS40IDExLjMgMTYgMTUuMiAzMi41IDYuNSAyOC0xOS44IDI2LjItMjYuOSA0Ljl6bS00NS01LjVjMS42IC4zIDkuMy0xLjEgOS4zLTE0LjhsLS41IDBjLTUuNC0xLjEtMi4yLTUuNS0uNy01LjktMS43LTMtMy40LTQuMi01LjQtNC43LTguMSAwLTExLjYgMTIuNy04LjEgMjEuMiAuNSAxLjEgMS4zIDIgMi4yIDIuOHMyIDEuMiAzLjIgMS40bDAgMHptNDAuMS01MC4xbC0yLjUgLjUgLjUgM2M5LjEtLjUgMTguMSAxLjUgMjYuMSA1LjktMi41LTUuNS0xMC0xNC4zLTI4LjMtMTQuM2wuNSAyLjUgMy43IDIuNHptLTcxLjggNDkuNGMyMS43IDE2LjggMTYuNSAyMS40IDQ2LjUgMjMuNmwtMi45LTQuN2M4LjQtNy4yIDEzLjctMTcuMyAxNC44LTI4LjMgMS43LTE2LTEuMi0yOS41LTguOC00MS4zbDEzLTcuNmMwLS4zIDAtLjYtLjEtLjlzLS4yLS42LS40LS44Yy0yLjItLjktNC42LTEuMi03LS45cy00LjYgMS4yLTYuNSAyLjZjLTEyLjcgNi43LTI4IDIwLjktMjkgMjIuNC0xLjcgMS43LTMuNCA1LjktNS40IDEzLjUtMS45IDcuNy0yLjkgMTUuNi0yLjkgMjMuNi00LjctOC0xMC41LTYuNC0xOS45LTUuOWw3LjEgNy42Yy0xNi41IDAtMjMuMyAxNS40LTIzLjYgMTYgNi44IDAgNC42LTcuNiAzMC0xMi4zLTQuMy02LjMtMy4zLTUtNC45LTYuNnptMTguNy0xOC43YzEuMi03LjYgMy40LTEzIDYuNC0xNy4yIDUuNC02LjQgMTAuNi0xMC4xIDE2LTExLjggNC4yLTEuNyA3LjEgMS4yIDEwLjEgOS4zIDIuNSA4LjIgMy41IDE2LjggMyAyNS4zLS41IDkuMy0zLjQgMTcuMi04LjQgMjMuMS0yLjkgMy40LTUuNCA1LjktNi40IDcuNi0zLjggLjQtNy42IC4yLTExLjMtLjVsLTcuMS0zLjQtNS40LTYuNGMuOC0xMCAxLjMtMTguOCAzLjEtMjZ6bTQyIDU2LjFjLTM0LjggMTQuNC0zNC43IDE0LTM2LjEgMTQuMy0yMC44IDQuNy0xOS0yNC40LTE4LjktMjQuOGw1LjktMS4yLS41LTIuNWMtMjAuMi0yLjYtMzEgNC4yLTMyLjUgNC45IC41IC41IDMgMy40IDUuOSA5LjMgNC4yLTYuNCA4LjgtMTAuMSAxNS4yLTEwLjYtMS43IDExLjItMS4yIDIyLjcgMS43IDMzLjcgLjEgLjUgMi42IDE3LjQgMjcuNSAyNC4xIDExLjMgMyAyNyAxLjIgNDguOS01LjRsLTkuMiAuNWMtNC4yLTE0LjgtNi40LTI0LjgtNS45LTI5LjUgMTEuMy04LjggMjEuOS0xMS4zIDMwLjctNy42bDIuNSAwLTExLjgtNy42LTcuMSAuNWMtNS45IDEuMi0xMi4zIDQuMi0xOS40IDguNGwzLjEtNi41eiJdfSx4enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamlyYSIsaWNvbjpbNTEyLDUxMixbXSwiZjdiMSIsIk00OTguNSAyNDEuN2MtNzIuOS03Mi43LTE2OS40LTE2OS45LTI0MS41LTI0MS43LTE2NS41IDE2NC45LTI0Mi41IDI0MS43LTI0Mi41IDI0MS43LTcuOSA3LjktNy45IDIwLjcgMCAyOC43IDEzMi44IDEzMi4zIDYxLjggNjEuNSAyNDIuNSAyNDEuNiAzNzkuNC0zNzggMTUuNy0xNi43IDI0MS41LTI0MS43IDgtNy45IDgtMjAuNyAwLTI4LjZ6TTI1NyAzMzEuN2wtNzYtNzUuNyA3Ni03NS43IDc2IDc1LjctNzYgNzUuN3oiXX0seXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZGV4IixpY29uOls2NDAsNTEyLFtdLCJmNzk3IiwiTTU4NiAyODQuNWw1My4zLTU5LjktNjIuNCAwLTIxLjcgMjQuOC0yMi41LTI0LjgtMTE4LjcgMCAwLTE2IDU2LjEgMCAwLTQ4LjEtMTUxLjIgMCAwIDc1LjUtLjUgMGMtOS42LTExLTIxLjUtMTQuOC0zNS40LTE0LjgtMjguNCAwLTQ5LjggMTkuNC01Ny4zIDQ0LjktMTgtNTkuNC05Ny40LTU3LjYtMTIxLjktMTRsMC0yNC4yLTU0LjggMCAwLTI2LjIgNjAgMCAwLTQxLjEtMTA5IDAgMCAxODQuNCA0OSAwIDAtNzcuNSA0OC45IDBjLTEuNSA1LjctMi4zIDExLjgtMi4zIDE4LjIgMCA3My4xIDEwMi42IDkxLjQgMTMwLjIgMjMuN2wtNDIgMGMtMTQuNyAyMC45LTQ1LjggOC45LTQ1LjgtMTQuNmw4NS41IDBjMy43IDMwLjUgMjcuNCA1Ni45IDYwLjEgNTYuOSAxNC4xIDAgMjctNi45IDM0LjktMTguNmwuNSAwIDAgMTEuOSAyMTIuMiAwIDIyLjEtMjUgMjIuMyAyNSA2NC40IDAtNTQtNjAuNXpNMTM5LjMgMjY3LjljNi4xLTI2LjMgNDEuNy0yNS42IDQ2LjUgMGwtNDYuNSAwem0xNTMuNCA0OC45Yy0zNC42IDAtMzQtNjIuOCAwLTYyLjggMzIuNiAwIDM0LjUgNjIuOCAwIDYyLjh6bTE2Ny44IDE5LjFsLTk0LjQgMCAwLTE2Ni41IDk1IDAgMCAzMC4yLTU2LjEgMCAwIDMzLjkgNTUuNSAwIDAgMjguMS01Ni4xIDAgMCA0NC43IDU2LjEgMCAwIDI5LjZ6bS00NS45LTM5LjhsMC0yNC40IDU2LjEgMCAwLTQ0IDUwLjcgNTctNTAuNyA1NyAwLTQ1LjYtNTYuMSAwem0xMzguNiAxMC4zbC0yNi4xIDI5LjUtMzguMSAwIDQ1LjYtNTEuMi00NS42LTUxLjIgMzkuNyAwIDI2LjYgMjkuMyAyNS42LTI5LjMgMzguNSAwLTQ1LjQgNTEgNDYgNTEuNC00MC41IDAtMjYuMy0yOS41eiJdfSx3enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXZlcm5vdGUiLGljb246WzM4NCw1MTIsW10sImY4MzkiLCJNMTIxLjEgMTMyLjJjMS42IDIyLjMtMTcuNiAyMS42LTIxLjYgMjEuNi02OC45IDAtNzMuNi0xLTgzLjYgMy4zLS42IC4yLS43IDAtLjQtLjRMMTI0LjEgNDYuNGMuNC0uNCAuNi0uMiAuNCAuNC00LjQgMTAtMy40IDE1LjEtMy40IDg1LjR6bTc5IDMwOGMtMTQuNy0zNy4xIDEzLTc2LjkgNTIuNS03Ni42IDE3LjUgMCAyMi42IDIzLjIgNy45IDMxLjQtNi4yIDMuMy0yNC45IDEuNy0yNS4xIDE5LjIgMCAxNy4xIDE5LjcgMjUgMzEuMiAyNC45IDYgMCAxMS45LTEuMiAxNy41LTMuNXMxMC42LTUuNyAxNC44LTkuOSA3LjYtOS4zIDkuOS0xNC44IDMuNS0xMS41IDMuNS0xNy41bDAtLjFjMC0xMS42LTcuOC00Ny4yLTQ3LjUtNTUuMy03LjctMS41LTY1LTYuMy02OC40LTUwLjUtMy43IDE2LjktMTcuNCA2My41LTQzLjEgNjkuMS04LjcgMS45LTY5LjcgNy42LTExMi45LTM2LjggMCAwLTE4LjYtMTUuMi0yOC4yLTU4LTMuNC0xNS43LTkuMy0zOS43LTExLjEtNjIgMC0xOCAxMS4xLTMwLjQgMjUuMS0zMi4yIDgxIDAgOTAgMi4zIDEwMS03LjggOS44LTkuMiA3LjgtMTUuNSA3LjgtMTAyLjggMS04LjMgNy44LTMwLjggNTMuNC0yNC4xIDYgLjkgMzEuOSA0LjIgMzcuNSAzMC42TDI5MCA3NC44YzIwLjQgMy43IDcwLjkgNyA4MC42IDU3LjkgMjIuNyAxMjEuMSA4LjkgMjM4LjUgNy44IDIzOC41LTE2IDExNC40LTExMS4xIDEwOC45LTExMS4xIDEwOC45LTE5LS4yLTU0LjItOS40LTY3LjMtMzkuOGwwIDB6TTI4MSAyMzUuNGMtMSAxLjktMi4yIDYgLjkgNyAxNC4xIDQuOSAzOS44IDYuOCA0NS45IDUuNSAzLjEtLjIgMy4xLTQuNCAyLjUtNi42LTMuNS0yMS44LTQwLjgtMjYuNS00OS4yLTUuOWwwIDB6Il19LGt6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1c2IiLGljb246WzY0MCw1MTIsW10sImYyODciLCJNNjMzLjUgMjU2YzAgMy4xLTEuNyA2LjEtNC41IDcuNUw1MzkuOSAzMTdjLTEuNCAuOC0yLjggMS40LTQuNSAxLjQtMS40IDAtMy4xLS4zLTQuNS0xLjEtMi44LTEuNy00LjUtNC41LTQuNS03LjhsMC0zNS42LTIzMC43IDBjMjUuMyAzOS42IDQwLjUgMTA2LjkgNjkuNiAxMDYuOWwyNi43IDAgMC0yNi44YzAtNSAzLjktOC45IDguOS04LjlsODkuMSAwYzUgMCA4LjkgMy45IDguOSA4LjlsMCA4OS4xYzAgNS0zLjkgOC45LTguOSA4LjlsLTg5LjEgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjctMjYuNyAwYy03NS40IDAtODEuMS0xNDIuNS0xMjQuNy0xNDIuNWwtMTAwLjMgMGMtOC4xIDMwLjYtMzUuOSA1My41LTY5IDUzLjUtMzkuMy0uMS03MS4zLTMyLjEtNzEuMy03MS40czMyLTcxLjMgNzEuMy03MS4zYzMzLjEgMCA2MSAyMi44IDY5IDUzLjUgMzkuMSAwIDQzLjkgOS41IDc0LjYtNjAuNCA0MC4xLTg5LjEgNTguMS04Mi4xIDEwOC45LTgyLjEgNy41LTIwLjkgMjctMzUuNiA1MC40LTM1LjYgMjkuNSAwIDUzLjUgMjMuOSA1My41IDUzLjVzLTIzLjkgNTMuNS01My41IDUzLjVjLTIzLjQgMC00Mi45LTE0LjgtNTAuNC0zNS42bC0yOS44IDBjLTI5LjEgMC00NC4zIDY3LjQtNjkuNiAxMDYuOWwzMDIuMSAwIDAtMzUuNmMwLTMuMyAxLjctNi4xIDQuNS03LjhzNi40LTEuNCA4LjkgLjNMNjI5IDI0OC44YzIuOCAxLjEgNC41IDQuMSA0LjUgNy4yeiJdfSxTenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5ncnljcmVhdGl2ZSIsaWNvbjpbNjQwLDUxMixbXSwiZjM2ZSIsIk02NDAgMjM4LjJsLTMuMiAyOC4yLTM0LjUgMi4zLTIgMTguMSAzNC41LTIuMy0zLjIgMjguMi0zNC40IDIuMi0yLjMgMjAuMSAzNC40LTIuMi0zIDI2LjEtNjQuNyA0LjEgMTIuNy0xMTMuMi00Ny4zIDExNS40LTMxLjkgMi0yMy44LTExNy44IDMwLjMtMiAxMy42IDc5LjQgMzEuNy04Mi40IDkzLjEtNi4yek00MjYuOCAzNzEuNWwyOC4zLTEuOCAxMi45LTEyMC4xLTI4LjQgMS45LTEyLjggMTIwek0xNjIgMzg4LjFsLTE5LjQtMzYtMy41IDM3LjQtMjguMiAxLjcgMi43LTI5LjFjLTExIDE4LTMyIDM0LjMtNTYuOSAzNS44LTMyLjggMi01OS43LTIwLjktNTYuNC01OC4yIDIuNi0yOS4zIDI2LjctNjIuOCA2Ny41LTY1LjQgMzcuNy0yLjQgNDcuNiAyMy4yIDUxLjMgMjguOGwyLjgtMzAuOCAzOC45LTIuNWMyMC4xLTEuMyAzOC43IDMuNyA0Mi41IDIzLjdsMi42LTI2LjYgNjQuOC00LjItMi43IDI3LjktMzYuNCAyLjQtMS43IDE3LjkgMzYuNC0yLjMtMi43IDI3LjktMzYuNCAyLjMtMS45IDE5LjkgMzYuMy0yLjMtMi4xIDIwLjggNTUtMTE3LjIgMjMuOC0xLjYgMzIuMSAxMTAuNiA4LjktODUuNi0yMi4zIDEuNCAyLjktMjcuOSA3NS00LjktMyAyOC0yNC4zIDEuNi05LjcgOTEuOS01OCAzLjctNC4zLTE1LjYtMzkuNCAyLjUtOCAxNi4zLTEyNi4yIDcuN3ptLTQ0LjMtNzAuMmwtMjYuNCAxLjdjLTYuNy0xMi40LTE0LjQtMTYuNi0yNi4zLTE1LjgtMTkgMS4yLTMzLjMgMTcuNS0zNC42IDMzLjMtMS40IDE2IDcuMyAzMi41IDI4LjcgMzEuMiAxMi44LS44IDIxLjMtOC42IDI4LjktMTguOWwyNy0xLjcgMi43LTI5Ljh6bTU2LjEtNy43YzEuMi0xMi45LTcuNi0xMy42LTI2LjEtMTIuNEwxNDUgMzI2LjNjMTQuMi0uOSAyNy41LTIuMSAyOC44LTE2LjF6TTE5NC45IDM4MWw1LjgtNjBjLTUgMTMuNS0xNC43IDIxLjEtMjcuOSAyNi42TDE5NC45IDM4MXptMTM1LjQtNDVsLTcuOS0zNy44LTE1LjggMzkuMyAyMy43LTEuNXpNMTYwLjIgMjYxLjRsLTQuMy0xNy41LTM5LjYgMi42LTguMSAxOC4yLTMxLjkgMi4xIDU3LTEyMS45IDIzLjktMS42IDMwLjcgMTAyIDkuOS0xMDQuNyAyNy0xLjggMzcuOCA2My42IDYuNS02Ni42IDI4LjUtMS45LTQgNDEuMmM3LjQtMTMuNSAyMi45LTQ0LjcgNjMuNi00Ny41IDQwLjUtMi44IDUyLjQgMjkuMyA1My40IDMwLjNsMy4zLTMyIDM5LjMtMi43YzEyLjctLjkgMjcuOCAuMyAzNi4zIDkuN2wtNC40LTExLjkgMzIuMi0yLjIgMTIuOSA0My4yIDIzLTQ1LjcgMzEtMi4yLTQzLjYgNzguNC00LjggNDQuMy0yOC40IDEuOSA0LjgtNDQuMy0xNS44LTQzYzEgMjIuMy05LjIgNDAuMS0zMiA0OS42bDI1LjIgMzguOC0zNi40IDIuNC0xOS4yLTM2LjgtNCAzOC4zLTI4LjQgMS45IDMuMy0zMS41Yy02LjcgOS4zLTE5LjcgMzUuNC01OS42IDM4LTI2LjIgMS43LTQ1LjYtMTAuMy01NS40LTM5LjJsLTQgNDAuMy0yNSAxLjYtMzcuNi02My4zLTYuMyA2Ni4yLTU2LjggMy43em0yNzYuNi04Mi4xYzEwLjItLjcgMTcuNS0yLjEgMjEuNi00LjMgNC41LTIuNCA3LTYuNCA3LjYtMTIuMSAuNi01LjMtLjYtOC44LTMuNC0xMC40LTMuNi0yLjEtMTAuNi0yLjgtMjIuOS0ybC0yLjkgMjguOHpNMzI3LjcgMjE0YzUuNiA1LjkgMTIuNyA4LjUgMjEuMyA3LjkgNC43LS4zIDkuMS0xLjggMTMuMy00LjEgNS41LTMgMTAuNi04IDE1LjEtMTQuM2wtMzQuMiAyLjMgMi40LTIzLjkgNjMuMS00LjMgMS4yLTEyLTMxLjIgMi4xYy00LjEtMy43LTcuOC02LjYtMTEuMS04LjEtNC0xLjctOC4xLTIuOC0xMi4yLTIuNS04IC41LTE1LjMgMy42LTIyIDkuMi03LjcgNi40LTEyIDE0LjUtMTIuOSAyNC40LTEuMSA5LjYgMS40IDE3LjMgNy4yIDIzLjN6bS0yMDEuMyA4LjJsMjMuOC0xLjYtOC4zLTM3LjYtMTUuNSAzOS4yeiJdfSxfenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl6dW5pIixpY29uOls1MTIsNTEyLFtdLCJmM2NjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc2IDM1OS45Yy0zMS40IDEwLjYtNTguOCAyNy4zLTgwIDQ4LjJMOTYgMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMjMuOXpNMjk2IDM1MGMtMTIuOS0yLTI2LjItMy4xLTM5LjgtMy4xLTEzLjggMC0yNy4yIDEuMS00MC4yIDMuMWwwLTIxNGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjE0em0xMjAgNTcuN2MtMjEuMi0yMC44LTQ4LjYtMzcuNC04MC00OEwzMzYgMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyNzEuN3oiXX0sTXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Iml0Y2gtaW8iLGljb246WzUxMiw1MTIsW10sImY4M2EiLCJNNzEuOSAzNC44QzUwLjIgNDcuNyA3LjQgOTYuOCA3IDEwOS43bDAgMjEuM2MwIDI3LjEgMjUuMyA1MC44IDQ4LjIgNTAuOCAyNy42IDAgNTAuNS0yMi44IDUwLjUtNTAgMCAyNy4xIDIyLjIgNTAgNDkuOCA1MHM0OS0yMi44IDQ5LTUwYzAgMjcuMSAyMy42IDUwIDUxLjIgNTBsLjUgMGMyNy42IDAgNTEuMi0yMi44IDUxLjItNTAgMCAyNy4xIDIxLjUgNTAgNDkgNTBzNDkuOC0yMi44IDQ5LjgtNTBjMCAyNy4xIDIzIDUwIDUwLjUgNTAgMjMgMCA0OC4zLTIzLjggNDguMy01MC44bDAtMjEuM2MtLjQtMTIuOS00My4yLTYyLjEtNjQuOS03NS02Ny40LTIuMy0xMTQuMi0yLjctMTg0LTIuN1M5MS4xIDMzLjEgNzEuOSAzNC44ek0yMDQuMiAxNjkuMmMtMjIgMzguNC03Ny45IDM4LjctOTkuOCAuMi0xMy4yIDIzLjEtNDMuMiAzMi4xLTU2IDI3LjctMy45IDQwLjItMTMuNyAyMzcuMSAxNy43IDI2OS4yIDgwIDE4LjcgMzAyLjEgMTguMSAzNzkuOCAwIDMxLjYtMzIuMyAyMS4zLTIzMiAxNy43LTI2OS4yLTEyLjkgNC40LTQyLjktNC42LTU2LTI3LjctMjIgMzguNS03Ny44IDM4LjEtOTkuOC0uMi03LjEgMTIuNS0yMyAyOC45LTUxLjggMjguOS0xMC40IC4zLTIwLjgtMi4yLTI5LjktNy4zcy0xNi43LTEyLjYtMjEuOS0yMS42bDAgMHptLTQxLjYgNTMuOGMxNi41IDAgMzEuMSAwIDQ5LjIgMTkuOCAyOS4zLTMgNTguOS0zIDg4LjIgMCAxOC4yLTE5LjcgMzIuOC0xOS43IDQ5LjItMTkuNyA1Mi4zIDAgNjUuMiA3Ny41IDgzLjkgMTQ0LjQgMTcuMyA2Mi4yLTUuNSA2My43LTM0IDYzLjctNDIuMS0xLjYtNjUuNS0zMi4yLTY1LjUtNjIuOC0zOS4zIDYuNC0xMDEuOSA4LjgtMTU1LjYgMCAwIDMwLjYtMjMuMyA2MS4yLTY1LjUgNjIuOC0yOC40LS4xLTUxLjItMS42LTMzLjktNjMuNyAxOC43LTY3IDMxLjYtMTQ0LjQgODMuOS0xNDQuNGwwLS4xek0yNTYgMjcwLjhzLTQ0LjQgNDAuOC01Mi40IDU1LjJsMjktMS4yIDAgMjUuM2MwIDEuNSAyMS4zIC4yIDIzLjMgLjIgMTEuNiAuNSAyMy4zIDEgMjMuMy0uMmwwLTI1LjMgMjkgMS4yYy04LTE0LjUtNTIuNC01NS4yLTUyLjQtNTUuMmwuMSAweiJdfSx6enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2luZG93cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YSIsIk0wIDkzLjdsMTgzLjYtMjUuMyAwIDE3Ny40LTE4My42IDAgMC0xNTIuMXpNMCA0MTguM2wxODMuNiAyNS4zIDAtMTc1LjItMTgzLjYgMCAwIDE0OS45em0yMDMuOCAyOGwyNDQuMiAzMy43IDAtMjExLjYtMjQ0LjIgMCAwIDE3Ny45em0wLTM4MC42bDAgMTgwLjEgMjQ0LjIgMCAwLTIxMy44LTI0NC4yIDMzLjd6Il19LEN6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVtYmxldXBvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNCIsIk01MDIuOSAyNjZsMCA2OS43YzAgNjIuMS01MC4zIDExMi40LTExMi40IDExMi40LTYxLjggMC0xMTIuNC00OS44LTExMi40LTExMS4zbDAtNzAuMiAzNC4zIDE2IDUxLjEtMTUuMiAwIDcwLjZjMCAxNC43IDEyIDI2LjUgMjYuNyAyNi41UzQxNyAzNTIuNyA0MTcgMzM4bDAtNzIgODUuOSAwek0yNzguMiAyMDcuOGwzNC4zIDE2IDUxLjEtMTUuMiAwLTM1LjZjMC02MC41LTUxLjEtMTA5LTExMi4xLTEwOS02MC44IDAtMTEyLjEgNDguMi0xMTIuMSAxMDguMmwwIDE2Mi40YzAgMTQuOS0xMiAyNi43LTI2LjcgMjYuN1M4NiAzNDkuNSA4NiAzMzQuNmwwLTY4LjYtODYgMCAwIDY5LjdjMCA2MiA1MC4zIDExMi4zIDExMi40IDExMi4zIDYxLjYgMCAxMTIuNC00OS41IDExMi40LTExMC44bDAtMTYwLjNjMC0xNC43IDEyLTI2LjcgMjYuNy0yNi43czI2LjcgMTIgMjYuNyAyNi43bDAgMzAuOXoiXX0sTWI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlIixpY29uOls1MTIsNTEyLFtdLCJmMWEwIiwiTTUwMCAyNjEuOEM1MDAgNDAzLjMgNDAzLjEgNTA0IDI2MCA1MDQgMTIyLjggNTA0IDEyIDM5My4yIDEyIDI1NlMxMjIuOCA4IDI2MCA4YzY2LjggMCAxMjMgMjQuNSAxNjYuMyA2NC45bC02Ny41IDY0LjljLTg4LjMtODUuMi0yNTIuNS0yMS4yLTI1Mi41IDExOC4yIDAgODYuNSA2OS4xIDE1Ni42IDE1My43IDE1Ni42IDk4LjIgMCAxMzUtNzAuNCAxNDAuOC0xMDYuOWwtMTQwLjggMCAwLTg1LjMgMjM2LjEgMGMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHoiXX0sVHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvcmQiLGljb246WzU3Niw1MTIsW10sImYzOTIiLCJNNDkyLjUgNjkuOGMtLjItLjMtLjQtLjYtLjgtLjctMzguMS0xNy41LTc4LjQtMzAtMTE5LjctMzcuMS0uNC0uMS0uOCAwLTEuMSAuMXMtLjYgLjQtLjggLjhjLTUuNSA5LjktMTAuNSAyMC4yLTE0LjkgMzAuNi00NC42LTYuOC04OS45LTYuOC0xMzQuNCAwLTQuNS0xMC41LTkuNS0yMC43LTE1LjEtMzAuNi0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjItMS4xLS4yYy00MS4zIDcuMS04MS42IDE5LjYtMTE5LjcgMzcuMS0uMyAuMS0uNiAuNC0uOCAuNy03Ni4yIDExMy44LTk3LjEgMjI0LjktODYuOSAzMzQuNSAwIC4zIC4xIC41IC4yIC44cy4zIC40IC41IC42YzQ0LjQgMzIuOSA5NCA1OCAxNDYuOCA3NC4yIC40IC4xIC44IC4xIDEuMSAwcy43LS40IC45LS43YzExLjMtMTUuNCAyMS40LTMxLjggMzAtNDguOCAuMS0uMiAuMi0uNSAuMi0uOHMwLS41LS4xLS44LS4yLS41LS40LS42LS40LS4zLS43LS40Yy0xNS44LTYuMS0zMS4yLTEzLjQtNDUuOS0yMS45LS4zLS4yLS41LS40LS43LS42cy0uMy0uNi0uMy0uOSAwLS42IC4yLS45IC4zLS41IC42LS43YzMuMS0yLjMgNi4yLTQuNyA5LjEtNy4xIC4zLS4yIC42LS40IC45LS40cy43IDAgMSAuMWM5Ni4yIDQzLjkgMjAwLjQgNDMuOSAyOTUuNSAwIC4zLS4xIC43LS4yIDEtLjJzLjcgLjIgLjkgLjRjMi45IDIuNCA2IDQuOSA5LjEgNy4yIC4yIC4yIC40IC40IC42IC43cy4yIC42IC4yIC45LS4xIC42LS4zIC45LS40IC41LS42IC42Yy0xNC43IDguNi0zMCAxNS45LTQ1LjkgMjEuOC0uMiAuMS0uNSAuMi0uNyAuNHMtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjggLjEgLjUgLjIgLjhjOC44IDE3IDE4LjggMzMuMyAzMCA0OC44IC4yIC4zIC42IC42IC45IC43cy44IC4xIDEuMSAwYzUyLjktMTYuMiAxMDIuNi00MS4zIDE0Ny4xLTc0LjIgLjItLjIgLjQtLjQgLjUtLjZzLjItLjUgLjItLjhjMTIuMy0xMjYuOC0yMC41LTIzNi45LTg2LjktMzM0LjV6bS0zMDIgMjY3LjdjLTI5IDAtNTIuOC0yNi42LTUyLjgtNTkuMnMyMy40LTU5LjIgNTIuOC01OS4yYzI5LjcgMCA1My4zIDI2LjggNTIuOCA1OS4yIDAgMzIuNy0yMy40IDU5LjItNTIuOCA1OS4yem0xOTUuNCAwYy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuMiA1OS4yLTUyLjggNTkuMnoiXX0sJHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFtdLCJmMWQ0IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTIxLjIgMjI5LjJsLS4yIDBjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40em0yMTggNTMuOWwwIDEwMC45LTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzUyLjUgOTguMyA0OS4yIDEwMS4yIDU5LjMgMTI1LjYgMTIuMy0yNyA1LjgtMjQuNCA2MC42LTEyNS42bDM0LjggMC04MC44IDE1NS4xeiJdfSxUOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxldmVudHkiLGljb246WzY0MCw1MTIsWyIxMXR5Il0sImU3ZDYiLCJNNjE1LjMgMTY4LjVjMi4zIDAgNC42IC43IDYuNiAyLjIgMS45IDEuNCAzLjEgMy4zIDMuOCA1IDEuNCAzLjMgMS44IDcuMyAxLjggMTEuMyAwIDIuMi0uMyA0LjktLjcgNy42bDAgLjQtNTAuOSAyNjQuOSAwIDBjLTQgMjIuMS04LjUgMzkuNC0xMy42IDUxLjctNSAxMi4xLTEwLjkgMjEuNi0xOC42IDI3bDAgMGMtNy41IDUuMy0xNi45IDcuNy0yNy42IDhsLTMgMGMtMTYgMC0yOS4zLTQuMi0zNi45LTE0LjgtLjEtLjEtLjEtLjEtLjItLjItLjEtLjItLjMtLjQtLjUtLjZsMCAwYy0xLjgtMi40LTIuNS01LjItMi45LTcuNC0uNS0yLjgtLjctNi4xLS43LTkuOCAwLTcuMyAuNi0xMy41IDIuMS0xOC4yIDEuNC00LjQgNC44LTEwLjQgMTIuMi0xMC40bDEuMyAuMWMuMiAwIC40IC4xIC41IC4xIC4zIC4xIC42IC4xIC44IC4yIC42IC4xIDEuMyAuMyAyLjIgLjZsNy42IDIuMiAuMSAwIDcuNiAyLjFjLjkgLjIgMS43IC40IDIuMiAuNSAuNCAuMSAuNiAuMSAuNyAuMSAwIDAgLjEgMCAuMi0uMSAuMS0uMSAuNC0uMiAuOC0uNiAuOS0uOSAyLjItMi42IDMuNi01LjcgMi42LTUuOCA0LjItMTQuNyA0LjItMjcuNCAwLS43LS4zLTMuNC0xLjMtOC45LS45LTUuMS0yLjMtMTIuMi00LjItMjEuMWwtNTYtMjMyLjktLjEtLjQgMC0uM2MtLjQtMi43LS43LTUuMy0uNy03LjMgMC0zLjcgLjQtNy41IDEuNy0xMC42IC43LTEuNiAxLjgtMy40IDMuNS00LjkgMS45LTEuNSA0LjItMi4zIDYuNS0yLjNsMzQuNiAwYzQuNiAwIDguNyAxLjcgMTEuOSA1bDEuMyAxLjVjMS4yIDEuNiAyIDMuNCAyLjcgNS4yIC45IDIuNCAxLjUgNS4xIDIgOC4xbDMwLjQgMTYxLjIgMjMuOC0xNjBjLjgtNS44IDIuMi0xMS40IDUuMS0xNS4xIDMtMy44IDcuMi01LjggMTItNS44bDI0IDB6TTM3NS4xIDM0LjZjMi42IDAgNS4xIC43IDcuNCAyLjMgMi4yIDEuNSAzLjcgMy42IDQuNyA1LjcgMS45IDQgMi41IDkuMSAyLjUgMTQuNWwwIDExMS4yYzAgLjEgMCAuMiAwIC4zbDMyLjQgMGMyLjUgMCA1IC42IDcuMiAyLjEgMi4yIDEuNCAzLjcgMy40IDQuOCA1LjUgMiAzLjkgMi42IDguOCAyLjYgMTMuOWwwIDE1LjRjMCA1LS42IDkuOC0yLjYgMTMuNy0xLjEgMi0yLjYgNC00LjggNS40LTIuMiAxLjQtNC43IDItNy4xIDJsLTMyLjUgMCAwIDE0NS44YzAgMTAuOCAuNyAxOS41IDIgMjYuMiAxLjQgNi45IDMuMSAxMC45IDQuNyAxMi45IDEuMiAxLjUgMi4yIDIuNSAzLjEgMy4ybDIuMiAxLjQgLjEgLjEgMi45IC44YzEuMiAuMiAyLjYgLjMgNC4zIC4zbDIwLjMgMGM0LjUgMCA4LjkgMS43IDExLjggNS44IDIuNiAzLjYgMy4zIDguMSAzLjMgMTIuMmwwIDE3LjJjMCA0LjUtLjggOS4zLTMuNCAxMy4xLTMgNC4yLTcuNSA2LTEyLjMgNmwwIDAtMjkuMSAuMWMtOCAwLTE1LS42LTIxLjItMS43LTYuNy0xLjMtMTMuNC00LjEtMjAuMS04LjEtNy4yLTQuNC0xMy0xMC4zLTE3LjUtMTcuOC00LjUtNy41LTcuOS0xNy41LTEwLjUtMjkuNS0yLjYtMTIuMi0zLjktMjYuNi0zLjktNDNsMC0xNDQuOS0xMy40IDBjLTIuNCAwLTQuOS0uNi03LjEtMi0yLjItMS40LTMuNy0zLjQtNC44LTUuNC0yLTMuOS0yLjYtOC43LTIuNi0xMy43bDAtMTUuNGMwLTUuMSAuNi0xMCAyLjYtMTMuOSAxLjEtMi4xIDIuNi00IDQuOC01LjUgMi4yLTEuNSA0LjctMi4xIDcuMi0yLjFsMTMuNCAwIDAtLjYgNS4yLTExMS4yIDAtLjEgLjMtMy45Yy41LTMuOCAxLjMtNy40IDIuNy0xMC4zIDIuMS00LjIgNi03LjkgMTEuOC03LjlsMjguNiAwem0tMjY4IDExLjdjMS44IC4zIDMuNiAuOSA1LjMgMi4xIDIuMSAxLjUgMy41IDMuNSA0LjQgNS40IDEuNyAzLjcgMi4zIDguNCAyLjMgMTMuMmwwIDM3Ny44YzAgNi43LS42IDEyLjYtMi40IDE3LjEtLjkgMi4zLTIuMyA0LjctNC40IDYuNS0yLjMgMi01LjEgMy04LjEgM2wtNDMuNyAwYy0zIDAtNS44LTEuMS04LjEtMy4xLTIuMS0xLjktMy40LTQuMy00LjItNi41LTEuNy00LjUtMi4zLTEwLjMtMi4zLTE3bDAtMzE1LjhjLTQuOCAxLjItOC43IDIuMi0xMS41IDIuOS0xLjkgLjUtMy40IC44LTQuNCAxLjEtLjUgLjEtLjkgLjItMS4yIC4zLS4xIDAtLjMgLjEtLjUgLjEtLjEgMC0uMiAwLS4zIC4xIDAgMC0uMiAwLS4zIDAgMCAwLS4yIDAtLjQgMGwwIDBjLS4xIDAtLjMgMC0uNCAwLS4xIDAtLjIgMC0uMiAwLTIuMiAuMS00LjUtLjQtNi42LTEuNy0yLjMtMS40LTMuOC0zLjQtNC43LTUuMy0xLjgtMy43LTIuMy04LjQtMi4zLTEzbDAtMjcuNGMwLTQuNCAuNy04LjggMi42LTEyLjQgMi4xLTMuOSA1LjUtNi42IDkuOC03LjZsNzUuNS0xOS41YzEuNC0uNCAyLjktLjUgNC40LS41bDEuOCAuMXptMTQzLjgtLjVjMS44IC4zIDMuNiAuOSA1LjIgMi4xIDIuMSAxLjUgMy41IDMuNSA0LjQgNS40IDEuNyAzLjcgMi4yIDguNCAyLjIgMTMuMmwwIDM3Ny44YzAgNi43LS42IDEyLjYtMi40IDE3LjEtLjkgMi4zLTIuMyA0LjctNC40IDYuNS0yLjMgMi01LjEgMy04LjEgM2wtNDMuNyAwYy0zIDAtNS44LTEuMS04LjEtMy4xLTIuMS0xLjktMy40LTQuMy00LjItNi41LTEuNy00LjUtMi4zLTEwLjMtMi4zLTE3bDAtMzE1LjhjLTQuOCAxLjItOC43IDIuMi0xMS41IDIuOS0xLjkgLjUtMy40IC44LTQuNCAxLjEtLjUgLjEtLjkgLjItMS4yIC4zLS4xIDAtLjMgLjEtLjUgLjEtLjEgMC0uMiAwLS4zIC4xLS4xIDAtLjIgMC0uMyAwIDAgMC0uMiAwLS40IDBsMCAwYy0uMSAwLS4yIDAtLjMgMC0uMSAwLS4yIDAtLjMgMC0yLjIgLjEtNC41LS40LTYuNi0xLjctMi4zLTEuNC0zLjgtMy40LTQuNy01LjMtMS44LTMuNy0yLjMtOC4zLTIuMy0xM2wwLTI3LjRjMC00LjQgLjctOC43IDIuNi0xMi40IDIuMS0zLjkgNS41LTYuNiA5LjgtNy42bDc1LjQtMTkuNGMxLjQtLjQgMi45LS41IDQuNC0uNWwxLjggLjF6Il19LER6dD1UOGUsTHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlYW1zcGVhayIsaWNvbjpbNTc2LDUxMixbXSwiZjRmOSIsIk0xNTIuOCAzNy4yYy0zMi4yIDM4LjEtNTYuMSA4Mi42LTY5LjkgMTMwLjUgMCAuMi0uMSAuMy0uMSAuNS0zOS4zIDE2LjItNjYuOCA1NC44LTY2LjggOTkuOCAwIDU5LjYgNDguNCAxMDggMTA4IDEwOHMxMDgtNDguNCAxMDgtMTA4YzAtNTMuNS0zOC45LTk3LjktOTAtMTA2LjUgMTUuNy00MS44IDQwLjQtNzkuNiA3Mi4zLTExMC43IDEuOC0xLjYgNC0yLjYgNi4zLTMuMSAzNy4yLTExLjUgNzYuNy0xMy4zIDExNC44LTUuMiAxMTkuMyAyNS4xIDE5OC42IDEzOC4yIDE4MS43IDI1OC44LTguNCA2Mi42LTM4LjYgMTEyLjctODcuNyAxNTEuNC01MC4xIDM5LjctMTA3LjUgNTQuMy0xNzAuMiA1Mi4ybC0yNC0xYzEyLjQgMi44IDI1IDQuOSAzNy42IDYuMyA0MC43IDQuMiA4MS40IDIuMSAxMjAuMS0xMi41IDk0LTM1LjUgMTQ5LjMtMTAyLjMgMTYyLjktMjAyLjUgNC44LTUyLjYtNS44LTEwNS40LTMwLjgtMTUyLTcwLjQtMTMxLjktMjM0LjItMTgxLjYtMzY2LTExMS4yLTIuNCAxLjQtNC41IDMuMS02LjMgNS4ybC4xIDB6TTMwOS40IDQzMy45Yy0yLjEgMTEuNS00LjIgMjEuOS0xNC42IDMxLjMgNTMuMi0xIDEyMy4yLTI5LjIgMTYxLjgtOTcuMSAzOS43LTY5LjkgMzcuNi0xMzkuOS02LjMtMjA3LjgtMzYuNS01NS4zLTg5LjgtODIuNC0xNTYuNi04Ni42IDEuNSAyLjMgMy4yIDQuNCA1LjIgNi4zbDUuMiA2LjNjMjUuMSAzMS4zIDM3LjYgNjcuOSA0Mi44IDEwNy41IDIuMSAxNS43LTEgMzAuMy0xMy42IDQxLjgtNC4yIDMuMS01LjIgNi4zLTQuMiAxMC40bDcuMyAxNy43IDI5LjMgNTQuM2M1LjIgMTEuNSA0LjIgMTkuOC02LjMgMjguMi0zLjIgMi41LTYuNyA0LjYtMTAuNCA2LjNsLTE4LjggOC40IDMuMSAxMy42YzMuMSA2LjMgMSAxMi41LTMuMSAxNy43LTIuNSAyLjQtMy44IDUuOS0zLjEgOS40IDIuMSAxMS41LTIuMSAxOS44LTEyLjUgMjUuMS0yLjEgMS00LjIgNS4yLTUuMiA3LjNsMC0uMXptLTEzMy42LTMuMWMxNi43IDExLjUgMzQuNSAyMC45IDUzLjIgMjYuMSAyNCA1LjIgNDEuOC02LjMgNDQuOS0zMC4zIDEtOC40IDUuMi0xNC42IDEyLjUtMTcuNyA3LjMtNC4yIDguNC03LjMgMi4xLTEzLjZsLTkuNC04LjQgMTMuNi00LjJjNi4zLTIuMSA3LjMtNS4yIDUuMi0xMS41LTEuNC0zLTIuNC02LjItMy4xLTkuNC0zLjEtMTQuNi0yLjEtMTUuNyAxMS41LTE4LjggOC40LTMuMSAxNS43LTYuMyAyMS45LTEyLjUgMy4xLTIuMSAzLjEtNC4yIDEtOC40bC0xNi43LTMwLjNjLTEtMS45LTIuMS0zLjgtMy4xLTUuNy02LjQtMTEuNy0xMy0yMy42LTE1LjctMzcuMS0yLjEtOS40LTEtMTcuNyA4LjQtMjQgNS4yLTQuMiA4LjQtOS40IDguNC0xNi43LS40LTEwLjEtMS41LTIwLjMtMy4xLTMwLjMtNi4zLTM3LjYtMjMtNjguOS01MS4yLTk1LTUuMi00LjItOS40LTYuMy0xNi43LTQuMmwtMzUuNiAxMi43IDYgMy42YzYuMyAzLjcgMTIuMiA3LjMgMTcgMTIuMSAzMC4zIDI2LjEgNDEuOCA2MS42IDQ1LjkgMTAwLjIgMSA4LjQgMCAxNi43LTcuMyAyMS45LTguNCA1LjItMTAuNCAxMi41LTcuMyAyMC45IDQuOSAxMy4yIDEwLjQgMjYgMTYuNyAzOC42TDI5MS42IDMxOGMtNi4zIDguNC0xMy42IDExLjUtMjEuOSAxNC42LTEyLjUgMy4xLTE0LjYgNy4zLTEwLjQgMjAuOSAuNiAxLjUgMS40IDIuOCAyLjEgNC4yIDIuMSA1LjIgMSA4LjQtNC4yIDEwLjRsLTEyLjUgMy4xIDUuMiA0LjIgNC4yIDQuMmM0LjIgNS4yIDQuMiA4LjQtMi4xIDEwLjQtNy4zIDQuMi0xMS41IDkuNC0xMS41IDE3LjcgMCAxMi41LTcuMyAxOS44LTE4LjggMjQtMy44IDEtNy42IDEuNS0xMS41IDFsLTM0LjUtMi4xIC4xIC4yeiJdfSxFenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VwcGxlIixpY29uOls2NDAsNTEyLFtdLCJmM2Y5IiwiTTY0MCAyNjIuNWMwIDY0LjEtMTA5IDExNi4xLTI0My41IDExNi4xLTI0LjggMC00OC42LTEuOC03MS4xLTUgNy43IC40IDE1LjUgLjYgMjMuNCAuNiAxMzQuNSAwIDI0My41LTU2LjkgMjQzLjUtMTI3LjEgMC0yOS40LTE5LjEtNTYuNC01MS4yLTc4IDYwIDIxLjEgOTguOSA1NS4xIDk4LjkgOTMuNHpNNDcuNyAyMjcuOWMtLjEtNzAuMiAxMDguOC0xMjcuMyAyNDMuMy0xMjcuNiA3LjkgMCAxNS42IC4yIDIzLjMgLjUtMjIuNS0zLjItNDYuMy00LjktNzEtNC45LTEzNC41IC40LTI0My40IDUyLjYtMjQzLjMgMTE2LjcgLjEgMzguMyAzOS4xIDcyLjMgOTkuMyA5My4zLTMyLjMtMjEuNS01MS41LTQ4LjYtNTEuNi03OHptNjAuMiAzOS45UzExOC40IDI4MSAxMzcuMiAyODFjMTcuOSAwIDI4LjQtMTEuNSAyOC40LTI1LjEgMC0yOC00MC4yLTI1LjEtNDAuMi0zOS43IDAtNS40IDUuMy05LjEgMTIuNS05LjEgNS43IDAgMTEuMyAyLjYgMTEuMyA2LjZsMCAzLjkgMTQuMiAwIDAtNy45YzAtMTIuMS0xNS40LTE2LjgtMjUuNC0xNi44LTE2LjUgMC0yOC41IDEwLjItMjguNSAyNC4xIDAgMjYuNiA0MC4yIDI1LjQgNDAuMiAzOS45IDAgNi42LTUuOCAxMC4xLTEyLjMgMTAuMS0xMS45IDAtMjAuNy0xMC4xLTIwLjctMTAuMWwtOC44IDEwLjl6bTEyMC44LTczLjZsMCA1NC40YzAgMTEuMy03LjEgMTcuOC0xNy44IDE3LjhzLTE3LjgtNi41LTE3LjgtMTcuN2wwLTU0LjUtMTUuOCAwIDAgNTVjMCAxOC45IDEzLjQgMzEuOSAzMy43IDMxLjkgMjAuMSAwIDMzLjQtMTMgMzMuNC0zMS45bDAtNTUtMTUuNyAwem0zNC40IDg1LjRsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjgtNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNS4xIDE0LjctMTQgMTQuN2wtMTIuNiAwem01NyA0M2wxNS44IDAgMC0yOS41IDE1LjUgMGMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhsLTM5LjEgMCAwIDEzLjQgNy44IDAgMCA3MnptMTUuNy00M2wwLTI5LjEgMTIuOSAwYzguNyAwIDEzLjcgNS43IDEzLjcgMTQuNCAwIDguOS01IDE0LjctMTQgMTQuN2wtMTIuNiAwem01Ny4xIDM0LjhjMCA1LjggMi40IDguMiA4LjIgOC4ybDM3LjYgMGM1LjggMCA4LjItMi40IDguMi04LjJsMC0xMy0xNC4zIDAgMCA1LjJjMCAxLjctMSAyLjYtMi42IDIuNmwtMTguNiAwYy0xLjcgMC0yLjYtMS0yLjYtMi42bDAtNjEuMmMwLTUuNy0yLjQtOC4yLTguMi04LjJsLTE1LjQgMCAwIDEzLjQgNS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDYxLjItLjEgMHptNjMuNCAwYzAgNS44IDIuNCA4LjIgOC4yIDguMmwzOC43IDBjNS43IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE5LjcgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTIwLjMgMjcuNyAwIDAtMTMuNC0yNy43IDAgMC0yMi40IDE5LjIgMGMxLjcgMCAyLjYgMSAyLjYgMi42bDAgNS4yIDE0LjIgMCAwLTEzYzAtNS43LTIuNS04LjItOC4yLTguMmwtNTEuNiAwIDAgMTMuNCA3LjggMCAwIDYzLjkgLjEgMHptNTguOS03NmwwIDUuOSAxLjYgMCAwLTUuOSAyLjcgMCAwLTEuMi03IDAgMCAxLjIgMi43IDB6bTUuNy0xLjJsMCA3LjEgMS41IDAgMC01LjcgMi4zIDUuNyAxLjMgMCAyLjMtNS43IDAgNS43IDEuNSAwIDAtNy4xLTIuMyAwLTIuMSA1LjEtMi4xLTUuMS0yLjQgMHoiXX0sJDhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10d2l0dGVyIixpY29uOls0NDgsNTEyLFsidHdpdHRlci1zcXVhcmUiXSwiZjA4MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNTEuMyAxOTkuM2MwIDg2LjctNjYgMTg2LjYtMTg2LjYgMTg2LjYtMzcuMiAwLTcxLjctMTAuOC0xMDAuNy0yOS40IDUuMyAuNiAxMC40IC44IDE1LjggLjggMzAuNyAwIDU4LjktMTAuNCA4MS40LTI4LTI4LjgtLjYtNTMtMTkuNS02MS4zLTQ1LjUgMTAuMSAxLjUgMTkuMiAxLjUgMjkuNi0xLjItMzAtNi4xLTUyLjUtMzIuNS01Mi41LTY0LjRsMC0uOGM4LjcgNC45IDE4LjkgNy45IDI5LjYgOC4zLTktNi0xNi40LTE0LjEtMjEuNS0yMy42cy03LjgtMjAuMi03LjctMzFjMC0xMi4yIDMuMi0yMy40IDguOS0zMy4xIDMyLjMgMzkuOCA4MC44IDY1LjggMTM1LjIgNjguNi05LjMtNDQuNSAyNC04MC42IDY0LTgwLjYgMTguOSAwIDM1LjkgNy45IDQ3LjkgMjAuNyAxNC44LTIuOCAyOS04LjMgNDEuNi0xNS44LTQuOSAxNS4yLTE1LjIgMjgtMjguOCAzNi4xIDEzLjItMS40IDI2LTUuMSAzNy44LTEwLjItOC45IDEzLjEtMjAuMSAyNC43LTMyLjkgMzQgLjIgMi44IC4yIDUuNyAuMiA4LjV6Il19LFB6dD0kOGUsSXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbSIsaWNvbjpbNTEyLDUxMixbXSwiZTg4YSIsIk0zMDMuMyA1NC41bDAtMTIuMyA0LTMuNyA3LjktNy4yIDMuNS0zLjIgMTY4IDAgMTUuMSAxNS4xIDAgMzguOS0zLjUgMy42LTgwLjkgODIuOSA4Ni45IDg2LjktOTEuMiA5MS4yIDguOSAwIDcuNi04LjMgMS0uOWMxLjEtLjggMi41LTEuMiAzLjktMS4ybDI4LjkgMCAxLjUgLjJjMS41IC40IDIuOCAxLjIgMy44IDIuNWw3LjYgMTAuMmMxLjMgMS43IDEuNiAzLjkgMSA1LjlsLTIyLjMgNzIuNSAxLjIgMGMyLjIgMCA0LjIgMS4xIDUuNSAyLjlzMS41IDQuMSAuNyA2LjFMNDU5IDQ0NWMtMSAyLjYtMy40IDQuMi02LjIgNC4ybC00MC40IDBjLTIuMSAwLTQuMS0xLTUuMy0yLjdzLTEuNi0zLjktMS01LjlsMjAtNjMuMi0yMi4yIDAtMTYuMiA1MC43YzIuMSAuMSA0LjEgMS4xIDUuMyAyLjkgMS4yIDEuOCAxLjQgNC4yIC42IDYuMmwtMy4zIDcuOWMtMSAyLjUtMy41IDQuMS02LjEgNC4xbC0zNi44IDBjLTIuMSAwLTQuMS0xLTUuNC0yLjdzLTEuNi0zLjktMS01LjlsMTAtMzIuMS0yMy45IDIzLjhjLjMgMS4yIC4zIDIuNS0uMSAzLjhsLTIuOSA4LjZjLS45IDIuNy0zLjQgNC41LTYuMyA0LjVsLTcuNCAwLTU0LjYgNTQuNi04My44LTgzLjgtMzEuNiAzMi41LTMuNiAzLjctNDkuMiAwLTIuOC0xLjdjLTguOC01LjEtMTQuOC04LjUtMTcuOS0xMC4zbDAtMTI5LjMtNTguNS01OC41IDIuNi0yLjYgNTUuOS01NiAwLTk5LjQtMTIuNiAwLTEwLjgtMTAuOC0zLjYtMy42IDAtNDAuNyAzLjItMy41IDcuOS04LjUgMy43LTMuOSAxNjYuNiAwIDggOCAyNy40LTI3LjQgNDYuNCA0Ni40em0tMjUxLTUuNmwwIDMwLjMgOS40IDcuOCAxOC45IDAgMCAzNDcuOSAxMS40IDEwLjMgMzguMiAwIDkxLTkzYzAtLjQgLjEtLjggLjItMS4xbDIuNi0xMC41Yy43LTIuOSAzLjQtNSA2LjQtNWw3LjEgMCAxNS41LTE1LjktMi0yYy0xLjgtMS44LTIuNC00LjUtMS41LTYuOWw2LjktMTkuM2MuNC0xLjEgMS4xLTIgMS45LTIuOGw2LjktNS45YzEuMi0xIDIuOC0xLjYgNC4zLTEuNmwxOS43IDAgMS4zIC4yYy4xIDAgLjEgLjEgLjIgLjFsMTk5LjItMjAzLjUgMC0yOC43LTguMi03LjQtMTU2LjIgMC03LjggNy44IDAgMzAuNSA4LjIgNy40IDIxIDAtMTQ3IDE0Ni40IDAtMTQ2LjYgMTYuOSAwIDguNy04LjcgMC0yNy43LTcuNC05LjktMTU3LjYgMC04IDh6TTIyNy42IDM1Mi43bDE0LjggMC0zMS44IDkwLjkgNDUuMyAwIDMtOS42LTEyLjUgMCAzMS41LTkxLjktNDcuNiAwLTIuNiAxMC41em0xMzYuOSAxbC0xNi40IDAtMTAuNS0xMC44LTM1LjggMC0zLjMgOS44IDExLjggMC0zMC41IDg5LjkgMzguMSAwIDIuOS04LjYtOC44IDAgMjAtNjMgMzcuOCAwLTIyLjMgNzEuNiAzNi44IDAgMy4zLTcuOS04LjggMCAyMC4zLTY0IDM2LjEgMC0yMi43IDcxLjkgNDAuNCAwIDMuMy04LjYtMTAuMiAwIDI1LTgxLjEtNy41LTEwLjItMjguOSAwLTkuNSAxMC41LTE3LjQgMC05LjktMTAuOC0yMy4zIDAtOS44IDExLjJ6TTI2Mi41IDI5My42bC02LjkgMTkuMyA1LjMgNS4zIDIxLjMgMCA1LjYtNS42IDUuOS0yMC4zLTQuNi00LjYtMTkuNyAwLTYuOSA1Ljl6Il19LFlyZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0sQXp0PVlyZSxOenQ9WXJlLEQ4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXJzaW5kaGFuZHdlcmsiLGljb246WzQ0OCw1MTIsWyJ3c2giXSwiZTJkMCIsIk0xOC45IDQ3OS44bDgzLjQgMCAwLTExMi04My40IDQ3IDAgNjV6bTMyOSAwbDgyLjQgMCAwLTY1LTgyLjQtNDcgMCAxMTJ6bTAtNDQ4bDAgMjE5LjgtMTIzLjYtNzIuNC0xMjEuNyA3Mi40IDAtMjE5LjgtODMuNyAwIDAgMzYwLjggMjA1LjQtMTIyLjMgMjA2IDEyMi4zIDAtMzYwLjgtODIuMyAweiJdfSxSenQ9RDhlLE96dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ6b29tIixpY29uOls2NDAsNTEyLFtdLCJlODdiIiwiTTEzNC4yIDMyNi42bC0xMTQuNCAwYy04IDAtMTUuMi00LjgtMTguMy0xMi4yUy4xIDI5OC42IDUuOCAyOTIuOWw3OS4zLTc5LjMtNTYuOCAwQzEyLjcgMjEzLjYgMCAyMDEgMCAxODUuNGwxMDUuNSAwYzggMCAxNS4yIDQuOCAxOC4zIDEyLjJzMS40IDE1LjktNC4zIDIxLjZsLTc5LjMgNzkuMyA2NS43IDBjMTUuNiAwIDI4LjMgMTIuNiAyOC4zIDI4LjN6TTY0MCAyMzguM2MwLTMwLjQtMjQuNy01NS4xLTU1LjEtNTUuMS0xNi4yIDAtMzAuOSA3LjEtNDEgMTguMy0xMC4xLTExLjItMjQuNy0xOC4zLTQxLTE4LjMtMzAuNCAwLTU1LjEgMjQuNy01NS4xIDU1LjFsMCA4OC4zYzE1LjYgMCAyOC4zLTEyLjcgMjguMy0yOC4zbDAtNjBjMC0xNC44IDEyLTI2LjggMjYuOC0yNi44czI2LjggMTIgMjYuOCAyNi44bDAgNjBjMCAxNS42IDEyLjYgMjguMyAyOC4zIDI4LjNsMC04OC4zYzAtMTQuOCAxMi0yNi44IDI2LjgtMjYuOHMyNi44IDEyIDI2LjggMjYuOGwwIDYwYzAgMTUuNiAxMi42IDI4LjMgMjguMyAyOC4zbDAtODguM3pNMjg4LjIgMjU2YTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6bS0yNzQuMSAwYTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6Il19LEZ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25mbHVlbmNlIixpY29uOls1MTIsNTEyLFtdLCJmNzhkIiwiTTIuOCA0MTIuMmMtNC41IDcuNi0yLjEgMTcuNSA1LjUgMjIuMmwxMDUuOSA2NS4yYzcuNyA0LjcgMTcuNyAyLjQgMjIuNC01LjMgMC0uMSAuMS0uMiAuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjggLjQgMjEuNy03LjcgLjEtLjEgLjEtLjMgLjItLjRsNTAuNC0xMTQuMWMzLjYtOC4xLS4xLTE3LjYtOC4xLTIxLjMtMjIuMi0xMC40LTY2LjItMzEuMi0xMDUuOS01MC4zLTI0Ny45LTEyMC42LTMzMC44IDQ1LjctMzczLjEgMTEyLjZ6TTUxMC4yIDEwMC4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjkgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIgLjMtLjQgLjYtLjYgMS02Ny4zIDExMi42LTgxLjEgOTUuNi0yODAuNiAuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEgLjEtLjEgLjMtLjIgLjRMMjIuNyAxNDEuM2MtMy42IDguMSAuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45eiJdfSxCenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNiIsIk04MS43IDE3Mi4zbC04MS43IDAgMCAxNzQuNCAxMzIuNyAwIDAtMjUwLjctNTEgMCAwIDc2LjN6bTAgMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3pNMzc4LjkgMTcyLjNsMCAxNzQuNCA4MS44IDAgMCAyOC41LTgxLjggMCAwIDQwLjggMTMzLjEgMCAwLTI0My43LTEzMy4xIDB6bTgxLjggMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3ptLTIzNS42IDQxbDgyLjEgMCAwIDI4LjUtODIuMSAwIDAgNDAuOCAxMzMuMyAwIDAtMjQzLjctMTMzLjMgMCAwIDE3NC40em01MS4yLTEzMy4zbDMwLjggMCAwIDkyLjMtMzAuOCAwIDAtOTIuM3pNMTUzLjMgOTZsNTEuMyAwIDAgNTEtNTEuMyAwIDAtNTF6bTAgNzYuM2w1MS4zIDAgMCAxNzQuNC01MS4zIDAgMC0xNzQuNHoiXX0sSHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTgiLCJNMzMxLjUgMjM1LjdjMi4yIC45IDQuMiAxLjkgNi4zIDIuOCAyOS4yIDE0LjEgNTAuNiAzNS4yIDYxLjggNjEuNCAxNS43IDM2LjUgMTcuMiA5NS44LTMwLjMgMTQzLjItMzYuMiAzNi4yLTgwLjMgNTIuNS0xNDIuNiA1M2wtLjMgMGMtNzAuMi0uNS0xMjQuMS0yNC4xLTE2MC40LTcwLjItMzIuMy00MS00OC45LTk4LjEtNDkuNS0xNjkuNmwwLS41QzE3IDE4NC4zIDMzLjYgMTI3LjIgNjUuOSA4Ni4yIDEwMi4yIDQwLjEgMTU2LjIgMTYuNSAyMjYuNCAxNmwuMyAwYzcwLjMgLjUgMTI0LjkgMjQgMTYyLjMgNjkuOSAxOC40IDIyLjcgMzIgNTAgNDAuNiA4MS43bC00MC40IDEwLjhjLTcuMS0yNS44LTE3LjgtNDcuOC0zMi4yLTY1LjQtMjkuMi0zNS44LTczLTU0LjItMTMwLjUtNTQuNi01NyAuNS0xMDAuMSAxOC44LTEyOC4yIDU0LjQtMjYuMiAzMy4zLTM5LjggODEuNS00MC4zIDE0My4yIC41IDYxLjcgMTQuMSAxMDkuOSA0MC4zIDE0My4zIDI4IDM1LjYgNzEuMiA1My45IDEyOC4yIDU0LjQgNTEuNC0uNCA4NS40LTEyLjYgMTEzLjctNDAuOSAzMi4zLTMyLjIgMzEuNy03MS44IDIxLjQtOTUuOS02LjEtMTQuMi0xNy4xLTI2LTMxLjktMzQuOS0zLjcgMjYuOS0xMS44IDQ4LjMtMjQuNyA2NC44LTE3LjEgMjEuOC00MS40IDMzLjYtNzIuNyAzNS4zLTIzLjYgMS4zLTQ2LjMtNC40LTYzLjktMTYtMjAuOC0xMy44LTMzLTM0LjgtMzQuMy01OS4zLTIuNS00OC4zIDM1LjctODMgOTUuMi04Ni40IDIxLjEtMS4yIDQwLjktLjMgNTkuMiAyLjgtMi40LTE0LjgtNy4zLTI2LjYtMTQuNi0zNS4yLTEwLTExLjctMjUuNi0xNy43LTQ2LjItMTcuOGwtLjcgMGMtMTYuNiAwLTM5IDQuNi01My4zIDI2LjNsLTM0LjQtMjMuNmMxOS4yLTI5LjEgNTAuMy00NS4xIDg3LjgtNDUuMWwuOCAwYzYyLjYgLjQgOTkuOSAzOS41IDEwMy43IDEwNy43bC0uMiAuMiAuMSAwem0tMTU2IDY4LjhjMS4zIDI1LjEgMjguNCAzNi44IDU0LjYgMzUuMyAyNS42LTEuNCA1NC42LTExLjQgNTkuNS03My4yLTEzLjItMi45LTI3LjgtNC40LTQzLjQtNC40LTQuOCAwLTkuNiAuMS0xNC40IC40LTQyLjkgMi40LTU3LjIgMjMuMi01Ni4yIDQxLjhsLS4xIC4xeiJdfSxMOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3ByZXNzciIsaWNvbjpbNTEyLDUxMixbInJlbmRhY3QiXSwiZjNlNCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQyNy4zIDE2Ni42Yy0xNS4yIDM0LjUtMzAuNCA2OS00NS42IDEwMy41LTIuNCA1LjUtNi45IDguMi0xMyA4LjItMjMgMC00NiAuMS02OSAwLTUuMSAwLTguMiAxLjktMTAuMyA2LjctMTAuMiAyMy42LTIwLjYgNDctMzEgNzAuNS0xLjUgMy41LTQuMSA1LjMtNy45IDUuMy00NS45IDAtOTEuOSAwLTEzNy44IDAtMy4xIDAtNS42LTEuMS03LjctMy40LTExLjItMTIuMy0yMi41LTI0LjYtMzMuNy0zNi45LTIuNy0zLTIuOC02LjItMS4yLTkuNyA4LjctMTkuNSAxNy4zLTM5LjEgMjUuOS01OC43IDEyLjktMjkuNCAyNS45LTU4LjcgMzguNy04OC4xIDEuNy0zLjkgNC4zLTUuNyA4LjUtNS43IDE0LjIgLjEgMjguNSAwIDQyLjcgMCA2LjIgMCA5LjIgNC44IDYuNyAxMC42LTEzLjYgMzAuOC0yNy4yIDYxLjYtNDAuNyA5Mi4zLTUuNyAxMy0xMS40IDI2LTE3LjEgMzktMy45IDkgNy4xIDEyIDExIDUuNiAuMi0uNC0xLjQgNC4yIDMwLTY3LjcgMS40LTMuMSAzLjQtNC40IDYuOC00LjQgMTUuMiAuMSAzMC40IDAgNDUuNiAwIDUuNiAwIDcuOSAzLjYgNS43IDguNy04LjMgMTktMTYuNyAzNy45LTI1IDU2LjktNSAxMS40IDguMSAxMi41IDExLjMgNS4zIDAtLjEgMjcuOS02My4zIDMyLjItNzMuMiAyLTQuNiA1LjQtNi41IDEwLjMtNi41IDI2LjQgLjEgNTIuOSAwIDc5LjMgMCAxMi40IDAgMTMuOS0xMy42IDMuOS0xMy42LTI1LjMgMC01MC41IDAtNzUuOCAwLTYuMyAwLTcuOC0yLjUtNS4zLTguMyA1LjgtMTMuMSAxMS42LTI2LjEgMTcuMy0zOS4yIDEuNy00IDQuNS01LjggOC44LTUuOCAyMy4xIC4xIDI2IDAgMTMwLjggMCA2LjEgMCA4IDIuOCA1LjYgOC4zeiJdfSxxenQ9TDhlLGp6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5b2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJiMSIsIk05MS4zIDc2bDE4NiAwLTcgMTguOS0xNzkgMGMtMzkuNyAwLTcxLjkgMzEuNi03MS45IDcwLjNsMCAyMDUuNGMwIDM1LjQgMjQuOSA3MC4zIDg0IDcwLjNsMCAxOS4xLTEyLjEgMEM0MS4yIDQ2MCAwIDQxOS44IDAgMzcwLjVMMCAxNjUuMkMwIDExNS45IDQwLjcgNzYgOTEuMyA3NnpNMzIwLjQgMjBsNjYuNSAwYy0xNDMuOCAzNzguMS0xNDUuNyAzOTguOS0xODQuNyA0MzkuMy0yMC44IDIxLjYtNDkuMyAzMS43LTc4LjMgMzIuN2wwLTUxLjFjNDkuMi03LjcgNjQuNi00OS45IDY0LjYtNzUuMyAwLTIwLjEgLjYtMTIuNi04Mi4xLTIyMy4ybDYxLjQgMCA1MC40IDE1Ni42IDEwMi4yLTI3OXpNNDQ4IDE2MS41bDAgMjk4LjUtMjE0IDBjNi42LTkuNiAxMC43LTE2LjMgMTIuMS0xOS40bDE4Mi41IDAgMC0yNzkuMWMwLTMyLjUtMTcuMS01MS45LTQ4LjItNjIuOUwzODcuMSA4MWM0MS43IDEzLjYgNjAuOSA0My4xIDYwLjkgODAuNXoiXX0sVnp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5pbWJsciIsaWNvbjpbMzg0LDUxMixbXSwiZjVhOCIsIk0yNDYuNiAzNTMuM2EyNyAyNyAwIDEgMSAwLTU0IDI3IDI3IDAgMSAxIDAgNTR6bS03OS40LTI3YTI3LjEgMjcuMSAwIDEgMSAtNTQuMyAwIDI3LjEgMjcuMSAwIDEgMSA1NC4zIDB6TTE5MS44IDE1OUMxNTcgMTU5IDg5LjQgMTc4LjggNTkuMiAyMjdMMTQgMCAxNCAzMzUuNUMxNCA0MzMuMSA5My42IDUxMiAxOTEuOCA1MTJTMzY5LjUgNDMzIDM2OS41IDMzNS41IDI5MC4xIDE1OSAxOTEuOCAxNTl6bTAgMzA4LjFjLTczLjMgMC0xMzIuNS01OC45LTEzMi41LTEzMS42czU5LjItMTMxLjYgMTMyLjUtMTMxLjYgMTMyLjUgNTguOSAxMzIuNSAxMzEuNS01OS4zIDEzMS42LTEzMi41IDEzMS42bDAgLjF6Il19LFV6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhlbGZlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTdkYiIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzNS43IDMxMS45bDQ3IDBjNDQuMiAwIDgwLjEtMzQuOSA4MC4xLTc4cy0zNS45LTc4LTgwLjEtNzhsLTY3LjggMGMtMjUuNSAwLTQ2LjIgMjAuMS00Ni4yIDQ1bDAgMTc1LjEgNjctNjQuMXoiXX0sV3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhaG9vIixpY29uOls1MTIsNTEyLFtdLCJmMTllIiwiTTIyMy44IDE0MS4xbC01Ni43IDE0My4yLTU2LTE0My4yLTk2LjEgMCAxMDUuOCAyNDkuMS0zOC42IDg5LjggOTQuMiAwIDE0MC45LTMzOC45LTkzLjYgMHpNMzI5LjIgMjc2LjlhNTguMiA1OC4yIDAgMSAwIDAgMTE2LjQgNTguMiA1OC4yIDAgMSAwIDAtMTE2LjR6TTM5NC43IDMybC05MyAyMjMuNSAxMDQuOCAwIDkyLjYtMjIzLjUtMTA0LjQgMHoiXX0sR3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWVza3kiLGljb246WzU3Niw1MTIsW10sImU2NzEiLCJNNDA3LjggMjk0LjdjLTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zek0yODggMjI3LjFDMjYxLjkgMTc2LjQgMTkwLjkgODEuOSAxMjQuOSAzNS4zIDYxLjYtOS40IDM3LjUtMS43IDIxLjYgNS41IDMuMyAxMy44IDAgNDEuOSAwIDU4LjRTOS4xIDE5NCAxNSAyMTMuOWMxOS41IDY1LjcgODkuMSA4Ny45IDE1My4yIDgwLjcgMy4zLS41IDYuNi0uOSAxMC0xLjQtMy4zIC41LTYuNiAxLTEwIDEuNC05My45IDE0LTE3Ny4zIDQ4LjItNjcuOSAxNjkuOSAxMjAuMyAxMjQuNiAxNjQuOC0yNi43IDE4Ny43LTEwMy40IDIyLjkgNzYuNyA0OS4yIDIyMi41IDE4NS42IDEwMy40IDEwMi40LTEwMy40IDI4LjEtMTU2LTY1LjgtMTY5LjktMy4zLS40LTYuNy0uOC0xMC0xLjMgMy40IC40IDYuNyAuOSAxMCAxLjMgNjQuMSA3LjEgMTMzLjYtMTUuMSAxNTMuMi04MC43IDUuOS0xOS45IDE1LTEzOC45IDE1LTE1NS41cy0zLjMtNDQuNy0yMS42LTUyLjljLTE1LjgtNy4xLTQwLTE0LjktMTAzLjIgMjkuOC02Ni4xIDQ2LjYtMTM3LjEgMTQxLjEtMTYzLjIgMTkxLjh6Il19LEt6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY3JpYmQiLGljb246WzM4NCw1MTIsW10sImYyOGEiLCJNNDIuNiAyNTIuN2MtMTYuMS0xOS0yNC43LTQ1LjktMjQuOC03OS45IDAtMTAwLjQgNzUuMi0xNTMuMSAxNjcuMi0xNTMuMSA5OC42LTEuNiAxNTYuOCA0OSAxODQuMyA3MC42bC01MC41IDcyLjEtMzcuMy0yNC42IDI2LjktMzguNmMtMzYuNS0yNC03OS40LTM2LjUtMTIzLTM1LjgtNTAuNy0uOC0xMTEuNyAyNy4yLTExMS43IDc2LjIgMCAxOC43IDExLjIgMjAuNyAyOC42IDE1LjYgMjMuMy01LjMgNDEuOSAuNiA1NS44IDE0IDI2LjQgMjQuMyAyMy4yIDY3LjYtLjcgOTEuOS0yOS4yIDI5LjUtODUuMiAyNy4zLTExNC44LTguNHptMzE3LjcgNS45Yy0xNS41LTE4LjgtMzguOS0yOS40LTYzLjItMjguNi0zOC4xLTItNzEuMSAyOC03MC41IDY3LjItLjcgMTYuOCA2IDMzIDE4LjQgNDQuMyAxNC4xIDEzLjkgMzMgMTkuNyA1Ni4zIDE0LjQgMTcuNC01LjEgMjguNi0zLjEgMjguNiAxNS42IDAgNC4zLS41IDguNS0xLjQgMTIuNy0xNi43IDQwLjktNTkuNSA2NC40LTEyMS40IDY0LjQtNTEuOSAuMi0xMDIuNC0xNi40LTE0NC4xLTQ3LjNsMzMuNy0zOS40LTM1LjYtMjcuNC02MC44IDcxLjggMTUuNCAxMy44YzUyLjUgNDYuOCAxMjAuNCA3Mi41IDE5MC43IDcyLjIgNTEuNCAwIDk0LjQtMTAuNSAxMzMuNi00NC4xIDU3LjEtNTEuNCA1NC4yLTE0OS4yIDIwLjMtMTg5LjZ6Il19LFl6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXBkIixpY29uOls1MTIsNTEyLFtdLCJmNGVjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA0NDkuNWMtMTM5LjIgMC0yMzUuOC0xMzgtMTkwLjItMjY3LjlsNzguOCAzNS4xYy0yLjEgMTAuNS0zLjMgMjEuNS0zLjMgMzIuOSAwIDk5IDczLjkgMTI2LjkgMTIwLjQgMTI2LjkgMjIuOSAwIDUzLjUtNi43IDc5LjQtMjkuNUwzMDUgMzExLjFjLTUuNSA2LjMtMTcuNiAxNi43LTM2LjMgMTYuNy0zNy44IDAtNTMuNy0zOS45LTUzLjktNzEuOSAyMzAuNCAxMDIuNiAyMTYuNSA5Ni41IDIxNy45IDk2LjgtMzQuMyA2Mi40LTEwMC42IDEwNC44LTE3Ni43IDEwNC44em0xOTQuMi0xNTBsLTIyNC0xMDBjMTguOC0zNCA1NC45LTMwLjcgNzQuNy0xMWw0MC40LTQxLjZjLTI3LjEtMjMuMy01OC0yNy41LTc4LjEtMjcuNS00Ny40IDAtODAuOSAyMC41LTEwMC43IDUxLjZMODcuNiAxNDUuNmMzNi4xLTU0LjkgOTguMS05MS4yIDE2OC41LTkxLjIgMTExLjEgMCAyMDEuNSA5MC40IDIwMS41IDIwMS41IDAgMTgtMi40IDM1LjQtNi44IDUyLS4zLS4xLS40LS4yLS42LS40eiJdfSxaenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWFybHliaXJkcyIsaWNvbjpbNTEyLDUxMixbXSwiZjM5YSIsIk0zMjkuMyA0Ny41YzEuMi0xMyAyMS4zLTE0IDM2LjYtOC43IC45IC4zIDI2LjIgOS43IDE5IDE1LjItMjcuOS03LjQtNTYuNCAxOC4yLTU1LjYtNi41em0tMjAxIDYuOWMzMC43LTguMSA2MiAyMCA2MS4xLTcuMS0xLjMtMTQuMi0yMy40LTE1LjMtNDAuMi05LjYtMSAuMy0yOC43IDEwLjUtMjAuOSAxNi43ek0zMzUuNSAxNjBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyem0tMTU5LjcgMGExNiAxNiAwIDEgMCAwIDMyIDE2IDE2IDAgMSAwIDAtMzJ6TTQ5NC4zIDMyMy4yYy05LjkgMjQtNDAuNyAxMS02My45LTEuMi0xMy41IDY5LjEtNTguMSAxMTEuNC0xMjYuMyAxMjQuMiAuMyAuOS0yLS4xIDI0IDEgMzMuNiAxLjQgNjMuOC0zLjEgOTcuNC04LTE5LjgtMTMuOC0xMS40LTM3LjEtOS44LTM4LjEgMS40LS45IDE0LjcgMS43IDIxLjYgMTEuNSA4LjYtMTIuNSAyOC40LTE0LjggMzAuMi0xMy42IDEuNiAxLjEgNi42IDIwLjktNi45IDM0LjYgNC43LS45IDguMi0xLjYgOS44LTIuMSAyLjYtLjggMTcuNyAxMS4zIDMuMSAxMy4zLTE0LjMgMi4zLTIyLjYgNS4xLTQ3LjEgMTAuOC00NS45IDEwLjctODUuOSAxMS44LTExNy43IDEyLjhsMSAxMS42YzMuOCAxOC4xLTIzLjQgMjQuMy0yNy42IDYuMiAuOCAxNy45LTI3LjEgMjEuOC0yOC40LTFsLS41IDUuM2MtLjcgMTguNC0yOC40IDE3LjktMjguMy0uNi03LjUgMTMuNS0yOC4xIDYuOC0yNi40LTguNWwxLjItMTIuNGMtMzYuNyAuOS01OS43IDMuMS02MS44IDMuMS0yMC45IDAtMjAuOS0zMS42IDAtMzEuNiAyLjQgMCAyNy43IDEuMyA2My4yIDIuOC02MS4xLTE1LjUtMTAzLjctNTUtMTE0LjktMTE4LjItMjUgMTIuOC01Ny41IDI2LjgtNjguMiAuOC0xMC41LTI1LjQgMjEuNS00Mi42IDY2LjgtNzMuNCAuNy02LjYgMS42LTEzLjMgMi43LTE5LjgtMTQuNC0xOS42LTExLjYtMzYuMy0xNi4xLTYwLjQtMTYuOCAyLjQtMjMuMi05LjEtMjMuNi0yMy4xIC4zLTcuMyAyLjEtMTQuOSAyLjQtMTUuNCAxLjEtMS44IDEwLjEtMiAxMi43LTIuNiA2LTMxLjcgNTAuNi0zMy4yIDkwLjktMzQuNSAxOS43LTIxLjggNDUuMi00MS41IDgwLjktNDguMy0xNS4zLTE5LjQtMy40LTM5LjktMi40LTQwLjQgMS43LS44IDIxLjIgNC4zIDI2LjMgMjMuMiA1LjItOC44IDE4LjMtMTEuNCAxOS42LTEwLjcgMS4xIC42IDYuNCAxNS00LjkgMjUuOSA0MC4zIDMuNSA3Mi4yIDI0LjcgOTYgNTAuNyAzNi4xIDEuNSA3MS44IDUuOSA3Ny4xIDM0IDIuNyAuNiAxMS42IC44IDEyLjcgMi42IC4zIC41IDIuMSA4LjEgMi40IDE1LjQtLjUgMTMuOS02LjggMjUuNC0yMy42IDIzLjEtMy4yIDE3LjMtMi43IDMyLjktOC43IDQ3LjcgMi40IDExLjcgNCAyMy44IDQuOCAzNi40IDM3IDI1LjQgNzAuMyA0Mi41IDYwLjMgNjYuOXpNMjIzLjUgMTU5LjljLjktNDQtMzcuOS00Mi4yLTc4LjYtNDAuMy0yMS43IDEtMzguOSAxLjktNDUuNSAxMy45LTExLjQgMjAuOSA1LjkgOTIuOSAyMy4yIDEwMS4yIDkuOCA0LjcgNzMuNCA3LjkgODYuMy03LjEgOC4yLTkuNCAxNS00OS40IDE0LjYtNjcuN3ptNTIgNTguM2MtNC4zLTEyLjQtNi0zMC4xLTE1LjMtMzIuNy0yLS41LTktLjUtMTEgMC0xMCAyLjgtMTAuOCAyMi4xLTE3IDM3LjIgMTUuNCAwIDE5LjMgOS43IDIzLjcgOS43IDQuMyAwIDYuMy0xMS4zIDE5LjYtMTQuMnptMTM1LjctODQuN2MtNi42LTEyLjEtMjQuOC0xMi45LTQ2LjUtMTMuOS00MC4yLTEuOS03OC4yLTMuOC03Ny4zIDQwLjMtLjUgMTguMyA1IDU4LjMgMTMuMiA2Ny44IDEzIDE0LjkgNzYuNiAxMS44IDg2LjMgNy4xIDE1LjgtNy42IDM2LjUtNzguOSAyNC4zLTEwMS4zeiJdfSxYenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ltZm9ueWNhc3RzIixpY29uOls1NzYsNTEyLFtdLCJlOGFiIiwiTTI5My44IDM0Mi41YzMuNC0xLjUgNi44LTEuNSAxMC4yIDBsNTQuMiAyMi42YzIuNiAuOSA0LjcgMi42IDYuMiA0LjhzMi4zIDQuOCAyLjMgNy42YzAgMTkuNC0zLjYgMzcuMi0xMC43IDUzLjQtNi4yIDEzLjYtMTQuNSAyNS40LTI0LjggMzUuNi04LjcgOC41LTE3LjcgMTQuNi0yNy4xIDE4LjQtMy40IDEuNS02LjggMS41LTEwLjIgMC0xMC43LTQuMy0yMC42LTExLjMtMjkuNy0yMC45LTEwLTEwLjQtMTcuOC0yMi41LTIzLjUtMzYuNC02LjQtMTUuNi05LjYtMzIuMy05LjYtNTAgMC0yLjggLjctNS40IDIuMi03LjYgMS41LTIuMyAzLjYtMy45IDYuMi00LjhsNTQuMi0yMi42ek00NzkuNyA0ODMuOGE3MC4xIDcwLjEgMCAxIDEgMC0xNDAuMiA3MC4xIDcwLjEgMCAxIDEgMCAxNDAuMnpNMjQ0LjYgMzc3LjZjMCAxNS4zIDIuNiAyOS43IDcuOSA0My4yIDQuOSAxMi40IDExLjYgMjMuMyAyMC4xIDMyLjUgOC4xIDguOSAxNi45IDE1LjMgMjYuMyAxOS4yIDkuMi0zLjggMTcuOC0xMCAyNS43LTE4LjcgOC43LTkuMiAxNS40LTE5LjkgMjAuMy0zMi4yIDUuNS0xMy43IDguMi0yOC40IDguMi00NC4xbC01NC4yLTIyLjYtNTQuMiAyMi42em0yMzUuMS0yMC4zYTU2LjUgNTYuNSAwIDEgMCAwIDExMyA1Ni41IDU2LjUgMCAxIDAgMC0xMTN6bS0zNTIuOCAyLjNjNC4xIDAgNy42IDEuMyAxMC40IDMuOSAyLjggMi42IDQuMiA1LjkgNC4yIDkuNmwwIDE2LjQgMzEuMS0xOS4yYzEuNS0xLjEgMy4yLTEuNyA1LjEtMS43IDIuNCAwIDQuNiAuOCA2LjMgMi41czIuNyAzLjggMi43IDYuMmwwIDcyLjZjMCAyLjYtLjkgNC44LTIuNyA2LjVzLTMuOSAyLjUtNi4zIDIuNWMtMS45IDAtMy42LS42LTUuMS0xLjdsLTMxLjEtMTkuMiAwIDE2LjRjMCAzLjgtMS40IDctNC4yIDkuNnMtNi4zIDQtMTAuNCA0bC04OC4yIDBjLTQuMSAwLTcuNi0xLjMtMTAuNS00cy00LjItNS44LTQuMi05LjZsMC04MS4zYzAtMy44IDEuNC03IDQuMi05LjZzNi4zLTMuOSAxMC41LTMuOWw4OC4yIDB6bTE3MiA5Ny44Yy0xMS4zLTctMjAuNC0xNi40LTI3LjQtMjguMy03LjUtMTIuNC0xMS45LTI2LjYtMTMtNDIuNGw0MC40LTE3IDAgODcuNnpNMzcuNSAzNzMuNGwwIDgwLjhjLjIgLjIgLjYgLjMgMS4yIC4zbDg4LjIgMGMuNCAwIC43LS4xIDEuMS0uM2wwLTgwLjhjLS4yLS4yLS42LS4zLTEuMi0uM2wtODguMSAwYy0uNCAwLS44IC4xLTEuMiAuM3ptNDE4LjQgNS4xYzIuMy0xLjMgNC41LTEuMyA2LjggMGw0OS44IDMwLjJjMi4zIDEuMyAzLjQgMy4zIDMuNCA1LjlzLTEuMSA0LjYtMy40IDUuOWwtNDkuOCAyOC42Yy0yLjMgMS4zLTQuNSAxLjMtNi44IDBzLTMuNC0zLjMtMy40LTUuOWwwLTU4LjhjMC0yLjYgMS4xLTQuNiAzLjQtNS45ek0xNDEuNSA0MDUuNWwwIDE2LjQgMzEuNyAxOS44IDAtNTYtMzEuNyAxOS44ek00NTEuMSA1LjJjMzUuOC0xLjIgNjIuOSAxNS4xIDYzLjggNDAuOCAuNCAxMC45LTUuOSAzMi4yLTI3LjggMzMtMTYuMyAuNi0yNy42LTkuMi0yOC4xLTI0LjEtLjItNS40IDEuMi0xMC4yIDQuOS0xNS44IDMuNi03LjEgNC40LTcuOSA0LjMtMTEtLjMtOS40LTE0LjUtOS43LTE4LjMtOS41LTUzIDEuOC02Ni45IDczLjMtNzguMiAxMzEuNWwtNS42IDMwLjdjMzAuNSA0LjUgNTIuMi0xIDY0LjItOC44IDE3LTExLTQuOC0yMi40LTItMzUgMi44LTEyLjggMTQuNC0xOSAyMy43LTE5LjIgMTIuOS0uMyAyMi4yIDEzLjEgMjEuOSAyNi43LS41IDIyLjYtMzAuNCA1My42LTkwLjIgNTIuMy03LjMtLjItMTQtLjctMjAuMi0xLjRsLTExLjMgNjIuM2MtMyAxNC02LjMgMjkuNS0xMC43IDQ1LjhsMjA0IDAgLjkgLjFjLjMgLjEgLjYgLjEgLjggLjIgMi4yIC42IDQgMi41IDQuNSA0LjggLjYgMi44LTEgNi0zLjcgNy4yLS41IC4yLTEuMSAuNC0xLjcgLjUtLjMgMC0uNiAwLS45IC4xbC01MTUuMyAwYy0uNy0uMS0uOSAwLTEuNy0uMi0yLjUtLjctNC40LTMuMS00LjYtNS43LS4yLTIuMyAxLTQuNiAzLTUuOCAuNy0uNSAxLjYtLjggMi40LS45IC4zIDAgLjYgMCAuOC0uMWw0OC40IDBjLTE3LjItMTYuOC0yMC0zNy4yLTE2LTUwLjUgNS40LTE3LjYgMTkuNC0yMC45IDMzLTE2LjcgMTQuNiA0LjUgMjAuMyAyMi4zIDE2LjIgMzYtLjUgMS41LTEuMiAzLjktMi44IDcuMi0xLjcgMy44LTQuOCA3LjEtNi4yIDExLjUtMS41IDQuOSAuNyA5LjEgNC41IDEyLjZsNTguOSAwYzQuMi00IDcuNC05IDkuMS0xNC42IDUuMy0xNy01LjUtMjguOS0xMC0zMy41bC0yMS43LTIzLjJjLTkuOS0xMS4xLTMxLjctNDEuOS0yMS4xLTc2LjUgNC4xLTEzLjQgMTIuOC0yNy41IDI1LjMtMzYuOSAyNi41LTE5LjcgNTUuMy0yMyA4Mi43LTE1LjEgMzUuNSAxMC4yIDUyLjUgMzMuNyA3NC42IDUxLjggMTIuNC0zNi4zIDI5LjUtNzEuOSA1NS4zLTEwMS45IDIzLjMtMjcuMyA1NC42LTQ3LjEgOTAuNC00OC4zek0yMjkuNiAxMjEuM2MtMjIuMi02LTM1LjctLjktNDUuMiAxMS4yLTExLjMgMTQuMy03LjUgMzIuOCAzLjMgNDMuN2wxOCAxOS45YzIyIDI1LjUgMzQuMSA0NS4zIDI5LjYgNzItMi4yIDEzLjEtOC41IDI1LjItMTcuOSAzNS4zbDU0LjIgMGMxLTUuMSAyLTEwLjQgMy4xLTE1LjhsMy42LTIxLjljNS45LTI5LjQgMTIuNC02Mi4yIDIyLjMtOTQuOC0yNC4xLTE4LjEtMzguNS00MC43LTcwLjktNDkuNXoiXX0sRThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1vZG5va2xhc3NuaWtpIixpY29uOls0NDgsNTEyLFsib2Rub2tsYXNzbmlraS1zcXVhcmUiXSwiZjI2NCIsIk0yMjQgMTM3LjFjLTUuNC0uMy0xMC44IC42LTE1LjkgMi40cy05LjcgNC44LTEzLjYgOC41LTcgOC4yLTkuMiAxMy4yLTMuMiAxMC4zLTMuMiAxNS43IDEuMSAxMC44IDMuMiAxNS43IDUuMyA5LjUgOS4yIDEzLjIgOC42IDYuNiAxMy42IDguNSAxMC41IDIuNyAxNS45IDIuNGM1LjQgLjMgMTAuOC0uNiAxNS45LTIuNHM5LjctNC44IDEzLjYtOC41IDctOC4yIDkuMi0xMy4yIDMuMi0xMC4zIDMuMi0xNS43LTEuMS0xMC44LTMuMi0xNS43LTUuMy05LjUtOS4yLTEzLjItOC42LTYuNi0xMy42LTguNS0xMC41LTIuNy0xNS45LTIuNHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCAyNThhODEgODEgMCAxIDEgMC0xNjIuMSA4MSA4MSAwIDEgMSAwIDE2Mi4xem01OS4zIDYuMmMxNi44LTEzLjIgMjkuNS01LjUgMzQuMSAzLjYgNy44IDE2LTEuMSAyMy43LTIxLjUgMzctMTcuMSAxMC45LTQwLjcgMTUuMi01Ni4yIDE2LjhsMTMgMTIuOSA0Ny43IDQ3LjdjMTcuNCAxNy45LTExIDQ1LjgtMjguNiAyOC42LTEyLTEyLjItMjkuNS0yOS43LTQ3LjctNDcuOWwtNDcuNyA0Ny45Yy0xNy43IDE3LjItNDYtMTEtMjguNC0yOC42IDMuNy0zLjcgNy45LTcuOSAxMi41LTEyLjUgMTAuNC0xMC40IDIyLjYtMjIuNyAzNS4yLTM1LjJsMTIuOS0xMi45Yy0xNS40LTEuNi0zOS4zLTUuNy01Ni42LTE2LjgtMjAuMy0xMy4zLTI5LjMtMjAuOS0yMS40LTM3IDQuNi05LjEgMTcuMy0xNi44IDM0LjEtMy42IDAgMCAyMi43IDE4IDU5LjMgMThzNTkuMy0xOCA1OS4zLTE4eiJdfSxRenQ9RThlLEp6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXJrZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjYwZiIsIk01OTMuOCA1OS4xbC01NDcuNiAwQzIwLjcgNTkuMSAwIDc5LjggMCAxMDUuMkwwIDQwNi43YzAgMjUuNSAyMC43IDQ2LjIgNDYuMiA0Ni4ybDU0Ny43IDBjMjUuNSAwIDQ2LjItMjAuNyA0Ni4xLTQ2LjFsMC0zMDEuNmMwLTI1LjQtMjAuNy00Ni4xLTQ2LjItNDYuMXpNMzM4LjUgMzYwLjZsLTYxLjUgMCAwLTEyMC02MS41IDc2LjktNjEuNS03Ni45IDAgMTIwLTYxLjcgMCAwLTIwOS4yIDYxLjUgMCA2MS41IDc2LjkgNjEuNS03Ni45IDYxLjUgMCAwIDIwOS4yIC4yIDB6bTEzNS4zIDMuMWwtOTIuMy0xMDcuNyA2MS41IDAgMC0xMDQuNiA2MS41IDAgMCAxMDQuNiA2MS41IDAtOTIuMiAxMDcuN3oiXX0sZUN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR5cG8zIixpY29uOls0NDgsNTEyLFtdLCJmNDJiIiwiTTE3OC43IDc4LjRjMC0yNC43IDUuNC0zMi40IDEzLjktMzkuNC02OS41IDguNS0xNDkuMyAzNC0xNzYuMyA2Ni40LTUuNCA3LjctOS4zIDIwLjgtOS4zIDM3LjEgMCAxMDMuNSAxMDYuOCAzMzcuNSAxODQuMSAzMzcuNSAzNi4zIDAgOTcuMy01OS41IDE0Ni43LTEzOS03IDIuMy0xMS42IDIuMy0xOC41IDIuMy01Ny4yIDAtMTQwLjYtMTk4LjUtMTQwLjYtMjY0Ljl6TTMwMS41IDMyYy0zMC4xIDAtNDEuNyA1LjQtNDEuNyAzNi4zIDAgNjYuNCA1My44IDE5OC41IDEwMS43IDE5OC41IDI2LjMgMCA3OC44LTk5LjcgNzguOC0xODIuMyAwLTQwLjktNjctNTIuNS0xMzguOC01Mi41eiJdfSx0Q3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiam9vbWxhIixpY29uOls0NDgsNTEyLFtdLCJmMWFhIiwiTS42IDkyLjFjMC0zMy4zIDI2LjgtNjAuMSA1OS44LTYwLjEgMzAgMCA1NC41IDIxLjkgNTkuMiA1MC4yIDMyLjYtNy42IDY3LjEgLjYgOTYuNSAzMGwtNDQuMyA0NC4zYy0yMC41LTIwLjUtNDIuNi0xNi4zLTU1LjQtMy41LTE0LjMgMTQuMy0xNC4zIDM3LjkgMCA1Mi4ybDk5LjUgOTkuNS00NCA0NC4zYy04Ny43LTg3LjItNDkuNy00OS43LTk5LjgtOTkuNy0yNi44LTI2LjUtMzUtNjQuOC0yNC44LTk4LjktMjYuOS01LjgtNDYuNy0yOS43LTQ2LjctNTguM3pNMTMwLjEgMjA4LjVsNDQuMyA0NC4zYzEwLTEwIDg5LjctODkuNyA5OS43LTk5LjggMTQuMy0xNC4zIDM3LjYtMTQuMyA1MS45IDAgMTIuOCAxMi44IDE3IDM1LTMuNSA1NS40bDQ0IDQ0LjNjMzEuMi0zMS4yIDM4LjUtNjcuNiAyOC45LTEwMS4yIDI5LjItNC4xIDUxLjktMjkuMiA1MS45LTU5LjUgMC0zMy4yLTI2LjgtNjAuMS01OS44LTYwLjEtMzAuMyAwLTU1LjQgMjIuNS01OS41IDUxLjYtMzMuOC05LjktNzEuNy0xLjUtOTguMyAyNS4xLTE4LjMgMTkuMS03MS4xIDcxLjUtOTkuNiA5OS45ek0zOTYuNCAzNjAuN2M4LjItMzIuNy0uOS02OC41LTI2LjMtOTMuOS0xMS44LTEyLjIgNSA0LjctOTkuNS05OS43bC00NC4zIDQ0LjMgOTkuNyA5OS43YzE0LjMgMTQuMyAxNC4zIDM3LjYgMCA1MS45LTEyLjggMTIuOC0zNSAxNy01NS40LTMuNWwtNDQgNDQuM2MyNy42IDMwLjIgNjggMzguOCAxMDIuNyAyOCA1LjUgMjcuNCAyOS43IDQ4LjEgNTguOSA0OC4xIDMzIDAgNTkuOC0yNi44IDU5LjgtNjAuMSAwLTMwLjItMjIuNS01NS01MS42LTU5LjF6bS04NC4zLTUzLjFsLTQ0LTQ0LjNjLTg3IDg2LjQtNTAuNCA1MC40LTk5LjcgOTkuOC0xNC4zIDE0LjMtMzcuNiAxNC4zLTUxLjkgMC0xMy4xLTEzLjQtMTYuOS0zNS4zIDMuMi01NS40bC00NC00NC4zYy0zMC4yIDMwLjItMzggNjUuMi0yOS41IDk4LjMtMjYuNyA2LTQ2LjIgMjkuOS00Ni4yIDU4LjIgMCAzMy4zIDI2LjggNjAuMSA1OS44IDYwLjEgMjguNiAwIDUyLjUtMTkuOCA1OC42LTQ2LjcgMzIuNyA4LjIgNjguNS0uNiA5NC4yLTI2IDMyLjEtMzIgMTIuMi0xMi40IDk5LjUtOTkuN3oiXX0sYUN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlaXhpbiIsaWNvbjpbNTc2LDUxMixbXSwiZjFkNyIsIk0zODUuMiAxNjcuNmM2LjQgMCAxMi42IC4zIDE4LjggMS4xLTE2LjYtNzguNC0xMDAuNy0xMzYuNy0xOTYuMy0xMzYuNy0xMDcuMiAwLTE5NC43IDcyLjgtMTk0LjcgMTY1LjQgMCA1My40IDI5LjMgOTcuNSA3Ny45IDEzMS42bC0xOS4zIDU4LjYgNjgtMzQuMWMyNC40IDQuOCA0My44IDkuNyA2OC4yIDkuNyA2LjIgMCAxMi4xLS4zIDE4LjMtLjgtNC0xMi45LTYuMi0yNi42LTYuMi00MC44LS4xLTg0LjkgNzIuOS0xNTQgMTY1LjMtMTU0ek0yODAuNyAxMTQuN2MxNC41IDAgMjQuMiA5LjcgMjQuMiAyNC40IDAgMTQuNS05LjcgMjQuMi0yNC4yIDI0LjItMTQuOCAwLTI5LjMtOS43LTI5LjMtMjQuMiAuMS0xNC43IDE0LjYtMjQuNCAyOS4zLTI0LjR6TTE0NC4zIDE2My4zYy0xNC41IDAtMjkuMy05LjctMjkuMy0yNC4yIDAtMTQuOCAxNC44LTI0LjQgMjkuMy0yNC40IDE0LjggMCAyNC40IDkuNyAyNC40IDI0LjQgMCAxNC42LTkuNiAyNC4yLTI0LjQgMjQuMnpNNTYzIDMxOS40YzAtNzcuOS03Ny45LTE0MS4zLTE2NS40LTE0MS4zLTkyLjcgMC0xNjUuNCA2My40LTE2NS40IDE0MS4zUzMwNSA0NjAuNyAzOTcuNiA0NjAuN2MxOS4zIDAgMzguOS01LjEgNTguNi05LjlsNTMuNCAyOS4zLTE0LjgtNDguNkM1MzQgNDAyLjEgNTYzIDM2My4yIDU2MyAzMTkuNHpNMzQzLjkgMjk0LjljLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuOCAwIDI0LjQgOS43IDI0LjQgMTkuMyAwIDEwLTkuNyAxOS42LTI0LjQgMTkuNnptMTA3LjEgMGMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC41IDAgMjQuNCA5LjcgMjQuNCAxOS4zIC4xIDEwLTkuOSAxOS42LTI0LjQgMTkuNnoiXX0sc0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdydW50IixpY29uOlszODQsNTEyLFtdLCJmM2FkIiwiTTYxLjYgMTg5LjNjLTEuMSAxMCA1LjIgMTkuMSA1LjIgMTkuMSAuNy03LjUgMi4yLTEyLjggNC0xNi42IC40IDEwLjMgMy4yIDIzLjUgMTIuOCAzNC4xIDYuOSA3LjYgMzUuNiAyMy4zIDU0LjkgNi4xIDEgMi40IDIuMSA1LjMgMyA4LjUgMi45IDEwLjMtMi43IDI1LjMtMi43IDI1LjNzMTUuMS0xNy4xIDEzLjktMzIuNWMxMC44LS41IDIxLjQtOC40IDIxLjEtMTkuNSAwIDAtMTguOSAxMC40LTM1LjUtOC44LTkuNy0xMS4yLTQwLjktNDItODMuMS0zMS44IDQuMyAxIDguOSAyLjQgMTMuNSA0LjFsLS4xIDBjLTQuMiAyLTYuNSA3LjEtNyAxMnptMjguMy0xLjhjMTkuNSAxMSAzNy40IDI1LjcgNDQuOSAzNy01LjcgMy4zLTIxLjcgMTAuNC0zOC0xLjctMTAuMy03LjYtOS44LTI2LjItNi45LTM1LjN6TTIzMiAyMzMuM2MtMS4yIDE1LjUgMTMuOSAzMi41IDEzLjkgMzIuNXMtNS42LTE1LTIuNy0yNS4zYy45LTMuMiAyLTYgMy04LjUgMTkuMyAxNy4zIDQ4IDEuNSA1NC44LTYuMSA5LjYtMTAuNiAxMi4zLTIzLjggMTIuOC0zNC4xIDEuOCAzLjggMy40IDkuMSA0IDE2LjYgMCAwIDYuNC05LjEgNS4yLTE5LjEtLjYtNS0yLjktMTAtNy0xMS44bC0uMSAwYzQuNi0xLjggOS4yLTMuMiAxMy41LTQuMS00Mi4zLTEwLjItNzMuNCAyMC42LTgzLjEgMzEuOC0xNi43IDE5LjItMzUuNSA4LjgtMzUuNSA4LjgtLjIgMTAuOSAxMC40IDE4LjkgMjEuMiAxOS4zem02Mi43LTQ1LjhjMyA5LjEgMy40IDI3LjctNyAzNS40LTE2LjMgMTIuMS0zMi4yIDUtMzcuOSAxLjYgNy41LTExLjQgMjUuNC0yNiA0NC45LTM3em0tMTM0LjQgMjMxbC0yOS40IDBjLTUuNSAwLTguMiAxLjYtOS41IDIuOS0xLjkgMi0yLjIgNC43LS45IDguMSAzLjUgOS4xIDExLjQgMTYuNSAxMy43IDE4LjYgMy4xIDIuNyA3LjUgNC4zIDExLjggNC4zIDQuNCAwIDguMy0xLjcgMTEtNC42IDcuNS04LjIgMTEuOS0xNy4xIDEzLTE5LjggLjYtMS41IDEuMy00LjUtLjktNi44LTEuOC0xLjgtNC43LTIuNy04LjgtMi43ek0zNDkuNSAzMTcuM2MtMi40IDE3LjktMTMgMzMuOC0yNC42IDQzLjctMy4xLTIyLjctMy43LTU1LjUtMy43LTYyLjQgMC0xNC43IDkuNS0yNC41IDEyLjItMjYuMSAyLjUtMS41IDUuNC0zIDguMy00LjYgMTgtOS42IDQwLjQtMjEuNiA0MC40LTQzLjcgMC0xNi4yLTkuMy0yMy4yLTE1LjQtMjcuOC0uOC0uNi0xLjUtMS4xLTIuMi0xLjctMi4xLTEuNy0zLjctMy00LjMtNC40LTQuNC05LjgtMy42LTM0LjItMS43LTM3LjYgLjYtLjYgMTYuNy0yMC45IDExLjgtMzkuMi0yLTcuNC02LjktMTMuMy0xNC4xLTE3LTUuMy0yLjctMTEuOS00LjItMTkuNS00LjUtLjEtMi0uNS0zLjktLjktNS45LS42LTIuNi0xLjEtNS4zLS45LTguMSAuNC00LjcgLjgtOSAyLjItMTEuMyA4LjQtMTMuMyAyOC44LTE3LjYgMjktMTcuNmwxMi4zLTIuNC04LjEtOS41Yy0uMS0uMi0xNy4zLTE3LjUtNDYuMy0xNy41LTcuOSAwLTE2IDEuMy0yNC4xIDMuOS0yNC4yIDcuOC00Mi45IDMwLjUtNDkuNCAzOS4zLTMuMS0xLTYuMy0xLjktOS42LTIuNy00LjItMTUuOCA5LTM4LjUgOS0zOC41cy0xMy42LTMtMzMuNyAxNS4yYy0yLjYtNi41LTguMS0yMC41LTEuOC0zNy4yLTI5LjUgMTAuNC0zNi45IDI2LjMtMzkuMSA0MC43LTcuNi01LjQtNi43LTIzLjEtNy4yLTI3LjYtNy41IC45LTI5LjIgMjEuOS0yOC4yIDQ4LjMtMiAuNS0zLjkgMS4xLTUuOSAxLjctNi41LTguOC0yNS4xLTMxLjUtNDkuNC0zOS4zLTcuOS0yLjItMTYtMy41LTIzLjktMy41LTI5IDAtNDYuMSAxNy4zLTQ2LjMgMTcuNWwtOC4xIDkuNCAxMi4zIDIuNGMuMiAwIDIwLjYgNC4zIDI5IDE3LjYgMS40IDIuMiAxLjggNi42IDIuMiAxMS4zIC4yIDIuOC0uNCA1LjUtLjkgOC4xLS40IDEuOS0uOCAzLjktLjkgNS45LTcuNyAuMy0xNC4yIDEuOC0xOS41IDQuNS03LjIgMy43LTEyLjEgOS42LTE0LjEgMTctNSAxOC4yIDExLjIgMzguNSAxMS44IDM5LjIgMS45IDMuNCAyLjcgMjcuOC0xLjcgMzcuNi0uNiAxLjQtMi4yIDIuNy00LjMgNC40LS43IC41LTEuNCAxLjEtMi4yIDEuNy02LjEgNC42LTE1LjQgMTEuNy0xNS40IDI3LjggMCAyMi4xIDIyLjQgMzQuMSA0MC40IDQzLjcgMyAxLjYgNS44IDMuMSA4LjMgNC42IDIuNyAxLjYgMTIuMiAxMS40IDEyLjIgMjYuMSAwIDYuOS0uNiAzOS43LTMuNyA2Mi40LTExLjYtOS45LTIyLjItMjUuOS0yNC42LTQzLjggMCAwLTI5LjIgMjIuNi0yMC42IDcwLjggNS4yIDI5LjUgMjMuMiA0Ni4xIDQ3IDU0LjcgOC44IDE5LjEgMjkuNCA0NS43IDY3LjMgNDkuNiAxNC40IDExLjggMzQuNCAxOS41IDYzLjYgMTkuNWwuMiAwYzI5LjEgMCA0OS4xLTcuNyA2My42LTE5LjUgMzcuOS0zLjkgNTguNS0zMC41IDY3LjMtNDkuNiAyMy44LTguNyA0MS43LTI1LjIgNDctNTQuNyA4LjItNDguNC0yMS4xLTcwLjktMjEuMS03MC45ek0zMDYgMzcuN2M1LjYtMS44IDExLjYtMi43IDE3LjctMi43IDExIDAgMTkuOSAzIDI0LjcgNS0zLjEgMS40LTYuNCAzLjItOS43IDUuMy0yLjQtLjQtNS42LS44LTkuMi0uOC0xMC41IDAtMjAuNSAzLjEtMjguNyA4LjktMTIuMyA4LjctMTggMTYuOS0yMC43IDIyLjQtMi4yLTEuMy00LjUtMi41LTcuMS0zLjctMS42LS44LTMuMS0xLjUtNC43LTIuMiA2LjEtOS4xIDE5LjktMjYuNSAzNy43LTMyLjJ6bTIxIDE4LjJjLS44IDEtMS42IDIuMS0yLjMgMy4yLTMuMyA1LjItMy45IDExLjYtNC40IDE3LjgtLjUgNi40LTEuMSAxMi41LTQuNCAxNy00LjIgLjgtOC4xIDEuNy0xMS41IDIuNy0yLjMtMy4xLTUuNi03LTEwLjUtMTEuMiAxLjQtNC44IDUuNS0xNi4xIDEzLjUtMjIuNSA1LjYtNC4zIDEyLjItNi43IDE5LjYtN3pNNDUuOSA0NS4zYy0zLjMtMi4yLTYuNi00LTkuNy01LjMgNC44LTIgMTMuNy01IDI0LjctNSA2LjEgMCAxMiAuOSAxNy43IDIuNyAxNy44IDUuOCAzMS42IDIzLjIgMzcuNyAzMi4xLTEuNiAuNy0zLjIgMS40LTQuOCAyLjItMi41IDEuMi00LjkgMi41LTcuMSAzLjctMi42LTUuNC04LjMtMTMuNy0yMC43LTIyLjQtOC4zLTUuOC0xOC4yLTguOS0yOC44LTguOS0zLjQgLjEtNi42IC41LTkgLjl6TTkwLjYgODUuNGMtNC45IDQuMi04LjMgOC0xMC41IDExLjItMy40LS45LTcuMy0xLjktMTEuNS0yLjctMy4zLTQuNC0zLjgtMTAuNS00LjMtMTYuOS0uNS02LjItMS4xLTEyLjYtNC40LTE3LjgtLjctMS4xLTEuNS0yLjItMi4zLTMuMiA3LjQgLjMgMTQgMi42IDE5LjUgNyA4IDYuMyAxMi4xIDE3LjYgMTMuNSAyMi40ek01OC40IDI1OS45Yy0yLjctMS42LTUuNi0zLjEtOC40LTQuNi0xNC45LTgtMzAuMi0xNi4zLTMwLjItMzAuNSAwLTExLjEgNC4zLTE0LjYgOC45LTE4LjJsLjUtLjRjLjctLjYgMS40LTEuMiAyLjItMS44LS45IDcuMi0xLjkgMTMuMy0yLjcgMTQuOSAwIDAgMTIuMS0xNSAxNS43LTQ0LjMgMS40LTExLjUtMS4xLTM0LjMtNS4xLTQzIC4yIDQuOSAwIDkuOC0uMyAxNC40LS40LS44LS44LTEuNi0xLjMtMi4yLTMuMi00LTExLjgtMTcuNS05LjQtMjYuNiAuOS0zLjUgMy4xLTYgNi43LTcuOCAzLjgtMS45IDguOC0yLjkgMTUuMS0yLjkgMTIuMyAwIDI1LjkgMy43IDMyLjkgNiAyNS4xIDggNTUuNCAzMC45IDY0LjEgMzcuNyAuMiAuMiAuNCAuMyAuNCAuM2w1LjYgMy45LTMuNS01LjhjLS4yLS4zLTE5LjEtMzEuNC01My4yLTQ2LjUgMi0yLjkgNy40LTguMSAyMS42LTE1LjEgMjEuNC0xMC41IDQ2LjUtMTUuOCA3NC4zLTE1LjggMjcuOSAwIDUyLjkgNS4zIDc0LjMgMTUuOCAxNC4yIDYuOSAxOS42IDEyLjIgMjEuNiAxNS4xLTM0IDE1LjEtNTIuOSA0Ni4yLTUzLjEgNDYuNWwtMy41IDUuOCA1LjYtMy45cy4yLS4xIC40LS4zYzguNy02LjggMzktMjkuOCA2NC4xLTM3LjcgNy0yLjIgMjAuNi02IDMyLjktNiA2LjMgMCAxMS4zIDEgMTUuMSAyLjkgMy41IDEuOCA1LjcgNC40IDYuNyA3LjggMi41IDkuMS02LjEgMjIuNi05LjQgMjYuNi0uNSAuNi0uOSAxLjMtMS4zIDIuMi0uMy00LjYtLjUtOS41LS4zLTE0LjQtNCA4LjgtNi41IDMxLjUtNS4xIDQzIDMuNiAyOS4zIDE1LjcgNDQuMyAxNS43IDQ0LjMtLjgtMS42LTEuOC03LjctMi43LTE0LjkgLjcgLjYgMS41IDEuMiAyLjIgMS44bC41IC40YzQuNiAzLjcgOC45IDcuMSA4LjkgMTguMiAwIDE0LjItMTUuNCAyMi41LTMwLjIgMzAuNS0yLjkgMS41LTUuNyAzLjEtOC40IDQuNi04LjcgNS0xOCAxNi43LTE5LjEgMzQuMi0uOSAxNC42IC45IDQ5LjkgMy40IDc1LjktMTIuNCA0LjgtMjYuNyA2LjQtMzkuNyA2LjgtMi00LjEtMy45LTguNS01LjUtMTMuMS0uNy0yLTE5LjYtNTEuMS0yNi40LTYyLjIgNS41IDM5IDE3LjUgNzMuNyAyMy41IDg5LjYtMy41LS41LTcuMy0uNy0xMS43LS43bC0xMTcgMGMtNC40IDAtOC4zIC4zLTExLjcgLjcgNi0xNS45IDE4LjEtNTAuNiAyMy41LTg5LjYtNi44IDExLjItMjUuNyA2MC4zLTI2LjQgNjIuMi0xLjYgNC42LTMuNSA5LTUuNSAxMy4xLTEzLS40LTI3LjItMi0zOS43LTYuOCAyLjUtMjYgNC4zLTYxLjIgMy40LTc1LjktLjktMTcuNC0xMC4zLTI5LjItMTktMzQuMnpNMzUuMSA0MDQuNmMtMTIuMS0yMC04LjctNTQuMS0zLjctNTkuMSAxMC45IDM0LjQgNDcuMiA0NC4zIDc0LjQgNDUuNC0yLjcgNC4yLTUuMiA3LjYtNyAxMGwtMS40IDEuNGMtNy4yIDcuOC04LjYgMTguNS00LjEgMzEuOC0yMi43LS4xLTQ2LjMtOS44LTU4LjItMjkuNXptNDUuNyA0My41YzYgMS4xIDEyLjIgMS45IDE4LjYgMi40IDMuNSA4IDcuNCAxNS45IDEyLjMgMjMuMS0xNC40LTUuOS0yNC40LTE2LTMwLjktMjUuNXptMTExLjUgNTAuMWMtNjAuNi0uMS03OC4zLTQ1LjgtODQuOS02NC43LTMuNy0xMC41LTMuNC0xOC4yIC45LTIzLjEgMi45LTMuMyA5LjUtNy4yIDI0LjYtNy4ybDExOC44IDBjMTUuMSAwIDIxLjggMy45IDI0LjYgNy4yIDQuMiA0LjggNC41IDEyLjYgLjkgMjMuMS02LjYgMTguOC0yNC4zIDY0LjYtODQuOSA2NC43em04MC42LTI0LjZjNC45LTcuMiA4LjgtMTUuMSAxMi4zLTIzLjEgNi40LS41IDEyLjYtMS4zIDE4LjYtMi40LTYuNSA5LjUtMTYuNSAxOS42LTMwLjkgMjUuNXptNzYuNi02OWMtMTIgMTkuNy0zNS42IDI5LjMtNTguMSAyOS43IDQuNS0xMy4zIDMuMS0yNC4xLTQuMS0zMS44LS40LS41LS45LTEtMS40LTEuNS0xLjgtMi40LTQuMy01LjgtNy0xMCAyNy4yLTEuMiA2My41LTExIDc0LjQtNDUuNCA1IDUgOC40IDM5LjEtMy44IDU5ek0xOTIuMiAxODcuN2wuMiAwYzEyLjctLjEgMjcuMi0xNy44IDI3LjItMTcuOC05LjkgNi0xOC44IDguMS0yNy4zIDguMy04LjUtLjItMTcuNC0yLjMtMjcuMy04LjMgMCAwIDE0LjUgMTcuNiAyNy4yIDE3Ljh6bTYxLjcgMjMwLjdsLTI5LjQgMGMtNC4yIDAtNy4yIC45LTguOSAyLjctMi4yIDIuMy0xLjUgNS4yLS45IDYuNyAxIDIuNiA1LjUgMTEuMyAxMyAxOS4zIDIuNyAyLjkgNi42IDQuNSAxMSA0LjVzOC43LTEuNiAxMS44LTQuMmMyLjMtMiAxMC4yLTkuMiAxMy43LTE4LjEgMS4zLTMuMyAxLTYtLjktNy45LTEuMy0xLjMtNC0yLjktOS40LTN6Il19LGlDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXBwb3J0bm93IixpY29uOls2NDAsNTEyLFtdLCJlODMzIiwiTTAgMTkxLjlsMjAzLjktLjFjMS44LS42IDIuNS05LjUgMy4yLTEyLjIgMy4zLTEzLjUgOC40LTI2LjQgMTQuOC0zOC43bC0xNjAuMiAwIDAtNDguMiAyMzQuNSAwIDAgMzljLTUxLjIgMzYuMS01Ni40IDkyLjYtMjMuNiAxNDMuOSAzMy4xIDUxLjcgOTMuNCA4OC4xIDE0OS41IDExMC41IDY3LjgtMjUuMiAxNjQuOS04OS45IDE2OS40LTE2OS42IDMuMS01NS4zLTQyLjItMTAxLjgtOTguNy05MS44LTQxLjUgNy40LTYyLjEgNDYuNy01NC44IDg2LjRsLTQ4LjIgMGMtNy4zLTU2LjYgMjIuOC0xMTIuNiA3OC40LTEzMC4zIDc4LjctMjUuMSAxNTkuNSAyOCAxNzAuNCAxMDguOCAxNS4yIDExMi4zLTk1LjUgMTk5LjktMTg4LjEgMjM3LjgtNC40IDEuOC0yNC40IDEwLjEtMjcuNSAxMC4xbC0yODAuMyAwIDAtNDguMiAxNzguNSAwLTM4LjEtMjguOS0yMy4yLTIyLjEtMTk4LjMgMCAwLTQ4LjIgMTYzLjEgMGMtNy4xLTExLjYtMTIuMy0yNC4zLTE2LjEtMzcuNC0uNy0yLjUtMi4xLTEyLTMuOC0xMi42bC0yMDQuOS0uMSAwLTQ4LjIgMCAweiJdfSxyQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja3JtcyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlOSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQxMy40IDQyNy41bC05MCAwLTExMi0xMzEuM2MtMTcuOS0yMC40LTMuOS01Ni4xIDI2LjYtNTYuMWw3NS4zIDAtODQuNi05OS4zLTg0LjMgOTguOS05MCAwIDE0Ny4xLTE3Mi41YzE0LjQtMTguNCA0MS4zLTE3LjMgNTQuNSAwTDQxMy43IDI1Mi4zYzE5IDIyLjggMiA1Ny4yLTI3LjYgNTYuMS0uNiAwLTc0LjIgLjItNzQuMiAuMkw0MTMuNCA0MjcuNXoiXX0sb0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuc3BsYXNoIixpY29uOls0NDgsNTEyLFtdLCJlMDdjIiwiTTQ0OCAyMzAuMmwwIDI0OS44LTQ0OCAwIDAtMjQ5LjggMTQxLjEgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOSAxNDEuMSAwek0zMDYuOSAzMmwtMTY1LjcgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOXoiXX0sUDhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1pbnN0YWdyYW0iLGljb246WzQ0OCw1MTIsWyJpbnN0YWdyYW0tc3F1YXJlIl0sImUwNTUiLCJNMTk0LjQgMjExLjdhNTMuMyA1My4zIDAgMSAwIDU5LjIgODguNiA1My4zIDUzLjMgMCAxIDAgLTU5LjItODguNnptMTQyLjMtNjguNGMtNS4yLTUuMi0xMS41LTkuMy0xOC40LTEyLTE4LjEtNy4xLTU3LjYtNi44LTgzLjEtNi41LTQuMSAwLTcuOSAuMS0xMS4yIC4xcy03LjIgMC0xMS40LS4xYy0yNS41LS4zLTY0LjgtLjctODIuOSA2LjUtNi45IDIuNy0xMy4xIDYuOC0xOC40IDEycy05LjMgMTEuNS0xMiAxOC40Yy03LjEgMTguMS02LjcgNTcuNy02LjUgODMuMiAwIDQuMSAuMSA3LjkgLjEgMTEuMXMwIDctLjEgMTEuMWMtLjIgMjUuNS0uNiA2NS4xIDYuNSA4My4yIDIuNyA2LjkgNi44IDEzLjEgMTIgMTguNHMxMS41IDkuMyAxOC40IDEyYzE4LjEgNy4xIDU3LjYgNi44IDgzLjEgNi41IDQuMSAwIDcuOS0uMSAxMS4yLS4xczcuMiAwIDExLjQgLjFjMjUuNSAuMyA2NC44IC43IDgyLjktNi41IDYuOS0yLjcgMTMuMS02LjggMTguNC0xMnM5LjMtMTEuNSAxMi0xOC40YzcuMi0xOCA2LjgtNTcuNCA2LjUtODMgMC00LjItLjEtOC4xLS4xLTExLjRzMC03LjEgLjEtMTEuNGMuMy0yNS41IC43LTY0LjktNi41LTgzLTIuNy02LjktNi44LTEzLjEtMTItMTguNGwwIC4yem0tNjcuMSA0NC41YzE4LjEgMTIuMSAzMC42IDMwLjkgMzQuOSA1Mi4ycy0uMiA0My41LTEyLjMgNjEuNmMtNiA5LTEzLjcgMTYuNi0yMi42IDIyLjZzLTE5IDEwLjEtMjkuNiAxMi4yYy0yMS4zIDQuMi00My41LS4yLTYxLjYtMTIuM3MtMzAuNi0zMC45LTM0LjktNTIuMiAuMi00My41IDEyLjItNjEuNiAzMC45LTMwLjYgNTIuMi0zNC45IDQzLjUgLjIgNjEuNiAxMi4ybC4xIDB6bTI5LjItMS4zYy0zLjEtMi4xLTUuNi01LjEtNy4xLTguNnMtMS44LTcuMy0xLjEtMTEuMSAyLjYtNy4xIDUuMi05LjggNi4xLTQuNSA5LjgtNS4yIDcuNi0uNCAxMS4xIDEuMSA2LjUgMy45IDguNiA3IDMuMiA2LjggMy4yIDEwLjZjMCAyLjUtLjUgNS0xLjQgNy4zcy0yLjQgNC40LTQuMSA2LjItMy45IDMuMi02LjIgNC4yLTQuOCAxLjUtNy4zIDEuNWMtMy44IDAtNy41LTEuMS0xMC42LTMuMmwtLjEgMHpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTM1NyAzODljLTE4LjcgMTguNy00MS40IDI0LjYtNjcgMjUuOS0yNi40IDEuNS0xMDUuNiAxLjUtMTMyIDAtMjUuNi0xLjMtNDguMy03LjItNjctMjUuOXMtMjQuNi00MS40LTI1LjgtNjdjLTEuNS0yNi40LTEuNS0xMDUuNiAwLTEzMiAxLjMtMjUuNiA3LjEtNDguMyAyNS44LTY3czQxLjUtMjQuNiA2Ny0yNS44YzI2LjQtMS41IDEwNS42LTEuNSAxMzIgMCAyNS42IDEuMyA0OC4zIDcuMSA2NyAyNS44czI0LjYgNDEuNCAyNS44IDY3YzEuNSAyNi4zIDEuNSAxMDUuNCAwIDEzMS45LTEuMyAyNS42LTcuMSA0OC4zLTI1LjggNjdsMCAuMXoiXX0sbkN0PVA4ZSxsQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXItYWx0IixpY29uOls1MTIsNTEyLFtdLCJmNTBhIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA3LjhhMjQwLjIgMjQwLjIgMCAxIDEgMCA0ODAuNCAyNDAuMiAyNDAuMiAwIDEgMSAwLTQ4MC40em0wIDIwLjVhMjE5LjcgMjE5LjcgMCAxIDAgMCA0MzkuNCAyMTkuNyAyMTkuNyAwIDEgMCAwLTQzOS40em0wIDguMmEyMTEuNSAyMTEuNSAwIDEgMSAwIDQyMyAyMTEuNSAyMTEuNSAwIDEgMSAwLTQyM3ptMTg2LjIgMjYwYy00LjQgMTcuMS0xMS4yIDMzLjUtMjAuMSA0OC43bC03NC4xLTM1LjkgNjEuNSA1NC44Yy0xMC42IDE0LjEtMjMuMiAyNi42LTM3LjIgMzcuM2wtNTQuOC02MS42IDM1LjkgNzQuM2MtMTUuMiA5LTMxLjYgMTUuOC00OC42IDIwLjJsLTI3LjMtNzguNSA0LjggODIuOWMtOC42IDEuMi0xNy40IDEuOC0yNi4zIDEuOHMtMTcuNy0uNi0yNi4zLTEuOGw0LjgtODIuNS0yNy4yIDc4Yy0xNy4xLTQuNS0zMy40LTExLjMtNDguNy0yMC4ybDM1LjktNzQuMy01NC45IDYxLjZjLTE0LTEwLjctMjYuNi0yMy4yLTM3LjItMzcuM2w2MS42LTU0LjktNzQuMyAzNS45QzgwLjcgMzM4IDc0IDMyMS43IDY5LjUgMzA0LjZsNzcuOC0yNy4xLTgyLjIgNC44Yy0xLjItOC42LTEuOC0xNy4zLTEuOC0yNi4yIDAtOSAuNi0xNy44IDEuOC0yNi41bDgyLjQgNC44LTc3LjktMjcuMmM0LjUtMTcuMSAxMS4zLTMzLjUgMjAuMi00OC43bDc0LjIgMzUuOS02MS41LTU0LjljMTAuNy0xNCAyMy4yLTI2LjYgMzcuMy0zNy4ybDU0LjggNjEuNS0zNS44LTc0LjJjMTUuMi04LjkgMzEuNi0xNS43IDQ4LjYtMjAuMWwyNi45IDc3LjItNC43LTgxLjZjOC42LTEuMiAxNy40LTEuOCAyNi4zLTEuOHMxNy43IC42IDI2LjMgMS44bC00LjcgODIuMiAyNy03Ny44YzE3LjMgNC41IDMzLjYgMTEuNCA0OC42IDIwLjJsLTM1LjggNzQuMSA1NC43LTYxLjVjMTQuMSAxMC43IDI2LjYgMjMuMiAzNy4yIDM3LjJsLTYxLjQgNTQuOCA3NC4xLTM1LjljOC45IDE1LjIgMTUuNyAzMS42IDIwLjIgNDguNmwtNzcuOCAyNy4xIDgyLjItNC43YzEuMiA4LjcgMS44IDE3LjUgMS44IDI2LjUgMCA4LjktLjYgMTcuNi0xLjggMjYuMmwtODIuMS00LjcgNzcuNyAyNy4xeiJdfSxjQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnVsY3J1bSIsaWNvbjpbMjU2LDUxMixbXSwiZjUwYiIsIk02My44IDE2NC4xTDI4LjQgMjA3LjctNyAxNjQuMSAyOC40IDEyMC42IDYzLjggMTY0LjF6TTExMi4yIDBsLTIwLjUgMTk4LjItNTEgNTcuOCA1MSA1Ny44IDIwLjUgMTk4LjIgMC0yMTEuMS00MS4xLTQ0LjkgNDEuMS00NC45IDAtMjExLjF6bTc5LjcgMTY0LjFsMzUuNCA0My42IDM1LjQtNDMuNi0zNS40LTQzLjUtMzUuNCA0My41em0tNDguNSA0N2w0MS4xIDQ0LjktNDEuMSA0NC45IDAgMjExLjEgMjAuNi0xOTguMiA1MS01Ny44LTUxLTU3LjgtMjAuNi0xOTguMiAwIDIxMS4xeiJdfSxkQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJjaC1saW51eCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NyIsIk0yODguNy03LjhjLTI0LjEgNTktMzguNiA5Ny43LTY1LjQgMTU1IDE2LjQgMTcuNCAzNi42IDM3LjYgNjkuNCA2MC41LTM1LjItMTQuNS01OS4yLTI4LjktNzcuMi00NC0zNC4zIDcxLjYtODguMSAxNzMuNS0xOTcuMiAzNjkuNCA4NS43LTQ5LjUgMTUyLjItODAgMjE0LjEtOTEuNi0yLjctMTEuNC00LjEtMjMuOC00LTM2LjdsLjEtMi43YzEuNC01NC45IDI5LjktOTcuMiA2My44LTk0LjRzNjAuMiA0OS44IDU4LjggMTA0LjdjLS4zIDEwLjMtMS40IDIwLjItMy40IDI5LjQgNjEuMiAxMiAxMjcgNDIuNCAyMTEuNiA5MS4yLTE2LjctMzAuNy0zMS42LTU4LjMtNDUuOC04NC43LTIyLjQtMTcuNC00NS43LTM5LjktOTMuMy02NC40IDMyLjcgOC41IDU2LjMgMTguMyA3NC41IDI5LjMtMTQ0LjUtMjY5LjEtMTU2LjItMzA0LjgtMjA1LjgtNDIxLjF6Il19LHVDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRpdmVyc2UiLGljb246WzU3Niw1MTIsW10sImU4NjUiLCJNMzk0LjggNTI2LjlhNTQgNTQgMCAxIDEgNS44LTEwNy44IDU0IDU0IDAgMSAxIC01LjggMTA3Ljh6bS01MC4xLTgwLjZjLTUuNSAxMC45LTcuNCAyMy4zLTUuNiAzNS40TDE2OC43IDQ1NC40YzUuNS0xMC45IDcuNS0yMy4zIDUuNy0zNS40bDE3MC4zIDI3LjN6TTExMi43IDQ4MS42YTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44em0yNTcuNy02MS40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zbC03MC42LTcwLjkgMzMuNi0xNyA2Mi40IDYyLjd6TTQ4Ni4xIDI2MWM4LjcgOC42IDE5LjggMTQuMyAzMS45IDE2LjRMNDM5LjQgNDMwLjhjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuNEw0ODYuMSAyNjF6TTM3Ni43IDIxOS4zbDMwLjUgMTk1LjFjLTEyLjEtMS45LTI0LjUtLjEtMzUuNCA1LjNsLTMyLjItMjA2LjMgMzcuMiA2ek0zNTAuNCAzMjguOUwxNzQuMiA0MTguMmMtMi0xMi4xLTcuNi0yMy4yLTE2LjItMzJsMTg2LjYtOTQuNiA1LjggMzcuMnptLTE1Mi43LTIybC00MC4zIDc4LjdjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuM2w0NS42LTg5IDI2LjYgMjYuN3pNMTI0LjcgMzY5Yy0xMi4xLTEuOC0yNC40IC4yLTM1LjQgNS42TDYyLjcgMjA0LjNjMTIuMSAxLjggMjQuNS0uMSAzNS40LTUuNkwxMjQuNyAzNjl6bTE0Ny4xLTQ3LjhsLTMzLjYgMTctMTM5LjQtMTM5LjljMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0wyNzEuOCAzMjEuMnptMTk3LjUtOTIuOGMyIDEyLjEgNy42IDIzLjIgMTYuMiAzMS45bC04OS4zIDQ1LjItNS44LTM3LjIgNzguOS00MHptNTUuNiA0NC4zYTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44ek0yODQuNiA1OC43YzguNyA4LjYgMTkuOCAxNC4zIDMxLjggMTYuM2wtOTUuMyAxODYuMS0yNi42LTI2LjcgOTAtMTc1Ljh6TTQ3NC45IDE5Mi4xYy01LjUgMTAuOS03LjUgMjMuMy01LjcgMzUuM2wtMjA2LjQtMzMuMSAxNy4yLTMzLjUgMTk1IDMxLjN6TTY4LjcgMTk5LjZBNTQgNTQgMCAxIDEgNzQuNiA5MS44IDU0IDU0IDAgMSAxIDY4LjcgMTk5LjZ6bTQzMi0zMy40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zTDM1My41IDY5LjNjMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0w1MDAuNiAxNjYuMnpNMjI5LjMgMTUyLjZsLTE3LjIgMzMuNS04Ny40LTE0YzUuNC0xMC45IDcuNC0yMy4zIDUuNS0zNS40bDk5IDE1Ljl6bTEzOS41IDE1LjlsLTM3LjItNi0xMy42LTg3LjJjMTIuMSAxLjcgMjQuNS0uMyAzNS4zLTUuOWwxNS41IDk5LjF6TTI2Ny44IDI2LjJjMiAxMi4xIDcuNiAyMy4yIDE2LjIgMzEuOWwtMTUzLjkgNzhjLTItMTIuMS03LjYtMjMuMi0xNi4yLTMxLjlsMTUzLjktNzh6bTU1LjYgNDQuM2E1NCA1NCAwIDEgMSA1LjgtMTA3LjggNTQgNTQgMCAxIDEgLTUuOCAxMDcuOHoiXX0scEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlLXJldmVyc2UiLGljb246WzQ0OCw1MTIsW10sImU2M2QiLCJNMjk4LjUgMGMzIDAgNS44IDEuMyA3LjggMy42bDM4LjEgNDRjLjUtLjEgMS0uMiAxLjUtLjMgOS4yLTEuNiAxOC42LTIuMiAyNy43LTEuMiAxMS42IDEuNCAyMS41IDUuNCAyOC45IDEyLjkgNy43IDcuOCAxNS40IDE1LjggMjIuNiAyMy42IDIuNSAyLjcgNC45IDUuMiA2LjkgNy40IC43IC44IDEuNCAxLjUgMS45IDIgMy40IDMuNyA0LjIgOC4xIDIuNyAxMS45bC05LjggMjQuNiAxMy4xIDM4LjFjLjcgMiAuOCA0LjEgLjIgNi4yLS4xIC40LS4xIC40LS41IDIuMWwtMS41IDUuOGMtMS42IDYuMy0zLjUgMTMuMy01LjQgMjAuOS01LjYgMjEuNi0xMS4yIDQzLjItMTYuNCA2My40LTEyLjkgNDkuOS0yMS40IDgyLjctMjMuNCA5MC45LTExLjEgNDQuNS0xOS45IDYwLTQ4LjMgODAuMy0yNC45IDE3LjgtNzYuOCA1My42LTg2LjggNjAtMSAuNi0yIDEuMy0zLjQgMi4zLS41IC40LTMuMiAyLjItMy45IDIuNy00LjkgMy4zLTguMyA1LjUtMTIuMSA3LjMtNC43IDIuMi05LjMgMy41LTEzLjkgMy41cy05LjEtMS4yLTEzLjktMy41Yy0zLjctMS44LTcuMi0zLjktMTIuMS03LjMtLjgtLjUtMy40LTIuNC0zLjktMi43LTEuNC0xLTIuNS0xLjctMy40LTIuMy0xMC02LjQtNjEuOS00Mi4xLTg2LjgtNjAtMjguNC0yMC40LTM3LjItMzUuOC00OC4zLTgwLjMtMi04LjItMTAuNS00MS0yMy4zLTkwLjUtNS4zLTIwLjYtMTAuOS00Mi4yLTE2LjUtNjMuOC0yLTcuNi0zLjgtMTQuNi01LjQtMjAuOWwtMS41LTUuOC0uNS0yLjFjLS41LTItLjQtNC4yIC4yLTYuMmwxMy4xLTM4LjEtOS45LTI0LjVjLTEuNS0zLjgtLjctOC4yIDItMTEuMiAxLjItMS4zIDEuOC0yIDIuNi0yLjggMi0yLjIgNC40LTQuNyA2LjktNy40IDcuMy03LjcgMTUtMTUuNyAyMi43LTIzLjUgNy40LTcuNSAxNy4zLTExLjYgMjguOS0xMi45IDkuMS0xLjEgMTguNS0uNSAyNy43IDEuMiAuNSAuMSAxIC4yIDEuNSAuM2wzOC4xLTQ0YzItMi40IDQuOC0zLjcgNy44LTMuN2wxNDggMHptLTQuNyAyMS4xbC0xMzguNiAwLTM5LjEgNDUuMWMtMi42IDMtNi43IDQuMy0xMC42IDMuMi0uMi0uMS0uNy0uMi0xLjUtLjQtMS4zLS4zLTIuOS0uNi00LjUtLjktNy40LTEuMy0xNC45LTEuOC0yMS43LTEtNy4zIC45LTEzIDMuMi0xNi42IDYuOS03LjYgNy43LTE1LjIgMTUuNi0yMi4zIDIzLjMtMS43IDEuOC0zLjMgMy41LTQuOCA1LjFsOC44IDIyYzEgMi40IDEgNSAuMiA3LjVMMjkuNyAxNzAuNmMuNCAxLjQgLjUgMS45IDEuMiA0LjggMS42IDYuMyAzLjUgMTMuMyA1LjQgMjAuOSA1LjYgMjEuNiAxMS4yIDQzLjIgMTYuNCA2My40IDEyLjkgNTAgMjEuNCA4Mi44IDIzLjQgOTEgMTAuMSA0MC4xIDE2LjQgNTEuMyA0MC4yIDY4LjMgMjQuNiAxNy42IDc2LjMgNTMuMiA4NS45IDU5LjMgMS4yIC44IDIuNSAxLjYgNCAyLjcgLjYgLjQgMy4yIDIuMiAzLjkgMi43IDQgMi44IDYuNyA0LjQgOS4yIDUuNiAyLjIgMSAzLjkgMS41IDUuMSAxLjVzMi45LS41IDUuMS0xLjVjMi41LTEuMiA1LjItMi44IDkuMi01LjYgLjctLjUgMy4zLTIuMyAzLjktMi43IDEuNi0xLjEgMi44LTEuOSA0LTIuNyA5LjYtNi4xIDYxLjMtNDEuNyA4NS45LTU5LjMgMjMuOC0xNy4xIDMwLjItMjguMiA0MC4xLTY4LjMgMi4xLTguMyAxMC41LTQxLjEgMjMuMy05MC43IDUuMy0yMC42IDEwLjktNDIuMiAxNi41LTYzLjggMi03LjYgMy44LTE0LjYgNS40LTIwLjkgLjctMi45IC45LTMuNCAxLjItNC44bC0xMy4zLTM4LjhjLS44LTIuNC0uOC01LjEgLjItNy41bDguOC0yMmMtMS41LTEuNi0zLjEtMy4zLTQuOC01LjEtNy4yLTcuNi0xNC43LTE1LjUtMjIuMy0yMy4zLTMuNy0zLjctOS4zLTYtMTYuNi02LjktNi44LS44LTE0LjQtLjMtMjEuNyAxLTEuNyAuMy0zLjIgLjYtNC41IC45LS44IC4yLTEuMyAuMy0xLjUgLjQtMy44IDEuMS03LjktLjItMTAuNi0zLjJMMjkzLjggMjEuMXpNMjI0LjUgMzE2YzIuOCAwIDIwLjkgNi41IDM1LjQgMTQuMXMyNSAxMyAyOC4zIDE1LjIgMS4zIDYuMi0xLjcgOC40LTQ0LjEgMzQuNi00OC4xIDM4LjItOS44IDkuNS0xMy44IDkuNS05LjgtNS45LTEzLjgtOS41LTQ1LjEtMzYtNDguMS0zOC4yLTUuMS02LjItMS43LTguNCAxMy45LTcuNSAyOC4zLTE1LjIgMzIuNS0xNC4xIDM1LjQtMTQuMWwtLjIgMHptLjEtMjMwLjdjLjcgMCA4LjggLjIgMjAuNSA0LjIgMTIuMyA0LjIgMjUuNyA5LjQgMzEuOSA5LjRzNTEuOS04LjkgNTEuOS04LjkgNTQuMiA2Ni43IDU0LjIgODEtNi44IDE4LTEzLjcgMjUuNC0zNi44IDM5LjgtNDAuNyA0My45LTExLjkgMTAuNS03LjEgMjEuOCAxMS43IDI1LjggMy45IDQwLjQtMjEgMjQuNC0yOS40IDIyLjgtMjguNC0xMi4yLTM1LjctMTcuMS0zMC41LTI0LjMtMzAuNS0zMS44IDI0LTIwLjggMjguNC0yMy45IDI0LjctMTQuOCAyNS4xLTE5LjQgLjMtNi01LjctMTcuNC0xNi43LTI2LjctMTQuOS0zNi44IDE5LjEtMTUuNCAzMS41LTIwLjIgMzYuMi0xMy43IDM5LjItMTUuMSAyLjItMi43LTYuOC0zLjYtMzQuNi00LjMtNDYuMS0xLjEtMzEuMiA4LjItMzIuOCAxMC45LTMgMi43LTEuNCAxMS44IDEwLjEgNTIuOCAxMC45IDYwLjYgMi40IDEyLjktNS44IDE0LjgtMjIuMSA1LjItMjYuOCA1LjItMTguNi0zLjMtMjYuOC01LjItNi42LTctNS44LTE0LjggOS4zLTUxLjUgMTAuOS02MC42IC4yLTkuMi0xLjQtMTEuOC0yMS4zLTcuNi0zMi44LTEwLjktMzcuMSAuMi00Ni4xIDEuMS05LjggMi4yLTYuOCAzLjYgMjYuOCAxMC40IDM5LjIgMTUuMSAyOS43IDEwIDMxLjUgMjAuMi05IDI1LjQtMTQuOSAzNi44LTYuMSAxMi44LTUuNyAxNy40IDIwLjYgMTYuNCAyNS4xIDE5LjQgMjguNCAxNi40IDI4LjQgMjMuOS0yMy4yIDI3LTMwLjUgMzEuOC0yNy4yIDE1LjQtMzUuNyAxNy4xLTIxLjctOC4yLTI5LjQtMjIuOC0uOC0yOS4xIDMuOS00MC40LTMuMy0xNy43LTcuMS0yMS44LTMzLjgtMzYuNS00MC43LTQzLjktMTMuNy0xMS4yLTEzLjctMjUuNCA1NC4yLTgxIDU0LjItODEgNDUuOCA4LjkgNTEuOSA4LjkgMTkuNS01LjIgMzEuOS05LjQgMjAuNi00LjIgMjAuNi00LjJsLS4zIDB6Il19LGhDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhbmV4IixpY29uOls1MTIsNTEyLFtdLCJmMzc0IiwiTTQ1My4yIDMybC0zMTIgMEMxMDIuMyAzMiA2NSA2My4yIDU3LjkgMTAxLjdMMS4zIDQxMC4zQy01LjggNDQ4LjggMjAgNDgwIDU5IDQ4MGwzMTIgMGMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN0w1MTEgMTAxLjhDNTE4IDYzLjIgNDkyLjIgMzIgNDUzLjIgMzJ6TTM5NSAzNzkuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlsLTIwLjUtMjkuNi02OC44LTk5LjggMTguOC0yOC45IDguOS00LjggMTAzLjEgMTEyLjQgNC45IDQuNWMxOS40LTE4LjggMzMuOC0zMi40IDMzLjgtMzIuNCA3LjctNi41IDIxLjUtMi45IDMwLjcgNy45IDkgMTAuNSAxMC42IDI0LjcgMi43IDMxLjMtMS44IDEuMy0xNS41IDExLjQtMzUuMyAyNS42bDQuNSA3LjMgOTQuOSAxMTkuNC02LjMgNy45eiJdfSxmQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnM4IixpY29uOls2NDAsNTEyLFtdLCJmM2Q1IiwiTTEwNC4zIDI2OS4ybDI2LjEgMCAwLTI2LjItMjYuMSAwIDAgMjYuMnpNMTU2LjggMjQzbC0uMS0yNi4yIDAtLjljLS4yLTEwLjQtNC40LTIwLjMtMTEuOS0yNy42cy0xNy41LTExLjMtMjcuOS0xMS4xLTIwLjMgNC40LTI3LjYgMTEuOC0xMS4zIDE3LjUtMTEuMiAyNy45bDAgLjIgMjYuNCAwIDAtLjJjLjEtMy40IDEuNS02LjYgMy45LTlzNS43LTMuNyA5LjEtMy43IDYuNyAxLjMgOS4xIDMuNyAzLjggNS42IDMuOSA5bDAgMjYuMiAyNi4zIDB6bTUyLjQgMjUuOGMwIDEyLTIuNCAyMy44LTYuOSAzNC45cy0xMS4zIDIxLjEtMTkuNyAyOS42LTE4LjUgMTUuMi0yOS42IDE5LjctMjIuOSA2LjktMzQuOSA2LjlsLS42IDBjLTI0LjIgMC00Ny4zLTkuNi02NC40LTI2LjdTMjYuMyAyOTMgMjYuMyAyNjguOGwtMjYuMyAwIDAgLjJjMCAxNS40IDMuMSAzMC43IDkgNDQuOXMxNC42IDI3LjIgMjUuNSAzOC4xIDIzLjkgMTkuNSAzOC4xIDI1LjQgMjkuNSA4LjkgNDQuOSA4LjlsLjggMGMxNS40IDAgMzAuNy0zIDQ0LjktOXMyNy4yLTE0LjYgMzguMS0yNS41IDE5LjUtMjMuOCAyNS40LTM4LjEgOC45LTI5LjUgOC45LTQ0LjlsMC0yNi0yNi4zIDAgMCAyNnptLTE1Ny4yIDBjLjEgMTcuMyA3IDMzLjkgMTkuMiA0Ni4xczI4LjggMTkuMSA0Ni4xIDE5LjEgMzMuOS02LjkgNDYuMS0xOS4xIDE5LjItMjguOCAxOS4yLTQ2LjFsLTI2LjMgMGMtLjIgMTAuMi00LjQgMjAtMTEuNyAyNy4ycy0xNy4xIDExLjItMjcuNCAxMS4yLTIwLjEtNC0yNy40LTExLjItMTEuNS0xNi45LTExLjctMjcuMmwwLTI2LTI2LjMgMCAwLTI2LjZjLjMtMTcuMyA3LjQtMzMuOCAxOS43LTQ1LjhzMjktMTguOCA0Ni4zLTE4LjYgMzMuOCA3LjIgNDUuOSAxOS41IDE4LjkgMjguOSAxOC45IDQ2LjJsMCAyNS4zIDI2LjMgMCAwLTI1LjNjMC0yNC4zLTkuNy00Ny43LTI2LjktNjQuOXMtNDAuNS0yNi45LTY0LjktMjYuOS00Ny43IDkuNy02NC45IDI2LjktMjYuOSA0MC41LTI2LjkgNjQuOWwwIDI1LjQgMjYuMyAwIDAgMjZ6bTQxOC40LTcxLjJjMTMuNyAwIDI0LjYgNi42IDMwLjEgMTguM2wuNyAxLjUgMjMuMi0xMS41LS42LTEuNGMtOC0xOS4zLTI4LjUtMzEuMy01My40LTMxLjMtMjMuMSAwLTQzLjYgMTEuNC01MSAyOC40LS4xIDI2LjktLjIgMjMuOSAwIDI0LjggNC43IDExIDE0LjYgMTkuNCAyOC43IDI0LjIgNi41IDIgMTMuMSAzLjMgMTkuOCA0IDUuNSAuNyAxMC42IDEuNCAxNS44IDMuMSA2LjQgMi4xIDEwLjUgNS4zIDEyLjggOS44bDAgOS45Yy0zLjcgNy41LTEzLjggMTIuMy0yNS44IDEyLjMtMTQuMyAwLTI2LTYuOS0zMS45LTE5bC0uNy0xLjUtMjMgMTEuNSAuNiAxLjRjNy45IDE5LjQgMjkuNiAzMiA1NS4zIDMyIDIzLjYgMCA0NC42LTExLjQgNTIuMy0yOC40bC4yLTI1LjktLjItLjdjLTQuOS0xMS0xNS4yLTE5LjYtMjguOS0yNC4yLTcuNy0yLjctMTQuMy0zLjYtMjAuNy00LjQtNS0uNS0xMC0xLjUtMTQuOC0yLjktNi4zLTEuOS0xMC40LTUuMS0xMi42LTkuNmwwLTguNGMzLjQtNy40IDEyLjktMTIuMSAyNC4yLTEyLjFsMCAwek0yODcuNiAzMTEuM2wyNi4xIDAgMC02OC40LTI2LjEgMCAwIDY4LjR6TTYzOS44IDI1OGMtMi45LTYuMy04LjMtMTItMTUuNC0xNi43IDUuNi0zLjggMTAuMS05LjEgMTMtMTUuM2wuMi0yNS4zLS4yLS43Yy03LjQtMTYtMjYuNy0yNi43LTQ4LjItMjYuN1M1NDguNSAxODQgNTQxLjEgMjAwbC0uMiAyNS4zIC4yIC43YzIuOSA2LjEgNy40IDExLjQgMTMgMTUuMy03LjIgNC43LTEyLjUgMTAuNS0xNS40IDE2LjdsLS4yIDI4LjkgLjIgLjdjNy42IDE2IDI3LjkgMjYuNyA1MC42IDI2LjdzNDMuMS0xMC43IDUwLjYtMjYuN2wuMi0yOC45LS4yLS43em0tNzMuMi01MC44YzMuNi02LjMgMTIuNi0xMC41IDIyLjYtMTAuNXMxOSA0LjIgMjIuNiAxMC41bDAgMTMuN2MtMy41IDYuMi0xMi42IDEwLjMtMjIuNiAxMC4zcy0xOS4xLTQuMi0yMi42LTEwLjNsMC0xMy43em00Ny4zIDcyLjJjLTMuOCA2LjYtMTMuMyAxMC45LTI0LjcgMTAuOS0xMS4xIDAtMjEtNC40LTI0LjctMTAuOWwwLTE2LjJjMy43LTYuMyAxMy41LTEwLjUgMjQuNy0xMC41IDExLjMgMCAyMC45IDQuMSAyNC43IDEwLjVsMCAxNi4yek0zNzYuNCAyNjZsLTU5LjgtODkuNy0yOSAwIDAgNDAuNiAyNi41IDAgMCAuNCA2Mi41IDk0LjEgMjUuNyAwIDAtMTM1LjEtMjUuOSAwIDAgODkuN3oiXX0sSThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1waW50ZXJlc3QiLGljb246WzQ0OCw1MTIsWyJwaW50ZXJlc3Qtc3F1YXJlIl0sImYwZDMiLCJNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNzIuNiAwLTIuMi0uOGMtNS40LTQ4LjEtMy4xLTU3LjUgMTUuNy0xMzQuNyAzLjktMTYgOC41LTM1IDEzLjktNTcuOSAwIDAtNy4zLTE0LjgtNy4zLTM2LjUgMC03MC43IDc1LjUtNzggNzUuNS0yNSAwIDEzLjUtNS40IDMxLjEtMTEuMiA0OS44LTMuMyAxMC42LTYuNiAyMS41LTkuMSAzMi01LjcgMjQuNSAxMi4zIDQ0LjQgMzYuNCA0NC40IDQzLjcgMCA3Ny4yLTQ2IDc3LjItMTEyLjQgMC01OC44LTQyLjMtOTkuOS0xMDIuNi05OS45LTY5LjkgMC0xMTAuOSA1Mi40LTExMC45IDEwNi42IDAgMjEuMSA4LjIgNDMuNyAxOC4zIDU2IDIgMi40IDIuMyA0LjUgMS43IDctMS4xIDQuNy0zLjEgMTIuOS00LjcgMTkuMi0xIDQtMS44IDcuMy0yLjEgOC42LTEuMSA0LjUtMy41IDUuNS04LjIgMy4zLTMwLjYtMTQuMy00OS44LTU5LjEtNDkuOC05NS4xIDAtNzcuNSA1Ni4yLTE0OC42IDE2Mi4yLTE0OC42IDg1LjIgMCAxNTEuNCA2MC43IDE1MS40IDE0MS44IDAgODQuNi01My4zIDE1Mi43LTEyNy40IDE1Mi43LTI0LjkgMC00OC4zLTEyLjktNTYuMy0yOC4yIDAgMC0xMi4zIDQ2LjktMTUuMyA1OC40LTUgMTkuMy0xNy42IDQyLjktMjcuNCA1OS4zTDM4NCA0ODBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6Il19LG1DdD1JOGUsZ0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWV0b290aC1iIixpY29uOlsyNTYsNTEyLFtdLCJmMjk0IiwiTTE2NC45IDI2MEwyNTcuNSAxNTYuNyAxMTEuNiAwIDExMS42IDIwNi4zIDI1LjQgMTIwLjItNiAxNTEuNiAxMDIuMSAyNjAtNiAzNjguNCAyNS40IDM5OS44IDExMS42IDMxMy43IDExNC4zIDUxMiAyNjIuOCAzNjMuNCAxNjQuOSAyNjB6bTQwLjktMTAzbC01MCA1MC0uMy0xMDAuMyA1MC4zIDUwLjN6bS01MCAxNTZsNTAgNTAtNTAuMyA1MC4zIC4zLTEwMC4zeiJdfSxiQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JpcGZpcmUiLGljb246WzMyMCw1MTIsW10sImYzYWMiLCJNODAuNSAzMDEuNGMwLTczLjggMTA1LjEtMTIyLjUgMTA1LjEtMjAzIDAtNDcuMS0zNC04OC0zOS4xLTkwLjQgLjQgMy4zIC42IDYuNyAuNiAxMCAwIDkyLjEtMTQ3LjEgMTUzLjktMTQ3LjEgMjY4LjYgMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6Il19LEE4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ29vZ2xlLXBsdXMiLGljb246WzQ0OCw1MTIsWyJnb29nbGUtcGx1cy1zcXVhcmUiXSwiZjBkNCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNNjQgMjU2YzAtNTUuMyA0NC43LTEwMCAxMDAtMTAwIDI3IDAgNDkuNSA5LjggNjcgMjYuMmwtMjcuMSAyNi4xYy03LjQtNy4xLTIwLjMtMTUuNC0zOS44LTE1LjQtMzQuMSAwLTYxLjkgMjguMi02MS45IDYzLjIgMCAzNC45IDI3LjggNjMuMiA2MS45IDYzLjIgMzkuNiAwIDU0LjQtMjguNSA1Ni44LTQzLjFsLTU2LjkgMCAwLTM0LjQgOTQuNCAwYzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjYtNTUuMyAwLTEwMC00NC43LTEwMC0xMDB6bTI5MSAxOC4ybDAgMjktMjkuMiAwIDAtMjktMjkgMCAwLTI5LjIgMjkgMCAwLTI5IDI5LjIgMCAwIDI5IDI5IDAgMCAyOS4yLTI5IDB6Il19LHZDdD1BOGUseEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGVlIixpY29uOls1MTIsNTEyLFtdLCJlODYzIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zODUuNiAxMTMuOGwwIDAtMTc3IDBjLTUyLjQgMC05NC44IDQyLjQtOTQuOCA5NC44bDAgMTc3YzAgNyA1LjcgMTIuNiAxMi42IDEyLjZsMTg2LjUgMGM0Ny4xIDAgODUuMy0zOC4yIDg1LjMtODUuM2wwLTcyLjdjMC03LTUuNy0xMi42LTEyLjYtMTIuNmwtMTQ1LjQgMGMtNyAwLTEyLjYgNS43LTEyLjYgMTIuNmwwIDMxLjZjMCA2LjYgNS4xIDEyLjEgMTEuNiAxMi42bDEgMCA4OC41IDBjNi42IDAgMTIuMSA1LjEgMTIuNiAxMS42bDAgMSAwIDYuM2MwIDIwLjktMTcgMzcuOS0zNy45IDM3LjlsLTEyMC4xIDBjLTcgMC0xMi42LTUuNy0xMi42LTEyLjZsMC0xMjAuMWMwLTIwLjQgMTYuMS0zNy4xIDM2LjQtMzcuOWwxLjYgMCAxNzcgMGM3IDAgMTIuNi01LjcgMTIuNi0xMi42bDAtMzEuNmMwLTctNS42LTEyLjYtMTIuNi0xMi42eiJdfSx5Q3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieG1wcCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NCIsIk0wIDQ3LjJjMy41IDEzNy4xIDExNy4xIDI3OC42IDI1Mi45IDM1Ni43LTMxLjUgMjUtNjcuMiA0NC4xLTEwNi4yIDUzLjlsMCA1LjRjNTYuNC0yLjMgOTguMS0yMC4xIDE0MS4zLTQwLjcgNjUuNyAzNC42IDEyMi4yIDM5LjkgMTQxLjQgNDAuN2wwLTUuNGMtMzktOS44LTc0LjctMjguOC0xMDYuMi01My44IDEzNS43LTc4LjIgMjQ5LjMtMjE5LjggMjUyLjgtMzU2LjgtNTguNCAyNS43LTExOS4xIDQ0LjItMTgwLjEgNjIuM2wwIDBjMy40IDU5LTIwLjIgMTcwLjQtMTA3LjkgMjYyLjMtODguNC05Mi4zLTExMS4yLTIwNC4xLTEwNy44LTI2Mi4zbDAgMEMxMTcuNyA5Mi42IDU5LjMgNzAuMiAwIDQ3LjJ6TTkzLjkgOTdsNzMuNiAyMS44QzE2NS40IDIxNiAyMjYuOCAzNTggMzQxLjMgNDMyLjIgMTkwLjUgMzc2LjkgODkuOSAyMTUuNyA5My45IDk3em0zODguMyAwYzMuMyA5OS02NS42IDIyNC43LTE3MS43IDI5Ni40LTQuNy00LjEtOS4zLTguNC0xMy44LTEyLjcgNzctODAuMiAxMTMuMi0xODYuMyAxMTEuOS0yNjEuOUw0ODIuMSA5N3pNMjY0LjUgNDEwLjVjMyAxLjYgNS45IDMuMiA4LjkgNC43LTEyLjUgNi40LTI1LjQgMTIuMS0zOC42IDE3IDEwLjMtNi43IDIwLjItMTMuOSAyOS43LTIxLjd6Il19LHdDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHAtc3RvcmUiLGljb246WzUxMiw1MTIsW10sImYzNmYiLCJNMjU1LjkgMTIwLjlsOS4xLTE1LjdjNS42LTkuOCAxOC4xLTEzLjEgMjcuOS03LjVzMTMuMSAxOC4xIDcuNSAyNy45bC04Ny41IDE1MS41IDYzLjMgMGMyMC41IDAgMzIgMjQuMSAyMy4xIDQwLjhsLTE4NS41IDBjLTExLjMgMC0yMC40LTkuMS0yMC40LTIwLjRzOS4xLTIwLjQgMjAuNC0yMC40bDUyIDAgNjYuNi0xMTUuNC0yMC44LTM2LjFjLTUuNi05LjgtMi4zLTIyLjIgNy41LTI3LjkgOS44LTUuNiAyMi4yLTIuMyAyNy45IDcuNWw4LjkgMTUuN3ptLTc4LjcgMjE4bC0xOS42IDM0Yy01LjYgOS44LTE4LjEgMTMuMS0yNy45IDcuNXMtMTMuMS0xOC4xLTcuNS0yNy45bDE0LjYtMjUuMmMxNi40LTUuMSAyOS44LTEuMiA0MC40IDExLjZ6bTE2OC45LTYxLjdsNTMuMSAwYzExLjMgMCAyMC40IDkuMSAyMC40IDIwLjRTNDEwLjUgMzE4IDM5OS4yIDMxOGwtMjkuNSAwIDE5LjkgMzQuNWM1LjYgOS44IDIuMyAyMi4yLTcuNSAyNy45LTkuOCA1LjYtMjIuMiAyLjMtMjcuOS03LjUtMzMuNS01OC4xLTU4LjctMTAxLjYtNzUuNC0xMzAuNi0xNy4xLTI5LjUtNC45LTU5LjEgNy4yLTY5LjEgMTMuNCAyMyAzMy40IDU3LjcgNjAuMSAxMDR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDAgMjU2YTIxNiAyMTYgMCAxIDEgNDMyIDAgMjE2IDIxNiAwIDEgMSAtNDMyIDB6Il19LGtDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXgiLGljb246WzY0MCw1MTIsW10sImY1Y2YiLCJNMzkzLjQgMTMxLjdjMCAxMyAyLjEgMzIuNy0yOC43IDQzLjgtOS41IDMuNC0xNiA5LjctMTYgOS43IDAtMzEgNC43LTQyLjIgMTcuNC00OC45IDkuOC01LjEgMjcuMi00LjYgMjcuMi00LjZ6TTI3Ny42IDE2Ny4ybC0zNC4yIDEzMi43LTI4LjUtMTA4LjZjLTcuNy0zMi0yMC44LTQ4LjUtNDguNC00OC41LTI3LjQgMC00MC43IDE2LjItNDguNCA0OC41TDg5LjUgMjk5LjkgNTUuMyAxNjcuMkM0OS43IDE0MC41IDIzLjkgMTI5IDAgMTMyTDY1LjYgMzc5LjlzMjEuNiAxLjYgMzIuNS00YzE0LjItNy4yIDIxLTEyLjggMjkuNi00Ni42IDcuNy0zMC4xIDI5LjEtMTE4LjQgMzEuMS0xMjQuNyA0LjgtMTQuOSAxMS4xLTEzLjggMTUuNCAwIDIgNi4zIDIzLjUgOTQuNiAzMS4xIDEyNC43IDguNiAzMy43IDE1LjQgMzkuMyAyOS42IDQ2LjYgMTAuOCA1LjUgMzIuNSA0IDMyLjUgNEwzMzIuOSAxMzJjLTI0LjQtMy4xLTQ5LjggOC45LTU1LjMgMzUuM3ptMTE1LjggNS4ycy00LjEgNi4zLTEzLjUgMTEuNmMtNiAzLjQtMTEuOCA1LjYtMTggOC42LTE1LjEgNy4zLTEzLjIgMTMuOS0xMy4yIDM1LjJsMCAxNTIuMXMxNi42IDIuMSAyNy40LTMuNGMxMy45LTcuMSAxNy4xLTE0IDE3LjMtNDQuOGwwLTE1MC4zIDAgMCAwLTl6bTE2My40IDg0LjFMNjQwIDEzMi44cy0zNS4xLTYtNTIuNSA5LjhjLTEzLjMgMTIuMS0yNC40IDI5LjYtNTQuMiA3Mi41LS41IC43LTYuMyAxMC41LTEzLjEgMC0yOS4zLTQyLjItNDAuOC02MC4zLTU0LjItNzIuNS0xNy40LTE1LjgtNTIuNS05LjgtNTIuNS05LjhsODMuMiAxMjMuNy04MyAxMjMuNHMzNi42IDQuNiA1NC0xMS4yYzExLjUtMTAuNSAxNy42LTIwLjQgNTIuNS03MC43IDYuOC0xMC41IDEyLjYtLjggMTMuMSAwIDI5LjQgNDIuNCAzOS4yIDU4LjEgNTMuMSA3MC43IDE3LjQgMTUuOCA1My4zIDExLjIgNTMuMyAxMS4ybC04My0xMjMuNHoiXX0sU0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludGVyY29tIixpY29uOls0NDgsNTEyLFtdLCJmN2FmIiwiTTM5MiAzMkw1NiAzMkMyNS4xIDMyIDAgNTcuMSAwIDg4TDAgNDI0YzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtMzM2YzAtMzAuOS0yNS4xLTU2LTU2LTU2ek0yODMuNyAxMTQuMWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTk5LjV6bS03NC42LTcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDIxNi41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMjE2LjV6bS03NC43IDcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTk5LjV6TTU5LjcgMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTM0LjNjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xMzQuM3pNMzgzLjEgMzcxLjhjLTcyLjggNjMtMjQxLjcgNjUuNC0zMTguMSAwLTE1LTEyLjggNC40LTM1LjUgMTkuNC0yMi43IDY1LjkgNTUuMyAyMTYuMSA1My45IDI3OS4zIDAgMTQuOS0xMi45IDM0LjMgOS44IDE5LjQgMjIuN3ptNS4yLTkzLjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xMzQuM2MwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDEzNC4zeiJdfSxfQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3RldXJvcGUiLGljb246WzU3Niw1MTIsW10sImY3NWQiLCJNMjUwLjcgMjExLjdsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOC0yLjMgNi44LTcuMiAuMSA1LjcgNC4zLTIgNi44em02My43IDBsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjItLjEtMi4zLTYuOC0yLjMgNi44LTcuMiAuMSA1LjcgNC4zLTEuOSA2Ljh6bS05MS4zIDUwLjVsLTMuNCAwYy00LjggMC0zLjggNC0zLjggMTIuMSAwIDQuNy0yLjMgNi4xLTUuOCA2LjFzLTUuOC0xLjQtNS44LTYuMWwwLTM2LjZjMC00LjcgMi4zLTYuMSA1LjgtNi4xczUuOCAxLjQgNS44IDYuMWMwIDcuMi0uNyAxMC41IDMuOCAxMC41bDMuNCAwYzQuNy0uMSAzLjgtMy45IDMuOC0xMi4zIDAtOS45LTYuNy0xNC4xLTE2LjgtMTQuMWwtLjIgMGMtMTAuMSAwLTE2LjggNC4yLTE2LjggMTQuMWwwIDQwLjFjMCAxMC40IDYuNyAxNC4xIDE2LjggMTQuMWwuMiAwYzEwLjEgMCAxNi44LTMuOCAxNi44LTE0LjEgMC05LjkgMS4xLTEzLjgtMy44LTEzLjh6bS04MC43IDE3LjRsLTE0LjcgMCAwLTE5LjMgMTEuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTExLjQgMCAwLTE4LjMgMTQuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTIxLjcgMGMtMi40LS4xLTMuNyAxLjMtMy43IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDIxLjkgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44em0tNDItMTguNWM0LjYtMiA3LjMtNiA3LjMtMTIuNGwwLTExLjljMC0xMC4xLTYuNy0xNC4xLTE2LjgtMTQuMWwtMTMuNCAwYy0yLjUgMC0zLjggMS4zLTMuOCAzLjhsMCA1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yMi45IDUuNiAwIDcuNCAyMy41Yy4yIDEgLjggMS44IDEuNiAyLjRzMS44IC45IDIuNyAuOGwzLjMgMGMyLjggMCA0LTEuOCAzLjItNC40bC04LjEtMjMuOXptLTMuOC0xNGMwIDQuOC0yLjUgNi4xLTYuMSA2LjFsLTUuOCAwIDAtMjAuOSA1LjggMGMzLjYgMCA2LjEgMS4zIDYuMSA2LjFsMCA4Ljd6TTE3Ni4xIDIyNmMtLjEtLjUtLjItMS0uNC0xLjRzLS42LS44LTEtMS4xLS44LS42LTEuMy0uNy0xLS4yLTEuNS0uMWwtNi45IDBjLS41IDAtMSAwLTEuNCAuMnMtLjkgLjQtMS4zIC43LS43IC43LS45IDEuMS0uNCAuOS0uNCAxLjRsLTExIDU5LjJjLS41IDIuNyAuOSA0LjEgMy40IDQuMWwzIDBjLjUgLjEgMSAwIDEuNS0uMnMuOS0uNCAxLjMtLjcgLjctLjcgLjktMS4yIC40LS45IC40LTEuNGwxLjgtMTEuMyAxMi4yIDAgMS44IDExLjNjMCAuNSAuMiAxIC40IDEuNHMuNSAuOSAuOSAxLjIgLjggLjYgMS4zIC43IDEgLjIgMS41IC4ybDMuNSAwYzIuNiAwIDMuOS0xLjQgMy40LTQuMUwxNzYuMSAyMjZ6bS0xMi4zIDM5LjNsNC43LTI5LjcgNC43IDI5LjctOS40IDB6bTg5LjMgMjAuMmwwLTUzLjIgNy41IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjUuOCAwYy0yLjUgMC0zLjggMS4zLTMuOCAzLjhsMCAyLjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDcuMyAwIDAgNTMuMmMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMy40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAgMHptMjQ4LS44bC0xOS40IDAgMC0yNi43IDE2LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xNi4xIDAgMC0yNS44IDE5LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0yMi4yIDBjLS4zLS4xLS41LS4xLS44IDBzLS41IC4yLS43IC40LS4zIC40LS40IC43LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjYgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbDAgMHpNNDA4IDIyMS44bC0uOCAwYy0xMC4xIDAtMTUuMyA0LjctMTUuMyAxNC4xbDAgNDAuMWMwIDkuMyA1LjIgMTQuMSAxNS4zIDE0LjFsLjggMGMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xbDAtNDAuMWMwLTkuNC01LjItMTQuMS0xNS4zLTE0LjFsMCAwem0xMC4yIDUyLjRjLS4xIDgtMyAxMS4xLTEwLjUgMTEuMXMtMTAuNS0zLjEtMTAuNS0xMS4xbDAtMzYuNmMwLTcuOSAzLTExLjEgMTAuNS0xMS4xczEwLjUgMy4yIDEwLjUgMTEuMWwwIDM2LjZ6bS00Ni41LTE0LjVjNi4xLTEuNiA5LjItNi4xIDkuMi0xMy4zbDAtOS43YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwtMTMuNyAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDEuMiAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNi0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLTI2LjkgMTEuNiAwIDEwLjQgMjcuMmMuMiAuNSAuNSAuOSAuOSAxLjFzLjkgLjQgMS40IC40bDEuNSAwYzEuNCAwIDItMSAxLjUtMi4zbC0xMC42LTI3LjN6bS02LjQtMy45bC0xMC4yIDAgMC0yOC41IDEwLjIgMGM3LjUgMCAxMC41IDMuMSAxMC41IDExLjFsMCA2LjRjMCA3LjgtMyAxMS0xMC41IDExbDAgMHptODUuOS0zMy4xbC0xMy43IDBjLS4zLS4xLS41LS4xLS44IDBzLS41IC4yLS43IC40LS4zIC40LS40IC43LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDEuMiAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNi0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLTI2LjEgMTAuNiAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC0xMC41YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMXptMTAuMiAyMi44YzAgNy45LTMgMTEuMS0xMC41IDExLjFsLTEwLjIgMCAwLTI5LjIgMTAuMiAwYzcuNS0uMSAxMC41IDMuMSAxMC41IDExbDAgNy4xek0yNTkuNiAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xek00ODcuMiAxNzEuOWMtMTEuNy00LjQtMjMuNS04LjEtMzUuNi0xMS4zIDE5LjYtNzggMTEuNi0xMzQuNy0yMi4zLTE1My45LTM0LjUtMTkuNC04NS45IDQuMy0xMzguMiA1NS4yIDMuNCAzLjMgNi44IDYuNyAxMC4yIDEwLjIgODIuNS04MCAxMTkuNi01My41IDEyMC45LTUyLjggMjIuNCAxMi43IDM2IDU1LjggMTUuNSAxMzcuOC0yNy44LTYuNC01Ni4xLTEwLjctODQuNi0xMy03MS45LTEwMC41LTE0MC42LTE0Mi4xLTE4Mi4yLTE0Mi4xLTMwLjggMC00My44IDIxLTQ3LjYgMjcuNy0xOC4xIDMyLTEzLjMgODQuMiAuMSAxMzMuOC03MC41IDIwLjMtMTIwLjcgNTQuMS0xMjAuMyA5NSAuNSA1OS42IDEwMy4yIDg3LjggMTIyLjEgOTIuOC0yMC41IDgxLjktMTAuMSAxMzUuNiAyMi4zIDE1My45IDI4IDE1LjggNzUuMSA2IDEzOC4yLTU1LjItMy40LTMuMy02LjgtNi43LTEwLjItMTAuMi04Mi41IDgwLTExOS43IDUzLjUtMTIwLjkgNTIuOC0yMi4zLTEyLjYtMzYtNTUuNi0xNS41LTEzNy45IDEyLjQgMi45IDQxLjggOS41IDg0LjYgMTMgNzEuOSAxMDAuNCAxNDAuNiAxNDIgMTgyLjEgMTQyIDMwLjggMCA0My44LTIxIDQ3LjYtMjcuNyAxOC0zMS45IDEzLjMtODQuMS0uMS0xMzMuOCAxNTIuMy00My44IDE1Ni4yLTEzMC4yIDMzLjktMTc2LjNsMCAwek0xMzYgMzYuOGMyLjktNS4xIDExLjktMjAuMyAzNC45LTIwLjMgMzYuOCAwIDk4LjggMzkuNiAxNjMuMyAxMjYuMi0zMS4zLTEuOC02Mi43LTEuNS05My45IC45IDEzLTE4LjMgMjcuMS0zNS44IDQyLjItNTIuNC0zLjQtMy41LTYuOC02LjktMTAuMi0xMC4yLTE4LjMgMjAuMi0zNS4zIDQxLjctNTAuNyA2NC4yLTI4LjUgMi43LTU2LjcgNy42LTg0LjQgMTQuNi0uMi0xLjQtMjQuMy04Mi4yLTEuMi0xMjNsMCAwek00NDAuOCA0NzUuMWMtMi45IDUuMS0xMS44IDIwLjMtMzQuOSAyMC4zLTM2LjcgMC05OC43LTM5LjQtMTYzLjMtMTI2LjIgMzEuMyAxLjggNjIuNyAxLjUgOTMuOS0uOS0xMyAxOC4zLTI3LjEgMzUuOC00Mi4yIDUyLjQgMy40IDMuNSA2LjggNi45IDEwLjIgMTAuMiAxOC40LTIwLjIgMzUuMy00MS43IDUwLjctNjQuMiA0Ny4zLTQuNyA4MC4zLTEzLjUgODQuNC0xNC42IDIyLjcgODQuNCA0LjUgMTE3IDEuMiAxMjN6bTkuMS0xMzguNmMtMy42LTExLjktNy43LTI0LjEtMTIuNC0zNi40LTIuMSAwLTQuMi0uNS02LjEtMS41cy0zLjUtMi40LTQuNi00LjJsLS4xIC4xYy0xLjYgMS41LTMuNCAyLjctNS40IDMuNiA1LjcgMTQuMyAxMC42IDI4LjQgMTQuNyA0Mi4yLTIzLjcgNi00Ny43IDEwLjMtNzIgMTMgMy41LTUuMyAxNy4yLTI2LjIgMzIuMi01NC4yLTIuMS0uOC00LjItMS45LTYtMy4yLTEuMSAxLjItMy42IDQuMi0xMC45IDQuMi02LjIgMTEuMi0xNy40IDMwLjktMzMuOSA1NS4yLTM3LjQgMy4zLTc1IDMuNi0xMTIuNCAxLTcuOS0xMS4yLTIxLjUtMzEuMS0zNi44LTU3LjgtMS0uNC0yLS45LTMtMS41LTEuOSAxLjYtMy45IDMuMi0xMi42IDMuMiA2LjMgMTEuMiAxNy41IDMwLjcgMzMuOCA1NC42LTI0LjMtMi4zLTQ4LjQtNi4yLTcyLjItMTEuNyAzLjktMTQgOC42LTI4LjMgMTQuMS00Mi45LTMuMiAwLTUuNCAuMi04LjQtMS0yLjIgLjgtNC42IDEuMS02LjkgMS00LjkgMTMuNC05LjEgMjYuNS0xMi43IDM5LjQtMTU5LjktNDIuNi0xNDAuMy0xMjMuNi0xLjUtMTY0IDMuNiAxMS45IDcuNyAyNC4xIDEyLjQgMzYuNCAxMC40IDAgMTIuOSAzLjQgMTQuNCA1LjMgLjctLjggMS40LTEuNiAyLjMtMi4yLTUuOC0xNC43LTEwLjktMjkuMi0xNS4yLTQzLjMgNy0xLjggMzIuNC04LjQgNzItMTMtMTUuOSAyNC4zLTI2LjcgNDMuOS0zMi44IDU1LjMgMy4xIDEuOCA1LjMgNC42IDYuNCA4IDIuNS0zLjcgNi4xLTYuNiAxMC4yLTguNCA2LjUtMTEuNyAxNy45LTMxLjkgMzQuOC01Ni45IDM3LjQtMy4zIDc1LTMuNiAxMTIuNC0xIDMxLjUgNDQuNiAyOC45IDQ4LjEgNDIuNSA2NC41IDIuNi0zLjUgNi4zLTYgMTAuNC03LjQtNi40LTExLjQtMTcuNi0zMS0zNC4zLTU1LjUgNDAuNCA0LjEgNjUgMTAgNzIuMiAxMS43LTQgMTQuNC04LjkgMjkuMi0xNC42IDQ0LjIgMi41IDEgNC44IDIuNCA2LjggNC4zbC4xIC4xYzEtMS41IDIuMy0yLjggMy44LTMuOHMzLjMtMS42IDUuMS0xLjhjNC45LTEzLjQgOS4yLTI2LjYgMTIuOC0zOS41IDExLjcgMy4xIDIzLjIgNi44IDM0LjUgMTEgMTA2LjEgMzkuOSA3NCA4Ny45IDcyLjYgOTAuNC0xOS44IDM1LjEtODAuMSA1NS4yLTEwNS43IDYyLjV6bS0xMTQuNC0xMTRsLTEuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS42IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNDkuOGMwIDcuOS0yLjYgMTEuMS0xMC4xIDExLjFzLTEwLjEtMy4xLTEwLjEtMTEuMWwwLTQ5LjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA1MS41YzAgOS42IDUgMTQuMSAxNS4xIDE0LjFsLjQgMGMxMC4xIDAgMTUuMS00LjYgMTUuMS0xNC4xbDAtNTEuNWMwLS4zLS4xLS41LS4yLS44cy0uMy0uNS0uNS0uNi0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMXpNMzIxLjggMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXptLTMxLjEgNy40bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXptNS4xLTMwLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwyMi41IDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS42LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uNC0uNy0uNC0uNS0uMS0uOC0uMWwwIDB6bS03LjQtOTkuNGwtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02Ljh6Il19LE1DdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXplIixpY29uOls1MTIsNTEyLFtdLCJmODNmIiwiTTUwMi42IDIwMS43YzE0LjUgODUuOS0zMC45IDE2Ny45LTExMy4yIDIwOC4xIDEzIDM0LjEtMTIuNCA3MC4yLTQ4LjMgNzAuMi0xMy4yIDAtMjYtNS4xLTM1LjYtMTQuMnMtMTUuMy0yMS42LTE2LTM0LjhjLTYuNCAuMi02NC4yIDAtNzYuMy0uNi0uMyA2LjgtMS45IDEzLjUtNC43IDE5LjZzLTYuOSAxMS43LTExLjkgMTYuMy0xMC44IDguMi0xNy4yIDEwLjUtMTMuMiAzLjQtMTkuOSAzLjFjLTMzLjktMS40LTU4LTM0LjgtNDctNjcuOS0zNy4yLTEzLjEtNzIuNS0zNC45LTk5LjYtNzAuOC0xMy0xNy4zLS41LTQxLjggMjAuOC00MS44IDQ2LjMgMCAzMi4yLTU0LjIgNDMuMi0xMTAuMyAxOC40LTkzLjkgMTE2LjgtMTU3LjEgMjExLjctMTU3LjEgMTAyLjUgMCAxOTcuMiA3MC43IDIxNC4xIDE2OS43ek0zNzMuOSAzODguM2M0Mi0xOS4yIDgxLjMtNTYuNyA5Ni4zLTEwMi4xIDQwLjUtMTIzLjEtNjQuMi0yMjgtMTgxLjctMjI4LTgzLjQgMC0xNzAuMyA1NS40LTE4Ni4xIDEzNi05LjUgNDguOSA1IDEzMS40LTY4LjcgMTMxLjQgMjQuOSAzMy4xIDU4LjMgNTIuNiA5My43IDY0IDI0LjctMjEuOCA2My45LTE1LjUgNzkuOCAxNC4zIDE0LjIgMSA3OS4yIDEuMiA4Ny45IC44IDMuNS02LjkgOC41LTEyLjkgMTQuNy0xNy41czEzLjItNy45IDIwLjgtOS41IDE1LjQtMS40IDIyLjkgLjQgMTQuNSA1LjMgMjAuNSAxMC4yek0yMDUuNSAxODcuMWMwLTM0LjcgNTAuOC0zNC43IDUwLjggMHMtNTAuOCAzNC43LTUwLjggMHptMTE2LjYgMGMwLTM0LjcgNTAuOS0zNC43IDUwLjkgMHMtNTAuOSAzNC44LTUwLjkgMHpNMTk5LjUgMjU3LjhjLTMuNC0xNi45IDIyLjItMjIuMiAyNS42LTUuMmwuMSAuM2M0LjEgMjEuNCAyOS44IDQ0IDY0LjEgNDMuMSAzNS43LS45IDU5LjMtMjIuMiA2NC4xLTQyLjggNC41LTE2LjEgMjguNi0xMC40IDI1LjUgNi01LjIgMjIuMi0zMS4yIDYyLTkxLjUgNjIuOS00Mi42IDAtODAuOS0yNy44LTg3LjktNjQuMmwwIDB6Il19LHpDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXJlbWl4IixpY29uOls1MTIsNTEyLFtdLCJmNGVlIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pNNDE4LjEgMjYwLjRsNC45IDIuMiAwIDcwYy03LjIgMy42LTYzLjQgMjcuNS02Ny4zIDI4LjgtNi41LTEuOC0xMTMuNy00Ni44LTEzNy4zLTU2LjJsLTY0LjIgMjYuNi02My4zLTI3LjUgMC02My44IDU5LjMtMjQuOGMtLjctLjctLjQgNS0uNC03MC40bDY3LjMtMjkuNyAxNTEuOSA2Mi45IDAgNjEuNiA0OS4xIDIwLjN6bS03MC40IDgxLjVsMC00My44LS40IDAgMC0xLjgtMTEzLjgtNDYuNSAwIDQ1LjIgMTEzLjggNDYuOSAwLS40IC40IC40em03LjUtNTcuNmwzOS45LTE2LjQtMzYuOC0xNS41LTM5IDE2LjQgMzUuOSAxNS41em01Mi4zIDM4LjFsMC00My00NC4zIDE4LjYgMCA0My40IDQ0LjMtMTl6Il19LENDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiYW5kY2FtcCIsaWNvbjpbNTEyLDUxMixbXSwiZjJkNSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTQ4LjIgMzI2LjFsLTE4MSAwIDg0LjctMTU2LjEgMTgxIDAtODQuNyAxNTYuMXoiXX0sVEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13ZWItYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsW10sImU2ODQiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMjM1IDgxLjZsNTMgNDYuNCA1Mi4yLTEwLjRjLTIuNi0zLjktNC4yLTguNS00LjItMTMuNiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMtMTAuMyAyMy42LTIzLjIgMjRMMzA0LjUgMzQ5LjFjLTUuMiAxMS41LTE2LjYgMTguOS0yOS4yIDE4LjlsLTEwMi42IDBjLTEyLjYgMC0yNC03LjQtMjkuMi0xOC45TDg3LjIgMjI0Yy0xMi45LS40LTIzLjItMTEtMjMuMi0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgNS0xLjUgOS43LTQuMiAxMy42TDE2MCAyMjQgMjEzLjEgMTc3LjZjLTguOS00LjEtMTUtMTMuMS0xNS0yMy42IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZjMCAxMC41LTYuMiAxOS41LTE1LjEgMjMuNnoiXX0sJEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbWVvLXYiLGljb246WzQ0OCw1MTIsW10sImYyN2QiLCJNNDQ3LjggMTUzLjZjLTIgNDMuNi0zMi40IDEwMy4zLTkxLjQgMTc5LjEtNjAuOSA3OS4yLTExMi40IDExOC44LTE1NC42IDExOC44LTI2LjEgMC00OC4yLTI0LjEtNjYuMy03Mi4zLTM1LjItMTI5LjItNTAuMi0yMDQuOS03OS4zLTIwNC45LTMuNCAwLTE1LjEgNy4xLTM1LjIgMjEuMUwwIDE2OC4yYzUxLjYtNDUuMyAxMDAuOS05NS43IDEzMS44LTk4LjUgMzQuOS0zLjQgNTYuMyAyMC41IDY0LjQgNzEuNSAyOC43IDE4MS41IDQxLjQgMjA4LjkgOTMuNiAxMjYuNyAxOC43LTI5LjYgMjguOC01Mi4xIDMwLjItNjcuNiA0LjgtNDUuOS0zNS44LTQyLjgtNjMuMy0zMSAyMi03Mi4xIDY0LjEtMTA3LjEgMTI2LjItMTA1LjEgNDUuOCAxLjIgNjcuNSAzMS4xIDY0LjkgODkuNHoiXX0sREN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmF2YSIsaWNvbjpbMzg0LDUxMixbXSwiZjQyOCIsIk0xNTguNCAwTDcgMjkyIDk2LjIgMjkyIDE1OC40IDE3NS45IDIyMC4xIDI5MiAzMDguNiAyOTIgMTU4LjQgMHpNMzA4LjYgMjkybC00My45IDg4LjItNDQuNi04OC4yLTY3LjYgMCAxMTIuMiAyMjAgMTExLjUtMjIwLTY3LjYgMHoiXX0sTEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuaXJlZ2lzdHJ5IixpY29uOlszODQsNTEyLFtdLCJmNDA0IiwiTTE5MiA0ODBjMzkuNSAwIDc2LjItMTEuOCAxMDYuOC0zMi4ybC0yMTMuNSAwQzExNS44IDQ2OC4yIDE1Mi41IDQ4MCAxOTIgNDgwek0xMDIuOSAyODYuOWwwLTEyLjQtMTAyLjkgMCAwIDEyLjRjMCAyLjUgMCA1IC4xIDcuNGwxMDMuMSAwYy0uMi0yLjQtLjMtNC45LS4zLTcuNHptMjAuNSA1N2wtMTE0LjkgMGMyLjYgOC41IDUuOCAxNi44IDkuNiAyNC44bDEzOC4zIDBjLTEyLjktNS43LTI0LjEtMTQuMi0zMy0yNC44em0tMTcuNy0zNC43bC0xMDQuNCAwYy45IDcuNiAyLjIgMTUgMy45IDIyLjNsMTA5LjcgMGMtNC02LjktNy4yLTE0LjQtOS4yLTIyLjN6bS0yLjgtNjkuM2wtMTAyLjkgMCAwIDE3LjMgMTAyLjkgMCAwLTE3LjN6bTAtMTczLjJsLTEwMi45IDAgMCA0LjkgMTAyLjkgMCAwLTQuOXptMC0zNC43bC0xMDIuOSAwIDAgMi41IDEwMi45IDAgMC0yLjV6bTAgNjkuM2wtMTAyLjkgMCAwIDcuNCAxMDIuOSAwIDAtNy40em0wIDEwNGwtMTAyLjkgMCAwIDE0LjggMTAyLjkgMCAwLTE0Ljh6bTAtNjkuM2wtMTAyLjkgMCAwIDkuOSAxMDIuOSAwIDAtOS45em0wIDM0LjZsLTEwMi45IDAgMCAxMi40IDEwMi45IDAgMC0xMi40ek0yNjkuMSAzMzEuNWwxMDkuNyAwYzEuOC03LjMgMy4xLTE0LjcgMy45LTIyLjNsLTEwNC40IDBjLTIuMSA3LjktNS4yIDE1LjQtOS4yIDIyLjN6bTEyLTE4NS43bDEwMi45IDAgMC05LjgtMTAyLjkgMCAwIDkuOHptMCAzNy4ybDEwMi45IDAgMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTc0LjNsMTAyLjkgMCAwLTcuNC0xMDIuOSAwIDAgNy40em0wLTc2LjdsMCAyLjUgMTAyLjkgMCAwLTIuNS0xMDIuOSAwek03OC4xIDQ0Mi45bDIyNy43IDBjMTEuOC04LjcgMjIuNy0xOC42IDMyLjItMjkuN2wtMjkzLjEgMGM5LjYgMTEgMjEuNCAyMSAzMy4yIDI5Ljd6bTIwMy0zNzEuM2wxMDIuOSAwIDAtNC45LTEwMi45IDAgMCA0Ljl6bTAgMTQ4LjVsMTAyLjkgMCAwLTE0LjgtMTAyLjkgMCAwIDE0Ljh6TTM4LjggNDA1LjdsMzA1LjMgMGM2LjctOC41IDEyLjYtMTcuNiAxNy44LTI3LjJMMjMgMzc4LjVjNS4yIDkuNiA5LjIgMTguNyAxNS44IDI3LjJ6bTE4OC44LTM3LjFsMTM5LjQgMGMzLjctOCA1LjgtMTYuMiA4LjUtMjQuOGwtMTE1IDBjLTguOCAxMC43LTIwLjEgMTkuMi0zMi45IDI0Ljh6bTUzLjUtODEuN2MwIDIuNS0uMSA1LS40IDcuNGwxMDMuMSAwYy4xLTIuNSAuMi00LjkgLjItNy40bDAtMTIuNC0xMDIuOSAwIDAgMTIuNHptMC0yOS43bDEwMi45IDAgMC0xNy4zLTEwMi45IDAgMCAxNy4zeiJdfSxFQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGluZXJzLWNsdWIiLGljb246WzU3Niw1MTIsW10sImYyNGMiLCJNMjM5LjcgNzkuOWExNzUuOCAxNzUuOCAwIDEgMCAwIDM1MS42IDE3NS44IDE3NS44IDAgMSAwIDAtMzUxLjZ6TTE5OS44IDM1OS41Yy00MS43LTE1LjktNzEuNC01Ni40LTcxLjQtMTAzLjhzMjkuNy04Ny45IDcxLjQtMTA0LjFsMCAyMDcuOXptNzkuOCAuM2wwLTIwOC4yYzQxLjcgMTYuMiA3MS40IDU2LjcgNzEuNCAxMDQuMXMtMjkuNyA4Ny45LTcxLjQgMTA0LjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0zMjkuNyA0NDhsLTkwLjMgMEMxMzMuMiA0NDggNDUuNiAzNjIuNSA0NS42IDI1Ny44IDQ1LjYgMTQzLjIgMTMzLjIgNjQgMjM5LjQgNjRsOTAuMyAwYzEwNSAwIDIwMC43IDc5LjIgMjAwLjcgMTkzLjggMCAxMDQuNy05NS43IDE5MC4yLTIwMC43IDE5MC4yeiJdfSxQQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia3ViZXJuZXRlcyIsaWNvbjpbNTEyLDUxMixbXSwiZTg1NyIsIk0yNTYgMzE2LjFjMy41LS4xIDcuMiAyIDguOSA1LjFMMjkzIDM3MS43Yy0zLjYgMS4yLTcuMyAyLjMtMTEuMiAzLjEtMjEuNCA0LjktNDIuNyAzLjQtNjItMy4ybDI3LjktNTAuNGMxLjctMy4xIDQuOS01IDguMi01LjF6bTUwLjUtMjMuNGw1Ny4yIDkuN2MtOC40IDIzLjUtMjQuNCA0My45LTQ1LjggNTcuNWwtMjIuMi01My42Yy0yLTQuNyAuMS0xMC40IDQuOC0xMi42IDEuOS0uOSA0LjEtMS4zIDYtLjl6bS04OS4xIDcuN2MuNSAyLjEgLjMgNC4yLS41IDZsLTIxLjggNTMuM2MtMjAuNS0xMy4yLTM2LjktMzIuOS00NS43LTU3LjFsNTYuNy05LjZjNS4xLS45IDEwLjEgMi40IDExLjMgNy41em01OC44LTQxbC0zLjkgMTcuMS0xNS44IDcuNi0xNS45LTcuNy00LTE3LjEgMTEtMTMuNyAxNy43IDAgMTEgMTMuN3ptLTczLjctMTYuN2MzLjkgMy40IDQuNCA5LjUgMS4yIDEzLjYtMS4zIDEuNy0zLjEgMi44LTUgMy4zbC01NS4zIDE2LjJjLTIuOC0yNS43IDMuMy01MC43IDE2LjEtNzEuNmw0My4xIDM4LjZ6bTE1MC43LTM4LjVjNi40IDEwLjQgMTEuMiAyMiAxNC4xIDM0LjYgMi45IDEyLjQgMy42IDI0LjggMi40IDM2LjhsLTU1LjYtMTZjLTUtMS40LTguMS02LjctNi45LTExLjcgLjUtMi4xIDEuNi0zLjggMy4xLTUuMWw0Mi45LTM4LjV6bS0xMTMuOCA0LjRjLS4yIDUuMi00LjcgOS40LTkuOSA5LjQtMi4xIDAtNC4xLS43LTUuNy0xLjhsLTQ3LjMtMzMuNGMxNC41LTE0LjMgMzMuMS0yNC44IDU0LjUtMjkuNyAzLjktLjkgNy44LTEuNiAxMS43LTJsLTMuMyA1Ny42em0zMC44LTU3LjZjMjUgMy4xIDQ4LjEgMTQuNCA2NS44IDMxLjdsLTQ3LjEgMzMuMmMtNC4yIDMtMTAgMi4zLTEzLjMtMS44LTEuMy0xLjctMi0zLjYtMi4xLTUuNmwtMy4zLTU3LjV6TTI1NC41LTEuM2M1LjktLjMgMTEuNyAuOSAxNyAzLjRMNDU1IDg5LjdjNC43IDIuMyA4LjkgNS42IDEyLjIgOS43czUuNiA4LjggNi44IDEzLjlsNDUuMyAxOTYuOWMxLjIgNS4xIDEuMiAxMC40IDAgMTUuNXMtMy41IDkuOS02LjggMTMuOUwzODUuNiA0OTcuNmMtMy4zIDQuMS03LjUgNy40LTEyLjIgOS42cy0xMCAzLjQtMTUuMiAzLjRsLTIwMy42IDBjLTUuMyAwLTEwLjUtMS4yLTE1LjItMy40cy04LjktNS41LTEyLjItOS42TC4yIDMzOS43Yy0uNy0uOS0xLjQtMS44LTItMi44LTIuNi0zLjktNC4zLTguMy01LjEtMTIuOXMtLjctOS4zIC4zLTEzLjhMMzguNyAxMTMuNGMxLjItNS4xIDMuNS05LjkgNi44LTEzLjlzNy41LTcuNCAxMi4yLTkuN0wyNDEuMSAyLjFjNC4yLTIgOC44LTMuMiAxMy40LTMuNHptMS44IDY3Yy02LjEgMC0xMSA1LjUtMTEgMTIuMiAwIC4xIDAgLjIgMCAuMyAwIC45LS4xIDIgMCAyLjggLjEgMy45IDEgNi45IDEuNSAxMC40IC45IDcuNyAxLjcgMTQgMS4yIDE5LjktLjUgMi4yLTIuMSA0LjMtMy42IDUuN2wtLjIgNC42Yy02LjYgLjUtMTMuMiAxLjYtMTkuOCAzLjEtMjguNSA2LjUtNTMuMSAyMS4xLTcxLjggNDEtMS4yLS44LTMuMy0yLjMtNC0yLjgtMiAuMy00IC45LTYuNS0uNi00LjktMy4zLTkuNC03LjktMTQuOC0xMy40LTIuNS0yLjYtNC4zLTUuMS03LjItNy43LS43LS42LTEuNy0xLjQtMi40LTItMi4zLTEuOC01LTIuOC03LjctMi45LTMuNC0uMS02LjYgMS4yLTguOCAzLjktMy44IDQuNy0yLjUgMTIgMi43IDE2LjIgLjEgMCAuMSAuMSAuMiAuMSAuNyAuNiAxLjYgMS4zIDIuMyAxLjggMy4xIDIuMyA2IDMuNSA5LjEgNS4zIDYuNiA0LjEgMTIgNy40IDE2LjMgMTEuNSAxLjcgMS44IDIgNC45IDIuMiA2LjNsMy41IDMuMmMtMTguOCAyOC40LTI3LjYgNjMuNC0yMi40IDk5LjFsLTQuNiAxLjNjLTEuMiAxLjYtMi45IDQtNC43IDQuNy01LjYgMS44LTEyIDIuNC0xOS43IDMuMy0zLjYgLjMtNi43IC4xLTEwLjUgLjgtLjggLjItMiAuNC0yLjkgLjdsLS4xIDAtLjIgLjFjLTYuNSAxLjYtMTAuNyA3LjUtOS4zIDEzLjQgMS4zIDUuOSA3LjcgOS40IDE0LjIgOGwuMiAwYy4xIDAgLjEtLjEgLjItLjEgLjktLjIgMi4xLS40IDIuOC0uNiAzLjgtMSA2LjUtMi41IDkuOC0zLjggNy4zLTIuNiAxMy4zLTQuOCAxOS4yLTUuNiAyLjQtLjIgNSAxLjUgNi4zIDIuMmw0LjgtLjhjMTEgMzQuMSAzNC4xIDYxLjcgNjMuMyA3OS4xbC0yIDQuOGMuNyAxLjkgMS41IDQuNCAxIDYuMi0yLjEgNS41LTUuOCAxMS40LTkuOSAxNy45LTIgMy00LjEgNS4zLTUuOSA4LjgtLjQgLjgtMSAyLjEtMS40IDMtMi44IDYtLjggMTMgNC43IDE1LjYgNS41IDIuNiAxMi4yLS4xIDE1LjItNi4ybDAgMGMuNC0uOSAxLTIgMS40LTIuOCAxLjYtMy42IDIuMS02LjYgMy4yLTEwLjEgMi45LTcuMyA0LjUtMTQuOSA4LjUtMTkuNyAxLjEtMS4zIDIuOS0xLjggNC44LTIuM2wyLjUtNC41YzI1LjUgOS44IDU0IDEyLjQgODIuNSA1LjkgNi41LTEuNSAxMi44LTMuNCAxOC44LTUuNyAuNyAxLjIgMiAzLjYgMi4zIDQuMiAxLjkgLjYgMy45IC45IDUuNiAzLjQgMyA1LjEgNSAxMS4yIDcuNSAxOC41IDEuMSAzLjQgMS42IDYuNSAzLjIgMTAuMSAuNCAuOCAxIDIgMS40IDIuOCAyLjkgNi4xIDkuNyA4LjggMTUuMiA2LjIgNS40LTIuNiA3LjUtOS42IDQuNy0xNS42LS40LS45LTEtMi4xLTEuNC0zLTEuOC0zLjQtMy45LTUuNy01LjktOC43LTQuMi02LjUtNy42LTExLjktOS44LTE3LjQtLjktMi44IC4yLTQuNiAuOC02LjUtLjQtLjUtMS4zLTMuMi0xLjgtNC40IDMwLjQtMTcuOSA1Mi44LTQ2LjYgNjMuMy03OS42IDEuNCAuMiAzLjkgLjcgNC43IC44IDEuNy0xLjEgMy4yLTIuNSA2LjItMi4zIDUuOSAuOCAxMS45IDMgMTkuMiA1LjYgMy40IDEuMyA2LjEgMi44IDkuOCAzLjggLjggLjIgMS45IC40IDIuOCAuNiAuMSAwIC4xIDAgLjIgLjFsLjIgMGM2LjUgMS40IDEyLjgtMi4yIDE0LjItOHMtMi44LTExLjgtOS4zLTEzLjRjLS45LS4yLTIuMy0uNi0zLjItLjctMy44LS43LTYuOS0uNS0xMC41LS44LTcuNy0uOC0xNC0xLjQtMTkuNy0zLjItMi4zLS45LTQtMy43LTQuOC00LjhsLTQuNC0xLjNjMi4zLTE2LjYgMS43LTMzLjktMi4zLTUxLjMtNC0xNy41LTExLjEtMzMuNS0yMC42LTQ3LjYgMS4xLTEgMy4zLTIuOSAzLjktMy41IC4yLTIgMC00IDIuMS02LjIgNC4zLTQuMSA5LjgtNy40IDE2LjMtMTEuNSAzLjEtMS44IDYtMyA5LjEtNS4zIC43LS41IDEuNy0xLjMgMi40LTEuOSA1LjMtNC4yIDYuNS0xMS40IDIuNy0xNi4ycy0xMS4xLTUuMi0xNi40LTFjLS43IC42LTEuOCAxLjQtMi40IDItMi45IDIuNS00LjggNS03LjIgNy43LTUuNCA1LjUtOS45IDEwLjEtMTQuOCAxMy40LTIuMSAxLjItNS4zIC44LTYuNyAuN2wtNC4yIDNjLTIzLjgtMjUtNTYuMi00MS05MS4yLTQ0LjEtLjEtMS41LS4yLTQuMS0uMi00LjktMS40LTEuNC0zLjItMi41LTMuNi01LjUtLjUtNS45IC4zLTEyLjMgMS4zLTE5LjkgLjUtMy42IDEuNC02LjYgMS41LTEwLjQgMC0uOSAwLTIuMiAwLTMuMSAwLTYuNy00LjktMTIuMi0xMS0xMi4yeiJdfSxJQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGludGVyZXN0IixpY29uOls1MTIsNTEyLFtdLCJmMGQyIiwiTTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4LTI1LjYgMC01MC4yLTMuOS03My40LTExLjEgMTAuMS0xNi41IDI1LjItNDMuNSAzMC44LTY1IDMtMTEuNiAxNS40LTU5IDE1LjQtNTkgOC4xIDE1LjQgMzEuNyAyOC41IDU2LjggMjguNSA3NC44IDAgMTI4LjctNjguOCAxMjguNy0xNTQuMyAwLTgxLjktNjYuOS0xNDMuMi0xNTIuOS0xNDMuMi0xMDcgMC0xNjMuOSA3MS44LTE2My45IDE1MC4xIDAgMzYuNCAxOS40IDgxLjcgNTAuMyA5Ni4xIDQuNyAyLjIgNy4yIDEuMiA4LjMtMy4zIC44LTMuNCA1LTIwLjMgNi45LTI4LjEgLjYtMi41IC4zLTQuNy0xLjctNy4xLTEwLjEtMTIuNS0xOC4zLTM1LjMtMTguMy01Ni42IDAtNTQuNyA0MS40LTEwNy42IDExMi0xMDcuNiA2MC45IDAgMTAzLjYgNDEuNSAxMDMuNiAxMDAuOSAwIDY3LjEtMzMuOSAxMTMuNi03OCAxMTMuNi0yNC4zIDAtNDIuNi0yMC4xLTM2LjctNDQuOCA3LTI5LjUgMjAuNS02MS4zIDIwLjUtODIuNiAwLTE5LTEwLjItMzQuOS0zMS40LTM0LjktMjQuOSAwLTQ0LjkgMjUuNy00NC45IDYwLjIgMCAyMiA3LjQgMzYuOCA3LjQgMzYuOHMtMjQuNSAxMDMuOC0yOSAxMjMuMkMxNjEuNSA0MzcuMiAxNjMuNSA0NjcuNCAxNjUuNiA0ODcgNzMuNCA0NTAuOSA4IDM2MS4xIDggMjU2IDggMTE5IDExOSA4IDI1NiA4UzUwNCAxMTkgNTA0IDI1NnoiXX0sQUN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFsZ29saWEiLGljb246WzUxMiw1MTIsW10sImYzNmMiLCJNMjU2IDBjLTEzOS45IDAtMjU0IDExMi43LTI1NiAyNTIuMS0yIDE0MS41IDExMi45IDI1OC43IDI1NC41IDI1OS41IDQzLjcgLjMgODUuOS0xMC40IDEyMy4zLTMwLjcgMy42LTIgNC4yLTcgMS4xLTkuN2wtMjQtMjEuMmMtNC45LTQuMy0xMS44LTUuNS0xNy44LTMtMjYuMSAxMS4xLTU0LjUgMTYuOC04My43IDE2LjQtMTE0LjQtMS41LTIwNi45LTk2LjYtMjA1LjEtMjExIDEuOC0xMTIuOSA5NC4zLTIwNC4yIDIwNy43LTIwNC4ybDIwNy43IDAgMCAzNjktMTE3LjgtMTA0LjdjLTMuOC0zLjQtOS43LTIuNy0xMi43IDEuMy0xOC45IDI1LTQ5LjcgNDAuNi04My45IDM4LjItNDcuNS0zLjMtODUuOS00MS41LTg5LjUtODguOS00LjItNTYuNiA0MC42LTEwMy45IDk2LjMtMTAzLjkgNTAuNCAwIDkxLjkgMzguOCA5Ni4yIDg4IC40IDQuNCAyLjQgOC41IDUuNyAxMS40bDMwLjcgMjcuMmMzLjUgMy4xIDkgMS4yIDkuOS0zLjQgMi4yLTExLjggMy0yNC4yIDIuMS0zNi44LTQuOS03Mi02My4zLTEzMC0xMzUuNC0xMzQuNC04Mi43LTUuMS0xNTEuOCA1OS41LTE1NCAxNDAuNi0yLjEgNzguOSA2Mi42IDE0NyAxNDEuNiAxNDguNyAzMyAuNyA2My42LTkuNiA4OC4zLTI3LjZMNDk1IDUwOS40YzYuNiA1LjggMTcgMS4yIDE3LTcuN2wwLTQ5MmMwLTUuNC00LjQtOS43LTkuNy05LjdMMjU2IDB6Il19LE5DdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFja3BhdGgiLGljb246WzQ0OCw1MTIsW10sImY4NDIiLCJNMjQ0LjYgMjMyLjRjMCA4LjUtNC4zIDIwLjUtMjEuMyAyMC41bC0xOS42IDAgMC00MS41IDE5LjYgMGMxNy4xIDAgMjEuMyAxMi40IDIxLjMgMjF6TTQ0OCAzMmwwIDQ0OC00NDggMCAwLTQ0OCA0NDggMHpNMTUxLjMgMjg3LjhjMC0yMS4yLTEyLjEtMzQuNS00Ni43LTQ0LjgtMjAuNi03LjQtMjYtMTAuOS0yNi0xOC42czctMTQuNiAyMC40LTE0LjZjMTQuMSAwIDIwLjggOC40IDIwLjggMTguNGwzMC43IDAgLjItLjZjLjUtMTkuNi0xNS4xLTQxLjYtNTEuMS00MS42LTIzLjQgMC01Mi42IDEwLjgtNTIuNiAzOC4zIDAgMTkuNCA5LjIgMzEuMyA1MC43IDQ0LjQgMTcuMyA2LjIgMjEuOSAxMC40IDIxLjkgMTkuNSAwIDE1LjItMTkuMSAxNC4yLTE5LjUgMTQuMi0yMC40IDAtMjUuNy05LjEtMjUuNy0yMS45bC0zMC44IDAtLjIgLjZjLS43IDMxLjMgMjguNCA0NS4yIDU2LjYgNDUuMiAzMCAwIDUxLjEtMTMuNiA1MS4xLTM4LjN6bTEyNS40LTU1LjZjMC0yNS4zLTE4LjQtNDUuNS01My40LTQ1LjVsLTUxLjggMCAwIDEzOC4yIDMyLjIgMCAwLTQ3LjQgMTkuNiAwYzMwLjMgMCA1My40LTE2IDUzLjQtNDUuNHpNMjk3LjkgMzI1bDQ5LjEtMTM4LjItMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwek00MDQuNSAxODYuOGwtMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwIDQ5LjEtMTM4LjJ6Il19LFJDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvY3RvcHVzLWRlcGxveSIsaWNvbjpbNTEyLDUxMixbXSwiZTA4MiIsIk00NTUuNyAzNDkuMmMtNDUuOS0zOS4xLTM2LjctNzcuOS0xNi4xLTEyOC4xIDM1LjctODctMjMuNS0xODYuOS0xMDkuNi0yMTIuOC05Mi45LTI3LjktMTk1LjcgMTYtMjMwLjMgMTA4LjgtOC43IDIzLjUtMTIuNSA0OC41LTExIDczLjUgMS43IDI5LjUgMTQuNyA1MyAyNC4xIDgwLjMgMTcuMiA1MC4yLTI4LjEgOTIuNy02Ni43IDExNy42LTQ2LjggMzAuMi0zNi4zIDM5LjktOC40IDQxLjkgMjMuNCAxLjcgNDQuNS00LjUgNjUuMy0xNSA5LjItNC42IDQwLjctMTguOSA0NS4xLTI4LjYtMTIuMiAyNi42LTM3IDcyLjctMjEuNSAxMDIuMSAxOS4xIDM2LjIgNjcuMS0zMS44IDc2LjctNDUuOCA4LjYtMTIuNiA0My04MS4zIDYzLjYtNDYuOSAxOC45IDMxLjQgOC42IDc2LjQgMzUuNyAxMDQuNiAzMi45IDM0LjIgNTEuMi0xOC4zIDUxLjQtNDQuMiAuMi0xNi40LTYuMS05NS45IDI5LjktNTkuOSAyMS40IDIxLjQgNTIuOSA3MS4yIDg4LjYgNjcgMzguNy00LjUtMjIuMS02OC0yOC4zLTc4LjcgNS40IDQuMyA1My43IDM0LjEgNTMuOCA5LjUgLjEtMTguOC0zMC4xLTM0LjctNDIuNS00NS4zeiJdfSxPQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFtbWVyIixpY29uOls1MTIsNTEyLFtdLCJmODQwIiwiTTUwMC43IDE1OS41Yy0uNC0xLjgtMS4yLTMuNC0yLjMtNC44cy0yLjUtMi42LTQuMS0zLjVjLTMuMS0xLjYtNi43LTItMTAuMS0xLjFsLTI2LjQgNi42IDAtLjItMjIuMyA1LjgtMS4yIC4zLS42LTIuMmMtMTUuNS01OC4zLTQ1LTExMS45LTg2LjEtMTU2LjItMi42LTIuNy02LjEtNC4yLTkuOC00LjNzLTcuMyAxLjMtMTAgMy44bC0xMDIuOSAxMDIuNy0xOTkuOSAwYy02LjYgMC0xMi45IDIuNi0xNy42IDcuM1MwIDEyNC44IDAgMTMxLjRsMCAyNDlDMCAzODcgMi42IDM5My4zIDcuMyAzOThzMTEgNy4zIDE3LjYgNy4zTDIyNSA0MDUuMyAzMjguMSA1MDhjMi42IDIuNiA2IDQgOS43IDRzNy4xLTEuNCA5LjctNGMuMS0uMSAuMi0uMyAuNC0uNCAyOS4zLTMxLjUgNTIuOC02Ny44IDY5LjYtMTA3LjQgNi45LTE2LjUgMTIuNy0zMy41IDE3LjMtNTAuOGwwIDAgMjAuNCA1LjMgMC0uMSAyOC4zIDcuM2MuOSAuMiAxLjcgLjQgMi42IC41IDEuNCAuMiAyLjggLjIgNC4xLS4xIDIuNS0uNSA0LjgtMS43IDYuNy0zLjRzMy4yLTQgMy44LTYuNWMxNS4yLTYzLjQgMTUuMi0xMjkuNiAuMS0xOTNsMCAwek0zMzcuMSAyNC43bDAgMCAwIDAgMCAwek0yMjYuOSAxODkuOGwtNTIuNiA5MS4zYy0xIDEuNy0xLjUgMy43LTEuNSA1LjdsMCA0Ni4yYzAgNS44LTIuMyAxMS40LTYuNSAxNS42cy05LjcgNi40LTE1LjYgNi40bC0zLjQgMGMtNS44IDAtMTEuNC0yLjMtMTUuNi02LjRzLTYuNS05LjctNi41LTE1LjZsMC00NS43YzAtMS45LS41LTMuOC0xLjQtNS41TDcyLjMgMTg5LjZjLTEuOS0zLjQtMi44LTcuMS0yLjgtMTFzMS4xLTcuNiAzLTEwLjkgNC43LTYuMSA4LjEtOCA3LjEtMi45IDExLTIuOWwzLjMgMGM0IDAgOCAxLjEgMTEuNSAzLjJzNi4zIDUuMSA4LjEgOC43bDM2LjQgNzAuMyAzNy41LTcwLjVjMS44LTMuNSA0LjYtNi40IDcuOS04LjRzNy4yLTMuMiAxMS4xLTMuMiA3LjggLjkgMTEuMiAyLjggNi4zIDQuNyA4LjIgOC4xYzIgMy4zIDMgNy4xIDMgMTFzLTEgNy43LTMgMTFsMCAwek0zMzcuMSAyNC43YzM1LjkgNDAuNiA2MS45IDg5IDc1LjggMTQxLjNsLjYgMi0xMTQuMSAyOS42IDAtNjYuMWMwLTYuNi0yLjctMTIuOS03LjMtMTcuNnMtMTEtNy4zLTE3LjYtNy4zbC0xOS40IDAgODIuMS04MS44ek0zOTcuNiAzOTJsMCAwIDAgMGMtMTQuNyAzNC44LTM1LjEgNjctNjAuMiA5NS4ybC04Mi4yLTgxLjkgMTkuMiAwYzYuNiAwIDEyLjktMi42IDE3LjYtNy4zczcuMy0xMSA3LjMtMTcuNmwwLTY2LjIgMTE0LjYgMjkuOWMtNC40IDE2LjMtOS44IDMyLjMtMTYuMyA0Ny45bDAgMHptODQtNTIuNGwwIDAtNTAuNi0xMy4xLTEzMS43LTM0LjMgMC03Mi41IDExOS43LTMxIDQuNS0xLjJjMjkuOS03LjcgNDkuMi0xMi44IDU4LjEtMTUuMSAxMiA1NS4xIDEyIDExMi4xIDAgMTY3LjJ6Il19LEZDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb2R4IixpY29uOls0NDgsNTEyLFtdLCJmMjg1IiwiTTM1NiAyNDEuOGwzNi43IDIzLjcgMCAyMTQuNS0xMzMtODMuOCA5Ni4zLTE1NC40ek00NDAgNzVsLTIxMy43IDAtMjMgMzcuOCAxNTMuNSA5Ni41IDgzLjItMTM0LjN6TTM1MSAyMTcuOGwtMjk1LjgtMTg1LjggMCAyMTQuNSA0NiAyOSAyNDkuOC01Ny43ek05NyAyOTQuMkw4IDQzNyAyMjEuNyA0MzcgMzQ2LjcgMjM2LjUgOTcgMjk0LjJ6Il19LEJDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdGhyZWFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxOSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yOTQuMiAyNDQuM2MxOS41IDkuMyAzMy43IDIzLjUgNDEuMiA0MC45IDEwLjQgMjQuMyAxMS40IDYzLjktMjAuMiA5NS40LTI0LjIgMjQuMS01My41IDM1LTk1LjEgMzUuM2wtLjIgMGMtNDYuOC0uMy04Mi44LTE2LjEtMTA2LjktNDYuOC0yMS41LTI3LjMtMzIuNi02NS40LTMzLTExMy4xbDAtLjJjLjQtNDcuNyAxMS41LTg1LjcgMzMtMTEzLjEgMjQuMi0zMC43IDYwLjItNDYuNSAxMDYuOS00Ni44bC4yIDBjNDYuOSAuMyA4My4zIDE2IDEwOC4yIDQ2LjYgMTIuMyAxNS4xIDIxLjMgMzMuMyAyNyA1NC40bC0yNi45IDcuMmMtNC43LTE3LjItMTEuOS0zMS45LTIxLjQtNDMuNi0xOS40LTIzLjktNDguNy0zNi4xLTg3LTM2LjQtMzggLjMtNjYuOCAxMi41LTg1LjUgMzYuMi0xNy41IDIyLjMtMjYuNiA1NC40LTI2LjkgOTUuNSAuMyA0MS4xIDkuNCA3My4zIDI2LjkgOTUuNSAxOC43IDIzLjggNDcuNCAzNiA4NS41IDM2LjIgMzQuMy0uMyA1Ni45LTguNCA3NS44LTI3LjMgMjEuNS0yMS41IDIxLjEtNDcuOSAxNC4yLTY0LTQtOS40LTExLjQtMTcuMy0yMS4zLTIzLjMtMi40IDE4LTcuOSAzMi4yLTE2LjUgNDMuMi0xMS40IDE0LjUtMjcuNyAyMi40LTQ4LjQgMjMuNS0xNS43IC45LTMwLjgtMi45LTQyLjYtMTAuNy0xMy45LTkuMi0yMi0yMy4yLTIyLjktMzkuNS0xLjctMzIuMiAyMy44LTU1LjMgNjMuNS01Ny42IDE0LjEtLjggMjcuMy0uMiAzOS41IDEuOS0xLjYtOS45LTQuOS0xNy43LTkuOC0yMy40LTYuNy03LjgtMTcuMS0xMS44LTMwLjgtMTEuOWwtLjQgMGMtMTEgMC0yNiAzLjEtMzUuNiAxNy42bC0yMy0xNS44YzEyLjgtMTkuNCAzMy42LTMwLjEgNTguNS0zMC4xbC42IDBjNDEuOCAuMyA2Ni42IDI2LjMgNjkuMSA3MS44IDEuNCAuNiAyLjggMS4yIDQuMiAxLjlsLjEgLjV6bS03MS44IDY3LjVjMTctLjkgMzYuNC03LjYgMzkuNy00OC44LTguOC0xLjktMTguNi0yLjktMjktMi45LTMuMiAwLTYuNCAuMS05LjYgLjMtMjguNiAxLjYtMzguMSAxNS41LTM3LjQgMjcuOSAuOSAxNi43IDE5IDI0LjUgMzYuNCAyMy42bC0uMS0uMXoiXX0sSEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9sZC1yZXB1YmxpYyIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMCIsIk0yNDMuOCAxMC4yYzcuNS0uMyAxNS0uMyAyMi41LS4xIDMuNiAuMSA3LjIgLjQgMTAuOCAuNyA0LjkgLjMgOS44IDEgMTQuNyAxLjYgMi45IC40IDUuOCAxIDguNyAxLjUgNy45IDEuMyAxNS43IDMuMyAyMy40IDUuNCAxMi4yIDMuNSAyNC4yIDcuOSAzNS44IDEzLjIgMjYuNiAxMi4yIDUwLjkgMjkuMiA3MS42IDQ5LjkgMjAgMjAuMSAzNi43IDQzLjUgNDguOSA2OS4yIDEuMSAyLjYgMi40IDUuMSAzLjUgNy43IDIuOCA2LjQgNS40IDEzIDcuNiAxOS42IDQuMSAxMi4zIDcuMyAyNSA5LjQgMzcuOCAuNiAzLjEgMSA2LjMgMS40IDkuNSAuNSAzLjggLjkgNy43IDEuMiAxMS42IC44IDguMyAuOCAxNi43IC44IDI1LjEtLjEgNS0uMyA5LjktLjcgMTQuOS0uMiAzLjQtLjUgNi44LTEgMTAuMS0uNCAyLjctLjYgNS41LTEuMSA4LjItLjkgNS4xLTEuNyAxMC4zLTIuOSAxNS40LTQuMSAxOC41LTEwLjMgMzYuNi0xOC41IDUzLjYtMTUuOCAzMi44LTM4LjggNjIuMi02Ny4xIDg1LjEtMTcuMyAxNC4xLTM2LjQgMjUuOS01Ni45IDM0LjktNi4yIDIuNy0xMi41IDUuMy0xOC45IDcuNC0zLjUgMS4yLTcgMi40LTEwLjYgMy40LTYuNiAxLjktMTMuMyAzLjYtMjAgNS00LjcgLjktOS4zIDEuNy0xNCAyLjUtNS4zIC43LTEwLjUgMS40LTE1LjggMS43LTYuNyAuNy0xMy40IC44LTIwLjEgLjgtNi44IDAtMTMuNi0uMS0yMC40LS44LTMuMy0uMi02LjYtLjUtOS44LTEtMi43LS40LTUuNS0uNi04LjItMS4xLTQuMS0uNy04LjItMS40LTEyLjQtMi4yLTQuMi0uOS04LjUtMS45LTEyLjctMy04LjYtMi4yLTE3LjEtNS0yNS40LTguMS0xMC41LTQuMS0yMC44LTguNy0zMC42LTE0LjItMi4xLTEuMi00LjMtMi4zLTYuNC0zLjYtMTEuMi02LjYtMjEuOS0xNC4xLTMxLjktMjIuMy0zNC43LTI4LjQtNjEuNC02Ni40LTc2LjQtMTA4LjctMy4xLTguNy01LjctMTcuNi03LjgtMjYuNy0xLjUtNi4yLTIuNS0xMi40LTMuNi0xOC43LS40LTIuMy0uNi00LjctMS03LjEtLjYtNC0uOC04LTEuMi0xMS45LS44LTkuNS0uNy0xOS0uNS0yOC41IC4xLTMuNSAuMy03IC43LTEwLjUgLjMtMy4yIC41LTYuNCAuOS05LjUgLjQtMi44IC43LTUuNiAxLjItOC40IC43LTMuOSAxLjMtNy45IDIuMS0xMS44IDMuNC0xNi41IDguNS0zMi43IDE1LjMtNDguMiAxLjItMi45IDIuNi01LjcgMy45LTguNiA4LjEtMTYuNyAxNy45LTMyLjYgMjkuNS00Ny4xIDIwLTI1LjQgNDUuMS00Ni43IDczLjMtNjIuNSA3LjUtNC4yIDE1LjItOCAyMy4xLTExLjQgMTUuOC02LjkgMzIuNC0xMiA0OS4zLTE1LjQgMy41LS43IDctMS4yIDEwLjYtMS44IDIuNi0uNSA1LjMtLjcgNy45LTEuMSAzLjUtLjUgNy4xLS43IDEwLjYtMSAyLjUtLjIgNC45LS40IDcuNC0uNXptOC42IDI0LjRjLTkuMiAuMS0xOC40IDEtMjcuNiAyLjItNy4zIDEuMS0xNC41IDIuNi0yMS43IDQuMy0xMy45IDMuNS0yNy41IDguMy00MC41IDE0LjQtMTAuNSA1LTIwLjYgMTAuNy0zMC4yIDE3LjItNC4yIDIuOS04LjQgNS44LTEyLjMgOS01LjEgNC0xMCA4LjItMTQuNyAxMi42LTIuNSAyLjItNC44IDQuNy03LjIgNy4xLTI4LjIgMjguOC00OC40IDY1LjQtNTcuNSAxMDQuNy0yIDguNC0zLjUgMTctNC40IDI1LjYtMS4xIDguOS0xLjQgMTcuOS0xLjQgMjYuOCAuMSA3LjEgLjQgMTQuMyAxLjIgMjEuNCAuNiA3LjEgMS45IDE0LjIgMy4yIDIxLjIgMS4xIDQuNiAyIDkuMyAzLjMgMTMuOSA2LjMgMjMuNCAxNi41IDQ1LjcgMzAuMSA2NS44IDguNiAxMyAxOC44IDI0LjkgMzAgMzUuOCAxNi4zIDE1LjggMzUgMjkgNTUuMyAzOS4yIDcuMyAzLjUgMTQuNyA2LjkgMjIuMyA5LjYgNSAxLjggMTAuMSAzLjYgMTUuMiA1IDExLjMgMy4yIDIyLjggNS42IDM0LjQgNy4xIDIuOSAuMyA1LjggLjYgOC43IC45IDEzLjggMS4xIDI3LjcgMSA0MS41LS40IDQuNC0uNiA4LjktMSAxMy4zLTEuOCAzLjYtLjcgNy4zLTEuMiAxMC45LTIuMSA0LjEtMSA4LjMtMS45IDEyLjQtMy4xIDI2LjUtNy4zIDUxLjYtMTkuNyA3My42LTM2LjIgMTUuOC0xMS44IDMwLTI1LjggNDIuMS00MS4zIDMuMy00IDYuMi04LjMgOS4xLTEyLjYgMy40LTUuMSA2LjYtMTAuMiA5LjYtMTUuNSAyLjQtNC40IDQuNy04LjkgNy0xMy40IDUuNy0xMi4xIDEwLjMtMjQuNiAxMy44LTM3LjUgMi42LTEwIDQuNy0yMC4yIDUuOS0zMC40IDEuOC0xMy41IDEuOS0yNy4xIDEuMy00MC43LS4zLTMuOS0uNy03LjgtMS0xMS43LTIuMi0xOS4xLTYuOC0zNy45LTEzLjgtNTUuOC02LTE1LjEtMTMuNS0yOS42LTIyLjYtNDMuMS0xMi43LTE4LjgtMjguMi0zNS43LTQ2LTQ5LjgtMjUtMjAtNTQuNS0zNC41LTg1LjYtNDIuMS03LjgtMS45LTE1LjctMy4zLTIzLjYtNC40LTMuOS0uNi03LjgtLjgtMTEuOC0xLjItNy40LS42LTE0LjgtLjctMjIuMi0uNnpNMTQ3LjMgODMuNWMxMy4zLTguOSAyOC4xLTE1LjQgNDMuMy0yMC4yLTMuMiAxLjgtNi40IDMuNC05LjUgNS4zLTExLjIgNi43LTIxLjUgMTQuOS0zMC40IDI0LjUtNi44IDcuNC0xMi44IDE1LjctMTcgMjQuOS0zLjMgNi45LTUuNiAxNC4yLTYuOSAyMS43LS45IDQuOC0xLjMgOS44LTEuMiAxNC44IC4xIDEzLjcgNC40IDI3LjEgMTEuMyAzOC44IDUuOSAxMC4yIDEzLjYgMTkuMyAyMi40IDI3LjMgNC45IDQuNCAxMC4yIDguMSAxNSAxMi42IDIuMyAyLjIgNC41IDQuNCA2LjQgNi45IDIuNiAzLjMgNC45IDcgNiAxMS4xIC45IDMgLjcgNi4yIC43IDkuMyAwIDQuMSAwIDguMiAwIDEyLjMgLjEgMy41IDAgNy4xIC4xIDEwLjYgLjEgMi40IDAgNC44IC4xIDcuMSAuMiA1LjggLjEgMTEuNSAuMSAxNy4zIC4xIDIuOSAwIDUuOCAuMSA4LjcgMCAxLjYgLjEgMy4zIDAgNC45LS45IC4xLTEuOCAuMi0yLjcgLjItMTEgMC0yMS45LTIuNi0zMi02LjktNi0yLjctMTEuOC01LjktMTcuMS05LjgtNS44LTQuMi0xMS4xLTktMTUuOC0xNC4zLTYuNS03LjItMTItMTUuNC0xNi42LTIzLjktMS4xLTItMi4yLTQtMy4yLTYuMS0xLjItMi42LTIuNi01LjEtMy43LTcuOC00LTkuNy02LjYtMTkuOS04LjEtMzAuMy0uNS00LjQtMS4xLTguOS0xLjItMTMuMy0uNy0xNS43IC44LTMxLjYgNC43LTQ2LjggMi4xLTguMiA0LjgtMTYuMiA4LjMtMjMuOCA2LjMtMTQuMiAxNS4zLTI3LjIgMjYuMy0zOC4yIDYuMy02LjIgMTMuMS0xMS44IDIwLjUtMTYuN3pNMzIyLjcgNjMuNGMyLjcgLjcgNS40IDEuNyA4LjEgMi43IDYuNCAyLjMgMTIuNyA0LjggMTguNyA4IDEzLjEgNi40IDI1LjMgMTQuOCAzNS44IDI1IDEwLjIgMTAgMTguNyAyMS42IDI1LjEgMzQuMyAxLjMgMi43IDIuNiA1LjUgMy44IDguMyA2LjMgMTUuMSAxMCAzMS4zIDExLjIgNDcuNiAuNCA0LjUgLjQgOS4xIC41IDEzLjYgLjEgMTEuNi0xLjUgMjMuMy00LjMgMzQuNS0yIDcuMy00LjMgMTQuNS03LjkgMjEuMi0zLjIgNi42LTYuNyAxMy4yLTEwLjggMTkuMi02LjkgMTAuNS0xNS42IDE5LjktMjUuOCAyNy4yLTEwLjUgNy42LTIyLjYgMTMtMzUuNCAxNS40LTMuNSAuNy03LjEgMS4xLTEwLjcgMS4yLTEuOCAuMS0zLjcgLjItNS42LS4xLS4zLTIuMSAwLTQuMyAwLTYuNSAwLTMuNyAuMS03LjQgLjEtMTEuMiAuMi03IDAtMTQuMSAuMi0yMS4xIDAtMi40IDAtNC44IDAtNy4xIC4yLTUuMSAwLTEwLjEgLjEtMTUuMiAuMS0zLS4yLTYgLjUtOSAuNy0yLjUgMS44LTQuOSAzLjEtNy4xIDQuNS03LjMgMTEuMS0xMyAxNy43LTE4LjMgNS40LTQuMiAxMC41LTguOCAxNS0xMy44IDcuNy04LjQgMTQuMi0xNy45IDE4LjgtMjguMyAyLjUtNS45IDQuNS0xMi4xIDUuNS0xOC41IC45LTQuNCAxLjEtOC44IDEtMTMuMyAwLTcuOC0xLjQtMTUuNi0zLjYtMjMuMi0xLjgtNS43LTQuMy0xMS4yLTcuMS0xNi40LTMuOS02LjktOC42LTEzLjMtMTQtMTkuMi05LjktMTAuOC0yMS44LTE5LjktMzQuNi0yNy4xLTEuOC0xLTMuOC0xLjgtNS42LTN6TTIyMS45IDEyMS45YzEtMS4yIDItMi4zIDMuMS0zLjQtLjYgLjktMS4zIDEuOC0yIDIuNy0zLjEgMy45LTUuNSA4LjMtNyAxMy4xLS45IDMuMy0xLjcgNi42LTEuNyAxMC0uMSAyLjUtLjEgNS4xIC4zIDcuNiAxLjEgNy42IDQuMyAxNC45IDguOCAyMS4xIDIgMi43IDQuMiA1LjMgNi45IDcuMyAxLjYgMS4zIDMuNSAyLjEgNS4zIDMgMy4xIDEuNyA2LjMgMy4yIDkuMSA1LjUgMi43IDIuMSA0LjYgNS4zIDQuNCA4LjggMCA3My43IDAgMTQ3LjMgMCAyMjEgMCAxLjQtLjEgMi43IDAgNCAuMSAxLjUgLjggMi44IDEuNSA0LjEgLjkgMS43IDEuOCAzLjMgMy4yIDQuNiAuOSAuOCAyIDEuNCAzLjIgMS4yIDEuNS0uMiAyLjctMS40IDMuNC0yLjYgMS0xLjUgMS43LTMuMiAyLjMtNC45IC44LTIuMSAuNC00LjQgLjUtNi42IC4xLTQgMC04LjEgLjEtMTIuMSAwLTUuOSAwLTExLjggLjEtMTcuNyAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMi00IDAtOC4xIC4xLTEyLjEgMC02IDAtMTIgLjEtMTggLjEtMy42IDAtNy4yIC4xLTEwLjkgLjEtMy45IDAtNy45IC4xLTExLjggMC02IDAtMTIgLjEtMTggLjItMy45IDAtNy45IC4yLTExLjggLjMgMS40IC4xIDIuOSAuMiA0LjQgLjIgMy42IC40IDcuMiAuOCAxMC44IC4zIDMuNCAuNCA2LjkgLjkgMTAuMyAuNCAzLjEgLjUgNi4yIDEgOS4zIC42IDQuMSAuOSA4LjIgMS41IDEyLjMgMS41IDkgMi44IDE4LjEgNS4xIDI3IDEuMSA0LjggMi40IDkuNiA0IDE0LjMgMi41IDcuOSA1LjcgMTUuNyAxMC4zIDIyLjYgMS43IDIuNiAzLjkgNSA2LjEgNy4yIC4zIC4yIC42IC41IC45IC43IC42IC4zIDEuMy0uMSAxLjctLjYgLjctLjkgMS4yLTEuOSAxLjctMi45IDQuMS03LjggOC4yLTE1LjYgMTIuMy0yMy4zIC43LTEuMyAxLjQtMi42IDIuNi0zLjYgMS44LTEuNiAzLjgtMi43IDYtMy42IDIuOS0xLjIgNS45LTIuMiA5LTIuNCA2LjYtLjYgMTMuMSAuNyAxOS42IDEuOCAzLjcgLjYgNy40IDEuMiAxMS4xIDEuNCAzLjcgLjEgNy41IC4xIDExLjItLjMgOC42LS45IDE3LTMgMjQuOS02LjIgNS4zLTIuMiAxMC41LTQuOCAxNS4zLTcuOSAxMS41LTcuMiAyMS41LTE2LjYgMzAtMjcgMS4yLTEuNCAyLjItMi45IDMuNS00LjMtMS4yIDMuMi0yLjcgNi40LTQuMiA5LjUtMS4zIDIuOS0yLjggNS42LTQuMyA4LjQtNS4yIDkuNi0xMSAxOC45LTE3LjggMjcuNS00IDUuMi04LjUgMTAuMS0xMy4zIDE0LjYtNi42IDYuMS0xNC4xIDExLjQtMjIuNCAxNC44LTguMiAzLjQtMTcuMyA0LjYtMjYuMSAzLjMtMy42LS42LTctMS43LTEwLjQtMi45LTIuOC0xLTUuNC0yLjQtOC0zLjctMy40LTEuNy02LjYtMy44LTkuNy02LjEgMi43IDMuMSA1LjcgNS45IDguNyA4LjYgNC4zIDMuOCA4LjcgNy4zIDEzLjYgMTAuMiA0IDIuNSA4LjMgNC40IDEyLjggNS41IDEuNSAuNCAzIC41IDQuNSAuNi0xLjMgMS4xLTIuNiAyLTQgMy05LjYgNi41LTIwIDExLjktMzAuNyAxNi40LTIwLjkgOC43LTQzLjIgMTQtNjUuNyAxNS4zLTQuNyAuMi05LjMgLjQtMTQgLjQtNS0uMS0xMC0uMS0xNC45LS43LTExLjItLjgtMjIuMy0yLjctMzMuMi01LjQtMTAuNC0yLjctMjAuNi02LjEtMzAuMy0xMC42LTguNy0zLjktMTcuMS04LjQtMjUtMTMuOC0xLjgtMS4zLTMuNy0yLjUtNS40LTQuMSA2LjYtMS4yIDEzLTMuNCAxOS02LjUgNS43LTIuOSAxMS02LjcgMTUuNi0xMS4xIDIuMi0yLjIgNC4zLTQuNiA2LjItNy4xLTMuNCAyLjEtNi45IDQuMi0xMC42IDUuOC00LjQgMi4yLTkuMSAzLjgtMTMuOCA1LTUuNyAxLjUtMTEuNyAxLjctMTcuNiAxLjEtOC4xLTEtMTUuOS00LjMtMjIuNS05LTQuMy0yLjktOC4yLTYuNC0xMi0xMC4xLTkuOS0xMC4yLTE4LjItMjEuOC0yNS43LTMzLjktMy45LTYuMy03LjUtMTIuNy0xMS4xLTE5LjItMS0yLTIuMS00LjEtMy4yLTYuMSAyLjggMi45IDUuNiA2IDguNCA4LjkgMTkuMiAxOS4yIDM3LjYgMzIuMyA1My43IDM1LjUgMy4xIC43IDYuMyAuNSA5LjUgLjggMi44IC4zIDUuNiAuMiA4LjMgLjMgNSAuMSAxMC4xIDAgMTUuMi0uMiAzLjYtLjIgNy4zLS43IDEwLjktMS4xIDIuMS0uMiA0LjEtLjcgNi4xLTEuMiAzLjktMSA4LjEtMSAxMS44IC42IDQuOCAxLjggOC40IDUuNiAxMS40IDkuNyAyLjIgMyA0LjEgNi4yIDUuNyA5LjYgMS4yIDIuNCAyLjUgNC44IDMuNiA3LjMgMSAyLjIgMi4yIDQuNCAzLjQgNi41IC43IDEgMS40IDIuMiAyLjYgMi42IDEuMS0uOCAxLjctMS45IDIuMy0zIDIuMS00LjIgMy40LTguNiA0LjktMTMgMi02LjYgMy44LTEzLjMgNS4yLTIwIDIuMi05LjMgMy4yLTE4LjcgNC41LTI4LjEgLjYtNCAuOC04IDEuMy0xMiAuOS0xMC42IDEuOS0yMS4zIDIuMi0zMS45IC4xLTEuOSAuMi0zLjcgLjMtNS42IDAtNC4zIC4yLTguNyAuMi0xMyAwLTIuNCAwLTQuOCAwLTcuMSAwLTUuMS0uMi0xMC4xLS4yLTE1LjItLjItNi42LS43LTEzLjItMS4zLTE5LjgtLjctNS45LTEuNS0xMS44LTMuMS0xNy41LTItNy43LTUuNi0xNS05LjgtMjEuOC0zLjItNS4xLTYuOC05LjktMTEuMS0xNC0zLjktMy45LTguNi03LjEtMTMuOS04LjQtMS41LS40LTMuMS0uNC00LjYtLjYgLjEtMyAuNy01LjkgMS4zLTguOCAxLjYtNy43IDMuOC0xNS4zIDYuOC0yMi42IDEuNS00IDMuNC03LjkgNS40LTExLjcgMy40LTYuNiA3LjYtMTIuOCAxMi41LTE4LjV6bTMxLjMgMS43Yy40LS4xIC43LS4xIDEuMS0uMiAuMiAxLjggLjEgMy42IC4xIDUuNGwwIDM4LjFjMCAxLjcgLjEgMy41LS4yIDUuMi0uNCAwLS43IDAtMS4xIDAtLjktMy44LTEuNy03LjYtMi42LTExLjMtLjQtMS41LS42LTMuMS0xLjEtNC42LTEuNy0uMi0zLjQtLjItNS4yLS4yLTUuMSAwLTEwLjEgMC0xNS4yIDAtMS43IDAtMy4zIC4xLTUgMCAwLS40LS4zLS45IC4yLTEuMiAxLjMtLjcgMi43LS45IDQuMS0xLjQgMy40LTEuMSA2LjktMi4yIDEwLjMtMy4zIDEuNC0uNSAyLjktLjcgNC4yLTEuNSAwLS42IDAtMS4xIDAtMS43LTEuMi0uNi0yLjUtLjktMy44LTEuMy0zLjEtMS02LjMtMi05LjQtMy0xLjgtLjYtMy43LTEtNS40LTEuOCAwLS40LS4xLS43LS4xLTEuMSA1LjEtLjIgMTAuMiAuMSAxNS4zLS4xIDMuNC0uMSA2LjcgLjEgMTAuMS0uMSAuMS0uNCAuMy0uOCAuNC0xLjIgMS4xLTQuOSAyLjMtOS44IDMuNC0xNC43em02LS4yYy40IDAgLjcgLjEgMS4xIC4yIDEgMy44IDEuNyA3LjggMi43IDExLjYgLjQgMS40IC42IDIuOSAxIDQuMyAyLjUgLjIgNS4xIDAgNy42IDAgNS4yIC4xIDEwLjMgLjEgMTUuNSAuMSAuOCAwIDEuNSAwIDIuMyAuMSAwIC40LS4xIC43LS4xIDEuMS0xLjggLjgtMy44IDEuMi01LjcgMS45LTMuNyAxLjItNy41IDIuNC0xMS4yIDMuNi0uNiAuMi0xLjEgLjQtMS43IC42LS4yIC42LS4yIDEuMS0uMSAxLjcgLjkgLjUgMS44IC44IDIuOCAxLjEgNC45IDEuNSA5LjcgMy4xIDE0LjYgNC42IC40IC4xIC44IC4zIDEuMSAuNSAuNCAuMyAuMiAuOCAuMiAxLjItMS43IC4xLTMuMyAwLTUgMC01LjIgMC0xMC4zIDAtMTUuNSAwLTEuNiAwLTMuMiAwLTQuOCAuMi0uNSAxLjctLjcgMy40LTEuMiA1LjEtLjkgMy42LTEuNSA3LjItMi41IDEwLjgtLjQgMC0uNyAwLTEuMSAuMS0uMy0xLjctLjItMy41LS4yLTUuMmwwLTM4LjFjMC0xLjgtLjEtMy42IC4xLTUuNHptLTE4NiA0NWMxLjEtMi4yIDIuMS00LjQgMy40LTYuNS0xLjggNy42LTIuOSAxNS4zLTMuNiAyMy0uOCA3LjctLjggMTUuNS0uNSAyMy4yIDEuMSAxOS45IDUuNSAzOS44IDE0LjIgNTcuOSAzIDYgNi40IDExLjggMTAuNSAxNy4xIDYuMSA3LjUgMTIuNSAxNC44IDE5LjggMjEuMSA0LjggNC4xIDEwIDcuOCAxNS41IDEwLjggMy4zIDEuNyA2LjUgMy40IDkuOSA0LjcgNSAyIDEwLjIgMy42IDE1LjQgNC45IDMuOCAxIDcuOCAxLjQgMTEuNSAyLjcgNSAxLjYgOS41IDQuNiAxMyA4LjQgNC45IDUuMiA4LjEgMTEuOSAxMC4yIDE4LjcgMSAyLjkgMS42IDUuOSAyLjIgOC45IC4yIC44IC4yIDEuNSAuMiAyLjMtNi41IDIuOC0xMy4zIDUuMS0yMC4zIDYuMi00LjEgLjgtOC4zIDEtMTIuNSAxLjEtMTAuMiAuMi0yMC41LTEuOC0zMC4xLTUuMS0zLjctMS40LTcuNS0yLjktMTEtNC43LTguMS0zLjgtMTUuNi04LjctMjIuNS0xNC41LTIuOS0yLjYtNS44LTUuMS04LjQtOC05LjItOS44LTE2LjMtMjEuNC0yMS44LTMzLjctMi40LTUuNS00LjYtMTEuMi02LjQtMTctMS4yLTMuOS0yLjQtNy45LTMuMy0xMS45LS43LTIuOS0xLjItNS45LTEuOS04LjktLjUtMi4xLS43LTQuMy0xLTYuNS0uOC01LjQtMS4zLTEwLjktMS4zLTE2LjQgLjEtNi4yIC4yLTEyLjQgMS4xLTE4LjUgLjQtMi45IC43LTUuNyAxLjItOC42IDEtNS43IDIuMS0xMS40IDMuNy0xNi45IDMuMS0xMS42IDcuNS0yMyAxMi43LTMzLjh6bTM2My43LTYuNGMxLjEgMS43IDEuOSAzLjUgMi44IDUuMyAyLjEgNC41IDQuMiA4LjkgNiAxMy41IDcuNiAxOC44IDEyLjMgMzguOCAxMyA1OSAwIDEuOCAuMSAzLjUgLjEgNS4zIC4xIDkuNi0xLjMgMTkuMS0zLjIgMjguNS0uNyAzLjYtMS41IDcuMi0yLjYgMTAuNy00IDE0LjctMTAgMjktMTguNCA0MS44LTguMiAxMi42LTE5IDIzLjUtMzEuOCAzMS40LTUuNyAzLjYtMTEuOCA2LjYtMTggOS4yLTUuOCAyLjItMTEuNyA0LTE3LjggNS4xLTYuNCAxLTEyLjkgMS41LTE5LjQgMS4yLTcuOS0uNS0xNS44LTIuMS0yMy4yLTQuOC0xLjktLjgtMy45LTEuNS01LjgtMi4zLS4yLTEuNSAuMi0zIC41LTQuNSAxLjItNS43IDMtMTEuNCA1LjctMTYuNiAyLjQtNC41IDUuNS04LjcgOS41LTExLjkgMi40LTIuMSA1LjItMy42IDguMi00LjggMy42LTEuNSA3LjUtMiAxMS4yLTIuOCA3LjItMS43IDE0LjQtMy45IDIxLjItNyAxMC4zLTQuNyAxOS43LTExLjQgMjcuNi0xOS41IDEuNi0xLjYgMy4yLTMuMiA0LjctNC45IDMuNC0zLjggNi43LTcuNiA5LjgtMTEuNSA3LjUtMTAuMSAxMi44LTIxLjYgMTYuNy0zMy41IDEuNi01LjMgMy4yLTEwLjYgNC4yLTE2LjEgLjYtMi45IDEtNS44IDEuNS04LjcgLjktNi4xIDEuNi0xMi4yIDEuNy0xOC40IC4xLTYuNiAuMS0xMy4zLS41LTE5LjktLjctOC0xLjktMTYtMy43LTIzLjh6Il19LHFDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXNlIixpY29uOls2NDAsNTEyLFtdLCJmN2Q2IiwiTTYwNC41IDIxMGExMC40IDEwLjQgMCAxIDEgLTExLjQtMTcuNCAxMC40IDEwLjQgMCAxIDEgMTEuNCAxNy40ek02MjEgMTg3LjJhMzguNSAzOC41IDAgMSAxIC03NSAxNy42IDM4LjUgMzguNSAwIDEgMSA3NS0xNy42ek00MzMuNyAzMzYuN2MzLjIgNC42IDUuOCA5IDcuMyAxMy40IDEgMy4xIDIuNCA3LjMgNS41IDguOSAuMiAuMSAuMyAuMiAuNSAuMiA1LjcgMi4xIDIwLjMgMS43IDIwLjMgMS43bDI2LjggMGMyLjMgMCAyMi40IDAgMjEuOS0yLjMtMi40LTEwLjgtMTQuOS0xMi43LTI0LjQtMTguMy04LjctNS4yLTE3LTExLjEtMjAuOC0yMS4zLTItNS4yLS44LTE3LjQgMi42LTIxLjggMi41LTMuMiA2LjEtNS4zIDEwLTYuMiA0LjMtLjkgOC44LS4xIDEzLjEgLjMgNS4zIC41IDEwLjYgMS41IDE1LjkgMi4yIDEwLjMgMS4zIDIwLjYgMS45IDMxIDEuNiAxNy4xLS41IDM0LjItMy4yIDUwLjQtOC43IDExLjMtMy44IDIyLjQtOC45IDMyLTE2LjEgMTAuOS04LjEgOC4xLTcuNC0zLTYuMi0xMy4zIDEuNC0yNi42IDEuNi0zOS45IC44LTEyLjQtLjctMjQuNy0yLjItMzUuOS03LjktOC44LTQuNi0xNi40LTkuMS0yMy40LTE2LjItMS0xLjEtMS43LTQuMiAuMi02LjIgMS45LTEuOSA1LjgtLjggNyAuMiAxMi4yIDEwLjIgMzAuNSAxOC42IDQ5LjMgMTkuNSAxMC4yIC41IDIwLjEgLjcgMzAuNCAuMyA1LjEtLjIgMTIuOC0uMiAxNy45LS4zIDIuNiAwIDkuOCAuNyAxMS4yLTIuMSAuNC0uOCAuNC0xLjggLjMtMi43LTEuNS00MC45LTQuNS04Ni45LTQ3LjMtMTA2LjUtMzEuOS0xNC42LTc5LjctMzcuMi05OS45LTQ2LjYtNC43LTIuMi0xMC4yIDEuMy0xMC4yIDYuNSAwIDEzLjYgLjcgMzMuMyAuNyA1MS4xLTkuNy05LjktMjYtMTYuMS0zOC40LTIxLjgtMTQuMS02LjUtMjguNy0xMi00My41LTE2LjYtMjkuOC05LjItNjAuNy0xNC45LTkxLjctMTgtMzUuMi0zLjUtNzEtMS44LTEwNS43IDUuMy01Ni45IDEyLjItMTEzLjEgMzkuNy0xNTUuNyA3OS44LTI2LjEgMjQuNi00Ni42IDU5LjctNDggOTUuMi0yIDUwLjMgMTIuMSA3Ny4zIDM4IDEwNS4yIDQxLjMgNDQuNCAxMzAuMiA1MC42IDE2Ni4yLTIgMTYuMi0yMy43IDE5LjctNTUuOCA4LTgyLTExLjgtMjYuMi0zOC44LTQ1LjEtNjcuNC00Ni0yMi4yLS43LTQ1LjkgMTAuNi01NC41IDMxLjEtNi41IDE1LjctMi44IDM1LjEgOSA0Ny4zIDQuNiA0LjggMTAuOSA4LjcgMTcuNyA3LjEgNC0uOSA3LjQtMy45IDgtOCAuOS02LTQuNC05LjktNy42LTE0LjUtNS44LTguMy00LjctMjAuOSAyLjctMjcuOSA2LjItNiAxNS4zLTcuOCAyMy45LTcuNyA4IDAgMTYuMiAxLjQgMjMuMSA1LjUgOS43IDUuNyAxNi4yIDE2LjIgMTguNCAyNy4yIDYuNyAzMy0yMC4yIDU5LjktNTYuNiA2Mi0xOC42IDEuMS0zNy42LTMuOC01Mi4xLTE1LjUtMzYuOS0yOS44LTQ1LjktOTAuMy0zLjgtMTIyLjcgNDAtMzAuNyA5MC40LTIyLjggMTIwLjItNi44IDIzLjggMTIuOCA0MS41IDMzLjYgNTUgNTYuNyA2LjcgMTEuNiAxMi41IDIzLjcgMTcuOCAzNi4xIDUuMSAxMS44IDkuOSAyMy44IDIwLjIgMzIuNSA2LjggNS44IDE1LjIgNS42IDI0LjEgNS42bDUwLjggMGM2LjkgMCA1LjItNC42IDIuMi03LjctNi43LTYuOS0xNi40LTguNC0yNS40LTEwLjktMjAuNS01LjYtMTguNC0zMi44LTEyLjctMzIuOCAxOC4zIDAgMTguOSAuNiAzNC45IC4zIDIzLjItLjMgMzAuMi0xLjcgNDguMyA1IDkuNyAzLjYgMTkgMTMuMSAyNS4xIDIxLjd6Il19LGpDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHAtc3RvcmUtaW9zIixpY29uOls0NDgsNTEyLFtdLCJmMzcwIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjcgMzg0LjVjLTUuNSA5LjYtMTcuOCAxMi44LTI3LjMgNy4zLTkuNi01LjUtMTIuOC0xNy44LTcuMy0yNy4zbDE0LjMtMjQuN2MxNi4xLTQuOSAyOS4zLTEuMSAzOS42IDExLjRMMTI3IDM4NC41em0xMzguOS01My45TDg0IDMzMC42Yy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1MSAwIDY1LjQtMTEzLjItMjAuNS0zNS40Yy01LjUtOS42LTIuMi0yMS44IDcuMy0yNy4zIDkuNi01LjUgMjEuOC0yLjIgMjcuMyA3LjNsOC45IDE1LjQgOC45LTE1LjRjNS41LTkuNiAxNy44LTEyLjggMjcuMy03LjMgOS42IDUuNSAxMi44IDE3LjggNy4zIDI3LjNsLTg1LjggMTQ4LjYgNjIuMSAwYzIwLjIgMCAzMS41IDIzLjcgMjIuNyA0MHptOTguMSAwbC0yOSAwIDE5LjYgMzMuOWM1LjUgOS42IDIuMiAyMS44LTcuMyAyNy4zLTkuNiA1LjUtMjEuOCAyLjItMjcuMy03LjMtMzIuOS01Ni45LTU3LjUtOTkuNy03NC0xMjguMS0xNi43LTI5LTQuOC01OCA3LjEtNjcuOCAxMy4xIDIyLjcgMzIuNyA1Ni43IDU4LjkgMTAybDUyIDBjMTEgMCAyMCA5IDIwIDIwIDAgMTEuMS05IDIwLTIwIDIweiJdfSxWQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWx0cmFseXRpY3MteW9sbyIsaWNvbjpbNTEyLDUxMixbXSwiZTg2ZiIsIk0zODMuNSAxMC44YzYxLjgtLjIgMTEyLjMgNTAuNiAxMTIuMyAxMTIuOS0uMiAyLjcgMCAwLS4xIDMuM2wuMyAuM2MtMS41IDg5LjktNTMgMTY4LjQtMTI3LjQgMjA4LjVsMCA1Mi44YzAgNjIuNi01MS4xIDExMy41LTExMy43IDExMi45LTYyLS42LTExMS40LTUyLjItMTExLjQtMTE0LjNsMC01MS4yYy00MC43LTIxLjktNzQuNS01NS4yLTk3LTk1LjYgMjMuMiAxNi41IDUxLjcgMjYgODIgMjUuOSA3OC42LS4yIDE0Mi4yLTY0IDE0Mi4zLTE0Mi41IC4xLTYyLjMgNTAuNS0xMTIuNyAxMTIuOS0xMTIuOXptLTI1NSAyMjUuOGExMTIuOSAxMTIuOSAwIDEgMSAwLTIyNS44IDExMi45IDExMi45IDAgMSAxIDAgMjI1Ljh6Il19LE44ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZHJpYmJibGUiLGljb246WzQ0OCw1MTIsWyJkcmliYmJsZS1zcXVhcmUiXSwiZjM5NyIsIk0xNjUuOSAxMzIuNWMtMzguMyAxOC02Ni44IDUzLjMtNzUuNyA5NS43IDYuMSAuMSA2Mi40IC4zIDEyNi40LTE2LjctMjIuNy00MC4yLTQ3LjEtNzQuMS01MC43LTc5em0yNi4xLTkuMWMzLjggNS4xIDI4LjYgMzguOSA1MSA4MCA0OC42LTE4LjMgNjkuMS00NS45IDcxLjYtNDkuNC0zMy42LTI5LjgtNzkuMy00MS4xLTEyMi42LTMwLjZ6TTI3Ny40IDM4MmMtMi0xMi0xMC01My44LTI5LjItMTAzLjYtNTUuMSAxOC44LTkzLjggNTYuNC0xMDguMSA4NS42IDQwLjUgMzEuNiA5My4zIDM2LjcgMTM3LjMgMTh6TTIyNy44IDIzMi42QzE1OS42IDI1MyA5My40IDI1Mi4yIDg3LjQgMjUybDAgNC4yYzAgMzUuMSAxMy4zIDY3LjEgMzUuMSA5MS40IDIyLjItMzcuOSA2Ny4xLTc3LjkgMTE2LjUtOTEuOC0zLjQtNy44LTcuMi0xNS41LTExLjEtMjMuMmwtLjEgMHptNzIuNSAxMzYuOWMzMC43LTIwLjcgNTIuNS01My42IDU4LjYtOTEuNi00LjYtMS41LTQyLjMtMTIuNy04NS4xLTUuOCAxNy45IDQ5LjEgMjUuMSA4OS4xIDI2LjUgOTcuNHptLTM0LjgtMTE5YzQ1LjUtNS43IDkwLjcgMy40IDk1LjIgNC40LS4zLTMyLjMtMTEuOC02MS45LTMwLjktODUuMS0yLjkgMy45LTI1LjggMzMuMi03Ni4zIDUzLjkgNC44IDkuOCA4LjMgMTcuOCAxMiAyNi44ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDk2YTE2MCAxNjAgMCAxIDEgMCAzMjAgMTYwIDE2MCAwIDEgMSAwLTMyMHoiXX0sVUN0PU44ZSxXQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWlraXQiLGljb246WzQ0OCw1MTIsW10sImY0MDMiLCJNNDQzLjkgMTI4bDAgMjU2LTIyNS45IDEyOC0yMTgtMTI4IDAtMjE0LjMgODcuNiA0NS4xIDAgMTE3IDEzMy41IDc1LjUgMTM1LjgtNzUuNSAwLTE1MS0xMDEuMS01Ny42IDg3LjYtNTMuMSAxMDAuNSA1Ny45ek0zMDguNiA0OS4xbC04NC44LTQ5LjEtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3oiXX0sR0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cGVycG93ZXJzIixpY29uOls0NDgsNTEyLFtdLCJmMmRkIiwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyek0zNjguMyAyNjQuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXoiXX0sS0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlvdXR1YmUiLGljb246WzU3Niw1MTIsWzYxODAyXSwiZjE2NyIsIk01NDkuNyAxMjQuMUM1NDMuNSAxMDAuNCA1MjQuOSA4MS44IDUwMS40IDc1LjUgNDU4LjkgNjQgMjg4LjEgNjQgMjg4LjEgNjRTMTE3LjMgNjQgNzQuNyA3NS41QzUxLjIgODEuOCAzMi43IDEwMC40IDI2LjQgMTI0LjEgMTUgMTY3IDE1IDI1Ni40IDE1IDI1Ni40czAgODkuNCAxMS40IDEzMi4zYzYuMyAyMy42IDI0LjggNDEuNSA0OC4zIDQ3LjggNDIuNiAxMS41IDIxMy40IDExLjUgMjEzLjQgMTEuNXMxNzAuOCAwIDIxMy40LTExLjVjMjMuNS02LjMgNDItMjQuMiA0OC4zLTQ3LjggMTEuNC00Mi45IDExLjQtMTMyLjMgMTEuNC0xMzIuM3MwLTg5LjQtMTEuNC0xMzIuM3pNMjMyLjIgMzM3LjZsMC0xNjIuNCAxNDIuNyA4MS4yLTE0Mi43IDgxLjJ6Il19LFlDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbWJlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMyIsIk02MzkuOSAyNTQuNmMtMS4xLTEwLjctMTAuNy02LjgtMTAuNy02LjhzLTE1LjYgMTIuMS0yOS4zIDEwLjdjLTEzLjctMS4zLTkuNC0zMi05LjQtMzJzMy0yOC4xLTUuMS0zMC40Yy04LjEtMi40LTE4IDcuMy0xOCA3LjNzLTEyLjQgMTMuNy0xOC4zIDMxLjJsLTEuNiAuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNyAuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNSAuMy0xNi43LTExLjgtMTYuNy0xMS44czY4LTIzLjMgNDkuNC02OS4yYy04LjMtMTEuOC0xOC0xNS41LTMxLjctMTUuMy0xMy43IC4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWwxLjYgMHMtNS42IDQ4LjEgMyA2My43IDMwLjkgNS4zIDMwLjkgNS4zIDE1LjYtNy44IDE4LTEwLjJjMCAwIDE4LjUgMTUuOCA0NC42IDEyLjkgNTguMy0xMS41IDc5LjEtMjUuOSA3OS4xLTI1LjlzMTAgMjQuNCA0MS4xIDI2LjdjMzUuNSAyLjcgNTQuOC0xOC42IDU0LjgtMTguNnMtLjMgMTMuNSAxMi4xIDE4LjYgMjAuNy0yMi44IDIwLjctMjIuOGwyMC43LTU3LjIgMS45IDBzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42ek0zMzQuNyAxMzYuMXMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnoiXX0sWkN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvb3RzdHJhcCIsaWNvbjpbNTc2LDUxMixbXSwiZjgzNiIsIk0zMzMuNSAyMDEuNGMwLTIyLjEtMTUuNi0zNC4zLTQzLTM0LjNsLTUwLjQgMCAwIDcxLjIgNDIuNSAwYzMyLjgtLjEgNTAuOS0xMy4zIDUwLjktMzYuOXpNNTE3IDE4OC42Yy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjEgMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUwxMjMuNyAzMmMtMzIuMSAwLTU1LjggMjguMS01NC43IDU4LjUgMSAyOS4zLS4zIDY3LjItOS44IDk4LjEtOS42IDMxLTI1LjcgNTAuNi01Mi4yIDUzLjFsMCAyOC41YzI2LjQgMi41IDQyLjYgMjIuMSA1Mi4yIDUzLjEgOS41IDMwLjkgMTAuOSA2OC44IDkuOCA5OC4xLTEuMSAzMC41IDIyLjcgNTguNSA1NC43IDU4LjVsMzI4LjcgMGMzMi4xIDAgNTUuOC0yOC4xIDU0LjctNTguNS0xLTI5LjMgLjMtNjcuMiA5LjgtOTguMSA5LjYtMzEgMjUuNy01MC42IDUyLjEtNTMuMWwwLTI4LjVjLTI2LjMtMi41LTQyLjUtMjIuMS01Mi01My4xek0zMDAuMiAzNzUuMWwtOTcuOSAwIDAtMjM4LjMgOTcuNCAwYzQzLjMgMCA3MS43IDIzLjQgNzEuNyA1OS40IDAgMjUuMy0xOS4xIDQ3LjktNDMuNSA1MS44bDAgMS4zYzMzLjIgMy42IDU1LjUgMjYuNiA1NS41IDU4LjMgMCA0Mi4xLTMxLjMgNjcuNS04My4yIDY3LjV6bS0xMC0xMDguN2wtNTAuMSAwIDAgNzguNCA1Mi4zIDBjMzQuMiAwIDUyLjMtMTMuNyA1Mi4zLTM5LjUgMC0yNS43LTE4LjYtMzguOS01NC41LTM4Ljl6Il19LFhDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMiLGljb246WzQ0OCw1MTIsW10sImYzYjQiLCJNMjIzLjYgODAuM2ExNzEuMyAxNzEuMyAwIDEgMCAuMiAzNDIuNSAxNzEuMyAxNzEuMyAwIDEgMCAtLjItMzQyLjV6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEgLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcgLjktMTI3IDIuNi0xMzMuNyAuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNiAuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkwxMDIuOCAzMkM0NS45IDMyIDAgNzcuOSAwIDEzNC44TDAgMzc3LjJDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBsMjQyLjQgMGM1NyAwIDEwMi44LTQ1LjkgMTAyLjgtMTAyLjhsMC0yNDIuNEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNTlhMTkyLjUgMTkyLjUgMCAxIDEgMCAzODUgMTkyLjUgMTkyLjUgMCAxIDEgMC0zODV6Il19LFI4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteGluZyIsaWNvbjpbNDQ4LDUxMixbInhpbmctc3F1YXJlIl0sImYxNjkiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTkzLjggMzIwLjJjLTUuNSAwLTguNy01LjMtNi0xMC4zbDQ5LjMtODYuN2MuMSAwIC4xLS4xIDAtLjJsLTMxLjQtNTRjLTMtNS42IC4yLTEwLjEgNi0xMC4xbDQ2LjYgMGM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMi0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjFsLTQ2LjYgMHptMTYzLjUtMzMuNGwwIC4yIDY1LjUgMTE5YzIuOCA1LjEgLjEgMTAuMS02IDEwLjFsLTQ2LjYgMGMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMS44LTMuMiAyMi45LTQwLjQgNjMuMy0xMTEuNiAxMS43LTIwLjcgMjUuMS00NC4zIDQwLjEtNzAuOCAzLjMtNS44IDcuNC04LjcgMTIuNS04LjdsNDYuOSAwYzUuNy0uMSA4LjggNC43IDYgMTBMMjU3LjMgMjg2Ljh6Il19LFFDdD1SOGUsSkN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMtYWx0IixpY29uOlszODQsNTEyLFtdLCJmMzhiIiwiTTAgMzJMMzQuOSA0MjcuOCAxOTIgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyem0zMTMuMSA4MGwtNC44IDQ3LjMtMTE1LjMgNDkuMy0uMyAuMSAxMTEuNSAwLTEyLjggMTQ2LjYtOTguMiAyOC43LTk4LjgtMjkuMi02LjQtNzMuOSA0OC45IDAgMy4yIDM4LjMgNTIuNiAxMy4zIDU0LjctMTUuNCAzLjctNjEuNi0xNjYuMy0uNSAwLS4xLS4yIC4xLTMuNi00Ni4zIDExMi4xLTQ2LjcgNi41LTIuNy0xMjIuOSAwLTUuOC00Ny4zIDI0Mi4yIDB6Il19LGVUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmVzcGFjZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViZSIsIk0xODYuMSAzNDMuM2MtOS43IDkuNy05LjcgMjUuMyAwIDM0LjlzMjUuMyA5LjYgMzQuOSAwTDM3OC4zIDIyMS4xYzE5LjMtMTkuMyA1MC42LTE5LjMgNjkuOSAwczE5LjMgNTAuNiAwIDY5LjlMMjk0IDQ0NS4xYzE5LjMgMTkuMyA1MC41IDE5LjMgNjkuOCAwbDAgMCAxMTkuMy0xMTkuMmMzOC42LTM4LjYgMzguNi0xMDEuMSAwLTEzOS43LTM4LjYtMzguNi0xMDEuMi0zOC42LTEzOS43IDBMMTg2LjEgMzQzLjN6TTQzMC43IDIzOC41Yy05LjctOS43LTI1LjMtOS43LTM0LjkgMEwyMzguNSAzOTUuN2MtMTkuMyAxOS4zLTUwLjUgMTkuMy02OS44IDBsMCAwYy05LjYtOS42LTI1LjMtOS43LTM0LjkgMGwwIDBjLTkuNyA5LjYtOS43IDI1LjMgMCAzNC45bDAgMGMzOC42IDM4LjYgMTAxLjEgMzguNiAxMzkuNyAwTDQzMC43IDI3My41YzkuNi05LjcgOS42LTI1LjMgMC0zNC45em0tMjYyIDg3LjNMMzI1LjkgMTY4LjdjOS42LTkuNiA5LjYtMjUuMyAwLTM0LjktOS42LTkuNi0yNS4zLTkuNi0zNC45IDBMMTMzLjcgMjkwLjljLTE5LjMgMTkuMy01MC42IDE5LjMtNjkuOSAwbDAgMGMtMTkuMy0xOS4zLTE5LjMtNTAuNSAwLTY5LjhsMCAwIDE1NC4yLTE1NC4yYy0xOS4zLTE5LjMtNTAuNS0xOS4zLTY5LjggMGwwIDAtMTE5LjIgMTE5LjNjLTM4LjYgMzguNi0zOC42IDEwMS4xIDAgMTM5LjcgMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMHpNODEuMyAyNzMuNWM5LjYgOS42IDI1LjMgOS42IDM0LjkgMEwyNzMuNSAxMTYuM2MxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjggMGwwIDBjOS43IDkuNiAyNS4zIDkuNiAzNC45IDBzOS42LTI1LjMgMC0zNC45Yy0zOC42LTM4LjYtMTAxLjEtMzguNi0xMzkuNyAwTDgxLjMgMjM4LjVjLTkuNiA5LjYtOS42IDI1LjMgMCAzNC45bDAgMHoiXX0sdFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRyZWxsbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4MSIsIk0zOTIuMyAzMkw1Ni4xIDMyYy0zMSAwLTU2LjEgMjUuMS01Ni4xIDU2LS4xIDAgMC00IDAgMzM2IDAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNi4yIDBjMzAuOC0uMiA1NS43LTI1LjIgNTUuNy01NmwwLTMzNmMuMS0zMC44LTI0LjgtNTUuOC01NS42LTU2ek0xOTcgMzcxLjNjLS4yIDE0LjctMTIuMSAyNi42LTI2LjkgMjYuNmwtODIuNyAwYy0xNC44IC4xLTI2LjktMTEuOC0yNy0yNi42bDAtMjU0LjJjMC0xNC44IDEyLTI2LjkgMjYuOS0yNi45bDgyLjkgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAyNTQuMi0uMSAwem0xOTMuMS0xMTJjMCAxNC44LTEyIDI2LjktMjYuOSAyNi45bC04MSAwYy0xNC44IDAtMjYuOS0xMi0yNi45LTI2LjlsMC0xNDIuMWMwLTE0LjggMTItMjYuOSAyNi44LTI2LjlsODEuMSAwYzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOWwwIDE0Mi4xeiJdfSxhVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhZGVvIixpY29uOls0NDgsNTEyLFtdLCJmMmE5IiwiTTI3Ni40IDE1MC41bDAgLjdjLTE3LjktNTIuNi00Mi42LTEwMy40LTcwLjgtMTUxLjIgNDMuMyAyOS4yIDY3IDEwMCA3MC44IDE1MC41em0zMi43IDEyMS43YzcuNiAxOC4yIDExIDM3LjUgMTEgNTcgMCA3Ny43LTU3LjggMTQxLTEzNy44IDEzOS40bDMuOC0uM2M3NC4yLTQ2LjcgMTA5LjMtMTE4LjYgMTA5LjMtMjA1LjEgMC0zOC4xLTYuNS03NS45LTE4LjktMTEyIDEgMTEuNyAxIDIzLjcgMSAzNS40IDAgOTEuOC0xOC4xIDI0MS42LTExNi42IDI4MC02NS43LTExLjQtMTExLjMtNjguNi0xMTEuMy0xMzcuNCAwLTc1LjYgNTcuNC0xNDIuMyAxMzUuNC0xNDIuMyAxNi44IDAgMzMuNyAzLjEgNDkuMSA5LjYgMS43LTE1LjEgNi41LTI5LjkgMTMuNC00My4zLTE5LjktNy4yLTQxLjItMTAuNy02Mi41LTEwLjctMTYxLjUgMC0yMzguNyAxOTUuOS0xMjkuOSAzMTMuNyA2Ny45IDc0LjYgMTkyIDczLjkgMjU5LjggMCA1Ni42LTYxLjMgNjAuOS0xNDIuNCAzNi40LTIwMS0xMi43IDgtMjcuMSAxMy45LTQyLjIgMTd6TTQxOC4zIDExLjdjLTMxIDY2LjUtODEuMyA0Ny4yLTExNS44IDgwLjEtMTIuNCAxMi0yMC42IDM0LTIwLjYgNTAuNSAwIDE0LjEgNC41IDI3LjEgMTIgMzguOCA0Ny40LTExIDk4LjMtNDYgMTE4LjItOTAuNy0uNyA1LjUtNC44IDE0LjQtNy4yIDE5LjItMjAuMyAzNS43LTY0LjYgNjUuNi05OS43IDg0LjkgMTQuOCAxNC40IDMzLjcgMjUuOCA1NSAyNS44IDc5IDAgMTEwLjEtMTM0LjYgNTguMS0yMDguNnoiXX0sc1R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlYXJjaGVuZ2luIixpY29uOls0NDgsNTEyLFtdLCJmM2ViIiwiTTIxNC42IDEzMC4zbC02Ny4yIDI4LjIgMC0xMTUuMy01NC43IDE5MC4zIDU0LjctMjQuMiAwIDEzMC4zIDY3LjItMjA5LjN6TTEzMS40IDMzLjZsLTEuMyA0LjctMTUuMiA1Mi45Qzc0LjYgMTA2LjcgNDYgMTQ1LjggNDYgMTkxLjUgNDYgMjQzLjggODAuMyAyODcuNCAxMjkuNCAyOTdsMCA1My42QzUxLjUgMzQwLjEtNiAyNzIuNC02IDE5MS42LTYgMTExLjEgNTMuOCA0NC40IDEzMS40IDMzLjZ6TTQ0Mi44IDQ4MC44Yy0xMS4yIDExLjItMjMuMSAxMi4zLTI4LjYgMTAuNS01LjQtMS44LTI3LjEtMTkuOS02MC40LTQ0LjQtMzMuMy0yNC42LTMzLjYtMzUuNy00My01Ni43LTkuNC0yMC45LTMwLjQtNDIuNi01Ny41LTUyLjRsLTkuNy0xNC43Yy0yNC43IDE2LjktNTMgMjYuOS04MS4zIDI4LjdsMi4xLTYuNiAxNS45LTQ5LjVjNDYuNS0xMS45IDgwLjktNTQgODAuOS0xMDQuMiAwLTU0LjUtMzguNC0xMDIuMS05Ni0xMDcuMWwwLTUyLjFjODMuMiA1LjEgMTQ4LjggNzQuNSAxNDguOCAxNTkuMyAwIDMzLjYtMTEuMiA2NC43LTI5IDkwLjRsMTQuNiA5LjZjOS44IDI3LjEgMzEuNSA0OCA1Mi40IDU3LjRzMzIuMiA5LjcgNTYuOCA0M2MyNC42IDMzLjIgNDIuNyA1NC45IDQ0LjUgNjAuM3MuNyAxNy4zLTEwLjUgMjguNXptLTkuOS0xNy45YzAtNC40LTMuNi04LTgtOHMtOCAzLjYtOCA4IDMuNiA4IDggOCA4LTMuNiA4LTh6Il19LGlUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnJlYWwtZW5naW5lIixpY29uOls1MTIsNTEyLFtdLCJlODVjIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem02NS41LTExMy43bC0yNS4xLTI4LjMtNDIuNCA0Mi42Yy0yNC4xLS4zLTQ3LjktNi4yLTY5LjMtMTcuMnMtNDAuMS0yNi45LTU0LjUtNDYuM2M0LjUgMS40IDkuMiAyLjMgMTMuOSAyLjYgNi45IC4xIDE0LjUtMi40IDE0LjUtMTQuMWwwLTExNS4xYy4xLTMtLjUtNS45LTEuNy04LjZzLTMuMS01LTUuNC02LjktNS0zLjEtNy45LTMuNy01LjktLjUtOC44IC4yYy0xOS42IDQuNS0zNS4zIDUzLjUtMzUuMyA1My41LS4yLTIyLjYgNC41LTQ1IDEzLjgtNjUuNnMyMy0zOSA0MC4xLTUzLjhjMjIuNS0xOS41IDUwLjEtMzIuMiA3OS42LTM2LjctMjEuNCAxMi4yLTMzLjUgMzIuMS0zMy41IDQ4LjkgMCAyNi45IDE2LjIgMjMuNiAyMSAxOS43bDAgMTU1LjNjLjggMS45IDEuOSAzLjggMy4yIDUuNSAyLjEgMyA1IDUuNCA4LjIgN3M2LjkgMi41IDEwLjUgMi41YzE2LjIgMCAzNy4zLTE4LjUgMzcuMy0xOC41bDAtMTI1LjdjMC0xMi44LTkuNi0yOC4yLTE5LjMtMzMuNSAwIDAgMTcuOS0zLjIgMzEuNyA3LjQgMi42LTMuMiA1LjMtNi4yIDguMi05LjEgMzIuMi0zMS42IDYyLjUtNDAuNiA4Ny43LTQ1LjEgMCAwLTQ1LjkgMzYuMS00NS45IDg0LjUgMCAzNiAuOSAxMjMuOCAuOSAxMjMuOCAxNyAxNi40IDQyLjQtNy4zIDY1LjItMzAuOC00LjQgMjEuMy0yNCA3NS45LTg2LjYgMTA1LjR6Il19LHJUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYXlwYWwiLGljb246WzM4NCw1MTIsW10sImYxZWQiLCJNMTExLjkgMjk1LjljLTMuNSAxOS4yLTE3LjQgMTA4LjctMjEuNSAxMzQtLjMgMS44LTEgMi41LTMgMi41bC03NC42IDBjLTcuNiAwLTEzLjEtNi42LTEyLjEtMTMuOUw1OS4zIDQ2LjZjMS41LTkuNiAxMC4xLTE2LjkgMjAtMTYuOSAxNTIuMyAwIDE2NS4xLTMuNyAyMDQgMTEuNCA2MC4xIDIzLjMgNjUuNiA3OS41IDQ0IDE0MC4zLTIxLjUgNjIuNi03Mi41IDg5LjUtMTQwLjEgOTAuMy00My40IC43LTY5LjUtNy03NS4zIDI0LjJ6TTM1Ny42IDE1MmMtMS44LTEuMy0yLjUtMS44LTMgMS4zLTIgMTEuNC01LjEgMjIuNS04LjggMzMuNi0zOS45IDExMy44LTE1MC41IDEwMy45LTIwNC41IDEwMy45LTYuMSAwLTEwLjEgMy4zLTEwLjkgOS40LTIyLjYgMTQwLjQtMjcuMSAxNjkuNy0yNy4xIDE2OS43LTEgNy4xIDMuNSAxMi45IDEwLjYgMTIuOWw2My41IDBjOC42IDAgMTUuNy02LjMgMTcuNC0xNC45IC43LTUuNC0xLjEgNi4xIDE0LjQtOTEuMyA0LjYtMjIgMTQuMy0xOS43IDI5LjMtMTkuNyA3MSAwIDEyNi40LTI4LjggMTQyLjktMTEyLjMgNi41LTM0LjggNC42LTcxLjQtMjMuOC05Mi42eiJdfSxvVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWJsdWVza3kiLGljb246WzQ0OCw1MTIsW10sImU2YTMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDI0Ny40YzE0LjUtMzAgNTQtODUuOCA5MC43LTExMy4zIDI2LjUtMTkuOSA2OS4zLTM1LjIgNjkuMyAxMy43IDAgOS44LTUuNiA4Mi4xLTguOSA5My44LTExLjQgNDAuOC01MyA1MS4yLTkwIDQ0LjkgNjQuNyAxMSA4MS4yIDQ3LjUgNDUuNiA4NC02Ny41IDY5LjMtOTctMTcuNC0xMDQuNi0zOS42bC0uMy0uOWMtLjktMi42LTEuNC00LjEtMS44LTQuMXMtLjkgMS41LTEuOCA0LjFjLS4xIC4zLS4yIC42LS4zIC45LTcuNiAyMi4yLTM3LjEgMTA4LjgtMTA0LjYgMzkuNi0zNS41LTM2LjUtMTkuMS03MyA0NS42LTg0LTM3IDYuMy03OC42LTQuMS05MC00NC45LTMuMy0xMS43LTguOS04NC04LjktOTMuOCAwLTQ4LjkgNDIuOS0zMy41IDY5LjMtMTMuNyAzNi43IDI3LjUgNzYuMiA4My40IDkwLjcgMTEzLjN6Il19LG5UdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkLWFuZC1kLWJleW9uZCIsaWNvbjpbNjQwLDUxMixbXSwiZjZjYSIsIk0zMTMuOCAyNDEuNWMxMy44IDAgMjEtMTAuMSAyNC44LTE3LjktMS0xLjEtNS00LjItNy40LTYuNi0yLjQgNC4zLTguMiAxMC43LTEzLjkgMTAuNy0xMC4yIDAtMTUuNC0xNC43LTMuMi0yNi42LS41LS4yLTQuMy0xLjgtOCAyLjQgMC0zIDEtNS4xIDIuMS02LjYtMy41IDEuMy05LjggNS42LTExLjQgNy45IC4yLTUuOCAxLjYtNy41IC42LTlsLS4yLS4ycy04LjUgNS42LTkuMyAxNC43YzAgMCAxLjEtMS42IDIuMS0xLjkgLjYtLjMgMS4zIDAgLjYgMS45LS4yIC42LTUuOCAxNS43IDUuMSAyNi0uNi0xLjYtMS45LTcuNiAyLjQtMS45LS4zIC4xIDUuOCA3LjEgMTUuNyA3LjF6bTUyLjQtMjEuMWMwLTQtNC45LTQuNC01LjYtNC41IDIgMy45IC45IDcuNSAuMiA5IDIuNS0uNCA1LjQtMS42IDUuNC00LjV6bTEwLjMgNS4yYzAtNi40LTYuMi0xMS40LTEzLjUtMTAuNyA4IDEuMyA1LjYgMTMuOC01IDExLjQgMy43LTIuNiAzLjItOS45LTEuMy0xMi41IDEuNCA0LjItMyA4LjItNy40IDQuNi0yLjQtMS45LTgtNi42LTEwLjYtOC42LTIuNC0yLjEtNS41LTEtNi42LTEuOC0xLjMtMS4xLS41LTMuOC0yLjItNS0xLjYtLjgtMy0uMy00LjgtMS0xLjYtLjYtMi43LTEuOS0yLjYtMy41LTIuNSA0LjQgMy40IDYuMyA0LjUgOC41IDEgMS45LS44IDQuOCA0IDguNSAxNC44IDExLjYgOS4xIDggMTAuNCAxOC4xIC42IDQuMyA0LjIgNi43IDYuNCA3LjQtMi4xLTEuOS0yLjktNi40IDAtOS4zIDAgMTMuOSAxOS4yIDEzLjMgMjMuMSA2LjQtMi40IDEuMS03LS4yLTktMS45IDcuNyAxIDE0LjItNC4xIDE0LjYtMTAuNnptLTM5LjQtMTguNGMyIC44IDEuNiAuNyA2LjQgNC41IDEwLjItMjQuNSAyMS43LTE1LjcgMjItMTUuNSAyLjItMS45IDkuOC0zLjggMTMuOC0yLjctMi40LTIuNy03LjUtNi4yLTEzLjMtNi4yLTQuNyAwLTcuNCAyLjItOCAxLjMtLjgtMS40IDMuMi0zLjQgMy4yLTMuNC01LjQgLjItOS42IDYuNy0xMS4yIDUuOS0xLjEtLjUgMS40LTMuNyAxLjQtMy43LTUuMSAyLjktOS4zIDkuMS0xMC4yIDEzIDQuNi01LjggMTMuOC05LjggMTkuNy05LTEwLjUgLjUtMTkuNSA5LjctMjMuOCAxNS44em0yNDIuNSA1MS45Yy0yMC43IDAtNDAgMS4zLTUwLjMgMi4xbDcuNCA4LjIgMCA3Ny4yLTcuNCA4LjJjMTAuNCAuOCAzMC45IDIuMSA1MS42IDIuMSA0Mi4xIDAgNTkuMS0yMC43IDU5LjEtNDguOSAwLTI5LjMtMjMuMi00OC45LTYwLjQtNDguOXptLTE1LjEgNzUuNmwwLTUzLjNjMzAuMS0zLjMgNDYuOCAzLjggNDYuOCAyNi4zIDAgMjUuNi0yMS40IDMwLjItNDYuOCAyN3pNMzAxLjYgMTgxYy0xLTMuNC0uMi02LjkgMS4xLTkuNCAxIDMgMi42IDYuNCA3LjUgOS0uNS0yLjQtLjItNS42IC41LTgtMS40LTUuNCAyLjEtOS45IDYuNC05LjkgNi45IDAgOC41IDguOCA0LjcgMTQuNCAyLjEgMy4yIDUuNSA1LjYgNy43IDcuOCAzLjItMy43IDUuNS05LjUgNS41LTEzLjggMC04LjItNS41LTE1LjktMTYuNy0xNi41LTIwLS45LTIwLjIgMTYuNi0yMCAxOC45IC41IDUuMiAzLjQgNy44IDMuMyA3LjV6bS0uNCA2Yy0uNSAxLjgtNyAzLjctMTAuMiA2LjkgNC44LTEgNy0uMiA3LjggMS44IC41IDEuNC0uMiAzLjQtLjUgNS42IDEuNi0xLjggNy01LjUgMTEtNi4yLTEtLjMtMy40LS44LTQuMy0uOCAyLjktMy40IDkuMy00LjUgMTIuOC0zLjctMi4yLS4yLTYuNyAxLjEtOC41IDIuNiAxLjYgLjMgMyAuNiA0LjMgMS4xLTIuMSAuOC00LjggMy40LTUuOCA2LjEgNy01IDEzLjEgNS4yIDcgOC4yIC44IC4yIDIuNyAwIDMuNS0uNS0uMyAxLjEtMS45IDMtMyAzLjQgMi45IDAgNy0xLjkgOC4yLTQuNiAwIDAtMS44IC42LTIuNi0uMnMuMy00LjMgLjMtNC4zYy0yLjMgMi45LTMuNC0xLjMtMS4zLTQuMi0xLS4zLTMuNS0uNi00LjYtLjUgMy4yLTEuMSAxMC40LTEuOCAxMS4yLS4zIC42IDEuMS0xIDMuNC0xIDMuNCA0LS41IDguMyAxLjEgNi43IDUuMSAyLjktMS40IDUuNS01LjkgNC44LTEwLjQtLjMgMS0xLjYgMi40LTIuOSAyLjcgLjItMS40LTEtMi4yLTEuOS0yLjYgMS43LTkuNi0xNC42LTE0LjItMTQuMS0yMy45LTEgMS4zLTEuOCA1LS44IDcuMSAyLjcgMy4yIDguNyA2LjcgMTAuMSAxMi4yLTIuNi02LjQtMTUuMS0xMS40LTE0LjYtMjAuMi0xLjYgMS42LTIuNiA3LjgtMS4zIDExIDIuNCAxLjQgNC41IDMuOCA0LjggNi4xLTIuMi01LjEtMTEuNC02LjEtMTMuOS0xMi4yLS42IDIuMi0uMyA1IDEgNi43IDAgMC0yLjItLjgtNy0uNiAxLjcgLjYgNS4xIDMuNSA0LjggNS4yem0yNS45IDcuNGMtMi43IDAtMy41LTIuMS00LjItNC4zIDMuMyAxLjMgNC4yIDQuMyA0LjIgNC4zem0zOC45IDMuN2wtMS0uNmMtMS4xLTEtMi45LTEuNC00LjctMS40LTIuOSAwLTUuOCAxLjMtNy41IDMuNC0uOCAuOC0xLjQgMS44LTIuMSAyLjZsMCAxNS43YzMuNSAyLjYgNy4xLTIuOSAzLTcuMiAxLjUgLjMgNC42IDIuNyA1LjEgMy4yIDAgMCAyLjYtLjUgNS0uNSAyLjEgMCAzLjkgLjMgNS42IDEuMWwwLTE4LjRjLTEuMSAuNS0yLjIgMS0yLjcgMS40bC0uNyAuN3pNNzkuOSAzMDUuOWMxNy4yLTQuNiAxNi4yLTE4IDE2LjItMTkuOSAwLTIwLjYtMjQuMS0yNS0zNy0yNWwtNTYuMSAwIDguMyA4LjYgMCAyOS41LTExLjMgMCAxMS40IDE0LjYgMCAzMi4zLTguNCA4LjZjNjEuNyAwIDczLjggMS41IDg2LjQtNS45IDYuNy00IDkuOS05LjggOS45LTE3LjYgMC01LjEgMi42LTE4LjgtMTkuNC0yNS4yek0zOC42IDI3OC40YzIwIDAgMjkuNi0uOCAyOS42IDkuMWwwIDNjMCAxMi4xLTE5IDguOC0yOS42IDguOGwwLTIwLjl6bTAgNTkuMmwwLTIyLjZjMTIuMiAwIDMyLjctMi4zIDMyLjcgOC44bDAgNC41IC4yIDBjMCAxMS4yLTEyLjUgOS4zLTMyLjkgOS4zem0xMDEuMi0xOS4zbDIzLjEgLjIgMC0uMiAxNC4xLTIxLjItMzcuMiAwIDAtMTQuOSA1Mi40IDAtMTQuMS0yMSAwLS4yLTczLjUgLjIgNy40IDguMiAwIDc3LjEtNy40IDguMiA4MS4yIDAgMTQuMS0yMS4yLTYwLjEgLjIgMC0xNS40em0yMTQuNy02MC4xYy03My45IDAtNzcuNSA5OS4zLS4zIDk5LjMgNzcuOSAwIDc0LjEtOTkuMyAuMy05OS4zem0tLjMgNzcuNWMtMzcuNCAwLTM2LjktNTUuMyAuMi01NS4zIDM2LjggLjEgMzguOCA1NS4zLS4yIDU1LjN6bS05MS4zLTguM2w0NC4xLTY2LjItNDEuNyAwIDYuMSA3LjItMjAuNSAzNy4yLS4zIDAtMjEtMzcuMiA2LjQtNy4yLTQ0LjkgMCA0NC4xIDY1LjggLjIgMTkuNC03LjcgOC4yIDQyLjYgMC03LjItOC4yLS4yLTE5ek0yMzQuNSAxNzYuMWMxLjYgMS4zIDIuOSAyLjQgMi45IDYuNmwwIDM4LjhjMCA0LjItLjggNS4zLTIuNyA2LjQtLjEgLjEtNy41IDQuNS03LjkgNC42bDM1LjEgMGMxMCAwIDE3LjQtMS41IDI2LTguNi0uNi01IC4yLTkuNSAuOC0xMiAwLS4yLTEuOCAxLjQtMi43IDMuNSAwLTUuNyAxLjYtMTUuNCA5LjYtMjAuNS0uMSAwLTMuNy0uOC05IDEuMSAyLTMuMSAxMC03LjkgMTAuNC03LjktOC4yLTI2LTM4LTIyLjktMzIuMi0yMi45LTMwLjkgMC0zMi42IC4zLTM5LjktNCAuMSAuOCAuNSA4LjIgOS42IDE0Ljl6bTIxLjUgNS41YzQuNiAwIDIzLjEtMy4zIDIzLjEgMTcuMyAwIDIwLjctMTguNCAxNy4zLTIzLjEgMTcuM2wwLTM0LjZ6bTIyOC45IDc5LjZsNyA4LjMgMCA0Mi41LS4zIDBjLTUuNC0xNC40LTQyLjMtNDEuNS00NS4yLTUwLjlsLTMxLjYgMCA3LjQgOC41IDAgNzYuOS03LjIgOC4zIDM5IDAtNy40LTguMiAwLTQ3LjQgLjMgMGMzLjcgMTAuNiA0NC41IDQyLjkgNDguNSA1NS42bDIxLjMgMCAwLTg1LjIgNy40LTguMy0zOS4yLS4xek0zNzguMiAxNjUuMWMtMzIuMiAwLTMyLjggLjItMzkuOS00IC4xIC43IC41IDguMyA5LjYgMTQuOSAzLjEgMiAyLjkgNC4zIDIuOSA5LjUgMS44LTEuMSAzLjgtMi4yIDYuMS0zLTEuMSAxLjEtMi43IDIuNy0zLjUgNC41IDEtMS4xIDcuNS01LjEgMTQuNi0zLjUtMS42IC4zLTQgMS4xLTYuMSAyLjkgLjEgMCAyLjEtMS4xIDcuNS0uM2wwLTQuM2M0LjcgMCAyMy4xLTMuNCAyMy4xIDE3LjMgMCAyMC41LTE4LjUgMTcuMy0xOS43IDE3LjMgNS43IDQuNCA1LjggMTIgMi4yIDE2LjNsLjMgMGMzMy40IDAgMzYuNy0yNy4zIDM2LjctMzQgMC0zLjgtMS4xLTMyLTMzLjgtMzMuNnoiXX0sbFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pY3Jvc29mdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjYSIsIk0wIDMybDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6bTIzMy40IDBsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnpNMCAyNjUuNGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6Il19LGNUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHkiLGljb246WzMyMCw1MTIsW10sImY0MTciLCJNMTY1LjkgNDI3LjhjMTIuOSAxMS43IDMzLjcgMzMuMyAzMy4yIDUwLjcgMCAuOC0uMSAxLjYtLjEgMi41LTEuOCAxOS44LTE4LjggMzEuMS0zOS4xIDMxLTI1LS4xLTM5LjktMTYuOC0zOC43LTM1LjggMS0xNi4yIDIwLjUtMzYuNyAzMi40LTQ3LjYgMi4zLTIuMSAyLjctMi43IDUuNi0zLjYgMy40IDAgMy45IC4zIDYuNyAyLjh6TTMwMCA2Ny4zYy0xNi4zLTI1LjctMzguNi00MC42LTYzLjMtNTIuMS0yNS41LTEwLjctNTQuNi0xNS40LTc2LjYtMTUuMi00NC4xIDAtNzEuMiAxMy4yLTgxLjEgMTcuMy01My42IDI3LjktODQuNCA2OS45LTgyLjkgMTQxLjMgNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMyAuMWMyLjEtLjcgMS44LS41IDMuNS0yLjEgNTIuMy00OS4yIDE0MC43LTE0NS44IDE1NS45LTIxNS43IDctMzkuMiAzLjEtNzIuNS0yMC44LTExMi41ek0xNTQuOSAzNTEuOWMtMjgtNTEuMS02NS4yLTEzMC43LTY5LjMtMTg5LTMuNC00Ny41IDExLjQtMTMxLjIgNjkuMy0xMzYuN2wwIDMyNS43ek0yOTYuOCAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuMyAyNy44LTUxLjkgNjUuMi0xMzMuMyA2Ny4yLTE5MS45IDEuNi00NS45LTkuOC0xMDUuOC00OC0xMzEuNCA4OC44IDE4LjMgMTE1LjUgOTguMSA5OS43IDE1M3oiXX0sZFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXN0cmlwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFmNSIsIk00OTIuNCAyMjAuOGMtOC45IDAtMTguNyA2LjctMTguNyAyMi43bDM2LjcgMGMwLTE2LTkuMy0yMi43LTE4LTIyLjd6TTM3NSAyMjMuNGMtOC4yIDAtMTMuMyAyLjktMTcgN2wuMiA1Mi44YzMuNSAzLjcgOC41IDYuNyAxNi44IDYuNyAxMy4xIDAgMjEuOS0xNC4zIDIxLjktMzMuNCAwLTE4LjYtOS0zMy4yLTIxLjktMzMuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyMi4yIDI4MS4xYzAgMjUuNi0yMC4zIDQwLjEtNDkuOSA0MC4zLTEyLjIgMC0yNS42LTIuNC0zOC44LTguMWwwLTMzLjljMTIgNi40IDI3LjEgMTEuMyAzOC45IDExLjMgNy45IDAgMTMuNi0yLjEgMTMuNi04LjcgMC0xNy01NC0xMC42LTU0LTQ5LjkgMC0yNS4yIDE5LjItNDAuMiA0OC00MC4yIDExLjggMCAyMy41IDEuOCAzNS4zIDYuNWwwIDMzLjRjLTEwLjgtNS44LTI0LjUtOS4xLTM1LjMtOS4xLTcuNSAwLTEyLjEgMi4yLTEyLjEgNy43IDAgMTYgNTQuMyA4LjQgNTQuMyA1MC43ek0xOTEgMjI0LjVsLTI3IDAgMCA1MC41YzAgMjAuOSAyMi41IDE0LjQgMjcgMTIuNmwwIDI4LjljLTQuNyAyLjYtMTMuMyA0LjctMjQuOSA0LjctMjEuMSAwLTM2LjktMTUuNS0zNi45LTM2LjVsLjItMTEzLjkgMzQuNy03LjQgMCAzMC44IDI2LjkgMCAwIDMwLjN6bTc0IDIuNGMtNC41LTEuNS0xOC43LTMuNi0yNy4xIDcuNGwwIDg0LjQtMzUuNSAwIDAtMTI0LjUgMzAuNyAwIDIuMiAxMC41YzguMy0xNS4zIDI0LjktMTIuMiAyOS42LTEwLjVsLjEgMCAwIDMyLjd6bTQ0LjEgOTEuOGwtMzUuNyAwIDAtMTI0LjUgMzUuNyAwIDAgMTI0LjV6bTAtMTQyLjlsLTM1LjcgNy42IDAtMjguOSAzNS43LTcuNiAwIDI4Ljl6bTc0LjEgMTQ1LjVjLTEyLjQgMC0yMC01LjMtMjUuMS05bC0uMSA0MC4yLTM1LjUgNy41IDAtMTY1LjggMzEuMyAwIDEuOCA4LjhjNC45LTQuNSAxMy45LTExLjEgMjcuOC0xMS4xIDI0LjkgMCA0OC40IDIyLjUgNDguNCA2My44IDAgNDUuMS0yMy4yIDY1LjUtNDguNiA2NS42em0xNjAuNC01MS41bC02OS41IDBjMS42IDE2LjYgMTMuOCAyMS41IDI3LjYgMjEuNSAxNC4xIDAgMjUuMi0zIDM0LjktNy45bDAgMjguNmMtOS43IDUuMy0yMi40IDkuMi0zOS40IDkuMi0zNC42IDAtNTguOC0yMS43LTU4LjgtNjQuNSAwLTM2LjIgMjAuNS02NC45IDU0LjMtNjQuOSAzMy43IDAgNTEuMyAyOC43IDUxLjMgNjUuMSAwIDMuNS0uMyAxMC45LS40IDEyLjl6Il19LHVUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b3JkcHJlc3Mtc2ltcGxlIixpY29uOls1MTIsNTEyLFtdLCJmNDExIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzMgMjU2YzAtMzIuMyA2LjktNjMgMTkuMy05MC43TDE1OC43IDQ1Ni43Qzg0LjMgNDIwLjUgMzMgMzQ0LjIgMzMgMjU2ek0yNTYgNDc5Yy0yMS45IDAtNDMtMy4yLTYzLTkuMWw2Ni45LTE5NC40IDY4LjUgMTg3LjhjLjUgMS4xIDEgMi4xIDEuNiAzLjEtMjMuMSA4LjEtNDggMTIuNi03NCAxMi42em0zMC43LTMyNy41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtMjEuOSAwLTU4LjctMi44LTU4LjctMi44LTEyLS43LTEzLjQgMTcuNy0xLjQgMTguNCAwIDAgMTEuNCAxLjQgMjMuNCAyLjFsMzQuNyA5NS4yLTQ4LjggMTQ2LjMtODEuMi0yNDEuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTQuMiAwLTkuMS0uMS0xNC40LS4zIDM5LjktNjAuNSAxMDguNC0xMDAuNSAxODYuMy0xMDAuNSA1OCAwIDExMC45IDIyLjIgMTUwLjYgNTguNS0xLS4xLTEuOS0uMi0yLjktLjItMjEuOSAwLTM3LjQgMTkuMS0zNy40IDM5LjYgMCAxOC40IDEwLjYgMzMuOSAyMS45IDUyLjMgOC41IDE0LjggMTguNCAzMy45IDE4LjQgNjEuNSAwIDE5LjEtNy4zIDQxLjItMTcgNzIuMWwtMjIuMiA3NC4zLTgwLjctMjM5LjZ6bTgxLjQgMjk3LjJsNjguMS0xOTYuOWMxMi43LTMxLjggMTctNTcuMiAxNy03OS45IDAtOC4yLS41LTE1LjgtMS41LTIyLjkgMTcuNCAzMS44IDI3LjMgNjguMiAyNy4zIDEwNyAwIDgyLjMtNDQuNiAxNTQuMS0xMTAuOSAxOTIuN3oiXX0scFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxzeSIsaWNvbjpbNjQwLDUxMixbXSwiZjIxMyIsIk01NDAgMjM3LjNjMy4xLTEyLjMgNC4zLTI0LjggNC4zLTM3LjQgMC05Mi41LTc1LjQtMTY3LjktMTY3LjktMTY3LjktNzcuMiAwLTE0NC42IDUzLTE2MyAxMjcuOC0xNS4zLTEzLjItMzQuOS0yMC41LTU1LjItMjAuNS00Ni4zIDAtODQgMzcuNy04NCA4NCAwIDcuNCAuOSAxNSAzLjEgMjIuNC00Mi45IDIwLjItNzAuOCA2My43LTcwLjggMTExLjIgMCA2OCA1NS41IDEyMy4yIDEyMy4yIDEyMy4ybDM4MS4yIDBjNjcuNyAwIDEyMy4yLTU1LjIgMTIzLjItMTIzLjIgMC01Ni40LTM4LjktMTA2LTk0LjEtMTE5LjV6TTIwMC4yIDQwMS42YzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTExMC45YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMTAuOXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTEzMS41YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMzEuNXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMxIDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xNjIuN2MwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMxIDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDE2Mi43em04NyAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTI4LjUgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTIyNC42YzAtOC42IDctMTUuNiAxNS4zLTE1LjZsMjguNSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjZsMCAyMjQuNnoiXX0saFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhc2hjdWJlIixpY29uOls0NDgsNTEyLFtdLCJmMjEwIiwiTTMyNi45IDEwNGwtMjE2LjIgMGMtNTEuMSAwLTkxLjIgNDMuMy05MS4yIDkzLjVsMCAyMjkuNWMwIDUwLjUgNDAuMSA4NSA5MS4yIDg1bDIyNy4yIDBjNTEuMSAwIDkxLjItMzQuNSA5MS4yLTg1bDAtNDI3LTEwMi4yIDEwNHpNMTU0LjIgNDE2LjVjLTE3LjcgMC0zMi40LTE1LjEtMzIuNC0zMi44bDAtMTQyLjljMC0xNy43IDE0LjctMzIuNSAzMi40LTMyLjVsMTQwLjcgMGMxNy43IDAgMzIgMTQuOCAzMiAzMi41bDAgMTIzLjUgNTEuMSA1Mi4zLTIyMy44IDAgMC0uMXoiXX0sZlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdHRlciIsaWNvbjpbMzg0LDUxMixbXSwiZjQyNiIsIk02Ni40IDMyMi41bC01MC40IDAgMC0zMjIuNSA1MC40IDAgMCAzMjIuNXpNMTY2LjkgNzYuMWwtNTAuNCAwIDAgNDM1LjkgNTAuNCAwIDAtNDM1Ljl6bTEwMC42IDBsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45ek0zNjggNzZsLTUwLjQgMCAwIDI0NyA1MC40IDAgMC0yNDd6Il19LG1UdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2xmLXBhY2stYmF0dGFsaW9uIixpY29uOls0NDgsNTEyLFtdLCJmNTE0IiwiTTIzNi4yIDQ3MS41bDEwLjYgMTUuOCA1LjMtMTIuMyA1LjMgNyAwIDI5LjljMjEuMS03LjkgMjEuMS02Ni45IDI1LjUtOTcuMiA0LjYtMzEuOS0uOS05Mi44IDgxLjQtMTQ5LjEtOC45LTIzLjYtMTItNDkuNC0yLjYtODAgMjcuOSAzLjQgNTMuOSAxMC42IDYzLjMgNTQuMWwtMzAuMyA4LjRjMTEuMSAyMyAxNyA0Ni44IDEzLjIgNzIuMWwtMjcuMy03LTYuMiAzMy40LTE4LjUtNy04LjggMzMuNC0xOS40LTcgMjYuNCAyMS4xIDguOC0yOC4yIDI0LjYgNS4yIDctMzUuNiAyNi40IDE0LjVjLjItMjAgNy01OC4xLTguOC04NC41bDI2LjQgNS4zYzQtMjIuMS0yLjQtMzkuMi03LjktNTYuN2wyMi40IDkuN2MtLjQtMjUuMS0yOS45LTU2LjgtNjEuNi01OC41LTIwLjItMS4xLTU2LjctMjUuMi01NC4xLTUxLjkgMi0xOS45IDE3LjQtNDIuNiA0My4xLTQ5LjctNDQgMzYuNS05LjcgNjcuMyA1LjMgNzMuNSA0LjQtMTEuNCAxNy41LTY5LjEgMC0xMzAuMi00MC40IDIyLjktODkuNyA2NS4xLTkzLjIgMTQ3LjhsLTU4IDM4LjctMy41IDkzLjIgMTA3LjMtNTkuOCA3IDctMTcuNiAzLjUtNDQgMzguNy0xNS44LTUuMy0yOC4xIDQ5LjMtMy41IDExOS42IDIxLjEgMTUuOC0zMi41IDE1LjgtMzIuNi0xNS44IDIxLjEtMTUuOC0zLjUtMTE5LjYtMjguMi00OS4zLTE1LjggNS4zLTQ0LTM4LjctMTcuNi0zLjUgNy03IDEwNy4zIDU5LjgtMy41LTkzLjMtNTguMS0zOC43Yy0zLjUtODIuOC01Mi43LTEyNS05My4yLTE0Ny45LTE3LjUgNjEuMS00LjQgMTE4LjggMCAxMzAuMiAxNS02LjIgNDkuMy0zNyA1LjMtNzMuNSAyNS43IDcuMSA0MS4xIDI5LjggNDMuMSA0OS43IDIuNiAyNi43LTMzLjkgNTAuOC01NC4xIDUxLjktMzEuNyAxLjctNjEuMiAzMy40LTYxLjYgNTguNWwyMi40LTkuN0MxMy40IDIyNC43IDcgMjQxLjggMTEgMjYzLjlsMjYuNC01LjNjLTE1LjggMjYuNC05LjEgNjQuNC04LjggODQuNGwyNi40LTE0LjUgNyAzNS42IDI0LjYtNS4zIDguOCAyOC4yIDI2LjQtMjEuMS0xOS40IDctOC44LTMzLjQtMTguNSA3LTYuMi0zMy40LTI3LjMgN0MzOCAyOTQuOCA0My44IDI3MSA1NSAyNDhsLTMwLjMtOC40YzkuNC00My41IDM1LjUtNTAuOCA2My4zLTU0LjEgOS40IDMwLjYgNi4yIDU2LjUtMi42IDgwLjEgODIuMyA1Ni4zIDc2LjggMTE3LjIgODEuNCAxNDkuMSA0LjQgMzAuMyA0LjQgODkuMyAyNS41IDk3LjJsMC0yOS44IDUuMy03IDUuMyAxMi4zIDEwLjYtMTUuOCAxMS40IDIxLjEgMTEuNC0yMS4xIDAgMHptNzkuMi05NUwyOTkuNSAzNjZjNy41LTQuNCAxMy44LTguNCAxOS40LTEyLjMtLjYgNy4yLS4zIDEzLjgtMy41IDIyLjhsMCAwem0yOC4yLTQ5LjNjLS40IDEwLjktLjkgMjEuNy0xLjggMzEuNy03LjgtMS45LTE1LjYtMy44LTIxLjEtNyA4LjItNy45IDE1LjYtMTYuMyAyMi45LTI0LjdsMCAwem0yNC42IDUuM2MwLTEzLjQtMi4xLTI0LjItNS4zLTMzLjQtNS41IDkuNS0xMS43IDE4LjYtMTguNSAyNy4zbDIzLjggNi4yem0zLjUtODAuOWMxOS40IDEyLjggMjcuOCAzMy43IDI5LjkgNTYuMy0xMi4zLTQuNS0yNC42LTkuMy0zNy0xMC42IDUuMS0xMiA2LjYtMjguMSA3LTQ1LjdsMCAwem0tMS44LTQ1LjdjLjggMTQuMyAxLjggMjguOCAxLjggNDIuMiAxOS4yLTguMSAyOS44LTkuNyA0NC0xNC4xLTEwLjYtMTktMjcuMi0yNS41LTQ1LjgtMjguMmwwIDB6TTEzNC4yIDM3Ni41TDE1MCAzNjZjLTcuNS00LjQtMTMuOC04LjQtMTkuNC0xMi4zIC42IDcuMyAuMyAxMy45IDMuNSAyMi45bDAgMHpNMTA2IDMyNy4zYy40IDEwLjkgLjkgMjEuNyAxLjggMzEuNyA3LjgtMS45IDE1LjYtMy44IDIxLjEtNy04LjItNy45LTE1LjYtMTYuMy0yMi45LTI0Ljd6bS0yNC42IDUuM2MwLTEzLjQgMi0yNC4yIDUuMy0zMy40IDUuNSA5LjUgMTEuNyAxOC42IDE4LjUgMjcuM2wtMjMuOCA2LjJ6bS0zLjUtODAuOWMtMTkuNCAxMi44LTI3LjggMzMuNy0yOS45IDU2LjMgMTIuMy00LjUgMjQuNi05LjMgMzctMTAuNi01LTEyLTYuNi0yOC4xLTctNDUuN2wtLjEgMHptMS44LTQ1LjdjLS44IDE0LjMtMS44IDI4LjgtMS44IDQyLjItMTkuMi04LjEtMjkuOC05LjctNDQtMTQuMSAxMC42LTE5IDI3LjItMjUuNSA0NS44LTI4LjF6Il19LGdUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXN0Zm0iLGljb246WzUxMiw1MTIsW10sImYyMDIiLCJNMjI1LjggMzY3LjFsLTE4LjgtNTFzLTMwLjUgMzQtNzYuMiAzNGMtNDAuNSAwLTY5LjItMzUuMi02OS4yLTkxLjUgMC03Mi4xIDM2LjQtOTcuOSA3Mi4xLTk3LjkgNjYuNSAwIDc0LjggNTMuMyAxMDAuOSAxMzQuOSAxOC44IDU2LjkgNTQgMTAyLjYgMTU1LjQgMTAyLjYgNzIuNyAwIDEyMi0yMi4zIDEyMi04MC45IDAtNzIuOS02Mi43LTgwLjYtMTE1LTkyLjEtMjUuOC01LjktMzMuNC0xNi40LTMzLjQtMzQgMC0xOS45IDE1LjgtMzEuNyA0MS42LTMxLjcgMjguMiAwIDQzLjQgMTAuNiA0NS43IDM1LjhsNTguNi03Yy00LjctNTIuOC00MS4xLTc0LjUtMTAwLjktNzQuNS01Mi44IDAtMTA0LjQgMTkuOS0xMDQuNCA4My45IDAgMzkuOSAxOS40IDY1LjEgNjggNzYuOCA0NC45IDEwLjYgNzkuOCAxMy44IDc5LjggNDUuNyAwIDIxLjctMjEuMSAzMC41LTYxIDMwLjUtNTkuMiAwLTgzLjktMzEuMS05Ny45LTczLjktMzItOTYuOC00My42LTE2My0xNjEuMy0xNjMtODYuMSAwLTEzMS44IDU0LjUtMTMxLjggMTQ3LjIgMCA4OS4xIDQ1LjcgMTM3LjIgMTI3LjkgMTM3LjIgNjYuMiAwIDk3LjktMzEuMSA5Ny45LTMxLjF6Il19LGJUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9wd2FyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViNSIsIk00MDMuNSA0NTUuNGMtNDIuNiAzMS43LTk0LjQgNDguNy0xNDcuNSA0OC42LTEzNy4yIDAtMjQ4LTExMS0yNDgtMjQ4IDAtMTM3LjIgMTExLTI0OCAyNDgtMjQ4IDYxLjItLjEgMTIwLjIgMjIuNiAxNjUuNyA2My41IC42IC41IC45IDEuMiAxLjEgMS45cy4xIDEuNS0uMyAyLjItLjggMS4zLTEuNSAxLjYtMS40IC41LTIuMiAuNGMtMTguOC0yLjUtMzcuNy0zLjctNTYuNy0zLjctMTI5LjQgMC0yMjIuNCA1My41LTIyMi40IDE1NS40IDAgMTA5IDkyLjEgMTQ1LjkgMTc2LjggMTc4LjcgMzMuNiAxMyA2NS40IDI1LjQgODcgNDEuNiAuNCAuMyAuOCAuOCAxLjEgMS4zcy40IDEgLjQgMS42LS4xIDEuMS0uNCAxLjYtLjYgLjktMS4xIDEuM2wtLjEgMHpNNTAzIDIzMy4xYy0uMS0uOS0uNS0xLjgtMS4zLTIuNC01MS44LTQzLTkzLjYtNjAuNS0xNDQuNS02MC41LTg0LjEgMC04MC4zIDUyLjItODAuMyA1My42IDAgNDIuNiA1Mi4xIDYyIDExMi4zIDg0LjUgMzEuMSAxMS42IDYzLjIgMjMuNiA5Mi43IDM5LjkgLjQgLjIgLjkgLjQgMS40IC40czEgMCAxLjUtLjIgLjktLjQgMS4zLS44IC42LS44IC44LTEuMmMxNC4xLTM2IDE5LjUtNzQuOCAxNi0xMTMuM3oiXX0sdlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXIiLGljb246WzQ0OCw1MTIsW10sImYzN2MiLCJNMTYyLjQgMTk2YzQuOC00LjkgNi4yLTUuMSAzNi40LTUuMSAyNy4yIDAgMjguMSAuMSAzMi4xIDIuMSA1LjggMi45IDguMyA3IDguMyAxMy42IDAgNS45LTIuNCAxMC03LjYgMTMuNC0yLjggMS44LTQuNSAxLjktMzEuMSAyLjEtMTYuNCAuMS0yOS41LS4yLTMxLjUtLjgtMTAuMy0yLjktMTQuMS0xNy43LTYuNi0yNS4zem02MS40IDk0LjVjLTUzLjkgMC01NS44IC4yLTYwLjIgNC4xLTMuNSAzLjEtNS43IDkuNC01LjEgMTMuOSAuNyA0LjcgNC44IDEwLjEgOS4yIDEyIDIuMiAxIDE0LjEgMS43IDU2LjMgMS4ybDQ3LjktLjYgOS4yLTEuNWM5LTUuMSAxMC41LTE3LjQgMy4xLTI0LjQtNS4zLTQuNy01LTQuNy02MC40LTQuN3pNNDQ3LjIgNDIwLjZjLTMuNSAyOC40LTIzIDUwLjQtNTEuMSA1Ny41LTcuMiAxLjgtOS43IDEuOS0xNzIuOSAxLjgtMTU3LjggMC0xNjUuOS0uMS0xNzItMS44LTguNC0yLjItMTUuNi01LjUtMjIuMy0xMC01LjYtMy44LTEzLjktMTEuOC0xNy0xNi40LTMuOC01LjYtOC4yLTE1LjMtMTAtMjJTMCA0MjAuMyAwIDI1Ni4zYzAtMTYzLjEgMC0xNjYuNiAxLjgtMTczLjcgNi4zLTI0LjcgMjUuOS00My42IDUxLjItNDkuMiA3LjMtMS42IDMzMi4xLTEuOSAzNDAtLjMgMjEuMiA0LjMgMzcuOSAxNy4xIDQ3LjYgMzYuNCA3LjcgMTUuMyA3LTEuNSA3LjMgMTgwLjYgLjIgMTE1LjggMCAxNjQuNS0uNyAxNzAuNXpNMzYxLjggMjM1LjRjLTEuMS01LTQuMi05LjYtNy43LTExLjUtMS4xLS42LTgtMS4zLTE1LjUtMS43LTEyLjQtLjYtMTMuOC0uOC0xNy44LTMuMS02LjItMy42LTcuOS03LjYtOC0xOC4zIDAtMjAuNC04LjUtMzkuNC0yNS4zLTU2LjUtMTItMTIuMi0yNS4zLTIwLjUtNDAuNi0yNS4xLTMuNi0xLjEtMTEuOC0xLjUtMzkuMi0xLjgtNDIuOS0uNS01Mi41IC40LTY3LjEgNi4yLTI3IDEwLjctNDYuMyAzMy40LTUzLjQgNjIuNC0xLjMgNS40LTEuNiAxNC4yLTEuOSA2NC4zLS40IDYyLjggMCA3Mi4xIDQgODQuNSA5LjcgMzAuNyAzNy4xIDUzLjQgNjQuNiA1OC40IDkuMiAxLjcgMTIyLjIgMi4xIDEzMy43IC41IDIwLjEtMi43IDM1LjktMTAuOCA1MC43LTI1LjkgMTAuNy0xMC45IDE3LjQtMjIuOCAyMS44LTM4LjUgMy4yLTEwLjkgMi45LTg4LjQgMS43LTkzLjl6Il19LHhUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlZGdlIixpY29uOls1MTIsNTEyLFtdLCJmMjgyIiwiTTEyMC4xIDM3LjRjNDEtMjUuMiA4Ny42LTM4LjIgMTM0LjktMzcuNCAxNjggMCAyNTcgMTIzLjggMjU3IDIxOS41LS4xIDMyLjctMTMgNjMuOS0zNS45IDg3LjItMjIuOSAyMy4yLTU0IDM2LjUtODYuNyAzNy03NS4yIDAtOTEuNS0yMy4xLTkxLjUtMzIgMC0zLjggMS4yLTYuMiA0LjgtOS40bDEtMS4yIC40LTEuNmMxMC41LTExLjUgMTUuOS0yNi4yIDE1LjktNDEuNiAwLTc4LjctODIuMi0xNDIuNy0xODQtMTQyLjctMzcuNS0uMy03NC41IDguOS0xMDcuNSAyNi45IDI3LTU3LjUgODIuNy05Ny42IDkxLjMtMTAzLjggLjgtLjYgLjMtLjggLjMtLjh6bTE1LjYgMzE4LjFjLTEuNCAzMCA0LjYgNjAgMTYuNCA4Ny4yIDEzLjYgMjYuNCAzMi43IDUxIDU2LjUgNjkuMy01OS41LTExLjUtMTExLjUtNDMuOS0xNDkuNC04OS4zLTM4LjEtNDYuNC01OS4yLTEwNC4zLTU5LjItMTY0LjggMC01MS4yIDYyLjQtOTQuNCAxMzYtOTQuNCAzNi42LS42IDcyLjQgMTAuOSAxMDEuOCAzMi43bC0zLjYgMS4yYy01MS41IDE3LjYtOTguNSA5MC43LTk4LjUgMTU4LjF6TTQ2OS44IDQwMGwtLjcgLjFjLTExLjggMTguOC0yNS45IDM1LjEtNDIuMiA0OS41LTMwLjggMjgtNjguMSA0NS41LTEwOC44IDQ5LjktMTguNiAuMy0zNi44LTMuMi01My44LTExLjQtMjUuNi0xMC4zLTQ3LjEtMzAtNjEuNi01My0xNC40LTIzLjktMjEuMS01MS43LTE5LTc5LjYtLjYtMjAuMSA1LjQtNDAuMyAxNS01OC4yIDEzLjkgMzMuMSAzNy41IDYxLjMgNjcuNiA4MC44czY1LjUgMjkuNSAxMDEuNCAyOC42YzMxIC4zIDYyLjEtNi43IDkwLjItMjAuNWwxLjktLjljMy45LTIuMyA3LjctMy45IDExLjYgMCA0LjUgNC45IDEuOCA5LjItMS4yIDE0LS4yIC4yLS4zIC41LS40IC43eiJdfSx5VHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW94aG9zdCIsaWNvbjpbNjQwLDUxMixbXSwiZjIwOCIsIk02MTYgMTYwbC02Ny4zIDBDNTExLjIgNzAuNyA0MjIuOSA4IDMyMCA4IDE4MyA4IDcyIDExOSA3MiAyNTYgNzIgMjcyLjQgNzMuNiAyODguNSA3Ni43IDMwNEwyNCAzMDRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDY3LjMgMGMzNy41IDg5LjMgMTI1LjggMTUyIDIyOC43IDE1MiAxMzcgMCAyNDgtMTExIDI0OC0yNDggMC0xNi40LTEuNi0zMi41LTQuNy00OGw1Mi43IDBjMTMuMyAwIDI0LTEwLjggMjQtMjQgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS05NiA5NmMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDAtNzUuNyAwLTE0MS42LTQyLTE3NS41LTEwNEw0MjQgMzUyYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yOTguMiAwYy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRMMjE2IDE2MGMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjk4LjIgMGMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6TTIxNiAyMzJsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAxMy4yLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEzLjIgMTAuNy0yNCAyNC0yNHoiXX0sd1R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjaGxpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYSIsIk0zNTAuNSAxNTcuN2wtNTQuMi00Ni4xIDczLjQtMzkgNzguMyA0NC4yLTk3LjUgNDAuOXpNMTkyIDEyMi4xbDQ1LjctMjguMiAzNC43IDM0LjYtNTUuNCAyOS0yNS0zNS40em0tNjUuMSA2LjZsMzEuOS0yMi4xIDE3LjIgMjguNC0zNi43IDIyLjUtMTIuNC0yOC44em0tMjMuMyA4OC4ybC04LjgtMzQuOCAyOS42LTE4LjMgMTMuMSAzNS4zLTMzLjkgMTcuOHpNODIuNCAxMzMuMmwyMy45LTE4LjEgOC45IDI0LTI2LjcgMTguMy02LjEtMjQuMnpNNTkgMjA2LjVsLTMuNi0yOC40IDIyLjMtMTUuNSA2LjEgMjguNy0yNC44IDE1LjJ6TTI4LjQgMjIzLjFsMjAuOC0xMi44IDMuMyAzMy40LTIyLjkgMTItMS4yLTMyLjZ6TTEuNCAyNjhMMjAuNiAyNTcuOCAyMSAyOTYgMCAzMDQuOCAxLjQgMjY4em01OS4xIDU5LjNsLTI4LjMgOC4zLTEuNi00Ni44IDI1LjEtMTAuNyA0LjggNDkuMnpNOTkgMjYzLjJsLTMxLjEgMTMtNS4yLTQwLjggMjcuNC0xNC40IDguOSA0Mi4yek0xMjMuMiAzNzdsLTQxLjYgNS45LTguMS02My41IDM1LjItMTAuOCAxNC41IDY4LjR6bTI4LjUtMTM5LjlsMjEuMiA1Ny4xLTQ2LjIgMTMuNi0xMy43LTU0LjEgMzguNy0xNi42em04NS43IDIzMC41bC03MC45LTMuMy0yNC4zLTk1LjggNTUuMi04LjYgNDAgMTA3Ljd6TTE1Mi41IDE4Ny45bDQyLjItMjIuNCAyOCA0NS45LTUwLjggMjEuMy0xOS40LTQ0Ljh6bTQxIDk0LjlsNjEuMy0xOC43IDUyLjggODYuNi03OS44IDExLjMtMzQuMy03OS4yem01MS40LTg1LjZsNjcuMy0yOC44IDY1LjUgNjUuNC04OC42IDI2LjItNDQuMi02Mi44eiJdfSxrVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZCIsaWNvbjpbNTc2LDUxMixbXSwiZjM4ZCIsIk04Mi45IDk4LjljLS42LTE3LjIgMi0zMy44IDEyLjctNDguMiAuMyA3LjQgMS4yIDE0LjUgNC4yIDIxLjYgNS45LTI3LjUgMTkuNy00OS4zIDQyLjMtNjUuNS0xLjkgNS45LTMuNSAxMS44LTMgMTcuNyA4LjctNy40IDE4LjgtMTcuOCA0NC40LTIyLjcgMTQuNy0yLjggMjkuNy0yIDQyLjEgMSAzOC41IDkuMyA2MSAzNC4zIDY5LjcgNzIuMyA1LjMgMjMuMSAuNyA0NS04LjMgNjYuNC01LjIgMTIuNC0xMiAyNC40LTIwLjcgMzUuMS0yLTEuOS0zLjktMy44LTUuOC01LjYtNDIuOC00MC44LTI2LjgtMjUuMi0zNy40LTM3LjQtMS4xLTEuMi0xLTIuMi0uMS0zLjYgOC4zLTEzLjUgMTEuOC0yOC4yIDEwLTQ0LTEuMS05LjgtNC4zLTE4LjktMTEuMy0yNi4yLTE0LjUtMTUuMy0zOS4yLTE1LTUzLjUgLjYtMTEuNCAxMi41LTE0LjEgMjcuNC0xMC45IDQzLjYgLjIgMS4zIC40IDIuNyAwIDMuOS0zLjQgMTMuNy00LjYgMjcuNi0yLjUgNDEuNiAuMSAuNSAuMSAxLjEgLjEgMS42IDAgLjMtLjEgLjUtLjIgMS4xLTIxLjgtMTEtMzYtMjguMy00My4yLTUyLjItOC4zIDE3LjgtMTEuMSAzNS41LTYuNiA1NC4xLTE1LjYtMTUuMi0yMS4zLTM0LjMtMjItNTUuMnpNNTUyLjUgMjIyLjFjLTExLjYtMTEuNi0yNS0yMC40LTQwLjEtMjYuNi0xMi44LTUuMi0yNi03LjktMzkuOS03LjEtMTAgLjYtMTkuNiAzLjEtMjkgNi40LTIuNSAuOS01LjEgMS42LTcuNyAyLjItNC45IDEuMi03LjMtMy4xLTQuNy02LjggMy4yLTQuNiAzLjQtNC4yIDE1LTEyIC42LS40IDEuMi0uOCAyLjItMS41bC0yLjUgMGMtLjYgMC0xLjIgLjItMS45IC4zLTE5LjMgMy4zLTMwLjcgMTUuNS00OC45IDI5LjYtMTAuNCA4LjEtMTMuOCAzLjgtMTItLjUgMS40LTMuNSAzLjMtNi43IDUuMS0xMCAxLTEuOCAyLjMtMy40IDMuNS01LjEtLjItLjItLjUtLjMtLjctLjUtMjcgMTguMy00Ni43IDQyLjQtNTcuNyA3My4zIC4zIC4zIC43IC42IDEgLjkgLjMtLjYgLjUtMS4yIC45LTEuNyAxMC40LTEyLjEgMjIuOC0yMS44IDM2LjYtMjkuOCAxOC4yLTEwLjYgMzcuNS0xOC4zIDU4LjctMjAuMiA0LjMtLjQgOC43LS4xIDEzLjEtLjEtMS44IC43LTMuNSAuOS01LjMgMS4xLTE4LjUgMi40LTM1LjUgOS01MS41IDE4LjUtMzAuMiAxNy45LTU0LjUgNDIuMi03NS4xIDcwLjQtLjMgLjQtLjQgLjktLjcgMS4zIDE0LjUgNS4zIDI0IDE3LjMgMzYuMSAyNS42IC4yLS4xIC4zLS4yIC40LS40bDEuMi0yLjdjMTIuMi0yNi45IDI3LTUyLjMgNDYuNy03NC41IDE2LjctMTguOCAzOC0yNS4zIDYyLjUtMjAgNS45IDEuMyAxMS40IDQuNCAxNy4yIDYuOCAyLjMtMS40IDUuMS0zLjIgOC00LjcgOC40LTQuMyAxNy40LTcgMjYuNy05IDE0LjctMy4xIDI5LjUtNC45IDQ0LjUtMS4zbDAtLjVjLS41LS40LTEuMi0uOC0xLjctMS40ek0zMTcuMSAzOTcuNmMtMzkuNC0zMy0yMi44LTE5LjUtNDIuNy0zNS42LS44IC45IDAtLjItMS45IDMtMTEuMiAxOS4xLTI1LjUgMzUuMy00NCA0Ny42LTEwLjMgNi44LTIxLjUgMTEuOC0zNC4xIDExLjgtMjEuNiAwLTM4LjItOS41LTQ5LjQtMjcuOC0xMi0xOS41LTEzLjMtNDAuNy04LjItNjIuNiA3LjgtMzMuOCAzMC4xLTU1LjIgMzguNi02NC4zLTE4LjctNi4yLTMzIDEuNy00Ni40IDEzLjkgLjgtMTMuOSA0LjMtMjYuMiAxMS44LTM3LjMtMjQuMyAxMC42LTQ1LjkgMjUtNjQuOCA0My45LS4zLTUuOCA1LjQtNDMuNyA1LjYtNDQuNyAuMy0yLjctLjYtNS4zLTMtNy40LTI0LjIgMjQuNy00NC41IDUxLjgtNTYuMSA4NC42IDcuNC01LjkgMTQuOS0xMS40IDIzLjYtMTYuMi04LjMgMjIuMy0xOS42IDUyLjgtNy44IDEwMS4xIDQuNiAxOSAxMS45IDM2LjggMjQuMSA1Mi4zIDIuOSAzLjcgNi4zIDYuOSA5LjUgMTAuMyAuMi0uMiAuNC0uMyAuNi0uNS0xLjQtNy0yLjItMTQuMS0xLjUtMjEuOSAyLjIgMy4yIDMuOSA2IDUuOSA4LjYgMTIuNiAxNiAyOC43IDI3LjQgNDcuMiAzNS42IDI1IDExLjMgNTEuMSAxMy4zIDc3LjkgOC42IDU0LjktOS43IDkwLjctNDguNiAxMTYtOTguOCAxLTEuOCAuNi0yLjktLjktNC4yem0xNzItNDYuNGMtOS41LTMuMS0yMi4yLTQuMi0yOC43LTIuOSA5LjkgNCAxNC4xIDYuNiAxOC44IDEyIDEyLjYgMTQuNCAxMC40IDM0LjctNS40IDQ1LjYtMTEuNyA4LjEtMjQuOSAxMC41LTM4LjkgOS4xLTEuMi0uMS0yLjMtLjQtMy0uNiAyLjgtMy43IDYtNyA4LjEtMTAuOCA5LjQtMTYuOCA1LjQtNDIuMS04LjctNTYuMS0yLjEtMi4xLTQuNi0zLjktNy01LjktLjMgMS4zLS4xIDIuMSAuMSAyLjggNC4yIDE2LjYtOC4xIDMyLjQtMjQuOCAzMS44LTcuNi0uMy0xMy45LTMuOC0xOS42LTguNS0xOS41LTE2LjEtMzkuMS0zMi4xLTU4LjUtNDguMy01LjktNC45LTEyLjUtOC4xLTIwLjEtOC43LTQuNi0uNC05LjMtLjYtMTMuOS0uOS01LjktLjQtOC44LTIuOC0xMC40LTguNC0uOS0zLjQtMS41LTYuOC0yLjItMTAuMi0xLjUtOC4xLTYuMi0xMy0xNC4zLTE0LjItNC40LS43LTguOS0xLTEzLjMtMS41LTEzLTEuNC0xOS44LTcuNC0yMi42LTIwLjMtNSAxMS0xLjYgMjIuNCA3LjMgMjkuOSA0LjUgMy44IDkuMyA3LjMgMTMuOCAxMS4yIDQuNiAzLjggNy40IDguNyA3LjkgMTQuOCAuNCA0LjcgLjggOS41IDEuOCAxNC4xIDIuMiAxMC42IDguOSAxOC40IDE3IDI1LjEgMTYuNSAxMy43IDMzIDI3LjMgNDkuNSA0MS4xIDE3LjkgMTUgMTMuOSAzMi44IDEzIDU2LS45IDIyLjkgMTIuMiA0Mi45IDMzLjUgNTEuMiAxIC40IDIgLjYgMy42IDEuMS0xNS43LTE4LjItMTAuMS00NC4xIC43LTUyLjMgLjMgMi4yIC40IDQuMyAuOSA2LjQgOS40IDQ0LjEgNDUuNCA2NC4yIDg1IDU2LjkgMTYtMi45IDMwLjYtOC45IDQyLjktMTkuOCAyLTEuOCAzLjctNC4xIDUuOS02LjUtMTkuMyA0LjYtMzUuOCAuMS01MC45LTEwLjYgLjctLjMgMS4zLS4zIDEuOS0uMyAyMS4zIDEuOCA0MC42LTMuNCA1Ny0xNy40IDE5LjUtMTYuNiAyNi42LTQyLjkgMTcuNC02Ni04LjMtMjAuMS0yMy42LTMyLjMtNDMuOC0zOC45ek05OS44IDE3OS4zYy01LjMtOS4yLTEzLjItMTUuNi0yMi4xLTIxLjMgMTMuNy0uNSAyNi42IC4yIDM5LjYgMy43LTctMTIuMi04LjUtMjQuNy01LTM4LjcgNS4zIDExLjkgMTMuNyAyMC4xIDIzLjYgMjYuOCAxOS43IDEzLjIgMzUuNyAxOS42IDQ2LjcgMzAuMiAzLjQgMy4zIDYuMyA3LjEgOS42IDEwLjktLjgtMi4xLTEuNC00LjEtMi4yLTYtNS0xMC42LTEzLTE4LjYtMjIuNi0yNS0xLjgtMS4yLTIuOC0yLjUtMy40LTQuNS0zLjMtMTIuNS0zLTI1LjEtLjctMzcuNiAxLTUuNSAyLjgtMTAuOSA0LjUtMTYuMyAuOC0yLjQgMi4zLTQuNiA0LTYuNiAuNiA2LjkgMCAyNS41IDE5LjYgNDYgMTAuOCAxMS4zIDIyLjQgMjEuOSAzMy45IDMyLjcgOSA4LjUgMTguMyAxNi43IDI1LjUgMjYuOCAxLjEgMS42IDIuMiAzLjMgMy44IDQuNy01LTEzLTE0LjItMjQuMS0yNC4yLTMzLjgtOS42LTkuMy0xOS40LTE4LjQtMjkuMi0yNy40LTMuMy0zLTQuNi02LjctNS4xLTEwLjktMS4yLTEwLjQgMC0yMC42IDQuMy0zMC4yIC41LTEgMS4xLTIgMS45LTMuMyAuNSA0LjIgLjYgNy45IDEuNCAxMS42IDQuOCAyMy4xIDIwLjQgMzYuMyA0OS4zIDYzLjUgMTAgOS40IDE5LjMgMTkuMiAyNS42IDMxLjYgNC44IDkuMyA3LjMgMTkgNS43IDI5LjYtLjEgLjYgLjUgMS43IDEuMSAyIDYuMiAyLjYgMTAgNi45IDkuNyAxNC4zIDcuNy0yLjYgMTIuNS04IDE2LjQtMTQuNSA0LjIgMjAuMi05LjEgNTAuMy0yNy4yIDU4LjcgLjQtNC41IDUtMjMuNC0xNi41LTI3LjctNi44LTEuMy0xMi44LTEuMy0yMi45LTIuMSA0LjctOSAxMC40LTIwLjYgLjUtMjIuNC0yNC45LTQuNi01Mi44IDEuOS01Ny44IDQuNiA4LjIgLjQgMTYuMyAxIDIzLjUgMy4zLTIgNi41LTQgMTIuNy01LjggMTguOS0xLjkgNi41IDIuMSAxNC42IDkuMyA5LjYgMS4yLS45IDIuMy0xLjkgMy4zLTIuNy0zLjEgMTcuOS0yLjkgMTUuOS0yLjggMTguMyAuMyAxMC4yIDkuNSA3LjggMTUuNyA3LjMtMi41IDExLjgtMjkuNSAyNy4zLTQ1LjQgMjUuOCA3LTQuNyAxMi43LTEwLjMgMTUuOS0xNy45LTYuNSAuOC0xMi45IDEuNi0xOS4yIDIuNGwtLjMtLjljNC43LTMuNCA4LTcuOCAxMC4yLTEzLjEgOC43LTIxLjEtMy42LTM4LTI1LTM5LjktOS4xLS44LTE3LjggLjgtMjUuOSA1LjUgNi4yLTE1LjYgMTcuMi0yNi42IDMyLjYtMzQuNS0xNS4yLTQuMy04LjktMi43LTI0LjYtNi4zIDE0LjYtOS4zIDMwLjItMTMuMiA0Ni41LTE0LjYtNS4yLTMuMi00OC4xLTMuNi03MC4yIDIwLjkgNy45IDEuNCAxNS41IDIuOCAyMy4yIDQuMi0yMy44IDctNDQgMTkuNy02Mi40IDM1LjYgMS4xLTQuOCAyLjctOS41IDMuMy0xNC4zIC42LTQuNSAuOC05LjIgLjEtMTMuNi0xLjUtOS40LTguOS0xNS4xLTE5LjctMTYuMy03LjktLjktMTUuNiAuMS0yMy4zIDEuMy0uOSAuMS0xLjcgLjMtMi45IDAgMTUuOC0xNC44IDM2LTIxLjcgNTMuMS0zMy41IDYtNC41IDYuOC04LjIgMy0xNC45em0xMjguNCAyNi44YzMuMyAxNiAxMi42IDI1LjUgMjMuOCAyNC4zLTQuNi0xMS4zLTEyLjEtMTkuNS0yMy44LTI0LjN6Il19LFNUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2dWVqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQxZiIsIk0zNTYuOSA2NC4zbC03Ni45IDAtNTYgODguNi00OC04OC42LTE3NiAwIDIyNCAzODMuNyAyMjQtMzgzLjctOTEuMSAwek01NS43IDk2LjNsNTMuOCAwIDExNC41IDE5OC4yIDExNC40LTE5OC4yIDUzLjggMC0xNjguMiAyODguMi0xNjguMy0yODguMnoiXX0sX1R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1ldGEiLGljb246WzY0MCw1MTIsW10sImU0OWIiLCJNNjQwIDMxNy45YzAgOTEuMy0zOS40IDE0OC41LTExMC4zIDE0OC41LTYyLjYgMC05NS44LTM0LjYtMTU2LjktMTM2LjZsLTMxLjQtNTIuNmMtOC4zLTEyLjUtMTQuNS0yNC4yLTIxLjItMzUtMjAuMSAzMy44LTQ3LjEgODMtNDcuMSA4My02NyAxMTYuNi0xMDQuNiAxNDEuMi0xNTYuOSAxNDEuMi03Mi44IDAtMTE2LjItNTcuMy0xMTYuMi0xNDUuOSAwLTE0MyA3OS44LTI3OC4xIDE4My45LTI3OC4xIDUwLjIgMCA5My44IDI0LjcgMTQ0LjggODkuNSAzNy4xLTUwLjEgNzguMS04OS41IDEzMC42LTg5LjUgOTkuMSAwIDE4MC43IDEyNS43IDE4MC43IDI3NS41ek0yODcuNCAxOTIuMmMtNDIuOS02Mi4xLTcwLjktODAuNS0xMDQuNC04MC41LTYxLjkgMC0xMTMuOCAxMDYuMS0xMTMuOCAyMTAgMCA0OC41IDE4LjUgNzUuNyA0OS42IDc1LjcgMzAuMiAwIDQ5LTE5IDEwMy4yLTEwMy44IDAgMCAyNC43LTM5LjEgNjUuNC0xMDEuNHpNNTMxLjIgMzk3LjRjMzIuMiAwIDQ2LjktMjcuNSA0Ni45LTc0LjkgMC0xMjQuMi01NC4zLTIyNS40LTEyMy4yLTIyNS40LTMzLjIgMC02MS4xIDI1LjktOTQuOSA3OCA5LjQgMTMuOCAxOS4xIDI5IDI5LjMgNDUuNGwzNy41IDYyLjRjNTguNyA5NC4xIDczLjUgMTE0LjUgMTA0LjQgMTE0LjV6Il19LE1UdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNoYXJlIixpY29uOls1MTIsNTEyLFtdLCJmNGYyIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTAxIDEzMi40YzcuOCAwIDEzLjcgNi4xIDEzLjcgMTMuN2wwIDE4Mi41YzAgNy43LTYuMSAxMy43LTEzLjcgMTMuN2wtMTM1LjEgMGMtNy43IDAtMTMuNy02LTEzLjctMTMuN2wwLTU0LTU0IDBjLTcuOCAwLTEzLjctNi0xMy43LTEzLjdsMC0xODIuNWMwLTguMiA2LjYtMTIuNyAxMi40LTEzLjdsMTM2LjQgMGM3LjcgMCAxMy43IDYgMTMuNyAxMy43bDAgNTQgNTQgMHpNMTY3LjkgMzAwLjNsNDAuNyAwIDAtMTAxLjRjMC03LjQgNS44LTEyLjYgMTItMTMuN2w1NS44IDAgMC00MC4zLTEwOC41IDAgMCAxNTUuNHptMTc2LjItODguMWwtMTA4LjUgMCAwIDE1NS40IDEwOC41IDAgMC0xNTUuNHoiXX0selR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWRpb3ZpbmFyaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNmOCIsIk00ODAuNyAxODcuN2w0LjIgMjggMCAyOC0yNS4xIDQ0LjEtMzkuOCA3OC40LTU2LjEgNjcuNS03OS4xIDM3LjgtMTcuNyAyNC41LTcuNyAxMi05LjYgNHMxNy4zLTYzLjYgMTkuNC02My42IDIwLjMgLjcgMjAuMyAuN2w2Ni43LTM4LjYtOTIuNSAyNi4xLTU1LjkgMzYuOC0yMi44IDI4LTYuNiAxLjQgMjAuOC03My42IDYuOS01LjUgMjAuNyAxMi45IDg4LjMtNDUuMiA1Ni44LTUxLjUgMTQuOC02OC40LTEyNS40IDIzLjMgMTUuMi0xOC4yLTE3My40LTUzLjMgODEuOS0xMC41LTE2Ni0xMjIuOSAxMTQuOSAxOC4xLTEwMS4zLTEwOCAyNTIuOSAxMjYuNi0zMS41LTM4IDEyNC40IDc0LjQtMTQzLjMtOTkgMTguNyAzOC40LTQ5LjYtMTguMS00NS41LTg0LjMgMTk0LjYgMTIyLTQyLjktNTUuOCAxMDggOTYuNCAxMi04LjktMjEtMTYuNCA0LjItMzcuOCAzNy44LTEwLjQgMjkuMiAyNC43IDExLjUgNC4yLTcgNi4yIDguNSAxMi0xMy4xIDcuNC0xMC4zIDIwLjIgMTAuNSAyMy45eiJdfSxDVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0YnVja2V0IixpY29uOls1MTIsNTEyLFs2MTgxMF0sImYxNzEiLCJNMjIuMiAzMmMtMi4xIDAtNC4yIC40LTYuMSAxLjFzLTMuNyAxLjktNS4yIDMuNC0yLjcgMy4yLTMuNSA1LjEtMS4zIDQtMS4zIDYuMWMwIC45IC4xIDEuOSAuMiAyLjhMNzQuMSA0NjIuN2MuOCA1LjEgMy40IDkuNyA3LjMgMTNzOC44IDUuMiAxNCA1LjJsMzI1LjcgMGMzLjggLjEgNy41LTEuMyAxMC41LTMuN3M0LjktNS45IDUuNS05LjdMNTA1IDUwLjdjLjctNC4yLS4zLTguNC0yLjgtMTEuOXMtNi4yLTUuNy0xMC40LTYuNGMtLjktLjEtMS45LS4yLTIuOC0uMkwyMi4yIDMyek0zMDguMSAzMjkuOGwtMTA0IDAtMjguMS0xNDcgMTU3LjMgMC0yNS4yIDE0N3oiXX0sVFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZrIixpY29uOls0NDgsNTEyLFtdLCJmMTg5IiwiTTMxLjUgNjMuNUMwIDk1IDAgMTQ1LjcgMCAyNDdMMCAyNjVDMCAzNjYuMyAwIDQxNyAzMS41IDQ0OC41UzExMy43IDQ4MCAyMTUgNDgwbDE3LjkgMGMxMDEuNCAwIDE1Mi4xIDAgMTgzLjUtMzEuNVM0NDggMzY2LjMgNDQ4IDI2NWwwLTE3LjljMC0xMDEuNCAwLTE1Mi4xLTMxLjUtMTgzLjVTMzM0LjMgMzIgMjMzIDMyTDIxNSAzMkMxMTMuNyAzMiA2MyAzMiAzMS41IDYzLjV6TTc1LjYgMTY4LjNsNTEuMSAwYzEuNyA4NS41IDM5LjQgMTIxLjcgNjkuMyAxMjkuMmwwLTEyOS4yIDQ4LjIgMCAwIDczLjdjMjkuNS0zLjIgNjAuNS0zNi44IDcwLjktNzMuN2w0OC4yIDBjLTMuOSAxOS4yLTExLjggMzcuMy0yMy4xIDUzLjNzLTI1LjcgMjkuNS00Mi41IDM5LjZjMTguNyA5LjMgMzUuMiAyMi40IDQ4LjQgMzguNXMyMi45IDM0LjkgMjguMyA1NWwtNTMgMGMtNC45LTE3LjUtMTQuOC0zMy4xLTI4LjYtNDVzLTMwLjctMTkuNC00OC43LTIxLjZsMCA2Ni42LTUuOCAwYy0xMDIuMSAwLTE2MC4zLTcwLTE2Mi44LTE4Ni41eiJdfSwkVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViIixpY29uOls1MTIsNTEyLFtdLCJmMDliIiwiTTE3My45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zIC4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUgLjMtNi4yIDIuM3ptNDQuMi0xLjdjLTIuOSAuNy00LjkgMi42LTQuNiA0LjkgLjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjUyLjggOGMtMTM4LjcgMC0yNDQuOCAxMDUuMy0yNDQuOCAyNDQgMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xIDEwMC0zMy4yIDE2Ny44LTEyOC4xIDE2Ny44LTIzOSAwLTEzOC43LTExMi41LTI0NC0yNTEuMi0yNDR6TTEwNS4yIDM1Mi45Yy0xLjMgMS0xIDMuMyAuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zIC4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNiAuNyA0LjMtLjcgLjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMyAuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMgLjctNC4zLTEuMy02LjItMi4yLTIuMy01LjItMi42LTYuNS0xem0tMTEuNC0xNC43Yy0xLjYgMS0xLjYgMy42IDAgNS45czQuMyAzLjMgNS42IDIuM2MxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnoiXX0sRFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGllcGllIixpY29uOls1MTIsNTEyLFtdLCJmMjg0IiwiTTQ0Mi41IDIwMi45YzMwLjcgMCAzMy41IDUzLjEtLjMgNTMuMWwtMTAuOCAwIDAgNDQuMy0yNi42IDAgMC05Ny40IDM3LjcgMHpNNDkyIDM1Mi42QzQ0OS45IDQ0NC41IDM3MC40IDUwNCAyNjggNTA0IDEzMSA1MDQgMjAgMzkzIDIwIDI1NlMxMzEgOCAyNjggOGM5Ny40IDAgMTcyLjggNTMuNyAyMTguMiAxMzguNEwzMDAuMiAyNTUuMiA0OTIgMzUyLjZ6bS0zOC41IDEyLjVsLTYwLjMtMzAuN2MtMjcuMSA0NC4zLTcwLjQgNzEuNC0xMjIuNCA3MS40LTgyLjUgMC0xNDkuMi02Ni43LTE0OS4yLTE0OC45IDAtODIuNSA2Ni43LTE0OS4yIDE0OS4yLTE0OS4yIDQ4LjQgMCA4OC45IDIzLjUgMTE2LjkgNjMuNGw1OS41LTM0LjZDNDA2LjUgNzMuOSAzNDIuNSAzNi41IDI2OCAzNi41IDE0Ni44IDM2LjUgNDguNSAxMzQuOCA0OC41IDI1NlMxNDYuOCA0NzUuNSAyNjggNDc1LjVjNzguNiAwIDE0Ni41LTQyLjEgMTg1LjUtMTEwLjR6Il19LExUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmFlIiwiTTQ0MC4yIDIzLjJjLTI2LjcgNi44LTY4LjEgMjguNS0xMTQuNiA2Ny41LTMwLjktMTcuNS02NS44LTI2LjctMTAxLjQtMjYuNy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOCAyMDgtOTMuMSAyMDgtMjA4Yy4xLTU0LjEtMjEtMTA2LjEtNTguNy0xNDQuOC02LjYgOC41LTEyLjMgMTcuNy0xNyAyNy40IDI4LjkgMzIuMyA0NC44IDc0LjEgNDQuOSAxMTcuNCAwIDk3LjctNzkuNCAxNzcuMS0xNzcuMSAxNzcuMS0zMC44IDAtNjEtOC4xLTg3LjYtMjMuNCA4Mi45LTEwNy4zIDE1MC44LTM3LjggMTg0LjMtMjI2LjYgNS44LTMyLjYgMjgtOTQuMyAxMjYuMi0xNjAuMiA4LjEtNS40IDIuNC0xOC4xLTctMTUuN3pNMTA5LjMgNDA2LjRDODkuOCAzODkuOCA3NC4yIDM2OS4yIDYzLjUgMzQ2cy0xNi4zLTQ4LjUtMTYuMy03NGMwLTk3LjcgNzkuNC0xNzcuMSAxNzcuMS0xNzcuMSAyNi42IDAgNTIuOCA2LjEgNzYuNiAxNy44LTY2IDYyLjEtMTI2LjkgMTUyLjktMTkxLjYgMjkzLjh6Il19LEVUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXNwYmVycnktcGkiLGljb246WzQ0OCw1MTIsW10sImY3YmIiLCJNMzkyLjUgMjMyLjVsLTMuNy02LjVjLjEtNDYuNC0yMS40LTY1LjMtNDYuNS03OS43IDcuNi0yIDE1LjQtMy42IDE3LjYtMTMuMiAxMy4xLTMuMyAxNS44LTkuNCAxNy4xLTE1LjggMy40LTIuMyAxNC44LTguNyAxMy42LTE5LjcgNi40LTQuNCAxMC0xMC4xIDguMS0xOC4xIDYuOS03LjUgOC43LTEzLjcgNS44LTE5LjQgOC4zLTEwLjMgNC42LTE1LjYgMS4xLTIwLjkgNi4yLTExLjIgLjctMjMuMi0xNi42LTIxLjItNi45LTEwLjEtMjEuOS03LjgtMjQuMi03LjgtMi42LTMuMi02LTYtMTYuNS00LjctNi44LTYuMS0xNC40LTUtMjIuMy0yLjEtOS4zLTcuMy0xNS41LTEuNC0yMi42IC44LTExLjMtMy42LTEzLjkgMS4zLTE5LjQgMy40LTEyLjMtMi42LTE2LjEgMy0yMiA4LjlsLTYuOS0uMWMtMTguNiAxMC44LTI3LjggMzIuOC0zMS4xIDQ0LjEtMy4zLTExLjMtMTIuNS0zMy4zLTMxLjEtNDQuMWwtNi45IC4xYy01LjktNS45LTkuNy0xMS41LTIyLTguOS01LjYtMi04LjEtNy0xOS40LTMuNC00LjYtMS40LTguOS00LjQtMTMuOS00LjMtMi42IC4xLTUuNSAxLTguNyAzLjUtNy45LTMtMTUuNS00LTIyLjMgMi4xLTEwLjUtMS4zLTE0IDEuNC0xNi41IDQuNy0yLjMgMC0xNy4zLTIuMy0yNC4yIDcuOC0xNy4zLTItMjIuNyAxMC0xNi41IDIxLjItMy41IDUuNC03LjIgMTAuNyAxLjEgMjAuOS0yLjkgNS43LTEuMSAxMS45IDUuOCAxOS40LTEuOCA4IDEuOCAxMy43IDguMSAxOC4xLTEuMiAxMSAxMC4yIDE3LjQgMTMuNiAxOS43IDEuMyA2LjQgNCAxMi40IDE3LjEgMTUuOCAyLjIgOS41IDEwIDExLjIgMTcuNiAxMy4yLTI1LjEgMTQuNC00Ni42IDMzLjMtNDYuNSA3OS43bC0zLjcgNi41Yy0yOC44IDE3LjItNTQuNyA3Mi43LTE0LjIgMTE3LjcgMi42IDE0LjEgNy4xIDI0LjIgMTEgMzUuNCA1LjkgNDUuMiA0NC41IDY2LjMgNTQuNiA2OC44IDE0LjkgMTEuMiAzMC44IDIxLjggNTIuMiAyOS4yIDIwLjMgMjAuNiA0Mi4zIDI4LjQgNjQuMyAyOC40bDEgMGMyMi4xIDAgNDQtNy44IDY0LjItMjguNCAyMS41LTcuNCAzNy4zLTE4IDUyLjItMjkuMiAxMC4yLTIuNSA0OC43LTIzLjYgNTQuNi02OC44IDMuOS0xMS4yIDguNC0yMS4zIDExLTM1LjQgNDAuNi00NS4xIDE0LjctMTAwLjUtMTQtMTE3Ljd6bS0yMi4yLThjLTEuNSAxOC43LTk4LjktNjUuMS04Mi4xLTY3LjkgNDUuNy03LjUgODMuNiAxOS4yIDgyLjEgNjcuOXptLTQzIDkzLjFjLTI0LjUgMTUuOC01OS44IDUuNi03OC44LTIyLjhzLTE0LjYtNjQuMiA5LjktODAgNTkuOC01LjYgNzguOCAyMi44IDE0LjYgNjQuMi05LjkgODB6TTI1OS40IDI5LjNjLjggNC4yIDEuOCA2LjggMi45IDcuNiA1LjQtNS44IDkuOC0xMS43IDE2LjgtMTcuMyAwIDMuMy0xLjcgNi44IDIuNSA5LjQgMy43LTUgOC44LTkuNSAxNS41LTEzLjMtMy4yIDUuNi0uNiA3LjMgMS4yIDkuNiA1LjEtNC40IDEwLTguOCAxOS40LTEyLjMtMi42IDMuMS02LjIgNi4yLTIuNCA5LjggNS4zLTMuMyAxMC42LTYuNiAyMy4xLTguOS0yLjggMy4xLTguNyA2LjMtNS4xIDkuNCA2LjYtMi41IDE0LTQuNCAyMi4xLTUuNC0zLjkgMy4yLTcuMSA2LjMtMy45IDguOCA3LjEtMi4yIDE2LjktNS4xIDI2LjQtMi42bC02IDYuMWMtLjcgLjggMTQuMSAuNiAyMy45IC44LTMuNiA1LTcuMiA5LjctOS4zIDE4LjIgMSAxIDUuOCAuNCAxMC40IDAtNC43IDkuOS0xMi44IDEyLjMtMTQuNyAxNi42IDIuOSAyLjIgNi44IDEuNiAxMS4yIC4xLTMuNCA2LjktMTAuNCAxMS43LTE2IDE3LjMgMS40IDEgMy45IDEuNiA5LjcgLjktNS4yIDUuNS0xMS40IDEwLjUtMTguOCAxNSAxLjMgMS41IDUuOCAxLjUgMTAgMS42LTYuNyA2LjUtMTUuMyA5LjktMjMuNCAxNC4yIDQgMi43IDYuOSAyLjEgMTAgMi4xLTUuNyA0LjctMTUuNCA3LjEtMjQuNCAxMCAxLjcgMi43IDMuNCAzLjQgNy4xIDQuMS05LjUgNS4zLTIzLjIgMi45LTI3IDUuNiAuOSAyLjcgMy42IDQuNCA2LjcgNS44LTE1LjQgLjktNTcuMy0uNi02NS40LTMyLjMgMTUuNy0xNy4zIDQ0LjQtMzcuNSA5My43LTYyLjYtMzguNCAxMi44LTczIDMwLTEwMiA1My41LTM0LjMtMTUuOS0xMC44LTU1LjkgNS44LTcxLjh6TTIyNSAxNDMuOWMyNC4yLS4zIDU0LjEgMTcuOCA1NCAzNC43LS4xIDE1LTIxIDI3LjEtNTMuOCAyNi45LTMyLjEtLjQtNTMuNy0xNS4yLTUzLjYtMjkuOCAwLTExLjkgMjYuMi0zMi41IDUzLjQtMzEuOHpNMTAyIDEzMS4xYzMuNy0uNyA1LjQtMS41IDcuMS00LjEtOS0yLjgtMTguNy01LjMtMjQuNC0xMCAzLjEgMCA2IC43IDEwLTIuMS04LjEtNC4zLTE2LjctNy43LTIzLjQtMTQuMiA0LjItLjEgOC43IDAgMTAtMS42LTcuNC00LjUtMTMuNi05LjUtMTguOC0xNSA1LjggLjcgOC4zIC4xIDkuNy0uOS01LjYtNS42LTEyLjctMTAuNC0xNi0xNy4zIDQuMyAxLjUgOC4zIDIgMTEuMi0uMS0xLjktNC4yLTEwLTYuNy0xNC43LTE2LjYgNC42IC40IDkuNCAxIDEwLjQgMC0yLjEtOC41LTUuOC0xMy4zLTkuMy0xOC4yIDkuOC0uMSAyNC42IDAgMjMuOS0uOGwtNi02LjFjOS41LTIuNSAxOS4zIC40IDI2LjQgMi42IDMuMi0yLjUtLjEtNS42LTMuOS04LjggOC4xIDEuMSAxNS40IDIuOSAyMi4xIDUuNCAzLjUtMy4xLTIuMy02LjMtNS4xLTkuNCAxMi41IDIuMyAxNy44IDUuNiAyMy4xIDguOSAzLjgtMy42IC4yLTYuNy0yLjQtOS44IDkuNCAzLjQgMTQuMyA3LjkgMTkuNCAxMi4zIDEuNy0yLjMgNC40LTQgMS4yLTkuNiA2LjcgMy44IDExLjggOC4zIDE1LjUgMTMuMyA0LjEtMi42IDIuNS02LjIgMi41LTkuNCA3IDUuNiAxMS40IDExLjUgMTYuOCAxNy4zIDEuMS0uOCAyLTMuNCAyLjktNy42IDE2LjYgMTUuOSA0MC4xIDU1LjkgNiA3MS44LTI5LTIzLjUtNjMuNi00MC43LTEwMi01My41IDQ5LjMgMjUgNzggNDUuMyA5My43IDYyLjYtOCAzMS44LTUwIDMzLjItNjUuNCAzMi4zIDMuMS0xLjQgNS44LTMuMiA2LjctNS44LTQtMi44LTE3LjYtLjQtMjcuMi01LjZ6bTYwLjEgMjQuMWMxNi44IDIuOC04MC42IDg2LjUtODIuMSA2Ny45LTEuNS00OC43IDM2LjUtNzUuNSA4Mi4xLTY3Ljl6TTU4LjcgMzQyYy0yMy43LTE4LjgtMzEuMy03My43IDEyLjYtOTguMyAyNi41LTcgOSAxMDcuOC0xMi42IDk4LjN6bTkxIDk4LjJjLTEzLjMgNy45LTQ1LjggNC43LTY4LjgtMjcuOS0xNS41LTI3LjQtMTMuNS01NS4yLTIuNi02My40IDE2LjMtOS44IDQxLjUgMy40IDYwLjkgMjUuNiAxNi45IDIwIDI0LjYgNTUuMyAxMC41IDY1Ljd6TTEyMy4zIDMyMC41Yy0yNC41LTE1LjgtMjguOS01MS42LTkuOS04MHM1NC4zLTM4LjYgNzguOC0yMi44IDI4LjkgNTEuNiA5LjkgODBjLTE5LjEgMjguNC01NC40IDM4LjYtNzguOCAyMi44ek0yMjUuNSA0OTZjLTI5LjQgMS4yLTU4LjItMjMuNy01Ny44LTMyLjMtLjQtMTIuNyAzNS44LTIyLjYgNTkuMy0yMiAyMy43LTEgNTUuNiA3LjUgNTUuNyAxOC45IC41IDExLTI4LjggMzUuOS01Ny4yIDM1LjR6bTU4LjktMTI0LjljLjIgMjkuNy0yNi4yIDUzLjgtNTguOCA1NHMtNTkuMi0yMy44LTU5LjQtNTMuNGwwLS42Yy0uMi0yOS43IDI2LjItNTMuOCA1OC44LTU0czU5LjIgMjMuOCA1OS40IDUzLjRsMCAuNnptODIuMiA0Mi43Yy0yNS4zIDM0LjYtNTkuNiAzNS45LTcyLjMgMjYuMy0xMy4zLTEyLjQtMy4yLTUwLjkgMTUuMS03MiAyMC45LTIzLjMgNDMuMy0zOC41IDU4LjktMjYuNiAxMC41IDEwLjMgMTYuNyA0OS4xLTEuNyA3Mi4zem0yMi45LTczLjJjLTIxLjUgOS40LTM5LTEwNS4zLTEyLjYtOTguMyA0My45IDI0LjcgMzYuMyA3OS42IDEyLjYgOTguM3oiXX0sUFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMiLGljb246WzUxMiw1MTIsW10sImYxM2MiLCJNNDgwIDMybC02NCAzNjgtMjIzLjMgODAtMTkyLjctODAgMTkuNi05NC44IDgyIDAtOCA0MC42IDExNi40IDQ0LjQgMTM0LjEtNDQuNCAxOC44LTk3LjEtMzMzLjQgMCAxNi04MiAzMzMuNyAwIDEwLjUtNTIuNy0zMzMuNCAwIDE2LjMtODIgNDA3LjQgMHoiXX0sSVR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1YnNwb3QiLGljb246WzQ0OCw1MTIsW10sImYzYjIiLCJNMjM1LjggMjExLjZjLTI1LjEgMjMuNy00MC44IDU3LjMtNDAuOCA5NC42IDAgMjkuMyA5LjcgNTYuMyAyNiA3OEwxNzEuNSA0MzRjLTQuNC0xLjYtOS4xLTIuNS0xNC0yLjUtMTAuOCAwLTIwLjkgNC4yLTI4LjUgMTEuOHMtMTEuOCAxNy44LTExLjggMjguNiA0LjIgMjAuOSAxMS44IDI4LjUgMTcuOCAxMS42IDI4LjUgMTEuNmMxMC44IDAgMjAuOS0zLjkgMjguNi0xMS42IDcuNi03LjYgMTEuOC0xNy44IDExLjgtMjguNSAwLTQuMi0uNi04LjItMS45LTEyLjFsNTAtNTAuMmMyMiAxNi45IDQ5LjQgMjYuOSA3OS4zIDI2LjkgNzEuOSAwIDEzMC01OC4zIDEzMC0xMzAuMiAwLTY1LjItNDcuNy0xMTkuMi0xMTAuMi0xMjguN2wwLTYxLjZjMTcuNS03LjQgMjguMi0yMy44IDI4LjItNDIuOSAwLTI2LjEtMjAuOS00Ny45LTQ3LTQ3LjlTMjc5LjYgNDcgMjc5LjYgNzMuMWMwIDE5LjEgMTAuNyAzNS41IDI4LjIgNDIuOWwwIDYxLjJjLTE1LjIgMi4xLTI5LjYgNi43LTQyLjcgMTMuNi0yNy42LTIwLjktMTE3LjUtODUuNy0xNjguOS0xMjQuOCAxLjItNC40IDItOSAyLTEzLjggMC0yOC44LTIzLjUtNTIuMi01Mi40LTUyLjItMjguOCAwLTUyLjIgMjMuNC01Mi4yIDUyLjIgMCAyOC45IDIzLjQgNTIuMyA1Mi4yIDUyLjMgOS44IDAgMTguOS0yLjkgMjYuOC03LjZMMjM1LjggMjExLjZ6bTg5LjUgMjUuNmE2OSA2OSAwIDEgMSAwIDEzOCA2OSA2OSAwIDEgMSAwLTEzOHoiXX0sQVR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNtcGxpZCIsaWNvbjpbNjQwLDUxMixbXSwiZTM2MCIsIk0yMjYuMSAzODguMmMwLS43LS4yLTEuNS0uNi0yLjFzLTEtMS4xLTEuNy0xLjRjLS41LS4yLTEuMS0uNC0xLjYtLjRsLTE0OS42IDBjLTMuMSAwLTYuMi0uOC04LjktMi4ycy01LjEtMy41LTYuOS02LjEtMi45LTUuNS0zLjMtOC42IDAtNi4yIDEuMS05LjFMODEuNiAyNTUuN2MyLTcuMiA2LjItMTMuNSAxMi0xOC4yczEyLjktNy40IDIwLjQtNy44bDE0OC42IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuNC0xIC4zLTItLjEtMi45cy0xLjItMS42LTIuMS0yYy0uNC0uMi0uOS0uMy0xLjQtLjMtLjEgMC0uMSAwLS4yIDBsLTE0OC41IDBjLTIyLjIgMS4yLTQzLjQgOS4yLTYwLjggMjNzLTMwIDMyLjctMzYuMiA1NC4xTDMuNSAzNTguOGMtMy4yIDguNy00LjIgMTgtMyAyNy4xczQuNiAxNy45IDkuOSAyNS41IDEyLjMgMTMuOCAyMC41IDE4IDE3LjMgNi41IDI2LjUgNi42YzEgMCAxLjkgMCAyLjktLjFsMTQ4LjYgMGMxLjUtLjEgMi45LS43IDQtMS42czItMi4yIDIuNC0zLjZsMTAuNy00MS4xYy4yLS41IC4zLS45IC4zLTEuNHptODAuNS0zMDdjLjItLjQgLjMtLjkgLjMtMS40IDAtLjUtLjEtMS0uMy0xLjVzLS41LS45LS44LTEuMi0uOC0uNi0xLjItLjgtMS0uMy0xLjUtLjNsLTQxLjIgMGMtMS41IC4xLTIuOSAuNi00IDEuNnMtMiAyLjItMi40IDMuNmwtMjEuMyA4MC45IDUxLjEgMCAyMS40LTgwLjl6bS0xMjYuMyAyODdsNTEuMSAwIDMyLTEyMi42LTUxLjEgMC0zMiAxMjIuNnpNNTExLjkgNzkuN2MwLTEtLjUtMS45LTEuMi0yLjZzLTEuNy0xLjEtMi42LTEuMWMtLjEgMC0uMSAwLS4yIDBsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNC4xIDEuNXMtMiAyLjItMi41IDMuNkwzNjguOSA0MzAuNmMtLjIgLjQtLjMgLjktLjMgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjIgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNTExLjUgODEuMmMuMi0uNSAuMy0xIC4zLTEuNXpNMzI0LjYgMzg0LjVsLTQxIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjcgNDEuMWMtLjIgLjQtLjMgLjktLjMgMS40IDAgLjUgLjEgMSAuMyAxLjVzLjUgLjkgLjggMS4yIC44IC42IDEuMiAuOCAxIC4zIDEuNSAuM2MuMSAwIC4yIDAgLjMgMGw0MC45IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuMi0uNiAuMy0xLjIgLjMtMS44cy0uMy0xLjItLjYtMS43LS44LS45LTEuMy0xLjItMS4yLS40LTEuOC0uNGMtLjEgMC0uMiAwLS4zIDBsMCAwek02MzYgNzYuMWwtNDEgMGMtMS41IC4xLTIuOSAuNi00IDEuNXMtMiAyLjItMi40IDMuNkw0OTcuMSA0MzAuNmMtLjIgLjQtLjIgLjktLjIgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNjM5LjcgODEuMmMuMi0uNSAuMy0xIC4zLTEuNS0uMS0xLS41LTEuOS0xLjItMi41cy0xLjYtMS0yLjYtMWMtLjEgMC0uMSAwLS4yIDBsMC0uMXpNMzcxLjYgMjI1LjJsMTAuOC00MS4xYy4yLS40IC4yLS45IC4yLTEuNCAwLTEtLjQtMi0xLjEtMi43cy0xLjctMS4xLTIuNy0xLjFsLTQxLjMgMGMtMS41IC4xLTIuOSAuNy00IDEuNnMtMiAyLjItMi40IDMuNmwtMTAuOCA0MS4xYy0uMiAuNS0uMyAxLS4zIDEuNWwwIC4yYy4xIDEgLjUgMS44IDEuMiAyLjVzMS42IDEgMi42IDFjLjEgMCAuMiAwIC4zIDBsNDEuMSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNnoiXX0sTlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR5YWxvZyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5OSIsIk0xNiAzMmwwIDExOS4yIDY0IDAgMC01NS4yIDEwNy4yIDBDMzAwLjYgOTYgMzY4IDE3Ni4yIDM2OCAyNTUuOSAzNjggMzMyIDMwOS40IDQxNiAxODcuMiA0MTZsLTE3MS4yIDAgMCA2NCAxNzEuMiAwQzM0Ny45IDQ4MCA0MzIgMzY3LjMgNDMyIDI1NS45IDQzMiAxOTcuMiA0MDkuOSAxNDIuNSAzNjkuNyAxMDEuNiAzMjQuOSA1NiAyNjEuNyAzMiAxODcuMiAzMkwxNiAzMnoiXX0sUlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsZW1lbnRvciIsaWNvbjpbNTEyLDUxMixbXSwiZjQzMCIsIk0uNSAyNTZjMCAxNDEgMTEzLjYgMjU1IDI1NC42IDI1NSAxNDIgMCAyNTYtMTE0IDI1Ni0yNTUgMC0xNDAtMTE0LTI1My45LTI1Ni0yNTMuOS0xNDEgMC0yNTQuNiAxMTMuOS0yNTQuNiAyNTMuOXpNMTkyLjEgMTUwbDAgMjEzLTQzIDAgMC0yMTMgNDMgMHptNDIgMGwxMjggMCAwIDQzLTEyOCAwIDAtNDN6bTEyOCA4NWwwIDQzLTEyOCAwIDAtNDMgMTI4IDB6bS0xMjggODVsMTI4IDAgMCA0My0xMjggMCAwLTQzeiJdfSxPVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImYyYjAiLCJNMTMuMyAyMjkuMmMuMS0uMSAuMi0uMyAuMy0uNCAwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIyNC40IDk2LjZjLTcuMSAwLTE0LjYgLjYtMjEuNCAxLjdsMy43IDY3LjQtMjItNjRjLTE0LjMgMy43LTI3LjcgOS40LTQwIDE2LjZsMjkuNCA2MS40LTQ1LjEtNTAuOWMtMTEuNCA4LjktMjEuNyAxOS4xLTMwLjYgMzAuOWw1MC42IDQ1LjQtNjEuMS0yOS43Yy03LjEgMTIuMy0xMi45IDI1LjctMTYuNiA0MGw2NC4zIDIyLjYtNjgtNGMtLjkgNy4xLTEuNCAxNC42LTEuNCAyMnMuNiAxNC42IDEuNCAyMS43bDY3LjctNC02NCAyMi42YzMuNyAxNC4zIDkuNCAyNy43IDE2LjYgNDAuM0wxNDkgMzA2LjkgOTguMSAzNTJjOC45IDExLjcgMTkuMSAyMi4zIDMwLjkgMzAuOWw0NC45LTUwLjktMjkuNSA2MS40YzEyLjMgNy40IDI1LjcgMTMuMSA0MCAxNi45bDIyLjMtNjQuNi00IDY4YzcuMSAxLjEgMTQuNiAxLjcgMjEuNyAxLjcgNy40IDAgMTQuNi0uNiAyMS43LTEuN2wtNC02OC42IDIyLjYgNjUuMWMxNC4zLTQgMjcuNy05LjQgNDAtMTYuOWwtMjkuNC02MS4zIDQ0LjkgNTAuOWMxMS43LTguOSAyMi0xOS4xIDMwLjYtMzAuOWwtNTAuNi00NS4xIDYxLjEgMjkuNGM3LjEtMTIuMyAxMi45LTI1LjcgMTYuNi00MC4zbC02NC0yMi4zIDY3LjQgNGMxLjEtNy4xIDEuNC0xNC4zIDEuNC0yMS43cy0uMy0xNC45LTEuNC0yMmwtNjcuNyA0IDY0LTIyLjNjLTMuNy0xNC4zLTkuMS0yOC0xNi42LTQwLjNsLTYwLjkgMjkuNyA1MC42LTQ1LjRjLTguOS0xMS43LTE5LjEtMjItMzAuNi0zMC45bC00NS4xIDUwLjkgMjkuNC02MS4xYy0xMi4zLTcuNC0yNS43LTEzLjEtNDAtMTYuOWwtMjIuMyA2NC4zIDQtNjcuN2MtNy4xLTEuMi0xNC4zLTEuNy0yMS43LTEuN3pNNDQzLjggMTI4TDQ0My44IDM4NCAyMjQuNCA1MTIgNSAzODQgNSAxMjggMjI0LjQgMCA0NDMuOCAxMjh6bS0xNy4xIDEwLjNsLTIwMi4zLTExNy40LTIwMi4zIDExNy40IDAgMjM1LjEgMjAyLjMgMTE3LjcgMjAyLjMtMTE3LjcgMC0yMzUuMXpNMjI0LjQgMzcuMWwxODcuNyAxMDkuNCAwIDIxOC45LTE4Ny43IDEwOS41LTE4Ny43LTEwOS41IDAtMjE4LjggMTg3LjctMTA5LjV6bTAgNTAuOWMtOTIuMyAwLTE2Ni45IDc1LjEtMTY2LjkgMTY4IDAgOTIuNiA3NC42IDE2Ny43IDE2Ni45IDE2Ny43IDkyIDAgMTY2LjktNzUuMSAxNjYuOS0xNjcuNyAwLTkyLjktNzQuOS0xNjgtMTY2LjktMTY4eiJdfSxGVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJpYmJibGUiLGljb246WzUxMiw1MTIsW10sImYxN2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MjAgMTIyLjRjMjkuNSAzNiA0Ny40IDgyIDQ3LjggMTMyLTctMS41LTc3LTE1LjctMTQ3LjUtNi44LTUuOC0xNC0xMS4yLTI2LjQtMTguNi00MS42IDc4LjMtMzIgMTEzLjgtNzcuNSAxMTguMy04My41ek0zOTYuNCA5Ny45Yy0zLjggNS40LTM1LjcgNDguMy0xMTEgNzYuNS0zNC43LTYzLjgtNzMuMi0xMTYuMi03OS0xMjQgNjcuMi0xNi4yIDEzOCAxLjMgMTkwLjEgNDcuNXpNMTY1LjkgNjQuNmM1LjYgNy43IDQzLjQgNjAuMSA3OC41IDEyMi41LTk5LjEgMjYuMy0xODYuNCAyNS45LTE5NS44IDI1LjggMTMuNy02NS43IDU4LTEyMC40IDExNy4zLTE0OC4zek00NC4yIDI1Ni4zYzAtMi4yIDAtNC4zIC4xLTYuNSA5LjMgLjIgMTExLjkgMS41IDIxNy43LTMwLjEgNi4xIDExLjkgMTEuOSAyMy45IDE3LjIgMzUuOS03Ni42IDIxLjYtMTQ2LjIgODMuNS0xODAuNSAxNDIuMy0zMy44LTM3LjYtNTQuNS04Ny4yLTU0LjUtMTQxLjZ6TTEyNiA0MjMuNGMyMi4xLTQ1LjIgODIuMi0xMDMuNiAxNjcuNi0xMzIuOCAyOS43IDc3LjMgNDIgMTQyLjEgNDUuMiAxNjAuNi02OC4xIDI5LTE1MCAyMS4xLTIxMi44LTI3Ljl6bTI0OC40IDguNWMtMi4yLTEyLjktMTMuNC03NC45LTQxLjItMTUxIDY2LjQtMTAuNiAxMjQuNyA2LjggMTMxLjkgOS4xLTkuNCA1OC45LTQzLjMgMTA5LjgtOTAuOCAxNDJ6Il19LHpiPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmtlZGluIixpY29uOls0NDgsNTEyLFtdLCJmMDhjIiwiTTQxNiAzMkwzMS45IDMyQzE0LjMgMzIgMCA0Ni41IDAgNjQuM0wwIDQ0Ny43QzAgNDY1LjUgMTQuMyA0ODAgMzEuOSA0ODBMNDE2IDQ4MGMxNy42IDAgMzItMTQuNSAzMi0zMi4zbDAtMzgzLjRDNDQ4IDQ2LjUgNDMzLjYgMzIgNDE2IDMyek0xMzUuNCA0MTZsLTY2LjQgMCAwLTIxMy44IDY2LjUgMCAwIDIxMy44LS4xIDB6TTEwMi4yIDk2YTM4LjUgMzguNSAwIDEgMSAwIDc3IDM4LjUgMzguNSAwIDEgMSAwLTc3ek0zODQuMyA0MTZsLTY2LjQgMCAwLTEwNGMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45bDAgMTA1LjgtNjYuNCAwIDAtMjEzLjggNjMuNyAwIDAgMjkuMiAuOSAwYzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45bDAgMTE3LjJ6Il19LEJUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1wYXlwYWwiLGljb246WzU3Niw1MTIsW10sImYxZjQiLCJNMTg2LjMgMjU4LjJjMCAxMi4yLTkuNyAyMS41LTIyIDIxLjUtOS4yIDAtMTYtNS4yLTE2LTE1IDAtMTIuMiA5LjUtMjIgMjEuNy0yMiA5LjMgMCAxNi4zIDUuNyAxNi4zIDE1LjV6TTgwLjUgMjA5LjdsLTQuNyAwYy0xLjUgMC0zIDEtMy4yIDIuN2wtNC4zIDI2LjcgOC4yLS4zYzExIDAgMTkuNS0xLjUgMjEuNS0xNC4yIDIuMy0xMy40LTYuMi0xNC45LTE3LjUtMTQuOXptMjg0IDBsLTQuNSAwYy0xLjggMC0zIDEtMy4yIDIuN2wtNC4yIDI2LjcgOC0uM2MxMyAwIDIyLTMgMjItMTgtLjEtMTAuNi05LjYtMTEuMS0xOC4xLTExLjF6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTEyOC4zIDIxNS40YzAtMjEtMTYuMi0yOC0zNC43LTI4bC00MCAwYy0yLjUgMC01IDItNS4yIDQuN0wzMiAyOTQuMmMtLjMgMiAxLjIgNCAzLjIgNGwxOSAwYzIuNyAwIDUuMi0yLjkgNS41LTUuN2w0LjUtMjYuNmMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNiAwIDQ2LjEtMTcgNDYuMS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4yIDguMi01LjgtOC41LTE0LjItMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5IDAgMjAuMi00LjkgMjYuNS0xMS45LS41IDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMiAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTI1MyAzMjIuMWw2My43LTkyLjZjLjUtLjUgLjUtMSAuNS0xLjcgMC0xLjctMS41LTMuNS0zLjItMy41bC0xOS4yIDBjLTEuNyAwLTMuNSAxLTQuNSAyLjVsLTI2LjUgMzktMTEtMzcuNWMtLjgtMi4yLTMtNC01LjUtNGwtMTguNyAwYy0xLjcgMC0zLjIgMS44LTMuMiAzLjUgMCAxLjIgMTkuNSA1Ni44IDIxLjIgNjIuMS0yLjcgMy44LTIwLjUgMjguNi0yMC41IDMxLjYgMCAxLjggMS41IDMuMiAzLjIgMy4ybDE5LjIgMGMxLjgtLjEgMy41LTEuMSA0LjUtMi42ek00MTIuMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtMzkuNyAwYy0yLjcgMC01LjIgMi01LjUgNC43bC0xNi4yIDEwMmMtLjIgMiAxLjMgNCAzLjIgNGwyMC41IDBjMiAwIDMuNS0xLjUgNC0zLjJsNC41LTI5YzEtNy4yIDEzLjItNC43IDE4LTQuNyAyOC40IDAgNDUuOS0xNyA0NS45LTQ1Ljh6bTg0LjIgOC44bC0xOSAwYy0zLjggMC00IDUuNS00LjMgOC4yLTUuNS04LjUtMTQtMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5LjMgMCAyMC41LTQuOSAyNi41LTExLjktLjMgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNGwxNy4zIDBjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXpNNTQ0IDE5MC45YzAtMi0xLjUtMy41LTMuMi0zLjVsLTE4LjUgMGMtMS41IDAtMyAxLjItMy4yIDIuN2wtMTYuMiAxMDQtLjMgLjVjMCAxLjggMS41IDMuNSAzLjUgMy41bDE2LjUgMGMyLjUgMCA1LTIuOSA1LjItNS43bDE2LjItMTAxLjIgMC0uM3ptLTkwIDUxLjhjLTEyLjIgMC0yMS43IDkuNy0yMS43IDIyIDAgOS43IDcgMTUgMTYuMiAxNSAxMiAwIDIxLjctOS4yIDIxLjctMjEuNSAuMS05LjgtNi45LTE1LjUtMTYuMi0xNS41eiJdfSxIVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGhsIixpY29uOls2NDAsNTEyLFtdLCJmNzkwIiwiTTIzOCAzMDEuMmw1OC43IDAgMjIuMy0zMC4yLTU4LjcgMC0yMi4zIDMwLjJ6TTAgMjgyLjlsMCA2LjQgODEuOCAwIDQuNy02LjQtODYuNSAwek0xNzIuOSAyNzFjLTguNyAwLTYtMy42LTQuNi01LjUgMi44LTMuOCA3LjYtMTAuNCAxMC40LTE0LjFzMi44LTUuOS0yLjgtNS45bC01MSAwLTQxLjEgNTUuOCAxMDAuMSAwYzMzLjEgMCA1MS41LTIyLjUgNTcuMi0zMC4zbC02OC4yIDB6bTMxNy41LTYuOWwzOS4zLTUzLjQtNjIuMiAwLTM5LjMgNTMuNCA2Mi4yIDB6TTk1LjMgMjcxbC05NS4zIDAgMCA2LjQgOTAuNiAwIDQuNy02LjR6bTExMS0yNi42Yy0yLjggMy44LTcuNSAxMC40LTEwLjMgMTQuMi0xLjQgMi00LjEgNS41IDQuNiA1LjVsNDUuNiAwczcuMy0xMCAxMy41LTE4LjRjOC40LTExLjQgLjctMzUtMjkuMi0zNWwtMTE3LjkgMC0yMC40IDI3LjggMTExLjQgMGM1LjYgMCA1LjUgMi4yIDIuNyA1Ljl6TTAgMzAxLjJsNzMuMSAwIDQuNy02LjQtNzcuOCAwIDAgNi40em0zMjMgMGw1OC43IDAgMjIuMy0zMC4yLTU4LjcgMGMtLjEgMC0yMi4zIDMwLjItMjIuMyAzMC4yem0yMjIgLjFsOTUgMCAwLTYuNC05MC4zIDAtNC43IDYuNHpNNTY3LjMgMjcxbC00LjcgNi40IDc3LjQgMCAwLTYuNC03Mi43IDB6bS0xMy41IDE4LjNsODYuMiAwIDAtNi40LTgxLjUgMC00LjcgNi40ek0zODkuNiAyMTAuN2wtMjIuNSAzMC42LTI2LjIgMCAyMi41LTMwLjYtNTguNyAwLTM5LjMgNTMuNCAxNDMuNiAwIDM5LjMtNTMuNC01OC43IDB6TTQyMy4xIDI3MXMtNC4zIDUuOS02LjQgOC43Yy03LjQgMTAtLjkgMjEuNiAyMy4yIDIxLjZsOTQuMyAwIDIyLjMtMzAuMy0xMzMuNCAweiJdfSxxVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGV4IixpY29uOls2NDAsNTEyLFtdLCJlN2ZmIiwiTTYyMC44IDk1LjRjLTMwLjggLjQtNDIuMSAxNi42LTQ3LjcgMjQuNWwtLjEgLjEtNTUuNyA4MC41IDgyLjggMTIxLjFjNy41IDEwLjYgMTEuMyAxMi41IDM1LjQgMTIuNWwwIDkuMWMtOS4xLS43LTI4LS43LTM3LjctLjctMTIuNCAwLTMwLjggMC00Mi45IC43bDAtOS4xYzEzLjItLjggMTYuNi03LjMgMTYuNi0xMC4yIDAtMS4xIDAtMi4zLTMtNi40bC02NS41LTk2LjMtNjAuMiA4Ny45Yy0xLjkgMi43LTMuOCA1LjQtMy44IDEwLjIgMCA2LjEgMy40IDEzLjYgMTUgMTQuN2wwIDkuMWMtOS40LS43LTI3LjEtLjctMzcuMi0uN2wtMi44IDAtMTEuNyA4Mi42LTE5NS45IDAgMC05LjFjMjYuNyAwIDMwLjkgMCAzMC45LTE2LjlsMC0yMDMuMmMwLTE2LjktNC4zLTE2LjktMzAuOS0xNi45bDAtMTAuMyAxOS44IDBjLTQuOC02MS4xLTEwLjgtNzEuNy02OC03MS44bC0yMC43IDBjLTYuOCAxLjUtNi44IDYuMS02LjggMTQuNGwwIDIwNWMwIDEzLjYgMS4xIDE3LjggMzIuNCAxNy44bDEwLjUgMCAwIDkuMS0uNCAwYy0xNy45LS4zLTM2LjctLjctNTQuOS0uN3MtMzYuOSAuMy01NC44IC43bC0uNiAwIDAtOS4xIDEwLjcgMGMzMS43IDAgMzIuOC00LjEgMzIuOC0xNy44bDAtMjA1YzAtOC43IDAtMTMuMi03LjItMTQuM2wtMjAuOCAwYy01OC40IDAtNjMuNyAxMC45LTY4LjYgNzMuM2wtNi44IDAgNi4zLTgzLjMgMjE3LjUgMCA2LjEgODEuOCAxNjQuMSAwIDkgODMuMy02LjggMGMtNS4zLTQ5LjgtMTIuMS03My03MC4zLTczbC01MS41IDBjLTE1IDAtMTUuOCAxLjktMTUuOCAxNC42bDAgOTMuMyAzNS41IDBjMzUuNSAwIDM4LjktMTIuOCAzOC45LTQ0bDYgMCAwIDk3LjktNiAwYzAtMzEuOC0zLjQtNDQuOC0zOC45LTQ0LjhsLTM1LjUgMCAwIDEwNS4yYzAgMTMgLjcgMTQuOCAxNS44IDE0LjhsNTIuMiAwYzYxLjEgMCA2OS45LTI1LjggNzcuNC03My42LTcuNyAwLTE2LjMgLjItMjIuMiAuN2wwLTkuMWM3LjIgMCAzMS43LS40IDQ3LjgtMjMuOGw2NS41LTk1LjctNzIuNy0xMDYuN2MtOC4zLTExLjctMTUuMS0xMi41LTM1LjgtMTIuNWwwLTkuMWM5LjEgLjcgMjcuOSAuNyAzNy43IC43IDEyLjQgMCAzMC44IDAgNDIuOS0uN2wwIDkuMWMtMTIuNSAuNC0xNi42IDYuOC0xNi42IDEwLjIgMCAxLjEgLjQgMi4zIDMgNi40bDU1LjcgODEuNiA0OS43LTcyLjFjMi43LTMuNyA0LjUtNi44IDQuNS0xMS4zIDAtNi4xLTMtMTMuNi0xNS0xNC44bDAtOS4xYzkuNCAuNyAyNC44IC43IDM3LjIgLjcgOSAwIDIzLjMgMCAzMi0uN2wwIDkuMXoiXX0salR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsYXVkZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg2MSIsIk0xMDAuNCAzNDAuNWwxMDAuNy01Ni41IDEuNy00LjktMS43LTIuNy00LjkgMC0xNi44LTEtNTcuNS0xLjYtNDkuOS0yLjEtNDguMy0yLjYtMTIuMi0yLjYtMTEuNC0xNSAxLjItNy41IDEwLjItNi45IDE0LjcgMS4zYzE4LjkgMS4zIDQ1LjkgMy4xIDgxIDUuNmwzNS4yIDIuMSA1Mi4yIDUuNCA4LjMgMCAxLjItMy40LTIuOC0yLjEtMi4yLTIuMS01MC4zLTM0LjEtNTQuNC0zNi0yOC41LTIwLjctMTUuNC0xMC41LTcuOC05LjgtMy40LTIxLjUgMTQtMTUuNCAxOC44IDEuMyA0LjggMS4zIDE5IDE0LjcgNDAuNyAzMS41IDUzLjEgMzkuMSA3LjggNi41IDMuMS0yLjIgLjQtMS42LTMuNS01LjgtMjguOS01Mi4yLTMwLjgtNTMuMS0xMy43LTIyLTMuNi0xMy4yYy0xLjMtNS40LTIuMi0xMC0yLjItMTUuNWwxNS45LTIxLjYgOC44LTIuOCAyMS4yIDIuOCA4LjkgNy44IDEzLjIgMzAuMiAyMS40IDQ3LjUgMzMuMiA2NC42IDkuNyAxOS4yIDUuMiAxNy44IDEuOSA1LjQgMy40IDAgMC0zLjEgMi43LTM2LjQgNS00NC43IDQuOS01Ny41IDEuNy0xNi4yIDgtMTkuNCAxNS45LTEwLjUgMTIuNCA1LjkgMTAuMiAxNC43LTEuNCA5LjUtNi4xIDM5LjUtMTEuOSA2MS45LTcuOCA0MS41IDQuNSAwIDUuMi01LjIgMjEtMjcuOCAzNS4yLTQ0LjEgMTUuNS0xNy41IDE4LjEtMTkuMyAxMS42LTkuMiAyMiAwIDE2LjIgMjQuMS03LjMgMjQuOS0yMi43IDI4LjctMTguOCAyNC40LTI3IDM2LjMtMTYuOCAyOSAxLjYgMi4zIDQtLjQgNjAuOS0xMyAzMi45LTUuOSAzOS4zLTYuNyAxNy44IDguMyAxLjkgOC40LTcgMTcuMi00MiAxMC40LTQ5LjIgOS44LTczLjMgMTcuMy0uOSAuNyAxIDEuMyAzMyAzLjEgMTQuMSAuOCAzNC42IDAgNjQuNCA0LjggMTYuOCAxMS4xIDEwLjEgMTMuNi0xLjcgMTAuNC0yNS45IDEzLjJjLTE1LjUtMy43LTU0LjQtMTIuOS0xMTYuNi0yNy43bC0yOC03LTMuOSAwIDAgMi4zIDIzLjMgMjIuOCA0Mi43IDM4LjYgNTMuNSA0OS44IDIuNyAxMi4zLTYuOSA5LjctNy4zLTEtNDctMzUuNC0xOC4xLTE1LjktNDEuMS0zNC42LTIuNyAwIDAgMy42IDkuNSAxMy45IDUwIDc1LjIgMi42IDIzLTMuNiA3LjUtMTMgNC41LTE0LjItMi42LTI5LjMtNDEuMS0zMC4yLTQ2LjMtMjQuNC00MS41LTMgMS43LTE0LjQgMTU0LjgtNi43IDcuOS0xNS41IDUuOS0xMy05LjgtNi45LTE1LjkgNi45LTMxLjUgOC4zLTQxLjEgNi43LTMyLjcgNi4xLTQwLjYgMy42LTEzLjUtLjItLjktMyAuNC0zMC42IDQyLTQ2LjUgNjIuOS0zNi44IDM5LjQtOC44IDMuNS0xNS4zLTcuOSAxLjQtMTQuMSA4LjUtMTIuNiA1MC45LTY0LjggMzAuNy00MC4yIDE5LjgtMjMuMi0uMS0zLjQtMS4yIDAtMTM1LjMgODcuOC0yNC4xIDMuMS0xMC40LTkuNyAxLjMtMTUuOSA0LjktNS4yIDQwLjctMjgtLjEgLjEgMCAuMXoiXX0sVlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob3BpZnkiLGljb246WzQ0OCw1MTIsW10sImUwNTciLCJNMzg4LjUgMTA0LjFjLS4yLTEuMS0uNy0yLjEtMS41LTIuOHMtMS44LTEuMi0yLjktMS4yYy0yIDAtMzcuMi0uOC0zNy4yLS44cy0yMS42LTIwLjgtMjkuNi0yOC44bDAgNDMyLjcgMTI1LjctMzEuMnMtNTQtMzY1LjUtNTQuNC0zNjcuOXpNMjg4LjkgNzAuNWMtMS45LTYuMS00LjMtMTEuOS03LjItMTcuNi0xMC40LTIwLTI2LTMwLjktNDQuNC0zMC45LTEuMyAwLTIuNyAuMS00IC40LS40LS44LTEuMi0xLjItMS42LTItOC04LjgtMTguNC0xMi44LTMwLjgtMTIuNC0yNCAuOC00OCAxOC02Ny4yIDQ4LjgtMTMuNiAyMS42LTI0IDQ4LjgtMjYuOCA3MC4xLTI3LjYgOC40LTQ2LjggMTQuNC00Ny4yIDE0LjgtMTQgNC40LTE0LjQgNC44LTE2IDE4LTEuMiAxMC0zOCAyOTEuOC0zOCAyOTEuOGwzMDIuNiA1Mi41IDAtNDM4LjNjLTEuNSAuMS0yLjkgLjItNC40IC40IDAgMC01LjYgMS42LTE0LjggNC40ek0yMzMuNiA4Ny43Yy0xNiA0LjgtMzMuNiAxMC40LTUwLjggMTUuNiA0LjgtMTguOCAxNC40LTM3LjYgMjUuNi01MCA0LjQtNC40IDEwLjQtOS42IDE3LjItMTIuOCA2LjggMTQuNCA4LjQgMzQgOCA0Ny4yek0yMDAuOCAyNC40YzUtLjIgMTAgMS4xIDE0LjQgMy42LTYuNCAzLjItMTIuOCA4LjQtMTguOCAxNC40LTE1LjIgMTYuNC0yNi44IDQyLTMxLjYgNjYuNS0xNC40IDQuNC0yOC44IDguOC00MiAxMi44IDguOC0zOC40IDQxLjItOTYuNCA3OC05Ny4yek0xNTQuNCAyNDQuNmMxLjYgMjUuNiA2OS4yIDMxLjIgNzMuMiA5MS43IDIuOCA0Ny42LTI1LjIgODAuMS02NS42IDgyLjUtNDguOCAzLjItNzUuNi0yNS42LTc1LjYtMjUuNmwxMC40LTQ0czI2LjggMjAuNCA0OC40IDE4LjhjMTQtLjggMTkuMi0xMi40IDE4LjgtMjAuNC0yLTMzLjYtNTcuMi0zMS42LTYwLjgtODYuOS0zLjItNDYuNCAyNy4yLTkzLjMgOTQuNS05Ny43IDI2LTEuNiAzOS4yIDQuOCAzOS4yIDQuOGwtMTUuMiA1Ny42cy0xNy4yLTgtMzcuNi02LjRjLTI5LjYgMi0zMCAyMC44LTI5LjYgMjUuNnpNMjQ5LjYgODIuOWMwLTEyLTEuNi0yOS4yLTcuMi00My42IDE4LjQgMy42IDI3LjIgMjQgMzEuMiAzNi40LTcuMiAyLTE1LjIgNC40LTI0IDcuMnoiXX0sTzhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1yZWRkaXQiLGljb246WzQ0OCw1MTIsWyJyZWRkaXQtc3F1YXJlIl0sImYxYTIiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0zMDUuOSAxNjYuNGMyMC42IDAgMzcuMy0xNi43IDM3LjMtMzcuM3MtMTYuNy0zNy4zLTM3LjMtMzcuM2MtMTggMC0zMy4xIDEyLjgtMzYuNiAyOS44LTMwLjIgMy4yLTUzLjggMjguOC01My44IDU5LjlsMCAuMmMtMzIuOCAxLjQtNjIuOCAxMC43LTg2LjYgMjUuNS04LjgtNi44LTE5LjktMTAuOS0zMi0xMC45LTI4LjkgMC01Mi4zIDIzLjQtNTIuMyA1Mi4zIDAgMjEgMTIuMyAzOSAzMC4xIDQ3LjQgMS43IDYwLjcgNjcuOSAxMDkuNiAxNDkuMyAxMDkuNnMxNDcuNi00OC45IDE0OS4zLTEwOS43YzE3LjctOC40IDI5LjktMjYuNCAyOS45LTQ3LjMgMC0yOC45LTIzLjQtNTIuMy01Mi4zLTUyLjMtMTIgMC0yMyA0LTMxLjkgMTAuOC0yNC0xNC45LTU0LjMtMjQuMi04Ny41LTI1LjRsMC0uMWMwLTIyLjIgMTYuNS00MC43IDM3LjktNDMuNyAzLjkgMTYuNSAxOC43IDI4LjcgMzYuMyAyOC43bC4yLS4yek0xNTUgMjQ4LjFjMTQuNiAwIDI1LjggMTUuNCAyNSAzNC40cy0xMS44IDI1LjktMjYuNSAyNS45LTI3LjUtNy43LTI2LjYtMjYuNyAxMy41LTMzLjUgMjguMS0zMy41bDAtLjF6bTE2Ni40IDMzLjVjLjkgMTktMTIgMjYuNy0yNi42IDI2LjdzLTI1LjYtNi45LTI2LjUtMjUuOSAxMC4zLTM0LjQgMjUtMzQuNCAyNy4zIDE0LjYgMjguMSAzMy41bDAgLjF6bS00Mi4xIDQ5LjZjLTkgMjEuNS0zMC4zIDM2LjctNTUuMSAzNi43cy00Ni4xLTE1LjEtNTUuMS0zNi43Yy0xLjEtMi42IC43LTUuNCAzLjQtNS43IDE2LjEtMS42IDMzLjUtMi41IDUxLjctMi41czM1LjYgLjkgNTEuNyAyLjVjMi43IC4zIDQuNSAzLjEgMy40IDUuN3oiXX0sVVR0PU84ZSxXVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYyIsaWNvbjpbNTEyLDUxMixbXSwiZjRlOCIsIk0yNTUuNiA4QzM5NS40IDggNTA0IDExNS45IDUwNCAyNTYgNTA0IDQwMy4yIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjEgNTA0IDggMzkzLjIgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6TTYzLjggMTg5LjFjLTcuNCAyMC40LTExLjEgNDIuNy0xMS4xIDY2LjkgMCAxMTAuOSA5Mi4xIDIwMi40IDIwMy43IDIwMi40IDEyMi40IDAgMTc3LjItMTAxLjggMTc4LjUtMTA0LjFsLTkzLjQtNDEuNmMtNy43IDM3LjEtNDEuMiA1My02OC4yIDU1LjRsMCAzOC4xLTI4LjggMCAwLTM4LjJjLTI3LjUtLjMtNTIuNi0xMC4yLTc1LjMtMjkuN2wzNC4xLTM0LjVjMzEuNyAyOS40IDg2LjQgMzEuOCA4Ni40LTIuMiAwLTYuMi0yLjItMTEuMi02LjYtMTUuMS0xNC4yLTYtMS44LS4xLTIxOS4zLTk3LjR6TTI1Ni40IDUyLjNDMjE4IDUyLjMgMTQ0IDYxIDg1LjkgMTQ1LjNsOTQuOCA0Mi41YzEwLTMxLjMgNDAuNC00Mi45IDYzLjgtNDQuM2wwLTM4LjEgMjguOCAwIDAgMzguMWMyMi43IDEuMiA0My40IDguOSA2MiAyM0wzMDMgMTk5LjdjLTQyLjctMjkuOS04My41LTgtNzAgMTEuMSA1My40IDI0LjEgNDMuOCAxOS44IDkzIDQxLjZsMTI3LjEgNTYuN2M0LjEtMTcuNCA2LjItMzUuMSA2LjItNTMuMSAwLTU3LTE5LjgtMTA1LTU5LjMtMTQzLjktMzkuMy0zOS45LTg3LjItNTkuOC0xNDMuNi01OS44eiJdfSxHVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtcmVwdWJsaWMiLGljb246WzUxMiw1MTIsW10sImY1MGMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMSAwIDQ5NiAyNDggMjQ4IDAgMSAxIDAtNDk2em0wIDE2LjVhMjMxLjUgMjMxLjUgMCAxIDAgMCA0NjIuOSAyMzEuNSAyMzEuNSAwIDEgMCAwLTQ2Mi45em0yNy42IDIxLjhsMCAyNC42YzMwLjMgNC41IDU5IDE2LjMgODMuNiAzNC41bDE3LjQtMTcuNGMtMjguNy0yMi4xLTYzLjMtMzYuOS0xMDEtNDEuOHptLTU1LjQgLjFjLTM3LjYgNC45LTcyLjIgMTkuOC0xMDAuOSA0MS45bDE3LjMgMTcuNCAuMSAwYzI0LjEtMTcuOCA1Mi42LTMwLjEgODMuNS0zNC43bDAtMjQuNXptMTIuMiA1MC4ybDAgODIuOWMtMTAgMi0xOS40IDUuOS0yNy43IDExLjRsLTU4LjYtNTguNi0yMS45IDIxLjkgNTguNyA1OC43Yy01LjUgOC4yLTkuNCAxNy42LTExLjUgMjcuNmwtODIuOSAwIDAgMzEgODIuOSAwYzIgMTAgNiAxOS4zIDExLjUgMjcuNWwtNTguNyA1OC43IDIxLjkgMjEuOSA1OC42LTU4LjZjOC40IDUuNiAxNy44IDkuNSAyNy43IDExLjVsMCA4Mi45IDMxIDAgMC04Mi45YzEwLTIgMTkuNC02LjEgMjcuNi0xMS41bDU4LjcgNTguNyAyMS45LTIxLjktNTguNy01OC43YzUuNS04LjIgOS41LTE3LjUgMTEuNS0yNy41bDgyLjkgMCAwLTMxLTgyLjkgMGMtMi0xMC02LTE5LjQtMTEuNS0yNy42bDU4LjctNTguNy0yMS45LTIxLjktNTguNyA1OC43Yy04LjItNS41LTE3LjYtOS41LTI3LjYtMTEuNWwwLTgyLjktMzEgMHptMTgzLjIgMzAuN2wtMTcuNCAxNy40YzE4LjMgMjQuNiAzMC4yIDUzLjQgMzQuNyA4My43bDI0LjYgMGMtNS0zNy43LTE5LjgtNzIuMy00MS45LTEwMXptLTMzNS42IC4xYy0yMi4xIDI4LjctMzYuOSA2My4zLTQxLjggMTAwLjlsMjQuNiAwYzQuNi0zMSAxNi44LTU5LjQgMzQuNi04My41TDg4LjIgMTI3LjR6TTQ2LjMgMjgzLjdjNC45IDM3LjYgMTkuNyA3Mi4yIDQxLjggMTAwLjlsMTcuNC0xNy40Qzg3LjcgMzQzLjEgNzUuNiAzMTQuNiA3MSAyODMuN2wtMjQuNiAwIDAgMHptMzk0LjcgMGMtNC42IDMxLTE2LjggNTkuNS0zNC43IDgzLjZsMTcuNCAxNy40YzIyLjEtMjguNyAzNy02My4zIDQxLjktMTAxbC0yNC42IDB6TTE0NC43IDQwNi40bC0xNy40IDE3LjRjMjguNyAyMi4xIDYzLjMgMzcgMTAxIDQxLjlsMC0yNC42Yy0zMS00LjYtNTkuNS0xNi44LTgzLjYtMzQuNnptMjIyLjUgMGMtMjQuMSAxNy44LTUyLjYgMzAuMS04My42IDM0LjdsMCAyNC42YzM3LjctNC45IDcyLjItMTkuOCAxMDEtNDEuOGwtMTcuMy0xNy40LS4xIDB6Il19LENiPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhY2Vib29rIixpY29uOls1MTIsNTEyLFs2MmUzXSwiZjA5YSIsIk01MTIgMjU2QzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZDMCAzNzYgODIuNyA0NzYuOCAxOTQuMiA1MDQuNWwwLTE3MC4zLTUyLjggMCAwLTc4LjIgNTIuOCAwIDAtMzMuN2MwLTg3LjEgMzkuNC0xMjcuNSAxMjUtMTI3LjUgMTYuMiAwIDQ0LjIgMy4yIDU1LjcgNi40bDAgNzAuOGMtNi0uNi0xNi41LTEtMjkuNi0xLTQyIDAtNTguMiAxNS45LTU4LjIgNTcuMmwwIDI3LjggODMuNiAwLTE0LjQgNzguMi02OS4zIDAgMCAxNzUuOUM0MTMuOCA0OTQuOCA1MTIgMzg2LjkgNTEyIDI1NnoiXX0sS1R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGxhYiIsaWNvbjpbNTEyLDUxMixbXSwiZjI5NiIsIk01MDQgMjA0LjZsLS43LTEuOC02OS43LTE4MS44Yy0xLjQtMy42LTMuOS02LjYtNy4yLTguNi0yLjQtMS42LTUuMS0yLjUtOC0yLjhzLTUuNyAuMS04LjQgMS4xLTUuMSAyLjctNy4xIDQuOGMtMS45IDIuMS0zLjMgNC43LTQuMSA3LjRsLTQ3IDE0NC0xOTAuNSAwLTQ3LjEtMTQ0Yy0uOC0yLjgtMi4yLTUuMy00LjEtNy40LTItMi4xLTQuNC0zLjctNy4xLTQuOC0yLjYtMS01LjUtMS40LTguNC0xLjFzLTUuNiAxLjItOCAyLjhjLTMuMiAyLTUuOCA1LjEtNy4yIDguNkw5LjggMjAyLjggOSAyMDQuNmMtMTAgMjYuMi0xMS4zIDU1LTMuNSA4MiA3LjcgMjYuOSAyNCA1MC43IDQ2LjQgNjcuNmwuMyAuMiAuNiAuNCAxMDYgNzkuNWMzOC41IDI5LjEgNjYuNyA1MC4zIDg0LjYgNjMuOSAzLjcgMS45IDguMyA0LjMgMTMgNC4zczkuMy0yLjQgMTMtNC4zYzE3LjktMTMuNSA0Ni4xLTM0LjkgODQuNi02My45bDEwNi43LTc5LjkgLjMtLjNjMjIuNC0xNi45IDM4LjctNDAuNiA0NS42LTY3LjUgOC42LTI3IDcuNC01NS44LTIuNi04MnoiXX0sWVR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InFxIixpY29uOls0NDgsNTEyLFtdLCJmMWQ2IiwiTTQzNC4xIDQyMC40Yy0xMS41IDEuNC00NC45LTUyLjctNDQuOS01Mi43IDAgMzEuMy0xNi4xIDcyLjItNTEgMTAxLjggMTYuOCA1LjIgNTQuOCAxOS4yIDQ1LjggMzQuNC03LjMgMTIuMy0xMjUuNSA3LjktMTU5LjYgNC0zNC4xIDMuOC0xNTIuMyA4LjMtMTU5LjYtNC05LTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNC45LTI5LjUtNTEuMS03MC40LTUxLjEtMTAxLjggMCAwLTMzLjMgNTQuMS00NC45IDUyLjctNS40LS42LTEyLjQtMjkuNiA5LjMtOTkuNyAxMC4zLTMzIDIyLTYwLjUgNDAuMS0xMDUuOC0zLjEtMTE2LjkgNDUuMi0yMTUgMTYwLjMtMjE1IDExMy43IDAgMTYzLjIgOTYuMSAxNjAuMyAyMTUgMTguMSA0NS4yIDI5LjkgNzIuOSA0MC4xIDEwNS44IDIxLjggNzAuMSAxNC43IDk5LjEgOS4zIDk5Ljd6Il19LFpUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHJpcGUiLGljb246WzY0MCw1MTIsW10sImY0MjkiLCJNMTY1IDE0NC43bC00My4zIDkuMi0uMiAxNDIuNGMwIDI2LjMgMTkuOCA0My4zIDQ2LjEgNDMuMyAxNC42IDAgMjUuMy0yLjcgMzEuMi01LjlsMC0zMy44Yy01LjcgMi4zLTMzLjcgMTAuNS0zMy43LTE1LjdsMC02My4yIDMzLjcgMCAwLTM3LjgtMzMuNyAwLS4xLTM4LjV6bTg5LjEgNTEuNmwtMi43LTEzLjEtMzguNCAwIDAgMTUzLjIgNDQuMyAwIDAtMTAzLjFjMTAuNS0xMy44IDI4LjItMTEuMSAzMy45LTkuM2wwLTQwLjhjLTYtMi4xLTI2LjctNi0zNy4xIDEzLjF6TTM0Ni40IDEyNGwtNDQuNiA5LjUgMCAzNi4yIDQ0LjYtOS41IDAtMzYuMnpNNDQuOSAyMjguM2MwLTYuOSA1LjgtOS42IDE1LjEtOS43IDEzLjUgMCAzMC43IDQuMSA0NC4yIDExLjRsMC00MS44Yy0xNC43LTUuOC0yOS40LTguMS00NC4xLTguMS0zNiAwLTYwIDE4LjgtNjAgNTAuMiAwIDQ5LjIgNjcuNSA0MS4yIDY3LjUgNjIuNCAwIDguMi03LjEgMTAuOS0xNyAxMC45LTE0LjcgMC0zMy43LTYuMS00OC42LTE0LjJsMCA0MGMxNi41IDcuMSAzMy4yIDEwLjEgNDguNSAxMC4xIDM2LjkgMCA2Mi4zLTE1LjggNjIuMy00Ny44IDAtNTIuOS02Ny45LTQzLjQtNjcuOS02My40ek02NDAgMjYxLjZjMC00NS41LTIyLTgxLjQtNjQuMi04MS40cy02Ny45IDM1LjktNjcuOSA4MS4xYzAgNTMuNSAzMC4zIDc4LjIgNzMuNSA3OC4yIDIxLjIgMCAzNy4xLTQuOCA0OS4yLTExLjVsMC0zMy40Yy0xMi4xIDYuMS0yNiA5LjgtNDMuNiA5LjgtMTcuMyAwLTMyLjUtNi4xLTM0LjUtMjYuOWw4Ni45IDBjLjItMi4zIC42LTExLjYgLjYtMTUuOXptLTg3LjktMTYuOGMwLTIwIDEyLjMtMjguNCAyMy40LTI4LjQgMTAuOSAwIDIyLjUgOC40IDIyLjUgMjguNGwtNDUuOSAwek00MzkuMiAxODAuMmMtMTcuNCAwLTI4LjYgOC4yLTM0LjggMTMuOWwtMi4zLTExLTM5LjEgMCAwIDIwNC44IDQ0LjQtOS40IC4xLTUwLjJjNi40IDQuNyAxNS45IDExLjIgMzEuNCAxMS4yIDMxLjggMCA2MC44LTIzLjIgNjAuOC03OS42IC4xLTUxLjYtMjkuMy03OS43LTYwLjUtNzkuN3pNNDI4LjYgMzAyLjdjLTEwLjQgMC0xNi42LTMuOC0yMC45LTguNGwtLjMtNjZjNC42LTUuMSAxMS04LjggMjEuMi04LjggMTYuMiAwIDI3LjQgMTguMiAyNy40IDQxLjQgLjEgMjMuOS0xMC45IDQxLjgtMjcuNCA0MS44ek0zMDEuOSAzMzYuNGw0NC42IDAgMC0xNTMuMi00NC42IDAgMCAxNTMuMnoiXX0sWFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhaWx5bW90aW9uIixpY29uOls0NDgsNTEyLFtdLCJlMDUyIiwiTTI5OC45IDI2N2MtNy40LTQuMi0xNS44LTYuMy0yNC40LTYuMi0xMy4yIDAtMjQuNCA0LjQtMzMuNCAxMy4zcy0xMy42IDIwLTEzLjYgMzMuNGMwIDE0LjEgNC40IDI1LjYgMTMuMyAzNC42czIwIDEzLjQgMzMuNCAxMy40YzEzLjcgMCAyNS00LjYgMzQuMS0xMy44UzMyMiAzMjEuMSAzMjIgMzA3LjVjMC04LjItMi4xLTE2LjMtNi4xLTIzLjUtNC03LjEtOS44LTEzLTE3LTE3ek0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zNzQuNyA0MDUuM2wtNTMuMSAwIDAtMjMuOS0uNyAwYy0xMC41IDE3LjUtMjkuMSAyNi4yLTU1LjggMjYuMi0xOC40IDAtMzQuNy00LjQtNDguOS0xMy4xLTE0LjEtOC42LTI1LjUtMjEtMzIuOS0zNS44LTcuNy0xNS4xLTExLjYtMzIuMS0xMS42LTUwLjkgMC0xOC40IDMuOS0zNS4xIDExLjgtNTAuMiA3LjUtMTQuNyAxOC45LTI3LjEgMzIuOS0zNS44IDE0LjEtOC43IDMwLTEzLjEgNDcuNy0xMy4xIDEwLjItLjEgMjAuMiAxLjYgMjkuNyA1LjIgOC45IDMuNSAxNy4yIDkuMSAyNSAxN2wwLTc3LjkgNTUuOC0xMi4xIDAgMjY0LjR6Il19LFFUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiNiIsIk01MDQgMjU2YzAgMTM3LTExMS4yIDI0OC0yNDguNCAyNDgtMTEzLjggMC0yMDkuNi03Ni4zLTIzOS0xODAuNGw5NS4yIDM5LjNjNi40IDMyLjEgMzQuOSA1Ni40IDY4LjkgNTYuNCAzOS4yIDAgNzEuOS0zMi40IDcwLjItNzMuNWw4NC41LTYwLjJjNTIuMSAxLjMgOTUuOC00MC45IDk1LjgtOTMuNSAwLTUxLjYtNDItOTMuNS05My43LTkzLjVzLTkzLjcgNDItOTMuNyA5My41bDAgMS4yLTU5LjIgODUuN2MtMTUuNS0uOS0zMC43IDMuNC00My41IDEyLjFMOCAyMzYuMUMxOC4yIDEwOC40IDEyNS4xIDggMjU1LjYgOCAzOTIuOCA4IDUwNCAxMTkgNTA0IDI1NnpNMTYzLjcgMzg0LjNsLTMwLjUtMTIuNmM1LjYgMTEuNiAxNS4zIDIwLjggMjcuMiAyNS44IDI2LjkgMTEuMiA1Ny44LTEuNiA2OS0yOC40IDUuNC0xMyA1LjUtMjcuMyAuMS00MC4zUzIxNCAzMDUuNiAyMDEgMzAwLjJjLTEyLjktNS40LTI2LjctNS4yLTM4LjktLjZsMzEuNSAxM2MxOS44IDguMiAyOS4yIDMwLjkgMjAuOSA1MC43LTguMyAxOS45LTMxIDI5LjItNTAuOCAyMXpNMzM3LjUgMTI5LjhhNjIuMyA2Mi4zIDAgMSAxIDAgMTI0LjYgNjIuMyA2Mi4zIDAgMSAxIDAtMTI0LjZ6bS4xIDEwOWE0Ni44IDQ2LjggMCAxIDAgMC05My42IDQ2LjggNDYuOCAwIDEgMCAwIDkzLjZ6Il19LEpUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ZW5tby12IixpY29uOls1MTIsNTEyLFtdLCJlODViIiwiTTQ2Ni41IDE0LjhjMTcuNCAyOC43IDI1LjMgNTguMiAyNS4zIDk1LjUgMCAxMTktMTAxLjkgMjczLjUtMTg0LjcgMzgyLjFsLTE4OC45IDAtNzUuOC00NTEuNSAxNjUuNC0xNS43IDQwLjEgMzIxLjNjMzcuNC02MC44IDgzLjYtMTU2LjMgODMuNi0yMjEuNCAwLTM1LjYtNi4xLTU5LjktMTUuNy03OS45TDQ2Ni41IDE0Ljh6Il19LEY4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzbmFwY2hhdCIsaWNvbjpbNTEyLDUxMixbNjIxMjQsInNuYXBjaGF0LWdob3N0Il0sImYyYWIiLCJNNDk3LjEgMzY2LjZjLTMuNC05LjItOS44LTE0LjEtMTcuMS0xOC4yLTEuNC0uOC0yLjYtMS41LTMuNy0xLjktMi4yLTEuMS00LjQtMi4yLTYuNi0zLjQtMjIuOC0xMi4xLTQwLjYtMjcuMy01My00NS40LTMuNS01LjEtNi42LTEwLjUtOS4xLTE2LjEtMS4xLTMtMS00LjctLjItNi4zIC44LTEuMiAxLjctMi4yIDIuOS0zIDMuOS0yLjYgOC01LjIgMTAuNy03IDQuOS0zLjIgOC44LTUuNyAxMS4yLTcuNCA5LjQtNi41IDE1LjktMTMuNSAyMC0yMS4zIDIuOS01LjQgNC41LTExLjMgNC45LTE3LjRzLS42LTEyLjItMi44LTE3LjhjLTYuMi0xNi4zLTIxLjYtMjYuNC00MC4zLTI2LjQtMy45IDAtNy45IC40LTExLjcgMS4yLTEgLjItMi4xIC41LTMuMSAuNyAuMi0xMS4yLS4xLTIyLjktMS4xLTM0LjUtMy41LTQwLjgtMTcuOC02Mi4xLTMyLjctNzkuMi05LjUtMTAuNy0yMC43LTE5LjctMzMuMi0yNi43LTIyLjYtMTIuOS00OC4yLTE5LjQtNzYuMS0xOS40cy01My40IDYuNS03NiAxOS40Yy0xMi41IDctMjMuNyAxNi4xLTMzLjMgMjYuOC0xNC45IDE3LTI5LjIgMzguNC0zMi43IDc5LjItMSAxMS42LTEuMiAyMy40LTEuMSAzNC41LTEtLjMtMi0uNS0zLjEtLjctMy45LS44LTcuOC0xLjItMTEuNy0xLjItMTguNyAwLTM0LjEgMTAuMS00MC4zIDI2LjQtMi4yIDUuNy0zLjIgMTEuOC0yLjggMTcuOHMyIDEyIDQuOSAxNy40YzQuMSA3LjggMTAuNyAxNC43IDIwIDIxLjMgMi41IDEuNyA2LjQgNC4yIDExLjIgNy40IDIuNiAxLjcgNi41IDQuMiAxMC4zIDYuNyAxLjMgLjkgMi40IDIgMy4zIDMuMyAuOCAxLjYgLjggMy40LS40IDYuNi0yLjUgNS41LTUuNSAxMC44LTguOSAxNS44LTEyLjEgMTcuNy0yOS40IDMyLjYtNTEuNCA0NC42LTExLjcgNi4yLTIzLjkgMTAuMy0yOSAyNC4zLTMuOSAxMC41LTEuMyAyMi41IDguNSAzMi42IDMuNiAzLjggNy44IDYuOSAxMi40IDkuNCA5LjYgNS4zIDE5LjggOS4zIDMwLjMgMTIuMSAyLjIgLjYgNC4zIDEuNSA2LjEgMi43IDMuNiAzLjEgMy4xIDcuOSA3LjggMTQuOCAyLjQgMy42IDUuNCA2LjcgOSA5LjEgMTAgNi45IDIxLjMgNy40IDMzLjIgNy44IDEwLjggLjQgMjMgLjkgMzYuOSA1LjUgNS44IDEuOSAxMS44IDUuNiAxOC43IDkuOSAxNi43IDEwLjMgMzkuNiAyNC4zIDc3LjggMjQuM3M2MS4zLTE0LjEgNzguMS0yNC40YzYuOS00LjIgMTIuOS03LjkgMTguNS05LjggMTMuOS00LjYgMjYuMi01LjEgMzYuOS01LjUgMTEuOS0uNSAyMy4yLS45IDMzLjItNy44IDQuMi0yLjkgNy43LTYuNyAxMC4yLTExLjIgMy40LTUuOCAzLjQtOS45IDYuNi0xMi44IDEuOC0xLjIgMy43LTIuMSA1LjgtMi42IDEwLjctMi44IDIxLTYuOSAzMC44LTEyLjIgNC45LTIuNiA5LjMtNi4xIDEzLTEwLjJsLjEtLjJjOS4yLTkuOSAxMS41LTIxLjUgNy44LTMxLjh6bS0zNCAxOC4zYy0yMC43IDExLjUtMzQuNSAxMC4yLTQ1LjMgMTcuMS05LjEgNS45LTMuNyAxOC41LTEwLjMgMjMuMS04LjEgNS42LTMyLjItLjQtNjMuMiA5LjktMjUuNiA4LjUtNDIgMzIuOC04OCAzMi44cy02Mi0yNC4zLTg4LjEtMzIuOWMtMzEtMTAuMy01NS4xLTQuMi02My4yLTkuOS02LjYtNC42LTEuMi0xNy4yLTEwLjMtMjMuMS0xMC43LTYuOS0yNC41LTUuNy00NS4zLTE3LjEtMTMuMi03LjMtNS43LTExLjgtMS4zLTEzLjkgNzUuMS0zNi40IDg3LjEtOTIuNiA4Ny43LTk2LjcgLjYtNSAxLjQtOS00LjItMTQuMS01LjQtNS0yOS4yLTE5LjctMzUuOC0yNC4zLTEwLjktNy42LTE1LjctMTUuMy0xMi4yLTI0LjYgMi41LTYuNSA4LjUtOC45IDE0LjktOC45IDIgMCA0IC4yIDYgLjcgMTIgMi42IDIzLjcgOC42IDMwLjQgMTAuMiAuOCAuMiAxLjYgLjMgMi41IC4zIDMuNiAwIDQuOS0xLjggNC42LTUuOS0uOC0xMy4xLTIuNi0zOC43LS42LTYyLjYgMi44LTMyLjkgMTMuNC00OS4yIDI2LTYzLjYgNi4xLTYuOSAzNC41LTM3IDg4LjktMzdTMzM5IDc0LjIgMzQ1IDgxLjFjMTIuNiAxNC40IDIzLjIgMzAuNyAyNiA2My42IDIuMSAyMy45IC4zIDQ5LjUtLjYgNjIuNi0uMyA0LjMgMSA1LjkgNC42IDUuOSAuOCAwIDEuNy0uMSAyLjUtLjMgNi43LTEuNiAxOC40LTcuNiAzMC40LTEwLjIgMi0uNCA0LS43IDYtLjcgNi40IDAgMTIuNCAyLjUgMTQuOSA4LjkgMy41IDkuNC0xLjIgMTctMTIuMiAyNC42LTYuNiA0LjYtMzAuNCAxOS4zLTM1LjggMjQuMy01LjYgNS4xLTQuOCA5LjEtNC4yIDE0LjIgLjUgNC4yIDEyLjUgNjAuNCA4Ny43IDk2LjcgNC40IDIuMiAxMS45IDYuNy0xLjMgMTQuMXoiXX0sZSR0PUY4ZSx0JHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtc2VuYXRlIixpY29uOls1MTIsNTEyLFtdLCJmNTBkIiwiTTI0OS45IDMzLjVsMCAyNi4xYy0xMy42IDIwLjYtMjMuOSAxMDguNi0yNC41IDIxNS4zIDExLjctMTUuNiAxOS4xLTMzLjMgMTkuMS00OC4ybDAtMTYuOWMwLTUuMyAuOC0xMC41IDIuMi0xNS42IC42LTIuMSAxLjQtNC4xIDIuNi01LjhzMy40LTMuOCA2LjctMy44IDUuNCAyLjEgNi43IDMuOGMxLjIgMS44IDIgMy43IDIuNiA1LjggMS40IDUuMSAyLjIgMTAuMyAyLjIgMTUuNmwwIDE2LjljMCAxNC45IDcuNCAzMi42IDE5LjEgNDguMi0uNi0xMDYuOC0xMC45LTE5NC43LTI0LjUtMjE1LjNsMC0yNi4xLTEyLjMgMHpNMjIzLjUgMTgxLjNjLTkuNSAyLjEtMTguNyA1LjItMjcuNSA5LjEgOC45IDE2LjEgOS44IDMyLjYgMS43IDM3LjMtOCA0LjYtMjEuOC00LjItMzEuNC0xOS44LTExLjYgOC44LTIxLjkgMTkuMy0zMC42IDMxLjEgMTQuNyA5LjYgMjIuOSAyMi45IDE4LjMgMzAuNy00LjUgNy43LTIwIDcuMS0zNS41LTEtNS44IDEzLjItOS43IDI3LjUtMTEuNiA0Mi40IDkuNyAuMiAxOC43IDIuNCAyNi4yIDYgMTcuOC0uMyAzMi44LTIgNDAuNS00LjIgNS42LTI2LjQgMjMtNDguMiA0Ni4zLTU5LjUgLjctMjUuNiAxLjktNDkuNyAzLjUtNzIuMXptNjUgMGMxLjYgMjIuNCAyLjcgNDYuNSAzLjUgNzIuMSAyMy4zIDExLjMgNDAuOCAzMy4yIDQ2LjMgNTkuNSA3LjcgMi4zIDIyLjcgMy45IDQwLjUgNC4yIDcuNS0zLjcgMTYuNS01LjggMjYuMi02LTEuOS0xNC45LTUuOS0yOS4yLTExLjctNDIuNC0xNS40IDguMS0zMC45IDguNy0zNS41IDEtNC42LTcuNyAzLjYtMjEuMSAxOC4zLTMwLjctOC43LTExLjgtMTktMjIuMy0zMC42LTMxLjEtOS41IDE1LjYtMjMuNCAyNC40LTMxLjQgMTkuOC04LjEtNC42LTcuMi0yMS4yIDEuNy0zNy4zLTguOC0zLjktMTgtNy0yNy40LTkuMXpNMjU2IDE4OS45Yy0zLjIgMC01LjkgOC44LTYuMSAxOS45bDAgMCAwIDE2LjljMCA0MS40LTQ5IDk1LTkzLjUgOTUtNTIgMC0xMjIuOC0xLjQtMTU2LjQgMjkuMmwwIDIuNWM5LjQgMTcuMSAyMC42IDMzLjIgMzMuMiA0OCAxMi41LTIxLjEgNTEuNi00MSAxMDgtNDEuNCA0NS43IDEgNzkgMjAuMyA5MC44IDQwLjkgMCAwIDAgMCAwIC4xIDcuNyAyLjEgMTUuOCAzLjIgMjQgMy4yIDguMiAwIDE2LjQtMS4xIDI0LTMuMiAwIDAgMCAwIDAtLjEgMTEuNy0yMC41IDQ1LjEtMzkuOCA5MC44LTQwLjkgNTYuNCAuNCA5NS41IDIwLjMgMTA4IDQxLjQgMTIuNi0xNC44IDIzLjgtMzAuOSAzMy4yLTQ4bDAtMi41Yy0zMy42LTMwLjYtMTA0LjQtMjkuMi0xNTYuNC0yOS4yLTQ0LjUgMC05My41LTUzLjYtOTMuNS05NWwwLTE2LjktLjEgMGMtLjItMTEuMS0yLjktMTkuOS02LjEtMTkuOXptMCAxNzcuOWE0MC42IDQwLjYgMCAxIDEgMC04MS4zIDQwLjYgNDAuNiAwIDEgMSAwIDgxLjN6bTAtNzMuNmEzMyAzMyAwIDEgMCAwIDY1LjkgMzMgMzMgMCAxIDAgMC02NS45em0wIDU5LjhhMjYuOCAyNi44IDAgMSAxIDAtNTMuNiAyNi44IDI2LjggMCAxIDEgMCA1My42em0tMTE0LjggMTNjLTEwLjIgLjEtMjEuNiAuNC0zMC41IDEuNyAuNCA0LjQgMS41IDE4LjYgNy4xIDI5LjggOS4xLTIuNiAxOC40LTMuOSAyNy42LTMuOSA0MS4zIC45IDcxLjUgMzQuNCA3OC4zIDc0LjVsLjEgNC43YzEwLjQgMS45IDIxLjIgMi45IDMyLjIgMi45IDExIDAgMjEuOC0xIDMyLjItMi45bC4xLTQuN2M2LjgtNDAuMSAzNy03My41IDc4LjMtNzQuNSA5LjMgMCAxOC41IDEuMyAyNy42IDMuOSA1LjYtMTEuMSA2LjctMjUuMyA3LjEtMjkuOC04LjktMS4zLTIwLjMtMS42LTMwLjUtMS43LTE4LjggLjQtMzUuMiA0LjItNDguNiA5LjctMTIuNSAxNi0yOS4yIDMwLTQ5LjYgMzMuMS0uMSAwLS4yIDAtLjMgMCAwIDAtLjEgMC0uMiAuMS01LjIgMS4xLTEwLjYgMS42LTE2LjIgMS42LTUuNSAwLTEwLjktLjUtMTYuMi0xLjYtLjEgMC0uMSAwLS4yLS4xLS4xIDAtLjIgMC0uMyAwLTIwLjQtMy0zNy0xNy00OS42LTMzLjEtMTMuNC01LjUtMjkuOS05LjItNDguNi05Ljd6Il19LGEkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaG9lbml4LWZyYW1ld29yayIsaWNvbjpbNjQwLDUxMixbXSwiZjNkYyIsIk0yMTIuOSAzNDQuM2MzLjgtLjEgMjIuOC0xLjQgMjUuNi0yLjItMi40LTIuNi00My42LTEtNjgtNDkuNi00LjMtOC42LTcuNS0xNy42LTYuNC0yNy42IDIuOS0yNS41IDMyLjktMzAgNTItMTguNSAzNiAyMS42IDYzLjMgOTEuMyAxMTMuNyA5Ny41IDM3IDQuNSA4NC42LTE3IDEwOC4yLTQ1LjQtLjYtLjEtLjgtLjItMS0uMS0uNCAuMS0uOCAuMi0xLjEgLjMtMzMuMyAxMi4xLTk0LjMgOS43LTEzNC43LTE0LjgtMzcuNi0yMi44LTUzLjEtNTguNy01MS44LTc0LjYgMS44LTIxLjMgMjIuOS0yMy4yIDM1LjktMTkuNiAxNC40IDMuOSAyNC40IDE3LjYgMzguOSAyNy40IDE1LjYgMTAuNCAzMi45IDEzLjcgNTEuMyAxMC4zIDE0LjktMi43IDM0LjQtMTIuMyAzNi41LTE0LjUtMS4xLS4xLTEuOC0uMS0yLjUtLjItNi4yLS42LTEyLjQtLjgtMTguNS0xLjctMTExLjItMTYuNS0xMjguOS0xNjMuNi0yNTIuNS0xNzMuMS00NC4zLTMuNC05OS40IDguMS0xMzYuMyAzNS0uOCAuNi0xLjUgMS4yLTIuMiAxLjggLjEgLjIgLjEgLjMgLjIgLjUgLjggMCAxLjYtLjEgMi40LS4yIDYuMy0xIDEyLjUtLjggMTguNyAuMyAyMy44IDQuMyA0Ny43IDIzLjEgNTUuOSA3Ni41IDUuMyAzNC4zLS43IDUwLjggOCA4Ni4xIDE5IDc3LjEgOTEgMTA3LjYgMTI3LjcgMTA2LjR6TTc1LjMgNjQuOWMtLjktMS0uOS0xLjItMS4zLTIgMTIuMS0yLjYgMjQuMi00LjEgMzYuNi00LjgtMS4xIDE0LjctMjIuMiAyMS4zLTM1LjMgNi44ek0yNzIuMiA0MTUuNGMtNDIuOCAxLjItOTItMjYuNy0xMjMuNS02MS40LTQuNi01LTE2LjgtMjAuMi0xOC42LTIzLjRsLjQtLjRjNi42IDQuMSAyNS43IDE4LjYgNTQuOCAyNyAyNC4yIDcgNDguMSA2LjMgNzEuNi0zLjMgMjIuNy05LjMgNDEtLjUgNDMuMSAyLjktMTguNSAzLjgtMjAuMSA0LjQtMjQgNy45LTUuMSA0LjQtNC42IDExLjcgNyAxNy4yIDI2LjIgMTIuNCA2My0yLjggOTcuMiAyNS40IDIuNCAyIDguMSA3LjggMTAuMSAxMC43LS4xIC4yLS4zIC4zLS40IC41LTQuOC0xLjUtMTYuNC03LjUtNDAuMi05LjMtMjQuNy0yLTQ2LjMgNS4zLTc3LjUgNi4yek00NDcgMTYzLjRjMTYuNC01LjIgNDEuMy0xMy40IDY2LjUtMy4zIDE2LjEgNi41IDI2LjIgMTguNyAzMi4xIDM0LjYgMy41IDkuNCA1LjEgMTkuNyA1LjEgMjguNy0uMiAwLS40IDAtLjYgLjEtLjItLjQtLjQtLjktLjUtMS4zLTUtMjItMjkuOS00My44LTY3LjYtMjkuOS01MC4yIDE4LjYtMTMwLjQgOS43LTE3Ni45LTQ4LS43LS45LTIuNC0xLjctMS4zLTMuMiAuMS0uMiAyLjEgLjYgMyAxLjMgMTguMSAxMy40IDM4LjMgMjEuOSA2MC4zIDI2LjIgMzAuNSA2LjEgNTQuNiAyLjkgNzkuOS01LjJ6TTU0OS43IDI4MC45Yy0zMi40IC4yLTMzLjggNTAuMS0xMDMuNiA2NC40LTE4LjIgMy43LTM4LjcgNC42LTQ0LjkgNC4ybDAtLjRjMi44LTEuNSAxNC43LTIuNiAyOS43LTE2LjYgNy45LTcuMyAxNS4zLTE1LjEgMjIuOC0yMi45IDE5LjUtMjAuMiA0MS40LTQyLjIgODEuOS0zOSAyMy4xIDEuOCAyOS4zIDguMiAzNi4xIDEyLjcgLjMgLjIgLjQgLjUgLjcgLjktLjUgMC0uNyAuMS0uOSAwLTctMi43LTE0LjMtMy4zLTIxLjgtMy4zem0tMTIuMy0yNC4xYy0uMSAuMi0uMSAuNC0uMiAuNi0yOC45LTQuNC00OC03LjktNjguNSA0LTE3IDkuOS0zMS40IDIwLjUtNjIgMjQuNC0yNy4xIDMuNC00NS4xIDIuNC02Ni4xLTgtLjMtLjItLjYtLjQtMS0uNiAwLS4yIC4xLS4zIC4xLS41IDI0LjkgMy44IDM2LjQgNS4xIDU1LjUtNS44IDIyLjMtMTIuOSA0MC4xLTI2LjYgNzEuMy0zMSAyOS42LTQuMSA1MS4zIDIuNSA3MC45IDE2Ljl6TTI2OC42IDk3LjNjLS42LS42LTEuMS0xLjItMi4xLTIuMyA3LjYgMCAyOS43LTEuMiA1My40IDguNCAxOS43IDggMzIuMiAyMSA1MC4yIDMyLjkgMTEuMSA3LjMgMjMuNCA5LjMgMzYuNCA4LjEgNC4zLS40IDguNS0xLjIgMTIuOC0xLjcgLjQtLjEgLjkgMCAxLjUgLjMtLjYgLjQtMS4yIC45LTEuOCAxLjItOC4xIDQtMTYuNyA2LjMtMjUuNiA3LjEtMjYuMSAyLjYtNTAuMy0zLjctNzMuNC0xNS40LTE5LjMtOS45LTM2LjQtMjIuOS01MS40LTM4LjZ6TTY0MCAzMzUuN2MtMy41IDMuMS0yMi43IDExLjYtNDIuNyA1LjMtMTIuMy0zLjktMTkuNS0xNC45LTMxLjYtMjQuMS0xMC03LjYtMjAuOS03LjktMjguMS04LjQgLjYtLjggLjktMS4yIDEuMi0xLjQgMTQuOC05LjIgMzAuNS0xMi4yIDQ3LjMtNi41IDEyLjUgNC4yIDE5LjIgMTMuNSAzMC40IDI0LjIgMTAuOCAxMC40IDIxIDkuOSAyMy4xIDEwLjUgLjEtLjEgLjIgMCAuNCAuNHptLTIxMi41IDEzN2MyLjIgMS4yIDEuNiAxLjUgMS41IDItMTguNS0xLjQtMzMuOS03LjYtNDYuOC0yMi4yLTIxLjgtMjQuNy00MS43LTI3LjktNDguNi0yOS43IC41LS4yIC44LS40IDEuMS0uNCAxMy4xIC4xIDI2LjEgLjcgMzguOSAzLjkgMjUuMyA2LjQgMzUgMjUuNCA0MS42IDM1LjMgMy4yIDQuOCA3LjMgOC4zIDEyLjMgMTEuMXoiXX0scyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMyIsIk0yMTYuMyAxNTguNGwtNzkuMyAwYy00MC0xMC41LTEzMC41LTcuOC0xMzAuNSA3NC44IDAgMzAuMSAxNSA1MS4yIDM1IDYxLTI1LjEgMjMtMzcgMzMuOC0zNyA0OS4yIDAgMTEgNC41IDIxLjEgMTcuOSAyNi44LTE0LjMgMTMuNC0yMi40IDIzLjEtMjIuNCA0MS40IDAgMzIuMSAyOCA1MC44IDEwMS42IDUwLjggNzAuOCAwIDExMS44LTI2LjQgMTExLjgtNzMuMiAwLTU4LjctNDUuMi01Ni41LTE1MS42LTYzbDEzLjQtMjEuNmMyNy4zIDcuNiAxMTguNyAxMCAxMTguNy02Ny45IDAtMTguNy03LjctMzEuNy0xNS00MS4xbDM3LjQtMi44IDAtMzQuNXpNMTUyLjkgNDAwLjNjMCAzMi4xLTEwNC45IDMyLjEtMTA0LjkgMi40IDAtOC4xIDUuMy0xNSAxMC42LTIxLjUgNzcuNyA1LjMgOTQuMyAzLjQgOTQuMyAxOS4xek0xMDIuMSAyNjUuN2MtNTIuOCAwLTUwLjUtNzEuMiAxLjItNzEuMiA0OS41IDAgNTAuOCA3MS4yLTEuMiA3MS4yek0yMzUuNCAzNjYuMmwwLTMyLjFjMjYuNy0zLjcgMjcuMi0yIDI3LjItMTFsMC0xMTkuNWMwLTguNS0yLjEtNy40LTI3LjItMTYuM2w0LjUtMzIuOSA4NC4yIDAgMCAxNjguN2MwIDYuNSAuNCA3LjMgNi41IDguMWwyMC43IDIuOCAwIDMyLjEtMTE1LjkgMHptNTIuNS0yNDQuM2MtMjMuMiAwLTM2LjYtMTMuNC0zNi42LTM2LjZzMTMuNC0zNS44IDM2LjYtMzUuOGMyMy42IDAgMzcgMTIuNiAzNyAzNS44cy0xMy40IDM2LjYtMzcgMzYuNnpNNTEyIDM1MC41Yy0xNy41IDguNS00My4xIDE2LjMtNjYuMyAxNi4zLTQ4LjQgMC02Ni43LTE5LjUtNjYuNy02NS41bDAtMTA2LjVjMC01LjQgMS00LjEtMzEuNy00LjFsMC0zNi4yYzM1LjgtNC4xIDUwLTIyIDU0LjUtNjYuM2wzOC42IDBjMCA2NS44LTEuMyA2MS44IDMuMyA2MS44bDU3LjMgMCAwIDQwLjYtNjAuNiAwIDAgOTcuMWMwIDYuOS00LjkgNTEuNCA2MC42IDI2LjhsMTEgMzUuOHoiXX0saSR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wdGluLW1vbnN0ZXIiLGljb246WzU3Niw1MTIsW10sImYyM2MiLCJNNTcyLjggNDIxLjRjNS42LTkuNSA0LjctMTUuMi01LjQtMTEuNi0zLTQuOS03LTkuNS0xMS4xLTEzLjggMi45LTkuNy0uNy0xNC4yLTEwLjgtOS4yLTQuNi0zLjItMTAuMy02LjUtMTUuOS05LjIgMC0xNS4xLTExLjYtMTEuNi0xNy42LTUuNy0xMC40LTEuNS0xOC43LS4zLTI2LjggNS43IC4zLTYuNSAuMy0xMyAuMy0xOS43IDEyLjYgMCA0MC4yLTExIDQ1LjktMzYuMiAxLjQtNi44IDEuNi0xMy44LS4zLTIxLjktMy0xMy41LTE0LjMtMjEuMy0yNS4xLTI1LjctLjgtNS45LTcuNi0xNC4zLTE0LjktMTUuOXMtMTIuNCA0LjktMTQuMSAxMC4zYy04LjUgMC0xOS4yIDIuOC0yMS4xIDguNC01LjQtLjUtMTEuMS0xLjQtMTYuOC0xLjkgMi43LTEuOSA1LjQtMy41IDguNC00LjYgNS40LTkuMiAxNC42LTExLjQgMjUuNy0xMS42bDAtMi44YzE5LjUtLjUgNDMtNS45IDUzLjgtMTguMSAxMi43LTEzLjggMTQuNi0zNy4zIDEyLjQtNTUuMS0yLjQtMTcuMy05LjctMzcuNi0yNC42LTQ4LjEtOC40LTUuOS0yMS42LS44LTIyLjcgOS41LTIuMiAxOS42IDEuMiAzMC0zOC42IDI1LjEtMTAuMy0yMy44LTI0LjYtNDQuNi00Mi43LTYwLTY5LjYtNTkuNy0xNjcuNy01My44LTI0NC4yLTM3LjYgMTkuNyA0LjYgNDEuMSA4LjYgNTkuNyAxNi41LTI2LjIgMi40LTUyLjcgMTEuMy03Ni4yIDIzLjItMzIuOCAxNy00NCAyOS45LTU2LjcgNDIuNCAxNC45LTIuMiAyOC45LTUuMSA0My44LTMuOC05LjcgNS40LTE4LjQgMTIuMi0yNi41IDIwLTI1LjggLjktMjMuOC01LjMtMjYuMi0yNS45LTEuMS0xMC41LTE0LjMtMTUuNC0yMi43LTkuNy0yOC4xIDE5LjktMzMuNSA3OS45LTEyLjIgMTAzLjUgMTAuOCAxMi4yIDM1LjEgMTcuMyA1NC45IDE3LjgtLjMgMS4xLS4zIDEuOS0uMyAyLjcgMTAuOCAuNSAxOS41IDIuNyAyNC42IDExLjYgMyAxLjEgNS43IDIuNyA4LjEgNC42LTUuNCAuNS0xMS4xIDEuNC0xNi41IDEuOS0zLjMtNi42LTEzLjctOC4xLTIxLjEtOC4xLTEuNi01LjctNi41LTEyLjItMTQuMS0xMC4zLTYuOCAxLjktMTQuMSAxMC0xNC45IDE1LjktMjIuNSA5LjUtMzAuMSAyNi44LTI1LjEgNDcuNiA1LjMgMjQuOCAzMyAzNi4yIDQ1LjkgMzYuMmwwIDE5LjdjLTYuNi01LTE0LjMtNy41LTI2LjgtNS43LTUuNS01LjUtMTcuMy0xMC4xLTE3LjMgNS43LTUuOSAyLjctMTEuNCA1LjktMTUuOSA5LjItOS44LTQuOS0xMy42LTEuNy0xMS4xIDkuMi00LjEgNC4zLTcuOCA4LjYtMTEuMSAxMy44LTEwLjItMy43LTExIDIuMi01LjQgMTEuNi0xLjEgMy41LTEuNiA3LTEuOSAxMC44LS41IDMxLjYgNDQuNiA2NCA3My41IDY1LjEgMTcuMyAuNSAzNC42LTguNCA0My0yMy41IDExMy4yIDQuOSAyMjYuNyA0LjEgMzQwLjIgMCA4LjEgMTUuMSAyNS40IDI0LjMgNDIuNyAyMy41IDI5LjItMS4xIDc0LjMtMzMuNSA3My41LTY1LjEgLjItMy43LS43LTcuMi0xLjctMTAuN3pNNDk5IDE2Ny40YzEuMS0zIDIuNC04LjQgMi40LTE0LjYgMC01LjkgNi44LTguMSAxNC4xLS44IDExLjEgMTEuNiAxNC45IDQwLjUgMTMuOCA1MS4xLTQuMS0xMy42LTEzLTI5LTMwLjMtMzUuN3ptLTQuNiA2LjdjMTkuNSA2LjIgMjguNiAyNy42IDI5LjcgNDguOS0xLjEgMi43LTMgNS40LTQuOSA3LjYtNS43IDUuOS0xNS40IDEwLTI2LjIgMTIuMiA0LjMtMjEuMyAuMy00Ny4zLTEyLjctNjMgNC45LS44IDEwLjktMi40IDE0LjEtNS43em0tMjQuMSA2LjhjMTMuOCAxMS45IDIwIDM5LjIgMTQuMSA2My41LTQuMSAuNS04LjEgLjgtMTEuNiAuOC0xLjktMjEuOS02LjgtNDQtMTQuMy02NC42IDMuNyAuMyA4LjEgLjMgMTEuOCAuM3pNNDcuNyAyMDNjLTEuMS0xMC41IDIuNC0zOS41IDEzLjgtNTEuMSA3LTcuMyAxNC4xLTUuMSAxNC4xIC44IDAgNi4yIDEuNCAxMS42IDIuNCAxNC42LTE3LjMgNi44LTI2LjIgMjIuMi0zMC4zIDM1Ljd6bTkuNyAyNy42Yy0xLjktMi4yLTMuNS00LjktNC45LTcuNiAxLjQtMjEuMyAxMC4zLTQyLjcgMjkuNy00OC45IDMuMiAzLjIgOS4yIDQuOSAxNC4xIDUuNy0xMyAxNS43LTE3IDQxLjYtMTIuNyA2My0xMC44LTIuMi0yMC41LTYtMjYuMi0xMi4yem00Ny45IDE0LjZjLTQuMSAwLTguMS0uMy0xMi43LS44LTQuNi0xOC42LTEuOS0zOC45IDUuNC01M2wwIC4zIDEyLjItNS4xYzQuOS0xLjkgOS43LTMuOCAxNC45LTQuOS0xMC43IDE5LjctMTcuNCA0MS4zLTE5LjggNjMuNXptMTg0LTEwLjVhNzYuMSA3Ni4xIDAgMSAxIDAtMTUyLjIgNzYuMSA3Ni4xIDAgMSAxIDAgMTUyLjJ6bTExNS42IDIyLjFjLS4zIDE3LjgtNyA0OC45LTIzIDU3LTEzLjIgNi42LTYuNS03LjUtMTYuNS01OC4xIDEzLjMgLjMgMjYuNiAuMyAzOS41IDEuMXptLTU0LTEuNmMuOCA0LjkgMy44IDQwLjMtMS42IDQxLjktMTEuNiAzLjUtNDAgNC4zLTUxLjEtMS4xLTQuMS0zLTQuNi0zNS45LTQuMy00MS4xbDAgLjNjMTguOS0uMyAzOC4xLS4zIDU3IDB6TTI3OC41IDMwOWMtMTMgMy41LTQxLjYgNC4xLTU0LjYtMS42LTYuNS0yLjctMy44LTQyLjQtMS45LTUxLjYgMTkuMi0uNSAzOC40LS41IDU3LjgtLjhsMCAuM2MxLjEgOC4zIDMuMyA1MS4yLTEuMyA1My43ek0xNzIgMjU3LjljMTIuMi0uOCAyNC42LTEuNCAzNi44LTEuNi0yLjQgMTUuNC0zIDQzLjUtNC45IDUyLjItMS4xIDYuOC00LjMgNi44LTkuNyA0LjMtMjEuOS05LjgtMjcuNi0zNS4yLTIyLjItNTQuOXptLTM1LjQgMzEuM2M3LjgtMS4xIDE1LjctMS45IDIzLjUtMi43IDEuNiA2LjIgMy44IDExLjkgNyAxNy42IDEwIDE3IDQ0IDM1LjcgNDUuMSA3IDYuMiAxNC45IDQwLjggMTIuMiA1NC45IDEwLjggMTUuNy0xLjQgMjMuOC0xLjQgMjYuOC0xNC4zIDEyLjQgNC4zIDMwLjggNC4xIDQ0IDMgMTEuMy0uOCAyMC44LS41IDI0LjYtOC45IDEuMSA1LjEgMS45IDExLjYgNC42IDE2LjggMTAuOCAyMS4zIDM3LjMgMS40IDQ2LjgtMzEuNiA4LjYgLjggMTcuNiAxLjkgMjYuNSAyLjctLjQgMS4zLTMuOCA3LjMgNy4zIDExLjYtNDcuNiA0Ny05NS43IDg3LjgtMTYzLjIgMTA3LTYzLjItMjAuOC0xMTIuMS01OS41LTE1NS45LTEwNi41IDkuNi0zLjQgMTAuNC04LjggOC0xMi41ek0xMTUgNDYxLjdjLTMuOCAxNy44LTIxLjkgMjkuNy0zOS43IDI4LjktMTkuMi0uOC00Ni41LTE3LTU5LjItMzYuNS0yLjctMzEuMSA0My44LTYxLjMgNjYuMi01NC42IDE0LjkgNC4zIDI3LjggMzAuOCAzMy41IDU0IDAgMy0uMyA1LjctLjggOC4yem0tOC43LTY2Yy0uNS0xMy41LS41LTI3LS4zLTQwLjVsLjMgMGMyLjctMS42IDUuNy0zLjggNy44LTYuNSA2LjUtMS42IDEzLTUuMSAxNS4xLTkuMiAzLjMtNy4xLTctNy41LTUuNC0xMi40IDIuNy0xLjEgNS43LTIuMiA3LjgtMy41IDI5LjIgMjkuMiA1OC42IDU2LjUgOTcuMyA3Ny0zNi44IDExLjMtNzIuNCAyNy42LTEwNS45IDQ3LTEuMi0xOC42LTcuNy0zNS45LTE2LjctNTEuOXptMzM3LjYgNjQuNmMtMTAzIDMuNS0yMDYuMiA0LjEtMzA5LjQgMCAwIC4zIDAgLjMtLjMgLjNsMC0uMyAuMyAwYzM1LjEtMjEuNiA3Mi4yLTM5LjIgMTEyLjQtNTAuOCAxMS42IDUuMSAyMyA5LjUgMzQuOSAxMy4yIDIuMiAuOCAyLjIgLjggNC4zIDAgMTQuMy00LjEgMjguNC05LjIgNDIuMi0xNS40IDQxLjUgMTEuNyA3OC44IDMxLjcgMTE1LjYgNTN6bTEwLjUtMTIuNGMtMzUuOS0xOS41LTczLTM1LjktMTExLjktNDcuNiAzOC4xLTIwIDcxLjktNDcuMyAxMDMuNS03Ni43IDIuMiAxLjQgNC42IDIuNCA3LjYgMy4yIDAgLjggLjMgMS45IC41IDIuNC00LjYgMi43LTcuOCA2LjItNS45IDEwLjMgMi4yIDMuOCA4LjYgNy42IDE1LjEgOC45IDIuNCAyLjcgNS4xIDUuMSA4LjEgNi44IDAgMTMuOC0uMyAyNy42LS44IDQxLjNsLjMtLjNjLTkuMyAxNS45LTE1LjUgMzctMTYuNSA1MS43em0xMDUuOSA2LjJjLTEyLjcgMTkuNS00MCAzNS43LTU5LjIgMzYuNS0xOS4zIC45LTQwLjUtMTMuMi00MC41LTM3IDUuNy0yMy4yIDE4LjktNDkuNyAzMy41LTU0IDIyLjctNi45IDY5LjIgMjMuNCA2Ni4yIDU0LjV6TTM3My4xIDc1LjJjLTMuOC03Mi4xLTEwMC44LTc5LjctMTI2LTIzLjUgNDQuNi0yNC4zIDkwLjMtMTUuNyAxMjYgMjMuNXpNNzUgNDA3LjFjLTE1LjcgMS42LTQ5LjUgMjUuNC00OS41IDQzLjIgMCAxMS42IDE1LjcgMTkuNSAzMi4yIDE0LjkgMTIuMi0zLjIgMzEuMS0xNy42IDM1LjktMjcuMyA2LTExLjYtMy43LTMyLjctMTguNi0zMC44ek0yOTAuOSAyMzAuOWMyOC42IDAgNTEuOS0yMS42IDUxLjktNDguNCAwLTM2LjEtNDAuNS01OC4xLTcyLjItNDQuMyA5LjUgMyAxNi41IDExLjYgMTYuNSAyMS42IDAgMjMuMy0zMy4zIDMyLTQ2LjUgMTEuMy03LjMgMzQuMSAxOS40IDU5LjggNTAuMyA1OS44ek02OC4yIDQ3NC4xYy41IDYuNSAxMi4yIDEyLjcgMjEuNiA5LjUgNi44LTIuNyAxNC42LTEwLjUgMTcuMy0xNi4yIDMtNy0xLjEtMjAtOS43LTE4LjQtOC45IDEuNi0yOS43IDE2LjctMjkuMiAyNS4xem00MzMuMi02N2MtMTQuOS0xLjktMjQuNiAxOS4yLTE4LjkgMzAuOCA0LjkgOS43IDI0LjEgMjQuMSAzNi4yIDI3LjMgMTYuNSA0LjYgMzIuMi0zLjIgMzIuMi0xNC45IDAtMTcuOC0zMy44LTQxLjYtNDkuNS00My4yek00NzkgNDQ5Yy04LjQtMS42LTEyLjQgMTEuMy05LjUgMTguNCAyLjQgNS43IDEwLjMgMTMuNSAxNy4zIDE2LjIgOS4yIDMuMiAyMS4xLTMgMjEuMy05LjUgLjktOC40LTIwLjItMjMuNS0yOS4xLTI1LjF6Il19LHIkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqZW5raW5zIixpY29uOls0NDgsNTEyLFtdLCJmM2I2IiwiTTQ1NS40IDQyNWMtMS40LTExLjItMTktMjMuMS0yOC4yLTMxLjktNS4xLTUtMjktMjMuMS0zMC40LTI5LjktMS40LTYuNiA5LjctMjEuNSAxMy4zLTI4LjkgNS4xLTEwLjcgOC44LTIzLjcgMTEuMy0zMi42IDE4LjgtNjYuMSAyMC43LTE1Ni45LTYuMi0yMTEuMi0xMC4yLTIwLjYtMzguNi00OS01Ni40LTYyLjUtNDItMzEuNy0xMTkuNi0zNS4zLTE3MC4xLTE2LjYtMTQuMSA1LjItMjcuOCA5LjgtNDAuMSAxNy4xLTMzLjEgMTkuNC02OC4zIDMyLjUtNzguMSA3MS42LTI0LjIgMTAuOC0zMS41IDQxLjgtMzAuMyA3Ny44IC4yIDcgNC4xIDE1LjggMi43IDIyLjQtLjcgMy4zLTUuMiA3LjYtNi4xIDkuOC0xMS42IDI3LjctMi4zIDY0IDExLjEgODMuNyA4LjEgMTEuOSAyMS41IDIyLjQgMzkuMiAyNS4yIC43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42LTIxLjEgMTIuNS0zNi40IDIwLjMtNTUuOSAzNC4zLTEyLjYgOS0zMi4zIDEwLjItMjkuMiAzMS4xIDIuMSAxNC4xIDEwLjEgMzEuNiAxNC43IDQ1LjggLjcgMiAxLjQgNC4xIDIuMSA2bDQyMiAwYzQuOS0xNS4zIDkuNy0zMC45IDE0LjYtNDcuMiAzLjQtMTEuNCAxMC4yLTI3LjggOC43LTM5Ljd6TTE3NC4yIDMzLjdjMS44LS41IDMuNCAuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40IC43LTE3LjcgNi0yOC4zIDcuNSAxMy42LTI5LjkgNTYuMS01NCA4OS4zLTYzLjR6TTY5LjQgMTI3LjNjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43IC4zLTI4LjMtMzQuOC00Ni4zLTYxLjMtMjkuNi0xLjgtMjEuNS00LjktNTEuNyA5LjgtNjcuOHptMzYuNyAyMDAuMmMtMS00LjEtMi43LTEyLjktMi4zLTE1LjEgMS42LTguNyAxNy4xLTEyLjUgMTEtMjQuNy0xMS4zLS4xLTEzLjggMTAuMi0yNC4xIDExLjMtMjYuNyAyLjYtNDUuNi0zNS40LTQ0LjQtNTguNCAxLTE5LjUgMTcuNi0zOC4yIDQwLjEtMzUuOCAxNiAxLjggMjEuNCAxOS4yIDI0LjUgMzQuNyA5LjIgLjUgMjIuNS0uNCAyNi45LTcuNi0uNi0xNy41LTguOC0zMS42LTguMi00Ny43IDEtMzAuMyAxNy41LTU3LjYgNC44LTg3LjQgMTMuNi0zMC45IDUzLjUtNTUuMyA4My4xLTcwIDM2LjYtMTguMyA5NC45LTMuNyAxMjkuMyAxNS44IDE5LjcgMTEuMSAzNC40IDMyLjcgNDguMyA1MC43LTE5LjUtNS44LTM2LjEgNC4yLTMzLjEgMjAuMyAxNi4zLTE0LjkgNDQuMi0uMiA1Mi41IDE2LjQgNy45IDE1LjggNy44IDM5LjMgOSA2Mi44IDIuOSA1Ny0xMC40IDExNS45LTM5LjEgMTU3LjEtNy43IDExLTE0LjEgMjMtMjQuOSAzMC42LTI2IDE4LjItNjUuNCAzNC43LTk5LjIgMjMuNC00NC43LTE1LTY1LTQ0LjgtODkuNS03OC44IC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMSAuNi0xNi41em0tMTcuMi0yMGMtMTYuOCAuOC0yNi0xLjItMzguMy0xMC44IC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTE5NC4zIDQzOC42Yy0xMS42LS43LTQ4LjEtMTQtMzguNS0yMy43IDkuNCA2LjUgMjcuNSA0LjkgNDEuMyA3LjMgLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek0yNiA0OTcuMWMtNC4zLTEyLjctOS4yLTI1LjEtMTQuOC0zNi45IDMwLjgtMjMuOCA2NS4zLTQ4LjkgMTAyLjItNjMuNSAyLjgtMS4xIDIzLjIgMjUuNCAyNi4yIDI3LjYgMTYuNSAxMS43IDM3IDIxIDU2LjIgMzAuMiAxLjIgOC44IDMuOSAyMC4yIDguNyAzNS41IC43IDIuMyAxLjQgNC43IDIuMiA3LjJsLTE4MC43IDAgMC0uMXptMjQwLjYgNS43bC0uOCAwYy4zLS4yIC41LS40IC44LS41bDAgLjV6bTcuNS01LjdjMi4xLTEuNCA0LjMtMi44IDYuNC00LjMgMS4xIDEuNCAyLjIgMi44IDMuMiA0LjNsLTkuNiAwem0xNS4xLTI0LjdjLTEwLjggNy4zLTIwLjYgMTguMy0zMy4zIDI1LjItNiAzLjMtMjcgMTEuNy0zMy40IDEwLjItMy42LS44LTMuOS01LjMtNS40LTkuNS0zLjEtOS0xMC4xLTIzLjQtMTAuOC0zNy0uOC0xNy4yLTIuNS00NiAxNi00Mi40IDE0LjkgMi45IDMyLjMgOS43IDQzLjkgMTYuMSA3LjEgMy45IDExLjEgOC42IDIxLjkgOS41LS4xIDEuNC0uMSAyLjgtLjIgNC4zLTUuOSAzLjktMTUuMyAzLjgtMjEuOCA3LjEgOS41IC40IDE3IDIuNyAyMy41IDUuOS0uMSAzLjQtLjMgNy0uNCAxMC42em01My40IDI0LjdsLTE0IDBjLS4xLTMuMi0yLjgtNS44LTYuMS01LjhzLTUuOSAyLjYtNi4xIDUuOGwtMTcuNCAwYy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkgLjggMTQuMiAxMS43IDI1LjQgMTFsLS42IDEyLjZ6bTguNyAwYy4yLTQgLjQtNy44IC42LTExLjUgMTUuNi03LjMgMjkgMS4zIDM1LjcgMTEuNWwtMzYuMyAwem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFsLTI3LjkgMGMuNi0xLjEgMS4yLTIuMiAxLjktMy4zLTIuNi02LjEtOS04LjctMTAuOS0xNS41IDEyLjEtMjIuNyA2LjUtOTMuNC0yNC4yLTc4LjUgNC4zLTYuMyAxNS42LTExLjUgMjAuOC0xOS4zIDEzIDEwLjQgMjAuOCAyMC4zIDMzLjIgMzEuNCA2LjggNiAyMCAxMy4zIDIxLjQgMjMuMSAuOCA1LjUtMi42IDE4LjktMy44IDI1LjF6TTE5MC41IDEzMC41YzUuNC0xNC45IDI3LjItMzQuNyA0NS0zMiA3LjcgMS4yIDE4IDguMiAxMi4yIDE3LjctMzAuMi03LTQ1LjIgMTIuNi01NC40IDMzLjEtOC4xLTItNC45LTEzLjEtMi44LTE4Ljh6bTE4NC4xIDYzLjFjOC4yLTMuNiAyMi40LS43IDI5LjYtNS4zLTQuMi0xMS41LTEwLjMtMjEuNC05LjMtMzcuNyAuNSAwIDEgMCAxLjQgLjEgNi44IDE0LjIgMTIuNyAyOS4yIDIxLjQgNDEuNy01LjcgMTMuNS00My42IDI1LjQtNDMuMSAxLjJ6bS05Ni44IDIuN2MtNi44LTEwLjktMTktMzIuNS0xNC41LTQ1LjMgNi41IDExLjkgOC42IDI0LjQgMTcuOCAzMy4zIDQuMSA0IDEyLjIgOSA4LjIgMjAuMi0uOSAyLjctNy44IDguNi0xMS43IDkuNy0xNC40IDQuMy00Ny45IC45LTM2LjYtMTcuMSAxMS45IC43IDI3LjkgNy44IDM2LjgtLjh6bTI3LjMgNzBjMy44IDYuNiAxLjQgMTguNyAxMi4xIDIwLjYgMjAuMiAzLjQgNDMuNi0xMi4zIDU4LjEtMTcuOCA5LTE1LjItLjgtMjAuNy04LjktMzAuNS0xNi42LTIwLTM4LjgtNDQuOC0zOC03NC43IDYuNy00LjkgNy4zIDcuNCA4LjIgOS43IDguNyAyMC4zIDMwLjQgNDYuMiA0Ni4zIDYzLjUgMy45IDQuMyAxMC4zIDguNCAxMSAxMS4yIDIuMSA4LjItNS40IDE4LTQuNSAyMy41LTIxLjcgMTMuOS00NS44IDI5LjEtODEuNCAyNS42LTcuNC02LjctMTAuMy0yMS40LTIuOS0zMS4xem0tMjAxLjMtOS4yYy02LjgtMy45LTguNC0yMS0xNi40LTIxLjQtMTEuNC0uNy05LjMgMjIuMi05LjMgMzUuNS03LjgtNy4xLTkuMi0yOS4xLTMuNS00MC4zLTYuNi0zLjItOS41IDMuNi0xMy4xIDUuOSA0LjctMzQuMSA0OS44LTE1LjggNDIuMyAyMC4zem0yOTkuNiAyOC44Yy0xMC4xIDE5LjItMjQuNCA0MC40LTU0IDQxLS42LTYuMi0xLjEtMTUuNiAwLTE5LjQgMjIuNy0yLjIgMzYuNi0xMy43IDU0LTIxLjZ6TTI2MS41IDI5OC4zYzE4LjkgOS45IDUzLjYgMTEgNzkuMyAxMC4yIDEuNCA1LjYgMS4zIDEyLjYgMS40IDE5LjQtMzMgMS44LTcyLTYuNC04MC43LTI5LjZ6TTM1My43IDM0NWMtMS43IDQuMy01LjMgOS4zLTkuOCAxMS4xLTEyLjEgNC45LTQ1LjYgOC43LTYyLjQtLjMtMTAuNy01LjctMTcuNS0xOC41LTIzLjQtMjYtMi44LTMuNi0xNi45LTEyLjktLjItMTIuOSAxMy4xIDMyLjcgNTggMjkgOTUuOCAyOC4xeiJdfSxvJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2xpZGVzaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNyIsIk0xODcuOSAxNTMuN2MtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43czYxLjctMjYgNjEuNy01Ny43YzAtMzItMjcuNy01Ny43LTYxLjctNTcuN3ptMTQzLjQgMGMtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43IDM0LjMgMCA2MS43LTI2IDYxLjctNTcuNyAuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjMgMC0xOTguM2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdMNzYuOCAwYy0yNS40IDAtNDYgMjIuMy00NiA0OS43bDAgMTk4LjNjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3Mi01Ni4zIDE5MS43IDEzNy40IDIyMi4zIDEzNC4zIDEyNC4xIDAtLjcgLjMtNTYuNiAuMy05Ni42IDUuMSAxLjEgOS40IDIuMyAxMy43IDMuMSAwIDM5LjcgLjMgOTIuOCAuMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhsMC0xOTIuNGMwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43bDMxNy43IDBjMzAuMyAwIDQwLjkgMTIuOSA0MC45IDQ1LjdsMCAxOTAuNi0uMSAweiJdfSxuJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwMiIsIk00MTQuMSAzMkwzMy45IDMyQzE1LjIgMzIgMCA0Ny4yIDAgNjUuOUwwIDQ0NmMwIDE4LjggMTUuMiAzNCAzMy45IDM0TDQxNCA0ODBjMTguNyAwIDMzLjktMTUuMiAzMy45LTMzLjlsMC0zODAuMkM0NDggNDcuMiA0MzIuOCAzMiA0MTQuMSAzMnpNMjM3LjYgMzkxLjFDMTYzIDM5OC42IDk2LjQgMzQ0LjIgODguOSAyNjkuNmw5NC40IDAgMCAyMC40YzAgMy43IDMgNi44IDYuOCA2LjhsNjcuOSAwYzMuNyAwIDYuOC0zIDYuOC02LjhsMC02Ny45YzAtMy43LTMtNi44LTYuOC02LjhsLTY3LjkgMGMtMy43IDAtNi44IDMtNi44IDYuOGwwIDIwLjQtOTQuNCAwYzctNjkuNCA2NS40LTEyMi4yIDEzNS4xLTEyMi4yczEyOC4xIDUyLjggMTM1LjEgMTIyLjJjNy41IDc0LjUtNDYuOSAxNDEuMS0xMjEuNSAxNDguNnoiXX0sbCR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpZ2l0YWwtb2NlYW4iLGljb246WzUxMiw1MTIsW10sImYzOTEiLCJNODcgNDgxLjhsNzMuNyAwIDAtNzMuNi03My43IDAgMCA3My42ek0yNS40IDM0Ni42bDAgNjEuNiA2MS42IDAgMC02MS42LTYxLjYgMHpNNDkxLjYgMTc2LjlDNDY4LjYgMTAyLjcgNDA5LjIgNDMuNiAzMzUgMjAuMyAxNjQuOS0zMi44IDggOTMuNyA4IDI1NS45bDk1LjggMGMwLTEwMS44IDEwMS0xODAuNSAyMDguMS0xNDEuNyAzOS43IDE0LjMgNzEuNSA0Ni4xIDg1LjggODUuNyAzOS4xIDEwNy0zOS43IDIwNy44LTE0MS40IDIwOGwwIC4zLS4zIDAgMCA5NS44YzE2Mi42IDAgMjg4LjgtMTU2LjggMjM1LjYtMzI3LjF6bS0yMzUuMyAyMzFsMC05NS4zLTk1LjYgMCAwIDk1LjYgOTUuMyAwIDAtLjMgLjMgMHoiXX0sYyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvdW5kY2xvdWQiLGljb246WzY0MCw1MTIsW10sImYxYmUiLCJNNjQwLjIgMjk4LjZjLTEuMyAyMy4xLTExLjUgNDQuOC0yOC40IDYwLjVzLTM5LjIgMjQuNC02Mi4zIDI0LjFsLTIxOCAwYy00LjggMC05LjQtMi0xMi44LTUuNHMtNS4zLTgtNS4zLTEyLjhsMC0yMzQuOGMtLjItNCAuOS04IDMuMS0xMS40czUuMy02LjEgOS03LjdjMCAwIDIwLjEtMTMuOSA2Mi4zLTEzLjkgMjUuOCAwIDUxLjEgNi45IDczLjMgMjAuMSAxNy4zIDEwLjIgMzIuMyAyMy44IDQ0LjEgNDAuMXMyMCAzNC44IDI0LjIgNTQuNGM3LjUtMi4xIDE1LjMtMy4yIDIzLjEtMy4yIDExLjctLjEgMjMuMyAyLjIgMzQuMiA2LjdzMjAuNSAxMS4zIDI4LjcgMTkuNyAxNC42IDE4LjMgMTguOSAyOS4zIDYuMyAyMi42IDUuOSAzNC4zem0tMzU0LTE1My41Yy4xLTEgMC0yLS4zLTIuOXMtLjgtMS44LTEuNS0yLjYtMS41LTEuMy0yLjQtMS43Yy0xLjgtLjgtNC0uOC01LjggMC0uOSAuNC0xLjcgMS0yLjQgMS43cy0xLjIgMS42LTEuNSAyLjYtLjQgMS45LS4zIDIuOWMtNiA3OC45LTEwLjYgMTUyLjkgMCAyMzEuNiAuMiAxLjcgMSAzLjMgMi4zIDQuNSAyLjYgMi40IDYuOCAyLjQgOS40IDAgMS4zLTEuMiAyLjEtMi44IDIuMy00LjUgMTEuMy03OS40IDYuNi0xNTIgMC0yMzEuNmwuMiAwem0tNDQgMjcuM2MtLjItMS44LTEuMS0zLjUtMi40LTQuN3MtMy4xLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC43Yy03LjkgNjcuOS03LjkgMTM2LjUgMCAyMDQuNCAuMyAxLjggMS4yIDMuNCAyLjUgNC41czMuMSAxLjggNC44IDEuOCAzLjUtLjYgNC44LTEuOCAyLjItMi44IDIuNS00LjVjOC44LTY3LjggOC44LTEzNi41IC4xLTIwNC40bC4xIDB6bS00NC4zLTYuOWMtLjItMS44LTEtMy40LTIuMy00LjZzLTMtMS44LTQuOC0xLjgtMy41IC43LTQuOCAxLjgtMi4xIDIuOC0yLjMgNC42Yy02LjcgNzItMTAuMiAxMzkuMyAwIDIxMS4xIDAgMS45IC43IDMuNyAyLjEgNXMzLjEgMi4xIDUgMi4xIDMuNy0uNyA1LTIuMSAyLjEtMy4xIDIuMS01YzEwLjUtNzIuOCA3LjMtMTM4LjIgLjEtMjExLjFsLS4xIDB6bS00NCAyMC42YzAtMS45LS44LTMuOC0yLjEtNS4ycy0zLjItMi4xLTUuMi0yLjEtMy44IC44LTUuMiAyLjEtMi4xIDMuMi0yLjEgNS4yYy04LjEgNjMuMy04LjEgMTI3LjUgMCAxOTAuOCAuMiAxLjggMSAzLjQgMi40IDQuNnMzLjEgMS45IDQuOCAxLjkgMy41LS43IDQuOC0xLjkgMi4yLTIuOCAyLjQtNC42YzguOC02My4zIDguOS0xMjcuNSAuMy0xOTAuOGwtLjEgMHptLTQ0LjUgNDcuNmMwLTEuOS0uOC0zLjgtMi4xLTUuMXMtMy4yLTIuMS01LjEtMi4xLTMuOCAuOC01LjEgMi4xLTIuMSAzLjItMi4xIDUuMWMtMTAuNSA0OS4yLTUuNSA5My45IC40IDE0My42IC4zIDEuNiAxLjEgMy4xIDIuMyA0LjJzMi44IDEuNyA0LjUgMS43IDMuMi0uNiA0LjUtMS43IDIuMS0yLjUgMi4zLTQuMmM2LjYtNTAuNCAxMS42LTk0LjEgLjQtMTQzLjZ6bS00NC4xLTcuNWMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC44Yy05LjMgNTAuMi02LjIgOTQuNCAuMyAxNDQuNSAuNyA3LjYgMTMuNiA3LjUgMTQuNCAwIDcuMi01MC45IDEwLjUtOTMuOCAuMy0xNDQuNWwtLjIgMHpNMjAuNyAyNTAuOGMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4zIDIuOS0yLjQgNC44Yy04LjUgMzMuNy01LjkgNjEuNiAuNiA5NS40IC4yIDEuNyAxIDMuMyAyLjMgNC40czIuOSAxLjggNC43IDEuOCAzLjQtLjYgNC43LTEuOCAyLjEtMi43IDIuMy00LjRjNy41LTM0LjUgMTEuMi02MS44IC40LTk1LjRsLS4yIDB6Il19LGQkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZmlnbWEiLGljb246WzQ0OCw1MTIsW10sImU3ZTQiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTczLjcgOTZjLTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDIxIDEwLjggMzkuNCAyNy4yIDUwLjEtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjFzMTAuOCAzOS41IDI3LjIgNTAuMWMtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjEgMCAzMy4xIDI3LjEgNTkuOCA2MC4xIDU5LjggMzMuMiAwIDYwLjYtMjYuOSA2MC42LTYwLjNsMC01NS43YzEwLjYgOS44IDI0LjggMTUuOCA0MC40IDE1LjhsMS4xIDBjMzMgMCA1OS44LTI2LjggNTkuOC01OS44IDAtMjEtMTAuOC0zOS41LTI3LjItNTAuMSAxNi40LTEwLjcgMjcuMi0yOS4xIDI3LjItNTAuMSAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjhMMTczLjcgOTZ6bTQxLjYgMjE5LjhsMCAzOS45YzAgMjIuNi0xOC42IDQxLTQxLjMgNDEtMjIuNCAwLTQwLjctMTguMi00MC43LTQwLjUgMC0yMi4zIDE4LjEtNDAuNCA0MC4zLTQwLjRsNDEuNyAwem0wLTEwMC4zbDAgODAuOS00MS43IDBjLTIyLjMtLjEtNDAuMy0xOC4yLTQwLjMtNDAuNSAwLTIyLjMgMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDB6bTYwLjggMGMyMi4zIDAgNDAuNSAxOC4xIDQwLjUgNDAuNXMtMTguMSA0MC41LTQwLjUgNDAuNWwtMS4xIDBjLTIyLjMgMC00MC40LTE4LjEtNDAuNC00MC41czE4LjEtNDAuNSA0MC40LTQwLjVsMS4xIDB6bS02MC44LTE5LjNsLTQxLjYgMGMtMjIuMyAwLTQwLjUtMTguMS00MC41LTQwLjRzMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDAgMCA4MC45em02MC44LTgwLjljMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNC00MC41IDQwLjRsLTQxLjUgMCAwLTgwLjkgNDEuNSAweiJdfSx1JHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6TTE0NS43IDIyMWMxMy04My45IDgwLjUtOTUuNyAxMDguOS05NS43IDk5LjggMCAxMjcuNSA4Mi41IDEyNy41IDEzNC4yIDAgNjMuNi00MSAxMzIuOS0xMjguOSAxMzIuOS0zOC45IDAtOTkuMS0yMC0xMDkuNC05N2w2Mi41IDBjMS41IDMwLjEgMTkuNiA0NS4yIDU0LjUgNDUuMiAyMy4zIDAgNTgtMTguMiA1OC04Mi44IDAtODIuNS00OS4xLTgwLjYtNTYuNy04MC42LTMzLjEgMC01MS43IDE0LjYtNTUuOCA0My44bDE4LjIgMC00OS4yIDQ5LjItNDktNDkuMiAxOS40IDB6Il19LHAkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWUiLGljb246WzUxMiw1MTIsW10sImYyNjgiLCJNMCAyNTZjMC00Ni42IDEyLjUtOTAuNCAzNC4zLTEyOC45TDE0NC4xIDMxOC4zYzIxLjkgMzkuMiA2My44IDY1LjcgMTExLjkgNjUuNyAxNC4zIDAgMjcuMS0yLjMgNDAuOC02LjZMMjIwLjUgNTA5LjZDOTUuOSA0OTIuMyAwIDM4NS4zIDAgMjU2em0zNjUuMSA2NS42YzEyLjMtMTkuMiAxOC45LTQyLjUgMTguOS02NS42IDAtMzguMi0xNi44LTcyLjUtNDMuMy05NmwxNTIuNyAwYzEyIDI5LjYgMTguNiA2Mi4xIDE4LjYgOTYgMCAxNDEuNC0xMTQuNiAyNTUuMS0yNTYgMjU2TDM2NS4xIDMyMS42ek00NzcuOCAxMjhMMjU2IDEyOGMtNjIuOSAwLTExMy43IDQ0LjEtMTI1LjUgMTAyLjdMNTQuMiA5OC41QzEwMSAzOC41IDE3NCAwIDI1NiAwIDM1MC44IDAgNDMzLjUgNTEuNSA0NzcuOCAxMjh6TTM0NCAyNTZhODggODggMCAxIDEgLTE3NiAwIDg4IDg4IDAgMSAxIDE3NiAweiJdfSxoJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHJhZGUtZmVkZXJhdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMyIsIk0yNTYgOC44YTI0Ny4yIDI0Ny4yIDAgMSAwIDAgNDk0LjQgMjQ3LjIgMjQ3LjIgMCAxIDAgMC00OTQuNHptMCAxMS42YTIzNS42IDIzNS42IDAgMSAxIDAgNDcxLjIgMjM1LjYgMjM1LjYgMCAxIDEgMC00NzEuMnpNNDExLjEgMTYzLjFsMC00Ni44LTE5My44IDAgMCA4MS43LTE1NS4xIDAgMzYuNyA0NiAxMTcuNyAwIDAgMTk2LjggNDguOCAwIDAtMTk1LjggODMuMyAwIDAtNDctODMuMyAwIDAtMzQuOCAxNDUuNyAwIDAtLjF6bS03My4zIDQ1LjFsMCAyMy45LTgyLjkgMCAwIDE5Ny40LTI2LjggMCAwLTE5Ny40LTEyMy44IDAtMjAuMS0yMy45IDE0My45IDAgMC04MC42IDE3MS44IDAgMCAyNC40LTE0NSAwIDAgNTYuMiA4Mi45IDB6bS0xNjEuMy02OWwtMTIuNC0yMC43IDIuMSAyMy44LTIzLjUgNS40IDIzLjMgNS40LTIuMSAyNCAxMi4zLTIwLjUgMjIuMiA5LjUtMTUuNy0xOC4xIDE1LjgtMTguMS0yMiA5LjN6bS0yOS42LTE5LjdsOS4zLTExLjUtMTIuNyA1LjktOC0xMi40IDEuNyAxMy45LTE0LjMgMy44IDEzLjcgMi43LS44IDE0LjcgNi44LTEyLjIgMTMuOCA1LjMtOS41LTEwLjJ6TTMxMi4zIDI2NC43bC0xMy4xIDUuNi03LjMtMTIuMiAxLjMgMTQuMi0xMy45IDMuMiAxMy45IDMuMi0xLjIgMTQuMiA3LjMtMTIuMiAxMy4xIDUuNS05LjQtMTAuNyA5LjMtMTAuOHptMTA2LjktNzcuMmwtMjAuOSA5LjEtMTItMTkuNiAyLjIgMjIuNy0yMi4zIDUuNCAyMi4yIDQuOS0xLjggMjIuOSAxMS41LTE5LjYgMjEuMiA4LjgtMTUuMS0xNyAxNS0xNy42ek0yNTYgMjkuOWEyMjYuMSAyMjYuMSAwIDEgMCAwIDQ1Mi4yIDIyNi4xIDIyNi4xIDAgMSAwIDAtNDUyLjJ6TTM1MC42IDE5NmwwIDUxLTgzLjMgMCAwIDE5NS43LTUyLjcgMCAwLTE5Ni44LTExNi43IDAtNDAtNDkuOSAxNTcuNCAwIDAtODEuNiAxOTcuOCAwIDAgNTAuNy0xNDUuNyAwIDAgMzAuOSA4My4yIDB6TTI1NiA0My4yYzYwLjMgMCAxMTQuOCAyNSAxNTMuNiA2NS4ybC0xOTkuMSAwIDAgODEuNi0xNTcuNCAwQzgxLjEgMTA0LjggMTYxLjQgNDMuMiAyNTYgNDMuMnptMCA0MjcuMWMtMTE3LjkgMC0yMTMuNi05NS42LTIxMy42LTIxMy41IDAtMjEuMiAzLjEtNDEuOCA4LjktNjEuMWw0My44IDU2LjMgMTE0LjcgMCAwIDE5Ni44IDY0LjYgMCAwLTE5NS44IDgzLjMgMCAwLTYyLjctODMuMiAwIDAtMTkuMiAxNDUuNiAwIDAtNTAuOGMzMC44IDM3IDQ5LjMgODQuNiA0OS4zIDEzNi41IC4xIDExNy45LTk1LjUgMjEzLjUtMjEzLjQgMjEzLjV6TTE4Ni44IDI3NWwtMTEtMjEuNCAxLjcgMjQuNS0yMy43IDMuOSAyMy44IDUuOS0zLjcgMjMuOCAxMy0yMC45IDIxLjUgMTAuOC0xNS44LTE4LjggMTYuOS0xNy4xLTIyLjcgOS4zeiJdfSxmJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmFhZGluIixpY29uOls0NDgsNTEyLFtdLCJmNDA4IiwiTTIyNC41IDE0MC43QzIyNiAxMjMuMSAyMjkuNCA4OCAyNzQuMyA4OGw5OC42IDBjMjAuNyAwIDMyLjEtNy44IDMyLjEtMjEuNmwwLTEyLjNjMC0xMi4yIDkuMy0yMi4xIDIxLjUtMjIuMVM0NDggNDEuOSA0NDggNTQuMWwwIDM2LjVjMCA0Mi45LTIxLjUgNjItNjYuOCA2MmwtMTAwLjUgMGMtMzAuMSAwLTMzIDE0LjctMzMgMjcuMSAwIDEuMy0uMSAyLjUtLjIgMy43LS43IDEyLjMtMTAuOSAyMi4yLTIzLjQgMjIuMnMtMjIuNy05LjgtMjMuNC0yMi4yYy0uMS0xLjItLjItMi40LS4yLTMuNyAwLTEyLjMtMy0yNy4xLTMzLTI3LjFsLTEwMC43IDBDMjEuNSAxNTIuNiAwIDEzMy41IDAgOTAuNkwwIDU0LjFDMCA0MS45IDkuNCAzMiAyMS42IDMyczIxLjUgOS45IDIxLjUgMjIuMWwwIDEyLjNDNDMuMSA4MC4yIDU0LjUgODggNzUuMiA4OGw5OC42IDBjNDQuOCAwIDQ4LjMgMzUuMSA0OS44IDUyLjdsLjkgMHpNMjI0IDQ1NmMxMS41IDAgMjEuNC03IDI1LjctMTYuMyAxLjEtMS44IDk3LjEtMTY5LjYgOTguMi0xNzEuNCAxMS45LTE5LjYtMy4yLTQ0LjMtMjcuMi00NC4zLTEzLjkgMC0yMy4zIDYuNC0yOS44IDIwLjNMMjI0IDM2MiAxNTcuMSAyNDQuM2MtNi40LTEzLjktMTUuOS0yMC4zLTI5LjgtMjAuMy0yNCAwLTM5LjEgMjQuNi0yNy4yIDQ0LjMgMS4xIDEuOSA5Ny4xIDE2OS42IDk4LjIgMTcxLjQgNC4zIDkuMyAxNC4yIDE2LjMgMjUuNyAxNi4zeiJdfSxtJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGV2aWFudGFydCIsaWNvbjpbMzIwLDUxMixbXSwiZjFiZCIsIk0zMjAgOTMuMmwtOTguMiAxNzkuMSA3LjQgOS41IDkwLjggMCAwIDEyNy43LTE2MC45IDAtMTMuNSA5LjItNDMuNyA4NGMtLjMgMC04LjYgOC42LTkuMiA5LjJsLTkyLjcgMCAwLTkzLjIgOTMuMi0xNzkuNC03LjQtOS4yLTg1LjggMCAwLTEyNy42IDE1NiAwIDEzLjUtOS4yIDQzLjctODRjLjMgMCA4LjYtOC42IDkuMi05LjJsOTcuNiAwIDAgOTMuMXoiXX0sWDM9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkaXVtIixpY29uOls0NDgsNTEyLFs2MjQwNywibWVkaXVtLW0iXSwiZjIzYSIsIk0zNjkuNCAzMmM0My40IDAgNzguNiAzNS4yIDc4LjYgNzguNmwwIDgzLjhjLTEuOS0uMS0zLjgtLjItNS43LS4ybC0uNCAwYy0xMCAwLTIyLjMgMi40LTMxLjEgNi44LTEwIDQuNi0xOC43IDExLjUtMjYgMjAuNi0xMS44IDE0LjYtMTguOSAzNC4zLTIwLjYgNTYuNC0uMSAuNy0uMSAxLjMtLjIgMnMtLjEgMS4yLS4xIDEuOWMtLjEgMS4yLS4xIDIuNC0uMSAzLjYgMCAxLjktLjEgMy44IDAgNS44IDEuMiA1MC4xIDI4LjIgOTAuMiA3Ni4zIDkwLjIgMi43IDAgNS4zLS4xIDcuOS0uNGwwIDIwLjRjMCA0My40LTM1LjIgNzguNi03OC42IDc4LjZMNzguNiA0ODBDMzUuMiA0ODAgMCA0NDQuOCAwIDQwMS40TDAgMTEwLjZDMCA2Ny4yIDM1LjIgMzIgNzguNiAzMmwyOTAuOCAwek04Mi4zIDEzOC45bC4zIC4xYzEzLjIgMyAxOS44IDcuNCAxOS44IDIzLjRsMCAxODcuMmMwIDE2LTYuNyAyMC40LTE5LjkgMjMuNGwtLjMgLjEgMCAyLjggNTIuOCAwIDAtMi44LS4zLS4xYy0xMy4yLTMtMTkuOS03LjQtMTkuOS0yMy40bDAtMTc2LjMgODYuMSAyMDIuNSA0LjkgMCA4OC42LTIwOC4yIDAgMTg2LjZjLTEuMSAxMi42LTcuOCAxNi41LTE5LjcgMTkuMmwtLjMgLjEgMCAyLjcgOTEuOSAwIDAtMi43LS4zLS4xYy0xMS45LTIuNy0xOC43LTYuNi0xOS45LTE5LjJsLS4xLTE5MS44IC4xIDBjMC0xNiA2LjctMjAuNCAxOS45LTIzLjRsLjMtLjEgMC0yLjctNzIuMiAwLTY3IDE1Ny40LTY3LTE1Ny40LTc3LjggMCAwIDIuN3pNNDQ4IDM0MC4zYy0yNS4xLTcuNC00My0zNS4xLTQxLjItNjcuOGwwIDAgNDEuMSAwIDAgNjcuOHptLTYuNC0xMzUuNmMyLjMgMCA0LjQgLjMgNi40IC45bDAgNTcuNC00MC4yIDBjMS41LTMzLjYgMTMuNi01Ny45IDMzLjgtNTguM3oiXX0sZyR0PVgzLGIkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuY2FydCIsaWNvbjpbNjQwLDUxMixbXSwiZjIzZCIsIk0zMzEuOCA0NDAuNGE0NS44IDQ1LjggMCAxIDEgOTEuNSAuMyA0NS44IDQ1LjggMCAxIDEgLTkxLjUtLjN6TTE2OS40IDM5NC45YTQ1LjcgNDUuNyAwIDEgMCAuMyA5MS4zIDQ1LjcgNDUuNyAwIDEgMCAtLjMtOTEuM3ptMjkxLjctMjcwYy0zMDIuMiAwLTM3OS4yLTEyLjgtNDYxLjEtOTkuMiAzNC40IDUxLjcgNTMuMyAxNDguOSAzNzMuMSAxNDQuMiAzMzMuMy01IDEzMCA4Ni4xIDcwLjggMTg4LjkgMTg2LjctMTY2LjcgMzE5LjQtMjMzLjkgMTcuMi0yMzMuOXoiXX0sdiR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InktY29tYmluYXRvciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzYiIsIk00NDggMzJsMCA0NDgtNDQ4IDAgMC00NDggNDQ4IDB6TTIzNiAyODcuNWw3Ny41LTE0NS41LTMyLjcgMC00NS44IDkxYy00LjcgOS4zLTkgMTguMy0xMi44IDI2LjhsLTEyLjItMjYuOC00NS4yLTkxLTM1IDAgNzYuNyAxNDMuOCAwIDk0LjUgMjkuNSAwIDAtOTIuOHoiXX0seCR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmUiLGljb246WzUxMiw1MTIsW10sImYzYzAiLCJNMzExIDE5Ni44bDAgODEuM2MwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTEuMyAwLTIuNC0uNy0zLTEuNUwyNTQgMjMwIDI1NCAyNzguMmMwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTIuMSAwLTMuNy0xLjYtMy43LTMuN2wwLTgxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43bDEyLjkgMGMxLjEgMCAyLjQgLjYgMyAxLjZsMzcuMyA1MC4zIDAtNDguMmMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMTMgMGMyLjEtLjEgMy44IDEuNiAzLjggMy41bDAgLjF6bS05My43LTMuN2wtMTMgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMTMgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC04MS4zYzAtMS45LTEuNi0zLjctMy43LTMuN3ptLTMxLjQgNjguMWwtMzUuNiAwIDAtNjQuNGMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTEzIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAxIC4zIDEuOCAxIDIuNSAuNyAuNiAxLjUgMSAyLjUgMWw1Mi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjMC0xLjktMS42LTMuNy0zLjUtMy43bC4xIDB6bTE5My43LTY4LjFsLTUyLjMgMGMtMS45IDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDEuOSAxLjYgMy43IDMuNyAzLjdsNTIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzLjFjMC0yLjEtMS42LTMuNy0zLjctMy43bC0zNS41IDAgMC0xMy42IDM1LjUgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xMy4xYzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMzUuNSAwIDAtMTMuNyAzNS41IDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjLS4xLTEuOS0xLjctMy43LTMuNy0zLjdsLjEgMHpNNTEyIDkzLjRsMCAzMjZjLS4xIDUxLjItNDIuMSA5Mi43LTkzLjQgOTIuNmwtMzI2IDBDNDEuNCA1MTEuOS0uMSA0NjkuOCAwIDQxOC42bDAtMzI2Qy4xIDQxLjQgNDIuMi0uMSA5My40IDBsMzI2IDBjNTEuMiAuMSA5Mi43IDQyLjEgOTIuNiA5My40ek00NDEuNiAyMzMuNWMwLTgzLjQtODMuNy0xNTEuMy0xODYuNC0xNTEuM1M2OC44IDE1MC4xIDY4LjggMjMzLjVjMCA3NC43IDY2LjMgMTM3LjQgMTU1LjkgMTQ5LjMgMjEuOCA0LjcgMTkuMyAxMi43IDE0LjQgNDIuMS0uOCA0LjctMy44IDE4LjQgMTYuMSAxMC4xczEwNy4zLTYzLjIgMTQ2LjUtMTA4LjJjMjctMjkuNyAzOS45LTU5LjggMzkuOS05My4xbDAtLjJ6Il19LHkkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWlsaWEiLGljb246WzQ0OCw1MTIsW10sImYzNmQiLCJNMjQwLjIgMzJjLTYxLjkgMC0xMzEuNSAxNi45LTE4NC4yIDU1LjQtNS4xIDMuMS05LjEgOS4yLTcuMiAxOS40IDEuMSA1LjEgNS4xIDI3LjQgMTAuMiAzOS42IDQuMSAxMC4yIDE0LjIgMTAuMiAyMC4zIDYuMSAzMi41LTIyLjMgOTYuNS00Ny43IDE1Mi4zLTQ3LjcgNTcuOSAwIDU4LjkgMjguNCA1OC45IDczLjFsMCAzOC41QzIwMy4xIDIyNy43IDc4LjMgMjUxIDQ2LjggMjY0LjIgMTEuMyAyODAuNSAxNi40IDM1Ny43IDE2LjQgMzc2UzMxLjYgNDgwIDE0MS4zIDQ4MGM0Ny44IDAgMTEzLjctMjAuNyAxNTMuMy00Mi4xbDAgMjUuNGMwIDMgMi4xIDguMiA2LjEgOS4xIDMuMSAxIDUwLjcgMiA1OS45IDJzNjIuNSAuMyA2Ni41LS43YzQuMS0xIDUuMS02LjEgNS4xLTkuMWwwLTI5Ni42Yy0uMS04MC4zLTU3LjktMTM2LTE5Mi0xMzZ6bTUwLjIgMzQ4Yy0yMS40IDEzLjItNDguNyAyNC40LTc5LjEgMjQuNC01Mi44IDAtNTguOS0zMy41LTU5LTQ0LjcgMC0xMi4yLTMtNDIuNyAxOC4zLTUyLjkgMjQuMy0xMy4yIDc1LjEtMjkuNCAxMTkuOC0zMy41bDAgMTA2Ljd6Il19LHckdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhc3ltbWV0cmlrIixpY29uOls1NzYsNTEyLFtdLCJmMzcyIiwiTTUxNy41IDMwOS4yYzM4LjgtNDAgNTguMS04MCA1OC41LTExNi4xIC44LTY1LjUtNTkuNC0xMTguMi0xNjkuNC0xMzUtMTI4LjctMTkuNy0yODguNSAxNS41LTQwNi42IDgyLjQgNTItMjYuNSAxMTAuNi00OC4yIDE3MC43LTU4LjIgNzQuNS0yMC41IDE1My0yNS40IDIyMS4zLTE0LjggMTUyLjUgMjMuOCAxOTYuOCAxMjcuNSA5OC44IDIzMS43LTEwLjIgMTAuOC0yMiAyMS4xLTM1IDMwLjZMMzA0LjkgMTAzLjQgMTE0LjcgMzg4LjljLTY1LjYtMjkuNC03Ni41LTkwLjItMTkuMS0xNTEuMiAyMC44LTIyLjIgNDguMy00MS45IDc5LjUtNTguMSAyMC0xMi4yIDM5LjctMjIuNiA2Mi0zMC43LTY1LjEgMjAuMy0xMjIuNyA1Mi45LTE2MS42IDkyLjktMjcuNyAyOC42LTQxLjQgNTcuMS00MS43IDgyLjktLjUgMzUuMSAyMy40IDY1LjEgNjguNCA4M2wtMzQuNSA1MS43IDEwMS42IDAgMjItMzQuNGMyMi4yIDEgNDUuMyAwIDY4LjYtMi43bC0yMi44IDM3LjEgMTM1LjUgMC0zMi42LTUzLjFjMTguNi01LjMgMzYuOS0xMS41IDU0LjUtMTguN2w0NS45IDcxLjggMTAxLjYgMC03My40LTExMC40YzE4LjUtMTIuMSAzNS0yNS41IDQ4LjktMzkuOHpNMzI5LjkgMzg5LjdsLTI1LTQwLjYtMzIuNyA1My4zYy0yMy40IDMuNS00Ni43IDUuMS02OS4yIDQuNGwxMDEuOS0xNTkuMyA3OC43IDEyM2MtMTcuMiA3LjQtMzUuMyAxMy45LTUzLjcgMTkuMnoiXX0sayR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBoYWJyaWNhdG9yIixpY29uOls1MTIsNTEyLFtdLCJmM2RiIiwiTTMzMS4xIDI2Mi4xbC0uMS0xM3MyMS43LTE5LjggMjEuMS0yMS4ybC05LjUtMjBjLS42LTEuNC0yOS41LS41LTI5LjUtLjVsLTkuNC05LjNzLjItMjguNS0xLjItMjkuMWwtMjAuMS05LjJjLTEuNC0uNi0yMC43IDIxLTIwLjcgMjFsLTEzLjEtLjJzLTIwLjUtMjEuNC0yMS45LTIwLjhsLTIwIDguM2MtMS40IC41IC4yIDI4LjkgLjIgMjguOWwtOS4xIDkuMXMtMjkuMi0uOS0yOS43IC40TDE2MCAyMjYuM2MtLjYgMS40IDIxIDIxIDIxIDIxbC4xIDEyLjlTMTU5LjQgMjgwIDE2MCAyODEuNGw5LjUgMjBjLjYgMS40IDI5LjUgLjUgMjkuNSAuNWw5LjQgOS4zcy0uMiAzMS44IDEuMiAzMi4zbDIwLjEgOC4zYzEuNCAuNiAyMC43LTIzLjUgMjAuNy0yMy41bDEzLjEgLjJzMjAuNSAyMy44IDIxLjggMjMuM2wyMC03LjVjMS40LS42LS4yLTMyLjEtLjItMzIuMWw5LjEtOS4xczI5LjIgLjkgMjkuNy0uNWw4LjEtMTkuOGMuNy0xLjEtMjAuOS0yMC43LTIwLjktMjAuN3ptLTQ0LjktOC43Yy43IDE3LjEtMTIuOCAzMS42LTMwLjEgMzIuNHMtMzIuMS0xMi41LTMyLjgtMjkuNiAxMi44LTMxLjYgMzAuMS0zMi4zYzE3LjMtLjggMzIuMSAxMi41IDMyLjggMjkuNXptMjAxLjItMzcuOWwtOTctOTctLjEgLjFjLTc1LjEtNzMuMy0xOTUuNC03Mi44LTI2OS44IDEuNi01MC45IDUxLTI3LjggMjcuOS05NS43IDk1LjMtMjIuMyAyMi4zLTIyLjMgNTguNyAwIDgxIDY5LjkgNjkuNCA0Ni40IDQ2IDk3LjQgOTdsLjEtLjFjNzUuMSA3My4zIDE5NS40IDcyLjkgMjY5LjgtMS42IDUxLTUwLjkgMjcuOS0yNy45IDk1LjMtOTUuMyAyMi4zLTIyLjMgMjIuMy01OC43IDAtODF6TTM2My41IDE0OC4yYTE1Mi4zIDE1Mi4zIDAgMSAxIC0yMTUgMjE1LjYgMTUyLjMgMTUyLjMgMCAxIDEgMjE1LTIxNS42eiJdfSxTJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYm90cyIsaWNvbjpbNjQwLDUxMixbXSwiZTM0MCIsIk04Ni4zIDE5Ny44Yy04LS4xLTE1LjkgMS43LTIzLjEgNS4xcy0xMy41IDguNi0xOC40IDE0LjlsMC02MS45YzAtMi4yLS45LTQuMy0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTI4LjQgMGMtMi4yIDAtNC4zIC45LTUuOCAyLjRTMCAxNTMuOCAwIDE1NkwwIDMzMy42YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNyAxLjcgMS40IDIuNyAxLjggMi4xIC42IDMuMSAuNmwyOC40IDBjMS4xIDAgMi4xLS4yIDMuMS0uNnMxLjktMSAyLjctMS44IDEuNC0xLjcgMS44LTIuNyAuNi0yLjEgLjYtMy4xbDAtOC4xYzExLjYgMTMuNCAyNS45IDE5LjggNDEuNiAxOS44IDM0LjYgMCA2MS45LTI2LjIgNjEuOS03My44IDAtNDUuOS0yNy03My42LTYxLjktNzMuNnpNNzEuNSAzMDUuN2MtOS42IDAtMjEuMi00LjktMjYuNy0xMi41bDAtNDNjNS41LTcuNiAxNy4yLTEyLjggMjYuNy0xMi44IDE3LjcgMCAzMS4xIDEzLjEgMzEuMSAzNCAwIDIxLjItMTMuNCAzNC4zLTMxLjEgMzQuM3ptMTU2LjQtNTlhMTcuNCAxNy40IDAgMSAwIDAgMzQuOCAxNy40IDE3LjQgMCAxIDAgMC0zNC44em00Ni4xLTkwbDAtNDQuN2MyLjgtMS4yIDUuMi0zLjMgNi42LTZzMS45LTUuOCAxLjMtOC45LTIuMi01LjctNC42LTcuNy01LjQtMy04LjQtMy02LjEgMS4xLTguNCAzLTQgNC43LTQuNiA3LjctLjEgNi4xIDEuMyA4LjkgMy44IDQuOCA2LjYgNmwwIDQ0LjdjLTI4IDEuMy01NC40IDEzLjYtNzMuNiAzNC4xcy0yOS41IDQ3LjctMjguOCA3NS44IDEyLjMgNTQuNyAzMi40IDc0LjMgNDcgMzAuNiA3NS4xIDMwLjYgNTUtMTEgNzUuMS0zMC42IDMxLjctNDYuMyAzMi40LTc0LjMtOS43LTU1LjMtMjguOC03NS44LTQ1LjUtMzIuOC03My42LTM0LjF6bTg2IDEwNy40YzAgMzAuNS00MC44IDU1LjMtOTEuMSA1NS4zcy05MS4xLTI0LjctOTEuMS01NS4zIDQwLjgtNTUuMyA5MS4xLTU1LjMgOTEuMSAyNC43IDkxLjEgNTUuM2wwIDB6bS01MC4yIDE3LjRjMy40IDAgNi44LTEgOS43LTIuOXM1LjEtNC42IDYuNC03LjggMS43LTYuNyAxLTEwLjEtMi4zLTYuNS00LjgtOC45LTUuNS00LjEtOC45LTQuOC02LjktLjMtMTAuMSAxLTUuOSAzLjUtNy44IDYuNC0yLjkgNi4yLTIuOSA5LjdjMCA0LjYgMS44IDkgNS4xIDEyLjNzNy43IDUuMSAxMi4zIDUuMWwwIDB6bTI3MC45LTMxYy0xNC44LTIuNi0yMi40LTMuOC0yMi40LTkuOSAwLTUuNSA3LjMtOS45IDE3LjctOS45IDEyLjIgLjEgMjQuMiAzLjYgMzQuNSAxMC4xIDEuOCAxLjIgNCAxLjYgNi4yIDEuMXM0LTEuNyA1LjEtMy42Yy4xLS4xIC4xLS4yIC4yLS4zbDguNi0xNC45YzEuMS0xLjkgMS40LTQuMSAuOC02LjFzLTEuOS0zLjktMy43LTVjLTE1LjctOS40LTMzLjctMTQuMy01Mi0xNC4xLTM5IDAtNjAuMiAyMS41LTYwLjIgNDYuMiAwIDM2LjMgMzMuNyA0MS45IDU3LjYgNDUuNiAxMy40IDIuMyAyNC4xIDQuNCAyNC4xIDExIDAgNi40LTUuNSAxMC44LTE4LjkgMTAuOC0xMy42IDAtMzEtNi4yLTQyLjYtMTMuNi0uOS0uNi0xLjktMS0zLTEuMnMtMi4xLS4yLTMuMiAuMS0yLjEgLjctMi45IDEuMy0xLjYgMS40LTIuMiAyLjNjMCAuMS0uMSAuMS0uMSAuMmwtMTAuMiAxNi45Yy0xLjEgMS44LTEuNCA0LTEgNnMxLjcgMy45IDMuNSA1YzE1LjIgMTAuMyAzNy43IDE2LjcgNTkuNCAxNi43IDQwLjQgMCA2NC0xOS44IDY0LTQ2LjUgMC0zOC4xLTM1LjUtNDMuOS01OS4zLTQ4LjN6bS05NS45IDYwLjhjLS41LTItMS44LTMuNy0zLjYtNC44cy0zLjktMS41LTUuOS0xLjFjLTEuNCAuMy0yLjggLjQtNC4yIC40LTcuOCAwLTEyLjUtNi4xLTEyLjUtMTQuMmwwLTUxLjIgMjAuMyAwYzIuMiAwIDQuMi0uOSA1LjgtMi40czIuNC0zLjYgMi40LTUuOGwwLTIyLjdjMC0yLjItLjktNC4yLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjAuMyAwIDAtMzAuMmMwLTIuMi0uOS00LjItMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yOC4yIDBjLTIuMiAwLTQuMiAuOS01LjggMi40cy0yLjQgMy42LTIuNCA1LjhsMCAzMC4yLTE1LjEgMGMtMS4xIDAtMi4xIC4yLTMuMSAuNnMtMS45IDEtMi42IDEuOC0xLjQgMS43LTEuOCAyLjYtLjYgMi0uNiAzLjFsMCAyMi43YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNiAxLjcgMS40IDIuNiAxLjggMiAuNiAzLjEgLjZsMTUuMSAwIDAgNjMuN2MwIDI3IDE1LjQgNDEuMyA0My45IDQxLjMgMTIuMiAwIDIxLjQtMi4yIDI3LjYtNS40IDEuNi0uOCAyLjktMi4yIDMuNy0zLjlzLjktMy42IC41LTUuNGwtNS0xOS4zeiJdfSxfJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjFjYSIsIk0zODQgMjU0LjdsMCA1Mi4xYy0xOC40IDQuMi0zNi45IDYuMS01Mi4xIDYuMS0zNi45IDc3LjQtMTAzIDE0My44LTEyNS4xIDE1Ni4yLTE0IDcuOS0yNy4xIDguNC00Mi43LS44LTI3LjEtMTYuMy0xMjkuOS0xMDAuNi0xNjQuMS0zNjUuNmw3NC41IDBjMTguNyAxNTkuMSA2NC41IDI0MC43IDExNC44IDMwMS44IDI3LjktMjcuOSA1NC44LTY1LjEgNzUuNi0xMDYuOS00OS44LTI1LjMtODAuMS04MC45LTgwLjEtMTQ1LjYgMC02NS42IDM3LjctMTE1LjEgMTAyLjItMTE1LjEgMTE0LjkgMCAxMDYuMiAxMjcuOSA4MS42IDE4MS41IDAgMC00Ni40IDkuMi02My41LTIwLjUgMy40LTExLjMgOC4yLTMwLjggOC4yLTQ4LjUgMC0zMS4zLTExLjMtNDYuNi0yOC40LTQ2LjYtMTguMiAwLTMwLjggMTcuMS0zMC44IDUwIC4xIDc5LjIgNTkuNCAxMTguNyAxMjkuOSAxMDEuOXoiXX0sTSR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZHJ0IixpY29uOls1NzYsNTEyLFtdLCJmM2M4IiwiTTEyOS43IDI1NmMwIDEyMS44IDgzLjkgMjIyLjggMTkzLjUgMjQxLjEtMTguNyA0LjUtMzguMiA2LjktNTguMiA2LjktMTM3LjYgMC0yNDktMTExLTI0OS0yNDhTMTI3LjQgOCAyNjQuOSA4YzIwLjEgMCAzOS42IDIuNCA1OC4yIDYuOS0xMDkuNiAxOC4zLTE5My40IDExOS4zLTE5My40IDI0MS4xek00MjcuMSAzNTYuM2MtNzcuNyA1NS40LTE3OS42IDQ3LjUtMjQwLjQtMTQuNiA1LjUgMTQuMSAxMi43IDI3LjcgMjEuNyA0MC41IDYxLjYgODguMiAxODIuNCAxMDkuMyAyNjkuNyA0N3MxMDguMS0xODQuMyA0Ni41LTI3Mi42Yy05LTEyLjktMTkuMy0yNC4zLTMwLjUtMzQuMiAzNy40IDc4LjggMTAuNyAxNzguNS02NyAyMzMuOXptLTIxOC44LTI0NGMtMS40IDEtMi43IDIuMS00IDMuMSA2NC4zLTE3LjggMTM1LjkgNCAxNzguOSA2MC41IDM1LjcgNDcgNDIuOSAxMDYuNiAyNC40IDE1OCA1Ni43LTU2LjIgNjcuNi0xNDIuMSAyMi4zLTIwMS44LTUwLTY1LjUtMTQ5LjEtNzQuNC0yMjEuNi0xOS44ek0zMTIgMjI0Yy00LjQgMC04LTMuNi04LThsMC00MGMwLTQuNC0zLjYtOC04LThsLTQ4IDBjLTQuNCAwLTggMy42LTggOGwwIDQwYzAgNC40LTMuNiA4LTggOGwtNDAgMGMtNC40IDAtOCAzLjYtOCA4bDAgNDhjMCA0LjQgMy42IDggOCA4bDQwIDBjNC40IDAgOCAzLjYgOCA4bDAgNDBjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC0zLjYgOC04bDAtNDBjMC00LjQgMy42LTggOC04bDQwIDBjNC40IDAgOC0zLjYgOC04bDAtNDhjMC00LjQtMy42LTgtOC04bC00MCAweiJdfSx6JHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3NpIixpY29uOls1MTIsNTEyLFtdLCJmNDFhIiwiTTggMjY2LjRjMi4zLTEzNS44IDk3LjQtMjMyLjQgMjEzLjgtMjQ4LjEgMTM4LjgtMTguNiAyNTUuNiA3NS44IDI3OCAyMDEuMSAyMS4zIDExOC44LTQ0IDIzMC0xNTEuNiAyNzQtOS4zIDMuOC0xNC40IDEuNy0xOC03LjctMTcuOC00Ni4zLTM1LjYtOTIuNi01My40LTEzOS0zLjEtOC4xLTEtMTMuMiA3LTE2LjggMjQuMi0xMSAzOS4zLTI5LjQgNDMuMy01NS44IDEuNS05LjcgMS0xOS42LTEuNS0yOS4xcy02LjktMTguNC0xMi45LTI2LjEtMTMuNi0xNC4xLTIyLjItMTguOC0xOC4xLTcuNS0yNy45LTguM2MtMzktMy40LTcxLjggMjMuNy03Ny41IDU5LjctNS4yIDMzIDExLjEgNjMuNyA0MS45IDc3LjcgOS42IDQuNCAxMS41IDguNiA3LjggMTguNC0xNy45IDQ2LjYtMzUuOCA5My4yLTUzLjcgMTM5LjktMi42IDYuOS04LjMgOS4zLTE1LjUgNi41LTUyLjYtMjAuMy0xMDEuNC02MS0xMzAuOC0xMTktMjQuOS00OS4yLTI1LjItODcuNy0yNi44LTEwOC43em0yMC45LTEuOWMuNCA2LjYgLjYgMTQuMyAxLjMgMjIuMSA2LjMgNzEuOSA0OS42IDE0My41IDEzMSAxODMuMSAzLjIgMS41IDQuNCAuOCA1LjYtMi4zIDE0LjktMzkuMSAyOS45LTc4LjIgNDUtMTE3LjMgMS4zLTMuMyAuNi00LjgtMi40LTYuNy0zMS42LTE5LjktNDcuMy00OC41LTQ1LjYtODYgMS0yMS42IDkuMy00MC41IDIzLjgtNTYuMyAzMC0zMi43IDc3LTM5LjggMTE1LjUtMTcuNiAxNS42IDkgMjguMiAyMi4zIDM2LjIgMzguNHMxMS4yIDM0LjIgOSA1MmMtMy42IDMwLjYtMTkuMyA1My45LTQ1LjcgNjkuOC0yLjcgMS42LTMuNSAyLjktMi4zIDYgMTUuMiAzOS4yIDMwLjMgNzguNCA0NS4yIDExNy43IDEuMiAzLjEgMi40IDMuOCA1LjYgMi4zIDM1LjUtMTYuNiA2NS4yLTQwLjMgODguMS03MiAzNC44LTQ4LjIgNDkuMS0xMDEuOSA0Mi4zLTE2MS0xMy43LTExNy41LTExOS40LTIxNC44LTI1NS41LTE5OC0xMDYuMSAxMy0xOTUuMyAxMDIuNS0xOTcuMSAyMjUuOHoiXX0sQyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdnIixpY29uOls1MTIsNTEyLFtdLCJmMjYwIiwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40LTE3OS4yLTE3OS4yIDE3OS4yLTE3OS4yIDQ0LjggNDQuOC0yNS42IDI1LjYtMTkuMi0xOS4yLTEyOCAxMjggMTI4IDEyOCA1MS41LTUxLjUtNzcuMS03Ni41IDI1LjYtMjUuNnpNMzMyLjggNzYuOGwtMTAyLjQgMTAyLjQgMTAyLjQgMTAyLjQgMjUuNi0yNS42LTc3LjEtNzYuNSA1MS41LTUxLjUgMTI4IDEyOC0xMjggMTI4LTE5LjItMTkuMi0yNS42IDI1LjYgNDQuOCA0NC44IDE3OS4yLTE3OS4yLTE3OS4yLTE3OS4yeiJdfSxUJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnV5c2VsbGFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjIwZCIsIk0yMjQgMTUwLjdsNDIuOSAxNjAuNy04NS44IDAgNDIuOS0xNjAuN3pNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzgyLjcgNDA1LjNsLTk0LjUtMjk4LjctMTI4LjQgMC05NC41IDI5OC43IDkwLjcgMCAxMTEuNy05MS42IDI0LjIgOTEuNiA5MC44IDB6Il19LCQkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE4NS4zIDM4MGMtMzIuOSAwLTY0LjQtMTMuMS04Ny43LTM2LjNzLTM2LjMtNTQuOC0zNi4zLTg3LjcgMTMuMS02NC40IDM2LjMtODcuNyA1NC44LTM2LjMgODcuNy0zNi4zYzMxLjMgMCA2MC4xIDExIDgzIDMyLjNsLTMzLjYgMzIuNmMtMTMuMi0xMi45LTMxLjMtMTkuMS00OS40LTE5LjEtNDIuOSAwLTc3LjIgMzUuNS03Ny4yIDc4LjFTMTQyLjMgMzM0IDE4NS4zIDMzNGMzMi42IDAgNjQuOS0xOS4xIDcwLjEtNTMuM2wtNzAuMSAwIDAtNDIuNiAxMTYuOSAwYzEuMyA2LjggMS45IDEzLjggMS45IDIwLjcgMCA3MC44LTQ3LjUgMTIxLjItMTE4LjggMTIxLjJ6TTQxNS41IDI3My44bDAgMzUuNS0zNS41IDAgMC0zNS41LTM1LjUgMCAwLTM1LjUgMzUuNSAwIDAtMzUuNSAzNS41IDAgMCAzNS41IDM1LjIgMCAwIDM1LjUtMzUuMiAweiJdfSxEJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyZWVucGFsIixpY29uOls1MTIsNTEyLFtdLCJlNTcwIiwiTTI3OC42IDIyLjVhMjIuNSAyMi41IDAgMSAxIC00NSAwIDIyLjUgMjIuNSAwIDEgMSA0NSAwek0xOTguNyAyNTlhNTcuNCA1Ny40IDAgMSAxIDExNC44IDAgNTcuNCA1Ny40IDAgMSAxIC0xMTQuOCAwem0xMzguNiA5MWMyMi4zLTE5LjkgMzYuNS00Ny4zIDM5LjktNzdsMTE5LjUgMGMtMy41IDYxLjQtMzAuNCAxMTkuMi03NS4yIDE2MS40LTQ0LjcgNDIuMi0xMDMuOSA2NS44LTE2NS40IDY1LjhTMTM1LjQgNDc2LjYgOTAuNyA0MzQuNEM0NS45IDM5Mi4yIDE5LjEgMzM0LjQgMTUuNSAyNzNsMTE5LjcgMGMzLjQgMjkuNyAxNy42IDU3LjEgMzkuOSA3N3M1MS4yIDMwLjkgODEuMSAzMC45YzI5IDAgNTguNy0xMSA4MS4xLTMwLjl6TTI4LjMgMTQxLjdhMjIuNSAyMi41IDAgMSAxIDQ1LTEuNCAyMi41IDIyLjUgMCAxIDEgLTQ1IDEuNHptNDU1LjYtLjdhMjIuNCAyMi40IDAgMSAxIC00NC45IDAgMjIuNCAyMi40IDAgMSAxIDQ0LjkgMHpNMzE4IDk1LjNjLTE3LjMgMTMuOC0zOS4yIDIyLjgtNjEuOSAyMi44cy00NC42LTktNjEuOS0yMi44Yy0xNy4zLTE0LjctMjguOC0zNS4xLTMyLjQtNTcuNSAxNS4xLTYuNCAzMC44LTExLjMgNDYuOS0xNC41IDAgMTIuNiA1IDI0LjYgMTMuOSAzMy41czIwLjkgMTMuOSAzMy41IDEzLjkgMjQuNi01IDMzLjUtMTMuOSAxMy45LTIwLjkgMTMuOS0zMy41YzE2LjEgMy4yIDMxLjggOC4xIDQ2LjkgMTQuNS0zLjYgMjIuNC0xNS4xIDQyLjgtMzIuNCA1Ny41ek04Mi45IDIzMWMtMjEuNCA3LjYtNDQuNyA3LjQtNjUuOS0uNiAyLTE2LjMgNS42LTMyLjMgMTAuOC00Ny45IDUuNCAzLjEgMTEuMyA1LjEgMTcuNSA2IDYuMiAuOCAxMi40IC40IDE4LjUtMS4yIDYtMS43IDExLjYtNC40IDE2LjYtOC4yczkuMS04LjUgMTIuMi0xMy45IDUuMS0xMS40IDYtMTcuNWMuOC02LjIgLjQtMTIuNS0xLjItMTguNXMtNC40LTExLjYtOC4yLTE2LjZjLTMuOC00LjktOC41LTkuMS0xMy45LTEyLjIgMTAuOC0xMi4zIDIyLjktMjMuNSAzNi0zMy4zIDE3LjYgMTQuMyAyOS41IDM0LjUgMzMuNiA1Ni44cy4xIDQ1LjQtMTEuMiA2NWMtMTEuNCAxOS42LTI5LjQgMzQuNS01MC43IDQyLjF6bTM0Ni40IC4xYy0yMS4zLTcuNi0zOS4zLTIyLjYtNTAuNy00Mi4yLTExLjMtMTkuNi0xNS4yLTQyLjctMTEuMS02NSA0LjEtMjIuMiAxNi00Mi40IDMzLjUtNTYuNyAxMy4xIDkuOCAyNS4yIDIxIDM2IDMzLjMtMTAuNyA2LjQtMTguNCAxNi43LTIxLjUgMjguOC0zLjIgMTItMi4zIDI0LjggNC44IDM1LjYgNi4yIDEwLjggMTYuNCAxOC43IDI4LjQgMjJzMjQuOSAxLjcgMzUuNy00LjNjNS4zIDE1LjUgOC45IDMxLjYgMTAuOSA0Ny44LTIyLjEgOC4xLTQ0LjYgOC4zLTY2IC43eiJdfSxMJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0Y29pbiIsaWNvbjpbNTEyLDUxMixbXSwiZjM3OSIsIk04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNTQuMy0zNS4zYzQuOS0zMy0yMC4yLTUwLjctNTQuNi02Mi42bDExLjEtNDQuNy0yNy4yLTYuOC0xMC45IDQzLjVjLTcuMi0xLjgtMTQuNS0zLjUtMjEuOC01LjFsMTAuOS00My44LTI3LjItNi44LTExLjIgNDQuN2MtNS45LTEuMy0xMS43LTIuNy0xNy40LTQuMWwwLS4xLTM3LjUtOS40LTcuMiAyOS4xczIwLjIgNC42IDE5LjggNC45YzExIDIuOCAxMyAxMCAxMi43IDE1LjhsLTEyLjcgNTAuOWMuOCAuMiAxLjcgLjUgMi44IC45LS45LS4yLTEuOS0uNS0yLjktLjdsLTE3LjggNzEuM2MtMS4zIDMuMy00LjggOC40LTEyLjUgNi41IC4zIC40LTE5LjgtNC45LTE5LjgtNC45bC0xMy41IDMxLjEgMzUuNCA4LjhjNi42IDEuNyAxMyAzLjQgMTkuNCA1bC0xMS4zIDQ1LjIgMjcuMiA2LjggMTEuMi00NC43YzcuMiAyIDE0LjQgMy44IDIxLjcgNS42bC0xMS4xIDQ0LjUgMjcuMiA2LjggMTEuMy00NS4xYzQ2LjQgOC44IDgxLjMgNS4yIDk2LTM2LjcgMTEuOC0zMy44LS42LTUzLjMtMjUtNjYgMTcuOC00LjEgMzEuMi0xNS44IDM0LjctMzkuOXptLTYyLjIgODcuMmMtOC40IDMzLjgtNjUuMyAxNS41LTgzLjggMTAuOWwxNC45LTU5LjljMTguNCA0LjYgNzcuNiAxMy43IDY4LjggNDl6bTguNC04Ny43Yy03LjcgMzAuNy01NSAxNS4xLTcwLjQgMTEuM2wxMy41LTU0LjNjMTUuNCAzLjggNjQuOCAxMSA1Ni44IDQzeiJdfSxFJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3dpZnQiLGljb246WzQ0OCw1MTIsW10sImY4ZTEiLCJNNDQ4IDE1Ni4xYzAtNC41LS4xLTktLjItMTMuNS0uMS05LjktMS0xOS43LTIuNi0yOS40LTEuNy05LjctNC44LTE5LjItOS4yLTI4LTktMTcuNy0yMy40LTMyLjEtNDEuMi00MS4xLTguOC00LjUtMTguMy03LjYtMjgtOS4yLTkuNy0xLjYtMTkuNi0yLjUtMjkuNC0yLjYtNC41LS4xLTktLjItMTMuNS0uMkwxMjQuMSAzMmMtNC41IDAtOSAuMS0xMy41IC4yLTIuNCAuMS00LjkgLjItNy40IC4zLTcuNCAuMy0xNC44IDEuMS0yMi4xIDIuMy03LjMgMS4zLTE0LjQgMy4zLTIxLjIgNi4xLTIuMyAxLTQuNiAyLTYuOCAzLjEtNi42IDMuNC0xMi44IDcuNS0xOC40IDEyLjMtMS45IDEuNi0zLjcgMy4zLTUuNCA1LTcgNy0xMi45IDE1LTE3LjQgMjMuOC00LjQgOC44LTcuNiAxOC4zLTkuMiAyOC0xLjYgOS43LTIuNCAxOS42LTIuNSAyOS40LS4xIDQuNS0uMiA5LS4yIDEzLjVMMCAzNTUuOWMwIDQuNSAuMSA5IC4yIDEzLjUgLjEgOS45IDEgMTkuNyAyLjYgMjkuNCAxLjcgOS43IDQuOCAxOS4yIDkuMiAyOCA5IDE3LjcgMjMuNCAzMi4xIDQxLjEgNDEuMSA4LjggNC40IDE4LjMgNy41IDI4IDkuMiA5LjcgMS42IDE5LjYgMi41IDI5LjQgMi42IDQuNSAuMSA5IC4yIDEzLjUgLjJsMTk5LjggMGM0LjUgMCA5LS4xIDEzLjUtLjIgOS45LS4xIDE5LjctMSAyOS40LTIuNiA5LjctMS43IDE5LjItNC44IDI4LTkuMiAxNy43LTkgMzIuMS0yMy40IDQxLjEtNDEuMiA0LjQtOC44IDcuNi0xOC4zIDkuMi0yOCAxLjYtOS43IDIuNS0xOS42IDIuNi0yOS40IC4xLTQuNSAuMi05IC4yLTEzLjVsMC0xODMuOGMwLTUuNCAwLTEwLjcgMC0xNnptLTY5LjkgMjQxYy0yMC0zOC45LTU3LjItMjkuMy03Ni4zLTE5LjUtMS43IDEtMy41IDItNS4yIDNsLS40IC4yYy0zOS41IDIxLTkyLjUgMjIuNS0xNDUuOC0uNC00My40LTE4LjgtODAuMS01MC4zLTEwNS4zLTkwLjQgMTIuMyA5LjEgMjUuNCAxNi45IDM5LjIgMjMuNCA1Ni40IDI2LjQgMTEzIDI0LjUgMTUzIDAtNTctNDMuOC0xMDQuNi0xMDEtMTQxLjEtMTQ3LjItNy04LjEtMTMuMi0xNi44LTE4LjgtMjUuOSA0My43IDQwIDExMi43IDkwLjIgMTM3LjUgMTA0LjEtNTIuNi01NS41LTk4LjktMTIzLjktOTYuNy0xMjEuNyA4Mi44IDgzLjQgMTU5LjIgMTMwLjYgMTU5LjIgMTMwLjYgMi45IDEuNiA1IDIuOCA2LjcgNCAxLjYtNC4xIDMtOC4yIDQuMi0xMi41IDEzLjItNDguMy0xLjctMTAzLjYtMzUuMy0xNDkuMiA3Ni44IDQ2LjEgMTIyLjIgMTMzLjcgMTAzLjYgMjA3LjgtLjQgMS43LTEgMy40LTEuNCA1LjEgMzguNSA0Ny40IDI4IDk4LjIgMjMuMSA4OC42bDAgMHoiXX0sUCR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpbGVzLXBpbndoZWVsIixpY29uOls1MTIsNTEyLFtdLCJlNjlmIiwiTTI1My41IDI0Ni40TDEzNy4yIDEzMC4yYy0uNi0uNi0xLTEuMy0xLjQtMnMtLjUtMS42LS41LTIuNCAuMi0xLjYgLjUtMi40IC44LTEuNCAxLjQtMkwyNTMuNiA1LjFjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAyMzIuNWMwIDEuMy0uMyAyLjUtMSAzLjZzLTEuNyAxLjktMi45IDIuNC0yLjUgLjYtMy43IC4zLTIuNC0uOS0zLjItMS45em00MC4zLTQuNGwwLTEzNC40YzAtLjggLjEtMS42IC41LTIuNHMuOC0xLjUgMS4zLTIuMSAxLjMtMS4xIDItMS40IDEuNi0uNSAyLjQtLjVsMTM0LjQgMGMxLjIgMCAyLjUgLjQgMy41IDEuMXMxLjggMS43IDIuMyAyLjggLjYgMi40IC4zIDMuNi0uOSAyLjMtMS43IDMuMkwzMDQuMyAyNDYuNGMtLjkgLjgtMiAxLjQtMy4yIDEuNnMtMi40IC4xLTMuNS0uNC0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy40bC4xIC4xem0zMC42IDM1Yy0xLjIgMC0yLjUtLjMtMy41LTFzLTEuOS0xLjYtMi40LTIuOC0uNi0yLjQtLjQtMy42IC44LTIuMyAxLjctMy4yTDQwNCAxODIuMmMuNi0uNiAxLjMtMSAyLTEuNHMxLjYtLjUgMi40LS41IDEuNiAuMiAyLjQgLjUgMS40IC44IDIgMS40bDg0LjQgODQuMmMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTY4LjUgMCAuMS0uMXptOTAuNyAxMzFsLTk1LjMtOTUuMmMtLjktLjktMS41LTItMS43LTMuMnMtLjEtMi41IC40LTMuNyAxLjMtMi4xIDIuNC0yLjggMi4zLTEgMy41LTFsOTUuMiAwYzEuNyAwIDMuMiAuNyA0LjQgMS44czEuOCAyLjggMS44IDQuNGwwIDk1LjNjMCAxLjItLjQgMi41LTEuMSAzLjVzLTEuNyAxLjgtMi44IDIuMy0yLjQgLjYtMy42IC4zLTIuMy0uOS0zLjItMS43ek0xNi44IDMwMi4xbDIxNi45IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjggMi4zLTEuNyAzLjJMMTI5LjcgNDIxLjJjLS42IC42LTEuMyAxLTIgMS40cy0xLjYgLjUtMi40IC41LTEuNi0uMi0yLjQtLjUtMS40LS44LTItMS40TDEyLjMgMzEyLjhjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjYgMS4zLTIuMSAyLjMtMi44IDIuMy0xIDMuNS0xbDAtLjF6TTI2NC4zIDQ2NS4zYzAgLjgtLjIgMS42LS41IDIuNHMtLjggMS41LTEuNCAyLTEuMyAxLTIgMS40LTEuNiAuNS0yLjQgLjVsLTEyOCAwYy0xLjIgMC0yLjUtLjQtMy41LTEuMXMtMS44LTEuNy0yLjMtMi44LS42LTIuNC0uMy0zLjYgLjgtMi4zIDEuNy0zLjJsMTI4LTEyOGMuOS0uOSAyLTEuNSAzLjItMS43czIuNS0uMSAzLjYgLjMgMi4xIDEuMyAyLjggMi4zIDEuMSAyLjIgMS4xIDMuNWwwIDEyOHptNDAtMTMyLjVsODIuOCA4Mi43Yy42IC42IDEgMS4zIDEuNCAycy41IDEuNiAuNSAyLjQtLjIgMS42LS41IDIuNC0uOCAxLjQtMS40IDJMMzA0LjMgNTA3Yy0uOSAuOS0yIDEuNS0zLjIgMS43cy0yLjUgLjEtMy42LS4zLTIuMS0xLjMtMi44LTIuMy0xLjEtMi4yLTEuMS0zLjVsMC0xNjUuNGMwLTEuMiAuNC0yLjUgMS4xLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uMyAyLjMgLjggMy4yIDEuN3pNNzkgMTIyLjRjMC0xLjIgLjMtMi41IDEtMy41czEuNy0xLjggMi44LTIuMyAyLjQtLjYgMy42LS40IDIuMyAuOCAzLjIgMS43TDIzOC4xIDI2Ni40Yy45IC45IDEuNSAyIDEuNyAzLjJzLjEgMi41LS4zIDMuNi0xLjMgMi4xLTIuMyAyLjgtMi4yIDEuMS0zLjUgMS4xbC0xNDguNCAwYy0xLjcgMC0zLjItLjctNC40LTEuOHMtMS44LTIuOC0xLjgtNC40bDAtMTQ4LjQtLjEtLjF6Il19LEkkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXJhdmVsIixpY29uOls1MTIsNTEyLFtdLCJmM2JkIiwiTTUwNC42IDExNS44Yy0uMS0uMi0uMi0uNS0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjItLjItLjMtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMNDA0LjYgNTUuNWMtMS4yLS43LTIuNi0xLjEtNC0xLjFzLTIuOCAuNC00IDEuMUwzMDAuMyAxMTFjLS4zIC4yLS42IC40LS45IC43LS4zIC4yLS41IC40LS44IC42LS4zIC4zLS41IC42LS43IC45LS4yIC4yLS40IC40LS41IC43LS4yIC40LS40IC44LS41IDEuMi0uMSAuMi0uMiAuNC0uMyAuNy0uMiAuNy0uMyAxLjQtLjMgMi4xbDAgMTA1LjItODAuMiA0Ni4yIDAtMjA1LjljMC0uNy0uMS0xLjQtLjMtMi4xLS4xLS4yLS4yLS40LS4zLS43LS4xLS40LS4zLS44LS41LTEuMi0uMS0uMy0uNC0uNS0uNS0uNy0uMi0uMy0uNS0uNi0uNy0uOS0uMi0uMi0uNS0uNC0uOC0uNi0uMy0uMi0uNi0uNS0uOS0uN0wxMTUuOCAxLjFjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMTEuNSA1Ni41Yy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMy0uNCAuNS0uNiAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDMyOS43YzAgMS40IC40IDIuOCAxLjEgNHMxLjcgMi4yIDIuOSAyLjlMMjA0IDUxMC45Yy40IC4yIC45IC40IDEuMyAuNSAuMiAuMSAuNCAuMiAuNiAuMyAxLjMgLjQgMi44IC40IDQuMSAwIC4yLS4xIC40LS4yIC42LS4yIC41LS4yIDEtLjMgMS40LS42TDQwNC42IDQwMC4xYzEuMi0uNyAyLjItMS43IDIuOS0yLjlzMS4xLTIuNiAxLjEtNGwwLTEwNS4zIDkyLjItNTMuMWMxLjItLjcgMi4yLTEuNyAyLjktM3MxLjEtMi42IDEuMS00bDAtMTA5LjhjMC0uNy0uMS0xLjQtLjItMi4xek0xMTEuOCAxNy4zbDgwLjIgNDYuMS04MC4yIDQ2LjItODAuMi00Ni4yIDgwLjItNDYuMnptODguMiA2MGwwIDIwMS4zYy0zMy4yIDE5LjEtNTkuOSAzNC41LTgwLjIgNDYuMmwwLTIwMS4zQzE1MyAxMDQuNCAxNzkuNyA4OSAyMDAgNzcuM3ptMCA0MTIuOEwyMy41IDM4OC41IDIzLjUgNzcuM2MyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDIxNS4yYzAgLjMgLjEgLjYgLjEgLjkgMCAuNCAuMSAuOCAuMiAxLjIgLjEgLjMgLjIgLjYgLjQgLjkgLjEgLjMgLjMgLjcgLjQgMSAuMiAuMyAuNCAuNSAuNiAuOCAuMiAuMyAuNCAuNiAuNyAuOCAuMiAuMiAuNSAuNCAuOCAuNiAuMyAuMiAuNiAuNSAuOSAuN2w5Mi4yIDUyLjIgLjEgOTIuNHptOC0xMDYuMkwxMjggMzM4LjZjNTQuNy0zMS41IDExMy41LTY1LjMgMTc2LjMtMTAxLjVsODAuMSA0Ni4xQzM1NSAzMDAgMjk2LjIgMzMzLjUgMjA4IDM4My45em0xODQuNSA0LjZsLTE3Ni41IDEwMS42IDAtOTIuM0MzMTcuNCAzNDAgMzc2LjIgMzA2LjQgMzkyLjUgMjk3bDAgOTEuNHptMC0xMTkuMWMtMjAuMy0xMS42LTQ3LjEtMjctODAuMi00Ni4xbDAtOTEuNGMyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDkxLjN6bTgtMTA1LjNsLTgwLjItNDYuMiA4MC4yLTQ2LjIgODAuMiA0Ni4xLTgwLjIgNDYuMnptOCAxMDUuM2wwLTkxLjNjMzMuMi0xOS4xIDYwLTM0LjUgODAuMy00Ni4ybDAgOTEuNC04MC4zIDQ2LjJ6Il19LEEkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGZvcm1zIixpY29uOls0NDgsNTEyLFtdLCJmMjk4IiwiTTQ0OCA3NS4ybDAgMzYxLjdjMCAyNC4zLTE5IDQzLjItNDMuMiA0My4ybC0zNjEuNiAwQzE5LjMgNDgwIDAgNDYxLjQgMCA0MzYuOEwwIDc1LjJDMCA1MS4xIDE4LjggMzIgNDMuMiAzMmwzNjEuNyAwYzI0IDAgNDMuMSAxOC44IDQzLjEgNDMuMnpNNDEwLjcgNDM2LjhsMC0zNjEuNmMwLTMtMi42LTUuOC01LjgtNS44bC05LjMgMC0xMTAuMyA3NC42LTYxLjMtNDkuOS02MS4yIDQ5LjktMTEwLjMtNzQuNy05LjMgMGMtMy4yIDAtNS44IDIuOC01LjggNS44bDAgMzYxLjdjMCAzIDIuNiA1LjggNS44IDUuOGwzNjEuNyAwYzMuMiAuMSA1LjgtMi43IDUuOC01Ljh6TTE1MC4yIDE4NmwwIDM3LTczLjUgMCAwLTM3IDczLjUgMHptMCA3NC40bDAgMzcuMy03My41IDAgMC0zNy4zIDczLjUgMHptMTEuMS0xNDcuM2w1NC00My43LTExOC41IDAgNjQuNSA0My43em0yMTAgNzIuOWwwIDM3LTE5NiAwIDAtMzcgMTk2IDB6bTAgNzQuNGwwIDM3LjMtMTk2IDAgMC0zNy4zIDE5NiAwek0yODYuNyAxMTMuMWw2NC41LTQzLjctMTE4LjQgMCA1My45IDQzLjd6TTM3MS4zIDMzNWwwIDM3LjMtOTkuNCAwIDAtMzcuMyA5OS40IDB6Il19LE4kdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2VyLWRlY2siLGljb246WzUxMiw1MTIsW10sImY4M2MiLCJNMjEzLjkgMjk2TDEwMCAyOTZjLTI2LjUgMC01Mi0xMC41LTcwLjctMjkuM1MwIDIyMi41IDAgMTk2IDEwLjUgMTQ0IDI5LjMgMTI1LjMgNzMuNSA5NiAxMDAgOTZsMTMyLjggMGMxMC42IDAgMjAuOCA0LjIgMjguMyAxMS43czExLjcgMTcuNyAxMS43IDI4LjMtNC4yIDIwLjgtMTEuNyAyOC4zLTE3LjcgMTEuNy0yOC4zIDExLjdMOTggMTc2Yy0yNi41IDAtMjYuNCA0MCAwIDQwbDExMy44IDBjMjYuNSAwIDUyIDEwLjUgNzAuNyAyOS4zczI5LjMgNDQuMiAyOS4zIDcwLjctMTAuNSA1Mi0yOS4zIDcwLjctNDQuMiAyOS4zLTcwLjcgMjkuM0w0MCA0MTZjLTEwLjYgMC0yMC44LTQuMi0yOC4zLTExLjdTMCAzODYuNiAwIDM3NiA0LjIgMzU1LjIgMTEuNyAzNDcuNyAyOS40IDMzNiA0MCAzMzZsMTczLjkgMGMyNi41IDAgMjYuNS00MCAwLTQwek0yOTggNDE2YzEzLjUtOS4yIDI1LTIxIDMzLjgtMzQuN3MxNC43LTI5LjIgMTcuMy00NS4zbDY0LjYgMGMyLjYgMCA1LjItLjYgNy42LTEuNnM0LjYtMi41IDYuNC00LjQgMy4zLTQuMSA0LjItNi41IDEuNS01IDEuNC03LjZsMC0xMjBjMC0yLjYtLjUtNS4yLTEuNC03LjZzLTIuNC00LjYtNC4yLTYuNS00LTMuMy02LjQtNC40LTUtMS42LTcuNi0xLjZsLTExNy4yIDBjOS43LTExLjEgMTUtMjUuMyAxNS00MHMtNS4zLTI4LjktMTUtNDBsMTM2LjkgMGM0My40IDAgNzguNiAzNS44IDc4LjYgODBsMCAxNjBjMCA0NC4yLTM1LjIgODAtNzguNiA4MEwyOTggNDE2eiJdfSxSJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpY2tyIixpY29uOls0NDgsNTEyLFtdLCJmMTZlIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQuNSAxOTJhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3ptMTU5IDBhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3oiXX0sTyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXZpc2EiLGljb246WzU3Niw1MTIsW10sImYxZjAiLCJNNDcwLjEgMjMxLjNzNy42IDM3LjIgOS4zIDQ1bC0zMy40IDBjMy4zLTguOSAxNi00My41IDE2LTQzLjUtLjIgLjMgMy4zLTkuMSA1LjMtMTQuOWwyLjggMTMuNHpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTUyLjUgMzMxLjJsNjMuMi0xNTUuMi00Mi41IDAtMzkuMyAxMDYtNC4zLTIxLjUtMTQtNzEuNGMtMi4zLTkuOS05LjQtMTIuNy0xOC4yLTEzLjFsLTY0LjcgMC0uNyAzLjFjMTUuOCA0IDI5LjkgOS44IDQyLjIgMTcuMWwzNS44IDEzNSA0Mi41IDB6bTk0LjQgLjJsMjUuMi0xNTUuNC00MC4yIDAtMjUuMSAxNTUuNCA0MC4xIDB6bTEzOS45LTUwLjhjLjItMTcuNy0xMC42LTMxLjItMzMuNy00Mi4zLTE0LjEtNy4xLTIyLjctMTEuOS0yMi43LTE5LjIgLjItNi42IDcuMy0xMy40IDIzLjEtMTMuNCAxMy4xLS4zIDIyLjcgMi44IDI5LjkgNS45bDMuNiAxLjcgNS41LTMzLjZjLTcuOS0zLjEtMjAuNS02LjYtMzYtNi42LTM5LjcgMC02Ny42IDIxLjItNjcuOCA1MS40LS4zIDIyLjMgMjAgMzQuNyAzNS4yIDQyLjIgMTUuNSA3LjYgMjAuOCAxMi42IDIwLjggMTkuMy0uMiAxMC40LTEyLjYgMTUuMi0yNC4xIDE1LjItMTYgMC0yNC42LTIuNS0zNy43LTguM2wtNS4zLTIuNS01LjYgMzQuOWM5LjQgNC4zIDI2LjggOC4xIDQ0LjggOC4zIDQyLjIgLjEgNjkuNy0yMC44IDcwLTUzek01MjggMzMxLjRsLTMyLjQtMTU1LjQtMzEuMSAwYy05LjYgMC0xNi45IDIuOC0yMSAxMi45bC01OS43IDE0Mi41IDQyLjIgMHM2LjktMTkuMiA4LjQtMjMuM2w1MS42IDBjMS4yIDUuNSA0LjggMjMuMyA0LjggMjMuM2wzNy4yIDB6Il19LEYkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1cHdvcmsiLGljb246WzY0MCw1MTIsW10sImU2NDEiLCJNNDkzLjkgMjk1LjZjLTUwLjMgMC04My41LTM4LjktOTIuOC01My45IDExLjktOTUuMyA0Ni44LTEyNS40IDkyLjgtMTI1LjQgNDUuNSAwIDgwLjkgMzYuNCA4MC45IDg5LjdzLTM1LjQgODkuNy04MC45IDg5LjdsMC0uMXptMC0yMzcuOGMtODEuOSAwLTEyNy44IDUzLjQtMTQxIDEwOC40LTE0LjktMjgtMjUuOS02NS41LTM0LjUtMTAwLjNsLTExMy4yIDAgMCAxNDFjMCA1MS4xLTIzLjMgODktNjguOCA4OXMtNzEuNi0zNy44LTcxLjYtODlsLjUtMTQxLTY1LjMgMCAwIDE0MWMwIDQxLjEgMTMuMyA3OC40IDM3LjYgMTA1LjEgMjUgMjcuNSA1OS4yIDQxLjggOTguOCA0MS44IDc4LjggMCAxMzMuOC02MC40IDEzMy44LTE0Ni45bDAtOTQuOGM4LjIgMzEuMiAyNy44IDkxLjEgNjUuMyAxNDMuNmwtMzUgMTk5LjQgNjYuNCAwIDIzLjEtMTQxLjNjNy42IDYuMyAxNS43IDEyIDI0LjIgMTcgMjIuMiAxNCA0Ny43IDIxLjkgNzMuOSAyMi44IDAgMCA0IC4yIDYuMSAuMiA4MS4yIDAgMTQ1LjktNjIuOSAxNDUuOS0xNDcuOFM1NzUuMyA1Ny45IDQ5NC4xIDU3LjlsLS4yLS4xeiJdfSxCJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FrYW8tdGFsayIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNyIsIk0yODggMi41YzE1OS4xIDAgMjg4IDEwMS43IDI4OCAyMjcuMSAwIDEyNS40LTEyOC45IDIyNy4xLTI4OCAyMjcuMS0xNy41IDAtMzQuNi0xLjItNTEuMi0zLjYtMTYuNiAxMS43LTExMi42IDc5LjEtMTIxLjcgODAuNCAwIDAtMy43IDEuNC02LjktLjRzLTIuNi02LjctMi42LTYuN0MxMDYuNiA1MTkuOCAxMzAuNiA0MzcuMiAxMzUgNDIxLjkgNTMuOSAzODEuOCAwIDMxMC42IDAgMjI5LjUgMCAxMDQuMSAxMjguOSAyLjUgMjg4IDIuNXpNODYuMiAxNjEuN2MtOSAwLTE2LjMgNy4zLTE2LjMgMTYuM3M3LjMgMTYuMyAxNi4zIDE2LjNsMjUuOSAwIDAgOTguN2MwIDguOCA3LjUgMTUuOSAxNi42IDE1LjlzMTYuNi03LjEgMTYuNi0xNS45bDAtOTguNyAyNS45IDBjOSAwIDE2LjMtNy4zIDE2LjMtMTYuM3MtNy4zLTE2LjMtMTYuMy0xNi4zbC04NS4xIDB6bTE0MC44IDBjLTEwLjggLjItMTkuMyA4LjQtMjIuMSAxNi40TDE2NS4yIDI4Mi43Yy01IDE1LjctLjYgMjEuNSAzLjkgMjMuNiAzLjIgMS41IDYuOSAyLjMgMTAuNiAyLjMgNi45IDAgMTIuMi0yLjggMTMuOC03LjNsOC4yLTIxLjYgNTAuNyAwIDguMiAyMS41YzEuNiA0LjUgNi45IDcuMyAxMy44IDcuMyAzLjcgMCA3LjMtLjggMTAuNi0yLjMgNC42LTIuMSA5LTcuOSAzLjktMjMuNkwyNDkuMiAxNzguMWMtMi44LTgtMTEuMy0xNi4yLTIyLjItMTYuNHptMTgwLjkgMGMtOS4yIDAtMTYuNiA3LjUtMTYuNiAxNi42bDAgMTEzLjdjMCA5LjIgNy41IDE2LjYgMTYuNiAxNi42czE2LjYtNy41IDE2LjYtMTYuNmwwLTM2LjIgNS44LTUuOCAzOC45IDUxLjZjMy4yIDQuMiA4IDYuNiAxMy4zIDYuNiAzLjYgMCA3LjEtMS4xIDEwLTMuMyAzLjUtMi43IDUuOC02LjYgNi40LTExcy0uNS04LjgtMy4yLTEyLjNsLTQwLjktNTQuMiAzNy45LTM3LjhjMi42LTIuNiAzLjktNi4yIDMuNy0xMC4xLS4yLTMuOS0yLTcuNi00LjktMTAuNS0zLjEtMy4xLTcuMy00LjktMTEuNC00LjktMy42IDAtNi44IDEuMy05LjIgMy43bC00Ni4zIDQ2LjQgMC0zNS43YzAtOS4yLTcuNS0xNi42LTE2LjYtMTYuNnptLTkxLjMgMGMtOS4zIDAtMTYuOSA3LjUtMTYuOSAxNi42bDAgMTEyLjhjMCA4LjQgNy4xIDE1LjIgMTUuOSAxNS4zbDUzLjMgMGM4LjggMCAxNS45LTYuOSAxNS45LTE1LjNzLTcuMi0xNS4yLTE1LjktMTUuMmwtMzUuMyAwIDAtOTcuNmMwLTkuMi03LjYtMTYuNi0xNy0xNi42em0tNzMgODguNmwtMzMuMiAwIDE2LjYtNDcuMSAxNi42IDQ3LjF6Il19LEgkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHV0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjk0IiwiTTQyOS41IDIzNi4zTDI5MS43IDM3NC4xIDQyOS41IDUxMiAyNzIgNTEyYy0zNi4xLTM2LjEtODIuMS04Mi4xLTEzNy45LTEzNy45bDEzNy45LTEzNy44IDE1Ny41IDB6TTI3MiAwTDE2IDI1NiA5NC44IDMzNC44IDQyOS41IDAgMjcyIDB6Il19LHEkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidWZmZXIiLGljb246WzQ0OCw1MTIsW10sImY4MzciLCJNNDI4LjIgMzgwLjdMMjMxLjcgNDc4LjVjLTIuMyAxLTQuOCAxLjUtNy4zIDEuNXMtNS0uNS03LjMtMS41TDIwLjUgMzgwLjdjLTQtMi00LTUuMyAwLTcuM0w2Ny42IDM1MGMyLjMtMSA0LjgtMS41IDcuMy0xLjVzNSAuNSA3LjMgMS41bDEzNC44IDY3YzIuMyAxIDQuOCAxLjUgNy4zIDEuNXM1LS41IDcuMy0xLjVsMTM0LjgtNjdjMi4zLTEgNC44LTEuNSA3LjMtMS41czUgLjUgNy4zIDEuNWw0Ny4xIDIzLjRjNCAyIDQgNS4yIDAgNy4yem0wLTEzNi41bC00Ny4xLTIzLjRjLTIuMy0xLTQuOC0xLjUtNy4zLTEuNXMtNSAuNS03LjMgMS41TDIzMS43IDI4Ny44Yy0yLjMgMS00LjggMS41LTcuMyAxLjVzLTUtLjUtNy4zLTEuNUw4Mi4zIDIyMC43Yy0yLjMtMS00LjgtMS41LTcuMy0xLjVzLTUgLjUtNy4zIDEuNUwyMC41IDI0NC4xYy00IDItNCA1LjMgMCA3LjNsMTk2LjUgOTcuOGMyLjMgMSA0LjggMS41IDcuMyAxLjVzNS0uNSA3LjMtMS41bDE5Ni41LTk3LjhjNC0yIDQtNS4zIDAtNy4zek0yMC41IDEzMC40TDIxNyAyMjAuN2M0LjcgMS45IDEwIDEuOSAxNC43IDBsMTk2LjUtOTAuM2M0LTEuOSA0LTQuOSAwLTYuN0wyMzEuNyAzMy40Yy00LjctMS45LTEwLTEuOS0xNC43IDBMMjAuNSAxMjMuN2MtNCAxLjgtNCA0LjkgMCA2Ljd6Il19LGokdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmF0aXBheSIsaWNvbjpbNTEyLDUxMixbXSwiZjE4NCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTM3NC4zIDIzMy43TDI1Ny43IDM5MS4zIDE0MS4zIDIzMy43Yy05LTEyLjMtMTkuNy01MiAxNC03NC4zIDI5LTE4LjcgNTYuNC00LjMgNzAuNyAxMi4zIDE2LjQgMTguNSA0OC4xIDE3LjQgNjMuNyAwIDE0LjMtMTYuNiA0MS43LTMxIDcwLjMtMTIuMyAzNCAyMi4zIDIzLjMgNjEuOSAxNC4yIDc0LjN6Il19LFYkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGF5IixpY29uOls2NDAsNTEyLFtdLCJlMDc5IiwiTTEwNS43IDIxNWwwIDQxLjIgNTcuMSAwYy0xLjIgNi42LTMuNiAxMi45LTcuMiAxOC41cy04LjQgMTAuNC0xMy45IDE0LjFjLTkuNSA2LjYtMjEuNyAxMC4zLTM2IDEwLjMtMjcuNiAwLTUwLjktMTguOS01OS4zLTQ0LjItNC40LTEzLjMtNC40LTI3LjcgMC00MSA4LjQtMjUuNSAzMS43LTQ0LjQgNTkuMy00NC40IDcuNS0uMSAxNC45IDEuMiAyMS45IDRzMTMuMyA2LjkgMTguNiAxMi4xTDE3Ni41IDE1NWMtMTkuMS0xOC4xLTQ0LjQtMjguMS03MC43LTI3LjgtMTkuNyAuMS0zOC45IDUuNy01NS42IDE2LjFzLTMwLjEgMjUuMy0zOC44IDQzQzMuOSAyMDEuMiAwIDIxNy43IDAgMjM0LjRzMy45IDMzLjIgMTEuMyA0OC4xbDAgLjJjOC43IDE3LjcgMjIuMSAzMi41IDM4LjggNDNzMzUuOSAxNiA1NS42IDE2YzI4LjUgMCA1Mi41LTkuNSA3MC0yNS45IDIwLTE4LjYgMzEuNC00Ni4yIDMxLjQtNzguOSAwLTcuMy0uNi0xNC42LTEuOC0yMS44bC05OS43IDB6bTM4OS40LTRjLTEwLjEtOS40LTIzLjktMTQuMS00MS40LTE0LjEtMjIuNSAwLTM5LjMgOC4zLTUwLjUgMjQuOUw0MjQuMSAyMzVjNy42LTExLjMgMTguMS0xNyAzMS4zLTE3IDguNCAwIDE2LjUgMy4yIDIyLjcgOC44IDMgMi42IDUuNSA1LjkgNy4xIDkuNnMyLjUgNy42IDIuNSAxMS43bDAgNS41Yy05LjEtNS4xLTIwLjYtNy44LTM0LjYtNy44LTE2LjQgMC0yOS42IDMuOS0zOS41IDExLjhzLTE0LjggMTguMy0xNC44IDMxLjZjLS4yIDUuOSAxIDExLjggMy40IDE3LjJzNiAxMC4yIDEwLjUgMTQuMWM5LjIgOC4zIDIxIDEyLjUgMzQuOCAxMi41IDE2LjMgMCAyOS4yLTcuMyAzOS0yMS45bDEgMCAwIDE3LjcgMjIuNiAwIDAtNzguN2MuMS0xNi42LTQuOS0yOS43LTE1LTM5em0tMTkuMiA4OS4zYy0zLjUgMy41LTcuNiA2LjMtMTIuMiA4LjJzLTkuNSAyLjktMTQuNCAyLjljLTYuNyAuMS0xMy4xLTIuMS0xOC4zLTYuMi0yLjQtMS44LTQuNC00LjItNS43LTYuOXMtMi01LjctMi04LjdjMC03IDMuMi0xMi44IDkuNS0xNy40czE0LjUtNyAyNC4xLTdjMTMuMi0uMiAyMy41IDIuOCAzMC44IDguOCAwIDEwLjEtNCAxOC45LTExLjcgMjYuNHptLTkzLjctMTQyYy01LjMtNS4zLTExLjYtOS41LTE4LjYtMTIuM3MtMTQuNC00LjItMjEuOS00bC02Mi43IDAgMCAxODYuNyAyMy42IDAgMC03NS42IDM5IDBjMTYgMCAyOS41LTUuNCA0MC41LTE1LjkgLjktLjkgMS44LTEuOCAyLjYtMi43IDkuNi0xMC41IDE0LjgtMjQuNCAxNC4zLTM4LjZzLTYuNi0yNy43LTE2LjktMzcuNmwwIDB6bS0xNi42IDYyLjJjLTMgMy4yLTYuNiA1LjctMTAuNiA3LjRzLTguNCAyLjUtMTIuNyAyLjNsLTM5LjYgMCAwLTY1LjIgMzkuNiAwYzguNSAwIDE2LjYgMy4zIDIyLjYgOS4yIDYuMSA2LjEgOS42IDE0LjMgOS44IDIzcy0zLjEgMTctOSAyMy4zbDAgMHpNNjE0LjMgMjAxbC0zNi41IDkxLjctLjUgMC0zNy40LTkxLjctMjUuNyAwIDUxLjggMTE5LjYtMjkuNCA2NC4zIDI0LjMgMCA3OS0xODMuOS0yNS43IDB6Il19LFUkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjE3OSIsIk0zMTkuMSAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuNy01NS44IC45LTExNS4xIDQ0LjUtMTE1LjEgMTMzLjIgMCAyNi4yIDQuOCA1My4zIDE0LjQgODEuMiAxMi44IDM2LjcgNTkgMTI2LjcgMTA3LjIgMTI1LjIgMjUuMi0uNiA0My0xNy45IDc1LjgtMTcuOSAzMS44IDAgNDguMyAxNy45IDc2LjQgMTcuOSA0OC42LS43IDkwLjQtODIuNSAxMDIuNi0xMTkuMy02NS4yLTMwLjctNjEuNy05MC02MS43LTkxLjl6TTI2Mi41IDEwNC41YzI3LjMtMzIuNCAyNC44LTYxLjkgMjQtNzIuNS0yNC4xIDEuNC01MiAxNi40LTY3LjkgMzQuOS0xNy41IDE5LjgtMjcuOCA0NC4zLTI1LjYgNzEuOSAyNi4xIDIgNDkuOS0xMS40IDY5LjUtMzQuM3oiXX0sVyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR1bWJsciIsaWNvbjpbMzIwLDUxMixbXSwiZjE3MyIsIk0zMDkuOSA0ODAuM2MtMTMuNiAxNC41LTUwIDMxLjctOTcuNCAzMS43LTEyMC44IDAtMTQ3LTg4LjgtMTQ3LTE0MC42bDAtMTQ0LTQ3LjUgMGMtNS41IDAtMTAtNC41LTEwLTEwbDAtNjhjMC03LjIgNC41LTEzLjYgMTEuMy0xNiA2Mi0yMS44IDgxLjUtNzYgODQuMy0xMTcuMSAuOC0xMSA2LjUtMTYuMyAxNi4xLTE2LjNsNzAuOSAwYzUuNSAwIDEwIDQuNSAxMCAxMGwwIDExNS4yIDgzIDBjNS41IDAgMTAgNC40IDEwIDkuOWwwIDgxLjdjMCA1LjUtNC41IDEwLTEwIDEwbC04My40IDAgMCAxMzMuMmMwIDM0LjIgMjMuNyA1My42IDY4IDM1LjggNC44LTEuOSA5LTMuMiAxMi43LTIuMiAzLjUgLjkgNS44IDMuNCA3LjQgNy45bDIyIDY0LjNjMS44IDUgMy4zIDEwLjYtLjQgMTQuNXoiXX0sRyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBob2VuaXgtc3F1YWRyb24iLGljb246WzUxMiw1MTIsW10sImY1MTEiLCJNOTYgNjMuNGM0Ni41LTM2LjEgMTA1LjYtNTYuMSAxNjQuNS01NC42IDI5LjYtLjQgNTkuMSA1LjQgODYuOSAxNS4zLTI0LjEtNC42LTQ5LTYuMy03My40LTIuNS00Mi45IDUuMy04MyAyNy4yLTExMS44IDU5LjIgNS43LTEgMTAuOC0zLjcgMTYtNS45IDE4LjEtNy45IDM3LjUtMTMuMyA1Ny4yLTE0LjggMTkuNy0yLjEgMzkuNi0uNCA1OS4zIDEuOS0xNC40IDIuOC0yOS4xIDQuNi00MyA5LjYtMzQuNCAxMS4xLTY1LjMgMzMuMi04Ni4zIDYyLjYtMTMuOCAxOS43LTIzLjYgNDIuOS0yNC43IDY3LjEtLjQgMTYuNSA1LjIgMzQuOCAxOS44IDQ0IDExLjIgNi44IDI0LjYgOS4yIDM3LjUgNi43IDE1LjQtMi41IDMwLjEtOC42IDQzLjYtMTYuMyAxMS41LTYuOCAyMi43LTE0LjYgMzItMjQuMyAzLjgtMy4yIDIuNS04LjQgMi42LTEyLjgtMi4xLS4zLTQuNC0xLjEtNi4zIC4zLTExLjQgNi4zLTIzLjQgMTEuNC0zNS44IDE1LjQtMjAgNi4yLTQyLjIgOC41LTYyLjEgLjggMTIuOCAxLjcgMjYuMSAuMyAzNy43LTUuNCAyMC4yLTkuNyAzNi44LTI1LjIgNTQuNC0zOC44IDI3LjctMjEuMyA1Ny41LTM5LjkgODguOS01NS4zIDI1LjctMTIgNTIuOS0yMi44IDgxLjYtMjQuMS0xNS42IDEzLjctMzIuMSAyNi41LTQ2LjggNDEuNC0xNC41IDE0LTI3LjUgMjkuNS00MC4xIDQ1LjItMy41IDQuNi05IDYuOS0xMy42IDEwLjItMjIuNCAxNS00MC4zIDM1LjgtNTEuOSA2MC4xLTkuMyAxOS43LTE0LjUgNDEuOS0xMS44IDYzLjYgMS45IDEzLjcgOC43IDI3LjYgMjAuOSAzNC45IDEyLjkgOCAyOSA4LjEgNDMuNSA1LjEgMzIuOC03LjQgNjEuNC0yOC45IDgxLTU1LjggMjAuNC0yNy41IDMwLjUtNjIuMiAyOS4yLTk2LjMtLjUtNy41LTEuNi0xNS0xLjctMjIuNSA4IDE5LjUgMTQuOCAzOS43IDE2LjYgNjAuOCAyIDE0LjMgLjcgMjguOC0xLjYgNDIuOS0xLjkgMTEtNS43IDIxLjUtNy44IDMyLjQgMjAuNC0yMi45IDM0LTUwLjkgMzkuMy04MS4xIDUuNi0zNS41IC43LTcxLjktMTQuMi0xMDQuNiAyMC44IDMyIDMyLjMgNjkuNiAzNS43IDEwNy41IC41IDEyLjcgLjUgMjUuNSAwIDM4LjItMi44IDM0LjMtMTIuOSA2Ny42LTI5LjYgOTcuOC0yNi4xIDQ3LjMtNjggODUuNi0xMTcuMiAxMDgtNzguMyAzNi4yLTE3NC43IDMxLjMtMjQ4LTE0LjctMzktMjMuOC03MC42LTU4LTkxLjQtOTguNy0xNC43LTI4LjktMjMuMy02MC41LTI1LjQtOTIuOWwwLTMxLjNDMy45IDE3MiA0MC45IDEwNS44IDk2IDYzLjR6bTIyMiA4MC4zYzUuNS0uOSAxMC44LTIuNCAxNi00LjUgNS0xLjggOS4yLTUuOSAxMC4zLTExLjItOSA1LTE4IDkuOS0yNi4zIDE1Ljd6Il19LEskdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50ZXJjb2RlIixpY29uOls1MTIsNTEyLFtdLCJmMzgwIiwiTTIwMS44IDI1NC44YTY0LjEgNjQuMSAwIDEgMSAxMjcuNCAxMy44IDY0LjEgNjQuMSAwIDEgMSAtMTI3LjQtMTMuOHptNDEuNiAyNDguOUM5Ni43IDQ5Ni04LjIgMzY1LjUgMTAuMSAyMjQuMyAyMS4zIDEzNy43IDc1LjkgNjcuNCAxNDkuMiAzMi4zIDMxMC4yLTQ0LjggNDk4LjkgNjkuNyA1MDMuOSAyNDguOSA1MDggMzk1LjkgMzg1LjUgNTExLjEgMjQzLjQgNTAzLjd6bTE3OS45LTE4MGMyNy45LTExOC0xNjAuNS0yMDUuOS0yMzcuMi0yMzQuMi01Ny41IDU2LjMtNjkuMSAxODguNi0zMy44IDM0NC40IDY4LjggMTUuOCAxNjkuMS0yNi40IDI3MS0xMTAuMnoiXX0sWSR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlYmlhbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTYwYiIsIk0zODAuNCAyNDUuNmMzLTcuNiA1LjUtMTQgNS4yLTI0LjRsLTQuMyA5YzQuNC0xMy4yIDQtMjcuMSAzLjYtNDAuNC0uMi02LS4zLTExLjggMC0xNy40bC0xLjgtLjVjLTEuNS00NS4yLTQwLjYtOTMuMS03NS4zLTEwOS40LTMwLTEzLjgtNzYuMS0xNi4yLTk3LjMtNS44IDEuMy0xLjEgNC4yLTIgNi44LTIuN2wuMy0uMWMzLjMtMSA2LTEuNyA0LTIuOS0xOS4yIDEuOS0yNC45IDUuNS0zMS4xIDkuNGwtLjEgMGMtNC42IDIuOS05LjUgNi0yMC4zIDguNy0zLjUgMy40IDEuNyAyIDUuOCAuOXM3LjItMS45LS4xIDIuNGMtMy41IDEtNi42IDEuMy05LjYgMS42bC0uMSAwYy04LjMgLjgtMTUuOCAxLjYtMzAuNyAxNyAuOCAxLjMgMy40LS4yIDUuMy0xLjNsLjEtLjFjMi4zLTEuNCAzLjQtMi0xLjcgNC40LTE5LjEtMi40LTYwLjMgNDMuNy02OS4xIDU5bDQuNiAuOGMtMy4yIDgtNi44IDE0LjgtMTAgMjAuOC00LjMgOC4xLTcuOSAxNC45LTguNyAyMS4zLS4zIDUuMS0xIDExLTEuNyAxNy4zLS4xIDEtLjIgMi0uMyAzbC0uMSAuNmMtMyAyNy4zLTYuNyA2MC44IDMuOSA3M2wtMS4zIDEzYy42IDEuMiAxLjEgMi4zIDEuNiAzLjUgLjIgLjQgLjQgLjggLjUgMS4xIDEgMi4xIDIgNC4yIDMuMyA2LjJsLTMgLjJjNyAyMi4xIDEwLjggMjIuNSAxNS4xIDIyLjkgNC40IC40IDkuMyAuOSAxOC43IDI0LjItMi43LS45LTUuNS0xLjktOS40LTcuMi0uNSA0LjEgNS44IDE2LjMgMTMuMSAyNS44bC0zLjEgMy42YzIuMSAzLjcgNC44IDYuMiA3LjYgOC44IDEgLjkgMi4xIDEuOSAzLjEgMi45LTExLjktNi41IDMuMiAxMy43IDExLjkgMjUuMiAuOCAxLjEgMS41IDIgMi4yIDIuOSAxLjQgMS45IDIuNSAzLjQgMi45IDQuMWwyLjQtNC4yYy0uMyA2LjEgNC4zIDEzLjkgMTMuMSAyNC43bDcuMy0uM2MzIDYgMTQgMTYuNyAyMC43IDE3LjJsLTQuNCA1LjhjOC4xIDIuNiAxMC4zIDQuMyAxMi43IDYuMiAyLjYgMi4xIDUuNCA0LjMgMTYuMSA4LjFsLTQuMi03LjRjMy41IDMgNi4yIDUuOSA4LjggOC43bC4xIC4xYzUuMiA1LjYgOS45IDEwLjYgMTkuNyAxNS4zIDEwLjcgMy43IDE2LjYgNC43IDIyLjcgNS44IC4zIDAgLjYgLjEgLjkgLjEgNS40IC44IDExLjIgMS44IDIwLjggNC41LTEuMS0uMS0yLjItLjEtMy4zLS4xLTIuMy0uMS00LjctLjEtNy0uMS0xNC40LS4yLTI5LjItLjQtNDIuNy01LjItOTYuNi0yNS43LTE4NC45LTEzOS0xNzguNC0yNTUuNi0uNi05LjktLjMtMjAuOSAwLTMwLjcgLjQtMTMuNSAuNy0yNC44LTEuNi0yOC4zbDEtMy4xYzUuMy0xNy40IDExLjctMzguMiAyMy44LTYyLjhsLS4xLS4yIDAtLjFjLjQgLjQgMy40IDMuNCA4LjgtNS44IC44LTEuOCAxLjYtMy43IDIuNC01LjYgLjUtMS4xIC45LTIuMiAxLjQtMy4yIDIuNS02LjEgNS4xLTEyLjMgOC40LTE3LjlsMi42LS42YzEuNy0xMC4xIDE3LTIzLjggMjkuOC0zNS4ybDEuMS0xYzUuNy01LjEgMTAuNy05LjcgMTMuNi0xMy4xbC43IDQuNGMxNy0xNS45IDQ0LjYtMjcuNSA2NS42LTM2LjRsLjUtLjJjNC44LTIgOS4zLTMuOSAxMy4zLTUuNy0zLjQgMy44IDIuMiAyLjcgMTAgMSA0LjgtMSAxMC40LTIuMSAxNS4zLTIuNGwtMy45IDIuMWMtMi43IDEuNC01LjQgMi44LTggNC42IDguMS0yIDExLjctMS40IDE1LjctLjhsLjMgMGMzLjUgLjYgNy4zIDEuMiAxNC42IC4yLTUuNiAuOC0xMi4zIDMtMTEuMiAzLjggNy45IC45IDEyLjgtLjEgMTcuMi0xbC4yIDBjNS41LTEuMSAxMC4zLTIgMTkuMyAuOWwtMS00LjhjNy4zIDIuNiAxMi43IDQuMyAxNy41IDUuOGwuNSAuMWMxMCAzIDE3LjYgNS4zIDM0LjIgMTQuMSAzLjIgLjIgNS4zLS41IDcuNC0xLjJsLjEgMGMzLjYtMS4xIDctMi4xIDE1LjIgMS4yIC4zIC41IC41IDEgLjcgMS40IC4xIC4yIC4yIC41IC4zIC43bDAgLjFjMSAyLjYgMS44IDQuNiAxNC42IDEyLjEgMS43LS43LTIuNy00LjctNi40LTguMmwtLjEtLjFjLS4yLS4xLS4zLS4zLS41LS40IDMyLjIgMTcuMyA2Ny4zIDU0LjEgNzggOTMuNS02LTExLjEtNS4yLTUuNS00LjMgLjUgLjYgNCAxLjIgOC4xLS4yIDcuNSA0LjUgMTIuMSA4LjEgMjQuNSAxMC40IDM3LjRsLS44LTIuOS0uMS0uM2MtMy4zLTExLjktOS42LTM0LjMtMTkuOS00OS4zLS40IDQuMy0yLjggMy45LTUuMiAzLjVsLS4xIDBjLTMuMy0uNi02LjItMS4xLTEuOSAxMi42IDIuNiAzLjggMy4xIDIuNCAzLjUgMS4xIC41LTEuNSAuOS0yLjcgNC43IDUuMiAuMSA0LjEgMSA4LjIgMi4xIDEyLjdsLjEgLjZjLjEgLjMgLjEgLjUgLjIgLjhsLjEgLjZjLjYgMi42IDEuMyA1LjQgMS44IDguNC0xLjEtLjItMi4zLTIuMi0zLjQtNC4yLTEuNC0yLjQtMi44LTQuNy0zLjctMy4yIDIuNCAxMS41IDYuNSAxNy40IDggMTguMy0uMyAuNi0uNiAuNy0xLjEgLjctLjggMC0xLjggLjEtMS45IDUuMyAuNyAxMy43IDMuMyAxMi41IDUuMyAxMS42IC42LS4zIDEuMi0uNiAxLjctLjQtLjYgMi41LTEuNiA1LjEtMi43IDcuOS0yLjggNy4xLTYgMTUuNC0zLjQgMjYuMS0uOC0zLTItNi0zLjEtOC45bC0uMS0uNGMtLjItLjUtLjQtMS0uNi0xLjUtLjMtLjgtLjYtMS42LS45LTIuMy0uNiA0LjQtLjMgNy43LS4xIDEwLjZsMCAuN2MuNCA1LjMgLjcgMTAtMyAxOS45IDQuMy0xNC4yIDMuOC0yNi45LS4yLTIwLjggMSAxMC45LTMuNyAyMC40LTggMjguOWwtLjEgLjJjLTMuNiA3LjEtNi44IDEzLjUtNS45IDE5LjNsLTUuMi03LjFjLTcuNSAxMC45LTcgMTMuMy02LjUgMTUuNWwwIC4xYy41IDEuOSAxIDMuOC0zLjQgMTAuOCAxLjctMi45IDEuMy0zLjYgMS00LjItLjQtLjgtLjctMS41IDEuNy01LjEtMS42IC4xLTUuNSAzLjktMTAuMSA4LjUtMy45IDMuOS04LjUgOC40LTEyLjggMTEuOC0zNy41IDMwLjEtODIuMyAzNC0xMjUuNiAxNy44IC4yLTEtLjItMi4xLTMuMS00LjEtMzYuOC0yOC4yLTU4LjUtNTIuMS01MC45LTEwNy41IDIuMS0xLjYgMy42LTUuOCA1LjMtMTAuOGwuMi0uNCAuMS0uMyAwLS4xYzIuOS04LjQgNi41LTE4LjggMTQuMy0yMy44IDcuOC0xNy4zIDMxLjMtMzMuMyA1Ni40LTMzLjcgMjUuNi0xLjQgNDcuMiAxMy43IDU4LjEgMjcuOS0xOS44LTE4LjQtNTIuMS0yNC03OS43LTEwLjQtMjguMiAxMi43LTQ1IDQzLjgtNDIuNSA3NC43IC4zLS40IC42LS42IC45LS44bC4yLS4yYy42LS41IDEuMS0uOSAxLjQtMy4zLS45IDYwLjIgNjQuOCAxMDQuMyAxMTIuMSA4MmwuNiAxLjNjMTIuNy0zLjUgMTUuOS02LjUgMjAuMy0xMC43bC4xLS4xYzIuMi0yLjEgNC43LTQuNSA4LjktNy4zLS4zIC43LTEuMyAxLjctMi40IDIuNy0yLjIgMi4xLTQuNiA0LjUtMS42IDQuNiA1LTEuMyAxOC41LTEzLjQgMjguNS0yMi4zIC42LS41IDEuMi0xIDEuNy0xLjUgMS41LTEuMyAyLjgtMi41IDQtMy42bC4zLS4zYzEuOS00LjIgMS42LTUuNiAxLjMtN2wwLS4xYy0uNC0xLjYtLjgtMy4zIDIuNC05LjZsNy4zLTMuN2MuOC0yLjEgMS41LTQuMSAyLjItNiAuMi0uNiAuNS0xLjIgLjctMS44bC0uNC0uMi0uMS0uMXpNMjQ4IDMzNC4xYy02LTMtMTMuNy04LjktMTQuOC0xMS40bC0uNCAuM2MtLjMgLjYtLjUgMS4zLS4yIDIuMi0xMi4yLTUuNy0yMy40LTE0LjMtMzIuNi0yNC45IDQuOSA3LjEgMTAuMSAxNC4xIDE3IDE5LjUtNi45LTIuMy0xNS4xLTExLjgtMjEuNi0xOS4zbC0uMS0uMWMtNC4zLTUtNy45LTkuMS05LjctOS41IDE5LjggMzUuNSA4MC41IDYyLjMgMTEyLjMgNDktMTQuNyAuNS0zMy40IC4zLTQ5LjktNS44em03OS4zLTExOS43bC0uMS0uMmMtLjUtMS41LTEuMS0zLjEtMS43LTMuNCAxLjQtNS44IDUuNC0xMC43IDQuNCA0LjYtMSAzLjgtMS44IDEuNS0yLjYtMXptLTQuMiAyMi4yYy0xLjMgNy45LTUgMTUuNS0xMC4xIDIyLjUgLjItMi0xLjItMi40LTIuNi0yLjgtMi45LS44LTUuOS0xLjYgNS42LTE2LjEtLjUgMS45LTIuMSA0LjYtMy43IDcuM2wtLjMgLjRjLTMuNiA1LjktNi43IDExIDQgNC4zbDEtMS44YzIuNi00LjUgNS04LjggNi0xMy44bC4xIDB6bS01NS42IDMzLjljNy4xIC42IDE0LjEgLjYgMjEtMS4xLTIuNSAyLjQtNS4yIDQuOC04LjMgNy4yLTExLjEtMS43LTIxLjItNi0xMi43LTYuMXptLTkyLjYgMTEuNmMzLjYgNy4xIDYuNCAxMS41IDkgMTUuN2wuMSAuMmMyLjMgMy43IDQuNCA3LjEgNi44IDExLjctNS4xLTQuMi04LjctOS41LTEyLjUtMTVsLS4zLS41Yy0xLjQtMi4xLTIuOC00LjItNC40LTYuMmwxLjItNS45IC4xIDB6bTcuNS05LjZjMS42IDMuMyAzLjIgNi40IDUuNyA5LjFsMi42IDcuNy0xLjMtMi4xYy0zLjItNS4zLTYuMy0xMC42LTgtMTYuN2wxIDJ6bTIzOC45LTQxLjZjLTIuMyAxNy40LTcuNyAzNC42LTE2IDUwLjMgNy42LTE0LjkgMTIuNS0zMC45IDE0LjgtNDcuMmwxLjItMy4xek0zNS44IDExMC42Yy40IC44IDEuNCAuNSAyLjMgLjMgMS45LS41IDMuNi0uOS0uMSA3LjYtLjUgLjMtMSAuNy0xLjUgMS0xLjQgLjktMi44IDEuOS0zLjkgMyAxLjktMy44IDMuNS03LjQgMy4yLTExLjl6TTI1LjUgMTUyLjNjLS43IDMuNy0xLjUgNy45LTMuNCAxMy45IC4yLTEuOSAwLTMuNS0uMi00LjlsMC0uMWMtLjQtMy40LS43LTYuMyA0LjMtMTIuOC0uMyAxLjItLjUgMi41LS43IDMuOGwwIC4xeiJdfSxaJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFzdG9kb24iLGljb246WzQ0OCw1MTIsW10sImY0ZjYiLCJNNDMzIDE3OS4xYzAtOTcuMi02My43LTEyNS43LTYzLjctMTI1LjctNjIuNS0yOC43LTIyOC42LTI4LjQtMjkwLjUgMCAwIDAtNjMuNyAyOC41LTYzLjcgMTI1LjcgMCAxMTUuNy02LjYgMjU5LjQgMTA1LjYgMjg5LjEgNDAuNSAxMC43IDc1LjMgMTMgMTAzLjMgMTEuNCA1MC44LTIuOCA3OS4zLTE4LjEgNzkuMy0xOC4xbC0xLjctMzYuOXMtMzYuMyAxMS40LTc3LjEgMTAuMWMtNDAuNC0xLjQtODMtNC40LTg5LjYtNTQtLjYtNC42LS45LTkuMy0uOS0xMy45IDg1LjYgMjAuOSAxNTguNyA5LjEgMTc4LjcgNi43IDU2LjEtNi43IDEwNS00MS4zIDExMS4yLTcyLjkgOS44LTQ5LjggOS0xMjEuNSA5LTEyMS41ek0zNTcuOSAzMDQuM2wtNDYuNiAwIDAtMTE0LjJjMC00OS43LTY0LTUxLjYtNjQgNi45bDAgNjIuNS00Ni4zIDAgMC02Mi41YzAtNTguNS02NC01Ni42LTY0LTYuOWwwIDExNC4yLTQ2LjcgMGMwLTEyMi4xLTUuMi0xNDcuOSAxOC40LTE3NSAyNS45LTI4LjkgNzkuOC0zMC44IDEwMy44IDYuMWwxMS42IDE5LjUgMTEuNi0xOS41YzI0LjEtMzcuMSA3OC4xLTM0LjggMTAzLjgtNi4xIDIzLjcgMjcuMyAxOC40IDUzIDE4LjQgMTc1bDAgMHoiXX0sWCR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNrZXRjaCIsaWNvbjpbNTEyLDUxMixbXSwiZjdjNiIsIk0yNy44IDE2Mi4ybC0xOC41IDI0LjkgOTAuNSAwIDYuOS0xMzAuNy03OC45IDEwNS44ek0zOTYuNiA0NS43TDI2OCAzMiA0MDMuNyAxNzkuMiAzOTYuNiA0NS43ek0xMTIuNSAyMTguM2wtMTEuMi0yMi05MS4xIDAgMjI0LjkgMjYxLjctMTIyLjYtMjM5Ljd6bTItMzEuMmwyODQgMEMzNDAuNiAxMjQuMyAyOTMuMyA3Mi45IDI1Ni42IDMzTDExNC41IDE4Ny4xem0yOTcuMyA5LjFsLTEzMy45IDI2MS44IDIyNC44LTI2MS43LTkwLjkgMCAwLS4xek00MTUuNyA2OWwtOS40LTEyLjYgLjkgMTcuMyA2LjEgMTEzLjQgOTAuMyAwLTg3LjktMTE4LjF6TTExMy44IDkzLjVMMTA5LjIgMTc5LjEgMjQ1IDMyIDExNi40IDQ1LjcgMTEzLjggOTMuNXpNNDAxLjUgMTk2LjJsLTI5MCAwYzE4LjIgMzUuNiA2Ni42IDEzMC4yIDE0NS4xIDI4My44TDQwMS41IDE5Ni4yeiJdfSxRJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViLWF3ZXNvbWUiLGljb246WzY0MCw1MTIsW10sImU2ODIiLCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwuMSAweiJdfSxKJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FzcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQxZSIsIk0zMDEuOCAzNzguOWwwIDB6bTI0OS4xLTg3Yy0yMC4xIDAtNDAgNC42LTU4IDEzLjUtNS45LTExLjktMTItMjIuMy0xMy0zMC4xLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjljLTIuMyA2LjItNC4xIDEyLjYtNS4zIDE5LjEtMi4zIDExLjctMjUuOCA1My41LTM5LjEgNzUuMy00LjQtOC41LTguMS0xNi04LjktMjItMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjMtNi43LTI0IDIuNS0yNS4zIDUuOS0yLjcgMTEuNC01LjMgMTkuMS0zMy45IDc3LjMtNDIuMSA5NS40Yy00LjIgOS4yLTcuOCAxNi42LTEwLjQgMjEuNi0uNCAuOC0uNyAxLjMtLjkgMS43IC4zLS41IC41LTEgLjUtLjgtMi4yIDQuMy0zLjUgNi43LTMuNSA2LjdsMCAuMWMtMS43IDMuMi0zLjYgNi4xLTQuNSA2LjEtLjYgMC0xLjktOC40IC4zLTE5LjkgNC43LTI0LjIgMTUuOC02MS44IDE1LjctNjMuMS0uMS0uNyAyLjEtNy4yLTcuMy0xMC43LTkuMS0zLjMtMTIuNCAyLjItMTMuMiAyLjJzLTEuNCAyLTEuNCAyIDEwLjEtNDIuNC0xOS40LTQyLjRjLTE4LjQgMC00NCAyMC4yLTU2LjYgMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1LjgtMzguMi0xMDEuOS02NS4yLTk5LjEtMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4xLTEyNy40IDk4LTQ4LjggMTc2LjMtMzUuNCAxODkuOC01LjYgMTkuNCA0Mi41LTQxLjkgMTIxLjYtMTQzLjcgMTMzLTM4LjggNC4zLTU5LjItMTAuNy02NC4zLTE2LjMtNS4zLTUuOS02LjEtNi4yLTguMS01LjEtMy4zIDEuOC0xLjIgNyAwIDEwLjEgMyA3LjkgMTUuNSAyMS45IDM2LjggMjguOSAxOC43IDYuMSA2NC4yIDkuNSAxMTkuMi0xMS44IDYxLjgtMjMuOCAxMDkuOS05MC4xIDk1LjgtMTQ1LjYtMTQuNC01Ni40LTEwNy45LTc0LjktMTk2LjMtNDMuNS01Mi43IDE4LjctMTA5LjcgNDguMS0xNTAuNyA4Ni40LTQ4LjcgNDUuNi01Ni41IDg1LjMtNTMuMyAxMDEuOSAxMS40IDU4LjkgOTIuNiA5Ny4zIDEyNS4xIDEyNS43LTEuNiAuOS0zLjEgMS43LTQuNSAyLjUtMTYuMyA4LjEtNzguMiA0MC41LTkzLjcgNzQuNy0xNy41IDM4LjggMi45IDY2LjYgMTYuMyA3MC40IDQxLjggMTEuNiA4NC42LTkuMyAxMDcuNi00My42czIwLjItNzkuMSA5LjYtOTkuNWMtLjEtLjMtLjMtLjUtLjQtLjggNC4yLTIuNSA4LjUtNSAxMi44LTcuNSA4LjMtNC45IDE2LjQtOS40IDIzLjUtMTMuMy00IDEwLjgtNi45IDIzLjgtOC40IDQyLjYtMS44IDIyIDcuMyA1MC41IDE5LjEgNjEuNyA1LjIgNC45IDExLjUgNSAxNS40IDUgMTMuOCAwIDIwLTExLjQgMjYuOS0yNSA4LjUtMTYuNiAxNi0zNS45IDE2LTM1LjlzLTkuNCA1Mi4yIDE2LjMgNTIuMmM5LjQgMCAxOC44LTEyLjEgMjMtMTguM2wwIC4xcy4yLS40IC43LTEuMmMxLTEuNSAxLjUtMi40IDEuNS0yLjRsMC0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC42LTQ2IDE2LjItMzEuOCAzMS43LTcxLjUgMzEuNy03MS41IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yIDAgLjEgMCAuMSAuMSAuMi0zIDQtNi40IDguMy05LjkgMTIuNS0xMi44IDE1LjItMjggMzIuNi0zMCAzNy42LTIuNCA1LjktMS44IDEwLjMgMi44IDEzLjcgMy40IDIuNiA5LjQgMyAxNS43IDIuNSAxMS41LS44IDE5LjYtMy42IDIzLjUtNS40IDcuMi0yLjYgMTQtNi4xIDIwLjItMTAuNiAxMi41LTkuMiAyMC4xLTIyLjQgMTkuNC0zOS44LS40LTkuNi0zLjUtMTkuMi03LjMtMjguMiAxLjEtMS42IDIuMy0zLjMgMy40LTUgMTkuOC0yOC45IDM1LjEtNjAuNiAzNS4xLTYwLjYgMS41IDguNyAzLjYgMTcuMyA2LjIgMjUuOCAyLjQgOC4xIDcuMSAxNyAxMS40IDI1LjctMTguNiAxNS4xLTMwLjEgMzIuNi0zNC4xIDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjUgNy43LTIuNiAxNS02LjMgMjEuNi0xMS4xIDEyLjUtOS4yIDI0LjYtMjIuMSAyMy44LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjEtMTAuMiA2Mi4xLTcuMiA1NS43IDYuNSA2Ni42IDQxLjMgNjQuNSA1NS44cy0xMy44IDIyLjYtMTcuNyAyNS01LjEgMy4zLTQuOCA1LjFjLjUgMi42IDIuMyAyLjUgNS42IDEuOSA0LjYtLjggMjkuMi0xMS44IDMwLjMtMzguNyAxLjYtMzQtMzEuMS03MS40LTg5LTcxLjFsMCAwek0xMjEuOCA0MzYuNmMtMTguNCAyMC4xLTQ0LjIgMjcuNy01NS4zIDIxLjMtMTEuOS02LjktNy4yLTM2LjUgMTUuNS01Ny45IDEzLjgtMTMgMzEuNi0yNSA0My40LTMyLjQgMi43LTEuNiA2LjYtNCAxMS40LTYuOSAuOC0uNSAxLjItLjcgMS4yLS43IC45LS42IDEuOS0xLjEgMi45LTEuNyA4LjMgMzAuNCAuMyA1Ny4yLTE5LjEgNzguM2wwIDB6bTEzNC40LTkxLjRjLTYuNCAxNS43LTE5LjkgNTUuNy0yOC4xIDUzLjYtNy0xLjgtMTEuMy0zMi4zLTEuNC02Mi4zIDUtMTUuMSAxNS42LTMzLjEgMjEuOS00MC4xIDEwLjEtMTEuMyAyMS4yLTE0LjkgMjMuOC0xMC40IDMuNSA1LjktMTIuMiA0OS40LTE2LjIgNTkuMnptMTExIDUzYy0yLjcgMS40LTUuMiAyLjMtNi40IDEuNi0uOS0uNSAxLjEtMi40IDEuMS0yLjRzMTMuOS0xNC45IDE5LjQtMjEuN2MzLjItNCA2LjktOC43IDEwLjktMTMuOSAwIC41IC4xIDEgLjEgMS42LS4xIDE3LjktMTcuMyAzMC0yNS4xIDM0LjhsMCAwem04NS42LTE5LjVjLTItMS40LTEuNy02LjEgNS0yMC43IDIuNi01LjcgOC42LTE1LjMgMTktMjQuNSAxLjIgMy41IDEuOCA3LjEgMS45IDEwLjgtLjEgMjIuNS0xNi4yIDMwLjktMjUuOSAzNC40bDAgMHoiXX0sZUR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVlbWEiLGljb246WzM4NCw1MTIsW10sImU4NWYiLCJNODcuNCA0NDUuMWMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRTMTA1LjkgNTEyIDg3LjQgNTEyIDU0IDQ5NyA1NCA0NzguNSA2OSA0NDUuMSA4Ny40IDQ0NS4xem0xMDkuMiAwYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNHMtMTUgMzMuNS0zMy41IDMzLjUtMzMuNC0xNS0zMy40LTMzLjUgMTUtMzMuNCAzMy40LTMzLjR6bTEwOS4zIDBjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40cy0xNSAzMy41LTMzLjUgMzMuNS0zMy41LTE1LTMzLjUtMzMuNSAxNS0zMy40IDMzLjUtMzMuNHpNMTkyLjMgLjNjMTA5LjggMCAxOTkuMiA4OS4zIDE5OS4yIDE5OS4xUzMwMi4yIDM5OC41IDE5Mi40IDM5OC41Yy00MC41IDAtNzguMS0xMi4xLTEwOS42LTMyLjlsLTc2LjUgMjQuNSAyNC44LTc0QzcuMyAyODMuNC02LjggMjQzLTYuOCAxOTkuNC02LjggODkuNyA4Mi41IC4zIDE5Mi4zIC4zem0uMSA5My43Yy0zMS42IDAtNTcuMyAyNS44LTU3LjMgNTcuM2wwIDI2LjctMS44IDBjLTEwIDAtMTggOC0xOCAxOGwwIDcyLjNjMCAxMCA4IDE4IDE4IDE4bDExOC4xIDBjMTAgMCAxOC04IDE4LTE4bC4xIDAgMC03Mi4zYzAtMTAtOC4xLTE4LTE4LTE4bC0xLjggMCAwLTI2LjdjMC0zMS42LTI1LjgtNTcuMy01Ny4zLTU3LjN6bS0uMSAyMy41YzE4LjYgMCAzMy44IDE1LjEgMzMuOCAzMy44bDAgMjYuNy02Ny42IDAgMC0yNi43YzAtMTguNiAxNS4xLTMzLjggMzMuOC0zMy44eiJdfSxCOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdoYXRzYXBwIixpY29uOls0NDgsNTEyLFsid2hhdHNhcHAtc3F1YXJlIl0sImY0MGMiLCJNOTIuMSAyNTQuNmMwIDI0LjkgNyA0OS4yIDIwLjIgNzAuMWwzLjEgNS0xMy4zIDQ4LjYgNDkuOS0xMy4xIDQuOCAyLjljMjAuMiAxMiA0My40IDE4LjQgNjcuMSAxOC40bC4xIDBjNzIuNiAwIDEzMy4zLTU5LjEgMTMzLjMtMTMxLjggMC0zNS4yLTE1LjItNjguMy00MC4xLTkzLjItMjUtMjUtNTgtMzguNy05My4yLTM4LjctNzIuNyAwLTEzMS44IDU5LjEtMTMxLjkgMTMxLjh6TTI3NC44IDMzMGMtMTIuNiAxLjktMjIuNCAuOS00Ny41LTkuOS0zNi44LTE1LjktNjEuOC01MS41LTY2LjktNTguNy0uNC0uNi0uNy0uOS0uOC0xLjEtMi0yLjYtMTYuMi0yMS41LTE2LjItNDEgMC0xOC40IDktMjcuOSAxMy4yLTMyLjMgLjMtLjMgLjUtLjUgLjctLjggMy42LTQgNy45LTUgMTAuNi01IDIuNiAwIDUuMyAwIDcuNiAuMWwuOCAwYzIuMyAwIDUuMiAwIDguMSA2LjggMS4yIDIuOSAzIDcuMyA0LjkgMTEuOCAzLjMgOCA2LjcgMTYuMyA3LjMgMTcuNiAxIDIgMS43IDQuMyAuMyA2LjktMy40IDYuOC02LjkgMTAuNC05LjMgMTMtMy4xIDMuMi00LjUgNC43LTIuMyA4LjYgMTUuMyAyNi4zIDMwLjYgMzUuNCA1My45IDQ3LjEgNCAyIDYuMyAxLjcgOC42LTEgMi4zLTIuNiA5LjktMTEuNiAxMi41LTE1LjUgMi42LTQgNS4zLTMuMyA4LjktMnMyMy4xIDEwLjkgMjcuMSAxMi45Yy44IC40IDEuNSAuNyAyLjEgMSAyLjggMS40IDQuNyAyLjMgNS41IDMuNiAuOSAxLjkgLjkgOS45LTIuNCAxOS4xLTMuMyA5LjMtMTkuMSAxNy43LTI2LjcgMTguOHpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTE0OC4xIDM5My45TDY0IDQxNiA4Ni41IDMzMy44Yy0xMy45LTI0LTIxLjItNTEuMy0yMS4yLTc5LjMgLjEtODcuNCA3MS4yLTE1OC41IDE1OC42LTE1OC41IDQyLjQgMCA4Mi4yIDE2LjUgMTEyLjIgNDYuNSAyOS45IDMwIDQ3LjkgNjkuOCA0Ny45IDExMi4yIDAgODcuNC03Mi43IDE1OC41LTE2MC4xIDE1OC41LTI2LjYgMC01Mi43LTYuNy03NS44LTE5LjN6Il19LHREdD1COGUsYUR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNreXBlIixpY29uOls0NDgsNTEyLFtdLCJmMTdlIiwiTTQyNC43IDI5OS44YzIuOS0xNCA0LjctMjguOSA0LjctNDMuOCAwLTExMy41LTkxLjktMjA1LjMtMjA1LjMtMjA1LjMtMTQuOSAwLTI5LjcgMS43LTQzLjggNC43LTE5LTE0LjctNDIuNi0yMy40LTY4LjMtMjMuNC02MS44IDAtMTEyIDUwLjItMTEyIDExMiAwIDI1LjcgOC43IDQ5LjMgMjMuMyA2OC4yLTIuOSAxNC00LjcgMjguOS00LjcgNDMuOCAwIDExMy41IDkxLjkgMjA1LjMgMjA1LjMgMjA1LjMgMTQuOSAwIDI5LjctMS43IDQzLjgtNC43IDE5IDE0LjYgNDIuNiAyMy4zIDY4LjIgMjMuMyA2MS44IDAgMTEyLTUwLjIgMTEyLTExMiAuMS0yNS42LTguNi00OS4yLTIzLjItNjguMXpNMjMwLjEgMzkxLjNjLTY1LjYgMC0xMjAuNS0yOS4yLTEyMC41LTY1IDAtMTYgOS0zMC42IDI5LjUtMzAuNiAzMS4yIDAgMzQuMSA0NC45IDg4LjEgNDQuOSAyNS43IDAgNDIuMy0xMS40IDQyLjMtMjYuMyAwLTE4LjctMTYtMjEuNi00Mi0yOC02Mi41LTE1LjQtMTE3LjgtMjItMTE3LjgtODcuMiAwLTU5LjIgNTguNi04MS4xIDEwOS4xLTgxLjEgNTUuMSAwIDExMC44IDIxLjkgMTEwLjggNTUuNCAwIDE2LjktMTEuNCAzMS44LTMwLjMgMzEuOC0yOC4zIDAtMjkuMi0zMy41LTc1LTMzLjUtMjUuNyAwLTQyIDctNDIgMjIuNSAwIDE5LjggMjAuOCAyMS44IDY5LjEgMzMgNDEuNCA5LjMgOTAuNyAyNi44IDkwLjcgNzcuNiAwIDU5LjEtNTcuMSA4Ni41LTExMiA4Ni41eiJdfSxzRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5ndWxhciIsaWNvbjpbNDQ4LDUxMixbXSwiZjQyMCIsIk0xODUuNyAyNjguMWw3Ni4yIDAtMzguMS05MS42LTM4LjEgOTEuNnpNMjIzLjggMzJMMTYgMTA2LjQgNDcuOCAzODIuMSAyMjMuOCA0ODAgMzk5LjggMzgyLjEgNDMxLjYgMTA2LjQgMjIzLjggMzJ6TTM1NCAzNzMuOGwtNDguNiAwLTI2LjItNjUuNC0xMTAuNiAwLTI2LjIgNjUuNC00OC43IDAgMTMwLjEtMjkyLjMgMTMwLjIgMjkyLjN6Il19LGlEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaXJjbGUtenVsaXAiLGljb246WzUxMiw1MTIsW10sImU4NTEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTI0My41IDI0MGMxLjItMS45LS45LTQuMi0yLjYtMi44bC04OSA3OS41Yy05LjIgNy4yLTE1LjIgMTkuMS0xNS4yIDMyLjUgMCAyMS45IDE2IDM5LjggMzUuNyAzOS44bDE2Ny4zIDBjMTkuNiAwIDM1LjctMTcuOSAzNS43LTM5LjggMC0yMS45LTE2LjEtMzkuNy0zNS43LTM5LjhsLTEyNi42IDBjLTEuOSAwLTMtMi4zLTIuMS00LjFMMjQzLjUgMjQwek0xNzIuNCAxMjMuMWMtMTkuNiAwLTM1LjcgMTcuOS0zNS43IDM5LjhzMTYgMzkuOCAzNS43IDM5LjhsMTI2LjYgMGMxLjkgMCAzLjEgMi4yIDIuMiA0LjFMMjY4LjUgMjcyYy0xLjIgMS45IC45IDQuMiAyLjYgMi44bDg5LTc5LjVjOS4yLTcuMiAxNS4yLTE5LjEgMTUuMi0zMi41IDAtMjEuOS0xNi0zOS43LTM1LjctMzkuOGwtMTY3LjMgMHoiXX0sckR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5zdXNlIixpY29uOls2NDAsNTEyLFtdLCJlNjJiIiwiTTQ3MS4xIDEwMi43cy0uMyAxOC4zLS4zIDIwLjNjLTkuMS0zLTc0LjQtMjQuMS0xMzUuNy0yNi4zLTUxLjktMS44LTEyMi44LTQuMy0yMjMgNTcuMy0xOS40IDEyLjQtNzMuOSA0Ni4xLTk5LjYgMTA5LjctNS41IDEzLjMtMTIuNiA0My4zLTUuNSA3MS40IDMuMyAxMi44IDguOSAyNC45IDE2LjUgMzUuNyAxNy40IDI1IDQ2LjYgNDEuNiA3OC4xIDQ0LjQgNDQuNCAzLjkgNzguMS0xNiA5MC01My4zIDguMi0yNS44IDAtNjMuNi0zMS41LTgyLjktMjUuNi0xNS43LTUzLjMtMTIuMS02OS4yLTEuNi0xMy45IDkuMi0yMS44IDIzLjUtMjEuNiAzOS4yIC4zIDI3LjggMjQuMyA0Mi42IDQxLjUgNDIuNiA1LjQgMCAxMC43LS45IDE1LjgtMi43IDYuNS0xLjggMTMuMy02LjUgMTMuMy0xNC45IDAtMTIuMS0xMS42LTE0LjgtMTYuOC0xMy45LTIuOSAuNS00LjUgMi0xMS44IDIuNC0yLS4yLTEyLTMuMS0xMi0xNGwwLS4xYy4yLTEyLjMgMTMuMi0xOCAyNS41LTE2LjkgMzIuMyAyLjggNDcuNyA0MC43IDI4LjUgNjUuNy0xOC4zIDIzLjctNzYuNiAyMy4yLTk5LjctMjAuNC0yNi00OS4yIDEyLjctMTExLjIgODctOTguNCAzMy4yIDUuNyA4My42IDM1LjUgMTAyLjQgMTA0LjNsNDUuOSAwYy01LjctMTcuNi04LjktNjguMyA0Mi43LTY4LjMgNTYuNyAwIDYzLjkgMzkuOSA3OS44IDY4LjNsNDguNiAwYy0xMi44LTE4LjMtMjEuNy0zOC43LTE4LjktNTUuOCA1LjYtMzMuOCAzOS43LTE4LjQgODIuNC0xNy40IDY2LjUgLjQgMTAyLjEtMjcgMTAzLjEtMjggMy43LTMuMSA2LjUtMTUuOCA3LTE3LjcgMS4zLTUuMS0zLjItMi40LTMuMi0yLjQtOC43IDUuMi0zMC41IDE1LjItNTAuOSAxNS42LTI1LjMgLjUtNzYuMi0yNS40LTgxLjYtMjguMi0uMy0uNCAuMSAxLjItMTEtMjUuNSA4OC40IDU4LjMgMTE4LjMgNDAuNSAxNDUuMiAyMS43IC44LS42IDQuMy0yLjkgMy42LTUuNy0xMy44LTQ4LjEtMjIuNC02Mi43LTM0LjUtNjkuNi0zNy0yMS42LTEyNS0zNC43LTEyOS4yLTM1LjMgLjEtLjEtLjktLjMtLjkgLjd6bTYwLjQgNzIuOGEzNy42IDM3LjYgMCAxIDEgNzUuMiAyLjYgMzcuNiAzNy42IDAgMSAxIC03NS4yLTIuNnptMzguNi0yNS4zYy0zLjYtLjMtNy4xIC4xLTEwLjUgMS4ycy02LjUgMi45LTkuMiA1LjMtNC44IDUuMy02LjMgOC41LTIuNCA2LjctMi41IDEwLjMgLjUgNy4xIDEuOCAxMC40IDMuMyA2LjMgNS44IDguOSA1LjUgNC41IDguOCA1LjkgNi45IDIgMTAuNCAxLjljMy42IC4zIDcuMS0uMSAxMC41LTEuMnM2LjUtMi45IDkuMi01LjMgNC44LTUuMyA2LjMtOC41IDIuNC02LjcgMi41LTEwLjMtLjUtNy4xLTEuOC0xMC40LTMuMy02LjMtNS44LTguOS01LjUtNC41LTguOC01LjktNi45LTItMTAuNC0xLjl6bTQuMyAyOC44Yy0xNS40IDAtMTUuNC0xNS42IDAtMTUuNnMxNS40IDE1LjYgMCAxNS42eiJdfSxvRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJvcGJveCIsaWNvbjpbNTc2LDUxMixbXSwiZjE2YiIsIk0yODguNCAxMTYuM2wtMTMyIDg0LjMgMTMyIDg0LjMtMTMyIDg0LjMtMTMyLjQtODUuMSAxMzIuMy04NC4zLTEzMi4zLTgzLjUgMTMyLjMtODQuMyAxMzIuMSA4NC4zek0xNTUuNiAzOTUuN2wxMzItODQuMyAxMzIgODQuMy0xMzIgODQuMy0xMzItODQuM3pNMjg4LjQgMjg0LjFsMTMyLTg0LjMtMTMyLTgzLjYgMTMxLjMtODQuMiAxMzIuMyA4NC4zLTEzMi4zIDg0LjMgMTMyLjMgODQuMi0xMzIuMyA4NC4zLTEzMS4zLTg1eiJdfSxuRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVlemVyIixpY29uOls1MTIsNTEyLFtdLCJlMDc3IiwiTTE0LjggMTAxLjFDNi42IDEwMS4xIDAgMTI3LjYgMCAxNjAuM3M2LjYgNTkuMiAxNC44IDU5LjIgMTQuOC0yNi41IDE0LjgtNTkuMi02LjYtNTkuMi0xNC44LTU5LjJ6TTQ0OC43IDQwLjljLTcuNyAwLTE0LjUgMTcuMS0xOS40IDQ0LjEtNy43LTQ2LjctMjAuMi03Ny0zNC4yLTc3LTE2LjggMC0zMS4xIDQyLjktMzggMTA1LjQtNi42LTQ1LjQtMTYuOC03NC4yLTI4LjMtNzQuMi0xNi4xIDAtMjkuNiA1Ni45LTM0LjcgMTM2LjItOS40LTQwLjgtMjMuMi02Ni4zLTM4LjMtNjYuM3MtMjguOCAyNS41LTM4LjMgNjYuM2MtNS4xLTc5LjMtMTguNi0xMzYuMi0zNC43LTEzNi4yLTExLjUgMC0yMS43IDI4LjgtMjguMyA3NC4yLTYuNi02Mi41LTIxLjItMTA1LjQtMzcuOC0xMDUuNC0xNCAwLTI2LjUgMzAuNC0zNC4yIDc3LTQuOC0yNy0xMS43LTQ0LjEtMTkuNC00NC4xLTE0LjMgMC0yNiA1OS4yLTI2IDEzMi4xUzQ5IDMwNS4yIDYzLjMgMzA1LjJjNS45IDAgMTEuNS05LjkgMTUuOC0yNi44IDYuOSA2MS43IDIxLjIgMTA0LjEgMzggMTA0LjEgMTMgMCAyNC41LTI1LjUgMzIuMS02NS42IDUuNCA3Ni4zIDE4LjYgMTMwLjQgMzQuMiAxMzAuNCA5LjcgMCAxOC42LTIxLjQgMjUuMy01Ni40IDcuOSA3Mi4yIDI2LjMgMTIyLjcgNDcuNyAxMjIuN3MzOS41LTUwLjUgNDcuNy0xMjIuN2M2LjYgMzUgMTUuNiA1Ni40IDI1LjMgNTYuNCAxNS42IDAgMjguOC01NC4xIDM0LjItMTMwLjQgNy43IDQwLjEgMTkuNCA2NS42IDMyLjEgNjUuNiAxNi42IDAgMzAuOS00Mi4zIDM4LTEwNC4xIDQuMyAxNi44IDkuNyAyNi44IDE1LjggMjYuOCAxNC4zIDAgMjYtNTkuMiAyNi0xMzIuMVM0NjMgNDAuOSA0NDguNyA0MC45em00OC41IDYwLjJjLTguMiAwLTE0LjggMjYuNS0xNC44IDU5LjJzNi42IDU5LjIgMTQuOCA1OS4yIDE0LjgtMjYuNSAxNC44LTU5LjItNi42LTU5LjItMTQuOC01OS4yeiJdfSxsRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMCIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTMuNiA1My4yYzIuOC0uMyAxMS41IDEgMTEuNSAxMS41bDYuNiAxMDcuMiA0LjktNTkuM2MwLTYgNC43LTEwLjYgMTAuNi0xMC42czEwLjYgNC43IDEwLjYgMTAuNmMwIDIuNS0uNS01LjcgNS43IDgxLjVsNS44LTY0LjJjLjMtMi45IDIuOS05LjMgMTAuMi05LjMgMy44IDAgOS45IDIuMyAxMC42IDguOWwxMS41IDk2LjUgNS4zLTEyLjhjMS44LTQuNCA1LjItNi42IDEwLjItNi42bDU4IDAgMCAyMS4zLTUwLjkgMC0xOC4yIDQ0LjNjLTMuOSA5LjktMTkuNSA5LjEtMjAuOC0zLjFsLTQtMzEuOS03LjUgOTIuNmMtLjMgMy0zIDkuMy0xMC4yIDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLTEuOSAuNiA1LjgtNi4yLTc3LjlsLTUuMyA3Mi4yYy0xLjEgNC44LTQuOCA5LjMtMTAuNiA5LjMtMi45IDAtOS44LTItMTAuNi05LjMgMC0xLjkgLjUgNi43LTUuOC04Ny43TDI1NSAzODMuOWMwIDYuMy0zLjYgMTIuNC0xMC42IDEyLjQtNS4yIDAtMTAuNi00LjEtMTAuNi0xMkwyMjggMjk2LjZjLTUuOCA5Mi41LTUuMyA4NC01LjMgODUuOS0xLjEgNC44LTQuOCA5LjMtMTAuNiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0uNy0uNC0xLjEtLjQtMi42bC02LjItODguNi00LjkgNTYuN2MtLjcgNi41LTYuNyA5LjMtMTAuNiA5LjMtNS44IDAtOS42LTQuMS0xMC42LTguOUwxNTcuNyAyNzJjLTIgNC0zLjUgOC40LTExLjEgOC40bC01MS40IDAgMC0yMS4zIDQ0LjggMCAxMy43LTI3LjljNC40LTkuOSAxOC4yLTcuMiAxOS45IDIuN2wzLjEgMjAuNCA4LjQtOTcuOWMwLTYgNC44LTEwLjYgMTAuNi0xMC42IC41IDAgMTAuNi0uMiAxMC42IDEyLjRsNC45IDY5LjEgNi42LTkyLjZjMC0xMC4xIDkuNS0xMC42IDEwLjItMTAuNiAuNiAwIDEwLjYgLjcgMTAuNiAxMC42bDUuMyA4MC42IDYuMi05Ny45Yy4xLTEuMS0uNi0xMC4zIDkuOS0xMS41eiJdfSxjRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamVkaS1vcmRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwZSIsIk0zOTguOSAzNzMuNmM5NS45LTEyMi4xIDE3LjItMjMzLjEgMTcuMi0yMzMuMSA0NS40IDg1LjgtNDEuNCAxNzAuNS00MS40IDE3MC41IDEwNS0xNzEuNS02MC41LTI3MS41LTYwLjUtMjcxLjUgOTYuOSA3Mi43LTEwLjEgMTkwLjctMTAuMSAxOTAuNyA4NS44IDE1OC40LTY4LjYgMjMwLjEtNjguNiAyMzAuMXMtLjQtMTYuOS0yLjItODUuN2M0LjMgNC41IDM0LjUgMzYuMiAzNC41IDM2LjJsLTI0LjItNDcuNCA2Mi42LTkuMS02Mi42LTkuMSAyMC4yLTU1LjUtMzEuNCA0NS45Yy0yLjItODcuNy03LjgtMzA1LjEtNy45LTMwNi45IDAgMS01LjYgMjE5LTcuOSAzMDYuOWwtMzEuNC00NS45IDIwLjIgNTUuNS02Mi42IDkuMSA2Mi42IDkuMS0yNC4yIDQ3LjQgMzQuNS0zNi4yYy0xLjggNjguOC0yLjIgODUuNy0yLjIgODUuN1M1OS4xIDM4OC42IDE0NC45IDIzMC4yYzAgMC0xMDctMTE4LjEtMTAuMS0xOTAuNyAwIDAtMTY1LjUgOTkuOS02MC41IDI3MS41IDAgMC04Ni44LTg0LjgtNDEuNC0xNzAuNSAwIDAtNzguNyAxMTEgMTcuMiAyMzMuMSAwIDAtMjYuMi0xNi4xLTQ5LjQtNzcuNyAwIDAgMTYuOSAxODMuMyAyMjIgMTg1LjdsNC4xIDBjMjA1LTIuNCAyMjItMTg1LjcgMjIyLTE4NS43LTIzLjYgNjEuNS00OS45IDc3LjctNDkuOSA3Ny43eiJdfSxkRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToici1wcm9qZWN0IixpY29uOls1NzYsNTEyLFtdLCJmNGY3IiwiTTU3OC41IDIyNi42QzU3OC41IDExOS4xIDQ0OC40IDMyIDI4OCAzMlMtMi41IDExOS4xLTIuNSAyMjYuNmMwIDk1LjggMTAzLjMgMTc1LjQgMjM5LjQgMTkxLjVsMCA2MS45IDk5LjEgMCAwLTYxLjVjMjQuMy0yLjcgNDcuNi03LjQgNjkuNC0xMy45bDQwLjEgNzUuNCAxMTIgMC02Ny40LTExMy43YzU0LjUtMzUuNCA4OC40LTg0LjkgODguNC0xMzkuN3pNMTExLjcgMjQxLjFjMC03My41IDk4LjktMTMzIDIyMC44LTEzM3MyMTEuOSA0MC43IDIxMS45IDEzM2MwIDUwLjEtMjYuNSA4NS03MC4zIDEwNi40LTIuNC0xLjYtNC43LTIuOS02LjQtMy43LTEwLjItNS4yLTI3LjgtMTAuNS0yNy44LTEwLjVzODYuNi02LjQgODYuNi05Mi43LTkwLjYtODcuOS05MC42LTg3LjlsLTE5OSAwIDAgMjA4LjNjLTc0LjEtMjEuNS0xMjUuMi02Ny4xLTEyNS4yLTExOS45em0yMjUuMSAzOC4zbDAtNTUuNmM1Ny44IDAgODcuOC02LjggODcuOCAyNy4zIDAgMzYuNS0zOC4yIDI4LjMtODcuOCAyOC4zem0tLjkgNzIuNWwyNi42IDBjMTAuOCAwIDE4LjkgMTEuNyAyNCAxOS4yLTE2LjEgMS45LTMzIDIuOC01MC42IDIuOWwwLTIyLjF6Il19LHVEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnN0YWxvZCIsaWNvbjpbNTEyLDUxMixbXSwiZTA4MSIsIk0xNTMuNiA0ODBsMjMzLjcgMCAxMTUuNC0yMDQuMi0yOTguMyA1Ny40LTUwLjggMTQ2Ljh6TTUwNSAyNDAuMUwzODcuNCAzMiAxNTUuOSAzMiAzNjAuNSAyNjcuOSA1MDUgMjQwLjF6TTEyNC42IDQ4LjhMNy41IDI1NiAxMjMuNSA0NjEuMiAyMjUuOSAxNjUuNiAxMjQuNiA0OC44eiJdfSxwRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2FuYWRpYW4tbWFwbGUtbGVhZiIsaWNvbjpbNTEyLDUxMixbXSwiZjc4NSIsIk0zODMuOCAzNTEuN2MyLjUtMi41IDEwNS4yLTkyLjQgMTA1LjItOTIuNGwtMTcuNS03LjVjLTEwLTQuOS03LjQtMTEuNS01LTE3LjQgMi40LTcuNiAyMC4xLTY3LjMgMjAuMS02Ny4zcy00Ny43IDEwLTU3LjcgMTIuNWMtNy41IDIuNC0xMC0yLjUtMTIuNS03LjVzLTE1LTMyLjQtMTUtMzIuNC01Mi42IDU5LjktNTUuMSA2Mi4zYy0xMCA3LjUtMjAuMSAwLTE3LjYtMTAgMC0xMCAyNy42LTEyOS42IDI3LjYtMTI5LjZzLTMwLjEgMTcuNC00MC4xIDIyLjRjLTcuNSA1LTEyLjYgNS0xNy42LTUtNS4xLTcuNS00Mi43LTc5LjgtNDIuNy03OS44cy0zNy41IDcyLjMtNDIuNSA3OS44Yy01IDEwLTEwIDEwLTE3LjYgNS0xMC01LTQwLjEtMjIuNC00MC4xLTIyLjRTMTgzLjMgMTgyIDE4My4zIDE5MmMyLjUgMTAtNy41IDE3LjUtMTcuNiAxMC0yLjUtMi41LTU1LjEtNjIuMy01NS4xLTYyLjNzLTEyLjUgMjcuMy0xNSAzMi4zLTUgOS45LTEyLjUgNy41QzczIDE3NyAyNS40IDE2NyAyNS40IDE2N1M0MyAyMjYuNyA0NS41IDIzNC4zYzIuNCA2IDUgMTIuNS01IDE3LjRMMjMgMjU5LjNzMTAyLjYgODkuOSAxMDUuMiA5Mi40YzUuMSA1IDEwIDcuNSA1LjEgMjIuNS01LjEgMTUtMTAuMSAzNS4xLTEwLjEgMzUuMXM5NS4yLTIwLjEgMTA1LjMtMjIuNmM4LjctLjkgMTguMyAyLjUgMTguMyAxMi41UzI0MSA1MTIgMjQxIDUxMmwzMCAwcy01LjgtMTAyLjctNS44LTExMi44IDkuNS0xMy40IDE4LjQtMTIuNWMxMCAyLjUgMTA1LjIgMjIuNiAxMDUuMiAyMi42cy01LTIwLjEtMTAtMzUuMSAwLTE3LjUgNS0yMi41eiJdfSxoRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXRoZXJldW0iLGljb246WzMyMCw1MTIsW10sImY0MmUiLCJNMzExLjkgMjYwLjhMMTYwIDM1My42IDggMjYwLjggMTYwIDAgMzExLjkgMjYwLjh6TTE2MCAzODMuNEw4IDI5MC42IDE2MCA1MTIgMzEyIDI5MC42IDE2MCAzODMuNHoiXX0sZkR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhvdXp6IixpY29uOls0NDgsNTEyLFtdLCJmMjdjIiwiTTI3NiAzMzAuN2wtMTA0LjYgMCAwIDE0OS4zLTE1NC4zIDAgMC00NDggMTA5LjUgMCAwIDEwNC41IDMwNS4xIDg1LjYgMCAyNTcuOS0xNTUuNyAwIDAtMTQ5LjN6Il19LG1EdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aWJlciIsaWNvbjpbNTEyLDUxMixbXSwiZjQwOSIsIk00NDQuMyA0OS45Yy0xMi43LTExLjctNjQuMS00OS0xNzguNy00OS41IDAgMC0xMzUuMS04LjEtMjAwLjkgNTIuMy0zNi42IDM2LjYtNDkuNSA5MC4zLTUwLjkgMTU2LjhzLTMuMSAxOTEuMSAxMTcgMjI0LjlsLjEgMC0uMSA1MS42cy0uOCAyMC45IDEzIDI1LjFjMTYuNiA1LjIgMjYuNC0xMC43IDQyLjMtMjcuOCA4LjctOS40IDIwLjctMjMuMiAyOS44LTMzLjcgODIuMiA2LjkgMTQ1LjMtOC45IDE1Mi41LTExLjIgMTYuNi01LjQgMTEwLjUtMTcuNCAxMjUuNy0xNDIgMTUuOC0xMjguNi03LjYtMjA5LjgtNDkuOC0yNDYuNXpNNDU4LjIgMjg3Yy0xMi45IDEwNC04OSAxMTAuNi0xMDMgMTE1LjEtNiAxLjktNjEuNSAxNS43LTEzMS4yIDExLjIgMCAwLTUyIDYyLjctNjguMiA3OS01LjMgNS4zLTExLjEgNC44LTExLTUuNyAwLTYuOSAuNC04NS43IC40LTg1LjdsMCAwQzQzLjQgMzcyLjcgNDkuNCAyNjYuNiA1MC41IDIxMS4xczExLjYtMTAxIDQyLjYtMTMxLjZjNTUuNy01MC41IDE3MC40LTQzIDE3MC40LTQzIDk2LjkgLjQgMTQzLjMgMjkuNiAxNTQuMSAzOS40IDM1LjcgMzAuNiA1My45IDEwMy44IDQwLjYgMjExLjF6bS0xMzktODAuOGMuNCA4LjYtMTIuNSA5LjItMTIuOSAuNi0xLjEtMjItMTEuNC0zMi43LTMyLjYtMzMuOS04LjYtLjUtNy44LTEzLjQgLjctMTIuOSAyNy45IDEuNSA0My40IDE3LjUgNDQuOCA0Ni4yem0yMC4zIDExLjNjMS00Mi40LTI1LjUtNzUuNi03NS44LTc5LjMtOC41LS42LTcuNi0xMy41IC45LTEyLjkgNTggNC4yIDg4LjkgNDQuMSA4Ny44IDkyLjUtLjEgOC42LTEzLjEgOC4yLTEyLjktLjN6bTQ3IDEzLjRjLjEgOC42LTEyLjkgOC43LTEyLjkgLjEtLjYtODEuNS01NC45LTEyNS45LTEyMC44LTEyNi40LTguNS0uMS04LjUtMTIuOSAwLTEyLjkgNzMuNyAuNSAxMzMgNTEuNCAxMzMuNyAxMzkuMnpNMzc1LjIgMzI5bDAgLjJjLTEwLjggMTktMzEgNDAtNTEuOCAzMy4zbC0uMi0uM2MtMjEuMS01LjktNzAuOC0zMS41LTEwMi4yLTU2LjUtMTYuMi0xMi44LTMxLTI3LjktNDIuNC00Mi40LTEwLjMtMTIuOS0yMC43LTI4LjItMzAuOC00Ni42LTIxLjMtMzguNS0yNi01NS43LTI2LTU1LjctNi43LTIwLjggMTQuMi00MSAzMy4zLTUxLjhsLjIgMGM5LjItNC44IDE4LTMuMiAyMy45IDMuOSAwIDAgMTIuNCAxNC44IDE3LjcgMjIuMSA1IDYuOCAxMS43IDE3LjcgMTUuMiAyMy44IDYuMSAxMC45IDIuMyAyMi0zLjcgMjYuNmwtMTIgOS42Yy02LjEgNC45LTUuMyAxNC01LjMgMTRzMTcuOCA2Ny4zIDg0LjMgODQuM2MwIDAgOS4xIC44IDE0LTUuM2w5LjYtMTJjNC42LTYgMTUuNy05LjggMjYuNi0zLjcgMTQuNyA4LjMgMzMuNCAyMS4yIDQ1LjggMzIuOSA3IDUuNyA4LjYgMTQuNCAzLjggMjMuNnoiXX0sSDhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtpY2tzdGFydGVyIixpY29uOls0NDgsNTEyLFsic3F1YXJlLWtpY2tzdGFydGVyIl0sImYzYmIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzIwLjggMjMzbC0yMy4zIDIzLjEgMjMuMyAyMi45YzI0LjEgMjMuOSAyNC4xIDYzIDAgODYuOXMtNjMuNCAyMy45LTg3LjYgMGwtOC41LTguNGMtMTEuMyAxNi0yOS43IDI2LjUtNTAuOSAyNi41LTM0LjEgMC02MS45LTI3LjUtNjEuOS02MS40bDAtMTMzLjJjMC0zMy44IDI3LjctNjEuNCA2MS45LTYxLjQgMjEuMSAwIDM5LjYgMTAuNSA1MC45IDI2LjVsOC41LTguNGMyNC4xLTIzLjkgNjMuNC0yMy45IDg3LjYgMHMyNC4xIDYzIDAgODYuOXoiXX0sZ0R0PUg4ZSxiRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BvdGlmeSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM1Ni43IDM3Mi45Yy00LjIgMC02LjgtMS4zLTEwLjctMy42LTYyLjQtMzcuNi0xMzUtMzkuMi0yMDYuNy0yNC41LTMuOSAxLTkgMi42LTExLjkgMi42LTkuNyAwLTE1LjgtNy43LTE1LjgtMTUuOCAwLTEwLjMgNi4xLTE1LjIgMTMuNi0xNi44IDgxLjktMTguMSAxNjUuNi0xNi41IDIzNyAyNi4yIDYuMSAzLjkgOS43IDcuNCA5LjcgMTYuNXMtNy4xIDE1LjQtMTUuMiAxNS40em0yNi45LTY1LjZjLTUuMiAwLTguNy0yLjMtMTIuMy00LjItNjIuNS0zNy0xNTUuNy01MS45LTIzOC42LTI5LjQtNC44IDEuMy03LjQgMi42LTExLjkgMi42LTEwLjcgMC0xOS40LTguNy0xOS40LTE5LjRzNS4yLTE3LjggMTUuNS0yMC43YzI3LjgtNy44IDU2LjItMTMuNiA5Ny44LTEzLjYgNjQuOSAwIDEyNy42IDE2LjEgMTc3IDQ1LjUgOC4xIDQuOCAxMS4zIDExIDExLjMgMTkuNy0uMSAxMC44LTguNSAxOS41LTE5LjQgMTkuNXptMzEtNzYuMmMtNS4yIDAtOC40LTEuMy0xMi45LTMuOS03MS4yLTQyLjUtMTk4LjUtNTIuNy0yODAuOS0yOS43LTMuNiAxLTguMSAyLjYtMTIuOSAyLjYtMTMuMiAwLTIzLjMtMTAuMy0yMy4zLTIzLjYgMC0xMy42IDguNC0yMS4zIDE3LjQtMjMuOSAzNS4yLTEwLjMgNzQuNi0xNS4yIDExNy41LTE1LjIgNzMgMCAxNDkuNSAxNS4yIDIwNS40IDQ3LjggNy44IDQuNSAxMi45IDEwLjcgMTIuOSAyMi42IDAgMTMuNi0xMSAyMy4zLTIzLjIgMjMuM3oiXX0sdkR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxlYW5wdWIiLGljb246WzU3Niw1MTIsW10sImYyMTIiLCJNMzg2LjYgMTExLjVsMTUuMSAyNDktMTEtLjNjLTM2LjItLjgtNzEuNiA4LjgtMTAyLjcgMjgtMzEtMTkuMi02Ni40LTI4LTEwMi43LTI4LTQ1LjYgMC04Mi4xIDEwLjctMTIzLjUgMjcuN0w5My4yIDEyOS42YzI4LjUtMTEuOCA2MS41LTE4LjEgOTIuMi0xOC4xIDQxLjIgMCA3My44IDEzLjIgMTAyLjcgNDIuNSAyNy43LTI4LjMgNTktNDEuNyA5OC41LTQyLjV6TTU2OS4yIDQ0OGMtMjUuNSAwLTQ3LjUtNS4yLTcwLjUtMTUuNi0zNC4zLTE1LjYtNzAtMjUtMTA3LjktMjUtMzkgMC03NC45IDEyLjktMTAyLjcgNDAuNi0yNy43LTI3LjctNjMuNy00MC42LTEwMi43LTQwLjYtMzcuOSAwLTczLjYgOS4zLTEwNy45IDI1LTIyLjIgOS45LTQ0LjcgMTUuNi02OS4yIDE1LjZMNyA0NDggNDkuNiA5OC45YzM5LjMtMjIuMiA4Ny0zNC45IDEzMi4zLTM0LjkgMzcuMSAwIDc1LjIgNy43IDEwNi4yIDI5LjEgMzEtMjEuNCA2OS4yLTI5LjEgMTA2LjItMjkuMSA0NS4zIDAgOTMgMTIuNiAxMzIuMyAzNC45TDU2OS4yIDQ0OHptLTQzLjQtNDQuN0w0OTEuOCAxMjNjLTMwLjctMTQtNjcuMi0yMS40LTEwMS0yMS40LTM4LjQgMC03NC40IDEyLjEtMTAyLjcgMzguNy0yOC4zLTI2LjYtNjQuMi0zOC43LTEwMi43LTM4LjctMzMuOCAwLTcwLjMgNy40LTEwMSAyMS40bC0zNCAyODAuMmM0Ny4yLTE5LjUgODIuOS0zMy41IDEzNS0zMy41IDM3LjYgMCA3MC44IDkuNiAxMDIuNyAyOS42IDMxLjgtMjAgNjUuMS0yOS42IDEwMi43LTI5LjYgNTIuMiAwIDg3LjggMTQgMTM1IDMzLjV6Il19LHhEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqYXZhIixpY29uOlszODQsNTEyLFtdLCJmNGU0IiwiTTI3Ny44IDMxMi45YzkuOC02LjcgMjMuNC0xMi41IDIzLjQtMTIuNXMtMzguNyA3LTc3LjIgMTAuMmMtNDcuMSAzLjktOTcuNyA0LjctMTIzLjEgMS4zLTYwLjEtOCAzMy0zMC4xIDMzLTMwLjFzLTM2LjEtMi40LTgwLjYgMTljLTUyLjUgMjUuNCAxMzAgMzcgMjI0LjUgMTIuMXptLTg1LjQtMzIuMWMtMTktNDIuNy04My4xLTgwLjIgMC0xNDUuOCAxMDMuNy04MS44IDUwLjUtMTM1IDUwLjUtMTM1IDIxLjUgODQuNS03NS42IDExMC4xLTExMC43IDE2Mi42LTIzLjkgMzUuOSAxMS43IDc0LjQgNjAuMiAxMTguMnpNMzA3IDEwNC42Yy4xIDAtMTc1LjIgNDMuOC05MS41IDE0MC4yIDI0LjcgMjguNC02LjUgNTQtNi41IDU0czYyLjctMzIuNCAzMy45LTcyLjlDMjE2IDE4OC4xIDE5NS40IDE2OS4zIDMwNyAxMDQuNnptLTYuMSAyNzAuNWMtLjUgMS0xLjIgMS44LTIgMi42IDEyOC4zLTMzLjcgODEuMS0xMTguOSAxOS44LTk3LjMtMy4zIDEuMi02LjIgMy40LTguMiA2LjMgMy42LTEuMyA3LjMtMi4zIDExLTMgMzEtNi41IDc1LjUgNDEuNS0yMC42IDkxLjR6TTM0OCA0MzcuNHMxNC41IDExLjktMTUuOSAyMS4yYy01Ny45IDE3LjUtMjQwLjggMjIuOC0yOTEuNiAuNy0xOC4zLTcuOSAxNi0xOSAyNi44LTIxLjMgMTEuMi0yLjQgMTcuNy0yIDE3LjctMi0yMC4zLTE0LjMtMTMxLjMgMjguMS01Ni40IDQwLjIgMjA0LjIgMzMuMiAzNzIuNC0xNC45IDMxOS40LTM4Ljh6TTEyNC41IDM5NmMtNzguNyAyMiA0Ny45IDY3LjQgMTQ4LjEgMjQuNS05LjgtMy44LTE5LjItOC40LTI4LjItMTMuOC00NC43IDguNS02NS40IDkuMS0xMDYgNC41LTMzLjUtMy44LTEzLjktMTUuMi0xMy45LTE1LjJ6bTE3OS44IDk3LjJjLTc4LjcgMTQuOC0xNzUuOCAxMy4xLTIzMy4zIDMuNiAwLS4xIDExLjggOS43IDcyLjQgMTMuNiA5Mi4yIDUuOSAyMzMuOC0zLjMgMjM3LjEtNDYuOSAwIDAtNi40IDE2LjUtNzYuMiAyOS43ek0yNjAuNyAzNTNjLTU5LjIgMTEuNC05My41IDExLjEtMTM2LjggNi42LTMzLjUtMy41LTExLjYtMTkuNy0xMS42LTE5LjctODYuOCAyOC44IDQ4LjIgNjEuNCAxNjkuNSAyNS45LTcuOC0yLjgtMTUtNy4xLTIxLjEtMTIuOHoiXX0seUR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5mYy1zeW1ib2wiLGljb246WzUxMiw1MTIsW10sImU1MzEiLCJNMzYwLjkgMzIuNGM3LjctMS4zIDE1LjcgLjUgMjEuMiA1IDg0LjEgNTguNyAxMjkuOSAxMzYuMyAxMjkuOSAyMTcuNyAwIDgzLjEtNDUuOCAxNjAuOC0xMjkuOSAyMTkuNS00LjggNC0xMS43IDUuOS0xOC42IDUuMy03LS42LTEzLjUtMy42LTE4LjQtOC41TDE2MS43IDI4OC43Yy01LjYtNS41LTguNy0xMy05LjYtMjAuOSAwLTcuOCA0LTE1LjMgOS41LTIwLjkgNS42LTUuNSAxMy4xLTguNyAyMC45LTguNyA3LjkgMCAxNS40IDMuMSAyMC45IDguNkwzNjguNSA0MTEuMmM1NC42LTQ0LjcgODQuMy05OS4yIDg0LjMtMTU2LjEgMC02MS42LTM2LjktMTIyLjItMTAzLjktMTY5LjMtNi40LTQuNS0xMC44LTExLjQtMTIuMS0xOS4xLTEuNC03LjcgLjQtMTUuNyA1LTIyLjEgNC41LTYuNCAxMS40LTEwLjggMTkuMS0xMi4xem0tMjA2IDQ0Ny4yYy03LjcgMS4zLTE1LjYtLjUtMjIuMS01LTgzLjEtNTguNy0xMjktMTM2LjQtMTI5LTIxOS41IDAtODEuNCA0NS44LTE1OSAxMjktMjE3LjcgNS43LTQgMTIuNi01LjkgMTkuNi01LjMgNi45IC42IDEzLjQgMy42IDE4LjMgOC41TDM1NC4xIDIyMy4zYzUuNiA1LjUgOC43IDEzIDguNyAyMC45IC4xIDYuOS0zIDE1LjMtOC42IDIwLjktNS41IDUuNS0xMyA4LjctMjAuOSA4LjctNy44IDAtMTYuMi0zLjEtMjAuOS04LjZMMTQ3LjMgMTAwLjdjLTU0LjYgNDUuMi04NC4zIDk5LjItODQuMyAxNTQuNCAwIDYzLjQgMzYuOSAxMjQgMTAzLjEgMTcxLjEgNy4zIDQuNiAxMS42IDExLjQgMTMgMTkuMiAxLjMgNy43LS41IDE1LjctNSAyMi4xcy0xMS40IDEwLjctMTkuMiAxMi4xeiJdfSx3RHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29kdSIsaWNvbjpbNjQwLDUxMixbXSwiZTA4OCIsIk0xNzguNCAzMzkuN2wtMzcuMyAwLTI4LjktMTE2LjItLjUgMC0yOC41IDExNi4yLTM4IDAtNDUuMi0xNzAuOCAzNy41IDAgMjcgMTE2LjIgLjUgMCAyOS43LTExNi4yIDM1LjIgMCAyOS4yIDExNy43IC41IDAgMjgtMTE3LjcgMzYuOCAwLTQ1LjkgMTcwLjh6bTkzLTEyN2MzOSAwIDY0LjEgMjUuOCA2NC4xIDY1LjMgMCAzOS4yLTI1LjEgNjUtNjQuMSA2NS0zOC43IDAtNjMuOS0yNS44LTYzLjktNjUgMC0zOS41IDI1LjEtNjUuMyA2My45LTY1LjN6bTAgMTA0LjhjMjMuMiAwIDMwLjEtMTkuOSAzMC4xLTM5LjUgMC0xOS45LTYuOS0zOS43LTMwLjEtMzkuNy0yNy43IDAtMjkuOSAxOS45LTI5LjkgMzkuNyAwIDE5LjYgNi45IDM5LjUgMjkuOSAzOS41em0xNjMuNyA2LjVsLS41IDBjLTcuOSAxMy40LTIxLjggMTkuMS0zNy41IDE5LjEtMzcuMyAwLTU1LjUtMzItNTUuNS02Ni4yIDAtMzMuMiAxOC40LTY0LjEgNTQuOC02NC4xIDE0LjYgMCAyOC45IDYuMiAzNi44IDE4LjRsLjIgMCAwLTYyLjIgMzQgMCAwIDE3MC44LTMyLjMgMCAwLTE1Ljh6bS0yOS43LTg1LjZjLTIyLjIgMC0yOS45IDE5LjEtMjkuOSAzOS41IDAgMTkuNCA4LjggMzkuNyAyOS45IDM5LjcgMjIuNSAwIDI5LjItMTkuNiAyOS4yLTM5LjkgMC0yMC4xLTcuMi0zOS4yLTI5LjItMzkuMnpNNTkzIDMzOS43bC0zMi4zIDAgMC0xNy4yLS43IDBjLTguNiAxMy45LTIzLjQgMjAuNi0zNy44IDIwLjYtMzYuMSAwLTQ1LjItMjAuMy00NS4yLTUwLjlsMC03Ni4xIDM0IDAgMCA2OS44YzAgMjAuMyA2IDMwLjQgMjEuOCAzMC40IDE4LjQgMCAyNi4zLTEwLjMgMjYuMy0zNS40bDAtNjQuOCAzNCAwIDAgMTIzLjZ6bTkuNS0zNi44bDM3LjUgMCAwIDM2LjgtMzcuNSAwIDAtMzYuOHoiXX0scThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1zdGVhbSIsaWNvbjpbNDQ4LDUxMixbInN0ZWFtLXNxdWFyZSJdLCJmMWI3IiwiTTE2NS42IDMwOS4xYzE4LjYgNy43IDI3LjMgMjguOSAxOS42IDQ3LjRzLTI5IDI3LjItNDcuNiAxOS40bC0yOC41LTExLjhjNSAxMC42IDEzLjggMTkuNCAyNS40IDI0LjIgMjUuMiAxMC41IDU0LjEtMS40IDY0LjYtMjYuNSA1LjEtMTIuMSA1LjEtMjUuNSAuMS0zNy43LTUuMS0xMi4xLTE0LjUtMjEuNi0yNi43LTI2LjctMTIuMS01LTI1LTQuOC0zNi40LS41bDI5LjUgMTIuMnpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCAxNDQuNyAxMTYuNiA0OC4xYzEyLTguMiAyNi4yLTEyLjEgNDAuNy0xMS4zbDU1LjQtODAuMiAwLTEuMWMwLTQ4LjIgMzkuMy04Ny41IDg3LjYtODcuNXM4Ny42IDM5LjMgODcuNiA4Ny41YzAgNDkuMi00MC45IDg4LjctODkuNiA4Ny41bC03OSA1Ni4zYzEuNiAzOC41LTI5LjEgNjguOC02NS43IDY4LjgtMzEuOCAwLTU4LjUtMjIuNy02NC41LTUyLjdMMCAzMTkuMiAwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjQxLjkgMTk2LjJhNTguNCA1OC40IDAgMSAwIDExNi44IDAgNTguNCA1OC40IDAgMSAwIC0xMTYuOCAwem0xMDIuNC0uMWE0My45IDQzLjkgMCAxIDEgLTg3LjggMCA0My45IDQzLjkgMCAxIDEgODcuOCAweiJdfSxrRHQ9cThlLFNEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jLWV1IixpY29uOls1MTIsNTEyLFtdLCJmNGU5IiwiTTI1NS43IDhDMTExLjYgOCA4IDEyNC44IDggMjU2IDggMzkyLjMgMTE5LjcgNTA0IDI1NS43IDUwNCAzODUuOSA1MDQgNTA0IDQwMy4xIDUwNCAyNTYgNTA0IDExNyAzOTYuNCA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjMuMiAzLjctNDUuMiAxMC45LTY2bDY1LjcgMjkuMS00LjcgMCAwIDI5LjUgMjMuMyAwYzAgNi4yLS40IDMuMi0uNCAxOS41bC0yMi44IDAgMCAyOS41IDI3IDBjMTEuNCA2NyA2Ny4yIDEwMS4zIDEyNC42IDEwMS4zIDI2LjYgMCA1MC42LTcuOSA2NC44LTE1LjhsLTEwLTQ2LjFjLTguNyA0LjYtMjguMiAxMC44LTQ3LjMgMTAuOC0yOC4yIDAtNTguMS0xMC45LTY3LjMtNTAuMmw5MC4zIDAgMTI4LjMgNTYuOGMtMS41IDIuMS01Ni4yIDEwNC4zLTE3OC44IDEwNC4zek0yMzkuNiAyNjguMWwtLjUtLjQgLjkgLjQtLjQgMHptNzcuMi0xOS41bDMuNyAwIDAtMjkuNS03MC4zIDAtMjguNi0xMi42YzIuNS01LjUgNS40LTEwLjUgOC44LTE0LjMgMTIuOS0xNS44IDMxLjEtMjIuNCA1MS4xLTIyLjQgMTguMyAwIDM1LjMgNS40IDQ2LjEgMTBsMTEuNi00Ny4zYy0xNS02LjYtMzctMTIuNC02Mi4zLTEyLjQtMzkgMC03Mi4yIDE1LjgtOTUuOSA0Mi4zLTUuMyA2LjEtOS44IDEyLjktMTMuOSAyMC4xTDg1LjUgMTQ2LjRjNjQuNi05Ni44IDE1Ny43LTkzLjYgMTcwLjctOTMuNiAxMTMgMCAyMDMgOTAuMiAyMDMgMjAzLjQgMCAxOC43LTIuMSAzNi4zLTYuMyA1Mi45TDMxNi44IDI0OC42eiJdfSxfRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnBtIixpY29uOls1NzYsNTEyLFtdLCJmM2Q0IiwiTTI4OCAyODhsLTMyIDAgMC02NCAzMiAwIDAgNjR6TTU3NiAxNjBsMCAxOTItMjg4IDAgMCAzMi0xMjggMCAwLTMyLTE2MCAwIDAtMTkyIDU3NiAwek0xNjAgMTkybC0xMjggMCAwIDEyOCA2NCAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC0xMjh6bTE2MCAwbC0xMjggMCAwIDE2MCA2NCAwIDAtMzIgNjQgMCAwLTEyOHptMjI0IDBsLTE5MiAwIDAgMTI4IDY0IDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtMTI4eiJdfSxNRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzY2FsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4MyIsIk0zMTguMSAxNTRsLTkuNCA3LjZjLTIyLjUtMTkuMy01MS41LTMzLjYtODMuMy0zMy42LTcxLjYgMC0xMjkuNCA2MC44LTEyOS40IDEzMi4zIDAgNi42IC40IDEzLjEgMS40IDE5LjQtMi01NiA0MS44LTk3LjQgOTIuNi05Ny40IDI0LjIgMCA0Ni4yIDkuNCA2Mi42IDI0LjdsLTI1LjIgMjAuNGMtOC4zLS45LTE2LjggMS44LTIzLjEgOC4xLTExLjEgMTEtMTEuMSAyOC45IDAgNDAgMTEuMSAxMSAyOC45IDExIDQwIDAgNi4zLTYuMyA5LTE0LjkgOC4xLTIzLjFsNzUuMi04OC44YzYuMy02LjUtMy4zLTE1LjktOS41LTkuNnpNMjEzLjcgMjQ2LjVhMTQgMTQgMCAxIDEgMjAuNiAxOSAxNCAxNCAwIDEgMSAtMjAuNi0xOXpNMjI0IDMyYTIyNCAyMjQgMCAxIDAgMCA0NDggMjI0IDIyNCAwIDEgMCAwLTQ0OHptMCA2NGExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6Il19LHpEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGVtZWNvIixpY29uOls0NDgsNTEyLFtdLCJmNWM2IiwiTTIwMi45IDguNGM5LjktNS43IDI2LTUuOCAzNi0uMkw0MzAgMTE1LjljMTAgNS42IDE4IDE5LjQgMTggMzAuOUw0NDggMzY0YzAgMTEuNC04LjEgMjUuMy0xOCAzMUwyMzguOCA1MDMuN2MtOS45IDUuNy0yNiA1LjYtMzUuOC0uMkwxNy45IDM5NS4xQzggMzg5LjMgMCAzNzUuNCAwIDM2NEwwIDE0Ni43YzAtMTEuNCA4LTI1LjQgMTcuOS0zMS4xTDIwMi45IDguNHpNMTI1LjUgMjA4LjNjLTE1LjkgMC0zMS45IC4xLTQ3LjggLjFsMCAxMDEuNCAxOS4xIDAgMC0yOS44IDI4LjcgMGM0OS43IDAgNDkuNi03MS43IDAtNzEuN3pNMjY1LjYgMzA4LjZsLTMwLjctMzQuNmMzNy03LjUgMzQuOC02NS4yLTEwLjktNjUuNS0xNi4xIDAtMzIuMi0uMS00OC4zLS4xbDAgMTAxLjYgMTkuMSAwIDAtMzMuOSAxOC40IDAgMjkuNiAzMy45IDIyLjggMCAwLTEuM3ptLTQxLjYtODIuM2MyMy4zIDAgMjMuMyAzMi41IDAgMzIuNWwtMjkuMSAwIDAtMzIuNSAyOS4xIDB6bS05NS42LTEuNmMyMS4yIDAgMjEuMSAzOC45IDAgMzguOWwtMzIuMyAwIDAtMzguOCAzMi4zIDB6bTE5Mi42LTE4LjJjLTY4LjUgMC03MSAxMDUuOCAwIDEwNS44IDY5LjUgMCA2OS40LTEwNS44IDAtMTA1Ljh6bTAgMTcuNGM0NC4xIDAgNDQuOCA3MC45IDAgNzAuOXMtNDQuNC03MC45IDAtNzAuOXoiXX0sQ0R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbGF5IixpY29uOls0NDgsNTEyLFtdLCJmM2FiIiwiTTI5My42IDIzNC4zTDcyLjkgMTMgMzUzLjcgMTc0LjIgMjkzLjYgMjM0LjN6TTE1LjMgMEMyLjMgNi44LTYuNCAxOS4yLTYuNCAzNS4zbDAgNDQxLjNjMCAxNi4xIDguNyAyOC41IDIxLjcgMzUuM0wyNzEuOSAyNTUuOSAxNS4zIDB6TTQ0MC41IDIyNS42bC01OC45LTM0LjEtNjUuNyA2NC41IDY1LjcgNjQuNSA2MC4xLTM0LjFjMTgtMTQuMyAxOC00Ni41LTEuMi02MC44ek03Mi45IDQ5OUwzNTMuNyAzMzcuOCAyOTMuNiAyNzcuNyA3Mi45IDQ5OXoiXX0sVER0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtvcnZ1ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjQyZiIsIk0zODcuNiAzNGwtMzI3IDBDMjcuOSAzNCAxLjEgNjAuOCAxLjEgOTMuNWwwIDMyNy4xYzAgMzIuNiAyNi44IDU5LjQgNTkuNSA1OS40bDMyNy4xIDBjMzMgMCA1OS41LTI2LjggNTkuNS01OS41bDAtMzI3QzQ0Ny4xIDYwLjggNDIwLjMgMzQgMzg3LjYgMzR6TTg4LjIgMTIwLjhsOTYgMCAwIDExNiA2MS44LTExNiAxMTAuOSAwLTgxLjIgMTMyLTE4Ny41IDAgMC0xMzJ6TTI1MCAzOTIuOWwtNjUuNy0xMTMuNiAwIDExMy42LTk2IDAgMC0xMzAuOCAxOTEuNSAwIDg4LjYgMTMwLjgtMTE4LjQgMHoiXX0sJER0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InczYyIsaWNvbjpbNjQwLDUxMixbXSwiZTdkZSIsIk0xMDUuMiAzMDUuM2wzMC45LTEwNC43YzcuOS0yNi43IDguNi00MC42IC4yLTY4LjhsLTEwLjEtMzMuOSA0NC4xIDAgNjEgMjA3LjQgNDUuNy0xNTUuNWMxMy4zLTQ1LjMgMjEuMS01MS45IDU5LjQtNTEuOWwxMzIuOCAwYy0yNC4yIDQyLjktNDkuMyA4NS4yLTczLjkgMTI3LjkgMi42IC44IDUuMiAxLjggNy43IDIuOCAxNy4zIDcuMSAzMi4yIDE5LjQgNDIgMzUuNSAxMS4yIDE4LjUgMTYuOCA0MC4yIDE2LjggNjUuMiAwIDMwLjgtOC4yIDU2LjgtMjQuNiA3Ny44LTE0LjUgMTguNi0zNSAyOS41LTU4LjIgMzEuMiAwIC4zLTUuMiAuNC01LjggLjQtMzkuNy0uMS03MC44LTMyLjEtODMuMS02OC43bDQyLjkgMGMzLjUgNS4zIDYuOCAxMC43IDExLjIgMTUuNSA4LjEgNy4zIDE4LjUgMTAuOSAyOS4zIDExLjEgMTMuMSAwIDIzLjMtOS4xIDI5LjktMTkuOCA4LjEtMTMuMiAxMi4yLTI5IDEyLjItNDcuNSAwLTEzLjEtMS44LTI0LjMtNS4zLTMzLjYtLjktMi4zLTEuOS00LjUtMy02LjYtMS40LTIuNi0yLjktNS4xLTQuNy03LjQtMTAuMS0xMy4yLTI5LjMtMTkuNy00Ny41LTE5LjhsLTI4LjIgMCA3MC4zLTEyMi0zNS42IDBjLTQzLjEgMC0zNS45LTUuNC01MC40IDQzLjNsLTc1LjcgMjU1LjMtNC4yIDAtNjMuMS0yMTEuMS02My4xIDIxMS4xLTQuMiAwLTEwMS0zNDAuNyA0NC4yIDAgNjEgMjA3LjR6TTQ2NyAzMzUuN2MuMyAuNiAxMS4zIDIwLjMgMTguMyAzMC4zIDcuMSAxMC4xIDE5LjggMjAuOSAyNC44IDI0LjZzMTkuMSAxMi41IDM0LjMgMTMuOWMxNS4yIDEuNSAyMy4zIC4yIDM4LjctNi42IDE1LjQtNi44IDI3LjktMjAuNCAzNC45LTI4LjEgNi45LTcuNiAxNy45LTI3LjMgMTguMi0yNy43bDMuMyAxNi44YzEuNyA5LTEgMjMuNy00LjEgMzAtNC4zIDguNi03LjYgMTMuNS0xNCAyMC4zLTYuMSA2LjUtMTYuNyAxMy41LTIxLjMgMTYuNC00LjYgMi45LTIzLjEgMTUuMS01MC4xIDEwLjNzLTQ0LjctMjUuOS01My45LTM4LjJjLTkuOC0xMy4yLTE2LjctMjguMy0xOS0zMy4yLTMuOC04LjQtOS45LTI4LjItMTAuMS0yOC44em0xNjkuNy0yMThjMy4zIDIwLjMtLjEgMjguNy05LjEgNDZsLTEyLjcgMjQuMmMtLjMtLjYtMTAtMjAuNy0yNS45LTMxLjktMTMuNi05LjYtMjIuNS0xMS43LTM2LjMtOC44LTE3LjggMy43LTM4IDI1LTQ2LjggNTEuMi0xMC41IDMxLjQtMTAuNyA0Ni42LTExIDYwLjYtLjYgMjIuNCAyLjkgMzUuNiAyLjkgMzUuNnMtMTUuNC0yOC41LTE1LjItNzAuMWMuMS0yOS43IDQuOC01Ni43IDE4LjUtODMuMyAxMi4xLTIzLjQgMzAuMS0zNy40IDQ2LjEtMzkuMSAxNi41LTEuNyAyOS42IDYuMyAzOS43IDE0LjkgMTAuNiA5IDIxLjMgMjguOCAyMS4zIDI4LjhsMjQuOS00OS44IDMuNiAyMS44eiJdfSxERHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JhdiIsaWNvbjpbNTEyLDUxMixbXSwiZjJkNiIsIk0zMDIuNiAyMTAuNmM0LjUgNC41IDQuNSAxMi4zIDAgMTYuOGwtMTAgMTBjLTQuNSA0LjktMTIuMyA0LjktMTcuMSAwbC0xMC44LTEwLjhjLTQuNS00LjktNC41LTEyLjMgMC0xNy4xbDEwLTEwYzQuNS00LjUgMTIuMy00LjUgMTcuMSAwbDEwLjggMTEuMXptLTMxLjItMjAuM2E3LjcgNy43IDAgMSAwIC0xMC42LTExIDcuNyA3LjcgMCAxIDAgMTAuNiAxMXptLTI2LjggNS41YTcuNSA3LjUgMCAxIDAgMTAuNyAxMC41IDcuNSA3LjUgMCAxIDAgLTEwLjctMTAuNXpNMzE5LjQgMTgyYy0yMC41LTE0LjktMzQuOS00NC42LTEyLjMtNzAuMyAyMi4zLTI1LjcgNDItMTcuOCA2MS43IC44IDEyLjMgMTEuNyAzMC4yIDI1LjcgMTcuOCA0OS44LTEyLjkgMjQuMy00Ni42IDM0LjMtNjcuMiAxOS43em00OS4yLTQ1LjljLTkuMi0xMC4zLTI0LjEgNy4xLTE2IDE2LjYgNy42IDkuMyAzMy4xIDIuNSAxNi0xNi42ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00NDMuNyA0NGMyLjYtMTYuNi0yMC45LTE3LjEtMjYtMjYuNS0xNC0yNC45LTI4LjYtMzgtNTYuMy0zMS40IDEyLTguMyAyNC4zLTYuMyAyNC4zLTYuMyAuMy02LjYgMC0xMy40LTkuNy0yNS43IDQtMTIuOSAuMy0yMy4xIC4zLTIzLjEgMTYtOC45IDI3LjctMjUuMiAzMC00NC42IDMuNy0zMi0xOS40LTYxLjEtNTEuNC02NC44LTIyLjgtMi42LTQ1LjEgNy45LTU2LjEgMjYuNS0yMy45IDQxLjQgMS40IDczLjIgMjMuMSA4NC0xNC45LTEuNC0zNS40LTEyLjMtNDEuNC0zNS40LTYuOC0yNi41IDIuOS01MS40IDkuMi02My40IDAgMC00LjUtNi04LjMtOS4yIDAgMC0xNC4yIDAtMjUuNCA1LjUgMTIuMy0xNS43IDI2LTE0LjkgMjYtMTQuOSAwLTYuNi0uNi0xNS40LTMuNy0yMi4zLTUuNi0xMS40LTI0LjYtMTMuMy0zMi43IDIuOSAuMS0uMiAuMy0uNCAuNC0uNS01LjIgMTIuMy0xLjEgNTcuNyAxNy40IDkwLTIuNiAxLjQtOS40IDYuMy0xMy40IDEwLjMtMjIuMyAxMC01OCA2Mi4yLTU4IDYyLjItMjkuMSAxMS4xLTc5LjcgNTIuNS03Mi45IDgyLjMgLjMgMy4xIDEuNCA1LjcgMy4xIDcuNy0yLjkgMi4zLTUuNyA1LjItOC42IDguNi0xMi4zIDE0LjItNS41IDM2LjMgMTguMyAyNS4yIDE2LjMtNy40IDMwLjYtMjAuOSAzNy41LTMxLjQgMCAwLTUuNy01LjItMTYuOC00LjUgMjguNi02LjggMzUuNC05LjcgNDcuNy05LjQgOC4zIDQgOC4zLTM1LjQgOC4zLTM1LjQgMC0xNS4yLTIuMy0zMi0xMS41LTQyLjggMTIuOSAxMi42IDMwIDMzLjggMjguOSA2Mi42LS44IDE4LjktMTUuNyAyMy43LTE1LjcgMjMuNy05LjQgMTcuMS00NC42IDY4LTMxLjQgMTA5LjQgMCAwLTEwLTE1LjQtMTAuNS0yMi44LTE4IDIwLTQ4IDU0LTI1LjQgNjYuNiAyNy41IDE1LjIgMTEyLjMtOTEuNSAxMzAuMy0xNDYuOSAzNS43LTIxLjUgNTcuMi00OC44IDY2LTY3LjEgMjIuNyA0NC45IDk4LjQgOTcuNSAxMDQuNCA2MC45eiJdfSxMRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXdzIixpY29uOls2NDAsNTEyLFtdLCJmMzc1IiwiTTE4MC40IDIwM2MtLjcgMjIuNiAxMC42IDMyLjcgMTAuOSAzOS0uMSAxLjMtLjYgMi41LTEuMyAzLjZzLTEuNyAyLTIuOCAyLjZsLTEyLjggOWMtMS43IDEuMi0zLjYgMS44LTUuNiAxLjktLjQgMC04LjIgMS44LTIwLjUtMjUuNi03LjUgOS40LTE3IDE2LjktMjcuOSAyMnMtMjIuNyA3LjctMzQuNyA3LjVjLTE2LjMgLjktNjAuNC05LjItNTguMS01Ni4yLTEuNi0zOC4zIDM0LjEtNjIuMSA3MC45LTYwIDcuMSAwIDIxLjYgLjQgNDcgNi4zbDAtMTUuNmMyLjctMjYuNS0xNC43LTQ3LTQ0LjgtNDMuOS0yLjQgMC0xOS40LS41LTQ1LjggMTAuMS03LjQgMy40LTguMyAyLjgtMTAuOCAyLjgtNy40IDAtNC40LTIxLjUtMi45LTI0LjIgNS4yLTYuNCAzNS45LTE4LjQgNjUuOS0xOC4yIDIwLjEtMS44IDQwLjEgNC40IDU1LjcgMTcuMyA2LjMgNy4xIDExLjIgMTUuNCAxNC4yIDI0LjRzNC4yIDE4LjUgMy41IDI4bDAgNjkuM3pNOTQgMjM1LjRjMzIuNC0uNSA0Ni4yLTIwIDQ5LjMtMzAuNSAyLjUtMTAuMSAyLjEtMTYuNCAyLjEtMjcuNC05LjctMi4zLTIzLjYtNC45LTM5LjYtNC45LTE1LjItMS4xLTQyLjggNS42LTQxLjcgMzIuMy0xLjIgMTYuOCAxMS4xIDMxLjQgMzAgMzAuNXptMTcwLjkgMjMuMWMtNy45IC43LTExLjUtNC45LTEyLjctMTAuNEwyMDIuNCA4My40Yy0xLTIuOC0xLjYtNS42LTEuOS04LjYtLjItMS4yIC4xLTIuNCAuOC0zLjRzMS44LTEuNiAzLTEuOGMuMiAwLTIuMSAwIDIyLjIgMCA4LjgtLjkgMTEuNiA2IDEyLjYgMTAuNEwyNzQuOSAyMjAuOCAzMDguMSA4MGMuNS0zLjIgMi45LTExLjEgMTIuOC0xMC4ybDE3LjIgMGMyLjItLjIgMTEuMS0uNSAxMi43IDEwLjRMMzg0LjEgMjIyLjcgNDIxIDgwLjFjLjUtMi4yIDIuNy0xMS40IDEyLjctMTAuNGwxOS43IDBjLjktLjEgNi4yLS44IDUuMyA4LjYtLjQgMS44IDMuNC0xMC43LTUyLjggMTY5LjktMS4xIDUuNS00LjggMTEuMS0xMi43IDEwLjRsLTE4LjcgMGMtMTAuOSAxLjItMTIuNS05LjctMTIuNy0xMC43bC0zMy4yLTEzNy4xLTMyLjggMTM3Yy0uMiAxLjEtMS43IDExLjktMTIuNyAxMC43bC0xOC4zIDAgMCAwem0yNzMuNSA1LjZjLTUuOSAwLTMzLjktLjMtNTcuNC0xMi4zLTIuMy0xLTQuMy0yLjYtNS43LTQuOHMtMi4xLTQuNi0yLjEtNy4xbDAtMTAuN2MwLTguNSA2LjItNi45IDguOC01LjkgMTAgNC4xIDE2LjUgNy4xIDI4LjggOS42IDM2LjcgNy41IDUyLjgtMi4zIDU2LjctNC41IDEzLjItNy44IDE0LjItMjUuNyA1LjMtMzQuOS0xMC41LTguOC0xNS41LTkuMS01My4xLTIxLTQuNi0xLjMtNDMuNy0xMy42LTQzLjgtNTIuNC0uNi0yOC4yIDI1LTU2LjIgNjkuNS01NiAxMi43IDAgNDYuNCA0LjEgNTUuNiAxNS42IDEuNCAyLjEgMiA0LjYgMS45IDdsMCAxMC4xYzAgNC40LTEuNiA2LjctNC45IDYuNy03LjctLjktMjEuNC0xMS4yLTQ5LjItMTAuOC02LjktLjQtMzkuOSAuOS0zOC40IDI1LS40IDE5IDI2LjYgMjYuMSAyOS43IDI2LjkgMzYuNSAxMSA0OC42IDEyLjggNjMuMSAyOS42IDE3LjEgMjIuMiA3LjkgNDguMyA0LjMgNTUuNC0xOS4xIDM3LjUtNjguNCAzNC40LTY5LjMgMzQuNHptNDAuMiAxMDQuOWMtNzAgNTEuNy0xNzEuNyA3OS4yLTI1OC41IDc5LjItMTE3LjEgLjgtMjMwLjMtNDIuMy0zMTcuMy0xMjAuNy02LjUtNS45LS44LTE0IDcuMi05LjUgOTYuNSA1NS4yIDIwNS43IDg0LjIgMzE2LjkgODQuMSA4My0uNCAxNjUuMS0xNy4zIDI0MS42LTQ5LjUgMTEuOC01IDIxLjggNy44IDEwLjEgMTYuNHptMjkuMi0zMy4zYy05LTExLjUtNTkuMy01LjQtODEuOC0yLjctNi44IC44LTcuOS01LjEtMS44LTkuNSA0MC4xLTI4LjIgMTA1LjktMjAuMSAxMTMuNC0xMC42IDcuNSA5LjUtMi4xIDc1LjQtMzkuNiAxMDYuOS01LjggNC45LTExLjMgMi4zLTguNy00LjEgOC40LTIxLjMgMjcuNC02OC41IDE4LjQtODB6Il19LEVEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbGlkZS1nIixpY29uOls0NDgsNTEyLFtdLCJmMmE2IiwiTTQwNy4xIDIxMS4yYy0zLjUtMS40LTExLjYtMy44LTE1LjQtMy44LTM3LjEgMC02Mi4yIDE2LjgtOTMuNSAzNC41bC0uOS0uOWM3LTQ3LjMgMjMuNS05MS45IDIzLjUtMTQwLjQgMC03MS41LTM4LjItMTAwLjYtMTA4LjQtMTAwLjYtMTE1LjEgMC0xNzMuNCAxMTMuNy0xNzMuNCAxOTguNCAwIDg3LjkgNTEuMyAxMzYuNiAxMzguNiAxMzYuNiAxMiAwIDExLTEgMTEgMy44LTE2LjkgMTI4LjktOTAuOCAxMzMuMS05MC44IDk0LjYgMC0zOS4yIDQ1LTU4LjYgNDUuNS02MS0uMy0xMi4yLTQ3LTI3LjYtNTguOS0yNy42LTMzLjkgLjEtNTIuNCA1MS4yLTUyLjQgNzkuMyAwIDUxLjkgMzIuOCA4Ny45IDg1LjUgODcuOSA3Ny40IDAgMTM0LTc3LjggMTUxLjQtMTQ1LjQgMTUuMS02MC41IDExLjItNjMuMyAxOS43LTY3LjYgMzIuMi0xNi4yIDU3LjUtMjcgOTMuOC0yNyAxNy44IDAgMzAuNSAzLjcgNTguOSA4LjQgMi45IDAgNi43LTIuOSA2LjctNS44IDAtOC0zMy40LTYwLjUtNDAuOS02My40ek0yMzEuOCAxMjYuOGMtOS4zIDQ0LjctMTguNiA4OS42LTI3LjggMTM0LjMtMi4zIDEwLjItMTMuMyA3LjgtMjIgNy44LTM4LjMgMC00OS00MS44LTQ5LTczLjEgMC00NyAxOC0xMDkuMyA2MS44LTEzMy40IDctNC4xIDE0LjgtNi43IDIyLjYtNi43IDE4LjYgMCAyMCAxMy4zIDIwIDI4LjctLjEgMTQuMy0yLjcgMjguNS01LjYgNDIuNHoiXX0sUER0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpzZmlkZGxlIixpY29uOls1NzYsNTEyLFtdLCJmMWNjIiwiTTUxMS4xIDIzNy41Yy00LjctMi42LTUuNy01LjctNi40LTEwLjgtMi40LTE2LjUtMy41LTMzLjYtOS4xLTQ5LjEtMzUuOS0xMDAtMTU0LTE0My40LTI0Ni44LTkxLjYtMjcuNCAxNS4yLTQ5IDM2LjQtNjUuNSA2My45LTMuMi0xLjUtNS41LTIuNy03LjgtMy43LTMwLjEtMTIuNC01OS0xMC4xLTg1LjMgOS4yLTI1LjUgMTguNy0zNi40IDQ0LjUtMzIuNyA3Ni40IC40IDMtMiA3LjYtNC41IDkuNS0zOS43IDMwLTU2IDc4LjEtNDEuOSAxMjQuNiAxMy44IDQ1LjYgNTcuNSA3OS44IDEwNS42IDgxLjQgMzAuMyAxIDYwLjYgLjUgOTEgLjUgODQgMCAxNjguMSAuNSAyNTIuMS0uNSA1Mi43LS42IDk2LjEtMzYuOSAxMDguMi04Ny4zIDExLjUtNDguMS0xMS4xLTk3LjMtNTYuOC0xMjIuNnptMjEuMSAxNTYuOWMtMTguMiAyMi40LTQyLjMgMzUuMy03MS4zIDM1LjctNTYuOSAuOC0xMTMuOCAuMi0xNzAuNyAuMiAwIC43LTE2MyAuMi0xNjMuNyAuMi00My45LS4zLTc2LjctMTkuOC05NS4yLTYwLTE4LjktNDEuMi00LTkwLjggMzQuMi0xMTYuMSA5LjItNi4xIDEyLjUtMTEuNiAxMC4xLTIzLjEtNS41LTI2LjQgNC41LTQ4IDI2LjQtNjMgMjMtMTUuNyA0Ny40LTE2LjEgNzItMy4xIDEwLjMgNS40IDE0LjYgMTEuNiAyMi4yLTIuNSAxNC4yLTI2LjQgMzQuNi00Ni43IDYwLjctNjEuMyA5Ny41LTU0LjQgMjI4LjQgNy42IDIzMC4yIDEzMi43IC4xIDguMiAyLjQgMTIuNCA5LjggMTUuOSA1Ny42IDI2LjggNzQuNSA5Ni4xIDM1LjEgMTQ0LjV6bS04Ny44LTgwLjVjLTUuOCAzMS4yLTM0LjYgNTUuMS02Ni43IDU1LjEtMTcgMC0zMi4xLTYuNS00NC4xLTE3LjctMjcuNy0yNS43LTcxLjEtNzUtOTUuOS05My40LTIwLjEtMTQuOS00Mi0xMi4zLTYwLjMgMy44LTUwIDQ0LjEgMTUuOSAxMjEuOCA2Ny4xIDc3LjIgNC41LTQgNy44LTkuNSAxMi43LTEyLjggOC4yLTUuNSAyMC44LS45IDEzLjIgMTAuNi0xNy40IDI2LjMtNDkuMyAzOC4yLTc4LjkgMjkuMy0yOC45LTguNy00OC44LTM2LTQ4LjYtNzAuMiAxLjItMjIuNSAxMi40LTQzLjEgMzUuNC01NiAyMi42LTEyLjYgNDYuNC0xMy4xIDY3IDIuNSA1MC44IDM4LjUgNzUuNiA4MS43IDEwNy4zIDEwMS4yIDI0LjYgMTUuMSA1NC4zIDcuNCA2OC44LTE3LjUgMjguOC00OS4yLTM0LjYtMTA1LTc4LjktNjMuNS00IDMuNy02LjkgOC45LTExLjQgMTEuNy0xMSA2LjgtMTcuMy00LjEtMTIuOC0xMC40IDIwLjctMjguNiA1MC41LTQwLjQgODMuMy0yOC4yIDMxLjQgMTEuNyA0OS4xIDQ0LjQgNDIuOCA3OC4yeiJdfSxJRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2V5YmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmNSIsIk0yODYuMiA0MTlhMTggMTggMCAxIDAgMCAzNiAxOCAxOCAwIDEgMCAwLTM2ek0zOTguMSAyNzEuNGMtOS41LTE0LjYtMzkuNC01Mi40LTg3LjMtNzMuNy02LjEtMi43LTEyLjItNS4xLTE4LjQtNy4zIDQuMS05LjkgNi0yMC42IDUuOC0zMS40cy0yLjctMjEuMy03LjItMzEuMS0xMC45LTE4LjUtMTguOS0yNS43LTE3LjQtMTIuNi0yNy42LTE2Yy0xMi40LTQuMS0yMy4zLTYtMzIuNC01LjgtLjYtMi0xLjktMTEgOS40LTM1bC0yMi45LTEzLjUtNS41IDcuNmMtOC43IDEyLjEtMTYuOSAyMy42LTI0LjMgMzQuOS0yLjctLjYtNS41LTEuMS04LjMtMS4yLTQxLjUtMi40LTM5LTIuMy00MS4xLTIuMy01MC42IDAtNTAuOCA1Mi4xLTUwLjggNDUuOWwtMi40IDM2LjdjLTEuNiAyNyAxOS44IDUwLjIgNDcuNiA1MS44bDguOSAuNUMxMDYgMjE1LjUgOTAuNCAyMjcuNSA3Ni42IDI0MS40IDE0IDMwNC43IDE0IDM3NCAxNCA0MjkuOGwwIDMzLjYgMjMuMy0yOS44YzMuMSAxMy4xIDggMjUuOCAxNC42IDM3LjYgNS44IDEwLjEgMTQuOSA5LjQgMTkuNiA3LjMgNC4yLTEuOSAxMC02LjkgMy44LTIwLjEtOC0xNi44LTEzLjMtMzQuNy0xNS44LTUzLjFsNDYuOC01OS44LTI0LjcgNzQuMWM1OC4yLTQyLjQgMTU3LjQtNjEuOCAyMzYuMi0zOC42IDM0LjIgMTAuMSA2Ny40IC43IDg0LjctMjMuOCAuNy0xIDEuMi0yLjIgMS44LTMuMiAxLjggOS40IDIuNyAxOC45IDIuOCAyOC40IDAgMjMuMy0zLjcgNTIuOS0xNC45IDgxLjYtMi41IDYuNSAxLjggMTQuNSA4LjYgMTUuNyA3LjQgMS42IDE1LjMtMy4xIDE4LjQtMTEuMSA5LjYtMjUuNSAxNC42LTU0LjYgMTQuNi04Ni4yIDAtMzguNi0xMy03Ny41LTM1LjktMTEwLjl6TTE0Mi40IDEyOC42bC0xNS43LS45LTEuNCAyMS44IDEzLjEgLjhjLS42IDYuNS0uNSAxMy4xIC4zIDE5LjZsLTIyLjQtMS4zYy0xLjYtLjEtMy4yLS41LTQuNy0xLjFzLTIuOC0xLjYtMy45LTIuOC0xLjktMi42LTIuNS00LjEtLjgtMy4xLS43LTQuN0wxMDcgMTE5YzEtMTIuMiAxMy45LTExLjMgMTMuMy0xMS4zbDI5LjEgMS43Yy0yLjggNi4yLTUuMSAxMi42LTcgMTkuMnpNMjkwLjggMzAwLjhjLTIuMSAxLjYtNC44IDIuNC03LjUgMi4ycy01LjEtMS41LTYuOS0zLjVsLTkuNy0xMS41LTM0LjQgMjdjLTEuNiAxLjMtMy43IDEuOS01LjggMS43cy00LTEuMi01LjMtMi44bC0xNS44LTE4LjZjLTEuMi0xLjYtMS43LTMuNS0xLjUtNS40czEuMy0zLjcgMi44LTQuOWwzNC42LTI3LjItMTQuMS0xNi43LTE3LjEgMTMuNWMtMS42IDEuMi0zLjUgMS44LTUuNSAxLjZzLTMuOC0xLjEtNS4xLTIuNmMwIDAtMy43LTQuNC0zLjgtNC41LTEuMi0xLjYtMS43LTMuNS0xLjUtNS41czEuMy0zLjcgMi44LTQuOUwyMTQgMjI1LjJzLTE4LjUtMjItMTguNi0yMi4xYy0uOC0xLTEuMy0yLjEtMS43LTMuM3MtLjQtMi41LS4zLTMuNyAuNi0yLjQgMS4yLTMuNSAxLjUtMiAyLjUtMi44YzIuMS0xLjcgNC44LTIuNCA3LjQtMi4yczUuMSAxLjUgNi45IDMuNmw4MS4xIDk2LjNjLjggMSAxLjMgMi4xIDEuNyAzLjNzLjQgMi41IC4zIDMuNy0uNiAyLjUtMS4yIDMuNS0xLjUgMi4xLTIuNSAyLjh6TTE4Ny40IDQxOWExOCAxOCAwIDEgMCAwIDM2IDE4IDE4IDAgMSAwIDAtMzZ6Il19LEFEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbi1kcm9wIixpY29uOls1NzYsNTEyLFtdLCJlN2UzIiwiTTQ4MCAzMmM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZMOTYgNDQ4Yy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzg0IDB6TTMwMi40IDExNC43Yy05LjgtMTYuNC0yMC41LTE2LjQtMjkuNiAwbC02OC45IDExNGMtMTAuNyAxNS42LTE2LjQgMzIuOC0xNi40IDUyLjUgMCA1MC45IDQ0LjMgOTQuMyAxMDAuMSA5NC4zIDU1IDAgMTAwLjktNDMuNSAxMDAuOS05NC4zIDAtMTkuNy02LjYtMzcuOC0xNy4yLTUyLjVsLTY4LjktMTE0eiJdfSxORHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9yZ2VqbyIsaWNvbjpbMzIwLDUxMixbXSwiZTg2MCIsIk0yNjEuNSAxLjJjMzQgMCA2MS42IDI3LjYgNjEuNiA2MS42cy0yNy42IDYxLjYtNjEuNiA2MS42Yy0yMyAwLTQzLjEtMTIuNy01My43LTMxLjRsLTI4LjUgMGMtMjQgMC00NyA5LjUtNjQgMjYuNXMtMjYuNSA0MC0yNi41IDY0bDAgNDMuNWMyNi0xOS41IDU3LjctMzAuMiA5MC42LTMwLjJsMjguNSAwYzEwLjYtMTguNyAzMC42LTMxLjQgNTMuNy0zMS40IDM0IDAgNjEuNiAyNy42IDYxLjYgNjEuNnMtMjcuNiA2MS42LTYxLjYgNjEuNmMtMjMgMC00My4xLTEyLjctNTMuNy0zMS40bC0yOC41IDBjLTI0IDAtNDcgOS41LTY0IDI2LjVzLTI2LjUgNDAtMjYuNSA2NGwwIDQ3LjhjMTguNyAxMC42IDMxLjQgMzAuNiAzMS40IDUzLjYgMCAzNC0yNy42IDYxLjYtNjEuNiA2MS42Uy0zIDQ4My4yLTMgNDQ5LjJjMC0yMyAxMi43LTQzLjEgMzEuNC01My42bDAtMjEyYzAtNDAgMTUuOS03OC40IDQ0LjItMTA2LjdzNjYuNy00NC4yIDEwNi43LTQ0LjJsMjguNSAwYzEwLjYtMTguNyAzMC42LTMxLjQgNTMuNy0zMS40ek01OC42IDQyMy45Yy0xNCAwLTI1LjMgMTEuMy0yNS4zIDI1LjNzMTEuMyAyNS40IDI1LjMgMjUuNCAyNS40LTExLjQgMjUuNC0yNS40LTExLjQtMjUuMy0yNS40LTI1LjN6TTI2MS41IDIwMS43YTI1LjQgMjUuNCAwIDEgMCAwIDUwLjcgMjUuNCAyNS40IDAgMSAwIDAtNTAuN3ptMC0xNjQuMmEyNS40IDI1LjQgMCAxIDAgMCA1MC43IDI1LjQgMjUuNCAwIDEgMCAwLTUwLjd6Il19LFJEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwb3N0Z3Jlc3FsIixpY29uOls1MTIsNTEyLFtdLCJlODU4IiwiTTIxOS44IDE3MS4zYzMuOSAuNSAxMy4xIDIuNyAxMi4zIDguNS0uOCA1LjktOS4yIDkuMS0xNC4yIDguNC00LjctLjctMTMuMi02LjEtMTIuMy0xMi4xbC4zLTIuMWM0LjIgMCA4LjMtMy41IDEzLjktMi43em0xNjguMS0zLjRjMTAuOCAyLjYtMS4xIDEzLjUtNi44IDE0LjMtNC4zIC42LTEyLjEtMi4yLTEyLjgtNy40LTEtNy40IDE1LjctNy45IDE5LjctNi45em0tMjItMTQwLjhjMzUuNy0uMyA4MS4zIDkuNCAxMTQuMyA1MS43IDcuMiA5LjIgMTAgMjQgOS43IDQwLjktLjggNDkuNi0yNiAxMjkuNC03MC43IDE5Ny40IDQuNSAyLjkgMTcuNiA3LjQgNTEuMSAuNSA1LjYtMS4yIDEyLjctMi4yIDE3LjYgMS42IDE4LjIgMTMuOS0xOS42IDM1LjEtMjguNCAzOS4yLTEzLjIgNi4yLTM0LjggOS41LTUxLjIgOC43LTIuMS0uMi00LjMtLjItNi4zLS42LTUuMS0xLjEtNy40LTEtOC4zLS43LTEuMSAuMy0xLjQgMi45LTEuNiAzLjgtMi44IDI0LjktNy43IDY0LjctMTAuNyA4Mi0yLjggMTYuMy03LjcgMjkuMy0xNy4yIDM5LjItOS41IDkuOS0yMi44IDE1LjctNDAuNiAxOS41LTIyLjMgNC44LTM3LjktLjEtNDguNy05LjEtMTAuMy04LjctMTUuMi0yMC40LTE4LTI3LjQtMS44LTQuNS0zLTExLjUtNC0xOS44LTIuMy0xOS44LTMuMy01MC40LTMtODMuMy0yNC42IDIyLjEtNTUgMTcuMi02OC4yIDEzLjktMTAuNS0yLjYtMzMtMTYuMS0xNy41LTI4LjcgMTEuOS05LjcgMzAuMy01LjUgNDIuMi0xNSAyLjQtMS45IDExLjQtMTAuNiAxMS40LTEzLjUtMTAtLjMtMTkuNi0yLjktMjguMS03LjUtMTMuNSAxNC41LTI2LjQgMjkuNS0zOS4zIDQ0LjYtOC4zIDkuOS0xNy40IDE1LjgtMjcuNCAxNi4yLTkuOSAuNC0xOC43LTQuNi0yNi4xLTExLjgtNy4zLTcuMS0xNC4xLTE3LjItMjAuNC0yOS0xOS0zNS41LTMzLjItODYuMS00Mi4zLTEyNi40LTYtMjYuNy05LjYtNDkuMS0xMC4xLTU5LTIuMi00NC4zIDgtNzQuMSAyNi05My4yIDE3LjktMTkgNDIuNC0yNiA2Ni4xLTI3LjQgMzUuNi0yIDcxIDguNSA4Ni42IDEzLjhsNSAxLjhjMTUuOS0xMC44IDM2LjEtMTcuNCA2MS43LTE3IDEzLjIgLjIgMjUuNSAyLjIgMzYuNyA0LjIgMTguNi03LjEgMzkuOC05LjUgNTkuNC05Ljd6bS05NiAyMC41Yy0yNC43LS40LTQyLjkgNi41LTU2LjYgMTYuOC0uOCAuNi0xLjggMS0yLjggMS4yLTE0LjQgMTEuOC0yMy45IDI4LTMwLjMgNDQuOC03LjIgMTkuMS0xMCAzOC41LTExLjEgNTEuNSA3LjYtNC4zIDE3LjktOC43IDI4LjctMTEuMiAxMC41LTIuNCAyMi40LTMuMiAzMi43IC44IDEwLjkgNC4yIDE5IDEzLjMgMjIuMiAyOC4xIDcuNSAzNC43IDYuNyA1OC4yIDIuNyA3NS45LTQuOCAyMS0xNi44IDM5LjUtMjEuOSA2MC40IDMuNS0uOSA3LjEtLjYgOS44IC4xbDcuMiAyLjljNy43IDQuNCAxMi44IDEzIDE0IDIxLjcgMiA2IC4xIDE0LjMgMCAyMC42IDYuNyAxNi4zIDcuMiAzNi4xIDYuNyA1My4zLS43IDI1LTEgNDAuMiAzLjIgNTEuNyAyLjkgNy45IDQuNyAxNi40IDEwLjQgMjIuOCAyLjYgMyA2LjEgNS41IDEwLjkgNi44IDE4LjUgNS4xIDQ0LTQuNyA1Ni42LTE4LjIgNy43LTguMiAxMi4zLTE5LjMgMTMuNC0zMy45IDEuMS0xMy42IDQuMi0yNy42IDYuMy00MS4xbDIuOS04LjhjMS43LTE0LjggMy40LTI5LjYgNS00NC40LS40LTkuMSAuOS0xNi4xIDMuOS0yMS41IDMuMS01LjcgNy42LTguOSAxMS44LTEwLjggMS44LS44IDMuOS0xLjIgNS42LTItMS42LTIuNC0zLjYtNC42LTUuMy02LjgtOC4yLTEwLjQtMTMuMy0yMi4zLTE5LjctMzMuOC04LjUtMTUuMi0yMy44LTQyLjItMzAuMS02Ny41LTQuMS0xNi40LTQuOS0zNC41IDYtNDcgOS44LTExLjIgMjYuOS0xNS41IDUxLjktMTMtMy40LTEwLTExLjQtMjcuNS0yNC44LTQ0LjctMTgtMjMtNDUuNy00NS45LTg1LjctNTMuMS03LjMtLjktMTUuMi0xLjUtMjMuNi0xLjd6bS0zMi4yIDI4MmMtOCAuNy0xNS41IDE4LjItMjEuNyAyMy4xLTYuMiA0LjktMTQuNSA3LjYtMzAgMTAuNy00LjUgLjktNy43IDEuOS05LjcgMi44IDIyLjMgMTUuOCA1OC4zIDMuMiA3Mi42LTE2LjggMS43LTIuNCAyLjEtNiAuNS0xMC4yLTEuNy00LjUtNi40LTEwLjEtMTEuOS05LjZ6TTExNy42IDQ5LjJjLTIxLjYgMS4yLTQyIDcuNS01Ni40IDIyLjgtMTQuNCAxNS4yLTI0LjIgNDAuNi0yMi4xIDgyLjUgLjQgOC41IDMuOCAzMCA5LjggNTYuNiA4LjkgMzkuOCAyMy43IDkwLjMgNDAuNiAxMjIuMiA2IDExLjEgMTcuNCAzMyAzMi44IDMyLjMgNC40LS4yIDEwLjEtMi44IDE3LTExIDEyLjYtMTQuOCAyNS4yLTI5LjUgMzguNS00My43LTE3LjktMTUuNC0yOC41LTQwLjMtMjQuOC02Ny4yIDMuNC0yNC4zIC41LTQ4LjIgMS4yLTcyLjUgLjQtMTEuOSAyLjMtMzguNyAxMi42LTY1LjggNS45LTE1LjUgMTQuNS0zMS4zIDI3LjQtNDQuMi0xNi40LTUuNC00Ny4xLTEzLjUtNzYuNi0xMS45ek00MDUuMSAzMjguOWMtMy44IDEuMS02LjcgMi4yLTguNyA1LjgtMS4zIDIuNC0yLjUgNi43LTIuMiAxNC4yIDQuOCAzLjkgMTQuMSAzLjMgMTkuOCAzLjIgMTMuOS0uMiAyOS45LTMuMSAzOS4zLTcuNSA3LjktMy43IDE0LjctOC4zIDE5LTEyLjItMzguMiA3LjctNTUuNCAyLjEtNjMuMi00LjgtMS4zIC40LTIuOSAuOS0zLjkgMS4yek0yMjUuMyAxNjQuOWMtMTUuNC01LjktMzUuNCAxLjgtNDguOSA5LjQtMy42IDItNi41IDQtNy45IDUuMiAuNCA4LjggMi44IDM2LjEtMS40IDY2LjMtNS4xIDM2LjYgMjEuNyA2Ni42IDUyLjUgNjYuNyA1LjEtMjAuOCAxNy0zOS4yIDIxLjgtNjAuMSAzLjUtMTUuMyA0LjUtMzYuNi0yLjctNjkuNy0yLjMtMTAuNS03LjQtMTUuNC0xMy40LTE3Ljd6TTM3MC4xIDQyLjJjLTE1LjItLjItMjguOCAxLjctMzkuMiAzLjggMjYgMTEuOCA0NS42IDI5LjcgNTkuNiA0Ny42IDE3LjQgMjIuMiAyNi4zIDQ0LjEgMjkgNTUgLjcgMi43IDEuMyA1LjcgLjUgOC40IC42IDE4LjktNCAzMS4zLTQuNiA0OS4yLS40IDEyLjkgMi45IDI4LjEgMy43IDQ0LjcgLjggMTUuNy0xIDMyLjUtMTEuMiA0OS41IC44IDEgMS42IDIuMSAyLjQgMy4xIDI2LjgtNDIuMiA0Ni04OC42IDU2LjMtMTI4LjUgNS41LTIxLjQgOC40LTQwLjcgOC43LTU2LjEgLjItMTUuMi0yLTI1LjQtNS44LTMwLjQtMjguMy0zNi4xLTY2LjgtNDUuOC05OS4zLTQ2LjJ6bTM1LjYgMTE5LjVjLTI1LjMtMy4yLTM3LjMgMS41LTQyLjggNy43LTYgNi44LTYuOCAxOC41LTIuOSAzNC4xIDUuNyAyMi42IDIwLjEgNDguNiAyOC43IDY0IDMuNiA2LjQgNi40IDEzLjEgMTAgMTkuNCA1LjUtMTEuNyA2LjYtMjMuNSA2LTM1LjUtLjctMTUtNC4yLTMwLjMtMy43LTQ1LjhsLjQtNy40YzEuMi0xNC4zIDQuMS0yNC42IDQuMi0zNi41eiJdfSxPRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VlYmx5IixpY29uOls1MTIsNTEyLFtdLCJmNWNjIiwiTTQyNS4xIDY1LjhjLTM5LjkgMC03My4zIDI1LjctODMuNyA2NC4zLTE4LjItNTguMS02NS41LTY0LjMtODUtNjQuMy0xOS44IDAtNjYuOCA2LjMtODUuMyA2NC4zLTEwLjQtMzguNi00My40LTY0LjMtODMuNy02NC4zLTQ5IDAtODcuNSAzMy45LTg3LjUgNzcuMiAwIDI5IDQuMiAzMy4zIDc3LjIgMjMzLjUgMjIuNCA2MC42IDY3LjggNjkuNCA5Mi43IDY5LjQgMzkuMiAwIDcwLTE5LjUgODUuOS01NCAxNS45IDM0LjggNDYuNyA1NC4zIDg1LjkgNTQuMyAyNSAwIDcwLjQtOS4xIDkyLjctNjkuNyA3Ni42LTIwOC42IDc3LjUtMjA1LjYgNzcuNS0yMjcuMiAuNi00OC4zLTM2LTgzLjUtODYuOS04My41em0yNi4zIDExNC44TDM4NS45IDM1Ny4xYy03LjkgMjEuNS0yMS4yIDM3LjItNDYuMiAzNy4yLTIzLjQgMC0zNy40LTEyLjQtNDQtMzMuOWwtMzkuMy0xMTcuNC0xIDAtMzkuMyAxMTcuNGMtNyAyMS41LTIwLjkgMzMuNi00NCAzMy42LTI1IDAtMzguMy0xNS43LTQ2LjItMzcuMkw2MC45IDE4MS42Yy01LjQtMTQuOC03LjktMjMuOS03LjktMzQuNSAwLTE2LjMgMTUuOC0yOS40IDM4LjMtMjkuNCAxOC43IDAgMzIgMTEuOCAzNi4xIDI5LjFsNDQgMTM5LjggMSAwIDQ0LjctMTM2LjhjNi0xOS43IDE2LjUtMzIuMSAzOS0zMi4xczMyLjkgMTIuMSAzOSAzMi4xbDQ0LjcgMTM2LjggMSAwIDQ0LTEzOS44YzQuMS0xNy4yIDE3LjQtMjkuMSAzNi4xLTI5LjEgMjIuMiAwIDM4LjMgMTMuMyAzOC4zIDM1LjctLjMgNy45LTQuMSAxNi03LjYgMjcuMnoiXX0sRkR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRvY2tlciIsaWNvbjpbNjQwLDUxMixbXSwiZjM5NSIsIk0zNDkuOSAyMzYuM2wtNjYuMSAwIDAtNTkuNCA2Ni4xIDAgMCA1OS40em0wLTIwNC4zbC02Ni4xIDAgMCA2MC43IDY2LjEgMCAwLTYwLjd6bTc4LjIgMTQ0LjhsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHpNMjcxLjggMTA0LjdsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXptNzguMSAwbC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6bTI3Ni44IDEwMGMtMTQuNC05LjctNDcuNi0xMy4yLTczLjEtOC40LTMuMy0yNC0xNi43LTQ0LjktNDEuMS02My43bC0xNC05LjMtOS4zIDE0Yy0xOC40IDI3LjgtMjMuNCA3My42LTMuNyAxMDMuOC04LjcgNC43LTI1LjggMTEuMS00OC40IDEwLjdsLTQzNC43IDBjLTguNyA1MC44IDUuOCAxMTYuOCA0NCAxNjIuMSAzNy4xIDQzLjkgOTIuNyA2Ni4yIDE2NS40IDY2LjIgMTU3LjQgMCAyNzMuOS03Mi41IDMyOC40LTIwNC4yIDIxLjQgLjQgNjcuNiAuMSA5MS4zLTQ1LjIgMS41LTIuNSA2LjYtMTMuMiA4LjUtMTcuMWwtMTMuMy04Ljl6TTExNS42IDE3Ni44bC02NiAwIDAgNTkuNCA2Ni4xIDAgMC01OS40LS4xIDB6bTc4LjEgMGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40em03OC4xIDBsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHptLTc4LjEtNzIuMWwtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xeiJdfSxCRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFnZW50byIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjNCIsIk00NDUuOSAxMjcuOWwwIDI1Ni4xLTYzLjQgMzYuNSAwLTI1NS44LTE1OC41LTkxLjYtMTU4LjYgOTEuNiAuNCAyNTUuOS02My4zLTM2LjYgMC0yNTUuOSAyMjEuOS0xMjguMSAyMjEuNSAxMjcuOXpNMjU1LjggNDIwLjVsLTMxLjYgMTguNC0zMS44LTE4LjIgMC0yNTYtNjMuMyAzNi42IC4xIDI1NS45IDk0LjkgNTQuOSA5NS4xLTU0LjkgMC0yNTYtNjMuNC0zNi42IDAgMjU1Ljl6Il19LEhEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0b3ItYnJvd3NlciIsaWNvbjpbNTEyLDUxMixbXSwiZTgzOCIsIk0yNTYuNSA0NjUuNGwwLTMxYzk4LjMtLjMgMTc3LjktODAgMTc3LjktMTc4LjRTMzU0LjggNzcuOSAyNTYuNSA3Ny42bDAtMzFDMzcyIDQ2LjggNDY1LjQgMTQwLjUgNDY1LjQgMjU2UzM3MiA0NjUuMiAyNTYuNSA0NjUuNHptMC0xMDguNmM1NS40LS4zIDEwMC4zLTQ1LjMgMTAwLjMtMTAwLjhTMzEyIDE1NS41IDI1Ni41IDE1NS4ybDAtMzFjNzIuNiAuMyAxMzEuNCA1OS4yIDEzMS40IDEzMS44UzMyOS4xIDM4Ny42IDI1Ni41IDM4Ny44bDAtMzF6bTAtMTU1LjFjMjkuNyAuMyA1My44IDI0LjUgNTMuOCA1NC4zcy0yNCA1NC01My44IDU0LjNsMC0xMDguNnpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHoiXX0scUR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdC1hbHQiLGljb246WzQ0OCw1MTIsW10sImY4NDEiLCJNNDM5LjYgMjM2LjFMMjQ0IDQwLjVDMjM4LjYgMzUgMjMxLjIgMzIgMjIzLjYgMzJzLTE1IDMtMjAuNCA4LjRsLTQwLjcgNDAuNiA1MS41IDUxLjVjMjcuMS05LjEgNTIuNyAxNi44IDQzLjQgNDMuN2w0OS43IDQ5LjdjMzQuMi0xMS44IDYxLjIgMzEgMzUuNSA1Ni43LTI2LjUgMjYuNS03MC4yLTIuOS01Ni0zNy4zbC00Ni4zLTQ2LjMgMCAxMjEuOWMyNS4zIDEyLjUgMjIuMyA0MS44IDkuMSA1NS02LjQgNi40LTE1LjIgMTAuMS0yNC4zIDEwLjFzLTE3LjgtMy42LTI0LjMtMTAuMWMtMTcuNi0xNy42LTExLjEtNDYuOSAxMS4yLTU2bDAtMTIzYy0yMC44LTguNS0yNC42LTMwLjctMTguNi00NUwxNDIuNiAxMDEgOC41IDIzNS4xQzMgMjQwLjYgMCAyNDcuOSAwIDI1NS41czMgMTUgOC41IDIwLjRMMjA0LjEgNDcxLjZjNS40IDUuNCAxMi43IDguNCAyMC40IDguNHMxNS0zIDIwLjQtOC40TDQzOS42IDI3Ni45YzUuNC01LjQgOC40LTEyLjggOC40LTIwLjRzLTMtMTUtOC40LTIwLjR6Il19LGpEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJlZm94LWJyb3dzZXIiLGljb246WzUxMiw1MTIsW10sImUwMDciLCJNMTMwLjIgMTI3LjVsMCAwem0zNTEuNCA0NS40Yy0xMC42LTI1LjUtMzIuMS01My00OC45LTYxLjcgMTMuNyAyNi45IDIxLjcgNTMuOSAyNC43IDc0IDAgLjEgMCAuMyAuMSAuNC0yNy42LTY4LjgtNzQuNC05Ni41LTExMi42LTE1Ni44LTE1LTIzLjctMTAuOS0yNS4yLTEzLjEtMjQuN2wtLjEgLjFjLTQ2LjcgMjYtNzUuMyA3OC40LTgyLjYgMTIyLjctMTYuNiAuOS0zMi45IDUtNDcuOSAxMi4xLTEuNCAuNi0yLjUgMS43LTMuMSAzcy0uOSAyLjgtLjYgNC4zYy4yIC44IC42IDEuNiAxLjEgMi4zczEuMiAxLjMgMS45IDEuNyAxLjYgLjcgMi40IC44IDEuNyAwIDIuNS0uM2wuNS0uMmMxNS41LTcuMyAzMi40LTExLjIgNDkuNS0xMS4zIDYyLjgtLjYgOTcuMiA0NCAxMDcuNiA2Mi4zLTEzLTkuMi0zNi40LTE4LjItNTguOC0xNC4zIDg3LjcgNDMuOSA2NC4yIDE5NC41LTU3LjQgMTg5LjItNTkuNS0yLjYtOTcuMS01MS0xMDAuNS05MC44IDAgMCAxMS4yLTQxLjkgODAuNi00MS45IDcuNSAwIDI4LjktMjAuOSAyOS4zLTI3LS4xLTItNDIuNS0xOC45LTU5LjEtMzUuMi04LjgtOC43LTEzLjEtMTIuOS0xNi44LTE2LjEtMi0xLjctNC4xLTMuMy02LjMtNC44LTUuNi0xOS41LTUuOC00MC0uNy01OS42LTI1LjEgMTEuNC00NC42IDI5LjQtNTguNyA0NS40bC0uMSAwYy05LjctMTIuMi05LTUyLjYtOC40LTYxLjEtLjEtLjUtNy4yIDMuNy04LjIgNC4zLTguNiA2LjEtMTYuNSAxMi45LTIzLjggMjAuNC0xNi4zIDE2LjYtNDQuMSA1MC4yLTU1LjUgMTAxLjItNC41IDIwLjQtNi44IDQ0LjQtNi44IDUyLjMgMCAxMzQuNyAxMDkuMiAyNDMuOSAyNDMuOSAyNDMuOSAxMjAuNiAwIDIyMy04Ny4yIDI0MC40LTIwMi42IDExLjYtNzYuNy0xNC43LTEzMS4xLTE0LjctMTMyeiJdfSxWRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzbWl0aCIsaWNvbjpbNTEyLDUxMixbXSwiZjM4NCIsIk01MTIgMjI3LjZMNTEyIDI4NC41IDI4NC40IDUxMiAyMjcuNiA1MTIgMCAyODQuNCAwIDIyNy42IDIyNy42IDAgMjg0LjUgMCA1MTIgMjI3LjZ6bS0yNTYgMTYyYzE3LjggLjUgMzUuNi0yLjYgNTIuMi05LjFzMzEuOC0xNi4yIDQ0LjYtMjguNyAyMy0yNy4zIDI5LjktNDMuOCAxMC41LTM0LjEgMTAuNS01Mi0zLjYtMzUuNS0xMC41LTUyLTE3LjEtMzEuMy0yOS45LTQzLjgtMjgtMjIuMi00NC42LTI4LjctMzQuNC05LjYtNTIuMi05LjFjLTE3LjgtLjUtMzUuNiAyLjYtNTIuMiA5LjFzLTMxLjggMTYuMy00NC42IDI4LjctMjMgMjcuMy0yOS45IDQzLjgtMTAuNSAzNC4xLTEwLjUgNTIgMy42IDM1LjUgMTAuNSA1MiAxNy4xIDMxLjMgMjkuOSA0My44IDI4IDIyLjIgNDQuNiAyOC43IDM0LjQgOS42IDUyLjIgOS4xeiJdfSxVRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2l6YXJkcy1vZi10aGUtY29hc3QiLGljb246WzY0MCw1MTIsW10sImY3MzAiLCJNMjE5LjIgMzQ1LjdjLTEuOSAxLjQtMTEuMSA4LjQtLjMgMjMuNiA0LjYgNi40IDE0LjEgMTIuOCAyMS43IDYuNiA2LjUtNC45IDcuNC0xMi45IC4zLTIzLTUuNS03LjgtMTQuMy0xMi45LTIxLjctNy4xem0zMzYuOCA3NS45Yy0uMyAxLjctLjYgMS43IC44IDAgMi4xLTQuMiA0LjItMTAuMiA1LTE5LjkgMy4xLTM4LjUtNDAuMy03MS41LTEwMS4zLTc4LTU0LjctNi0xMjQuNCA5LjItMTg4LjggNjAuNWwtLjMgMS42YzIuNiA1IDUgMTAuNyAzLjQgMjEuMmwuOCAuM2M2My45LTU4LjQgMTMxLjItNzcuMiAxODQuNC03My44IDU4LjQgMy43IDEwMCAzNCAxMDAgNjguMSAwIDEwLTIuNiAxNS43LTMuOSAyMC4yek0zOTIuMyAyNDAuNGMuOCA3LjEgNC4yIDEwLjIgOS4yIDEwLjUgNS41IC4zIDkuNC0yLjYgMTAuNS02LjYgLjgtMy40IDIuMS0yOS44IDIuMS0yOS44UzQwMi44IDIyMSAzOTkuMSAyMjVjLTMuNyAzLjctNy4zIDguNC02LjggMTUuNXptLTUwLTE1MS4xYy0yMDQuNSAwLTMyOS4yIDEzNy41LTM0MS41IDE1MS45LTEgLjUtMS4zIC44IC44IDEuMyA2MC41IDE2LjUgMTU1LjggODEuMiAxOTYuMSAyMDIuMmwxIC4zYzU1LjItNjkuOSAxNDAuOS0xMjguMSAyMzctMTI4LjEgODAuOSAwIDEzMC4yIDQyLjIgMTMwLjIgODAuNCAwIDE4LjMtNi42IDMzLjUtMjIuMyA0Ni4zIDAgMS0uMiAuOCAuOCAuOCAxNC43LTEwLjcgMjcuNS0yOC44IDI3LjUtNDguMiAwLTIyLjgtMTIuMS0zOC4yLTEyLjEtMzguMiA3LjEgNy4xIDEwLjcgMTYuMiAxMC43IDE2LjIgNS44LTQwLjkgMjctNjIuMyAyNy02Mi4zLTIuNC05LjctNi44LTE3LjgtNi44LTE3LjggNy42IDguMSAxNC40IDI3LjUgMTQuNCA0MS40IDAgMTAuNS0zLjQgMjIuOC0xMi42IDMxLjlsLjMgLjVjOC4xLTUgMTYuNS0xNi44IDE2LjUtMzggMC0xNS43LTQuNy0yNS45LTQuNy0yNS45IDUuOC01LjIgMTEuMy05LjIgMTYtMTEuOCAuOCAzLjQgMi4xIDkuNyAyLjQgMTQuOSAwIDEgLjggMS44IDEgMCAuOC01LjgtLjMtMTYuMi0uMy0xNi41IDYtMy4xIDkuNy00LjUgOS43LTQuNS0xNS43LTExMC4zLTE0NC0xOTYuOS0yOTEuMi0xOTYuOXpNMjQzIDM3OC45Yy0xMS4xIDktMjQuMiA0LjEtMzAuNi00LjItNy40LTkuNi02LjgtMjQuMSA0LjItMzIuNSAxNC44LTExLjQgMjcuMS0uNSAzMS4yIDUuNSAuMyAuNCAxMi4xIDE2LjYtNC43IDMxLjJ6bTIuMS0xMzYuNGw5LjQtMTcuOCAxMS44IDcxLTEyLjYgNi0yNC42LTI4LjggMTQuMS0yNi43IDMuNyA0LjQtMS44LTguMXptMTguNiAxMTcuNmwtLjMtLjNjMi00LjEtMi41LTYuNi0xNy41LTMxLjctMS4zLTIuNC0zLjEtMi45LTQuNC0yLjZsLS4zLS41YzcuOS01LjggMTUuNC0xMC4yIDI1LjQtMTUuN2wuNSAuM2MxLjMgMS44IDIuMSAyLjkgMy40IDQuN2wtLjMgLjVjLTEtLjMtMi40LS44LTUuMiAuMy0yLjEgLjgtNy45IDMuNy0xMi4zIDcuNmwwIDEuM2MxLjYgMi40IDMuOSA2LjYgNS44IDkuN2wuMyAwYzEwLTYuMyA3LjYtNC41IDExLjUtNy45bC4zIDBjLjUgMS44IC41IDEuOCAxLjggNS41bC0uMyAuM2MtMy4xIC42LTQuNyAuMy0xMS41IDUuNWwwIC4zYzkuNSAxNyAxMSAxNi44IDEyLjYgMTZsLjMgLjNjLTIuMyAxLjYtNi4zIDQuMi05LjcgNi42ek0zMTkgMzI3LjZjLTMuMSAxLjYtNiAyLjktMTAgNWwtLjMtLjNjMS4zLTIuNiAxLjItMi43LTExLjgtMzIuNWwtLjMtLjNjLS4yIDAtOC45IDMuNy0xMCA3LjNsLS41IDAtMS01LjggLjMtLjVjNy4zLTQuNiAyNS41LTExLjYgMjcuOC0xMi42bC41IC4zIDMuMSA1LS4zIC41Yy0zLjUtMS44LTcuNCAuOC0xMi4zIDIuNmwwIC4zYzEyLjMgMzIgMTIuNyAzMC42IDE0LjcgMzAuNmwwIC4yem00NC44LTE2LjVjLTQuMiAxLTUuMiAxLjMtOS43IDIuOWwtLjMtLjMgLjUtNC41Yy0xLTMuNC0zLjEtMTEuNS0zLjctMTMuNmwtLjMtLjNjLTMuNCAuOC04LjkgMi42LTEyLjggMy45bC0uMyAuM2MuOCAyLjYgMy4xIDkuOSA0LjIgMTMuOSAuOCAyLjQgMS44IDIuOSAyLjkgMy4xbDAgLjVjLTMuNyAxLTcuMSAyLjYtMTAuMiAzLjlsLS4zLS4zYzEtMS4zIDEtMi45IC4zLTUtMS0zLjEtOC4xLTIzLjgtOS4yLTI3LjItLjUtMS44LTEuNi0zLjEtMi42LTMuMWwwLS41YzMuMS0xIDYtMi4xIDEwLjctMy40bC4zIC4zLS4zIDQuN2MxLjMgMy45IDIuNCA3LjYgMy4xIDkuN2wuMyAwYzMuOS0xLjMgOS40LTIuOSAxMi44LTMuOWwuMy0uMy0yLjYtOS40Yy0uNS0xLjgtMS0zLjQtMi42LTMuOWwwLS4zYzQuNC0xIDcuMy0xLjggMTAuNy0yLjRsLjMgLjNjLTEgMS4zLTEgMi45LS41IDQuNCAxLjYgNi4zIDQuNyAyMC40IDYuMyAyNi41IC41IDIuNiAxLjggMy40IDIuNiAzLjl6bTMyLjItNi44bC0uMyAuM2MtNC43IC41LTE0LjEgMi40LTIyLjUgNC4ybC0uMy0uMyAuOC00LjJjLTEuNi03LjktMy40LTE4LjYtNS0yNi4yLS4zLTEuOC0uOC0yLjktMi42LTMuN2wuOC0uNWM5LjItMS42IDIwLjItMi40IDI0LjktMi42bC4zIC4zYy41IDIuNCAuOCAzLjEgMS42IDUuNWwtLjMgLjNjLTEuMS0xLjEtMy4zLTMuMi0xNi4yLS44bC0uMyAuM2MuMyAxLjYgMSA2LjYgMS42IDkuOWwuMyAuM2M5LjUtMS43IDQuOC0uMSAxMC43LTIuNGwuMyAwYzAgMS42LS4zIDEuOC0uMyA1LjJsLS4zIDBjLTQuOC0xLTIuMi0uOS0xMC4yIDBsLS4zIC4zYy4zIDIuMSAxLjYgOS40IDIuMSAxMi42bC4zIC4zYzEuMiAuNCAxNC4yLS42IDE2LjItNC43bC4zIDBjLS41IDIuNC0xIDQuMi0xLjYgNnptMTAuNy00NC41Yy00LjUgMi40LTguMSAyLjktMTEgMi45LS4yIDAtMTEuNCAxLjEtMTcuNS0xMC02LjctMTAuOC0xLTI1LjIgNS41LTMxLjcgOC44LTguMSAyMy40LTEwLjEgMjguNS0xNyA4LTEwLjMtMTMtMjIuMy0yOS42LTUuOGwtMi42LTIuOSA1LjItMTYuMmMyNS42LTEuNiA0NS4yLTMgNTAgMTYuMiAuOCAzLjEgMCA5LjQtLjMgMTIuMSAwIDIuNi0xLjggMTguOC0yLjEgMjMtLjUgNC4yLS44IDE4LjMtLjggMjAuNyAuMyAyLjQgLjUgNC4yIDEuNiA1LjUgMS42IDEuOCA1LjggMS44IDUuOCAxLjhsLS44IDQuN2MtMTEuOC0xLjEtMTAuMy0uNi0yMC40LTEtMy4yLTUuMS0yLjItMy4zLTQuMi03LjkgMCAwLTQuMiAzLjktNy4zIDUuNXpNNDQzLjkgMjgxYy02LjQtMTAuNi0xOS44LTcuMi0yMS43IDUuNS0yLjYgMTcuMSAxNC4zIDE5LjggMjAuNyAxMC4ybC4zIC4zYy0uNSAxLjgtMS44IDYtMS44IDYuM2wtLjUgLjVjLTEwLjMgNi45LTI4LjUtMi41LTI1LjctMTguNiAxLjktMTAuOSAxNC40LTE4LjkgMjguOC05LjlsLjMgLjVjMCAxLjEtLjMgMy40LS4zIDUuM3ptNS44LTg3LjdsMC02LjZjLjcgMCAxOS42IDMuMyAyNy44IDcuM2wtMS42IDE3LjVzMTAuMi05LjQgMTUuNC0xMC43YzUuMi0xLjYgMTQuOSA3LjMgMTQuOSA3LjNsLTExLjMgMTEuM2MtMTIuMS02LjQtMTkuNi0uMS0yMC43IC44LTUuMyAzOC43LTguNiA0Mi4yIDQuNCA0Ni4xbC0uNSA0LjdjLTE3LjYtNC4zLTE4LjUtNC41LTM2LjktNy4zbC44LTQuN2M3LjMgMCA3LjUtNS4zIDcuNi02LjggMCAwIDUtNTMuMiA1LTU1LjMgMC0yLjktNS0zLjctNS0zLjd6bTExIDExNC40Yy04LjEtMi4xLTE0LjEtMTEtMTAuNy0yMC43IDMuMS05LjQgMTIuMy0xMi4zIDE4LjktMTAuMiA5LjIgMi42IDEyLjggMTEuOCAxMC43IDE5LjQtMi42IDguOS05LjQgMTMuOS0xOC45IDExLjV6bTQyLjIgOS43Yy0yLjQtLjUtNy4xLTIuNC04LjYtMi45bDAtLjMgMS42LTEuOGMuNi04LjIgLjYtNy4zIC4zLTcuNi00LjgtMS44LTYuNy0yLjQtNy4xLTIuNC0xLjMgMS44LTIuOSA0LjUtMy43IDUuNWwtLjggMy40IDAgLjNjLTEuMy0uMy0zLjktMS4zLTYtMS42bDAtLjMgMi42LTEuOGMzLjQtNC43IDEwLTE0LjEgMTMuOS0yMC4ybDAtMi4xIC41LS4zYzIuMSAuOCA1LjUgMi4xIDcuNiAyLjkgLjUgLjUgLjItMS45LTEgMjUuMS0uMiAxLjggMCAyLjYgLjggMy45em0tNC43LTg5LjhjMTEuMy0xOC4zIDMwLjgtMTYuMiAzNC0zLjRsNy42LTI2LjJjMi4zLTYuMi0yLjgtOS45LTQuNS0xMS4zbDEuOC0zLjdjMTIuMiAxMC40IDE2LjQgMTQgMjIuNSAyMC40LTI1LjkgNzMuMS0zMC44IDgwLjgtMjQuNiA4NC4zbC0xLjggNC40Yy02LjQtMy4zLTguOS00LjQtMTcuOC04LjZsMi4xLTYuOGMtLjMtLjMtMy45IDMuOS05LjcgMy43LTE5LjEtMS4zLTIyLjktMzEuNy05LjctNTIuOXptMjkuMyA3OS4zYzAtNS43LTYuMy03LjktNy45LTUuMi0xLjMgMi4xIDEgNSAyLjkgOC40IDEuNiAyLjYgMi42IDYuMyAxIDkuNC0yLjYgNi4zLTEyLjQgNS4zLTE1LjQtLjggMC0uNy0uMyAuMSAxLjgtNC43bC44LS4zYy0uNiA1LjcgNi4xIDkuNiA4LjQgNSAxLTIuMS0uNS01LjUtMi4xLTguNC0xLjYtMi42LTMuNy02LjMtMS44LTkuNyAyLjctNS4xIDExLjMtNC41IDE0LjcgMi40bDAgLjUtMi40IDMuNHptMjEuMiAxMy40Yy0yLTMuMy0uOS0yLjEtNC41LTQuN2wtLjMgMGMtMi40IDQuMi01LjggMTAuNS04LjYgMTYuMi0xLjMgMi40LTEgMy40LS44IDMuOWwtLjMgLjMtNS44LTQuNCAuMy0uMyAyLjEtMS4zYzMuMS01LjggNi42LTEyLjEgOS4yLTE3bDAtLjNjLTIuNi0yLTEuMi0xLjUtNi0xLjhsMC0uMyAzLjEtMy40IC4zIDBjMy43IDIuNCAxMCA2LjggMTIuMyA4LjlsLjMgLjMtMS4zIDMuOXpNNTc1LjggMjc2bC0yLjktMi45Yy44LTIuNCAxLjgtNSAyLjEtNy42IC43LTkuNy0xMS41LTExLjgtMTEuNS01IDAgNSA3LjkgMTkuNCA3LjkgMjcuOCAwIDEwLjItNS44IDE1LjctMTMuOSAxNi41LTguNCAuOC0yMC4yLTEwLjUtMjAuMi0xMC41bDUtMTQuNCAyLjkgMi4xYy0zIDE3LjggMTcuNyAyMC40IDEzLjMgNS4yLTEuMS00LTE4LjctMzQuMiAyLjEtMzguMiAxMy42LTIuNCAyMyAxNi41IDIzIDE2LjVMNTc1LjggMjc2em0zNS42LTEwLjJjLTExLTMwLjQtNjAuNS0xMjcuNS0xOTItMTI5LjYtNTMuNC0xLTk0LjMgMTUuNC0xMzIuOCAzOGw4NS42LTkuMi05MS40IDIwLjcgMjUuMSAxOS42LTMuOS0xNi41YzcuNS0xLjcgMzkuMS04LjUgNjYuOC04LjlsLTIyLjMgODAuNGMxMy42LS43IDE5LTkgMTkuNi0yMi44bDUtMSAuMyAyNi43Yy0yMi41IDMuMi0zNy4zIDYuNy00OS41IDkuOWwxMy4xLTQzLjItNjEuNS0zNi43IDIuNCA4LjEgMTAuMiA1YzYuMyAxOC42IDE5LjQgNTYuNiAyMC40IDU4LjcgMiA0LjMgMy4yIDUuOCAxMiA0LjVsMS4xIDVjLTE2LjEgNC45LTIzLjcgNy42LTM5IDE0LjRsLTIuNC00LjdjNC40LTIuOSA4LjctMy45IDUuNS0xMi44LTIzLjctNjIuNS0yMS41LTU4LjEtMjIuOC01OS40bDIuNC00LjQgMzMuNSA2Ny4zYy0zLjgtMTEuOSAxLjcgMS43LTMzLTc4LjhsLTQxLjkgODguNSA0LjctMTMuOS0zNS45LTQyLjIgMjcuOCA5My41LTExLjggOC40Yy0xMTEuOS0xMDEuNy0xMDUuOC05OC40LTExMy43LTk4LjctNS41LS4zLTEzLjYgNS41LTEzLjYgNS41bC01LTZjMzAuNi0yMy41IDMxLjYtMjQuMyA1OC40LTQyLjdsNC4yIDcuMXMtNS44IDQuMi03LjkgNy4xYy01LjkgOS4zIDEuNyAxMy4zIDYxLjggNzUuN2wtMTguOC01OC45IDM5LjgtMTAuMiAyNS43IDMwLjYgNC40LTEyLjMtNS0yNC42IDEzLjEtMy40IC41IDMuMSAzLjctMTAuNS05NC4zIDI5LjMgMTEuMy01LTEzLjYtNDIuNCAxNy4zLTkuMiAzMC4xIDM2LjEgMjguNS0xMy4xYy0xLjQtNy41LTIuNS0xNC41LTQuNy0xOS42bDE3LjMgMTMuOSA0LjctMi4xLTU5LjItNDIuNyAyMy4xIDExLjVjMTktNi4xIDI1LjItNy41IDMyLjItOS43bDIuNiAxMWMtMTIuNiAxMi42IDEuNCAxNi44IDYuNSAxOS40bC0xMy42LTYxIDEyIDI4LjNjNC4yLTEuMyA3LjMtMi4xIDcuMy0yLjFsMi42IDguNnMtMy4xIDEtNi4zIDIuMWw4LjkgMjEgMzMuOC02NS43LTIwLjcgNjFjNDIuNC0yNC4xIDgxLjQtMzYuNyAxMzItMzUuOSA2NyAxIDE2Ny4zIDQwLjggMTk5LjggMTM5LjggLjggMi4xIDAgMi42LS44IC4zem0tNDA4LTExMy40czEuOC0uNSA0LjItMS4zbDkuNCA3LjZjLS40IDAtMy40LS4zLTExLjMgMi40bC0yLjQtOC42em0xNDMuOCAzOC41Yy0xLjYtLjYtMjYuNS00LjgtMzMuMyAyMC43bDIxLjcgMTcgMTEuNS0zNy43ek0zMTguNCA2Ny4xYy01OC40IDAtMTA2LjEgMTItMTE1IDE0LjRsMCAuOGM4LjQgMi4xIDE0LjQgNC4yIDIxLjIgMTEuOGwxLjYgLjNjNi42LTEuOCA0OS0xMy45IDExMC4yLTEzLjkgMTgwLjIgMCAzMDEuNyAxMTYuOCAzMDEuNyAyMjMuNGwwIDEwYzAgMS4zIC44IDIuNiAxLjEgLjUgLjUtMi4xIC44LTguNiAuOC0xOS42IC4zLTgzLjgtOTYuNi0yMjcuNi0zMjEuNi0yMjcuNnpNNTI5LjUgMjM2LjhjMS4zLTUuOCAwLTEyLjMtNy4zLTEzLjEtOS42LTEuMS0xNi4xIDIzLjgtMTcgMzMuNS0uOCA1LjUtMS4zIDE0LjkgNiAxNC45IDQuNyAwIDkuNy0uOSAxOC4zLTM1LjR6TTQ2OCAyNzkuN2MtMi42LS44LTkuNC0uOC0xMi42IDEwLjUtMS44IDYuOCAuNSAxMy40IDYgMTQuNyAzLjcgMS4xIDguOSAuNSAxMS44LTEwLjcgMi42LTkuOS0xLjgtMTMuNi01LjItMTQuNHptMjMgMjFjMS44IC41IDMuMSAxIDUuOCAxLjggMC0xLjggLjUtOC40IC44LTEyLjEtMSAxLjMtNS41IDguMS02LjYgMTBsMCAuM3oiXX0sV0R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmQiLGljb246WzUxMiw1MTIsW10sImY0ZWIiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem05NCAxNDQuM2wwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHptMCA3OS44bDAgNDIuNS0xODAuMyAwIDAtNDIuNSAxODAuMyAweiJdfSxHRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNwcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdlMSIsIk00MjguMyAyNDEuN2MyNS44LTQxLjMgMTUuMi00OC44LTExLjctNDguOGwtMjcgMGMtLjEgMC0xLjUtMS40LTEwLjkgOC0xMS4yIDUuNi0zNy45IDYuMy0zNy45IDguNyAwIDQuNSA3MC4zLTMuMSA4OC4xIDAgOS41IDEuNS0xLjUgMjAuNC00LjQgMzItLjUgNC41IDIuNCAyLjMgMy44IC4xek0zMTYuMiAyNjQuM2M2NC0yMS4zIDk3LjMtMjMuOSAxMDItMjYuMiA0LjQtMi45LTQuNC02LjYtMjYuMi01LjgtNTEuNyAyLjItMTM3LjYgMzcuMS0xNzIuNiA1My45bC0zMC43LTkzLjMgMTk2LjYgMGMtMi43LTI4LjItMTUyLjktMjIuNi0zMzcuOS0yMi42TC01IDQxNS44YzE5Ni40LTk3LjMgMjU4LjktMTMwLjMgMzIxLjItMTUxLjV6TTYyLjcgOTZjMjUzLjMgNTMuNyAzMzAgNjUuNyAzMzIuMSA4NS4yIDM2LjQgMCA0NS45IDAgNTIuNCA2LjYgMjEuMSAxOS43LTE0LjYgNjcuNy0xNC42IDY3LjctNC40IDIuOS00MDYuNCAxNjAuMi00MDYuNCAxNjAuMkw0NDkuMyA0MTUuNyA1MTcgOTYgNjIuNyA5NnoiXX0sS0R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sZXR0ZXJib3hkIixpY29uOls0NDgsNTEyLFtdLCJlNjJlIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTEwNS4xIDE4N0M2Ni40IDE4NyAzNSAyMTguMyAzNSAyNTdzMzEuNCA3MCA3MC4xIDcwYzI0LjggMCA0Ni41LTEyLjggNTktMzIuMmwuNS0uNy0uNC0uNmMtNi41LTEwLjYtMTAuMi0yMy4xLTEwLjItMzYuNSAwLTEzLjYgMy45LTI2LjMgMTAuNi0zNy4xLTEyLjQtMTkuOC0zNC40LTMyLjktNTkuNS0zMi45ek0yMjQgMTg3Yy0yNC44IDAtNDYuNSAxMi44LTU5IDMyLjJsLS41IC43IC40IC42YzYuNSAxMC42IDEwLjIgMjMuMSAxMC4yIDM2LjUgMCAxMy42LTMuOSAyNi4zLTEwLjYgMzcuMSAxMi40IDE5LjcgMzQuNCAzMi45IDU5LjUgMzIuOSAyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjctMzQuNC0zMi45LTU5LjUtMzIuOXptMTE4LjkgMGMtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS44IDM0LjQgMzIuOSA1OS41IDMyLjkgMzguNyAwIDcwLjEtMzEuMyA3MC4xLTcwcy0zMS40LTcwLTcwLjEtNzB6Il19LFlEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYW5kYWxvcmlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZjUwZiIsIk0yMDAuNiA1MTEuOWMtMS0zLjMtMS43LTE1LjgtMS40LTI0LjYgLjYtMTUuOSAxLTI0LjcgMS40LTI4LjggLjYtNi4yIDIuOS0yMC43IDMuMy0yMS40IC42LTEgLjQtMjcuOS0uMi0zMy4xLS4zLTIuNi0uNi0xMS45LS43LTIwLjctLjEtMTYuNS0uNS0yMC4xLTIuNy0yNC44LTEuMS0yLjMtMS4yLTMuOC0xLTExLjQgLjItNC4yIC4xLTguNS0uMy0xMi43LTItMTMtMy41LTI3LjctMy4yLTMzLjlzLjQtNy4xIDIuMS05LjdjMy4xLTQuNyA2LjUtMTQgOC42LTIzLjMgMi4zLTkuOSAzLjktMTcuMiA0LjYtMjAuNyAxLjEtNS4xIDIuNi0xMC4xIDQuNC0xNS4xIDIuMy02LjIgMi41LTE1LjQgLjQtMTUuNC0uMyAwLTEuNCAxLjItMi40IDIuN3MtNC44IDQuOC04LjMgNy40Yy04LjQgNi4xLTExLjcgOS40LTEyLjcgMTIuNnMtMSA3LjItLjIgNy44Yy4zIC4yIDEuMyAyLjQgMi4xIDQuOSAxLjYgNSAxLjkgMTAuMyAuNyAxNS40LS40IDEuOC0xIDUuNS0xLjUgOC4ycy0xIDYuNS0xLjMgOC4yYy0uMiAxLjUtLjcgMy0xLjUgNC4zLTEgMS0xLjEgLjktMi4xLS41LS43LTEuNS0xLjItMy4xLTEuNC00LjctLjItMS43LTEuNi03LjEtMy4xLTExLjktMy4zLTEwLjktMy41LTE2LjItMS0yMSAuOC0xLjQgMS40LTMgMS43LTQuNiAwLTIuNC0yLjItNS4zLTcuNC05LjktNy02LjItOC42LTcuOS0xMC4yLTExLjMtMS43LTMuNi0zLjEtNC4xLTQuNS0xLjUtMS44IDMtMi42IDkuMS0zIDIybC0uMyAxMi4yIDIgMi4yYzMuMiAzLjcgMTIuMSAxNi41IDEzLjggMTkuOCAzLjQgNi43IDQuMyAxMS43IDQuNCAyMy42czEgMjIuOCAyIDI0LjdjLjQgLjcgLjUgMS40IC4zIDEuNXMuNCAyLjEgMS4zIDQuM2MxIDIuOSAxLjcgNS45IDIuMSA5IC40IDMuNSAuOSA3IDEuNyAxMC40IDIuMiA5LjYgMi44IDE0LjEgMi40IDIwLjEtLjIgMy4zLS41IDExLjEtLjcgMTcuMy0xLjMgNDEuOC0xLjggNTgtMiA2MS4yLS4xIDItLjQgMTEuNS0uNiAyMS4xLS40IDE2LjMtMS4zIDI3LjQtMi40IDI4LjYtLjYgLjctOC4xLTQuOS0xMi41LTkuNS0zLjgtMy45LTQtNC44LTIuOC05LjkgLjctMyAyLjMtMTguMyAzLjMtMzIuNiAuNC00LjggLjgtMTAuNSAxLTEyLjcgLjgtOS40IDEuNy0yMC4zIDIuNi0zNC44IC42LTguNSAxLjMtMTYuNCAxLjctMTcuN3MuOS05LjkgMS4xLTE5LjFsLjQtMTYuOC0yLjMtNC4zYy0xLjctMy4zLTQuOS02LjktMTMuMi0xNS4zLTYtNi4xLTExLjgtMTIuMy0xMi45LTEzLjhsLTItMi44IC44LTEwLjljMS4xLTE1LjcgMS4xLTQ4LjYgMC01OS4xbC0uOS04LjctMy4zLTQuNWMtNS45LTguMS01LjgtNy43LTYuMi0zMy4zLS4xLTYuMS0uNC0xMS41LS42LTEyLjEtLjgtMS45LTMtMi43LTguNS0zLTguOS0uNi0xMS0xLjktMjMuOC0xNC42LTYuMi02LTEyLjMtMTItMTMuOC0xMy4yLTIuOC0yLjQtMi44LTItLjYtOS42bDEuNC00LjYtMS43LTNjLS44LTEuNC0xLjYtMi44LTIuNi00LjEtMS4zLTEuNS01LjUtMTAuOS02LTEzLjUtLjItLjctLjItMS40LS4xLTIuMXMuNS0xLjMgLjktMS44YzIuMi0yLjkgMy40LTUuNyA0LjUtMTAuNyAyLjMtMTEuMiA3LjctMjYuMSAxMC42LTI5LjIgMy4yLTMuNSA3LjctMSA5LjQgNSAxLjMgNC44IDEuNCA5LjggLjEgMTguNi0uNSAzLjctLjkgNy40LTEgMTEuMSAwIDQgLjIgNC43IDIuMyA3LjQgMy4zIDQuNCA3LjcgNy40IDE1LjIgMTAuNSAxLjcgLjcgMy4zIDEuNyA0LjcgMi44IDExLjIgMTAuNyAxOC42IDE2LjIgMjIuOSAxNi45IDUuMiAuOCA4IDQuNSAxMCAxMy40IDEuMyA1LjcgNCAxMS4xIDUuNSAxMS4xIDEuMi0uMiAyLjMtLjcgMy4zLTEuNCAyLTEuMiAyLjItMS43IDIuMi00LjItLjMtNi0uOS0xMS45LTItMTcuOC0uNC0xLjctLjgtNC4xLS45LTUuNHMtLjYtMy44LTEtNS43Yy0yLjYtMTEuMi0zLjYtMTUuNS00LjEtMTYtMS42LTItNC4xLTEwLjItNC45LTE1LjktMS42LTExLjEtNC0xNC4yLTEyLjktMTcuNC00LjktMS44LTkuNC00LjUtMTMuMy03LjktMS4yLTEtNC0zLjItNi40LTUuMXMtNC40LTMuNS00LjYtMy44Yy0uOC0uNy0xLjctMS40LTIuNy0yLTYuMi00LjItOC44LTctMTEuMy0xMmwtMi40LTVjLS4xLTguNy0uMy0xNy4zLS40LTI2bDYuOS02LjZjNC0zLjggOC41LTcuNCAxMC42LTguNCAzLjMtMS43IDQuNC0xLjkgMTEuNC0yIDguNS0uMiAxMC4xIDAgMTEuNyAxLjZzMS40IDYuNC0uMyA4LjVjLS42IC43LTEuMSAxLjUtMS4zIDIuMyAwIC42LTIuNiA0LjktNS40IDktMS4xIDIuMi0xLjkgNC41LTIuNCA2LjggMjAuNCAxMy40IDIxLjYgMy44IDE0LjEgMjlsMTEuNCAyLjVjMy4xLTguNyA2LjUtMTcuMyA4LjYtMjYuMiAuMy03LjYtMTItNC4yLTE1LjQtOC43LTIuMy01LjkgMy4xLTE0LjIgNi4xLTE5LjIgMS42LTIuMyA2LjYtNC43IDguOC00LjEgLjkgLjIgNC4yLS40IDcuNC0xLjMgMi41LS44IDUtMS4zIDcuNS0xLjcgMi0uMiA0LjEtLjcgNi0xLjMgMy43LTEuMSA0LjUtMS4yIDYuMy0uNCAxLjkgLjYgMy44IDEuMSA1LjggMS40IDIuMSAuMyA0LjEgLjkgNiAxLjkgMS42IC45IDMuMyAxLjcgNSAyLjIgMi41IC43IDMgLjYgNy0xLjdMMjI2IDUuNCAyMzYuNyA1YzEwLjQtLjQgMTAuOC0uNSAxNS4zLTIuN0wyNTYuNSAwIDI1OSAxLjRjMS44IDEgMy4xIDIuNyA0LjkgNiAyLjQgNC41IDIuNCA0LjYgMS40IDcuNC0uOSAyLjQtLjkgMy4zLS4xIDYuNCAuNSAyIDEuMiA0IDIuMSA1LjkgLjYgMS4zIDEuMSAyLjYgMS4zIDQgLjMgNC4zIDAgNS4zLTIuNCA2LjktMi4yIDEuNS03IDcuOS03IDkuMy0uMiAxLS42IDItMS4xIDMtNSAxMS41LTYuOCAxMy42LTE0LjMgMTctOS4yIDQuMi0xMi4zIDUuMi0xNi4yIDUuMi0zLjEgMC00IC4yLTQuNSAxLjMtMS4yIDEuNC0yLjUgMi43LTQuMSAzLjctMS44IDEuMi0zLjMgMi45LTQuNCA0LjgtLjUgMS4yLTEuNCAyLjItMi41IDIuOS0uOSAuNC0xLjggMS0yLjUgMS43LTIuMiAxLjktNC42IDMuNy03IDUuNC0zLjMgMi4zLTYuOSA1LTcuOSA2LS43IC43LTEuNSAxLjMtMi40IDEuNy0uOCAuNC0xLjYgLjktMi4xIDEuNi0xLjMgMS40LTEuNSAyLjEtMS4xIDQuNiAuMyAyIC44IDQgMS40IDUuOSAxLjMgMy44IDEuMyA3LjkgMCAxMC42cy0uOSA2LjcgMS40IDkuNmMyIDIuNiAyLjIgNC42IC43IDguOC0uOCAyLjktMS4xIDUuOS0xLjEgOC45IDAgNC45IC4yIDYuMyAxLjUgOC40czEuOCAyLjUgMy4yIDIuM2MyLS4yIDIuMy0xLjEgNC43LTEyLjEgMi4yLTEwIDMuNy0xMS45IDEzLjgtMTcuMSAyLjktMS41IDcuNS00IDEwLTUuNHM2LjgtMy43IDkuNC00LjljNS45LTIuNiAxMS4yLTYuNiAxNS4yLTExLjcgNy4xLTguOCAxMC0xNi4yIDEyLjgtMzMuMyAuNC0yLjggMS4zLTUuNCAyLjktNy43IDEuNC0yLjIgMi40LTQuNyAyLjktNy4zIDEtNS4zIDIuOS05LjEgNS42LTExLjUgNC43LTQuMiA2LTEuMSA0LjYgMTAuOS0uNSAzLjktMS4xIDEwLjMtMS40IDE0LjRsLS42IDcuNGMzIDIuNyA1LjkgNS41IDguOSA4LjJsLjEgOC40Yy4xIDQuNiAuNSA5LjUgLjkgMTAuOWwuOCAyLjUtNi40IDYuM2MtOC41IDguMy0xMi45IDEzLjktMTYuOCAyMS42LTEuOCAzLjUtMy43IDcuMS00LjQgOC0yLjIgMy4xLTYuNSAxMy04LjggMjAuM2wtMi4zIDcuMi03IDYuNWMtMy44IDMuNi04IDcuMi05LjIgOC4yLTMgMi4zLTQuMyA1LjEtNC4zIDEwLS4xIDIuNSAuNCA1IDEuNiA3LjMgLjggMS42IDEuNSAzLjIgMi4xIDQuOCAuMyAxIC45IDIgMS42IDIuOSAxLjQgMS42IDEuOSAxNi4xIC44IDIzLjItLjcgNC41LTMuNiAxMi00LjcgMTItMS44IDAtNC4xIDkuMy01LjEgMjAuNy0uMiAyLS42IDUuOS0xIDguN3MtMSAxMC0xLjQgMTZjLS44IDEyLjItLjIgMTguOCAyIDIzLjIgMy40IDYuNyAuNSAxMi43LTExIDIyLjhsLTQgMy41IC4xIDUuMmMuMSAzIC40IDYgMS4xIDguOSA0LjYgMTYgNC43IDE2LjkgNC40IDM3LjEtLjUgMjYuNC0uMyA0MC4zIC42IDQ0LjIgLjUgMi4zIC45IDQuNiAxLjEgNyAuMiAyIC43IDUuMyAxLjEgNy40IC41IDIuMyAuOCAxMSAuOCAyMi43bDAgMTkuMS0xLjggMi42Yy0yLjcgMy45LTE1LjEgMTMuNS0xNS41IDEyLjNsLjEgMHptMjkuNS00NS4xYy0uMi0uMy0uMy02LjktLjMtMTQuNiAwLTE0LjEtLjktMjcuNS0yLjMtMzQuNC0uNC0yLS44LTkuNy0uOS0xNy4xLS4yLTExLjktMS40LTI0LjQtMi42LTI2LjQtLjctMS4xLTMtMTcuNy0zLTIxLjMgMC00LjIgMS02IDUuMy05LjFzNC45LTMuMSA1LjUtLjdjLjMgMS4xIDEuNCA1LjYgMi42IDEwIDMuOSAxNS4xIDQuMSAxNi4zIDQgMjEuNy0uMSA1LjgtLjEgNi4xLTEuNyAxNy43LTEgNy4xLTEuMiAxMi40LTEgMjguNCAuMiAxOS40LS42IDM1LjctMiA0MS4zLS43IDIuOC0yLjggNS41LTMuNCA0LjRsLS4xIDB6bS03MS0zNy42Yy0uOC0zLjYtMS4zLTcuMi0xLjctMTAuOHMtMS03LjItMS43LTEwLjhjLS41LTIuMS0uOS00LjMtMS02LjUtLjMtMy4yLS45LTcuNS0xLjMtOS41LTEtNC44LTMuMy0xOS40LTMuNC0yMS4xIDAtLjctLjMtNC0uNy03LjQtLjctNi4yLS44LTI3LjctLjItMjguMyAxLTEgNi42IDIuOCAxMS4zIDcuNGw1LjMgNS4zLS40IDYuNWMtLjIgMy42LS42IDEwLjItLjggMTQuOC0uNSAxMy4zLS43IDguNy0xLjYgMjguNC0uOCAxNy40LTEuOSAzMS4zLTIuNiAzMi0uMSAuMS0uMiAuMS0uMiAuMnMtLjIgMC0uMyAwLS4yIDAtLjMtLjEtLjEtLjEtLjItLjJsMCAwek03MiAxNjIuNmMyMS4xIDEyLjggMTcuOCAxNC4yIDI4LjUgMTcuNyAxMyA0LjMgMTguOSA3LjEgMjMuMiAxNi45LTQzLjcgMzYuMS02OSA1Ny45LTc2LjcgNzAuOS0zMSA1Mi02IDEwMS42IDYyLjggODcuMi0xNC4yIDI5LjItNzggMjguNi05OC43LTQuOS0yNC43LTQwLTIyLjEtMTE4LjMgNjEtMTg3LjdsMCAwem0yMTAuOCAxNzljNTYuNyA2LjkgODIuMy0zNy43IDQ2LjUtODkuMiAwIDAtMjYuOS0yOS4zLTY0LjMtNjggMy0xNS41IDkuNS0zMi4xIDMwLjYtNTMuOCA4OS4yIDYzLjUgOTIgMTQxLjYgOTIuNSAxNDkuNCA0LjMgNzAuNi03OC43IDkxLjItMTA1LjMgNjEuN2wwIDB6Il19LGo4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzbGFjayIsaWNvbjpbNDQ4LDUxMixbNjI0NDcsInNsYWNrLWhhc2giXSwiZjE5OCIsIk05NC4xIDMxNS4xYzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xUzAgMzQxIDAgMzE1LjEgMjEuMiAyNjggNDcuMSAyNjhsNDcuMSAwIDAgNDcuMXptMjMuNyAwYzAtMjUuOSAyMS4yLTQ3LjEgNDcuMS00Ny4xUzIxMiAyODkuMiAyMTIgMzE1LjFsMCAxMTcuOGMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMXMtNDcuMS0yMS4yLTQ3LjEtNDcuMWwwLTExNy44em00Ny4xLTE4OWMtMjUuOSAwLTQ3LjEtMjEuMi00Ny4xLTQ3LjFTMTM5IDMyIDE2NC45IDMyIDIxMiA1My4yIDIxMiA3OS4xbDAgNDcuMS00Ny4xIDB6bTAgMjMuN2MyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMVMxOTAuOCAyNDQgMTY0LjkgMjQ0TDQ3LjEgMjQ0QzIxLjIgMjQ0IDAgMjIyLjggMCAxOTYuOXMyMS4yLTQ3LjEgNDcuMS00Ny4xbDExNy44IDB6bTE4OSA0Ny4xYzAtMjUuOSAyMS4yLTQ3LjEgNDcuMS00Ny4xUzQ0OCAxNzEgNDQ4IDE5Ni45IDQyNi44IDI0NCA0MDAuOSAyNDRsLTQ3LjEgMCAwLTQ3LjF6bS0yMy43IDBjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFTMjM2IDIyMi44IDIzNiAxOTYuOWwwLTExNy44QzIzNiA1My4yIDI1Ny4yIDMyIDI4My4xIDMyczQ3LjEgMjEuMiA0Ny4xIDQ3LjFsMCAxMTcuOHptLTQ3LjEgMTg5YzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xUzMwOSA0ODAgMjgzLjEgNDgwIDIzNiA0NTguOCAyMzYgNDMyLjlsMC00Ny4xIDQ3LjEgMHptMC0yMy43Yy0yNS45IDAtNDcuMS0yMS4yLTQ3LjEtNDcuMVMyNTcuMiAyNjggMjgzLjEgMjY4bDExNy44IDBjMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFzLTIxLjIgNDcuMS00Ny4xIDQ3LjFsLTExNy44IDB6Il19LFRiPWo4ZSxaRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5nZWxsaXN0IixpY29uOlszODQsNTEyLFtdLCJmMjA5IiwiTTMxNS42IDIxNS40YzExLjctMzIuNiA0NS40LTEyNi45IDQ1LjQtMTU3LjEgMC0yNi42LTE1LjctNDguOS00My43LTQ4LjktNDQuNiAwLTg0LjYgMTMxLjctOTcuMSAxNjMuMS05LjctMjguNS01NS4xLTE3Mi41LTk1LjEtMTcyLjUtMzEuMSAwLTQ1LjcgMjIuOS00NS43IDUxLjcgMCAzNS4zIDM0LjIgMTI2LjggNDYuNiAxNjItNi4zLTIuMy0xMy4xLTQuMy0yMC00LjMtMjMuNCAwLTQ4LjMgMjkuMS00OC4zIDUyLjYgMCA4LjkgNC45IDIxLjQgOCAyOS43LTM2LjkgMTAtNTEuMSAzNC42LTUxLjEgNzEuNy0uMSA3Mi4yIDY4LjMgMTQ4LjYgMTY0LjUgMTQ4LjYgMTE4IDAgMTkxLjQtODguNiAxOTEuNC0yMDIuOSAwLTQzLjEtNi45LTgyLTU0LjktOTMuN3pNMjgwLjIgMTA4YzQtMTIuMyAyMS4xLTY0LjMgMzcuMS02NC4zIDguNiAwIDEwLjkgOC45IDEwLjkgMTYgMCAxOS4xLTM4LjYgMTI0LjYtNDcuMSAxNDhsLTM0LTYgMzMuMS05My43ek0xMTAuOCA0OC4zYzAtMTEuOSAxNC41LTQ1LjcgNDYuMyA0Ny4xbDM0LjYgMTAwLjNjLTE1LjYtMS4zLTI3LjctMy0zNS40IDEuNC0xMC45LTI4LjgtNDUuNS0xMTkuNy00NS41LTE0OC44ek0xMDguNSAyNDRjMjkuMyAwIDY3LjEgOTQuNiA2Ny4xIDEwNy40IDAgNS4xLTQuOSAxMS40LTEwLjYgMTEuNC0yMC45IDAtNzYuOS03Ni45LTc2LjktOTcuNyAuMS03LjcgMTIuNy0yMS4xIDIwLjQtMjEuMXpNMjkyLjggNDMwLjNjLTI5LjEgMzItNjYuMyA0OC42LTEwOS43IDQ4LjYtNTkuNCAwLTEwNi4zLTMyLjYtMTI4LjktODguMy0xNy4xLTQzLjQgMy44LTY4LjMgMjAuNi02OC4zIDExLjQgMCA1NC4zIDYwLjMgNTQuMyA3My4xIDAgNC45LTcuNyA4LjMtMTEuNyA4LjMtMTYuMSAwLTIyLjQtMTUuNS01MS4xLTUxLjQtMjkuNyAyOS43IDIwLjUgODYuOSA1OC4zIDg2LjkgMjYuMSAwIDQzLjEtMjQuMiAzOC00MiAzLjcgMCA4LjMgLjMgMTEuNy0uNiAxLjEgMjcuMSA5LjEgNTkuNCA0MS43IDYxLjcgMC0uOSAyLTcuMSAyLTcuNCAwLTE3LjQtMTAuNi0zMi42LTEwLjYtNTAuMyAwLTI4LjMgMjEuNy01NS43IDQzLjctNzEuNyA4LTYgMTcuNy05LjcgMjcuMS0xMy4xIDkuNy0zLjcgMjAtOCAyNy40LTE1LjQtMS4xLTExLjItNS43LTIxLjEtMTYuOS0yMS4xLTI3LjcgMC0xMjAuNiA0LTEyMC42LTM5LjcgMC02LjcgLjEtMTMuMSAxNy40LTEzLjEgMzIuMyAwIDExNC4zIDggMTM4LjMgMjkuMSAxOC4xIDE2LjEgMjQuMyAxMTMuMi0zMSAxNzQuN3ptLTk4LjYtMTI2YzkuNyAzLjEgMTkuNyA0IDI5LjcgNi03LjQgNS40LTE0IDEyLTIwLjMgMTkuMS0yLjgtOC41LTYuMi0xNi44LTkuNC0yNS4xeiJdfSxYRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5kcm9pZCIsaWNvbjpbNTc2LDUxMixbXSwiZjE3YiIsIk00MjAuNSAyNTMuOWEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS0yNjUuMSAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMjczLjctOTYuNWw0Ny45LTgzYy44LTEuMSAxLjMtMi40IDEuNS0zLjhzLjItMi43LS4xLTQuMS0uOS0yLjYtMS43LTMuNy0xLjgtMi0zLTIuNy0yLjUtMS4xLTMuOS0xLjMtMi43IDAtNCAuNC0yLjUgMS4xLTMuNiAxLjktMS45IDItMi41IDMuMmwtNDguNSA4NC4xYy0zOC44LTE3LjQtODAuOC0yNi40LTEyMy4zLTI2LjRzLTg0LjUgOS0xMjMuMyAyNi40TDExNi4yIDY0LjRjLS42LTEuMi0xLjUtMi4zLTIuNS0zLjJzLTIuMy0xLjUtMy42LTEuOS0yLjctLjUtNC0uNC0yLjcgLjYtMy45IDEuMy0yLjIgMS42LTMgMi43LTEuNCAyLjQtMS43IDMuNy0uMyAyLjctLjEgNC4xIC44IDIuNiAxLjUgMy44bDQ3LjkgODNDNjQuNSAyMDIuMiA4LjIgMjg1LjUgMCAzODRsNTc2IDBjLTguMi05OC41LTY0LjUtMTgxLjgtMTQ2LjktMjI2LjZ6Il19LFFEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWV0dXAiLGljb246WzU3Niw1MTIsW10sImYyZTAiLCJNMTMxLjEgNDE0LjNjMS4xIDUuNy0yLjMgMTEuMS04IDEyLjMtNS40IDEuMS0xMC45LTIuMy0xMi04LTEuMS01LjQgMi4zLTExLjEgNy43LTEyLjNzMTEuMSAyLjMgMTIuMyA4em0xNDMuMSA3MS40Yy02LjMgNC42LTggMTMuNC0zLjcgMjAgNC42IDYuNiAxMy40IDguMyAyMCAzLjcgNi4zLTQuNiA4LTEzLjQgMy40LTIwLTQuMi02LjUtMTMuMS04LjMtMTkuNy0zLjd6bS04Ni00NjIuM2ExMS44IDExLjggMCAxIDAgLTQuOS0yMyAxMS44IDExLjggMCAxIDAgNC45IDIzek02Ni41IDIyNi4zYTIyLjIgMjIuMiAwIDEgMCAtMjQuNyAzNi45IDIyLjIgMjIuMiAwIDEgMCAyNC43LTM2Ljl6bTI3Mi0xNzAuOWEyMi4xIDIyLjEgMCAxIDAgLTIyLjQtMzggMjIuMSAyMi4xIDAgMSAwIDIyLjQgMzh6bS0xOTEuMSA1OGExNi45IDE2LjkgMCAxIDAgLTE4LjgtMjggMTYuOSAxNi45IDAgMSAwIDE4LjggMjh6bTM3Mi4zIDE1NmMtNy40IDEuNy0xMi4zIDkuMS0xMC42IDE2LjkgMS40IDcuNCA4LjkgMTIuMyAxNi4zIDEwLjYgNy40LTEuNCAxMi4zLTguOSAxMC42LTE2LjYtMS41LTcuNC04LjktMTIuMy0xNi4zLTEwLjl6bTM5LjctNTYuOGExMC4xIDEwLjEgMCAxIDAgLTE5LjggNC4zIDEwLjEgMTAuMSAwIDEgMCAxOS44LTQuM3ptLTgwLjMtNzMuN2ExOC44IDE4LjggMCAxIDAgMjAuNyAzMS4zIDE4LjggMTguOCAwIDEgMCAtMjAuNy0zMS4zem0tNi4zIDEzOS40YzI2LjMgNDMuMSAxNS4xIDEwMC0yNi4zIDEyOS4xLTE3LjQgMTIuMy0zNy4xIDE3LjctNTYuOSAxNy4xLTEyIDQ3LjEtNjkuNCA2NC42LTEwNS4xIDMyLjYtMS4xIC45LTIuNiAxLjctMy43IDIuOS0zOS4xIDI3LjEtOTIuMyAxNy40LTExOS40LTIyLjMtOS43LTE0LjMtMTQuNi0zMC42LTE1LjEtNDYuOS02NS40LTEwLjktOTAtOTQtNDEuMS0xMzkuNy0yOC4zLTQ2LjkgLjYtMTA3LjQgNTMuNC0xMTQuOSAyNS4xLTY2LjIgMTA3LjYtOTcuNiAxNjMuNi01NC4yIDY3LjQtMjIuMyAxMzYuMyAyOS40IDEzMC45IDEwMS4xIDQxLjEgMTIuNiA1Mi44IDY2LjkgMTkuNyA5NS4yem0tNzAgNzQuM2MtMy4xLTIwLjYtNDAuOS00LjYtNDMuMS0yNy4xLTMuMS0zMiA0My43LTEwMS4xIDQwLTEyOC0zLjQtMjQtMTkuNC0yOS4xLTMzLjQtMjkuNC0xMy40LS4zLTE2LjkgMi0yMS40IDQuNi0yLjkgMS43LTYuNiA0LjktMTEuNy0uMy02LjMtNi0xMS4xLTExLjctMTkuNC0xMi45LTEyLjMtMi0xNy43IDItMjYuNiA5LjctMy40IDIuOS0xMiAxMi45LTIwIDkuMS0zLjQtMS43LTE1LjQtNy43LTI0LTExLjQtMTYuMy03LjEtNDAgNC42LTQ4LjYgMjAtMTIuOSAyMi45LTM4IDExMy4xLTQxLjcgMTI1LjEtOC42IDI2LjYgMTAuOSA0OC42IDM2LjkgNDcuMSAxMS4xLS42IDE4LjMtNC42IDI1LjQtMTcuNCA0LTcuNCA0MS43LTEwNy43IDQ0LjYtMTEyLjYgMi0zLjQgOC45LTggMTQuNi01LjEgNS43IDMuMSA2LjkgOS40IDYgMTUuMS0xLjEgOS43LTI4IDcwLjktMjguOSA3Ny43LTMuNCAyMi45IDI2LjkgMjYuNiAzOC42IDQgMy43LTcuMSA0NS43LTkyLjYgNDkuNC05OC4zIDQuMy02LjMgNy40LTguMyAxMS43LTggMy4xIDAgOC4zIC45IDcuMSAxMC45LTEuNCA5LjQtMzUuMSA3Mi4zLTM4LjkgODcuNy00LjYgMjAuNiA2LjYgNDEuNCAyNC45IDUwLjYgMTEuNCA1LjcgNjIuNSAxNS43IDU4LjUtMTEuMXptNS43IDkyLjNhMjMuMyAyMy4zIDAgMSAwIDI2LjIgMzguNCAyMy4zIDIzLjMgMCAxIDAgLTI2LjItMzguNHoiXX0sSkR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucy1maSIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMiIsIk0xMTQuNCAyMjRsOTIuNCAwLTE1LjIgNTEuMi03Ni40IDAgMCAxNTcuOGMwIDgtMi44IDkuMiA0LjQgMTBsNTkuNiA1LjYgMCAzNC40LTE3OS4yIDAgMC0zNS4yIDI5LjItMi44YzcuMi0uOCA5LjItMy4yIDkuMi0xMC44bDAtMTU1LjhjMC0zLjItNC0zLjItOC0zLjJsLTMwLjQgMCAwLTUxLjIgMzguNCAwIDAtMjguOGMwLTY4IDM2LjQtOTYgMTA2LTk2IDQ2LjggMCA4OC44IDExLjIgODguOCA3Mi40TDE2My42IDE4MGMuNC0yNS42LTYtMzEuNi0yMi40LTMxLjYtMjUuMiAwLTI2IDEzLjYtMjYgMzcuNmwwIDMyYzAgMy4yLTQuOCA2LS44IDZ6TTM4NCA0ODNsLTE0MC44IDAgMC0zNC40IDI4LTMuNmM3LjItLjggMTAuNC0yLjQgMTAuNC0xMGwwLTE0OGMwLTUuNi00LTkuMi05LjItMTAuOGwtMzMuMi04LjggOS4yLTQwLjQgMTEwIDAgMCAyMDhjMCA4LTMuNiA4LjggNCAxMGwyMS42IDMuNiAwIDM0LjR6TTM1NCAxMzUuOGwxMi40IDQ1LjYtMTAgMTAtNDIuOC0yMi44LTQyLjggMjIuOC0xMC0xMCAxMi40LTQ1LjYtMzAtMzYuNCA0LjgtMTAgMzggMCAyMS4yLTM4LjQgMTIuOCAwIDIxLjIgMzguNCAzOCAwIDQuOCAxMy4yLTMwIDMzLjJ6Il19LGVMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWxmZWQiLGljb246WzU3Niw1MTIsW10sImYzZDgiLCJNMzg0LjkgMTkzLjljMC00Ny40LTU1LjItNDQuMi05NS40LTI5LjgtMS4zIDM5LjQtMi41IDgwLjctMyAxMTkuOCAuNyAyLjggMi42IDYuMiAxNS4xIDYuMiAzNi44IDAgODMuNC00Mi44IDgzLjMtOTYuMnpNMTkwLjQgMjY2LjFjLjIgMCA2LjUtMi43IDExLjItMi43IDI2LjYgMCAyMC43IDQ0LjEtMTQuNCA0NC4xLTIxLjUgMC0zNy4xLTE4LjEtMzcuMS00MyAwLTQyIDQyLjktOTUuNiAxMDAuNy0xMjYuNSAxLTEyLjQgMy0yMiAxMC41LTI4LjIgMTEuMi05IDI2LjYtMy41IDI5LjUgMTEuMSA3Mi4yLTIyLjIgMTM1LjIgMSAxMzUuMiA3MiAwIDc3LjktNzkuMyAxNTIuNi0xNDAuMSAxMzguMi0uMSAzOS40IC45IDc0LjQgMi43IDEwMGwwIC4yYy4yIDMuNCAuNiAxMi41LTUuMyAxOS4xLTkuNiAxMC42LTMzLjQgMTAtMzYuNC0yMi4zLTQuMS00NC40IC4yLTIwNi4xIDEuNC0yNDIuNS0yMS41IDE1LTU4LjUgNTAuMy01OC41IDc1LjkgLjIgMi41IC40IDQgLjYgNC42ek04IDE4MS4xcy0uMSAzNy40IDM4LjQgMzcuNGwzMCAwIDIyLjQgMjE3LjJzMCA0NC4zIDQ0LjcgNDQuM2wyODguOSAwczQ0LjctLjQgNDQuNy00NC4zbDIyLjQtMjE3LjIgMzAgMHMzOC40IDEuMiAzOC40LTM3LjRjMCAwIC4xLTM3LjQtMzguNC0zNy40bC0zMC4xIDBjLTcuMy0yNS42LTMwLjItNzQuMy0xMTkuNC03NC4zbC0yOCAwIDAtMTkuMXMtMi43LTE4LjQtMjEuMS0xOC40bC04NS44IDBTMjI0IDMxLjkgMjI0IDUwLjNsMCAxOS4xLTI4LjEgMHMtMTA1IDQuMi0xMjAuNSA3NC4zbC0yOSAwUzggMTQyLjUgOCAxODEuMXoiXX0sdEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwYmVnaW5uZXIiLGljb246WzUxMiw1MTIsW10sImYyOTciLCJNNDYzLjIgMzIyLjRjNTYuMiA2NC4zIDQuMiAxNTcuNi05MS45IDE1Ny42LTM5LjYgMC03OC44LTE3LjctMTAwLjEtNTAtNi45IC40LTIyLjcgLjQtMjkuNiAwLTIxLjQgMzIuNC02MC42IDUwLTEwMC4xIDUwLTk1LjUgMC0xNDguMy05My05MS45LTE1Ny42LTc5LjEtMTMxLjkgMzEuMy0yOTAuNCAyMDYuOC0yOTAuNCAxNzUuNiAwIDI4NS45IDE1OC42IDIwNi44IDI5MC40em0tMzM5LjYtODNsNDEuNSAwIDAtNTguMS00MS41IDAgMCA1OC4xem0yMTcuMiA4Ni4xbDAtMjMuOGMtNjAuNSAyMC45LTEzMi40IDkuMi0xODcuNi0zNGwuMiAyNC45YzUxLjEgNDYuNCAxMzEuNyA1Ny45IDE4Ny4zIDMyLjl6TTE5MCAyMzkuNGwxNjYuMSAwIDAtNTguMS0xNjYuMSAwIDAgNTguMXoiXX0sYUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpYXNwb3JhIixpY29uOls0NDgsNTEyLFtdLCJmNzkxIiwiTTIxOS43IDM1NC42Yy0xLjQgMC04OCAxMTkuOS04OC43IDExOS45UzQ0LjQgNDE0IDQ0IDQxMy4zIDEzMC42IDI4Ny41IDEzMC42IDI4NS44YzAtMi4yLTEyOS42LTQ0LTEzNy42LTQ3LjEtMS4zLS41IDMxLjQtMTAxLjggMzEuNy0xMDIuMSAuNi0uNyAxNDQuNCA0NyAxNDUuNSA0NyAuNCAwIC45LS42IDEtMS4zIC40LTIgMS0xNDguNiAxLjctMTQ5LjYgLjgtMS4yIDEwNC41LS43IDEwNS4xLS4zIDEuNSAxIDMuNSAxNTYuMSA2LjEgMTU2LjEgMS40IDAgMTM4LjctNDcgMTM5LjMtNDYuMyAuOCAuOSAzMS45IDEwMi4yIDMxLjUgMTAyLjYtLjkgLjktMTQwLjIgNDcuMS0xNDAuNiA0OC44LS4zIDEuNCA4Mi44IDEyMi4xIDgyLjUgMTIyLjlzLTg1LjUgNjMuNS04Ni4zIDYzLjVjLTEtLjItODktMTI1LjUtOTAuOS0xMjUuNWwwIDB6Il19LHNMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwcm9kdWN0LWh1bnQiLGljb246WzUxMiw1MTIsW10sImYyODgiLCJNMzI2LjMgMjE4LjhjMCAyMC41LTE2LjcgMzcuMi0zNy4yIDM3LjJsLTcwLjMgMCAwLTc0LjQgNzAuMyAwYzIwLjUgMCAzNy4yIDE2LjcgMzcuMiAzNy4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNjcuOS0zNy4yYzAtNDcuOS0zOC45LTg2LjgtODYuOC04Ni44bC0xMTkuOSAwIDAgMjQ4IDQ5LjYgMCAwLTc0LjQgNzAuMyAwYzQ3LjkgMCA4Ni44LTM4LjkgODYuOC04Ni44eiJdfSxpTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXVwd29yayIsaWNvbjpbNDQ4LDUxMixbXSwiZTY3YyIsIk01NiAzMmwzMzYgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJ6TTI3MC45IDI3NC4yYzYuNi01Mi45IDI1LjktNjkuNSA1MS40LTY5LjUgMjUuMyAwIDQ0LjkgMjAuMiA0NC45IDQ5LjdzLTE5LjcgNDkuNy00NC45IDQ5LjdjLTI3LjkgMC00Ni4zLTIxLjUtNTEuNC0yOS45em0tMjYuNy00MS44Yy04LjItMTUuNS0xNC4zLTM2LjMtMTkuMi01NS42bC02Mi45IDAgMCA3OC4xYzAgMjguNC0xMi45IDQ5LjQtMzguMiA0OS40Uzg0LjEgMjgzLjQgODQuMSAyNTVsLjMtNzguMS0zNi4yIDAgMCA3OC4xYzAgMjIuOCA3LjQgNDMuNSAyMC45IDU4LjIgMTMuOSAxNS4yIDMyLjggMjMuMiA1NC44IDIzLjIgNDMuNyAwIDc0LjItMzMuNSA3NC4yLTgxLjVsMC01Mi41YzQuNiAxNy4zIDE1LjQgNTAuNSAzNi4yIDc5LjdsLTE5LjMgMTEwLjUgMzYuOCAwIDEyLjgtNzguNGM0LjIgMy41IDguNyA2LjYgMTMuNCA5LjQgMTIuMyA3LjggMjYuNCAxMi4yIDQwLjkgMTIuNmwzLjQgMGM0NS4xIDAgODAuOS0zNC45IDgwLjktODEuOXMtMzUuOS04Mi4yLTgwLjktODIuMmMtNDUuNCAwLTcwLjkgMjkuNy03OC4xIDYwLjFsMCAuMnoiXX0sckx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImN1dHRsZWZpc2giLGljb246WzQ0OCw1MTIsW10sImYzOGMiLCJNMzQ4IDMwNS41Yy0xNy41IDMxLjYtNTcuNCA1NC41LTk2IDU0LjUtNTYuNiAwLTEwNC00Ny40LTEwNC0xMDRzNDcuNC0xMDQgMTA0LTEwNGMzOC42IDAgNzguNSAyMi45IDk2IDU0LjUgMTMuNy01MC45IDQxLjctOTMuMyA4Ny0xMTcuOC00NS4zLTQ5LjYtMTEwLjUtODAuNy0xODMtODAuNy0xMzcgMC0yNDggMTExLTI0OCAyNDhTMTE1IDUwNCAyNTIgNTA0YzcyLjUgMCAxMzcuNy0zMS4xIDE4My04MC43LTQ1LjMtMjQuNS03My4zLTY2LjktODctMTE3Ljh6Il19LG9MdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRhcHBzIixpY29uOlszMjAsNTEyLFtdLCJmM2M2IiwiTTExOC4zIDIzOC40YzMuNS0xMi41IDYuOS0zMy42IDEzLjItMzMuNiA4LjMgMS44IDkuNiAyMy40IDE4LjYgMzYuNiA0LjYtMjMuNSA1LjMtODUuMSAxNC4xLTg2LjcgOS0uNyAxOS43IDY2LjUgMjIgNzcuNSA5LjkgNC4xIDQ4LjkgNi42IDQ4LjkgNi42IDEuOSA3LjMtMjQgNy42LTQwIDcuOC00LjYgMTQuOC01LjQgMjcuNy0xMS40IDI4LTQuNyAuMi04LjItMjguOC0xNy41LTQ5LjZsLTkuNCA2NS41Yy00LjQgMTMtMTUuNS0yMi41LTIxLjktMzkuMy0zLjMtLjEtNjIuNC0xLjYtNDcuNi03LjhsMzEtNXpNMjI4IDQ0OGMyMS4yIDAgMjEuMi0zMiAwLTMyTDkyIDQxNmMtMjEuMiAwLTIxLjIgMzIgMCAzMmwxMzYgMHptLTI0IDY0YzIxLjIgMCAyMS4yLTMyIDAtMzJsLTg4IDBjLTIxLjIgMC0yMS4yIDMyIDAgMzJsODggMHptMzQuMi0xNDEuNWMzLjItMTguOSA1LjItMzYuNCAxMS45LTQ4LjggNy45LTE0LjcgMTYuMS0yOC4xIDI0LTQxIDI0LjYtNDAuNCA0NS45LTc1LjIgNDUuOS0xMjUuNSAwLTg1LjYtNzEuOC0xNTUuMi0xNjAtMTU1LjJTMCA2OS42IDAgMTU1LjJjMCA1MC4yIDIxLjMgODUuMSA0NS45IDEyNS41IDcuOSAxMi45IDE2IDI2LjMgMjQgNDEgNi43IDEyLjUgOC43IDI5LjggMTEuOSA0OC45IDMuNSAyMSAzNi4xIDE1LjcgMzIuNi01LjEtMy42LTIxLjctNS42LTQwLjctMTUuMy01OC42LTMyLjYtNjAuNC02Ni4xLTk1LjYtNjYuMS0xNTEuNyAwLTY3LjkgNTctMTIzLjIgMTI3LTEyMy4yUzI4NyA4Ny4zIDI4NyAxNTUuMmMwIDU2LjEtMzMuNSA5MS4zLTY2LjEgMTUxLjYtOS43IDE4LTExLjcgMzcuNC0xNS4zIDU4LjYtMy40IDIwLjYgMjkgMjYuNCAzMi42IDUuMXoiXX0sbkx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeCIsaWNvbjpbNTEyLDUxMixbXSwiZTQzYSIsIk0yNDIuNCAyOTIuNWM1LjQtNS40IDE0LjctNS40IDIwLjEgMGw3NyA3N2MxNC4yIDE0LjIgMzMuMSAyMiA1My4xIDIybDE1LjEgMC05Ny4xIDk3LjFjLTMwLjMgMjkuNS03OS41IDI5LjUtMTA5LjggMGwtOTcuNS05Ny40IDkuMyAwYzIwIDAgMzguOS03LjggNTMuMS0yMmw3Ni43LTc2Ljd6bTIwLjEtNzMuNmMtNi40IDUuNS0xNC42IDUuNi0yMC4xIDBsLTc2LjctNzYuN2MtMTQuMi0xNS4xLTMzLjEtMjItNTMuMS0yMmwtOS4zIDAgOTcuNC05Ny40YzMwLjQtMzAuMyA3OS42LTMwLjMgMTA5LjkgMGw5Ny4yIDk3LjEtMTUuMiAwYy0yMCAwLTM4LjkgNy44LTUzLjEgMjJsLTc3IDc3ek0xMTIuNiAxNDIuN2MxMy44IDAgMjYuNSA1LjYgMzcuMSAxNS40bDc2LjcgNzYuN2M3LjIgNi4zIDE2LjYgMTAuOCAyNi4xIDEwLjggOS40IDAgMTguOC00LjUgMjYtMTAuOGw3Ny03N2M5LjgtOS43IDIzLjMtMTUuMyAzNy4xLTE1LjNsMzcuNyAwIDU4LjMgNTguM2MzMC4zIDMwLjMgMzAuMyA3OS41IDAgMTA5LjhsLTU4LjMgNTguMy0zNy43IDBjLTEzLjggMC0yNy4zLTUuNi0zNy4xLTE1LjRsLTc3LTc3Yy0xMy45LTEzLjktMzguMi0xMy45LTUyLjEgLjFsLTc2LjcgNzYuNmMtMTAuNiA5LjgtMjMuMyAxNS40LTM3LjEgMTUuNGwtMzEuOCAwLTU4LTU4Yy0zMC4zLTMwLjMtMzAuMy03OS41IDAtMTA5LjhsNTgtNTguMSAzMS44IDB6Il19LFY4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHVtYmxyIixpY29uOls0NDgsNTEyLFsidHVtYmxyLXNxdWFyZSJdLCJmMTc0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYuOCA0MTZjLTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45bDAtOTAtMjkuNyAwYy0zLjQgMC02LjItMi44LTYuMi02LjJsMC00Mi41YzAtNC41IDIuOC04LjUgNy4xLTEwIDM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yIC41LTYuOSA0LjEtMTAuMiAxMC0xMC4ybDQ0LjMgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA3MiA1MS45IDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJsLTUyLjEgMCAwIDgzLjNjMCAyMS40IDE0LjggMzMuNSA0Mi41IDIyLjQgMy0xLjIgNS42LTIgOC0xLjQgMi4yIC41IDMuNiAyLjEgNC42IDQuOUwzMTggMzg3LjFjMSAzLjIgMiA2LjctLjMgOS4xLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOHoiXX0sbEx0PVY4ZSxjTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3QiLGljb246WzUxMiw1MTIsW10sImY0MWIiLCJNNDE4LjIgMTc3LjJjLTUuNC0xLjgtMTAuOC0zLjUtMTYuMi01LjEgLjktMy43IDEuNy03LjQgMi41LTExLjEgMTIuMy01OS42IDQuMi0xMDcuNS0yMy4xLTEyMy4zLTI2LjMtMTUuMS02OS4yIC42LTExMi42IDM4LjQtNC4zIDMuNy04LjUgNy42LTEyLjUgMTEuNS0yLjctMi42LTUuNS01LjItOC4zLTcuNy00NS41LTQwLjQtOTEuMS01Ny40LTExOC40LTQxLjUtMjYuMiAxNS4yLTM0IDYwLjMtMjMgMTE2LjcgMS4xIDUuNiAyLjMgMTEuMSAzLjcgMTYuNy02LjQgMS44LTEyLjcgMy44LTE4LjYgNS45LTUzLjQgMTguNS05MS43IDQ3LjctOTEuNyA3Ny45IDAgMzEuMiA0MC44IDYyLjUgOTYuMyA4MS41IDQuNSAxLjUgOSAzIDEzLjYgNC4zLTEuNSA2LTIuOCAxMS45LTQgMTgtMTAuNSA1NS41LTIuMyA5OS41IDIzLjkgMTE0LjYgMjcgMTUuNiA3Mi40LS40IDExNi42LTM5LjEgMy41LTMuMSA3LTYuMyAxMC41LTkuNyA0LjQgNC4zIDkgOC40IDEzLjYgMTIuNCA0Mi44IDM2LjggODUuMSA1MS43IDExMS4yIDM2LjYgMjctMTUuNiAzNS44LTYyLjkgMjQuNC0xMjAuNS0uOS00LjQtMS45LTguOS0zLTEzLjUgMy4yLS45IDYuMy0xLjkgOS40LTIuOSA1Ny43LTE5LjEgOTkuNS01MCA5OS41LTgxLjcgMC0zMC4zLTM5LjQtNTkuNy05My44LTc4LjR6TTI4Mi45IDkyLjNjMzcuMi0zMi40IDcxLjktNDUuMSA4Ny43LTM2IDE2LjkgOS43IDIzLjQgNDguOSAxMi44IDEwMC40LS43IDMuNC0xLjQgNi43LTIuMyAxMC0yMi4yLTUtNDQuNy04LjYtNjcuMy0xMC42LTEzLTE4LjYtMjcuMi0zNi40LTQyLjYtNTMuMSAzLjktMy43IDcuNy03LjIgMTEuNy0xMC43ek0xNjcuMiAzMDcuNWM1LjEgOC43IDEwLjMgMTcuNCAxNS44IDI1LjktMTUuNi0xLjctMzEuMS00LjItNDYuNC03LjUgNC40LTE0LjQgOS45LTI5LjMgMTYuMy00NC41IDQuNiA4LjggOS4zIDE3LjUgMTQuMyAyNi4xek0xMzYuOSAxODcuMmMxNC40LTMuMiAyOS43LTUuOCA0NS42LTcuOC01LjMgOC4zLTEwLjUgMTYuOC0xNS40IDI1LjQtNC45IDguNS05LjcgMTcuMi0xNC4yIDI2LTYuMy0xNC45LTExLjYtMjkuNS0xNi00My42em0yNy40IDY4LjljNi42LTEzLjggMTMuOC0yNy4zIDIxLjQtNDAuNnMxNS44LTI2LjIgMjQuNC0zOC45YzE1LTEuMSAzMC4zLTEuNyA0NS45LTEuN3MzMSAuNiA0NS45IDEuN2M4LjUgMTIuNiAxNi42IDI1LjUgMjQuMyAzOC43czE0LjkgMjYuNyAyMS43IDQwLjRjLTYuNyAxMy44LTEzLjkgMjcuNC0yMS42IDQwLjgtNy42IDEzLjMtMTUuNyAyNi4yLTI0LjIgMzktMTQuOSAxLjEtMzAuNCAxLjYtNDYuMSAxLjZzLTMwLjktLjUtNDUuNi0xLjRjLTguNy0xMi43LTE2LjktMjUuNy0yNC42LTM5cy0xNC44LTI2LjgtMjEuNS00MC42em0xODAuNiA1MS4yYzUuMS04LjggOS45LTE3LjcgMTQuNi0yNi43IDYuNCAxNC41IDEyIDI5LjIgMTYuOSA0NC4zLTE1LjUgMy41LTMxLjIgNi4yLTQ3IDggNS40LTguNCAxMC41LTE3IDE1LjUtMjUuNnptMTQuNC03Ni41Yy00LjctOC44LTkuNS0xNy42LTE0LjUtMjYuMi00LjktOC41LTEwLTE2LjktMTUuMy0yNS4yIDE2LjEgMiAzMS41IDQuNyA0NS45IDgtNC42IDE0LjgtMTAgMjkuMi0xNi4xIDQzLjR6TTI1Ni4yIDExOC4zYzEwLjUgMTEuNCAyMC40IDIzLjQgMjkuNiAzNS44LTE5LjgtLjktMzkuNy0uOS01OS41IDAgOS44LTEyLjkgMTkuOS0yNC45IDI5LjktMzUuOHpNMTQwLjIgNTdjMTYuOC05LjggNTQuMSA0LjIgOTMuNCAzOSAyLjUgMi4yIDUgNC42IDcuNiA3LTE1LjUgMTYuNy0yOS44IDM0LjUtNDIuOSA1My4xLTIyLjYgMi00NSA1LjUtNjcuMiAxMC40LTEuMy01LjEtMi40LTEwLjMtMy41LTE1LjUtOS40LTQ4LjQtMy4yLTg0LjkgMTIuNi05NHpNMTE1LjcgMzIwLjZjLTQuMi0xLjItOC4zLTIuNS0xMi40LTMuOS0yMS4zLTYuNy00NS41LTE3LjMtNjMtMzEuMi0xMC4xLTctMTYuOS0xNy44LTE4LjgtMjkuOSAwLTE4LjMgMzEuNi00MS43IDc3LjItNTcuNiA1LjctMiAxMS41LTMuOCAxNy4zLTUuNSA2LjggMjEuNyAxNSA0MyAyNC41IDYzLjYtOS42IDIwLjktMTcuOSA0Mi41LTI0LjggNjQuNXptMTE2LjYgOThjLTE2LjUgMTUuMS0zNS42IDI3LjEtNTYuNCAzNS4zLTExLjEgNS4zLTIzLjkgNS44LTM1LjMgMS4zLTE1LjktOS4yLTIyLjUtNDQuNS0xMy41LTkyIDEuMS01LjYgMi4zLTExLjIgMy43LTE2LjcgMjIuNCA0LjggNDUgOC4xIDY3LjkgOS44IDEzLjIgMTguNyAyNy43IDM2LjYgNDMuMiA1My40LTMuMiAzLjEtNi40IDYuMS05LjYgOC45em0yNC41LTI0LjNjLTEwLjItMTEtMjAuNC0yMy4yLTMwLjMtMzYuMyA5LjYgLjQgMTkuNSAuNiAyOS41IC42IDEwLjMgMCAyMC40LS4yIDMwLjQtLjctOS4yIDEyLjctMTkuMSAyNC44LTI5LjYgMzYuNHptMTMwLjcgMzBjLS45IDEyLjItNi45IDIzLjYtMTYuNSAzMS4zLTE1LjkgOS4yLTQ5LjgtMi44LTg2LjQtMzQuMi00LjItMy42LTguNC03LjUtMTIuNy0xMS41IDE1LjMtMTYuOSAyOS40LTM0LjggNDIuMi01My42IDIyLjktMS45IDQ1LjctNS40IDY4LjItMTAuNSAxIDQuMSAxLjkgOC4yIDIuNyAxMi4yIDQuOSAyMS42IDUuNyA0NC4xIDIuNSA2Ni4zem0xOC4yLTEwNy41Yy0yLjggLjktNS42IDEuOC04LjUgMi42LTctMjEuOC0xNS42LTQzLjEtMjUuNS02My44IDkuNi0yMC40IDE3LjctNDEuNCAyNC41LTYyLjkgNS4yIDEuNSAxMC4yIDMuMSAxNSA0LjcgNDYuNiAxNiA3OS4zIDM5LjggNzkuMyA1OCAwIDE5LjYtMzQuOSA0NC45LTg0LjggNjEuNHpNMjU2IDMwMS44YTQ1LjggNDUuOCAwIDEgMCAwLTkxLjYgNDUuOCA0NS44IDAgMSAwIDAgOTEuNnoiXX0sZEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1Z2dpbmctZmFjZSIsaWNvbjpbNTc2LDUxMixbXSwiZTg2OSIsIk0yODYuOCA4LjJjMTMwIDAgMjM1LjQgMTA1LjggMjM1LjQgMjM2LjMgMCAxNy43LTEuOSAzNS01LjYgNTEuNy0xLjQgNi41LTMuMSAxMi44LTUuMSAxOS4xIDYuNS0uNiAxMyAuNiAxOC43IDMuNSAxMi42IDYuNSAyMC4yIDIxLjcgMTguMiAzNS43LS43IDQuOS0yLjQgOS40LTQuOCAxMy41IDUuMiA0LjIgOSAxMC4xIDEwLjggMTcuMSAxLjQgNS41IDIuOSAxNy4xLTQuOCAyOC45IDUuOCA5LjIgNi42IDIwLjYgMi4yIDMwLjYtNi4yIDE0LjEtMjEuNyAyNS4zLTUxLjcgMzcuMy0zMi41IDEzLTY3LjEgMjEuOS0xMDIuMyAyMS45LTMyIDAtNTUuOS04LjktNzEtMjYuNC0xMyAyLjItMjYuMyAzLjQtNDAgMy40LTEyLjcgMC0yNS4yLTEtMzcuMy0yLjktMTUuMSAxNy4yLTM4LjggMjUuOS03MC42IDI1LjktMzUuMSAwLTcwLTktMTAyLjQtMjEuOS0zMC0xMi00NS41LTIzLjEtNTEuNy0zNy4zLTQuNC05LjktMy42LTIxLjQgMi4yLTMwLjYtNy43LTExLjktNi4zLTIzLjQtNC44LTI4LjkgMS44LTcgNS43LTEyLjkgMTAuOC0xNy4xLTIuNS00LjEtNC4xLTguNi00LjgtMTMuNS0xLjUtMTAuNCAyLTIwLjcgOS43LTI5LjIgNi4xLTYuNyAxNS4xLTEwLjMgMjQuMi0xMC4yLTEuOS02LjEtMy42LTEyLjQtNS0xOC43LTMuNy0xNi43LTUuNy0zNC01LjctNTEuOCAwLTEzMC41IDEwNS40LTIzNi4zIDIzNS40LTIzNi4zek0xMTcuNSAzMTFjLTEzLTguMi0yMi4xLTMuNi0xOSAxMy40czU3LjIgNTguMiA1MiA2Ny4yYy01LjIgOC44LTIzLjUtMTAuMS0yMy44LTEwLjUgMCAwLTU4LjItNTMuMS03MC44LTM5LjMtMTIuNiAxMy44IDkuNiAyNS40IDQxLjMgNDQuN3MzNC4yIDI0LjQgMjkuNyAzMS43LTc0LjUtNTItODEuMS0yNi44Yy02LjUgMjUuMSA3MS40IDMyLjQgNjYuNyA0OS44LTQuOCAxNy40LTU0LjktMzIuOC02NS4yLTEzLjMtMTAuMyAxOS42IDcwLjggNDIuNiA3MS40IDQyLjcgMjYuMiA2LjggOTIuNiAyMS4zIDExNS45LTEyLjkgMTYuNy0yNC42IDE1LjYtNDMuMS03LjQtNjYuMXMtMzYuMy01Ni43LTM2LjMtNTYuN2MwLS4yLTUtMTkuNS0xNi4zLTE3LjgtMTEuNCAxLjgtMTkuNyAzMSA0LjEgNDguOSAyMy44IDE3LjktNC43IDMwLTEzLjkgMTMuMy05LjItMTYuOC0zNC4yLTU5LjktNDcuMS02OC4yem0zNjAuNiAxMy40YzMuMS0xNy02LjEtMjEuNi0xOS0xMy40LTEzIDguMy0zNy45IDUxLjQtNDcuMSA2OC4ycy0zNy43IDQuNi0xMy45LTEzLjMgMTUuNC00Ny4xIDQuMS00OC45LTE2LjMgMTcuOC0xNi4zIDE3LjhjLS4xIC4yLTEzLjQgMzMuNy0zNi4zIDU2LjctMjIuOSAyMy0yNC4xIDQxLjUtNy40IDY2LjEgMjMuMiAzNC4yIDg5LjcgMTkuNyAxMTUuOSAxMi45IDEuNS0uNCA4MS42LTIzLjMgNzEuNC00Mi43LTEwLjMtMTkuNS02MC40IDMwLjYtNjUuMyAxMy4zLTQuOC0xNy4zIDczLjItMjQuNiA2Ni43LTQ5LjgtNi42LTI1LjEtNzYuNiAzNC4xLTgxLjEgMjYuOC00LjUtNy4zLTItMTIuNCAyOS43LTMxLjcgMzEuNy0xOS4zIDU0LTMwLjkgNDEuMy00NC43LTEyLjctMTMuOC03MC44IDM5LjMtNzAuOCAzOS4zLS40IC40LTE4LjYgMTkuMy0yMy44IDEwLjUtNS4zLTguOSA0OC45LTUwLjEgNTItNjcuMnpNMjg2LjggMzIuNmMtMTE2LjYgMC0yMTEuMSA5NC45LTIxMS4xIDIxMS45IDAgMTcuMSAyIDMzLjggNS44IDQ5LjcgMC0uMSAuMS0uMSAuMi0uMiA2LjEtNy40IDE0LjktMTEuNCAyNC43LTExLjQgMTcuNyAwIDMxLjEgMTEuOSA0MS41IDI0LjkgNi44LTkuNCAxNy4xLTE1IDI3LjktMTUgMjAuNyAwIDMzLjIgMTguMSAzNy45IDM0LjMgMi4zIDUuNSAxMy42IDMwLjUgMzAuNCA0Ny40IDI1LjcgMjUuOCAzMi4yIDUyLjQgMTkuNCA4MC45IDE2IDEuOCAzMi44IDEuNyA0OS4yLS4zLTEyLjUtMjguNC02LTU0LjkgMTkuNi04MC42IDE2LjktMTYuOSAyOC4xLTQxLjkgMzAuNS00Ny40IDQuNy0xNi4yIDE3LjItMzQuMyAzNy45LTM0LjMgMTAuOSAwIDIxLjIgNS42IDI3LjkgMTUgMTAuNC0xMyAyMy44LTI0LjkgNDEuNS0yNC45IDguNyAwIDE2LjYgMy4xIDIyLjUgOC45IDUtMjIgNi40LTQ1LjggNC4xLTY4LjctMTAuOC0xMDYuOS0xMDAuNy0xOTAuMy0yMTAtMTkwLjN6bTEuNSAyMzQuMmM0My42IDAgNzktNDIgNzktMTQuNSAwIDI3LjQtMTkuMiA4MC45LTc4LjggODAuOS0xOS4yIDAtMzQuMi01LjUtNDUuOC0xMy45LTIzLjItMTkuNC0zMy40LTQ4LjItMzMuNC02Ni45IDAtMjcuNCAzNS40IDE0LjUgNzkgMTQuNXptLTEzLjMgMjVjLTguMiAyLjQtMTUuNSA2LjgtMjEuNSAxMi42IDIyIDEyLjggNTAuNCAxMi45IDcxLjctMS4zLTUuNS00LjktMTItOC43LTE5LjEtMTEtNS4xLTEuNi0xMC40IDE1LjgtMTYgMTUuOC01LjIgMC0xMC4zLTE3LjYtMTUuMS0xNi4yek0xNDcuMSAyMTUuNWExOS44IDE5LjggMCAxIDEgMC0zOS42IDE5LjggMTkuOCAwIDEgMSAwIDM5LjZ6bTI4Mi40IDBhMTkuOCAxOS44IDAgMSAxIDAtMzkuNiAxOS44IDE5LjggMCAxIDEgMCAzOS42em0tMjQ0LTU1LjRjNy45LTE0LjkgMjYuMy0yMC41IDQxLjEtMTIuNnMyMC40IDI2LjQgMTIuNiA0MS4yYy0zLjcgNy0xNS41LTQuNC0yMi40LTEuOS03LjcgMi43LTEwLjggMTguNy0xOC42IDE0LjYtMTQuOC03LjktMjAuNC0yNi40LTEyLjYtNDEuMnptMTY0LjQtMTIuNmMxNC44LTcuOSAzMy4yLTIuMyA0MS4xIDEyLjZzMi4yIDMzLjMtMTIuNiA0MS4yYy03LjggNC4yLTEwLjktMTEuOC0xOC43LTE0LjYtNi45LTIuNC0xOC43IDktMjIuNCAxLjktNy45LTE0LjktMi4yLTMzLjMgMTIuNi00MS4yeiJdfSx1THQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianhsIixpY29uOls0NDgsNTEyLFtdLCJlNjdiIiwiTTQxMi4yIDMyTDM1LjggMzJDMTYgMzIgMCA0OCAwIDY3LjhMMCA0NDQuMkMwIDQ2NCAxNiA0ODAgMzUuOCA0ODBsMzc2LjQgMGMxOS44IDAgMzUuOC0xNiAzNS44LTM1LjhsMC0zNzYuNEM0NDggNDggNDMyIDMyIDQxMi4yIDMyek0zNzguNiAzMzMuN2MwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAwem0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHoiXX0scEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1saW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem01IDE3MC4ybDY2LjUgMCAwIDIxMy44LTY2LjUgMCAwLTIxMy44em03MS43LTY3LjdhMzguNSAzOC41IDAgMSAxIC03NyAwIDM4LjUgMzguNSAwIDEgMSA3NyAwek0zMTcuOSA0MTZsMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yLTY2LjQgMHoiXX0saEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTZhMiIsIk0zNzYuMyAzMkwwIDMyIDAgNDA4LjNjMCAxOSA3LjYgMzcuMiAyMSA1MC43czMxLjcgMjEgNTAuNyAyMWwzMDQuNiAwYzE5IDAgMzcuMi03LjYgNTAuNy0yMXMyMS0zMS43IDIxLTUwLjdsMC0zMDQuNmMwLTE5LTcuNi0zNy4yLTIxLTUwLjdzLTMxLjctMjEtNTAuNy0yMXpNMzMyLjQgNDMxLjRjLTcuNy04LjUtMTEuNy0yMC43LTEyLTM2LjZsMzEuMyAwYy4yIDE0LjEgNS4xIDIxLjEgMTQuOCAyMS4xYzQuOSAwIDguNC0xLjYgMTAuNS00LjdjMi0zLjEgMy04IDMtMTQuOGMwLTUuNC0xLjMtOS45LTQtMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDM1MS4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjUgMTIuNWM3LjUgOC40IDExLjUgMjAuMyAxMS44IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00IDI3LjQtMTIuMyAzNS43Yy04LjIgOC4zLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwMSAwYy03LjctOC41LTExLjctMjAuNy0xMi0zNi42bDMxLjMgMGMuMiAxNC4xIDUuMSAyMS4xIDE0LjggMjEuMWM0LjkgMCA4LjQtMS42IDEwLjQtNC43YzItMy4xIDMtOCAzLTE0LjhjMC01LjQtMS4zLTkuOS0zLjktMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDI1MC4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjQgMTIuNWM3LjYgOC40IDExLjUgMjAuMyAxMS45IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00LjEgMjcuNC0xMi4zIDM1LjdzLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwNS42IDEuMWMtOC40LTcuNy0xMi41LTE5LjItMTIuNS0zNC41bDAtNzUuNGMwLTE1LjIgNC40LTI2LjcgMTMuMi0zNC42YzguOS03LjggMjAuNy0xMS44IDM1LjItMTEuOGMxNC4xIDAgMjUuMiA0IDMzLjQgMTJjOC4zIDggMTIuNSAyMCAxMi41IDM1LjlsMCA2LTMzLjEgMCAwLTUuOGMwLTYuMS0xLjMtMTAuNy00LTEzLjZjLTEuMS0xLjUtMi42LTIuNy00LjMtMy41cy0zLjUtMS4yLTUuNC0xLjFjLTUuNCAwLTkuMiAxLjgtMTEuNCA1LjZjLTIuMyA1LjItMy4zIDEwLjgtMyAxNi40bDAgNjUuNWMwIDEzLjcgNC44IDIwLjYgMTQuNCAyMC44YzQuNSAwIDcuOS0xLjYgMTAuMi00LjhjMi41LTQuMSAzLjctOC44IDMuNS0xMy42bDAtNC45IDMzLjEgMCAwIDUuMWMwIDEwLjYtMi4xIDE5LjUtNi4yIDI2LjZjLTQgNi45LTkuOSAxMi41LTE3LjEgMTZjLTcuNyAzLjctMTYuMSA1LjUtMjQuNiA1LjNjLTE0LjIgMC0yNS41LTMuOS0zMy44LTExLjZ6Il19LGZMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYXNobm9kZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ5OSIsIk0zNS43IDE3MS4xYy00Ni45IDQ2LTQ2LjkgMTIyLjkgMCAxNjkuOEwxNzEuNiA0NzYuOGM0NiA0Ni45IDEyMi45IDQ2LjkgMTY5LjggMEw0NzcuMyAzNDAuOWM0Ni45LTQ2LjkgNDYuOS0xMjMuOCAwLTE2OS44TDM0MS40IDM1LjJjLTQ2LjktNDYuOS0xMjMuOC00Ni45LTE2OS44IDBMMzUuNyAxNzEuMXpNMTk2IDE5Ni41YTg0LjUgODQuNSAwIDEgMSAxMjAgMTE5IDg0LjUgODQuNSAwIDEgMSAtMTIwLTExOXoiXX0sbUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZGRpdC1hbGllbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI4MSIsIk0zNzMgMTM4LjZjLTI1LjIgMC00Ni4zLTE3LjUtNTEuOS00MS0zMC42IDQuMy01NC4yIDMwLjctNTQuMiA2Mi40bDAgLjJjNDcuNCAxLjggOTAuNiAxNS4xIDEyNC45IDM2LjMgMTIuNi05LjcgMjguNC0xNS41IDQ1LjUtMTUuNSA0MS4zIDAgNzQuNyAzMy40IDc0LjcgNzQuNyAwIDI5LjgtMTcuNCA1NS41LTQyLjcgNjcuNS0yLjQgODYuOC05NyAxNTYuNi0yMTMuMiAxNTYuNlM0NS41IDQxMC4xIDQzIDMyMy40Yy0yNS40LTExLjktNDMtMzcuNy00My02Ny43IDAtNDEuMyAzMy40LTc0LjcgNzQuNy03NC43IDE3LjIgMCAzMyA1LjggNDUuNyAxNS42IDM0LTIxLjEgNzYuOC0zNC40IDEyMy43LTM2LjRsMC0uM2MwLTQ0LjMgMzMuNy04MC45IDc2LjgtODUuNSA0LjktMjQuMiAyNi4zLTQyLjQgNTIuMS00Mi40IDI5LjQgMCA1My4zIDIzLjkgNTMuMyA1My4zcy0yMy45IDUzLjMtNTMuMyA1My4zek0xNTcuNSAyNTUuM2MtMjAuOSAwLTM4LjkgMjAuOC00MC4yIDQ3LjlzMTcuMSAzOC4xIDM4IDM4LjEgMzYuNi05LjggMzcuOC0zNi45LTE0LjctNDkuMS0zNS43LTQ5LjFsLjEgMHpNMzk1IDMwMy4xYy0xLjItMjcuMS0xOS4yLTQ3LjktNDAuMi00Ny45cy0zNi45IDIyLTM1LjcgNDkuMSAxNi45IDM2LjkgMzcuOCAzNi45IDM5LjMtMTEgMzgtMzguMWwuMSAwem0tNjAuMSA3MC44YzEuNS0zLjYtMS03LjctNC45LTguMS0yMy0yLjMtNDcuOS0zLjYtNzMuOC0zLjZzLTUwLjggMS4zLTczLjggMy42Yy0zLjkgLjQtNi40IDQuNS00LjkgOC4xIDEyLjkgMzAuOCA0My4zIDUyLjQgNzguNyA1Mi40czY1LjgtMjEuNiA3OC43LTUyLjR6Il19LCRiPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRpa3RvayIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3YiIsIk00NDguNSAyMDkuOWMtNDQgLjEtODctMTMuNi0xMjIuOC0zOS4ybDAgMTc4LjdjMCAzMy4xLTEwLjEgNjUuNC0yOSA5Mi42cy00NS42IDQ4LTc2LjYgNTkuNi02NC44IDEzLjUtOTYuOSA1LjMtNjAuOS0yNS45LTgyLjctNTAuOC0zNS4zLTU2LTM5LTg4LjkgMi45LTY2LjEgMTguNi05NS4yIDQwLTUyLjcgNjkuNi02Ny43IDYyLjktMjAuNSA5NS43LTE2bDAgODkuOWMtMTUtNC43LTMxLjEtNC42LTQ2IC40cy0yNy45IDE0LjYtMzcgMjcuMy0xNCAyOC4xLTEzLjkgNDMuOSA1LjIgMzEgMTQuNSA0My43IDIyLjQgMjIuMSAzNy40IDI2LjkgMzEuMSA0LjggNDYtLjEgMjgtMTQuNCAzNy4yLTI3LjEgMTQuMi0yOC4xIDE0LjItNDMuOGwwLTM0OS40IDg4IDBjLS4xIDcuNCAuNiAxNC45IDEuOSAyMi4yIDMuMSAxNi4zIDkuNCAzMS45IDE4LjcgNDUuN3MyMS4zIDI1LjYgMzUuMiAzNC42YzE5LjkgMTMuMSA0My4yIDIwLjEgNjcgMjAuMWwwIDg3LjR6Il19LGdMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b3JkcHJlc3MiLGljb246WzUxMiw1MTIsW10sImYxOWEiLCJNNjEuNyAxNjkuNGwxMDEuNSAyNzhjLTcxLTM0LjQtMTE5LjktMTA3LjItMTE5LjktMTkxLjQgMC0zMC45IDYuNi02MC4xIDE4LjQtODYuNnptMzM3LjkgNzUuOWMwLTI2LjMtOS40LTQ0LjUtMTcuNS01OC43LTEwLjgtMTcuNS0yMC45LTMyLjQtMjAuOS00OS45IDAtMTkuNiAxNC44LTM3LjggMzUuNy0zNy44IC45IDAgMS44IC4xIDIuOCAuMi0zNy45LTM0LjctODguMy01NS45LTE0My43LTU1LjktNzQuMyAwLTEzOS43IDM4LjEtMTc3LjggOTUuOSA1IC4yIDkuNyAuMyAxMy43IC4zIDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc3LjUgMjMwLjQgNDYuNi0xMzkuNi0zMy4xLTkwLjhjLTExLjUtLjctMjIuMy0yLTIyLjMtMi0xMS41LS43LTEwLjEtMTguMiAxLjMtMTcuNSAwIDAgMzUuMSAyLjcgNTYgMi43IDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc2LjkgMjI4LjcgMjEuMi03MC45YzktMjkuNCAxNi01MC41IDE2LTY4Ljd6TTI1OS43IDI3NC42TDE5NS45IDQ2MC4xYzE5LjEgNS42IDM5LjIgOC43IDYwLjEgOC43IDI0LjggMCA0OC41LTQuMyA3MC42LTEyLjEtLjYtLjktMS4xLTEuOS0xLjUtMi45TDI1OS43IDI3NC42em0xODMtMTIwLjdjLjkgNi44IDEuNCAxNCAxLjQgMjEuOSAwIDIxLjYtNCA0NS44LTE2LjIgNzYuMmwtNjUgMTg3LjljNjMuMy0zNi45IDEwNS44LTEwNS40IDEwNS44LTE4My45IDAtMzctOS40LTcxLjgtMjYtMTAyLjF6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQ4NC42IDBhMjM2LjYgMjM2LjYgMCAxIDAgLTQ3My4yIDAgMjM2LjYgMjM2LjYgMCAxIDAgNDczLjIgMHoiXX0sYkx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImlkZWFsIixpY29uOls1MTIsNTEyLFtdLCJlMDEzIiwiTTkzLjggMTY1LjVhNDkuMSA0OS4xIDAgMSAwIDAgOTguMSA0OS4xIDQ5LjEgMCAxIDAgMC05OC4xek01NC4zIDQyNS44bDc4LjkgMCAwLTE0MC41LTc4LjkgMCAwIDE0MC41ek0yMDUuOCAyMTQuMmMwLTIwLTEwLTIyLjUtMTguNy0yMi41bC0xNCAwIDAgNDUuOCAxNCAwYzkuNyAwIDE4LjctMi44IDE4LjctMjMuM3ptMjAxLjcgNDZsMC05MS4zIDIyLjggMCAwIDY4LjYgMzMuNyAwQzQ1NC42IDExMy4xIDM1Ni44IDg2LjIgMjY3LjggODYuMmwtOTQuOCAwIDAgODIuOCAxNCAwYzI1LjYgMCA0MS41IDE3LjQgNDEuNSA0NS4zIDAgMjguOC0xNS41IDQ2LTQxLjUgNDZsLTE0IDAgMCAxNjUuNiA5NC44IDBjMTQ0LjYgMCAxOTQuOS02Ny4yIDE5Ni43LTE2NS42bC01Ny4xIDB6bS0xMDkuOCAwbC01Ni4yIDAgMC05MS4yIDU0LjQgMCAwIDIyLjctMzEuNyAwIDAgMTAuNiAzMCAwIDAgMjIuNy0zMCAwIDAgMTIuNSAzMy41IDAgMCAyMi43em03NC43IDBsLTUuMi0xNy43LTI5LjcgMC01LjIgMTcuNy0yMy43IDAgMjcuNS05MS4zIDMyLjMgMCAyNy41IDkxLjMtMjMuNyAwek0yNjcuOCAzMkwuMSAzMiAuMSA0ODAgMjY3LjggNDgwYzE2MS44IDAgMjUxLTc5LjcgMjUxLTIyNC41IDAtODMuNS0zMi42LTIyMy41LTI1MS0yMjMuNXptMCA0MjYuOWwtMjQ2LjYgMCAwLTQwNS45IDI0Ni42IDBjMTQyLjEgMCAyMjkuOSA2NC42IDIyOS45IDIwMi40IDAgMTM0LjEtODEgMjAzLjQtMjI5LjkgMjAzLjR6bTgzLjktMjY0LjlsLTcuNSAyNS44IDE2LjQgMC03LjUtMjUuOC0xLjQgMHoiXX0sdkx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItcHAiLGljb246WzQ0OCw1MTIsW10sImYxYTciLCJNMjA1LjMgMTc0LjZjMCAyMS4xLTE0LjIgMzguMS0zMS43IDM4LjEtNy4xIDAtMTIuOC0xLjItMTcuMi0zLjdsMC02OGM0LjQtMi43IDEwLjEtNC4yIDE3LjItNC4yIDE3LjUgMCAzMS43IDE2LjkgMzEuNyAzNy44em01Mi42IDY3Yy03LjEgMC0xMi44IDEuNS0xNy4yIDQuMmwwIDY4YzQuNCAyLjUgMTAuMSAzLjcgMTcuMiAzLjcgMTcuNCAwIDMxLjctMTYuOSAzMS43LTM3LjggMC0yMS4xLTE0LjMtMzguMS0zMS43LTM4LjF6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4NSAyNTUuMWM0MSAwIDc0LjItMzUuNiA3NC4yLTc5LjZTMjI2IDk1LjkgMTg1IDk1LjljLTEyIDAtMjQuMSAzLjItMzQuNiA4LjhsLTQ1LjcgMCAwIDIwNi4zIDUxLjgtMTAuMSAwLTUwLjZjOC42IDMuMSAxOC4xIDQuOCAyOC41IDQuOHptMTU4LjQgMjUuM2MwLTQ0LTMzLjItNzkuNi03My45LTc5LjYtMy4yIDAtNi40IC4yLTkuNiAuNy0zLjcgMTIuNS0xMC4xIDIzLjgtMTkuMiAzMy40LTEzLjggMTUtMzIuMiAyMy44LTUxLjggMjQuOGwwIDE1Ni4zIDUxLjgtMTAuMSAwLTUwLjZjOC42IDMuMiAxOC4yIDQuNyAyOC43IDQuNyA0MC44IDAgNzQtMzUuNiA3NC03OS42eiJdfSx4THQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNzdW5uYWgiLGljb246WzUxMiw1MTIsW10sImY0MDciLCJNNDk2LjkgMjY4LjFjMCA2My45LTI1LjQgMTI1LjItNzAuNiAxNzAuM1MzMTkuOSA1MDkgMjU2IDUwOSAxMzAuOCA0ODMuNSA4NS43IDQzOC40IDE1LjEgMzMxLjkgMTUuMSAyNjhjMC02My45IDI1LjQtMTI1LjIgNzAuNi0xNzAuNFMxOTIuMiAyNy4xIDI1Ni4xIDI3LjEgMzgxLjMgNTIuNCA0MjYuNSA5Ny42IDQ5NyAyMDQuMSA0OTcgMjY4bC0uMSAuMXpNMzkuNSAyNjhjLS42IDI4LjggNC41IDU3LjUgMTUuMSA4NC4zczI2LjQgNTEuMiA0Ni42IDcxLjggNDQuMiAzNyA3MC44IDQ4LjEgNTUuMSAxNi45IDgzLjkgMTYuOSA1Ny40LTUuOCA4My45LTE2LjkgNTAuNi0yNy41IDcwLjgtNDguMSAzNi00NSA0Ni42LTcxLjggMTUuNy01NS41IDE1LjEtODQuM2MuNi0yOC44LTQuNS01Ny41LTE1LjEtODQuM3MtMjYuNC01MS4yLTQ2LjYtNzEuOC00NC4yLTM3LTcwLjgtNDguMS01NS4xLTE2LjktODMuOS0xNi45LTU3LjQgNS44LTgzLjkgMTYuOS01MC42IDI3LjUtNzAuOCA0OC4xLTM2IDQ1LTQ2LjYgNzEuOC0xNS43IDU1LjUtMTUuMSA4NC4zem0zODUuOSA2My4zYy0xMi43IDAtMjEuNi0xLjktMjYuNy01LjktNS41LTQuMy04LjItMTIuMy04LjItMjMuOGwwLTk2LjVjMC02LjUtNS4yLTIwLjItMTUuNy00MS4yIDcgMCAxNy05LjEgMzAtMjcuMmwwIDE0Ny44YzAgMTEgMi40IDE5LjQgNyAyNS4zIDMuNyA0LjcgMTAuMSA4LjkgMTkgMTIuNiAxLjIgLjQgMi42IC45IDQuMSAxLjQgMi45IC45IDYuMyAyLjEgMTAuMyAzLjUtMS44IDIuNy04LjMgNC0xOS45IDRsLjEgMHptLTIxOSAwYy0xLjMgMi40LTMuNiA1LjUtNi44IDkuNGwtMTguNSAyMi41Yy0xLTYuMS00LTEzLTkuMy0yMC42cy05LjctMTEuNC0xMy40LTExLjRsLTg5LjggMGMzLjMtNS4zIDQuOS04LjggNC45LTEwLjhzLS44LTUuMy0yLjQtOS43Yy0xLjUtNC40LTIuNC04LjUtMi40LTEyLjQgMC03LjQgMi4xLTEzLjkgNi4zLTE5LjNsMjAtMjUuNi03LjEtMTcuNyAxNi4xLTE5LjggNi43IDE2LjggOC0xMC4zYy0xLjggNi40LTIuNiAxMi4zLTIuNiAxNy43IDAgNC4yIDIuOCAxMy4zIDguMyAyNy4zbDE2LjIgNDAuNyAxNy43IDBjMi44IC40IDcuNyA1IDE0LjYgMTMuOSAxLjggMi40IDQuMyA1LjggNy43IDEwLjIgMS40IDEuOSAyLjkgMy45IDQuNiA2LjEgMS4zLTIuMyAyLTQuNiAyLTcuMSAwLTItMS4zLTYuNi00LTEzLjRMMTc4IDMwNC4xYy00LTEwLjYtNi4xLTE3LjctNi4xLTIxLjMgMC02LjMgMS45LTEyLjMgNS44LTE3LjkgLjUtLjYgMS0xLjMgMS41LTEuOSA0LjQtNS42IDguOC0xMS4xIDEzLjMtMTYuNS0xLjEgNC42LTEuNyA4LjctMS43IDEyIDAgMy43IDEuNyA5LjkgNS4xIDE4LjhsNy45IDIwLjRjMS45IDQuNyAzIDguMiAzLjcgMTAuM2wyNS45IDAtLjktMi42Yy0xLjQtMy45LTQtNy03LjctOS4zbDE1LjYtMjAuMSAxMi4zIDMyIDEzLjQgMC02LjEtMTUuOGMtMS41LTMuOS00LTctNy43LTkuM2wxNS43LTIwLjEgMTcuMyA0NS4yIDEzLjQgMC0xMS40LTI5LjRjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNi0yMCAyMi40IDU4LjcgMjYuMiAwYzEuNSAwIDMtMS4xIDQuNS0zLjFzMi4yLTQuMSAyLjItNi4zbDAtOTMuNWMwLTYuNS00LjUtMjAuMy0xMy43LTQxLjIgNS40IDAgMTQuMS05LjEgMjYuMi0yNy4ybDAgMTYzLjVjMCA3LjIgLjYgMTIgMS43IDE0LjYgMS42IDMuNCA1LjMgNi4yIDExLjEgOC4yLTMuOSA1LjYtOC43IDguNS0xNC41IDguNWwtMTU0LjggMC0uMS0uMnptLTk4LTQ0Yy0yLjctNi43LTQtMTEuNy00LTE1LS42IDEuMi0yLjQgMy43LTUuNCA3LjYtMS40IDEuOS0yLjIgMy43LTIuMiA1LjMgMCAyLjYgLjggNS43IDIuMiA5LjNsNS42IDEzLjljNSAwIDkgMCAxMS45LS4xbC04LjItMjAuOSAuMS0uMXptMTMuNS03Mi40Yy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bS0yNy42IDBjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHptODcgMjcuNWMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAweiJdfSx5THQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydC1hd2Vzb21lLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjNhMyIsIk0yMDggMjM3LjRsLTIyLjIgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgNTEuN2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMjIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTUxLjdjMC0yLjEtMS42LTMuNy0zLjctMy43em0xMTguMiAwbC0yMi4yIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43bDIyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC01MS43Yy0uMS0yLjEtMS43LTMuNy0zLjctMy43em0xMzItMTI1LjFjLTIuMy0zLjItNC42LTYuNC03LjEtOS41LTkuOC0xMi41LTIwLjgtMjQtMzIuOC0zNC40LTQuNS0zLjktOS4xLTcuNi0xMy45LTExLjItMS42LTEuMi0zLjItMi4zLTQuOC0zLjUtMjcuNi0xOS42LTU5LjMtMzMuNy05My42LTQwLjctMTYuMi0zLjMtMzIuOS01LTUwLTVzLTMzLjkgMS43LTUwIDVjLTM0LjMgNy4xLTY2IDIxLjItOTMuMyA0MC44LTEuNiAxLjEtMy4yIDIuMy00LjggMy41LTQuOCAzLjYtOS40IDcuMy0xMy45IDExLjItMyAyLjYtNS45IDUuMy04LjggOHMtNS43IDUuNS04LjQgOC40Yy01LjUgNS43LTEwLjcgMTEuOC0xNS42IDE4LTIuNCAzLjEtNC44IDYuMy03LjEgOS41LTI4LjkgNDAuNi00NS44IDkwLjEtNDUuOCAxNDMuNiAwIDIgLjEgNCAuMSA2IC4xIC43IC4xIDEuMyAuMSAyIC4xIDEuMyAuMSAyLjcgLjIgNCAwIC44IC4xIDEuNSAuMSAyLjMgMCAxLjMgLjEgMi41IC4yIDMuNyAuMSAuOCAuMSAxLjYgLjIgMi40IC4xIDEuMSAuMiAyLjMgLjMgMy41IDAgLjggLjEgMS42IC4yIDIuNCAuMSAxLjIgLjMgMi40IC40IDMuNiAuMSAuOCAuMiAxLjUgLjMgMi4zIC4xIDEuMyAuMyAyLjYgLjUgMy45IC4xIC42IC4yIDEuMyAuMyAxLjlsLjkgNS43Yy4xIC42IC4yIDEuMSAuMyAxLjcgLjMgMS4zIC41IDIuNyAuOCA0IC4yIC44IC4zIDEuNiAuNSAyLjQgLjIgMSAuNSAyLjEgLjcgMy4yIC4yIC45IC40IDEuNyAuNiAyLjYgLjIgMSAuNCAyIC43IDMgLjIgLjkgLjUgMS44IC43IDIuNyAuMyAxIC41IDEuOSAuOCAyLjkgLjMgLjkgLjUgMS44IC44IDIuNyAuMiAuOSAuNSAxLjkgLjggMi44cy41IDEuOCAuOCAyLjdjLjMgMSAuNiAxLjkgLjkgMi44IC42IDEuNiAxLjEgMy4zIDEuNyA0LjkgLjQgMSAuNyAxLjkgMSAyLjggLjMgMSAuNyAyIDEuMSAzIC4zIC44IC42IDEuNSAuOSAyLjNsMS4yIDNjLjMgLjcgLjYgMS41IC45IDIuMiAuNCAxIC45IDIgMS4zIDNsLjkgMi4xYy41IDEgLjkgMiAxLjQgMyAuMyAuNyAuNiAxLjMgLjkgMiAuNSAxIDEgMi4xIDEuNSAzLjEgLjIgLjYgLjUgMS4xIC44IDEuNyAuNiAxLjEgMS4xIDIuMiAxLjcgMy4zIC4xIC4yIC4yIC4zIC4zIC41IDIuMiA0LjEgNC40IDguMiA2LjggMTIuMiAuMiAuNCAuNSAuOCAuNyAxLjIgLjcgMS4xIDEuMyAyLjIgMiAzLjMgLjMgLjUgLjYgLjkgLjkgMS40IC42IDEuMSAxLjMgMi4xIDIgMy4yIC4zIC41IC42IC45IC45IDEuNCAuNyAxLjEgMS40IDIuMSAyLjEgMy4yIC4yIC40IC41IC44IC44IDEuMiAuNyAxLjEgMS41IDIuMiAyLjMgMy4zIC4yIC4yIC4zIC41IC41IC43IDM3LjUgNTEuNyA5NC40IDg4LjUgMTYwIDk5LjQgLjkgLjEgMS43IC4zIDIuNiAuNCAxIC4yIDIuMSAuNCAzLjEgLjVzMS45IC4zIDIuOCAuNGMxIC4yIDIgLjMgMyAuNCAuOSAuMSAxLjkgLjIgMi45IC4zczEuOSAuMiAyLjkgLjMgMi4xIC4yIDMuMSAuM2MuOSAuMSAxLjggLjEgMi43IC4yIDEuMSAuMSAyLjMgLjEgMy40IC4yIC44IDAgMS43IC4xIDIuNSAuMSAxLjMgMCAyLjYgLjEgMy45IC4xIC43IC4xIDEuNCAuMSAyLjEgLjEgMiAuMSA0IC4xIDYgLjFzNC0uMSA2LS4xYy43IDAgMS40LS4xIDIuMS0uMSAxLjMgMCAyLjYgMCAzLjktLjEgLjggMCAxLjctLjEgMi41LS4xIDEuMS0uMSAyLjMtLjEgMy40LS4yIC45IDAgMS44LS4xIDIuNy0uMiAxLS4xIDIuMS0uMiAzLjEtLjNzMS45LS4yIDIuOS0uM2MuOS0uMSAxLjktLjIgMi45LS4zczItLjMgMy0uNCAxLjktLjMgMi44LS40YzEtLjIgMi4xLS4zIDMuMS0uNSAuOS0uMSAxLjctLjMgMi42LS40IDY1LjYtMTEgMTIyLjUtNDcuNyAxNjAuMS0xMDIuNCAuMi0uMiAuMy0uNSAuNS0uNyAuOC0xLjEgMS41LTIuMiAyLjMtMy4zIC4yLS40IC41LS44IC44LTEuMiAuNy0xLjEgMS40LTIuMSAyLjEtMy4yIC4zLS41IC42LS45IC45LTEuNCAuNi0xLjEgMS4zLTIuMSAyLTMuMiAuMy0uNSAuNi0uOSAuOS0xLjQgLjctMS4xIDEuMy0yLjIgMi0zLjMgLjItLjQgLjUtLjggLjctMS4yIDIuNC00IDQuNi04LjEgNi44LTEyLjIgLjEtLjIgLjItLjMgLjMtLjUgLjYtMS4xIDEuMS0yLjIgMS43LTMuMyAuMi0uNiAuNS0xLjEgLjgtMS43IC41LTEgMS0yLjEgMS41LTMuMSAuMy0uNyAuNi0xLjMgLjktMiAuNS0xIDEtMiAxLjQtM2wuOS0yLjFjLjUtMSAuOS0yIDEuMy0zIC4zLS43IC42LTEuNSAuOS0yLjJsMS4yLTNjLjMtLjggLjYtMS41IC45LTIuMyAuNC0xIC43LTIgMS4xLTNzLjctMS45IDEtMi44Yy42LTEuNiAxLjItMy4zIDEuNy00LjkgLjMtMSAuNi0xLjkgLjktMi44cy41LTEuOCAuOC0yLjdjLjItLjkgLjUtMS45IC44LTIuOHMuNi0xLjggLjgtMi43Yy4zLTEgLjUtMS45IC44LTIuOSAuMi0uOSAuNS0xLjggLjctMi43IC4yLTEgLjUtMiAuNy0zIC4yLS45IC40LTEuNyAuNi0yLjYgLjItMSAuNS0yLjEgLjctMy4yIC4yLS44IC4zLTEuNiAuNS0yLjQgLjMtMS4zIC42LTIuNyAuOC00IC4xLS42IC4yLTEuMSAuMy0xLjdsLjktNS43Yy4xLS42IC4yLTEuMyAuMy0xLjkgLjEtMS4zIC4zLTIuNiAuNS0zLjkgLjEtLjggLjItMS41IC4zLTIuMyAuMS0xLjIgLjMtMi40IC40LTMuNiAwLS44IC4xLTEuNiAuMi0yLjQgLjEtMS4xIC4yLTIuMyAuMy0zLjUgLjEtLjggLjEtMS42IC4yLTIuNCAuMSAxLjcgLjEgLjUgLjItLjcgMC0uOCAuMS0xLjUgLjEtMi4zIC4xLTEuMyAuMi0yLjcgLjItNCAuMS0uNyAuMS0xLjMgLjEtMiAuMS0yIC4xLTQgLjEtNiAwLTUzLjUtMTYuOS0xMDMtNDUuOC0xNDMuN3pNNDQ4IDM3MS41Yy05LjQgMTUuNS0yMC42IDI5LjktMzMuNiA0Mi45LTIwLjYgMjAuNi00NC41IDM2LjctNzEuMiA0OC0xMy45IDUuOC0yOC4yIDEwLjMtNDIuOSAxMy4ybDAtNzUuOGMwLTU4LjYtODguNi01OC42LTg4LjYgMGwwIDc1LjhjLTE0LjctMi45LTI5LTcuMy00Mi45LTEzLjItMjYuNy0xMS4zLTUwLjYtMjcuNC03MS4yLTQ4LTEzLTEzLTI0LjItMjcuNC0zMy42LTQyLjlsMC03MS4zYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOCAyOS42IDAgMC0xNDRjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC00LjggNi41LTMuNyA5LjUtMy43bDAtOTAuMmMtNC40LTItNy40LTYuNy03LjQtMTEuNSAwLTE2LjggMjUuNC0xNi44IDI1LjQgMCAwIDQuOC0zIDkuNC03LjQgMTEuNWwwIDMuOWM2LjMtMS40IDEyLjctMi4zIDE5LjItMi4zIDkuNCAwIDE4LjQgMy41IDI2LjMgMy41IDcuMiAwIDE1LjItMy41IDE5LjQtMy41IDIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDQ4LjRjMCA1LjYtMTguNyA2LjUtMjIuNCA2LjUtOC42IDAtMTYuNi0zLjUtMjUuNC0zLjUtNyAwLTE0LjEgMS4yLTIwLjggMi44bDAgMzAuN2MzIDAgOS41LTEuMSA5LjUgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMTQ0IDI5LjUgMCAwLTI1LjhjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCA3MS4zeiJdfSx3THQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnVyb21vYmVsZXhwZXJ0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3ZiIsIk0wIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMTYwIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMzIwIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek00NDAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMCAxOTJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTQ0MCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0wIDM1MmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDQ3MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDQ3MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHoiXX0sa0x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpbGliaWxpIixpY29uOls1MTIsNTEyLFtdLCJlM2Q5IiwiTTQ4OC42IDEwNC4xYzE2LjcgMTguMSAyNC40IDM5LjcgMjMuMyA2NS43bDAgMjAyLjRjLS40IDI2LjQtOS4yIDQ4LjEtMjYuNSA2NS4xLTE3LjIgMTctMzkuMSAyNS45LTY1LjUgMjYuN0w5MiA0NjRjLTI2LjQtLjgtNDguMi05LjgtNjUuMy0yNy4yLTE3LjEtMTcuNC0yNi00MC4zLTI2LjctNjguNkwwIDE2OS44Yy44LTI2IDkuNy00Ny42IDI2LjctNjUuNyAxNy4xLTE2LjMgMzguOC0yNS4zIDY1LjMtMjYuMWwyOS40IDAtMjUuNC0yNS44Yy01LjctNS43LTguNi0xMy04LjYtMjEuOHMyLjktMTYuMSA4LjYtMjEuOCAxMy04LjYgMjEuOS04LjYgMTYuMSAyLjkgMjEuOSA4LjZsNzMuMyA2OS40IDg4IDAgNzQuNS02OS40QzM4MS43IDIuOSAzODkuMiAwIDM5OCAwczE2LjEgMi45IDIxLjkgOC42YzUuNyA1LjcgOC42IDEzIDguNiAyMS44cy0yLjkgMTYuMS04LjYgMjEuOEwzOTQuNiA3OCA0MjMuOSA3OGMyNi40IC44IDQ4IDkuOCA2NC43IDI2LjF6bS0zOC44IDY5LjdjLS40LTkuNi0zLjctMTcuNC0xMC43LTIzLjUtNS4yLTYuMS0xNC05LjQtMjIuNy05LjhsLTMyMC40IDBjLTkuNiAuNC0xNy40IDMuNy0yMy42IDkuOC02LjEgNi4xLTkuNCAxMy45LTkuOCAyMy41bDAgMTk0LjRjMCA5LjIgMy4zIDE3IDkuOCAyMy41czE0LjQgOS44IDIzLjYgOS44bDMyMC40IDBjOS4yIDAgMTctMy4zIDIzLjMtOS44czkuNy0xNC4zIDEwLjEtMjMuNWwwLTE5NC40ek0xODUuNSAyMTYuNWM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMi02LjIgNi4zLTE0IDkuNS0yMy42IDkuNXMtMTcuNS0zLjItMjMuNi05LjUtOS40LTE0LTkuOC0yMy4ybDAtMzMuM2MuNC05LjEgMy44LTE2LjkgMTAuMS0yMy4yczEzLjItOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEwem0xOTEuNSAwYzYuMyA2LjMgOS43IDE0LjEgMTAuMSAyMy4ybDAgMzMuM2MtLjQgOS4yLTMuNyAxNi45LTkuOCAyMy4ycy0xNCA5LjUtMjMuNiA5LjUtMTcuNC0zLjItMjMuNi05LjVjLTctNi4zLTkuNC0xNC05LjctMjMuMmwwLTMzLjNjLjMtOS4xIDMuNy0xNi45IDEwLTIzLjJzMTQuMS05LjYgMjMuMy0xMGM5LjIgLjQgMTcgMy43IDIzLjMgMTB6Il19LFNMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZW9zIixpY29uOls0NDgsNTEyLFtdLCJmNjEyIiwiTTM4My44IDUxMmwtOTUuMSAwLTEwOC4yLTE1NC41IDAgOTEuMS04Ni40IDYzLjQtOTcuNyAwIDAtNDgyLjIgNDAuNS0yOS44IDEwOCAwIDEyMy43IDE3Ni4xIDAtMTEyLjcgODYuNC02My40IDk3LjcgMCAwIDQ2MS41LTY4LjkgNTAuNXpNNy4yIDM1LjNsMCA0NjAuNyA3Mi01Mi45IDAtMjQ5LjEgMjE1LjUgMzA3LjYgODQuOCAwIDUyLjQtMzguMi03OC4zIDAtMzE2LjEtNDUwLjUtMzAuMiAyMi4zek04OS43IDUwMS45bDgwLTU4LjggMC0xMDEtNzkuOC0xMTQuNCAwIDIyMC45LTcyLjYgNTMuMyA3Mi4zIDAgMCAwek00OSAxMC44bDMxMC42IDQ0Mi42IDgyLjQgMCAwLTQ0Mi42LTc5LjggMCAwIDMxNy42LTIyMi45LTMxNy42LTkwLjMgMHpNMjc5LjQgMTkxLjZsNzIgMTAyLjggMC0yNzguNS03MiA1MyAwIDEyMi43eiJdfSxfTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGV2IixpY29uOls0NDgsNTEyLFtdLCJmNmNjIiwiTTEyMC4xIDIwOC4zYy0zLjktMi45LTcuOC00LjMtMTEuNi00LjNsLTE3LjQgMCAwIDEwNC41IDE3LjQgMGMzLjkgMCA3LjgtMS40IDExLjYtNC4zczUuOC03LjMgNS44LTEzLjFsMC02OS43YzAtNS44LTItMTAuMi01LjgtMTMuMXpNNDA0LjEgMzJMNDMuOSAzMkMxOS43IDMyIC4xIDUxLjYgMCA3NS44TDAgNDM2LjJDLjEgNDYwLjQgMTkuNyA0ODAgNDMuOSA0ODBsMzYwLjIgMGMyNC4yIDAgNDMuOC0xOS42IDQzLjktNDMuOGwwLTM2MC40QzQ0Ny45IDUxLjYgNDI4LjMgMzIgNDA0LjEgMzJ6TTE1NC4yIDI5MS4yYzAgMTguOC0xMS42IDQ3LjMtNDguNCA0Ny4zbC00Ni40IDAgMC0xNjUuNSA0Ny40IDBjMzUuNCAwIDQ3LjQgMjguNSA0Ny40IDQ3LjNsMCA3MC45em0xMDAuNy04OC43bC01My4zIDAgMCAzOC40IDMyLjYgMCAwIDI5LjYtMzIuNiAwIDAgMzguNCA1My4zIDAgMCAyOS42LTYyLjIgMGMtMTEuMiAuMy0yMC40LTguNS0yMC43LTE5LjdsMC0xMjUuMWMtLjMtMTEuMSA4LjYtMjAuNCAxOS43LTIwLjdsNjMuMiAwIDAgMjkuNXpNMzU4LjUgMzE3LjhjLTEzLjIgMzAuNy0zNi44IDI0LjYtNDcuNCAwbC0zOC41LTE0NC44IDMyLjYgMCAyOS43IDExMy43IDI5LjYtMTEzLjcgMzIuNiAwLTM4LjUgMTQ0Ljh6Il19LE1MdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3RqYXIiLGljb246WzUxMiw1MTIsW10sImYzYjEiLCJNMzYxLjggMGMwIDEzMS42LTgwLjcgMTc2LjgtMTQwLjIgMjA5LjQtLjYgLjMtMS4xIC42LTEuNiAuOS01My44IDMwLjItODguNyA0OS44LTg5LjYgMTIybC05OC4xIDBjMC0xMzEuNSA4MC43LTE3Ni43IDE0MC4yLTIwOS4zIDU0LjgtMjkuOCA5MC4zLTUwIDkwLjMtMTIzbDk5IDB6TTMwMS4zIDMwMi42YzU0LjgtMjkuOCA5MC4zLTUwIDkwLjMtMTIzbDk4IDBjMCAxMzEuNi04MC43IDE3Ni43LTE0MC4yIDIwOS40LTU0LjggMjkuOC05MC4zIDUwLTkwLjMgMTIzbC05OCAwYzAtMTMxLjYgODAuNy0xNzYuOCAxNDAuMi0yMDkuNHoiXX0sekx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRvY2h1YiIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5NCIsIk00MTMuOSAxNjBMMjcyIDE2MCAyNzIgMTkuNiA0MTMuOSAxNjB6TTMyMCAxOTJsMCAxMzBjMCA2Ni44LTM2LjUgMTAwLjEtMTEzLjMgMTAwLjFsLTk0LjcgMCAwLTMzNy4zIDk0LjcgMGMxMiAwIDIzLjEgLjggMzMuMSAyLjVsMC04NEMyMjguOSAxLjEgMjE3LjQgMCAyMDUuMiAwTDE2IDAgMTYgNTEyIDIwNS4yIDUxMkMzNDUuNyA1MTIgNDE2IDQ0Ny40IDQxNiAzMTguMWwwLTEyNi4xLTk2IDB6Il19LENMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW1lbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwYSIsIk00MDMuMiAzMkw0NC44IDMyQzIwLjEgMzIgMCA1Mi4xIDAgNzYuOEwwIDQzNS4yQzAgNDU5LjkgMjAuMSA0ODAgNDQuOCA0ODBsMzU4LjQgMGMyNC43IDAgNDQuOC0yMC4xIDQ0LjgtNDQuOGwwLTM1OC40QzQ0OCA1Mi4xIDQyNy45IDMyIDQwMy4yIDMyek0zNzcgMTgwLjhjLTEuNCAzMS41LTIzLjQgNzQuNy02NiAxMjkuNC00NCA1Ny4yLTgxLjMgODUuOC0xMTEuNyA4NS44LTE4LjkgMC0zNC44LTE3LjQtNDcuOS01Mi4zLTI1LjUtOTMuMy0zNi40LTE0OC01Ny40LTE0OC0yLjQgMC0xMC45IDUuMS0yNS40IDE1LjJMNTMuNCAxOTEuM2MzNy4zLTMyLjggNzIuOS02OS4yIDk1LjItNzEuMiAyNS4yLTIuNCA0MC43IDE0LjggNDYuNSA1MS43IDIwLjcgMTMxLjIgMjkuOSAxNTEgNjcuNiA5MS42IDEzLjUtMjEuNCAyMC44LTM3LjcgMjEuOC00OC45IDMuNS0zMy4yLTI1LjktMzAuOS00NS44LTIyLjQgMTUuOS01Mi4xIDQ2LjMtNzcuNCA5MS4yLTc2IDMzLjMgLjkgNDkgMjIuNSA0Ny4xIDY0Ljd6Il19LFRMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXhjZG4iLGljb246WzUxMiw1MTIsW10sImYxMzYiLCJNNDYxLjEgNDQyLjdsLTk3LjQgMCA1MS45LTI0Mi43YzIuMy0xMC4yIC45LTE5LjUtNC40LTI1LjctNS02LjEtMTMuNy05LjYtMjQuMi05LjZsLTQ5LjMgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtODMuNCAwLTU5LjUgMjc4LTk3LjQgMCA1OS41LTI3OC00NC42LTk1LjQgMzcyLjEgMGMzOS40IDAgNzUuMyAxNi4zIDk4LjMgNDQuOSAyMy4zIDI4LjYgMzEuOCA2Ny40IDIzLjYgMTA1LjlMNDYxLjEgNDQyLjd6Il19LFU4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZm9udC1hd2Vzb21lLXN0cm9rZSIsaWNvbjpbNDQ4LDUxMixbImZvbnQtYXdlc29tZS1hbHQiXSwiZjM1YyIsIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNTQgNThjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy44IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSwkTHQ9VThlLERMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2FwIixpY29uOls0NDgsNTEyLFtdLCJmM2YzIiwiTTY0LjQgMzkxLjhDLTE1IDMwMy42LTcuNiAxNjcuNCA4MS4xIDg3LjZzMjI0LjgtNzMgMzA0LjIgMTUuMiA3MiAyMjQuNC0xNi42IDMwNC4xYy0xOC43IDE2LjkgNjQgNDMuMSA0MiA1Mi4zLTgyLjEgMzQuMi0yNTMuOSAzNS0zNDYuMi02Ny41bDAgMHpNMjc3LjcgMTgwLjJsMzguNS00MC45Yy05LjYtOC45LTMyLTI2LjgtNzYuMi0yNy42LTUyLjMtLjktOTUuOSAyOC4zLTk2LjggODAtLjIgMTEuMyAuMyAzNi43IDI5LjQgNTQuOCAzNC41IDIxLjQgODYuNSAyMS41IDg2IDUyLjMtLjQgMjEuMy0yNi40IDI1LjgtMzguNiAyNS42LTMgMC0zMC4yLS41LTQ3LjYtMjQuNmwtNDAgNDIuNmMyOC4yIDI3IDU5IDMyLjYgODMuNSAzMyAxMC4yIC4yIDk2LjQgLjMgOTcuOC04MSAuMy0xNS44LTIuMS0zOS43LTI4LjktNTYuNi0zNC40LTIxLjYtODUtMTkuNC04NC40LTQ5LjcgLjQtMjMuMyAzMS0yNS40IDM3LjUtMjUuMyAuNCAwIDI2LjYgLjMgMzkuNiAxNy40bDAgMHoiXX0sTEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhbnRhc3ktZmxpZ2h0LWdhbWVzIixpY29uOls1MTIsNTEyLFtdLCJmNmRjIiwiTTI1NiAzMi45TDMyLjkgMjU2IDI1NiA0NzkuMSA0NzkuMSAyNTYgMjU2IDMyLjl6TTg4LjMgMjU1LjhjMi0yIDExLjktMTIuMyA5Ni41LTk3LjUgNDEuNC00MS44IDg2LjItNDMuOCAxMTkuOC0xOC43IDI0LjYgMTguNCA2Mi4xIDU4LjkgNjIuMSA1OSAuNyAuNyAxLjEgMi45IC42IDMuNC0xMS4zIDExLjgtMjIuNyAyMy41LTMzLjUgMzQuNy0zNC4yLTMyLjMtNDAuNS0zOC4yLTQ4LjUtNDQtMTcuOC0xMi43LTQxLjQtMTAuMS01NyA1LjEtMi4yIDIuMS0xLjggMy40IC4xIDUuNCAyLjkgMi45IDI4LjEgMjguMyAzNS4xIDM1LjgtMTEuOSAxMS42LTIzLjcgMjMtMzUuNyAzNC43LTEyLTEyLjUtMjQuNS0yNS41LTM2LjUtMzguMS0yMS40IDIxLjEtNDEuNyA0MS4xLTYxLjggNjFMODguMyAyNTUuOHpNMzIzLjIgMzU3LjRjLTM1LjUgMzUuNC03OC4xIDM4LjEtMTA3IDIwLjUtMjIuMS0xMy41LTM5LjQtMzIuMS03Mi45LTY2LjggMTItMTIuNCAyMy44LTI0LjQgMzUuNC0zNi4zIDMzIDMxLjkgMzcuMSAzNiA0NC43IDQyLjEgMTguNSAxNC43IDQyLjUgMTMuNyA1OS4zLTEuOCAzLjctMy40IDMuNy0zLjYgLjEtNy4yLTEwLjYtMTAuNy0yMS4yLTIxLjQtMzEuOC0zMi4yLTEuMy0xLjMtMy0yLjUtLjgtNC43IDEwLjgtMTAuNyAyMS41LTIxLjUgMzIuMi0zMi4zIC4zLS4zIC42LS40IDEuOS0xLjEgMTIuNCAxMi45IDI0LjkgMjUuOSAzNy4yIDM4LjggMjEtMjAuNyA0MS4yLTQwLjcgNjEuMy02MC40IDEzLjcgMTMuNCAyNy4xIDI2LjYgNDAuOSA0MC0yMC4yIDIwLjktODEuNyA4Mi43LTEwMC41IDEwMS41ek0yNTYgMEwwIDI1NiAyNTYgNTEyIDUxMiAyNTYgMjU2IDB6TTE2IDI1NkwyNTYgMTYgNDk2IDI1NiAyNTYgNDk2IDE2IDI1NnoiXX0sRUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbnV4IixpY29uOls0NDgsNTEyLFtdLCJmMTdjIiwiTTIyMC45IDEyMy4zYzEgLjUgMS44IDEuNyAzIDEuNyAxLjEgMCAyLjgtLjQgMi45LTEuNSAuMi0xLjQtMS45LTIuMy0zLjItMi45LTEuNy0uNy0zLjktMS01LjUtLjEtLjQgLjItLjggLjctLjYgMS4xIC4zIDEuMyAyLjMgMS4xIDMuNCAxLjd6TTE5OSAxMjVjMS4yIDAgMi0xLjIgMy0xLjcgMS4xLS42IDMuMS0uNCAzLjUtMS42IC4yLS40LS4yLS45LS42LTEuMS0xLjYtLjktMy44LS42LTUuNSAuMS0xLjMgLjYtMy40IDEuNS0zLjIgMi45IC4xIDEgMS44IDEuNSAyLjggMS40ek00MjAgNDAzLjhjLTMuNi00LTUuMy0xMS42LTcuMi0xOS43LTEuOC04LjEtMy45LTE2LjgtMTAuNS0yMi40LTEuMy0xLjEtMi42LTIuMS00LTIuOS0xLjMtLjgtMi43LTEuNS00LjEtMiA5LjItMjcuMyA1LjYtNTQuNS0zLjctNzkuMS0xMS40LTMwLjEtMzEuMy01Ni40LTQ2LjUtNzQuNC0xNy4xLTIxLjUtMzMuNy00MS45LTMzLjQtNzIgLjUtNDUuOSA1LjEtMTMxLjItNzUuOC0xMzEuMy0xMDIuNC0uMi03Ni44IDEwMy40LTc3LjkgMTM1LjItMS43IDIzLjQtNi40IDQxLjgtMjIuNSA2NC43LTE4LjkgMjIuNS00NS41IDU4LjgtNTguMSA5Ni43LTYgMTcuOS04LjggMzYuMS02LjIgNTMuMy02LjUgNS44LTExLjQgMTQuNy0xNi42IDIwLjItNC4yIDQuMy0xMC4zIDUuOS0xNyA4LjNzLTE0IDYtMTguNSAxNC41Yy0yLjEgMy45LTIuOCA4LjEtMi44IDEyLjQgMCAzLjkgLjYgNy45IDEuMiAxMS44IDEuMiA4LjEgMi41IDE1LjcgLjggMjAuOC01LjIgMTQuNC01LjkgMjQuNC0yLjIgMzEuNyAzLjggNy4zIDExLjQgMTAuNSAyMC4xIDEyLjMgMTcuMyAzLjYgNDAuOCAyLjcgNTkuMyAxMi41IDE5LjggMTAuNCAzOS45IDE0LjEgNTUuOSAxMC40IDExLjYtMi42IDIxLjEtOS42IDI1LjktMjAuMiAxMi41LS4xIDI2LjMtNS40IDQ4LjMtNi42IDE0LjktMS4yIDMzLjYgNS4zIDU1LjEgNC4xIC42IDIuMyAxLjQgNC42IDIuNSA2LjdsMCAuMWM4LjMgMTYuNyAyMy44IDI0LjMgNDAuMyAyMyAxNi42LTEuMyAzNC4xLTExIDQ4LjMtMjcuOSAxMy42LTE2LjQgMzYtMjMuMiA1MC45LTMyLjIgNy40LTQuNSAxMy40LTEwLjEgMTMuOS0xOC4zIC40LTguMi00LjQtMTcuMy0xNS41LTI5Ljd6TTIyMy44IDg3LjNjOS44LTIyLjIgMzQuMi0yMS44IDQ0LS40IDYuNSAxNC4yIDMuNiAzMC45LTQuMyA0MC40LTEuNi0uOC01LjktMi42LTEyLjYtNC45IDEuMS0xLjIgMy4xLTIuNyAzLjktNC42IDQuOC0xMS44LS4yLTI3LTkuMS0yNy4zLTcuMy0uNS0xMy45IDEwLjgtMTEuOCAyMy00LjEtMi05LjQtMy41LTEzLTQuNC0xLTYuOS0uMy0xNC42IDIuOS0yMS44ek0xODMuMSA3NS44YzEwLjEgMCAyMC44IDE0LjIgMTkuMSAzMy41LTMuNSAxLTcuMSAyLjUtMTAuMiA0LjYgMS4yLTguOS0zLjMtMjAuMS05LjYtMTkuNi04LjQgLjctOS44IDIxLjItMS44IDI4LjEgMSAuOCAxLjktLjItNS45IDUuNS0xNS42LTE0LjYtMTAuNS01Mi4xIDguNC01Mi4xem0tMTMuNiA2MC43YzYuMi00LjYgMTMuNi0xMCAxNC4xLTEwLjUgNC43LTQuNCAxMy41LTE0LjIgMjcuOS0xNC4yIDcuMSAwIDE1LjYgMi4zIDI1LjkgOC45IDYuMyA0LjEgMTEuMyA0LjQgMjIuNiA5LjMgOC40IDMuNSAxMy43IDkuNyAxMC41IDE4LjItMi42IDcuMS0xMSAxNC40LTIyLjcgMTguMS0xMS4xIDMuNi0xOS44IDE2LTM4LjIgMTQuOS0zLjktLjItNy0xLTkuNi0yLjEtOC0zLjUtMTIuMi0xMC40LTIwLTE1LTguNi00LjgtMTMuMi0xMC40LTE0LjctMTUuMy0xLjQtNC45IDAtOSA0LjItMTIuM3ptMy4zIDMzNGMtMi43IDM1LjEtNDMuOSAzNC40LTc1LjMgMTgtMjkuOS0xNS44LTY4LjYtNi41LTc2LjUtMjEuOS0yLjQtNC43LTIuNC0xMi43IDIuNi0yNi40bDAtLjJjMi40LTcuNiAuNi0xNi0uNi0yMy45LTEuMi03LjgtMS44LTE1IC45LTIwIDMuNS02LjcgOC41LTkuMSAxNC44LTExLjMgMTAuMy0zLjcgMTEuOC0zLjQgMTkuNi05LjkgNS41LTUuNyA5LjUtMTIuOSAxNC4zLTE4IDUuMS01LjUgMTAtOC4xIDE3LjctNi45IDguMSAxLjIgMTUuMSA2LjggMjEuOSAxNmwxOS42IDM1LjZjOS41IDE5LjkgNDMuMSA0OC40IDQxIDY4Ljl6bS0xLjQtMjUuOWMtNC4xLTYuNi05LjYtMTMuNi0xNC40LTE5LjYgNy4xIDAgMTQuMi0yLjIgMTYuNy04LjkgMi4zLTYuMiAwLTE0LjktNy40LTI0LjktMTMuNS0xOC4yLTM4LjMtMzIuNS0zOC4zLTMyLjUtMTMuNS04LjQtMjEuMS0xOC43LTI0LjYtMjkuOXMtMy0yMy4zLS4zLTM1LjJjNS4yLTIyLjkgMTguNi00NS4yIDI3LjItNTkuMiAyLjMtMS43IC44IDMuMi04LjcgMjAuOC04LjUgMTYuMS0yNC40IDUzLjMtMi42IDgyLjQgLjYtMjAuNyA1LjUtNDEuOCAxMy44LTYxLjUgMTItMjcuNCAzNy4zLTc0LjkgMzkuMy0xMTIuNyAxLjEgLjggNC42IDMuMiA2LjIgNC4xIDQuNiAyLjcgOC4xIDYuNyAxMi42IDEwLjMgMTIuNCAxMCAyOC41IDkuMiA0Mi40IDEuMiA2LjItMy41IDExLjItNy41IDE1LjktOSA5LjktMy4xIDE3LjgtOC42IDIyLjMtMTUgNy43IDMwLjQgMjUuNyA3NC4zIDM3LjIgOTUuNyA2LjEgMTEuNCAxOC4zIDM1LjUgMjMuNiA2NC42IDMuMy0uMSA3IC40IDEwLjkgMS40IDEzLjgtMzUuNy0xMS43LTc0LjItMjMuMy04NC45LTQuNy00LjYtNC45LTYuNi0yLjYtNi41IDEyLjYgMTEuMiAyOS4yIDMzLjcgMzUuMiA1OSAyLjggMTEuNiAzLjMgMjMuNyAuNCAzNS43IDE2LjQgNi44IDM1LjkgMTcuOSAzMC43IDM0LjgtMi4yLS4xLTMuMiAwLTQuMiAwIDMuMi0xMC4xLTMuOS0xNy42LTIyLjgtMjYuMS0xOS42LTguNi0zNi04LjYtMzguMyAxMi41LTEyLjEgNC4yLTE4LjMgMTQuNy0yMS40IDI3LjMtMi44IDExLjItMy42IDI0LjctNC40IDM5LjktLjUgNy43LTMuNiAxOC02LjggMjktMzIuMSAyMi45LTc2LjcgMzIuOS0xMTQuMyA3LjJ6bTI1Ny40LTExLjVjLS45IDE2LjgtNDEuMiAxOS45LTYzLjIgNDYuNS0xMy4yIDE1LjctMjkuNCAyNC40LTQzLjYgMjUuNXMtMjYuNS00LjgtMzMuNy0xOS4zYy00LjctMTEuMS0yLjQtMjMuMSAxLjEtMzYuMyAzLjctMTQuMiA5LjItMjguOCA5LjktNDAuNiAuOC0xNS4yIDEuNy0yOC41IDQuMi0zOC43IDIuNi0xMC4zIDYuNi0xNy4yIDEzLjctMjEuMSAuMy0uMiAuNy0uMyAxLS41IC44IDEzLjIgNy4zIDI2LjYgMTguOCAyOS41IDEyLjYgMy4zIDMwLjctNy41IDM4LjQtMTYuMyA5LS4zIDE1LjctLjkgMjIuNiA1LjEgOS45IDguNSA3LjEgMzAuMyAxNy4xIDQxLjYgMTAuNiAxMS42IDE0IDE5LjUgMTMuNyAyNC42ek0xNzMuNCAxNDguN2MyIDEuOSA0LjcgNC41IDggNy4xIDYuNiA1LjIgMTUuOCAxMC42IDI3LjMgMTAuNiAxMS42IDAgMjIuNS01LjkgMzEuOC0xMC44IDQuOS0yLjYgMTAuOS03IDE0LjgtMTAuNHM1LjktNi4zIDMuMS02LjYtMi42IDIuNi02IDUuMWMtNC40IDMuMi05LjcgNy40LTEzLjkgOS44LTcuNCA0LjItMTkuNSAxMC4yLTI5LjkgMTAuMnMtMTguNy00LjgtMjQuOS05LjdjLTMuMS0yLjUtNS43LTUtNy43LTYuOS0xLjUtMS40LTEuOS00LjYtNC4zLTQuOS0xLjQtLjEtMS44IDMuNyAxLjcgNi41eiJdfSxQTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY290dG9uLWJ1cmVhdSIsaWNvbjpbNTEyLDUxMixbXSwiZjg5ZSIsIk00NzQuMyAzMzAuNEM0NTAuNiA0MjIuMyAzODAuMSA0NzUgMjcyLjQgNDc4LjhsMC00OS4yYzAtNDggMjYuNC03NC40IDc0LjQtNzQuNCA2MiAwIDk5LjItMzcuMiA5OS4yLTk5LjIgMC02MS40LTM2LjUtOTguMy05Ny40LTk5LjEtMzMtNjkuMy0xNDYuNS02NC43LTE3Ny4yIDAtNjAuOSAuOC05Ny40IDM3LjctOTcuNCA5OS4xIDAgNjIuMSAzNy4zIDk5LjQgOTkuNCA5OS40IDQ4IDAgNzQuNiAyNi4yIDc0LjYgNzQuNGwwIDQ5LjJjLTEzNC40LTUtMjExLjEtODUuMS0yMTEuMS0yMjMgMC0xNDEuOCA4MS40LTIyMy4yIDIyMy4yLTIyMy4yIDExNC44IDAgMTg5LjggNTMuMiAyMTQuNyAxNDguOGwyNS4zIDBDNDczLjkgNzEuNSAzODguMiA4IDI1OS44IDggMTA1IDggMTIgMTAxLjIgMTIgMjU1LjggMTIgNDExLjEgMTA1LjIgNTA0LjMgMjU5LjggNTA0IDM4OC4xIDUwNCA0NzMuNyA0NDAuMiA0OTkuNSAzMzAuNGwtMjUuMiAwek0zNTcgMTgyLjNjNDEuNCAzLjQgNjQuMiAyOSA2NC4yIDczLjcgMCA0OC0yNi40IDc0LjQtNzQuNCA3NC40LTI4LjYgMC00OS4zLTkuNi02MS42LTI3LjMgODMuMS0xNi41IDc1LjYtOTkuNyA3MS44LTEyMC43em0tODEuNyA5Ny40Yy0yLjUtMTAuMy0xNi4zLTg3IDU2LjItOTcgMi4zIDEwLjEgMTYuNSA4Ny4xLTU2LjMgOTdsMCAwek0yNjAgMTMyYzI4LjYgMCA0OSA5LjcgNjEuNCAyNy42LTI4LjQgNS41LTQ5LjQgMjAuNi02MS42IDQzLjQtMTIuMi0yMi45LTMzLjItMzgtNjEuNi00My40IDEyLjQtMTcuNyAzMy4zLTI3LjQgNjEuNi0yNy40bC4yLS4zem0tNzEuNSA1MC43YzczLjIgMTAuNiA1OC45IDg2LjggNTYuNSA5Ny03Mi40LTkuOC01OS04Ny01Ni4yLTk3bC0uMiAwek0xNzMuMiAzMzAuNGMtNDggMC03NC40LTI2LjQtNzQuNC03NC40IDAtNDQuNCAyMi45LTcwIDY0LjItNzMuNy02LjggMzcuMi0xLjQgMTA2LjUgNzEuNiAxMjAuNy0xMi4xIDE3LjYtMzIuOCAyNy4zLTYxLjEgMjcuM2wtLjMgMHptNTMuMiAxMi40YzE0LjMtNy42IDI2LTE5LjMgMzMuNi0zMy41IDcuOCAxNC41IDE5LjMgMjUuNSAzMy44IDMzLjUtMTQuNCA3LjYtMjYuMSAxOS40LTMzLjYgMzMuOC04LTE0LjUtMTkuMS0yNi4yLTMzLjYtMzMuOGwtLjMgMHoiXX0sSUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS13YWxsZXQiLGljb246WzQ0OCw1MTIsW10sImYxZWUiLCJNMTU2LjggMTI2LjhjMzcuNiA2MC42IDY0LjIgMTEzLjEgODQuMyAxNjIuNS04LjMgMzMuOC0xOC44IDY2LjUtMzEuMyA5OC4zLTEzLjItNTIuMy0yNi41LTEwMS4zLTU2LTE0OC41IDYuNS0zNi40IDIuMy03My42IDMtMTEyLjN6TTEwOS4zIDIwMGwtOTMuMiAwYy02LjUgMC0xMC41IDcuNS02LjUgMTIuNyA0Mi4yIDU0LjMgNzEuNyAxMTcuOCA5MS43IDE4Ny4zbDEwMy41IDBjLTE2LjItNjkuNy0zOC43LTEzMy43LTgyLjUtMTkzLjUtMy00LTgtNi41LTEzLTYuNXptNDcuOC04OGM2OC41IDEwOCAxMzAgMjM0LjUgMTM4LjIgMzY4TDQwOSA0ODBjLTEyLTEzOC02OC40LTI2NS0xNDMuMi0zNjhsLTEwOC43IDB6TTQwOC45IDQzLjVjLTEuOC02LjgtOC4yLTExLjUtMTUuMi0xMS41bC04OC4zIDBjLTUuMyAwLTkgNS03LjggMTAuMyAxMy4yIDQ2LjUgMjIuMyA5NS41IDI2LjUgMTQ2IDQ4LjIgODYuMiA3OS43IDE3OC4zIDkwLjYgMjcwLjggMTUuOC02MC41IDI1LjMtMTMzLjUgMjUuMy0yMDMgMC03My42LTEyLjEtMTQ1LjEtMzEuMS0yMTIuNnoiXX0sQUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvdXJzcXVhcmUiLGljb246WzM4NCw1MTIsW10sImYxODAiLCJNMzMxLjEgM0w1Ny45IDNDMjAuNCAzIDggMzEuMyA4IDQ5LjFMOCA0ODIuOWMwIDIwLjMgMTIuMSAyNy43IDE4LjIgMzAuMSA2LjIgMi41IDIyLjggNC42IDMyLjktNy4xIDEyOC45LTE0OS40IDEzMS4xLTE1MS45IDEzMS4xLTE1MS45IDMuMS0zLjQgMy40LTMuMSA2LjgtMy4xbDgzLjQgMGMzNS4xIDAgNDAuNi0yNS4yIDQ0LjMtMzkuN2w0OC42LTI0M0MzODEuOCAyNS44IDM3MS4xIDMgMzMxLjEgM3pNMzE0LjggNzYuOGwtMTEuNCA1OS43Yy0xLjIgNi41LTkuNSAxMy4yLTE2LjkgMTMuMmwtMTA2LjQgMGMtMTIgMC0yMC42IDguMy0yMC42IDIwLjNsMCAxM2MwIDEyIDguNiAyMC42IDIwLjYgMjAuNmw5MC40IDBjOC4zIDAgMTYuNiA5LjIgMTQuOCAxOC4yLTEuOCA4LjktMTAuNSA1My44LTExLjQgNTguOC0uOSA0LjktNi44IDEzLjUtMTYuOSAxMy41bC03My41IDBjLTEzLjUgMC0xNy4yIDEuOC0yNi41IDEyLjYgMCAwLTguOSAxMS40LTg5LjUgMTA4LjMtLjkgLjktMS44IC42LTEuOC0uM2wwLTMzOC44YzAtNy43IDYuOC0xNi42IDE2LjYtMTYuNmwyMTkgMGM4LjIgMCAxNS42IDcuNyAxMy41IDE3LjV6Il19LE5MdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaGlydHNpbmJ1bGsiLGljb246WzQ0OCw1MTIsW10sImYyMTQiLCJNMTAwIDQxMC4zbDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0zOS40IDE3LjVsMzAuNiAxMy40IDQuNC05LjktMzAuNi0xMy40LTQuNCA5Ljl6bTE3Mi4xLTE0bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40ek0xNzkuMSA0NDVsMzAuMyAxMy43IDQuNC05LjktMzAuMy0xMy40LTQuNCA5LjZ6TTYwLjQgMzkyLjhsMzAuNiAxMy40IDQuNC05LjYtMzAuNi0xMy43LTQuNCA5Ljl6bTIxMS40IDM4LjVsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjR6bS0zOS4zIDE3LjVsNC40IDkuOSAzMC42LTEzLjctNC40LTkuNi0zMC42IDEzLjR6bTExOC40LTUyLjJsNC40IDkuNiAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjd6TTE3MCA0Ni42bC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bS00Ny4yIDBsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS00Ny4zIDBsLTMzLjIgMCAwIDEwLjUgMzMuMyAwLS4xLTEwLjV6bTE0MS41IDBsLTMzLjIgMCAwIDEwLjUgMzMuMiAwIDAtMTAuNXptOTQuNSAwbC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tOTQuNiAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTE0MS41IDBsLTMzLjMgMCAwIDEwLjUgMzMuMyAwIDAtMTAuNXpNNTIuOCAzNTEuMWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em03MC0yMTUuOWwtMzMuNiAwIDAgMTAuNSAzMy41IDAgLjEtMTAuNXptLTcwIDEwLjZsMjIuOCAwIDAtMTAuNS0zMy42IDAgMCAzMy41IDEwLjggMCAwLTIzek0yMjEuNyAzNzQuNGE5MS4zIDkxLjMgMCAxIDAgMC0xODIuNiA5MS4zIDkxLjMgMCAxIDAgMCAxODIuNnpNMTczLjUgMjYzLjNjMC0yNS40IDI5LjUtMzEuOCA0OS42LTMxLjggMTYuOSAwIDI5LjIgNS44IDQ0LjMgMTJsLTguOCAxNi45LS45IDBjLTYuNC05LjktMjQuOC0xMy4xLTM1LjYtMTMuMS05IDAtMjkuOCAxLjgtMjkuOCAxNC45IDAgMjEuNiA3OC41LTEwLjIgNzguNSAzNy45IDAgMjUuNC0zMS41IDMxLjItNTEgMzEuMi0xOC4xIDAtMzIuNC0yLjktNDcuMi0xMi4ybDktMTguNCAuOSAwYzYuMSAxMi4yIDIzLjYgMTQuOSAzNS45IDE0LjkgOC43IDAgMzIuNy0xLjIgMzIuNy0xNC4zIDAtMjYuMS03Ny42IDYuMy03Ny42LTM4ek01Mi44IDE3OC40bC0xMC44IDAgMCAzMy42IDEwLjggMCAwLTMzLjZ6TTM5NS4yIDM4NC42bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNNTIuOCAzMDcuOWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41ek0wIDMuN2wwIDQwNiAyMjEuNyA5OC42IDIyNi4zLTk4LjYgMC00MDYtNDQ4IDB6TTQxOC44IDM5MC44bC0xOTYuOCA4NS43LTE5Mi44LTg1LjcgMC0yNzAuMSAzODkuNyAwIDAgMjcwLjEtLjEgMHptMC0yOTkuM2wtMzg5LjYgMCAwLTU4LjYgMzg5LjcgMCAwIDU4LjYtLjEgMHpNNTIuOCAyMjEuNmwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em0wIDQzLjJsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMTcwIDEzNS4ybC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6TTM5NS4yIDI5OC4zbDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptMC00My4ybDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNMjE3IDEzNS4ybC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6TTM5NS4yIDIxMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAgMTI5LjVsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0tMTMxLTIwNi4zbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em04My43IDMzLjZsMTAuOCAwIDAtMzMuNS0zMy41IDAgMCAxMC41IDIyLjggMC0uMSAyM3ptLTM2LjQtMzMuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41eiJdfSxSTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWludGJpdCIsaWNvbjpbNTEyLDUxMixbXSwiZTYyZiIsIk03My4yIDUxMmwwLTczLjEgMjkyLjUgMCAwLTczLjIgNzMuMiAwIDAtMTQ2LjMgNzMuMSAwIDAtMjE5LjQtMjE5LjQgMCAwIDczLjEtMTQ2LjMgMCAwIDczLjItNzMuMSAwIDAgMjkyLjYtNzMuMiAwIDAgNzMuMSA3My4yIDB6bTczLjEtMjE5LjRsNzMuMiAwIDAgNzMuMS03My4yIDAgMC03My4xem03My4yLTczLjFsNzMuMSAwIDAgNzMuMS03My4yIDAgMC03My4yIC4xIC4xem03My4xIDBsMC03My4yIDczLjIgMCAwIDczLjEtNzMuMiAwIDAgLjF6TTM2NS43IDczLjFsNzMuMiAwIDAgNzMuMi03My4yIDAgMC03My4yeiJdfSxPTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToienVsaXAiLGljb246WzQ0OCw1MTIsW10sImU4NTMiLCJNNDI0IDk5YzAgMjIuNi0xMC4xIDQyLjYtMjUuNSA1NC44TDI0OS4zIDI4Ny43Yy0yLjggMi40LTYuNC0xLjUtNC40LTQuN2w1NC43LTExMC4xYzEuNS0zLjEtLjUtNi45LTMuNi02LjlMODMuOCAxNjZDNTAuOSAxNjYgMjQgMTM1LjkgMjQgOTkgMjQgNjIuMSA1MC45IDMyIDgzLjggMzJsMjgwLjQgMEMzOTcuMSAzMiA0MjQgNjIuMSA0MjQgOTl6TTgzLjggNDgwbDI4MC40IDBjMzIuOSAwIDU5LjgtMzAuMiA1OS44LTY3cy0yNi45LTY3LTU5LjgtNjdsLTIxMi4zIDBjLTMuMSAwLTUuMS0zLjgtMy42LTYuOUwyMDMuMSAyMjljMi0zLjItMS42LTcuMS00LjQtNC43TDQ5LjUgMzU4LjJDMzQuMSAzNzAuNCAyNCAzOTAuNCAyNCA0MTMgMjQgNDQ5LjggNTAuOSA0ODAgODMuOCA0ODB6Il19LEZMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGF5bGlua2VkIixpY29uOls0NDgsNTEyLFtdLCJmM2Y1IiwiTTM4Ni43IDI5Mi41bDIuNyAyLjctMTcwLTE2Ny4zYy0zLjUtMy41LTkuNy0zLjctMTMuOC0uNUwxNDguMyAxNzFjLTQuMiAzLjItNC42IDguNy0xLjEgMTIuMmw2OC4xIDY0LjNjMy42IDMuNSA5LjkgMy43IDE0IC41bC4xLS4xYzQuMS0zLjIgMTAuNC0zIDE0IC41bDg0IDgxLjNjMy42IDMuNSAzLjIgOS0uOSAxMi4ybC05My4yIDc0Yy00LjIgMy4zLTEwLjUgMy4xLTE0LjItLjRMNjcuMiAyNjhjLTMuNS0zLjUtOS43LTMuNy0xMy45LS41TDcuNSAzMDIuNGMtNC4yIDMuMi00LjcgOC43LTEuMiAxMi4yTDIxNSA1MTAuN3M3LjQgNi44IDE3LjMtLjhMNDMwLjMgMzQ2YzQtMy4yIDQuNC04LjcgLjctMTIuMmwtNDQuMy00MS4zem01NC41LTgzLjRMMjMwLjcgMi41Yy0xLjUtMS4yLTgtNS41LTE2LjMgMS4xTDcuNiAxNjUuN2MtNC4yIDMuMi00LjggOC43LTEuMiAxMi4ybDQyLjMgNDEuNyAxNzEuNyAxNjUuMWMzLjcgMy41IDEwLjEgMy43IDE0LjMgLjRsNTAuMi0zOC44LS4zLS4zIDcuNy02YzQuMi0zLjIgNC42LTguNyAuOS0xMi4ybC01Ny4xLTU0LjRjLTMuNi0zLjUtMTAtMy43LTE0LjItLjVsLS4xIC4xYy00LjIgMy4yLTEwLjUgMy4xLTE0LjItLjRMMTEzIDE4MC44Yy0zLjYtMy41LTMuMS04LjkgMS4xLTEyLjJsOTIuMi03MS41YzQuMS0zLjIgMTAuMy0zIDEzLjkgLjVsMTYwLjQgMTU5YzMuNyAzLjUgMTAgMy43IDE0LjEgLjVsNDUuOC0zNS44YzQuMS0zLjIgNC40LTguNyAuNy0xMi4yeiJdfSxCTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViZmxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZTY1YyIsIk02NDAgNjRsLTIwNC4yIDM5OS4yLTE5MS44IDAgODUuNS0xNjUuNS0zLjggMEMyNTUuMSAzODkuMyAxNDkuOSA0NDkuNSAwIDQ2My4yTDAgMzAwLjFzOTUuOS01LjcgMTUyLjMtNjQuOWwtMTUyLjMgMCAwLTE3MS4yIDE3MS4xIDAgMCAxNDAuOCAzLjggMCA3MC0xNDAuOCAxMjkuNCAwIDAgMTM5LjkgMy44IDAgNzIuNi0xMzkuOSAxODkuMyAweiJdfSxITHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVucmVuIixpY29uOls1MTIsNTEyLFtdLCJmMThiIiwiTTIxNCAxNjkuMUMyMTQgMjc5LjUgMTUzIDM3NC41IDY2LjQgNDE2LjUgMzAgMzczLjIgOCAzMTcuNyA4IDI1Ni42IDggMTMzLjkgOTcuMSAzMi4yIDIxNCAxMi41bDAgMTU2LjZ6TTI1NSA1MDRjLTQyLjkgMC04My4zLTExLTExOC41LTMwLjQgNTcuMi0zNi4xIDEwMy40LTkwLjcgMTE4LjUtMTU0LjYgMTUuNSA2My45IDYxLjcgMTE4LjUgMTE4LjggMTU0LjctMzUuMSAxOS4zLTc1LjUgMzAuMy0xMTguOCAzMC4zem0xOTAuNi04Ny41QzM1OSAzNzQuNSAyOTggMjc5LjYgMjk4IDE2OS4xbDAtMTU2LjZjMTE2LjkgMTkuNyAyMDYgMTIxLjQgMjA2IDI0NC4xIDAgNjEuMS0yMiAxMTYuNi01OC40IDE1OS45eiJdfSxxTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia28tZmkiLGljb246WzUxMiw1MTIsW10sImU4NTYiLCJNMjQ5LjggNzVjODkuOCAwIDExMyAxLjEgMTQ2LjMgNC40IDc4LjEgNy44IDEyMy42IDU2IDEyMy42IDEyNS4ybDAgOC45YzAgNjQuMy00Ny4xIDExNi45LTExMC44IDEyMi40LTUgMTYuNi0xMi44IDMzLjItMjMuMyA0OS45LTI0LjQgMzcuNy03My4xIDg1LjMtMTYyLjkgODUuM2wtMTcuNyAwYy03My4xIDAtMTI5LjctMzEuNi0xNjMuNS04OS4yLTI5LjktNTAuNC0zMy44LTEwNi40LTMzLjgtMTgxLjIgMC03My43IDQ0LjQtMTEzLjYgOTYuNC0xMjAuMiAzOS4zLTUgODguMS01LjUgMTQ1LjctNS41em0wIDQxLjZjLTYwLjQgMC0xMDMuNiAuNS0xMzYuMyA1LjUtNDYgNi43LTY0LjMgMzIuNy02NC4zIDc5LjJsLjIgMjUuN2MxLjIgNTcuMyA3LjEgOTcuMSAyNy41IDEzNC41IDI2LjYgNDkuMyA3NC44IDY4LjIgMTI5LjcgNjguMmwxNy4yIDBjNzIgMCAxMDctMzQuOSAxMjYuMy02NS40IDkuNC0xNS41IDE3LjctMzIuNyAyMi4yLTU0LjNsMy4zLTEzLjggMTkuOSAwYzQ0LjMgMCA4Mi42LTM2IDgyLjYtODJsMC04LjNjMC01MS41LTMyLjItNzguNy04OC4xLTg1LjMtMzEuNi0yLjgtNTAuNC0zLjktMTQwLjItMy45ek0yNjcgMTY5LjJjMzguMiAwIDY0LjggMzEuNiA2NC44IDY3IDAgMzIuNy0xOC4zIDYxLTQyLjEgODMuMS0xNSAxNS0zOS4zIDMwLjUtNTUuOSA0MC41LTQuNCAyLjgtMTAgNC40LTE2LjcgNC40LTUuNSAwLTEwLjUtMS43LTE1LjUtNC40LTE2LjYtMTAtNDEtMjUuNS01Ni41LTQwLjUtMjEuOC0yMC44LTM5LjItNDYuOS00MS4zLTc3bC0uMi02LjFjMC0zNS41IDI1LjUtNjcgNjQuMy02NyAyMi43IDAgMzguOCAxMS42IDQ5LjMgMjcuNyAxMS42LTE2LjEgMjcuMi0yNy43IDQ5LjktMjcuN3ptMTIyLjUtMy45YzI4LjMgMCA0My44IDE2LjYgNDMuOCA0My4ycy0xNS41IDQyLjctNDMuOCA0Mi43Yy04LjkgMC0xMy44LTUtMTMuOC0xMS43bDAtNjIuNmMwLTYuNyA1LTExLjYgMTMuOC0xMS42eiJdfSxqTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmV2IixpY29uOls0NDgsNTEyLFtdLCJmNWIyIiwiTTE1OC43IDI3NC45YTY1LjYgNjUuNiAwIDEgMSAxMzEuMiAwIDY1LjYgNjUuNiAwIDEgMSAtMTMxLjIgMHptMjcwLjctNS4xbC0uMSAwYy0uNy0yOS4zLTcuNy01OC4yLTIwLjUtODQuNnMtMzEuMi00OS43LTUzLjgtNjguNEwzMDkuNiAxNDNjMjIgMTQuMiA0MC4xIDMzLjggNTIuNyA1Ni44czE5LjEgNDguOCAxOS4xIDc1LjFjMCA4Ni42LTcwLjUgMTU3LjEtMTU3LjEgMTU3LjFTNjcuMiAzNjEuNSA2Ny4yIDI3NC45YzAtODEuOSA2My0xNDkuMyAxNDMtMTU2LjRsMCAzOS4xIDEwOC44LTYyLjgtMTA4LjgtNjIuOCAwIDM4LjNjLTEwNi43IDcuMi0xOTEgOTYtMTkxIDIwNC42IDAgMTExLjYgODkuMSAyMDIuMyAyMDAuMSAyMDVsMCAuMSAyMTAuMiAwIDAtMjEwLjJ6Il19LFZMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrZXljZG4iLGljb246WzUxMiw1MTIsW10sImYzYmEiLCJNNjMuOCA0MDkuM2w2MC41LTU5YzMyLjEgNDIuOCA3MS4xIDY2IDEyNi42IDY3LjQgMzAuNSAuNyA2MC4zLTcgODYuNC0yMi40IDUuMSA1LjMgMTguNSAxOS41IDIwLjkgMjItMzIuMiAyMC43LTY5LjYgMzEuMS0xMDguMSAzMC4yLTQzLjMtMS4xLTg0LjYtMTYuNy0xMTcuNy00NC40IC4zLS42LTM4LjIgMzcuNS0zOC42IDM3LjkgOS41IDI5LjgtMTMuMSA2Mi40LTQ2LjMgNjIuNC0yNi44LS4xLTQ3LjUtMjEuNy00Ny41LTQ4LjUgMC0zNC4zIDMzLjEtNTYuNiA2My44LTQ1LjZ6TTQxOC43IDE1Ni45YzE5LjEgMzEuMyAyOS42IDY3LjQgMjguNyAxMDQtMS4xIDQ0LjgtMTkgODcuNS00OC42IDEyMSAuMyAuMyAyMy44IDI1LjIgMjQuMSAyNS41IDkuNi0xLjMgMTkuMiAyIDI1LjkgOS4xIDExLjMgMTIgMTAuOSAzMC45LTEuMSA0Mi40LTEyIDExLjMtMzAuOSAxMC45LTQyLjQtMS4xLTYuNy03LTkuNC0xNi44LTcuNi0yNi4zLTI0LjktMjYuNi00NC40LTQ3LjItNDQuNC00Ny4yIDQyLjctMzQuMSA2My4zLTc5LjYgNjQuNC0xMjQuMiAuNy0yOC45LTcuMi01Ny4yLTIxLjEtODIuMmwyMi4xLTIxek0xMDQgNTMuMWM2LjcgNyA5LjQgMTYuOCA3LjYgMjYuM2w0NS45IDQ4LjFjLTQuNyAzLjgtMTMuMyAxMC40LTIyLjggMjEuMy0yNS40IDI4LjUtMzkuNiA2NC44LTQwLjcgMTAyLjktLjcgMjguOSA2LjEgNTcuMiAyMCA4Mi40TDkyIDM1NS42Yy0xOS4zLTMxLjYtMjguOS02Ny43LTI3LjgtMTA0LjcgMS00NC42IDE4LjMtODcuNiA0Ny41LTEyMS4xTDg2LjQgMTAzLjRjLTkuNiAxLjMtMTkuMi0yLTI1LjktOS4xLTExLjMtMTItMTAuOS0zMC45IDEuMS00Mi40IDExLjktMTEuMiAzMC42LTEwLjkgNDIuNCAxLjJ6TTQ2NC45IDhjMjYgMCA0Ny4xIDIyLjQgNDcuMSA0OC4zUzQ5MC45IDEwNCA0NjQuOSAxMDRjLTYuMyAuMS0xNC0xLjEtMTUuOS0xLjhsLTYyLjkgNTkuN2MtMzIuNy00My42LTc2LjctNjUuOS0xMjYuOS02Ny4yLTMwLjUtLjctNjAuMyA2LjgtODYuMiAyMi40bC0yMS4xLTIyQzE4NC4xIDc0LjMgMjIxLjUgNjQgMjYwIDY0LjkgMzAzLjMgNjYgMzQ0LjYgODEuNiAzNzcuNyAxMDkuNWw0MS4xLTM4LjZjLTEuNS00LjctMi4yLTkuNi0yLjItMTQuNS0uMS0yNi43IDIyLjMtNDguNCA0OC4zLTQ4LjR6TTI1Ni43IDExMy40YzUuNSAwIDEwLjkgLjQgMTYuNCAxLjEgNzguMSA5LjggMTMzLjQgODEuMSAxMjMuOCAxNTkuMS05LjggNzguMS04MS4xIDEzMy40LTE1OS4xIDEyMy44LTc4LjEtOS44LTEzMy40LTgxLjEtMTIzLjgtMTU5LjIgOS4zLTcyLjQgNzAuMS0xMjQuNiAxNDIuNy0xMjQuOHptLTU5IDExOS40Yy42IDIyLjcgMTIuMiA0MS44IDMyLjQgNTIuMmwtMTEgNTEuNyA3My43IDAtMTEtNTEuN2MyMC4xLTEwLjkgMzIuMS0yOSAzMi40LTUyLjItLjQtMzIuOC0yNS44LTU3LjUtNTguMy01OC4zLTMyLjEgLjgtNTcuMyAyNC44LTU4LjIgNTguM3oiXX0sVUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpcmUtYS1oZWxwZXIiLGljb246WzUxMiw1MTIsW10sImYzYjAiLCJNNDQzLjEgMEw3MS45IDBDNjcuOSAzNy4zIDM3LjQgNjcuOCAwIDcxLjdMMCA0NDMuMmMzNy40IDQuOSA2NiAzMi40IDcxLjkgNjguOGwzNzIuMiAwYzMtMzYuNCAzMi41LTY1LjggNjcuOS02OS44bDAtMzcwLjVDNDc1LjYgNjUuOCA0NDcgMzYuNCA0NDMuMSAwem0tMzcgNDA0LjljLTM2LjMgMC0xOC44LTItNTUuMS0yLTM1LjggMC0yMSAyLTU2LjEgMi01LjkgMC00LjktOC4yIDAtOS44IDIyLjgtNy42IDIyLjktMTAuMiAyNC42LTEyLjggMTAuNC0xNS42IDUuOS04MyA1LjktMTEzIDAtNS4zLTYuNC0xMi44LTEzLjgtMTIuOGwtMTExLjIgMGMtNy40IDAtMTMuOCA3LjUtMTMuOCAxMi44IDAgMzAtNC41IDk3LjQgNS45IDExMyAxLjcgMi41IDEuOCA1LjIgMjQuNiAxMi44IDQuOSAxLjYgNiA5LjggMCA5LjgtMzUuMSAwLTIwLjMtMi01Ni4xLTItMzYuMyAwLTE4LjggMi01NS4xIDItNy45IDAtNS44LTEwLjggMC0xMC44IDEwLjItMy40IDEzLjUtMy41IDIxLjctMTMuOCA3LjctMTIuOSA3LjktNDQuNCA3LjktMTI3LjhsMC0xMDEuMmMwLTIyLjItMTIuMi0yOC4zLTI4LjYtMzIuNC04LjgtMi4yLTQtMTEuOCAxLTExLjggMzYuNSAwIDIwLjYgMiA1Ny4xIDIgMzIuNyAwIDE2LjUtMiA0OS4yLTIgMy4zIDAgOC41IDguMyAxIDEwLjgtNC45IDEuNi0yNy42IDMuNy0yNy42IDM5LjMgMCA0NS42LS4yIDU1LjggMSA2OC44IDAgMS4zIDIuMyAxMi44IDEyLjggMTIuOGwxMDkuMiAwYzEwLjUgMCAxMi44LTExLjUgMTIuOC0xMi44IDEuMi0xMyAxLTIzLjIgMS02OC44IDAtMzUuNi0yMi43LTM3LjctMjcuNi0zOS4zLTcuNS0yLjUtMi4zLTEwLjggMS0xMC44IDMyLjcgMCAxNi41IDIgNDkuMiAyIDM2LjUgMCAyMC42LTIgNTcuMS0yIDQuOSAwIDkuOSA5LjYgMSAxMS44LTE2LjQgNC4xLTI4LjYgMTAuMy0yOC42IDMyLjRsMCAxMDEuMmMwIDgzLjQgLjEgMTE0LjkgNy45IDEyNy44IDguMiAxMC4yIDExLjQgMTAuNCAyMS43IDEzLjggNS44IDAgNy44IDEwLjggMCAxMC44eiJdfSxXOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFsiaGFja2VyLW5ld3Mtc3F1YXJlIl0sImYzYWYiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTIxIDIyOS4ycy4xLS4xIC4xLS4yIC4xLS4yIC4yLS4yYzAgLjEgMCAuMy0uMSAuNGwtLjIgMHpNMjM5LjIgMzg0bC0zMS40IDAgMC0xMDIuNy03OS44LTE1My4zIDM3LjMgMGM0MS41IDc3LjcgNDguMSA5NS44IDU0LjEgMTEyIDEuNiA0LjMgMy4xIDguNSA1LjIgMTMuNiAzLjItNyA1LjEtMTEuOSA3LjEtMTcuMyA1LjktMTUuMyAxMi44LTMzLjIgNTMuNS0xMDguM2wzNC44IDAtODAuOCAxNTUuMSAwIDEwMC45eiJdfSxXTHQ9VzhlLEdMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXBkLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZCIsIk0yNTUuNiA4QzExMi43IDggOCAxMjMuMSA4IDI1NiA4IDM5NC41IDEyMS42IDUwNCAyNTUuNiA1MDQgMzg1LjUgNTA0IDUwNCA0MDMuMSA1MDQgMjU2IDUwNCAxMTguMSAzOTcuNCA4IDI1NS42IDh6bS44IDQ1MC44Yy0xMTIuNSAwLTIwMy43LTkzLTIwMy43LTIwMi44IDAtMTA1LjQgODUuNS0yMDMuMyAyMDMuNy0yMDMuMyAxMTIuNiAwIDIwMi45IDg5LjUgMjAyLjggMjAzLjMgMCAxMjEuNy05OS42IDIwMi44LTIwMi44IDIwMi44ek0zMjQuNyAxODZsLTUzLjIgMCAwIDEzNy4yIDUzLjIgMGMyMS40IDAgNzAtNS4xIDcwLTY4LjYgMC02My40LTQ4LjYtNjguNi03MC02OC42em0uOCAxMDguNWwtMTkuOSAwIDAtNzkuNyAxOS40LS4xYzMuOCAwIDM1LTIuMSAzNSAzOS45IDAgMjQuNi0xMC41IDM5LjktMzQuNSAzOS45ek0yMTEuNyAxODZsLTY4LjIgMCAwIDEzNy4zIDM0LjYgMCAwLTQ0LjMgMjcgMGM1NC4xIDAgNTcuMS0zNy41IDU3LjEtNDYuNSAwLTMxLTE2LjgtNDYuNS01MC41LTQ2LjV6bS00LjkgNjcuM2wtMjkuMiAwIDAtNDEuNiAyOC4zIDBjMzAuOSAwIDI4LjggNDEuNiAuOSA0MS42eiJdfSxLTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3JjaWQiLGljb246WzUxMiw1MTIsW10sImY4ZDIiLCJNMjk0LjcgMTg4LjJsLTQ1LjkgMCAwIDE1My44IDQ3LjUgMGM2Ny42IDAgODMuMS01MS4zIDgzLjEtNzYuOSAwLTQxLjYtMjYuNS03Ni45LTg0LjctNzYuOXpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xNzUuMiAzNjguOGwtMjkuOCAwIDAtMjA3LjUgMjkuOCAwIDAgMjA3LjV6TTE2MC4zIDk4LjVhMTkuNiAxOS42IDAgMSAxIDAgMzkuMiAxOS42IDE5LjYgMCAxIDEgMC0zOS4yek0zMDAgMzY5bC04MSAwIDAtMjA3LjcgODAuNiAwYzc2LjcgMCAxMTAuNCA1NC44IDExMC40IDEwMy45IDAgNTMuMy00MS43IDEwMy45LTExMCAxMDMuOXoiXX0sRzhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvYXJkLWdhbWUtZ2VlayIsaWNvbjpbNjQwLDUxMixbImJnZyJdLCJlODU1IiwiTTE2OC44IDE2OC4zbDMwLjEtOC4yLTEyLjMgOTguOCAxNi43IDE2LjEtMzguOSA5MS4yLTExMS44IDQxLjItNTIuNi0xMzEuOCAxNy43LTE3LTEwLjUtODQuMyAxOTEuMi03MC4zLTI5LjUgNjQuM3ptMTgwLjYgMTYuNWMxMS42IDAgMTkgNy40IDE5IDE3LjlsMCAzMS41YzAgOS43LTYuMyAxOC45LTE5LjUgMjIuMSAxMy4xIDMuMSAyMC41IDEyIDIwLjUgMjEuNGwwIDMwLjljMCAxMS4xLTcuNCAxOC4xLTE5IDE4LjFsLTg5LjEgMCAwLTE0MS44IDg4IDB6TTI5OCAyOTkuOGwzMyAwYzEuNSAwIDIuMS0xIDIuMS0yLjFsMC0yNi45YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDMxLjN6bTAtNTcuM2wzMyAwYzEuNSAwIDIuMS0xLjEgMi4xLTIuM2wwLTI0LjhjMC0xLS42LTIuMy0yLjEtMi4zbC0zMyAwIDAgMjkuNHptMjA0LjEtMjcuMmwtNjUuNiAwYy0xIDAtMi4xIDEuMS0yLjEgMi4zbDAgNzYuMWMwIDEuMyAxIDIuMSAyLjEgMi4xbDI5LjcgMGMxLjUgMCAyLjMtLjggMi4zLTIuMWwwLTI0LTE5LjMgMCAxMi44LTMwIDQwLjEgMCAwIDcwLjhjMCA5LjItNy4yIDE2LjItMTYuMyAxNi4ybC03MS41IDBjLTkuMSAwLTE2LjUtNy0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41em0xMzIuNiAwbC02NS42IDBjLTEuMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS42IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4yIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTYuOS0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41eiJdfSxZTHQ9RzhlLFpMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiZWhhbmNlIixpY29uOls1NzYsNTEyLFtdLCJmMWI0IiwiTTIzMiAyMzcuMmMzMS44LTE1LjIgNDguNC0zOC4yIDQ4LjQtNzQgMC03MC42LTUyLjYtODcuOC0xMTMuMy04Ny44bC0xNjcuMSAwIDAgMzU0LjQgMTcxLjggMGM2NC40IDAgMTI0LjktMzAuOSAxMjQuOS0xMDIuOSAwLTQ0LjUtMjEuMS03Ny40LTY0LjctODkuN3pNNzcuOSAxMzUuOWw3My4xIDBjMjguMSAwIDUzLjQgNy45IDUzLjQgNDAuNSAwIDMwLjEtMTkuNyA0Mi4yLTQ3LjUgNDIuMmwtNzkgMCAwLTgyLjd6bTgzLjMgMjMzLjdsLTgzLjMgMCAwLTk3LjYgODQuOSAwYzM0LjMgMCA1NiAxNC4zIDU2IDUwLjYgMCAzNS44LTI1LjkgNDctNTcuNiA0N3pNNTE5LjcgMTI4LjlsLTE0My43IDAgMC0zNC45IDE0My43IDAgMCAzNC45ek01NzYgMzA1LjJjMC03NS45LTQ0LjQtMTM5LjItMTI0LjktMTM5LjItNzguMiAwLTEzMS4zIDU4LjgtMTMxLjMgMTM1LjggMCA3OS45IDUwLjMgMTM0LjcgMTMxLjMgMTM0LjcgNjEuMyAwIDEwMS0yNy42IDEyMC4xLTg2LjNsLTYyLjIgMGMtNi43IDIxLjktMzQuMyAzMy41LTU1LjcgMzMuNS00MS4zIDAtNjMtMjQuMi02My02NS4zbDE4NS4xIDBjLjMtNC4yIC42LTguNyAuNi0xMy4yek0zOTAuNCAyNzRjMi4zLTMzLjcgMjQuNy01NC44IDU4LjUtNTQuOCAzNS40IDAgNTMuMiAyMC44IDU2LjIgNTQuOGwtMTE0LjcgMHoiXX0sWEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1vbmVybyIsaWNvbjpbNTEyLDUxMixbXSwiZjNkMCIsIk0zNjAgMzg0bDEwOC40IDBDNDI1IDQ1NS45IDM0Ni4xIDUwNCAyNTYgNTA0Uzg3IDQ1NS45IDQzLjYgMzg0bDEwOC40IDAgMC0xMjcuOCAxMDQgMTA0LjggMTA0LTEwNSAwIDEyOHpNOTYgMzM2bDAtMjA4IDE1OS40IDE1OS40IDE2MC42LTE1OS40IDAgMjA4IDc0LjggMGM4LjUtMjUuMSAxMy4yLTUyIDEzLjItODAgMC0xMzctMTExLTI0OC0yNDgtMjQ4UzggMTE5IDggMjU2YzAgMjggNC42IDU0LjkgMTMuMiA4MEw5NiAzMzZ6Il19LFFMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaWdtYSIsaWNvbjpbMzg0LDUxMixbXSwiZjc5OSIsIk0xNCA5NS44QzE0IDQyLjkgNTYuOSAwIDEwOS44IDBMMjc0LjIgMGM1Mi45IDAgOTUuOCA0Mi45IDk1LjggOTUuOCAwIDMzLjUtMTcuMiA2My00My4yIDgwLjEgMjYgMTcuMSA0My4yIDQ2LjYgNDMuMiA4MC4xIDAgNTIuOS00Mi45IDk1LjgtOTUuOCA5NS44bC0yLjEgMGMtMjQuOCAwLTQ3LjQtOS40LTY0LjQtMjQuOWwwIDg4LjNjMCA1My42LTQ0IDk2LjgtOTcuNCA5Ni44LTUyLjggMC05Ni4zLTQyLjgtOTYuMy05NS44IDAtMzMuNSAxNy4yLTYzIDQzLjItODAuMS0yNi0xNy4xLTQzLjItNDYuNi00My4yLTgwLjFzMTcuMi02MyA0My4yLTgwLjFDMzEuMiAxNTguOCAxNCAxMjkuMyAxNCA5NS44em0xNjIuMyA5NS44bC02Ni41IDBjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40IDAgMzUuNCAyOC42IDY0LjIgNjQgNjQuNGw2Ni45IDAgMC0xMjguOHpNMjA3LjcgMjU2YzAgMzUuNiAyOC44IDY0LjQgNjQuNCA2NC40bDIuMSAwYzM1LjYgMCA2NC40LTI4LjggNjQuNC02NC40cy0yOC44LTY0LjQtNjQuNC02NC40bC0yLjEgMGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjR6bS05Ny45IDk1LjhsLS40IDBjLTM1LjQgLjItNjQgMjktNjQgNjQuNHMyOS4yIDY0LjQgNjQuOSA2NC40YzM2LjMgMCA2Ni0yOS40IDY2LTY1LjVsMC02My40LTY2LjUgMHptMC0zMjAuNGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjRzMjguOCA2NC40IDY0LjQgNjQuNGw2Ni41IDAgMC0xMjguOC02Ni41IDB6bTk3LjkgMTI4LjhsNjYuNSAwYzM1LjYgMCA2NC40LTI4LjggNjQuNC02NC40cy0yOC44LTY0LjQtNjQuNC02NC40bC02Ni41IDAgMCAxMjguOHoiXX0sRGI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW5zdGFncmFtIixpY29uOls0NDgsNTEyLFtdLCJmMTZkIiwiTTIyNC4zIDE0MWExMTUgMTE1IDAgMSAwIC0uNiAyMzAgMTE1IDExNSAwIDEgMCAuNi0yMzB6bS0uNiA0MC40YTc0LjYgNzQuNiAwIDEgMSAuNiAxNDkuMiA3NC42IDc0LjYgMCAxIDEgLS42LTE0OS4yem05My40LTQ1LjFhMjYuOCAyNi44IDAgMSAxIDUzLjYgMCAyNi44IDI2LjggMCAxIDEgLTUzLjYgMHptMTI5LjcgMjcuMmMtMS43LTM1LjktOS45LTY3LjctMzYuMi05My45LTI2LjItMjYuMi01OC0zNC40LTkzLjktMzYuMi0zNy0yLjEtMTQ3LjktMi4xLTE4NC45IDAtMzUuOCAxLjctNjcuNiA5LjktOTMuOSAzNi4xcy0zNC40IDU4LTM2LjIgOTMuOWMtMi4xIDM3LTIuMSAxNDcuOSAwIDE4NC45IDEuNyAzNS45IDkuOSA2Ny43IDM2LjIgOTMuOXM1OCAzNC40IDkzLjkgMzYuMmMzNyAyLjEgMTQ3LjkgMi4xIDE4NC45IDAgMzUuOS0xLjcgNjcuNy05LjkgOTMuOS0zNi4yIDI2LjItMjYuMiAzNC40LTU4IDM2LjItOTMuOSAyLjEtMzcgMi4xLTE0Ny44IDAtMTg0Ljh6TTM5OSAzODhjLTcuOCAxOS42LTIyLjkgMzQuNy00Mi42IDQyLjYtMjkuNSAxMS43LTk5LjUgOS0xMzIuMSA5cy0xMDIuNyAyLjYtMTMyLjEtOWMtMTkuNi03LjgtMzQuNy0yMi45LTQyLjYtNDIuNi0xMS43LTI5LjUtOS05OS41LTktMTMyLjFzLTIuNi0xMDIuNyA5LTEzMi4xYzcuOC0xOS42IDIyLjktMzQuNyA0Mi42LTQyLjYgMjkuNS0xMS43IDk5LjUtOSAxMzIuMS05czEwMi43LTIuNiAxMzIuMSA5YzE5LjYgNy44IDM0LjcgMjIuOSA0Mi42IDQyLjYgMTEuNyAyOS41IDkgOTkuNSA5IDEzMi4xczIuNyAxMDIuNy05IDEzMi4xeiJdfSxKTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGVyYnl0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4MyIsIk0zMDUuMyAyODQuNmwtNTguNyAwIDAgOTguNyA1OC43IDBjMTYuMyAwIDI5LTQuNiAzOC4yLTEzLjhzMTMuOC0yMS4yIDEzLjgtMzYuMWMwLTE0LjYtNC43LTI2LjMtMTQtMzUuM3MtMjItMTMuNS0zNy45LTEzLjV6TTE0OS40IDEyOC43bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXpNMzY2LjYgMzJMODEuNCAzMmMtMjEuNiAwLTQyLjIgOC42LTU3LjUgMjMuOVMwIDkxLjggMCAxMTMuNEwwIDM5OC42YzAgMjEuNiA4LjYgNDIuMiAyMy45IDU3LjVTNTkuOCA0ODAgODEuNCA0ODBsMjg1LjMgMGMyMS42IDAgNDIuMi04LjYgNTcuNS0yMy45UzQ0OCA0MjAuMiA0NDggMzk4LjZsMC0yODUuM2MwLTIxLjYtOC42LTQyLjItMjMuOS01Ny41UzM4OC4yIDMyIDM2Ni42IDMyem02My42IDM2Ni42YzAgMTYuOS02LjcgMzMtMTguNyA0NXMtMjguMSAxOC42LTQ1IDE4LjdsLTI4NS4zIDBjLTE2LjkgMC0zMy02LjctNDUtMTguN3MtMTguNi0yOC4xLTE4LjctNDVsMC0yODUuM2MwLTE2LjkgNi43LTMzIDE4LjctNDVzMjguMS0xOC42IDQ1LTE4LjdsMjg1LjMgMGMxNi45IDAgMzMgNi43IDQ1IDE4LjdzMTguNiAyOC4xIDE4LjcgNDVsMCAyODUuM3ptLTEyNS0yNjkuOWwtNTguNyAwIDAgOTguNyA1OC43IDBjMTYuMyAwIDI5LTQuNiAzOC4yLTEzLjhzMTMuOC0yMS4yIDEzLjgtMzYuMWMwLTE0LjYtNC43LTI2LjMtMTQtMzUuM3MtMjItMTMuNS0zNy45LTEzLjV6Il19LEs4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdmltZW8iLGljb246WzQ0OCw1MTIsWyJ2aW1lby1zcXVhcmUiXSwiZjE5NCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMzE4LjUgMzA5LjVjLTQzLjUgNTYuNS04MC4zIDg0LjgtMTEwLjQgODQuOC0xOC43IDAtMzQuNC0xNy4yLTQ3LjMtNTEuNi0zLjgtMTMuOS03LjMtMjYuOS0xMC41LTM5LTE4LjItNjguMy0yOC42LTEwNy40LTQ2LjItMTA3LjQtMi40IDAtMTAuOCA1LTI1LjEgMTUuMUw2NCAxOTJjNy02LjEgMTMuOS0xMi40IDIwLjYtMTguNSAyOS4xLTI2LjMgNTUuNi01MC4zIDczLjUtNTEuOSAyNC45LTIuNCA0MC4yIDE0LjYgNDYgNTEuMSAyMC41IDEyOS42IDI5LjYgMTQ5LjIgNjYuOCA5MC41IDEzLjQtMjEuMiAyMC42LTM3LjIgMjEuNS00OC4zIDMuNC0zMi44LTI1LjYtMzAuNi00NS4yLTIyLjIgMTUuNy01MS41IDQ1LjgtNzYuNSA5MC4xLTc1LjEgMzIuOSAxIDQ4LjQgMjIuNCA0Ni41IDY0LTEuNCAzMS4xLTIzLjIgNzMuOC02NS4zIDEyNy45eiJdfSxlRXQ9SzhlLHRFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwdXNoZWQiLGljb246WzQ0OCw1MTIsW10sImYzZTEiLCJNNDE1LjEgMTExLjlsLTk4LjUtOSAxNC0zMy40YzEwLjQtMjMuNS0xMC44LTQwLjQtMjguNy0zN0wzMC42IDc2LjljLTE1LjEgMi43LTI2IDE4LjMtMjEuNCAzNi42TDExNC4zIDQ2MS44YzYuNSAyMS4zIDM2LjcgMjQuMiA0Ny43IDdMMTk3LjMgMzg4IDQzMi41IDE1Ni43YzE2LjQtMTYuOCA0LjMtNDIuOS0xNy40LTQ0Ljh6TTMwNS43IDUzLjZjNS4xLS43IDcuNSAyLjUgNS4yIDcuNGwtMTYuOCAzOS45LTE3Ny40LTE2LjMgMTg5LTMxek0zMC44IDEwNy45Yy0zLjEtNS4xIDEtMTAgNi4xLTkuMWwyNDguNyAyMi43LTk2LjkgMjMwLjctMTU3LjktMjQ0LjN6TTE0NC4xIDQ1Ni40Yy0yLjYgNC03LjkgMy4xLTkuNC0xLjJMNTEuNiAxNzkuNyAxNzkuMyAzNzcuM2MtNyAxNS0zNS4yIDc5LjEtMzUuMiA3OS4xek00MTYuOSAxNDEuOWwtMTk4LjcgMTk1LjQgODkuNy0yMTMuNyAxMDYuNCA5LjdjNCAxLjEgNS43IDUuMyAyLjYgOC42eiJdfSxhRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4Y2xvdWQiLGljb246WzY0MCw1MTIsW10sImYyODkiLCJNMjEzIDM0Ni42bC0zMy4yIDAgMC0xNTEuNSA2LjItMjEuNi0xMC43IDAtMzguMSAxNzMuMS02MSAwLTM4LjQtMTczLjEtMTAuNSAwIDUuOSAyMS42IDAgMTUxLjUtMzMuMiAwIDAtMTgxLjYgNjUuNyAwIDM2LjYgMTczLjEgOC41IDAgMzYuNi0xNzMuMSA2NS43IDAgMCAxODEuNnptMzMxLjUtNjNsLTg2IDYyLjEgMC0zOC4xIDcyLjktNTEuOC03Mi45LTUxLjggMC0zOC4xIDg2IDYyLjMgOS4zIDAgODYuMy02Mi4zIDAgMzguMS03My4xIDUxLjggNzMuMSA1MS44IDAgMzguMS04Ni4zLTYyLjEtOS4zIDB6TTQzMC4yIDI3Mi4zbC0xODIgMCAwLTMzLjEgMTgyIDAgMCAzMy4xeiJdfSxzRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFuZGV4LWludGVybmF0aW9uYWwiLGljb246WzMyMCw1MTIsW10sImY0MTQiLCJNMTI5LjUgNTEybDAtMTY2LjEtMTExLTI5Ny45IDU1LjggMCA4MS44IDIyOS43IDk0LjEtMjc3LjcgNTEuMyAwLTEyMC43IDM0Ny44IDAgMTY0LjItNTEuMyAweiJdfSxpRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGl2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTA3ZiIsIk0yNjAuNCAyNTQuOUwxMzEuNSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zLS44IC4xLTEuMSAuMy0uNiAuNS0uOCAuOEwuMyAyNTQuOWMtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMUwxMjkuMSA0NzguOWMuMiAuMyAuNSAuNiAuOCAuOHMuNyAuMyAxLjEgLjMgLjgtLjEgMS4xLS4zIC42LS41IC44LS44TDI2MC40IDI1Ny4xYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xem0zOS4xLTI1LjdjLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOCAuMy0uNyAuMy0xLjEtLjEtLjgtLjMtMS4xTDI1OS4xIDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjUgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMMjk5LjQgMjI5LjJ6bTIxMi4zIDI1LjdMMzg0LjkgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uM2wtNjYuNiAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjgtLjMgLjctLjMgMS4xIC4xIC44IC4zIDEuMUw0NDAuNyAyNTYgMzE0LjUgNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjYgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEw1MTEuNyAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXpNMzY2IDI4NC45bC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOEwxODguOCA0NzYuN2MtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMSAuNSAuNiAuOCAuOCAuNyAuMyAxLjEgLjNsNjYuNSAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44TDM2Ny45IDI4OC4zYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xLS41LS42LS44LS44LS43LS4zLTEuMS0uM3oiXX0sckV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtemVybyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMyIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bS0uNCA2MC41Yy04MS45IDAtMTAyLjUgNzcuMy0xMDIuNSAxNDIuOFMxNzQuMSAzOTguOCAyNTYgMzk4LjggMzU4LjUgMzIxLjUgMzU4LjUgMjU2IDMzNy45IDExMy4yIDI1NiAxMTMuMnptMCA1My45YzMuMyAwIDYuNCAuNSA5LjIgMS4yIDUuOSA1LjEgOC44IDEyLjEgMy4xIDIxLjlMMjEzLjggMjkwLjRjLTEuNy0xMi43LTEuOS0yNS4xLTEuOS0zNC40IDAtMjguOCAyLTg4LjkgNDQuMS04OC45em00MC44IDQ2LjJjMi45IDE1LjQgMy4zIDMxLjQgMy4zIDQyLjcgMCAyOC45LTIgODguOS00NC4xIDg4LjktMTMuNSAwLTMyLjYtNy43LTIwLjEtMjYuNGw2MC45LTEwNS4yeiJdfSxZOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXNuYXBjaGF0IixpY29uOls0NDgsNTEyLFsic25hcGNoYXQtc3F1YXJlIl0sImYyYWQiLCJNMzg0IDMyTDY0IDMyYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN1MwIDc5IDAgOTZMMCA0MTZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNTNDcgNDgwIDY0IDQ4MGwzMjAgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN1M0NDggNDMzIDQ0OCA0MTZsMC0zMjBjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNTNDAxIDMyIDM4NCAzMnptLTMuOSAzMTkuM2wtLjEgLjFjLTIuNSAyLjgtNS40IDUuMS04LjcgNi44LTYuNSAzLjYtMTMuNCA2LjMtMjAuNiA4LjItMS40IC40LTIuNyAxLTMuOSAxLjgtMi4yIDEuOS0yLjEgNC42LTQuNCA4LjYtMS43IDMtNCA1LjUtNi44IDcuNS02LjcgNC42LTE0LjIgNC45LTIyLjIgNS4yLTcuMiAuMy0xNS40IC42LTI0LjcgMy43LTMuOCAxLjItNy44IDMuNy0xMi40IDYuNS0xMS4zIDYuOS0yNi43IDE2LjQtNTIuMyAxNi40cy00MC45LTkuNC01Mi4xLTE2LjNjLTQuNy0yLjktOC43LTUuNC0xMi41LTYuNi05LjMtMy4xLTE3LjUtMy40LTI0LjctMy43LTgtLjMtMTUuNS0uNi0yMi4yLTUuMi0yLjQtMS42LTQuNC0zLjctNi02LjEtMy4yLTQuNi0yLjktNy44LTUuMy05LjktMS4zLS44LTIuNi0xLjUtNC4xLTEuOC03LjEtMS45LTEzLjktNC42LTIwLjMtOC4xLTMuMS0xLjYtNS45LTMuOC04LjMtNi4zLTYuNi02LjgtOC4zLTE0LjgtNS43LTIxLjggMy40LTkuMyAxMS42LTEyLjEgMTkuNC0xNi4zIDE0LjgtOCAyNi4zLTE4LjEgMzQuNC0yOS45IDIuMy0zLjMgNC4zLTYuOSA2LTEwLjYgLjgtMi4yIC44LTMuMyAuMi00LjQtLjYtLjktMS4zLTEuNi0yLjItMi4yLTIuNS0xLjctNS4xLTMuNC02LjktNC41LTMuMy0yLjEtNS45LTMuOC03LjUtNS02LjMtNC40LTEwLjYtOS0xMy40LTE0LjItMS45LTMuNi0zLTcuNi0zLjMtMTEuNnMuNC04LjEgMS45LTExLjljNC4xLTEwLjkgMTQuNS0xNy43IDI3LTE3LjcgMi42IDAgNS4zIC4zIDcuOCAuOCAuNyAuMiAxLjQgLjMgMiAuNS0uMS03LjQgLjEtMTUuNCAuNy0yMy4xIDIuNC0yNy4zIDExLjktNDEuNiAyMS45LTUzIDYuNC03LjIgMTMuOS0xMy4yIDIyLjMtMTcuOSAxNS4xLTguNiAzMi4yLTEzIDUwLjktMTNzMzUuOCA0LjQgNTAuOSAxM2M4LjMgNC43IDE1LjkgMTAuOCAyMi4yIDE3LjkgMTAgMTEuNCAxOS41IDI1LjcgMjEuOSA1MyAuNiA3LjcgLjkgMTUuNCAuNyAyMy4xIC43LS4yIDEuNC0uMyAyLjEtLjUgMi42LS42IDUuMi0uOCA3LjgtLjggMTIuNSAwIDIyLjggNi44IDI3IDE3LjcgMS41IDMuOCAyLjEgNy45IDEuOSAxMS45cy0xLjQgOC0zLjMgMTEuNmMtMi43IDUuMi03LjEgOS45LTEzLjQgMTQuMi0xLjcgMS4yLTQuMyAyLjktNy41IDUtMS44IDEuMi00LjUgMi45LTcuMiA0LjctLjggLjUtMS40IDEuMi0xLjkgMi0uNSAxLS41IDIuMiAuMiA0LjIgMS43IDMuOCAzLjcgNy40IDYuMSAxMC44IDguMyAxMi4xIDIwLjIgMjIuMyAzNS41IDMwLjQgMS41IC44IDMgMS41IDQuNCAyLjMgLjcgLjMgMS42IC44IDIuNSAxLjMgNC45IDIuNyA5LjIgNiAxMS41IDEyLjIgMi41IDYuOSAxIDE0LjctNS4yIDIxLjN6bS0xNi43LTE4LjVjLTUwLjMtMjQuMy01OC4zLTYxLjktNTguNy02NC43LS40LTMuNC0uOS02IDIuOC05LjUgMy42LTMuMyAxOS41LTEzLjIgMjQtMTYuMyA3LjMtNS4xIDEwLjUtMTAuMiA4LjItMTYuNS0xLjctNC4zLTUuNy02LTEwLTYtMS4zIDAtMi43IC4yLTQgLjQtOCAxLjctMTUuOCA1LjgtMjAuNCA2LjktLjUgLjEtMS4xIC4yLTEuNyAuMi0yLjQgMC0zLjMtMS4xLTMuMS00IC42LTguOCAxLjgtMjUuOSAuNC00MS45LTEuOS0yMi05LTMyLjktMTcuNC00Mi42LTQuMS00LjYtMjMuMS0yNC43LTU5LjUtMjQuN3MtNTUuNCAyMC4xLTU5LjUgMjQuOGMtOC40IDkuNy0xNS41IDIwLjYtMTcuNCA0Mi42LTEuNCAxNi0uMSAzMy4xIC40IDQxLjkgLjIgMi44LS43IDQtMy4xIDQtLjYgMC0xLjEtLjEtMS43LS4yLTQuNS0xLjEtMTIuMy01LjEtMjAuMy02LjktMS4zLS4zLTIuNi0uNC00LS40LTQuMyAwLTguMyAxLjYtMTAgNi0yLjQgNi4zIC44IDExLjQgOC4yIDE2LjUgNC40IDMuMSAyMC40IDEzIDI0IDE2LjMgMy43IDMuNCAzLjIgNi4xIDIuOCA5LjUtLjQgMi44LTguNCA0MC40LTU4LjcgNjQuNy0yLjkgMS40LTggNC40IC45IDkuMyAxMy45IDcuNiAyMy4xIDYuOCAzMC4zIDExLjQgNi4xIDMuOSAyLjUgMTIuNCA2LjkgMTUuNCA1LjUgMy44IDIxLjYtLjMgNDIuMyA2LjYgMTcuNCA1LjcgMjguMSAyMiA1OSAyMnM0MS44LTE2LjMgNTguOS0yMmMyMC44LTYuOSAzNi45LTIuOCA0Mi4zLTYuNiA0LjQtMy4xIC44LTExLjUgNi45LTE1LjQgNy4yLTQuNiAxNi40LTMuOCAzMC4zLTExLjUgOC44LTQuOSAzLjgtNy45IC45LTkuNHoiXX0sb0V0PVk4ZSxuRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlbWVpc2xlIixpY29uOls1MTIsNTEyLFtdLCJmMmIyIiwiTTIwOCA4OC4zYzAtMTAgNi4zLTIxLjcgMTcuNy0yMS43IDExLjEgMCAxNy43IDExLjcgMTcuNyAyMS43IDAgMTAuMy02LjYgMjEuNy0xNy43IDIxLjctMTEuNCAwLTE3LjctMTEuNC0xNy43LTIxLjd6bTMwNCAxNjBjMCAzNi0xMS40IDEwMi4zLTM2LjMgMTI5LjctMjIuOSAyNC45LTg3LjQgNjEuMS0xMjAuOSA3MC42bC0xLjEgLjMgMCAzMi42YzAgMTYuMy0xMi42IDMwLjYtMjkuMSAzMC42LTEwIDAtMTkuNC01LjctMjQuNi0xNC4zLTUuNCA4LjYtMTQuOSAxNC4zLTI0LjkgMTQuM3MtMTkuNC01LjctMjQuOS0xNC4zYy01LjEgOC42LTE0LjYgMTQuMy0yNC42IDE0LjMtMTAuMyAwLTE5LjQtNS43LTI0LjktMTQuMy01LjEgOC42LTE0LjYgMTQuMy0yNC42IDE0LjMtMTguOSAwLTI5LjQtMTUuNy0yOS40LTMyLjktMTYuMyAxMi4zLTM1LjcgMTkuNC01Ni42IDE5LjQtMjIgMC00My40LTguMy02MC4zLTIyLjkgMTAuMy0uMyAyMC42LTIuMyAzMC4zLTUuNy0yMC45LTUuNy0zOS40LTE4LjktNTItMzYuMyAyMS40IDQuNiA0Ni4yIDEuNyA2Ny4xLTExLjEtMjItMjItNTYuNi01OC45LTY4LjYtODcuNC01LjctMTMuNC02LjktMzEuNC02LjktNDUuNyAwLTQ5LjcgMjAuMy0xNjAgODYuMy0xNjAgMTAuNiAwIDE4LjkgNC45IDIzLjEgMTQuOSAzLjctNS40IDcuNy0xMC41IDEyLTE1LjQgMi0yLjYgNS43LTUuNCA3LjEtOC4zIDgtMTIuNiAxMS43LTIxLjEgMjEuNy0zNCAzMi4zLTQxLjEgODEuNy02OS40IDEzNC45LTY5LjQgNiAwIDEyIC4zIDE3LjcgMS4xIDEwLjktMTEuNyAyNi0xOC4zIDQxLjctMTguMyAxNC42IDAgMjkuNyA2IDQwIDE2LjMgLjkgLjkgMS40IDIuMyAxLjQgMy40IDAgMy43LTEwLjMgMTMuNC0xMi45IDE2LjMgNC4zIDEuNCAxNS43IDYuOSAxNS43IDEyIDAgMi45LTIuOSA1LjEtNC42IDcuMSAzMS40IDI3LjcgNDkuNCA2Ny4xIDU2LjMgMTA4IDQuMy01LjEgMTAuMy04LjYgMTcuMS04LjYgMTAuNiAwIDIwLjkgNy4xIDI4LjYgMTQgMjAuOSAxOC42IDI1LjcgNTMuMSAyNS43IDc5Ljd6TTE4OCA4OS40YzAgMTguMyAxMi42IDM3LjEgMzIuMyAzNy4xczMyLjMtMTguOSAzMi4zLTM3LjFjMC0xOC0xMi42LTM2LjktMzIuMy0zNi45UzE4OCA3MS40IDE4OCA4OS40ek0yMzcuNyAxOTRjMC0xOS43IDMuNy0zOS4xIDguNi01OC4zLTUyIDc5LjUtMTMuNSAxODQuNiA2OC45IDE4NC42IDIxLjQgMCA0Mi42LTcuNyA2MC0yMCAyLTcuNCAzLjctMTQuOSAzLjctMjIuNiAwLTE0LjMtNi4zLTIxLjQtMjAuNi0yMS40LTQuNiAwLTkuMSAuOS0xMy40IDEuNy02My4zIDEyLjctMTA3LjEgMy43LTEwNy4xLTY0ek0xOTYuNiA0NDguOWMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMCA5LjctMjAgMjAuOWwwIDMyLjZjMCAxMS4xIDguNiAyMS4xIDIwIDIxLjFzMjAuMy05LjcgMjAuMy0yMS4xbDAtMzIuNnptNDkuMSAwYzAtMTEuMS04LjYtMjAuOS0yMC0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAtMTAgMjAtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy05LjcgMjAuMy0yMS4xbDAtMzIuNnptNDkuNyAwYzAtMTEuMS04LjktMjAuOS0yMC4zLTIwLjlzLTIwLjMgOS43LTIwLjMgMjAuOWwwIDMyLjZjMCAxMS4xIDguOSAyMS4xIDIwLjMgMjEuMXMyMC4zLTEwIDIwLjMtMjEuMWwwLTMyLjZ6TTQyMS43IDI4NmMtMzAuOSA1OS4xLTkwLjMgMTAyLjYtMTU4LjYgMTAyLjYtOTYuNiAwLTE2MC42LTg0LjYtMTYwLjYtMTc2LjYgMC0xNi45IDItMzMuNCA2LTQ5LjctMjAgMzMuNy0yOS43IDcyLjYtMjkuNyAxMTEuNCAwIDYwLjMgMjQuOSAxMjEuNyA3MS40IDE2MC45IDUuMS05LjcgMTQuOS0xNi4zIDI2LTE2LjMgMTAgMCAxOS40IDUuNyAyNC42IDE0LjMgNS40LTguNiAxNC42LTE0LjMgMjQuOS0xNC4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuOS0xNC4zIDI0LjktMTQuM3MxOS40IDUuNyAyNC45IDE0LjNjNS4xLTguNiAxNC42LTE0LjMgMjQuNi0xNC4zIDEwLjkgMCAyMC45IDYuNiAyNS43IDE2IDQzLjQtMzYuMyA2OC42LTkyIDcxLjQtMTQ4LjN6bTEwLjYtOTkuN2MwLTUzLjctMzQuNi0xMDUuNy05Mi42LTEwNS43LTMwLjMgMC01OC42IDE1LjEtNzguOSAzNi45LTIwIDY2LjQtMjcuNCAxMzYuNiA0MS40IDEzNi42IDI4LjggMCA5Ny40LTI4LjUgODQuMyAzNi45IDI4LjktMjYgNDUuNy02NS43IDQ1LjctMTA0LjZ6Il19LGxFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYXJ0LWxhbmciLGljb246WzUxMiw1MTIsW10sImU2OTMiLCJNMzc4LjYgNzguOWMtMi44LS4xLTUuNi0uMi04LjUtLjJsLTI2NC4xIDAgMTQzLjItNzJjNy40LTQuNCAxOC44LTYuNyAzMC40LTYuNyAxMy41IDAgMjkuNCA5LjIgMzcgMTYuOGw2MiA2MiAwIC4xek0xMDcuMyA5Ni41bDI2Mi44IDBjMTYgMCAyNS40IDEuNCAzNS40IDkuM2wxMDYuNSAxMDYuNCAwIDIwOC44LTc5LjMgLjctMzI1LjQtMzI1LjJ6TTk2LjUgMzczbDAtMjYyLjIgMzIzLjggMzIzLjggLjcgNzcuNC0yMTIuMiAwLTk4LjEtOTguMkM5OS40IDQwMi41IDk2LjUgMzk4LjUgOTYuNSAzNzN6TTc4LjcgMTA1LjNsMCAyNjcuN2MwIDMuMyAuMSA2LjMgLjIgOS4xbC02Mi02MkM2LjUgMzA5LjMgMCAyOTQuMyAwIDI3OS42IDAgMjcyLjggMy45IDI2Mi4xIDYuNyAyNTZsNzItMTUwLjd6Il19LGNFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXBsb3lkb2ciLGljb246WzUxMiw1MTIsW10sImYzOGUiLCJNMzgyLjIgMTM2bDUxLjcgMCAwIDIzOS42LTUxLjcgMCAwLTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlsMC0xMDMuOXpNMzE3LjUgMjk3LjhhMzMuMiAzMy4yIDAgMSAwIDY2LjQgMSAzMy4yIDMzLjIgMCAxIDAgLTY2LjQtMXpNMTg4LjUgMTM2bDUxLjcgMCAwIDIzOS42LTUxLjcgMCAwLTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlsMC0xMDMuOXpNMTIzLjggMjk3LjhhMzMuMiAzMy4yIDAgMSAwIDY2LjQgMSAzMy4yIDMzLjIgMCAxIDAgLTY2LjQtMXpNNDQ4IDk2YzE3LjUgMCAzMiAxNC40IDMyIDMybDAgMjU2YzAgMTcuNS0xNC40IDMyLTMyIDMyTDY0IDQxNmMtMTcuNSAwLTMyLTE0LjQtMzItMzJsMC0yNTZjMC0xNy41IDE0LjQtMzIgMzItMzJsMzg0IDB6bTAtMzJMNjQgNjRDMjguOCA2NCAwIDkyLjggMCAxMjhMMCAzODRjMCAzNS4yIDI4LjggNjQgNjQgNjRsMzg0IDBjMzUuMiAwIDY0LTI4LjggNjQtNjRsMC0yNTZjMC0zNS4yLTI4LjgtNjQtNjQtNjR6Il19LGRFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbGlwYm9hcmQiLGljb246WzQ0OCw1MTIsW10sImY0NGQiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMzU4LjQgMjExLjJsLTg5LjYgMCAwIDg5LjYtODkuNiAwIDAgODkuNi04OS42IDAgMC0yNjguOCAyNjguOCAwIDAgODkuNnoiXX0sdUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1eS1uLWxhcmdlIixpY29uOls1NzYsNTEyLFtdLCJmOGE2IiwiTTI4OC4yIDMyQzEzMy41IDMyIDggMTMyLjMgOCAyNTZTMTMzLjUgNDgwIDI4OC4yIDQ4MCA1NjguNCAzNzkuNyA1NjguNCAyNTYgNDQyLjkgMzIgMjg4LjIgMzJ6TTIwMi44IDM4OS4ybC0xMzguNSAxLjQgNzcuMi0yOTAuNyAxMzMuNCAwYzYzLjIgMCA4NC45IDI4LjYgNzggNzIuOC0uNCAyLjMtLjkgNC42LTEuNSA2LjktNS42LTEuMy0xMS40LTEuOS0xNy4yLTEuOS00Mi4zIDAtNzYuNyAzMy45LTc2LjcgNzUuNyAwIDM3LjEgMjcuMSA2OCA2Mi45IDc0LjUtMTguMiAzNy4yLTU2LjIgNjAuOS0xMTcuNyA2MS41ek0zNTguMiAyMDcuMWwzMiAwLTIyLjIgOTAuMy0zNS40IDAtMTEuMi0zNS42LTcuOCAzNS42LTM3LjggMCAyNi42LTkwLjMgMzEuMyAwIDE1IDM2LjggOS40LTM2Ljh6TTUwNC4xIDM4OS4ybC0xOTcuMSAwIDE1LjgtNjEuMmMzLjggLjYgNy42IC44IDExLjUgLjggNDIuMyAwIDc2LjctMzMuOSA3Ni43LTc1LjYgMC0zMi42LTIxLTYwLjUtNTAuNC03MS4xbDIxLjMtODIuNCA5Mi41IDAtNTMgMjA1LjQgMTAzLjkgMC0yMS4yIDg0LjF6TTIxMS45IDI2OS40bC0yNC43IDAtMTMuOCA1Ni41IDI0LjcgMGMxNi4xIDAgMzIuMS0zLjIgMzcuOS0yNi42IDUuNi0yMi4zLTgtMjkuOC0yNC4xLTI5Ljh6TTIzMy4yIDE3MGwtMjEuMyAwLTExLjcgNDcuNyAyMS40IDBjMTggMCAzNS40LTE0LjYgMzkuMi0zMC4xIDQuNi0xOC45LTkuNS0xNy42LTI3LjYtMTcuNnoiXX0scEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndhdGNobWFuLW1vbml0b3JpbmciLGljb246WzUxMiw1MTIsW10sImUwODciLCJNMjU2IDE2YTI0MCAyNDAgMCAxIDAgMCA0ODAgMjQwIDI0MCAwIDEgMCAwLTQ4MHpNMTIxLjcgNDI5LjFjLTUxLjYtNDAuMi04NC45LTEwMi44LTg0LjktMTczLjEgMC0yMS43IDMuMi00My4zIDkuNi02NC4xbDEwMi45LTE3LjktLjEgMTEtMTMuOSAycy0uMSAxMi41LS4xIDE5LjVjMCAyIC40IDQgMS4yIDUuOHMyLjEgMy40IDMuNyA0LjZsOS41IDcuNC0yNy43IDIwNC45ek0yMjcuNCAxNDUuOWw4LjUtNy42czYuOS01LjQtLjEtOS4zYy03LjItNC0zOS41LTM0LjUtMzkuNS0zNC41LTUuMy01LjUtOC4zLTcuMy0xNS41IDAgMCAwLTMyLjMgMzAuNS0zOS41IDM0LjUtNy4xIDQtLjEgOS4zLS4xIDkuM2w4LjUgNy42IDAgNC40LTczLjUtMTkuMmMzOS42LTU2LjkgMTA1LjUtOTQuMyAxODAtOTQuMyAzMS4zIDAgNjIuMiA2LjcgOTAuNiAxOS42czUzLjggMzEuOCA3NC4zIDU1LjRsLTE5My41IDM3LjcgMC0zLjZ6bTM0LjEgMzI5LjNsLTMzLjktMjUwLjkgOS41LTcuNGMxLjYtMS4yIDIuOC0yLjggMy43LTQuNnMxLjMtMy44IDEuMi01LjhjMC03LS4xLTE5LjUtLjEtMTkuNWwtMTMuOS0yLS4xLTEwLjUgMjQxLjcgMzEuNGMzLjkgMTYuNCA1LjggMzMuMyA1LjggNTAuMSAwIDExOS4xLTk1LjQgMjE2LjItMjEzLjggMjE5LjF6Il19LGhFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoaXBzIixpY29uOls2NDAsNTEyLFtdLCJmNDUyIiwiTTI1MS42IDE1Ny42YzAtMS45LS45LTIuOC0yLjgtMi44bC00MC45IDBjLTEuNiAwLTIuNyAxLjQtMi43IDIuOGwwIDIwMS44YzAgMS40IDEuMSAyLjggMi43IDIuOGw0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0yMDEuOHpNMTU2LjUgMTY4Yy0xNi4xLTExLjgtMzYuMy0xNy45LTYwLjMtMTgtMTguMS0uMS0zNC42IDMuNy00OS44IDExLjRsMC04MS4yYzAtMS44LS45LTIuNy0yLjgtMi43bC00MC45IDBDLjkgNzcuNSAwIDc4LjQgMCA4MC4yTDAgMzU5LjRjMCAxLjkgLjkgMi44IDIuNyAyLjhsNDEgMGMxLjkgMCAyLjgtLjkgMi44LTIuOGwwLTEzNi4xYzAtLjgtMi44LTI3IDQ1LjgtMjcgNDguNSAwIDQ1LjggMjYuMSA0NS44IDI3bDAgMTIyLjZjMCA5IDcuMyAxNi4zIDE2LjQgMTYuM2wyNy4zIDBjMS44IDAgMi43LS45IDIuNy0yLjhsMC0xMzYuMWMwLTIzLjQtOS4zLTQxLjgtMjgtNTUuM3pNNjM0LjkgMjc4LjFjLTYuOC0xNS43LTE4LjQtMjctMzQuOS0zNC4xbC01Ny42LTI1LjNjLTguNi0zLjYtOS4yLTExLjItMi42LTE2LjEgNy40LTUuNSA0NC4zLTEzLjkgODQgNi44IDEuNyAxIDQtLjMgNC0yLjRsMC00NC43YzAtMS4zLS42LTIuMS0xLjktMi42LTE3LjctNi42LTM2LjEtOS45LTU1LjEtOS45LTI2LjUgMC00NS4zIDUuOC01OC41IDE1LjQtLjUgLjQtMjguNCAyMC0yMi43IDUzLjcgMy40IDE5LjYgMTUuOCAzNC4yIDM3LjIgNDMuNkw1ODAuNCAyODZjMTEuNiA1LjEgMTUuMiAxMy4zIDEyLjIgMjEuMi0zLjcgOS4xLTEzLjIgMTMuNi0zNi41IDEzLjYtMjQuMyAwLTQ0LjctOC45LTU4LjQtMTkuMS0yLjEtMS40LTQuNCAuMi00LjQgMi4zbDAgMzQuNGMwIDEwLjQgNC45IDE3LjMgMTQuNiAyMC43IDE1LjYgNS41IDMxLjYgOC4yIDQ4LjIgOC4yIDEyLjcgMCAyNS44LTEuMiAzNi4zLTQuMyAuNy0uMyAzNi04LjkgNDUuNi00NS44IDMuNS0xMy41IDIuNC0yNi41LTMuMS0zOS4xek0zNzYuMiAxNDkuOGMtMzEuNyAwLTEwNC4yIDIwLjEtMTA0LjIgMTAzLjVsMCAxODMuNWMwIC44IC42IDIuNyAyLjcgMi43bDQwLjkgMGMxLjkgMCAyLjgtLjkgMi44LTIuN2wwLTg4LjhjMTYuNSAxMi43IDM1LjggMTkuMSA1Ny43IDE5LjEgNjAuNSAwIDEwOC43LTQ4LjUgMTA4LjctMTA4LjcgLjEtNjAuMy00OC4yLTEwOC42LTEwOC42LTEwOC42em0wIDQ2LjZhNjIuMiA2Mi4yIDAgMSAxIDAgMTI0LjMgNjIuMiA2Mi4yIDAgMSAxIDAtMTI0LjN6TTIyOC4zIDcyLjVjLTE1LjkgMC0yOC44IDEyLjktMjguOSAyOC45IDAgMTUuNiAxMi43IDI4LjkgMjguOSAyOC45czI4LjktMTMuMSAyOC45LTI4LjljMC0xNi4yLTEzLTI4LjktMjguOS0yOC45eiJdfSxmRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWR2ZXJzaWZ5IixpY29uOls2NDAsNTEyLFtdLCJmMzg1IiwiTTE2MC42IDMwNGM4LjIgNjguNSA2Ny40IDExNS41IDE0NiAxMTEuMyA1MS4yIDQzLjMgMTM2LjggNDUuOCAxODYuNC01LjYgNjkuMiAxLjEgMTE4LjUtNDQuNiAxMzEuNS05OS41IDE0LjgtNjIuNS0xOC4yLTEzMi41LTkyLjEtMTU1LjEtMzMtODguMS0xMzEuNC0xMDEuNS0xODYuNS04NS01Ny4zIDE3LjMtODQuMyA1My4yLTk5LjMgMTA5LjctNy44IDIuNy0yNi41IDguOS00NSAyNC4xIDExLjcgMCAxNS4yIDguOSAxNS4yIDE5LjVsMCAyMC40YzAgMTAuNy04LjcgMTkuNS0xOS41IDE5LjVsLTIwLjIgMGMtMTAuNyAwLTE5LjUtNi0xOS41LTE2LjdsMC02LjYtNDYuOCAwYy0zLjggMC0xMC44IDQuMy0xMC44IDExLjlsMCA0MC40YzAgNi40IDUuMyAxMS44IDExLjcgMTEuOGw0OC45IDAgMC0uMXpNMzg4IDMxMmMtMTAuNyA0Ni4zIDIxLjcgNzIuNCA1NS4zIDg2LjgtMTA3LjIgMzMuOC0xNzEuNi01MC44LTEzNS4zLTExMC44LTMzLjIgMjEuNi0zMy43IDcxLjItMjkuMiA5Mi45LTE3LjktMTIuNC01My44LTMyLjQtNTcuNC03OS44LTMtMzkuOSAyMS41LTc1LjcgNTctOTMuOSAzMC42LTE1LjggMTAzLjUtOC41IDEzMy42IDQwLjgtMTQuMS00OC01My44LTcwLjEtMTAxLjgtNzQuOCAzMC45LTMwLjcgNjQuNC01MC4zIDExNC4yLTQzLjcgNjkuOCA5LjMgMTMzLjIgODIuOCA2Ny43IDE1MC41IDM1LTE2LjMgNDguNy01NC40IDQ3LjUtNzYuOWwxMC41IDE5LjZjMTEuOCAyMiAxNS4yIDQ3LjYgOS40IDcyLTkuMiAzOS00MC42IDY4LjgtNzkuNyA3Ni41LTMyLjEgNi4zLTgzLjEtNS4xLTkxLjgtNTkuMnpNMTQwIDIwOGwtMzkuOCAwYy04LjkgMC0xNi4yLTcuMy0xNi4yLTE2LjJsMC0zOS42YzAtOC45IDcuMy0xNi4yIDE2LjItMTYuMmwzOS44IDBjOC45IDAgMTYuMiA3LjMgMTYuMiAxNi4ybDAgMzkuNmMwIDguOS03LjMgMTYuMi0xNi4yIDE2LjJ6TTIyLjEgMTY4Yy01LjYgMC0xMC4xLTQuNS0xMC4xLTEwLjFsMC0yNy44YzAtNS42IDQuNS0xMC4xIDEwLjEtMTAuMWwyNy43IDBjNS41IDAgMTAuMSA0LjUgMTAuMSAxMC4xbDAgMjcuOGMwIDUuNi00LjUgMTAuMS0xMC4xIDEwLjFsLTI3LjcgMHpNMTgwIDE0Mi43bDAtMjEuNGMwLTUuMSA0LjItOS4zIDkuMy05LjNsMjEuNCAwYzUuMSAwIDkuMyA0LjIgOS4zIDkuM2wwIDIxLjRjMCA1LjEtNC4yIDkuMy05LjMgOS4zbC0yMS40IDBjLTUuMSAwLTkuMy00LjItOS4zLTkuM3pNNjggMjM1LjVsMCAyNWMwIDYuMy01LjEgMTEuNS0xMS40IDExLjVsLTI1LjIgMGMtNi4zIDAtMTEuNC01LjItMTEuNC0xMS41bDAtMjVjMC02LjMgNS4xLTExLjUgMTEuNC0xMS41bDI1LjEgMGM2LjQgMCAxMS41IDUuMiAxMS41IDExLjV6Il19LG1FdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29kcmVhZHMiLGljb246WzQ0OCw1MTIsW10sImYzYTgiLCJNMjk5LjkgMTkxLjJjNS4xIDM3LjMtNC43IDc5LTM1LjkgMTAwLjctMjIuMyAxNS41LTUyLjggMTQuMS03MC44IDUuNy0zNy4xLTE3LjMtNDkuNS01OC42LTQ2LjgtOTcuMiA0LjMtNjAuOSA0MC45LTg3LjkgNzUuMy04Ny41IDQ2LjktLjIgNzEuOCAzMS44IDc4LjIgNzguM3pNNDQ4IDg4bDAgMzM2YzAgMzAuOS0yNS4xIDU2LTU2IDU2TDU2IDQ4MGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCA4OEMwIDU3LjEgMjUuMSAzMiA1NiAzMmwzMzYgMGMzMC45IDAgNTYgMjUuMSA1NiA1NnpNMzMwIDMxMy4ycy0uMS0zNC0uMS0yMTcuM2wtMjkgMCAwIDQwLjNjLS44IC4zLTEuMi0uNS0xLjYtMS4yLTkuNi0yMC43LTM1LjktNDYuMy03Ni00Ni01MS45IC40LTg3LjIgMzEuMi0xMDAuNiA3Ny44LTQuMyAxNC45LTUuOCAzMC4xLTUuNSA0NS42IDEuNyA3Ny45IDQ1LjEgMTE3LjggMTEyLjQgMTE1LjIgMjguOS0xLjEgNTQuNS0xNyA2OS00NS4yIC41LTEgMS4xLTEuOSAxLjctMi45IC4yIC4xIC40IC4xIC42IC4yIC4zIDMuOCAuMiAzMC43IC4xIDM0LjUtLjIgMTQuOC0yIDI5LjUtNy4yIDQzLjUtNy44IDIxLTIyLjMgMzQuNy00NC41IDM5LjUtMTcuOCAzLjktMzUuNiAzLjgtNTMuMi0xLjItMjEuNS02LjEtMzYuNS0xOS00MS4xLTQxLjgtLjMtMS42LTEuMy0xLjMtMi4zLTEuM2wtMjYuOCAwYy44IDEwLjYgMy4yIDIwLjMgOC41IDI5LjIgMjQuMiA0MC41IDgyLjcgNDguNSAxMjguMiAzNy40IDQ5LjktMTIuMyA2Ny4zLTU0LjkgNjcuNC0xMDYuM3oiXX0sZ0V0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRpZGFsIixpY29uOls2NDAsNTEyLFtdLCJlN2RjIiwiTTEwNy4yIDQ4bC0xLjMgMGMtMzIuMyAzMy4xLTY1LjQgNjUuNS05OCA5OC41LTIuNiAyLjgtNi4xIDUuMS03LjkgOC42IDM1LjYgMzUuNCA3MSA3MSAxMDYuNiAxMDYuNCAzNS40LTM1LjMgNzAuNy03MC44IDEwNi4xLTEwNi4xbDAtMS4zLTczLjItNzMuMkMxMjguOCA2OS44IDExNy4zIDU5LjYgMTA3LjIgNDh6bTIxMy41IDBsLTEuMyAwYy0zNC45IDM2LjEtNzEuNSA3MS0xMDYuMyAxMDcuMiAzNS45IDM1LjEgNzEgNzEgMTA2LjcgMTA2LjMgMzQuMy0zNC4xIDY4LjQtNjguNCAxMDIuNi0xMDIuNCAxLjUtMS41IDMuMy0yLjggNC4xLTQuOC0zNC42LTMzLjgtNjguNC02OC4yLTEwMi42LTEwMi4xLTEuMy0xLjMtMi4zLTIuNi0zLjMtNC4xem0yMTMuNSAwbC0xLjMgMGMtMTcuMiAxOC0zNS4xIDM1LjMtNTIuNiA1My0xNy45IDE3LjctMzUuNCAzNS43LTUzLjUgNTMuMyAuOCAyLjMgMyAzLjYgNC42IDUuNUw1MzMuMyAyNjEuNWMzNi4xLTM0LjkgNzAuOC03MS4yIDEwNi43LTEwNi4xLS41LTIuMi0yLjYtMy41LTQtNUw1NTUuOCA3MC4yYy03LjEtNy40LTE0LjktMTQuMi0yMS41LTIyLjJ6TTMxOS42IDI2MS43Yy0zNC45IDM1LjEtNzAgNzAtMTA0LjkgMTA0LjktLjMgLjctLjcgMS43LTEgMi4zIDI0IDIzLjcgNDcuNyA0Ny41IDcxLjUgNzEuMyAxMS44IDExLjMgMjIuOCAyMy41IDM0LjkgMzQuNCA4LjQtNy40IDE2LjQtMTYuNCAyNC43LTI0LjMgMjUuNS0yNS4zIDUxLTUxIDc2LjUtNzYuMyAxLjgtMi4yIDQuMy0zLjYgNS41LTYuMy0zNS40LTM0LjktNzAuNS03MC4yLTEwNS42LTEwNS40bC0xLjUtLjd6Il19LGJFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bml0eSIsaWNvbjpbNDQ4LDUxMixbXSwiZTA0OSIsIk0yNDMuNiA5MS42bDgwLjEgNDYuOGMyLjkgMS42IDMgNi4yIDAgNy44bC05NS4yIDU1LjZjLTIuOSAxLjctNi4zIDEuNi05IDBsLTk1LjItNTUuNmMtMi45LTEuNi0zLTYuMyAwLTcuOGw4MC4xLTQ2LjggMC05MS42LTIwNC40IDExOS40IDAgMjM4LjggNzguNC00NS44IDAtOTMuNmMtLjEtMy4zIDMuOC01LjcgNi43LTMuOWw5NS4yIDU1LjZjMi45IDEuNyA0LjUgNC43IDQuNSA3LjhsMCAxMTEuMmMuMSAzLjMtMy44IDUuNy02LjcgMy45TDk4IDM0Ni44IDE5LjYgMzkyLjYgMjI0IDUxMiA0MjguNCAzOTIuNiAzNTAgMzQ2LjggMjY5LjkgMzkzLjZjLTIuOCAxLjctNi44LS41LTYuNy0zLjlsMC0xMTEuMmMwLTMuMyAxLjgtNi4zIDQuNS03LjhMMzYyLjkgMjE1YzIuOC0xLjcgNi44IC41IDYuNyAzLjlsMCA5My42IDc4LjQgNDUuOCAwLTIzOC44LTIwNC40LTExOS40IDAgOTEuNnoiXX0sdkV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlbmNlbnQtd2VpYm8iLGljb246WzMyMCw1MTIsW10sImYxZDUiLCJNNDAuNSA0OTUuOGMxLjQgMTkuOS0yNy42IDIyLjItMjkuNyAyLjktMTEuNi0xMjkuOSAzMS4xLTIzOS41IDEwMS40LTMxMy4yLTE1LjYtMzQgOS4yLTc3LjEgNTAuNi03Ny4xIDMwLjMgMCA1NS4xIDI0LjYgNTUuMSA1NS4xIDAgNDQtNDkuNSA3MC44LTg2LjkgNDUuMS02NS43IDcxLjMtMTAxLjQgMTY5LjgtOTAuNSAyODcuMnpNMTYwLjIgLjFjLTEyNS45IDAtMjA0LjMgMTM0LjItMTQ4LjMgMjQyLjMgOC43IDE3LjQgMzUuMyA0LjUgMjYuMy0xMy40LTQ2LjMtOTIuNiAyMS0xOTkuMiAxMjItMTk5LjIgNzUuNCAwIDEzNi45IDYxLjQgMTM2LjkgMTM2LjkgMCA5MC44LTg2LjkgMTUzLjktMTY3LjcgMTMzLjEtMTkuMS00LjEtMjUuNiAyNC40LTYuNiAyOS4xIDExMC43IDIzLjIgMjA0LTYwIDIwNC0xNjIuMyAwLTkxLjktNzQuNi0xNjYuNS0xNjYuNi0xNjYuNXoiXX0seEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZyZWUtY29kZS1jYW1wIixpY29uOls1NzYsNTEyLFtdLCJmMmM1IiwiTTk3LjQgOTYuMmMxMC40LTEwLjYgMTYtMTcuMSAxNi0yMS45IDAtMi44LTEuOS01LjUtMy44LTcuNC0yLjQtMS44LTUuNC0yLjgtOC40LTIuOC04LjUgMC0yMC45IDguOC0zNS44IDI1LjctNDEuNSA0Ny4zLTYyLjcgOTMuMS02MS44IDE2MC42UzIxIDM2Ny4zIDU3LjYgNDEyLjJjMTguOCAyMy42IDMzLjIgMzUuOCA0My41IDM1LjggMy4yLS4zIDYuMS0xLjYgOC40LTMuOCAxLjktMi44IDMuOC01LjYgMy44LTguNCAwLTUuNi0zLjktMTIuMi0xMy4yLTIwLjYtNDQuNS00Mi4zLTY3LjMtOTctNjcuNS0xNjUtLjItNjEuNCAyMS42LTExMi40IDY0LjgtMTU0ek0yMzkuNiA0MjAuMWMuNiAuNCAuOSAuNiAuOSAuNmwtLjktLjZ6bTkzLjggLjZsLjItLjFjLS4yIC4xLS4zIC4yLS4yIC4xem0zLjEtMTU4LjJjLTE2LjItNC4yIDUwLjQtODIuOS02OC4xLTE3Ny4yIDAgMCAxNS41IDQ5LjQtNjIuOCAxNTkuNi03NC4zIDEwNC40IDIzLjUgMTY4LjcgMzQgMTc1LjItNi43LTQuMy00Ny40LTM1LjcgOS42LTEyOC42IDExLTE4LjMgMjUuNS0zNC45IDQzLjUtNzIuMiAwIDAgMTUuOSAyMi40IDcuNiA3MS4xLTEyLjUgNzMuNiA1My44IDUyLjUgNTQuOCA1My41IDIyLjggMjYuOC0xNy43IDczLjUtMjEuNiA3Ni42IDUuNS0zLjcgMTE3LjctNzggMzMtMTg4LjEtNiA2LTEzLjggMzQuMi0zMCAzMC4xek01MTEgODkuN2MtMTQuOS0xNi45LTI3LjQtMjUuNy0zNS45LTI1LjctMyAuMS01LjkgMS4xLTguNCAyLjgtMS45IDEuOS0zLjggNC43LTMuOCA3LjQgMCA0LjggNS42IDExLjMgMTYgMjEuOSA0My4yIDQxLjYgNjUgOTIuNiA2NC44IDE1NC4xLS4yIDY4LTIzIDEyMi42LTY3LjUgMTY1LTkuMyA4LjQtMTMuMiAxNC45LTEzLjIgMjAuNiAwIDIuNyAxLjkgNS42IDMuOCA4LjQgMi4zIDIuMiA1LjIgMy42IDguNCAzLjggMTAuMyAwIDI0LjctMTIuMSA0My41LTM1LjggMzYuNi00NC45IDUzLjEtOTQuNCA1NC4xLTE2MS45UzU1Mi41IDEzNyA1MTEgODkuN3oiXX0seUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IngtdHdpdHRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxYiIsIk0zNTcuMiA0OEw0MjcuOCA0OCAyNzMuNiAyMjQuMiA0NTUgNDY0IDMxMyA0NjQgMjAxLjcgMzE4LjYgNzQuNSA0NjQgMy44IDQ2NCAxNjguNyAyNzUuNS01LjIgNDggMTQwLjQgNDggMjQwLjkgMTgwLjkgMzU3LjIgNDh6TTMzMi40IDQyMS44bDM5LjEgMC0yNTIuNC0zMzMuOC00MiAwIDI1NS4zIDMzMy44eiJdfSx3RXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RpY2tlci1tdWxlIixpY29uOls1NzYsNTEyLFtdLCJmM2Y3IiwiTTU2MS43IDE5OS42bDAgMHptLTYuMi03Ny40Yy03LjctMjIuMy01LjEtNy4yLTEzLjQtMzYuOS0xLjYtNi41LTMuNi0xNC41LTYuMi0yMC00LjQtOC43LTQuNi03LjUtNC42LTkuNSAwLTUuMyAzMC43LTQ1LjMgMTktNDYuOS01LjctLjYtMTIuMiAxMS42LTIwLjYgMTctOC42IDQuMi04IDUtMTAuMyA1LTIuNiAwLTUuNy0zLTYuMi01LTItNS43IDEuOS0yNS45LTMuNi0yNS45LTMuNiAwLTEyLjMgMjQuOC0xNyAyNS44LTUuMiAxLjMtMjcuOS0xMS40LTc1LjEgMTgtMjUuMyAxMy4yLTg2LjkgNjUuMi04NyA2NS4zLTYuNyA0LjctMjAgNC43LTM1LjUgMTYtNDQuNCAzMC4xLTEwOS42IDkuNC0xMTAuNyA5LTExMC42LTI2LjgtMTI4LTE1LjItMTU5IDExLjUtMjAuOCAxNy45LTIzLjcgMzYuNS0yNC4yIDM4LjktNC4yIDIwLjQgNS4yIDQ4LjMgNi43IDY0LjMgMS44IDE5LjMtMi43IDE3LjcgNy43IDk4LjMgLjUgMSA0LjEgMCA1LjEgMS41IDAgOC40LTMuOCAxMi4xLTQuMSAxMy0xLjUgNC41LTEuNSAxMC41IDAgMTYgMi4zIDguMiA4LjIgMzcuMiA4LjIgNDYuOSAwIDQxLjggLjQgNDQgMi42IDQ5LjQgMy45IDEwIDEyLjUgOS4xIDE3IDEyIDMuMSAzLjUtLjUgOC41IDEgMTIuNSAuNSAyIDMuNiA0IDYuMiA1IDkuMiAzLjYgMjcgLjMgMjkuOS0yLjUgMS42LTEuNSAuNS00LjUgMy4xLTUgNS4xIDAgMTAuOC0uNSAxNC40LTIuNSA1LjEtMi41IDQuMS02IDEuNS0xMC41LS40LS44LTctMTMuMy05LjgtMTYtMi4xLTItNS4xLTMtNy4yLTQuNS01LjgtNC45LTEwLjMtMTkuNC0xMC4zLTE5LjUtNC42LTE5LjQtMTAuMy00Ni4zLTQuMS02Ni44IDQuNi0xNy4yIDM5LjUtODcuNyAzOS42LTg3LjggNC4xLTYuNSAxNy0xMS41IDI3LjMtNyA2IDEuOSAxOS4zIDIyIDY1LjQgMzAuOSA0Ny45IDguNyA5Ny40LTIgMTEyLjItMiAyLjggMi0xLjkgMTMtLjUgMzguOSAwIDI2LjQtLjQgMTMuNy00LjEgMjkuOS0yLjIgOS43IDMuNCAyMy4yLTEuNSA0Ni45LTEuNCA5LjgtOS45IDMyLjctOC4yIDQzLjQgLjUgMSAxIDIgMS41IDMuNSAuNSA0LjUgMS41IDguNSA0LjYgMTAgNy4zIDMuNiAxMi0zLjUgOS44IDExLjUtLjcgMy4xLTIuNiAxMiAxLjUgMTUgNC40IDMuNyAzMC42IDMuNCAzNi41IC41IDIuNi0xLjUgMS42LTQuNSA2LjQtNy40IDEuOS0uOSAxMS4zLS40IDExLjMtNi41IC4zLTEuOC05LjItMTkuOS05LjMtMjAtMi42LTMuNS05LjItNC41LTExLjMtOC02LjktMTAuMS0xLjctNTIuNiAuNS01OS40IDMtMTEgNS42LTIyLjQgOC43LTMyLjQgMTEtNDIuNSAxMC4zLTUwLjYgMTYuNS02OC4zIC44LTEuOCA2LjQtMjMuMSAxMC4zLTI5LjkgOS4zLTE3IDIxLjctMzIuNCAzMy41LTQ3LjQgMTgtMjIuOSAzNC00Ni45IDUyLTY5LjggNi4xLTcgOC4yLTEzLjcgMTgtOCAxMC44IDUuNyAyMS42IDcgMzEuOSAxNyAxNC42IDEyLjggMTAuMiAxOC4yIDExLjggMjIuOSAxLjUgNSA3LjcgMTAuNSAxNC45IDkuNSAxMC40LTIgMTMtMi41IDEzLjQtMi41IDIuNi0uNSA1LjctNSA3LjItOCAzLjEtNS41IDcuMi05IDcuMi0xNi41IDAtNy43LS40LTIuOC0yMC42LTUyLjl6Il19LGtFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0d2l0Y2giLGljb246WzQ0OCw1MTIsW10sImYxZTgiLCJNMzU5LjQgMTAzLjVsLTM4LjYgMCAwIDEwOS43IDM4LjYgMCAwLTEwOS43ek0yNTMuMiAxMDNsLTM4LjYgMCAwIDEwOS44IDM4LjYgMCAwLTEwOS44ek04OSAwbC05Ni41IDkxLjQgMCAzMjkuMiAxMTUuOCAwIDAgOTEuNCA5Ni41LTkxLjQgNzcuMyAwIDE3My44LTE2NC42IDAtMjU2LTM2Ni45IDB6TTQxNy4zIDIzNy44bC03Ny4yIDczLjEtNzcuMiAwLTY3LjYgNjQgMC02NC04Ni45IDAgMC0yNzQuMyAzMDguOSAwIDAgMjAxLjJ6Il19LFNFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJraWNrc3RhcnRlci1rIixpY29uOls0NDgsNTEyLFtdLCJmM2JjIiwiTTM1Ni43IDI1Ni4ybDQwLjgtNDAuNWM0Mi4yLTQxLjkgNDIuMi0xMTAuMyAwLTE1Mi4xcy0xMTEtNDEuOS0xNTMuMiAwTDIyOS4zIDc4LjRDMjA5LjYgNTAuMyAxNzcuMSAzMiAxNDAuMiAzMiA4MC41IDMyIDMyIDgwLjIgMzIgMTM5LjVsMCAyMzNjMCA1OS40IDQ4LjUgMTA3LjUgMTA4LjIgMTA3LjUgMzcuMSAwIDY5LjMtMTguMyA4OS00Ni40bDE0LjkgMTQuN2M0Mi4yIDQxLjkgMTExIDQxLjkgMTUzLjIgMHM0Mi4yLTExMC4zIDAtMTUyLjFsLTQwLjgtNDAgLjEgMHoiXX0sX0V0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyaXRpY2FsLXJvbGUiLGljb246WzQ0OCw1MTIsW10sImY2YzkiLCJNMjI1LjggMGMuMyAuMiAyMTYuNiAxMjQuNSAyMTcuMSAxMjQuNyAzIDEuMiAzLjcgMy41IDMuNyA2LjYtLjEgODMuNC0uMSAxNjYuOSAwIDI1MC40IC4xIDEuMi0uMiAyLjQtLjggMy40cy0xLjUgMS45LTIuNiAyLjRjLTIxLjQgMTItMjA3LjkgMTE4LjMtMjE4LjkgMTI0LjZsLTMgMGMtNzkuMy00NS43LTIxOC4zLTEyNS40LTIxOC40LTEyNS41LS42LS4zLTEuMS0uNy0xLjQtMS4zcy0uNS0xLjItLjQtMS45YzAtLjkgMC0yMjUuOS0uMS0yNTMuMS0uMS0xIC4yLTIgLjctMi45czEuMy0xLjYgMi4yLTJDMjcuMiAxMTIuMSAyMTMuMiA2IDIyNC4xIDBsMS44IDB6TTIxNS40IDIwLjRsLS4yLS4yYy02NC43IDM2LjktMTI5LjUgNzMuNy0xOTQuMiAxMTAuNiAwIC4xIC4xIC4yIC4xIC40TDUyIDE0Mi45Yy03LjcgNi04LjMgNi0xMC42IDUuMS0uMSAwLTI0LjItOS4zLTI2LjgtMTBsMCAyMzAuNGMuOS0xLjQgNjQuMS0xMTAuOSA2NC4xLTExMSAxLjYtMi44IDMtMS45IDkuMS0xLjUgMS40IC4xIDEuNSAuMiAuOCAxLjQtNDEuMiA3MS4zLTM2LjQgNjMtNjcuNSAxMTYuOS0uOCAxLjQtLjYgMS4xIDEuMiAxLjFsMTg2LjUgMGMxLjQgMCAxLjctLjIgMS43LTEuNmwwLTguOWMwLTEuMyAyLjQtLjgtMTguNC0xLTcuNS0uMS0xNC4xLTMuMi0yMS40LTEyLjctNy40LTkuNy0xNC42LTE5LjQtMjEuOC0yOS4yLTIuMy0zLjEtMy40LTIuNC0xNi44LTIuNC0xLjggMC0xLjggMC0xLjggMS44IC4zIDI2LjIgLjIgMjUuMyAxIDMyLjcgLjUgNC40IDIuMiA0LjIgOS43IDQuOCAzLjEgLjMgMy45IDQuMSAuNSA0LjktMS42IC40LTMxLjYgLjUtMzMuNy0uMS0uNS0uMS0xLS41LTEuMy0uOXMtLjUtMS0uNC0xLjYgLjMtMS4xIC42LTEuNSAuOS0uNyAxLjQtLjhjMy4zLS44IDYuMiAuOCA2LjctNC40IDEuMy0xMy43IDEuMi05IDEuMS03OS40IDAtMTAuOC0uNC0xMi42LTUuNC0xMy42LTEuMi0uMi0zLjUtLjItNC43LS42LTIuOS0xLTItNC44IDEuOC00LjggMzMuNyAwIDQ2LjEtMS4xIDU2LjEgNC45IDcuNyA0LjYgMTIgMTEuNSAxMi41IDIwLjQgLjkgMTQuNi02LjUgMjIuMy0xNSAzMi42LS4yIC4xLS4zIC4zLS40IC41cy0uMSAuNC0uMSAuNiAwIC40IC4xIC42IC4yIC40IC40IC41YzIuNiAzLjIgNSA2LjYgNy43IDkuOCAyNy42IDMzLjIgMjQuMSAzMC41IDQxLjMgMzMuMSAuOSAuMSAxLS40IDEtMS4ybDAtMTFjMC0xIC4zLTEuNCAxLjQtMS4zIDcuOCAxLjIgMTUuOCAxLjEgMjMuNi0uMyAxLjEtLjEgMS41IC4yIDEuNSAxLjMgMCAuMSAuOSAyNi43IC45IDI2LjggMCAxLjUgLjcgMS42IDEuOSAxLjZsMTg2LjcgMGMtMjcuMi00Ny01NC4yLTk0LTgxLjItMTQwLjggMi4zLS43LS40IDAgNi43LTEuNCAyLS40IDIuMS0uNCAzLjEgMS40IDcuMyAxMi42IDc3LjMgMTM0IDc3LjQgMTM0LjFsMC0yMzAuNGMtMS43IC41LTEwMy4zIDM4LjctMTA1LjggMzkuNy0xLjEgLjQtMS41IC4yLTEuOS0uOS0uNi0xLjktMS4zLTMuOC0yLjEtNS42LS4zLS44LS4xLTEuMSAuNi0xLjQgLjEgMCA5NS41LTM1LjggMTAzLTM4LjgtNjUuNC0zNy42LTEzMC42LTc1LTE5Ni0xMTIuNmw4Ni44IDE1MC40LS4zIC4zYy05LjYtLjktMTAuNS0xLjYtMTEuOC0zLjktMS0xLjctNzMuNS0xMjcuNy04Mi0xNDIuMi05LjEgMTQuNy04My42IDE0Ni4yLTg1LjQgMTQ2LjMtMi45IC4yLTUuOSAuMS05LjIgLjEgMjguOC00OS44IDU3LjYtOTkuNSA4Ni4yLTE0OWwwIDB6bTUxLjkgMTI5LjljMS45LS4xIDMuNy0uNCA1LjUtLjggMS43LS4zIDIuNSAuMiAyLjYgMS45IDAgLjEgLjEgMTkuMS0uOSAyMC41cy0xLjkgMS4yLTIuNi0uMmMtNS05LjcgNi4yLTkuNy0zOS4xLTEyLS43IDAtMSAuMi0xIC45IDAgLjEgMy43IDEyMiAzLjcgMTIyLjEgMCAuOSAuNSAxLjIgMS4yIDEuNSAzIDEuMiA1LjkgMi41IDguNyA0IDcuMyA0LjMgMTEuNCAxMC44IDEyLjQgMTkuMyAxLjQgMTEuOC0yLjggMzUuOC0zMi4yIDM3LjEtMi44IC4xLTI4LjMgMS4xLTM0LjEtMjMuMy00LjctMTkuMyA4LjMtMzIuNyAxOS45LTM2LjQgLjYtLjEgMS4yLS40IDEuNS0uOXMuNS0xLjEgLjUtMS43Yy4xLTUuNiAzLTEwNy4xIDMuNy0xMjEuMyAwLTEuMS0uNi0xLjItMS40LTEuMS0zMi4zIC41LTM2LjctLjMtNDAuMiA4LjUtMi40IDYuMi00LjEgMS4zLTQgLjIgMS4xLTYgMi4yLTEyIDMuMy0xOCAuNC0yLjEgMS40LTIuNiAzLjQtMS45IDUuNiAyLjEgNi43IDEuNyAzNy4yIDEuOSAxLjcgMCAxLjgtLjEgMS44LTEuOCAuNy0yNy41IC42LTIyLjYgMS0yOS42IC4xLS42LS4xLTEuMi0uMy0xLjdzLS43LS45LTEuMy0xLjFjLTUuNi0yLjktOC44LTcuNi04LjktMTMuOS0uNC0xNC44IDE3LjctMjEuNyAyNy40LTExLjUgNi44IDcuMiA1LjggMTguOS0yLjUgMjQuMi0uOCAuNC0xLjQgMS4xLTEuOCAxLjhzLS42IDEuNi0uNCAyLjVjMCAuNi0uMS00LjMgMSAzMCAwIC45IC40IDEuMSAxLjIgMS4xIC4xIDAgMjMtLjEgMzQuNS0uNGwwLS4xek02OC4zIDE0MS43YzE5LjgtNC41IDMyLjctLjYgNTIuNSAxLjcgMi44IC4zIDMuNyAxLjIgMy42IDQtLjIgNS0xLjIgMjIuMy0xLjIgMjMuMSAwIC41LS4yIDEtLjUgMS40cy0uNyAuNy0xLjIgLjljLTQuMSAxLjctMy42LTQuNC00LTcuMy0zLjEtMjIuNC03My45LTMyLjctNzQuNiAyNS40LS4zIDIzLjkgMTcgNTMuNiA1NC4xIDUwLjkgMjcuMi0yIDE5LTIwLjIgMjQuOC0yMC41IC40LS4xIC45IDAgMS4zIC4xcy44IC40IDEuMSAuNyAuNSAuNyAuNiAxLjIgLjEgLjkgMCAxLjNjLTEuOCAxMC44LTMuNCAxOS0zLjQgMTkuMi0xLjUgOS4yLTg2LjcgMjIuMS05My40LTQyLjEtMi43LTI1LjggMTAuNC01My40IDQwLjMtNjAuMnptODAgODcuN2wtMTkuNSAwYy0uNiAwLTEuMi0uMS0xLjYtLjRzLS44LS44LTEtMS40YzIuNC0zLjggNS45IC45IDUuOS02LjEtLjEtMjUuOCAuMi0zOCAuMi00MC4xIDAtMy40LS41LTQuNi0zLjMtNC45LTctLjctMy4xLTMuNC0xLjEtMy40IDExLjgtLjEgMjIuNi0uMiAzMCAuNyA4LjggMS4xIDE2LjcgMTIuNiA3LjkgMjIuNi0yIDIuMi00IDQuNC02LjEgNi43IDEgMS4yIDYuOSA4LjggMTcuMyAxOS43IDIuNyAyLjggNi4yIDMuNSA5LjkgMy4xIC42IDAgMS4xLS4yIDEuNS0uNnMuNy0uOSAuNy0xLjVjLjMtMy40IC4zIDQuNyAuNC00MC42IDAtNS42LS4zLTYuNi0zLjItNi44LTQtLjQtNC0yLjMtLjctMy40bDE5LjEtLjFjLjMgMCA0LjUgLjUgMSAzLjQgMCAwLS4yIDAtLjIgMC0zLjYgLjMtMy45IDEtNCA0LjYtLjMgNDMuOSAuMSA0MC4yIC40IDQyLjggLjEgLjggLjMgMi4yIDUuMSAyLjEgMi41IDAgMy45IDMuNCAwIDMuNC0xMC40IC4xLTIwLjcgMC0zMS4xIC4xLTEwLjcgMC0xMy41LTYuMi0yNC4yLTIwLjgtMS42LTIuMi04LjMtMi40LTguMi0uNCAuOSAxNi41IDAgMTcuOCA0IDE3LjcgNC44LS4xIDQuNyAzLjYgLjggMy41bC4xIDB6bTI3NS0xMC4xYy0xLjIgNy4xIC4yIDEwLjQtNS4zIDEwLjMtNjEuNS0uNC00Ny44LS4yLTUwLjctLjMtMS4yLS4xLTIuNC0uNC0zLjYtLjctMi41LS42IDEuNS0xLjItLjQtNS42LTEuNC0zLjQtMi44LTYuOC00LjEtMTAuMi0uMS0uNC0uNC0uOC0uNy0xLjFzLS44LS40LTEuMy0uNGMtNC45LS4yLTkuNy0uMi0xNC42IC4xLS4zIDAtLjYgLjItLjkgLjNzLS41IC40LS43IC43Yy0xLjYgMy42LTMuMSA3LjMtNC41IDExLTEuMyAzLjIgNy45IDEuMyAxMi4yIDIuMiAzIC42IDQuNSAzLjcgLjcgMy43bC0yNi40IDBjLTIuOSAwLTMuMS0zLjItLjctMy4yIDEuMiAuMSAyLjQtLjIgMy41LS45czEuOS0xLjUgMi40LTIuNmMxLjUtMyAyLjgtNiA0LjEtOS4xIDE4LjItNDIuMSAxNy4xLTQwLjIgMTguNC00MS42IC4yLS4yIC40LS40IC43LS42cy42LS4yIC44LS4yIC42IC4xIC44IC4yIC41IC4zIC43IC42YzIuOSAzLjMgMTguNCA0NC43IDIzLjYgNTEuOSAyIDIuNyA1LjcgMiA2LjQgMiAzLjYgLjEgNC0xLjEgNC4xLTQuMyAuMS0xLjkgLjEgMS4yIC4xLTQxLjIgMC00LjUtMi40LTMuNy01LjYtNC4zLS4zIDAtMi42LS42LS4xLTMuMSAuMi0uMi0uOS0uMiAyMS43LS4yIDIuMyAwIDUuMyAyLjgtMS4yIDMuNC0uNCAwLS43IDAtMS4xIC4ycy0uNiAuMy0uOSAuNi0uNCAuNi0uNiAuOS0uMiAuNy0uMSAxLjFjLS4xIDEuNi0uMiAzOC45IC4zIDQxLjIgLjIgLjcgLjYgMS40IDEuMiAxLjhzMS4zIC43IDIuMSAuNmMxMy4zIC40IDE0LjkgLjQgMTYtMy40IDEuNy01LjggNC4xLTIuNSAzLjctLjJsMCAuMXpNMzE4LjYgMjgzLjZjLTQuMiAwLTQuNC0zLjQtLjYtMy40IDM1LjktLjIgMjguMSAuNCAzNy4yLS42IDEuNy0uMiAyLjQgLjIgMi4zIDEuOS0uMyAzLjQtLjYgNi44LTEgMTAuMi0uMiAyLjItMy4yIDIuNi0zLjQtLjItLjQtNS4zLTIuMi00LjUtMTUuNi01LjEtMS42LS4xLTEuNiAwLTEuNiAxLjVsMCAxNi4xYzAgMS43IDAgMS42IDEuNiAxLjUgMy4xLS4yIDEwLjMgLjMgMTUuNy0xLjUgLjUtLjIgMy4zLTEuOCAzLjEgMS44IDAgLjItLjggMTAuNC0xLjIgMTEuNC0uNSAxLjMtMS45IDEuNS0yLjYgLjMtMS4yLTIgMC01LjEtMy43LTUuMy0xNS40LS45LTEyLjktMi41LTEyLjkgNiAwIDEyLjMtLjggMTYuMSAzLjkgMTYuMiAxNi42IC41IDE0LjQgMCAxNi40LTUuNyAuOC0yLjQgMy41LTEuOCAzLjIgLjYtLjQgMy4yLS44IDYuNC0xLjIgOS42IDAgLjQtLjIgMi40LTQuNyAyLjQtMzcuMi0uMS0zNC41LS4yLTM1LjItLjMtMi43LS41LTIuMi0zIC4yLTMuNCAxLjEtLjIgNCAuNSA0LjItMi42IDIuNC01Ni4yLS4xLTUxLjMtMy45LTUxLjNsMCAwem0tLjQtMTA5LjVjMi41IC42IDMuMSAxLjggMyA0LjYtLjMgNS4zLS4zIDktLjYgOS43LS43IDIuMi0zLjEgMi4xLTMuMy0uMy0uNC00LjgtMy03LjgtNy42LTkuMS0yNi4zLTcuNy0zMi44IDE1LjUtMjcuMiAzMC4yIDUuOSAxNS40IDIyIDE1LjkgMjguOSAxMy44IDUuOS0xLjkgNS45LTYuNSA2LjktNy42IDEuMi0xLjMgMi4yLTEuOCAzLjEgMS4xIDAgLjEgLjYgMTEuOS02IDEyLjctMS42IC4yLTE5LjQgMy43LTMyLjctMy40LTIxLTExLjItMTYuNy0zNS41LTYuOS00NS4zIDE0LTE0LjEgMzkuOS03LjEgNDIuMy02LjVsMCAwek0yODkuOCAyODAuMWMzLjMgMCAzLjcgMyAuMiAzLjQtMi42IC4zLTUtLjQtNSA1LjUgMCAyLS4yIDI5IC40IDQxLjQgLjEgMi4zIDEuMiAzLjUgMy40IDMuNyAyMiAxLjIgMTUtMS43IDE4LjgtNi4zIDEuOC0yLjIgMi44IC44IDIuOCAxLjEgLjMgMTMuNi00IDEyLjQtNS4yIDEyLjRsLTM4LjItLjJjLTEuOS0uMi0yLjEtMy0uNC0zLjQgMi0uNSA0LjkgLjQgNS4xLTIuOCAxLTE1LjkgLjYtNDQuNiAuMy00Ny44LS4zLTMuOC0yLjgtMy4zLTUuNy0zLjctMi41LS40LTItMy4yIC4zLTMuMiAxLjQgMCAxOCAwIDIzLjEgMHptLTMxLjYtNTcuOGMuMSA0LjEgMi45IDMuNSA2IDMuNiAyLjYgLjEgMi41IDMuNC0uMSAzLjQtNi41IDAtMTMuNyAwLTIxLjYtLjEtMy44IDAtMy40LTMuNCAwLTMuNCA0LjUgMCAzLjIgMS42IDMuNC00NS41IDAtNS4xLTMuMy0zLjUtNC43LTQuMi0yLjYtMS4yLTEuNC0zLjEgLjQtMy4yIDEuMyAwIDIwLjItLjQgMjEuMiAuMnMxLjkgMS42LS40IDIuOWMtMSAuNS0zLjktLjMtNC4yIDIuNSAwIC4yLS44IDEuNi0uMSA0My44bDAgMHpNMjIxLjMgNDk2LjZjLjUgLjMgMSAuNSAxLjYgLjVzMS4xLS4yIDEuNi0uNWMxNy05LjggMTgyLTEwMy42IDE5Ny40LTExMi41LS4xLS40IDExLjMtLjItMTgxLjUtLjMtMS4yIDAtMS42IC40LTEuNSAxLjYgMCAuMSAxLjMgNDQuNSAxLjIgNTAuNC0uMSAyLjYtLjYgNS4yLTEuNCA3LjctLjYgMS44IC40LS41LTEzLjUgMzIuMi0uNyAxLjctMSAyLjItMi0uMS00LjItMTAuMy04LjMtMjAuNy0xMi42LTMxLTEuNS0zLjQtMi4yLTcuMS0yLTEwLjggLjItMi41IC44LTE2LjEgMS41LTQ4IDAtMS45IDAtMi0yLTJsLTE4MyAwYzIuNiAxLjYgMTc4LjMgMTAyLjYgMTk2IDExMi44bC4xIDB6TTEzMC40IDMwNy45YzAgMi40IC40IDIuOCAyLjggMyAxMS41IDEuMiAyMSAzLjcgMjUuNi03LjMgNi0xNC41IDIuNy0zNC40LTEyLjUtMzguOC0yLS42LTE2LTIuOC0xNS45IDEuNSAwIDggMCAxMS42IDAgNDEuNnptMTA1LjgtMTVjMCAyLjEgMS4xIDM4LjcgMS4xIDM5LjEgLjMgOS45LTI1LjYgNS44LTI1LjItMi42IC4xLTIgMS40LTM3LjQgMS4xLTM5LjQtMTQuMSA3LjQtMTQuNCA0MC4yIDYuNCA0OC44IDQgMS43IDguNCAxLjkgMTIuNSAuNnM3LjYtNCA5LjktNy43YzQuOS03LjggNi44LTI5LjUtNS40LTM5LS4xIC4xLS4yIC4xLS40IC4xbDAgMHptLTEyLjMtMTk4Yy05LjggMC05LjcgMTQuOC0uMSAxNC45czEwLjEtMTQuOSAuMS0xNC45bDAgMHpNMTQzLjcgMTk4LjZjMCAxLjggLjQgMi40IDIuMiAyLjYgMTMuNiAxLjQgMTIuNS0xMSAxMi4yLTEzLjQtMS43LTExLjItMTQuNC0xMC4yLTE0LjQtNy44IDAgNC41IDAgMTMuNyAwIDE4LjZ6TTM1NiAyMDVsLTYuMS0xNS44Yy0yLjIgNS41LTQuMiAxMC42LTYuMiAxNS44bDEyLjMgMHoiXX0sTUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0ZWFtLXN5bWJvbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmNiIsIk0yNzMuNSAxNzcuNWE2MSA2MSAwIDEgMSAxMjIgMCA2MSA2MSAwIDEgMSAtMTIyIDB6bTE3NC41IC4yYzAgNjMtNTEgMTEzLjgtMTEzLjcgMTEzLjhMMjI1IDM3MS4zYy00IDQzLTQwLjUgNzYuOC04NC41IDc2LjgtNDAuNSAwLTc0LjctMjguOC04My02N0wwIDM1OCAwIDI1MC43IDk3LjIgMjkwYzE1LjEtOS4yIDMyLjItMTMuMyA1Mi0xMS41bDcxLTEwMS43QzIyMC43IDExNC41IDI3MS43IDY0IDMzNC4yIDY0IDM5NyA2NCA0NDggMTE1IDQ0OCAxNzcuN3pNMjAzIDM2M2MwLTM0LjctMjcuOC02Mi41LTYyLjUtNjIuNS00LjUgMC05IC41LTEzLjUgMS41bDI2IDEwLjVjMjUuNSAxMC4yIDM4IDM5IDI3LjcgNjQuNS0xMC4yIDI1LjUtMzkuMiAzOC02NC43IDI3LjUtMTAuMi00LTIwLjUtOC4zLTMwLjctMTIuMiAxMC41IDE5LjcgMzEuMiAzMy4yIDU1LjIgMzMuMiAzNC43IDAgNjIuNS0yNy44IDYyLjUtNjIuNXpNNDEwLjUgMTc3LjdhNzYuNCA3Ni40IDAgMSAwIC0xNTIuOCAwIDc2LjQgNzYuNCAwIDEgMCAxNTIuOCAweiJdfSx6RXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFpbGNoaW1wIixpY29uOls0NDgsNTEyLFtdLCJmNTllIiwiTTMzMSAyNDMuNWMzLjEtLjQgNi4yLS40IDkuMyAwIDEuNy0zLjggMi0xMC40IC41LTE3LjYtMi4yLTEwLjctNS4zLTE3LjEtMTEuNS0xNi4xcy02LjUgOC43LTQuMiAxOS40YzEuMyA2IDMuNSAxMS4xIDYgMTQuM2wwIDB6TTI3Ny40IDI1MmM0LjUgMiA3LjIgMy4zIDguMyAyLjEgMS45LTEuOS0zLjUtOS40LTEyLjEtMTMuMS01LTIuMS0xMC40LTIuOC0xNS44LTIuMnMtMTAuNSAyLjctMTQuOCA1LjhjLTMgMi4yLTUuOCA1LjItNS40IDcuMSAuOSAzLjcgMTAtMi43IDIyLjYtMy41IDctLjQgMTIuOCAxLjggMTcuMyAzLjdsMCAwem0tOSA1LjFjLTkuMSAxLjQtMTUgNi41LTEzLjUgMTAuMSAuOSAuMyAxLjIgLjggNS4yLS44IDYtMi4zIDEyLjQtMi45IDE4LjctMS45IDIuOSAuMyA0LjMgLjUgNC45LS41IDEuNS0yLjItNS43LTgtMTUuNC02LjlsMCAwem01NC4yIDE3LjFjMy40LTYuOS0xMC45LTEzLjktMTQuMy03czEwLjkgMTMuOSAxNC4zIDdsMCAwem0xNS43LTIwLjVjLTcuNy0uMS04IDE1LjgtLjMgMTUuOXM4LTE1LjggLjMtMTZsMCAwek0xMTkuNSAzMzIuN2MtMS4zIC4zLTYgMS41LTguNS0yLjMtNS4yLTggMTEuMS0yMC40IDMtMzUuOC05LjEtMTcuNS0yNy44LTEzLjUtMzUtNS41LTguNyA5LjYtOC43IDIzLjUtNSAyNC4xIDQuMyAuNiA0LjEtNi41IDcuNC0xMS42IC45LTEuNCAyLjEtMi42IDMuNS0zLjZzMy0xLjYgNC42LTIgMy40LS40IDUgMCAzLjMgMSA0LjcgMS45YzExLjYgNy42IDEuNCAxNy44IDIuMyAyOC42IDEuNCAxNi43IDE4LjQgMTYuNCAyMS42IDkgLjItLjQgLjMtLjggLjMtMS4ycy0uMi0uOC0uNS0xLjFjMCAuOSAuNy0xLjMtMy40LS40bDAgMHptMjk5LjctMTcuMWMtMy4zLTExLjctMi42LTkuMi02LjgtMjAuNSAyLjQtMy43IDE1LjMtMjQtMy4xLTQzLjMtMTAuNC0xMC45LTMzLjktMTYuNS00MS4xLTE4LjUtMS41LTExLjQgNC42LTU4LjctMjEuNS04MyAyMC44LTIxLjYgMzMuOC00NS4zIDMzLjctNjUuNy0uMS0zOS4yLTQ4LjItNTEtMTA3LjQtMjYuNWwtMTIuNSA1LjNjLS4xIDAtMjIuNy0yMi4zLTIzLjEtMjIuNi02Ny41LTU4LjktMjc4LjggMTc1LjktMjExLjMgMjMyLjlsMTQuOCAxMi41Yy00IDEwLjctNS40IDIyLjItNC4xIDMzLjUgMy40IDMzLjQgMzYgNjAuNCA2Ny41IDYwLjQgNTcuNyAxMzMuMSAyNjcuOSAxMzMuMyAzMjIuMyAzIDEuNy00LjUgOS4xLTI0LjYgOS4xLTQyLjRzLTEwLjEtMjUuMy0xNi41LTI1LjNsMCAwem0tMzE2IDQ4LjJjLTIyLjgtLjYtNDcuNS0yMS4xLTQ5LjktNDUuNS02LjItNjEuMyA3NC4zLTc1LjMgODQtMTIuMyA0LjUgMjkuNi00LjcgNTguNS0zNC4xIDU3LjhsMCAwek04NC43IDI0OS42Yy0xNS4yIDMtMjguNSAxMS41LTM2LjcgMjMuNS00LjktNC4xLTE0LTEyLTE1LjYtMTUtMTMtMjQuOCAxNC4yLTczIDMzLjMtMTAwLjIgNDcuMS02Ny4yIDEyMC45LTExOC4xIDE1NS0xMDguOSA1LjUgMS42IDIzLjkgMjIuOSAyMy45IDIyLjlzLTM0LjEgMTguOS02NS44IDQ1LjNDMTM2LjIgMTUwIDEwNCAxOTcuNyA4NC43IDI0OS42ek0zMjMuNiAzNTAuN3MtMzUuNyA1LjMtNjkuNS03LjFjNi4yLTIwLjIgMjcgNi4xIDk2LjQtMTMuOCAxNS4zLTQuNCAzNS40LTEzIDUxLTI1LjQgMy40IDcuOCA1LjggMTUuOSA3LjEgMjQuMyAzLjctLjcgMTQuMi0uNSAxMS40IDE4LjEtMy4zIDE5LjktMTEuNyAzNi0yNS45IDUwLjgtOC45IDkuNi0xOS40IDE3LjUtMzEuMiAyMy4zLTYuNSAzLjQtMTMuMyA2LjMtMjAuMyA4LjYtNTMuNSAxNy41LTEwOC4zLTEuNy0xMjYtNDMtMS40LTMuMS0yLjYtNi40LTMuNi05LjctNy41LTI3LjItMS4xLTU5LjggMTguOC04MC40IDEuMi0xLjMgMi41LTIuOSAyLjUtNC44LS4yLTEuNy0uOC0zLjMtMS45LTQuNS03LTEwLjEtMzEuMi0yNy40LTI2LjMtNjAuOCAzLjUtMjQgMjQuNS00MC45IDQ0LjEtMzkuOWw1IC4zYzguNSAuNSAxNS45IDEuNiAyMi45IDEuOSAxMS43IC41IDIyLjItMS4yIDM0LjYtMTEuNiA0LjItMy41IDcuNi02LjUgMTMuMy03LjUgMi4zLS42IDQuNy0uNyA3LS4zczQuNiAxLjIgNi42IDIuNWMxMCA2LjYgMTEuNCAyMi43IDExLjkgMzQuNSAuMyA2LjcgMS4xIDIzIDEuNCAyNy42IC42IDEwLjcgMy40IDEyLjIgOS4xIDE0IDMuMiAxIDYuMiAxLjggMTAuNSAzLjEgMTMuMiAzLjcgMjEgNy41IDI2IDEyLjMgMi41IDIuNSA0LjIgNS44IDQuNyA5LjMgMS42IDExLjQtOC44IDI1LjQtMzYuMyAzOC4yLTQ2LjcgMjEuNy05My43IDE0LjQtMTAwLjUgMTMuNy0yMC4yLTIuNy0zMS42IDIzLjMtMTkuNSA0MS4xIDIyLjYgMzMuNCAxMjIuNCAyMCAxNTEuNC0yMS40IC43LTEgLjEtMS42LS43LTEtNDEuOCAyOC42LTk3LjEgMzguMi0xMjguNSAyNi00LjgtMS44LTE0LjctNi40LTE1LjktMTYuNyA0My42IDEzLjUgNzEgLjcgNzEgLjdzMi0yLjgtLjYtMi41ek0xNzEuNyAxNTcuNWMxNi43LTE5LjQgMzcuNC0zNi4yIDU1LjgtNDUuNiAuMS0uMSAuMy0uMSAuNS0uMXMuMyAuMSAuNCAuMiAuMiAuMyAuMiAuNCAwIC4zLS4xIC41Yy0xLjUgMi43LTQuMyA4LjMtNS4yIDEyLjcgMCAuMSAwIC4zIDAgLjRzLjIgLjMgLjMgLjQgLjMgLjEgLjQgLjEgLjMgMCAuNC0uMWMxMS41LTcuOCAzMS41LTE2LjIgNDktMTcuMyAuMiAwIC4zIDAgLjUgLjFzLjIgLjIgLjMgLjQgLjEgLjMgMCAuNS0uMSAuMy0uMyAuNGMtMi45IDIuMi01LjUgNC44LTcuNyA3LjctLjEgLjEtLjEgLjItLjEgLjRzMCAuMyAuMSAuNCAuMiAuMiAuMyAuMyAuMiAuMSAuNCAuMWMxMi4zIC4xIDI5LjcgNC40IDQxIDEwLjcgLjggLjQgLjIgMS45LS42IDEuNy02OS41LTE1LjktMTIzLjEgMTguNS0xMzQuNSAyNi44LS4yIC4xLS4zIC4xLS41IC4xcy0uMy0uMS0uNS0uMi0uMi0uMy0uMi0uNSAuMS0uNCAuMi0uNWwtLjEgMHoiXX0sQ0V0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imx1bW9uIixpY29uOls2NDAsNTEyLFtdLCJlN2UyIiwiTTQ1Mi41IDIyMy41YzkuOCAwIDE2LjUgNi4zIDE2LjUgMTYuNmwwIDMxLjhjMCAxMC4zLTYuNiAxNi42LTE2LjYgMTYuNmwtNTYuMiAwYy05LjggMC0xNi41LTYuMy0xNi41LTE2LjZsMC0zMS44YzAtMTAuMyA2LjctMTYuNiAxNi41LTE2LjZsNTYuMyAwem0tMjUuNyAxMy4xYy0xLjUtMi42LTMuMi0yLjYtNC42IDBsLTEwLjcgMTcuNmMtMS43IDIuNC0yLjYgNS4xLTIuNiA4LjIgMCA3LjkgNi45IDE0LjYgMTUuNiAxNC42IDguNSAwIDE1LjYtNi43IDE1LjYtMTQuNiAwLTMtMS01LjgtMi43LTguMmwtMTAuNy0xNy42ek04NS44IDIyMy44YzEgMCAxLjUgLjYgMS41IDEuNWwwIDUwLjMgNjQuNiAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDkuN2MwIC45LS42IDEuNS0xLjYgMS41bC03OC40IDBjLTEgMC0xLjYtLjYtMS42LTEuNWwwLTYxLjRjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDB6bTg4LjMgMGMxIDAgMS41IC42IDEuNSAxLjVsMCA0NWMwIDQgMiA1LjIgNS43IDUuMmw0Ni45IDBjMy44IDAgNS43LTEuMyA1LjctNS4ybDAtNDVjMC0uOSAuNS0xLjUgMS41LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNDZjMCAxMC41LTUuMyAxNi44LTE3LjYgMTYuOGwtNTQgMGMtMTIuMyAwLTE3LjYtNi4zLTE3LjYtMTYuOGwwLTQ2YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem0xMDguMiAwYzEgMCAxLjYgLjUgMi4yIDEuNGwzMC41IDQ2LjQgMS40IDAgMzAuNS00Ni40Yy42LS45IDEuMi0xLjQgMi4yLTEuNGwxOCAwYzEgMCAxLjUgLjYgMS41IDEuNWwwIDYxLjRjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC00My44LTEuMSAwLTI4LjcgNDMuOGMtLjYgLjktMS4zIDEuNS0yLjQgMS41bC0xMC43IDBjLTEgMC0xLjctLjYtMi4zLTEuNWwtMjguNy00My44LTEuMSAwIDAgNDMuOGMwIC45LS41IDEuNS0xLjUgMS41bC0xMi4zIDBjLTEgMC0xLjYtLjYtMS42LTEuNWwwLTYxLjRjMC0uOSAuNi0xLjUgMS42LTEuNWwxNy45IDB6bTIxNC40IDBjLjkgMCAxLjMgLjQgMi4yIDEuMWw1Mi43IDQ2LjMgMS4zIDAgMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA2MS40YzAgLjktLjYgMS41LTEuNiAxLjVsLTE0LjQgMGMtMSAwLTEuNC0uNC0yLjMtMS4xbC01Mi42LTQ2LjMtMS40IDAgMCA0NmMwIC45LS41IDEuNS0xLjUgMS41bC0xMi4zIDBjLTEgMC0xLjYtLjYtMS42LTEuNWwwLTYxLjRjMC0uOSAuNi0xLjUgMS42LTEuNWwxNC40IDB6TTMyMCAxMTQuMWM4Ny45IDAgMTY3LjcgMTUuNyAyMjUuNSA0MWwyLjcgMS4yQzU4Ny4xIDE3My44IDY0MCAyMDYuNSA2NDAgMjU2cy01Mi45IDgyLjItOTEuOCA5OS42bC0yLjcgMS4yYy01Ny44IDI1LjQtMTM3LjYgNDEtMjI1LjUgNDEtNzYuMiAwLTE1NS4xLTEwLjUtMjI1LjUtNDEtMzkuNi0xNy40LTk0LjUtNTAuMy05NC41LTEwMC44czU0LjktODMuNSA5NC41LTEwMC44YzcwLjQtMzAuNSAxNDkuMy00MSAyMjUuNS00MXptLTg4LjkgMjI5YzIwLjMgMjkgNTIuOCA0OS42IDg4LjkgNDkuNiAzNi4yIDAgNjguNy0yMC42IDg5LTQ5LjdsLTE3Ny45IC4xem0tOTYuMSAwYzQzLjMgMjkuNyA5Ni43IDQzLjUgMTQ4LjQgNDgtMjQuMi05LjEtNDQuNC0yNi43LTU4LjYtNDguMWwtODkuOSAwem0yODAuMy0uMWMtMTQuMiAyMS40LTM0LjQgMzkuMS01OC42IDQ4LjEgNTEuOC00LjUgMTA1LjMtMTguMyAxNDguNi00OC4ybC05MCAwem0tMzM3LjQgLjFjNDQuMSAyMy4xIDkzLjcgMzUuNCAxNDIuNyA0Mi42LTMzLjQtOC42LTY2LjUtMjEuOS05NC40LTQyLjZsLTQ4LjMgMHptNDM2LjItLjJjLTI3LjkgMjAuOC02MS4xIDM0LjItOTQuNiA0Mi44IDQ3LjMtNi45IDg5LjYtMTguNSAxMjMuOS0zMy42bDEuNy0uOGM2LjEtMi43IDExLjktNS41IDE3LjQtOC40bC00OC41IDB6TTUyMCAxNzMuNmMxMC43IDguNyAxOS44IDE4LjEgMjcgMjguMiAuNCAuNiAuNSAxLjMgLjEgMnMtMSAxLTEuNyAxbC0xLjYgMGMtLjYgMC0xLjItLjMtMS41LS44LTcuOS0xMC45LTE4LjItMjEuMS0zMC42LTMwLjRsLTkzLjUgMGM1LjQgOC44IDkuOSAxOC41IDEzLjQgMjguNiAuMiAuNiAuMSAxLjItLjIgMS43cy0uOSAuOC0xLjYgLjhsLTEuNCAwYy0uOCAwLTEuNS0uNS0xLjgtMS4zLTMuOC0xMC43LTguNy0yMC44LTE0LjUtMjkuOWwtMTg0LjMgLjFjLTUuOCA5LjEtMTAuNyAxOS4xLTE0LjQgMjkuOC0uMyAuOC0xIDEuMy0xLjggMS4zbC0xLjQgMGMtLjYgMC0xLjItLjMtMS42LS44cy0uNS0xLjEtLjItMS43YzMuNS0xMC4yIDgtMTkuNyAxMy40LTI4LjZsLTkzLjYgMGMtMTIuMyA5LjMtMjIuNiAxOS40LTMwLjQgMzAuMy0uNCAuNS0uOSAuOC0xLjUgLjhsLTEuNiAwYy0uNyAwLTEuNC0uNC0xLjctMXMtLjMtMS40IC4xLTJjNy42LTEwLjUgMTYuNy0xOS45IDI2LjgtMjhsLTUxIDBjLTI4LjkgMTYuNi02MiA0My4zLTYzLjUgNzkuN2w0NC43IDBjLjUgMCAxIC4yIDEuMyAuNnMuNiAuOCAuNiAxLjNsMCAxLjNjMCAxLjEtLjkgMS45LTEuOSAxLjlsLTQ0LjcgMEM2LjggMjk1IDQwIDMyMS43IDY5IDMzOC4zbDUwLjkgMGMtMTAuMy04LjQtMTkuMS0xNy40LTI2LjEtMjdsLS44LTEuMWMtLjQtLjYtLjUtMS4zLS4xLTJzMS0xIDEuNy0xbDEuNiAwIC4yIDBjLjUgLjEgMSAuMyAxLjMgLjggNy45IDEwLjkgMTguMSAyMSAzMC41IDMwLjNsOTMuNiAwYy01LjMtOC44LTkuOC0xOC40LTEzLjQtMjguNS0uMi0uNi0uMS0xLjIgLjItMS43cy45LS44IDEuNi0uOGwxLjQgMCAuMiAwYy43IC4xIDEuNCAuNiAxLjcgMS4zIDMuOCAxMC43IDguNiAyMC43IDE0LjQgMjkuOGwxODQuNS0uMWM1LjgtOS4xIDEwLjYtMTkuMSAxNC40LTI5LjdsLjEtLjFjLjMtLjcgMS0xLjEgMS43LTEuMWwxLjQgMGMuNiAwIDEuMiAuMyAxLjYgLjhzLjUgMS4yIC4yIDEuN2MtMy41IDEwLjEtOCAxOS43LTEzLjMgMjguNWw5My43IDBjMTIuMy05LjMgMjIuNS0xOS40IDMwLjMtMzAuMmwuMS0uMmMuNC0uNCAuOS0uNiAxLjQtLjZsMS42IDBjLjcgMCAxLjQgLjQgMS43IDFzLjMgMS40LS4xIDJjLTcuMSAxMC0xNi4xIDE5LjMtMjYuNyAyNy45bDUxLjEgMGMyOC44LTE2LjYgNjEuOC00My4zIDYzLjQtNzkuNmwtNDQuNyAwYy0xIDAtMS45LS45LTEuOS0xLjlsMC0xLjNjMC0xLjEgLjktMS45IDEuOS0xLjlsNDQuNyAwYy0xLjYtMzYuNS0zNC45LTYzLjMtNjMuOS03OS45bC01MC45IDB6TTIyMC41IDEyNi4yYy00OS4xIDcuMS05OC43IDE5LjUtMTQzIDQyLjdsNDguNCAwYzI3LjktMjAuOCA2MS0zNC4xIDk0LjUtNDIuN3ptNjIuOC01LjRjLTUxLjggNC41LTEwNS4yIDE4LjMtMTQ4LjYgNDguMWw5MCAwYzE0LjItMjEuNCAzNC40LTM5IDU4LjYtNDguMXptMzYuNi0xLjZjLTM2LjIgMC02OC43IDIwLjYtODkgNDkuN2wxNzcuOS0uMWMtMjAuMy0yOS4xLTUyLjctNDkuNi04OC45LTQ5LjZ6bTM2LjYgMS42YzI0LjIgOS4xIDQ0LjQgMjYuNiA1OC41IDQ4bDg5LjggMGMtNDMuMy0yOS43LTk2LjYtNDMuNS0xNDguMy00OHptNjIuOCA1LjRjMzMuNCA4LjUgNjYuNCAyMS45IDk0LjMgNDIuNWw0OC4zIDBjLTQ0LjEtMjMuMS05My42LTM1LjQtMTQyLjYtNDIuNXoiXX0sVEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im51dHJpdGlvbml4IixpY29uOls0NDgsNTEyLFtdLCJmM2Q2IiwiTTExMiA4LjFTMjQ1LjQtLjEgMjMzIDExMi41YzAgMCAxOS4xLTc0LjkgMTAzLTQwLjYgMCAwLTE3LjcgNzQtODggNTYgMCAwIDE0LjYtNTQuNiA2Ni4xLTU2LjYgMCAwLTM5LjktMTAuMy04Mi4xIDQ4LjggMCAwLTE5LjgtOTQuNS05My42LTk5LjcgMCAwIDc1LjIgMTkuNCA3Ny42IDEwNy41IDAgLjEtMTA2LjQgNy0xMDQtMTE5Ljh6TTQyNCAzMjMuN2MwIDQ4LjUtOS43IDk1LjMtMzIgMTMyLjMtNDIuMiAzMC45LTEwNSA0OC0xNjggNDgtNjIuOSAwLTEyNS44LTE3LjEtMTY4LTQ4LTIyLjMtMzctMzItODMuOC0zMi0xMzIuMyAwLTQ4LjQgMTcuNy05NC43IDQwLTEzMS43IDQyLjItMzAuOSA5Ny4xLTQ4LjYgMTYwLTQ4LjYgNjMgMCAxMTcuOCAxNy42IDE2MCA0OC42IDIyLjMgMzcgNDAgODMuMyA0MCAxMzEuN3pNMTQ0IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTIxNiA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0yODggNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMzYwIDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTM4NCAyNTZjLTQuOC0yMi4zLTcuNC0zNi45LTE2LTU2LTM4LjgtMTkuOS05MC41LTMyLTE0NC0zMlMxMTguOCAxODAuMSA4MCAyMDBjLTguOCAxOS41LTExLjIgMzMuOS0xNiA1NiA0Mi4yLTcuOSA5OC43LTE0LjggMTYwLTE0LjhzMTE3LjggNi45IDE2MCAxNC44eiJdfSwkRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZy1wbHVzIixpY29uOls1MTIsNTEyLFtdLCJmNGYxIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTA3IDIwNS42Yy00LjcgMC05IDIuOC0xMC43IDcuMmwtNCA5LjUtMTEtOTIuOGMtMS43LTEzLjktMjItMTMuNC0yMy4xIC40bC00LjMgNTEuNC01LjItNjguOGMtMS4xLTE0LjMtMjIuMS0xNC4yLTIzLjIgMGwtMy41IDQ0LjktNS45LTk0LjNjLS45LTE0LjUtMjIuMy0xNC40LTIzLjIgMGwtNS4xIDgzLjctNC4zLTY2LjNjLS45LTE0LjQtMjIuMi0xNC40LTIzLjIgMGwtNS4zIDgwLjItNC4xLTU3Yy0xLjEtMTQuMy0yMi0xNC4zLTIzLjItLjJsLTcuNyA4OS44LTEuOC0xMi4yYy0xLjctMTEuNC0xNy4xLTEzLjYtMjItMy4zbC0xMy4yIDI3LjctNDMuOSAwIDAgMjMuMiA1MS4zIDBjNC40IDAgOC40LTIuNSAxMC40LTYuNGwxMC43IDczLjFjMiAxMy41IDIxLjkgMTMgMjMuMS0uN2wzLjgtNDMuNiA1LjcgNzguM2MxLjEgMTQuNCAyMi4zIDE0LjIgMjMuMi0uMWw0LjYtNzAuNCA0LjggNzMuM2MuOSAxNC40IDIyLjMgMTQuNCAyMy4yLS4xbDQuOS04MC41IDQuNSA3MS44Yy45IDE0LjMgMjIuMSAxNC41IDIzLjIgLjJsNC42LTU4LjYgNC45IDY0LjRjMS4xIDE0LjMgMjIgMTQuMiAyMy4xIC4xbDYuOC04MyAyLjcgMjIuM2MxLjQgMTEuOCAxNy43IDE0LjEgMjIuMyAzLjFsMTgtNDMuNCA1MC41IDAgMC0yMy4yLTU4LjQgLjN6bS03OCA1LjJsLTIxLjkgMCAwIDIxLjljMCA0LjEtMy4zIDcuNS03LjUgNy41LTQuMSAwLTcuNS0zLjMtNy41LTcuNWwwLTIxLjktMjEuOSAwYy00LjEgMC03LjUtMy4zLTcuNS03LjUgMC00LjEgMy40LTcuNSA3LjUtNy41bDIxLjkgMCAwLTIxLjljMC00LjEgMy40LTcuNSA3LjUtNy41czcuNSAzLjMgNy41IDcuNWwwIDIxLjkgMjEuOSAwYzQuMSAwIDcuNSAzLjMgNy41IDcuNSAwIDQuMS0zLjQgNy41LTcuNSA3LjV6Il19LERFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWRoYXQiLGljb246WzUxMiw1MTIsW10sImY3YmMiLCJNMzQxLjUgMjg1LjZjMzMuNyAwIDgyLjMtNi45IDgyLjMtNDcgLjItNi43IC45LTEuOC0yMC45LTk2LjItNC42LTE5LjEtOC43LTI3LjgtNDIuMy00NC42LTI2LjEtMTMuMy04Mi45LTM1LjQtOTkuNy0zNS40LTE1LjcgMC0yMC4yIDIwLjItMzguOSAyMC4yLTE4IDAtMzEuMy0xNS4xLTQ4LjEtMTUuMS0xNi4xIDAtMjYuNyAxMS0zNC44IDMzLjYtMjcuNSA3Ny42LTI2LjMgNzQuMy0yNi4xIDc4LjMgMCAyNC44IDk3LjYgMTA2LjEgMjI4LjUgMTA2LjF6TTQyOSAyNTQuOGM0LjcgMjIgNC43IDI0LjMgNC43IDI3LjIgMCAzNy43LTQyLjMgNTguNi05OCA1OC42LTEyNS43IC4xLTIzNS45LTczLjYtMjM1LjktMTIyLjMgMC02LjggMS40LTEzLjUgNC4xLTE5LjctNDUuMiAyLjMtMTAzLjggMTAuMy0xMDMuOCA2MiAwIDg0LjcgMjAwLjYgMTg5IDM1OS41IDE4OSAxMjEuOCAwIDE1Mi41LTU1LjEgMTUyLjUtOTguNiAwLTM0LjItMjkuNi03My04Mi45LTk2LjJ6Il19LFo4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcGllZC1waXBlciIsaWNvbjpbNDQ4LDUxMixbInBpZWQtcGlwZXItc3F1YXJlIl0sImUwMWUiLCJNMzIuMSA0MTlsLTMyIDYwLjIgLjgtMzI4Qy45IDg1LjMgNTQuMSAzMiAxMjAuMSAzMmwzMjcuMiAwQzM1NC4zIDYwLjkgMjU3LjQgMTI2LjIgMTkzLjQgMjAwLjYgMTIyLjggMjgyIDgyLjcgMzM4IDMyLjEgNDE5em00MTYtMzg3UzMwNS4zIDk4LjggMjYxLjcgMTk5LjFjLTIzLjIgNTMuNi0yOC45IDExOC4xLTcxIDE1OC42LTI4LjkgMjcuOC02OS44IDM4LjItMTA1LjMgNTYuMy0yMy4yIDEyLTY2LjQgNDAuNS04NC45IDY2bDMyOC40IDBjNjYgMCAxMTkuMy01My4zIDExOS4zLTExOS4yLS4xIDAtLjEtMzI4LjgtLjEtMzI4Ljh6Il19LExFdD1aOGUsRUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndoYXRzYXBwIixpY29uOls0NDgsNTEyLFtdLCJmMjMyIiwiTTM4MC45IDk3LjFjLTQxLjktNDItOTcuNy02NS4xLTE1Ny02NS4xLTEyMi40IDAtMjIyIDk5LjYtMjIyIDIyMiAwIDM5LjEgMTAuMiA3Ny4zIDI5LjYgMTExTDAgNDgwIDExNy43IDQ0OS4xYzMyLjQgMTcuNyA2OC45IDI3IDEwNi4xIDI3bC4xIDBjMTIyLjMgMCAyMjQuMS05OS42IDIyNC4xLTIyMiAwLTU5LjMtMjUuMi0xMTUtNjcuMS0xNTd6bS0xNTcgMzQxLjZjLTMzLjIgMC02NS43LTguOS05NC0yNS43bC02LjctNC02OS44IDE4LjMgMTguNi02OC4xLTQuNC03Yy0xOC41LTI5LjQtMjguMi02My4zLTI4LjItOTguMiAwLTEwMS43IDgyLjgtMTg0LjUgMTg0LjYtMTg0LjUgNDkuMyAwIDk1LjYgMTkuMiAxMzAuNCA1NC4xczU2LjIgODEuMiA1Ni4xIDEzMC41YzAgMTAxLjgtODQuOSAxODQuNi0xODYuNiAxODQuNnpNMzI1LjEgMzAwLjVjLTUuNS0yLjgtMzIuOC0xNi4yLTM3LjktMTgtNS4xLTEuOS04LjgtMi44LTEyLjUgMi44cy0xNC4zIDE4LTE3LjYgMjEuOGMtMy4yIDMuNy02LjUgNC4yLTEyIDEuNC0zMi42LTE2LjMtNTQtMjkuMS03NS41LTY2LTUuNy05LjggNS43LTkuMSAxNi4zLTMwLjMgMS44LTMuNyAuOS02LjktLjUtOS43cy0xMi41LTMwLjEtMTcuMS00MS4yYy00LjUtMTAuOC05LjEtOS4zLTEyLjUtOS41LTMuMi0uMi02LjktLjItMTAuNi0uMnMtOS43IDEuNC0xNC44IDYuOWMtNS4xIDUuNi0xOS40IDE5LTE5LjQgNDYuM3MxOS45IDUzLjcgMjIuNiA1Ny40YzIuOCAzLjcgMzkuMSA1OS43IDk0LjggODMuOCAzNS4yIDE1LjIgNDkgMTYuNSA2Ni42IDEzLjkgMTAuNy0xLjYgMzIuOC0xMy40IDM3LjQtMjYuNHM0LjYtMjQuMSAzLjItMjYuNGMtMS4zLTIuNS01LTMuOS0xMC41LTYuNnoiXX0sUEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImltZGIiLGljb246WzQ0OCw1MTIsW10sImYyZDgiLCJNODkuNSAzMjMuNmwtMzUuNiAwIDAtMTM3LjQgMzUuNiAwIDAgMTM3LjR6bTY2LjYtNzMuMWw5LjEtNjQuMyA0Ni4zIDAgMCAxMzcuNC0zMSAwIDAtOTIuNy0xMy40IDkyLjctMjEuMyAwLTEzLTkwLjctLjEgOTAuNy0zMS4yIDAgMC0xMzcuNCA0Ni4xIDBjLjUgOC4zIDIuOCAxOC4xIDQuMyAyOS40bDQuMiAzNC45em02Ny42IDczLjFsMC0xMzcuNCAyNi42IDBjMTcgMCAyNyAuOSAzMyAyLjQgNi4xIDEuNyAxMC43IDQuMiAxMy45IDcuOSAzLjEgMy4zIDUuMSA2LjYgNS44IDEyIC45IDQuNCAxLjQgMTMuMSAxLjQgMjYuMmwwIDQ4LjJjMCAxMi4zLS43IDIwLjUtMS45IDI0LjctMS4xIDQuMS0zLjEgNy40LTYgOS43LTIuOCAyLjQtNi40IDQuMS0xMC43IDUtNC4yIC44LTEwLjYgMS4zLTE5LjEgMS4zbC00MyAwem0zNS41LTExMy45bDAgODkuNGM1LjEgMCA4LjMtMSA5LjQtMi4zIDEuMS0yIDEuOC03LjYgMS44LTE2LjdsMC01My4zYzAtNi4yLS4xLTEwLjItLjctMTItLjMtMS44LTEuMi0zLTIuNi00LjctMS40IDAtNC4xLS40LTcuOS0uNHptNTcuMyAxMTMuOWwwLTEzNy40IDM0LjEgMCAwIDQzLjljMi45LTIuNCA2LjEtNC45IDkuNS02LjYgMy42LTEuNSA4LjgtMi40IDEyLjgtMi40IDQuOCAwIDguOSAuOCAxMi4zIDIuMiAzLjQgMS41IDYgMy41IDggNi4yIDEuNyAyLjYgMi43IDUuMyAzLjEgNy44IC40IDIuNi0uMiA4LS4yIDE2LjJsMCAzOC42YzAgOC4yIC4yIDE0LjMtLjggMTguNC0xLjEgNC0zLjggNy42LTcuOCA5LjYtNC4xIDMuOS04LjkgNS4zLTE0LjYgNS4zLTQgMC05LjItLjktMTIuNy0yLjUtMy41LTEuOC02LjctNC41LTkuNi04bC0yLjEgOC43LTMyIDB6bTQ1LjEtMjAuN2MuNy0xLjggMS02IDEtMTIuNWwwLTM1LjRjMC01LjYtLjMtOS41LTEuMS0xMS4yLS43LTEuOS0zLjctMi43LTUuOC0yLjctMiAwLTMuNCAuOC00LjEgMi4zLS42IDEuNS0xIDUuNC0xIDExLjZsMCAzNi40YzAgNi4xIC40IDEwIDEuMiAxMS42IC42IDEuNyAyLjEgMi41IDQuMSAyLjUgMi4yIDAgNC4yLS44IDUuNy0yLjZ6TTQxOC40IDMyYzE1LjcgMS4yIDI4LjcgMTUuMiAyOC43IDMxLjlsMCAzODQuMmMwIDE2LjQtMTEuOSAzMC40LTI4LjIgMzEtLjMgMC0uNSAuOS0uOCAuOUwyOS45IDQ4MGMtLjMgMC0uNi0uOS0uOC0uMS0xNS43LTEuNC0yNy45LTEzLjgtMjktMzAuMkwwIDYxLjhDMS4xIDQ1LjkgMTMuOCAzMy4xIDMwLjMgMzEuMWwzODcuNCAwYy4yIDAgLjUgLjkgLjcgLjl6TTMwLjMgNDEuM0MxOSA0MiAxMCA1MSA5LjMgNjIuNGwwIDM4Ny4zYy40IDUuNCAyLjcgMTAuNSA2LjQgMTQuMyAzLjggMy45IDguOCA2LjMgMTQuMiA2LjdsMzg4LjIgMGMxMS41LTEgMjAuNi0xMS42IDIwLjYtMjIuNmwwLTM4NC4yYzAtNS43LTIuMS0xMS4zLTYtMTUuNXMtOS4zLTYuOC0xNS03LjJsLTM4Ny40IDB6Il19LElFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJweXRob24iLGljb246WzQ0OCw1MTIsW10sImYzZTIiLCJNNDM5LjggMjAwLjVjLTcuNy0zMC45LTIyLjMtNTQuMi01My40LTU0LjJsLTQwLjEgMCAwIDQ3LjRjMCAzNi44LTMxLjIgNjcuOC02Ni44IDY3LjhsLTEwNi44IDBjLTI5LjIgMC01My40IDI1LTUzLjQgNTQuM2wwIDEwMS44YzAgMjkgMjUuMiA0NiA1My40IDU0LjMgMzMuOCA5LjkgNjYuMyAxMS43IDEwNi44IDAgMjYuOS03LjggNTMuNC0yMy41IDUzLjQtNTQuM2wwLTQwLjctMTA2LjcgMCAwLTEzLjYgMTYwLjIgMGMzMS4xIDAgNDIuNi0yMS43IDUzLjQtNTQuMiAxMS4yLTMzLjUgMTAuNy02NS43IDAtMTA4LjZ6TTI4Ni4yIDQ0NC43YTIwLjQgMjAuNCAwIDEgMSAwLTQwLjcgMjAuNCAyMC40IDAgMSAxIDAgNDAuN3pNMTY3LjggMjQ4LjFsMTA2LjggMGMyOS43IDAgNTMuNC0yNC41IDUzLjQtNTQuM2wwLTEwMS45YzAtMjktMjQuNC01MC43LTUzLjQtNTUuNi0zNS44LTUuOS03NC43LTUuNi0xMDYuOCAuMS00NS4yIDgtNTMuNCAyNC43LTUzLjQgNTUuNmwwIDQwLjcgMTA2LjkgMCAwIDEzLjYtMTQ3IDBjLTMxLjEgMC01OC4zIDE4LjctNjYuOCA1NC4yLTkuOCA0MC43LTEwLjIgNjYuMSAwIDEwOC42IDcuNiAzMS42IDI1LjcgNTQuMiA1Ni44IDU0LjJsMzYuNyAwIDAtNDguOGMwLTM1LjMgMzAuNS02Ni40IDY2LjgtNjYuNHpNMTYxLjIgNjQuN2EyMC40IDIwLjQgMCAxIDEgMCA0MC44IDIwLjQgMjAuNCAwIDEgMSAwLTQwLjh6Il19LEFFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYXNoLWFwcCIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkNCIsIk00NDAuMyA5Ni45Yy05LjQtMjYuNS0zMC4zLTQ3LjQtNTYuOC01Ny0yNC4xLTcuOS00Ni4zLTcuOS05MS42LTcuOUwxNTYgMzJjLTQ0LjggMC02Ny4yIDAtOTEuMyA3LjUtMjYuNSA5LjYtNDcuNCAzMC41LTU3IDU3LTcuNyAyNC4zLTcuNyA0Ni43LTcuNyA5MS43TDAgMzIzLjhjMCA0NS4yIDAgNjcuNCA3LjUgOTEuNSA5LjYgMjYuNSAzMC41IDQ3LjQgNTcgNTcgMjQuMyA3LjcgNDYuNyA3LjcgOTEuNiA3LjdsMTM1LjcgMGM0NSAwIDY3LjQgMCA5MS42LTcuNyAyNi41LTkuNiA0Ny40LTMwLjUgNTctNTcgNy43LTI0LjMgNy43LTQ2LjcgNy43LTkxLjVsMC0xMzUuNWMwLTQ1IDAtNjcuNC03LjctOTEuNXpNMzIzLjEgMTg1LjRsLTI1LjggMjEuMWMtMi4zIDEuOS01LjUgMS41LTcuMy0uOS0xMy4yLTE2LjItMzMuNy0yNS40LTU2LjEtMjUuNC0yNSAwLTQwLjYgMTAuOS00MC42IDI2LjItLjQgMTIuOCAxMS43IDE5LjYgNDkuMSAyNy43IDQ3LjIgMTAgNjguNyAyOS43IDY4LjcgNjIuNyAwIDQxLjQtMzMuNyA3MS45LTg2LjQgNzUuM2wtNS4xIDI0LjVjLS40IDIuMy0yLjYgNC4xLTUuMSA0LjFsLTQwLjYgMGMtMy40IDAtNS44LTMuMi01LjEtNi40bDYuNC0yNy4zYy0yNi03LjUtNDcuMi0yMi01OS4zLTM5LjctMS41LTIuMy0xLjEtNS4zIDEuMS03bDI4LjItMjJjMi4zLTEuOSA1LjgtMS4zIDcuNSAxLjEgMTQuOSAyMC45IDM4IDMzLjMgNjUuNyAzMy4zIDI1IDAgNDMuOC0xMi4yIDQzLjgtMjkuNyAwLTEzLjQtOS40LTE5LjYtNDEuMi0yNi4yLTU0LjItMTEuNy03NS44LTMxLjgtNzUuOC02NC45IDAtMzguNCAzMi4yLTY3LjIgODAuOS03MWw1LjMtMjUuNGMuNC0yLjMgMi42LTQuMSA1LjEtNC4xbDM5LjkgMGMzLjIgMCA1LjggMyA1LjEgNi4ybC02LjIgMjguNGMyMC45IDYuNCAzOCAxNy45IDQ4LjcgMzIuMiAxLjcgMi4xIDEuMyA1LjMtLjkgN3oiXX0sTkV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpbnRlcmVzdC1wIixpY29uOlszODQsNTEyLFtdLCJmMjMxIiwiTTIwNCA2LjVjLTEwMi42IDAtMjA0IDY4LjQtMjA0IDE3OS4xIDAgNzAuNCAzOS42IDExMC40IDYzLjYgMTEwLjQgOS45IDAgMTUuNi0yNy42IDE1LjYtMzUuNCAwLTkuMy0yMy43LTI5LjEtMjMuNy02Ny44IDAtODAuNCA2MS4yLTEzNy40IDE0MC40LTEzNy40IDY4LjEgMCAxMTguNSAzOC43IDExOC41IDEwOS44IDAgNTMuMS0yMS4zIDE1Mi43LTkwLjMgMTUyLjctMjQuOSAwLTQ2LjItMTgtNDYuMi00My44IDAtMzcuOCAyNi40LTc0LjQgMjYuNC0xMTMuNCAwLTY2LjItOTMuOS01NC4yLTkzLjkgMjUuOCAwIDE2LjggMi4xIDM1LjQgOS42IDUwLjctMTMuOCA1OS40LTQyIDE0Ny45LTQyIDIwOS4xIDAgMTguOSAyLjcgMzcuNSA0LjUgNTYuNCAzLjQgMy44IDEuNyAzLjQgNi45IDEuNSA1MC40LTY5IDQ4LjYtODIuNSA3MS40LTE3Mi44IDEyLjMgMjMuNCA0NC4xIDM2IDY5LjMgMzYgMTA2LjIgMCAxNTMuOS0xMDMuNSAxNTMuOS0xOTYuOCAwLTk5LjMtODUuOC0xNjQuMS0xODAtMTY0LjF6Il19LFJFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aG1jcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwZCIsIk00NDggMTYxbDAtMjEuMy0yOC41LTguOC0yLjItMTAuNCAyMC4xLTIwLjctMTAuNC0xOS40LTI5IDcuNS03LjItNy41IDcuNS0yOC4yLTE5LjEtMTEuNi0yMS4zIDIxLTEwLjctMy4yLTctMjYuNC0yMi42IDAtNi4yIDI2LjQtMTIuMSAzLjItMTkuNy0yMS0xOS40IDExIDguMSAyNy43LTguMSA4LjQtMjguNS03LjUtMTEgMTkuMSAyMC43IDIxLTIuOSAxMC40LTI4LjUgNy44LS4zIDIxLjcgMjguOCA3LjUgMi40IDEyLjEtMjAuMSAxOS45IDEwLjQgMTguNSAyOS42LTcuNSA3LjIgOC42LTguMSAyNi45IDE5LjkgMTEuNiAxOS40LTIwLjQgMTEuNiAyLjkgNi43IDI4LjUgMjIuNiAuMyA2LjctMjguOCAxMS42LTMuNSAyMC43IDIxLjYgMjAuNC0xMi4xLTguOC0yOCA3LjgtOC4xIDI4LjggOC44IDEwLjMtMjAuMS0yMC45LTE4LjggMi4yLTEyLjEgMjkuMS03ek0zMjguOCA5Mi42YTU2LjggNTYuOCAwIDEgMSAwIDExMy42IDU2LjggNTYuOCAwIDEgMSAwLTExMy42em03Mi4zIDEzMGw0Ni45IDE0LjUgMCAzOS45LTU1LjEgMTMuNC00LjEgMjIuNyAzOC45IDM1LjMtMTkuMiAzNy45LTU0LTE2LjctMTQuNiAxNS4yIDE2LjcgNTIuNS0zOC4zIDIyLjctMzguOS00MC41LTIxLjcgNi42LTEyLjYgNTQtNDIuNC0uNS0xMi42LTUzLjYtMjEuNy01LjYtMzYuNCAzOC40LTM3LjQtMjEuNyAxNS4yLTUwLjUtMTMuNy0xNi4xLTU1LjUgMTQuMS0xOS43LTM0LjggMzcuOS0zNy40LTQuOC0yMi44LTU0LTE0LjEgLjUtNDAuOSA1My41LTE0LjcgNS43LTE5LjctMzguOS0zOS40IDIwLjctMzUuOCA1My42IDE0LjEgMTUuMi0xNS43LTE1LjItNTIgMzYuNC0yMC43IDM2LjggMzkuNCAyMi43LTYuMSAxMS42LTUyIDQyLjQgMCAxMS42IDQ1LjktMjIuNi01LjktNi4zLTEuNy0zLjMgNS43LTExIDE5LjEtMy4zIDUuNiA0LjYgNC42IDE3LjIgMTcuNC0uMyAxLTIzLjggNi41LTYuMiAxLjdjMCAzLjItLjEgOS42LS4zIDE5LjMtNDcuNSAxMC40LTgzLjMgNTIuOC04My4zIDEwMy41IDAgNTguMyA0Ny4zIDEwNS43IDEwNS43IDEwNS43IDUwLjUgMCA5Mi43LTM1LjQgMTAzLjItODIuOCA5LjkgLjEgMTYuNiAuMiAyMC4xIC4zbDEuNi02LjcgNS42LTI0IDEuOS0uNiAxNy4xIDE3LjggNC43IDQuOSA1LjgtMy40IDIwLjQtMTIuMSA1LjgtMy41LTItNi41LTYuOC0yMS4yeiJdfSxPRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiam9nZXQiLGljb246WzUxMiw1MTIsW10sImYzYjciLCJNMzg2LjEgNDVDMzQ1LjYgMTkuOSAzMDAuNiA4IDI1Ni4yIDggMTczIDggOTEuOCA0OS45IDQ0LjkgMTI1LjktMjcgMjQyLjUgOS4zIDM5NS4yIDEyNS45IDQ2Ny4xczI2OS4zIDM1LjYgMzQxLjItODAuOUM1MzkgMjY5LjYgNTAyLjcgMTE2LjggMzg2LjEgNDV6bTUxLjggMzIzLjJjLTQwLjQgNjUuNS0xMTAuNCAxMDEuNS0xODIgMTAxLjUtNi44IDAtMTMuNi0uNC0yMC40LTEtOS0xMy42LTE5LjktMzMuMy0yMy43LTQyLjQtNS43LTEzLjctMjcuMi00NS42IDMxLjItNjcuMSA1MS43LTE5LjEgMTc2LjctMTYuNSAyMDguOC0xNy42LTQgOS04LjYgMTcuOS0xMy45IDI2LjZ6TTIzNy4xIDI4MS45Yy01NS41LTEuNC04MS43LTIwLjgtNTguNS00OC4yczUxLjEtNDAuNyA2OC45LTUxLjJjMTcuOS0xMC41IDI3LjMtMzMuNy0yMy42LTI5LjctMTI4LjYgOC43LTE2Ny4zIDk5LjMtMTc4LjMgMTQwLjItOC44LTQ5LjctLjEtMTAyLjcgMjguNS0xNDkuMSA2MS45LTEwMC41IDE5My41LTEzMS43IDI5NC02OS44IDc0LjggNDYuMSAxMTEuMiAxMzAuOSA5OS4zIDIxMi43LTI0LjktLjUtMTc5LjMtMy42LTIzMC4zLTQuOXptMTgzLjgtNTQuOGMtMjIuNy02LTU3IDExLjMtODYuNyAyNy4yLTI5LjcgMTUuOC0zMS4xIDguMi0zMS4xIDguMnM0MC4yLTI4LjEgNTAuNy0zNC41IDMxLjktMTQgMTMuNC0yNC42Yy0zLjItMS44LTYuNy0yLjctMTAuNC0yLjctMTcuOCAwLTQxLjUgMTguNy02Ny41IDM1LjYtMzEuNSAyMC41LTY1LjMgMzEuMy02NS4zIDMxLjNMMzkzLjUgMjY2IDQ0MCAyNDIuNnMzLjYtOS41LTE5LjEtMTUuNXoiXX0sWDhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS15b3V0dWJlIixpY29uOls0NDgsNTEyLFs2MTc5OCwieW91dHViZS1zcXVhcmUiXSwiZjQzMSIsIk0yODIgMjU2LjJsLTk1LjItNTQuMSAwIDEwOC4yIDk1LjItNTQuMXpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTE0LjQgMTM2LjFjNy42IDI4LjYgNy42IDg4LjIgNy42IDg4LjJzMCA1OS42LTcuNiA4OC4xYy00LjIgMTUuOC0xNi41IDI3LjctMzIuMiAzMS45LTI4LjMgNy43LTE0Mi4yIDcuNy0xNDIuMiA3LjdzLTExMy45IDAtMTQyLjItNy42Yy0xNS43LTQuMi0yOC0xNi4xLTMyLjItMzEuOS03LjYtMjguNi03LjYtODguMi03LjYtODguMnMwLTU5LjcgNy42LTg4LjJjNC4yLTE1LjggMTYuNS0yOC4yIDMyLjItMzIuNCAyOC4zLTcuNyAxNDIuMi03LjcgMTQyLjItNy43czExMy45IDAgMTQyLjIgNy43YzE1LjcgNC4yIDI4IDE2LjYgMzIuMiAzMi40eiJdfSxGRXQ9WDhlLEJFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdGxhc3NpYW4iLGljb246WzUxMiw1MTIsW10sImY3N2IiLCJNMTUyLjIgMjM2LjRjLTcuNy04LjItMTkuNy03LjctMjQuOCAyLjhMMS42IDQ5MC4yYy01IDEwIDIuNCAyMS43IDEzLjQgMjEuN2wxNzUgMGM1LjggLjEgMTEtMy4yIDEzLjQtOC40IDM3LjktNzcuOCAxNS4xLTE5Ni4zLTUxLjItMjY3LjF6TTI0NC40IDguMWMtMTIyLjMgMTkzLjQtOC41IDM0OC42IDY1IDQ5NS41IDIuNSA1LjEgNy43IDguNCAxMy40IDguNEw0OTcgNTEyYzExLjIgMCAxOC40LTExLjggMTMuNC0yMS43IDAgMC0yMzQuNS00NzAuNi0yNDAuNC00ODIuMy01LjMtMTAuNi0xOC44LTEwLjgtMjUuNiAuMXoiXX0sSEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItaGF0IixpY29uOls2NDAsNTEyLFtdLCJmNGU1IiwiTTY0MCAyNC45Yy04MC44IDUzLjYtODkuNCA5Mi41LTk2LjQgMTA0LjQtNi43IDEyLjItMTEuNyA2MC4zLTIzLjMgODMuNi0xMS43IDIzLjYtNTQuMiA0Mi4yLTY2LjEgNTAtMTEuNyA3LjgtMjguMyAzOC4xLTQxLjkgNjQuMi0xMDguMS00LjQtMTY3LjQgMzguOC0yNTkuMiA5My42IDI5LjQtOS43IDQzLjMtMTYuNyA0My4zLTE2LjcgOTQuMi0zNiAxMzkuMy02OC4zIDI4MS4xLTQ5LjIgMS4xIDAgMS45IC42IDIuOCAuOCAzLjkgMi4yIDUuMyA2LjkgMy4xIDEwLjhsLTUzLjkgOTUuOGMtMi41IDQuNy03LjggNy4yLTEzLjEgNi4xLTEyNi44LTIzLjgtMjI2LjkgMTcuMy0zMTguOSAxOC42LTczLjQgMS4xLTk3LjUtMzMuNS05Ny41LTM1LjEgMC0xLjEgLjYtMS43IDEuNy0xLjcgMCAwIDM4LjMgMCAxMDMuMS0xNS4zIDczLjYtMTQwLjMgMTM5LjItMTg5LjQgMjEwLjYtMTg5LjQgMCAwIDcxLjcgMCA5MC42IDYxLjkgMjIuOC0zOS43IDI4LjMtNDkuMiAyOC4zLTQ5LjIgNS4zLTkuNCAzNS03Ny4yIDg2LjQtMTQxLjQgNTEuNS02NCA5MC40LTc5LjkgMTE5LjMtOTEuOHoiXX0scUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludGVybmV0LWV4cGxvcmVyIixpY29uOls1MTIsNTEyLFtdLCJmMjZiIiwiTTQ4My4xIDE1OS43YzEwLjktMjQuNiAyMS40LTYwLjQgMjEuNC04Ny45IDAtNzIuNy03OS42LTk4LjQtMjA5LjctMzguNi0xMDcuNi03LjItMjExLjIgNzMuNy0yMzcuMSAxODYuNSAzMC45LTM0LjkgNzguMy04Mi4zIDEyMi0xMDEuMi01NC4zIDQ4LjMtMTAwLjYgMTA5LjQtMTM1LjcgMTczLjItMjAuNyAzNy45LTQ0IDk5LjItNDQgMTQ1IDAgOTguNiA5Mi45IDg2LjUgMTgwLjMgNDIgMzEuNCAxNS40IDY2LjYgMTUuNiAxMDEuNyAxNS42IDk3LjEgMCAxODQuMi01NC4zIDIxNi44LTE0NmwtMTIwLjggMGMtNTIuNSA4OC42LTE5Ni44IDUzLTE5Ni44LTQ3LjRsMzI4LjggMGM2LjQtNDMuNi0xLjctOTUuNy0yNi45LTE0MS4yek02NC42IDM0Ni45QzgyLjMgMzk4IDExOC4zIDQ0Mi43IDE2NC44IDQ3MC4yIDc2LjEgNTE5LjEtOC40IDQ5OS4zIDY0LjYgMzQ2Ljl6TTE4MC41IDIzOGMyLTU1LjIgNTAuMy05NC45IDEwNC05NC45IDUzLjQgMCAxMDIgMzkuNyAxMDQgOTQuOWwtMjA4IDB6TTM2NS4xIDUwLjRjMjEuNC0xMC4zIDQ4LjYtMjIgNzIuNi0yMiAzMS40IDAgNTQuMyAyMS43IDU0LjMgNTMuNyAwIDIwLTcuNCA0OS0xNC42IDY3LjktMjYuMy00Mi4zLTY2LTgxLjYtMTEyLjMtOTkuNnoiXX0sakV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFpcmJuYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjgzNCIsIk0yMjQuNSAzNzMuMWMtMjUuMi0zMS43LTQwLjEtNTkuNC00NS04My4yLTIyLjUtODggMTEyLjYtODggOTAuMSAwLTUuNCAyNC4yLTIwLjMgNTItNDUgODMuMmwtLjEgMHptMTM4LjIgNzMuMmMtNDIuMSAxOC4zLTgzLjctMTAuOS0xMTkuMy01MC41IDEwMy45LTEzMC4xIDQ2LjEtMjAwLTE4LjgtMjAwLTU0LjkgMC04NS4yIDQ2LjUtNzMuMyAxMDAuNSA2LjkgMjkuMiAyNS4yIDYyLjQgNTQuNCA5OS41LTMyLjUgMzYtNjAuNSA1Mi43LTg1LjIgNTQuOS01MCA3LjQtODkuMS00MS4xLTcxLjMtOTEuMSAxNS4xLTM5LjIgMTExLjctMjMxLjIgMTE1LjktMjQxLjYgMTUuOC0zMC4xIDI1LjYtNTcuNCA1OS40LTU3LjQgMzIuMyAwIDQzLjQgMjUuOSA2MC40IDU5LjkgMzYgNzAuNiA4OS40IDE3Ny41IDExNC44IDIzOS4xIDEzLjIgMzMuMS0xLjQgNzEuMy0zNyA4Ni42em00Ny0xMzYuMWMtMTI4LjktMjc0LjMtMTM2LTI3OC4yLTE4NS4xLTI3OC4yLTQ1LjUgMC02NC45IDMxLjctODQuNyA3Mi44LTEwNi4yIDIxMi4zLTExNi40IDI0Mi40LTExNy4zIDI0NS0yNS4yIDY5LjMgMjYuNyAxMzAuMiA4OS42IDEzMC4yIDIxLjcgMCA2MC42LTYuMSAxMTIuNC02Mi40IDU4LjcgNjMuOCAxMDEuMyA2Mi40IDExMi40IDYyLjQgNjIuOSAuMSAxMTQuOS02MC45IDg5LjYtMTMwLjIgMC0zLjktMTYuOC0zOC45LTE2LjgtMzkuNmwwIDB6Il19LFZFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiOCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yNDMuOCAzODEuNGMwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNS0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNUwxNTIgMzg1LjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41bDAtMTQzLjEgNDIuMSAwIDAgMTQzLjd6bTk5LjYgNjMuNWMtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjZ6Il19LFVFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxdWluc2NhcGUiLGljb246WzUxMiw1MTIsW10sImY0NTkiLCJNMzEzLjcgNDc0LjZsLTEgMGMtNDEuOSAwLTgyLjEtMTYuNy0xMTEuOC00Ni4zcy00Ni4zLTY5LjktNDYuMy0xMTEuOCAxNi43LTgyLjEgNDYuMy0xMTEuOCA2OS45LTQ2LjMgMTExLjgtNDYuM2M5NC45IDAgMTY4LjIgODMuMSAxNTcgMTc2LjYgNCA1LjEgOC4yIDkuNiAxMS4yIDE1LjMgMTMuNC0zMC4zIDIwLjMtNjIuNCAyMC4zLTk3LjcgMC0xMzUuMS0xMDkuNS0yNDQuNi0yNDQuNi0yNDQuNlMxMi4xIDExNy41IDEyLjEgMjUyLjYgMTIxLjYgNDk3LjIgMjU2LjYgNDk3LjJjMjMuOCAuMiA0Ny42LTMuMiA3MC40LTEwLjEtNS4yLTMuNS04LjktOC4xLTEzLjMtMTIuNXptNzguMy0xNjlhOTkuMiA5OS4yIDAgMSAwIDAgMTk4LjQgOTkuMiA5OS4yIDAgMSAwIDAtMTk4LjR6Il19LFdFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZHZlcnNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YSIsIk00ODIuMSAzMkwyOC43IDMyQzUuOCAzMiAwIDM3LjkgMCA2MC45TDAgNDUxLjFDMCA0NzQuNCA1LjggNDgwIDI4LjcgNDgwbDQ1My40IDBjMjQuNCAwIDI5LjktNS4yIDI5LjktMjkuN2wwLTM4OC4xYzAtMjQuNi01LjQtMzAuMi0yOS45LTMwLjJ6TTE3OC40IDIyMC4zYy0yNy41LTIwLjItNzIuMS04LjctODQuMiAyMy40LTQuMyAxMS4xLTkuMyA5LjUtMTcuNSA4LjMtOS43LTEuNS0xNy4yLTMuMi0yMi41LTUuNS0yOC44LTExLjQgOC42LTU1LjMgMjQuOS02NC4zIDQxLjEtMjEuNCA4My40LTIyLjIgMTI1LjMtNC44IDQwLjkgMTYuOCAzNC41IDU5LjIgMzQuNSAxMjguNSAyLjcgMjUuOC00LjMgNTguMyA5LjMgODguOCAxLjkgNC40IC40IDcuOS0yLjcgMTAuNy04LjQgNi43LTM5LjMgMi4yLTQ2LjYtNy40LTEuOS0yLjItMS44LTMuNi0zLjktNi4yLTMuNi0zLjktNy4zLTIuMi0xMS45IDEtNTcuNCAzNi40LTE0MC4zIDIxLjQtMTQ3LTQzLjMtMy4xLTI5LjMgMTIuNC01Ny4xIDM5LjYtNzEgMzguMi0xOS41IDExMi4yLTExLjggMTE0LTMwLjkgMS4xLTEwLjItMS45LTIwLjEtMTEuMy0yNy4zem0yODYuNyAyMjJjMCAxNS4xLTExLjEgOS45LTE3LjggOS45bC0zOTQuOSAwYy03LjQgMC0xOC4yIDQuOC0xNy44LTEwLjcgLjQtMTMuOSAxMC41LTkuMSAxNy4xLTkuMSAxMzIuMy0uNCAyNjQuNS0uNCAzOTYuOCAwIDYuOCAwIDE2LjYtNC40IDE2LjYgOS45em0zLjgtMzQwLjVsMCAyOTFjMCA1LjctLjcgMTMuOS04LjEgMTMuOS0xMi40LS40LTI3LjUgNy4xLTM2LjEtNS42LTUuOC04LjctNy44LTQtMTIuNC0xLjItNTMuNCAyOS43LTEyOC4xIDcuMS0xNDQuNC04NS4yLTYuMS0zMy40LS43LTY3LjEgMTUuNy0xMDAgMTEuOC0yMy45IDU2LjktNzYuMSAxMzYuMS0zMC41bDAtNzFjMC0yNi4yLS4xLTI2LjIgMjYtMjYuMiAzLjEgMCA2LjYgLjQgOS43IDAgMTAuMS0uOCAxMy42IDQuNCAxMy42IDE0LjMtLjEgLjItLjEgLjMtLjEgLjV6TTQxNy40IDMzNC4xYy0xOS41IDQ3LjYtNzIuOSA0My4zLTkwIDUuMi0xNS4xLTMzLjMtMTUuNS02OC4yIC40LTEwMS41IDE2LjMtMzQuMSA1OS43LTM1LjcgODEuNS00LjggMjAuNiAyOC44IDE0LjkgODQuNiA4LjEgMTAxLjF6TTEyMi42IDM2OS40Yy03LjUtMS4zLTMzLTMuMy0zMy43LTI3LjgtLjQtMTMuOSA3LjgtMjMgMTkuOC0yNS44IDI0LjQtNS45IDQ5LjMtOS45IDczLjctMTQuNyA4LjktMiA3LjQgNC40IDcuOCA5LjUgMS40IDMzLTI2LjEgNTkuMi02Ny42IDU4Ljh6Il19LEdFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zIixpY29uOls1MTIsNTEyLFtdLCJmMjVlIiwiTTI1My44IDIxNC45bC0zMy4yIDE3LjNjLTkuNC0xOS42LTI1LjItMTkuOS0yNy41LTE5LjktMjIuMSAwLTMzLjIgMTQuNi0zMy4yIDQzLjggMCAyMy42IDkuMiA0My44IDMzLjIgNDMuOCAxNC41IDAgMjQuNi03LjEgMzAuNi0yMS4zbDMwLjYgMTUuNWMtNi4yIDExLjUtMjUuNyAzOS02NS4xIDM5LTIyLjYgMC03NC0xMC4zLTc0LTc3IDAtNTguNyA0My03Ny4xIDcyLjYtNzcuMSAzMC43IDAgNTIuNyAxMS45IDY2IDM1Ljl6bTE0MyAwbC0zMi44IDE3LjNjLTkuNS0xOS44LTI1LjctMTkuOS0yNy45LTE5LjktMjIuMSAwLTMzLjIgMTQuNi0zMy4yIDQzLjggMCAyMy41IDkuMiA0My44IDMzLjIgNDMuOCAxNC40IDAgMjQuNi03LjEgMzAuNS0yMS4zbDMxIDE1LjVjLTIuMSAzLjgtMjEuNCAzOS02NS4xIDM5LTIyLjcgMC03NC05LjktNzQtNzcgMC01OC43IDQzLTc3LjEgNzIuNi03Ny4xIDMwLjcgMCA1Mi42IDExLjkgNjUuNiAzNS45ek0yNTUuNiA4QzExMi43IDggOCAxMjMuMSA4IDI1Ni4xIDggMzk0LjUgMTIxLjYgNTA0LjEgMjU1LjYgNTA0LjEgMzg1LjUgNTA0LjEgNTA0IDQwMy4yIDUwNCAyNTYuMSA1MDQgMTE4LjIgMzk3LjQgOCAyNTUuNiA4em0uOSA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjQtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjUgMCAyMDIuOCA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNyAyMDIuOC0yMDIuOCAyMDIuOHoiXX0sS0V0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTdkOSIsIk05NC45IDEwMC4yYzE0LjkgMTIuMSAyMC41IDExLjIgNDguNiA5LjNMNDA3LjggOTMuNmM1LjYgMCAuOS01LjYtLjktNi41TDM2Mi45IDU1LjRjLTguNC02LjUtMTkuNi0xNC00MS4xLTEyLjFMNjUuOSA2MS45Yy05LjMgLjktMTEuMiA1LjYtNy41IDkuM2wzNi40IDI4Ljl6bTE1LjkgNjEuNmwwIDI3OC4xYzAgMTQuOSA3LjUgMjAuNSAyNC4zIDE5LjZsMjkwLjUtMTYuOGMxNi44LS45IDE4LjctMTEuMiAxOC43LTIzLjNsMC0yNzYuMmMwLTEyLjEtNC43LTE4LjctMTUtMTcuN0wxMjUuNyAxNDMuMWMtMTEuMiAuOS0xNC45IDYuNS0xNC45IDE4Ljd6bTI4Ni43IDE0LjljMS45IDguNCAwIDE2LjgtOC40IDE3LjhsLTE0IDIuOCAwIDIwNS4zYy0xMi4yIDYuNS0yMy40IDEwLjMtMzIuNyAxMC4zLTE1IDAtMTguNy00LjctMjkuOS0xOC43bC05MS41LTE0My43IDAgMTM5IDI5IDYuNXMwIDE2LjgtMjMuNCAxNi44bC02NC40IDMuN2MtMS45LTMuNyAwLTEzLjEgNi41LTE0LjlsMTYuOC00LjcgMC0xODMuOC0yMy4zLTEuOWMtMS45LTguNCAyLjgtMjAuNSAxNS45LTIxLjVsNjkuMS00LjcgOTUuMyAxNDUuNiAwLTEyOC44LTI0LjMtMi44Yy0xLjktMTAuMyA1LjYtMTcuNyAxNC45LTE4LjdsNjQuNS0zLjh6TTQ0LjQgMzYuN0wzMTAuNiAxNy4xYzMyLjctMi44IDQxLjEtLjkgNjEuNiAxNGw4NSA1OS43YzE0IDEwLjMgMTguNyAxMy4xIDE4LjcgMjQuM2wwIDMyNy42YzAgMjAuNS03LjUgMzIuNy0zMy42IDM0LjVMMTMzLjIgNDk1LjhjLTE5LjYgLjktMjktMS45LTM5LjItMTQuOUwzMS40IDM5OS43Yy0xMS4yLTE0LjktMTUuOS0yNi4xLTE1LjktMzkuMmwwLTI5MS4yYzAtMTYuOCA3LjUtMzAuOCAyOC45LTMyLjd6Il19LFlFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWVjYXN0IixpY29uOls1MTIsNTEyLFtdLCJmODM4IiwiTTQ0OCA2NEw2NC4yIDY0Yy0yMy42IDAtNDIuNyAxOS4xLTQyLjcgNDIuN2wwIDYzLjkgNDIuNyAwIDAtNjMuOSAzODMuOCAwIDAgMjk4LjYtMTQ5LjIgMCAwIDQyLjcgMTQ5LjQgMGMyMy42IDAgNDIuNy0xOS4xIDQyLjctNDIuN2wwLTI5OC42QzQ5MC45IDgzLjEgNDcxLjYgNjQgNDQ4IDY0ek0yMS41IDM4My42bDAgNjMuOSA2My45IDBjMC0zNS4zLTI4LjYtNjMuOS02My45LTYzLjl6bTAtODVsMCA0Mi40YzU4LjkgMCAxMDYuNiA0OC4xIDEwNi42IDEwN2w0Mi43IDBjLjEtODIuNC02Ni45LTE0OS4zLTE0OS4zLTE0OS40ek0yMTMuNiA0NDhsNDIuNyAwQzI1NS44IDMxOC41IDE1MSAyMTMuNyAyMS41IDIxMy40bDAgNDIuNGMxMDYtLjIgMTkyIDg2LjIgMTkyLjEgMTkyLjJ6Il19LFpFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcy1odWIiLGljb246WzUxMiw1MTIsW10sImU4NmUiLCJNMTMwLjQgMTZjNjAuOSAwIDExMC40IDQ5LjUgMTEwLjQgMTEwLjRsMCAyNC45YzQuOC0uNyA5LjctMSAxNC42LTEgODguMS0uMiAxNjUuMSA0OSAyMDUuNCAxMjEuMi0yMi44LTE2LjItNTAuNy0yNS40LTgwLjQtMjUuMy03Ny4xIC4yLTEzOS41IDYyLjYtMTM5LjYgMTM5LjQtLjEgNjAuOS00OS41IDExMC4zLTExMC43IDExMC41LTYwLjYgLjItMTEwLjItNDkuNS0xMTAuMi0xMTAuNSAuMi0yLjYgMCAwIC4xLTMuMmwwLTI1NkMyMC4xIDY1LjUgNjkuNSAxNiAxMzAuNCAxNnpNMzgwLjMgNDk2YTExMC40IDExMC40IDAgMSAxIDAtMjIwLjkgMTEwLjQgMTEwLjQgMCAxIDEgMCAyMjAuOXoiXX0sWEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Indpa2lwZWRpYS13IixpY29uOls2NDAsNTEyLFtdLCJmMjY2IiwiTTY0MCA1MS4ybC0uMyAxMi4yYy0yOC4xIC44LTQ1IDE1LjgtNTUuOCA0MC4zLTI1IDU3LjgtMTAzLjMgMjQwLTE1NS4zIDM1OC42bC0xMy42IDAtODEuOS0xOTMuMWMtMzIuNSA2My42LTY4LjMgMTMwLTk5LjIgMTkzLjEtLjMgLjMtMTUgMC0xNS0uMy00Ni45LTEwOS43LTk2LjEtMjE4LjYtMTQzLjEtMzI4LjYtMTEuNC0yNi43LTQ5LjQtNzAtNzUuNi02OS43IDAtMy4xLS4zLTEwLS4zLTE0LjJsMTYxLjkgMCAwIDEzLjljLTE5LjIgMS4xLTUyLjggMTMuMy00My4zIDM0LjIgMjEuOSA0OS43IDEwMy42IDI0MC4zIDEyNS42IDI4OC42IDE1LTI5LjcgNTcuOC0xMDkuMiA3NS4zLTE0Mi44LTEzLjktMjguMy01OC42LTEzMy45LTcyLjgtMTYwLTkuNy0xNy44LTM2LjEtMTkuNC01NS44LTE5LjdsMC0xMy45IDE0Mi41IC4zIDAgMTMuMWMtMTkuNCAuNi0zOC4xIDcuOC0yOS40IDI2LjEgMTguOSA0MCAzMC42IDY4LjEgNDguMSAxMDQuNyA1LjYtMTAuOCAzNC43LTY5LjQgNDguMS0xMDAuOCA4LjktMjAuNi0zLjktMjguNi0zOC42LTI5LjQgLjMtMy42IDAtMTAuMyAuMy0xMy42IDQ0LjQtLjMgMTExLjEtLjMgMTIzLjEtLjZsMCAxMy42QzQ2Mi40IDY0IDQzOS4xIDc2IDQyNi44IDk0LjlMMzY3LjYgMjE3LjdjNi40IDE2LjEgNjMuMyAxNDIuOCA2OS4yIDE1Ni43TDU1OS4yIDkxLjhjLTguNi0yMy4xLTM2LjQtMjguMS00Ny4yLTI4LjNsMC0xMy45IDEyNy44IDEuMSAuMiAuNXoiXX0sUUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpdHJveCIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ0YSIsIk0yMTIuNCAwbDAgMCAyMzUuNiAwIDAgMTI4LTM4NCAwQzY0IDU3LjYgMTQxLjggLjUgMjEyLjQgMHptMjQuOCAxOTJsMCAwYzY5LjkgLjUgMTQ2LjcgNTcuNiAxNDYuNyAxMjhsLTE3My4yIDAgMCAwQzE0MC45IDMxOS42IDY0IDI2Mi40IDY0IDE5MmwxNzMuMyAwem0tMS43IDMyMGM3MC43LS41IDE0OC40LTU3LjYgMTQ4LjQtMTI4bC0zODQgMCAwIDEyOCAyMzUuNiAwIDAgMHoiXX0sUThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1naXRsYWIiLGljb246WzQ0OCw1MTIsWyJnaXRsYWItc3F1YXJlIl0sImU1YWUiLCJNMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2em0zMzcuNSAxMi41bDQ0LjYgMTE2LjQgLjQgMS4yYzUuNiAxNi44IDcuMiAzNS4yIDIuMyA1Mi41LTUgMTcuMi0xNS40IDMyLjQtMjkuOCA0My4zbC0uMiAuMS02OC40IDUxLjItNTQuMSA0MC45Yy0uNSAuMi0xLjEgLjUtMS43IC44LTIgMS00LjQgMi02LjcgMi0zIDAtNi44LTEuOC04LjMtMi44bC01NC4yLTQwLjktNjcuOS01MC45LS40LS4zLS4yLS4xYy0xNC4zLTEwLjgtMjQuOC0yNi0yOS43LTQzLjNzLTQuMi0zNS43IDIuMi01Mi41bC41LTEuMiA0NC43LTExNi40Yy45LTIuMyAyLjUtNC4zIDQuNS01LjYgMS42LTEgMy40LTEuNiA1LjItMS44IDEuMy0uNyAyLjEtLjQgMy40IC4xIC42IC4yIDEuMiAuNSAyIC43IDEgLjQgMS42IC45IDIuNCAxLjUgLjYgLjQgMS4yIDEgMi4xIDEuNSAxLjIgMS40IDIuMiAzIDIuNyA0LjhsMjkuMiA5Mi4yIDEyMi45IDAgMzAuMi05Mi4yYy41LTEuOCAxLjQtMy40IDIuNi00LjhzMi44LTIuNCA0LjUtMy4xYzEuNy0uNiAzLjYtLjkgNS40LS43czMuNiAuOCA1LjIgMS44YzIgMS4zIDMuNyAzLjMgNC42IDUuNnoiXX0sSkV0PVE4ZSxlUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hvZWxhY2UiLGljb246WzUxMiw1MTIsW10sImU2MGMiLCJNNDA1LjIgMzMxYzIuMi0xLjEgNC40LTIuMyA2LjUtMy43bDguMy00LjhjMS41LTEuMSA0LjQtMy40IDguNy02LjdsLjUtLjVjMy40LTMuNCA3LjItNSAxMS4zLTQuOSAxLjggMCAzLjkgLjUgNi40IDEuNWwzMS0yNy41Yy45LS43IDEuNy0xLjMgMi42LTEuOGwuMiAwYzMuMy0xLjkgNi0xLjggOC4yIC40IDMuOSAyLjEgNC4yIDUuNiAuOSAxMC42TDQ1Ny4yIDMyMmMuMiAuNSAuNCAxIC40IDEuNSAuNSAyLjIgLjMgNC40LS41IDYuNi0uNyAxLjUtMS44IDIuOS0zLjEgNC4yLTEuNCAxLjQtMi43IDIuOC00LjIgNC4yTDQzMSAzNTIuMmMtMS43IDEuMi0zLjQgMi4zLTUuMSAzLjMtMi4xIDEuMy00LjMgMi41LTYuNiAzLjYtMSAuNC0xLjkgLjktMi45IDEuMy01LjkgMi41LTExLjkgNC4yLTE4LjIgNS0yLjkgMjQuNS0xMS4zIDQ3LjEtMjUuMSA2Ny44LTE3LjUgMjUuNy00MS40IDQ1LjQtNzEuOCA1OC44LTMwLjIgMTMuNS02MyAyMC4yLTk4LjIgMjAuMi00OC42LS41LTg4LTExLjQtMTE4LjItMzIuOC0zNS4xLTI1LTUyLjYtNTcuOS01Mi42LTk5LjFsMC01LjZjMS4yLTI4LjEgOS41LTU0LjYgMjQuOC03OS44IDE1LjEtMjQuOSAzNy4xLTQxLjcgNjYuMS01MC41IDE0LjktNC40IDI5LjktNi42IDQ1LTYuNiAxNS41IDAgMzEuNiAyLjkgNDguMSA4LjZzMzUuMiAxNS41IDU1LjkgMjkuNWw1NC4xIDM2LjNjMTUuMSA5LjggMjguOCAxNi41IDQxLjIgMjAtMi42LTI1LjEtMTEuNy00Ni42LTI3LjMtNjQuNS0xNS43LTE4LjEtMzUuNi0zMS4zLTU5LjktMzkuN0wyNTcgMjIwYy0yMS40LTcuNS0zNy4zLTE0LjktNDcuNy0yMi4yLTI4LjItMTkuMS00My44LTQ1LjItNDctNzguNWwtLjUtOS44YzAtMzIuMSAxMy01OC45IDM5LTgwLjUgMjMtMTkuMyA1MC42LTI5IDgyLjUtMjkgMjQgMCA0NS42IDYuOSA2NC43IDIwLjggMTkuMiAxNCAzMC4xIDMzLjggMzIuNiA1OS40bC41IDEwYzAgMTguNi00LjggMzQuNS0xNC40IDQ3LjctOS44IDEzLjItMTguNSAxOS45LTI2IDE5LjktMS42LS4xLTMuMS0uMy00LjUtLjZsLTM0IDMyYy01LjUgMy05LjIgMi41LTExLjEtMS42LTEuOS0yLjItMS44LTQuOSAuNS04LjJsLjItLjJjLjUtLjcgMS4yLTEuNSAyLTIuNGwzMS42LTMwYy0uNC0xLjUtLjYtMy4xLS42LTQuOCAwLTQuMSAxLjYtNy42IDQuOS0xMC40IDEzLjgtMTIuNCAyMC44LTI2LjcgMjAuOC00Mi44IDAtMTYtNi4xLTI5LjUtMTguMi00MC40cy0yOC43LTE2LjUtNDkuNy0xNi44Yy0yNi4yIDAtNDcuOCA3LjktNjQuNyAyMy43UzE5Mi42IDg5LjkgMTkyLjYgMTEyYzAgMTcuOCA2LjkgMzMuOSAyMC42IDQ4LjMgMTMuNiAxNC4yIDM0LjYgMjUuNCA2MyAzMy41IDM5LjggMTEuNSA3MC4yIDMxIDkxLjMgNTguMyAxOC43IDI0LjIgMjkuMSA1MS4zIDMxLjMgODEuNCAyLjItLjcgNC4zLTEuNSA2LjUtMi42bC0uMSAuMXpNMjk0LjQgMTc4LjdjMCAxLjEgLjYgMS42IDEuOCAxLjYgLjEgMCA5LjctOC45IDI4LjgtMjYuNiAwLTIuNC01LjEgLjktMTUuMyAxMC0xMC4yIDkuMi0xNS4zIDE0LjItMTUuMyAxNC45bDAgLjF6bTggNi40YzAtMS0uNS0xLjUtMS41LTEuNS0xLjEgMC0yLjEgLjUtMi45IDEuNi0xLjktLjEtMy4zIC4xLTQuMiAuNy0uNCAuMi0uNSAuNS0uNSAuNyAwIC43IC41IDEuMyAxLjUgMS42bDMuMyAwYzIuOS0xLjEgNC40LTIuMiA0LjQtMy4zbC0uMSAuMnpNMzI1IDE2NS4yYzAtMi44LTEuNi0yLjgtNC45IDAtMS42IDEuNS0zLjYgMy41LTYgNi4yLS44IC42LTIuNiAyLjItNS4zIDQuOS0yLjggMi45LTQuMiA0LjctNC4yIDUuM2wuMiAxLjNjLjcgLjIgMS4yIC40IDEuNSAuNCAuMSAwIDMuMy0yLjkgOS41LTguN3M5LjMtOC45IDkuMy05LjNsLS4xLS4xem0xNTkuNyAxMjBsLTMwLjYgMjdjMS44IDEgMy4yIDIuNCA0IDQuMmwzMC4yLTI3Yy4yLTEuMiAuMS0yLjItLjUtMi45LS42LS41LTEuNi0uOS0zLjEtMS4zem0tMS42LS45bC0uNy0uNy0yNyAyMS45IDEuNiAyIDI2LTIzLjEgLjEtLjF6TTM2Ni45IDM2My45Yy04LTIuMS0xNS40LTQuNi0yMi4yLTcuNS0xNS4zLTYuMi0zNC4zLTE3LTU3LTMyLjRsLTM3LjQtMjUuM2MtMTUuOC0xMC4xLTMwLjItMTcuNi00My4yLTIyLjYtMTMuMS00LjktMjYtNy4zLTM4LjYtNy4zbC01LjUgMGMtMzIuMiAxLjctNTcuMiAxMy44LTc1IDM2LjItMTYuNiAyMC44LTI1IDQ1LjMtMjUgNzMuNiAwIDMxLjggMTIuOCA1Ni43IDM4LjIgNzQuNyAyNS40IDE4LjEgNjAuMiAyNy4xIDEwNC40IDI3LjEgMzQuNyAwIDY0LTYuMiA4Ny44LTE4LjYgMjMuNy0xMi40IDQyLjEtMjguOCA1NS4yLTQ5LjIgOS44LTE1LjUgMTUuOS0zMS44IDE4LjItNDguOGwuMSAuMXoiXX0sdFB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5zdHJlZXRtYXAiLGljb246WzUxMiw1MTIsW10sImU4NmIiLCJNNjEgNDk4LjdjLTcuMS0xLjgtMTAuOC00LjctMjkuNi0yMy42LTIyLjUtMjIuNC0yMy45LTI0LjYtMjMuOS0zNi4zIDAtMTMtMy45LTguNCA2Ny45LTgwLjMgNzIuNS03Mi43IDY4LjctNjkuNSA4MS45LTY5LjUgNi4xIDAgNy42IC40IDEyLjUgMi44bDUuNiAyLjhjMTEuNy0xMS43IDIzLjQtMjMuNCAzNS4xLTM1LjFsLTQuNC02LjljLTguNi0xMy4zLTE2LjYtMzIuOC0yMC4zLTQ4LjktMTAuMi00NS40IC44LTkzLjMgMjkuOC0xMjkuNyA1MC4xLTYyLjggMTQwLjEtNzYuNyAyMDYuNi0zMiAzNi41IDI0LjUgNjAuMyA2Mi41IDY3IDEwNyAxLjQgOS40IDEuNCAzMS44IDAgNDEuOC00LjkgMzQuNi0xOS43IDY0LTQ0LjQgODguNy0xMi43IDEyLjctMjMgMjAuMS0zOS4yIDI4LjItMTkuMyA5LjctMzUuNyAxNC4zLTU4IDE2LjEtMzEuNyAyLjYtNjYuOS02LjEtOTMuOC0yMy40bC02LjktNC40Yy0xMS43IDExLjctMjMuNCAyMy40LTM1LjEgMzUuMWwyLjggNS42YzIuNSA0LjkgMi44IDYuNCAyLjggMTIuNSAwIDEzLjEgMy4xIDkuNC02OSA4MS41LTU1LjYgNTUuNS02NC4xIDYzLjctNjguNCA2NS43LTUuNSAyLjUtMTMuOSAzLjQtMTkgMi4xek0zNTkuNCAyOTYuOWM0MC4xLTcuMyA3NS4xLTM0IDkyLjctNzAuNyAyOC01OC40IDkuMi0xMjctNDQuOC0xNjMuMy0xMi45LTguNy0zMC44LTE2LTQ3LjctMTkuNC0xMS43LTIuNC0zNi40LTIuMS00OC42IC41LTE4LjIgMy45LTM0LjkgMTEuMS00OS40IDIxLjQtOC45IDYuNC0yMy43IDIxLjEtMjkuOSAyOS45LTM0LjYgNDktMzEuNSAxMTQuMSA3LjcgMTU5LjMgMjAuMSAyMy4yIDQ3LjggMzguNCA3OC42IDQzIDEwLjIgMS41IDMxIDEuMiA0MS41LS44em0tMzUuNS0xNy40Yy0xMy44LTIuMi0yNS42LTUuNy0zNS4xLTEwLjVsLTUuNC0yLjcgMC00OS45LTkuNSAwYy04LjIgMC0xOS41IDEuNi0yNy43IDQtMS4xIC4zLTEuNSAxLjYtMS43IDQuOGwtLjMgNC40LTQuMS03LjhjLTktMTcuMi0xMi4yLTMwLjctMTIuMi01MS40IDAtMTYgMS4xLTIzLjQgNS42LTM2LjMgMi40LTYuOCA4LjItMTguOSAxMC44LTIyLjMgMS4xLTEuNSAxLjItMS4xIDEuMyAzLjNsMCA1YzE4LjgtLjIgMzcuNi0uMyA1Ni40LS41IC4yLTQuNyAuMy05LjUgLjUtMTQuMmwtMTkgMCAwLTMxIDMuNC0xLjdjNS42LTIuOCAxNS45LTYuNyAyMS43LTguMiAzLS44IDYuMS0xLjYgNi45LTEuOCAxLjItLjQgMS4zIC4xIC43IDMuMy0xLjIgNi4xLS45IDIzIC41IDI5IDIuOCAxMS45IDkuOCAyMC43IDE5LjIgMjQuMyA1LjYgMi4xIDE2LjMgMi42IDIyLjUgLjkgNS45LTEuNiAxMi41LTYuNCAxNS45LTExLjUgNS03LjUgNi43LTE0LjEgNy4yLTI3LjFsLjQtMTEuNCA3IDMuNmM4IDQuMiAxNy44IDExLjIgMjQuOSAxOCA0LjggNC42IDUgNC44IDUgOS4ybDAgNC41LTE4LjkgMCAwIDE0LjYgMzUgMGMxLjMgMi42IDIuNSA1LjIgMy44IDcuN2wtOS43IDBjLTYuNyAwLTEyLjcgLjYtMTkuNCAxLjlsLTkuNyAxLjkgMCA3LjFjMCAzLjkgLjIgNy4xIC4zIDcuMXM0LjEtLjggOC43LTEuNyA4LjctMS43IDkuMS0xLjdjLjQgMCAuOCAxMS4zIC44IDI1LjhsMCAyNS44Yy02LjIgLjItMTIuMyAuMy0xOC41IC41LS4yIDQuNy0uMyA5LjQtLjUgMTQuMiAxMy41IC4yIDI3IC4zIDQwLjQgLjUtMSAyLjMtMiA0LjUtMyA2LjhsLTEwLjcgLjFjLTkuOSAuMS0xMS4xIC4yLTE1LjYgMi41LTExLjggNS44LTE4LjEgMTguOS0xOC4zIDM3LjlsLS4xIDkuMy01LjggM2MtNSAyLjYtMjIuNiA5LTI0LjkgOS0uNSAwLS44LTEyLS44LTMwLjZsMC0zMC42LTkuNCAwYy02IDAtMTIuNCAuNi0xNy45IDEuNy0xMi42IDIuNi0xMS41IDEuNy0xMS41IDkuNSAwIDUgLjMgNi44IDEuMSA2LjggLjYgMCA0LjYtLjggOC44LTEuN3M4LTEuNyA4LjMtMS43IC42IDExIC42IDI0LjVsMCAyNC41LTcuNS0uMWMtNC4xLS4xLTguNS0uMy05LjctLjV6bS0zOS40LTcxLjZjOC45LTMuOSAxNS42LTEyLjkgMTguMy0yNC40IDEuNi02LjkgMS43LTIyLjYgMC0zMC4yLTIuNS0xMi05LjYtMjEuMS0xOS4zLTI0LjgtNi45LTIuNi0xOC40LTIuNi0yNS4zIDAtOS43IDMuNy0xNi40IDEyLjgtMTkuMiAyNS42LTEuNiA3LjUtMS42IDIxLjQgMCAyOC45IDIuNiAxMi41IDEwLjUgMjIuMyAyMC42IDI1LjYgNyAyLjMgMTguOSAyIDI0LjktLjd6bS0xOS45LTE0LjVjLTMuNS0zLTUuMi04LjktNS44LTIwLjYtLjYtMTAuNSAuNi0yMS4zIDIuOS0yNiAyLTQuMyA1LjgtNi40IDEwLjQtNiA3LjQgLjggMTAuMyA2LjUgMTEuMSAyMi41IC45IDE2LjctMS45IDI4LjktNyAzMS4zLTMuOSAxLjgtOC42IDEuMy0xMS42LTEuMnptOTQuOSAxNS4xYzE1LTQuNiAyMi44LTIwLjEgMjEuOS00My41LS44LTE5LjktNy45LTMyLjEtMjEuNS0zNy4yLTUuNy0yLjEtMTgtMS44LTI0IC41LTkuNiAzLjctMTYuNCAxMi40LTE5LjMgMjQuNy0yIDguNi0xLjMgMjggMS4zIDM1LjIgNCAxMS4zIDExLjYgMTguNyAyMS40IDIxIDUuOCAxLjQgMTQuNCAxIDIwLjMtLjh6bS0xNi43LTE0LjJjLTUtMi43LTcuMy0xMy4yLTYuNS0zMC4xIC42LTEyLjggMS41LTE2LjcgNC44LTIwLjQgNC43LTUuMyAxMy42LTMuOCAxNi43IDIuOCAzLjQgNy4zIDQgMzAuMSAxIDQwLjItMS43IDUuNy01LjIgOC44LTEwLjEgOC43LTIgMC00LjYtLjYtNS44LTEuM3ptLTg1LjIgNTEuNWMtNy4zLTcuNi05LjktMTEuNC04LjQtMTEuOSAyLjktLjkgMTMuOS0zLjEgMTQuMi0yLjggLjIgLjIgLjIgNC45IC4xIDEwLjRsLS4yIDEwLjEtNS42LTUuOXptMTU2LjQtMS4yYy43LTYgMy4xLTExLjUgNS43LTEzLjIgMi45LTEuOCA2LjQtMi42IDgtMS43IDEuMiAuNyAuOSAxLjUtMi40IDUuOS0yLjEgMi44LTUuNiA3LTcuOCA5LjRsLTQgNC4zIC41LTQuN3pNNDM4LjQgMTYxbC4xLTMyLjkgMi42IDcuN2M1LjEgMTUuMyA2LjkgMzEuOCA1LjEgNDYuNi0xLjQgMTEuNi0xLjQgMTEuNS00LjkgMTEuNWwtMyAwIC4xLTMyLjl6TTM0NCAxMDYuMmMtMi42LTEtNS4zLTQuOC02LjUtOS0xLjItNC0xLjUtMjguNS0uNC0zMy41IC42LTMgLjktMy4yIDMuOC0zLjIgNi4yIDAgMTguMyAyIDE4LjcgMy4xIC4yIC42IC43IDQuOSAxIDkuNSAuNyA5LjctLjcgMjMuMi0yLjggMjcuNi0yLjQgNS4xLTguNSA3LjUtMTMuNyA1LjN6bS05NC4zLTIuNGMuNC0uOCAzLjctNC42IDcuMy04LjRsNi41LTYuOWMwIDUuNiAwIDExLjIgLjEgMTYuOGwtNy4zIDBjLTYuNyAwLTcuMy0uMS02LjUtMS41em0zNC40IDM0MS43Yy0yNC02LjktNDMuOS0xMi45LTQ0LjItMTMuMS0uNS0uNiAyNC4zLTg4LjUgMjUuMy04OS42IC41LS41IDg1LjQgMjMuMyA4OC45IDI0LjkgMS4yIC42LS4xIDUuOC0xMC42IDQyLjQtNi42IDIzLTEyLjQgNDMuMi0xMi44IDQ1cy0xLjQgMy4yLTEuOSAzLjEtMjAuNy01LjgtNDQuNy0xMi43ek0zNDIuOCA0NTZjMC0xLjEgMjQuNy04Ny4zIDI1LjEtODcuNiAuOS0uNyA4Ny4xLTI0LjcgODcuNC0yNC40IC40IC40LTI0LjEgODcuMy0yNC43IDg3LjktLjQgLjMtODMuMiAyNC04NS44IDI0LjUtMS4xIC4yLTEuOSAuMS0xLjktLjR6TTE5OS42IDQxNy41YzE3LTE3LjEgMzIuMi0zMi43IDMzLjctMzQuNyAzLjQtNC41IDguMi0xNC44IDkuNS0yMC41IC41LTIuNCAxLjEtNy4xIDEuMi0xMC41bC4yLTYuMiAzLjctMWMyLS42IDMuOC0uOSA0LS43IC41IC41LTI0LjMgODctMjUuMSA4Ny44LS40IC4zLTEzLjYgNC4zLTI5LjQgOC44bC0yOC43IDguMiAzMS0zMS4xem0xNjYuOS02MS42Yy0uMi0uMy0uNy0yLTEuMi0zLjdsLS45LTMuMiAzLjItLjVjMjctNC42IDU1LjktMTcuMyA3OC43LTM0LjUgMy4zLTIuNSA1LjEtMy40IDUuMy0yLjcgMS4xIDMuMyA1LjUgMTkuMSA1LjQgMTkuMy0uNyAuNy05MC4yIDI1LjgtOTAuNSAyNS40ek02Mi45IDMyOS44Yy0xLS44LTIzLjgtNzcuOS0yNS41LTg2LjQtLjMtMS43IDMtLjkgNDMuOCAxMC44IDQyLjcgMTIuMiA0NC4yIDEyLjcgNDQuOCAxNC45IC41IDIgLjIgMi42LTIuNSA0LjUtMS43IDEuMi0xNS41IDE0LjYtMzAuNyAyOS44cy0yNy44IDI3LjYtMjggMjcuNi0xLjEtLjUtMS44LTEuMXptMTYuNS04OC4yYy0yMy45LTYuOS00My41LTEyLjYtNDMuNi0xMi42LS4zLS4yIDI1LjMtODkuMyAyNS45LTg5LjggLjQtLjQgODkuMSAyNC40IDkwIDI1LjIgLjIgLjItNS40IDIwLjUtMTIuNCA0NS4xLTExLjYgNDAuNy0xMi45IDQ0LjgtMTQuNSA0NC43LTEgMC0yMS4zLTUuNy00NS4yLTEyLjZ6bTU5LjYgMTAuOGMuMi0uNiA0LjMtMTQuNSA4LjktMzAuOWw4LjUtMjkuNyAxLjEgNi41YzEuOSAxMS4yIDUuMyAyMy45IDkuMyAzNS4xIDIuMSA1LjkgMy44IDEwLjkgMy42IDExcy02LjcgMi0xNC41IDQuMy0xNC45IDQuMi0xNS44IDQuNWMtMS4xIC4zLTEuNSAuMS0xLjItLjd6TTEwNiAxMzkuMWMtMjMuOS02LjktNDMuNy0xMi44LTQzLjktMTMuMi0uOC0xLjMtMjUuMS04Ny0yNC43LTg3LjQgLjUtLjUgODYuOCAyNC4zIDg3LjYgMjUuMSAuOSAxIDI1LjggODguMiAyNS4xIDg4LS4zIDAtMjAuMS01LjctNDQtMTIuNnptNDMuMi0zNC41QzEzNi41IDYwIDEzOSA2OC44IDEzNy4yIDYyLjVsMzQuMS05LjdjMTguOC01LjQgMzQuNy05LjkgMzUuNC0xMC4ycy0xLjYgMi44LTUuMiA2LjhjLTE5LjEgMjEuMy0zMS41IDQ0LTM5LjQgNzEuOS0xLjUgNS4yLTIuNyAxMC4zLTIuNyAxMS4zIDAgNS45LTIuMy0uNS0xMC4yLTI4eiJdfSxhUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VsbGNhc3QiLGljb246WzQ0OCw1MTIsW10sImYyZGEiLCJNMzUzLjUgMzJMOTQuOCAzMkM0Mi43IDMyIC4xIDc0LjYgLjEgMTI2LjZsMCAyNTguN0MuMSA0MzcuNCA0Mi43IDQ4MCA5NC44IDQ4MGwyNTguNyAwYzUyLjEgMCA5NC43LTQyLjYgOTQuNy05NC42bDAtMjU4LjhjMC01Mi00Mi42LTk0LjYtOTQuNy05NC42em0tNTAgMzE2LjRjLTI3LjkgNDguMi04OS45IDY0LjktMTM4LjIgMzcuMi0yMi45IDM5LjgtNTQuOSA4LjYtNDIuMy0xMy4ybDE1LjctMjcuMmM1LjktMTAuMyAxOS4yLTEzLjkgMjkuNS03LjkgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyAyNy42IDE1LjkgNjMuNCA2LjMgNzkuNC0yMS4zIDE1LjktMjcuNiA2LjMtNjMuNC0yMS4zLTc5LjQtMTcuOC0xMC4yLS42LS40LTE4LjYtMTAuNi0yNC42LTE0LjItMy40LTUxLjkgMjEuNi0zNy41IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgNDguNCAyOCA2NS4xIDkwLjMgMzcuMiAxMzguNXptMjEuOC0yMDguOGMtMTcgMjkuNS0xNi4zIDI4LjgtMTkgMzEuNS02LjUgNi41LTE2LjMgOC43LTI2LjUgMy42LTE4LjYtMTAuOCAuMSAuMS0xOC41LTEwLjctMjcuNi0xNS45LTYzLjQtNi4zLTc5LjQgMjEuM3MtNi4zIDYzLjQgMjEuMyA3OS40YzAgMCAxOC41IDEwLjYgMTguNiAxMC42IDI0LjYgMTQuMiAzLjQgNTEuOS0yMS42IDM3LjUtMTguNi0xMC44IC4xIC4xLTE4LjUtMTAuNy00OC4yLTI3LjgtNjQuOS05MC4xLTM3LjEtMTM4LjQgMjcuOS00OC4yIDg5LjktNjQuOSAxMzguMi0zNy4ybDQuOC04LjRjMTQuMy0yNC45IDUyLTMuMyAzNy43IDIxLjV6Il19LHNQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXgiLGljb246WzQ0OCw1MTIsW10sImYzY2IiLCJNMCA2NEwwIDQxMi45YzAgNTYuMiA4OCA1OC4xIDg4IDBsMC0yMzguNmM3LjktNTIuOSA4OC01MC40IDg4IDYuNWwwIDE3NS4zYzAgNTcuOSA5NiA1OCA5NiAwTDI3MiAyNDBjNS4zLTU0LjcgODgtNTIuNSA4OCA0LjNsMCAyMy44YzAgNTkuOSA4OCA1Ni42IDg4IDBMNDQ4IDY0IDAgNjR6Il19LGlQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hcHBsZS1wYXkiLGljb246WzU3Niw1MTIsW10sImY0MTYiLCJNMzAyLjIgMjE4LjRjMCAxNy4yLTEwLjUgMjcuMS0yOSAyNy4xbC0yNC4zIDAgMC01NC4yIDI0LjQgMGMxOC40IDAgMjguOSA5LjggMjguOSAyNy4xek0zNDkuNyAyODFjMCA4LjMgNy4yIDEzLjcgMTguNSAxMy43IDE0LjQgMCAyNS4yLTkuMSAyNS4yLTIxLjlsMC03LjctMjMuNSAxLjVjLTEzLjMgLjktMjAuMiA1LjgtMjAuMiAxNC40ek01NzYgNzlsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDc5Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDc5QzAgNTIuNSAyMS41IDMxIDQ4IDMxbDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjcuOCAxOTcuMmM4LjQgLjcgMTYuOC00LjIgMjIuMS0xMC40IDUuMi02LjQgOC42LTE1IDcuNy0yMy43LTcuNCAuMy0xNi42IDQuOS0yMS45IDExLjMtNC44IDUuNS04LjkgMTQuNC03LjkgMjIuOHptNjAuNiA3NC41Yy0uMi0uMi0xOS42LTcuNi0xOS44LTMwLS4yLTE4LjcgMTUuMy0yNy43IDE2LTI4LjItOC44LTEzLTIyLjQtMTQuNC0yNy4xLTE0LjctMTIuMi0uNy0yMi42IDYuOS0yOC40IDYuOS01LjkgMC0xNC43LTYuNi0yNC4zLTYuNC0xMi41IC4yLTI0LjIgNy4zLTMwLjUgMTguNi0xMy4xIDIyLjYtMy40IDU2IDkuMyA3NC40IDYuMiA5LjEgMTMuNyAxOS4xIDIzLjUgMTguNyA5LjMtLjQgMTMtNiAyNC4yLTYgMTEuMyAwIDE0LjUgNiAyNC4zIDUuOSAxMC4yLS4yIDE2LjUtOS4xIDIyLjgtMTguMiA2LjktMTAuNCA5LjgtMjAuNCAxMC0yMXptMTM1LjQtNTMuNGMwLTI2LjYtMTguNS00NC44LTQ0LjktNDQuOGwtNTEuMiAwIDAgMTM2LjQgMjEuMiAwIDAtNDYuNiAyOS4zIDBjMjYuOCAwIDQ1LjYtMTguNCA0NS42LTQ1em05MCAyMy43YzAtMTkuNy0xNS44LTMyLjQtNDAtMzIuNC0yMi41IDAtMzkuMSAxMi45LTM5LjcgMzAuNWwxOS4xIDBjMS42LTguNCA5LjQtMTMuOSAyMC0xMy45IDEzIDAgMjAuMiA2IDIwLjIgMTcuMmwwIDcuNS0yNi40IDEuNmMtMjQuNiAxLjUtMzcuOSAxMS42LTM3LjkgMjkuMSAwIDE3LjcgMTMuNyAyOS40IDMzLjQgMjkuNCAxMy4zIDAgMjUuNi02LjcgMzEuMi0xNy40bC40IDAgMCAxNi40IDE5LjYgMCAwLTY4IC4xIDB6TTUxNiAyMTAuOWwtMjEuNSAwLTI0LjkgODAuNi0uNCAwLTI0LjktODAuNi0yMi4zIDAgMzUuOSA5OS4zLTEuOSA2Yy0zLjIgMTAuMi04LjUgMTQuMi0xNy45IDE0LjItMS43IDAtNC45LS4yLTYuMi0uM2wwIDE2LjRjMS4yIC40IDYuNSAuNSA4LjEgLjUgMjAuNyAwIDMwLjQtNy45IDM4LjktMzEuOEw1MTYgMjEwLjl6Il19LHJQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb2xhbmEiLGljb246WzUxMiw1MTIsW10sImU4NWUiLCJNNTEwLjUgMzg1LjJsLTg0LjkgODguN2MtMS44IDEuOS00LjEgMy41LTYuNiA0LjVzLTUuMiAxLjYtNy45IDEuNkw4LjkgNDgwYy0xLjkgMC0zLjgtLjUtNS40LTEuNnMtMi45LTIuNS0zLjYtNC4yLTEtMy42LS43LTUuNSAxLjItMy42IDIuNS00LjlsODQuOS04OC43YzEuOC0xLjkgNC4xLTMuNSA2LjUtNC41czUuMS0xLjYgNy44LTEuNmw0MDIuNCAwYzEuOSAwIDMuOCAuNSA1LjQgMS42czIuOSAyLjUgMy42IDQuMiAxIDMuNiAuNyA1LjUtMS4yIDMuNi0yLjUgNC45ek00MjUuNyAyMDYuNmMtMS44LTEuOS00LjEtMy41LTYuNi00LjVzLTUuMi0xLjYtNy45LTEuNmwtNDAyLjQgMGMtMS45IDAtMy44IC41LTUuNCAxLjZzLTIuOSAyLjUtMy42IDQuMi0xIDMuNi0uNyA1LjUgMS4yIDMuNiAyLjUgNC45bDg0LjkgODguN2MxLjggMS45IDQuMSAzLjUgNi41IDQuNXM1LjEgMS42IDcuOCAxLjZsNDAyLjQgMGMxLjkgMCAzLjgtLjUgNS40LTEuNnMyLjktMi41IDMuNi00LjIgMS0zLjYgLjctNS41LTEuMi0zLjYtMi41LTQuOWwtODQuOS04OC43ek04LjkgMTQyLjlsNDAyLjQgMGMyLjcgMCA1LjQtLjUgNy45LTEuNnM0LjctMi42IDYuNi00LjVsODQuOS04OC43YzEuMy0xLjQgMi4yLTMuMSAyLjUtNC45cy4xLTMuNy0uNy01LjUtMi0zLjItMy42LTQuMi0zLjUtMS42LTUuNC0xLjZMMTAxIDMyYy0yLjcgMC01LjQgLjUtNy44IDEuNnMtNC43IDIuNi02LjUgNC41TDEuNyAxMjYuOGMtMS4zIDEuNC0yLjIgMy4xLTIuNSA0LjlzLS4xIDMuNyAuNyA1LjUgMiAzLjIgMy42IDQuMiAzLjUgMS42IDUuNCAxLjZ6Il19LG9QdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0eXBlc2NyaXB0IixpY29uOls0NDgsNTEyLFtdLCJlODQwIiwiTTE2LjggMzJsNDE0LjQgMGM5LjMgMCAxNi44IDcuNSAxNi44IDE2LjhsMCA0MTQuNGMwIDkuMy03LjUgMTYuOC0xNi44IDE2LjhMMTYuOCA0ODBDNy41IDQ4MCAwIDQ3Mi41IDAgNDYzLjJMMCA0OC44QzAgMzkuNSA3LjUgMzIgMTYuOCAzMnpNMjQ5IDI3MC4zbDAtMzYuNy0xNTkuNCAwIDAgMzYuNyA1Ni45IDAgMCAxNjMuNiA0NS4zIDAgMC0xNjMuNiA1Ny4yIDB6bTE4LjEgMTU5LjNjNy4zIDMuNyAxNS45IDYuNSAyNS45IDguNHMyMC41IDIuOCAzMS41IDIuOGMxMC44IDAgMjEtMSAzMC43LTMuMXMxOC4yLTUuNCAyNS41LTEwLjEgMTMuMS0xMC45IDE3LjQtMTguNCA2LjQtMTcgNi40LTI4LjJjMC04LjEtMS4yLTE1LjItMy43LTIxLjNzLTUuOS0xMS41LTEwLjUtMTYuMy0xMC4xLTktMTYuNS0xMi44LTEzLjctNy4zLTIxLjctMTAuN2MtNS45LTIuNC0xMS4yLTQuOC0xNS45LTcuMXMtOC43LTQuNi0xMS45LTctNS44LTQuOS03LjYtNy41LTIuNy01LjctMi43LTljMC0zLjEgLjgtNS44IDIuNC04LjNzMy44LTQuNiA2LjctNi40IDYuNS0zLjEgMTAuNy00LjEgOC45LTEuNSAxNC4xLTEuNWMzLjcgMCA3LjcgLjMgMTEuOSAuOHM4LjQgMS40IDEyLjYgMi42IDguMyAyLjYgMTIuMyA0LjQgNy43IDMuOCAxMSA2LjFsMC00MS44Yy02LjgtMi42LTE0LjMtNC41LTIyLjQtNS44cy0xNy40LTEuOS0yNy45LTEuOWMtMTAuNyAwLTIwLjggMS4xLTMwLjQgMy40cy0xOCA1LjgtMjUuMiAxMC43LTEzIDExLTE3LjIgMTguNS02LjMgMTYuNS02LjMgMjYuOWMwIDEzLjMgMy45IDI0LjcgMTEuNiAzNC4xczE5LjUgMTcuNCAzNS4yIDIzLjljNi4yIDIuNSAxMS45IDUgMTcuMyA3LjRzMTAgNC45IDEzLjggNy41IDcgNS40IDkuMiA4LjUgMy40IDYuNiAzLjQgMTAuNWMwIDIuOS0uNyA1LjYtMi4xIDhzLTMuNSA0LjYtNi40IDYuNC02LjQgMy4yLTEwLjcgNC4zLTkuMyAxLjUtMTUgMS41Yy05LjcgMC0xOS40LTEuNy0yOC45LTUuMXMtMTguNC04LjUtMjYuNi0xNS4zbDAgNDQuN3oiXX0sblB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlIixpY29uOls0NDgsNTEyLFtdLCJlNjNjIiwiTTE0NS42IDBsMTU3IDAgNDQuNyA1MC44czM5LjMtMTAuOSA1Ny44IDcuNiAzMy44IDM0LjkgMzMuOCAzNC45bC0xMiAyOS41IDE1LjMgNDMuN3MtNDQuOSAxNzAuMi01MC4xIDE5MWMtMTAuNCA0MC45LTE3LjQgNTYuOC00Ni45IDc3LjVzLTgyLjkgNTYuOC05MS42IDYyLjJjLTEuOSAxLjItMy45IDIuNS01LjkgMy45LTcuNSA1LjEtMTUuOCAxMC44LTIzLjUgMTAuOHMtMTYuMS01LjctMjMuNS0xMC44Yy0yLTEuNC00LTIuOC01LjktMy45LTguNy01LjUtNjIuMS00MS41LTkxLjYtNjIuMnMtMzYuNS0zNi42LTQ2LjktNzcuNWMtNS4zLTIwLjgtNTAuMS0xOTEtNTAuMS0xOTFMMjEuNSAxMjIuOCA5LjMgOTMuM3MxNS4zLTE2LjQgMzMuOC0zNC45IDU3LjgtNy42IDU3LjgtNy42TDE0NS42IDB6bTc4LjUgNDA3LjZjMy43IDAgOC45LTQuNyAxMy04LjQgLjYtLjUgMS4yLTEuMSAxLjctMS41IDQuMi0zLjcgNDcuOC0zNy41IDUxLTM5LjhzNS40LTYuNSAxLjktOC43Yy0yLjgtMS43LTEwLTUuNS0yMC4zLTEwLjgtMy0xLjYtNi4zLTMuMi05LjctNS0xNS40LTgtMzQuNS0xNC43LTM3LjUtMTQuN3MtMjIuMSA2LjgtMzcuNSAxNC43Yy0zLjUgMS44LTYuNyAzLjUtOS43IDUtMTAuMyA1LjMtMTcuNiA5LjEtMjAuMyAxMC44LTMuNiAyLjItMS40IDYuNCAxLjkgOC43czQ2LjggMzYuMSA1MSAzOS44Yy41IC41IDEuMSAxIDEuNyAxLjUgNC4xIDMuNyA5LjMgOC40IDEzIDguNGwtLjIgMHptMC0xNjUuN2M0LjcgMCAxNy42LTMgMjYuNC01bDItLjVjNy44LTEuOCA3LjMtNi4zIDYuNC0xMy0uMS0uOC0uMi0xLjYtLjMtMi40LS42LTYuMS01LjgtMzMuMS05LjEtNTAuMy0xLjEtNS44LTItMTAuNS0yLjQtMTIuOS0xLjUtOC4xLS42LTkuNCAuNy0xMS4zIC4yLS4zIC41LS43IC43LTEuMSAxLjQtMi4zIDE2LTYuMiAyNy45LTkuNSAyLjUtLjcgNC44LTEuMyA2LjktMS45IDEwLjYtMyAzMi40LS42IDQ0LjIgLjYgMS44IC4yIDMuNCAuNCA0LjcgLjUgOS42IC45IDEwLjQgMi4zIDcuMiAzLjgtMi4zIDEuMS0xNi4yIDYuMy0yOC43IDEwLjktNC43IDEuOC05LjIgMy41LTEyLjggNC44LTEuNSAuNS0zIDEuMS00LjUgMS43LTEyLjUgNC42LTI3LjIgMTAtMjguOSAxOS40LTEuNSA4LjMgNS4yIDE5LjkgMTEuMyAzMC4zIDEuNiAyLjggMy4yIDUuNSA0LjYgOC4xIDYuMyAxMS45IDYuNSAxMy4zIDYuMSAxOC4xLS40IDMuOS0xNC41IDEyLjctMjIuNCAxNy42LTEuOCAxLjEtMy4zIDIuMS00LjIgMi43LS44IC41LTIuMSAxLjQtMy44IDIuNC04LjYgNS4yLTI2LjMgMTYtMjYuMyAyMi41IDAgNy44IDI0LjYgMjguMSAzMi40IDMzLjJzMjguOSAxNi4xIDM3LjkgMTcuOCAyMy04LjUgMzEuMi0yMy44YzcuNy0xNC40IDEuNy0yOC41LTMuMi00MGwtLjktMi4yYy00LjUtMTAuNiAxLjktMTcgNi4yLTIxLjMgLjUtLjUgMS0xIDEuNC0xLjRsNDMtNDUuN2MxLjMtMS4zIDIuNS0yLjYgMy43LTMuOCA1LjgtNS43IDEwLjgtMTAuNSAxMC44LTIyLjggMC0xNC45LTU3LjUtODQuNS01Ny41LTg0LjVzLTQ4LjUgOS4zLTU1LjEgOS4zYy01LjIgMC0xNS4zLTMuNS0yNS44LTcuMS0yLjctLjktNS40LTEuOS04LTIuNy0xMy00LjMtMjEuOC00LjQtMjEuOC00LjRzLTguNyAwLTIxLjggNC40Yy0yLjcgLjktNS40IDEuOC04IDIuNy0xMC41IDMuNi0yMC42IDcuMS0yNS44IDcuMS02LjUgMC01NS4xLTkuMy01NS4xLTkuM3MtNTcuNSA2OS42LTU3LjUgODQuNWMwIDEyLjMgNC45IDE3LjEgMTAuOCAyMi44IDEuMiAxLjIgMi41IDIuNCAzLjcgMy44bDQzLjEgNDUuOGMuNCAuNSAuOSAuOSAxLjQgMS40IDQuMyA0LjMgMTAuNiAxMC43IDYuMiAyMS4zbC0uOSAyLjJjLTQuOSAxMS41LTExIDI1LjYtMy4yIDQwIDguMiAxNS4zIDIyLjIgMjUuNSAzMS4yIDIzLjhzMzAuMS0xMi43IDM3LjktMTcuOCAzMi40LTI1LjQgMzIuNC0zMy4yYzAtNi41LTE3LjctMTcuMy0yNi4zLTIyLjUtMS43LTEtMy4xLTEuOS0zLjgtMi40LS45LS42LTIuNC0xLjUtNC4yLTIuNy03LjktNC45LTIyLTEzLjctMjIuNC0xNy42LS40LTQuOC0uMy02LjIgNi4xLTE4LjEgMS4zLTIuNSAyLjktNS4zIDQuNi04LjEgNi0xMC40IDEyLjgtMjIgMTEuMy0zMC4zLTEuNy05LjQtMTYuNC0xNC44LTI4LjktMTkuNC0xLjYtLjYtMy4xLTEuMS00LjUtMS43LTMuNi0xLjQtOC4xLTMuMS0xMi44LTQuOGwtLjEgMGMtMTIuNS00LjctMjYuNC05LjktMjguNy0xMC45LTMuMi0xLjUtMi4zLTIuOCA3LjItMy44IDEuMy0uMSAyLjktLjMgNC43LS41IDExLjgtMS4zIDMzLjYtMy42IDQ0LjItLjYgMi4xIC42IDQuNCAxLjIgNi45IDEuOSAxMS45IDMuMiAyNi41IDcuMiAyNy45IDkuNSAuMiAuNCAuNSAuNyAuNyAxLjEgMS4zIDEuOSAyLjIgMy4yIC43IDExLjMtLjQgMi40LTEuMyA3LjEtMi40IDEyLjktMy4zIDE3LjItOC41IDQ0LjItOS4xIDUwLjMtLjEgLjgtLjIgMS43LS4zIDIuNC0uOCA2LjctMS40IDExLjIgNi40IDEzbDIgLjVjOC44IDIgMjEuOCA1IDI2LjQgNWwwLS4xeiJdfSxsUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXRzeSIsaWNvbjpbMzg0LDUxMixbXSwiZjJkNyIsIk0zODQgMzQ4Yy0xLjggMTAuNy0xMy44IDExMC0xNS41IDEzMi0xMTcuOS00LjMtMjE5LjktNC43LTM2OC41IDBsMC0yNS41YzQ1LjUtOC45IDYwLjYtOCA2MS0zNS4yIDEuOC03Mi4zIDMuNS0yNDQuMSAwLTMyMi0xLTI4LjUtMTIuMS0yNi44LTYxLTM2TDAgMzUuOGM3My45IDIuNCAyNTUuOSA4LjYgMzYzLTMuOC0zLjUgMzguMi03LjggMTI2LjUtNy44IDEyNi41bC0yMy4yIDBDMzIwLjkgMTE1LjcgMzEzLjIgNjggMjc3LjMgNjhsLTEzNyAwYy0xMC4yIDAtMTAuNyAzLjUtMTAuNyA5LjhsMCAxNjMuOGM1OCAuNSA4OC41LTIuNSA4OC41LTIuNSAyOS44LTEgMjcuNi04LjUgNDAuNy02NS4zbDI1LjggMGMtNC40IDEwMS40LTMuOSA2MS44LTEuOCAxNjAuM0wyNTcgMzM0Yy05LjItNDAuMS05LjEtNjEtMzkuNS02MS41IDAgMC0yMS41LTItODgtMmwwIDEzOWMwIDI2IDE0LjMgMzguMyA0NC4zIDM4LjNsODkuMyAwYzYzLjYgMCA2Ni42LTI1IDk4LjctOTkuOGwyMi4yIDB6Il19LGNQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidGMiLGljb246WzM4NCw1MTIsW10sImYxNWEiLCJNMzEwLjQgMjQyLjZjMjcuNy0xNC4yIDQ1LjQtMzkuNCA0MS4zLTgxLjMtNS40LTU3LjQtNTIuNS03Ni42LTExNC44LTgxLjlsMC03OS40LTQ4LjUgMCAwIDc3LjJjLTEyLjYgMC0yNS41IC4zLTM4LjQgLjZsMC03Ny44LTQ4LjUgMCAwIDc5LjRjLTE3LjggLjUtMzguNiAuMy05Ny40IDBsMCA1MS43YzM4LjMtLjcgNTguNC0zLjEgNjMgMjEuNGwwIDIxNy40Yy0yLjkgMTkuNS0xOC41IDE2LjctNTMuMyAxNi4xTDQgNDQzLjdjODguNSAwIDk3LjQgLjMgOTcuNCAuM2wwIDY4IDQ4LjUgMCAwLTY3LjFjMTMuMiAuMyAyNi4yIC4zIDM4LjQgLjNsMCA2Ni43IDQ4LjUgMCAwLTY4YzgxLjMtNC40IDEzNS42LTI0LjkgMTQyLjktMTAxLjUgNS43LTYxLjQtMjMuMy04OC45LTY5LjMtOTkuOXpNMTUwLjggMTM0LjZjMjcuNCAwIDExMy4xLTguNSAxMTMuMSA0OC41IDAgNTQuNS04NS43IDQ4LjItMTEzLjEgNDguMmwwLTk2Ljd6bTAgMjUxLjhsMC0xMDYuNWMzMi44IDAgMTMzLjEtOS4xIDEzMy4xIDUzLjMgMCA2MC4yLTEwMC40IDUzLjMtMTMzLjEgNTMuM3oiXX0sZFB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFkbiIsaWNvbjpbNTEyLDUxMixbXSwiZjE3MCIsIk0yNTYgMTY3LjVsNjQuOSA5OC44LTEyOS44IDAgNjQuOS05OC44ek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zOTYuMiA4Mi43bC0xNDguMi0yMjMuMi0xNDguMiAyMjMuMiAzMC40IDAgMzMuNi01MS43IDE2OC42IDAgMzMuNiA1MS43IDMwLjIgMHoiXX0sdVB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS14LXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2MWEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjk3LjEgODRsLTEwMy44IDExOC42IDEyMi4xIDE2MS40LTk1LjYgMC03NC44LTk3LjktODUuNyA5Ny45LTQ3LjUgMCAxMTEtMTI2LjktMTE3LjEtMTUzLjEgOTggMCA2Ny43IDg5LjUgNzguMi04OS41IDQ3LjUgMHpNMzIzLjMgMzY3LjZsLTE2OS45LTIyNC43LTI4LjMgMCAxNzEuOCAyMjQuNyAyNi40IDB6Il19LHBQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZm9udC1hd2Vzb21lIixpY29uOls0NDgsNTEyLFtdLCJlNWFkIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTkwIDEyMmMwIDkuMy00LjggMTcuNC0xMi4xIDIybDE4OC45IDBjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgMS44LS40IDMuNy0xLjEgNS40TDMxMiAyNjQgMzQyLjkgMzMzLjRjLjcgMS43IDEuMSAzLjUgMS4xIDUuNCAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJsLTE4Ni44IDAgMCAzMi0zMiAwIDAtMjA5LjVjLTYuMS00LjgtMTAtMTIuMi0xMC0yMC41IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZ6Il19LGhQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3J1bWJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjIxMSIsIk01LjggMzA5LjdDMiAyOTIuNyAwIDI3NS41IDAgMjU4LjMgMCAxMzUgOTkuOCAzNSAyMjMuMSAzNSAyMzkuNyAzNSAyNTYuNCAzNyAyNzIuNCA0MC41IDE0OSA4Ny41IDUxLjkgMTg2IDUuOCAzMDkuN3pNMzk4LjcgMTIwLjVjLTEzLjctMTcuNS0yOS43LTMyLjctNDcuOC00NS4zLTE0OS42IDQ0LjMtMjY2LjMgMTYyLjEtMzA5LjcgMzEyIDEyLjUgMTguMSAyOCAzNS42IDQ1LjIgNDkgNDMuMS0xNTEuMyAxNjEuMi0yNzEuNyAzMTIuMy0zMTUuN3ptMTUuOCAyNTIuN2MxNS4yLTI1LjEgMjUuNC01My43IDI5LjUtODIuOC03OS40IDQyLjktMTQ1IDExMC42LTE4Ny42IDE5MC4zIDMwLTQuNCA1OC45LTE1LjMgODQuNi0zMS4zIDM1IDEzLjEgNzAuOSAyNC4zIDEwNyAzMy42LTkuMy0zNi41LTIwLjQtNzQuNS0zMy41LTEwOS44em0yOS43LTE0NS41Yy0yLjYtMTkuNS03LjktMzguNy0xNS44LTU2LjgtMTM3LjkgNDUuOC0yNDYuNCAxNTYuNi0yOTEuMyAyOTUuMSAxOC4xIDcuNiAzNyAxMi41IDU2LjYgMTUuMiA0Ni4zLTExNC4xIDEzNi44LTIwNi44IDI1MC41LTI1My41eiJdfSxKOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiNDItZ3JvdXAiLGljb246WzY0MCw1MTIsWyJpbm5vc29mdCJdLCJlMDgwIiwiTTMyMCA5NmwwIDMyMGMyMSAwIDQxLjgtNC4xIDYxLjItMTIuMnMzNy0xOS44IDUxLjktMzQuNyAyNi42LTMyLjUgMzQuNy01MS45IDEyLjItNDAuMiAxMi4yLTYxLjItNC4xLTQxLjgtMTIuMi02MS4yLTE5LjgtMzcuMS0zNC43LTUxLjktMzIuNS0yNi42LTUxLjktMzQuNy00MC4yLTEyLjItNjEuMi0xMi4yek0wIDI1NkwxNjAgNDE2IDMyMCAyNTYgMTYwIDk2IDAgMjU2em00ODAgMGMwIDIxIDQuMSA0MS44IDEyLjIgNjEuMnMxOS44IDM3IDM0LjcgNTEuOSAzMi41IDI2LjYgNTEuOSAzNC43IDQwLjIgMTIuMiA2MS4yIDEyLjJsMC0zMjBjLTQyLjQgMC04My4xIDE2LjktMTEzLjEgNDYuOVM0ODAgMjEzLjYgNDgwIDI1NnoiXX0sZlB0PUo4ZSxtUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1bWJsZXVwb24tY2lyY2xlIixpY29uOls1MTIsNTEyLFtdLCJmMWEzIiwiTTI2NCA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCAxNzcuNWMtOS44IDAtMTcuOCA4LTE3LjggMTcuOGwwIDEwNi45YzAgNDAuOS0zMy45IDczLjktNzQuOSA3My45LTQxLjQgMC03NC45LTMzLjUtNzQuOS03NC45bDAtNDYuNSA1Ny4zIDAgMCA0NS44YzAgMTAgOCAxNy44IDE3LjggMTcuOHMxNy44LTcuOSAxNy44LTE3LjhsMC0xMDguNGMwLTQwIDM0LjItNzIuMSA3NC43LTcyLjEgNDAuNyAwIDc0LjcgMzIuMyA3NC43IDcyLjZsMCAyMy43LTM0LjEgMTAuMS0yMi45LTEwLjcgMC0yMC42Yy4xLTkuNi03LjktMTcuNi0xNy43LTE3LjZ6TTQzMS42IDMwOS4xYzAgNDEuNC0zMy41IDc0LjktNzQuOSA3NC45LTQxLjIgMC03NC45LTMzLjItNzQuOS03NC4ybDAtNDYuOCAyMi45IDEwLjcgMzQuMS0xMC4xIDAgNDcuMWMwIDkuOCA4IDE3LjYgMTcuOCAxNy42czE3LjgtNy45IDE3LjgtMTcuNmwwLTQ4IDU3LjMgMGMtLjEgNDUuOS0uMSA0Ni40LS4xIDQ2LjR6Il19LGdQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzeW1mb255IixpY29uOls1MTIsNTEyLFtdLCJmODNkIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzg5LjcgMTUxLjVjLTExLjUgLjQtMTkuNC02LjQtMTkuOC0xNi45LS4zLTkuMiA2LjctMTMuNCA2LjUtMTguOS0uMi02LjUtMTAuMi02LjgtMTIuOS02LjctMzkuOCAxLjMtNDguNiA1Ny01OC45IDExMy44IDIxLjQgMy4yIDM2LjYtLjcgNDUuMS02LjIgMTItNy43LTMuMy0xNS43LTEuNC0yNC42IDQtMTguMiAzMi42LTE5IDMyIDUuMy0uNCAxNy45LTI1LjkgNDEuOC03Ny42IDM1LjctMTAuOCA1OS41LTE4LjQgMTE1LTU4LjIgMTYxLjctMjkgMzQuNS01OC40IDM5LjgtNzEuNiA0MC4zLTI0LjYgLjktNDEtMTIuMy00MS42LTI5LjgtLjYtMTcgMTQuNC0yNi4zIDI0LjMtMjYuNiAyMS45LS44IDMwLjEgMjUuNyAxNC45IDM0LTEyLjEgOS43IC4xIDEyLjYgMi4xIDEyLjYgMTAuNC0uNCAxNy4zLTUuNSAyMi4yLTkgMjQtMjAgMzMuMi01NC45IDQ1LjQtMTE4LjMgOC4yLTQ5LjcgMTctNzggMTguMi04Mi0xNi45LTEyLjctMjcuMS0yOC42LTQ5LjgtMzQuNy0xNS42LTQuMi0yNS4xLS42LTMxLjggNy44LTcuOSAxMC01LjMgMjMgMi40IDMwLjdsMTIuNiAxNGMxNS41IDE3LjkgMjQgMzEuOSAyMC44IDUwLjYtNS4xIDI5LjktNDAuNyA1Mi45LTgyLjkgMzkuOS0zNi0xMS4xLTQyLjctMzYuNi0zOC40LTUwLjYgNy41LTI0LjIgNDIuNC0xMS43IDM0LjYgMTMuNi0yLjggOC42LTQuOSA4LjctNi4zIDEzLjEtNC42IDE0LjggNDEuOCAyOC40IDUxLTEuNCA0LjUtMTQuNS01LjMtMjEuNy0yMi4yLTM5LjktMjguNS0zMS43LTE2LTY1LjUgMi45LTc5LjcgNTIuOC0zOS40IDEwMC41IDE3LjUgMTEwLjYgMjUuOCAzNy4yLTEwOSAxMDAuNS0xMDUuNSAxMDIuNC0xMDUuNSAyNS4yLS44IDQ0LjIgMTAuNiA0NC44IDI4LjYgLjIgNy43LTQuMiAyMi42LTE5LjUgMjMuMXoiXX0sYlB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNhbGVzZm9yY2UiLGljb246WzY0MCw1MTIsW10sImY4M2IiLCJNMjQ5LjQgMjQ1LjZsLTI2LjQgMGMuNy01LjIgMy4zLTE0LjEgMTMuNi0xNC4xIDYuOCAwIDEyIDMuOCAxMi43IDE0LjF6TTM4NiAyMzEuOGMtLjUgMC0xNC4xLTEuOC0xNC4xIDIwczEzLjYgMjAgMTQuMSAyMGMxMyAwIDE0LjEtMTMuNSAxNC4xLTIwIDAtMjEuOC0xMy43LTIwLTE0LjEtMjB6TTE0Mi44IDI1NS41Yy0xLjEgLjktMiAyLTIuNSAzLjJzLS44IDIuNy0uNyA0YzAgNC44IDIuMSA2LjEgMy4zIDcgNC43IDMuNyAxNS4xIDIuMSAyMC45IDFsMC0xNi45Yy01LjMtMS4xLTE2LjctMi0yMC45IDEuNnpNNjQwLjUgMjMyYzAgODcuNi04MCAxNTQuNC0xNjUuNCAxMzYuNC0xOC40IDMzLTcwLjcgNzAuOC0xMzIuMiA0MS42LTQxLjIgOTYtMTc3LjkgOTIuMi0yMTMuOC01LjItMTE5LjcgMjMuOS0xNzguOC0xMzguNC03NS4zLTE5OS4zLTM0LjgtNzkuNCAyMi42LTE3My42IDExNC4zLTE3My42IDE5LjEgMCAzNy45IDQuNCA1NSAxMi45czMyIDIwLjcgNDMuNiAzNS44YzIwLjctMjEuNCA0OS40LTM0LjggODEuMS0zNC44IDQyLjMgMCA3OSAyMy41IDk4LjggNTguNiA5Mi44LTQwLjcgMTkzLjggMjguMiAxOTMuOCAxMjcuNXpNMTIwLjkgMjYzLjhjMC0xMS44LTExLjctMTUuMi0xNy45LTE3LjItNS4zLTIuMS0xMy40LTMuNS0xMy40LTguOSAwLTkuNSAxNy02LjcgMjUuMi0yLjEgMCAwIDEuMiAuNyAxLjYtLjUgLjItLjcgMi40LTYuNiAyLjYtNy4zIC4xLS4zIC4xLS42LS4xLS44cy0uNC0uNS0uNi0uNmMtMTIuMy03LjYtNDAuNy04LjUtNDAuNyAxMi43IDAgMTIuNSAxMS41IDE1LjQgMTcuOSAxNy4yIDQuNyAxLjYgMTMuMiAzIDEzLjIgOC43IDAgNC0zLjUgNy4xLTkuMiA3LjEtNi45IDAtMTMuNS0yLjItMTktNi4zLS41LS4yLTEuNC0uNy0xLjYgLjdsLTIuNCA3LjVjLS41IC45IC4yIDEuMiAuMiAxLjQgMS44IDEuNCAxMC4zIDYuNiAyMi44IDYuNiAxMy4yIDAgMjEuNC03LjEgMjEuNC0xOC4xbDAgMHptMzItNDIuNmMtMTAuMSAwLTE4LjcgMy4yLTIxLjQgNS4yLS4xIC4xLS4yIC4yLS4zIC4zcy0uMSAuMi0uMSAuNCAwIC4zIDAgLjQgLjEgLjMgLjIgLjRsMi42IDcuMWMuMSAuMiAuMiAuNSAuNSAuNnMuNSAuMiAuNyAuMWMuNiAwIDYuOC00IDE2LjktNCA0IDAgNy4xIC43IDkuMiAyLjQgMy42IDIuOCAzLjEgOC4zIDMuMSAxMC42LTQuOC0uMy0xOS4xLTMuNC0yOS40IDMuOC0yLjMgMS42LTQuMyAzLjgtNS41IDYuM3MtMS45IDUuNC0xLjggOC4yYzAgNS45IDEuNSAxMC40IDYuNiAxNC40IDEyLjIgOC4yIDM2LjMgMiAzOC4xIDEuNCAxLjYtLjMgMy41LS43IDMuNS0xLjlsMC0zMy45YzAtNC42IC4zLTIxLjYtMjIuOC0yMS42bDAgLjF6bTQ2LjYtMjFjMC0uMiAwLS4zLS4xLS41cy0uMS0uMy0uMy0uNC0uMi0uMi0uNC0uMy0uMy0uMS0uNS0uMWwtOS44IDBjLS4yIDAtLjMgMC0uNSAuMXMtLjMgLjEtLjQgLjMtLjIgLjItLjMgLjQtLjEgLjMtLjEgLjVsMCA3OWMwIC4yIDAgLjMgLjEgLjVzLjEgLjMgLjMgLjQgLjIgLjIgLjQgLjMgLjMgLjEgLjUgLjFsOS45IDBjLjIgMCAuMyAwIC41LS4xcy4zLS4xIC40LS4zIC4yLS4yIC4zLS40IC4xLS4zIC4xLS41bC0uMS03OXptNTUuNyAyOC45Yy0yLjEtMi4zLTYuOC03LjUtMTcuNi03LjUtMy41IDAtMTQuMiAuMi0yMC43IDguOS02LjQgNy42LTYuNiAxOC4xLTYuNiAyMS40IDAgMy4xIC4yIDE0LjMgNy4xIDIxLjIgMi42IDIuOSA5LjEgOC4yIDIyLjggOC4yIDEwLjggMCAxNi41LTIuMyAxOC42LTMuOCAuNS0uMiAuNy0uNyAuMi0xLjlsLTIuMy02LjhjLS4xLS4zLS4zLS41LS42LS42cy0uNS0uMi0uOC0uMWMtMi42IC45LTYuMyAyLjgtMTUuMyAyLjgtMTcuNCAwLTE2LjgtMTQuNy0xNi45LTE2LjdsMzcuMiAwYy4zIDAgLjUtLjEgLjctLjNzLjQtLjQgLjQtLjdjLS4zIDAgMi4xLTE0LjctNi4xLTI0LjJsMCAwem0zNi43IDUyLjdjMTMuMiAwIDIxLjQtNy4xIDIxLjQtMTguMSAwLTExLjgtMTEuNy0xNS4yLTE3LjktMTcuMi00LjEtMS43LTEzLjQtMy40LTEzLjQtOC45IDAtMy44IDMuMy02LjQgOC41LTYuNCA1LjggLjEgMTEuNSAxLjYgMTYuNyA0LjIgMCAwIDEuMiAuNyAxLjYtLjUgLjItLjcgMi40LTYuNiAyLjYtNy4zIC4xLS4zIC4xLS42LS4xLS44cy0uNC0uNS0uNi0uNmMtNy45LTQuOS0xNi43LTQuOS0yMC4yLTQuOS0xMiAwLTIwLjUgNy4zLTIwLjUgMTcuNiAwIDEyLjUgMTEuNSAxNS40IDE3LjkgMTcuMiA2LjEgMiAxMy4yIDMuMyAxMy4yIDguNyAwIDQtMy41IDcuMS05LjIgNy4xLTYuOSAwLTEzLjUtMi4yLTE5LTYuNC0uMS0uMS0uMy0uMi0uNS0uMnMtLjQgMC0uNSAuMS0uMyAuMi0uNCAuMy0uMiAuMy0uMiAuNWwtMi4zIDcuNWMtLjUgLjkgLjIgMS4yIC4yIDEuNCAxLjcgMS40IDEwLjMgNi42IDIyLjggNi42bDAgMHpNMzU3LjYgMjI0YzAtLjctLjItMS4yLTEuMi0xLjJsLTExLjggMGMwLS4xIC45LTguOSA0LjUtMTIuNSA0LjItNC4yIDExLjgtMS42IDEyLTEuNiAxLjIgLjUgMS40IDAgMS42LS41bDIuOC03LjhjLjctLjkgMC0xLjItLjItMS40LTUuMS0yLTE3LjQtMi45LTI0LjUgNC4yLTUuNSA1LjUtNyAxMy45LTggMTkuNWwtOC41IDBjLS4zIDAtLjYgLjItLjggLjRzLS4zIC41LS40IC44bC0xLjQgNy44YzAgLjcgLjIgMS4yIDEuMiAxLjJsOC4yIDBjLTguNSA0Ny45LTguNyA1MC4yLTEwLjMgNTUuNS0xLjEgMy42LTMuMyA2LjktNS45IDcuOC0uMSAwLTMuOSAxLjctOS42LS4yIDAgMC0uOS0uNS0xLjQgLjctLjIgLjctMi42IDYuOC0yLjggNy41czAgMS40IC41IDEuNGM1LjEgMiAxMyAxLjggMTcuOSAwIDYuMy0yLjMgOS43LTcuOSAxMS41LTEyLjkgMi44LTcuNyAyLjgtOS44IDExLjgtNTkuN2wxMi4yIDBjLjMgMCAuNi0uMiAuOC0uNHMuMy0uNSAuNC0uOGwxLjQtNy44ek00MTEgMjQwYy0uNi0xLjctNS4xLTE4LjEtMjUuMi0xOC4xLTE1LjIgMC0yMyAxMC0yNS4yIDE4LjEtMSAzLTMuMiAxNCAwIDIzLjUgLjEgLjMgNC40IDE4LjEgMjUuMiAxOC4xIDE1IDAgMjIuOS05LjYgMjUuMi0xOC4xIDMuMi05LjYgMS0yMC41IDAtMjMuNXptNDUuNC0xNi43Yy01LTEuNy0xNi42LTEuOS0yMi4xIDUuNGwwLTQuNWMwLS4yIDAtLjMtLjEtLjVzLS4xLS4zLS4zLS40LS4yLS4yLS40LS4zLS4zLS4xLS41LS4xbC05LjQgMGMtLjIgMC0uMyAwLS41IC4xcy0uMyAuMS0uNCAuMy0uMiAuMi0uMyAuNC0uMSAuMy0uMSAuNWwwIDU1LjNjMCAuMiAwIC4zIC4xIC41cy4xIC4zIC4zIC40IC4yIC4yIC40IC4zIC4zIC4xIC41IC4xbDkuNiAwYy4yIDAgLjMgMCAuNS0uMXMuMy0uMSAuNC0uMyAuMi0uMiAuMy0uNCAuMS0uMyAuMS0uNWwwLTI3LjhjMC0yLjkgLjEtMTEuNCA0LjUtMTUuMSA0LjktNC45IDEyLTMuNCAxMy40LTMuMSAuMyAwIC42LS4xIC44LS4zcy40LS40IC42LS43YzEuMi0yLjYgMi4yLTUuMyAzLjEtOCAuMS0uMyAuMS0uNSAwLS44cy0uMy0uNS0uNS0uNmwwIDB6bTQ2LjggNTQuMWwtMi4xLTcuM2MtLjUtMS4yLTEuNC0uNy0xLjQtLjctNC4yIDEuOC0xMC4xIDEuOS0xMS4zIDEuOS00LjYgMC0xNy4yLTEuMS0xNy4yLTE5LjggMC02LjIgMS44LTE5LjggMTYuNS0xOS44IDMuOS0uMSA3LjggLjUgMTEuNSAxLjYgMCAwIC45IC41IDEuMi0uNyAuOS0yLjYgMS42LTQuNSAyLjYtNy41IC4yLS45LS41LTEuMi0uNy0xLjItMTEuNi0zLjktMjIuMy0yLjUtMjcuOCAwLTEuNiAuNy0xNi4yIDYuNS0xNi4yIDI3LjUgMCAyLjktLjYgMzAuMSAyOC45IDMwLjEgNS4zIDAgMTAuNi0xIDE1LjUtMi44IC4yLS4yIC40LS40IC41LS42cy4xLS41IDAtLjhsMCAwem01My45LTM5LjVjLS44LTMtNS40LTE2LjItMjIuMy0xNi4yLTE2IDAtMjMuNSAxMC4xLTI1LjYgMTguNi0xLjIgMy44LTEuNyA3LjgtMS43IDExLjggMCAyNS45IDE4LjggMjkuNCAyOS45IDI5LjQgMTAuOCAwIDE2LjUtMi4zIDE4LjYtMy44IC41LS4yIC43LS43IC4yLTEuOWwtMi40LTYuOGMtLjEtLjMtLjMtLjUtLjYtLjZzLS42LS4yLS44LS4xYy0yLjYgLjktNi4zIDIuOC0xNS4zIDIuOC0xNy40IDAtMTYuOS0xNC43LTE2LjktMTYuN2wzNy4yIDBjLjMgMCAuNS0uMSAuNy0uM3MuNC0uNCAuNC0uN2MtLjIgMCAuOS03LjEtMS40LTE1LjVsMCAwem0tMjMuMy02LjRjLTEwLjMgMC0xMyA5LTEzLjYgMTQuMWwyNi40IDBjLS45LTExLjktNy42LTE0LjEtMTIuNy0xNC4xbDAgMHoiXX0sdlB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvdXJjZXRyZWUiLGljb246WzQ0OCw1MTIsW10sImY3ZDMiLCJNNDI3LjQgMjAzYzAtMTEyLjEtOTAuOS0yMDMtMjAzLTIwMy0xMTIuMS0uMi0yMDMgOTAuNi0yMDMuMiAyMDIuNi0uMSA0MyAxMy41IDg0LjggMzguNyAxMTkuNnM2MC45IDYwLjYgMTAxLjggNzMuOGwwIDEwMS43YzAgMy44IDEuNSA3LjQgNC4yIDEwLjFzNi4zIDQuMiAxMC4xIDQuMmw5Ni40IDBjMy44IDAgNy40LTEuNSAxMC4xLTQuMnM0LjItNi4zIDQuMi0xMC4xbDAtMTAxLjZjNDAuOC0xMy4yIDc2LjUtMzkgMTAxLjctNzMuN3MzOC45LTc2LjUgMzktMTE5LjR6bS0yNzEuNiAwYzAtOTAuOCAxMzcuMy05MC44IDEzNy4zIDAtLjEgODkuOS0xMzcuMyA5MS0xMzcuMyAweiJdfSx4UHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlua2VkaW4taW4iLGljb246WzQ0OCw1MTIsW10sImYwZTEiLCJNMTAwLjMgNDQ4bC05Mi45IDAgMC0yOTkuMSA5Mi45IDAgMCAyOTkuMXpNNTMuOCAxMDguMUMyNC4xIDEwOC4xIDAgODMuNSAwIDUzLjggMCAzOS41IDUuNyAyNS45IDE1LjggMTUuOHMyMy44LTE1LjggMzgtMTUuOCAyNy45IDUuNyAzOCAxNS44IDE1LjggMjMuOCAxNS44IDM4YzAgMjkuNy0yNC4xIDU0LjMtNTMuOCA1NC4zek00NDcuOSA0NDhsLTkyLjcgMCAwLTE0NS42YzAtMzQuNy0uNy03OS4yLTQ4LjMtNzkuMi00OC4zIDAtNTUuNyAzNy43LTU1LjcgNzYuN2wwIDE0OC4xLTkyLjggMCAwLTI5OS4xIDg5LjEgMCAwIDQwLjggMS4zIDBjMTIuNC0yMy41IDQyLjctNDguMyA4Ny45LTQ4LjMgOTQgMCAxMTEuMyA2MS45IDExMS4zIDE0Mi4zbDAgMTY0LjMtLjEgMHoiXX0seVB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh0bWw1IixpY29uOlszODQsNTEyLFtdLCJmMTNiIiwiTTAgMzJMMzQuOSA0MjcuOCAxOTEuNSA0ODAgMzQ5LjEgNDI3LjggMzg0IDMyIDAgMzJ6TTMwOC4yIDE1OS45bC0xODMuOCAwIDQuMSA0OS40IDE3NS42IDAtMTMuNiAxNDguNC05Ny45IDI3IDAgLjMtMS4xIDAtOTguNy0yNy4zLTYtNzUuOCA0Ny43IDAgMy41IDM4LjEgNTMuNSAxNC41IDUzLjctMTQuNSA2LTYyLjItMTY2LjkgMC0xMi44LTE0NS42IDI0MS4xIDAtNC40IDQ3Ljd6Il19LHdQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJydXN0IixpY29uOls1MTIsNTEyLFtdLCJlMDdhIiwiTTUwOC41IDI0OS44bC0yMS44LTEzLjVjLS4yLTItLjMtMy45LS41LTUuOWwxOC43LTE3LjVjLjktLjkgMS42LTEuOSAyLTMuMXMuNS0yLjUgLjItMy43LS44LTIuNC0xLjYtMy4zLTEuOC0xLjctMy0yLjFsLTI0LTljLS41LTEuOS0xLjEtMy44LTEuNy01LjZsMTUtMjAuOGMuNy0xIDEuMi0yLjIgMS4zLTMuNHMwLTIuNS0uNS0zLjctMS4yLTIuMi0yLjItMi45LTIuMS0xLjMtMy40LTEuNWwtMjUuNC00LjJjLS45LTEuNy0xLjgtMy40LTIuNy01LjJsMTAuNy0yMy40Yy41LTEuMSAuNy0yLjQgLjYtMy42cy0uNS0yLjQtMS4yLTMuNS0xLjYtMS45LTIuOC0yLjUtMi40LS44LTMuNi0uOGwtMjUuOCAuOWMtMS4yLTEuNS0yLjQtMi45LTMuNi00LjRMNDM5IDgxLjhjLjMtMS4yIC4zLTIuNS0uMS0zLjdzLTEtMi4zLTEuOS0zLjItMi0xLjUtMy4yLTEuOS0yLjUtLjQtMy43LS4xTDQwNSA3OC45Yy0xLjQtMS4yLTIuOS0yLjQtNC40LTMuNmwuOS0yNS44Yy4xLTEuMy0uMi0yLjUtLjgtMy42cy0xLjQtMi4xLTIuNS0yLjgtMi4yLTEuMS0zLjUtMS4yLTIuNSAuMS0zLjcgLjZMMzY3LjcgNTMuMmMtMS43LS45LTMuNC0xLjgtNS4xLTIuN2wtNC4yLTI1LjRjLS4yLTEuMi0uNy0yLjQtMS41LTMuNHMtMS44LTEuNy0yLjktMi4yLTIuNC0uNy0zLjctLjUtMi40IC42LTMuNCAxLjNMMzI2IDM1LjNjLTEuOS0uNi0zLjgtMS4xLTUuNi0xLjdsLTktMjRjLS40LTEuMi0xLjItMi4yLTIuMS0zcy0yLjEtMS40LTMuMy0xLjYtMi41LS4yLTMuNyAuMi0yLjMgMS4xLTMuMSAyTDI4MS42IDI1LjljLTItLjItMy45LS40LTUuOS0uNUwyNjIuMyAzLjVjLS43LTEuMS0xLjYtMS45LTIuNy0yLjZzLTIuMy0uOS0zLjYtLjktMi41IC4zLTMuNiAuOS0yIDEuNS0yLjcgMi42TDIzNi4yIDI1LjNjLTIgLjItMy45IC4zLTUuOSAuNkwyMTIuOSA3LjFjLS45LS45LTEuOS0xLjYtMy4xLTJzLTIuNS0uNS0zLjctLjItMi40IC44LTMuMyAxLjYtMS43IDEuOC0yLjEgM2wtOSAyNGMtMS45IC42LTMuOCAxLjEtNS43IDEuN2wtMjAuOC0xNWMtMS0uNy0yLjItMS4yLTMuNC0xLjNzLTIuNSAwLTMuNyAuNS0yLjIgMS4yLTIuOSAyLjItMS4zIDIuMS0xLjUgMy40bC00LjIgMjUuNGMtMS43IC45LTMuNCAxLjgtNS4yIDIuN0wxMjAuOSA0Mi42Yy0xLjEtLjUtMi40LS43LTMuNy0uNnMtMi41IC41LTMuNSAxLjItMS45IDEuNy0yLjUgMi44LS44IDIuNC0uOCAzLjZsLjkgMjUuOGMtMS41IDEuMi0zIDIuNC00LjQgMy42TDgxLjggNzNjLTEuMi0uMy0yLjUtLjMtMy43IC4xcy0yLjMgMS0zLjIgMS45LTEuNSAyLTEuOSAzLjItLjQgMi41LS4xIDMuN0w3OC45IDEwN2MtMS4yIDEuNC0yLjQgMi45LTMuNiA0LjRsLTI1LjgtLjljLTEuMyAwLTIuNSAuMi0zLjYgLjhzLTIuMSAxLjQtMi44IDIuNC0xLjEgMi4yLTEuMiAzLjUgLjEgMi41IC42IDMuNmwxMC43IDIzLjRjLS45IDEuNy0xLjggMy40LTIuNyA1LjJsLTI1LjQgNC4xYy0xLjIgLjItMi40IC43LTMuNCAxLjVzLTEuNyAxLjgtMi4yIDIuOS0uNyAyLjQtLjUgMy43IC42IDIuNCAxLjMgMy40bDE1IDIwLjhjLS42IDEuOS0xLjEgMy44LTEuNyA1LjdsLTI0IDljLTEuMiAuNC0yLjIgMS4yLTMgMi4xcy0xLjQgMi4xLTEuNiAzLjMtLjIgMi41IC4yIDMuNyAxLjEgMi4zIDIgMy4xbDE4LjcgMTcuNWMtLjIgMi0uNCAzLjktLjYgNS45TDMuNSAyNDkuOGMtMS4xIC43LTEuOSAxLjYtMi42IDIuN3MtLjkgMi4zLS45IDMuNiAuMyAyLjUgLjkgMy42IDEuNSAyIDIuNiAyLjdsMjEuOCAxMy41Yy4yIDIgLjMgMy45IC42IDUuOUw3LjEgMjk5LjFjLS45IC45LTEuNiAxLjktMiAzLjFzLS41IDIuNS0uMiAzLjcgLjggMi40IDEuNiAzLjMgMS44IDEuNyAzIDIuMWwyNCA5Yy42IDEuOSAxLjEgMy44IDEuNyA1LjZsLTE1IDIwLjhjLS43IDEtMS4yIDIuMi0xLjMgMy40czAgMi41IC41IDMuNyAxLjIgMi4yIDIuMiAyLjkgMi4xIDEuMyAzLjQgMS41bDI1LjQgNC4yYy45IDEuNyAxLjggMy40IDIuNyA1LjFMNDIuNiAzOTEuMWMtLjUgMS4xLS43IDIuNC0uNiAzLjZzLjUgMi41IDEuMiAzLjVjLjcgMS4xIDEuNiAxLjkgMi43IDIuNXMyLjQgLjggMy42IC44bDI1LjgtLjljMS4yIDEuNSAyLjQgMi45IDMuNiA0LjRMNzMgNDMwLjJjLS4zIDEuMi0uMyAyLjUgLjEgMy43czEgMi4zIDEuOSAzLjIgMiAxLjUgMy4yIDEuOSAyLjUgLjQgMy43IC4xbDI1LjItNS45YzEuNSAxLjIgMi45IDIuNCA0LjQgMy42bC0uOSAyNS44YzAgMS4zIC4yIDIuNSAuOCAzLjZzMS40IDIuMSAyLjUgMi44IDIuMiAxLjEgMy41IDEuMiAyLjUtLjEgMy42LS42bDIzLjQtMTAuN2MxLjcgLjkgMy40IDEuOCA1LjEgMi43bDQuMiAyNS40Yy4yIDEuMiAuNyAyLjQgMS41IDMuNHMxLjggMS44IDIuOSAyLjIgMi40IC43IDMuNyAuNSAyLjQtLjYgMy40LTEuM2wyMC44LTE1YzEuOSAuNiAzLjggMS4xIDUuNiAxLjdsOSAyNGMuNCAxLjIgMS4yIDIuMiAyLjEgM3MyLjEgMS40IDMuMyAxLjYgMi41IC4yIDMuNy0uMiAyLjMtMS4xIDMuMS0ybDE3LjUtMTguN2MyIC4yIDMuOSAuNCA1LjkgLjZsMTMuNSAyMS44Yy43IDEuMSAxLjYgMS45IDIuNyAyLjZzMi4zIC45IDMuNiAuOSAyLjUtLjMgMy42LS45IDItMS41IDIuNy0yLjZsMTMuNS0yMS44YzItLjIgMy45LS4zIDUuOS0uNmwxNy41IDE4LjdjLjkgLjkgMS45IDEuNiAzLjEgMnMyLjUgLjUgMy43IC4yIDIuNC0uOCAzLjMtMS42IDEuNy0xLjggMi4xLTNsOS0yNGMxLjktLjYgMy44LTEuMSA1LjYtMS43bDIwLjggMTVjMSAuNyAyLjIgMS4yIDMuNCAxLjNzMi41IDAgMy43LS41IDIuMi0xLjIgMi45LTIuMiAxLjMtMi4xIDEuNS0zLjRsNC4yLTI1LjRjMS43LS45IDMuNC0xLjggNS4xLTIuN2wyMy40IDEwLjdjMS4xIC41IDIuNCAuNyAzLjYgLjZzMi40LS41IDMuNS0xLjIgMS45LTEuNiAyLjUtMi44IC44LTIuNCAuOC0zLjZsLS45LTI1LjhjMS41LTEuMiAyLjktMi40IDQuNC0zLjZsMjUuMiA1LjljMS4yIC4zIDIuNSAuMyAzLjctLjFzMi4zLTEgMy4yLTEuOSAxLjUtMiAxLjktMy4yIC40LTIuNSAuMS0zLjdMNDMzLjEgNDA1YzEuMi0xLjQgMi40LTIuOSAzLjYtNC40bDI1LjggLjljMS4zIC4xIDIuNS0uMiAzLjYtLjhzMi4xLTEuNCAyLjgtMi41Yy43LTEgMS4xLTIuMiAxLjItMy41cy0uMS0yLjUtLjYtMy42bC0xMC43LTIzLjRjLjktMS43IDEuOC0zLjQgMi43LTUuMWwyNS40LTQuMmMxLjItLjIgMi40LS43IDMuNC0xLjVzMS44LTEuOCAyLjItMi45IC43LTIuNCAuNS0zLjctLjYtMi40LTEuMy0zLjRsLTE1LTIwLjhjLjYtMS45IDEuMS0zLjggMS43LTUuNmwyNC05YzEuMi0uNCAyLjItMS4yIDMtMi4xczEuNC0yLjEgMS42LTMuMyAuMi0yLjUtLjItMy43LTEuMS0yLjMtMi0zLjFsLTE4LjctMTcuNWMuMi0xLjkgLjQtMy45IC42LTUuOWwyMS44LTEzLjVjMS4xLS43IDEuOS0xLjYgMi42LTIuN3MuOS0yLjMgLjktMy42LS4zLTIuNS0uOS0zLjYtMS41LTItMi42LTIuN2wwIDB6bS0xNTEgMTI5LjFjLTMuNi0uOC03LjQtLjEtMTAuNSAxLjlzLTUuMyA1LjItNiA4LjhsLTcuNiAzNS43Yy0yNC42IDExLjEtNTEuMyAxNi44LTc4LjMgMTYuN3MtNTMuNi02LjEtNzguMS0xNy40bC03LjYtMzUuN2MtLjQtMS44LTEuMS0zLjUtMi4xLTVzLTIuNC0yLjgtMy45LTMuOC0zLjItMS43LTUtMi0zLjYtLjMtNS40IC4xbC0zMS41IDYuOGMtNS44LTYtMTEuMy0xMi41LTE2LjMtMTkuMmwxNTMuMiAwYzEuNyAwIDIuOS0uMyAyLjktMS45bDAtNTQuMmMwLTEuNi0xLjItMS45LTIuOS0xLjlsLTQ0LjggMCAwLTM0LjQgNDguNSAwYzQuNCAwIDIzLjcgMS4zIDI5LjggMjUuOSAxLjkgNy41IDYuMiAzMi4xIDkuMSA0MCAyLjkgOC44IDE0LjYgMjYuNSAyNy4xIDI2LjVsNzkgMGMtNS4zIDcuMS0xMS4xIDEzLjgtMTcuMyAyMC4xbC0zMi4xLTYuOXptMjUuOCAzNC41YzAgMy0uOSA2LTIuNiA4LjVzLTQgNC41LTYuOCA1LjYtNS44IDEuNS04LjggLjktNS43LTItNy44LTQuMi0zLjYtNC44LTQuMi03LjgtLjMtNiAuOC04LjggMy4xLTUuMiA1LjYtNi45IDUuNC0yLjYgOC41LTIuNmwuNCAwYzQgLjEgNy43IDEuOCAxMC41IDQuNnM0LjMgNi43IDQuMyAxMC42bC4xIDB6bS0yMjUuNi0uN2MwIDMtLjkgNi0yLjYgOC41cy00LjEgNC41LTYuOCA1LjYtNS44IDEuNS04LjggLjktNS43LTItNy44LTQuMi0zLjYtNC44LTQuMi03LjgtLjMtNiAuOS04LjggMy4xLTUuMiA1LjYtNi44IDUuNC0yLjYgOC41LTIuNmwuNSAwYzQgLjEgNy43IDEuOCAxMC41IDQuNnM0LjMgNi43IDQuMyAxMC42bC4xIDB6TTY5LjYgMjM0LjJsMzIuOC0xNC42YzEuNy0uNyAzLjItMS44IDQuNC0zLjFzMi4yLTIuOSAyLjktNC42IDEtMy41IC45LTUuMy0uNS0zLjYtMS4yLTUuM2wtNi44LTE1LjIgMjYuNiAwIDAgMTE5LjctNTMuNiAwYy02LjYtMjMuMi04LjctNDcuNi02LjEtNzEuNnpNNTguMyAxOTguMWMwLTIgLjQtNCAxLjItNS44czEuOS0zLjUgMy4zLTQuOSAzLjEtMi41IDQuOS0zLjMgMy44LTEuMiA1LjgtMS4ybC41IDBjMyAuMSA1LjkgMSA4LjMgMi44czQuMyA0LjEgNS40IDYuOSAxLjMgNS44IC43IDguOC0yLjEgNS42LTQuMyA3LjctNC45IDMuNS03LjggNC4xLTYgLjItOC43LS45LTUuMS0zLjEtNi44LTUuNi0yLjUtNS40LTIuNS04LjRsMCAwem0xNTUuMiAyNC41bDAtMzUuMyA2My4zIDBjMy4zIDAgMjMuMSAzLjggMjMuMSAxOC42IDAgMTIuMy0xNS4yIDE2LjctMjcuNyAxNi43bC01OC43IDB6TTM5OSAzMDYuN2MtOS44IDEuMS0yMC42LTQuMS0yMi0xMC4xLTUuOC0zMi41LTE1LjQtMzkuNC0zMC42LTUxLjQgMTguOS0xMiAzOC41LTI5LjYgMzguNS01My4zIDAtMjUuNS0xNy41LTQxLjYtMjkuNC00OS41LTE2LjgtMTEtMzUuMy0xMy4yLTQwLjMtMTMuMmwtMTk4LjkgMGMyNy41LTMwLjcgNjQuNC01MS41IDEwNC45LTU5LjJsMjMuNSAyNC42YzEuMyAxLjMgMi44IDIuNCA0LjQgMy4xczMuNSAxLjEgNS4zIDEuMiAzLjYtLjMgNS4zLS45IDMuMi0xLjcgNC42LTIuOWwyNi4zLTI1YzI2LjggNSA1Mi4xIDE1LjggNzQuMyAzMS42czQwLjYgMzYuMiA1NC4xIDU5LjlsLTE4IDQwLjZjLTEuNSAzLjQtMS41IDcuMi0uMiAxMC42czMuOSA2LjIgNy4zIDcuN2wzNC42IDE1LjNjMS4xIDEwLjggMS4yIDIxLjcgLjQgMzIuNWwtMTkuMyAwYy0xLjkgMC0yLjcgMS4zLTIuNyAzLjFsMCA4LjhjMCAyMC44LTExLjcgMjUuMy0yMiAyNi41ek0yNDAgNjAuMmMwLTQgMS42LTcuOSA0LjUtMTAuN3M2LjctNC41IDEwLjctNC41bC40IDBjMyAuMSA1LjkgMSA4LjQgMi44czQuMyA0LjEgNS40IDYuOSAxLjMgNS44IC43IDguOC0yLjEgNS42LTQuMyA3LjctNC45IDMuNS03LjggNC02IC4yLTguNy0uOS01LjEtMy4xLTYuOC01LjYtMi41LTUuNC0yLjUtOC40ek00MzYuOCAyMTRjLTIgMC00LS40LTUuOC0xLjJzLTMuNS0xLjktNC45LTMuMy0yLjUtMy4xLTMuMy00LjktMS4yLTMuOC0xLjItNS44IC40LTQgMS4yLTUuOCAxLjktMy41IDMuMy00LjkgMy4xLTIuNSA0LjktMy4zIDMuOC0xLjIgNS44LTEuMmwuNCAwYzQgLjEgNy45IDEuNyAxMC43IDQuNnM0LjQgNi44IDQuMyAxMC44LTEuNyA3LjktNC42IDEwLjctNi44IDQuNC0xMC44IDQuM3oiXX0sa1B0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhvcm5iaWxsIixpY29uOls1MTIsNTEyLFtdLCJmNTkyIiwiTTc2LjggMzcwLjNjMSA3LjgtLjQgMTUuOC00LjEgMjIuOHMtOS42IDEyLjYtMTYuNyAxNi4xLTE1LjEgNC43LTIyLjkgMy4zLTE1LTUuMS0yMC42LTEwLjctOS4yLTEyLjktMTAuNS0yMC43IDAtMTUuOCAzLjYtMjIuOSA5LjMtMTIuOCAxNi4zLTE2LjUgMTUtNSAyMi45LTMuOWMtNzguMy0xMTEuMyA1Mi0xOTAuNSA1Mi0xOTAuNS01LjkgNDMtOC4yIDkxLjItOC4yIDkxLjItNjcuMyA0MS41IC45IDY0LjEgMzkuOCA3Mi45IDkuOSAyNyAyNy44IDUwLjIgNTEuNCA2Ni43czUxLjYgMjUuMyA4MC4zIDI1LjNjMS45IDAgMy44LS4yIDUuNy0uM2wuMSAxOC45Yy05OS4yIDEuNC0xNTguNy0yOS4xLTE4OC45LTUxLjZ6bTEwOC0zMjcuN2MuOS03LjItLjItMTQuNi0zLjQtMjEuMi0zLTYuMi03LjYtMTEuNS0xMy40LTE1LjNzLTEyLjUtNS45LTE5LjQtNi4yLTEzLjggMS40LTE5LjggNC43LTExLjEgOC4zLTE0LjUgMTQuMy01LjIgMTIuOC01IDE5LjcgMi4yIDEzLjcgNS45IDE5LjUgOC45IDEwLjYgMTUuMSAxMy42IDEzLjEgNC40IDIwIDMuOWMtMjIuNiAyOS45LTUzLjggODkuNi01Mi40IDE5MGwyMS44LS4yYzAtLjktLjEtMS44LS4xLTIuNyAwLTI4IDguNC01NS4zIDI0LjEtNzguNXMzNy45LTQxLjIgNjMuOC01MS42YzgtMzcuNyAzMC43LTExNC4zIDczLjgtNDQuMyAwIDAgNDguMSAyLjQgOTEuMiA4LjIgMCAwLTc3LjgtMTI4LTE4Ny42LTU0LjFsMCAwek00ODkgMTc2LjhjNi4zLTMgMTEuNy03LjcgMTUuNS0xMy42czUuOS0xMi43IDYuMS0xOS44LTEuNi0xNC01LjItMjAtOC43LTExLTE0LjktMTQuMy0xMy4yLTQuOC0yMC4yLTQuNC0xMy44IDIuOC0xOS41IDYuOS0xMC4yIDkuNi0xMyAxNi4xLTMuNyAxMy42LTIuNyAyMC41Yy0zMS43LTIxLjktODkuOC00OS4xLTE4My40LTQ3LjdsLjEgMjIuNWMyLjctLjIgNS40LS40IDguMS0uNCAyOC4xIDAgNTUuNiA4LjUgNzguOSAyNC4zczQxLjIgMzguMyA1MS42IDY0LjVjMzkuMSA5IDEwNS4xIDMxLjYgMzguNSA3Mi41IDAgMC0yLjMgNDguMS04LjIgOTEuMiAwIDAgMTMzLjQtODEuMiA0OS0xOTQuNiA2LjYgLjYgMTMuMy0uNiAxOS4zLTMuNWwwIDB6TTM3NC40IDQzNi4yYzIxLjQtMzIuNSA0Ni40LTg5LjcgNDUuMS0xNzkuN2wtMTkuNSAuMWMuMSAyLjEgLjMgNC4xIC4zIDYuMiAwIDI4LjYtOC44IDU2LjUtMjUuMSA4MHMtMzkuNSA0MS40LTY2LjMgNTEuNGMtOC45IDM5LTMxLjQgMTA2LjctNzIuOCAzOS41IDAgMC00OC4xLTIuMy05MS4yLTguMiAwIDAgNzkuOSAxMzEuMyAxOTEuOSA1MSAuMyA0LjkgMS41IDkuNiAzLjYgMTQgMi45IDYuMSA3LjUgMTEuNCAxMy4xIDE1LjFzMTIuMiA2IDE5IDYuNCAxMy42LTEuMSAxOS42LTQuMiAxMS4xLTcuOCAxNC43LTEzLjYgNS42LTEyLjQgNS43LTE5LjItMS41LTEzLjUtNC44LTE5LjQtOC4yLTEwLjktMTQuMS0xNC4zLTEyLjYtNS4yLTE5LjQtNS4xbDAtLjF6Il19LFNQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaHAiLGljb246WzY0MCw1MTIsW10sImY0NTciLCJNMzIwIDEwNC41YzE3MS40IDAgMzAzLjIgNzIuMiAzMDMuMiAxNTEuNVM0OTEuMyA0MDcuNSAzMjAgNDA3LjVDMTQ4LjYgNDA3LjUgMTYuOCAzMzUuMyAxNi44IDI1NlMxNDguNyAxMDQuNSAzMjAgMTA0LjV6bTAtMTYuOEMxNDMuMyA4Ny43IDAgMTYzIDAgMjU2UzE0My4zIDQyNC4zIDMyMCA0MjQuMyA2NDAgMzQ5IDY0MCAyNTYgNDk2LjcgODcuNyAzMjAgODcuN3pNMjE4LjIgMjQyLjVjLTcuOSA0MC41LTM1LjggMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4IDAgNjMuOC00LjEgNTYuNCAzNC4zek05Ny40IDM1MC4zbDM2LjcgMCA4LjctNDQuOGM0MS4xIDAgNjYuNiAzIDkwLjItMTkuMSAyNi4xLTI0IDMyLjktNjYuNyAxNC4zLTg4LjEtOS43LTExLjItMjUuMy0xNi43LTQ2LjUtMTYuN2wtNzAuNyAwLTMyLjcgMTY4Ljd6TTI4My4xIDEzNi43bDM2LjUgMC04LjcgNDQuOGMzMS41IDAgNjAuNy0yLjMgNzQuOCAxMC43IDE0LjggMTMuNiA3LjcgMzEtOC4zIDExMy4xbC0zNyAwYzE1LjQtNzkuNCAxOC4zLTg2IDEyLjctOTItNS40LTUuOC0xNy43LTQuNi00Ny40LTQuNmwtMTguOCA5Ni42LTM2LjUgMCAzMi43LTE2OC42ek01MDUgMjQyLjVjLTggNDEuMS0zNi43IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOC4yIDAgNjMuOC00LjEgNTYuNCAzNC4zek0zODQuMiAzNTAuM2wzNi44IDAgOC43LTQ0LjhjNDMuMiAwIDY3LjEgMi41IDkwLjItMTkuMSAyNi4xLTI0IDMyLjktNjYuNyAxNC4zLTg4LjEtOS43LTExLjItMjUuMy0xNi43LTQ2LjUtMTYuN2wtNzAuNyAwLTMyLjggMTY4Ljd6Il19LF9QdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNxdXMiLGljb246WzU3Niw1MTIsW10sImU3ZDUiLCJNMjkwLjIgNTEyYy02Mi42IDAtMTE5LjktMjIuOS0xNjQuMi02MC44TDE3IDQ2Ni4xIDU5LjEgMzYyLjJjLTE0LjctMzIuNC0yMi45LTY4LjMtMjIuOS0xMDYuMiAwLTE0MS40IDExMy43LTI1NiAyNTQtMjU2IDE0MC4zIDAgMjU0IDExNC42IDI1NCAyNTYgMCAxNDEuNC0xMTMuNyAyNTYtMjU0IDI1NnpNNDI4LjkgMjU1LjNsMC0uN0M0MjguOSAxODAuNyAzNzYuOCAxMjggMjg3IDEyOGwtOTcgMCAwIDI1NiA5NS42IDBjOTAuNSAwIDE0My40LTU0LjkgMTQzLjQtMTI4Ljd6TTI4OCAzMjEuMWwtMjguNCAwIDAtMTMwLjIgMjguNCAwYzQxLjcgMCA2OS4zIDIzLjggNjkuMyA2NC43bDAgLjdjMCA0MS4zLTI3LjcgNjQuNy02OS4zIDY0Ljd6Il19LE1QdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiI1MDBweCIsaWNvbjpbMzg0LDUxMixbXSwiZjI2ZSIsIk03MS44IDM0NC4zYy02LjUtMTQuMi02LjktMTguMyA3LjQtMjMuMSAyNS42LTggOCA5LjIgNDMuMiA0OS4ybC4zIDAgMC05My45YzEuMi01MC4yIDQ0LTkyLjIgOTcuNy05Mi4yIDUzLjkgMCA5Ny43IDQzLjUgOTcuNyA5Ni44IDAgNjMuNC02MC44IDExMy4yLTEyOC41IDkzLjMtMTAuNS00LjItMi4xLTMxLjcgOC41LTI4LjYgNTMgMCA4OS40LTEwLjEgODkuNC02NC40IDAtNjEtNzcuMS04OS42LTExNi45LTQ0LjYtMjMuNSAyNi40LTE3LjYgNDIuMS0xNy42IDE1Ny42IDUwLjcgMzEgMTE4LjMgMjIgMTYwLjQtMjAuMSAyNC44LTI0LjggMzguNS01OCAzOC41LTkzIDAtMzUuMi0xMy44LTY4LjItMzguOC05My4zLTI0LjgtMjQuOC01Ny44LTM4LjUtOTMuMy0zOC41UzE1MSAxNjMuMyAxMjYuMyAxODhjLS4zIC4zLTE2IDE2LjUtMjEuMiAyMy45bC0uNSAuNmMtMy4zIDQuNy02LjMgOS4xLTIwLjEgNi4xLTYuOS0xLjctMTQuMy01LjgtMTQuMy0xMS44TDcwLjIgMjBjMC01IDMuOS0xMC41IDEwLjUtMTAuNUwzMjIgOS41YzguMyAwIDguMyAxMS42IDguMyAxNS4xIDAgMy45IDAgMTUuMS04LjMgMTUuMWwtMjIzLjIgMCAwIDEzMi45IC4zIDBjMTA0LjItMTA5LjggMjgyLjgtMzYgMjgyLjggMTA4LjkgMCAxNzguMS0yNDQuOCAyMjAuMy0zMTAuMSA2Mi44ek0xMzUuMSA4My41Yy0uNSA0LjIgNC42IDI0LjUgMTQuNiAyMC42IDEyNC44LTQ3LjUgMjAyLjggNDAuNCAyMDkuNCA0MC40IDQuOCAwIDIyLjgtMTUuMyAxNC4zLTIyLjgtOTMuMi04OS0yMzQuNS01Ny0yMzguMy0zOC4yek0zNjEuNSA0MTQuN2MtMTEwIDEwOS45LTI5OSA2MC44LTMzMi0xMDQuMiAwLTEyLjItMzAuNC03LjQtMjguOSAzLjMgMjQgMTczLjQgMjQ2IDI1Ni45IDM4MS42IDEyMS4zIDYuOS03LjgtMTIuNi0yOC40LTIwLjctMjAuNHpNMTgyLjEgMzA2LjZjMCA0IDQuMyA3LjMgNS41IDguNSAzIDMgNi4xIDQuNCA4LjUgNC40IDMuOCAwIDIuNiAuMiAyMi4zLTE5LjUgMTkuNiAxOS4zIDE5LjEgMTkuNSAyMi4zIDE5LjUgNS40IDAgMTguNS0xMC40IDEwLjctMTguMmwtMTcuMy0xNy4zIDE4LjItMTguMmM2LjMtNi44LTEwLjEtMjEuOC0xNi4yLTE1LjdMMjE4LjIgMjY4Yy0xOC42LTE4LjgtMTguNC0xOS41LTIxLjUtMTkuNS01IDAtMTggMTEuNy0xMi40IDE3LjNMMjAyLjUgMjg0Yy0xOC4xIDE3LjktMjAuNCAxOS4yLTIwLjQgMjIuNnoiXX0selB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFmZmlsaWF0ZXRoZW1lIixpY29uOls1MTIsNTEyLFtdLCJmMzZiIiwiTTE1OS43IDIzNy40QzEwOC40IDMwOC4zIDQzLjEgMzQ4LjIgMTQgMzI2LjYtMTUuMiAzMDQuOSAyLjggMjMwIDU0LjIgMTU5LjEgMTA1LjUgODguMiAxNzAuOCA0OC4zIDE5OS45IDY5LjlzMTEuMSA5Ni42LTQwLjIgMTY3LjV6bTM1MS4yLTU3LjNjLTczLjggMTIzLjQtMTkxLjkgMTg3LjctMjY0LjUgMTQzLjYtMjUtMTUuMi00MS4zLTQxLjItNDktNzMuOC0zMy42IDY0LjgtOTIuOCAxMTMuOC0xNjQuMSAxMzMuMiA0OS44IDU5LjMgMTI0LjEgOTYuOSAyMDcgOTYuOSAxNTAgMCAyNzEuNi0xMjMuMSAyNzEuNi0yNzQuOSAuMS04LjUtLjMtMTYuOC0xLTI1eiJdfSxDUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkLXJpdmVyIixpY29uOls0NDgsNTEyLFtdLCJmM2UzIiwiTTM1My4yIDMyTDk0LjggMzJDNDIuNCAzMiAwIDc0LjQgMCAxMjYuOEwwIDM4NS4yQzAgNDM3LjYgNDIuNCA0ODAgOTQuOCA0ODBsMjU4LjQgMGM1Mi40IDAgOTQuOC00Mi40IDk0LjgtOTQuOGwwLTI1OC40QzQ0OCA3NC40IDQwNS42IDMyIDM1My4yIDMyek0xNDQuOSAyMDAuOWwwIDU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bDAtMTU0LjJjMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjlsMTU0LjIgMGMwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlsLTU2LjMgMGMtMTIuMy0uNi0yNC42IDExLjYtMjQgMjR6bTE3Ni4zIDcybC01Ni4zIDBjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0bDAgNTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlsMC0xNTQuMmMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWwxNTQuMiAwYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOXoiXX0sTGI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdHRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjA5OSIsIk00NTkuNCAxNTEuN2MuMyA0LjUgLjMgOS4xIC4zIDEzLjYgMCAxMzguNy0xMDUuNiAyOTguNi0yOTguNiAyOTguNi01OS41IDAtMTE0LjctMTcuMi0xNjEuMS00Ny4xIDguNCAxIDE2LjYgMS4zIDI1LjMgMS4zIDQ5LjEgMCA5NC4yLTE2LjYgMTMwLjMtNDQuOC00Ni4xLTEtODQuOC0zMS4yLTk4LjEtNzIuOCA2LjUgMSAxMyAxLjYgMTkuOCAxLjYgOS40IDAgMTguOC0xLjMgMjcuNi0zLjYtNDguMS05LjctODQuMS01Mi04NC4xLTEwM2wwLTEuM2MxNCA3LjggMzAuMiAxMi43IDQ3LjQgMTMuMy0yOC4zLTE4LjgtNDYuOC01MS00Ni44LTg3LjQgMC0xOS41IDUuMi0zNy40IDE0LjMtNTMgNTEuNyA2My43IDEyOS4zIDEwNS4zIDIxNi40IDEwOS44LTEuNi03LjgtMi42LTE1LjktMi42LTI0IDAtNTcuOCA0Ni44LTEwNC45IDEwNC45LTEwNC45IDMwLjIgMCA1Ny41IDEyLjcgNzYuNyAzMy4xIDIzLjctNC41IDQ2LjUtMTMuMyA2Ni42LTI1LjMtNy44IDI0LjQtMjQuNCA0NC44LTQ2LjEgNTcuOCAyMS4xLTIuMyA0MS42LTguMSA2MC40LTE2LjItMTQuMyAyMC44LTMyLjIgMzkuMy01Mi42IDU0LjN6Il19LFRQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3J0LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImYyODYiLCJNNDg5LjUgMjg3LjlsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTE3OC4zYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtNi04LTQuNi0xMS43LTQuNmwwLTM4YzguMy0yIDE3LjEtMy40IDI1LjctMy40IDEwLjkgMCAyMC45IDQuMyAzMS40IDQuMyA0LjYgMCAyNy43LTEuMSAyNy43LThsMC02MGMwLTIuNi0yLTQuNi00LjYtNC42LTUuMSAwLTE1LjEgNC4zLTI0IDQuMy05LjcgMC0yMC45LTQuMy0zMi42LTQuMy04IDAtMTYgMS4xLTIzLjcgMi45bDAtNC45YzUuNC0yLjYgOS4xLTguMyA5LjEtMTQuMyAwLTIwLjctMzEuNC0yMC44LTMxLjQgMCAwIDYgMy43IDExLjcgOS4xIDE0LjNsMCAxMTEuN2MtMy43IDAtMTEuNy0xLjQtMTEuNyA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi4zIDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAxNzguMy0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAyMTkuNSAxODIuOSAwIDAtOTZjMC03Mi42IDEwOS43LTcyLjYgMTA5LjcgMGwwIDk2IDE4Mi45IDAgMC0yMTkuNWMuMS0yLjYtMS45LTQuNi00LjUtNC42em0tMjg4LjEtNC41YzAgMi42LTIgNC42LTQuNiA0LjZsLTI3LjQgMGMtMi42IDAtNC42LTItNC42LTQuNmwwLTY0YzAtMi42IDItNC42IDQuNi00LjZsMjcuNCAwYzIuNiAwIDQuNiAyIDQuNiA0LjZsMCA2NHptMTQ2LjQgMGMwIDIuNi0yIDQuNi00LjYgNC42bC0yNy40IDBjLTIuNiAwLTQuNi0yLTQuNi00LjZsMC02NGMwLTIuNiAyLTQuNiA0LjYtNC42bDI3LjQgMGMyLjYgMCA0LjYgMiA0LjYgNC42bDAgNjR6Il19LCRQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXhlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTA1NiIsIk04Mi42IDc2LjFjLTMuOC01LjEtOC43LTkuNC0xNC4yLTEyLjVzLTExLjctNS4xLTE4LjEtNS43LTEyLjggLjEtMTguOCAyLjItMTEuNiA1LjMtMTYuMyA5LjZjLTE3LjYgMTYuMi0xOSA0My41LTQuOCA2Mi44bDkxLjggMTIzLTkyLjMgMTI0LjFjLTE0LjIgMTkuMy0xMy4xIDQ2LjYgNC43IDYyLjggNC43IDQuMyAxMC4zIDcuNiAxNi4zIDkuNnMxMi41IDIuOCAxOC44IDIuMiAxMi41LTIuNSAxOC4xLTUuNyAxMC40LTcuNCAxNC4yLTEyLjVMMjEwLjkgMjYyLjdjMS41LTIuMSAyLjMtNC42IDIuMy03LjFzLS44LTUtMi4zLTcuMUw4Mi42IDc2LjF6TTQzOC4yIDM3OS42bC05Mi4zLTEyNC4xIDkxLjgtMTIzYzE0LjItMTkuMiAxMi44LTQ2LjYtNC43LTYyLjgtNC43LTQuMy0xMC4zLTcuNi0xNi4zLTkuNnMtMTIuNS0yLjgtMTguOC0yLjItMTIuNSAyLjUtMTguMSA1LjctMTAuNCA3LjQtMTQuMiAxMi41bC0xMjggMTcyLjFjLTEuNSAyLjEtMi4zIDQuNi0yLjMgNy4xcy44IDUgMi4zIDcuMUwzNjYgNDM1LjljMy44IDUuMSA4LjcgOS40IDE0LjIgMTIuNXMxMS43IDUuMSAxOC4xIDUuNyAxMi44LS4xIDE4LjgtMi4yIDExLjYtNS4zIDE2LjMtOS42YzE3LjgtMTYuMiAxOS00My41IDQuNy02Mi44eiJdfSxEUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHlmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjNjMyIsIk0wIDgxLjFsNzcuOCAwIDAgMjA4LjdjMCAzMy4xIDE1IDUyLjggMjcuMiA2MS0xMi43IDExLjEtNTEuMiAyMC45LTgwLjItMi44LTE3LTE0LTI0LjgtMzcuMy0yNC44LTU5TDAgODEuMXpNNDg1LjkgMjU0LjZsMC0yMiAyMy44IDAgMC03Ni44LTI2LjEgMGMtMTAuMS00Ni4zLTUxLjItODAuNy0xMDAuMy04MC43LTU2LjYgMC0xMDIuNyA0Ni0xMDIuNyAxMDIuN2wwIDE3OS4yYzE2IDIuMyAzNS40LS4zIDUxLjctMTQgMTcuMS0xNCAyNC44LTM3LjIgMjQuOC01OWwwLTYuNyAzOC44IDAgMC03Ni44LTM4LjggMCAwLTIzLjNjMC0zNC42IDUyLjItMzQuNiA1Mi4yIDBsMCA3Ny4xYzAgNTYuNiA0NiAxMDIuNyAxMDIuNyAxMDIuN2wwLTc2LjVjLTE0LjUgMC0yNi4xLTExLjctMjYuMS0yNS45em0tMjk0LjMtOTlsMCAxMTNjMCAxNS40LTIzLjggMTUuNC0yMy44IDBsMC0xMTMtNzYuOCAwIDAgMTMyLjdjMCAyMy44IDggNTQgNDUgNjMuOSAzNyA5LjggNTguMi0xMC42IDU4LjItMTAuNi0yLjEgMTMuNC0xNC41IDIzLjMtMzQuOSAyNS4zLTE1LjUgMS42LTM1LjItMy42LTQ1LTcuOGwwIDcwLjNjMjUuMSA3LjUgNTEuNSA5LjggNzcuNiA0LjcgNDcuMS05LjEgNzYuOC00OC40IDc2LjgtMTAwLjhsMC0xNzguMi03Ny4xIDAgMCAuNXoiXX0sTFB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcGxlLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxNSIsIk0xMTYuOSAxNTguNWMtNy41IDguOS0xOS41IDE1LjktMzEuNSAxNC45LTEuNS0xMiA0LjQtMjQuOCAxMS4zLTMyLjYgNy41LTkuMSAyMC42LTE1LjYgMzEuMy0xNi4xIDEuMiAxMi40LTMuNyAyNC43LTExLjEgMzMuOHptMTAuOSAxNy4yYy0xNy40LTEtMzIuMyA5LjktNDAuNSA5LjktOC40IDAtMjEtOS40LTM0LjgtOS4xLTE3LjkgLjMtMzQuNSAxMC40LTQzLjYgMjYuNS0xOC44IDMyLjMtNC45IDgwIDEzLjMgMTA2LjMgOC45IDEzIDE5LjUgMjcuMyAzMy41IDI2LjggMTMuMy0uNSAxOC41LTguNiAzNC41LTguNiAxNi4xIDAgMjAuOCA4LjYgMzQuOCA4LjQgMTQuNS0uMyAyMy42LTEzIDMyLjUtMjYgMTAuMS0xNC44IDE0LjMtMjkuMSAxNC41LTI5LjktLjMtLjMtMjgtMTAuOS0yOC4zLTQyLjktLjMtMjYuOCAyMS45LTM5LjUgMjIuOS00MC4zLTEyLjUtMTguNi0zMi0yMC42LTM4LjgtMjEuMXptMTAwLjQtMzYuMmwwIDE5NC45IDMwLjMgMCAwLTY2LjYgNDEuOSAwYzM4LjMgMCA2NS4xLTI2LjMgNjUuMS02NC4zcy0yNi40LTY0LTY0LjEtNjRsLTczLjIgMHpNMjU4LjUgMTY1bDM0LjkgMGMyNi4zIDAgNDEuMyAxNCA0MS4zIDM4LjZzLTE1IDM4LjgtNDEuNCAzOC44bC0zNC44IDAgMC03Ny40ek00MjAuNyAzMzUuOWMxOSAwIDM2LjYtOS42IDQ0LjYtMjQuOWwuNiAwIDAgMjMuNCAyOCAwIDAtOTdjMC0yOC4xLTIyLjUtNDYuMy01Ny4xLTQ2LjMtMzIuMSAwLTU1LjkgMTguNC01Ni44IDQzLjZsMjcuMyAwYzIuMy0xMiAxMy40LTE5LjkgMjguNi0xOS45IDE4LjUgMCAyOC45IDguNiAyOC45IDI0LjVsMCAxMC44LTM3LjggMi4zYy0zNS4xIDIuMS01NC4xIDE2LjUtNTQuMSA0MS41IC4xIDI1LjIgMTkuNyA0MiA0Ny44IDQyem04LjItMjMuMWMtMTYuMSAwLTI2LjQtNy44LTI2LjQtMTkuNiAwLTEyLjMgOS45LTE5LjQgMjguOC0yMC41bDMzLjYtMi4xIDAgMTFjMCAxOC4yLTE1LjUgMzEuMi0zNiAzMS4yem0xMDIuNSA3NC42YzI5LjUgMCA0My40LTExLjMgNTUuNS00NS40bDUzLjEtMTQ5LTMwLjggMC0zNS42IDExNS4xLS42IDAtMzUuNi0xMTUuMS0zMS42IDAgNTEuMiAxNDEuOS0yLjggOC42Yy00LjYgMTQuNi0xMi4xIDIwLjMtMjUuNSAyMC4zLTIuNCAwLTctLjMtOC45LS41bDAgMjMuNGMxLjggLjQgOS4zIC43IDExLjYgLjd6Il19LEVQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcnRzdGF0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmNzdhIiwiTTIuMSAzNzcuNGw0MyA3NC4zYzQuMyA4LjUgMTAuOCAxNS43IDE4LjkgMjAuN3MxNy40IDcuNiAyNyA3LjZsMjg1LjQgMC01OS4yLTEwMi42LTMxNS4xIDB6TTUwMS45IDM1MEwzMzUuNyA1OS4zYy00LjQtOC4yLTEwLjktMTUuMS0xOC45LTIwUzI5OS43IDMyIDI5MC40IDMybC04OC40IDAgMjU3LjMgNDQ3LjYgNDAuNy03MC41YzEuOS0zLjIgMjEtMjkuNyAyLTU5LjF6TTI3NS4yIDMwNC41bC0xMTUuNS0yMDAtMTE1LjUgMjAwIDIzMSAweiJdfSxQUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZS1qcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkMyIsIk0yMjQuNSA1MDhjLTYuNyAwLTEzLjUtMS44LTE5LjQtNS4ybC02MS43LTM2LjVjLTkuMi01LjItNC43LTctMS43LTggMTIuMy00LjMgMTQuOC01LjIgMjcuOS0xMi43IDEuNC0uOCAzLjItLjUgNC42IC40bDQ3LjQgMjguMWMxLjcgMSA0LjEgMSA1LjcgMEw0MTIgMzY3LjVjMS43LTEgMi44LTMgMi44LTVsMC0yMTMuMmMwLTIuMS0xLjEtNC0yLjktNS4xTDIyNy4zIDM3LjdjLTEuNy0xLTQtMS01LjcgMEwzNy4xIDE0NC4zYy0xLjggMS0yLjkgMy0yLjkgNS4xbDAgMjEzLjFjMCAyIDEuMSA0IDIuOSA0LjlsNTAuNiAyOS4yYzI3LjUgMTMuNyA0NC4zLTIuNCA0NC4zLTE4LjdsMC0yMTAuNGMwLTMgMi40LTUuMyA1LjQtNS4zbDIzLjQgMGMyLjkgMCA1LjQgMi4zIDUuNCA1LjNsMCAyMTAuNWMwIDM2LjYtMjAgNTcuNi01NC43IDU3LjYtMTAuNyAwLTE5LjEgMC00Mi41LTExLjZMMjAuNiAzOTYuMWMtMTItNi45LTE5LjQtMTkuOC0xOS40LTMzLjdsMC0yMTMuMWMwLTEzLjggNy40LTI2LjggMTkuNC0zMy43TDIwNS4xIDljMTEuNy02LjYgMjcuMi02LjYgMzguOCAwTDQyOC42IDExNS43YzEyIDYuOSAxOS40IDE5LjggMTkuNCAzMy43bDAgMjEzLjFjMCAxMy44LTcuNCAyNi43LTE5LjQgMzMuN0wyNDMuOSA1MDIuOGMtNS45IDMuNC0xMi42IDUuMi0xOS40IDUuMnpNMzczLjYgMjk3LjljMC0zOS45LTI3LTUwLjUtODMuNy01OC01Ny40LTcuNi02My4yLTExLjUtNjMuMi0yNC45IDAtMTEuMSA0LjktMjUuOSA0Ny40LTI1LjkgMzcuOSAwIDUxLjkgOC4yIDU3LjcgMzMuOCAuNSAyLjQgMi43IDQuMiA1LjIgNC4ybDI0IDBjMS41IDAgMi45LS42IDMuOS0xLjdzMS41LTIuNiAxLjQtNC4xYy0zLjctNDQuMS0zMy02NC42LTkyLjItNjQuNi01Mi43IDAtODQuMSAyMi4yLTg0LjEgNTkuNSAwIDQwLjQgMzEuMyA1MS42IDgxLjggNTYuNiA2MC41IDUuOSA2NS4yIDE0LjggNjUuMiAyNi43IDAgMjAuNi0xNi42IDI5LjQtNTUuNSAyOS40LTQ4LjkgMC01OS42LTEyLjMtNjMuMi0zNi42LS40LTIuNi0yLjYtNC41LTUuMy00LjVsLTIzLjkgMGMtMyAwLTUuMyAyLjQtNS4zIDUuMyAwIDMxLjEgMTYuOSA2OC4yIDk3LjggNjguMiA1OC40LS4xIDkyLTIzLjIgOTItNjMuNHoiXX0sSVB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuY2hhcnRlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NCIsIk0xNzEuOCAyMzIuOGMxLjEgMCAyLjEtLjMgMy0uOXMxLjYtMS40IDItMi40YzIuMi05LjggNy40LTE4LjYgMTQuOS0yNS4zIDEuMi0uOCAxLjctMi41IDEuNy00LjEtLjEtLjctLjMtMS4zLS42LTEuOXMtLjktMS4xLTEuNC0xLjRMNzQuNSAxMjguNSAxNDkuMSA4NWMxLjUtLjggMi43LTIgMy42LTMuNXMxLjQtMy4xIDEuNC00LjhjMC0xLjctLjQtMy40LTEuMy00LjlzLTIuMi0yLjctMy43LTMuNEwxMjYuNyA1NS42Yy0xLjUtLjgtMy4xLTEuMi00LjgtMS4ycy0zLjMgLjQtNC44IDEuMkwxNyAxMTMuNmMtMS41IC44LTIuNyAyLTMuNiAzLjVzLTEuNCAzLjEtMS40IDQuOEwxMiAyMzdjMCAxLjcgLjQgMy40IDEuMyA0LjlzMi4yIDIuNyAzLjcgMy40bDIyLjQgMTIuOGMxLjUgLjkgMy4yIDEuMyA1IDEuMiAyLjQgLjEgNC44LS44IDYuNi0yLjUgMS44LTEuOSAyLjgtNC40IDIuOS03bDAtODUuMyAxMTUuOSA2Ny45Yy42IC4zIDEuNCAuNCAyLjEgLjR6TTMyMy40IDM3Ny43Yy0xLjcgLjEtMy40IC41LTUgMS4ybC03NC41IDQzLjEgMC0xMzQuMmMwLTIuOS0yLjktNS44LTYuMi00LjYtOS40IDIuOC0xOS41IDMtMjkgLjQtLjctLjItMS41LS4yLTIuMi0uMXMtMS40IC40LTIgLjktMS4xIDEtMS40IDEuNy0uNSAxLjQtLjUgMi4xbDAgMTMzLjMtNzQuNS00My4xYy0xLjUtLjktMy4yLTEuMy01LTEuMi0yLjUgMC00LjkgMS02LjcgMi44cy0yLjggNC4yLTIuOCA2LjdsMCAyNi4xYzAgMS43IC40IDMuNCAxLjMgNC45czIuMiAyLjcgMy43IDMuNGwxMDAuMiA1Ny42YzEuNSAuOSAzLjIgMS4zIDUgMS4yIDEuNyAwIDMuNC0uNCA1LTEuMmwxMDAuMi01Ny42YzEuNS0uOCAyLjctMiAzLjYtMy41czEuNC0zLjEgMS40LTQuOGwwLTI2LjFjLS44LTQuNi01LjQtOS4xLTEwLjQtOS4xek0yODYuMSA3OGEyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bTYzLjYtMTAuMWEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bTYzLjIgODMuN2EyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bS02My4yLTkuMmEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bS02My42IDgzLjJjNC41IDAgOS0xLjMgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuOCA4LjhzMi45IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6TTIyNCAyNjJjNC41IDAgOS0xLjQgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuNyA4LjhzMi44IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6bTE4OC45LTgyLjRjLTQuNiAwLTkgMS4zLTEyLjggMy45cy02LjcgNi4xLTguNSAxMC4zLTIuMiA4LjgtMS4zIDEzLjMgMy4xIDguNiA2LjMgMTEuOCA3LjMgNS40IDExLjggNi4zIDkuMSAuNCAxMy4zLTEuMyA3LjgtNC43IDEwLjMtOC41IDMuOS04LjIgMy45LTEyLjhjMC02LjEtMi40LTExLjktNi43LTE2LjNzLTEwLjItNi43LTE2LjMtNi43bDAgMHptMCA3Mi4zYy00LjYgMC05IDEuMy0xMi44IDMuOXMtNi43IDYuMS04LjUgMTAuMy0yLjIgOC44LTEuMyAxMy4zIDMuMSA4LjYgNi4zIDExLjggNy4zIDUuNCAxMS44IDYuMyA5LjEgLjQgMTMuMy0xLjMgNy44LTQuNyAxMC4zLTguNSAzLjktOC4yIDMuOS0xMi44YzAtNi4xLTIuNC0xMS45LTYuNy0xNi4zcy0xMC4yLTYuNy0xNi4zLTYuN2wwIDB6Il19LEFQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwbGF5c3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNkZiIsIk01NzEgMzcyLjNjLTExLjMgMTQuMi0zOC44IDI0LjMtMzguOCAyNC4zbC0yMDUuMSA3My42IDAtNTQuMyAxNTAuOS01My44YzE3LjEtNi4xIDE5LjgtMTQuOCA1LjgtMTkuNC0xMy45LTQuNi0zOS4xLTMuMy01Ni4yIDIuOWwtMTAwLjUgMzUuNSAwLTU2LjRjMjMuMi03LjggNDcuMS0xMy42IDc1LjctMTYuOCA0MC45LTQuNSA5MC45IC42IDEzMC4yIDE1LjUgNDQuMiAxNCA0OS4yIDM0LjcgMzggNDguOXpNMzQ2LjYgMjc5LjhsMC0xMzljMC0xNi4zLTMtMzEuMy0xOC4zLTM1LjYtMTEuNy0zLjgtMTkgNy4xLTE5IDIzLjRsMCAzNDcuOS05My44LTI5LjggMC00MTQuN2MzOS45IDcuNCA5OCAyNC45IDEyOS4yIDM1LjQgNzkuNSAyNy4zIDEwNi40IDYxLjMgMTA2LjQgMTM3LjggMCA3NC41LTQ2IDEwMi44LTEwNC41IDc0LjZ6TTQzLjMgNDEwLjJjLTQ1LjQtMTIuOC01My0zOS41LTMyLjMtNTQuOCAxOS4xLTE0LjIgNTEuNy0yNC45IDUxLjctMjQuOWwxMzQuNS00Ny44IDAgNTQuNS05Ni44IDM0LjZjLTE3LjEgNi4xLTE5LjcgMTQuOC01LjggMTkuNHMzOS4xIDMuMyA1Ni4yLTIuOWw0Ni40LTE2LjkgMCA0OC44Yy01MS42IDkuMy0xMDEuNCA3LjMtMTUzLjktMTB6Il19LE5QdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaWNyb2Jsb2ciLGljb246WzQ0OCw1MTIsW10sImUwMWEiLCJNMzk5LjggMzYyLjJjMjkuNS0zNC43IDQ3LjEtNzguMyA0Ny4xLTEyNS44IDAtMTEzLTk5LjYtMjA0LjQtMjIyLjUtMjA0LjRTMiAxMjMuNSAyIDIzNi40IDEwMS42IDQ0MC45IDIyNC41IDQ0MC45YzI3IDAgNTMuOS00LjUgNzkuNC0xMy40IDEuNC0uNSAzLS41IDQuNS0uMXMyLjcgMS40IDMuNiAyLjZjMTguNiAyNS4xIDQ3LjYgNDIuNyA3OS45IDQ5LjkgMS4xIC4yIDIuMyAwIDMuMy0uNnMxLjctMS42IDEuOS0yLjhjLjEtLjYgLjEtMS4zIDAtMS45cy0uNC0xLjItLjgtMS43Yy0xMi4zLTE2LTE4LjctMzUuOC0xOC01NnM4LjQtMzkuNSAyMS43LTU0LjdsLS4yIC4xek0zMzAgMjEyLjRsLTU3LjMgNDMuNSAyMC44IDY4LjljLjQgMS4zIC40IDIuNy0uMSA0cy0xLjIgMi40LTIuMyAzLjItMi40IDEuMi0zLjggMS4yLTIuNy0uNC0zLjgtMS4ybC01OS4xLTQxLTU5LjEgNDEuMWMtMS4xIC44LTIuNCAxLjItMy44IDEuMnMtMi43LS40LTMuOC0xLjItMS45LTEuOS0yLjMtMy4yLS41LTIuNy0uMS00bDIwLjgtNjguOS01Ny4zLTQzLjVjLTEuMS0uOC0xLjktMS45LTIuMy0zLjJzLS40LTIuNyAwLTQgMS4yLTIuNCAyLjMtMy4yIDIuNC0xLjMgMy43LTEuM2w3MS45LTEuNSAyMy43LTY3LjljLjQtMS4zIDEuMy0yLjQgMi40LTMuMnMyLjQtMS4yIDMuOC0xLjIgMi43IC40IDMuOCAxLjIgMS45IDEuOSAyLjQgMy4ybDIzLjcgNjcuOSA3MS45IDEuNWMxLjQgMCAyLjcgLjQgMy44IDEuMnMxLjkgMS45IDIuMyAzLjIgLjQgMi43IDAgNC0xLjIgMi40LTIuMyAzLjNsMCAweiJdfSxSUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0a3Jha2VuIixpY29uOls1NzYsNTEyLFtdLCJmM2E2IiwiTTU1Ny43IDExOC4xYy0yLjMtNi4xLTkuMy05LjItMTUuMy02LjYtNS43IDIuNC04LjUgOC45LTYuMyAxNC42IDEwLjkgMjkgMTYuOSA2MC41IDE2LjkgOTMuMyAwIDEzNC42LTEwMC4zIDI0NS43LTIzMC4yIDI2Mi43bDAtMTIzLjdjNy45LTEuNSAxNS41LTMuNiAyMy02LjJsMCAxMDRjMTA2LjctMjUuOSAxODUuOS0xMjIuMSAxODUuOS0yMzYuOCAwLTkxLjgtNTAuOC0xNzEuOC0xMjUuOC0yMTMuMy01LjctMy4yLTEzLS45LTE1LjkgNS0yLjcgNS41LS42IDEyLjIgNC43IDE1LjEgNjcuOSAzNy42IDExMy45IDExMCAxMTMuOSAxOTMuMiAwIDkzLjMtNTcuOSAxNzMuMS0xMzkuOCAyMDUuNGwwLTkyLjJjMTQuMi00LjUgMjQuOS0xNy43IDI0LjktMzMuNSAwLTEzLjEtNi44LTI0LjQtMTcuMy0zMC41IDguMy03OS41IDQ0LjUtNTguNiA0NC41LTgzLjlsMC0xNC43YzAtMzgtODcuOS0xNjEuOC0xMjktMTY0LjctMi41LS4yLTUtLjItNy42IDAtNDEuMiAzLTEyOS4xIDEyNi43LTEyOS4xIDE2NC43bDAgMTQuOGMwIDI1LjMgMzYuMyA0LjMgNDQuNSA4My45LTEwLjYgNi4xLTE3LjMgMTcuNC0xNy4zIDMwLjUgMCAxNS44IDEwLjYgMjkgMjQuOCAzMy41bDAgOTIuMmMtODEuOS0zMi4yLTEzOS44LTExMi0xMzkuOC0yMDUuNCAwLTgzLjEgNDYtMTU1LjUgMTEzLjktMTkzLjIgNS40LTMgNy40LTkuNiA0LjctMTUuMS0yLjktNS45LTEwLjEtOC4yLTE1LjktNS03NSA0MS41LTEyNS44IDEyMS41LTEyNS44IDIxMy4zIDAgMTE0LjcgNzkuMiAyMTAuOCAxODUuOSAyMzYuOGwwLTEwNGM3LjYgMi41IDE1LjEgNC42IDIzIDYuMmwwIDEyMy43Yy0xMjkuOC0xNy0yMzAuMi0xMjguMS0yMzAuMi0yNjIuNyAwLTMyLjggNi02NC4zIDE2LjktOTMuMyAyLjItNS44LS42LTEyLjItNi4zLTE0LjYtNi0yLjYtMTMgLjQtMTUuMyA2LjYtMTEuOCAzMS41LTE4LjMgNjUuNi0xOC4zIDEwMS4zIDAgMTU1LjEgMTIyLjYgMjgxLjYgMjc2LjMgMjg3LjhsMC0xNDUuOWM2LjggLjQgMTUgLjUgMjMuNCAwbDAgMTQ1LjhjMTUzLjctNi4xIDI3Ni4zLTEzMi42IDI3Ni4zLTI4Ny43IDAtMzUuNy02LjUtNjkuOC0xOC4zLTEwMS40ek0zNTcuOSAzMjIuOWEyMy43IDIzLjcgMCAxIDEgMC00Ny40IDIzLjcgMjMuNyAwIDEgMSAwIDQ3LjR6TTIxOC4xIDI3NS40YTIzLjcgMjMuNyAwIDEgMSAwIDQ3LjQgMjMuNyAyMy43IDAgMSAxIDAtNDcuNHoiXX0sZWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlbGVncmFtIixpY29uOls1MTIsNTEyLFs2MjQ2MiwidGVsZWdyYW0tcGxhbmUiXSwiZjJjNiIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM3MSAxNzYuN2MtMy43IDM5LjItMTkuOSAxMzQuNC0yOC4xIDE3OC4zLTMuNSAxOC42LTEwLjMgMjQuOC0xNi45IDI1LjQtMTQuNCAxLjMtMjUuMy05LjUtMzkuMy0xOC43LTIxLjgtMTQuMy0zNC4yLTIzLjItNTUuMy0zNy4yLTI0LjUtMTYuMS04LjYtMjUgNS4zLTM5LjUgMy43LTMuOCA2Ny4xLTYxLjUgNjguMy02Ni43IC4yLS43IC4zLTMuMS0xLjItNC40cy0zLjYtLjgtNS4xLS41Yy0yLjIgLjUtMzcuMSAyMy41LTEwNC42IDY5LjEtOS45IDYuOC0xOC45IDEwLjEtMjYuOSA5LjktOC45LS4yLTI1LjktNS0zOC42LTkuMS0xNS41LTUtMjcuOS03LjctMjYuOC0xNi4zIC42LTQuNSA2LjctOSAxOC40LTEzLjcgNzIuMy0zMS41IDEyMC41LTUyLjMgMTQ0LjYtNjIuMyA2OC45LTI4LjYgODMuMi0zMy42IDkyLjUtMzMuOCAyLjEgMCA2LjYgLjUgOS42IDIuOSAyIDEuNyAzLjIgNC4xIDMuNSA2LjcgLjUgMy4yIC42IDYuNSAuNCA5Ljh6Il19LE9QdD1lZ2UsRlB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzIixpY29uOls1MTIsNTEyLFtdLCJlODZkIiwiTTM5MS40IDM5LjdjNjUuOC0uMiAxMTguNiA1MS44IDEyMC40IDExNi42IC43IDI2LjQtMS41IDU0LjEtMy44IDc0LjEtMTcuMiAxNDguNi0xMjIuNCAyNDItMjUyLjQgMjQyLTk1LjQtLjEtMTc5LjQtNTIuNy0yMjMuMi0xMzAuNiAyNC40IDE3LjQgNTQuNSAyNy40IDg3LjYgMjcuNCA4My4yIC4xIDE1MS40LTY3LjQgMTUxLjItMTUwbC4xLTYwLjZjLS4yLTY1LjcgNTMuOS0xMTkgMTIwLjEtMTE4Ljl6TTExOS45IDEwMC4yYzY2LjIgMCAxMTkuOSA1My4zIDExOS45IDExOVMxODYuMSAzMzguMyAxMTkuOSAzMzguMyAwIDI4NSAwIDIxOS4zYzAtNjUuNyA1My43LTExOSAxMTkuOS0xMTl6Il19LEJQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMtbm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjNiNSIsIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yIC44LTUuMiAzLTkuNiA3LjEtMTIuOSA0LjItMy41IDExLjgtNS41IDEzLjQtNS41IDIwNC0zOC4yIDIyOC45LTQzLjEgMjMyLjQtNDMuMSAxMS41LS44IDE4LjEgNiAxOC4xIDE3LjYgLjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6Il19LEhQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFkIiwiTTYxMy4yIDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJsLTIwLjUgMCAwIDI0LjIgNi4zIDBjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM2wwIDEuNmMtMTUuOCAzLjctMjMuNiAxMy4xLTIzLjYgMzcuMyAwIDE4LjkgMS42IDM0LjIgMS42IDUxLjUgMCAxNy45LTMuNyAyMi42LTE3LjMgMjIuNmwwIC41LTYuMyAwIDAgMjUuMiAyMC41IDBjMjcuOCAwIDQwLjUtMTEgNDAuNS00NS4yIDAtMjIuNi0zLjItMzQuMi0zLjItNTQuNiAwLTExIDYuOC0yMi42IDI3LjMtMjMuNmwwLTI3LjNjLTIwLjUtLjctMjcuMy0xMi4zLTI3LjMtMjMuM3pNNTA3LjYgMjUxYy0xNS44LTYuMy0zMC41LTEwLTMwLjUtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjEgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxcy0yMi41LTQxLTQzLTQ3Ljh6TTE0OC43IDMxMC40Yy0zLjcgMC04LjQtMy4yLTguNC0xMy4xbDAtMTc4LjItNzQuNiAwYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZsMCAyNy4zYzIwLjUgLjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4ybDIwLjUgMCAwLTI0LjItNi4zIDBjLTEzLjEgMC0xNy4zLTUuMy0xNy4zLTIyLjZzMS42LTMyLjEgMS42LTUxLjVjMC0yNC4yLTcuOS0zMy42LTIzLjYtMzcuM2wwLTEuNmMxNS44LTMuNyAyMy42LTEzLjEgMjMuNi0zNy4zIDAtMTguOS0xLjYtMzQuMi0xLjYtNTEuNXMzLjctMjIuMSAxNy4zLTIyLjFsMTQuMSAwIDAgMTUwLjhjMCAzMi4xIDExIDUzLjEgNDMuMSA1My4xIDEwIDAgMTcuOS0xLjYgMjMuNi0zLjdsLTUuMy0zNC4yYy0zLjEgLjgtNC42IC44LTYuMiAuOHpNMzgwLjQgMjUxYy0xNi4zLTYuMy0zMS0xMC0zMS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMC41IDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MSAuMS0yOC45LTIyLjUtNDEtNDMtNDcuOHptLTE1NS02OC44Yy0zOC40IDAtNzUuMSAzMi4xLTc0LjEgODIuNSAwIDUyIDM0LjIgODIuNSA3OS4zIDgyLjUgMTguOSAwIDM5LjktNi44IDU2LjItMTcuOUwyNzEgMzAxLjVjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ybDk1LjIgMGMuNS0zLjcgMS42LTExIDEuNi0xOS40IC42LTQyLjYtMjIuNi03NS43LTY2LjctNzUuN3ptLTMwIDY2LjJjMy4yLTIxIDE1LjgtMzEgMzAuNS0zMSAxOC45IDAgMjYuMyAxMy4xIDI2LjMgMzFsLTU2LjggMHoiXX0scVB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3giLGljb246WzUxMiw1MTIsW10sImYyNjkiLCJNNTAzLjUgMjQxLjVjLS4xLTEuNi0uMi0zLjEtLjItNC43bDAtLjEtLjQtNC43IDAtLjFjLTEuMy0xMy45LTMuNy0yNy43LTcuMy00MS4yIDAtLjEgMC0uMS0uMS0uMmwtMS4xLTRjLS4xLS4yLS4xLS41LS4yLS42LS40LTEuMi0uNy0yLjUtMS4xLTMuNy0uMS0uMi0uMS0uNi0uMi0uOC0uNC0xLjItLjctMi40LTEuMS0zLjUtLjEtLjQtLjItLjYtLjQtMS0uNC0xLjItLjctMi4zLTEuMi0zLjVsLS40LTEuMWMtLjQtMS4xLS44LTIuMy0xLjItMy40LS4xLS4zLS4yLS43LS40LTEtLjUtMS4xLS44LTIuMy0xLjMtMy40LS4xLS4yLS4yLS42LS40LS44LS41LTEuMi0xLTIuMy0xLjQtMy41IDAtLjEtLjEtLjItLjEtLjQtMS42LTMuOC0zLjItNy43LTUtMTEuNGwtLjQtLjdjLS41LTEtLjgtMS44LTEuMy0yLjYtLjItLjUtLjUtMS4xLS43LTEuNi0uNC0uOC0uOC0xLjYtMS4yLTIuNC0uNC0uNi0uNi0xLjItMS0xLjhzLS44LTEuNC0xLjItMi4zYy0uNC0uNi0uNy0xLjMtMS4xLTEuOXMtLjgtMS40LTEuMi0yLjJjLS40LS43LS44LTEuNC0xLjItMi0uNC0uNy0uOC0xLjMtMS4yLTJzLS44LTEuMy0xLjItMi0uOC0xLjMtMS4yLTEuOS0uOC0xLjQtMS4zLTIuMmMtLjQtLjYtLjgtMS4yLTEuMi0xLjhsLTEuNC0yLjFjLS40LS42LS44LTEuMi0xLjItMS44LS41LS43LTEuMS0xLjYtMS42LTIuMy0uNC0uNS0uNy0xLjEtMS4xLTEuNmwtMS44LTIuNWMtLjQtLjUtLjYtLjgtMS0xLjMtMS0xLjMtMS44LTIuNS0yLjgtMy43LTcuMi05LjQtMTUtMTguMy0yMy41LTI2LjYtNS43LTYtMTEuOC0xMS41LTE4LjMtMTYuNy00LTMuNS04LjItNi43LTEyLjUtOS44LTcuNy01LjgtMTYtMTAuOC0yNC42LTE1LjEtMi40LTEuMy00LjgtMi41LTcuMi0zLjctMTcuNy04LjYtMzYuMy0xNS4yLTU1LjQtMTkuNi0xLjktLjQtMy44LS44LTUuNi0xLjJsLS4xIDBjLTEtLjEtMS44LS40LTIuOC0uNS0xMi41LTIuNC0yNS4yLTMuNy0zOC00bC0xMC42IDBjLTE1LjMgLjItMzAuNSAxLjktNDUuNSA1LTMzLjYgNy4xLTYzLjIgMjEuMi04Mi45IDM5LTEuMSAxLTEuOSAxLjctMi40IDIuMmwtLjUgLjUgLjEgMGMwIDAgLjEgMCAuMSAwczAtLjEgMC0uMWwtLjEgLjFjLjEtLjEgLjEtLjEgLjItLjEgMTQuNi04LjggMzQuOS0xNiA0OS40LTE5LjZsNS45LTEuNGMuNC0uMSAuOC0uMSAxLjItLjIgMS43LS40IDMuNC0uNyA1LjItMS4xIC4yIDAgLjYtLjEgLjgtLjEgNjQuMi0xMS43IDEzMi42IDcuNSAxODAuMiA1MyAxMC4zIDkuOCAxOS4zIDIwLjggMjYuOSAzMi44IDMwLjQgNDkuMiAyNy41IDExMS4xIDMuOCAxNDcuNi0zNC40IDUzLTExMS40IDcxLjMtMTU5IDI0LjgtMTYtMTUuNS0yNS4yLTM2LjctMjUuNi01OS0uMi0xMC43IDItMjEuMiA2LjItMzEgMS43LTMuOCAxMy4xLTI1LjcgMTguMi0yNC42LTEzLjEtMi44LTM3LjUgMi42LTU0LjcgMjguMi0xNS40IDIyLjktMTQuNSA1OC4yLTUgODMuMy02LTEyLjQtMTAuMS0yNS42LTEyLjEtMzkuMi0xMi4yLTgyLjYgNDMuMy0xNTMgOTQuMy0xNzAuNS0yNy41LTI0LTk2LjUtMjIuMy0xNDcuNyAxNS40LTI5LjkgMjItNTEuMiA1My4yLTYyLjUgOTAuNCAxLjctMjAuOSA5LjYtNTIuMSAyNS44LTgzLjktMTcuMiA4LjktMzkgMzctNDkuOCA2Mi45LTE1LjYgMzcuNC0yMSA4Mi4yLTE2LjEgMTI0LjggLjQgMy4yIC43IDYuNCAxLjEgOS42IDE5LjkgMTE3LjEgMTIyIDIwNi40IDI0NC44IDIwNi40IDEzNy4xIDAgMjQ4LjMtMTExLjIgMjQ4LjMtMjQ4LjQtLjEtNC41LS4yLTkuMS0uNS0xMy41eiJdfSxqUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FnZ2xlIixpY29uOlszMjAsNTEyLFtdLCJmNWZhIiwiTTMwNC4yIDUwMS41TDE1OC40IDMyMC4zIDI5OC4yIDE4NWMyLjYtMi43IDEuNy0xMC41LTUuMy0xMC41bC02OS4yIDBjLTMuNSAwLTcgMS44LTEwLjUgNS4zbC0xMzIuMyAxMzMuNyAwLTMwNmMwLTUtMi41LTcuNS03LjUtNy41TDIxLjUgMEMxNi41IDAgMTQgMi41IDE0IDcuNWwwIDQ5N2MwIDUgMi41IDcuNSA3LjUgNy41bDUxLjkgMGM1IDAgNy41LTIuNSA3LjUtNy41bDAtMTA5IDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zbDY2LjkgMGMzLjUgMCA1LjUtMSA2LTNsLTEuNC03LjZ6Il19LFZQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImYzOWYiLCJNMjU2LjYgOGMtMTQwIDAtMjQ4LjYgMTAyLjMtMjQ4LjYgMjQwLjYgMCA3Mi4zIDI5LjcgMTM0LjggNzguMSAxNzcuOSA4LjMgNy41IDYuNiAxMS45IDggNTguMiAuMSAzLjIgMSA2LjQgMi42IDkuMnMzLjkgNS4yIDYuNyA2LjkgNS45IDIuOCA5LjEgMyA2LjUtLjMgOS41LTEuNkMxNzQuOSA0NzkgMTc1LjYgNDc3LjIgMTg0LjYgNDc5LjYgMzM3LjggNTIxLjggNTA0IDQyMy43IDUwNCAyNDguNiA1MDQgMTEwLjMgMzk2LjYgOCAyNTYuNiA4ek00MDUuOCAxOTMuMWwtNzMgMTE1LjZjLTIuOCA0LjMtNi40IDguMS0xMC42IDExcy05LjEgNC44LTE0LjEgNS44LTEwLjMgLjgtMTUuMy0uNC05LjctMy40LTEzLjgtNi40bC01OC4xLTQzLjVjLTIuNi0xLjktNS44LTMtOS0zcy02LjQgMS4xLTkgM2wtNzguNCA1OS40Yy0xMC41IDcuOS0yNC4yLTQuNi0xNy4xLTE1LjdsNzMtMTE1LjZjMi44LTQuMyA2LjQtOC4xIDEwLjYtMTFzOS4xLTQuOCAxNC4xLTUuOCAxMC4zLS44IDE1LjMgLjQgOS43IDMuNCAxMy45IDYuNGw1OC4xIDQzLjVjMi42IDEuOSA1LjggMyA5IDNzNi40LTEuMSA5LTNsNzguNC01OS40YzEwLjQtOCAyNC4xIDQuNSAxNy4xIDE1LjZ6Il19LFVQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdWRpYmxlIixpY29uOls2NDAsNTEyLFtdLCJmMzczIiwiTTY0MCAxOTkuOWwwIDU0LTMyMCAyMDAtMzIwLTE5OS45IDAtNTQgMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjZzLTEzNS41IDM2LjctMTcyLjYgOTIuNGwuMyAwYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6TTIyNS40IDI5MC43YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMUMyMzUuNCA1Ni44IDQyMS44IDg0LjcgNTIxLjEgMjIzLjJsLjcgMSA0OC44LTMwLjRjLTUzLjUtODEuNy0xNDUuOC0xMzUuNy0yNTAuNy0xMzUuNy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnoiXX0sV1B0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhdHJlb24iLGljb246WzUxMiw1MTIsW10sImYzZDkiLCJNNDkwIDE1My44Yy0uMS02NS40LTUxLTExOS0xMTAuNy0xMzguMy03NC4yLTI0LTE3Mi0yMC41LTI0Mi45IDEyLjktODUuOCA0MC41LTExMi44IDEyOS4zLTExMy44IDIxNy44LS44IDcyLjggNi40IDI2NC40IDExNC42IDI2NS44IDgwLjMgMSA5Mi4zLTEwMi41IDEyOS41LTE1Mi4zIDI2LjQtMzUuNSA2MC41LTQ1LjUgMTAyLjQtNTUuOSA3Mi0xNy44IDEyMS4xLTc0LjcgMTIxLTE1MGwtLjEgMHoiXX0sR1B0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZudiIsaWNvbjpbNjQwLDUxMixbXSwiZjQwYiIsIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJsMzIuOCAwYzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWwzMi44IDBjMjAuOCAwIDEwLjQgMTguMSAxMC40IDE4LjFMMTg2LjQgMzIxLjZTMTc0LjIgMzUyIDE0MCAzNTJsLTM1LjEgMHptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDM5Ny42IDIxMC4xUzM4Ny4yIDE5MiA0MDggMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOSAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDU4MS41IDMyMS42UzU2OS4zIDM1MiA1MzUuMSAzNTJsLTM1LjIgMHpNMzM3LjYgMTkyYzM0LjEgMCA0Ni40IDMwLjQgNDYuNCAzMC40bDU1LjkgMTExLjVTNDUwLjMgMzUyIDQyOS41IDM1MmwtMzIuOCAwYy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMS0yMS4xIDEzLjEtMjEuMSAxMy4xbC0zNi43IDc0LjVjLTUuNiA5LjQtOC40IDE4LjEtMTguOCAxOC4xbC0zMi45IDBjLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVTMjY4LjMgMTkyIDMwMi41IDE5MmwzNS4xIDB6Il19LEtQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlbGluZXMiLGljb246WzM4NCw1MTIsW10sImYxOGMiLCJNMzg0LjEgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40IC41IDEuNiAuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIweiJdfSxZUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uIixpY29uOls0NDgsNTEyLFtdLCJmMjcwIiwiTTI1Ny43IDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2cy0zMi4zLTI1LjMtMzIuMy01Mi44bDAtMTQ3LjFDMzQxLjUgODkgMzE3IDMyIDIyOS4yIDMyIDE0MS4yIDMyIDk0LjUgODcgOTQuNSAxMzYuM2w3My41IDYuOGMxNi4zLTQ5LjUgNTQuMi00OS41IDU0LjItNDkuNSA0MC43LS4xIDM1LjUgMjkuOCAzNS41IDY5LjF6bTAgODYuOGMwIDgwLTg0LjIgNjgtODQuMiAxNy4yIDAtNDcuMiA1MC41LTU2LjcgODQuMi01Ny44bDAgNDAuNnpNMzkzLjcgNDEzYy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuNyA0MDguNSAxMC4yIDM3OWMtNi44LTcuNyAxLTExLjMgNS41LTguMyA3My4zIDQ0LjUgMTg3LjggMTE3LjggMzcyLjUgMzAuMyA3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xeiJdfSxaUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW52aXJhIixpY29uOls0NDgsNTEyLFtdLCJmMjk5IiwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM2w4MC45IDgxLjctMjYgMC03MC40LTcxLjJDMzEyLjYgNDEzIDIyNy4yIDQ0My4zIDEzNy4yIDM3MS44IDQ3IDMwMC4zIDUyIDIxNC43IDAgMzJ6TTc5LjcgNzhjLTQ5LjctMjMuNS01LjIgOS4yLTUuMiA5LjIgNDUuMiAzMS4yIDY2IDczLjcgOTAuMiAxMTkuOSAzMS41IDYwLjIgNzkgMTM5LjcgMTQ0LjIgMTY3LjcgNjUgMjggMzQuMiAxMi41IDYtOC41LTI4LjItMjEuMi02OC4yLTg3LTkxLTEzMC4yLTMxLjctNjAtNjEtMTE4LjYtMTQ0LjItMTU4LjF6Il19LFhQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5vZGUiLGljb246WzQ0OCw1MTIsW10sImYyYjgiLCJNMzY2LjMgMTg2LjlsLTU5LjUgMzYuOS0uOCAzNi45LTI5LjMtMTkuMy0zOS40IDI0LjNjMi4yIDU1LjIgMi41IDU5LjMgMi41IDU5LjVsLTk3LjIgNjUuNC0xNS4xLTEwNC43IDEwOC4xLTYyLTQwLjItMjYtNzUuNCAzOC41LTIxLTE0My4zIDEyOS00OS40LTkxLjMtNDMuNi0xMjUuNyAzOS40IDI3LjcgMTM0LjkgNDEuOSAzMi43LTMxLjggMTUuMSAyMC45IDEwMS40IDI5LjMgMjcuNy0yMC45IDEyLjYgMTYuOCA3OC44IDY2LjIgNjkuNmMtMTAuOC03NC44LTExLjctNzguNi0xMS43LTc4LjhsNzcuOS01NS4zQzI0NCAzNjUuNCAyNDIuMyAzNjcgMjQyLjMgMzY3bC44IDI0LjMgMzMuNSAyOC41LS44LTc3LjEgNDYuOS0zMy41IDI2LjgtMTguNC0yLjUgMzYgMjUuMSAxNy42IDYuNy03NC42IDU4LjctNDMuNi03MS4yLTM5LjR6Il19LFFQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2N1c29mdCIsaWNvbjpbNjQwLDUxMixbXSwiZjM2OSIsIk0zMjIuMSAyNTJsMC0xLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNyAuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNiAuNS0uNi0uMS0uMSAuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6TTQ4Mi4yIDM3Mi4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOCAuNS0xMTYuNSAuNi0xOS4yIC4xLTMyLjktLjMtMTkuMiAxNi45IDcuNyA5LjUgMjM0LjIgMjk5LjcgMjM5LjkgMzA2LjZ6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xIC4yLTkuNiAuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNiAuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcgLjggMzAwLjkgNjcuNiAzMDggNjkuMSAxNS42IDMuMyAzOC41IDEwLjUgNTMuNiAxLjcgMi4xLTEuMiAxMjMuOC03Ni40IDEyNS44LTc3LjggNS40LTQgNC4zLTYuOC0xLjctOC4yeiJdfSxKUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXJsYW5nIixpY29uOls2NDAsNTEyLFtdLCJmMzlkIiwiTTg3LjIgNTMuNWwtODcuMiAwIDAgNDA1IDEwMC40IDBjLTQ5LjctNTIuNi03OC44LTEyNS4zLTc4LjctMjEyLjEtLjEtNzYuNyAyNC0xNDIuNyA2NS41LTE5Mi45em0yMzguMiA5LjdjLTQ1LjkgLjEtODUuMSAzMy41LTg5LjIgODMuMmwxNjkuOSAwYy0xLjEtNDkuNy0zNC41LTgzLjEtODAuNy04My4yem0yMzAuNy05LjZsLjMgMC0uMS0uMS0uMiAuMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcgLjUgNiAuNSAxMS43IDAgMjQuMWwtMzcyLjQgMGMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44bDgwLjggMCAwLTQwNS04My42IDB6Il19LGVJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmlzb24iLGljb246WzUxMiw1MTIsW10sImU4NTQiLCJNNDM1LjEgMTYxLjdhMTMuOSAxMy45IDAgMSAxIDE5LjYtMTkuNyAxMy45IDEzLjkgMCAxIDEgLTE5LjYgMTkuN3pNMzY5LjcgOTcuOGMxMC40IDIuMSAyMC42IDUuMiAzMC40IDkuMiA2LjggMi44IDEwLjEgMTAuOCA3LjMgMTcuNy0yLjggNi43LTEwLjkgMTAuMS0xNy42IDcuMy04LjMtMy40LTE2LjgtNS44LTI1LjctNy44LTguNi0xLjctMTcuMy0yLjUtMjYtMi41LTE5LjMgMC0zNy4xLTEwLjMtNDYuNy0yNy04LjctMTUuMS0yMC42LTI4LjktMzQuNy0zOS43LTU5LjEtNDUuNS0xNDMuOC0zNC4zLTE4OS4yIDI1LTIuNiAzLjMtNi41IDUuMy0xMC43IDUuMy03LjQgMC0xMy41LTYuMS0xMy41LTEzLjUgMC0zLjIgMS4yLTYuMyAzLjItOC44IDEyLjktMTYuNyAyOC45LTMwLjcgNDcuMS00MS4yIDc3LjQtNDQuOCAxNzYuNC0xOC4yIDIyMS4xIDU5LjQgNC4zIDguMiAxMy43IDEzLjMgMjIuOCAxMy41IDEwLjggMCAyMS42IDEgMzIuMiAzLjF6TTM1IDI3MGM0LjYtOC4yIDQuNi0xOC4yIDAtMjYuNC0yMS45LTM2LjUtMjcuMy04Mi4zLTE2LjMtMTIzLjIgMS42LTUuOSA2LjktMTAgMTMtMTAgOC43IDAgMTUuMyA4LjcgMTMgMTctOS41IDM1LjQtMy40IDcxIDEzLjcgMTAyLjkgOS4zIDE2LjUgOS4zIDM2LjcgMCA1My4xLTguNyAxNS43LTE0LjggMzIuNC0xNy4yIDUwLjMtOS43IDczLjkgNDIuMyAxNDEuNyAxMTYuMiAxNTEuNCA3LjMgMSAxMi42IDcuOSAxMS42IDE1LjItMSA3LjMtNy44IDEyLjYtMTUuMSAxMS42LTIxLjEtMi44LTQxLjQtOS43LTU5LjgtMjAuMy03NS42LTQzLjYtMTA0LjktMTQ1LjgtNTkuMi0yMjEuNXpNMjE2LjkgNTA5Yy03LjQgMi0xNS4xLTIuNC0xNy4xLTkuOHMyLjUtMTUgOS45LTE2LjljOC41LTIuMiAxNy40IDQuNSAxNy40IDEzLjQgMCA2LjItNC4yIDExLjYtMTAuMiAxMy4zem0xMjIuMy05MWMtOS41IDAtMTguNCA1LTIzLjIgMTMuMi00LjkgOS40LTExLjcgMTguMi0xOC43IDI2LjJsMCAwYy03LjEgOC0xNC44IDE1LjItMjMuMiAyMS43LTUuOSA0LjUtMTQuNCAzLjQtMTktMi41cy0zLjQtMTQuNCAyLjUtMTguOWM3LTUuNCAxMy41LTExLjUgMTkuNC0xOC4xbDAgMGM1LjktNi42IDExLjEtMTMuOCAxNS41LTIxLjYgOS43LTE2LjcgMjcuNS0yNyA0Ni44LTI3IDE3LjggMCAzNS40LTMuNSA1MS44LTEwLjMgNjguMy0yOC4zIDEwMS4xLTEwOC4zIDczLjItMTc2LjUtLjYtMS42LTEtMy4zLTEtNSAwLTcuNCA2LjEtMTMuNSAxMy41LTEzLjUgNS40IDAgMTAuMyAzLjIgMTIuNCA4LjIgOC4yIDE5LjcgMTIuNCA0MC44IDEyLjQgNjIuMSAwIDg5LjUtNzIuNyAxNjIuMS0xNjIuNCAxNjIuMWwwIDB6bS0xMy4xLTI2OGMzLjktLjQgNy45LS42IDExLjktLjYgNTkuMyAwIDEwOC4yIDQ4LjcgMTA4LjIgMTA3LjhTMzk3LjMgMzY1IDMzOCAzNjVjLTQgMC03LjktLjItMTEuOC0uNi0yMi4yLTEuNy00My4zIDEwLjQtNTIuOSAzMC40LTE3LjIgMzkuMS01Ni4yIDY0LjUtOTkuMSA2NC41LTU5LjMgMC0xMDguMi00OC43LTEwOC4yLTEwNy44IDAtMjMuMiA3LjUtNDUuNyAyMS40LTY0LjMgMTIuMi0xOC4zIDEyLjEtNDIuMy0uNC02MC41LTEzLjYtMTguNS0yMC45LTQwLjgtMjAuOS02My43IDAtNTkuMSA0OC44LTEwNy44IDEwOC4yLTEwNy44IDQyLjggMCA4MS44IDI1LjQgOTkgNjQuNCA5LjYgMjAgMzAuNyAzMi4xIDUyLjkgMzAuNHpNMTA2LjggMzkzLjRjMTQuNCAyNS4yIDQxLjEgNDAuOCA2OS44IDQwLjggNDQuMiAwIDgwLjYtMzYuOCA4MC42LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjZjLTE0LjIgMC0yOC4xIDMuOC00MC4zIDEwLjktMzguMyAyMi40LTUxLjYgNzIuNy0yOS41IDExMS40ek0yNjggMjk4YzE0LjQgMjUuMiA0MS4xIDQwLjggNjkuOCA0MC44IDQ0LjIgMCA4MC42LTM2LjggODAuNi04MS42cy0zNi40LTgxLjYtODAuNi04MS42Yy0xNC4yIDAtMjguMSAzLjgtNDAuMyAxMC45LTM4LjMgMjIuNC01MS42IDcyLjctMjkuNSAxMTEuNHptLTkxLjItNTQuNmM0NC4yIDAgODAuNS0zNi44IDgwLjUtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNi04MC42IDM2LjgtODAuNiA4MS42YzAgNDQuNyAzNi40IDgxLjYgODAuNiA4MS42eiJdfSx0SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGlzY292ZXIiLGljb246WzU3Niw1MTIsW10sImYxZjIiLCJNNTIwLjQgMTk2LjFjMC03LjktNS41LTEyLjEtMTUuNi0xMi4xbC00LjkgMCAwIDI0LjkgNC43IDBjMTAuMyAwIDE1LjgtNC40IDE1LjgtMTIuOHpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4My45IDE3MC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjQtMTkuNiAwLTIyLjItMzIuOC0yLjIgMCAwIDMyLjgtMTYgMCAwLTgyek00MjggMTcxbDQ1LjMgMCAwIDE0LTI5LjMgMCAwIDE4LjIgMjguMyAwIDAgMTMuOC0yOC4zIDAgMCAyMi4yIDI5LjMgMCAwIDEzLjgtNDUuMyAwIDAtODJ6bS02OC43IDBsMjEuOSA1NS4yIDIyLjItNTUuMiAxNy41IDAtMzUuNSA4NC4yLTguNiAwLTM1LTg0LjIgMTcuNSAwem0tNTUuOSA4Ni4yYTQ0LjYgNDQuNiAwIDEgMSAwLTg5LjIgNDQuNiA0NC42IDAgMSAxIDAgODkuMnptLTQ5LjMtODMuMWwwIDE5Yy0yMC4xLTIwLjEtNDYuOC00LjctNDYuOCAxOSAwIDI1IDI3LjUgMzguNSA0Ni44IDE5LjJsMCAxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNsLTIzLjQgMCAwLTgyIDIzLjQgMGMyNi4xIDAgNDQuMSAxNyA0NC4xIDQxLjEgMCAxOC41LTEzLjIgNDAuOS00NC4xIDQwLjl6bTY3LjUgMGwtMTYgMCAwLTgyIDE2IDAgMCA4MnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVsLTQwMSAwYzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MGwwIDE0NXpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNmwtNC4yIDAgMCA1NC4yIDQuMiAwYzEwLjMgMCAxNy0yIDIxLjktNi40IDUuNy01LjIgOC45LTEyLjggOC45LTIwLjdzLTMuMi0xNS41LTguOS0yMC41eiJdfSxhSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FmYXJpIixpY29uOls1MTIsNTEyLFtdLCJmMjY3IiwiTTI3NC43IDI3NC43TDIzNy4zIDIzNy4zIDE2NiAzNDYgMjc0LjcgMjc0Ljd6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDExLjggMTgyLjhsMTQuOC02LjFjMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOCAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS4zLTIuNiAxLjdMNDE4IDE5Ny42Yy0yIC44LTQuMiAuOC02LjEgMHMtMy41LTIuNC00LjMtNC4zLS44LTQuMiAwLTYuMSAyLjQtMy41IDQuMy00LjN6TTMxNC40IDk0bDYuMS0xNC44Yy44LTIgMi40LTMuNSA0LjMtNC4zczQuMi0uOCA2LjEgMCAzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xbC02LjEgMTQuOGMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGMtMS0uNC0xLjktMS0yLjYtMS43cy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMXpNMjU2IDYwYzIuMSAwIDQuMiAuOCA1LjcgMi4zUzI2NCA2NS45IDI2NCA2OGwwIDE2YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTMjUzLjkgNjAgMjU2IDYwek0xODEgNzQuOWMxLS40IDItLjYgMy4xLS42czIuMSAuMiAzLjEgLjYgMS45IDEgMi42IDEuNyAxLjMgMS42IDEuNyAyLjZMMTk3LjYgOTRjLjQgMSAuNyAyIC43IDMuMXMtLjIgMi4xLS42IDMuMS0xIDEuOS0xLjcgMi42LTEuNiAxLjQtMi42IDEuOC0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjgtMS4zLTEuNy0xLjctMi43bC02LjEtMTQuOGMtLjgtMi0uOC00LjIgMC02LjFzMi40LTMuNSA0LjMtNC4zem0tNjMuNiA0Mi41YzEuNS0xLjUgMy41LTIuMyA1LjctMi4zczQuMiAuOCA1LjcgMi4zTDE0MCAxMjguN2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM2wtMTEuMy0xMS4zYy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuNnMuOC00LjEgMi4zLTUuNmwwIDB6TTYwIDI1NmMwLTIuMSAuOC00LjIgMi4zLTUuN1M2NS45IDI0OCA2OCAyNDhsMTYgMGMyLjEgMCA0LjIgLjggNS43IDIuM3MyLjMgMy41IDIuMyA1LjctLjggNC4yLTIuMyA1LjctMy41IDIuMy01LjcgMi4zbC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM1M2MCAyNTguMSA2MCAyNTZ6bTQwLjIgNzMuMmwtMTQuOCA2LjFjLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMSAxLTEuOSAxLjctMi42IDEuNi0xLjMgMi42LTEuN0w5NCAzMTQuNGMyLS44IDQuMi0uOCA2LjEgMHMzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xLTIuNCAzLjUtNC4zIDQuM3ptNC4zLTEzNmMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNmwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zIDQuMi0uOCA2LjEgMGwxNC44IDYuMWMyIC44IDMuNSAyLjQgNC4zIDQuM3MuOCA0LjIgMCA2LjFsMCAwek0xOTcuNiA0MThsLTYuMSAxNC44Yy0uNCAxLTEgMS45LTEuNyAyLjZzLTEuNiAxLjMtMi42IDEuNy0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjFsNi4xLTE0LjhjLjQtMSAxLTEuOSAxLjctMi43czEuNi0xLjQgMi42LTEuOCAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjggMS4zIDEuNyAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNyAzLjF6TTI2NCA0NDRjMCAyLjEtLjggNC4yLTIuMyA1LjdzLTMuNSAyLjMtNS43IDIuMy00LjItLjgtNS43LTIuMy0yLjMtMy41LTIuMy01LjdsMC0xNmMwLTIuMSAuOC00LjIgMi4zLTUuN3MzLjUtMi4zIDUuNy0yLjMgNC4yIC44IDUuNyAyLjMgMi4zIDMuNSAyLjMgNS43bDAgMTZ6bTY3LTYuOWMtMSAuNC0yIC42LTMuMSAuNnMtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNkwzMTQuNCA0MThjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zbDYuMSAxNC44Yy44IDIgLjggNC4yIDAgNi4xcy0yLjQgMy41LTQuMyA0LjN6bTYzLjYtNDIuNWMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNzLTQuMi0uOC01LjctMi4zTDM3MiAzODMuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjYgMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zbDExLjMgMTEuM2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZsMCAwek0yODYuMiAyODYuMkwxMTAuMyA0MDEuNyAyMjUuOCAyMjUuOCA0MDEuNyAxMTAuMyAyODYuMiAyODYuMnpNNDM3LjEgMzMxYy0uOCAyLTIuNCAzLjUtNC4zIDQuM3MtNC4yIC44LTYuMSAwbC0xNC44LTYuMWMtMi0uOC0zLjUtMi40LTQuMy00LjNzLS44LTQuMiAwLTYuMWMuNC0xIDEtMS45IDEuNy0yLjZzMS42LTEuMyAyLjYtMS43IDItLjYgMy4xLS42IDIuMSAuMiAzLjEgLjZsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xem02LjktNjdsLTE2IDBjLTIuMSAwLTQuMi0uOC01LjctMi4zcy0yLjMtMy41LTIuMy01LjcgLjgtNC4yIDIuMy01LjcgMy41LTIuMyA1LjctMi4zbDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM3oiXX0sc0l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwYWNlLWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImU1YWMiLCJNOTYgMjU2bDMyIDAgMCAyNTYtMTI4IDAgMC0xNjAgMzIgMCAwLTMyIDMyIDAgMC0zMiAzMiAwIDAtMzJ6bTQxNiA5NmwwIDE2MC0xMjggMCAwLTI1NiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwek0zMjAgNjRsMzIgMCAwIDM4NC0zMiAwIDAtMzItMTI4IDAgMCAzMi0zMiAwIDAtMzg0IDMyIDAgMC0zMiAzMiAwIDAtMzIgNjQgMCAwIDMyIDMyIDAgMCAzMnptLTMyIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxpSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxOSIsIk0zMTYuMyA0NTJjLTIuMSAwLTQuMi0uNi02LjEtMS42TDI5MSA0MzljLTIuOS0xLjYtMS41LTIuMi0uNS0yLjUgMy44LTEuMyA0LjYtMS42IDguNy00IC40LS4yIDEtLjEgMS40IC4xbDE0LjggOC44Yy41IC4zIDEuMyAuMyAxLjggMEwzNzUgNDA4Yy41LS4zIC45LS45IC45LTEuNmwwLTY2LjdjMC0uNy0uMy0xLjMtLjktMS42bC01Ny44LTMzLjNjLS41LS4zLTEuMi0uMy0xLjggMGwtNTcuOCAzMy4zYy0uNiAuMy0uOSAxLS45IDEuNmwwIDY2LjdjMCAuNiAuNCAxLjIgLjkgMS41bDE1LjggOS4xYzguNiA0LjMgMTMuOS0uOCAxMy45LTUuOGwwLTY1LjljMC0uOSAuNy0xLjcgMS43LTEuN2w3LjMgMGMuOSAwIDEuNyAuNyAxLjcgMS43bDAgNjUuOWMwIDExLjUtNi4yIDE4LTE3LjEgMTgtMy4zIDAtNiAwLTEzLjMtMy42bC0xNS4yLTguN2MtMy43LTIuMi02LjEtNi4yLTYuMS0xMC41bDAtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjVsMCA2Ni43YzAgNC4zLTIuMyA4LjQtNi4xIDEwLjVsLTU3LjggMzMuNGMtMS43IDEuMS0zLjggMS43LTYgMS43ek0zNjMgMzg2LjJjMC0xMi41LTguNC0xNS44LTI2LjItMTguMi0xOC0yLjQtMTkuOC0zLjYtMTkuOC03LjggMC0zLjUgMS41LTguMSAxNC44LTguMSAxMS45IDAgMTYuMyAyLjYgMTguMSAxMC42IC4yIC44IC44IDEuMyAxLjYgMS4zbDcuNSAwYy41IDAgLjktLjIgMS4yLS41IC4zLS40IC41LS44IC40LTEuMy0xLjItMTMuOC0xMC4zLTIwLjItMjguOC0yMC4yLTE2LjUgMC0yNi4zIDctMjYuMyAxOC42IDAgMTIuNyA5LjggMTYuMSAyNS42IDE3LjcgMTguOSAxLjkgMjAuNCA0LjYgMjAuNCA4LjMgMCA2LjUtNS4yIDkuMi0xNy40IDkuMi0xNS4zIDAtMTguNy0zLjgtMTkuOC0xMS40LS4xLS44LS44LTEuNC0xLjctMS40bC03LjUgMGMtLjkgMC0xLjcgLjctMS43IDEuNyAwIDkuNyA1LjMgMjEuMyAzMC42IDIxLjMgMTguNSAwIDI5LTcuMiAyOS0xOS44em01NC41LTUwLjFjMCA2LjEtNSAxMS4xLTExLjEgMTEuMXMtMTEuMS01LTExLjEtMTEuMWMwLTYuMyA1LjItMTEuMSAxMS4xLTExLjEgNi0uMSAxMS4xIDQuOCAxMS4xIDExLjF6bS0xLjggMGMwLTUuMi00LjItOS4zLTkuNC05LjMtNS4xIDAtOS4zIDQuMS05LjMgOS4zczQuMiA5LjQgOS4zIDkuNGM1LjItLjEgOS40LTQuMyA5LjQtOS40em0tNC41IDYuMmwtMi42IDBjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFsLTIuMiAwIDAgNS0yLjQgMCAwLTEyLjUgNC4zIDBjMS41IDAgNC40IDAgNC40IDMuMyAwIDIuMy0xLjUgMi44LTIuNCAzLjEgMS43IC4xIDEuOCAxLjIgMi4xIDIuOCAuMSAxIC4zIDIuNyAuNiAzLjN6bS0yLjgtOC44YzAtMS43LTEuMi0xLjctMS44LTEuN2wtMiAwIDAgMy41IDEuOSAwYzEuNiAwIDEuOS0xLjEgMS45LTEuOHpNMTM3LjMgMTkxYzAtMi43LTEuNC01LjEtMy43LTYuNEw3Mi4zIDE0OS4zYy0xLS42LTIuMi0uOS0zLjQtMWwtLjYgMGMtMS4yIDAtMi4zIC40LTMuNCAxTDMuNyAxODQuNkMxLjQgMTg1LjkgMCAxODguNCAwIDE5MWwuMSA5NWMwIDEuMyAuNyAyLjUgMS44IDMuMnMyLjUgLjcgMy43IDBMNDIgMjY4LjNjMi4zLTEuNCAzLjctMy44IDMuNy02LjRsMC00NC40YzAtMi42IDEuNC01LjEgMy43LTYuNGwxNS41LTguOWMxLjItLjcgMi40LTEgMy43LTFzMi42IC4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40bDAgNDQuNGMwIDIuNiAxLjQgNS4xIDMuNyA2LjRsMzYuNCAyMC45YzEuMSAuNyAyLjYgLjcgMy43IDAgMS4xLS42IDEuOC0xLjkgMS44LTMuMmwuMi05NXpNNDcyLjUgODcuM2wwIDE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjRsMC03MC44YzAtMi42IDEuNC01LjEgMy43LTYuNGw2MS4zLTM1LjRjMi4zLTEuMyA1LjEtMS4zIDcuNCAwbDE1LjMgOC44YzEuNyAxIDMuOS0uMyAzLjktMi4ybDAtOTRjMC0yLjggMy00LjYgNS41LTMuMmwzNi41IDIwLjRjMi4zIDEuMiAzLjggMy43IDMuOCA2LjR6bS00NiAxMjguOWMwLS43LS40LTEuMy0uOS0xLjZsLTIxLTEyLjJjLS42LS4zLTEuMy0uMy0xLjkgMGwtMjEgMTIuMmMtLjYgLjMtLjkgLjktLjkgMS42bDAgMjQuM2MwIC43IC40IDEuMyAuOSAxLjZsMjEgMTIuMWMuNiAuMyAxLjMgLjMgMS44IDBsMjEtMTIuMWMuNi0uMyAuOS0uOSAuOS0xLjZsMC0yNC4zIC4xIDB6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40bDAtMTcuMWMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40bDAgNzAuOGMwIDIuNyAxLjQgNS4xIDMuNyA2LjRsNjAuOSAzNC43YzIuMiAxLjMgNSAxLjMgNy4zIDBsMzYuOC0yMC41YzIuNS0xLjQgMi41LTUgMC02LjRMNTUwIDI0MS42Yy0xLjItLjctMS45LTEuOS0xLjktMy4ybDAtMjIuMmMwLTEuMyAuNy0yLjUgMS45LTMuMmwxOS4yLTExLjFjMS4xLS43IDIuNi0uNyAzLjcgMEw1OTIuMSAyMTNjMS4xIC43IDEuOSAxLjkgMS45IDMuMmwwIDE3LjRjMCAyLjggMy4xIDQuNiA1LjYgMy4ybDM2LjctMjEuM3pNNTU5IDIxOWMtLjQgLjMtLjcgLjctLjcgMS4ybDAgMTMuNmMwIC41IC4zIDEgLjcgMS4ybDExLjggNi44Yy40IC4zIDEgLjMgMS40IDBMNTg0IDIzNWMuNC0uMyAuNy0uNyAuNy0xLjJsMC0xMy42YzAtLjUtLjMtMS0uNy0xLjJsLTExLjgtNi44Yy0uNC0uMy0xLS4zLTEuNCAwTDU1OSAyMTl6TTMwNC44IDI2Mi41bDAtNzAuNGMwLTIuNi0xLjYtNS4xLTMuOS02LjRsLTYxLjEtMzUuMmMtMi4xLTEuMi01LTEuNC03LjQgMGwtNjEuMSAzNS4yYy0yLjMgMS4zLTMuOSAzLjctMy45IDYuNGwwIDcwLjRjMCAyLjggMS45IDUuMiA0IDYuNGw2MS4yIDM1LjJjMi40IDEuNCA1LjIgMS4zIDcuNCAwbDYxLTM1LjJjMS44LTEgMy4xLTIuNyAzLjYtNC43IC4xLS41IC4yLTEuMSAuMi0xLjd6TTIzMC41IDEzNy42bC0uOCAuNSAxLjEgMC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjcgMCAuOSAuNC0uMnoiXX0sckl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGVwZW4iLGljb246WzUxMiw1MTIsW10sImYxY2IiLCJNNTAyLjMgMTU5LjdsLTIzNC0xNTZjLTgtNC45LTE2LjUtNS0yNC42IDBsLTIzNCAxNTZjLTYgNC05LjcgMTEuMS05LjcgMTguM0wwIDMzNGMwIDcuMSAzLjcgMTQuMyA5LjcgMTguM2wyMzQgMTU2YzggNC45IDE2LjUgNSAyNC42IDBsMjM0LTE1NmM2LTQgOS43LTExLjEgOS43LTE4LjNsMC0xNTZjMC03LjEtMy43LTE0LjMtOS43LTE4LjN6TTI3OCA2My4xbDE3Mi4zIDExNC45LTc2LjkgNTEuNC05NS40LTYzLjcgMC0xMDIuNnptLTQ0IDBMMjM0IDE2NS43IDEzOC42IDIyOS40IDYxLjcgMTc4IDIzNCA2My4xek00NCAyMTkuMUw5OS4xIDI1NiA0NCAyOTIuOCA0NCAyMTkuMXpNMjM0IDQ0OC44TDYxLjcgMzM0IDEzOC42IDI4Mi42IDIzNCAzNDYuMyAyMzQgNDQ4Ljh6TTI1NiAzMDhsLTc3LjctNTIgNzcuNy01MiA3Ny43IDUyLTc3LjcgNTJ6bTIyIDE0MC45bDAtMTAyLjYgOTUuNC02My43IDc2LjkgNTEuNC0xNzIuMyAxMTQuOXptMTkwLTE1NmwtNTUuMS0zNi45IDU1LjEtMzYuOSAwIDczLjd6Il19LG9JdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXZlbHJ5IixpY29uOls1MTIsNTEyLFtdLCJmMmQ5IiwiTTQ5OC42IDIzNC4yYy0xLjItMTAuMy0xLjctMjAuOC0zLjctMzEtMi41LTEyLjQtNS43LTI0LjYtOS42LTM2LjYtNi44LTIwLjktMTcuMi00MC4zLTMwLjktNTcuNS01LjktNy42LTEyLjEtMTQuOC0xOC44LTIxLjctMTQuMS0xNC0zMC0yNi4xLTQ3LjEtMzYuMS0xNy44LTEwLjYtMzYuOC0xOC45LTU2LjctMjQuNy0xMS0zLjEtMjIuMy01LjQtMzMuNS03LjYtNi44LTEuMy0xMy43LTEuNy0yMC42LTIuNS0uMyAwLS42LS40LS45LS42LTEwLjggMC0yMS41IDAtMzIuMyAwLTIuNCAuNC00LjggLjktNy4yIDEuMi0xMS42IDEuMi0yMy4xIDMuNi0zNC4zIDcuMS0xMy44IDQuMS0yNy4xIDkuNi0zOS44IDE2LjQtMTMuMyA3LTI2LjEgMTUuMS0zOC4xIDI0LjItNi4yIDQuNi0xMi4zIDkuNC0xOCAxNC41LTEwLjIgOS4yLTIwLjQgMTguNC0yOS45IDI4LjMtMTIuOCAxMy4zLTI0LjEgMjguMS0zMy42IDQ0LTguNiAxNC0xNS41IDI5LTIwLjUgNDQuNi03LjIgMjIuNy0xMC4zIDQ2LjYtOS4yIDcwLjMgLjYgMTMuNSAyIDI2LjkgNC40IDQwLjIgMy40IDE4LjQgOSAzNi4zIDE2LjcgNTMuMyAxMy42IDI5LjIgMzIuMSA1MS41IDUwLjQgNjcuOSAxMi44IDExLjYgMjYuOCAyMS45IDQxLjggMzAuNiAxNy43IDEwLjQgMzYuNCAxOC45IDU1LjkgMjUuMyAxMy4zIDQuMyAyNi45IDcuNiA0MC42IDkuOCA2LjEgMSAxMi4zIDEuMyAxOC40IDEuOSAuNCAuMSAuOCAuMyAxLjIgLjZsMzIuMyAwYzIuNS0uNCA1LS45IDcuNS0xLjEgMTYuMy0xLjMgMzIuMS01LjMgNDcuNS0xMC43IDE3LjItNS45IDMzLjctMTMuOSA0OS0yMy44IDkuNy02LjQgMTkuNC0xMy4xIDI4LjctMjAuMSA1LjgtNC4zIDExLTkuNSAxNi4zLTE0LjUgNC0zLjcgNy44LTcuNiAxMS41LTExLjUgMTItMTIuNyAyMi42LTI2LjYgMzEuNC00MS42IDkuNS0xNiAxNy40LTMyLjkgMjIuMy01MC45IDIuOS0xMC40IDQuOS0yMSA3LTMxLjcgMS01LjMgMS4zLTEwLjcgMS45LTE2LjEgMC0uMyAuNC0uNiAuNi0uOWwwLTM3LjFjLS4yLS42LS40LTEuMi0uNi0xLjh6bS0xNjEuMS0xLjJzLTE2LjYtMy0yOC41LTNjLTI3LjIgMC0zMy42IDE0LjktMzMuNiAzN2wwIDkzLjctNzMuNSAwIDAtMTkwLjcgNzMuNSAwIDAgMzEuOWM4LjktMjYuOCAyNi44LTM2LjIgNjItMzYuMmwwIDY3LjN6Il19LG5JdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbGlwYXkiLGljb246WzQ0OCw1MTIsW10sImY2NDIiLCJNMzc3LjcgMzJMNzAuMyAzMkMzMS40IDMyIDAgNjMuNCAwIDEwMi4zTDAgNDA5LjdDMCA0NDguNiAzMS40IDQ4MCA3MC4zIDQ4MGwzMDcuNSAwYzM4LjUgMCA2OS44LTMxLjEgNzAuMy02OS42LTQ2LTI1LjYtMTEwLjYtNjAuMy0xNzEuNi04OC40LTMyLjEgNDQtODQuMSA4MS0xNDguNiA4MS03MC42IDAtOTMuNy00NS4zLTk3LTc2LjQtNC0zOSAxNC45LTgxLjUgOTkuNS04MS41IDM1LjQgMCA3OS40IDEwLjIgMTI3LjEgMjUgMTYuNS0zMC4xIDI2LjUtNjAuMyAyNi41LTYwLjNsLTE3OC4yIDAgMC0xNi43IDkyLjEgMCAwLTMxLjItMTA5LjQgMCAwLTE5IDEwOS40IDAgMC01MC40IDUwLjkgMCAwIDUwLjQgMTA5LjQgMCAwIDE5LTEwOS40IDAgMCAzMS4yIDg4LjggMHMtMTUuMiA0Ni42LTM4LjMgOTAuOWM0OC45IDE2LjcgMTAwIDM2IDE0OC42IDUyLjdsMC0yMzQuNGMuMi0zOC43LTMxLjItNzAuMy02OS45LTcwLjN6TTQ3LjMgMzIzYzEgMjAuMiAxMC4yIDUzLjcgNjkuOSA1My43IDUyLjEgMCA5Mi42LTM5LjcgMTE3LjktNzIuOS00NC42LTE4LjctODQuNS0zMS40LTEwOS40LTMxLjQtNjcuNCAwLTc5LjQgMzMuMS03OC40IDUwLjZ6Il19LGxJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWV4IixpY29uOls1NzYsNTEyLFtdLCJmMWYzIiwiTTAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMS4xLTYxLjcgMC0zMS45LTM1LjEtMzEuOSAzNS4xLTIwMy43IDAgMC0xNjMuOC02NS44IDAgODEuNy0xODQuNyA3OC42IDAgMjguMSA2My4yIDAtNjMuMiA5Ny4yIDAgMTYuOSA0Ny42IDE3LTQ3LjYgNzUuNSAwIDAtMi40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJ6bTQ0MC40LTIxLjdsNDIuMi00Ni4zIDQyIDQ2LjMgNTEuNCAwLTY4LTcyLjEgNjgtNzIuMS01MC42IDAtNDIgNDYuNy00MS41LTQ2LjctNTEuNCAwIDY3LjUgNzIuNS02Ny40IDcxLjYgMC0zMy4xLTgzIDAgMC0yMi4yIDgwLjkgMCAwLTMyLjMtODAuOSAwIDAtMjIuNCA4MyAwIDAtMzMuMS0xMjIgMCAwIDE0My4yIDE3MS44IDB6bTk2LjMtNzJsMzkuMyA0MS45IDAtODMuMy0zOS4zIDQxLjR6bS0zNi4zLTkybDM2LjktMTAwLjYgMCAxMDAuNiAzOC43IDAgMC0xNDMuMy02MC4yIDAtMzIuMiA4OS4zLTMxLjktODkuMy02MS4yIDAgMCAxNDMuMS02My4yLTE0My4xLTUxLjIgMC02Mi40IDE0My4zIDQzIDAgMTEuOS0yOC43IDY1LjkgMCAxMiAyOC43IDgyLjcgMCAwLTEwMC4zIDM2LjggMTAwLjMgMzQuNCAwek0yODIgMTg1LjRsMTkuNS00Ni45IDE5LjQgNDYuOS0zOC45IDB6Il19LGNJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWFsdCIsaWNvbjpbNTc2LDUxMixbXSwiZjFhOCIsIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0LjkgMjcuNy01Ljd6TTM3OS45IDQ0My45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjcgNi4xLTEyLjYgMTEuOC0yNS44IDEyLjQtMzkuOWwtMiAyLjZjLTI4LjQgNTAtMzMgNjMuMi04MS4zIDEwMC0zMS45IDI0LjQtNjkuMiA0MC4yLTEwNi42IDU0LjZsLTYuMy0uMyAwLTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zIC45IC42LS42IC4zLTEuNHpNNDk2LjMgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOSAuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXpNMzAwLjEgNDI4LjJsMCAyNy4yIDExLjgtMy40LTIuOS0yMy44LTguOSAwek0yMzEuNCAyNzcuOGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjktMTMuOCAzLjV6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3oiXX0sZEl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxldHRlcmJveGQiLGljb246WzY0MCw1MTIsW10sImU2MmQiLCJNNTIxLjMgMTI4QzU4Ni45IDEyOCA2NDAgMTgxLjEgNjQwIDI0Ni42UzU4Ni45IDM2NS4yIDUyMS4zIDM2NS4yYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwek0zMjAgMTI4YzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMGMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHptLTIwMS4zIDBjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwQzUzLjEgMzY1LjEgMCAzMTIuMSAwIDI0Ni42UzUzLjEgMTI4IDExOC43IDEyOHoiXX0sdUl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZXJhIixpY29uOls1MTIsNTEyLFtdLCJmMjZhIiwiTTMyMS45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uMy0xMzEuNS02LjEtMjM2LjEtMTE0LjYtMjM2LjEtMjQ3LjcgMC0xMzcgMTExLTI0OCAyNDgtMjQ4bC44IDBjNjMuMSAuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40ek00MjMuNyA0MzAuNGMtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6Il19LHBJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWlibyIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YSIsIk00MDcgMTc3LjZjNy42LTI0LTEzLjQtNDYuOC0zNy40LTQxLjctMjIgNC44LTI4LjgtMjguMS03LjEtMzIuOCA1MC4xLTEwLjkgOTIuMyAzNy4xIDc2LjUgODQuOC02LjggMjEuMi0zOC44IDEwLjgtMzItMTAuM3pNMjE0LjggNDQ2LjdjLTEwNi4zIDAtMjE0LjgtNTEuNC0yMTQuOC0xMzYuMyAwLTQ0LjMgMjgtOTUuNCA3Ni4zLTE0My43IDk5LjctOTkuNyAyMDMuMi0xMDAuOSAxNzMuNi01LjctNCAxMy4xIDEyLjMgNS43IDEyLjMgNiA3OS41LTMzLjYgMTQwLjUtMTYuOCAxMTQgNTEuNC0zLjcgOS40IDEuMSAxMC45IDguMyAxMy4xIDEzNS43IDQyLjMgMzQuOCAyMTUuMi0xNjkuNyAyMTUuMnpNMzU4LjUgMzAwLjRjLTUuNC01NS43LTc4LjUtOTQtMTYzLjQtODUuNy04NC44IDguNi0xNDguOCA2MC4zLTE0My40IDExNnM3OC41IDk0IDE2My40IDg1LjdjODQuOC04LjYgMTQ4LjgtNjAuMyAxNDMuNC0xMTZ6TTM0Ny45IDM1LjFjLTI1LjkgNS42LTE2LjggNDMuNyA4LjMgMzguMyA3Mi4zLTE1LjIgMTM0LjggNTIuOCAxMTEuNyAxMjQtNy40IDI0LjIgMjkuMSAzNyAzNy40IDEyIDMxLjktOTkuOC01NS4xLTE5NS45LTE1Ny40LTE3NC4zem0tNzguNSAzMTFjLTE3LjEgMzguOC02Ni44IDYwLTEwOS4xIDQ2LjMtNDAuOC0xMy4xLTU4LTUzLjQtNDAuMy04OS43IDE3LjctMzUuNCA2My4xLTU1LjQgMTAzLjQtNDUuMSA0MiAxMC44IDYzLjEgNTAuMiA0NiA4OC41em0tODYuMy0zMGMtMTIuOS01LjQtMzAgLjMtMzggMTIuOS04LjMgMTIuOS00LjMgMjggOC42IDM0IDEzLjEgNiAzMC44IC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNCAuNi0xNC4zIDUuNC0yLjkgNS4xLTEuNCAxMC42IDMuNyAxMi45IDUuMSAyIDExLjctLjMgMTQuNi01LjQgMi44LTUuMiAxLjEtMTAuOS00LTEyLjl6Il19LGhJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFkbWUiLGljb246WzU3Niw1MTIsW10sImY0ZDUiLCJNNTI4LjMgNDYuNWwtMTM5LjggMGMtNDguMSAwLTg5LjkgMzMuMy0xMDAuNCA4MC4zLTEwLjYtNDctNTIuMy04MC4zLTEwMC40LTgwLjNMNDggNDYuNUMyMS41IDQ2LjUgMCA2OCAwIDk0LjVMMCAzNDAuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGw4OS43IDBjMTAyLjIgMCAxMzIuNyAyNC40IDE0Ny4zIDc1IC43IDIuOCA1LjIgMi44IDYgMCAxNC43LTUwLjYgNDUuMi03NSAxNDcuMy03NWw4OS43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNDUuN2MwLTI2LjQtMjEuMy00Ny45LTQ3LjctNDguMXpNMjQyIDMxMS45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHpNNTAxLjMgMzExLjhjMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOC0uMSAweiJdfSxmSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29sYW5nIixpY29uOls2NDAsNTEyLFtdLCJlNDBmIiwiTTQwMC4xIDE5NC44Yy0xMC45IDIuOC0xOS45IDQuMy0yOS4xIDcuNi03LjMgMS45LTE0LjcgMy45LTIzLjIgNi4xbC0uNiAuMWMtNC4yIDEuMi00LjYgMS4zLTguNS0zLjItNC43LTUuMy04LjEtOC43LTE0LjYtMTEuOS0xOS43LTkuNi0zOC43LTYuOC01Ni40IDQuNy0yMS4yIDEzLjctMzIuMSAzNC0zMS44IDU5LjIgLjMgMjUgMTcuNCA0NS41IDQxLjIgNDguOSAyMiAyLjggMzkuOC00LjYgNTMuOC0yMC41IDIuMS0yLjYgNC01LjMgNi4xLTguMyAuOC0xIDEuNS0yLjEgMi4zLTMuM2wtNjAuMSAwYy02LjUgMC04LjEtNC01LjktOS4zIDQtOS43IDExLjUtMjUuOSAxNS45LTM0IC45LTEuOCAzLjEtNS44IDYuOS01LjhsMTAxLjEgMGM0LjUtMTMuNCAxMS44LTI2LjkgMjEuNi0zOS43IDIyLjctMjkuOSA0OS4zLTQ1LjUgODcuMi01MiAzMS44LTUuNiA2MS43LTIuNSA4OC45IDE1LjkgMjQuNiAxNi44IDM5LjggMzkuNiA0My45IDY5LjUgNS4zIDQyLjEtNi45IDc2LjMtMzYuNyAxMDUuNi0xOS43IDIwLjktNDQuOSAzNC03My45IDM5LjktNS42IDEtMTEuMSAxLjUtMTYuNSAyLTIuOSAuMi01LjcgLjUtOC41IC44LTI4LjMtLjYtNTQuMi04LjctNzYtMjcuNC0xNS4zLTEzLjMtMjUuOS0yOS42LTMxLjEtNDguNS0zLjcgNy4zLTggMTQuNC0xNCAyMS4xLTIxLjYgMjkuNi01MC45IDQ4LTg3LjkgNTIuOS0zMC42IDQuMS01OC45LTEuOC04My45LTIwLjUtMjMtMTcuNS0zNi4xLTQwLjUtMzkuNS02OS4yLTQuMS0zNCA1LjktNjUuNCAyNi40LTkxLjMgMjIuMi0yOSA1MS41LTQ3LjQgODcuMy01My45IDI5LjMtNi4yIDU3LjMtMS45IDgyLjYgMTUuMyAxNi41IDEwLjkgMjguMyAyNS44IDM2LjEgNDMuOSAxLjkgMi44IC42IDQuNC0zLjEgNS4zek00OC4zIDIwMC40Yy0xLjMgMC0xLjYtLjYtLjktMS42bDYuNi04LjRjLjYtLjkgMi4yLTEuNSAzLjQtMS41bDExMS4zIDBjMS4yIDAgMS41IC45IC45IDEuOGwtNS4zIDguMWMtLjYgMS0yLjIgMS45LTMuMSAxLjlsLTExMi44LS4zek0xLjIgMjI5LjFjLTEuMiAwLTEuNi0uNy0uOS0xLjZsNi41LTguNGMuNi0uOSAyLjItMS42IDMuNC0xLjZsMTQyLjEgMGMxLjIgMCAxLjggMSAxLjUgMS45bC0yLjUgNy41Yy0uMyAxLjItMS41IDEuOS0yLjggMS45TDEuMiAyMjkuMXptNzQuNSAyNi44Yy0uNiAuOS0uMyAxLjggLjkgMS44bDY4IC4zYy45IDAgMi4yLS45IDIuMi0yLjFsLjYtNy41YzAtMS4zLS42LTIuMi0xLjktMi4ybC02Mi4zIDBjLTEuMiAwLTIuNSAuOS0zLjEgMS45bC00LjQgNy44em01MDEuNS0xOGMtLjItMi42LS4zLTQuOC0uNy03LTUuNi0zMC44LTM0LTQ4LjMtNjMuNi00MS40LTI5IDYuNS00Ny43IDI0LjktNTQuNSA1NC4yLTUuNiAyNC4zIDYuMiA0OC45IDI4LjYgNTguOSAxNy4yIDcuNSAzNC4zIDYuNiA1MC44LTEuOSAyNC42LTEzLjYgMzgtMzIuNyAzOS42LTU5LjUtLjEtMS4yLS4xLTIuMy0uMi0zLjN6Il19LG1JdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1leGNoYW5nZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4ZCIsIk0xOC4xIDMzMi4zbDQxMi43IDAgMCAyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4bC0xOSAwLTg2LjggODkuNyAwLTg5LjctMTc2LjMgMGMtMzYgMC02NS4zLTMwLjMtNjUuMy02OGwwLTIyem0wLTIzLjZsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXptMC0xMDkuNGw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1ek0zNjUuNCAwTDgzLjQgMGMtMzYgMC02NS4zIDMwLjMtNjUuMyA2Ny43bDAgMjIuMyA0MTIuNyAwIDAtMjIuM0M0MzAuNyAzMC4zIDQwMS40IDAgMzY1LjQgMHoiXX0sZ0l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1bHAiLGljb246WzI1Niw1MTIsW10sImYzYWUiLCJNMjEwIDM5MS4xbC0xNC4xIDI0LjYtNC42IDgwLjJjMCA4LjktMjguMyAxNi4xLTYzLjEgMTYuMXMtNjMuMS03LjItNjMuMS0xNi4xbC01LjgtNzkuNC0xNC45LTI1LjRjNDEuMiAxNy4zIDEyNiAxNi43IDE2NS42IDB6TTE0IDEzNy44TDI3LjYgMjYzLjNjNS45LTIwIDIwLjgtNDcgNDAtNTUuMiA2LjMtMi43IDEyLjctMi43IDE4LjcgLjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zIC4yLTMuMiA2LjMtMjIuMiA3LjMtMjUuMi0yIDIuMi00LjEgNC40LTYuNCA2LjYtNS40IDUuMS0xNC4xIDExLjgtMjEuNSAxMS44LTMuNCAwLTUuNi0uOS03LjctMi40bDcuNiA3OS42YzIgNSAzOS4yIDE3LjEgODguMiAxNy4xIDQ5LjEgMCA4Ni4zLTEyLjIgODguMi0xNy4xbDEwLjktOTQuNmMtNS43IDUuMi0xMi4zIDExLjYtMTkuNiAxNC44LTUuNCAyLjMtMTcuNCAzLjgtMTcuNC01LjcgMC01LjIgOS4xLTE0LjggMTQuNC0yMS41IDEuNC0xLjcgNC43LTUuOSA0LjctOC4xIDAtMi45LTYtMi4yLTExLjcgMi41LTMuMiAyLjctNi4yIDYuMy04LjcgOS43LTQuMyA2LTYuNiAxMS4yLTguNSAxNS41LTYuMiAxNC4yLTQuMSA4LjYtOS4xIDIyLTUgMTMuMy00LjIgMTEuOC01LjIgMTQtLjkgMS45LTIuMiAzLjUtNCA0LjUtMS45IDEtNC41IC45LTYuMS0uMy0uOS0uNi0xLjMtMS45LTEuMy0zLjcgMC0uOSAuMS0xLjggLjMtMi43IDEuNS02LjEgNy44LTE4LjEgMTUtMzQuMyAxLjYtMy43IDEtMi42IC44LTIuMy02LjIgNi0xMC45IDguOS0xNC40IDEwLjUtNS44IDIuNi0xMyAyLjYtMTQuNS00LjEtLjEtLjQtLjEtLjgtLjItMS4yLTExLjggOS4yLTI0LjMgMTEuNy0yMC04LjEtNC42IDguMi0xMi42IDE0LjktMjIuNCAxNC45LTQuMSAwLTcuMS0xLjQtOC42LTUuMS0yLjMtNS41IDEuMy0xNC45IDQuNi0yMy44IDEuNy00LjUgNC05LjkgNy4xLTE2LjIgMS42LTMuNCA0LjItNS40IDcuNi00LjUgLjYgLjIgMS4xIC40IDEuNiAuNyAyLjYgMS44IDEuNiA0LjUgLjMgNy4yLTMuOCA3LjUtNy4xIDEzLTkuMyAyMC44LS45IDMuMy0yIDkgMS41IDkgMi40IDAgNC43LS44IDYuOS0yLjQgNC42LTMuNCA4LjMtOC41IDExLjEtMTMuNSAyLTMuNiA0LjQtOC4zIDUuNi0xMi4zIC41LTEuNyAxLjEtMy4zIDEuOC00LjggMS4xLTIuNSAyLjYtNS4xIDUuMi01LjEgMS4zIDAgMi40IC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41IC40IDYuOS0yIDUuNi00LjcgMTAuNi02LjkgMTYuNy0xLjMgMy41LTIuNyA4LTIuNyAxMS43IDAgMy40IDMuNyAyLjYgNi44IDEuMiAyLjQtMS4xIDQuOC0yLjggNi44LTQuNSAxLjItNC45IC45LTMuOCAyNi40LTY4LjIgMS4zLTMuMyAzLjctNC43IDYuMS00LjcgMS4yIDAgMi4yIC40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMgLjUtLjQgLjktLjYgLjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMgLjgtMSAxLjctMS42IDIuNy0xLjYgMi44IDAgNC4yIDEuMiA0LjIgNCAwIDEuMS0uNyA1LjEtMS4xIDYuMiAxLjQtMS41IDIuOS0zIDQuNS00LjUgMTUtMTMuOSAyNS43LTYuOCAyNS43IC4yIDAgNy40LTguOSAxNy43LTEzLjggMjMuNC0xLjYgMS45LTQuOSA1LjQtNSA2LjQgMCAxLjMgLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zIC4yem0yMjkuNy04LjVjMCAyMS0yMzEuMiAyMS0yMzEuMiAwIDAtOC44IDUxLjgtMTUuOSAxMTUuNi0xNS45IDkgMCAxNy44IC4xIDI2LjMgLjRMMTY3IDY1LjEgMjI4LjMgLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xIC4xLTU3LjMgNjAuNS0xMCA0MC43YzM5LjkgMi42IDY3LjYgOC4xIDY3LjYgMTQuNnptLTY5LjQgNC42YzAtLjgtLjktMS41LTIuNS0yLjFsLS4yIC44YzAgMS4zLTUgMi40LTExLjEgMi40cy0xMS4xLTEuMS0xMS4xLTIuNGMwLS4xIDAtLjIgLjEtLjNsLjItLjdjLTEuOCAuNi0zIDEuNC0zIDIuMyAwIDIuMSA2LjIgMy43IDEzLjcgMy43IDcuNyAuMSAxMy45LTEuNiAxMy45LTMuN3oiXX0sYkl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InllbHAiLGljb246WzM4NCw1MTIsW10sImYxZTkiLCJNNDIuOSAyNDAuM2w5OS42IDQ4LjZjMTkuMiA5LjQgMTYuMiAzNy41LTQuNSA0Mi43TDMwLjUgMzU4LjVjLTMuMiAuOC02LjQgLjktOS42IC4zcy02LjItMS44LTguOS0zLjctNC45LTQuMy02LjYtNy4xLTIuNy01LjktMy4xLTkuMmMtMy4zLTI4LjgtLjItNTcuOSA5LTg1LjMgMS0zLjEgMi43LTUuOSA0LjktOC4zczQuOS00LjIgNy45LTUuNSA2LjItMS44IDkuNS0xLjggNi40IC45IDkuMyAyLjN6bTQ0IDIzOS4zYzIzLjggMTYuMyA1MC45IDI3LjMgNzkuNCAzMi4xIDMuMiAuNiA2LjUgLjQgOS42LS40czYuMS0yLjMgOC42LTQuNCA0LjYtNC42IDYtNy41IDIuMy02LjEgMi40LTkuNGwzLjktMTEwLjhjLjctMjEuMy0yNS41LTMxLjktMzkuOC0xNi4xTDgyLjggNDQ1LjVjLTIuMiAyLjQtMy44IDUuMy00LjggOC40cy0xLjMgNi40LS45IDkuNiAxLjUgNi4zIDMuMSA5LjEgMy45IDUuMiA2LjYgN2wwIDB6TTIzMi4yIDM2OS43bDU4LjggOTRjMS43IDIuOCA0IDUuMSA2LjggNi45czUuOCAzIDkgMy41IDYuNSAuMyA5LjctLjUgNi4xLTIuNCA4LjYtNC40YzIyLjMtMTguNCA0MC4zLTQxLjUgNTIuNy02Ny42IDEuNC0yLjkgMi4xLTYuMSAyLjItOS40cy0uNi02LjUtMS45LTkuNC0zLjItNS43LTUuNi03LjgtNS4yLTMuOS04LjMtNC45TDI1OC43IDMzNS43Yy0yMC4zLTYuNS0zNy44IDE1LjgtMjYuNSAzMy45ek0zODAuNiAyMzcuNGMtMTEuNS0yNi41LTI4LjctNTAuMi01MC40LTY5LjMtMi40LTIuMS01LjMtMy43LTguNC00LjdzLTYuNC0xLjItOS42LS44LTYuMyAxLjUtOS4xIDMuMi01LjEgNC02LjkgNi43bC02MiA5MS45Yy0xMS45IDE3LjcgNC43IDQwLjYgMjUuMiAzNC43TDM2NiAyNjguNmMzLjEtLjkgNi0yLjUgOC41LTQuNnM0LjUtNC43IDUuOC03LjcgMi4xLTYuMiAyLjItOS40LS42LTYuNS0xLjktOS41bDAgMHpNNjIuMSAzMC4yYy0yLjggMS40LTUuNCAzLjMtNy40IDUuN3MtMy42IDUuMi00LjUgOC4yLTEuMiA2LjItLjkgOS4zIDEuMyA2LjEgMi45IDguOUwxNTYuMyAyNDIuNmMxMS43IDIwLjIgNDIuNiAxMS45IDQyLjYtMTEuNGwwLTIwOC4zYzAtMy4xLS42LTYuMy0xLjgtOS4ycy0zLjEtNS41LTUuNC03LjYtNS0zLjgtOC00LjgtNi4xLTEuNC05LjMtMS4yYy0zOSAzLjEtNzcgMTMuMy0xMTIuMyAzMC4xeiJdfSx2SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29mb3JlIixpY29uOls0NDgsNTEyLFtdLCJmM2E3IiwiTTM0OCAzMTkuOGwtMTMuMiAwIDAgMzQuN2MtMjQuNSAyMy4xLTU2LjMgMzUuOC04OS45IDM1LjgtNzMuMiAwLTEzMi40LTYwLjItMTMyLjQtMTM0LjQgMC03NC4xIDU5LjItMTM0LjQgMTMyLjQtMTM0LjQgMzUuMyAwIDY4LjYgMTQgOTMuNiAzOS40bDYyLjMtNjMuM2MtNDEuOC00Mi4zLTk3LjEtNjUuNi0xNTYuMS02NS42LTEyMi43IDAtMjIwLjcgMTAwLjYtMjIwLjcgMjI0IDAgMTIyLjUgOTcgMjI0IDIyMC43IDIyNCA2My4yIDAgMTI0LjUtMjYuMiAxNzEtODIuNS0yLTI3LjYtMTMuNC03Ny43LTY3LjctNzcuN3pNMzM1LjkgMjA3LjNsLTEwNi4zIDAgMCA4OSAxMTguNCAwYzMzLjUgMCA2MC41IDE1LjEgNzYgNDEuOGwwLTMwLjZjMC02NS4yLTQwLjQtMTAwLjItODguMS0xMDAuMnoiXX0seEl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF2aWF0byIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMSIsIk0xMDcuMiAyODMuNWwtMTktNDEuOC01Mi4xIDAtMTkgNDEuOC0xNy4xIDAgNjIuMi0xMzEuNCA2Mi4yIDEzMS40LTE3LjIgMHptLTQ1LTk4LjFsLTE5LjYgNDIuNSAzOS4yIDAtMTkuNi00Mi41ek0xNzQuOSAyODcuOGwtNjIuMi0xMzEuNCAxNy4xIDAgNDUuMSA5NiA0NS4xLTk2IDE3IDAtNjIuMSAxMzEuNHptODAuNi00LjNsMC0xMjcuMSAxNS41IDAgMCAxMjcuMS0xNS41IDB6TTQ2NC42IDE2Ny45bDAgMTE1LjYtMTcuMyAwIDAtMTE1LjYtNDEuMiAwIDAtMTEuNSA5OS42IDAgMCAxMS41LTQxLjEgMHpNNjQwIDIxOC44YzAgOS4yLTEuNyAxNy44LTUuMSAyNS44cy04LjIgMTUuMS0xNC4yIDIxLjEtMTMuMSAxMC44LTIxLjEgMTQuMi0xNi42IDUuMS0yNS44IDUuMS0xNy44LTEuNy0yNS44LTUuMS0xNS4xLTguMi0yMS4xLTE0LjItMTAuOC0xMy0xNC4yLTIxLjFjLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44IDguMi0xNS4xIDE0LjItMjEuMSAxMy04LjQgMjEuMS0xMS45YzgtMy40IDE2LjYtNS4xIDI1LjgtNS4xczE3LjggMS43IDI1LjggNS4xIDE1LjEgNS44IDIxLjEgMTEuOWM2IDYgMTAuNyAxMy4xIDE0LjIgMjEuMSAzLjQgOCA1LjEgMTYuNiA1LjEgMjUuOHptLTE1LjUgMGMwLTcuMy0xLjMtMTQtMy45LTIwLjNzLTYuMi0xMS43LTEwLjgtMTYuMy0xMC04LjItMTYuMi0xMC45LTEyLjgtNC0xOS44LTQtMTMuNiAxLjMtMTkuOCA0LTExLjYgNi4zLTE2LjIgMTAuOS04LjIgMTAtMTAuOCAxNi4zLTMuOSAxMy4xLTMuOSAyMC4zYzAgNy4zIDEuMyAxNCAzLjkgMjAuM3M2LjIgMTEuNyAxMC44IDE2LjMgMTAgOC4yIDE2LjIgMTAuOSAxMi44IDQgMTkuOCA0IDEzLjYtMS4zIDE5LjgtNCAxMS42LTYuMyAxNi4yLTEwLjkgOC4yLTEwIDEwLjgtMTYuMyAzLjktMTMuMSAzLjktMjAuM3ptLTk0LjggOTYuN2wwLTYuMyA4OC45LTEwLTI0Mi45IDEzLjRjLjYtMi4yIDEuMS00LjYgMS40LTcuMiAuMy0yIC41LTQuMiAuNi02LjVsNjQuOC04LjEtNjQuOSAxLjljMC0uNC0uMS0uNy0uMS0xLjEtMi44LTE3LjItMjUuNS0yMy43LTI1LjUtMjMuN2wtMS4xLTI2LjMgMjMuOCAwIDE5IDQxLjggMTcuMSAwLTYyLjItMTMxLjQtNjIuMiAxMzEuNCAxNy4xIDAgMTktNDEuOCAyMy42IDAtMS4xIDI2LjRzLTIyLjcgNi41LTI1LjUgMjMuN2MtLjEgLjMtLjEgLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMgLjMgNC40IC42IDYuNSAuMyAyLjYgLjggNSAxLjQgNy4ybC0yNDIuOS0xMy41IDg4LjkgMTAgMCA2LjNjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjMC02LjItNC42LTExLjMtMTAuNS0xMi4ybDAtNS44IDgwLjMgOSAwIDUuNGMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTQuOSAyOC40IDMuMiAwIDIzLjctNS45IDAgMCAxMy45IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy4yIDM4LjMgNC4zYzguMSAxMS40IDE5IDEzLjYgMTkgMTMuNmwtLjEgNi43LTUuMSAuMi0uMSAxMi4xIDQuMSAwIC4xLTUgNS4yIDAgLjEgNSA0LjEgMC0uMS0xMi4xLTUuMS0uMi0uMS02LjdzMTAuOS0yLjEgMTktMTMuNmwzOC4zLTQuMyAwIDIzLjItNS45IDAgMCAxMy44IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy43IDI4LjQtMy4yIDAgNC45Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yczEyLjQtMy40IDEyLjQtMTAuMmMwLTYtNC4zLTExLTkuOS0xMi4xbDAtNS40IDgwLjMtOSAwIDUuOGMtNS45IC45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40czEyLjQtNS42IDEyLjQtMTIuNGMtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3pNMzI4LjkgMjI3LjlsMTkuNi00Mi41IDE5LjYgNDIuNS0xNy45IDAtMS43LTQwLjMtMS43IDQwLjMtMTcuOSAweiJdfSx5SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFkbGV0IixpY29uOls2NDAsNTEyLFtdLCJlNGEwIiwiTTI5Ny45IDBsLjEgMGM3LjYgLjEgMTQuNCA0LjcgMTcuNSAxMS44bDEzMiAzMDguNSAuMy0uMSAuMiAuNC0yLjggMTAtNDIuOSAxNThjLTMuNyAxNi4yLTE5LjcgMjYuMy0zNS44IDIyLjZsLTY4LjQtMTUuNi02OC41IDE1LjZjLTE2LjEgMy43LTMyLjEtNi40LTM1LjgtMjIuNmwtNDIuOS0xNTgtMi43LTEwIC4xLS40IDEzMi4xLTMwOC40YzMtNyA5LjktMTEuNiAxNy41LTExLjh6TTE2MC4xIDMyMi4xbDEzMSAzOS4xIDYuOSAxMjIuNSA3LjktMTIxLjUgMTMwLjYtMzkuMyAuMi0uMS0xMzEgMjUuMS04LjYtMzIwLjItNS4yIDMyMC4yLTEzMS44LTI1Ljh6TTQyNiAyMjIuNmw5NC40LTQxIDczLjggMC0xNTcgMjQ3LjYgMzEuNi0xMDktNDIuOC05Ny42em0xNzEuNS00MS4ybDQxLjQgNzYuMmM0IDcuNS0zLjkgMTUuOS0xMS42IDEyLjJsLTQ3LjYtMjIuNyAxNy44LTY1Ljd6TTEyNy4zIDMxOC41TDE1OC43IDQzMCAxLjYgMTU0LjVjLTUuOS0xMC40IDUuNS0yMiAxNS45LTE2LjJsMTUxLjggODQuMi00Mi4xIDk2eiJdfSx3SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZS1sZWdhY3kiLGljb246WzQ0OCw1MTIsW10sImUwNzgiLCJNLTYgMjI4LjJsLjQtLjVjMCAuMiAwIC4zLS4xIC41bC0uMyAwem00NjAuNiAxNS41YzAtNDQtNy44LTg0LjUtMjguOC0xMjIuNC00MS03My40LTExMy42LTExMy4zLTE5OC42LTExMy4zLTEzOS45LS4zLTIxOC4zIDEwNS4yLTIzMi44IDIxOS43IDQyLjQtNjEuMyAxMTcuMS0xMjEuNCAyMjAuNC0xMjUgMCAwIDEwOS43IDAgOTkuNCAxMDVsLTE3NS44IDBjNi40LTM3LjQgMTguNS01OSAzNC4zLTc4LjktNzUgMzQuOS0xMjEuOCA5Ni4xLTEyMC44IDE4OC4zIC44IDcxLjUgNTAuMSAxNDQuOCAxMjAuOCAxNzIgODMuNCAzMS44IDE5Mi44IDcuMiAyNDAuMS0yMS4zbDAtMTA0LjRjLTgwLjkgNTYuNS0yNzAuOSA2MC45LTI3Mi4zLTY3LjZsMzE0LjEgMCAwLTUyLjF6Il19LHRnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGFzdGZtIixpY29uOls0NDgsNTEyLFsibGFzdGZtLXNxdWFyZSJdLCJmMjAzIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yMTAuNyAyODAuOGMtMS44LTUuNS0zLjQtMTAuOC01LTE1LjktMTIuOS00MS45LTIxLTY4LjQtNTgtNjguNC0yMi40IDAtNDUuMSAxNi4xLTQ1LjEgNjEuMiAwIDM1LjIgMTggNTcuMiA0My4zIDU3LjIgMjguNiAwIDQ3LjYtMjEuMyA0Ny42LTIxLjNsMTEuNyAzMS45cy0xOS44IDE5LjQtNjEuMiAxOS40Yy01MS4zIDAtNzkuOS0zMC4xLTc5LjktODUuOCAwLTU3LjkgMjguNi05MiA4Mi41LTkyIDY3LjkgMCA3OS4zIDM1LjMgOTYuNCA4OC40IDEuNCA0LjQgMi45IDguOSA0LjQgMTMuNSA4LjggMjYuOCAyNC4yIDQ2LjIgNjEuMiA0Ni4yIDI0LjkgMCAzOC4xLTUuNSAzOC4xLTE5LjEgMC0xNy41LTE2LjktMjEuMi00MC0yNi40LTMuMi0uNy02LjUtMS40LTkuOS0yLjItMzAuNC03LjMtNDIuNS0yMy4xLTQyLjUtNDggMC00MCAzMi4zLTUyLjQgNjUuMi01Mi40IDM3LjQgMCA2MC4xIDEzLjYgNjMgNDYuNmwtMzYuNyA0LjRjLTEuNS0xNS44LTExLTIyLjQtMjguNi0yMi40LTE2LjEgMC0yNiA3LjMtMjYgMTkuOCAwIDExIDQuOCAxNy42IDIwLjkgMjEuMyAyLjIgLjUgNC41IDEgNi43IDEuNCAzMS4xIDYuNSA2NS4xIDEzLjcgNjUuMSA1Ni4xIC4xIDM2LjctMzAuNyA1MC42LTc2LjEgNTAuNi02My40IDAtODUuNC0yOC42LTk3LjEtNjQuMXoiXX0sa0l0PXRnZSxTSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzLWciLGljb246WzMyMCw1MTIsW10sImYzYTkiLCJNMTAuOCA0MDMuM2wyLjggMGMxMi43IDAgMjUuNSAwIDM4LjIgLjEgMS42IDAgMy4xLS40IDMuNiAyLjEgNy4xIDM0LjkgMzAgNTQuNiA2Mi45IDYzLjkgMjYuOSA3LjYgNTQuMSA3LjggODEuMyAxLjggMzMuOC03LjQgNTYtMjguMyA2OC02MC40IDgtMjEuNSAxMC43LTQzLjggMTEtNjYuNSAuMS01LjggLjMtNDctLjItNTIuOGwtLjktLjNjLS44IDEuNS0xLjcgMi45LTIuNSA0LjQtMjIuMSA0My4xLTYxLjMgNjcuNC0xMDUuNCA2OS4xLTEwMyA0LTE2OS40LTU3LTE3Mi0xNzYuMi0uNS0yMy43IDEuOC00Ni45IDguMy02OS43IDIwLjYtNzEuMSA3NC42LTExOC4yIDE1My45LTExOC44IDYxLjMtLjQgMTAxLjUgMzguNyAxMTYuMiA3MC4zIC41IDEuMSAxLjMgMi4zIDIuNCAxLjlsMC02MS42IDQ0LjMgMGMwIDI4MC4zIC4xIDMzMi4yIC4xIDMzMi4yLS4xIDc4LjUtMjYuNyAxNDMuNy0xMDMgMTYyLjItNjkuNSAxNi45LTE1OSA0LjgtMTk2LTU3LjItOC0xMy41LTExLjgtMjguMy0xMy00NC41ek0xNTcuMSAzNi41Yy01Mi41LS41LTEwOC41IDQwLjctMTE1IDEzMy44LTQuMSA1OSAxNC44IDEyMi4yIDcxLjUgMTQ4LjYgMjcuNiAxMi45IDc0LjMgMTUgMTA4LjMtOC43IDQ3LjYtMzMuMiA2Mi43LTk3IDU0LjgtMTU0LTkuNy03MS4xLTQ3LjgtMTIwLTExOS42LTExOS43eiJdfSxfSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtbWFzdGVyY2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMSIsIk00ODIuOSA0MTAuM2MwIDYuOC00LjYgMTEuNy0xMS4yIDExLjctNi44IDAtMTEuMi01LjItMTEuMi0xMS43czQuNC0xMS43IDExLjItMTEuN2M2LjYgMCAxMS4yIDUuMiAxMS4yIDExLjd6TTE3Mi4xIDM5OC42Yy03LjEgMC0xMS4yIDUuMi0xMS4yIDExLjdTMTY1IDQyMiAxNzIuMSA0MjJjNi41IDAgMTAuOS00LjkgMTAuOS0xMS43LS4xLTYuNS00LjQtMTEuNy0xMC45LTExLjd6bTExNy41LS4zYy01LjQgMC04LjcgMy41LTkuNSA4LjdsMTkuMSAwYy0uOS01LjctNC40LTguNy05LjYtOC43em0xMDcuOCAuM2MtNi44IDAtMTAuOSA1LjItMTAuOSAxMS43czQuMSAxMS43IDEwLjkgMTEuNyAxMS4yLTQuOSAxMS4yLTExLjdjMC02LjUtNC40LTExLjctMTEuMi0xMS43em0xMDUuOSAyNi4xYzAgLjMgLjMgLjUgLjMgMS4xIDAgLjMtLjMgLjUtLjMgMS4xLS4zIC4zLS4zIC41LS41IC44LS4zIC4zLS41IC41LTEuMSAuNS0uMyAuMy0uNSAuMy0xLjEgLjMtLjMgMC0uNSAwLTEuMS0uMy0uMyAwLS41LS4zLS44LS41LS4zLS4zLS41LS41LS41LS44LS4zLS41LS4zLS44LS4zLTEuMSAwLS41IDAtLjggLjMtMS4xIDAtLjUgLjMtLjggLjUtMS4xIC4zLS4zIC41LS4zIC44LS41IC41LS4zIC44LS4zIDEuMS0uMyAuNSAwIC44IDAgMS4xIC4zIC41IC4zIC44IC4zIDEuMSAuNXMuMiAuNiAuNSAxLjF6bS0yLjIgMS40Yy41IDAgLjUtLjMgLjgtLjMgLjMtLjMgLjMtLjUgLjMtLjhzMC0uNS0uMy0uOGMtLjMgMC0uNS0uMy0xLjEtLjNsLTEuNiAwIDAgMy41IC44IDAgMC0xLjQgLjMgMCAxLjEgMS40IC44IDAtMS4xLTEuM3pNNTc2IDgxbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MUMwIDU0LjUgMjEuNSAzMyA0OCAzM2w0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNjQgMjIwLjZjMCA3Ni41IDYyLjEgMTM4LjUgMTM4LjUgMTM4LjUgMjcuMiAwIDUzLjktOC4yIDc2LjUtMjMuMS03Mi45LTU5LjMtNzIuNC0xNzEuMiAwLTIzMC41LTIyLjYtMTUtNDkuMy0yMy4xLTc2LjUtMjMuMS03Ni40LS4xLTEzOC41IDYyLTEzOC41IDEzOC4yek0yODggMzI5LjRjNzAuNS01NSA3MC4yLTE2Mi4yIDAtMjE3LjUtNzAuMiA1NS4zLTcwLjUgMTYyLjYgMCAyMTcuNXpNMTQ1LjcgNDA1LjdjMC04LjctNS43LTE0LjQtMTQuNy0xNC43LTQuNiAwLTkuNSAxLjQtMTIuOCA2LjUtMi40LTQuMS02LjUtNi41LTEyLjItNi41LTMuOCAwLTcuNiAxLjQtMTAuNiA1LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwYzAtMTguOS0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMC4yIDguMiAzMC4ybDcuOSAwYzAtMTguMy0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMCA4LjIgMzAuMmw4LjIgMCAwLTIzLS4yIDB6TTE5MC42IDM5MmwtNy45IDAgMCA0LjRjLTIuNy0zLjMtNi41LTUuNC0xMS43LTUuNC0xMC4zIDAtMTguMiA4LjItMTguMiAxOS4zIDAgMTEuMiA3LjkgMTkuMyAxOC4yIDE5LjMgNS4yIDAgOS0xLjkgMTEuNy01LjRsMCA0LjYgNy45IDAgMC0zNi44em00MC41IDI1LjZjMC0xNS0yMi45LTguMi0yMi45LTE1LjIgMC01LjcgMTEuOS00LjggMTguNS0xLjFsMy4zLTYuNWMtOS40LTYuMS0zMC4yLTYtMzAuMiA4LjIgMCAxNC4zIDIyLjkgOC4zIDIyLjkgMTUgMCA2LjMtMTMuNSA1LjgtMjAuNyAuOGwtMy41IDYuM2MxMS4yIDcuNiAzMi42IDYgMzIuNi03LjV6bTM1LjQgOS4zbC0yLjItNi44Yy0zLjggMi4xLTEyLjIgNC40LTEyLjItNC4xbDAtMTYuNiAxMy4xIDAgMC03LjQtMTMuMSAwIDAtMTEuMi04LjIgMCAwIDExLjItNy42IDAgMCA3LjMgNy42IDAgMCAxNi43YzAgMTcuNiAxNy4zIDE0LjQgMjIuNiAxMC45em0xMy4zLTEzLjRsMjcuNSAwYzAtMTYuMi03LjQtMjIuNi0xNy40LTIyLjYtMTAuNiAwLTE4LjIgNy45LTE4LjIgMTkuMyAwIDIwLjUgMjIuNiAyMy45IDMzLjggMTQuMmwtMy44LTZjLTcuOCA2LjQtMTkuNiA1LjgtMjEuOS00Ljl6TTMzOC45IDM5MmMtNC42LTItMTEuNi0xLjgtMTUuMiA0LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwIDAtMjAuN2MwLTExLjYgOS41LTEwLjEgMTIuOC04LjRsMi40LTcuNnptMTAuNiAxOC4zYzAtMTEuNCAxMS42LTE1LjEgMjAuNy04LjRsMy44LTYuNWMtMTEuNi05LjEtMzIuNy00LjEtMzIuNyAxNSAwIDE5LjggMjIuNCAyMy44IDMyLjcgMTVsLTMuOC02LjVjLTkuMiA2LjUtMjAuNyAyLjYtMjAuNy04LjZ6TTQxNi4yIDM5MmwtOC4yIDAgMCA0LjRjLTguMy0xMS0yOS45LTQuOC0yOS45IDEzLjkgMCAxOS4yIDIyLjQgMjQuNyAyOS45IDEzLjlsMCA0LjYgOC4yIDAgMC0zNi44em0zMy43IDBjLTIuNC0xLjItMTEtMi45LTE1LjIgNC40bDAtNC40LTcuOSAwIDAgMzYuNyA3LjkgMCAwLTIwLjdjMC0xMSA5LTEwLjMgMTIuOC04LjRsMi40LTcuNnptNDAuMy0xNC45bC03LjkgMCAwIDE5LjNjLTguMi0xMC45LTI5LjktNS4xLTI5LjkgMTMuOSAwIDE5LjQgMjIuNSAyNC42IDI5LjkgMTMuOWwwIDQuNiA3LjkgMCAwLTUxLjd6bTcuNi03NS4xbDAgNC42IC44IDAgMC00LjYgMS45IDAgMC0uOC00LjYgMCAwIC44IDEuOSAwem02LjYgMTIzLjhjMC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMtLjUtLjgtLjgtMS4xcy0uOC0uNS0xLjEtLjhjLS41IDAtMS4xLS4zLTEuNi0uMy0uMyAwLS44IC4zLTEuNCAuMy0uNSAuMy0uOCAuNS0xLjEgLjgtLjUgLjMtLjggLjgtLjggMS4xLS4zIC41LS4zIDEuMS0uMyAxLjYgMCAuMyAwIC44IC4zIDEuNCAwIC4zIC4zIC44IC44IDEuMSAuMyAuMyAuNSAuNSAxLjEgLjggLjUgLjMgMS4xIC4zIDEuNCAuMyAuNSAwIDEuMSAwIDEuNi0uMyAuMy0uMyAuOC0uNSAxLjEtLjhzLjUtLjggLjgtMS4xYy4zLS42IC4zLTEuMSAuMy0xLjR6bTMuMi0xMjQuN2wtMS40IDAtMS42IDMuNS0xLjYtMy41LTEuNCAwIDAgNS40IC44IDAgMC00LjEgMS42IDMuNSAxLjEgMCAxLjQtMy41IDAgNC4xIDEuMSAwIDAtNS40em00LjQtODAuNWMwLTc2LjItNjIuMS0xMzguMy0xMzguNS0xMzguMy0yNy4yIDAtNTMuOSA4LjItNzYuNSAyMy4xIDcyLjEgNTkuMyA3My4yIDE3MS41IDAgMjMwLjUgMjIuNiAxNSA0OS41IDIzLjEgNzYuNSAyMy4xIDc2LjQgLjEgMTM4LjUtNjEuOSAxMzguNS0xMzguNHoiXX0sTUl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvdXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5MyIsIk0yMjUuOSAzMkMxMDMuMyAzMiAwIDEzMC41IDAgMjUyLjEgMCAyNTYgLjEgNDgwIC4xIDQ4MGwyMjUuOC0uMkMzNDguNiA0NzkuOCA0NDggMzc3LjUgNDQ4IDI1NS45UzM0OC42IDMyIDIyNS45IDMyek0yMjQgMzg0Yy0xOS40IDAtMzcuOS00LjMtNTQuNC0xMi4xTDg4LjUgMzkyIDExMS40IDMxN2MtOS44LTE4LjEtMTUuNC0zOC45LTE1LjQtNjEgMC03MC43IDU3LjMtMTI4IDEyOC0xMjhzMTI4IDU3LjMgMTI4IDEyOC01Ny4zIDEyOC0xMjggMTI4eiJdfSx6SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2stdGllIixpY29uOls0NDgsNTEyLFtdLCJmMjdlIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTMxNi41IDM1Ny4ybC05Mi41IDg4LjctOTIuNS04OC43IDY0LjUtMTg0LTY0LjUtODYuNiAxODQuOSAwLTY0LjQgODYuNiA2NC41IDE4NHoiXX0sYWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1mYWNlYm9vayIsaWNvbjpbNDQ4LDUxMixbImZhY2Vib29rLXNxdWFyZSJdLCJmMDgyIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTguMiAwIDAtMTQ1LjgtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE0NS44IDEyOSAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxDSXQ9YWdlLFRJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiYXR0bGUtbmV0IixpY29uOls1MTIsNTEyLFtdLCJmODM1IiwiTTQ0OC44IDIyNS42YzI2LjkgLjIgMzUuNi03LjQgMzguOS0xMi40IDEyLjUtMTYuMy03LjEtNDcuNi01Mi44LTcxLjMgMTcuOC0zMy42IDMwLjEtNjMuNyAzNi4zLTg1LjMgMy40LTExLjggMS4xLTE5IC41LTIwLjMtMS43IDEwLjUtMTUuOCA0OC41LTQ4LjIgMTAwLTI1LTExLjItNTYuNS0yMC4xLTkzLjgtMjMuOC04LjktMTYuOS0zNC45LTYzLjktNjAuNS04OC45LTE2LjgtMTYuNS0zMC4zLTIyLjYtNDAuOC0yMy41bDAgMGMtMTMuOC0xLjYtMjIuNyA1LjgtMjcuNCAxMS0xNy4yIDE4LjUtMjQuMyA0OC45LTI1IDg0LjEtNy4yLTEyLjMtMTcuMi0yNC42LTI4LjUtMjUuOWwtLjIgMGMtMjAuNy0zLjUtMzguNCAyOS4yLTM2IDgxLjMtMzguNCAxLjQtNzEgNS44LTkzIDExLjItOS45IDIuNC0xNi4yIDcuMy0xNy44IDkuNyAxLS40IDIyLjQtOS4yIDExMS42LTkuMiA1LjIgNTMgMjkuOCAxMDEuOCAyNiA5My4yLTkuNyAxNS40LTM4LjIgNjIuNC00Ny4zIDk3LjctNS45IDIyLjktNC40IDM3LjYgLjIgNDcuMSA1LjYgMTIuOCAxNi40IDE2LjcgMjMuMiAxOC4zIDI1IDUuNyA1NS40LTMuNiA4Ni43LTIxLjEtNy41IDEyLjgtMTMuOSAyOC41LTkuMSAzOS4zIDcuMyAxOS42IDQ0LjUgMTguNyA4OC40LTkuNCAyMC4yIDMyLjIgNDAuMSA1Ny45IDU1LjcgNzQuMSAyLjYgMi44IDUuNSA1LjIgOC44IDcuMSA1LjEgMy4yIDguNiAzLjQgOC42IDMuNC04LjItNi43LTM0LTM4LTYyLjUtOTEuOCAyMi4yLTE2IDQ1LjctMzguOSA2Ny41LTY5LjMgMTIyLjggNC42IDE0My4zLTI0LjggMTQ4LTMxLjYgMTQuNy0xOS45IDMuNC01Ny40LTU3LjMtOTMuN3pNMzcxIDMzMS44YzIzLjgtMzcuNyAzMC4zLTY3LjggMjkuNC05Mi4zIDI3LjkgMTcuNiA0Ny4yIDM3LjYgNDkuMSA1OC44IDEuMSAxMi45LTguMSAyOS4xLTc4LjUgMzMuNXpNMjE3LjEgMzg3LjdjOS44LTYuMiAxOS41LTEzLjEgMjkuMi0yMC41IDYuNyAxMy4zIDEzLjYgMjYuMSAyMC42IDM4LjItNDAuNiAyMS45LTY4LjggMTIuOC00OS44LTE3Ljd6bTIxNS0xNzEuM2MtMTAuMy01LjMtMjEuMi0xMC4zLTMyLjQtMTUgNy45LTEyLjEgMTUuNS0yNC40IDIyLjctMzYuOSAzOS4xIDI0LjEgNDUuOSA1My4yIDkuNiA1MS45ek0yNzkuNCAzOThjLTUuNS0xMS40LTExLTIzLjUtMTYuNS0zNi40IDQzLjIgMS4zIDYyLjQtMTguNyA2My4zLTIwLjQgMCAuMS0yNSAxNS42LTYyLjUgMTIuMiAzMC42LTI1LjYgNTkuMS01My43IDg1LjEtODQgOC43LTEwLjIgMTctMjAuNiAyNC45LTMxLjEtLjQtLjMtMS41LTMtMTYuNS0xMi01MS43IDYwLjMtMTAyLjMgOTgtMTMyLjggMTE1LjktMjAuNi0xMS4yLTQwLjgtMzEuOC01NS43LTYxLjUtMjAtMzkuOS0zMC04Mi40LTMxLjYtMTE2LjEgMTIuMyAuOSAyNS4zIDIuMiAzOC44IDMuOS0yMi4zIDM2LjgtMTQuNCA2My0xMy41IDY0LjIgMC0uMS0xLTI5LjIgMjAuMS01OS42IDkgNTIuNSAyNCAxMDMuOCA0NC43IDE1Mi44IC45LS40IDEuOCAuOSAxOC43LTguMi0yNi4zLTc0LjUtMzMuOC0xMzguMi0zNC0xNzMuNCAyMC0xMi40IDQ4LjItMTkuOCA4MS42LTE3LjggNDQuNiAyLjcgODYuNCAxNS4yIDExNi4zIDMwLjctNy4xIDEwLjQtMTQuOSAyMS4zLTIzLjMgMzIuNS0yMC43LTM3LjctNDcuMy00My45LTQ4LjktNDMuNyAuMSAwIDI1LjkgMTQuMSA0MS41IDQ3LjItMzcuNS0xMy44LTc2LjEtMjQuNC0xMTUuMy0zMS43LTEzLjEtMi40LTI2LjItNC40LTM5LjQtNi0uMSAuNC0xLjggMS44LTIuMiAyMC4zIDc3LjkgMTQuNSAxMzYuNiAzOS45IDE2Ny4yIDU3LjIgLjcgMjMuNi03IDUxLjYtMjUuNCA3OS42LTI0LjYgMzcuMy01Ni40IDY3LjItODQuOCA4NS40em0yNy40LTI4N2MtNDQuNi0xLjctNzMuNiA3LjQtOTQuNyAyMC43IDItNTIuMyAyMS4zLTc2LjQgMzguMi03NS4zIDE2LjktNC4yIDU0LjkgNTIuMiA1Ni41IDU0LjZ6bS0xMzAuNyAzLjFjLjUgMTIuMSAxLjYgMjQuNiAzLjIgMzcuMy0xNC42LS45LTI4LjctMS4zLTQyLjQtMS4zLS4xIDMuMi0uMS01MSAyNC43LTQ5LjZsLjEgMGM1LjggMS4xIDEwLjYgNi45IDE0LjQgMTMuNnptLTI4LjEgMTYyYzIwLjggMzkuNyA0My4zIDYwLjYgNjUuMyA3Mi4zLTQ2LjggMjQuOC03Ny41IDIwLTg0LjkgNC41LS4yLS4yLTExLjEtMTUuMyAxOS43LTc2LjhsMCAweiJdfSwkSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmltb2JqZWN0IixpY29uOls0NDgsNTEyLFtdLCJmMzc4IiwiTTQxNiAzMkwzMiAzMkMxNC40IDMyIDAgNDYuNCAwIDY0TDAgNDQ4YzAgMTcuNiAxNC40IDMyIDMyIDMybDM4NCAwYzE3LjYgMCAzMi0xNC40IDMyLTMybDAtMzg0YzAtMTcuNi0xNC40LTMyLTMyLTMyek0zNTIgMjg5LjRjMCA0OS40LTExLjQgODIuNi0xMDMuOCA4Mi42bC0xNi45IDBjLTQ0LjEgMC02Mi40LTE0LjktNzAuNC0zOC44bC0uOSAwIDAgMzQuOC02NCAwIDAtMjMyIDY0IDAgMCA3NC43IDEuMSAwYzQuNi0zMC41IDM5LjctMzguOCA2OS43LTM4LjhsMTcuMyAwYzkyLjQgMCAxMDMuOCAzMy4xIDEwMy44IDgyLjVsMCAzNSAuMSAwem0tNjQtMjguOWwwIDIyLjljMCAyMS43LTMuNCAzMy44LTM4LjQgMzMuOGwtNDUuMyAwYy0yOC45IDAtNDQuMS02LjUtNDQuMS0zNS43bDAtMTljMC0yOS4zIDE1LjItMzUuNyA0NC4xLTM1LjdsNDUuMyAwYzM1LS4yIDM4LjQgMTIgMzguNCAzMy43eiJdfSxESXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ZlbHRlIixpY29uOls0NDgsNTEyLFtdLCJlODY4IiwiTTIwMi4xIDI2LjRjNjYuOC00Mi42IDE1OS4zLTIyLjcgMjA2LjEgNDQuMyAxMS4xIDE1LjUgMTkgMzMuMSAyMy4yIDUxLjhzNC43IDM3LjkgMS4zIDU2LjdjLTMuMiAxOC0xMC4xIDM1LjEtMjAuMSA1MC4zIDE0LjYgMjcuOSAxOS42IDYwIDE0IDkxLTMuMyAxOC40LTEwLjQgMzYtMjAuOSA1MS41cy0yNC4xIDI4LjctMzkuOSAzOC43TDI0OC4zIDQ4NS42Yy02Ni44IDQyLjYtMTU5LjMgMjIuNy0yMDYuMS00NC4yLTExLjEtMTUuNS0xOS0zMy4yLTIzLjItNTEuOHMtNC43LTM3LjktMS4zLTU2LjdjMy4yLTE4IDEwLjEtMzUuMSAyMC4xLTUwLjMtMTQuNy0yNy45LTE5LjYtNjAtMTQtOTEuMSAzLjMtMTguNCAxMC40LTM2IDIwLjktNTEuNXMyNC4xLTI4LjcgMzkuOS0zOC43TDIwMi4xIDI2LjR6TTMxNS42IDY3LjJjLTE3LjktNi42LTM3LjQtNy42LTU1LjktMi44LTguNCAyLjMtMTYuNSA1LjgtMjMuOCAxMC41TDExOC41IDE0OS43Yy05LjUgNi0xNy43IDEzLjktMjQgMjMuM1M4NCAxOTIuOCA4MiAyMDMuOWMtMiAxMS4zLTEuNyAyMi45IC44IDM0LjFzNy4zIDIxLjggMTMuOSAzMS4yYzEwLjkgMTUuNyAyNi4zIDI3LjYgNDQuMiAzNC4zczM3LjQgNy42IDU1LjkgMi44YzguNC0yLjMgMTYuNS01LjggMjMuOC0xMC41bDQ0LjgtMjguNmMyLjItMS40IDQuNy0yLjUgNy4yLTMuMiA1LjYtMS40IDExLjQtMS4yIDE2LjggLjhzMTAgNS42IDEzLjMgMTAuM2MyIDIuOCAzLjUgNiA0LjIgOS40cy45IDYuOSAuMyAxMC4zYy0uNiAzLjMtMS45IDYuNS0zLjggOS4zLTEuOSAyLjgtNC40IDUuMi03LjIgN0wxNzguOCAzODYuMWMtMi4yIDEuNC00LjcgMi41LTcuMiAzLjItNS42IDEuNC0xMS40IDEuMi0xNi44LS44cy0xMC01LjYtMTMuMy0xMC4zYy0zLjYtNS4xLTUuMy0xMS4yLTQuNy0xNy40bC40LTQuNC00LjMtMS4zYy0xNi41LTUtMzIuMS0xMi43LTQ1LjktMjIuOWwtNi00LjQtMi4yIDYuN2MtMS4yIDMuNi0yLjEgNy4zLTIuOCAxMS0yIDExLjMtMS43IDIyLjkgLjggMzQuMXM3LjMgMjEuOCAxMy45IDMxLjFjMTAuOSAxNS43IDI2LjMgMjcuNiA0NC4yIDM0LjNzMzcuNCA3LjYgNTUuOCAyLjhjOC40LTIuMyAxNi41LTUuOCAyMy45LTEwLjVsMTE3LjMtNzQuOGM5LjUtNiAxNy43LTEzLjkgMjQtMjMuM3MxMC42LTE5LjkgMTIuNi0zMWMyLTExLjMgMS44LTIyLjktLjgtMzQuMXMtNy4zLTIxLjgtMTQtMzEuMWMtMTAuOS0xNS43LTI2LjMtMjcuNi00NC4yLTM0LjNzLTM3LjQtNy42LTU1LjktMi44Yy04LjQgMi4zLTE2LjUgNS44LTIzLjggMTAuNUwxODUgMjQ0LjhjLTIuMiAxLjQtNC42IDIuNS03LjIgMy4yLTUuNiAxLjQtMTEuNSAxLjItMTYuOC0uOHMtMTAtNS42LTEzLjMtMTAuM2MtMi0yLjgtMy40LTYtNC4yLTkuNHMtLjktNi45LS4yLTEwLjNjLjYtMy4zIDEuOS02LjUgMy44LTkuM3M0LjQtNS4yIDcuMi03bDExNy40LTc0LjhjMi4yLTEuNCA0LjctMi41IDcuMi0zLjIgNS42LTEuNCAxMS40LTEuMSAxNi44IC45czEwIDUuNiAxMy4zIDEwLjNjMy42IDUuMSA1LjIgMTEuMyA0LjcgMTcuNGwtLjQgNC40IDQuNCAxLjNjMTYuNSA1IDMyIDEyLjggNDUuOSAyM2w2IDQuNCAyLjItNi44YzEuMi0zLjYgMi4xLTcuMyAyLjgtMTEgMi0xMS4zIDEuOC0yMi45LS44LTM0LjFzLTcuMy0yMS44LTE0LTMxLjFjLTEwLjktMTUuNy0yNi4zLTI3LjYtNDQuMi0zNC4zeiJdfSxMSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWRlc2twcm8iLGljb246WzQ0OCw1MTIsW10sImU4NDQiLCJNNDA4LjggMzJDNDMwLjQgMzIgNDQ4IDQ5LjYgNDQ4IDcxLjJsMCAzNjkuNmMwIDIxLjYtMTcuNiAzOS4yLTM5LjIgMzkuMkwzOS4yIDQ4MEMxNy42IDQ4MCAwIDQ2Mi40IDAgNDQwLjhMMCA3MS4yQzAgNDkuNiAxNy42IDMyIDM5LjIgMzJsMzY5LjYgMHpNMTEwLjkgMjc0LjFsMCAxMTQuNCA4OS4xLS4xYzIwLjYgMCAzOS40LTMuMiA1Ni4zLTkuNXMzMS4zLTE1LjQgNDMuMi0yN2MxMi4yLTExLjkgMjEuNi0yNiAyOC4yLTQyLjEgNC42LTExLjEgNy43LTIzIDkuMi0zNS43bC00My44IDBjLTEuMSA2LjQtMi44IDEyLjQtNS4xIDE4LjItNC4yIDEwLjktMTAuMyAyMC4zLTE4LjIgMjguMi03LjkgNy43LTE3LjQgMTMuNy0yOC42IDE3LjktMTEuMSA0LjMtMjMuNSA2LjQtMzcuMyA2LjRsLTUwIDAgMC03MC42LTQzIC4xem0wLTE1MS40bDAgMTE0LjQgNDMtLjEgMC03MC43IDUwIDBjMTMuNyAwIDI2LjIgMi4xIDM3LjMgNi40IDExLjEgNC4zIDIwLjYgMTAuMyAyOC42IDE4LjMgNy45IDcuNyAxNCAxNy4xIDE4LjIgMjguMiAyLjMgNS42IDQgMTEuNSA1LjEgMTcuOGw0My45IC4xYy0xLjQtMTIuNi00LjQtMjQuNC04LjktMzUuMy02LjYtMTYuNC0xNi0zMC41LTI4LjEtNDIuMi0xMi4xLTExLjktMjYuNy0yMS4xLTQzLjYtMjcuNS0xNi45LTYuNC0zNS43LTkuNS01Ni4zLTkuNWwtODkgLjF6Il19LEVJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0YWlsd2luZC1jc3MiLGljb246WzY0MCw1MTIsW10sImU4NjYiLCJNMzIwIDY0Yy04NS4zIDAtMTM4LjcgNDIuNy0xNjAgMTI4IDMyLTQyLjcgNjkuMy01OC43IDExMi00OCAyNC4zIDYuMSA0MS43IDIzLjggNjEgNDMuMyAzMS40IDMxLjggNjcuNyA2OC43IDE0NyA2OC43IDg1LjMgMCAxMzguNy00Mi43IDE2MC0xMjgtMzIgNDIuNy02OS4zIDU4LjctMTEyIDQ4LTI0LjMtNi4xLTQxLjctMjMuOC02MS00My4zLTMxLjQtMzEuOC02Ny43LTY4LjctMTQ3LTY4Ljd6TTE2MCAyNTZjLTg1LjMgMC0xMzguNyA0Mi43LTE2MCAxMjggMzItNDIuNyA2OS4zLTU4LjcgMTEyLTQ4IDI0LjMgNi4xIDQxLjcgMjMuOCA2MSA0My4zIDMxLjQgMzEuOCA2Ny43IDY4LjcgMTQ3IDY4LjcgODUuMyAwIDEzOC43LTQyLjcgMTYwLTEyOC0zMiA0Mi43LTY5LjMgNTguNy0xMTIgNDgtMjQuMy02LjEtNDEuNy0yMy44LTYxLTQzLjMtMzEuNC0zMS44LTY3LjctNjguNy0xNDctNjguN3oiXX0scFdhPXtmYVNxdWFyZUdpdGh1YjpTOGUsZmFHaXRodWJTcXVhcmU6JF90LGZhVGhpbmtQZWFrczpEX3QsZmFHb29nbGVEcml2ZTpMX3QsZmFBdXRvcHJlZml4ZXI6RV90LGZhU3F1YXJlVmlhZGVvOl84ZSxmYVZpYWRlb1NxdWFyZTpQX3QsZmFDcGFuZWw6SV90LGZhTWVuZGVsZXk6QV90LGZhRHJhZnQyZGlnaXRhbDpOX3QsZmFSZXBseWQ6Ul90LGZhRW1waXJlOk9fdCxmYUFjY2Vzc2libGVJY29uOkZfdCxmYVF1b3JhOkJfdCxmYUNjSmNiOkhfdCxmYUZlZG9yYTpxX3QsZmFEdW9saW5nbzpqX3QsZmFGaXJzdGRyYWZ0OlZfdCxmYUZyZWVic2Q6VV90LGZhT2R5c2VlOldfdCxmYUdnQ2lyY2xlOkdfdCxmYUNsb3VkZmxhcmU6S190LGZhSGFja2VycmFuazpZX3QsZmFTa3lhdGxhczpaX3QsZmFEZXNrcHJvOlhfdCxmYVJlc29sdmluZzpRX3QsZmFCbGFja2JlcnJ5OkpfdCxmYVN0cmlwZVM6ZU10LGZhU3F1YXJlQmVoYW5jZTpNOGUsZmFCZWhhbmNlU3F1YXJlOnRNdCxmYVNlcnZpY2VzdGFjazphTXQsZmFSb2NrZXRjaGF0OnNNdCxmYVJlYmVsOmlNdCxmYVNxdWFyZVdlYkF3ZXNvbWU6ck10LGZhTGlua3RyZWU6b010LGZhU2ltcGx5YnVpbHQ6bk10LGZhU3R1YmJlcjpsTXQsZmFBcHBlcjpjTXQsZmFHb29nbGVTY2hvbGFyOmRNdCxmYVlhcm46dU10LGZhU3RhY2tPdmVyZmxvdzpwTXQsZmFCbHVldG9vdGg6aE10LGZhQ3JlYXRpdmVDb21tb25zTmNKcDpmTXQsZmFSZWRkaXQ6bU10LGZhQ29ubmVjdGRldmVsb3A6Z010LGZhUmVzZWFyY2hnYXRlOmJNdCxmYVNpZ25hbE1lc3Nlbmdlcjp2TXQsZmFYaW5nOnhNdCxmYVNxdWFyZUpzOno4ZSxmYUpzU3F1YXJlOnlNdCxmYUZvbnRpY29uczp3TXQsZmFVcHM6a010LGZhQW1hem9uUGF5OlNNdCxmYVBhbmRvcmE6X010LGZhT3BlbmlkOk1NdCxmYVZzY286ek10LGZhR2xvYmFsZWFrczpDTXQsZmFWZW5tbzpUTXQsZmFVYnVudHU6JE10LGZhVmlhY29pbjpETXQsZmFaaGlodTpMTXQsZmFZYW5kZXg6RU10LGZhUGl4aXY6UE10LGZhT3BlbmFpOklNdCxmYVNpdGg6QU10LGZhSnVsaWE6Tk10LGZhTmZjRGlyZWN0aW9uYWw6Uk10LGZhQ3JlYXRpdmVDb21tb25zQnk6T010LGZhVW1icmFjbzpGTXQsZmFIb29saTpCTXQsZmFTcXVhcmVHaXQ6QzhlLGZhR2l0U3F1YXJlOkhNdCxmYU9kbm9rbGFzc25pa2k6cU10LGZhRHJ1cGFsOmpNdCxmYUJsb2dnZXJCOlZNdCxmYUludmlzaW9uOlVNdCxmYUZhY2Vib29rRjpXTXQsZmFDZW50b3M6R010LGZhU2NhbGV3YXk6S010LGZhQ2NBbWF6b25QYXk6WU10LGZhRWJheTpaTXQsZmFDb250YW86WE10LGZhRWxsbzpRTXQsZmFTaXN0cml4OkpNdCxmYVBlcmlzY29wZTplenQsZmFFeHBlZGl0ZWRzc2w6dHp0LGZhTmFwc3RlcjphenQsZmFEZWxpY2lvdXM6c3p0LGZhR3VpbGRlZDppenQsZmFPYnNpZGlhbjpyenQsZmFYYm94Om96dCxmYVVudGFwcGQ6bnp0LGZhR29vZ2xlUGx1c0c6bHp0LGZhR2l0aHViQWx0OmN6dCxmYUdldFBvY2tldDpkenQsZmFHbGlkZTp1enQsZmFCaXR5OnB6dCxmYVdwZXhwbG9yZXI6aHp0LGZhTWVnYXBvcnQ6Znp0LGZhTGVldGNvZGU6bXp0LGZhTWRiOmd6dCxmYVBhZ2U0OmJ6dCxmYVRoZVJlZFlldGk6dnp0LGZhSmlyYTp4enQsZmFGZWRleDp5enQsZmFFdmVybm90ZTp3enQsZmFVc2I6a3p0LGZhQW5ncnljcmVhdGl2ZTpTenQsZmFNaXp1bmk6X3p0LGZhSXRjaElvOk16dCxmYVdpbmRvd3M6enp0LGZhU3R1bWJsZXVwb246Q3p0LGZhR29vZ2xlOk1iLGZhRGlzY29yZDpUenQsZmFIYWNrZXJOZXdzOiR6dCxmYUVsZXZlbnR5OlQ4ZSxmYTExdHk6RHp0LGZhVGVhbXNwZWFrOkx6dCxmYVN1cHBsZTpFenQsZmFTcXVhcmVUd2l0dGVyOiQ4ZSxmYVR3aXR0ZXJTcXVhcmU6UHp0LGZhVmltOkl6dCxmYUZvbnRBd2Vzb21lOllyZSxmYUZvbnRBd2Vzb21lRmxhZzpBenQsZmFGb250QXdlc29tZUxvZ29GdWxsOk56dCxmYVdpcnNpbmRoYW5kd2VyazpEOGUsZmFXc2g6Unp0LGZhWm9vbTpPenQsZmFDb25mbHVlbmNlOkZ6dCxmYURpZ2c6Qnp0LGZhVGhyZWFkczpIenQsZmFXcHJlc3NyOkw4ZSxmYVJlbmRhY3Q6cXp0LGZhWW9hc3Q6anp0LGZhTmltYmxyOlZ6dCxmYVBpeGVsZmVkOlV6dCxmYVlhaG9vOld6dCxmYUJsdWVza3k6R3p0LGZhU2NyaWJkOkt6dCxmYUNyZWF0aXZlQ29tbW9uc1BkOll6dCxmYUVhcmx5YmlyZHM6Wnp0LGZhU3ltZm9ueWNhc3RzOlh6dCxmYVNxdWFyZU9kbm9rbGFzc25pa2k6RThlLGZhT2Rub2tsYXNzbmlraVNxdWFyZTpRenQsZmFNYXJrZG93bjpKenQsZmFUeXBvMzplQ3QsZmFKb29tbGE6dEN0LGZhV2VpeGluOmFDdCxmYUdydW50OnNDdCxmYVN1cHBvcnRub3c6aUN0LGZhUm9ja3JtczpyQ3QsZmFVbnNwbGFzaDpvQ3QsZmFTcXVhcmVJbnN0YWdyYW06UDhlLGZhSW5zdGFncmFtU3F1YXJlOm5DdCxmYUZpcnN0T3JkZXJBbHQ6bEN0LGZhRnVsY3J1bTpjQ3QsZmFBcmNoTGludXg6ZEN0LGZhRmVkaXZlcnNlOnVDdCxmYUJyYXZlUmV2ZXJzZTpwQ3QsZmFBdmlhbmV4OmhDdCxmYU5zODpmQ3QsZmFTcXVhcmVQaW50ZXJlc3Q6SThlLGZhUGludGVyZXN0U3F1YXJlOm1DdCxmYUJsdWV0b290aEI6Z0N0LGZhR3JpcGZpcmU6YkN0LGZhU3F1YXJlR29vZ2xlUGx1czpBOGUsZmFHb29nbGVQbHVzU3F1YXJlOnZDdCxmYUdpdGVlOnhDdCxmYVhtcHA6eUN0LGZhQXBwU3RvcmU6d0N0LGZhV2l4OmtDdCxmYUludGVyY29tOlNDdCxmYVJlYWN0ZXVyb3BlOl9DdCxmYVdhemU6TUN0LGZhQ3JlYXRpdmVDb21tb25zUmVtaXg6ekN0LGZhQmFuZGNhbXA6Q0N0LGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZTpUQ3QsZmFWaW1lb1Y6JEN0LGZhU3RyYXZhOkRDdCxmYVVuaXJlZ2lzdHJ5OkxDdCxmYUNjRGluZXJzQ2x1YjpFQ3QsZmFLdWJlcm5ldGVzOlBDdCxmYVBpbnRlcmVzdDpJQ3QsZmFBbGdvbGlhOkFDdCxmYVN0YWNrcGF0aDpOQ3QsZmFPY3RvcHVzRGVwbG95OlJDdCxmYVlhbW1lcjpPQ3QsZmFNb2R4OkZDdCxmYVNxdWFyZVRocmVhZHM6QkN0LGZhT2xkUmVwdWJsaWM6SEN0LGZhU3VzZTpxQ3QsZmFBcHBTdG9yZUlvczpqQ3QsZmFVbHRyYWx5dGljc1lvbG86VkN0LGZhU3F1YXJlRHJpYmJibGU6TjhlLGZhRHJpYmJibGVTcXVhcmU6VUN0LGZhVWlraXQ6V0N0LGZhU3VwZXJwb3dlcnM6R0N0LGZhWW91dHViZTpLQ3QsZmFFbWJlcjpZQ3QsZmFCb290c3RyYXA6WkN0LGZhSXR1bmVzOlhDdCxmYVNxdWFyZVhpbmc6UjhlLGZhWGluZ1NxdWFyZTpRQ3QsZmFDc3MzQWx0OkpDdCxmYVNxdWFyZXNwYWNlOmVUdCxmYVRyZWxsbzp0VHQsZmFWaWFkZW86YVR0LGZhU2VhcmNoZW5naW46c1R0LGZhVW5yZWFsRW5naW5lOmlUdCxmYVBheXBhbDpyVHQsZmFTcXVhcmVCbHVlc2t5Om9UdCxmYURBbmREQmV5b25kOm5UdCxmYU1pY3Jvc29mdDpsVHQsZmFGbHk6Y1R0LGZhQ2NTdHJpcGU6ZFR0LGZhV29yZHByZXNzU2ltcGxlOnVUdCxmYVNlbGxzeTpwVHQsZmFEYXNoY3ViZTpoVHQsZmFHaXR0ZXI6ZlR0LGZhV29sZlBhY2tCYXR0YWxpb246bVR0LGZhTGFzdGZtOmdUdCxmYVNob3B3YXJlOmJUdCxmYUJsb2dnZXI6dlR0LGZhRWRnZTp4VHQsZmFJb3hob3N0OnlUdCxmYVNjaGxpeDp3VHQsZmFEQW5kRDprVHQsZmFWdWVqczpTVHQsZmFNZXRhOl9UdCxmYUNyZWF0aXZlQ29tbW9uc1NoYXJlOk1UdCxmYVN0dWRpb3ZpbmFyaTp6VHQsZmFCaXRidWNrZXQ6Q1R0LGZhVms6VFR0LGZhR2l0aHViOiRUdCxmYUNvZGllcGllOkRUdCxmYVBpZWRQaXBlcjpMVHQsZmFSYXNwYmVycnlQaTpFVHQsZmFDc3MzOlBUdCxmYUh1YnNwb3Q6SVR0LGZhQ21wbGlkOkFUdCxmYUR5YWxvZzpOVHQsZmFFbGVtZW50b3I6UlR0LGZhRmlyc3RPcmRlcjpPVHQsZmFEcmliYmJsZTpGVHQsZmFMaW5rZWRpbjp6YixmYUNjUGF5cGFsOkJUdCxmYURobDpIVHQsZmFUZXg6cVR0LGZhQ2xhdWRlOmpUdCxmYVNob3BpZnk6VlR0LGZhU3F1YXJlUmVkZGl0Ok84ZSxmYVJlZGRpdFNxdWFyZTpVVHQsZmFDcmVhdGl2ZUNvbW1vbnNOYzpXVHQsZmFHYWxhY3RpY1JlcHVibGljOkdUdCxmYUZhY2Vib29rOkNiLGZhR2l0bGFiOktUdCxmYVFxOllUdCxmYVN0cmlwZTpaVHQsZmFEYWlseW1vdGlvbjpYVHQsZmFTdGVhbTpRVHQsZmFWZW5tb1Y6SlR0LGZhU25hcGNoYXQ6RjhlLGZhU25hcGNoYXRHaG9zdDplJHQsZmFHYWxhY3RpY1NlbmF0ZTp0JHQsZmFQaG9lbml4RnJhbWV3b3JrOmEkdCxmYUdpdDpzJHQsZmFPcHRpbk1vbnN0ZXI6aSR0LGZhSmVua2luczpyJHQsZmFTbGlkZXNoYXJlOm8kdCxmYVViZXI6biR0LGZhRGlnaXRhbE9jZWFuOmwkdCxmYVNvdW5kY2xvdWQ6YyR0LGZhU3F1YXJlRmlnbWE6ZCR0LGZhQ3JlYXRpdmVDb21tb25zU2E6dSR0LGZhQ2hyb21lOnAkdCxmYVRyYWRlRmVkZXJhdGlvbjpoJHQsZmFWYWFkaW46ZiR0LGZhRGV2aWFudGFydDptJHQsZmFNZWRpdW06WDMsZmFNZWRpdW1NOmckdCxmYU9wZW5jYXJ0OmIkdCxmYVlDb21iaW5hdG9yOnYkdCxmYUxpbmU6eCR0LGZhQW1pbGlhOnkkdCxmYUFzeW1tZXRyaWs6dyR0LGZhUGhhYnJpY2F0b3I6ayR0LGZhQm90czpTJHQsZmFWaW5lOl8kdCxmYU1lZHJ0Ok0kdCxmYU9zaTp6JHQsZmFHZzpDJHQsZmFCdXlzZWxsYWRzOlQkdCxmYUdvb2dsZVBsdXM6JCR0LGZhU2NyZWVucGFsOkQkdCxmYUJpdGNvaW46TCR0LGZhU3dpZnQ6RSR0LGZhRmlsZXNQaW53aGVlbDpQJHQsZmFMYXJhdmVsOkkkdCxmYVdwZm9ybXM6QSR0LGZhU3BlYWtlckRlY2s6TiR0LGZhRmxpY2tyOlIkdCxmYUNjVmlzYTpPJHQsZmFVcHdvcms6RiR0LGZhS2FrYW9UYWxrOkIkdCxmYUZsdXR0ZXI6SCR0LGZhQnVmZmVyOnEkdCxmYUdyYXRpcGF5OmokdCxmYUdvb2dsZVBheTpWJHQsZmFBcHBsZTpVJHQsZmFUdW1ibHI6VyR0LGZhUGhvZW5peFNxdWFkcm9uOkckdCxmYUNlbnRlcmNvZGU6SyR0LGZhRGViaWFuOlkkdCxmYU1hc3RvZG9uOlokdCxmYVNrZXRjaDpYJHQsZmFXZWJBd2Vzb21lOlEkdCxmYVNhc3M6SiR0LGZhVGhyZWVtYTplRHQsZmFTcXVhcmVXaGF0c2FwcDpCOGUsZmFXaGF0c2FwcFNxdWFyZTp0RHQsZmFTa3lwZTphRHQsZmFBbmd1bGFyOnNEdCxmYUNpcmNsZVp1bGlwOmlEdCxmYU9wZW5zdXNlOnJEdCxmYURyb3Bib3g6b0R0LGZhRGVlemVyOm5EdCxmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nOmxEdCxmYUplZGlPcmRlcjpjRHQsZmFSUHJvamVjdDpkRHQsZmFJbnN0YWxvZDp1RHQsZmFDYW5hZGlhbk1hcGxlTGVhZjpwRHQsZmFFdGhlcmV1bTpoRHQsZmFIb3V6ejpmRHQsZmFWaWJlcjptRHQsZmFLaWNrc3RhcnRlcjpIOGUsZmFTcXVhcmVLaWNrc3RhcnRlcjpnRHQsZmFTcG90aWZ5OmJEdCxmYUxlYW5wdWI6dkR0LGZhSmF2YTp4RHQsZmFOZmNTeW1ib2w6eUR0LGZhV29kdTp3RHQsZmFTcXVhcmVTdGVhbTpxOGUsZmFTdGVhbVNxdWFyZTprRHQsZmFDcmVhdGl2ZUNvbW1vbnNOY0V1OlNEdCxmYU5wbTpfRHQsZmFDbG91ZHNjYWxlOk1EdCxmYVRoZW1lY286ekR0LGZhR29vZ2xlUGxheTpDRHQsZmFLb3J2dWU6VER0LGZhVzNjOiREdCxmYUdyYXY6RER0LGZhQXdzOkxEdCxmYUdsaWRlRzpFRHQsZmFKc2ZpZGRsZTpQRHQsZmFLZXliYXNlOklEdCxmYUx1bW9uRHJvcDpBRHQsZmFGb3JnZWpvOk5EdCxmYVBvc3RncmVzcWw6UkR0LGZhV2VlYmx5Ok9EdCxmYURvY2tlcjpGRHQsZmFNYWdlbnRvOkJEdCxmYVRvckJyb3dzZXI6SER0LGZhR2l0QWx0OnFEdCxmYUZpcmVmb3hCcm93c2VyOmpEdCxmYUNsb3Vkc21pdGg6VkR0LGZhV2l6YXJkc09mVGhlQ29hc3Q6VUR0LGZhQ3JlYXRpdmVDb21tb25zTmQ6V0R0LGZhVXNwczpHRHQsZmFTcXVhcmVMZXR0ZXJib3hkOktEdCxmYU1hbmRhbG9yaWFuOllEdCxmYVNsYWNrOmo4ZSxmYVNsYWNrSGFzaDpUYixmYUFuZ2VsbGlzdDpaRHQsZmFBbmRyb2lkOlhEdCxmYU1lZXR1cDpRRHQsZmFGb250aWNvbnNGaTpKRHQsZmFQYWxmZWQ6ZUx0LGZhV3BiZWdpbm5lcjp0THQsZmFEaWFzcG9yYTphTHQsZmFQcm9kdWN0SHVudDpzTHQsZmFTcXVhcmVVcHdvcms6aUx0LGZhQ3V0dGxlZmlzaDpyTHQsZmFNZWRhcHBzOm9MdCxmYVBpeDpuTHQsZmFTcXVhcmVUdW1ibHI6VjhlLGZhVHVtYmxyU3F1YXJlOmxMdCxmYVJlYWN0OmNMdCxmYUh1Z2dpbmdGYWNlOmRMdCxmYUp4bDp1THQsZmFTcXVhcmVMaW5rZWRpbjpwTHQsZmFDc3M6aEx0LGZhSGFzaG5vZGU6Zkx0LGZhUmVkZGl0QWxpZW46bUx0LGZhVGlrdG9rOiRiLGZhV29yZHByZXNzOmdMdCxmYUlkZWFsOmJMdCxmYVBpZWRQaXBlclBwOnZMdCxmYVVzc3VubmFoOnhMdCxmYUZvcnRBd2Vzb21lQWx0OnlMdCxmYUJ1cm9tb2JlbGV4cGVydGU6d0x0LGZhQmlsaWJpbGk6a0x0LGZhTmVvczpTTHQsZmFEZXY6X0x0LGZhSG90amFyOk1MdCxmYURvY2h1Yjp6THQsZmFWaW1lbzpDTHQsZmFNYXhjZG46VEx0LGZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2U6VThlLGZhRm9udEF3ZXNvbWVBbHQ6JEx0LGZhU3BlYWthcDpETHQsZmFGYW50YXN5RmxpZ2h0R2FtZXM6TEx0LGZhTGludXg6RUx0LGZhQ290dG9uQnVyZWF1OlBMdCxmYUdvb2dsZVdhbGxldDpJTHQsZmFGb3Vyc3F1YXJlOkFMdCxmYVNoaXJ0c2luYnVsazpOTHQsZmFNaW50Yml0OlJMdCxmYVp1bGlwOk9MdCxmYVN0YXlsaW5rZWQ6Rkx0LGZhV2ViZmxvdzpCTHQsZmFSZW5yZW46SEx0LGZhS29GaTpxTHQsZmFSZXY6akx0LGZhS2V5Y2RuOlZMdCxmYUhpcmVBSGVscGVyOlVMdCxmYVNxdWFyZUhhY2tlck5ld3M6VzhlLGZhSGFja2VyTmV3c1NxdWFyZTpXTHQsZmFDcmVhdGl2ZUNvbW1vbnNQZEFsdDpHTHQsZmFPcmNpZDpLTHQsZmFCb2FyZEdhbWVHZWVrOkc4ZSxmYUJnZzpZTHQsZmFCZWhhbmNlOlpMdCxmYU1vbmVybzpYTHQsZmFGaWdtYTpRTHQsZmFJbnN0YWdyYW06RGIsZmFQZXJieXRlOkpMdCxmYVNxdWFyZVZpbWVvOks4ZSxmYVZpbWVvU3F1YXJlOmVFdCxmYVB1c2hlZDp0RXQsZmFNaXhjbG91ZDphRXQsZmFZYW5kZXhJbnRlcm5hdGlvbmFsOnNFdCxmYUhpdmU6aUV0LGZhQ3JlYXRpdmVDb21tb25zWmVybzpyRXQsZmFTcXVhcmVTbmFwY2hhdDpZOGUsZmFTbmFwY2hhdFNxdWFyZTpvRXQsZmFUaGVtZWlzbGU6bkV0LGZhRGFydExhbmc6bEV0LGZhRGVwbG95ZG9nOmNFdCxmYUZsaXBib2FyZDpkRXQsZmFCdXlOTGFyZ2U6dUV0LGZhV2F0Y2htYW5Nb25pdG9yaW5nOnBFdCxmYUhpcHM6aEV0LGZhQ2xvdWR2ZXJzaWZ5OmZFdCxmYUdvb2RyZWFkczptRXQsZmFUaWRhbDpnRXQsZmFVbml0eTpiRXQsZmFUZW5jZW50V2VpYm86dkV0LGZhRnJlZUNvZGVDYW1wOnhFdCxmYVhUd2l0dGVyOnlFdCxmYVN0aWNrZXJNdWxlOndFdCxmYVR3aXRjaDprRXQsZmFLaWNrc3RhcnRlcks6U0V0LGZhQ3JpdGljYWxSb2xlOl9FdCxmYVN0ZWFtU3ltYm9sOk1FdCxmYU1haWxjaGltcDp6RXQsZmFMdW1vbjpDRXQsZmFOdXRyaXRpb25peDpURXQsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXM6JEV0LGZhUmVkaGF0OkRFdCxmYVNxdWFyZVBpZWRQaXBlcjpaOGUsZmFQaWVkUGlwZXJTcXVhcmU6TEV0LGZhV2hhdHNhcHA6RUV0LGZhSW1kYjpQRXQsZmFQeXRob246SUV0LGZhQ2FzaEFwcDpBRXQsZmFQaW50ZXJlc3RQOk5FdCxmYVdobWNzOlJFdCxmYUpvZ2V0Ok9FdCxmYVNxdWFyZVlvdXR1YmU6WDhlLGZhWW91dHViZVNxdWFyZTpGRXQsZmFBdGxhc3NpYW46QkV0LGZhUGllZFBpcGVySGF0OkhFdCxmYUludGVybmV0RXhwbG9yZXI6cUV0LGZhQWlyYm5iOmpFdCxmYUpzOlZFdCxmYVF1aW5zY2FwZTpVRXQsZmFBZHZlcnNhbDpXRXQsZmFDcmVhdGl2ZUNvbW1vbnM6R0V0LGZhTm90aW9uOktFdCxmYUNocm9tZWNhc3Q6WUV0LGZhVWx0cmFseXRpY3NIdWI6WkV0LGZhV2lraXBlZGlhVzpYRXQsZmFTaXRyb3g6UUV0LGZhU3F1YXJlR2l0bGFiOlE4ZSxmYUdpdGxhYlNxdWFyZTpKRXQsZmFTaG9lbGFjZTplUHQsZmFPcGVuc3RyZWV0bWFwOnRQdCxmYVNlbGxjYXN0OmFQdCxmYU1peDpzUHQsZmFDY0FwcGxlUGF5OmlQdCxmYVNvbGFuYTpyUHQsZmFUeXBlc2NyaXB0Om9QdCxmYUJyYXZlOm5QdCxmYUV0c3k6bFB0LGZhQnRjOmNQdCxmYUFkbjpkUHQsZmFTcXVhcmVYVHdpdHRlcjp1UHQsZmFTcXVhcmVGb250QXdlc29tZTpwUHQsZmFGb3J1bWJlZTpoUHQsZmE0Mkdyb3VwOko4ZSxmYUlubm9zb2Z0OmZQdCxmYVN0dW1ibGV1cG9uQ2lyY2xlOm1QdCxmYVN5bWZvbnk6Z1B0LGZhU2FsZXNmb3JjZTpiUHQsZmFTb3VyY2V0cmVlOnZQdCxmYUxpbmtlZGluSW46eFB0LGZhSHRtbDU6eVB0LGZhUnVzdDp3UHQsZmFIb3JuYmlsbDprUHQsZmFQaHA6U1B0LGZhRGlzcXVzOl9QdCxmYTUwMHB4Ok1QdCxmYUFmZmlsaWF0ZXRoZW1lOnpQdCxmYVJlZFJpdmVyOkNQdCxmYVR3aXR0ZXI6TGIsZmFGb3J0QXdlc29tZTpUUHQsZmFNaXhlcjokUHQsZmFMeWZ0OkRQdCxmYUFwcGxlUGF5OkxQdCxmYUFydHN0YXRpb246RVB0LGZhTm9kZUpzOlBQdCxmYVVuY2hhcnRlZDpJUHQsZmFQbGF5c3RhdGlvbjpBUHQsZmFNaWNyb2Jsb2c6TlB0LGZhR2l0a3Jha2VuOlJQdCxmYVRlbGVncmFtOmVnZSxmYVRlbGVncmFtUGxhbmU6T1B0LGZhVWx0cmFseXRpY3M6RlB0LGZhSXR1bmVzTm90ZTpCUHQsZmFMZXNzOkhQdCxmYUZpcmVmb3g6cVB0LGZhS2FnZ2xlOmpQdCxmYUZhY2Vib29rTWVzc2VuZ2VyOlZQdCxmYUF1ZGlibGU6VVB0LGZhUGF0cmVvbjpXUHQsZmFWbnY6R1B0LGZhUGFnZWxpbmVzOktQdCxmYUFtYXpvbjpZUHQsZmFFbnZpcmE6WlB0LGZhTGlub2RlOlhQdCxmYUFjY3Vzb2Z0OlFQdCxmYUVybGFuZzpKUHQsZmFVbmlzb246ZUl0LGZhQ2NEaXNjb3Zlcjp0SXQsZmFTYWZhcmk6YUl0LGZhU3BhY2VBd2Vzb21lOnNJdCxmYU5vZGU6aUl0LGZhQ29kZXBlbjpySXQsZmFSYXZlbHJ5Om9JdCxmYUFsaXBheTpuSXQsZmFDY0FtZXg6bEl0LGZhUGllZFBpcGVyQWx0OmNJdCxmYUxldHRlcmJveGQ6ZEl0LGZhT3BlcmE6dUl0LGZhV2VpYm86cEl0LGZhUmVhZG1lOmhJdCxmYUdvbGFuZzpmSXQsZmFTdGFja0V4Y2hhbmdlOm1JdCxmYUd1bHA6Z0l0LGZhWWVscDpiSXQsZmFHb2ZvcmU6dkl0LGZhQXZpYXRvOnhJdCxmYVBhZGxldDp5SXQsZmFFZGdlTGVnYWN5OndJdCxmYVNxdWFyZUxhc3RmbTp0Z2UsZmFMYXN0Zm1TcXVhcmU6a0l0LGZhR29vZHJlYWRzRzpTSXQsZmFDY01hc3RlcmNhcmQ6X0l0LGZhRGlzY291cnNlOk1JdCxmYUJsYWNrVGllOnpJdCxmYVNxdWFyZUZhY2Vib29rOmFnZSxmYUZhY2Vib29rU3F1YXJlOkNJdCxmYUJhdHRsZU5ldDpUSXQsZmFCaW1vYmplY3Q6JEl0LGZhU3ZlbHRlOkRJdCxmYVNxdWFyZURlc2twcm86TEl0LGZhVGFpbHdpbmRDc3M6RUl0fX0pO3ZhciBoV2EsaWdlLFBJdCxJSXQscmdlLEFJdCxRMyxOSXQsUkl0LE9JdCxGSXQsb2dlLEJJdCxISXQscUl0LEozLGpJdCxuZ2UsVkl0LGxnZSxVSXQsV0l0LEdJdCxLSXQsY2dlLFlJdCxkZ2UsWkl0LHVnZSxYSXQscGdlLFFJdCxoZ2UsSkl0LGZnZSxlQXQsbWdlLHRBdCxhQXQsZ2dlLHNBdCxiZ2UsaUF0LHZnZSxyQXQseGdlLG9BdCxuQXQseWdlLGxBdCx3Z2UsY0F0LGtnZSxkQXQsU2dlLHVBdCxfZ2UscEF0LGhBdCxmQXQsWnJlLG1BdCxnQXQsYkF0LHZBdCx4QXQseUF0LHdBdCxrQXQsWHJlLFNBdCxfQXQsTWdlLE1BdCx6QXQsQ0F0LFRBdCwkQXQsREF0LExBdCxFQXQsemdlLFBBdCxJQXQsQUF0LHVoLE5BdCxSQXQsQ2dlLE9BdCxGQXQsVGdlLEJBdCxFYixIQXQscUF0LFFyZSxqQXQsVkF0LCRnZSxVQXQsV0F0LEdBdCxEZ2UsS0F0LExnZSxZQXQsSnJlLFpBdCxYQXQsRWdlLFFBdCxQZ2UsSkF0LGVOdCx0TnQsSWdlLGFOdCxBZ2Usc050LE5nZSxpTnQsUmdlLHJOdCxvTnQsbk50LGxOdCxPZ2UsY050LGROdCxGZ2UsdU50LHBOdCxCZ2UsaE50LGZOdCxIZ2UsbU50LGdOdCxiTnQsS2ssdk50LHhOdCx5TnQsZWYsd050LGtOdCxTTnQscWdlLF9OdCxNTnQsamdlLHpOdCxWZ2UsQ050LFlrLFROdCwkTnQsRE50LFVnZSxMTnQsZW9lLEVOdCxQTnQsSU50LEFOdCxXZ2UsTk50LHRvZSxSTnQsT050LEdnZSxGTnQsS2dlLEJOdCxITnQsWWdlLHFOdCxaZ2Usak50LGFvZSxWTnQsVU50LFdOdCx0ZixHTnQsS050LFlOdCxaTnQsWGdlLFhOdCxRZ2UsUU50LEpnZSxKTnQsZTdlLGVSdCx0N2UsdFJ0LGE3ZSxhUnQsc29lLHNSdCxpUnQsclJ0LG9SdCxzN2UsblJ0LGk3ZSxsUnQscjdlLGNSdCxvN2UsZFJ0LHVSdCxwUnQsaFJ0LGZSdCxtUnQsZ1J0LG43ZSxiUnQsbDdlLHZSdCx4UnQsYzdlLHlSdCxkN2Usd1J0LHU3ZSxrUnQsUGIsU1J0LHA3ZSxfUnQsTVJ0LGg3ZSx6UnQsZjdlLENSdCxUUnQsJFJ0LG03ZSxEUnQsTFJ0LGc3ZSxFUnQsUFJ0LElSdCxBUnQsYjdlLE5SdCx2N2UsUlJ0LHg3ZSxPUnQsRlJ0LEJSdCx5N2UsSFJ0LHc3ZSxxUnQsazdlLGpSdCxWUnQsUzdlLFVSdCxfN2UsV1J0LEdSdCxNN2UsS1J0LFlSdCxaUnQsZldhLHo3ZT1nKCgpPT57aFdhPSJmYXIiLGlnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtbWludXMiLGljb246WzQ0OCw1MTIsWzYxNzY3LCJtaW51cy1zcXVhcmUiXSwiZjE0NiIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTM2IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFBJdD1pZ2UsSUl0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLWNoZWNrIixpY29uOls0NDgsNTEyLFtdLCJmMjc0IiwiTTMyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyem0yMzAuNyA2NS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjExLjQgMzc0LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSxyZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI0MCAwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni00OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxBSXQ9cmdlLFEzPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhc3RlIixpY29uOls1MTIsNTEyLFsiZmlsZS1jbGlwYm9hcmQiXSwiZjBlYSIsIk02NCA0OGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC00OC0xMTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnptMTc2IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDEwNCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDUuNiAwYzguOC04LjYgMTktMTUuOCAzMC4yLTIxLjEgLjEtLjkgLjItMS45IC4yLTIuOXpNNDQ4IDQ2NGwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsMTAxLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0NjQgNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjI0IDIyNGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zbC01OC41LTU4LjVjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMMjg4IDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6Il19LE5JdD1RMyxSSXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJmMGE1IiwiTTY0IDEyOGwxNzcuNiAwYy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZsMCAxNi0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMjI0IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA0OGMwIDUyLjUtMzMuNyA5Ny4xLTgwLjcgMTEzLjQgLjUtMy4xIC43LTYuMiAuNy05LjQgMC0yMC05LjItMzcuOS0yMy42LTQ5LjcgNC45LTkgNy42LTE5LjQgNy42LTMwLjMgMC0xNS4xLTUuMy0yOS0xNC00MCA4LjgtMTEgMTQtMjQuOSAxNC00MGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MHptMzItODBsMCAwYy0xOCAwLTM0LjYgNi00OCAxNkw2NCA4MEMyOC43IDgwIDAgMTA4LjcgMCAxNDRzMjguNyA2NCA2NCA2NGw4MiAwYy0xLjMgNS4xLTIgMTAuNS0yIDE2IDAgMjUuMyAxNC43IDQ3LjIgMzYgNTcuNi0yLjYgNy00IDE0LjUtNCAyMi40IDAgMjAgOS4yIDM3LjkgMjMuNiA0OS43LTQuOSA5LTcuNiAxOS40LTcuNiAzMC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC00OGMwLTkyLjgtNzUuMi0xNjgtMTY4LTE2OGwtMjQgMHpNMjU2IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwek0yNDAgMjI0YzAgNS41IC43IDEwLjkgMiAxNmwtMzQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwzMiAwIDAgMTZ6bTI0IDY0bDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjQgMHoiXX0sT0l0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtZXhjZWwiLGljb246WzM4NCw1MTIsW10sImYxYzMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptOTkuMiAyNjUuNmMtOC0xMC42LTIzLTEyLjgtMzMuNi00LjhzLTEyLjggMjMtNC44IDMzLjZMMTYyIDM0NCAxMjQuOCAzOTMuNmMtOCAxMC42LTUuOCAyNS42IDQuOCAzMy42czI1LjYgNS44IDMzLjYtNC44TDE5MiAzODQgMjIwLjggNDIyLjRjOCAxMC42IDIzIDEyLjggMzMuNiA0LjhzMTIuOC0yMyA0LjgtMzMuNkwyMjIgMzQ0IDI1OS4yIDI5NC40YzgtMTAuNiA1LjgtMjUuNi00LjgtMzMuNnMtMjUuNi01LjgtMzMuNiA0LjhMMTkyIDMwNCAxNjMuMiAyNjUuNnoiXX0sRkl0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNjEuNCA2NEMyNy41IDY0IDAgOTEuNSAwIDEyNS40IDAgMTI2LjMgMCAxMjcuMSAuMSAxMjhMMCAxMjggMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTYtLjEgMGMwLS45IC4xLTEuNyAuMS0yLjYgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjRMNjEuNCA2NHpNNDY0IDE5Mi4zTDQ2NCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTkxLjcgMTU0LjggMTE3LjRjMzEuNCAyMy45IDc0LjkgMjMuOSAxMDYuNCAwTDQ2NCAxOTIuM3pNNDggMTI1LjRDNDggMTE4IDU0IDExMiA2MS40IDExMmwzODkuMiAwYzcuNCAwIDEzLjQgNiAxMy40IDEzLjQgMCA0LjItMiA4LjItNS4zIDEwLjdMMjgwLjIgMjcxLjVjLTE0LjMgMTAuOC0zNC4xIDEwLjgtNDguNCAwTDUzLjMgMTM2LjFjLTMuMy0yLjUtNS4zLTYuNS01LjMtMTAuN3oiXX0sb2dlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1kb3duIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWRvd24iXSwiZjE1MCIsIk0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDB6bTY0LTE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMHpNMjI0IDM1MmMtNi43IDAtMTMtMi44LTE3LjYtNy43bC0xMDQtMTEyYy02LjUtNy04LjItMTcuMi00LjQtMjUuOVMxMTAuNSAxOTIgMTIwIDE5MmwyMDggMGM5LjUgMCAxOC4yIDUuNyAyMiAxNC40czIuMSAxOC45LTQuNCAyNS45bC0xMDQgMTEyYy00LjUgNC45LTEwLjkgNy43LTE3LjYgNy43eiJdfSxCSXQ9b2dlLEhJdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMuMyAwYzEwLjQtMzYuOSA0NC40LTY0IDg0LjctNjRzNzQuMiAyNy4xIDg0LjcgNjRsMTAyLjYgMGM0LjktMTcuNCAxNS4xLTMyLjcgMjguNy00My45TDM2OCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTMuMyAzNjhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTUuNCAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQwLjYgNDAuNmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjR6TTQxNiAyNTZsMTEyIDAgMC0yMy40YzAtNC4yLTEuNy04LjMtNC43LTExLjNsLTQwLjYtNDAuNmMtMy0zLTcuMS00LjctMTEuMy00LjdsLTU1LjQgMCAwIDgwem0wIDQ4bDAgMzIuNGMyLjYtLjIgNS4zLS40IDgtLjQgNDAuMyAwIDc0LjIgMjcuMSA4NC43IDY0bDMuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwLTExMiAwek0xNTIgNDY0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMjcyIDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxxSXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5LjdDMTE4LjYgNDUuMyA1NiAxMTUuNCA1NiAyMDBsMCAxNC41YzAgMzcuNy0xMCA3NC43LTI5IDEwNy4zTDUuMSAzNTkuMkMxLjggMzY1IDAgMzcxLjUgMCAzNzguMiAwIDM5OS4xIDE2LjkgNDE2IDM3LjggNDE2bDM3Mi40IDBjMjAuOSAwIDM3LjgtMTYuOSAzNy44LTM3LjggMC02LjctMS44LTEzLjMtNS4xLTE5TDQyMSAzMjEuN2MtMTktMzIuNi0yOS02OS42LTI5LTEwNy4zbDAtMTQuNWMwLTg0LjYtNjIuNi0xNTQuNy0xNDQtMTY2LjNsMC05LjdjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTM5Mi40IDM2OGwtMzM2LjkgMCAxMi45LTIyLjFDOTEuNyAzMDYgMTA0IDI2MC42IDEwNCAyMTQuNWwwLTE0LjVjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBzMTIwIDUzLjcgMTIwIDEyMGwwIDE0LjVjMCA0Ni4yIDEyLjMgOTEuNSAzNS41IDEzMS40TDM5Mi40IDM2OHpNMTU2LjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sSjM9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWVzc2FnZSIsaWNvbjpbNTEyLDUxMixbImNvbW1lbnQtYWx0Il0sImYyN2EiLCJNMjAzLjcgNTEyLjlzMCAwIDAgMGwtMzcuOCAyNi43Yy03LjMgNS4yLTE2LjkgNS44LTI0LjkgMS43UzEyOCA1MjkgMTI4IDUyMGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzMjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZsLTEyMC40IDAtOTEuOSA2NC45em02NC4zLTEwNC4xYzguMS01LjcgMTcuOC04LjggMjcuNy04LjhMNDE2IDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiA4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTYgMGMxMC40IDAgMTkuMyA2LjYgMjIuNiAxNS45IC45IDIuNSAxLjQgNS4yIDEuNCA4LjFsMCA0OS43YzMyLjctMjMuMSA2My4zLTQ0LjcgOTEuOS02NC45eiJdfSxqSXQ9SjMsbmdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZGl6enkiLGljb246WzUxMiw1MTIsWyJkaXp6eSJdLCJmNTY3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxWSXQ9bmdlLGxnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0LTg4IDAgMCA4MCA3MiAwem0xNi0xMjhsMC04MC04OCAwIDAgODAgODggMHptLTEzNiAwbDAtODAtODAgMCAwIDgwIDgwIDB6bS0xMjggMGwwLTgwLTg4IDAgMCA4MCA4OCAwek00OCAzNTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNzIgMCAwLTgwLTg4IDB6bTEzNiAwbDAgODAgODAgMCAwLTgwLTgwIDB6TTEyMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHoiXX0sVUl0PWxnZSxXSXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC11cCIsaWNvbjpbMzg0LDUxMixbOTc1N10sImYwYTYiLCJNNjQgNjRsMCAxNzcuNmM1LjItMSAxMC41LTEuNiAxNi0xLjZsMTYgMCAwLTE3NmMwLTguOC03LjItMTYtMTYtMTZTNjQgNTUuMiA2NCA2NHpNODAgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgNjYuMyA1My43IDEyMCAxMjAgMTIwbDQ4IDBjNTIuNSAwIDk3LjEtMzMuNyAxMTMuNC04MC43LTMuMSAuNS02LjIgLjctOS40IC43LTIwIDAtMzcuOS05LjItNDkuNy0yMy42LTkgNC45LTE5LjQgNy42LTMwLjMgNy42LTE1LjEgMC0yOS01LjMtNDAtMTQtMTEgOC44LTI0LjkgMTQtNDAgMTRsLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtODAgMHpNMCAzMjBsMCAwYzAtMTggNi0zNC42IDE2LTQ4TDE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBzNjQgMjguNyA2NCA2NGwwIDgyYzUuMS0xLjMgMTAuNS0yIDE2LTIgMjUuMyAwIDQ3LjIgMTQuNyA1Ny42IDM2IDctMi42IDE0LjUtNCAyMi40LTQgMjAgMCAzNy45IDkuMiA0OS43IDIzLjYgOS00LjkgMTkuNC03LjYgMzAuMy03LjYgMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDkyLjgtNzUuMiAxNjgtMTY4IDE2OGwtNDggMEM3NS4yIDUxMiAwIDQzNi44IDAgMzQ0bDAtMjR6bTMzNi02NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNMTYwIDI0MGM1LjUgMCAxMC45IC43IDE2IDJsMC0zNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDMyIDE2IDB6bTY0IDI0bDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjR6Il19LEdJdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk03MiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTY4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwYzQuNSAwIDguOSAxLjMgMTIuNyAzLjZsNjQgNDBjNyA0LjQgMTEuMyAxMi4xIDExLjMgMjAuNGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAuNy00Ni45LTI5LjMtMTQ1LjEgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmwxMDQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkw3MiAyMDhjLTM5LjggMC03Mi0zMi4yLTcyLTcyUzMyLjIgNjQgNzIgNjRsMjA5LjYgMGM0Ni43IDAgOTAuOSAyMS41IDExOS43IDU4LjNsNzguNCAxMDAuMWMyMC45IDI2LjcgMzIuMyA1OS43IDMyLjMgOTMuN0w1MTIgNDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA3LjljMC0yMy4yLTcuOC00NS44LTIyLjEtNjQuMUwzNjMuNSAxNTEuOWMtMTkuNy0yNS4yLTQ5LjktMzkuOS04MS45LTM5LjlMNzIgMTEyeiJdfSxLSXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWZ1bGwiLGljb246WzUxMiw1MTIsWzEyODk5NywxMjg5OTgsMTI4OTk5LDEyOWUzLDEyOTAwMSwxMjkwMDIsMTI5MDAzLDExMDM1LDExMDM2XSwiZjQ1YyIsIk00NDggNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LGNnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHoiXX0sWUl0PWNnZSxkZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYyYzUuMS0xLjMgMTAuNS0yIDE2LTJsMzIwIDBjNS41IDAgMTAuOSAuNyAxNiAybDAtMTYyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNNDggMzIwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAzMDRjLTguOCAwLTE2IDcuMi0xNiAxNnpNMCAzMjBMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTZ6bTIxNiA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxaSXQ9ZGdlLHVnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNTZsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxYSXQ9dWdlLHBnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0Mi43YzAtNC4yLTEuNy04LjMtNC43LTExLjNMMzIwIDg2LjYgMzIwIDE3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHptODAgMGwwIDgwIDEyOCAwIDAtODAtMTI4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjQyLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjhjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w0NDggNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDMyMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LFFJdD1wZ2UsaGdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc1LjkgNDAuNyAxNDIuNCAxMDEuNSAxNzguNy0zLjYtMTAuOS01LjUtMjIuNi01LjUtMzQuN2wwLTM3LjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDM3LjVjMCAxMi4xLTEuOSAyMy44LTUuNSAzNC43IDYwLjgtMzYuMyAxMDEuNS0xMDIuNyAxMDEuNS0xNzguN3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjgtNzUuN2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXMxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjN6bTI2My42LTIxLjFjNC41IDYuOCAzLjEgMTUuOS0zLjEgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41ek0zMjAgNDE2bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sSkl0PWhnZSxmZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE5My4xIDMyYy0xOC43IDAtMzYuMiA5LjQtNDYuNiAyNC45TDEyMC41IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNTYuNSAwLTI2LTM5LjFDMzU1LjEgNDEuNCAzMzcuNiAzMiAzMTguOSAzMkwxOTMuMSAzMnptLTYuNyA1MS42YzEuNS0yLjIgNC0zLjYgNi43LTMuNmwxMjUuNyAwYzIuNyAwIDUuMiAxLjMgNi43IDMuNmwzMy4yIDQ5LjhjNC41IDYuNyAxMS45IDEwLjcgMjAgMTAuN2w2OS4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsNjkuMyAwYzggMCAxNS41LTQgMjAtMTAuN2wzMy4yLTQ5Ljh6TTI1NiAzODRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0xOTIgMjcyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sZUF0PWZnZSxtZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0wIDI1NmMwLTI5LjYgNS01Ny45IDE0LjItODQuNGwxNy4zIDE2LjktNC42IDI3Yy00LjIgMjQuNCA1LjYgNDYuMiAyMiA1OS45IDkuOCAxMDUuOCA5OC44IDE4OC43IDIwNy4xIDE4OC43czE5Ny40LTgyLjggMjA3LjEtMTg4LjZjMTYuNC0xMy43IDI2LjEtMzUuNCAyMi01OS45bC00LjYtMjcgMTcuMy0xNi45YzkuMiAyNi40IDE0LjIgNTQuOCAxNC4yIDg0LjQgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2ek0yNTYgNDhjLTE1LjIgMC0zMCAxLjYtNDQuMyA0LjdMMjAxLjQgMzEuOEMxOTcgMjMgMTkxLjEgMTUuOCAxODQuMiAxMC4yIDIwNyAzLjYgMjMxLjEgMCAyNTYgMHM0OSAzLjYgNzEuOCAxMC4yQzMyMC45IDE1LjggMzE1IDIzIDMxMC42IDMxLjhMMzAwLjMgNTIuN0MyODYgNDkuNiAyNzEuMiA0OCAyNTYgNDh6TTM3Mi4yIDMwMi4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0zNTMuNyA1My4xYzUuOS0xMS45IDIyLjgtMTEuOSAyOC43IDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMzY4IDIxNiAzMjEuNSAyNDAuNWMtMTEuNyA2LjItMjUuNS0zLjgtMjMuMi0xNi45bDguOS01MS44LTM3LjctMzYuN2MtOS41LTkuMy00LjMtMjUuNCA4LjktMjcuM2w1Mi03LjYgMjMuMy00Ny4yem0tMTk1LjMgMGwyMy4zIDQ3LjIgNTIgNy42YzEzLjEgMS45IDE4LjQgMTggOC45IDI3LjNsLTM3LjcgMzYuNyA4LjkgNTEuOGMyLjIgMTMuMS0xMS41IDIzLTIzLjIgMTYuOUwxNDQgMjE2IDk3LjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMmM1LjktMTEuOSAyMi44LTExLjkgMjguNyAweiJdfSx0QXQ9bWdlLGFBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDgwQzIyMi44IDgwIDE2OS4yIDEwOS42IDEyOC4xIDE0Ny43IDg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOC4xIDM2NC4zIDE2OS4yIDQwMi40IDIyMi44IDQzMiAyODggNDMyczExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NiA1MTMgMjI2IDQ4Ni40IDE4My41IDQ0Ny45IDE0Ny43IDQwNi44IDEwOS42IDM1My4yIDgwIDI4OCA4MHpNOTUuNCAxMTIuNkMxNDIuNSA2OC44IDIwNy4yIDMyIDI4OCAzMnMxNDUuNSAzNi44IDE5Mi42IDgwLjZjNDYuOCA0My41IDc4LjEgOTUuNCA5MyAxMzEuMSAzLjMgNy45IDMuMyAxNi43IDAgMjQuNi0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xLTQ3LjEgNDMuNy0xMTEuOCA4MC42LTE5Mi42IDgwLjZTMTQyLjUgNDQzLjIgOTUuNCAzOTkuNGMtNDYuOC00My41LTc4LjEtOTUuNC05My0xMzEuMS0zLjMtNy45LTMuMy0xNi43IDAtMjQuNiAxNC45LTM1LjcgNDYuMi04Ny43IDkzLTEzMS4xek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMjkuNi0xNi4xLTU1LjUtNDAtNjkuMy0xLjQgNTkuNy00OS42IDEwNy45LTEwOS4zIDEwOS4zIDEzLjggMjMuOSAzOS43IDQwIDY5LjMgNDB6bS03OS42LTg4LjRjMi41IC4zIDUgLjQgNy42IC40IDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMi42LS4yLTUuMS0uNC03LjYtMzcuNCAzLjktNjcuMiAzMy43LTcxLjEgNzEuMXptNDUuNi0xMTVjMTAuOC0zIDIyLjItNC41IDMzLjktNC41IDguOCAwIDE3LjUgLjkgMjUuOCAyLjYgLjMgLjEgLjUgLjEgLjggLjIgNTcuOSAxMi4yIDEwMS40IDYzLjcgMTAxLjQgMTI1LjIgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNjEuNiAwLTExMy00My41LTEyNS4yLTEwMS40LTEuOC04LjYtMi44LTE3LjUtMi44LTI2LjYgMC0xMSAxLjQtMjEuOCA0LTMyIC4yLS43IC4zLTEuMyAuNS0xLjkgMTEuOS00My40IDQ2LjEtNzcuNiA4OS41LTg5LjV6Il19LGdnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNDEuOCAxMi4zIDgwLjcgMzMuNiAxMTMuMyA4LjIgNDQuNyA0Ny4zIDc4LjYgOTQuMyA3OC43IDI0LjcgMTAuMyA1MS43IDE2IDgwLjEgMTYgMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4ek0yODggMzUyYy01LjUgMC0xMC45IC42LTE2IDEuOCAwLS42IDAtMS4yIDAtMS44IDAtMTYuMi00LTMxLjUtMTEuMS00NC45IDguNy0yIDE3LjgtMy4xIDI3LjEtMy4xIDQwLjIgMCA3NS43IDE5LjggOTcuNSA1MCA3LjcgMTAuOCA1LjMgMjUuOC01LjUgMzMuNXMtMjUuOCA1LjMtMzMuNS01LjVjLTEzLjEtMTguMi0zNC40LTMwLTU4LjUtMzB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODUuNCAyNzYuOGM2LjUgNy44IDEyLjYgMTYuMSAxOC4zIDI0LjYgOSAxMy40IDIwLjMgMzAuMiAyMC4zIDQ3LjQgMCAyOC4zLTIxLjUgNTEuMi00OCA1MS4ycy00OC0yMi45LTQ4LTUxLjJjMC0xNy4yIDExLjItMzQgMjAuMy00Ny40IDUuNy04LjUgMTEuOS0xNi43IDE4LjMtMjQuNiAyLjQtMi45IDUuNy00LjggOS40LTQuOHM3IDEuOSA5LjQgNC44eiJdfSxzQXQ9Z2dlLGJnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNGwwIDU2LTQ4IDBjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNDYuNyAyMC43IDgwLjQgNDMuNiAxMDMuNCA4LjEgOC4yIDE2LjUgMTQuOSAyNC4zIDIwLjQgOS4yIDYuNSAyMS43IDUuNyAzMC4xLTEuOXMxMC4yLTIwIDQuNS0yOS44Yy0zLjYtNi4zLTYuNS0xNC45LTYuNS0yNi43IDAtMzYuMiAyOS4zLTY1LjUgNjUuNS02NS41bDQ2LjUgMCAwIDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDd6bTcgOTdsMC0yMi4xIDc4LjEgNzguMS03OC4xIDc4LjEgMC0yMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0TDMzOCAxOTJjLTUwLjkgMC05My45IDMzLjUtMTA4LjMgNzkuNi0zLjMtOS40LTUuMi0xOS44LTUuMi0zMS42IDAtNjEuOSA1MC4xLTExMiAxMTItMTEybDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR6bS0zMjAtOGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQgMHoiXX0saUF0PWJnZSx2Z2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTI0MCA0MzJMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE3Ni04OCAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDg4ek0zODAuMSAzMjBMMjg4IDQxMi4xIDI4OCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjguMSAwek0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQyOS4zIDMzOC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6Il19LHJBdD12Z2UseGdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgNDAwek03My4yIDM1Mmw2NC42IDAtNzkuNS04OC4zQzUxLjcgMjU2LjMgNDggMjQ2LjggNDggMjM2LjlMNDggMjA0YzAtMTYuMSAxMS45LTI5LjUgMjcuNC0zMS43IDExLjgtMS43IDIwLjYtMTEuOCAyMC42LTIzLjhMOTYgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjQgNy4yIDAgMTMuNiAzLjEgMTggOC4xIDQuNiA1LjIgMTEuMSA4LjEgMTggOC4xczEzLjQtMyAxOC04LjFjNC40LTUgMTAuOC04LjEgMTgtOC4xIDguNSAwIDE1LjkgNC40IDIwLjIgMTEuMSA2LjkgMTAuNyAyMC45IDE0LjIgMzIgOCAzLjUtMS45IDcuNC0zLjEgMTEuOC0zLjEgMTAuNiAwIDE5LjcgNi45IDIyLjggMTYuNiAzLjggMTEuNyAxNS45IDE4LjcgMjggMTYgMS43LS40IDMuNC0uNiA1LjItLjYgMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA5Mi4yYzAgMTQuNC0zLjUgMjguNS0xMC4yIDQxLjJsLTUyLjIgOTguNiA1NC4zIDAgNDAuMy03Ni4yYzEwLjQtMTkuNiAxNS44LTQxLjUgMTUuOC02My42bDAtOTIuMmMwLTM4LjQtMzAuMS02OS44LTY4LjEtNzEuOS0xMi45LTE5LjMtMzQuOS0zMi4xLTU5LjktMzIuMS01LjcgMC0xMS4yIC43LTE2LjUgMS45LTEyLjctMTEuMS0yOS4zLTE3LjktNDcuNS0xNy45LTEzLjEgMC0yNS40IDMuNS0zNiA5LjYtMTAuNi02LjEtMjIuOS05LjYtMzYtOS42LTM5LjggMC03MiAzMi4yLTcyIDcybDAgNTguN0MxOS43IDE0MyAwIDE3MS4yIDAgMjA0bDAgMzIuOWMwIDIxLjcgOCA0Mi43IDIyLjYgNTguOUw3My4yIDM1MnoiXX0sb0F0PXhnZSxuQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTMyNS4zIDkwLjhjOS4xLTQuOCAyMC42LTMuMyAyOC4yIDQuM2wzOS44IDM5LjggMy43IDMuM2M5LjEgNy4xIDIwLjkgMTAgMzIuNCA3LjdsNDYuNC05LjMgMy41LS40YzgtLjQgMTUuOCAzLjIgMjAuNiA5LjggNS41IDcuNiA2LjEgMTcuNiAxLjYgMjUuOGwtMTEyLjYgMjAyLjYgNTEuNSA3MC45IDEuOCAyLjdjNCA2LjYgNi4yIDE0LjIgNi4yIDIyIDAgMjMuMy0xOC45IDQyLjEtNDIuMSA0Mi4xbC0yOTkuOCAwYy0yMS44IDAtMzkuOC0xNi42LTQxLjktMzcuOGwtLjItNC4zIC4xLTMuM2MuNi03LjcgMy40LTE1LjEgNy45LTIxLjRsNTEuNS03MC45LTExMi41LTIwMi42Yy00LjUtOC4yLTMuOS0xOC4zIDEuNi0yNS44czE0LjktMTEuMiAyNC4xLTkuNGw0Ni40IDkuM2MxMy4xIDIuNiAyNi43LTEuNSAzNi4xLTEwLjlMMTU5LjUgOTUgMTYzIDkyLjJjOC42LTUuOCAyMC4xLTUuNiAyOC41IDEuMWw0MCAzMiAyLjggMi4xYzE0LjQgOS42IDMzLjUgOC45IDQ3LjItMi4xbDQwLTMyIDMuOC0yLjV6TTE2NC43IDQwMGwtNDYuNiA2NCAyNzYuNyAwLTQ2LjYtNjQtMTgzLjYgMHpNMzExLjUgMTYyLjhjLTMwLjEgMjQuMS03Mi4xIDI1LjYtMTAzLjggNC41bC02LjItNC41LTIzLjMtMTguNi0yNC42IDI0LjZjLTE5LjggMTkuOC00Ny43IDI4LjktNzUuMSAyNC44bDg4LjEgMTU4LjUgMTc5LjggMCA4OC0xNTguNWMtMjUuNyAzLjgtNTEuNy0zLjktNzEuMS0yMWwtNC0zLjctMjQuNi0yNC42LTIzLjIgMTguNnpNMjU2LjUgNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgweiJdfSx5Z2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRlYXJzIixpY29uOls2NDAsNTEyLFsxMjg1MTQsImdyaW4tdGVhcnMiXSwiZjU4OCIsIk01MDQuMSAzNTNDNTEyLjkgMzY3LjIgNTI1LjMgMzc5IDUzOS44IDM4Ny4yIDQ5NS4xIDQ2MiA0MTMuNCA1MTIgMzIwIDUxMlMxNDQuOSA0NjIgMTAwLjIgMzg3LjJjMTQuNi04LjIgMjYuOS0yMCAzNS44LTM0LjMgMzQuOSA2NiAxMDQuMiAxMTEgMTg0LjEgMTExczE0OS4yLTQ1IDE4NC4xLTExMXptMTYuNC0xNTIuNUM0OTYuMiAxMTIuNiA0MTUuNyA0OCAzMjAgNDhTMTQzLjggMTEyLjYgMTE5LjUgMjAwLjVjLTEwLjYtNC44LTIyLjctNi44LTM1LjQtNWwtMTMuNCAxLjlDOTcuMiA4NC4zIDE5OC44IDAgMzIwIDBTNTQyLjggODQuMyA1NjkuMyAxOTcuNGwtMTMuNC0xLjljLTEyLjctMS44LTI0LjggLjItMzUuNCA1ek00NTUuOCAzMjBjLTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44ek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAgMjguNC0yMyA1MS40LTUxLjQgNTEuNC0yNS42IDAtNDcuMy0xOC44LTUwLjktNDQuMUw1MzEgMjYxLjFjLTEuNS0xMC42IDcuNS0xOS42IDE4LjEtMTguMWw0Ni43IDYuN2MyNS4zIDMuNiA0NC4xIDI1LjMgNDQuMSA1MC45em0tNjQwIDBjMC0yNS42IDE4LjgtNDcuMyA0NC4xLTUwLjlMOTAuOSAyNDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDMzMy4yIDc3IDM1MiA1MS40IDM1MiAyMyAzNTIgMCAzMjkgMCAzMDAuNnoiXX0sbEF0PXlnZSx3Z2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGVuLXRvLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImVkaXQiXSwiZjA0NCIsIk00NDEgNTguOUw0NTMuMSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw0MjQgMTM0LjEgMzc3LjkgODggNDA3IDU4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6TTIwOS44IDI1Ni4yTDM0NCAxMjEuOSAzOTAuMSAxNjggMjU1LjggMzAyLjJjLTIuOSAyLjktNi41IDUtMTAuNCA2LjFsLTU4LjUgMTYuNyAxNi43LTU4LjVjMS4xLTMuOSAzLjItNy41IDYuMS0xMC40ek0zNzMuMSAyNUwxNzUuOCAyMjIuMmMtOC43IDguNy0xNSAxOS40LTE4LjMgMzEuMWwtMjguNiAxMDBjLTIuNCA4LjQtLjEgMTcuNCA2LjEgMjMuNnMxNS4yIDguNSAyMy42IDYuMWwxMDAtMjguNmMxMS44LTMuNCAyMi41LTkuNyAzMS4xLTE4LjNMNDg3IDEzOC45YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOEw0NzQuOSAyNUM0NDYuOC0zLjEgNDAxLjItMy4xIDM3My4xIDI1ek04OCA2NEMzOS40IDY0IDAgMTAzLjQgMCAxNTJMMCA0MjRjMCA0OC42IDM5LjQgODggODggODhsMjcyIDBjNDguNiAwIDg4LTM5LjQgODgtODhsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBMODggNDY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTI3MmMwLTIyLjEgMTcuOS00MCA0MC00MGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NHoiXX0sY0F0PXdnZSxrZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTMwLjIgMTUuOWMtOC44LTEwLjctMTguNS0yMC45LTI5LTMwLTMtMi42LTcuNC0yLjYtMTAuNCAwLTEwLjUgOS4xLTIwLjEgMTkuMy0yOSAzMC0xNC43IDE3LjgtMjkuOCA0MC4xLTI5LjggNjQuMSAwIDM2LjQgMjcuNiA2NCA2NCA2NHM2NC0yNy42IDY0LTY0YzAtMjQtMTUuMi00Ni4zLTI5LjgtNjQuMXptLTEzMiA4LjlDMzY0LjggOC45IDMyNy40IDAgMjg4IDAgMTQ2LjYgMCAzMiAxMTQuNiAzMiAyNTZTMTQ2LjYgNTEyIDI4OCA1MTIgNTQ0IDM5Ny40IDU0NCAyNTZjMC0yNC40LTMuNC00OC05LjgtNzAuNC0xMS45IDQuMi0yNC43IDYuNC0zOC4yIDYuNC0zLjQgMC02LjgtLjEtMTAuMi0uNCA2LjYgMjAuMyAxMC4yIDQxLjkgMTAuMiA2NC40IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM4MCAzNzAuOSA4MCAyNTYgMTczLjEgNDggMjg4IDQ4YzM0LjggMCA2Ny41IDguNSA5Ni4zIDIzLjYgMS40LTE3LjQgNi45LTMzLjEgMTMuOC00Ni44ek00MjMuOCAzMjBjNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDE5LjggNTUuOSA3My4xIDk1LjkgMTM1LjggOTUuOSA2Mi43IDAgMTE2LTQwLjEgMTM1LjgtOTZ6TTE4MCAyMDhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6bTE4OC0yOGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6Il19LGRBdD1rZ2UsU2dlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sdUF0PVNnZSxfZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LHBBdD1fZ2UsaEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNMjkwLjUgMjg3LjdMNDkxLjQgODYuOSAzNTkgNDU2LjMgMjkwLjUgMjg3Ljd6TTQ1Ny40IDUzTDI1Ni42IDI1My44IDg4IDE4NS4zIDQ1Ny40IDUzek0zOC4xIDIxNi44bDIwNS44IDgzLjYgODMuNiAyMDUuOGM1LjMgMTMuMSAxOC4xIDIxLjcgMzIuMyAyMS43IDE0LjcgMCAyNy44LTkuMiAzMi44LTIzLjFMNTcwLjYgOGMzLjUtOS44IDEtMjAuNi02LjMtMjhzLTE4LjItOS44LTI4LTYuM0wzOS40IDE1MS43Yy0xMy45IDUtMjMuMSAxOC4xLTIzLjEgMzIuOCAwIDE0LjIgOC42IDI3IDIxLjcgMzIuM3oiXX0sZkF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYXJ0IixpY29uOls1MTIsNTEyLFsxMjgxNTMsMTI4MTU0LDEyODE1NSwxMjgxNTYsMTI4NDIwLDEyOTI5MywxMjkyOTQsMTI5NTA1LDk4MjksMTAwODQsNjE1NzhdLCJmMDA0IiwiTTM3OC45IDgwYy0yNy4zIDAtNTMgMTMuMS02OSAzNS4ybC0zNC40IDQ3LjZjLTQuNSA2LjItMTEuNyA5LjktMTkuNCA5LjlzLTE0LjktMy43LTE5LjQtOS45bC0zNC40LTQ3LjZjLTE2LTIyLjEtNDEuNy0zNS4yLTY5LTM1LjItNDcgMC04NS4xIDM4LjEtODUuMSA4NS4xIDAgNDkuOSAzMiA5OC40IDY4LjEgMTQyLjMgNDEuMSA1MCA5MS40IDk0IDEyNS45IDEyMC4zIDMuMiAyLjQgNy45IDQuMiAxNCA0LjJzMTAuOC0xLjggMTQtNC4yYzM0LjUtMjYuMyA4NC44LTcwLjQgMTI1LjktMTIwLjMgMzYuMi00My45IDY4LjEtOTIuNCA2OC4xLTE0Mi4zIDAtNDctMzguMS04NS4xLTg1LjEtODUuMXpNMjcxIDg3LjFjMjUtMzQuNiA2NS4yLTU1LjEgMTA3LjktNTUuMSA3My41IDAgMTMzLjEgNTkuNiAxMzMuMSAxMzMuMSAwIDY4LjYtNDIuOSAxMjguOS03OS4xIDE3Mi44LTQ0LjEgNTMuNi05Ny4zIDEwMC4xLTEzMy44IDEyNy45LTEyLjMgOS40LTI3LjUgMTQuMS00My4xIDE0LjFzLTMwLjgtNC43LTQzLjEtMTQuMUMxNzYuNCA0MzggMTIzLjIgMzkxLjUgNzkuMSAzMzggNDIuOSAyOTQuMSAwIDIzMy43IDAgMTY1LjEgMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43eiJdfSxacmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA0OCAwIDAtNjQgMzg5LjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6TTgwIDQwMGwwLTI1NiAzNTYuNCAwLTQ4LjIgMTA4LjVjLTUuNSAxMi40LTUuNSAyNi42IDAgMzlMNDM2LjQgNDAwIDgwIDQwMHoiXX0sbUF0PVpyZSxnQXQ9WnJlLGJBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDY0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMzA0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwem0tNjQtMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0eiJdfSx2QXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTk3LjUgNDAwbDUwLTE2MCAzNzkuNCAwLTUwIDE2MC0zNzkuNCAwem0xOTAuNyA0OEw0NzcgNDQ4YzIxIDAgMzkuNi0xMy42IDQ1LjgtMzMuN2w1MC0xNjBjOS43LTMwLjktMTMuNC02Mi4zLTQ1LjgtNjIuM2wtMzc5LjQgMGMtMjEgMC0zOS42IDEzLjYtNDUuOCAzMy43TDgwLjIgMjk0LjQgODAuMiA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjgyLjkgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2bDExNy4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDQ4IDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzMwLjkgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI3My4zIDQ0LjhDMjYyLjIgMzYuNSAyNDguOCAzMiAyMzQuOSAzMkw5Ni4yIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMHoiXX0seEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSx5QXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMjg1LjctMTUuOGMxMC44IDIuNiAxOC40IDEyLjIgMTguNCAyMy4zbDAgMzg3LjFjMCA5LTUuMSAxNy4zLTEzLjEgMjEuNEwxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM0wxOTMuMSAxMjUuMyAyNTguOC0zLjNjNS05LjkgMTYuMi0xNSAyNy0xMi40ek0yNTYuMSAxMDcuNEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDkyLjItNDYuOSAwLTI3Mi42eiJdfSx3QXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTQwMi42IDUwLjJjLTUuNCAxLjctMTEuMyAxLjgtMTYuMi0uOS01LjgtMy4yLTExLjgtNi4yLTE3LjgtOC45LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMy44LTUuNS03LjgtMTAuOC0xMi0xNi0zLjUtNC40LTQuNS0xMC4yLTMuOC0xNS44IC4yLTEuOSAuNC0zLjkgLjQtNS45IDAtMjYuMS0yMS4yLTQ3LjItNDcuMi00Ny4yLTQuOSAwLTkuNyAuOC0xNC4yIDIuMnpNMzIuNSAxMzIuOWMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNi4xIDIuOC0xMiA1LjctMTcuOCA4LjktNC45IDIuNy0xMC45IDIuNi0xNi4yIC45LTQuNS0xLjQtOS4yLTIuMi0xNC4yLTIuMi0yNi4xIDAtNDcuMiAyMS4yLTQ3LjIgNDcuMiAwIDIgLjEgNCAuNCA1LjkgLjcgNS42LS4zIDExLjQtMy44IDE1LjgtNC4yIDUuMi04LjIgMTAuNS0xMiAxNnpNNDMyIDI4OGExNzYgMTc2IDAgMSAwIC0zNTIgMCAxNzYgMTc2IDAgMSAwIDM1MiAwek0zOTYuNSA0NjIuNUMzNTguMSA0OTMuNCAzMDkuMiA1MTIgMjU2IDUxMnMtMTAyLjEtMTguNi0xNDAuNS00OS41TDczIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Mi41LTQyLjVDNTAuNiAzOTAuMSAzMiAzNDEuMiAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTMuMi0xOC42IDEwMi4xLTQ5LjUgMTQwLjVMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Mi41LTQyLjV6TTI4MCAxODRsMCA5NC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy00LjUtNC41LTctMTAuNi03LTE3bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LGtBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMTY4IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDguNC0xLjQgMTYuNS00LjEgMjRMNDQwIDQzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxNjggODB6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJMMCAxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDI3MiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMzA0YzAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDQ4MHpNMTkyIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6bTE1MiAyNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMTYgMjU2bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFhyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3NwaXRhbCIsaWNvbjpbNTc2LDUxMixbMTI3OTczLDYyNTg5LCJob3NwaXRhbC1hbHQiLCJob3NwaXRhbC13aWRlIl0sImYwZjgiLCJNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEwxNzYgMHpNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI3MmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI3MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTcyek0xMTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTk2IDMzNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMjAgMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNi0xMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjY0IDEwNGwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sU0F0PVhyZSxfQXQ9WHJlLE1nZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTkybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTQ4IDExMmwwLTk2IDk2IDAgMCA5Ni05NiAweiJdfSxNQXQ9TWdlLHpBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk00OC4yIDY2LjhjLS4xLS44LS4yLTEuNy0uMi0yLjVsMC0uMmMwLTguOCA3LjItMTYgMTYtMTYgLjkgMCAxLjkgLjEgMi44IC4yIDcuNSAxLjMgMTMuMiA3LjkgMTMuMiAxNS44IDAgOC44LTcuMiAxNi0xNiAxNi03LjkgMC0xNC41LTUuNy0xNS44LTEzLjJ6TTAgNjRjMCAyNi45IDE2LjUgNDkuOSA0MCA1OS4zbDAgMTA1LjNjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NHptMzY4IDBhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMzI0LjcgODhjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAxMDUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTIwMS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMTA1LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMjAxLjMgMHpNMzg0IDI3MmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTgwIDI4OGMwIDcuOS01LjcgMTQuNS0xMy4yIDE1LjgtLjggLjEtMS43IC4yLTIuNSAuMmwtLjIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtLjkgLjEtMS45IC4yLTIuOCAxLjMtNy41IDcuOS0xMy4yIDE1LjgtMTMuMiA4LjggMCAxNiA3LjIgMTYgMTZ6bTQzNi43LTQwYzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTIwLjctNDggMCAwIDIwLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MGwtNTIuNyAwIDAgOS42YzEwLjcgMTAuOSAxOS4xIDIzLjkgMjQuNiAzOC40bDI4IDB6bTU5LjMtOGExNiAxNiAwIDEgMSAwLTMyIDE2IDE2IDAgMSAxIDAgMzJ6TTI3MS44IDQ1MC43YTE2IDE2IDAgMSAxIC0zMS41LTUuNSAxNiAxNiAwIDEgMSAzMS41IDUuNXptMzAxLjUgMTNjLTcuNS0xLjMtMTMuMi03LjktMTMuMi0xNS44IDAtOC44IDcuMi0xNiAxNi0xNiA3LjkgMCAxNC41IDUuNyAxNS44IDEzLjJsMCAuMWMuMSAuOSAuMiAxLjggLjIgMi43IDAgOC44LTcuMiAxNi0xNiAxNi0uOSAwLTEuOS0uMS0yLjgtLjJ6Il19LENBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50IixpY29uOls1MTIsNTEyLFsxMjg0ODksNjE2NjldLCJmMDc1IiwiTTUxLjkgMzg0LjlDMTkuMyAzNDQuNiAwIDI5NC40IDAgMjQwIDAgMTA3LjUgMTE0LjYgMCAyNTYgMFM1MTIgMTA3LjUgNTEyIDI0MCAzOTcuNCA0ODAgMjU2IDQ4MGMtMzYuNSAwLTcxLjItNy4yLTEwMi42LTIwTDM3IDUwOS45Yy0zLjcgMS42LTcuNSAyLjEtMTEuNSAyLjEtMTQuMSAwLTI1LjUtMTEuNC0yNS41LTI1LjUgMC00LjMgMS4xLTguNSAzLjEtMTIuMmw0OC44LTg5LjR6bTM3LjMtMzAuMmMxMi4yIDE1LjEgMTQuMSAzNi4xIDQuOCA1My4ybC0xOCAzMy4xIDU4LjUtMjUuMWMxMS44LTUuMSAyNS4yLTUuMiAzNy4xLS4zIDI1LjcgMTAuNSA1NC4yIDE2LjQgODQuMyAxNi40IDExNy44IDAgMjA4LTg4LjggMjA4LTE5MlMzNzMuOCA0OCAyNTYgNDggNDggMTM2LjggNDggMjQwYzAgNDIuOCAxNS4xIDgyLjQgNDEuMiAxMTQuN3oiXX0sVEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXBhd24iLGljb246WzM4NCw1MTIsWzk4MjNdLCJmNDQzIiwiTTE5Mi0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDI3LjYtOS4zIDUyLjktMjQuOSA3My4yIDkuOCAzIDE2LjkgMTIuMSAxNi45IDIyLjggMCAxMy4zLTEwLjcgMjQtMjQgMjRsLS42IDAgMjQuNiAxNjAgNTMuNiA2N2M2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNjMuNCA1MTJjLTI2LjIgMC00Ny40LTIxLjItNDcuNC00Ny40IDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZsNTMuNi02NyAyNC42LTE2MC0uNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjggNy4xLTE5LjggMTYuOS0yMi44LTE1LjYtMjAuMy0yNC45LTQ1LjYtMjQuOS03My4yIDAtNjYuMyA1My43LTEyMCAxMjAtMTIwek0xMTUuOSA0MDBsLTUxLjIgNjQgMjU0LjcgMC01MS4yLTY0LTE1Mi4yIDB6bTM2LjItMTg0LjdsLTIxIDEzNi43IDEyMS45IDAtMjEtMTM2LjctMS4xLTcuMy03Ny42IDAtMS4xIDcuM3pNMTkyIDE2YTcyIDcyIDAgMSAwIDAgMTQ0IDcyIDcyIDAgMSAwIDAtMTQ0eiJdfSwkQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItcGx1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MSIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xMDQgNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sREF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsaXBib2FyZCIsaWNvbjpbMzg0LDUxMixbMTI4MjAzXSwiZjMyOCIsIk0yMzIgOTZsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptMCA0OGMzNy4xIDAgNjcuNi0yOCA3MS42LTY0TDMyMCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzNTJjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNi40IDBjNCAzNiAzNC41IDY0IDcxLjYgNjRsODAgMHpNMjkxLjkgMzJDMjc5IDEyLjcgMjU3IDAgMjMyIDBMMTUyIDBjLTI1IDAtNDcgMTIuNy01OS45IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTI4LjEgMHoiXX0sTEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRodW1icy1kb3duIixpY29uOls1MTIsNTEyLFsxMjgwNzgsNjE1NzZdLCJmMTY1IiwiTTM2MCAzMmw3LjQgLjRjMzUgMy42IDYyLjUgMzIuMiA2NC40IDY3LjcgMTcuOCAxMS44IDMwLjEgMzEuNCAzMiA1My45bC4yIDZjMCA1LjctLjcgMTEuMi0yIDE2LjUgMTAuMiAxMS41IDE2LjggMjYuMyAxNy44IDQyLjdsLjIgNC44YzAgMTMuMi0zLjYgMjUuNC05LjggMzYgNC45IDguNCA4LjIgMTcuOSA5LjMgMjhsLjQgOGMwIDM3LjMtMjguMyA2Ny45LTY0LjYgNzEuNmwtNy40IC40LTEwOS43IDAgMTQuMSAzMCAzLjEgNy42YzEyLjUgMzUuNy0xLjggNzUuNS0zNC4yIDk1bC03LjIgMy45Yy0zNy41IDE3LjYtODEuNyAzLjYtMTAyLjYtMzEuMmwtLjYtLjktMi43LTUtLjYtMS4yLTMwLjEtNjRjLTkuNCAxNy44LTI4IDI5LjktNDkuNSAyOS45bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDE1MmMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEyLjQgMCAyMy45IDQuMSAzMy4yIDExIDEzLjItMjEuNCAzMi0zOS40IDU1LTUxLjZsMTIuMi02LjUgLjctLjMgNi42LTMuMiAuNy0uMyA3LjEtM2MxNi43LTYuNiAzNC41LTkuOSA1Mi42LTkuOUwzNjAgMzJ6TTI1NS45IDgwYy0xMiAwLTIzLjkgMi4zLTM1LjEgNi42bC00LjcgMi01LjMgMi42IDAgMC0xMi4yIDYuNWMtMjkuMiAxNS41LTQ4LjMgNDQuOS01MC43IDc3LjZsLS4yIDggMCAxMTIuOSAuMSA0LjFjLjUgOC4yIDIuNSAxNi4yIDYgMjMuN2w1Ni44IDEyMC45IDIuMSAzLjhjOC40IDEzLjcgMjYgMTkuMSA0MC44IDEyLjJsMi45LTEuNmMxMy03LjggMTguNy0yMy43IDEzLjctMzhsLTEuMi0zLTMwLjItNjQuMmMtMy41LTcuNC0yLjktMTYuMSAxLjUtMjMuMXMxMi0xMS4xIDIwLjItMTEuMWwxNDcuNSAwIDIuNC0uMWMxMS4zLTEuMSAyMC4zLTEwLjEgMjEuNC0yMS40bC4xLTIuNWMwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM0LjQtMy45IDcuNC05LjMgOC0xNS4zbC4yLTIuN2MwLTguNC00LjQtMTUuOS0xMS4yLTIwLjItMTAuNy02LjktMTQuMi0yMC45LTgtMzIgMS41LTIuNiAyLjUtNS42IDIuOS04LjZsLjItMy4yYzAtMTAuNi02LjktMTkuNi0xNi42LTIyLjgtMTEuNy0zLjgtMTguNy0xNS45LTE2LTI4IC4yLS45IC4zLTEuOCAuNC0yLjZsLjItMi42YzAtMTIuNC05LjUtMjIuNi0yMS42LTIzLjhMMzYwIDgwIDI1NS45IDgwek01NiAxNDRjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAweiJdfSxFQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNMjU2IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE2MCAzMjBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDE2Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LHpnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMjMwLjcgODkuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sUEF0PXpnZSxJQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk0yMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCA4MS44IDk4LjFjMjQuNyAyOS42IDM4LjIgNjcgMzguMiAxMDUuNiAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZsLTguNiA4LjYgNDYuNSA1OC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw0Ny40IDUxMkMyMS4yIDUxMiAwIDQ5MC44IDAgNDY0LjYgMCA0NTMuOSAzLjcgNDQzLjQgMTAuNCA0MzVsNDYuNS01OC4yLTguNi04LjZDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTIwIDQ4IDEwNCA0OEM5MC43IDQ4IDgwIDM3LjMgODAgMjRTOTAuNyAwIDEwNCAwTDIxNiAwek05NC40IDQwNi44bC00NS43IDU3LjIgMjIyLjcgMC00NS43LTU3LjEtNS41LTYuOS0xMjAuMyAwLTUuNSA2Ljh6TTE1Ni45IDc4LjdMNzUuMSAxNzYuOGMtMTUuMyAxOC40LTI0LjYgNDEtMjYuNyA2NC43TDQ4IDI1MS43YzAgMzEgMTIuMyA2MC43IDM0LjIgODIuN2wxNy43IDE3LjcgMTIwLjIgMGM2LjItNi4yIDEyLjEtMTIuMSAxNy44LTE3LjcgMjEuOS0yMS45IDM0LjItNTEuNiAzNC4yLTgyLjZsLS40LTEwLjJjLTEuNS0xNy02LjctMzMuMy0xNS4yLTQ4TDIwOSAyNDFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTEuOC01MS44LTYzLjctNzYuNS0zLjEtMy44LTMuMSAzLjh6Il19LEFBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNTEyIDQxNmMwIDM1LjMtMjguNSA2NC02My45IDY0TDY0IDQ4MGMtMzUuNCAwLTY0LTI4LjctNjQtNjRMMCAxNjRjLjEtMTUuNSA3LjgtMzAgMjAuNS0zOC44TDIwNi0yLjdjMzAuMS0yMC43IDY5LjgtMjAuNyA5OS45IDBMNDkxLjUgMTI1LjJjMTIuOCA4LjggMjAuNCAyMy4zIDIwLjUgMzguOGwwIDI1MnpNNjQgNDMybDM4NC4xIDBjOC44IDAgMTUuOS03LjEgMTUuOS0xNmwwLTE5MS43LTE1NC44IDExNy40Yy0zMS40IDIzLjktNzQuOSAyMy45LTEwNi40IDBMNDggMjI0LjMgNDggNDE2YzAgOC45IDcuMiAxNiAxNiAxNnpNNDYzLjYgMTY0LjRMMjc4LjcgMzYuOGMtMTMuNy05LjQtMzEuNy05LjQtNDUuNCAwTDQ4LjQgMTY0LjQgMjMxLjggMzAzLjVjMTQuMyAxMC44IDM0LjEgMTAuOCA0OC40IDBMNDYzLjYgMTY0LjR6Il19LHVoPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjE1MzIsInRpbWVzLWNpcmNsZSIsInhtYXJrLWNpcmNsZSJdLCJmMDU3IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sTkF0PXVoLFJBdD11aCxDZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXVwIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXVwIl0sImYxNTEiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIyNCA2NGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3oiXX0sT0F0PUNnZSxGQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTkuNCA0MzJsLTEzNC44IDBjLTE1LjggMC0yOC42LTEyLjgtMjguNi0yOC42IDAtNi40IDIuMS0xMi41IDYtMTcuNmw2Ny42LTg2LjlDMTc1IDI5MiAxODMuMyAyODggMTkyIDI4OHMxNyA0IDIyLjQgMTAuOUwyODIgMzg1LjljMy45IDUgNiAxMS4yIDYgMTcuNiAwIDE1LjgtMTIuOCAyOC42LTI4LjYgMjguNnpNMTEyIDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFRnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtcmlnaHQiXSwiZjE1MiIsIk00MDAgOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMHpNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42eiJdfSxCQXQ9VGdlLEViPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN1biIsaWNvbjpbNTc2LDUxMixbOTcyOF0sImYxODUiLCJNMjg4LTMyYzggMCAxNS40IDQgMTkuOSAxMC42bDU4LjggODcuNCAxMDMuNC0yMC4yYzcuOC0xLjUgMTUuOSAuOSAyMS42IDYuNnM4LjEgMTMuOCA2LjYgMjEuNkw0NzggMTc3LjMgNTY1LjQgMjM2LjFDNTcyIDI0MC41IDU3NiAyNDggNTc2IDI1NnMtNCAxNS40LTEwLjYgMTkuOUw0NzggMzM0LjcgNDk4LjIgNDM4YzEuNSA3LjgtLjkgMTUuOS02LjYgMjEuNnMtMTMuOCA4LjEtMjEuNiA2LjZMMzY2LjcgNDQ2IDMwNy45IDUzMy40QzMwMy40IDU0MCAyOTYgNTQ0IDI4OCA1NDRzLTE1LjQtNC0xOS45LTEwLjZMMjA5LjMgNDQ2IDEwNS45IDQ2Ni4yYy03LjggMS41LTE1LjktLjktMjEuNi02LjZzLTguMS0xMy44LTYuNi0yMS42TDk4IDMzNC43IDEwLjYgMjc1LjlDNCAyNzEuNCAwIDI2NCAwIDI1NnM0LTE1LjQgMTAuNi0xOS45TDk4IDE3Ny4zIDc3LjggNzMuOWMtMS41LTcuOCAuOS0xNS45IDYuNi0yMS42czEzLjgtOC4xIDIxLjYtNi42bDEwMy4zIDIwLjIgNTguOC04Ny40IDEuOC0yLjNDMjc0LjQtMjkgMjgxLTMyIDI4OC0zMnptLTQ3LjggMTM4Yy01LjQgOC0xNSAxMi0yNC41IDEwLjJsLTg0LTE2LjQgMTYuNCA4NGMxLjggOS41LTIuMiAxOS4xLTEwLjIgMjQuNUw2NyAyNTYgMTM4IDMwMy44YzggNS40IDEyIDE1IDEwLjIgMjQuNWwtMTYuNCA4NCA4NC0xNi40IDMuNS0uNGM4LjMtLjQgMTYuMyAzLjYgMjEgMTAuNmw0Ny44IDcxIDQ3LjgtNzEgMi4yLTIuOGM1LjYtNi4xIDE0LTkgMjIuMy03LjNsODQgMTYuNC0xNi40LTg0Yy0xLjgtOS41IDIuMi0xOS4xIDEwLjItMjQuNWw3MS00Ny44LTcxLTQ3LjhjLTgtNS40LTEyLTE1LTEwLjItMjQuNWwxNi40LTg0LTg0IDE2LjRjLTkuNSAxLjgtMTkuMS0yLjItMjQuNS0xMC4ybC00Ny44LTcxLTQ3LjggNzF6TTI4OCAzNzZhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0wLTE5MmE3MiA3MiAwIDEgMCAwIDE0NCA3MiA3MiAwIDEgMCAwLTE0NHoiXX0sSEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImltYWdlIixpY29uOls0NDgsNTEyLFtdLCJmMDNlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xMjggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMzYgNzJjOC41IDAgMTYuNCA0LjUgMjAuNyAxMS44bDgwIDEzNmM0LjQgNy40IDQuNCAxNi42IC4xIDI0LjFTMzUyLjYgMzg0IDM0NCAzODRsLTI0MCAwYy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDE3LjIgMjQuNiA0Ni41LTc5YzQuMy03LjMgMTIuMi0xMS44IDIwLjctMTEuOHoiXX0scUF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxpZ2h0YnVsYiIsaWNvbjpbMzg0LDUxMixbMTI4MTYxXSwiZjBlYiIsIk0yOTYuNSAyOTEuMUMzMjEgMjY1LjIgMzM2IDIzMC40IDMzNiAxOTIgMzM2IDExMi41IDI3MS41IDQ4IDE5MiA0OFM0OCAxMTIuNSA0OCAxOTJjMCAzOC40IDE1IDczLjIgMzkuNSA5OS4xIDIxLjMgMjIuNCA0NC45IDU0IDUzLjMgOTIuOWwxMDIuNCAwYzguNC0zOSAzMi03MC41IDUzLjMtOTIuOXptMzQuOCAzM0MzMDcuNyAzNDkgMjg4IDM3OS40IDI4OCA0MTMuN2wwIDE4LjNjMCA0NC4yLTM1LjggODAtODAgODBsLTMyIDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTguM0M5NiAzNzkuNCA3Ni4zIDM0OSA1Mi43IDMyNC4xIDIwIDI4OS43IDAgMjQzLjIgMCAxOTIgMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkyYzAgNTEuMi0yMCA5Ny43LTUyLjcgMTMyLjF6TTE0NCAxODRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42IDM5LjQtODggODgtODggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjEgMC00MCAxNy45LTQwIDQweiJdfSxRcmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDQ4IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNMzc2IDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LGpBdD1RcmUsVkF0PVFyZSwkZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg0IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LFVBdD0kZ2UsV0F0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1hcCIsaWNvbjpbNTEyLDUxMixbMTI4NTA2LDYyMDcyXSwiZjI3OSIsIk01MTIgNDhjMC04LjMtNC4zLTE2LTExLjMtMjAuNHMtMTUuOS00LjgtMjMuMy0xLjFMMzUyLjUgODguMSAxODAgMjkuNGMtMTMuNy00LjctMjguNy0zLjgtNDEuOSAyLjNMMTMuOCA5MC4zQzUuNCA5NC4yIDAgMTAyLjcgMCAxMTJMMCA0NjRjMCA4LjIgNC4yIDE1LjkgMTEuMSAyMC4zczE1LjYgNC45IDIzLjEgMS40bDEyNy4zLTU5LjkgMTcwLjcgNTYuOWMxMy43IDQuNiAyOC41IDMuNyA0MS42LTIuNWwxMjQuNC01OC41YzguNC00IDEzLjgtMTIuNCAxMy44LTIxLjdsMC0zNTJ6TTE0NCA4Mi4xbDAgMjk5LTk2IDQ1LjIgMC0yOTkgOTYtNDUuMnptNDggMzAzLjNsMC0zMDEuMSAxMjggNDMuNSAwIDMwMC4zLTEyOC00Mi43ek0zNjggMTM0bDk2LTQ3LjQgMCAyOTguMi05NiA0NS4yIDAtMjk2eiJdfSxHQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1kb3duIixpY29uOlszODQsNTEyLFtdLCJmMGE3IiwiTTY0IDQ0OGwwLTE3Ny42YzUuMiAxIDEwLjUgMS42IDE2IDEuNmwxNiAwIDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2ek04MCAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBsNDggMGM1Mi41IDAgOTcuMSAzMy43IDExMy40IDgwLjctMy4xLS41LTYuMi0uNy05LjQtLjctMjAgMC0zNy45IDkuMi00OS43IDIzLjYtOS00LjktMTkuNC03LjYtMzAuMy03LjYtMTUuMSAwLTI5IDUuMy00MCAxNC0xMS04LjgtMjQuOS0xNC00MC0xNGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC04MCAwek0wIDE5MmwwIDBjMCAxOCA2IDM0LjYgMTYgNDhsMCAyMDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTgyYzUuMSAxLjMgMTAuNSAyIDE2IDIgMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2IDcgMi42IDE0LjUgNCAyMi40IDQgMjAgMCAzNy45LTkuMiA0OS43LTIzLjYgOSA0LjkgMTkuNCA3LjYgMzAuMyA3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OEMzODQgNzUuMiAzMDguOCAwIDIxNiAwTDE2OCAwQzc1LjIgMCAwIDc1LjIgMCAxNjhsMCAyNHptMzM2IDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0ek0xNjAgMjcyYzUuNSAwIDEwLjktLjcgMTYtMmwwIDM0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzIgMTYgMHptNjQtMjRsMC00MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yNHoiXX0sRGdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbWVoLWJsYW5rIixpY29uOls1MTIsNTEyLFsxMjg1NjYsIm1laC1ibGFuayJdLCJmNWE0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZhMjU2IDI1NiAwIDEgMSAtNTEyIDAgMjU2IDI1NiAwIDEgMSA1MTIgMHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxLQXQ9RGdlLExnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlIixpY29uOls1MTIsNTEyLFsxMjg1MzksImdyaW4tdG9uZ3VlIl0sImY1ODkiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNzQuMSAzOC44IDEzOS4yIDk3LjEgMTc2LS43LTUuMi0xLjEtMTAuNi0xLjEtMTZsMC01My41Yy0xMC4yLTEyLjYtMTguMy0yNi45LTIzLjgtNDIuNC00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTUuNSAxNS42LTEzLjYgMjkuOS0yMy44IDQyLjVsMCA1My41YzAgNS40LS40IDEwLjgtMS4xIDE2IDU4LjQtMzYuOCA5Ny4xLTEwMS45IDk3LjEtMTc2em00OCAwYzAgMTE2LjMtNzcuNiAyMTQuNi0xODMuOSAyNDUuNy0xOS41IDE2LjQtNDQuNiAyNi4zLTcyLjEgMjYuM3MtNTIuNi05LjktNzIuMS0yNi4zQzc3LjYgNDcwLjYgMCAzNzIuMyAwIDI1NiAwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYgMjA4bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sWUF0PUxnZSxKcmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNMzg3IDIyOC4zYy00LjQtMi44LTcuNi03LTkuMi0xMS45cy0xLjQtMTAuMiAuNS0xNUw0MTEuNiAxMThjLTE5LjktMjIuNC00NC42LTQwLjUtNzIuNC01Mi43bC02OS4xIDU3LjZjLTQgMy4zLTkgNS4xLTE0LjEgNS4xcy0xMC4yLTEuOC0xNC4xLTUuMUwxNzIuOCA2NS4zYy0yNy44IDEyLjItNTIuNSAzMC4zLTcyLjQgNTIuN2wzMy40IDgzLjRjMS45IDQuOCAyLjEgMTAuMSAuNSAxNXMtNC45IDkuMS05LjIgMTEuOUw0OSAyNzYuMmMzIDMwLjkgMTIuNyA1OS43IDI3LjYgODUuMmw4OS43LTZjNS4yLS4zIDEwLjMgMS4xIDE0LjUgNC4yczcuMiA3LjQgOC40IDEyLjVsMjIgODcuMmMxNC40IDMuMiAyOS40IDQuOCA0NC44IDQuOHMzMC4zLTEuNyA0NC44LTQuOGwyMi04Ny4yYzEuMy01IDQuMi05LjQgOC40LTEyLjVzOS4zLTQuNSAxNC41LTQuMmw4OS43IDZjMTUtMjUuNCAyNC43LTU0LjMgMjcuNi04NS4xTDM4NyAyMjguM3pNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyem02MiAyMjFjOC40IDYuMSAxMS45IDE2LjkgOC43IDI2LjhsLTE4LjMgNTYuM2MtMy4yIDkuOS0xMi40IDE2LjYtMjIuOCAxNi42bC01OS4yIDBjLTEwLjQgMC0xOS42LTYuNy0yMi44LTE2LjZsLTE4LjMtNTYuM2MtMy4yLTkuOSAuMy0yMC43IDguNy0yNi44bDQ3LjktMzQuOGM4LjQtNi4xIDE5LjgtNi4xIDI4LjIgMEwzMTggMjIxeiJdfSxaQXQ9SnJlLFhBdD1KcmUsRWdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc3VycHJpc2UiLGljb246WzUxMiw1MTIsWzEyODU1OCwic3VycHJpc2UiXSwiZjVjMiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LFFBdD1FZ2UsUGdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlciIsaWNvbjpbNTEyLDUxMixbMTI4MTkzLDEyODQ0Nyw2MTcxNiwiZm9sZGVyLWJsYW5rIl0sImYwN2IiLCJNNjQgNDAwbDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MGMwLTguOC03LjItMTYtMTYtMTZsLTE0OS4zIDBjLTE3LjMgMC0zNC4yLTUuNi00OC0xNkwyMTIuMyA4My4yYy0yLjgtMi4xLTYuMS0zLjItOS42LTMuMkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNnptMzg0IDQ4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxKQXQ9UGdlLGVOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG91ZCIsaWNvbjpbNTc2LDUxMixbOTcyOV0sImYwYzIiLCJNODAgMTkyYzAtODguNCA3MS42LTE2MCAxNjAtMTYwIDQ3LjEgMCA4OS40IDIwLjQgMTE4LjcgNTIuNyAxMC42LTMuMSAyMS44LTQuNyAzMy4zLTQuNyA2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDEzLjItMi4xIDI1LjktNi4xIDM3LjggNDEuNiAyMS4xIDcwLjEgNjQuMyA3MC4xIDExNC4yIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC01Ni44IDMyLjktMTA1LjkgODAuNy0xMjkuNC0uNC00LjgtLjctOS43LS43LTE0LjZ6TTI0MCA4MGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA4LjQgLjkgMTYuNiAyLjcgMjQuNSAyLjcgMTIuMS00LjMgMjQuMy0xNi4xIDI4LjEtMzguNyAxMi40LTY2LjYgNDguNy02Ni42IDkxLjQgMCA1MyA0MyA5NiA5NiA5NmwzMDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM3LjQtMjUuNy02OC45LTYwLjUtNzcuNi03LjUtMS45LTEzLjYtNy4yLTE2LjUtMTQuM3MtMi4xLTE1LjIgMi0yMS43YzctMTEuMSAxMS0yNC4yIDExLTM4LjMgMC0zOS44LTMyLjItNzItNzItNzItMTEuMSAwLTIxLjUgMi41LTMwLjggNi45LTEwLjUgNS0yMy4xIDEuNy0yOS44LTcuOC0yMC4zLTI4LjYtNTMuNy00Ny4xLTkxLjMtNDcuMXoiXX0sdE50PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LElnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1MTgsImdyaW4tc3F1aW50Il0sImY1ODUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42em0tMjQ5LjYtMTQzYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGFOdD1JZ2UsQWdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS11c2VyIixpY29uOls1MTIsNTEyLFs2MjE0MiwidXNlci1jaXJjbGUiXSwiZjJiZCIsIk00MDYuNSAzOTkuNkMzODcuNCAzNTIuOSAzNDEuNSAzMjAgMjg4IDMyMGwtNjQgMGMtNTMuNSAwLTk5LjQgMzIuOS0xMTguNSA3OS42LTM1LjYtMzcuMy01Ny41LTg3LjktNTcuNS0xNDMuNiAwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU1LjctMjEuOSAxMDYuMi01Ny41IDE0My42em0tNDAuMSAzMi43QzMzNC40IDQ1Mi40IDI5Ni42IDQ2NCAyNTYgNDY0cy03OC40LTExLjYtMTEwLjUtMzEuN2M3LjMtMzYuNyAzOS43LTY0LjMgNzguNS02NC4zbDY0IDBjMzguOCAwIDcxLjIgMjcuNiA3OC41IDY0LjN6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTI3MmE0MCA0MCAwIDEgMSAwLTgwIDQwIDQwIDAgMSAxIDAgODB6bS04OC00MGE4OCA4OCAwIDEgMCAxNzYgMCA4OCA4OCAwIDEgMCAtMTc2IDB6Il19LHNOdD1BZ2UsTmdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InJlY3RhbmdsZS1saXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1hbHQiXSwiZjAyMiIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE2MCAzMjBhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTA0LTU2bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxpTnQ9TmdlLFJnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kIixpY29uOls1MTIsNTEyLFsxMjkzMDYsOTk5NSwiaGFuZC1wYXBlciJdLCJmMjU2IiwiTTI1Ni41IDBjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNi03LTIuNi0xNC41LTQtMjIuNC00LTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTY1LjUtMi43LTIuN2MtMjUtMjUtNjUuNS0yNS05MC41IDBzLTI1IDY1LjUgMCA5MC41TDEwNyA0MzdjNDggNDggMTEzLjEgNzUgMTgxIDc1bDE2LjUgMGMxLjUgMCAzLS4xIDQuNS0uNCA5MS43LTYuMiAxNjUtNzkuNCAxNzEuMS0xNzEuMSAuMy0xLjUgLjQtMyAuNC00LjVsMC0xNzZjMC0zNS4zLTI4LjctNjQtNjQtNjQtNS41IDAtMTAuOSAuNy0xNiAybDAtMmMwLTM1LjMtMjguNy02NC02NC02NC03LjkgMC0xNS40IDEuNC0yMi40IDQtMTAuNC0yMS4zLTMyLjMtMzYtNTcuNi0zNnptLTE2IDk2LjFsMC0uMSAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTcyLjljLS4xIC42LS4xIDEuMy0uMiAxLjktMy40IDY5LjctNTkuMyAxMjUuNi0xMjkgMTI5LS42IDAtMS4zIC4xLTEuOSAuMkwyODggNDY0QzIzMi45IDQ2NCAxODAgNDQyLjEgMTQxIDQwMy4xTDUzLjIgMzE1LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw0My43IDQzLjdjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4ybDAtMjIzLjRjMC04LjggNy4yLTE2IDE2LTE2IDguOCAwIDE2IDcuMSAxNiAxNS45bDAgMTM2LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNS45eiJdfSxyTnQ9UmdlLG9OdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0aHVtYnMtdXAiLGljb246WzUxMiw1MTIsWzEyODA3Nyw2MTU3NV0sImYxNjQiLCJNMTcxLjUgMzguOEMxOTIuMyA0IDIzNi41LTEwIDI3NCA3LjZsNy4yIDMuOEMzMTYgMzIuMyAzMzAgNzYuNSAzMTIuNCAxMTRsMCAwLTE0LjEgMzAgMTA5LjcgMCA3LjQgLjRjMzYuMyAzLjcgNjQuNiAzNC40IDY0LjYgNzEuNiAwIDEzLjItMy42IDI1LjQtOS44IDM2IDYuMSAxMC42IDkuNyAyMi44IDkuOCAzNiAwIDE4LjMtNi45IDM0LjgtMTggNDcuNSAxLjMgNS4zIDIgMTAuOCAyIDE2LjUgMCAyNS4xLTEyLjkgNDctMzIuMiA1OS45LTEuOSAzNS41LTI5LjQgNjQuMi02NC40IDY3LjdsLTcuNCAuNC0xMDQuMSAwYy0xOCAwLTM1LjktMy40LTUyLjYtOS45bC03LjEtMy0uNy0uMy02LjYtMy4yLS43LS4zLTEyLjItNi41Yy0xMi4zLTYuNS0yMy4zLTE0LjctMzIuOS0yNC4xLTQuMSAyNi45LTI3LjMgNDcuNC01NS4zIDQ3LjRsLTMyIDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjAwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDMyIDBjMTAuOCAwIDIwLjkgMy4xIDI5LjUgOC41bDUwLjEtMTA2LjUgLjYtMS4yIDIuNy01IC42LS45ek01NiAxOTJjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAwek0yNTMuNiA1MWMtMTQuOC02LjktMzIuMy0xLjYtNDAuNyAxMmwtMi4yIDQtNTYuOCAxMjAuOWMtMy41IDcuNS01LjUgMTUuNS02IDIzLjdsLS4xIDQuMiAwIDExMi45IC4yIDcuOWMyLjQgMzIuNyAyMS40IDYyLjEgNTAuNyA3Ny43bDExLjUgNi4xIDYuMyAzLjFjMTIuNCA1LjYgMjUuOCA4LjUgMzkuNCA4LjVsMTA0LjEgMCAyLjQtLjFjMTIuMS0xLjIgMjEuNi0xMS41IDIxLjYtMjMuOWwtLjItMi42Yy0uMS0uOS0uMi0xLjctLjQtMi42LTIuNy0xMi4xIDQuMy0yNC4yIDE2LTI4IDkuNy0zLjEgMTYuNi0xMi4yIDE2LjYtMjIuOCAwLTQuMy0xLjEtOC4yLTMuMS0xMS44LTYuMy0xMS4xLTIuOC0yNS4yIDgtMzIgNi44LTQuMyAxMS4yLTExLjggMTEuMi0yMC4yIDAtNy4xLTMuMS0xMy41LTguMi0xOC01LjItNC42LTguMi0xMS4xLTguMi0xOHMzLTEzLjQgOC4yLTE4YzUuMS00LjUgOC4yLTEwLjkgOC4yLTE4bC0uMS0yLjRjLTEuMS0xMS4zLTEwLjEtMjAuMy0yMS40LTIxLjRsLTIuNC0uMS0xNDcuNSAwYy04LjIgMC0xNS44LTQuMi0yMC4yLTExLjEtNC40LTYuOS01LTE1LjctMS41LTIzLjFMMjY5IDkzLjZjNy0xNSAxLjQtMzIuNy0xMi41LTQxTDI1My42IDUxeiJdfSxuTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYnVpbGRpbmciLGljb246WzM4NCw1MTIsWzEyNzk3MCw2MTY4N10sImYxYWQiLCJNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsODAgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MCA4MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM4NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptOTYgNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sbE50PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXJvb2siLGljb246WzM4NCw1MTIsWzk4MjBdLCJmNDQ3IiwiTTM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTM4LjdjMCAxMy44LTQuNSAyNy4zLTEyLjggMzguNGwtMzUuMiA0Ni45IDAgMTEyIDQwLjggNjguMWM0LjcgNy44IDcuMiAxNi43IDcuMiAyNS44IDAgMjcuNy0yMi40IDUwLjEtNTAuMSA1MC4xTDUwLjEgNTEyYy0yNy43IDAtNTAuMS0yMi40LTUwLjEtNTAuMSAwLTkuMSAyLjUtMTggNy4yLTI1LjhMNDggMzY4IDQ4IDI1NiAxMi44IDIwOS4xQzQuNSAxOTggMCAxODQuNSAwIDE3MC43TDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwek00OC4zIDQ2MC44bC0uMyAxLjFjMCAxLjIgMSAyLjEgMi4xIDIuMWwyODMuOCAwYzEuMiAwIDIuMS0xIDIuMS0yLjFsLS4zLTEuMS0zNi41LTYwLjgtMjE0LjQgMC0zNi41IDYwLjh6TTQ4IDE3MC43YzAgMi42IC42IDUuMSAxLjggNy40bDEuNCAyLjIgMCAwIDM1LjIgNDYuOSA5LjYgMTIuOCAwIDExMiAxOTIgMCAwLTExMiA5LjYtMTIuOCAzNS4yLTQ2LjkgMCAwIDEuNC0yLjJjMS4yLTIuMyAxLjgtNC44IDEuOC03LjRsMC0xMjIuNy02NCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNC02NCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNC02NCAwIDAgMTIyLjd6Il19LE9nZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcXVlc3Rpb24iLGljb246WzUxMiw1MTIsWzYyMTA4LCJxdWVzdGlvbi1jaXJjbGUiXSwiZjA1OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni04MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LGNOdD1PZ2UsZE50PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUiLGljb246WzM4NCw1MTIsWzEyODE5NiwxMjg0NTksNjE0NjJdLCJmMTViIiwiTTE3NiA0OEw2NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDAtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzE2LjEgMTYwTDIyNCA2Ny45IDIyNCAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwxOTcuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LEZnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC1jcnkiLGljb246WzUxMiw1MTIsWzEyODU1Nywic2FkLWNyeSJdLCJmNWIzIiwiTTQwMCA0MDYuMUw0MDAgMjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTUyLjZjLTI4LjcgMTUtNjEuNCAyMy40LTk2IDIzLjRzLTY3LjMtOC41LTk2LTIzLjRMMTYwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExOC4xQzcyLjYgMzY4LjIgNDggMzE1IDQ4IDI1NiA0OCAxNDEuMSAxNDEuMSA0OCAyNTYgNDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU5LTI0LjYgMTEyLjItNjQgMTUwLjF6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSx1TnQ9RmdlLHBOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0zMiAxMzZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxCZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS10aXJlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTU1LCJ0aXJlZCJdLCJmNWM4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc2LjUgNjQuM0MxOTYuMSAzMDIuMSAyMjMuOCAyODggMjU2IDI4OHM1OS45IDE0LjEgNzkuNSAzMi4zYzE5IDE3LjggMzIuNSA0MS43IDMyLjUgNjMuNyAwIDUuNC0yLjcgMTAuNC03LjIgMTMuNHMtMTAuMiAzLjQtMTUuMiAxLjNsLTE3LjItNy41Yy0yMi44LTEwLTQ3LjUtMTUuMS03Mi40LTE1LjFzLTQ5LjYgNS4yLTcyLjQgMTUuMWwtMTcuMiA3LjVjLTQuOSAyLjItMTAuNyAxLjctMTUuMi0xLjNzLTcuMi04LTcuMi0xMy40YzAtMjIgMTMuNS00NS45IDMyLjUtNjMuN3pNMTIyLjYgMTU5LjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0saE50PUJnZSxmTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNCIsIk00NDggMTI4bC0xNzcuNiAwYzEgNS4yIDEuNiAxMC41IDEuNiAxNmwwIDE2IDE3NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2ek0yMjQgMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYy02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMGwwIDQ4YzAgNTIuNSAzMy43IDk3LjEgODAuNyAxMTMuNC0uNS0zLjEtLjctNi4yLS43LTkuNCAwLTIwIDkuMi0zNy45IDIzLjYtNDkuNy00LjktOS03LjYtMTkuNC03LjYtMzAuMyAwLTE1LjEgNS4zLTI5IDE0LTQwLTguOC0xMS0xNC0yNC45LTE0LTQwbDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MHpNMTkyIDY0bDAgMGMxOCAwIDM0LjYgNiA0OCAxNmwyMDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtODIgMGMxLjMgNS4xIDIgMTAuNSAyIDE2IDAgMjUuMy0xNC43IDQ3LjItMzYgNTcuNiAyLjYgNyA0IDE0LjUgNCAyMi40IDAgMjAtOS4yIDM3LjktMjMuNiA0OS43IDQuOSA5IDcuNiAxOS40IDcuNiAzMC4zIDAgMzUuMy0yOC43IDY0LTY0IDY0bC04OCAwQzc1LjIgNDQ4IDAgMzcyLjggMCAyODBsMC00OEMwIDEzOS4yIDc1LjIgNjQgMTY4IDY0bDI0IDB6bTY0IDMzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwem0xNi0xNzZjMCA1LjUtLjcgMTAuOS0yIDE2bDM0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMCAxNnptLTI0IDY0bC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTI0IDB6Il19LEhnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXAiLGljb246WzUxMiw1MTIsWzYxNDY3LCJhcnJvdy1hbHQtY2lyY2xlLXVwIl0sImYzNWIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTA0IDEwNGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45bDcyIDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEwNCA3MiAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC0xMDQtMTA0eiJdfSxtTnQ9SGdlLGdOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTS4yIDI3Ni4zYy0xLjItMzUuMyAyNi40LTY1IDYxLjctNjYuMmwzLjMtLjEtOC4yLTEuOEMyMi41IDIwMC41IC43IDE2Ni4zIDguMyAxMzEuOFM1MC4yIDc1LjUgODQuNyA4My4ybDE3MyAzOC4zYzIuMy0yLjkgNC42LTUuNyA3LjEtOC41bDE4LjQtMjAuM0MyOTkuOSA3NC41IDMyMy41IDY0IDM0OC4zIDY0bDEwLjIgMGM1NC4xIDAgMTA0LjEgMjguNyAxMzEuMyA3NS40bDEuNSAyLjZjMTMuNiAyMy4yIDIwLjcgNDkuNyAyMC43IDc2LjZMNTEyIDM0NGMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtMTA0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMi44IC4yLTUuNiAuNS04LjMtMTkuNC0xMS0zMi41LTMxLjgtMzIuNS01NS43IDAtLjggMC0xLjYgMC0yLjRMNjYuNCAzMzhjLTM1LjMgMS4yLTY1LTI2LjQtNjYuMi02MS43em02My40LTE4LjJjLTguOCAuMy0xNS43IDcuNy0xNS40IDE2LjZzNy43IDE1LjcgMTYuNSAxNS40bDE2MS41LTUuNmM5LjgtLjMgMTguNyA1LjMgMjIuNyAxNC4yczIuMiAxOS4zLTQuNSAyNi40Yy0yLjggMi45LTQuNCA2LjctNC40IDExIDAgOC44IDcuMiAxNiAxNiAxNiA5LjEgMCAxNy40IDUuMSAyMS41IDEzLjNzMy4yIDE3LjktMi4zIDI1LjFjLTIgMi43LTMuMiA2LTMuMiA5LjYgMCA4LjggNy4yIDE2IDE2IDE2bDEwNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtMTI1LjRjMC0xOC40LTQuOS0zNi41LTE0LjItNTIuNGwtMS41LTIuNmMtMTguNi0zMi01Mi44LTUxLjYtODkuOC01MS42bC0xMC4yIDBjLTExLjMgMC0yMiA0LjgtMjkuNiAxMy4xbDAgMC0xOC40IDIwLjNjLS42IC42LTEuMSAxLjMtMS43IDEuOWw1NyAxMy4yYzguNiAyIDE0IDEwLjYgMTIgMTkuMnMtMTAuNiAxNC0xOS4yIDEyTDI2Mi44IDE3MS44IDc0LjMgMTMwYy04LjYtMS45LTE3LjIgMy41LTE5LjEgMTIuMnMzLjUgMTcuMiAxMi4yIDE5LjFsMTg3LjUgNDEuNmMxMC4yIDIuMyAxNy44IDEwLjkgMTguNyAyMS40bC4xIDFjLjYgNi42LTEuNSAxMy4xLTUuOCAxOC4xcy0xMC42IDcuOS0xNy4yIDguMkw2My42IDI1OC4xeiJdfSxiTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZ2VtIixpY29uOls1MTIsNTEyLFsxMjgxNDJdLCJmM2E1IiwiTTE2OC41IDcybDg3LjUgOTMgODcuNS05My0xNzUgMHpNMzgzLjkgOTkuMWwtNzIuMyA3Ni45IDEyOSAwLTU2LjYtNzYuOXptNTAgMTI0LjlMNzguMSAyMjQgMjU2IDQyMC4zIDQzMy45IDIyNHpNNzEuNSAxNzZsMTI5IDAtNzIuMy03Ni45LTU2LjYgNzYuOXptNDM0LjMgNDAuMWwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyYzQuNS02LjEgMTEuNy05LjggMTkuMy05LjhsMjQwIDBjNy42IDAgMTQuOCAzLjYgMTkuMyA5LjhsMTEyIDE1MmM2LjggOS4yIDYuMSAyMS45LTEuNSAzMC40eiJdfSxLaz17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTMzNC4xIDQ5LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ0LjEgNDQuMSA0NC4xIDQ0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDQuMS00NC4xLTQ0LjEgNDQuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0NC4xLTQ0LjEtNDQuMS00NC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDQuMSA0NC4xIDQ0LjEtNDQuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sdk50PUtrLHhOdD1Layx5TnQ9S2ssZWY9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidHJhc2gtY2FuIixpY29uOls0NDgsNTEyLFs2MTQ2MCwidHJhc2gtYWx0Il0sImYyZWQiLCJNMTY2LjItMTZjLTEzLjMgMC0yNS4zIDguMy0zMCAyMC44TDEyMCA0OCAyNCA0OEMxMC43IDQ4IDAgNTguNyAwIDcyUzEwLjcgOTYgMjQgOTZsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDAtMTYuMi00My4yQzMwNy4xLTcuNyAyOTUuMi0xNiAyODEuOC0xNkwxNjYuMi0xNnpNMzIgMTQ0bDAgMzA0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzA0LTQ4IDAgMCAzMDRjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzA0LTQ4IDB6bTE2MCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc2em0xMTIgMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc2eiJdfSx3TnQ9ZWYsa050PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxpZmUtcmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFjZCIsIk0zODUuMSA0MTkuMUMzNDkuNyA0NDcuMiAzMDQuOCA0NjQgMjU2IDQ2NHMtOTMuNy0xNi44LTEyOS4xLTQ0LjlsODAuNC04MC40YzE0LjMgOC40IDMxIDEzLjMgNDguOCAxMy4zczM0LjUtNC44IDQ4LjgtMTMuM2w4MC40IDgwLjR6bTY4LjEgLjJDNDg5LjkgMzc0LjkgNTEyIDMxOC4xIDUxMiAyNTZTNDg5LjkgMTM3LjEgNDUzLjIgOTIuN0w0NjUgODFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMFMxMzcuMSAyMi4xIDkyLjcgNTguOEw4MSA0N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMzcuNyA3MS42IDQ3IDgxTDU4LjggOTIuN0MyMi4xIDEzNy4xIDAgMTkzLjkgMCAyNTZTMjIuMSAzNzQuOSA1OC44IDQxOS4zTDQ3IDQzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDExLjgtMTEuOEMxMzcuMSA0ODkuOSAxOTMuOSA1MTIgMjU2IDUxMnMxMTguOS0yMi4xIDE2My4zLTU4LjhMNDMxIDQ2NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTExLjgtMTEuOHptLTM0LjEtMzQuMWwtODAuNC04MC40YzguNC0xNC4zIDEzLjMtMzEgMTMuMy00OC44cy00LjgtMzQuNS0xMy4zLTQ4LjhsODAuNC04MC40QzQ0Ny4yIDE2Mi4zIDQ2NCAyMDcuMiA0NjQgMjU2cy0xNi44IDkzLjctNDQuOSAxMjkuMXpNMzg1LjEgOTIuOWwtODAuNCA4MC40Yy0xNC4zLTguNC0zMS0xMy4zLTQ4LjgtMTMuM3MtMzQuNSA0LjgtNDguOCAxMy4zTDEyNi45IDkyLjlDMTYyLjMgNjQuOCAyMDcuMiA0OCAyNTYgNDhzOTMuNyAxNi44IDEyOS4xIDQ0Ljl6TTE3My4zIDMwNC44TDkyLjkgMzg1LjFDNjQuOCAzNDkuNyA0OCAzMDQuOCA0OCAyNTZzMTYuOC05My43IDQ0LjktMTI5LjFsODAuNCA4MC40Yy04LjQgMTQuMy0xMy4zIDMxLTEzLjMgNDguOHM0LjggMzQuNSAxMy4zIDQ4Ljh6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sU050PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvcHlyaWdodCIsaWNvbjpbNTEyLDUxMixbMTY5XSwiZjFmOSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwNS4xIDMwNi45Yy0yOC4xLTI4LjEtMjguMS03My43IDAtMTAxLjhzNzMuNy0yOC4xIDEwMS44IDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy00Ni45LTQ2LjktMTIyLjgtNDYuOS0xNjkuNyAwcy00Ni45IDEyMi44IDAgMTY5LjcgMTIyLjggNDYuOSAxNjkuNyAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHoiXX0scWdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNDggMjU2YTIwOCAyMDggMCAxIDEgNDE2IDAgMjA4IDIwOCAwIDEgMSAtNDE2IDB6bTQ2NCAwYTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTEyNC43IDI0NC43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwxMDQgMTA0YzQuNiA0LjYgMTEuNSA1LjkgMTcuNCAzLjVzOS45LTguMyA5LjktMTQuOGwwLTcyIDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEwNCAwIDAtNzJjMC02LjUtMy45LTEyLjMtOS45LTE0LjhzLTEyLjktMS4xLTE3LjQgMy41bC0xMDQgMTA0eiJdfSxfTnQ9cWdlLE1OdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzUyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwek00OCAyMjRsMCAxOTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE5Mi0zNTIgMHoiXX0samdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZnJvd24tb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4NTUwLCJmcm93bi1vcGVuIl0sImY1N2EiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sek50PWpnZSxWZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hhcnQtYmFyIixpY29uOls1MTIsNTEyLFsiYmFyLWNoYXJ0Il0sImYwODAiLCJNNDggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCA0Mi43IDAgNTZMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODAgNDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMkw0OCA1NnptMTA0IDcybDIwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE1MiA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sQ050PVZnZSxZaz17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI0MCA2LjFjOS4xLTguMiAyMi45LTguMiAzMiAwbDIzMiAyMDhjOS45IDguOCAxMC43IDI0IDEuOCAzMy45cy0yNCAxMC43LTMzLjkgMS44bC04LTcuMiAwIDIwNS4zYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMDUuMy04IDcuMmMtOS45IDguOC0yNSA4LTMzLjktMS44cy04LTI1IDEuOC0zMy45TDI0MCA2LjF6bTE2IDUwLjFMOTYgMTk5LjcgOTYgNDQ4YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAtMTA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDQ4IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAxMDQgNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDguMy0xNjAtMTQzLjR6TTIwOCA0NjRsOTYgMCAwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDR6Il19LFROdD1ZaywkTnQ9WWssRE50PVlrLFVnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZyb3duIixpY29uOls1MTIsNTEyLFs5Nzg1LCJmcm93biJdLCJmMTE5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMzM0LjcgMzg0LjZDMzE5LjcgMzY5IDI5My42IDM1MiAyNTYgMzUycy02My43IDE3LTc4LjcgMzIuNmMtOS4yIDkuNi0yNC40IDkuOS0zMy45IC43cy05LjktMjQuNC0uNy0zMy45YzIyLjEtMjMgNjAtNDcuNCAxMTMuMy00Ny40czkxLjIgMjQuNCAxMTMuMyA0Ny40YzkuMiA5LjYgOC45IDI0LjgtLjcgMzMuOXMtMjQuOCA4LjktMzMuOS0uN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxMTnQ9VWdlLGVvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTE0NCAxMjhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwem0yMDggMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwek00OCA0ODBjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsOTYgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLThjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZsLTk2IDBDNzguOCAzMDQgMCAzODIuOCAwIDQ4MGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTh6Il19LEVOdD1lb2UsUE50PWVvZSxJTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjgwLjEtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDc4LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTcgNTcgMCA3Ni41LTY2LjItMzguMi0yMC45LTc3LjhjLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjIgOTggOTguNyAxMTAuOGw4LjQgMzEuNS02Ny42LTM5QzI4IDk2LjYgMTMuMyAxMDAuNSA2LjcgMTEyUzQgMTM4LjIgMTUuNSAxNDQuOGw2Ny42IDM5LTMxLjUgOC40Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w3Ny44LTIwLjkgNjYuMiAzOC4yLTY2LjIgMzguMi03Ny44LTIwLjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDMxLjUgOC40LTY3LjYgMzlDNCAzNzMuOCAuMSAzODguNSA2LjcgNDAwczIxLjMgMTUuNCAzMi44IDguOGw2Ny42LTM5LTguNCAzMS41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wyMC45LTc3LjggNjYuMi0zOC4yIDAgNzYuNS01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgNzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzguMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtNzYuNSA2Ni4yIDM4LjIgMjAuOSA3Ny44YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC04LjQtMzEuNSA2Ny42IDM5YzExLjUgNi42IDI2LjIgMi43IDMyLjgtOC44czIuNy0yNi4yLTguOC0zMi44bC02Ny42LTM5IDMxLjUtOC40YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNzcuOCAyMC45LTY2LjItMzguMiA2Ni4yLTM4LjIgNzcuOCAyMC45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMzEuNS04LjQgNjcuNi0zOWMxMS41LTYuNiAxNS40LTIxLjMgOC44LTMyLjhzLTIxLjMtMTUuNC0zMi44LTguOGwtNjcuNiAzOSA4LjQtMzEuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTIwLjkgNzcuOC02Ni4yIDM4LjIgMC03Ni41IDU3LTU3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtNzguMXoiXX0sQU50PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDE3LjFjMCAyNS42LTI4LjUgNDAuOC00OS44IDI2LjZMMTkyIDQxMi44IDQ5LjggNTA3LjdDMjguNSA1MjEuOSAwIDUwNi42IDAgNDgxLjFMMCA2NHpNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4Ny4yIDExNy40LTc4LjJjMTYuMS0xMC43IDM3LjEtMTAuNyA1My4yIDBMMzM2IDQ1MS4yIDMzNiA2NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6Il19LFdnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1sZWZ0Il0sImYxOTEiLCJNNDggNDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjB6bTE2IDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MHptNjQtMjI0YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40UzI4OCAxNDIuNSAyODggMTUybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42eiJdfSxOTnQ9V2dlLHRvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzY0MCw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk01OTguMSA3NS40YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zbC03NC41IDU0LjItOS45LTYuNkM0NjUuOCA3MSA0NDIuNiA2NCA0MTguOSA2NGwtNTkuMiAwLS40IDAtMTQzLjYgMGMtMjYuNyAwLTUyLjUgOC45LTczLjQgMjUuMUw3MC4xIDM2LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNWw4OCA2NGM5LjYgNi45IDIyLjcgNS45IDMxLjEtMi40bDMuOS0zLjljMTMuNS0xMy41IDMxLjgtMjEuMSA1MC45LTIxLjFsNDYuMyAwLTkxLjcgOTEuN2MtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsLjggLjhDMjE4IDMwOCAyOTQgMzA4IDM0MC45IDI2MS4xbDI3LjEtMjcuMSA5Ny44IDk3LjhjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTkuOCA5LjgtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjggMjhjLTE3LjUgMTAuNC0zNy4yIDE2LjctNTcuNiAxOC41TDMxMyAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtMy44IDBjLTM2LjEgMC03MC43LTE0LjMtOTYuMi0zOS44TDY1IDI3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxNjAuMiA0NDIuMWMzNC41IDM0LjUgODEuMyA1My45IDEzMC4xIDUzLjlsNTEuOCAwIDEgMSAxLTEgNS43IDBjNDguOCAwIDk1LjYtMTkuNCAxMzAuMS01My45bDE5LjktMTkuOWMxLjItMS4yIDIuMy0yLjMgMy40LTMuNSAuNy0uNSAxLjMtMS4xIDEuOS0xLjdMNjA5IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01My44IDUzLjhjLTQuMi0xMi44LTExLjMtMjQuOS0yMS41LTM1LjFMMzg1IDE4M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTQ0LjEgNDQuMWMtMjYuNSAyNi41LTY4LjUgMjgtOTYuNyA0LjZsOTguNy05OC43YzEzLjQtMTMuNCAzMS42LTIxIDUwLjYtMjEuMWw4LjUgMCAuMiAwIDUwLjggMGMxNC4yIDAgMjguMSA0LjIgMzkuOSAxMi4xTDQ4Mi43IDE0MGM4LjQgNS42IDE5LjMgNS4zIDI3LjQtLjZsODgtNjR6Il19LFJOdD10b2UsT050PXRvZSxHZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1MjEsInNtaWxlLXdpbmsiXSwiZjRkYSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LEZOdD1HZ2UsS2dlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMiLGljb246WzUxMiw1MTIsWzEyOTMxNSwiZ3Jpbi1zcXVpbnQtdGVhcnMiXSwiZjU4NiIsIk00MDMuMSA0MDMuMWM2Ny4yLTY3LjIgNzguOC0xNjguOSAzNC45LTI0OGwzNi43LTUuMmM0LjUtLjYgOC44LTEuNiAxMy4xLTIuOCA0NC42IDk0LjkgMjcuNyAyMTEuNS01MC43IDI5MHMtMTk1LjEgOTUuMy0yOTAgNTAuN2MxLjItNC4yIDIuMS04LjYgMi44LTEzLjFsNS4yLTM2LjdjNzkuMSA0My45IDE4MC44IDMyLjMgMjQ4LTM0Ljl6TTc1IDc1Yzc4LjQtNzguNCAxOTUuMS05NS4zIDI5MC01MC43LTEuMiA0LjItMi4xIDguNi0yLjggMTMuMWwtNS4yIDM2LjdjLTc5LjEtNDMuOS0xODAuOC0zMi4zLTI0OCAzNC45cy03OC44IDE2OC45LTM0LjkgMjQ4bC0zNi43IDUuMmMtNC41IC42LTguOCAxLjYtMTMuMSAyLjgtNDQuNi05NC45LTI3LjctMjExLjUgNTAuNy0yOTB6TTM3MC45IDIwNi41YzUuOC0xMC45IDIxLjEtMTIuNCAyNi40LTEuMyAyNS42IDUzLjUgMTYuMiAxMTkuNi0yOC4yIDE2My45LTQ0LjMgNDQuMy0xMTAuMyA1My43LTE2My44IDI4LjItMTEuMS01LjMtOS42LTIwLjYgMS4zLTI2LjQgMzItMTcuMSA2NC4yLTQwLjggOTMuOC03MC40IDI5LjctMjkuNyA1My40LTYxLjkgNzAuNS05NHpNOTMuMyAyODEuOWMtMS43LTggMi45LTE1LjkgMTAuNi0xOC40bDg0LjYtMjhjNS43LTEuOSAxMi4xLS40IDE2LjMgMy45czUuOCAxMC42IDMuOSAxNi4zbC0yOCA4NC42Yy0yLjYgNy43LTEwLjUgMTIuMy0xOC40IDEwLjZzLTEzLjQtOS0xMi43LTE3LjFsMy45LTQzLjEtNDMuMSAzLjljLTguMSAuNy0xNS41LTQuNy0xNy4xLTEyLjd6TTI5NC42IDExMC40bC0zLjkgNDMuMSA0My4xLTMuOWM4LjEtLjcgMTUuNSA0LjcgMTcuMSAxMi43cy0yLjkgMTUuOS0xMC42IDE4LjRsLTg0LjYgMjhjLTUuNyAxLjktMTIuMSAuNC0xNi4zLTMuOXMtNS44LTEwLjYtMy45LTE2LjNsMjgtODQuNmMyLjYtNy43IDEwLjUtMTIuMyAxOC40LTEwLjZzMTMuNCA5IDEyLjcgMTcuMXpNNTEyIDUxLjRjMCAyNS42LTE4LjggNDcuMy00NC4xIDUwLjlMNDIxLjEgMTA5Yy0xMC42IDEuNS0xOS42LTcuNS0xOC4xLTE4LjFsNi43LTQ2LjdDNDEzLjMgMTguOCA0MzUgMCA0NjAuNiAwIDQ4OSAwIDUxMiAyMyA1MTIgNTEuNHpNNDQuMSA0MDkuN0w5MC45IDQwM2MxMC42LTEuNSAxOS42IDcuNSAxOC4xIDE4LjFsLTYuNyA0Ni43Qzk4LjcgNDkzLjIgNzcgNTEyIDUxLjQgNTEyIDIzIDUxMiAwIDQ4OSAwIDQ2MC42IDAgNDM1IDE4LjggNDEzLjMgNDQuMSA0MDkuN3oiXX0sQk50PUtnZSxITnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1hdWRpbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0yMjEuOSAyNjcuNmMtNC43IDEwLS4zIDIxLjkgOS43IDI2LjYgMTkuMiA4LjkgMzIuNCAyOC4zIDMyLjQgNTAuOHMtMTMuMiA0MS45LTMyLjQgNTAuOGMtMTAgNC43LTE0LjQgMTYuNi05LjcgMjYuNnMxNi42IDE0LjQgMjYuNiA5LjdDMjgxLjIgNDE2LjggMzA0IDM4My42IDMwNCAzNDVzLTIyLjgtNzEuOS01NS42LTg3LjFjLTEwLTQuNy0yMS45LS4zLTI2LjYgOS43ek0xMDQgMzA1Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDAgMjcuMiAzNGMzIDMuOCA3LjYgNiAxMi41IDZsLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0uMyAwYy00LjkgMC05LjUgMi4yLTEyLjUgNmwtMjcuMiAzNC0xNiAwek0yMjMuMyAzNzNjOS45LTUuNCAxNi43LTE2IDE2LjctMjguMXMtNi43LTIyLjctMTYuNy0yOC4xYy03LjgtNC4yLTE1LjMgMy4zLTE1LjMgMTIuMWwwIDMyYzAgOC44IDcuNiAxNi4zIDE1LjMgMTIuMXoiXX0sWWdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLXhtYXJrIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItdGltZXMiXSwiZjI3MyIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xNzEuOSA5Mi4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LHFOdD1ZZ2UsWmdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3duIixpY29uOls1MTIsNTEyLFs2MTQ2NiwiYXJyb3ctYWx0LWNpcmNsZS1kb3duIl0sImYzNTgiLCJNMjU2IDQ2NGEyMDggMjA4IDAgMSAxIDAtNDE2IDIwOCAyMDggMCAxIDEgMCA0MTZ6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTA0LTEwNGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzM2Ni41IDI1NiAzNjAgMjU2bC03MiAwIDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNC03MiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsMTA0IDEwNHoiXX0sak50PVpnZSxhb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI4NDQxLDEyODQ2Miw2MTY4NiwiZmlsZS1hbHQiLCJmaWxlLXRleHQiXSwiZjE1YyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem01NiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sVk50PWFvZSxVTnQ9YW9lLFdOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50cyIsaWNvbjpbNTc2LDUxMixbMTI4NDkwLDYxNjcwXSwiZjA4NiIsIk03Ni4yIDI1OC43YzYuMS0xNS4yIDQtMzIuNi01LjYtNDUuOS0xNC41LTIwLjEtMjIuNi00My43LTIyLjYtNjguOCAwLTY2LjggNjAuNS0xMjggMTQ0LTEyOHMxNDQgNjEuMiAxNDQgMTI4LTYwLjUgMTI4LTE0NCAxMjhjLTE1LjkgMC0zMS4xLTIuMy00NS4zLTYuNS0xMC4zLTMuMS0yMS40LTIuNS0zMS40IDEuNWwtNTAuNCAyMC4yIDExLjQtMjguNXpNMCAxNDRjMCAzNS44IDExLjYgNjkuMSAzMS43IDk2LjhMMS45IDMxNS4yYy0xLjMgMy4yLTEuOSA2LjYtMS45IDEwIDAgMTQuOCAxMiAyNi44IDI2LjggMjYuOCAzLjQgMCA2LjgtLjcgMTAtMS45bDk2LjMtMzguNWMxOC42IDUuNSAzOC40IDguNCA1OC45IDguNCAxMDYgMCAxOTItNzguOCAxOTItMTc2UzI5OC0zMiAxOTItMzIgMCA0Ni44IDAgMTQ0ek0zODQgNTEyYzIwLjYgMCA0MC4zLTMgNTguOS04LjRsOTYuMyAzOC41YzMuMiAxLjMgNi42IDEuOSAxMCAxLjkgMTQuOCAwIDI2LjgtMTIgMjYuOC0yNi44IDAtMy40LS43LTYuOC0xLjktMTBsLTI5LjctNzQuNGMyMC0yNy44IDMxLjctNjEuMSAzMS43LTk2LjggMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTEuNiAxNi4zLTUuMSAzMS45LTEwLjEgNDYuOSA2My45IDE0LjggMTA3LjIgNjcuMyAxMDcuMiAxMjMuOSAwIDI1LjEtOC4xIDQ4LjctMjIuNiA2OC44LTkuNiAxMy4zLTExLjcgMzAuNi01LjYgNDUuOWwxMS40IDI4LjUtNTAuNC0yMC4yYy0xMC00LTIxLjEtNC41LTMxLjQtMS41LTE0LjIgNC4yLTI5LjQgNi41LTQ1LjMgNi41LTcyLjIgMC0xMjcuMS00NS43LTE0MC43LTEwMS4yLTE1LjYgMy4yLTMxLjcgNS00OC4xIDUuMiAxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0eiJdfSx0Zj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtY2hlY2siLGljb246WzUxMiw1MTIsWzYxNTMzLCJjaGVjay1jaXJjbGUiXSwiZjA1OCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC00NjRhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2em03MC43IDEyMS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjQzLjQgMzY2LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSxHTnQ9dGYsS050PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1vb24iLGljb246WzUxMiw1MTIsWzEyNzc2OSw5MjE0XSwiZjE4NiIsIk0yMzkuMyA0OC43Yy0xMDcuMSA4LjUtMTkxLjMgOTguMS0xOTEuMyAyMDcuMyAwIDExNC45IDkzLjEgMjA4IDIwOCAyMDggMzMuMyAwIDY0LjctNy44IDkyLjYtMjEuNy0xMDMuNC0yMy40LTE4MC42LTExNS44LTE4MC42LTIyNi4zIDAtNjUuOCAyNy40LTEyNS4xIDcxLjMtMTY3LjN6TTAgMjU2YzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgMTkuNCAwIDM4LjQgMi4yIDU2LjcgNi4zIDkuOSAyLjIgMTcuMyAxMC41IDE4LjUgMjAuNXMtNCAxOS44LTEzLjEgMjQuNGMtNjAuNiAzMC4yLTEwMi4xIDkyLjctMTAyLjEgMTY0LjggMCAxMDEuNiA4Mi40IDE4NCAxODQgMTg0IDUgMCA5LjktLjIgMTQuOC0uNiAxMC4xLS44IDE5LjYgNC44IDIzLjggMTQuMXMyIDIwLjEtNS4zIDI3LjFDMzg3LjMgNDg0LjggMzI0LjggNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6Il19LFlOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjIwYSIsIk00NDggMTEyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptODggMTQ0bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgwYzAtNC40IDMuNi04IDgtOHptMTY4IDhjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgweiJdfSxaTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaW1hZ2VzIixpY29uOls1NzYsNTEyLFtdLCJmMzAyIiwiTTQ4MCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6bTgwIDExMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNDAuNyAzLjhjLTQuMy03LjMtMTIuMi0xMS44LTIwLjctMTEuOHMtMTYuNCA0LjUtMjAuNyAxMS44bC00Ni41IDc5LTE3LjItMjQuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzE5MS4xIDMyMCAyMDAgMzIwbDI0MCAwYzguNiAwIDE2LjYtNC42IDIwLjgtMTIuMXM0LjItMTYuNy0uMS0yNC4xbC04MC0xMzZ6TTQ4IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEzOC43IDAgMTUyTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM2MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjk2eiJdfSxYZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs2MTgzOCwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodCJdLCJmMzVhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHptMzg3LjMgMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTA0LTEwNGMtNC42LTQuNi0xMS41LTUuOS0xNy40LTMuNVMyNTYgMTQ1LjUgMjU2IDE1MmwwIDcyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzJjMCA2LjUgMy45IDEyLjMgOS45IDE0LjhzMTIuOSAxLjEgMTcuNC0zLjVsMTA0LTEwNHoiXX0sWE50PVhnZSxRZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDcsImRyaXZlcnMtbGljZW5zZSJdLCJmMmMyIiwiTTQ4IDQxNmwwLTI1NiA0ODAgMCAwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDggMzEyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0zNzYgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHoiXX0sUU50PVFnZSxKZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjEyLjUgMTQ3LjVjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNVMxNzYgMTU5LjMgMTc2IDE2OGwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OHpNMjk4IDI1NmwtNzQgNDUuMiAwLTkwLjQgNzQgNDUuMnoiXX0sSk50PUpnZSxlN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTMsImxhdWdoLWJlYW0iXSwiZjU5YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGVSdD1lN2UsdDdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImFkZHJlc3MtYm9vayIsaWNvbjpbNTEyLDUxMixbNjIxMzgsImNvbnRhY3QtYm9vayJdLCJmMmI5IiwiTTM4NCA0OGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDgwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyODggMHpNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yNDAgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0tMzIgNDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0eiJdfSx0UnQ9dDdlLGE3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsOCAwIDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsODEuNSA4MS41LTgxLjUgODEuNUM0OCAzNjYgMzIgNDA0LjcgMzIgNDQ1bDAgMTktOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtODEuNS04MS41IDgxLjUtODEuNUMzMzYgMTQ2IDM1MiAxMDcuMyAzNTIgNjdsMC0xOSA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzczLjMgMCAzNjAgMEwyNCAwek0xOTIgMjg5LjlsODEuNSA4MS41QzI5MyAzOTEgMzA0IDQxNy40IDMwNCA0NDVsMCAxOS0yMjQgMCAwLTE5YzAtMjcuNiAxMS01NCAzMC41LTczLjVMMTkyIDI4OS45em0wLTY3LjlsLTgxLjUtODEuNUM5MSAxMjEgODAgOTQuNiA4MCA2N2wwLTE5IDIyNCAwIDAgMTljMCAyNy42LTExIDU0LTMwLjUgNzMuNUwxOTIgMjIyLjF6Il19LGFSdD1hN2Usc29lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYWRwaG9uZXMiLGljb246WzQ0OCw1MTIsWzEyNzkxMSw2Mjg2MywiaGVhZHBob25lcy1hbHQiLCJoZWFkcGhvbmVzLXNpbXBsZSJdLCJmMDI1IiwiTTQ4IDIyNGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnMxNzYgNzguOCAxNzYgMTc2bDAgNDQuOGMtMTQuMS04LjItMzAuNS0xMi44LTQ4LTEyLjhsLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTE2MEM0NDggMTAwLjMgMzQ3LjcgMCAyMjQgMFMwIDEwMC4zIDAgMjI0TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMGMtMTcuNSAwLTMzLjkgNC43LTQ4IDEyLjhMNDggMjI0em0wIDEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAgMTI4LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJ6bTM1MiAwbDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMC0xMjggMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHoiXX0sc1J0PXNvZSxpUnQ9c29lLHJSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptODggMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEyOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMjggMGMzNy42IDAgNjgtMzAuNCA2OC02OHMtMzAuNC02OC02OC02OGwtNTIgMHptNTIgODhsLTI4IDAgMC00MCAyOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMHoiXX0sb1J0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1tYXhpbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcwXSwiZjJkMCIsIk00OCAyMjRsMCAxNjBjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2MC00MTYgMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHoiXX0sczdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbW1lbnQtZG90cyIsaWNvbjpbNTEyLDUxMixbMTI4MTcyLDYyMDc1LCJjb21tZW50aW5nIl0sImY0YWQiLCJNMCAyNDBjMCA1NC40IDE5LjMgMTA0LjYgNTEuOSAxNDQuOUwzLjEgNDc0LjNjLTIgMy43LTMuMSA3LjktMy4xIDEyLjIgMCAxNC4xIDExLjQgMjUuNSAyNS41IDI1LjUgNCAwIDcuOC0uNiAxMS41LTIuMUwxNTMuNCA0NjBjMzEuNCAxMi45IDY2LjEgMjAgMTAyLjYgMjAgMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDB6TTk0IDQwNy45YzkuMy0xNy4xIDcuNC0zOC4xLTQuOC01My4yLTI2LjEtMzIuMy00MS4yLTcxLjktNDEuMi0xMTQuNyAwLTEwMy4yIDkwLjItMTkyIDIwOC0xOTJzMjA4IDg4LjggMjA4IDE5Mi05MC4yIDE5Mi0yMDggMTkyYy0zMC4yIDAtNTguNy01LjktODQuMy0xNi40LTExLjktNC45LTI1LjMtNC44LTM3LjEgLjNMNzYgNDQwLjkgOTQgNDA3Ljl6TTE0NCAyNzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNDQtMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptODAgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxuUnQ9czdlLGk3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODU0MCwiZ3Jpbi10b25ndWUtd2luayJdLCJmNThiIiwiTTM2Ni45IDQzMmMuOC01LjIgMS4xLTEwLjYgMS4xLTE2bDAtNTMuNWMxMC4yLTEyLjYgMTguMy0yNi45IDIzLjgtNDIuNSA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggNS41IDE1LjUgMTMuNiAyOS45IDIzLjggNDIuNGwwIDUzLjVjMCA1LjQgLjQgMTAuOCAxLjEgMTYtNTguNC0zNi44LTk3LjEtMTAxLjktOTcuMS0xNzYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA3NC4xLTM4LjggMTM5LjItOTcuMSAxNzZ6bS0zOC44IDY5LjdDNDM0LjQgNDcwLjYgNTEyIDM3Mi4zIDUxMiAyNTYgNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3Mi4zIDc3LjYgNDcwLjYgMTgzLjkgNTAxLjcgMjAzLjQgNTE4LjEgMjI4LjUgNTI4IDI1NiA1MjhzNTIuNi05LjkgNzIuMS0yNi4zek0zMjAgMzc4LjZsMCAzNy40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtMzcuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0xMzIgMjMyYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwem0yMjguNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yODggMjA4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sbFJ0PWk3ZSxyN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwTDM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAxOWMwIDQwLjMtMTYgNzktNDQuNSAxMDcuNWwtODEuNSA4MS41IDgxLjUgODEuNUMzMzYgMzY2IDM1MiA0MDQuNyAzNTIgNDQ1bDAgMTkgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0xOWMwLTQwLjMgMTYtNzkgNDQuNS0xMDcuNWw4MS41LTgxLjUtODEuNS04MS41QzQ4IDE0NiAzMiAxMDcuMyAzMiA2N2wwLTE5LTggMEMxMC43IDQ4IDAgMzcuMyAwIDI0ek0xMTAuNSAzNzEuNWMtMy45IDMuOS03LjUgOC4xLTEwLjcgMTIuNWwxODQuNCAwYy0zLjItNC40LTYuOC04LjYtMTAuNy0xMi41bC04MS41LTgxLjUtODEuNSA4MS41ek04MC44IDQzMmMtLjUgNC4zLS44IDguNi0uOCAxM2wwIDE5IDIyNCAwIDAtMTljMC00LjQtLjMtOC43LS44LTEzTDgwLjggNDMyek0yNTQuMSAxNjBsLTEyNC4xIDAgNjIuMSA2Mi4xIDYyLjEtNjIuMXptMzkuNy00OEMzMDAuNCA5OC4xIDMwNCA4Mi43IDMwNCA2N2wwLTE5LTIyNCAwIDAgMTljMCAxNS43IDMuNiAzMS4xIDEwLjIgNDVsMjAzLjUgMHoiXX0sY1J0PXI3ZSxvN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY3JlZGl0LWNhcmQiLGljb246WzUxMiw1MTIsWzEyODE3OSw2MjA4MywiY3JlZGl0LWNhcmQtYWx0Il0sImYwOWQiLCJNNDQ4IDExMmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMi00MTYgMCAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHptMTYgMTEybDAgMTYwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2MCA0MTYgMHpNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTgwIDM0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMTQ0IDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LGRSdD1vN2UsdVJ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtc3BvY2siLGljb246WzUxMiw1MTIsWzEyODQwNl0sImYyNTkiLCJNMTM4LjMgODAuOGMtOS4yLTMzLjggMTAuNS02OC44IDQ0LjMtNzguNCAzNC05LjYgNjkuNCAxMC4yIDc5IDQ0LjJMMjkxLjkgMTUzLjcgMzA1LjEgODRjNi42LTM0LjcgNDAuMS01Ny41IDc0LjgtNTAuOSAzMS40IDYgNTMgMzMuOSA1MiA2NC45IDEwLTIuNiAyMC44LTIuOCAzMS41LS4xIDM0LjMgOC42IDU1LjEgNDMuMyA0Ni42IDc3LjZMNDU0LjcgMzk3LjJDNDM3LjggNDY0LjcgMzc3LjIgNTEyIDMwNy42IDUxMmwtMzMuNyAwYy01Ni45IDAtMTEyLjItMTktMTU3LjItNTMuOWwtOTItNzEuNmMtMjcuOS0yMS43LTMyLjktNjEuOS0xMS4yLTg5LjhzNjEuOS0zMi45IDg5LjgtMTEuMmwxNyAxMy4yLTUxLjgtMTMxLjJjLTEzLTMyLjkgMy4yLTcwLjEgMzYtODMgMTEuMS00LjQgMjIuNy01LjQgMzMuNy0zLjd6bTc3LjEtMjEuMmMtMi40LTguNS0xMS4yLTEzLjQtMTkuNy0xMXMtMTMuNCAxMS4yLTExIDE5LjdsNTQuOCAxODIuNGMzLjUgMTIuMy0zLjMgMjUuMi0xNS40IDI5LjNzLTI1LjMtMi0zMC0xMy45TDE0Mi45IDEzOC4xYy0zLjItOC4yLTEyLjUtMTIuMy0yMC44LTlzLTEyLjMgMTIuNS05IDIwLjhsNzMuMyAxODUuNmMxMiAzMC4zLTIzLjcgNTctNDkuNCAzN0w3My44IDMyMy40Yy03LTUuNC0xNy00LjItMjIuNSAyLjhzLTQuMiAxNyAyLjggMjIuNWw5MiA3MS42YzM2LjUgMjguNCA4MS40IDQzLjggMTI3LjcgNDMuOGwzMy43IDBjNDcuNSAwIDg5LTMyLjQgMTAwLjUtNzguNWw1NS40LTIyMS42YzIuMS04LjYtMy4xLTE3LjMtMTEuNi0xOS40cy0xNy4zIDMuMS0xOS40IDExLjZsLTI2IDEwNGMtMi45IDExLjctMTMuNCAxOS45LTI1LjUgMTkuOS0xNi41IDAtMjguOS0xNS0yNS44LTMxLjJMMzgzLjcgOTljMS43LTguNy00LTE3LjEtMTIuNy0xOC43UzM1NCA4NC4zIDM1Mi4zIDkzTDMyMC41IDI2MGMtMi4yIDExLjYtMTIuNCAyMC0yNC4yIDIwLTExIDAtMjAuNy03LjMtMjMuNy0xNy45TDIxNS40IDU5LjZ6Il19LHBSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjgtODcuOGMxNy41LTMuMyAzMC44LTE4LjcgMzAuOC0zNy4xIDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0ODUgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOS43Yy00Mi4yIDYtNzkuNCAyNy44LTEwNS40IDU5LjFMNDEtMjQuOXpNMTkyLjggMTI2LjlDMjE0LjcgOTguNCAyNDkuMiA4MCAyODggODAgMzU0LjMgODAgNDA4IDEzMy43IDQwOCAyMDBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNGwxMi45IDIyLjEtMjIuNiAwLTI0MS4xLTI0MS4xek0xMzIuNSAzNDUuOWMxOS41LTMzLjQgMzEuMy03MC43IDM0LjYtMTA5bC00Ni43LTQ2LjdjLS4yIDMuMy0uMyA2LjYtLjMgOS45bDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w2OS4xIDM1OS4yYy0zLjQgNS44LTUuMSAxMi4zLTUuMSAxOSAwIDIwLjkgMTYuOSAzNy44IDM3LjggMzcuOGwyNDQuNCAwLTQ4LTQ4LTE3OC42IDAgMTIuOS0yMi4xek0yMjAuMSA0NjRjOS45IDI4IDM2LjYgNDggNjcuOSA0OHM1OC0yMCA2Ny45LTQ4bC0xMzUuOCAweiJdfSxoUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTI4OC4xLTMyYzkgMCAxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4ycy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXptMCA3Ni44TDIzMC4zIDE1OGMtMy41IDYuOC0xMCAxMS42LTE3LjYgMTIuOGwtMTI1LjUgMjAgODkuOCA4OS45YzUuNCA1LjQgNy45IDEzLjEgNi43IDIwLjdsLTE5LjggMTI1LjUgMTEzLjMtNTcuNmM2LjgtMy41IDE0LjktMy41IDIxLjggMGwxMTMuMyA1Ny42LTE5LjgtMTI1LjVjLTEuMi03LjYgMS4zLTE1LjMgNi43LTIwLjdsODkuOC04OS45LTEyNS41LTIwYy03LjYtMS4yLTE0LjEtNi0xNy42LTEyLjhMMjg4LjEgNDQuOHoiXX0sZlJ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAwIDgwLjMtMjAuMWM0MS4xLTEwLjMgODQuNi01LjUgMTIyLjUgMTMuNCA0NC4yIDIyLjEgOTUuNSAyNC44IDE0MS43IDcuNGwzNC43LTEzYzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwbDAtMjc5LjdjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtOS42IDQuOGMtNDYuMyAyMy4yLTEwMC44IDIzLjItMTQ3LjEgMC0zNS4xLTE3LjYtNzUuNC0yMi0xMTMuNS0xMi41TDQ4IDUyIDQ4IDI0em0wIDc3LjVsOTYuNi0yNC4yYzI3LTYuNyA1NS41LTMuNiA4MC40IDguOCA1NC45IDI3LjQgMTE4LjcgMjkuNyAxNzUgNi44bDAgMjQxLjgtMjQuNCA5LjFjLTMzLjcgMTIuNi03MS4yIDEwLjctMTAzLjQtNS40LTQ4LjItMjQuMS0xMDMuMy0zMC4xLTE1NS42LTE3LjFsLTY4LjYgMTcuMiAwLTIzN3oiXX0sbVJ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTM2OCA4MGMtMy4yIDAtNi4yIC40LTguOSAxLjMtMTkuMSA1LjUtNDYuMSAxMC43LTc0LjMgMy4zLTU3LjQtMTQuOS0xMjQuNiA3LjQtMTc0LjcgNTcuNVMzNy43IDI1OS40IDUyLjYgMzE2LjhjNy4zIDI4LjIgMi4yIDU1LjItMy4zIDc0LjMtLjggMi44LTEuMyA1LjgtMS4zIDguOSAwIDE3LjcgMTQuMyAzMiAzMiAzMiAzLjIgMCA2LjItLjQgOC45LTEuMyAxOS4xLTUuNSA0Ni4xLTEwLjcgNzQuMy0zLjMgNTcuNCAxNC45IDEyNC42LTcuNCAxNzQuNy01Ny41czcyLjQtMTE3LjMgNTcuNS0xNzQuN2MtNy4zLTI4LjItMi4yLTU1LjIgMy4zLTc0LjMgLjgtMi44IDEuMy01LjggMS4zLTguOSAwLTE3LjctMTQuMy0zMi0zMi0zMnptMC00OGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNy0xLjEgMTUuMi0zLjEgMjIuMy00LjYgMTUuOC03LjEgMzIuOS0zIDQ4LjkgMjAuMSA3Ny42LTEwLjkgMTYxLjUtNzAgMjIwLjdzLTE0My4xIDkwLjItMjIwLjcgNzBjLTE2LTQuMS0zMy0xLjYtNDguOSAzLTcuMSAyLTE0LjYgMy4xLTIyLjMgMy4xLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtNy43IDEuMS0xNS4yIDMuMS0yMi4zIDQuNi0xNS44IDcuMS0zMi45IDMtNDguOS0yMC4xLTc3LjYgMTAuOS0xNjEuNSA3MC0yMjAuN1MyMTkuMyAxOCAyOTYuOCAzOC4xYzE2IDQuMSAzMyAxLjYgNDguOS0zIDcuMS0yIDE0LjYtMy4xIDIyLjMtMy4xek0yNDYuNyAxNjdjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzg1LjIgMjc4IDg5IDI2NS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxnUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDgwTDIyNCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYtNDggMCAwLTE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNjggMjg4bC0zMjAgMCAwIDEyOGMwIDguOCA3LjIgMTYgMTYgMTZsMjg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4ek02NCAxNjBsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0sbjdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1oZWFydHMiLGljb246WzUxMiw1MTIsWzEyODUyNSwiZ3Jpbi1oZWFydHMiXSwiZjU4NCIsIk00NjQgMjU2YzAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM0OCAzNzAuOSA0OCAyNTZjMC0zLjUgLjEtNy4xIC4zLTEwLjYtMTQtMTMuOS0yOS43LTMzLjEtMzkuMy01Ni43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2UzUxMiAzOTcuNCA1MTIgMjU2YzAtMjMuMy0zLjEtNDUuOS04LjktNjcuMy05LjYgMjMuNy0yNS40IDQyLjgtMzkuMyA1Ni43IC4yIDMuNSAuMyA3IC4zIDEwLjZ6TTM2OCA1OC45YzExLjctNiAyNC41LTkuNiAzNy43LTEwLjYtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MxMy4yIDEgMjYgNC42IDM3LjcgMTAuNiAxMy44LTcuMSAyOS4zLTEwLjkgNDUuMS0xMC45bDIuOSAwYzguOSAwIDE3LjYgMS4yIDI1LjggMy41IDEyLjQtMi4zIDI1LjItMy41IDM4LjItMy41czI1LjggMS4yIDM4LjIgMy41YzguMi0yLjMgMTYuOS0zLjUgMjUuOC0zLjVsMi45IDBjMTUuOCAwIDMxLjMgMy44IDQ1LjEgMTAuOXptNC4yIDI0My40Yy0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCAxOS44IDU1LjkgNzMuMSA5NS45IDEzNS44IDk1LjkgNjIuNyAwIDExNi00MC4xIDEzNS44LTk2IDQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOHpNMzIyLjkgOTZMMzIwIDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOXptLTE4OCAxNC45Yy05LjUtOS41LTIyLjUtMTQuOS0zNi0xNC45TDk2IDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMXoiXX0sYlJ0PW43ZSxsN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNDAgMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTY0LTkyYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sdlJ0PWw3ZSx4UnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1wZGYiLGljb246WzU3Niw1MTIsW10sImYxYzEiLCJNMjA4IDQ4TDk2IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMCA0OC04MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDIyOS41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzk3LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDE0OS41LTQ4IDAgMC0xMjgtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzQ4LjEgMTYwTDI1NiA2Ny45IDI1NiAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0yNDAgMzgwbDMyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTEyIDAgMCAyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiA4MGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTEyIDAgMCA0MCAxMiAwem05Ni04MGwzMiAwYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgNjRjMCAyOC43LTIzLjMgNTItNTIgNTJsLTMyIDBjLTExIDAtMjAtOS0yMC0yMGwwLTEyOGMwLTExIDktMjAgMjAtMjB6bTMyIDEyOGM2LjYgMCAxMi01LjQgMTItMTJsMC02NGMwLTYuNi01LjQtMTItMTItMTJsLTEyIDAgMCA4OCAxMiAwem03Ni0xMDhjMC0xMSA5LTIwIDIwLTIwbDQ4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgMjQgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTI4IDAgMCA0NGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjh6Il19LGM3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMjI0IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTk2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0seVJ0PWM3ZSxkN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTEyNS4yIDc2LjRjLTYuNS0xNCA1LTI4LjQgMjAuNC0yOC40bDIyMC44IDBjMTUuNCAwIDI2LjggMTQuNCAyMC40IDI4LjQtMjIuOCA0OS40LTcyLjggODMuNi0xMzAuOCA4My42cy0xMDcuOS0zNC4yLTEzMC44LTgzLjZ6bS0yLjYtMTczLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sd1J0PWQ3ZSx1N2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLXdpbmstaGVhcnQiLGljb246WzY0MCw1MTIsWzEyODUzNiwia2lzcy13aW5rLWhlYXJ0Il0sImY1OTgiLCJNMzg2IDQzOS41Yy0yOS4yIDE1LjYtNjIuNSAyNC41LTk4IDI0LjUtMTE0LjkgMC0yMDgtOTMuMS0yMDgtMjA4UzE3My4yIDQ4IDI4OCA0OGMxMTMuMiAwIDIwNS4yIDkwLjQgMjA3LjkgMjAyLjkgMTQuMyAxLjUgMjguNiA2IDQxLjkgMTMuNyAyIDEuMiA0IDIuNCA1LjkgMy43IC4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy01LjgtMTIuOS0xMi0yOC41LTE3LjItNDUuMnpNMjU2IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC0xMi4zLTQuNi0yMy41LTEyLjItMzIgNy42LTguNSAxMi4yLTE5LjcgMTIuMi0zMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tNDgtNDhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNTItNDRsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxrUnQ9dTdlLFBiPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvcHkiLGljb246WzQ0OCw1MTIsW10sImYwYzUiLCJNMzg0IDMzNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTMzLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0MDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNnpNMTkyIDM4NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM3MC43IDE4LjdDMzU4LjcgNi43IDM0Mi41IDAgMzI1LjUgMEwxOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi00OCAwIDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwIDAtNDgtMTYgMHoiXX0sU1J0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLWtpbmciLGljb246WzQ0OCw1MTIsWzk4MThdLCJmNDNmIiwiTTIyNC0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDAgMCA4MCAxNjEuOCAwYzIxLjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgNi40LTEuNiAxMi43LTQuNyAxOC4zTDM1Ny4yIDM3NC41IDQwNS42IDQzNWM2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNzkuNCA1MTJjLTI2LjIgMC00Ny40LTIxLjItNDcuNC00Ny40IDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZMOTAuOCAzNzQuNSA0LjcgMjE2LjZDMS42IDIxMC45IDAgMjA0LjYgMCAxOTguMiAwIDE3Ny4xIDE3LjEgMTYwIDM4LjIgMTYwbDE2MS44IDAgMC04MC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTMxLjggNDAwbC0zLjYgNC40LTQ3LjYgNTkuNiAyODYuNiAwLTQ3LjYtNTkuNi0zLjYtNC40LTE4NC4zIDB6bTEuMS00OC41bC4zIC41IDE4MS42IDAgLjMtLjUgNzguMy0xNDMuNS0zMzguNyAwIDc4LjMgMTQzLjV6Il19LHA3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtcGx1cyIsaWNvbjpbNDQ4LDUxMixbNjE4NDYsInBsdXMtc3F1YXJlIl0sImYwZmUiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxfUnQ9cDdlLE1SdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMTcwLjIgMjk1LjZjOC42LTEwLjEgNy41LTI1LjItMi42LTMzLjhzLTI1LjItNy41LTMzLjggMi42bC00OCA1NmMtNy43IDktNy43IDIyLjIgMCAzMS4ybDQ4IDU2YzguNiAxMC4xIDIzLjggMTEuMiAzMy44IDIuNnMxMS4yLTIzLjggMi42LTMzLjhsLTM0LjYtNDAuNCAzNC42LTQwLjR6bTgwLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LGg3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4td2luayIsaWNvbjpbNTEyLDUxMixbImdyaW4td2luayJdLCJmNThjIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSx6UnQ9aDdlLGY3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb25leS1iaWxsLTEiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLWFsdCJdLCJmM2QxIiwiTTExMiAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMjg4IDBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC0xNjBjLTM1LjMgMC02NC0yOC43LTY0LTY0bC0yODggMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMjU2IDE2YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptLTE2IDQ0Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxDUnQ9ZjdlLFRSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0xNzYuOSAxMTEuMWMzMi4xLTE4LjkgNjkuMi0zMS4xIDExMS4xLTMxLjEgNjUuMiAwIDExOC44IDI5LjYgMTU5LjkgNjcuNyAzOC41IDM1LjcgNjUuMSA3OC4zIDc4LjYgMTA4LjMtMTMuNiAzMC00MC4yIDcyLjUtNzguNiAxMDguMy0zLjEgMi44LTYuMiA1LjYtOS40IDguNEwzOTMuOCAzMjhjMTQtMjAuNSAyMi4yLTQ1LjMgMjIuMi03MiAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOC0yNi43IDAtNTEuNSA4LjItNzIgMjIuMmwtMzkuMS0zOS4xem0xODIgMTgybC0xMDgtMTA4YzExLjEtNS44IDIzLjctOS4xIDM3LjEtOS4xIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTMuNC0zLjMgMjYtOS4xIDM3LjF6TTEwMy40IDE3My4ybC0zNC0zNGMtMzIuNiAzNi44LTU1IDc1LjgtNjYuOSAxMDQuNS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjYgMzcuMyAwIDcxLjItNy45IDEwMS41LTIwLjZMMzUyLjIgNDIyYy0yMCA2LjQtNDEuNCAxMC02NC4yIDEwLTY1LjIgMC0xMTguOC0yOS42LTE1OS45LTY3LjctMzguNS0zNS43LTY1LjEtNzguMy03OC42LTEwOC4zIDEwLjQtMjMuMSAyOC42LTUzLjYgNTQtODIuOHoiXX0sJFJ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtd29yZCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMiIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem03MS4zIDI3NC4yYy0zLjItMTIuOS0xNi4yLTIwLjctMjkuMS0xNy41Uzg1LjUgMjczIDg4LjcgMjg1LjhsMzIgMTI4YzIuNSAxMC4yIDExLjQgMTcuNSAyMS45IDE4LjFzMjAuMS01LjcgMjMuOC0xNS41bDI1LjUtNjguMSAyNS41IDY4LjFjMy43IDkuOCAxMy4zIDE2LjEgMjMuOCAxNS41czE5LjQtNy45IDIxLjktMTguMWwzMi0xMjhjMy4yLTEyLjktNC42LTI1LjktMTcuNS0yOS4xcy0yNS45IDQuNi0yOS4xIDE3LjVsLTEzLjMgNTMuMi0yMC45LTU1LjhDMjExIDI2Mi4yIDIwMiAyNTYgMTkyIDI1NnMtMTkgNi4yLTIyLjUgMTUuNmwtMjAuOSA1NS44LTEzLjMtNTMuMnoiXX0sbTdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtYW5ncnkiLGljb246WzUxMiw1MTIsWzEyODU0NCwiYW5ncnkiXSwiZjU1NiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMTQ0YzI0LjEgMCA0NS40IDExLjggNTguNSAzMCA3LjcgMTAuOCAyMi43IDEzLjIgMzMuNSA1LjVzMTMuMi0yMi43IDUuNS0zMy41Yy0yMS43LTMwLjItNTcuMy01MC05Ny41LTUwcy03NS43IDE5LjgtOTcuNSA1MGMtNy43IDEwLjgtNS4zIDI1LjggNS41IDMzLjVzMjUuOCA1LjMgMzMuNS01LjVjMTMuMS0xOC4yIDM0LjQtMzAgNTguNS0zMHptLTgwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtLjMgOS43IDMuMmMxMC41IDMuNSAyMS44LTIuMiAyNS4zLTEyLjZzLTIuMi0yMS44LTEyLjYtMjUuM2wtOTYtMzJjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNsMjguOSA5LjZjLTQuMSA1LjQtNi42IDEyLjEtNi42IDE5LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTcuMy0yLjQtMTQtNi42LTE5LjRsMjguOS05LjZjMTAuNS0zLjUgMTYuMS0xNC44IDEyLjYtMjUuM3MtMTQuOC0xNi4xLTI1LjMtMTIuNmwtOTYgMzJjLTEwLjUgMy41LTE2LjEgMTQuOC0xMi42IDI1LjNzMTQuOCAxNi4xIDI1LjMgMTIuNmw5LjctMy4yIDAgLjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnoiXX0sRFJ0PW03ZSxMUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOls0NDgsNTEyLFs5ODIyXSwiZjQ0MSIsIk0yMzItMzJjMTEwLjUgMCAyMDAgODkuNSAyMDAgMjAwbDAgMTI3LjdjMCAxOC45LTYuMSAzNy4xLTE3LjIgNTIuMmwtNS4xIDYuMi0zNi4zIDQwLjcgMzIuMSA0MC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNmwtLjIgNC44Yy0yLjQgMjMuOS0yMi42IDQyLjUtNDcuMSA0Mi41bC0yODkuMiAwLTQuOC0uMmMtMjMuOS0yLjQtNDIuNS0yMi42LTQyLjUtNDcuMSAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDM3LjYtNDcgMC0yNC4zYzAtMjQuMyAxMC4xLTQ3LjYgMjcuOC02NC4ybDYzLjUtNTkuNS0xNy40IDAtLjIgLjJjLTIwLjMgMjAuMy00OS42IDI4LjItNzcuMSAyMS4xbC01LjUtMS42Yy0zMC45LTEwLjMtNTIuMy0zOC01NC45LTcwLjFsLS4yLTYuNCAwLTEuNGMwLTE5LjcgNy4xLTM4LjggMTkuOS01My44bDc2LjEtODguOCAwLTQ3LjEgLjEtMi41QzExMy40LTIyLjYgMTIzLjYtMzIgMTM2LTMybDk2IDB6TTgwLjcgNDY0bDI4Ni42IDAtMzguNC00OC0yMDkuOSAwLTM4LjQgNDh6TTE2MCA0OGMwIDUuNy0yLjEgMTEuMy01LjggMTUuNkw3Mi4zIDE1OS4xQzY3IDE2NS40IDY0IDE3My40IDY0IDE4MS43bDAgMS40IC40IDUuMmMxLjkgMTEuOSAxMC4zIDIxLjkgMjEuOSAyNS44bDQuNSAxLjFjMTAuNSAxLjkgMjEuMy0xLjQgMjktOWw3LjItNy4yIDMuNy0zYzMuOS0yLjYgOC41LTQgMTMuMy00bDg4IDBjOS44IDAgMTguNyA2IDIyLjMgMTUuMnMxLjMgMTkuNi01LjkgMjYuM2wtMTA3LjggMTAxYy04LjEgNy42LTEyLjcgMTguMS0xMi43IDI5LjJsMCA0LjMgMjA1LjIgMCA0MC43LTQ1LjggMi4zLTIuOGM1LjEtNi44IDcuOC0xNS4yIDcuOC0yMy43TDM4NCAxNjhjMC04My45LTY4LjEtMTUyLTE1Mi0xNTJsLTcyIDAgMCAzMnptMzIgNzJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxnN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sRVJ0PWc3ZSxQUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wZWFjZSIsaWNvbjpbNDQ4LDUxMixbOTk5Nl0sImYyNWIiLCJNMjE5IDEuNGMtMzUuMi0zLjctNjYuNiAyMS44LTcwLjMgNTdsLTYuNCA2MC42LTE3LjQtNDkuNEMxMTMuMiAzNi4zIDc2LjYgMTguOCA0My4zIDMwLjVTLTcuNiA3OC44IDQuMSAxMTIuMUw1Ni45IDI2Mi4yQzQxLjcgMjc2LjcgMzIuMiAyOTcuMyAzMi4yIDMyMGwwIDI0YzAgOTIuOCA3NS4yIDE2OCAxNjggMTY4bDQ4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC0xMjBjMC0zNS4zLTI4LjctNjQtNjQtNjQtNy45IDAtMTUuNCAxLjQtMjIuNCA0LTEwLjQtMjEuMy0zMi4zLTM2LTU3LjYtMzYtLjcgMC0xLjUgMC0yLjIgMGw1LjktNTYuM2MzLjctMzUuMi0yMS44LTY2LjYtNTctNzAuM3ptLS4yIDE1NS40Yy02LjYgMTAuMS0xMC41IDIyLjItMTAuNSAzNS4ybDAgNDhjMCAuNyAwIDEuNCAwIDItNS4xLTEuMy0xMC41LTItMTYtMmwtNy40IDAtNS40LTE1LjMgMTctMTYxLjNjLjktOC44IDguOC0xNS4yIDE3LjYtMTQuMnMxNS4yIDguOCAxNC4yIDE3LjZsLTkuNSA5MC4xek03OS42IDg1LjZsNTQuMyAxNTQuNC0yMS43IDBjLTQgMC04IC4zLTExLjkgLjlMNDkuNCA5Ni4yYy0yLjktOC4zIDEuNS0xNy41IDkuOC0yMC40czE3LjUgMS41IDIwLjQgOS44ek0yNTYuMiAxOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDh6bTM4LjQgMTA4YzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzYgNS41IDAgMTAuOS0uNyAxNi0ybDAgMTBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTQ4IDBjLTY2LjMgMC0xMjAtNTMuNy0xMjAtMTIwbDAtMjRjMC0xNy43IDE0LjMtMzIgMzItMzJsODAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtLjcgMC0xLjQgMC0yIDUuMSAxLjMgMTAuNSAyIDE2IDIgNy45IDAgMTUuNC0xLjQgMjIuNC00em03My42LTI4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4eiJdfSxJUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tcGFzcyIsaWNvbjpbNTEyLDUxMixbMTI5NTE3XSwiZjE0ZSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMwNi43IDY5LjFMMTYyLjQgMzgwLjZjLTE5LjQgNy41LTM4LjUtMTEuNi0zMS0zMWw1NS41LTE0NC4zYzMuMy04LjUgOS45LTE1LjEgMTguNC0xOC40bDE0NC4zLTU1LjVjMTkuNC03LjUgMzguNSAxMS42IDMxIDMxTDMyNS4xIDMwNi43Yy0zLjMgOC41LTkuOSAxNS4xLTE4LjQgMTguNHpNMjg4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxBUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlIixpY29uOls0NDgsNTEyLFs5NjMyLDk3MjMsOTcyNCw2MTU5MF0sImYwYzgiLCJNMzg0IDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyMGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxiN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluIixpY29uOls1MTIsNTEyLFsxMjg1MTIsImdyaW4iXSwiZjU4MCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sTlJ0PWI3ZSx2N2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZSIsaWNvbjpbNTEyLDUxMixbMTI4NTc4LCJzbWlsZSJdLCJmMTE4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc3LjMgNjMuNEMxOTIuMyAzMzUgMjE4LjQgMzUyIDI1NiAzNTJzNjMuNy0xNyA3OC43LTMyLjZjOS4yLTkuNiAyNC40LTkuOSAzMy45LS43czkuOSAyNC40IC43IDMzLjljLTIyLjEgMjMtNjAgNDcuNC0xMTMuMyA0Ny40cy05MS4yLTI0LjQtMTEzLjMtNDcuNGMtOS4yLTkuNi04LjktMjQuOCAuNy0zMy45czI0LjgtOC45IDMzLjkgLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUlJ0PXY3ZSx4N2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MjIsInNtaWxlLWJlYW0iXSwiZjViOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sT1J0PXg3ZSxGUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLWNsb3NlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTE4NSIsIk00NDggNDAwTDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTQ0IDQxNiAwIDAgMTQ0YzAgOC44LTcuMiAxNi0xNiAxNnptMTYtMjA4bC00MTYgMCAwLTk2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzguNyAwYzMuNSAwIDYuOCAxLjEgOS42IDMuMkwyNTAuNyAxMTJjMTMuOCAxMC40IDMwLjcgMTYgNDggMTZMNDQ4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OHpNNjQgNDQ4bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjQwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDI5OC43IDgwYy02LjkgMC0xMy43LTIuMi0xOS4yLTYuNEwyNDEuMSA0NC44QzIzMCAzNi41IDIxNi41IDMyIDIwMi43IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LEJSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJrZXlib2FyZCIsaWNvbjpbNTc2LDUxMixbOWUzXSwiZjExYyIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE3NiAzMjBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em0tNzItNzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnoiXX0seTdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utcm9sbGluZy1leWVzIixpY29uOls1MTIsNTEyLFsxMjg1ODAsIm1laC1yb2xsaW5nLWV5ZXMiXSwiZjVhNSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMTYwIDI2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC05LjUgMy4zLTE4LjEgOC44LTI1IDMuMiAxNC4zIDE2IDI1IDMxLjIgMjVzMjgtMTAuNyAzMS4yLTI1YzUuNSA2LjggOC44IDE1LjUgOC44IDI1IDAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDQwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xOTItNDBjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtOS41IDMuMy0xOC4xIDguOC0yNSAzLjIgMTQuMyAxNiAyNSAzMS4yIDI1czI4LTEwLjcgMzEuMi0yNWM1LjUgNi44IDguOCAxNS41IDguOCAyNSAwIDIyLjEtMTcuOSA0MC00MCA0MHptMCA0MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sSFJ0PXk3ZSx3N2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmltYWNlIixpY29uOls1MTIsNTEyLFsxMjg1NTYsImdyaW1hY2UiXSwiZjU3ZiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE1MiAzNTJjMCAxMS45IDguNiAyMS44IDIwIDIzLjdsMC00Ny4zYy0xMS40IDEuOS0yMCAxMS44LTIwIDIzLjd6bTg0IDI0bDAtNDgtMjQgMCAwIDQ4IDI0IDB6bTY0IDBsMC00OC0yNCAwIDAgNDggMjQgMHptNDAtLjNjMTEuNC0xLjkgMjAtMTEuOCAyMC0yMy43cy04LjYtMjEuOC0yMC0yMy43bDAgNDcuM3pNMTc2IDI4OGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTYwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjR6bTAtMTEyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHFSdD13N2UsazdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3QiLGljb246WzUxMiw1MTIsWzEyODI4MCwiZG90LWNpcmNsZSJdLCJmMTkyIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTQ2NGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6bTAgMzA0YTk2IDk2IDAgMSAxIDAtMTkyIDk2IDk2IDAgMSAxIDAgMTkyeiJdfSxqUnQ9azdlLFZSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJvYmplY3QtZ3JvdXAiLGljb246WzU3Niw1MTIsW10sImYyNDciLCJNNDAgNjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDggNTkuM2MxNi02LjUgMjguOS0xOS4zIDM1LjMtMzUuM2wzMjkuMyAwYzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMjY1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0zMjkuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTI2NS4zek01MTIgMGMtMjYuOSAwLTQ5LjkgMTYuNS01OS4zIDQwTDEyMy4zIDQwQzExMy45IDE2LjUgOTAuOSAwIDY0IDAgMjguNyAwIDAgMjguNyAwIDY0IDAgOTAuOSAxNi41IDExMy45IDQwIDEyMy4zbDAgMjY1LjNjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMzI5LjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjY1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0ek00ODggNjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNjQgNDI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDI0IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTE5MiAxNzZsODggMCAwIDU2LTg4IDAgMC01NnptLTgtNDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTA0IDB6bTcyIDE4NGwwIDI0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTI0IDBjMCAxNC42LTMuOSAyOC4yLTEwLjcgNDBsMjYuNyAwIDAgNTYtODggMCAwLTE2LjRjLTIuNiAuMy01LjMgLjQtOCAuNGwtMzIgMHoiXX0sUzdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE2MCAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTkyIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6TTE2MCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0wIDEyOGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTQ0LTgwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sVVJ0PVM3ZSxfN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmLXN0cm9rZSIsaWNvbjpbNTc2LDUxMixbInN0YXItaGFsZi1hbHQiXSwiZjVjMCIsIk0zMDkuNS0xOC45Yy00LjEtOC0xMi40LTEzLjEtMjEuNC0xMy4xcy0xNy4zIDUuMS0yMS40IDEzLjFMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyODguMSA0MTcuNiA0MzIuNCA0OTFjOCA0LjEgMTcuNyAzLjMgMjUtMnMxMS0xNC4yIDkuNi0yMy4yTDQ0MS43IDMwNS45IDU1Ni4xIDE5MS40YzYuNC02LjQgOC42LTE1LjggNS44LTI0LjRzLTEwLjEtMTQuOS0xOS4xLTE2LjNMMzgzIDEyNS4zIDMwOS41LTE4Ljl6TTI2NC4xIDkxLjhsMCAyODQuMS0xMDAuMSA1MC45IDE5LjgtMTI1LjVjMS4yLTcuNi0xLjMtMTUuMy02LjctMjAuN2wtODkuOC04OS45IDEyNS41LTIwYzcuNi0xLjIgMTQuMS02IDE3LjYtMTIuOGwzMy44LTY2LjJ6bTQ4IDI4NC4xbDAtMjg0LjEgMzMuOCA2Ni4yYzMuNSA2LjggMTAgMTEuNiAxNy42IDEyLjhsMTI1LjUgMjAtODkuOCA4OS45Yy01LjQgNS40LTcuOSAxMy4xLTYuNyAyMC43bDE5LjggMTI1LjUtMTAwLjEtNTAuOXoiXX0sV1J0PV83ZSxHUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS12aWRlbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjOCIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek04MCAyODhsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LE03ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWxhdWdoIixpY29uOls1MTIsNTEyLFsibGF1Z2giXSwiZjU5OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxLUnQ9TTdlLFlSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50ZXIiLGljb246WzQ0OCw1MTIsW10sImYyNWEiLCJNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMzZjMCAxMC4zIDYuNiAxOS41IDE2LjQgMjIuOHMyMC42LS4xIDI2LjgtOC4zYzMtMy45IDcuNi02LjQgMTIuOC02LjQgOC44IDAgMTYgNy4yIDE2IDE2IDAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDcuOCAwIDE0LjMgNS42IDE1LjcgMTMgMS42IDguMiA3LjMgMTUuMSAxNS4xIDE4czE2LjcgMS42IDIzLjMtMy42YzIuNy0yLjEgNi4xLTMuNCA5LjktMy40IDguOCAwIDE2IDcuMiAxNiAxNmwwIDEyMGMwIDM5LjgtMzIuMiA3Mi03MiA3MmwtMTE2LjYgMGMtMzcuNCAwLTcyLjQtMTguNy05My4yLTQ5LjlMNTAuNyAzMTIuOWMtNC45LTcuNC0yLjktMTcuMyA0LjQtMjIuMnMxNy4zLTIuOSAyMi4yIDQuNEwxMTYgMzUzLjJjNS45IDguOCAxNi44IDEyLjcgMjYuOSA5LjdzMTctMTIuNCAxNy0yM0wxNjAgNjR6TTE3NiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE5Ny43QzkxLjIgMjM4IDU1LjUgMjMyLjggMjguNSAyNTAuNy0uOSAyNzAuNC04LjkgMzEwLjEgMTAuOCAzMzkuNUw3OC4zIDQ0MC44YzI5LjcgNDQuNSA3OS42IDcxLjIgMTMzLjEgNzEuMkwzMjggNTEyYzY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDAtMTIwYzAtMzUuMy0yOC43LTY0LTY0LTY0LTQuNSAwLTguOCAuNS0xMyAxLjMtMTEuNy0xNS40LTMwLjItMjUuMy01MS0yNS4zLTYuOSAwLTEzLjUgMS4xLTE5LjcgMy4xLTExLjYtMTYuNC0zMC43LTI3LjEtNTIuMy0yNy4xLTIuNyAwLTUuNCAuMi04IC41TDI0MCA2NGMwLTM1LjMtMjguNy02NC02NC02NHptNDggMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2em00OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnptODAgMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6Il19LFpSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWdpc3RlcmVkIixpY29uOls1MTIsNTEyLFsxNzRdLCJmMjVkIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTU2IDM0LjQgMCA0MSA2OC4zYzYuOCAxMS40IDIxLjYgMTUgMzIuOSA4LjJzMTUtMjEuNiA4LjItMzIuOWwtMzAuMi01MC4zYzI0LjYtMTEuNSA0MS42LTM2LjQgNDEuNi02NS4zIDAtMzkuOC0zMi4yLTcyLTcyLTcybC04MCAwem03MiA5NmwtNDggMCAwLTQ4IDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMHoiXX0sZldhPXtmYVNxdWFyZU1pbnVzOmlnZSxmYU1pbnVzU3F1YXJlOlBJdCxmYUNhbGVuZGFyQ2hlY2s6SUl0LGZhRmFjZUtpc3M6cmdlLGZhS2lzczpBSXQsZmFQYXN0ZTpRMyxmYUZpbGVDbGlwYm9hcmQ6Tkl0LGZhSGFuZFBvaW50TGVmdDpSSXQsZmFGaWxlRXhjZWw6T0l0LGZhRW52ZWxvcGU6Rkl0LGZhU3F1YXJlQ2FyZXREb3duOm9nZSxmYUNhcmV0U3F1YXJlRG93bjpCSXQsZmFUcnVjazpISXQsZmFCZWxsOnFJdCxmYU1lc3NhZ2U6SjMsZmFDb21tZW50QWx0OmpJdCxmYUZhY2VEaXp6eTpuZ2UsZmFEaXp6eTpWSXQsZmFDYWxlbmRhckRheXM6bGdlLGZhQ2FsZW5kYXJBbHQ6VUl0LGZhSGFuZFBvaW50VXA6V0l0LGZhSGFuZExpemFyZDpHSXQsZmFTcXVhcmVGdWxsOktJdCxmYUNpcmNsZVBhdXNlOmNnZSxmYVBhdXNlQ2lyY2xlOllJdCxmYUhhcmREcml2ZTpkZ2UsZmFIZGQ6Wkl0LGZhRmlsZVppcHBlcjp1Z2UsZmFGaWxlQXJjaGl2ZTpYSXQsZmFGbG9wcHlEaXNrOnBnZSxmYVNhdmU6UUl0LGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQ6aGdlLGZhR3JpblRvbmd1ZVNxdWludDpKSXQsZmFDYW1lcmE6ZmdlLGZhQ2FtZXJhQWx0OmVBdCxmYUZhY2VHcmluU3RhcnM6bWdlLGZhR3JpblN0YXJzOnRBdCxmYUV5ZTphQXQsZmFGYWNlU2FkVGVhcjpnZ2UsZmFTYWRUZWFyOnNBdCxmYVNoYXJlRnJvbVNxdWFyZTpiZ2UsZmFTaGFyZVNxdWFyZTppQXQsZmFOb3RlU3RpY2t5OnZnZSxmYVN0aWNreU5vdGU6ckF0LGZhSGFuZEJhY2tGaXN0OnhnZSxmYUhhbmRSb2NrOm9BdCxmYUNoZXNzUXVlZW46bkF0LGZhRmFjZUdyaW5UZWFyczp5Z2UsZmFHcmluVGVhcnM6bEF0LGZhUGVuVG9TcXVhcmU6d2dlLGZhRWRpdDpjQXQsZmFGYWNlR3JpbkJlYW1Td2VhdDprZ2UsZmFHcmluQmVhbVN3ZWF0OmRBdCxmYUNsb2NrOlNnZSxmYUNsb2NrRm91cjp1QXQsZmFGYWNlTGF1Z2hXaW5rOl9nZSxmYUxhdWdoV2luazpwQXQsZmFQYXBlclBsYW5lOmhBdCxmYUhlYXJ0OmZBdCxmYUZvbnRBd2Vzb21lOlpyZSxmYUZvbnRBd2Vzb21lRmxhZzptQXQsZmFGb250QXdlc29tZUxvZ29GdWxsOmdBdCxmYUNsb25lOmJBdCxmYUZvbGRlck9wZW46dkF0LGZhV2luZG93TWluaW1pemU6eEF0LGZhU3RhckhhbGY6eUF0LGZhQWxhcm1DbG9jazp3QXQsZmFOZXdzcGFwZXI6a0F0LGZhSG9zcGl0YWw6WHJlLGZhSG9zcGl0YWxBbHQ6U0F0LGZhSG9zcGl0YWxXaWRlOl9BdCxmYUNpcmNsZVN0b3A6TWdlLGZhU3RvcENpcmNsZTpNQXQsZmFPYmplY3RVbmdyb3VwOnpBdCxmYUNvbW1lbnQ6Q0F0LGZhQ2hlc3NQYXduOlRBdCxmYUNhbGVuZGFyUGx1czokQXQsZmFDbGlwYm9hcmQ6REF0LGZhVGh1bWJzRG93bjpMQXQsZmFJZEJhZGdlOkVBdCxmYVNxdWFyZUNoZWNrOnpnZSxmYUNoZWNrU3F1YXJlOlBBdCxmYUNoZXNzQmlzaG9wOklBdCxmYUVudmVsb3BlT3BlbjpBQXQsZmFDaXJjbGVYbWFyazp1aCxmYVRpbWVzQ2lyY2xlOk5BdCxmYVhtYXJrQ2lyY2xlOlJBdCxmYVNxdWFyZUNhcmV0VXA6Q2dlLGZhQ2FyZXRTcXVhcmVVcDpPQXQsZmFGaWxlSW1hZ2U6RkF0LGZhU3F1YXJlQ2FyZXRSaWdodDpUZ2UsZmFDYXJldFNxdWFyZVJpZ2h0OkJBdCxmYVN1bjpFYixmYUltYWdlOkhBdCxmYUxpZ2h0YnVsYjpxQXQsZmFBZGRyZXNzQ2FyZDpRcmUsZmFDb250YWN0Q2FyZDpqQXQsZmFWY2FyZDpWQXQsZmFGYWNlTWVoOiRnZSxmYU1laDpVQXQsZmFNYXA6V0F0LGZhSGFuZFBvaW50RG93bjpHQXQsZmFGYWNlTWVoQmxhbms6RGdlLGZhTWVoQmxhbms6S0F0LGZhRmFjZUdyaW5Ub25ndWU6TGdlLGZhR3JpblRvbmd1ZTpZQXQsZmFGdXRib2w6SnJlLGZhRnV0Ym9sQmFsbDpaQXQsZmFTb2NjZXJCYWxsOlhBdCxmYUZhY2VTdXJwcmlzZTpFZ2UsZmFTdXJwcmlzZTpRQXQsZmFGb2xkZXI6UGdlLGZhRm9sZGVyQmxhbms6SkF0LGZhQ2xvdWQ6ZU50LGZhQ2lyY2xlOnROdCxmYUZhY2VHcmluU3F1aW50OklnZSxmYUdyaW5TcXVpbnQ6YU50LGZhQ2lyY2xlVXNlcjpBZ2UsZmFVc2VyQ2lyY2xlOnNOdCxmYVJlY3RhbmdsZUxpc3Q6TmdlLGZhTGlzdEFsdDppTnQsZmFIYW5kOlJnZSxmYUhhbmRQYXBlcjpyTnQsZmFUaHVtYnNVcDpvTnQsZmFCdWlsZGluZzpuTnQsZmFDaGVzc1Jvb2s6bE50LGZhQ2lyY2xlUXVlc3Rpb246T2dlLGZhUXVlc3Rpb25DaXJjbGU6Y050LGZhRmlsZTpkTnQsZmFGYWNlU2FkQ3J5OkZnZSxmYVNhZENyeTp1TnQsZmFDYWxlbmRhck1pbnVzOnBOdCxmYUZhY2VUaXJlZDpCZ2UsZmFUaXJlZDpoTnQsZmFIYW5kUG9pbnRSaWdodDpmTnQsZmFDaXJjbGVVcDpIZ2UsZmFBcnJvd0FsdENpcmNsZVVwOm1OdCxmYUhhbmRTY2lzc29yczpnTnQsZmFHZW06Yk50LGZhUmVjdGFuZ2xlWG1hcms6S2ssZmFSZWN0YW5nbGVUaW1lczp2TnQsZmFUaW1lc1JlY3RhbmdsZTp4TnQsZmFXaW5kb3dDbG9zZTp5TnQsZmFUcmFzaENhbjplZixmYVRyYXNoQWx0OndOdCxmYUxpZmVSaW5nOmtOdCxmYUNvcHlyaWdodDpTTnQsZmFDaXJjbGVMZWZ0OnFnZSxmYUFycm93QWx0Q2lyY2xlTGVmdDpfTnQsZmFDYWxlbmRhcjpNTnQsZmFGYWNlRnJvd25PcGVuOmpnZSxmYUZyb3duT3Blbjp6TnQsZmFDaGFydEJhcjpWZ2UsZmFCYXJDaGFydDpDTnQsZmFIb3VzZTpZayxmYUhvbWU6VE50LGZhSG9tZUFsdDokTnQsZmFIb21lTGdBbHQ6RE50LGZhRmFjZUZyb3duOlVnZSxmYUZyb3duOkxOdCxmYVVzZXI6ZW9lLGZhVXNlckFsdDpFTnQsZmFVc2VyTGFyZ2U6UE50LGZhU25vd2ZsYWtlOklOdCxmYUJvb2ttYXJrOkFOdCxmYVNxdWFyZUNhcmV0TGVmdDpXZ2UsZmFDYXJldFNxdWFyZUxlZnQ6Tk50LGZhSGFuZHNoYWtlOnRvZSxmYUhhbmRzaGFrZUFsdDpSTnQsZmFIYW5kc2hha2VTaW1wbGU6T050LGZhRmFjZVNtaWxlV2luazpHZ2UsZmFTbWlsZVdpbms6Rk50LGZhRmFjZUdyaW5TcXVpbnRUZWFyczpLZ2UsZmFHcmluU3F1aW50VGVhcnM6Qk50LGZhRmlsZUF1ZGlvOkhOdCxmYUNhbGVuZGFyWG1hcms6WWdlLGZhQ2FsZW5kYXJUaW1lczpxTnQsZmFDaXJjbGVEb3duOlpnZSxmYUFycm93QWx0Q2lyY2xlRG93bjpqTnQsZmFGaWxlTGluZXM6YW9lLGZhRmlsZUFsdDpWTnQsZmFGaWxlVGV4dDpVTnQsZmFDb21tZW50czpXTnQsZmFDaXJjbGVDaGVjazp0ZixmYUNoZWNrQ2lyY2xlOkdOdCxmYU1vb246S050LGZhQ2xvc2VkQ2FwdGlvbmluZzpZTnQsZmFJbWFnZXM6Wk50LGZhQ2lyY2xlUmlnaHQ6WGdlLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpYTnQsZmFJZENhcmQ6UWdlLGZhRHJpdmVyc0xpY2Vuc2U6UU50LGZhQ2lyY2xlUGxheTpKZ2UsZmFQbGF5Q2lyY2xlOkpOdCxmYUZhY2VMYXVnaEJlYW06ZTdlLGZhTGF1Z2hCZWFtOmVSdCxmYUFkZHJlc3NCb29rOnQ3ZSxmYUNvbnRhY3RCb29rOnRSdCxmYUhvdXJnbGFzczphN2UsZmFIb3VyZ2xhc3NFbXB0eTphUnQsZmFIZWFkcGhvbmVzOnNvZSxmYUhlYWRwaG9uZXNBbHQ6c1J0LGZhSGVhZHBob25lc1NpbXBsZTppUnQsZmFGaWxlUG93ZXJwb2ludDpyUnQsZmFXaW5kb3dNYXhpbWl6ZTpvUnQsZmFDb21tZW50RG90czpzN2UsZmFDb21tZW50aW5nOm5SdCxmYUZhY2VHcmluVG9uZ3VlV2luazppN2UsZmFHcmluVG9uZ3VlV2luazpsUnQsZmFIb3VyZ2xhc3NIYWxmOnI3ZSxmYUhvdXJnbGFzczI6Y1J0LGZhQ3JlZGl0Q2FyZDpvN2UsZmFDcmVkaXRDYXJkQWx0OmRSdCxmYUhhbmRTcG9jazp1UnQsZmFCZWxsU2xhc2g6cFJ0LGZhU3RhcjpoUnQsZmFGbGFnOmZSdCxmYUxlbW9uOm1SdCxmYVdpbmRvd1Jlc3RvcmU6Z1J0LGZhRmFjZUdyaW5IZWFydHM6bjdlLGZhR3JpbkhlYXJ0czpiUnQsZmFGYWNlS2lzc0JlYW06bDdlLGZhS2lzc0JlYW06dlJ0LGZhRmlsZVBkZjp4UnQsZmFGYWNlR3JpbldpZGU6YzdlLGZhR3JpbkFsdDp5UnQsZmFGYWNlTGF1Z2hTcXVpbnQ6ZDdlLGZhTGF1Z2hTcXVpbnQ6d1J0LGZhRmFjZUtpc3NXaW5rSGVhcnQ6dTdlLGZhS2lzc1dpbmtIZWFydDprUnQsZmFDb3B5OlBiLGZhQ2hlc3NLaW5nOlNSdCxmYVNxdWFyZVBsdXM6cDdlLGZhUGx1c1NxdWFyZTpfUnQsZmFGaWxlQ29kZTpNUnQsZmFGYWNlR3Jpbldpbms6aDdlLGZhR3Jpbldpbms6elJ0LGZhTW9uZXlCaWxsMTpmN2UsZmFNb25leUJpbGxBbHQ6Q1J0LGZhRXllU2xhc2g6VFJ0LGZhRmlsZVdvcmQ6JFJ0LGZhRmFjZUFuZ3J5Om03ZSxmYUFuZ3J5OkRSdCxmYUNoZXNzS25pZ2h0OkxSdCxmYUZhY2VHcmluQmVhbTpnN2UsZmFHcmluQmVhbTpFUnQsZmFIYW5kUGVhY2U6UFJ0LGZhQ29tcGFzczpJUnQsZmFTcXVhcmU6QVJ0LGZhRmFjZUdyaW46YjdlLGZhR3JpbjpOUnQsZmFGYWNlU21pbGU6djdlLGZhU21pbGU6UlJ0LGZhRmFjZVNtaWxlQmVhbTp4N2UsZmFTbWlsZUJlYW06T1J0LGZhRm9sZGVyQ2xvc2VkOkZSdCxmYUtleWJvYXJkOkJSdCxmYUZhY2VSb2xsaW5nRXllczp5N2UsZmFNZWhSb2xsaW5nRXllczpIUnQsZmFGYWNlR3JpbWFjZTp3N2UsZmFHcmltYWNlOnFSdCxmYUNpcmNsZURvdDprN2UsZmFEb3RDaXJjbGU6alJ0LGZhT2JqZWN0R3JvdXA6VlJ0LGZhRmFjZUZsdXNoZWQ6UzdlLGZhRmx1c2hlZDpVUnQsZmFTdGFySGFsZlN0cm9rZTpfN2UsZmFTdGFySGFsZkFsdDpXUnQsZmFGaWxlVmlkZW86R1J0LGZhRmFjZUxhdWdoOk03ZSxmYUxhdWdoOktSdCxmYUhhbmRQb2ludGVyOllSdCxmYVJlZ2lzdGVyZWQ6WlJ0fX0pO3ZhciBtV2EsWFJ0LFFSdCxKUnQsZU90LHRPdCxhT3Qsc090LGlPdCxyT3Qsb090LGlvZSxuT3QsbE90LGNPdCxkT3QsQzdlLHVPdCxUN2UscE90LGhPdCxmT3QsJDdlLG1PdCxnT3QsYk90LHZPdCxhZix4T3QseU90LEQ3ZSx3T3Qsa090LFNPdCxfT3QsTU90LHpPdCxDT3QsVE90LEw3ZSwkT3QsRE90LExPdCxFN2UsRU90LFBPdCxJT3QsQU90LE5PdCxzZixST3QsUDdlLE9PdCxGT3Qscm9lLEJPdCxIT3QsSTdlLHFPdCxBN2Usak90LFZPdCxON2UsVU90LFI3ZSxXT3QsTzdlLEdPdCxLT3QsWU90LFpPdCxYT3QsUU90LEpPdCxGN2UsZUZ0LHRGdCxhRnQsc0Z0LEI3ZSxpRnQsckZ0LG9GdCxuRnQsbEZ0LGNGdCxvb2UsZEZ0LHVGdCxwRnQsbm9lLGhGdCxmRnQsbUZ0LEg3ZSxnRnQsYkZ0LHZGdCx4RnQscTdlLHlGdCxPYix3RnQsRmIsa0Z0LFNGdCxqN2UsX0Z0LFY3ZSxNRnQsekZ0LGxvZSxDRnQsVEZ0LCRGdCxERnQsTEZ0LEVGdCxQRnQsSUZ0LEJiLHJmLEFGdCxORnQsVTdlLFJGdCxPRnQsWmssRkZ0LEJGdCxIRnQsVzdlLHFGdCxqRnQsVkZ0LEc3ZSxVRnQsSzdlLFdGdCxHRnQsS0Z0LFlGdCxZN2UsWkZ0LFhGdCxRRnQsWjdlLEpGdCxYN2UsZUJ0LHRCdCxhQnQsc0J0LGNvZSxpQnQsckJ0LG9CdCxuQnQsbEJ0LGNCdCxkQnQsUTdlLHVCdCxwQnQsaEJ0LGZCdCxtQnQsSjdlLGdCdCxiQnQsWGssdkJ0LHhCdCx5QnQsd0J0LGtCdCxTQnQsZG9lLF9CdCxNQnQsekJ0LENCdCxUQnQsZTllLCRCdCxEQnQsTEJ0LEVCdCxQQnQsSUJ0LHQ5ZSxBQnQsTkJ0LFJCdCxPQnQsYTllLEZCdCxCQnQsSEJ0LHM5ZSxxQnQsakJ0LGk5ZSxWQnQscjllLFVCdCxXQnQsbzllLEdCdCxLQnQsbjllLFlCdCxsOWUsWkJ0LFhCdCxvZixRQnQsbmYsSkJ0LGVIdCx1b2UsdEh0LGFIdCxzSHQsYzllLGlIdCxySHQsZDllLG9IdCxuSHQsbEh0LGNIdCx1OWUsZEh0LHVIdCxwSHQsaEh0LGZIdCxwOWUsbUh0LGdIdCxiSHQsdkh0LGg5ZSx4SHQsZjllLHlIdCx3SHQsa0h0LFNIdCxfSHQsbTllLE1IdCx6SHQsQ0h0LFRIdCxnOWUsJEh0LERIdCxiOWUsTEh0LHY5ZSxFSHQsUEh0LElIdCxBSHQsTkh0LFJIdCx4OWUsT0h0LEZIdCxCSHQsSEh0LHFIdCx5OWUsakh0LFZIdCxVSHQsV0h0LHc5ZSxHSHQsazllLEtIdCxIYixxYixTOWUsWUh0LF85ZSxaSHQsWEh0LFFIdCxmaCxNOWUsSkh0LGVxdCx0cXQsYXF0LHNxdCxpcXQsejllLHJxdCxqYixvcXQsbnF0LGxxdCxjcXQsZHF0LEM5ZSx1cXQsVDllLHBxdCxocXQsZnF0LG1xdCwkOWUsZ3F0LHBvZSxicXQsdnF0LHhxdCxEOWUseXF0LHdxdCxrcXQsU3F0LEw5ZSxfcXQsTXF0LHpxdCxDcXQsRTllLFRxdCwkcXQsRHF0LExxdCxFcXQsUHF0LElxdCxBcXQsTnF0LFJxdCxPcXQsRnF0LEJxdCxQOWUsSHF0LHFxdCxqcXQsVnF0LFVxdCxXcXQsR3F0LEk5ZSxLcXQsWXF0LFpxdCxJYixYcXQsUXF0LEpxdCxlanQsdGp0LEE5ZSxhanQsTjllLHNqdCxSOWUsaWp0LE85ZSxyanQsRjllLG9qdCxsZixuanQsQjllLGxqdCxIOWUsY2p0LHE5ZSxkanQsdWp0LHBqdCxoanQsajllLGZqdCxtanQsVjllLGdqdCxianQsVTllLHZqdCx4anQseWp0LHdqdCxXOWUsa2p0LFNqdCxfanQsRzllLE1qdCx6anQsUWssQ2p0LFRqdCwkanQsRGp0LExqdCxFanQsSzllLFBqdCxZOWUsSWp0LEFqdCxOanQsWjllLFJqdCxPanQsRmp0LFg5ZSxCanQsUTllLEhqdCxob2UscWp0LGpqdCxWanQsVWp0LFdqdCxHanQsS2p0LFlqdCxaanQsWGp0LFFqdCxKanQsZVZ0LHRWdCxKayxhVnQsc1Z0LGlWdCxyVnQsb1Z0LG5WdCxsVnQsY1Z0LEo5ZSxkVnQsdVZ0LHBWdCxoVnQsZlZ0LG1WdCxnVnQsYlZ0LHZWdCx4VnQsZWJlLHlWdCx3VnQsa1Z0LFNWdCxfVnQsTVZ0LHpWdCx0YmUsQ1Z0LGFiZSxUVnQsJFZ0LHNiZSxEVnQsTFZ0LEVWdCxQVnQsaWJlLElWdCxBVnQsTlZ0LHJiZSxSVnQsb2JlLE9WdCxGVnQsbmJlLEJWdCxIVnQscVZ0LGpWdCxsYmUsVlZ0LFVWdCxXVnQsVmIsR1Z0LEtWdCxZVnQsY2JlLFpWdCxYVnQsUVZ0LEpWdCxlVXQsZGJlLHRVdCxhVXQsc1V0LGlVdCxyVXQsdWJlLG9VdCxuVXQsbFV0LHBiZSxjVXQsZFV0LGZvZSx1VXQscFV0LGhVdCxmVXQsaGJlLG1VdCxnVXQsYlV0LGZiZSx2VXQsbWJlLHhVdCx5VXQsd1V0LGtVdCxjZixTVXQsZ2JlLF9VdCxNVXQselV0LENVdCxUVXQsYmJlLCRVdCx2YmUsRFV0LHhiZSxMVXQsRVV0LG1vZSxQVXQsSVV0LHliZSxBVXQsZ29lLE5VdCxSVXQsT1V0LEZVdCxCVXQsSFV0LHFVdCxqVXQsd2JlLFZVdCxVVXQsV1V0LEdVdCxLVXQsa2JlLFlVdCxaVXQsWFV0LFNiZSxRVXQsX2JlLEpVdCxNYmUsZVd0LHRXdCxhV3Qsc1d0LGlXdCxyV3Qsb1d0LHpiZSxuV3QsbFd0LGNXdCxkV3QsQ2JlLHVXdCxwV3QsaFd0LGZXdCxtV3QsZ1d0LFRiZSxiV3Qsdld0LCRiZSx4V3QseVd0LERiZSx3V3Qsa1d0LFNXdCxfV3QsTGJlLE1XdCx6V3QsQ1d0LEViZSxUV3QsUGJlLCRXdCxEV3QsTFd0LEVXdCxJYmUsUFd0LElXdCxBV3QsTld0LFJXdCxBYmUsT1d0LE5iZSxGV3QsUmJlLEJXdCxIV3QsT2JlLHFXdCxGYmUsald0LFZXdCxVV3QsV1d0LEdXdCxLV3QsWVd0LFpXdCxYV3QsUVd0LEpXdCxib2UsZUd0LHRHdCxwaCxhR3Qsc0d0LGlHdCx2b2Usckd0LG9HdCxuR3QsbEd0LGNHdCxkR3QsdUd0LEJiZSxwR3QsSGJlLGhHdCxmR3QsbUd0LHFiZSxnR3QsamJlLGJHdCx2R3QseG9lLHhHdCx5R3Qsd0d0LGtHdCxBYixTR3QsX0d0LE1HdCx6R3QsQ0d0LFRHdCwkR3QsVmJlLERHdCxMR3QsRUd0LFBHdCxVYmUsSUd0LEFHdCxOR3QsUkd0LE9HdCxGR3QsQkd0LFdiZSxIR3QscUd0LGpHdCxWR3QsVUd0LFdHdCxHYmUsR0d0LFViLEtiZSxLR3QsWUd0LFpHdCxZYmUsWEd0LFpiZSxRR3QsSkd0LGVLdCxYYmUsdEt0LGFLdCxRYmUsc0t0LGlLdCxyS3Qsb0t0LEpiZSxuS3QsbEt0LGNLdCxkS3QsdUt0LHBLdCxldmUsaEt0LGZLdCxXYixtS3QsZ0t0LHR2ZSxiS3Qsdkt0LHhLdCxlUyx5S3Qsd0t0LGtLdCxTS3QsdFMsX0t0LE1LdCx6S3QsQ0t0LFRLdCwkS3QsYXZlLERLdCx5b2UsTEt0LEVLdCxQS3Qsc3ZlLElLdCxBS3QsTkt0LFJLdCxPS3QsRkt0LEJLdCxpdmUsSEt0LEdiLHFLdCxqS3QsVkt0LHJ2ZSxVS3Qsb3ZlLFdLdCxHS3QsbnZlLEtLdCxhUyxZS3QsWkt0LFhLdCxRS3QsSkt0LGVZdCx0WXQsYVl0LHNZdCxsdmUsaVl0LHJZdCxvWXQsbll0LHdvZSxsWXQsY1l0LGN2ZSxkWXQsdVl0LHBZdCxkdmUsaFl0LGZZdCxtWXQsdXZlLGdZdCxiWXQsdll0LHhZdCx5WXQsd1l0LGtZdCxTWXQsX1l0LHB2ZSxNWXQsaHZlLHpZdCxDWXQsVFl0LCRZdCxEWXQsTFl0LEVZdCxmdmUsUFl0LElZdCxBWXQsbXZlLE5ZdCxSWXQsZ3ZlLE9ZdCxidmUsRll0LHZ2ZSxCWXQsSFl0LHFZdCx4dmUsall0LHl2ZSxWWXQsd3ZlLFVZdCxXWXQsa3ZlLEdZdCxTdmUsS1l0LF92ZSxZWXQsWll0LE12ZSxYWXQsUVl0LEpZdCxlWnQsdFp0LGFadCxzWnQsaVp0LHJadCxvWnQsenZlLG5adCxDdmUsbFp0LFR2ZSxjWnQsZFp0LEtiLHVadCwkdmUscFp0LGhadCxmWnQsRHZlLG1adCxnWnQsTHZlLGJadCxkZix2WnQseFp0LHladCxFdmUsd1p0LFB2ZSxrWnQsU1p0LEl2ZSxfWnQsQXZlLE1adCxOdmUselp0LENadCxUWnQsJFp0LERadCxSdmUsTFp0LE92ZSxFWnQsUFp0LEladCxBWnQsRnZlLE5adCxSWnQsT1p0LEJ2ZSxGWnQsQlp0LEhadCxIdmUscVp0LGpadCxWWnQsVVp0LHF2ZSxXWnQsR1p0LGp2ZSxLWnQsWVp0LFpadCxWdmUsWFp0LFFadCxKWnQsVXZlLGVYdCxXdmUsdFh0LGtvZSxhWHQsc1h0LGlYdCxHdmUsclh0LG9YdCxuWHQsS3ZlLGxYdCxjWHQsZFh0LFl2ZSx1WHQscFh0LGhYdCxmWHQsbVh0LGdYdCxiWHQsdlh0LHhYdCx5WHQsd1h0LGtYdCxadmUsU1h0LFliLF9YdCxYdmUsTVh0LHpYdCxDWHQsVFh0LFF2ZSwkWHQsRFh0LExYdCxFWHQsUFh0LElYdCxBWHQsc1MsTlh0LFJYdCxPWHQsRlh0LHVmLEJYdCxKdmUsSFh0LHFYdCxqWHQsZXhlLFZYdCxVWHQsdHhlLFdYdCxHWHQsS1h0LFlYdCxaWHQsYXhlLFhYdCxzeGUsUVh0LEpYdCxlUXQsaXhlLHRRdCxhUXQsc1F0LHJ4ZSxpUXQsclF0LG9RdCxuUXQsbFF0LGNRdCxkUXQsb3hlLHVRdCxaYixwUXQsaFF0LGZRdCxueGUsbVF0LGdRdCxseGUsYlF0LGN4ZSx2UXQseFF0LHlRdCxkeGUsd1F0LHV4ZSxrUXQscHhlLFNRdCxfUXQsaHhlLE1RdCx6UXQsQ1F0LFRRdCxmeGUsJFF0LGlTLERRdCxMUXQsRVF0LFBRdCxteGUsSVF0LGd4ZSxBUXQsTlF0LFJRdCxPUXQsYnhlLEZRdCxyUyxCUXQsSFF0LHFRdCx2eGUsalF0LFZRdCxVUXQsV1F0LHh4ZSxHUXQseXhlLEtRdCxZUXQsWlF0LHd4ZSxYUXQsa3hlLFFRdCxKUXQsU3hlLGVKdCxfeGUsdEp0LE14ZSxhSnQsenhlLHNKdCxpSnQsckp0LG9KdCxDeGUsbkp0LGxKdCxjSnQsZEp0LHVKdCxwSnQsaEp0LGZKdCxUeGUsbUp0LCR4ZSxnSnQsYkp0LHZKdCx4SnQsRHhlLHlKdCx3SnQsU29lLGtKdCxTSnQsX0p0LE1KdCx6SnQsQ0p0LFRKdCxvUywkSnQsREp0LExKdCxFSnQsUEp0LElKdCxBSnQsTkp0LFJKdCxPSnQsRkp0LEJKdCxISnQsX29lLHFKdCxqSnQsVkp0LFVKdCxXSnQsR0p0LEx4ZSxLSnQsRXhlLFlKdCxaSnQsWEp0LE1vZSxRSnQsSkp0LGVlYSxQeGUsdGVhLHpvZSxhZWEsc2VhLGllYSxyZWEsWGIsQ29lLG9lYSxuZWEsSXhlLGxlYSxjZWEsZGVhLHVlYSxBeGUscGVhLGhlYSxOeGUsZmVhLG1lYSxSeGUsZ2VhLGJlYSx2ZWEseGVhLHllYSx3ZWEsVG9lLGtlYSxTZWEsT3hlLF9lYSxNZWEsemVhLENlYSxUZWEsJGVhLERlYSxMZWEsRnhlLEVlYSxQZWEsQnhlLEllYSxIeGUsQWVhLE5lYSx6ZCxSZWEsT2VhLEZlYSxCZWEscXhlLEhlYSxxZWEsamVhLFZlYSxqeGUsVWVhLFZ4ZSxXZWEsJG9lLEdlYSxLZWEsWWVhLFV4ZSxaZWEsUWIsWGVhLFFlYSxXeGUsSmVhLERvZSxldGEsdHRhLGF0YSxzdGEsaXRhLHJ0YSxwZixvdGEsbnRhLEd4ZSxsdGEsY3RhLGR0YSxLeGUsdXRhLFl4ZSxwdGEsblMsaHRhLGZ0YSxtdGEsZ3RhLGJ0YSx2dGEseHRhLFp4ZSx5dGEsd3RhLFh4ZSxrdGEsUXhlLFN0YSxKeGUsX3RhLE10YSx6dGEsQ3RhLFR0YSwkdGEsZXllLER0YSxMdGEsRXRhLFB0YSxJdGEsdHllLEF0YSxheWUsTnRhLHN5ZSxSdGEsT3RhLEZ0YSxMb2UsQnRhLEh0YSxxdGEsanRhLFZ0YSxpeWUsVXRhLHJ5ZSxXdGEsR3RhLEt0YSxZdGEsb3llLFp0YSxueWUsWHRhLFF0YSxFb2UsSnRhLGVhYSx0YWEsYWFhLHNhYSxseWUsaWFhLHJhYSxjeWUsb2FhLGR5ZSxuYWEsbGFhLGNhYSxkYWEsdWFhLHBhYSxoYWEsZmFhLG1hYSxnYWEsdXllLGJhYSx2YWEseGFhLHlhYSxQb2Usd2FhLGthYSxTYWEsX2FhLHB5ZSxNYWEsemFhLGh5ZSxDYWEsVGFhLCRhYSxEYWEsZnllLExhYSxFYWEsUGFhLGhmLElhYSxBYWEsSW9lLE5hYSxSYWEsbXllLE9hYSxGYWEsQmFhLEhhYSxxYWEsZ3llLGphYSxWYWEsYnllLFVhYSx2eWUsV2FhLEdhYSxLYWEsWWFhLFphYSx4eWUsWGFhLHl5ZSxRYWEsd3llLEphYSxlc2EsdHNhLGFzYSxreWUsc3NhLGlzYSxTeWUscnNhLG9zYSxuc2EsX3llLGxzYSxjc2EsQW9lLGRzYSx1c2EsTXllLHBzYSx6eWUsaHNhLEN5ZSxmc2EsSmIsVHllLG1zYSwkeWUsZ3NhLGJzYSx2c2EseHNhLHlzYSx3c2EsTm9lLGtzYSxTc2EsX3NhLER5ZSxNc2EsenNhLENzYSxSb2UsVHNhLCRzYSxEc2EsTHNhLE9vZSxFc2EsUHNhLElzYSxBc2EsTHllLE5zYSxFeWUsUnNhLE9zYSxGc2EsQnNhLEhzYSxGb2UscXNhLGpzYSxWc2EsVXNhLFdzYSxHc2EsQm9lLEtzYSxZc2EsWnNhLFB5ZSxYc2EsUXNhLEpzYSxlaWEsSXllLHRpYSxhaWEsc2lhLGlpYSxyaWEsb2lhLEF5ZSxuaWEsbGlhLGNpYSxkaWEsTnllLHVpYSxwaWEsbFMsaGlhLGZpYSxtaWEsUnllLGdpYSxiaWEsdmlhLHhpYSx5aWEsd2lhLGtpYSxTaWEsX2lhLE95ZSxNaWEsemlhLEZ5ZSxDaWEsVGlhLCRpYSxCeWUsRGlhLExpYSxFaWEsUGlhLElpYSxIeWUsQWlhLGV2LHF5ZSxOaWEsUmlhLE9pYSxGaWEsQmlhLGp5ZSxIaWEscWlhLGppYSxWaWEsVWlhLFZ5ZSxXaWEsR2lhLEtpYSxZaWEsWmlhLEhvZSxYaWEsUWlhLEppYSxlcmEsdHJhLFV5ZSxhcmEsV3llLHNyYSxpcmEscnJhLHFvZSxvcmEsbnJhLGxyYSxHeWUsY3JhLEt5ZSxkcmEsdXJhLHByYSxocmEsZnJhLG1yYSxZeWUsZ3JhLGJyYSxaeWUsdnJhLFh5ZSx4cmEsUXllLHlyYSx3cmEsSnllLGtyYSxld2UsU3JhLF9yYSxNcmEsenJhLENyYSxUcmEsJHJhLERyYSxMcmEsdHdlLEVyYSxQcmEsam9lLElyYSxBcmEsYXdlLE5yYSxScmEsT3JhLHN3ZSxGcmEsQnJhLEhyYSxxcmEsaXdlLGpyYSxWcmEsVXJhLFdyYSxHcmEscndlLEtyYSxZcmEsWnJhLFZvZSxYcmEsUXJhLEpyYSxlb2EsdG9hLGFvYSxVb2Usc29hLGlvYSxyb2Esb3dlLG9vYSxud2Usbm9hLGxvYSxjb2EsZG9hLGx3ZSx1b2EsY3dlLHBvYSxob2EsZHdlLGZvYSxtb2EsdXdlLGdvYSxib2Esdm9hLHhvYSxwd2UseW9hLHdvYSxrb2EsU29hLGZmLF9vYSx0dixNb2Esem9hLENvYSxUb2EsaHdlLCRvYSxmd2UsRG9hLExvYSxFb2EsUG9hLGNTLElvYSxBb2EsTm9hLGRTLFJvYSxPb2EsRm9hLG13ZSxCb2EsSG9hLFdvZSxxb2Esam9hLFZvYSxVb2EsZ3dlLFdvYSxHb2EsS29hLGJ3ZSxZb2EsWm9hLFhvYSxRb2EsSm9hLHZ3ZSxlbmEsR29lLHRuYSxhbmEsc25hLGluYSxybmEsb25hLHh3ZSxubmEseXdlLGxuYSx3d2UsY25hLGRuYSxrd2UsdW5hLGF2LFN3ZSxwbmEsaG5hLGZuYSxfd2UsbW5hLGduYSxzdixNd2UsYm5hLHZuYSx4bmEseW5hLE5iLHduYSxrbmEsU25hLF9uYSx6d2UsTW5hLHpuYSxDbmEsQ3dlLFRuYSwkbmEsRG5hLExuYSxUd2UsRW5hLFBuYSxJbmEsQW5hLE5uYSxLb2UsUm5hLE9uYSxtZixGbmEsJHdlLEJuYSxEd2UsSG5hLHFuYSxqbmEsVm5hLEx3ZSxVbmEsV25hLEduYSxLbmEsRXdlLFluYSxabmEsWG5hLFB3ZSxRbmEsSm5hLGVsYSx0bGEsSXdlLGFsYSxzbGEsaWxhLEF3ZSxybGEsb2xhLG5sYSxnZixsbGEsY2xhLE53ZSxkbGEsUndlLHVsYSxPd2UscGxhLEZ3ZSxobGEsZmxhLEJ3ZSxtbGEsZ2xhLGJsYSx2bGEseGxhLHlsYSxId2Usd2xhLGtsYSxxd2UsU2xhLF9sYSxqd2UsTWxhLHpsYSxDbGEsVndlLFRsYSwkbGEsRGxhLExsYSxFbGEsUmIsUGxhLElsYSxBbGEsTmxhLFJsYSxPbGEsRmxhLEJsYSxIbGEscWxhLGpsYSxWbGEsVWxhLFdsYSxHbGEsS2xhLFlsYSxVd2UsWmxhLFhsYSxRbGEsSmxhLFd3ZSxlY2EsdGNhLGFjYSx1UyxzY2EsaWNhLHJjYSxvY2EsbmNhLEd3ZSxsY2EsYmYsY2NhLGRjYSx1Y2EsS3dlLHBjYSxoY2EsZmNhLG1jYSxZd2UsZ2NhLGJjYSxad2UsdmNhLHhjYSx5Y2EsWHdlLHdjYSxrY2EsUXdlLFNjYSxKd2UsX2NhLE1jYSx6Y2EsQ2NhLFRjYSxla2UsJGNhLERjYSxMY2EsdGtlLEVjYSxQY2EsSWNhLEFjYSxOY2EsUmNhLE9jYSxha2UsRmNhLHNrZSxCY2EsaWtlLEhjYSxZb2UscWNhLGpjYSxya2UsVmNhLG9rZSxVY2EsbmtlLFdjYSxHY2EsS2NhLFljYSxaY2EsWGNhLGxrZSxRY2EsY2tlLEpjYSxlMWEsdDFhLGExYSxzMWEsZGtlLGkxYSx1a2UscjFhLHBrZSxvMWEsaGtlLG4xYSxsMWEsYzFhLGQxYSxma2UsdTFhLHAxYSxab2UsaDFhLGYxYSxta2UsbTFhLGcxYSxiMWEsdjFhLGdrZSx4MWEseTFhLHcxYSxrMWEsYmtlLFMxYSxoaCxfMWEsTTFhLHZrZSx6MWEseGtlLEMxYSxUMWEsJDFhLFhvZSxEMWEsTDFhLEUxYSx5a2UsUDFhLHdrZSxJMWEsa2tlLEExYSxTa2UsTjFhLFIxYSxPMWEsRjFhLEIxYSxIMWEscTFhLFFvZSxqMWEsVjFhLFUxYSxXMWEsRzFhLF9rZSxLMWEsWTFhLFoxYSxYMWEsUTFhLEoxYSxNa2UsZTJhLHQyYSx6a2UsYTJhLHMyYSxKb2UsaTJhLHIyYSxvMmEsdmYsbjJhLGwyYSxjMmEsQ2tlLGQyYSxUa2UsdTJhLHAyYSxoMmEsZjJhLG0yYSwka2UsZzJhLGIyYSx2MmEseDJhLHkyYSxlbmUsdzJhLGsyYSxTMmEsXzJhLE0yYSxEa2UsejJhLExrZSxDMmEsVDJhLEVrZSwkMmEsUGtlLEQyYSxJa2UsTDJhLEFrZSxFMmEsUDJhLE5rZSxJMmEsQTJhLE4yYSxSMmEsTzJhLEYyYSxnV2EsUmtlPWcoKCk9PnttV2E9ImZhcyIsWFJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjAiLGljb246WzMyMCw1MTIsW10sIjMwIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MGwwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwTDAgMTkyek0xNjAgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2eiJdfSxRUnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMSIsaWNvbjpbMjU2LDUxMixbXSwiMzEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDY0IDAgMCAzMjAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sSlJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjIiLGljb246WzM4NCw1MTIsW10sIjMyIiwiTTQ4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE3MSAwYzYwLjIgMCAxMDkgNDguOCAxMDkgMTA5IDAgNDMuOC0yNi4yIDgzLjMtNjYuNCAxMDAuNGwtMTM5LjEgNTlDMTE5IDMxNS40IDk2IDM1MC4yIDk2IDM4OC43bDAgMjcuMyAyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuM2MwLTY0LjIgMzguNC0xMjIuMiA5Ny41LTE0Ny4zbDEzOS4xLTU5YzE2LjYtNy4xIDI3LjQtMjMuNCAyNy40LTQxLjQgMC0yNC45LTIwLjItNDUtNDUtNDVMODAgOTZDNjIuMyA5NiA0OCA4MS43IDQ4IDY0eiJdfSxlT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMyIsaWNvbjpbMzIwLDUxMixbXSwiMzMiLCJNODAgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDM4LjItMTYuOCA3Mi41LTQzLjMgOTYgMjYuNiAyMy41IDQzLjMgNTcuOCA0My4zIDk2IDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4TDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEw4MCAyODh6Il19LHRPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI0IixpY29uOlszODQsNTEyLFtdLCIzNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjI0LTE5MiAwIDAtMjI0eiJdfSxhT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNSIsaWNvbjpbMzIwLDUxMixbXSwiMzUiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAgMCAxMTIgMTIwIDBjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZTMjU5LjEgNDgwIDE4NCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1MiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHoiXX0sc090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjYiLGljb246WzM4NCw1MTIsW10sIjM2IiwiTTI1NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODggMGMtNDguNiAwLTg4IDM5LjQtODggODhsMCAzMi4yYzIyLjktMTUuMyA1MC40LTI0LjIgODAtMjQuMmw0OCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI4Ny41IDQ4MCAyMDggNDgwbC00OCAwQzgwLjUgNDgwIDE2IDQxNS41IDE2IDMzNmwwLTE1MkMxNiAxMDAuMSA4NC4xIDMyIDE2OCAzMmw4OCAwek04MCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LGlPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI3IixpY29uOlszMjAsNTEyLFtdLCIzNyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI1NiAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sck90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjgiLGljb246WzMyMCw1MTIsW10sIjM4IiwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4IDAgMzQuNiAxMy43IDY2IDM2IDg5LTMxLjUgMjMuMy01MiA2MC44LTUyIDEwMyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw2NCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDIuMi0yMC41LTc5LjctNTItMTAzIDIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4bDE1LjkgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OC4xIDB6bTAtNjRMMTQ0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM1LjMtMjguNiA2NC02NCA2NHoiXX0sb090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjkiLGljb246WzM4NCw1MTIsW10sIjM5IiwiTTIwOCAzMjBjMjkuNiAwIDU3LjEtOC45IDgwLTI0LjJsMCAzMi4yYzAgNDguNi0zOS40IDg4LTg4IDg4TDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMDQgMGM4My45IDAgMTUyLTY4LjEgMTUyLTE1MmwwLTE1Mi4xQzM1MS45IDk2LjQgMjg3LjUgMzIgMjA4IDMybC00OCAwQzgwLjUgMzIgMTYgOTYuNSAxNiAxNzZTODAuNSAzMjAgMTYwIDMyMGw0OCAwem04MC0xNDRjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODBsNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MHoiXX0saW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbGxhci1zaWduIixpY29uOlszMjAsNTEyLFsxMjgxNzgsNjE3ODEsImRvbGxhciIsInVzZCJdLCIyNCIsIk0xMzYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTExNC45IDBjLTI0LjkgMC00NS4xIDIwLjItNDUuMSA0NS4xIDAgMjIuNSAxNi41IDQxLjUgMzguNyA0NC43bDkxLjYgMTMuMWM1My44IDcuNyA5My43IDUzLjcgOTMuNyAxMDggMCA2MC4zLTQ4LjkgMTA5LjEtMTA5LjEgMTA5LjFsLTEwLjkgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDAtNzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMzAuOSAwYzI0LjkgMCA0NS4xLTIwLjIgNDUuMS00NS4xIDAtMjIuNS0xNi41LTQxLjUtMzguNy00NC43bC05MS42LTEzLjFDNTUuOSAyNzMuNSAxNiAyMjcuNCAxNiAxNzMuMSAxNiAxMTIuOSA2NC45IDY0IDEyNS4xIDY0bDEwLjkgMCAwLTQweiJdfSxuT3Q9aW9lLGxPdD1pb2UsY090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvZyIsaWNvbjpbNTc2LDUxMixbMTI4MDIxXSwiZjZkMyIsIk0zMiAxMTJjMTYuNiAwIDMwLjIgMTIuNiAzMS44IDI4LjdsLjMgNi42QzY1LjggMTYzLjQgNzkuNCAxNzYgOTYgMTc2bDE3OS4xIDAgMTQwLjkgNjAuNCAwIDI0My42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzMS4zQzI5NiAzNjEgMjY4LjggMzY4IDI0MCAzNjhzLTU2LTctODAtMTkuM0wxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0NS42Yy0zNy4zLTEzLjItNjQtNDguNi02NC05MC40IDAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTUuOC0zMmM3LjcgMCAxNC45IDMuNiAxOS42IDkuOEwzOTIgMCA0NDQuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDMyIDU1MiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC02NCAwLTcgMjgtMTI0LjctNTMuNCAzMS42LTE0Ny4yQzMzNC4zLTIzLjkgMzQ0LjItMzIgMzU1LjgtMzJ6TTQ0OCA0NGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LGRPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb3ZpbmciLGljb246WzY0MCw1MTIsW10sImY0ZGYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OCAyNS4yIDAgNDgtMTAuNiA2NC0yNy42IDE2IDE3IDM4LjggMjcuNiA2NCAyNy42IDQwLjMgMCA3NC4yLTI3LjEgODQuNy02NGwxMzQuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjQgNDMgMCA3OC45LTMwLjkgODYuNS03MS43IDIwLTEwLjggMzMuNS0zMiAzMy41LTU2LjNsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1NzYgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00ODAgMTkybDUwLjcgMCA0NS4zIDQ1LjMgMCA1MC43LTk2IDAgMC05NnpNODggMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzkyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIxNiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxDN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlIixpY29uOls1MTIsNTEyLFsxMjgyNjAsInN5bmMtYWx0Il0sImYyZjEiLCJNNDgwLjEgMTkybDcuOSAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlM0NzcuOSAuMiA0NzEgN0w0MTkuMyA1OC44QzM3NSAyMi4xIDMxOCAwIDI1NiAwIDEyNyAwIDIwLjMgOTUuNCAyLjYgMjE5LjUgLjEgMjM3IDEyLjIgMjUzLjIgMjkuNyAyNTUuN3MzMy43LTkuNyAzNi4yLTI3LjFDNzkuMiAxMzUuNSAxNTkuMyA2NCAyNTYgNjQgMzAwLjQgNjQgMzQxLjIgNzkgMzczLjcgMTA0LjNMMzI3IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzMzQuMyAxOTIgMzQ0IDE5MmwxMzYuMSAwem0yOS40IDEwMC41YzIuNS0xNy41LTkuNy0zMy43LTI3LjEtMzYuMnMtMzMuNyA5LjctMzYuMiAyNy4xYy0xMy4zIDkzLTkzLjQgMTY0LjUtMTkwLjEgMTY0LjUtNDQuNCAwLTg1LjItMTUtMTE3LjctNDAuM0wxODUgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTc3LjcgMzIwIDE2OCAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA1MTEuOCA0MSA1MDVsNTEuOC01MS44QzEzNyA0ODkuOSAxOTQgNTEyIDI1NiA1MTIgMzg1IDUxMiA0OTEuNyA0MTYuNiA1MDkuNCAyOTIuNXoiXX0sdU90PUM3ZSxUN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNzIgMjAwbDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0scE90PVQ3ZSxoT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tanVzdGlmeSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOSIsIk00NDggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQ0OCA0NDhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyeiJdfSxmT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItY2hlY2siLGljb246WzQ0OCw1MTIsW10sImYyNzQiLCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0yMiAxNjEuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMTg5LjEgMzMxLjIgMTM3IDI3OS4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS45IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzQ3LjMgMTk1LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LCQ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3MiLGljb246WzUxMiw1MTIsWzEyODUzNSwia2lzcyJdLCJmNTk2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgMjg4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni04MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxtT3Q9JDdlLGdPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXRjaGVuLXNldCIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYSIsIk0yNDAgMTQ0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptNDQuNCAzMkMyNjkuOSAyNDAuMSAyMTIuNSAyODggMTQ0IDI4OCA2NC41IDI4OCAwIDIyMy41IDAgMTQ0UzY0LjUgMCAxNDQgMGM2OC41IDAgMTI1LjkgNDcuOSAxNDAuNCAxMTJsNzEuOCAwYzguOC05LjggMjEuNi0xNiAzNS44LTE2bDEwNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMTQuMiAwLTI3LTYuMi0zNS44LTE2bC03MS44IDB6TTE0NCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTYgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI4OCA0NjRsMC0xMTIgMjI0IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHpNNDggMzIwbDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAgMzIgMTYgMHpNMjQgNDY0bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sYk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRuYSIsaWNvbjpbMzg0LDUxMixbMTI5NTE2XSwiZjQ3MSIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU3LjgtMjQuNCAxMDQuOC01Ny40IDE0NC41LTI0LjEgMjguOS01My44IDU1LjEtODMuNiA3OS41IDI5LjggMjQuNSA1OS41IDUwLjYgODMuNiA3OS41IDMzIDM5LjYgNTcuNCA4Ni43IDU3LjQgMTQ0LjUgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBDMCA0MjIuMiAyNC40IDM3NS4yIDU3LjQgMzM1LjUgODEuNSAzMDYuNiAxMTEuMiAyODAuNSAxNDEgMjU2IDExMS4yIDIzMS41IDgxLjUgMjA1LjQgNTcuNCAxNzYuNSAyNC40IDEzNi44IDAgODkuOCAwIDMyIDAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDI1NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSAzODRsLTE4Mi45IDBjLTguMiAxMC41LTE1LjEgMjEuMS0yMC42IDMybDIyNC4yIDBjLTUuNi0xMC45LTEyLjUtMjEuNS0yMC42LTMyek0yMzggMzM2Yy0xNC4zLTEzLTI5LjgtMjUuOC00Ni0zOS0xNi4yIDEzLjEtMzEuNyAyNi00NiAzOWw5MiAwek0xMDAuNSAxMjhsMTgyLjkgMGM4LjItMTAuNSAxNS4xLTIxLjEgMjAuNi0zMkw3OS45IDk2YzUuNiAxMC45IDEyLjUgMjEuNSAyMC42IDMyek0xNDYgMTc2YzE0LjMgMTMgMjkuOCAyNS44IDQ2IDM5IDE2LjItMTMuMSAzMS43LTI2IDQ2LTM5bC05MiAweiJdfSx2T3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtcmVhY2hpbmciLGljb246WzM4NCw1MTIsW10sImU1OWQiLCJNMjU2IDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMTUyLjkgMTY5LjNjLTIzLjctOC40LTQ0LjUtMjQuMy01OC44LTQ1LjhMNzQuNiA5NC4yQzY0LjggNzkuNSA0NSA3NS42IDMwLjMgODUuNFMxMS42IDExNSAyMS40IDEyOS44TDQwLjkgMTU5YzE4LjEgMjcuMSA0Mi44IDQ4LjQgNzEuMSA2Mi40TDExMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU4LjRjMjkuMS0xNC4yIDU0LjQtMzYuMiA3Mi43LTY0LjJsMTguMi0yNy45YzkuNi0xNC44IDUuNC0zNC42LTkuNC00NC4zcy0zNC42LTUuNS00NC4zIDkuNEwyOTEgMTIyLjRjLTIxLjggMzMuNC01OC45IDUzLjYtOTguOCA1My42LTEyLjYgMC0yNC45LTItMzYuNi01LjgtLjktLjMtMS44LS43LTIuNy0uOXoiXX0sYWY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtMjI0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDY0IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yNDggMTEybC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptNDAgNDhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYweiJdfSx4T3Q9YWYseU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1ldGVvciIsaWNvbjpbNTEyLDUxMixbOTczMl0sImY3NTMiLCJNNDkzLjcgLjlsLTE5NC4yIDc0LjcgMi4zLTI5LjNjMS0xMi44LTEyLjgtMjEuNS0yNC0xNS4xTDEwMS4zIDEzMy40QzM4LjYgMTY5LjcgMCAyMzYuNiAwIDMwOSAwIDQyMS4xIDkwLjkgNTEyIDIwMyA1MTIgMjc1LjQgNTEyIDM0Mi4zIDQ3My40IDM3OC42IDQxMC43TDQ4MC44IDIzNC4zYzYuNS0xMS4xLTIuMi0yNS0xNS4xLTI0bC0yOS4zIDIuMyA3NC43LTE5NC4yYy42LTEuNSAuOS0zLjIgLjktNC44IDAtNy41LTYtMTMuNS0xMy41LTEzLjUtMS43IDAtMy4zIC4zLTQuOCAuOXpNMTkyIDE5MmExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxEN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhcnMiLGljb246WzY0MCw1MTIsWyJjb2dzIl0sImYwODUiLCJNNDE1LjkgMjEwLjVjMTIuMi0zLjMgMjUgMi41IDMwLjUgMTMuOEw0NjUgMjYxLjljMTAuMyAxLjQgMjAuNCA0LjIgMjkuOSA4LjFsMzUtMjMuM2MxMC41LTcgMjQuNC01LjYgMzMuMyAzLjNsMTkuMiAxOS4yYzguOSA4LjkgMTAuMyAyMi45IDMuMyAzMy4zbC0yMy4zIDM0LjljMS45IDQuNyAzLjYgOS42IDUgMTQuNyAxLjQgNS4xIDIuMyAxMC4xIDMgMTUuMmwzNy43IDE4LjZjMTEuMyA1LjYgMTcuMSAxOC40IDEzLjggMzAuNWwtNyAyNi4yYy0zLjMgMTIuMS0xNC42IDIwLjMtMjcuMiAxOS41bC00Mi0yLjdjLTYuMyA4LjEtMTMuNiAxNS42LTIxLjkgMjJsMi43IDQxLjljLjggMTIuNi03LjQgMjQtMTkuNSAyNy4ybC0yNi4yIDdjLTEyLjIgMy4zLTI0LjktMi41LTMwLjUtMTMuOGwtMTguNi0zNy42Yy0xMC4zLTEuNC0yMC40LTQuMi0yOS45LTguMWwtMzUgMjMuM2MtMTAuNSA3LTI0LjQgNS42LTMzLjMtMy4zbC0xOS4yLTE5LjJjLTguOS04LjktMTAuMy0yMi44LTMuMy0zMy4zbDIzLjMtMzVjLTEuOS00LjctMy42LTkuNi01LTE0LjdzLTIuMy0xMC4yLTMtMTUuMmwtMzcuNy0xOC42Yy0xMS4zLTUuNi0xNy0xOC40LTEzLjgtMzAuNWw3LTI2LjJjMy4zLTEyLjEgMTQuNi0yMC4zIDI3LjItMTkuNWw0MS45IDIuN2M2LjMtOC4xIDEzLjYtMTUuNiAyMS45LTIybC0yLjctNDEuOGMtLjgtMTIuNiA3LjQtMjQgMTkuNS0yNy4ybDI2LjItN3pNNDQ4LjQgMzQwYTQ0IDQ0IDAgMSAwIC4xIDg4IDQ0IDQ0IDAgMSAwIC0uMS04OHpNMjI0LjktNDUuNWwyNi4yIDdjMTIuMSAzLjMgMjAuMyAxNC43IDE5LjUgMjcuMmwtMi43IDQxLjhjOC4zIDYuNCAxNS42IDEzLjggMjEuOSAyMmw0Mi0yLjdjMTIuNS0uOCAyMy45IDcuNCAyNy4yIDE5LjVsNyAyNi4yYzMuMiAxMi4xLTIuNSAyNC45LTEzLjggMzAuNWwtMzcuNyAxOC42Yy0uNyA1LjEtMS43IDEwLjItMyAxNS4ycy0zLjEgMTAtNSAxNC43bDIzLjMgMzVjNyAxMC41IDUuNiAyNC40LTMuMyAzMy4zTDMwNy4zIDI2MmMtOC45IDguOS0yMi44IDEwLjMtMzMuMyAzLjNMMjM5IDI0MmMtOS41IDMuOS0xOS42IDYuNy0yOS45IDguMWwtMTguNiAzNy42Yy01LjYgMTEuMy0xOC40IDE3LTMwLjUgMTMuOGwtMjYuMi03Yy0xMi4yLTMuMy0yMC4zLTE0LjctMTkuNS0yNy4ybDIuNy00MS45Yy04LjMtNi40LTE1LjYtMTMuOC0yMS45LTIybC00MiAyLjdjLTEyLjUgLjgtMjMuOS03LjQtMjcuMi0xOS41bC03LTI2LjJjLTMuMi0xMi4xIDIuNS0yNC45IDEzLjgtMzAuNWwzNy43LTE4LjZjLjctNS4xIDEuNy0xMC4xIDMtMTUuMiAxLjQtNS4xIDMtMTAgNS0xNC43TDU1LjEgNDYuNWMtNy0xMC41LTUuNi0yNC40IDMuMy0zMy4zTDc3LjYtNmM4LjktOC45IDIyLjgtMTAuMyAzMy4zLTMuM2wzNSAyMy4zYzkuNS0zLjkgMTkuNi02LjcgMjkuOS04LjFsMTguNi0zNy42YzUuNi0xMS4zIDE4LjMtMTcgMzAuNS0xMy44ek0xOTIuNCA4NGE0NCA0NCAwIDEgMCAwIDg4IDQ0IDQ0IDAgMSAwIDAtODh6Il19LHdPdD1EN2Usa090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXBsdXMiLGljb246WzU3Niw1MTIsWzU4NjA2XSwiZTQ5NCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0xNi0yMDhsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2eiJdfSxTT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNpY2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdhZCIsIk03NS44IDMwNC44TDEgMzUuN0MuMyAzMy4yIDAgMzAuNyAwIDI4LjIgMCAxMi42IDEyLjYgMCAyOC4yIDBMNDgyLjQgMGMxNi4zIDAgMjkuNiAxMy4yIDI5LjYgMjkuNiAwIDEuNi0uMSAzLjMtLjQgNC45TDQzNC42IDQ5Ni4xYy0xLjUgOS4yLTkuNSAxNS45LTE4LjggMTUuOS05LjIgMC0xNy4xLTYuNi0xOC43LTE1LjZMMzM2IDE2MCAzMDcuMiAzMDMuOWMtMS45IDkuMy0xMC4xIDE2LjEtMTkuNiAxNi4xLTkuMiAwLTE3LjItNi4yLTE5LjQtMTUuMUwyNDAgMTkyIDIxMC42IDM2OC4yYy0xLjUgOS4xLTkuNCAxNS44LTE4LjYgMTUuOHMtMTcuMS02LjctMTguNi0xNS44TDE0NCAxOTIgMTE1LjkgMzA0LjNjLTIuMyA5LjItMTAuNiAxNS43LTIwLjEgMTUuNy05LjMgMC0xNy41LTYuMi0yMC0xNS4yeiJdfSxfT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHJlbmQtdXAiLGljb246WzU3Niw1MTIsW10sImUwOTgiLCJNMzg0IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgyLjctMTY5LjQgMTY5LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDE5MiAyNjkuMyA1NC42IDQwNi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyMCAzMDYuNyA0NjYuNyAxNjAgMzg0IDE2MHoiXX0sTU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTY5YSIsIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2YzMwLjcgMCA1NS42LTI0LjcgNTYtNTUuMmMtNy41LTEyLjktMTMuNS0yNi44LTE3LjYtNDEuNWMtNC4yLTQtOS4xLTcuMy0xNC40LTkuOWwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDEwLjUgNmM1LjUtMTUuMyAxMy4xLTI5LjUgMjIuNC00Mi41bC05LjEtNS4yYy4xLTEuNCAuMi0yLjggLjItNC4zYzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4Ljh6TTQ0MC41IDEzMkM0MjUgMTA1LjIgMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljLjQgLjMgLjggLjYgMS4zIC45YzIxLjctOS41IDQ1LjYtMTQuOCA3MC44LTE0LjhjMiAwIDQgMCA1LjkgLjFjMTIuMS0xNy4zIDEzLjgtNDAuNiAyLjYtNjAuMXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTQ3LjktMjI1YzQuMyAzLjcgNS40IDkuOSAyLjYgMTQuOUw0NTIuNCAzNTZsMzUuNiAwYzUuMiAwIDkuOCAzLjMgMTEuNCA4LjJzLS4xIDEwLjMtNC4yIDEzLjRsLTk2IDcyYy00LjUgMy40LTEwLjggMy4yLTE1LjEtLjZzLTUuNC05LjktMi42LTE0LjlMNDExLjYgMzgwIDM3NiAzODBjLTUuMiAwLTkuOC0zLjMtMTEuNC04LjJzLjEtMTAuMyA0LjItMTMuNGw5Ni03MmM0LjUtMy40IDEwLjgtMy4yIDE1LjEgLjZ6Il19LHpPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdWVzdGlvbiIsaWNvbjpbMzIwLDUxMixbMTAwNjcsMTAwNjgsNjE3MzZdLCIzZiIsIk02NCAxNjBjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDQyLjctMjcuOSA3OC45LTY2LjUgOTEuNC0yOC40IDkuMi02MS41IDM1LjMtNjEuNSA3Ni42bDAgMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0YzAtMS43IC42LTQuMSAzLjUtNy4zIDMtMy4zIDcuOS02LjUgMTMuNy04LjQgNjQuMy0yMC43IDExMC44LTgxIDExMC44LTE1Mi4zIDAtODguNC03MS42LTE2MC0xNjAtMTYwUzAgNzEuNiAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyem05NiAzNTJjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDAtNDAgMTcuOS00MCA0MCAxNy45IDQwIDQwIDQweiJdfSxDT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYm91bmQiLGljb246WzU3Niw1MTIsW10sImU0ZjkiLCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMkwwIDIxMy45YzAgMTQuMiA1LjEgMjcuOSAxNC4zIDM4LjdMOTkuNiAzNTIgOTYgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zLjYgMCA4NS4zLTk5LjVjOS4yLTEwLjggMTQuMy0yNC41IDE0LjMtMzguN0w1NzYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTIuOC02OS4zIDkyLjRjLTUuNyA3LjYtMTYuMSA5LjYtMjQuMiA0LjgtOS43LTUuNy0xMi4xLTE4LjctNS4xLTI3LjVMNDQxIDE4MGMxMC44LTEzLjUgOC45LTMzLjMtNC40LTQ0LjVzLTMzLTkuOC00NC41IDMuMmwtNDYuNyA1Mi41QzMyOSAyMDkuNyAzMjAgMjMzLjQgMzIwIDI1OC4xbDAgOTMuOS02NCAwIDAtOTMuOWMwLTI0LjYtOS00OC40LTI1LjQtNjYuOGwtNDYuNy01Mi41Yy0xMS41LTEzLTMxLjMtMTQuNC00NC41LTMuMlMxMjQuMiAxNjYuNCAxMzUgMTgwbDI3LjYgMzQuNWM3IDguOCA0LjcgMjEuOC01LjEgMjcuNS04LjEgNC44LTE4LjYgMi43LTI0LjItNC44TDY0IDE0NC44IDY0IDMyem02NCA0NDhsMCAzMiAxMjggMCAwLTMyIDY0IDAgMCAzMiAxMjggMCAwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMOTYgNDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDB6Il19LFRPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1sdWdnYWdlIixpY29uOls1MTIsNTEyLFtdLCJlNTU0IiwiTTI2NC4zIDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNsLTIyLjYgMjIuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDEyLjMtNyAyMy0xNy4yIDI4LjQtLjkgNC4yLTIuNCA4LjQtNC4zIDEyLjNsLTY5IDEzOC4xLS44LS40LTI3LjcgNTUuM2MtOS45IDE5LjgtMzMuOSAyNy44LTUzLjcgMTcuOUwxNC42IDUyMWMtMTkuOC05LjktMjcuOC0zMy45LTE3LjktNTMuN0w0Ny4zIDM2Ni4zYzkuOS0xOS44IDMzLjktMjcuOCA1My43LTE3LjlsMzAuNyAxNS4zIDI4LjMtNTYuNmMuMy0uNiAuNC0xLjIgLjQtMS44bDAtMTYuOWMwLS4yIDAtLjMgMC0uNWwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDQyMi4xIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNMNDQ4IDUwNy41YzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4yTDM3MiA0MjguNGMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3ptLjEgMTY1LjhjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNWwtNjguMyA2OC4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMzggNDIxLjFjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDI1Ni40IDM3MXoiXX0sTDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbImZpbGUtZG93bmxvYWQiXSwiZjU2ZCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTc1IDQ0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTg2LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4Ni4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0eiJdfSwkT3Q9TDdlLERPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYm9vdGgiLGljb246WzU3Niw1MTIsW10sImY3NTYiLCJNNDAgMjRBNTYgNTYgMCAxIDEgMTUyIDI0IDU2IDU2IDAgMSAxIDQwIDI0em01MS4xIDg4YzIzLjUgMCA0NS41IDExLjMgNTkuMSAzMC40bDQ4LjcgNjguMmM2IDguNCAxNS43IDEzLjQgMjYgMTMuNGwzMS4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzIwOS44IDM3My4zIDIyNCA0MDEuOCAyMjQgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDcwLjQgMzQ4LjhDNDYuMiAzMzAuNyAzMiAzMDIuMiAzMiAyNzJsMC0xMDAuOUMzMiAxMzguNSA1OC41IDExMiA5MS4xIDExMnpNMzIgNTEybDAtMTMyLjdjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMOTYgNDI4IDk2IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptNTQ0LTg4bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi0xNjggMGMtNy4xIDAtMTMuOC0zLjEtMTguNC04LjZzLTYuNS0xMi42LTUuMy0xOS42bDMwLjctMTc2LjctNjMuMS0xMzcuNiAwIDcyYy01LjItMS0xMC41LTEuNi0xNi0xLjZsLTMyIDAgMC0xMjBjMC0zMC45IDI1LjEtNTYgNTYtNTZMNTIwIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzNjh6TTI4OCAzMzZjNS41IDAgMTAuOC0uNiAxNi0xLjZMMzA0IDUyMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE4NCAzMiAweiJdfSxMT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jdXN0IixpY29uOls1NzYsNTEyLFtdLCJlNTIwIiwiTTMyOCAzMmMxMzcgMCAyNDggMTExIDI0OCAyNDhsMCA0MC0uNCA4LjJDNTcxLjUgMzY4LjUgNTM3LjQgNDAwIDQ5NiA0MDBsLTEyLjMgMCAyNS4yIDQ0LjFjNi42IDExLjUgMi42IDI2LjItOC45IDMyLjhzLTI2LjIgMi42LTMyLjctOC45bC0zOC44LTY3LjktODAuNCAwLTQ4LjIgNjkuN2MtNy41IDEwLjktMjIuNSAxMy42LTMzLjQgNi4xcy0xMy42LTIyLjUtNi4xLTMzLjRsMjkuMy00Mi4zLTc0LjUgMC01MS43IDcwLjJjLTcuOSAxMC43LTIyLjkgMTIuOS0zMy42IDUuMXMtMTIuOS0yMi45LTUuMS0zMy42bDQwLjUtNTUtNDMtMTYuNC03OS4zIDEwMC41Yy04LjIgMTAuNC0yMy4zIDEyLjItMzMuNyA0cy0xMi4yLTIzLjMtNC0zMy43bDI0MC0zMDQgMi4xLTIuM2M1LjItNS4xIDEyLjUtNy41IDE5LjktNi42IDguNCAxLjEgMTUuNiA2LjUgMTguOSAxNC4zbDIxLjcgNTAuNyA0MC45LTU1LjUgMi4xLTIuNGM1LjEtNS4zIDEyLjUtOCAyMC03LjIgOC41IDEgMTUuOSA2LjUgMTkuMyAxNC40bDQxLjggOTcuNSA2NC4yIDBjMTAuMiAwIDIwIDIgMjkgNS41LTE2LjQtOTQtOTguMy0xNjUuNS0xOTctMTY1LjVsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMHpNNDg4IDI5NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTQzLjUgMzMxLjFDMzYuMiAzMjEuNCAzMiAzMDkuNSAzMiAyOTYuOCAzMiAyNjUuNSA1Ny41IDI0MCA4OC45IDI0MGwyNy42IDAtNzIuOSA5MS4xek0yMjUuMSAyNDBsNDguMiAwIDEuNC0xLjktMTYuOS0zOS41LTMyLjcgNDEuNXptMTA3LjggMGw0Ni43IDAtMTcuMi00MC0yOS41IDQweiJdfSxFN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LXJpZ2h0Il0sImYzMGIiLCJNNTY2LjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAzOTYuOSAzODQgMzg0bDAtNjQtMzM2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJjMC0yNi41IDIxLjUtNDggNDgtNDhsMzM2IDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjh6Il19LEVPdD1FN2UsUE90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWRyb3BsZXQiLGljb246WzU3Niw1MTIsW10sImU1OGMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjA4IDMwNGMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zMy4yIDM0LjUtNzggNTUuOC0xMDIuNCA4LjctMTAgMjMuOC0xMCAzMi41IDAgMjEuMiAyNC40IDU1LjggNjkuMSA1NS44IDEwMi40IDAgNDgtMzIuMiA3Mi03MiA3MnoiXX0sSU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1tZWRpY2FsIixpY29uOls1NzYsNTEyLFtdLCJlMDVjIiwiTTI0MCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNTYgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC01NiAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTYtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwIDAtNTZ6TTY2LjcgMzg0bDQyLjUtNDIuNWMyNC0yNCA1Ni42LTM3LjUgOTAuNS0zNy41TDM1MiAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyLjYgMCAxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXM5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM0LjcgMHoiXX0sQU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmwyMDggMCAwLTY0LTIwOCAwek0xOTIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bS02NC02NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bTg4LTk2bC0uNiAwYzUuNCA5LjQgOC42IDIwLjMgOC42IDMyIDAgMTMuMi00IDI1LjQtMTAuOCAzNS42IDI0LjkgOC43IDQyLjggMzIuNSA0Mi44IDYwLjQgMCAxMS43LTMuMSAyMi42LTguNiAzMmw4LjYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTYxLjdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC0xMS42LTExLjZDNDI5LjUgNzcuNSAzOTYuOSA2NCAzNjMgNjRsLTI3IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTU2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnoiXX0sTk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGN1bGF0b3IiLGljb246WzM4NCw1MTIsWzEyODQyNV0sImYxZWMiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNOTYgNjRsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2IDE2OGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek04OCAzNTJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjgtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHptODAgMjRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjMyLTI0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHoiXX0sc2Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWludXMiLGljb246WzQ0OCw1MTIsWzgyMTEsODcyMiwxMDEzNCwic3VidHJhY3QiXSwiZjA2OCIsIk0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxST3Q9c2YsUDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXotYSIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAtYWx0Il0sImY4ODIiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0yODggNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgMjI0IDMyMCAyMjRsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYxIDMyIDQ0OCAzMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek00MTIuNiAyNzMuN0M0MDcuMiAyNjIuOCAzOTYuMSAyNTYgMzg0IDI1NnMtMjMuMiA2LjgtMjguNiAxNy43bC04MCAxNjBjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC04MC0xNjB6TTM4NCAzNTkuNmwyMC4yIDQwLjQtNDAuNCAwIDIwLjItNDAuNHoiXX0sT090PVA3ZSxGT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjEzMSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQyNC43IDM1OC44QzQ1OC45IDMyNC4yIDQ4MCAyNzYuNiA0ODAgMjI0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDM5LjMtMTUuNyA3NC45LTQxLjMgMTAwLjlMMzU2LjggMjkxQzM3My42IDI3My43IDM4NCAyNTAgMzg0IDIyNGwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMwLjItMTUxLTE1MXptMjk4LjMgNDM0bC00MS40LTQxLjRjLTMuMyAuMi02LjUgLjMtOS44IC4zLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0bDAtMTAuMi00My42LTQzLjZjLTIuOCAzLjktNC40IDguNy00LjQgMTMuOGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOS4zLTEuMiAxOC40LTMgMjcuMy01LjR6Il19LHJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVuIixpY29uOls0NDgsNTEyLFsicGVuLXNxdWFyZSIsInBlbmNpbC1zcXVhcmUiXSwiZjE0YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjUuOCAxMzkuN2wxNC40IDE0LjRjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIzLjggMjMuOC03MS03MSAyMy44LTIzLjhjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDB6TTExOS45IDI4OWw5MS41LTkxLjYgNzEgNzEtOTEuNiA5MS41Yy00LjEgNC4xLTkuMiA3LTE0LjkgOC40bC02MC4xIDE1Yy01LjUgMS40LTExLjItLjItMTUuMi00LjJzLTUuNi05LjctNC4yLTE1LjJsMTUtNjAuMWMxLjQtNS42IDQuMy0xMC44IDguNC0xNC45eiJdfSxCT3Q9cm9lLEhPdD1yb2UsSTdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZmlzdCIsaWNvbjpbMzg0LDUxMixbOTk5NCwiZmlzdC1yYWlzZWQiXSwiZjZkZSIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMi02NCAwIDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgODAtNjQgMCAwLTgwem0xOTIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDUyLjMtMjUuMSA5OC44LTY0IDEyOGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03OC40Yy0xNy4zLTcuOS0zMy4yLTE4LjgtNDYuOS0zMi41TDM3LjUgMzU3LjVDMTMuNSAzMzMuNSAwIDMwMC45IDAgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxxT3Q9STdlLEE3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNtcyIsaWNvbjpbNTEyLDUxMixbInNtcyJdLCJmN2NkIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0xNDAuOCAxNzIuOGwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnMxOC42LTQxLjYgNDEuNi00MS42em0xODguOCA0MS42YzAtMjMgMTguNi00MS42IDQxLjYtNDEuNmwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnptLTk4LjMtMzMuOGwyNC43IDQxLjEgMjQuNy00MS4xYzMuNy02LjIgMTEuMS05LjEgMTgtNy4yczExLjcgOC4yIDExLjcgMTUuNGwwIDEwMi40YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDQuNi04LjcgMTQuNWMtMi45IDQuOC04LjEgNy44LTEzLjcgNy44cy0xMC44LTMtMTMuNy03LjhsLTguNy0xNC41IDAgNDQuNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTEwMi40YzAtNy4yIDQuOC0xMy41IDExLjctMTUuNHMxNC4zIDEgMTggNy4yeiJdfSxqT3Q9QTdlLFZPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW0tY2FyZCIsaWNvbjpbMzg0LDUxMixbXSwiZjdjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyNTguNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDgwYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MCAxMjggMCAwLTcyLTk2IDB6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtNzItODAgMCAwIDQwem0yNTYgMGwwLTQwLTEyOCAwIDAgNzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDAgMCA3MiA4MCAwIDAtNDB6Il19LE43ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS1iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbOTg3OCwiYmFsYW5jZS1zY2FsZSJdLCJmMjRlIiwiTTM4NCAzMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzOTguNCA5NmMtNS4yIDI1LjgtMjIuOSA0Ny4xLTQ2LjQgNTcuM2wwIDI5NC43IDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMCAwLTI5NC43Yy0yMy41LTEwLjMtNDEuMi0zMS42LTQ2LjQtNTcuM0wxMjggOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDBjMTQuNi0xOS40IDM3LjgtMzIgNjQtMzJzNDkuNCAxMi42IDY0IDMyem01NS42IDI4OEw1ODQuNCAzMjAgNTEyIDE5NS44IDQzOS42IDMyMHpNNTEyIDQxNmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXpNMTI2LjggMTk1LjhMNTQuNCAzMjAgMTk5LjMgMzIwIDEyNi44IDE5NS44ek0uOSAzMzcuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45UzExLjcgMzgyIC45IDMzNy4xeiJdfSxVT3Q9TjdlLFI3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXIiLGljb246WzUxMiw1MTIsWzEyODY2NCwiYXV0b21vYmlsZSJdLCJmMWI5IiwiTTEzNS4yIDExNy40bC0yNi4xIDc0LjYgMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0zMjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDI1NmMwLTI2LjcgMTYuNC00OS42IDM5LjYtNTkuMnpNMTI4IDMwNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxXT3Q9UjdlLE83ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9wLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbImNyb3AtYWx0Il0sImY1NjUiLCJNMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMjA4IDAgMC0zNTJ6TTM4NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgNjQgMjA4IDAgMCAzNTJ6Il19LEdPdD1PN2UsS090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lZGFsIixpY29uOls0NDgsNTEyLFsxMjc5NDFdLCJmNWEyIiwiTTIyNC4zIDEyOEwxMzkuNy0xMi45Yy02LjUtMTAuOC0yMC4xLTE0LjctMzEuMy05LjFMMjEuOCAyMS4zQzkuOSAyNy4yIDUuMSA0MS42IDExIDUzLjVMODAuNiAxOTIuNmMtMzAuMSAzMy45LTQ4LjMgNzguNS00OC4zIDEyNy40IDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtNDguOS0xOC4zLTkzLjUtNDguMy0xMjcuNEw0MzcuNiA1My41YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMkwzNDAuMi0yMi4xYy0xMS4yLTUuNi0yNC45LTEuNi0zMS4zIDkuMUwyMjQuMyAxMjh6bTMwLjggMTQyLjVjMS40IDIuOCA0IDQuNyA3IDUuMWw1MC4xIDcuM2M3LjcgMS4xIDEwLjcgMTAuNSA1LjIgMTZsLTM2LjMgMzUuNGMtMi4yIDIuMi0zLjIgNS4yLTIuNyA4LjNsOC42IDQ5LjljMS4zIDcuNi02LjcgMTMuNS0xMy42IDkuOWwtNDQuOC0yMy42Yy0yLjctMS40LTYtMS40LTguNyAwbC00NC44IDIzLjZjLTYuOSAzLjYtMTQuOS0yLjItMTMuNi05LjlsOC42LTQ5LjljLjUtMy0uNS02LjEtMi43LTguM2wtMzYuMy0zNS40Yy01LjYtNS40LTIuNS0xNC44IDUuMi0xNmw1MC4xLTcuM2MzLS40IDUuNy0yLjQgNy01LjFsMjIuNC00NS40YzMuNC03IDEzLjMtNyAxNi44IDBsMjIuNCA0NS40eiJdfSxZT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsIixpY29uOls1NzYsNTEyLFsxMjgyMjBdLCJmNzBlIiwiTTAgMTEyQzAgNzAuNSAzMS42IDM2LjQgNzIgMzIuNGwwLS40IDI4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNzYtMTc2IDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgNjBjMCAyNC4zLTE5LjcgNDQtNDQgNDRzLTQ0LTE5LjctNDQtNDRsMC0yMjgtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OHpNMjM2LjggNDgwYzcuMS0xMy4xIDExLjItMjguMSAxMS4yLTQ0bDAtNjBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjI3LjIgMHpNODAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxaT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTY0IDI2Ni43Yy03LjQtMTEtMjIuMy0xNC0zMy4zLTYuN3MtMTQgMjIuMy02LjcgMzMuM0wxNjMuMiAzNTIgMTI0IDQxMC43Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMjgtNDIgMjggNDJjNy40IDExIDIyLjMgMTQgMzMuMyA2LjdzMTQtMjIuMyA2LjctMzMuM0wyMjAuOCAzNTIgMjYwIDI5My4zYzcuNC0xMSA0LjQtMjUuOS02LjctMzMuM3MtMjUuOS00LjQtMzMuMyA2LjdsLTI4IDQyLTI4LTQyeiJdfSxYT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyIixpY29uOls1MTIsNTEyLFtdLCJmMGIwIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzMyMCA0OTIuOSAzMjAgNDgwbDAtMTc4LjcgMTgyLjYtMTgyLjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0eiJdfSxRT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bSIsaWNvbjpbNTEyLDUxMixbMTI5MzQ1XSwiZjU2OSIsIk01MDEuMiA3Ni4xYzExLjEtNy4zIDE0LjItMjIuMSA2LjktMzMuMnMtMjIuMS0xNC4yLTMzLjItNi45TDM3MC4yIDEwNC41QzMzNS44IDk4LjcgMjk3IDk2IDI1NiA5NiAxMTQuNiA5NiAwIDEyOCAwIDIwOEwwIDM2OGMwIDMxLjMgMjcuNCA1OC44IDcyIDc4LjdMNzIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMTkuNGMzMyA4LjkgNzEuMSAxNC41IDExMiAxNi4xTDIzMiAzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMy41YzQwLjktMS42IDc5LTcuMiAxMTItMTYuMUwzOTIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDIuN2M0NC42LTE5LjkgNzItNDcuNCA3Mi03OC43bDAtMTYwYzAtNDEuMS0zMC4yLTY5LjUtNzguOC04Ny40bDY3LjktNDQuNXpNMzA3LjQgMTQ1LjZsLTY0LjYgNDIuM2MtMTEuMSA3LjMtMTQuMiAyMi4xLTYuOSAzMy4yczIyLjEgMTQuMiAzMy4yIDYuOWwxMTEuMS03Mi44YzE0LjcgMy4yIDI3LjkgNyAzOS40IDExLjUgMzguOCAxNS4xIDQ0LjQgMzAuNiA0NC40IDQxLjMgMCAuOC0yLjcgMTcuMi00NiAzNS45LTM4LjkgMTYuOC05NiAyOC4xLTE2MiAyOC4xUzEzMi45IDI2MC43IDk0IDI0My45Yy00My4zLTE4LjctNDYtMzUuMS00Ni0zNS45IDAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjMgMzguMy0xNC45IDk1LjQtMjIuNyAxNjMuNi0yMi43IDE4IDAgMzUuMSAuNSA1MS40IDEuNnoiXX0sSk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1waW4iLGljb246WzMyMCw1MTIsWzEyODIwNV0sImYyNzYiLCJNMTkyIDI4NC40QzI1Ni4xIDI2OS45IDMwNCAyMTIuNSAzMDQgMTQ0IDMwNCA2NC41IDIzOS41IDAgMTYwIDBTMTYgNjQuNSAxNiAxNDRjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40TDEyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5NS42ek0xNjggOTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNCA0Ni42LTEwNCAxMDQtMTA0IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxGN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZC1mbGlwIixpY29uOls2NDAsNTEyLFsiYmFsYW5jZS1zY2FsZS1yaWdodCJdLCJmNTE2IiwiTTExOC4yIDYyLjRDMTAxLjUgNTYuOCA5Mi40IDM4LjYgOTggMjEuOVMxMjEuNy0zLjkgMTM4LjUgMS42bDExMyAzNy43YzEzLjktMjMuNSAzOS42LTM5LjMgNjguOS0zOS4zIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNyAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4ybDAgMzI2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIxLTkuMi0zNy4yLTI3LTQ0LjItNDlsLTEyNS45LTQyek0yMDAuOCAyODhMMTI4LjMgMTYzLjggNTUuOSAyODggMjAwLjggMjg4em0tNzIuNCA5NmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXptMzgyLjgtOTIuMmwtNzIuNCAxMjQuMiAxNDQuOSAwLTcyLjQtMTI0LjJ6bTEyNiAxNDEuM0M2MjYuNCA0NzggNTc0LjEgNTEyIDUxMS4yIDUxMnMtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjF6Il19LGVGdD1GN2UsdEZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImU0YmQiLCJNOS40IDkuNEMyMS45LTMuMSA0Mi4xLTMuMSA1NC42IDkuNEwxMjggODIuNyAxMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjcgMC03My40LTczLjRDLTMuMSA0Mi4xLTMuMSAyMS45IDkuNCA5LjR6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MDIuNiA1NC42TDQyOS4zIDEyOCA0NDggMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxOC43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tNDUuMyA0NDhMMzg0IDQyOS4zIDM4NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDAgNzMuNCA3My40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwek05LjQgNDU3LjRMODIuNyAzODQgNjQgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjctNzMuNCA3My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3oiXX0sYUZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNDggNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMTUuMSA3LjEgMjkuMyAxOS4yIDM4LjRsMjA4IDE1NmMxNy4xIDEyLjggNDAuNSAxMi44IDU3LjYgMGwyMDgtMTU2YzEyLjEtOS4xIDE5LjItMjMuMyAxOS4yLTM4LjQgMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6TTAgMTk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTg4LTE5OC40IDE0OC44Yy0zNC4xIDI1LjYtODEuMSAyNS42LTExNS4yIDBMMCAxOTZ6Il19LHNGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWJ5IixpY29uOlszODQsNTEyLFtdLCJmNzdjIiwiTTEyMCA4OGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTcuNyAxNDQuNWMxMy0xNy45IDM4LTIxLjggNTUuOS04LjhMOTkuOCAxNjJjMjYuOCAxOS41IDU5LjEgMzAgOTIuMiAzMHM2NS40LTEwLjUgOTIuMi0zMGwzNi4yLTI2LjRjMTcuOS0xMyA0Mi45LTkgNTUuOSA4LjhzOSA0Mi45LTguOCA1NS45bC0zNi4yIDI2LjRjLTEzLjYgOS45LTI4LjEgMTguMi00My4zIDI1bDAgMzYuMy0xOTIgMCAwLTM2LjNjLTE1LjItNi43LTI5LjctMTUuMS00My4zLTI1TDE2LjUgMjAwLjNjLTE3LjktMTMtMjEuOC0zOC04LjgtNTUuOXpNOTcuNSAzMjkuM2w2MC42IDUzLTI2IDM3LjIgMjQuMyAyNC4zYzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC00OC00OEMzOCA0MzguNiAzNi4xIDQxNyA0Ny4yIDQwMS4xbDUwLjItNzEuOHptMTI4LjUgNTNsNjAuNi01MyA1MC4yIDcxLjhjMTEuMSAxNS45IDkuMiAzNy41LTQuNSA1MS4ybC00OCA0OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjQuMy0yNC4zLTI2LTM3LjJ6Il19LEI3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45UzExMC41IDE5MiAxMjAgMTkybDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6Il19LGlGdD1CN2UsckZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQiLGljb246WzUxMiw1MTIsW10sImU1N2QiLCJNMjYuOSAyMDYuOUwzLjcgNDQ0LjlDMS44IDQ2My43IDE2LjYgNDgwIDM1LjUgNDgwbDE3Mi43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjljMC04LjMgNi43LTE1IDE1LTE1IDUuNSAwIDEwLjYgMyAxMy4yIDcuOWw4Ni4xIDE1OWM4LjQgMTUuNSAyNC42IDI1LjEgNDIuMiAyNS4xbDY0LjEgMGMxOC45IDAgMzMuNy0xNi4zIDMxLjgtMzUuMUw0ODUuNiAyMDcuMWMtMS45LTE5LjYtMTIuOC0zNy4zLTI5LjUtNDcuOEwyODAuOSA0OC4zYy0xNS43LTEwLTM1LjgtOS45LTUxLjUgLjFMNTYuMSAxNTkuMmMtMTYuNSAxMC42LTI3LjMgMjguMi0yOS4yIDQ3Ljd6Il19LG9GdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhIixpY29uOlszODQsNTEyLFs5N10sIjQxIiwiTTIyMS41IDUxLjdDMjE2LjYgMzkuOCAyMDQuOSAzMiAxOTIgMzJzLTI0LjYgNy44LTI5LjUgMTkuN2MtOTMuMyAyMjQtMTQ2LjcgMzUyLTE2MCAzODQtNi44IDE2LjMgLjkgMzUgMTcuMiA0MS44czM1LS45IDQxLjgtMTcuMmwzMS44LTc2LjMgMTk3LjMgMCAzMS44IDc2LjNjNi44IDE2LjMgMjUuNSAyNCA0MS44IDE3LjJzMjQtMjUuNSAxNy4yLTQxLjhjLTEzLjMtMzItNjYuNy0xNjAtMTYwLTM4NHpNMjY0IDMyMGwtMTQ0IDAgNzItMTcyLjggNzIgMTcyLjh6Il19LG5GdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhY2h1dGUtYm94IixpY29uOls1MTIsNTEyLFtdLCJmNGNkIiwiTTEyOCAyMjRDMTI4IDE1Mi4yIDE0NC4zIDg4LjQgMTY5LjUgNDMuNCAxOTUuMS0yLjQgMjI2LjYtMjQgMjU2LTI0czYwLjkgMjEuNiA4Ni41IDY3LjRDMzY3LjcgODguNCAzODQgMTUyLjIgMzg0IDIyNGwtMTA0IDAgMCA5NiA4IDBjOS4zIDAgMTguMSAyIDI2IDUuNWwxMTguNC0xMDEuNS0uNSAwYzAtNzguNC0xNy43LTE1MC42LTQ3LjYtMjA0LTYuMS0xMS0xMi45LTIxLjMtMjAuMy0zMC45IDg2LjUgMzUuOSAxNDcuOCAxMTUuMSAxNDcuOCAyMTguOSAwIDctMy4xIDEzLjctOC40IDE4LjJMMzQ3LjQgMzYwLjFjMyA3LjQgNC42IDE1LjQgNC42IDIzLjlsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTguNCAxLjYtMTYuNSA0LjYtMjMuOUw4LjQgMjI2LjJDMy4xIDIyMS43IDAgMjE1IDAgMjA4IDAgMTA0LjIgNjEuMyAyNC45IDE0Ny44LTEwLjkgMTQwLjUtMS40IDEzMy43IDkgMTI3LjYgMjAgOTcuNyA3My40IDgwIDE0NS42IDgwIDIyNGwtLjUgMCAxMTguNCAxMDEuNWM4LTMuNSAxNi44LTUuNSAyNi01LjVsOCAwIDAtOTYtMTA0IDB6Il19LGxGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWFycm93LWRvd24iLGljb246WzY0MCw1MTIsW10sImYyMTgiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsNDUuMyAwYzI3LjEgMCA1MC4zIDE5LjQgNTUuMSA0NmwuNCAyIDE4Ny4yIDAgMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xIDE3Ny40IDBjMjAgMCAzNS4xIDE4LjIgMzEuNCAzNy45TDUzNy44IDIzNS44Yy01LjcgMzAuMy0zMi4xIDUyLjItNjIuOSA1Mi4ybC0zMDMuNiAwIDUuMSAyOC4zYzIuMSAxMS40IDEyIDE5LjcgMjMuNiAxOS43TDQ1NiAzMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1NS45IDBjLTM0LjggMC02NC42LTI0LjktNzAuOC01OS4xTDc3LjIgMzguNmMtLjctMy44LTQtNi42LTcuOS02LjZMMjQgMzJDMTAuNyAzMiAwIDIxLjMgMCA4ek0xNjAgNDY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTIyNCAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LGNGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGNhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sb29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWFycm93LXVwIixpY29uOls1NzYsNTEyLFs2MjMzOCwiY2xvdWQtdXBsb2FkIiwiY2xvdWQtdXBsb2FkLWFsdCJdLCJmMGVlIiwiTTE0NCA0ODBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNjMuNCA0MS0xMTcuMiA5Ny45LTEzNi41LTEuMy03LjctMS45LTE1LjUtMS45LTIzLjUgMC03OS41IDY0LjUtMTQ0IDE0NC0xNDQgNTUuNCAwIDEwMy41IDMxLjMgMTI3LjYgNzcuMSAxNC4yLTguMyAzMC44LTEzLjEgNDguNC0xMy4xIDUzIDAgOTYgNDMgOTYgOTYgMCAxNS43LTMuOCAzMC42LTEwLjUgNDMuNyA0NCAyMC4zIDc0LjUgNjQuNyA3NC41IDExNi4zIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMHpNMzA1IDE5MWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sZEZ0PW9vZSx1RnQ9b29lLHBGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdCIsaWNvbjpbNTEyLDUxMixbNjE5NDZdLCI0MCIsIk0yNTYgNjRDMTUwIDY0IDY0IDE1MCA2NCAyNTZzODYgMTkyIDE5MiAxOTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NmwwIDMyYzAgNTMtNDMgOTYtOTYgOTYtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjktMjIuOCAyMS01My4zIDMzLjktODYuOCAzMy45LTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjhjMjcuOSAwIDUzLjcgOC45IDc0LjcgMjQuMSA1LjctNSAxMy4xLTguMSAyMS4zLTguMSAxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC0xMDYtODYtMTkyLTE5Mi0xOTJ6bTY0IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LG5vZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmRpYW4tcnVwZWUtc2lnbiIsaWNvbjpbMzIwLDUxMixbImluZGlhbi1ydXBlZSIsImluciJdLCJlMWJjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTc2LjcgMGMxNy43IDE5LjggMzAuMSA0NC42IDM0LjcgNzJsNDIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDIgMGMtMTAuNCA2Mi4yLTYwLjggMTEwLjktMTIzLjggMTE4LjlMMjc0LjYgNDIyYzE0LjQgMTAuMyAxNy43IDMwLjMgNy40IDQ0LjZzLTMwLjMgMTcuNy00NC42IDcuNEwxMy40IDMxNEMyLjEgMzA2LTIuNyAyOTEuNSAxLjUgMjc4LjJTMTguMSAyNTYgMzIgMjU2bDgwIDBjMzUuOCAwIDY2LjEtMjMuNSA3Ni4zLTU2TDI0IDIwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNjQuMyAwYy0xMC4yLTMyLjUtNDAuNS01Ni03Ni4zLTU2TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LGhGdD1ub2UsZkZ0PW5vZSxtRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2siLGljb246WzU3Niw1MTIsWzEyODY2Niw5OTUxXSwiZjBkMSIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU1Ny4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek01MTIgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMTkyIDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxIN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZC11c2VyIixpY29uOls2NDAsNTEyLFsiY2hhbGtib2FyZC10ZWFjaGVyIl0sImY1MWMiLCJNMTkyIDM4NGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01MyA0My05NiA5Ni05Nmw5NiAwek01NDQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzMy4xLTI1LjIgNjAuNC01Ny41IDYzLjdsLTYuNSAuMy0yMTEuMSAwYy01LjEtMjQuMi0xNi4zLTQ2LjEtMzIuMS02NGw1MS4yIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMCAwLTI4OC0zNTIgMCAwIDU3LjNjLTE0LjgtNi0zMS05LjMtNDgtOS4zLTUuNCAwLTEwLjggLjMtMTYgMWwwLTQ5YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM1MiAwek0xNDQgMzUyYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxnRnQ9SDdlLGJGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJmNGZjIiwiTTI4NiAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzggNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDB6TTU4NS43IDEwNS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVMNTIyLjEgMjc0LjljLTQuMiA1LjctMTAuNyA5LjQtMTcuNyA5LjhzLTE0LTIuMi0xOC45LTcuM2wtNDYuNC00OGMtOS4yLTkuNS05LTI0LjcgLjYtMzMuOSA5LjUtOS4yIDI0LjctOC45IDMzLjkgLjZsMjYuNSAyNy40IDg1LjYtMTE3Ljd6TTI1Ni4zIDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LHZGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW5pbmphIixpY29uOls0NDgsNTEyLFsxMjkzOTldLCJmNTA0IiwiTTM1MiAxMjhjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNTcuMiAwLTEwNS42LTM3LjUtMTIyLTg5LjMtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjgtMTUuOCAxNS44LTM4LjggMjAuNy01My42IDIyLjEtOC4xIC44LTE0LjYtNS43LTEzLjgtMTMuOCAxLjQtMTQuNyA2LjMtMzcuOCAyMi4xLTUzLjYgNS44LTUuOCAxMi42LTEwLjEgMTkuNi0xMy40LTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNC0xNS44LTE1LjgtMjAuNy0zOC44LTIyLjEtNTMuNi0uOC04LjEgNS43LTE0LjYgMTMuOC0xMy44IDE0LjcgMS40IDM3LjggNi4zIDUzLjYgMjIuMSA0LjggNC44IDguNyAxMC40IDExLjcgMTYuMSAyMS4zLTQxLjIgNjQuMy02OS40IDExMy44LTY5LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh6TTE0NCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0tMS40IDIxMWw2NyA1MC4yYzguNSA2LjQgMjAuMyA2LjQgMjguOCAwbDY3LTUwLjJjNi41LTQuOSAxNS4yLTYuMiAyMi42LTIuOCA2MS40IDI4LjIgMTA0LjEgOTAuMiAxMDQuMSAxNjIuMSAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0NS43IDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC03MiA0Mi43LTEzNCAxMDQuMS0xNjIuMSA3LjQtMy40IDE2LjEtMi4xIDIyLjYgMi44eiJdfSx4RnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbnQtd2lsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTVhYSIsIk0zNDQtMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA2LjJjMjkuMyAxMi4yIDQ4IDQxLjMgNDggNzYuOSAwIDI3LjktMjUuMyA3NC44LTY2IDExMS43LTMuOCAzLjUtOC44IDUuMy0xNCA1LjNzLTEwLjItMS44LTE0LTUuM2MtNDAuNy0zNi44LTY2LTgzLjctNjYtMTExLjcgMC0zNS42IDE4LjctNjQuNyA0OC03Ni45bDAtNi4yYzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgNDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjk2YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgMzguMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zQzI1LjMgNDA1LjkgMCAzNTkgMCAzMzEuMSAwIDI5NS40IDE4LjcgMjY2LjQgNDggMjU0LjJMNDggMjE2YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDIwLjIgMCAzOS4zIDUgNTYgMTMuOEwyMjQgODhjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6Il19LHE3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWlnaHQtc2NhbGUiLGljb246WzQ0OCw1MTIsWyJ3ZWlnaHQiXSwiZjQ5NiIsIk0xMTYuNiAxOTJjLTMtMTAuMS00LjYtMjAuOS00LjYtMzIgMC02MS45IDUwLjEtMTEyIDExMi0xMTJTMzM2IDk4LjEgMzM2IDE2MGMwIDExLjEtMS42IDIxLjktNC42IDMybC03MSAwIDI0LjYtNDQuM2M2LjQtMTEuNiAyLjMtMjYuMi05LjMtMzIuNnMtMjYuMi0yLjMtMzIuNiA5LjNsLTM3LjYgNjcuNy04OC44IDB6TTEyOCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwQzI5My4zIDExLjkgMjYwIDAgMjI0IDBzLTY5LjMgMTEuOS05NiAzMnoiXX0seUZ0PXE3ZSxPYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1yaWdodCIsaWNvbjpbMjU2LDUxMixbXSwiZjBkYSIsIk0yNDkuMyAyMzUuOGMxMC4yIDEyLjYgOS41IDMxLjEtMi4yIDQyLjhsLTEyOCAxMjhjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzY0LjUgMzk2LjkgNjQuNSAzODRsMC0yNTZjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWwxMjggMTI4IDIuMiAyLjR6Il19LHdGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbG9yaW4tc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE4NCIsIk0zMTQuNyAzMmMtMzguOCAwLTczLjcgMjMuMy04OC42IDU5LjFMMTcwLjcgMjI0IDY0IDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4MCAwLTQ1LjEgMTA4LjNjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43TDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNy4zIDBjMzguOCAwIDczLjctMjMuMyA4OC42LTU5LjFMMjEzLjMgMjg4IDMyMCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgNDUuMS0xMDguM2M1LTExLjkgMTYuNi0xOS43IDI5LjUtMTkuN0wzNTIgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM3LjMgMHoiXX0sRmI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzLjJDMTE5IDUwIDY0IDExNC42IDY0IDE5MmwwIDIxLjdjMCA0OC4xLTE2LjQgOTQuOC00Ni40IDEzMi40TDcuOCAzNTguM0MyLjcgMzY0LjYgMCAzNzIuNCAwIDM4MC41IDAgNDAwLjEgMTUuOSA0MTYgMzUuNSA0MTZsMzc2LjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtOS44LTEyLjJDNDAwLjQgMzA4LjUgMzg0IDI2MS44IDM4NCAyMTMuN2wwLTIxLjdjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhsMC0zLjJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTE2MiA0NjRjNy4xIDI3LjYgMzIuMiA0OCA2MiA0OHM1NC45LTIwLjQgNjItNDhsLTEyNCAweiJdfSxrRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFyaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWM4IiwiTTE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDEuNWM3LjktMSAxNS45LTEuNSAyNC0xLjVzMTYuMSAuNSAyNCAxLjVMMjE2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA1NGM1OC45IDIzLjggMTAzLjIgNzYgMTE2LjIgMTM5LjcgMy41IDE3LjMtNy43IDM0LjItMjUgMzcuN3MtMzQuMi03LjctMzcuNy0yNWMtNi43LTMzLjItMjYuNC02MS44LTUzLjQtODAuMmwwIDgxLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDEuOGMtNy44LTEuNS0xNS44LTIuMi0yNC0yLjJzLTE2LjIgLjgtMjQgMi4yTDE2OCAyMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04MS44Yy0zMy44IDIzLTU2IDYxLjktNTYgMTA1LjggMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2LjkgMEMxOC41IDM1MCAwIDMwNS4yIDAgMjU2IDAgMTc1LjQgNDkuNiAxMDYuNCAxMjAgNzhsMC01NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sU0Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pbGwtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTFlZCIsIk0yOTctMjIuMmMxMi4zIDUgMTguMiAxOSAxMy4yIDMxLjNsLTI5IDcxLjNDMzM4LjggODUuMSAzODQgMTMzLjMgMzg0IDE5MmwwIDIwOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIwOGMwLTI2LjUtMjEuNS00OC00OC00OC02LjQgMC0xMi41IDEuMi0xOCAzLjVsLTMwIDczLjggMCAxNzguN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIxLjItNTcuOCAxNDIuMmMtNSAxMi4zLTE5IDE4LjItMzEuMyAxMy4ycy0xOC4yLTE5LTEzLjItMzEuM0wxNjAgMjUxLjMgMTYwIDE5MmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDIwOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQxNy43IDAgNDAwTDAgMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyIDEwLjkgMCAyMC41IDUuNCAyNi4zIDEzLjcgMTYtOC43IDM0LjMtMTMuNyA1My43LTEzLjcgMzEuMyAwIDU5LjcgMTIuOSA4MCAzMy42IDkuNi05LjggMjAuOS0xNy44IDMzLjUtMjMuNUwyNjUuOC05YzUtMTIuMyAxOS0xOC4yIDMxLjMtMTMuMnoiXX0sajdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zbm93Ym9hcmRpbmciLGljb246WzU3Niw1MTIsWzEyNzkzOCwic25vd2JvYXJkaW5nIl0sImY3Y2UiLCJNNDI0LjUgMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2Ni40IDQ1LjVjMTAuMi0xNC40IDMwLjItMTcuOSA0NC42LTcuN2wyNzIgMTkyYzE0LjQgMTAuMiAxNy45IDMwLjIgNy43IDQ0LjZzLTMwLjIgMTcuOS00NC42IDcuN2wtOTIuMi02NS4xLTYyLjIgNTMuMyAzMi4xIDI2LjdjMTguMiAxNS4yIDI4LjggMzcuNyAyOC44IDYxLjVsMCA4Ny44IDc3LjUgMTUuMmM2LjIgMS4yIDEyLjYgLjkgMTguNy0uOGw0MS4yLTExLjhjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtNDEuMiAxMS44Yy0xMy40IDMuOC0yNy40IDQuNC00MS4xIDEuOEw4Ny4xIDQ0My4zYy0xNy4yLTMuNC0zMy0xMS44LTQ1LjMtMjQuMUwxNS41IDM5M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDI2LjIgMjYuMmM1LjYgNS42IDEyLjggOS40IDIwLjYgMTFsNjQuMiAxMi42IDAtMTIzLjdjMC0yNy43IDEyLTU0IDMyLjgtNzIuMmw2OS02MC40LTg4LjItNjIuM0MxNTkuNiA4MCAxNTYuMiA2MCAxNjYuNCA0NS41em01OC4xIDM3NS43bDY0IDEyLjUgMC03NS4zYzAtNC43LTIuMS05LjMtNS44LTEyLjNsLTU4LjItNDguNSAwIDEyMy42eiJdfSxfRnQ9ajdlLFY3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dHkiLGljb246WzUxMiw1MTIsWyJ0ZWxldHlwZSJdLCJmMWU0IiwiTTQ1MC4yIDI2Ni44YzE1LjggNi41IDM0LjEgLjMgNDIuNi0xNC42bDIuNC00LjJjMjcuOS00OC45IDIzLjYtMTE4LjgtMzEuMy0xNTQuNS0xMjYtODItMjg5LjYtODItNDE1LjYgMC01NC45IDM1LjctNTkuMyAxMDUuNy0zMS4zIDE1NC41bDIuNCA0LjJjOC41IDE0LjkgMjYuNyAyMS4xIDQyLjYgMTQuNmw4MS45LTMzLjdjMTMuOS01LjcgMjIuNC0xOS45IDIwLjktMzQuOWwtNS4xLTUxYzYyLjUtMjEgMTMwLjgtMTkuOSAxOTIuNiAzLjNsLTQuOCA0Ny43Yy0xLjUgMTUgNyAyOS4yIDIwLjkgMzQuOWw4MS45IDMzLjd6TTMyIDM1MmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem05NiAwYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6TTY0IDQxNmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTM1MiAzMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwek0yNTYgMzIwYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptNjQgMzJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptMTI4LTMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMTI4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxNRnQ9VjdlLHpGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1yZWN0YW5nbGUiLGljb246WzU3Niw1MTIsW10sImU1OTQiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjI0IDcyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0wIDE1MmM1MyAwIDk2IDQzIDk2IDk2bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtNTMgNDMtOTYgOTYtOTZ6bTk2LTY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAyNzIuM2MtMTUuMiAyMi44LTI0IDUwLjItMjQgNzkuN2wwIDI0YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNDYuOCAwQzg5LjYgNDAwIDgwIDM5MC40IDgwIDM3OC43TDgwIDM2OGMwLTUwLjMgMzguNy05MS42IDg4LTk1Ljd6TTQyNy45IDQwMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLTI0YzAtMjkuNS04LjgtNTYuOS0yNC03OS43IDQ5LjMgNC4xIDg4IDQ1LjMgODggOTUuN2wwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNDYuOCAwek05NiAxOTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sbG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZSIsaWNvbjpbMzg0LDUxMixbMTI4MjQxLCJtb2JpbGUtYW5kcm9pZCIsIm1vYmlsZS1waG9uZSJdLCJmM2NlIiwiTTgwIDBDNDQuNyAwIDE2IDI4LjcgMTYgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMODAgMHptNzIgNDE2bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LENGdD1sb2UsVEZ0PWxvZSwkRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXR1cm4tdG8tZG90cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMSIsIk0yNjUuNC02LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wyODUuMyA2NCAzNTIgNjRjNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTY2LjcgMCAyNS40IDI1LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w4MC04MHptLTgyLjcgMjcybDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTYyLjcgNDAwIDk2IDQwMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ4MS43IDAgNDY0bDAtMzJjMC01MyA0My05NiA5Ni05Nmw2Ni43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwek0zMjAgMzY4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjQgMTYwYTY0IDY0IDAgMSAxIDAtMTI4IDY0IDY0IDAgMSAxIDAgMTI4eiJdfSxERnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXhjbGFtYXRpb24iLGljb246WzEyOCw1MTIsWzEwMDY5LDEwMDcxLDYxNzM4XSwiMjEiLCJNNjQgNDMyYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDBjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAuNiAwIDEuMSAwIDEuN2wtMTYgMzA0Yy0uOSAxNy0xNSAzMC4zLTMyIDMwLjNTMzMgMzcwLjcgMzIgMzUzLjdMMTYgNDkuN2MwLS42IDAtMS4xIDAtMS43IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxMRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2h1cmNoIixpY29uOls1MTIsNTEyLFs5OTYyXSwiZjUxZCIsIk0yODAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyMzItMjEuMyAyMzItOGwwIDI0LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDQ4LTk4LjYgNjUuOEMxMjAgMTg2LjcgMTEyIDIwMS42IDExMiAyMTcuN2wwIDM4LjMtNzkuOCA0NS42QzEyLjMgMzEzIDAgMzM0LjIgMCAzNTcuMUwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCA3NC43IDAgODUuNCAwIDMyMCAwbDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05MC45YzAtMjMtMTIuMy00NC4yLTMyLjItNTUuNkw0MDAgMjU2IDQwMCAyMTcuN2MwLTE2LTgtMzEtMjEuNC0zOS45bC05OC42LTY1LjggMC00OCAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMjR6TTI1NiAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4MC0xMjggMCAwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxFRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9nZ2xlLW9mZiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNCIsIk0zODQgMTI4YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzQ1NC43IDM4NCAzODQgMzg0bC0xOTIgMGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGwxOTIgMHpNNTc2IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MkwxOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJ6TTE5MiAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6Il19LFBGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9lLXByaW50cyIsaWNvbjpbNTc2LDUxMixbXSwiZjU0YiIsIk0yOTYgMTkyYy0yMS4xLTEyLjEtNDIuMy0yNC4yLTcyLTI5LjNsMC0xNDAuM0MyNTcuNyAxMyAzMTEuNCAwIDM1MiAwIDQ0OCAwIDU3NiA0OCA1NzYgMTI4cy0xMTkuNiA5Ni0xNzYgOTZjLTQ4IDAtNzYtMTYtMTA0LTMyek0xMjggMzJsNDggMCAwIDEyOC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0ek0yMzIgMzIwYzI4LTE2IDU2LTMyIDEwNC0zMiA1Ni40IDAgMTc2IDE2IDE3NiA5NlMzODQgNTEyIDI4OCA1MTJjLTQwLjUgMC05NC4zLTEzLTEyOC0yMi40bDAtMTQwLjNjMjkuNy01LjIgNTAuOS0xNy4zIDcyLTI5LjR6TTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OCAwIDAgMTI4LTQ4IDB6Il19LElGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxCYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxsZXQiLGljb246WzUxMiw1MTIsW10sImY1NTUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw3MiAxMjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgMzJ6TTQxNiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxyZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZXNzYWdlIixpY29uOls1MTIsNTEyLFsiY29tbWVudC1hbHQiXSwiZjI3YSIsIk0wIDM1MkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDMyMCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5NmwtMTIwIDBjLTUuMiAwLTEwLjIgMS43LTE0LjQgNC44TDE2Ni40IDUzOS4yYy00LjIgMy4xLTkuMiA0LjgtMTQuNCA0LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2eiJdfSxBRnQ9cmYsTkZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3BoeSIsaWNvbjpbNTEyLDUxMixbMTI3OTQyXSwiZjA5MSIsIk0xNDQuMyAwbDIyNCAwYzI2LjUgMCA0OC4xIDIxLjggNDcuMSA0OC4yLS4yIDUuMy0uNCAxMC42LS43IDE1LjhsNDkuNiAwYzI2LjEgMCA0OS4xIDIxLjYgNDcuMSA0OS44LTcuNSAxMDMuNy02MC41IDE2MC43LTExOCAxOTAuNS0xNS44IDguMi0zMS45IDE0LjMtNDcuMiAxOC44LTIwLjIgMjguNi00MS4yIDQzLjctNTcuOSA1MS44bDAgNzMuMSA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtNzMuMWMtMTYtNy43LTM1LjktMjItNTUuMy00OC4zLTE4LjQtNC44LTM4LjQtMTIuMS01Ny45LTIzLjEtNTQuMS0zMC4zLTEwMi45LTg3LjQtMTA5LjktMTg5LjktMS45LTI4LjEgMjEtNDkuNyA0Ny4xLTQ5LjdsNDkuNiAwYy0uMy01LjItLjUtMTAuNC0uNy0xNS44LTEtMjYuNSAyMC42LTQ4LjIgNDcuMS00OC4yek0xMDEuNSAxMTJsLTUyLjQgMGM2LjIgODQuNyA0NS4xIDEyNy4xIDg1LjIgMTQ5LjYtMTQuNC0zNy4zLTI2LjMtODYtMzIuOC0xNDkuNnpNMzgwIDI1Ni44YzQwLjUtMjMuOCA3Ny4xLTY2LjEgODMuMy0xNDQuOEw0MTEgMTEyYy02LjIgNjAuOS0xNy40IDEwOC4yLTMxIDE0NC44eiJdfSxVN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1kaXp6eSIsaWNvbjpbNTEyLDUxMixbImRpenp5Il0sImY1NjciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNC4xIDE1My45bDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwem0xOTIgMGwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHpNMjU2IDMwNGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sUkZ0PVU3ZSxPRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaWEiLGljb246WzY0MCw1MTIsW10sImUwNTkiLCJNMjU2LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTFjOC42IDIuMiAxNi45IDUuNiAyNC44IDEwLjNMMzExIDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02LjMgNi4zYzQuNiA3LjggOCAxNi4yIDEwLjMgMjQuOGwxMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMSAwYy0yLjIgOC42LTUuNiAxNi45LTEwLjMgMjQuOEwzNDUgMTUxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjEtMzAuMSAzMC4xIDQuMSA0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMWMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDIxNyAyNzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNi4zLTYuM2MtNy44IDQuNi0xNi4yIDgtMjQuOCAxMC4zbDAgMTFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMWMtOC42LTIuMi0xNi45LTUuNi0yNC44LTEwLjNMNzMgMzEzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDYuMy02LjNjLTQuNi03LjgtOC0xNi4yLTEwLjMtMjQuOGwtMTEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMSAwYzIuMi04LjYgNS42LTE2LjkgMTAuMy0yNC44TDM5IDE2OWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDEwMyAxMDVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOVMxOTEuNi0yLjMgMjAxIDdsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTI4IDI1NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI0MCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjk2IDQwbDAgMTFjOC42IDIuMiAxNi45IDUuNiAyNC44IDEwLjNMNTY3IDE5OWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDYwMSAzNDNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0wzMjkgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDYuMy02LjNjLTQuNi03LjgtOC0xNi4yLTEwLjMtMjQuOGwtMTEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMSAwYzIuMi04LjYgNS42LTE2LjkgMTAuMy0yNC44TDI5NSAzNjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xYzEwLTEwIDIwLTIwIDMwLjEtMzAuMUwzNTkgMjk3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMSAzMC4xLTMwLjEtNC4xLTQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDYuMyA2LjNjNy44LTQuNiAxNi4yLTggMjQuOC0xMC4zbDAtMTFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNNDQ4IDM4NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxaaz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItZGVhZiIsaWNvbjpbNTEyLDUxMixbImRlYWYiLCJkZWFmbmVzcyIsImhhcmQtb2YtaGVhcmluZyJdLCJmMmE0IiwiTTUwMi42IDU0LjZsLTQwIDQwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w0MC00MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tMzIwIDMyMGwtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sRkZ0PVprLEJGdD1aayxIRnQ9WmssVzdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1hcnJvd3MiLGljb246WzUxMiw1MTIsWyJwZW9wbGUtYXJyb3dzLWxlZnQtcmlnaHQiXSwiZTA2OCIsIk0zMiA2NEE2NCA2NCAwIDEgMSAxNjAgNjQgNjQgNjQgMCAxIDEgMzIgNjR6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMy4yIDAgNi40IC4yIDkuNSAuN0w5My4xIDIwNS4xQzY1IDIzMy4yIDY1IDI3OC44IDkzLjEgMzA2LjlsNTYgNTZjMy40IDMuNCA3IDYuNCAxMC45IDlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyMC42QzEyLjkgMzMyLjQgMCAzMTEuNyAwIDI4OGwwLTY0ek0zNTIgNjRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem02Ni45IDE0MS4xbC00NC40LTQ0LjRjMy4xLS41IDYuMy0uNyA5LjUtLjdsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNEw0ODAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFjMy45LTIuNiA3LjUtNS42IDEwLjktOWw1Ni01NmMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjh6TTMwMi44IDE3Ny44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMyODggMzIxLjcgMjg4IDMxMmwwLTI0LTY0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMyMjQgMTkwLjMgMjI0IDIwMGwwIDI0IDY0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6Il19LHFGdD1XN2UsakZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWNsYXBwaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMWE4IiwiTTM0NCA4bDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNFMzNDQtNS4zIDM0NCA4ek0yMjAgMTAuN2wzMiA0OGM3LjQgMTEgNC40IDI1LjktNi43IDMzLjNzLTI1LjkgNC40LTMzLjMtNi43bC0zMi00OGMtNy40LTExLTQuNC0yNS45IDYuNy0zMy4zUzIxMi42LS4zIDIyMCAxMC43ek0xMzUgMTE5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI5Mi43IDI0Mi43YzEwLjEgMTAuMSAyNy4zIDIuOSAyNy4zLTExLjNsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjQtNjQgMzguNC0xNDUuOCAyOC4zLTE5OC41LTI0LjRMNyAzNjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1MyA1M2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMUwyMyAyNjVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw5MyA5M2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMUw1NSAxODVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxMTcgMTE3YzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xbC05My05M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6TTQzMy4xIDQ4NC45Yy0yNC4yIDE0LjUtNTAuOSAyMi4xLTc3LjcgMjMuMSA0OC4xLTM5LjYgNzYuNi05OSA3Ni42LTE2Mi40bDAtOTguMWM4LjItLjEgMTYtNi40IDE2LTE2bDAtMzkuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTUzLjZjMCA1Ny4xLTMwIDExMC03OC45IDEzOS40ek00NTMuMyA0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6Il19LFZGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTRhOSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04My04MyAxMS40LTExLjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTEuMyAxMS4zLTIzLjgtMjMuOGMxNy45LTIzLjUgMjkuOS01MS43IDM0LjEtODIuM2wzMy42IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0zMy42IDBjLTQuMi0zMC43LTE2LjMtNTguOC0zNC4xLTgyLjNsMjMuOC0yMy44IDExLjMgMTEuM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDQwLjcgNDYuN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxMS4zIDExLjMtMjMuOCAyMy44QzM3MC44IDk3LjkgMzQyLjcgODUuOCAzMTIgODEuNmwwLTMzLjYgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzNDEuMyAwIDMyOCAwTDI0OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy42Yy0zMC43IDQuMi01OC44IDE2LjMtODIuMyAzNC4xTDE1Ny45IDkyIDE2OS4yIDgwLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwxMjMuOSA1OC4xIDQxLTI0Ljl6TTExMy42IDIzMmwtMzMuNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMzMuNiAwYzQuMiAzMC43IDE2LjMgNTguOCAzNC4xIDgyLjNsLTIzLjggMjMuOC0xMS4zLTExLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTYuNiA1Ni42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuMy0xMS4zIDIzLjgtMjMuOGMyMy41IDE3LjkgNTEuNyAyOS45IDgyLjMgMzQuMWwwIDMzLjYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwIDAtMzMuNmMxMy40LTEuOCAyNi40LTUuMiAzOC43LTkuOUwxMjMuNSAxOTMuM2MtNC43IDEyLjMtOCAyNS4yLTkuOSAzOC43eiJdfSxHN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItZGF5cyIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLWFsdCJdLCJmMDczIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMjQwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTEyOCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek02NCAzNjhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxVRnQ9RzdlLEs3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kLXR1cm4tcmlnaHQiLGljb246WzUxMiw1MTIsWyJkaXJlY3Rpb25zIl0sImY1ZWIiLCJNMjE1IDE3TDE3IDIxNUM2LjEgMjI1LjkgMCAyNDAuNiAwIDI1NnM2LjEgMzAuMSAxNyA0MUwyMTUgNDk1YzEwLjkgMTAuOSAyNS42IDE3IDQxIDE3czMwLjEtNi4xIDQxLTE3TDQ5NSAyOTdjMTAuOS0xMC45IDE3LTI1LjYgMTctNDFzLTYuMS0zMC4xLTE3LTQxTDI5NyAxN0MyODYuMSA2LjEgMjcxLjQgMCAyNTYgMHMtMzAuMSA2LjEtNDEgMTd6TTM4NSAyNTdsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTc4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwYzAtMzkuOCAzMi4yLTcyIDcyLTcybDc4LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45eiJdfSxXRnQ9SzdlLEdGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXVwIixpY29uOlszODQsNTEyLFs5NzU3XSwiZjBhNiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwUzk2IDE0LjMgOTYgMzJsMCAyMDgtNjQgMCAwLTIwOHpNMjI0IDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTY0LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDM3LjUgNDUzLjVDMTMuNSA0MjkuNSAwIDM5Ni45IDAgMzYzbDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxLRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmV6aWVyLWN1cnZlIixpY29uOls2NDAsNTEyLFtdLCJmNTViIiwiTTI5NiAxMzZsMC00OCA0OCAwIDAgNDgtNDggMHpNMjg4IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQtMTE4LjQgMEMxMTEuMiA2Mi43IDg5LjMgNDggNjQgNDggMjguNyA0OCAwIDc2LjcgMCAxMTJzMjguNyA2NCA2NCA2NGMyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzZsNjYuOSAwYy01OC45IDM5LjYtOTguOSAxMDUtMTA0IDE4MEw4MCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zLjMgMGM1LjktNjcgNDguNS0xMjMuNCAxMDcuNS0xNDkuMSA4LjYgMTIuNyAyMy4yIDIxLjEgMzkuOCAyMS4xbDY0IDBjMTYuNiAwIDMxLjEtOC40IDM5LjgtMjEuMSA1OSAyNS43IDEwMS42IDgyLjEgMTA3LjUgMTQ5LjFsLTMuMyAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNC41IDBjLTUtNzUtNDUuMS0xNDAuNC0xMDQtMTgwbDY2LjkgMGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0Yy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzZsLTExOC40IDAgMC00YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek04OCAzNzZsNDggMCAwIDQ4LTQ4IDAgMC00OHptNDE2IDQ4bDAtNDggNDggMCAwIDQ4LTQ4IDB6Il19LFlGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGFsZi1kcmVzcyIsaWNvbjpbMzg0LDUxMixbXSwiZTU0OCIsIk0xNDMuNC0zLjljOS43LTE2LjggMjcuOC0yOC4xIDQ4LjYtMjguMSAzMC45IDAgNTYgMjUuMSA1NiA1NiAwIDI1LjQtMTYuOSA0Ni44LTQwIDUzLjdsMCAwYy01LjEgMS41LTEwLjQgMi4zLTE2IDIuMy0zMC45IDAtNTYtMjUuMS01Ni01NmwwIDBjMC0xMC4xIDIuNy0xOS43IDcuNC0yNy45ek0zMTguMyAyOTkuMUwyNzIgMjM2LjcgMjcyIDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MCAwLS40IDAtMjM4LjZjMzYuMiA0LjQgNjkuMiAyMy40IDkxLjIgNTNsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0xNzYgMTEzbDAgMzk5YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTI1LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNDMtMTI5LTQ4LjMgNjUuMWMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjItMjkuNiA1NS4xLTQ4LjYgOTEuMi01M3oiXX0sWTdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLWhvcml6b250YWwiLGljb246WzQ0OCw1MTIsWyJwb2xsLWgiXSwiZjY4MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjU2IDE1MmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bTcyIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMDggMHpNMTkyIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxaRnQ9WTdlLFhGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTZkIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFFGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk0wIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwyMzguNSAwYzM2LjggMCA3MS4yIDE4IDkyLjEgNDguMmwxMTMuNSAxNjRjMTMgMTguNyAxOS45IDQxIDE5LjkgNjMuOGwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzLjgtNzguMS01MC4yLTE2MS45IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhMNDggMTYwYy0yNi41IDAtNDgtMjEuNS00OC00OHoiXX0sWjdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWxrYm9hcmQiLGljb246WzU3Niw1MTIsWyJibGFja2JvYXJkIl0sImY1MWIiLCJNOTYgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDY0ek00ODAgMzg0bC02NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTYwIDAgMC0yNTYgMzg0IDAgMCAyNTZ6Il19LEpGdD1aN2UsWDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLXJpZ2h0LWZyb20tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZXh0ZXJuYWwtbGluay1hbHQiXSwiZjM1ZCIsIk0yOTAuNCAxOS44QzI5NS40IDcuOCAzMDcuMSAwIDMyMCAwTDQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45TDQwMCAxNTcuMyAyNDYuNiAzMTAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMzU0LjcgMTEyIDI5Ny40IDU0LjZjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45ek0wIDE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGw4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA4MGMwIDQ0LjItMzUuOCA4MC04MCA4MEw4MCA1MTJjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgMTc2eiJdfSxlQnQ9WDdlLHRCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtZnVsbCIsaWNvbjpbNTEyLDUxMixbMTI4OTk3LDEyODk5OCwxMjg5OTksMTI5ZTMsMTI5MDAxLDEyOTAwMiwxMjkwMDMsMTEwMzUsMTEwMzZdLCJmNDVjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sYUJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3ZlciIsaWNvbjpbNTEyLDUxMixbXSwiZTEzOSIsIk0zMTAuNCAxNkMzNDYuNiAxNiAzNzYgNDUuNCAzNzYgODEuN2wwIDUuMmMwIDExLjItMi43IDIyLjMtNy44IDMyLjJsLTIuMyA0LjItMjAuMSAzMy41Yy0xLjEgMS45LTEuMiAzLjQtMS4xIDQuNSAuMiAxLjMgLjkgMi43IDIuMSAzLjlzMi42IDEuOSAzLjkgMi4xYzEuMSAuMiAyLjYgLjEgNC41LTEuMWwzMy41LTIwLjEgNC4yLTIuM2MxMC01LjEgMjEtNy44IDMyLjItNy44bDUuMiAwYzM2LjIgMCA2NS42IDI5LjQgNjUuNiA2NS43IDAgMTcuNC02LjkgMzQuMS0xOS4yIDQ2LjRsLTEuMyAxLjNjLTMuNyAzLjctMy43IDkuNiAwIDEzLjNsMS4zIDEuM2MxMi4zIDEyLjMgMTkuMiAyOSAxOS4yIDQ2LjQgMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjZsLTUuMiAwYy0xMi44IDAtMjUuNS0zLjUtMzYuNS0xMC4xbC0zMy41LTIwLjFjLTEuOS0xLjEtMy40LTEuMi00LjUtMS4xLTEuMyAuMi0yLjcgLjktMy45IDIuMXMtMS45IDIuNi0yLjEgMy45Yy0uMiAxLjEtLjEgMi42IDEuMSA0LjVsMjAuMSAzMy41YzYuNiAxMSAxMC4xIDIzLjYgMTAuMSAzNi41bDAgNS4yYzAgMzYuMi0yOS40IDY1LjYtNjUuNiA2NS42LTE3LjQgMC0zNC4xLTYuOS00Ni40LTE5LjJsLTEuMy0xLjNjLTMuNy0zLjctOS42LTMuNy0xMy4zIDBsLTEuMyAxLjNjLTEyLjMgMTIuMy0yOSAxOS4yLTQ2LjQgMTkuMi0zNi4yIDAtNjUuNi0yOS40LTY1LjctNjUuNmwwLTUuMmMwLTEyLjggMy41LTI1LjUgMTAuMS0zNi41bDIwLjEtMzMuNWMxLjEtMS45IDEuMi0zLjQgMS4xLTQuNS0uMi0xLjMtLjktMi43LTIuMS0zLjlzLTIuNi0xLjktMy45LTIuMWMtLjUtLjEtMS4yLS4xLTEuOSAwbC0yLjUgMS0zMy41IDIwLjFjLTExIDYuNi0yMy42IDEwLjEtMzYuNSAxMC4xbC01LjIgMEM0NS40IDM3NiAxNiAzNDYuNiAxNiAzMTAuNCAxNiAyOTMgMjIuOSAyNzYuMyAzNS4yIDI2NGwxLjMtMS4zIDEuMi0xLjVjMi4xLTMuMSAyLjEtNy4yIDAtMTAuM2wtMS4yLTEuNS0xLjMtMS4zQzIyLjkgMjM1LjggMTYgMjE5LjEgMTYgMjAxLjcgMTYgMTY1LjQgNDUuNCAxMzYgODEuNyAxMzZsNS4yIDBjMTIuOCAwIDI1LjUgMy41IDM2LjUgMTAuMWwzMy41IDIwLjEgMi41IDFjLjcgLjEgMS40IC4xIDEuOSAuMSAxLjMtLjIgMi43LS45IDMuOS0yLjFzMS45LTIuNiAyLjEtMy45Yy4xLS41IC4xLTEuMi0uMS0xLjlsLTEtMi41LTIwLjEtMzMuNWMtNi42LTExLTEwLjEtMjMuNi0xMC4xLTM2LjVsMC01LjJjMC0zNi4yIDI5LjQtNjUuNyA2NS43LTY1LjcgMTcuNCAwIDM0LjEgNi45IDQ2LjQgMTkuMmwxLjMgMS4zYzMuNyAzLjYgOS42IDMuNyAxMy4zIDBsMS4zLTEuMyA0LjgtNC40QzI4MC41IDIxLjMgMjk1LjEgMTYgMzEwLjQgMTZ6Il19LHNCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZWV0aC1vcGVuIixpY29uOls1MTIsNTEyLFtdLCJmNjJmIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA4MGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0wIDI3MmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMwNHptODAtMTYwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHptMTI4IDBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek04MCAxMTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHpNNDggMzg0bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6bTE0NCA0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTExMi0xNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnoiXX0sY29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtc3RhZ2dlcmVkIixpY29uOls1MTIsNTEyLFsicmVvcmRlciIsInN0cmVhbSJdLCJmNTUwIiwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NnpNNjQgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxpQnQ9Y29lLHJCdD1jb2Usb0J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhcmVob3VzZSIsaWNvbjpbNTc2LDUxMixbXSwiZjQ5NCIsIk0wIDE0Mi4xTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMzNy45YzAtMjcuNS0xNy42LTUyLTQzLjgtNjAuN0wzMDMuMiA1LjFjLTkuOS0zLjMtMjAuNS0zLjMtMzAuNCAwTDQzLjggODEuNEMxNy42IDkwLjEgMCAxMTQuNiAwIDE0Mi4xek00NjQgMjU2bC0zNTIgMCAwIDY0IDM1MiAwIDAtNjR6TTExMiA0MTZsMzUyIDAgMC02NC0zNTIgMCAwIDY0em0zNTIgMzJsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHoiXX0sbkJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN3YXRjaGJvb2siLGljb246WzUxMiw1MTIsW10sImY1YzMiLCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM2OGMwIDUzLTQzIDk2LTk2IDk2UzAgNDY5IDAgNDE2TDAgNDh6TTI0MCA0MDkuNmwwLTI3MS41IDQ4LjEtNDguMWMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGw2Ny45IDY3LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjQwIDQwOS42ek0yMDUuNSA1MTJsMTkyLTE5MiA2Ni42IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU4LjUgMHpNODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA2NHpNNjQgMjA4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGxCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1wZ3JvdW5kIixpY29uOls1MTIsNTEyLFs5OTc4XSwiZjZiYiIsIk0zNDQuOCA1Mi4zYzExLjItMTMuNyA5LjItMzMuOC00LjUtNDVzLTMzLjgtOS4yLTQ1IDQuNWwtMzkuMiA0OC0zOS4yLTQ4QzIwNS42LTEuOSAxODUuNC00IDE3MS43IDcuMnMtMTUuNyAzMS40LTQuNSA0NWw0Ny40IDU4LTIwMiAyNDYuOUM0LjUgMzY3LjEgMCAzNzkuNiAwIDM5Mi42TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzkuNGMwLTEyLjktNC41LTI1LjUtMTIuNy0zNS41bC0yMDItMjQ2LjkgNDcuNC01OHpNMjU2IDI4OGwxMTIgMTI4LTIyNCAwIDExMi0xMjh6Il19LGNCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU1MiIsIk0xMDQuNSAyNGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bS04IDE4MS4zTDczLjkgMjI3LjljLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM1LjEtMzUuMWMyMi44LTIyLjggNTMuNi0zNS42IDg1LjgtMzUuNiAzNi45IDAgNzEuOCAxNi44IDk0LjggNDUuNkwyNjIuMyAxODBjNi4xIDcuNiAxNS4zIDEyIDI1IDEybDMzLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzMuMiAwYy0yOS4yIDAtNTYuNy0xMy4zLTc1LTM2bC0zLjgtNC43IDAgMTE1LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhMMTMwIDM0Ny41Yy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6TTk2LjYgMzcxYzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVMNTUuMSA1MzQuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjguMy02OC4zYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEw5Ni42IDM3MXpNNTA1LjUgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MnoiXX0sZEJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzZXMiLGljb246WzU3Niw1MTIsW10sImY1MzAiLCJNMTQzLjMgOTZjLTE0IDAtMjYuNSA5LjItMzAuNiAyMi42TDcwLjQgMjU2IDIyNCAyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsNjQgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNTMuNiAwLTQyLjMtMTM3LjRDNDU5LjIgMTA1LjIgNDQ2LjggOTYgNDMyLjcgOTZMNDAwIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyLjcgMGM0Mi4xIDAgNzkuNCAyNy41IDkxLjggNjcuOGw0NS40IDE0Ny41YzQuMSAxMy4yIDYuMSAyNi45IDYuMSA0MC43bDAgOTZjMCA1My00MyA5Ni05NiA5NmwtNjQgMGMtNTMgMC05Ni00My05Ni05NmwwLTMyLTY0IDAgMCAzMmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtOTZjMC0xMy44IDIuMS0yNy41IDYuMS00MC43TDUxLjUgOTkuOEM2My45IDU5LjUgMTAxLjEgMzIgMTQzLjMgMzJMMTc2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMi43IDB6TTY0IDMyMGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NC0xMjggMHptNDE2IDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQtMTI4IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAweiJdfSxRN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxOTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0sdUJ0PVE3ZSxwQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVtb3J5IixpY29uOls1MTIsNTEyLFtdLCJmNTM4IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNy40QzAgMTQyLjIgNC40IDE0OCAxMC4xIDE1MS43IDIzLjMgMTYwLjMgMzIgMTc1LjEgMzIgMTkycy04LjcgMzEuNy0yMS45IDQwLjNDNC40IDIzNiAwIDI0MS44IDAgMjQ4LjZsMCA1NS40IDUxMiAwIDAtNTUuNGMwLTYuOC00LjQtMTIuNi0xMC4xLTE2LjMtMTMuMi04LjYtMjEuOS0yMy40LTIxLjktNDAuM3M4LjctMzEuNyAyMS45LTQwLjNjNS43LTMuNyAxMC4xLTkuNSAxMC4xLTE2LjNsMC03LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTUxMiA0MTZsMC02NC01MTIgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgODggMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTE2MCAxNjBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0saEJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnQiLGljb246WzUxMiw1MTIsWzEyNzg3M10sImYwNmIiLCJNMzIxLjUgNjguOEMzMjkuMSA1NS45IDM0Mi45IDQ4IDM1Ny44IDQ4bDIuMiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC03My4zIDAgMzQuOC01OS4yem0tMTMxIDBsMzQuOCA1OS4yLTczLjMgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGwyLjIgMGMxNC45IDAgMjguOCA3LjkgMzYuMyAyMC44em04OS42LTI0LjNsLTI0LjEgNDEtMjQuMS00MUMyMTUuNyAxNi45IDE4Ni4xIDAgMTU0LjIgMEwxNTIgMGMtNDguNiAwLTg4IDM5LjQtODggODggMCAxNC40IDMuNSAyOCA5LjYgNDBMMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTQxLjYgMGM2LjEtMTIgOS42LTI1LjYgOS42LTQwIDAtNDguNi0zOS40LTg4LTg4LTg4bC0yLjIgMGMtMzEuOSAwLTYxLjUgMTYuOS03Ny43IDQ0LjR6TTQ4MCAyNzJsLTIwMCAwIDAgMjA4IDEzNiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ0em0tMjQ4IDBsLTIwMCAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEzNiAwIDAtMjA4eiJdfSxmQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC13aGVhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyYSIsIk0xNzYtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnpNNTYgMGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDQ4QzQyLjcgNDggMzIgMzcuMyAzMiAyNFM0Mi43IDAgNTYgMHpNMjQgNzJsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTIwQzEwLjcgMTIwIDAgMTA5LjMgMCA5NlMxMC43IDcyIDI0IDcyem04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgMGMwLTguOCA3LjItMTYgMTYtMTYgNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwek00MDAtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnptODAgMTQ0YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxMTJjOC44IDAgMTYgNy4yIDE2IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDR6TTQ4IDQxNmwwIDQ4IDQ4IDBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTk2IDMwNGwtNDggMCAwIDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek00NjQgNDE2Yy0yNi41IDAtNDggMjEuNS00OCA0OGw0OCAwIDAtNDh6TTQxNiAzMDRjMCAyNi41IDIxLjUgNDggNDggNDhsMC00OC00OCAwem0tOTYgODBhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAweiJdfSxtQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVuZ2VvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkOSIsIk0zNDcuNSAxNDQuOGM2LjUgNS40IDEyLjUgMTEuMyAxOCAxNy43IDguNyAxMC4yIDIzLjcgMTQgMzUuMSA2LjlsNTQuMS0zMy44YzExLjItNyAxNC43LTIxLjcgNi45LTMyLjItMTUuMy0yMC41LTMzLjUtMzguNi01NC4xLTUzLjgtMTAuNC03LjYtMjQuNy00LjMtMzEuOCA2LjRsLTM1LjEgNTIuNmMtNy44IDExLjYtMy44IDI3LjMgNyAzNi4yek0zMjcuOCA0MS4xYzguNi0xMi45IDIuOS0zMC41LTEyLjItMzQuMS0xOS4xLTQuNi0zOS4xLTctNTkuNi03cy00MC40IDIuNC01OS42IDdjLTE1LjEgMy42LTIwLjggMjEuMi0xMi4yIDM0LjFsNDAgNjBjNS4yIDcuOCAxNC41IDExLjcgMjMuOSAxMS4yIDUuMi0uMyAxMC42LS4zIDE1LjggMCA5LjQgLjUgMTguNy0zLjQgMjMuOS0xMS4ybDQwLTYwek01MC41IDEwMy4zYy03LjkgMTAuNS00LjMgMjUuMyA2LjkgMzIuMmw1NC4xIDMzLjhjMTEuNCA3LjEgMjYuMyAzLjMgMzUuMS02LjkgNS41LTYuNCAxMS41LTEyLjMgMTgtMTcuNyAxMC44LTguOSAxNC44LTI0LjYgNy0zNi4yTDEzNi40IDU1LjljLTcuMS0xMC43LTIxLjUtMTQtMzEuOC02LjQtMjAuNiAxNS4xLTM4LjggMzMuMy01NC4xIDUzLjh6bTYyIDE0MS4xYy44LTkuOS0zLjMtMTkuOS0xMS44LTI1LjFMNDEgMTgyYy0xMi45LTgtMjkuOS0yLjMtMzMuNiAxMi41LTQuOSAxOS43LTcuNSA0MC4zLTcuNSA2MS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMy45IC4yLTcuOCAuNS0xMS42em0yODcuMSAwYy4zIDMuOCAuNSA3LjcgLjUgMTEuNmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTIxLjItMi42LTQxLjgtNy41LTYxLjYtMy42LTE0LjctMjAuNy0yMC41LTMzLjYtMTIuNWwtNTkuNyAzNy4zYy04LjQgNS4zLTEyLjYgMTUuMi0xMS44IDI1LjF6TTg4IDM1MmwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNDAwIDBsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNHptLTgwIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6bTE2MCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6Il19LEo3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsibWVka2l0Il0sImYwZmEiLCJNMTkyIDU2bDAgNDAgMTI4IDAgMC00MGMwLTQuNC0zLjYtOC04LThMMjAwIDQ4Yy00LjQgMC04IDMuNi04IDh6bS00OCA4bDAtOGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMTIgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQyNC0yMjQgMCAwLTQxNnpNOTYgMTc2bDAgMzA0LTMyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyIDAgMCA4MHpNNDE2IDQ4MGwwLTM4NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMiAwek0yNDQgMjA4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzNi0zNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMzYgMCAwIDM2YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM2IDM2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0zNiAwIDAtMzZjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxnQnQ9SjdlLGJCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYyIsIk0yMzItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE0NCAyMzYuN0w5Ny43IDI5OS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxNDIgMTMyIDE4MS43IDExMiAyMjQgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDMwNCAyMzYuNyAzMDQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc1LjN6TTM5MiAzODRjLTQuNCAwLTggMy42LTggOCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTI4YzAtNC40LTMuNi04LTgtOHoiXX0sWGs9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2UiLGljb246WzUxMiw1MTIsWyJkYXNoYm9hcmQiLCJnYXVnZS1tZWQiLCJ0YWNob21ldGVyLWFsdC1hdmVyYWdlIl0sImY2MjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptLTE2IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQwMCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sdkJ0PVhrLHhCdD1Yayx5QnQ9WGssd0J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4tdGV4dCIsaWNvbjpbNTc2LDUxMixbXSwiZjY1OCIsIk0yODggMzMuOUw5Ni40IDE3NS44IDI1NC41IDI5M2M1LjMgMy45IDExLjIgNi45IDE3LjUgOC43TDI3MiA0NjRjMCA1LjUgLjUgMTAuOCAxLjMgMTZMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIzOS45YzAtMjAuMyA5LjYtMzkuNCAyNS45LTUxLjRMMjU0LjUtMjFjOS43LTcuMiAyMS40LTExIDMzLjUtMTFzMjMuOCAzLjkgMzMuNSAxMUw1MTguMSAxMjQuN2M3LjIgNS4zIDEzLjEgMTIgMTcuNCAxOS42LTIuNS0uMi01LS4zLTcuNS0uM0w0MzYuNiAxNDQgMjg4IDMzLjl6TTMyMCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTIyNHptODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAweiJdfSxrQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vbGJveCIsaWNvbjpbNTEyLDUxMixbMTI5NTIwXSwiZjU1MiIsIk0xNzYgNTZsMCA0MCAxNjAgMCAwLTQwYzAtNC40LTMuNi04LTgtOEwxODQgNDhjLTQuNCAwLTggMy42LTggOHpNMTI4IDk2bDAtNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzI4IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAyOC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw1MS45IDUxLjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3Ni4xLTEzNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xNDQgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtMTM2IDAgMC03Ni4xYzAtMTIuNyA1LjEtMjQuOSAxNC4xLTMzLjlsNTEuOS01MS45YzktOSAyMS4yLTE0LjEgMzMuOS0xNC4xTDEyOCA5NnpNMCA0MTZsMC05NiAxMzYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxNDQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxMzYgMCAwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6Il19LFNCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb3dlci1vZmYiLGljb246WzUxMiw1MTIsWzkyMTFdLCJmMDExIiwiTTI4OCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzIyNC0xNy43IDIyNCAwbDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMMjg4IDB6TTE0Ni4zIDk4LjRjMTQuNS0xMC4xIDE4LTMwLjEgNy45LTQ0LjZzLTMwLjEtMTgtNDQuNi03LjlDNDMuNCA5Mi4xIDAgMTY5IDAgMjU2IDAgMzk3LjQgMTE0LjYgNTEyIDI1NiA1MTJTNTEyIDM5Ny40IDUxMiAyNTZjMC04Ny00My40LTE2My45LTEwOS43LTIxMC4xLTE0LjUtMTAuMS0zNC40LTYuNi00NC42IDcuOXMtNi42IDM0LjQgNy45IDQ0LjZjNDkuOCAzNC44IDgyLjMgOTIuNCA4Mi4zIDE1Ny42IDAgMTA2LTg2IDE5Mi0xOTIgMTkyUzY0IDM2MiA2NCAyNTZjMC02NS4yIDMyLjUtMTIyLjkgODIuMy0xNTcuNnoiXX0sZG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hbCIsaWNvbjpbNTEyLDUxMixbMTI4MjQ2LCJzaWduYWwtNSIsInNpZ25hbC1wZXJmZWN0Il0sImYwMTIiLCJNNDg4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDB6TTM2MCAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAyNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHpNMTUyIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNNDggMzg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sX0J0PWRvZSxNQnQ9ZG9lLHpCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BpbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYiIsIk00ODEuNyAyNDAuMWMtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5LjctMy4zIDQ3LTIzLjYgODkuNC01NC44IDEyMUwzNjEgMzU5Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAzNjYuMyAzMjAgMzc2bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtMzUtMzVjNDEuNy00Mi4yIDY4LjktOTguOCA3My40LTE2MS44IDEuMi0xNy42LTEyLTMyLjktMjkuNy0zNC4yek0zOSA0MUw3NCA3NmMtNDEuNyA0Mi4yLTY4LjkgOTguOC03My40IDE2MS44LTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yczMyLjktMTIgMzQuMi0yOS43YzMuMy00NyAyMy42LTg5LjQgNTQuOC0xMjFMMTUxIDE1M2M2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzE5MiAxNDUuNyAxOTIgMTM2bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDU2IDBDNDYuMyAwIDM3LjUgNS44IDMzLjggMTQuOFMzMi4yIDM0LjEgMzkgNDF6bTIwMS0xMC43Yy0xLjIgMTcuNiAxMiAzMi45IDI5LjcgMzQuMiA0NyAzLjMgODkuNCAyMy42IDEyMSA1NC44TDM1OSAxNTFjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMzY2LjMgMTkyIDM3NiAxOTJsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IDMyLjIgNDcxIDM5TDQzNiA3NGMtNDIuMi00MS43LTk4LjgtNjguOS0xNjEuOC03My40LTE3LjYtMS4yLTMyLjkgMTItMzQuMiAyOS43ek00MSA0NzNsMzUtMzVjNDIuMiA0MS43IDk4LjggNjguOSAxNjEuOCA3My40IDE3LjYgMS4yIDMyLjktMTIgMzQuMi0yOS43cy0xMi0zMi45LTI5LjctMzQuMmMtNDctMy4zLTg5LjQtMjMuNi0xMjEtNTQuOEwxNTMgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTQ1LjcgMzIwIDEzNiAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ1NmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA0NzkuOCA0MSA0NzN6Il19LENCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqb2ludCIsaWNvbjpbNTc2LDUxMixbXSwiZjU5NSIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0yOTIuNyAzMjBjNS42IDAgMTAuNyAyLjkgMTMuNiA3LjZMMzk0LjYgNDcxYzEuMyAyLjEgMCA0LjktMi40IDUuMi0xNi4xIDIuNS0zMi40IDMuNy00OC43IDMuN2wtMzguMSAwYy01LjYgMC0xMC43LTIuOS0xMy42LTcuNmwtNzktMTI4LjRjLTYtOS44IDAtMjIuNiAxMS41LTIzLjMgNi43LS40IDEzLjQtLjYgMjAuMi0uNmw0OC4zIDB6TTQ1OS4zIDQ2NS45Yy02LjQgMS0xMi43LTEuOS0xNi4xLTcuNEwzNzQuMSAzNDYuMWMtNi43LTEwLjkgMS41LTI0LjcgMTQuMi0yMi45IDEuMyAuMiAyLjYgLjQgMy44IC42bDEzNi40IDIxYzI3LjMgNC4yIDQ3LjQgMjcuNyA0Ny40IDU1LjNzLTIwLjEgNTEuMS00Ny40IDU1LjNsLTY5LjIgMTAuNnpNMTM4LjcgMzM2YzYuNy0xLjUgMTMuNiAxLjQgMTcuMiA3LjJsNjguOSAxMTJjNi42IDEwLjctMS4yIDI0LjQtMTMuOCAyMy4xLTEzLTEuNC0yNS45LTMuNS0zOC42LTYuNUwzMS4yIDQzOS4yQzEyLjkgNDM1IDAgNDE4LjcgMCA0MDBzMTIuOS0zNSAzMS4yLTM5LjJMMTM4LjcgMzM2eiJdfSxUQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhaWxsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJhMSIsIk04MCAxNDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wIDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAgNTZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODAtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwem0yNDgtODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0em01NiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODAgODAtMzUuOCA4MC04MHpNMzA0IDIzMmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAgMTA0YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTE5MmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sZTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2tldC1zaG9wcGluZyIsaWNvbjpbNTc2LDUxMixbInNob3BwaW5nLWJhc2tldCJdLCJmMjkxIiwiTTI4OCAwYzYuNiAwIDEyLjkgMi43IDE3LjQgNy41bDE0NCAxNTIgLjUgLjUgNzguMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTQuNS05LjYgMjYuNy0yMi44IDMwLjdMNDkxLjEgNDI5LjljLTYuNSAyOS4zLTMyLjUgNTAuMS02Mi41IDUwLjFsLTI4MS4zIDBjLTMwIDAtNTYtMjAuOC02Mi41LTUwLjFsLTQ2LTIwNy4yYy0xMy4yLTMuOS0yMi44LTE2LjItMjIuOC0zMC43IDAtMTcuNyAxNC4zLTMyIDMyLTMybDc4LjEgMCAuNS0uNSAxNDQtMTUyQzI3NS4xIDIuNyAyODEuNCAwIDI4OCAwem0wIDU4LjlMMTkyLjIgMTYwIDM4My44IDE2MCAyODggNTguOXpNMjA4IDI2NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyem04MC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTI4IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6Il19LCRCdD1lOWUsREJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRjOCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTRjMC0zOC44IDI2LjQtNzIuNiA2NC04MmwwLTExMi00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6Il19LExCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1hcnJpdmFsIixpY29uOls1NzYsNTEyLFsxMjg3NDhdLCJmNWFmIiwiTTM4Ni42IDE5My4xTDI2NS45IDMuN2MtNC44LTcuNi0xMi42LTEyLjgtMjEuNC0xNC4zbC00My4xLTcuNmMtMTAuOC0xLjktMjAuMiA3LjMtMTguNiAxOC4xbDI0IDE2MS42LTEwNS0xOC41LTMzLjgtNjEuOEM2NC41IDc0LjcgNTguMiA3MC4yIDUxLjEgNjlMMzQgNjZjLTkuOC0xLjctMTguOCA1LjktMTguOCAxNS44bC42IDEwNi4zYy4yIDMwLjkgMjIuNCA1Ny4zIDUyLjkgNjIuN2wxMy41IDIuNCAwIDAgNDE3LjYgNzMuNmMzMC41IDUuNCA1OS41LTE1IDY0LjktNDUuNHMtMTUtNTkuNS00NS40LTY0LjlMMzg2LjYgMTkzLjF6TTIyNCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xMzEuMi0xNS4zYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDh6Il19LEVCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXNoLXJlZ2lzdGVyIixpY29uOls1MTIsNTEyLFtdLCJmNzg4IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRzMjguNyA2NCA2NCA2NGw0OCAwIDAgMzItNTcgMGMtMzEuNiAwLTU4LjUgMjMuMS02My4zIDU0LjRMMS4xIDM2NC4xQy40IDM2OC44IDAgMzczLjYgMCAzNzguNEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY5LjZjMC00LjgtLjQtOS42LTEuMS0xNC40TDQ4OC4yIDIxNC40QzQ4My41IDE4My4xIDQ1Ni42IDE2MCA0MjUgMTYwbC0yMTcgMCAwLTMyIDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRTMjkxLjMgMCAyNTYgMEw5NiAwem0wIDQ4bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDk2IDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDgtMTYwYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTIwLTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTE2MCAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek0zMjggMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTI1NiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek00MjQgMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTM1MiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxQQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjcwYiIsIk02NCAyMDhjMCA3LjggNC40IDE4LjcgMTcuMSAzMC4zIDQ1LjQtMjQuMiAxMDcuNy0zOC4zIDE3NC45LTM4LjNzMTI5LjUgMTQuMSAxNzQuOSAzOC4zYzEyLjgtMTEuNiAxNy4xLTIyLjUgMTcuMS0zMC4zIDAtMTIuMy0xMC44LTMyLTQ3LjktNTAuNi0zNS4yLTE3LjYtODYuMS0yOS40LTE0NC4xLTI5LjRzLTEwOC45IDExLjgtMTQ0LjEgMjkuNEM3NC44IDE3NiA2NCAxOTUuNyA2NCAyMDh6bTE5MiA0MGMtNDcgMC04OS4zIDcuNi0xMjIuOSAxOS43IDMzLjIgMTIuNCA3NS43IDIwLjMgMTIyLjkgMjAuM3M4OS43LTcuOCAxMjIuOS0yMC4zQzM0NS4zIDI1NS42IDMwMyAyNDggMjU2IDI0OHpNMCAyMDhDMCAxNTguNCAzOS40IDEyMi4yIDgzLjMgMTAwLjIgMTI5LjEgNzcuMyAxOTAuMyA2NCAyNTYgNjRzMTI2LjkgMTMuMyAxNzIuNyAzNi4yYzQzLjkgMjIgODMuMyA1OC4yIDgzLjMgMTA3LjhsMCA5NmMwIDQ5LjYtMzkuNCA4NS44LTgzLjMgMTA3LjgtNDUuOSAyMi45LTEwNyAzNi4yLTE3Mi43IDM2LjJTMTI5LjEgNDM0LjcgODMuMyA0MTEuOEMzOS40IDM4OS44IDAgMzUzLjYgMCAzMDRsMC05NnoiXX0sSUJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFxdWFyaXVzIixpY29uOls1NzYsNTEyLFtdLCJlODQ1IiwiTTQwMS43IDI5MS40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxMjggNjRjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM0w0MTYgMzU1LjggMzAyLjMgNDEyLjZjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxNjAgMzU1LjggNDYuMyA0MTIuNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOWwxMjgtNjRjOS00LjUgMTkuNi00LjUgMjguNiAwTDI4OCAzNDguMiA0MDEuNyAyOTEuNHptMy40LTE5My41YzguMi0zIDE3LjMtMi41IDI1LjIgMS41bDEyOCA2NGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDQxNiAxNjMuOCAzMDIuMyAyMjAuNmMtOSA0LjUtMTkuNiA0LjUtMjguNiAwTDE2MCAxNjMuOCA0Ni4zIDIyMC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDEyOC02NCAzLjQtMS41YzguMi0zIDE3LjMtMi41IDI1LjIgMS41bDExMy43IDU2LjggMTEzLjctNTYuOCAzLjQtMS41eiJdfSx0OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtbm9kZXMiLGljb246WzUxMiw1MTIsWyJzaGFyZS1hbHQiXSwiZjFlMCIsIk0zODQgMTkyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgNS40IC41IDEwLjggMS4zIDE2TDE1OS42IDE4NC4xYy0xNi45LTE1LTM5LjItMjQuMS02My42LTI0LjEtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNC40IDAgNDYuNi05LjEgNjMuNi0yNC4xTDI4OS4zIDQwMGMtLjkgNS4yLTEuMyAxMC41LTEuMyAxNiAwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2Yy0yNC40IDAtNDYuNiA5LjEtNjMuNiAyNC4xTDE5MC43IDI3MmMuOS01LjIgMS4zLTEwLjUgMS4zLTE2cy0uNS0xMC44LTEuMy0xNmwxMjkuNy03Mi4xYzE2LjkgMTUgMzkuMiAyNC4xIDYzLjYgMjQuMXoiXX0sQUJ0PXQ5ZSxOQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxSQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlub2N1bGFycyIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNSIsIk0xMjggMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQgOTZsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTU5LjFjMC0zNC42IDkuNC02OC42IDI3LjItOTguMyAxMy43LTIyLjggMjIuNS00OC4yIDI1LjgtNzQuNkw2MC41IDE1NmMyLTE2IDE1LjYtMjggMzEuOC0yOGw5OS44IDB6bTIyNy44IDBjMTYuMSAwIDI5LjggMTIgMzEuOCAyOEw0NTkgMjE2YzMuMyAyNi40IDEyLjEgNTEuOCAyNS44IDc0LjYgMTcuOCAyOS43IDI3LjIgNjMuNyAyNy4yIDk4LjNsMCA1OS4xYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMjAgOTkuOCAwek0zMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMnptLTMyIDY0bDAgMTYwLTY0IDAgMC0xNjAgNjQgMHoiXX0sT0J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpcC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWM0IiwiTTM0MC44IDg4LjNjMTMuNC0xMS41IDE1LTMxLjcgMy41LTQ1LjFzLTMxLjctMTUtNDUuMS0zLjVMMTI4IDE4Ni40IDEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTY4LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDE2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTIyLjQgMTcxLjIgMTQ2LjdjMTMuNCAxMS41IDMzLjYgOS45IDQ1LjEtMy41czkuOS0zMy42LTMuNS00NS4xTDE3My4yIDI4MCAzNTIgMjgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3My4yIDIzMiAzNDAuOCA4OC4zeiJdfSxhOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjYwLjFDMTguMSAyNDcuNCA0MC4yIDI0MCA2NCAyNDBsMzIwIDBjMjMuOCAwIDQ1LjkgNy40IDY0IDIwLjFMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00NDggMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0ek0yMjQgMzg0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEZCdD1hOWUsQkJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhbmtpbmctc3RhciIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MSIsIk0zMjEuOCA1NC4xTDI5OC4yIDYuM2MtMy45LTguMy0xNi4xLTguNi0yMC40IDBsLTIzLjYgNDcuOC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjBjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDggMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDE2IDQzMmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh6Il19LEhCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwOCIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptLTMwLjUgNTZsNjEgMGM5LjcgMCAxNy41IDcuOCAxNy41IDE3LjUgMCA0LjItMS41IDguMi00LjIgMTEuNGwtMjcuNCAzMiAzMSAxMTUuMSAuNiAwIDM0LjYtMTM4LjVjMi4yLTguNyAxMS4xLTE0IDE5LjUtMTAuOCA2MS45IDIzLjYgMTA1LjkgODMuNiAxMDUuOSAxNTMuOCAwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNEw0My40IDUxMmMtMTUuMSAwLTI3LjQtMTIuMy0yNy40LTI3LjQgMC03MC4yIDQ0LTEzMC4yIDEwNS45LTE1My44IDguNC0zLjIgMTcuMyAyLjEgMTkuNSAxMC44bDM0LjYgMTM4LjUgLjYgMCAzMS0xMTUuMS0yNy40LTMyYy0yLjctMy4yLTQuMi03LjItNC4yLTExLjQgMC05LjcgNy44LTE3LjUgMTcuNS0xNy41eiJdfSxzOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMiLGljb246WzQ0OCw1MTIsWyJlbGxpcHNpcy1oIl0sImYxNDEiLCJNMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0xNjggMGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTIyNC01NmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0scUJ0PXM5ZSxqQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzEiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTguNi01OC42YzEuMS00IDEuNi04LjIgMS42LTEyLjVsMC0xNTEuMmMtMTIuNSA0LjYtMjYuMSA3LjItNDAuNSA3LjItOC4xIDAtMTUuOS0uOC0yMy41LTIuNGwwIDY2LjQtMzAuMiAwLTEzNy41LTEzNy41YzIuOS0zLjYgNS41LTcuNCA3LjYtMTEuNSAxMS42IDIyIDM0LjcgMzcgNjEuMyAzNyAyNi44IDAgNDkuOC0xNS4xIDYxLjQtMzcuMSAxMS40IDIyLjEgMzQuNSAzNy4xIDYwLjggMzcuMSA0NS42IDAgNzguNC00My43IDY1LjYtODcuNUw1MTMuOCA3Mi4zQzUwNi44IDQ4LjQgNDg0LjkgMzIgNDYwIDMyTDExNiAzMmMtNS41IDAtMTAuOCAuOC0xNS45IDIuM0w0MS0yNC45ek0xNTEuNSAyMjEuM0w0OC43IDExOC42IDM4LjkgMTUyLjVjLTEyLjggNDMuNyAyMCA4Ny41IDY1LjYgODcuNSAxOC4xIDAgMzQuNy03LjEgNDctMTguN3pNNDEwLjIgNDgwbC0xMjgtMTI4LTE1NC4yIDAgMC02Ni40Yy03LjYgMS42LTE1LjUgMi40LTIzLjUgMi40LTE0LjQgMC0yOC0yLjYtNDAuNS03LjJMNjQgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI5OC4yIDB6Il19LGk5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJjZW50IixpY29uOls0NDgsNTEyLFs2MjEwMSw2Mjc4NSwicGVyY2VudGFnZSJdLCIyNSIsIk0xOTIgMTI4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDQ4IDM4NGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6TTQzOC42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTM4NCAzODRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMzg0LTM4NHoiXX0sVkJ0PWk5ZSxyOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS16aXBwZXIiLGljb246WzM4NCw1MTIsWyJmaWxlLWFyY2hpdmUiXSwiZjFjNiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA0OEM3NC43IDQ4IDY0IDU4LjcgNjQgNzJ6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTY0IDcybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sVUJ0PXI5ZSxXQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzcGxheSIsaWNvbjpbNTEyLDUxMixbXSwiZTE2MyIsIk00NDggOTZsMCAyNTYtMzg0IDAgMC0yNTYgMzg0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sbzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imljb25zIixpY29uOls1MTIsNTEyLFsiaGVhcnQtbXVzaWMtY2FtZXJhLWJvbHQiXSwiZjg2ZCIsIk0xNzQuOSAyNzJjMTAuNyAwIDIwLjcgNS4zIDI2LjYgMTQuMmwxMS44IDE3LjggMjYuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNTJjMC0yNi41IDIxLjUtNDggNDgtNDhsMjYuNyAwIDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJsNjEuNyAwem0yNzguNi0xMmM1LjYtNC45IDEzLjktNS4zIDE5LjktLjlzOC4zIDEyLjQgNS4zIDE5LjNMNDQwLjMgMzY4IDQ5NiAzNjhjNi43IDAgMTIuNiA0LjEgMTUgMTAuNHMuNiAxMy4zLTQuNCAxNy43bC0xMjggMTEyYy01LjYgNC45LTEzLjkgNS4zLTE5LjkgLjlzLTguMy0xMi40LTUuMy0xOS4zbDM4LjUtODkuNy01NS44IDBjLTYuNyAwLTEyLjYtNC4xLTE1LTEwLjRzLS42LTEzLjMgNC40LTE3LjdsMTI4LTExMnpNMTQ0IDM2MGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6TTQ4My44IC40YzYuNS0xLjEgMTMuMSAuNCAxOC41IDQuNCA2LjEgNC41IDkuNyAxMS43IDkuNyAxOS4ybDAgMTUyLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42bDAtNDkuMy0xMTIgMzMuNiAwIDExMC4yLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42TDMwNCA3MmMwLTEwLjYgNy0yMCAxNy4xLTIzbDE2MC00OCAyLjctLjZ6TTE4OC45IDBDMjI2IDAgMjU2IDMwIDI1NiA2Ny4xbDAgNi4xYzAgNTYuMS03NS4yIDExMi4xLTExMC4zIDEzNS4zLTEwLjggNy4xLTI0LjYgNy4xLTM1LjQgMC0zNS4xLTIzLjEtMTEwLjMtNzkuMi0xMTAuMy0xMzUuM2wwLTYuMUMwIDMwIDMwIDAgNjcuMSAwIDg4LjIgMCAxMDggOS45IDEyMC43IDI2LjhsNy4zIDkuOCA3LjMtOS44QzE0OCA5LjkgMTY3LjggMCAxODguOSAweiJdfSxHQnQ9bzllLEtCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci12ZXJ0aWNhbCIsaWNvbjpbMjU2LDUxMixbXSwiZjU0OCIsIk0wIDE2QzAtMTAuNSAyMS41LTMyIDQ4LTMybDE2MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjQtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTQ0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE2eiJdfSxuOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uLWRvdCIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQtYWx0Il0sImY1YTAiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek01MTIgMjI0Yy02Ni4zIDAtMTIwIDUyLjgtMTIwIDExNy45IDAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOXpNNDcyIDM0NGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxZQnQ9bjllLGw5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jcmFjayIsaWNvbjpbNTEyLDUxMixbMTI4MTQ4LCJoZWFydC1icm9rZW4iXSwiZjdhOSIsIk0xMzMuMSAzMmMxNy4zIDAgMzQuMiAzLjQgNDkuOSA5LjdsNTQuOCA4NS4yLTc1LjQgNzUuNGMtMS41IDEuNS0yLjQgMy42LTIuMyA1LjhzMSA0LjIgMi42IDUuN2wxMTIgMTA0YzIuOSAyLjcgNy40IDIuOSAxMC41IC4zczMuOC03IDEuNy0xMC40bC02MC40LTk4LjEgOTAuNy03NS42YzIuNi0yLjEgMy41LTUuNyAyLjQtOC44TDI5Ni40IDYwLjZDMzE5LjYgNDIuMyAzNDguNiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxMTIuMi0xMzkuOSAyNDIuNS0yMTIuOSAyOTguMi0xMi40IDkuNC0yNy42IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNi00My4xLTE0LjFDMTM5LjkgNDEwLjIgMCAyNzkuOSAwIDE2Ny43bDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyeiJdfSxaQnQ9bDllLFhCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3ciLGljb246WzY0MCw1MTIsWzEyODAwNF0sImY2YzgiLCJNOTYgMjI0bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjEgMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDE0NCA2NEM3Ny43IDY0IDI0IDExNy43IDI0IDE4NGwwIDU0QzkuNCAyNDkuOCAwIDI2Ny44IDAgMjg4bDAgMTcuNmMwIDggNi40IDE0LjQgMTQuNCAxNC40IDMxLjggMCA1Ny42LTI1LjggNTcuNi01Ny42TDcyIDE4NGMwLTI0LjMgMTIuMS00NS44IDMwLjUtNTguOS00LjIgMTAuOC02LjUgMjIuNi02LjUgMzQuOWwwIDY0ek01NjAgMzM2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTE2Ni42IDE2Ni42Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMTc4LjcgMGMxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNiAwIDYtMi40IDExLjgtNi42IDE2bC0yMy40IDIzLjRDMzMyLjIgMjExLjggMzAyLjcgMjI0IDI3MiAyMjRzLTYwLjItMTIuMi04MS45LTMzLjlsLTIzLjQtMjMuNHoiXX0sb2Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnNzIixpY29uOls0NDgsNTEyLFsiZmVlZCJdLCJmMDllIiwiTTAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTYgMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAxNjBjMTU5LjEgMCAyODggMTI4LjkgMjg4IDI4OCAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LFFCdD1vZixuZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjgyNjksInNlYXJjaCJdLCJmMDAyIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6Il19LEpCdD1uZixlSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbiIsaWNvbjpbNjQwLDUxMixbXSwiZjZjMyIsIk00ODAgMGMxNC42IDAgMjguOCAxLjYgNDIuNSA0LjcgNy40IDEuNyAxMyA3LjggMTMuOSAxNS40cy0zIDE0LjktOS44IDE4LjNjLTQ1LjQgMjIuNi03Ni42IDY5LjUtNzYuNiAxMjMuNiAwIDc2LjIgNjEuOCAxMzggMTM4IDEzOCAzLjcgMCA3LjQtLjEgMTEuMS0uNCA3LjYtLjYgMTQuNyAzLjYgMTcuOCAxMC42czEuNSAxNS4xLTMuOSAyMC40Yy0yNiAyNS01OS4xIDQyLjctOTUuOSA0OS45LTExLjEtMjUuMy0zMC4yLTQ2LjMtNTQuMS01OS44LTcuNi02My40LTYxLjYtMTEyLjYtMTI3LjEtMTEyLjYtMTEuMiAwLTIyLjEgMS41LTMyLjUgNC4yLTQuOC00LjItOS45LTguMi0xNS4yLTExLjgtLjEtMi44LS4yLTUuNi0uMi04LjQgMC0xMDYgODYtMTkyIDE5Mi0xOTJ6bS0uMSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjcxLjkgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04NyA4MC05NC42LS40LTUyLjggNDIuOS05Ny4zIDk2LTk3LjMgMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjQgMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjQgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjktLjYgMTEuNy0xLjkgMTcuMiAzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43eiJdfSx1b2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94ZXMtc3RhY2tlZCIsaWNvbjpbNTEyLDUxMixbNjI2MjUsImJveGVzIiwiYm94ZXMtYWx0Il0sImY0NjgiLCJNMjI0IDBsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgNS41LS43IDEwLjktMiAxNmwtMjUyIDBjLTEuMy01LjEtMi0xMC41LTItMTZsMC0xMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMHptOTYgNTEyYy0xMS4yIDAtMjEuOC0yLjktMzEtOCA5LjUtMTYuNSAxNS0zNS42IDE1LTU2bDAtMTI4YzAtMjAuNC01LjUtMzkuNS0xNS01NiA5LjItNS4xIDE5LjctOCAzMS04bDMyIDAgMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMjggMHpNMCAzMjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDMyMHoiXX0sdEh0PXVvZSxhSHQ9dW9lLHNIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWJyYW5jaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjEyNiIsIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuNyAxNzYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTc2IDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBTMCA0NzYuMiAwIDQzMmMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtMjA1LjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMzIgMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek04MCA0NTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxjOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuIixpY29uOls1MTIsNTEyLFsxMjg2ODMsImNhbmNlbCJdLCJmMDVlIiwiTTM2Ny4yIDQxMi41TDk5LjUgMTQ0LjhjLTIyLjQgMzEuNC0zNS41IDY5LjgtMzUuNSAxMTEuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0MS41IDAgNzkuOS0xMy4xIDExMS4yLTM1LjV6bTQ1LjMtNDUuM2MyMi40LTMxLjQgMzUuNS02OS44IDM1LjUtMTExLjIgMC0xMDYtODYtMTkyLTE5Mi0xOTItNDEuNSAwLTc5LjkgMTMuMS0xMTEuMiAzNS41TDQxMi41IDM2Ny4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxpSHQ9YzllLHJIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqdWctZGV0ZXJnZW50IixpY29uOlszODQsNTEyLFtdLCJlNTE5IiwiTTk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggOTZDNzQuNyA5NiA2NCA4NS4zIDY0IDcyUzc0LjcgNDggODggNDhsOCAwIDAtMjR6TTAgMjU2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDEyOCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZ6bTI1NiAwbDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxkOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHkiLGljb246WzUxMiw1MTIsWzYxNzE0LCJtYWlsLXJlcGx5Il0sImYzZTUiLCJNMjA0LjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjEtMi41IDEuNC01LjMgMS45LTguMSAxLjktMTAuOSAwLTE5LjctOC45LTE5LjctMTkuNyAwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNSA5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjcgMC01My00My05Ni05Ni05NmwtOTYgMCAwIDgwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45eiJdfSxvSHQ9ZDllLG5IdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4tcGxhbnQtd2lsdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU3YSIsIk0xNjAgMGMtNS41IDAtMTAuNiAyLjgtMTMuNSA3LjRsLTEuMSAyLjEtMjQuOCA1NS40LTU2LjctMjEuN2MtNS45LTIuMi0xMi41LS44LTE3IDMuN1M0MSA1OCA0My4yIDYzLjlsMjEuNyA1Ni43LTU1LjQgMjQuOEMzLjcgMTQ4IDAgMTUzLjcgMCAxNjBzMy43IDEyIDkuNSAxNC42bDU1LjQgMjQuOC0yMS43IDU2LjdjLTIuMiA1LjktLjggMTIuNSAzLjcgMTdzMTEuMSA1LjkgMTcgMy43bDU2LjctMjEuNyAyNC44IDU1LjRjMi42IDUuOCA4LjMgOS41IDE0LjYgOS41czEyLTMuNyAxNC42LTkuNWwyNC44LTU1LjQgNTYuOCAyMS43YzUuOSAyLjIgMTIuNSAuOCAxNy0zLjdzNS45LTExLjEgMy43LTE3bC0yMS43LTU2LjcgNTUuNC0yNC44YzUuOC0yLjYgOS41LTguMyA5LjUtMTQuNnMtMy43LTEyLTkuNS0xNC42bC01NS40LTI0LjggMjEuNy01Ni43IC43LTIuMmMxLjItNS4zLS40LTEwLjktNC4zLTE0LjhzLTkuNS01LjUtMTQuOC00LjNsLTIuMiAuNy01Ni44IDIxLjctMjQuOC01NS40QzE3MiAzLjcgMTY2LjMgMCAxNjAgMHptMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzc2IDE2bDAgNTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtNTMuNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDIyLjdjLTkuOC00LjMtMjAuNi02LjctMzItNi43LTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjEuNGMtMTQuOCA3LjYtMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtMjEuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2LTQyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMDQgMCAwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxsSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaXVtIixpY29uOls1NzYsNTEyLFtdLCJlMDVhIiwiTTQwOCAxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMzNjAgMi43IDM2MCAxNmwwIDIzLjRjLTEzLjkgNS4zLTI2LjkgMTMuNS0zOC4yIDI0LjVMMzA1IDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOC0zMC4xIDMwLjEtMTYuOC0xNi44Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOGMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDE3NyAxNzVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMSAxMS4zLTE5LjIgMjQuMy0yNC41IDM4LjJMNDggMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2LjMgMGMxLjMgMTguMyA3LjEgMzYuNCAxNy40IDUyLjRMNzEgNDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTAuNi0xMC42YzE2IDEwLjMgMzQuMSAxNi4xIDUyLjQgMTcuNGwwIDE2LjNjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIzLjRjMTMuOS01LjMgMjYuOS0xMy41IDM4LjItMjQuNUwyNzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44IDMwLjEtMzAuMSAxNi44IDE2LjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjhjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM5OSAzMzdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMS0xMS4zIDE5LjItMjQuMyAyNC41LTM4LjJsMjMuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNi4zIDBjLTEuMy0xOC4zLTcuMS0zNi40LTE3LjQtNTIuNEw1MDUgNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NjAuNCA0OS43Yy0xNi0xMC4zLTM0LjEtMTYuMS01Mi40LTE3LjRMNDA4IDE2ek0xNjAgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTI3MiAyNDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxjSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjb3JkLXZpbnlsIixpY29uOls1MTIsNTEyLFtdLCJmOGQ5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTExMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHU5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDIuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNTIgNTAuN0MzNDAgMzguNyAzMjMuNyAzMiAzMDYuNyAzMkw2NCAzMnptMzIgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTIyNCAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LGRIdD11OWUsdUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldHMtcG9ydGFibGUiLGljb246WzUxMiw1MTIsW10sImU1ODQiLCJNNjQgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNkMwIDI4LjcgMjguNyAwIDY0IDB6TTAgMTI4bDIyNCAwIDAgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjggMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1MDEuMyAwIDQ4OEwwIDEyOHpNMTI4IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzUyIDBsOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTIyNCAwIDAtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTI4OCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2MHpNNDE2IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0scEh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im8iLGljb246WzQ0OCw1MTIsWzExMV0sIjRmIiwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZhMjI0IDIyNCAwIDEgMSAtNDQ4IDAgMjI0IDIyNCAwIDEgMSA0NDggMHoiXX0saEh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGV0dGUiLGljb246WzUxMiw1MTIsWzEyNzkxMl0sImY1M2YiLCJNNTEyIDI1NmMwIC45IDAgMS44IDAgMi43LS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDMuNCAuNCA2LjcgMSA5LjkgMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOSA2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MiAwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjItMy41IC4xLTcgLjItMTAuNiAuMi0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2UzExNC42IDAgMjU2IDAgNTEyIDExNC42IDUxMiAyNTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI4OCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGZIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NV0sImYwOWMiLCJNMTI4IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0IDMxLjcgMCA1OCAyMyA2My4xIDUzLjMgMi45IDE3LjQgMTkuNCAyOS4yIDM2LjkgMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi45QzMwOC4xIDE0LjEgMjU1LjUtMzIgMTkyLTMyIDEyMS4zLTMyIDY0IDI1LjMgNjQgOTZsMCA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE5MiAwIDAtNjR6Il19LHA5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItbGlzdGVuIixpY29uOls1MTIsNTEyLFsiYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zIl0sImYyYTIiLCJNMzc5LjYgLjNjLTguOSAxLjItMTcuMiA2LjItMjIuNCAxNC4xLTYuOCAxMC40LTcgMjQuMS0uNCAzNC42IDUuNiA4LjkgMTUuNSAxMi43IDIzLjggMTguNSA3LjUgNS4yIDE3LjYgMTMuMiAyNy43IDI0LjIgMjAgMjEuNyAzOS41IDU0LjMgMzkuNSAxMDAuMyAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNjYtMjguNS0xMTMuNC01Ni41LTE0My43LTEzLjktMTUuMS0yNy44LTI2LjEtMzguMy0zMy4zLTExLTcuNi0yMy41LTE2LjYtMzcuNi0xNC43ek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnpNMCA0ODBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYwLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNODYuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6TTI0MCAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LG1IdD1wOWUsZ0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtcHVsbC1yZXF1ZXN0IixpY29uOls1MTIsNTEyLFtdLCJlMTNjIiwiTTMyOCAyNGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTMjkzLjkgLjIgMjg3IDdMMjMxIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NiA1NmM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyOCAxNDUuNyAzMjggMTM2bDAtMjQgMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIxNC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM0w0NDggMTQ0YzAtNTMtNDMtOTYtOTYtOTZsLTI0IDAgMC0yNHpNNzIgODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNTYgNzMuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzE2IDM1LjggMTYgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zYy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTIwNS4zek03MiA0MzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMzQ0LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sYkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtleSIsaWNvbjpbNTEyLDUxMixbMTI4MjczXSwiZjA4NCIsIk0zMzYgMzUyYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2UzQzMy4yIDAgMzM2IDAgMTYwIDc4LjggMTYwIDE3NmMwIDE4LjcgMi45IDM2LjggOC4zIDUzLjdMNyAzOTFjLTQuNSA0LjUtNyAxMC42LTcgMTdsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjNi40IDAgMTIuNS0yLjUgMTctN2wzMy4zLTMzLjNjMTYuOSA1LjQgMzUgOC4zIDUzLjcgOC4zek0zNzYgOTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSx2SHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwiLGljb246WzUxMiw1MTIsWzEyODEyOF0sImY1NGMiLCJNNDE2IDQyNy40YzU4LjUtNDQgOTYtMTExLjYgOTYtMTg3LjQgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MFMwIDEwNy41IDAgMjQwYzAgNzUuOCAzNy41IDE0My40IDk2IDE4Ny40TDk2IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM2LjZ6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTI1Ni02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0saDllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXVwIixpY29uOlszODQsNTEyLFs5ODk2LCJtYXJzLXN0cm9rZS12Il0sImYyMmEiLCJNMTkyIDI1NmExMTIgMTEyIDAgMSAwIDAgMjI0IDExMiAxMTIgMCAxIDAgMC0yMjR6TTE2IDM2OGMwLTg2LjMgNjIuMS0xNTguMSAxNDQuMS0xNzMuMS0uMS0uOS0uMS0xLjktLjEtMi45bDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjEuNC0yOCAyMi40Yy0xMy44IDExLTMzLjkgOC44LTQ1LTVzLTguOC0zMy45IDUtNDVsODAtNjRjMTEuNy05LjMgMjguMy05LjMgNDAgMGw4MCA2NGMxMy44IDExIDE2IDMxLjIgNSA0NXMtMzEuMiAxNi00NSA1bC0yOC0yMi40IDAgNjEuNCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxIDAgMS45LS4xIDIuOSA4MiAxNSAxNDQuMSA4Ni44IDE0NC4xIDE3My4xIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzE2IDQ2NS4yIDE2IDM2OHoiXX0seEh0PWg5ZSxmOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1mbGFtZS1zaW1wbGUiLGljb246WzM4NCw1MTIsWyJidXJuIl0sImY0NmEiLCJNMzcyLjUgMjU2LjVsLS43LTEuOUMzMzcuOCAxNjAuOCAyODIgNzYuNSAyMDkuMSA4LjVsLTMuMy0zQzIwMi4xIDIgMTk3LjEgMCAxOTIgMHMtMTAuMSAyLTEzLjggNS41bC0zLjMgM0MxMDIgNzYuNSA0Ni4yIDE2MC44IDEyLjIgMjU0LjZsLS43IDEuOUMzLjkgMjc3LjMgMCAyOTkuNCAwIDMyMS42IDAgNDI2LjcgODYuOCA1MTIgMTkyIDUxMnMxOTItODUuMyAxOTItMTkwLjRjMC0yMi4yLTMuOS00NC4yLTExLjUtNjUuMXptLTkwLjggNDkuNWM0LjEgOS4zIDYuMiAxOS40IDYuMiAyOS41IDAgNTMtNDMgOTYuNS05NiA5Ni41cy05Ni00My41LTk2LTk2LjVjMC0xMC4xIDIuMS0yMC4zIDYuMi0yOS41bDEuOS00LjNjMTUuOC0zNS40IDM3LjktNjcuNyA2NS4zLTk1LjFsOC45LTguOWMzLjYtMy42IDguNS01LjYgMTMuNi01LjZzMTAgMiAxMy42IDUuNmw4LjkgOC45YzI3LjQgMjcuNCA0OS42IDU5LjcgNjUuMyA5NS4xbDEuOSA0LjN6Il19LHlIdD1mOWUsd0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUiLGljb246WzQ0OCw1MTIsWzEyNzc5NF0sImYxYmIiLCJNMjI0LTMyYzcgMCAxMy43IDMuMSAxOC4zIDguNWwxMzYgMTYwYzYuMSA3LjEgNy40IDE3LjEgMy41IDI1LjZTMzY5LjQgMTc2IDM2MCAxNzZsLTI0LjkgMCA3NS4yIDg4LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MDEuNCAzMDQgMzkyIDMwNGwtMzguNSAwIDg4LjggMTA0LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MzMuNCA0NDggNDI0IDQ0OGwtMTY4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTE2OCAwYy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDk0LjUgMzA0IDU2IDMwNGMtOS40IDAtMTcuOS01LjQtMjEuOC0xMy45cy0yLjYtMTguNSAzLjUtMjUuNkwxMTIuOSAxNzYgODggMTc2Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42bDEzNi0xNjBDMjEwLjMtMjguOSAyMTctMzIgMjI0LTMyeiJdfSxrSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21vZyIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZiIsIk0xNzYgMjg4Qzk2LjUgMjg4IDMyIDIyMy41IDMyIDE0NFM5Ni41IDAgMTc2IDBjMjcuMiAwIDUyLjYgNy41IDc0LjMgMjAuNiAyMC4xLTEzIDQ0LTIwLjYgNjkuNy0yMC42IDQ3LjQgMCA4OC43IDI1LjcgMTEwLjkgNjRsMS4xIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCA2MC4zLTQ3LjYgMTA5LjQtMTA3LjIgMTExLjktMjIuNiAyMC01Mi4zIDMyLjEtODQuOCAzMi4xLTMyLjUgMC02Mi4xLTEyLjEtODQuNy0zMkwxNzYgMjg4ek01MTIgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0TDI0IDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpNODggNDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTE3NiAwbDI4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sU0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InMiLGljb246WzMyMCw1MTIsWzExNV0sIjUzIiwiTTAgMTU3LjVDMCA4OC4yIDU2LjIgMzIgMTI1LjUgMzJMMjcyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDEyNS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MUwyMTAuMSAyMzBDMjcyLjkgMjM3LjkgMzIwIDI5MS4yIDMyMCAzNTQuNSAzMjAgNDIzLjggMjYzLjggNDgwIDE5NC41IDQ4MEw0OCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC0zMS0yMy4xLTU3LjItNTMuOS02MUwxMDkuOSAyODJDNDcuMSAyNzQuMSAwIDIyMC44IDAgMTU3LjV6Il19LF9IdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZWRpIixpY29uOls1NzYsNTEyLFtdLCJmNjY5IiwiTTI0NiAzMTUuN2wtMjEuMi0zMS45Yy0yLjEtMy4yLTEuNy03LjQgMS0xMC4xczYuOS0zLjEgMTAuMS0xbDI5LjUgMTkuN2MyLjEgMS40IDQuOS0uMSA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41YzU5LjgtMTAuOCAxMDUuMS02My4xIDEwNS4xLTEyNiAwLTM3LTE1LjctNzAuNC00MC44LTkzLjctNy02LjUtNi41LTE4LjYgMS0yNC40IDM0LTI2LjMgNTUuOC02Ny41IDU1LjgtMTEzLjkgMC0xNi44LTIuOS0zMy04LjItNDgtNC42LTEzIDEwLjItMzAgMjEuNC0yMiA1My41IDM4IDkyLjcgOTQuOCAxMDcuOCAxNjAuNyAuNSAyLjEtLjIgNC4zLTEuNyA1LjlsLTI4LjQgMjguNGMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDI2IDBjMy40IDAgNi4yIDIuNiA2LjMgNiAuMSAzLjMgLjIgNi42IC4yIDEwIDAgMTcuNS0xLjcgMzQuNy00LjggNTEuMy0uMiAxLjItLjkgMi40LTEuNyAzLjNsLTQ2LjUgNDYuNWMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDE0LjYgMGM0LjYgMCA3LjcgNC44IDUuNyA5LTQ0LjUgODkuNS0xMzYuOSAxNTEtMjQzLjcgMTUxUzg4LjggNDUwLjUgNDQuMyAzNjFjLTIuMS00LjIgMS05IDUuNy05bDE0LjYgMGM1LjcgMCA4LjYtNi45IDQuNS0xMC45TDIyLjYgMjk0LjZjLS45LS45LTEuNS0yLTEuNy0zLjMtMy4yLTE2LjYtNC44LTMzLjgtNC44LTUxLjMgMC0zLjMgLjEtNi43IC4yLTEwIC4xLTMuNCAyLjktNiA2LjMtNmwyNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjQuNiAxODQuNmMtMS41LTEuNS0yLjItMy44LTEuNy01LjkgMTUuMi02NiA1NC4zLTEyMi44IDEwNy44LTE2MC43IDExLjMtOCAyNiA4LjkgMjEuNCAyMi01LjMgMTUtOC4yIDMxLjItOC4yIDQ4IDAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOSA3LjUgNS44IDggMTcuOSAxIDI0LjQtMjUuMSAyMy40LTQwLjggNTYuNy00MC44IDkzLjcgMCA2Mi45IDQ1LjQgMTE1LjIgMTA1LjEgMTI2bDIuMS02MS41Yy4xLTIuNi0yLjgtNC4yLTUtMi44bC0yNi4zIDE3LjZjLTMuMiAyLjEtNy40IDEuNy0xMC4xLTFzLTMuMS02LjktMS0xMC4xTDI0NiAzNTYuM2MxLjMtMS45IC4yLTQuNS0yLTQuOWwtMzcuNi03LjVjLTMuNy0uNy02LjQtNC02LjQtNy44czIuNy03LjEgNi40LTcuOGwzNy42LTcuNWMyLjItLjQgMy4zLTMgMi00Ljl6Il19LG05ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGlraW5nIixpY29uOls0NDgsNTEyLFsiaGlraW5nIl0sImY2ZWMiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjggMTczLjZjMC0zNCAyNy42LTYxLjYgNjEuNi02MS42IDIwLjMgMCAzOS43IDguMSA1NCAyMi40bDQ4LjIgNDguMmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzcuNSAwYzUuOCAwIDExLjMgMS42IDE2IDQuM2wwLTc2LjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI2OC4zYy00LjcgMi43LTEwLjIgNC4zLTE2IDQuM2wtMzcuNSAwYy0yNS41IDAtNDkuOS0xMC4xLTY3LjktMjguMWwtNi42LTYuNiAwIDEwOS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtMTAxem0tNC44IDIwMy43YzIuMyAyLjMgNC43IDQuNCA3LjEgNi41bDQ0LjkgMzguNWMtMy42IDguNC04LjUgMTYuMy0xNC40IDIzLjRMODguNiA1MzIuNWMtMTEuMyAxMy42LTMxLjUgMTUuNC00NS4xIDQuMXMtMTUuNC0zMS41LTQuMS00NS4xbDcyLjMtODYuN2MyLjYtMy4xIDQuNS02LjYgNS44LTEwLjRsNS43LTE3LjF6TTAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0IDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2eiJdfSxNSHQ9bTllLHpIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtdG8tbGluZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMzIgMHptODYuNiAxMzcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDY0IDIzNy4zIDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHptMjU2IDBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0Mi43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LENIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MV0sImYyMjciLCJNMjg4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy05NSA5NWMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzAgNDAxLjIgMCAzMDQgNzguOCAxMjggMTc2IDEyOGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDk1LTk1LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE3NiA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0xNjAgNjRjLTYuOCAwLTEzLjQtLjQtMjAtMS4xIDIzLjYtMTguOSA0My4zLTQyLjUgNTcuNi02OS40IDQzLjMtMTUuNSA3NC40LTU2LjkgNzQuNC0xMDUuNSAwLTI1LjItOC4zLTQ4LjUtMjIuNC02Ny4yIDcuMSAyLjEgMTQuNiAzLjIgMjIuNCAzLjIgMTcgMCAzMi43LTUuMyA0NS43LTE0LjMgMTEuNyAyMy42IDE4LjMgNTAuMiAxOC4zIDc4LjMgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZ6TTUyOCAxNTcuM0w1MjggMzJjMC0xMS40LTIuNC0yMi4yLTYuNy0zMkw2MDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctNDggNDh6Il19LFRIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aGVybW9tZXRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MSIsIk05NiAzODIuMWwwLTg4LjhjMC0xNC45IDUuOS0yOS4xIDE2LjQtMzkuNmwyMS43LTIxLjcgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA3LjgtNy44YzE5LjQtMTkuNCA0NS42LTMwLjIgNzMtMzAuMiA1NyAwIDEwMy4yIDQ2LjIgMTAzLjIgMTAzLjIgMCAyNy40LTEwLjkgNTMuNi0zMC4yIDczTDI1OC4zIDM5OS42Yy0xMC41IDEwLjUtMjQuNyAxNi40LTM5LjYgMTYuNGwtODguOCAwLTg5IDg5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMFMtMi4zIDQ4MC40IDcgNDcxbDg5LTg5eiJdfSxnOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnRicnVzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mzk2LCJwYWludC1icnVzaCJdLCJmMWZjIiwiTTQ4MC41IDEwLjNMMjU5LjEgMTU4Yy0yOS4xIDE5LjQtNDcuNiA1MC45LTUwLjYgODUuMyA2Mi4zIDEyLjggMTExLjQgNjEuOSAxMjQuMyAxMjQuMyAzNC41LTMgNjUuOS0yMS41IDg1LjMtNTAuNkw1NjUuNyA5NS41YzYuNy0xMC4xIDEwLjMtMjEuOSAxMC4zLTM0LjEgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjQtMTIuMSAwLTI0IDMuNi0zNC4xIDEwLjN6TTI4OCA0MDBjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTNjQgMzM4LjEgNjQgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42IDEuOCAxNy41LTEwLjIgMzYuNC0yNy44IDM2LjRMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyeiJdfSwkSHQ9ZzllLERIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXV0ZXIiLGljb246WzM4NCw1MTIsWzk5MDZdLCJmMjJjIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMSAwLTEuOS0uMS0yLjl6Il19LGI5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGhvbmUtZmxpcCIsaWNvbjpbNDQ4LDUxMixbInBob25lLXNxdWFyZS1hbHQiXSwiZjg3YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMzIgOTYuN2wyLjggLjhjMzIuMyA4LjggNTkuOSA0MC4xIDUxLjggNzguMi0xOC41IDg3LjUtODcuNCAxNTYuMy0xNzQuOSAxNzQuOS0zOC4xIDguMS02OS40LTE5LjUtNzguMi01MS44bC0uOC0yLjhjLTIuNy05LjggMi40LTIwLjEgMTEuOC0yNGw0OC43LTIwLjNjOC4zLTMuNCAxNy44LTEuMSAyMy41IDUuOWwxOS4zIDIzLjZjMzUuMS0xNy40IDYzLjQtNDYuNiA3OS42LTgyLjRsLTIyLjEtMThjLTYuOS01LjctOS4zLTE1LjItNS45LTIzLjVsMjAuMy00OC43YzMuOS05LjQgMTQuMi0xNC40IDI0LTExLjh6Il19LExIdD1iOWUsdjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTAgMjU2YzAgMTA0LjQgNjIuNSAxOTQuMiAxNTIuMiAyMzQuMS01LjMtMTMtOC4yLTI3LjItOC4yLTQyLjFsMC02MS43Yy0xNi45LTE2LjUtMzAuMS0zNi43LTM4LjMtNTkuMy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTguMyAyMi42LTIxLjUgNDIuOC0zOC4zIDU5LjNsMCA2MS43YzAgMTQuOS0yLjkgMjkuMS04LjIgNDIuMSA4OS43LTM5LjggMTUyLjItMTI5LjYgMTUyLjItMjM0LjEgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMwIDExNC42IDAgMjU2em0xMjUuOC05MS43Yy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xczEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM3ptMjYzLjYtMjEuMWM0LjUgNi44IDMuMSAxNS45LTMuMSAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjV6TTMyMCA0NDhsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxFSHQ9djllLFBIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LWRvbGxhciIsaWNvbjpbNTEyLDUxMixbXSwiZjY1MSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHptNC0zNTJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LElIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaXBwbyIsaWNvbjpbNjQwLDUxMixbMTI5NDM1XSwiZjZlZCIsIk00MDcgNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTcuMiAxNy4yYzEuOS0uMSAzLjktLjIgNS44LS4ybDMyIDBjMTEuMiAwIDIxLjkgMi4zIDMxLjYgNi41TDU0MyA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNTY0IDEwMS45YzcuNiAxMi4yIDEyIDI2LjcgMTIgNDIuMSAwIDEwLjIgNy40IDE4LjggMTYuNyAyMyAyNy45IDEyLjUgNDcuMyA0MC41IDQ3LjMgNzMgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYtNjQgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTcuNmMtMTEuOC0yLjQtMjIuNy03LjQtMzItMTQuNC0xLjUtMS4xLTIuOS0yLjMtNC4zLTMuNS0xNy0xNC43LTI3LjctMzYuNC0yNy43LTYwLjUgMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZjMCA0NC43IDI2LjIgODMuMiA2NCAxMDEuMmwwIDEwLjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc2Yy0xOS44IDcuNy00MS40IDEyLTY0IDEycy00NC4yLTQuMy02NC0xMmwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExOC45LTE4LjEgNDAuN2MtNS40IDEyLjEtMTkuNiAxNy42LTMxLjcgMTIuMlMtMy4zIDM2Mi40IDIuMSAzNTAuM0wyNCAzMDAuOWM1LjMtMTEuOSA4LTI0LjcgOC0zNy43IDAtMTA3LjUgODUuMi0xOTUuMiAxOTEuOC0xOTkuMWwuMi0uMSA2NCAwYzQxLjcgMCA4My40IDEyLjEgMTE3LjIgMjUuNyAxLjctMS44IDMuNS0zLjYgNS4zLTUuMkw0MDcgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em03MyAxODVhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptODggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek00ODAgMTQ0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnoiXX0sQUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtZm9vZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRjNiIsIk0wIDE3NmMwLTM1LjMgMjguNy02NCA2NC02NCAuNSAwIDEuMSAwIDEuNiAwIDcuNC0zNi41IDM5LjctNjQgNzguNC02NCAxNSAwIDI5IDQuMSA0MC45IDExLjIgMTMuMy0yNS43IDQwLjEtNDMuMiA3MS4xLTQzLjJzNTcuOCAxNy42IDcxLjEgNDMuMmMxMi03LjEgMjYtMTEuMiA0MC45LTExLjIgMzguNyAwIDcxIDI3LjUgNzguNCA2NCAuNSAwIDEuMSAwIDEuNiAwIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMTEuNy0zLjEgMjIuNi04LjYgMzJMOC42IDIwOEMzLjEgMTk4LjYgMCAxODcuNyAwIDE3NnpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6Il19LE5IdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtdmlydXMiLGljb246WzQ0OCw1MTIsW10sImU1NzgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMTYwIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTkyIDI0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFJIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zdW4tcmFpbiIsaWNvbjpbNjQwLDUxMixbMTI3NzgyXSwiZjc0MyIsIk0yNTQuOSA0NDguMmM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6bTEyMCAwYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnptMTIwIDBjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yek00NDguMyAxMjhjNDQuMiAwIDgwIDM1LjggODAgODAgMCA3LjUtMS4xIDE0LjctMyAyMS41IDI5LjggMTEuNiA1MSA0MC42IDUxIDc0LjUgMCA0NC4yLTM1LjggODAtODAgODBsLTE5MiAwLTguMi0uNGMtNDAuMy00LjEtNzEuOC0zOC4yLTcxLjgtNzkuNiAwLTM5IDI3LjktNzEuNSA2NC45LTc4LjUtLjUtMy4xLS45LTYuMi0uOS05LjUgMC0zMC45IDI1LjEtNTYgNTYtNTYgMTIuNCAwIDIzLjkgNC4xIDMzLjIgMTAuOSAxMy40LTI1LjUgNDAuMS00Mi45IDcwLjgtNDIuOXpNMjQwLjMtMzEuOGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMWw0Ny4zIDcwLjQgODMuMy0xNi4zYzUuMi0xIDEwLjYgLjcgMTQuMyA0LjQgMy44IDMuOCA1LjQgOS4yIDQuNCAxNC40bC04LjYgNDMuOGMtMTEuOSA1LjUtMjIuOCAxMi45LTMyLjQgMjEuNi01LjctMS0xMS43LTEuNS0xNy43LTEuNS0xNC4zIDAtMjggMy00MC40IDguMi0xNi45LTE1LTM5LjItMjQuMi02My42LTI0LjItNTMgMC05NiA0My05NiA5NiAwIDMwLjkgMTQuNiA1OC4yIDM3LjIgNzUuOC0zLjQgMTEuNS01LjIgMjMuNi01LjIgMzYuMiAwIDEzLjIgMiAyNS45IDUuNyAzNy45bC0yLjQtMy41LTgzLjIgMTYuM2MtNS4yIDEtMTAuNi0uNy0xNC4zLTQuNC0zLjgtMy44LTUuNC05LjItNC40LTE0LjRsMTYuMy04My4zLTcwLjQtNDcuNGMtNC40LTMtNy4xLTgtNy4xLTEzLjMgMC01LjMgMi42LTEwLjMgNy0xMy4ybDcwLjQtNDcuNC0xNi4zLTgzLjItLjItMmMtLjMtNC42IDEuMy05LjEgNC42LTEyLjQgMy44LTMuOCA5LjItNS40IDE0LjQtNC40bDgzLjIgMTYuMyA0Ny4zLTcwLjQgMS4yLTEuNmMzLTMuNSA3LjQtNS41IDEyLjEtNS41em0wIDE3NS44YzguNiAwIDE2LjYgMi4zIDIzLjYgNi4yLTkuNyAxMS45LTE2LjkgMjUuOS0yMC43IDQxLjMtMTUgOC4xLTI4LjIgMTkuMi0zOC44IDMyLjMtNy41LTguNS0xMi4yLTE5LjYtMTIuMi0zMS44IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx4OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctcmlnaHQiXSwiZjE3OCIsIk01NjYuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDY2LjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0MzQuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxPSHQ9eDllLEZIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy11biIsaWNvbjpbNTEyLDUxMixbXSwiZTRkOSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjcyLTExMiAwYy0yMC45IDAtMzkuNSAxMC4xLTUxLjIgMjUuNi04LTYtMTgtOS42LTI4LjgtOS42LTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQgNjQgMCAwIDQ4LTE0NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek00MjcuNCAzODAuNWM5LTIuMSAxOC4zIDIuMiAyMi41IDEwLjVsMjYuMSA1Mi4yIDAtNDMuM2MwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDEyOGMwIDkuMy02LjQgMTcuMy0xNS40IDE5LjVzLTE4LjMtMi4yLTIyLjUtMTAuNUw0NTIgNDg0LjcgNDUyIDUyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC05LjMgNi40LTE3LjMgMTUuNC0xOS41ek0zMjQgNDAwbDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHoiXX0sQkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWxvdyIsaWNvbjpbNTEyLDUxMixbXSwiZjc2YiIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjguN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI4LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LEhIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb29yLW9wZW4iLGljb246WzQ0OCw1MTIsW10sImY1MmIiLCJNMjg4IDY0bDY0IDAgMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NGwtOTYgMCAwIDAtMTYwIDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MTZ6TTE2MCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0scUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWxlZnQiLGljb246WzQ0OCw1MTIsW10sImYwMzYiLCJNMjg4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0seTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYSIsaWNvbjpbNTEyLDUxMixbNjIyNTgsImNhbWVyYS1hbHQiXSwiZjAzMCIsIk0xNDkuMSA2NC44TDEzOC43IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNzQuNyAwLTEwLjQtMzEuMkMzNTYuNCA0NS4yIDMzOC4xIDMyIDMxNy40IDMyTDE5NC42IDMyYy0yMC43IDAtMzkgMTMuMi00NS41IDMyLjh6TTI1NiAxOTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LGpIdD15OWUsVkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJheXMiLGljb246WzY0MCw1MTIsW10sImU1OTMiLCJNMzEtMzNDMjEuNy0yMy42IDIxLjctOC40IDMxIDFMODcgNTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDY1LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNNjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw1MTkgMjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEw2MDkgMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNNjUgNTQ1bDU2LTU2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzEgNTExYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6bTU0NCAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC01Ni01NmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHpNMzIwIDIwOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMCAzMmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOGMwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMjE2LTgwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNNDUxLjIgMjYwLjRDNDY5LjQgMjg2LjMgNDgwIDMxNy45IDQ4MCAzNTJsMCA4YzAgOC40LTEuNCAxNi41LTQuMSAyNGw3OC44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01My00My05Ni05Ni05Ni0xMCAwLTE5LjcgMS41LTI4LjggNC40em0tMjYyLjQgMGMtOS4xLTIuOS0xOC44LTQuNC0yOC44LTQuNC01MyAwLTk2IDQzLTk2IDk2bDAgMTAuN2MwIDExLjggOS42IDIxLjMgMjEuMyAyMS4zbDc4LjggMGMtMi43LTcuNS00LjEtMTUuNi00LjEtMjRsMC04YzAtMzQuMSAxMC42LTY1LjcgMjguOC05MS42ek0yMTYgMTYwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHoiXX0sVUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhaW5ib3ciLGljb246WzY0MCw1MTIsWzEyNzc1Ml0sImY3NWIiLCJNMzIwIDk2QzE3OC42IDk2IDY0IDIxMC42IDY0IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDMzLjcgMCA0MTZsMC02NEMwIDE3NS4zIDE0My4zIDMyIDMyMCAzMlM2NDAgMTc1LjMgNjQwIDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRDNTc2IDIxMC42IDQ2MS40IDk2IDMyMCA5NnptMCAxMTJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDR6TTI4OCAzNTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxXSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2l0ZW1hcCIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOCIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04IDAgMCA2NCAxMjAgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjAgMCAwIDgwIDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTgwLTEyMCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMzkuOCAzMi4yLTcyIDcyLTcybDEyMCAwIDAtNjQtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0eiJdfSx3OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTYgMC0yNC40LTMuNC00OC4xLTkuOC03MC41IDE4LjYtMzYuMS0yLjctODMuNi00Ni43LTkwLTQ2LjktNTguMy0xMTguOS05NS41LTE5OS41LTk1LjVTMTAzLjQgMzcuMyA1Ni41IDk1LjVjLTQ0IDYuNC02NS4zIDUzLjktNDYuNyA5MC02LjQgMjIuNC05LjggNDYtOS44IDcwLjUgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6bS0zMS42LTIzMWM1LjMtMTAuNyAyMC41LTEwLjcgMjUuOCAwbDIwLjkgNDIuNCA0Ni43IDYuOGMxMS44IDEuNyAxNi41IDE2LjIgOCAyNC41bC0zMy44IDMzIDggNDYuNmMyIDExLjctMTAuMyAyMC43LTIwLjkgMTUuMmwtNDEuOC0yMi00MS44IDIyYy0xMC41IDUuNS0yMi45LTMuNC0yMC45LTE1LjJsOC00Ni42LTMzLjgtMzNjLTguNS04LjMtMy44LTIyLjggOC0yNC41bDQ2LjctNi44IDIwLjktNDIuNHptLTE5OC4yIDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40YzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDB6Il19LEdIdD13OWUsazllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtdXAiLGljb246WzM4NCw1MTIsWyJzb3J0LWFzYyJdLCJmMGRlIiwiTTMyIDIyNGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxNzguNSA5LjQgMTY5LjRsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzM2NC45IDIyNCAzNTIgMjI0TDMyIDIyNHoiXX0sS0h0PWs5ZSxIYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDMyYy04MC44IDAtMTQ1LjUgMzYuOC0xOTIuNiA4MC42LTQ2LjggNDMuNS03OC4xIDk1LjQtOTMgMTMxLjEtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42czE0NS41LTM2LjggMTkyLjYtODAuNmM0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNnpNMTQ0IDI1NmExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjQtMTEuNSAwLTIyLjMtMy0zMS43LTguNC0xIDEwLjktLjEgMjIuMSAyLjkgMzMuMiAxMy43IDUxLjIgNjYuNCA4MS42IDExNy42IDY3LjlzODEuNi02Ni40IDY3LjktMTE3LjZjLTEyLjItNDUuNy01NS41LTc0LjgtMTAxLjEtNzAuOCA1LjMgOS4zIDguNCAyMC4xIDguNCAzMS43eiJdfSxxYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1sZWZ0IixpY29uOlsyNTYsNTEyLFtdLCJmMGQ5IiwiTTcuNyAyMzUuOGMtMTAuMyAxMi42LTkuNSAzMS4xIDIuMiA0Mi44bDEyOCAxMjhjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlzMTkuOC0xNi42IDE5LjgtMjkuNmwwLTI1NmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtMTI4IDEyOC0yLjIgMi40eiJdfSxTOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXBwbGUtd2hvbGUiLGljb246WzQ0OCw1MTIsWzEyNzgyMiwxMjc4MjMsImFwcGxlLWFsdCJdLCJmNWQxIiwiTTIyNCAxMTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDB6TTAgMjg4YzAtNzYuMyAzNS43LTE2MCAxMTItMTYwIDI3LjMgMCA1OS43IDEwLjMgODIuNyAxOS4zIDE4LjggNy4zIDM5LjkgNy4zIDU4LjcgMCAyMi45LTguOSA1NS40LTE5LjMgODIuNy0xOS4zIDc2LjMgMCAxMTIgODMuNyAxMTIgMTYwIDAgMTI4LTgwIDIyNC0xNjAgMjI0LTE2LjUgMC0zOC4xLTYuNi01MS41LTExLjMtOC4xLTIuOC0xNi45LTIuOC0yNSAwLTEzLjQgNC43LTM1IDExLjMtNTEuNSAxMS4zLTgwIDAtMTYwLTk2LTE2MC0yMjR6Il19LFlIdD1TOWUsXzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcm9sbC10b3JhaCIsaWNvbjpbNTc2LDUxMixbInRvcmFoIl0sImY2YTAiLCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDAgNjguOSAwIDg2LjcgMTMuNCA5My4zIDMybDM4OS41IDBjNi42LTE4LjYgMjQuNC0zMiA0NS4zLTMyIDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4LTIwLjkgMC0zOC43LTEzLjQtNDUuMy0zMkw5My4zIDQ4MGMtNi42IDE4LjYtMjQuNCAzMi00NS4zIDMyLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6TTE3Ny45IDMwMWMtMS4yIDItMS45IDQuMi0xLjkgNi42IDAgNi45IDUuNiAxMi41IDEyLjUgMTIuNWw1Ni45IDAgMzAuNSA0OS4yYzIuNiA0LjIgNy4yIDYuOCAxMi4yIDYuOHM5LjYtMi42IDEyLjItNi44bDMwLjUtNDkuMiA1Ni45IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtMi4zLS42LTQuNi0xLjktNi42bC0yNy44LTQ1IDI3LjgtNDVjMS4yLTIgMS45LTQuMiAxLjktNi42IDAtNi45LTUuNi0xMi41LTEyLjUtMTIuNWwtNTYuOSAwLTMwLjUtNDkuMmMtMi42LTQuMi03LjItNi44LTEyLjItNi44cy05LjYgMi42LTEyLjIgNi44bC0zMC41IDQ5LjItNTYuOSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCAyLjMgLjYgNC42IDEuOSA2LjZsMjcuOCA0NS0yNy44IDQ1eiJdfSxaSHQ9XzllLFhIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNTEwIiwiTTUyOCAyMjQuMWM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODB6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMTg1IDE3MS44QzQ0MC4yIDE5NSA0MDAgMjQ0LjggNDAwIDMwNGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNMjcyIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5NiAwIDAtODcuM2MwLTE2LjUgNy0zMS41IDE4LjQtNDIuMS04LjctOS0yMC45LTE0LjYtMzQuNC0xNC42bC0zMiAwem0yNTYtNDcuOWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxRSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLWxlZnQtcmlnaHQtdG8tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTRiYSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhMMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzkwLjYgMzQyLjZsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40LTEzMy41IDAgOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDEzMy41IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHpNNTc2IDEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2eiJdfSxmaD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjFmOCIsIk0xMzYuNyA1LjlMMTI4IDMyIDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMC04LjctMjYuMUMzMDYuOS03LjIgMjk0LjctMTYgMjgwLjktMTZMMTY3LjEtMTZjLTEzLjggMC0yNiA4LjgtMzAuNCAyMS45ek00MTYgMTQ0TDMyIDE0NCA1My4xIDQ2Ny4xQzU0LjcgNDkyLjQgNzUuNyA1MTIgMTAxIDUxMkwzNDcgNTEyYzI1LjMgMCA0Ni4zLTE5LjYgNDcuOS00NC45TDQxNiAxNDR6Il19LE05ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjcxIDk4YzUuNS0xLjMgMTEuMS0yIDE3LTIgMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTAtMTIuNSAwLTI0LjYgMS45LTM1LjkgNS41IDkuOCAxMi43IDE2LjUgMjcuOSAxOC45IDQ0LjZ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg1LjQgMjkyLjhjLTIuNC0yLjktNS43LTQuOC05LjQtNC44cy03IDEuOS05LjQgNC44Yy02LjUgNy44LTEyLjYgMTYuMS0xOC4zIDI0LjYtOSAxMy40LTIwLjMgMzAuMi0yMC4zIDQ3LjQgMCAyOC4zIDIxLjUgNTEuMiA0OCA1MS4yczQ4LTIyLjkgNDgtNTEuMmMwLTE3LjItMTEuMi0zNC0yMC4zLTQ3LjQtNS43LTguNS0xMS45LTE2LjctMTguMy0yNC42eiJdfSxKSHQ9TTllLGVxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYXgiLGljb246WzUxMiw1MTIsWzEyODIyNCwxMjg0MzldLCJmMWFjIiwiTTE2MCA2NGwwIDgwIDY0IDAgMC04MCAxNDYuNyAwIDQ1LjMgNDUuMyAwIDM0LjcgNjQgMCAwLTM0LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNDE2IDE4LjdDNDA0IDYuNyAzODcuNyAwIDM3MC43IDBMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0ek0zMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyTDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDB6bTQ0OCA2NGwtMzIwIDAgMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAyODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMCA5NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zMzYgMjY0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzEyIDM4NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek00MjQgMjY0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNNDAwIDM4NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSx0cXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJlNTQxIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOGwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LGFxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1zYSIsaWNvbjpbNTEyLDUxMixbXSwiZjY2NSIsIk0zNC42IDI4OEw4MCAyODhjOC44IDAgMTYtNy4yIDE2LTE2TDk2IDcyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAxMzJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xNjRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE2NGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTEzMmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjAwYzAgOC44IDcuMiAxNiAxNiAxNmw0NS40IDBjMTkuMSAwIDM0LjYgMTUuNSAzNC42IDM0LjYgMCA4LjYtMy4yIDE2LjktOSAyMy4zTDQxNi42IDQ0MWMtNDEuMSA0NS4yLTk5LjQgNzEtMTYwLjYgNzFTMTM2LjYgNDg2LjIgOTUuNCA0NDFMOSAzNDUuOWMtNS44LTYuNC05LTE0LjctOS0yMy4zIDAtMTkuMSAxNS41LTM0LjYgMzQuNi0zNC42ek0yNTYgMjg4Yy0zOC40IDAtNzYuOCAzNS44LTkwLjYgNTAuMi0zLjYgMy43LTUuNCA4LjctNS40IDEzLjhzMS44IDEwLjEgNS40IDEzLjhDMTc5LjIgMzgwLjIgMjE3LjYgNDE2IDI1NiA0MTZzNzYuOC0zNS44IDkwLjYtNTAuMmMzLjYtMy43IDUuNC04LjcgNS40LTEzLjhzLTEuOC0xMC4xLTUuNC0xMy44QzMzMi44IDMyMy44IDI5NC40IDI4OCAyNTYgMjg4em0wIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sc3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtcXVlc3Rpb24iLGljb246WzY0MCw1MTIsW10sImU1NDIiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTEwMGMtMTEuNiAwLTIxLjMgOC4yLTIzLjUgMTkuMi0xLjggOC43LTEwLjIgMTQuMy0xOC45IDEyLjVzLTE0LjMtMTAuMi0xMi41LTE4LjljNS4yLTI1LjYgMjcuOC00NC44IDU0LjktNDQuOCAzMC45IDAgNTYgMjUuMSA1NiA1NiAwIDE5LjgtMTEuNyAzNy44LTI5LjggNDUuOWwtMTAuNCA0LjZjLTEuMiA3LjctNy44IDEzLjUtMTUuOCAxMy41LTguOCAwLTE2LTcuMi0xNi0xNiAwLTExLjIgNi42LTIxLjMgMTYuOC0yNS45bDEyLjQtNS41YzYuNi0yLjkgMTAuOC05LjQgMTAuOC0xNi42IDAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxpcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkLWNoZWNrIixpY29uOlszODQsNTEyLFtdLCJmNDZjIiwiTTI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDB6bTI2LjkgMjEyLjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42cy05LjggMjQuNC0uNiAzMy45bDQ2LjQgNDhjNC45IDUuMSAxMS44IDcuOCAxOC45IDcuM3MxMy42LTQuMSAxNy44LTkuOEwyODguMiAyNDYuMWM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXpNMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NHoiXX0sejllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoYXJlLWZyb20tc3F1YXJlIixpY29uOls1NzYsNTEyLFs2MTUwOSwic2hhcmUtc3F1YXJlIl0sImYxNGQiLCJNMzg0LjUgMjRsMCA3Mi02NCAwYy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDkzLjQgODIuOCAxMzQuOCAxMDAuNiAxNDIuNiAyLjIgMSA0LjYgMS40IDcuMSAxLjRsMi41IDBjOS44IDAgMTcuOC04IDE3LjgtMTcuOCAwLTguMy01LjktMTUuNS0xMi44LTIwLjMtOC45LTYuMi0xOS4yLTE4LjItMTkuMi00MC41IDAtNDUgMzYuNS04MS41IDgxLjUtODEuNWwzMC41IDAgMCA3MmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJsMTM2LTEzNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0MjUuNSA3Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzM4NC41IDE0LjMgMzg0LjUgMjR6bS0yNzIgNzJjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjU2YzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTI1NiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDB6Il19LHJxdD16OWUsamI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjZWlwdCIsaWNvbjpbMzg0LDUxMixbMTI5NTM0XSwiZjU0MyIsIk0xNCAyLjJDMjIuNS0xLjcgMzIuNS0uMyAzOS42IDUuOEw4MCA0MC40IDEyMC40IDUuOGM5LTcuNyAyMi4zLTcuNyAzMS4yIDBMMTkyIDQwLjQgMjMyLjQgNS44YzktNy43IDIyLjItNy43IDMxLjIgMEwzMDQgNDAuNCAzNDQuNCA1LjhjNy4xLTYuMSAxNy4xLTcuNSAyNS42LTMuNlMzODQgMTQuNiAzODQgMjRsMCA0NjRjMCA5LjQtNS41IDE3LjktMTQgMjEuOHMtMTguNSAyLjUtMjUuNi0zLjZsLTQwLjQtMzQuNi00MC40IDM0LjZjLTkgNy43LTIyLjIgNy43LTMxLjIgMGwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDgwIDQ3MS42IDM5LjYgNTA2LjJjLTcuMSA2LjEtMTcuMSA3LjUtMjUuNiAzLjZTMCA0OTcuNCAwIDQ4OEwwIDI0QzAgMTQuNiA1LjUgNi4xIDE0IDIuMnpNMTA0IDEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6TTgwIDM1MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxvcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXF1YWxzIixpY29uOls0NDgsNTEyLFs2Mjc2NF0sIjNkIiwiTTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHoiXX0sbnF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tdXAiLGljb246WzQ0OCw1MTIsW10sImYwNzciLCJNMjAxLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMTczLjMgNTQuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTkyLTE5MnoiXX0sbHF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDc1IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg4LjYtODguNmMxLjctMTIuMS0yLTI0LjgtMTEuMy0zNC0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwYy0zMS4yIDMxLjItODQuNSA5LjEtODQuNS0zNSAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtOS4zLTkuMy0yMi0xMy0zNC0xMS4zTDQxLTI0Ljl6TTcyIDIxNmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtMjEuNCAxMi42LTM3LjYgMjkuMS00NS4xbC0yNDAtMjQwQzEwOS42IDIwMy40IDkzLjQgMjE2IDcyIDIxNnoiXX0sY3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNzE1IiwiTTctMjVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMNTY5IDUwM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOUMtMi4zLS40LTIuMy0xNS42IDctMjV6Il19LGRxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleHBhbmQiLGljb246WzQ0OCw1MTIsW10sImYwNjUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTQ0OCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnoiXX0sQzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGUtc3RpY2t5IixpY29uOls0NDgsNTEyLFs2MjAyNiwic3RpY2t5LW5vdGUiXSwiZjI0OSIsIk02NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMTMuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzMjIuNyA0NjEuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0ODB6TTM4OS41IDMwNEwyOTYgMzA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkzLjUgMTE3LjUtMTE3LjV6Il19LHVxdD1DOWUsVDllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNvbHVtbnMiLGljb246WzQ0OCw1MTIsWyJjb2x1bW5zIl0sImYwZGIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTY0IDY0bDAgMjU2IDEyOCAwIDAtMjU2LTEyOCAwem0zMjAgMGwtMTI4IDAgMCAyNTYgMTI4IDAgMC0yNTZ6Il19LHBxdD1UOWUsaHF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zaGVsdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNTRmIiwiTTI3MS45IDQuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhDNi4yIDEzNy45IDAgMTQ4LjUgMCAxNjBMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCAxNzguNiAyNTYgNjguOSA0NDggMTc4LjYgNDQ4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTEuNS02LjItMjIuMS0xNi4xLTI3LjhsLTIyNC0xMjh6TTI1NiAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0tOCAxOTJsMTYgMCAwIDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzQuNSAyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zMy4yLTYxLjdDMzI5LjcgMjQ1LjEgMjk0LjQgMjI0IDI1NiAyMjRzLTczLjcgMjEuMS05MS45IDU0LjlsLTMzLjIgNjEuN2MtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMMjAwIDMxMy41IDIwMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTg4eiJdfSxmcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW5vdGNoIixpY29uOls1MTIsNTEyLFtdLCJmMWNlIiwiTTIyMi43IDMyLjFjNSAxNi45LTQuNiAzNC44LTIxLjUgMzkuOC03OS4zIDIzLjYtMTM3LjEgOTcuMS0xMzcuMSAxODQuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTg2LjktNTcuOC0xNjAuNC0xMzcuMS0xODQuMS0xNi45LTUtMjYuNi0yMi45LTIxLjUtMzkuOHMyMi45LTI2LjYgMzkuOC0yMS41QzQzNC45IDQyLjEgNTEyIDE0MCA1MTIgMjU2IDUxMiAzOTcuNCAzOTcuNCA1MTIgMjU2IDUxMlMwIDM5Ny40IDAgMjU2YzAtMTE2IDc3LjEtMjEzLjkgMTgyLjktMjQ1LjQgMTYuOS01IDM0LjggNC42IDM5LjggMjEuNXoiXX0sbXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyIixpY29uOls1MTIsNTEyLFtdLCJmNzczIiwiTTQxMC42IDEyNC4xYzIwLjcgMTUuNiA0NiAzMC43IDc0LjIgMzQuNSAxMy4xIDEuOCAyNS4yLTcuNSAyNy0yMC42cy03LjUtMjUuMi0yMC42LTI3Yy0xNS45LTIuMS0zMy4yLTExLjMtNTEuNy0yNS4yLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTE4LjUgMTMuOS0zNS44IDIzLjEtNTEuNyAyNS4yLTEzLjEgMS44LTIyLjQgMTMuOC0yMC42IDI3czEzLjggMjIuNCAyNyAyMC42YzI4LjItMy44IDUzLjYtMTguOSA3NC4yLTM0LjUgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptMCAxNDRjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjctMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiAxNDRjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSwkOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVsZXRlLWxlZnQiLGljb246WzY0MCw1MTIsWzkwMDMsImJhY2tzcGFjZSJdLCJmNTVhIiwiTTU3NiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjA1LjMgNjRjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDkuNCAyMzMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42TDE2MCA0MjkuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43TDUxMiA0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZ6TTI4NC4xIDE4OC4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LGdxdD0kOWUscG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyb29tLWJhbGwiLGljb246WzU3Niw1MTIsWyJxdWlkZGl0Y2giLCJxdWlkZGl0Y2gtYnJvb20tYmFsbCJdLCJmNDU4IiwiTTQ5NiA1NDRhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6TTEwNi44IDI3Ny4yYzMwLjYtMzAuNiA3My4xLTQ1LjkgMTE1LjgtNDIuMkwzNDEgMzUzLjNjMy43IDQyLjgtMTEuNiA4NS4yLTQyLjIgMTE1LjktMjcuNCAyNy40LTY0LjYgNDIuOC0xMDMuMyA0Mi44TDIyLjEgNTEyYy0xMi4yIDAtMjIuMS05LjktMjIuMS0yMi4xIDAtNi4zIDIuNy0xMi4zIDcuMy0xNi41TDEzMy43IDM1OS43YzQuMi0zLjctLjQtMTAuNC01LjQtNy45TDc3LjIgMzc3LjRjLTYuMSAzLTEzLjItMS40LTEzLjItOC4yIDAtMzEuNSAxMi41LTYxLjggMzQuOC04NGw4LTh6bTQxNy0yNzBjMTIuNi0xMC4zIDMxLjEtOS41IDQyLjggMi4yczEyLjQgMzAuMiAyLjIgNDIuOGwtMi4yIDIuNC0xOTIgMTkyIDM0LjggMzQuN2M0LjIgNC4yIDYuNiAxMCA2LjYgMTYgMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZsLTI5LjEgMC0xMDguMy0xMDguMyAwLTI5LjFjMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjYgNiAwIDExLjggMi40IDE2IDYuNmwzNC44IDM0LjcgMTkyLTE5MiAyLjQtMi4yeiJdfSxicXQ9cG9lLHZxdD1wb2UseHF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImoiLGljb246WzMyMCw1MTIsWzEwNl0sIjRhIiwiTTI4OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwbDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEQ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHV0dGxlLXNwYWNlIixpY29uOls1NzYsNTEyLFsic3BhY2Utc2h1dHRsZSJdLCJmMTk3IiwiTTAgMzY4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTAgMGM0MC42IDAgODAuNC0xMSAxMTUuMi0zMS45bDEzMy41LTgwLjEtOTMuMyAwLTY0LjkgMzguOWMtMTQgOC40LTI4LjkgMTQuNy00NC41IDE5bDAtNjYuNGM5LjctNS42IDE3LjgtMTMuNyAyMy40LTIzLjRsMTk4LjggMGM2Ny4xIDAgMTI3LjgtMjAuNiAxNzAuMy03MC42IDQuNi01LjQgNC42LTEzLjMgMC0xOC44LTQyLjUtNTAuMS0xMDMuMi03MC42LTE3MC4zLTcwLjZsLTE5OC44IDBjLTUuNi05LjctMTMuNy0xNy44LTIzLjQtMjMuNGwwLTY2LjRjMTUuNiA0LjIgMzAuNiAxMC42IDQ0LjUgMTlsNjQuOSAzOC45IDkzLjMgMC0xMzMuNS04MC4xQzE3OC40IDQzIDEzOC42IDMyIDk4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCAzNjh6bTk2IDBsMCA2NC00OCAwIDAtNjQgNDggMHpNOTYgODBsMCA2NC00OCAwIDAtNjQgNDggMHpNNDE2IDIyNGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0seXF0PUQ5ZSx3cXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieWluLXlhbmciLGljb246WzUxMiw1MTIsWzk3NzVdLCJmNmFkIiwiTTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgMzUyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC00NDhjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTYtOTYgNDMtOTYgOTYgNDMgOTYgOTYgOTZDMTUwIDQ0OCA2NCAzNjIgNjQgMjU2UzE1MCA2NCAyNTYgNjR6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sa3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3AiLGljb246WzQ0OCw1MTIsWzkyMDldLCJmMDRkIiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0sU3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3dlbCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4OSIsIk00MDcuOSAxODEuNEwyNzcuMyAzMTIgMzQyLjYgMzc3LjRjNy45IDcuOSAxMS4xIDE5LjQgOC40IDMwLjNzLTEwLjggMTkuNi0yMS41IDIyLjlsLTI1NiA4MGMtMTEuNCAzLjUtMjMuOCAuNS0zMi4yLTcuOXMtMTEuNS0yMC44LTcuOS0zMi4ybDgwLTI1NmMzLjMtMTAuNyAxMi0xOC45IDIyLjktMjEuNXMyMi40IC41IDMwLjMgOC40TDIzMiAyNjYuNyAzNjIuNiAxMzYuMWMtMTQuMy0xNC42LTE0LjItMzggLjMtNTIuNWw5NS40LTk1LjRjMjYuOS0yNi45IDcwLjUtMjYuOSA5Ny41IDBzMjYuOSA3MC41IDAgOTcuNWwtOTUuNCA5NS40Yy0xNC41IDE0LjUtMzcuOSAxNC42LTUyLjUgLjN6Il19LEw5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWJhY2stZmlzdCIsaWNvbjpbMzg0LDUxMixbImhhbmQtcm9jayJdLCJmMjU1IiwiTTcuNCAyNTMuNkMyLjYgMjQ1LjkgMCAyMzcuMSAwIDIyOGwwLTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OCAxNy4zIDAgMzIuNCA5LjEgNDAuOSAyMi44IDQuMy0yMi4xIDIzLjgtMzguOCA0Ny4xLTM4LjggMjMuNCAwIDQyLjkgMTYuOCA0Ny4xIDM4LjkgNy4zLTQuNCAxNS44LTYuOSAyNC45LTYuOSAyMi4xIDAgNDAuOCAxNSA0Ni4zIDM1LjQgNS41LTIuMiAxMS40LTMuNCAxNy43LTMuNCAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTM5LjYgNzkuMWMtMTAuOCAyMS43LTMzIDM1LjQtNTcuMiAzNS40TDk2IDM1MmMtMTYuNSAwLTMxLjgtOC40LTQwLjYtMjIuNGwtNDgtNzZ6TTMyIDQ4MGwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sX3F0PUw5ZSxNcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtaGlnaCIsaWNvbjpbNTEyLDUxMixbXSwiZjc2OSIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDIxNiA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQ2NCA4MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zNTIgODBhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAweiJdfSx6cXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JlYXRlci10aGFuIixpY29uOls1MTIsNTEyLFs2Mjc2OV0sIjNlIiwiTTM0LjkgNTAuNmMtNy40IDE2LS40IDM1LjEgMTUuNiA0Mi41TDQwMy42IDI1NiA1MC42IDQxOWMtMTYgNy40LTIzLjEgMjYuNC0xNS42IDQyLjVzMjYuNCAyMyA0Mi41IDE1LjZsNDE2LTE5MmMxMS4zLTUuMiAxOC42LTE2LjYgMTguNi0yOS4xcy03LjMtMjMuOC0xOC42LTI5LjFMNzcuNCAzNWMtMTYtNy40LTM1LjEtLjQtNDIuNSAxNS42eiJdfSxDcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3J1dGNoIixpY29uOls1MTIsNTEyLFtdLCJmN2Y3IiwiTTI5Ny40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0xLjQtMS40LTE1OC42IDE1OC42Yy0xOCAxOC00Mi40IDI4LjEtNjcuOSAyOC4xbC01OSAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNC02MS43IDYxLjctOTIuOCA5Mi44LTkzLjMgOTMuMy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNi0xNiAwIDAgNzcuMy03Ny4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTU5YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45TDI5OC43IDU2IDI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zek0zNDQgMTAxLjNMMjYxLjMgMTg0IDMyOCAyNTAuNyA0MTAuNyAxNjggMzQ0IDEwMS4zem0tMTI4IDEyOGwtMzAuNiAzMC42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCA1My41IDUzLjUgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwyODIuNyAyOTYgMjE2IDIyOS4zeiJdfSxFOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VwdGFnb24iLGljb246WzU3Niw1MTIsWyJoZXB0YWdvbiJdLCJlODIwIiwiTTI2Ny40LTMxLjVjMTUuOS01LjUgMzMuNS00LjYgNDguOCAyLjdsMTcyLjQgODMgNi4zIDMuNWMxNC4yIDkgMjQuNSAyMy4zIDI4LjMgMzkuOWw0Mi42IDE4Ni41IDEuMiA3LjJjMS42IDE0LjMtMS43IDI4LjgtOS40IDQxLjFsLTQuMiA1LjktMTE5LjMgMTQ5LjZjLTEyLjEgMTUuMi0zMC42IDI0LjEtNTAgMjQuMWwtMTkxLjMgMGMtMTkuNSAwLTM3LjktOC45LTUwLTI0LjFMMjMuNSAzMzguNGMtMTIuMS0xNS4yLTE2LjctMzUuMi0xMi4zLTU0LjJsNDIuNi0xODYuNSAyLTdjNS42LTE1LjkgMTcuMi0yOSAzMi42LTM2LjRsMTcyLjQtODMgNi43LTIuN3oiXX0sVHF0PUU5ZSwkcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyZWV0LXZpZXciLGljb246WzUxMiw1MTIsW10sImYyMWQiLCJNMjU2IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTIyNCAxNjBsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xLjggMC0xMS4xIDk5LjVjLTEuOCAxNi4yLTE1LjUgMjguNS0zMS44IDI4LjVsLTM4LjcgMGMtMTYuMyAwLTMwLTEyLjMtMzEuOC0yOC41bC0xMS4xLTk5LjUtMS44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTQxMi40IDQwMC4yYy0xNi4xLTQuMi0zNC44LTcuNi01NS40LTEwLjJsNS4zLTQ3LjdjMjIuNyAyLjkgNDMuNyA2LjcgNjIuMSAxMS41IDIyLjQgNS44IDQyLjYgMTMuMyA1Ny44IDIzLjMgMTQuNyA5LjYgMjkuOCAyNC45IDI5LjggNDdzLTE1LjEgMzcuNC0yOS44IDQ3Yy0xNS4yIDkuOS0zNS41IDE3LjUtNTcuOCAyMy4zLTQ1LjEgMTEuNy0xMDUuMyAxNy44LTE2OC40IDE3LjhzLTEyMy4zLTYuMS0xNjguNC0xNy44QzY1LjIgNDg4LjQgNDUgNDgwLjkgMjkuOCA0NzEgMTUuMSA0NjEuNCAwIDQ0Ni4xIDAgNDI0czE1LjEtMzcuNCAyOS44LTQ3YzE1LjItOS45IDM1LjUtMTcuNSA1Ny44LTIzLjMgMTguNS00LjggMzkuNS04LjYgNjIuMS0xMS41TDE1NSAzOTBjLTIwLjYgMi42LTM5LjMgNi4xLTU1LjQgMTAuMi01Ni42IDE0LjYtNTYuNiAzMi45IDAgNDcuNSAzOS45IDEwLjMgOTUuOCAxNi4yIDE1Ni40IDE2LjJzMTE2LjUtNS45IDE1Ni40LTE2LjJjNTYuNi0xNC42IDU2LjYtMzIuOSAwLTQ3LjV6Il19LERxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXZlLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZSIsIk02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI4OCA5NiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI4OC05NiAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0xMjh6Il19LExxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1sZWZ0IixpY29uOlsyNTYsNTEyLFs4MjQ5XSwiZjEwNCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sRXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyIixpY29uOls1NzYsNTEyLFsxMjk2OTFdLCJmNTRhIiwiTTM1Mi4xIDE0Ni43bDAtNDkuNmMwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDQ4NS4yLTguN2M2LjMtNC4yIDE0LjgtMy40IDIwLjIgMmw0NS40IDQ1LjVjNS40IDUuNCA2LjIgMTMuOCAyIDIwLjJMNDczLjYgMTc3LjhjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMmwtNDkuNiAwLTkwLjcgOTAuN2MxNSAzMy4zIDguOSA3My45LTE4LjUgMTAxLjNMMTYyLjEgNTEwLjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDM0LjEgNDQ5LjljLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45TDE2MC4xIDI1NmMyNy40LTI3LjQgNjcuOS0zMy42IDEwMS4zLTE4LjVsOTAuNy05MC43eiJdfSxQcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhY3RvciIsaWNvbjpbNTc2LDUxMixbMTI4NjY4XSwiZjcyMiIsIk0xNjAgOTZsMCA5NiAxMzMuNCAwLTU3LjYtOTYtNzUuOCAwek05NiAyMjNMOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA3LjggMGMyMi41IDAgNDMuMyAxMS44IDU0LjkgMzEuMWw3Ny40IDEyOC45IDY0IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxLjVjMCAxNC4yLTYuMyAyNy44LTE3LjMgMzYuOWwtMzUgMjkuMmMyNi41IDE1LjIgNDQuMyA0My43IDQ0LjMgNzYuNCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTE0LjQgMy41LTI4IDkuNi00MGwtMTAxLjIgMGMtMyAxMy40LTcuOSAyNi0xNC40IDM3LjcgNy43IDkuNCA3LjIgMjMuNC0xLjYgMzIuMmwtMjIuNiAyMi42Yy04LjggOC44LTIyLjcgOS4zLTMyLjIgMS42LTkuMyA1LjItMTkuMyA5LjMtMjkuOCAxMi4zLTEuMiAxMi4xLTExLjQgMjEuNi0yMy45IDIxLjZsLTMyIDBjLTEyLjQgMC0yMi43LTkuNS0yMy45LTIxLjYtMTAuNS0zLTIwLjQtNy4yLTI5LjgtMTIuMy05LjQgNy43LTIzLjQgNy4yLTMyLjItMS42TDM1LjUgNDUzLjhjLTguOC04LjgtOS4zLTIyLjctMS42LTMyLjItNS4yLTkuMy05LjMtMTkuMy0xMi4zLTI5LjgtMTIuMS0xLjItMjEuNi0xMS40LTIxLjYtMjMuOWwwLTMyYzAtMTIuNCA5LjUtMjIuNyAyMS42LTIzLjkgMy0xMC41IDcuMi0yMC40IDEyLjMtMjkuOC03LjctOS40LTcuMi0yMy40IDEuNi0zMi4ybDIyLjYtMjIuNmM4LjgtOC44IDIyLjctOS4zIDMyLjItMS42IDEuOS0xIDMuNy0yIDUuNy0zem02NCA2NWE2NCA2NCAwIDEgMCAwIDEyOCA2NCA2NCAwIDEgMCAwLTEyOHpNNDQwIDQyNGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwIC04MCAweiJdfSxJcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjYiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LEFxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTIgNjQgMCAwIDM1MmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQ5Ny43IDAgNDgwIDBMMzIgMHpNMTYwIDY0bDAgMTI4LTY0IDAgMC0xMjggNjQgMHptMjU2IDBsMCAxMjgtNjQgMCAwLTEyOCA2NCAweiJdfSxOcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RldGhvc2NvcGUiLGljb246WzU3Niw1MTIsWzEyOTY1OF0sImYwZjEiLCJNMzIgNDhDMzIgMjEuNSA1My41IDAgODAgMGw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjgtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjM4LjMgMCAyNTYgMGw0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTkuMmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtODUuNWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDg1LjVjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYwIDQ2NS4yIDE2MCAzNjhsMC0xOS4yQzg3IDMzNCAzMiAyNjkuNCAzMiAxOTJMMzIgNDh6TTQ4MCAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxScXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9kY2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjZSIsIk0zMzYgMzU5LjhjMzkuMS0zMi4zIDY0LTgxLjEgNjQtMTM1LjggMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZTNDggMTI2LjggNDggMjI0QzQ4IDI3OC43IDcyLjkgMzI3LjUgMTEyIDM1OS44IDExMi40IDM3Ny40IDExNS4yIDQwMC4yIDExOC40IDQyMS42IDQ4IDM4My45IDAgMzA5LjUgMCAyMjQgMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgODUuNi00OCAxNTkuOS0xMTguNSAxOTcuNiAzLjMtMjEuNCA2LTQ0LjIgNi40LTYxLjh6bS0xNC01My40Yy04LjMtMTIuNi0xOS4yLTIxLjYtMzAuNC0yNy44LTIuMS0xLjEtNC4yLTIuMi02LjMtMy4yIDExLjctMTMuOSAxOC44LTMxLjkgMTguOC01MS41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMTkuNiA3LjEgMzcuNiAxOC44IDUxLjUtMi4xIDEtNC4yIDItNi4zIDMuMi0xMS4yIDYuMi0yMi4xIDE1LjItMzAuNCAyNy44LTE4LjgtMjIuMy0zMC4xLTUxLTMwLjEtODIuNCAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4YzAgMzEuNC0xMS4zIDYwLjItMzAuMSA4Mi40ek0yMjQgMzEyYzMyLjkgMCA2NCA4LjYgNjQgNDMuOCAwIDMzLTEyLjkgMTA0LjEtMjAuNiAxMzIuOS01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOCAwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTI4YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sT3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXJpZ2h0LWRvdHMiLGljb246WzUxMiw1MTIsW10sImU0YjciLCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0Uzc4LjMgOTYgOTYgOTZMMTE0LjcgOTYgOS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxNDEuMyAxNjAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAzMnpNNDAzLjggNzAuMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek0yNzkuNyAxOTQuMmEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjIuMi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnpNMTU2LjIgMzE3LjhhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek03MC4xIDQwMy44YTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2MS42LTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHoiXX0sRnF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0yNTYgODBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01LjUgMTg1TDEyOCAzODQgNzEuOCA0NTQuM2MtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMkwzODQgMzg0IDUwNi41IDE4NWMzLjYtNS45IDUuNS0xMi43IDUuNS0xOS42bDAtLjZjMC0yMC4zLTE2LjUtMzYuOC0zNi44LTM2LjgtNy4zIDAtMTQuNCAyLjItMjAuNCA2LjJsLTE2LjkgMTEuM2MtMTIuNyA4LjUtMjkuNiA2LjgtNDAuNC00bC0zNC4xLTM0LjFDMzU2LjEgMTAwLjEgMzQ2LjIgOTYgMzM2IDk2cy0yMC4xIDQuMS0yNy4zIDExLjNsLTMwLjEgMzAuMWMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTMwLjEtMzAuMUMxOTYuMSAxMDAuMSAxODYuMiA5NiAxNzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzQuMSAzNC4xYy0xMC44IDEwLjgtMjcuNyAxMi41LTQwLjQgNEw1Ny4zIDEzNC4yYy02LjEtNC0xMy4yLTYuMi0yMC40LTYuMi0yMC4zIDAtMzYuOCAxNi41LTM2LjggMzYuOGwwIC42YzAgNi45IDEuOSAxMy43IDUuNSAxOS42eiJdfSxCcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYiIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxQOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMtdmVydGljYWwiLGljb246WzEyOCw1MTIsWyJlbGxpcHNpcy12Il0sImYxNDIiLCJNNjQgMTQ0YTU2IDU2IDAgMSAxIDAtMTEyIDU2IDU2IDAgMSAxIDAgMTEyem0wIDIyNGMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTExMmMwIDMwLjktMjUuMSA1Ni01NiA1NnMtNTYtMjUuMS01Ni01NiAyNS4xLTU2IDU2LTU2IDU2IDI1LjEgNTYgNTZ6Il19LEhxdD1QOWUscXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZSIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek00MzIgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyMjhhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDEgMCAwIDQwem0wLTE4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sanF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMyIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxWcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWFycm93LXVwLWZyb20tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzOSIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTMxOC4zIDI5OS4xbC00Ni4zLTYyLjQgMCAyNDMuMyAyNzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODAgMCAwLTI0My4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMjA4IDQ4MGwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDEyOCAzMiAwek01NjYuNiAxMDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMNDk2IDc3LjMgNDk2IDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0Ni43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6Il19LFVxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3QtZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1M2UiLCJNMzc4LjYgODEuOGM5LjgtMTQuNyA1LjgtMzQuNi04LjktNDQuNHMtMzQuNi01LjgtNDQuNCA4LjlMMjcwLjkgMTI4IDMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTYuMiAwLTg1LjMgMTI4LTExMC45IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjguMiAwLTMwLjggNDYuMmMtOS44IDE0LjctNS44IDM0LjYgOC45IDQ0LjRzMzQuNiA1LjggNDQuNC04LjlMMTc3LjEgMzg0IDQxNiAzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5Ni4yIDAgODUuMy0xMjggMTEwLjkgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjguMiAwIDMwLjgtNDYuMnoiXX0sV3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWluLXRyYW0iLGljb246WzM4NCw1MTIsWzEyODY1MF0sImU1YjQiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgtMTIwIDAgMCA2NCA0MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNjBjMCAzMS4yLTE0LjkgNTktMzggNzYuNWw2NC4zIDc2YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQuNi04OC4xYy0zLjYgLjQtNy4zIC42LTExLjEgLjZsLTEyOCAwYy0zLjggMC03LjUtLjItMTEuMS0uNkw0Mi4zIDUzNS41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw2NC4zLTc2QzQ2LjkgNDExIDMyIDM4My4yIDMyIDM1MmwwLTE2MGMwLTUzIDQzLTk2IDk2LTk2bDQwIDAgMC02NC0xMjAgMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1My4zIDAgNDBMMCA4ek0xMjggMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwem0zMiAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxHcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtZGVwYXJ0dXJlIixpY29uOls1NzYsNTEyLFsxMjg3NDddLCJmNWIwIiwiTTM3MiAxNDMuOUwxNzIuNyA0MC4yYy04LTQuMS0xNy4zLTQuOC0yNS43LTEuN2wtNDEuMSAxNWMtMTAuMyAzLjctMTMuOCAxNi40LTcuMSAyNUwyMDAuMyAyMDYuNCAxMDAuMSAyNDIuOCA0MCAyMDYuMmMtNi4yLTMuOC0xMy44LTQuNS0yMC43LTIuMUwzIDIxMC4xYy05LjQgMy40LTEzLjQgMTQuNS04LjMgMjMuMWw1My42IDkxLjhjMTUuNiAyNi43IDQ4LjEgMzguNCA3Ny4xIDI3LjhsMTIuOS00LjcgMCAwIDM5OC40LTE0NWMyOS4xLTEwLjYgNDQtNDIuNyAzMy41LTcxLjhzLTQyLjctNDQtNzEuOC0zMy41TDM3MiAxNDMuOXpNMzIuMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUxMiAweiJdfSxJOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtdG8tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24taW4tYWx0Il0sImYyZjYiLCJNMzQ1IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMDEgOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMTYwIDEwMi4zIDE2MCAxMTJsMCA4MC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMTIgMCAwIDgwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMkwzNDUgMjczem03IDE0M2MtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAweiJdfSxLcXQ9STllLFlxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZC1jYXJkIixpY29uOlszODQsNTEyLFtdLCJmN2MyIiwiTTM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxMjUuMyAwQzEwOC4zIDAgOTIgNi43IDgwIDE4LjdMMTguNyA4MEM2LjcgOTIgMCAxMDguMyAwIDEyNS4zTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0ek0xNjAgODhsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFpxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1MGEiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjEgNDcuMi0xNzUuOCAxMTQuOC01LjEtMS44LTEwLjUtMi44LTE2LjItMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkxIDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00OTYgNDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LEliPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoZWtlbC1zaWduIixpY29uOls0NDgsNTEyLFs4MzYyLCJpbHMiLCJzaGVrZWwiLCJzaGVxZWwiLCJzaGVxZWwtc2lnbiJdLCJmMjBiIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0zMjAgNDgwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMjggMCAwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMHoiXX0sWHF0PUliLFFxdD1JYixKcXQ9SWIsZWp0PUliLHRqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyYWRpbyIsaWNvbjpbNTEyLDUxMixbMTI4MjUxXSwiZjhkNyIsIk00OTQuOCAxNWMxMi43LTMuNyAyMC0xNy4xIDE2LjMtMjkuOFM0OTQtMzQuOCA0ODEuMy0zMUw1MS44IDk0LjlDNDIuNCA5Ny42IDMzLjkgMTAyLjEgMjYuNiAxMDggMTAuNSAxMTkuNyAwIDEzOC42IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIxOC41IDk2IDQ5NC44IDE1ek0zNjggMjA4YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek02NCAyNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggMjcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxBOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1kb3RzIixpY29uOls1MTIsNTEyLFsiYWxsZXJnaWVzIl0sImY0NjEiLCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6TTIwMCAzNTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptLTg4IDI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sYWp0PUE5ZSxOOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1za3VsbCIsaWNvbjpbNDQ4LDUxMixbImJvb2stZGVhZCJdLCJmNmI3IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzIgMTYzLjJsMCAxMi44YzAgOC44LTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTIuOGMtMTkuNC0xMS43LTMyLTMwLjMtMzItNTEuMiAwLTM1LjMgMzUuOC02NCA4MC02NHM4MCAyOC43IDgwIDY0YzAgMjAuOS0xMi42IDM5LjUtMzIgNTEuMnpNMjA4IDExMmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTc0LjIgOTUuN2M0LjYgMTAuMSAuMSAyMS45LTkuOSAyNi41bC00Ny45IDIxLjggNDcuOSAyMS44YzEwLjEgNC42IDE0LjUgMTYuNCA5LjkgMjYuNXMtMTYuNCAxNC41LTI2LjUgOS45TDIyNCAyOTQgMTQ0LjMgMzMwLjJjLTEwLjEgNC42LTIxLjkgLjEtMjYuNS05LjlzLS4xLTIxLjkgOS45LTI2LjVsNDcuOS0yMS44LTQ3LjktMjEuOGMtMTAuMS00LjYtMTQuNS0xNi40LTkuOS0yNi41czE2LjQtMTQuNSAyNi41LTkuOUwyMjQgMjUwIDMwMy43IDIxMy44YzEwLjEtNC42IDIxLjktLjEgMjYuNSA5Ljl6Il19LHNqdD1OOWUsUjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jay1rZXlob2xlIixpY29uOlszODQsNTEyLFsidW5sb2NrLWFsdCJdLCJmMTNlIiwiTTE5MiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NCAxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtNjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNjMuNSAwIDExNi4xIDQ2LjEgMTI2LjIgMTA2LjcgMi45IDE3LjQtOC44IDMzLjktMjYuMyAzNi45cy0zMy45LTguOC0zNi45LTI2LjNDMjUwIDU1LjEgMjIzLjcgMzIgMTkyIDMyem00MCAzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMHoiXX0saWp0PVI5ZSxPOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hcnJvdy11cCIsaWNvbjpbMzg0LDUxMixbImZpbGUtdXBsb2FkIl0sImY1NzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTIwOSAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC02NCA2NGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgODYuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODYuMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0eiJdfSxyanQ9TzllLEY5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdGVhcnMiLGljb246WzY0MCw1MTIsWzEyODUxNCwiZ3Jpbi10ZWFycyJdLCJmNTg4IiwiTTU1NC44IDIwMy40bDE2LjMgMi4zQzU0Ny43IDg4LjQgNDQ0LjIgMCAzMjAgMFM5Mi4zIDg4LjQgNjguOSAyMDUuN2wxNi4zLTIuM2MzNy01LjMgNjguNiAyNi40IDYzLjQgNjMuNGwtNi43IDQ2LjdjLTQuMSAyOS0yMS42IDUzLjItNDUuOCA2Ni44IDQzLjcgNzguNSAxMjcuNiAxMzEuNyAyMjMuOCAxMzEuN3MxODAuMS01My4xIDIyMy44LTEzMS43Yy0yNC4xLTEzLjUtNDEuNi0zNy44LTQ1LjgtNjYuOGwtNi43LTQ2LjdjLTUuMy0zNyAyNi40LTY4LjYgNjMuNC02My40ek00NzAuMyAzMjYuOUM0NDcuOSAzODguMiAzODkuMSA0MzIgMzIwIDQzMlMxOTIuMSAzODguMiAxNjkuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMXpNMjEyIDIwOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4em0xODgtMjhjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6TTY0MCAzMDAuNmMwLTI1LjYtMTguOC00Ny4zLTQ0LjEtNTAuOUw1NDkuMSAyNDNjLTEwLjYtMS41LTE5LjYgNy41LTE4LjEgMTguMWw2LjcgNDYuN2MzLjYgMjUuMyAyNS4zIDQ0LjEgNTAuOSA0NC4xIDI4LjQgMCA1MS40LTIzIDUxLjQtNTEuNHptLTY0MCAwQzAgMzI5IDIzIDM1MiA1MS40IDM1MiA3NyAzNTIgOTguNyAzMzMuMiAxMDIuMyAzMDcuOWw2LjctNDYuN2MxLjUtMTAuNi03LjUtMTkuNi0xOC4xLTE4LjFsLTQ2LjcgNi43QzE4LjggMjUzLjMgMCAyNzUgMCAzMDAuNnoiXX0sb2p0PUY5ZSxsZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tdG8tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZWRpdCJdLCJmMDQ0IiwiTTQ3MS42IDIxLjdjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDM2OCA0Ni4xIDQ2NS45IDE0NCA0OTAuMyAxMTkuNmMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NzEuNiAyMS43em0tMjk5LjIgMjIwYy02LjEgNi4xLTEwLjggMTMuNi0xMy41IDIxLjlsLTI5LjYgODguOGMtMi45IDguNi0uNiAxOC4xIDUuOCAyNC42czE1LjkgOC43IDI0LjYgNS44bDg4LjgtMjkuNmM4LjItMi43IDE1LjctNy40IDIxLjktMTMuNUw0MzIgMTc3LjkgMzM0LjEgODAgMTcyLjQgMjQxLjd6TTk2IDY0QzQzIDY0IDAgMTA3IDAgMTYwTDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDY0eiJdfSxuanQ9bGYsQjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWV1cm9wZSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLWV1cm9wZSJdLCJmN2EyIiwiTTI1Ni4yIDQ4YzExNC44IC4xIDIwNy44IDkzLjIgMjA3LjggMjA4IDAgMjIuMS0zLjQgNDMuNC05LjggNjMuNC0yIC40LTQuMSAuNi02LjIgLjZsLTIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC01MC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2bC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2cy03LjIgMTYtMTYgMTZsLTI1LjQgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmw3MC4xLTcwLjFjMi4xLTIuMSAzLjMtNSAzLjMtOCAwLTYuMi01LjEtMTEuMy0xMS4zLTExLjNsLTE0LjEgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmwyMy4xLTIzLjFjLjgtLjggMS42LTEuNSAyLjUtMi4yek00MzguNCAzNTYuMWMtMzIuOCA1OS42LTkzLjkgMTAxLjQtMTY1LjIgMTA3LjItLjctMi4zLTEuMS00LjgtMS4xLTcuMyAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjYuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC02Ni43YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDE0LjEgOS40IDIyLjYgOS40bDUuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDE2IDE2YzQuMiA0LjIgMTAgNi42IDE2IDYuNiA0LjggMCA5LjMgMS41IDEzIDQuMXpNMjU2IDUxMmwyNi4yLTEuM2MtOC42IC45LTE3LjMgMS4zLTI2LjIgMS4zem0yNi4yLTEuM0M0MTEuMyA0OTcuNiA1MTIgMzg4LjYgNTEyIDI1NiA1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMGwwIDBDMTE0LjYgMCAwIDExNC42IDAgMjU2IDAgMzgzLjUgOTMuMiA0ODkuMyAyMTUuMyA1MDguOCAyMjguNSA1MTAuOSAyNDIuMSA1MTIgMjU2IDUxMnpNMTg3LjMgMTIzLjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sbGp0PUI5ZSxIOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTQ2LjItLjFjMTQuNyAxNy44IDI5LjggNDAuMSAyOS44IDY0LjEgMCAzNi40LTI3LjYgNjQtNjQgNjRzLTY0LTI3LjYtNjQtNjRjMC0yNCAxNS4yLTQ2LjMgMjkuOC02NC4xIDguOC0xMC43IDE4LjUtMjAuOCAyOS0zMCAzLTIuNiA3LjQtMi42IDEwLjQgMCAxMC41IDkuMSAyMC4xIDE5LjMgMjkgMzB6TTI4OCAwYzQyLjUgMCA4Mi42IDEwLjQgMTE3LjggMjguNy0zLjYgMTAuOS01LjggMjIuNy01LjggMzUuMyAwIDYyLjkgNDkuMSAxMTIgMTEyIDExMiA2LjQgMCAxMi43LS41IDE4LjgtMS41IDguNiAyNS42IDEzLjIgNTMgMTMuMiA4MS41IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMzIgMzk3LjQgMzIgMjU2IDE0Ni42IDAgMjg4IDB6TTQxOC43IDMwOC45QzM3OS41IDMyMS4xIDMzNS4xIDMyOCAyODggMzI4cy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgMjIuNCA2MS4zIDgxLjMgMTA1LjEgMTUwLjMgMTA1LjFzMTI3LjktNDMuOCAxNTAuMy0xMDUuMWM0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjF6TTIwOCAxODBjMTUuNSAwIDI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMTUuNSAxMi41LTI4IDI4LTI4em0xMzIgMjhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6Il19LGNqdD1IOWUscTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1oYWxmLXN0cm9rZSIsaWNvbjpbNTEyLDUxMixbOTY4MCwiYWRqdXN0Il0sImYwNDIiLCJNNDQ4IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MmwwIDM4NGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sZGp0PXE5ZSx1anQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXRvLXBlcnNvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YyIsIk03MSAxMi41Yy04LjYgMS0xNSA4LjItMTUgMTYuOCAwIDkuMyA3LjUgMTYuOCAxNi43IDE2LjlsMTExLjQgMGM4LjgtLjEgMTUuOS03LjIgMTUuOS0xNkwyMDAgMTZjMC05LjUtOC4zLTE3LTE3LjgtMTUuOUw3MSAxMi41ek0xODkuNSA3OC4xbC0xMjIuOSAwYy0xLjYgNS43LTIuNSAxMS43LTIuNSAxNy45IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC02LjItLjktMTIuMi0yLjUtMTcuOXpNMzIgMjU2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMS44IDAgMy41LS4xIDUuMi0uNEw1MyAyMDguNkM0MC4xIDIyMC4zIDMyIDIzNy4yIDMyIDI1NnptMTkwLjIgNDIuNWMxLjEtMy4zIDEuOC02LjggMS44LTEwLjVsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMGMtMy43IDAtNy40IC4zLTEwLjkgLjlMMjIyLjIgMjk4LjV6TTM4NCAxNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0zMiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwek0yMTUuOCA0NTAuMWM1LjItNC42IDguMi0xMS4xIDguMi0xOC4xcy0zLTEzLjUtOC4yLTE4LjFsLTY0LTU2Yy03LjEtNi4yLTE3LjEtNy43LTI1LjctMy44UzExMiAzNjYuNiAxMTIgMzc2bDAgMzItODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4OCAwIDAgMzJjMCA5LjQgNS41IDE4IDE0LjEgMjEuOXMxOC42IDIuNCAyNS43LTMuOGw2NC01NnpNMjg4IDQzMS45YzAgNi45IDMgMTMuNSA4LjEgMTguMWw2NCA1Ni40YzcuMSA2LjIgMTcuMSA3LjggMjUuNyAzLjlTNDAwIDQ5Ny44IDQwMCA0ODguNGwwLTMyLjQgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTMyYzAtOS40LTUuNS0xOC0xNC4xLTIxLjlzLTE4LjYtMi40LTI1LjcgMy44bC02NCA1NmMtNS4yIDQuNS04LjIgMTEuMS04LjIgMTh6Il19LHBqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1jb2x1bW4tbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3OCIsIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiAzNjhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LGhqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1maWVsZC11biIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZSIsIk05NiAzMkM2MC43IDMyIDMyIDYwLjcgMzIgOTZsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwwIDQ4YzAgMjEuMSAxMy43IDM5LjEgMzIuNiA0NS41LS40IDMuNC0uNiA3LS42IDEwLjUgMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwxNDQuNyAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwuNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI0LjcgMC0xLjctNC4yLTQzLjgtMTA2LjNjLTEyLjMtMzAtNDEuNi00OS41LTc0LTQ5LjVsLTQwLjQgMEMzNjQuNCA0NC45IDM0My43IDMyIDMyMCAzMkw5NiAzMnpNMzg0IDIyNGwwLTk2IDMxLjkgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOWwzNS40IDg2LjEtODIuMSAwek0xNTIgMzUyYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMjgwIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTI1Ni42IDEzMi45bDI3LjQgNDEgMC0yOS45YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCA4LjgtNS44IDE2LjYtMTQuMiAxOS4xcy0xNy41LS43LTIyLjQtOGwtMjcuNC00MSAwIDI5LjljMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOTZjMC04LjggNS44LTE2LjYgMTQuMi0xOS4xczE3LjUgLjcgMjIuNCA4ek0xMzIgMTQ0bDAgNjRjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTY0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgNjRjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC02NGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHoiXX0sajllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sZmp0PWo5ZSxtanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vayIsaWNvbjpbNDQ4LDUxMixbMTI4MjEyXSwiZjAyZCIsIk0zODQgNTEyTDk2IDUxMmMtNTMgMC05Ni00My05Ni05NkwwIDk2QzAgNDMgNDMgMCA5NiAwTDQwMCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM2wwIDY2LjdjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDB6TTk2IDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMCAwLTY0LTI1NiAwem0zMi0yMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQgNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxWOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGdqdD1WOWUsYmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLW1lYXRiYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNzNiIiwiTTAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjYuOSAwYzMuNS0xMi4xIDEwLjEtMjMuMyAxOS4yLTMyLjRsMS40LTEuNGMxNS0xNSAzNS4zLTIyLjkgNTYuMS0yMi4yIDE0LjItMTUuMSAzNC4yLTIzLjkgNTUuNC0yMy45bDIgMGMyMS4xIDAgNDEuMSA4LjggNTUuNCAyMy45IDIwLjgtLjYgNDEuMSA3LjMgNTYuMSAyMi4ybDEuNCAxLjRjOS4yIDkuMiAxNS43IDIwLjQgMTkuMiAzMi40bDI2LjkgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNTYuNSA0MjQuM2M5LjUgNi4zIDE0LjIgMTcuNyAxMS45IDI4LjgtMS44IDkuMiAxIDE4LjcgNy43IDI1LjNsMS40IDEuNGM2LjYgNi42IDE2LjEgOS41IDI1LjMgNy43IDExLjEtMi4yIDIyLjUgMi41IDI4LjggMTEuOSA1LjIgNy44IDE0IDEyLjUgMjMuMyAxMi41bDIgMGM5LjQgMCAxOC4xLTQuNyAyMy4zLTEyLjUgNi4zLTkuNSAxNy43LTE0LjIgMjguOC0xMS45IDkuMiAxLjggMTguNy0xIDI1LjMtNy43bDEuNC0xLjRjNi42LTYuNiA5LjUtMTYuMSA3LjctMjUuMy0yLjItMTEuMSAyLjUtMjIuNSAxMS45LTI4LjggNy44LTUuMiAxMi41LTE0IDEyLjUtMjMuM2wwLTJjMC05LjQtNC43LTE4LjEtMTIuNS0yMy4zLTkuNS02LjMtMTQuMi0xNy43LTExLjktMjguOCAxLjgtOS4yLTEtMTguNy03LjctMjUuM2wtMS40LTEuNGMtNi42LTYuNi0xNi4xLTkuNS0yNS4zLTcuNy0xMS4xIDIuMi0yMi41LTIuNS0yOC44LTExLjktNS4yLTcuOC0xNC0xMi41LTIzLjMtMTIuNWwtMiAwYy05LjQgMC0xOC4xIDQuNy0yMy4zIDEyLjUtNi4zIDkuNS0xNy43IDE0LjItMjguOCAxMS45LTkuMi0xLjgtMTguNyAxLTI1LjMgNy43bC0xLjQgMS40Yy02LjYgNi42LTkuNSAxNi4xLTcuNyAyNS4zIDIuMiAxMS4xLTIuNSAyMi41LTExLjkgMjguOC03LjggNS4yLTEyLjUgMTQtMTIuNSAyMy4zbDAgMmMwIDkuNCA0LjcgMTguMSAxMi41IDIzLjN6TTQ4IDQ0OGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQxNiAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sVTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWFyZWEiLGljb246WzUxMiw1MTIsWyJhcmVhLWNoYXJ0Il0sImYxZmUiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnpNMjQwIDk2YzYuNyAwIDEzLjEgMi44IDE3LjcgNy44TDMyOC44IDE4MS4zIDM3NSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjNC41IDQuNSA3IDEwLjYgNyAxN2wwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMzA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTEyYzAtNiAyLjMtMTEuOCA2LjMtMTYuMmw4OC05NmM0LjUtNSAxMS03LjggMTcuNy03Ljh6Il19LHZqdD1VOWUseGp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1cGlhaC1zaWduIixpY29uOls1MTIsNTEyLFtdLCJlMjNkIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjU2LTMybDgwIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNDYxLjkgNDQ4IDQwMCA0NDhsLTQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptODAgMTYwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgOTYgNDggMHoiXX0seWp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtd2lkdGgiLGljb246WzQ0OCw1MTIsW10sImYwMzUiLCJNNDAgMEMxNy45IDAgMCAxNy45IDAgNDBMMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTI4IDAgMCAxNjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTE2MCAxMjggMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC01NmMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwem03OC42IDQwNi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAyMjkuNSAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40LTIyOS41IDAgOS40LTkuNHoiXX0sd2p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhdGVsbGl0ZSIsaWNvbjpbNTEyLDUxMixbMTI4NzUyXSwiZjdiZiIsIk0xOTkgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OS40IDg5LjQgNTUtNTVjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDggNDhjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTU1IDU1IDg5LjQgODkuNGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtOTYgOTZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC04OS40LTg5LjQtMTUuNSAxNS41YzExLjQgMjQuNiAxNy44IDUyIDE3LjggODAuOSAwIDMxLjctNy43IDYxLjUtMjEuMiA4Ny44LTQuNyA5LTE2LjcgMTAuMy0yMy44IDMuMWwtOTYuMy05Ni4zLTYwIDYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2MC02MC05Ni4zLTk2LjNjLTcuMi03LjItNS45LTE5LjIgMy4xLTIzLjggMjYuMy0xMy42IDU2LjItMjEuMiA4Ny44LTIxLjIgMjguOSAwIDU2LjMgNi40IDgwLjkgMTcuOEwxOTIuNCAyMjYuMyAxMDMgMTM3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxOTkgN3ptMTcgNTAuOWwtNjIuMSA2Mi4xIDcyLjQgNzIuNCA2Mi4xLTYyLjEtNzIuNC03Mi40ek0zOTIgMzU4LjFsNjIuMS02Mi4xLTcyLjQtNzIuNC02Mi4xIDYyLjEgNzIuNCA3Mi40eiJdfSxXOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1taW51cyIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1taW51cyJdLCJmMDEwIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMTM2IDE4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGtqdD1XOWUsU2p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1ncm91cCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMyIsIk0yNTYgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptOTYgMzEyYzAgMjUtMTIuNyA0Ny0zMiA1OS45bDAgOTIuMWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05Mi4xQzE3Mi43IDM1OSAxNjAgMzM3IDE2MCAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6TTk2IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0xNiAyNDBsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCA3NS4zYzAgMS4yIDAgMi41IC4xIDMuNy04LjUgNy42LTE5LjcgMTIuMy0zMi4xIDEyLjNsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNTYuNkMxMi45IDM2NC40IDAgMzQzLjcgMCAzMjBsMC0zMmMwLTUzIDQzLTk2IDk2LTk2IDEyLjcgMCAyNC44IDIuNSAzNS45IDYuOS0xMi42IDIxLjQtMTkuOSA0Ni40LTE5LjkgNzMuMXpNMzY4IDQ2NGwwLTc1LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDU2LjZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTEyLjMgMC0yMy42LTQuNi0zMi4xLTEyLjMgMC0xLjIgLjEtMi41IC4xLTMuN3pNNDE2IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxfanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWJpbmFyeSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5YiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTQ0IDRjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMzIgMGMyLjIgMCA0IDEuOCA0IDRsMCA0OGMwIDIuMi0xLjggNC00IDRsLTMyIDBjLTIuMiAwLTQtMS44LTQtNGwwLTQ4em0xNDAtNDRjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNzYuNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTk2YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHpNMTMyIDI5NmMwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNzYuNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTk2YzAtMTEtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIwem05NiAyNGwwIDQ4YzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDMyIDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC00OGMwLTI0LjMtMTkuNy00NC00NC00NGwtMzIgMGMtMjQuMyAwLTQ0IDE5LjctNDQgNDR6bTQ0LTRsMzIgMGMyLjIgMCA0IDEuOCA0IDRsMCA0OGMwIDIuMi0xLjggNC00IDRsLTMyIDBjLTIuMiAwLTQtMS44LTQtNGwwLTQ4YzAtMi4yIDEuOC00IDQtNHoiXX0sRzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2tzLXRoZWF0ZXIiLGljb246WzU3Niw1MTIsWzEyNzkxNywidGhlYXRlci1tYXNrcyJdLCJmNjMwIiwiTS01IDExOEwyMy41IDI3OS43YzE0IDc5LjUgNzYuMyAxNDEuOCAxNTUuOCAxNTUuOGwxMi43IDIuMmMtMTYuNS0yOC42LTI3LjEtNjAuNy0zMC42LTk0LjVsLTI0LjEgNC4zYy05LjcgMS43LTE4LjgtNS44LTE2LjktMTUuNSA0LjgtMjQuNyAxOS4xLTQ2LjYgMzkuNy02MC45bDAtNzQuNmMtMS40IC44LTMgMS4zLTQuNyAxLjZsLTYzIDExLjFjLTguNyAxLjUtMTcuMy00LjQtMTUuOS0xMy4xIDMuMS0xOS42IDE4LjQtMzYgMzkuMS0zOS43IDE3LjItMyAzMy45IDMuNSA0NC42IDE1LjhsMC0yMi43YzAtMjIuNSA2LjktNTIuNCAzMi4zLTczLjQgMjYtMjEuNSA2Ny43LTQzLjkgMTI0LjktNTQuMi0zMC41LTE2LjMtODYuMy0zMi0xNjMuOC0xOC40LTgwLjMgMTQuMi0xMjggNTAuMS0xNTAuMSA3Ni4xLTkgMTAuNS0xMC44IDI0LjktOC40IDM4LjV6TTIwOCAxMzguN2wwIDE3NC44YzAgODAuNyA1MC41IDE1Mi45IDEyNi40IDE4MC40TDM2Mi4xIDUwNGMxNC4xIDUuMSAyOS42IDUuMSA0My43IDBMNDMzLjYgNDk0QzUwOS41IDQ2Ni40IDU2MCAzOTQuMyA1NjAgMzEzLjVsMC0xNzQuOGMwLTYuOS0yLjEtMTMuOC03LTE4LjYtMjIuNi0yMi41LTc4LjItNTYtMTY5LTU2cy0xNDYuNCAzMy42LTE2OSA1NmMtNC45IDQuOS03IDExLjctNyAxOC42em02Ni4xIDE4Ny4xYy0xLjQtNyA3LTExIDEyLjctNi42IDI2LjkgMjAuNiA2MC42IDMyLjkgOTcuMiAzMi45czcwLjItMTIuMyA5Ny4yLTMyLjljNS43LTQuNCAxNC4xLS40IDEyLjcgNi42LTEwLjEgNTEuNC01NS41IDkwLjMtMTA5LjkgOTAuM3MtOTkuOC0zOC44LTEwOS45LTkwLjN6bS41LTEwMS41QzI4MS4yIDIwNS41IDI5OSAxOTIgMzIwIDE5MnMzOC45IDEzLjUgNDUuNCAzMi4zYzIuOSA4LjQtNC41IDE1LjctMTMuNCAxNS43bC02NCAwYy04LjggMC0xNi4zLTcuNC0xMy40LTE1Ljd6TTQ4MCAyNDBsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuNyA2LjUtMTguOCAyNC40LTMyLjMgNDUuNC0zMi4zczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1Ljd6Il19LE1qdD1HOWUsemp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNyIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgNDEyLjcgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMzM2IDc4LjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzMuNi0zMy42IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzMuNiAwIDAgMzMuNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzMuNiAzMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMzLjYgMCAwLTMzLjZjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFFrPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWFzbC1pbnRlcnByZXRpbmciLGljb246WzY0MCw1MTIsWyJhbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyIsImFzbC1pbnRlcnByZXRpbmciLCJoYW5kcy1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyJdLCJmMmEzIiwiTTE1Ni42IDQ2LjNjNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOXMtMzUtMS41LTQyLjkgMTQuM0wxMy41IDE4OS40QzQuNiAyMDcuMiAwIDIyNi44IDAgMjQ2LjdMMCAyNTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsODAgMCAwLS4zYzM1LjItMi43IDY1LjQtMjIuOCA4Mi4xLTUxLjcgOC44LTE1LjMgMy42LTM0LjktMTEuNy00My43cy0zNC45LTMuNi00My43IDExLjdjLTcgMTItMTkuOSAyMC0zNC43IDIwLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBjMTQuOCAwIDI3LjcgOCAzNC43IDIwIDguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdzMjAuNS0yOC40IDExLjctNDMuN2MtMTIuOC0yMi4xLTMzLjYtMzkuMS01OC40LTQ3LjFsODAuOC0yMmMxNy00LjYgMjcuMS0yMi4yIDIyLjUtMzkuM3MtMjIuMi0yNy4xLTM5LjMtMjIuNWwtMTAwLjcgMjcuNSA4MS42LTY4YzEzLjYtMTEuMyAxNS40LTMxLjUgNC4xLTQ1LjFTMjQ5LjEtMy45IDIzNS41IDcuNGwtMTAxLjkgODQuOSAyMy00NnpNNDgzLjQgNDY1LjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w4NS45LTE3MS43YzguOS0xNy44IDEzLjUtMzcuNCAxMy41LTU3LjJsMC05LjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTgwIDAgMCAuM2MtMzUuMiAyLjctNjUuNCAyMi44LTgyLjEgNTEuNy04LjkgMTUuMy0zLjYgMzQuOSAxMS43IDQzLjdzMzQuOSAzLjYgNDMuNy0xMS43YzctMTIgMTkuOS0yMCAzNC43LTIwIDIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwYy0xNC44IDAtMjcuNy04LTM0LjctMjAtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjYtMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnoiXX0sQ2p0PVFrLFRqdD1RaywkanQ9UWssRGp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLXJvdy11bmxvY2siLGljb246WzY0MCw1MTIsW10sImU2OTEiLCJNMjU2IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTI1Ni03OWMtNDYuNyA1LjgtODUuNiAzNi44LTEwMi43IDc5bC0yNS4zIDAgMCA5MC44Yy0xMC4xIDE1LjItMTYgMzMuNC0xNiA1My4xbDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxMjggNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ5ek0xMjggMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptNDMyIDQ4Yy0uMS0xNy42LTE0LjQtMzEuOS0zMi0zMS45LTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODAgNDQuMiAwIDc5LjkgMzUuOCA4MCA3OS45bC00OCAweiJdfSxManQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ja2V0IixpY29uOls1MTIsNTEyLFtdLCJmMTM1IiwiTTEyOCAzMjBMMjQuNSAzMjBjLTI0LjkgMC00MC4yLTI3LjEtMjcuNC00OC41TDUwIDE4My4zQzU4LjcgMTY4LjggNzQuMyAxNjAgOTEuMiAxNjBsOTUgMGM3Ni4xLTEyOC45IDE4OS42LTEzNS40IDI2NS41LTEyNC4zIDEyLjggMS45IDIyLjggMTEuOSAyNC42IDI0LjYgMTEuMSA3NS45IDQuNiAxODkuNC0xMjQuMyAyNjUuNWwwIDk1YzAgMTYuOS04LjggMzIuNS0yMy4zIDQxLjJsLTg4LjIgNTIuOWMtMjEuMyAxMi44LTQ4LjUtMi42LTQ4LjUtMjcuNEwxOTIgMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0uMSAwek00MDAgMTYwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEVqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHJpbXAiLGljb246WzUxMiw1MTIsWzEyOTQyNF0sImU0NDgiLCJNNzIgMzJDMzIuMiAzMiAwIDY0LjIgMCAxMDQgMCAxNDEuOSAyOS4zIDE3Mi45IDY2LjQgMTc1LjggNzcuNiAyNTcuMiAxNDcuNCAzMjAgMjMyIDMyMGw1NiAwIDAtMTkyLTIxNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM1OC43IDgwIDcyIDgwbDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDcyIDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMSAwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42IDAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEs5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW5nZS1zaWduIixpY29uOlszODQsNTEyLFs4Mzc2LCJ0ZW5nZSJdLCJmN2Q3IiwiTTAgNTZDMCA0Mi43IDEwLjcgMzIgMjQgMzJsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgODBDMTAuNyA4MCAwIDY5LjMgMCA1NnpNMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwIDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sUGp0PUs5ZSxZOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiY2xpbmljLW1lZGljYWwiXSwiZjdmMiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjI0IDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sSWp0PVk5ZSxBanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtc2xhc2giLGljb246WzY0MCw1MTIsW10sImUwNzMiLCJNNzMtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjkuNy0uMyAzOSA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIxLjggMjI0YzU2LjYtMSAxMDIuMi00Ny4yIDEwMi4yLTEwNCAwLTU3LjQtNDYuNi0xMDQtMTA0LTEwNC01Ni44IDAtMTAzIDQ1LjYtMTA0IDEwMi4yTDczLTI0Ljl6TTUxMiAyODhjLTE3LjIgMC0zMy43IDMuNC00OC43IDkuNmwxNzAgMTcwYzQuMi01LjQgNi43LTEyLjIgNi43LTE5LjZsMC0zMmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOHpNNTkuOSA5Ny43Yy0yMS41IDEyLjUtMzUuOSAzNS43LTM1LjkgNjIuMyAwIDM5LjggMzIuMiA3MiA3MiA3MiAyNi42IDAgNDkuOC0xNC40IDYyLjMtMzUuOUw1OS45IDk3Ljd6TTI1MC4yIDI4OEMxOTYuOCAzMTMuOSAxNjAgMzY4LjcgMTYwIDQzMmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1MC4yIDAtMTkyLTE5MnpNMTI4IDI4OEM1Ny4zIDI4OCAwIDM0NS4zIDAgNDE2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODYuNyAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTE2YzAtNTMuMiAyMC0xMDEuOCA1Mi45LTEzOC42LTExLjctMy41LTI0LjEtNS40LTM2LjktNS40ek02MTYgMTYwYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHoiXX0sTmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNNTM2LjQtMjYuM2M5LjgtMy41IDIwLjYtMSAyOCA2LjNzOS44IDE4LjIgNi4zIDI4bC0xNzggNDk2LjljLTUgMTMuOS0xOC4xIDIzLjEtMzIuOCAyMy4xLTE0LjIgMC0yNy04LjYtMzIuMy0yMS43bC02NC4yLTE1OGMtNC41LTExLTIuNS0yMy42IDUuMi0zMi42bDk0LjUtMTEyLjRjNS4xLTYuMSA0LjctMTUtLjktMjAuNnMtMTQuNi02LTIwLjYtLjlMMjI5LjIgMjc2LjFjLTkuMSA3LjYtMjEuNiA5LjYtMzIuNiA1LjJMMzguMSAyMTYuOGMtMTMuMS01LjMtMjEuNy0xOC4xLTIxLjctMzIuMyAwLTE0LjcgOS4yLTI3LjggMjMuMS0zMi44bDQ5Ni45LTE3OHoiXX0sWjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stYXRsYXMiLGljb246WzQ0OCw1MTIsWyJhdGxhcyJdLCJmNTU4IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0zMTAuNiAyMDhMMjc5IDIwOGMtMS40IDIzLjEtNiA0NC4yLTEyLjYgNjEuMiAyMi43LTEyLjUgMzkuNC0zNC44IDQ0LjItNjEuMnptLTE3My4xIDBjNC44IDI2LjQgMjEuNSA0OC43IDQ0LjIgNjEuMi02LjctMTctMTEuMi0zOC0xMi42LTYxLjJsLTMxLjYgMHptNzYuNCA1NWM0LjUgOS42IDguMiAxMy44IDEwLjIgMTUuNSAyLTEuNyA1LjctNS44IDEwLjItMTUuNSA2LjItMTMuNCAxMS4xLTMyLjUgMTIuNy01NWwtNDUuOCAwYzEuNiAyMi41IDYuNSA0MS42IDEyLjcgNTV6bS0xMi43LTg3bDQ1LjggMGMtMS42LTIyLjUtNi41LTQxLjYtMTIuNy01NS00LjUtOS42LTguMi0xMy44LTEwLjItMTUuNS0yIDEuNy01LjcgNS44LTEwLjIgMTUuNS02LjIgMTMuNC0xMS4xIDMyLjUtMTIuNyA1NXptMTA5LjUgMGMtNC44LTI2LjQtMjEuNS00OC43LTQ0LjItNjEuMiA2LjcgMTcgMTEuMiAzOCAxMi42IDYxLjJsMzEuNiAwek0xNjkgMTc2YzEuNC0yMy4xIDYtNDQuMiAxMi42LTYxLjItMjIuNyAxMi41LTM5LjQgMzQuOC00NC4yIDYxLjJsMzEuNiAwek05NiAxOTJhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHoiXX0sUmp0PVo5ZSxPanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUiLGljb246WzQ0OCw1MTIsW10sImYwY2UiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMC02LjUtLjNDMjUuMiA0NzYuNCAwIDQ0OS4xIDAgNDE2TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTY0IDMyMGwwIDk2IDEyOCAwIDAtOTYtMTI4IDB6bTE5MiAwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHpNNjQgMjU2bDEyOCAwIDAtOTYtMTI4IDAgMCA5NnptMTkyIDBsMTI4IDAgMC05Ni0xMjggMCAwIDk2eiJdfSxGanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQiLGljb246WzUxMiw1MTIsWzEyODE1MywxMjgxNTQsMTI4MTU1LDEyODE1NiwxMjg0MjAsMTI5MjkzLDEyOTI5NCwxMjk1MDUsOTgyOSwxMDA4NCw2MTU3OF0sImYwMDQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6Il19LFg5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi11cCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLXVwIl0sImYxMzkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM3NyAyNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODctODctODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzNzcgMjcxeiJdfSxCanQ9WDllLFE5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWhhbGYiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTMiXSwiZjI0MiIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEhqdD1ROWUsaG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbNjI1MDEsNjI2OTQsImZvbnQtYXdlc29tZS1mbGFnIiwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbCJdLCJmMmI0IiwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTIgMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCA0MTkgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjQgMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzIgNDkzLjcgMTMzLjFjMS41LTMuNCAyLjMtNyAyLjMtMTAuNyAwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2eiJdfSxxanQ9aG9lLGpqdD1ob2UsVmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRjdWZmcyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmOCIsIk0zMjAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyek0xOTIgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNTIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTZjMCAxIC4xIDEuOSAuMiAyLjktNzQuNyAyNi4zLTEyOC4yIDk3LjUtMTI4LjIgMTgxLjEgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC04My43LTUzLjUtMTU0LjgtMTI4LjItMTgxLjEgLjEtLjkgLjItMS45IC4yLTIuOWwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwek02NCAzMjBhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHptNDQ4IDBjMCA2Ni45LTUxLjMgMTIxLjgtMTE2LjYgMTI3LjUtMTQuMyAyMi44LTMyLjQgNDMuMS01My40IDU5LjkgMTMuNSAzIDI3LjYgNC42IDQyIDQuNiAxMDYgMCAxOTItODYgMTkyLTE5MiAwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEyLjMgMC0yMi40IDkuMi0yMy44IDIxLjEgMzAuMyAxOS4yIDU2LjEgNDUgNzUuMiA3NS40IDY1LjQgNS44IDExNi42IDYwLjYgMTE2LjYgMTI3LjV6TTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFVqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtY293Ym95LXNpZGUiLGljb246WzY0MCw1MTIsW10sImY4YzEiLCJNNjQwIDM4OC4zYzAgMTYuOS03LjEgMzIuMi0xOC40IDQzLjFsLTM1LTIzLjMtMjkyLjctMTk1LjFjLTM2LjEtMjQuMS03OC42LTM2LjktMTIyLTM2LjlsLTMuOSAwYy0yLjcgMC01LjQgMC04IC4xbDIyLjItMTAwYzUuNy0yNS44IDI4LjYtNDQuMSA1NS00NC4xIDEyLjIgMCAyNC4xIDQgMzMuOCAxMS4zbDQuNyAzLjVjMjYuMyAxOS43IDYyLjQgMTkuNyA4OC42IDBsNC43LTMuNWM5LjgtNy4zIDIxLjYtMTEuMyAzMy44LTExLjMgMjYuNCAwIDQ5LjMgMTguMyA1NSA0NC4xbDMzIDE0OC41QzU3NC41IDIzMi4zIDY0MCAzMDIuNiA2NDAgMzg4LjN6TTE3MS45IDIyNGMzMy45IDAgNjcuMSAxMCA5NS40IDI4LjlMNTYwIDQ0OCA1NiA0NDhjLTMwLjkgMC01Ni0yNS4xLTU2LTU2IDAtOTIuOCA3NS4yLTE2OCAxNjgtMTY4bDMuOSAweiJdfSxXanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kdXN0cnkiLGljb246WzUxMiw1MTIsW10sImYyNzUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3OS44YzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xbC0xNTYuNiA4NC4zIDAtNjMuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxMjggMjE1LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxHanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluZXMtbGVhbmluZyIsaWNvbjpbMzg0LDUxMixbXSwiZTUxZSIsIk0xOTAuNCA3NC4xYzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC0xMjggMzg0Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDEyOC0zODR6bTcwLjktNDEuN2MtMTcuNC0yLjktMzMuOSA4LjktMzYuOCAyNi4zbC02NCAzODRjLTIuOSAxNy40IDguOSAzMy45IDI2LjMgMzYuOHMzMy45LTguOSAzNi44LTI2LjNsNjQtMzg0YzIuOS0xNy40LTguOS0zMy45LTI2LjMtMzYuOHpNMzUyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxLanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzc3BvcnQiLGljb246WzM4NCw1MTIsW10sImY1YWIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek05NiA0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMjc4LjYgMjA4Yy00LjggMjYuNC0yMS41IDQ4LjctNDQuMiA2MS4yIDYuNy0xNyAxMS4yLTM4IDEyLjYtNjEuMmwzMS42IDB6bS0xNzMuMSAwbDMxLjYgMGMxLjQgMjMuMSA2IDQ0LjIgMTIuNiA2MS4yLTIyLjctMTIuNS0zOS40LTM0LjgtNDQuMi02MS4yem03Ni40IDU1Yy02LjItMTMuNC0xMS4xLTMyLjUtMTIuNy01NWw0NS44IDBjLTEuNiAyMi41LTYuNSA0MS42LTEyLjcgNTUtNC41IDkuNi04LjIgMTMuOC0xMC4yIDE1LjUtMi0xLjctNS43LTUuOC0xMC4yLTE1LjV6bTAtMTQyYzQuNS05LjYgOC4yLTEzLjggMTAuMi0xNS41IDIgMS43IDUuNyA1LjggMTAuMiAxNS41IDYuMiAxMy40IDExLjEgMzIuNSAxMi43IDU1bC00NS44IDBjMS42LTIyLjUgNi41LTQxLjYgMTIuNy01NXptOTYuNyA1NUwyNDcgMTc2Yy0xLjQtMjMuMS02LTQ0LjItMTIuNi02MS4yIDIyLjcgMTIuNSAzOS40IDM0LjggNDQuMiA2MS4yek0xMzcgMTc2bC0zMS42IDBjNC44LTI2LjQgMjEuNS00OC43IDQ0LjItNjEuMi02LjcgMTctMTEuMiAzOC0xMi42IDYxLjJ6bTE4MyAxNmExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAweiJdfSxZanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5maW5pdHkiLGljb246WzY0MCw1MTIsWzg3MzQsOTg1NF0sImY1MzQiLCJNMCAyNTZjMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgNTAuNCAwIDk3LjggMjMuNyAxMjggNjRsMzIgNDIuNyAzMi00Mi43YzMwLjItNDAuMyA3Ny42LTY0IDEyOC02NCA4OC40IDAgMTYwIDcxLjYgMTYwIDE2MFM1NjguNCA0MTYgNDgwIDQxNmMtNTAuNCAwLTk3LjgtMjMuNy0xMjgtNjRsLTMyLTQyLjctMzIgNDIuN2MtMzAuMiA0MC4zLTc3LjYgNjQtMTI4IDY0LTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwem0yODAgMGwtNDMuMi01Ny42Yy0xOC4xLTI0LjItNDYuNi0zOC40LTc2LjgtMzguNC01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzMwLjIgMCA1OC43LTE0LjIgNzYuOC0zOC40TDI4MCAyNTZ6bTgwIDBsNDMuMiA1Ny42YzE4LjEgMjQuMiA0Ni42IDM4LjQgNzYuOCAzOC40IDUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0zMC4yIDAtNTguNyAxNC4yLTc2LjggMzguNEwzNjAgMjU2eiJdfSxaanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvbmUiLGljb246WzUxMiw1MTIsW10sImYyNGQiLCJNMjg4IDQ0OGwtMjI0IDAgMC0yMjQgNDggMCAwLTY0LTQ4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDgtNjQgMCAwIDQ4em0tNjQtOTZsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxYanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5M10sImYwNGUiLCJNMzcxLjcgNDMuMUMzNjAuMSAzMiAzNDMgMjguOSAzMjguMyAzNS4yUzMwNCA1NiAzMDQgNzJsMCAxMzYuMy0xNzIuMy0xNjUuMUMxMjAuMSAzMiAxMDMgMjguOSA4OC4zIDM1LjJTNjQgNTYgNjQgNzJsMCAzNjhjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlMMzA0IDMwMy43IDMwNCA0NDBjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlsMTkyLTE4NGM3LjktNy41IDEyLjMtMTggMTIuMy0yOC45cy00LjUtMjEuMy0xMi4zLTI4LjlsLTE5Mi0xODR6Il19LFFqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtIixpY29uOls0NDgsNTEyLFsxMDldLCI0ZCIsIk0yMi43IDMzLjRjMTMuNS00LjEgMjguMSAxLjEgMzUuOSAxMi45TDIyNCAyOTQuMyAzODkuNCA0Ni4zYzcuOC0xMS43IDIyLjQtMTcgMzUuOS0xMi45UzQ0OCA0OS45IDQ0OCA2NGwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3OC4zLTEzMy40IDIwMC4xYy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuNyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDkuOSA5LjIgMzcuNSAyMi43IDMzLjR6Il19LEpqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLXNwaWtlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTU2OCIsIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjgtMjYuNiA0OS44TDY0IDM1MiA2NCAxMTYuOHpNMzIgMzg0bDU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sZVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluIixpY29uOls1MTIsNTEyLFsxMjc5NTZdLCJmNmZjIiwiTTI1Ni41IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41LTcuMiAxMi4xLTIwLjMgMTkuNS0zNC4zIDE5LjVsLTQzMiAwYy0xNC4xIDAtMjcuMS03LjQtMzQuMy0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDAgMi45LTQuNkMyMzEuNyA2LjIgMjQzLjYgMCAyNTYuNSAwek0xNzAuNCAyNDkuOWwyNi44IDI2LjhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNDMuMy00My4zYzYtNiAxNC4xLTkuNCAyMi42LTkuNGw0Mi44IDAtNzIuMS0xMzMuNS04Ni4xIDE1OS40eiJdfSx0VnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MiLGljb246WzUxMiw1MTIsW10sImY0MzkiLCJNMTY4IDU2bDAgNDAtNzguMSAwYy0xNC4zIDAtMjUuOSAxMS42LTI1LjkgMjUuOSAwIDQgLjkgOCAyLjcgMTEuNmwzMy40IDY2LjhjLTExLjQgMS44LTIwLjIgMTEuNy0yMC4yIDIzLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRsNS42IDAtMTMuNiAxMzYtNTYuMiA3MC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyNDguOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDI4OCAzODQgMjc0LjQgMjQ4IDI4MCAyNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjQgMC0xMS45LTguNy0yMS45LTIwLjItMjMuN2wzMy40LTY2LjhjMS44LTMuNiAyLjctNy42IDIuNy0xMS42IDAtMTQuMy0xMS42LTI1LjktMjUuOS0yNS45bC03OC4xIDAgMC00MCAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzI0NS4zIDggMjMyIDhsLTE2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMxNjgtMjEuMyAxNjgtOGwwIDE2LTE2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMHpNMzI1LjggMjc5LjZsOC41IDg1LjUgNDcuNCA1OS4yIDQuMiA1LjdjOS4yIDEzLjcgMTQuMSAyOS45IDE0LjEgNDYuNSAwIDEyLjctMi44IDI0LjgtNy45IDM1LjVsODMuMSAwYzIwLjMgMCAzNi44LTE2LjUgMzYuOC0zNi44IDAtNy4zLTIuMi0xNC40LTYuMi0yMC40bC0yNS44LTM4LjcgMC02NCAxMy4zLTEzLjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYtMzIgMCAwLTE2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCAyMi40LTEwLjIgNDIuNC0yNi4yIDU1LjZ6Il19LEprPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLXRocmVlLXF1YXJ0ZXJzIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMyIsInRoZXJtb21ldGVyLTMiLCJ0aGVybW9tZXRlci10aHJlZS1xdWFydGVycyJdLCJmMmM4IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM0wxMzYgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNTYuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LGFWdD1KayxzVnQ9SmssaVZ0PUprLHJWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiIixpY29uOlszMjAsNTEyLFs5OF0sIjQyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuNyAxOC43LTIyLjMgMzAtNTEgMzAtODIuMyAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMTYwIDIyNGwtOTYgMCAwLTEyOCA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0ek02NCAyODhsMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMTI4eiJdfSxvVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLXZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDZjIiwiTTI1My40IDIuOUMyNDkuMiAxIDI0NC43IDAgMjQwIDBzLTkuMiAxLTEzLjQgMi45TDM4LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjUzLjQgMi45ek0yNDAgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjA4IDI2NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LG5WdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXRlY29pbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQzIiwiTTEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTU3LjktMzguNiAxMWMtMTIuNyAzLjYtMjAuMSAxNi45LTE2LjUgMjkuN3MxNi45IDIwLjEgMjkuNyAxNi41TDY0IDI3MS44IDY0IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xNjIuNSAxMzQuNi0zOC41YzEyLjctMy42IDIwLjEtMTYuOSAxNi41LTI5LjdzLTE2LjktMjAuMS0yOS43LTE2LjVMMTI4IDIwMy42IDEyOCA2NHoiXX0sbFZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZDYiLGljb246WzUxMiw1MTIsW10sImY2ZDEiLCJNMjI0LjQgOC4zQzI0NC0yLjggMjY4LTIuOCAyODcuNiA4LjNsMTc2IDk5LjdjMjAgMTEuNCAzMi40IDMyLjYgMzIuNCA1NS43bDAgMTk3LjRjMCAyMy0xMi40IDQ0LjMtMzIuNCA1NS43bC0xNzYgOTkuN2MtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBsLTE3Ni05OS43QzI4LjQgNDA1LjUgMTYgMzg0LjIgMTYgMzYxLjJsMC0xOTcuNGMwLTIzIDEyLjQtNDQuMyAzMi40LTU1LjdsMTc2LTk5Ljd6TTEwMi42IDE1NS42Yy04LjgtMy4xLTE4LjggLjMtMjMuOCA4LjZzLTMuMiAxOC43IDMuNiAyNWwzLjIgMi40IDE1MC4yIDkwLjIgMCAxNDguN2MwIDExIDkgMjAgMjAgMjAgMTEgMCAyMC05IDIwLTIwbDAtMTQ4LjcgMTUwLjMtOTAuMmM5LjUtNS43IDEyLjYtMTggNi45LTI3LjRzLTE4LTEyLjUtMjcuNC02LjlsLTE0OS43IDg5LjgtMTQ5LjctODkuOC0zLjctMS43eiJdfSxjVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC1saW5lcy12ZXJ0aWNhbCIsaWNvbjpbMTkyLDUxMixbXSwiZjdhNSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDY0em0xMjggMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0eiJdfSxKOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ29sZi1iYWxsLXRlZSIsaWNvbjpbMzg0LDUxMixbImdvbGYtYmFsbCJdLCJmNDUwIiwiTTI5OC41IDM4NC4xYzEyLjEgMS4yIDIxLjUgMTEuNSAyMS41IDIzLjlzLTkuNCAyMi42LTIxLjUgMjMuOWwtMi41IC4xLTgwIDAgMCA4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTg4LTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTIuNCA5LjQtMjIuNiAyMS41LTIzLjlsMi41LS4xIDIwOCAwIDIuNSAuMXpNMTkyIDBjMTA2IDAgMTkyIDg2IDE5MiAxOTIgMCA1Ny40LTI1LjIgMTA4LjgtNjUuMSAxNDRMNjUuMSAzMzZDMjUuMiAzMDAuOCAwIDI0OS40IDAgMTkyIDAgODYgODYgMCAxOTIgMHptMzIgMjQwYy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bTY0LTY0Yy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bS04MC0xNmMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxkVnQ9SjllLHVWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uIixpY29uOls1NzYsNTEyLFsxMTA0M10sImYzMTIiLCJNMzMuNSAyMjAuM2MtMTIuNyAyMi4yLTEyLjcgNDkuNCAwIDcxLjVsOTYuMiAxNjguMWMxMi44IDIyLjQgMzYuNyAzNi4yIDYyLjUgMzYuMmwxOTEuNiAwYzI1LjggMCA0OS43LTEzLjggNjIuNS0zNi4ybDk2LjItMTY4LjFjMTIuNy0yMi4yIDEyLjctNDkuNCAwLTcxLjVMNDQ2LjMgNTIuMkM0MzMuNSAyOS44IDQwOS42IDE2IDM4My44IDE2TDE5Mi4yIDE2Yy0yNS44IDAtNDkuNyAxMy44LTYyLjUgMzYuMkwzMy41IDIyMC4zeiJdfSxwVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTU2IDIyNS42TDMyLjQgMjk2LjIgMzIuNCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRsMTE3LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTM2NS40IDBjLTQxLjMgMC03OCAyNi40LTkxLjEgNjUuNnpNNDc3LjggNDQ4TDk5IDQ0OGMtMzIuOCAwLTU1LjktMzIuMS00NS41LTYzLjJsNDgtMTQ0QzEwOCAyMjEuMiAxMjYuNCAyMDggMTQ3IDIwOGwzNzguOCAwYzMyLjggMCA1NS45IDMyLjEgNDUuNSA2My4ybC00OCAxNDRjLTYuNSAxOS42LTI0LjkgMzIuOC00NS41IDMyLjh6Il19LGhWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrYWFiYSIsaWNvbjpbNTEyLDUxMixbMTI4MzMxXSwiZjY2YiIsIk0yNTYgNTEuM0w5Mi44IDExMi40IDI0Ny41IDE3MS4xYzUuNSAyLjEgMTEuNSAyLjEgMTcgMEw0MTkuMiAxMTIuNCAyNTYgNTEuM3pNMCAxMjkuM2MwLTIwIDEyLjQtMzcuOSAzMS4xLTQ0LjlsMjA4LTc4YzEwLjktNC4xIDIyLjgtNC4xIDMzLjcgMGwyMDggNzhjMTguNyA3IDMxLjEgMjQuOSAzMS4xIDQ0LjlsMCAzNi0yNTMuMiA5NmMtMS44IC43LTMuOCAuNy01LjcgMGwtMjUzLjItOTYgMC0zNnptMCAxNDBsMC01Mi43IDIzNi4xIDg5LjZjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDIzNi4xLTg5LjYgMCA1Mi43LTEyOCA0OC42IDAgNTEuMyAxMjgtNDguNiAwIDYyLjJjMCAyMC0xMi40IDM3LjktMzEuMSA0NC45bC0yMDggNzhjLTEwLjkgNC4xLTIyLjggNC4xLTMzLjcgMGwtMjA4LTc4QzEyLjQgNDIwLjcgMCA0MDIuNyAwIDM4Mi43bDAtNjIuMiAxMjggNDguNiAwLTUxLjMtMTI4LTQ4LjZ6TTIzNi4xIDQxMC4xYzEyLjggNC45IDI2LjkgNC45IDM5LjcgMGw2MC4xLTIyLjggMC01MS4zLTc3LjIgMjkuM2MtMS44IC43LTMuOCAuNy01LjcgMGwtNzcuMi0yOS4zIDAgNTEuMyA2MC4xIDIyLjh6Il19LGZWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmciLGljb246WzU3Niw1MTIsW10sImY0YmQiLCJNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxtVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLXJpZ2h0IixpY29uOlsxOTIsNTEyLFtdLCJlODFjIiwiTTY0IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAweiJdfSxnVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLWRyb3BsZXQiLGljb246WzMyMCw1MTIsW10sImU0YzQiLCJNODAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTAzLjNjNjQuOSAyMC40IDExMiA4MSAxMTIgMTUyLjdsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTcxLjYgNDcuMS0xMzIuMyAxMTItMTUyLjdMMTEyIDMyQzk0LjMgMzIgODAgMTcuNyA4MCAwem04MCA0MTZjMzUuMyAwIDY0LTMyLjQgNjQtNjQgMC0yMS4yLTI4LjktNjQuNS00Ny45LTkwLjYtOC4xLTExLjEtMjQuMi0xMS4xLTMyLjMgMC0xOSAyNi4xLTQ3LjkgNjkuNC00Ny45IDkwLjYgMCAzMS42IDI4LjcgNjQgNjQgNjR6Il19LGJWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sdlZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tcmlnaHQiLGljb246WzMyMCw1MTIsWzkwMDJdLCJmMDU0IiwiTTMxMS4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDMuMiAyNTYgNzMuOSA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6Il19LHhWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlZ2ciLGljb246WzM4NCw1MTIsWzEyOTM3MF0sImY3ZmIiLCJNMTkyIDQ5NkM4NiA0OTYgMCAzOTQgMCAyODggMCAxNzYgNjQgMTYgMTkyIDE2UzM4NCAxNzYgMzg0IDI4OGMwIDEwNi04NiAyMDgtMTkyIDIwOHpNMTU0LjggMTM0YzYuNS02IDctMTYuMSAxLTIyLjZzLTE2LjEtNy0yMi42LTFjLTIzLjkgMjEuOC00MS4xIDUyLjctNTIuMyA4NC4yLTExLjIgMzEuNi0xNi45IDY1LjEtMTYuOSA5My41IDAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNC41IDUtNTQuNCAxNS4xLTgyLjggMTAuMS0yOC41IDI1LTU0LjEgNDMuNy03MS4yeiJdfSxlYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZG9tZSIsaWNvbjpbNTEyLDUxMixbImxhbmRtYXJrLWFsdCJdLCJmNzUyIiwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIC45IDAgMS44IC4xIDIuNi04MC41IDEzLjQtMTQ0IDc2LjktMTU3LjUgMTU3LjRMNjQgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMTYwLTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDQ0OCA0MTYgNDQ4IDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMi43IDBjLTEzLjUtODAuNC03Ny0xNDMuOS0xNTcuNS0xNTcuNCAuMS0uOSAuMS0xLjcgLjEtMi42IDAtMTcuNy0xNC4zLTMyLTMyLTMyem04MCAyNTZsNjQgMCAwIDE2MC02NCAwIDAtMTYwek0yMjQgNDE2bDAtMTYwIDY0IDAgMCAxNjAtNjQgMHpNMTEyIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6Il19LHlWdD1lYmUsd1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvcm0iLGljb246WzQ0OCw1MTIsW10sImU1OTkiLCJNMjI0IDk2YzAtNTMgNDMtOTYgOTYtOTZsMzguNCAwQzQwNy45IDAgNDQ4IDQwLjEgNDQ4IDg5LjZMNDQ4IDM3NmMwIDc1LjEtNjAuOSAxMzYtMTM2IDEzNlMxNzYgNDUxLjEgMTc2IDM3NmwwLTgwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwbDAgMTY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4UzAgNDkwLjUgMCA0NjRMMCAyOTZjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZzMTM2IDYwLjkgMTM2IDEzNmwwIDgwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0xODQtMzIgMGMtNTMgMC05Ni00My05Ni05NnptMTQ0LThhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sa1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItaW5qdXJlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjcyOCIsIk0yNDIuNyA4MEwzMzQgODBjLTEwLjctMjQuNi0yOS41LTQ0LjktNTIuOS01Ny42TDI0Mi43IDgwem0tLjktNzAuN0MyMzYgOC40IDIzMCA4IDIyNCA4IDE3NC44IDggMTMyLjUgMzcuNiAxMTQgODBsODAuNiAwIDQ3LjEtNzAuN3pNMjI0IDI0OGM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwtMjQwIDBjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjB6TTk4LjcgMzQxLjhDNDkuMyAzNzAuMiAxNiA0MjMuNSAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwxNTEgMC05NS44LTE3MC4yem00NS4xLTE3LjdsNDIuNyA3NS45IDg1LjUgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDExLjQtMi40IDIyLjItNi43IDMybDU5LjIgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTkwLjktNzMuNy0xNjQuNi0xNjQuNi0xNjQuNmwtODYuOSAwYy0xMi42IDAtMjQuOSAxLjQtMzYuNyA0LjF6TTIxMy41IDQ0OGwzNiA2NCAyMi41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU4LjUgMHoiXX0sU1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cmlrZXRocm91Z2giLGljb246WzUxMiw1MTIsW10sImYwY2MiLCJNOTYgMTU3LjVDOTYgODguMiAxNTIuMiAzMiAyMjEuNSAzMkwzNjggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMjIxLjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxbDQ0LjEgNS41IDIyMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4My4xIDBDMTAzIDIwNC42IDk2IDE4MS44IDk2IDE1Ny41ek0zNDkuMiAzMzZsNjUuNSAwYy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNSAwIDY5LjMtNTYuMiAxMjUuNS0xMjUuNSAxMjUuNUwxNDQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0Ni41IDBjMzQgMCA2MS41LTI3LjUgNjEuNS02MS41IDAtNi40LTEtMTIuNy0yLjgtMTguNXoiXX0sX1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsb2ciLGljb246WzUxMiw1MTIsW10sImY3ODEiLCJNMjI0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0IDE0NS44IDAgMjY0IDExOC4yIDI2NCAyNjQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTkuMy05Ni43LTIxNi0yMTYtMjE2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek04MCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNiA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NFMyNTUuNSA1MTIgMTc2IDUxMiAzMiA0NDcuNSAzMiAzNjhsMC0yMjRjMC0yNi41IDIxLjUtNDggNDgtNDh6bTE2OCAwYzkyLjggMCAxNjggNzUuMiAxNjggMTY4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMy01My43LTEyMC0xMjAtMTIwLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LE1WdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2gtMjAiLGljb246WzQ0OCw1MTIsW10sImUwNmYiLCJNMTY4LjUgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMjUuM2MtMTA4IDExLjktMTkyIDEwMy41LTE5MiAyMTQuNyAwIDExOS4zIDk2LjcgMjE2IDIxNiAyMTZzMjE2LTk2LjcgMjE2LTIxNmMwLTM5LjgtMTAuOC03Ny4xLTI5LjYtMTA5LjJsMjguMi0yOC4yYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0yMy40IDIzLjRjLTMyLjktMzAuMi03NS4yLTUwLjMtMTIyLTU1LjVsMC0yNS4zIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwem0tNjAgMjQwYzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAzLjhjMCAxMS43LTMuMiAyMy4xLTkuMyAzM2wtNDMuOCA3MS4yIDMzLjEgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTU3LjggMGMtMTQuNSAwLTI2LjItMTEuNy0yNi4yLTI2LjIgMC00LjkgMS4zLTkuNiAzLjktMTMuOGw1Ni43LTkyLjFjMi4yLTMuNiAzLjQtNy44IDMuNC0xMi4xbDAtMy44YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMHptMTgwLTUyYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTI4LjcgMjMuMy01MiA1Mi01MnptLTEyIDUybDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyeiJdfSx6VnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGlja3VwIixpY29uOls2NDAsNTEyLFsxMjg3NjNdLCJmNjNjIiwiTTM2My44IDk2bDU3LjYgOTYtMTMzLjQgMCAwLTk2IDc1LjggMHpNNDk2IDE5Mkw0MTguNiA2My4xQzQwNy4xIDQzLjggMzg2LjIgMzIgMzYzLjggMzJMMjU2IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOC0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMi40IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE2MC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDMyLjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek0xMTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6bTM3Ni00MGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LHRiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWVkbGluZyIsaWNvbjpbNTEyLDUxMixbMTI3NzkzLCJzcHJvdXQiXSwiZjRkOCIsIk01MTIgMzJDNTEyIDE0MC4xIDQzNS40IDIzMC4zIDMzMy42IDI1MS40IDMyNS43IDE5My4zIDI5OS42IDE0MSAyNjEuMSAxMDAuNSAzMDEuMiA0MCAzNjkuOSAwIDQ0OCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzIgMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6Il19LENWdD10YmUsYWJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYW5zZ2VuZGVyIixpY29uOls1NzYsNTEyLFs5ODk1LCJ0cmFuc2dlbmRlci1hbHQiXSwiZjIyNSIsIk0xMjgtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTcuOSAzMiAxMzYgNzAuMSAxNTEgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0xNSAxNSAxNC4yIDE0LjJjMjcuOS0yMy44IDY0LjItMzguMiAxMDMuOC0zOC4yIDM2LjcgMCA3MC42IDEyLjQgOTcuNiAzMy4yTDQ2Ni43IDMyIDQ0OCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTg0LjQgODQuNGMxMyAyMy4xIDIwLjQgNDkuOSAyMC40IDc4LjMgMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAzNS4yIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM1LjJjLTczLTE0LjgtMTI4LTc5LjQtMTI4LTE1Ni44IDAtMzEuNCA5LTYwLjcgMjQuNy04NS40bC0xNi43LTE2LjctMTUgMTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTUtMTUtMzguMS0zOC4xIDAgMzAuMWMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDExMy43IDAgOTZMMCAwQzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDB6TTI4OCAzMzZhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LFRWdD1hYmUsJFZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTMwNC4xIDcuNmMwLTExLjEtNy42LTIwLjctMTguNC0yMy4zcy0yMS45IDIuNS0yNyAxMi40TDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjkxIDQxNi4xYzgtNC4xIDEzLjEtMTIuNCAxMy4xLTIxLjRsMC0zODcuMXoiXX0sc2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob3RvLWZpbG0iLGljb246WzY0MCw1MTIsWyJwaG90by12aWRlbyJdLCJmODdjIiwiTTE5MiA2NGMwLTM1LjMgMjguNy02NCA2NC02NEw1NzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0ek0zMjAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTU2LjUgMTEuNUM0NzIuMSAxMDAuNCA0NjQuNCA5NiA0NTYgOTZzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTQgODguMy0xNy45LTI1LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMyNzkuMSAyODggMjg4IDI4OGwyNTYgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0ek0xNDQgMTI4bDAgMTYwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEybDE5MiAwIDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwek01MiAxOTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHptMCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxEVnQ9c2JlLExWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWN0dXJlLWluLXBpY3R1cmUiLGljb246WzUxMiw1MTIsW10sImU4MGIiLCJNNDQ4IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTEyLTY0IDAgMC0xMTItMzg0IDAgMCAzMjAgMTQ0IDAgMCA2NC0xNDQgMC02LjUtLjNjLTMwLjEtMy4xLTU0LjEtMjctNTcuMS01Ny4xTDAgNDE2IDAgOTZDMCA2Mi45IDI1LjIgMzUuNiA1Ny41IDMyLjNMNjQgMzIgNDQ4IDMyem0xNiAyMjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNjAgMHoiXX0sRVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1bXAtbWVkaWNhbCIsaWNvbjpbMzIwLDUxMixbXSwiZTA2YSIsIk05NiAwbDAgODAgMTI4IDAgMC0yNCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDggMjk2IDhsLTcyIDAgMC04YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwQzExMC4zLTMyIDk2LTE3LjcgOTYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTY0IDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sUFZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUiLGljb246WzQ0OCw1MTIsWzEyODI5M10sImYwNmQiLCJNMTYwLjUtMjYuNGM5LjMtNy44IDIzLTcuNSAzMS45IC45IDEyLjMgMTEuNiAyMy4zIDI0LjQgMzMuOSAzNy40IDEzLjUgMTYuNSAyOS43IDM4LjMgNDUuMyA2NC4yIDUuMi02LjggMTAtMTIuOCAxNC4yLTE3LjkgMS4xLTEuMyAyLjItMi43IDMuMy00LjEgNy45LTkuOCAxNy43LTIyLjEgMzAuOC0yMi4xIDEzLjQgMCAyMi44IDExLjkgMzAuOCAyMi4xIDEuMyAxLjcgMi42IDMuMyAzLjkgNC44IDEwLjMgMTIuNCAyNCAzMC4zIDM3LjcgNTIuNCAyNy4yIDQzLjkgNTUuNiAxMDYuNCA1NS42IDE3Ni42IDAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRTMCA0MTEuNyAwIDI4OGMwLTkxLjEgNDEuMS0xNzAgODAuNS0yMjUgMTkuOS0yNy43IDM5LjctNDkuOSA1NC42LTY1LjEgOC4yLTguNCAxNi41LTE2LjcgMjUuNS0yNC4yek0yMjUuNyA0MTZjMjUuMyAwIDQ3LjctNyA2OC44LTIxIDQyLjEtMjkuNCA1My40LTg4LjIgMjguMS0xMzQuNC00LjUtOS0xNi05LjYtMjIuNS0ybC0yNS4yIDI5LjNjLTYuNiA3LjYtMTguNSA3LjQtMjQuNy0uNS0xNy4zLTIyLjEtNDkuMS02Mi40LTY1LjMtODMtNS40LTYuOS0xNS4yLTgtMjEuNS0xLjktMTguMyAxNy44LTUxLjUgNTYuOC01MS41IDEwNC4zIDAgNjguNiA1MC42IDEwOS4yIDExMy43IDEwOS4yeiJdfSxpYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1wbHVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLXBsdXMiXSwiZjAwZSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIwOCAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sSVZ0PWliZSxBVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhc2siLGljb246WzQ0OCw1MTIsW10sImYwYzMiLCJNMjg4IDBMMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMyczE0LjMgMzIgMzIgMzJMMTI4IDIxNS41IDcuNSA0MjYuM0MyLjYgNDM1IDAgNDQ0LjcgMCA0NTQuNyAwIDQ4Ni40IDI1LjYgNTEyIDU3LjMgNTEybDMzMy40IDBjMzEuNiAwIDU3LjMtMjUuNiA1Ny4zLTU3LjMgMC0xMC0yLjYtMTkuOC03LjUtMjguNEwzMjAgMjE1LjUgMzIwIDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzMzNy43IDAgMzIwIDBMMjg4IDB6TTE5MiAyMTUuNWwwLTE1MS41IDY0IDAgMCAxNTEuNWMwIDExLjEgMi45IDIyLjEgOC40IDMxLjhsNDEuNiA3Mi43LTE2NCAwIDQxLjYtNzIuN2M1LjUtOS43IDguNC0yMC42IDguNC0zMS44eiJdfSxOVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tcmlnaHQiLGljb246WzQ0OCw1MTIsW10sImYwMzgiLCJNNDQ4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDE5MiA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0scmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhYmxlLWNhciIsaWNvbjpbNTEyLDUxMixbMTI4NjczLDU3NTUxLCJ0cmFtIl0sImY3ZGEiLCJNMjg4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTYwIDI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTMyIDI4OGMwLTM1LjMgMjguNy02NCA2NC02NGwxMzYgMCAwLTk2LjItMTkzLjQgNTUuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDIyNC02NCAwIDAgMjI0LTY0YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTIwNi42IDU5IDAgMTA5LjkgMTM2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2MHptODAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDAgMC05Ni01NiAwem0xODQgOTZsMC05Ni04MCAwIDAgOTYgODAgMHptNDggMGw1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtNTYgMCAwIDk2eiJdfSxSVnQ9cmJlLG9iZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbImZpcnN0LWFpZCJdLCJmNDc5IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2IDAgMC0zODQtMTYgMHptNjQgMGwwIDM4NCAyNTYgMCAwLTM4NC0yNTYgMHpNNDQ4IDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMCAwIDM4NCAxNiAwek0yMjQgMTg0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxPVnQ9b2JlLEZWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzIixpY29uOls0NDgsNTEyLFtdLCJmN2E0IiwiTTMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAyODh6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MHoiXX0sbmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cmdlciIsaWNvbjpbNTEyLDUxMixbImhhbWJ1cmdlciJdLCJmODA1IiwiTTQ4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDI4OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNkw0OCAzODR6TTMyIDIwMmMwIDEyLjIgOS45IDIyIDIyIDIyTDQ1OCAyMjRjMTIuMiAwIDIyLTkuOSAyMi0yMiAwLTE3LjItMi42LTM0LjQtMTAuOC00OS41LTIyLjItNDAuOC04Mi4zLTEyMC41LTIxMy4yLTEyMC41UzY1IDExMS42IDQyLjggMTUyLjVDMzQuNiAxNjcuNiAzMiAxODQuOCAzMiAyMDJ6TTAgMzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTI1NiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTEyMCAxMjhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQ4LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sQlZ0PW5iZSxIVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd21hbiIsaWNvbjpbNjQwLDUxMixbOTczMSw5OTI0XSwiZjdkMCIsIk00MDMgMjExLjdjMzIuMi0yNC45IDUzLTYzLjkgNTMtMTA3LjcgMC03NS4xLTYwLjktMTM2LTEzNi0xMzZTMTg0IDI4LjkgMTg0IDEwNGMwIDQzLjkgMjAuOCA4Mi45IDUzIDEwNy43LTMyLjIgMTYuMy01OSA0MS44LTc2LjggNzMuMUwxMTIgMjY0LjIgMTEyIDIyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5LjYtMjIuNS05LjdjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41YzM2LjEgMTUuNSA3NS45IDMyLjUgMTE5LjQgNTEuMi0zLjkgMTQuOS02IDMwLjYtNiA0Ni43IDAgNzAgMzkuMSAxMzAuOCA5Ni42IDE2MS45IDcuOSA0LjMgMTYuOSA2LjEgMjUuOSA2LjFsMTIzIDBjOSAwIDE4LTEuOCAyNS45LTYuMSA1Ny41LTMxLjEgOTYuNi05MiA5Ni42LTE2MS45IDAtMTYuMi0yLjEtMzEuOC02LTQ2LjcgNDMuNS0xOC43IDgzLjQtMzUuNyAxMTkuNC01MS4yIDEyLjItNS4yIDE3LjgtMTkuMyAxMi42LTMxLjVzLTE5LjMtMTcuOC0zMS41LTEyLjZsLTIyLjUgOS43IDAtMTkuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLjItNDguMiAyMC42Yy0xNy45LTMxLjMtNDQuNi01Ni44LTc2LjgtNzMuMXpNMjk2IDQxNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNC0xMjBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yNDggODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNMzY4IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjkyLjIgMTU5LjNjLTIuNy00LjgtNC4yLTEwLjItNC4yLTE1LjcgMC0xNy41IDE0LjItMzEuNiAzMS42LTMxLjZsLjggMGMxNy41IDAgMzEuNiAxNC4yIDMxLjYgMzEuNiAwIDUuNS0xLjQgMTAuOS00LjIgMTUuN0wzMjcgMTk1LjhjLTMuMSA1LjQtMTAuOCA1LjQtMTMuOSAwbC0yMC45LTM2LjZ6Il19LHFWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3RlbCIsaWNvbjpbNTEyLDUxMixbMTI3OTc2XSwiZjU5NCIsIk0xNiAyNEMxNiAxMC43IDI2LjcgMCA0MCAwTDQ3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MTYgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDQwIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MTYtOCAwQzI2LjcgNDggMTYgMzcuMyAxNiAyNHptMjA4IDg4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTEyOCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem05NiAxMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzUyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTExMiAyMDhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMjQwLTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTI4OCAzODRsNDMuOCAwYzkuOSAwIDE3LjUtOSAxNC0xOC4yLTEzLjgtMzYuMS00OC44LTYxLjgtODkuNy02MS44cy03NS45IDI1LjctODkuNyA2MS44Yy0zLjUgOS4yIDQuMSAxOC4yIDE0IDE4LjJsNDMuOCAwIDAgODAgNjQgMCAwLTgweiJdfSxqVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJpbnQiLGljb246WzUxMiw1MTIsWzEyODQyNCwxMjg0MzgsOTExM10sImYwMmYiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzQxLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w0Mi41IDQyLjVjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDM3LjUtMzg0IDAgMC04MHpNMCAyNTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek0xMjggNDE2bDAgMzIgMjU2IDAgMC05Ni0yNTYgMCAwIDY0ek00NTYgMjcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGxiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2xsZXliYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NTIsInZvbGxleWJhbGwtYmFsbCJdLCJmNDVmIiwiTTUxMiAyNTguOWMtMjMuNCA4LTQ3LjggMTMuMS03Mi42IDE1LjEgNS45LTk4LjYtMzAuNy0xOTEuMS05NC45LTI1OC4zIDk3LjggMzYgMTY3LjUgMTMwIDE2Ny41IDI0MC4zIDAgMSAwIDEuOSAwIDIuOXptLTUuOSA1MmMtNS4yIDIzLjctMTMuNiA0Ni4yLTI0LjkgNjYuOS05NC43IDUyLjItMjE0IDUwLTMwOC40LTEzLjYgMjEuNy0zMS4zIDQ5LjgtNTguOSA4My44LTgwLjUgNzkuNSA0MS42IDE2OC41IDQ5LjEgMjQ5LjUgMjcuMXpNMjc5LjcgMjQxLjZjLTMuNy04OS43LTQxLjctMTcwLjUtMTAxLjMtMjI5LjcgMjIuMy03LjEgNDYtMTEuMiA3MC41LTExLjkgOTIuNSA1NS45IDE1MC4zIDE2MC4zIDE0Mi40IDI3My44LTM4LTMuMi03NS45LTEzLjctMTExLjYtMzIuM3pNMTMwLjUgMzIuOEMxNDkuMSA0OS4xIDE2NS44IDY3LjcgMTc5LjkgODguMiA5MS41IDEzMi4zIDI5LjcgMjEwLjMgMy43IDI5OS41IDEuMyAyODUuMyAwIDI3MC44IDAgMjU2IDAgMTYwLjIgNTIuNiA3Ni43IDEzMC41IDMyLjh6bTczLjQgOTdjMTYuMyAzNC41IDI2LjEgNzIuNiAyNy45IDExMi44LTc1LjggNDgtMTI2LjggMTIxLjMtMTQ4LjMgMjAyLjUtMTcuNi0xNi4xLTMzLTM0LjYtNDUuNS01NSAyLjEtMTA4LjEgNjMuNy0yMTAuNCAxNjUuOS0yNjAuM3pNMjU2IDUxMmMtNDcuNyAwLTkyLjMtMTMtMTMwLjUtMzUuNyA0LjgtMjQuMyAxMi42LTQ4IDIzLjItNzAuNCA4Mi40IDU0LjQgMTgwLjggNjguOSAyNzEgNDctNDQuNCAzNy0xMDEuNSA1OS4yLTE2My43IDU5LjJ6Il19LFZWdD1sYmUsVVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWZmaWMtbGlnaHQiLGljb246WzMyMCw1MTIsWzEyODY3OF0sImY2MzciLCJNNjQtMzJDMjguNy0zMiAwLTMuMyAwIDMyTDAgMzg0YzAgODguNCA3MS42IDE2MCAxNjAgMTYwczE2MC03MS42IDE2MC0xNjBsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQtMzJ6bTk2IDM5MmMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTEwNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6TTE2MCAxNTJhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6Il19LFdWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NTUiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LFZiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzIixpY29uOls2NDAsNTEyLFtdLCJmMGMwIiwiTTMyMCAxNmExMDQgMTA0IDAgMSAxIDAgMjA4IDEwNCAxMDQgMCAxIDEgMC0yMDh6TTk2IDg4YTcyIDcyIDAgMSAxIDAgMTQ0IDcyIDcyIDAgMSAxIDAtMTQ0ek0wIDQxNmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCAxMi44IDAgMjUuMiAxLjkgMzYuOSA1LjQtMzIuOSAzNi44LTUyLjkgODUuNC01Mi45IDEzOC42bDAgMTZjMCAxMS40IDIuNCAyMi4yIDYuNyAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJ6bTUyMS4zIDY0YzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtMTZjMC01My4yLTIwLTEwMS44LTUyLjktMTM4LjYgMTEuNy0zLjUgMjQuMS01LjQgMzYuOS01LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODYuNyAwek00NzIgMTYwYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDQzMmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxHVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2VydGlmaWNhdGUiLGljb246WzU3Niw1MTIsW10sImYwYTMiLCJNMjM5LjItOGMtNi4xLTYuMi0xNS04LjctMjMuNC02LjRTMjAwLjktNS42IDE5OC44IDIuOEwxODMuNSA2M2MtMS4xIDQuNC01LjYgNy05LjkgNS43TDExMy44IDUxLjljLTguNC0yLjQtMTcuNCAwLTIzLjUgNi4xcy04LjUgMTUuMS02LjEgMjMuNWwxNi45IDU5LjhjMS4yIDQuMy0xLjQgOC44LTUuNyA5LjlMMzUuMSAxNjYuNWMtOC40IDIuMS0xNSA4LjctMTcuMyAxNy4xcy4yIDE3LjMgNi40IDIzLjRsNDQuNSA0My4zYzMuMiAzLjEgMy4yIDguMyAwIDExLjVMMjQuMyAzMDUuMWMtNi4yIDYuMS04LjcgMTUtNi40IDIzLjRzOC45IDE0LjkgMTcuMyAxNy4xbDYwLjIgMTUuM2M0LjQgMS4xIDcgNS42IDUuNyA5LjlMODQuMiA0MzAuNWMtMi40IDguNCAwIDE3LjQgNi4xIDIzLjVzMTUuMSA4LjUgMjMuNSA2LjFsNTkuOC0xNi45YzQuMy0xLjIgOC44IDEuNCA5LjkgNS43bDE1LjMgNjAuMmMyLjEgOC40IDguNyAxNSAxNy4xIDE3LjNzMTcuMy0uMiAyMy40LTYuNGw0My4zLTQ0LjVjMy4xLTMuMiA4LjMtMy4yIDExLjUgMEwzMzcuMyA1MjBjNi4xIDYuMiAxNSA4LjcgMjMuNCA2LjRzMTQuOS04LjkgMTcuMS0xNy4zTDM5My4xIDQ0OWMxLjEtNC40IDUuNi03IDkuOS01LjdsNTkuOCAxNi45YzguNCAyLjQgMTcuNCAwIDIzLjUtNi4xczguNS0xNS4xIDYuMS0yMy41bC0xNi45LTU5LjhjLTEuMi00LjMgMS40LTguOCA1LjctOS45bDYwLjItMTUuM2M4LjQtMi4xIDE1LTguNyAxNy4zLTE3LjFzLS4yLTE3LjQtNi40LTIzLjRsLTQ0LjUtNDMuM2MtMy4yLTMuMS0zLjItOC4zIDAtMTEuNWw0NC41LTQzLjNjNi4yLTYuMSA4LjctMTUgNi40LTIzLjRzLTguOS0xNC45LTE3LjMtMTcuMWwtNjAuMi0xNS4zYy00LjQtMS4xLTctNS42LTUuNy05LjlsMTYuOS01OS44YzIuNC04LjQgMC0xNy40LTYuMS0yMy41cy0xNS4xLTguNS0yMy41LTYuMUw0MDMgNjguOGMtNC4zIDEuMi04LjgtMS40LTkuOS01LjdMMzc3LjggMi44Yy0yLjEtOC40LTguNy0xNS0xNy4xLTE3LjNzLTE3LjMgLjItMjMuNCA2LjRMMjk0IDM2LjVjLTMuMSAzLjItOC4zIDMuMi0xMS41IDBMMjM5LjItOHoiXX0sS1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsYXJtLWNsb2NrIixpY29uOls1MTIsNTEyLFs5MjAwXSwiZjM0ZSIsIk01MDQuNCAxMzIuNWMtNC41IDEwLjUtMTguNCA5LjgtMjQuOSAuNC0yNy44LTQwLTY2LjEtNzIuMi0xMTEtOTIuNi0xMC40LTQuNy0xMy43LTE4LjMtNC4xLTI0LjYgMTUtOS45IDMzLTE1LjcgNTIuMy0xNS43IDUyLjYgMCA5NS4yIDQyLjYgOTUuMiA5NS4yIDAgMTMuMi0yLjcgMjUuOC03LjYgMzcuM3ptLTQ3MS45IC40Yy02LjUgOS40LTIwLjUgMTAuMS0yNC45LS40LTQuOS0xMS41LTcuNi0yNC4xLTcuNi0zNy4zIDAtNTIuNiA0Mi42LTk1LjIgOTUuMi05NS4yIDE5LjMgMCAzNy4zIDUuOCA1Mi4zIDE1LjcgOS42IDYuMyA2LjMgMTkuOS00LjEgMjQuNi00NC44IDIwLjQtODMuMSA1Mi42LTExMSA5Mi42ek0zOTAuMiA0NjcuNEMzNTIuOCA0OTUuNCAzMDYuMyA1MTIgMjU2IDUxMnMtOTYuOC0xNi42LTEzNC4xLTQ0LjZMODYuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMzUuMi0zNS4yQzQ4LjYgMzg0LjggMzIgMzM4LjMgMzIgMjg4IDMyIDE2NC4zIDEzMi4zIDY0IDI1NiA2NFM0ODAgMTY0LjMgNDgwIDI4OGMwIDUwLjMtMTYuNiA5Ni44LTQ0LjYgMTM0LjJsMzUuMiAzNS4yYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0zNS4yLTM1LjJ6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ5LTQ5IDAtOTQuMXoiXX0sWVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXItc3ltYm9sIixpY29uOls1MTIsNTEyLFtdLCJlNTAyIiwiTTQ0NS40IDIyNGw2NC43IDBDNDk1LjYgMTA4LjIgNDAzLjggMTYuNCAyODggMmwwIDY0LjdDMzY4LjQgODAuMSA0MzEuOSAxNDMuNiA0NDUuNCAyMjR6TTUxMCAyODhsLTY0LjcgMEM0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjNsMCA2NC43YzExNS44LTE0LjQgMjA3LjYtMTA2LjIgMjIyLTIyMnpNMiAyODhDMTYuNCA0MDMuOCAxMDguMiA0OTUuNiAyMjQgNTEwbDAtNjQuN0MxNDMuNiA0MzEuOSA4MC4yIDM2OC40IDY2LjcgMjg4TDIgMjg4em0wLTY0bDY0LjcgMEM4MC4yIDE0My42IDE0My42IDgwLjEgMjI0IDY2LjdMMjI0IDJDMTA4LjIgMTYuNCAxNi40IDEwOC4yIDIgMjI0em0yMDYtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDk2IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjQtOTYgMCAwLTY0eiJdfSxjYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1jcmFjayIsaWNvbjpbNTEyLDUxMixbImhvdXNlLWRhbWFnZSJdLCJmNmYxIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMDUuNiAwLTM4LjQtNjQgODAuOC02Ny4zYzcuOC02LjUgNy42LTE4LjYtLjQtMjQuOUwyMTguNiAyNjMuMmMtMTQuNi0xMS41LTMzLjggNy0yMi44IDIyTDI1NiAzNjggMTcwLjUgNDM5LjJjLTYuMSA1LTcuNSAxMy44LTMuNSAyMC41bDMxLjMgNTIuMi04Ni40IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHoiXX0sWlZ0PWNiZSxYVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXBvaW50aW5nIixpY29uOls1MTIsNTEyLFtdLCJlNTRhIiwiTTIxNC45IDE0LjFDMjAyIDE1LjIgMTkyIDI2IDE5MiAzOSAxOTIgNTIuOCAyMDMuMiA2NCAyMTcgNjRsMTUxIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzAuNkMzODQgOCAzNzYgLjcgMzY2LjcgMS40TDIxNC45IDE0LjF6TTIwOCAxMTJjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTUuNS0uNi0xMC44LTEuNi0xNkwyMDkuNiA5NmMtMSA1LjItMS42IDEwLjUtMS42IDE2ek00MCAyMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMTUyIDAgMCA4OS40IDE2Mi44LTE2Mi44Yy0xMy4zLTQuMy0yNy4zLTYuNS00MS42LTYuNUw0MCAyMjR6bTM0NS43IDIwLjlsLTE3MS4xIDE3MS4xIDE2OS40IDAgMC00Ni4zIDUzLjYgOTAuNmMxMS4yIDE5IDM1LjggMjUuMyA1NC44IDE0LjFzMjUuMy0zNS44IDE0LjEtNTQuOEw0MzAuMyAyOTAuOGMtMTEuMi0xOS0yNi42LTM0LjUtNDQuNi00NS45ek0xOTIgNDQ4bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMi0xOTIgMHoiXX0sUVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRhdGFiYXNlIixpY29uOls0NDgsNTEyLFtdLCJmMWMwIiwiTTQ0OCAyMDUuOGMtMTQuOCA5LjgtMzEuOCAxNy43LTQ5LjUgMjQtNDcgMTYuOC0xMDguNyAyNi4yLTE3NC41IDI2LjJTOTYuNCAyNDYuNSA0OS41IDIyOS44Yy0xNy42LTYuMy0zNC43LTE0LjItNDkuNS0yNEwwIDI4OGMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MGwwLTgyLjJ6bTAtNzcuOGwwLTQ4QzQ0OCAzNS44IDM0Ny43IDAgMjI0IDBTMCAzNS44IDAgODBsMCA0OGMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MHpNMzk4LjUgMzg5LjhDMzUxLjYgNDA2LjUgMjg5LjkgNDE2IDIyNCA0MTZTOTYuNCA0MDYuNSA0OS41IDM4OS44Yy0xNy42LTYuMy0zNC43LTE0LjItNDkuNS0yNEwwIDQzMmMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MGwwLTY2LjJjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0eiJdfSxKVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibmV3c3BhcGVyIixpY29uOls1MTIsNTEyLFsxMjgyNDBdLCJmMWVhIiwiTTAgNDE2TDAgMTIwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNEw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0xNjAgMTI4bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMjQgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNDAgMHptLTI0LTcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTM2MCAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMHoiXX0sZVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXJhaW4iLGljb246WzUxMiw1MTIsWzEyNzc4Myw5OTI2XSwiZjczZCIsIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjItMS4zLTYuNy0xLjktMTMuNy0xLjktMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA0My4xIDAgODAuNSAyNC4zIDk5LjIgNjAgMTQuNy0xNy4xIDM2LjUtMjggNjAuOC0yOCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC44LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2TDk2IDMyMHptMS42IDY4LjJjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2bDMwLjItNjguMnptMTUyIDBjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2bDMwLjItNjguMnptMTIxLjggNjguMmwzMC4yLTY4LjJjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2eiJdfSxkYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWF4aW1pemUiLGljb246WzQ0OCw1MTIsWyJleHBhbmQtYXJyb3dzLWFsdCJdLCJmMzFlIiwiTTE2OCAzMkwyNCAzMkMxMC43IDMyIDAgNDIuNyAwIDU2TDAgMjAwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDIyMy44IDQxIDIxN2w0MC00MCA3OSA3OS03OSA3OS00MC00MGMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMwIDMwMi4zIDAgMzEyTDAgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDAtNDAgNzktNzkgNzkgNzktNDAgNDBjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMjcwLjMgNDgwIDI4MCA0ODBsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMmwtNDAgNDAtNzktNzkgNzktNzkgNDAgNDBjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlM0NDggMjA5LjcgNDQ4IDIwMGwwLTE0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyODAgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOFMyNTYuMiA2Ni4xIDI2MyA3M2w0MCA0MC03OSA3OS03OS03OSA0MC00MGM2LjktNi45IDguOS0xNy4yIDUuMi0yNi4yUzE3Ny43IDMyIDE2OCAzMnoiXX0sdFV0PWRiZSxhVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tYXJyb3ciLGljb246WzUxMiw1MTIsW10sImYxMjQiLCJNNDc3LjkgNzUuNWM0LjUtMTEuOCAxLjctMjUuMi03LjItMzQuMXMtMjIuMy0xMS44LTM0LjEtNy4ybC00MTYgMTYwQzcuOSAxOTktLjMgMjExLjIgMCAyMjQuN3M5LjEgMjUuNCAyMS45IDI5LjZsMTc2LjggNTguOSA1OC45IDE3Ni44YzQuMyAxMi44IDE2LjEgMjEuNiAyOS42IDIxLjlzMjUuNy03LjkgMzAuNi0yMC41bDE2MC00MTZ6Il19LHNVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXR5IixpY29uOls1NzYsNTEyLFsxMjc5NjFdLCJmNjRmIiwiTTMyMCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyLTQ4IDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTY0IDAgMC03MkM5NiAxMC43IDg1LjMgMCA3MiAwUzQ4IDEwLjcgNDggMjRsMCA3NGMtMjcuNiA3LjEtNDggMzIuMi00OCA2MkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMCAwLTEyOGMwLTM1LjMtMjguNy02NC02NC02NEwzMjAgMHptNjQgMTEybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6bS0xNiA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwem0xNiAxMTJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnptMTEyLTE2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTI1NiAzMDRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMjQwIDE5MmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwek0xMjggMzA0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6TTExMiAxOTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHoiXX0saVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IngtcmF5IixpY29uOls1MTIsNTEyLFtdLCJmNDk3IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzMjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6bTI4MCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMCAwIDQ4LTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMCAwIDQ4LTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtNDggODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMCAwLTQ4IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC0xNnoiXX0sclV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVtYnJlbGxhLWJlYWNoIixpY29uOls1MTIsNTEyLFsxMjc5NThdLCJmNWNhIiwiTTQ5Ny41IDM0MS4xYy01LjkgMTYuNy0yNS4zIDIzLTQxLjEgMTUuMWwtMTc4LjItODkuMS0xLjYgMy4yLTg4LjggMTc3LjcgMjkyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODQuMiAwIDEwMy4yLTIwNi4zIDEuNi0zLjItMTY1LjQtODIuN2MtMTUuOC03LjktMjIuNC0yNy4zLTEyLjUtNDIgNDUuOS02OC42IDEyNC4xLTExMy44IDIxMi45LTExMy44IDE0MS40IDAgMjU2IDExNC42IDI1NiAyNTYgMCAyOS44LTUuMSA1OC41LTE0LjUgODUuMXoiXX0sdWJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0LXRvLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLWluIl0sImYwOTAiLCJNMzUyIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bS05LjQgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDI0Mi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHoiXX0sb1V0PXViZSxuVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHNldCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5MCIsIk0yMjQgNjRjLTc5IDAtMTQ0LjcgNTcuMy0xNTcuNyAxMzIuNyA5LjMtMyAxOS4zLTQuNyAyOS43LTQuN2wxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02NEMwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRsMCAxNjguMWMwIDY2LjMtNTMuOCAxMjAtMTIwLjEgMTIwbC04Ny45LS4xLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDAgNDAgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTIwLjljLTE0LjEgOC4yLTMwLjUgMTIuOC00OCAxMi44bC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDBjMTAuNCAwIDIwLjMgMS42IDI5LjcgNC43LTEzLTc1LjMtNzguNi0xMzIuNy0xNTcuNy0xMzIuN3oiXX0sbFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwbG90Y2giLGljb246WzUxMiw1MTIsW10sImY1YmMiLCJNMjA4LjUgNjIuM2wyOC4xLTM2LjlDMjQ4LjggOS40IDI2Ny44IDAgMjg4IDAgMzE2LjUgMCAzNDEuNiAxOC43IDM0OS44IDQ2bDE3LjggNTkuNGMxMC4zIDM0LjQgMzYuMSA2MiA2OS44IDc0LjZsMzkuOCAxNC45YzIwLjkgNy45IDM0LjggMjcuOSAzNC44IDUwLjIgMCAxNi45LTcuOSAzMi44LTIxLjUgNDIuOWwtNjcuMyA1MC41Yy0yNC4zIDE4LjItMzcuMiA0Ny45LTMzLjggNzguMWwyLjUgMjIuN2M0LjMgMzguNy0yNiA3Mi42LTY1IDcyLjYtMTQuOCAwLTI5LjMtNS4xLTQwLjktMTQuM2wtNTUuMy00NC4zYy00LjUtMy42LTkuMy02LjctMTQuNS05LjItMTUuOC03LjktMzMuNy0xMC40LTUxLTcuM0w4Mi40IDQ1MS45Yy0zNC42IDYuMy02Ni40LTIwLjMtNjYuNC01NS40IDAtMTMuMiA0LjctMjYgMTMuMS0zNi4ybDExLjItMTMuNGMxNC42LTE3LjQgMjIuNi0zOS40IDIyLjYtNjIuMSAwLTE4LjgtNS41LTM3LjItMTUuOC01M0w4LjggMTczLjVDMy4xIDE2NC43IDAgMTU0LjQgMCAxNDMuOSAwIDExMC41IDMwLjEgODUuMSA2MyA5MC43bDUxLjMgOC43YzM1LjkgNi4xIDcyLjItOC4yIDk0LjItMzcuMXoiXX0scGJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWFsdC11cCJdLCJmMzBjIiwiTTEzNy40LTIyLjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDAuOSAxNjAgMjg4IDE2MGwtNjQgMCAwIDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMzYtNjQgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxMTQuNSA5LjQgMTA1LjRsMTI4LTEyOHoiXX0sY1V0PXBiZSxkVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGV4YWdvbi1ub2RlcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5OSIsIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2czU2LTI1LjEgNTYtNTZjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0xLjYgMjAuOCA4LjYgNDEuNiAyNy44IDUyLjhjMjYuOCAxNS41IDYxIDYuMyA3Ni41LTIwLjVzNi4zLTYxLTIwLjUtNzYuNWMtMS4zLS44LTIuNy0xLjUtNC0yLjFsMC05MC44YzEuNC0uNiAyLjctMS4zIDQtMi4xYzI2LjgtMTUuNSAzNi00OS43IDIwLjUtNzYuNVMzOTAuOCA5NiAzNjQgMTExLjVjLTE5LjMgMTEuMS0yOS40IDMyLTI3LjggNTIuOGwtNTAuNiAyOC45YzExLjUgMTEuMiAxOS45IDI1LjYgMjMuOCA0MS43TDM2MCAyMDUuOWMyLjYgMS44IDUuMiAzLjMgOCA0LjdsMCA5MC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjZsLTgwLjEtNDUuOGMuMS0xLjQgLjItMi44IC4yLTQuM2MwLTIyLjMtMTMuMS00MS42LTMyLTUwLjZsMC05OC44eiJdfSxmb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9zcGl0YWwiLGljb246WzU3Niw1MTIsWzEyNzk3Myw2MjU4OSwiaG9zcGl0YWwtYWx0IiwiaG9zcGl0YWwtd2lkZSJdLCJmMGY4IiwiTTEyOCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDAtNjR6TTI3MiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgOTYgMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwek0xMjggMzY4bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTExMiAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHpNNTEyIDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTI2NCAxMDRsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LHVVdD1mb2UscFV0PWZvZSxoVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWhhcmFzc2luZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU0OSIsIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01OS40IDMwNC41TDg4IDI1Ni45IDg4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0NC43IDQ3LjQgNTcuMWMxMS4zIDEzLjYgMzEuNSAxNS41IDQ1LjEgNC4yczE1LjUtMzEuNSA0LjItNDUuMWwtNzMuNy04OC45Yy0xOC4yLTIyLTQ1LjMtMzQuNy03My45LTM0LjdsLTM1LjkgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjl6TTQ4MCAyNDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNNDY0IDM0NGwwIDU4LjctNDEuNC00MS40Yy03LjMtNy4zLTE3LjYtMTAuNi0yNy44LTlzLTE4LjkgOC4xLTIzLjUgMTcuM2wtNDggOTZjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2wyOC4xLTU2LjMgNTQuNyA1NC43YzEyLjQgMTIuNCAyOS4xIDE5LjMgNDYuNiAxOS4zIDM2LjQgMCA2NS45LTI5LjUgNjUuOS02NS45TDU3NiAzNDRjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZ6TTI4OCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsNTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tLjggNDkuN2MtNy45LTQtMTcuNS0uNy0yMS41IDcuMnMtLjcgMTcuNSA3LjIgMjEuNWw0OCAyNGM3LjkgNCAxNy41IC43IDIxLjUtNy4ycy43LTE3LjUtNy4yLTIxLjVsLTQ4LTI0eiJdfSxmVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC10cmVuZC11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyOSIsIk00ODAgOGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzNTQuMi0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0My45IDAtMTExLjMgMTExLjMtOTUuMS04MS41Yy05LTcuNy0yMi4yLTcuNy0zMS4yIDBsLTExMiA5NmMtMTAuMSA4LjYtMTEuMiAyMy44LTIuNiAzMy44czIzLjggMTEuMiAzMy44IDIuNmw5Ni40LTgyLjYgOTYuNCA4Mi42YzkuNSA4LjIgMjMuNyA3LjYgMzIuNi0xLjNsMTI3LTEyNyAwIDQzLjljMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNEw0ODAgOHpNNDggMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyNTZ6bTQ3LjMgNTZjLTMuNCAyMC4xLTE5LjIgMzYtMzkuNCAzOS40LTQuNCAuNy04LTIuOS04LTcuM2wwLTMyYzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDguMSAzLjYgNy4zIDh6bTAgMTQ0LjFjLjcgNC40LTIuOSA4LTcuMyA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC0zMmMwLTQuNCAzLjYtOC4xIDgtNy4zIDIwLjEgMy40IDM2IDE5LjIgMzkuNCAzOS40ek00NTYgNDE2LjdjNC40LS43IDggMi45IDggNy4zbDAgMzJjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LjEtMy42LTcuMy04IDMuNC0yMC4xIDE5LjItMzYgMzkuNC0zOS40ek00MTYuNyAzMTJjLS43LTQuNCAyLjktOCA3LjMtOGwzMiAwYzQuNCAwIDggMy42IDggOGwwIDMyYzAgNC40LTMuNiA4LjEtOCA3LjMtMjAuMS0zLjQtMzYtMTkuMi0zOS40LTM5LjR6TTE5MiAzODRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxoYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLXJ1bGVyIixpY29uOls1MTIsNTEyLFsicGVuY2lsLXJ1bGVyIl0sImY1YWUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTU4LjkgMzE1LjFMMjc0LjEgMTAwIDQxMiAyMzcuOSAxOTYuOSA0NTMuMWMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTEuMWMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJzLTguNS0xNS4xLTYuMi0yMy40TDM2LjQgMzUzLjhjNC4xLTE0LjYgMTEuOC0yNy45IDIyLjYtMzguN3pNMjI1LjQgODAuOEw4MC44IDIyNS40IDExLjcgMTU2LjNjLTE1LjYtMTUuNi0xNS42LTQwLjkgMC01Ni42bDg4LTg4YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwbDUuOSA1LjktNTYuMyA1Ni4zYy03LjggNy44LTcuOCAyMC41IDAgMjguM3MyMC41IDcuOCAyOC4zIDBsNTYuMy01Ni4zIDM0LjkgMzQuOXpNNDMxLjIgMjg2LjZsMzQuOSAzNC45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyA1LjkgNS45YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC04OCA4OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBsLTY5LjEtNjkuMSAxNDQuNi0xNDQuNnoiXX0sbVV0PWhiZSxnVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwZWF0IixpY29uOls1MTIsNTEyLFsxMjgyNTddLCJmMzYzIiwiTTQ3MC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzUyIDE5LjEgMzUyIDMybDAgMzItMTYwIDBDODYgNjQgMCAxNTAgMCAyNTYgMCAyNzMuNyAxNC4zIDI4OCAzMiAyODhzMzItMTQuMyAzMi0zMmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGwxNjAgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjR6TTQxLjQgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzE2MCA0OTIuOSAxNjAgNDgwbDAtMzIgMTYwIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTE2MCAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0eiJdfSxiVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9uZSIsaWNvbjpbNjQwLDUxMixbMTI5NDYwXSwiZjVkNyIsIk0xOTcuNCAxNjBjLTMuOSAwLTcuMi0yLjgtOC4xLTYuNi0xMC4yLTQyLjEtNDguMS03My40LTkzLjMtNzMuNC01MyAwLTk2IDQzLTk2IDk2IDAgMjkuMSAxMi45IDU1LjEgMzMuMyA3Mi43IDQuMyAzLjcgNC4zIDEwLjggMCAxNC41LTIwLjQgMTcuNi0zMy4zIDQzLjctMzMuMyA3Mi43IDAgNTMgNDMgOTYgOTYgOTYgNDUuMiAwIDgzLjEtMzEuMyA5My4zLTczLjQgLjktMy44IDQuMi02LjYgOC4xLTYuNmwyNDUuMSAwYzMuOSAwIDcuMiAyLjggOC4xIDYuNiAxMC4yIDQyLjEgNDguMSA3My40IDkzLjMgNzMuNCA1MyAwIDk2LTQzIDk2LTk2IDAtMjkuMS0xMi45LTU1LjEtMzMuMy03Mi43LTQuMy0zLjctNC4zLTEwLjggMC0xNC41IDIwLjQtMTcuNiAzMy4zLTQzLjcgMzMuMy03Mi43IDAtNTMtNDMtOTYtOTYtOTYtNDUuMiAwLTgzLjEgMzEuMy05My4zIDczLjQtLjkgMy44LTQuMiA2LjYtOC4xIDYuNmwtMjQ1LjEgMHoiXX0sZmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtZmxhbWUtY3VydmVkIixpY29uOlszODQsNTEyLFsiZmlyZS1hbHQiXSwiZjdlNCIsIk0xNTMuNiAyOS45bDE2LTIxLjNDMTczLjYgMy4yIDE4MCAwIDE4Ni43IDAgMTk4LjQgMCAyMDggOS42IDIwOCAyMS4zbDAgMjIuMWMwIDEzLjEgNS40IDI1LjcgMTQuOSAzNC43TDMwNy42IDE1OUMzNTYuNCAyMDUuNiAzODQgMjcwLjIgMzg0IDMzNy43IDM4NCA0MzQgMzA2IDUxMiAyMDkuNyA1MTJMMTkyIDUxMkM4NiA1MTIgMCA0MjYgMCAzMjBsMC0zLjhjMC00OC44IDE5LjQtOTUuNiA1My45LTEzMC4xbDMuNS0zLjVjNC4yLTQuMiAxMC02LjYgMTYtNi42IDEyLjUgMCAyMi42IDEwLjEgMjIuNiAyMi42TDk2IDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtMy45YzAtMTgtNy4yLTM1LjMtMTkuOS00OGwtMzguNi0zOC42Yy0yNC0yNC0zNy41LTU2LjctMzcuNS05MC43IDAtMjcuNyA5LTU0LjggMjUuNi03Ni45eiJdfSx2VXQ9ZmJlLG1iZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMtc2ltcGxlIixpY29uOls0NDgsNTEyLFsiYnVzLWFsdCJdLCJmNTVlIiwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCAzODRjMCAyOS44IDIwLjQgNTQuOSA0OCA2MmwwIDM0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAxOTIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zNGMyNy42LTcuMSA0OC0zMi4yIDQ4LTYybDAtMjg4YzAtNTMtNDMtOTYtOTYtOTZMOTYgMHpNNjQgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek05NiAzMjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yNTYgMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHhVdD1tYmUseVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLW1hcnMiLGljb246WzY0MCw1MTIsWzk4OTJdLCJmMjI4IiwiTTQ4MC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJTNDYyLjMgMCA0ODAgMEw1MzAuNyAwIDQ3NCA1Ni43Yy0yNi4zLTE1LjctNTcuMS0yNC43LTkwLTI0LjctMzUuNCAwLTY4LjQgMTAuNS05NiAyOC41LTI3LjYtMTgtNjAuNi0yOC41LTk2LTI4LjUtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljMjMuMy00LjMgNDQuOS0xMy4xIDY0LTI1LjYgMjcuNiAxOCA2MC42IDI4LjUgOTYgMjguNSA5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NiAwLTQxLjEtMTQuMS03OS0zNy44LTEwOUw1NzYgNDUuMyA1NzYgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw0ODAtNjR6TTMzNiAzMDkuMmMyMC4yLTI4LjYgMzItNjMuNSAzMi0xMDEuMnMtMTEuOC03Mi42LTMyLTEwMS4yYzE0LjYtNi45IDMwLjgtMTAuOCA0OC0xMC44IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyUzQ0NS45IDMyMCAzODQgMzIwYy0xNy4yIDAtMzMuNS0zLjktNDgtMTAuOHpNMjg4IDE1MC4zYzEwLjIgMTYuOSAxNiAzNi42IDE2IDU3LjdzLTUuOCA0MC45LTE2IDU3LjdjLTEwLjItMTYuOS0xNi0zNi42LTE2LTU3LjdzNS44LTQwLjkgMTYtNTcuN3ptLTQ4LTQzLjVjLTIwLjIgMjguNi0zMiA2My41LTMyIDEwMS4yczExLjggNzIuNiAzMiAxMDEuMmMtMTQuNSA2LjktMzAuOCAxMC44LTQ4IDEwLjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJTMTMwLjEgOTYgMTkyIDk2YzE3LjIgMCAzMy41IDMuOSA0OCAxMC44eiJdfSx3VXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxlbmRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjUxNyIsIk0wIDU2QzAgMjUuMSAyNS4xIDAgNTYgMEw0MzcuNiAwYzIxLjMgMCAzNi42IDIwLjMgMzAuOCA0MC44TDQ1Ny4xIDgwIDM0NCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5OS40IDAtMTguMyA2NC04MS4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuNCAwLTI3LjQgOTYtMjU2IDAtOS4xLTk2LTYyLjkgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCA1NnpNMTE0LjMgMTkyTDEwMC42IDQ4IDU2IDQ4Yy00LjQgMC04IDMuNi04IDhsMCAxMjhjMCA0LjQgMy42IDggOCA4bDU4LjMgMHpNMTM2IDM4NGwyNDAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC0yNDAgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTIwIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sa1V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InUiLGljb246WzM4NCw1MTIsWzExN10sIjU1IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDEwNi04NiAxOTItMTkyIDE5MlMwIDM5NCAwIDI4OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyeiJdfSxjZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZSIsaWNvbjpbNTEyLDUxMixbIm1haWwtZm9yd2FyZCJdLCJmMDY0IiwiTTMwNy44IDE4LjRjLTEyIDUtMTkuOCAxNi42LTE5LjggMjkuNmwwIDgwLTExMiAwYy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NiAwIDExMy4zIDgxLjUgMTYzLjkgMTAwLjIgMTc0LjEgMi41IDEuNCA1LjMgMS45IDguMSAxLjkgMTAuOSAwIDE5LjctOC45IDE5LjctMTkuNyAwLTcuNS00LjMtMTQuNC05LjgtMTkuNS05LjQtOC44LTIyLjItMjYuNC0yMi4yLTU2LjcgMC01MyA0My05NiA5Ni05Nmw5NiAwIDAgODBjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXoiXX0sU1V0PWNmLGdiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS1mbGlwIixpY29uOls1MTIsNTEyLFsxMjgzODEsInBob25lLWFsdCJdLCJmODc5IiwiTTM1MS44IDI1YzcuOC0xOC44IDI4LjQtMjguOSA0OC4xLTIzLjVsNS41IDEuNWM2NC42IDE3LjYgMTE5LjggODAuMiAxMDMuNyAxNTYuNC0zNy4xIDE3NS0xNzQuOCAzMTIuNy0zNDkuOCAzNDkuOC03Ni4zIDE2LjItMTM4LjgtMzkuMS0xNTYuNC0xMDMuN2wtMS41LTUuNWMtNS40LTE5LjcgNC43LTQwLjMgMjMuNS00OC4xbDk3LjMtNDAuNWMxNi41LTYuOSAzNS42LTIuMSA0NyAxMS44bDM4LjYgNDcuMmM3MC4zLTM0LjkgMTI2LjgtOTMuMyAxNTkuMy0xNjQuOWwtNDQuMS0zNi4xYy0xMy45LTExLjMtMTguNi0zMC40LTExLjgtNDdMMzUxLjggMjV6Il19LF9VdD1nYmUsTVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wb3J0YWJsZSIsaWNvbjpbMzIwLDUxMixbXSwiZTU4MyIsIk0wIDY0bDAgMTYgMzIwIDAgMC0xNmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NHptMjQgNjRMMCAxMjggMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTggMjI0IDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zNjAtMjk2IDB6bTIyNCA5NmwyNCAwIDAgOTYtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0selV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1wcmVnbmFudCIsaWNvbjpbMzg0LDUxMixbXSwiZTMxZSIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTgwIDMyMS4yYzguNi00LjUgMTYuOC0xMCAyNC4zLTE2LjVsNC0zLjRjMjIuNi0xOS40IDM1LjctNDcuNyAzNS43LTc3LjYgMC0zNS45LTE4LjgtNjkuMS00OS42LTg3LjZsLTMwLjQtMTguMiAwLTEuOGMwLTQ2LjUtMzcuNy04NC4xLTg0LjEtODQuMS0yOC4xIDAtNTQuNCAxNC4xLTcwIDM3LjVMMjEuNCAyNzAuMmMtOS44IDE0LjctNS44IDM0LjYgOC45IDQ0LjRzMzQuNiA1LjggNDQuNC04LjlsMjktNDMuNS0zMC41IDExMy41Yy0yLjYgOS42LS42IDE5LjkgNS41IDI3LjhTOTQgNDE2IDEwNCA0MTZsOCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEwLjh6Il19LENVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZXNzLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzc0XSwiM2MiLCJNNDc3LjEgNTAuNmM3LjQgMTYgLjQgMzUuMS0xNS42IDQyLjVMMTA4LjQgMjU2IDQ2MS40IDQxOWMxNiA3LjQgMjMgMjYuNCAxNS42IDQyLjVzLTI2LjQgMjMtNDIuNSAxNS42bC00MTYtMTkyQzcuMyAyNzkuOCAwIDI2OC41IDAgMjU2UzcuMyAyMzIuMiAxOC42IDIyN2w0MTYtMTkyYzE2LTcuNCAzNS4xLS40IDQyLjUgMTUuNnoiXX0sVFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1cGVyc2NyaXB0IixpY29uOls1NzYsNTEyLFtdLCJmMTJiIiwiTTU0NCAzMmMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZDNDQ5LjkgMjcuMyA0NDMuNSA0Ni41IDQ1MS40IDYyLjMgNDU3IDczLjUgNDY4LjMgODAgNDgwIDgwbDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTEyOHpNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4LTg5LjYgMTI4LTE1LjMgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMjQwIDMxMS44IDMyNS44IDQzNC40YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwLTg5LjYtMTI4IDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwyNDAgMjAwLjIgMTU0LjIgNzcuNkMxNDguMiA2OS4xIDEzOC40IDY0IDEyOCA2NEw5NiA2NHoiXX0sYmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1zdG9wIixpY29uOls1MTIsNTEyLFs2MjA5NCwic3RvcC1jaXJjbGUiXSwiZjI4ZCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDE2MGwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSwkVXQ9YmJlLHZiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtZG93biIsaWNvbjpbMjU2LDUxMixbImFycm93cy12Il0sImYwN2QiLCJNMTUwLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDc3LjMgOTYgNDM0LjcgNTQuNiAzOTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjNiA2IDE0LjEgOS40IDIyLjYgOS40czE2LjYtMy40IDIyLjYtOS40bDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC00MS40IDQxLjQgMC0zNTcuNSA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LERVdD12YmUseGJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvby1zdG9ybSIsaWNvbjpbNTEyLDUxMixbInBvby1ib2x0Il0sImY3NWEiLCJNMjY4LjktMzEuOGMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjNjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDIxLjctOC41IDM3LjItMjEuOSA0Ny42LTEzLjkgMTAuOC0zNC4xIDE3LTU4LjEgMTdsLTI0IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4IDAgMTQuOCAzLjcgMjguOCAxMC4yIDQxLjEtNDIgNi42LTc0LjIgNDMtNzQuMiA4Ni45IDAgNDYuNiAzNi4yIDg0LjcgODEuOSA4Ny44IDMuMS0xMi40IDkuOS0yMy44IDE5LjYtMzIuNUwyNDIuNyAyMjVjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43bC0xMi43IDQyLjRjMjguOCAxLjIgNTIuNyAyMS4xIDU5LjggNDcuOWwyNi4yIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC00My45LTMyLjEtODAuMy03NC4yLTg2LjkgNi41LTEyLjMgMTAuMi0yNi4yIDEwLjItNDEuMSAwLTQ4LjYtMzkuNC04OC04OC04OGwtOS40IDBjLjktNS40IDEuNC0xMC45IDEuNC0xNi42IDAtNDguNy0zNi4xLTg4LjktODMuMS05NS4yek0xNDQuNiA0MTZsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNDYuNSA0MTIuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTMzLjUgMzg3LjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LExVdD14YmUsRVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpZGVvLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGUyIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE1My0xNTMgMC0yMjIuMmMwLTM1LjMtMjguNy02NC02NC02NEwxMjkuOCA2NCA0MS0yNC45ek0zMiAxMjhsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjNy44IDAgMTUuMy0xLjQgMjIuMi00TDM2IDEwNS44Yy0yLjYgNi45LTQgMTQuNC00IDIyLjJ6TTQ2NCAzMzZsNzMuNSA1OC44YzQuMiAzLjQgOS40IDUuMiAxNC44IDUuMiAxMy4xIDAgMjMuNy0xMC42IDIzLjctMjMuN2wwLTI0MC42YzAtMTMuMS0xMC42LTIzLjctMjMuNy0yMy43LTUuNCAwLTEwLjYgMS44LTE0LjggNS4yTDQ2NCAxNzYgNDY0IDMzNnoiXX0sbW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS14bWFyayIsaWNvbjpbNDQ4LDUxMixbMTAwNjIsInRpbWVzLXNxdWFyZSIsInhtYXJrLXNxdWFyZSJdLCJmMmQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sUFV0PW1vZSxJVXQ9bW9lLHliZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZHJvcGxldCIsaWNvbjpbNTc2LDUxMixbImhhbmQtaG9sZGluZy13YXRlciJdLCJmNGMxIiwiTTI3NS41IDYuNkwyMDkuMiAxMDNDMTk4IDExOS4zIDE5MiAxMzguNiAxOTIgMTU4LjNsMCAxLjdjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEuN2MwLTE5LjgtNi0zOS0xNy4yLTU1LjNMMzAwLjUgNi42QzI5Ny43IDIuNSAyOTMgMCAyODggMHMtOS43IDIuNS0xMi41IDYuNnpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LEFVdD15YmUsZ29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvbi1zaWduIixpY29uOls1MTIsNTEyLFs4MzYxLCJrcnciLCJ3b24iXSwiZjE1OSIsIk02Mi40IDUzLjlDNTYuOCAzNy4xIDM4LjcgMjguMSAyMS45IDMzLjZTLTMuOSA1Ny40IDEuNyA3NC4xTDU2LjkgMjQwIDMyIDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MC45IDAgNTYuNyAxNzAuMWM0LjUgMTMuNSAxNy40IDIyLjQgMzEuNiAyMS45czI2LjQtMTAuNCAyOS44LTI0LjJMMjMzIDI4OCAyNzkgMjg4IDMyMSA0NTUuOGMzLjQgMTMuOCAxNS42IDIzLjcgMjkuOCAyNC4yczI3LjEtOC40IDMxLjYtMjEuOUw0MzkuMSAyODggNDgwIDI4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQuOSAwIDU1LjMtMTY1LjljNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTYyIDE4Ni4xLTU0LjYgMC00NS45LTE4My44QzI4My41IDQyIDI3MC43IDMyIDI1NiAzMnMtMjcuNSAxMC0zMSAyNC4yTDE3OSAyNDAgMTI0LjQgMjQwIDYyLjQgNTMuOXptNzggMjM0LjFsMjYuNiAwLTExLjQgNDUuNi0xNS4yLTQ1LjZ6TTI0NSAyNDBsMTEtNDQuMSAxMSA0NC4xLTIyIDB6bTEwMCA0OGwyNi42IDAtMTUuMiA0NS42LTExLjQtNDUuNnoiXX0sTlV0PWdvZSxSVXQ9Z29lLE9VdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwyMDkuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMTEzLjF6TTExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAxMTMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMWMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40TDExOS40IDk2ek01NDQgMjc5LjRjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNGwtMjkuMiAwYy01LjMtMTcuNy0xNC44LTMzLjUtMjcuNC00Ni40bDAtMTcuNiA1Ni42IDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAxMTMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjA5LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNC42IDY0IDAgMCAyNC42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xeiJdfSxGVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MTIgMjQwYzAgMTMyLjUtMTE0LjYgMjQwLTI1NiAyNDAtMzcuMSAwLTcyLjMtNy40LTEwNC4xLTIwLjdMMzMuNSA1MTAuMWMtOS40IDQtMjAuMiAxLjctMjcuMS01LjhTLTIgNDg1LjggMi44IDQ3Ni44bDQ4LjgtOTIuMkMxOS4yIDM0NC4zIDAgMjk0LjMgMCAyNDAgMCAxMDcuNSAxMTQuNiAwIDI1NiAwUzUxMiAxMDcuNSA1MTIgMjQweiJdfSxCVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1hdmFsYW5jaGUiLGljb246WzU3Niw1MTIsW10sImU1MDciLCJNNDQwLjEgNDAxLjljMzQuMiAyMy4xIDgxLjEgMTkuNSAxMTEuNC0xMC44IDM0LjQtMzQuNCAzNC40LTkwLjEgMC0xMjQuNS0yNy44LTI3LjgtNjkuNS0zMy4xLTEwMi42LTE2LTExLjggNi4xLTE2LjQgMjAuNi0xMC4zIDMyLjNzMjAuNiAxNi40IDMyLjMgMTAuM2MxNS4xLTcuOCAzNC01LjMgNDYuNiA3LjMgMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTgxLjctODEuN2MyMi4zLTE0LjIgMzcuMS0zOS4xIDM3LjEtNjcuNSAwLTMzLjktMjEuMS02Mi45LTUwLjktNzQuNSAxLjktNi44IDIuOS0xNCAyLjktMjEuNSAwLTQ0LjItMzUuOC04MC04MC04MC0yNy4zIDAtNTEuNSAxMy43LTY1LjkgMzQuNi01LjgtMjAtMjQuMi0zNC42LTQ2LjEtMzQuNi0yNi41IDAtNDggMjEuNS00OCA0OCAwIDQgLjUgNy45IDEuNCAxMS42TDQ0MC4xIDQwMS45ek00ODAuNCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wIDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTY4LjcgODdDNDMuNSA2MS44IC40IDc5LjcgLjQgMTE1LjNMLjQgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguNyA4N3oiXX0sSFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1leWUiLGljb246WzY0MCw1MTIsW10sImU0YmYiLCJNMTc2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzguMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjEuNyA1NS42IDMxIDY1bDYzIDYzLTM4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOTZ6bTAgNDAwbDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzguMSAwLTYzIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNjMtNjMgMCAzOC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6bTMxMiAyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTM4LjEgNjMgNjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyAzOC4xIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjR6TTQ2NCA1NmwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM4LjEgMCA2My02M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC02MyA2MyAwLTM4LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6TTMyMCAxMjBjLTU3LjMgMC05OS40IDM0LTEyNS42IDY0LjMtMjAgMjMuMS0zMi40IDQ1LjgtMzcuNiA1Ni4xLTIuNSA1LTQuOSA5LjctNC45IDE1LjZzMi4zIDEwLjYgNC45IDE1LjZjNS4yIDEwLjMgMTcuNiAzMyAzNy42IDU2LjEgMjYuMiAzMC4zIDY4LjIgNjQuMyAxMjUuNiA2NC4zczk5LjQtMzQgMTI1LjYtNjQuM2MyMC0yMy4xIDMyLjQtNDUuOCAzNy42LTU2LjEgMi41LTUgNC45LTkuNyA0LjktMTUuNnMtMi4zLTEwLjYtNC45LTE1LjZjLTUuMi0xMC4zLTE3LjYtMzMtMzcuNi01Ni4xLTI2LjItMzAuMy02OC4yLTY0LjMtMTI1LjYtNjQuM3pNMjU2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LHFVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93cGxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjdkMiIsIk0xMjggMTYwbDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjk2LjQgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw4Ny42IDE3NS4xYzQuNCA4LjkgNi44IDE4LjcgNi44IDI4LjZsMCA1Ni45IDgwIDAgMC04MGMwLTQ4LjYgMzkuNC04OCA4OC04OCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAyMDhjMCAyMi4xIDE3LjkgNDAgNDAgNDAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4bDAtODAtNjMgMGM5LjUgMTYuNSAxNSAzNS42IDE1IDU2IDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0yMjQgMGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTIgMC0zMC41IDEyLjItNTguMiAzMi03OC40TDY0IDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHptOTEuNyAzNC45bDQzLjYgMjkuMSAxMTMuMiAwLTgwLTE2MC0xMDQuNCAwIDAgMTA4LjggMjcuNyAyMi4xek00MTYgNDAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHptLTI4MCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTIxNi0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIzMiA0MDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0salV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWdhbnR0IixpY29uOls1MTIsNTEyLFtdLCJlMGU0IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTY0IDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDB6TTM4NCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0sd2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpZGVvIixpY29uOls1NzYsNTEyLFsidmlkZW8tY2FtZXJhIl0sImYwM2QiLCJNOTYgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDY0ek00NjQgMzM2bDczLjUgNTguOGM0LjIgMy40IDkuNCA1LjIgMTQuOCA1LjIgMTMuMSAwIDIzLjctMTAuNiAyMy43LTIzLjdsMC0yNDAuNmMwLTEzLjEtMTAuNi0yMy43LTIzLjctMjMuNy01LjQgMC0xMC42IDEuOC0xNC44IDUuMkw0NjQgMTc2IDQ2NCAzMzZ6Il19LFZVdD13YmUsVVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXBhd24iLGljb246WzM4NCw1MTIsWzk4MjNdLCJmNDQzIiwiTTE5Mi0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDI3LTguOSA1MS45LTI0IDcyIDE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC43IDAgMjYuNyAxNjAgNTYuMiA3MC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDUxLjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw4MCAzODQgMTA2LjcgMjI0IDk2IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMtMTUuMS0yMC4xLTI0LTQ1LTI0LTcyIDAtNjYuMyA1My43LTEyMCAxMjAtMTIweiJdfSxXVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3luYWdvZ3VlIixpY29uOls1NzYsNTEyLFsxMjgzMzNdLCJmNjliIiwiTTE2IDgwYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMi0xMjggMCAwLTMyem0wIDM2OGwwLTI4OCAxMjggMCAxMjYuMi04NC4yYzEwLjctNy4yIDI0LjgtNy4yIDM1LjUgMGwxMjYuMiA4NC4yIDEyOCAwIDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTU2MCAxMTJsLTEyOCAwIDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyek0yMjQgMzg0bDAgODAgMTI4IDAgMC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NHptNjQtMTUyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sR1V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxLVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItcGx1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MSIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxrYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlZWxjaGFpci1tb3ZlIixpY29uOls0NDgsNTEyLFsid2hlZWxjaGFpci1hbHQiXSwiZTJjZSIsIk0zMTIgNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0yMDUuNCAxMjQuMWMtNi40LTUuMi0xNS42LTQuNy0yMS40IDEuMWwtMzMuNCAzMy40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxMzguOCA4MGMyOS0yOSA3NS4yLTMxLjQgMTA3LTUuNWw4MS4zIDY2YzIxLjQgMTcuNCAyMy44IDQ5LjIgNS4yIDY5LjVsLTQxLjggNDYgOTggMGMzMC4zIDAgNTMgMjcuNyA0Ny4xIDU3LjRMNDA3LjQgNDU0LjNjLTMuNSAxNy4zLTIwLjMgMjguNi0zNy43IDI1LjFzLTI4LjYtMjAuMy0yNS4xLTM3LjdMMzY5IDMyMCAzMTYuOCAzMjBjMi4xIDEwLjMgMy4yIDIxIDMuMiAzMiAwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyIDcxLjYgMTkyIDE2MCAxOTJjNiAwIDExLjkgLjMgMTcuOCAxbDUwLjQtNTAuNC0yMi43LTE4LjV6TTE2MCA0NDhhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LFlVdD1rYmUsWlV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJmNTA1IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwyNTEuNSAwQzI2MSA0NjkuNCAyNDAgNDE0LjUgMjQwIDM1Ni40bDAtMzEuMWMwLTcuMyAxLTE0LjUgMi45LTIxLjNsLTQ4LjYgMHptMjUxIDE4NC41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sWFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbGQiLGljb246WzM4NCw1MTIsW10sImYwMzIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDMyIDAgMCAzMjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTQ2LjUtMjQuOC04Ny4zLTYyLTEwOS43IDE4LjctMjIuMyAzMC01MSAzMC04Mi4zIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0yODggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwIDAtMTI4IDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjR6TTEyOCA0MTZsMC0xMjggMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEyOCAweiJdfSxTYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtcHVsc2UiLGljb246WzUxMiw1MTIsWyJoZWFydGJlYXQiXSwiZjIxZSIsIk0yNTYgMTA3LjlMMjQxIDg3LjFDMjE2IDUyLjUgMTc1LjkgMzIgMTMzLjEgMzIgNTkuNiAzMiAwIDkxLjYgMCAxNjUuMWwwIDIuNmMwIDIzLjYgNi4yIDQ4IDE2LjYgNzIuM2wxMDYgMGMzLjIgMCA2LjEtMS45IDcuNC00LjlsMzEuOC03Ni4zYzMuNy04LjggMTIuMy0xNC42IDIxLjgtMTQuOHMxOC4zIDUuNCAyMi4yIDE0LjFsNTEuMyAxMTMuOSA0MS40LTgyLjhjNC4xLTguMSAxMi40LTEzLjMgMjEuNS0xMy4zczE3LjQgNS4xIDIxLjUgMTMuM2wyMy4yIDQ2LjNjMS40IDIuNyA0LjEgNC40IDcuMiA0LjRsMTIzLjYgMGMxMC41LTI0LjMgMTYuNi00OC43IDE2LjYtNzIuM2wwLTIuNkM1MTIgOTEuNiA0NTIuNCAzMiAzNzguOSAzMiAzMzYuMiAzMiAyOTYgNTIuNSAyNzEgODcuMWwtMTUgMjAuN3pNNDY5LjYgMjg4bC05Ny44IDBjLTIxLjIgMC00MC42LTEyLTUwLjEtMzFsLTEuNy0zLjQtNDIuNSA4NS4xYy00LjEgOC4zLTEyLjcgMTMuNS0yMiAxMy4zcy0xNy42LTUuNy0yMS40LTE0LjFsLTQ5LjMtMTA5LjUtMTAuNSAyNS4yYy04LjcgMjAuOS0yOS4xIDM0LjUtNTEuNyAzNC41bC04MC4yIDBjNDcuMiA3My44IDEyMyAxNDEuNyAxNzAuNCAxNzcuOSAxMi40IDkuNCAyNy42IDE0LjEgNDMuMSAxNC4xczMwLjgtNC42IDQzLjEtMTQuMUMzNDYuNiA0MjkuNyA0MjIuNCAzNjEuOCA0NjkuNiAyODh6Il19LFFVdD1TYmUsX2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1yb290LXZhcmlhYmxlIixpY29uOls1NzYsNTEyLFsic3F1YXJlLXJvb3QtYWx0Il0sImY2OTgiLCJNMjgyLjYgNzguMWM4LTI3LjMgMzMtNDYuMSA2MS40LTQ2LjFsMjAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzQ0IDk2IDIzOC43IDQ1N2MtMy42IDEyLjMtMTQuMSAyMS4yLTI2LjggMjIuOHMtMjUuMS00LjYtMzEuNS0xNS42TDc3LjYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NS42IDBjMjIuOCAwIDQzLjggMTIuMSA1NS4zIDMxLjhsNjUuMiAxMTEuOCA4NC40LTI4OS41ek0zOTMuNCAyMzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0MS40IDQxLjQgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTQxLjQgNDEuNCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNC00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQxLjQtNDEuNC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zeiJdfSxKVXQ9X2JlLE1iZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1idWJibGVzIixpY29uOls1MTIsNTEyLFsiaGFuZHMtd2FzaCJdLCJlMDVlIiwiTTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTk2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTEyOCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMCAxNjBsLjEgNzIuNmMwIDQ0LjggMTcuNiA4Ny4xIDQ3LjkgMTE4LjQgLjMtNzcgNDAuMS0xNDguNCAxMDUuNC0xODkuM2wxLjktMS4yYy0yLjUtMy43LTIuOC04LjYtLjQtMTIuN2w2Mi0xMDcuNGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOFMxODIgNSAxNzUuNCAxNi41bC02OCAxMTcuOCAwIDAgMCAwLTQzLjMgNzUgMC00OS4zYzAtMTcuNy0xNC40LTMyLTMyLTMyUzAgMTQyLjQgMCAxNjB6bTIxMy42LTM1LjljMTQuMS04LjggMjkuOC0xMi43IDQ1LjItMTIuMWwzNi41LTYzLjNjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44bC02Ny4xIDExNi4yIDI3LTE2Ljl6bTg2LjUtMzUuN2wtMTYuNCAyOC40YzE1LjEgNS41IDI4LjYgMTUuNiAzOC4zIDI5LjdsMTkuNy0zNC4yYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHptNDYuNCA2My43bC0xMi41IDIxLjdjMiA4LjYgMi41IDE3LjUgMS43IDI2LjFsNC4zIDAgMCAwIDM0LjQgMCAxMy43LTIzLjhjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44ek0yODMuMSAxNzVjLTkuNC0xNS0yOS4xLTE5LjUtNDQuMS0xMC4ybC02MC4yIDM3LjZDMTI3LjMgMjM0LjcgOTYgMjkxLjIgOTYgMzUybDAgOGMwIDguOSAuOCAxNy42IDIuMiAyNi4xIDM1LjQgOC4yIDYxLjggNDAgNjEuOCA3Ny45IDAgNi4zLS43IDEyLjUtMi4xIDE4LjQgMjUuMiAxOC42IDU2LjQgMjkuNiA5MC4xIDI5LjZsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTkyIDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyNCAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDE1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNTYgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTM2IDAgMCAwIDAgMC05My4yIDAgNDYuMi0yOC45YzE1LTkuNCAxOS41LTI5LjEgMTAuMi00NC4xeiJdfSxlV3Q9TWJlLHRXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJrZXIiLGljb246WzUxMiw1MTIsW10sImY1YTEiLCJNNDA4LjggMGMtMjcuNCAwLTUzLjYgMTAuOS03MyAzMC4yTDMxOC4xIDQ4IDMwNSAzNC45Yy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDBMMTAzIDEzNWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDIzNy4xIDY4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjg0LjEgODEuOSAxODQgMTgyLjEgMzI5LjkgMzI4IDQ4MS44IDE3Ni4yYzE5LjQtMTkuNCAzMC4yLTQ1LjYgMzAuMi03MyAwLTU3LTQ2LjItMTAzLjItMTAzLjItMTAzLjJ6TTEwMi40IDI2My43Yy00OS45IDQ5LjktODMuMyAxMTQtOTUuNSAxODMuNUwuNCA0ODMuOEMtMSA0OTEuNiAxLjUgNDk5LjQgNyA1MDVzMTMuNCA4IDIxLjEgNi43bDM2LjctNi41YzY5LjUtMTIuMyAxMzMuNi00NS42IDE4My41LTk1LjVMMjk2IDM2MS45IDE1MC4xIDIxNiAxMDIuNCAyNjMuN3oiXX0sYVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZCIsaWNvbjpbMzg0LDUxMixbMTI4MjAzXSwiZjMyOCIsIk0zMjAgMzJsLTguNiAwQzMwMC40IDEyLjkgMjc5LjcgMCAyNTYgMEwxMjggMEMxMDQuMyAwIDgzLjYgMTIuOSA3Mi42IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTEzNiAxMTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAweiJdfSxzV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhY2Utb2Ytd29yc2hpcCIsaWNvbjpbNTEyLDUxMixbXSwiZjY3ZiIsIk0xNjAgNzlsMCA4MS00NC44IDMzLjZDMTAzLjEgMjAyLjcgOTYgMjE2LjkgOTYgMjMybDAgNDAtNjAuNiAzMC4zQzEzLjcgMzEzLjIgMCAzMzUuMyAwIDM1OS42TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDc0LjcgMCA4NS40IDAgMzIwIDBsNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTg4LjRjMC0yNC4yLTEzLjctNDYuNC0zNS40LTU3LjJMNDE2IDI3MiA0MTYgMjMyYzAtMTUuMS03LjEtMjkuMy0xOS4yLTM4LjRMMzUyIDE2MCAzNTIgNzljMC05LjUtNC4yLTE4LjUtMTEuNS0yNC42TDI3MS40LTMuMmMtOC45LTcuNC0yMS44LTcuNC0zMC43IDBMMTcxLjUgNTQuNEMxNjQuMiA2MC41IDE2MCA2OS41IDE2MCA3OXptOTYgMjQxYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODAtMTI4IDAgMC04MGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0saVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbm5hYmlzIixpY29uOls1MTIsNTEyLFtdLCJmNTVmIiwiTTI1NiAwYzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xIDE1LjggMjMuNSAzNi43IDYzLjcgNDkuMiAxMDkgNy4zIDI2LjQgMTEuOCA1NS4zIDEwLjMgODQgMTEuNi04LjkgMjMuNy0xNi43IDM1LjktMjMuNyA0MS0yMy4zIDg0LjQtMzYuOSAxMTIuMi00Mi41IDUuMi0xIDEwLjcgLjYgMTQuNCA0LjRzNS40IDkuMiA0LjQgMTQuNWMtNS42IDI3LjctMTkuMyA3MC45LTQyLjcgMTExLjctOS4xIDE1LjktMTkuOSAzMS43LTMyLjUgNDYuMyAyNy45IDYuNiA1Mi41IDE3LjIgNjcuMyAyNS40IDUuMSAyLjggOC4yIDguMiA4LjIgMTRzLTMuMiAxMS4yLTguMiAxNGMtMTUuMiA4LjQtNDAuOSAxOS41LTY5LjggMjYuMS0yMC4yIDQuNi00Mi45IDcuMi02NS4yIDQuNmw4LjMgMzMuMmMxLjUgNi4xLS42IDEyLjUtNS41IDE2LjRzLTExLjYgNC42LTE3LjIgMS44TDI4MCA0MTcuMiAyODAgNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzAuOC01OC41IDI5LjFjLTUuNiAyLjgtMTIuMyAyLjEtMTcuMi0xLjhzLTctMTAuMy01LjUtMTYuNGw4LjMtMzMuMmMtMjIuMiAyLjYtNDUgMC02NS4yLTQuNi0yOC45LTYuNi01NC41LTE3LjYtNjkuOC0yNi4xLTUuMS0yLjgtOC4yLTguMi04LjItMTRzMy4yLTExLjIgOC4yLTE0bDYuMi0zLjNjMTUtNy42IDM2LjgtMTYuNCA2MS4xLTIyLjItMTIuNS0xNC41LTIzLjMtMzAuNC0zMi40LTQ2LjItMjMuNC00MC44LTM3LjEtODQtNDIuNy0xMTEuNy0xLjEtNS4yIC42LTEwLjcgNC40LTE0LjVzOS4yLTUuNCAxNC40LTQuNGMyNy45IDUuNSA3MS4yIDE5LjIgMTEyLjIgNDIuNSAxMi4yIDYuOSAyNC4zIDE0LjggMzUuOCAyMy43LTEuNC0yOC43IDMuMS01Ny42IDEwLjMtODQgMTIuNS00NS4zIDMzLjQtODUuNSA0OS4yLTEwOWwxLjItMS42QzI0Ni45IDIgMjUxLjMgMCAyNTYgMHoiXX0scld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb29mIixpY29uOls1NzYsNTEyLFtdLCJlNTM3IiwiTTMwMi4zLTEyLjZjLTktNC41LTE5LjYtNC41LTI4LjYgMGwtMjU2IDEyOEMxLjkgMTIzLjMtNC41IDE0Mi41IDMuNCAxNTguM3MyNy4xIDIyLjIgNDIuOSAxNC4zTDI4OCA1MS44IDUyOS43IDE3Mi42YzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOWwtMjU2LTEyOHpNMjg4IDI3MmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptMCA0OGMtNTMgMC05NiA0My05NiA5NmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC01My00My05Ni05Ni05NnpNMTYwIDI1NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0zNTIgMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xMTIgMzM2Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDMzLjFjMCAxNyAxMy44IDMwLjkgMzAuOSAzMC45bDg3LjggMGMtNC4zLTkuOC02LjctMjAuNi02LjctMzJsMC00OGMwLTE4LjQgMy41LTM2IDkuOC01Mi4yLTEyLjItNy41LTI2LjUtMTEuOC00MS44LTExLjh6TTQyNS40IDQ4MGw4Ny44IDBjMTcgMCAzMC45LTEzLjggMzAuOS0zMC45bDAtMzMuMWMwLTQ0LjItMzUuOC04MC04MC04MC0xNS4zIDAtMjkuNiA0LjMtNDEuOCAxMS44IDYuMyAxNi4yIDkuOCAzMy44IDkuOCA1Mi4ybDAgNDhjMCAxMS40LTIuNCAyMi4yLTYuNyAzMnoiXX0sb1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpc2Vhc2UiLGljb246WzUxMiw1MTIsW10sImY3ZmEiLCJNMjM2LjUgMjkuNEwyMjQgNDhjLTIwIDMwLTUzLjYgNDgtODkuNyA0OEw2OCA5NmMtMzcuNSAwLTY3LjkgMzAuNC02Ny45IDY3LjkgMCAxOCA3LjIgMzUuMiAxOS45IDQ3LjlsMjcgMjdjMTEgMTEgMTcuMiAyNS45IDE3LjIgNDEuNSAwIDE1LjgtNi40IDMwLjktMTcuNyA0MkwzMy40IDMzNS4xYy0xMS4xIDEwLjgtMTcuMyAyNS43LTE3LjMgNDEuMiAwIDM2LjggMzQuMSA2NC4yIDcwLjEgNTYuMmw2Mi4zLTEzLjhjNy43LTEuNyAxNS43LTIuNiAyMy42LTIuNiAzMi44IDAgNjQuMiAxNC42IDg1LjIgMzkuOGwzMC41IDM2LjZjMTAuNCAxMi40IDI1LjcgMTkuNiA0MS45IDE5LjYgMzAuMSAwIDU0LjUtMjQuNCA1NC41LTU0LjVsMC01MS4yYzAtNDEuNCAyNS40LTc4LjUgNjQtOTMuNWwyMi4yLTguNmMyNS4yLTkuOCA0MS44LTM0LjEgNDEuOC02MS4xIDAtMjYuNC0xNS45LTUwLjMtNDAuMy02MC41TDQyOSAxNjQuOGMtMzMuMi0xMy45LTU3LjYtNDMtNjUuNS03OC4xbC03LjktMzUuMmMtNi44LTMwLjEtMzMuNS01MS41LTY0LjMtNTEuNS0yMiAwLTQyLjYgMTEtNTQuOCAyOS40ek0xNjAgMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHpiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWJpYmxlIixpY29uOls0NDgsNTEyLFsiYmlibGUiXSwiZjY0NyIsIk05NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NkMwIDQzIDQzIDAgOTYgMEw0MDAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDIwLjktMTMuNCAzOC43LTMyIDQ1LjNsMCA2Ni43YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDUxMnptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDAgMC02NC0yNTYgMHpNMTkyIDgwbDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyIDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LG5XdD16YmUsbFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDNjIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDY0bDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwem02NCAxMjhsNjQgMCAwLTY0LTY0IDAgMCA2NHptMCA2NGwwLTY0LTY0IDAgMCA2NCA2NCAwem02NCAwbC02NCAwIDAgNjQgNjQgMCAwLTY0em0wIDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sY1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMiLGljb246WzUxMiw1MTIsWzk3OTRdLCJmMjIyIiwiTTMyMCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw0ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctOTUgOTVjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMzMiA0MDEuMiAzMiAzMDQgMTEwLjggMTI4IDIwOCAxMjhjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw5NS05NS01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yMDggNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sZFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcCIsaWNvbjpbNjQwLDUxMixbMTI4MTg3XSwiZjEwOSIsIk0xMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMjQwIDY0IDAgMC0yNDAgMzg0IDAgMCAyNDAgNjQgMCAwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJ6TTE5LjIgMzg0QzguNiAzODQgMCAzOTIuNiAwIDQwMy4yIDAgNDQ1LjYgMzQuNCA0ODAgNzYuOCA0ODBsNDg2LjQgMGM0Mi40IDAgNzYuOC0zNC40IDc2LjgtNzYuOCAwLTEwLjYtOC42LTE5LjItMTkuMi0xOS4yTDE5LjIgMzg0eiJdfSxDYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci14bWFyayIsaWNvbjpbNTc2LDUxMixbInVzZXItdGltZXMiXSwiZjIzNSIsIk0yNTQuMSAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNDYuMSA1MTJjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zbDU5LjQgMHpNNTMwLjMgMTA4LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjl6TTIyNC40IDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LHVXdD1DYmUscFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYWctdXNhIixpY29uOls0NDgsNTEyLFtdLCJmNzRkIiwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJsMCAxNiA2OS0xNy4yYzM4LjEtOS41IDc4LjMtNS4xIDExMy41IDEyLjUgNDYuMyAyMy4yIDEwMC44IDIzLjIgMTQ3LjEgMGw5LjYtNC44QzQyMy44IDI4LjEgNDQ4IDQzLjEgNDQ4IDY2LjFsMCAzNi4xLTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtMjAuMy05LTQxLjgtMTQuNy02My42LTE2LjlsMCAzMi4yYzE3LjQgMi4xIDM0LjQgNi43IDUwLjYgMTMuOWwxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDYyLTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM2wtNjMuNSAxMy42IDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDYxLjktNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zbC02My41IDEzLjYgMCAzMi43IDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgMzMuNWMwIDEzLjMtOC4zIDI1LjMtMjAuOCAzMGwtMzQuNyAxM2MtNDYuMiAxNy4zLTk3LjYgMTQuNi0xNDEuNy03LjQtMzcuOS0xOS04MS40LTIzLjctMTIyLjUtMTMuNEw2NCA0MDAgNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6bTgwIDk2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tMzIgNDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6Il19LGhXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLW1pZGRsZS1maW5nZXIiLGljb246WzQ0OCw1MTIsWzEyODQwNV0sImY4MDYiLCJNMjMyIDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgMTY0LjJjLTguNS03LjYtMTkuNy0xMi4yLTMyLTEyLjItMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTU1LjdjLTIgMS40LTMuOSAzLTUuOCA0LjVMNTUgMjg0LjhDNDAuNCAyOTcgMzIgMzE1IDMyIDMzNEwzMiAzNzJjMCAzOCAxNi45IDc0IDQ2LjEgOTguM2w1LjQgNC41YzI4LjggMjQgNjUgMzcuMSAxMDIuNCAzNy4xTDMwNCA1MTJjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OC0xMi40IDAtMjMuNiA0LjctMzIuMSAxMi4zLTEuOS0yNC44LTIyLjYtNDQuMy00Ny45LTQ0LjMtMTIuMyAwLTIzLjUgNC42LTMyIDEyLjJMMjcyIDQwYzAtMjIuMS0xNy45LTQwLTQwLTQweiJdfSxmV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9ydGFyLXBlc3RsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjVhNyIsIk01MDQuMyAxMS4xQzQ5My4zLTEuNiA0NzQuNS0zLjcgNDYxIDYuMkwyNTIuMyAxNjAgMzk3LjMgMTYwIDUwMi42IDU0LjZjMTEuOC0xMS44IDEyLjYtMzAuOCAxLjYtNDMuNXpNMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyYzAgODIuNSA0My40IDE0Ny43IDEyMy45IDE3Ni4yLTExLjEgMTMuOS0xOS40IDMwLjMtMjMuOSA0OC4xLTQuNCAxNy4xIDEwLjQgMzEuNyAyOC4xIDMxLjdsMTkyIDBjMTcuNyAwIDMyLjQtMTQuNiAyOC4xLTMxLjctNC41LTE3LjgtMTIuOC0zNC4xLTIzLjktNDguMSA4MC41LTI4LjYgMTIzLjktOTMuNyAxMjMuOS0xNzYuMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxOTJ6Il19LG1XdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtY291Z2giLGljb246WzUxMiw1MTIsW10sImUwNjEiLCJNOTYgNTEybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNmwxIDBjMjYgMCA0Ny0yMSA0Ny00NyAwLTExLTMuOS0yMS42LTEwLjktMzAuMUwyNzMuMyAyMDBDMjcxLjQgMTk3LjYgMjcwLjEgMTk0LjcgMjY5LjcgMTkxLjcgMjU0IDgzLjMgMTYwLjcgMCA0OCAwIDQwLjQgMCAzMi45IC40IDI1LjQgMS4xIDEwLjUgMi42IDAgMTUuOSAwIDMwLjlMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMHptMTYtMzIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTYzLjEgMjM3LjJsLTQxLjUtMy41Yy0xMi4yLTEtMjEuNi0xMS4yLTIxLjYtMjMuNCAwLTEwLjggNy4zLTIwLjIgMTcuOC0yMi44bDQwLjQtMTAuMWMxOS4yLTQuOCAzNy44IDkuNyAzNy44IDI5LjUgMCAxNy44LTE1LjIgMzEuOC0zMi45IDMwLjN6TTQ4MCAzMTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0tNDAgMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptLTY0IDQ4YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTEyOCAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTQ4MCA1MDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0tNDAtNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sZ1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1NTgiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA4Mi4xIDc1LjJDNDA5LjcgMjQ4LjEgNDAwIDI3NC45IDQwMCAzMDRsMCAyNC40Yy03LjMgNi42LTEzLjYgMTQuMi0xOC43IDIyLjdsLTM3LjMtMTIuNCAwIDk5LjcgMjQgMTkuMiAwIDM4LjNjMCAxMy41IDIuOCAyNi40IDcuOCAzOC4xTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek01NjAgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek00MTYgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxUYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS10aHJlZS1xdWFydGVycyIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktNCJdLCJmMjQxIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDIyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0yMjQgMHoiXX0sYld0PVRiZSx2V3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnJhbmMtc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTE4ZiIsIk04MCAzMkM2Mi4zIDMyIDQ4IDQ2LjMgNDggNjRsMCAyNTYtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC02NCAxNDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTQ0IDAgMC05NiAxNzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCAzMnoiXX0sJGJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbHRlci1jaXJjbGUtZG9sbGFyIixpY29uOls1NzYsNTEyLFsiZnVubmVsLWRvbGxhciJdLCJmNjYyIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzIuNSAyLjUgNS4zIDQuNSA4LjMgNi0yMS4yLTMwLjktMzMuNi02OC4zLTMzLjYtMTA4LjYgMC05OS40IDc1LjUtMTgxLjEgMTcyLjMtMTkxbDkwLjQtOTAuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNNDE2IDMyMGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOCAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00NS44IDBjLTUuNiAwLTEwLjIgNC42LTEwLjIgMTAuMiAwIDQuOSAzLjUgOS4xIDguMyAxMGw0NSA4LjJjMjAgMy42IDM0LjYgMjEuMSAzNC42IDQxLjUgMCAyMy4zLTE4LjkgNDIuMi00Mi4yIDQyLjJsLTUuOCAwIDAgOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw1My44IDBjNS42IDAgMTAuMi00LjYgMTAuMi0xMC4yIDAtNC45LTMuNS05LjEtOC4zLTEwbC00NS04LjJjLTIwLTMuNi0zNC42LTIxLjEtMzQuNi00MS41IDAtMjIuNiAxNy43LTQxIDQwLTQyLjFsMC04LjF6Il19LHhXdD0kYmUseVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWVzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdlZiIsIk01MTIgMjQwLjJsMCAxNS44LTUxMiAwYzAtMjAgMTAtMzguNyAyNi42LTQ5LjhMMjc0LjkgNDAuN2M4LjYtNS43IDE4LjYtOC43IDI4LjktOC43IDExNSAwIDIwOC4yIDkzLjIgMjA4LjIgMjA4LjJ6bTAgNjMuOGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTEyIDUxMiAweiJdfSxEYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWgiLGljb246WzUxMiw1MTIsWzk0MDUsImhvc3BpdGFsLXN5bWJvbCJdLCJmNDdlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem05Ni0zNDRsMCAxNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NC05NiAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDk2IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSx3V3Q9RGJlLGtXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wiLGljb246WzU3Niw1MTIsWzEyNzk3OV0sImY1NDkiLCJNMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjcuOS0xMTUuMWMxOC4zLTE2LjQgNDYtMTYuNCA2NC4yIDBMNDQ4IDEyOCA1MTIgMTI4YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTIyNCAzNzZsMCA4OCAxMjggMCAwLTg4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHptLTExMiA4YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek0yODggMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4eiJdfSxTV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1maXZlIixpY29uOls0NDgsNTEyLFs5ODYwXSwiZjUyMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTk2IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0yMjQgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQtNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgMTYwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sX1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvcm5hZG8iLGljb246WzQ0OCw1MTIsWzEyNzc4Nl0sImY3NmYiLCJNMCAzMkwwIDQ1LjZDMCA2Mi43IDEuNyA3OS42IDUgOTZsMzUyLjggMGMzLjItNi45IDcuNS0xMy4zIDEzLTE4LjhsMzguNi0zOC42YzQuMi00LjIgNi42LTEwIDYuNi0xNiAwLTEyLjUtMTAuMS0yMi42LTIyLjYtMjIuNkwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMnpNMzU1LjcgMTQ0bC0zMzYgMGMxMi40IDI5LjcgMzAuMiA1Ni44IDUyLjcgODBsMzM5LjYgMC00Ny4yLTYyLjljLTMuOS01LjItNy0xMS05LjItMTcuMXpNMjQyLjYgMzM0LjdjOC4yIDQuOCAxNS44IDEwLjcgMjIuNSAxNy4zTDQ0NSAzNTJjMi05LjggMy0xOS45IDMtMzAuMSAwLTE3LjEtMi45LTM0LTguNi00OS45TDEzNiAyNzIgMjQyLjYgMzM0Ljd6TTI5NC4zIDQwMGM1LjMgMTcgNi41IDM1LjIgMy42IDUzbC01LjkgMzUuN2MtMiAxMi4yIDcuNCAyMy40IDE5LjggMjMuNCA1LjMgMCAxMC40LTIuMSAxNC4yLTUuOWw3OC4yLTc4LjJjOC41LTguNSAxNS44LTE3LjggMjEuOS0yNy45bC0xMzEuOCAweiJdfSxMYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXIiLGljb246WzU3Niw1MTIsWyJmaWdodGVyLWpldCJdLCJmMGZiIiwiTTQ5Ni4yIDIwNi44Yy0xMC43LTQuNS0yMi4yLTYuOC0zMy44LTYuOEwzNjIgMjAwIDI0OCA0OCAyOTYgNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgMCAyOTYgMEwxNTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4IDAgMCAxNTItNTQuNCAwLTUyLjgtNjZjLTMtMy44LTcuNi02LTEyLjUtNkwxNiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDg4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA4OGMwIDguOCA3LjIgMTYgMTYgMTZsMjQuMyAwYzQuOSAwIDkuNS0yLjIgMTIuNS02bDUyLjgtNjYgNTQuNCAwIDAgMTUyLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAxMTQtMTUyIDEwMC40IDBjMTEuNiAwIDIzLjEtMi4zIDMzLjgtNi44bDY1LTI3LjFjOC45LTMuNyAxNC44LTEyLjUgMTQuOC0yMi4ycy01LjgtMTguNC0xNC44LTIyLjJsLTY1LTI3LjF6Il19LE1XdD1MYmUseld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1icy1kb3duIixpY29uOls1MTIsNTEyLFsxMjgwNzgsNjE1NzZdLCJmMTY1IiwiTTM4NCAzMmMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDYuMy0xLjMgMTIuMi0zLjQgMTcuNyAyMC40IDUuNSAzNS40IDI0LjEgMzUuNCA0Ni4zIDAgOS4xLTIuNiAxNy42LTcgMjQuOSAyMi4yIDQuMiAzOSAyMy43IDM5IDQ3LjEgMCAxOS43LTExLjkgMzYuNi0yOC45IDQ0IDE3IDcuNCAyOC45IDI0LjMgMjguOSA0NCAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDAgMjguMiA3MC40YzIuNSA2LjMgMy44IDEzLjEgMy44IDE5LjlsMCA0LjJjMCAyNy4zLTIyLjEgNDkuNC00OS40IDQ5LjQtMTguNyAwLTM1LjgtMTAuNi00NC4yLTI3LjNMMTcwLjEgMzU2LjNjLTYuNy0xMy4zLTEwLjEtMjgtMTAuMS00Mi45bDAtMTg2LjZjMC0xOS40IDguOS0zNy44IDI0LTUwbDEyLjItOS43QzIyNC42IDQ0LjQgMjU5LjggMzIgMjk2LjEgMzJMMzg0IDMyek04MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsNDggMHoiXX0sQ1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyb29tIixpY29uOls1NzYsNTEyLFsxMjk1MjldLCJmNTFhIiwiTTU2Ni42IDU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTItMzQuNy0zNC43Yy00LjItNC4yLTEwLTYuNi0xNi02LjYtMTIuNSAwLTIyLjYgMTAuMS0yMi42IDIyLjZsMCAyOS4xIDEwOC4zIDEwOC4zIDI5LjEgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0zNC43LTM0LjcgMTkyLTE5MnpNMzQxLjEgMzUzLjRMMjIyLjYgMjM0LjljLTQyLjctMy43LTg1LjIgMTEuNy0xMTUuOCA0Mi4zbC04IDhjLTIyLjMgMjIuMy0zNC44IDUyLjUtMzQuOCA4NCAwIDYuOCA3LjEgMTEuMiAxMy4yIDguMmw1MS4xLTI1LjVjNS0yLjUgOS41IDQuMSA1LjQgNy45TDcuMyA0NzMuNEMyLjcgNDc3LjYgMCA0ODMuNiAwIDQ4OS45IDAgNTAyLjEgOS45IDUxMiAyMi4xIDUxMmwxNzMuMyAwYzM4LjggMCA3NS45LTE1LjQgMTAzLjQtNDIuOCAzMC42LTMwLjYgNDUuOS03My4xIDQyLjMtMTE1Ljh6Il19LEViZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWltcG9ydCIsaWNvbjpbMzg0LDUxMixbImFycm93LXJpZ2h0LXRvLWZpbGUiXSwiZjU2ZiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI0MCAxODIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTE4Mi4xIDAgMCA5NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2eiJdfSxUV3Q9RWJlLFBiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1dGVuc2lscyIsaWNvbjpbNTEyLDUxMixbMTI3ODYwLDYxNjg1LCJjdXRsZXJ5Il0sImYyZTciLCJNNjMuOSAxNC40QzYzLjEgNi4yIDU2LjIgMCA0OCAwcy0xNS4xIDYuMi0xNiAxNC4zTDE3LjkgMTQ5LjdjLTEuMyA2LTEuOSAxMi4xLTEuOSAxOC4yIDAgNDUuOSAzNS4xIDgzLjYgODAgODcuN0w5NiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNC40YzQ0LjktNC4xIDgwLTQxLjggODAtODcuNyAwLTYuMS0uNi0xMi4yLTEuOS0xOC4yTDIyMy45IDE0LjNDMjIzLjEgNi4yIDIxNi4yIDAgMjA4IDBzLTE1LjEgNi4yLTE1LjkgMTQuNEwxNzguNSAxNDkuOWMtLjYgNS43LTUuNCAxMC4xLTExLjEgMTAuMS01LjggMC0xMC42LTQuNC0xMS4yLTEwLjJMMTQzLjkgMTQuNkMxNDMuMiA2LjMgMTM2LjMgMCAxMjggMHMtMTUuMiA2LjMtMTUuOSAxNC42TDk5LjggMTQ5LjhjLS41IDUuOC01LjQgMTAuMi0xMS4yIDEwLjItNS44IDAtMTAuNi00LjQtMTEuMS0xMC4xTDYzLjkgMTQuNHpNNDQ4IDBDNDMyIDAgMzIwIDMyIDMyMCAxNzZsMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSwkV3Q9UGJlLERXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1iYWRnZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJjMSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwem05NiAzNTJsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDQ4Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE1MiA2NGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxMV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BpZGVyIixpY29uOls1MTIsNTEyLFsxMjgzNzVdLCJmNzE3IiwiTTM2OS4zLTMxYzExLjktMy41IDI0LjQgMi43IDI5IDEzLjlsLjggMi4zIDQwIDEzNmMyLjUgOC40IC4xIDE3LjUtNi4xIDIzLjdsLTY0LjEgNjQuMSA3Ni40LTIwLjggMTkuOS01OS44IC45LTIuM2M1LTExLjEgMTcuNy0xNi44IDI5LjUtMTIuOSAxMS44IDMuOSAxOC41IDE2LjEgMTUuOCAyOGwtLjcgMi40LTI0IDcyYy0yLjUgNy42LTguNyAxMy40LTE2LjUgMTUuNmwtOTEuMSAyNC44IDkxLjEgMjQuOGM3LjcgMi4xIDEzLjkgOCAxNi41IDE1LjZsMjQgNzIgLjcgMi40YzIuNyAxMS45LTQuMSAyNC4xLTE1LjggMjgtMTEuOCAzLjktMjQuNS0xLjgtMjkuNS0xMi45bC0uOS0yLjMtMTkuOS01OS44LTc2LjQtMjAuOCA2NC4xIDY0LjFjNi4xIDYuMSA4LjUgMTUuMSA2LjIgMjMuNGwtNDAgMTQ0LS44IDIuM2MtNC40IDExLjMtMTYuOCAxNy43LTI4LjggMTQuNC0xMi0zLjMtMTkuMy0xNS4yLTE3LjItMjcuMmwuNS0yLjQgMzYuMi0xMzAuNS0zNy4yLTM3LjJDMzUxIDQwNiAzMDguNCA0NDggMjU2IDQ0OHMtOTUtNDItOTYtOTQuMWwtMzcgMzcgMzYgMTIyLjMgLjYgMi40YzIuMiAxMS45LTQuOSAyMy45LTE2LjggMjcuNC0xMS45IDMuNS0yNC40LTIuNy0yOS0xMy45bC0uOC0yLjMtNDAtMTM2Yy0yLjUtOC40LS4xLTE3LjUgNi4xLTIzLjhsNjQuMS02NC4xLTc2LjQgMjAuOC0xOS45IDU5LjgtLjkgMi4zYy01IDExLjEtMTcuNyAxNi44LTI5LjUgMTIuOXMtMTguNS0xNi4xLTE1LjgtMjhsLjctMi40IDI0LTcyYzIuNS03LjYgOC43LTEzLjQgMTYuNS0xNS42bDkxLjEtMjQuOC05MS4xLTI0LjhjLTcuNy0yLjEtMTMuOS04LTE2LjUtMTUuNmwtMjQtNzItLjctMi40Yy0yLjctMTEuOSA0LjEtMjQuMSAxNS44LTI4czI0LjUgMS44IDI5LjUgMTIuOWwuOSAyLjMgMTkuOSA1OS44IDc2LjQgMjAuOC02NC4xLTY0LjFjLTYuMi02LjItOC41LTE1LjMtNi4xLTIzLjdsNDAtMTM2IC44LTIuM2M0LjYtMTEuMyAxNy4xLTE3LjQgMjktMTMuOSAxMS45IDMuNSAxOSAxNS41IDE2LjggMjcuNGwtLjYgMi40LTM2IDEyMi4zIDUzIDUzYzEtNDMuMyAzNi40LTc4LjEgNzkuOS03OC4xczc4LjkgMzQuOCA3OS45IDc4LjJsNTMuMS01My4xLTM2LTEyMi4zLS42LTIuNGMtMi4yLTEyIDQuOS0yMy45IDE2LjgtMjcuNHoiXX0sRVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1yZXRybyIsaWNvbjpbMzg0LDUxMixbXSwiZTUyNyIsIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6bTgwIDk2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem04IDE5MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHptNjQtNzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0ek0xNjggNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sSWJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25zLXBvc3QiLGljb246WzUxMiw1MTIsWyJtYXAtc2lnbnMiXSwiZjI3NyIsIk0yNTYuNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwIDAgNjQtMTUzLjQgMGMtNC4yIDAtOC4zIDEuNy0xMS4zIDQuN2wtNDggNDhjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDQ4IDQ4YzMgMyA3LjEgNC43IDExLjMgNC43bDE1My40IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC02NCAxNTMuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsNDgtNDhjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTQ4LTQ4Yy0zLTMtNy4xLTQuNy0xMS4zLTQuN2wtMTUzLjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxQV3Q9SWJlLElXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncm91cC1hcnJvd3Mtcm90YXRlIixpY29uOls1MTIsNTEyLFtdLCJlNGY2IiwiTTM3LjYgMTIyLjNjLTExLjUgMTguNy0yMC42IDM5LTI3IDYwLjUtNSAxNi45IDQuNiAzNC44IDIxLjUgMzkuOHMzNC44LTQuNiAzOS44LTIxLjVjMTguNC02MS45IDY3LjMtMTEwLjggMTI5LjItMTI5LjIgMTYuOS01IDI2LjYtMjIuOSAyMS41LTM5LjhTMTk5LjggNS42IDE4Mi45IDEwLjZDMTYxLjQgMTcgMTQxLjEgMjYuMSAxMjIuMyAzNy42IDExMi4zIDE1LjQgODkuOSAwIDY0IDAgMjguNyAwIDAgMjguNyAwIDY0IDAgODkuOSAxNS40IDExMi4zIDM3LjYgMTIyLjN6bTQzNi43IDBjMjIuMi0xMCAzNy42LTMyLjQgMzcuNi01OC4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI1LjkgMC00OC4zIDE1LjQtNTguMyAzNy42LTE4LjctMTEuNS0zOS0yMC42LTYwLjUtMjctMTYuOS01LTM0LjggNC42LTM5LjggMjEuNXM0LjYgMzQuOCAyMS41IDM5LjhjNjEuOSAxOC40IDExMC44IDY3LjMgMTI5LjIgMTI5LjIgNSAxNi45IDIyLjkgMjYuNiAzOS44IDIxLjVzMjYuNi0yMi45IDIxLjUtMzkuOGMtNi40LTIxLjUtMTUuNS00MS44LTI3LTYwLjV6TTUxMiA0NDhjMC0yNS45LTE1LjQtNDguMy0zNy42LTU4LjMgMTEuNS0xOC43IDIwLjYtMzkgMjctNjAuNSA1LTE2LjktNC42LTM0LjgtMjEuNS0zOS44cy0zNC44IDQuNi0zOS44IDIxLjVjLTE4LjQgNjEuOS02Ny4zIDExMC44LTEyOS4yIDEyOS4yLTE2LjkgNS0yNi42IDIyLjktMjEuNSAzOS44czIyLjkgMjYuNiAzOS44IDIxLjVjMjEuNS02LjQgNDEuOC0xNS41IDYwLjUtMjcgMTAgMjIuMiAzMi40IDM3LjYgNTguMyAzNy42IDM1LjMgMCA2NC0yOC43IDY0LTY0ek0zNy42IDM4OS43Yy0yMi4yIDEwLTM3LjYgMzIuNC0zNy42IDU4LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjUuOSAwIDQ4LjMtMTUuNCA1OC4zLTM3LjYgMTguNyAxMS41IDM5IDIwLjYgNjAuNSAyNyAxNi45IDUgMzQuOC00LjYgMzkuOC0yMS41cy00LjYtMzQuOC0yMS41LTM5LjhjLTYxLjktMTguNC0xMTAuOC02Ny4zLTEyOS4yLTEyOS4yLTUtMTYuOS0yMi45LTI2LjYtMzkuOC0yMS41UzUuNiAzMTIuMiAxMC42IDMyOS4xYzYuNCAyMS41IDE1LjUgNDEuOCAyNyA2MC41ek0yNTYgMTkyYzE1LjYgMCAzMCA1LjYgNDEuMSAxNC45bC0xNS4zIDE1LjNjLTYuNiA2LjYtMS45IDE3LjggNy40IDE3LjhsNjAuNSAwYzUuNyAwIDEwLjQtNC43IDEwLjQtMTAuNGwwLTYwLjVjMC05LjMtMTEuMi0xMy45LTE3LjgtNy40bC0xMS4yIDExLjJjLTE5LjgtMTcuOS00Ni4yLTI4LjktNzUuMS0yOC45LTQzLjYgMC04MS4zIDI0LjktOTkuOCA2MS4xLTYgMTEuOC0xLjQgMjYuMyAxMC40IDMyLjNzMjYuMyAxLjQgMzIuMy0xMC40YzEwLjYtMjAuOCAzMi4yLTM0LjkgNTctMzQuOXptNTguNiA5My4xYy0xMC42IDIwLjgtMzIuMiAzNC45LTU3IDM0LjktMTUuNyAwLTMwLTUuNi00MS4xLTE0LjlsMTUuMy0xNS4zYzYuNi02LjYgMS45LTE3LjgtNy40LTE3LjhMMTY0IDI3MmMtNS43IDAtMTAuNCA0LjctMTAuNCAxMC40bDAgNjAuNWMwIDkuMyAxMS4yIDEzLjkgMTcuOCA3LjRsMTEuMi0xMS4yYzE5LjggMTcuOSA0Ni4yIDI4LjkgNzUuMSAyOC45IDQzLjYgMCA4MS4zLTI0LjkgOTkuOC02MS4xIDYtMTEuOCAxLjQtMjYuMy0xMC40LTMyLjNzLTI2LjMtMS40LTMyLjMgMTAuNHoiXX0sQVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1zcGxpdC11cC1hbmQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYyIsIk0zNDIuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNDEuNC00MS40IDAgMTk1LjljLTE4LjgtMTAuOS00MC43LTE3LjEtNjQtMTcuMWwtMTE0LjcgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDMyMCAyMjQgMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSxOV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsbC1kcmlwIixpY29uOls1NzYsNTEyLFtdLCJmNTc2IiwiTTMwOS43IDcxLjZsLTY0LjQgNjQuNCAzMy40IDMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTMzLjQtMzMuNC05Ni40IDk2LjRjLTIuOSAyLjktNS4xIDYuNS02LjMgMTAuM2wzMjEuNSAwIDUzLjctNTMuN2M0LjktNC45IDcuNi0xMS41IDcuNi0xOC4zcy0yLjctMTMuNS03LjYtMTguM0wzNDYuMyA3MS42QzM0MS41IDY2LjcgMzM0LjkgNjQgMzI4IDY0cy0xMy41IDIuNy0xOC4zIDcuNnpNNTguMyAyMzIuNGw5Ni40LTk2LjQtNDkuNC00OS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDIwMCA5MC43IDI2NC40IDI2LjNDMjgxLjMgOS41IDMwNC4xIDAgMzI4IDBzNDYuNyA5LjUgNjMuNiAyNi4zTDUxNy43IDE1Mi40QzUzNC41IDE2OS4zIDU0NCAxOTIuMSA1NDQgMjE2cy05LjUgNDYuNy0yNi4zIDYzLjZMMzExLjYgNDg1LjdDMjk0LjcgNTAyLjUgMjcxLjkgNTEyIDI0OCA1MTJzLTQ2LjctOS41LTYzLjYtMjYuM0w1OC4zIDM1OS42QzQxLjUgMzQyLjcgMzIgMzE5LjkgMzIgMjk2czkuNS00Ni43IDI2LjMtNjMuNnpNNTEyIDU0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNS4yIDMyLjYtNzkuNiA1MS4yLTEwOC43IDYtOS40IDE5LjUtOS40IDI1LjUgMCAxOC43IDI5LjEgNTEuMiA4My41IDUxLjIgMTA4LjcgMCAzNS4zLTI4LjcgNjQtNjQgNjR6Il19LFJXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtaGVhcnQiLGljb246WzUxMiw1MTIsW10sImU1NzQiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTI0OS42IDE4My41bDYuNCA4LjUgNi40LTguNWMxMS4xLTE0LjggMjguNS0yMy41IDQ2LjktMjMuNSAzMi40IDAgNTguNyAyNi4zIDU4LjcgNTguN2wwIDUuM2MwIDQ5LjEtNjUuOCA5OC4xLTk2LjUgMTE4LjMtOS41IDYuMi0yMS41IDYuMi0zMC45IDAtMzAuNy0yMC4yLTk2LjUtNjkuMy05Ni41LTExOC4zbDAtNS4zYzAtMzIuNCAyNi4zLTU4LjcgNTguNy01OC43IDE4LjUgMCAzNS45IDguNyA0Ni45IDIzLjV6Il19LEFiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2tpaW5nLW5vcmRpYyIsaWNvbjpbNTc2LDUxMixbInNraWluZy1ub3JkaWMiXSwiZjdjYSIsIk00MjQuOCAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptOTkuOCAxOTMuN2M3LjYgMTUuMiAxLjkgMzMuNi0xMi42IDQybDAgMTgwLjMtMzIgMCAwLTE2NC4yLTEwLjEgNWMtMjcuNCAxMy43LTYwLjcgNi4xLTc5LjQtMTguMmwtMTkuNi0yNS41LTM5LjUgNjguOCAyNC44IDEyLjRjMjkuNSAxNC43IDQyLjkgNDkuNSAzMS4xIDgwLjJsLTI4LjIgNzMuNCAxNDkuNCAwYzcuOSAwIDE1LjYtMi4zIDIyLjItNi43bDcuOS01LjNjMTEtNy40IDI1LjktNC40IDMzLjMgNi43czQuNCAyNS45LTYuNyAzMy4zbC03LjkgNS4zQzU0MyA1MDYuOSA1MjYgNTEyIDUwOC42IDUxMmwtMTg5LjEgMGMtLjUgMC0xIDAtMS41IDBMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDg4IDBjMC04LjIgMy4xLTE2LjQgOS40LTIyLjZsNzQuMS03NC4xIDEwLjItMzUuOWMxMS4zIDE4LjMgMjcuNyAzMy44IDQ4LjQgNDQuMmw0LjggMi40LTEuOSA2LjhjLTMgMTAuNS04LjYgMjAtMTYuMyAyNy43bC01MS41IDUxLjUgMTAxLjMgMCAzNy4xLTk2LjQtNTUuNi0yNy44QzIzMC40IDMxOSAyMTUuMyAyNjcgMjM5LjMgMjI3LjFsMzcuNy02Mi43LTI3LjctNy43Yy05LTIuNS0xOC4xIDMuMi0yMCAxMi4zbC01LjkgMjkuM2MtMy4xIDE1LjYtMTcuMSAyNi4zLTMyLjUgMjUuN2wtMTMwIDIwOC0zNy43IDAgMTQwLjYtMjI1Yy0zLjQtNi4zLTQuNi0xMy44LTMuMS0yMS4zbDUuOS0yOS4zYzkuMS00NS42IDU1LjEtNzMuOCA5OS45LTYxLjRsMzIuNSA5YzQ2LjcgMTMgODggNDAuOCAxMTcuNiA3OS4zbDI0LjkgMzIuMyA0MC40LTIwLjJjMTUuOC03LjkgMzUtMS41IDQyLjkgMTQuM3oiXX0sT1d0PUFiZSxOYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNoZWNrIixpY29uOls0NDgsNTEyLFs5NzQ1LDk5ODksNjE1MTAsImNoZWNrLXNxdWFyZSJdLCJmMTRhIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTM0MiAxNDUuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMTg5LjEgMzE1LjIgMTM3IDI2My4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS45IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzQ3LjMgMTc5LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LEZXdD1OYmUsUmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdGgiLGljb246WzUxMiw1MTIsWzEyODcwNSwiYmF0aHR1YiJdLCJmMmNkIiwiTTk2IDc3LjNjMC03LjMgNS45LTEzLjMgMTMuMy0xMy4zIDMuNSAwIDYuOSAxLjQgOS40IDMuOWwxNC45IDE0LjljLTMuNiA5LjEtNS41IDE4LjktNS41IDI5LjIgMCAxOS45IDcuMiAzOCAxOS4yIDUyLTUuMyA5LjItNCAyMS4xIDMuOCAyOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMEwyODkgODljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjktNy44LTcuOS0xOS44LTkuMS0yOS0zLjgtMTQtMTItMzIuMS0xOS4yLTUyLTE5LjItMTAuMyAwLTIwLjIgMi0yOS4yIDUuNUwxNjMuOSAyMi42QzE0OS40IDguMSAxMjkuNyAwIDEwOS4zIDAgNjYuNiAwIDMyIDM0LjYgMzIgNzcuM0wzMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA0OGMwIDI4LjQgMTIuNCA1NCAzMiA3MS42TDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYgMjU2IDAgMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDAuNGMxOS42LTE3LjYgMzItNDMuMSAzMi03MS42bDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMjU2IDk2IDc3LjN6Il19LEJXdD1SYmUsSFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWJpc2hvcCIsaWNvbjpbMzIwLDUxMixbOTgyMV0sImY0M2EiLCJNNjQgMzg0TDQ4LjMgMzY4LjNDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTA2LjcgNjQgOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyUzc4LjMgMCA5NiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC43IDAgNDcuNiA1Ny4xLTg1LjkgODUuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDgyLjMtODIuM2MxOC43IDI3LjMgMjguNyA1OS43IDI4LjcgOTMgMCA0My43LTE3LjQgODUuNy00OC4zIDExNi42TDI1NiAzODQgMzEyLjIgNDU0LjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMMzUuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDY0IDM4NHoiXX0sT2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbi1ib3R0bGUtbWVkaWNhbCIsaWNvbjpbMzg0LDUxMixbInByZXNjcmlwdGlvbi1ib3R0bGUtYWx0Il0sImY0ODYiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0TDAgMzJ6TTMyIDE0NGwzMjAgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0ek0xNjAgMjQ4bDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxxV3Q9T2JlLEZiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcmF3LXBvbHlnb24iLGljb246WzUxMiw1MTIsWzU4MDU1LCJ2ZWN0b3ItcG9seWdvbiJdLCJmNWVlIiwiTTY0IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDI3My4xIDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM0LTI2LjUgNjEuOC02MCA2My45bC0yLjEgMi45LTcxLjUgOTkuMWMzLjYgOCA1LjYgMTYuOSA1LjYgMjYuMnMtMiAxOC4yLTUuNiAyNi4ybDIuMiAzLjEgNjkuMyA5NiAyLjEgMi45YzMzLjUgMi4xIDYwIDI5LjkgNjAgNjMuOSAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTI3My4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjFDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDB6TTM5NC4yIDQxMy40bC02NS41LTkwLjYtMi4yLTMuMWMtMi4xIC4yLTQuMyAuMy02LjUgLjMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMyLjIgMCA0LjQgLjEgNi41IC4zbDY3LjctOTMuN2MtLjYtLjktMS4xLTEuNy0xLjYtMi42TDExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAyNzMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjczLjEgMGMuNS0uOSAxLjEtMS44IDEuNi0yLjZ6Il19LGpXdD1GYmUsVld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImktY3Vyc29yIixpY29uOlsyNTYsNTEyLFtdLCJmMjQ2IiwiTS4xIDI5LjNDLTEuNCA0NyAxMS43IDYyLjQgMjkuMyA2My45bDggLjdDNzAuNSA2Ny4zIDk2IDk1IDk2IDEyOC4zbDAgOTUuNy0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCA5NS43YzAgMzMuMy0yNS41IDYxLTU4LjcgNjMuOGwtOCAuN0MxMS43IDQ0OS42LTEuNCA0NjUgLjEgNDgyLjdTMTcgNTEzLjQgMzQuNyA1MTEuOWw4LS43YzM0LjEtMi44IDY0LjItMTguOSA4NS40LTQyLjkgMjEuMiAyNCA1MS4yIDQwIDg1LjQgNDIuOWw4IC43YzE3LjYgMS41IDMzLjEtMTEuNiAzNC41LTI5LjJzLTExLjYtMzMuMS0yOS4yLTM0LjVsLTgtLjdDMTg1LjUgNDQ0LjcgMTYwIDQxNyAxNjAgMzgzLjdsMC05NS43IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC05NS43YzAtMzMuMyAyNS41LTYxIDU4LjctNjMuOGw4LS43YzE3LjYtMS41IDMwLjctMTYuOSAyOS4yLTM0LjVTMjM5LTEuNCAyMjEuMyAuMWwtOCAuN2MtMzQuMSAyLjgtNjQuMiAxOC45LTg1LjQgNDIuOS0yMS4yLTI0LTUxLjItNDAtODUuNC00Mi45bC04LS43QzE3LTEuNCAxLjYgMTEuNyAuMSAyOS4zeiJdfSxVV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLXBsdXMiLGljb246WzU3Niw1MTIsW10sImU1MDAiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHoiXX0sV1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1kb2ciLGljb246WzUxMiw1MTIsW10sImU1NzMiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTE2MC45IDI4Ni4yYzQuOCAxLjIgOS45IDEuOCAxNS4xIDEuOCAzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0IDQ0LjIgMGMxMi4xIDAgMjMuMiA2LjggMjguNiAxNy43bDcuMiAxNC4zIDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDAgMCA1MC43YzAgNy4zLTUuOSAxMy4zLTEzLjMgMTMuMy0xLjggMC0zLjYtLjQtNS4yLTEuMWwtOTguNy00Mi4zYy02LjYtMi44LTEwLjgtOS4zLTEwLjgtMTYuNCAwLTIuOCAuNi01LjUgMS45LThsMTUtMzB6TTE2MCAxNjBsNDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDhjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sR1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyZWF0ZXItdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzMiIsIk0yMS45IDk0LjRDNS4xIDg4LjgtMy45IDcwLjYgMS43IDUzLjlTMjUuNCAyOC4xIDQyLjEgMzMuNmwzODQgMTI4QzQzOS4yIDE2NiA0NDggMTc4LjIgNDQ4IDE5MnMtOC44IDI2LTIxLjkgMzAuNGwtMzg0IDEyOGMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNUwzMTQuOCAxOTIgMjEuOSA5NC40ek00MTYgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMHoiXX0sS1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4iLGljb246WzUxMiw1MTIsWzYyMTM1XSwiZjJiNiIsIk02NC40IDE3NS44TDI1NiAzMy45IDQ0Ny42IDE3NS44IDI4OS41IDI5M2MtOS43IDcuMi0yMS40IDExLTMzLjUgMTFzLTIzLjgtMy45LTMzLjUtMTFMNjQuNCAxNzUuOHpNMjU2LTMyYy0xMi4xIDAtMjMuOCAzLjktMzMuNSAxMUwyNS45IDEyNC43QzkuNiAxMzYuOCAwIDE1NS44IDAgMTc2LjFMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMzkuOWMwLTIwLjMtOS42LTM5LjQtMjUuOS01MS40TDI4OS41LTIxYy05LjctNy4yLTIxLjQtMTEtMzMuNS0xMXoiXX0sWVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW5kIixpY29uOls1MTIsNTEyLFtdLCJlNTJkIiwiTTExMi40IDE3OS4yQzE0MiAxMjcuNyAxOTYuOCA5NiAyNTYuMiA5NnMxMTQuMiAzMS43IDE0My45IDgzLjJMNTA4LjcgMzY4YzEyLjMgMjEuMy0zLjEgNDgtMjcuNyA0OEwzMS41IDQxNmMtMjQuNiAwLTQwLTI2LjYtMjcuNy00OEwxMTIuNCAxNzkuMnoiXX0sWld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvaWNlbWFpbCIsaWNvbjpbNjQwLDUxMixbXSwiZjg5NyIsIk0xNDQgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek0yNjMuOCAzMjBjMTUuMy0yMi45IDI0LjItNTAuNCAyNC4yLTgwIDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzAgMTYwLjUgMCAyNDAgNjQuNSAzODQgMTQ0IDM4NGwzNTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFM1NzUuNSA5NiA0OTYgOTYgMzUyIDE2MC41IDM1MiAyNDBjMCAyOS42IDguOSA1Ny4xIDI0LjIgODBsLTExMi41IDB6TTQ5NiAxNjBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6Il19LFhXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZXN0IixpY29uOls0NDgsNTEyLFtdLCJlMDg1IiwiTTIwMCA0NjRsMC0xNzAuMWMwLTMuOS0uNS03LjgtMS40LTExLjZMMTQ0LjQgNjUuNEMxNjIuMSA3Ny4yIDE4OC4yIDg4IDIyNCA4OHM2MS45LTEwLjggNzkuNi0yMi42TDI0OS40IDI4Mi4zYy0xIDMuOC0xLjQgNy43LTEuNCAxMS42TDI0OCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xOTMuNWMwLTkuNS0yLjgtMTguNy04LjEtMjYuNmwtNDcuOS03MS44Yy01LjMtNy45LTguMS0xNy4xLTguMS0yNi42TDM4NCA0OGMwLTI2LjUtMjEuNS00OC00OC00OGwtMy41IDBjLS4zIDAtLjYgMC0xIDAtLjYgMC0xLjIgMC0xLjggMC0xOC44IDAtMzQuMSA5LjctNDQuMSAxOC44LTkuMyA4LjQtMjguNSAyMS4yLTYxLjcgMjEuMnMtNTIuNC0xMi44LTYxLjctMjEuMmMtMTAtOS4xLTI1LjMtMTguOC00NC4xLTE4LjgtLjYgMC0xLjIgMC0xLjggMC0uMyAwLS42IDAtMSAwTDExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4bDAgOTcuNWMwIDkuNS0yLjggMTguNy04LjEgMjYuNkw4LjEgMjQzLjlDMi44IDI1MS44IDAgMjYxLjEgMCAyNzAuNUwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHoiXX0sUVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF1ZGlvLWRlc2NyaXB0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmMjllIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTk2IDk2bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCA0OCAwIDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNGMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTQ4IDMybDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDggMHptMTUyLTk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtNDhjMC0zOS44LTMyLjItNzItNzItNzJsLTQ4IDB6bTQ4IDE0NGwtMjQgMCAwLTk2IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sSld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InciLGljb246WzU3Niw1MTIsWzExOV0sIjU3IiwiTTIwLjggMzRjMTYuNS02LjIgMzUgMi4yIDQxLjIgMTguN0wxNzIuMiAzNDYuNyAyNTcuMyA1NWM0LTEzLjcgMTYuNS0yMyAzMC43LTIzczI2LjcgOS40IDMwLjcgMjNMNDAzLjggMzQ2LjcgNTE0IDUyLjhjNi4yLTE2LjUgMjQuNi0yNC45IDQxLjItMTguN1M1ODAuMiA1OC43IDU3NCA3NS4ybC0xNDQgMzg0Yy00LjggMTIuOS0xNy40IDIxLjMtMzEuMiAyMC43cy0yNS43LTkuOC0yOS41LTIzTDI4OCAxNzguMyAyMDYuNyA0NTdjLTMuOSAxMy4yLTE1LjggMjIuNS0yOS41IDIzcy0yNi4zLTcuOC0zMS4yLTIwLjdMMiA3NS4yQy00LjIgNTguNyA0LjIgNDAuMiAyMC44IDM0eiJdfSxib2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWRyb3BwZXIiLGljb246WzUxMiw1MTIsWyJleWUtZHJvcHBlci1lbXB0eSIsImV5ZWRyb3BwZXIiXSwiZjFmYiIsIk0zNDEuNiAyOS4ybC0xMDEuNiAxMDEuNi05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTAxLjYtMTAxLjZjMzktMzkgMzktMTAyLjIgMC0xNDEuMXMtMTAyLjItMzktMTQxLjEgMHpNNTUuNCAzMjMuM2MtMTUgMTUtMjMuNCAzNS40LTIzLjQgNTYuNmwwIDQyLjQtMjYuNiAzOS45Yy04LjUgMTIuNy02LjggMjkuNiA0IDQwLjRzMjcuNyAxMi41IDQwLjQgNGwzOS45LTI2LjYgNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRsMTA5LjQtMTA5LjQtNDUuMy00NS4zLTEwOS40IDEwOS40Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN2wtMzYuMSAwIDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNHoiXX0sZUd0PWJvZSx0R3Q9Ym9lLHBoPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjE1MzIsInRpbWVzLWNpcmNsZSIsInhtYXJrLWNpcmNsZSJdLCJmMDU3IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjcgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDU1IDU1IDU1LTU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNTUgNTUgNTUgNTVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNTUtNTUtNTUgNTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTUtNTUtNTUtNTVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxhR3Q9cGgsc0d0PXBoLGlHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbGVyIixpY29uOls2NDAsNTEyLFtdLCJlMDQxIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5Ni40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04TDk2IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgOTZ6bTQwOCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTEyIDEzNmwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0xNzYtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI2NCA0MjRhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHoiXX0sdm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cmtpc2gtbGlyYS1zaWduIixpY29uOls0NDgsNTEyLFsidHJ5IiwidHVya2lzaC1saXJhIl0sImUyYmIiLCJNMTYwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDMuNiAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCA0Ni4xIDEyMS40LTM0LjdjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMTM0LjYgMzguNSAwIDE2Mi41IDcyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYuMi0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC00Ni4xLTI1LjQgNy4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMzguNi0xMSAwLTYxLjljMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHJHdD12b2Usb0d0PXZvZSxuR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sY2FubyIsaWNvbjpbNTEyLDUxMixbMTI3NzU1XSwiZjc3MCIsIk0xNjAgMTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE1LjcgMCAzMCA1LjYgNDEuMiAxNSAxMS4yLTE4LjYgMzEuNi0zMSA1NC44LTMxczQzLjYgMTIuNCA1NC44IDMxYzExLjEtOS40IDI1LjUtMTUgNDEuMi0xNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGMtMTQuNyAwLTI4LjMtNS0zOS4xLTEzLjNsLTMyIDQ4QzI3NS4zIDE4NyAyNjYgMTkyIDI1NiAxOTJzLTE5LjMtNS0yNC45LTEzLjNsLTMyLTQ4QzE4OC4zIDEzOSAxNzQuNyAxNDQgMTYwIDE0NHpNMTQ0IDM1Mmw0OC40LTI0LjJjMTAuMi01LjEgMjEuNi03LjggMzMtNy44IDE5LjYgMCAzOC40IDcuOCA1Mi4yIDIxLjZsMzIuNSAzMi41YzYuMyA2LjMgMTQuOSA5LjkgMjMuOCA5LjkgMTEuMyAwIDIxLjgtNS42IDI4LTE1bDkuNy0xNC42LTU5LTY2LjNjLTkuMS0xMC4yLTIyLjItMTYuMS0zNS45LTE2LjFsLTQxLjggMGMtMTMuNyAwLTI2LjggNS45LTM1LjkgMTYuMWwtNTkuOSA2Ny40IDQuNy0zLjV6bTE5LjQtOTUuOGMxOC4yLTIwLjUgNDQuMy0zMi4yIDcxLjgtMzIuMmw0MS44IDBjMjcuNCAwIDUzLjUgMTEuNyA3MS44IDMyLjJsMTUwLjIgMTY5YzguNSA5LjUgMTMuMiAyMS45IDEzLjIgMzQuNyAwIDI4LjgtMjMuNCA1Mi4yLTUyLjIgNTIuMkw1Mi4yIDUxMkMyMy40IDUxMiAwIDQ4OC42IDAgNDU5LjggMCA0NDcuMSA0LjcgNDM0LjcgMTMuMiA0MjUuMmwxNTAuMi0xNjl6Il19LGxHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLXNwYXJrbGVzIixpY29uOls1MTIsNTEyLFtdLCJmNzJiIiwiTTQ2NCA2LjFjOS41LTguNSAyNC04LjEgMzMgLjlsOCA4YzkgOSA5LjQgMjMuNSAuOSAzM2wtODUuOCA5NS45Yy0yLjYgMi45LTQuMSA2LjctNC4xIDEwLjdsMCAyMS40YzAgOC44LTcuMiAxNi0xNiAxNmwtMTUuOCAwYy00LjYgMC04LjkgMS45LTExLjkgNS4zTDEwMC43IDUwMC45Yy02LjMgNy4xLTE1LjMgMTEuMS0yNC44IDExLjEtOC44IDAtMTcuMy0zLjUtMjMuNS05LjhMOS43IDQ1OS43Yy02LjItNi4yLTkuNy0xNC43LTkuNy0yMy41IDAtOS41IDQtMTguNSAxMS4xLTI0LjhsMTExLjYtOTkuOGMzLjQtMyA1LjMtNy40IDUuMy0xMS45bDAtMjcuNmMwLTguOCA3LjItMTYgMTYtMTZsMzQuNiAwYzMuOSAwIDcuNy0xLjUgMTAuNy00LjFMNDY0IDYuMXpNNDMyIDI4OGMzLjYgMCA2LjcgMi40IDcuNyA1LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44LTE0LjggNTEuN2MtMSAzLjQtNC4xIDUuOC03LjcgNS44cy02LjctMi40LTcuNy01LjhsLTE0LjgtNTEuNy01MS43LTE0LjhjLTMuNC0xLTUuOC00LjEtNS44LTcuN3MyLjQtNi43IDUuOC03LjdsNTEuNy0xNC44IDE0LjgtNTEuN2MxLTMuNCA0LjEtNS44IDcuNy01Ljh6TTg3LjcgNjkuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOEw1Ny41IDE2Ni41IDUuOCAxNTEuN2MtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHM2LjcgMi40IDcuNyA1Ljh6TTIwOCAwYzMuNyAwIDYuOSAyLjUgNy44IDYuMWw2LjggMjcuMyAyNy4zIDYuOGMzLjYgLjkgNi4xIDQuMSA2LjEgNy44cy0yLjUgNi45LTYuMSA3LjhsLTI3LjMgNi44LTYuOCAyNy4zYy0uOSAzLjYtNC4xIDYuMS03LjggNi4xcy02LjktMi41LTcuOC02LjFsLTYuOC0yNy4zLTI3LjMtNi44Yy0zLjYtLjktNi4xLTQuMS02LjEtNy44czIuNS02LjkgNi4xLTcuOGwyNy4zLTYuOCA2LjgtMjcuM2MuOS0zLjYgNC4xLTYuMSA3LjgtNi4xeiJdfSxjR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZSIsaWNvbjpbMzg0LDUxMixbXSwiZjEzMCIsIk0xOTIgMEMxMzkgMCA5NiA0MyA5NiA5NmwwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6TTQ4IDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDE3MC43IDAgMTg0bDAgNDBjMCA5Ny45IDczLjMgMTc4LjcgMTY4IDE5MC41bDAgNDkuNS00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDkuNWM5NC43LTExLjggMTY4LTkyLjYgMTY4LTE5MC41bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCAzMDMuNSA0OCAyMjRsMC00MHoiXX0sZEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3duIixpY29uOls1NzYsNTEyLFsxMjgwODFdLCJmNTIxIiwiTTMxMyA4Ny4yYzkuMi03LjMgMTUtMTguNiAxNS0zMS4yIDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMTIuNiA1LjkgMjMuOSAxNSAzMS4yTDE5NC42IDE5NC44Yy0xMCAxNS43LTMxLjMgMTkuNi00Ni4yIDguNEw4OC45IDE1OC43YzQuNS02LjQgNy4xLTE0LjMgNy4xLTIyLjcgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCAyMS44IDE3LjUgMzkuNiAzOS4yIDQwTDg3LjggMzkzLjVjNC43IDMxLjMgMzEuNiA1NC41IDYzLjMgNTQuNWwyNzMuOCAwYzMxLjcgMCA1OC42LTIzLjIgNjMuMy01NC41TDUyMC44IDE3NmMyMS43LS40IDM5LjItMTguMiAzOS4yLTQwIDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgOC40IDIuNiAxNi4zIDcuMSAyMi43bC01OS40IDQ0LjZjLTE0LjkgMTEuMi0zNi4yIDcuMy00Ni4yLTguNEwzMTMgODcuMnoiXX0sdUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3ctdHVybi1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJlNTgwIiwiTS0uNSAxMTNsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAzNTAuMSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0YzAtNDguNi0zOS40LTg4LTg4LTg4bC0zNTAuMSAwIDMxLTMxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45UzgwLjktMi4zIDcxLjUgN0wtLjUgNzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45ek02MC4zIDI5Mi42TDM3LjEgNDc2Yy0yLjQgMTkuMSAxMi41IDM2IDMxLjcgMzZsMTU0LjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExNy40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45bDY4LjIgMTM2LjVjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w3MS45IDBjMTkuMyAwIDM0LjItMTYuOSAzMS43LTM2TDQ1Mi43IDI5Mi43Yy0xLjItOS43LTYuOS0xOC40LTE1LjMtMjMuNEwyNzEuOSAxNjkuOWMtMTAuMi02LjEtMjIuOS02LjEtMzMuMSAuMUw3NS40IDI2OS4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6Il19LEJiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1mYXN0IixpY29uOls2NDAsNTEyLFsic2hpcHBpbmctZmFzdCJdLCJmNDhiIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDYyMS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDY0MCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTMuMyAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTQ4LTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDE0NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTMTAuNyA5NiAyNCA5Nmw0MCAwek01NzYgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMjU2IDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxwR3Q9QmJlLEhiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXBlbiIsaWNvbjpbNjQwLDUxMixbInVzZXItZWRpdCJdLCJmNGZmIiwiTTI1Ni4xIDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Yy05OC41IDAtMTc4LjMgNzkuOC0xNzguMyAxNzguMyAwIDE2LjQgMTMuMyAyOS43IDI5LjcgMjkuN2wxOTYuNSAwIDEwLjktNTQuNWM0LjMtMjEuNyAxNS00MS42IDMwLjYtNTcuMmw2Ny4zLTY3LjNjLTI4LTE4LjMtNjEuNC0yOC45LTk3LjQtMjguOWwtNTkuNCAwek0zMzIuMyA0NjYuOWwtMTEuOSA1OS42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjYgMSAwIDEuOS0uMSAyLjktLjNsNTkuNi0xMS45YzEyLjQtMi41IDIzLjgtOC42IDMyLjctMTcuNWwxMTguOS0xMTguOS04MC04MC0xMTguOSAxMTguOWMtOC45IDguOS0xNSAyMC4zLTE3LjUgMzIuN3ptMjY3LjgtMTIzYzIyLjEtMjIuMSAyMi4xLTU3LjkgMC04MHMtNTcuOS0yMi4xLTgwIDBsLTI4LjggMjguOCA4MCA4MCAyOC44LTI4Ljh6Il19LGhHdD1IYmUsZkd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2xvY2siLGljb246WzU3Niw1MTIsW10sImY0ZmQiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzMuOSAwIDcuOSAuMSAxMS44IC40LTE2LjIgMjguMi0yNS41IDYwLjgtMjUuNSA5NS42IDAgNDEuOCAxMy40IDgwLjUgMzYgMTEyTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxtR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvd2VyIixpY29uOls1MTIsNTEyLFsxMjg3MDNdLCJmMmNjIiwiTTY0IDEzMS45YzAtMTkuOCAxNi4xLTM1LjkgMzUuOS0zNS45IDkuNSAwIDE4LjYgMy44IDI1LjQgMTAuNWwxNi4yIDE2LjJjLTIxIDM4LjktMTcuNCA4Ny41IDEwLjkgMTIzTDE1MSAyNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwzNDUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTEuMyAxLjNjLTM1LjUtMjguMy04NC4xLTMxLjktMTIzLTEwLjlMMTcwLjUgNjEuM0MxNTEuOCA0Mi41IDEyNi40IDMyIDk5LjkgMzIgNDQuNyAzMiAwIDc2LjcgMCAxMzEuOUwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzE2LjF6TTI1NiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzItMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxxYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXVwIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXVwIl0sImYxNTEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDE2MGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3oiXX0sZ0d0PXFiZSxqYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uIixpY29uOls2NDAsNTEyLFsibWFwLW1hcmtlZCJdLCJmNTlmIiwiTTU3NiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEw0MTMuNSA3Ny41IDIzNC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM3MC44IDg4LjggNjQgOTkuOSA2NCAxMTJsMCAzNTJjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3My4zIDU3LjhjLTQuMy02LjQtOC41LTEzLjEtMTIuNi0xOS45LTExLTE4LjMtMjEuOS0zOS4zLTMwLTYxLjhsLTEwMS4yLTMzLjcgMC0yODQuNSAxMjggNDIuNyAwIDk5LjNjMzEtMzUuOCA3Ny01OC40IDEyOC01OC40IDIyLjYgMCA0NC4yIDQuNCA2NCAxMi41TDU3NiA0OHpNMzkyIDM0MS45YzAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOVMzOTIgMjc2LjggMzkyIDM0MS45eiJdfSxiR3Q9amJlLHZHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tZmFuY3kiLGljb246WzUxMiw1MTIsWzEyODM5NSwxMDAwMl0sImY1YWMiLCJNMzczLjUgMjcuMWMxNS0xNy4yIDM2LjctMjcuMSA1OS42LTI3LjEgNDMuNiAwIDc5IDM1LjQgNzkgNzkgMCAyMi44LTkuOSA0NC42LTI3LjEgNTkuNkwyODMuNyAzMTMuOCAyNzMgMzAzIDIwOSAyMzkgMTk4LjIgMjI4LjMgMzczLjUgMjcuMXpNMTYxLjEgMjU5QzE2MiAyNjAgMTg4IDI4NiAyMzkgMzM3bDEzLjkgMTMuOS0xNy4xIDc0LjJjLTMuOSAxNy4xLTE2LjkgMzAuNy0zMy44IDM1LjRsLTE2OS44IDQ3LjUgOTIuMy05Mi4zYzEuMiAuMSAyLjMgLjIgMy41IC4yIDE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJjMCAxLjIgLjEgMi40IC4yIDMuNUwzLjkgNDc5LjggNTEuNSAzMTBjNC43LTE2LjkgMTguMy0yOS45IDM1LjQtMzMuOEwxNjEuMSAyNTl6Il19LHhvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJldXJvLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjQsImV1ciIsImV1cm8iXSwiZjE1MyIsIk03My4zIDE5MkMxMDAuOCA5OS41IDE4Ni41IDMyIDI4OCAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy02NS42IDAtMTIyIDM5LjUtMTQ2LjcgOTZMMjcyIDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQzLjIgMGMtLjUgNS4zLS44IDEwLjYtLjggMTZzLjMgMTAuNyAuOCAxNkwyNzIgMjcyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMzAuNyAwYzI0LjcgNTYuNSA4MS4xIDk2IDE0Ni43IDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTEwMS41IDAtMTg3LjItNjcuNS0yMTQuNy0xNjBMNDAgMzIwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0LjYgMGMtLjctMTAuNS0uNy0yMS41IDAtMzJMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDMzLjMgMHoiXX0seEd0PXhvZSx5R3Q9eG9lLHdHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1MGIiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjIgNDcuMi0xNzUuOSAxMTQuOC01LTEuOC0xMC41LTIuOC0xNi4xLTIuOGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5MC45IDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjIgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek01NTUuMyAzNDAuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42eiJdfSxrR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlyYS1zaWduIixpY29uOlszODQsNTEyLFs4MzU2XSwiZjE5NSIsIk04NC45IDI1NmwtMjguNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExLjYgMEM1My4yIDEyNC43IDExNi44IDQyIDIwNy42IDQybDguMiAwYzMzLjYgMCA2Ni4yIDExLjMgOTIuNSAzMi4ybDE2LjEgMTIuN2MxMy45IDExIDE2LjIgMzEuMSA1LjIgNDVzLTMxLjEgMTYuMi00NSA1LjJsLTE2LjEtMTIuN2MtMTUtMTEuOS0zMy42LTE4LjQtNTIuOC0xOC40bC04LjIgMGMtNTMuOCAwLTkwLjEgNTIuOS03My41IDEwMmwxNjIuNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDUuMSAwYzIuMyAxMC42IDMuNiAyMS4zIDMuOSAzMmwxNDEuMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDE1MCAzMzZjLTQuOCAxOC42LTEyLjYgMzYuNS0yMy42IDUyLjlsLTE4LjEgMjcuMSAyMTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNzIgMGMtMTEuOCAwLTIyLjYtNi41LTI4LjItMTYuOXMtNS0yMyAxLjYtMzIuOWw1MS4yLTc2LjhjMy43LTUuNiA2LjktMTEuNCA5LjQtMTcuNGwtMjYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzNC44IDBjLS41LTEwLjgtMi42LTIxLjYtNi40LTMyeiJdfSxBYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5ZW4tc2lnbiIsaWNvbjpbMzg0LDUxMixbMTY1LCJjbnkiLCJqcHkiLCJybWIiLCJ5ZW4iXSwiZjE1NyIsIk03NC45IDQ2LjdjLTkuNi0xNC45LTI5LjQtMTkuMi00NC4yLTkuNlMxMS41IDY2LjQgMjEuMSA4MS4zTDE0My43IDI3MiA4OCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDMyLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtMzIgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTUuNyAwIDEyMi42LTE5MC43YzkuNi0xNC45IDUuMy0zNC43LTkuNi00NC4ycy0zNC43LTUuMy00NC4yIDkuNkwxOTIgMjI4LjggNzQuOSA0Ni43eiJdfSxTR3Q9QWIsX0d0PUFiLE1HdD1BYix6R3Q9QWIsQ0d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC1vcGVuIixpY29uOls2NDAsNTEyLFtdLCJmNDllIiwiTTU2MC4zIDIzNy4yYzEwLjQgMTEuOCAyOC4zIDE0LjQgNDEuOCA1LjUgMTQuNy05LjggMTguNy0yOS43IDguOS00NC40bC00OC03MmMtMi44LTQuMi02LjYtNy43LTExLjEtMTAuMkwzNTEuNCA0LjdjLTE5LjMtMTAuNy00Mi44LTEwLjctNjIuMiAwTDg4LjggMTE2Yy01LjQgMy05LjcgNy40LTEyLjYgMTIuOEwyNy43IDIxOC43Yy0xMi42IDIzLjQtMy44IDUyLjUgMTkuNiA2NS4xbDMzIDE3LjcgMCA1My4zYzAgMjMgMTIuNCA0NC4zIDMyLjQgNTUuN2wxNzYgOTkuN2MxOS42IDExLjEgNDMuNSAxMS4xIDYzLjEgMGwxNzYtOTkuN2MyMC4xLTExLjQgMzIuNC0zMi42IDMyLjQtNTUuN2wwLTExNy41em0tMjQwLTkuOEwxNzAuMiAxNDQgMzIwLjMgNjAuNiA0NzAuNCAxNDQgMzIwLjMgMjI3LjR6bS00MS41IDUwLjJsLTIxLjMgNDYuMi0xNjUuOC04OC44IDI1LjQtNDcuMiAxNjEuNyA4OS44eiJdfSxUR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZmllbGQiLGljb246WzY0MCw1MTIsW10sImU1OGQiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjI0IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDQwLjQgMGMzMi40IDAgNjEuNiAxOS42IDc0IDQ5LjVsNDMuOCAxMDYuMyAxLjcgNC4yIDI0LjcgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0uNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOGwtMTQ0LjcgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0zLjYgLjItNy4xIC42LTEwLjUtMTktNi40LTMyLjYtMjQuNC0zMi42LTQ1LjVsMC00OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTMyem0zNTIgMzJsMCA5NiA4Mi4xIDAtMzUuNC04Ni4xYy0yLjUtNi04LjMtOS45LTE0LjgtOS45TDM4NCAxMjh6TTE5MiAzOTJhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHptMjgwIDQwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sJEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbi1sb2NrIixpY29uOls1MTIsNTEyLFtdLCJlNTFmIiwiTTAgMTg4LjZDMCA4NC40IDg2IDAgMTkyIDAgMjk0LjEgMCAzNzcuNiA3OC4zIDM4My42IDE3NyAzMjAuNyAxODUuMSAyNzIgMjM4LjggMjcyIDMwNGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA3NS43Yy05LjkgMTEuNi0xOC45IDIxLjctMjYuNCAyOS44LTExLjggMTIuOC0zMS41IDEyLjgtNDMuMyAwLTUwLjItNTQuNS0xNzAuNC0xOTcuNS0xNzAuNC0zMTYuOHpNMTkyIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMjQwIDQ4LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0yODggNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxWYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXByYXlpbmciLGljb246WzM4NCw1MTIsWzEyODcyMCwicHJheSJdLCJmNjgzIiwiTTMyMCA2NGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTIwMC43IDI2NGwyMi45IDMxLjVjNi41IDguOSAxNi4zIDE0LjcgMjcuMiAxNi4xczIxLjktMS43IDMwLjQtOC43bDg4LTcyYzE3LjEtMTQgMTkuNi0zOS4yIDUuNi01Ni4zcy0zOS4yLTE5LjYtNTYuMy01LjZsLTU1LjIgNDUuMi0yNi4yLTM2Yy0xNS42LTIxLjUtNDAuNi0zNC4yLTY3LjItMzQuMi0zMC45IDAtNTkuMiAxNy4xLTczLjYgNDQuNEw0Ny44IDI4MC45Yy0yMC4yIDM4LjUtOS40IDg1LjkgMjUuNiAxMTEuOEwxMjYuNiA0MzIgNDAgNDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDIwOCAwYzE3LjMgMCAzMi42LTExLjEgMzgtMjcuNXMtLjMtMzQuNC0xNC4yLTQ0LjdsLTExNi4xLTg1LjggNDUtOTB6Il19LERHdD1WYmUsTEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC1saXN0IixpY29uOlszODQsNTEyLFtdLCJmNDZkIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyIDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNOTYgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sRUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhY2stZG9sbGFyIixpY29uOls1MTIsNTEyLFsxMjgxNzZdLCJmODFkIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0yNjAgMjI0Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMjE2IDM4NGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0sUEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluLXN1biIsaWNvbjpbNTc2LDUxMixbXSwiZTUyZiIsIk0yNTYuNSAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNS03LjIgMTIuMS0yMC4zIDE5LjUtMzQuMyAxOS41bC00MzIgMGMtMTQuMSAwLTI3LjEtNy40LTM0LjMtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwIDIuOS00LjZDMjMxLjcgNi4yIDI0My42IDAgMjU2LjUgMHpNMTcwLjQgMjQ5LjlsMjYuOCAyNi44YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDQzLjMtNDMuM2M2LTYgMTQuMS05LjQgMjIuNi05LjRsNDIuOCAwLTcyLjEtMTMzLjUtODYuMSAxNTkuNHpNNDk2LjUgMTYwYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxVYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtd2lkZS1zaG9ydCIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LXVwIl0sImYxNjEiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2ek0zMjAgNDgwbDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyeiJdfSxJR3Q9VWJlLEFHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTkyIiwiTTIyNCAxMjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xNzYgMzM2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJsMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC04ek0zOTIgMTQ0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjcuMiAxMDAuNGM5LjEtMi45IDE4LjgtNC40IDI4LjgtNC40IDUzIDAgOTYgNDMgOTYgOTZsMCAxMC43YzAgMTEuOC05LjYgMjEuMy0yMS4zIDIxLjNsLTc4LjggMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLThjMC0zNC4xLTEwLjYtNjUuNy0yOC44LTkxLjZ6bS0yNjIuNCAwYy0xOC4yIDI2LTI4LjggNTcuNS0yOC44IDkxLjZsMCA4YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNzguOCAwQzQxLjYgMzY4IDMyIDM1OC40IDMyIDM0Ni43TDMyIDMzNmMwLTUzIDQzLTk2IDk2LTk2IDEwIDAgMTkuNyAxLjUgMjguOCA0LjR6TTcyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTAgNDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDQ2NGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LE5HdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLW9mLWRhdmlkIixpY29uOls1MTIsNTEyLFsxMDAxN10sImY2OWEiLCJNNDE1LjkgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0zODMuNiAyNTZsLTYwLjItMTA0LTEzNC44IDAtNjAuMiAxMDQgNjAuMiAxMDQgMTM0LjggMCA2MC4yLTEwNHptNjQuNyAwbDU4LjQgMTAwLjljMy41IDYgNS4zIDEyLjggNS4zIDE5LjcgMCAyMS43LTE3LjYgMzkuNC0zOS40IDM5LjRsLTExNyAwLTYxLjMgMTA1LjhDMjg2LjUgNTM1LjYgMjcxLjggNTQ0IDI1NiA1NDRzLTMwLjUtOC40LTM4LjQtMjIuMmwtNjEuMy0xMDUuOC0xMTcgMGMtMjEuNyAwLTM5LjQtMTcuNi0zOS40LTM5LjQgMC02LjkgMS44LTEzLjcgNS4zLTE5LjdMNjMuNyAyNTYgNS4zIDE1NS4xQzEuOCAxNDkuMSAwIDE0Mi4zIDAgMTM1LjQgMCAxMTMuNiAxNy42IDk2IDM5LjQgOTZsMTE3IDAgNjEuMy0xMDUuOEMyMjUuNS0yMy42IDI0MC4yLTMyIDI1Ni0zMnMzMC41IDguNCAzOC40IDIyLjJsNjEuMyAxMDUuOCAxMTcgMGMyMS43IDAgMzkuNCAxNy42IDM5LjQgMzkuNCAwIDYuOS0xLjggMTMuNy01LjMgMTkuN0w0NDguMyAyNTZ6TTM4OC4xIDE1MmwyNy44IDQ4LjEgMjcuOC00OC4xLTU1LjcgMHpNMjkxIDk2bC0zNS02MC40LTM1IDYwLjQgNzAgMHpNMTIzLjkgMTUybC01NS43IDAgMjcuOCA0OC4xIDI3LjgtNDguMXpNOTYuMSAzMTEuOWwtMjcuOCA0OC4xIDU1LjcgMC0yNy44LTQ4LjF6TTIyMSA0MTZsMzUgNjAuNCAzNS02MC40LTcwIDB6Il19LFJHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3Rlcy1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmNDgxIiwiTTk2IDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODEuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My4zIDI5MC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTEyIDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAwQzEyNC43IDAgOTYgMjguNyA5NiA2NGwwIDI4OHpNMjg4IDExMmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMjh6Il19LE9HdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdXN0cmFsLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUwYTkiLCJNMjY2LjUgMjQwbC04NSAwIDQyLjUtMTA2LjQgNDIuNSAxMDYuNHptNjguOSAwTDI2Mi45IDU4LjNDMjU2LjUgNDIuNCAyNDEuMSAzMiAyMjQgMzJzLTMyLjUgMTAuNC0zOC45IDI2LjNMMTEyLjYgMjQwIDMyIDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2MS40IDAtMTkuMiA0OC00Mi4zIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjMuMSAwLTIwLjggNTIuMWMtNi42IDE2LjQgMS40IDM1IDE3LjkgNDEuNnMzNS0xLjQgNDEuNi0xNy45bDMwLjMtNzUuOSAyMDAgMCAzMC4zIDc1LjljNi42IDE2LjQgMjUuMiAyNC40IDQxLjYgMTcuOXMyNC40LTI1LjIgMTcuOS00MS42TDM5Mi45IDM4NCA0MTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00Mi4zIDAtMTkuMi00OCA2MS40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwLjYgMHptLTQ5LjcgNDhsMTkuMiA0OC0xNjEuNiAwIDE5LjItNDggMTIzLjMgMHoiXX0sRkd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC11c2VyIixpY29uOlszODQsNTEyLFtdLCJmN2YzIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xOTIgMzQ0YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek05OC4zIDQxM2MtMTIuOSAxNS42IDIuMiAzNSAyMi40IDM1bDE0Mi41IDBjMjAuMiAwIDM1LjMtMTkuNCAyMi40LTM1LTE0LjctMTcuNy0zNi45LTI5LTYxLjctMjlsLTY0IDBjLTI0LjggMC00NyAxMS4zLTYxLjcgMjl6Il19LEJHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWltYWdlIixpY29uOlszODQsNTEyLFsxMjg0NDNdLCJmMWM1IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTkyLjYgNDQ4bDE5OC44IDBjMTUuOCAwIDI4LjYtMTIuOCAyOC42LTI4LjYgMC03LjMtMi44LTE0LjQtNy45LTE5LjdMMjE1LjMgMjk3LjljLTYtNi4zLTE0LjQtOS45LTIzLjItOS45bC0uMyAwYy04LjggMC0xNy4xIDMuNi0yMy4yIDkuOUw3MS45IDM5OS43QzY2LjggNDA1IDY0IDQxMi4xIDY0IDQxOS40IDY0IDQzNS4yIDc2LjggNDQ4IDkyLjYgNDQ4eiJdfSxXYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXJpZ2h0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXJpZ2h0Il0sImYxNTIiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNFMxNjAgMzY5LjUgMTYwIDM2MGwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnoiXX0sSEd0PVdiZSxxR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbCIsaWNvbjpbNTEyLDUxMixbMTI5NTE0XSwiZjQ5MiIsIk0zNDIuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDMwNi43IDY0IDI4LjEgMzQyLjZDMTAuMSAzNjAuNiAwIDM4NSAwIDQxMC41TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsNS41IDBjMjUuNSAwIDQ5LjktMTAuMSA2Ny45LTI4LjFsMjc4LjYtMjc4LjYgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwek0yMDUuMyAyNTZsMTQ2LjctMTQ2LjcgNTAuNyA1MC43LTk2IDk2LTEwMS41IDB6Il19LGpHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxpY29wdGVyIixpY29uOls1NzYsNTEyLFsxMjg2NDFdLCJmNTMzIiwiTTE3NiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNTIgMCAwIDQ4LTIyMC44IDAtMzIuOC0zOS40QzY5LjkgODMuMiA2My4xIDgwIDU2IDgwTDI0IDgwQzE1LjcgODAgOCA4NC4zIDMuNiA5MS40cy00LjggMTUuOS0xLjEgMjMuNGw0OCA5NkM1NC42IDIxOC45IDYyLjkgMjI0IDcyIDIyNGwxMDcuOCAwIDEwNCAxNDMuMWMxNS4xIDIwLjcgMzkuMSAzMi45IDY0LjcgMzIuOWw3NS41IDBjNzUuMSAwIDEzNi02MC45IDEzNi0xMzZTNDk5LjEgMTI4IDQyNCAxMjhsLTQ4IDAgMC00OCAxNTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxNzYgMzJ6TTM3NiAxOTJsNDggMGMzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3MmwtNDggMCAwLTE0NHpNNTUyIDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCA0LjQtMy42IDgtOCA4bC0yNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sVkd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pdHRlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjdiNSIsIk0zNTIgMzg0TDY0IDM4NCA1LjQgMTc4LjlDMS44IDE2Ni40IDAgMTUzLjQgMCAxNDAuMyAwIDYyLjggNjIuOCAwIDE0MC4zIDBsMy40IDBjNjYgMCAxMjMuNSA0NC45IDEzOS41IDEwOC45bDMxLjQgMTI1LjggMTcuNi0yMC4xQzM0NC44IDIwMC4yIDM2Mi45IDE5MiAzODIgMTkybDIuOCAwYzM0LjkgMCA2My4zIDI4LjMgNjMuMyA2My4zIDAgMTUuOS02IDMxLjItMTYuOCA0Mi45TDM1MiAzODR6TTMyIDQ2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sVUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdhcy1wdW1wIixpY29uOls1MTIsNTEyLFs5OTgxXSwiZjUyZiIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyIDggMGM0OC42IDAgODggMzkuNCA4OCA4OGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNTRjLTI3LjYtNy4xLTQ4LTMyLjItNDgtNjJsMC01OS41LTI1LjgtMjguM2MtOC45LTkuOC04LjItMjUgMS42LTMzLjlzMjUtOC4yIDMzLjkgMS42bDcxLjcgNzguOGM5LjQgMTAuMyAxNC42IDIzLjcgMTQuNiAzNy43TDUxMiAzNzZjMCAzOS44LTMyLjIgNzItNzIgNzJzLTcyLTMyLjItNzItNzJsMC0zMmMwLTIyLjEtMTcuOS00MC00MC00MGwtOCAwIDAgMTYxLjRjOS4zIDMuMyAxNiAxMi4yIDE2IDIyLjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjUgNi43LTE5LjMgMTYtMjIuNkwzMiA2NHpNOTYgODBsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2TDExMiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxXR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNGU4IiwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OGw0MTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgxLjRjLTI0LjQtMTEuMi01MS40LTE3LjQtODAtMTcuNC04Ny43IDAtMTYxLjcgNTguOC0xODQuNyAxMzkuMi03LjEtMS4zLTE0LjEtNC4yLTIwLjEtOC44bC0yMDgtMTU2QzcxLjEgMTQxLjMgNjQgMTI3LjEgNjQgMTEyek0zMDQgMzY4YzAgMjguNiA2LjIgNTUuNiAxNy40IDgwTDEyOCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTg4IDE5OC40IDE0OC44YzEyLjYgOS40IDI2LjkgMTUuNCA0MS43IDE3LjkgMCAxLjgtLjEgMy41LS4xIDUuM3ptNDggMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0sR2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2F0aW5nIixpY29uOls1MTIsNTEyLFsic2thdGluZyJdLCJmN2M1IiwiTTM2OCA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTEyOCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTUwLjEgMGM0OS45IDAgNzQuOSA2MC4zIDM5LjYgOTUuNmwtNjMuOSA2My45IDY5LjggMzFjMTcuMyA3LjcgMjguNSAyNC45IDI4LjUgNDMuOWwwIDg1LjZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC03NS4yLTgyLjQtMzYuNmMtNDEtMTguMi01MS03Mi0xOS4zLTEwMy43bDQwLjQtNDAuNC05OC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek04OS40IDM2MS40bDc1LjktNzUuOWM3LjcgMTkuNyAyMS42IDM3LjMgNDEgNDkuNmwtNzEuNiA3MS42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3ptMzQ2LjUgODcuMWM4LjYgMi4xIDEzLjggMTAuOCAxMS42IDE5LjRsLS40IDEuN2MtNi4yIDI0LjktMjguNiA0Mi40LTU0LjMgNDIuNEwzMDQgNTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDg4LjggMGMxMSAwIDIwLjYtNy41IDIzLjMtMTguMmwuNC0xLjdjMi4xLTguNiAxMC44LTEzLjggMTkuNC0xMS42ek0xNDMuMiA0ODYuM2wtNi4yIDMuMWMtMjEuNiAxMC44LTQ3LjYgNi42LTY0LjYtMTAuNUwxMi43IDQxOS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsNTkuNiA1OS42YzcuMyA3LjMgMTguNSA5LjEgMjcuNyA0LjVsNi4yLTMuMWM3LjktNCAxNy41LS43IDIxLjUgNy4ycy43IDE3LjUtNy4yIDIxLjV6Il19LEdHdD1HYmUsVWI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VuIixpY29uOls1NzYsNTEyLFs5NzI4XSwiZjE4NSIsIk0yODgtMzJjOC40IDAgMTYuMyA0LjQgMjAuNiAxMS43TDM2NC4xIDcyLjMgNDY4LjkgNDZjOC4yLTIgMTYuOSAuNCAyMi44IDYuM1M1MDAgNjcgNDk4IDc1LjFsLTI2LjMgMTA0LjcgOTIuNyA1NS41YzcuMiA0LjMgMTEuNyAxMi4yIDExLjcgMjAuNnMtNC40IDE2LjMtMTEuNyAyMC42TDQ3MS43IDMzMi4xIDQ5OCA0MzYuOGMyIDguMi0uNCAxNi45LTYuMyAyMi44UzQ3NyA0NjggNDY4LjkgNDY2bC0xMDQuNy0yNi4zLTU1LjUgOTIuN2MtNC4zIDcuMi0xMi4yIDExLjctMjAuNiAxMS43cy0xNi4zLTQuNC0yMC42LTExLjdMMjExLjkgNDM5LjcgMTA3LjIgNDY2Yy04LjIgMi0xNi44LS40LTIyLjgtNi4zUzc2IDQ0NSA3OCA0MzYuOGwyNi4yLTEwNC43LTkyLjYtNTUuNUM0LjQgMjcyLjIgMCAyNjQuNCAwIDI1NnM0LjQtMTYuMyAxMS43LTIwLjZMMTA0LjMgMTc5LjkgNzggNzUuMWMtMi04LjIgLjMtMTYuOCA2LjMtMjIuOFM5OSA0NCAxMDcuMiA0NmwxMDQuNyAyNi4yIDU1LjUtOTIuNiAxLjgtMi42YzQuNS01LjcgMTEuNC05LjEgMTguOC05LjF6bTAgMTQ0YTE0NCAxNDQgMCAxIDAgMCAyODggMTQ0IDE0NCAwIDEgMCAwLTI4OHptMCAyNDBhOTYgOTYgMCAxIDEgMC0xOTIgOTYgOTYgMCAxIDEgMCAxOTJ6Il19LEtiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNlYmFsbCIsaWNvbjpbNTEyLDUxMixbMTI5MzU4LDk5MTgsImJhc2ViYWxsLWJhbGwiXSwiZjQzMyIsIk0yMzIuNCAxLjFjLTEyMi4yIDExLjQtMjE5LjUgMTA4LjctMjMwLjkgMjMwLjkgMTYuMi0uMSAzMi0xLjggNDcuMi01IDEzLTIuNyAyNS43IDUuNSAyOC40IDE4LjVzLTUuNSAyNS43LTE4LjUgMjguNGMtMTguNCAzLjktMzcuNiA2LTU3LjEgNi4xIDExLjQgMTIyLjIgMTA4LjcgMjE5LjUgMjMwLjkgMjMwLjkgLjEtMTkuNSAyLjItMzguNyA2LjEtNTcuMSAyLjctMTMgMTUuNS0yMS4zIDI4LjQtMTguNXMyMS4zIDE1LjUgMTguNSAyOC40Yy0zLjIgMTUuMi00LjkgMzEtNSA0Ny4yIDEyMi4yLTExLjQgMjE5LjUtMTA4LjcgMjMwLjktMjMwLjktMTYuMiAuMS0zMiAxLjgtNDcuMiA1LTEzIDIuNy0yNS43LTUuNS0yOC40LTE4LjVzNS41LTI1LjcgMTguNS0yOC40YzE4LjQtMy45IDM3LjYtNiA1Ny4xLTYuMS0xMS40LTEyMi4yLTEwOC43LTIxOS41LTIzMC45LTIzMC45LS4xIDE5LjUtMi4yIDM4LjctNi4xIDU3LjEtMi43IDEzLTE1LjUgMjEuMy0yOC40IDE4LjVzLTIxLjMtMTUuNS0xOC41LTI4LjRjMy4yLTE1LjIgNC45LTMxIDUtNDcuMnptMi44IDE1MS40Yy0yMS40IDMyLjktNDkuNSA2MC45LTgyLjMgODIuMy0xMS4xIDcuMi0yNiA0LjEtMzMuMi03cy00LjEtMjYgNy0zMy4yYzI3LjItMTcuNyA1MC41LTQxIDY4LjMtNjguMyA3LjItMTEuMSAyMi4xLTE0LjMgMzMuMi03czE0LjMgMjIuMSA3IDMzLjJ6TTM5My4xIDI4NC4yYzcuMiAxMS4xIDQuMSAyNi03IDMzLjItMjcuMiAxNy43LTUwLjUgNDEtNjguMyA2OC4zLTcuMiAxMS4xLTIyLjEgMTQuMy0zMy4yIDdzLTE0LjMtMjIuMS03LTMzLjJjMjEuNC0zMi45IDQ5LjUtNjAuOSA4Mi4zLTgyLjMgMTEuMS03LjIgMjYtNC4xIDMzLjIgN3oiXX0sS0d0PUtiZSxZR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2UiLGljb246WzQ0OCw1MTIsW10sImYwM2UiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgODBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek0yNzIgMjI0YzguNCAwIDE2LjEgNC40IDIwLjUgMTEuNWw4OCAxNDRjNC41IDcuNCA0LjcgMTYuNyAuNSAyNC4zUzM2OC43IDQxNiAzNjAgNDE2TDg4IDQxNmMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwyNi40IDM3LjggNjEuNC0xMDAuNWM0LjQtNy4xIDEyLjEtMTEuNSAyMC41LTExLjV6Il19LFpHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3RkZWYiLGljb246WzM4NCw1MTIsW10sImUxZmUiLCJNNjQgMzkwLjNMMTUzLjUgMjU2IDY0IDEyMS43IDY0IDM5MC4zek0xMDIuNSA0NDhMMjgxLjUgNDQ4IDE5MiAzMTMuNyAxMDIuNSA0NDh6bTEyOC0xOTJMMzIwIDM5MC4zIDMyMCAxMjEuNyAyMzAuNSAyNTZ6TTI4MS41IDY0TDEwMi41IDY0IDE5MiAxOTguMyAyODEuNSA2NHpNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4eiJdfSxZYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTM2LCJiYXNrZXRiYWxsLWJhbGwiXSwiZjQzNCIsIk05Mi43IDU4LjhsNzguNCA3OC40YzE4LjItMjUgMjguOS01NS45IDI4LjktODkuMiAwLTE0LjEtMS45LTI3LjctNS41LTQwLjYtMzggOS40LTcyLjYgMjcuMi0xMDEuOCA1MS40ek01OC44IDkyLjdjLTI0LjIgMjkuMi00MiA2My44LTUxLjQgMTAxLjggMTIuOSAzLjYgMjYuNSA1LjUgNDAuNiA1LjUgMzMuMyAwIDY0LjEtMTAuNyA4OS4yLTI4LjlMNTguOCA5Mi43ek0yNTYgMGMtNC42IDAtOS4yIC4xLTEzLjcgLjQgMy43IDE1LjMgNS43IDMxLjIgNS43IDQ3LjYgMCA0Ni42LTE1LjkgODkuNC00Mi42IDEyMy40TDI1NiAyMjIuMSA0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMHpNNDggMjQ4Yy0xNi40IDAtMzIuNC0yLTQ3LjYtNS43LS4yIDQuNS0uNCA5LjEtLjQgMTMuNyAwIDYyLjEgMjIuMSAxMTguOSA1OC44IDE2My4zTDIyMi4xIDI1NiAxNzEuNCAyMDUuNEMxMzcuNCAyMzIuMSA5NC42IDI0OCA0OCAyNDh6bTQ2My42IDIxLjdjLjItNC41IC40LTkuMSAuNC0xMy43IDAtNjIuMS0yMi4xLTExOC45LTU4LjgtMTYzLjNMMjg5LjkgMjU2IDM0MC42IDMwNi42YzM0LTI2LjcgNzYuOS00Mi42IDEyMy40LTQyLjYgMTYuNCAwIDMyLjQgMiA0Ny42IDUuN3ptLTcuMSA0Ny44Yy0xMi45LTMuNi0yNi41LTUuNS00MC42LTUuNS0zMy4zIDAtNjQuMSAxMC43LTg5LjIgMjguOWw3OC40IDc4LjRjMjQuMi0yOS4yIDQyLTYzLjggNTEuNC0xMDEuOHpNMzQwLjkgMzc0LjhjLTE4LjIgMjUtMjguOSA1NS45LTI4LjkgODkuMiAwIDE0LjEgMS45IDI3LjcgNS41IDQwLjYgMzgtOS40IDcyLjYtMjcuMiAxMDEuOC01MS40bC03OC40LTc4LjR6bS0zNC4zLTM0LjNMMjU2IDI4OS45IDkyLjcgNDUzLjJjNDQuMyAzNi43IDEwMS4yIDU4LjggMTYzLjMgNTguOCA0LjYgMCA5LjItLjEgMTMuNy0uNC0zLjctMTUuMy01LjctMzEuMi01LjctNDcuNiAwLTQ2LjYgMTUuOS04OS40IDQyLjYtMTIzLjR6Il19LFhHdD1ZYmUsWmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbmNpbCIsaWNvbjpbNTEyLDUxMixbOTk5OSw2MTUwNCwicGVuY2lsLWFsdCJdLCJmMzAzIiwiTTM2LjQgMzUzLjJjNC4xLTE0LjYgMTEuOC0yNy45IDIyLjYtMzguN2wxODEuMi0xODEuMiAzMy45LTMzLjljMTYuNiAxNi42IDUxLjMgNTEuMyAxMDQgMTA0bDMzLjkgMzMuOS0zMy45IDMzLjktMTgxLjIgMTgxLjJjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTEwLjZjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4yUy0xLjQgNDg5LjMgLjkgNDgxTDM2LjQgMzUzLjJ6bTU1LjYtMy43Yy00LjQgNC43LTcuNiAxMC40LTkuMyAxNi42bC0yNC4xIDg2LjkgODYuOS0yNC4xYzYuNC0xLjggMTIuMi01LjEgMTctOS43TDkxLjkgMzQ5LjV6bTM1NC0xNDYuMWMtMTYuNi0xNi42LTUxLjMtNTEuMy0xMDQtMTA0TDMwOCA2NS41QzMzNC41IDM5IDM0OS40IDI0LjEgMzUyLjkgMjAuNiAzNjYuNCA3IDM4NC44LS42IDQwNC0uNlM0NDEuNiA3IDQ1NS4xIDIwLjZsMzUuNyAzNS43QzUwNC40IDY5LjkgNTEyIDg4LjMgNTEyIDEwNy40cy03LjYgMzcuNi0yMS4yIDUxLjFjLTMuNSAzLjUtMTguNCAxOC40LTQ0LjkgNDQuOXoiXX0sUUd0PVpiZSxKR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctYXJyb3ctbG9vcC1sZWZ0IixpY29uOls2NDAsNTEyLFtdLCJlNTUxIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNMzU5IDMzNWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAxMDIuMSAwYzEuMiAwIDIuNC0uMSAzLjUtLjMgNTYuMS0zLjkgMTAwLjUtNTAuNiAxMDAuNS0xMDcuNyAwLTU5LjYtNDguNC0xMDgtMTA4LTEwOGwtOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5MiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC05OC4xIDAgMzEtMzFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNzIgNzJ6Il19LGVLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXNpeCIsaWNvbjpbNDQ4LDUxMixbOTg2MV0sImY1MjYiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxYYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLWRvd24iLGljb246WzM4NCw1MTIsWyJhbmdsZS1kb3VibGUtZG93biJdLCJmMTAzIiwiTTIxNC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgNDAyLjcgMzI5LjQgMjY1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MHptMTYwLTM1MmwtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTkyIDIxMC43IDMyOS40IDczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3oiXX0sdEt0PVhiZSxhS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3lyaW5nZSIsaWNvbjpbNTc2LDUxMixbMTI4MTM3XSwiZjQ4ZSIsIk00OTcuNS0xN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNSAxNS00Ni4xIDQ2LjEtNjMtNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNyA3LTc4LjEgNzguMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00MS00MS00Ni4xIDQ2LjEgNDEgNDFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDEtNDEtMzcuNyAzNy43Yy0xMC41IDEwLjUtMTYuNCAyNC43LTE2LjQgMzkuNmwwIDg4LjgtNTcgNTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1Ny01NyA4OC44IDBjMTQuOSAwIDI5LjEtNS45IDM5LjYtMTYuNGwyMjkuNy0yMjkuNyA3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyA0Ni4xLTQ2LjEgMTUgMTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NC02NHoiXX0sUWJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWF0LWF3biIsaWNvbjpbNTc2LDUxMixbIndoZWF0LWFsdCJdLCJlMmNkIiwiTTc5LjcgMjM0LjZjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4yIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2w0Ni4xIDQ2LjFjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMEwxMzQuMSA0NDQuMyA0OS40IDUyOWMtOS40IDkuNC0yNC41IDkuNC0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXptMTA0LTEwNGM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwbC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTQ5NS4yIDE1YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4yTDUyOS4yIDQ5IDQxNC43IDE2My40YzcuNyAxIDE1LjIgMyAyMi41IDUuOUw0OTUuNSAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01OC4zIDU4LjNjMi44IDcuMSA0LjcgMTQuNSA1LjcgMjIuMUw0OTUuMiAxNXoiXX0sc0t0PVFiZSxpS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtdXAiLGljb246WzUxMiw1MTIsW10sImUyMmQiLCJNMjAwIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyAxNzMuNiAxNTkuMmM2LjYgNi4xIDEwLjQgMTQuNiAxMC40IDIzLjZsMCA0My43YzAgMTAuOS0xMC43IDE4LjYtMjEuMSAxNS4ybC0xNjIuOS01NC4zIDAgOTkuNyA2NiA1Mi44YzMuOCAzIDYgNy42IDYgMTIuNWwwIDE5LjhjMCAxMC40LTkuOCAxOC0xOS45IDE1LjVMMjU2IDUxMiAxNDcuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0MyNi43IDM5Ni40IDE2IDM4OC43IDE2IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIwMCAxNTEuMyAyMDAgMjR6Il19LHJLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1jZW50ZXIiLGljb246WzQ0OCw1MTIsW10sImYwMzciLCJNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDEyOCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptOTYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzUyIDMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6Il19LG9LdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2NrZXktcHVjayIsaWNvbjpbNTEyLDUxMixbXSwiZjQ1MyIsIk0yNTYgMjU2QzExNC42IDI1NiAwIDIxMyAwIDE2MHMxMTQuNi05NiAyNTYtOTYgMjU2IDQzIDI1NiA5Ni0xMTQuNiA5Ni0yNTYgOTZ6TTAgMzUyTDAgMjQyLjdjMTYuOSAxMi4zIDM3IDIyLjIgNTguMSAzMC4xIDUzIDE5LjkgMTIzIDMxLjIgMTk3LjkgMzEuMnMxNDQuOS0xMS4zIDE5Ny45LTMxLjJjMjEuMi03LjkgNDEuMi0xNy44IDU4LjEtMzAuMUw1MTIgMzUyYzAgNTMtMTE0LjYgOTYtMjU2IDk2UzAgNDA1IDAgMzUyeiJdfSxKYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtbGVmdCJdLCJmMGE4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMzUgMjM5bDgwLTgwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzkgMzkgMTUwLjEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTUwLjEgMCAzOSAzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC04MC04MGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LG5LdD1KYmUsbEt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWJvbHQiLGljb246WzY0MCw1MTIsW10sImU1NWIiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFM0MzMuMiA0MTYgNDQwIDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM1NTguOCAzODQgNTUyIDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LGNLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXN0cm9vbSIsaWNvbjpbNjQwLDUxMixbXSwiZjdiZCIsIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNTQuOGMtOC4xIDkuMi0yMS4xIDEzLjItMzMuNSA5LjQtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQ0LjQgMTU2LjkgODMuNiAxMjggMTI4IDEyOHM4My42IDI4LjkgOTYuOCA3MS4ybDI5LjcgOTUuMmM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xLTEyLjQgMy45LTI1LjQtLjItMzMuNS05LjRMMjAwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwek0zMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ2NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDY0IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTQ0MCA0ODBsMC05Ni0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDktMjYuOWMtMy4yIDAtNi40LS41LTkuNS0xLjUtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQyOC40IDE1Ni45IDQ2Ny42IDEyOCA1MTIgMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMy4yIDEtNi40IDEuNS05LjUgMS41bDkgMjYuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyeiJdfSxkS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YWQiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDI4LjMgMCA1NS40LTUuNyA4MC0xNS45bDAtLjIgMC03Mi4yYy0xNC40IDkuNi0zMC42IDE2LjctNDggMjAuN2wwLTI1Ny45YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjcyIDMwNC4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYuNSA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6Il19LHVLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aW1lbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTI5YyIsIk0xNjAgMTY5LjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MFM0OCA1MS44IDQ4IDk2YzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCA1NC43LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDAgMCA1NC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTU0LjcgMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC01NC43YzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctMjU2IDAgMC01NC43eiJdfSxwS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlnaHRidWxiIixpY29uOlszODQsNTEyLFsxMjgxNjFdLCJmMGViIiwiTTI5Mi45IDM4NGM3LjMtMjIuMyAyMS45LTQyLjUgMzguNC01OS45IDMyLjctMzQuNCA1Mi43LTgwLjkgNTIuNy0xMzIuMSAwLTEwNi04Ni0xOTItMTkyLTE5MlMwIDg2IDAgMTkyYzAgNTEuMiAyMCA5Ny43IDUyLjcgMTMyLjEgMTYuNSAxNy40IDMxLjIgMzcuNiAzOC40IDU5LjlsMjAxLjcgMHpNMjg4IDQzMmwtMTkyIDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMTZ6TTE4NCAxMTJjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxldmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LXJpZ2h0IixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLXJpZ2h0Il0sImYwYTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTQxLTE1OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzOS0zOS0xNTAuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE1MC4xIDAtMzktMzljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODAgODB6Il19LGhLdD1ldmUsZkt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzIixpY29uOls1MTIsNTEyLFs5ODkzXSwiZjIyNCIsIk0zNjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM0LjctNjMgNjNjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDg2LjMtNjIuMSAxNTguMS0xNDQgMTczLjFsMCAzNC45IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM0LjljLTgxLjktMTUtMTQ0LTg2LjgtMTQ0LTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2IDM3IDAgNzEuNCAxMS40IDk5LjggMzFsNjMtNjMtMzQuNyAwek0zNTIgMjA4YTExMiAxMTIgMCAxIDAgLTIyNCAwIDExMiAxMTIgMCAxIDAgMjI0IDB6Il19LFdiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldHdvcmstd2lyZWQiLGljb246WzU3Niw1MTIsW10sImY2ZmYiLCJNMjQ4IDg4bDgwIDAgMCA0OC04MCAwIDAtNDh6bS04LTU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDAgMCAzMi0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMzItMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDAgMC0zMiAxOTIgMCAwIDMyLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwIDAtMzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0zMiAxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTk2IDB6TTQ0OCAzNzZsOCAwIDAgNDgtODAgMCAwLTQ4IDcyIDB6bS0yNTYgMGw4IDAgMCA0OC04MCAwIDAtNDggNzIgMHoiXX0sbUt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRkOCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBjLTEyLjUtMTQuNy0yMy4yLTMwLjgtMzEuOC00OGwtODkuNSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMCAwLTI2LjdjMC0xOC4xIDYuMS0zNS4yIDE2LjYtNDguOC0uNC0xLjQtLjYtMi45LS42LTQuNWwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDEgODYuNy0yOC45YzMuMS0xIDYuMi0xLjggOS4zLTIuNUw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQ0NS4zIDQ4OC41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sZ0t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUiLGljb246WzU3Niw1MTIsW10sImYxMjEiLCJNMzYwLjggMS4yYy0xNy00LjktMzQuNyA1LTM5LjYgMjJsLTEyOCA0NDhjLTQuOSAxNyA1IDM0LjcgMjIgMzkuNnMzNC43LTUgMzkuNi0yMmwxMjgtNDQ4YzQuOS0xNy01LTM0LjctMjItMzkuNnptNjQuNiAxMzYuMWMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNzMuNCA3My40LTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tMjc0LjcgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDE1MC42IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zeiJdfSx0dmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlci1wb2ludGVkIixpY29uOls1MTIsNTEyLFsiZmVhdGhlci1hbHQiXSwiZjU2YiIsIk00NzUuMyAuMWM5LjktLjggMTkuNiAzIDI2LjYgMTBzMTAuOCAxNi43IDEwIDI2LjZjLTQgNDkuMy0xNy40IDEyNi4yLTQ2LjMgMTk5LjctMS44IDQuNS01LjUgNy45LTEwLjIgOS4zTDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDM4LjYgMGMxMiAwIDE5LjcgMTIuOCAxMy41IDIzLjEtNCA2LjctOC4zIDEzLjItMTIuNyAxOS42LTIgMi45LTUgNS04LjQgNi4xTDMxMC41IDM2NmMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDE2IDBjMTQuNiAwIDIxIDE3LjQgOC44IDI1LjQtNjggNDUtMTM3LjcgNDMuMy0xODIuNCAzMS4zLTEyLjctMy40LTI0LTkuOS0zNC40LTE3LjlMNDggNDk2Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJsODAtODAgLjUgLjVjLjctMS4zIDEuNi0yLjUgMi43LTMuNkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw4OS43IDMyNi4yYy04LjkgOC45LTI0IDQuNC0yNS04LjItNC4zLTUzLjIgOS4zLTEyMy4xIDcyLjYtMTg2LjQgOTEuMS05MS4xIDI1NC4yLTEyNC43IDMzNy45LTEzMS41eiJdfSxiS3Q9dHZlLHZLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LHhLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduYXR1cmUiLGljb246WzY0MCw1MTIsW10sImY1YjciLCJNMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNy44YzAgMjcuNy0yLjQgNTUuMy03LjEgODIuNWwtODQuNCAyNS4zYy00MC42IDEyLjItNjguNCA0OS42LTY4LjQgOTJsMCAzMi40LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIuNSAwYzQuMiAzNiAzNC44IDY0IDcyIDY0IDI2IDAgNTAtMTMuOSA2Mi45LTM2LjVsMTMuOS0yNC4zYzI2LjgtNDcgNDYuNS05Ny43IDU4LjQtMTUwLjVsOTQuNC0yOC4zLTEyLjUgMzcuNWMtMy4zIDkuOC0xLjYgMjAuNSA0LjQgMjguOFM0MDUuNyAzMjAgNDE2IDMyMGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODMuNiAwIDE4LTUzLjljMy44LTExLjMgLjktMjMuOC03LjQtMzIuNHMtMjAuNy0xMS44LTMyLjItOC40TDMxNi40IDE5OC4xYzIuNC0yMC43IDMuNi00MS40IDMuNi02Mi4zbDAtNy44YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyem0tOS4yIDE3N2w0OS0xNC43Yy0xMC40IDMzLjgtMjQuNSA2Ni40LTQyLjEgOTcuMmwtMTMuOSAyNC4zYy0xLjUgMi42LTQuMyA0LjMtNy40IDQuMy00LjcgMC04LjUtMy44LTguNS04LjVsMC03MS45YzAtMTQuMSA5LjMtMjYuNiAyMi44LTMwLjd6TTYxNiA0MTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI5Mi45IDBjLTYuNSAxNi4zLTEzLjcgMzIuMy0yMS42IDQ4TDYxNiA0MTZ6Il19LGVTPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWFtZXJpY2FzIixpY29uOls1MTIsNTEyLFsxMjc3NTgsImVhcnRoIiwiZWFydGgtYW1lcmljYSIsImdsb2JlLWFtZXJpY2FzIl0sImY1N2QiLCJNNTUuNyAxOTkuN2wzMC45IDMwLjljNiA2IDE0LjEgOS40IDIyLjYgOS40bDIxLjUgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMzcuNWMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxMy4zIDEzLjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMTguN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMi43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ1LjMtNDUuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0zNC43YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDM0LjcgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0xOS43LTE5LjdDMjQyIDEzMCAyNDAgMTI1LjEgMjQwIDEyMHMyLTEwIDUuNy0xMy43bDE3LjMtMTcuM2M1LjgtNS44IDkuMS0xMy43IDkuMS0yMS45IDAtNy4yLTIuNC0xMy43LTYuNC0xOC45LTMuMi0uMS02LjQtLjItOS42LS4yLTk1LjQgMC0xNzUuNyA2NC4yLTIwMC4zIDE1MS43ek00NjQgMjU2YzAtMzQuNi04LjQtNjcuMi0yMy40LTk1LjgtNi40IC45LTEyLjcgMy45LTE3LjkgOS4xbC0xMy40IDEzLjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjQuMSAwYzIuNSAwIDUtLjMgNy4zLS44IC40LTUgLjUtMTAuMSAuNS0xNS4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSx5S3Q9ZVMsd0t0PWVTLGtLdD1lUyxTS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fycm90IixpY29uOls2NDAsNTEyLFsxMjkzNjVdLCJmNzg3IiwiTTQ1My4xLTM2LjdMNDQwLjktMjQuNmMtMzEuMiAzMS4yLTMxLjIgODEuOSAwIDExMy4xIDE1LjYgMTUuNiAzMS4yIDMxLjIgNDYuOSA0Ni45IDMxLjIgMzEuMiA4MS45IDMxLjIgMTEzLjEgMGwxMi4xLTEyLjFjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNjAwLjkgODguNmMtMzEuMi0zMS4yLTgxLjktMzEuMi0xMTMuMSAwIDMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMUw0NzUuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNMzMxLjYgOTZjLTQ1LjIgMC04Ny4xIDIwLjQtMTE1IDU0LjNMMjczLjMgMjA3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTkxLjYgMTkzLjIgNjcuMiA0NjYuOGMtNS41IDEyLjEtMi45IDI2LjQgNi41IDM1LjlzMjMuNyAxMiAzNS45IDYuNWwxNDEuNi02NC40LTQzLjgtNDMuOGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjUgNTYuNSA5NS4zLTQzLjNjNTMuMS0yNC4xIDg3LjItNzcuMSA4Ny4yLTEzNS41IDAtODIuMi02Ni42LTE0OC44LTE0OC44LTE0OC44eiJdfSx0Uz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1mdWxsIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtNCIsInRoZXJtb21ldGVyLTQiLCJ0aGVybW9tZXRlci1mdWxsIl0sImYyYzciLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjEyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSxfS3Q9dFMsTUt0PXRTLHpLdD10UyxDS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LWxvY2siLGljb246WzY0MCw1MTIsW10sImU2N2EiLCJNMjU2IDI4OGwwLTY0IDE1My4zIDBjMTcuMS00Mi4yIDU2LTczLjIgMTAyLjctNzlsMC00OWMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0MS4zIDBjLS45LTUuMi0xLjMtMTAuNi0xLjMtMTYuMWwwLTQ3LjktMTEyIDAgMC02NCAxMTMuMyAwYzMuNy0yMiAxNC44LTQxLjQgMzAuNy01NS42bDAtOC40LTE0NCAwem0wLTE5MmwxOTIgMCAwIDY0LTE5MiAwIDAtNjR6TTU2MCAyNzIuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDE2IDM2OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sVEt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQtbGlnaHRuaW5nIixpY29uOlszODQsNTEyLFtdLCJlMGI3IiwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhMMjI4LjkgMGMxNSAwIDI3LjEgMTIuMSAyNy4xIDI3LjEgMCAzLjItLjYgNi41LTEuNyA5LjVMMjA4IDE2MCAzNDcuMyAxNjBjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjcgMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43bC0yLjkgMGMtMTUuNyAwLTI4LjUtMTIuOC0yOC41LTI4LjUgMC0yLjMgLjMtNC42IC45LTYuOUwxNzYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LCRLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zaG93ZXJzLXdhdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNGU0IiwiTTI3OS4yIDU1LjdDMjYzLjkgMjIuOCAyMzAuNiAwIDE5MiAwIDEzOSAwIDk2IDQzIDk2IDk2IDYwLjcgOTYgMzIgMTI0LjcgMzIgMTYwczI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRsLTEuNiAwYy03LjQtMzYuNS0zOS43LTY0LTc4LjQtNjQtMjIuMiAwLTQyLjMgOS4xLTU2LjggMjMuN3pNNDEwLjYgNDc2LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwek0xMDAuMSAzMDMuNmM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NEMyOSAzNjUgMzUuOCAzNzguNiA0OC40IDM4Mi44czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMTIgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0eiJdfSxhdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctdXAiXSwiZjE3NiIsIk0xODIuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMjggNzcuMyAxMjggNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00MzQuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHoiXX0sREt0PWF2ZSx5b2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04MCAyNTZsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMODAgMzg0Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI0MC00OGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgOTZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxMS3Q9eW9lLEVLdD15b2UsUEt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXJpZ2h0IixpY29uOlsyNTYsNTEyLFs4MjUwXSwiZjEwNSIsIk0yNDcuMSAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTc5LjIgMjU2IDQxLjkgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHoiXX0sc3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE3NiAzMjBsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxJS3Q9c3ZlLEFLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLWdyb3VuZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRiNSIsIk0zMDMgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OCA4OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00NyAwIDI3OC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjc4LjEtNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMzAzIDd6TTI0MCAxOTJsMCAxNjMuMWMtMTAuNi0yLjItMjEuMy0zLjItMzItMy4xLTMyLjUgLjItNjQuOSAxMC43LTkyLjMgMzEuNC04LjggNi42LTE1LjkgMTAuOS0yMS43IDEzLjVsLS44IC40Yy0zLjcgMS43LTYuNCAyLjktOS44IC4zLTYtNC41LTEyLjYtOC0xOS4zLTEwLjRMNjQgMjQwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDEyOCAwem0zMzYgNDhsMCAxNTUuMmMtMS4xIC44LTIuMiAxLjUtMy4zIDIuNC00LjEgMy4xLTguMyAuOC0xMi42LTEuNS0uNi0uMy0xLjItLjYtMS44LTEtNS4yLTIuNy0xMS4xLTYuNi0xOC0xMS43LTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTE1LjUgLjEtMzEgMi41LTQ2IDcuM2wwLTE2Ny4zIDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LE5LdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDM0OS41IDc3LjUgMTcwLjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzYuOCA4OC44IDAgOTkuOSAwIDExMkwwIDQ2NGMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTc5LjQgNTkuOGM4LjEgMi43IDE2LjggMi4xIDI0LjQtMS43bDEyOC02NGMxMC44LTUuNCAxNy43LTE2LjUgMTcuNy0yOC42bDAtMzUyek0xOTIgMzc2LjlsMC0yODQuNSAxMjggNDIuNyAwIDI4NC41LTEyOC00Mi43eiJdfSxSS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjM0IiwiTTI4NS43IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3Ny43IDUxMkM2MS4zIDUxMiA0OCA0OTguNyA0OCA0ODIuMyA0OCAzODMuOCAxMjcuOCAzMDQgMjI2LjMgMzA0bDU5LjQgMHpNNTI4IDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDggNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDgtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQweiJdfSxPS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMiLGljb246WzM4NCw1MTIsWzk3OTJdLCJmMjIxIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtNjRjMC0xIDAtMS45LS4xLTIuOXoiXX0sRkt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tc3VjY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDdhIiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCA0ODBMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE2MCAxNjBsMC02NC05NiAwIDAgNjQgOTYgMHoiXX0sQkt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS1jb3VnaC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA2MiIsIk01MzUtMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTM3LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjUtMjUgMC00NDcuMmMwLTE1IDEwLjUtMjguMyAyNS40LTI5LjggNy40LS43IDE0LjktMS4xIDIyLjYtMS4xIDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMi4yIDIuNiAyMjcuNS0yMjcuNXpNMTMzLjggNTEyTDI4OCAzNTcuOCAyODggNDE2YzAgNTMtNDMgOTYtOTYgOTZsLTU4LjIgMHpNMTc2IDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMzNiA0MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS04OCA3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tNjQgNDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTI4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tODgtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0saXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJvamVjdCIsaWNvbjpbNTEyLDUxMixbInByb2plY3QtZGlhZ3JhbSJdLCJmNTQyIiwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDEyOCAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTEyOCAwIDAgMTZjMCA3LjMtMS43IDE0LjMtNC42IDIwLjVsNjguNiA5MS41IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTcuMyAxLjctMTQuMyA0LjYtMjAuNUwxMjggMjI0IDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHoiXX0sSEt0PWl2ZSxHYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXJtaW5hbCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyMCIsIk05LjQgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTQ2LjcgMjU2IDkuNCAxMTguNnpNMjI0IDM4NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LHFLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1maXJlIixpY29uOls2NDAsNTEyLFtdLCJlNTBjIiwiTTQ0OCAxOTJjMTQuMSAuNCAyMy44IDExLjQgMzIuNyAyMS43IDIgMi4zIDQgNC42IDYgNi43bDE5IDE5LjkgMTIuMi0xMy44YzUuNC02LjEgMTMuMy04LjkgMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjIgMjYuMiA4OC4yIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4xIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjV6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMTQ3LjUgMTM3Yy0xOS4yLTQuMy00MCAuNS01NS41IDE0LjQtMzYuNCAzMi42LTY3LjcgNjkuOC05MC4zIDEwNi40LTEwLjMgMTYuNi0xOS43IDM0LjktMjYuOCA1My43TDI3MiAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgNjQuNiAwYzcuMyAxNy4yIDE2LjggMzMuNCAyOC4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNDg5LjMgMzQzLjdjLTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC43IDUxLjktNTQuNyA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0zNi41LTM3LTczLTU0LjctODguNHoiXX0sakt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2siLGljb246WzU3Niw1MTIsW10sImY2ZmEiLCJNMjg4IDY0QzY0IDY0IDAgMTYwIDAgMjcyUzgwIDQ0OCAxNzYgNDQ4bDguNCAwYzI0LjIgMCA0Ni40LTEzLjcgNTcuMi0zNS40bDIzLjItNDYuM2M0LjQtOC44IDEzLjMtMTQuMyAyMy4yLTE0LjNzMTguOCA1LjUgMjMuMiAxNC4zbDIzLjIgNDYuM2MxMC44IDIxLjcgMzMgMzUuNCA1Ny4yIDM1LjRsOC40IDBjOTYgMCAxNzYtNjQgMTc2LTE3NlM1MTIgNjQgMjg4IDY0ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0zMjAtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LFZLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJodXJyaWNhbmUiLGljb246WzM4NCw1MTIsW10sImY3NTEiLCJNMCAyMDhDMCAxMDQuNCA3NS43IDE4LjUgMTc0LjkgMi42IDE4NCAxLjIgMTkyIDguNiAxOTIgMTcuOWwwIDYzLjNjMCA4LjQgNi41IDE1LjMgMTQuNyAxNi41IDEwMC4zIDE0LjkgMTc3LjMgMTAxLjMgMTc3LjMgMjA1LjcgMCAxMDMuNi03NS43IDE4OS41LTE3NC45IDIwNS40LTkuMiAxLjUtMTcuMS01LjktMTcuMS0xNS4ybDAtNjMuM0MxOTIgNDIxLjkgMTg1LjUgNDE1IDE3Ny4zIDQxMy43IDc3IDM5OC45IDAgMzEyLjQgMCAyMDh6bTI4OCA0OGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bS05Ni0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHJ2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1hZnJpY2EiLGljb246WzUxMiw1MTIsWzEyNzc1NywiZ2xvYmUtYWZyaWNhIl0sImY1N2MiLCJNNDQ3LjYgMTc1Yy0zMS42LTc0LjYtMTA1LjUtMTI3LTE5MS42LTEyNy0yMi4xIDAtNDMuNCAzLjUtNjMuNCA5LjgtLjQgMi0uNiA0LjEtLjYgNi4ybDAgNzMuNGMwIDEyLjUgMTAuMSAyMi42IDIyLjYgMjIuNiA2IDAgMTEuOC0yLjQgMTYtNi42bDE2LTE2YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw1LjUgMGMyOC41IDAgNDIuOCAzNC41IDIyLjYgNTQuNi02IDYtMTQuMSA5LjQtMjIuNiA5LjRsLTYxLjUgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRsLTIxLjMgMjEuM2MtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgNDIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMi43IDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjkuMy0yOS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTE4LjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNmwwLTM0LjdjMC04LjUtMy40LTE2LjYtOS40LTIyLjZsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDUgMGMxMi40IDAgMjIuNy03LjEgMjgtMTd6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFVLdD1ydmUsb3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1idGFjayIsaWNvbjpbMzg0LDUxMixbMTI4MjA0LDEyODM5MiwidGh1bWItdGFjayJdLCJmMDhkIiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBMMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5LjUgMCAxMC4zIDEzNC4xYzM3LjEgMjEuMiA2NS44IDU2LjQgNzguMiA5OS43bDMuOCAxMy40YzIuOCA5LjcgLjggMjAtNS4yIDI4LjFTMzYyIDM1MiAzNTIgMzUyTDMyIDM1MmMtMTAgMC0xOS41LTQuNy0yNS41LTEyLjdzLTgtMTguNC01LjItMjguMUw1IDI5Ny44YzEyLjQtNDMuMyA0MS03OC41IDc4LjItOTkuN0w5My41IDY0IDY0IDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMTYwIDQwMGw2NCAwIDAgMTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTEyeiJdfSxXS3Q9b3ZlLEdLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LWRvd24iLGljb246WzM4NCw1MTIsW10sImYwYTciLCJNMzIgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMDgtNjQgMCAwIDIwOHpNMjI0IDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTY0IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTYwLTk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0em0tOTYtODhsMCAuNmM5LjQtNS40IDIwLjMtOC42IDMyLTguNiAxMy4yIDAgMjUuNCA0IDM1LjYgMTAuOCA4LjctMjQuOSAzMi41LTQyLjggNjAuNC00Mi44IDExLjcgMCAyMi42IDMuMSAzMiA4LjZsMC04LjZDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMEwxNjIuMyAwQzExOS44IDAgNzkuMSAxNi45IDQ5LjEgNDYuOUwzNy41IDU4LjVDMTMuNSA4Mi41IDAgMTE1LjEgMCAxNDlsMCAyN2MwIDM1LjMgMjguNyA2NCA2NCA2NGw4OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwbC01NiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJ6Il19LG52ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yMDgtNDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTI4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sS0t0PW52ZSxhUz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1lbXB0eSIsaWNvbjpbMzIwLDUxMixbInRlbXBlcmF0dXJlLTAiLCJ0aGVybW9tZXRlci0wIiwidGhlcm1vbWV0ZXItZW1wdHkiXSwiZjJjYiIsIk02NCA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTYgNDQ3LjUgMTYgMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0eiJdfSxZS3Q9YVMsWkt0PWFTLFhLdD1hUyxRS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLW5vbmUiLGljb246WzQ0OCw1MTIsW10sImY4NTAiLCJNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMjg4IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTE2MCA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0yODggMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek00MTYgNDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMC0zODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQxNiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0eiJdfSxKS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlnaGxpZ2h0ZXIiLGljb246WzU3Niw1MTIsW10sImY1OTEiLCJNMzE1IDMxNUw0NzMuNCA5OS45IDQ0NC4xIDcwLjYgMjI5IDIyOSAzMTUgMzE1em0tMTg3IDVsMCAwIDAtNzEuN2MwLTE1LjMgNy4yLTI5LjYgMTkuNS0zOC42TDQyMC42IDguNEM0MjggMi45IDQzNyAwIDQ0Ni4yIDAgNDU3LjYgMCA0NjguNSA0LjUgNDc2LjYgMTIuNmw1NC44IDU0LjhjOC4xIDguMSAxMi42IDE5IDEyLjYgMzAuNSAwIDkuMi0yLjkgMTguMi04LjQgMjUuNkwzMzQuNCAzOTYuNWMtOSAxMi4zLTIzLjQgMTkuNS0zOC42IDE5LjVsLTcxLjcgMC0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC01MC43LTUwLjdjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDEyOCAzMjB6TTcgNDY2LjNsNTEuNy01MS43IDcwLjYgNzAuNi0xOS43IDE5LjdjLTQuNSA0LjUtMTAuNiA3LTE3IDdMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuN2MwLTYuNCAyLjUtMTIuNSA3LTE3eiJdfSxlWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC13YXZlIixpY29uOls1MTIsNTEyLFtdLCJmNTNhIiwiTTAgNDE5LjZMMCAxMDkuNWMwLTIzLjIgMjQuMS0zOC42IDQ2LjMtMzIgODcuNyAyNi4yIDE0OS43IDUuNSAyMTIuMS0xNS4zIDY0LjUtMjEuNSAxMjkuNC00My4xIDIyMy4zLTEzLjEgMTguNSA1LjkgMzAuMyAyMy44IDMwLjMgNDMuM2wwIDMxMC4xYzAgMjMuMi0yNC4xIDM4LjYtNDYuMiAzMi04Ny43LTI2LjItMTQ5LjgtNS41LTIxMi4xIDE1LjMtNjQuNSAyMS41LTEyOS40IDQzLjEtMjIzLjMgMTMuMS0xOC41LTUuOS0zMC4zLTIzLjgtMzAuMy00My4zek0zMzYgMjU2YzAtNTMtMzUuOC05Ni04MC05NnMtODAgNDMtODAgOTYgMzUuOCA5NiA4MCA5NiA4MC00MyA4MC05NnpNMTIwIDQxMy42YzQuNCAwIDcuOS0zLjggNy4yLTguMS00LjYtMjcuOC0yNy00OS41LTU1LjItNTMtNC40LS41LTggMy4xLTggNy41bDAgMzkuOWMwIDMuNiAyLjQgNi44IDYgNy43IDE3LjkgNC4yIDM0LjMgNi4xIDUwIDYuMXptMzE4LjUtNTEuMWM1IC44IDkuNS0zIDkuNS04bDAtNDIuNmMwLTQuNC0zLjYtOC4xLTgtNy41LTI1LjIgMy4xLTQ1LjkgMjAuOS01My4yIDQ0LjYtMS40IDQuNyAyLjMgOS4xIDcuMiA5LjIgMTQuMiAuNCAyOSAxLjcgNDQuNCA0LjN6TTQ0OCAxNTJsMC0zOS45YzAtMy42LTIuNS02LjgtNi03LjctMTcuOS00LjItMzQuMy02LjEtNTAtNi4xLTQuNCAwLTcuOSAzLjgtNy4yIDguMSA0LjYgMjcuOCAyNyA0OS41IDU1LjIgNTMgNC40IC41IDgtMy4xIDgtNy41ek0xMjUuMiAxNjIuOWMxLjQtNC43LTIuMy05LjEtNy4yLTkuMi0xNC4yLS40LTI5LTEuNy00NC40LTQuMy01LS44LTkuNSAzLTkuNSA4TDY0IDIwMGMwIDQuNCAzLjYgOC4xIDggNy41IDI1LjItMy4xIDQ1LjktMjAuOSA1My4yLTQ0LjZ6Il19LHRZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcGFwZXItc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzIiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTQuNS05NC41YzQwLjItMjMgNjkuNS05Ni45IDY5LjUtMTg0LjYgMC0xMDYtNDMtMTkyLTk2LTE5MnMtOTYgODYtOTYgMTkyYzAgMjQuMSAyLjIgNDcuMiA2LjMgNjguNEwzMDQgMjM4LjIgMzA0IDIyNGMwLTU4LjkgMTEuOC0xMTQuNSAzMy4yLTE1Ny4yIDUuOS0xMS43IDEzLjEtMjMuNyAyMS45LTM0LjhMMTI4IDMyYy04LjMgMC0xNi40IDIuMS0yNC4xIDYuMWwtNjMtNjN6TTMyIDIyNGwwIDI2NGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwxNjAgMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTExNC4yLTI1Ni0yNTZDMzcuOSAxNDguMiAzMiAxODQuNyAzMiAyMjR6bTQxNiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LGFZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmMCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtMzQuNCAyMi02NSA1NC43LTc1LjlsMTEyLTM3LjNjMy4xLTEgNi4yLTEuOCA5LjMtMi41bDAtMzkuMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnptODcuOCAzMTIuNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LHNZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LWhlaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZjAzNCIsIk00MCAzMkMxNy45IDMyIDAgNDkuOSAwIDcybDAgNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDY0IDAgMCAzMjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyMCA2NCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTU2YzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDMyek00MzguNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTkuNCA5LjQgMC0yMjkuNSA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy02LTYtMTQuMS05LjQtMjIuNi05LjRzLTE2LjYgMy40LTIyLjYgOS40bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjI5LjUtOS40LTkuNHoiXX0sbHZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUiLGljb246WzUxMiw1MTIsWzEyODUzOSwiZ3Jpbi10b25ndWUiXSwiZjU4OSIsIk0wIDI1NmMwIDEwNC40IDYyLjUgMTk0LjIgMTUyLjIgMjM0LjEtNS4zLTEzLTguMi0yNy4yLTguMi00Mi4xbDAtNjEuN2MtMTYuOS0xNi41LTMwLjEtMzYuNy0zOC4zLTU5LjMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS04LjMgMjIuNi0yMS41IDQyLjgtMzguMyA1OS4zbDAgNjEuN2MwIDE0LjktMi45IDI5LjEtOC4yIDQyLjEgODkuNy0zOS44IDE1Mi4yLTEyOS42IDE1Mi4yLTIzNC4xIDAtMTQxLjQtMTE0LjYtMjU2LTI1Ni0yNTZTMCAxMTQuNiAwIDI1NnptMTc2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2IDI0MGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LGlZdD1sdmUscll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2lnbmF0dXJlIixpY29uOls2NDAsNTEyLFtdLCJmNTczIiwiTTY0LjEgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjc3LjYgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgOTcuNS0xMzIgMTMyLTQyLjEgMC0xNi4xLTUzLjZjLTQuNy0xNS43LTE5LjEtMjYuNC0zNS41LTI2LjQtMTEuMyAwLTIxLjkgNS4xLTI4LjkgMTMuOUwxMzMuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDMxLjUgMGMtLjkgMy4xLTEuNyA2LjMtMi4zIDkuNWwtMTAuOSA1NC41LTE0Ni4yIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzg0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5My41IDAtMTE3LjUtMTE3LjV6bTYwLjIgNDA4LjRjMi41LTEyLjQgOC42LTIzLjggMTcuNS0zMi43bDExOC45LTExOC45IDgwIDgwLTExOC45IDExOC45Yy04LjkgOC45LTIwLjMgMTUtMzIuNyAxNy41bC01OS42IDExLjljLS45IC4yLTEuOSAuMy0yLjkgLjMtOCAwLTE0LjYtNi41LTE0LjYtMTQuNiAwLTEgLjEtMS45IC4zLTIuOWwxMS45LTU5LjZ6bTI2Ny44LTEyM2wtMjguOCAyOC44LTgwLTgwIDI4LjgtMjguOGMyMi4xLTIyLjEgNTcuOS0yMi4xIDgwIDBzMjIuMSA1Ny45IDAgODB6Il19LG9ZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy13aGVhdCIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0OS4zIDBjLTYtMTQuOC05LjMtMzEtOS4zLTQ4IDAtMTcuNyA3LjItMzMuNyAxOC44LTQ1LjMtMTEuOS0xOS40LTE4LjgtNDIuMy0xOC44LTY2LjcgMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTI1LjIgMTQuNS00Ni45IDM1LjYtNTcuNC0yLjQtNy4xLTMuNi0xNC43LTMuNi0yMi42bDAtMzJDMzY4IDk2LjcgMzg4IDcwLjEgNDE1LjkgNjAuMSA0MTMuOSAyNi42IDM4NiAwIDM1MiAwTDk2IDB6TTIwOCAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptMzUyIDBsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6bTAgMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6TTQ5NiA1MjhjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTE2LTk2YzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDB6bTE2LTEyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2ek01MTIgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTk2IDY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek00NDAgMTA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sbll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVlIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sd29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZ1dGJvbCIsaWNvbjpbNTEyLDUxMixbOTkxNywiZnV0Ym9sLWJhbGwiLCJzb2NjZXItYmFsbCJdLCJmMWUzIiwiTTQxNy4zIDM2MC4xbC03MS42LTQuOGMtNS4yLS4zLTEwLjMgMS4xLTE0LjUgNC4ycy03LjIgNy40LTguNCAxMi41bC0xNy42IDY5LjZDMjg5LjUgNDQ1LjggMjczIDQ0OCAyNTYgNDQ4cy0zMy41LTIuMi00OS4yLTYuNEwxODkuMiAzNzJjLTEuMy01LTQuMy05LjQtOC40LTEyLjVzLTkuMy00LjUtMTQuNS00LjJsLTcxLjYgNC44Yy0xNy42LTI3LjItMjguNS01OS4yLTMwLjQtOTMuNkwxMjUgMjI4LjNjNC40LTIuOCA3LjYtNyA5LjItMTEuOXMxLjQtMTAuMi0uNS0xNWwtMjYuNy02Ni42QzEyOCAxMDkuMiAxNTUuMyA4OSAxODYuNyA3Ni45bDU1LjIgNDZjNCAzLjMgOSA1LjEgMTQuMSA1LjFzMTAuMi0xLjggMTQuMS01LjFsNTUuMi00NmMzMS4zIDEyLjEgNTguNyAzMi4zIDc5LjYgNTcuOWwtMjYuNyA2Ni42Yy0xLjkgNC44LTIuMSAxMC4xLS41IDE1czQuOSA5LjEgOS4yIDExLjlsNjAuNyAzOC4yYy0xLjkgMzQuNC0xMi44IDY2LjQtMzAuNCA5My42ek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTQuMS0zMjUuN2MtOC40LTYuMS0xOS44LTYuMS0yOC4yIDBMMTk0IDIyMWMtOC40IDYuMS0xMS45IDE2LjktOC43IDI2LjhsMTguMyA1Ni4zYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNmw1OS4yIDBjMTAuNCAwIDE5LjYtNi43IDIyLjgtMTYuNmwxOC4zLTU2LjNjMy4yLTkuOS0uMy0yMC43LTguNy0yNi44bC00Ny45LTM0Ljh6Il19LGxZdD13b2UsY1l0PXdvZSxjdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBsdXMiLGljb246WzUxMiw1MTIsWyJwbHVzLWNpcmNsZSJdLCJmMDU1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzIgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sZFl0PWN2ZSx1WXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhemlsaWFuLXJlYWwtc2lnbiIsaWNvbjpbNTEyLDUxMixbXSwiZTQ2YyIsIk00MDAgMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC00OC45IDBjLTI2IDAtNDcuMSAyMS4xLTQ3LjEgNDcuMSAwIDIyLjUgMTUuOSA0MS44IDM3LjkgNDYuMmwzMi44IDYuNmM1MS45IDEwLjQgODkuMyA1NiA4OS4zIDEwOSAwIDUwLjYtMzMuOCA5My4zLTgwIDEwNi43bDAgMjAuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQuOSAwYzI2IDAgNDcuMS0yMS4xIDQ3LjEtNDcuMSAwLTIyLjUtMTUuOS00MS44LTM3LjktNDYuMmwtMzIuOC02LjZjLTUxLjktMTAuNC04OS4zLTU2LTg5LjMtMTA5IDAtNTAuNiAzMy44LTkzLjIgODAtMTA2LjdMMzY4IDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6Il19LHBZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLWFuZC1jcmVzY2VudCIsaWNvbjpbNTEyLDUxMixbOTc3MF0sImY2OTkiLCJNMCAyNTZjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiAzMyAwIDY0LjYgNi4zIDkzLjYgMTcuNyA3LjQgMi45IDExLjUgMTAuNyA5LjggMTguNHMtOC44IDEzLTE2LjcgMTIuNGMtNC44LS4zLTkuNy0uNS0xNC42LS41LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOHM5My4xIDIwOCAyMDggMjA4YzQuOSAwIDkuOC0uMiAxNC42LS41IDcuOS0uNSAxNSA0LjcgMTYuNyAxMi40cy0yLjQgMTUuNS05LjggMTguNEMzMjAuNiA1MDUuNyAyODkgNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6TTM3NS40IDEzNy40YzMuNS03LjEgMTMuNy03LjEgMTcuMiAwbDMxLjUgNjMuOGMxLjQgMi44IDQuMSA0LjggNy4yIDUuM2w3MC40IDEwLjJjNy45IDEuMSAxMSAxMC44IDUuMyAxNi40bC01MC45IDQ5LjZjLTIuMyAyLjItMy4zIDUuNC0yLjggOC41bDEyIDcwLjFjMS4zIDcuOC02LjkgMTMuOC0xMy45IDEwLjFsLTYzLTMzLjFjLTIuOC0xLjUtNi4xLTEuNS04LjkgMGwtNjMgMzMuMWMtNyAzLjctMTUuMy0yLjMtMTMuOS0xMC4xbDEyLTcwLjFjLjUtMy4xLS41LTYuMy0yLjgtOC41TDI2MSAyMzMuMWMtNS43LTUuNi0yLjYtMTUuMiA1LjMtMTYuNGw3MC40LTEwLjJjMy4xLS41IDUuOC0yLjQgNy4yLTUuM2wzMS41LTYzLjh6Il19LGR2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxoWXQ9ZHZlLGZZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3NwaXRhbC11c2VyIixpY29uOls2NDAsNTEyLFtdLCJmODBkIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjcgMCAyNy43IDguOCA1My40IDIzLjggNzQuNC01MS41IDIxLTg3LjggNzEuNi04Ny44IDEzMC43IDAgMSAwIDEuOSAwIDIuOWwtMTc2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDY0ek0yMDggNDAwbDAgNjQgNTMuNCAwYzcuMi0yOS40IDIxLjMtNTYuMSA0MC40LTc4LjMtNi4xLTE5LjUtMjQuMy0zMy43LTQ1LjgtMzMuNy0yNi41IDAtNDggMjEuNS00OCA0OHpNMjQ4IDg4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwek00MTYgMzA0YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxtWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGIwIiwiTTI2Mi42IDQyMi42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDI1LjQgMjUuNCAwLTExNC43LTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjU2IDAgMC0xMTQuNy0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDgwLTgwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0yNS40LTI1LjQgMCA5NC44Yy0yNS4zIDIwLjMtNDIuOCA1MC4xLTQ3IDgzLjlsLTE0NSAwIDAgMTE0LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTE5MiAzMmwwIDE0NC02NCAwIDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHV2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxnWXQ9dXZlLGJZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2xseS1iZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYSIsIk0yNTYuMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTI3NyAzODMuOGMxIC4xIDIuMSAuMiAzLjIgLjIgMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjkgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42LTM0LjYgMC02Mi43LTI4LjEtNjIuNy02Mi43bDAtMzJjMC0xNi40LTE2LTI3LjktMzEuNi0yMi44bC0xMi44IDQuM2MtMTggNi0zNy4zIDYuNS01NS42IDEuNWwtMjkuNi04LjFjLTIuOS0uOC01LjktMS04LjctLjcgNC4yIDkuNyA1LjggMjAuOCAzLjcgMzIuM2wtNi4zIDM0LjhjLTEuNSA4LjQtMS40IDE3IC41IDI1LjNsNS4zIDIzLjljMi44IDEyLjcgMS4xIDI1LjItNCAzNS45ek0xMjcuOCAyMzQuNWMtMTUuNS01LjItMzEuNiA2LjQtMzEuNiAyMi44bDAgMzJjMCAzNC42LTI4LjEgNjIuNy02Mi43IDYyLjctMTYuNCAwLTI3LjkgMTYtMjIuOCAzMS42TDE1IDM5Ni40YzYgMTggNi41IDM3LjMgMS41IDU1LjZsLTUuMyAxOS40QzYuNCA0ODkuNCAyMi44IDUwNS44IDQwLjcgNTAxbDE5LjQtNS4zYzE4LjMtNSAzNy42LTQuNSA1NS42IDEuNWwxMi44IDQuM2MxNS41IDUuMiAzMS42LTYuNCAzMS42LTIyLjhsMC0zMmMwLTM0LjYgMjguMS02Mi43IDYyLjctNjIuNyAxNi40IDAgMjcuOS0xNiAyMi44LTMxLjZsLTQuMy0xMi44Yy02LTE4LTYuNS0zNy4zLTEuNS01NS42bDUuMy0xOS40YzQuOS0xNy45LTExLjYtMzQuNC0yOS41LTI5LjVsLTE5LjQgNS4zYy0xOC4zIDUtMzcuNiA0LjQtNTUuNi0xLjVsLTEyLjgtNC4zek0zODQuMiAxNDRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sdll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MF0sImYyMjYiLCJNMTkyIDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM2OCAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgMSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS04Mi0xNS0xNDQuMS04Ni44LTE0NC4xLTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2UzM2OCA3OC44IDM2OCAxNzZ6TTM1Ny41IDMyN2MxNC40LTE1LjggMjYuNi0zMy43IDM2LjEtNTMuMSAxNi4xIDkgMzQuNyAxNC4xIDU0LjUgMTQuMSA2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1MDkuOSA2NCA0NDggNjRjLTE5LjggMC0zOC4zIDUuMS01NC41IDE0LjEtOS41LTE5LjQtMjEuNi0zNy4zLTM2LjEtNTMuMSAyNi40LTE1LjkgNTcuNC0yNSA5MC41LTI1IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIC45IC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTIxLjEtMy45LTQwLjktMTEuNS01OC42LTIyLjJ6Il19LHhZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtcXVlc3Rpb24iLGljb246WzM4NCw1MTIsW10sImU0ZTMiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTE5MiAyNDhjMTYuMSAwIDI5LjIgMTMuMSAyOS4yIDI5LjIgMCA4LjctMy4xIDEzLjktNi45IDE3LjctNC41IDQuNC0xMC43IDcuNS0xNi44IDkuNS0xNC45IDUtMjkuNSAxOS4zLTI5LjUgMzkuNSAwIDEzLjMgMTAuNyAyNCAyNCAyNCAxMS41IDAgMjEuMi04LjEgMjMuNS0xOSAxOS4yLTcuMSA1My43LTI2LjMgNTMuNy03MS44IDAtNDIuNi0zNC42LTc3LjItNzcuMi03Ny4ycy03Ny4yIDM0LjYtNzcuMiA3Ny4yYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xNi4xIDEzLjEtMjkuMiAyOS4yLTI5LjJ6bTI4IDE2OGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6Il19LHlZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3Rkb2ciLGljb246WzUxMiw1MTIsWzEyNzc4OV0sImY4MGYiLCJNMjg4IDBjLTIwLjUgMC00MC4xIDguMS01NC42IDIyLjZMMjIuNiAyMzMuNEM4LjEgMjQ3LjkgMCAyNjcuNSAwIDI4OCAwIDMwMC4yIDIuOSAzMTIuMSA4LjIgMzIyLjdMMzIyLjcgOC4yQzMxMi4xIDIuOSAzMDAuMiAwIDI4OCAwek0yMjQgNTEyYzIwLjUgMCA0MC4xLTguMSA1NC42LTIyLjZMNDg5LjQgMjc4LjZjMTQuNS0xNC41IDIyLjYtMzQuMSAyMi42LTU0LjYgMC0xMi4yLTIuOS0yNC4xLTguMi0zNC43TDE4OS4zIDUwMy44YzEwLjcgNS40IDIyLjYgOC4yIDM0LjcgOC4yek00NTYuNiAxNjguNmMzMS4yLTMxLjIgMzEuMi04MS45IDAtMTEzLjFzLTgxLjktMzEuMi0xMTMuMSAwbC0yODggMjg4Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjFzODEuOSAzMS4yIDExMy4xIDBsMjg4LTI4OHoiXX0sd1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tYnJhY2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA5YSIsIk0yNDYuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAxOTIgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMTAuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpNNjQgMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMzM0LjMgMCAzNTJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHoiXX0sa1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3Jvc2NvcGUiLGljb246WzUxMiw1MTIsWzEyODMwMF0sImY2MTAiLCJNMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NCAzMiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzM5MC43IDQ0OCAzMjAgNDQ4TDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYuOSAwYzMwLjQtMzQgNDguOS03OC44IDQ4LjktMTI4IDAtMTA2LTg2LTE5Mi0xOTItMTkybC0zMiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTc2IDB6TTEyMCAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxTWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0bDMwNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNTEuNi0zMC41LTk2LjEtNzQuNS0xMTYuMyA2LjctMTMuMSAxMC41LTI4IDEwLjUtNDMuNyAwLTUzLTQzLTk2LTk2LTk2LTE3LjcgMC0zNC4yIDQuOC00OC40IDEzLjEtMjQuMS00NS44LTcyLjItNzcuMS0xMjcuNi03Ny4xLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOCAuNyAxNS45IDEuOSAyMy41LTU2LjkgMTkuMi05Ny45IDczLjEtOTcuOSAxMzYuNXoiXX0sX1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsLWJhdC1iYWxsIixpY29uOls1NzYsNTEyLFtdLCJmNDMyIiwiTTQ2NC4xIDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptOC40LTU3NmMxNS4xIDAgMjkuNyA1LjggNDAuNyAxNi4ybDQ3LjIgNDQuOGMxMi42IDEyIDE5LjEgMjkgMTcuNSA0Ni4zLTEuMiAxMy4zLTcgMjUuOC0xNi41IDM1LjJMMzYzLjEgMzA5Yy03LjMgNy4zLTE1LjcgMTMuNC0yNSAxOEwyMDYgMzkzYy05LjIgNC42LTE3LjcgMTAuNy0yNSAxOGwtOTIgOTIgMS43IDEuOGM3LjcgOS40IDcuMSAyMy4zLTEuNyAzMi4xcy0yMi43IDkuMy0zMi4xIDEuN2wtMS44LTEuNy00OC00OC0xLjctMS44Yy03LjctOS40LTcuMS0yMy4zIDEuNy0zMi4xczIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgOTItOTJjNy4zLTcuMyAxMy40LTE1LjcgMTgtMjVsNjYuMS0xMzIuMWM0LjYtOS4yIDEwLjctMTcuNyAxOC0yNUw0MzAuOC0xNC43QzQ0MS45LTI1LjggNDU2LjktMzIgNDcyLjUtMzJ6Il19LHB2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItcmVhciIsaWNvbjpbNTEyLDUxMixbImNhci1hbHQiXSwiZjVkZSIsIk0xNjUuNCA5NmwxODEuMiAwYzEzLjYgMCAyNS43IDguNiAzMC4yIDIxLjRsMjYuMSA3NC42LTI5My44IDAgMjYuMS03NC42YzQuNS0xMi44IDE2LjYtMjEuNCAzMC4yLTIxLjR6bS05MC42IC4zTDM5LjYgMTk2LjhDMTYuNCAyMDYuNCAwIDIyOS4zIDAgMjU2bDAgOTZjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjU2IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDAuNmMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40bDAtOTZjMC0yNi43LTE2LjQtNDkuNi0zOS42LTU5LjJMNDM3LjIgOTYuM0M0MjMuNyA1Ny44IDM4Ny40IDMyIDM0Ni42IDMyTDE2NS40IDMyYy00MC44IDAtNzcuMSAyNS44LTkwLjYgNjQuM3pNMjA4IDI4OGw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtOTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00OCAyODBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTM2MC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxNWXQ9cHZlLGh2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnRhY2stc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aHVtYi10YWNrLXNsYXNoIl0sImU2OGYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MTcuOCAzNTIgNDQ4IDM1MmMxMCAwIDE5LjUtNC43IDI1LjUtMTIuN3M4LTE4LjQgNS4yLTI4LjFMNDc1IDI5Ny44Yy0xMi40LTQzLjMtNDEtNzguNS03OC4yLTk5LjdMMzg2LjUgNjQgNDE2IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMTYwIDBjLTcuNCAwLTE0LjEgMi41LTE5LjUgNi42TDE5MC4xIDU2LjMgMTg1LjMgMTE5LjQgNDEtMjQuOXpNMjgyLjIgMzUyTDE0OS43IDIxOS42Yy0yMi43IDIwLjUtMzkuOCA0Ny40LTQ4LjcgNzguM2wtMy44IDEzLjRjLTIuOCA5LjctLjggMjAgNS4yIDI4LjFTMTE4IDM1MiAxMjggMzUybDE1NC4yIDB6TTI1NiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMi02NCAwIDAgMTEyeiJdfSx6WXQ9aHZlLENZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVzLW1pbnVzIixpY29uOlszODQsNTEyLFtdLCJlNDNjIiwiTTIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDEyOC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTEyOHpNMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sVFl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUwOSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTU1My40IDMzOS4xYy03LjEtNS4yLTE3LjEtMy42LTIyLjMgMy41bC01MyA3Mi44LTI2LjctMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDAtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuN3M4LjktMi44IDExLjctNi42bDY0LTg4YzUuMi03LjEgMy42LTE3LjEtMy41LTIyLjN6Il19LCRZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1kYXkiLGljb246WzQ0OCw1MTIsW10sImY3ODMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6Il19LERZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWJyYSIsaWNvbjpbNTEyLDUxMixbXSwiZTg0YiIsIk00ODAgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NDggMHpNMjU2IDMyYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTYuNi0yLjQgMzIuNy02LjcgNDhsNTQuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMDQuMiAwYy0xMS44IDAtMjIuNy02LjUtMjguMi0xNi45cy00LjktMjMuMSAxLjYtMzIuOWMxMS45LTE3LjggMTguOC0zOS4xIDE4LjgtNjIuMiAwLTYxLjktNTAuMS0xMTItMTEyLTExMlMxNDQgMTQ2LjEgMTQ0IDIwOGMwIDIzLjEgNi45IDQ0LjQgMTguOCA2Mi4yIDYuNiA5LjggNy4yIDIyLjUgMS42IDMyLjlTMTQ4LjEgMzIwIDEzNi4yIDMyMEwzMiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTQuOCAwYy00LjMtMTUuMy02LjgtMzEuNC02LjgtNDggMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZ6Il19LExZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUiLGljb246WzUxMiw1MTIsWzEyODMwOCwxMjgzMDksMTI4OTkyLDEyODk5MywxMjg5OTQsMTI4OTk1LDEyODk5Niw5Njc5LDk4OTgsOTg5OSwxMTA0NCw2MTcwOCw2MTkxNV0sImYxMTEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sRVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS12aWJyYXRlIixpY29uOls1NzYsNTEyLFtdLCJlODE2IiwiTTM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zODRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzg0IDB6TTI0OCA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHpNNDguOCAxMzMuNGM5LjQtNy43IDIzLjMtNy4xIDMyLjEgMS43IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMSAzMSAyNS40IDI1LjQgMi45IDMuMmM2LjMgNy43IDkuOCAxNy40IDkuOCAyNy40IDAgMTEuNS00LjYgMjIuNS0xMi43IDMwLjZsLTI1LjQgMjUuNCAzMSAzMSAxLjcgMS44YzcuNyA5LjQgNy4xIDIzLjMtMS43IDMyLjFzLTIyLjcgOS4zLTMyLjEgMS43TDQ3IDM3NyAxMi43IDM0Mi42QzUuNiAzMzUuNSAxLjIgMzI2LjIgLjIgMzE2LjNMMCAzMTIgLjIgMzA3LjdjMS05LjkgNS40LTE5LjIgMTIuNS0yNi4zTDM4LjEgMjU2IDEyLjcgMjMwLjZDNS42IDIyMy41IDEuMiAyMTQuMiAuMiAyMDQuM0wwIDIwMCAuMiAxOTUuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMNDcgMTM1IDQ4LjggMTMzLjR6TTQ5NSAxMzVjOC44LTguOCAyMi43LTkuMyAzMi4xLTEuN2wxLjggMS43IDM0LjMgMzQuM2M3LjEgNy4xIDExLjUgMTYuNCAxMi41IDI2LjNsLjIgNC4zLS4yIDQuM2MtMSA5LjktNS40IDE5LjItMTIuNSAyNi4zbC0yNS40IDI1LjQgMjUuNCAyNS40YzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTM0LjMgMzQuMy0xLjggMS43Yy05LjQgNy43LTIzLjMgNy4xLTMyLjEtMS43cy05LjMtMjIuNy0xLjctMzIuMWwxLjctMS44IDMxLTMxLTI1LjQtMjUuNGMtOC4xLTguMS0xMi43LTE5LjEtMTIuNy0zMC42IDAtMTAgMy41LTE5LjcgOS44LTI3LjRsMi45LTMuMiAyNS40LTI1LjQtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxmdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTE4LCJncmluLXNxdWludCJdLCJmNTg1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTIyLjYgMTQzLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAxOTIgMTI1LjggMTY0LjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sUFl0PWZ2ZSxJWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtYmV0d2Vlbi1saW5lcyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MSIsIk0yNCAxNmw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA2NEMxMC43IDY0IDAgNTMuMyAwIDQwUzEwLjcgMTYgMjQgMTZ6bTAgNDQ4bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMzkyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMEMxMzguNiAzMTguMyAxMjggMzQ5LjkgMTI4IDM4NGwwIDhjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC03OC44IDBDNDEuNiA0MTYgMzIgNDA2LjQgMzIgMzk0LjdMMzIgMzg0YzAtNTMgNDMtOTYgOTYtOTYgMTAgMCAxOS43IDEuNSAyOC44IDQuNHpNNzIgMTkyYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMTUyLTE2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDM4NGMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHoiXX0sQVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTEzIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxtdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtbGlzdCIsaWNvbjpbNDQ4LDUxMixbInRoLWxpc3QiXSwiZjAwYiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgMGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAyMjRsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHpNNjQgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6Il19LE5ZdD1tdmUsUll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYXNrLXZpYWwiLGljb246WzY0MCw1MTIsW10sImU0ZjMiLCJNMTg0LjYgNDExLjVjLTMuMSA3LjMtNS40IDE0LjktNi44IDIyLjYtMTQuNSA4LjgtMzEuNSAxMy45LTQ5LjggMTMuOS01MyAwLTk2LTQzLTk2LTk2TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBMMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAyNTUuNi0zOS40IDkxLjl6TTk2IDY0bDAgMTI4IDY0IDAgMC0xMjgtNjQgMHpNMzUyIDBMNTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuNCA5MS4zIDIxM2MyLjMgNS40IDMuOCAxMS4xIDQuNCAxN2wuMyAuNi0uMyAwYy4yIDEuOCAuMyAzLjYgLjMgNS40IDAgMzIuMy0yNi4yIDU4LjYtNTguNiA1OC42bC0yNjYuOSAwYy0zMi4zIDAtNTguNi0yNi4yLTU4LjYtNTguNiAwLTEuOCAuMS0zLjYgLjMtNS40bC0uMyAwIC4zLS42Yy42LTUuOCAyLjEtMTEuNiA0LjQtMTdMMzIwIDIxNy40IDMyMCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMzAyLjMgMCAzMjAgMGwzMiAwek00NTMuMiAyNDIuNmMtMy40LTgtNS4yLTE2LjUtNS4yLTI1LjJsMC0xNTMuNC02NCAwIDAgMTUzLjRjMCA4LjctMS44IDE3LjItNS4yIDI1LjJsLTMzLjIgNzcuNCAxNDAuNyAwLTMzLjItNzcuNHoiXX0sZ3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbImV4Y2xhbWF0aW9uLWNpcmNsZSJdLCJmMDZhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTE5MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjYgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LE9ZdD1ndmUsYnZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRheGkiLGljb246WzUxMiw1MTIsWzEyODY2MiwiY2FiIl0sImYxYmEiLCJNMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItOC45IDBjLTQyIDAtNzkuMSAyNy4zLTkxLjYgNjcuNGwtMjMgNzMuNUMxNC41IDIxOS4xIDAgMjQzLjkgMCAyNzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDMyMCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE3NmMwLTI4LjEtMTQuNS01Mi45LTM2LjQtNjcuMWwtMjMtNzMuNUM0NDAuMSA5MS4zIDQwMi45IDY0IDM2MC45IDY0bC04LjkgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwek0xNTEuMSAxMjhsMjA5LjkgMGMxNCAwIDI2LjQgOS4xIDMwLjUgMjIuNWwxMyA0MS41LTI5Ni45IDAgMTMtNDEuNWM0LjItMTMuNCAxNi41LTIyLjUgMzAuNS0yMi41ek05NiAyNzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yODggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sRll0PWJ2ZSx2dmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInJlbW92ZS1mb3JtYXQiXSwiZjg3ZCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDMyMi43IDI1Ni45IDM2OC4yIDk2IDQ3MSA5NiA0NjUgMTIwLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTEtNDQuMUM1NDUuNiA2MS4zIDUyMi43IDMyIDQ5MS41IDMybC0zMTkgMGMtMTkuOCAwLTM3LjMgMTIuMS00NC41IDMwLjFsLTg3LTg3ek0xODAuNCAxMTQuNWw0LjYtMTguNSAxMTYuNyAwLTMwLjggMTA5LTkwLjUtOTAuNXpNMjQxIDMxMC44TDIxMS4zIDQxNiAxNjAgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00Mi4yIDAgMTUuMS01My4zLTUxLjktNTEuOXoiXX0sQll0PXZ2ZSxIWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXB1bGxpbmciLGljb246WzU3Niw1MTIsW10sImU1MzUiLCJNODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyIDkuOCAwIDE4LjUtNC40IDI0LjQtMTEuMkw4MC40IDQ4NS4zYzIuOSAxNy40IDE5LjQgMjkuMiAzNi44IDI2LjNzMjkuMi0xOS40IDI2LjMtMzYuOGwtMjAuNS0xMjIuNyAxNS43IDAgMzAgMTM0LjljMy44IDE3LjMgMjAuOSAyOC4xIDM4LjIgMjQuM3MyOC4xLTIwLjkgMjQuMy0zOC4ybC01Ny4zLTI1OCAxMTYuMyA1My44Yy41IC4zIDEuMSAuNSAxLjYgLjcgOC42IDMuNiAxOCAzLjEgMjUuOS0uNyAzLjQtMS42IDYuNi0zLjkgOS4zLTYuNyAzLjEtMy4yIDUuNS03IDcuMS0xMS40IC4xLS4zIC4yLS43IC4zLTFsMi41LTcuNWM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOWwtMjEuNC0xMC43LTE1LjMtMzYuOGMtMTcuMS00MS4xLTU3LjMtNjcuOS0xMDEuOS02Ny45LTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMjQuNCAxMC45LTQ0LjYgMjktNTguMSA1MS42TDE1Ny4zIDEzNi45QzE0NC43IDEzMSAxMzAuOSAxMjggMTE3IDEyOGwtNTMgMHpNNDY0IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzQ5LjcgMzM1LjZsLTI1IDYyLjQtNTkuNCA1OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM3Mi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6Il19LHFZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5NF0sImYwNGEiLCJNMjA0LjMgNDMuMUMyMTUuOSAzMiAyMzMgMjguOSAyNDcuNyAzNS4yUzI3MiA1NiAyNzIgNzJsMCAxMzYuMyAxNzIuMy0xNjUuMUM0NTUuOSAzMiA0NzMgMjguOSA0ODcuNyAzNS4yUzUxMiA1NiA1MTIgNzJsMCAzNjhjMCAxNi05LjYgMzAuNS0yNC4zIDM2LjhzLTMxLjggMy4yLTQzLjQtNy45TDI3MiAzMDMuNyAyNzIgNDQwYzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOWwtMTkyLTE4NEM0LjUgMjc3LjMgMCAyNjYuOSAwIDI1NnM0LjUtMjEuMyAxMi4zLTI4LjlsMTkyLTE4NHoiXX0seHZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1idXJzdCIsaWNvbjpbNjQwLDUxMixbImNhci1jcmFzaCJdLCJmNWUxIiwiTTIzMiAxNi4xbDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0ek0zMiAxNjguMWw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0ek0yODEuNSA3MC42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDI4MS41IDM2LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em0tMTgxIDIxNWwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1Mi45IDE3NS40TDUwNSAyMTYuMmM2LjQgMS43IDExLjEgNy4zIDExLjggMTMuOWw3LjIgNzQtMjMxLjUtNjIgNDMuMi02MC41YzMuOS01LjQgMTAuNy03LjkgMTcuMi02LjJ6TTIyMy42IDIyOC41bC0yLjEgMi45Yy0yMS43IDUuNS0zOS45IDIyLjMtNDYuMSA0NS41LTQuMSAxNS41LTEyLjQgNDYuNC0yNC44IDkyLjdsLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45IDI3OC4yIDc0LjUtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjYgNC4xLTE1LjUgMTIuNC00Ni40IDI0LjgtOTIuN2w4LjMtMzAuOWM2LjItMjMuMi0xLjEtNDYuOC0xNy4yLTYyLjVsLS4zLTMuNi0xMC0xMDNjLTMuMi0zMy4yLTI2LjctNjAuOS01OC45LTY5LjVMMzY5LjUgMTEzLjZjLTMyLjItOC42LTY2LjQgMy42LTg1LjggMzAuOGwtNjAuMiA4NC4yem00OC43IDU3LjhhMzIgMzIgMCAxIDEgLTE2LjYgNjEuOCAzMiAzMiAwIDEgMSAxNi42LTYxLjh6bTIwOC4xIDg4LjlhMzIgMzIgMCAxIDEgNjEuOCAxNi42IDMyIDMyIDAgMSAxIC02MS44LTE2LjZ6Il19LGpZdD14dmUseXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpbmsiLGljb246WzU3Niw1MTIsWzEyODI3OSwiY2hhaW4iXSwiZjBjMSIsIk00MTkuNSA5NmMtMTYuNiAwLTMyLjcgNC41LTQ2LjggMTIuNy0xNS44LTE2LTM0LjItMjkuNC01NC41LTM5LjUgMjguMi0yNCA2NC4xLTM3LjIgMTAxLjMtMzcuMiA4Ni40IDAgMTU2LjUgNzAgMTU2LjUgMTU2LjUgMCA0MS41LTE2LjUgODEuMy00NS44IDExMC42bC03MS4xIDcxLjFjLTI5LjMgMjkuMy02OS4xIDQ1LjgtMTEwLjYgNDUuOC04Ni40IDAtMTU2LjUtNzAtMTU2LjUtMTU2LjUgMC0xLjUgMC0zIC4xLTQuNSAuNS0xNy43IDE1LjItMzEuNiAzMi45LTMxLjFzMzEuNiAxNS4yIDMxLjEgMzIuOWMwIC45IDAgMS44IDAgMi42IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDI0LjUgMCA0OC05LjcgNjUuNC0yNy4xbDcxLjEtNzEuMWMxNy4zLTE3LjMgMjcuMS00MC45IDI3LjEtNjUuNCAwLTUxLjEtNDEuNC05Mi41LTkyLjUtOTIuNXpNMjc1LjIgMTczLjNjLTEuOS0uOC0zLjgtMS45LTUuNS0zLjEtMTIuNi02LjUtMjctMTAuMi00Mi4xLTEwLjItMjQuNSAwLTQ4IDkuNy02NS40IDI3LjFMOTEuMSAyNTguMmMtMTcuMyAxNy4zLTI3LjEgNDAuOS0yNy4xIDY1LjQgMCA1MS4xIDQxLjQgOTIuNSA5Mi41IDkyLjUgMTYuNSAwIDMyLjYtNC40IDQ2LjctMTIuNiAxNS44IDE2IDM0LjIgMjkuNCA1NC42IDM5LjUtMjguMiAyMy45LTY0IDM3LjItMTAxLjMgMzcuMi04Ni40IDAtMTU2LjUtNzAtMTU2LjUtMTU2LjUgMC00MS41IDE2LjUtODEuMyA0NS44LTExMC42bDcxLjEtNzEuMWMyOS4zLTI5LjMgNjkuMS00NS44IDExMC42LTQ1LjggODYuNiAwIDE1Ni41IDcwLjYgMTU2LjUgMTU2LjkgMCAxLjMgMCAyLjYgMCAzLjktLjQgMTcuNy0xNS4xIDMxLjYtMzIuOCAzMS4ycy0zMS42LTE1LjEtMzEuMi0zMi44YzAtLjggMC0xLjUgMC0yLjMgMC0zMy43LTE4LTYzLjMtNDQuOC03OS42eiJdfSxWWXQ9eXZlLHd2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZC1zdGVwIixpY29uOlszODQsNTEyLFsic3RlcC1iYWNrd2FyZCJdLCJmMDQ4IiwiTTM2MyAzNi44Yy0xMi45LTctMjguNy02LjMtNDEgMS44TDY0IDIwOC4xIDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQuMSAyNTggMTY5LjZjMTIuMyA4LjEgMjggOC44IDQxIDEuOHMyMS0yMC41IDIxLTM1LjJsMC0zNjhjMC0xNC43LTguMS0yOC4yLTIxLTM1LjJ6Il19LFVZdD13dmUsV1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IngiLGljb246WzM4NCw1MTIsWzEyMF0sIjU4IiwiTTM3Ni42IDg0LjVjMTEuMy0xMy42IDkuNS0zMy44LTQuMS00NS4xcy0zMy44LTkuNS00NS4xIDQuMUwxOTIgMjA2IDU2LjYgNDMuNUM0NS4zIDI5LjkgMjUuMSAyOC4xIDExLjUgMzkuNFMtMy45IDcwLjkgNy40IDg0LjVMMTUwLjMgMjU2IDcuNCA0MjcuNWMtMTEuMyAxMy42LTkuNSAzMy44IDQuMSA0NS4xczMzLjggOS41IDQ1LjEtNC4xTDE5MiAzMDYgMzI3LjQgNDY4LjVjMTEuMyAxMy42IDMxLjUgMTUuNCA0NS4xIDQuMXMxNS40LTMxLjUgNC4xLTQ1LjFMMjMzLjcgMjU2IDM3Ni42IDg0LjV6Il19LGt2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNMzk5IDM4NC4yQzM3Ni45IDM0NS44IDMzNS40IDMyMCAyODggMzIwbC02NCAwYy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yIDM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDE2YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0eiJdfSxHWXQ9a3ZlLFN2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTk2IDI1NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0xMjAtNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEtZdD1TdmUsX3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQiLGljb246WzUxMiw1MTIsWzEyOTMwNiw5OTk1LCJoYW5kLXBhcGVyIl0sImYyNTYiLCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6Il19LFlZdD1fdmUsWll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbmNlciIsaWNvbjpbNTEyLDUxMixbXSwiZTg0NyIsIk00MDggMTUyYzU3LjQgMCAxMDQgNDYuNiAxMDQgMTA0IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTYtNTQuMyAwLTEwNC44LTE3LTE0Ni4zLTQ1LjktMTQuNS0xMC4xLTE4LTMwLjEtNy45LTQ0LjZzMzAuMS0xOCA0NC42LTcuOWMzMS4xIDIxLjcgNjguOSAzNC40IDEwOS43IDM0LjQgNjcuOSAwIDEyNy41LTM1LjMgMTYxLjctODguNS0zLjIgLjMtNi40IC41LTkuNyAuNS01Ny40IDAtMTA0LTQ2LjYtMTA0LTEwNHM0Ni42LTEwNCAxMDQtMTA0ek0yNTYgMGM1NC4zIDAgMTA0LjggMTcgMTQ2LjMgNDUuOSAxNC41IDEwLjEgMTggMzAuMSA3LjkgNDQuNnMtMzAuMSAxOC00NC42IDcuOWMtMzEuMS0yMS43LTY4LjktMzQuNC0xMDkuNy0zNC40LTY3LjkgMC0xMjcuNSAzNS4yLTE2MS43IDg4LjQgMy4yLS4zIDYuNC0uNCA5LjctLjQgNTcuNCAwIDEwNCA0Ni42IDEwNCAxMDRTMTYxLjQgMzYwIDEwNCAzNjAgMCAzMTMuNCAwIDI1NkMwIDI1NC4xIDAgMjUyLjIgLjEgMjUwLjQgMy4xIDExMS42IDExNi41IDAgMjU2IDB6TTEwNCAyMTZhNDAgNDAgMCAxIDAgMCA4MCA0MCA0MCAwIDEgMCAwLTgwem0zMDQgMGE0MCA0MCAwIDEgMCAwIDgwIDQwIDQwIDAgMSAwIDAtODB6Il19LE12ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YW4tc2h1dHRsZSIsaWNvbjpbNTc2LDUxMixbMTI4NjU2LCJzaHV0dGxlLXZhbiJdLCJmNWI2IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzM2YzAgMzUuMyAyOC43IDY0IDY0IDY0bC40IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MHM4My42LTM1LjEgODcuNi04MGwxMDQuNyAwYzQgNDQuOSA0MS43IDgwIDg3LjYgODAgNDYuMSAwIDgzLjktMzUuNCA4Ny43LTgwLjUgMzEuNy0zLjggNTYuMy0zMC44IDU2LjMtNjMuNWwwLTEwMS4zYzAtMTMuOC00LjUtMjcuMy0xMi44LTM4LjRsLTgwLTEwNi43QzQ3MS4xIDczLjUgNDUyLjEgNjQgNDMyIDY0TDY0IDY0ek01MDQgMjI0bC0xMjAgMCAwLTk2IDQ4IDAgNzIgOTZ6TTY0IDIyNGwwLTk2IDk2IDAgMCA5Ni05NiAwem0xNjAgMGwwLTk2IDk2IDAgMCA5Ni05NiAwek0zOTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxYWXQ9TXZlLFFZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFpcnMiLGljb246WzU3Niw1MTIsW10sImUyODkiLCJNMzg0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC05NnoiXX0sSll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvcnNlLWhlYWQiLGljb246WzUxMiw1MTIsW10sImY3YWIiLCJNMCA0NjRMMCAzMTYuOUMwIDIwOC41IDY4LjMgMTExLjggMTcwLjUgNzUuNkwzNDAuMiAxNS41YzIxLjQtNy42IDQzLjggOC4zIDQzLjggMzAuOSAwIDExLTUuNSAyMS4yLTE0LjYgMjcuM0wzMzYgOTZjNDguMSAwIDkxLjIgMjkuOCAxMDguMSA3NC45bDQ4LjYgMTI5LjVjMTEuOCAzMS40IDQuMSA2Ni44LTE5LjYgOTAuNS0xNiAxNi0zNy44IDI1LjEtNjAuNSAyNS4xbC0zLjQgMGMtMjYuMSAwLTUwLjktMTEuNi02Ny42LTMxLjdsLTMyLjMtMzguN2MtMTEuNyA0LjEtMjQuMiA2LjQtMzcuMyA2LjRsLS4xIDBjLTYuMyAwLTEyLjUtLjUtMTguNi0xLjUtMy42LS42LTcuMi0xLjQtMTAuNy0yLjNsMCAwYy0yOC45LTcuOC01My4xLTI2LjgtNjcuOC01Mi4yLTQuNC03LjctMTQuMi0xMC4zLTIxLjktNS44cy0xMC4zIDE0LjItNS44IDIxLjljMjQgNDEuNSA2OC4zIDcwIDExOS4zIDcxLjlsNDcuMiA3MC44YzQgNi4xIDYuMiAxMy4yIDYuMiAyMC40IDAgMjAuMy0xNi41IDM2LjgtMzYuOCAzNi44TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6TTMyOCAyMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxlWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmF1bHQiLGljb246WzUxMiw1MTIsW10sImUyYzUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDI1NiAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTI1NiAyNTZhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek02NCAyNTZhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHptMzg0LTQ4YzAgMTcuOC05LjcgMzMuMy0yNCA0MS42bDAgNzguNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTc4LjRjLTE0LjMtOC4zLTI0LTIzLjgtMjQtNDEuNiAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4eiJdfSx0WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvc2VkLWNhcHRpb25pbmctc2xhc2giLGljb246WzU3Niw1MTIsW10sImUxMzUiLCJNNy0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDEyOS44IDY0IDQ4MCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDI1LjUtMTQuOSA0Ny40LTM2LjQgNTcuOEw1NjkgNTAzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDkuMUMtMi4zLS4zLTIuMy0xNS41IDctMjQuOXptMzQ1IDMxMWwwLTcwLjJjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgMjIuMiA0OCA0OHptNjEuNSA2MS41YzIwLjItOC40IDM0LjUtMjguNCAzNC41LTUxLjcgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0yMi4yIDAgNDMuNyA0My43ek0xMzAuMyAyMDAuMWMtMS41IDUtMi4zIDEwLjQtMi4zIDE1LjlsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzE4LjEgMCAzNC4xLTguNSA0NC40LTIxLjhMMzc4LjIgNDQ4IDk2IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNTZjMC03LjggMS40LTE1LjMgNC0yMi4ybDk0LjMgOTQuM3ptOTMuOCA5My44Yy0uMSAuNy0uMSAxLjQtLjEgMi4xIDAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtNTAuMiA0OC4xIDQ4LjF6Il19LGFadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcnVtLXN0ZWVscGFuIixpY29uOls1NzYsNTEyLFtdLCJmNTZhIiwiTTI4OCAzMmMxNTkuMSAwIDI4OCA0OCAyODggMTI4bDAgMTkyYzAgODAtMTI4LjkgMTI4LTI4OCAxMjhTMCA0MzIgMCAzNTJMMCAxNjBDMCA4MCAxMjguOSAzMiAyODggMzJ6TTUyOCAxNjBjMC05LjktOC0yOS45LTU1LTQ5LjgtMTguNi03LjktNDAuOS0xNC40LTY2LTE5LjRsLTI3LjggNDMuNmMtNy4zIDExLjUtMTEuMiAyNC44LTExLjIgMzguNCAwIDE3LjUgNi40IDM0LjQgMTguMSA0Ny41bDkuOCAxMWMyOS44LTUuMiA1NS45LTEyLjUgNzcuMi0yMS41IDQ3LjEtMTkuOSA1NS0zOS45IDU1LTQ5Ljh6TTM0OS4yIDIzNy4zYy04LTI2LjItMzIuNC00NS4zLTYxLjItNDUuM3MtNTMuMyAxOS4xLTYxLjIgNDUuM2MxOS40IDEuNyAzOS45IDIuNyA2MS4yIDIuN3M0MS44LS45IDYxLjItMi43ek0xNjkgOTAuOGMtMjUuMiA1LTQ3LjQgMTEuNi02NiAxOS40LTQ3LjEgMTkuOS01NSAzOS45LTU1IDQ5LjhzOCAyOS45IDU1IDQ5LjhjMjEuMyA5IDQ3LjQgMTYuMyA3Ny4yIDIxLjVsOS44LTExYzExLjYtMTMuMSAxOC4xLTMwIDE4LjEtNDcuNSAwLTEzLjYtMy45LTI2LjktMTEuMi0zOC40TDE2OSA5MC44em01Ni4zLThjLS45IDQuMy0xLjQgOC43LTEuNCAxMy4yIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC00LjUtLjUtOS0xLjQtMTMuMi0xOS44LTEuOC00MC44LTIuOC02Mi42LTIuOHMtNDIuOCAxLTYyLjYgMi44eiJdfSxzWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTgwIDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNDggMHpNMjcwLjYgMTZDMjk3LjkgMTYgMzIwIDM4LjEgMzIwIDY1LjRsMCA0LjJjMCA2LjgtMS4zIDEzLjYtMy44IDE5LjlMMjg4IDE2MCA0NDggMTYwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTkuNy0xMS45IDM2LjYtMjguOSA0NCAxNyA3LjQgMjguOSAyNC4zIDI4LjkgNDQgMCAyMy40LTE2LjggNDIuOS0zOSA0Ny4xIDQuNCA3LjMgNyAxNS44IDcgMjQuOSAwIDIyLjItMTUgNDAuOC0zNS40IDQ2LjMgMi4yIDUuNSAzLjQgMTEuNSAzLjQgMTcuNyAwIDI2LjUtMjEuNSA0OC00OCA0OGwtODcuOSAwYy0zNi4zIDAtNzEuNi0xMi40LTk5LjktMzUuMUwxODQgNDM1LjJjLTE1LjItMTIuMS0yNC0zMC41LTI0LTUwbDAtMTg2LjZjMC0xNC45IDMuNS0yOS42IDEwLjEtNDIuOUwyMjYuMyA0My4zQzIzNC43IDI2LjYgMjUxLjggMTYgMjcwLjYgMTZ6Il19LGladD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFtcCIsaWNvbjpbNTEyLDUxMixbXSwiZjViZiIsIk0zMTIgMjAxLjhjMC0xNy40IDkuMi0zMy4yIDE5LjktNDcgMTIuNi0xNi4yIDIwLjEtMzYuNiAyMC4xLTU4LjggMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyMi4xIDcuNSA0Mi41IDIwLjEgNTguOCAxMC43IDEzLjggMTkuOSAyOS42IDE5LjkgNDcgMCAyOS45LTI0LjMgNTQuMi01NC4yIDU0LjJMMTEyIDI1NmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJsLTMzLjggMGMtMjkuOSAwLTU0LjItMjQuMy01NC4yLTU0LjJ6TTU2IDQ2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw1NiA0NjR6Il19LHJadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW5vcmFoIixpY29uOls2NDAsNTEyLFtdLCJmNjc2IiwiTTIwLjggNy40QzIyLjggMi45IDI3LjEgMCAzMiAwczkuMiAyLjkgMTEuMiA3LjRMNjEuMyA0OS43YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMUw2NCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDgxLjcgMCA2NGwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMjAuOCA3LjR6bTk2IDBDMTE4LjggMi45IDEyMy4xIDAgMTI4IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzk2IDgxLjcgOTYgNjRsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDExNi44IDcuNHptNzcuOCA0Mi40TDIxMi44IDcuNEMyMTQuOCAyLjkgMjE5LjEgMCAyMjQgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMDguOCA3LjRDMzEwLjggMi45IDMxNS4xIDAgMzIwIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwzMDguOCA3LjR6bTc3LjggNDIuNEw0MDQuOCA3LjRDNDA2LjggMi45IDQxMS4xIDAgNDE2IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNNTAwLjggNy40QzUwMi44IDIuOSA1MDcuMSAwIDUxMiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMNTAwLjggNy40em03Ny44IDQyLjRMNTk2LjggNy40QzU5OC44IDIuOSA2MDMuMSAwIDYwOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMyIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTYwIDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDAgMCA2NCAxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDAgMC02NC0xOTIgMGMtNTMgMC05Ni00My05Ni05NkwwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sb1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkcmVuIixpY29uOls2NDAsNTEyLFtdLCJlNGUxIiwiTTE2MC41IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bS03MiA0ODBsMC04MC0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xTDg2LjcgMjg1LjUgNTggMzIzLjNjLTEwLjcgMTQuMS0zMC44IDE2LjgtNDQuOCA2LjJTLTMuNyAyOTguNyA3IDI4NC43TDY1LjkgMjA3YzIyLjQtMjkuNiA1Ny41LTQ3IDk0LjYtNDdzNzIuMiAxNy40IDk0LjYgNDdMMzE0IDI4NC43YzEwLjcgMTQuMSA3LjkgMzQuMi02LjIgNDQuOHMtMzQuMiA3LjktNDQuOC02LjJsLTI4LjctMzcuOCAzMS4xIDkzLjRjMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0xNy44IDAgMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwLTE2IDAgMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpNNDgwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTggMzg0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNzkuNS0xMi45IDIwLjVjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMHMtMTkuNC0yOS4yLTEwLTQ0LjFsNTEuNy04Mi4xYzE3LjYtMjcuOSA0OC4zLTQ0LjkgODEuMi00NC45bDEyLjMgMGMzMyAwIDYzLjcgMTYuOSA4MS4yIDQ0LjlMNjE5LjYgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwbC0xMi45LTIwLjUgMCAxNzkuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTE2IDB6Il19LHp2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1saW5lIixpY29uOls1MTIsNTEyLFsibGluZS1jaGFydCJdLCJmMjAxIiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em00MDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDMyMCAyMTAuNyAyNjIuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDczLjQtNzMuNCA1Ny40IDU3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHoiXX0sblp0PXp2ZSxDdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWVudmVsb3BlIixpY29uOls0NDgsNTEyLFsiZW52ZWxvcGUtc3F1YXJlIl0sImYxOTkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA5LjEgMjY3LjlMMTA4LjQgMjA3LjRjLTcuNy00LjYtMTIuNC0xMi45LTEyLjQtMjEuOSAwLTE0LjEgMTEuNC0yNS41IDI1LjUtMjUuNWwyMDQuOSAwYzE0LjEgMCAyNS41IDExLjQgMjUuNSAyNS41IDAgOS00LjcgMTcuMy0xMi40IDIxLjlMMjM4LjkgMjY3LjljLTQuNSAyLjctOS42IDQuMS0xNC45IDQuMXMtMTAuNC0xLjQtMTQuOS00LjF6TTM1MiAyMzcuM2wwIDgyLjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgyLjcgOTYuNyA1OEMyMDIuMSAzMDEgMjEzIDMwNCAyMjQgMzA0czIxLjktMyAzMS4zLTguN2w5Ni43LTU4eiJdfSxsWnQ9Q3ZlLFR2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4tc21va2luZyIsaWNvbjpbNTEyLDUxMixbMTI4Njg1LCJzbW9raW5nLWJhbiJdLCJmNTRkIiwiTTk5LjUgMTQ0LjhsNzkuMiA3OS4yLTUwLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNDYuNyAwIDkyLjUgOTIuNWMtMzEuNCAyMi40LTY5LjggMzUuNS0xMTEuMiAzNS41LTEwNiAwLTE5Mi04Ni0xOTItMTkyIDAtNDEuNSAxMy4xLTc5LjkgMzUuNS0xMTEuMnpNMzMzLjMgMjg4bC0zMi0zMiA4Mi43IDAgMCAzMi01MC43IDB6bTMyIDMybDE4LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDI2OS4zIDIyNCAxNDQuOCA5OS41YzMxLjQtMjIuNCA2OS44LTM1LjUgMTExLjItMzUuNSAxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjJMMzY1LjMgMzIwek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjcyIDk2Yy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZ6Il19LGNadD1UdmUsZFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZyb250IixpY29uOls0NDgsNTEyLFtdLCJlMmI3IiwiTTAgMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMybDI4OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjU2YzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0xOTIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4QzEyLjYgNDE3LjQgMCAzOTQuMiAwIDM2OEwwIDExMnptOTYgODBsMCA2NCAyNTYgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTMyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yMjQgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxLYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZyIsaWNvbjpbMzg0LDUxMixbMTI3OTcwLDYxNjg3XSwiZjFhZCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTk2IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNDAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNOTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSx1WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVsbHNleWUiLGljb246WzUxMiw1MTIsW10sImYxNDAiLCJNNDQ4IDI1NmExOTIgMTkyIDAgMSAwIC0zODQgMCAxOTIgMTkyIDAgMSAwIDM4NCAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYgODBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHpNMjI0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSwkdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctbGVmdC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1sZWZ0Il0sImYxNzciLCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDU0NCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQzNC43IDAgNzMuNC03My40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4eiJdfSxwWnQ9JHZlLGhadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0wIDMyTDAgMTMzLjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMNjQgMjI0IDY0IDM4NCA3LjggNDU0LjNDMi43IDQ2MC42IDAgNDY4LjQgMCA0NzYuNSAwIDQ5Ni4xIDE1LjkgNTEyIDM1LjUgNTEybDMxMi45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTU2LjItNzAuMyAwLTE2MCA0NS4zLTQ1LjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0wzODQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE3NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTQ4IDAgMC0zMkM5NiAxNC4zIDgxLjcgMCA2NCAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyeiJdfSxmWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxlbmRlci1waG9uZSIsaWNvbjpbNTc2LDUxMixbXSwiZjZiNiIsIk0xNTEuNCAxMy4yYzEwLjIgNS44IDE0LjUgMTguNCAxMCAyOS4zTDEzOC4yIDk4LjhjLTMuOSA5LjYtMTMuNyAxNS40LTI0IDE0LjRsLTIwLjItMkM3OC43IDE1Mi45IDc4IDE5OC45IDkxLjkgMjQxLjFsMjIuNC0yLjJjMTAuMy0xIDIwIDQuOCAyNCAxNC40bDIzLjIgNTYuM2M0LjUgMTAuOSAuMiAyMy40LTEwIDI5LjNsLTIuOSAxLjZjLTMzLjYgMTkuMi04MS43IDE2LjItMTA2LjItMjEuNi01Ni4zLTg2LjYtNTYuMy0xOTkuMSAwLTI4NS43IDI0LjYtMzcuNyA3Mi43LTQwLjcgMTA2LjItMjEuNmwyLjkgMS42ek0yMjQgMzM2TDE5My43IDE3LjVDMTkyLjggOC4xIDIwMC4yIDAgMjA5LjYgMGwzMjQgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw1NTMuMSA4MCA0NDAgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwem04IDQ4bDI0MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTI0MCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMjAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxEdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHVybi11cCIsaWNvbjpbMzg0LDUxMixbImxldmVsLXVwIl0sImYxNDgiLCJNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMwNi43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMHoiXX0sbVp0PUR2ZSxnWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmljeWNsZSIsaWNvbjpbNjQwLDUxMixbMTI4NjkwXSwiZjIwNiIsIk0zMzEuNyA0My4zQzMzNiAzNi4zIDM0My43IDMyIDM1MiAzMmwxMDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjUuNiAwIDcyLjIgMTQ4LjRjMTAuNy0yLjkgMjEuOS00LjQgMzMuNC00LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjgtMTI4LTU3LjMtMTI4LTEyOGMwLTQyIDIwLjItNzkuMiA1MS40LTEwMi42bC0yMC40LTQxLjktNzMuNSAxNDdjLTIuMyA0LjgtNi4zIDguOC0xMS40IDExLjItLjYgLjMtMS4yIC41LTEuOCAuNy0yLjkgMS4xLTUuOSAxLjYtOC45IDEuNUwyNzEgMzY4Yy03LjkgNjMuMS02MS43IDExMi0xMjcgMTEyLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4UzczLjMgMjI0IDE0NCAyMjRjMTAuOCAwIDIxLjIgMS4zIDMxLjIgMy44bDI4LjUtNTYuOS0xMS41LTI2LjktNDAuMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDU2IDBjOS42IDAgMTguMyA1LjcgMjIuMSAxNC41bDE0LjMgMzMuNSAxMjMuNyAwLTM3LjctNzcuNWMtMy42LTcuNC0zLjItMTYuMiAxLjItMjMuMnpNMjI4LjUgMjI4LjdsLTQ1LjYgOTEuMyA4NC44IDAtMzkuMS05MS4zek0zMDUuNyAyODdsNDcuNS05NS04OC4yIDAgNDAuNyA5NXptMTY4LjcgNzUuNWwtMjkuNy02MWMtMTIuOCAxMy0yMC43IDMwLjgtMjAuNyA1MC41IDAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MmMtMi43IDAtNS41IC4yLTguMSAuNWwyOS43IDYxYzUuOCAxMS45IC44IDI2LjMtMTEuMSAzMi4xcy0yNi4zIC44LTMyLjEtMTEuMXpNMTQ5LjIgMzY4Yy0yMC4yIDAtMzMuNC0yMS4zLTI0LjMtMzkuNGwyNC4yLTQ4LjVjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzJjMzQuMyAwIDYyLjktMjMuOSA3MC4yLTU2bC02NSAweiJdfSxMdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LWRvd24iLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtZG93biJdLCJmMGFiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzkgMzc3bC04MC04MGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM5IDM5IDAtMTUwLjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1MC4xIDM5LTM5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxiWnQ9THZlLGRmPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlYXIiLGljb246WzUxMiw1MTIsWzk4ODEsImNvZyJdLCJmMDEzIiwiTTE5NS4xIDkuNUMxOTguMS01LjMgMjExLjItMTYgMjI2LjQtMTZsNTkuOCAwYzE1LjIgMCAyOC4zIDEwLjcgMzEuMyAyNS41TDMzMiA3OS41YzE0LjEgNiAyNy4zIDEzLjcgMzkuMyAyMi44bDY3LjgtMjIuNWMxNC40LTQuOCAzMC4yIDEuMiAzNy44IDE0LjRsMjkuOSA1MS44YzcuNiAxMy4yIDQuOSAyOS44LTYuNSAzOS45TDQ0NyAyMzMuM2MuOSA3LjQgMS4zIDE1IDEuMyAyMi43cy0uNSAxNS4zLTEuMyAyMi43bDUzLjQgNDcuNWMxMS40IDEwLjEgMTQgMjYuOCA2LjUgMzkuOWwtMjkuOSA1MS44Yy03LjYgMTMuMS0yMy40IDE5LjItMzcuOCAxNC40bC02Ny44LTIyLjVjLTEyLjEgOS4xLTI1LjMgMTYuNy0zOS4zIDIyLjhsLTE0LjQgNjkuOWMtMy4xIDE0LjktMTYuMiAyNS41LTMxLjMgMjUuNWwtNTkuOCAwYy0xNS4yIDAtMjguMy0xMC43LTMxLjMtMjUuNWwtMTQuNC02OS45Yy0xNC4xLTYtMjcuMi0xMy43LTM5LjMtMjIuOEw3My41IDQzMi4zYy0xNC40IDQuOC0zMC4yLTEuMi0zNy44LTE0LjRMNS44IDM2Ni4xYy03LjYtMTMuMi00LjktMjkuOCA2LjUtMzkuOWw1My40LTQ3LjVjLS45LTcuNC0xLjMtMTUtMS4zLTIyLjdzLjUtMTUuMyAxLjMtMjIuN0wxMi4zIDE4NS44Yy0xMS40LTEwLjEtMTQtMjYuOC02LjUtMzkuOUwzNS43IDk0LjFjNy42LTEzLjIgMjMuNC0xOS4yIDM3LjgtMTQuNGw2Ny44IDIyLjVjMTIuMS05LjEgMjUuMy0xNi43IDM5LjMtMjIuOEwxOTUuMSA5LjV6TTI1Ni4zIDMzNmE4MCA4MCAwIDEgMCAtLjYtMTYwIDgwIDgwIDAgMSAwIC42IDE2MHoiXX0sdlp0PWRmLHhadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWFuZC12ZW51cy1idXJzdCIsaWNvbjpbNjQwLDUxMixbXSwiZTUyMyIsIk00NjQtMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzQuNyAwLTYzIDYzYy0yOC40LTE5LjUtNjIuNy0zMS05OS44LTMxLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzgxLjktMTUgMTQ0LTg2LjggMTQ0LTE3My4xIDAtMzctMTEuNC03MS40LTMxLTk5LjhsNjMtNjMgMCAzNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTJjMC0xNy43LTE0LjMtMzItMzItMzJMNDk2LTY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzY4IDk2YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHpNMTkwLjktMjEuOUMxODguNC0yOCAxODIuNi0zMiAxNzYtMzJzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzQtNzYuMi0yMy4xYy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNTMzMuOCA0Ni41IDM3IDUyLjJsMzkuNSA2OS4xLTY1LjYgNDUuMWMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMi01LjYgNzkuNGMtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNkwxNTIuMSAyNjhjLTUuMy0xOS4xLTguMS0zOS4yLTguMS02MCAwLTY1LjQgMjgtMTI0LjIgNzIuNi0xNjUuMUwxOTAuOS0yMS45eiJdfSx5WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib3R0ZXIiLGljb246WzY0MCw1MTIsWzEyOTQ0Nl0sImY3MDAiLCJNMTgxLjUgMTk3LjFsMTIuOSA2LjRjNS45IDMgMTIuNCA0LjUgMTkuMSA0LjUgMjMuNSAwIDQyLjYtMTkuMSA0Mi42LTQyLjZsMC0yMS40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIxLjRjMCAyMy41IDE5LjEgNDIuNiA0Mi42IDQyLjYgNi42IDAgMTMuMS0xLjUgMTkuMS00LjUgOS4zLTQuNyAxNi40LTguMiAyMS4yLTEwLjZMMTM1LjEgMTg1Yy00LjUtMy03LjEtOC03LjEtMTMuM2wwLTMuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMy43YzAgNS4zLTIuNyAxMC4zLTcuMSAxMy4zbC0xMS44IDcuOSA4LjQgNC4yem0tOC42IDQ5LjRsLTEyLjktNi40LTEyLjkgNi40Yy0xMi42IDYuMy0yNi41IDkuNi00MC41IDkuNi0zLjYgMC03LjEtLjItMTAuNi0uNmwwIC42YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMTYwIDAgMC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjQgOS40LTUuNCAyMC4zLTguNiAzMi04LjZsMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OCA4LjggMCAxNiA3LjIgMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTkuN2MwLTQ4LjItMzAuOC05MS03Ni42LTEwNi4zbC04LjUtMi44Yy04LTIuNy0xMi42LTExLjEtMTAuNC0xOS4zczEwLjMtMTMuMiAxOC42LTExLjZsMTkuOSA0QzU3NiA4Ni4xIDY0MCAxNjQuMiA2NDAgMjU0LjlsMCAxLjEgMCAwYzAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRsLTE2MC42IDBDMTMyIDQ4MCAzMiAzODAgMzIgMjU2LjZsMC0zOS44Yy0xMC4xLTE0LjYtMTYtMzIuMy0xNi01MS40bDAtMjEuNCAwLTEuNEM2LjcgMTM5LjMgMCAxMzAuNSAwIDEyMCAwIDEwNi43IDEwLjcgOTYgMjQgOTZsMi44IDBDNDQuOCA1OC4yIDgzLjMgMzIgMTI4IDMybDY0IDBjNDQuNyAwIDgzLjIgMjYuMiAxMDEuMiA2NGwyLjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEwLjUtNi43IDE5LjMtMTYgMjIuNmwwIDEuNCAwIDIxLjRjMCAxLjQgMCAyLjgtLjEgNC4zIDEyLTYuMiAyNS43LTkuNiA0MC4xLTkuNmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4IDU2LjQgMGMtMTUuMiAxNy0yNC40IDM5LjQtMjQuNCA2NGwtMzIgMGMtNDIuMyAwLTc4LjItMjcuNC05MS02NS4zLTUuMSAuOS0xMC4zIDEuMy0xNS42IDEuMy0xNC4xIDAtMjcuOS0zLjMtNDAuNS05LjZ6TTk2IDEyOGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTExMiAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAweiJdfSxFdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tbGVmdCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWxlZnQiXSwiZjEzNyIsIk01MTIgMjU2YTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTI3MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04NyA4NyA4NyA4N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDE2NyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDI3MSAxMzV6Il19LHdadD1FdmUsUHZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNTEyLDUxMixbNjIxMDgsInF1ZXN0aW9uLWNpcmNsZSJdLCJmMDU5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LGtadD1QdmUsU1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbGtpZS10YWxraWUiLGljb246WzM4NCw1MTIsW10sImY4ZWYiLCJNODgtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA3MiA0OCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMzIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjAuOWMwIDkuOS0yLjMgMTkuNy02LjggMjguNmwtMjAuMiA0MC40Yy0zLjMgNi43LTUuMSAxNC01LjEgMjEuNWwwIDg0LjdjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTg0LjdjMC03LjUtMS43LTE0LjgtNS4xLTIxLjVMNi44IDMwMS41QzIuMyAyOTIuNiAwIDI4Mi44IDAgMjcyLjlMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMTYgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0zMiAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sSXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZ3JvdXAiLGljb246WzU3Niw1MTIsWzEyODEwMSwidXNlci1mcmllbmRzIl0sImY1MDAiLCJNNjQgMTI4YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTAgNDY0YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2czE3NiA3OC44IDE3NiAxNzZsMCA2YzAgMjMuMi0xOC44IDQyLTQyIDQyTDQyIDUxMmMtMjMuMiAwLTQyLTE4LjgtNDItNDJsMC02ek00MzIgNjRhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTAgMjQwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgMjIuNGMwIDIzLTE4LjYgNDEuNi00MS42IDQxLjZsLTE0NC44IDBjNi42LTEyLjUgMTAuNC0yNi44IDEwLjQtNDJsMC02YzAtNTEuNS0xNy40LTk4LjktNDYuNS0xMzYuNyAyMi42LTE0LjcgNDkuNi0yMy4zIDc4LjUtMjMuM3oiXX0sX1p0PUl2ZSxBdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leSIsaWNvbjpbNTEyLDUxMixbNjM0OTksImhvbWUtbGciXSwiZTNhZiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjQwIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiAxMjggMCAwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAweiJdfSxNWnQ9QXZlLE52ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dC1hbHQiXSwiZjJmNSIsIk01MDUgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDM2MSA5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzMjAgMTAyLjMgMzIwIDExMmwwIDgwLTExMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDExMiAwIDAgODBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4yTDUwNSAyNzN6TTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHoiXX0selp0PU52ZSxDWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZSIsaWNvbjpbMzg0LDUxMixbMTI4MTk2LDEyODQ1OSw2MTQ2Ml0sImYxNWIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnoiXX0sVFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDY5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE4My40LTE4My40IDcuMS03LjcgMTI3LjMgMGMzMC45IDAgNTYtMjUuMSA1Ni01NnMtMjUuMS01Ni01Ni01NkwzOTIuNyAyMDAgMjMzLjUgMjYuNEMyMjcuNSAxOS44IDIxOC45IDE2IDIwOS45IDE2bC00My43IDBjLTEwLjkgMC0xOC42IDEwLjctMTUuMiAyMS4xTDE3NS4xIDEwOS4yIDQxLTI0Ljl6TTEzMC4yIDIwMGwtMjQuNiAwLTUyLjgtNjZjLTMtMy44LTcuNi02LTEyLjUtNmwtMTkuOCAwYy0xMC40IDAtMTggOS44LTE1LjUgMTkuOUwzMiAyNTYgNSAzNjQuMUMyLjQgMzc0LjIgMTAuMSAzODQgMjAuNSAzODRsMTkuOCAwYzQuOSAwIDkuNS0yLjIgMTIuNS02bDUyLjgtNjYgOTkuNyAwLTU0LjMgMTYyLjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMWw0My43IDBjOSAwIDE3LjUtMy44IDIzLjYtMTAuNEwzMjAuNyAzOTAuNSAxMzAuMiAyMDB6Il19LCRadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zaG93ZXJzLWhlYXZ5IixpY29uOls1MTIsNTEyLFtdLCJmNzQwIiwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMi0xLjMtNi43LTEuOS0xMy43LTEuOS0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MCAxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4IDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjgtMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwem02LjggNzkuNmwtMzIgOTZDNjYuNiA1MDguMiA1MyA1MTUgNDAuNCA1MTAuOFMyMSA0OTMgMjUuMiA0ODAuNGwzMi05NkM2MS40IDM3MS44IDc1IDM2NSA4Ny42IDM2OS4yUzEwNyAzODcgMTAyLjggMzk5LjZ6bTEyMCAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMxNDEgNDkzIDE0NS4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTMjI3IDM4NyAyMjIuOCAzOTkuNnptMTEyIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzI1MyA0OTMgMjU3LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlMzMzkgMzg3IDMzNC44IDM5OS42em0xMjAgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMzczIDQ5MyAzNzcuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzQ1OSAzODcgNDU0LjggMzk5LjZ6Il19LERadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0NiIsIk0zMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1LjRjMCA0NS0yMy42IDg2LjYtNjIuMSAxMDkuOGwtNC42IDIuOEMxMzEuNCAxODQuNyA5NiAyNDcuMSA5NiAzMTQuNkw5NiAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY5LjRjMC0xNi43IDMuMy0zMyA5LjQtNDhMMzU5LjIgNTAwLjJjMTEuMSAxMy43IDMxLjMgMTUuOCA0NSA0LjdzMTUuOC0zMS4zIDQuNy00NUwyOTUuMiAzMjAgNDAwIDMyMCA0MzguNCAzNzEuMmMxMC42IDE0LjEgMzAuNyAxNyA0NC44IDYuNHMxNy0zMC43IDYuNC00NC44bC00My4yLTU3LjZDNDM3LjMgMjYzLjEgNDIzLjEgMjU2IDQwOCAyNTZsLTg5IDAtNjIuOS03NS41YzQwLjMtMzYgNjMuOS04Ny45IDYzLjktMTQzLjFsMC01LjR6TTEwNCAxNDRhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LFJ2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJuLWRvd24iLGljb246WzM4NCw1MTIsWzEwNTQ5LCJsZXZlbC1kb3duLWFsdCJdLCJmM2JlIiwiTTE2OS40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzMyLjkgMzIwIDMyMCAzMjBsLTY0IDAgMC0xNjBDMjU2IDcxLjYgMTg0LjQgMCA5NiAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MC02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWwxMjggMTI4eiJdfSxMWnQ9UnZlLE92ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1yaWdodC1hbmQtZG93bi1sZWZ0LWZyb20tY2VudGVyIixpY29uOls1MTIsNTEyLFsiZXhwYW5kLWFsdCJdLCJmNDI0IiwiTTM0NCAwTDQ4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3LTM5LTM5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzMzNC4zIDAgMzQ0IDB6TTE2OCA1MTJMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwwIDM0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJTMzQuMSAzMjAuMiA0MSAzMjdsMzkgMzkgODctODdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTMTc3LjcgNTEyIDE2OCA1MTJ6Il19LEVadD1PdmUsUFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItdGFnIixpY29uOls2NDAsNTEyLFtdLCJmNTA3IiwiTTI1Ni4xIDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNCAzMDRsNTkuNCAwYzYuNyAwIDEzLjIgLjQgMTkuNyAxLjEtLjkgNC45LTEuNCA5LjktMS40IDE1bDAgOTIuMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWwzMS45IDMxLjktMjg2LjMgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6TTM1Mi4xIDQxMi4ybDAtOTIuMWMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5Mi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw5NiA5NmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOWwtNzYuMSA3Ni4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMGwtOTYtOTZjLTktOS0xNC4xLTIxLjItMTQuMS0zMy45em0xMDQtNDQuMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxJWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zcGFya2xlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTA1ZCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIwOGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjJjLTE5LjIgNS40LTM0LjcgMjAuNC00MC40IDQwLjNsLTYuNSAyMi43LTIyLjcgNi41Yy0yNS4yIDcuMi00Mi41IDMwLjItNDIuNSA1Ni40IDAgMjIuMSAxMi40IDQyIDMxLjQgNTEuOS0yNy41IDE3LjgtNjAuMiAyOC4xLTk1LjQgMjguMWwtMTkuMiAwYy01OS42IDAtMTE2LjktMjIuOS0xNjAtNjRMNzYuNCAzNDFjLTE2LTE1LjItMTYuNi00MC42LTEuNC01Ni42czQwLjYtMTYuNiA1Ni42LTEuNGw2MC41IDU3LjZjMC0xLjUtLjEtMy4xLS4xLTQuNmwwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS03LjMgMzI2LjZjLTEuMS0zLjktNC43LTYuNi04LjctNi42cy03LjYgMi43LTguNyA2LjZsLTcuMyAyNS40LTI1LjQgNy4zYy0zLjkgMS4xLTYuNiA0LjctNi42IDguN3MyLjcgNy42IDYuNiA4LjdsMjUuNCA3LjMgNy4zIDI1LjRjMS4xIDMuOSA0LjcgNi42IDguNyA2LjZzNy42LTIuNyA4LjctNi42bDcuMy0yNS40IDI1LjQtNy4zYzMuOS0xLjEgNi42LTQuNyA2LjYtOC43cy0yLjctNy42LTYuNi04LjdsLTI1LjQtNy4zLTcuMy0yNS40ek0xMDQgMTIwbDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMMTA0IDE2OCA5MC4yIDIxNi4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTYgMTY4IDcuNyAxNTQuMkMzLjEgMTUyLjkgMCAxNDguNyAwIDE0NHMzLjEtOC45IDcuNy0xMC4yTDU2IDEyMCA2OS44IDcxLjdDNzEuMSA2Ny4xIDc1LjMgNjQgODAgNjRzOC45IDMuMSAxMC4yIDcuN0wxMDQgMTIwek01ODQgNDA4bDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMNTg0IDQ1NiA1NzAuMiA1MDQuM2MtMS4zIDQuNi01LjUgNy43LTEwLjIgNy43cy04LjktMy4xLTEwLjItNy43TDUzNiA0NTYgNDg3LjcgNDQyLjJjLTQuNi0xLjMtNy43LTUuNS03LjctMTAuMnMzLjEtOC45IDcuNy0xMC4yTDUzNiA0MDggNTQ5LjggMzU5LjdjMS4zLTQuNiA1LjUtNy43IDEwLjItNy43czguOSAzLjEgMTAuMiA3LjdMNTg0IDQwOHoiXX0sQVp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1kb3QiLGljb246WzUxMiw1MTIsW10sImU0YmUiLCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45UzE3OS4xIDY0IDE5MiA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2OS40IDM5My40bDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDQ0OCAzMjAgNDQ4bC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOXpNMzIgMjI0bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQgMzMyLjkgNjQgMzIwbDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTNDQ4IDE3OS4xIDQ0OCAxOTJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTY0LTY0ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sRnZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc2FkLWNyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTU3LCJzYWQtY3J5Il0sImY1YjMiLCJNMzUyIDQ5My40Yy0yOS42IDEyLTYyLjEgMTguNi05NiAxOC42cy02Ni40LTYuNi05Ni0xOC42TDE2MCAyOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzEuN0M0NC40IDQyMS42IDAgMzQ0IDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDg4LTQ0LjQgMTY1LjYtMTEyIDIxMS43TDQwMCAyOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxOTcuNHpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0sTlp0PUZ2ZSxSWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9uZy1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTY5IiwiTTI4OC0xNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyLjJjLTIyLjktMTUuMy01MC40LTI0LjItODAtMjQuMi03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NFM5Ni41IDQzMiAxNzYgNDMyYzMwIDAgNTcuOC05LjEgODAuOC0yNC44IDMuMyAxNC4yIDE2IDI0LjggMzEuMiAyNC44IDE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzA0IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNOTYgMjg4YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMjQgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQ2NHoiXX0sT1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM0IiwiTTI4OCAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA0NC4xLTEyOCAwIDAtNDQuMUMyMDQuNyAzNTkgMTkyIDMzNyAxOTIgMzEybDAtNDBjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDQwem0xNiAxMDRsMC0yNy4zYzE5LjktMjIuNSAzMi01Mi4yIDMyLTg0LjdsMC0zMmMwLTI2LjctNy4zLTUxLjYtMTkuOS03My4xIDExLjEtNC41IDIzLjItNi45IDM1LjktNi45IDUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCA0MC42LTExMiAwek02NCAzNzUuNEM0NC45IDM2NC40IDMyIDM0My43IDMyIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xbDAgMzJjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuMy0xMTIgMCAwLTQwLjZ6TTEyOCAzMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptMzIwIDBhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTI0IDQ2NGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEJ2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcnNzIixpY29uOls0NDgsNTEyLFsicnNzLXNxdWFyZSJdLCJmMTQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMzcgMCAyNDggMTExIDI0OCAyNDggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTAuNS04OS41LTIwMC0yMDAtMjAwLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDgzLjkgMCAxNTIgNjguMSAxNTIgMTUyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDEyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxGWnQ9QnZlLEJadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTI0IDI2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEhadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1kaWFncmFtIixpY29uOls1MTIsNTEyLFtdLCJlNjk1IiwiTTgwIDMyQzUzLjUgMzIgMzIgNTMuNSAzMiA4MHMyMS41IDQ4IDQ4IDQ4bDE1MiAwIDAgNDAtNDggNDgtNzIgMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA2NC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw3MiAwIDQ4IDQ4IDAgNDAtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNDAgNDgtNDggNzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMzkuOC0zMi4yLTcyLTcyLTcybC03MiAwLTQ4LTQ4IDAtNDAgMTUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhMODAgMzJ6Il19LEh2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXRpcmVkIixpY29uOls1MTIsNTEyLFsxMjg1NTUsInRpcmVkIl0sImY1YzgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NC43IDMyOC43YzIyLTIyIDUzLjktNDAuNyA5MS4zLTQwLjdzNjkuMyAxOC43IDkxLjMgNDAuN2MxMS4xIDExLjEgMjAuMSAyMy40IDI2LjQgMzUuNCA2LjIgMTEuNyAxMC4zIDI0LjQgMTAuMyAzNS45IDAgNS4yLTIuNiAxMC4yLTYuOSAxMy4ycy05LjggMy43LTE0LjcgMS44bC0yMC41LTcuN2MtMjYuOS0xMC4xLTU1LjUtMTUuMy04NC4zLTE1LjNsLTMuMiAwYy0yOC44IDAtNTcuMyA1LjItODQuMyAxNS4zTDE0OS42IDQxNWMtNC45IDEuOC0xMC40IDEuMi0xNC43LTEuOFMxMjggNDA1LjIgMTI4IDQwMGMwLTExLjYgNC4yLTI0LjIgMTAuMy0zNS45IDYuMy0xMiAxNS4zLTI0LjMgMjYuNC0zNS40ek0xMjIuNiAxNTkuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxxWnQ9SHZlLGpadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJmMGE0IiwiTTQ4MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjA4IDAgMC02NCAyMDggMHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem02NC02NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0yODggMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bS04OC05NmwuNiAwYy01LjQgOS40LTguNiAyMC4zLTguNiAzMiAwIDEzLjIgNCAyNS40IDEwLjggMzUuNi0yNC45IDguNy00Mi44IDMyLjUtNDIuOCA2MC40IDAgMTEuNyAzLjEgMjIuNiA4LjYgMzJsLTguNiAwQzcxLjYgNDQ4IDAgMzc2LjQgMCAyODhsMC02MS43YzAtNDIuNCAxNi45LTgzLjEgNDYuOS0xMTMuMWwxMS42LTExLjZDODIuNSA3Ny41IDExNS4xIDY0IDE0OSA2NGwyNyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODhjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDBsMC01NmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDU2YzAgMzkuOCAzMi4yIDcyIDcyIDcyeiJdfSxWWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAiLGljb246WzM4NCw1MTIsWzg1OTNdLCJmMDYyIiwiTTIxNC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDEwOS4zIDE2MCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3MC43IDEwNS40IDEwNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6Il19LFVadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjdWJlcy1zdGFja2VkIixpY29uOls1MTIsNTEyLFtdLCJlNGU2IiwiTTE5MiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6bTMyIDM1Mmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzIwIDE5Mmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS0xODIuNi0zLjljMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDUuMyA0NS4zYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC00NS4zIDQ1LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDkyLjEgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDQ1LjMtNDUuM3pNMzIgMzg0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0scXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkLWNvbWJhdGFudCIsaWNvbjpbNTc2LDUxMixbImNoaWxkLXJpZmxlIl0sImU0ZTAiLCJNMTc2LjUgMTI4YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0tMTYgMzUybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTIuMiAyMC45IDMzLjJjOS40IDE1IDI5LjIgMTkuNCA0NC4xIDEwczE5LjQtMjkuMiAxMC00NC4xbC0zOS45LTYzLjNDMjY2LjggMTg0IDIyMy4zIDE2MCAxNzYuNSAxNjBTODYuMiAxODQgNjEuMyAyMjMuNkwyMS40IDI4N2MtOS40IDE1LTQuOSAzNC43IDEwIDQ0LjFzMzQuNyA0LjkgNDQuMS0xMGwyMC45LTMzLjIgMCAxOTIuMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyek00NDguNSAwbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDAgMTAwLjNjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDAgMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsNTkuNSAwYzEwLjQgMCAxOC05LjggMTUuNS0xOS45bC0yMy05Mi4xIDQ0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC00OCAwIDAtMjYuNyA1My4xLTE3LjdjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJsMC04NC41YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNTYtMTYgNS4zIDAtMTA5LjNjMC0xMS44LTYuNC0yMi4yLTE2LTI3LjdsMC0xMTYuM2MwLTguOC03LjItMTYtMTYtMTZ6Il19LFdadD1xdmUsR1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlc3QtcGF0Y2hlcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NiIsIk0yMDAgMjkzLjlMMjAwIDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcwLjVjMC05LjUgMi44LTE4LjcgOC4xLTI2LjZsNDcuOS03MS44YzUuMy03LjkgOC4xLTE3LjEgOC4xLTI2LjZMNjQgNDhDNjQgMjEuNSA4NS41IDAgMTEyIDBsMy41IDBjLjMgMCAuNiAwIDEgMCAuNiAwIDEuMiAwIDEuOCAwIDE4LjggMCAzNC4xIDkuNyA0NC4xIDE4LjggOS4zIDguNCAyOC41IDIxLjIgNjEuNyAyMS4yczUyLjQtMTIuOCA2MS43LTIxLjJjMTAtOS4xIDI1LjMtMTguOCA0NC4xLTE4LjggLjYgMCAxLjIgMCAxLjggMCAuMyAwIC42IDAgMSAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTcuNWMwIDkuNSAyLjggMTguNyA4LjEgMjYuNmw0Ny45IDcxLjhjNS4zIDcuOSA4LjEgMTcuMSA4LjEgMjYuNkw0NDggNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNzAuMWMwLTMuOSAuNS03LjggMS40LTExLjZMMzAzLjYgNjUuNEMyODUuOSA3Ny4yIDI1OS44IDg4IDIyNCA4OHMtNjEuOS0xMC44LTc5LjYtMjIuNmw1NC4yIDIxNi44YzEgMy44IDEuNCA3LjcgMS40IDExLjZ6TTk2IDQ1NmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6TTYzLjUgMjU1LjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN0w3OSAyODggNjMuNSAzMDMuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3czEyLjMgNC43IDE3IDBMOTYgMzA1IDExMS41IDMyMC41YzQuNyA0LjcgMTIuMyA0LjcgMTcgMHM0LjctMTIuMyAwLTE3TDExMyAyODggMTI4LjUgMjcyLjVjNC43LTQuNyA0LjctMTIuMyAwLTE3cy0xMi4zLTQuNy0xNyAwTDk2IDI3MSA4MC41IDI1NS41Yy00LjctNC43LTEyLjMtNC43LTE3IDB6TTMwNCAyODBsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOCAwIDAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sanZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtZW1wdHkiLGljb246WzUxMiw1MTIsWyJnbGFzcy1tYXJ0aW5pIl0sImYwMDAiLCJNMzIgMzJDMTkuMSAzMiA3LjQgMzkuOCAyLjQgNTEuOFMuMiA3Ny41IDkuNCA4Ni42bDIxNC42IDIxNC42IDAgMTQ2LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTE0Ni43IDIxNC42LTIxNC42YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDMyIDQ4MCAzMkwzMiAzMnpNMjU2IDI0Mi43TDEwOS4zIDk2IDQwMi43IDk2IDI1NiAyNDIuN3oiXX0sS1p0PWp2ZSxZWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmV0IixpY29uOls0NDgsNTEyLFsxMjk1MjJdLCJmMDc2IiwiTTAgMTc2TDAgMjg4QzAgNDExLjcgMTAwLjMgNTEyIDIyNCA1MTJTNDQ4IDQxMS43IDQ0OCAyODhsMC0xMTItMTI4IDAgMCAxMTJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xMTItMTI4IDB6bTAtNDhsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgNjR6bTMyMCAwbDEyOCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjR6Il19LFpadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWJhcnJpZXIiLGljb246WzY0MCw1MTIsW10sImU1NjIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDI2Ni4zIDE0OS4yIDk2IDY0IDk2IDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDUuMiA5NmwtNzQuMyAwLTUuNCAxMC43LTkwLjYgMTgxLjMgNzQuMyAwIDUuNC0xMC43IDkwLjYtMTgxLjN6TTM2Mi44IDI4OGw3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuMy03NC4zIDAtNS40IDEwLjctOTAuNiAxODEuM3pNMjAyLjggOTZsLTUuNCAxMC43LTkwLjYgMTgxLjMgNzQuMyAwIDUuNC0xMC43IDkwLjYtMTgxLjMtNzQuMyAwem0yODggMTkybDg1LjIgMCAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNy04NS4yIDE3MC4zeiJdfSxWdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFzcy1kcmFmdGluZyIsaWNvbjpbNTEyLDUxMixbImRyYWZ0aW5nLWNvbXBhc3MiXSwiZjU2OCIsIk05OS4zIDI1Ni4xbDY5LjQtMTE5LjljLTUuNi0xMi4yLTguOC0yNS44LTguOC00MC4yIDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAxNC4zLTMuMSAyNy45LTguOCA0MC4ybDQ0LjQgNzYuN2MtMjMuMSAyNi01My43IDQ1LjEtODguNCA1My44TDI1NiAxOTEuOSAxODcuOSAzMDkuNWMyMS41IDYuOCA0NC4zIDEwLjUgNjguMSAxMC41IDcwLjcgMCAxMzMuOC0zMi43IDE3NC45LTg0IDExLjEtMTMuOCAzMS4yLTE2IDQ1LTVzMTYgMzEuMiA1IDQ1Yy01Mi43IDY1LjgtMTMzLjkgMTA4LTIyNC44IDEwOC0zNS40IDAtNjkuNC02LjQtMTAwLjctMTguMUw5OC43IDQ2My43Qzk0IDQ3MS44IDg3IDQ3OC40IDc4LjYgNDgyLjZMMjMuMiA1MTAuM2MtNSAyLjUtMTAuOSAyLjItMTUuNi0uN1MwIDUwMS41IDAgNDk2bDAtNTUuNGMwLTguNCAyLjItMTYuNyA2LjUtMjQuMWw2MC0xMDMuN2MtMTIuOC0xMS4yLTI0LjYtMjMuNS0zNS4zLTM2LjgtMTEuMS0xMy44LTguOC0zMy45IDUtNDVzMzMuOS04LjggNDUgNWM1LjcgNy4xIDExLjggMTMuOCAxOC4yIDIwLjF6TTM4MS4xIDQwNy45YzMyLjUtMTMgNjIuNC0zMSA4OC45LTUyLjlsMzUuNiA2MS41YzQuMiA3LjMgNi41IDE1LjYgNi41IDI0LjFsMCA1NS40YzAgNS41LTIuOSAxMC43LTcuNiAxMy42cy0xMC42IDMuMi0xNS42IC43bC01NS40LTI3LjdjLTguNC00LjItMTUuNC0xMC44LTIwLjEtMTguOWwtMzIuMy01NS44ek0yNTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sWFp0PVZ2ZSxRWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBlcnNvbi1jb25maW5lZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTU3NyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05NiAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptODAgMTA0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMDIuMWMwIDM2LjQtMjkuNSA2NS45LTY1LjkgNjUuOS0xNy41IDAtMzQuMy02LjktNDYuNi0xOS4zbC01NC43LTU0LjctMjguMSA1Ni4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDQ4LTk2YzQuNi05LjIgMTMuMy0xNS42IDIzLjUtMTcuM3MyMC41IDEuNyAyNy44IDlsNDEuNCA0MS40IDAtNTguN3oiXX0sSlp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYXRlLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTVhIiwiTTE3NiAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNDIuNyA2NCA1NiA2NHpNMjQgMTM2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDQ4YzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2ek00MDAgMzJjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2MGwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDE3NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zLjUgMzQ3LjZDMS42IDMzMi45IDEzIDMyMCAyNy44IDMyMGw0NTYuNCAwYzE0LjggMCAyNi4yIDEyLjkgMjQuNCAyNy42LTYuMyA1MC4yLTQ0LjQgODkuNC05Mi42IDk4LjRsMCAyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yYy00OC4yLTktODYuMy00OC4yLTkyLjUtOTguNHoiXX0sVXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ24taGFuZ2luZyIsaWNvbjpbNTEyLDUxMixbInNpZ24iXSwiZjRkOSIsIk05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM1MiAwIDAgMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzUyLTMyIDBDMTQuMyAxMjggMCAxMTMuNyAwIDk2UzE0LjMgNjQgMzIgNjRsMzIgMCAwLTMyQzY0IDE0LjMgNzguMyAwIDk2IDB6TTIwOCAxNzZsMjQwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNDRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI0MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE0NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sZVh0PVV2ZSxXdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLWJhdHRlcnkiLGljb246WzUxMiw1MTIsWyJiYXR0ZXJ5LWNhciJdLCJmNWRmIiwiTTgwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxNiAwek0zOTIgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0zMnpNNjQgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDIxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LHRYdD1XdmUsa29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXJ0IixpY29uOls2NDAsNTEyLFsxMjgwODUsInQtc2hpcnQiLCJ0c2hpcnQiXSwiZjU1MyIsIk0zMjAuMiAxMTJjNDQuMiAwIDgwLTM1LjggODAtODBsNTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDYxNy42IDE2OS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC01MC43IDUwLjdjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC00MS40LTQxLjQgMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE5MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIyNC00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDIyLjkgMjE0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDE0MS41IDUwLjdjMTItMTIgMjguMy0xOC43IDQ1LjMtMTguN2w1My41IDBjMCA0NC4yIDM1LjggODAgODAgODB6Il19LGFYdD1rb2Usc1h0PWtvZSxpWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFyYWdyYXBoIixpY29uOls0NDgsNTEyLFsxODJdLCJmMWRkIiwiTTE2MCAwTDQxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDE2LTQ4IDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjAtNDggMEM3MS42IDMyMCAwIDI0OC40IDAgMTYwUzcxLjYgMCAxNjAgMHoiXX0sR3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3Blcy1idWxrIixpY29uOls1NzYsNTEyLFsibWFpbC1idWxrIl0sImY2NzQiLCJNMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCAxNjAgODAgMCAwLTMyYzAtNTMgNDMtOTYgOTYtOTZsMjA4IDAgMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OEwxMTIgMHpNMjQwIDEyOGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMiA4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxMTIgMTYwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xOTJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI4OCAwem0yMDAgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00OCAyNTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTAuNCAxNTYuNiA4Ni4yYzEuMSAuNiAyLjIgLjkgMy40IC45czIuNC0uMyAzLjQtLjlMMzIwIDMxNC40IDMyMCAzMDRjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMjU2ek0zMjAgMzY5LjJMMTg2LjYgNDQyLjZjLTguMSA0LjUtMTcuMyA2LjgtMjYuNiA2LjhzLTE4LjQtMi40LTI2LjYtNi44TDAgMzY5LjIgMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NC44eiJdfSxyWHQ9R3ZlLG9YdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJndWl0YXIiLGljb246WzUxMiw1MTIsW10sImY3YTYiLCJNNDY1IDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDM4MyA1NWMtMi40IDIuNC00LjMgNS4zLTUuNSA4LjVsLTE1LjQgNDEtNzcuNSA3Ny42Yy00NS4xLTI5LjQtOTkuMy0zMC4yLTEzMSAxLjYtMTEgMTEtMTggMjQuNi0yMS40IDM5LjYtMy43IDE2LjYtMTkuMSAzMC43LTM2LjEgMzEuNi0yNS42IDEuMy00OS4zIDEwLjctNjcuMyAyOC42LTQ0LjggNDQuOC0zNi40IDEyNS44IDE4LjcgMTgwLjlTMTgzLjYgNTI4IDIyOC40IDQ4My4yYzE3LjktMTcuOSAyNy40LTQxLjcgMjguNi02Ny4zIC45LTE3IDE1LTMyLjMgMzEuNi0zNi4xIDE1LTMuNCAyOC42LTEwLjUgMzkuNi0yMS40IDMxLjgtMzEuOCAzMS04NS45IDEuNi0xMzFsNzcuNi03Ny42IDQxLTE1LjRjMy4yLTEuMiA2LjEtMy4xIDguNS01LjVsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDY1IDd6TTIwOCAyNTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSxuWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2UiLGljb246WzUxMiw1MTIsWzEyOTUyM10sImYwZjIiLCJNMjAwIDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQyNCAyMjQgMCAwLTQyNGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTQxNiA5NmwwIDM4NCAzMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwek05NiA0ODBsMC0zODQtMzIgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMHoiXX0sS3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS11cCIsaWNvbjpbNTEyLDUxMixbNjE0NjcsImFycm93LWFsdC1jaXJjbGUtdXAiXSwiZjM1YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTEuMy0zODcuM2wxMDQgMTA0YzQuNiA0LjYgNS45IDExLjUgMy41IDE3LjRTMzY2LjUgMjU2IDM2MCAyNTZsLTU2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05Ni01NiAwYy02LjUgMC0xMi4zLTMuOS0xNC44LTkuOXMtMS4xLTEyLjkgMy41LTE3LjRsMTA0LTEwNGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHoiXX0sbFh0PUt2ZSxjWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZiIsaWNvbjpbMzIwLDUxMixbMTAyXSwiNDYiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTEyOCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sZFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InhtYXJrcy1saW5lcyIsaWNvbjpbNjQwLDUxMixbXSwiZTU5YSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6bTAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnpNNyAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6TTI2NSAxNjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1ek00NTUgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAweiJdfSxZdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtb2NlYW5pYSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLW9jZWFuaWEiXSwiZTQ3YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDE1MC42YzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDQxLjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTYtMTZjLTQuMi00LjItNi42LTEwLTYuNi0xNnpNNDMyIDI1NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDExLjMgMzc5LjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpNMjI0IDQzMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0tOTYtODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTguN2MwLTguNSAzLjQtMTYuNiA5LjQtMjIuNmw0OC00OGM0LjItNC4yIDEwLTYuNiAxNi02LjZsNi42IDBjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTYgNy4yLTE2IDE2LTE2bDYuNiAwYzYgMCAxMS44IDIuNCAxNiA2LjZsNDggNDhjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgNTAuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtNTAuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTMuMy0xMy4zYy02LTYtMTQuMS05LjQtMjIuNi05LjRMMTI4IDM1MnoiXX0sdVh0PVl2ZSxwWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjRiMyIsIk00MS0yNUMzMS42LTM0LjMgMTYuNC0zNC4zIDctMjVTLTIuMy0uNCA3IDlMNTM1IDUzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjYtOTYuNmM0NC40LTQzLjIgNzEuNi0xMDEuOCA3MS42LTE2Ni41IDAtMTMyLjUtMTE0LjYtMjQwLTI1Ni0yNDAtNjMgMC0xMjAuOCAyMS40LTE2NS40IDU2LjhMNDEtMjV6bTE5LjQgMTU1QzQyLjIgMTYzIDMyIDIwMC4zIDMyIDIzOS45IDMyIDI5NC4yIDUxLjIgMzQ0LjIgODMuNiAzODQuNEwzNC44IDQ3Ni43Yy00LjggOS0zLjMgMjAgMy42IDI3LjVTNTYuMSA1MTQgNjUuNSA1MTBsMTE4LjQtNTAuN2MzMS44IDEzLjMgNjcuMSAyMC43IDEwNC4xIDIwLjcgMzYuNCAwIDcwLjktNy4xIDEwMi4zLTE5LjlMNjAuMyAxMzAuMXoiXX0saFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYXkiLGljb246WzQ0OCw1MTIsWzk2NTRdLCJmMDRiIiwiTTkxLjIgMzYuOWMtMTIuNC02LjgtMjcuNC02LjUtMzkuNiAuN1MzMiA1Ny45IDMyIDcybDAgMzY4YzAgMTQuMSA3LjUgMjcuMiAxOS42IDM0LjRzMjcuMiA3LjUgMzkuNiAuN2wzMzYtMTg0YzEyLjgtNyAyMC44LTIwLjUgMjAuOC0zNS4xcy04LTI4LjEtMjAuOC0zNS4xbC0zMzYtMTg0eiJdfSxmWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbC1jaXJjbGUtY2hlY2siLGljb246WzUxMiw1MTIsW10sImU1OTYiLCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMEwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE2MS40Yy02Ni4xIDMwLjMtMTEyIDk3LjEtMTEyIDE3NC42IDAgMzkuNyAxMiA3Ni42IDMyLjcgMTA3LjItMTAuMyAzLjEtMjEuMyA0LjgtMzIuNyA0LjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJMNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyem05NiAzMmwwIDEyOCA5NiAwIDAtMTI4LTk2IDB6bTk2IDMzNmExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0sbVh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0YzkiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxnWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2VkaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMGRmIiwiTTIzMiAzMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI2LjVDODguOCA3My45IDE2IDE1Ni40IDE2IDI1NlM4OC44IDQzOC4xIDE4NCA0NTMuNWwwIDI2LjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0LjZjNDYuOC0zLjcgODkuMS0yMy42IDEyMS4zLTUzLjkgMTIuOS0xMi4xIDEzLjQtMzIuNCAxLjMtNDUuMnMtMzIuNC0xMy40LTQ1LjItMS4zYy0yMC43IDE5LjYtNDcuNiAzMi43LTc3LjMgMzYuMmwwLTI3MC4xYzI5LjggMy41IDU2LjYgMTYuNiA3Ny4zIDM2LjIgMTIuOSAxMi4xIDMzLjEgMTEuNSA0NS4yLTEuM3MxMS41LTMzLjEtMS4zLTQ1LjJDMzIxLjEgODAuMiAyNzguOCA2MC4zIDIzMiA1Ni42TDIzMiAzMnptLTQ4IDkxLjhsMCAyNjQuNEMxMjQuMyAzNzMuOCA4MCAzMjAuMSA4MCAyNTZzNDQuMy0xMTcuOCAxMDQtMTMyLjJ6Il19LGJYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdXp6bGUtcGllY2UiLGljb246WzUxMiw1MTIsWzEyOTUxM10sImYxMmUiLCJNMjI0IDBjMzUuMyAwIDY0IDIxLjUgNjQgNDggMCAxMC40LTQuNCAyMC0xMiAyNy45LTYuNiA2LjktMTIgMTUuMy0xMiAyNC45IDAgMTUgMTIuMiAyNy4yIDI3LjIgMjcuMmw0NC44IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0NC44YzAgMTUgMTIuMiAyNy4yIDI3LjIgMjcuMiA5LjUgMCAxOC01LjQgMjQuOS0xMiA3LjktNy41IDE3LjUtMTIgMjcuOS0xMiAyNi41IDAgNDggMjguNyA0OCA2NHMtMjEuNSA2NC00OCA2NGMtMTAuNCAwLTIwLjEtNC40LTI3LjktMTItNi45LTYuNi0xNS4zLTEyLTI0LjktMTItMTUgMC0yNy4yIDEyLjItMjcuMiAyNy4yTDM4NCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTU2LjggMGMtMTIuOCAwLTIzLjItMTAuNC0yMy4yLTIzLjIgMC05LjIgNS44LTE3LjMgMTMuMi0yMi44IDExLjYtOC43IDE4LjgtMjAuNyAxOC44LTM0IDAtMjYuNS0yOC43LTQ4LTY0LTQ4cy02NCAyMS41LTY0IDQ4YzAgMTMuMyA3LjIgMjUuMyAxOC44IDM0IDcuNCA1LjUgMTMuMiAxMy41IDEzLjIgMjIuOCAwIDEyLjgtMTAuNCAyMy4yLTIzLjIgMjMuMkw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzQzLjJjMC0xMi44IDEwLjQtMjMuMiAyMy4yLTIzLjIgOS4yIDAgMTcuMyA1LjggMjIuOCAxMy4yIDguNyAxMS42IDIwLjcgMTguOCAzNCAxOC44IDI2LjUgMCA0OC0yOC43IDQ4LTY0cy0yMS41LTY0LTQ4LTY0Yy0xMy4zIDAtMjUuMyA3LjItMzQgMTguOC01LjUgNy40LTEzLjUgMTMuMi0yMi44IDEzLjItMTIuOCAwLTIzLjItMTAuNC0yMy4yLTIzLjJMMCAxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTA4LjggMGMxNSAwIDI3LjItMTIuMiAyNy4yLTI3LjIgMC05LjUtNS40LTE4LTEyLTI0LjktNy41LTcuOS0xMi0xNy41LTEyLTI3LjkgMC0yNi41IDI4LjctNDggNjQtNDh6Il19LHZYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxtZXQtdW4iLGljb246WzUxMiw1MTIsW10sImU1MDMiLCJNNDc5LjUgMjI0QzQ3MS4yIDk4LjkgMzY3LjIgMCAyNDAgMCAxMDcuNSAwIDAgMTA3LjUgMCAyNDBsMCA1Ni4zQzAgMzQ0LjggMzkuMiAzODQgODcuNyAzODRsMTI3LjMgMCAxMjguNiAxMjEuNGM0LjUgNC4yIDEwLjQgNi42IDE2LjUgNi42bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg2LjUgMC0xLjUtMS41IDAtMTc0LjUgMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLS41IDB6TTMyMCA0MTcuMmwtNzgtNzMuNyAzMi40LTU1LjUgNDUuNiAwIDAgMTI5LjJ6TTI4NS4zIDEwMy4xbDM0LjcgNTIgMC00My4yYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyIDAgNDMuMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpNMTYwIDExMmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2eiJdfSx4WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xhc3Mtd2F0ZXIiLGljb246WzM4NCw1MTIsW10sImU0ZjQiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNNzMgMTU2LjVsLTYuNi05Mi41IDI1MS4zIDAtNi42IDkyLjUtMjQuMiAxMi4xYy0xOS40IDkuNy00Mi4yIDkuNy02MS42IDAtMjAuOS0xMC40LTQ1LjUtMTAuNC02Ni40IDAtMTkuNCA5LjctNDIuMiA5LjctNjEuNiAwTDczIDE1Ni41eiJdfSx5WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLWJvbHQiLGljb246WzU3Niw1MTIsW10sImU0ZmMiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNzcuNC03N2MtNS44LTQuMi0xMy44LTQtMTkuNCAuNWwtODAgNjRjLTUuMyA0LjItNy40IDExLjQtNS4xIDE3LjhTMzY5LjIgNDE2IDM3NiA0MTZsMzIuOSAwLTE1LjkgNDIuNGMtMi41IDYuNy0uMiAxNC4zIDUuNiAxOC42czEzLjggNCAxOS40LS41bDgwLTY0YzUuMy00LjIgNy40LTExLjQgNS4xLTE3LjhTNDk0LjggMzg0IDQ4OCAzODRsLTMyLjkgMCAxNS45LTQyLjRjMi41LTYuNyAuMi0xNC4zLTUuNi0xOC42eiJdfSx3WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHVtcC1zb2FwIixpY29uOlszMjAsNTEyLFtdLCJlMDZiIiwiTTk2IDBsMCA4MCAxMjggMCAwLTI0IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgOCAyOTYgOGwtNzIgMCAwLThjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBDMTEwLjMtMzIgOTYtMTcuNyA5NiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDEyOHpNMjI0IDM0NGMwIDM1LjMtMjguNyA1Ni02NCA1NnMtNjQtMjAuNy02NC01NmMwLTMyLjUgMzctODAuOSA1MC45LTk3LjkgMy4yLTMuOSA4LjEtNi4xIDEzLjEtNi4xczkuOSAyLjIgMTMuMSA2LjFDMTg3IDI2My4xIDIyNCAzMTEuNSAyMjQgMzQ0eiJdfSxrWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1NyIsIk00MCAyMDhjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMTgwLjIgMGMtNy42IDguNS0xMi4yIDE5LjctMTIuMiAzMiAwIDI1LjMgMTkuNSA0NiA0NC4zIDQ3LjktNy43IDguNS0xMi4zIDE5LjgtMTIuMyAzMi4xIDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0xMTMuMWMwLTQwLjItMTYtNzguOC00NC40LTEwNy4zLTIyLjgtMjIuOC01My42LTM1LjYtODUuOC0zNS42TDMzNiA2NGMtMjEuMyAwLTM5LjMgMTMuOS00NS42IDMzLjFsNzQuNSAyMy43YzguNCAyLjcgMTMuMSAxMS43IDEwLjQgMjAuMXMtMTEuNyAxMy4xLTIwLjEgMTAuNGwtNjcuMS0yMS40IDAgLjEtMjA0LTY0LjFDNjIuOSA1OS4yIDQwLjUgNzAuOSAzMy45IDkyczUuMSA0My41IDI2LjIgNTAuMkwyNjkuNSAyMDggNDAgMjA4eiJdfSxadmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9sbHkiLGljb246WzU3Niw1MTIsWyJkb2xseS1ib3giXSwiZjQ3MiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDcyLjkgMCA5Mi4xIDI3Ni4yYy0yMi41IDE3LjYtMzcgNDUtMzcgNzUuOCAwIDUzIDQzIDk2IDk2IDk2IDUyLjQgMCA5NS4xLTQyIDk2LTk0LjNsMjAyLjEtNjcuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41cy0yMy43LTI1LjgtNDAuNS0yMC4yTDMzMS44IDM1N2MtMTcuMi0yMi4xLTQzLjktMzYuNS03NC0zN0wxNjUuNyA0My44QzE1Ni45IDE3LjYgMTMyLjUgMCAxMDQuOSAwTDMyIDB6TTIwOCA0MTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMjgwLjUgODkuM2MtMjUuMiA4LjItMzkgMzUuMy0zMC44IDYwLjVsMzkuNiAxMjEuN2M4LjIgMjUuMiAzNS4zIDM5IDYwLjUgMzAuOGwxMjEuNy0zOS42YzI1LjItOC4yIDM5LTM1LjMgMzAuOC02MC41TDQ2Mi44IDgwLjVjLTguMi0yNS4yLTM1LjMtMzktNjAuNS0zMC44TDI4MC41IDg5LjN6Il19LFNYdD1admUsWWI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXJjbGlwIixpY29uOls1MTIsNTEyLFsxMjgyMDZdLCJmMGM2IiwiTTIyNC42IDEyLjhjNTYuMi01Ni4yIDE0Ny40LTU2LjIgMjAzLjYgMHM1Ni4yIDE0Ny40IDAgMjAzLjZsLTE2NCAxNjRjLTM0LjQgMzQuNC05MC4xIDM0LjQtMTI0LjUgMHMtMzQuNC05MC4xIDAtMTI0LjVMMjkyLjUgMTAzLjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxODUgMzAxLjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNjQtMTY0YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTE2NCAxNjRjLTUzLjEgNTMuMS01My4xIDEzOS4yIDAgMTkyLjNzMTM5LjIgNTMuMSAxOTIuMyAwTDQyOC4zIDI4NC4zYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMzQzLjQgNDU5LjZjLTc4LjEgNzguMS0yMDQuNyA3OC4xLTI4Mi44IDBzLTc4LjEtMjA0LjcgMC0yODIuOGwxNjQtMTY0eiJdfSxfWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVtb2NyYXQiLGljb246WzY0MCw1MTIsW10sImY3NDciLCJNNjQgMzJjMC04LjkgMy44LTIwLjkgNi4yLTI3LjMgMS0yLjggMy44LTQuNyA2LjgtNC43IDEuOSAwIDMuOCAuNyA1LjIgMi4xTDEyOCA0NS43IDE3My44IDIuMWMxLjQtMS4zIDMuMi0yLjEgNS4yLTIuMSAzIDAgNS44IDEuOCA2LjggNC43IDIuNCA2LjUgNi4yIDE4LjQgNi4yIDI3LjMgMCAyNi41LTIxLjkgNDItMjkuNSA0Ni42bDc2LjIgNzIuNmM2IDUuNyAxMy45IDguOCAyMi4xIDguOGwyMTkuMiAwIDMyIDBjNDAuMyAwIDc4LjIgMTkgMTAyLjQgNTEuMmwxOS4yIDI1LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNGwtMTkuMi0yNS42Yy01LjMtNy0xMS44LTEyLjgtMTkuMi0xN2wwIDg3LjQtMzUyIDAtNDAuNC05NC4zYy0zLjktOS4yLTE1LjMtMTIuNi0yMy42LTdsLTQyLjEgMjhjLTkuMSA2LjEtMTkuNyA5LjMtMzAuNyA5LjNsLTIgMEMyMy45IDI1NiAwIDIzMi4xIDAgMjAyLjcgMCAxOTAuNiA0LjEgMTc4LjkgMTEuNyAxNjkuNEw4Ny42IDc0LjZDNzguMSA2Ny40IDY0IDUzLjIgNjQgMzJ6TTU0NCAzNTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTYwIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjggMzUyIDB6TTI1NiAyODBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNDgtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMzY4IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFh2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYXJyb3ctdXAtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJleHRlcm5hbC1saW5rLXNxdWFyZSJdLCJmMTRjIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTI3MiAyOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTQuMSAwLTEwMyAxMDNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMDMtMTAzIDAgNTQuMXoiXX0sTVh0PVh2ZSx6WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVycnkiLGljb246WzY0MCw1MTIsW10sImU0ZWEiLCJNMjI0IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOC0uMSAwYy4xIC43IC4xIDEuMyAuMSAyIDAgMzAuMi03LjYgNTkuOC0yMiA4Ni4zbC0xMi43IDIzLjMtLjYgMWMtMjIuMy0xMS4zLTQ2LjUtMTYuOC03MC44LTE2LjctMzIuNSAuMi02NC45IDEwLjctOTIuNCAzMS40LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTIzLjYgLjItNDcuMSA1LjctNjguNyAxNi43bC0uNi0xLTEyLjctMjMuM2MtMTQuNC0yNi41LTIyLTU2LjItMjItODYuMyAwLS43IDAtMS40IC4xLTJsLS4xIDAgMC0xMjhjMC00NC4yIDM1LjgtODAgODAtODBsNDggMCAwLTMyek0xNjAgMjU2bDMyMCAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMjg4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMnpNNDAzLjQgNDc2LjFDMzc5LjEgNDk0LjMgMzUxLjEgNTEyIDMyMCA1MTJzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxDWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVpdG8iLGljb246WzU3Niw1MTIsW10sImU1MmIiLCJNMTc4LjUgNDk1LjJjLTcuNSA5LjYtMjEgMTIuMS0zMS4zIDUuM1MxMzMuNSA0ODAgMTM4LjkgNDY5bDEuMi0yLjIgMzYuMi01OCAwLTQxIC4zLTRjLjYtMy45IDIuMi03LjcgNC42LTEwLjlsMzkuMy01Mi4yLTY2LjIgNTkuNWMtMTcgMTUuMy0zOSAyMy43LTYxLjkgMjMuOGwtOC4xIDBjLTQ2LjYgMC04NC40LTM3LjgtODQuNC04NC40IDAtNDMgMzIuNC03OS4yIDc1LjEtODMuOWwxMzAuNS0xNC41LTQ0LjgtMzguMy0yLjQtMi40Yy01LjMtNi03LjMtMTQuNC01LjMtMjIuM2wxMy4zLTUzLjQtMjUuOS0zOC45LTEuMy0yLjFjLTUuOC0xMC44LTIuNy0yNC42IDcuNC0zMS43IDEwLjEtNy4xIDIzLjctNS4xIDMxLjQgNC4zbDEuNSAyIDMyIDQ4IDEuNCAyLjJjMi44IDUuMyAzLjUgMTEuNiAyLjEgMTcuNmwtMTIuMyA0OS4yIDUzLjMgNDUuNyAwLTI4LjhjMC0xMS44IDYuNS0yMi4xIDE2LTI3LjdsMC02MC41IC4zLTMuM2MxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjdzMTQuMiA1LjUgMTUuNyAxMi43bC4zIDMuMiAwIDYwLjVjOS42IDUuNSAxNiAxNS44IDE2IDI3LjdsMCAyOC45IDUzLjQtNDUuOC0xMi4zLTQ5LjJjLTEuNS01LjktLjctMTIuMiAyLjEtMTcuNmwxLjQtMi4yIDMyLTQ4IDEuNS0yYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCA0Ni42LTM3LjggODQuNC04NC40IDg0LjRsLTguMSAwYy0yMi44IDAtNDQuOS04LjUtNjEuOS0yMy44bC02Ni4xLTU5LjUgMzkuMiA1Mi4yYzIuNCAzLjIgNCA3IDQuNiAxMC45bC4zIDQgMCA0MSAzNi4yIDU4IDEuMiAyLjFjNS40IDExIDIgMjQuNy04LjMgMzEuNXMtMjMuOCA0LjQtMzEuMy01LjNsLTEuNC0yLTQwLTY0LTEuNi0zLjFjLTEuNC0zLjEtMi4xLTYuNi0yLjEtMTAuMWwwLTM5LjgtMzIuNC00My4xIDAgNzQuN2MwIDE3LjctMTQuMyAzMi0zMiAzMi0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc0LjYtMzIuMyA0MyAwIDM5LjhjMCAzLjUtLjcgNi45LTIuMSAxMC4xbC0xLjYgMy4xLTQwIDY0LTEuNCAyeiJdfSxUWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNGQxIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDQuN2MtMzUuNyAyLjktNjguNSAxNS42LTk2IDM1LjRsMC00YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQgMGMtMTMuOCAxOS4yLTI0LjEgNDEtMzAuMSA2NC41LTEuOS0uNC0zLjktLjUtNS45LS41bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDc0LjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDAuNy02Ny4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwyOC43IDI4LjctODkuNCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDg5LjQgMC0yOC43IDI4LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni01NmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNTYtNTZjLTYuMi02LjItMTYuNC02LjItMjIuNiAweiJdfSxRdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NiwiYXJyb3dzLWFsdC1oIl0sImYzMzciLCJNNTAyLjYgNDA2LjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgNDkyLjkgMzUyIDQ4MGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3pNOS40IDE1MC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxNjAgMTkuMSAxNjAgMzJsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZ6Il19LCRYdD1RdmUsRFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDc0IiwiTTI5NiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtMTUuNi0xNS42LTQwLjktMTUuNi01Ni42IDBzLTE1LjYgNDAuOSAwIDU2LjZjMzEuMiAzMS4yIDkuMSA4NC41LTM1IDg0LjUtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtNDQuMSA1My4zLTY2LjEgODQuNS0zNSAxNS42IDE1LjYgNDAuOSAxNS42IDU2LjYgMHMxNS42LTQwLjkgMC01Ni42Yy0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwQzM0OS4zIDEwNi4xIDI5NiA4NC4xIDI5NiA0MHpNMTYwIDIyNGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxMWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VtIixpY29uOls1MTIsNTEyLFsxMjgxNDJdLCJmM2E1IiwiTTExNi43IDMzLjhjNC41LTYuMSAxMS43LTkuOCAxOS4zLTkuOGwyNDAgMGM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjRsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MnptMzguNSAzOS44Yy0zLjMgMi41LTQuMiA3LTIuMSAxMC41TDIxMC41IDE3OS44IDYzLjMgMTkyYy00LjEgLjMtNy4zIDMuOC03LjMgOHMzLjIgNy42IDcuMyA4bDE5MiAxNmMuNCAwIC45IDAgMS4zIDBsMTkyLTE2YzQuMS0uMyA3LjMtMy44IDcuMy04cy0zLjItNy42LTcuMy04bC0xNDcuMi0xMi4zIDU3LjQtOTUuNmMyLjEtMy41IDEuMi04LjEtMi4xLTEwLjVzLTcuOS0yLTEwLjcgMUwyNTYgMTcyLjIgMTY1LjkgNzQuNmMtMi44LTMtNy40LTMuNC0xMC43LTF6Il19LEVYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQiLGljb246WzQ0OCw1MTIsWzEyODcwMV0sImY3ZDgiLCJNMjQgMEMxMC43IDAgMCAxMC43IDAgMjRTMTAuNyA0OCAyNCA0OGw4IDAgMCAxNDguOWMtMS45IDEuNC0zLjggMi45LTUuNiA0LjQtMTUuNSAxMy4yLTI2LjQgMzEuNi0yNi40IDU0LjYgMCA0Ni45IDE0LjMgODQuMSAzNyAxMTIuNSAxNC4yIDE3LjcgMzEuMSAzMS4zIDQ4LjUgNDEuOEw2NS42IDQ2OS45Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44Uzg1LjcgNTEyIDk2IDUxMmwyNTYgMGMxMC4zIDAgMTkuOS00LjkgMjYtMTMuM3M3LjctMTkuMSA0LjQtMjguOGwtMTkuOC01OS41YzE3LjQtMTAuNSAzNC4zLTI0LjEgNDguNS00MS44IDIyLjctMjguNCAzNy02NS41IDM3LTExMi41IDAtMjMuMS0xMC45LTQxLjUtMjYuNC01NC42LTEuOC0xLjUtMy43LTMtNS42LTQuNGwwLTE0OC45IDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFM0MzcuMyAwIDQyNCAwTDI0IDB6TTk2IDgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIyNCAyODhjLTg4LjQgMC0xNjAtMTQuMy0xNjAtMzJzNzEuNi0zMiAxNjAtMzIgMTYwIDE0LjMgMTYwIDMyLTcxLjYgMzItMTYwIDMyeiJdfSxQWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLWxlZnQiLGljb246WzE5Miw1MTIsW10sImU4MWIiLCJNMTI4IDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjE2QzAgMTQ5LjcgNTMuNyA5NiAxMjAgOTZsOCAweiJdfSxJWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbHMiLGljb246WzU3Niw1MTIsW10sImUxZjMiLCJNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6bTE3NiA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMTYwIDE1MmwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDExMmMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTUwNCAxNTkuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNTEyIDI2NGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTQ4IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEzOC43IDAgMTUyTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM5MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjY0eiJdfSxBWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0LWJ1dHRvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjEwYSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yMjQgNDAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sc1M9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MjE2NCwicmVjdGFuZ2xlLXRpbWVzIiwidGltZXMtcmVjdGFuZ2xlIiwid2luZG93LWNsb3NlIl0sImY0MTAiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTE2NyAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LE5YdD1zUyxSWHQ9c1MsT1h0PXNTLEZYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3cmVuY2giLGljb246WzU3Niw1MTIsWzEyODI5NV0sImYwYWQiLCJNNTA5LjQgOTguNmM3LjYtNy42IDIwLjMtNS43IDI0LjEgNC4zIDYuOCAxNy43IDEwLjUgMzcgMTAuNSA1Ny4xIDAgODguNC03MS42IDE2MC0xNjAgMTYwLTE3LjUgMC0zNC40LTIuOC01MC4yLThMMTQ2LjkgNDk4LjljLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHMtMjguMS03My43IDAtMTAxLjhMMjMyIDIxMC4yYy01LjItMTUuOC04LTMyLjYtOC01MC4yIDAtODguNCA3MS42LTE2MCAxNjAtMTYwIDIwLjEgMCAzOS40IDMuNyA1Ny4xIDEwLjUgMTAgMy44IDExLjggMTYuNSA0LjMgMjQuMWwtODguNyA4OC43Yy0zIDMtNC43IDcuMS00LjcgMTEuM2wwIDQxLjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDg4LjctODguN3oiXX0sdWY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2gtY2FuIixpY29uOls0NDgsNTEyLFs2MTQ2MCwidHJhc2gtYWx0Il0sImYyZWQiLCJNMTM2LjcgNS45QzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjF6TTMyIDE0NGwzODQgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0em04OCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxCWHQ9dWYsSnZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzIixpY29uOls0NDgsNTEyLFsidGgiXSwiZjAwYSIsIk0zODQgOTZsMCA2NC02NCAwIDAtNjQgNjQgMHptMCAxMjhsMCA2NC02NCAwIDAtNjQgNjQgMHptMCAxMjhsMCA2NC02NCAwIDAtNjQgNjQgMHpNMjU2IDI4OGwtNjQgMCAwLTY0IDY0IDAgMCA2NHptLTY0IDY0bDY0IDAgMCA2NC02NCAwIDAtNjR6bS02NC02NGwtNjQgMCAwLTY0IDY0IDAgMCA2NHpNNjQgMzUybDY0IDAgMCA2NC02NCAwIDAtNjR6bTAtMTkybDAtNjQgNjQgMCAwIDY0LTY0IDB6bTEyOCAwbDAtNjQgNjQgMCAwIDY0LTY0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LEhYdD1KdmUscVh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpYmJvbiIsaWNvbjpbMzg0LDUxMixbMTI3ODk1XSwiZjRkNiIsIk0yMzUuMSAwYzMzLjQgMCA2NC41IDE3LjQgODEuOSA0NS45IDEuMiAyIDEzIDIxLjMgMzUuMyA1Ny44IDIxLjEgMzQuNSAxOC4zIDc4LjUtNyAxMTBMMjc4LjMgMjk3LjcgMzY0LjUgNDA2YzUuNSA2LjkgNC40IDE2LjktMi41IDIyLjVsLTgwIDY0Yy02LjkgNS41LTE3IDQuNC0yMi41LTIuNUwzOC42IDIxMy44QzEzLjMgMTgyLjMgMTAuNSAxMzguMyAzMS42IDEwMy44IDU0IDY3LjIgNjUuNyA0Ny45IDY3IDQ1LjkgODQuNCAxNy40IDExNS40IDAgMTQ4LjkgMGw4Ni4zIDB6TTE5MiAxODkuMmw0OC42LTYxLjItOTcuMyAwIDQ4LjYgNjEuMnpNNzUgMzM2LjJsODYuMiAxMDcuOC0zNi44IDQ2Yy01LjUgNi45LTE1LjYgOC0yMi41IDIuNWwtODAtNjRjLTYuOS01LjUtOC0xNS42LTIuNS0yMi41TDc1IDMzNi4yeiJdfSxqWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZmxhZyIsaWNvbjpbNTEyLDUxMixbXSwiZTUxYyIsIk0zNTItMzJMMjQwLTMyYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNDQtMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDIyNC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjI0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwIDAtNjQgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTQ4IDIyNGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6Il19LGV4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1kb3duLWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvd3MtYWx0Il0sImYwYjIiLCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzE3OS4xIDEyOCAxOTIgMTI4bDMyIDAgMCA5Ni05NiAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxMjggMzMyLjkgMTI4IDMyMGwwLTMyIDk2IDAgMCA5Ni0zMiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzODQgMzIwIDM4NGwtMzIgMCAwLTk2IDk2IDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzg0IDE3OS4xIDM4NCAxOTJsMCAzMi05NiAwIDAtOTYgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHoiXX0sVlh0PWV4ZSxVWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXNpZGUiLGljb246WzY0MCw1MTIsWzEyODY2M10sImY1ZTQiLCJNMTQ3IDEwNi43bC0yOS44IDg1LjMgMTIyLjkgMCAwLTk2LTc3LjkgMGMtNi44IDAtMTIuOSA0LjMtMTUuMSAxMC43ek00OC42IDE5My45TDg2LjUgODUuNkM5Ny44IDUzLjUgMTI4LjEgMzIgMTYyLjEgMzJMMzYwIDMyYzI1LjIgMCA0OC45IDExLjkgNjQgMzJsOTYuMiAxMjguM0M1ODcuMSAxOTYuNSA2NDAgMjUyLjEgNjQwIDMyMGwwIDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNi40IDBjLTQgNDQuOS00MS43IDgwLTg3LjYgODBzLTgzLjYtMzUuMS04Ny42LTgwbC0xNDQuNyAwYy00IDQ0LjktNDEuNyA4MC04Ny42IDgwcy04My42LTM1LjEtODcuNi04MGwtLjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC04MGMwLTMwLjEgMjAuNy01NS4zIDQ4LjYtNjIuMXpNNDQwIDE5MmwtNjcuMi04OS42Yy0zLTQtNy44LTYuNC0xMi44LTYuNGwtNzIgMCAwIDk2IDE1MiAwek0xNTIgNDMyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMzYwLTQwYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LHR4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUiXSwiZjgyOSIsIk0xNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjFDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2ek0zMiAxNDRsMzg0IDAtMjEuMSAzMjMuMUMzOTMuMyA0OTIuNCAzNzIuMyA1MTIgMzQ3IDUxMkwxMDEgNTEyYy0yNS4zIDAtNDYuMy0xOS42LTQ3LjktNDQuOUwzMiAxNDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sV1h0PXR4ZSxHWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlmZS1yaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMWNkIiwiTTM2Ny4yIDQxMi41QzMzNS45IDQzNC45IDI5Ny41IDQ0OCAyNTYgNDQ4cy03OS45LTEzLjEtMTExLjItMzUuNWw1OC01OGMxNS44IDguNiAzNCAxMy41IDUzLjMgMTMuNXMzNy40LTQuOSA1My4zLTEzLjVsNTggNTh6bTkwLjcgLjhjMzMuOC00My40IDU0LTk4IDU0LTE1Ny4zUzQ5MS44IDE0Mi4xIDQ1OCA5OC43YzktMTIuNSA3LjktMzAuMS0zLjQtNDEuM1M0MjUuOCA0NSA0MTMuMyA1NEMzNjkuOSAyMC4yIDMxNS4zIDAgMjU2IDBTMTQyLjEgMjAuMiA5OC43IDU0Yy0xMi41LTktMzAuMS03LjktNDEuMyAzLjRTNDUgODYuMiA1NCA5OC43QzIwLjIgMTQyLjEgMCAxOTYuNyAwIDI1NlMyMC4yIDM2OS45IDU0IDQxMy4zYy05IDEyLjUtNy45IDMwLjEgMy40IDQxLjNTODYuMiA0NjcgOTguNyA0NThjNDMuNCAzMy44IDk4IDU0IDE1Ny4zIDU0czExMy45LTIwLjIgMTU3LjMtNTRjMTIuNSA5IDMwLjEgNy45IDQxLjMtMy40czEyLjQtMjguOCAzLjQtNDEuM3ptLTQ1LjUtNDYuMWwtNTgtNThjOC42LTE1LjggMTMuNS0zNCAxMy41LTUzLjNzLTQuOS0zNy40LTEzLjUtNTMuM2w1OC01OEM0MzQuOSAxNzYuMSA0NDggMjE0LjUgNDQ4IDI1NnMtMTMuMSA3OS45LTM1LjUgMTExLjJ6TTM2Ny4yIDk5LjVsLTU4IDU4Yy0xNS44LTguNi0zNC0xMy41LTUzLjMtMTMuNXMtMzcuNCA0LjktNTMuMyAxMy41bC01OC01OEMxNzYuMSA3Ny4xIDIxNC41IDY0IDI1NiA2NHM3OS45IDEzLjEgMTExLjIgMzUuNXpNMTU3LjUgMzA5LjNsLTU4IDU4Qzc3LjEgMzM1LjkgNjQgMjk3LjUgNjQgMjU2czEzLjEtNzkuOSAzNS41LTExMS4ybDU4IDU4Yy04LjYgMTUuOC0xMy41IDM0LTEzLjUgNTMuM3M0LjkgMzcuNCAxMy41IDUzLjN6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sS1h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvcHlyaWdodCIsaWNvbjpbNTEyLDUxMixbMTY5XSwiZjFmOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjA1LjEgMzA2LjljMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtNDYuOSA0Ni45LTEyMi44IDQ2LjktMTY5LjcgMHMtNDYuOS0xMjIuOCAwLTE2OS43IDEyMi44LTQ2LjkgMTY5LjcgMGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDBzLTI4LjEgNzMuNyAwIDEwMS44eiJdfSxZWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wcmVzY3JpcHRpb24iLGljb246WzM4NCw1MTIsW10sImY1NzIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDIyLjUgMCA1OC40IDU1LTMzLjQgMzEuNmMtOS42IDkuMS0xMC4xIDI0LjMtLjkgMzMuOXMyNC4zIDEwLjEgMzMuOSAuOWwzNS40LTMzLjUgMzUuNiAzMy41YzkuNyA5LjEgMjQuOCA4LjYgMzMuOS0xczguNi0yNC44LTEtMzMuOWwtMzMuNi0zMS42IDMzLjYtMzEuOGM5LjYtOS4xIDEwLjEtMjQuMyAuOS0zMy45cy0yNC4zLTEwLjEtMzMuOS0uOWwtMzUuNyAzMy43LTQwLjktMzguNWMxMi45LTExLjcgMjEuMS0yOC42IDIxLjEtNDcuNSAwLTM1LjMtMjguNy02NC02NC02NGwtNTYgMHptMzIgODBsLTggMCAwLTMyIDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTI0IDB6Il19LFpYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlcmFzZXIiLGljb246WzU3Niw1MTIsW10sImYxMmQiLCJNMTc4LjUgNDE2bDEyMyAwIDY1LjMtNjUuMy0xNzMuNS0xNzMuNS0xMjYuNyAxMjYuNyAxMTIgMTEyek0yMjQgNDgwbC00NS41IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDE3IDM0NUM2LjEgMzM0LjEgMCAzMTkuNCAwIDMwNHM2LjEtMzAuMSAxNy00MUwyNjMgMTdDMjczLjkgNi4xIDI4OC42IDAgMzA0IDBzMzAuMSA2LjEgNDEgMTdMNTI3IDE5OWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFsLTEzNSAxMzUgMTIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAweiJdfSxheGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLXN0YXJ0IixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTEiXSwiZjI1MSIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNMjg4IDQzN2wwIDExLTE5MiAwIDAtMTFjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsNjcuOS02Ny45IDY3LjkgNjcuOWMxOCAxOCAyOC4xIDQyLjQgMjguMSA2Ny45eiJdfSxYWHQ9YXhlLHN4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMTI0LjcgMjQ0LjdsMTA0LTEwNGM0LjYtNC42IDExLjUtNS45IDE3LjQtMy41czkuOSA4LjMgOS45IDE0LjhsMCA1NiA5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA1NmMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVsLTEwNC0xMDRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42eiJdfSxRWHQ9c3hlLEpYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV6ZWlyby1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMTUyIiwiTTI0MCA5NmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCA3MS42IDQ3LjEgMTMyLjMgMTEyIDE1Mi43TDE5MiAyNTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTIuOCAwIDIzLjMgMTAuMSAyNCAyMi43IDE1LjUtOS41IDMzLjUtMTQuNyA1Mi4zLTE0LjdsMTEuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMS44IDBjLTE4LjggMC0zNi4xIDEwLTQ1LjQgMjYuMy00LjUgNy45LTYuOSAxNi44LTYuOSAyNS45bDAgNzUuOGM0Mi41IDAgODEuMS0xNi42IDEwOS44LTQzLjYgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJDMzUzLjcgNDU2LjggMjk5LjUgNDgwIDI0MCA0ODAgMTE2LjMgNDgwIDE2IDM3OS43IDE2IDI1NlMxMTYuMyAzMiAyNDAgMzJjNTkuNSAwIDExMy43IDIzLjIgMTUzLjcgNjEuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNDMzIxLjEgMTEyLjYgMjgyLjUgOTYgMjQwIDk2eiJdfSxlUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21va2luZyIsaWNvbjpbNTc2LDUxMixbMTI4Njg0XSwiZjQ4ZCIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0zMjAgNDQ4bDk2IDAgMC0zMi05NiAwIDAgMzJ6TTAgNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyem01NzYtNDBsMCAxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0saXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLXZlcnRpY2FsIixpY29uOls0NDgsNTEyLFsicG9sbCJdLCJmNjgxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTU2IDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTg0IDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4ek0yMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjA4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSx0UXQ9aXhlLGFRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTQwIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnoiXX0sc1F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpb2hhemFyZCIsaWNvbjpbNTc2LDUxMixbOTc2M10sImY3ODAiLCJNMjYwIDEyLjZjMC04LjMtNy42LTE0LjUtMTUuNS0xMi4xLTYwLjkgMTguOC0xMDUuMSA3NS44LTEwNS4xIDE0My4xIDAgMjUuMSA2LjEgNDguNyAxNyA2OS41LTIxIDEuOC00MiA4LjItNjEuNSAxOS41LTU3LjkgMzMuNi04NC44IDEwMC4yLTcwLjkgMTYyLjUgMS45IDguNCAxMS40IDEyIDE4LjkgNy42IDUtMi45IDcuNi04LjYgNy4xLTE0LjQtLjMtMy4zLS40LTYuNi0uNC0xMC4xIDAtMTIzLjUgMTg0LjQtMTIzLjUgMTg0LjQgMCAwIDg4LjQtOTQuNSAxMTMuNi0xNDguMiA3NS40LTQuNS0zLjItMTAuNS0zLjktMTUuMy0xLjEtNyA0LjEtOC42IDEzLjYtMi43IDE5LjEgNDYuNiA0My44IDExOCA1My45IDE3Ni4xIDIwLjIgMTcuOS0xMC40IDMyLjgtMjMuOSA0NC41LTM5LjQgMTEuNyAxNS42IDI2LjYgMjkuMSA0NC41IDM5LjQgNTguMSAzMy43IDEyOS41IDIzLjYgMTc2LjEtMjAuMiA1LjktNS41IDQuMy0xNS4xLTIuNy0xOS4xLTQuOC0yLjgtMTAuOC0yLjEtMTUuMyAxLjEtNTMuNyAzOC4yLTE0OC4yIDEzLTE0OC4yLTc1LjQgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgMy40LS4xIDYuOC0uNCAxMC4xLS41IDUuOCAyLjEgMTEuNSA3LjEgMTQuNCA3LjQgNC4zIDE3IC44IDE4LjktNy42IDEzLjktNjIuMi0xMy0xMjguOS03MC45LTE2Mi41LTE5LjUtMTEuMy00MC40LTE3LjctNjEuNS0xOS41IDEwLjktMjAuOCAxNy00NC40IDE3LTY5LjUgMC02Ny4zLTQ0LjItMTI0LjMtMTA1LjEtMTQzLjEtNy45LTIuNC0xNS41IDMuOC0xNS41IDEyLjEgMCA1LjkgNCAxMSA5LjUgMTMuMiA4My40IDMzLjYgNzAuOCAxNzguNC0zNy44IDE3OC40UzE2Ny4xIDU5LjQgMjUwLjUgMjUuOGM1LjUtMi4yIDkuNS03LjMgOS41LTEzLjJ6TTI0OC40IDI4OGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek00MzUgMzE3LjdjLTE2LjIgMC0zMS40IDUuNS00Mi4xIDE1LTEwLjEgOS4xLTE4LjEgMjMuNC0xOC4xIDQ1LjYgMCAyMS4xIDcuMiAzNSAxNi41IDQ0LjEgMzIuMi0yNC42IDU1LjUtNjAuNSA2My45LTEwMS44LTYuMy0xLjktMTMuMi0zLTIwLjItM3pNMjAyIDM3OC4zYzAtMjIuMy04LTM2LjYtMTguMS00NS42LTEwLjctOS42LTI1LjktMTUtNDIuMS0xNS03IDAtMTMuOSAxLTIwLjIgMyA4LjQgNDEuMyAzMS42IDc3LjIgNjMuOSAxMDEuOCA5LjQtOS4xIDE2LjUtMjMuMSAxNi41LTQ0LjJ6bTQxLjItMjI0LjNjOSAxMC4yIDIzLjIgMTguMiA0NS4yIDE4LjJzMzYuMi04IDQ1LjItMTguMmM2LjctNy42IDExLjUtMTcuNSAxMy42LTI4LjQtMTguMy02LjgtMzguMi0xMC41LTU4LjgtMTAuNXMtNDAuNSAzLjctNTguOCAxMC41YzIuMiAxMC45IDYuOSAyMC44IDEzLjYgMjguNXoiXX0scnhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwtY29uY2llcmdlIixpY29uOls1MTIsNTEyLFsxMjg3MTgsImNvbmNpZXJnZS1iZWxsIl0sImY1NjIiLCJNMjE2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy4zQzEyNC44IDE1Ni43IDQwLjIgMjQzLjcgMzIuNiAzNTJsNDQ2LjkgMEM0NzEuOCAyNDMuNyAzODcuMiAxNTYuNyAyODAgMTQ1LjNsMC0zMy4zIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6TTI0IDQwMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0NjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCA0MDB6Il19LGlRdD1yeGUsclF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWhvcml6b250YWwiLGljb246WzU3Niw1MTIsW10sImY1NDciLCJNNDggMzg0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAzODR6Il19LG9RdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3JzZSIsaWNvbjpbNTc2LDUxMixbMTI4MDE0XSwiZjZmMCIsIk00NDggMjM4LjFsMC03OC4xIDE2IDAgOS44IDE5LjZjMTIuNSAyNS4xIDQyLjIgMzYuNCA2OC4zIDI2IDIwLjUtOC4yIDMzLjktMjggMzMuOS01MC4xTDU3NiA4MGMwLTE5LjEtOC40LTM2LjMtMjEuNy00OGw1LjcgMGM4LjggMCAxNi03LjIgMTYtMTZTNTY4LjggMCA1NjAgMEw0NDggMEMzNzcuMyAwIDMyMCA1Ny4zIDMyMCAxMjhsLTE3MS4yIDBDMTE4LjEgMTI4IDkxLjIgMTQ0LjMgNzYuMyAxNjguOCAzMy4yIDE3NC41IDAgMjExLjQgMCAyNTZsMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTZjMC0xMy40IDYuNi0yNS4yIDE2LjctMzIuNSAxLjYgMTMgNi4zIDI1LjQgMTMuNiAzNi40bDI4LjIgNDIuNGM4LjMgMTIuNCA2LjQgMjguNy0xLjIgNDEuNi0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDMzLjcgMGMyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43IDAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44TDMyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2NC4zYzE5LjItMTkuMiAzMS41LTQ1LjcgMzItNzUuN2wwIDAgMC0xLjl6TTQ5NiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LG5RdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMzItMzIgMEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDQ4IDQ0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyLTEyOCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMjI0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyLTQ0OCAweiJdfSxsUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaGlsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYSIsIk0zMjAtMzJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTM4NC41IDE0OWwtMTkuOC0xNi43IDExLjEgODguOGMxLjYgMTMuMi03LjcgMjUuMS0yMC44IDI2LjhzLTI1LjEtNy43LTI2LjgtMjAuOGwtNC40LTM1LTcuNiAwLTQuNCAzNWMtMS42IDEzLjItMTMuNiAyMi41LTI2LjggMjAuOHMtMjIuNS0xMy42LTIwLjgtMjYuOGwxMS4xLTg4LjgtMTkuOCAxNi43Yy0xMC4xIDguNi0yNS4zIDcuMy0zMy44LTIuOHMtNy4zLTI1LjMgMi44LTMzLjhsMjcuOS0yMy42QzI3MS4zIDcyLjggMjk1LjMgNjQgMzIwIDY0czQ4LjcgOC44IDY3LjYgMjQuN2wyNy45IDIzLjZjMTAuMSA4LjYgMTEuNCAyMy43IDIuOCAzMy44cy0yMy43IDExLjQtMzMuOCAyLjh6Il19LGNRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpdGFsaWMiLGljb246WzM4NCw1MTIsW10sImYwMzMiLCJNMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01OC43IDAtMTMzLjMgMzIwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMCAxMzMuMy0zMjAtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LGRRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraGFuZGEiLGljb246WzUxMiw1MTIsWzk3NzJdLCJmNjZkIiwiTTI0MC43IDhjOC45LTcuNCAyMS44LTcuNCAzMC43IDBsMzcuOCAzMS41YzguNyA3LjMgMTEuMSAxOS42IDYgMjkuNi0xLjIgMi40LTIuOCA1LjUtNC42IDkuMiAzNC4yIDE5LjIgNTcuMyA1NS44IDU3LjMgOTcuOHMtMjMuMSA3OC42LTU3LjMgOTcuOGMxLjggMy43IDMuMyA2LjggNC42IDkuMiA1LjEgMTAgMi43IDIyLjMtNiAyOS42bC0zNy4yIDMxIDAgMTkuOGMyMi45LTE1LjcgNDguNC0zMy4zIDc2LjctNTIuNyA0Mi44LTI5LjQgNjguNC03OCA2OC40LTEzMGwwLTExLjFjMC0yMy45LTcuMS00Ny4zLTIwLjQtNjcuMi01LjEtNy43LTQuNi0xNy44IDEuNy0yNC42IDYuNi03LjEgMTcuMi04LjEgMjUuMi0yLjggMjcuNSAxOC4xIDg5LjQgNjcuNSA4OS40IDE0OS4xIDAgNDYuNS0yMC4yIDg4LjYtNDEuOCAxMjAuNC0yMS42IDMyLTQ1LjYgNTUtNTUuMyA2My44LTcuOCA3LjEtMTkgNy45LTI3LjYgM2wtNzAuOC00MC4zLTMyLjcgMjIuNSA0NS41IDMxLjNjMS44LS40IDMuNy0uNyA1LjctLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEyLjIgMC0yMi4zLTkuMS0yMy44LTIxbC00MC4yLTI3LjYgMCAyOC45YzkuNiA1LjUgMTYgMTUuOSAxNiAyNy43IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTEuOCA2LjQtMjIuMiAxNi0yNy43bDAtMjguMS00MC4zIDI3LjdjLTEuOCAxMS40LTExLjggMjAuMS0yMy43IDIwLjEtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyLjIgMCA0LjQgLjMgNi41IC45bDQ1LjgtMzEuNS0zMi43LTIyLjUtNzAuOCA0MC4zYy04LjcgNC45LTE5LjggNC4xLTI3LjYtMy05LjctOC44LTMzLjctMzEuOS01NS4zLTYzLjgtMjEuNS0zMS44LTQxLjgtNzMuOS00MS44LTEyMC40IDAtODEuNyA2MS45LTEzMS4xIDg5LjQtMTQ5LjEgOC4xLTUuMyAxOC42LTQuMyAyNS4yIDIuOCA2LjQgNi45IDYuOCAxNyAxLjcgMjQuNi0xMy4zIDE5LjktMjAuNCA0My4zLTIwLjQgNjcuMmwwIDExLjFjMCA1MS45IDI1LjYgMTAwLjYgNjguNCAxMzAgMjguNCAxOS42IDUzLjcgMzYuOSA3NS42IDUybDAtMTkuMS0zNy4yLTMxYy04LjctNy4zLTExLjEtMTkuNi02LTI5LjYgMS4yLTIuNCAyLjgtNS41IDQuNi05LjItMzQuMi0xOS4yLTU3LjMtNTUuOC01Ny4zLTk3LjhzMjMuMS03OC42IDU3LjMtOTcuOGMtMS44LTMuNy0zLjMtNi44LTQuNi05LjItNS4xLTEwLTIuNy0yMi4zIDYtMjkuNkwyNDAuNyA4ek0yMjAuMyAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xYzYuOC0xOS4yIDExLjgtMzguNCAxMS44LTUzLjFzLTQuOS0zMy45LTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xYy02LjggMTkuMi0xMS44IDM4LjQtMTEuOCA1My4xczQuOSAzMy45IDExLjggNTMuMXoiXX0sb3hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZnJvd24tb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4NTUwLCJmcm93bi1vcGVuIl0sImY1N2EiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44eiJdfSx1UXQ9b3hlLFpiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWNrIixpY29uOls0NDgsNTEyLFsxMDAwMywxMDAwNF0sImYwMGMiLCJNNDM0LjggNzAuMWMxNC4zIDEwLjQgMTcuNSAzMC40IDcuMSA0NC43bC0yNTYgMzUyYy01LjUgNy42LTE0IDEyLjMtMjMuNCAxMy4xcy0xOC41LTIuNy0yNS4xLTkuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxMDEuNSAxMDEuNSAyMzQtMzIxLjdjMTAuNC0xNC4zIDMwLjQtMTcuNSA0NC43LTcuMXoiXX0scFF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbmdlcnByaW50IixpY29uOls1MTIsNTEyLFtdLCJmNTc3IiwiTTQ4IDI1NmMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDggNjMuMSAwIDExOS42IDI4LjEgMTU3LjggNzIuNSA4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44QzQwMy4zIDM0LjYgMzMzLjcgMCAyNTYgMCAxMTQuNiAwIDAgMTE0LjYgMCAyNTZsMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDB6bTQ1OC41LTUyLjljLTIuNy0xMy0xNS41LTIxLjMtMjguNC0xOC41cy0yMS4zIDE1LjUtMTguNSAyOC40YzIuOSAxMy45IDQuNSAyOC4zIDQuNSA0My4xbDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwYzAtMTguMS0xLjktMzUuOC01LjUtNTIuOXpNMjU2IDgwYy0xOSAwLTM3LjQgMy01NC41IDguNi0xNS4yIDUtMTguNyAyMy43LTguMyAzNS45IDcuMSA4LjMgMTguOCAxMC44IDI5LjQgNy45IDEwLjYtMi45IDIxLjgtNC40IDMzLjQtNC40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMjQuOWMwIDI1LjItMS41IDUwLjMtNC40IDc1LjMtMS43IDE0LjYgOS40IDI3LjggMjQuMiAyNy44IDExLjggMCAyMS45LTguNiAyMy4zLTIwLjMgMy4zLTI3LjQgNS01NSA1LTgyLjdsMC0yNC45YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2ek0xNTAuNyAxNDguN2MtOS4xLTEwLjYtMjUuMy0xMS40LTMzLjktLjQtMjMuMSAyOS44LTM2LjggNjcuMS0zNi44IDEwNy43bDAgMjQuOWMwIDI0LjItMi42IDQ4LjQtNy44IDcxLjktMy40IDE1LjYgNy45IDMxLjEgMjMuOSAzMS4xIDEwLjUgMCAxOS45LTcgMjIuMi0xNy4zIDYuNC0yOC4xIDkuNy01Ni44IDkuNy04NS44bDAtMjQuOWMwLTI3LjIgOC41LTUyLjQgMjIuOS03My4xIDcuMi0xMC40IDgtMjQuNi0uMi0zNC4yek0yNTYgMTYwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjQuOWMwIDM1LjktNC42IDcxLjUtMTMuOCAxMDYuMS0zLjggMTQuMyA2LjcgMjkgMjEuNSAyOSA5LjUgMCAxNy45LTYuMiAyMC40LTE1LjQgMTAuNS0zOSAxNS45LTc5LjIgMTUuOS0xMTkuN2wwLTI0LjljMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwwIDI0LjljMCAzNi4zLTMuNSA3Mi40LTEwLjQgMTA3LjktMi43IDEzLjkgNy43IDI3LjIgMjEuOCAyNy4yIDEwLjIgMCAxOS03IDIxLTE3IDcuNy0zOC44IDExLjYtNzguMyAxMS42LTExOC4xbDAtMjQuOWMwLTUzLTQzLTk2LTk2LTk2em0yNCA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0LjljMCA1OS45LTExIDExOS4zLTMyLjUgMTc1LjJsLTUuOSAxNS4zYy00LjggMTIuNCAxLjQgMjYuMyAxMy44IDMxczI2LjMtMS40IDMxLTEzLjhsNS45LTE1LjNDMjY3LjkgNDExLjkgMjgwIDM0Ni43IDI4MCAyODAuOWwwLTI0Ljl6Il19LGhRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFyZ2luZy1zdGF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmNWU3IiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMjcuN2MtMzIuNS0xMC4yLTU2LTQwLjUtNTYtNzYuM2wwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDMyIDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDM1LjgtMjMuNSA2Ni4xLTU2IDc2LjNMNTIwIDM4MGMwIDM3LjYtMzAuNCA2OC02OCA2OHMtNjgtMzAuNC02OC02OGwwLTEyYzAtMTcuNy0xNC4zLTMyLTMyLTMybDAgMTI5LjRjOS4zIDMuMyAxNiAxMi4yIDE2IDIyLjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRMNzIgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjUgNi43LTE5LjMgMTYtMjIuNkw2NCA2NHptODIuNyAxMjUuN2wzOSAwLTIwLjkgNjYuOWMtMi40IDcuNiAzLjMgMTUuNCAxMS4zIDE1LjQgMi45IDAgNS42LTEgNy44LTIuOWw5NC42LTgyYzMuMS0yLjcgNC45LTYuNiA0LjktMTAuNyAwLTcuOC02LjMtMTQuMS0xNC4xLTE0LjFsLTM5IDAgMjAuOS02Ni45YzIuNC03LjYtMy4zLTE1LjQtMTEuMy0xNS40LTIuOSAwLTUuNiAxLTcuOCAyLjlsLTk0LjYgODJjLTMuMSAyLjctNC45IDYuNi00LjkgMTAuNyAwIDcuOCA2LjMgMTQuMSAxNC4xIDE0LjF6Il19LGZRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWxvY2siLGljb246WzU3Niw1MTIsW10sImY1MDIiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzI5LjcgMCA1Ny43IDcuMyA4Mi4zIDIwLjFsMCA0LjNjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHptMzAxLjcgLjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxueGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbi1idXR0b24iLGljb246WzM4NCw1MTIsWyJtb2JpbGUtYWx0Il0sImYzY2QiLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em02NCAwbDAgMzA0IDIyNCAwIDAtMzA0LTIyNCAwek0xOTIgNDcyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnoiXX0sbVF0PW54ZSxnUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYSIsIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpNMjg4IDBjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zTDgwIDMwNy45YzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LGx4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy13aXRoLWNhbmUiLGljb246WzU3Niw1MTIsWyJibGluZCJdLCJmMjlkIiwiTTIyNC0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTYwIDIwNS4zbC0yMi42IDIyLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM0LjQtMzQuNGMyMy4yLTIzLjIgNTQuNi0zNi4yIDg3LjMtMzYuMiAzNi4xIDAgNzAuMyAxNS44IDkzLjggNDMuMWw2OC42IDgwYzExLjUgMTMuNCA5LjkgMzMuNi0zLjUgNDUuMXMtMzMuNiA5LjktNDUuMS0zLjVsLTU1LjctNjUgMCAxMTguNiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNsMTIuNiA4OC4xYzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4ybC0xMi42LTg4LjFjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOGwtNzEuNC02MS4yYy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6bS4xIDE2NS44YzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVsLTY4LjMgNjguM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjguMy02OC4zYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEwxNjAuMSAzNzF6bTIzMy41LTYyLjJjMTAuNi04IDI1LjYtNS44IDMzLjYgNC44bDE0NCAxOTJjOCAxMC42IDUuOCAyNS42LTQuOCAzMy42cy0yNS42IDUuOC0zMy42LTQuOGwtMTQ0LTE5MmMtOC0xMC42LTUuOC0yNS42IDQuOC0zMy42eiJdfSxiUXQ9bHhlLGN4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXdhdmVmb3JtIixpY29uOlszODQsNTEyLFsiZmlsZS1tZWRpY2FsLWFsdCJdLCJmNDc4IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC05NiA2MC4zIDAgNDguOCA2Mi43YzUuMSA2LjYgMTMuMyAxMCAyMS42IDkuMXMxNS41LTYuMSAxOS4xLTEzLjZsNDIuOS05MS4yIDkuOSAxOS44YzQuMSA4LjEgMTIuNCAxMy4zIDIxLjUgMTMuM2w3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01Ny4yIDAtMjUuNC01MC43Yy00LjEtOC4yLTEyLjYtMTMuNC0yMS44LTEzLjNzLTE3LjUgNS41LTIxLjQgMTMuOGwtNDcuMyAxMDAuNi0zMi00MS4xQzg2LjQgMzA3LjQgNzkuNCAzMDQgNzIgMzA0TDAgMzA0IDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXoiXX0sdlF0PWN4ZSx4UXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY3JhY2siLGljb246WzUxMiw1MTIsW10sImUzYjEiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGw4Ni40IDAtMzEuMy01Mi4yYy00LjEtNi44LTIuNi0xNS41IDMuNS0yMC41TDI1NiAzNjggMTk1LjggMjg1LjJjLTEwLjktMTUgOC4yLTMzLjUgMjIuOC0yMmwxMTcuOSA5Mi42YzggNi4zIDguMiAxOC40IC40IDI0LjlMMjU2IDQ0OCAyOTQuNCA1MTIgNDAwIDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHoiXX0seVF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC13aXphcmQiLGljb246WzUxMiw1MTIsW10sImY2ZTgiLCJNNjQgNDAwbDg1LjctMjA4LjJjMTctNDEuMyA0Ny44LTc1LjMgODcuMi05Ni4zTDM4My44IDE3LjJjMTIuMy02LjYgMjYuNSA0LjcgMjMgMTguMkwzNjkuNiAxNzcuOGMtMS4xIDQuMS0xLjYgOC4zLTEuNiAxMi42IDAgNi4zIDEuMiAxMi42IDMuNiAxOC41bDc2LjQgMTkxLjEtMjA3LjEgMCAxMS44LTM1LjQgNDAuNC0xMy41YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4ycy00LjQtMTMtMTAuOS0xNS4ybC00MC40LTEzLjUtMTMuNS00MC40QzIzNyAyNjAuNCAyMzAuOSAyNTYgMjI0IDI1NnMtMTMgNC40LTE1LjIgMTAuOWwtMTMuNSA0MC40LTQwLjQgMTMuNUMxNDguNCAzMjMgMTQ0IDMyOS4xIDE0NCAzMzZzNC40IDEzIDEwLjkgMTUuMmw0MC40IDEzLjUgMTEuOCAzNS40LTE0My4xIDB6TTI3OS42IDE0MS41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNXMtNi41IDIuMi03LjYgNS41bC02LjcgMjAuMi0yMC4yIDYuN2MtMy4zIDEuMS01LjUgNC4xLTUuNSA3LjZzMi4yIDYuNSA1LjUgNy42bDIwLjIgNi43IDYuNyAyMC4yYzEuMSAzLjMgNC4xIDUuNSA3LjYgNS41czYuNS0yLjIgNy42LTUuNWw2LjctMjAuMiAyMC4yLTYuN2MzLjMtMS4xIDUuNS00LjEgNS41LTcuNnMtMi4yLTYuNS01LjUtNy42bC0yMC4yLTYuNy02LjctMjAuMnpNMzIgNDQ4bDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sZHhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZG9jdG9yIixpY29uOls0NDgsNTEyLFsidXNlci1tZCJdLCJmMGYwIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDAgMCAyNDAgMTIwIDEyMCAwIDEgMCAwLTI0MHptNjAgMzEyLjhjLTUuNC0uNS0xMS0uOC0xNi42LS44bC04Ni45IDBjLTUuNiAwLTExLjEgLjMtMTYuNiAuOGwwIDY3LjVjMTYuNSA3LjYgMjggMjQuMyAyOCA0My42IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMTkuNCAxMS41LTM2LjEgMjgtNDMuNmwwLTU4LjRDNjEgMzUzIDE2IDQxMy42IDE2IDQ4NC42IDE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDM2MS4xIDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC03MS00NS0xMzEuNS0xMDgtMTU0LjZsMCAzNy40YzIzLjMgOC4yIDQwIDMwLjUgNDAgNTYuNmwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMjYuMSAxNi43LTQ4LjMgNDAtNTYuNmwwLTQ2LjZ6Il19LHdRdD1keGUsdXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWJhciIsaWNvbjpbNTEyLDUxMixbImJhci1jaGFydCJdLCJmMDgwIiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzM2YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw4MCA0ODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDgwbDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMTJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxrUXQ9dXhlLHB4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcHJheS1jYW4tc3BhcmtsZXMiLGljb246WzU3Niw1MTIsWyJhaXItZnJlc2hlbmVyIl0sImY1ZDAiLCJNMTYwIDMybDAgODAgMTI4IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwxOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTAgMTI4Yy01MyAwLTk2IDQzLTk2IDk2bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4YzAtNTMtNDMtOTYtOTYtOTZsLTEyOCAwem02NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDQ4IDQ4YzAtMS40LTEtMy0yLjItMy42TDQxNiAzMiA0MDMuNiAyLjJDNDAzIDEgNDAxLjQgMCA0MDAgMHMtMyAxLTMuNiAyLjJMMzg0IDMyIDM1NC4yIDQ0LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMMzg0IDY0IDM5Ni40IDkzLjhDMzk3IDk1IDM5OC42IDk2IDQwMCA5NnMzLTEgMy42LTIuMkw0MTYgNjQgNDQ1LjggNTEuNkM0NDcgNTEgNDQ4IDQ5LjQgNDQ4IDQ4em03Ni40IDQ1LjhDNTI1IDk1IDUyNi42IDk2IDUyOCA5NnMzLTEgMy42LTIuMkw1NDQgNjQgNTczLjggNTEuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42IDAtMS40LTEtMy0yLjItMy42TDU0NCAzMiA1MzEuNiAyLjJDNTMxIDEgNTI5LjQgMCA1MjggMHMtMyAxLTMuNiAyLjJMNTEyIDMyIDQ4Mi4yIDQ0LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNTEyIDY0IDUyNC40IDkzLjh6bTcuMiAxMDAuNGMtLjYtMS4yLTIuMi0yLjItMy42LTIuMnMtMyAxLTMuNiAyLjJMNTEyIDIyNCA0ODIuMiAyMzYuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw1MTIgMjU2IDUyNC40IDI4NS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNTQ0IDI1NiA1NzMuOCAyNDMuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42IDAtMS40LTEtMy0yLjItMy42TDU0NCAyMjQgNTMxLjYgMTk0LjJ6TTUxMiAxNDRjMC0xLjQtMS0zLTIuMi0zLjZMNDgwIDEyOCA0NjcuNiA5OC4yQzQ2NyA5NyA0NjUuNCA5NiA0NjQgOTZzLTMgMS0zLjYgMi4yTDQ0OCAxMjggNDE4LjIgMTQwLjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNDQ4IDE2MCA0NjAuNCAxODkuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDQ4MCAxNjAgNTA5LjggMTQ3LjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNnoiXX0sU1F0PXB4ZSxfUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFodC1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMGFjIiwiTTEzNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwLTc0LjQgMEMxNi44IDY0IDAgODAuOCAwIDEwMS42TDAgNDA2LjNjMCAyMyAxOC43IDQxLjcgNDEuNyA0MS43bDcwLjMgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA0OCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyIDAtNDAuMS0yMS4xLTc1LjMtNTIuNy05NS4xIDEzLjEtMTguMyAyMC43LTQwLjcgMjAuNy02NC45IDAtNjEuOS01MC4xLTExMi0xMTItMTEybC0xNiAwIDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTExMiAxMjhsMCA5Ni00OCAwIDAtOTYgNDggMHptNDggOTZsMC05NiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwem0tNDggNjRsMCA5Ni00OCAwIDAtOTYgNDggMHptNDggOTZsMC05NiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC00OCAweiJdfSxoeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJ0ZW1wZXJhdHVyZS11cCJdLCJlMDQwIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yMTIuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQzOS4xIDkuNGw2NCA2NGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtOS40LTkuNCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTc4LjctOS40IDkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjNi02IDE0LjEtOS40IDIyLjYtOS40czE2LjYgMy40IDIyLjYgOS40eiJdfSxNUXQ9aHhlLHpRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWItYXdlc29tZSIsaWNvbjpbNjQwLDUxMixbXSwiZTY4MiIsIk0zNzIuMiA1MmMwIDIwLjktMTIuNCAzOS0zMC4yIDQ3LjJMNDQ4IDE5MiA1NTIuNCAxNzEuMWMtNS4zLTcuNy04LjQtMTcuMS04LjQtMjcuMSAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjYtMjAuNiA0Ny4xLTQ2LjQgNDhMNDgxIDQ0Mi4zYy0xMC4zIDIzLTMzLjIgMzcuNy01OC40IDM3LjdsLTIwNS4yIDBjLTI1LjIgMC00OC0xNC44LTU4LjQtMzcuN0w0Ni40IDE5MkMyMC42IDE5MS4xIDAgMTcwIDAgMTQ0IDAgMTE3LjUgMjEuNSA5NiA0OCA5NnM0OCAyMS41IDQ4IDQ4YzAgMTAuMS0zLjEgMTkuNC04LjQgMjcuMUwxOTIgMTkyIDI5OC4xIDk5LjFjLTE3LjctOC4zLTMwLTI2LjMtMzAtNDcuMSAwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUyeiJdfSxDUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm9uLWJpbmFyeSIsaWNvbjpbMzg0LDUxMixbXSwiZTgwNyIsIk0xOTIgNTQ0Yy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NiAwLTg2LjMgNjIuMS0xNTggMTQ0LTE3M2wwLTQ3LjItNDkuNyAyNC44LTMgMS4zYy0xNS4yIDUuNy0zMi41LS44LTM5LjktMTUuNy03LjQtMTQuOC0yLjItMzIuNiAxMS41LTQxLjNsMi44LTEuNiAzOC44LTE5LjQtMzguOC0xOS40Yy0xNS44LTcuOS0yMi4yLTI3LjEtMTQuMy00Mi45IDcuNC0xNC44IDI0LjgtMjEuNCA0MC0xNS42bDMgMS4zIDQ5LjcgMjQuOCAwLTQ0LjJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ0LjIgNDkuNy0yNC44IDMtMS4zYzE1LjItNS44IDMyLjUgLjggMzkuOSAxNS42czIuMiAzMi43LTExLjUgNDEuM2wtMi44IDEuNi0zOC43IDE5LjQgMzguNyAxOS4zYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjktNy40IDE0LjgtMjQuNyAyMS40LTM5LjkgMTUuNmwtMy0xLjMtNDkuNy0yNC44IDAgNDcuMmM4MS45IDE1LjEgMTQ0IDg2LjggMTQ0IDE3MyAwIDk3LjItNzguOCAxNzYtMTc2IDE3NnptMC02NGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LFRRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuIixpY29uOlszODQsNTEyLFsxMTBdLCI0ZSIsIk0yMS4xIDMzLjljMTIuNy00LjYgMjYuOS0uNyAzNS41IDkuNkwzMjAgMzU5LjYgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxMy41LTguNCAyNS41LTIxLjEgMzAuMXMtMjYuOSAuNy0zNS41LTkuNkw2NCAxNTIuNCA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNTAuNSA4LjQgMzguNSAyMS4xIDMzLjl6Il19LGZ4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtZG93bi1sZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFsiYXJyb3dzIl0sImYwNDciLCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDExNC43LTExNC43IDAgOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTE0LjcgMCAwIDExNC43LTkuNC05LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40IDAtMTE0LjcgMTE0LjcgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0xMTQuNyAwIDAtMTE0LjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHoiXX0sJFF0PWZ4ZSxpUz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTI0MCAzMjBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LTEyOCAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LERRdD1pUyxMUXQ9aVMsRVF0PWlTLFBRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMTEwIiwiTTIwOCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0wIDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0zNjggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNzUgMzY5LjFBNDggNDggMCAxIDEgMTQyLjkgNDM3IDQ4IDQ4IDAgMSAxIDc1IDM2OS4xek03NSA3NUE0OCA0OCAwIDEgMSAxNDIuOSAxNDIuOSA0OCA0OCAwIDEgMSA3NSA3NXpNNDM3IDM2OS4xQTQ4IDQ4IDAgMSAxIDM2OS4xIDQzNyA0OCA0OCAwIDEgMSA0MzcgMzY5LjF6Il19LG14ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXZlbCIsaWNvbjpbNTc2LDUxMixbImxlZ2FsIl0sImYwZTMiLCJNMTY5LjYgMTUzLjRsLTE4LjctMTguN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMjY1LjYtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMEwzMjkuNi02LjZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMMjE0LjkgMTUzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwek0yNzYgMjExLjdsLTMxLjQtMzEuNCAxMTItMTEyIDExOS40IDExOS40LTExMiAxMTItMzEuNC0zMS40LTIzMiAyMzJjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42bDIzMi0yMzJ6TTM5MC45IDM3NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0w1MDUuNiAyMTQuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOC43IDE4LjdjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMNDU0LjkgMzkzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xOC43LTE4Ljd6Il19LElRdD1teGUsZ3hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpY2tldC1zaW1wbGUiLGljb246WzU3Niw1MTIsWyJ0aWNrZXQtYWx0Il0sImYzZmYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDguOC03LjQgMTUuNy0xNS43IDE4LjYtMTguOCA2LjUtMzIuMyAyNC40LTMyLjMgNDUuNHMxMy41IDM4LjkgMzIuMyA0NS40YzguMyAyLjkgMTUuNyA5LjggMTUuNyAxOC42bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0QzAgMzExLjIgNy40IDMwNC4zIDE1LjcgMzAxLjQgMzQuNSAyOTQuOSA0OCAyNzcgNDggMjU2cy0xMy41LTM4LjktMzIuMy00NS40QzcuNCAyMDcuNyAwIDIwMC44IDAgMTkybDAtNjR6Il19LEFRdD1neGUsTlF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvdmUiLGljb246WzUxMiw1MTIsWzEyODMzMF0sImY0YmEiLCJNNDk2IDY0YzEzLjIgMCAyMC43IDE1LjEgMTIuOCAyNS42TDQ4MCAxMjggNDgwIDMwNGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NGwtMTEyIDAtNDYuMyA0Ni4zYy0xMC40IDEwLjQtMjYuNSAxMi40LTM5LjEgNC44TDQxLjUgNDQwLjljLTE3LTEwLjItMTUtMzUuNSAzLjQtNDIuOUwxNjAgMzUyQzIzLjggMzExLjEgNy41IDE2OS44IDIyIDk1LjcgMjUuNiA3Ny45IDQ1LjMgNzEuNCA2MS4zIDgwLjJMMzIwIDIyNCAzMjAgMTQ0YzAtNDQuMiAzNS44LTgwIDgwLTgwbDk2IDB6bS05NiA1NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTE4Mi41LTkuNmMxMi40LTEzLjcgMzMuMy04LjkgNDIuNSA3LjFsNTYuNCA5OC4zYy01LjggMTQuNC05LjIgMzAuMS05LjQgNDYuNUwxMzguMSA2OGMxMC4xLTMxLjYgMjctNTguNCA0NC40LTc3LjZ6Il19LFJRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXJwLWRyb3BsZXQiLGljb246WzUxMiw1MTIsW10sImU1N2MiLCJNMjU2IDE2MGMzNS4zIDAgNjQtMjYuOSA2NC02MCAwLTI0LTMzLjctNzAuMS01Mi4yLTkzLjUtNi4xLTcuNy0xNy41LTcuNy0yMy42IDAtMTguNSAyMy40LTUyLjIgNjkuNS01Mi4yIDkzLjUgMCAzMy4xIDI4LjcgNjAgNjQgNjB6TTM2OCA5NmMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMTU3LjkgMTQ0IDk2YzAtMTEuMSAxLjYtMjEuOSA0LjYtMzJMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAzMjIuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTg0LjYgMGMzIDEwLjEgNC42IDIwLjkgNC42IDMyem04NS41IDE3NkwzMzYgMzg5LjUgMzM2IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDB6TTk2IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE9RdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmVlLWNpdHkiLGljb246WzY0MCw1MTIsW10sImU1ODciLCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI1NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQxNnptNjQgNjRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzUyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek01MjggMTkyYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTUxMiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgNDgwbDAtMTYwLTE2IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtMjYuNyAxMy4xLTUwLjMgMzMuMi02NC45LS44LTQuOS0xLjItMTAtMS4yLTE1LjEgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyeiJdfSxieGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHVybi11cCIsaWNvbjpbMzg0LDUxMixbMTA1NDgsImxldmVsLXVwLWFsdCJdLCJmM2JmIiwiTTE2OS40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDE5MiAzMjAgMTkybC02NCAwIDAgMTYwYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNjAtNjQgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlsMTI4LTEyOHoiXX0sRlF0PWJ4ZSxyUz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1xdWFydGVyIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMSIsInRoZXJtb21ldGVyLTEiLCJ0aGVybW9tZXRlci1xdWFydGVyIl0sImYyY2EiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtMjguN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjguN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LEJRdD1yUyxIUXQ9clMscVF0PXJTLHZ4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbGlkZXJzIixpY29uOls1MTIsNTEyLFsic2xpZGVycy1oIl0sImYxZGUiLCJNMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDI2NS4zIDY0QzI1MyAzNS43IDIyNC44IDE2IDE5MiAxNnMtNjEgMTkuNy03My4zIDQ4TDMyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNDYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4bDU0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTQuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMjI0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NC43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjQ2LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDM4NHoiXX0salF0PXZ4ZSxWUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVlIixpY29uOls1NzYsNTEyLFsxMjgzMzJdLCJmNjc4IiwiTTE3NC44IDIyNGwyMjYuNCAwYzQzLjUgMCA3OC44LTM1LjMgNzguOC03OC44IDAtMjUuNS0xMi4zLTQ5LjQtMzMuMS02NC4yTDI5Ny4zLTI1LjRjLTUuNi0zLjktMTMtMy45LTE4LjUgMEwxMjkuMSA4MUMxMDguMyA5NS44IDk2IDExOS43IDk2IDE0NS4yIDk2IDE4OC43IDEzMS4zIDIyNCAxNzQuOCAyMjR6TTUxMiA1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC00NDggMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDB6TTI0MCAzODRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwLTk2IDAgMC04MHoiXX0sVVF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImgiLGljb246WzM4NCw1MTIsWzEwNF0sIjQ4IiwiTTMyMCAyODhsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE2MC0yNTYgMCAwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDI1NiAweiJdfSxXUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5mbyIsaWNvbjpbMTkyLDUxMixbXSwiZjEyOSIsIk00OCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0yMjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHh4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZyIsaWNvbjpbMzg0LDUxMixbMTI4Njk0LCJ3YWxraW5nIl0sImY1NTQiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0xMDUuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMNjAuMSAxODIuNkM0Mi4xIDIwMC42IDMyIDIyNSAzMiAyNTAuNUwzMiAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6bTEyLjQgMTc5LjRjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDQxLjQgNDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguMy02OC4zYzExLjUtMTEuNSAxOS45LTI1LjggMjQuNC00MS41bDIuMi03LjYtNDYtMzkuNGMtMi41LTIuMi01LTQuNC03LjQtNi44bC0xMC40IDM2LjJ6Il19LEdRdD14eGUseXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXR1cm4tZG93biIsaWNvbjpbMzg0LDUxMixbImxldmVsLWRvd24iXSwiZjE0OSIsIk0zMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwbDk2IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMwNi43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgNDAyLjcgMTYwIDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDY0eiJdfSxLUXQ9eXhlLFlRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkIixpY29uOls1MTIsNTEyLFsxMjg3MzldLCJmMDE4IiwiTTIyMy45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDEuNCA0MjAuNUMtNi4xIDQ1MC43IDE2LjggNDgwIDQ4IDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0IDE3Ni4xIDBjMzEuMiAwIDU0LjEtMjkuMyA0Ni42LTU5LjVMNDI2LjUgODAuNkM0MTkuNCA1Mi4xIDM5My44IDMyIDM2NC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em02NCAxOTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LFpRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlyYWwiLGljb246WzUxMiw1MTIsW10sImU4MGEiLCJNMTE1LjUgNy40YzEzLjYtMTEuMyAzMy44LTkuNSA0NS4xIDQuMXM5LjUgMzMuOC00LjEgNDUuMUMxMDAuMiAxMDMuNSA2NCAxNzUuMiA2NCAyNTYgNjQgMzYyIDE1MCA0NDggMjU2IDQ0OHMxOTItODYgMTkyLTE5MmMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxNzYgMTgwLjkgMTc2IDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNDguNiAzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTEyIDMzNS41IDExMiAyNTZjMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwczIwMCA4OS41IDIwMCAyMDBjMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2QzAgMTU1LjggNDUgNjYuMSAxMTUuNSA3LjR6Il19LHd4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWZyb3duIixpY29uOls1MTIsNTEyLFs5Nzg1LCJmcm93biJdLCJmMTE5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem05MC42LTExMy45Yy0yMC40LTI4LTUzLjQtNDYuMS05MC42LTQ2LjFzLTcwLjIgMTguMS05MC42IDQ2LjFjLTcuOCAxMC43LTIyLjggMTMuMS0zMy41IDUuM3MtMTMuMS0yMi44LTUuMy0zMy41QzE1NS43IDMzMCAyMDIuOCAzMDQgMjU2IDMwNHMxMDAuMyAyNiAxMjkuNCA2NS45YzcuOCAxMC43IDUuNCAyNS43LTUuMyAzMy41cy0yNS43IDUuNC0zMy41LTUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxYUXQ9d3hlLGt4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzLWVtcHR5IixpY29uOlszMjAsNTEyLFsid2luZS1nbGFzcy1hbHQiXSwiZjVjZSIsIk02NCAwQzQ4LjcgMCAzNS42IDEwLjggMzIuNiAyNS43TDMuMiAxNzNDMS4xIDE4My41IDAgMTk0LjIgMCAyMDVsMCAzYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44bDAgMTE1LjItNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTExNS4yQzI2NSAzNTAgMzIwIDI4NS40IDMyMCAyMDhsMC0zYzAtMTAuNy0xLjEtMjEuNC0zLjItMzJMMjg3LjQgMjUuN0MyODQuNCAxMC44IDI3MS4zIDAgMjU2IDBMNjQgMHptMS45IDE4NS42TDkwLjIgNjQgMjI5LjggNjQgMjU0LjEgMTg1LjZjMS4zIDYuNCAxLjkgMTIuOSAxLjkgMTkuNGwwIDNjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0zYzAtNi41IC42LTEzIDEuOS0xOS40eiJdfSxRUXQ9a3hlLEpRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGFwcGVyYm9hcmQiLGljb246WzUxMiw1MTIsW10sImUxMzEiLCJNNDQ4IDY0YzIgMCAzLjkgLjEgNS44IC4zbC05NS43IDk1LjcgNjcuOSAwIDcyLTcyYzguOCAxMSAxNCAyNC45IDE0IDQwbDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNzAuMSAwLTk2IDk2IDY3LjkgMCA5NS05NSAxLTEgOTIuMSAwLTk2IDk2IDY3LjkgMCA5NS05NSAxLTEgODYuMSAweiJdfSxTeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZC1zdGVwIixpY29uOlszODQsNTEyLFsic3RlcC1mb3J3YXJkIl0sImYwNTEiLCJNMjEgMzYuOGMxMi45LTcgMjguNy02LjMgNDEgMS44TDMyMCAyMDguMSAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0NC4xLTI1OCAxNjkuNmMtMTIuMyA4LjEtMjggOC44LTQxIDEuOFMwIDQ1NC43IDAgNDQwTDAgNzJDMCA1Ny4zIDguMSA0My44IDIxIDM2Ljh6Il19LGVKdD1TeGUsX3hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS11cC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbODU5OSwiZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0Il0sImYzNjAiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTY4IDE2MGMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44cy0xLjcgMTkuMyA1LjIgMjYuMmwzNSAzNS02NyA2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMjQgMjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNjctNjcgMzUgMzVjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlMzMjAgMzIxLjcgMzIwIDMxMmwwLTEyOGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6Il19LHRKdD1feGUsTXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stam91cm5hbC13aGlsbHMiLGljb246WzQ0OCw1MTIsWyJqb3VybmFsLXdoaWxscyJdLCJmNjZhIiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzQuMSA5OS4yYzIuNi0yLjYgNi43LTMuMSA5LjktMS4xIDMyLjEgMjAgNTMuNCA1NS42IDUzLjQgOTYuMiAwIDYyLjYtNTAuNyAxMTMuMy0xMTMuMyAxMTMuM1MxMTAuNyAyNTYuOSAxMTAuNyAxOTQuM2MwLTQwLjYgMjEuNC03Ni4yIDUzLjQtOTYuMiAzLjEtMiA3LjItMS41IDkuOSAxLjFzMy4xIDYuNyAxLjIgOS44Yy01LjIgOC42LTguMiAxOC43LTguMiAyOS41IDAgMTUuMSA1LjkgMjguOCAxNS41IDM5LjEgMi41IDIuNyAyLjkgNi43IC45IDkuNy00LjcgNy40LTcuNCAxNi4xLTcuNCAyNS41IDAgMjEuNiAxNC4zIDM5LjkgMzQgNDUuOWwxLTI0LjhjLTcuMS00LjQtMTEuOC0xMi4yLTExLjgtMjEuMSAwLTkuNiA1LjUtMTggMTMuNS0yMi4xbDMuMy04MS44Yy4yLTQuMyAzLjctNy43IDgtNy43czcuOCAzLjQgOCA3LjdsMy4zIDgxLjhjOCA0LjEgMTMuNSAxMi40IDEzLjUgMjIuMSAwIDguOS00LjcgMTYuNy0xMS44IDIxLjFsMSAyNC44YzE5LjYtNiAzMy45LTI0LjEgMzQtNDUuNmwwLS42Yy0uMS05LjMtMi43LTE3LjktNy40LTI1LjItMS45LTMuMS0xLjYtNy4xIC45LTkuNyA5LjYtMTAuMiAxNS41LTIzLjkgMTUuNS0zOS4xIDAtMTAuOC0zLTIwLjktOC4yLTI5LjUtMS45LTMuMi0xLjQtNy4yIDEuMi05Ljh6Il19LGFKdD1NeGUsenhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYW1wYWduZS1nbGFzc2VzIixpY29uOls2NDAsNTEyLFsxMjkzNDYsImdsYXNzLWNoZWVycyJdLCJmNzlmIiwiTTE1NS42IDE3LjNDMTYzIDMgMTc5LjktMy42IDE5NSAxLjlsMTI1IDQ1LjYgMTI1LTQ1LjZjMTUuMS01LjUgMzIgMS4xIDM5LjQgMTUuNGw3OC44IDE1Mi45YzI4LjggNTUuOCAxMC4zIDEyMi4zLTM4LjUgMTU2LjZsMzEuMyA4Ni4yIDQxLTE1YzE2LjYtNiAzNSAyLjUgNDEgMTkuMXMtMi41IDM1LTE5LjEgNDFjLTQ3LjQgMTcuMy05NC44IDM0LjUtMTQyLjIgNTEuOC0xNi42IDYuMS0zNS0yLjUtNDEtMTkuMXMyLjUtMzUgMTkuMS00MWw0MS0xNS0zMS4zLTg2LjJjLTU5LjQgNS4yLTExNi4yLTMzLjktMTMwLTk1LjJsLTE0LjYtNjQuNy0xNC42IDY0LjdjLTEzLjggNjEuMy03MC42IDEwMC40LTEzMCA5NS4ybC0zMS4zIDg2LjIgNDEgMTVjMTYuNiA2LjEgMjUuMiAyNC40IDE5LjEgNDFzLTI0LjQgMjUuMi00MSAxOS4xYy00Ny40LTE3LjMtOTQuOC0zNC42LTE0Mi4yLTUxLjgtMTYuNi02LjEtMjUuMi0yNC40LTE5LjEtNDFTMjYuMyAzOTIgNDIuOSAzOThsNDEgMTUgMzEuMy04Ni4yQzY2LjUgMjkyLjUgNDguMSAyMjYgNzYuOSAxNzAuMkwxNTUuNiAxNy4zem00NCA1NC40bC0yNy4yIDUyLjggODkuMiAzMi41IDEzLjEtNTcuOS03NS4xLTI3LjR6bTI0MC45IDBsLTc1LjEgMjcuNCAxMy4xIDU3LjkgODkuMi0zMi41LTI3LjItNTIuOHoiXX0sc0p0PXp4ZSxpSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXIiLGljb246WzU3Niw1MTIsW10sImY3OTMiLCJNMTMyLjMgNjRMMTA2LjcgMTkyIDI0IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMMjYuNSA4MC40QzI5LjggNzAuNiAzOSA2NCA0OS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zMTIgNjRsODIuNyAwIDI1LjYgMTI4LTEwOC4zIDAgMC0xMjh6bTEzMS43IDBsODMgMGMxMC4zIDAgMTkuNSA2LjYgMjIuOCAxNi40bDI1LjMgNzUuOWMuOCAyLjQgMS4yIDUgMS4yIDcuNmwwIDQuMWMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtODIuNyAwLTI1LjYtMTI4ek0yNS43IDI0MGw1MjQuNyAwYy0uNCAyLjEtMTMuMyA3My40LTM4LjkgMjEzLjctMyAxNi4zLTE3LjkgMjcuNi0zNC40IDI2LjFTNDQ4IDQ2NC42IDQ0OCA0NDhsMC0xNi0zMjAgMCAwIDE2YzAgMTYuNi0xMi42IDMwLjQtMjkuMSAzMS45UzY3LjUgNDcwIDY0LjUgNDUzLjdDMzkgMzEzLjMgMjYgMjQyLjEgMjUuNyAyNDB6Il19LHJKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU1MDEiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LG9KdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTRlNSIsIk0zNDguOCAzMkMzNDAuNyA0Ni4xIDMzNiA2Mi41IDMzNiA4MGwwIDE2LTI3MiAwIDAgMjI0IDI3MiAwIDAgNjQtMjcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg0LjggMHpNMzM2IDQzMmMwIDE3LjUgNC43IDMzLjkgMTIuOCA0OEwxMjAgNDgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxNiAwek00MzIgMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTI0IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNTYgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LEN4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLW1hZ2ljIixpY29uOls1MTIsNTEyLFsibWFnaWMiXSwiZjBkMCIsIk0zOTguNSAxMi4ybC04OC4yIDg4LjIgMTAxLjMgMTAxLjMgODguMi04OC4yQzUwNy42IDEwNS42IDUxMiA5NSA1MTIgODRzLTQuNC0yMS42LTEyLjItMjkuNUw0NTcuNSAxMi4yQzQ0OS42IDQuNCA0MzkgMCA0MjggMHMtMjEuNiA0LjQtMjkuNSAxMi4yek0yNzYuNCAxMzQuM0wxMi4yIDM5OC41QzQuNCA0MDYuNCAwIDQxNyAwIDQyOHM0LjQgMjEuNiAxMi4yIDI5LjVsNDIuMyA0Mi4zQzYyLjQgNTA3LjYgNzMgNTEyIDg0IDUxMnMyMS42LTQuNCAyOS41LTEyLjJMMzc3LjcgMjM1LjYgMjc2LjQgMTM0LjN6Il19LG5KdD1DeGUsbEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyYWluIixpY29uOls1MTIsNTEyLFsxMjk1MDRdLCJmNWRjIiwiTTEyMCA1NmMwLTMwLjkgMjUuMS01NiA1Ni01NmwyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0yOS44IDAtNTQuOS0yMC40LTYyLTQ4LS43IDAtMS4zIDAtMiAwLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtMTggNi0zNC42IDE2LTQ4LTE5LjQtMTQuNi0zMi0zNy44LTMyLTY0IDAtMzAuOSAxNy42LTU3LjggNDMuMi03MS4xLTcuMS0xMi0xMS4yLTI2LTExLjItNDAuOSAwLTQ0LjIgMzUuOC04MCA4MC04MGwwLTI0em0yNzIgMGwwIDI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTUtNC4xIDI5LTExLjIgNDAuOSAyNS43IDEzLjMgNDMuMiA0MC4xIDQzLjIgNzEuMSAwIDI2LjItMTIuNiA0OS40LTMyIDY0IDEwIDEzLjQgMTYgMzAgMTYgNDggMCA0NC4yLTM1LjggODAtODAgODAtLjcgMC0xLjMgMC0yIDAtNy4xIDI3LjYtMzIuMiA0OC02MiA0OGwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NnoiXX0sY0p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWVmY2FzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmNDY5IiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptODAgMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxkSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1MTIiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LHVKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWNvbW1pdCIsaWNvbjpbNTc2LDUxMixbXSwiZjM4NiIsIk0yODggMzM2YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xNTYuOC00OEM0MzAgMzYxIDM2NS40IDQxNiAyODggNDE2UzE0NiAzNjEgMTMxLjIgMjg4TDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OS4yIDBDMTQ2IDE1MSAyMTAuNiA5NiAyODggOTZzMTQyIDU1IDE1Ni44IDEyOGw5OS4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk5LjIgMHoiXX0scEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1icmVhc3RmZWVkaW5nIixpY29uOls0NDgsNTEyLFtdLCJlNTNhIiwiTTIyNCAwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek00MzYuOCAzODIuOEwzNzMuNSA0NjJjLTE2LjYgMjAuNy00Ni44IDI0LjEtNjcuNSA3LjUtMTcuNi0xNC4xLTIyLjctMzguMS0xMy41LTU3LjdsLS43LS4xYy0zOC45LTUuNi03NC4zLTI1LjEtOTkuNy01NC44bDAtMzYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgLjggMCAxLjYgLjEgMi40bDEwMS40IDUwLjdjMjMuNyAxMS45IDMzLjMgNDAuNyAyMS41IDY0LjRzLTQwLjcgMzMuMy02NC40IDIxLjVMMjcuMiA0MjcuM2MtMS4xLS41LTIuMi0xLjEtMy4zLTEuNy00LjktMi44LTkuMi02LjQtMTIuNi0xMC42LTQuNi01LjQtNy44LTExLjctOS42LTE4LjQtMy4zLTEyLTEuOS0yNS4yIDQuOC0zNi42IC42LTEuMSAxLjMtMi4yIDItMy4yTDc1LjYgMjU2LjFjMjYuNy00MC4xIDcxLjctNjQuMSAxMTkuOC02NC4xbDc1LjIgMGM0Ni41IDAgOTAuMSAyMi41IDExNy4yIDYwLjNsNTAuNyA3MC45YzIuMiAzIDQgNi4xIDUuNSA5LjQgMi45IDYuNyA0LjMgMTMuOCA0IDIwLjgtLjMgMTAuNi00LjIgMjEtMTEuMiAyOS40ek0zMjAgMzMyYTQ0IDQ0IDAgMSAwIC04OCAwIDQ0IDQ0IDAgMSAwIDg4IDB6Il19LGhKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmF5cyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0ZCIsIk0zMTIuNSAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43bDQ2LjMgNjIuNGMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUMzMzguNSAxMzIgMjk4LjggMTEyIDI1Ni41IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42bDQ2LjMtNjIuNCAwIDI3NS4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTcuNSA3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw4MCA4MGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDEuNSA3QzMyLjEtMi4zIDE2LjktMi4zIDcuNSA3em00NjQgMGwtODAgODBjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwek03LjUgNTA1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXptNDY0IDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw4MCA4MHoiXX0sZkp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hbmF0LXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZDUiLCJNMTkyIDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyAxMDkuMyAwIDE5MC4xIDAgMjg4TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC02Mi41IDQ0LjgtMTE0LjUgMTA0LTEyNS44TDE2OCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI5My44YzU5LjIgMTEuMiAxMDQgNjMuMyAxMDQgMTI1LjhsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTk3LjktNzMuMy0xNzguNy0xNjgtMTkwLjVMMjE2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxUeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydCIsaWNvbjpbMzg0LDUxMixbInVuc29ydGVkIl0sImYwZGMiLCJNMi40IDIwNC4yYzUgMTIgMTYuNiAxOS44IDI5LjYgMTkuOGwzMjAgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0Ljl6bTAgMTAzLjVjLTUgMTItMi4yIDI1LjcgNi45IDM0LjlsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHoiXX0sbUp0PVR4ZSwkeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXJhZGlhdGlvbiIsaWNvbjpbNTEyLDUxMixbOTc2MiwicmFkaWF0aW9uLWFsdCJdLCJmN2JhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTgwIDBsNjQuMyAwYzguNyAwIDE1LjctNy4xIDE3LjMtMTUuNiA0LjQtMjQuNCAxOC4xLTQ1LjUgMzcuMi01OS43IDcuNC01LjUgMTAuNi0xNS42IDYtMjMuNmwtMzIuNS01Ni4zYy00LjMtNy41LTEzLjktMTAuMy0yMS4yLTUuNS00OC4yIDMxLjUtODEuMyA4NC4yLTg2LjMgMTQ0LjgtLjcgOC44IDYuNSAxNiAxNS4zIDE2em0xMzcuOSA4OS44Yy04LjUtMy43LTE4LjgtMS40LTIzLjUgNi42bC0zMSA1My44Yy00LjMgNy41LTEuOSAxNy4yIDUuOCAyMS4xIDI2LjEgMTMuMiA1NS41IDIwLjcgODYuOCAyMC43czYwLjctNy41IDg2LjgtMjAuN2M3LjctMy45IDEwLjEtMTMuNiA1LjgtMjEuMWwtMzEtNTMuOGMtNC42LTgtMTUtMTAuMy0yMy41LTYuNi0xMS43IDUtMjQuNSA3LjgtMzguMSA3LjhzLTI2LjQtMi44LTM4LjEtNy44ek0zNTAuNCAyNDAuNGMxLjYgOC42IDguNSAxNS42IDE3LjMgMTUuNmw2NC4zIDBjOC44IDAgMTYuMS03LjIgMTUuMy0xNi01LTYwLjYtMzguMS0xMTMuMi04Ni4zLTE0NC44LTcuMy00LjgtMTYuOC0yLTIxLjIgNS41TDMwNy4zIDE1N2MtNC42IDgtMS40IDE4LjEgNiAyMy42IDE5LjEgMTQuMiAzMi43IDM1LjQgMzcuMiA1OS43ek0yNTYgMzA1LjdhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxnSnQ9JHhlLGJKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtY29kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjVmYyIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MC02NCAwIDAtMjQwLTM4NCAwIDAgMjQwLTY0IDAgMC0yNDB6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMiAwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4MSAyMDlsLTMxIDMxIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTM5MyAxNzVsNDggNDhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6Il19LHZKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5rIixpY29uOls1MTIsNTEyLFtdLCJlMDZkIiwiTTI4OCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyIDE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDE5Mi02NCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC04MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgMC00MGMwLTQuNCAzLjYtOCA4LThsNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTYgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA0MC02NCAwIDAtMTkyeiJdfSx4SnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS13YXRlci1wdW1wIixpY29uOls2NDAsNTEyLFtdLCJlNGI2IiwiTTE0NCAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNzYtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA3OS42YzE3LjYtMiAzNiAyLjUgNTEuMyAxNCAzLjQgMi42IDYuMSAxLjQgOS44LS4zbC44LS40YzUuNy0yLjYgMTIuOS02LjkgMjEuNy0xMy41IDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuMy0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDEwLjctOC4xIDIyLjktMTIuNyAzNS4zLTE0LjFsMC03OS41YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC01NiAwIDAtMTQyLjEgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ5NyAzOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTg4IDg4Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgMCAxNDIuMS0xMzYgMCAwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwxNDQgMzJ6TTQ3NC42IDQ3Ni4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDgyLjMgMTcuNiA0OTAuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6Il19LER4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLWxpbmVzLXNsYXNoIixpY29uOls1NzYsNTEyLFsibWljcm9waG9uZS1hbHQtc2xhc2giXSwiZjUzOSIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTUxIDE1MSAwLTMwLjJjMC01MyA0My05NiA5Ni05NiA1MC4zIDAgOTEuNiAzOC43IDk1LjcgODhMMzI4IDg4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDAgMCA0OC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU1LjcgMGMtMS45IDIyLjktMTEuOCA0My40LTI2LjkgNTlsMzMuOSAzMy45YzI1LjUtMjYgNDEuMy02MS42IDQxLjMtMTAwLjlsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA1Mi42LTIxLjEgMTAwLjItNTUuMyAxMzQuOEw1NjkgNTAzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDkuMUMtMi4zLS4zLTIuMy0xNS41IDctMjQuOXpNMjk3LjggMzY3LjdsNDEuNCA0MS40Yy04LjggMi40LTE3LjkgNC4zLTI3LjMgNS40bDAgNDkuNSA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDkuNUMxNjkuMyA0MDIuNyA5NiAzMjEuOSA5NiAyMjRsMC00MGMwLTUuMSAxLjYtOS45IDQuNC0xMy44bDQzLjYgNDMuNiAwIDEwLjJjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDQgMy4zIDAgNi42LS4xIDkuOC0uM3oiXX0seUp0PUR4ZSx3SnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VydmVyIixpY29uOls0NDgsNTEyLFtdLCJmMjMzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAyODh6bTIxNiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTU2IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFNvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtOTguNS03OS44LTE3OC4zLTE3OC4zLTE3OC4zbC01OS40IDB6Il19LGtKdD1Tb2UsU0p0PVNvZSxfSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjg4LjIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDYyLjEtMTUtMTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNDkgNDkgMCA3MC42LTYxLjItMzUuMy0xNy45LTY2LjljLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjMgOTggOTguNyAxMTAuOGw1LjUgMjAuNS01My43LTMxQzM1LjIgOTEuNSAxNS42IDk2LjcgNi44IDExMnMtMy42IDM0LjkgMTEuNyA0My43bDUzLjcgMzEtMjAuNSA1LjVjLTEyLjggMy40LTIwLjQgMTYuNi0xNyAyOS40czE2LjYgMjAuNCAyOS40IDE3bDY2LjktMTcuOSA2MS4yIDM1LjMtNjEuMiAzNS4zLTY2LjktMTcuOWMtMTIuOC0zLjQtMjYgNC4yLTI5LjQgMTdzNC4yIDI2IDE3IDI5LjRsMjAuNSA1LjUtNTMuNyAzMUMzLjIgMzY1LjEtMiAzODQuNyA2LjggNDAwczI4LjQgMjAuNiA0My43IDExLjdsNTMuNy0zMS01LjUgMjAuNWMtMy40IDEyLjggNC4yIDI2IDE3IDI5LjRzMjYtNC4yIDI5LjQtMTdsMTcuOS02Ni45IDYxLjItMzUuMyAwIDcwLjYtNDkgNDljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNS0xNSAwIDYyLjFjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTYyLjEgMTUgMTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00OS00OSAwLTcwLjYgNjEuMiAzNS4zIDE3LjkgNjYuOWMzLjQgMTIuOCAxNi42IDIwLjQgMjkuNCAxN3MyMC40LTE2LjYgMTctMjkuNGwtNS41LTIwLjUgNTMuNyAzMWMxNS4zIDguOCAzNC45IDMuNiA0My43LTExLjdzMy42LTM0LjktMTEuNy00My43bC01My43LTMxIDIwLjUtNS41YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNjYuOSAxNy45LTYxLjItMzUuMyA2MS4yLTM1LjMgNjYuOSAxNy45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMjAuNS01LjUgNTMuNy0zMWMxNS4zLTguOCAyMC42LTI4LjQgMTEuNy00My43cy0yOC40LTIwLjUtNDMuNy0xMS43bC01My43IDMxIDUuNS0yMC41YzMuNC0xMi44LTQuMi0yNi0xNy0yOS40cy0yNiA0LjItMjkuNCAxN2wtMTcuOSA2Ni45LTYxLjIgMzUuMyAwLTcwLjYgNDktNDljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTUgMTUgMC02Mi4xeiJdfSxNSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGF1cnVzIixpY29uOlszODQsNTEyLFtdLCJlODRmIiwiTTMzNi0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU4LjUtMjguNiAxMTAuMy03Mi41IDE0Mi4zIDUzLjIgMzQuMSA4OC41IDkzLjggODguNSAxNjEuNyAwIDEwNi04NiAxOTItMTkyIDE5MlMwIDQyNiAwIDMyMEMwIDI1Mi4xIDM1LjMgMTkyLjQgODguNSAxNTguMyA0NC42IDEyNi4zIDE2IDc0LjUgMTYgMTYgMTYtMS43IDMwLjMtMTYgNDgtMTZTODAtMS43IDgwIDE2YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyUzMwNCA3Ny45IDMwNCAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTkyIDE5MmExMjggMTI4IDAgMSAwIDAgMjU2IDEyOCAxMjggMCAxIDAgMC0yNTZ6Il19LHpKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJza3VsbC1jcm9zc2JvbmVzIixpY29uOls0NDgsNTEyLFsxMjgzNjksOTc2MF0sImY3MTQiLCJNMzg0IDE0NEMzODQgNjQuNSAzMTIuNCAwIDIyNCAwUzY0IDY0LjUgNjQgMTQ0YzAgNDcuMSAyNS4xIDg4LjkgNjQgMTE1LjJsMCAyOC44YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjguOGMzOC45LTI2LjMgNjQtNjguMSA2NC0xMTUuMnpNMTYwIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0NS41IDMzOS43Yy02LjgtMTYuMy0yNS41LTI0LTQxLjgtMTcuMkwyMjQgMzk3LjMgNDQuMyAzMjIuNWMtMTYuMy02LjgtMzUgLjktNDEuOCAxNy4ycy45IDM1IDE3LjIgNDEuOEwxNDAuOCA0MzIgMTkuNyA0ODIuNUMzLjQgNDg5LjMtNC4zIDUwOCAyLjUgNTI0LjNzMjUuNSAyNCA0MS44IDE3LjJMMjI0IDQ2Ni43IDQwMy43IDU0MS41YzE2LjMgNi44IDM1LS45IDQxLjgtMTcuMnMtLjktMzUtMTcuMi00MS44TDMwNy4yIDQzMiA0MjguMyAzODEuNWMxNi4zLTYuOCAyNC0yNS41IDE3LjItNDEuOHoiXX0sQ0p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlc28tc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTIyMiIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgNjQtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMzItMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiA5NiAwYzY1LjYgMCAxMjItMzkuNSAxNDYuNy05NmwzNy4zIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0LjggMGMuNS01LjMgLjgtMTAuNiAuOC0xNnMtLjMtMTAuNy0uOC0xNmwyNC44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM3LjMgMEMzNjIgNzEuNSAzMDUuNiAzMiAyNDAgMzJMMTEyIDMyem0xOTkuNiA5NmwtMTY3LjYgMCAwLTMyIDk2IDBjMjguNCAwIDU0IDEyLjQgNzEuNiAzMnpNMTQ0IDE3NmwxOTAuNyAwYy45IDUuMiAxLjMgMTAuNSAxLjMgMTZzLS41IDEwLjgtMS4zIDE2bC0xOTAuNyAwIDAtMzJ6bTE2Ny42IDgwYy0xNy42IDE5LjYtNDMuMSAzMi03MS42IDMybC05NiAwIDAtMzIgMTY3LjYgMHoiXX0sVEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmUtZ2xhc3MiLGljb246WzMyMCw1MTIsWzEyNzg2M10sImY0ZTMiLCJNMzIuNiAyNS43QzM1LjYgMTAuOCA0OC43IDAgNjQgMEwyNTYgMGMxNS4zIDAgMjguNCAxMC44IDMxLjQgMjUuN0wzMTYuOCAxNzNjMi4xIDEwLjUgMy4yIDIxLjIgMy4yIDMybDAgM2MwIDc3LjQtNTUgMTQyLTEyOCAxNTYuOGwwIDExNS4yIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xMTUuMkM1NSAzNTAgMCAyODUuNCAwIDIwOGwwLTNjMC0xMC43IDEuMS0yMS40IDMuMi0zMkwzMi42IDI1Ljd6TTc3LjQgMTI4bDE2NS4xIDAtMTIuOC02NC0xMzkuNSAwLTEyLjggNjR6Il19LG9TPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWhhbGYiLGljb246WzMyMCw1MTIsWzEyNzc3NywidGVtcGVyYXR1cmUtMiIsInRoZXJtb21ldGVyLTIiLCJ0aGVybW9tZXRlci1oYWxmIl0sImYyYzkiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtOTIuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LCRKdD1vUyxESnQ9b1MsTEp0PW9TLEVKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aWNrZXQiLGljb246WzU3Niw1MTIsWzEyNzkwM10sImYxNDUiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA2NEMwIDIwMC44IDcuNCAyMDcuNyAxNS43IDIxMC42IDM0LjUgMjE3LjEgNDggMjM1IDQ4IDI1NnMtMTMuNSAzOC45LTMyLjMgNDUuNEM3LjQgMzA0LjMgMCAzMTEuMiAwIDMyMGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC04LjgtNy40LTE1LjctMTUuNy0xOC42LTE4LjgtNi41LTMyLjMtMjQuNC0zMi4zLTQ1LjRzMTMuNS0zOC45IDMyLjMtNDUuNGM4LjMtMi45IDE1LjctOS44IDE1LjctMTguNmwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek00MTYgMzM2bDAtMTYwLTI1NiAwIDAgMTYwIDI1NiAwek0xMTIgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yODggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6Il19LFBKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVhdC1hd24tY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTk4IiwiTTQ5NiA1NzZhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek04MSA1MjljLTkuNCA5LjMtMjQuNSA5LjMtMzMuOSAwLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDgxIDUyOXptMzAuMi0yOTQuNGM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjMgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDEyIDEyYy0uOCA3LTEuMiAxNC4yLTEuMiAyMS40IDAgMjAgMyAzOS4zIDguNyA1Ny40LTM2LjggMjEuOC04NSAxNy0xMTYuNi0xNC43TDE2NS42IDQ0NC4zIDgxIDUyOUM2OS43IDUxNy43IDU4LjQgNTA2LjMgNDcgNDk1bDg0LjctODQuNy0zMC41LTMwLjVjLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTQ5NiA0NzZhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpNMjE1LjIgMTMwLjZjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4zIDgzLjkgMjQuMi01LjkgNTAuMS0yLjEgNzEuOSAxMC44LTMyLjIgMjQuOS01Ni4yIDU5LjgtNjcuNCAxMDAuMS0zLjgtMi44LTcuNS02LTExLTkuNWwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xek01MjYuNyAxNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMCA4LjggOC44IDkuMyAyMi43IDEuNyAzMi4xTDU2MC42IDQ5IDQ0Ni4yIDE2My40YzcuNyAxIDE1LjMgMyAyMi41IDUuOUw1MjcgMTExYzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTUyLjcgNTIuNyAzOSAzOWMzLjIgMy4yIDQuNyA3LjQgNC43IDExLjYtMTcuNy01LjQtMzYuNS04LjMtNTUuOS04LjMtMzQuMiAwLTY2LjMgOC45LTk0LjEgMjQuNmwtOTIuNy05Mi43Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjhsNy40LTcuNCAyLjUtMi4xYzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsMzkgMzkgNTIuNy01Mi43YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xTDQ2NSA0OSA0MDYuNyAxMDcuM2MyLjggNy4xIDQuNyAxNC41IDUuOCAyMi4xTDUyNi43IDE1eiJdfSxJSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXR1cm4tcmlnaHQiLGljb246WzQ0OCw1MTIsW10sImU0YzAiLCJNMzEzLjQtNi42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMzM4LjcgMTI4IDEyOCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCAyNDEuNyAwIDIyNGwwLTMyQzAgMTIxLjMgNTcuMyA2NCAxMjggNjRsMjEwLjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zem0tOTYgMjU2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQyLjcgMzg0IDk2IDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4bDAtMzJjMC01MyA0My05NiA5Ni05NmwxNDYuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6Il19LEFKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5keS1jYW5lIixpY29uOls0NDgsNTEyLFtdLCJmNzg2IiwiTTQyMS44IDM5LjZDNDUyIDg1LjIgNDU2LjUgMTQyLjkgNDM1LjEgMTkybC0xNjUuNCAwIDQxLjQtNDEuNGMuOC0uOCAxLjUtMS42IDIuMi0yLjRMNDIxLjggMzkuNnpNMjY4IDEwMi45Yy0uOCAuNy0xLjYgMS40LTIuNCAyLjJsLTI4LjEgMjguMWMtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41TDE3NSAxNC42QzIyOS45LTQwLjIgMzE0LjUtNDYuNyAzNzYuNS01LjZMMjY4IDEwMi45ek0xMjUuNyAzMzZsODAtODAgMTgxIDAtODIuNSA4Mi41IDAtMi41LTE3OC41IDB6bTExNyA2NEwxNDEuNCA1MDEuM2MtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41bDEwLjctMTAuNyAxODEgMHoiXX0sTkp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWVsY2hhaXIiLGljb246WzUxMiw1MTIsW10sImYxOTMiLCJNMTM2IDQwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTE3LjkgMTk3LjZsMTIuNiA2M2MtMzguNiAxMi40LTY2LjUgNDguNy02Ni41IDkxLjQgMCA1MyA0MyA5NiA5NiA5NiAzNS42IDAgNjYuNy0xOS40IDgzLjMtNDguMiAyLjMgLjEgNC42IC4yIDcgLjJsNC4xIDBjMSAwIDIuMSAwIDMuMSAwbDU1LjIgMGMtMjAuNCA2NC45LTgxIDExMi0xNTIuNyAxMTItODguNCAwLTE2MC03MS42LTE2MC0xNjAgMC03My44IDUwLTEzNS45IDExNy45LTE1NC40em0xNDguNi0yOC4xbDIzLjcgMTE4LjUgNjAuNSAwYzMzLjMgMCA2My4yIDIwLjcgNzQuOSA1MS45bDI1LjUgNjggMTguNy02LjJjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVsLTQ4IDE2Yy0xNi4zIDUuNC0zNC0zLTQwLjEtMTkuMWwtMzYuMy05Ni45Yy0yLjMtNi4yLTguMy0xMC40LTE1LTEwLjRsLTg2LjEgMGMtLjQgMC0uOCAwLTEuMyAwbC0xMy4xIDBjLTMwLjUgMC01Ni44LTIxLjUtNjIuOC01MS40TDE2NS4zIDE4OS43Yy02LjQtMzEuOSAxOC02MS43IDUwLjYtNjEuNyAyNC42IDAgNDUuOCAxNy40IDUwLjYgNDEuNXoiXX0sUkp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwZWxsLWNoZWNrIixpY29uOls1NzYsNTEyLFtdLCJmODkxIiwiTTEyMCAzMmMtNDguNiAwLTg4IDM5LjQtODggODhsMCAxNjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTY4YzAtNDguNi0zOS40LTg4LTg4LTg4bC0xNiAwem00MCAxMjhsLTY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDB6TTMwNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMGM0OC42IDAgODgtMzkuNCA4OC04OCAwLTIzLjYtOS4zLTQ1LTI0LjQtNjAuOCAxMC4zLTE0LjQgMTYuNC0zMi4xIDE2LjQtNTEuMiAwLTQ4LjYtMzkuNC04OC04OC04OGwtNjQgMHptNjQgMTEybC0zMiAwIDAtNDggMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpNMzM2IDI1NmwwLTQ4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDB6bTIzMyA4NGMxMS0xMy44IDguOC0zMy45LTUtNDVzLTMzLjktOC44LTQ1IDVsLTEwNS43IDEzMi4xLTM4LjctMzguN2MtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjNi40IDYuNCAxNS4zIDkuOCAyNC40IDkuM3MxNy41LTQuOSAyMy4yLTEyTDU2OSAzNDB6Il19LE9KdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtb2ZmIixpY29uOlszMjAsNTEyLFtdLCJmMDI2IiwiTTk2IDM1MmwtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw0OCAwIDEzNC4xLTExOS4yYzYuNC01LjcgMTQuNi04LjggMjMuMS04LjggMTkuMiAwIDM0LjggMTUuNiAzNC44IDM0LjhsMCAzNzguNGMwIDE5LjItMTUuNiAzNC44LTM0LjggMzQuOC04LjUgMC0xNi43LTMuMS0yMy4xLTguOEw5NiAzNTJ6Il19LEZKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsdW5ncyIsaWNvbjpbNTc2LDUxMixbMTI5NzI5XSwiZjYwNCIsIk0zMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNDEuOS0zMiAxOS4yIDAtMTE2LjdjMC0yNC41LTE5LjktNDQuNC00NC40LTQ0LjQtMTIuNSAwLTI0LjQgNS4zLTMyLjggMTQuNWwtMjYuNCAyOUM0Mi45IDE2MC44IDAgMjcxLjggMCAzODdsMCAzMC41YzAgNTIuMiA0Mi4zIDk0LjUgOTQuNSA5NC41IDIyIDAgNDMuNy01LjEgNjMuNC0xNWw1LTIuNWMzNy40LTE4LjcgNjEtNTYuOSA2MS05OC44bDAtMTI4IDY0LTM4LjQgNjQgMzguNCAwIDEyOGMwIDQxLjggMjMuNiA4MC4xIDYxIDk4LjhsNSAyLjVjMTkuNyA5LjggNDEuNCAxNSA2My40IDE1IDUyLjIgMCA5NC41LTQyLjMgOTQuNS05NC41bDAtNi4yYzAtMTExLjEtMzYuNy0yMTktMTA0LjQtMzA3TDQyOC45IDQ4LjdjLTguMS0xMC42LTIwLjctMTYuNy0zNC0xNi43LTIzLjcgMC00Mi45IDE5LjItNDIuOSA0Mi45bDAgMTE4LjItMzItMTkuMiAwLTE0MS45eiJdfSxCSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9va21hcmsiLGljb246WzM4NCw1MTIsWzEyODI3OCw2MTU5MV0sImYwMmUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0ODBjMCAxMS41IDYuMiAyMi4yIDE2LjIgMjcuOHMyMi4zIDUuNSAzMi4yLS40TDE5MiA0MjEuMyAzMzUuNSA1MDcuNGM5LjkgNS45IDIyLjIgNi4xIDMyLjIgLjRTMzg0IDQ5MS41IDM4NCA0ODBsMC00MTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHoiXX0sSEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMmEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0em03MiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyem0yMDgtOGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0tOTYgMGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxfb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC1vbCIsaWNvbjpbNTEyLDUxMixbImxpc3QtMS0yIiwibGlzdC1udW1lcmljIl0sImYwY2IiLCJNMCA3MkMwIDU4LjggMTAuNyA0OCAyNCA0OGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTgwLTI0IDBDMTAuNyA5NiAwIDg1LjMgMCA3MnpNMzAuNCAzMDEuMkM0MS44IDI5Mi42IDU1LjcgMjg4IDcwIDI4OGw0LjkgMGMzMy43IDAgNjEuMSAyNy40IDYxLjEgNjEuMSAwIDE5LjYtOS40IDM3LjktMjUuMiA0OS40bC0yNCAxNy41IDMzLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTAuNyAwQzEzLjEgNDY0IDAgNDUwLjkgMCA0MzQuNyAwIDQyNS4zIDQuNSA0MTYuNSAxMi4xIDQxMWw3MC41LTUxLjNjMy40LTIuNSA1LjQtNi40IDUuNC0xMC42IDAtNy4yLTUuOS0xMy4xLTEzLjEtMTMuMUw3MCAzMzZjLTMuOSAwLTcuNyAxLjMtMTAuOCAzLjZMMzguNCAzNTUuMmMtMTAuNiA4LTI1LjYgNS44LTMzLjYtNC44Uy0xIDMyNC44IDkuNiAzMTYuOGwyMC44LTE1LjZ6TTIyNCA2NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxNjBsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxxSnQ9X29lLGpKdD1fb2UsVkp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNWExIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFVKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjdWJlIixpY29uOls1MTIsNTEyLFtdLCJmMWIyIiwiTTIyNC4zLTIuNWMxOS44LTExLjQgNDQuMi0xMS40IDY0IDBMNDY0LjIgOTljMTkuOCAxMS40IDMyIDMyLjYgMzIgNTUuNGwwIDIwM2MwIDIyLjktMTIuMiA0NC0zMiA1NS40TDI4OC4zIDUxNC41Yy0xOS44IDExLjQtNDQuMiAxMS40LTY0IDBMNDguNSA0MTNjLTE5LjgtMTEuNC0zMi0zMi42LTMyLTU1LjRsMC0yMDNjMC0yMi45IDEyLjItNDQgMzItNTUuNEwyMjQuMy0yLjV6bTIwNy44IDM2MGwwLTE2Ni4xLTE0My44IDgzIDAgMTY2LjEgMTQzLjgtODN6Il19LFdKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXBlIixpY29uOls1NzYsNTEyLFtdLCJmNGRiIiwiTTQxMi44IDQxNmM0MS41LTQwLjcgNjcuMi05Ny4zIDY3LjItMTYwIDAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjRTMzIgMTMyLjMgMzIgMjU2IDEzMi4zIDQ4MCAyNTYgNDgwbDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMzEuMiAwek0yNTYgMTYwYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem00OCA5NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxHSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9tYiIsaWNvbjpbNTc2LDUxMixbMTI4MTYzXSwiZjFlMiIsIk00ODAtMTZjNi45IDAgMTMgNC40IDE1LjIgMTAuOWwxMy41IDQwLjQgNDAuNCAxMy41QzU1NS42IDUxIDU2MCA1Ny4xIDU2MCA2NHMtNC40IDEzLTEwLjkgMTUuMmwtNDAuNCAxMy41LTEzLjUgNDAuNEM0OTMgMTM5LjYgNDg2LjkgMTQ0IDQ4MCAxNDRzLTEzLTQuNC0xNS4yLTEwLjlsLTEzLjUtNDAuNC00MC40LTEzLjVDNDA0LjQgNzcgNDAwIDcwLjkgNDAwIDY0czQuNC0xMyAxMC45LTE1LjJsNDAuNC0xMy41IDEzLjUtNDAuNEM0NjctMTEuNiA0NzMuMS0xNiA0ODAtMTZ6TTMyMS40IDk3LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTEwLjkgMTAuOWM3LjkgMjIgMTIuMiA0NS43IDEyLjIgNzAuNSAwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTMzIgNDE4LjkgMzIgMzA0IDEyNS4xIDk2IDI0MCA5NmMyNC43IDAgNDguNSA0LjMgNzAuNSAxMi4zbDEwLjktMTAuOXpNMTQ0IDMwNGMwLTUzIDQzLTk2IDk2LTk2IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0eiJdfSxMeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbImJhbGFuY2Utc2NhbGUtbGVmdCJdLCJmNTE1IiwiTTUxOS44IDYyLjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNVM1MTYuMy0zLjkgNDk5LjYgMS42bC0xMTMgMzcuN2MtMTMuOS0yMy41LTM5LjYtMzkuMy02OC45LTM5LjMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCAzIC4yIDUuOSAuNSA4LjhMMTE1LjYgMTI5LjZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmwxMzUuNS00NS4yYzQuNSAzLjIgOS4zIDUuOSAxNC40IDguMmwwIDMyNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTI5NC43YzIxLTkuMiAzNy4yLTI3IDQ0LjItNDlsMTI1LjktNDJ6TTQzNy4zIDI4OGw3Mi40LTEyNC4yIDcyLjQgMTI0LjItMTQ0LjkgMHptNzIuNCA5NmM2Mi45IDAgMTE1LjItMzQgMTI2LTc4LjkgMi42LTExLTEtMjIuMy02LjctMzIuMUw1MzMuOCAxMDkuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDM5MC40IDI3My4xYy01LjcgOS44LTkuMyAyMS4xLTYuNyAzMi4xIDEwLjggNDQuOCA2My4xIDc4LjkgMTI2IDc4Ljl6TTEyNi44IDI5MS44bDcyLjQgMTI0LjItMTQ0LjkgMCA3Mi40LTEyNC4yek0uOSA0MzMuMUMxMS43IDQ3OCA2NCA1MTIgMTI2LjggNTEyczExNS4yLTM0IDEyNi03OC45YzIuNi0xMS0xLTIyLjMtNi43LTMyLjFMMTUwLjkgMjM3LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEw3LjYgNDAxLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjF6Il19LEtKdD1MeGUsRXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1sZWZ0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWxlZnQiXSwiZjE5MSIsIk0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2ek0xMjggMjU2YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40UzI4OCAxNDIuNSAyODggMTUybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42eiJdfSxZSnQ9RXhlLFpKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlciIsaWNvbjpbNTc2LDUxMixbMTI4MjA3XSwiZjU0NSIsIk0yMDkuMSA1MTYuMmMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjguMSA0MDMuMWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlsMTctMTcgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAzMy45LTMzLjkgNTAuOSA1MC45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTAuOS01MC45IDMzLjktMzMuOSA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMTctMTdjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBMNTQ4LjUgMTA4LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjA5LjEgNTE2LjJ6Il19LFhKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpIixpY29uOlszMjAsNTEyLFsxMDVdLCI0OSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOTYgMCAwIDMyMC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwIDAtMzIwIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LE1vZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUteG1hcmsiLGljb246WzU3Niw1MTIsWyJ2b2x1bWUtbXV0ZSIsInZvbHVtZS10aW1lcyJdLCJmNmE5IiwiTTQ4IDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEw5NiAxNjAgNDggMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek0zNjcgMTc1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw0NyA0Ny00NyA0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDctNDcgNDctNDdjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNDcgNDctNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAweiJdfSxRSnQ9TW9lLEpKdD1Nb2UsZWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyY2h3YXkiLGljb246WzUxMiw1MTIsW10sImY1NTciLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwLTEyOGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjcyLTQ0OCAwIDAgMjcyeiJdfSxQeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRpZ2dpbmciLGljb246WzU3Niw1MTIsWyJkaWdnaW5nIl0sImY4NWUiLCJNMjA4IDQwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTAuNSAxODEuM2M1LjktMTEuOSAyMC4zLTE2LjcgMzIuMi0xMC43bDI0LjYgMTIuMyAxMi4yLTIwLjRjMTguOS0zMS41IDUzLjItNTAuNSA4OS42LTUwLjUgNDYuMiAwIDg3LjcgMzAuNSAxMDAuNSA3NS40bDMyLjIgMTEyLjcgOTIuOSA0Ni40IDI1LjgtNDNjNS44LTkuNiAxNi4yLTE1LjUgMjcuNC0xNS41czIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzU1NS41IDUxMiA1NDQgNTEybC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMkwzNzAgMzg3LjggMjEuMyAyMTMuNWMtMTEuOS01LjktMTYuNy0yMC4zLTEwLjctMzIuMnpNOTQuMyAzMDcuNGwxMTIgNTZjMTAuOCA1LjQgMTcuNyAxNi41IDE3LjcgMjguNmwwIDg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjguMi02MS4zLTMwLjctMzYuMyAxMDljLTUuNiAxNi44LTIzLjcgMjUuOC00MC41IDIwLjJTLTMuOSA0ODYuNiAxLjcgNDY5LjlsNDgtMTQ0YzIuOS04LjggOS41LTE1LjkgMTguMS0xOS40czE4LjMtMy4yIDI2LjYgLjl6Il19LHRlYT1QeGUsem9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLWhpZ2giLGljb246WzUxMiw1MTIsWzYyNDYxLCJ0YWNob21ldGVyLWFsdCIsInRhY2hvbWV0ZXItYWx0LWZhc3QiXSwiZjYyNSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NHpNMTc2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05NiAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zNTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sYWVhPXpvZSxzZWE9em9lLGllYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW5kZXJsZXNzIixpY29uOlszODQsNTEyLFtdLCJmMjJkIiwiTTE5MiAxMjhhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2em0wIDMyMGExOTIgMTkyIDAgMSAwIDAtMzg0IDE5MiAxOTIgMCAxIDAgMCAzODR6Il19LHJlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zdW4iLGljb246WzY0MCw1MTIsWzk5MjVdLCJmNmM0IiwiTTIwOC4zIDE5MmM0My4xIDAgODAuNSAyNC40IDk5LjIgNjAuMSAxNC43LTE3LjIgMzYuNC0yOC4xIDYwLjgtMjguMSA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC45LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0zMjAgMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNy03OC41IDY2LTkxLjItMS4zLTYuOC0yLTEzLjctMi0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyem0xOTItMjIzLjhjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjFsNDcuMyA3MC40IDgzLjMtMTYuM2M1LjItMSAxMC42IC43IDE0LjMgNC40IDMuOCAzLjggNS40IDkuMiA0LjQgMTQuNGwtMTYuMyA4My4zIDcwLjQgNDcuM2M0LjQgMyA3LjEgOCA3LjEgMTMuMyAwIDUuMy0yLjYgMTAuMy03IDEzLjJsLTcwLjQgNDcuMyAxNC41IDc0LjJjLTE3LjItMjEuNy00MC40LTM4LjQtNjcuMi00Ny4zLTIuNS0xMi43LTYuOS0yNC42LTEyLjgtMzUuNyA5LjYtMTQuOSAxNS4yLTMyLjcgMTUuMi01MS43IDAtNTMtNDMtOTYtOTYtOTYtNDcuOSAwLTg3LjYgMzUuMS05NC44IDgwLjktMjAuOS0xNi00NS45LTI3LTczLjEtMzEuMWwyMS41LTE0LjUtMTYuMy04My4yLS4zLTJjLS4zLTQuNiAxLjMtOS4xIDQuNi0xMi40IDMuOC0zLjggOS4yLTUuNCAxNC40LTQuNGw4My4zIDE2LjMgNDcuMy03MC40IDEuMi0xLjZjMy0zLjUgNy40LTUuNSAxMi4xLTUuNXptMCAxNzUuOGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDMuOC0uNSA3LjYtMS40IDExLjEtMjEuNy0xNi45LTQ4LjktMjcuMS03OC42LTI3LjEtNC42IDAtOS4xIC4yLTEzLjUgLjcgNi40LTE5IDI0LjMtMzIuNyA0NS41LTMyLjd6Il19LFhiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NTk0XSwiZjA2MSIsIk01MDIuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDAyLjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNzAuNyAwLTEwNS40IDEwNS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6Il19LENvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzU3Niw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk0yNjguOSA4NS4yTDE1Mi4zIDIxNC44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMXpNMTE2LjYgMTgyLjdMMjIzLjQgNjQgMTgzLjggNjRjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xTDExMiA5NiAwIDMyIDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0NDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSxvZWE9Q29lLG5lYT1Db2UsSXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2lpbmciLGljb246WzU3Niw1MTIsWzk5NzUsInNraWluZyJdLCJmN2M5IiwiTTQxNiA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTIuNyAzMDAuOWM2LjEtMTEuOCAyMC42LTE2LjMgMzIuNC0xMC4ybDE5Ny44IDEwMi43IDYyLjMtODcuMi04Mi05Mi4yYy0xMS0xMi40LTE2LjItMjcuNS0xNi4yLTQyLjRsMTExLjYgNTMuNCA0Mi45IDQ4LjJjMTQuOSAxNi43IDE2LjIgNDEuNiAzLjIgNTkuOGwtNjQuNCA5MC4yIDEyOC4zIDY2LjZjMTMuNiA3LjEgMjkuOCA3LjIgNDMuNiAuM2wxNS4yLTcuNmMxMS45LTUuOSAyNi4zLTEuMSAzMi4yIDEwLjdzMS4xIDI2LjMtMTAuNyAzMi4ybC0xNS4yIDcuNmMtMjcuNSAxMy43LTU5LjkgMTMuNS04Ny4yLS43TDEyLjkgMzMzLjNDMS4yIDMyNy4yLTMuNCAzMTIuNyAyLjcgMzAwLjl6TTEwMyA0OS42bDE4IDguNyA4LjctMTcuNGM0LTcuOSAxMy42LTExLjEgMjEuNS03LjJzMTEuMSAxMy42IDcuMiAyMS41bC04LjUgMTcgODQuOCA0MSAuNC0uMiA3Ni4xLTMzLjhjMzEuMy0xMy45IDY3LjktLjcgODMuMiAyOS45bDI4LjkgNTcuOCA2OC43IDI3LjVjMTYuNCA2LjYgMjQuNCAyNS4yIDE3LjggNDEuNnMtMjUuMiAyNC40LTQxLjYgMTcuOEwzOTMuOCAyMjRjLTEwLjktNC40LTE5LjgtMTIuNi0yNS4xLTIzLjFsLTExLjUtMjMuMWMtMTYuNCA5LjQtMjUuOSAxNC44LTI4LjUgMTYuM2wtNy42LTMuNy0xODUuNi04OS42LTkuMiAxOC4zYy00IDcuOS0xMy42IDExLjEtMjEuNSA3LjJzLTExLjEtMTMuNi03LjItMjEuNWw5LTE3LjktMTcuNi04LjVDODEuMSA3NC42IDc3LjggNjUgODEuNiA1N1M5NSA0NS43IDEwMyA0OS42eiJdfSxsZWE9SXhlLGNlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2Utd2F0ZXIiLGljb246WzY0MCw1MTIsW10sImU0Y2UiLCJNNjQgNjRsNTEyIDAgMCAxMTJjLTM3LjYgOS40LTY0IDQzLjItNjQgODJsMCA3Ni40Yy0yMS05LjctNDMuNS0xNC41LTY2LTE0LjQtMTAgLjEtMjAuMSAxLjEtMzAgMy4xbDAtMzUuMWMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLjdjLTUuMy0uNS0xMC43LS44LTE2LS43LTI3LjcgLjItNTUuNCA3LjgtODAgMjNsMC04NWMwLTM4LjgtMjYuNC03Mi42LTY0LTgyTDY0IDY0ek00MDMuNCA0NDQuMUMzNzkuMSA0NjIuMyAzNTEuMSA0ODAgMzIwIDQ4MHMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LGRlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1uZ28iLGljb246WzU3Niw1MTIsW10sImU0ZDciLCJNMTI4IDBDOTIuNyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDggMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwyMDggMCAwLTI3MmMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTMwNCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xNjAgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek01MjAgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04MGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptLTQgNDRjMC0yLjIgMS44LTQgNC00bDE2IDBjMi4yIDAgNCAxLjggNCA0bDAgODBjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MHptLTE2OCAwbDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTI0YzAtMTEtOS0yMC0yMC0yMGwtOCAwYy0xMSAwLTIwIDktMjAgMjAgMCA2LjUgMy4xIDEyLjQgOCAxNmwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMjAuNCAwYzEuOSA5LjEgOS45IDE2IDE5LjYgMTYgMTEgMCAyMC05IDIwLTIwIDAtMTkuOS0xNi4xLTM2LTM2LTM2bC0yNCAwYy0yNC4zIDAtNDQgMTkuNy00NCA0NHptLTkwLjEtMzIuOWMtNC4xLTguMy0xMy41LTEyLjctMjIuNS0xMC41UzIyMCAzOTAuNyAyMjAgNDAwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNDMuMyAyNi4xIDUyLjJjNC4xIDguMyAxMy41IDEyLjcgMjIuNSAxMC41UzMyNCA1MzcuMyAzMjQgNTI4bDAtMTI4YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDQzLjMtMjYuMS01Mi4yeiJdfSx1ZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWdsb28iLGljb246WzU3Niw1MTIsW10sImY3YWUiLCJNMzIwIDMzLjhsMCAxMjYuMi0yNzEuNSAwYzUxLjctNzcuMiAxMzkuNi0xMjggMjM5LjUtMTI4IDEwLjggMCAyMS41IC42IDMyIDEuOHpNMzY4IDE2MGwwLTExNi43YzY2IDE5IDEyMi4yIDYxIDE1OS41IDExNi43TDM2OCAxNjB6TTIyLjYgMjA4bDczLjQgMCAwIDExMi05NiAwYzAtMzkuNyA4LTc3LjYgMjIuNi0xMTJ6TTE3NiAzMjBsLTMyIDAgMC0xMTIgMjg4IDAgMCAxMTItMzIgMCAwIDQ4IDE3NiAwIDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0IDE3NiAwIDAtNDh6bTMwNCAwbDAtMTEyIDczLjQgMEM1NjggMjQyLjQgNTc2IDI4MC4zIDU3NiAzMjBsLTk2IDB6TTI4OCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODAgMTI4IDAgMC04MGMwLTM1LjMtMjguNy02NC02NC02NHoiXX0sQXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1kb2xsYXItdG8tc2xvdCIsaWNvbjpbNTc2LDUxMixbImRvbmF0ZSJdLCJmNGI5IiwiTTk2IDIyNGExOTIgMTkyIDAgMSAxIDM4NCAwIDE5MiAxOTIgMCAxIDEgLTM4NCAwem0xNzYtOTJsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMjQ4IDI3MmMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHpNNDggMzQ0bDAgMTA0YzAgOC44IDcuMiAxNiAxNiAxNmw0NDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LHBlYT1BeGUsaGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InkiLGljb246WzM4NCw1MTIsWzEyMV0sIjU5IiwiTTU4IDQ1LjRDNDcuOCAzMSAyNy44IDI3LjcgMTMuNCAzOFMtNC4zIDY4LjIgNiA4Mi42TDE2MCAyOTguMyAxNjAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDkuNyAxNTQtMjE1LjdjMTAuMy0xNC40IDYuOS0zNC40LTcuNC00NC42UzMzNi4yIDMxIDMyNiA0NS40TDE5MiAyMzIuOSA1OCA0NS40eiJdfSxOeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zbWlsZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1MjEsInNtaWxlLXdpbmsiXSwiZjRkYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY1LjQgMzIxLjljMjAuNCAyOCA1My40IDQ2LjEgOTAuNiA0Ni4xczcwLjItMTguMSA5MC42LTQ2LjFjNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUMzNTYuMyAzOTAgMzA5LjIgNDE2IDI1NiA0MTZzLTEwMC4zLTI2LTEyOS40LTY1LjljLTcuOC0xMC43LTUuNC0yNS43IDUuMy0zMy41czI1LjctNS40IDMzLjUgNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGZlYT1OeGUsbWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZm91ciIsaWNvbjpbNDQ4LDUxMixbOTg1OV0sImY1MjQiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzUyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUnhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMiLGljb246WzU3Niw1MTIsWzEyOTMxNSwiZ3Jpbi1zcXVpbnQtdGVhcnMiXSwiZjU4NiIsIk01NjAgMzUuNGMwIDI1LjYtMTguOCA0Ny4zLTQ0LjEgNTAuOUw0NjkuMSA5M2MtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQ2MS4zIDIuOCA0ODMtMTYgNTA4LjYtMTYgNTM3LTE2IDU2MCA3IDU2MCAzNS40ek00MDMuNSA2OC4xYy02IDQyLjIgMzAuMiA3OC40IDcyLjQgNzIuNGwzNy44LTUuNEM1NjUuNyAyMzIgNTUwLjggMzU1LjMgNDY5IDQzN3MtMjA1IDk2LjYtMzAxLjkgNDQuN2w1LjQtMzcuOGM2LTQyLjItMzAuMi03OC40LTcyLjQtNzIuNGwtMzcuOCA1LjRDMTAuMyAyODAgMjUuMiAxNTYuNyAxMDcgNzVTMzEyLTIxLjcgNDA4LjkgMzAuM2wtNS40IDM3Ljh6TTQxNy44IDIwMWMtMTkuMSAzNi40LTQ1LjYgNzIuNy03OC45IDEwNnMtNjkuNiA1OS44LTEwNiA3OC45Yy0xMS4xIDUuOC0xMi40IDIxLjQtMS4xIDI2LjYgNTkuMiAyNy41IDEzMS44IDE2LjggMTgwLjYtMzJzNTkuNS0xMjEuNCAzMi0xODAuNmMtNS4zLTExLjMtMjAuOC0xMC0yNi42IDEuMXpNMTEzLjkgMjcwLjZjMS43IDggOSAxMy40IDE3LjEgMTIuN2w0My4xLTMuOS0zLjkgNDMuMWMtLjcgOC4xIDQuNyAxNS41IDEyLjcgMTcuMXMxNS45LTIuOSAxOC40LTEwLjZsMjgtODQuNmMxLjktNS43IC40LTEyLjEtMy45LTE2LjNzLTEwLjYtNS44LTE2LjMtMy45bC04NC42IDI4Yy03LjcgMi42LTEyLjMgMTAuNS0xMC42IDE4LjV6TTMxNS4yIDk5LjFjLjctOC4xLTQuNy0xNS41LTEyLjctMTcuMXMtMTUuOSAyLjktMTguNSAxMC42bC0yOCA4NC42Yy0xLjkgNS43LS40IDEyLjEgMy45IDE2LjNzMTAuNiA1LjggMTYuMyAzLjlsODQuNi0yOGM3LjctMi42IDEyLjMtMTAuNSAxMC42LTE4LjRzLTktMTMuNC0xNy4xLTEyLjdsLTQzLjEgMy45IDMuOS00My4xek02MC4xIDQyNS43bDQ2LjctNi43YzEwLjYtMS41IDE5LjYgNy41IDE4LjEgMTguMWwtNi43IDQ2LjdDMTE0LjcgNTA5LjIgOTMgNTI4IDY3LjQgNTI4IDM5IDUyOCAxNiA1MDUgMTYgNDc2LjYgMTYgNDUxIDM0LjggNDI5LjMgNjAuMSA0MjUuN3oiXX0sZ2VhPVJ4ZSxiZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hdWRpbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXptNTMuOCAxODUuMmMtOS4xLTYuMy0yMS41LTQuMS0yNy44IDVzLTQuMSAyMS41IDUgMjcuOGMyMy45IDE2LjcgMzkuNCA0NC4zIDM5LjQgNzUuNXMtMTUuNiA1OC45LTM5LjQgNzUuNWMtOS4xIDYuMy0xMS4zIDE4LjgtNSAyNy44czE4LjggMTEuMyAyNy44IDVjMzQuMS0yMy44IDU2LjYtNjMuNSA1Ni42LTEwOC4zUzI5NiAyNjcuNSAyNjEuOCAyNDMuN3pNODAgMzEyYy04LjggMC0xNiA3LjItMTYgMTZsMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMCAyNy4yIDM0YzMgMy44IDcuNiA2IDEyLjUgNmwuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZsLS4zIDBjLTQuOSAwLTkuNSAyLjItMTIuNSA2bC0yNy4yIDM0LTI0IDB6bTEyOCA3Mi4yYzAgMTAuNyAxMC41IDE4LjIgMTguOSAxMS42IDEyLjktMTAuMyAyMS4xLTI2LjEgMjEuMS00My44cy04LjItMzMuNS0yMS4xLTQzLjhjLTguNC02LjctMTguOSAuOS0xOC45IDExLjZsMCA2NC41eiJdfSx2ZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLWRvd24tdG8tbGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiOCIsIk0yMTQuNiAzMTAuNmwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAyNzQuNyA5NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0yNTYgMGwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5LjQgOS40IDAtMjQyLjdjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0Mi43IDkuNC05LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMnoiXX0seGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImciLGljb246WzQ0OCw1MTIsWzEwM10sIjQ3IiwiTTIyNCA5NkMxMzUuNiA5NiA2NCAxNjcuNiA2NCAyNTZzNzEuNiAxNjAgMTYwIDE2MGM3Ny40IDAgMTQyLTU1IDE1Ni44LTEyOEwyNTYgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0NCAwYzI1LjggMCA0OS42IDIxLjQgNDcuMiA1MC42LTkuNSAxMTUtMTA1LjggMjA1LjQtMjIzLjIgMjA1LjQtMTIzLjcgMC0yMjQtMTAwLjMtMjI0LTIyNFMxMDAuMyAzMiAyMjQgMzJjNTcuNCAwIDEwOS43IDIxLjYgMTQ5LjMgNTcgMTMuMiAxMS44IDE0LjMgMzIgMi41IDQ1LjJzLTMyIDE0LjMtNDUuMiAyLjVDMzAyLjMgMTExLjQgMjY1IDk2IDIyNCA5NnoiXX0seWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpaGFyYSIsaWNvbjpbNTc2LDUxMixbXSwiZjZhNyIsIk0yNzMuNi0zLjJjOC41LTYuNCAyMC4zLTYuNCAyOC44IDBMNDQzLjIgMTAyLjRjOC4zIDYuMiAxOC40IDkuNiAyOC44IDkuNiAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDQ4IDU4LjcgNjQgMTMuMyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0OCAyNC40IDMyIDE1LjYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTEyOCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi00MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIyLjEgMCAxNy45LTMyIDAtNDgtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzLjMgMCA1OC43LTY0IDAtNDgtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMxMC40IDAgMjAuNS0zLjQgMjguOC05LjZMMjczLjYtMy4yek0xMjggMzY4bDMyMCAwIDAtNDgtMzIwIDAgMCA0OHpNMzg0IDE2MGwtMTkyIDAgMCA0OCAxOTIgMCAwLTQ4eiJdfSx3ZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZy1jaGVja2VyZWQiLGljb246WzQ0OCw1MTIsWzEyNzkzN10sImYxMWUiLCJNMzIgMEM0OS43IDAgNjQgMTQuMyA2NCAzMmwwIDE2IDY5LTE3LjJjMzguMS05LjUgNzguMy01LjEgMTEzLjUgMTIuNSA0Ni4zIDIzLjIgMTAwLjggMjMuMiAxNDcuMSAwbDkuNi00LjhDNDIzLjggMjguMSA0NDggNDMuMSA0NDggNjYuMWwwIDI3OS43YzAgMTMuMy04LjMgMjUuMy0yMC44IDMwbC0zNC43IDEzYy00Ni4yIDE3LjMtOTcuNiAxNC42LTE0MS43LTcuNC0zNy45LTE5LTgxLjQtMjMuNy0xMjIuNS0xMy40TDY0IDM4NCA2NCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0OTcuNyAwIDQ4MEwwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHpNNjQgMTg3LjFsNjQtMTMuOSAwIDY1LjUtNjQgMTMuOSAwIDY1LjUgNDguOC0xMi4yYzUuMS0xLjMgMTAuMS0yLjQgMTUuMi0zLjNsMC02My45IDM4LjktOC40YzguMy0xLjggMTYuNy0yLjUgMjUuMS0yLjFsMC02NGMxMy42IC40IDI3LjIgMi42IDQwLjQgNi40bDIzLjYgNi45IDAgNjYuNy00MS43LTEyLjNjLTcuMy0yLjEtMTQuOC0zLjQtMjIuMy0zLjhsMCA3MS40YzIxLjggMS45IDQzLjMgNi43IDY0IDE0LjRsMC02OS44IDIyLjcgNi43YzEzLjUgNCAyNy4zIDYuNCA0MS4zIDcuNGwwLTY0LjJjLTcuOC0uOC0xNS42LTIuMy0yMy4yLTQuNWwtNDAuOC0xMiAwLTYyYy0xMy0zLjgtMjUuOC04LjgtMzguMi0xNS04LjItNC4xLTE2LjktNy0yNS44LTguOGwwIDcyLjRjLTEzLS40LTI2IC44LTM4LjcgMy42bC0yNS4zIDUuNSAwLTc1LjItNjQgMTYgMCA3My4xek0zMjAgMzM1LjdjMTYuOCAxLjUgMzMuOS0uNyA1MC02LjhsMTQtNS4yIDAtNzEuNy03LjkgMS44Yy0xOC40IDQuMy0zNy4zIDUuNy01Ni4xIDQuNWwwIDc3LjR6bTY0LTE0OS40bDAtNzAuOGMtMjAuOSA2LjEtNDIuNCA5LjEtNjQgOS4xbDAgNjkuNGMxMy45IDEuNCAyOCAuNSA0MS43LTIuNmwyMi4zLTUuMnoiXX0sVG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbImdhdWdlLXNpbXBsZS1tZWQiLCJ0YWNob21ldGVyLWF2ZXJhZ2UiXSwiZjYyOSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LGtlYT1Ub2UsU2VhPVRvZSxPeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtbGVmdCIsaWNvbjpbNTEyLDUxMixbImV4Y2hhbmdlLWFsdCJdLCJmMzYyIiwiTTUwMi42IDE1MC42bC05NiA5NmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzUyIDIzNi45IDM1MiAyMjRsMC02NC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzMjAgMCAwLTY0YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6bS0zOTcuMyAzNTJsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxNjAgMjc1LjEgMTYwIDI4OGwwIDY0IDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45eiJdfSxfZWE9T3hlLE1lYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWxscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4NCIsIk02NCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyek0xNzYgMzY4YzAtNDguNyAxOC4xLTkzLjIgNDgtMTI3bDAtMTI5QzIyNCA1MC4xIDE3My45IDAgMTEyIDBTMCA1MC4xIDAgMTEyTDAgNDAwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyIDM3LjMgMCA3MC4zLTE4LjIgOTAuNy00Ni4zLTE3LTI4LjYtMjYuNy02Mi0yNi43LTk3Ljd6bTY0LjcgNjcuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDI2NGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMjk3LjkgNDcyYy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNC00LjYtOC43LTE2LjMtOS43LTIzLjMtMi43TDI5Ny45IDQ3MnoiXX0semVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4cGxvc2lvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRlOSIsIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDE2MGMxMi40IDAgMjIuNyA5LjQgMjMuOSAyMS43TDI5My40IDI5MS42IDQ2Ny42IDExLjNjNi43LTEwLjcgMjAuNS0xNC41IDMxLjctOC41czE1LjggMTkuNSAxMC42IDMxTDM3Mi44IDMzOC42YzIuMiAyLjMgNC4zIDQuNyA2LjMgNy4xbDk3LjItNTQuN2MxMC41LTUuOSAyMy42LTMuMSAzMC45IDYuNHM2LjMgMjMtMi4yIDMxLjVsLTg3IDg3LTcxLjQgMGMtMTMuMi0zNy4zLTQ4LjctNjQtOTAuNS02NHMtNzcuNCAyNi43LTkwLjUgNjRsLTc5LjYgMC03NS41LTUyLjNDLjYgMzU3LTIuOCAzNDQuMSAyLjQgMzMzLjVzMTcuNC0xNS45IDI4LjctMTIuNGw5Ny4yIDMwLjRjMy0zLjkgNi4xLTcuNiA5LjQtMTEuM0w3NS40IDIzNi4zYy02LjEtMTAuMS0zLjktMjMuMSA1LjEtMzAuN3MyMi4yLTcuNSAzMS4xIC4xTDIxNCAyOTMuNmMxLjUtLjQgMy0uOCA0LjUtMS4xbDEzLjYtMTQyLjdjMS4yLTEyLjMgMTEuNS0yMS43IDIzLjktMjEuN3pNMzIgNDY0bDQ1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDB6Il19LENlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1wZW9wbGUiLGljb246WzUxMiw1MTIsW10sImU0YjkiLCJNMTEzIDE1M2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTUgODlDNS43IDc5LjYgNS43IDY0LjQgMTUgNTVTMzkuNiA0NS43IDQ5IDU1TDcyIDc4LjEgNzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODYuMSAyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTY0IDY0em0zMjAgMGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzM1IDg5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjMgMjMgMC04Ni4xYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6TTI1NiAxOTJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTYwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC01MyA0My05NiA5Ni05NnpNMzIgMjg4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTgwIDM2OGMxNS4zIDAgMjkuNiA0LjMgNDEuOCAxMS44LTYuMyAxNi4yLTkuOCAzMy44LTkuOCA1Mi4ybDAgNDhjMCAxMS40IDIuNCAyMi4yIDYuNyAzMmwtODcuOCAwQzEzLjggNTEyIDAgNDk4LjIgMCA0ODEuMUwwIDQ0OGMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMzkzLjMgNTEyYzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtNDhjMC0xOC40LTMuNS0zNi05LjgtNTIuMiAxMi4yLTcuNSAyNi41LTExLjggNDEuOC0xMS44IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMzMuMWMwIDE3LTEzLjggMzAuOS0zMC45IDMwLjlsLTg3LjggMHoiXX0sVGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXZpZXdmaW5kZXIiLGljb246WzU3Niw1MTIsW10sImU1OTUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC04LjggNy4yLTE2IDE2LTE2bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMTQ5LjMgMCAxMzYgMEw2NCAwek00NDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTM1LjMtMjguNy02NC02NC02NEw0NDAgMHpNNDggMzc2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMzYyLjcgMCAzNzZsMCA3MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwYy04LjggMC0xNi03LjItMTYtMTZsMC03MnptNTI4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3MmMwIDguOC03LjIgMTYtMTYgMTZsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTcyek0yODggMjE2YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTUzLTQzLTk2LTk2LTk2em0xOTItNjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTY4IDI3Mi4zYy00OS4zIDQuMS04OCA0NS4zLTg4IDk1LjdsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNDYuOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLTI0YzAtMjkuNSA4LjgtNTYuOSAyNC03OS43ek00MjcuOSA0MDBsNDYuOCAwYzExLjggMCAyMS4zLTkuNiAyMS4zLTIxLjNsMC0xMC43YzAtNTAuMy0zOC43LTkxLjYtODgtOTUuNyAxNS4yIDIyLjggMjQgNTAuMiAyNCA3OS43bDAgMjRjMCA4LjQtMS40IDE2LjUtNC4xIDI0ek0xOTIgMTkyYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LCRlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItb24iLGljb246WzQ0OCw1MTIsW10sImU0ZGQiLCJNMjQ4LThjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjAwLTIxLjMgMjAwLThsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjR6TTE0NS4zIDIwOGwxNTcuNSAwYzYuNyAwIDEyLjYgNC4xIDE1IDEwLjRsMjYuMSA2OS42LTIzOS42IDAgMjYuMS02OS42YzIuMy02LjIgOC4zLTEwLjQgMTUtMTAuNHpNMzQgMjkyLjhsLTEuMyAzLjRDMTMuMiAzMDcuMSAwIDMyOCAwIDM1MkwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjg4IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMjQtMTMuMi00NC45LTMyLjgtNTUuOWwtMS4zLTMuNC0zNi4zLTk2LjljLTExLjctMzEuMi00MS42LTUxLjktNzQuOS01MS45bC0xNTcuNSAwYy0zMy4zIDAtNjMuMiAyMC43LTc0LjkgNTEuOUwzNCAyOTIuOHpNOTYgMzM2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjI0IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTcgN0MtMi4zIDE2LjQtMi4zIDMxLjYgNyA0MUw1NSA4OWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMFM5OC4zIDY0LjQgODkgNTVMNDEgN0MzMS42LTIuMyAxNi40LTIuMyA3IDd6TTQwNyA3TDM1OSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45UzQxNi40LTIuMyA0MDcgN3oiXX0sRGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsZWlnaCIsaWNvbjpbNjQwLDUxMixbXSwiZjdjYyIsIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjRTNDYuMyA5NiA2NCA5NmwwIDE2MGMwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCA2OS41LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTA0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODAgMCAwLTY0YzUzIDAgOTYtNDMgOTYtOTZsMC05NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDguOSAwYy00OC41IDAtOTIuOC0yNy40LTExNC41LTcwLjhsLTI1LjItNTAuNUMyMzcuNyA1OS40IDE5My40IDMyIDE0NC45IDMyTDY0IDMyek00MzIgNDE2bC0yNTYgMCAwLTY0IDI1NiAwIDAgNjR6Il19LExlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW1iYmVsbCIsaWNvbjpbNjQwLDUxMixbXSwiZjQ0YiIsIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMiAyNTYgMCAwLTExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTExMi0yNTYgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTE2LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC00OGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAtMTZ6Il19LEZ4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWJ5LWNhcnJpYWdlIixpY29uOls1MTIsNTEyLFsiY2FycmlhZ2UtYmFieSJdLCJmNzdkIiwiTTY0IDIwOGwwIDgwYzAgNTMgNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwwLTExMiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDU2LTMzNiAwem0uMi00OGwyMjMuOCAwIDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDIzMiAwQzE0MS45IDAgNjguNCA3MC45IDY0LjIgMTYwek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTI4OCAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEVlYT1GeGUsUGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imtpd2ktYmlyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjUzNSIsIk0yOTEuMiAzODguNGMzMS4yLTE4LjggNjQuNy0zNi40IDEwMS4xLTM2LjRsNTUuNyAwYzQuNiAwIDkuMS0uMiAxMy42LS43bDg1LjMgMTIxLjljNCA1LjcgMTEuMyA4LjIgMTcuOSA2LjFTNTc2IDQ3MSA1NzYgNDY0bDAtMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4bC01NS43IDBDMzU1LjkgOTYgMzIyLjQgNzguNCAyOTEuMiA1OS42IDI2Mi4zIDQyLjEgMjI4LjMgMzIgMTkyIDMyIDg2IDMyIDAgMTE4IDAgMjI0IDAgMjk1LjEgMzguNiAzNTcuMSA5NiAzOTAuM0w5NiA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ2YzE1LjMgMy45IDMxLjQgNiA0OCA2IDUuNCAwIDEwLjctLjIgMTYtLjdsMCA0MC43YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01MC45YzEyLjQtNC40IDI0LjItMTAgMzUuMi0xNi43ek00NDggMjAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sQnhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXhtYXJrIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItdGltZXMiXSwiZjI3MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI5MS45IDIyMC4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMzMuOSAzMy45LTMzLjktMzMuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjktMzMuOSAzMy45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMzLjktMzMuOSAzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjl6Il19LEllYT1CeGUsSHhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1kb3duIixpY29uOls1MTIsNTEyLFs2MTQ2NiwiYXJyb3ctYWx0LWNpcmNsZS1kb3duIl0sImYzNTgiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0yNDQuNyAzODcuM2wtMTA0LTEwNGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHM4LjMtOS45IDE0LjgtOS45bDU2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgNTYgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtMTA0IDEwNGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDB6Il19LEFlYT1IeGUsTmVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtbWVkaWNhbCIsaWNvbjpbMzg0LDUxMixbXSwiZjQ3NyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTYwIDI4MGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0semQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieG1hcmsiLGljb246WzM4NCw1MTIsWzEyODQ3MywxMDAwNSwxMDAwNiwxMDA2MCwyMTUsImNsb3NlIiwibXVsdGlwbHkiLCJyZW1vdmUiLCJ0aW1lcyJdLCJmMDBkIiwiTTU1LjEgNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTQ3LjIgMjU2IDkuOSAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIuNSAzMDEuMyAzMjkuOSA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIzNy44IDI1NiAzNzUuMSAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIuNSAyMTAuNyA1NS4xIDczLjR6Il19LFJlYT16ZCxPZWE9emQsRmVhPXpkLEJlYT16ZCxxeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcGVzIixpY29uOls1MTIsNTEyLFsidHJpYW5nbGUtY2lyY2xlLXNxdWFyZSJdLCJmNjFmIiwiTTI1NiAwYzExLjIgMCAyMS43IDUuOSAyNy40IDE1LjVsOTYgMTYwYzUuOSA5LjkgNi4xIDIyLjIgLjQgMzIuMlMzNjMuNSAyMjQgMzUyIDIyNGwtMTkyIDBjLTExLjUgMC0yMi4yLTYuMi0yNy44LTE2LjJzLTUuNS0yMi4zIC40LTMyLjJsOTYtMTYwQzIzNC4zIDUuOSAyNDQuOCAwIDI1NiAwek0xMjggMjcyYTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptMjAwIDE2bDExMiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTEyYzAgMjIuMS0xNy45IDQwLTQwIDQwbC0xMTIgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xMTJjMC0yMi4xIDE3LjktNDAgNDAtNDB6Il19LEhlYT1xeGUscWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2Utb25lIixpY29uOls0NDgsNTEyLFs5ODU2XSwiZjUyNSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjQgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0samVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2stb3BlbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNjMSIsIk0zODQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOFMzMjAgMjUuMyAzMjAgOTZsMCA2NC0xNjAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC02NHoiXX0sVmVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcHBlci1ob3QiLGljb246WzU3Niw1MTIsWzEyNzc5OF0sImY4MTYiLCJNNTQ1IDY1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNDc4LjkgNjMuMkM0NTIuMyA0My42IDQxOS41IDMyIDM4NCAzMiAzNDguOSAzMiAzMTYuNSA0My4zIDI5MC4xIDYyLjQgMjc0LjEgNzQuMSAyODQuMiA5NiAzMDQgOTZsMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDE5LjggMjEuOSAyOS45IDMzLjYgMTMuOSAxOS4xLTI2LjQgMzAuNC01OC44IDMwLjQtOTMuOSAwLTM1LjUtMTEuNi02OC4zLTMxLjItOTQuOUw1NDUgNjV6TTI3MCAxMzUuNWwtMTU5LjYgMjI4QzEwMS4zIDM3Ni40IDg2LjcgMzg0IDcxIDM4NGwtNyAwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4bDI3LjEgMGM2NS43IDAgMTI5LjctMjAuMiAxODMuNS01Ny44TDQ0MC41IDMwNi4xQzQzNSAyOTUuOSA0MzIgMjg0LjIgNDMyIDI3MmwtNTYgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC01NmMtMTIuMiAwLTIzLjktMy0zNC04LjV6Il19LGp4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcm9wbGV0LXNsYXNoIixpY29uOls1NzYsNTEyLFsidGludC1zbGFzaCJdLCJmNWM3IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDYzLjYgMzk3LjhjMTAuNS0yMy44IDE2LjQtNTAuMSAxNi40LTc3LjggMC05MS4yLTEzMC4yLTI3NC4xLTE2Ni42LTMyMy41LTUuOS04LTE1LjItMTIuNS0yNS4yLTEyLjVsLS40IDBjLTEwIDAtMTkuMyA0LjUtMjUuMiAxMi41LTE1LjYgMjEuMi00OC41IDY2LjktODAuOSAxMTkuNEw0MS0yNC45em05MiAyMjcuN2MtMjEuNiA0My44LTM3IDg1LjktMzcgMTE3LjIgMCAxMDYgODYgMTkyIDE5MiAxOTIgNDMuNCAwIDgzLjQtMTQuNCAxMTUuNS0zOC42TDEzMyAyMDIuOHoiXX0sVWVhPWp4ZSxWeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJvcGxldCIsaWNvbjpbMzg0LDUxMixbMTI4MTY3LCJ0aW50Il0sImYwNDMiLCJNMTkyIDUxMkM4NiA1MTIgMCA0MjYgMCAzMjAgMCAyMjguOCAxMzAuMiA0NS45IDE2Ni42LTMuNSAxNzIuNS0xMS41IDE4MS44LTE2IDE5MS44LTE2bC40IDBjMTAgMCAxOS4zIDQuNSAyNS4yIDEyLjUgMzYuNCA0OS40IDE2Ni42IDIzMi4zIDE2Ni42IDMyMy41IDAgMTA2LTg2IDE5Mi0xOTIgMTkyek0xMTIgMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNzUuMSA2MC45IDEzNiAxMzYgMTM2IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00OC42IDAtODgtMzkuNC04OC04OHoiXX0sV2VhPVZ4ZSwkb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI4NDQxLDEyODQ2Miw2MTY4NiwiZmlsZS1hbHQiLCJmaWxlLXRleHQiXSwiZjE1YyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTIwIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxHZWE9JG9lLEtlYT0kb2UsWWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnRzLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbXSwiZjY1MyIsIk0xOTIgMzIwYzEwNiAwIDE5Mi03OC44IDE5Mi0xNzZTMjk4LTMyIDE5Mi0zMiAwIDQ2LjggMCAxNDRjMCAzOS42IDE0LjMgNzYuMiAzOC40IDEwNS42TDIuOCAzMTYuOEMtMi4xIDMyNi4xLS40IDMzNy41IDcgMzQ1czE4LjkgOS4yIDI4LjIgNC4yTDExNi44IDMwNmMyMy4xIDkgNDguNSAxNCA3NS4yIDE0em0zLjIgNDhjMTYuNCA4MS45IDk0LjcgMTQ0IDE4OC44IDE0NCAyNi43IDAgNTIuMS01IDc1LjItMTRsODEuNiA0My4yYzkuMyA0LjkgMjAuNyAzLjIgMjguMi00LjJzOS4yLTE4LjkgNC4yLTI4LjJsLTM1LjYtNjcuMmMyNC4xLTI5LjQgMzguNC02NiAzOC40LTEwNS42IDAtODIuNC02MS43LTE1MS41LTE0NS0xNzAuNy0xMS41IDExNS44LTExNS44IDIwMS4yLTIzNS44IDIwMi43ek0xOTYgMzJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LFV4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLWxvY2F0aW9uIixpY29uOls1MTIsNTEyLFsic2VhcmNoLWxvY2F0aW9uIl0sImY2ODkiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yODggMTc2YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgNDguOCA0Ni41IDExMS42IDY4LjYgMTM4LjYgNiA3LjMgMTYuOCA3LjMgMjIuNyAwIDIyLjEtMjcgNjguNi04OS44IDY4LjYtMTM4LjZ6bS0xMTIgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxaZWE9VXhlLFFiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZSIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek02NCAzODRsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTg4IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0Uzc0LjcgNjQgODggNjR6bTAgOTZsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sWGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbnRhZ29uIixpY29uOls1NzYsNTEyLFtdLCJlNzkwIiwiTTMxNi40LTMuMWMtMTYuOC0xMi4yLTM5LjYtMTIuMi01Ni40IDBMMzUuMyAxNjAuMmMtMTYuOCAxMi4yLTIzLjkgMzMuOS0xNy40IDUzLjdsODUuOCAyNjQuMWM2LjQgMTkuOCAyNC45IDMzLjIgNDUuNyAzMy4ybDI3Ny43IDBjMjAuOCAwIDM5LjItMTMuNCA0NS43LTMzLjJsODUuOC0yNjQuMWM2LjQtMTkuOC0uNi00MS40LTE3LjQtNTMuN0wzMTYuNC0zLjF6Il19LFFlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXB1YmxpY2FuIixpY29uOls2NDAsNTEyLFtdLCJmNzVlIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJsMjI0IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCA2NC01NDQgMCAwLTY0em0xNTItMzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMjMyIDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjgwIDE2MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xMjggMjg4bDQxNiAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBsMC00OC0zMiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTkyIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjAgMTI4IDB6Il19LFd4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0Il0sImY1NGYiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTYuOCAxMTMuN2MzLjYgNy4yIDUuNSAxNS4xIDUuNSAyMy4yIDAgMjcuMy0yMS4yIDQ5LjctNDggNTEuNkw1MTIgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTk2IDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAweiJdfSxKZWE9V3hlLERvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxtIixpY29uOls0NDgsNTEyLFsxMjc5MDIsNjIzNjgsImZpbG0tYWx0IiwiZmlsbS1zaW1wbGUiXSwiZjAwOCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNNDggMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzA0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHoiXX0sZXRhPURvZSx0dGE9RG9lLGF0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU0ZDQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDQ1NC42IDQwMHoiXX0sc3RhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnRzIixpY29uOls1NzYsNTEyLFsxMjg0OTAsNjE2NzBdLCJmMDg2IiwiTTM4NCAxNDRjMCA5Ny4yLTg2IDE3Ni0xOTIgMTc2LTI2LjcgMC01Mi4xLTUtNzUuMi0xNEwzNS4yIDM0OS4yYy05LjMgNC45LTIwLjcgMy4yLTI4LjItNC4ycy05LjItMTguOS00LjItMjguMmwzNS42LTY3LjJDMTQuMyAyMjAuMiAwIDE4My42IDAgMTQ0IDAgNDYuOCA4Ni0zMiAxOTItMzJTMzg0IDQ2LjggMzg0IDE0NHptMCAzNjhjLTk0LjEgMC0xNzIuNC02Mi4xLTE4OC44LTE0NCAxMjAtMS41IDIyNC4zLTg2LjkgMjM1LjgtMjAyLjcgODMuMyAxOS4yIDE0NSA4OC4zIDE0NSAxNzAuNyAwIDM5LjYtMTQuMyA3Ni4yLTM4LjQgMTA1LjZsMzUuNiA2Ny4yYzQuOSA5LjMgMy4yIDIwLjctNC4yIDI4LjJzLTE4LjkgOS4yLTI4LjIgNC4yTDQ1OS4yIDQ5OGMtMjMuMSA5LTQ4LjUgMTQtNzUuMiAxNHoiXX0saXRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZ3MiLGljb246WzU3Niw1MTIsW10sImYwMmMiLCJNNDAxLjIgMzkuMUw1NDkuNCAxODkuNGMyNy43IDI4LjEgMjcuNyA3My4xIDAgMTAxLjJMMzkzIDQ0OC45Yy05LjMgOS40LTI0LjUgOS41LTMzLjkgLjJzLTkuNS0yNC41LS4yLTMzLjlMNTE1LjMgMjU2LjhjOS4yLTkuMyA5LjItMjQuNCAwLTMzLjdMMzY3IDcyLjljLTkuMy05LjQtOS4yLTI0LjYgLjItMzMuOXMyNC42LTkuMiAzMy45IC4yek0zMi4xIDIyOS41TDMyLjEgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTMzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2wxNDQgMTQ0YzI1IDI1IDI1IDY1LjUgMCA5MC41TDI4NS40IDQxOC43Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtMTQ0LTE0NGMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM3ptMTQ0LTg1LjVhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0scnRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1biIsaWNvbjpbNTc2LDUxMixbXSwiZTE5YiIsIk01MjggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4LTQ0OCAwQzE0LjMgNjQgMCA3OC4zIDAgOTZMMCAyMDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAgMGMyMC44IDAgMzYuMSAxOS42IDMxIDM5LjhMMzMgNDQwLjJjLTIuNCA5LjYtLjIgMTkuNyA1LjggMjcuNVM1NC4xIDQ4MCA2NCA0ODBsOTYgMGMxNC43IDAgMjcuNS0xMCAzMS0yNC4yTDIxNyAzNTIgMzIxLjQgMzUyYzIzLjcgMCA0NC44LTE0LjkgNTIuNy0zNy4ybDI2LjctNzQuOCAzMS4xIDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjIuNi0yMi42IDY2LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOHpNMzIxLjQgMzA0bC05Mi41IDAgMTYtNjQgMTA1IDAtMjEgNTguN2MtMS4xIDMuMi00LjIgNS4zLTcuNSA1LjN6TTgwIDEyOGwzODQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw4MCAxNjBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6Il19LHBmPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbNjE1MzMsImNoZWNrLWNpcmNsZSJdLCJmMDU4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zNzQgMTQ1LjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDIyMS4xIDMxNS4yIDE2OSAyNjMuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOCA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM3OS4zIDE3OS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41eiJdfSxvdGE9cGYsbnRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjb3JwaW8iLGljb246WzY0MCw1MTIsW10sImU4NGUiLCJNMzY4IDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEybDAgMjg5LjdjMCA3LjkgNi40IDE0LjMgMTQuMyAxNC4zIDMuOSAwIDcuNi0xLjYgMTAuMi00LjNsNDAuMS00MS4xLTkuNy05LjdjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNTQyLjMgMzUyIDU1MiAzNTJsNjQgMCAyLjUgLjFjMTIuMSAxLjIgMjEuNSAxMS41IDIxLjUgMjMuOWwwIDY0LS4zIDMuNmMtMS4yIDguMi02LjcgMTUuMy0xNC41IDE4LjYtOSAzLjctMTkuMyAxLjYtMjYuMi01LjJsLTkuMS05LjEtMzkuNiA0MC42Yy0xNC43IDE1LjEtMzQuOSAyMy42LTU2IDIzLjYtNDMuMyAwLTc4LjMtMzUuMS03OC4zLTc4LjNMNDE2IDE0NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMwNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyMGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgOTQuMiAzMiA4MC42IDMyIDY0IDMyIDQ2LjMgNDYuMyAzMiA2NCAzMiA5MSAzMiAxMTUuMyA0My4xIDEzMi43IDYxIDE1Mi42IDQzIDE3OSAzMiAyMDggMzIgMjM5LjMgMzIgMjY3LjcgNDQuOSAyODggNjUuNyAzMDguMyA0NC45IDMzNi42IDMyIDM2OCAzMnoiXX0sR3hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWNhcmQtY2xpcCIsaWNvbjpbNTc2LDUxMixbImlkLWNhcmQtYWx0Il0sImY0N2YiLCJNMjU2LTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NC0xMjggMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAzMmwxMTIgMCAwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzIgMTEyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0xNzYgNDAwYzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0yODggMjgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxsdGE9R3hlLGN0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzY4LjggMCAxMzEuMy0yNy4yIDE3Ny4zLTcxLjQgNy4zLTcgOS40LTE3LjkgNS4zLTI3LjFzLTEzLjctMTQuOS0yMy44LTE0LjFjLTQuOSAuNC05LjggLjYtMTQuOCAuNi0xMDEuNiAwLTE4NC04Mi40LTE4NC0xODQgMC03Mi4xIDQxLjUtMTM0LjYgMTAyLjEtMTY0LjggOS4xLTQuNSAxNC4zLTE0LjMgMTMuMS0yNC40UzMyMi42IDguNSAzMTIuNyA2LjNDMjk0LjQgMi4yIDI3NS40IDAgMjU2IDB6Il19LGR0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvaWwtd2VsbCIsaWNvbjpbNTc2LDUxMixbXSwiZTUzMiIsIk01MjguMyA2MS4zYy0xMS40LTQyLjctNTUuMy02OC05OC01Ni42TDQxNC45IDguOEMzOTcuOCAxMy40IDM4Ny43IDMxIDM5Mi4zIDQ4bDI0LjUgOTEuNC0xMDguMiAyOC4xLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzktMTMyLjIgMzQuMyAwLTM4LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNjQtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTM3LjMgMC02MS40LTE3NS40LTYyLjIgMTYuMSAyMi4xIDYzLjItNjYuNiAwIDE5LjktNTYuOS03NC42IDE5LjMtNDYuNyAxMzMuNS00MS4zIDAgMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxNi44LTQ4IDEwMC4yIDAgMTYuOCA0OC0xMzMuOCAweiJdfSxLeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFjaG9ncmFwaC1kaWdpdGFsIixpY29uOls1NzYsNTEyLFsiZGlnaXRhbC10YWNob2dyYXBoIl0sImY1NjYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAzNTJ6bTI1NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpNNDk2IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTg4IDMxMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTEwNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem01NiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHV0YT1LeGUsWXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldCIsaWNvbjpbNDQ4LDUxMixbInRhYmxldC1hbmRyb2lkIl0sImYzZmIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTg0IDQwMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxwdGE9WXhlLG5TPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1YmxlLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzODEsInJvdWJsZSIsInJ1YiIsInJ1YmxlIl0sImYxNTgiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDIwOC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCA0OC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE1MiAwIDAtNDggMTEyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTMzM1LjUgMzIgMjU2IDMyTDExMiAzMnpNMjU2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6Il19LGh0YT1uUyxmdGE9blMsbXRhPW5TLGd0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjIwYSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xNTIgODBsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODBjMC00LjQgMy42LTggOC04em0xNjggOGMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODB6Il19LGJ0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4iLGljb246WzUxMiw1MTIsWzEyODM5NF0sImYzMDQiLCJNMzUyLjkgMjEuMkwzMDggNjYuMSA0NDUuOSAyMDQgNDkwLjggMTU5LjFDNTA0LjQgMTQ1LjYgNTEyIDEyNy4yIDUxMiAxMDhzLTcuNi0zNy42LTIxLjItNTEuMUw0NTUuMSAyMS4yQzQ0MS42IDcuNiA0MjMuMiAwIDQwNCAwcy0zNy42IDcuNi01MS4xIDIxLjJ6TTI3NC4xIDEwMEw1OC45IDMxNS4xYy0xMC43IDEwLjctMTguNSAyNC4xLTIyLjYgMzguN0wuOSA0ODEuNmMtMi4zIDguMyAwIDE3LjMgNi4yIDIzLjRzMTUuMSA4LjUgMjMuNCA2LjJsMTI3LjgtMzUuNWMxNC42LTQuMSAyNy45LTExLjggMzguNy0yMi42TDQxMiAyMzcuOSAyNzQuMSAxMDB6Il19LHZ0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZSIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MiIsIk01MjAgMjAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2bC0xMjcuMyAwLTE1OS4yIDE3My42Yy02LjEgNi42LTE0LjYgMTAuNC0yMy42IDEwLjRsLTQzLjcgMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNTQuMy0xNjIuOS05OS43IDAtNTIuOCA2NmMtMyAzLjgtNy42IDYtMTIuNSA2bC0xOS44IDBjLTEwLjQgMC0xOC05LjgtMTUuNS0xOS45TDMyIDI1NiA1IDE0Ny45QzIuNCAxMzcuOCAxMC4xIDEyOCAyMC41IDEyOGwxOS44IDBjNC45IDAgOS41IDIuMiAxMi41IDZsNTIuOCA2NiA5OS43IDAtNTQuMy0xNjIuOUMxNDcuNiAyNi43IDE1NS4zIDE2IDE2Ni4yIDE2bDQzLjcgMGM5IDAgMTcuNSAzLjggMjMuNiAxMC40TDM5Mi43IDIwMCA1MjAgMjAweiJdfSx4dGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2VzIixpY29uOls1NzYsNTEyLFtdLCJmMzAyIiwiTTk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZ6TTI0IDEyOGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDguOCA3LjIgMTYgMTYgMTZsMzYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTY4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTk2LjUgMTEuNWMtNC40LTcuMS0xMi4xLTExLjUtMjAuNS0xMS41cy0xNi4xIDQuNC0yMC41IDExLjVsLTU2LjMgOTIuMS0yNC41LTMwLjZjLTQuNi01LjctMTEuNC05LTE4LjctOXMtMTQuMiAzLjMtMTguNyA5bC02NCA4MGMtNS44IDcuMi02LjkgMTcuMS0yLjkgMjUuNFMxNzQuOCAzNTIgMTg0IDM1MmwyNzIgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0eiJdfSxaeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbiIsaWNvbjpbMzg0LDUxMixbIm1vYmlsZS1hbmRyb2lkLWFsdCJdLCJmM2NmIiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHpNMTI4IDQ0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzA0IDY0bC0yMjQgMCAwIDMwNCAyMjQgMCAwLTMwNHoiXX0seXRhPVp4ZSx3dGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VhcmFuaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTlhIiwiTTE5MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyA3Ny4zIDAgMTU4LjEgMCAyNTZTNzMuMyA0MzQuNyAxNjggNDQ2LjVsMCA0MS41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjUgMC0xNy43LTE0LjMtMzItMzItMzJsLTEzNiAwIDAtOTMuOGMyNS4zIDQuOCA0Ny45IDE3IDY1LjYgMzQuMyAxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk3LjIgOTAuMiAyNTguOCA3MC44IDIxNiA2NS41TDIxNiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTY4IDEzMC4ybDAgMjUxLjVDMTA4LjggMzcwLjUgNjQgMzE4LjUgNjQgMjU2czQ0LjgtMTE0LjUgMTA0LTEyNS44em00OCAyNTEuNWwwLTkzLjggMTAwIDBjLTEyLjMgNDcuNi01MS4yIDg0LjUtMTAwIDkzLjh6Il19LFh4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWctc2hvcHBpbmciLGljb246WzQ0OCw1MTIsWyJzaG9wcGluZy1iYWciXSwiZjI5MCIsIk0xNjAgODBjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDQ4LTEyOCAwIDAtNDh6bS00OCA0OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwIDAtNDhjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMTEyIDE4LjEgMTEyIDgwbDAgNDh6bTI0IDQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMTUyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGt0YT1YeGUsUXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwem0zODcuMyAxMS4zbC0xMDQgMTA0Yy00LjYgNC42LTExLjUgNS45LTE3LjQgMy41UzI1NiAzNjYuNSAyNTYgMzYwbDAtNTYtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtNTZjMC02LjUgMy45LTEyLjMgOS45LTE0LjhzMTIuOS0xLjEgMTcuNCAzLjVsMTA0IDEwNGM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnoiXX0sU3RhPVF4ZSxKeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtdm9sdW1lIixpY29uOls1NzYsNTEyLFsidm9sdW1lLWNvbnRyb2wtcGhvbmUiXSwiZjJhMCIsIk0zNDQtMzJjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMjAgODhjMC0xMy4zIDEwLjctMjQgMjQtMjQgNzUuMSAwIDEzNiA2MC45IDEzNiAxMzYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODgtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTE0NC4xIDEuNGMxOS43LTUuNCA0MC4zIDQuNyA0OC4xIDIzLjVsNDAuNSA5Ny4zYzYuOSAxNi41IDIuMSAzNS42LTExLjggNDdsLTQ0LjEgMzYuMWMzMi41IDcxLjYgODkgMTMwIDE1OS4zIDE2NC45TDM3NC43IDMyM2MxMS4zLTEzLjkgMzAuNC0xOC42IDQ3LTExLjhMNTE5IDM1MS44YzE4LjggNy44IDI4LjkgMjguNCAyMy41IDQ4LjFsLTEuNSA1LjVDNTIzLjQgNDcwLjEgNDYwLjkgNTI1LjMgMzg0LjYgNTA5LjIgMjA5LjYgNDcyLjEgNzEuOSAzMzQuNCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjV6Il19LF90YT1KeGUsTXRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzIixpY29uOls1MTIsNTEyLFtdLCJmMWIzIiwiTTI4NC0xLjNjLTE3LjMtMTAtMzguNy0xMC01NiAwTDE0My44IDQ3LjNjLTE3LjMgMTAtMjggMjguNS0yOCA0OC41bDAgMTAxLjktODguMyA1MWMtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCA5Ny4zYzAgMjAgMTAuNyAzOC41IDI4IDQ4LjVsODQuMyA0OC42YzE3LjMgMTAgMzguNyAxMCA1NiAwbDg4LjMtNTEgODguMyA1MWMxNy4zIDEwIDM4LjcgMTAgNTYgMEw0ODQuNSA0NDNjMTcuMy0xMCAyOC0yOC41IDI4LTQ4LjVsMC05Ny4zYzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVsLTg4LjMtNTEgMC0xMDEuOWMwLTIwLTEwLjctMzguNS0yOC00OC41TDI4NC0xLjN6TTIzMiAyOTIuNmwwIDEwNi41LTg4LjMgNTFjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTIuMy01My4zem0yMzEuNCAuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNGwwIDk3LjNjMCAyLjktMS41IDUuNS00IDYuOWwtODQuMyA0OC42Yy0xLjIgLjctMi42IDEuMS00IDEuMWwwLTEwNS4zIDkxLjItNTIuNnpNMzQ4LjMgOTUuOGwwIDEwMS45LTkyLjMgNTMuMyAwLTEwNi41IDkxLjItNTIuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNHoiXX0senRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lIixpY29uOls1MTIsNTEyLFsxMjgyMjIsMTI4Mzc5XSwiZjA5NSIsIk0xNjAuMiAyNUMxNTIuMyA2LjEgMTMxLjctMy45IDExMi4xIDEuNGwtNS41IDEuNWMtNjQuNiAxNy42LTExOS44IDgwLjItMTAzLjcgMTU2LjQgMzcuMSAxNzUgMTc0LjggMzEyLjcgMzQ5LjggMzQ5LjggNzYuMyAxNi4yIDEzOC44LTM5LjEgMTU2LjQtMTAzLjdsMS41LTUuNWM1LjQtMTkuNy00LjctNDAuMy0yMy41LTQ4LjFsLTk3LjMtNDAuNWMtMTYuNS02LjktMzUuNi0yLjEtNDcgMTEuOGwtMzguNiA0Ny4yQzIzMy45IDMzNS40IDE3Ny4zIDI3NyAxNDQuOCAyMDUuM0wxODkgMTY5LjNjMTMuOS0xMS4zIDE4LjYtMzAuNCAxMS44LTQ3TDE2MC4yIDI1eiJdfSxDdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9yaWktZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbOTk2MV0sImY2YTEiLCJNMCA5NkwwIDI4LjVDMCAyMS42IDUuNiAxNiAxMi41IDE2IDE0LjggMTYgMTcgMTYuNiAxOSAxNy44TDU4IDQxLjJDODIuOSA1Ni4xIDExMS4zIDY0IDE0MC4zIDY0bDE2Ny40IDBjMjkgMCA1Ny41LTcuOSA4Mi4zLTIyLjhsMzktMjMuNGMxLjktMS4yIDQuMi0xLjggNi40LTEuOCA2LjkgMCAxMi41IDUuNiAxMi41IDEyLjVMNDQ4IDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgNjQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xOTIgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC02NEMyOC43IDE2MCAwIDEzMS4zIDAgOTZ6TTEyOCAyMjRsNjQgMCAwLTY0LTY0IDAgMCA2NHptMTI4IDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sVHRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY29uIixpY29uOls1NzYsNTEyLFsxMjkzNjNdLCJmN2U1IiwiTTU1NyA5Ni43YzE0LjQgMTQuNCAxMi40IDM4LjQtNC4zIDUwLjJsLTY0LjYgNDUuN2MtNDMuNyAzMC45LTc5LjIgNzEuOS0xMDMuNCAxMTkuNmwtMjUuMyA0OS44Yy0yNS4xIDQ5LjMtNjIuMSA5MS41LTEwNy44IDEyMi42bC03NC4xIDUwLjZjLTEzLjEgOC45LTMwLjcgNy4zLTQxLjgtMy45bC00NC45LTQ0LjkgODYuNS02Ni41YzQyLjMtMzIuNSA3Ni43LTc0LjMgMTAwLjYtMTIybDI0LjUtNDkuMWMyNC41LTQ5IDYxLjgtOTAuNiAxMDcuOS0xMjAuMmwxMDguNy02OS45IDM4IDM4ek00ODQuMiAyMy45TDM4NC4zIDg4LjJjLTUzLjQgMzQuMy05Ni41IDgyLjQtMTI0LjkgMTM5LjFsLTI0LjUgNDkuMWMtMjAuNiA0MS4zLTUwLjMgNzcuMy04Ni45IDEwNS40bC05MS40IDcwLjMtMzYuOS0zNi45Yy0xNC40LTE0LjQtMTIuNC0zOC40IDQuMy01MC4ybDY0LjYtNDUuN2M0My43LTMwLjkgNzkuMi03MS45IDEwMy40LTExOS42bDI1LjMtNDkuOEMyNDIuMyAxMDAuOCAyNzkuMyA1OC42IDMyNSAyNy40bDc0LjEtNTAuNmMxMy4xLTguOSAzMC42LTcuMyA0MS44IDMuOWw0My4zIDQzLjN6Il19LCR0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZy1idXJzdCIsaWNvbjpbNTc2LDUxMixbXSwiZTU0NyIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDUuNGMwIDU1LjItMjMuNyAxMDctNjMuOSAxNDMuMWw2Mi45IDc1LjUgODkgMGMxNS4xIDAgMjkuMyA3LjEgMzguNCAxOS4ybDQzLjIgNTcuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40TDM2OCAzMjAgMjYzLjIgMzIwIDM3Ni44IDQ1OS44YzExLjEgMTMuNyA5LjEgMzMuOS00LjcgNDVzLTMzLjkgOS4xLTQ1LTQuN0wxMzcuNCAyNjYuNmMtNi4xIDE1LTkuNCAzMS4zLTkuNCA0OGwwIDY5LjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OS40YzAtNjcuNCAzNS40LTEyOS45IDkzLjItMTY0LjZsNC42LTIuOEMyMDAuNCAxMjQgMjI0IDgyLjQgMjI0IDM3LjRsMC01LjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2IDg4QTU2IDU2IDAgMSAxIDEyOCA4OCA1NiA1NiAwIDEgMSAxNiA4OHptMzc2LTcuOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OHptMTA0IDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwem0tNTQuNS05Ny41Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxleWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXVvdGUtcmlnaHQiLGljb246WzQ0OCw1MTIsWzgyMjEsInF1b3RlLXJpZ2h0LWFsdCJdLCJmMTBlIiwiTTQ0OCAyOTZjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnptLTI1NiAwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtOC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMzZ6Il19LER0YT1leWUsTHRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUxNCIsIk00ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI2Ny41IDU5LjFMNDAwIDE4Ni45IDQwMCA1MDMuNGMtOS40IDUuNC0yMC4zIDguNi0zMiA4LjZsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE0NC0xOS45IDBDMTIuNiAzMDQgMCAyOTEuNCAwIDI3NS45IDAgMjY4LjMgMy4xIDI2MSA4LjYgMjU1LjdMMjEyLjUgNTkuMUMyMTkuOSA1MiAyMjkuNyA0OCAyNDAgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjA0LjggMjU2LjhsMCA0NC00NCAwYy05LjcgMC0xNy42IDcuOS0xNy42IDE3LjZsMCAzNS4yYzAgOS43IDcuOSAxNy42IDE3LjYgMTcuNmw0NCAwIDAgNDRjMCA5LjcgNy45IDE3LjYgMTcuNiAxNy42bDM1LjIgMGM5LjcgMCAxNy42LTcuOSAxNy42LTE3LjZsMC00NCA0NCAwYzkuNyAwIDE3LjYtNy45IDE3LjYtMTcuNmwwLTM1LjJjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC00NCAwIDAtNDRjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC0zNS4yIDBjLTkuNyAwLTE3LjYgNy45LTE3LjYgMTcuNnoiXX0sRXRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjViMSIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMkwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNTAuNyAwIDEyOCAxMjgtMTA1LjQgMTA1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjg4IDM5Ny4zIDM5My40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMzMzLjMgMzUyIDQzOC42IDI0Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI4OCAzMDYuNyAyMDIuMiAyMjAuOUMyNTEuNCAyMDkuMSAyODggMTY0LjggMjg4IDExMiAyODggNTAuMSAyMzcuOSAwIDE3NiAwTDMyIDB6TTE3NiAxNjBsLTExMiAwIDAtOTYgMTEyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6Il19LFB0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXRocmVlIixpY29uOls0NDgsNTEyLFs5ODU4XSwiZjUyNyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjggNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxJdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNiIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjdsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNzYgMzg0bDAgODAgODAgMCAwLTY0LjFjMC0xMy43IDEuOS0yNyA1LjUtMzkuNi01LjctNS4yLTEzLjItOC4zLTIxLjUtOC4zbC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzA3IDIyNC4zYy0xLS4yLTItLjMtMy0uM2wtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjcgMGMyLjEtMjIuOCA4LjQtNDQuMyAxOC4zLTYzLjd6TTE0NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTQ0IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0zNTIgODAuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHR5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0NywiZHJpdmVycy1saWNlbnNlIl0sImYyYzIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NEwwIDk2em0wIDQ4bDU3NiAwIDAgMjcyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNDR6TTI0Ny4zIDQxNmMyMC4yIDAgMzUuMy0xOS40IDIyLjQtMzUtMTQuNy0xNy43LTM2LjktMjktNjEuNy0yOWwtNjQgMGMtMjQuOCAwLTQ3IDExLjMtNjEuNyAyOS0xMi45IDE1LjYgMi4yIDM1IDIyLjQgMzVsMTQyLjUgMHpNMTc2IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzYwIDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAweiJdfSxBdGE9dHllLGF5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGxheSIsaWNvbjpbNTEyLDUxMixbNjE0NjksInBsYXktY2lyY2xlIl0sImYxNDQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTg4LjMgMTQ3LjFjLTcuNiA0LjItMTIuMyAxMi4zLTEyLjMgMjAuOWwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OGMtNy40LTQuNS0xNi43LTQuNy0yNC4zLS41eiJdfSxOdGE9YXllLHN5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxMywibGF1Z2gtYmVhbSJdLCJmNTlhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNzYgMTY0Yy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sUnRhPXN5ZSxPdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVhZiIsaWNvbjpbNTEyLDUxMixbXSwiZjA2YyIsIk00NzEuMyA2LjdDNDc3LjcgLjYgNDg3LTEuNiA0OTUuNiAxLjIgNTA1LjQgNC41IDUxMiAxMy43IDUxMiAyNGwwIDE4Ni45YzAgMTMxLjItMTA4LjEgMjM3LjEtMjM4LjggMjM3LjEtNzcgMC0xNDMuNC00OS41LTE2Ny41LTExOC43LTM1LjQgMzAuOC01Ny43IDc2LjEtNTcuNyAxMjYuNyAwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDQ2OS4zIDAgNDU2QzAgMzgxLjEgMzguMiAzMTUuMSA5Ni4xIDI3Ni4zIDEzMS40IDI1Mi43IDE3My41IDI0MCAyMTYgMjQwbDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTM5LjcgMC03Ny4zIDguOC0xMTEgMjQuNSAyMy4zLTcwIDg5LjItMTIwLjUgMTY3LTEyMC41IDY2LjQgMCAxMTUuOC0yMi4xIDE0OC43LTQ0IDE5LjItMTIuOCAzNS41LTI4LjEgNTAuNy00NS4zeiJdfSxGdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS11c2VyIixpY29uOls1MTIsNTEyLFtdLCJlMDY1IiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0zMTIgMjU2YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMTQ0IDQzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHoiXX0sTG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbInJlZG8tYWx0Iiwicm90YXRlLWZvcndhcmQiXSwiZjJmOSIsIk00ODggMTkybC0xNDQgMGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44cy0xLjctMTkuMyA1LjItMjYuMmw0Ni43LTQ2LjdjLTc1LjMtNTguNi0xODQuMy01My4zLTI1My41IDE1LjktNzUgNzUtNzUgMTk2LjUgMCAyNzEuNXMxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTQuMy05NC4zIDI0My43LTk5LjYgMzQ0LjMtMTYuMkw0NzEgN2M2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzUxMiAxNC4zIDUxMiAyNGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sQnRhPUxvZSxIdGE9TG9lLHF0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b290aCIsaWNvbjpbNDQ4LDUxMixbMTI5NDYzXSwiZjVjOSIsIk0xNDUgNS43TDIyNCAzMiAzMDMgNS43QzMxNC4zIDEuOSAzMjYgMCAzMzcuOSAwIDM5OC43IDAgNDQ4IDQ5LjMgNDQ4IDExMC4xbDAgNjguNWMwIDI5LjQtOS41IDU4LjEtMjcuMiA4MS42bC0xLjEgMS41Yy0xMi45IDE3LjItMjEuMyAzNy40LTI0LjMgNTguN0wzNzMuNyA0NzEuOWMtMy4zIDIzLTIzIDQwLjEtNDYuMiA0MC4xLTIyLjggMC00Mi4zLTE2LjUtNDYtMzlMMjYxLjMgMzUxLjZjLTMtMTguMi0xOC44LTMxLjYtMzcuMy0zMS42cy0zNC4yIDEzLjQtMzcuMyAzMS42TDE2Ni41IDQ3M2MtMy44IDIyLjUtMjMuMiAzOS00NiAzOS0yMy4yIDAtNDIuOS0xNy4xLTQ2LjItNDAuMUw1Mi42IDMyMC41Yy0zLTIxLjMtMTEuNC00MS41LTI0LjMtNTguN2wtMS4xLTEuNUM5LjUgMjM2LjcgMCAyMDguMSAwIDE3OC43bDAtNjguNUMwIDQ5LjMgNDkuMyAwIDExMC4xIDAgMTIyIDAgMTMzLjcgMS45IDE0NSA1Ljd6Il19LGp0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LXdpbmRvdyIsaWNvbjpbNTEyLDUxMixbXSwiZTAwZCIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjE2IDIyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LFZ0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3RvcmN5Y2xlIixpY29uOls2NDAsNTEyLFsxMjc5NDldLCJmMjFjIiwiTTI4MCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1Ni42IDAgMjIuNSA0OC43LTk1LjEgNzEuM2MtMzMuNC0yNS4xLTc1LTQwLTEyMC00MGwtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzc4LjUgMCAxNDMuMiA1OS42IDE1MS4yIDEzNmwtMjUuNCAwYy0xMS4yLTU5LjItNjMuMy0xMDQtMTI1LjgtMTA0LTcwLjcgMC0xMjggNTcuMy0xMjggMTI4UzczLjMgNDgwIDE0NCA0ODBjNjIuNSAwIDExNC41LTQ0LjggMTI1LjgtMTA0bDUwLjIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTIyLjVjMC00NS4xIDI1LjctODUuNCA2NS41LTEwNy43bDEyLjEgMjYuMWMtMzIuNCAyMy4yLTUzLjUgNjEuMi01My41IDEwNC4xIDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjgtNTcuMy0xMjgtMTI4LTEyOGMtMTAuNyAwLTIxIDEuMy0zMC45IDMuOEw0MzMuOCAxNjAgNDg4IDE2MGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC01My4zIDBjLTYuOSAwLTEzLjcgMi4yLTE5LjIgNi40bC0xNy4xIDEyLjgtMjQuNi01My4zQzM2OS45IDIxLjQgMzYxLjQgMTYgMzUyIDE2bC03MiAwek00NDUuOCAzMDAuNGwyOC40IDYxLjZjNS42IDEyIDE5LjggMTcuMyAzMS44IDExLjdzMTcuMy0xOS44IDExLjctMzEuOGwtMjguNS02MS42YzIuMi0uMiA0LjQtLjMgNi43LS4zIDM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcyLTcyLTMyLjItNzItNzJjMC0yMC4yIDguMy0zOC41IDIxLjgtNTEuNnpNMTQ0IDQyNGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmMzMS4zIDAgNTggMjAgNjcuOSA0OEwxNDQgMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjkgMGMtOS45IDI4LTM2LjYgNDgtNjcuOSA0OHoiXX0saXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLWZhc3QiLGljb246WzUxMiw1MTIsWzkxOTgsImZhc3QtYmFja3dhcmQiXSwiZjA0OSIsIk00OTIuMiA0NzcuNmMtMTIgNS0yNS43IDIuMi0zNC45LTYuOUwyODggMzAxLjMgMjg4IDQ0OGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOUw2NCAzMDEuMyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyUzY0IDQ2LjMgNjQgNjRMNjQgMjEwLjcgMjMzLjQgNDEuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMyODggNTEuMSAyODggNjRsMCAxNDYuNyAxNjkuNC0xNjkuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM1MTIgNTEuMSA1MTIgNjRsMCAzODRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnoiXX0sVXRhPWl5ZSxyeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWRkcmVzcy1ib29rIixpY29uOls1MTIsNTEyLFs2MjEzOCwiY29udGFjdC1ib29rIl0sImYyYjkiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yMDggMjg4bDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6bTAgMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek00OTYgMzIwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxXdGE9cnllLEd0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWlsYm9hdCIsaWNvbjpbNTEyLDUxMixbXSwiZTQ0NSIsIk0yNDAgMzUuOWwwIDM0OC4xLTIyNCAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjg4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC04LjgtNy4yLTE2LTE2LTE2bC0yMDggMCAwLTQ4IDE2MS43IDBjMTIuOSAwIDIwLjUtMTQuNCAxMy4yLTI1TDI2OS4yIDI2LjljLTguOS0xMy0yOS4yLTYuNy0yOS4yIDl6TTE5MiAzMjBsMC0xODQuMmMwLTE2LjEtMjEtMjIuMS0yOS42LTguNUw0Ny4zIDMxMS41Yy02LjcgMTAuNyAxIDI0LjUgMTMuNiAyNC41TDE3NiAzMzZjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxLdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1ib29rbWFyayIsaWNvbjpbNDQ4LDUxMixbXSwiZTBiYiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDE2OS40YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42LTYgMC0xMS44LTIuNC0xNi02LjZMMjcyIDE0NCAyMzAuNiAxODUuNGMtNC4yIDQuMi0xMCA2LjYtMTYgNi42LTEyLjUgMC0yMi42LTEwLjEtMjIuNi0yMi42TDE5MiAwIDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxZdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1hcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTMwNSAyMjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxveWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI3ODk3LCJtaWNyb3Bob25lLWFsdCJdLCJmM2M5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTYgNTAuMyAwIDkxLjYgMzguNyA5NS43IDg4TDIzMiA4OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwIDAgNDgtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NS43IDBjLTQuMSA0OS4zLTQ1LjMgODgtOTUuNyA4OC01MyAwLTk2LTQzLTk2LTk2TDk2IDk2ek0yNCAxNjBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOTcuOS03My4zIDE3OC43LTE2OCAxOTAuNWwwIDQ5LjUgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ5LjVDNzMuMyA0MDIuNyAwIDMyMS45IDAgMjI0bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LFp0YT1veWUsbnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGx5LWFsbCIsaWNvbjpbNTc2LDUxMixbIm1haWwtcmVwbHktYWxsIl0sImYxMjIiLCJNMzMyLjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCA0OCAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC0zMiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6TTIwNS42IDIzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNTQuNiAyMDggMjA1LjYgMzU4LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxMCAyMzEuMmMtNi40LTYtMTAtMTQuNC0xMC0yMy4yczMuNi0xNy4yIDEwLTIzLjJMMTcxLjYgMjMuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sWHRhPW55ZSxRdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5pdmVyc2FsLWFjY2VzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjI5YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNjEuNS04Ni4xYy0xMi4yLTUuMi0yNi4zIC40LTMxLjUgMTIuNnMuNCAyNi4zIDEyLjYgMzEuNWwxMS45IDUuMWMxNy4zIDcuNCAzNS4yIDEyLjkgNTMuNiAxNi4zbDAgNTAuMWMwIDQuMy0uNyA4LjYtMi4xIDEyLjZsLTI4LjcgODYuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyNC40LTczLjJjMS4zLTMuOCA0LjgtNi40IDguOC02LjRzNy42IDIuNiA4LjggNi40bDI0LjQgNzMuMmM0LjIgMTIuNiAxNy44IDE5LjQgMzAuNCAxNS4yUzMzOSAzOTcgMzM0LjggMzg0LjRsLTI4LjctODYuMWMtMS40LTQuMS0yLjEtOC4zLTIuMS0xMi42bDAtNTAuMWMxOC40LTMuNSAzNi4zLTguOSA1My42LTE2LjNsMTEuOS01LjFjMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNkwzMzguNyAxNzVjLTI2LjEgMTEuMi01NC4yIDE3LTgyLjcgMTdzLTU2LjUtNS44LTgyLjctMTdsLTExLjktNS4xek0yNTYgMTYwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sRW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlciIsaWNvbjpbNTEyLDUxMixbMTI5NTMxLDYzMjYzLCJ0b2lsZXQtcGFwZXItYWx0IiwidG9pbGV0LXBhcGVyLWJsYW5rIl0sImY3MWUiLCJNMzI3LjEgMzJjLTguOCAxMS4xLTE2IDIzLjEtMjEuOSAzNC44LTIxLjQgNDIuNy0zMy4yIDk4LjQtMzMuMiAxNTcuMmwwIDI2NGMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA1NDRjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjI0QzAgMTE4IDQzIDMyIDk2IDMybDIzMS4xIDB6TTQxNiA0MTZjLTUzIDAtOTYtODYtOTYtMTkyczQzLTE5MiA5Ni0xOTIgOTYgODYgOTYgMTkyLTQzIDE5Mi05NiAxOTJ6bTAtMTI4YzE3LjcgMCAzMi0yOC43IDMyLTY0cy0xNC4zLTY0LTMyLTY0LTMyIDI4LjctMzIgNjQgMTQuMyA2NCAzMiA2NHoiXX0sSnRhPUVvZSxlYWE9RW9lLHRhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ci1jYXJkYm9hcmQiLGljb246WzU3Niw1MTIsW10sImY3MjkiLCJNNTEyIDk2TDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDMzLjktMzMuOWM3LjItNy4yIDE3LjEtMTEuMyAyNy4zLTExLjNzMjAuMSA0LjEgMjcuMyAxMS4zbDMzLjkgMzMuOWMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43TDUxMiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTgwIDI0MGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTM1Mi02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sYWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpenphLXNsaWNlIixpY29uOls1MTIsNTEyLFtdLCJmODE4IiwiTTE2OS43IC45Yy0yMi44LTEuNi00MS45IDE0LTQ3LjUgMzQuN0wxMTIuNSA3MkMyOTMuMyA3Mi4zIDQzOS43IDIxOC43IDQ0MCAzOTkuNWwzNi40LTkuN2MyMC44LTUuNSAzNi4zLTI0LjcgMzQuNy00Ny41LTEyLjYtMTgyLjgtMTU4LjYtMzI4LjgtMzQxLjQtMzQxLjR6bTIyMiA0MTEuNWMuMi00LjEgLjMtOC4yIC4zLTEyLjQgMC0xNTQuNi0xMjUuNC0yODAtMjgwLTI4MC00LjEgMC04LjMgLjEtMTIuNCAuM0wuNSA0OTEuOWMtMS41IDUuNSAuMSAxMS40IDQuMSAxNS40czkuOSA1LjYgMTUuNCA0LjFsMzcxLjYtOTkuMXpNMTc2IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sc2FhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwcmF5LWNhbiIsaWNvbjpbNTc2LDUxMixbXSwiZjViZCIsIk0xOTIgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtMTI4IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMjU2YzAtNTMgNDMtOTYgOTYtOTZsMTI4IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIwOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjI0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjA4em0yNDAgODBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0zMjAgNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek01MTIgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0OCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxseWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWxvdyIsaWNvbjpbNDQ4LDUxMixbMTI4MjY0LCJ2b2x1bWUtZG93biJdLCJmMDI3IiwiTTQ4IDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEw5NiAxNjAgNDggMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek0zODAuNiAxODEuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM2MS4xIDIyNy42IDM2OCAyNDEgMzY4IDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQwMi4xIDMxMi45IDQxNiAyODYuMSA0MTYgMjU2cy0xMy45LTU2LjktMzUuNS03NC41eiJdfSxpYWE9bHllLHJhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zcyIsaWNvbjpbMzg0LDUxMixbMTI4MzI3LDEwMDEzXSwiZjY1NCIsIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MC04MCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDgwIDAgMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOCA4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgwIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHoiXX0sY3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbiIsaWNvbjpbMzg0LDUxMixbMTI5NDg1LCJtYWxlIl0sImYxODMiLCJNMjQ4IDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdsNDYuMyA2Mi40YzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzI3NCAxMzIgMjM0LjMgMTEyIDE5MiAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zeiJdfSxvYWE9Y3llLGR5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTFjMCA0Mi40LTE2LjkgODMuMS00Ni45IDExMy4xbC02Ny45IDY3LjkgNjcuOSA2Ny45YzMwIDMwIDQ2LjkgNzAuNyA0Ni45IDExMy4xbDAgMTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMTFjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDY3LjktNjcuOS02Ny45LTY3LjlDNDguOSAxNTguMSAzMiAxMTcuNCAzMiA3NWwwLTExQzE0LjMgNjQgMCA0OS43IDAgMzJ6TTk2IDY0bDAgMTFjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlsNjcuOSA2Ny45IDY3LjktNjcuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45bDAtMTEtMTkyIDB6bTAgMzg0bDE5MiAwIDAtMTFjMC0yNS41LTEwLjEtNDkuOS0yOC4xLTY3LjlsLTY3LjktNjcuOS02Ny45IDY3LjljLTE4IDE4LTI4LjEgNDIuNC0yOC4xIDY3LjlsMCAxMXoiXX0sbmFhPWR5ZSxsYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaCIsaWNvbjpbNTc2LDUxMixbMTI4MDMxXSwiZjU3OCIsIk0xODAuNSAxNDEuNUMyMTkuNyAxMDguNSAyNzIuNiA4MCAzMzYgODBzMTE2LjMgMjguNSAxNTUuNSA2MS41YzM5LjEgMzMgNjYuOSA3Mi40IDgxIDk5LjggNC43IDkuMiA0LjcgMjAuMSAwIDI5LjMtMTQuMSAyNy40LTQxLjkgNjYuOC04MSA5OS44LTM5LjIgMzMuMS05MiA2MS41LTE1NS41IDYxLjVzLTExNi4zLTI4LjUtMTU1LjUtNjEuNWMtMTYuMi0xMy43LTMwLjUtMjguNS00Mi43LTQzLjFMNDguMSAzNzkuNmMtMTIuNSA3LjMtMjguNCA1LjMtMzguNy00LjlzLTEyLjQtMjYtNS4zLTM4LjZMNTAgMjU2IDQuMiAxNzUuOWMtNy4yLTEyLjYtNS0yOC40IDUuMy0zOC42czI2LjEtMTIuMiAzOC43LTQuOWw4OS43IDUyLjNjMTIuMi0xNC42IDI2LjUtMjkuNCA0Mi43LTQzLjF6TTQ0OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sY2FhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRydW1zdGljay1iaXRlIixpY29uOls1MTIsNTEyLFtdLCJmNmQ3IiwiTTE2MCAyNjUuMmMwIDguNS0zLjQgMTYuNi05LjQgMjIuNmwtMjYuOCAyNi44Yy0xMi4zIDEyLjMtMzIuNSAxMS40LTQ5LjQgNy4yLTQuNi0xLjEtOS41LTEuOC0xNC41LTEuOC0zMy4xIDAtNjAgMjYuOS02MCA2MHMyNi45IDYwIDYwIDYwYzYuMyAwIDEyIDUuNyAxMiAxMiAwIDMzLjEgMjYuOSA2MCA2MCA2MHM2MC0yNi45IDYwLTYwYzAtNS0uNi05LjgtMS44LTE0LjUtNC4yLTE2LjktNS4yLTM3LjEgNy4yLTQ5LjRsMjYuOC0yNi44YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw4OS4yIDBjNi4zIDAgMTIuNC0uMyAxOC41LTEgMTEuOS0xLjIgMTYuNC0xNS41IDEwLjgtMjYtOC41LTE1LjgtMTMuMy0zMy44LTEzLjMtNTMgMC02MS45IDUwLjEtMTEyIDExMi0xMTIgOCAwIDE1LjcgLjggMjMuMiAyLjQgMTEuNyAyLjUgMjQuMS01LjkgMjItMTcuNi0xNC43LTgyLjMtODYuNy0xNDQuOC0xNzMuMi0xNDQuOC05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NmwwIDg5LjJ6Il19LGRhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1zaW1wbGUiLGljb246WzUxMiw1MTIsW10sImU0NzMiLCJNMTkyIDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyek0wIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MnpNNDMyIDk2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx1YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXRvbSIsaWNvbjpbNDQ4LDUxMixbOTg4M10sImY1ZDIiLCJNMjI0IDM5OC44Yy0xMS44IDUuMS0yMy40IDkuNy0zNC45IDEzLjUgMTYuNyAzMy44IDMxIDM1LjcgMzQuOSAzNS43czE4LjEtMS45IDM0LjktMzUuN2MtMTEuNC0zLjktMjMuMS04LjQtMzQuOS0xMy41ek00MTQgMjU2YzMzIDQ1LjIgNDQuMyA5MC45IDIzLjYgMTI4LTIwLjIgMzYuMy02Mi41IDQ5LjMtMTE1LjIgNDMuMi0yMiA1Mi4xLTU1LjcgODQuOC05OC40IDg0LjhzLTc2LjQtMzIuNy05OC40LTg0LjhDNzIuOSA0MzMuMyAzMC42IDQyMC4zIDEwLjQgMzg0LTEwLjMgMzQ2LjkgMSAzMDEuMiAzNCAyNTYgMSAyMTAuOC0xMC4zIDE2NS4xIDEwLjQgMTI4IDMwLjYgOTEuNyA3Mi45IDc4LjcgMTI1LjYgODQuOCAxNDcuNiAzMi43IDE4MS4yIDAgMjI0IDBzNzYuNCAzMi43IDk4LjQgODQuOGM1Mi43LTYuMSA5NSA2LjggMTE1LjIgNDMuMiAyMC43IDM3LjEgOS40IDgyLjgtMjMuNiAxMjh6bS02NS44IDY3LjRjLTEuNyAxNC4yLTMuOSAyOC02LjcgNDEuMiAzMS44IDEuNCAzOC42LTguNyA0MC4yLTExLjcgMi4zLTQuMiA3LTE3LjktMTEuOS00OC4xLTYuOCA2LjMtMTQgMTIuNS0yMS42IDE4LjZ6bS02LjctMTc1LjljMi44IDEzLjEgNSAyNi45IDYuNyA0MS4yIDcuNiA2LjEgMTQuOCAxMi4zIDIxLjYgMTguNiAxOC45LTMwLjIgMTQuMi00NCAxMS45LTQ4LjEtMS42LTIuOS04LjQtMTMtNDAuMi0xMS43ek0yNTguOSA5OS43QzI0Mi4xIDY1LjkgMjI3LjkgNjQgMjI0IDY0cy0xOC4xIDEuOS0zNC45IDM1LjdjMTEuNCAzLjkgMjMuMSA4LjQgMzQuOSAxMy41IDExLjgtNS4xIDIzLjQtOS43IDM0LjktMTMuNXptLTE1OSA4OC45YzEuNy0xNC4zIDMuOS0yOCA2LjctNDEuMi0zMS44LTEuNC0zOC42IDguNy00MC4yIDExLjctMi4zIDQuMi03IDE3LjkgMTEuOSA0OC4xIDYuOC02LjMgMTQtMTIuNSAyMS42LTE4LjZ6TTc4LjIgMzA0LjhjLTE4LjkgMzAuMi0xNC4yIDQ0LTExLjkgNDguMSAxLjYgMi45IDguNCAxMyA0MC4yIDExLjctMi44LTEzLjEtNS0yNi45LTYuNy00MS4yLTcuNi02LjEtMTQuOC0xMi4zLTIxLjYtMTguNnpNMzA0IDI1NmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6bS04MC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHBhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwIixpY29uOlszMjAsNTEyLFsxMTJdLCI1MCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzI0OC40IDM1MiAxNjAgMzUybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyODhsOTYgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmwtOTYgMCAwIDE5MnoiXX0saGFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpldC1maWdodGVyLXVwIixpY29uOls1MTIsNTEyLFtdLCJlNTE4IiwiTTIwNi44IDQ3LjhDMjAyLjMgNTguNSAyMDAgNzAgMjAwIDgxLjZsMCAxMDAuNC0xNTIgMTE0IDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAyMzQuNyAwIDI0OEwwIDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAxNTIgMCAwIDU0LjQtNjYgNTIuOGMtMy44IDMtNiA3LjYtNiAxMi41bDAgMjQuM2MwIDguOCA3LjIgMTYgMTYgMTZsODggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0LjNjMC00LjktMi4yLTkuNS02LTEyLjVsLTY2LTUyLjggMC01NC40IDE1MiAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDgtMTUyLTExNCAwLTEwMC40YzAtMTEuNi0yLjMtMjMuMS02LjgtMzMuOGwtMjcuMS02NUMyNzQuNC0yNi4yIDI2NS43LTMyIDI1Ni0zMnMtMTguNCA1LjgtMjIuMiAxNC44bC0yNy4xIDY1eiJdfSxmYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NjAiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sbWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoZWV0LXBsYXN0aWMiLGljb246WzM4NCw1MTIsW10sImU1NzEiLCJNMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ5LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0wzNjUuMyAzODYuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OHptMjA4IDUuNWwwLTkzLjVjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTMuNSAwLTExNy41IDExNy41ek0xNTMgMTA1bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6bTk2IDMyTDEzNyAyNDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjE1IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6Il19LGdhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2IixpY29uOlszODQsNTEyLFsxMThdLCI1NiIsIk0xOS43IDM0LjVjMTYuMy02LjggMzUgLjkgNDEuOCAxNy4yTDE5MiAzNjQuOCAzMjIuNSA1MS43YzYuOC0xNi4zIDI1LjUtMjQgNDEuOC0xNy4yczI0IDI1LjUgMTcuMiA0MS44bC0xNjAgMzg0Yy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN3MtMjQuNi03LjgtMjkuNS0xOS43TDIuNSA3Ni4zYy02LjgtMTYuMyAuOS0zNSAxNy4yLTQxLjh6Il19LHV5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1zcXVhcmVzIl0sImYwM2EiLCJNNDAgNDhDMjYuNyA0OCAxNiA1OC43IDE2IDcybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDQwIDQ4ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNMTYgMjMybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNDAgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sYmFhPXV5ZSx2YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlzY2VzIixpY29uOls0NDgsNTEyLFtdLCJlODRjIiwiTTQwLjQgMTAuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTIgMi45IDIuNyAyOC4zIDI2LjcgNTMuNiA2Ny44IDIyLjMgMzYuMiA0NSA4Ni42IDUxLjEgMTQ3LjhsNjcuMyAwYzYuMS02MS4xIDI4LjgtMTExLjYgNTEuMS0xNDcuOCAyNS4zLTQxLjEgNTAuNy02NS4xIDUzLjYtNjcuOCAxMy0xMS45IDMzLjMtMTEuMSA0NS4yIDIgMTEuOSAxMyAxMSAzMy4zLTIgNDUuMi0xLjQgMS4zLTIyIDIxLjEtNDIuNCA1NC4yLTE3LjkgMjkuMS0zNS40IDY4LTQxLjIgMTE0LjJsOTQgMCAzLjMgLjJjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOHMtMTIuNiAzMC4yLTI4LjcgMzEuOGwtMy4zIC4yLTk0IDBjNS44IDQ2LjIgMjMuMyA4NS4xIDQxLjIgMTE0LjIgMjAuNCAzMy4xIDQxIDUyLjkgNDIuNCA1NC4yIDEzIDExLjkgMTMuOSAzMi4yIDIgNDUuMi0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDItMi45LTIuNy0yOC4zLTI2LjctNTMuNi02Ny44LTIyLjMtMzYuMi00NS04Ni42LTUxLjEtMTQ3LjhsLTY3LjMgMGMtNi4xIDYxLjEtMjguOCAxMTEuNi01MS4xIDE0Ny44LTI1LjMgNDEuMS01MC43IDY1LjEtNTMuNiA2Ny44LTEzIDExLjktMzMuMyAxMS4xLTQ1LjItMi0xMS45LTEzLTExLTMzLjMgMi00NS4yIDEuNC0xLjMgMjItMjEuMSA0Mi40LTU0LjIgMTcuOS0yOS4xIDM1LjQtNjggNDEuMi0xMTQuMmwtOTQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NCAwYy01LjgtNDYuMi0yMy4zLTg1LjEtNDEuMi0xMTQuMi0yMC40LTMzLjEtNDEtNTIuOS00Mi40LTU0LjItMTMtMTEuOS0xMy45LTMyLjItMi00NS4yeiJdfSx4YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29sYXItcGFuZWwiLGljb246WzU3Niw1MTIsW10sImY1YmEiLCJNMTIxLjggMzJjLTMwIDAtNTYgMjAuOC02Mi41IDUwLjFMOS42IDMwNi4xQy43IDM0Ni4xIDMxLjEgMzg0IDcyIDM4NGwxODQuMSAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDE4NC4xIDBjNDAuOSAwIDcxLjQtMzcuOSA2Mi41LTc3LjlsLTQ5LjgtMjI0QzUxMC40IDUyLjggNDg0LjUgMzIgNDU0LjUgMzJMMTIxLjggMzJ6TTI0NS42IDk2bDg1LjIgMCA3LjMgODgtOTkuOCAwIDcuMy04OHptLTU1LjUgODhsLTg3LjggMCAxOS42LTg4IDc1LjYgMC03LjMgODh6TTkxLjYgMjMybDk0LjUgMC03LjMgODgtMTA2LjcgMCAxOS42LTg4em0xNDIuNiAwbDEwNy44IDAgNy4zIDg4LTEyMi41IDAgNy4zLTg4em0xNTYgMGw5NC41IDAgMTkuNiA4OC0xMDYuNyAwLTcuMy04OHpNNDc0IDE4NGwtODcuOCAwLTcuMy04OCA3NS42IDAgMTkuNiA4OHoiXX0seWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhbmQtbWluZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYiIsIk0zMTIgMGwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwyNjQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek0xNjAgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw4MCAwIDAtMzJ6TTEyIDExNC43YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43bDk2IDY0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zcy0yMi4zIDE0LTMzLjMgNi43bC05Ni02NGMtMTEtNy40LTE0LTIyLjMtNi43LTMzLjN6TTUzMC43IDEwOGMxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTk2IDY0Yy0xMSA3LjQtMjUuOSA0LjQtMzMuMy02LjdzLTQuNC0yNS45IDYuNy0zMy4zbDk2LTY0eiJdfSxQb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHBob25lcyIsaWNvbjpbNDQ4LDUxMixbMTI3OTExLDYyODYzLCJoZWFkcGhvbmVzLWFsdCIsImhlYWRwaG9uZXMtc2ltcGxlIl0sImYwMjUiLCJNNjQgMjI0YzAtODguNCA3MS42LTE2MCAxNjAtMTYwczE2MCA3MS42IDE2MCAxNjBsMCAzNy41Yy0xMC0zLjUtMjAuOC01LjUtMzItNS41bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTExLjIgMC0yMiAxLjktMzIgNS41TDY0IDIyNHoiXX0sd2FhPVBvZSxrYWE9UG9lLFNhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMiLGljb246WzQ0OCw1MTIsWzEyODY1M10sImYyMDciLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxNzZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA0IDAgMCAxMTItMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDh6bTE4NCA4MGwwLTExMiAxMDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMDQgMHpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNTIgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LF9hYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1MiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCAyNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcybC00OCAwem00OCA5NmwtMjQgMCAwLTQ4IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LHB5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1sZWZ0IixpY29uOls0NDgsNTEyLFs4MjIwLCJxdW90ZS1sZWZ0LWFsdCJdLCJmMTBkIiwiTTAgMjE2QzAgMTQ5LjcgNTMuNyA5NiAxMjAgOTZsOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjE2em0yNTYgMGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMGw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xMzZ6Il19LE1hYT1weWUsemFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tZG93biIsaWNvbjpbNDQ4LDUxMixbXSwiZjA3OCIsIk0yMDEuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxOTItMTkyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMzguNyA1NC42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyeiJdfSxoeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYXNpYSIsaWNvbjpbNTEyLDUxMixbMTI3NzU5LCJnbG9iZS1hc2lhIl0sImY1N2UiLCJNNTAgMjg0LjhjNC4yIDIuMSA5IDMuMiAxNCAzLjJsNTAuNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDEzLjMgMTMuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMTguNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQtMTAuNyAyNC0yNGwwLTQyLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsMTMuMy0xMy4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNkwzMDQgNTdjMC0xLjItLjEtMi4zLS4yLTMuNS0xNS40LTMuNi0zMS40LTUuNS00Ny44LTUuNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDggMCA5LjggLjcgMTkuNCAyIDI4Ljh6bTQwMy4zIDM3LjNjLTMuMi0xLjQtNi43LTIuMS0xMC41LTIuMUw0MzIgMzIwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzQuNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNGwtNDUuMyA0NS4zYy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNCAyLjIgMi4yIDQuNyA0LjEgNy4zIDUuNSAzOS4zLTI1LjQgNjkuNS02My42IDg0LjYtMTA4Ljh6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTEyOCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjcyIDI1NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnptNDgtMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2eiJdfSxDYWE9aHllLFRhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZW50LXNpZ24iLGljb246WzM4NCw1MTIsW10sImUzZjUiLCJNMjA4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNS40YzQzLjYgNS4yIDgzIDI0LjUgMTEzLjMgNTMuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNjLTI0LjQtMjMtNTcuMi0zNy4xLTkzLjMtMzcuMS03NS4xIDAtMTM2IDYwLjktMTM2IDEzNnM2MC45IDEzNiAxMzYgMTM2YzM2LjIgMCA2OS0xNC4xIDkzLjMtMzcuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMkMzMjMgNDMwLjEgMjgzLjYgNDQ5LjQgMjQwIDQ1NC42bDAgMjUuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI4Qzg0LjcgNDMzLjUgMTYgMzUyLjggMTYgMjU2Uzg0LjcgNzguNSAxNzYgNjBsMC0yOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sJGFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1jYXQiLGljb246WzUxMiw1MTIsW10sImU1NzIiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTE2MCAxNTQuNGMwLTUuOCA0LjctMTAuNCAxMC40LTEwLjRsLjIgMGMzLjQgMCA2LjUgMS42IDguNSA0LjNsNDAgNTMuM2MzIDQgNy44IDYuNCAxMi44IDYuNGw0OCAwYzUgMCA5LjgtMi40IDEyLjgtNi40bDQwLTUzLjNjMi0yLjcgNS4yLTQuMyA4LjUtNC4zbC4yIDBjNS44IDAgMTAuNCA0LjcgMTAuNCAxMC40TDM1MiAyNzJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xMTcuNnpNMjE2IDI4OGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTk2LTE2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LERhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTZiIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LGZ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJ0aW5pLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjc4NjQsImdsYXNzLW1hcnRpbmktYWx0Il0sImY1N2IiLCJNMi40IDUxLjhDNy40IDM5LjggMTkuMSAzMiAzMiAzMmw0NDggMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45TDI4OCAzMDEuMyAyODggNDQ4IDM1MiA0NDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xNDYuNy0yMTQuNi0yMTQuNkMuMiA3Ny41LTIuNSA2My43IDIuNCA1MS44ek0zNTQuNyAxNDRsNDgtNDgtMjkzLjUgMCA0OCA0OCAxOTcuNSAweiJdfSxMYWE9ZnllLEVhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnIixpY29uOls0NDgsNTEyLFsxMjgyNjhdLCJmMWU2IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NGMwIDk1LjEtNjkuMiAxNzQuMS0xNjAgMTg5LjNsMCA2Ni43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxMDEuMiAzOTguMSAzMiAzMTkuMSAzMiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFBhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYW5vcmFtYSIsaWNvbjpbNTc2LDUxMixbXSwiZTIwOSIsIk00My45IDQ4QzE5LjcgNDggMCA2Ny43IDAgOTEuOUwwIDQyMC4xYzAgMjQuMyAxOS43IDQzLjkgNDMuOSA0My45IDUuNSAwIDEwLjctMSAxNS43LTIuOSAxMi45LTQuOSAxMDMuNC0zNy4xIDIyOC40LTM3LjFzMjE1LjUgMzIuMyAyMjguNCAzNy4xYzUgMS45IDEwLjIgMi45IDE1LjcgMi45IDI0LjMgMCA0My45LTE5LjcgNDMuOS00My45bDAtMzI4LjJjMC0yNC4zLTE5LjctNDMuOS00My45LTQzLjktNS41IDAtMTAuNyAxLTE1LjcgMi45LTEyLjkgNC45LTEwMy40IDM3LjEtMjI4LjQgMzcuMVM3Mi41IDU1LjcgNTkuNiA1MC45QzU0LjYgNDkgNDkuNCA0OCA0My45IDQ4ek03MiAxNzZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMjY0LjEtMTZjNy41IDAgMTQuNiAzLjYgMTkuMSA5LjZMNDc5LjcgMzM2LjJjNS45IDcuOSA2LjQgMTguNSAxLjMgMjYuOXMtMTQuOCAxMi44LTI0LjUgMTEuMWMtNDUuOC03LjgtMTAzLjMtMTQuMi0xNjguNC0xNC4yLTY1LjYgMC0xMjMuNCA2LjUtMTY5LjMgMTQuNC05LjggMS43LTE5LjctMi45LTI0LjctMTEuNXMtNC4zLTE5LjQgMS45LTI3LjJMMTY1LjMgMjQ5YzQuNi01LjcgMTEuNS05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMjcuNSAzNC40IDg2LjctMTEzLjljNC42LTYgMTEuNy05LjUgMTkuMi05LjV6Il19LGhmPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrLXJvdGF0ZS1sZWZ0IixpY29uOls1NzYsNTEyLFsiaGlzdG9yeSJdLCJmMWRhIiwiTTI4OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlMzOTQgNDQ4IDI4OCA0NDhjLTY1LjIgMC0xMjIuOS0zMi41LTE1Ny42LTgyLjMtMTAuMS0xNC41LTMwLjEtMTgtNDQuNi03LjlzLTE4IDMwLjEtNy45IDQ0LjZDMTI0LjEgNDY4LjYgMjAxIDUxMiAyODggNTEyIDQyOS40IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NlM0MjkuNCAwIDI4OCAwQzIwMi4zIDAgMTI2LjUgNDIuMSA4MCAxMDYuN0w4MCA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxNiA2Mi4zIDE2IDgwbDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDI0LjYgMGMuNSAwIDEgMCAxLjUgMGw4NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zOC4zIDBDMTU0LjkgMTAyLjYgMjE3IDY0IDI4OCA2NHptMjQgODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY1LTY1IDAtOTQuMXoiXX0sSWFhPWhmLEFhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXItd2hlYXQiLGljb246WzMyMCw1MTIsW10sImU1MTciLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xMTIgMzJsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMTYwYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMjU2Yy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuN3pNMTEyIDM1MmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDIxLjggMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMiAyMS44IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMzUyYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6Il19LElvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy1kb3duIixpY29uOls1NzYsNTEyLFs2MjMzNywiY2xvdWQtZG93bmxvYWQiLCJjbG91ZC1kb3dubG9hZC1hbHQiXSwiZjBlZCIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTM3NyAzMTNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxOYWE9SW9lLFJhYT1Jb2UsbXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLXJhbXAtYm94IixpY29uOls1NzYsNTEyLFsidHJ1Y2stbG9hZGluZyJdLCJmNGRlIiwiTTQwMCAzMmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNDguMi0yOTcuMiA4OS4yQzUuOSA0NTQuNC0zLjcgNDcyLjMgMS40IDQ4OS4yczIyLjkgMjYuNSAzOS44IDIxLjVsMzE1LjUtOTQuNiA0My43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4bDAtMzkyLTE3NiAwek01MjggNDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDBjMjIuMSAwIDM5LjkgMTcuOSA0MCAzOS45bDAgLjF6TTUxLjkgMTQ5LjVDMTguMSAxNTkuOC0uOSAxOTUuNiA5LjQgMjI5LjRsMjguMSA5MS44QzQ3LjggMzU1IDgzLjYgMzc0IDExNy40IDM2My43bDkxLjgtMjguMWMzMy44LTEwLjMgNTIuOC00Ni4xIDQyLjUtNzkuOWwtMjguMS05MS44Yy0xMC4zLTMzLjgtNDYuMS01Mi44LTc5LjktNDIuNUw1MS45IDE0OS41eiJdfSxPYWE9bXllLEZhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1kb3duIixpY29uOlszODQsNTEyLFs4OTY0XSwiZjEwNyIsIk0xNjkuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiAzMDYuNyA1NC42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiJdfSxCYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NWMiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxIYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZG93LW1heGltaXplIixpY29uOls1MTIsNTEyLFsxMjg0NzBdLCJmMmQwIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0yNCA2NGwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHFhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nLWNpcmNsZSIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYiIsIk0zMjAgMGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTYwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xIDEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOC03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGMyNC4xIDI0LjEgMzkuOSAzOS45IDQ3LjIgNDcuMmwwIDAgMjUuMyAyNS4zYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCA3OC45YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02Ni43IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDI4LjEgMzkzLjRDMTAuMSAzNzUuNCAwIDM1MSAwIDMyNS41TDAgMTA0QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDIyMS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w0MDAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTc4LjljMC0yOS43IDExLjgtNTguMiAzMi44LTc5LjJsMjUuMy0yNS4zIDAgMGM3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjItMTEgMTEtOS4yIDI5LjIgMy43IDM3LjggOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTYwIDEwNGMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0sZ3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbiIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXIiXSwiZjA0MSIsIk0xOTIgMEM4NiAwIDAgODQuNCAwIDE4OC42IDAgMzA3LjkgMTIwLjIgNDUwLjkgMTcwLjQgNTA1LjQgMTgyLjIgNTE4LjIgMjAxLjggNTE4LjIgMjEzLjYgNTA1LjQgMjYzLjggNDUwLjkgMzg0IDMwNy45IDM4NCAxODguNiAzODQgODQuNCAyOTggMCAxOTIgMHoiXX0samFhPWd5ZSxWYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm93bGluZy1iYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNDM2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0yMDggMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS02NC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGJ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWZsYXRiZWQiLGljb246WzU3Niw1MTIsWyJkb2xseS1mbGF0YmVkIl0sImY0NzQiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI4OGMwIDM5LjggMjkuMSA3Mi44IDY3LjEgNzktMiA1LjMtMy4xIDExLTMuMSAxNyAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2bDE5Ny41IDBjLTEuOCA1LTIuNyAxMC40LTIuNyAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2bDM0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDAwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI4OEMxMjggMzUuOCA5Mi4yIDAgNDggMEwzMiAwek0yMjQgNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTc2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI0MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIyNCA2NHoiXX0sVWFhPWJ5ZSx2eWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtdXNlciIsaWNvbjpbNTEyLDUxMixbImhvbWUtdXNlciJdLCJlMWIwIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNDQgNDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2eiJdfSxXYWE9dnllLEdhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnaG9zdCIsaWNvbjpbMzg0LDUxMixbMTI4MTIzXSwiZjZlMiIsIk00MC4xIDQ2Ny4xbC0xMS4yIDlDMjUuNyA0NzguNiAyMS44IDQ4MCAxNy44IDQ4MCA4IDQ4MCAwIDQ3MiAwIDQ2Mi4yTDAgMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmwwIDI3MC4yYzAgOS44LTggMTcuOC0xNy44IDE3LjgtNCAwLTcuOS0xLjQtMTEuMS0zLjlsLTExLjItOWMtMTMuNC0xMC43LTMyLjgtOS00NC4xIDMuOUwyNjkuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNmwtMjYuNi0zMC41Yy0xMi43LTE0LjYtMzUuNC0xNC42LTQ4LjIgMEwxNDEuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNkw4NC4yIDQ3MWMtMTEuMy0xMi45LTMwLjctMTQuNi00NC4xLTMuOXpNMTYwIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEthYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LW5vZGVzIixpY29uOls2NDAsNTEyLFtdLCJlNjk2IiwiTTQ4MCAyMDhDNTAzLjcgMjA4IDUyNS42IDIxNS4zIDU0My43IDIyNy45IDUzNi45IDEwMC45IDQyNSAwIDI4OCAwIDE0Ni42IDAgMzIgMTA3LjUgMzIgMjQwIDMyIDI5NC4zIDUxLjIgMzQ0LjMgODMuNiAzODQuNUwzNC44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN2MyNy4yIDExLjQgNTYuOSAxOC40IDg4LjEgMjAuMiAuMS0xOC45IDQuOS0zOCAxNS01NS41IDE3LjEtMjkuNyA0NS44LTQ4LjUgNzctNTQuMmw5LjItMTZjLTMuNC0xMC43LTUuMi0yMi01LjItMzMuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnpNMzI4LjYgNDQ4Yy0xNy43IDMwLjYtNy4yIDY5LjcgMjMuNCA4Ny40czY5LjcgNy4yIDg3LjQtMjMuNGMxLjUtMi42IDIuOC01LjMgMy45LThsNzMuMyAwYzEuMSAyLjcgMi40IDUuNCAzLjkgOCAxNy43IDMwLjYgNTYuOCA0MS4xIDg3LjQgMjMuNHM0MS4xLTU2LjggMjMuNC04Ny40Yy0xMy40LTIzLjItMzkuMS0zNC44LTY0LTMxLjRsLTE3LjYtMzAuN2MtMTEgMTEuNy0yNSAyMC42LTQwLjYgMjUuNmwxNi41IDI4LjljLTMuOCA0LjgtNi44IDEwLTkgMTUuNmwtNzMuNCAwYy0yLjItNS42LTUuMy0xMC44LTktMTUuNmwzMy01Ny43YzQuMSAuOCA4LjQgMS4zIDEyLjggMS4zIDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjRjMCAxMy40IDQuMSAyNS44IDExLjIgMzYuMWwtMzQuNiA2MC41Yy0yNS0zLjQtNTAuNiA4LjMtNjQgMzEuNHoiXX0sWWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzgiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0zMTguMyAyOTkuMWwtNDYuMy02Mi40IDAgMjQzLjMgMjcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgwIDAgMC0yNDMuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiA0ODBsMzIgMCAwLTEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDEyOHpNNTY2LjYgMTY2LjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMNDMyIDE0Ni43IDQzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3oiXX0sWmFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NWYiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4eiJdfSx4eWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXN3aW1taW5nIixpY29uOls2NDAsNTEyLFsxMjc5NDYsInN3aW1tZXIiXSwiZjVjNCIsIk01NTIgMTUyYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMjkzLjQgMTk4LjJsLTg4LjYgNzMuOWMxLjEgMCAyLjItLjEgMy4zLS4xIDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCA0LjggMCA5LjcgLjIgMTQuNSAuNi04LjMtMzAtMjQuMy01Ny43LTQ2LjgtODAuMi0xOC40LTE4LjQtNDAuNi0zMi43LTY1LTQxLjhsLTY4LjYtMjUuN2MtMjcuNC0xMC4zLTU4LTcuNS04My4xIDcuNmwtNTMuNSAzMi4xYy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOXMyOC43IDIwLjEgNDMuOSAxMUwyMzAgMTg3LjNjOC40LTUgMTguNi01LjkgMjcuNy0yLjVsMzUuNyAxMy40em0xMTAgMTgxLjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyAzODYuMyAxNy42IDM5NC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sWGFhPXh5ZSx5eWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1kb3RzIixpY29uOls1MTIsNTEyLFsxMjgxNzIsNjIwNzUsImNvbW1lbnRpbmciXSwiZjRhZCIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMTI4IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sUWFhPXl5ZSx3eWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtcGllIixpY29uOls1NzYsNTEyLFsicGllLWNoYXJ0Il0sImYyMDAiLCJNNTEyLjQgMjQwbC0xNzYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzZjMC0xNy43IDE0LjQtMzIuMiAzMS45LTI5LjkgMTA3IDE0LjIgMTkxLjggOTkgMjA2IDIwNiAyLjMgMTcuNS0xMi4yIDMxLjktMjkuOSAzMS45ek0yMjIuNiAzNy4yYzE4LjEtMy44IDMzLjggMTEgMzMuOCAyOS41bDAgMTk3LjNjMCA1LjYgMiAxMSA1LjUgMTUuM0wzOTQgNDM4LjdjMTEuNyAxNC4xIDkuMiAzNS40LTYuOSA0NC4xLTM0LjEgMTguNi03My4yIDI5LjItMTE0LjcgMjkuMi0xMzIuNSAwLTI0MC0xMDcuNS0yNDAtMjQwIDAtMTE1LjUgODEuNS0yMTEuOSAxOTAuMi0yMzQuOHpNNDc3LjggMjg4bDY0IDBjMTguNSAwIDMzLjMgMTUuNyAyOS41IDMzLjgtMTAuMiA0OC40LTM1IDkxLjQtNjkuNiAxMjQuMi0xMi4zIDExLjctMzEuNiA5LjItNDIuNC0zLjlMMzc0LjkgMzQwLjRjLTE3LjMtMjAuOS0yLjQtNTIuNCAyNC42LTUyLjRsNzguMiAweiJdfSxKYWE9d3llLGVzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmcm9nIixpY29uOls1NzYsNTEyLFtdLCJmNTJlIiwiTTM2OCAzMmM0MS43IDAgNzUuOSAzMS44IDc5LjcgNzIuNWw4NS42IDI2LjNjMjUuNCA3LjggNDIuOCAzMS4zIDQyLjggNTcuOSAwIDIxLjgtMTEuNyA0MS45LTMwLjcgNTIuN2wtMTQ0LjUgODIuMSA5Mi41IDkyLjUgNTAuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNEwzNDYuOSAzNjAuMmMxMS43LTM2IDMuMi03Ny4xLTI1LjQtMTA1LjctNDAuNi00MC42LTEwNi4zLTQwLjYtMTQ2LjktLjFMMTAxIDMyNC40Yy02LjQgNi4xLTYuNyAxNi4yLS42IDIyLjZzMTYuMiA2LjYgMjIuNiAuNmw3My44LTcwLjIgLjEtLjEgLjEtLjFjMy41LTMuNSA3LjMtNi42IDExLjMtOS4yIDI3LjktMTguNSA2NS45LTE1LjQgOTAuNSA5LjIgMjQuNyAyNC43IDI3LjcgNjIuOSA5IDkwLjktMi42IDMuOC01LjYgNy41LTkgMTAuOUwyNjEuOCA0MTYgMzUyIDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBDMjguNyA0ODAgMCA0NTEuMyAwIDQxNiAwIDI0OS42IDEyNyAxMTIuOSAyODkuMyA5Ny41IDI5Ni4yIDYwLjIgMzI4LjggMzIgMzY4IDMyem0wIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHRzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWJvdHRsZSIsaWNvbjpbMzIwLDUxMixbXSwiZjcyZiIsIk04MC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTEuOC02LjQgMjIuMi0xNiAyNy43bDAgMTQ1LjZjNTYuNSAyNC43IDk2IDgxLjEgOTYgMTQ2LjdsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTY1LjYgMzkuNS0xMjIgOTYtMTQ2LjdMOTYtNC4zQzg2LjQtOS44IDgwLTIwLjIgODAtMzJ6TTk2IDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMjg4eiJdfSxhc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5ib3giLGljb246WzUxMiw1MTIsW10sImYwMWMiLCJNOTEuOCAzMkM1OS45IDMyIDMyLjkgNTUuNCAyOC40IDg2LjlMLjYgMjgxLjJjLS40IDMtLjYgNi0uNiA5LjFMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMjUuN2MwLTMtLjItNi4xLS42LTkuMUw0ODMuNiA4Ni45QzQ3OS4xIDU1LjQgNDUyLjEgMzIgNDIwLjIgMzJMOTEuOCAzMnptMCA2NGwzMjguNSAwIDI3LjQgMTkyLTU5LjkgMGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtMTQuMyAyOC42Yy01LjQgMTAuOC0xNi41IDE3LjctMjguNiAxNy43bC0xMjAuNCAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43bC0xNC4zLTI4LjZjLTUuNC0xMC44LTE2LjUtMTcuNy0yOC42LTE3LjdMNjQuMyAyODggOTEuOCA5NnoiXX0sa3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1oIixpY29uOls0NDgsNTEyLFsiaC1zcXVhcmUiXSwiZjBmZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAgMTY4bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sc3NhPWt5ZSxpc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTNiMiIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yMjQgMjQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxTeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tcmlnaHQiLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1yaWdodCJdLCJmMTM4IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTI0MSAzNzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODctODctODctODdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMEwzNDUgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0MSAzNzd6Il19LHJzYT1TeWUsb3NhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY3N2IixpY29uOls1NzYsNTEyLFtdLCJmNmRkIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNjQgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptMTM2IDBjLTI4LjcgMC01MiAyMy4zLTUyIDUyczIzLjMgNTIgNTIgNTJjNi42IDAgMTIgNS40IDEyIDEycy01LjQgMTItMTIgMTJsLTMyIDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJzLTIzLjMtNTItNTItNTJjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMjQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI0IDB6bTk2IDBjLTExIDAtMjAgOS0yMCAyMGwwIDMxLjZjMCAzNS41IDEwLjUgNzAuMyAzMC4yIDk5LjhsNS4xIDcuN2MzLjcgNS42IDEwIDguOSAxNi42IDguOXMxMi45LTMuMyAxNi42LTguOWw1LjEtNy43YzE5LjctMjkuNiAzMC4yLTY0LjMgMzAuMi05OS44bDAtMzEuNmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMS42YzAgMTkuNi00LjEgMzguOS0xMiA1Ni43LTcuOS0xNy44LTEyLTM3LjEtMTItNTYuN2wwLTMxLjZjMC0xMS05LTIwLTIwLTIweiJdfSxuc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGF0LWNvd2JveSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMCIsIk0xODIuMiA3Ni4xTDEzMC44IDMwNy41QzE0NS41IDMyNC45IDE2Ny40IDMzNiAxOTIgMzM2bDI1NiAwYzI0LjYgMCA0Ni41LTExLjEgNjEuMi0yOC41TDQ1Ny44IDc2LjFjLTUuNy0yNS44LTI4LjYtNDQuMS01NS00NC4xLTEyLjIgMC0yNC4xIDQtMzMuOCAxMS4zbC00LjcgMy41Yy0yNi4zIDE5LjctNjIuNCAxOS43LTg4LjYgMEwyNzEgNDMuM2MtOS44LTcuMy0yMS42LTExLjMtMzMuOC0xMS4zLTI2LjQgMC00OS4zIDE4LjMtNTUgNDQuMXpNNjQgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjM4LjMgMCAyNTZDMCAzNjIgODYgNDQ4IDE5MiA0NDhsMjU2IDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTI1NiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHoiXX0sX3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTQwLCJncmluLXRvbmd1ZS13aW5rIl0sImY1OGIiLCJNMTUyLjIgNDkwLjFDNjIuNSA0NTAuMiAwIDM2MC40IDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDEwNC40LTYyLjUgMTk0LjItMTUyLjIgMjM0LjEgNS4zLTEzIDguMi0yNy4yIDguMi00Mi4xbDAtNjEuN2MxNi45LTE2LjUgMzAuMS0zNi43IDM4LjMtNTkuMyA0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjEtMzkuMiAxMi4yLTgzLjcgMTkuMS0xMzAuNyAxOS4xcy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgOC4zIDIyLjYgMjEuNSA0Mi44IDM4LjMgNTkuM2wwIDYxLjdjMCAxNC45IDIuOSAyOS4xIDguMiA0Mi4xek0xNTIgMjEybDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTg0IDYwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0zMjAgNDAyLjZsMCA0NS40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtNDUuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0zMzYgMTg0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sbHNhPV95ZSxjc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibCIsaWNvbjpbMzIwLDUxMixbMTA4XSwiNGMiLCJNNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sQW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWRlc2MiLCJzb3J0LWFtb3VudC1kb3duLWFsdCJdLCJmODg0IiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxkc2E9QW9lLHVzYT1Bb2UsTXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMTktNS42IDM3LjQtMTYgNTNMMTEyIDEyOGMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlsNjcuOS02Ny45IDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMiAxNC45TDExMiAzODR6Il19LHBzYT1NeWUsenllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwb29uIixpY29uOls1MTIsNTEyLFsxMjkzNDgsNjE4NzMsInV0ZW5zaWwtc3Bvb24iXSwiZjJlNSIsIk0yNDUuOCAyMjAuOWMtMTQuNS0xNy42LTIxLjgtMzkuMi0yMS44LTYwLjggMC04MC4yIDk2LTE2MC4yIDE5Mi0xNjAuMiA1MyAwIDk2IDQzIDk2IDk2IDAgOTYtODAgMTkyLTE2MC4yIDE5Mi0yMS42IDAtNDMuMi03LjMtNjAuOC0yMS44TDU0LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0NS44IDIyMC45eiJdfSxoc2E9enllLEN5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcmVkaXQtY2FyZCIsaWNvbjpbNTEyLDUxMixbMTI4MTc5LDYyMDgzLCJjcmVkaXQtY2FyZC1hbHQiXSwiZjA5ZCIsIk0wIDEyOGwwIDMyIDUxMiAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjh6bTAgODBMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYtNTEyIDB6TTY0IDM2MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTQ0IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LGZzYT1DeWUsSmI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbnZvaWNlLWRvbGxhciIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NEM3NC43IDY0IDY0IDc0LjcgNjQgODh6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTExMiA3NmwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwxNTIgNDAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIweiJdfSxUeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nIixpY29uOls2NDAsNTEyLFsicGFzdGFmYXJpYW5pc20iXSwiZjY3YiIsIk0yMDggNjRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMGMwIDE2LjItNiAzMS4xLTE2IDQyLjNsMTUuNiAzMS4yYzE4LjctNiAzOS45LTkuNSA2NC40LTkuNXM0NS44IDMuNSA2NC40IDkuNUw0MDAgMTA2LjNjLTEwLTExLjMtMTYtMjYuMS0xNi00Mi4zIDAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NGMtMS43IDAtMy40LS4xLTUuMS0uMkw0MjcuOCAxNThjMjEuMSAxMy42IDM3LjcgMzAuMiA1MS40IDQ2LjQgNy4xIDguMyAxMy41IDE2LjYgMTkuMyAyNGwxLjQgMS44YzYuMyA4LjEgMTEuNiAxNC44IDE2LjcgMjAuNCAxMC43IDExLjcgMTYuMSAxMy40IDE5LjQgMTMuNCAyLjUgMCA0LjMtLjYgNy4xLTMuMyAzLjctMy41IDcuMS04LjggMTIuNS0xNy40bC42LS45YzQuNi03LjQgMTEtMTcuNiAxOS40LTI1LjcgOS43LTkuMyAyMi45LTE2LjcgNDAuNC0xNi43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yLjUgMC00LjMgLjYtNy4xIDMuMy0zLjcgMy41LTcuMSA4LjgtMTIuNSAxNy40bC0uNiAuOWMtNC42IDcuNC0xMSAxNy42LTE5LjQgMjUuNy05LjcgOS4zLTIyLjkgMTYuNy00MC40IDE2LjctMTguNSAwLTMyLjktOC41LTQ0LjMtMTguNi0zLjEgNC02LjYgOC4zLTEwLjUgMTIuNyAxLjQgNC4zIDIuOCA4LjUgNCAxMi41IC45IDMgMS44IDUuOCAyLjYgOC42IDMgOS44IDUuNSAxOC4yIDguNiAyNS45IDMuOSA5LjggNy40IDE1LjQgMTAuOCAxOC41IDIuNiAyLjQgNS45IDQuMyAxMi44IDQuMyA4LjcgMCAxNi45LTQuMiAzMy43LTEzLjIgMTUtOCAzNS43LTE4LjggNjIuMy0xOC44IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0xMy40IDAtMjQuNyA1LjItMzkuNyAxMy4yLTEgLjYtMi4xIDEuMS0zLjIgMS43LTEzLjEgNy4xLTMxLjYgMTcuMS01My4xIDE3LjEtMTguNCAwLTMzLjYtNi4xLTQ1LjUtMTcuMi0xMS4xLTEwLjMtMTcuOS0yMy43LTIyLjctMzYtMy42LTktNi43LTE5LjEtOS41LTI4LjUtMTYuNCAxMi4zLTM2LjEgMjMuNi01OC45IDMxLjMgMy42IDEwLjggOC40IDIzLjUgMTQuNCAzNi4yIDcuNSAxNS45IDE2LjIgMzAuNCAyNS44IDQwLjUgOS42IDEwLjIgMTcuNyAxMy43IDI0LjUgMTMuNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjUuMiAwLTQ1LTEzLjUtNTkuNS0yOC44LTE0LjUtMTUuNC0yNS43LTM0LjktMzQuMi01My04LTE3LTE0LjEtMzMuOC0xOC4zLTQ2LjktNS4yIC40LTEwLjYgLjYtMTYgLjZzLTEwLjgtLjItMTYtLjZjLTQuMiAxMy0xMC4zIDI5LjktMTguMyA0Ni45LTguNSAxOC4xLTE5LjggMzcuNi0zNC4yIDUzLTE0LjQgMTUuMy0zNC4zIDI4LjgtNTkuNSAyOC44LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjNi44IDAgMTUtMy41IDI0LjUtMTMuNyA5LjUtMTAuMSAxOC4zLTI0LjYgMjUuOC00MC41IDUuOS0xMi42IDEwLjctMjUuNCAxNC40LTM2LjItMjIuOC03LjctNDIuNS0xOS01OC45LTMxLjMtMi45IDkuNC02IDE5LjUtOS41IDI4LjUtNC44IDEyLjItMTEuNiAyNS42LTIyLjcgMzYtMTEuOSAxMS4xLTI3LjEgMTcuMi00NS41IDE3LjItMTMuMSAwLTI0LjUtNC4xLTMzLjgtOC45LTcuOS00LTE1LjctOS4yLTIyLjEtMTMuNWwwIDAtMi40LTEuNmMtMTUuMy0xMC4yLTI1LjgtMTYtMzcuNy0xNi0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI4LjEgMCA0OS42IDE0LjIgNjQuMyAyNGwyLjQgMS42YzYuOSA0LjYgMTIuMSA4LjEgMTcuMiAxMC43IDUuNSAyLjggOS4xIDMuNiAxMiAzLjYgNi44IDAgMTAuMi0xLjkgMTIuOC00LjMgMy40LTMuMiA3LTguOCAxMC44LTE4LjUgMy03LjcgNS42LTE2LjEgOC42LTI1LjkgLjgtMi43IDEuNy01LjYgMi42LTguNiAxLjItNCAyLjYtOC4yIDQtMTIuNS0zLjktNC41LTcuNC04LjgtMTAuNS0xMi43LTExLjQgMTAuMS0yNS45IDE4LjYtNDQuMyAxOC42LTE3LjUgMC0zMC43LTcuNC00MC40LTE2LjctOC40LTguMS0xNC44LTE4LjMtMTkuNC0yNS43bC0uNi0uOWMtNS40LTguNi04LjgtMTMuOS0xMi41LTE3LjQtMi44LTIuNy00LjYtMy4zLTcuMS0zLjMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMxNy41IDAgMzAuNyA3LjQgNDAuNCAxNi43IDguNCA4LjEgMTQuOCAxOC4zIDE5LjQgMjUuN2wuNiAuOWM1LjQgOC42IDguOCAxMy45IDEyLjUgMTcuNCAyLjggMi43IDQuNiAzLjMgNy4xIDMuMyAzLjMgMCA4LjctMS43IDE5LjQtMTMuNCA1LjEtNS42IDEwLjQtMTIuMyAxNi43LTIwLjRsMS40LTEuOGM1LjgtNy40IDEyLjItMTUuNyAxOS4zLTI0IDEzLjgtMTYuMiAzMC4zLTMyLjggNTEuNC00Ni40bC0xNS4xLTMwLjJjLTEuNyAuMS0zLjQgLjItNS4xIC4yLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NHptMjA4IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sbXNhPVR5ZSwkeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcy1jaXRydXMiLGljb246WzY0MCw1MTIsWyJjb2NrdGFpbCJdLCJmNTYxIiwiTTU3NiA4MGMwLTQ0LjItMzUuOC04MC04MC04MC0xOCAwLTM0LjYgNi00OCAxNmwtODEgMGMyMy42LTQ3LjQgNzIuNS04MCAxMjktODAgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTNTc1LjUgMjI0IDQ5NiAyMjRjLTYuNSAwLTEzLS40LTE5LjMtMS4zbDY0LTc0LjdjMS4xLTEuMyAyLjItMi43IDMuMy00LjEgMTkuNC0xNC42IDMyLTM3LjggMzItNjR6TTY2LjkgODIuNkM3Mi4yIDcxLjMgODMuNSA2NCA5NiA2NGwzODQgMGMxMi41IDAgMjMuOCA3LjMgMjkuMSAxOC42czMuNCAyNC43LTQuOCAzNC4ybC0xODQuMyAyMTUgMCAxMTYuMiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTE2LjItMTg0LjMtMjE1Yy04LjEtOS41LTEwLTIyLjgtNC44LTM0LjJ6TTE2NS42IDEyOEwyODggMjcwLjggNDEwLjQgMTI4IDE2NS42IDEyOHoiXX0sZ3NhPSR5ZSxic2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVsbGhvcm4iLGljb246WzUxMiw1MTIsWzEyODIyNiwxMjgzNjNdLCJmMGExIiwiTTQ2MS4yIDE4LjlDNDcyLjcgMjQgNDgwIDM1LjQgNDgwIDQ4bDAgNDE2YzAgMTIuNi03LjMgMjQtMTguOCAyOS4xcy0yNC44IDMuMi0zNC4zLTUuMWwtNDYuNi00MC43Yy00My42LTM4LjEtOTguNy02MC4zLTE1Ni40LTYzbDAgOTUuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NkM1Ny4zIDM4NCAwIDMyNi43IDAgMjU2UzU3LjMgMTI4IDEyOCAxMjhsODQuNSAwYzYxLjgtLjIgMTIxLjQtMjIuNyAxNjcuOS02My4zbDQ2LjYtNDAuN2M5LjQtOC4zIDIyLjktMTAuMiAzNC4zLTUuMXpNMjI0IDMyMGwwIC4yYzcwLjMgMi43IDEzNy44IDI4LjUgMTkyIDczLjRsMC0yNzUuM2MtNTQuMiA0NC45LTEyMS43IDcwLjctMTkyIDczLjRMMjI0IDMyMHoiXX0sdnNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC10aXNzdWUiLGljb246WzUxMiw1MTIsW10sImUwNWIiLCJNMTAzLjkgMzJsMTYxIDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlsMTcuNCA1Mi4yYzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsNjAuNSAwYzIxLjggMCAzNy4zIDIxLjQgMzAuNCA0Mi4xTDM4NCAzMjAgMTI4IDMyMCA3Mi43IDcwLjlDNjguMiA1MSA4My40IDMyIDEwMy45IDMyek00OCAyNTZsMTYuNiAwIDE2LjUgNzQuNEM4NiAzNTIuNCAxMDUuNSAzNjggMTI4IDM2OGwyNTYgMGMyMC43IDAgMzktMTMuMiA0NS41LTMyLjhsMjYuNC03OS4yIDguMSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LHhzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXR0cmVzcy1waWxsb3ciLGljb246WzU3Niw1MTIsW10sImU1MjUiLCJNMjU2IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwIDAtMzg0em00OCAzODRsMjA4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgMzg0ek02NCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6Il19LHlzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGV2cm9uLWxlZnQiLGljb246WzMyMCw1MTIsWzkwMDFdLCJmMDUzIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDI0Ni42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTJ6Il19LHdzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1tb29uLXJhaW4iLGljb246WzU3Niw1MTIsW10sImY3M2MiLCJNNDQ4IDBjLTY4LjYgMC0xMjcuMSA0My4xLTE0OS44IDEwMy44IDE3LjEgMTQuMSAyOS42IDMzLjUgMzQuOSA1NS44IDM5LjkgMjEuNyA2Ni45IDYzLjkgNjYuOSAxMTIuNSAwIDEzLjUtMi4xIDI2LjUtNS45IDM4LjcgMTYuOSA2IDM1IDkuMyA1My45IDkuMyA0MyAwIDgyLjEtMTcgMTEwLjgtNDQuNiA0LjYtNC40IDUuOS0xMS4yIDMuMy0xN3MtOC42LTkuMy0xNC45LTguOGMtMyAuMi02LjEgLjQtOS4yIC40LTYzLjUgMC0xMTUtNTEuNS0xMTUtMTE1IDAtNDUuMSAyNi04NC4yIDYzLjgtMTAzIDUuNy0yLjggOS04LjkgOC4yLTE1LjJTNDg5LjYgNS4zIDQ4My40IDMuOUM0NzIgMS40IDQ2MC4yIDAgNDQ4IDB6TTI3MiAzNTJjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zOS0yNy45LTcxLjUtNjQuOC03OC42IC41LTMuMSAuOC02LjIgLjgtOS40IDAtMzAuOS0yNS4xLTU2LTU2LTU2LTEyLjQgMC0yMy45IDQtMzMuMSAxMC44LTEzLjQtMjUuNS00MC4xLTQyLjgtNzAuOS00Mi44LTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgNy40IDEgMTQuNiAyLjkgMjEuNS0yOS44IDExLjYtNTAuOSA0MC42LTUwLjkgNzQuNSAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxOTIgMHpNNjkgNDAxLjFjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMkwxNy4yIDQ4MC40QzEzIDQ5MyAxOS44IDUwNi42IDMyLjQgNTEwLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6bTEyMCAwYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHoiXX0sTm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tMS05IixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLWFzYyIsInNvcnQtbnVtZXJpYy1kb3duIl0sImYxNjIiLCJNNDE4LjcgMzhjOC4zIDYgMTMuMyAxNS43IDEzLjMgMjZsMCA5NiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6TTM2NS4xIDQzMC42bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMzM2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE1MC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC05NiA5NnoiXX0sa3NhPU5vZSxTc2E9Tm9lLF9zYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTIxNC45IDIzLjdDMjEwLjMgNi42IDE5Mi44LTMuNSAxNzUuNyAxLjFzLTI3LjIgMjIuMS0yMi42IDM5LjJMMjA2IDIzNy44YzIuNSA5LjItNC41IDE4LjItMTQgMTguMi02LjQgMC0xMi00LjItMTMuOS0xMC4zTDEzNC42IDEwMi43Yy01LjEtMTYuOS0yMy0yNi40LTM5LjktMjEuM3MtMjYuNCAyMy0yMS4zIDM5LjlsNjIuOCAyMDYuNGMyLjQgNy45LTcuMiAxMy44LTEzLjIgOC4xTDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjEgMGMuMSAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xYzU4LjMtMy41IDEwOC42LTQzLjIgMTI1LjMtOTkuN2w4MS4yLTI3NWM1LTE2LjktNC43LTM0LjctMjEuNi0zOS44cy0zNC43IDQuNy0zOS44IDIxLjZMNDExLjUgMjQ3LjFjLTEuNiA1LjMtNi40IDguOS0xMiA4LjktNy45IDAtMTMuOC03LjMtMTIuMi0xNS4xbDM2LTE3MC4zYzMuNy0xNy4zLTcuNC0zNC4zLTI0LjctMzcuOXMtMzQuMyA3LjQtMzcuOSAyNC43TDMyMy4xIDIzNS4xYy0yLjYgMTIuMi0xMy4zIDIwLjktMjUuOCAyMC45LTExLjkgMC0yMi40LTgtMjUuNC0xOS41bC01Ny0yMTIuOHoiXX0sRHllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtbWFnaWMtc3BhcmtsZXMiLGljb246WzU3Niw1MTIsWyJtYWdpYy13YW5kLXNwYXJrbGVzIl0sImUyY2EiLCJNMjYzLjQtMjdMMjc4LjIgOS44IDMxNSAyNC42YzMgMS4yIDUgNC4yIDUgNy40cy0yIDYuMi01IDcuNEwyNzguMiA1NC4yIDI2My40IDkxYy0xLjIgMy00LjIgNS03LjQgNXMtNi4yLTItNy40LTVMMjMzLjggNTQuMiAxOTcgMzkuNGMtMy0xLjItNS00LjItNS03LjRzMi02LjIgNS03LjRMMjMzLjggOS44IDI0OC42LTI3YzEuMi0zIDQuMi01IDcuNC01czYuMiAyIDcuNCA1ek0xMTAuNyA0MS43bDIxLjUgNTAuMSA1MC4xIDIxLjVjNS45IDIuNSA5LjcgOC4zIDkuNyAxNC43cy0zLjggMTIuMi05LjcgMTQuN2wtNTAuMSAyMS41LTIxLjUgNTAuMWMtMi41IDUuOS04LjMgOS43LTE0LjcgOS43cy0xMi4yLTMuOC0xNC43LTkuN0w1OS44IDE2NC4yIDkuNyAxNDIuN0MzLjggMTQwLjIgMCAxMzQuNCAwIDEyOHMzLjgtMTIuMiA5LjctMTQuN0w1OS44IDkxLjggODEuMyA0MS43QzgzLjggMzUuOCA4OS42IDMyIDk2IDMyczEyLjIgMy44IDE0LjcgOS43ek00NjQgMzA0YzYuNCAwIDEyLjIgMy44IDE0LjcgOS43bDIxLjUgNTAuMSA1MC4xIDIxLjVjNS45IDIuNSA5LjcgOC4zIDkuNyAxNC43cy0zLjggMTIuMi05LjcgMTQuN2wtNTAuMSAyMS41LTIxLjUgNTAuMWMtMi41IDUuOS04LjMgOS43LTE0LjcgOS43cy0xMi4yLTMuOC0xNC43LTkuN2wtMjEuNS01MC4xLTUwLjEtMjEuNWMtNS45LTIuNS05LjctOC4zLTkuNy0xNC43czMuOC0xMi4yIDkuNy0xNC43bDUwLjEtMjEuNSAyMS41LTUwLjFjMi41LTUuOSA4LjMtOS43IDE0LjctOS43ek00NjAgMGMxMSAwIDIxLjYgNC40IDI5LjUgMTIuMmw0Mi4zIDQyLjNDNTM5LjYgNjIuNCA1NDQgNzMgNTQ0IDg0cy00LjQgMjEuNi0xMi4yIDI5LjVsLTg4LjIgODguMi0xMDEuMy0xMDEuMyA4OC4yLTg4LjJDNDM4LjQgNC40IDQ0OSAwIDQ2MCAwek00NC4yIDM5OC41TDMwOC40IDEzNC4zIDQwOS43IDIzNS42IDE0NS41IDQ5OS44QzEzNy42IDUwNy42IDEyNyA1MTIgMTE2IDUxMnMtMjEuNi00LjQtMjkuNS0xMi4yTDQ0LjIgNDU3LjVDMzYuNCA0NDkuNiAzMiA0MzkgMzIgNDI4czQuNC0yMS42IDEyLjItMjkuNXoiXX0sTXNhPUR5ZSx6c2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmN2Y1IiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0yMTcuNiAxNTMuNmMwLTEwLjYgOC42LTE5LjIgMTkuMi0xOS4ybDM4LjQgMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4ybDAgNDggNDggMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4ybDAgMzguNGMwIDEwLjYtOC42IDE5LjItMTkuMiAxOS4ybC00OCAwIDAgNDhjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtMzguNCAwYy0xMC42IDAtMTkuMi04LjYtMTkuMi0xOS4ybDAtNDgtNDggMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTM4LjRjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmw0OCAwIDAtNDh6Il19LENzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjUtODcuNWMxNy4yLTIuNCAzMC41LTE3LjMgMzAuNS0zNS4yIDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0NjQuNCAzMDguNSA0NDggMjYxLjggNDQ4IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMuMmMtMzguNiA3LjgtNzIuMiAyOS42LTk1LjIgNTkuN0w0MS0yNC45em04NyAyMzguNWMwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRsLTkuOCAxMi4yYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyMzUuMyAwLTIwNi45LTIwNi45IDAgNC41ek0yODggNTEyYzI5LjggMCA1NC45LTIwLjQgNjItNDhsLTEyNCAwYzcuMSAyNy42IDMyLjIgNDggNjIgNDh6Il19LFJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2Utc2xhc2giLGljb246WzU3Niw1MTIsWzU3NDM5LCJoYW5kc2hha2UtYWx0LXNsYXNoIiwiaGFuZHNoYWtlLXNpbXBsZS1zbGFzaCJdLCJlMDYwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTI4OC0yODggMTQuMi0xNC4yYzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMWwtNTUuOCA2Mi4xLTM0LTM0IDQ0LjMtNDkuMi0zOS43IDBjLTE1LjMgMC0zMC4xIDMuNi00My41IDEwLjRMNDEtMjQuOXpNMCA2OS44TDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMyMi4yIDAgNDMuOC01LjggNjIuOC0xNi40TDAgNjkuOHoiXX0sVHNhPVJvZSwkc2E9Um9lLERzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3R0bGUtd2F0ZXIiLGljb246WzMyMCw1MTIsW10sImU0YzUiLCJNMTEyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBDOTQuMyAzMiA4MCAxNy43IDgwIDBzMTQuMy0zMiAzMi0zMnpNMTYgMTQ0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjQuMS0xMy4zIDQ1LjEtMzMgNTYgMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NnMtMTMuMyA0NS4xLTMzIDU2YzE5LjcgMTAuOSAzMyAzMS45IDMzIDU2IDAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDU0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNC4xIDEzLjMtNDUuMSAzMy01Ni0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2czEzLjMtNDUuMSAzMy01NmMtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZ6Il19LExzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWQyMCIsaWNvbjpbNTEyLDUxMixbXSwiZjZjZiIsIk0yMjQuNC04LjJjMTkuNi0xMS4xIDQzLjYtMTEuMSA2My4xIDBsMTkyIDEwOC44YzIwIDExLjQgMzIuNCAzMi42IDMyLjQgNTUuN2wwIDIxNS42YzAgMjMtMTIuNCA0NC4zLTMyLjQgNTUuN2wtMTkyIDEwOC44Yy0xOS42IDExLjEtNDMuNiAxMS4xLTYzLjEgMEwzMi40IDQyNy41QzEyLjQgNDE2LjEgMCAzOTQuOCAwIDM3MS44TDAgMTU2LjJjMC0yMyAxMi40LTQ0LjMgMzIuNC01NS43TDIyNC40LTguMnptNTIgNzMuMkMyNjcgNDkuOCAyNDUgNDkuOCAyMzUuNiA2NWwtNzYuNiAxMjMuNy04NS40LTQ2LjMtMy44LTEuNmMtOC45LTIuNy0xOC44IDEuMS0yMy40IDkuNnMtMi40IDE4LjkgNC43IDI0LjhsMy4zIDIuMyA4My40IDQ1LjItNzQuNiAxMjAuNkM1NS4zIDM1Ni4yIDYxIDM3MyA3NSAzNzguNGwxNjEgNjEuOSAwIDM5LjdjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0zOS43IDE2MS02MS45YzE0LTUuNCAxOS43LTIyLjIgMTEuOC0zNWwtNzQuNy0xMjAuNiA4My40LTQ1LjJjOS43LTUuMyAxMy4zLTE3LjQgOC4xLTI3LjFzLTE3LjQtMTMuMy0yNy4xLTguMUwzNTMgMTg4LjcgMjc2LjQgNjV6bS00NyAzMjkuOWwtMTIyLTQ2LjkgNTQuNS04OC4xIDY3LjUgMTM1ek00MDQuNiAzNDhsLTEyMiA0Ni45IDY3LjUtMTM1IDU0LjUgODguMXpNMzE5LjMgMjMyTDI1NiAzNTguNiAxOTIuNyAyMzIgMzE5LjMgMjMyek0zMDggMTkybC0xMDQuMSAwIDUyLTg0IDUyIDg0eiJdfSxPb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi16LWEiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLWRlc2MiLCJzb3J0LWFscGhhLWRvd24tYWx0Il0sImY4ODEiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyAxNjAgNDQ4IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDM3MC44IDk2IDMyMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQxMi42IDI3My43bDgwIDE2MGM3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsODAtMTYwYzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMzU5LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40eiJdfSxFc2E9T29lLFBzYT1Pb2UsSXNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJydXNoIixpY29uOlszODQsNTEyLFtdLCJmNTVkIiwiTTE2Mi40IDZjLTEuNS0zLjYtNS02LTguOS02bC0xOSAwYy0zLjkgMC03LjUgMi40LTguOSA2TDEwNC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMNjYuNCA2Yy0xLjUtMy42LTUtNi04LjktNkw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OGwwIDIwOCAzODQgMCAwLTIwOGMwLTI2LjUtMjEuNS00OC00OC00OEwyMzAuNSAwYy0zLjkgMC03LjUgMi40LTguOSA2TDIwMC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMMTYyLjQgNnpNMCAzMDRsMCAxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw2NCAwIDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTY0IDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi0zODQgMHpNMTkyIDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2eiJdfSxBc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctZGFzaGVkLWxpbmUtYXJyb3ctcmlnaHQiLGljb246WzY0MCw1MTIsW10sImU1NTMiLCJNMTYwIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek03My40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkwyOC4xIDE4Mi42QzEwLjEgMjAwLjYgMCAyMjUgMCAyNTAuNUwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnpNODUuOCA0MDcuM2MtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMOS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOEw4NS44IDQwNy4zek00MzIgOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMzODQtNS4zIDM4NCA4bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyem0wIDEyOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnpNNDA4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnpNNjA5IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtMTAyLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDIuMSAwLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LEx5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1zaG9ydC13aWRlIixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAtYWx0Il0sImY4ODUiLCJNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwek0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LE5zYT1MeWUsRXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAtdmVydGljYWwiLGljb246WzMyMCw1MTIsWyJncmlkLXZlcnRpY2FsIl0sImY1OGUiLCJNMTI4IDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDBDMTcuOSAwIDAgMTcuOSAwIDQwTDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4em0wIDE5MmMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6TTAgNDI0bDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNMzIwIDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwTDIzMiAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHpNMTkyIDIzMmwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTMyMCA0MjRjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4eiJdfSxSc2E9RXllLE9zYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItdHVubmVsIixpY29uOls1MTIsNTEyLFtdLCJlNGRlIiwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0Mi44IDBjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0xMTMuMWMwLTEzLjUgMy4xLTI2LjggOS0zOC45bDM5LjctODAuOGM5LjQtMTkuMSAyOC45LTMxLjMgNTAuMi0zMS4zTDMxNyAyMjRjMjEuMyAwIDQwLjggMTIuMSA1MC4yIDMxLjNMNDA3IDMzNmM1LjkgMTIuMSA5IDI1LjQgOSAzOC45TDQxNiA0ODhjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGw0Mi44IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJDNTEyIDExNC42IDM5Ny40IDAgMjU2IDB6TTM2Mi44IDUxMmMtNi42LTUuOS0xMC44LTE0LjQtMTAuOC0yNGwwLTI0LTE5MiAwIDAgMjRjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGwyMTMuNyAwem0tMTc1LTIzNS41bC0yOS4zIDU5LjUgMTk0LjkgMC0yOS4zLTU5LjVjLTEuMy0yLjctNC4xLTQuNS03LjItNC41TDE5NSAyNzJjLTMgMC01LjggMS43LTcuMiA0LjV6TTE3NiA0MjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0xODQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sRnNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWNvbHVtbiIsaWNvbjpbNTEyLDUxMixbXSwiZTBlMyIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0xNDQgMjI0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTQ0LTY0bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTgwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNTEyIDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LEJzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXByaWNvcm4iLGljb246WzU3Niw1MTIsW10sImU4NDgiLCJNMjQwIDMyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgNjUuMmMxOC44LTEwLjkgNDAuNy0xNy4yIDY0LTE3LjIgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNTE4LjcgNDgwIDQ0OCA0ODBjLTM1LjggMC02OC4yLTE0LjctOTEuNC0zOC40LTI4LjggNDIuNS03Ny40IDcwLjQtMTMyLjYgNzAuNC0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzUzIDAgOTYtNDMgOTYtOTZsMC0xNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjQtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyAzMiAzMiAzMkM3Mi42IDMyIDEwOC44IDUxIDEzMi4yIDgwLjUgMTU4LjYgNTAuNyAxOTcuMSAzMiAyNDAgMzJ6TTQ0OCAyODhhNjQgNjQgMCAxIDAgMCAxMjggNjQgNjQgMCAxIDAgMC0xMjh6Il19LEhzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0zMDUgMjI1bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXoiXX0sRm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR2IixpY29uOls1NzYsNTEyLFs2MzcxNywidGVsZXZpc2lvbiIsInR2LWFsdCJdLCJmMjZjIiwiTTY0IDk2bDAgMjQwIDQ0OCAwIDAtMjQwLTQ0OCAwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQwMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDQ0OGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LHFzYT1Gb2UsanNhPUZvZSxWc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VjdGlvbiIsaWNvbjpbMjU2LDUxMixbXSwiZTQ0NyIsIk0xMTAgMEM0OS4yIDAgMCA0OS4yIDAgMTEwIDAgMTMzLjcgNy42IDE1NS44IDIwLjUgMTc0IDcuNiAxOTIgMCAyMTQuMSAwIDIzOCAwIDI5MS43IDM4LjkgMzM3LjYgOTEuOSAzNDYuNGw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDI1LjQtMjAuNiA0Ni00NiA0NmwtOTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5OCAwYzYwLjcgMCAxMTAtNDkuMiAxMTAtMTEwIDAtMjMuNy03LjYtNDUuOS0yMC41LTY0IDEyLjktMTggMjAuNS00MC4xIDIwLjUtNjQgMC01My44LTM4LjktOTkuNi05MS45LTEwOC41bC02MS43LTEwLjNDODAuMiAxNTEuNiA2NCAxMzIuNCA2NCAxMTAgNjQgODQuNiA4NC42IDY0IDExMCA2NGw5OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzIyNS43IDAgMjA4IDBMMTEwIDB6bTc0LjcgMjk5LjFjLTYuNS0yLjQtMTMuNC00LjMtMjAuNS01LjVsLTYxLjctMTAuM2MtMjIuMi0zLjctMzguNC0yMi45LTM4LjQtNDUuMyAwLTkuMiAyLjctMTcuOCA3LjQtMjUgNi41IDIuNCAxMy40IDQuMyAyMC41IDUuNWw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDkuMi0yLjcgMTcuOC03LjQgMjV6Il19LFVzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZWFjZSIsaWNvbjpbNTEyLDUxMixbOTc3NF0sImY2N2MiLCJNMjI0IDQ0NS4zbDAtMTIxLjgtOTQuMyA3Ny4xYzI2LjEgMjIuOCA1OC41IDM4LjcgOTQuMyA0NC43ek04OS4yIDM1MS4xTDIyNCAyNDAuOCAyMjQgNjYuN2MtOTAuOCAxNS4yLTE2MCA5NC4yLTE2MCAxODkuMyAwIDM0LjYgOS4yIDY3LjEgMjUuMiA5NS4xem0yOTMuMSA0OS41bC05NC4zLTc3LjEgMCAxMjEuOGMzNS43LTYgNjguMS0yMS45IDk0LjMtNDQuN3ptNDAuNi00OS41YzE2LTI4IDI1LjItNjAuNSAyNS4yLTk1LjEgMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zbDAgMTc0LjIgMTM0LjggMTEwLjN6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFdzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyIixpY29uOls1NzYsNTEyLFsxMTA4OCw2MTQ0Nl0sImYwMDUiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45eiJdfSxHc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZyIsaWNvbjpbNDQ4LDUxMixbMTI3OTg4LDYxNzI1XSwiZjAyNCIsIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjEuNiA2Mi43LTE4LjhjNDEuOS0xMi42IDg3LjEtOC43IDEyNi4yIDEwLjkgNDIuNyAyMS40IDkyLjUgMjQgMTM3LjIgNy4ybDM3LjEtMTMuOWMxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI0Ny43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTExLjggNS45Yy00NC45IDIyLjUtOTcuOCAyMi41LTE0Mi44IDAtMzYuNC0xOC4yLTc4LjMtMjEuOC0xMTcuMi0xMC4xTDY0IDU0LjQgNjQgMzJ6Il19LEJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmlhbmdsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbOTg4OCwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJ3YXJuaW5nIl0sImYwNzEiLCJNMjU2IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41UzQ4Ni4xIDQ4MCA0NzIgNDgwTDQwIDQ4MGMtMTQuMSAwLTI3LjItNy40LTM0LjQtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwYzctMTIuOSAyMC41LTIxIDM1LjItMjF6bTAgMzUyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xOTJjLTE4LjIgMC0zMi43IDE1LjUtMzEuNCAzMy43bDcuNCAxMDRjLjkgMTIuNSAxMS40IDIyLjMgMjMuOSAyMi4zIDEyLjYgMCAyMy05LjcgMjMuOS0yMi4zbDcuNC0xMDRjMS4zLTE4LjItMTMuMS0zMy43LTMxLjQtMzMuN3oiXX0sS3NhPUJvZSxZc2E9Qm9lLFpzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTZjIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFB5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmFkdWF0aW9uLWNhcCIsaWNvbjpbNTc2LDUxMixbMTI3ODkxLCJtb3J0YXItYm9hcmQiXSwiZjE5ZCIsIk00OCAxOTUuOGwyMDkuMiA4Ni4xYzkuOCA0IDIwLjIgNi4xIDMwLjggNi4xczIxLTIuMSAzMC44LTYuMWwyNDIuNC05OS44YzktMy43IDE0LjgtMTIuNCAxNC44LTIyLjFzLTUuOC0xOC40LTE0LjgtMjIuMUwzMTguOCAzOC4xQzMwOSAzNC4xIDI5OC42IDMyIDI4OCAzMnMtMjEgMi4xLTMwLjggNi4xTDE0LjggMTM3LjlDNS44IDE0MS42IDAgMTUwLjMgMCAxNjBMMCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI2MC4yem00OCA3MS43TDk2IDM4NGMwIDUzIDg2IDk2IDE5MiA5NnMxOTItNDMgMTkyLTk2bDAtMTE2LjYtMTQyLjkgNTguOWMtMTUuNiA2LjQtMzIuMiA5LjctNDkuMSA5LjdzLTMzLjUtMy4zLTQ5LjEtOS43TDk2IDI2Ny40eiJdfSxYc2E9UHllLFFzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9yZSIsaWNvbjpbNTEyLDUxMixbXSwiZjU0ZSIsIk0zMC43IDcyLjNDMzcuNiA0OC40IDU5LjUgMzIgODQuNCAzMmwzNDQgMGMyNC45IDAgNDYuOCAxNi40IDUzLjggNDAuM2wyMy40IDgwLjJjMTIuOCA0My43LTIwLjEgODcuNS02NS42IDg3LjUtMjYuMyAwLTQ5LjQtMTQuOS02MC44LTM3LjEtMTEuNiAyMS45LTM0LjYgMzcuMS02MS40IDM3LjEtMjYuNiAwLTQ5LjctMTUtNjEuMy0zNy0xMS42IDIyLTM0LjcgMzctNjEuMyAzNy0yNi44IDAtNDkuOC0xNS4xLTYxLjQtMzcuMS0xMS40IDIyLjEtMzQuNSAzNy4xLTYwLjggMzcuMS00NS42IDAtNzguNC00My43LTY1LjYtODcuNUwzMC43IDcyLjN6TTk2LjQgMzUybDMyMCAwIDAtNjYuNGM3LjYgMS42IDE1LjUgMi40IDIzLjUgMi40IDE0LjMgMCAyOC0yLjYgNDAuNS03LjJsMCAxNTEuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTUxLjJjMTIuNSA0LjYgMjYuMSA3LjIgNDAuNSA3LjIgOC4xIDAgMTUuOS0uOCAyMy41LTIuNGwwIDY2LjR6Il19LEpzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWFzdHJvbmF1dCIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmYiIsIk0yMjQgMzM2Yzc0LjYgMCAxMzguNC00Ni40IDE2NC0xMTJsNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQgMEMzNjIuNCAzMC40IDI5OC42LTE2IDIyNC0xNlM4NS42IDMwLjQgNjAgOTZsLTQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0IDBjMjUuNiA2NS42IDg5LjQgMTEyIDE2NCAxMTJ6TTIwOCA4MGwzMiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2ek0xNiA0ODQuNkMxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmw1Mi42IDAgMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4IDUyLjYgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTU5LjgtMzEuOS0xMTIuMi03OS42LTE0MS0zNi40IDI1LjUtODAuNiA0MC40LTEyOC40IDQwLjRzLTkyLTE0LjktMTI4LjQtNDAuNEM0Ny45IDM3Mi40IDE2IDQyNC44IDE2IDQ4NC42ek0xODMuMyAxNDEuNWMtLjktMy4zLTMuOS01LjUtNy4zLTUuNXMtNi40IDIuMi03LjMgNS41bC02IDIxLjItMjEuMiA2Yy0zLjMgLjktNS41IDMuOS01LjUgNy4zczIuMiA2LjQgNS41IDcuM2wyMS4yIDYgNiAyMS4yYy45IDMuMyAzLjkgNS41IDcuMyA1LjVzNi40LTIuMiA3LjMtNS41bDYtMjEuMiAyMS4yLTZjMy4zLS45IDUuNS0zLjkgNS41LTcuM3MtMi4yLTYuNC01LjUtNy4zbC0yMS4yLTYtNi0yMS4yek0xNTIgNDg4bDAgMjQgNDggMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0xMjAtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMjQgNDggMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxlaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTRkNSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTk2IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNDAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNOTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00NjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI4OCAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQ5NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sSXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1zYXVjZXIiLGljb246WzU3Niw1MTIsWyJjb2ZmZWUiXSwiZjBmNCIsIk02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNTIgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM1MTguNyAyODggNDQ4IDI4OGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw2NCA2NHptNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bDAgMTI4YzM1LjMgMCA2NC0yOC43IDY0LTY0ek02NCA0NDhsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSx0aWE9SXllLGFpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZW1vbiIsaWNvbjpbNDQ4LDUxMixbMTI3ODE5XSwiZjA5NCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjQtNi42IDAtMTMgMS0xOSAyLjktMjIuNSA3LTQ4LjEgMTQuOS03MSA5LTc1LjItMTkuMS0xNTYuNCAxMS0yMTMuNyA2OC4zUy03LjIgMjUwLjggMTEuOSAzMjZjNS44IDIyLjktMiA0OC40LTkgNzEtMS45IDYtMi45IDEyLjQtMi45IDE5IDAgMzUuMyAyOC43IDY0IDY0IDY0IDYuNiAwIDEzLTEgMTkuMS0yLjkgMjIuNS03IDQ4LjEtMTQuOSA3MS05IDc1LjIgMTkuMSAxNTYuNC0xMSAyMTMuNy02OC4zUzQ1NS4yIDI2MS4yIDQzNi4xIDE4NmMtNS44LTIyLjkgMi00OC40IDktNzEgMS45LTYgMi45LTEyLjQgMi45LTE5LjF6TTIyMi43IDE0M2MtNTIgMTUuMi05Ni41IDU5LjctMTExLjcgMTExLjctMy43IDEyLjctMTcuMSAyMC0yOS44IDE2LjNTNjEuMiAyNTQgNjUgMjQxLjNjMTkuOC02Ny43IDc2LjYtMTI0LjUgMTQ0LjMtMTQ0LjMgMTIuNy0zLjcgMjYuMSAzLjYgMjkuOCAxNi4zcy0zLjYgMjYuMS0xNi4zIDI5Ljh6Il19LHNpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJhdmFuIixpY29uOls2NDAsNTEyLFtdLCJmOGZmIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5Ni40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04TDk2IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgOTZ6TTM1MiAzNTJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnpNMTYwIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6bTY0IDMzNmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LGlpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxIixpY29uOls0NDgsNTEyLFsxMTNdLCI1MSIsIk02NCAyNTZjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjAgMjguOSAwIDU2LTcuNyA3OS40LTIxLjFsLTcyLTg2LjRjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWw3MC45IDg1LjFjMjAuNC0yNi44IDMyLjUtNjAuMyAzMi41LTk2LjYgMC04OC40LTcxLjYtMTYwLTE2MC0xNjBTNjQgMTY3LjYgNjQgMjU2ek0zNDQuOSA0NDQuNkMzMTAgNDY3IDI2OC41IDQ4MCAyMjQgNDgwIDEwMC4zIDQ4MCAwIDM3OS43IDAgMjU2UzEwMC4zIDMyIDIyNCAzMiA0NDggMTMyLjMgNDQ4IDI1NmMwIDU2LjEtMjAuNiAxMDcuNC01NC43IDE0Ni43bDQ3LjMgNTYuOGMxMS4zIDEzLjYgOS41IDMzLjgtNC4xIDQ1LjFzLTMzLjggOS41LTQ1LjEtNC4xbC00Ni42LTU1Ljl6Il19LHJpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NrIixpY29uOlszODQsNTEyLFsxMjgyNzRdLCJmMDIzIiwiTTEyOCA5NmwwIDY0IDEyOCAwIDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjR6TTY0IDE2MGwwLTY0QzY0IDI1LjMgMTIxLjMtMzIgMTkyLTMyUzMyMCAyNS4zIDMyMCA5NmwwIDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LG9pYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWludC1yb2xsZXIiLGljb246WzUxMiw1MTIsW10sImY1YWEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMTYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDk2YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTguN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC0xOC43YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCAxOTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LEF5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtaGlnaCIsaWNvbjpbNjQwLDUxMixbMTI4MjY2LCJ2b2x1bWUtdXAiXSwiZjAyOCIsIk01MzMuNiAzMi41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNTU3LjUgMTEzLjggNTkyIDE4MC44IDU5MiAyNTZzLTM0LjUgMTQyLjItODguNyAxODYuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM1OTguNSA0MjYuNyA2NDAgMzQ2LjIgNjQwIDI1NlM1OTguNSA4NS4yIDUzMy42IDMyLjV6TTQ3My4xIDEwN2MtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzQ3NS4zIDE3MC43IDQ5NiAyMTAuOSA0OTYgMjU2cy0yMC43IDg1LjMtNTMuMiAxMTEuOGMtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNWM0My4yLTM1LjIgNzAuOS04OC45IDcwLjktMTQ5cy0yNy43LTExMy44LTcwLjktMTQ5em0tNjAuNSA3NC41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzkzLjEgMjI3LjYgNDAwIDI0MSA0MDAgMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDM0LjEgMzEyLjkgNDQ4IDI4Ni4xIDQ0OCAyNTZzLTEzLjktNTYuOS0zNS40LTc0LjV6TTgwIDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEwxMjggMTYwIDgwIDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHoiXX0sbmlhPUF5ZSxsaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLXBsdXMiLGljb246WzUxMiw1MTIsW10sImY2NWUiLCJNNTEyIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MHpNMjU2IDE2MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxjaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVyY3VyeSIsaWNvbjpbMzg0LDUxMixbOTc5MV0sImYyMjMiLCJNMTE3LTRDMTA2LTE3LjggODUuOC0yMCA3Mi4xLTlzLTE2IDMxLjItNSA0NUM3NC45IDQ1LjcgODMuNyA1NC41IDkzLjUgNjIuMSA0Ni43IDkzLjcgMTYgMTQ3LjMgMTYgMjA4IDE2IDI5NC4zIDc4LjEgMzY2LjEgMTYwIDM4MS4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC02MC43LTMwLjctMTE0LjMtNzcuNS0xNDUuOSA5LjgtNy43IDE4LjctMTYuNCAyNi40LTI2LjEgMTEuMS0xMy44IDguOC0zMy45LTUtNDVTMjc4LTE3LjggMjY3LTRjLTE3LjYgMjItNDQuNyAzNi03NSAzNlMxMzQuNyAxOCAxMTctNHptNzUgMzI0Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMlMxMzAuMSA5NiAxOTIgOTYgMzA0IDE0Ni4xIDMwNCAyMDhjMCA2MS44LTUwLjEgMTEyLTExMS45IDExMmwtLjEgMHoiXX0sZGlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvciIsaWNvbjpbNTc2LDUxMixbOTg3NV0sImYxM2QiLCJNMjg4IDY0YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgMjU3LjljNjIuOS0xNC4zIDExMC4yLTY5LjcgMTExLjktMTM2LjVsLTE2LjEgMTQuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNMNDk2IDMwNy45QzQ5My45IDQyMSA0MDEuNiA1MTIgMjg4IDUxMlM4Mi4xIDQyMSA4MCAzMDcuOUw2My44IDMyMi4xYy0xMCA4LjctMjUuMSA3LjctMzMuOS0yLjNzLTcuNy0yNS4xIDIuMy0zMy45bDY0LTU2YzktNy45IDIyLjYtNy45IDMxLjYgMGw2NCA1NmMxMCA4LjcgMTEgMjMuOSAyLjMgMzMuOXMtMjMuOSAxMS0zMy45IDIuM2wtMTYuMS0xNC4xYzEuOCA2Ni44IDQ5LjEgMTIyLjIgMTExLjkgMTM2LjVsMC0yNTcuOWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNXoiXX0sTnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wYXJraW5nIixpY29uOls0NDgsNTEyLFsxMjczNTksInBhcmtpbmciXSwiZjU0MCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0xOTIgMjU2bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDAgMCA2NHptNDggNjRsLTQ4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4NGMwLTIyLjEgMTcuOS00MCA0MC00MGw3MiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2eiJdfSx1aWE9TnllLHBpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW51a2lhaCIsaWNvbjpbNjQwLDUxMixbMTI4MzM0XSwiZjZlNiIsIk0zMTQuMiAzLjNjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6bS0yODggNDhDMjEuMSA2MC4xIDggODQuNiA4IDEwNCA4IDExNy4zIDE4LjcgMTI4IDMyIDEyOHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTg4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMTAxLjEgNjAuMSA4OCA4NC42IDg4IDEwNHptODIuMi01Mi43Yy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek0yMTYgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0MyMjkuMSA2MC4xIDIxNiA4NC42IDIxNiAxMDR6TTM5NC4yIDUxLjNjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTQ0MCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzQ1My4xIDYwLjEgNDQwIDg0LjYgNDQwIDEwNHptODIuMi01Mi43Yy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek01ODQgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M1OTcuMSA2MC4xIDU4NCA4NC42IDU4NCAxMDR6TTExMiAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTE2MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNTIgMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTc2LTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMTc0LjMgMCAxOTJsMCA5NmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwIDAgNjQtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtNjQgMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwIDAtMTc2eiJdfSxsUz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbInJvdGF0ZS1iYWNrIiwicm90YXRlLWJhY2t3YXJkIiwidW5kby1hbHQiXSwiZjJlYSIsIk0yNCAxOTJsMTQ0IDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00Ni43LTQ2LjdjNzUuMy01OC42IDE4NC4zLTUzLjMgMjUzLjUgMTUuOSA3NSA3NSA3NSAxOTYuNSAwIDI3MS41cy0xOTYuNSA3NS0yNzEuNSAwYy0xMC4yLTEwLjItMTktMjEuMy0yNi40LTMzLTkuNS0xNC45LTI5LjMtMTkuMy00NC4yLTkuOHMtMTkuMyAyOS4zLTkuOCA0NC4yQzQ5LjcgNDA4LjcgNjEuNCA0MjMuNSA3NSA0MzcgMTc1IDUzNyAzMzcgNTM3IDQzNyA0MzdTNTM3IDE3NSA0MzcgNzVDMzQyLjgtMTkuMyAxOTMuMy0yNC43IDkyLjcgNTguOEw0MSA3QzM0LjEgLjIgMjMuOC0xLjkgMTQuOCAxLjhTMCAxNC4zIDAgMjRMMCAxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjR6Il19LGhpYT1sUyxmaWE9bFMsbWlhPWxTLFJ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkaW5nIixpY29uOls0NDgsNTEyLFsiaGVhZGVyIl0sImYxZGMiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMTEyIDIyNCAwIDAtMTEyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDMyMCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNDQtMjI0IDAgMCAxNDQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMzIwLTE2IDBDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sZ2lhPVJ5ZSxiaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3Jvc3NoYWlycyIsaWNvbjpbNTc2LDUxMixbXSwiZjA1YiIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEzMS4yIDI4OGMxMi43IDYyLjcgNjIuMSAxMTIuMSAxMjQuOCAxMjQuOGwwLTEyLjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDEyLjhjNjIuNy0xMi43IDExMi4xLTYyLjEgMTI0LjgtMTI0LjhMNDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMi44IDBDNDMyLjEgMTYxLjMgMzgyLjcgMTExLjkgMzIwIDk5LjJsMCAxMi44YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTIuOEMxOTMuMyAxMTEuOSAxNDMuOSAxNjEuMyAxMzEuMiAyMjRsMTIuOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMi44IDB6TTI4OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSx2aWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW5vZGVzIixpY29uOls1MTIsNTEyLFtdLCJlNGUyIiwiTTQxOC40IDE1Ny45YzM1LjMtOC4zIDYxLjYtNDAgNjEuNi03Ny45IDAtNDQuMi0zNS44LTgwLTgwLTgwLTQzLjQgMC03OC43IDM0LjUtODAgNzcuNUwxMzYuMiAxNTEuMUMxMjEuNyAxMzYuOCAxMDEuOSAxMjggODAgMTI4IDM1LjggMTI4IDAgMTYzLjggMCAyMDhzMzUuOCA4MCA4MCA4MGMxMi4yIDAgMjMuOC0yLjcgMzQuMS03LjZMMjU5LjcgNDA3LjhjLTIuNCA3LjYtMy43IDE1LjgtMy43IDI0LjIgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTI3LjctMTQtNTIuMS0zNS40LTY2LjRsMzcuOC0yMDcuN3pNMTU2LjMgMjMyLjJjMi4yLTYuOSAzLjUtMTQuMiAzLjctMjEuN2wxODMuOC03My41YzMuNiAzLjUgNy40IDYuNyAxMS42IDkuNUwzMTcuNiAzNTQuMWMtNS41IDEuMy0xMC44IDMuMS0xNS44IDUuNUwxNTYuMyAyMzIuMnoiXX0seGlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1yZXN0b3JlIixpY29uOls1NzYsNTEyLFtdLCJmMmQyIiwiTTUxMiA5NkwxNjAgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTQ4IDAgMC02NCA0OCAwIDAtMTkyek0wIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0em02NCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSx5aWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiciIsaWNvbjpbMzIwLDUxMixbMTE0XSwiNTIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDk1LjMgMCAxMDIuNCAxNDYuNGMxMC4xIDE0LjUgMzAuMSAxOCA0NC42IDcuOXMxOC0zMC4xIDcuOS00NC42TDIzMC4xIDMwOS41QzI4Mi44IDI4OC4xIDMyMCAyMzYuNCAzMjAgMTc2IDMyMCA5Ni41IDI1NS41IDMyIDE3NiAzMkwzMiAzMnpNMTc2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6Il19LHdpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXItY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlMTdiIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzIuNSAyLjUgNS4zIDQuNSA4LjMgNi0yMS4yLTMwLjktMzMuNi02OC4zLTMzLjYtMTA4LjYgMC05OS40IDc1LjUtMTgxLjEgMTcyLjMtMTkxbDkwLjQtOTAuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxraWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ29wdXJhbSIsaWNvbjpbNTEyLDUxMixbXSwiZjY2NCIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDggMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEzNmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC00OCAwIDAtMjI0LTMyIDAgMC0xMjgtNDggMCAwIDEyOCAzMiAwIDAgMjI0LTIyNCAwIDAtMjI0IDMyIDAgMC0xMjgtNDggMCAwIDEyOC0zMiAwIDAgMjI0LTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhMOTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMDggNDAwbDAgNjQgOTYgMCAwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek0yNTYgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzIgNjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxTaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLW1pbnVzIixpY29uOls1NzYsNTEyLFtdLCJlNGZmIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjI0IDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xMjggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZ6Il19LF9pYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLW9mLWxpZmUiLGljb246WzUxMiw1MTIsW10sImY2MjEiLCJNMjA4LjUgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0MC45IDEyMi03MC40YzE1LjMtOC44IDM0LjktMy42IDQzLjcgMTEuN2wxNiAyNy43YzguOCAxNS4zIDMuNiAzNC45LTExLjcgNDMuN2wtMTIyIDcwLjQgMTIyIDcwLjRjMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN2wtMTYgMjcuN2MtOC44IDE1LjMtMjguNCAyMC42LTQzLjcgMTEuN2wtMTIyLTcwLjQgMCAxNDAuOWMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNDAuOS0xMjIgNzAuNGMtMTUuMyA4LjgtMzQuOSAzLjYtNDMuNy0xMS43bC0xNi0yNy43Yy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjdsMTIyLTcwLjQtMTIyLTcwLjRjLTE1LjMtOC44LTIwLjUtMjguNC0xMS43LTQzLjdsMTYtMjcuN2M4LjgtMTUuMyAyOC40LTIwLjUgNDMuNy0xMS43bDEyMiA3MC40IDAtMTQwLjl6Il19LE95ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXNpbmVzcy10aW1lIixpY29uOls2NDAsNTEyLFsiYnJpZWZjYXNlLWNsb2NrIl0sImY2NGEiLCJNMjY0IDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwLTgwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMzA1IDBjMzMuOC0yOS45IDc4LjMtNDggMTI3LTQ4IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNGMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDI2NCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptODAgMjk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTE5MiAwIDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5My40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTE2LjYgMi4xLTMyLjcgNi00OGwtMjIgMHptMzUyIDQ4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQ5NiAzMjBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxNaWE9T3llLHppYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWV4dGluZ3Vpc2hlciIsaWNvbjpbNTEyLDUxMixbMTI5NTE5XSwiZjEzNCIsIk01MTIgMzJjMC05LjYtNC4zLTE4LjctMTEuNy0yNC43UzQ4My4xLTEuMyA0NzMuNyAuNmwtMTYwIDMyQzMwMS41IDM1LjEgMjkyIDQ0LjMgMjg5IDU2bC02NSAwIDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjguNGMtNTUuMyAxMi4zLTEwMS4zIDQ5LjUtMTI1LjUgOTkuMS01LjggMTEuOS0uOSAyNi4zIDExLjEgMzIuMXMyNi4zIC45IDMyLjEtMTEuMUM2MiAxNDYuOSA5MS44IDEyMS4xIDEyOCAxMTBsMCAyOC44Yy0zNy44IDE4LTY0IDU2LjUtNjQgMTAxLjJsMCAxMjggMjI0IDAgMC0xMjhjMC00NC43LTI2LjItODMuMi02NC0xMDEuMmwwLTM0LjggNjUgMGMzIDExLjcgMTIuNSAyMC45IDI0LjcgMjMuNGwxNjAgMzJjOS40IDEuOSAxOS4xLS42IDI2LjYtNi42UzUxMiAxMzcuNiA1MTIgMTI4bDAtOTZ6TTI4OCA0NDhsMC0zMi0yMjQgMCAwIDMyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDk2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjR6Il19LEZ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWRvd24iXSwiZjE3NSIsIk0xMzcuNCA1MzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiA0MzQuNyAxOTIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxMjgtMTcuNyAxMjggMGwwIDQzNC43LTczLjQtNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOHoiXX0sQ2lhPUZ5ZSxUaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1taW51cyIsaWNvbjpbNjQwLDUxMixbXSwiZjUwMyIsIk0yODUuNyAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzcuNyA1MTJDNjEuMyA1MTIgNDggNDk4LjcgNDggNDgyLjMgNDggMzgzLjggMTI3LjggMzA0IDIyNi4zIDMwNGw1OS40IDB6TTI1NiAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0zNDQtOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE0NCAweiJdfSwkaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktY2hlY2siLGljb246WzUxMiw1MTIsW10sImY1M2MiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHpNOTYgMzEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTI0LTEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjcyIDB6Il19LEJ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1sYXB0b3AiLGljb246WzY0MCw1MTIsWyJsYXB0b3AtaG91c2UiXSwiZTA2NiIsIk00NDggMjQwbDE5LjkgMGMxNS41IDAgMjguMS0xMi42IDI4LjEtMjguMSAwLTcuNi0zLjEtMTQuOS04LjYtMjAuMkwyODMuNS00LjlDMjc2LjEtMTIgMjY2LjMtMTYgMjU2LTE2cy0yMC4xIDQtMjcuNSAxMS4xTDI0LjYgMTkxLjdDMTkuMSAxOTcgMTYgMjA0LjMgMTYgMjExLjkgMTYgMjI3LjQgMjguNiAyNDAgNDQuMSAyNDBsMTkuOSAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg1LjcgMGM3LjQtNi42IDE2LjQtMTEuNCAyNi4zLTE0bDAtMTMwYzAtNS41IC43LTEwLjkgMi0xNmwtMTAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjQgMTQ0IDB6TTM1MiAzNTJsMTYwIDAgMCAxMjgtMTYwIDAgMC0xMjh6bS02NC0zMmwwIDE2MC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LERpYT1CeWUsTGlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvd25sb2FkIixpY29uOls0NDgsNTEyLFtdLCJmMDE5IiwiTTI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIxMC43LTQxLjQtNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjU2IDI0Mi43IDI1NiAzMnpNNjQgMzIwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ2LjkgMC01Ni42IDU2LjZjLTMxLjIgMzEuMi04MS45IDMxLjItMTEzLjEgMEwxMTAuOSAzMjAgNjQgMzIwem0zMDQgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxFaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2FnaXR0YXJpdXMiLGljb246WzQ0OCw1MTIsW10sImU4NGQiLCJNNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuOC0xNDYuOCAxNDYuOCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjJzLTMyLjggMTIuNS00NS4zIDBMMTkyIDMzMy4zIDU0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMiAwcy0xMi41LTMyLjggMC00NS4yTDE0Ni44IDI4OCAxMDUuNCAyNDYuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjJzMzIuOC0xMi41IDQ1LjIgMEwxOTIgMjQyLjggMzM4LjggOTYgMjU2IDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAweiJdfSxQaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY291Y2giLGljb246WzY0MCw1MTIsW10sImY0YjgiLCJNMTQ0IDI3MkMxNDQgMjI0LjcgMTA5LjggMTg1LjQgNjQuOCAxNzcuNSA3MiAxMTMuNiAxMjYuMiA2NCAxOTIgNjRsMjU2IDBjNjUuOCAwIDEyMCA0OS42IDEyNy4yIDExMy41LTQ1IDgtNzkuMiA0Ny4yLTc5LjIgOTQuNWwwIDMyLTM1MiAwIDAtMzJ6TTAgMzg0TDAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MCA0NDggMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NHoiXX0sSWlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTU2NyIsIk0yNTYgMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMMzMuNCA0MjAuNUMyNS45IDQ1MC43IDQ4LjggNDgwIDgwIDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgNi4xIDAgMTEuOCAxLjcgMTYuNyA0LjcgMi44LTIzLjkgMTQuMy00NS4xIDMxLjQtNjAuM2wwLTI0LjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNi4yIDAgMTIuNCAuNCAxOC40IDEuM0w0NTguNSA4MC42QzQ1MS40IDUyLjEgNDI1LjggMzIgMzk2LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTc2IDgwLjFsMCA0Ny45LTY0IDAgMC00Ny45YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTM1MiA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6Il19LEh5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbOTk4NCw5OTg2LDk5ODgsImN1dCJdLCJmMGM0IiwiTTE5MiAyNTZsLTM5LjUgMzkuNWMtMTIuNi00LjktMjYuMi03LjUtNDAuNS03LjUtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJzNTAuMSAxMTIgMTEyIDExMiAxMTItNTAuMSAxMTItMTEyYzAtMTQuMy0yLjctMjcuOS03LjUtNDAuNUw0OTkuMiA3Ni44YzcuMS03LjEgNy4xLTE4LjUgMC0yNS42LTI4LjMtMjguMy03NC4xLTI4LjMtMTAyLjQgMEwyNTYgMTkyIDIxNi41IDE1Mi41YzQuOS0xMi42IDcuNS0yNi4yIDcuNS00MC41IDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzAgNTAuMSAwIDExMiA1MC4xIDIyNCAxMTIgMjI0YzE0LjMgMCAyNy45LTIuNyA0MC41LTcuNUwxOTIgMjU2em05Ny45IDk3LjlMMzk2LjggNDYwLjhjMjguMyAyOC4zIDc0LjEgMjguMyAxMDIuNCAwIDcuMS03LjEgNy4xLTE4LjUgMC0yNS42bC0xNDUuMy0xNDUuMy02NCA2NHpNNjQgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQ4IDI0MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LEFpYT1IeWUsZXY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVnIixpY29uOls1NzYsNTEyLFtdLCJmMTg4IiwiTTE5MiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40bC0xMzUuMSAwYy0xNS43IDAtMjguNC0xMi43LTI4LjQtMjguNGwwLTMuNnptMzQ1LjYgMTIuOGMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhsLTk3LjggNzMuM2M1LjMgOC45IDkuMyAxOC43IDExLjggMjkuMWw5OC44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCAzMmMwIDIuNi0uMSA1LjMtLjIgNy45bDgzLjQgNjIuNWMxNC4xIDEwLjYgMTcgMzAuNyA2LjQgNDQuOHMtMzAuNyAxNy00NC44IDYuNGwtNjMuMS00Ny4zYy0yMy4yIDQ0LjItNjYuNSA3Ni4yLTExNy43IDgzLjlMMzEyIDI4MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIzMC4yYy01MS4yLTcuNy05NC41LTM5LjctMTE3LjctODMuOUw4My4yIDQ3My42Yy0xNC4xIDEwLjYtMzQuMiA3LjctNDQuOC02LjRzLTcuNy0zNC4yIDYuNC00NC44bDgzLjQtNjIuNWMtLjEtMi42LS4yLTUuMi0uMi03LjlsMC0zMi05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk4LjggMGMyLjUtMTAuNCA2LjUtMjAuMiAxMS44LTI5LjFMNDQuOCAxNTMuNmMtMTQuMS0xMC42LTE3LTMwLjctNi40LTQ0LjhzMzAuNy0xNyA0NC44LTYuNEwxOTIgMTg0YzEyLjMtNS4xIDI1LjgtOCA0MC04bDExMiAwYzE0LjIgMCAyNy43IDIuOCA0MCA4bDEwOC44LTgxLjZjMTQuMS0xMC42IDM0LjItNy43IDQ0LjggNi40eiJdfSxxeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtZnJvbS1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1vdXQiXSwiZjA4YiIsIk0xNjAgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMzJDNDMgMzIgMCA3NSAwIDEyOEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6TTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMTkyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMTAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxOaWE9cXllLFJpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGFuZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmNyIsIk00NjYuOCAxODYuNWw0Mi41LTQyLjUgMzQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMjIzLjYgMTZjLTI5IDAtNTcuMyA5LjMtODAuNyAyNi41TDE2LjMgMTM1LjhjLTE3LjggMTMuMS0yMS42IDM4LjEtOC41IDU1LjlzMzguMSAyMS42IDU1LjkgOC41TDE4My40IDExMiAyOTYgMTEyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE1Mi4yIDBjMzMuOSAwIDY2LjUtMTMuNSA5MC41LTM3LjV6bS0zNTcuNSAxMzlMNjYuNyAzNjggMzIgMzY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDAwIDI4MCA0MDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LE9pYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdHJvb3B3YWZlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjU1MSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0zMTIuNiA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyNTYgOTcuNiAyMjIuMSA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDMzLjkgMzMuOS00NS4zIDQ1LjMtNTYuNi01Ni42Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDU2LjYgNTYuNi00NS4zIDQ1LjMtMzMuOS0zMy45Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42TDk3LjYgMjU2IDYzLjcgMjg5LjljLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMy45LTMzLjkgNDUuMyA0NS4zLTU2LjYgNTYuNmMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDU2LjYtNTYuNiA0NS4zIDQ1LjMtMzMuOSAzMy45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTMzLjktMzMuOSA0NS4zLTQ1LjMgNTYuNiA1Ni42YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTYuNi01Ni42IDQ1LjMtNDUuMyAzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTMzLjkgMzMuOS00NS4zLTQ1LjMgNTYuNi01Ni42YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTU2LjYgNTYuNi00NS4zLTQ1LjMgMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42ek0xNDIuOSAyNTZsNDUuMy00NS4zIDQ1LjMgNDUuMy00NS4zIDQ1LjMtNDUuMy00NS4zem02Ny45IDY3LjlsNDUuMy00NS4zIDQ1LjMgNDUuMy00NS4zIDQ1LjMtNDUuMy00NS4zek0yNzguNiAyNTZsNDUuMy00NS4zIDQ1LjMgNDUuMy00NS4zIDQ1LjMtNDUuMy00NS4zem0yMi42LTY3LjlsLTQ1LjMgNDUuMy00NS4zLTQ1LjMgNDUuMy00NS4zIDQ1LjMgNDUuM3oiXX0sRmlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkIixpY29uOlszMjAsNTEyLFtdLCJmMWFlIiwiTTk2IDY0QTY0IDY0IDAgMSAxIDIyNCA2NCA2NCA2NCAwIDEgMSA5NiA2NHptNDggMzIwbDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMODAgMjg3LjggNTkuMSAzMjFjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMFMtNC41IDMwMS45IDQuOSAyODdsMzkuOS02My4zQzY5LjcgMTg0IDExMy4yIDE2MCAxNjAgMTYwczkwLjMgMjQgMTE1LjIgNjMuNkwzMTUuMSAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBMMjQwIDI4Ny44IDI0MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0zMiAweiJdfSxCaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNlLWNyZWFtIixpY29uOlszODQsNTEyLFsxMjc4NDhdLCJmODEwIiwiTTMzNS4xIDE2MGMuNi01LjMgLjktMTAuNiAuOS0xNiAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFM0OCA2NC41IDQ4IDE0NGMwIDUuNCAuMyAxMC43IC45IDE2bC0uOSAwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4bDI4OCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0uOSAwek02NCAzMDRMMTY5LjIgNTI5LjVjNC4xIDguOCAxMyAxNC41IDIyLjggMTQuNXMxOC42LTUuNyAyMi44LTE0LjVMMzIwIDMwNCA2NCAzMDR6Il19LGp5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlci1tb3VzZSIsaWNvbjpbMzg0LDUxMixbMTI4NDMzLCJtb3VzZSJdLCJmOGNjIiwiTTAgMTkybDE2OCAwIDAtMTkyLTggMEM3MS42IDAgMCA3MS42IDAgMTYwbDAgMzJ6bTAgNDhMMCAzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBsNjQgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTExMi0zODQgMHptMzg0LTQ4bDAtMzJDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMGwtOCAwIDAgMTkyIDE2OCAweiJdfSxIaWE9anllLHFpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYXVjZXQiLGljb246WzUxMiw1MTIsW10sImUwMDUiLCJNMTkyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDY0IDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyMi42IDIyLjYgMzIgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MCAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzLTE0LjMtMzItMzItMzJsLTM2LjEgMGMtMjAuMiAyOS01My45IDQ4LTkxLjkgNDhzLTcxLjctMTktOTEuOS00OEwzMiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAyMi42LTIyLjZjNi02IDE0LjEtOS40IDIyLjYtOS40bDE4LjcgMCAwLTY0LTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgNjQgOTYgNjRsOTYgMHoiXX0samlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF3YXJkIixpY29uOls0NDgsNTEyLFtdLCJmNTU5IiwiTTI0NS45LTI1LjljLTEzLjQtOC4yLTMwLjMtOC4yLTQzLjcgMC0yNC40IDE0LjktMzkuNSAxOC45LTY4LjEgMTguMy0xNS43LS40LTMwLjMgOC4xLTM3LjkgMjEuOS0xMy43IDI1LjEtMjQuOCAzNi4yLTQ5LjkgNDkuOS0xMy44IDcuNS0yMi4yIDIyLjItMjEuOSAzNy45IC43IDI4LjYtMy40IDQzLjctMTguMyA2OC4xLTguMiAxMy40LTguMiAzMC4zIDAgNDMuNyAxNC45IDI0LjQgMTguOSAzOS41IDE4LjMgNjguMS0uNCAxNS43IDguMSAzMC4zIDIxLjkgMzcuOSAyMi4xIDEyLjEgMzMuMyAyMi4xIDQ1LjEgNDEuNUw0Mi43IDQ1OC41Yy01LjkgMTEuOS0xLjEgMjYuMyAxMC43IDMyLjJsODYgNDNjMTEuNSA1LjcgMjUuNSAxLjQgMzEuNy05LjhsNTIuOC05NS4xIDUyLjggOTUuMWM2LjIgMTEuMiAyMC4yIDE1LjYgMzEuNyA5LjhsODYtNDNjMTEuOS01LjkgMTYuNy0yMC4zIDEwLjctMzIuMmwtNDguNi05Ny4yYzExLjctMTkuNCAyMy0yOS40IDQ1LjEtNDEuNSAxMy44LTcuNSAyMi4yLTIyLjIgMjEuOS0zNy45LS43LTI4LjYgMy40LTQzLjcgMTguMy02OC4xIDguMi0xMy40IDguMi0zMC4zIDAtNDMuNy0xNC45LTI0LjQtMTguOS0zOS41LTE4LjMtNjguMSAuNC0xNS43LTguMS0zMC4zLTIxLjktMzcuOS0yNS4xLTEzLjctMzYuMi0yNC44LTQ5LjktNDkuOS03LjUtMTMuOC0yMi4yLTIyLjItMzcuOS0yMS45LTI4LjYgLjctNDMuNy0zLjQtNjguMS0xOC4zek0yMjQgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LFZpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJvd25pbmciLGljb246WzY0MCw1MTIsW10sImU1NDUiLCJNMjY0IDg4YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTMzLjkgNjUuNmMxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJsMTAuOSAzMi44YzkuNCAyOC4zIDMzLjIgNDkuNSA2Mi41IDU1LjYgNS42IDEuMiAxMS4zIDEuOCAxNy4xIDEuOGw4OCAwYzE3LjIgMCAzNC4zLTIuOCA1MC42LTguMmwxMTQuNC0zOC4xYzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMnMtMy41IDM0LjktMjAuMiA0MC41TDQyMy43IDIyOC41Yy04LjQgMi44LTE3IDUuMS0yNS43IDYuOWwtMjYuNSA4OC4zYy02LjEgMy40LTEyLjEgNy4zLTE3LjkgMTEuNy0yMi4xIDE2LjYtMjkuMSAxNi42LTUxLjIgMC0yNi4yLTE5LjctNTYuOS0zMC4yLTg3LjgtMzEuM2wyMC4yLTY3LjJjLTUxLjUtMTAuNy05My41LTQ4LjEtMTEwLjItOThsLTEwLjktMzIuOGMtNS42LTE2LjggMy41LTM0LjkgMjAuMi00MC41ek00MDMuNCA0MTIuMUMzNzkuMSA0MzAuMyAzNTEuMSA0NDggMzIwIDQ0OHMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LFVpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1lcmEtcm90YXRlIixpY29uOls1MTIsNTEyLFtdLCJlMGQ4IiwiTTEzOC43IDk2bDEwLjQtMzEuMkMxNTUuNiA0NS4yIDE3My45IDMyIDE5NC42IDMybDEyMi44IDBjMjAuNyAwIDM5IDEzLjIgNDUuNSAzMi44TDM3My4zIDk2IDQ0OCA5NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDc0LjcgMHpNOTYgMzA1LjljMCAzLjkgMS40IDcuNyA0IDEwLjZsNDggNTRjNi40IDcuMiAxNy42IDcuMiAyMy45IDBsNDgtNTRjMi42LTIuOSA0LTYuNyA0LTEwLjZsMC0xLjljMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwYzAtMzkuOCAzMi4yLTcyIDcyLTcyIDQuNCAwIDguNyAuNCAxMi45IDEuMmwzNC45LTM5LjNjLTE0LjYtNi40LTMwLjgtOS45LTQ3LjgtOS45LTY2LjMgMC0xMjAgNTMuNy0xMjAgMTIwbC0yNCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxLjl6bTE5Ni00Ni41Yy0yLjYgMi45LTQgNi43LTQgMTAuNmwwIDEuOWMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGMwIDM5LjgtMzIuMiA3Mi03MiA3Mi00LjQgMC04LjctLjQtMTIuOS0xLjJsLTM0LjkgMzkuM2MxNC43IDYuNCAzMC44IDkuOSA0Ny44IDkuOSA2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEuOWMwLTMuOS0xLjQtNy43LTQtMTAuNmwtNDgtNTRjLTYuNC03LjItMTcuNi03LjItMjMuOSAwbC00OCA1NHoiXX0sVnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1oZWFydHMiLGljb246WzUxMiw1MTIsWzEyODUyNSwiZ3Jpbi1oZWFydHMiXSwiZjU4NCIsIk0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTYgMC0yMy4zLTMuMS00NS45LTguOS02Ny4zIDUuNS0xMy41IDguOS0yOC40IDguOS00NC43IDAtNTMtNDMtOTYtOTYtOTZsLTIuOSAwYy0yLjUgMC01IC4xLTcuNCAuMy00Mi4xLTMwLjQtOTMuOC00OC4zLTE0OS43LTQ4LjNTMTQ4LjQgMTcuOSAxMDYuMyA0OC4zYy0yLjUtLjItNC45LS4zLTcuNC0uM0w5NiA0OGMtNTMgMC05NiA0My05NiA5NiAwIDE2LjMgMy41IDMxLjIgOC45IDQ0LjctNS44IDIxLjQtOC45IDQ0LTguOSA2Ny4zIDAgMTQxLjQgMTE0LjYgMjU2IDI1NiAyNTZ6TTM4Ni43IDMyNC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSA0MDQuMiAxMDUuNyAzNDIuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjIuOSA5NmMxMy41IDAgMjYuNSA1LjQgMzYgMTQuOWw5LjEgOS4xIDkuMS05LjFjOS41LTkuNSAyMi41LTE0LjkgMzYtMTQuOWwyLjkgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDUzLjQtNjYuOSA5NS43LTg5IDEwOC4yLTQuNCAyLjUtOS42IDIuNS0xNCAwLTIyLjEtMTIuNS04OS01NC44LTg5LTEwOC4yIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDIuOSAwem0tMTg4IDE0LjlsOS4xIDkuMSA5LjEtOS4xYzkuNS05LjUgMjIuNS0xNC45IDM2LTE0LjlsMi45IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA1My40LTY2LjkgOTUuNy04OSAxMDguMi00LjQgMi41LTkuNiAyLjUtMTQgMC0yMi4xLTEyLjUtODktNTQuOC04OS0xMDguMiAwLTI2LjUgMjEuNS00OCA0OC00OGwyLjkgMGMxMy41IDAgMjYuNSA1LjQgMzYgMTQuOXoiXX0sV2lhPVZ5ZSxHaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1mcmFnbWVudCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5NyIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI0MCAxMjggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOCAxMTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0zMiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSxLaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXJpZmxlIixpY29uOls0NDgsNTEyLFtdLCJlNTRiIiwiTTEyOCAzOWMwLTEzIDEwLTIzLjggMjIuOS0yNC45TDMwMi43IDEuNEMzMTIgLjcgMzIwIDggMzIwIDE3LjRMMzIwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNkwxNTMgNjRjLTEzLjggMC0yNS0xMS4yLTI1LTI1em0xNy42IDU3bDE1Ni44IDBjMSA1LjIgMS42IDEwLjUgMS42IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtNS41IC42LTEwLjggMS42LTE2em0yMjggMzY0LjNMMzIwIDM2OS43IDMyMCA0ODBjMCAxLjMtLjEgMi41LS4yIDMuOEwxNDUuNSAyMzQuOWMxNi42LTcuMSAzNC42LTEwLjkgNTMuMy0xMC45bDUwLjQgMGMxNS45IDAgMzEuMyAyLjggNDUuOCA3LjlMMzg5LjkgNjcuN2MtNy43LTQuNC0xMC4zLTE0LjItNS45LTIxLjlzMTQuMi0xMC4zIDIxLjktNS45bDI3LjcgMTZjNy43IDQuNCAxMC4zIDE0LjIgNS45IDIxLjlsLTU1LjUgOTYuMSAxLjYgLjljMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN0wzNjAuNyAyODJjMiAyLjggMy45IDUuOCA1LjcgOC44bDc2LjEgMTI4LjhjMTEuMiAxOSA0LjkgNDMuNS0xNC4xIDU0LjhzLTQzLjUgNC45LTU0LjgtMTQuMXpNMjg4IDUxMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEwLjMtNTMuNiA5MC42Yy0xMS4yIDE5LTM1LjggMjUuMy01NC44IDE0LjFTLTUuNyA0MzguNyA1LjYgNDE5LjdMODEuNyAyOTAuOGM5LjQtMTUuOCAyMS43LTI5LjMgMzYtNDBMMjk5LjEgNTEwYy0zLjUgMS4zLTcuMiAyLTExLjEgMnpNMjY0IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFlpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb24iLGljb246WzU3Niw1MTIsW10sImYyMDUiLCJNMTkyIDY0Qzg2IDY0IDAgMTUwIDAgMjU2Uzg2IDQ0OCAxOTIgNDQ4bDE5MiAwYzEwNiAwIDE5Mi04NiAxOTItMTkyUzQ5MCA2NCAzODQgNjRMMTkyIDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LFppYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsdW5ncy12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTA2NyIsIk0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNTEuM2M5LjYtNC44IDIwLjUtNy41IDMyLTcuNXMyMi40IDIuNyAzMiA3LjVMMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NTAuMSA0NTFjOCAxOC4zIDguMSAzOS4yIC4yIDU3LjUgMTAuMiAyLjMgMjAuNiAzLjUgMzEuMiAzLjUgNTIuMiAwIDk0LjUtNDIuMyA5NC41LTk0LjVsMC02LjJjMC0xMTEuMS0zNi43LTIxOS0xMDQuNC0zMDdMNDI4LjkgNDguN2MtOC4xLTEwLjYtMjAuNy0xNi43LTM0LTE2LjctMjMuNyAwLTQyLjkgMTkuMi00Mi45IDQyLjlsMCAxMzkuOWMxLjIgMi4yIDIuMiA0LjYgMy4xIDYuOSAyNi40LTExLjYgNTguMy02LjYgNzkuOSAxNXMyNi42IDUzLjYgMTUgNzkuOUM0NzcgMzI3LjIgNDk2IDM1My4zIDQ5NiAzODMuOHMtMTkgNTYuNy00NS45IDY3LjF6TTIyMC45IDIyMS44Yy45LTIuNCAyLTQuNyAzLjEtNi45bDAtMTM4LjVjMC0yNC41LTE5LjktNDQuNC00NC40LTQ0LjQtMTIuNSAwLTI0LjQgNS4zLTMyLjggMTQuNWwtMjYuNCAyOUM0Mi45IDE2MC44IDAgMjcxLjggMCAzODdsMCAzMC41YzAgNTIuMiA0Mi4zIDk0LjUgOTQuNSA5NC41IDEwLjUgMCAyMS0xLjIgMzEuMi0zLjUtNy45LTE4LjMtNy44LTM5LjMgLjItNTcuNS0yNi45LTEwLjQtNDUuOS0zNi42LTQ1LjktNjcuMXMxOS01Ni43IDQ1LjktNjcuMWMtMTEuNi0yNi40LTYuNi01OC4zIDE1LTc5LjlzNTMuNi0yNi42IDc5LjktMTV6TTE1MiA0MDhjMjguOCAwIDQzLjIgMzQuOCAyMi45IDU1LjItOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzIwLjQtMjAuNCA1NS4yLTUuOSA1NS4yIDIyLjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTI4LjggMzQuOC00My4yIDU1LjItMjIuOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTIwLjQtMjAuNC01LjktNTUuMiAyMi45LTU1LjIgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTI4LjggMC00My4yLTM0LjgtMjIuOS01NS4yIDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTIwLjQgMjAuNC01NS4yIDUuOS01NS4yLTIyLjkgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCAyOC44LTM0LjggNDMuMi01NS4yIDIyLjktOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMyMC40IDIwLjQgNS45IDU1LjItMjIuOSA1NS4yLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTEwNC04MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEhvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS10ZW5uaXMtcGFkZGxlLWJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk1NSwicGluZy1wb25nLXBhZGRsZS1iYWxsIiwidGFibGUtdGVubmlzIl0sImY0NWQiLCJNOTcgMTI3bDY3LjQtNjcuNGMzOC4yLTM4LjIgOTAtNTkuNiAxNDQtNTkuNiAxMTIuNSAwIDIwMy43IDkxLjIgMjAzLjcgMjAzLjYgMCA0Ni40LTE1LjggOTEuMS00NC41IDEyNy0yMy42LTE2LjgtNTIuNC0yNi43LTgzLjUtMjYuNy0zMS4xIDAtNTkuOSA5LjktODMuNCAyNi42TDk3IDEyN3pNMjQwIDQ0OGMwIDkuNyAxIDE5LjEgMi44IDI4LjItMTkuOC01LjItMzgtMTUuNS01Mi43LTMwLjItMTIuMi0xMi4yLTMxLjktMTIuMi00NC4xIDBMOTYuNiA0OTUuNGMtMTAuNiAxMC42LTI1IDE2LjYtNDAgMTYuNi0zMS4yIDAtNTYuNi0yNS4zLTU2LjYtNTYuNiAwLTE1IDYtMjkuNCAxNi42LTQwbDQ5LjQtNDkuNGMxMi4yLTEyLjIgMTIuMi0zMS45IDAtNDQuMS0yMS43LTIxLjctMzMuOS01MS4yLTMzLjktODEuOSAwLTI5LjQgMTEuMS01Ny42IDMxLjEtNzlMMjY2LjYgMzY0LjZDMjQ5LjkgMzg4LjEgMjQwIDQxNi45IDI0MCA0NDh6bTE0NC05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sWGlhPUhvZSxRaWE9SG9lLEppYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3hlcy1wYWNraW5nIixpY29uOls1NzYsNTEyLFtdLCJlNGM3IiwiTTIwOCAwbDgwIDAgMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNTYgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTA4LjggMGM4LjItMTQuMSAxMi44LTMwLjUgMTIuOC00OGwwLTE2MGMxMC0xMy40IDE2LTMwIDE2LTQ4bDAtMzJjMC00NC4yLTM1LjgtODAtODAtODBsLTE3NiAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6TTMyIDMzNmwzMjAgMCAwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OEw4MCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTI4ek00OCAxOTJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGVyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2hhbGtib2FyZCIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZCIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTE3NiA1MTJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM2IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtNDggMTkyIDAgMCAxOTItMTkyIDAgMC0zMi02NCAwIDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzY4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQtMTIyLjcgMGMtNDUuNiAwLTg4LjUgMjEuNi0xMTUuNiA1OC4yTDE0LjMgMjYwLjljLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSx0cmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS10d28iLGljb246WzQ0OCw1MTIsWzk4NTddLCJmNTI4IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0zNTIgMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxVeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtYXJyb3ctbGVmdCIsaWNvbjpbNTEyLDUxMixbODY0NCwiZXhjaGFuZ2UiXSwiZjBlYyIsIk01MDIuNiAxNTAuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDQwMi43IDE2MCAzMiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsMzcwLjcgMC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6bS0zOTcuMyAzNTJsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDEwOS4zIDM1MiA0ODAgMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNzAuNyAwIDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHoiXX0sYXJhPVV5ZSxXeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9vdGJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk0NCwiZm9vdGJhbGwtYmFsbCJdLCJmNDRlIiwiTTI2MS4xIDIyLjZjLTg5IDE4LTE1MC41IDYzLjQtMTkwIDEyMy45LTIzLjMgMzUuNi0zOC4xIDc1LjMtNDYuNyAxMTUuNUwyNTEuOSA0ODkuNGM4OS0xOCAxNTAuNS02My40IDE5MC4xLTEyMy45IDIzLjMtMzUuNiAzOC4xLTc1LjMgNDYuNy0xMTUuNUwyNjEuMSAyMi42em0yMzYgMTY4LjFjMy4yLTQyLjMgLjctODMuMy00LjgtMTE4LjctNC40LTI3LjgtMjYuOC00OC01My4xLTUxLjYtNDMtNS45LTgyLjItNy41LTExNy44LTUuNEw0OTcuMSAxOTAuNnpNMTkxLjcgNDk3LjFMMTUuOSAzMjEuNGMtMy4yIDQyLjMtLjcgODMuMyA0LjggMTE4LjcgNC40IDI3LjggMjYuOCA0OCA1My4xIDUxLjYgNDMgNS45IDgyLjIgNy41IDExNy44IDUuNHpNMjcxLjUgMTQzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptLTY0IDY0YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptLTY0IDY0YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sc3JhPVd5ZSxpcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stbW9uc3RlciIsaWNvbjpbNTc2LDUxMixbXSwiZjYzYiIsIk0zMzYgOTZsNDggNjQtMTI4IDAgMC02NCA4MCAwem0xMjggNjRMMzg3LjIgNTcuNkMzNzUuMSA0MS41IDM1Ni4xIDMyIDMzNiAzMkwyMjQgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYtMTQ0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAxOC4xIDEwLjEgMzMuOSAyNC45IDQyLjEtLjUgNS43IDEuMSAxMS42IDQuNyAxNi40LTMuNyA2LjktNi44IDE0LjEtOSAyMS44LTExLjYgMS43LTIwLjYgMTEuNy0yMC42IDIzLjhsMCAxNmMwIDEyLjEgOC45IDIyLjEgMjAuNiAyMy44IDIuMiA3LjYgNS4zIDE0LjkgOSAyMS44LTcgOS40LTYuMyAyMi44IDIuMyAzMS4zbDExLjMgMTEuM2M4LjYgOC42IDIxLjkgOS4zIDMxLjMgMi4yIDYuOCAzLjcgMTQuMSA2LjggMjEuNyA5IDEuNyAxMS42IDExLjcgMjAuNiAyMy44IDIwLjZsMTYgMGMxMi4xIDAgMjIuMS04LjkgMjMuOC0yMC42IDcuNi0yLjIgMTQuOS01LjMgMjEuNy05IDkuNCA3IDIyLjggNi4zIDMxLjMtMi4ybDExLjMtMTEuM2M4LjYtOC42IDkuMy0yMS45IDIuMy0zMS4zIDMuNy02LjggNi44LTE0LjEgOS0yMS43IDExLjYtMS43IDIwLjYtMTEuNyAyMC42LTIzLjhsMC0xNmMwLTEyLjEtOC45LTIyLjEtMjAuNi0yMy44LTIuMi03LjYtNS4zLTE0LjktOS0yMS43IDIuNC0zLjIgMy45LTYuOCA0LjUtMTAuNWwxMTQuMiAwYy42IDMuNyAyLjEgNy4zIDQuNSAxMC41LTMuNyA2LjktNi44IDE0LjEtOSAyMS44LTExLjYgMS43LTIwLjYgMTEuNy0yMC42IDIzLjhsMCAxNmMwIDEyLjEgOC45IDIyLjEgMjAuNiAyMy44IDIuMiA3LjYgNS4zIDE0LjkgOSAyMS44LTcgOS40LTYuMyAyMi44IDIuMiAzMS4zbDExLjMgMTEuM2M4LjUgOC42IDIxLjkgOS4zIDMxLjMgMi4yIDYuOCAzLjcgMTQuMSA2LjggMjEuNyA5IDEuNyAxMS42IDExLjcgMjAuNiAyMy44IDIwLjZsMTYgMGMxMi4xIDAgMjIuMS04LjkgMjMuOC0yMC42IDcuNi0yLjIgMTQuOS01LjMgMjEuOC05IDkuNCA3IDIyLjggNi4zIDMxLjMtMi4ybDExLjMtMTEuM2M4LjYtOC42IDkuMy0yMS45IDIuMi0zMS4zIDMuNy02LjggNi44LTE0LjEgOS0yMS43IDExLjYtMS43IDIwLjYtMTEuNyAyMC42LTIzLjhsMC0xNmMwLTEyLjEtOC45LTIyLjEtMjAuNi0yMy44LTIuMi03LjYtNS4zLTE0LjktOS0yMS43IDMuNi00LjggNS4yLTEwLjcgNC43LTE2LjQgMTQuOC04LjIgMjQuOS0yMy45IDI0LjktNDIuMWwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek0xMjggMzM2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMjcyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LHJyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhc3RlcmlzayIsaWNvbjpbNDQ4LDUxMixbMTAwMzMsNjE1NDVdLCIyYSIsIk0yMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2OC42IDE0NC04My4xYzE1LjMtOC44IDM0LjktMy42IDQzLjcgMTEuN3MzLjYgMzQuOS0xMS43IDQzLjdMMjg4IDI1NiA0MzIgMzM5LjFjMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN3MtMjguNCAyMC42LTQzLjcgMTEuN0wyNTYgMzExLjQgMjU2IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2OC42LTE0NCA4My4xYy0xNS4zIDguOC0zNC45IDMuNi00My43LTExLjdTLjcgMzQ4IDE2IDMzOS4xTDE2MCAyNTYgMTYgMTcyLjlDLjcgMTY0LTQuNSAxNDQuNSA0LjMgMTI5LjFTMzIuNyAxMDguNiA0OCAxMTcuNEwxOTIgMjAwLjYgMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxxb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS1mdWxsIixpY29uOls2NDAsNTEyLFsxMjgyNjcsImJhdHRlcnkiLCJiYXR0ZXJ5LTUiXSwiZjI0MCIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMzA0IDB6Il19LG9yYT1xb2UsbnJhPXFvZSxscmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtZHJlc3MiLGljb246WzMyMCw1MTIsW10sImU1OWMiLCJNMjI0IDY0QTY0IDY0IDAgMSAwIDk2IDY0IDY0IDY0IDAgMSAwIDIyNCA2NHpNODggNDAwbDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDE2IDAgMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTcuOCAwYzEwLjkgMCAxOC42LTEwLjcgMTUuMi0yMS4xbC0zMS4xLTkzLjQgMjguNyAzNy44YzEwLjcgMTQuMSAzMC44IDE2LjggNDQuOCA2LjJzMTYuOC0zMC43IDYuMi00NC44TDI1NC42IDIwN2MtMjIuNC0yOS42LTU3LjUtNDctOTQuNi00N3MtNzIuMiAxNy40LTk0LjYgNDdMNi41IDI4NC43Yy0xMC43IDE0LjEtNy45IDM0LjIgNi4yIDQ0LjhzMzQuMiA3LjkgNDQuOC02LjJMODYuMiAyODUuNSA1NSAzNzguOUM1MS42IDM4OS4zIDU5LjMgNDAwIDcwLjIgNDAwTDg4IDQwMHoiXX0sR3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcy1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MzcsImtpc3MtYmVhbSJdLCJmNTk3IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgMjg4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxjcmE9R3llLEt5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1jYW4tYXJyb3ctdXAiLGljb246WzQ0OCw1MTIsWyJ0cmFzaC1yZXN0b3JlLWFsdCJdLCJmODJhIiwiTTE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMUMxNDEuMS03LjIgMTUzLjMtMTYgMTY3LjEtMTZ6TTMyIDE0NGwzODQgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0em0yMDkgNzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6Il19LGRyYT1LeWUsdXJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbnQiLGljb246WzUxMiw1MTIsW10sImYwMzEiLCJNMjg1LjEgNTAuN0MyNzkuOSAzOS4zIDI2OC41IDMyIDI1NiAzMnMtMjMuOSA3LjMtMjkuMSAxOC43TDU5LjUgNDE2IDQ4IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02LjEgMCAyMi00OCAyMDguMyAwIDIyIDQ4LTYuMSAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTExLjUgMC0xNjcuNC0zNjUuM3pNMzMwLjggMzA0TDE4MS4yIDMwNCAyNTYgMTQwLjggMzMwLjggMzA0eiJdfSxwcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZS1ob2xlIixpY29uOls1MTIsNTEyLFtdLCJlNGMzIiwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIzMi42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0yMy43LTEyLjktNDQuNC0zMi01NS40TDI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMCAzODRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNDRjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMTQ0IDM4MS45IDE0NCAzMjBsMC0xNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzg0eiJdfSxocmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMtY292aWQiLGljb246WzUxMiw1MTIsW10sImU0YTgiLCJNMTkyIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCAzMy42YzMwLjcgNC4yIDU4LjggMTYuMyA4Mi4zIDM0LjFMMzg2LjEgOTIgMzc0LjggODAuNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjYgNTYuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0xMS4zLTExLjMtMjMuOCAyMy44YzE3LjkgMjMuNSAyOS45IDUxLjcgMzQuMSA4Mi4zbDMzLjYgMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE2LTMzLjYgMGMtNC4yIDMwLjctMTYuMyA1OC44LTM0LjEgODIuM2wyMy44IDIzLjggMTEuMy0xMS4zYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNTYuNiA1Ni42Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDExLjMtMTEuMy0yMy44LTIzLjhjLTIzLjUgMTcuOS01MS43IDI5LjktODIuMyAzNC4xbDAgMzMuNiAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0zMy42Yy0zMC43LTQuMi01OC44LTE2LjMtODIuMy0zNC4xbC0yMy44IDIzLjggMTEuMyAxMS4zYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNDYuNyA0MDguN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExLjMgMTEuMyAyMy44LTIzLjhDOTcuOSAzMzguOCA4NS44IDMxMC43IDgxLjYgMjgwbC0zMy42IDAgMCAxNmMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDMwOS4zIDAgMjk2bDAtODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE2IDMzLjYgMGM0LjItMzAuNyAxNi4zLTU4LjggMzQuMS04Mi4zTDkyIDEyNS45IDgwLjYgMTM3LjJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTYuNi01Ni42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwxMjUuOSA5MiAxNDkuNyAxMTUuN2MyMy41LTE3LjkgNTEuNy0yOS45IDgyLjMtMzQuMWwwLTMzLjYtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTMyIDIwMGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGZyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBkZiIsaWNvbjpbNTc2LDUxMixbXSwiZjFjMSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDgwIDAgMC0xMTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTc2IDAgMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNMjQwIDM4MGMtMTEgMC0yMCA5LTIwIDIwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMjggMTIgMGMzMy4xIDAgNjAtMjYuOSA2MC02MHMtMjYuOS02MC02MC02MGwtMzIgMHptMzIgODBsLTEyIDAgMC00MCAxMiAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMHptOTYtODBjLTExIDAtMjAgOS0yMCAyMGwwIDEyOGMwIDExIDkgMjAgMjAgMjBsMzIgMGMyOC43IDAgNTItMjMuMyA1Mi01MmwwLTY0YzAtMjguNy0yMy4zLTUyLTUyLTUybC0zMiAwem0yMCAxMjhsMC04OCAxMiAwYzYuNiAwIDEyIDUuNCAxMiAxMmwwIDY0YzAgNi42LTUuNCAxMi0xMiAxMmwtMTIgMHptODgtMTA4bDAgMTI4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNDQgMjggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI4IDAgMC0yNCAyOCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNDggMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxtcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZ3VhZ2UiLGljb246WzU3Niw1MTIsW10sImYxYWIiLCJNMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOS42IDAtOC40IDIzLjFjLTE2LjQgNDUuMi00MS4xIDg2LjUtNzIuMiAxMjIgMTQuMiA4LjggMjkgMTYuNiA0NC40IDIzLjVsNTAuNCAyMi40IDYyLjItMTQwYzUuMS0xMS42IDE2LjYtMTkgMjkuMi0xOXMyNC4xIDcuNCAyOS4yIDE5bDEyOCAyODhjNy4yIDE2LjItLjEgMzUuMS0xNi4yIDQyLjJzLTM1LjEtLjEtNDIuMi0xNi4ybC0yMC00NS0xNTcuNSAwLTIwIDQ1Yy03LjIgMTYuMi0yNi4xIDIzLjQtNDIuMiAxNi4ycy0yMy40LTI2LjEtMTYuMi00Mi4ybDM5LjgtODkuNS01MC40LTIyLjRjLTIzLTEwLjItNDUtMjIuNC02NS44LTM2LjQtMjEuMyAxNy4yLTQ0LjYgMzIuMi02OS41IDQ0LjdMNzguMyAzODAuNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOWwzNC41LTE3LjNjMTYuMy04LjIgMzEuOC0xNy43IDQ2LjQtMjguMy0xMy44LTEyLjctMjYuOC0yNi40LTM4LjktNDAuOUw4MS42IDIyNC43Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsMTAuMiAxMi4yYzExLjUgMTMuOSAyNC4xIDI2LjggMzcuNCAzOC43IDI3LjUtMzAuNCA0OS4yLTY2LjEgNjMuNS0xMDUuNGwuNS0xLjItMjEwLjMgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGw5NiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQxNiAyNzAuOEwzNjUuNyAzODQgNDY2LjMgMzg0IDQxNiAyNzAuOHoiXX0sWXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1oYWx2ZWQiLGljb246WzUxMiw1MTIsWyJzaGllbGQtYWx0Il0sImYzZWQiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAwem0wIDY2LjhsMCAzNzguMWMxMzgtNjYuOCAxNzUuMS0yMTQuOCAxNzYtMzAzLjRsLTE3Ni03NC42IDAgMHoiXX0sZ3JhPVl5ZSxicmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtdXAiLGljb246WzMyMCw1MTIsW10sImYwZDgiLCJNMTQwLjMgMTM1LjJjMTIuNi0xMC4zIDMxLjEtOS41IDQyLjggMi4ybDEyOCAxMjhjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzAxLjQgMzIwIDI4OC41IDMyMGwtMjU2IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhTLjcgMjc0LjUgOS45IDI2NS40bDEyOC0xMjggMi40LTIuMnoiXX0sWnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcGVuIixpY29uOls2NDAsNTEyLFsxMjgyMjEsImZpbGUtZWRpdCJdLCJmMzFjIiwiTTEyOC4xIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0Ni4yIDAgMTAuOS01NC41YzQuMy0yMS43IDE1LTQxLjYgMzAuNi01Ny4ybDEzMi4yLTEzMi4yIDAtOTcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzMjIuOCAxOC43QzMxMC44IDYuNyAyOTQuNSAwIDI3Ny42IDBMMTI4LjEgMHpNMzg5LjYgMTc2bC05My41IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOTMuNSAxMTcuNSAxMTcuNXpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44eiJdfSx2cmE9WnllLFh5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYmlraW5nIixpY29uOls1NzYsNTEyLFsxMjg2OTIsImJpa2luZyJdLCJmODRhIiwiTTM2OCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTI3LjIgNjRsLTYxLjgtNDguOGMtMTcuMy0xMy42LTQxLjctMTMuOC01OS4xLS4zbC04My4xIDY0LjJjLTMwLjcgMjMuOC0yOC41IDcwLjggNC4zIDkxLjZMMjU2IDMwNS4xIDI1NiA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOGMwLTEwLjctNS4zLTIwLjctMTQuMi0yNi42TDI2MyAyMzIuOSAzMjMuMyAxODQuNCAzNjQgMjE3YzUuNyA0LjUgMTIuNyA3IDIwIDdsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTIuOCAwek0xMTIgNTEyYTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHptMzUyIDBhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0eiJdfSx4cmE9WHllLFF5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLW9wZW4tcmVhZGVyIixpY29uOls1MTIsNTEyLFsiYm9vay1yZWFkZXIiXSwiZjVkYSIsIk0yNTYgMTUyYTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMSAwIDAgMTc2em0wIDI5OC43bDAtMTQ5LjNjMTYuMy02LjggMzIuOS0xMy43IDQ5LjctMjAuNyAzOS0xNi4yIDgwLjgtMjQuNiAxMjMuMS0yNC42bDE5LjIgMCAwIDE2MC0xOS4yIDBjLTU5LjEgMC0xMTcuNyAxMS43LTE3Mi4zIDM0LjVsLS41IC4yek0yNTYgMjMybC0yNS4xLTEwLjVDMTg0LjEgMjAyIDEzMy45IDE5MiA4My4yIDE5Mkw0OCAxOTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1LjIgMGM1MC43IDAgMTAwLjkgMTAgMTQ3LjcgMjkuNWwxMi44IDUuM2M3LjkgMy4zIDE2LjcgMy4zIDI0LjYgMGwxMi44LTUuM2M0Ni44LTE5LjUgOTctMjkuNSAxNDcuNy0yOS41bDM1LjIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNUwyNTYgMjMyeiJdfSx5cmE9UXllLHdyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzcy13YXRlci1kcm9wbGV0IixpY29uOlszODQsNTEyLFtdLCJlNGY1IiwiTTMyIDBDMjMuMSAwIDE0LjYgMy43IDguNiAxMC4yUy0uNiAyNS40IC4xIDM0LjNMMjguOSA0MzcuN2MzIDQxLjkgMzcuOCA3NC4zIDc5LjggNzQuM2wxNjYuNiAwYzQyIDAgNzYuOC0zMi40IDc5LjgtNzQuM0wzODMuOSAzNC4zYy42LTguOS0yLjQtMTcuNi04LjUtMjQuMVMzNjAuOSAwIDM1MiAwTDMyIDB6TTgzIDI5Ny41TDY2LjQgNjQgMzE3LjYgNjQgMzAxIDI5Ny41IDI4OCAzMDRjLTIwLjEgMTAuMS00My45IDEwLjEtNjQgMHMtNDMuOS0xMC4xLTY0IDAtNDMuOSAxMC4xLTY0IDBsLTEzLTYuNXpNMjU2IDE5NmMwLTI0LTMzLjctNzAuMS01Mi4yLTkzLjUtNi4xLTcuNy0xNy41LTcuNy0yMy42IDAtMTguNSAyMy40LTUyLjIgNjkuNS01Mi4yIDkzLjUgMCAzMy4xIDI4LjcgNjAgNjQgNjBzNjQtMjYuOSA2NC02MHoiXX0sSnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLWJyb2FkY2FzdCIsaWNvbjpbNTc2LDUxMixbImJyb2FkY2FzdC10b3dlciJdLCJmNTE5IiwiTTg3LjkgMTEuNWMtMTEuMy02LjktMjYuMS0zLjItMzMgOC4xLTI0LjggNDEtMzkgODkuMS0zOSAxNDAuNHMxNC4yIDk5LjQgMzkgMTQwLjRjNi45IDExLjMgMjEuNiAxNSAzMyA4LjFzMTUtMjEuNiA4LjEtMzNDNzUuNyAyNDEuOSA2NCAyMDIuMyA2NCAxNjBTNzUuNyA3OC4xIDk2LjEgNDQuNGM2LjktMTEuMyAzLjItMjYuMS04LjEtMzN6bTQwMC4xIDBjLTExLjMgNi45LTE1IDIxLjYtOC4xIDMzIDIwLjQgMzMuNyAzMi4xIDczLjMgMzIuMSAxMTUuNnMtMTEuNyA4MS45LTMyLjEgMTE1LjZjLTYuOSAxMS4zLTMuMiAyNi4xIDguMSAzM3MyNi4xIDMuMiAzMy04LjFjMjQuOC00MSAzOS04OS4xIDM5LTE0MC40UzU0NS44IDYwLjYgNTIxIDE5LjZjLTYuOS0xMS4zLTIxLjYtMTUtMzMtOC4xek0zMjAgMjE1LjRjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNCAwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDIzLjcgMTIuOSA0NC40IDMyIDU1LjRMMjU2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjY0LjZ6TTE4MC4yIDkxYzcuMi0xMS4yIDMuOS0yNi03LjItMzMuMnMtMjYtMy45LTMzLjIgNy4yYy0xNy42IDI3LjQtMjcuOCA2MC0yNy44IDk1czEwLjIgNjcuNiAyNy44IDk1YzcuMiAxMS4yIDIyIDE0LjQgMzMuMiA3LjJzMTQuNC0yMiA3LjItMzMuMmMtMTIuOC0xOS45LTIwLjItNDMuNi0yMC4yLTY5czcuNC00OS4xIDIwLjItNjl6TTQzNi4yIDY1Yy03LjItMTEuMi0yMi0xNC40LTMzLjItNy4ycy0xNC40IDIyLTcuMiAzMy4yYzEyLjggMTkuOSAyMC4yIDQzLjYgMjAuMiA2OXMtNy40IDQ5LjEtMjAuMiA2OWMtNy4yIDExLjItMy45IDI2IDcuMiAzMy4yczI2IDMuOSAzMy4yLTcuMmMxNy42LTI3LjQgMjcuOC02MCAyNy44LTk1cy0xMC4yLTY3LjYtMjcuOC05NXoiXX0sa3JhPUp5ZSxld2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWluaW1pemUiLGljb246WzUxMiw1MTIsWyJjb21wcmVzcy1hcnJvd3MtYWx0Il0sImY3OGMiLCJNNDU2IDIyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMlMzMjIuMSAzMi4yIDMyOSAzOWw0MCA0MCA3My40LTczLjRDNDQ2IDIgNDUwLjkgMCA0NTYgMHMxMCAyIDEzLjcgNS43bDM2LjcgMzYuN0M1MTAgNDYgNTEyIDUwLjkgNTEyIDU2cy0yIDEwLTUuNyAxMy43TDQzMyAxNDMgNDczIDE4M2M2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzQ2NS43IDIyNCA0NTYgMjI0em0wIDY0YzkuNyAwIDE4LjUgNS44IDIyLjIgMTQuOHMxLjcgMTkuMy01LjIgMjYuMmwtNDAgNDAgNzMuNCA3My40YzMuNiAzLjYgNS43IDguNSA1LjcgMTMuN3MtMiAxMC01LjcgMTMuN2wtMzYuNyAzNi43QzQ2NiA1MTAgNDYxLjEgNTEyIDQ1NiA1MTJzLTEwLTItMTMuNy01LjdMMzY5IDQzMyAzMjkgNDczYy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzI4OCA0NjUuNyAyODggNDU2bDAtMTQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE0NCAwem0tMjU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNDAtNDAtNzMuNCA3My40QzY2IDUxMCA2MS4xIDUxMiA1NiA1MTJzLTEwLTItMTMuNy01LjdMNS43IDQ2OS43QzIgNDY2IDAgNDYxLjEgMCA0NTZzMi0xMCA1LjctMTMuN0w3OSAzNjkgMzkgMzI5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzQ2LjMgMjg4IDU2IDI4OGwxNDQgMHpNNTYgMjI0Yy05LjcgMC0xOC41LTUuOC0yMi4yLTE0LjhTMzIuMiAxODkuOSAzOSAxODNMNzkgMTQzIDUuNyA2OS43QzIgNjYgMCA2MS4xIDAgNTZTMiA0NiA1LjcgNDIuM0w0Mi4zIDUuN0M0NiAyIDUwLjkgMCA1NiAwUzY2IDIgNjkuNyA1LjdMMTQzIDc5IDE4MyAzOWM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzIyNCA0Ni4zIDIyNCA1NmwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNEw1NiAyMjR6Il19LFNyYT1ld2UsX3JhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0LXRvLWNpdHkiLGljb246WzY0MCw1MTIsW10sImU0YjMiLCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI1NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQxNnptNjQgNjRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzUyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNzYtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNTEyIDMzNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNTMgMTY3bDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMHoiXX0sTXJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcC1tZWRpY2FsIixpY29uOls2NDAsNTEyLFtdLCJmODEyIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwLTY0IDAgMC0yNDAtMzg0IDAgMCAyNDAtNjQgMCAwLTI0MHpNMCA0MDMuMkMwIDM5Mi42IDguNiAzODQgMTkuMiAzODRsNjAxLjYgMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4yIDAgNDIuNC0zNC40IDc2LjgtNzYuOCA3Ni44TDc2LjggNDgwQzM0LjQgNDgwIDAgNDQ1LjYgMCA0MDMuMnpNMjg4IDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0senJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyZWFkLXNsaWNlIixpY29uOls1MTIsNTEyLFtdLCJmN2VjIiwiTTY0IDQzMmwwLTE3NmMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMTYuNSA1MTItMjE2LjUgNTEyIDAgMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI4OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHoiXX0sQ3JhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdsb2JlIixpY29uOls1MTIsNTEyLFsxMjc3NjBdLCJmMGFjIiwiTTM1MS45IDI4MGwtMTkwLjkgMGMyLjkgNjQuNSAxNy4yIDEyMy45IDM3LjUgMTY3LjQgMTEuNCAyNC41IDIzLjcgNDEuOCAzNS4xIDUyLjQgMTEuMiAxMC41IDE4LjkgMTIuMiAyMi45IDEyLjJzMTEuNy0xLjcgMjIuOS0xMi4yYzExLjQtMTAuNiAyMy43LTI4IDM1LjEtNTIuNCAyMC4zLTQzLjUgMzQuNi0xMDIuOSAzNy41LTE2Ny40ek0xNjAuOSAyMzJsMTkwLjkgMEMzNDkgMTY3LjUgMzM0LjcgMTA4LjEgMzE0LjQgNjQuNiAzMDMgNDAuMiAyOTAuNyAyMi44IDI3OS4zIDEyLjIgMjY4LjEgMS43IDI2MC40IDAgMjU2LjQgMHMtMTEuNyAxLjctMjIuOSAxMi4yYy0xMS40IDEwLjYtMjMuNyAyOC0zNS4xIDUyLjQtMjAuMyA0My41LTM0LjYgMTAyLjktMzcuNSAxNjcuNHptLTQ4IDBDMTE2LjQgMTQ2LjQgMTM4LjUgNjYuOSAxNzAuOCAxNC43IDc4LjcgNDcuMyAxMC45IDEzMS4yIDEuNSAyMzJsMTExLjQgMHpNMS41IDI4MGM5LjQgMTAwLjggNzcuMiAxODQuNyAxNjkuMyAyMTcuMy0zMi4zLTUyLjItNTQuNC0xMzEuNy01Ny45LTIxNy4zTDEuNSAyODB6bTM5OC40IDBjLTMuNSA4NS42LTI1LjYgMTY1LjEtNTcuOSAyMTcuMyA5Mi4xLTMyLjcgMTU5LjktMTE2LjUgMTY5LjMtMjE3LjNsLTExMS40IDB6bTExMS40LTQ4QzUwMS45IDEzMS4yIDQzNC4xIDQ3LjMgMzQyIDE0LjcgMzc0LjMgNjYuOSAzOTYuNCAxNDYuNCAzOTkuOSAyMzJsMTExLjQgMHoiXX0sVHJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1taW51cyIsaWNvbjpbNTEyLDUxMixbXSwiZjY1ZCIsIk00NDggNDQ4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0ek0xODQgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sJHJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2stZmFjZSIsaWNvbjpbNjQwLDUxMixbXSwiZTFkNyIsIk0zMjAgNjRjLTI3LjIgMC01My44IDgtNzYuNCAyMy4xbC0zNy4xIDI0LjhjLTE1LjggMTAuNS0zNC4zIDE2LjEtNTMuMyAxNi4xTDY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA3OC43YzAgNjIuNiA0NS4yIDExNiAxMDcgMTI2LjNsOTcuOSAxNi4zYzMzIDIyIDcyLjYgMzQuNyAxMTUuMSAzNC43czgyLjItMTIuOCAxMTUuMS0zNC43TDUzMyAzOTYuOWM2MS43LTEwLjMgMTA3LTYzLjcgMTA3LTEyNi4zbDAtNzguN2MwLTM1LjMtMjguNy02NC02NC02NGwtODkuMiAwYy0xOSAwLTM3LjUtNS42LTUzLjMtMTYuMUwzOTYuNCA4Ny4xQzM3My44IDcyIDM0Ny4yIDY0IDMyMCA2NHpNMTM1LjkgMzM2LjlsLTE4LjQtMy4xQzg2LjYgMzI4LjcgNjQgMzAyIDY0IDI3MC43bDAtNzguNyA0OCAwIDAgNDhjMCAzNSA4LjYgNjcuOSAyMy45IDk2Ljl6bTM4Ni42LTMuMWwtMTguNCAzLjFDNTE5LjQgMzA3LjkgNTI4IDI3NSA1MjggMjQwbDAtNDggNDggMCAwIDc4LjdjMCAzMS4zLTIyLjYgNTgtNTMuNSA2My4xek0xOTIgMjMyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTU2IDU2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sRHJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbmciLGljb246WzUxMiw1MTIsW10sImY1NWMiLCJNNDQ4LjUgMzg0YzAgNDEuNS0xMy4xIDc5LjktMzUuNSAxMTEuMy03LjkgMTEuMS0yMS4yIDE2LjctMzQuOCAxNi43bC0yNDMuMyAwYy0xMy43IDAtMjYuOS01LjYtMzQuOC0xNi43LTIyLjQtMzEuNC0zNS41LTY5LjgtMzUuNS0xMTEuMyAwLTcxLjEgMzguNi0xMzMuMSA5Ni0xNjYuM2wwLTE1My43Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUzLjdjMTQuMiA4LjIgMjcuMiAxOC4yIDM4LjggMjkuNmwzOS4zLTM5LjMtNy03Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYgMTYgMzIgMzIgNDggNDggOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNy03LTQzLjMgNDMuM2MxNy4zIDI4LjkgMjcuMyA2Mi42IDI3LjMgOTguOHpNMjg4LjUgNjRsLTY0IDAgMCAxOTAuNi0zMiAxOC41Yy0xOS41IDExLjMtMzUuNyAyNy41LTQ2LjkgNDYuOWwyMjEuOCAwYy0xMS4yLTE5LjQtMjcuNC0zNS42LTQ2LjktNDYuOWwtMzItMTguNSAwLTE5MC42eiJdfSxMcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1icmlkZ2UiLGljb246WzU3Niw1MTIsW10sImU1NjMiLCJNMzIgMzJsMjA4IDAgMCA2NC0yNCAwIDAgNjQgMjQgMCAwIDEyOS4zYy00NS40IDcuNi04MCA0Ny4xLTgwIDk0LjdsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NGMwLTM4LjgtMjYuNC03Mi42LTY0LTgybDAtMTEyIDQwIDAgMC02NC04IDBDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMyek04OCA5NmwwIDY0IDgwIDAgMC02NC04MCAwek0zMzYgMzJsNzIgMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA3MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC03MiAwIDAtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3Mi03MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTM1MmMwLTI2LjUgMjEuNS00OCA0OC00OHptOTYgMTYwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sdHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTktMSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cC1hbHQiXSwiZjg4NyIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTM2NS4xIDIwNi42Yy05LjYgMTQuOC01LjQgMzQuNiA5LjQgNDQuM3MzNC42IDUuNCA0NC4zLTkuNGw0Mi4xLTY0LjljMTIuNC0xOS4yIDE5LjEtNDEuNiAxOS4xLTY0LjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi4xIDIzLjkgNjYuNyA1Ni44IDc2LjZsLTExLjcgMTh6TTM3NiAxMTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDIuNyAxODJjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnoiXX0sRXJhPXR3ZSxQcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4tY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTUyZSIsIk0yNTYuMyA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC03Ny44IDBjNC0xNS40IDIuNC0zMi42LTYuNy00OC4yTDM1NC42IDI1NiAzNjguMyAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy02LjEgMC0xMS40IDMuNC0xNC4xIDguNWwtNDIuNi03M2MtNi0xMC4yLTE0LjEtMTgtMjMuMy0yMy4zbDAtNTYuMnptNjQgNjRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYwIDk2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bS0yNzItNjQuN2wtNjUuMSAxMTEuNiAzMy4xIDMzLjEgNDgtNDggNDAuNCAwLTU2LjQtOTYuN3ptLTI3LjYtNDcuOWMxMi4zLTIxLjIgNDIuOS0yMS4yIDU1LjMgMEw0MjAuMyA0NjMuOWMxMi40IDIxLjMtMi45IDQ4LjEtMjcuNiA0OC4xTDU2IDUxMmMtMjQuNyAwLTQwLjEtMjYuOC0yNy42LTQ4LjFMMTk2LjcgMTc1LjR6Il19LGpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLTktMSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy1kZXNjIiwic29ydC1udW1lcmljLWRvd24tYWx0Il0sImY4ODYiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0xMzQuNS0xODRsMTEuNy0xOGMtMzIuOS05LjktNTYuOC00MC41LTU2LjgtNzYuNiAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMjIuOS02LjYgNDUuMy0xOS4xIDY0LjVsLTQyLjEgNjQuOWMtOS42IDE0LjgtMjkuNCAxOS4xLTQ0LjMgOS40cy0xOS4xLTI5LjQtOS40LTQ0LjN6TTQyNCAxMTJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptLTUuMyAxODJjOC4zIDYgMTMuMyAxNS43IDEzLjMgMjZsMCA5NiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6Il19LElyYT1qb2UsQXJhPWpvZSxhd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXdpZGUiLGljb246WzUxMiw1MTIsWzEyODUxNSwiZ3Jpbi1hbHQiXSwiZjU4MSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTIwOCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em0xMjggNjRjLTE3LjcgMC0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NC0xNC4zIDY0LTMyIDY0eiJdfSxOcmE9YXdlLFJyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb29wIixpY29uOls1MTIsNTEyLFtdLCJmNjE5IiwiTTI1NC40IDYuNmMzLjUtNC4zIDktNi41IDE0LjUtNS43IDQ2LjkgNi4zIDgzLjEgNDYuNSA4My4xIDk1LjEgMCAxMS4yLTEuOSAyMi01LjUgMzJsNS41IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAxOS4xLTguNCAzNi4zLTIxLjcgNDhsMTMuNyAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjMuMi0xMSA0My44LTI4IDU3IDM0LjEgNS43IDYwIDM1LjMgNjAgNzEgMCAzOS44LTMyLjIgNzItNzIgNzJMNzIgNTEyYy0zOS44IDAtNzItMzIuMi03Mi03MiAwLTM1LjcgMjUuOS02NS4zIDYwLTcxLTE3LTEzLjItMjgtMzMuOC0yOC01NyAwLTM5LjggMzIuMi03MiA3Mi03MmwxMy43IDBjLTEzLjMtMTEuNy0yMS43LTI4LjktMjEuNy00OCAwLTM1LjMgMjguNy02NCA2NC02NGwxNi4yIDBjNDQuMS0uMSA3OS44LTM1LjkgNzkuOC04MCAwLTkuMi0xLjUtMTcuOS00LjMtMjYuMS0xLjgtNS4yLS44LTExLjEgMi44LTE1LjR6Il19LE9yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaGFybWFjaGFrcmEiLGljb246WzUxMiw1MTIsWzk3ODRdLCJmNjU1IiwiTTMzNy44IDIwNS43bDQ4LjYtNDIuNWMxMy44IDE5LjMgMjMuNCA0MS45IDI3LjQgNjYuMmwtNjQuNCA0LjNjLTIuNC0xMC4xLTYuNC0xOS41LTExLjYtMjh6bTE0MC4xIDE5LjVjLTUuMy0zOC44LTIwLjYtNzQuNS00My4yLTEwNC4zbC44LS43QzQ0OSAxMDguNCA0NDkuNyA4Ny42IDQzNyA3NXMtMzMuNC0xMi00NS4yIDEuNWwtLjcgLjhjLTI5LjgtMjIuNi02NS41LTM3LjktMTA0LjMtNDMuMmwuMS0xLjFjMS4yLTE3LjktMTMtMzMtMzAuOS0zM3MtMzIuMSAxNS4yLTMwLjkgMzNsLjEgMS4xYy0zOC44IDUuMy03NC41IDIwLjYtMTA0LjMgNDMuMmwtLjctLjhDMTA4LjQgNjMgODcuNiA2Mi4zIDc1IDc1cy0xMiAzMy40IDEuNSA0NS4ybC44IC43Yy0yMi42IDI5LjgtMzcuOSA2NS41LTQzLjIgMTA0LjNsLTEuMS0uMWMtMTcuOS0xLjItMzMgMTMtMzMgMzAuOXMxNS4yIDMyLjEgMzMgMzAuOWwxLjEtLjFjNS4zIDM4LjggMjAuNiA3NC41IDQzLjIgMTA0LjNsLS44IC43QzYzIDQwMy42IDYyLjMgNDI0LjQgNzUgNDM3czMzLjQgMTIgNDUuMi0xLjVsLjctLjhjMjkuOCAyMi42IDY1LjUgMzcuOSAxMDQuMyA0My4ybC0uMSAxLjFjLTEuMiAxNy45IDEzIDMzIDMwLjkgMzNzMzIuMS0xNS4yIDMwLjktMzNsLS4xLTEuMWMzOC44LTUuMyA3NC41LTIwLjYgMTA0LjMtNDMuMmwuNyAuOGMxMS44IDEzLjUgMzIuNSAxNC4yIDQ1LjIgMS41czEyLTMzLjQtMS41LTQ1LjJsLS44LS43YzIyLjYtMjkuOCAzNy45LTY1LjUgNDMuMi0xMDQuM2wxLjEgLjFjMTcuOSAxLjIgMzMtMTMgMzMtMzAuOXMtMTUuMi0zMi4xLTMzLTMwLjlsLTEuMSAuMXpNMTYzLjIgMTI1LjZjMTkuMy0xMy44IDQxLjktMjMuNCA2Ni4yLTI3LjVsNC4zIDY0LjRjLTEwIDIuNC0xOS41IDYuNC0yOCAxMS42bC00Mi41LTQ4LjZ6bS02NSAxMDMuOGM0LjEtMjQuNCAxMy43LTQ2LjkgMjcuNS02Ni4ybDQ4LjYgNDIuNWMtNS4zIDguNS05LjIgMTgtMTEuNiAyOGwtNjQuNC00LjN6bTI3LjUgMTE5LjRjLTEzLjgtMTkuMy0yMy40LTQxLjktMjcuNS02Ni4ybDY0LjQtNC4zYzIuNCAxMC4xIDYuNCAxOS41IDExLjYgMjhsLTQ4LjYgNDIuNXptMTAzLjggNjVjLTI0LjQtNC4xLTQ2LjktMTMuNy02Ni4yLTI3LjRsNDIuNS00OC42YzguNSA1LjMgMTggOS4yIDI4IDExLjZsLTQuMyA2NC40em0xMTkuNC0yNy40Yy0xOS4zIDEzLjgtNDEuOSAyMy40LTY2LjIgMjcuNGwtNC4zLTY0LjRjMTAtMi40IDE5LjUtNi40IDI4LTExLjZsNDIuNSA0OC42em02NS0xMDMuOGMtNC4xIDI0LjQtMTMuNyA0Ni45LTI3LjQgNjYuMmwtNDguNi00Mi41YzUuMy04LjYgOS4yLTE4IDExLjYtMjhsNjQuNCA0LjN6bS02NS0xNTYuOWwtNDIuNSA0OC42Yy04LjYtNS4zLTE4LTkuMi0yOC0xMS42bDQuMy02NC40YzI0LjQgNC4xIDQ2LjkgMTMuNyA2Ni4yIDI3LjV6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxzd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS1xdWFydGVyIixpY29uOls2NDAsNTEyLFsiYmF0dGVyeS0yIl0sImYyNDMiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNjQgMHoiXX0sRnJhPXN3ZSxCcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5raCIsaWNvbjpbMzIwLDUxMixbOTc2NV0sImY2NDQiLCJNOTYgMTI4YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRjMCA0MS42LTIwLjcgNzYuNi00Ni42IDEwNC4xLTUuOSA2LjItMTEuOCAxMS44LTE3LjQgMTYuNy01LjYtNC45LTExLjUtMTAuNS0xNy40LTE2LjctMjUuOS0yNy41LTQ2LjYtNjIuNi00Ni42LTEwNC4xek0xNjAgMEM4OS4zIDAgMzIgNTcuMyAzMiAxMjggMzIgMTgwLjQgNTMuNSAyMjMuNSA3OC44IDI1NkwzMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMCAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ2LjggMEMyNjYuNSAyMjMuNSAyODggMTgwLjQgMjg4IDEyOCAyODggNTcuMyAyMzAuNyAwIDE2MCAweiJdfSxIcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhbW9uZCIsaWNvbjpbNTEyLDUxMixbOTgzMF0sImYyMTkiLCJNMTcgMjE1TDIxNSAxN0MyMjUuOSA2LjEgMjQwLjYgMCAyNTYgMHMzMC4xIDYuMSA0MSAxN0w0OTUgMjE1YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MUwyOTcgNDk1Yy0xMC45IDEwLjktMjUuNiAxNy00MSAxN3MtMzAuMS02LjEtNDEtMTdMMTcgMjk3QzYuMSAyODYuMSAwIDI3MS40IDAgMjU2czYuMS0zMC4xIDE3LTQxeiJdfSxxcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Vic2NyaXB0IixpY29uOls1NzYsNTEyLFtdLCJmMTJjIiwiTTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NnMxNC4zIDMyIDMyIDMybDE1LjMgMCA4OS42IDEyOC04OS42IDEyOC0xNS4zIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDI0MCAzMTEuOCAzMjUuOCA0MzQuNGM2IDguNiAxNS44IDEzLjYgMjYuMiAxMy42bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1LjMgMC04OS42LTEyOCA4OS42LTEyOCAxNS4zIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMjQwIDIwMC4yIDE1NC4yIDc3LjZDMTQ4LjIgNjkuMSAxMzguNCA2NCAxMjggNjRMOTYgNjR6TTU0NCAzMjBjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRsLTMyIDE2Yy0xNS44IDcuOS0yMi4yIDI3LjEtMTQuMyA0Mi45IDUuNiAxMS4yIDE2LjkgMTcuNyAyOC42IDE3LjdsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4eiJdfSxpd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVwZWUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM2MCwicnVwZWUiXSwiZjE1NiIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6bTI4NS4xLTMybDM0LjkgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzQuOSAwYy03LjIgMC0xMy4xIDUuOS0xMy4xIDEzLjEgMCA1LjcgMy43IDEwLjcgOS4xIDEyLjVsNDkuNCAxNS45YzMxLjkgMTAuMyA1My41IDM5LjkgNTMuNSA3My40IDAgNDIuNi0zNC41IDc3LjEtNzcuMSA3Ny4xTDMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTAuOSAwYzcuMiAwIDEzLjEtNS45IDEzLjEtMTMuMSAwLTUuNy0zLjctMTAuNy05LjEtMTIuNWwtNDkuNC0xNS45Yy0zMS45LTEwLjMtNTMuNS0zOS45LTUzLjUtNzMuNCAwLTQyLjYgMzQuNS03Ny4xIDc3LjEtNzcuMXoiXX0sanJhPWl3ZSxWcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJpZmxlIixpY29uOls1MTIsNTEyLFtdLCJlNTRlIiwiTTQxNiAwTDM4NCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDAgMTAwLjNjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDAgMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsNTkuNSAwYzEwLjQgMCAxOC05LjggMTUuNS0xOS45bC0yMy05Mi4xIDQ0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC00OCAwIDAtMjYuNyA1My4xLTE3LjdjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJsMC04NC41YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNTYtMTYgNS4zIDAtMTA5LjNjMC0xMS44LTYuNC0yMi4yLTE2LTI3LjdMNDMyIDE2YzAtOC44LTcuMi0xNi0xNi0xNnpNMjI0IDIwOEMxMTggMjA4IDMyIDI5NCAzMiA0MDBsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDhjMC0zMi41IDEyLjEtNjIuMSAzMi04NC43bDAgMTk2LjcgMTYwIDAgMC0yOTMuMWMtMjAtNy4xLTQxLjYtMTAuOS02NC0xMC45ek0yODAgODhhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAweiJdfSxVcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZCIsaWNvbjpbMzg0LDUxMixbMTAwXSwiNDQiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwxMjggMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0UzI4My43IDQ4MCAxNjAgNDgwTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHpNNjQgOTZsMCAzMjAgOTYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MFMyNDguNCA5NiAxNjAgOTZMNjQgOTZ6Il19LFdyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtbmZpIixpY29uOls0NDgsNTEyLFtdLCJlNTc2IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTkzIDE3Mi4zbDM1IDYzIDAtNTEuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTQ0YzAgMTAuOS03LjQgMjAuNS0xOCAyMy4ycy0yMS43LTItMjctMTEuNmwtMzUtNjMgMCA1MS40YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtMTAuOSA3LjQtMjAuNSAxOC0yMy4yczIxLjcgMiAyNyAxMS42ek0yMDggMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDAgMCAzMiA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDR6bTE5MiAwbDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEdyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZWV0aCIsaWNvbjpbNTEyLDUxMixbXSwiZjYyZSIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTQ0IDIwOGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHptMTI4IDBsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTgwIDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6bTMyMCAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpNNDggMzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2em0xNDQgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0xMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTExMi0xNmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJ6Il19LHJ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLWRvbGxhciIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1kb2xsYXIiXSwiZjY4OCIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIxMiA5NmMtMTEgMC0yMCA5LTIwIDIwbDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDE2OCAyNTZjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjB6Il19LEtyYT1yd2UsWXJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bXBzdGVyLWZpcmUiLGljb246WzY0MCw1MTIsW10sImY3OTQiLCJNMTY0LjMgNjRMMTM4LjcgMTkyIDU2IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMNTguNSA4MC40QzYxLjggNzAuNiA3MSA2NCA4MS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zNDQgNjRsODIuNyAwIDE2IDgwYy0xNC43IC4yLTI5LjMgNS41LTQwLjkgMTUuOS0xMS41IDEwLjMtMjIuNSAyMS0zMi44IDMyLjFsLTI0LjkgMCAwLTEyOHpNOTYgMjQwbDIzMy4yIDBjLTYuNCA4LjgtMTIuMyAxNy42LTE3LjcgMjYuMy0yMS40IDM0LjctMzkuNSA3Ni4xLTM5LjUgMTE1LjggMCAxNy4xIDIuMSAzMy44IDYgNDkuOWwtMTIwLjQgMCAxLjkgMTAuM2MzLjIgMTcuNC04LjQgMzQtMjUuOCAzNy4ycy0zNC04LjQtMzcuMi0yNS44QzcxIDMxMy4zIDU4IDI0Mi4xIDU3LjcgMjQwTDk2IDI0MHptNTEyLTcyYzAgMTEtNy40IDIwLjMtMTcuNSAyMy4xLS45LS44LTEuNy0xLjYtMi42LTIuNC0yMS44LTIwLTU0LjMtMjEuOC03OC01LjUtNC4yLTQuMy04LjUtOC41LTEyLjktMTIuNmwtMjEuMy0xMDYuNiA4MyAwYzEwLjMgMCAxOS41IDYuNiAyMi44IDE2LjRsMjUuMyA3NS45Yy44IDIuNCAxLjIgNSAxLjIgNy42bDAgNC4xek01MDUuNyAyNDAuM0w1MTggMjI2LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNNTQ0IDQzMi4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sWnJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwbG9hZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA5MyIsIk0yNTYgMTA5LjNMMjU2IDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIxMC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMjU2IDEwOS4zek0yMjQgNDAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDgwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRsODAgMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHptMTQ0IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sVm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItc2xhc2giLGljb246WzU3Niw1MTIsWzYyNzE0LCJ1c2VyLWFsdC1zbGFzaCIsInVzZXItbGFyZ2Utc2xhc2giXSwiZjUwNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDMxMS41IDI0NS43YzU1LTEwLjkgOTYuNS01OS41IDk2LjUtMTE3LjcgMC02Ni4zLTUzLjctMTIwLTEyMC0xMjAtNTguMiAwLTEwNi44IDQxLjUtMTE3LjcgOTYuNUw0MS0yNC45ek0yMzUuNiAzMDUuNEMxNDcuOSAzMTYuNiA4MCAzOTEuNSA4MCA0ODIuMyA4MCA0OTguNyA5My4zIDUxMiAxMDkuNyA1MTJsMzMyLjUgMC0yMDYuNi0yMDYuNnoiXX0sWHJhPVZvZSxRcmE9Vm9lLEpyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NTkyXSwiZjA2MCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNDgwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcwLjcgMCAxMDUuNC0xMDUuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sZW9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwtdmlydXMiLGljb246WzU3Niw1MTIsW10sImU1OTciLCJNNjQgMzJDNjQgMTQuMyA3OC4zIDAgOTYgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1MS43Yy0xOC41IDAtMzcgNy01MS4xIDIxLjEtMjEuNiAyMS42LTI2LjYgNTMuNi0xNSA3OS45LTI2LjkgMTAuNC00NS45IDM2LjYtNDUuOSA2Ny4xczE5IDU2LjcgNDUuOSA2Ny4xYy03LjMgMTYuNS04IDM1LjItMi4zIDUyLjItMTMuNCA1LjctMjguMiA4LjgtNDMuNiA4LjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJMOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyem05NiAzMmwwIDEyOCA5NiAwIDAtMTI4LTk2IDB6TTI4MCA0MDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjguOCAwIDQzLjItMzQuOCAyMi45LTU1LjItOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzIwLjQgMjAuNCA1NS4yIDUuOSA1NS4yLTIyLjkgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDI4LjggMzQuOCA0My4yIDU1LjIgMjIuOSA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTIwLjQgMjAuNC01LjkgNTUuMiAyMi45IDU1LjIgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI4LjggMC00My4yIDM0LjgtMjIuOSA1NS4yIDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTIwLjQtMjAuNC01NS4yLTUuOS01NS4yIDIyLjkgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yOC44LTM0LjgtNDMuMi01NS4yLTIyLjktOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMyMC40LTIwLjQgNS45LTU1LjItMjIuOS01NS4yem0xMDQtMzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OCA0MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx0b2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stZG91YmxlIixpY29uOlszODQsNTEyLFtdLCJmNTYwIiwiTTI0OS45IDY2LjhjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTA2IDE0NS43LTM3LjUtMzcuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxMjgtMTc2em0xMjggMTM2YzEwLjQtMTQuMyA3LjItMzQuMy03LjEtNDQuN3MtMzQuMy03LjItNDQuNyA3LjFsLTE3MCAyMzMuNy02OS41LTY5LjVjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzYuNiA2LjYgMTUuOCAxMCAyNS4xIDkuM3MxNy45LTUuNSAyMy40LTEzLjFsMTkyLTI2NHoiXX0sYW9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhdyIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMCIsIk0yMzQuNSA5Mi45YzE0LjMgNDIuOS0uMyA4Ni4yLTMyLjYgOTYuOHMtNzAuMS0xNS42LTg0LjQtNTguNSAuMy04Ni4yIDMyLjYtOTYuOCA3MC4xIDE1LjYgODQuNCA1OC41ek0xMDAuNCAxOTguNmMxOC45IDMyLjQgMTQuMyA3MC4xLTEwLjIgODQuMXMtNTkuNy0uOS03OC41LTMzLjMtMTQuMy03MC4xIDEwLjItODQuMSA1OS43IC45IDc4LjUgMzMuM3pNNjkuMiA0MDEuMkMxMjEuNiAyNTkuOSAyMTQuNyAyMjQgMjU2IDIyNHMxMzQuNCAzNS45IDE4Ni44IDE3Ny4yYzMuNiA5LjcgNS4yIDIwLjEgNS4yIDMwLjVsMCAxLjZjMCAyNS44LTIwLjkgNDYuNy00Ni43IDQ2LjctMTEuNSAwLTIyLjktMS40LTM0LTQuMmwtODgtMjJjLTE1LjMtMy44LTMxLjMtMy44LTQ2LjYgMGwtODggMjJjLTExLjEgMi44LTIyLjUgNC4yLTM0IDQuMi0yNS44IDAtNDYuNy0yMC45LTQ2LjctNDYuN2wwLTEuNmMwLTEwLjQgMS42LTIwLjggNS4yLTMwLjV6TTQyMS44IDI4Mi43Yy0yNC41LTE0LTI5LjEtNTEuNy0xMC4yLTg0LjFzNTQtNDcuMyA3OC41LTMzLjMgMjkuMSA1MS43IDEwLjIgODQuMS01NCA0Ny4zLTc4LjUgMzMuM3pNMzEwLjEgMTg5LjdjLTMyLjMtMTAuNi00Ni45LTUzLjktMzIuNi05Ni44czUyLjEtNjkuMSA4NC40LTU4LjUgNDYuOSA1My45IDMyLjYgOTYuOC01Mi4xIDY5LjEtODQuNCA1OC41eiJdfSxVb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsbWV0LXNhZmV0eSIsaWNvbjpbNTc2LDUxMixbImhhcmQtaGF0IiwiaGF0LWhhcmQiXSwiZjgwNyIsIk0zNTIgMjY0bDAtMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE4NS45QzkwIDEwOS44IDMyIDE5MS44IDMyIDI4OGwwIDY0IDUxMiAwIDAtNjRjLTEtOTUuMi01OC40LTE3Ny43LTE0NC0yMDkuOEw0MDAgMjY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0ek00MCA0MDBjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsNDk2IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBMNDAgNDAweiJdfSxzb2E9VW9lLGlvYT1Vb2Uscm9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImUiLGljb246WzMyMCw1MTIsWzEwMV0sIjQ1IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMTI4IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTEyOCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sb3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtc3F1aW50IixpY29uOls1MTIsNTEyLFsibGF1Z2gtc3F1aW50Il0sImY1OWIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwNy43IDMzMi4xQzEwMiAzMTggMTEzLjQgMzA0IDEyOC42IDMwNGwyNTQuOSAwYzE1LjIgMCAyNi42IDE0IDIwLjkgMjguMS0yMy44IDU4LjYtODEuMiA5OS45LTE0OC4zIDk5LjlzLTEyNC42LTQxLjMtMTQ4LjMtOTkuOXptMTUtMTg4LjhjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAxOTIgMTI1LjggMTY0LjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sb29hPW93ZSxud2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bi1sZWZ0LWFuZC11cC1yaWdodC10by1jZW50ZXIiLGljb246WzUxMiw1MTIsWyJjb21wcmVzcy1hbHQiXSwiZjQyMiIsIk00MzkuNSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzQ1MC4yIDI0MCA0NDAuNSAyNDBsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzkgODctODd6TTcyLjUgMjcybDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3LTM5LTM5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzYyLjggMjcyIDcyLjUgMjcyeiJdfSxub2E9bndlLGxvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnaWZ0cyIsaWNvbjpbNTc2LDUxMixbXSwiZjc5YyIsIk0yMDItMzAuNmMxMi41IDQuNCAxOSAxOC4xIDE0LjYgMzAuNmwtOC4yIDIzLjEgMjUuNC0xOC41YzEwLjctNy44IDI1LjctNS40IDMzLjUgNS4zczUuNCAyNS43LTUuMyAzMy41TDIzMy44IDY0IDI3MiA2NGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIuMWMtNTQuNyAxMC40LTk2IDU4LjQtOTYgMTE2bDAgMS45YzAgOC45IDEgMTcuNSAyLjggMjUuOS0xMS45IDE3LjgtMTguOCAzOS4xLTE4LjggNjIuMWwwIDEyOGMwIDIzLjggNy40IDQ1LjkgMjAuMSA2NEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDM4LjIgMC0yOC4zLTIwLjZDNDcuMiAzNS42IDQ0LjggMjAuNiA1Mi42IDkuOVM3NS40LTMuMiA4Ni4xIDQuNmwyNy40IDIwLTguMy0yNUMxMDEtMTMgMTA3LjgtMjYuNiAxMjAuNC0zMC44czI2LjIgMi42IDMwLjQgMTUuMmw5LjkgMjkuOCAxMC43LTMwLjJjNC40LTEyLjUgMTguMS0xOSAzMC42LTE0LjZ6TTQ4OS45IDIwOGMtNy41IDAtMTQuNSAzLjgtMTguNiAxMC4xTDQ0Ni45IDI1NiA0ODggMjU2YzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMS45YzAtMTIuMi05LjktMjIuMS0yMi4xLTIyLjF6TTM4NS4xIDI1NmwtMjQuNC0zNy45Yy00LjEtNi4zLTExLjEtMTAuMS0xOC42LTEwLjEtMTIuMiAwLTIyLjEgOS45LTIyLjEgMjIuMWwwIDEuOWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0MS4xIDB6TTI4MS45IDI2OC41Yy02LjMtMTAuNy05LjktMjMuMi05LjktMzYuNWwwLTEuOWMwLTM4LjcgMzEuNC03MC4xIDcwLjEtNzAuMSAyMy44IDAgNDYgMTIuMSA1OC45IDMyLjFsMTUgMjMuMiAxNS0yMy4yYzEyLjktMjAgMzUuMS0zMi4xIDU4LjktMzIuMSAzOC43IDAgNzAuMSAzMS40IDcwLjEgNzAuMWwwIDEuOWMwIDEzLjMtMy42IDI1LjgtOS45IDM2LjUgMTUuNyAxMS43IDI1LjkgMzAuNCAyNS45IDUxLjVsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTcyIDAgMC0yMDgtNDggMCAwIDIwOC03MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTEyOGMwLTIxLjEgMTAuMi0zOS44IDI1LjktNTEuNXoiXX0sY29hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlZCIsaWNvbjpbNTc2LDUxMixbMTI4NzE2XSwiZjIzNiIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIyNCAyMjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtNDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTgwIDE2MGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LGRvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXRyYW5zZmVyIixpY29uOls2NDAsNTEyLFtdLCJlNTI4IiwiTTMxIDEwNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMTAzLTFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMSAzMSA2Ny43IDAgMCAwIDMzOC4zIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNzguMi01LjEtNS4xYy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDAtMjcuMiAyNy4yLTI4LjEgNzAuNi0yLjggOTguOWw2Ny43IDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNDA2LjEgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzguMiA1LjEgNS4xYzI4LjEgMjguMSA3My43IDI4LjEgMTAxLjggMCAyNy4yLTI3LjIgMjguMS03MC42IDIuOC05OC45bC02Ny43IDAgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwzMSAxMDV6TTQxNiAyNTZhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwem04OC02NC41YzQuNCAuNSA4LTMuMSA4LTcuNWwwLTQ4YzAtNC40LTMuNi04LTgtOGwtNDggMGMtNC40IDAtOC4xIDMuNi03LjUgOCAzLjYgMjkgMjYuNiA1MS45IDU1LjUgNTUuNXptLTM2OCAxMjljLTQuNC0uNS04IDMuMS04IDcuNWwwIDQ4YzAgNC40IDMuNiA4IDggOGw0OCAwYzQuNCAwIDguMS0zLjYgNy41LTgtMy42LTI5LTI2LjYtNTEuOS01NS41LTU1LjV6Il19LGx3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcnVubmluZyIsaWNvbjpbNDQ4LDUxMixbMTI3OTM5LCJydW5uaW5nIl0sImY3MGMiLCJNMjU2LjUtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTEyMy42IDE3NmMtMy4zIDAtNi4yIDItNy40IDVMOTQuMiAyMzUuOWMtNi42IDE2LjQtMjUuMiAyNC40LTQxLjYgMTcuOHMtMjQuNC0yNS4yLTE3LjgtNDEuNmwyMS45LTU0LjlDNjcuNyAxMjkuOSA5NC4xIDExMiAxMjMuNiAxMTJsOTcuMyAwYzI4LjUgMCA1NC44IDE1LjEgNjkuMSAzOS43bDMyLjggNTYuMyA2MS42IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTYxLjYgMGMtMjIuOCAwLTQzLjgtMTIuMS01NS4zLTMxLjhsLTEwLTE3LjEtMjAuNyA3MC40IDc1LjQgMjIuNmMyNy43IDguMyA0MS44IDM5IDMwLjEgNjUuNUwyODUuNyA1MDljLTcuMiAxNi4yLTI2LjEgMjMuNC00Mi4yIDE2LjJzLTIzLjQtMjYuMS0xNi4yLTQyLjJsNDkuMi0xMTAuOC05NS45LTI4LjhjLTMyLjctOS44LTUyLTQzLjctNDMuNy03Ni44bDIyLjctOTAuNi0zNS45IDB6bS04IDE4MWMxMy4zIDE0LjkgMzAuNyAyNi4zIDUxLjIgMzIuNGw0LjcgMS40LTYuOSAxOS4zYy01LjggMTYuMy0xNiAzMC44LTI5LjMgNDEuOEw1Mi45IDUxOS44Yy0xMy42IDExLjItMzMuOCA5LjMtNDUtNC4zcy05LjMtMzMuOCA0LjMtNDVsODIuNC02Ny45YzQuNS0zLjcgNy44LTguNSA5LjgtMTMuOUwxMTUuNiAzNTd6Il19LHVvYT1sd2UsY3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLWRvd24iLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1kb3duIl0sImYxM2EiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xMzUgMjQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsODcgODcgODctODdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDI3MyAzNDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDEzNSAyNDF6Il19LHBvYT1jd2UsaG9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbnVyc2UiLGljb246WzQ0OCw1MTIsW10sImY4MmYiLCJNOTYgNDQuOWMwLTEyLjcgNy41LTI0LjIgMTkuMi0yOS4zbDk2LTQyYzguMi0zLjYgMTcuNS0zLjYgMjUuNyAwbDk2IDQyQzM0NC41IDIwLjcgMzUyIDMyLjIgMzUyIDQ0LjlsMCA5OS4xYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4Uzk2IDIxNC43IDk2IDE0NGwwLTk5LjF6TTMwNCAxMjhsLTExMS42IDAtLjQgMC00OCAwIDAgMTZjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGwwLTE2ek0yMDggMTZsMCAxNi0xNiAwYy00LjQgMC04IDMuNi04IDhsMCAxNmMwIDQuNCAzLjYgOCA4IDhsMTYgMCAwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwYzQuNCAwIDgtMy42IDgtOGwwLTE2IDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTZjMC00LjQtMy42LTgtOC04bC0xNiAwIDAtMTZjMC00LjQtMy42LTgtOC04TDIxNiA4Yy00LjQgMC04IDMuNi04IDh6TTE0Mi42IDMyM2MtNi41LTQuOS0xNS4yLTYuMi0yMi42LTIuOC02MS40IDI4LjItMTA0LjEgOTAuMi0xMDQuMSAxNjIuMSAwIDE2LjQgMTMuMyAyOS43IDI5LjcgMjkuN2wzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtNzItNDIuNy0xMzQtMTA0LjEtMTYyLjEtNy40LTMuNC0xNi4xLTIuMS0yMi42IDIuOGwtNjcgNTAuMmMtOC41IDYuNC0yMC4zIDYuNC0yOC44IDBsLTY3LTUwLjJ6Il19LGR3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3Mtd2luay1oZWFydCIsaWNvbjpbNjQwLDUxMixbMTI4NTM2LCJraXNzLXdpbmstaGVhcnQiXSwiZjU5OCIsIk01NDMuNyAyNjguM2MuMi00LjEgLjMtOC4yIC4zLTEyLjMgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMzMiAxMTQuNiAzMiAyNTYgMTQ2LjYgNTEyIDI4OCA1MTJjNDEuNCAwIDgwLjUtOS44IDExNS4xLTI3LjMtNy42LTE3LjEtMTYuMS0zOC44LTIxLjgtNjEuNy03LjctMzAuNS0xNC4xLTc2LjIgOC4yLTExNC43bDIuNy00LjZjMjkuNS01MSA5NC43LTY4LjUgMTQ1LjctMzkgMiAxLjIgNCAyLjQgNS45IDMuN3pNMjQwIDMwNGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek0yMDggMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTUyIDIwYy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxmb2E9ZHdlLG1vYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxsIixpY29uOls1MTIsNTEyLFtdLCJmNTc1IiwiTTI5NiA2NGM2LjkgMCAxMy41IDIuNyAxOC4zIDcuNkw0NDAuNCAxOTcuN2M0LjkgNC45IDcuNiAxMS41IDcuNiAxOC4zcy0yLjcgMTMuNS03LjYgMTguM0wzODYuNyAyODggNjUuMyAyODhjMS4zLTMuOSAzLjQtNy40IDYuMy0xMC4zbDk2LjQtOTYuNCAzMy40IDMzLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyMTMuMyAxMzYgMjc3LjcgNzEuNmM0LjktNC45IDExLjUtNy42IDE4LjMtNy42ek0xMjIuNyAxMzZMMjYuMyAyMzIuNEM5LjUgMjQ5LjMgMCAyNzIuMSAwIDI5NnM5LjUgNDYuNyAyNi4zIDYzLjZMMTUyLjQgNDg1LjdDMTY5LjMgNTAyLjUgMTkyLjEgNTEyIDIxNiA1MTJzNDYuNy05LjUgNjMuNi0yNi4zTDQ4NS43IDI3OS42QzUwMi41IDI2Mi43IDUxMiAyMzkuOSA1MTIgMjE2cy05LjUtNDYuNy0yNi4zLTYzLjZMMzU5LjYgMjYuM0MzNDIuNyA5LjUgMzE5LjkgMCAyOTYgMHMtNDYuNyA5LjUtNjMuNiAyNi4zTDE2OCA5MC43IDExOC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDEyMi43IDEzNnoiXX0sdXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtMS13YXZlIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC13YXZlLWFsdCJdLCJmNTNiIiwiTTAgMTA5LjVMMCA0MTkuNmMwIDE5LjQgMTEuOCAzNy4zIDMwLjMgNDMuMyA5NCAzMCAxNTguOCA4LjQgMjIzLjMtMTMuMSA2Mi40LTIwLjggMTI0LjQtNDEuNSAyMTIuMS0xNS4zIDIyLjIgNi42IDQ2LjItOC44IDQ2LjItMzJsMC0zMTAuMWMwLTE5LjQtMTEuOC0zNy4zLTMwLjMtNDMuMy05NC0zMC0xNTguOC04LjQtMjIzLjMgMTMuMS02Mi40IDIwLjgtMTI0LjQgNDEuNS0yMTIuMSAxNS4zLTIyLjItNi42LTQ2LjMgOC44LTQ2LjMgMzJ6TTI1NiAzNjhjLTUzIDAtOTYtNTAuMS05Ni0xMTJzNDMtMTEyIDk2LTExMiA5NiA1MC4xIDk2IDExMi00MyAxMTItOTYgMTEyek0xMjcuMSA0MDUuNWMuNyA0LjQtMi44IDguMS03LjIgOC4xLTE1LjcgMC0zMi4xLTEuOC01MC02LjEtMy41LS44LTYtNC02LTcuN0w2NCAzNjBjMC00LjQgMy42LTguMSA4LTcuNSAyOC4xIDMuNSA1MC42IDI1LjIgNTUuMiA1M3pNNDQ4IDM1NC42YzAgNS00LjYgOC44LTkuNSA4LTE1LjQtMi41LTMwLjItMy45LTQ0LjQtNC4zLTQuOS0uMS04LjctNC41LTcuMi05LjIgNy4zLTIzLjcgMjgtNDEuNCA1My4yLTQ0LjYgNC40LS41IDggMy4xIDggNy41bDAgNDIuNnptLTgtMTk1LjFjLTI4LjEtMy41LTUwLjYtMjUuMi01NS4yLTUzLS43LTQuNCAyLjgtOC4xIDcuMi04LjEgMTUuNyAwIDMyLjEgMS44IDUwIDYuMSAzLjUgLjggNiA0IDYgNy43bDAgMzkuOWMwIDQuNC0zLjYgOC4xLTggNy41em0tMzIyLjEtNS44YzQuOSAuMSA4LjcgNC41IDcuMiA5LjItNy4zIDIzLjctMjggNDEuNC01My4yIDQ0LjYtNC40IC41LTgtMy4xLTgtNy41bDAtNDIuNmMwLTUgNC42LTguOCA5LjUtOCAxNS40IDIuNSAzMC4yIDMuOSA0NC40IDQuM3pNMjQwIDE4OGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sZ29hPXV3ZSxib2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmsiLGljb246WzUxMiw1MTIsWzEyNzk2M10sImY2NmYiLCJNMjM4LjcgNS4xYzEwLjUtNi44IDI0LjEtNi44IDM0LjYgMGwyMjQgMTQ0YzExLjkgNy43IDE3LjQgMjIuMyAxMy40IDM1LjlzLTE2LjUgMjMtMzAuNyAyM2wtMzIgMCAwIDIwOCA1MS4yIDM4LjRjOC4xIDYgMTIuOCAxNS41IDEyLjggMjUuNiAwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZsNTEuMi0zOC40IDAgMCAwLTIwOC0zMiAwYy0xNC4yIDAtMjYuNy05LjQtMzAuNy0yM3MxLjUtMjguMyAxMy40LTM1LjlsMjI0LTE0NHpNMzM2IDIwOGwwIDIwOCA2NCAwIDAtMjA4LTY0IDB6TTIyNCA0MTZsNjQgMCAwLTIwOC02NCAwIDAgMjA4ek0xMTIgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHoiXX0sdm9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11c2ljIixpY29uOls1MTIsNTEyLFsxMjc5MjVdLCJmMDAxIiwiTTQ2OCA3YzcuNiA2LjEgMTIgMTUuMyAxMiAyNWwwIDMwNGMwIDQ0LjItNDMgODAtOTYgODBzLTk2LTM1LjgtOTYtODAgNDMtODAgOTYtODBjMTEuMiAwIDIyIDEuNiAzMiA0LjZsMC0xMTYuNy0yMjQgNDkuOCAwIDIwNi4zYzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNkwxMjggOTZjMC0xNSAxMC40LTI4IDI1LjEtMzEuMmwyODgtNjRjOS41LTIuMSAxOS40IC4yIDI3IDYuM3oiXX0seG9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stbWVkaWNhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjdlNiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTkyIDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0scHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNodWZmbGUiLGljb246WzUxMiw1MTIsWzEyODI1NiwicmFuZG9tIl0sImYwNzQiLCJNNDAzLjggMzQuNGMxMi01IDI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzYgNiA5LjQgMTQuMSA5LjQgMjIuNnMtMy40IDE2LjYtOS40IDIyLjZsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzODQgMjA0LjkgMzg0IDE5MmwwLTMyLTMyIDBjLTEwLjEgMC0xOS42IDQuNy0yNS42IDEyLjhsLTMyLjQgNDMuMi00MC01My4zIDIxLjItMjguM0MyOTMuMyAxMTAuMiAzMjEuOCA5NiAzNTIgOTZsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZ6TTE1NCAyOTZsNDAgNTMuMy0yMS4yIDI4LjNDMTU0LjcgNDAxLjggMTI2LjIgNDE2IDk2IDQxNmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwYzEwLjEgMCAxOS42LTQuNyAyNS42LTEyLjhMMTU0IDI5NnpNNDM4LjYgNDcwLjZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCA0NjAuOSAzODQgNDQ4bDAtMzItMzIgMGMtMzAuMiAwLTU4LjctMTQuMi03Ni44LTM4LjRMMTIxLjYgMTcyLjhjLTYtOC4xLTE1LjUtMTIuOC0yNS42LTEyLjhsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsNjQgMGMzMC4yIDAgNTguNyAxNC4yIDc2LjggMzguNEwzMjYuNCAzMzkuMmM2IDguMSAxNS41IDEyLjggMjUuNiAxMi44bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzYgNiA5LjQgMTQuMSA5LjQgMjIuNnMtMy40IDE2LjYtOS40IDIyLjZsLTY0IDY0eiJdfSx5b2E9cHdlLHdvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmRlcmxpbmUiLGljb246WzM4NCw1MTIsW10sImYwY2QiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlMxMTMuNyA2NCA5NiA2NGwwIDE2MGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMyNzAuMyAwIDI4OCAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNjBjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMzIgMzEyLjQgMzIgMjI0TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJ6TTAgNDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LGtvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy11c2VyIixpY29uOls2NDAsNTEyLFtdLCJlNGRhIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjcgMCAyNy43IDguOCA1My40IDIzLjggNzQuNC01MS41IDIxLTg3LjggNzEuNi04Ny44IDEzMC43IDAgMSAwIDEuOSAwIDIuOWwtMTc2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDY0ek0yMDggNDAwbDAgNjQgNTMuNCAwYzcuMi0yOS40IDIxLjMtNTYuMSA0MC40LTc4LjMtNi4xLTE5LjUtMjQuMy0zMy43LTQ1LjgtMzMuNy0yNi41IDAtNDggMjEuNS00OCA0OHpNMzM5IDIyNC4zYy0xLS4yLTItLjMtMy0uM2wtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjcgMGMyLjEtMjIuOCA4LjQtNDQuMyAxOC4zLTYzLjd6TTE3NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTc2IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0yNDAgODBhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0zNTIgNTEyYzAtNTMgNDMtOTYgOTYtOTZsOTYgMGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LFNvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2JvdCIsaWNvbjpbNjQwLDUxMixbMTI5MzAyXSwiZjU0NCIsIk0zNTIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMlMyODgtMTcuNyAyODggMGwwIDY0LTk2IDBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjI0YzAtNTMtNDMtOTYtOTYtOTZsLTk2IDAgMC02NHpNMTYwIDM2OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTIwIDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTEyMCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yMjQgMTc2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMTQ0IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTY0IDIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIwNi4zIDAgMjI0bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2em01NDQtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxmZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVzIixpY29uOls0NDgsNTEyLFsxMDEzMyw2MTU0MywiYWRkIl0sIjJiIiwiTTI1NiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE2MC0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMCAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTE2MHoiXX0sX29hPWZmLHR2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvcHkiLGljb246WzQ0OCw1MTIsW10sImYwYzUiLCJNMTkyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjAwLjZjMC0xNy40LTcuMS0zNC4xLTE5LjctNDYuMkwzNzAuNiAxNy44QzM1OC43IDYuNCAzNDIuOCAwIDMyNi4zIDBMMTkyIDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi02NCAwIDAgMTYtMTkyIDAgMC0yNTYgMTYgMCAwLTY0LTE2IDB6Il19LE1vYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1raW5nIixpY29uOls0NDgsNTEyLFs5ODE4XSwiZjQzZiIsIk0yMjQtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjQgMTUzLjggMGMyMS4xIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDYuNC0xLjYgMTIuNy00LjcgMTguM0wzNTIgMzg0IDQwOC4yIDQ1NC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDY3LjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw5NiAzODQgNC43IDIxNi42QzEuNiAyMTAuOSAwIDIwNC42IDAgMTk4LjIgMCAxNzcuMSAxNy4xIDE2MCAzOC4yIDE2MGwxNTMuOCAwIDAtNjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHpvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbG9vZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZSIsIk00OTYgMjA4bDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDM0OCAxMC41QzM0MC4zIDMuNyAzMzAuMyAwIDMyMCAwcy0yMC4zIDMuNy0yOCAxMC41TDEyMS40IDE1OS44Yy02IDUuMi05LjQgMTIuOC05LjQgMjAuNyAwIDE1LjIgMTIuMyAyNy41IDI3LjUgMjcuNWw0LjUgMCAwIDk0LjRjMjAuMy05LjQgNDIuMS0xNC4yIDY0LTE0LjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDE2LjktLjEgMzMuOCAyLjYgNTAgOGwwLTg4em0tMjI0LThjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzQuNiA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQxOC4zIDE3LjYgNDI2LjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDUxNC4zIDE3LjYgNTIyLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxDb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYml0Y29pbi1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMGI0IiwiTTY0IDI0QzY0IDEwLjcgNzQuNyAwIDg4IDBzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDEuMWM1NC4zIDcuOCA5NiA1NC40IDk2IDExMC45IDAgMjQuMi03LjcgNDYuNi0yMC43IDY0LjkgMzEuNyAxOS44IDUyLjcgNTUgNTIuNyA5NS4xIDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0xNiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0zMiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0yMi4zIDBDMTguNyA0NDggMCA0MjkuMyAwIDQwNi4zTDAgMTAxLjZDMCA4MC44IDE2LjggNjQgMzcuNiA2NEw2NCA2NCA2NCAyNHptMCAyMDBsMTEyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTExMiAwIDAgOTZ6bTExMiA2NGwtMTEyIDAgMCA5NiAxNDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMzIgMHoiXX0sVG9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveCIsaWNvbjpbNDQ4LDUxMixbMTI4MjMwXSwiZjQ2NiIsIk0zNjkuNCAxMjhsLTM0LjMtNDgtMjIyLjEgMC0zNC4zIDQ4IDI5MC43IDB6TTAgMTQ4LjVjMC0xMy4zIDQuMi0yNi4zIDExLjktMzcuMkw2MC45IDQyLjhDNzIuOSAyNiA5Mi4zIDE2IDExMi45IDE2bDIyMi4xIDBjMjAuNyAwIDQwLjEgMTAgNTIuMSAyNi44bDQ4LjkgNjguNWM3LjggMTAuOSAxMS45IDIzLjkgMTEuOSAzNy4yTDQ0OCA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE0OC41eiJdfSxod2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSwkb2E9aHdlLGZ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodCIsaWNvbjpbNTc2LDUxMixbImFycm93cy1oIl0sImYwN2UiLCJNNDcwLjYgMzc0LjZsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w0MS40IDQxLjQtMzU3LjUgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNDEuNC00MS40IDM1Ny41IDAtNDEuNCA0MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSxEb2E9ZndlLExvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYW4iLGljb246WzUxMiw1MTIsW10sImY4NjMiLCJNMTYwIDE0NGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxNTIuMmMxNS01LjMgMzEuMi04LjIgNDgtOC4yIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgOC44LTcuMiAxNi0xNiAxNmwtMTUyLjIgMGM1LjMgMTUgOC4yIDMxLjIgOC4yIDQ4IDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0LTguOCAwLTE2LTcuMi0xNi0xNmwwLTE1Mi4yYy0xNSA1LjMtMzEuMiA4LjItNDggOC4yLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtOC44IDcuMi0xNiAxNi0xNmwxNTIuMiAwYy01LjMtMTUtOC4yLTMxLjItOC4yLTQ4em05NiAxNDRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxFb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjUyMCIsIk00NTYuNSAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDM2LTM1NS4yIDI2Ni40Qy0uOCA0MDEtMy43IDQyMSA2LjkgNDM1LjJzMzAuNiAxNyA0NC44IDYuNGw3Ni44LTU3LjYgMTMxLjMgMCA0Ni42IDExMy4xIDEgMi4yYzUuNyAxMC43IDE4LjggMTUuNSAzMC4zIDEwLjhzMTcuMy0xNy4zIDEzLjktMjlsLS44LTIuMy0zOS4xLTk0LjkgNDAuOSAwYzEuMSAwIDIuMiAwIDMuMiAwbDQ2LjYgMTEzLjIgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTQyLTEwMkM0ODUuMyAzNTQuMSA1NDQuNSAyODAgNTQ0LjUgMTkybDAtNzIgODAuNS0yMC4xYzguNi0yLjEgMTMuOC0xMC44IDExLjYtMTkuNC03LjEtMjguNS0zMi43LTQ4LjUtNjIuMS00OC41bC01MC4xIDBDNTA4LjIgMTIuNSA0ODMuOCAwIDQ1Ni41IDB6bTAgNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxQb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU1YTAiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sY1M9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluay1zbGFzaCIsaWNvbjpbNTc2LDUxMixbImNoYWluLWJyb2tlbiIsImNoYWluLXNsYXNoIiwidW5saW5rIl0sImYxMjciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTIyLTEyMmM0LjItMy40IDguMy03LjEgMTIuMS0xMC45bDcxLjEtNzEuMWMyOS4zLTI5LjMgNDUuOC02OS4xIDQ1LjgtMTEwLjYgMC04Ni40LTcwLTE1Ni41LTE1Ni41LTE1Ni41LTM3LjMgMC03My4xIDEzLjMtMTAxLjMgMzcuMiAyMC4zIDEwLjEgMzguNyAyMy41IDU0LjUgMzkuNSAxNC4xLTguMyAzMC4yLTEyLjcgNDYuOC0xMi43IDUxLjEgMCA5Mi41IDQxLjQgOTIuNSA5Mi41IDAgMjQuNS05LjcgNDgtMjcuMSA2NS40bC03MS4xIDcxLjFjLTMuOSAzLjktOC4xIDcuNC0xMi42IDEwLjVsLTQ3LjUtNDcuNWMxNi41LS45IDI5LjctMTQuNCAzMC4yLTMxLjEgMC0xLjMgMC0yLjYgMC0zLjkgMC04Ni4zLTY5LjktMTU2LjktMTU2LjUtMTU2LjktMTkuMiAwLTM3LjkgMy41LTU1LjUgMTAuMkw0MS0yNC45ek0yMjUuOSAxNjBjLjYgMCAxLjEgMCAxLjcgMCAxNS4xIDAgMjkuNSAzLjcgNDIuMSAxMC4yIDEuOCAxLjIgMy42IDIuMyA1LjUgMy4xIDI2LjggMTYuMyA0NC44IDQ1LjkgNDQuOCA3OS42IDAgLjQgMCAuOCAwIDEuMkwyMjUuOSAxNjB6TTM0Ni4yIDQxNkwxOTIgMjYxLjhjMS4yIDg0LjYgNjkuNiAxNTIuOSAxNTQuMSAxNTQuMXpNMTM5LjcgMjA5LjVsLTQ1LjMtNDUuMy00OC42IDQ4LjZjLTI5LjMgMjkuMy00NS44IDY5LjEtNDUuOCAxMTAuNiAwIDg2LjQgNzAgMTU2LjUgMTU2LjUgMTU2LjUgMzcuMiAwIDczLjEtMTMuMyAxMDEuMy0zNy4yLTIwLjMtMTAuMS0zOC44LTIzLjUtNTQuNi0zOS41LTE0IDguMi0zMC4xIDEyLjYtNDYuNyAxMi42LTUxLjEgMC05Mi41LTQxLjQtOTIuNS05Mi41IDAtMjQuNSA5LjctNDggMjcuMS02NS40bDQ4LjYtNDguNnoiXX0sSW9hPWNTLEFvYT1jUyxOb2E9Y1MsZFM9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcm90YXRlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NjM1LCJhcnJvdy1yaWdodC1yb3RhdGUiLCJhcnJvdy1yb3RhdGUtZm9yd2FyZCIsInJlZG8iXSwiZjAxZSIsIk00MzYuNyA3NC43TDQ0OCA4NS40IDQ0OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0Ny45IDAtNy42LTcuMmMtLjItLjItLjQtLjQtLjYtLjYtNzUtNzUtMTk2LjUtNzUtMjcxLjUgMHMtNzUgMTk2LjUgMCAyNzEuNSAxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTkuOS05OS45IDI2MS43LTEwMCAzNjEuNy0uM3oiXX0sUm9hPWRTLE9vYT1kUyxGb2E9ZFMsbXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1jbGlwIixpY29uOls1MTIsNTEyLFsicGVuLWFsdCJdLCJmMzA1IiwiTTQwNCAwYzE5LjIgMCAzNy42IDcuNiA1MS4xIDIxLjJsMzUuNyAzNS43QzUwNC40IDcwLjQgNTEyIDg4LjggNTEyIDEwOHMtNy42IDM3LjYtMjEuMiA1MS4xTDQ0NS45IDIwNCAzMDggNjYuMSAzNTIuOSAyMS4yQzM2Ni40IDcuNiAzODQuOCAwIDQwNCAwek0yNzQuMSAxMDBsMCAwIDEzNy45IDEzNy45LTIxNS4xIDIxNS4xYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMS4xYy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMnMtOC41LTE1LjEtNi4yLTIzLjRMMzYuNCAzNTMuOGM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43TDI0MC4xIDEzMy45IDIyMyAxMTYuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMODkgMjE3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE1NS4xIDgyLjljMjguMS0yOC4xIDczLjctMjguMSAxMDEuOCAwTDI3NC4xIDEwMHoiXX0sQm9hPW13ZSxIb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9vci1jbG9zZWQiLGljb246WzQ0OCw1MTIsWzEyODY4Ml0sImY1MmEiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjR6TTMyMCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxXb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtYXNjIiwic29ydC1hbW91bnQtZG93biJdLCJmMTYwIiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyMCA5NnoiXX0scW9hPVdvZSxqb2E9V29lLFZvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1kb3duIixpY29uOlszMjAsNTEyLFtdLCJmMGQ3IiwiTTE0MC4zIDM3Ni44YzEyLjYgMTAuMiAzMS4xIDkuNSA0Mi44LTIuMmwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMwMS40IDE5MiAyODguNSAxOTJsLTI1NiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy43IDIzNy41IDkuOSAyNDYuNmwxMjggMTI4IDIuNCAyLjJ6Il19LFVvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrIixpY29uOlszMjAsNTEyLFsxMDddLCI0YiIsIk0zMTEgODYuM2MxMi4zLTEyLjcgMTItMzIuOS0uNy00NS4ycy0zMi45LTEyLTQ1LjIgLjdDMTQzLjQgMTY3LjIgNzYuNCAyMzYuMyA2NCAyNDlMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEwNyA2NC43LTY2LjcgMTMzIDE5MmMxMC4xIDE0LjUgMzAgMTguMSA0NC41IDguMXMxOC4xLTMwIDguMS00NC41TDE3NC4xIDIyNy40IDMxMSA4Ni4zeiJdfSxnd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stdG8tc2xvdCIsaWNvbjpbNTc2LDUxMixbInZvdGUteWVhIl0sImY3NzIiLCJNNTUyIDI4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDE2IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjU2IDB6bS0zNy4xIDg0LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42LTkuNSA5LjItOS44IDI0LjQtLjYgMzMuOWw0Ni40IDQ4YzQuOSA1LjEgMTEuOCA3LjggMTguOSA3LjNzMTMuNi00LjEgMTcuOC05LjhMMzg0LjIgMTUwLjFjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LFdvYT1nd2UsR29hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpc2gtZmlucyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmMiIsIk0yNzUuMiAzOC40Yy0xMC42LTgtMjUtOC41LTM2LjMtMS41UzIyMiA1Ny4zIDIyNC42IDcwLjNsOS43IDQ4LjZjLTE5LjQgOS0zNi45IDE5LjktNTIuNCAzMS41LTE1LjMgMTEuNS0yOSAyMy45LTQwLjcgMzYuM0w0OC4xIDEzMi40Yy0xMi41LTcuMy0yOC40LTUuMy0zOC43IDQuOXMtMTIuNCAyNi01LjMgMzguNkw1MCAyNTYgNC4yIDMzNi4xYy03LjIgMTIuNi01IDI4LjQgNS4zIDM4LjZzMjYuMSAxMi4yIDM4LjcgNC45bDkzLjEtNTQuM2MxMS44IDEyLjMgMjUuNCAyNC44IDQwLjcgMzYuMyAxNS41IDExLjYgMzMgMjIuNSA1Mi40IDMxLjVsLTkuNyA0OC42Yy0yLjYgMTMgMy4xIDI2LjMgMTQuMyAzMy4zczI1LjYgNi41IDM2LjMtMS41bDc3LjYtNTguMmM1NC45LTQgMTAxLjUtMjcgMTM3LjItNTMuOCAzOS4yLTI5LjQgNjcuMi02NC43IDgxLjYtODkuNSA1LjgtOS45IDUuOC0yMi4yIDAtMzIuMS0xNC40LTI0LjgtNDIuNS02MC4xLTgxLjYtODkuNS0zNS44LTI2LjgtODIuMy00OS44LTEzNy4yLTUzLjhMMjc1LjIgMzguNHpNMzg0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxLb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcHJlc3MiLGljb246WzQ0OCw1MTIsW10sImYwNjYiLCJNMTYwIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzk2IDQ2LjMgOTYgNjRsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnpNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTM1MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHoiXX0sYndlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAiXSwiZjE1ZSIsIk00MTIuNiA0OS43QzQwNy4yIDM4LjggMzk2LjEgMzIgMzg0IDMycy0yMy4yIDYuOC0yOC42IDE3LjdjLTUwLjcgMTAxLjMtNzcuMyAxNTQuNy04MCAxNjAtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjljLTIuNy01LjMtMjkuMy01OC43LTgwLTE2MHpNMzg0IDEzNS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40ek0yODggMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDUwLjcgMC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzMwNy4xIDQ4MCAzMjAgNDgwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01MC43IDAgNzMuNC03My40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ2MC45IDI4OCA0NDggMjg4bC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDI1LjQgMjUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC04MC04MHoiXX0sWW9hPWJ3ZSxab2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncmFkdWF0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwMSIsIk0yNDEuMy0xM2MtMTEuNC0yLjMtMjMuMS0yLjMtMzQuNSAwTDE5LjMgMjQuNUM4LjEgMjYuNyAwIDM2LjYgMCA0OCAwIDU4LjMgNi41IDY3LjMgMTYgNzAuNkwxNiAxNDQgLjMgMjIyLjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNmwzNC45IDBjOCAwIDE0LjYtNi41IDE0LjYtMTQuNiAwLTEtLjEtMS45LS4zLTIuOUw0OCAxNDQgNDggNzcuMyA5NiA4Ni45IDk2IDE0NGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtNTcuMSA3Ni43LTE1LjNDNDM5LjkgNjkuMyA0NDggNTkuNCA0NDggNDhzLTguMS0yMS4zLTE5LjMtMjMuNUwyNDEuMy0xM3pNMjI0IDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMTYwIDBjMCA0NC4yLTM1LjggODAtODAgODB6TTEyMC4xIDMyMC4xQzU4LjcgMzQ4LjMgMTYgNDEwLjMgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMTU0LjMgMCAwLTE0Ni01Ny40LTQzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44ek0yNDggNTEybDE1NC4zIDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC01Ny40IDQzIDAgMTQ2eiJdfSxYb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNTQuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptMTEyLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LFFvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2FwIixpY29uOls1MTIsNTEyLFsxMjk1MzJdLCJlMDZlIiwiTTIwOC0zMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTMyMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMzUyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMTYwbDExMiAwYzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDE2MCAyMjRjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTM1LjEtMTguOS02NS45LTQ3LTgyLjYgMTktMTkuOCAzMC43LTQ2LjYgMzEtNzYuMSA0NS40IDcuNiA4MCA0Ny4xIDgwIDk0LjdsMCAxMjhjMCA1My00MyA5Ni05NiA5Nkw5NiA0ODBjLTUzIDAtOTYtNDMtOTYtOTZMMCAyNTZjMC01MyA0My05NiA5Ni05NnptNjQgMTEybDE5MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHoiXX0sSm9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3ljbGUiLGljb246WzUxMiw1MTIsWzk4NDIsOTg1MCw5ODUxXSwiZjFiOCIsIk0xNTIuMyA2MEMxOTguNS0yMCAzMTQtMjAgMzYwLjIgNjBsMzcuMyA2NC42IDI3LjctMTZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNMNDM2LjkgMjIzYy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN2wtODcuNC0yMy40Yy05LjQtMi41LTE2LjMtMTAuNC0xNy42LTIwczMuNC0xOS4xIDExLjgtMjMuOWwyNy43LTE2LTM3LjMtNjQuNmMtMjEuNi0zNy4zLTc1LjQtMzcuMy05NyAwbC01LjMgOS4xYy04LjggMTUuMy0yOC40IDIwLjUtNDMuNyAxMS43UzEzOC4yIDg0LjUgMTQ3IDY5LjFsNS4zLTkuMXpNNDQ5LjcgMjc5LjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDUuMyA5LjFjNDYuMiA4MC0xMS41IDE4MC0xMDMuOSAxODBsLTc0LjYgMCAwIDMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJsMCAzMiA3NC42IDBjNDMuMSAwIDcwLjEtNDYuNyA0OC41LTg0bC01LjMtOS4xYy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjd6TTUxIDIzNS40bC0yNy43LTE2Yy04LjQtNC45LTEzLjEtMTQuMy0xMS44LTIzLjlzOC4yLTE3LjUgMTcuNi0yMEwxMTYuNSAxNTJjMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdsMjMuNCA4Ny40YzIuNSA5LjQtLjkgMTkuMy04LjYgMjUuM3MtMTguMiA2LjYtMjYuNiAxLjdsLTI3LjctMTYtMzcuMyA2NC42Yy0yMS42IDM3LjMgNS40IDg0IDQ4LjUgODRsMTAuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC42IDBDMjUuMyA0ODAtMzIuNCAzODAgMTMuOCAzMDBMNTEgMjM1LjR6Il19LHZ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2luayIsaWNvbjpbNTEyLDUxMixbImdyaW4td2luayJdLCJmNThjIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMzI4IDE5NmMtMTEgMC0yMCA5LTIwIDIwcy05IDIwLTIwIDIwLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMHpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGVuYT12d2UsR29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyLWxhZGRlciIsaWNvbjpbNjQwLDUxMixbImxhZGRlci13YXRlciIsInN3aW1taW5nLXBvb2wiXSwiZjVjNSIsIk0zNzQuNSA0MDUuN2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOCAyNS43LTQuOCAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTI0LjIgMTguMy01Mi4zIDM1LjktODMuNCAzNS45cy01OS4xLTE3LjctODMuMy0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC42LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjN6TTUxMS44IDMyYzQ4LjMgMCA4OSAzNiA5NSA4My45bDEgOC4yYzIuMiAxNy41LTEwLjIgMzMuNS0yNy44IDM1LjdzLTMzLjUtMTAuMi0zNS43LTI3LjhsLTEtOC4yYy0yLTE1LjktMTUuNS0yNy44LTMxLjUtMjcuOC0xNy41IDAtMzEuOCAxNC4yLTMxLjggMzEuOGwwIDIxMS44Yy0yMy4xLTUuMS00NC45LTQuNC02NC0uNGwwLTUxLjItMTkyIDAgMCA0OC43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0xNi4yIC4xLTMyLjQgMi43LTQ4IDhsMC0yMTYuMmMwLTUyLjkgNDIuOS05NS44IDk1LjctOTUuOCA0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjcgMTQuMi0zMS43IDMxLjhsMCA5Ni4yIDE5MiAwIDAtOTYuMkM0MTYgNzQuOSA0NTguOSAzMiA1MTEuOCAzMnoiXX0sdG5hPUdvZSxhbmE9R29lLHNuYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW1pbmkiLGljb246WzQ0OCw1MTIsW10sImU4NDkiLCJNMzk1LjQgOGMxMy4yLTExLjcgMzMuMy0xMC41IDQ1LjEgMi43IDExLjcgMTMuMiAxMC41IDMzLjQtMi43IDQ1LjItMi43IDIuNC0yMy4xIDE5LjgtNTguMyAzNi44LTguMiA0LTE3LjIgNy45LTI3IDExLjZsMCAzMDMuMmM5LjggMy44IDE4LjggNy42IDI3IDExLjYgMTguMiA4LjggMzIuNCAxNy43IDQyLjIgMjQuNSAzIDIuMSA1LjUgNC4xIDcuNyA1LjcgMS4yIC45IDIuMyAxLjYgMy4yIDIuNCAuMiAuMSAuMyAuMiAuNSAuNCAxLjMgMS4xIDIuNCAyIDMuMiAyLjYgLjQgLjMgLjcgLjYgLjkgLjggLjEgLjEgLjMgLjIgLjMgLjMgMCAwIC4xIC4xIC4xIC4xbC4xIDAgMCAwIDAgMGMzLjMgMi45IDUuOSA2LjQgNy43IDEwLjIgNS40IDExLjMgMy44IDI1LjEtNSAzNS0uMyAuNC0uNyAuNy0xLjEgMS4xLTExLjkgMTIuMi0zMS4yIDEzLjEtNDQgMS43LS4zLS4zLTEuNS0xLjMtMy41LTIuOC0uNC0uMy0uOS0uNy0xLjUtMS4xLTEuOS0xLjQtNC4yLTMuMS03LjEtNS4xLTIuMi0xLjUtNC43LTMuMS03LjQtNC44LTYuNi00LjEtMTQuOC04LjgtMjQuNC0xMy41LTcuNC0zLjYtMTUuNi03LjItMjQuNy0xMC41LTEzLjYtNS4xLTI5LTkuNi00Ni4xLTEyLjktNS43LTEuMS0xMS42LTIuMS0xNy43LTIuOC0xMi4xLTEuNi0yNS0yLjUtMzguNi0yLjUtNTQuMiAwLTk3LjQgMTQuNC0xMjcgMjguOC0zLjQgMS42LTYuNSAzLjMtOS41IDQuOS01LjEgMi44LTkuNyA1LjQtMTMuOCA3LjktMy4zIDIuMS02LjMgNC04LjkgNS43LTEuNyAxLjItMy4yIDIuMy00LjYgMy4zLTEuOSAxLjQtMy41IDIuNS00LjYgMy40LTEuNCAxLjEtMi4yIDEuOC0yLjUgMi0xMy4yIDExLjctMzMuMyAxMC41LTQ1LjEtMi44LTIuMi0yLjUtNC01LjItNS4yLTguMXMtMi4xLTUuOS0yLjUtOC45Yy0xLjQtMTAuMiAyLjItMjAuOCAxMC40LTI4LjIgLjItLjIgLjYtLjUgMS4yLTEgLjEtLjEgLjItLjIgLjMtLjNsMy4yLTIuNmMxLjctMS4zIDMuNy0yLjggNi4yLTQuNiAxLjYtMS4yIDMuMy0yLjUgNS4yLTMuOCA5LjgtNi44IDI0LTE1LjcgNDIuMi0yNC41IDguMi00IDE3LjItNy45IDI3LTExLjZsMC0zMDMuMkM4Ni43IDEwMC42IDc3LjcgOTYuNyA2OS41IDkyLjggMzQuMyA3NS43IDE0IDU4LjMgMTEuMyA1NS45LTEuOSA0NC4yLTMuMSAyNCA4LjYgMTAuNyAyMC4zLTIuNSA0MC41LTMuNyA1My43IDggNTUuMSA5LjIgNzAuNyAyMi4yIDk3LjUgMzUuMiAxMjcuMSA0OS42IDE3MC4zIDY0IDIyNC41IDY0czk3LjQtMTQuNCAxMjctMjguOGMyNi44LTEzIDQyLjQtMjYgNDMuOC0yNy4yek0yODguNSAxMjIuM2MtMTkuNyAzLjUtNDEgNS43LTY0IDUuN3MtNDQuMy0yLjItNjQtNS43bDAgMjY3LjRjMTIuNi0yLjMgMjUuOS00IDM5LjktNC45IDcuOC0uNSAxNS44LS44IDI0LS44IDIzIDAgNDQuNCAyLjIgNjQgNS43bDAtMjY3LjR6Il19LGluYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3dlci1jZWxsIixpY29uOls1NzYsNTEyLFtdLCJlNTg1IiwiTTU5LjYgOS44QzQ3LjMgNC44IDMzLjMgMTAuNyAyOC40IDIzIDE1LjIgNTUuNSA4IDkwLjkgOCAxMjhzNy4yIDcyLjUgMjAuNCAxMDVjNSAxMi4zIDE5IDE4LjIgMzEuMyAxMy4yczE4LjItMTkgMTMuMi0zMS4zQzYyIDE4OC4yIDU2IDE1OC44IDU2IDEyOHM2LTYwLjIgMTYuOS04N2M1LTEyLjMtMS0yNi4zLTEzLjItMzEuM3ptNDU2LjggMGMtMTIuMyA1LTE4LjIgMTktMTMuMiAzMS4zIDEwLjkgMjYuOCAxNi45IDU2LjIgMTYuOSA4N3MtNiA2MC4yLTE2LjkgODdjLTUgMTIuMyAxIDI2LjMgMTMuMiAzMS4zczI2LjMtMSAzMS4zLTEzLjJjMTMuMS0zMi41IDIwLjQtNjcuOSAyMC40LTEwNXMtNy4yLTcyLjUtMjAuNC0xMDVjLTUtMTIuMy0xOS0xOC4yLTMxLjMtMTMuMnpNMzQwLjEgMTY1LjJjNy41LTEwLjUgMTEuOS0yMy4zIDExLjktMzcuMiAwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDEzLjkgNC40IDI2LjcgMTEuOSAzNy4yTDk4LjkgNDY2LjhjLTcuMyAxNi4xLS4yIDM1LjEgMTUuOSA0Mi40czM1LjEgLjIgNDIuNC0xNS45bDIwLjYtNDUuMiAyMjAuNiAwIDIwLjYgNDUuMmM3LjMgMTYuMSAyNi4zIDIzLjIgNDIuNCAxNS45czIzLjItMjYuMyAxNS45LTQyLjRMMzQwLjEgMTY1LjJ6TTM3Ni41IDQwMGwtMTc3IDAgMjEuOC00OCAxMzMuMyAwIDIxLjggNDh6TTI4OCAyMDUuM2w0NC44IDk4LjctODkuNyAwIDQ0LjgtOTguN3pNMTYzLjMgNzMuNmM1LjMtMTIuMS0uMi0yNi4zLTEyLjQtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjRDMTA5LjUgNzcgMTA0IDEwMS45IDEwNCAxMjhzNS41IDUxIDE1LjMgNzMuNmM1LjMgMTIuMSAxOS41IDE3LjcgMzEuNiAxMi40czE3LjctMTkuNSAxMi40LTMxLjZDMTU2IDE2NS44IDE1MiAxNDcuNCAxNTIgMTI4czQtMzcuOCAxMS4zLTU0LjR6TTQ1Ni43IDU0LjRjLTUuMy0xMi4xLTE5LjUtMTcuNy0zMS42LTEyLjRzLTE3LjcgMTkuNS0xMi40IDMxLjZDNDIwIDkwLjIgNDI0IDEwOC42IDQyNCAxMjhzLTQgMzcuOC0xMS4zIDU0LjRjLTUuMyAxMi4xIC4yIDI2LjMgMTIuNCAzMS42czI2LjMtLjIgMzEuNi0xMi40QzQ2Ni41IDE3OSA0NzIgMTU0LjEgNDcyIDEyOHMtNS41LTUxLTE1LjMtNzMuNnoiXX0scm5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbG9uLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxNDAiLCJNMjEzLjggOC43YzEyLjkgMy4yIDIwLjcgMTYuMiAxNy41IDI5LjFsLTQuNiAxOC41YzE1LjQgLjggMzAuNCAzLjQgNDQuNyA3LjVsOS40LTM3LjZDMjgzLjkgMTMuMyAyOTcgNS41IDMwOS44IDguN1MzMzAuNSAyNSAzMjcuMyAzNy44TDMxNiA4Mi44YzEzLjUgNy44IDI2IDE3LjEgMzcuMiAyNy44IDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMy4xLTIuOS02LjQtNS44LTkuOC04LjRMMjM5LjIgMzkwYzI2LjktNC42IDUxLjEtMTcuMSA3MC4xLTM1LjEgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJjLTM0LjMgMzIuMy04MCA1Mi44LTEzMC41IDU0LjRsLTcuNSAyOS45Yy0zLjIgMTIuOS0xNi4yIDIwLjctMjkuMSAxNy41cy0yMC43LTE2LjItMTcuNS0yOS4xbDUuNi0yMi41Yy0xNS0zLjItMjkuNC04LTQyLjktMTQuNGwtMTIuMSA0OC41Yy0zLjIgMTIuOS0xNi4yIDIwLjctMjkuMSAxNy41UzY5LjUgNDg3IDcyLjcgNDc0LjJsMTYtNjMuOUM0NC4zIDM3My42IDE2IDMxOC4xIDE2IDI1NiAxNiAxNTkuMiA4NC44IDc4LjQgMTc2LjMgNjBsOC40LTMzLjhDMTg3LjkgMTMuMyAyMDEgNS41IDIxMy44IDguN3pNMTU4IDEzMi45Yy00Ni4xIDIxLjgtNzggNjguNy03OCAxMjMuMSAwIDMwLjUgMTAgNTguNiAyNi45IDgxLjNMMTU4IDEzMi45ek0xNDcuNCAzNzMuNGMxMyA3LjYgMjcuMyAxMy4xIDQyLjUgMTYuMWw2NS45LTI2My42Yy0xMi42LTMuOC0yNS45LTUuOS0zOS44LTUuOS0xLjggMC0zLjUgMC01LjMgLjFMMTQ3LjQgMzczLjR6Il19LG9uYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtZmlsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUxZCIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEw0MTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4LTY0IDAgMC00OC0yODggMCAwIDE5MiAxMTIgMCAwIDk2LTE2My4yIDBDMzQuNCAzNTIgMCAzMTcuNiAwIDI3NS4yIDAgMjY0LjYgOC42IDI1NiAxOS4yIDI1Nkw2NCAyNTYgNjQgNjR6TTUyOS45IDI1Ny45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45TDU0NCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTI1NmMwLTI2LjUgMjEuNS00OCA0OC00OGw3Ni4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMSAyMCAyMCA0Ny45IDQ3LjkgODMuOSA4My45ek00MTYgMjcyYzAgOC44IDcuMiAxNiAxNiAxNmw2MC4xIDAtNzYuMS03Ni4xIDAgNjAuMXoiXX0seHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaGFpIixpY29uOls1NzYsNTEyLFsiaGF5a2FsIl0sImY2NjYiLCJNMjg4LjQtOGMxMy4yIDAgMjUgOC4xIDI5LjggMjAuNGwzMS45IDgyIDc3LjItNDIuM2MxMS42LTYuMyAyNS44LTQuOSAzNS45IDMuNXMxNCAyMi4zIDkuNyAzNC44bC0yOC4yIDgzLjMgODYuMyAxNy4yYzEyLjkgMi42IDIzIDEyLjggMjUuMyAyNS44cy0zLjYgMjYuMS0xNC45IDMyLjlsLTc1LjIgNDUuNyA1NSA2OC42YzguMyAxMC4zIDkuMyAyNC42IDIuNyAzNnMtMTkuNSAxNy42LTMyLjYgMTUuNmwtODctMTMuMy0yIDg4Yy0uMyAxMy4yLTguNiAyNC44LTIxIDI5LjRzLTI2LjMgMS0zNS05bC01OC02Ni4xLTU4IDY2LjFjLTguNyA5LjktMjIuNiAxMy41LTM1IDlzLTIwLjgtMTYuMi0yMS0yOS40bC0yLTg4LTg3IDEzLjNjLTEzIDItMjYtNC4yLTMyLjYtMTUuNnMtNS41LTI1LjcgMi43LTM2bDU1LTY4LjYtNzUuMi00NS43Yy0xMS4zLTYuOC0xNy4yLTE5LjktMTQuOS0zMi45czEyLjMtMjMuMiAyNS4zLTI1LjhsODYuMy0xNy4yLTI4LjItODMuM2MtNC4yLTEyLjUtLjQtMjYuMyA5LjctMzQuOHMyNC40LTkuOSAzNS45LTMuNWw3Ny4xIDQyLjMgMzEuOS04MkMyNjMuMyAuMSAyNzUuMi04IDI4OC40LTh6bTAgMTIwLjJMMjczIDE1MS42Yy0zLjMgOC42LTEwLjIgMTUuMy0xOC45IDE4LjVzLTE4LjIgMi40LTI2LjMtMmwtMzctMjAuMyAxMy42IDQwYzMgOC43IDIgMTguMy0yLjYgMjYuM3MtMTIuNCAxMy42LTIxLjUgMTUuNGwtNDEuNCA4LjMgMzYuMSAyMS45YzcuOSA0LjggMTMuMyAxMi43IDE0LjkgMjEuOHMtLjggMTguNC02LjUgMjUuNmwtMjYuNCAzMyA0MS44LTYuNGM5LjEtMS40IDE4LjQgMS4yIDI1LjQgNy4xczExLjIgMTQuNiAxMS40IDIzLjhsLjkgNDIuMiAyNy45LTMxLjhjNi4xLTYuOSAxNC44LTEwLjkgMjQuMS0xMC45czE4IDQgMjQuMSAxMC45bDI3LjkgMzEuOCAuOS00Mi4yYy4yLTkuMiA0LjQtMTcuOSAxMS40LTIzLjhzMTYuMy04LjUgMjUuNC03LjFsNDEuOCA2LjQtMjYuNC0zM2MtNS44LTcuMi04LjItMTYuNS02LjYtMjUuNnM3LTE3IDE0LjktMjEuOGwzNi4xLTIxLjktNDEuNC04LjNjLTktMS44LTE2LjktNy40LTIxLjUtMTUuNHMtNS41LTE3LjYtMi42LTI2LjNsMTMuNi00MC0zNyAyMC4zYy04LjEgNC40LTE3LjcgNS4yLTI2LjMgMnMtMTUuNS05LjktMTguOS0xOC41bC0xNS4zLTM5LjR6Il19LG5uYT14d2UseXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtMSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtYWx0Il0sImYzZDEiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE5MiA4MGExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6TTY0IDE4NGwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDE0NGMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTQ0MCAxOTEuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNDQ4IDMyOGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTI0MCAxODhjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LGxuYT15d2Usd3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWJvbHQiLGljb246WzUxMiw1MTIsWzEyNzc4NSwidGh1bmRlcnN0b3JtIl0sImY3NmMiLCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwzOC42IDAgMTI0LjEtMTExYzEyLjItMTAuOSAyOC0xNyA0NC40LTE3IDQ0LjYgMCA3Ni41IDQzIDYzLjcgODUuN0wzNTQuMSAzMjAgNDE2IDMyMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNjAuNiA0MDBsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNjIuNSAzOTYuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTQ5LjUgMzcxLjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LGNuYT13d2UsZG5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV0aGVybmV0IixpY29uOls1MTIsNTEyLFtdLCJmNzk2IiwiTTAgMjI0TDAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sa3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhyeXZuaWEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM3MiwiaHJ5dm5pYSJdLCJmNmYyIiwiTTMzNiAxNDkuNEMzMzYgNzcgMjY4LjUgMjMuNSAxOTggNDAuMUw5My4yIDY0LjlDNzYgNjguOSA2NS40IDg2LjIgNjkuNCAxMDMuNHMyMS4zIDI3LjkgMzguNSAyMy44bDEwNC44LTI0LjdjMzAuMy03LjEgNTkuMyAxNS44IDU5LjMgNDYuOSAwIDE3LjYtOS42IDMzLjgtMjUgNDIuM2wtLjcgLjQtMjIyLjMgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIuNCAwYzUuNS0xMy4zIDguNC0yNy44IDguNC00Mi42ek0zNjAgMjcyTDI0IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy4zIDBjLTYuMSAxMy40LTkuMyAyOC4xLTkuMyA0My4zIDAgNjQuMSA1Ni45IDExMy40IDEyMC40IDEwNC4ybDEzNy45LTE5LjljMTcuNS0yLjUgMjkuNi0xOC43IDI3LjEtMzYuMnMtMTguOC0yOS42LTM2LjItMjcuMUwxNTkuMiA0MDQuMmMtMjQuOSAzLjYtNDcuMi0xNS43LTQ3LjItNDAuOSAwLTE1LjEgOC4yLTI4LjkgMjEuNC0zNi4ybDEzLTcuMSAyMTMuNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0eiJdfSx1bmE9a3dlLGF2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTIwNC41IDEzOC43YzIzLjUtMTYuOCA1Mi40LTI2LjcgODMuNS0yNi43IDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgMzEuMS05LjkgNTkuOS0yNi43IDgzLjVsLTM0LjctMzQuN2MxMi43LTIxLjQgMTctNDcuNyAxMC4xLTczLjctMTMuNy01MS4yLTY2LjQtODEuNi0xMTcuNi02Ny45LTguNiAyLjMtMTYuNyA1LjctMjQgMTBsLTM0LjctMzQuN3pNMzI1LjMgMzk1LjFjLTExLjkgMy4yLTI0LjQgNC45LTM3LjMgNC45LTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtMTIuOSAxLjctMjUuNCA0LjktMzcuM0w2OS40IDEzOS4yYy0zMi42IDM2LjgtNTUgNzUuOC02Ni45IDEwNC41LTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNiAzNy4zIDAgNzEuMi03LjkgMTAxLjUtMjAuNmwtNjQuMi02NC4yeiJdfSxTd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1mbGF0YmVkLXN1aXRjYXNlIixpY29uOls1NzYsNTEyLFsibHVnZ2FnZS1jYXJ0Il0sImY1OWQiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM0LjcgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC01LjYgMS0xMSAyLjctMTZsLTE5Ny41IDBjMS44IDUgMi43IDEwLjQgMi43IDE2IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNiAxLjEtMTEuNyAzLjEtMTctMzguMS02LjItNjcuMS0zOS4yLTY3LjEtNzlMNjQgODBjMC04LjgtNy4yLTE2LTE2LTE2TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJ6TTE3NiAxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMCAwLTI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2bDY0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAyNCAzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNDAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNDR6TTM4NCA5NmwwLTI0YzAtNC40LTMuNi04LTgtOGwtNjQgMGMtNC40IDAtOCAzLjYtOCA4bDAgMjQgODAgMHoiXX0scG5hPVN3ZSxobmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFkaWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmN2I5IiwiTTQ0Ni4yIDM0LjVjLTE0LjItMTAuMS0zMy41LTQuNi00Mi4yIDEwLjVMMzMxLjYgMTcwLjNjMzEuMyAxNS44IDUyLjggNDguMyA1Mi44IDg1LjdsMTQ0IDBjMTcuNyAwIDMyLjItMTQuNCAzMC4xLTMxLjktOS4xLTc4LjEtNTEuNC0xNDYuMS0xMTIuMy0xODkuNnpNMTcyLjcgNDQuOUMxNjQgMjkuOCAxNDQuNyAyNC4zIDEzMC41IDM0LjUgNjkuNiA3Ny45IDI3LjMgMTQ1LjkgMTguMiAyMjQuMSAxNi4xIDI0MS42IDMwLjcgMjU2IDQ4LjMgMjU2bDE0NCAwYzAtMzcuNSAyMS41LTY5LjkgNTIuOC04NS43TDE3Mi43IDQ0Ljl6bS05LjQgNDE2LjhjLTguNyAxNS4xLTMuOCAzNC41IDEyIDQxLjggMzQuNCAxNS43IDcyLjcgMjQuNSAxMTMgMjQuNXM3OC42LTguOCAxMTMtMjQuNWMxNS44LTcuMiAyMC43LTI2LjcgMTItNDEuOEwzNDEgMzM2LjNjLTE1LjEgOS45LTMzLjIgMTUuNy01Mi42IDE1LjdzLTM3LjUtNS44LTUyLjYtMTUuN0wxNjMuMyA0NjEuN3pNMjg4LjMgMzA0YTQ4IDQ4IDAgMSAwIC0uNy05NiA0OCA0OCAwIDEgMCAuNyA5NnoiXX0sZm5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd29yZCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTM1LjQgMjc0LjhjLTIuOS0xMi45LTE1LjctMjEuMS0yOC42LTE4LjJzLTIxLjEgMTUuNy0xOC4yIDI4LjZsMzIgMTQ0YzIuMyAxMC41IDExLjQgMTguMiAyMi4yIDE4LjhzMjAuNi02LjEgMjQtMTYuNGwyNS4yLTc1LjcgMjUuMiA3NS43YzMuNCAxMC4yIDEzLjIgMTYuOSAyNCAxNi40czE5LjktOC4yIDIyLjItMTguOGwzMi0xNDRjMi45LTEyLjktNS4zLTI1LjgtMTguMi0yOC42cy0yNS44IDUuMy0yOC42IDE4LjJsLTEzLjIgNTkuNC0yMC42LTYxLjhjLTMuMy05LjgtMTIuNC0xNi40LTIyLjgtMTYuNHMtMTkuNSA2LjYtMjIuOCAxNi40bC0yMC42IDYxLjgtMTMuMi01OS40eiJdfSxfd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkLXB1bHNlIixpY29uOls2NDAsNTEyLFsicHJvY2VkdXJlcyJdLCJmNDg3IiwiTTUzMS4yLTIyLjRMNTcyIDMyIDYxNiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtNy42IDAtMTQuNy0zLjYtMTkuMi05LjZsLTI0LjEtMzIuMS00NyA5OS45Yy0zLjcgNy44LTExLjMgMTMuMS0xOS45IDEzLjdzLTE2LjktMy40LTIxLjctMTAuNkwzODcuMiA4MCAzNDQgODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMGM4IDAgMTUuNSA0IDIwIDEwLjdsMjQuNCAzNi42IDQ1LjktOTcuNWMzLjYtNy42IDEwLjktMTIuOCAxOS4zLTEzLjdzMTYuNiAyLjcgMjEuNiA5LjV6TTMyMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsOS41IDAgMjYuNiAzOS45YzE0LjQgMjEuNiAzOS4zIDMzLjggNjUuMiAzMS45czQ4LjgtMTcuNiA1OS44LTQxLjFMNTI3IDEyOS4yYzQ1LjkgNy4yIDgxIDQ2LjkgODEgOTQuOGwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTQ0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJTOTYgNDYuMyA5NiA2NGwwIDIyNCAyMjQgMCAwLTEyOHpNMTQ0IDE5MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LG1uYT1fd2UsZ25hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnRzIixpY29uOls1NzYsNTEyLFtdLCJlNTgyIiwiTTUzOS45IDM1MmwtOTUuNiAwLTguNC02Ni4xYy0yLjktMjMuMi0xNS45LTQzLjktMzUuNC01Ni44TDI1Mi4yIDEzMS41Yy0xOC0xMS45LTM5LjctMTUuNy02MC4xLTExLjUgMi41LTQuMyA1LjktNy45IDEwLjEtMTAuN0wzNTAuNiAxMS42YzEwLjctNyAyNC41LTcgMzUuMiAwbDE0OC40IDk3LjdjNy44IDUuMSAxMyAxMy40IDE0LjIgMjIuN2wyMy4zIDE4NGMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZ6TTQuOCA0NzZsMjMuMy0xODRjMS4yLTkuMyA2LjMtMTcuNiAxNC4yLTIyLjdsMTQ4LjQtOTcuN2MxMC43LTcgMjQuNS03IDM1LjIgMGwxNDguNCA5Ny43YzcuOCA1LjEgMTMgMTMuNCAxNC4yIDIyLjdsMjMuMyAxODRjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2bC00OS43IDBjLTExLjIgMC0yMS41LTUuOC0yNy4zLTE1LjRsLTc3LTEyNi43Yy0xLjctMi44LTQuOC00LjYtOC4xLTQuNi01LjMgMC05LjUgNC4zLTkuNSA5LjVsMCAxMDUuMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzNi41IDUxMmMtMTkuMyAwLTM0LjItMTYuOS0zMS43LTM2eiJdfSxzdj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtdWctaG90IixpY29uOls1NzYsNTEyLFs5NzQ5XSwiZjdiNiIsIk0xNTItMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxYzE2LjMgMTQuMyAyMy44IDIxLjggMjMuOCAzNy45IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzE4My41IDMxLjcgMTc2IDI0LjEgMTc2IDggMTc2LTUuMyAxNjUuMy0xNiAxNTItMTZ6TTk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMGM0MS44IDAgNzcuNC0yNi43IDkwLjUtNjRsNS41IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTNTE4LjcgMTkyIDQ0OCAxOTJMOTYgMTkyek00NDggMzg0bDAtMTI4YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0ek0yODggOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyNDAtNS4zIDI0MCA4YzAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxYzE2LjMgMTQuMyAyMy44IDIxLjggMjMuOCAzNy45IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzI5NS41IDMxLjcgMjg4IDI0LjEgMjg4IDh6Il19LE13ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib2x0IixpY29uOls0NDgsNTEyLFs5ODg5LCJ6YXAiXSwiZjBlNyIsIk0zMzguOC05LjljMTEuOSA4LjYgMTYuMyAyNC4yIDEwLjkgMzcuOEwyNzEuMyAyMjQgNDE2IDIyNGMxMy41IDAgMjUuNSA4LjQgMzAuMSAyMS4xcy43IDI2LjktOS42IDM1LjVsLTI4OCAyNDBjLTExLjMgOS40LTI3LjQgOS45LTM5LjMgMS4zcy0xNi4zLTI0LjItMTAuOS0zNy44TDE3Ni43IDI4OCAzMiAyODhjLTEzLjUgMC0yNS41LTguNC0zMC4xLTIxLjFzLS43LTI2LjkgOS42LTM1LjVsMjg4LTI0MGMxMS4zLTkuNCAyNy40LTkuOSAzOS4zLTEuM3oiXX0sYm5hPU13ZSx2bmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamFyIixpY29uOlszMjAsNTEyLFtdLCJlNTE2IiwiTTMyLThjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgMTZDNDIuNyAxNiAzMiA1LjMgMzItOHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptOTYgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDE5MnoiXX0seG5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLXBsYW5lIixpY29uOls2NDAsNTEyLFtdLCJlNThmIiwiTTE0NCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDI3LjNjMCA3LjEgLjkgMTQuMSAyLjcgMjAuN0wxOTIgNDgwIDgzLjkgNTA3QzczLjggNTA5LjYgNjQgNTAxLjkgNjQgNDkxLjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDc0LTU5LjIgMC01Ny42LTEyMi4xIDQ4LjhDMTEuNCAzOTUuNCAwIDM4Ny43IDAgMzc2LjRsMC00NGMwLTggMy0xNS42IDguMy0yMS41TDE0NCAxNjEuNiAxNDQgNDh6bTIyNCA4MGwxOTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2MGMwIDI2LjItMTIuNiA0OS40LTMyIDY0bDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDhjLTE5LjQtMTQuNi0zMi0zNy44LTMyLTY0bDAtMTYwYzAtNDQuMiAzNS44LTgwIDgwLTgwem0wIDE3NmwxOTIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMnptMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTIxNi0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx5bmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWhlYXJ0IixpY29uOls1NzYsNTEyLFtdLCJmNGJlIiwiTTI3OS42IDMxQzI2NS41IDExLjUgMjQyLjkgMCAyMTguOSAwIDE3Ny41IDAgMTQ0IDMzLjUgMTQ0IDc0LjlsMCAyLjRjMCA2NC40IDgyIDEzMy40IDEyMi4yIDE2My4zIDEzIDkuNyAzMC41IDkuNyA0My41IDAgNDAuMi0zMCAxMjIuMi05OC45IDEyMi4yLTE2My4zbDAtMi40YzAtNDEuNC0zMy41LTc0LjktNzQuOS03NC45LTI0IDAtNDYuNiAxMS41LTYwLjcgMzFMMjg4IDQyLjcgMjc5LjYgMzF6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxOYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yb3RhdGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbODYzNCwiYXJyb3ctbGVmdC1yb3RhdGUiLCJhcnJvdy1yb3RhdGUtYmFjayIsImFycm93LXJvdGF0ZS1iYWNrd2FyZCIsInVuZG8iXSwiZjBlMiIsIk0yNTYgNjRjLTU2LjggMC0xMDcuOSAyNC43LTE0My4xIDY0bDQ3LjEgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwUzY0IDE0LjMgNjQgMzJsMCA1NC43QzExMC45IDMzLjYgMTc5LjUgMCAyNTYgMCAzOTcuNCAwIDUxMiAxMTQuNiA1MTIgMjU2UzM5Ny40IDUxMiAyNTYgNTEyYy04NyAwLTE2My45LTQzLjQtMjEwLjEtMTA5LjctMTAuMS0xNC41LTYuNi0zNC40IDcuOS00NC42czM0LjQtNi42IDQ0LjYgNy45YzM0LjggNDkuOCA5Mi40IDgyLjMgMTU3LjYgODIuMyAxMDYgMCAxOTItODYgMTkyLTE5MlMzNjIgNjQgMjU2IDY0eiJdfSx3bmE9TmIsa25hPU5iLFNuYT1OYixfbmE9TmIsendlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtYW5ncnkiLGljb246WzUxMiw1MTIsWzEyODU0NCwiYW5ncnkiXSwiZjU1NiIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yNTYgMzY4YzI0LjEgMCA0NS40IDExLjggNTguNSAzMCA3LjcgMTAuOCAyMi43IDEzLjIgMzMuNSA1LjVzMTMuMi0yMi43IDUuNS0zMy41Yy0yMS43LTMwLjItNTcuMy01MC05Ny41LTUwcy03NS43IDE5LjgtOTcuNSA1MGMtNy43IDEwLjgtNS4zIDI1LjggNS41IDMzLjVzMjUuOCA1LjMgMzMuNS01LjVjMTMuMS0xOC4yIDM0LjQtMzAgNTguNS0zMHptLTgwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtLjMgOS43IDMuMmMxMC41IDMuNSAyMS44LTIuMiAyNS4zLTEyLjZzLTIuMi0yMS44LTEyLjYtMjUuM2wtOTYtMzJjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNsMjguOSA5LjZjLTQuMSA1LjQtNi42IDEyLjEtNi42IDE5LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTcuMy0yLjQtMTQtNi42LTE5LjRsMjguOS05LjZjMTAuNS0zLjUgMTYuMS0xNC44IDEyLjYtMjUuM3MtMTQuOC0xNi4xLTI1LjMtMTIuNmwtOTYgMzJjLTEwLjUgMy41LTE2LjEgMTQuOC0xMi42IDI1LjNzMTQuOCAxNi4xIDI1LjMgMTIuNmw5LjctMy4yIDAgLjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnoiXX0sTW5hPXp3ZSx6bmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVyc3QiLGljb246WzUxMiw1MTIsW10sImU0ZGMiLCJNMzcuNiA0LjJDMjgtMi4zIDE1LjItMS4xIDcgN1MtMi4zIDI4IDQuMiAzNy42bDExMiAxNjMuMy05OS42IDMyLjNDNi43IDIzNi40IDAgMjQ1LjYgMCAyNTZzNi43IDE5LjYgMTYuNiAyMi44bDEwMy4xIDMzLjQtNTIuOSAxMDAuNmMtNC45IDkuMy0zLjIgMjAuNyA0LjMgMjguMXMxOC44IDkuMiAyOC4xIDQuM2wxMDAuNi01Mi45IDMzLjQgMTAzLjFjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42czE5LjYtNi43IDIyLjgtMTYuNmwzMy40LTEwMy4xIDEwMC42IDUyLjljOS4zIDQuOSAyMC43IDMuMiAyOC4xLTQuM3M5LjItMTguOCA0LjMtMjguMWwtNTIuOS0xMDAuNiAxMDMuMS0zMy40YzkuOS0zLjIgMTYuNi0xMi40IDE2LjYtMjIuOHMtNi43LTE5LjYtMTYuNi0yMi44bC0xMDYuNS0zNC41IDI1LjctNzAuNGMzLjItOC44IDEtMTguNi01LjYtMjUuMnMtMTYuNC04LjgtMjUuMi01LjZsLTcwLjQgMjUuNy0zNC41LTEwNi41QzI3NS42IDYuNyAyNjYuNCAwIDI1NiAwcy0xOS42IDYuNy0yMi44IDE2LjZMMjAwLjkgMTE2LjIgMzcuNiA0LjJ6Il19LENuYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ6IixpY29uOlszODQsNTEyLFsxMjJdLCI1YSIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDMyMCAwYzEyLjQgMCAyMy43IDcuMiAyOSAxOC40czMuNiAyNC41LTQuNCAzNC4xTDEwMC4zIDQxNiAzNTIgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTIuNCAwLTIzLjctNy4yLTI5LTE4LjRzLTMuNi0yNC41IDQuNC0zNC4xTDI4My43IDk2IDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LEN3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW5kYWdlIixpY29uOls1NzYsNTEyLFsxMjk2NTcsImJhbmQtYWlkIl0sImY0NjIiLCJNNDY0IDQxNmw0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC00OCAwIDAgMzIwek00MTYgOTZsLTI1NiAwIDAgMzIwIDI1NiAwIDAtMzIwek02NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDggMCAwLTMyMC00OCAwek0yMTYgMjA4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIxNiAzMDRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sVG5hPUN3ZSwkbmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTU2IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyMjhhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDEgMCAwIDQwem0wLTE4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sRG5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cy1zaWRlIixpY29uOls2NDAsNTEyLFtdLCJlODFkIiwiTTQ4MCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC01LjYgMGMtMTMuMiAzNy4zLTQ4LjYgNjQtOTAuNCA2NHMtNzcuMy0yNi43LTkwLjQtNjRsLTEzOS4xIDBjLTEzLjIgMzcuMy00OC43IDY0LTkwLjQgNjRzLTc3LjItMjYuNy05MC40LTY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDQzIDQzIDAgOTYgMEw0ODAgMHpNMTYwIDM2OGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6bTMyMCAwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnptMC0zMDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC01My00My05Ni05Ni05NnpNMjQ4IDIyNGwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMDQgMCAwIDE2MHpNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTA0IDAgMC0xNjAtMTA0IDB6Il19LExuYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWdzIixpY29uOls1NzYsNTEyLFtdLCJlNGQwIiwiTTQ0Ny41IDE3NC42YzguOC04LjQgMjIuNy04LjkgMzIuMi0uOHMxMSAyMS45IDQuMSAzMS45bC0xLjUgMS45LTIzIDI2LjdjMjYuNyAxMy41IDQ2LjMgMzkuMSA1MS40IDY5LjZsMjUuMyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgMzIgMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjUuMyAwYy03LjYgNDUuNC00Ny4xIDgwLTk0LjcgODBzLTg3LTM0LjYtOTQuNy04MEwyOTYgNDMyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI1LjMgMGM1LjEtMzAuNSAyNC43LTU2LjEgNTEuNC02OS42bC0yMi45LTI2LjdjLTguNi0xMC4xLTcuNS0yNS4yIDIuNi0zMy44czI1LjItNy41IDMzLjggMi42bDI5LjggMzQuOCAyOS44LTM0LjggMS43LTEuOHptLTI1Ni0xOTJjOC44LTguNCAyMi43LTguOSAzMi4yLS44czExIDIxLjkgNC4xIDMxLjlsLTEuNSAxLjktMjMgMjYuN0MyMzAgNTUuOSAyNDkuNSA4MS41IDI1NC43IDExMmwyNS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCAzMiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNS4zIDBjLTcuNiA0NS40LTQ3LjEgODAtOTQuNyA4MHMtODctMzQuNi05NC43LTgwTDQwIDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtMzItMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNS4zIDBDNzAuNSA4MS41IDkwIDU1LjkgMTE2LjcgNDIuNEw5My44IDE1LjZDODUuMiA1LjYgODYuMy05LjYgOTYuNC0xOC4yczI1LjItNy41IDMzLjggMi42bDI5LjggMzQuOCAyOS44LTM0LjggMS43LTEuOHoiXX0sVHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlZXItbXVnLWVtcHR5IixpY29uOls1NzYsNTEyLFsiYmVlciJdLCJmMGZjIiwiTTY0IDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI4OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYgNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwOC4yYzAgMjQuMi0xMy43IDQ2LjQtMzUuNCA1Ny4yTDQ0OCAzNzEuOCA0NDggMzg0YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDY0IDgwek00NDggMzAwLjJsNjQtMzIgMC0xMDguMi02NCAwIDAgMTQwLjJ6TTE5MiAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHptODggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6Il19LEVuYT1Ud2UsUG5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1M2UiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sSW5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXBsZXIiLGljb246WzY0MCw1MTIsW10sImU1YWYiLCJNNjQwIDI5OS4zTDY0MCA0MzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwIDAtNDgtMzUyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTE2LjYtMzAuMi01LjRjLTE5LjYtMy41LTMzLjgtMjAuNS0zMy44LTQwLjQgMC04LjkgMi45LTE3LjUgOC4yLTI0LjZsMzUuNi00Ny41YzMyLjgtNDMuOCA4NC40LTY5LjYgMTM5LjEtNjkuNiAyNyAwIDUzLjYgNi4zIDc3LjggMTguNEw1ODYuOSAyMTMuNUM2MTkuNSAyMjkuNyA2NDAgMjYzIDY0MCAyOTkuM3pNNDQ4IDMwNGwwLTE2LTMyMC01Ny4xIDAgNzMuMSAzMjAgMHoiXX0sQW5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTExIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxObmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibmFpcmEtc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTFmNiIsIk0xMjIuNiA0Ni4zYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVM2NCA0OS45IDY0IDY0bDAgMTkyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDE0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTQ0IDg5LjUgMCAxMDcuOCAxNjEuOGM3LjggMTEuNyAyMi40IDE3IDM1LjkgMTIuOVMzODQgNDYyLjEgMzg0IDQ0OGwwLTE0NCAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTkyLTU3LjUgMC0xMzkuOC0yMDkuN3pNMjk0LjUgMzA0bDI1LjUgMCAwIDM4LjMtMjUuNS0zOC4zek0xODUuNSAyNTZsLTU3LjUgMCAwLTg2LjMgNTcuNSA4Ni4zeiJdfSxLb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2lmaSIsaWNvbjpbNTc2LDUxMixbIndpZmktMyIsIndpZmktc3Ryb25nIl0sImYxZWIiLCJNMjg4IDk2Yy05MC45IDAtMTczLjIgMzYtMjMzLjcgOTQuNi0xMi43IDEyLjMtMzMgMTItNDUuMi0uN3MtMTItMzMgLjctNDUuMkM4MS43IDc0LjkgMTc5LjkgMzIgMjg4IDMyUzQ5NC4zIDc0LjkgNTY2LjMgMTQ0LjdjMTIuNyAxMi4zIDEzIDMyLjYgLjcgNDUuMnMtMzIuNiAxMy00NS4yIC43QzQ2MS4yIDEzMiAzNzguOSA5NiAyODggOTZ6TTI0MCA0MzJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTY4IDMyNi4yYy0xMS43IDEzLjMtMzEuOSAxNC41LTQ1LjIgMi44cy0xNC41LTMxLjktMi44LTQ1LjJDMTYxIDIzNy40IDIyMS4xIDIwOCAyODggMjA4czEyNyAyOS40IDE2OCA3NS44YzExLjcgMTMuMyAxMC40IDMzLjUtMi44IDQ1LjJzLTMzLjUgMTAuNC00NS4yLTIuOEMzNzguNiAyOTIuOSAzMzUuOCAyNzIgMjg4IDI3MnMtOTAuNiAyMC45LTEyMCA1NC4yeiJdfSxSbmE9S29lLE9uYT1Lb2UsbWY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktY2hlY2stZG9sbGFyIixpY29uOls1MTIsNTEyLFsibW9uZXktY2hlY2stYWx0Il0sImY1M2QiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTI5NiAyODhsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0tMjQtODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTQ4IDE0NGMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN0M5NC41IDI2OCA3NiAyNDYuMSA3NiAyMjAuNSA3NiAxOTEuNyA5OS4yIDE2OC4zIDEyOCAxNjhsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sRm5hPW1mLCR3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleWUtbG93LXZpc2lvbiIsaWNvbjpbNTc2LDUxMixbImxvdy12aXNpb24iXSwiZjJhOCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTIwNC41IDEzOC43YzIzLjUtMTYuOCA1Mi40LTI2LjcgODMuNS0yNi43IDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgMzEuMS05LjkgNTkuOS0yNi43IDgzLjVsLTM0LjctMzQuN2MxMi43LTIxLjQgMTctNDcuNyAxMC4xLTczLjctMTMuNy01MS4yLTY2LjQtODEuNi0xMTcuNi02Ny45LTguNiAyLjMtMTYuNyA1LjctMjQgMTBsLTM0LjctMzQuN3pNODggMTU3LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMMzI4LjIgNDY2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw4OCAxNTcuOXpNNDUuNyAyNTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxODEuOSA0NTUuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDUuNyAyNTEuM3oiXX0sQm5hPSR3ZSxEd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LXVwIixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLXVwIl0sImYwYWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE3LTM3N2w4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zOS0zOSAwIDE1MC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTUwLjEtMzkgMzljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODAtODBjOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LEhuYT1Ed2UscW5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yZXRybyIsaWNvbjpbNTEyLDUxMixbMTI4MjQ3XSwiZjA4MyIsIk0wIDQxNmwwLTIwOCAxMzYuMiAwYzEzLjUtMjAuMiAzMi0zNi44IDUzLjctNDhMMCAxNjAgMCAxMjUuN2MwLTM1LjMgMjguNy02NCA2NC02NGwuMSAwQzY1LjMgNDUuMSA3OS4xIDMyIDk2IDMybDMyIDBjMTYuOSAwIDMwLjcgMTMuMSAzMS45IDI5LjdsMzIuMSAwIDUxLjItMjMuOGM4LjQtMy45IDE3LjYtNiAyNi45LTZMNDQ4IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjQtMTkwIDBjMjEuNyAxMS4yIDQwLjIgMjcuOCA1My43IDQ4bDEzNi4yIDAgMCAyMDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMjU2IDE5MmE5Ni4xIDk2LjEgMCAxIDAgMCAxOTIuMSA5Ni4xIDk2LjEgMCAxIDAgMC0xOTIuMXoiXX0sam5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcHN1bGVzIixpY29uOls1NzYsNTEyLFtdLCJmNDZiIiwiTTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyLTk2IDAgMC0xMTJ6bS02NCAwbDAgMjg4YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJsMC0xMDUuOCAxMTYuMyAxNjkuNWMzNS41IDUxLjcgMTA1LjMgNjQuMyAxNTYgMjguMXM2My0xMDcuNSAyNy41LTE1OS4yTDQyNy4zIDE0NS4zYy0zNS41LTUxLjctMTA1LjMtNjQuMy0xNTYtMjguMS01LjYgNC0xMC43IDguNC0xNS4zIDEzLjFsMC0xOC4zQzI1NiA1MC4xIDIwNS45IDAgMTQ0IDBTMzIgNTAuMSAzMiAxMTJ6TTI5Ni42IDI0MC4yYy0xNi0yMy4zLTEwLTU1LjMgMTEuOS03MSAyMS4yLTE1LjEgNTAuNS0xMC4zIDY2IDEyLjJsNjcgOTcuNi03OS45IDU1LjktNjUtOTQuOHoiXX0sVm5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvbyIsaWNvbjpbNTEyLDUxMixbMTI4MTY5XSwiZjJmZSIsIk0yNjguOSAuOWMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjRjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDQ0LjEtMzUuNyA3OS45LTc5LjggODBMMTYwIDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjQgMCAxOS4xIDguNCAzNi4zIDIxLjcgNDhMMTA0IDI0MGMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAyMy4yIDExIDQzLjggMjggNTctMzQuMSA1LjctNjAgMzUuMy02MCA3MSAwIDM5LjggMzIuMiA3MiA3MiA3MmwzNjggMGMzOS44IDAgNzItMzIuMiA3Mi03MiAwLTM1LjctMjUuOS02NS4zLTYwLTcxIDE3LTEzLjIgMjgtMzMuOCAyOC01NyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtMTMuNyAwYzEzLjMtMTEuNyAyMS43LTI4LjkgMjEuNy00OCAwLTM1LjMtMjguNy02NC02NC02NGwtNS41IDBjMy41LTEwIDUuNS0yMC44IDUuNS0zMiAwLTQ4LjYtMzYuMi04OC44LTgzLjEtOTUuMXpNMTkyIDI1NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTY0IDEwOC4zYzAgMi40LS43IDQuOC0yLjIgNi43LTguMiAxMC41LTM5LjUgNDUtOTMuOCA0NXMtODUuNi0zNC42LTkzLjgtNDVjLTEuNS0xLjktMi4yLTQuMy0yLjItNi43IDAtNi44IDUuNS0xMi4zIDEyLjMtMTIuM2wxNjcuNCAwYzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM3oiXX0sTHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZSIsaWNvbjpbNTEyLDUxMixbMTI4MjY1LCJ2b2x1bWUtbWVkaXVtIl0sImY2YTgiLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTQ0MS4xIDEwN2MtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzQ0My4zIDE3MC43IDQ2NCAyMTAuOSA0NjQgMjU2cy0yMC43IDg1LjMtNTMuMiAxMTEuOGMtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNWM0My4yLTM1LjIgNzAuOS04OC45IDcwLjktMTQ5cy0yNy43LTExMy44LTcwLjktMTQ5em0tNjAuNSA3NC41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzYxLjEgMjI3LjYgMzY4IDI0MSAzNjggMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDAyLjEgMzEyLjkgNDE2IDI4Ni4xIDQxNiAyNTZzLTEzLjktNTYuOS0zNS41LTc0LjV6Il19LFVuYT1Md2UsV25hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVsZXZhdG9yIixpY29uOls1MTIsNTEyLFtdLCJlMTZkIiwiTTI5Mi43LTQuN2w2NCA2NGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw2NC02NGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzQzOC41LTMyIDQzMi0zMkwzMDQtMzJjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNHptLTE2MC0yMi42bC02NCA2NGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNFM3My41IDY0IDgwIDY0bDEyOCAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC02NC02NGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4em05NiA5NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTgwIDQwMGMwLTI2LjUgMjEuNS00OCA0OC00OGw2NCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6bTE5MiAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMzItMTI4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LEduYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWciLGljb246WzUxMiw1MTIsWzEyNzk5MV0sImYwMmIiLCJNMzIuNSA5NmwwIDE0OS41YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDE5MiAxOTJjMjUgMjUgNjUuNSAyNSA5MC41IDBMNDgzLjIgMzMzLjNjMjUtMjUgMjUtNjUuNSAwLTkwLjVsLTE5Mi0xOTJDMjc5LjIgMzguNyAyNjMgMzIgMjQ2IDMyTDk2LjUgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0em0xMTIgMTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxLbmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtbWludXMiLGljb246WzU3Niw1MTIsW10sImU0ZWQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2eiJdfSxFd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bi1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy1hbHQtZG93biJdLCJmMzA5IiwiTTEzNy40IDUzNC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzAwLjkgMzUyIDI4OCAzNTJsLTY0IDAgMC0zMzZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzM2LTY0IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjIgMzk3LjUgOS40IDQwNi42bDEyOCAxMjh6Il19LFluYT1Fd2UsWm5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhY3QtZGlzYyIsaWNvbjpbNTEyLDUxMixbMTI4MTkxLDEyODE5MiwxMjg0NDBdLCJmNTFmIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiAzMmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS05Ni0zMmE5NiA5NiAwIDEgMCAxOTIgMCA5NiA5NiAwIDEgMCAtMTkyIDB6bS01Ni0xNmMwLTMyLjQgMTYuMy02Ni42IDQyLjgtOTMuMlMyMDcuNiAxMDQgMjQwIDEwNGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNDcuOSAwLTkzLjcgMjMuNS0xMjcuMSA1Ni45UzU2IDE5Mi4xIDU2IDI0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0eiJdfSxYbmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2Utcm9sbGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjVjMSIsIk0xNDQgMjRjMC00LjQgMy42LTggOC04bDgwIDBjNC40IDAgOCAzLjYgOCA4bDAgNzItOTYgMCAwLTcyek0zMjAgOTZsLTMyIDAgMC03MmMwLTMwLjktMjUuMS01Ni01Ni01NmwtODAgMEMxMjEuMS0zMiA5Ni02LjkgOTYgMjRsMCA3Mi0zMiAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODhjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTEyMCAyMDhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFB3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXF1cmFuIixpY29uOls0NDgsNTEyLFsicXVyYW4iXSwiZjY4NyIsIk02NCA1MTJsMjg4IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMyMGMwLTUzLTQzLTk2LTk2LTk2TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgMzM2YzAgMjAuOSAxMy40IDM4LjcgMzIgNDUuM0wzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMHpNMzUyIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDAgMC02NCAyNTYgMHpNMjczLjEgMTQ0LjRjMi41LTYuMSAxMS4yLTYuMSAxMy43IDBsMTAuMyAyNC44IDI2LjggMi4xYzYuNiAuNSA5LjIgOC43IDQuMiAxM0wzMDcuOCAyMDEuOSAzMTQgMjI4YzEuNSA2LjQtNS41IDExLjUtMTEuMSA4LjFsLTIyLjktMTQtMjIuOSAxNGMtNS42IDMuNC0xMi42LTEuNi0xMS4xLTguMWw2LjItMjYuMS0yMC40LTE3LjVjLTUtNC4zLTIuMy0xMi41IDQuMi0xM2wyNi44LTIuMSAxMC4zLTI0Ljh6TTEwMCAxOTJjMC02OC41IDU1LjUtMTI0IDEyNC0xMjQgMjMuOCAwIDQ2LjEgNi43IDY1IDE4LjQgNC44IDIuOSA2LjkgOC44IDUgMTQuMXMtNy4xIDguNi0xMi43IDhjLTMuMS0uMy02LjItLjUtOS40LS41LTQ2LjQgMC04NCAzNy42LTg0IDg0czM3LjYgODQgODQgODRjMy4yIDAgNi4zLS4yIDkuNC0uNSA1LjYtLjYgMTAuOCAyLjcgMTIuNyA4cy0uMyAxMS4yLTUgMTQuMWMtMTguOSAxMS43LTQxLjIgMTguNC02NSAxOC40LTY4LjUgMC0xMjQtNTUuNS0xMjQtMTI0eiJdfSxRbmE9UHdlLEpuYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjNkZCIsIk01MzUtMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTM3LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTQxLjUgMzY4LjZDODkuMiAzMTAuNSA1MS42IDIzOC44IDM0LjggMTU5LjQgMTguNyA4My4xIDczLjkgMjAuNiAxMzguNSAyLjlsNS41LTEuNWMxOS43LTUuNCA0MC4zIDQuNyA0OC4xIDIzLjVsNDAuNSA5Ny4zYzYuOSAxNi41IDIuMSAzNS42LTExLjggNDdsLTQ0LjEgMzYuMWMxMi45IDI4LjUgMjkuNiA1NC44IDQ5LjUgNzguNUw1MzUtMjQuOXptLTE1MC40IDUzNGMtNjMtMTMuNC0xMjEuMy0zOS44LTE3MS43LTc2LjNMMjk3LjggMzQ4YzEyLjIgOC4yIDI1IDE1LjYgMzguMyAyMi4yTDM3NC43IDMyM2MxMS4zLTEzLjkgMzAuNC0xOC42IDQ3LTExLjhMNTE5IDM1MS44YzE4LjggNy44IDI4LjkgMjguNCAyMy41IDQ4LjFsLTEuNSA1LjVjLTE3LjYgNjQuNi04MC4yIDExOS44LTE1Ni40IDEwMy43eiJdfSxlbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NjQiLCJNMjg4IDMybC03Ni4zIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjUgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OWMzNS4yLTM5LjkgODYuNy02NSAxNDQtNjUgOSAwIDE3LjggLjYgMjYuNSAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSx0bGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvcC1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNGE1IiwiTTIxLjUgMTgxLjFMNzguMyA2Ny40Qzg5LjIgNDUuNyAxMTEuMyAzMiAxMzUuNiAzMmwzMDQuOSAwYzI0LjIgMCA0Ni40IDEzLjcgNTcuMiAzNS40bDU1LjYgMTExLjFjLTguMi0xLjYtMTYuNi0yLjUtMjUuMi0yLjUtNTMuNyAwLTk5LjcgMzMuMS0xMTguNyA4MGwtNTcuMyAwIDAgMTc2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNzYuMWMtMjYuOC0xLjktNDgtMjQuMy00OC01MS42IDAtOCAxLjktMTYgNS41LTIzLjJ6TTEyOCAyNTZsMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMi0xNjAgMHptNDMyIDQ4LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek00MTYgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxJd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2UtcG9ydHJhaXQiLGljb246WzM4NCw1MTIsWyJwb3J0cmFpdCJdLCJmM2UwIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNODAgMzY4YzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0xOTIgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxhbGE9SXdlLHNsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDAgMCAzMi4yYzEzLjggLjYgMjcuMiAyLjggNDAgNi40bDAgNTAuN2MtMTQuOC02LTMxLTkuMy00OC05LjMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhsMCAyNC40Yy0uNCAuMy0uNyAuNi0xLjEgMS0xNy4zLTI1LTQ2LjItNDEuMy03OC45LTQxLjMtNTMgMC05NiA0My05NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0em00MjQgNjguNmwwLTM2LjYtODAgMCAwIDY0IDE4LjggMGMxOC4yLTEyLjggMzguOS0yMi4yIDYxLjItMjcuNHpNMjE2IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6bS00OCAwbC04MCAwIDAgNjQgODAgMCAwLTY0ek00OTYgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxpbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFtbWVyIixpY29uOls2NDAsNTEyLFsxMjgyOTZdLCJmNmUzIiwiTTI0Ni45IDE4LjNMMjcxIDMuOGMyMS42LTEzIDQ2LjMtMTkuOCA3MS41LTE5LjggMzYuOCAwIDcyLjIgMTQuNiA5OC4yIDQwLjdsNjMuOSA2My45YzE1IDE1IDIzLjQgMzUuNCAyMy40IDU2LjZsMCAzMC45IDE5LjcgMTkuNyAwIDBjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDBzMTUuNiA0MC45IDAgNTYuNmwtNjQgNjRjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42TDQ2NCAyNDAgNDMzLjEgMjQwYy0yMS4yIDAtNDEuNi04LjQtNTYuNi0yMy40bC00OS4xLTQ5LjFjLTE1LTE1LTIzLjQtMzUuNC0yMy40LTU2LjZsMC0xMi43YzAtMTEuMi01LjktMjEuNy0xNS41LTI3LjRsLTQxLjYtMjVjLTEwLjQtNi4yLTEwLjQtMjEuMiAwLTI3LjR6TTUwLjcgNDAyLjdsMjIyLjEtMjIyLjEgOTAuNSA5MC41LTIyMi4xIDIyMi4xYy0yNSAyNS02NS41IDI1LTkwLjUgMHMtMjUtNjUuNSAwLTkwLjV6Il19LEF3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC0xLTkiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtdXAiXSwiZjE2MyIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTQxOC43IDM4Yy04LjMtNi0xOS4xLTcuNy0yOC44LTQuNGwtNDggMTZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmw1LjktMiAwIDUxLjYtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOTZjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6TTM2NS4xIDQzMC42Yy05LjYgMTQuOC01LjQgMzQuNiA5LjQgNDQuM3MzNC42IDUuNCA0NC4zLTkuNGw0Mi4xLTY0LjljMTIuNC0xOS4yIDE5LjEtNDEuNiAxOS4xLTY0LjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi4xIDIzLjkgNjYuNyA1Ni44IDc2LjZsLTExLjcgMTh6TTM3NiAzMzZhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0scmxhPUF3ZSxvbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOlszODQsNTEyLFs5ODIyXSwiZjQ0MSIsIk0xOTItMzJjMTA2IDAgMTkyIDg2IDE5MiAxOTJsMCAxMzMuNWMwIDE3LTYuOCAzMy4yLTE4LjcgNDUuMkwzMjAgMzg0IDM3MC44IDQzNC43YzguNSA4LjUgMTMuMiAyMCAxMy4yIDMyIDAgMjUtMjAuMyA0NS4yLTQ1LjIgNDUuM0w0NS4zIDUxMmMtMjUgMC00NS4yLTIwLjMtNDUuMi00NS4zIDAtMTIgNC44LTIzLjUgMTMuMi0zMkw2NCAzODQgNjQgMzQ5LjRjMC0xOC43IDguMi0zNi40IDIyLjMtNDguNmw4OS43LTc2LjgtNDggMC0xMi4xIDEyLjFjLTEyLjcgMTIuNy0zMCAxOS45LTQ4IDE5LjktMzcuNSAwLTY3LjktMzAuNC02Ny45LTY3LjlsMC04LjdjMC0yMi44IDguMi00NC45IDIzLjEtNjIuM0w5NiAzMiA5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6TTE2MCA3MmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6Il19LG5sYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbG9vZC13YXRlci1jaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzY0MCw1MTIsW10sImU1MGYiLCJNMjg4LjUgMTEyYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTE0MS4yIDQ0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNTYgNTZjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTU2IDU2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDI4LjctMjguNy04OS40IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODkuNCAwLTI4LjctMjguN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6TTMzNi41IDExMmMwIDcxLjEtMzguNiAxMzMuMS05NiAxNjYuM2wwIDEyLjhjMjIuMSA0LjUgNDMuNCAxMy45IDYyLjQgMjguMiAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDYtNC41IDEyLjYtOCAxOS4zLTEwLjRsMC0xMTUuMiA0LjUgMGMxNS4yIDAgMjcuNS0xMi4zIDI3LjUtMjcuNSAwLTcuOS0zLjQtMTUuNS05LjQtMjAuN0w0NDQuNSAxMC41QzQzNi44IDMuNyA0MjYuOCAwIDQxNi41IDBzLTIwLjMgMy43LTI4IDEwLjVMMzI5LjkgNjEuOGM0LjMgMTYgNi42IDMyLjggNi42IDUwLjJ6bTMyIDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OHpNNDc1LjEgNDEyLjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zUzI5MCAzOTEuOCAyNjYgMzczLjdjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdzLTUuOSAyNS42IDQuNyAzMy42YzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptLTcxLjIgOTZjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zUzI5MCA0ODcuOCAyNjYgNDY5LjdjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdzLTUuOSAyNS42IDQuNyAzMy42YzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sZ2Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rIl0sImYwOGUiLCJNMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODIuNyAwLTIwMS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDQ0OCAxMDkuMyA0NDggMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDB6TTgwIDk2QzM1LjggOTYgMCAxMzEuOCAwIDE3NkwwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2TDgwIDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmw4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDk2eiJdfSxsbGE9Z2YsY2xhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tdXAtYWNyb3NzLWxpbmUiLGljb246WzUxMiw1MTIsW10sImU0YWYiLCJNMjY1LjQgMTA1LjRsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNCAwIDExNC43IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgMTE0LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgNDAyLjcgOTYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMjAgMCAwLTExNC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6TTQxNiAzMzZsMCAxNDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQgNjQgMHpNOTYgMTc2TDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDQtNjQgMHoiXX0sTndlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTYsImdyaW4tYmVhbSJdLCJmNTgyIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGRsYT1Od2UsUndlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3RhbmdsZS1hZCIsaWNvbjpbNTEyLDUxMixbImFkIl0sImY2NDEiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTQxNiAxODRsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjQtNy4xIDAtMTMuNS0zLjEtMTcuOS04LTEwLjIgNS4xLTIxLjggOC0zNC4xIDgtNDIgMC03Ni0zNC03Ni03NnMzNC03NiA3Ni03NmM5LjkgMCAxOS4zIDEuOSAyOCA1LjNsMC0yMS4zYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bS00OCA5MmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0xNjAgMjA4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMiA0OCAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0zMiA5NmwtNDggMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNHoiXX0sdWxhPVJ3ZSxPd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay10YW5ha2giLGljb246WzQ0OCw1MTIsWyJ0YW5ha2giXSwiZjgyNyIsIk0zNTIgNTEyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTY2LjdDMTMuNCAzNzQuNyAwIDM1Ni45IDAgMzM2TDAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDM1MiAwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMjBjMCA1My00MyA5Ni05NiA5NnptMzItOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTI1NiAwIDAgNjQgMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTExMy45IDIyOWMtMS4yIDItMS45IDQuMi0xLjkgNi42IDAgNi45IDUuNiAxMi41IDEyLjUgMTIuNWw1Ni45IDAgMzAuNSA0OS4yYzIuNiA0LjIgNy4yIDYuOCAxMi4yIDYuOHM5LjYtMi42IDEyLjItNi44bDMwLjUtNDkuMiA1Ni45IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtMi4zLS42LTQuNi0xLjktNi42bC0yNy44LTQ1IDI3LjgtNDVjMS4yLTIgMS45LTQuMiAxLjktNi42IDAtNi45LTUuNi0xMi41LTEyLjUtMTIuNWwtNTYuOSAwLTMwLjUtNDkuMkMyMzMuNiA2Ni42IDIyOSA2NCAyMjQgNjRzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LHBsYT1Pd2UsRndlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdC10dWItcGVyc29uIixpY29uOls0NDgsNTEyLFsiaG90LXR1YiJdLCJmNTkzIiwiTTI0MCA0MGMwIDEzLjYgNS44IDI2LjUgMTUuOCAzNS42bDI2LjUgMjMuOGMyNCAyMS42IDM3LjcgNTIuMyAzNy43IDg0LjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xOC43LTcuOS0zNi40LTIxLjgtNDguOWwtMjYuNS0yMy44QzIwMy41IDkzLjEgMTkyIDY3LjIgMTkyIDQwIDE5MiAyNi43IDIwMi43IDE2IDIxNiAxNnMyNCAxMC43IDI0IDI0ek0wIDMzNmwwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE5LjcgMGM4LjEgMCAxNi4yIDEuNiAyMy44IDQuNmwxMzcuMSA1NC44YzcuNiAzIDE1LjYgNC42IDIzLjggNC42TDM4NCAyNTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDMzNnptOTYtMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xNTIgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODB6bTEwNC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTMyOCAxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEzLjYgNS44IDI2LjUgMTUuOCAzNS42bDI2LjUgMjMuOGMyNCAyMS42IDM3LjcgNTIuMyAzNy43IDg0LjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xOC43LTcuOS0zNi40LTIxLjgtNDguOWwtMjYuNS0yMy44QzMxNS41IDkzLjEgMzA0IDY3LjIgMzA0IDQwIDMwNCAyNi43IDMxNC43IDE2IDMyOCAxNnpNNjQgNDBhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6Il19LGhsYT1Gd2UsZmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaGFsZi1kYXNoZWQiLGljb246WzM4NCw1MTIsW10sImU2OTgiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCAyNTYgMzg0IDAgMC0xNDkuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnpNMCAzNTJsMCA2NCA2NCAwIDAtNjQtNjQgMHpNNjQgNTEybDAtNjQtNjQgMGMwIDM1LjMgMjguNyA2NCA2NCA2NHptMzIgMGw4MCAwIDAtNjQtODAgMCAwIDY0em0xMTIgMGw4MCAwIDAtNjQtODAgMCAwIDY0em0xMTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwtNjQgMCAwIDY0em02NC0xNjBsLTY0IDAgMCA2NCA2NCAwIDAtNjR6Il19LEJ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdXRkZW50IixpY29uOls0NDgsNTEyLFsiZGVkZW50Il0sImYwM2IiLCJNLjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwQzE0LjggOTYgLjQgODEuNyAuNCA2NHptMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TS40IDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0uNyAyNjguNmMtOC4yLTYuNC04LjItMTguOSAwLTI1LjNsMTAxLjktNzkuM2MxMC41LTguMiAyNS44LS43IDI1LjggMTIuNmwwIDE1OC42YzAgMTMuMy0xNS4zIDIwLjgtMjUuOCAxMi42TC43IDI2OC42eiJdfSxtbGE9QndlLGdsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBlYWNlIixpY29uOls0NDgsNTEyLFs5OTk2XSwiZjI1YiIsIk0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIwOC02NCAwIDAtMjA4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNjEuMyA1MS4yTDE0My45IDI0MCA3NC4xIDI0MCAyLjcgNzYuOEMtNC40IDYwLjYgMyA0MS44IDE5LjIgMzQuN1M1NC4yIDM1IDYxLjMgNTEuMnptMjcgMjIxLjNsLS4yLS41IDk1LjkgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02MS43IDBjLTQyLjQgMC04My4xLTE2LjktMTEzLjEtNDYuOUw2OS41IDQ1My41QzQ1LjUgNDI5LjUgMzIgMzk2LjkgMzIgMzYzbDAtMjdjMC0zMi43IDI0LjYtNTkuNyA1Ni4zLTYzLjV6Il19LGJsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtdmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNjQiLCJNMzI5LjcgNDQ4Yy01LjEgMC05LjcgMy43LTkuNyA4LjhsMCA3LjJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTYzLjZjMC0xMi42LTUuMS0yNC41LTEzLjEtMzQuMi0zMS44LTM4LjctNTAuOS04OC4yLTUwLjktMTQyLjIgMC0xMjMuNyAxMDAuMy0yMjQgMjI0LTIyNCAxMTIuNyAwIDIwNiA4My4zIDIyMS43IDE5MS43IC40IDMgMS43IDUuOSAzLjYgOC4zbDM1LjggNDIuOWM3IDguNCAxMC45IDE5LjEgMTAuOSAzMC4xIDAgMjUuOS0yMSA0Ny00NyA0N2wtMSAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA0OGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzguMyAwek0yMjQgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgMjIuOS0yNy43IDM0LjQtNDMuOSAxOC4yLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjljMTYuMiAxNi4yIDQuNyA0My45LTE4LjIgNDMuOS0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0YzIyLjkgMCAzNC40IDI3LjcgMTguMiA0My45LTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGMxNi4yLTE2LjIgNDMuOS00LjcgNDMuOSAxOC4yIDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yMi45IDI3LjctMzQuNCA0My45LTE4LjIgOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy0xNi4yLTE2LjItNC43LTQzLjkgMTguMi00My45IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy0yMi45IDAtMzQuNC0yNy43LTE4LjItNDMuOSA5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0xNi4yIDE2LjItNDMuOSA0LjctNDMuOS0xOC4yIDAtMTMuMy0xMC43LTI0LTI0LTI0em0tMzIgODhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSx2bGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFzcyIsaWNvbjpbNTEyLDUxMixbMTI5NTE3XSwiZjE0ZSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNTAuNy0xODYuOUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMiA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LHhsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tbmliIixpY29uOls1MTIsNTEyLFsxMDAwMV0sImY1YWQiLCJNMzY4LjUgMTguM2wtNTAuMSA1MC4xIDEyNS4zIDEyNS4zIDUwLjEtNTAuMWMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NDcuNyAxOC4zYy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMHpNMjc5LjMgOTcuMmwtLjUgLjEtMTQ0LjEgNDMuMmMtMTkuOSA2LTM1LjcgMjEuMi00Mi4zIDQxTDMuOCA0NDUuOGMtMi45IDguNy0xLjkgMTguMiAyLjUgMjZMMTYxLjcgMzE2LjRjLTEuMS00LTEuNi04LjEtMS42LTEyLjQgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4Yy00LjMgMC04LjUtLjYtMTIuNC0xLjZMNDAuMyA1MDUuN2M3LjggNC40IDE3LjIgNS40IDI2IDIuNWwyNjQuMy04OC42YzE5LjctNi42IDM1LTIyLjQgNDEtNDIuM2w0My4yLTE0NC4xIC4xLS41LTEzNS41LTEzNS41eiJdfSx5bGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvd3MtZG93biIsaWNvbjpbNTEyLDUxMixbXSwiZTU4MSIsIk0xODUuNSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyem0yNDggNzJsNzItNzJjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwek02MC4zIDI5Mi42TDM3LjEgNDc2Yy0yLjQgMTkuMSAxMi41IDM2IDMxLjcgMzZsMTU0LjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExNy40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45bDY4LjIgMTM2LjVjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w3MS45IDBjMTkuMyAwIDM0LjItMTYuOSAzMS43LTM2TDQ1Mi43IDI5Mi43Yy0xLjItOS43LTYuOS0xOC40LTE1LjMtMjMuNEwyNzEuOSAxNjkuOWMtMTAuMi02LjEtMjIuOS02LjEtMzMuMSAuMUw3NS40IDI2OS4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6Il19LEh3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkLWZhc3QiLGljb246WzUxMiw1MTIsWzkxOTcsImZhc3QtZm9yd2FyZCJdLCJmMDUwIiwiTTE5LjggNDc3LjZjMTIgNSAyNS43IDIuMiAzNC45LTYuOUwyMjQgMzAxLjMgMjI0IDQ0OGMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45TDQ0OCAzMDEuMyA0NDggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNDYuNy0xNjkuNC0xNjkuNGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMjI0IDUxLjEgMjI0IDY0TDIyNCAyMTAuNyA1NC42IDQxLjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzAgNTEuMSAwIDY0TDAgNDQ4YzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZ6Il19LHdsYT1Id2Usa2xhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3AiLGljb246WzUxMiw1MTIsW10sImYxMjUiLCJNNDQ4IDEwOS4zbDU0LjYtNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEw0MDIuNyA2NCAxNzYgNjQgMTc2IDEyOCAzMzguNyAxMjggMTI4IDMzOC43IDEyOCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCAxNC4zIDY0IDMybDAgMzItMzIgMEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMzIgMCAwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDggMCAwLTY0LTE2Mi43IDAgMjEwLjctMjEwLjcgMCAzMDYuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTI3NC43eiJdfSxxd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hpc2tleS1nbGFzcyIsaWNvbjpbNDQ4LDUxMixbMTI5MzQ3LCJnbGFzcy13aGlza2V5Il0sImY3YTAiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDM1MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwxOTIgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnpNNjQgMjU2bDAtMTYwIDMyMCAwIDAgMTYwLTMyMCAweiJdfSxTbGE9cXdlLF9sYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUiLGljb246WzQ0OCw1MTIsWzk2MzIsOTcyMyw5NzI0LDYxNTkwXSwiZjBjOCIsIk02NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6Il19LGp3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4iLGljb246WzUxMiw1MTIsWzEyODUxMiwiZ3JpbiJdLCJmNTgwIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxNbGE9andlLHpsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNvbnRyYWN0IixpY29uOlszODQsNTEyLFtdLCJmNTZjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek04OCA2NEM3NC43IDY0IDY0IDc0LjcgNjQgODhzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDY0em0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTcwLjMgMTYwYy0xMS4zIDAtMjEuOSA1LjEtMjguOSAxMy45TDY5LjMgNDA5Yy04LjMgMTAuMy02LjYgMjUuNSAzLjcgMzMuN3MyNS41IDYuNiAzMy43LTMuOGw0Ny4xLTU4LjggMTUuMiA1MC43YzMgMTAuMiAxMi40IDE3LjEgMjMgMTcuMWwxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuMSAwLTE2LjEtNTMuNmMtNC43LTE1LjctMTkuMS0yNi40LTM1LjUtMjYuNHoiXX0sQ2xhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXVwIixpY29uOlszODQsNTEyLFs4OTYzXSwiZjEwNiIsIk0xNjkuNCAxMzcuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDE5MiAyMDUuMyA1NC42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYweiJdfSxWd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zbWlsZSIsaWNvbjpbNTEyLDUxMixbMTI4NTc4LCJzbWlsZSJdLCJmMTE4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sVGxhPVZ3ZSwkbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRyZXNzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTQ0IiwiTTIwOCA0MC4xYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHpNOCAxNDQuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptOTIuNSAxNDEuNGwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMjQ2LjIgMzg0bDI1LjggMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDMyIDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAyNS44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTQzLTEyOSA0OC4zIDY1LjFjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDNDM0IDEzMiAzOTQuMyAxMTIgMzUyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42bDQ4LjMtNjUuMS00MyAxMjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMXoiXX0sRGxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpdmlkZSIsaWNvbjpbNDQ4LDUxMixbMTAxMzUsMjQ3XSwiZjUyOSIsIk0yMjQgNDhhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2OCA0MDhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAweiJdfSxMbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1mb3JrIixpY29uOls0NDgsNTEyLFtdLCJlMTNiIiwiTTgwIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTgwLTI0YzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIuN2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0zMiAwIDAgNzAuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zIDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNsMC03MC43LTMyIDBDOTguMSAyODggNDggMjM3LjkgNDggMTc2bDAtMjIuN0MxOS43IDE0MSAwIDExMi44IDAgODAgMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIwOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI0OCA0MzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sRWxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsYWciLGljb246WzY0MCw1MTIsW10sImU1MGQiLCJNNDcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSA1OS4xbDEwMC41IDk2LjkgMCAzNTYtMjU2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTQ0LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjI4LjUgNTkuMUMyMzUuOSA1MiAyNDUuNyA0OCAyNTYgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjMyIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LFJiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNvbHVtbnMiLGljb246WzUxMiw1MTIsWyJiYW5rIiwiaW5zdGl0dXRpb24iLCJtdXNldW0iLCJ1bml2ZXJzaXR5Il0sImYxOWMiLCJNMjcxLjkgMjAuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhjLTEyLjYgNy4yLTE4LjggMjItMTUuMSAzNlMxNy41IDIwOCAzMiAyMDhsMzIgMCAwIDIwOCAwIDAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZsLTUxLjItMzguNCAwLTIwOCAzMiAwYzE0LjUgMCAyNy4yLTkuOCAzMC45LTIzLjhzLTIuNS0yOC44LTE1LjEtMzZsLTIyNC0xMjh6TTQwMCAyMDhsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwek0yNTYgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxQbGE9UmIsSWxhPVJiLEFsYT1SYixObGE9UmIsUmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1ZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU2OSIsIk0yNCA2NGw1NiAwIDAgMzg0LTU2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0zMi04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwQzEwLjcgMTEyIDAgMTAxLjMgMCA4OFMxMC43IDY0IDI0IDY0em0xMDQgMGwzMjAgMCAwIDM4NC0zMjAgMCAwLTM4NHpNNTc2IDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDMyIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDAgMC0zODQgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHoiXX0sT2xhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtbWVyZ2UiLGljb246WzQ0OCw1MTIsW10sImYzODciLCJNODAgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0zMi40IDk3LjJjMjgtMTIuNCA0Ny42LTQwLjUgNDcuNi03My4yIDAtNDQuMi0zNS44LTgwLTgwLTgwUzAgMzUuOCAwIDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCAyMDUuM0MxOS43IDM3MSAwIDM5OS4yIDAgNDMyIDAgNDc2LjIgMzUuOCA1MTIgODAgNTEyczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTg2LjZjMjYuNyAyMC4xIDYwIDMyIDk2IDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4IDQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwYy0zMi44IDAtNjEgMTkuNy03My4zIDQ4TDIwOCAyNDBjLTQ5LjkgMC05MS0zOC4xLTk1LjYtODYuOHpNODAgNDA4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzQ0IDI3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxGbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtdHN1bmFtaSIsaWNvbjpbNjQwLDUxMixbXSwiZTUxNSIsIk0yODggMTZDMTU1LjUgMTYgNDggMTIzLjUgNDggMjU2UzE1NS41IDQ5NiAyODggNDk2YzcuNCAwIDE5LjctMi4zIDMzLjctNy4zIDEzLjgtNC45IDI3LjEtMTEuNyAzNi43LTE4LjkgMzguNC0yOSA5MC41LTI5IDEyOSAwIDE1LjQgMTEuNiAzNS4zIDIxLjEgNTUgMjQuNCAxOS41IDMuMyAzNyAuNCA1MS4xLTEwLjIgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNy4zIDIwLjUtNTkuMiAyNC04Ny45IDE5LjItMjguNS00LjgtNTUuNC0xOC03NS45LTMzLjQtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjFsLS4xIDBDMTI4LjkgNTQzLjkgMCA0MTUgMCAyNTYgMCA5Ni45IDEyOC45LTMyIDI4OC0zMiAzMDEuMy0zMiAzMTItMjEuMyAzMTItOHMtMTAuNyAyNC0yNCAyNHptNDQuOCAxNjYuNGw5Ni03MmMxMS40LTguNSAyNy4xLTguNSAzOC41IDBsOTUuNSA3MmM4IDYgMTIuNyAxNS41IDEyLjcgMjUuNWwuMyAxMjEuNWMtMi4yIDEuMy00LjMgMi42LTYuNCA0LjItNC4zIDMuMS04LjcgLjgtMTMuMi0xLjVsLTEuMi0uNi0uNy0uM2MtNS40LTIuNy0xMS43LTYuNi0xOC45LTExLjctMjkuNS0yMS4xLTY0LjMtMzEuNi05OS4xLTMxLjQtMzQuMSAuMi02OC4xIDEwLjctOTcgMzEuNC03LjggNS42LTEzLjggOS4zLTE5LjMgMTEuMkwzMjAgMjA4YzAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZ6bTU0LjYgMjI5LjdjLTE0LjUgMTAuOS0zMi40IDE5LjctNDkuNSAyNS44LTE2LjggNi0zNC45IDEwLjEtNDkuOSAxMC4xLTEwNiAwLTE5Mi04Ni0xOTItMTkyUzE4MiA2NCAyODggNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDRjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sQmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtY2hhcnQiLGljb246WzUxMiw1MTIsW10sImU1MjIiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4em0tMzEyIDhsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwLTk2bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwIDY0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxIbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW1icmVsbGEiLGljb246WzUxMiw1MTIsW10sImYwZTkiLCJNMjU2LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMmMxMjYuMyAxNS43IDIyNCAxMjMuNSAyMjQgMjU0IDAgMy44LS4xIDcuNS0uMiAxMS4zLS4zIDYuOS01IDEyLjgtMTEuNyAxNC43cy0xMy44LS43LTE3LjYtNi41Yy0xNC40LTIxLjQtMzguOC0zNS41LTY2LjUtMzUuNS0yOS4zIDAtNTQuOSAxNS43LTY4LjkgMzkuMy0yLjcgNC42LTcuNiA3LjYtMTMgNy44cy0xMC41LTIuMi0xMy43LTYuNWMtMTQuNi0xOS44LTM4LTMyLjYtNjQuNS0zMi42cy00OS45IDEyLjgtNjQuNSAzMi42Yy0zLjIgNC4zLTguMyA2LjgtMTMuNyA2LjVzLTEwLjItMy4yLTEzLTcuOGMtMTQtMjMuNi0zOS42LTM5LjMtNjguOS0zOS4zLTI3LjcgMC01Mi4xIDE0LjEtNjYuNSAzNS41LTMuOSA1LjctMTEgOC40LTE3LjYgNi41Uy41IDI3NC4yIC4yIDI2Ny4zQy4xIDI2My41IDAgMjU5LjggMCAyNTYgMCAxMjUuNSA5Ny43IDE3LjcgMjI0IDJsMC0yYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMiAzNjBsMCAxMDIuNmMwIDQ1LTM2LjUgODEuNC04MS40IDgxLjQtMzAuOCAwLTU5LTE3LjQtNzIuOC00NWwtMi4zLTQuN2MtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDIuMyA0LjdjMyA1LjkgOSA5LjYgMTUuNiA5LjYgOS42IDAgMTcuNC03LjggMTcuNC0xNy40TDIyNCAzMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0scWxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpbGwtcm9ja3NsaWRlIixpY29uOls1NzYsNTEyLFtdLCJlNTA4IiwiTTI1Mi40IDEwMy44bDI3IDQ4YzIuOCA1IDguMiA4LjIgMTMuOSA4LjJsNTMuMyAwYzUuOCAwIDExLjEtMy4xIDEzLjktOC4ybDI3LTQ4YzIuNy00LjkgMi43LTEwLjggMC0xNS43bC0yNy00OGMtMi44LTUtOC4yLTguMi0xMy45LTguMmwtNTMuMyAwYy01LjggMC0xMS4xIDMuMS0xMy45IDguMmwtMjcgNDhjLTIuNyA0LjktMi43IDEwLjggMCAxNS43ek02OC4zIDg3QzQzLjEgNjEuOCAwIDc5LjcgMCAxMTUuM0wwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjMgODd6TTUwNC4yIDQwMy42YzQuOSAyLjcgMTAuOCAyLjcgMTUuNyAwbDQ4LTI3YzUtMi44IDguMi04LjIgOC4yLTEzLjlsMC01My4zYzAtNS44LTMuMS0xMS4xLTguMi0xMy45bC00OC0yN2MtNC45LTIuNy0xMC44LTIuNy0xNS43IDBsLTQ4IDI3Yy01IDIuOC04LjIgOC4yLTguMiAxMy45bDAgNTMuM2MwIDUuOCAzLjEgMTEuMSA4LjIgMTMuOWw0OCAyN3pNMTkyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxqbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zZWNyZXQiLGljb246WzQ0OCw1MTIsWzEyODM3M10sImYyMWIiLCJNMTcxLTE2Yy0zNi40IDAtNTcuOCA1OC4zLTY4LjMgMTEyTDcyIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAzMmMwIDE3IDMuMyAzMy4yIDkuMyA0OGwtOS4zIDAgMCAwLTIwLjUgMGMtMTUuMiAwLTI3LjUgMTIuMy0yNy41IDI3LjUgMCAzIC41IDUuOSAxLjQgOC43bDI4LjkgODYuNkM0MC4yIDM3OS42IDE2IDQyOC4xIDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC01NC4yLTI0LjItMTAyLjctNjIuMy0xMzUuNGwyOC45LTg2LjZjLjktMi44IDEuNC01LjcgMS40LTguNyAwLTE1LjItMTIuMy0yNy41LTI3LjUtMjcuNWwtMjAuNSAwIDAgMC05LjMgMGM2LTE0LjggOS4zLTMxIDkuMy00OGwwLTMyIDI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMwLjcgMGMtMTAuNC01My43LTMxLjktMTEyLTY4LjMtMTEyLTkuNiAwLTE5IDMuOS0yNy41IDguMi04LjIgNC4xLTE4LjQgNy44LTI1LjUgNy44cy0xNy4zLTMuNy0yNS41LTcuOEMxOTAtMTIuMSAxODAuNi0xNiAxNzEtMTZ6bTkzLjcgNDg0LjRsLTI0LjgtNzAuOSAyNy45LTMyLjVjMi43LTMuMiA0LjItNy4yIDQuMi0xMS40IDAtOS43LTcuOC0xNy41LTE3LjUtMTcuNWwtNjEgMGMtOS43IDAtMTcuNSA3LjgtMTcuNSAxNy41IDAgNC4yIDEuNSA4LjIgNC4yIDExLjRsMjcuOSAzMi41LTI0LjggNzAuOS01Ny0xODAuNCAzNS43IDBjMTguNCAxMC4yIDM5LjUgMTYgNjIgMTZzNDMuNi01LjggNjItMTZsMzUuNyAwLTU3IDE4MC40ek0yMjQgMjU2Yy0zNC43IDAtNjQuMi0yMi4xLTc1LjMtNTMgNS43IDMuMiAxMi4zIDUgMTkuMyA1bDEyLjQgMGMxNi41IDAgMzEuMS0xMC42IDM2LjMtMjYuMiAyLjMtNyAxMi4yLTcgMTQuNSAwIDUuMiAxNS42IDE5LjkgMjYuMiAzNi4zIDI2LjJsMTIuNCAwYzcgMCAxMy42LTEuOCAxOS4zLTUtMTEuMSAzMC45LTQwLjYgNTMtNzUuMyA1M3oiXX0sVmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhZ2VyIixpY29uOls1MTIsNTEyLFsxMjgyMjNdLCJmODE1IiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTY0IDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04OCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sVWxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWVmY2FzZSIsaWNvbjpbNTEyLDUxMixbMTI4MTg4XSwiZjBiMSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBsMCA5NiA1MTIgMCAwLTk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek01MTIgMzA0bC0xOTIgMCAwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTE5MiAwIDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTEyeiJdfSxXbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvd2VsLWJyaWNrcyIsaWNvbjpbNTEyLDUxMixbXSwiZTU4YSIsIk0yMjQgMzJjMC0xMS41LTYuMi0yMi4yLTE2LjItMjcuOHMtMjIuMy01LjUtMzIuMiAuNGwtMTYwIDk2QzUuOSAxMDYuMyAwIDExNi44IDAgMTI4czUuOSAyMS43IDE1LjUgMjcuNGwxNjAgOTZjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzIyNCAyMzUuNSAyMjQgMjI0bDAtNjQgMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1NiAwIDAtNjR6bTk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNjAgMHpNMCA0MTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0yMjQtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDB6Il19LEdsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2NrcyIsaWNvbjpbNTEyLDUxMixbMTI5NTEwXSwiZjY5NiIsIk0yNTIuOCAwTDE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2IDExMiAwIDAtMTZjMC0xNy41IDQuNy0zMy45IDEyLjgtNDh6TTEyOCAxMTJsMCAxMjhjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhjLTI0LjIgMTguMS0zOC40IDQ2LjYtMzguNCA3Ni44IDAgNTMgNDMgOTYgOTYgOTYgMTUuNCAwIDMwLjUtMy43IDQ0LTEwLjctMTcuNi0yMy45LTI4LTUzLjQtMjgtODUuMyAwLTQ1LjMgMjEuMy04OCA1Ny42LTExNS4ybDY0LTQ4YzQtMyA2LjQtNy44IDYuNC0xMi44bDAtMTI4LTExMiAwem0xNjAgMGwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAyMC44IDAgNDEtNi43IDU3LjYtMTkuMmwxMTUuMi04Ni40QzQ2MSAzODIuMiA0ODAgMzQ0LjMgNDgwIDMwNGwwLTE5Mi0xOTIgMHpNNDgwIDY0bDAtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTkyIDB6Il19LEtsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0IixpY29uOlszODQsNTEyLFsxMTZdLCI1NCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMTI4IDAgMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sWWxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvY2hpcCIsaWNvbjpbNTEyLDUxMixbXSwiZjJkYiIsIk0xNzYgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMwIDM1LjMgMjguNyA2NCA2NCA2NGwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA1NiAwIDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC01NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwYzAtMzUuMy0yOC43LTY0LTY0LTY0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDB6TTE2MCAxMjhsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYgNDhsMCAxNjAgMTYwIDAgMC0xNjAtMTYwIDB6Il19LFV3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tZWRpY2FsIixpY29uOls1NzYsNTEyLFsxMjg2NTcsImFtYnVsYW5jZSJdLCJmMGY5IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMy4zIDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwxMDIuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMy4zIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1MTIgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek01MTIgMjM3LjNsMCA1MC43LTk2IDAgMC05NiA1MC43IDAgNDUuMyA0NS4zek0xNTIgMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMjMyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE3NiAxMzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LFpsYT1Vd2UsWGxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9tIixpY29uOls1NzYsNTEyLFsxMjgzMjldLCJmNjc5IiwiTTM4OC43IDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGwxNiAxNmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtMTYgMTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC0xNi0xNmMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZsMTYtMTZ6TTE3NiAxNjBjLTEwLjggMC0yMC44IDMuNi0yOC44IDkuNi0xNC4xIDEwLjYtMzQuMiA3LjgtNDQuOC02LjRzLTcuOC0zNC4yIDYuNC00NC44YzE4LjctMTQuMSA0Mi0yMi40IDY3LjItMjIuNCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMiAwIDE3LjItMy45IDMzLjUtMTAuOCA0OGw0OS43IDBjMTIuNyAwIDI0LjktNSAzMy45LTE0LjFsMjAuNy0yMC43YzE4LjctMTguNyA0NC4xLTI5LjMgNzAuNi0yOS4zIDU1LjIgMCA5OS45IDQ0LjcgOTkuOSA5OS45bDAgOTYuMWMwIDU1LjItNDQuOCAxMDAtMTAwIDEwMFMzNTIgNDQzLjIgMzUyIDM4OGwwLTRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDRjMCAxOS45IDE2LjEgMzYgMzYgMzZzMzYtMTYuMSAzNi0zNmwwLTk2LjFjMC0xOS44LTE2LjEtMzUuOS0zNS45LTM1LjktOS41IDAtMTguNiAzLjgtMjUuNCAxMC41bC0yMC43IDIwLjdjLTIxIDIxLTQ5LjQgMzIuOC03OS4xIDMyLjhsLTI2LjggMGMxMi42IDE5LjYgMTkuOSA0Mi44IDE5LjkgNjggMCA3NS4yLTY1IDEzMi0xNDAgMTMyUzQwIDQ2My4yIDQwIDM4OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgMzUuMyAzMS43IDY4IDc2IDY4czc2LTMyLjcgNzYtNjgtMzEuNy02OC03Ni02OGwtMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4ek0zMzcuMSA2MC4xYy0xMS0xMy44LTMxLjEtMTYuMi00NS01LjJzLTE2LjIgMzEuMS01LjIgNDVDMzEyLjYgMTMyLjIgMzU0LjQgMTUyIDQwMCAxNTJzODcuNC0xOS44IDExMy4xLTUyLjFjMTEtMTMuOCA4LjctMzQtNS4yLTQ1cy0zNC04LjctNDUgNS4yQzQ1MC4zIDc2IDQyNy41IDg4IDQwMCA4OHMtNTAuMy0xMi02Mi45LTI3Ljl6Il19LFFsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3NxdWl0by1uZXQiLGljb246WzY0MCw1MTIsW10sImU1MmMiLCJNNTc2IDM1MmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE2IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCA0OCAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgMTYtLjEgMi41QzU5OC42IDU2Ni42IDU4OC40IDU3NiA1NzYgNTc2cy0yMi42LTkuNC0yMy45LTIxLjVsLS4xLTIuNSAwLTE2LTQ4IDAgMCAxNi0uMSAyLjVDNTAyLjYgNTY2LjYgNDkyLjQgNTc2IDQ4MCA1NzZzLTIyLjYtOS40LTIzLjktMjEuNWwtLjEtMi41IDAtMTYtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwIDAtNDgtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE2IDQ4IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDI5LjkgMTYuM2M3LjctOS40IDIxLjMtMTEuNSAzMS40LTQuMyAxMC4xIDcuMSAxMy4xIDIwLjkgNy40IDMxLjdsLTEuMyAyLjEtMjUuOSAzOC45IDEzLjMgNTMuNGMyIDgtLjEgMTYuMy01LjMgMjIuM2wtMi40IDIuNC00NC43IDM4LjMgMTMwLjUgMTQuNWM0Mi44IDQuOCA3NS4xIDQwLjkgNzUuMSA4My45IDAgMy45LS40IDcuNy0uOSAxMS41LTcuMy0zLjUtMTUuMy01LjgtMjMuOC02LjdMNTc2IDMwNGMtMTguNSAwLTM1LjMgNy00OCAxOC40LTExLTkuOS0yNS4xLTE2LjUtNDAuNi0xOC4xTDQ4MCAzMDRjLTMwLjMgMC01Ni4xIDE4LjctNjYuOCA0NS4yLTEyLjUgNS0yMy4yIDEzLjQtMzEuMSAyNGwtMzAuMi00MC4xIDAgNzQuN2MwIDE3LjctMTQuMyAzMi0zMiAzMi0xNi42IDAtMzAuMi0xMi42LTMxLjgtMjguN2wtLjItMy4zIDAtNzQuNi0zMi4zIDQzIDAgMzkuOGMwIDMuNS0uNyA2LjktMi4xIDEwLjFsLTEuNiAzLjEtNDAgNjQtMS40IDJjLTcuNSA5LjYtMjEgMTIuMS0zMS4zIDUuMy0xMC4zLTYuOC0xMy43LTIwLjUtOC4zLTMxLjVsMS4yLTIuMiAzNi4yLTU4IDAtNDEgLjMtNGMuNi0zLjkgMi4yLTcuNyA0LjYtMTAuOWwzOS4zLTUyLjItNjYuMiA1OS41Yy0xNyAxNS4zLTM5IDIzLjctNjEuOSAyMy44bC04LjEgMGMtNDYuNiAwLTg0LjQtMzcuOC04NC40LTg0LjQgMC00MyAzMi40LTc5LjIgNzUuMS04My45bDEzMC41LTE0LjUtNDQuNy0zOC4zLTIuNC0yLjRjLTUuMi02LTcuMy0xNC40LTUuMy0yMi4zbDEzLjMtNTMuNC0yNS45LTM4LjktMS4yLTIuMWMtNS43LTEwLjgtMi43LTI0LjYgNy40LTMxLjcgMTAuMS03LjEgMjMuNy01LjEgMzEuNCA0LjNsMS41IDIgMzIgNDggMS40IDIuMmMyLjggNS4zIDMuNSAxMS42IDIuMSAxNy42bC0xMi4zIDQ5LjIgNTMuMyA0NS43IDAtMjguOCAuMi0zLjJjMS4xLTEwLjQgNy4yLTE5LjQgMTUuOC0yNC40bDAtNjAuNSAuMy0zLjJjMS41LTcuMyA4LTEyLjcgMTUuNy0xMi44IDcuNyAwIDE0LjIgNS41IDE1LjcgMTIuOGwuMyAzLjIgMCA2MC41YzguNyA1IDE0LjggMTQgMTUuOCAyNC40bC4yIDMuMiAwIDI4LjkgNTMuNC00NS43LTEyLjMtNDkuMmMtMS41LTUuOS0uNy0xMi4yIDIuMS0xNy42bDEuNC0yLjIgMzItNDggMS41LTJ6TTUwNCA0ODhsNDggMCAwLTQ4LTQ4IDAgMCA0OHoiXX0sSmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbi1ib3R0bGUiLGljb246WzM4NCw1MTIsW10sImY0ODUiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0TDAgMzJ6TTMyIDE0NGwzMjAgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTY0eiJdfSxXd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtZ2VhciIsaWNvbjpbNjQwLDUxMixbInVzZXJzLWNvZyJdLCJmNTA5IiwiTTMyMCAyMjRhMTA0IDEwNCAwIDEgMCAwLTIwOCAxMDQgMTA0IDAgMSAwIDAgMjA4ek05NiAyMzJhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6TTAgNDE2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODYuNyAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTE2YzAtNTMuMiAyMC0xMDEuOCA1Mi45LTEzOC42LTExLjctMy41LTI0LjEtNS40LTM2LjktNS40LTcwLjcgMC0xMjggNTcuMy0xMjggMTI4ek02MTYgMTYwYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHpNMTYwIDQzMmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE1Ni44IDBjLTcuMS0yMS42LTYuMy00NC40IDEwLjctNjQtMTQtMTYuMi0yMC41LTM5LjctMTEuNC02My4zIDYuNi0xNy4xIDE1LjktMzMuMSAyNy40LTQ3LjMgNS40LTYuNiAxMS42LTExLjcgMTguMy0xNS40LTIyLjEtMTEuNS00Ny4yLTE4LTczLjgtMTgtODguNCAwLTE2MCA3MS42LTE2MCAxNjB6bTQ2NC42LTQ0LjFjNi4zLTMuNiA5LjUtMTEuMSA2LjgtMTgtNC44LTEyLjQtMTEuNS0yNC4xLTE5LjktMzQuNC00LjYtNS43LTEyLjctNi43LTE5LTMtMjEuOCAxMi42LTQ4LjYtMi44LTQ4LjYtMjguMSAwLTcuMy00LjktMTMuOC0xMi4xLTE0LjktMTIuOS0yLTI2LjgtMi0zOS43IDAtNy4yIDEuMS0xMi4xIDcuNi0xMi4xIDE0LjkgMCAyNS4yLTI2LjggNDAuNy00OC42IDI4LjEtNi4zLTMuNi0xNC40LTIuNi0xOSAzLTguNCAxMC4zLTE1LjEgMjItMTkuOSAzNC40LTIuNiA2LjggLjUgMTQuMyA2LjggMTcuOSAyMS45IDEyLjYgMjEuOSA0My41IDAgNTYuMi02LjMgMy42LTkuNSAxMS4xLTYuOCAxNy45IDQuOCAxMi40IDExLjUgMjQuMSAxOS45IDM0LjQgNC42IDUuNyAxMi43IDYuNyAxOSAzIDIxLjgtMTIuNiA0OC42IDIuOSA0OC42IDI4LjEgMCA3LjMgNC45IDEzLjggMTIuMSAxNC45IDEyLjkgMiAyNi44IDIgMzkuNyAwIDcuMi0xLjEgMTIuMS03LjYgMTIuMS0xNC45IDAtMjUuMiAyNi44LTQwLjcgNDguNi0yOC4xIDYuMyAzLjYgMTQuNCAyLjYgMTktMyA4LjQtMTAuMyAxNS4xLTIyIDE5LjktMzQuNCAyLjYtNi44LS41LTE0LjMtNi44LTE3LjktMjEuOS0xMi42LTIxLjktNDMuNSAwLTU2LjJ6TTQ3MiA0MTZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHoiXX0sZWNhPVd3ZSx0Y2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NjUiLCJNMjg4IDMybC03Ni4zIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjUgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OWMzNS4yLTM5LjkgODYuNy02NSAxNDQtNjUgOSAwIDE3LjggLjYgMjYuNSAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxhY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGF1c2UiLGljb246WzM4NCw1MTIsWzkyMDhdLCJmMDRjIiwiTTQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMnptMjI0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6Il19LHVTPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YWZmLXNuYWtlIixpY29uOls0NDgsNTEyLFsicm9kLWFzY2xlcGl1cyIsInJvZC1zbmFrZSIsInN0YWZmLWFlc2N1bGFwaXVzIl0sImU1NzkiLCJNMTkyIDMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDY0IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTE2IDAgMC02NCAxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAgMTkyIDMyIDBjNTMgMCA5NiA0MyA5NiA5NiAwIDQ3LjYtMzQuNiA4Ny4xLTgwIDk0LjdsMC02N2M5LjYtNS41IDE2LTE1LjkgMTYtMjcuNyAwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTY0LTMyIDBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Ny42IDM0LjYtODcuMSA4MC05NC43bDAgNjdjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43IDAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMC0xOTItNzIuNiAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMybC0xNiAwQzIxLjUgMTI4IDAgMTA2LjUgMCA4MFMyMS41IDMyIDQ4IDMybDE0NCAweiJdfSxzY2E9dVMsaWNhPXVTLHJjYT11UyxvY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlnZ3ktYmFuayIsaWNvbjpbNTc2LDUxMixbXSwiZjRkMyIsIk0yODgtMzJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6TTQ4IDMwNGMwLTcwLjEgNDctMTMxLjQgMTE3LjEtMTY0LjkgMjUuMyA0MS4zIDcwLjkgNjguOSAxMjIuOSA2OC45IDU1LjcgMCAxMDQuMS0zMS43IDEyOC03OCAxNS44LTExLjMgMzUuMS0xOCA1Ni0xOGwxOS41IDBjMTAuNCAwIDE4IDkuOCAxNS41IDE5LjlsLTE3LjEgNjguM2M5LjkgMTIuNCAxOC4yIDI1LjcgMjQuNCAzOS44bDIxLjcgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDAgMGMtMTYuNSAyMi0zOC41IDM5LjYtNjQgNTAuN2wwIDI5LjNjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMzIDBjLTE0LjMgMC0yNi44LTkuNS0zMC44LTIzLjJsLTcuMS0yNC44LTgyLjMgMC03LjEgMjQuOEMyMzUuOCA1MDIuNSAyMjMuMyA1MTIgMjA5IDUxMmwtMzMgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yOS4zQzg3LjUgNDI2IDQ4IDM2OS42IDQ4IDMwNHptMzc2IDE2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sbmNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbnVtZW50IixpY29uOlszODQsNTEyLFtdLCJmNWE2IiwiTTIwOS0zM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMOTUgNDdjLTQuMSA0LjEtNi41IDkuNC03IDE1LjFMNTguNCA0NDggNDggNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMC40IDAtMjkuNy0zODUuOGMtLjQtNS43LTIuOS0xMS4xLTctMTUuMUwyMDktMzN6TTEyOCAyOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LEd3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtcmlnaHQiLGljb246WzQ0OCw1MTIsWzE4NywiYW5nbGUtZG91YmxlLXJpZ2h0Il0sImYxMDEiLCJNNDM5LjEgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDM3MS4yIDI1NiAyMzMuOSAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwem0tMzUyIDE2MGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxNzkuMiAyNTYgNDEuOSAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHoiXX0sbGNhPUd3ZSxiZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZXNrdG9wIixpY29uOls1MTIsNTEyLFsxMjg0MjEsNjE3MDQsImRlc2t0b3AtYWx0Il0sImYzOTAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDQgMC0xNiA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwLTE2LTQ4IDE0NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek05NiA5NmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxjY2E9YmYsZGNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NyIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LHVjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXR3ZWV0IixpY29uOls1NzYsNTEyLFtdLCJmMDc5IiwiTTExOC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTkuMSAxNjAgMzIgMTYwbDMyIDAgMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjI0IDMyIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6TTQ1Ny40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzU1Ni45IDM1MiA1NDQgMzUybC0zMiAwIDAtMjI0YzAtNTMtNDMtOTYtOTYtOTZMMjg4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0eiJdfSxLd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1nZWFyIixpY29uOls2NDAsNTEyLFsidXNlci1jb2ciXSwiZjRmZSIsIk0yNTYuNSA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMjI2LjcgMzA0bDU5LjQgMCAxLjUgMGMtMTIuOSAyNi44LTcuOCA1OC4yIDExLjUgNzkuNS0yMC4yIDIyLjMtMjQuOCA1NS44LTkuNCA4My40bDIyLjUgNDAuNGMuOSAxLjYgMS45IDMuMiAyLjkgNC43bC0yMzcgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6bTIwNS45LTU2LjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDYuMWMwIDE4LjkgMjQuMSAzMi44IDQwLjUgMjMuNGw1LTIuOWMxMS42LTYuNyAyNi41LTIuNiAzMyA5LjFsMjIuNCA0MC4yYzYuMiAxMS4yIDIuNiAyNS4yLTguMiAzMmwtNC43IDIuOWMtMTYuMiAxMC4xLTE2LjIgMzkuOSAwIDUwLjFsNC42IDIuOWMxMC44IDYuOCAxNC41IDIwLjggOC4zIDMyTDYwNyA0ODMuOGMtNi41IDExLjctMjEuNCAxNS45LTMzIDkuMWwtNC45LTIuOWMtMTYuNC05LjUtNDAuNSA0LjUtNDAuNSAyMy40bDAgNi4xYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTUuOWMwLTE5LTI0LjItMzMtNDAuNy0yMy41bC00LjggMi44Yy0xMS42IDYuNy0yNi40IDIuNi0zMy05LjFsLTIyLjYtNDAuNGMtNi4yLTExLjItMi42LTI1LjMgOC4zLTMyLjFsNC40LTIuN2MxNi4zLTEwLjEgMTYuMy00MC4xIDAtNTAuMmwtNC41LTIuOGMtMTAuOS02LjgtMTQuNS0yMC45LTguMy0zMi4xbDIyLjUtNDAuM2M2LjUtMTEuNyAyMS40LTE1LjggMzIuOS05LjFsNC44IDIuOGMxNi41IDkuNSA0MC43LTQuNSA0MC43LTIzLjVsMC01Ljl6bTk5LjkgMTM2LjJhNTIgNTIgMCAxIDAgLTEwNCAwIDUyIDUyIDAgMSAwIDEwNCAweiJdfSxwY2E9S3dlLGhjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JkZXItYWxsIixpY29uOls0NDgsNTEyLFtdLCJmODRjIiwiTTM4NCA5NmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHptMCAxOTJsMCAxMjgtMTI4IDAgMC0xMjggMTI4IDB6TTE5MiAyMjRsLTEyOCAwIDAtMTI4IDEyOCAwIDAgMTI4ek02NCAyODhsMTI4IDAgMCAxMjgtMTI4IDAgMC0xMjh6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LGZjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2lucyIsaWNvbjpbNTEyLDUxMixbXSwiZjUxZSIsIk0xMjggOTZsMC0xNmMwLTQ0LjIgODYtODAgMTkyLTgwUzUxMiAzNS44IDUxMiA4MGwwIDE2YzAgMzAuNi00MS4zIDU3LjItMTAyIDcwLjctMi40LTIuOC00LjktNS41LTcuNC04LTE1LjUtMTUuMy0zNS41LTI2LjktNTYuNC0zNS41LTQxLjktMTcuNS05Ni41LTI3LjEtMTU0LjItMjcuMS0yMS45IDAtNDMuMyAxLjQtNjMuOCA0LjEtLjItMS4zLS4yLTIuNy0uMi00LjF6TTQzMiAzNTNsMC00Ni4yYzE1LjEtMy45IDI5LjMtOC41IDQyLjItMTMuOSAxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNGMwIDI2LjgtMzEuNSA1MC41LTgwIDY1em0wLTk2bDAtMzNjMC00LjUtLjQtOC44LTEtMTMgMTUuNS0zLjkgMzAtOC42IDQzLjItMTQuMnMyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNGMwIDI2LjgtMzEuNSA1MC41LTgwIDY1ek0wIDI0MGwwLTE2YzAtNDQuMiA4Ni04MCAxOTItODBzMTkyIDM1LjggMTkyIDgwbDAgMTZjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDI4NC4yIDAgMjQwem0zODQgOTZjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDM4MC4yIDAgMzM2bDAtMTUuNGMxMS42IDguMSAyNC41IDE0LjcgMzcuOCAyMC4zIDQxLjkgMTcuNSA5Ni41IDI3LjEgMTU0LjIgMjcuMXMxMTIuMy05LjcgMTU0LjItMjcuMWMxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNHptMCA4MC42bDAgMTUuNGMwIDQ0LjItODYgODAtMTkyIDgwUzAgNDc2LjIgMCA0MzJsMC0xNS40YzExLjYgOC4xIDI0LjUgMTQuNyAzNy44IDIwLjMgNDEuOSAxNy41IDk2LjUgMjcuMSAxNTQuMiAyNy4xczExMi4zLTkuNyAxNTQuMi0yNy4xYzEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjN6Il19LG1jYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLXN0cm9rZSIsaWNvbjpbNTc2LDUxMixbOTg5NF0sImYyMjkiLCJNNDE2LTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUwLjcgMC01OC43IDU4LjctMTcuNC0xNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNy40IDE3LjQtMjMgMjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2YzAtMzctMTEuNC03MS40LTMxLTk5LjhsMjMtMjMgMTcuNCAxNy40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNDUzLjMgMTM2IDUxMiA3Ny4zIDUxMiAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw1NzYgMGMwLTE3LjctMTQuMy0zMi0zMi0zMkw0MTYtMzJ6TTEyOCAzMDRhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHoiXX0sWXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzaGFrZS1hbmdsZSIsaWNvbjpbNTc2LDUxMixbImhhbmRzLWhlbHBpbmciXSwiZjRjNCIsIk0yNjguOSA1My4yTDE1Mi4zIDE4Mi44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM0NCA1NzYgMjg4IDU3NiAwIDQ2NCA2NCA0NDAuMiA0OC4xQzQyNC40IDM3LjYgNDA1LjkgMzIgMzg2LjkgMzJsLTcwLjQgMGMtMS4xIDAtMi4zIDAtMy40IC4xLTE2LjkgLjktMzIuOCA4LjUtNDQuMiAyMS4xek0xMTYuNiAxNTAuN0wyMjMuNCAzMiAxODMuOCAzMmMtMjUuNSAwLTQ5LjkgMTAuMS02Ny45IDI4LjFMMCAxOTIgMCA1NDQgMTQ0IDQwOCAxNTYuNCA0MTguM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDA5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHoiXX0sZ2NhPVl3ZSxiY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbODU5NV0sImYwNjMiLCJNMTY5LjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgNDAyLjcgMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzcwLjctMTA1LjQtMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6Il19LFp3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1kb3QiLGljb246WzM4NCw1MTIsWyJtYXAtbWFya2VyLWFsdCJdLCJmM2M1IiwiTTAgMTg4LjZDMCA4NC40IDg2IDAgMTkyIDBTMzg0IDg0LjQgMzg0IDE4OC42YzAgMTE5LjMtMTIwLjIgMjYyLjMtMTcwLjQgMzE2LjgtMTEuOCAxMi44LTMxLjUgMTIuOC00My4zIDAtNTAuMi01NC41LTE3MC40LTE5Ny41LTE3MC40LTMxNi44ek0xOTIgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4eiJdfSx2Y2E9WndlLHhjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSx5Y2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29va2llLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY1NjQiLCJNMjU3LjUgMjcuNmMtLjgtNS40LTQuOS05LjgtMTAuMy0xMC42LTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOS0uOS01LjMtNS4zLTkuMy0xMC42LTEwLjEtNTEuNS04LjItOTIuOC00Ny4xLTEwNC41LTk3LjQtMS44LTcuNi04LTEzLjQtMTUuNy0xNC42LTU0LjYtOC43LTk3LjctNTItMTA2LjItMTA2Ljh6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFh3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY3Jld2RyaXZlci13cmVuY2giLGljb246WzU3Niw1MTIsWyJ0b29scyJdLCJmN2Q5IiwiTTcwLjgtNi43YzUuNC01LjQgMTMuOC02LjIgMjAuMi0yTDIwOS45IDcwLjVjOC45IDUuOSAxNC4yIDE1LjkgMTQuMiAyNi42bDAgNDkuNiA5MC44IDkwLjhjMzMuMy0xNSA3My45LTguOSAxMDEuMiAxOC41TDU0Mi4yIDM4Mi4xYzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45bC02MC4xIDYwLjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDI4OC4xIDM4NGMtMjcuNC0yNy40LTMzLjUtNjcuOS0xOC41LTEwMS4ybC05MC44LTkwLjgtNDkuNiAwYy0xMC43IDAtMjAuNy01LjMtMjYuNi0xNC4yTDIzLjQgNTguOWMtNC4yLTYuMy0zLjQtMTQuOCAyLTIwLjJMNzAuOC02Ljd6bTE0NSAzMDMuNWMtNi4zIDM2LjkgMi4zIDc1LjkgMjYuMiAxMDcuMmwtOTQuOSA5NWMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAwcy0yOC4xLTczLjcgMC0xMDEuOGwxMzUuNC0xMzUuNSAzNS4yIDM1LjF6TTM4NC4xIDBjMjAuMSAwIDM5LjQgMy43IDU3LjEgMTAuNSAxMCAzLjggMTEuOCAxNi41IDQuMyAyNC4xTDM4OC44IDkxLjNjLTMgMy00LjcgNy4xLTQuNyAxMS4zbDAgNDEuNGMwIDguOCA3LjIgMTYgMTYgMTZsNDEuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsNTYuNy01Ni43YzcuNi03LjUgMjAuMy01LjcgMjQuMSA0LjMgNi44IDE3LjcgMTAuNSAzNyAxMC41IDU3LjEgMCA0My4yLTE3LjIgODIuMy00NSAxMTEuMWwtNDkuMS00OS4xYy0zMy4xLTMzLTc4LjUtNDUuNy0xMjEuMS0zOC40bC01Ni44LTU2LjggMC0yOS43LS4yLTVjLS44LTEyLjQtNC40LTI0LjMtMTAuNS0zNC45IDI5LjQtMzUgNzMuNC01Ny4yIDEyMi43LTU3LjN6Il19LHdjYT1Yd2Usa2NhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZGVudCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6TTE5MiAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgOTZsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyek0wIDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xMjcuOCAyNjguNkwyNS44IDM0Ny45QzE1LjMgMzU2LjEgMCAzNDguNiAwIDMzNS4zTDAgMTc2LjdjMC0xMy4zIDE1LjMtMjAuOCAyNS44LTEyLjZsMTAxLjkgNzkuM2M4LjIgNi40IDguMiAxOC45IDAgMjUuM3oiXX0sUXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMiLGljb246WzQ0OCw1MTIsWyJuYXZpY29uIl0sImYwYzkiLCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sU2NhPVF3ZSxKd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtcHJheWluZyIsaWNvbjpbNjQwLDUxMixbInByYXlpbmctaGFuZHMiXSwiZjY4NCIsIk0yMjQgMjk2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyLjYgODguMi0xMTkuN2MxMy4xLTE3LjggOS4zLTQyLjgtOC41LTU1LjlzLTQyLjgtOS4zLTU1LjkgOC41TDEwNi41IDE0Mi45Qzg5LjMgMTY2LjIgODAgMTk0LjUgODAgMjIzLjZsMCAxMTAuNy01OC4xIDE5LjRDOC44IDM1OCAwIDM3MC4yIDAgMzg0bDAgOTZjMCAxMCA0LjcgMTkuNSAxMi43IDI1LjVzMTguNCA4IDI4LjEgNS4ybDE1NC40LTQ0LjFjNTUtMTUuNyA5Mi44LTY1LjkgOTIuOC0xMjMuMUwyODggMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNzJ6bTE5MiAwbDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTkuNmMwIDU3LjIgMzcuOSAxMDcuNCA5Mi44IDEyMy4xbDE1NC40IDQ0LjFjOS43IDIuOCAyMCAuOCAyOC4xLTUuMlM2NDAgNDkwIDY0MCA0ODBsMC05NmMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtNTguMS0xOS40IDAtMTEwLjdjMC0yOS05LjMtNTcuMy0yNi41LTgwLjdMNDQwLjIgMTYuM0M0MjcuMS0xLjUgNDAyLjEtNS4zIDM4NC4zIDcuOHMtMjEuNiAzOC4xLTguNSA1NS45TDQ2NCAxODMuNCA0NjQgMjk2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxfY2E9SndlLE1jYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1c2VzIixpY29uOls2NDAsNTEyLFtdLCJlMDc2IiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMzAuNSAzNi45IDQ1LjggNTguNSAyNC4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTIxLjYgMjEuNi02LjMgNTguNSAyNC4yIDU4LjUgMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTMwLjUgMC00NS44IDM2LjktMjQuMiA1OC41IDEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwYy0yMS42LTIxLjYtNTguNS02LjMtNTguNSAyNC4yIDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMzAuNS0zNi45LTQ1LjgtNTguNS0yNC4yLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zQzc3LjggMjYwLjkgNjIuNSAyMjQgMzIgMjI0IDE0LjMgMjI0IDAgMjA5LjcgMCAxOTJzMTQuMy0zMiAzMi0zMmMzMC41IDAgNDUuOC0zNi45IDI0LjItNTguNS0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwQzEyMy4xIDc3LjggMTYwIDYyLjUgMTYwIDMyIDE2MCAxNC4zIDE3NC4zIDAgMTkyIDB6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xMjggNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjQ4IDQwYzAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek01MDQgMzg0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LHpjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtZmxhZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU2ZSIsIk0yNTYtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC03MiAwIDAgMTkuMiAxMjggNzYuOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjgtNzYuOCAwLTkxLjJ6TTI0MCAzODRsMCA4MCA5NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTExMiA0MTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiA0MTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6bS0yMjQgMGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6Il19LENjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFkZW1hcmsiLGljb246WzY0MCw1MTIsWzg0ODJdLCJmMjVjIiwiTTM0Ni42IDExMC4yYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVMyODggMTEzLjkgMjg4IDEyOGwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTUwLjMgNjkuNCAxMDQuMWM1LjkgOC45IDE1LjkgMTQuMiAyNi42IDE0LjJzMjAuNy01LjMgMjYuNi0xNC4yTDU0NCAyMzMuNyA1NDQgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNC4xLTkuMi0yNi41LTIyLjctMzAuNnMtMjguMSAxLjEtMzUuOSAxMi45TDQ0OCAyNjIuMyAzNDYuNiAxMTAuMnpNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsNjQgMCAwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgOTZ6Il19LFRjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWJ1cm5lciIsaWNvbjpbNTEyLDUxMixbXSwiZTRmMSIsIk0yODEuNyA0OC4zTDI5NCAzNC41YzUuNC02LjEgMTMuMy04LjggMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjEgMjYuMiA4OC4xIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVzMTMuNCAzLjIgMTguOCA3LjVjMTQuNCAxMS40IDM4LjkgNDAuNyAzOC45IDQwLjd6TTMyMCAyNDAuMmMwLTM2LjUtMzctNzMtNTQuOC04OC40LTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC44IDUxLjktNTQuOCA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTkyLjggMzIwYzM3LjcgNDguMyA5Ni4xIDgwIDE2My4yIDgwIDY2LjUgMCAxMjUuMS0zMS43IDE2My04MGw0NSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ0LjggMHpNNDU2IDQwMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxla2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zbWlsZS1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MjIsInNtaWxlLWJlYW0iXSwiZjViOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY1LjQgMzIxLjljMjAuNCAyOCA1My40IDQ2LjEgOTAuNiA0Ni4xczcwLjItMTguMSA5MC42LTQ2LjFjNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUMzNTYuMyAzOTAgMzA5LjIgNDE2IDI1NiA0MTZzLTEwMC4zLTI2LTEyOS40LTY1LjljLTcuOC0xMC43LTUuNC0yNS43IDUuMy0zMy41czI1LjctNS40IDMzLjUgNS4zek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sJGNhPWVrZSxEY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy1sZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJlNTdmIiwiTS0uNSAxMTNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDcyLTcyYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzEgMzEgMzEwLjEgMCA1NC4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMC0uMSAwLTI2MiAwIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcyLTcyek0zNy4xIDQ3Nkw2MC4zIDI5Mi42YzEuMi05LjcgNi44LTE4LjMgMTUuMS0yMy4zTDIzOC44IDE3MGMxMC4yLTYuMiAyMi45LTYuMiAzMy4xLS4xbDE2NS41IDk5LjRjOC40IDUgMTQgMTMuNyAxNS4zIDIzLjRMNDc1LjkgNDc2YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNmwtNzEuOSAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43TDI3NS40IDM1Ny45Yy0xLjgtMy42LTUuNS01LjktOS41LTUuOS01LjkgMC0xMC42IDQuNy0xMC42IDEwLjZsMCAxMTcuNGMwIDE3LjctMTQuMyAzMi0zMiAzMkw2OC44IDUxMmMtMTkuMyAwLTM0LjItMTYuOS0zMS43LTM2eiJdfSxMY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm91dGUiLGljb246WzUxMiw1MTIsW10sImY0ZDciLCJNNTEyIDk2YzAgNTAuMi01OS4xIDEyNS4xLTg0LjYgMTU1LTMuOCA0LjQtOS40IDYuMS0xNC41IDVMMzIwIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0yNzYuNCAwYzguNy05LjkgMTkuMy0yMi42IDMwLTM2LjggNi4zLTguNCAxMi44LTE3LjYgMTktMjcuMkw0MTYgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2bDM5LjggMGMtMjEtMzEuNS0zOS44LTY3LjctMzkuOC05NiAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2ek0xMTcuMSA0ODkuMWMtMy44IDQuMy03LjIgOC4xLTEwLjEgMTEuM2wtMS44IDItLjItLjJjLTYgNC42LTE0LjYgNC0yMC0xLjgtMjUuMi0yNy40LTg1LTk3LjktODUtMTQ4LjQgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDMwLTIxLjEgNjctNDMuNSA5Ny45LTEwLjcgMTQuNy0yMS43IDI4LTMwLjggMzguNWwtLjYgLjd6TTEyOCAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDE2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHRrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtdXAiLGljb246WzM4NCw1MTIsWyJhbmdsZS1kb3VibGUtdXAiXSwiZjEwMiIsIk0yMTQuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMzI5LjQgMjQ2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHptMTYwIDM1MmwtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDMwMS4zIDMyOS40IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjN6Il19LEVjYT10a2UsUGNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Y2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjZiIsIk00NDMuNyAyMDhjMi43IDQuNyA0LjMgMTAuMiA0LjMgMTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTUuMSAwLTIyLjQgMjEzYy0yLjYgMjQuNC0yMy4yIDQzLTQ3LjggNDNsLTIzMy42IDBjLTI0LjYgMC00NS4yLTE4LjUtNDcuOC00M0wzNy4xIDI1NiAzMiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtNS44IDEuNi0xMS4zIDQuMy0xNmw0MzkuNCAwek0yMjQtMTZjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCAzMi00OCAwIDAtMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMi00OCAwIDAtMzJDODAgNDguNSAxNDQuNS0xNiAyMjQtMTZ6Il19LEljYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZXNzLXRoYW4tZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1MzciLCJNNDI2LjEgOTQuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41cy0yMy43LTI1LjgtNDAuNS0yMC4ybC0zODQgMTI4QzguOCAxNjYgMCAxNzguMiAwIDE5MnM4LjggMjYgMjEuOSAzMC40bDM4NCAxMjhjMTYuOCA1LjYgMzQuOS0zLjUgNDAuNS0yMC4ycy0zLjUtMzQuOS0yMC4yLTQwLjVMMTMzLjIgMTkyIDQyNi4xIDk0LjR6TTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6Il19LEFjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItY2xvc2VkIixpY29uOls1MTIsNTEyLFtdLCJlMTg1IiwiTTQ0OCA0NDhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3NiA1MTIgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NHptNjQtMjg4TDAgMTYwIDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2eiJdfSxOY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXRocm91Z2gtd2luZG93IixpY29uOls2NDAsNTEyLFtdLCJlNWE5IiwiTTY0IDY0bDIyNCAwIDAgOS44YzAgMzktMjMuNyA3NC01OS45IDg4LjQtNjAuNSAyNC4yLTEwMC4xIDgyLjctMTAwLjEgMTQ3LjlsMCA3My44LTY0IDAgMC0zMjB6bTI4OCAwbDIyNCAwIDAgMzIwLTY3LjcgMC0zLjctNC41LTc1LjItOTAuMmMtOS4xLTEwLjktMjIuNi0xNy4zLTM2LjktMTcuM2wtNzEuMSAwLTQxLTYzLjFjLS4zLS41LS42LTEtMS0xLjQgNDQuNy0yOSA3Mi41LTc5IDcyLjUtMTMzLjZsMC05Ljh6bTczIDMyMGwtMjYuNiAwIDQyLjcgNjQgMTUwLjkgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQwMGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNjAuMiAwIDMzLjIgNDkuOGM5LjggMTQuNyAyOS43IDE4LjcgNDQuNCA4LjlzMTguNy0yOS43IDguOS00NC40bC04NC4yLTEyNi4yIDc0LjYgMCA0MCA0OHptLTE1OS41IDBsLTczLjUgMCAwLTczLjhjMC0xMC4yIDEuNi0yMC4xIDQuNy0yOS41TDI2NS41IDM4NHpNMTkyIDEyOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxSY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1NmYiLCJNMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjcuOS0xMTUuMWMxOC4zLTE2LjQgNDYtMTYuNCA2NC4yIDBMNDQ4IDEyOCA1MTIgMTI4YzMzIDAgNjAuMiAyNSA2My42IDU3LjItMTQuNy01LjktMzAuOC05LjItNDcuNi05LjItNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyek0zMzIuMyAzNDEuNWMtNi0zLjUtMTIuOS01LjUtMjAuMy01LjVsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgODggOTYgMCAwLTY0LjFjMC0yMC44IDQuNC00MC41IDEyLjMtNTguNHpNMTEyIDM4NGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnptMjI0LTQ4YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNNTYwIDM1MmwwLTQ3LjljMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDB6bS0xMTIgMi43bDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zeiJdfSxPY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTNiIiwiTTIwNCA0MC4xYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHpNNCAxNDQuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNOTYuNSAyODUuNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDk2LjUgMjg1LjV6TTYyLjYgMi43YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDYyLjYgMzYuNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6TTM1Mi40LTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek00NzguNyAyOTkuMWwtNDYuMy02Mi40IDAgMjc1LjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNzUuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1YzI1LjItMzMuOSA2NS01My45IDEwNy4yLTUzLjlzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6Il19LGFrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZWZ0LWxvbmciLGljb246WzU3Niw1MTIsWyJsb25nLWFycm93LWFsdC1sZWZ0Il0sImYzMGEiLCJNOS40IDI3OC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE5MiAxMTUuMSAxOTIgMTI4bDAgNjQgMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzM2IDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTI4LTEyOHoiXX0sRmNhPWFrZSxza2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tY3Jvc3NoYWlycyIsaWNvbjpbNTc2LDUxMixbImxvY2F0aW9uIl0sImY2MDEiLCJNMjg4LTE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTguM2M5OC4xIDE0IDE3NS43IDkxLjYgMTg5LjcgMTg5LjdsMTguMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC4zIDBjLTE0IDk4LjEtOTEuNiAxNzUuNy0xODkuNyAxODkuN2wwIDE4LjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC4zQzE1Ny45IDQ2My43IDgwLjMgMzg2LjEgNjYuMyAyODhMNDggMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjMgMEM4MC4zIDEyNS45IDE1Ny45IDQ4LjMgMjU2IDM0LjNMMjU2IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMjggMjU2YTE2MCAxNjAgMCAxIDAgMzIwIDAgMTYwIDE2MCAwIDEgMCAtMzIwIDB6bTE2MC05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sQmNhPXNrZSxpa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRvdHMtZnJvbS1saW5lIixpY29uOls1MTIsNTEyLFsiZGlhZ25vc2VzIl0sImY0NzAiLCJNMTg0IDcyYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDI5OS4zYy0xOS45IDIyLjYtMzIgNTIuMi0zMiA4NC43bDAgMzItNjQgMCAwLTMyYzAtMTA2IDg2LTE5MiAxOTItMTkyczE5MiA4NiAxOTIgMTkybDAgMzItNjQgMCAwLTMyYzAtMzIuNS0xMi4xLTYyLjEtMzItODQuN2wwIDExNi43LTE5MiAwIDAtMTE2Ljd6TTIzMiAzODRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OC0xMDRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMjQgNDY0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNNjQgMTg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQyNCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LEhjYT1pa2UsWW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLXNpbXBsZS1oaWdoIixpY29uOls1MTIsNTEyLFs2MTY2OCwidGFjaG9tZXRlciIsInRhY2hvbWV0ZXItZmFzdCJdLCJmNjJhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMyMCA5NmMwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NCA2NC0yOC43IDY0LTY0eiJdfSxxY2E9WW9lLGpjYT1Zb2UscmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy1sZWZ0IixpY29uOls0NDgsNTEyLFsxNzEsImFuZ2xlLWRvdWJsZS1sZWZ0Il0sImYxMDAiLCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjE0LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6bTM1Mi0xNjBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyNjkuMyAyNTYgNDA2LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDB6Il19LFZjYT1ya2Usb2tlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWRvd24iLGljb246WzUxMiw1MTIsWzg1OTcsMTEwMjEsImFycm93cy1hbHQtdiJdLCJmMzM4IiwiTTQwNi42IDUwMi42bDk2LTk2YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDM1MiA0ODAgMzUybC02NCAwIDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzIwLTY0IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwek0xNTAuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTkuMSAxNjAgMzIgMTYwbDY0IDAgMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyMCA2NCAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTk2LTk2eiJdfSxVY2E9b2tlLG5rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWVtcHR5IixpY29uOls2NDAsNTEyLFsiYmF0dGVyeS0wIl0sImYyNDQiLCJNMTEyIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNmw0MTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yMjRjMC04LjgtNy4yLTE2LTE2LTE2bC00MTYgMHpNMzIgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDQxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwbC00MTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0yMjR6Il19LFdjYT1ua2UsR2NhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtleWJvYXJkIixpY29uOls1NzYsNTEyLFs5ZTNdLCJmMTFjIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0xNiA2NGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMTc2IDEyOGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xNjAgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtMTc2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEtjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb29raWUiLGljb246WzUxMiw1MTIsWzEyNzg1MF0sImY1NjMiLCJNMjQ3LjIgMTdjLTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOWwtMTQuNi04Mi44Yy0zLjktMjIuMS0xNC42LTQyLjMtMzAuNy01Ny45TDM4OC45IDU3LjVjLTE2LjEtMTUuNi0zNi42LTI1LjYtNTguNy0yOC43TDI0Ny4yIDE3ek0yMDggMTQ0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTQ0IDMzNmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0yMjQtNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxZY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcHdhdGNoIixpY29uOls0NDgsNTEyLFs5MjAxXSwiZjJmMiIsIk0xNjguNSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAyNS4zYy0xMDggMTEuOS0xOTIgMTAzLjUtMTkyIDIxNC43IDAgMTE5LjMgOTYuNyAyMTYgMjE2IDIxNnMyMTYtOTYuNyAyMTYtMjE2YzAtMzkuOC0xMC44LTc3LjEtMjkuNi0xMDkuMmwyOC4yLTI4LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTIzLjQgMjMuNGMtMzIuOS0zMC4yLTc1LjItNTAuMy0xMjItNTUuNWwwLTI1LjMgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bTgwIDE4NGwwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxaY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWplY3QiLGljb246WzQ0OCw1MTIsWzkxNjddLCJmMDUyIiwiTTIyNCAzMmMxMy41IDAgMjYuMyA1LjYgMzUuNCAxNS42bDE3NiAxOTJjMTIuOSAxNCAxNi4yIDM0LjMgOC42IDUxLjhTNDE5IDMyMCA0MDAgMzIwTDQ4IDMyMGMtMTkgMC0zNi4zLTExLjItNDMuOS0yOC43cy00LjMtMzcuNyA4LjYtNTEuOGwxNzYtMTkyQzE5Ny43IDM3LjYgMjEwLjUgMzIgMjI0IDMyek0wIDQzMmMwLTI2LjUgMjEuNS00OCA0OC00OGwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxYY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2F0ZWxsaXRlLWRpc2giLGljb246WzUxMiw1MTIsWzEyODIyNV0sImY3YzAiLCJNMjMyIDBjMTU0LjYgMCAyODAgMTI1LjQgMjgwIDI4MCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEyOC4xLTEwMy45LTIzMi0yMzItMjMyLTEzLjMgMC0yNC0xMC43LTI0LTI0UzIxOC43IDAgMjMyIDB6TTIwOCAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTAxLjYgMCAxODQgODIuNCAxODQgMTg0IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNzUuMS02MC45LTEzNi0xMzYtMTM2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNi40IDE0Mi43YzguOC0xNy45IDMyLjQtMTkuOSA0Ni41LTUuOGwxMjguNSAxMjguNSAzMi0zMmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0zMiAzMiAxMjguNSAxMjguNWMxNC4xIDE0LjEgMTIgMzcuNi01LjggNDYuNS0zNC4yIDE2LjktNzIuNiAyNi40LTExMy4zIDI2LjQtMTQxLjQgMC0yNTYtMTE0LjYtMjU2LTI1NiAwLTQwLjcgOS41LTc5LjIgMjYuNC0xMTMuM3oiXX0sbGtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utcm9sbGluZy1leWVzIixpY29uOls1MTIsNTEyLFsxMjg1ODAsIm1laC1yb2xsaW5nLWV5ZXMiXSwiZjVhNSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDM1MmwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTMyLTEyOGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2IDE1LjUtNDguNCAzNy44LTU4LjQtMy43IDUuMi01LjggMTEuNi01LjggMTguNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNi45LTIuMi0xMy4yLTUuOC0xOC40IDIyLjMgMTAgMzcuOCAzMi40IDM3LjggNTguNHptMTI4IDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI2IDE1LjUtNDguNCAzNy44LTU4LjQtMy43IDUuMi01LjggMTEuNi01LjggMTguNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNi45LTIuMi0xMy4yLTUuOC0xOC40IDIyLjMgMTAgMzcuOCAzMi40IDM3LjggNTguNCAwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sUWNhPWxrZSxja2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC1jaGVjayIsaWNvbjpbNTEyLDUxMixbInRhc2tzIl0sImYwYWUiLCJNMTMzLjggMzYuM2MxMC45IDcuNiAxMy41IDIyLjYgNS45IDMzLjRsLTU2IDgwYy00LjEgNS44LTEwLjUgOS41LTE3LjYgMTAuMVM1MiAxNTggNDcgMTUzTDcgMTEzQy0yLjMgMTAzLjYtMi4zIDg4LjQgNyA3OVMzMS42IDY5LjcgNDEgNzlsMTkuOCAxOS44IDM5LjYtNTYuNmM3LjYtMTAuOSAyMi42LTEzLjUgMzMuNC01Ljl6bTAgMTYwYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDMxOCA0NyAzMTNMNyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXpNMjI0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2MCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNjQgMzc2YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sSmNhPWNrZSxlMWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Fjay14bWFyayIsaWNvbjpbNTEyLDUxMixbXSwiZTU2YSIsIk0zMjggMTEybC0xNDQgMC0zNy4zLTc0LjVjLTEuOC0zLjYtMi43LTcuNi0yLjctMTEuNiAwLTE0LjMgMTEuNi0yNS45IDI1LjktMjUuOUwzNDIuMSAwYzE0LjMgMCAyNS45IDExLjYgMjUuOSAyNS45IDAgNC0uOSA4LTIuNyAxMS42TDMyOCAxMTJ6TTE2OS42IDE2MGwxNzIuOCAwIDQ4LjcgNDAuNkM0NTcuNiAyNTYgNDk2IDMzOCA0OTYgNDI0LjUgNDk2IDQ3Mi44IDQ1Ni44IDUxMiA0MDguNSA1MTJsLTMwNS4xIDBDNTUuMiA1MTIgMTYgNDcyLjggMTYgNDI0LjUgMTYgMzM4IDU0LjQgMjU2IDEyMC45IDIwMC42TDE2OS42IDE2MHpNMzIzLjkgMjg0LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0zMy45IDMzLjktMzMuOS0zMy45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjkgMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzMuOS0zMy45IDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXoiXX0sdDFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhhc2h0YWciLGljb246WzUxMiw1MTIsWzYyMDk4XSwiMjMiLCJNMjE0LjcgLjdjMTcuMyAzLjcgMjguMyAyMC43IDI0LjYgMzhsLTE5LjEgODkuMyAxMjYuNSAwIDIyLTEwMi43QzM3Mi40IDggMzg5LjQtMyA0MDYuNyAuN3MyOC4zIDIwLjcgMjQuNiAzOEw0MTIuMiAxMjggNDgwIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODEuNiAwLTI3LjQgMTI4IDY3LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODEuNiAwLTIyIDEwMi43Yy0zLjcgMTcuMy0yMC43IDI4LjMtMzggMjQuNnMtMjguMy0yMC43LTI0LjYtMzhsMTkuMS04OS4zLTEyNi41IDAtMjIgMTAyLjdjLTMuNyAxNy4zLTIwLjcgMjguMy0zOCAyNC42cy0yOC4zLTIwLjctMjQuNi0zOEw5OS44IDM4NCAzMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODEuNiAwIDI3LjQtMTI4LTY3LjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MS42IDAgMjItMTAyLjdDMTgwLjQgOCAxOTcuNC0zIDIxNC43IC43ek0yMDYuNCAxOTJsLTI3LjQgMTI4IDEyNi41IDAgMjcuNC0xMjgtMTI2LjUgMHoiXX0sYTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWluIixpY29uOlszODQsNTEyLFsxMjg2NDZdLCJmMjM4IiwiTTAgOTZDMCA0MyA0MyAwIDk2IDBMMjg4IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDI1NmMwIDQwLjEtMjQuNiA3NC41LTU5LjUgODguOGw1My45IDYzLjdjOC42IDEwLjEgNy4zIDI1LjMtMi44IDMzLjhzLTI1LjMgNy4zLTMzLjgtMi44bC03NC04Ny41LTE1MS4zIDAtNzQgODcuNWMtOC42IDEwLjEtMjMuNyAxMS40LTMzLjggMi44cy0xMS40LTIzLjctMi44LTMzLjhsNTMuOS02My43QzI0LjYgNDI2LjUgMCAzOTIuMSAwIDM1MkwwIDk2em02NCAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0xOTIgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sczFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhbWVwYWQiLGljb246WzY0MCw1MTIsW10sImYxMWIiLCJNNDQ4IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkyUzU1NCA0NDggNDQ4IDQ0OGwtMjU2IDBDODYgNDQ4IDAgMzYyIDAgMjU2Uzg2IDY0IDE5MiA2NGwyNTYgMHpNMTkyIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMi0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNDAgOTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em02NC05NmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6Il19LGRrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWV4cG9ydCIsaWNvbjpbNTc2LDUxMixbImFycm93LXJpZ2h0LWZyb20tZmlsZSJdLCJmNTZlIiwiTTk2LjUgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05NiA3OC4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtNzguMSAwIDAtMTMzLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkxLjIgMTguN0MyNzkuMiA2LjcgMjYzIDAgMjQ2IDBMOTYuNSAwek0zNTggMTc2bC05My41IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MC41IDU4LjUgMzU4IDE3NnpNMjI0LjUgMzI4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDEwNCAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxpMWE9ZGtlLHVrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW1hY2UiLGljb246WzUxMiw1MTIsWzEyODU1NiwiZ3JpbWFjZSJdLCJmNTdmIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek00MDAgMzUyYzAgMjUuMi0xOS40IDQ1LjgtNDQgNDcuOGwwLTk1LjdjMjQuNiAyIDQ0IDIyLjcgNDQgNDcuOHpNMjc2IDMwNGw0MCAwIDAgOTYtNDAgMCAwLTk2em0tODAgOTZsMC05NiA0MCAwIDAgOTYtNDAgMHptLTQwLTk1LjhsMCA5NS43Yy0yNC42LTItNDQtMjIuNy00NC00Ny44czE5LjQtNDUuOCA0NC00Ny44ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHIxYT11a2UscGtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWluLXN1YndheSIsaWNvbjpbMzg0LDUxMixbInN1YndheSJdLCJmMjM5IiwiTTAgOTZDMCA0MyA0MyAwIDk2IDBMMjg4IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDI1NmMwIDQwLjEtMjQuNiA3NC41LTU5LjUgODguOGw1My45IDYzLjdjOC42IDEwLjEgNy4zIDI1LjMtMi44IDMzLjhzLTI1LjMgNy4zLTMzLjgtMi44bC03NC04Ny41LTE1MS4zIDAtNzQgODcuNWMtOC42IDEwLjEtMjMuNyAxMS40LTMzLjggMi44cy0xMS40LTIzLjctMi44LTMzLjhsNTMuOS02My43QzI0LjYgNDI2LjUgMCAzOTIuMSAwIDM1MkwwIDk2em02NCAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDcyIDAgMC0xNjAtNzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTIxNiAyNTZsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC03MiAwIDAgMTYwek05NiAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0yMjQtMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sbzFhPXBrZSxoa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvdCIsaWNvbjpbNTEyLDUxMixbMTI4MjgwLCJkb3QtY2lyY2xlIl0sImYxOTIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzUyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxuMWE9aGtlLGwxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvYmplY3QtZ3JvdXAiLGljb246WzU3Niw1MTIsW10sImYyNDciLCJNMzIgMTE5LjRDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDAgODcuNyAwIDEwOC40IDEyLjkgMTE5LjQgMzJsMzM3LjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDI3My4xYzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0zMzcuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI3My4xem00NDggMGMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40TDExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAyNzMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMzM3LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0yNzMuMXpNMTQ0IDE3NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHpNMjU2IDMyMGwzMiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTEyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6Il19LGMxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGlwIixpY29uOls2NDAsNTEyLFsxMjg2NzRdLCJmMjFhIiwiTTI3MiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2LTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMTA4LjgtMjEuNiA4LjZjLTE0LjggNS45LTIyLjUgMjIuNC0xNy40IDM3LjUgMTAuNCAzMS4zIDI2LjggNTkuMyA0Ny43IDgzLjEgMjAuMS05LjIgNDEuNy0xMy45IDYzLjMtMTQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40bDEuNiAxLjIgMC0yMTUtMTA0IDQxLjYgMC04My4yYzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4My4yLTEwNC00MS42IDAgMjE1IDEuNi0xLjJjMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMjIuMy0uMSA0NC42IDQuNSA2NS4zIDE0IDIwLjktMjMuNyAzNy4zLTUxLjggNDcuNy04My4xIDUtMTUuMi0yLjYtMzEuNi0xNy40LTM3LjVMNTEyIDI1Mi44IDUxMiAxNDRjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDAgMC0xNmMwLTI2LjUtMjEuNS00OC00OC00OEwyNzIgMHpNNDAzLjQgNDc2LjFjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA0ODIuMyAxNy42IDQ5MC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sZDFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImMiLGljb246WzM4NCw1MTIsWzk5XSwiNDMiLCJNMzI5LjEgMTQyLjljLTYyLjUtNjIuNS0xNTUuOC02Mi41LTIxOC4zIDBzLTYyLjUgMTYzLjggMCAyMjYuMyAxNTUuOCA2Mi41IDIxOC4zIDBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtODcuNSA4Ny41LTIyMS4zIDg3LjUtMzA4LjggMHMtODcuNS0yMjkuMyAwLTMxNi44IDIyMS4zLTg3LjUgMzA4LjggMGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHoiXX0sZmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1waG9uZSIsaWNvbjpbNDQ4LDUxMixbInBob25lLXNxdWFyZSJdLCJmMDk4IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTg4IDk2LjdjOS44LTIuNyAyMC4xIDIuNCAyNCAxMS44bDIwLjMgNDguN2MzLjQgOC4zIDEuMSAxNy44LTUuOSAyMy41bC0yMi4xIDE4YzE2LjIgMzUuOCA0NC41IDY1IDc5LjYgODIuNGwxOS4zLTIzLjZjNS43LTYuOSAxNS4yLTkuMyAyMy41LTUuOWw0OC43IDIwLjNjOS40IDMuOSAxNC40IDE0LjIgMTEuOCAyNGwtLjggMi44Yy04LjggMzIuMy00MC4xIDU5LjktNzguMiA1MS44LTg3LjUtMTguNS0xNTYuMy04Ny40LTE3NC45LTE3NC45LTguMS0zOC4xIDE5LjUtNjkuNCA1MS44LTc4LjJsMi44LS44eiJdfSx1MWE9ZmtlLHAxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci1jb21iaW5lZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU0NiIsIk0xIDQ0MS43QzUuNSA0NjMuNSAyNC44IDQ4MCA0OCA0ODBsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItNjQgMCAwIDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItNzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwIDAtNjQtNzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDMuMyAuMyA2LjYgMSA5Ljd6Il19LFpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtcm90YXRlIixpY29uOls1MTIsNTEyLFsxMjg0NzIsInJlZnJlc2giLCJzeW5jIl0sImYwMjEiLCJNNjUuOSAyMjguNWMxMy4zLTkzIDkzLjQtMTY0LjUgMTkwLjEtMTY0LjUgNTMgMCAxMDEgMjEuNSAxMzUuOCA1Ni4yIC4yIC4yIC40IC40IC42IC42bDcuNiA3LjItNDcuOSAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNC0xMS4zLTEwLjdDMzkwLjUgMjguNiAzMjYuNSAwIDI1NiAwIDEyNyAwIDIwLjMgOTUuNCAyLjYgMjE5LjUgLjEgMjM3IDEyLjIgMjUzLjIgMjkuNyAyNTUuN3MzMy43LTkuNyAzNi4yLTI3LjF6bTQ0My41IDY0YzIuNS0xNy41LTkuNy0zMy43LTI3LjEtMzYuMnMtMzMuNyA5LjctMzYuMiAyNy4xYy0xMy4zIDkzLTkzLjQgMTY0LjUtMTkwLjEgMTY0LjUtNTMgMC0xMDEtMjEuNS0xMzUuOC01Ni4yLS4yLS4yLS40LS40LS42LS42bC03LjYtNy4yIDQ3LjkgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMjBjLTguNSAwLTE2LjcgMy40LTIyLjcgOS41Uy0uMSAzNDMuNyAwIDM1Mi4zbDEgMTI3Yy4xIDE3LjcgMTQuNiAzMS45IDMyLjMgMzEuN1M2NS4yIDQ5Ni40IDY1IDQ3OC43bC0uNC01MS41IDEwLjcgMTAuMWM0Ni4zIDQ2LjEgMTEwLjIgNzQuNyAxODAuNyA3NC43IDEyOSAwIDIzNS43LTk1LjQgMjUzLjQtMjE5LjV6Il19LGgxYT1ab2UsZjFhPVpvZSxta2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRyZXNzIixpY29uOlszODQsNTEyLFsiZmVtYWxlIl0sImYxODIiLCJNMTM2IDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTEyIDM4NGwtMjUuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw0My0xMjktNDguMyA2NS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDI3MCAyMzQgMzEzIDM2Mi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMjUuOCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjh6Il19LG0xYT1ta2UsZzFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4MjE0LDEyODM2Nl0sImY1MTgiLCJNMjU2IDE0MS4zbDAgMzA5LjMgLjUtLjJDMzExLjEgNDI3LjcgMzY5LjcgNDE2IDQyOC44IDQxNmwxOS4yIDAgMC0zMjAtMTkuMiAwYy00Mi4yIDAtODQuMSA4LjQtMTIzLjEgMjQuNi0xNi44IDctMzMuNCAxMy45LTQ5LjcgMjAuN3pNMjMwLjkgNjEuNUwyNTYgNzIgMjgxLjEgNjEuNUMzMjcuOSA0MiAzNzguMSAzMiA0MjguOCAzMkw0NjQgMzJjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTM1LjIgMGMtNTAuNyAwLTEwMC45IDEwLTE0Ny43IDI5LjVsLTEyLjggNS4zYy03LjkgMy4zLTE2LjcgMy4zLTI0LjYgMGwtMTIuOC01LjNDMTg0LjEgNDkwIDEzMy45IDQ4MCA4My4yIDQ4MEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUuMiAwYzUwLjcgMCAxMDAuOSAxMCAxNDcuNyAyOS41eiJdfSxiMWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLXRyZWUiLGljb246WzU3Niw1MTIsW10sImY4MDIiLCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNEwwIDM5MmMwIDMwLjkgMjUuMSA1NiA1NiA1NmwxODQgMCAwLTQ4LTE4NCAwYy00LjQgMC04LTMuNi04LThsMC0yMzIgMTkyIDAgMC00OC0xOTIgMCAwLTg4ek0zMzYgMjI0bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTguNi04LjZjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xTDMzNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMCAyODhsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtODIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtOC42LTguNmMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMzM2IDI4OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDh6Il19LHYxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJnbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg1MCIsIk0zNjggMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJsMCAyNi44YzE0LjUtNi45IDMwLjgtMTAuOCA0OC0xMC44IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyUzU4OS45IDM4NCA1MjggMzg0bC00OCAwIDAgMzJjMCAxNi42IDEyLjYgMzAuMiAyOC43IDMxLjhsNi42IC4zYzE2LjEgMS42IDI4LjcgMTUuMyAyOC43IDMxLjggMCAxNy43LTE0LjMgMzItMzIgMzItNTMgMC05Ni00My05Ni05NmwwLTMyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMwNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyMGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgOTQuMiAzMiA4MC42IDMyIDY0IDMyIDQ2LjMgNDYuMyAzMiA2NCAzMiA5MSAzMiAxMTUuMyA0My4xIDEzMi43IDYxIDE1Mi42IDQzIDE3OSAzMiAyMDggMzIgMjM5LjMgMzIgMjY3LjcgNDQuOSAyODggNjUuNyAzMDguMyA0NC45IDMzNi42IDMyIDM2OCAzMnpNNTI4IDIyNGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA0OCA0OCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4eiJdfSxna2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LWFyY2hpdmUiLGljb246WzUxMiw1MTIsWyJhcmNoaXZlIl0sImYxODciLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZMMCA2NHpNMzIgMTc2bDQ0OCAwIDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNDB6bTE1MiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LHgxYT1na2UseTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3ctZG93bi10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTdlIiwiTTE4NSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMUMxMjAgMi43IDEwOS4zLTggOTYtOFM3MiAyLjcgNzIgMTZsMCAxMDIuMS0zMS0zMUMzMS42IDc3LjcgMTYuNCA3Ny43IDcgODdTLTIuMyAxMTEuNiA3IDEyMWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MnpNMTU1LjggMjYwLjZMMTMyLjEgNDQ4IDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTIuOC0uNC01LjUtMS04TDU0OC4yIDI2MC43Yy0xLjItOS43LTYuOS0xOC40LTE1LjMtMjMuNEwzNjcuNCAxMzcuOWMtMTAuMi02LjEtMjIuOS02LjEtMzMuMSAuMUwxNzAuOSAyMzcuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zek00NDggNDQ4bC05Ny4xIDAgMC0xNDkuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOUw0NDggNDQ4eiJdfSx3MWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXJjb2RlIixpY29uOls0NDgsNTEyLFtdLCJmMDI5IiwiTTY0IDE2MGw2NCAwIDAtNjQtNjQgMCAwIDY0ek0wIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHpNNjQgNDE2bDY0IDAgMC02NC02NCAwIDAgNjR6TTAgMzM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnpNMzIwIDk2bDAgNjQgNjQgMCAwLTY0LTY0IDB6TTMwNCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6TTI4OCAzNTJhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTMyIDMyYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6Il19LGsxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcmFnb24iLGljb246WzY0MCw1MTIsWzEyODAwOV0sImY2ZDUiLCJNMzUyIDEyNC41bC01MS45LTEzYy02LjUtMS42LTExLjMtNy4xLTEyLTEzLjhzMi44LTEzLjEgOC43LTE2LjFsNDAuOC0yMC40LTQzLjMtMzIuNWMtNS41LTQuMS03LjgtMTEuMy01LjYtMTcuOVMyOTcuMSAwIDMwNCAwTDQ2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40bDU3LjYgNzYuOGM2LjIgOC4zIDkuNiAxOC40IDkuNiAyOC44IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yMS41IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43bC0xMy4zLTEzLjMtMzIgMCAwIDIxLjVjMCAyNC44IDEyLjggNDcuOSAzMy44IDYxLjFsMTA2LjYgNjYuNmMzMi4xIDIwLjEgNTEuNiA1NS4yIDUxLjYgOTMuMSAwIDYwLjYtNDkuMSAxMDkuOC0xMDkuOCAxMDkuOEwzMi4zIDUxMmMtMy4zIDAtNi42LS40LTkuNi0xLjQtOS4yLTIuOC0xNi43LTkuNi0yMC40LTE4LjYtMS4zLTMuMy0yLjItNi45LTIuMy0xMC43LS4yLTMuNyAuMy03LjMgMS4zLTEwLjcgMi44LTkuMiA5LjYtMTYuNyAxOC42LTIwLjQgMy0xLjIgNi4yLTIgOS41LTIuMkw0MzMuMyA0MTJjOC4zLS43IDE0LjctNy43IDE0LjctMTYuMSAwLTQuMy0xLjctOC40LTQuNy0xMS40bC00NC40LTQ0LjRjLTMwLTMwLTQ2LjktNzAuNy00Ni45LTExMy4xbDAtMTAyLjV6TTUxMiA3Mi4zYzAtLjEgMC0uMiAwLS4zczAtLjIgMC0uM2wwIC42em0tMS4zIDcuNEw0NjQuMyA2OC4xYy0uMiAxLjMtLjMgMi42LS4zIDMuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNCAxMC42IDAgMTkuNS02LjggMjIuNy0xNi4zek0xMzAuOSAxMTYuNWMxNi4zLTE0LjUgNDAuNC0xNi4yIDU4LjUtNC4xbDEzMC42IDg3IDAgMjcuNWMwIDMyLjggOC40IDY0LjggMjQgOTNsLTIzMiAwYy02LjcgMC0xMi43LTQuMi0xNS0xMC40cy0uNS0xMy4zIDQuNi0xNy43TDE3MSAyMzIuMyAxOC40IDI1NS44Yy03IDEuMS0xMy45LTIuNi0xNi45LTlTLjEgMjMyLjggNS40IDIyOEwxMzAuOSAxMTYuNXoiXX0sYmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1lbmQiLGljb246WzM4NCw1MTIsWzg5ODcsImhvdXJnbGFzcy0zIl0sImYyNTMiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMWw2Ny45IDY3LjktNjcuOSA2Ny45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTY3LjktNjcuOSA2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMlMzNjkuNyAwIDM1MiAwTDMyIDB6TTk2IDc1bDAtMTEgMTkyIDAgMCAxMWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOWwtNjcuOSA2Ny45LTY3LjktNjcuOUMxMDYuMSAxMjQuOSA5NiAxMDAuNCA5NiA3NXoiXX0sUzFhPWJrZSxoaD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwIixpY29uOls1MTIsNTEyLFs1ODExOSwiZ3JpZC1ob3Jpem9udGFsIiwiZ3JpcC1ob3Jpem9udGFsIl0sImY1OGQiLCJNODggOTZjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek0yODAgMjI0bC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHptMTkyIDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDE5MmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6TTI4MCAyODhjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek04OCA0MTZsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQweiJdfSxfMWE9aGgsTTFhPWhoLHZrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JkZXItdG9wLWxlZnQiLGljb246WzQ0OCw1MTIsWyJib3JkZXItc3R5bGUiXSwiZjg1MyIsIk0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDM1MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDh6bTEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyem0xMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMnptMTYwIDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnpNMzg0IDE5MmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem0zMiAxNjBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSx6MWE9dmtlLHhrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LXVsIixpY29uOls1MTIsNTEyLFsibGlzdC1kb3RzIl0sImYwY2EiLCJNNDggMTQ0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTQ4IDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTk2IDI1NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxDMWE9eGtlLFQxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtcm9iYmVyeSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNiIsIk00ODguMiA1OS4xQzQ3OC4xIDk5LjYgNDQxLjcgMTI4IDQwMCAxMjhzLTc4LjEtMjguNC04OC4yLTY4LjlMMzAzIDI0LjJDMjk4LjggNy4xIDI4MS40LTMuMyAyNjQuMiAxUzIzNi43IDIyLjYgMjQxIDM5LjhsOC43IDM0LjljMTEgNDQgNDAuMiA3OS42IDc4LjMgOTkuNkwzMjggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA1LjdjMzguMS0yMCA2Ny4zLTU1LjYgNzguMy05OS42TDU1OSAzOS44YzQuMy0xNy4xLTYuMS0zNC41LTIzLjMtMzguOFM1MDEuMiA3LjEgNDk3IDI0LjJsLTguNyAzNC45ek00MDAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDAgLjYgMCAxOTEuNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNy4zIDEzIDIwLjVjNS45IDkuMiAxNi4xIDE0LjkgMjcgMTQuOWw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMC40IDAtMzcuNC01OC45QzE1Ny42IDE0MiAxMzIuMSAxMjggMTA0LjcgMTI4TDcyIDEyOHoiXX0sJDFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1idXR0b24iLGljb246WzM4NCw1MTIsW10sImYxMGIiLCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAwek0xOTIgNDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnoiXX0sWG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tYS16IixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS1hc2MiLCJzb3J0LWFscGhhLWRvd24iXSwiZjE1ZCIsIk0yMzAuNiAzOTAuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTE4Mi0zNDAuOWM1MC43IDEwMS4zIDc3LjMgMTU0LjcgODAgMTYwIDcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNsLTcuMi0xNC4zLTg4LjQgMC03LjIgMTQuM2MtNy45IDE1LjgtMjcuMSAyMi4yLTQyLjkgMTQuM3MtMjIuMi0yNy4xLTE0LjMtNDIuOWMyLjctNS4zIDI5LjMtNTguNyA4MC0xNjAgNS40LTEwLjggMTYuNS0xNy43IDI4LjYtMTcuN3MyMy4yIDYuOCAyOC42IDE3Ljd6TTM4NCAxMzUuNmwtMjAuMiA0MC40IDQwLjQgMC0yMC4yLTQwLjR6TTI4OCAzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyA0MTYgNDQ4IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDczLjQtNzMuNC01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxEMWE9WG9lLEwxYT1Yb2UsRTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwiLGljb246WzUxMiw1MTIsW10sImYwZDYiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE5MiA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMTkyIDI0YzAgNC40LTMuNiA4LjEtOCA3LjUtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDh6TTY0IDMyOGMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6bTgtMTM2LjVjLTQuNCAuNS04LTMuMS04LTcuNWwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjV6bTM2OCAxMjljNC40LS41IDggMy4xIDggNy41bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41eiJdfSx5a2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW1pbnVzIixpY29uOls1MTIsNTEyLFsibWludXMtY2lyY2xlIl0sImYwNTYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2OCAyMzJsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxQMWE9eWtlLHdrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1wb2ludGVyIixpY29uOls0NDgsNTEyLFsibW91c2UtcG9pbnRlciJdLCJmMjQ1IiwiTTc3LjMgMi41YzguMS00LjEgMTcuOS0zLjIgMjUuMSAyLjNsMzIwIDIzOS45YzguMyA2LjIgMTEuNiAxNyA4LjQgMjYuOHMtMTIuNCAxNi40LTIyLjggMTYuNGwtMTUyLjMgMCA4OC45IDE3Ny43YzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNsLTg4LjktMTc3LjctOTEuMyAxMjEuOGMtNi4yIDguMy0xNyAxMS42LTI2LjggOC40UzY0IDQzNC4zIDY0IDQyNEw2NCAyNGMwLTkuMSA1LjEtMTcuNCAxMy4zLTIxLjV6Il19LEkxYT13a2Usa2tlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1zaGFyZS1ub2RlcyIsaWNvbjpbNDQ4LDUxMixbInNoYXJlLWFsdC1zcXVhcmUiXSwiZjFlMSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNjggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0LTE1LjQgMC0yOS41LTUuNC00MC42LTE0LjVsLTg1LjMgNDYuNSA4NS4zIDQ2LjVjMTEtOS4xIDI1LjItMTQuNSA0MC42LTE0LjUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NGMwLTIuNSAuMS00LjkgLjQtNy4zTDE1OC41IDMwMGMtMTEuNyAxMi4zLTI4LjIgMjAtNDYuNSAyMC0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE4LjMgMCAzNC44IDcuNyA0Ni41IDIwbDgxLjktNDQuN2MtLjMtMi40LS40LTQuOS0uNC03LjMgMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHoiXX0sQTFhPWtrZSxTa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtbGFyZ2UiLGljb246WzQ0OCw1MTIsWyJ0aC1sYXJnZSJdLCJmMDA5IiwiTTM4NCA5NmwtMTI4IDAgMCAxMjggMTI4IDAgMC0xMjh6bTY0IDEyOGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjh6TTY0IDI4OGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHptMTI4LTY0bDAtMTI4LTEyOCAwIDAgMTI4IDEyOCAwem02NCA2NGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHoiXX0sTjFhPVNrZSxSMWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2F0IixpY29uOls1NzYsNTEyLFsxMjgwMDhdLCJmNmJlIiwiTTY0IDk2YzUzIDAgOTYgNDMgOTYgOTZsMCA4NS44YzI5LjctNDQuNyA3Ny44LTc2LjIgMTMzLjQtODQgMjUuNiA2MCA4NS4yIDEwMi4xIDE1NC42IDEwMi4xIDEwLjkgMCAyMS42LTEuMSAzMi0zLjFMNDgwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0MC44LTEzNiAxMDguOCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNDQgMGMtNTMgMC05Ni00My05Ni05NmwwLTIyNGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgMTU4LjIgMzIgMTQ0LjYgMzIgMTI4IDMyIDExMC4zIDQ2LjMgOTYgNjQgOTZ6TTUzMy44IDMuMkM1NDQuMi01LjUgNTYwIDEuOSA1NjAgMTUuNUw1NjAgMTI4YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzMzNiAxODkuOSAzMzYgMTI4bDAtMTEyLjVjMC0xMy42IDE1LjgtMjEgMjYuMi0xMi4zTDQxNiA0OCA0ODAgNDggNTMzLjggMy4yek00MDAgMTA4YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptOTYgMGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LE8xYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci13ZWVrIixpY29uOls0NDgsNTEyLFtdLCJmNzg0IiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDB6Il19LEYxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWNvbXBhcmUiLGljb246WzUxMiw1MTIsW10sImUxM2EiLCJNMTk4LjggMS44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMxODQgMTQ1LjcgMTg0IDEzNmwwLTI0LTI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjE0LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zTDY0IDE0NGMwLTUzIDQzLTk2IDk2LTk2bDI0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6TTM5MiA4MGEyNCAyNCAwIDEgMCA0OCAwIDI0IDI0IDAgMSAwIC00OCAwem0tOCA3My4zYy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM0w0NDggMzY4YzAgNTMtNDMgOTYtOTYgOTZsLTI0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMzMjggMzY2LjMgMzI4IDM3NmwwIDI0IDI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMTQuN3pNNzIgNDMyYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6Il19LEIxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZW8iLGljb246WzUxMiw1MTIsW10sImU4NGEiLCJNMjYwIDBjNzIuOSAwIDEzMiA1OS4xIDEzMiAxMzJsMCA1LjQtLjEgMS40LTIzLjggMjcwYy40IDIxLjcgMTguMiAzOS4yIDQwIDM5LjIgMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDBjMCA1Ny40LTQ2LjYgMTA0LTEwNCAxMDRTMzA0IDQ2NS40IDMwNCA0MDhsMC0xLjQgLjEtMS40IDIzLjktMjcwLjYgMC0yLjZjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA0YzAgMy43IC4zIDcuMyAuOCAxMWwyOS43IDE5My40Yy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNGwwIDkuMmMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMwIDQyOS45IDAgMzY4IDUwLjEgMjU2IDExMiAyNTZjMTEuNyAwIDIzIDEuOCAzMy43IDUuMUwxMjkuNiAxNTYuN2MtMS4xLTYuOC0xLjYtMTMuOC0xLjYtMjAuN2wwLTRDMTI4IDU5LjEgMTg3LjEgMCAyNjAgMHpNMTEyIDMyMGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6Il19LEgxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NiIsIk0yODcuOSAzMmwtNzYuMiAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkw2NS40IDQyMC41QzU3LjkgNDUwLjcgODAuOCA0ODAgMTEyIDQ4MGwyMDkuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0yOC42IDYuMi01NS43IDE3LjQtODAtLjUgMC0xIDAtMS42IDAtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDkuMmMzNS4yLTQwIDg2LjctNjUuMiAxNDQuMi02NS4yIDkgMCAxNy44IC42IDI2LjQgMS44bC0zMi0xMjkuMkM0ODMuNCA1Mi4xIDQ1Ny44IDMyIDQyOC4zIDMybC03Ni41IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0scTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGxldCIsaWNvbjpbNTc2LDUxMixbXSwiZjQ4MiIsIk0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHptOTYgNjRsMTI4IDAgMCA2NC0xMjggMCAwLTY0em0xOTIgMGwxMjggMCAwIDY0LTEyOCAwIDAtNjR6Il19LFFvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWtlLWNhbmRsZXMiLGljb246WzQ0OCw1MTIsWzEyNzg3NCwiYmlydGhkYXktY2FrZSIsImNha2UiXSwiZjFmZCIsIk04Ni40LTEwLjVMNjEuOCAzMS42QzU4IDM4LjEgNTYgNDUuNiA1NiA1My4yTDU2IDU2YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwxMDUuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNXptMTI4IDBMMTg5LjggMzEuNmMtMy44IDYuNS01LjggMTQtNS44IDIxLjZsMCAyLjhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDIzMy42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41ek0zMTcuOCAzMS42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMzYxLjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjVMMzE3LjggMzEuNnpNMTI4IDE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjVDMjYuNyAyMjYuNiAwIDI2Mi4yIDAgMzA0bDAgMjAuOGMyMC45IDEuMyA0MS42IDcuMyA2MC4zIDE4bDcuMSA0LjFjMjYuMyAxNSA1OC45IDEzLjQgODMuNi00LjIgNDMuNy0zMS4yIDEwMi4zLTMxLjIgMTQ2IDAgMjQuNiAxNy42IDU3LjMgMTkuMyA4My42IDQuMmw3LjEtNC4xYzE4LjctMTAuNyAzOS4zLTE2LjcgNjAuMy0xOGwwLTIwLjhjMC00MS44LTI2LjctNzcuNC02NC05MC41bDAtNTMuNWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4LTY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4LTY0IDAgMC00OHpNNDQ4IDM3M2MtMTIuNyAxLjItMjUuMSA1LTM2LjUgMTEuNWwtNy4xIDQuMWMtNDIuNiAyNC4zLTk1LjQgMjEuNy0xMzUuMy02LjgtMjctMTkuMy02My4yLTE5LjMtOTAuMiAwLTM5LjkgMjguNS05Mi43IDMxLjItMTM1LjMgNi44bC03LjEtNC4xQzI1LjEgMzc4IDEyLjcgMzc0LjEgMCAzNzNsMCA3NWMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTc1eiJdfSxqMWE9UW9lLFYxYT1Rb2UsVTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Zy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTQ5MCIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjQxLjggMTc2IDM0NCAxNzZjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjRzNy43IDM0LjItNi40IDQ0LjhsLTk3LjggNzMuM2M1LjMgOC45IDkuMyAxOC43IDExLjggMjkuMWw5OC44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCAzMmMwIDkuNS0uOCAxOC43LTIuNCAyNy44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0zOTguMiA0NjhjLTIzLjIgMjIuMS01MyAzNy4yLTg2LjIgNDIuMmwwLTEyOC40IDg2LjIgODYuMnpNMjY0IDMzMy44bDAgMTc2LjRjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzMuMy0xMy45IDkuMy0yNi43IDE3LjYtMzcuOEwyNjQgMzMzLjh6TTM1NS42IDEyOGwtODIuNCAwLTcyLjMtNzIuM0MyMTYuMSAyMi44IDI0OS40IDAgMjg4IDAgMzQxIDAgMzg0IDQzIDM4NCA5NmwwIDMuNmMwIDE1LjctMTIuNyAyOC40LTI4LjQgMjguNHoiXX0sVzFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcnAiLGljb246WzUxMiw1MTIsW10sImU1N2IiLCJNNDQ4IDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTQ5LjVjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNMMzg2LjcgNDI5LjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMHptNS41IDIwOEwzNjAgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkzLjUgMTE3LjUtMTE3LjV6TTk2IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEcxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFncmFtLXByZWRlY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDc3IiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCAzNTJsLTMyMCAwIDAgNjQgMzIwIDAgMC02NHptNjQgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjR6Il19LF9rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWZsdXNoZWQiLGljb246WzUxMiw1MTIsWzEyODU2MywiZmx1c2hlZCJdLCJmNTc5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTE2OCAzOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTI4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptLTgtOTZhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6bTI2NC03MmE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6bS0yODggMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xOTIgMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxLMWE9X2tlLFkxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFncmFtLW5leHQiLGljb246WzQ0OCw1MTIsW10sImU0NzYiLCJNMzg0IDIyNGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMjggMCAwIDY0LTMyIDBjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNGw2NCA2NGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw2NC02NGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzI5NC41IDI4OCAyODggMjg4bC0zMiAwIDAtNjQgMTI4IDB6TTY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zNCAwYzUuNiAyMS43LS41IDQ1LjEtMTYuNyA2MS4zbC02NCA2NGMtMjUgMjUtNjUuNSAyNS05MC41IDBsLTY0LTY0Qzk4LjYgMzMzLjEgOTIuNCAzMDkuNyA5OCAyODhsLTM0IDB6Il19LFoxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNGFjIiwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjA4IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFgxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTQzIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTIyLjYtMTQ0bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkw1MTguNiA0MDB6Il19LFExYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGEiLGljb246WzU3Niw1MTIsW10sImY1YmIiLCJNMTY5LjcgMjI3LjVjMzQuMyAxOC43IDY0LjUgNDQuMSA4OC44IDc0LjUgMTEuMSAxMy45IDIxIDI4LjkgMjkuNCA0NC44IDguNS0xNS45IDE4LjMtMzAuOCAyOS40LTQ0LjggMjQuMy0zMC41IDU0LjUtNTUuOSA4OC44LTc0LjUgNDEuNy0yMi43IDg5LjQtMzUuNSAxMzkuNy0zNS41bDkuOSAwYzExLjEgMCAyMC4xIDkgMjAuMSAyMC4xIDAgMTQ4LTExOS45IDI2Ny45LTI2Ny45IDI2Ny45bC00MC4yIDBDMTE5LjkgNDgwIDAgMzYwLjEgMCAyMTIuMSAwIDIwMSA5IDE5MiAyMC4xIDE5Mmw5LjkgMGM1MC40IDAgOTguMSAxMi44IDEzOS43IDM1LjV6TTMwMy45IDM4YzE2LjkgMTUuOSA2MS40IDYzLjQgODkgMTQyLjMtNDAuMSAyMC4yLTc1LjggNDguMi0xMDQuOSA4Mi4xLTI5LjItMzMuOS02NC44LTYxLjgtMTA0LjktODIuMSAyNy42LTc4LjkgNzIuMi0xMjYuNCA4OS0xNDIuMyA0LjMtNC4xIDEwLTYgMTUuOS02czExLjYgMiAxNS45IDZ6Il19LEoxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcmllcyIsaWNvbjpbNTEyLDUxMixbXSwiZTg0NiIsIk00MDEuNiAwYzYxLjMgMCAxMTAuNCA1MC4zIDExMC40IDExMSAwIDI5LjQtMTEuNiA1Ny45LTMyLjYgNzguOGwtOC44IDguOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4yIDBzLTEyLjUtMzIuOCAwLTQ1LjJsOC44LTguOGM4LjgtOC44IDEzLjgtMjEgMTMuOC0zMy42IDAtMjUuOS0yMS4xLTQ3LTQ2LjQtNDctMjIuNSAwLTQxLjcgMTYuMS00NS43IDM4LjJMMjg3LjUgNDg1LjZjMCAuMS0uMSAuMy0uMSAuNC0uMiAuOC0uMyAxLjYtLjUgMi4zLS4xIC4zLS4xIC41LS4yIC43LS4yIC42LS40IDEuMy0uNyAxLjktLjIgLjUtLjQgMS0uNiAxLjUtLjEgLjMtLjMgLjYtLjQgLjktMS42IDMuNS0zLjggNi41LTYuNCA5LjItMiAyLTQuMiAzLjctNi42IDUuMS0uMiAuMS0uMyAuMi0uNSAuMy0uNyAuNC0xLjQgLjctMi4xIDEtLjMgLjEtLjYgLjMtLjkgLjQtLjUgLjItMSAuNC0xLjUgLjYtLjYgLjItMS4yIC41LTEuOSAuNy0uMiAuMS0uNSAuMi0uNyAuMi0uOCAuMi0xLjYgLjQtMi4zIC41LS4yIDAtLjMgLjEtLjQgLjEtLjIgMC0uNCAwLS42IC4xLS43IC4xLTEuMyAuMi0yIC4yLS40IDAtLjggLjEtMS4yIC4xLS42IDAtMS4yIC4xLTEuOCAuMS0uNiAwLTEuMiAwLTEuOC0uMS0uNCAwLS44LS4xLTEuMi0uMS0uNy0uMS0xLjQtLjEtMi0uMi0uMiAwLS40IDAtLjYtLjEtLjIgMC0uMy0uMS0uNS0uMS0uOC0uMi0xLjYtLjMtMi4zLS41LS4zLS4xLS41LS4xLS44LS4yLS42LS4yLTEuMy0uNC0xLjktLjctLjUtLjItMS0uNC0xLjUtLjYtLjMtLjEtLjYtLjMtLjktLjQtLjctLjMtMS40LS43LTIuMS0xLS4yLS4xLS4zLS4yLS41LS4zLTIuNC0xLjQtNC43LTMuMS02LjYtNS4xLTIuNi0yLjYtNC44LTUuNy02LjQtOS4yLS4xLS4yLS4yLS4zLS4yLS41bC0uNS0xLjFjLS4xLS4zLS4yLS41LS4zLS44LS4yLS42LS41LTEuMi0uNy0xLjktLjEtLjItLjItLjUtLjItLjctLjItLjgtLjQtMS42LS41LTIuMyAwLS4xLS4xLS4zLS4xLS40TDE1NiAxMDIuMmMtNC0yMi4xLTIzLjItMzguMi00NS43LTM4LjItMjUuMyAwLTQ2LjQgMjEuMS00Ni40IDQ3IDAgMTIuNiA1IDI0LjggMTMuOCAzMy42bDguOCA4LjhjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjJzLTMyLjggMTIuNS00NS4yIDBsLTguOC04LjhDMTEuNiAxNjguOSAwIDE0MC4zIDAgMTExIDAgNTAuMyA0OS4xIDAgMTEwLjQgMCAxNjMuOCAwIDIwOS42IDM4LjMgMjE5IDkxbDM3IDIwNyAzNy0yMDdjOS40LTUyLjYgNTUuMi05MSAxMDguNy05MXoiXX0sTWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtcHJvZ3Jlc3MiLGljb246WzQ0OCw1MTIsWyJ0YXNrcy1hbHQiXSwiZjgyOCIsIk0yODggMTYwbDk2IDAgMC02NC05NiAwIDAgNjR6TTAgMTYwTDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAyMjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6TTE2MCA0MTZsMjI0IDAgMC02NC0yMjQgMCAwIDY0ek0wIDQxNmwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2eiJdfSxlMmE9TWtlLHQyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0ZmQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0semtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXJpZ2h0IixpY29uOls2NDAsNTEyLFs5ODk3LCJtYXJzLXN0cm9rZS1oIl0sImYyMmIiLCJNMzIwLjUgMjU2YTExMiAxMTIgMCAxIDAgLTIyNCAwIDExMiAxMTIgMCAxIDAgMjI0IDB6TTIwOC41IDgwYzg2LjMgMCAxNTguMSA2Mi4xIDE3My4xIDE0NC4xIDEtLjEgMS45LS4xIDIuOS0uMWwxNiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDYxLjQgMC0yMi40LTI4Yy0xMS0xMy44LTguOC0zMy45IDUtNDVzMzMuOS04LjggNDUgNWw2NCA4MGM5LjMgMTEuNyA5LjMgMjguMyAwIDQwbC02NCA4MGMtMTEgMTMuOC0zMS4yIDE2LTQ1IDVzLTE2LTMxLjItNS00NWwyMi40LTI4LTYxLjQgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTYgMGMtMSAwLTEuOSAwLTIuOS0uMS0xNSA4Mi04Ni44IDE0NC4xLTE3My4xIDE0NC4xLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzZ6Il19LGEyYT16a2UsczJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLW9ic2VydmF0aW9uIixpY29uOls0NDgsNTEyLFtdLCJlNTg2IiwiTTIwOS43IDMuNGM5LTQuNSAxOS42LTQuNSAyOC42IDBsMTYwIDgwYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjktNS42IDExLjItMTYuOSAxNy43LTI4LjYgMTcuN2wwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMyAwIDMyIDE5MiA0NSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NSAwIDMyLTE5Mi0xMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYy0xMS43IDAtMjMtNi41LTI4LjYtMTcuNy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45bDE2MC04MHpNMzEwLjcgNDQ4bC04Ni43LTYxLjktODYuNyA2MS45IDE3My40IDB6bS0xNTMtMTkybC0zLjUgMjEuMiA2OS45IDQ5LjkgNjkuOS00OS45LTMuNS0yMS4yLTEzMi43IDB6bS0xMi4zIDczLjlsLTEwLjEgNjAuNiA0Ny41LTMzLjktMzcuNC0yNi43em0xMTkuOSAyNi43bDQ3LjUgMzMuOS0xMC4xLTYwLjYtMzcuNCAyNi43ek0xNTIgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sSm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0ZXJsaW5nLXNpZ24iLGljb246WzM4NCw1MTIsWzE2MywiZ2JwIiwicG91bmQtc2lnbiJdLCJmMTU0IiwiTTkxLjMgMjg4bC0zNC44IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjEuNCAwQzM3LjMgMTQ3LjMgMTA1LjEgNDIgMjA3LjYgNDJsOC4yIDBjMzMuNiAwIDY2LjIgMTEuMyA5Mi41IDMyLjJsMTYuMSAxMi43YzEzLjkgMTEgMTYuMiAzMS4xIDUuMiA0NXMtMzEuMSAxNi4yLTQ1IDUuMmwtMTYuMS0xMi43Yy0xNS0xMS45LTMzLjYtMTguNC01Mi44LTE4LjRsLTguMiAwYy01Ny4zIDAtOTQuNyA1OS45LTY5LjcgMTExLjQgMy42IDcuNCA2LjYgMTQuOSA5LjEgMjIuNmwxNDkuNSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDEuMiAwYzEgMzUuMy04LjcgNzAuNi0yOC45IDEwMC45bC0xOC4xIDI3LjEgMjEyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjcyIDBjLTExLjggMC0yMi42LTYuNS0yOC4yLTE2LjlzLTUtMjMgMS42LTMyLjlsNTEuMi03Ni44YzEzLjEtMTkuNiAxOS4yLTQyLjYgMTguMi02NS40eiJdfSxpMmE9Sm9lLHIyYT1Kb2UsbzJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldC1kcmlwIixpY29uOls1MTIsNTEyLFsxMjg2ODhdLCJlMDA2IiwiTTIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsOTYgMCAwIDY0LTE4LjcgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRMMTI4IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAwLjEgMGMyMC4yIDI5IDUzLjkgNDggOTEuOSA0OHM3MS43LTE5IDkxLjktNDhsMzYuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MGwtMzIgMC0yMi42LTIyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNGwtMTguNyAwIDAtNjQgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDM2LjggNDU1LjRsLTE4LjIgNDIuNGMtMS44IDQuMS0yLjcgOC42LTIuNyAxMy4xbDAgMS4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xLjJjMC00LjUtLjktOC45LTIuNy0xMy4xbC0xOC4yLTQyLjRjLTEuOS00LjUtNi4zLTcuNC0xMS4yLTcuNHMtOS4yIDIuOS0xMS4yIDcuNHoiXX0sdmY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWluZm8iLGljb246WzUxMiw1MTIsWyJpbmZvLWNpcmNsZSJdLCJmMDVhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTYwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS04IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4OCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTY0LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LG4yYT12ZixsMmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlciIsaWNvbjpbNTEyLDUxMixbMTI5NzE4XSwiZjUyZCIsIk0zNTIgMGM0MSAwIDgwLjMgMTYuMyAxMDkuMiA0NS4ybDUuNSA1LjVjMjkgMjkgNDUuMyA2OC4zIDQ1LjMgMTA5LjIgMCAyNC4xLTUuNyA0Ny42LTE2LjIgNjguOC0xLjkgMy43LTUuMyA2LjUtOS4zIDcuN0wzNzQuNSAyNzBjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMmwzMi4yIDBjMTQuMyAwIDIxLjQgMTcuMiAxMS4zIDI3LjNsLTIyLjQgMjIuNGMtMS45IDEuOS00LjIgMy4yLTYuNyA0bC04MSAyNC4zYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjIgMTMuMiAwIDE4LjkgMTUuNyA3LjggMjIuOS00MS4xIDI2LjYtODkuMyA0MS4xLTEzOSA0MS4xbC04NiAwLTQ4IDQ4Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJMMjU2IDIyNGM4LjgtOC44IDguOC0yMy4yIDAtMzJzLTIzLjItOC44LTMyIDBMNzkuNSAzMzYuNWMtNS43IDUuNy0xNS41IDEuNy0xNS41LTYuNCAwLTY3LjkgMjctMTMzIDc1LTE4MUwyNDIuOCA0NS4yQzI3MS43IDE2LjMgMzExIDAgMzUyIDB6Il19LGMyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsLXJpY2UiLGljb246WzUxMiw1MTIsW10sImUyZWIiLCJNMTc2IDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA0OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek01NiAxNjBsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6TTIyNCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS05NiAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xMDQgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMjE2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yOTYgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTIwIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0zOTIgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjk2IDE2bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LENrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLWhhbGYtc3Ryb2tlIixpY29uOls1NzYsNTEyLFsic3Rhci1oYWxmLWFsdCJdLCJmNWMwIiwiTTI4OC4xIDM1My42YzEwIDAgMTkuOSAyLjMgMjkgN2w3NC40IDM3LjktMTMtODIuNWMtMy4yLTIwLjIgMy41LTQwLjcgMTcuOS01NS4ybDU5LTU5LjEtODIuNS0xMy4xYy0yMC4yLTMuMi0zNy43LTE1LjktNDctMzQuMWwtMzgtNzQuNCAwIDI3My42ek00NTcuNCA0ODljLTcuMyA1LjMtMTcgNi4xLTI1IDJMMjg4LjEgNDE3LjYgMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNsMTU5LjktMjUuNCA3My42LTE0NC4yYzQuMS04IDEyLjQtMTMuMSAyMS40LTEzLjFzMTcuMyA1LjEgMjEuNCAxMy4xTDM4MyAxMjUuMyA1NDIuOSAxNTAuN2M4LjkgMS40IDE2LjMgNy43IDE5LjEgMTYuM3MuNSAxOC01LjggMjQuNEw0NDEuNyAzMDUuOSA0NjcgNDY1LjhjMS40IDguOS0yLjMgMTcuOS05LjYgMjMuMnoiXX0sZDJhPUNrZSxUa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctZG93biIsaWNvbjpbNTEyLDUxMixbInRlbXBlcmF0dXJlLWRvd24iXSwiZTAzZiIsIk02NC41IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NHMtMTQ0LTY0LjUtMTQ0LTE0NGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NC41IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjguN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI4LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDM5LjEgMzEwLjZjLTYgNi0xNC4xIDkuNC0yMi42IDkuNHMtMTYuNi0zLjQtMjIuNi05LjRsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0xNzguN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC02NCA2NHoiXX0sdTJhPVRrZSxwMmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzay12ZW50aWxhdG9yIixpY29uOls2NDAsNTEyLFtdLCJlNTI0IiwiTTE1Mi4yIDE5MmMtMTUuNCAzOC4zLTI0LjIgNzcuMi0yNC4yIDEwOC44IDAgMTMuMyAxLjUgMjYuMiA0LjQgMzguN2wtMTctMy40Yy0yOS45LTYtNTEuNC0zMi4yLTUxLjQtNjIuOGwwLTgxLjMgODguMiAwem0zMi45LTY0TDY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4MS4zYzAgNjEgNDMuMSAxMTMuNSAxMDIuOSAxMjUuNWw2Ni4zIDEzLjNjMTguNyAyMi4xIDQyLjkgNDAgNzAuOCA1MS44bDAtODcuOGMtMTAuMS0xNC4yLTE2LTMxLjMtMTYtNDkuNyAwLTQ5LjUgNDMtMTM0LjQgOTYtMTM0LjQgNTIuNSAwIDk2IDg0LjkgOTYgMTM0LjQgMCAxOC40LTUuOSAzNS40LTE2IDQ5LjZsMCA4Ny43YzI3LjYtMTEuOCA1MS43LTI5LjYgNzAuNC01MS42bDY2LjctMTMuM2M1OS44LTEyIDEwMi45LTY0LjUgMTAyLjktMTI1LjVsMC04MS4zYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xMjEuNSAwYy0zNC44LTU0LjItODIuNS05Ni0xMzQuNS05Ni01Mi42IDAtMTAwLjIgNDEuOC0xMzQuOSA5NnptMzAyLjUgNjRsODguNCAwIDAgODEuM2MwIDMwLjUtMjEuNSA1Ni44LTUxLjQgNjIuOGwtMTcgMy40YzIuOS0xMi40IDQuNS0yNS40IDQuNS0zOC43IDAtMzEuNi04LjktNzAuNS0yNC40LTEwOC44ek0yODggMzIwbDAgMTkyIDY0IDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LGgyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXZpZGVvIixpY29uOlszODQsNTEyLFtdLCJmMWM4IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek04MCAzMDRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGYyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10cmVuZC1kb3duIixpY29uOls1NzYsNTEyLFtdLCJlMDk3IiwiTTM4NCAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA4Mi43LTE2OS40LTE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMEwxOTIgMjQyLjcgNTQuNiAxMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMEwzMjAgMjA1LjMgNDY2LjcgMzUyIDM4NCAzNTJ6Il19LG0yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvaWwtY2FuIixpY29uOls2NDAsNTEyLFtdLCJmNjEzIiwiTTMyMCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMi0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NC44YzAgMTkgMTEuMiAzNi4yIDI4LjUgNDMuOWw2Ny41IDMwIDAgMjEuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNTkuMSAwYzE4LjQgMCAzNS44LTcuOSA0OC0yMS43TDYzMy41IDE4Ny43YzEyLjMtMTMuOS0uMy0zNS40LTE4LjQtMzEuNUw0NDggMTkyIDM5Ny41IDE2Ni44Yy04LjktNC40LTE4LjctNi44LTI4LjYtNi44bC04MC45IDAgMC0zMiAzMiAwek05NiAyMDhsMCA4Ni4xLTQ4LTIxLjMgMC02NC44IDQ4IDB6Il19LCRrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtY2FycnktYm94IixpY29uOls1NzYsNTEyLFsicGVvcGxlLWNhcnJ5Il0sImY0Y2UiLCJNNjQtMzJBNTYgNTYgMCAxIDEgNjQgODAgNTYgNTYgMCAxIDEgNjQtMzJ6TTAgMTcxLjFjMC0zMi42IDI2LjUtNTkuMSA1OS4xLTU5LjEgMjMuNSAwIDQ1LjUgMTEuMyA1OS4xIDMwLjRsNDguNyA2OC4yYzUuOCA4LjIgMTUuMSAxMy4xIDI1LjEgMTMuNGwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMTAtLjMgMTkuMy01LjIgMjUuMS0xMy40bDQ4LjctNjguMmMxMy42LTE5LjEgMzUuNi0zMC40IDU5LjEtMzAuNCAzMi42IDAgNTkuMSAyNi41IDU5LjEgNTkuMUw1NzYgMjcyYzAgMzAuMi0xNC4yIDU4LjctMzguNCA3Ni44bC03Ni44IDU3LjZjLTguMSA2LTEyLjggMTUuNS0xMi44IDI1LjZsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMzAuMiAxNC4yLTU4LjcgMzguNC03Ni44bDQxLjYtMzEuMiAwLTgwLjEtMi44IDMuOWMtMTggMjUuMi00Ny4xIDQwLjItNzguMSA0MC4yTDM1MiAyODhjLS42IDAtMS4zIDAtMS45LS4xLS42IDAtMS4zIC4xLTEuOSAuMWwtMTIwLjQgMGMtLjYgMC0xLjMgMC0xLjktLjEtLjYgMC0xLjMgLjEtMS45IC4xbC0zMS4xIDBjLTMxIDAtNjAuMS0xNS03OC4xLTQwLjJsLTIuOC0zLjkgMCA4MC4xIDQxLjYgMzEuMkMxNzcuOCAzNzMuMyAxOTIgNDAxLjggMTkyIDQzMmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNkwzOC40IDM0OC44QzE0LjIgMzMwLjcgMCAzMDIuMiAwIDI3MkwwIDE3MS4xek0wIDM3OS4zYzMuMSAyLjcgNi4zIDUuNCA5LjYgNy45TDY0IDQyOCA2NCA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA1MjkuNyAwIDUxMkwwIDM3OS4zek01NjggMjRhNTYgNTYgMCAxIDEgLTExMiAwIDU2IDU2IDAgMSAxIDExMiAwem04IDQ4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTg0IDU0LjQtNDAuOGMzLjMtMi41IDYuNS01LjEgOS42LTcuOUw1NzYgNTEyeiJdfSxnMmE9JGtlLGIyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFpciIsaWNvbjpbNDQ4LDUxMixbMTI5NjgxXSwiZjZjMCIsIk0xNTIgMjU2bDAtMTgxLjhjLTI0LjUgMjAuNS00MCA1MS40LTQwIDg1LjhsMCA5NiA0MCAwem00OCAwbDQ4IDAgMC0yMDUuNGMtNy43LTEuNy0xNS44LTIuNi0yNC0yLjZzLTE2LjMgLjktMjQgMi42TDIwMCAyNTZ6TTI5NiA3NC4ybDAgMTgxLjggNDAgMCAwLTk2YzAtMzQuNC0xNS41LTY1LjItNDAtODUuOHpNMzIgMjU2bDMyIDAgMC05NkM2NCA3MS42IDEzNS42IDAgMjI0IDBTMzg0IDcxLjYgMzg0IDE2MGwwIDk2IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMjU2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSx2MmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZCIsaWNvbjpbNTEyLDUxMixbXSwiZjcyZSIsIk0yODggMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwzMiAxMTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzI4IDBjNDguNiAwIDg4LTM5LjQgODgtODhTNDA4LjYgMCAzNjAgMEwzMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTY0IDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2TDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTEyOCA1MTJsNDAgMGM0OC42IDAgODgtMzkuNCA4OC04OHMtMzkuNC04OC04OC04OEwzMiAzMzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6Il19LHgyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXllci1ncm91cCIsaWNvbjpbNTEyLDUxMixbXSwiZjVmZCIsIk0yMzIuNSA1LjJjMTQuOS02LjkgMzIuMS02LjkgNDcgMGwyMTguNiAxMDFjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEwxMy45IDE0OS44QzUuNCAxNDUuOCAwIDEzNy4zIDAgMTI4czUuNC0xNy45IDEzLjktMjEuOEwyMzIuNSA1LjJ6TTQ4LjEgMjE4LjRsMTY0LjMgNzUuOWMyNy43IDEyLjggNTkuNiAxMi44IDg3LjMgMGwxNjQuMy03NS45IDM0LjEgMTUuOGM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMjc3LjhDNS40IDI3My44IDAgMjY1LjMgMCAyNTZzNS40LTE3LjkgMTMuOS0yMS44bDM0LjEtMTUuOHpNMTMuOSAzNjIuMmwzNC4xLTE1LjggMTY0LjMgNzUuOWMyNy43IDEyLjggNTkuNiAxMi44IDg3LjMgMGwxNjQuMy03NS45IDM0LjEgMTUuOGM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgNDA1LjhDNS40IDQwMS44IDAgMzkzLjMgMCAzODRzNS40LTE3LjkgMTMuOS0yMS44eiJdfSx5MmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLW1hc2siLGljb246WzUxMiw1MTIsW10sImUwNjMiLCJNNDQ1LjkgMTkzYy0uMS0uNC0uMi0uOS0uMi0xLjMtMTUuNy0xMDguNC0xMDguOS0xOTEuNy0yMjEuNy0xOTEuNy04NSAwLTE1OSA0Ny40LTE5Ni45IDExNy4yTDI4My4zIDI4OCA0NTYgMjg4IDQ0Mi45IDMzNiAzMzYgMzM2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDk4LjIgMC04LjcgMzItODkuNSAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDgwLjYgMGMtNi43IDE5LjEtMjQuOCAzMi00NS4zIDMyTDI4OCA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTA0LjUtMjQ3LjUtMTY1QzMgMTgyLjEgMCAyMDIuNyAwIDIyNCAwIDI3OCAxOS4xIDMyNy41IDUwLjkgMzY2LjIgNTguOSAzNzUuOSA2NCAzODcuOCA2NCA0MDAuNEw2NCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTI3LjMgMCAuNyAwIDEzMS4zIDBjNDQuOSAwIDgzLjgtMzEuMSA5My42LTc0LjlsMzMuOS0xNTAuM2MzLjMtMTQuNC0uMy0yOS41LTkuNy00MUw0NDUuOSAxOTN6TTI4OCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sZW5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzIixpY29uOls1MTIsNTEyLFsic2lnbi1sYW5ndWFnZSIsInNpZ25pbmciXSwiZjJhNyIsIk01MTIgMTYwbC0uMSA3Mi42YzAgNDQuOC0xNy42IDg3LjEtNDcuOSAxMTguNC0uMy03Ny00MC4xLTE0OC40LTEwNS40LTE4OS4zbC0xLjktMS4yYzIuNS0zLjcgMi44LTguNiAuNC0xMi43bC02Mi0xMDcuNGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhTMzMwIDUgMzM2LjYgMTYuNWw2OCAxMTcuOCAwIDAgMCAwIDQzLjMgNzUgLjEtNDkuM2MwLTE3LjcgMTQuNC0zMiAzMi0zMnMzMiAxNC40IDMyIDMyek0yOTguNCAxMjQuMmMtMTQuMS04LjgtMjkuOC0xMi43LTQ1LjItMTIuMUwyMTYuNyA0OC44Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOGw2Ny4xIDExNi4yLTI3LTE2Ljl6TTIxMS45IDg4LjVsMTYuNCAyOC40Yy0xNS4xIDUuNS0yOC42IDE1LjYtMzguMyAyOS43bC0xOS43LTM0LjJjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44em0tNDYuNCA2My43bDEyLjUgMjEuN2MtMiA4LjYtMi41IDE3LjUtMS43IDI2LjFsLTQuMyAwIDAgMC0zNC40IDAtMTMuNy0yMy44Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHpNMjI4LjkgMTc1YzkuNC0xNSAyOS4xLTE5LjUgNDQuMS0xMC4ybDYwLjIgMzcuNkMzODQuNyAyMzQuNyA0MTYgMjkxLjIgNDE2IDM1MmwwIDhjMCA4My45LTY4LjEgMTUyLTE1MiAxNTJMODggNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDkyIDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMNTYgNDQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEyNCAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDI0IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNTYgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkw1NiAyOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTM2IDAgMCAwIDAgMCA5My4yIDAtNDYuMi0yOC45Yy0xNS05LjQtMTkuNS0yOS4xLTEwLjItNDQuMXoiXX0sdzJhPWVuZSxrMmE9ZW5lLFMyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXRzIixpY29uOls1MTIsNTEyLFtdLCJmNDkwIiwiTTQ5NS4zIDc2LjZjLTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgMjQ4Yy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNHpNMjQwLjcgMjExLjRjNC42IDguNyAxNi4zIDkuNyAyMy4zIDIuN0w0MzguMSA0MGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMTQ0IDIyNEM3OS4yIDIyNCAyNC40IDI2Ni44IDYuMyAzMjUuNiAzLjQgMzM1LjEgMTEgMzQ0IDIwLjkgMzQ0bDI0Ni4yIDBjOS45IDAgMTcuNS04LjkgMTQuNi0xOC40LS45LTMtMS45LTUuOS0zLTguNy0zNy40LTE4LjEtNjgtNDgtODctODQuOC0xNC45LTUuMi0zMC45LTguMS00Ny42LTguMXpNMjgxLjcgNDEwLjRjMi45LTkuNS00LjctMTguNC0xNC42LTE4LjRMMjAuOSAzOTJDMTEgMzkyIDMuNCA0MDAuOSA2LjMgNDEwLjQgMjQuNCA0NjkuMiA3OS4yIDUxMiAxNDQgNTEyczExOS42LTQyLjggMTM3LjctMTAxLjZ6Il19LF8yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWlnaHQtaGFuZ2luZyIsaWNvbjpbNTEyLDUxMixbXSwiZjVjZCIsIk0yMjQgOTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTIyLjUgMzJjMy41LTEwIDUuNS0yMC44IDUuNS0zMiAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDExLjIgMS45IDIyIDUuNSAzMmwtMjEuOCAwYy0yOC4zIDAtNTMuMiAxOC41LTYxLjMgNDUuNkwyLjQgNDQwLjJDLjggNDQ1LjQgMCA0NTAuOCAwIDQ1Ni4yIDAgNDg3IDI1IDUxMiA1NS44IDUxMmw0MDAuNCAwYzMwLjggMCA1NS44LTI1IDU1LjgtNTUuOCAwLTUuNC0uOC0xMC44LTIuNC0xNmwtODAtMjY2LjVjLTguMS0yNy4xLTMzLTQ1LjYtNjEuMy00NS42bC0yMS44IDB6Il19LE0yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlIixpY29uOls1MTIsNTEyLFsxMjc5MjJdLCJmNTIyIiwiTTE0MS40IDIuM0MxMDMtOCA2My41IDE0LjggNTMuMyA1My4yTDIuNSAyNDIuN0MtNy44IDI4MS4xIDE1IDMyMC42IDUzLjQgMzMwLjlsMTg5LjUgNTAuOGMzOC40IDEwLjMgNzcuOS0xMi41IDg4LjItNTAuOWw1MC44LTE4OS41YzEwLjMtMzguNC0xMi41LTc3LjktNTAuOS04OC4yTDE0MS40IDIuM3ptMjMgMjA1LjdhMzIgMzIgMCAxIDEgNTUuNC0zMiAzMiAzMiAwIDEgMSAtNTUuNCAzMnpNNzkuMiAyMjAuM2EzMiAzMiAwIDEgMSAzMiA1NS40IDMyIDMyIDAgMSAxIC0zMi01NS40em0xODUgOTYuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40em05LTIwOC40YTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bS0xMjEgMTQuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40ek00MTggMTkyTDM3Ny40IDM0My4yYy0xNy4yIDY0LTgzIDEwMi0xNDcgODQuOWwtMzguMy0xMC4zIDAgMzAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw0MTggMTkyeiJdfSxEa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvcC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInN0b3JlLWFsdC1zbGFzaCJdLCJlMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtMTkwLjNjMjYuOC0xLjkgNDgtMjQuMyA0OC01MS42IDAtOC0xLjktMTYtNS41LTIzLjJMNDk3LjcgNjcuNEM0ODYuOCA0NS43IDQ2NC43IDMyIDQ0MC40IDMyTDEzNS42IDMyYy0xMC43IDAtMjEgMi43LTMwLjIgNy42TDQxLTI0Ljl6TTMyMS44IDI1Nkw0NDggMjU2IDQ0OCAzODIuMiAzMjEuOCAyNTZ6TTM1MiA0MjEuOGwtNjQtNjQgMCAxMC4yYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTExMiA1OC4yIDAtMTM0LjgtMTM0LjgtMjkuOSA1OS45Yy0zLjYgNy4yLTUuNSAxNS4xLTUuNSAyMy4yIDAgMjcuMyAyMS4yIDQ5LjcgNDggNTEuNkw2NCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMC4yeiJdfSx6MmE9RGtlLExrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb3J0LWRvd24iLGljb246WzM4NCw1MTIsWyJzb3J0LWRlc2MiXSwiZjBkZCIsIk0zMiAyODhjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjIgMzMzLjUgOS40IDM0Mi42bDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzNjQuOSAyODggMzUyIDI4OEwzMiAyODh6Il19LEMyYT1Ma2UsVDJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlc2V0YS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMjIxIiwiTTExMiAzMkM5NC4zIDMyIDgwIDQ2LjMgODAgNjRsMCAxMDQtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiA5NiAwYzgwLjIgMCAxNDYuNi01OSAxNTguMi0xMzZsMjUuOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNS44IDBDMzg2LjYgOTEgMzIwLjIgMzIgMjQwIDMyTDExMiAzMnpNMzMzIDE2OGwtMTg5IDAgMC03MiA5NiAwYzQ0LjcgMCA4Mi4zIDMwLjYgOTMgNzJ6TTE0NCAyMTZsMTg5IDBjLTEwLjcgNDEuNC00OC4yIDcyLTkzIDcybC05NiAwIDAtNzJ6Il19LEVrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXQtc2NyZWVuLWJ1dHRvbiIsaWNvbjpbNDQ4LDUxMixbInRhYmxldC1hbHQiXSwiZjNmYSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTI1NiA0MzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDY0bC0zMjAgMCAwIDI4OCAzMjAgMCAwLTI4OHoiXX0sJDJhPUVrZSxQa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbImhhbmQtaG9sZGluZy11c2QiXSwiZjRjMCIsIk0yODgtMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTItMS44IDBjLTM2LjYgMC02Ni4yIDI5LjctNjYuMiA2Ni4yIDAgMzMuNCAyNC45IDYxLjYgNTggNjUuN2w2MSA3LjZjNS4xIC42IDkgNSA5IDEwLjIgMCA1LjctNC42IDEwLjItMTAuMiAxMC4yTDI0MCAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4czEyLjUgMjggMjggMjhsMjQgMCAwIDEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMiAxLjggMGMzNi42IDAgNjYuMi0yOS43IDY2LjItNjYuMiAwLTMzLjQtMjQuOS02MS42LTU4LTY1LjdsLTYxLTcuNmMtNS4xLS42LTktNS05LTEwLjIgMC01LjcgNC42LTEwLjIgMTAuMi0xMC4yTDMyOCA3NmMxNS41IDAgMjgtMTIuNSAyOC0yOHMtMTIuNS0yOC0yOC0yOGwtMTYgMCAwLTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMDkuMyAzNDEuNUw2Ni43IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjgwIDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sRDJhPVBrZSxJa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkIixpY29uOls1MTIsNTEyLFsxMjg3MzcsInNoaWVsZC1ibGFuayJdLCJmMTMyIiwiTTI1NiAwYzQuNiAwIDkuMiAxIDEzLjQgMi45TDQ1Ny44IDgyLjhjMjIgOS4zIDM4LjQgMzEgMzguMyA1Ny4yLS41IDk5LjItNDEuMyAyODAuNy0yMTMuNiAzNjMuMi0xNi43IDgtMzYuMSA4LTUyLjggMC0xNzIuNC04Mi41LTIxMy4xLTI2NC0yMTMuNi0zNjMuMi0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni45IDEgMjUxLjQgMCAyNTYgMHoiXX0sTDJhPUlrZSxBa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaCIsaWNvbjpbNTEyLDUxMixbImxhdWdoIl0sImY1OTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sRTJhPUFrZSxQMmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZyIsaWNvbjpbNjQwLDUxMixbXSwiZjRjMiIsIk04MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCA4MS45IDAgMTA0TDAgMzI1LjVjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlMMTI4IDQ5My4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdsNjYuNyAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNzguOWMwLTI5LjctMTEuOC01OC4yLTMyLjgtNzkuMmwtMjUuMy0yNS4zIDAgMGMtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4yIDExIDExIDkuMiAyOS4yLTMuNyAzNy44LTkuNyA2LjUtMjIuNyA1LjItMzEtMy4xTDk4LjcgMzA5LjVjLTEyLTEyLTE4LjctMjguMy0xOC43LTQ1LjNMODAgMTA0em00ODAgMGwwIDE2MC4yYzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC01MS4xIDUxLjFjLTguMyA4LjMtMjEuMyA5LjYtMzEgMy4xLTEyLjktOC42LTE0LjctMjYuOS0zLjctMzcuOCA3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4ybDAgMC0yNS4zIDI1LjNjLTIxIDIxLTMyLjggNDkuNS0zMi44IDc5LjJsMCA3OC45YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY2LjcgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2w5OS45LTk5LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOUw2NDAgMTA0YzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQweiJdfSxOa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1zaG9wcGluZyIsaWNvbjpbNjQwLDUxMixbMTI4NzIyLCJzaG9wcGluZy1jYXJ0Il0sImYwN2EiLCJNMjQtMTZDMTAuNy0xNiAwLTUuMyAwIDhTMTAuNyAzMiAyNCAzMmw0NS4zIDBjMy45IDAgNy4yIDIuOCA3LjkgNi42bDUyLjEgMjg2LjNjNi4yIDM0LjIgMzYgNTkuMSA3MC44IDU5LjFMNDU2IDM4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjU1LjkgMGMtMTEuNiAwLTIxLjUtOC4zLTIzLjYtMTkuN2wtNS4xLTI4LjMgMzAzLjYgMGMzMC44IDAgNTcuMi0yMS45IDYyLjktNTIuMkw1NjguOSA2OS45QzU3Mi42IDUwLjIgNTU3LjUgMzIgNTM3LjQgMzJsLTQxMi43IDAtLjQtMmMtNC44LTI2LjYtMjgtNDYtNTUuMS00NkwyNC0xNnpNMjA4IDUxMmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTIyNCAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sSTJhPU5rZSxBMmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib2N0YWdvbiIsaWNvbjpbNTEyLDUxMixbMTI4NzIxXSwiZjMwNiIsIk0xODguNiAuMWMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMMTkuMiAxNDNDNy4yIDE1NSAuNSAxNzEuMiAuNSAxODguMmwwIDEzNS42YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zTDE0My40IDQ5My4yYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdsMTM1LjYgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuNiAzNjljMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM2wwLTEzNS42YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM2OS41IDE4LjhjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMMTg4LjYgLjF6Il19LE4yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50ZXIiLGljb246WzQ0OCw1MTIsW10sImYyNWEiLCJNMTI4IDQwYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAxNDguMmM4LjUtNy42IDE5LjctMTIuMiAzMi0xMi4yIDIwLjYgMCAzOC4yIDEzIDQ1IDMxLjIgOC44LTkuMyAyMS4yLTE1LjIgMzUtMTUuMiAyNS4zIDAgNDYgMTkuNSA0Ny45IDQ0LjMgOC41LTcuNyAxOS44LTEyLjMgMzIuMS0xMi4zIDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC04NS4zIDBjLTUgMC05LjktLjMtMTQuNy0xLTU1LjMtNS42LTEwNi4yLTM0LTE0MC03OUw4IDMzNmMtMTMuMy0xNy43LTkuNy00Mi43IDgtNTZzNDIuNy05LjcgNTYgOGw1NiA3NC43IDAtMzIyLjd6TTI0MCAzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6bTQ4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em04MCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnoiXX0sUjJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlZ2lzdGVyZWQiLGljb246WzUxMiw1MTIsWzE3NF0sImYyNWQiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAxNDRsODAgMGMzOS44IDAgNzIgMzIuMiA3MiA3MiAwIDI4LjktMTcgNTMuOC00MS42IDY1LjNsMzAuMiA1MC4zYzYuOCAxMS40IDMuMSAyNi4xLTguMiAzMi45cy0yNi4xIDMuMS0zMi45LTguMmwtNDEtNjguMy0zNC40IDAgMCA1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptNzIgOTZsOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAwIDAgNDggNDggMHoiXX0sTzJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLXNpZ25hbCIsaWNvbjpbNTc2LDUxMixbXSwiZTAxMiIsIk01MTUuOSAyNDBsLTE5LjkgMCAwIDE0NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTM3IDBjLTI0LTkxLjctOTMuNS0xNjUtMTgzLTE5NC4zbDAtMTMuNy0xOS45IDBjLTE1LjUgMC0yOC4xLTEyLjYtMjguMS0yOC4xIDAtNy42IDMuMS0xNC45IDguNi0yMC4yTDI3Ni41LTQuOUMyODMuOS0xMiAyOTMuNy0xNiAzMDQtMTZzMjAuMSA0IDI3LjUgMTEuMUw1MzUuNCAxOTEuN2M1LjUgNS4zIDguNiAxMi42IDguNiAyMC4yIDAgMTUuNS0xMi42IDI4LjEtMjguMSAyOC4xek0yODAgMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHpNMjQgMjg4YzEyOC4xIDAgMjMyIDEwMy45IDIzMiAyMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMCA0MDhjMC0xMy4zIDEwLjctMjQgMjQtMjQgNzUuMSAwIDEzNiA2MC45IDEzNiAxMzYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODgtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LEYyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW5nbGFkZXNoaS10YWthLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUyZTYiLCJNMzYgMzIuM0MxOC40IDMwLjEgMi40IDQyLjUgLjMgNjBTMTAuNSA5My42IDI4IDk1LjhsNy45IDFjMTYgMiAyOCAxNS42IDI4IDMxLjhsMCAzMS41LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDE3NmMwIDUzIDQzIDk2IDk2IDk2bDMyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJsMC0zMmMwLTUzLTQzLTk2LTk2LTk2bC0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTMxLjVDMTI4IDgwLjEgOTIgMzkuMiA0My45IDMzLjJsLTcuOS0xeiJdfSxnV2E9e2ZhMDpYUnQsZmExOlFSdCxmYTI6SlJ0LGZhMzplT3QsZmE0OnRPdCxmYTU6YU90LGZhNjpzT3QsZmE3OmlPdCxmYTg6ck90LGZhOTpvT3QsZmFEb2xsYXJTaWduOmlvZSxmYURvbGxhcjpuT3QsZmFVc2Q6bE90LGZhRG9nOmNPdCxmYVRydWNrTW92aW5nOmRPdCxmYVJvdGF0ZTpDN2UsZmFTeW5jQWx0OnVPdCxmYVNxdWFyZU1pbnVzOlQ3ZSxmYU1pbnVzU3F1YXJlOnBPdCxmYUFsaWduSnVzdGlmeTpoT3QsZmFDYWxlbmRhckNoZWNrOmZPdCxmYUZhY2VLaXNzOiQ3ZSxmYUtpc3M6bU90LGZhS2l0Y2hlblNldDpnT3QsZmFEbmE6Yk90LGZhQ2hpbGRSZWFjaGluZzp2T3QsZmFQYXN0ZTphZixmYUZpbGVDbGlwYm9hcmQ6eE90LGZhTWV0ZW9yOnlPdCxmYUdlYXJzOkQ3ZSxmYUNvZ3M6d090LGZhRmlsZUNpcmNsZVBsdXM6a090LGZhSWNpY2xlczpTT3QsZmFBcnJvd1RyZW5kVXA6X090LGZhSGV4YWdvbk5vZGVzQm9sdDpNT3QsZmFRdWVzdGlvbjp6T3QsZmFIYW5kc0JvdW5kOkNPdCxmYVBlcnNvbldhbGtpbmdMdWdnYWdlOlRPdCxmYUZpbGVBcnJvd0Rvd246TDdlLGZhRmlsZURvd25sb2FkOiRPdCxmYVBlcnNvbkJvb3RoOkRPdCxmYUxvY3VzdDpMT3QsZmFSaWdodExvbmc6RTdlLGZhTG9uZ0Fycm93QWx0UmlnaHQ6RU90LGZhVHJ1Y2tEcm9wbGV0OlBPdCxmYUhhbmRIb2xkaW5nTWVkaWNhbDpJT3QsZmFIYW5kUG9pbnRMZWZ0OkFPdCxmYUNhbGN1bGF0b3I6Tk90LGZhTWludXM6c2YsZmFTdWJ0cmFjdDpST3QsZmFBcnJvd1VwWkE6UDdlLGZhU29ydEFscGhhVXBBbHQ6T090LGZhTWljcm9waG9uZVNsYXNoOkZPdCxmYVNxdWFyZVBlbjpyb2UsZmFQZW5TcXVhcmU6Qk90LGZhUGVuY2lsU3F1YXJlOkhPdCxmYUhhbmRGaXN0Okk3ZSxmYUZpc3RSYWlzZWQ6cU90LGZhQ29tbWVudFNtczpBN2UsZmFTbXM6ak90LGZhU2ltQ2FyZDpWT3QsZmFTY2FsZUJhbGFuY2VkOk43ZSxmYUJhbGFuY2VTY2FsZTpVT3QsZmFDYXI6UjdlLGZhQXV0b21vYmlsZTpXT3QsZmFDcm9wU2ltcGxlOk83ZSxmYUNyb3BBbHQ6R090LGZhTWVkYWw6S090LGZhU2Nyb2xsOllPdCxmYUZpbGVFeGNlbDpaT3QsZmFGaWx0ZXI6WE90LGZhRHJ1bTpRT3QsZmFNYXBQaW46Sk90LGZhU2NhbGVVbmJhbGFuY2VkRmxpcDpGN2UsZmFCYWxhbmNlU2NhbGVSaWdodDplRnQsZmFBcnJvd3NUb0NpcmNsZTp0RnQsZmFFbnZlbG9wZTphRnQsZmFCYWJ5OnNGdCxmYVNxdWFyZUNhcmV0RG93bjpCN2UsZmFDYXJldFNxdWFyZURvd246aUZ0LGZhVGVudDpyRnQsZmFBOm9GdCxmYVBhcmFjaHV0ZUJveDpuRnQsZmFDYXJ0QXJyb3dEb3duOmxGdCxmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uOmNGdCxmYUNsb3VkQXJyb3dVcDpvb2UsZmFDbG91ZFVwbG9hZDpkRnQsZmFDbG91ZFVwbG9hZEFsdDp1RnQsZmFBdDpwRnQsZmFJbmRpYW5SdXBlZVNpZ246bm9lLGZhSW5kaWFuUnVwZWU6aEZ0LGZhSW5yOmZGdCxmYVRydWNrOm1GdCxmYUNoYWxrYm9hcmRVc2VyOkg3ZSxmYUNoYWxrYm9hcmRUZWFjaGVyOmdGdCxmYVVzZXJDaGVjazpiRnQsZmFVc2VyTmluamE6dkZ0LGZhUGxhbnRXaWx0OnhGdCxmYVdlaWdodFNjYWxlOnE3ZSxmYVdlaWdodDp5RnQsZmFDYXJldFJpZ2h0Ok9iLGZhRmxvcmluU2lnbjp3RnQsZmFCZWxsOkZiLGZhTGFyaVNpZ246a0Z0LGZhTWlsbFNpZ246U0Z0LGZhUGVyc29uU25vd2JvYXJkaW5nOmo3ZSxmYVNub3dib2FyZGluZzpfRnQsZmFUdHk6VjdlLGZhVGVsZXR5cGU6TUZ0LGZhVXNlcnNSZWN0YW5nbGU6ekZ0LGZhTW9iaWxlOmxvZSxmYU1vYmlsZUFuZHJvaWQ6Q0Z0LGZhTW9iaWxlUGhvbmU6VEZ0LGZhQXJyb3dzVHVyblRvRG90czokRnQsZmFFeGNsYW1hdGlvbjpERnQsZmFDaHVyY2g6TEZ0LGZhVG9nZ2xlT2ZmOkVGdCxmYVNob2VQcmludHM6UEZ0LGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uOklGdCxmYVdhbGxldDpCYixmYU1lc3NhZ2U6cmYsZmFDb21tZW50QWx0OkFGdCxmYVRyb3BoeTpORnQsZmFGYWNlRGl6enk6VTdlLGZhRGl6enk6UkZ0LGZhQmFjdGVyaWE6T0Z0LGZhRWFyRGVhZjpaayxmYURlYWY6RkZ0LGZhRGVhZm5lc3M6QkZ0LGZhSGFyZE9mSGVhcmluZzpIRnQsZmFQZW9wbGVBcnJvd3M6VzdlLGZhUGVvcGxlQXJyb3dzTGVmdFJpZ2h0OnFGdCxmYUhhbmRzQ2xhcHBpbmc6akZ0LGZhVmlydXNDb3ZpZFNsYXNoOlZGdCxmYUNhbGVuZGFyRGF5czpHN2UsZmFDYWxlbmRhckFsdDpVRnQsZmFEaWFtb25kVHVyblJpZ2h0Oks3ZSxmYURpcmVjdGlvbnM6V0Z0LGZhSGFuZFBvaW50VXA6R0Z0LGZhQmV6aWVyQ3VydmU6S0Z0LGZhUGVyc29uSGFsZkRyZXNzOllGdCxmYVNxdWFyZVBvbGxIb3Jpem9udGFsOlk3ZSxmYVBvbGxIOlpGdCxmYVNjaG9vbENpcmNsZVhtYXJrOlhGdCxmYUhhbmRMaXphcmQ6UUZ0LGZhQ2hhbGtib2FyZDpaN2UsZmFCbGFja2JvYXJkOkpGdCxmYVVwUmlnaHRGcm9tU3F1YXJlOlg3ZSxmYUV4dGVybmFsTGlua0FsdDplQnQsZmFTcXVhcmVGdWxsOnRCdCxmYUNsb3ZlcjphQnQsZmFUZWV0aE9wZW46c0J0LGZhQmFyc1N0YWdnZXJlZDpjb2UsZmFSZW9yZGVyOmlCdCxmYVN0cmVhbTpyQnQsZmFXYXJlaG91c2U6b0J0LGZhU3dhdGNoYm9vazpuQnQsZmFDYW1wZ3JvdW5kOmxCdCxmYVBlcnNvbldhbGtpbmdBcnJvd1JpZ2h0OmNCdCxmYUdsYXNzZXM6ZEJ0LGZhQ2lyY2xlUGF1c2U6UTdlLGZhUGF1c2VDaXJjbGU6dUJ0LGZhTWVtb3J5OnBCdCxmYUdpZnQ6aEJ0LGZhTW9uZXlCaWxsV2hlYXQ6ZkJ0LGZhRHVuZ2VvbjptQnQsZmFTdWl0Y2FzZU1lZGljYWw6SjdlLGZhTWVka2l0OmdCdCxmYVBlcnNvbkNhbmU6YkJ0LGZhR2F1Z2U6WGssZmFEYXNoYm9hcmQ6dkJ0LGZhR2F1Z2VNZWQ6eEJ0LGZhVGFjaG9tZXRlckFsdEF2ZXJhZ2U6eUJ0LGZhRW52ZWxvcGVPcGVuVGV4dDp3QnQsZmFUb29sYm94OmtCdCxmYVBvd2VyT2ZmOlNCdCxmYVNpZ25hbDpkb2UsZmFTaWduYWw1Ol9CdCxmYVNpZ25hbFBlcmZlY3Q6TUJ0LGZhQXJyb3dzU3Bpbjp6QnQsZmFKb2ludDpDQnQsZmFCcmFpbGxlOlRCdCxmYUJhc2tldFNob3BwaW5nOmU5ZSxmYVNob3BwaW5nQmFza2V0OiRCdCxmYUJyaWRnZTpEQnQsZmFQbGFuZUFycml2YWw6TEJ0LGZhQ2FzaFJlZ2lzdGVyOkVCdCxmYVJpbmc6UEJ0LGZhQXF1YXJpdXM6SUJ0LGZhU2hhcmVOb2Rlczp0OWUsZmFTaGFyZUFsdDpBQnQsZmFQZXJzb25DaXJjbGVFeGNsYW1hdGlvbjpOQnQsZmFCaW5vY3VsYXJzOlJCdCxmYUtpcFNpZ246T0J0LGZhSGFyZERyaXZlOmE5ZSxmYUhkZDpGQnQsZmFSYW5raW5nU3RhcjpCQnQsZmFVc2VyVGllOkhCdCxmYUVsbGlwc2lzOnM5ZSxmYUVsbGlwc2lzSDpxQnQsZmFTdG9yZVNsYXNoOmpCdCxmYVBlcmNlbnQ6aTllLGZhUGVyY2VudGFnZTpWQnQsZmFGaWxlWmlwcGVyOnI5ZSxmYUZpbGVBcmNoaXZlOlVCdCxmYURpc3BsYXk6V0J0LGZhSWNvbnM6bzllLGZhSGVhcnRNdXNpY0NhbWVyYUJvbHQ6R0J0LGZhUnVsZXJWZXJ0aWNhbDpLQnQsZmFNYXBMb2NhdGlvbkRvdDpuOWUsZmFNYXBNYXJrZWRBbHQ6WUJ0LGZhSGVhcnRDcmFjazpsOWUsZmFIZWFydEJyb2tlbjpaQnQsZmFDb3c6WEJ0LGZhUnNzOm9mLGZhRmVlZDpRQnQsZmFNYWduaWZ5aW5nR2xhc3M6bmYsZmFTZWFyY2g6SkJ0LGZhQ2xvdWRNb29uOmVIdCxmYUJveGVzU3RhY2tlZDp1b2UsZmFCb3hlczp0SHQsZmFCb3hlc0FsdDphSHQsZmFDb2RlQnJhbmNoOnNIdCxmYUJhbjpjOWUsZmFDYW5jZWw6aUh0LGZhSnVnRGV0ZXJnZW50OnJIdCxmYVJlcGx5OmQ5ZSxmYU1haWxSZXBseTpvSHQsZmFTdW5QbGFudFdpbHQ6bkh0LGZhQmFjdGVyaXVtOmxIdCxmYVJlY29yZFZpbnlsOmNIdCxmYUZsb3BweURpc2s6dTllLGZhU2F2ZTpkSHQsZmFUb2lsZXRzUG9ydGFibGU6dUh0LGZhTzpwSHQsZmFQYWxldHRlOmhIdCxmYVVubG9jazpmSHQsZmFFYXJMaXN0ZW46cDllLGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtczptSHQsZmFDb2RlUHVsbFJlcXVlc3Q6Z0h0LGZhS2V5OmJIdCxmYVNrdWxsOnZIdCxmYU1hcnNTdHJva2VVcDpoOWUsZmFNYXJzU3Ryb2tlVjp4SHQsZmFGaXJlRmxhbWVTaW1wbGU6ZjllLGZhQnVybjp5SHQsZmFUcmVlOndIdCxmYVNtb2c6a0h0LGZhUzpTSHQsZmFKZWRpOl9IdCxmYVBlcnNvbkhpa2luZzptOWUsZmFIaWtpbmc6TUh0LGZhQXJyb3dzVXBUb0xpbmU6ekh0LGZhTWFyc0RvdWJsZTpDSHQsZmFUaGVybW9tZXRlcjpUSHQsZmFQYWludGJydXNoOmc5ZSxmYVBhaW50QnJ1c2g6JEh0LGZhTmV1dGVyOkRIdCxmYVNxdWFyZVBob25lRmxpcDpiOWUsZmFQaG9uZVNxdWFyZUFsdDpMSHQsZmFGYWNlR3JpblRvbmd1ZVNxdWludDp2OWUsZmFHcmluVG9uZ3VlU3F1aW50OkVIdCxmYUNvbW1lbnREb2xsYXI6UEh0LGZhSGlwcG86SUh0LGZhQm93bEZvb2Q6QUh0LGZhU3F1YXJlVmlydXM6Tkh0LGZhQ2xvdWRTdW5SYWluOlJIdCxmYUFycm93UmlnaHRMb25nOng5ZSxmYUxvbmdBcnJvd1JpZ2h0Ok9IdCxmYUJ1aWxkaW5nVW46Rkh0LGZhVGVtcGVyYXR1cmVMb3c6Qkh0LGZhRG9vck9wZW46SEh0LGZhQWxpZ25MZWZ0OnFIdCxmYUNhbWVyYTp5OWUsZmFDYW1lcmFBbHQ6akh0LGZhVXNlcnNSYXlzOlZIdCxmYVJhaW5ib3c6VUh0LGZhU2l0ZW1hcDpXSHQsZmFGYWNlR3JpblN0YXJzOnc5ZSxmYUdyaW5TdGFyczpHSHQsZmFTb3J0VXA6azllLGZhU29ydEFzYzpLSHQsZmFFeWU6SGIsZmFDYXJldExlZnQ6cWIsZmFBcHBsZVdob2xlOlM5ZSxmYUFwcGxlQWx0OllIdCxmYVNjcm9sbFRvcmFoOl85ZSxmYVRvcmFoOlpIdCxmYUhvdXNlTG9jazpYSHQsZmFBcnJvd3NMZWZ0UmlnaHRUb0xpbmU6UUh0LGZhVHJhc2g6ZmgsZmFGYWNlU2FkVGVhcjpNOWUsZmFTYWRUZWFyOkpIdCxmYUZheDplcXQsZmFQZXJzb25DaXJjbGVQbHVzOnRxdCxmYUhhbXNhOmFxdCxmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uOnNxdCxmYUNsaXBib2FyZENoZWNrOmlxdCxmYVNoYXJlRnJvbVNxdWFyZTp6OWUsZmFTaGFyZVNxdWFyZTpycXQsZmFSZWNlaXB0OmpiLGZhRXF1YWxzOm9xdCxmYUNoZXZyb25VcDpucXQsZmFWaXJ1c1NsYXNoOmxxdCxmYVNsYXNoOmNxdCxmYUV4cGFuZDpkcXQsZmFOb3RlU3RpY2t5OkM5ZSxmYVN0aWNreU5vdGU6dXF0LGZhVGFibGVDb2x1bW5zOlQ5ZSxmYUNvbHVtbnM6cHF0LGZhUGVyc29uU2hlbHRlcjpocXQsZmFDaXJjbGVOb3RjaDpmcXQsZmFXYXRlcjptcXQsZmFEZWxldGVMZWZ0OiQ5ZSxmYUJhY2tzcGFjZTpncXQsZmFCcm9vbUJhbGw6cG9lLGZhUXVpZGRpdGNoOmJxdCxmYVF1aWRkaXRjaEJyb29tQmFsbDp2cXQsZmFKOnhxdCxmYVNodXR0bGVTcGFjZTpEOWUsZmFTcGFjZVNodXR0bGU6eXF0LGZhWWluWWFuZzp3cXQsZmFTdG9wOmtxdCxmYVRyb3dlbDpTcXQsZmFIYW5kQmFja0Zpc3Q6TDllLGZhSGFuZFJvY2s6X3F0LGZhVGVtcGVyYXR1cmVIaWdoOk1xdCxmYUdyZWF0ZXJUaGFuOnpxdCxmYUNydXRjaDpDcXQsZmFTZXB0YWdvbjpFOWUsZmFIZXB0YWdvbjpUcXQsZmFTdHJlZXRWaWV3OiRxdCxmYVdhdmVTcXVhcmU6RHF0LGZhQW5nbGVMZWZ0OkxxdCxmYVNjcmV3ZHJpdmVyOkVxdCxmYVRyYWN0b3I6UHF0LGZhQnJpZGdlQ2lyY2xlWG1hcms6SXF0LGZhVmlhbHM6QXF0LGZhU3RldGhvc2NvcGU6TnF0LGZhUG9kY2FzdDpScXQsZmFBcnJvd1VwUmlnaHREb3RzOk9xdCxmYUNoZXNzUXVlZW46RnF0LGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb246QnF0LGZhRWxsaXBzaXNWZXJ0aWNhbDpQOWUsZmFFbGxpcHNpc1Y6SHF0LGZhSGVhcnRDaXJjbGVFeGNsYW1hdGlvbjpxcXQsZmFCdWlsZGluZ0NpcmNsZUV4Y2xhbWF0aW9uOmpxdCxmYVBlcnNvbkFycm93VXBGcm9tTGluZTpWcXQsZmFOb3RFcXVhbDpVcXQsZmFUcmFpblRyYW06V3F0LGZhUGxhbmVEZXBhcnR1cmU6R3F0LGZhUmlnaHRUb0JyYWNrZXQ6STllLGZhU2lnbkluQWx0OktxdCxmYVNkQ2FyZDpZcXQsZmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uOlpxdCxmYVNoZWtlbFNpZ246SWIsZmFJbHM6WHF0LGZhU2hla2VsOlFxdCxmYVNoZXFlbDpKcXQsZmFTaGVxZWxTaWduOmVqdCxmYVJhZGlvOnRqdCxmYUhhbmREb3RzOkE5ZSxmYUFsbGVyZ2llczphanQsZmFCb29rU2t1bGw6TjllLGZhQm9va0RlYWQ6c2p0LGZhVW5sb2NrS2V5aG9sZTpSOWUsZmFVbmxvY2tBbHQ6aWp0LGZhRmlsZUFycm93VXA6TzllLGZhRmlsZVVwbG9hZDpyanQsZmFGYWNlR3JpblRlYXJzOkY5ZSxmYUdyaW5UZWFyczpvanQsZmFQZW5Ub1NxdWFyZTpsZixmYUVkaXQ6bmp0LGZhRWFydGhFdXJvcGU6QjllLGZhR2xvYmVFdXJvcGU6bGp0LGZhRmFjZUdyaW5CZWFtU3dlYXQ6SDllLGZhR3JpbkJlYW1Td2VhdDpjanQsZmFDaXJjbGVIYWxmU3Ryb2tlOnE5ZSxmYUFkanVzdDpkanQsZmFQZXJzb25NaWxpdGFyeVRvUGVyc29uOnVqdCxmYVRhYmxlQ2VsbHNDb2x1bW5Mb2NrOnBqdCxmYVRydWNrRmllbGRVbjpoanQsZmFDbG9jazpqOWUsZmFDbG9ja0ZvdXI6Zmp0LGZhQm9vazptanQsZmFGYWNlTGF1Z2hXaW5rOlY5ZSxmYUxhdWdoV2luazpnanQsZmFDbG91ZE1lYXRiYWxsOmJqdCxmYUNoYXJ0QXJlYTpVOWUsZmFBcmVhQ2hhcnQ6dmp0LGZhUnVwaWFoU2lnbjp4anQsZmFUZXh0V2lkdGg6eWp0LGZhU2F0ZWxsaXRlOndqdCxmYU1hZ25pZnlpbmdHbGFzc01pbnVzOlc5ZSxmYVNlYXJjaE1pbnVzOmtqdCxmYVBlb3BsZUdyb3VwOlNqdCxmYVNxdWFyZUJpbmFyeTpfanQsZmFNYXNrc1RoZWF0ZXI6RzllLGZhVGhlYXRlck1hc2tzOk1qdCxmYUNhcnRQbHVzOnpqdCxmYUhhbmRzQXNsSW50ZXJwcmV0aW5nOlFrLGZhQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmc6Q2p0LGZhQXNsSW50ZXJwcmV0aW5nOlRqdCxmYUhhbmRzQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmc6JGp0LGZhVGFibGVDZWxsc1Jvd1VubG9jazpEanQsZmFSb2NrZXQ6TGp0LGZhU2hyaW1wOkVqdCxmYVRlbmdlU2lnbjpLOWUsZmFUZW5nZTpQanQsZmFIb3VzZUNoaW1uZXlNZWRpY2FsOlk5ZSxmYUNsaW5pY01lZGljYWw6SWp0LGZhVXNlcnNTbGFzaDpBanQsZmFQYXBlclBsYW5lOk5qdCxmYUJvb2tBdGxhczpaOWUsZmFBdGxhczpSanQsZmFUYWJsZTpPanQsZmFIZWFydDpGanQsZmFDaXJjbGVDaGV2cm9uVXA6WDllLGZhQ2hldnJvbkNpcmNsZVVwOkJqdCxmYUJhdHRlcnlIYWxmOlE5ZSxmYUJhdHRlcnkzOkhqdCxmYUZvbnRBd2Vzb21lOmhvZSxmYUZvbnRBd2Vzb21lRmxhZzpxanQsZmFGb250QXdlc29tZUxvZ29GdWxsOmpqdCxmYUhhbmRjdWZmczpWanQsZmFIYXRDb3dib3lTaWRlOlVqdCxmYUluZHVzdHJ5OldqdCxmYUxpbmVzTGVhbmluZzpHanQsZmFQYXNzcG9ydDpLanQsZmFJbmZpbml0eTpZanQsZmFDbG9uZTpaanQsZmFGb3J3YXJkOlhqdCxmYU06UWp0LGZhUm9hZFNwaWtlczpKanQsZmFNb3VudGFpbjplVnQsZmFDaGVzczp0VnQsZmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnM6SmssZmFUZW1wZXJhdHVyZTM6YVZ0LGZhVGhlcm1vbWV0ZXIzOnNWdCxmYVRoZXJtb21ldGVyVGhyZWVRdWFydGVyczppVnQsZmFCOnJWdCxmYVNoaWVsZFZpcnVzOm9WdCxmYUxpdGVjb2luU2lnbjpuVnQsZmFEaWNlRDY6bFZ0LGZhR3JpcExpbmVzVmVydGljYWw6Y1Z0LGZhR29sZkJhbGxUZWU6SjllLGZhR29sZkJhbGw6ZFZ0LGZhSGV4YWdvbjp1VnQsZmFGb2xkZXJPcGVuOnBWdCxmYUthYWJhOmhWdCxmYUhhbmRIb2xkaW5nOmZWdCxmYVNpbmdsZVF1b3RlUmlnaHQ6bVZ0LGZhQm90dGxlRHJvcGxldDpnVnQsZmFXaW5kb3dNaW5pbWl6ZTpiVnQsZmFDaGV2cm9uUmlnaHQ6dlZ0LGZhRWdnOnhWdCxmYUxhbmRtYXJrRG9tZTplYmUsZmFMYW5kbWFya0FsdDp5VnQsZmFXb3JtOndWdCxmYVVzZXJJbmp1cmVkOmtWdCxmYVN0cmlrZXRocm91Z2g6U1Z0LGZhQmxvZzpfVnQsZmFTdG9wd2F0Y2gyMDpNVnQsZmFUcnVja1BpY2t1cDp6VnQsZmFTZWVkbGluZzp0YmUsZmFTcHJvdXQ6Q1Z0LGZhVHJhbnNnZW5kZXI6YWJlLGZhVHJhbnNnZW5kZXJBbHQ6VFZ0LGZhU3RhckhhbGY6JFZ0LGZhUGhvdG9GaWxtOnNiZSxmYVBob3RvVmlkZW86RFZ0LGZhUGljdHVyZUluUGljdHVyZTpMVnQsZmFQdW1wTWVkaWNhbDpFVnQsZmFGaXJlOlBWdCxmYU1hZ25pZnlpbmdHbGFzc1BsdXM6aWJlLGZhU2VhcmNoUGx1czpJVnQsZmFGbGFzazpBVnQsZmFBbGlnblJpZ2h0Ok5WdCxmYUNhYmxlQ2FyOnJiZSxmYVRyYW06UlZ0LGZhS2l0TWVkaWNhbDpvYmUsZmFGaXJzdEFpZDpPVnQsZmFHcmlwTGluZXM6RlZ0LGZhQnVyZ2VyOm5iZSxmYUhhbWJ1cmdlcjpCVnQsZmFTbm93bWFuOkhWdCxmYUhvdGVsOnFWdCxmYVByaW50OmpWdCxmYVZvbGxleWJhbGw6bGJlLGZhVm9sbGV5YmFsbEJhbGw6VlZ0LGZhVHJhZmZpY0xpZ2h0OlVWdCxmYVBsYW5lQ2lyY2xlQ2hlY2s6V1Z0LGZhVXNlcnM6VmIsZmFDZXJ0aWZpY2F0ZTpHVnQsZmFBbGFybUNsb2NrOktWdCxmYUhlbGljb3B0ZXJTeW1ib2w6WVZ0LGZhSG91c2VDaGltbmV5Q3JhY2s6Y2JlLGZhSG91c2VEYW1hZ2U6WlZ0LGZhUGVyc29uTWlsaXRhcnlQb2ludGluZzpYVnQsZmFEYXRhYmFzZTpRVnQsZmFOZXdzcGFwZXI6SlZ0LGZhQ2xvdWRSYWluOmVVdCxmYU1heGltaXplOmRiZSxmYUV4cGFuZEFycm93c0FsdDp0VXQsZmFMb2NhdGlvbkFycm93OmFVdCxmYUNpdHk6c1V0LGZhWFJheTppVXQsZmFVbWJyZWxsYUJlYWNoOnJVdCxmYUFycm93UmlnaHRUb0JyYWNrZXQ6dWJlLGZhU2lnbkluOm9VdCxmYUhlYWRzZXQ6blV0LGZhU3Bsb3RjaDpsVXQsZmFVcExvbmc6cGJlLGZhTG9uZ0Fycm93QWx0VXA6Y1V0LGZhSGV4YWdvbk5vZGVzOmRVdCxmYUhvc3BpdGFsOmZvZSxmYUhvc3BpdGFsQWx0OnVVdCxmYUhvc3BpdGFsV2lkZTpwVXQsZmFQZXJzb25IYXJhc3Npbmc6aFV0LGZhTW9uZXlCaWxsVHJlbmRVcDpmVXQsZmFQZW5SdWxlcjpoYmUsZmFQZW5jaWxSdWxlcjptVXQsZmFSZXBlYXQ6Z1V0LGZhQm9uZTpiVXQsZmFGaXJlRmxhbWVDdXJ2ZWQ6ZmJlLGZhRmlyZUFsdDp2VXQsZmFCdXNTaW1wbGU6bWJlLGZhQnVzQWx0OnhVdCxmYVZlbnVzTWFyczp5VXQsZmFCbGVuZGVyOndVdCxmYVU6a1V0LGZhU2hhcmU6Y2YsZmFNYWlsRm9yd2FyZDpTVXQsZmFQaG9uZUZsaXA6Z2JlLGZhUGhvbmVBbHQ6X1V0LGZhVG9pbGV0UG9ydGFibGU6TVV0LGZhUGVyc29uUHJlZ25hbnQ6elV0LGZhTGVzc1RoYW46Q1V0LGZhU3VwZXJzY3JpcHQ6VFV0LGZhQ2lyY2xlU3RvcDpiYmUsZmFTdG9wQ2lyY2xlOiRVdCxmYUFycm93c1VwRG93bjp2YmUsZmFBcnJvd3NWOkRVdCxmYVBvb1N0b3JtOnhiZSxmYVBvb0JvbHQ6TFV0LGZhVmlkZW9TbGFzaDpFVXQsZmFTcXVhcmVYbWFyazptb2UsZmFUaW1lc1NxdWFyZTpQVXQsZmFYbWFya1NxdWFyZTpJVXQsZmFIYW5kSG9sZGluZ0Ryb3BsZXQ6eWJlLGZhSGFuZEhvbGRpbmdXYXRlcjpBVXQsZmFXb25TaWduOmdvZSxmYUtydzpOVXQsZmFXb246UlV0LGZhT2JqZWN0VW5ncm91cDpPVXQsZmFDb21tZW50OkZVdCxmYUhpbGxBdmFsYW5jaGU6QlV0LGZhQXJyb3dzVG9FeWU6SFV0LGZhU25vd3Bsb3c6cVV0LGZhQ2hhcnRHYW50dDpqVXQsZmFWaWRlbzp3YmUsZmFWaWRlb0NhbWVyYTpWVXQsZmFDaGVzc1Bhd246VVV0LGZhU3luYWdvZ3VlOldVdCxmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2s6R1V0LGZhQ2FsZW5kYXJQbHVzOktVdCxmYVdoZWVsY2hhaXJNb3ZlOmtiZSxmYVdoZWVsY2hhaXJBbHQ6WVV0LGZhVXNlclNoaWVsZDpaVXQsZmFCb2xkOlhVdCxmYUhlYXJ0UHVsc2U6U2JlLGZhSGVhcnRiZWF0OlFVdCxmYVNxdWFyZVJvb3RWYXJpYWJsZTpfYmUsZmFTcXVhcmVSb290QWx0OkpVdCxmYUhhbmRzQnViYmxlczpNYmUsZmFIYW5kc1dhc2g6ZVd0LGZhTWFya2VyOnRXdCxmYUNsaXBib2FyZDphV3QsZmFQbGFjZU9mV29yc2hpcDpzV3QsZmFDYW5uYWJpczppV3QsZmFQZW9wbGVSb29mOnJXdCxmYURpc2Vhc2U6b1d0LGZhQm9va0JpYmxlOnpiZSxmYUJpYmxlOm5XdCxmYUNoZXNzQm9hcmQ6bFd0LGZhTWFyczpjV3QsZmFMYXB0b3A6ZFd0LGZhVXNlclhtYXJrOkNiZSxmYVVzZXJUaW1lczp1V3QsZmFGbGFnVXNhOnBXdCxmYUhhbmRNaWRkbGVGaW5nZXI6aFd0LGZhTW9ydGFyUGVzdGxlOmZXdCxmYUhlYWRTaWRlQ291Z2g6bVd0LGZhUGxhbmVMb2NrOmdXdCxmYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzOlRiZSxmYUJhdHRlcnk0OmJXdCxmYUZyYW5jU2lnbjp2V3QsZmFGaWx0ZXJDaXJjbGVEb2xsYXI6JGJlLGZhRnVubmVsRG9sbGFyOnhXdCxmYUNoZWVzZTp5V3QsZmFDaXJjbGVIOkRiZSxmYUhvc3BpdGFsU3ltYm9sOndXdCxmYVNjaG9vbDprV3QsZmFEaWNlRml2ZTpTV3QsZmFUb3JuYWRvOl9XdCxmYUpldEZpZ2h0ZXI6TGJlLGZhRmlnaHRlckpldDpNV3QsZmFUaHVtYnNEb3duOnpXdCxmYUJyb29tOkNXdCxmYUZpbGVJbXBvcnQ6RWJlLGZhQXJyb3dSaWdodFRvRmlsZTpUV3QsZmFVdGVuc2lsczpQYmUsZmFDdXRsZXJ5OiRXdCxmYUlkQmFkZ2U6RFd0LGZhU3BpZGVyOkxXdCxmYU1vYmlsZVJldHJvOkVXdCxmYVNpZ25zUG9zdDpJYmUsZmFNYXBTaWduczpQV3QsZmFHcm91cEFycm93c1JvdGF0ZTpJV3QsZmFBcnJvd3NTcGxpdFVwQW5kTGVmdDpBV3QsZmFGaWxsRHJpcDpOV3QsZmFTaGllbGRIZWFydDpSV3QsZmFQZXJzb25Ta2lpbmdOb3JkaWM6QWJlLGZhU2tpaW5nTm9yZGljOk9XdCxmYVNxdWFyZUNoZWNrOk5iZSxmYUNoZWNrU3F1YXJlOkZXdCxmYUJhdGg6UmJlLGZhQmF0aHR1YjpCV3QsZmFDaGVzc0Jpc2hvcDpIV3QsZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsOk9iZSxmYVByZXNjcmlwdGlvbkJvdHRsZUFsdDpxV3QsZmFEcmF3UG9seWdvbjpGYmUsZmFWZWN0b3JQb2x5Z29uOmpXdCxmYUlDdXJzb3I6Vld0LGZhSGVhcnRDaXJjbGVQbHVzOlVXdCxmYVNoaWVsZERvZzpXV3QsZmFHcmVhdGVyVGhhbkVxdWFsOkdXdCxmYUVudmVsb3BlT3BlbjpLV3QsZmFNb3VuZDpZV3QsZmFWb2ljZW1haWw6Wld0LGZhVmVzdDpYV3QsZmFBdWRpb0Rlc2NyaXB0aW9uOlFXdCxmYVc6Sld0LGZhRXllRHJvcHBlcjpib2UsZmFFeWVEcm9wcGVyRW1wdHk6ZUd0LGZhRXllZHJvcHBlcjp0R3QsZmFDaXJjbGVYbWFyazpwaCxmYVRpbWVzQ2lyY2xlOmFHdCxmYVhtYXJrQ2lyY2xlOnNHdCxmYVRyYWlsZXI6aUd0LGZhVHVya2lzaExpcmFTaWduOnZvZSxmYVRyeTpyR3QsZmFUdXJraXNoTGlyYTpvR3QsZmFWb2xjYW5vOm5HdCxmYVdhbmRTcGFya2xlczpsR3QsZmFNaWNyb3Bob25lOmNHdCxmYUNyb3duOmRHdCxmYVRlbnRBcnJvd1R1cm5MZWZ0OnVHdCxmYVRydWNrRmFzdDpCYmUsZmFTaGlwcGluZ0Zhc3Q6cEd0LGZhVXNlclBlbjpIYmUsZmFVc2VyRWRpdDpoR3QsZmFVc2VyQ2xvY2s6Zkd0LGZhU2hvd2VyOm1HdCxmYVNxdWFyZUNhcmV0VXA6cWJlLGZhQ2FyZXRTcXVhcmVVcDpnR3QsZmFNYXBMb2NhdGlvbjpqYmUsZmFNYXBNYXJrZWQ6Ykd0LGZhUGVuRmFuY3k6dkd0LGZhRXVyb1NpZ246eG9lLGZhRXVyOnhHdCxmYUV1cm86eUd0LGZhSG91c2VDaXJjbGVYbWFyazp3R3QsZmFMaXJhU2lnbjprR3QsZmFZZW5TaWduOkFiLGZhQ255OlNHdCxmYUpweTpfR3QsZmFSbWI6TUd0LGZhWWVuOnpHdCxmYUJveE9wZW46Q0d0LGZhVHJ1Y2tGaWVsZDpUR3QsZmFMb2NhdGlvblBpbkxvY2s6JEd0LGZhUGVyc29uUHJheWluZzpWYmUsZmFQcmF5OkRHdCxmYUNsaXBib2FyZExpc3Q6TEd0LGZhU2Fja0RvbGxhcjpFR3QsZmFNb3VudGFpblN1bjpQR3QsZmFBcnJvd1VwV2lkZVNob3J0OlViZSxmYVNvcnRBbW91bnRVcDpJR3QsZmFVc2Vyc0xpbmU6QUd0LGZhU3Rhck9mRGF2aWQ6Tkd0LGZhTm90ZXNNZWRpY2FsOlJHdCxmYUF1c3RyYWxTaWduOk9HdCxmYUNsaXBib2FyZFVzZXI6Rkd0LGZhRmlsZUltYWdlOkJHdCxmYVNxdWFyZUNhcmV0UmlnaHQ6V2JlLGZhQ2FyZXRTcXVhcmVSaWdodDpIR3QsZmFWaWFsOnFHdCxmYUhlbGljb3B0ZXI6akd0LGZhTWl0dGVuOlZHdCxmYUdhc1B1bXA6VUd0LGZhRW52ZWxvcGVDaXJjbGVDaGVjazpXR3QsZmFQZXJzb25Ta2F0aW5nOkdiZSxmYVNrYXRpbmc6R0d0LGZhU3VuOlViLGZhQmFzZWJhbGw6S2JlLGZhQmFzZWJhbGxCYWxsOktHdCxmYUltYWdlOllHdCxmYU5vdGRlZjpaR3QsZmFCYXNrZXRiYWxsOlliZSxmYUJhc2tldGJhbGxCYWxsOlhHdCxmYVBlbmNpbDpaYmUsZmFQZW5jaWxBbHQ6UUd0LGZhUGVyc29uV2Fsa2luZ0Fycm93TG9vcExlZnQ6Skd0LGZhRGljZVNpeDplS3QsZmFBbmdsZXNEb3duOlhiZSxmYUFuZ2xlRG91YmxlRG93bjp0S3QsZmFTeXJpbmdlOmFLdCxmYVdoZWF0QXduOlFiZSxmYVdoZWF0QWx0OnNLdCxmYVBsYW5lVXA6aUt0LGZhQWxpZ25DZW50ZXI6ckt0LGZhSG9ja2V5UHVjazpvS3QsZmFDaXJjbGVBcnJvd0xlZnQ6SmJlLGZhQXJyb3dDaXJjbGVMZWZ0Om5LdCxmYVBsdWdDaXJjbGVCb2x0OmxLdCxmYVJlc3Ryb29tOmNLdCxmYUFuY2hvckxvY2s6ZEt0LGZhVGltZWxpbmU6dUt0LGZhTGlnaHRidWxiOnBLdCxmYUNpcmNsZUFycm93UmlnaHQ6ZXZlLGZhQXJyb3dDaXJjbGVSaWdodDpoS3QsZmFNYXJzQW5kVmVudXM6Zkt0LGZhTmV0d29ya1dpcmVkOldiLGZhQnVpbGRpbmdTaGllbGQ6bUt0LGZhQ29kZTpnS3QsZmFGZWF0aGVyUG9pbnRlZDp0dmUsZmFGZWF0aGVyQWx0OmJLdCxmYUZpbGVDaXJjbGVRdWVzdGlvbjp2S3QsZmFTaWduYXR1cmU6eEt0LGZhRWFydGhBbWVyaWNhczplUyxmYUVhcnRoOnlLdCxmYUVhcnRoQW1lcmljYTp3S3QsZmFHbG9iZUFtZXJpY2FzOmtLdCxmYUNhcnJvdDpTS3QsZmFUZW1wZXJhdHVyZUZ1bGw6dFMsZmFUZW1wZXJhdHVyZTQ6X0t0LGZhVGhlcm1vbWV0ZXI0Ok1LdCxmYVRoZXJtb21ldGVyRnVsbDp6S3QsZmFUYWJsZUNlbGxzUm93TG9jazpDS3QsZmFCb2x0TGlnaHRuaW5nOlRLdCxmYUNsb3VkU2hvd2Vyc1dhdGVyOiRLdCxmYUFycm93VXBMb25nOmF2ZSxmYUxvbmdBcnJvd1VwOkRLdCxmYUFkZHJlc3NDYXJkOnlvZSxmYUNvbnRhY3RDYXJkOkxLdCxmYVZjYXJkOkVLdCxmYUFuZ2xlUmlnaHQ6UEt0LGZhRmFjZU1laDpzdmUsZmFNZWg6SUt0LGZhQXJyb3dVcEZyb21Hcm91bmRXYXRlcjpBS3QsZmFNYXA6Tkt0LGZhVXNlclBsdXM6Ukt0LGZhVmVudXM6T0t0LGZhRGlhZ3JhbVN1Y2Nlc3NvcjpGS3QsZmFIZWFkU2lkZUNvdWdoU2xhc2g6Qkt0LGZhRGlhZ3JhbVByb2plY3Q6aXZlLGZhUHJvamVjdERpYWdyYW06SEt0LGZhVGVybWluYWw6R2IsZmFIb3VzZUZpcmU6cUt0LGZhTWFzazpqS3QsZmFIdXJyaWNhbmU6Vkt0LGZhRWFydGhBZnJpY2E6cnZlLGZhR2xvYmVBZnJpY2E6VUt0LGZhVGh1bWJ0YWNrOm92ZSxmYVRodW1iVGFjazpXS3QsZmFIYW5kUG9pbnREb3duOkdLdCxmYUZhY2VNZWhCbGFuazpudmUsZmFNZWhCbGFuazpLS3QsZmFUZW1wZXJhdHVyZUVtcHR5OmFTLGZhVGVtcGVyYXR1cmUwOllLdCxmYVRoZXJtb21ldGVyMDpaS3QsZmFUaGVybW9tZXRlckVtcHR5OlhLdCxmYUJvcmRlck5vbmU6UUt0LGZhSGlnaGxpZ2h0ZXI6Skt0LGZhTW9uZXlCaWxsV2F2ZTplWXQsZmFUb2lsZXRQYXBlclNsYXNoOnRZdCxmYUZpbGVTaGllbGQ6YVl0LGZhVGV4dEhlaWdodDpzWXQsZmFGYWNlR3JpblRvbmd1ZTpsdmUsZmFHcmluVG9uZ3VlOmlZdCxmYUZpbGVTaWduYXR1cmU6cll0LGZhQnVpbGRpbmdXaGVhdDpvWXQsZmFQbHVnQ2lyY2xlTWludXM6bll0LGZhRnV0Ym9sOndvZSxmYUZ1dGJvbEJhbGw6bFl0LGZhU29jY2VyQmFsbDpjWXQsZmFDaXJjbGVQbHVzOmN2ZSxmYVBsdXNDaXJjbGU6ZFl0LGZhQnJhemlsaWFuUmVhbFNpZ246dVl0LGZhU3RhckFuZENyZXNjZW50OnBZdCxmYUZhY2VTdXJwcmlzZTpkdmUsZmFTdXJwcmlzZTpoWXQsZmFIb3NwaXRhbFVzZXI6Zll0LGZhQXJyb3dEb3duVXBMb2NrOm1ZdCxmYUZvbGRlcjp1dmUsZmFGb2xkZXJCbGFuazpnWXQsZmFIb2xseUJlcnJ5OmJZdCxmYVZlbnVzRG91YmxlOnZZdCxmYUNsaXBib2FyZFF1ZXN0aW9uOnhZdCxmYUhvdGRvZzp5WXQsZmFBcnJvd1VwRnJvbUJyYWNrZXQ6d1l0LGZhTWljcm9zY29wZTprWXQsZmFDbG91ZDpTWXQsZmFCYXNlYmFsbEJhdEJhbGw6X1l0LGZhQ2FyUmVhcjpwdmUsZmFDYXJBbHQ6TVl0LGZhVGh1bWJ0YWNrU2xhc2g6aHZlLGZhVGh1bWJUYWNrU2xhc2g6ell0LGZhUGx1c01pbnVzOkNZdCxmYUhvdXNlQ2lyY2xlQ2hlY2s6VFl0LGZhQ2FsZW5kYXJEYXk6JFl0LGZhTGlicmE6RFl0LGZhQ2lyY2xlOkxZdCxmYU1vYmlsZVZpYnJhdGU6RVl0LGZhRmFjZUdyaW5TcXVpbnQ6ZnZlLGZhR3JpblNxdWludDpQWXQsZmFVc2Vyc0JldHdlZW5MaW5lczpJWXQsZmFIb3VzZU1lZGljYWxDaXJjbGVYbWFyazpBWXQsZmFUYWJsZUxpc3Q6bXZlLGZhVGhMaXN0Ok5ZdCxmYUZsYXNrVmlhbDpSWXQsZmFDaXJjbGVFeGNsYW1hdGlvbjpndmUsZmFFeGNsYW1hdGlvbkNpcmNsZTpPWXQsZmFUYXhpOmJ2ZSxmYUNhYjpGWXQsZmFUZXh0U2xhc2g6dnZlLGZhUmVtb3ZlRm9ybWF0OkJZdCxmYVBlb3BsZVB1bGxpbmc6SFl0LGZhQmFja3dhcmQ6cVl0LGZhQ2FyQnVyc3Q6eHZlLGZhQ2FyQ3Jhc2g6all0LGZhTGluazp5dmUsZmFDaGFpbjpWWXQsZmFCYWNrd2FyZFN0ZXA6d3ZlLGZhU3RlcEJhY2t3YXJkOlVZdCxmYVg6V1l0LGZhQ2lyY2xlVXNlcjprdmUsZmFVc2VyQ2lyY2xlOkdZdCxmYVJlY3RhbmdsZUxpc3Q6U3ZlLGZhTGlzdEFsdDpLWXQsZmFIYW5kOl92ZSxmYUhhbmRQYXBlcjpZWXQsZmFDYW5jZXI6Wll0LGZhVmFuU2h1dHRsZTpNdmUsZmFTaHV0dGxlVmFuOlhZdCxmYVN0YWlyczpRWXQsZmFIb3JzZUhlYWQ6Sll0LGZhVmF1bHQ6ZVp0LGZhQ2xvc2VkQ2FwdGlvbmluZ1NsYXNoOnRadCxmYURydW1TdGVlbHBhbjphWnQsZmFUaHVtYnNVcDpzWnQsZmFTdGFtcDppWnQsZmFNZW5vcmFoOnJadCxmYUNoaWxkcmVuOm9adCxmYUNoYXJ0TGluZTp6dmUsZmFMaW5lQ2hhcnQ6blp0LGZhU3F1YXJlRW52ZWxvcGU6Q3ZlLGZhRW52ZWxvcGVTcXVhcmU6bFp0LGZhQmFuU21va2luZzpUdmUsZmFTbW9raW5nQmFuOmNadCxmYVRydWNrRnJvbnQ6ZFp0LGZhQnVpbGRpbmc6S2IsZmFCdWxsc2V5ZTp1WnQsZmFBcnJvd0xlZnRMb25nOiR2ZSxmYUxvbmdBcnJvd0xlZnQ6cFp0LGZhQ2hlc3NSb29rOmhadCxmYUJsZW5kZXJQaG9uZTpmWnQsZmFBcnJvd1R1cm5VcDpEdmUsZmFMZXZlbFVwOm1adCxmYUJpY3ljbGU6Z1p0LGZhQ2lyY2xlQXJyb3dEb3duOkx2ZSxmYUFycm93Q2lyY2xlRG93bjpiWnQsZmFHZWFyOmRmLGZhQ29nOnZadCxmYU1hcnNBbmRWZW51c0J1cnN0OnhadCxmYU90dGVyOnladCxmYUNpcmNsZUNoZXZyb25MZWZ0OkV2ZSxmYUNoZXZyb25DaXJjbGVMZWZ0OndadCxmYUNpcmNsZVF1ZXN0aW9uOlB2ZSxmYVF1ZXN0aW9uQ2lyY2xlOmtadCxmYVdhbGtpZVRhbGtpZTpTWnQsZmFVc2VyR3JvdXA6SXZlLGZhVXNlckZyaWVuZHM6X1p0LGZhSG91c2VDaGltbmV5OkF2ZSxmYUhvbWVMZzpNWnQsZmFSaWdodEZyb21CcmFja2V0Ok52ZSxmYVNpZ25PdXRBbHQ6elp0LGZhRmlsZTpDWnQsZmFQbGFuZVNsYXNoOlRadCxmYUNsb3VkU2hvd2Vyc0hlYXZ5OiRadCxmYVBlcnNvbkZhbGxpbmc6RFp0LGZhVHVybkRvd246UnZlLGZhTGV2ZWxEb3duQWx0OkxadCxmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXI6T3ZlLGZhRXhwYW5kQWx0OkVadCxmYVVzZXJUYWc6UFp0LGZhSGFuZFNwYXJrbGVzOkladCxmYUFycm93c1RvRG90OkFadCxmYUZhY2VTYWRDcnk6RnZlLGZhU2FkQ3J5Ok5adCxmYURvbmdTaWduOlJadCxmYVBlb3BsZUxpbmU6T1p0LGZhU3F1YXJlUnNzOkJ2ZSxmYVJzc1NxdWFyZTpGWnQsZmFDYWxlbmRhck1pbnVzOkJadCxmYUNoYXJ0RGlhZ3JhbTpIWnQsZmFGYWNlVGlyZWQ6SHZlLGZhVGlyZWQ6cVp0LGZhSGFuZFBvaW50UmlnaHQ6alp0LGZhQXJyb3dVcDpWWnQsZmFDdWJlc1N0YWNrZWQ6VVp0LGZhQ2hpbGRDb21iYXRhbnQ6cXZlLGZhQ2hpbGRSaWZsZTpXWnQsZmFWZXN0UGF0Y2hlczpHWnQsZmFNYXJ0aW5pR2xhc3NFbXB0eTpqdmUsZmFHbGFzc01hcnRpbmk6S1p0LGZhTWFnbmV0OlladCxmYVJvYWRCYXJyaWVyOlpadCxmYUNvbXBhc3NEcmFmdGluZzpWdmUsZmFEcmFmdGluZ0NvbXBhc3M6WFp0LGZhU3F1YXJlUGVyc29uQ29uZmluZWQ6UVp0LGZhUGxhdGVXaGVhdDpKWnQsZmFTaWduSGFuZ2luZzpVdmUsZmFTaWduOmVYdCxmYUNhckJhdHRlcnk6V3ZlLGZhQmF0dGVyeUNhcjp0WHQsZmFTaGlydDprb2UsZmFUU2hpcnQ6YVh0LGZhVHNoaXJ0OnNYdCxmYVBhcmFncmFwaDppWHQsZmFFbnZlbG9wZXNCdWxrOkd2ZSxmYU1haWxCdWxrOnJYdCxmYUd1aXRhcjpvWHQsZmFTdWl0Y2FzZTpuWHQsZmFDaXJjbGVVcDpLdmUsZmFBcnJvd0FsdENpcmNsZVVwOmxYdCxmYUY6Y1h0LGZhWG1hcmtzTGluZXM6ZFh0LGZhRWFydGhPY2VhbmlhOll2ZSxmYUdsb2JlT2NlYW5pYTp1WHQsZmFDb21tZW50U2xhc2g6cFh0LGZhUGxheTpoWHQsZmFWaWFsQ2lyY2xlQ2hlY2s6Zlh0LGZhQnJpZGdlQ2lyY2xlQ2hlY2s6bVh0LGZhQ2VkaVNpZ246Z1h0LGZhUHV6emxlUGllY2U6Ylh0LGZhSGVsbWV0VW46dlh0LGZhR2xhc3NXYXRlcjp4WHQsZmFIZWFydENpcmNsZUJvbHQ6eVh0LGZhUHVtcFNvYXA6d1h0LGZhSGFuZFNjaXNzb3JzOmtYdCxmYURvbGx5Olp2ZSxmYURvbGx5Qm94OlNYdCxmYVBhcGVyY2xpcDpZYixmYURlbW9jcmF0Ol9YdCxmYVNxdWFyZUFycm93VXBSaWdodDpYdmUsZmFFeHRlcm5hbExpbmtTcXVhcmU6TVh0LGZhRmVycnk6elh0LGZhTW9zcXVpdG86Q1h0LGZhQnVpbGRpbmdDaXJjbGVBcnJvd1JpZ2h0OlRYdCxmYUxlZnRSaWdodDpRdmUsZmFBcnJvd3NBbHRIOiRYdCxmYVZpcnVzOkRYdCxmYUdlbTpMWHQsZmFUb2lsZXQ6RVh0LGZhU2luZ2xlUXVvdGVMZWZ0OlBYdCxmYU1vbmV5QmlsbHM6SVh0LGZhVGFibGV0QnV0dG9uOkFYdCxmYVJlY3RhbmdsZVhtYXJrOnNTLGZhUmVjdGFuZ2xlVGltZXM6Tlh0LGZhVGltZXNSZWN0YW5nbGU6Ulh0LGZhV2luZG93Q2xvc2U6T1h0LGZhV3JlbmNoOkZYdCxmYVRyYXNoQ2FuOnVmLGZhVHJhc2hBbHQ6Qlh0LGZhVGFibGVDZWxsczpKdmUsZmFUaDpIWHQsZmFSaWJib246cVh0LGZhTGFuZG1hcmtGbGFnOmpYdCxmYVVwRG93bkxlZnRSaWdodDpleGUsZmFBcnJvd3NBbHQ6Vlh0LGZhQ2FyU2lkZTpVWHQsZmFUcmFzaEFycm93VXA6dHhlLGZhVHJhc2hSZXN0b3JlOldYdCxmYUxpZmVSaW5nOkdYdCxmYUNvcHlyaWdodDpLWHQsZmFGaWxlUHJlc2NyaXB0aW9uOllYdCxmYUVyYXNlcjpaWHQsZmFIb3VyZ2xhc3NTdGFydDpheGUsZmFIb3VyZ2xhc3MxOlhYdCxmYUNpcmNsZUxlZnQ6c3hlLGZhQXJyb3dBbHRDaXJjbGVMZWZ0OlFYdCxmYUNydXplaXJvU2lnbjpKWHQsZmFTbW9raW5nOmVRdCxmYVNxdWFyZVBvbGxWZXJ0aWNhbDppeGUsZmFQb2xsOnRRdCxmYVBlcnNvbkNpcmNsZU1pbnVzOmFRdCxmYUJpb2hhemFyZDpzUXQsZmFCZWxsQ29uY2llcmdlOnJ4ZSxmYUNvbmNpZXJnZUJlbGw6aVF0LGZhUnVsZXJIb3Jpem9udGFsOnJRdCxmYUhvcnNlOm9RdCxmYUNhbGVuZGFyOm5RdCxmYUhhbmRzSG9sZGluZ0NoaWxkOmxRdCxmYUl0YWxpYzpjUXQsZmFLaGFuZGE6ZFF0LGZhRmFjZUZyb3duT3BlbjpveGUsZmFGcm93bk9wZW46dVF0LGZhQ2hlY2s6WmIsZmFGaW5nZXJwcmludDpwUXQsZmFDaGFyZ2luZ1N0YXRpb246aFF0LGZhVXNlckxvY2s6ZlF0LGZhTW9iaWxlU2NyZWVuQnV0dG9uOm54ZSxmYU1vYmlsZUFsdDptUXQsZmFBbmNob3JDaXJjbGVDaGVjazpnUXQsZmFQZXJzb25XYWxraW5nV2l0aENhbmU6bHhlLGZhQmxpbmQ6YlF0LGZhRmlsZVdhdmVmb3JtOmN4ZSxmYUZpbGVNZWRpY2FsQWx0OnZRdCxmYUhvdXNlQ3JhY2s6eFF0LGZhSGF0V2l6YXJkOnlRdCxmYVVzZXJEb2N0b3I6ZHhlLGZhVXNlck1kOndRdCxmYUNoYXJ0QmFyOnV4ZSxmYUJhckNoYXJ0OmtRdCxmYVNwcmF5Q2FuU3BhcmtsZXM6cHhlLGZhQWlyRnJlc2hlbmVyOlNRdCxmYUJhaHRTaWduOl9RdCxmYVRlbXBlcmF0dXJlQXJyb3dVcDpoeGUsZmFUZW1wZXJhdHVyZVVwOk1RdCxmYVdlYkF3ZXNvbWU6elF0LGZhTm9uQmluYXJ5OkNRdCxmYU46VFF0LGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0OmZ4ZSxmYUFycm93czokUXQsZmFIb3VzZTppUyxmYUhvbWU6RFF0LGZhSG9tZUFsdDpMUXQsZmFIb21lTGdBbHQ6RVF0LGZhU3Bpbm5lcjpQUXQsZmFHYXZlbDpteGUsZmFMZWdhbDpJUXQsZmFUaWNrZXRTaW1wbGU6Z3hlLGZhVGlja2V0QWx0OkFRdCxmYURvdmU6TlF0LGZhVGFycERyb3BsZXQ6UlF0LGZhVHJlZUNpdHk6T1F0LGZhVHVyblVwOmJ4ZSxmYUxldmVsVXBBbHQ6RlF0LGZhVGVtcGVyYXR1cmVRdWFydGVyOnJTLGZhVGVtcGVyYXR1cmUxOkJRdCxmYVRoZXJtb21ldGVyMTpIUXQsZmFUaGVybW9tZXRlclF1YXJ0ZXI6cVF0LGZhU2xpZGVyczp2eGUsZmFTbGlkZXJzSDpqUXQsZmFNb3NxdWU6VlF0LGZhSDpVUXQsZmFJbmZvOldRdCxmYVBlcnNvbldhbGtpbmc6eHhlLGZhV2Fsa2luZzpHUXQsZmFBcnJvd1R1cm5Eb3duOnl4ZSxmYUxldmVsRG93bjpLUXQsZmFSb2FkOllRdCxmYVNwaXJhbDpaUXQsZmFGYWNlRnJvd246d3hlLGZhRnJvd246WFF0LGZhV2luZUdsYXNzRW1wdHk6a3hlLGZhV2luZUdsYXNzQWx0OlFRdCxmYUNsYXBwZXJib2FyZDpKUXQsZmFGb3J3YXJkU3RlcDpTeGUsZmFTdGVwRm9yd2FyZDplSnQsZmFTcXVhcmVVcFJpZ2h0Ol94ZSxmYUV4dGVybmFsTGlua1NxdWFyZUFsdDp0SnQsZmFCb29rSm91cm5hbFdoaWxsczpNeGUsZmFKb3VybmFsV2hpbGxzOmFKdCxmYUNoYW1wYWduZUdsYXNzZXM6enhlLGZhR2xhc3NDaGVlcnM6c0p0LGZhRHVtcHN0ZXI6aUp0LGZhSGVhcnRDaXJjbGVYbWFyazpySnQsZmFDb21wdXRlcjpvSnQsZmFXYW5kTWFnaWM6Q3hlLGZhTWFnaWM6bkp0LGZhQnJhaW46bEp0LGZhQnJpZWZjYXNlTWVkaWNhbDpjSnQsZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbjpkSnQsZmFDb2RlQ29tbWl0OnVKdCxmYVBlcnNvbkJyZWFzdGZlZWRpbmc6cEp0LGZhUGVyc29uUmF5czpoSnQsZmFNYW5hdFNpZ246Zkp0LGZhU29ydDpUeGUsZmFVbnNvcnRlZDptSnQsZmFDaXJjbGVSYWRpYXRpb246JHhlLGZhUmFkaWF0aW9uQWx0OmdKdCxmYUxhcHRvcENvZGU6Ykp0LGZhU2luazp2SnQsZmFBcnJvd1VwRnJvbVdhdGVyUHVtcDp4SnQsZmFNaWNyb3Bob25lTGluZXNTbGFzaDpEeGUsZmFNaWNyb3Bob25lQWx0U2xhc2g6eUp0LGZhU2VydmVyOndKdCxmYVVzZXI6U29lLGZhVXNlckFsdDprSnQsZmFVc2VyTGFyZ2U6U0p0LGZhU25vd2ZsYWtlOl9KdCxmYVRhdXJ1czpNSnQsZmFTa3VsbENyb3NzYm9uZXM6ekp0LGZhUGVzb1NpZ246Q0p0LGZhV2luZUdsYXNzOlRKdCxmYVRlbXBlcmF0dXJlSGFsZjpvUyxmYVRlbXBlcmF0dXJlMjokSnQsZmFUaGVybW9tZXRlcjI6REp0LGZhVGhlcm1vbWV0ZXJIYWxmOkxKdCxmYVRpY2tldDpFSnQsZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uOlBKdCxmYUFycm93c1R1cm5SaWdodDpJSnQsZmFDYW5keUNhbmU6QUp0LGZhV2hlZWxjaGFpcjpOSnQsZmFTcGVsbENoZWNrOlJKdCxmYVZvbHVtZU9mZjpPSnQsZmFMdW5nczpGSnQsZmFCb29rbWFyazpCSnQsZmFCYXJjb2RlOkhKdCxmYUxpc3RPbDpfb2UsZmFMaXN0MTI6cUp0LGZhTGlzdE51bWVyaWM6akp0LGZhRmlsZUNpcmNsZVhtYXJrOlZKdCxmYUN1YmU6VUp0LGZhVGFwZTpXSnQsZmFCb21iOkdKdCxmYVNjYWxlVW5iYWxhbmNlZDpMeGUsZmFCYWxhbmNlU2NhbGVMZWZ0OktKdCxmYVNxdWFyZUNhcmV0TGVmdDpFeGUsZmFDYXJldFNxdWFyZUxlZnQ6WUp0LGZhUnVsZXI6Wkp0LGZhSTpYSnQsZmFWb2x1bWVYbWFyazpNb2UsZmFWb2x1bWVNdXRlOlFKdCxmYVZvbHVtZVRpbWVzOkpKdCxmYUFyY2h3YXk6ZWVhLGZhUGVyc29uRGlnZ2luZzpQeGUsZmFEaWdnaW5nOnRlYSxmYUdhdWdlSGlnaDp6b2UsZmFUYWNob21ldGVyQWx0OmFlYSxmYVRhY2hvbWV0ZXJBbHRGYXN0OnNlYSxmYUdlbmRlcmxlc3M6aWVhLGZhQ2xvdWRTdW46cmVhLGZhQXJyb3dSaWdodDpYYixmYUhhbmRzaGFrZTpDb2UsZmFIYW5kc2hha2VBbHQ6b2VhLGZhSGFuZHNoYWtlU2ltcGxlOm5lYSxmYVBlcnNvblNraWluZzpJeGUsZmFTa2lpbmc6bGVhLGZhQnJpZGdlV2F0ZXI6Y2VhLGZhQnVpbGRpbmdOZ286ZGVhLGZhSWdsb286dWVhLGZhQ2lyY2xlRG9sbGFyVG9TbG90OkF4ZSxmYURvbmF0ZTpwZWEsZmFZOmhlYSxmYUZhY2VTbWlsZVdpbms6TnhlLGZhU21pbGVXaW5rOmZlYSxmYURpY2VGb3VyOm1lYSxmYUZhY2VHcmluU3F1aW50VGVhcnM6UnhlLGZhR3JpblNxdWludFRlYXJzOmdlYSxmYUZpbGVBdWRpbzpiZWEsZmFBcnJvd3NEb3duVG9MaW5lOnZlYSxmYUc6eGVhLGZhVmloYXJhOnllYSxmYUZsYWdDaGVja2VyZWQ6d2VhLGZhR2F1Z2VTaW1wbGU6VG9lLGZhR2F1Z2VTaW1wbGVNZWQ6a2VhLGZhVGFjaG9tZXRlckF2ZXJhZ2U6U2VhLGZhUmlnaHRMZWZ0Ok94ZSxmYUV4Y2hhbmdlQWx0Ol9lYSxmYVBpbGxzOk1lYSxmYUV4cGxvc2lvbjp6ZWEsZmFBcnJvd3NEb3duVG9QZW9wbGU6Q2VhLGZhVXNlcnNWaWV3ZmluZGVyOlRlYSxmYUNhck9uOiRlYSxmYVNsZWlnaDpEZWEsZmFEdW1iYmVsbDpMZWEsZmFCYWJ5Q2FycmlhZ2U6RnhlLGZhQ2FycmlhZ2VCYWJ5OkVlYSxmYUtpd2lCaXJkOlBlYSxmYUNhbGVuZGFyWG1hcms6QnhlLGZhQ2FsZW5kYXJUaW1lczpJZWEsZmFDaXJjbGVEb3duOkh4ZSxmYUFycm93QWx0Q2lyY2xlRG93bjpBZWEsZmFGaWxlTWVkaWNhbDpOZWEsZmFYbWFyazp6ZCxmYUNsb3NlOlJlYSxmYU11bHRpcGx5Ok9lYSxmYVJlbW92ZTpGZWEsZmFUaW1lczpCZWEsZmFTaGFwZXM6cXhlLGZhVHJpYW5nbGVDaXJjbGVTcXVhcmU6SGVhLGZhRGljZU9uZTpxZWEsZmFMb2NrT3BlbjpqZWEsZmFQZXBwZXJIb3Q6VmVhLGZhRHJvcGxldFNsYXNoOmp4ZSxmYVRpbnRTbGFzaDpVZWEsZmFEcm9wbGV0OlZ4ZSxmYVRpbnQ6V2VhLGZhRmlsZUxpbmVzOiRvZSxmYUZpbGVBbHQ6R2VhLGZhRmlsZVRleHQ6S2VhLGZhQ29tbWVudHNEb2xsYXI6WWVhLGZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb246VXhlLGZhU2VhcmNoTG9jYXRpb246WmVhLGZhRmlsZUludm9pY2U6UWIsZmFQZW50YWdvbjpYZWEsZmFSZXB1YmxpY2FuOlFlYSxmYVNob3A6V3hlLGZhU3RvcmVBbHQ6SmVhLGZhRmlsbTpEb2UsZmFGaWxtQWx0OmV0YSxmYUZpbG1TaW1wbGU6dHRhLGZhQnVpbGRpbmdDaXJjbGVYbWFyazphdGEsZmFDb21tZW50czpzdGEsZmFUYWdzOml0YSxmYUd1bjpydGEsZmFDaXJjbGVDaGVjazpwZixmYUNoZWNrQ2lyY2xlOm90YSxmYVNjb3JwaW86bnRhLGZhSWRDYXJkQ2xpcDpHeGUsZmFJZENhcmRBbHQ6bHRhLGZhTW9vbjpjdGEsZmFPaWxXZWxsOmR0YSxmYVRhY2hvZ3JhcGhEaWdpdGFsOkt4ZSxmYURpZ2l0YWxUYWNob2dyYXBoOnV0YSxmYVRhYmxldDpZeGUsZmFUYWJsZXRBbmRyb2lkOnB0YSxmYVJ1YmxlU2lnbjpuUyxmYVJvdWJsZTpodGEsZmFSdWI6ZnRhLGZhUnVibGU6bXRhLGZhQ2xvc2VkQ2FwdGlvbmluZzpndGEsZmFQZW46YnRhLGZhUGxhbmU6dnRhLGZhSW1hZ2VzOnh0YSxmYU1vYmlsZVNjcmVlbjpaeGUsZmFNb2JpbGVBbmRyb2lkQWx0Onl0YSxmYUd1YXJhbmlTaWduOnd0YSxmYUJhZ1Nob3BwaW5nOlh4ZSxmYVNob3BwaW5nQmFnOmt0YSxmYUNpcmNsZVJpZ2h0OlF4ZSxmYUFycm93QWx0Q2lyY2xlUmlnaHQ6U3RhLGZhUGhvbmVWb2x1bWU6SnhlLGZhVm9sdW1lQ29udHJvbFBob25lOl90YSxmYUN1YmVzOk10YSxmYVBob25lOnp0YSxmYVRvcmlpR2F0ZTpDdGEsZmFCYWNvbjpUdGEsZmFQZXJzb25GYWxsaW5nQnVyc3Q6JHRhLGZhUXVvdGVSaWdodDpleWUsZmFRdW90ZVJpZ2h0QWx0OkR0YSxmYUhvdXNlTWVkaWNhbEZsYWc6THRhLGZhUHJlc2NyaXB0aW9uOkV0YSxmYURpY2VUaHJlZTpQdGEsZmFCdWlsZGluZ0xvY2s6SXRhLGZhSWRDYXJkOnR5ZSxmYURyaXZlcnNMaWNlbnNlOkF0YSxmYUNpcmNsZVBsYXk6YXllLGZhUGxheUNpcmNsZTpOdGEsZmFGYWNlTGF1Z2hCZWFtOnN5ZSxmYUxhdWdoQmVhbTpSdGEsZmFMZWFmOk90YSxmYUhvdXNlQ2hpbW5leVVzZXI6RnRhLGZhUm90YXRlUmlnaHQ6TG9lLGZhUmVkb0FsdDpCdGEsZmFSb3RhdGVGb3J3YXJkOkh0YSxmYVRvb3RoOnF0YSxmYUhvdXNlQ2hpbW5leVdpbmRvdzpqdGEsZmFNb3RvcmN5Y2xlOlZ0YSxmYUJhY2t3YXJkRmFzdDppeWUsZmFGYXN0QmFja3dhcmQ6VXRhLGZhQWRkcmVzc0Jvb2s6cnllLGZhQ29udGFjdEJvb2s6V3RhLGZhU2FpbGJvYXQ6R3RhLGZhQm9va0Jvb2ttYXJrOkt0YSxmYU1hZ25pZnlpbmdHbGFzc0Fycm93UmlnaHQ6WXRhLGZhTWljcm9waG9uZUxpbmVzOm95ZSxmYU1pY3JvcGhvbmVBbHQ6WnRhLGZhUmVwbHlBbGw6bnllLGZhTWFpbFJlcGx5QWxsOlh0YSxmYVVuaXZlcnNhbEFjY2VzczpRdGEsZmFUb2lsZXRQYXBlcjpFb2UsZmFUb2lsZXRQYXBlckFsdDpKdGEsZmFUb2lsZXRQYXBlckJsYW5rOmVhYSxmYVZyQ2FyZGJvYXJkOnRhYSxmYVBpenphU2xpY2U6YWFhLGZhU3ByYXlDYW46c2FhLGZhVm9sdW1lTG93Omx5ZSxmYVZvbHVtZURvd246aWFhLGZhQ3Jvc3M6cmFhLGZhUGVyc29uOmN5ZSxmYU1hbGU6b2FhLGZhSG91cmdsYXNzOmR5ZSxmYUhvdXJnbGFzc0VtcHR5Om5hYSxmYUZpc2g6bGFhLGZhRHJ1bXN0aWNrQml0ZTpjYWEsZmFDaGFydFNpbXBsZTpkYWEsZmFBdG9tOnVhYSxmYVA6cGFhLGZhSmV0RmlnaHRlclVwOmhhYSxmYVBsdWdDaXJjbGVYbWFyazpmYWEsZmFTaGVldFBsYXN0aWM6bWFhLGZhVjpnYWEsZmFMaXN0OnV5ZSxmYUxpc3RTcXVhcmVzOmJhYSxmYVBpc2Nlczp2YWEsZmFTb2xhclBhbmVsOnhhYSxmYUxhbmRNaW5lT246eWFhLGZhSGVhZHBob25lczpQb2UsZmFIZWFkcGhvbmVzQWx0OndhYSxmYUhlYWRwaG9uZXNTaW1wbGU6a2FhLGZhQnVzOlNhYSxmYUZpbGVQb3dlcnBvaW50Ol9hYSxmYVF1b3RlTGVmdDpweWUsZmFRdW90ZUxlZnRBbHQ6TWFhLGZhQ2hldnJvbkRvd246emFhLGZhRWFydGhBc2lhOmh5ZSxmYUdsb2JlQXNpYTpDYWEsZmFDZW50U2lnbjpUYWEsZmFTaGllbGRDYXQ6JGFhLGZhU2Nob29sQ2lyY2xlQ2hlY2s6RGFhLGZhTWFydGluaUdsYXNzOmZ5ZSxmYUdsYXNzTWFydGluaUFsdDpMYWEsZmFQbHVnOkVhYSxmYVBhbm9yYW1hOlBhYSxmYUNsb2NrUm90YXRlTGVmdDpoZixmYUhpc3Rvcnk6SWFhLGZhSmFyV2hlYXQ6QWFhLGZhQ2xvdWRBcnJvd0Rvd246SW9lLGZhQ2xvdWREb3dubG9hZDpOYWEsZmFDbG91ZERvd25sb2FkQWx0OlJhYSxmYVRydWNrUmFtcEJveDpteWUsZmFUcnVja0xvYWRpbmc6T2FhLGZhQW5nbGVEb3duOkZhYSxmYVBsdWdDaXJjbGVDaGVjazpCYWEsZmFXaW5kb3dNYXhpbWl6ZTpIYWEsZmFIYW5kc0hvbGRpbmdDaXJjbGU6cWFhLGZhTG9jYXRpb25QaW46Z3llLGZhTWFwTWFya2VyOmphYSxmYUJvd2xpbmdCYWxsOlZhYSxmYUNhcnRGbGF0YmVkOmJ5ZSxmYURvbGx5RmxhdGJlZDpVYWEsZmFIb3VzZVVzZXI6dnllLGZhSG9tZVVzZXI6V2FhLGZhR2hvc3Q6R2FhLGZhQ29tbWVudE5vZGVzOkthYSxmYVBlcnNvbkFycm93RG93blRvTGluZTpZYWEsZmFQbHVnQ2lyY2xlUGx1czpaYWEsZmFQZXJzb25Td2ltbWluZzp4eWUsZmFTd2ltbWVyOlhhYSxmYUNvbW1lbnREb3RzOnl5ZSxmYUNvbW1lbnRpbmc6UWFhLGZhQ2hhcnRQaWU6d3llLGZhUGllQ2hhcnQ6SmFhLGZhRnJvZzplc2EsZmFXaW5lQm90dGxlOnRzYSxmYUluYm94OmFzYSxmYVNxdWFyZUg6a3llLGZhSFNxdWFyZTpzc2EsZmFIb3VzZU1lZGljYWw6aXNhLGZhQ2lyY2xlQ2hldnJvblJpZ2h0OlN5ZSxmYUNoZXZyb25DaXJjbGVSaWdodDpyc2EsZmFGaWxlQ3N2Om9zYSxmYUhhdENvd2JveTpuc2EsZmFGYWNlR3JpblRvbmd1ZVdpbms6X3llLGZhR3JpblRvbmd1ZVdpbms6bHNhLGZhTDpjc2EsZmFBcnJvd0Rvd25TaG9ydFdpZGU6QW9lLGZhU29ydEFtb3VudERlc2M6ZHNhLGZhU29ydEFtb3VudERvd25BbHQ6dXNhLGZhSG91cmdsYXNzSGFsZjpNeWUsZmFIb3VyZ2xhc3MyOnBzYSxmYVNwb29uOnp5ZSxmYVV0ZW5zaWxTcG9vbjpoc2EsZmFDcmVkaXRDYXJkOkN5ZSxmYUNyZWRpdENhcmRBbHQ6ZnNhLGZhRmlsZUludm9pY2VEb2xsYXI6SmIsZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nOlR5ZSxmYVBhc3RhZmFyaWFuaXNtOm1zYSxmYU1hcnRpbmlHbGFzc0NpdHJ1czokeWUsZmFDb2NrdGFpbDpnc2EsZmFCdWxsaG9ybjpic2EsZmFCb3hUaXNzdWU6dnNhLGZhTWF0dHJlc3NQaWxsb3c6eHNhLGZhQ2hldnJvbkxlZnQ6eXNhLGZhQ2xvdWRNb29uUmFpbjp3c2EsZmFBcnJvd0Rvd24xOTpOb2UsZmFTb3J0TnVtZXJpY0FzYzprc2EsZmFTb3J0TnVtZXJpY0Rvd246U3NhLGZhSGFuZFNwb2NrOl9zYSxmYVdhbmRNYWdpY1NwYXJrbGVzOkR5ZSxmYU1hZ2ljV2FuZFNwYXJrbGVzOk1zYSxmYUNvbW1lbnRNZWRpY2FsOnpzYSxmYUJlbGxTbGFzaDpDc2EsZmFIYW5kc2hha2VTbGFzaDpSb2UsZmFIYW5kc2hha2VBbHRTbGFzaDpUc2EsZmFIYW5kc2hha2VTaW1wbGVTbGFzaDokc2EsZmFCb3R0bGVXYXRlcjpEc2EsZmFEaWNlRDIwOkxzYSxmYUFycm93RG93blpBOk9vZSxmYVNvcnRBbHBoYURlc2M6RXNhLGZhU29ydEFscGhhRG93bkFsdDpQc2EsZmFCcnVzaDpJc2EsZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQ6QXNhLGZhQXJyb3dVcFNob3J0V2lkZTpMeWUsZmFTb3J0QW1vdW50VXBBbHQ6TnNhLGZhR3JpcFZlcnRpY2FsOkV5ZSxmYUdyaWRWZXJ0aWNhbDpSc2EsZmFDYXJUdW5uZWw6T3NhLGZhQ2hhcnRDb2x1bW46RnNhLGZhQ2Fwcmljb3JuOkJzYSxmYVRydWNrQXJyb3dSaWdodDpIc2EsZmFUdjpGb2UsZmFUZWxldmlzaW9uOnFzYSxmYVR2QWx0OmpzYSxmYVNlY3Rpb246VnNhLGZhUGVhY2U6VXNhLGZhU3RhcjpXc2EsZmFGbGFnOkdzYSxmYVRyaWFuZ2xlRXhjbGFtYXRpb246Qm9lLGZhRXhjbGFtYXRpb25UcmlhbmdsZTpLc2EsZmFXYXJuaW5nOllzYSxmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uOlpzYSxmYUdyYWR1YXRpb25DYXA6UHllLGZhTW9ydGFyQm9hcmQ6WHNhLGZhU3RvcmU6UXNhLGZhVXNlckFzdHJvbmF1dDpKc2EsZmFCdWlsZGluZ0ZsYWc6ZWlhLGZhTXVnU2F1Y2VyOkl5ZSxmYUNvZmZlZTp0aWEsZmFMZW1vbjphaWEsZmFDYXJhdmFuOnNpYSxmYVE6aWlhLGZhTG9jazpyaWEsZmFQYWludFJvbGxlcjpvaWEsZmFWb2x1bWVIaWdoOkF5ZSxmYVZvbHVtZVVwOm5pYSxmYUZvbGRlclBsdXM6bGlhLGZhTWVyY3VyeTpjaWEsZmFBbmNob3I6ZGlhLGZhU3F1YXJlUGFya2luZzpOeWUsZmFQYXJraW5nOnVpYSxmYUhhbnVraWFoOnBpYSxmYVJvdGF0ZUxlZnQ6bFMsZmFSb3RhdGVCYWNrOmhpYSxmYVJvdGF0ZUJhY2t3YXJkOmZpYSxmYVVuZG9BbHQ6bWlhLGZhSGVhZGluZzpSeWUsZmFIZWFkZXI6Z2lhLGZhQ3Jvc3NoYWlyczpiaWEsZmFDaXJjbGVOb2Rlczp2aWEsZmFXaW5kb3dSZXN0b3JlOnhpYSxmYVI6eWlhLGZhRmlsdGVyQ2lyY2xlWG1hcms6d2lhLGZhR29wdXJhbTpraWEsZmFIZWFydENpcmNsZU1pbnVzOlNpYSxmYVN0YXJPZkxpZmU6X2lhLGZhQnVzaW5lc3NUaW1lOk95ZSxmYUJyaWVmY2FzZUNsb2NrOk1pYSxmYUZpcmVFeHRpbmd1aXNoZXI6emlhLGZhQXJyb3dEb3duTG9uZzpGeWUsZmFMb25nQXJyb3dEb3duOkNpYSxmYVVzZXJNaW51czpUaWEsZmFNb25leUNoZWNrOiRpYSxmYUhvdXNlTGFwdG9wOkJ5ZSxmYUxhcHRvcEhvdXNlOkRpYSxmYURvd25sb2FkOkxpYSxmYVNhZ2l0dGFyaXVzOkVpYSxmYUNvdWNoOlBpYSxmYVJvYWRMb2NrOklpYSxmYVNjaXNzb3JzOkh5ZSxmYUN1dDpBaWEsZmFCdWc6ZXYsZmFBcnJvd1JpZ2h0RnJvbUJyYWNrZXQ6cXllLGZhU2lnbk91dDpOaWEsZmFIYW5kSG9sZGluZ0hhbmQ6UmlhLGZhU3Ryb29wd2FmZWw6T2lhLGZhQ2hpbGQ6RmlhLGZhSWNlQ3JlYW06QmlhLGZhQ29tcHV0ZXJNb3VzZTpqeWUsZmFNb3VzZTpIaWEsZmFGYXVjZXQ6cWlhLGZhQXdhcmQ6amlhLGZhUGVyc29uRHJvd25pbmc6VmlhLGZhQ2FtZXJhUm90YXRlOlVpYSxmYUZhY2VHcmluSGVhcnRzOlZ5ZSxmYUdyaW5IZWFydHM6V2lhLGZhRmlsZUZyYWdtZW50OkdpYSxmYVBlcnNvbk1pbGl0YXJ5UmlmbGU6S2lhLGZhVG9nZ2xlT246WWlhLGZhTHVuZ3NWaXJ1czpaaWEsZmFUYWJsZVRlbm5pc1BhZGRsZUJhbGw6SG9lLGZhUGluZ1BvbmdQYWRkbGVCYWxsOlhpYSxmYVRhYmxlVGVubmlzOlFpYSxmYUJveGVzUGFja2luZzpKaWEsZmFQZXJzb25DaGFsa2JvYXJkOmVyYSxmYURpY2VUd286dHJhLGZhQXJyb3dSaWdodEFycm93TGVmdDpVeWUsZmFFeGNoYW5nZTphcmEsZmFGb290YmFsbDpXeWUsZmFGb290YmFsbEJhbGw6c3JhLGZhVHJ1Y2tNb25zdGVyOmlyYSxmYUFzdGVyaXNrOnJyYSxmYUJhdHRlcnlGdWxsOnFvZSxmYUJhdHRlcnk6b3JhLGZhQmF0dGVyeTU6bnJhLGZhQ2hpbGREcmVzczpscmEsZmFGYWNlS2lzc0JlYW06R3llLGZhS2lzc0JlYW06Y3JhLGZhVHJhc2hDYW5BcnJvd1VwOkt5ZSxmYVRyYXNoUmVzdG9yZUFsdDpkcmEsZmFGb250OnVyYSxmYUJvcmVIb2xlOnByYSxmYVZpcnVzQ292aWQ6aHJhLGZhRmlsZVBkZjpmcmEsZmFMYW5ndWFnZTptcmEsZmFTaGllbGRIYWx2ZWQ6WXllLGZhU2hpZWxkQWx0OmdyYSxmYUNhcmV0VXA6YnJhLGZhRmlsZVBlbjpaeWUsZmFGaWxlRWRpdDp2cmEsZmFQZXJzb25CaWtpbmc6WHllLGZhQmlraW5nOnhyYSxmYUJvb2tPcGVuUmVhZGVyOlF5ZSxmYUJvb2tSZWFkZXI6eXJhLGZhR2xhc3NXYXRlckRyb3BsZXQ6d3JhLGZhVG93ZXJCcm9hZGNhc3Q6SnllLGZhQnJvYWRjYXN0VG93ZXI6a3JhLGZhTWluaW1pemU6ZXdlLGZhQ29tcHJlc3NBcnJvd3NBbHQ6U3JhLGZhQXJyb3dSaWdodFRvQ2l0eTpfcmEsZmFMYXB0b3BNZWRpY2FsOk1yYSxmYUJyZWFkU2xpY2U6enJhLGZhR2xvYmU6Q3JhLGZhRm9sZGVyTWludXM6VHJhLGZhTWFza0ZhY2U6JHJhLGZhQm9uZzpEcmEsZmFSb2FkQnJpZGdlOkxyYSxmYUFycm93VXA5MTp0d2UsZmFTb3J0TnVtZXJpY1VwQWx0OkVyYSxmYU1vdW50YWluQ2l0eTpQcmEsZmFBcnJvd0Rvd245MTpqb2UsZmFTb3J0TnVtZXJpY0Rlc2M6SXJhLGZhU29ydE51bWVyaWNEb3duQWx0OkFyYSxmYUZhY2VHcmluV2lkZTphd2UsZmFHcmluQWx0Ok5yYSxmYVBvb3A6UnJhLGZhRGhhcm1hY2hha3JhOk9yYSxmYUJhdHRlcnlRdWFydGVyOnN3ZSxmYUJhdHRlcnkyOkZyYSxmYUFua2g6QnJhLGZhRGlhbW9uZDpIcmEsZmFTdWJzY3JpcHQ6cXJhLGZhUnVwZWVTaWduOml3ZSxmYVJ1cGVlOmpyYSxmYVBlcnNvblJpZmxlOlZyYSxmYUQ6VXJhLGZhU3F1YXJlTmZpOldyYSxmYVRlZXRoOkdyYSxmYU1hZ25pZnlpbmdHbGFzc0RvbGxhcjpyd2UsZmFTZWFyY2hEb2xsYXI6S3JhLGZhRHVtcHN0ZXJGaXJlOllyYSxmYVVwbG9hZDpacmEsZmFVc2VyU2xhc2g6Vm9lLGZhVXNlckFsdFNsYXNoOlhyYSxmYVVzZXJMYXJnZVNsYXNoOlFyYSxmYUFycm93TGVmdDpKcmEsZmFWaWFsVmlydXM6ZW9hLGZhQ2hlY2tEb3VibGU6dG9hLGZhUGF3OmFvYSxmYUhlbG1ldFNhZmV0eTpVb2UsZmFIYXJkSGF0OnNvYSxmYUhhdEhhcmQ6aW9hLGZhRTpyb2EsZmFGYWNlTGF1Z2hTcXVpbnQ6b3dlLGZhTGF1Z2hTcXVpbnQ6b29hLGZhRG93bkxlZnRBbmRVcFJpZ2h0VG9DZW50ZXI6bndlLGZhQ29tcHJlc3NBbHQ6bm9hLGZhR2lmdHM6bG9hLGZhQmVkOmNvYSxmYU1vbmV5QmlsbFRyYW5zZmVyOmRvYSxmYVBlcnNvblJ1bm5pbmc6bHdlLGZhUnVubmluZzp1b2EsZmFDaXJjbGVDaGV2cm9uRG93bjpjd2UsZmFDaGV2cm9uQ2lyY2xlRG93bjpwb2EsZmFVc2VyTnVyc2U6aG9hLGZhRmFjZUtpc3NXaW5rSGVhcnQ6ZHdlLGZhS2lzc1dpbmtIZWFydDpmb2EsZmFGaWxsOm1vYSxmYU1vbmV5QmlsbDFXYXZlOnV3ZSxmYU1vbmV5QmlsbFdhdmVBbHQ6Z29hLGZhTGFuZG1hcms6Ym9hLGZhTXVzaWM6dm9hLGZhQm9va01lZGljYWw6eG9hLGZhU2h1ZmZsZTpwd2UsZmFSYW5kb206eW9hLGZhVW5kZXJsaW5lOndvYSxmYUJ1aWxkaW5nVXNlcjprb2EsZmFSb2JvdDpTb2EsZmFQbHVzOmZmLGZhQWRkOl9vYSxmYUNvcHk6dHYsZmFDaGVzc0tpbmc6TW9hLGZhSG91c2VGbG9vZFdhdGVyOnpvYSxmYUJpdGNvaW5TaWduOkNvYSxmYUJveDpUb2EsZmFTcXVhcmVQbHVzOmh3ZSxmYVBsdXNTcXVhcmU6JG9hLGZhQXJyb3dzTGVmdFJpZ2h0OmZ3ZSxmYUFycm93c0g6RG9hLGZhRmFuOkxvYSxmYUNyb3c6RW9hLGZhRmlsZUNpcmNsZUNoZWNrOlBvYSxmYUxpbmtTbGFzaDpjUyxmYUNoYWluQnJva2VuOklvYSxmYUNoYWluU2xhc2g6QW9hLGZhVW5saW5rOk5vYSxmYUFycm93Um90YXRlUmlnaHQ6ZFMsZmFBcnJvd1JpZ2h0Um90YXRlOlJvYSxmYUFycm93Um90YXRlRm9yd2FyZDpPb2EsZmFSZWRvOkZvYSxmYVBlbkNsaXA6bXdlLGZhUGVuQWx0OkJvYSxmYURvb3JDbG9zZWQ6SG9hLGZhQXJyb3dEb3duV2lkZVNob3J0OldvZSxmYVNvcnRBbW91bnRBc2M6cW9hLGZhU29ydEFtb3VudERvd246am9hLGZhQ2FyZXREb3duOlZvYSxmYUs6VW9hLGZhQ2hlY2tUb1Nsb3Q6Z3dlLGZhVm90ZVllYTpXb2EsZmFGaXNoRmluczpHb2EsZmFDb21wcmVzczpLb2EsZmFBcnJvd1VwQVo6YndlLGZhU29ydEFscGhhVXA6WW9hLGZhVXNlckdyYWR1YXRlOlpvYSxmYUZpbGVDb2RlOlhvYSxmYVNvYXA6UW9hLGZhUmVjeWNsZTpKb2EsZmFGYWNlR3Jpbldpbms6dndlLGZhR3Jpbldpbms6ZW5hLGZhV2F0ZXJMYWRkZXI6R29lLGZhTGFkZGVyV2F0ZXI6dG5hLGZhU3dpbW1pbmdQb29sOmFuYSxmYUdlbWluaTpzbmEsZmFUb3dlckNlbGw6aW5hLGZhQ29sb25TaWduOnJuYSxmYUxhcHRvcEZpbGU6b25hLGZhQmFoYWk6eHdlLGZhSGF5a2FsOm5uYSxmYU1vbmV5QmlsbDE6eXdlLGZhTW9uZXlCaWxsQWx0OmxuYSxmYUNsb3VkQm9sdDp3d2UsZmFUaHVuZGVyc3Rvcm06Y25hLGZhRXRoZXJuZXQ6ZG5hLGZhSHJ5dm5pYVNpZ246a3dlLGZhSHJ5dm5pYTp1bmEsZmFFeWVTbGFzaDphdixmYUNhcnRGbGF0YmVkU3VpdGNhc2U6U3dlLGZhTHVnZ2FnZUNhcnQ6cG5hLGZhUmFkaWF0aW9uOmhuYSxmYUZpbGVXb3JkOmZuYSxmYUJlZFB1bHNlOl93ZSxmYVByb2NlZHVyZXM6bW5hLGZhVGVudHM6Z25hLGZhTXVnSG90OnN2LGZhQm9sdDpNd2UsZmFaYXA6Ym5hLGZhSmFyOnZuYSxmYVRydWNrUGxhbmU6eG5hLGZhSGFuZEhvbGRpbmdIZWFydDp5bmEsZmFBcnJvd1JvdGF0ZUxlZnQ6TmIsZmFBcnJvd0xlZnRSb3RhdGU6d25hLGZhQXJyb3dSb3RhdGVCYWNrOmtuYSxmYUFycm93Um90YXRlQmFja3dhcmQ6U25hLGZhVW5kbzpfbmEsZmFGYWNlQW5ncnk6endlLGZhQW5ncnk6TW5hLGZhQnVyc3Q6em5hLGZhWjpDbmEsZmFCYW5kYWdlOkN3ZSxmYUJhbmRBaWQ6VG5hLGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbjokbmEsZmFCdXNTaWRlOkRuYSxmYUJ1Z3M6TG5hLGZhQmVlck11Z0VtcHR5OlR3ZSxmYUJlZXI6RW5hLGZhUGVyc29uQ2lyY2xlQ2hlY2s6UG5hLGZhU3RhcGxlcjpJbmEsZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjazpBbmEsZmFOYWlyYVNpZ246Tm5hLGZhV2lmaTpLb2UsZmFXaWZpMzpSbmEsZmFXaWZpU3Ryb25nOk9uYSxmYU1vbmV5Q2hlY2tEb2xsYXI6bWYsZmFNb25leUNoZWNrQWx0OkZuYSxmYUV5ZUxvd1Zpc2lvbjokd2UsZmFMb3dWaXNpb246Qm5hLGZhQ2lyY2xlQXJyb3dVcDpEd2UsZmFBcnJvd0NpcmNsZVVwOkhuYSxmYUNhbWVyYVJldHJvOnFuYSxmYUNhcHN1bGVzOmpuYSxmYVBvbzpWbmEsZmFWb2x1bWU6THdlLGZhVm9sdW1lTWVkaXVtOlVuYSxmYUVsZXZhdG9yOlduYSxmYVRhZzpHbmEsZmFGaWxlQ2lyY2xlTWludXM6S25hLGZhRG93bkxvbmc6RXdlLGZhTG9uZ0Fycm93QWx0RG93bjpZbmEsZmFDb21wYWN0RGlzYzpabmEsZmFTdWl0Y2FzZVJvbGxpbmc6WG5hLGZhQm9va1F1cmFuOlB3ZSxmYVF1cmFuOlFuYSxmYVBob25lU2xhc2g6Sm5hLGZhUm9hZENpcmNsZUNoZWNrOmVsYSxmYVNob3BMb2NrOnRsYSxmYUltYWdlUG9ydHJhaXQ6SXdlLGZhUG9ydHJhaXQ6YWxhLGZhQnJpZGdlTG9jazpzbGEsZmFIYW1tZXI6aWxhLGZhQXJyb3dVcDE5OkF3ZSxmYVNvcnROdW1lcmljVXA6cmxhLGZhQ2hlc3NLbmlnaHQ6b2xhLGZhSG91c2VGbG9vZFdhdGVyQ2lyY2xlQXJyb3dSaWdodDpubGEsZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlOmdmLGZhRXh0ZXJuYWxMaW5rOmxsYSxmYUFycm93RG93blVwQWNyb3NzTGluZTpjbGEsZmFGYWNlR3JpbkJlYW06TndlLGZhR3JpbkJlYW06ZGxhLGZhUmVjdGFuZ2xlQWQ6UndlLGZhQWQ6dWxhLGZhQm9va1RhbmFraDpPd2UsZmFUYW5ha2g6cGxhLGZhSG90VHViUGVyc29uOkZ3ZSxmYUhvdFR1YjpobGEsZmFGaWxlSGFsZkRhc2hlZDpmbGEsZmFPdXRkZW50OkJ3ZSxmYURlZGVudDptbGEsZmFIYW5kUGVhY2U6Z2xhLGZhSGVhZFNpZGVWaXJ1czpibGEsZmFDb21wYXNzOnZsYSxmYVBlbk5pYjp4bGEsZmFUZW50QXJyb3dzRG93bjp5bGEsZmFGb3J3YXJkRmFzdDpId2UsZmFGYXN0Rm9yd2FyZDp3bGEsZmFDcm9wOmtsYSxmYVdoaXNrZXlHbGFzczpxd2UsZmFHbGFzc1doaXNrZXk6U2xhLGZhU3F1YXJlOl9sYSxmYUZhY2VHcmluOmp3ZSxmYUdyaW46TWxhLGZhRmlsZUNvbnRyYWN0OnpsYSxmYUFuZ2xlVXA6Q2xhLGZhRmFjZVNtaWxlOlZ3ZSxmYVNtaWxlOlRsYSxmYVBlcnNvbkRyZXNzQnVyc3Q6JGxhLGZhRGl2aWRlOkRsYSxmYUNvZGVGb3JrOkxsYSxmYUhvdXNlRmxhZzpFbGEsZmFCdWlsZGluZ0NvbHVtbnM6UmIsZmFCYW5rOlBsYSxmYUluc3RpdHV0aW9uOklsYSxmYU11c2V1bTpBbGEsZmFVbml2ZXJzaXR5Ok5sYSxmYVJ1ZzpSbGEsZmFDb2RlTWVyZ2U6T2xhLGZhSG91c2VUc3VuYW1pOkZsYSxmYU1hZ25pZnlpbmdHbGFzc0NoYXJ0OkJsYSxmYVVtYnJlbGxhOkhsYSxmYUhpbGxSb2Nrc2xpZGU6cWxhLGZhVXNlclNlY3JldDpqbGEsZmFQYWdlcjpWbGEsZmFCcmllZmNhc2U6VWxhLGZhVHJvd2VsQnJpY2tzOldsYSxmYVNvY2tzOkdsYSxmYVQ6S2xhLGZhTWljcm9jaGlwOllsYSxmYVRydWNrTWVkaWNhbDpVd2UsZmFBbWJ1bGFuY2U6WmxhLGZhT206WGxhLGZhTW9zcXVpdG9OZXQ6UWxhLGZhUHJlc2NyaXB0aW9uQm90dGxlOkpsYSxmYVVzZXJzR2VhcjpXd2UsZmFVc2Vyc0NvZzplY2EsZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb246dGNhLGZhUGF1c2U6YWNhLGZhU3RhZmZTbmFrZTp1UyxmYVJvZEFzY2xlcGl1czpzY2EsZmFSb2RTbmFrZTppY2EsZmFTdGFmZkFlc2N1bGFwaXVzOnJjYSxmYVBpZ2d5QmFuazpvY2EsZmFNb251bWVudDpuY2EsZmFBbmdsZXNSaWdodDpHd2UsZmFBbmdsZURvdWJsZVJpZ2h0OmxjYSxmYURlc2t0b3A6YmYsZmFEZXNrdG9wQWx0OmNjYSxmYVBsYW5lQ2lyY2xlWG1hcms6ZGNhLGZhUmV0d2VldDp1Y2EsZmFVc2VyR2VhcjpLd2UsZmFVc2VyQ29nOnBjYSxmYUJvcmRlckFsbDpoY2EsZmFDb2luczpmY2EsZmFNYXJzU3Ryb2tlOm1jYSxmYUhhbmRzaGFrZUFuZ2xlOll3ZSxmYUhhbmRzSGVscGluZzpnY2EsZmFBcnJvd0Rvd246YmNhLGZhTG9jYXRpb25Eb3Q6WndlLGZhTWFwTWFya2VyQWx0OnZjYSxmYVBsdWdDaXJjbGVFeGNsYW1hdGlvbjp4Y2EsZmFDb29raWVCaXRlOnljYSxmYVNjcmV3ZHJpdmVyV3JlbmNoOlh3ZSxmYVRvb2xzOndjYSxmYUluZGVudDprY2EsZmFCYXJzOlF3ZSxmYU5hdmljb246U2NhLGZhSGFuZHNQcmF5aW5nOkp3ZSxmYVByYXlpbmdIYW5kczpfY2EsZmFWaXJ1c2VzOk1jYSxmYVNjaG9vbEZsYWc6emNhLGZhVHJhZGVtYXJrOkNjYSxmYUZpcmVCdXJuZXI6VGNhLGZhRmFjZVNtaWxlQmVhbTpla2UsZmFTbWlsZUJlYW06JGNhLGZhVGVudEFycm93TGVmdFJpZ2h0OkRjYSxmYVJvdXRlOkxjYSxmYUFuZ2xlc1VwOnRrZSxmYUFuZ2xlRG91YmxlVXA6RWNhLGZhQnVja2V0OlBjYSxmYUxlc3NUaGFuRXF1YWw6SWNhLGZhRm9sZGVyQ2xvc2VkOkFjYSxmYVBlcnNvblRocm91Z2hXaW5kb3c6TmNhLGZhU2Nob29sTG9jazpSY2EsZmFQZXJzb25CdXJzdDpPY2EsZmFMZWZ0TG9uZzpha2UsZmFMb25nQXJyb3dBbHRMZWZ0OkZjYSxmYUxvY2F0aW9uQ3Jvc3NoYWlyczpza2UsZmFMb2NhdGlvbjpCY2EsZmFQZXJzb25Eb3RzRnJvbUxpbmU6aWtlLGZhRGlhZ25vc2VzOkhjYSxmYUdhdWdlU2ltcGxlSGlnaDpZb2UsZmFUYWNob21ldGVyOnFjYSxmYVRhY2hvbWV0ZXJGYXN0OmpjYSxmYUFuZ2xlc0xlZnQ6cmtlLGZhQW5nbGVEb3VibGVMZWZ0OlZjYSxmYVVwRG93bjpva2UsZmFBcnJvd3NBbHRWOlVjYSxmYUJhdHRlcnlFbXB0eTpua2UsZmFCYXR0ZXJ5MDpXY2EsZmFLZXlib2FyZDpHY2EsZmFDb29raWU6S2NhLGZhU3RvcHdhdGNoOlljYSxmYUVqZWN0OlpjYSxmYVNhdGVsbGl0ZURpc2g6WGNhLGZhRmFjZVJvbGxpbmdFeWVzOmxrZSxmYU1laFJvbGxpbmdFeWVzOlFjYSxmYUxpc3RDaGVjazpja2UsZmFUYXNrczpKY2EsZmFTYWNrWG1hcms6ZTFhLGZhSGFzaHRhZzp0MWEsZmFUcmFpbjphMWEsZmFHYW1lcGFkOnMxYSxmYUZpbGVFeHBvcnQ6ZGtlLGZhQXJyb3dSaWdodEZyb21GaWxlOmkxYSxmYUZhY2VHcmltYWNlOnVrZSxmYUdyaW1hY2U6cjFhLGZhVHJhaW5TdWJ3YXk6cGtlLGZhU3Vid2F5Om8xYSxmYUNpcmNsZURvdDpoa2UsZmFEb3RDaXJjbGU6bjFhLGZhT2JqZWN0R3JvdXA6bDFhLGZhU2hpcDpjMWEsZmFDOmQxYSxmYVNxdWFyZVBob25lOmZrZSxmYVBob25lU3F1YXJlOnUxYSxmYVJ1bGVyQ29tYmluZWQ6cDFhLGZhQXJyb3dzUm90YXRlOlpvZSxmYVJlZnJlc2g6aDFhLGZhU3luYzpmMWEsZmFQZXJzb25EcmVzczpta2UsZmFGZW1hbGU6bTFhLGZhQm9va09wZW46ZzFhLGZhRm9sZGVyVHJlZTpiMWEsZmFWaXJnbzp2MWEsZmFCb3hBcmNoaXZlOmdrZSxmYUFyY2hpdmU6eDFhLGZhVGVudEFycm93RG93blRvTGluZTp5MWEsZmFRcmNvZGU6dzFhLGZhRHJhZ29uOmsxYSxmYUhvdXJnbGFzc0VuZDpia2UsZmFIb3VyZ2xhc3MzOlMxYSxmYUdyaXA6aGgsZmFHcmlkSG9yaXpvbnRhbDpfMWEsZmFHcmlwSG9yaXpvbnRhbDpNMWEsZmFCb3JkZXJUb3BMZWZ0OnZrZSxmYUJvcmRlclN0eWxlOnoxYSxmYUxpc3RVbDp4a2UsZmFMaXN0RG90czpDMWEsZmFQZW9wbGVSb2JiZXJ5OlQxYSxmYU1vYmlsZUJ1dHRvbjokMWEsZmFBcnJvd0Rvd25BWjpYb2UsZmFTb3J0QWxwaGFBc2M6RDFhLGZhU29ydEFscGhhRG93bjpMMWEsZmFNb25leUJpbGw6RTFhLGZhQ2lyY2xlTWludXM6eWtlLGZhTWludXNDaXJjbGU6UDFhLGZhQXJyb3dQb2ludGVyOndrZSxmYU1vdXNlUG9pbnRlcjpJMWEsZmFTcXVhcmVTaGFyZU5vZGVzOmtrZSxmYVNoYXJlQWx0U3F1YXJlOkExYSxmYVRhYmxlQ2VsbHNMYXJnZTpTa2UsZmFUaExhcmdlOk4xYSxmYUNhdDpSMWEsZmFDYWxlbmRhcldlZWs6TzFhLGZhQ29kZUNvbXBhcmU6RjFhLGZhTGVvOkIxYSxmYVJvYWRDaXJjbGVYbWFyazpIMWEsZmFQYWxsZXQ6cTFhLGZhQ2FrZUNhbmRsZXM6UW9lLGZhQmlydGhkYXlDYWtlOmoxYSxmYUNha2U6VjFhLGZhQnVnU2xhc2g6VTFhLGZhVGFycDpXMWEsZmFEaWFncmFtUHJlZGVjZXNzb3I6RzFhLGZhRmFjZUZsdXNoZWQ6X2tlLGZhRmx1c2hlZDpLMWEsZmFEaWFncmFtTmV4dDpZMWEsZmFBbmNob3JDaXJjbGVYbWFyazpaMWEsZmFQZXJzb25DaXJjbGVYbWFyazpYMWEsZmFTcGE6UTFhLGZhQXJpZXM6SjFhLGZhQmFyc1Byb2dyZXNzOk1rZSxmYVRhc2tzQWx0OmUyYSxmYUhlYXJ0Q2lyY2xlQ2hlY2s6dDJhLGZhTWFyc1N0cm9rZVJpZ2h0OnprZSxmYU1hcnNTdHJva2VIOmEyYSxmYVRvd2VyT2JzZXJ2YXRpb246czJhLGZhU3RlcmxpbmdTaWduOkpvZSxmYUdicDppMmEsZmFQb3VuZFNpZ246cjJhLGZhRmF1Y2V0RHJpcDpvMmEsZmFDaXJjbGVJbmZvOnZmLGZhSW5mb0NpcmNsZTpuMmEsZmFGZWF0aGVyOmwyYSxmYUJvd2xSaWNlOmMyYSxmYVN0YXJIYWxmU3Ryb2tlOkNrZSxmYVN0YXJIYWxmQWx0OmQyYSxmYVRlbXBlcmF0dXJlQXJyb3dEb3duOlRrZSxmYVRlbXBlcmF0dXJlRG93bjp1MmEsZmFNYXNrVmVudGlsYXRvcjpwMmEsZmFGaWxlVmlkZW86aDJhLGZhQXJyb3dUcmVuZERvd246ZjJhLGZhT2lsQ2FuOm0yYSxmYVBlb3BsZUNhcnJ5Qm94OiRrZSxmYVBlb3BsZUNhcnJ5OmcyYSxmYUNoYWlyOmIyYSxmYVdpbmQ6djJhLGZhTGF5ZXJHcm91cDp4MmEsZmFIZWFkU2lkZU1hc2s6eTJhLGZhSGFuZHM6ZW5lLGZhU2lnbkxhbmd1YWdlOncyYSxmYVNpZ25pbmc6azJhLGZhVGFibGV0czpTMmEsZmFXZWlnaHRIYW5naW5nOl8yYSxmYURpY2U6TTJhLGZhU2hvcFNsYXNoOkRrZSxmYVN0b3JlQWx0U2xhc2g6ejJhLGZhU29ydERvd246TGtlLGZhU29ydERlc2M6QzJhLGZhUGVzZXRhU2lnbjpUMmEsZmFUYWJsZXRTY3JlZW5CdXR0b246RWtlLGZhVGFibGV0QWx0OiQyYSxmYUhhbmRIb2xkaW5nRG9sbGFyOlBrZSxmYUhhbmRIb2xkaW5nVXNkOkQyYSxmYVNoaWVsZDpJa2UsZmFTaGllbGRCbGFuazpMMmEsZmFGYWNlTGF1Z2g6QWtlLGZhTGF1Z2g6RTJhLGZhSGFuZHNIb2xkaW5nOlAyYSxmYUNhcnRTaG9wcGluZzpOa2UsZmFTaG9wcGluZ0NhcnQ6STJhLGZhT2N0YWdvbjpBMmEsZmFIYW5kUG9pbnRlcjpOMmEsZmFSZWdpc3RlcmVkOlIyYSxmYUhvdXNlU2lnbmFsOk8yYSxmYUJhbmdsYWRlc2hpVGFrYVNpZ246RjJhfX0pO3ZhciBwUyxPa2U9ZygoKT0+e3BTPXt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIiwic3Ryb2tlLXdpZHRoIjoyLCJzdHJva2UtbGluZWNhcCI6InJvdW5kIiwic3Ryb2tlLWxpbmVqb2luIjoicm91bmQifX0pO3ZhciBCMmEsajEsRmtlPWcoKCk9PntPa2UoKTtCMmE9aSgoW3MsZSx0XSk9PntsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixzKTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChyPT57YS5zZXRBdHRyaWJ1dGUocixTdHJpbmcoZVtyXSkpfSksdD8ubGVuZ3RoJiZ0LmZvckVhY2gocj0+e2xldCBuPUIyYShyKTthLmFwcGVuZENoaWxkKG4pfSksYX0sImNyZWF0ZVNWR0VsZW1lbnQiKSxqMT1pKChzLGU9e30pPT57bGV0IGE9ey4uLnBTLC4uLmV9O3JldHVybiBCMmEoWyJzdmciLGEsc10pfSwiY3JlYXRlRWxlbWVudCIpfSk7dmFyIEJrZSxIMmE9ZygoKT0+e0JrZT1pKHM9Pntmb3IobGV0IGUgaW4gcylpZihlLnN0YXJ0c1dpdGgoImFyaWEtIil8fGU9PT0icm9sZSJ8fGU9PT0idGl0bGUiKXJldHVybiEwO3JldHVybiExfSwiaGFzQTExeVByb3AiKX0pO3ZhciBIa2UscTJhPWcoKCk9PntIa2U9aSgoLi4ucyk9PnMuZmlsdGVyKChlLHQsYSk9PiEhZSYmZS50cmltKCkhPT0iIiYmYS5pbmRleE9mKGUpPT09dCkuam9pbigiICIpLnRyaW0oKSwibWVyZ2VDbGFzc2VzIil9KTt2YXIgcWtlLGoyYT1nKCgpPT57cWtlPWkocz0+cy5yZXBsYWNlKC9eKFtBLVpdKXxbXHMtX10rKFx3KS9nLChlLHQsYSk9PmE/YS50b1VwcGVyQ2FzZSgpOnQudG9Mb3dlckNhc2UoKSksInRvQ2FtZWxDYXNlIil9KTt2YXIgamtlLFYyYT1nKCgpPT57ajJhKCk7amtlPWkocz0+e2xldCBlPXFrZShzKTtyZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpfSwidG9QYXNjYWxDYXNlIil9KTt2YXIgVTJhLFZrZSx0bmUsVzJhPWcoKCk9PntGa2UoKTtPa2UoKTtIMmEoKTtxMmEoKTtWMmEoKTtVMmE9aShzPT5BcnJheS5mcm9tKHMuYXR0cmlidXRlcykucmVkdWNlKChlLHQpPT4oZVt0Lm5hbWVdPXQudmFsdWUsZSkse30pLCJnZXRBdHRycyIpLFZrZT1pKHM9PnR5cGVvZiBzPT0ic3RyaW5nIj9zOiFzfHwhcy5jbGFzcz8iIjpzLmNsYXNzJiZ0eXBlb2Ygcy5jbGFzcz09InN0cmluZyI/cy5jbGFzcy5zcGxpdCgiICIpOnMuY2xhc3MmJkFycmF5LmlzQXJyYXkocy5jbGFzcyk/cy5jbGFzczoiIiwiZ2V0Q2xhc3NOYW1lcyIpLHRuZT1pKChzLHtuYW1lQXR0cjplLGljb25zOnQsYXR0cnM6YX0pPT57bGV0IHI9cy5nZXRBdHRyaWJ1dGUoZSk7aWYocj09bnVsbClyZXR1cm47bGV0IG49amtlKHIpLG89dFtuXTtpZighbylyZXR1cm4gY29uc29sZS53YXJuKGAke3Mub3V0ZXJIVE1MfSBpY29uIG5hbWUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcHJvdmlkZWQgaWNvbnMgb2JqZWN0LmApO2xldCBsPVUyYShzKSxwPUJrZShsKT97fTp7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LGQ9ey4uLnBTLCJkYXRhLWx1Y2lkZSI6ciwuLi5wLC4uLmEsLi4ubH0sdT1Wa2UobCksYz1Wa2UoYSksYj1Ia2UoImx1Y2lkZSIsYGx1Y2lkZS0ke3J9YCwuLi51LC4uLmMpO2ImJk9iamVjdC5hc3NpZ24oZCx7Y2xhc3M6Yn0pO2xldCB2PWoxKG8sZCk7cmV0dXJuIHMucGFyZW50Tm9kZT8ucmVwbGFjZUNoaWxkKHYscyl9LCJyZXBsYWNlRWxlbWVudCIpfSk7dmFyIGhTLFVrZT1nKCgpPT57aFM9W1sicGF0aCIse2Q6Im0xNCAxMiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNlY3In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciBmUyxXa2U9ZygoKT0+e2ZTPVtbInBhdGgiLHtkOiJtMTQgMTEgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV19KTt2YXIgbVMsR2tlPWcoKCk9PnttUz1bWyJwYXRoIix7ZDoibTE1IDE2IDIuNTM2LTcuMzI4YTEuMDIgMS4wMiAxIDAgMSAxLjkyOCAwTDIyIDE2In1dLFsicGF0aCIse2Q6Ik0xNS42OTcgMTRoNS42MDYifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dfSk7dmFyIGdTLEtrZT1nKCgpPT57Z1M9W1siY2lyY2xlIix7Y3g6IjE2IixjeToiNCIscjoiMSJ9XSxbInBhdGgiLHtkOiJtMTggMTkgMS03LTYgMSJ9XSxbInBhdGgiLHtkOiJtNSA4IDMtMyA1LjUgMy0yLjM2IDMuNSJ9XSxbInBhdGgiLHtkOiJNNC4yNCAxNC41YTUgNSAwIDAgMCA2Ljg4IDYifV0sWyJwYXRoIix7ZDoiTTEzLjc2IDE3LjVhNSA1IDAgMCAwLTYuODgtNiJ9XV19KTt2YXIgYlMsWWtlPWcoKCk9PntiUz1bWyJwYXRoIix7ZDoiTTIyIDEyaC0yLjQ4YTIgMiAwIDAgMC0xLjkzIDEuNDZsLTIuMzUgOC4zNmEuMjUuMjUgMCAwIDEtLjQ4IDBMOS4yNCAyLjE4YS4yNS4yNSAwIDAgMC0uNDggMGwtMi4zNSA4LjM2QTIgMiAwIDAgMSA0LjQ5IDEySDIifV1dfSk7dmFyIHZTLFprZT1nKCgpPT57dlM9W1sicGF0aCIse2Q6Ik0xOCAxNy41YTIuNSAyLjUgMCAxIDEtNCAyLjAzVjEyIn1dLFsicGF0aCIse2Q6Ik02IDEySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOGgxMiJ9XSxbInBhdGgiLHtkOiJNNi42IDE1LjU3MkEyIDIgMCAxIDAgMTAgMTd2LTUifV1dfSk7dmFyIHhTLFhrZT1nKCgpPT57eFM9W1sicGF0aCIse2Q6Ik01IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC0xIn1dLFsicGF0aCIse2Q6Im0xMiAxNSA1IDZIN1oifV1dfSk7dmFyIHhmLFFrZT1nKCgpPT57eGY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV0sWyJwYXRoIix7ZDoibTkgMTMgMiAyIDQtNCJ9XV19KTt2YXIgeWYsSmtlPWcoKCk9Pnt5Zj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXX0pO3ZhciB5UyxlU2U9ZygoKT0+e3lTPVtbInBhdGgiLHtkOiJNNi44NyA2Ljg3YTggOCAwIDEgMCAxMS4yNiAxMS4yNiJ9XSxbInBhdGgiLHtkOiJNMTkuOSAxNC4yNWE4IDggMCAwIDAtOS4xNS05LjE1In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4yNiAxOC42NyA0IDIxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTQgNCAyIDYifV1dfSk7dmFyIHdmLHRTZT1nKCgpPT57d2Y9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XV19KTt2YXIgd1MsYVNlPWcoKCk9Pnt3Uz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNMTIgOXY0bDIgMiJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XV19KTt2YXIga1Msc1NlPWcoKCk9PntrUz1bWyJwYXRoIix7ZDoiTTExIDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjFjMC0yLjUgMi0yLjUgMi01In1dLFsicGF0aCIse2Q6Im0xOSA4LS44IDNhMS4yNSAxLjI1IDAgMCAxLTEuMiAxSDdhMS4yNSAxLjI1IDAgMCAxLTEuMi0xTDUgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM2ExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNiAyMWMwLTIuNSAyLTIuNSAyLTUifV1dfSk7dmFyIFNTLGlTZT1nKCgpPT57U1M9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjExIDMgMTEgMTEgMTQgOCAxNyAxMSAxNyAzIn1dXX0pO3ZhciBfUyxyU2U9ZygoKT0+e19TPVtbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNCJ9XSxbInBhdGgiLHtkOiJNMTAgOFY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjQifV0sWyJwYXRoIix7ZDoiTTIwIDE2djFhMiAyIDAgMCAxLTIgMmgtMmEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0xNCA4VjdjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgTVMsb1NlPWcoKCk9PntNUz1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTggMTBINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0In1dLFsicGF0aCIse2Q6Ik0xNiAxMGg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC00In1dLFsicGF0aCIse2Q6Ik04IDIwSDdhMiAyIDAgMCAxLTItMnYtMmMwLTEuMS45LTIgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aDFhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJoLTEifV1dfSk7dmFyIHpTLG5TZT1nKCgpPT57elM9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiI5Iix4OiIxNCIseToiOSIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV1dfSk7dmFyIENTLGxTZT1nKCgpPT57Q1M9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNSJ9XSxbInBhdGgiLHtkOiJNMTcgN1YyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0zIn1dLFsicGF0aCIse2Q6Ik03IDVWMiJ9XV19KTt2YXIgVFMsY1NlPWcoKCk9PntUUz1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjkiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJWMiJ9XV19KTt2YXIgJFMsZFNlPWcoKCk9PnskUz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjQiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNCIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIwIDJ2MjAifV1dfSk7dmFyIERTLHVTZT1nKCgpPT57RFM9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MjAifV1dfSk7dmFyIExTLHBTZT1nKCgpPT57TFM9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIwIn1dXX0pO3ZhciBFUyxoU2U9ZygoKT0+e0VTPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjEyIix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMnYyMCJ9XV19KTt2YXIgUFMsZlNlPWcoKCk9PntQUz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjYiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMnYyMCJ9XV19KTt2YXIgSVMsbVNlPWcoKCk9PntJUz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjkiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDIyVjIifV0sWyJwYXRoIix7ZDoiTTIwIDIyVjIifV1dfSk7dmFyIEFTLGdTZT1nKCgpPT57QVM9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiI5Iix4OiIxNCIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDJIMiJ9XV19KTt2YXIgTlMsYlNlPWcoKCk9PntOUz1bWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiNiIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI2Iix4OiI2Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAydjIwIn1dXX0pO3ZhciBSUyx2U2U9ZygoKT0+e1JTPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE1Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAydjIwIn1dXX0pO3ZhciBPUyx4U2U9ZygoKT0+e09TPVtbInBhdGgiLHtkOiJNMjIgMTdoLTMifV0sWyJwYXRoIix7ZDoiTTIyIDdoLTUifV0sWyJwYXRoIix7ZDoiTTUgMTdIMiJ9XSxbInBhdGgiLHtkOiJNNyA3SDIifV0sWyJyZWN0Iix7eDoiNSIseToiMTQiLHdpZHRoOiIxNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI0Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIEZTLHlTZT1nKCgpPT57RlM9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDIwIn1dXX0pO3ZhciBCUyx3U2U9ZygoKT0+e0JTPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNMiA0aDIwIn1dXX0pO3ZhciBIUyxrU2U9ZygoKT0+e0hTPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XV19KTt2YXIgcVMsU1NlPWcoKCk9PntxUz1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjEyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjJoMjAifV1dfSk7dmFyIGpTLF9TZT1nKCgpPT57alM9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJoMjAifV1dfSk7dmFyIFZTLE1TZT1nKCgpPT57VlM9W1sicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI5IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMjIgNEgyIn1dXX0pO3ZhciBVUyx6U2U9ZygoKT0+e1VTPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XSxbInBhdGgiLHtkOiJNMiAzaDIwIn1dXX0pO3ZhciBXUyxDU2U9ZygoKT0+e1dTPVtbInBhdGgiLHtkOiJNMTAgMTBINiJ9XSxbInBhdGgiLHtkOiJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy4yOGExIDEgMCAwIDAtLjY4NC0uOTQ4bC0xLjkyMy0uNjQxYTEgMSAwIDAgMS0uNTc4LS41MDJsLTEuNTM5LTMuMDc2QTEgMSAwIDAgMCAxNi4zODIgOEgxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djQifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgR1MsVFNlPWcoKCk9PntHUz1bWyJwYXRoIix7ZDoiTTEwIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxN2MtNS0zLTctNy03LTlhMiAyIDAgMCAxIDQgMGMwIDIuNS01IDIuNS01IDYgMCAxLjcgMS4zIDMgMyAzIDIuOCAwIDUtMi4yIDUtNSJ9XV19KTt2YXIgS1MsJFNlPWcoKCk9PntLUz1bWyJwYXRoIix7ZDoiTTE2IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTJhOCA4IDAgMCAxLTggOEE0LjUgNC41IDAgMCAxIDUgMTUuNWMwLTYgOC00IDgtOC41YTMgMyAwIDEgMC02IDBjMCAzIDIuNSA4LjUgMTIgMTMifV1dfSk7dmFyIFlTLERTZT1nKCgpPT57WVM9W1sicGF0aCIse2Q6Ik0xMCAydjUuNjMyYzAgLjQyNC0uMjcyLjc5NS0uNjUzLjk4MkE2IDYgMCAwIDAgNiAxNGMuMDA2IDQgMyA3IDUgOCJ9XSxbInBhdGgiLHtkOiJNMTAgNUg4YTIgMiAwIDAgMCAwIDRoLjY4In1dLFsicGF0aCIse2Q6Ik0xNCAydjUuNjMyYzAgLjQyNC4yNzIuNzk1LjY1Mi45ODJBNiA2IDAgMCAxIDE4IDE0YzAgNC0zIDctNSA4In1dLFsicGF0aCIse2Q6Ik0xNCA1aDJhMiAyIDAgMCAxIDAgNGgtLjY4In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg2In1dLFsicGF0aCIse2Q6Ik05IDJoNiJ9XV19KTt2YXIgWlMsTFNlPWcoKCk9PntaUz1bWyJwYXRoIix7ZDoiTTEyIDZ2MTYifV0sWyJwYXRoIix7ZDoibTE5IDEzIDItMWE5IDkgMCAwIDEtMTggMGwyIDEifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV1dfSk7dmFyIFhTLEVTZT1nKCgpPT57WFM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJwYXRoIix7ZDoiTTcuNSA4IDEwIDkifV0sWyJwYXRoIix7ZDoibTE0IDkgMi41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGguMDEifV1dfSk7dmFyIFFTLFBTZT1nKCgpPT57UVM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDE1aDgifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDIifV1dfSk7dmFyIEpTLElTZT1nKCgpPT57SlM9W1sicGF0aCIse2Q6Ik0yIDEyIDcgMiJ9XSxbInBhdGgiLHtkOiJtNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xMiAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Ik00LjUgN2gxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XV19KTt2YXIgZV8sQVNlPWcoKCk9PntlXz1bWyJwYXRoIix7ZDoiTTcgMTBINmE0IDQgMCAwIDEtNC00IDEgMSAwIDAgMSAxLTFoNCJ9XSxbInBhdGgiLHtkOiJNNyA1YTEgMSAwIDAgMSAxLTFoMTNhMSAxIDAgMCAxIDEgMSA3IDcgMCAwIDEtNyA3SDhhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNSAyMGEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgMyAxIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMSJ9XV19KTt2YXIgdF8sTlNlPWcoKCk9Pnt0Xz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE0LjMxIDggNS43NCA5Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDhoMTEuNDgifV0sWyJwYXRoIix7ZDoibTcuMzggMTIgNS43NC05Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDE2IDMuOTUgNi4wNiJ9XSxbInBhdGgiLHtkOiJNMTQuMzEgMTZIMi44MyJ9XSxbInBhdGgiLHtkOiJtMTYuNjIgMTItNS43NCA5Ljk0In1dXX0pO3ZhciBhXyxSU2U9ZygoKT0+e2FfPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgOGguMDEifV1dfSk7dmFyIHNfLE9TZT1nKCgpPT57c189W1sicmVjdCIse3g6IjIiLHk6IjQiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDR2NCJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicGF0aCIse2Q6Ik02IDR2NCJ9XV19KTt2YXIgaV8sRlNlPWcoKCk9PntpXz1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCA4djExYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoibTkgMTUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2OSJ9XV19KTt2YXIgcl8sQlNlPWcoKCk9PntyXz1bWyJwYXRoIix7ZDoiTTEyIDYuNTI4VjNhMSAxIDAgMCAxIDEtMWgwIn1dLFsicGF0aCIse2Q6Ik0xOC4yMzcgMjFBMTUgMTUgMCAwIDAgMjIgMTFhNiA2IDAgMCAwLTEwLTQuNDcyQTYgNiAwIDAgMCAyIDExYTE1LjEgMTUuMSAwIDAgMCAzLjc2MyAxMCAzIDMgMCAwIDAgMy42NDguNjQ4IDUuNSA1LjUgMCAwIDEgNS4xNzggMEEzIDMgMCAwIDAgMTguMjM3IDIxIn1dXX0pO3ZhciBvXyxIU2U9ZygoKT0+e29fPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJtOS41IDE3IDUtNSJ9XSxbInBhdGgiLHtkOiJtOS41IDEyIDUgNSJ9XV19KTt2YXIgbl8scVNlPWcoKCk9PntuXz1bWyJwYXRoIix7ZDoiTTE5IDlWNmEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciBsXyxqU2U9ZygoKT0+e2xfPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJoNCJ9XV19KTt2YXIgY18sVlNlPWcoKCk9PntjXz1bWyJwYXRoIix7ZDoiTTE0IDhhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDFoMy4yOTNhLjcwNy43MDcgMCAwIDEgLjUgMS4yMDdsLTYuOTM5IDYuOTM5YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA4IDBsLTYuOTQtNi45NGEuNzA3LjcwNyAwIDAgMSAuNS0xLjIwNkg4YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOSA0aDYifV1dfSk7dmFyIGRfLFVTZT1nKCgpPT57ZF89W1sicGF0aCIse2Q6Ik05IDVhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDAgMSAxaDMuMjkzYS43MDcuNzA3IDAgMCAxIC41IDEuMjA3bC03LjA4NiA3LjA4NmExIDEgMCAwIDEtMS40MTQgMGwtNy4wODYtNy4wODZhLjcwNy43MDcgMCAwIDEgLjUtMS4yMDdIOGExIDEgMCAwIDAgMS0xeiJ9XV19KTt2YXIgdV8sV1NlPWcoKCk9Pnt1Xz1bWyJwYXRoIix7ZDoiTTEwLjc5MyAxOS43OTNhLjcwNy43MDcgMCAwIDAgMS4yMDctLjVWMTZhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDEtMS0xVjQuNzA3YS43MDcuNzA3IDAgMCAwLTEuMjA3LS41bC02Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN3oifV1dfSk7dmFyIHBfLEdTZT1nKCgpPT57cF89W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNC43MDdhLjcwNy43MDcgMCAwIDAtMS4yMDctLjVsLTYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3bDYuOTQgNi45NGEuNzA3LjcwNyAwIDAgMCAxLjIwNy0uNVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOXY2In1dXX0pO3ZhciBoXyxLU2U9ZygoKT0+e2hfPVtbInBhdGgiLHtkOiJNMTEgOWExIDEgMCAwIDAgMS0xVjQuNzA3YS43MDcuNzA3IDAgMCAxIDEuMjA3LS41bDYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA3bC02Ljk0IDYuOTRhLjcwNy43MDcgMCAwIDEtMS4yMDctLjVWMTZhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTQgOXY2In1dXX0pO3ZhciBmXyxZU2U9ZygoKT0+e2ZfPVtbInBhdGgiLHtkOiJNMTMuMjA3IDE5Ljc5M2EuNzA3LjcwNyAwIDAgMS0xLjIwNy0uNVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAwIDEtMVY0LjcwN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy0uNWw2Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN3oifV1dfSk7dmFyIG1fLFpTZT1nKCgpPT57bV89W1sicGF0aCIse2Q6Ik0xNCAxNmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMSAxLTFoMy4yOTNhLjcwNy43MDcgMCAwIDAgLjUtMS4yMDdsLTYuOTM5LTYuOTM5YTEuMjA3IDEuMjA3IDAgMCAwLTEuNzA4IDBsLTYuOTQgNi45NGEuNzA3LjcwNyAwIDAgMCAuNSAxLjIwNkg4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAyMGg2In1dXX0pO3ZhciBnXyxYU2U9ZygoKT0+e2dfPVtbInBhdGgiLHtkOiJNOSAxOWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMXYtNmExIDEgMCAwIDEgMS0xaDMuMjkzYS43MDcuNzA3IDAgMCAwIC41LTEuMjA3bC03LjA4Ni03LjA4NmExIDEgMCAwIDAtMS40MTQgMGwtNy4wODYgNy4wODZhLjcwNy43MDcgMCAwIDAgLjUgMS4yMDdIOGExIDEgMCAwIDEgMSAxeiJ9XV19KTt2YXIgYl8sUVNlPWcoKCk9PntiXz1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicmVjdCIse3g6IjE1Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2LTZoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDIwaDQifV1dfSk7dmFyIHZfLEpTZT1nKCgpPT57dl89W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTBWNGgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiMTQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dXX0pO3ZhciB4XyxlX2U9ZygoKT0+e3hfPVtbInBhdGgiLHtkOiJNMTkgM0g1In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im02IDE1IDYgNiA2LTYifV1dfSk7dmFyIGtmLHRfZT1nKCgpPT57a2Y9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMjAgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGg1bC01IDZoNSJ9XV19KTt2YXIgeV8sYV9lPWcoKCk9Pnt5Xz1bWyJwYXRoIix7ZDoiTTE3IDcgNyAxNyJ9XSxbInBhdGgiLHtkOiJNMTcgMTdIN1Y3In1dXX0pO3ZhciB3XyxzX2U9ZygoKT0+e3dfPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTExIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTEgOGg3In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XV19KTt2YXIga18saV9lPWcoKCk9PntrXz1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTcgN3YxMEg3In1dXX0pO3ZhciBTXyxyX2U9ZygoKT0+e1NfPVtbInBhdGgiLHtkOiJNMTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJtMTkgOS03IDctNy03In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dfSk7dmFyIF9fLG9fZT1nKCgpPT57X189W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMjEgOC00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dXX0pO3ZhciBNXyxuX2U9ZygoKT0+e01fPVtbInBhdGgiLHtkOiJNMTIgMTdWMyJ9XSxbInBhdGgiLHtkOiJtNiAxMSA2IDYgNi02In1dLFsicGF0aCIse2Q6Ik0xOSAyMUg1In1dXX0pO3ZhciBTZixsX2U9ZygoKT0+e1NmPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTExIDRoMTAifV0sWyJwYXRoIix7ZDoiTTExIDhoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoNCJ9XV19KTt2YXIgX2YsY19lPWcoKCk9PntfZj1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNSA0aDVsLTUgNmg1In1dLFsicGF0aCIse2Q6Ik0xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgtNSJ9XV19KTt2YXIgel8sZF9lPWcoKCk9Pnt6Xz1bWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoibTE5IDEyLTcgNy03LTcifV1dfSk7dmFyIENfLHVfZT1nKCgpPT57Q189W1sicGF0aCIse2Q6Im05IDYtNiA2IDYgNiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWNSJ9XV19KTt2YXIgVF8scF9lPWcoKCk9PntUXz1bWyJwYXRoIix7ZDoiTTggMyA0IDdsNCA0In1dLFsicGF0aCIse2Q6Ik00IDdoMTYifV0sWyJwYXRoIix7ZDoibTE2IDIxIDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIwIDE3SDQifV1dfSk7dmFyICRfLGhfZT1nKCgpPT57JF89W1sicGF0aCIse2Q6Ik0zIDE5VjUifV0sWyJwYXRoIix7ZDoibTEzIDYtNiA2IDYgNiJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxNCJ9XV19KTt2YXIgRF8sZl9lPWcoKCk9PntEXz1bWyJwYXRoIix7ZDoiTTMgNXYxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJINyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggNi02LTYtNiJ9XV19KTt2YXIgTF8sbV9lPWcoKCk9PntMXz1bWyJwYXRoIix7ZDoibTEyIDE5LTctNyA3LTcifV0sWyJwYXRoIix7ZDoiTTE5IDEySDUifV1dfSk7dmFyIEVfLGdfZT1nKCgpPT57RV89W1sicGF0aCIse2Q6Im0xNiAzIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIwIDdINCJ9XSxbInBhdGgiLHtkOiJtOCAyMS00LTQgNC00In1dLFsicGF0aCIse2Q6Ik00IDE3aDE2In1dXX0pO3ZhciBQXyxiX2U9ZygoKT0+e1BfPVtbInBhdGgiLHtkOiJNMTcgMTJIMyJ9XSxbInBhdGgiLHtkOiJtMTEgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxNCJ9XV19KTt2YXIgSV8sdl9lPWcoKCk9PntJXz1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV0sWyJwYXRoIix7ZDoibTEyIDUgNyA3LTcgNyJ9XV19KTt2YXIgQV8seF9lPWcoKCk9PntBXz1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV19KTt2YXIgTl8seV9lPWcoKCk9PntOXz1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYtNmgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMjBoNCJ9XV19KTt2YXIgTWYsd19lPWcoKCk9PntNZj1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTIwIDhoLTUifV0sWyJwYXRoIix7ZDoiTTE1IDEwVjYuNWEyLjUgMi41IDAgMCAxIDUgMFYxMCJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoNWwtNSA2aDUifV1dfSk7dmFyIFJfLGtfZT1nKCgpPT57Ul89W1sicGF0aCIse2Q6Im0yMSAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY0In1dLFsicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dXX0pO3ZhciBPXyxTX2U9ZygoKT0+e09fPVtbInBhdGgiLHtkOiJtNSA5IDctNyA3IDcifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMSIscjoiMSJ9XV19KTt2YXIgRl8sX19lPWcoKCk9PntGXz1bWyJwYXRoIix7ZDoibTE4IDktNi02LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV19KTt2YXIgQl8sTV9lPWcoKCk9PntCXz1bWyJwYXRoIix7ZDoiTTcgMTdWN2gxMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcgNyA3In1dXX0pO3ZhciB6Zix6X2U9ZygoKT0+e3pmPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjBoMTAifV1dfSk7dmFyIEhfLENfZT1nKCgpPT57SF89W1sicGF0aCIse2Q6Ik03IDdoMTB2MTAifV0sWyJwYXRoIix7ZDoiTTcgMTcgMTcgNyJ9XV19KTt2YXIgcV8sVF9lPWcoKCk9PntxXz1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTExIDEyaDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxNmg3In1dLFsicGF0aCIse2Q6Ik0xMSAyMGg0In1dXX0pO3ZhciBqXywkX2U9ZygoKT0+e2pfPVtbInBhdGgiLHtkOiJNNSAzaDE0In1dLFsicGF0aCIse2Q6Im0xOCAxMy02LTYtNiA2In1dLFsicGF0aCIse2Q6Ik0xMiA3djE0In1dXX0pO3ZhciBWXyxEX2U9ZygoKT0+e1ZfPVtbInBhdGgiLHtkOiJtNSAxMiA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1In1dXX0pO3ZhciBDZixMX2U9ZygoKT0+e0NmPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTUgNGg1bC01IDZoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMThoLTUifV1dfSk7dmFyIFVfLEVfZT1nKCgpPT57VV89W1sicGF0aCIse2Q6Ik0xMiA2djEyIn1dLFsicGF0aCIse2Q6Ik0xNy4xOTYgOSA2LjgwNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi44MDQgOSAxMC4zOTIgNiJ9XV19KTt2YXIgV18sUF9lPWcoKCk9PntXXz1bWyJwYXRoIix7ZDoibTQgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik03IDE3VjMifV0sWyJwYXRoIix7ZDoibTE0IDYgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTdWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XV19KTt2YXIgR18sSV9lPWcoKCk9PntHXz1bWyJwYXRoIix7ZDoiTTEyLjk4MyAyMS4xODZhMSAxIDAgMCAxLTEuOTY2IDAgMTAgMTAgMCAwIDAtOC4yMDMtOC4yMDMgMSAxIDAgMCAxIDAtMS45NjYgMTAgMTAgMCAwIDAgOC4yMDMtOC4yMDMgMSAxIDAgMCAxIDEuOTY2IDAgMTAgMTAgMCAwIDAgOC4yMDMgOC4yMDMgMSAxIDAgMCAxIDAgMS45NjYgMTAgMTAgMCAwIDAtOC4yMDMgOC4yMDMifV1dfSk7dmFyIEtfLEFfZT1nKCgpPT57S189W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCJ9XV19KTt2YXIgWV8sTl9lPWcoKCk9PntZXz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjAuMiAyMC4yYzIuMDQtMi4wMy4wMi03LjM2LTQuNS0xMS45LTQuNTQtNC41Mi05Ljg3LTYuNTQtMTEuOS00LjUtMi4wNCAyLjAzLS4wMiA3LjM2IDQuNSAxMS45IDQuNTQgNC41MiA5Ljg3IDYuNTQgMTEuOSA0LjVaIn1dLFsicGF0aCIse2Q6Ik0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoifV1dfSk7dmFyIFpfLFJfZT1nKCgpPT57Wl89W1sicGF0aCIse2Q6Ik0yIDEwdjMifV0sWyJwYXRoIix7ZDoiTTYgNnYxMSJ9XSxbInBhdGgiLHtkOiJNMTAgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTQgOHY3In1dLFsicGF0aCIse2Q6Ik0xOCA1djEzIn1dLFsicGF0aCIse2Q6Ik0yMiAxMHYzIn1dXX0pO3ZhciBYXyxPX2U9ZygoKT0+e1hfPVtbInBhdGgiLHtkOiJNMiAxM2EyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwVjRhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwdi00YTIgMiAwIDAgMSAyLTIifV1dfSk7dmFyIFFfLEZfZT1nKCgpPT57UV89W1sicGF0aCIse2Q6Im0xNS40NzcgMTIuODkgMS41MTUgOC41MjZhLjUuNSAwIDAgMS0uODEuNDdsLTMuNTgtMi42ODdhMSAxIDAgMCAwLTEuMTk3IDBsLTMuNTg2IDIuNjg2YS41LjUgMCAwIDEtLjgxLS40NjlsMS41MTQtOC41MjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiI2In1dXX0pO3ZhciBKXyxCX2U9ZygoKT0+e0pfPVtbInBhdGgiLHtkOiJtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5In1dLFsicGF0aCIse2Q6Ik0xNSAxNS41YS41LjUgMCAwIDAgLjUuNUE2LjUgNi41IDAgMCAwIDIyIDkuNWEuNS41IDAgMCAwLS41LS41aC0xLjY3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNS4wNjItNS4wNjJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw5LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDUuMDYyIDUuMDYyQTIgMiAwIDAgMSAxNSAxMy44Mjh6In1dXX0pO3ZhciBlTSxIX2U9ZygoKT0+e2VNPVtbInBhdGgiLHtkOiJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41In1dLFsicGF0aCIse2Q6Ik0xNSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTJoLjAxIn1dXX0pO3ZhciBUZixxX2U9ZygoKT0+e1RmPVtbInBhdGgiLHtkOiJNMTMuNSAxMC41IDE1IDkifV0sWyJwYXRoIix7ZDoiTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1In1dLFsicGF0aCIse2Q6Ik00LjI5MyAxOS43MDcgNiAxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAxLjUtMS41In1dXX0pO3ZhciB0TSxqX2U9ZygoKT0+e3RNPVtbInBhdGgiLHtkOiJNNCAxMGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHYxMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTggMTBoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg4In1dLFsicGF0aCIse2Q6Ik04IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTkgNlY0YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIGFNLFZfZT1nKCgpPT57YU09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIHNNLFVfZT1nKCgpPT57c009W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTUuNCAxMGE0IDQgMCAxIDAgMCA0In1dXX0pO3ZhciAkZixXX2U9ZygoKT0+eyRmPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgaU0sR19lPWcoKCk9PntpTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIHJNLEtfZT1nKCgpPT57ck09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNNyAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIn1dXX0pO3ZhciBvTSxZX2U9ZygoKT0+e29NPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTggOGg4In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgifV1dfSk7dmFyIG5NLFpfZT1nKCgpPT57bk09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE2Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiI4Iix5MjoiOCJ9XV19KTt2YXIgbE0sWF9lPWcoKCk9PntsTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im05IDggMyAzdjcifV0sWyJwYXRoIix7ZDoibTEyIDExIDMtMyJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik05IDE2aDYifV1dfSk7dmFyIGNNLFFfZT1nKCgpPT57Y009W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgZE0sSl9lPWcoKCk9PntkTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciB1TSxlTWU9ZygoKT0+e3VNPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIHBNLHRNZT1nKCgpPT57cE09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV19KTt2YXIgRGYsYU1lPWcoKCk9PntEZj1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE3Iix5MjoiMTcifV1dfSk7dmFyIGhNLHNNZT1nKCgpPT57aE09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTEgMTdWOGg0In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgzIn1dLFsicGF0aCIse2Q6Ik05IDE2aDQifV1dfSk7dmFyIGZNLGlNZT1nKCgpPT57Zk09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg1In1dLFsicGF0aCIse2Q6Ik05IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5In1dXX0pO3ZhciBtTSxyTWU9ZygoKT0+e21NPVtbInBhdGgiLHtkOiJNMTEgN3YxMGE1IDUgMCAwIDAgNS01In1dLFsicGF0aCIse2Q6Im0xNSA4LTYgMyJ9XSxbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiJ9XV19KTt2YXIgZ00sb01lPWcoKCk9PntnTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgYk0sbk1lPWcoKCk9PntiTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dXX0pO3ZhciB2TSxsTWU9ZygoKT0+e3ZNPVtbInBhdGgiLHtkOiJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjYiLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciB4TSxjTWU9ZygoKT0+e3hNPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIn1dXX0pO3ZhciB5TSxkTWU9ZygoKT0+e3lNPVtbInBhdGgiLHtkOiJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCJ9XV19KTt2YXIgd00sdU1lPWcoKCk9Pnt3TT1bWyJwYXRoIix7ZDoiTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUifV0sWyJwYXRoIix7ZDoiTTUuMTUgMTcuODljNS41Mi0xLjUyIDguNjUtNi44OSA3LTEyQzExLjU1IDQgMTEuNSAyIDEzIDJjMy4yMiAwIDUgNS41IDUgOCAwIDYuNS00LjIgMTItMTAuNDkgMTJDNS4xMSAyMiAyIDIyIDIgMjBjMC0xLjUgMS4xNC0xLjU1IDMuMTUtMi4xMVoifV1dfSk7dmFyIGtNLHBNZT1nKCgpPT57a009W1sicGF0aCIse2Q6Ik0xMCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTAuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTIifV0sWyJwYXRoIix7ZDoiTTYgNnYxMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXX0pO3ZhciBTTSxoTWU9ZygoKT0+e1NNPVtbInBhdGgiLHtkOiJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMtMy0zIDMifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIF9NLGZNZT1nKCgpPT57X009W1sicGF0aCIse2Q6Ik0xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBNTSxtTWU9ZygoKT0+e01NPVtbInBhdGgiLHtkOiJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAxNy01IDUifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIHpNLGdNZT1nKCgpPT57ek09W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDFNMTggMTJoLjAxIn1dXX0pO3ZhciBDTSxiTWU9ZygoKT0+e0NNPVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik04IDV2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoiTTE3IDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dfSk7dmFyIFRNLHZNZT1nKCgpPT57VE09W1sicGF0aCIse2Q6Ik0xMCAzYTQxIDQxIDAgMCAwIDAgMTgifV0sWyJwYXRoIix7ZDoiTTE0IDNhNDEgNDEgMCAwIDEgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42OC45MiAxNS4yNSAxNS4yNSAwIDAgMSAwIDE2LjE2QTIgMiAwIDAgMSAxNyAyMUg3YTIgMiAwIDAgMS0xLjY4LS45MiAxNS4yNSAxNS4yNSAwIDAgMSAwLTE2LjE2QTIgMiAwIDAgMSA3IDN6In1dLFsicGF0aCIse2Q6Ik0zLjg0IDE3aDE2LjMyIn1dLFsicGF0aCIse2Q6Ik0zLjg0IDdoMTYuMzIifV1dfSk7dmFyICRNLHhNZT1nKCgpPT57JE09W1sicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBETSx5TWU9ZygoKT0+e0RNPVtbInBhdGgiLHtkOiJNMTAgNCA4IDYifV0sWyJwYXRoIix7ZDoiTTE3IDE5djIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XSxbInBhdGgiLHtkOiJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUifV1dfSk7dmFyIExNLHdNZT1nKCgpPT57TE09W1sicGF0aCIse2Q6Im0xMSA3LTMgNWg0bC0zIDUifV0sWyJwYXRoIix7ZDoiTTE0Ljg1NiA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjkzNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTUuMTQgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyLjkzNiJ9XV19KTt2YXIgRU0sa01lPWcoKCk9PntFTT1bWyJwYXRoIix7ZDoiTTEwIDEwdjQifV0sWyJwYXRoIix7ZDoiTTE0IDEwdjQifV0sWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDEwdjQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgUE0sU01lPWcoKCk9PntQTT1bWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE0di00In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIElNLF9NZT1nKCgpPT57SU09W1sicGF0aCIse2Q6Ik0xMCAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTR2LTQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgQU0sTU1lPWcoKCk9PntBTT1bWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbInBhdGgiLHtkOiJNMTIuNTQzIDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuNjA1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmg2In1dLFsicGF0aCIse2Q6Ik03LjYwNiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMuNjA2In1dXX0pO3ZhciBOTSx6TWU9ZygoKT0+e05NPVtbInBhdGgiLHtkOiJNMTAgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA3djYifV0sWyJwYXRoIix7ZDoiTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dXX0pO3ZhciBSTSxDTWU9ZygoKT0+e1JNPVtbInBhdGgiLHtkOiJNIDIyIDE0IEwgMjIgMTAifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgT00sVE1lPWcoKCk9PntPTT1bWyJwYXRoIix7ZDoiTTkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmExMy45NiAxMy45NiAwIDAgMCA5LjktNC4xIn1dLFsicGF0aCIse2Q6Ik0xMC43NSA1LjA5M0E2IDYgMCAwIDEgMjIgOGMwIDIuNDExLS42MSA0LjY4LTEuNjgzIDYuNjYifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDAgMCA2LjQ4NyAxLjIwOE0xMC42MiA1LjM0MWE0LjAxNSA0LjAxNSAwIDAgMSAyLjAzOSAyLjA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIEZNLCRNZT1nKCgpPT57Rk09W1sicGF0aCIse2Q6Ik00LjUgM2gxNSJ9XSxbInBhdGgiLHtkOiJNNiAzdjE2YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMifV0sWyJwYXRoIix7ZDoiTTYgMTRoMTIifV1dfSk7dmFyIEJNLERNZT1nKCgpPT57Qk09W1sicGF0aCIse2Q6Ik0yIDIwdi04YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY4In1dLFsicGF0aCIse2Q6Ik00IDEwVjZhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDR2NiJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyMCJ9XV19KTt2YXIgSE0sTE1lPWcoKCk9PntITT1bWyJwYXRoIix7ZDoiTTEwLjE2NSA2LjU5OEM5Ljk1NCA3LjQ3OCA5LjY0IDguMzYgOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYzcuNzMyIDAgMTQtNi4yNjggMTQtMTRhNiA2IDAgMCAwLTExLjgzNS0xLjQwMloifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDEgMCA1LjI3OS01LjI4In1dXX0pO3ZhciBxTSxFTWU9ZygoKT0+e3FNPVtbInBhdGgiLHtkOiJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDE4aDE4In1dXX0pO3ZhciBqTSxQTWU9ZygoKT0+e2pNPVtbInBhdGgiLHtkOiJNMTEuNzcxIDYuMTA5YTIuNSAyLjUgMCAwIDEgMy4xMiAzLjEyIn1dLFsicGF0aCIse2Q6Ik0xNy44NTIgMTIuMTg1YTYuNSA2LjUgMCAwIDAtOS4wMzUtOS4wNCJ9XSxbInBhdGgiLHtkOiJNMTguMDEzIDE4LjAxM0MxNS4wMjkgMjAuMzQ5IDEwLjgzMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUifV0sWyJwYXRoIix7ZDoibTE4LjUgNiAyLjE5IDQuNWE2LjQ4IDYuNDggMCAwIDEtLjEzOSA0LjM5MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02LjM1NSA2LjM3YTcgNyAwIDAgMC0uMDc1LjIzYy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGMzLjM1NiAwIDYuOTkzLTEuMjY3IDkuODUtMy4xNTEifV1dfSk7dmFyIFZNLElNZT1nKCgpPT57Vk09W1sicGF0aCIse2Q6Ik0yIDR2MTYifV0sWyJwYXRoIix7ZDoiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIwIn1dLFsicGF0aCIse2Q6Ik02IDh2OSJ9XV19KTt2YXIgVU0sQU1lPWcoKCk9PntVTT1bWyJwYXRoIix7ZDoiTTE2LjQgMTMuN0E2LjUgNi41IDAgMSAwIDYuMjggNi42Yy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGM0IDAgOC40LTEuOCAxMS40LTQuMyJ9XSxbInBhdGgiLHtkOiJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjEyLjUiLGN5OiI4LjUiLHI6IjIuNSJ9XV19KTt2YXIgV00sTk1lPWcoKCk9PntXTT1bWyJwYXRoIix7ZDoiTTEzIDEzdjUifV0sWyJwYXRoIix7ZDoiTTE3IDExLjQ3VjgifV0sWyJwYXRoIix7ZDoiTTE3IDExaDFhMyAzIDAgMCAxIDIuNzQ1IDQuMjExIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNy41MzYgNy41MzVDNi43NjYgNy42NDkgNi4xNTQgOCA1LjUgOGEyLjUgMi41IDAgMCAxLTEuNzY4LTQuMjY4In1dLFsicGF0aCIse2Q6Ik04LjcyNyAzLjIwNEM5LjMwNiAyLjc2NyA5Ljg4NSAyIDExIDJjMS41NiAwIDIgMS41IDMgMS41czEuNzItLjUgMi41LS41YTEgMSAwIDEgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVhMy4xNDkgMy4xNDkgMCAwIDAtLjg0Mi4xMiJ9XSxbInBhdGgiLHtkOiJNOSAxNC42VjE4In1dXX0pO3ZhciBHTSxSTWU9ZygoKT0+e0dNPVtbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIn1dLFsicGF0aCIse2Q6Ik05IDEydjYifV0sWyJwYXRoIix7ZDoiTTEzIDEydjYifV0sWyJwYXRoIix7ZDoiTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dXX0pO3ZhciBLTSxPTWU9ZygoKT0+e0tNPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Im0xNSA4IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTE2Ljg2MDcgNC40ODI0QTYgNiAwIDAgMCA2IDhDNiAxMi40OTkgNC41ODkgMTMuOTU2IDMuMjYyIDE1LjMyNiJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3SDIwQTEgMSAwIDAgMCAyMC43NCAxNS4zMjdDMjAuMjA5IDE0Ljc3OSAxOS42NjUgMTQuMjE4IDE5LjIwMyAxMy40NTQifV1dfSk7dmFyIFlNLEZNZT1nKCgpPT57WU09W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTExLjY4IDIuMDA5QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczYy0uODI0LS44NS0xLjY3OC0xLjczMS0yLjIxLTMuMzQ4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgWk0sQk1lPWcoKCk9PntaTT1bWyJwYXRoIix7ZDoiTTE4LjUxOCAxNy4zNDdBNyA3IDAgMCAxIDE0IDE5In1dLFsicGF0aCIse2Q6Ik0xOC44IDRBMTEgMTEgMCAwIDEgMjAgOSJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsicmVjdCIse3g6IjQiLHk6IjE2Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIFhNLEhNZT1nKCgpPT57WE09W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE3IDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIC4yNTgtMS43NDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC42NjggMy4wMUE2IDYgMCAwIDEgMTggOGMwIDIuNjg3Ljc3IDQuNjUzIDEuNzA3IDYuMDUifV1dfSk7dmFyIFFNLHFNZT1nKCgpPT57UU09W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE1IDhoNiJ9XSxbInBhdGgiLHtkOiJNMTYuMjQzIDMuNzU3QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQTkuNCA5LjQgMCAwIDEgMTguNjY3IDEyIn1dXX0pO3ZhciBKTSxqTWU9ZygoKT0+e0pNPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDV2NiJ9XSxbInBhdGgiLHtkOiJNMjAuMDAyIDE0LjQ2NGE5IDkgMCAwIDAgLjczOC44NjNBMSAxIDAgMCAxIDIwIDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIDguNzUtNS4zMzIifV1dfSk7dmFyIGV6LFZNZT1nKCgpPT57ZXo9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjMtLjgtNC4zLTItNiJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNiJ9XSxbInBhdGgiLHtkOiJNNCAyQzIuOCAzLjcgMiA1LjcgMiA4In1dXX0pO3ZhciB0eixVTWU9ZygoKT0+e3R6PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2In1dXX0pO3ZhciBMZixXTWU9ZygoKT0+e0xmPVtbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMtMyAzLTMifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgRWYsR01lPWcoKCk9PntFZj1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjgiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yIDkgMyAzLTMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiOCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBheixLTWU9ZygoKT0+e2F6PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTkgMjIgMy0zIDMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjMiLHJ4OiIxIn1dXX0pO3ZhciBzeixZTWU9ZygoKT0+e3N6PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjgiLHJ4OiIxIn1dXX0pO3ZhciBpeixaTWU9ZygoKT0+e2l6PVtbInBhdGgiLHtkOiJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGE1IDUgMCAwIDAtNy41ODQgMiJ9XSxbInBhdGgiLHtkOiJNOS45NjQgNi44MjVDOC4wMTkgNy45NzcgOS41IDEzIDggMTUifV1dfSk7dmFyIHJ6LFhNZT1nKCgpPT57cno9W1siY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxNy41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNS41IixjeToiMTcuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiNSIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNVYxNGwtMy0zIDQtMyAyIDNoMiJ9XV19KTt2YXIgb3osUU1lPWcoKCk9Pntvej1bWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI2Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMGg0In1dLFsicGF0aCIse2Q6Ik02IDE0aDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgNGgydjYifV1dfSk7dmFyIG56LEpNZT1nKCgpPT57bno9W1sicGF0aCIse2Q6Ik0xMCAxMGg0In1dLFsicGF0aCIse2Q6Ik0xOSA3VjRhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTIgMiAwIDAgMCAyLTJ2LTMuODUxYzAtMS4zOS0yLTIuOTYyLTItNC44MjlWOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2MTFhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTSAyMiAxNiBMIDIgMTYifV0sWyJwYXRoIix7ZDoiTTQgMjFhMiAyIDAgMCAxLTItMnYtMy44NTFjMC0xLjM5IDItMi45NjIgMi00LjgyOVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjExYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik05IDdWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBseixlemU9ZygoKT0+e2x6PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExLjkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTYuNyAzLjRjLS45IDIuNSAwIDUuMiAyLjIgNi43QzYuNSA5IDMuNyA5LjYgMiAxMS42In1dLFsicGF0aCIse2Q6Im04LjkgMTAuMSAxLjQuOCJ9XSxbInBhdGgiLHtkOiJNMTcuMyAzLjRjLjkgMi41IDAgNS4yLTIuMiA2LjcgMi40LTEuMiA1LjItLjYgNi45IDEuNSJ9XSxbInBhdGgiLHtkOiJtMTUuMSAxMC4xLTEuNC44In1dLFsicGF0aCIse2Q6Ik0xNi43IDIwLjhjLTIuNi0uNC00LjYtMi42LTQuNy01LjMtLjIgMi42LTIuMSA0LjgtNC43IDUuMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTMuOXYxLjYifV0sWyJwYXRoIix7ZDoiTTEzLjUgNS40Yy0xLS4yLTItLjItMyAwIn1dLFsicGF0aCIse2Q6Ik0xNyAxNi40Yy43LS43IDEuMi0xLjYgMS41LTIuNSJ9XSxbInBhdGgiLHtkOiJNNS41IDEzLjljLjMuOS44IDEuOCAxLjUgMi41In1dXX0pO3ZhciBjeix0emU9ZygoKT0+e2N6PVtbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAifV0sWyJwYXRoIix7ZDoibTIwIDcgMiAuNS0yIC41In1dLFsicGF0aCIse2Q6Ik0xMCAxOHYzIn1dLFsicGF0aCIse2Q6Ik0xNCAxNy43NVYyMSJ9XSxbInBhdGgiLHtkOiJNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MSJ9XV19KTt2YXIgZHosYXplPWcoKCk9Pntkej1bWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoibTE3IDE4IDEuOTU2LTExLjQ2OCJ9XSxbInBhdGgiLHtkOiJtMyA4IDcuODItNS42MTVhMiAyIDAgMCAxIDIuMzYgMEwyMSA4In1dLFsicGF0aCIse2Q6Ik00IDE4aDE2In1dLFsicGF0aCIse2Q6Ik03IDE4IDUuMDQ0IDYuNTMyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIHV6LHN6ZT1nKCgpPT57dXo9W1sicGF0aCIse2Q6Ik0xMS43NjcgMTkuMDg5YzQuOTI0Ljg2OCA2LjE0LTYuMDI1IDEuMjE2LTYuODk0bS0xLjIxNiA2Ljg5NEw1Ljg2IDE4LjA0N201LjkwOCAxLjA0Mi0uMzQ3IDEuOTdtMS41NjMtOC44NjRjNC45MjQuODY5IDYuMTQtNi4wMjUgMS4yMTUtNi44OTNtLTEuMjE1IDYuODkzLTMuOTQtLjY5NG01LjE1NS02LjJMOC4yOSA0LjI2bTUuOTA4IDEuMDQyLjM0OC0xLjk3TTcuNDggMjAuMzY0bDMuMTI2LTE3LjcyNyJ9XV19KTt2YXIgcHosaXplPWcoKCk9Pntwej1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjcifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiNyJ9XV19KTt2YXIgaHoscnplPWcoKCk9Pntoej1bWyJwYXRoIix7ZDoiTTMgM2gxOCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g4In1dLFsicGF0aCIse2Q6Ik0yMCAxMUg4In1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAzdjE0In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgZnosb3plPWcoKCk9Pntmej1bWyJwYXRoIix7ZDoiTTEwIDIyVjdhMSAxIDAgMCAwLTEtMUg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0xLTFIMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIG16LG56ZT1nKCgpPT57bXo9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIGd6LGx6ZT1nKCgpPT57Z3o9W1sicGF0aCIse2Q6Im0xNyAxNy01IDVWMTJsLTUgNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xNC41IDkuNSAxNyA3bC01LTV2NC41In1dXX0pO3ZhciBieixjemU9ZygoKT0+e2J6PVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dXX0pO3ZhciB2eixkemU9ZygoKT0+e3Z6PVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsicGF0aCIse2Q6Ik0yMC44MyAxNC44M2E0IDQgMCAwIDAgMC01LjY2In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIHh6LHV6ZT1nKCgpPT57eHo9W1sicGF0aCIse2Q6Ik02IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCJ9XV19KTt2YXIgeXoscHplPWcoKCk9Pnt5ej1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMyIscjoiOSJ9XSxbInBhdGgiLHtkOiJNMTQuMzUgNC42NSAxNi4zIDIuN2EyLjQxIDIuNDEgMCAwIDEgMy40IDBsMS42IDEuNmEyLjQgMi40IDAgMCAxIDAgMy40bC0xLjk1IDEuOTUifV0sWyJwYXRoIix7ZDoibTIyIDItMS41IDEuNSJ9XV19KTt2YXIgd3osaHplPWcoKCk9Pnt3ej1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXX0pO3ZhciBreixmemU9ZygoKT0+e2t6PVtbInBhdGgiLHtkOiJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoifV1dfSk7dmFyIFN6LG16ZT1nKCgpPT57U3o9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im04IDEzIDQtNyA0IDcifV0sWyJwYXRoIix7ZDoiTTkuMSAxMWg1LjcifV1dfSk7dmFyIF96LGd6ZT1nKCgpPT57X3o9W1sicGF0aCIse2Q6Ik0xMiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV19KTt2YXIgTXosYnplPWcoKCk9PntNej1bWyJwYXRoIix7ZDoiTTEyIDZ2NyJ9XSxbInBhdGgiLHtkOiJNMTYgOHYzIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDh2MyJ9XV19KTt2YXIgenosdnplPWcoKCk9Pnt6ej1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgOS41IDIgMiA0LTQifV1dfSk7dmFyIEN6LHh6ZT1nKCgpPT57Q3o9W1sicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNNS44MDMgMThINWEyIDIgMCAwIDAgMCA0aDkuNWEuNS41IDAgMCAwIC41LS41VjIxIn1dLFsicGF0aCIse2Q6Ik05IDE1VjRhMiAyIDAgMCAxIDItMmg5LjVhLjUuNSAwIDAgMSAuNS41djE0YS41LjUgMCAwIDEtLjUuNUgxMWEyIDIgMCAwIDEgMC00aDEwIn1dXX0pO3ZhciBQZix5emU9ZygoKT0+e1BmPVtbInBhdGgiLHtkOiJNMTIgMTdoMS41In1dLFsicGF0aCIse2Q6Ik0xMiAyMmgxLjUifV0sWyJwYXRoIix7ZDoiTTEyIDJoMS41In1dLFsicGF0aCIse2Q6Ik0xNy41IDIySDE5YTEgMSAwIDAgMCAxLTEifV0sWyJwYXRoIix7ZDoiTTE3LjUgMkgxOWExIDEgMCAwIDEgMSAxdjEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTR2M2gtMi41In1dLFsicGF0aCIse2Q6Ik0yMCA4LjVWMTAifV0sWyJwYXRoIix7ZDoiTTQgMTBWOC41In1dLFsicGF0aCIse2Q6Ik00IDE5LjVWMTQifV0sWyJwYXRoIix7ZDoiTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJIOCJ9XSxbInBhdGgiLHtkOiJNOCAyMkg2LjVhMSAxIDAgMCAxIDAtNUg4In1dXX0pO3ZhciBUeix3emU9ZygoKT0+e1R6PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzIDMgMy0zIn1dXX0pO3ZhciAkeixremU9ZygoKT0+eyR6PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dfSk7dmFyIER6LFN6ZT1nKCgpPT57RHo9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04LjYyIDkuOEEyLjI1IDIuMjUgMCAxIDEgMTIgNi44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBMeixfemU9ZygoKT0+e0x6PVtbInBhdGgiLHtkOiJtMjAgMTMuNy0yLjEtMi4xYTIgMiAwIDAgMC0yLjggMEw5LjcgMTcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiIyIn1dXX0pO3ZhciBFeixNemU9ZygoKT0+e0V6PVtbInBhdGgiLHtkOiJNMTMgMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNXYxNSJ9XSxbInBhdGgiLHtkOiJNMTcgMnY2In1dLFsicGF0aCIse2Q6Ik0xNyA0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE1LjJWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEwIixyOiIyIn1dXX0pO3ZhciBQeix6emU9ZygoKT0+e1B6PVtbInBhdGgiLHtkOiJNMTAgMnY4bDMtMyAzIDNWMiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV19KTt2YXIgSXosQ3plPWcoKCk9PntJej1bWyJwYXRoIix7ZDoiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIn1dLFsicmVjdCIse3g6IjEyIix5OiI2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgQXosVHplPWcoKCk9PntBej1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgTnosJHplPWcoKCk9PntOej1bWyJwYXRoIix7ZDoiTTEyIDIxVjcifV0sWyJwYXRoIix7ZDoibTE2IDEyIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTIyIDZWNGExIDEgMCAwIDAtMS0xaC01YTQgNCAwIDAgMC00IDQgNCA0IDAgMCAwLTQtNEgzYTEgMSAwIDAgMC0xIDF2MTNhMSAxIDAgMCAwIDEgMWg2YTMgMyAwIDAgMSAzIDMgMyAzIDAgMCAxIDMtM2g2YTEgMSAwIDAgMCAxLTF2LTEuMyJ9XV19KTt2YXIgUnosRHplPWcoKCk9PntSej1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTE2IDEyaDIifV0sWyJwYXRoIix7ZDoiTTE2IDhoMiJ9XSxbInBhdGgiLHtkOiJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6In1dLFsicGF0aCIse2Q6Ik02IDEyaDIifV0sWyJwYXRoIix7ZDoiTTYgOGgyIn1dXX0pO3ZhciBPeixMemU9ZygoKT0+e096PVtbInBhdGgiLHtkOiJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuODc5LTEuODc4In1dLFsicGF0aCIse2Q6Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIEZ6LEV6ZT1nKCgpPT57Rno9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0zIDE4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDVhNCA0IDAgMCAxIDQgNCA0IDQgMCAwIDEgNC00aDVhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMSAxaC02YTMgMyAwIDAgMC0zIDMgMyAzIDAgMCAwLTMtM3oifV1dfSk7dmFyIEJ6LFB6ZT1nKCgpPT57Qno9W1sicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgSHosSXplPWcoKCk9PntIej1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggMTFoOCJ9XSxbInBhdGgiLHtkOiJNOCA3aDYifV1dfSk7dmFyIHF6LEF6ZT1nKCgpPT57cXo9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xOCAyaDFhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDIifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSA1IDMtMyAzIDMifV1dfSk7dmFyIGp6LE56ZT1nKCgpPT57ano9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV1dfSk7dmFyIFZ6LFJ6ZT1nKCgpPT57Vno9W1sicGF0aCIse2Q6Ik0xMCAxM2g0In1dLFsicGF0aCIse2Q6Ik0xMiA2djcifV0sWyJwYXRoIix7ZDoiTTE2IDhWNkg4djIifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIFV6LE96ZT1nKCgpPT57VXo9W1sicGF0aCIse2Q6Ik0xNSAxM2EzIDMgMCAxIDAtNiAwIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiMiJ9XV19KTt2YXIgV3osRnplPWcoKCk9PntXej1bWyJwYXRoIix7ZDoibTE0LjUgNy01IDUifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkuNSA3IDUgNSJ9XV19KTt2YXIgR3osQnplPWcoKCk9PntHej1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIEt6LEh6ZT1nKCgpPT57S3o9W1sicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XV19KTt2YXIgWXoscXplPWcoKCk9PntZej1bWyJwYXRoIix7ZDoiTTE1IDEwSDkifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgWnosanplPWcoKCk9Pntaej1bWyJwYXRoIix7ZDoiTTE5IDE5djFhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC42NTYgM0gxN2EyIDIgMCAwIDEgMiAydjguMzQ0In1dXX0pO3ZhciBYeixWemU9ZygoKT0+e1h6PVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xNSAxMEg5In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dfSk7dmFyIFF6LFV6ZT1nKCgpPT57UXo9W1sicGF0aCIse2Q6Im0xNC41IDcuNS01IDUifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dfSk7dmFyIEp6LFd6ZT1nKCgpPT57Sno9W1sicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dfSk7dmFyIGVDLEd6ZT1nKCgpPT57ZUM9W1sicGF0aCIse2Q6Ik00IDlWNWEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNOCA4djEifV0sWyJwYXRoIix7ZDoiTTEyIDh2MSJ9XSxbInBhdGgiLHtkOiJNMTYgOHYxIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiOSIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTUiLHI6IjIifV1dfSk7dmFyIHRDLEt6ZT1nKCgpPT57dEM9W1sicGF0aCIse2Q6Ik0xMiA2VjJIOCJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmEyIDIgMCAwIDEtMiAySDguODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSA0IDIwLjI4NlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTF2MiJ9XV19KTt2YXIgYUMsWXplPWcoKCk9PnthQz1bWyJwYXRoIix7ZDoiTTEzLjY3IDhIMThhMiAyIDAgMCAxIDIgMnY0LjMzIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4SDZhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNDE0LS41ODYifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XSxbInBhdGgiLHtkOiJNOS42NyA0SDEydjIuMzMifV1dfSk7dmFyIHNDLFp6ZT1nKCgpPT57c0M9W1sicGF0aCIse2Q6Ik0xMiA4VjRIOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHg6IjQiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTE1IDEzdjIifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XV19KTt2YXIgaUMsWHplPWcoKCk9PntpQz1bWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Ik0xOC41NzUgMTEuMDgyYTEzIDEzIDAgMCAxIDEuMDQ4IDkuMDI3IDEuMTcgMS4xNyAwIDAgMS0xLjkxNC41OTdMMTQgMTcifV0sWyJwYXRoIix7ZDoiTTcgMTAgMy4yOSA2LjI5YTEuMTcgMS4xNyAwIDAgMSAuNi0xLjkxIDEzIDEzIDAgMCAxIDkuMDMgMS4wNSJ9XSxbInBhdGgiLHtkOiJNNyAxNGExLjcgMS43IDAgMCAwLTEuMjA3LjVsLTIuNjQ2IDIuNjQ2QS41LjUgMCAwIDAgMy41IDE4SDVhMSAxIDAgMCAxIDEgMXYxLjVhLjUuNSAwIDAgMCAuODU0LjM1NEw5LjUgMTguMjA3QTEuNyAxLjcgMCAwIDAgMTAgMTd2LTJhMSAxIDAgMCAwLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkuNzA3IDE0LjI5MyAyMSAzIn1dXX0pO3ZhciByQyxRemU9ZygoKT0+e3JDPVtbInBhdGgiLHtkOiJNMTAgM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTYgNiAwIDAgMCAxLjIgMy42bC42LjhBNiA2IDAgMCAxIDE3IDEzdjhhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LThhNiA2IDAgMCAxIDEuMi0zLjZsLjYtLjhBNiA2IDAgMCAwIDEwIDV6In1dLFsicGF0aCIse2Q6Ik0xNyAxM2gtNGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg0In1dXX0pO3ZhciBvQyxKemU9ZygoKT0+e29DPVtbInBhdGgiLHtkOiJNMjEgOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZaIn1dLFsicGF0aCIse2Q6Im0zLjMgNyA4LjcgNSA4LjctNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJWMTIifV1dfSk7dmFyIG5DLGVDZT1nKCgpPT57bkM9W1sicGF0aCIse2Q6Ik0yLjk3IDEyLjkyQTIgMiAwIDAgMCAyIDE0LjYzdjMuMjRhMiAyIDAgMCAwIC45NyAxLjcxbDMgMS44YTIgMiAwIDAgMCAyLjA2IDBMMTIgMTl2LTUuNWwtNS0zLTQuMDMgMi40MloifV0sWyJwYXRoIix7ZDoibTcgMTYuNS00Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoibTcgMTYuNSA1LTMifV0sWyJwYXRoIix7ZDoiTTcgMTYuNXY1LjE3In1dLFsicGF0aCIse2Q6Ik0xMiAxMy41VjE5bDMuOTcgMi4zOGEyIDIgMCAwIDAgMi4wNiAwbDMtMS44YTIgMiAwIDAgMCAuOTctMS43MXYtMy4yNGEyIDIgMCAwIDAtLjk3LTEuNzFMMTcgMTAuNWwtNSAzWiJ9XSxbInBhdGgiLHtkOiJtMTcgMTYuNS01LTMifV0sWyJwYXRoIix7ZDoibTE3IDE2LjUgNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41djUuMTcifV0sWyJwYXRoIix7ZDoiTTcuOTcgNC40MkEyIDIgMCAwIDAgNyA2LjEzdjQuMzdsNSAzIDUtM1Y2LjEzYTIgMiAwIDAgMC0uOTctMS43MWwtMy0xLjhhMiAyIDAgMCAwLTIuMDYgMGwtMyAxLjhaIn1dLFsicGF0aCIse2Q6Ik0xMiA4IDcuMjYgNS4xNSJ9XSxbInBhdGgiLHtkOiJtMTIgOCA0Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjVWOCJ9XV19KTt2YXIgSWYsdENlPWcoKCk9PntJZj1bWyJwYXRoIix7ZDoiTTggM0g3YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMSAyIDJ2NWMwIDEuMS45IDIgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xIn1dXX0pO3ZhciBsQyxhQ2U9ZygoKT0+e2xDPVtbInBhdGgiLHtkOiJNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMUg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDMifV1dfSk7dmFyIGNDLHNDZT1nKCgpPT57Y0M9W1sicGF0aCIse2Q6Ik0xMiA1YTMgMyAwIDEgMC01Ljk5Ny4xMjUgNCA0IDAgMCAwLTIuNTI2IDUuNzcgNCA0IDAgMCAwIC41NTYgNi41ODhBNCA0IDAgMSAwIDEyIDE4WiJ9XSxbInBhdGgiLHtkOiJNOSAxM2E0LjUgNC41IDAgMCAwIDMtNCJ9XSxbInBhdGgiLHtkOiJNNi4wMDMgNS4xMjVBMyAzIDAgMCAwIDYuNDAxIDYuNSJ9XSxbInBhdGgiLHtkOiJNMy40NzcgMTAuODk2YTQgNCAwIDAgMSAuNTg1LS4zOTYifV0sWyJwYXRoIix7ZDoiTTYgMThhNCA0IDAgMCAxLTEuOTY3LS41MTYifV0sWyJwYXRoIix7ZDoiTTEyIDEzaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE4aDZhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA4aDgifV0sWyJwYXRoIix7ZDoiTTE2IDhWNWEyIDIgMCAwIDEgMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTMiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMyIscjoiLjUifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIyMSIscjoiLjUifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI4IixyOiIuNSJ9XV19KTt2YXIgZEMsaUNlPWcoKCk9PntkQz1bWyJwYXRoIix7ZDoibTEwLjg1MiAxNC43NzItLjM4My45MjMifV0sWyJwYXRoIix7ZDoibTEwLjg1MiA5LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjE0OCAxNC43NzIuMzgyLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTMuNTMxIDguMzA1LS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTAuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTMuMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMCAwLTUuNjMtMS40NDYgMyAzIDAgMCAwLS4zNjggMS41NzEgNCA0IDAgMCAwLTIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xNy45OTggNS4xMjVhNCA0IDAgMCAxIDIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xOS41MDUgMTAuMjk0YTQgNCAwIDAgMS0xLjUgNy43MDYifV0sWyJwYXRoIix7ZDoiTTQuMDMyIDE3LjQ4M0E0IDQgMCAwIDAgMTEuNDY0IDIwYy4xOC0uMzExLjg5Mi0uMzExIDEuMDcyIDBhNCA0IDAgMCAwIDcuNDMyLTIuNTE2In1dLFsicGF0aCIse2Q6Ik00LjUgMTAuMjkxQTQgNCAwIDAgMCA2IDE4In1dLFsicGF0aCIse2Q6Ik02LjAwMiA1LjEyNWEzIDMgMCAwIDAgLjQgMS4zNzUifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEzLjE0OC0uOTIzLjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciB1QyxyQ2U9ZygoKT0+e3VDPVtbInBhdGgiLHtkOiJNMTYgM3YyLjEwNyJ9XSxbInBhdGgiLHtkOiJNMTcgOWMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAyMiAxN2E1IDUgMCAwIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDMTMgMTEuNSAxNiA5IDE3IDkifV0sWyJwYXRoIix7ZDoiTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWg1LjI1MyJ9XSxbInBhdGgiLHtkOiJNMyA5aDguMjI4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciBwQyxvQ2U9ZygoKT0+e3BDPVtbInBhdGgiLHtkOiJNMTIgMThWNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTNhNC4xNyA0LjE3IDAgMCAxLTMtNCA0LjE3IDQuMTcgMCAwIDEtMyA0In1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDEgMC01LjU5OCAxLjUifV0sWyJwYXRoIix7ZDoiTTE3Ljk5NyA1LjEyNWE0IDQgMCAwIDEgMi41MjYgNS43NyJ9XSxbInBhdGgiLHtkOiJNMTggMThhNCA0IDAgMCAwIDItNy40NjQifV0sWyJwYXRoIix7ZDoiTTE5Ljk2NyAxNy40ODNBNCA0IDAgMSAxIDEyIDE4YTQgNCAwIDEgMS03Ljk2Ny0uNTE3In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0yLTcuNDY0In1dLFsicGF0aCIse2Q6Ik02LjAwMyA1LjEyNWE0IDQgMCAwIDAtMi41MjYgNS43NyJ9XV19KTt2YXIgaEMsbkNlPWcoKCk9PntoQz1bWyJwYXRoIix7ZDoiTTEyIDl2MS4yNTgifV0sWyJwYXRoIix7ZDoiTTE2IDN2NS40NiJ9XSxbInBhdGgiLHtkOiJNMjEgOS4xMThWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDUuNzUifV0sWyJwYXRoIix7ZDoiTTIyIDE3LjVjMCAyLjQ5OS0xLjc1IDMuNzQ5LTMuODMgNC40NzRhLjUuNSAwIDAgMS0uMzM1LS4wMDVjLTIuMDg1LS43Mi0zLjgzNS0xLjk3LTMuODM1LTQuNDdWMTRhLjUuNSAwIDAgMSAuNS0uNDk5YzEgMCAyLjI1LS42IDMuMTItMS4zNmEuNi42IDAgMCAxIC43Ni0uMDAxYy44NzUuNzY1IDIuMTIgMS4zNiAzLjEyIDEuMzZhLjUuNSAwIDAgMSAuNS41eiJ9XSxbInBhdGgiLHtkOiJNMyAxNWg3In1dLFsicGF0aCIse2Q6Ik0zIDloMTIuMTQyIn1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciBmQyxsQ2U9ZygoKT0+e2ZDPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV0sWyJwYXRoIix7ZDoiTTE2IDE1djYifV0sWyJwYXRoIix7ZDoiTTE2IDN2NiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciBtQyxjQ2U9ZygoKT0+e21DPVtbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIyIDEzYTE4LjE1IDE4LjE1IDAgMCAxLTIwIDAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgZ0MsZENlPWcoKCk9PntnQz1bWyJwYXRoIix7ZDoiTTEwIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4IDIwdjIifV0sWyJwYXRoIix7ZDoiTTIxIDIwSDMifV0sWyJwYXRoIix7ZDoiTTYgMjB2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEyIn1dLFsicmVjdCIse3g6IjQiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMCIscng6IjIifV1dfSk7dmFyIGJDLHVDZT1nKCgpPT57YkM9W1sicGF0aCIse2Q6Ik0xMiAxMXY0In1dLFsicGF0aCIse2Q6Ik0xNCAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOCA2djE0In1dLFsicGF0aCIse2Q6Ik02IDZ2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgdkMscENlPWcoKCk9Pnt2Qz1bWyJwYXRoIix7ZDoiTTE2IDIwVjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjE2In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIHhDLGhDZT1nKCgpPT57eEM9W1sicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDEwYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMjBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMiJ9XV19KTt2YXIgeUMsZkNlPWcoKCk9Pnt5Qz1bWyJwYXRoIix7ZDoibTE2IDIyLTEtNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0yaC0zYTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtNCAwdjVhMSAxIDAgMCAxLTEgMUg2YTIgMiAwIDAgMC0yIDJ2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNEg1bC0xLjk3MyA2Ljc2N0ExIDEgMCAwIDAgNCAyMmgxNmExIDEgMCAwIDAgLjk3My0xLjIzM3oifV0sWyJwYXRoIix7ZDoibTggMjIgMS00In1dXX0pO3ZhciB3QyxtQ2U9ZygoKT0+e3dDPVtbInBhdGgiLHtkOiJtMTEgMTAgMyAzIn1dLFsicGF0aCIse2Q6Ik02LjUgMjFBMy41IDMuNSAwIDEgMCAzIDE3LjVhMi42MiAyLjYyIDAgMCAxLS43MDggMS43OTJBMSAxIDAgMCAwIDMgMjF6In1dLFsicGF0aCIse2Q6Ik05Ljk2OSAxNy4wMzEgMjEuMzc4IDUuNjI0YTEgMSAwIDAgMC0zLjAwMi0zLjAwMkw2Ljk2NyAxNC4wMzEifV1dfSk7dmFyIGtDLGdDZT1nKCgpPT57a0M9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTRhNCA0IDAgMCAxIDQgNHYxLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0xNy4xMjMgMTcuMTIzQTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSAxLjcyLTMuMjg3In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTMuMzQ0In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkuNzEyIDQuMDZBMyAzIDAgMCAxIDE1IDZ2MS4xMyJ9XV19KTt2YXIgU0MsYkNlPWcoKCk9PntTQz1bWyJwYXRoIix7ZDoiTTcuMDAxIDE1LjA4NUExLjUgMS41IDAgMCAxIDkgMTYuNSJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiOC41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiNS41In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjQuNSIscjoiMi41In1dXX0pO3ZhciBfQyx2Q2U9ZygoKT0+e19DPVtbInBhdGgiLHtkOiJNMTAgMTkuNjU1QTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSA0LTRoNGE0IDQgMCAwIDEgNCAzLjk3In1dLFsicGF0aCIse2Q6Ik0xNCAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMifV1dfSk7dmFyIE1DLHhDZT1nKCgpPT57TUM9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOSJ9XSxbInBhdGgiLHtkOiJNMTQgN2E0IDQgMCAwIDEgNCA0djNhNiA2IDAgMCAxLTEyIDB2LTNhNCA0IDAgMCAxIDQtNHoifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMjFhNCA0IDAgMCAwLTMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0yMiAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMifV1dfSk7dmFyIHpDLHlDZT1nKCgpPT57ekM9W1sicGF0aCIse2Q6Ik0xMiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDIydi0zYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjMifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgQ0Msd0NlPWcoKCk9PntDQz1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMjFWNWEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxNiJ9XV19KTt2YXIgVEMsa0NlPWcoKCk9PntUQz1bWyJwYXRoIix7ZDoiTTQgNiAyIDcifV0sWyJwYXRoIix7ZDoiTTEwIDZoNCJ9XSxbInBhdGgiLHtkOiJtMjIgNy0yLTEifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMWgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMXYtMiJ9XV19KTt2YXIgJEMsU0NlPWcoKCk9PnskQz1bWyJwYXRoIix7ZDoiTTggNnY2In1dLFsicGF0aCIse2Q6Ik0xNSA2djYifV0sWyJwYXRoIix7ZDoiTTIgMTJoMTkuNiJ9XSxbInBhdGgiLHtkOiJNMTggMThoM3MuNS0xLjcuOC0yLjhjLjEtLjQuMi0uOC4yLTEuMiAwLS40LS4xLS44LS4yLTEuMmwtMS40LTVDMjAuMSA2LjggMTkuMSA2IDE4IDZINGEyIDIgMCAwIDAtMiAydjEwaDMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgREMsX0NlPWcoKCk9PntEQz1bWyJwYXRoIix7ZDoiTTE3IDE5YTEgMSAwIDAgMS0xLTF2LTJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE5IDE0VjYuNWExIDEgMCAwIDAtNyAwdjExYTEgMSAwIDAgMS03IDBWMTAifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0zIDVWMyJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjZhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyA1VjMifV1dfSk7dmFyIExDLE1DZT1nKCgpPT57TEM9W1sicGF0aCIse2Q6Ik0xMCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmguMDEifV0sWyJwYXRoIix7ZDoibTIgOSAyMC01In1dLFsicGF0aCIse2Q6Ik0xMiAxMlY2LjUifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEwIix4OiI0Iix5OiIxMiIscng6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV19KTt2YXIgRUMsekNlPWcoKCk9PntFQz1bWyJwYXRoIix7ZDoiTTE2IDEzSDMifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDMifV0sWyJwYXRoIix7ZDoibTcuMiA3LjktMy4zODggMi41QTIgMiAwIDAgMCAzIDEyLjAxVjIwYTEgMSAwIDAgMCAxIDFoMTZhMSAxIDAgMCAwIDEtMXYtOC42NTRjMC0yLTIuNDQtNi4wMjYtNi40NC04LjAyNmExIDEgMCAwIDAtMS4wODIuMDU3TDEwLjQgNS42In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiIyIn1dXX0pO3ZhciBQQyxDQ2U9ZygoKT0+e1BDPVtbInBhdGgiLHtkOiJNMjAgMjF2LThhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNCAxNnMuNS0xIDItMSAyLjUgMiA0IDIgMi41LTIgNC0yIDIuNSAyIDQgMiAyLTEgMi0xIn1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dLFsicGF0aCIse2Q6Ik03IDh2MyJ9XSxbInBhdGgiLHtkOiJNMTIgOHYzIn1dLFsicGF0aCIse2Q6Ik0xNyA4djMifV0sWyJwYXRoIix7ZDoiTTcgNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyA0aC4wMSJ9XV19KTt2YXIgSUMsVENlPWcoKCk9PntJQz1bWyJwYXRoIix7ZDoiTTExIDE0aDF2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBBQywkQ2U9ZygoKT0+e0FDPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNiIseTE6IjE0Iix5MjoiMTgifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XV19KTt2YXIgTkMsRENlPWcoKCk9PntOQz1bWyJwYXRoIix7ZDoibTE0IDE4IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTR2OCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMzU0VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjM0MyJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIFJDLExDZT1nKCgpPT57UkM9W1sicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dLFsicGF0aCIse2Q6Ik0yMSAxMS4zNDNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDkifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBPQyxFQ2U9ZygoKT0+e09DPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dfSk7dmFyIEZDLFBDZT1nKCgpPT57RkM9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMiAyIDQtNCJ9XV19KTt2YXIgQkMsSUNlPWcoKCk9PntCQz1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSA3LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXX0pO3ZhciBIQyxBQ2U9ZygoKT0+e0hDPVtbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuNDcgMTQuMzA1LjM4Mi45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBxQyxOQ2U9ZygoKT0+e3FDPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC4wMSJ9XV19KTt2YXIgakMsUkNlPWcoKCk9PntqQz1bWyJwYXRoIix7ZDoiTTMgMjBhMiAyIDAgMCAwIDIgMmgxMGEyLjQgMi40IDAgMCAwIDEuNzA2LS43MDZsMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAyMSAxNlY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJ2LTVhMSAxIDAgMCAxIDEtMWg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dXX0pO3ZhciBWQyxPQ2U9ZygoKT0+e1ZDPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dXX0pO3ZhciBVQyxGQ2U9ZygoKT0+e1VDPVtbInBhdGgiLHtkOiJNMTIuMTI3IDIySDVhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjEyNSJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgV0MsQkNlPWcoKCk9PntXQz1bWyJwYXRoIix7ZDoiTTQuMiA0LjJBMiAyIDAgMCAwIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAxLjgyLTEuMTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1LjVWNmEyIDIgMCAwIDAtMi0ySDkuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDcifV0sWyJwYXRoIix7ZDoiTTIxIDEwaC01LjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgR0MsSENlPWcoKCk9PntHQz1bWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIEtDLHFDZT1nKCgpPT57S0M9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTEwIDE2aDQifV0sWyJwYXRoIix7ZDoiTTEyIDE0djQifV1dfSk7dmFyIFlDLGpDZT1nKCgpPT57WUM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC02In1dLFsicGF0aCIse2Q6Ik0xMyAxOEg3In1dLFsicGF0aCIse2Q6Ik03IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMThoLjAxIn1dXX0pO3ZhciBaQyxWQ2U9ZygoKT0+e1pDPVtbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIFhDLFVDZT1nKCgpPT57WEM9W1sicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDExLjc1VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjI1In1dLFsicGF0aCIse2Q6Im0yMiAyMi0xLjg3NS0xLjg3NSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgUUMsV0NlPWcoKCk9PntRQz1bWyJwYXRoIix7ZDoiTTExIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoibTIxIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMjEgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIxIDguNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNC4zIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDQifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBKQyxHQ2U9ZygoKT0+e0pDPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE3IDIyIDUtNSJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNSA1In1dXX0pO3ZhciBlVCxLQ2U9ZygoKT0+e2VUPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im0xNCAxNC00IDQifV0sWyJwYXRoIix7ZDoibTEwIDE0IDQgNCJ9XV19KTt2YXIgdFQsWUNlPWcoKCk9Pnt0VD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV19KTt2YXIgYVQsWkNlPWcoKCk9PnthVD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTUuNzI2IDIxLjAxQTIgMiAwIDAgMSAxNCAyMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMTggMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTggOGgxNCJ9XSxbInJlY3QiLHt4OiI4Iix5OiIzIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBzVCxYQ2U9ZygoKT0+e3NUPVtbInBhdGgiLHtkOiJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1In1dLFsicGF0aCIse2Q6Ik05LjY5NSA0LjAyNEEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQifV1dfSk7dmFyIGlULFFDZT1nKCgpPT57aVQ9W1sicGF0aCIse2Q6Ik0xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMyJ9XV19KTt2YXIgclQsSkNlPWcoKCk9PntyVD1bWyJwYXRoIix7ZDoiTTUuNyAyMWEyIDIgMCAwIDEtMy41LTJsOC42LTE0YTYgNiAwIDAgMSAxMC40IDYgMiAyIDAgMSAxLTMuNDY0LTIgMiAyIDAgMSAwLTMuNDY0LTJaIn1dLFsicGF0aCIse2Q6Ik0xNy43NSA3IDE1IDIuMSJ9XSxbInBhdGgiLHtkOiJNMTAuOSA0LjggMTMgOSJ9XSxbInBhdGgiLHtkOiJtNy45IDkuNyAyIDQuNCJ9XSxbInBhdGgiLHtkOiJNNC45IDE0LjcgNyAxOC45In1dXX0pO3ZhciBvVCxlVGU9ZygoKT0+e29UPVtbInBhdGgiLHtkOiJNMTAgN3YxMC45In1dLFsicGF0aCIse2Q6Ik0xNCA2LjFWMTcifV0sWyJwYXRoIix7ZDoiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00In1dLFsicGF0aCIse2Q6Ik0xNi41MzYgNy40NjVhNSA1IDAgMCAwLTcuMDcyIDBsLTIgMmE1IDUgMCAwIDAgMCA3LjA3IDUgNSAwIDAgMCA3LjA3MiAwbDItMmE1IDUgMCAwIDAgMC03LjA3In1dLFsicGF0aCIse2Q6Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0In1dXX0pO3ZhciBuVCx0VGU9ZygoKT0+e25UPVtbInBhdGgiLHtkOiJNMTAgMTB2Ny45In1dLFsicGF0aCIse2Q6Ik0xMS44MDIgNi4xNDVhNSA1IDAgMCAxIDYuMDUzIDYuMDUzIn1dLFsicGF0aCIse2Q6Ik0xNCA2LjF2Mi4yNDMifV0sWyJwYXRoIix7ZDoibTE1LjUgMTUuNTcxLS45NjQuOTY0YTUgNSAwIDAgMS03LjA3MSAwIDUgNSAwIDAgMSAwLTcuMDdsLjk2NC0uOTY1In1dLFsicGF0aCIse2Q6Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0In1dXX0pO3ZhciBsVCxhVGU9ZygoKT0+e2xUPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTRjMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSJ9XSxbInBhdGgiLHtkOiJNMTMuOTg4IDguMzI3QzEzLjkwMiA2LjA1NCAxMy4zNjUgMy44MiAxMiAyYTkuMyA5LjMgMCAwIDAtMS40NDUgMi45In1dLFsicGF0aCIse2Q6Ik0xNy4zNzUgMTEuNzI1QzE4Ljg4MiAxMC41MyAyMSA3Ljg0MSAyMSA2Yy0yLjMyNCAwLTUuMDggMS4yOTYtNi42NjIgMi42ODQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEuMDI0IDE1LjM3OEExNSAxNSAwIDAgMCAyMiAxNWMtLjQyNi0xLjI3OS0yLjY3LTIuNTU3LTQuMjUtMi45MDcifV0sWyJwYXRoIix7ZDoiTTYuOTk1IDYuOTkyQzUuNzE0IDYuNCA0LjI5IDYgMyA2YzAgMiAyLjUgNSA0IDYtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIn1dXX0pO3ZhciBjVCxzVGU9ZygoKT0+e2NUPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV0sWyJwYXRoIix7ZDoiTTcgMTJjLTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyAxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01IDAgMCAyLjUuNSA2LTEtLjUtMS41LTMuNS0zLTUtMyAxLjUtMSA0LTQgNC02LTIuNSAwLTUuNSAxLjUtNyAzIDAtMi41LS41LTUtMi03LTEuNSAyLTIgNC41LTIgNy0xLjUtMS41LTQuNS0zLTctMyAwIDIgMi41IDUgNCA2In1dXX0pO3ZhciBkVCxpVGU9ZygoKT0+e2RUPVtbInBhdGgiLHtkOiJNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41In1dLFsicGF0aCIse2Q6Ik0xNyAxMWgtLjUifV0sWyJwYXRoIix7ZDoiTTE5IDE5SDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNyAxMWg0In1dLFsicGF0aCIse2Q6Ik03IDE1aDIuNSJ9XV19KTt2YXIgQWYsclRlPWcoKCk9PntBZj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE0Iix4OiIzIix5OiI1IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTVoNE0xNSAxNWgyTTcgMTFoMk0xMyAxMWg0In1dXX0pO3ZhciB1VCxvVGU9ZygoKT0+e3VUPVtbInBhdGgiLHtkOiJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiOCIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dfSk7dmFyIHBULG5UZT1nKCgpPT57cFQ9W1sicGF0aCIse2Q6Ik0xOSAxN2gyYy42IDAgMS0uNCAxLTF2LTNjMC0uOS0uNy0xLjctMS41LTEuOUMxOC43IDEwLjYgMTYgMTAgMTYgMTBzLTEuMy0xLjQtMi4yLTIuM2MtLjUtLjQtMS4xLS43LTEuOC0uN0g1Yy0uNiAwLTEuMS40LTEuNC45bC0xLjQgMi45QTMuNyAzLjcgMCAwIDAgMiAxMnY0YzAgLjYuNCAxIDEgMWgyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjIifV1dfSk7dmFyIGhULGxUZT1nKCgpPT57aFQ9W1sicGF0aCIse2Q6Ik0xMCAyaDQifV0sWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciBmVCxjVGU9ZygoKT0+e2ZUPVtbInBhdGgiLHtkOiJNMTggMTlWOWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHY4YTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTd2MWExIDEgMCAwIDEtMSAxSDEwdi05YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjkifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBtVCxkVGU9ZygoKT0+e21UPVtbInBhdGgiLHtkOiJNMTIgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicmVjdCIse3g6IjgiLHk6IjEwIix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgZ1QsdVRlPWcoKCk9PntnVD1bWyJwYXRoIix7ZDoiTTIuMjcgMjEuN3M5Ljg3LTMuNSAxMi43My02LjM2YTQuNSA0LjUgMCAwIDAtNi4zNi02LjM3QzUuNzcgMTEuODQgMi4yNyAyMS43IDIuMjcgMjEuN3pNOC42NCAxNGwtMi4wNS0yLjA0TTE1LjM0IDE1bC0yLjQ2LTIuNDYifV0sWyJwYXRoIix7ZDoiTTIyIDlzLTEuMzMtMi0zLjUtMkMxNi44NiA3IDE1IDkgMTUgOXMxLjMzIDIgMy41IDJTMjIgOSAyMiA5eiJ9XSxbInBhdGgiLHtkOiJNMTUgMnMtMiAxLjMzLTIgMy41UzE1IDkgMTUgOXMyLTEuODQgMi0zLjVDMTcgMy4zMyAxNSAyIDE1IDJ6In1dXX0pO3ZhciBiVCxwVGU9ZygoKT0+e2JUPVtbInBhdGgiLHtkOiJNMTAgOXY3In1dLFsicGF0aCIse2Q6Ik0xNCA2djEwIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMi41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiMTIuNSIscjoiMy41In1dXX0pO3ZhciB2VCxoVGU9ZygoKT0+e3ZUPVtbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0yMiA5djcifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxMi41IixyOiIzLjUifV1dfSk7dmFyIHhULGZUZT1nKCgpPT57eFQ9W1sicGF0aCIse2Q6Ik0xNSAxMWg0LjVhMSAxIDAgMCAxIDAgNWgtNGEuNS41IDAgMCAxLS41LS41di05YS41LjUgMCAwIDEgLjUtLjVoM2ExIDEgMCAwIDEgMCA1In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciB5VCxtVGU9ZygoKT0+e3lUPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoibTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMifV1dfSk7dmFyIHdULGdUZT1nKCgpPT57d1Q9W1sicGF0aCIse2Q6Ik0yIDhWNmEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxMmE5IDkgMCAwIDEgOCA4In1dLFsicGF0aCIse2Q6Ik0yIDE2YTUgNSAwIDAgMSA0IDQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyLjAxIix5MToiMjAiLHkyOiIyMCJ9XV19KTt2YXIga1QsYlRlPWcoKCk9PntrVD1bWyJwYXRoIix7ZDoiTTEwIDVWMyJ9XSxbInBhdGgiLHtkOiJNMTQgNVYzIn1dLFsicGF0aCIse2Q6Ik0xNSAyMXYtM2EzIDMgMCAwIDAtNiAwdjMifV0sWyJwYXRoIix7ZDoiTTE4IDN2OCJ9XSxbInBhdGgiLHtkOiJNMTggNUg2In1dLFsicGF0aCIse2Q6Ik0yMiAxMUgyIn1dLFsicGF0aCIse2Q6Ik0yMiA5djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjkifV0sWyJwYXRoIix7ZDoiTTYgM3Y4In1dXX0pO3ZhciBTVCx2VGU9ZygoKT0+e1NUPVtbInBhdGgiLHtkOiJNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVoifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaIn1dXX0pO3ZhciBfVCx4VGU9ZygoKT0+e19UPVtbInBhdGgiLHtkOiJtMTIuMzA5IDYuNjUyIDQuNzk3IDIuNDAxYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0uNTAxIDEuMDAxLjYwNS42MDVoMi43MjVhMSAxIDAgMCAxIC44OTQgMS40NDdsLS43MjQgMS40NDgifV0sWyJwYXRoIix7ZDoibTE1LjE2NiAxNS4xNjYtLjcxOSAxLjQzOWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45IDIuOSAwIDAgMSAuODczLTEuMDM3In1dLFsicGF0aCIse2Q6Ik0yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFsMS40NDEtMi45MDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMiAyMXYtNCJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XV19KTt2YXIgTVQseVRlPWcoKCk9PntNVD1bWyJwYXRoIix7ZDoiTTE2Ljc1IDEyaDMuNjMyYTEgMSAwIDAgMSAuODk0IDEuNDQ3bC0yLjAzNCA0LjA2OWExIDEgMCAwIDEtMS43MDguMTM0bC0yLjEyNC0yLjk3In1dLFsicGF0aCIse2Q6Ik0xNy4xMDYgOS4wNTNhMSAxIDAgMCAxIC40NDcgMS4zNDFsLTMuMTA2IDYuMjExYTEgMSAwIDAgMS0xLjM0Mi40NDdMMy42MSAxMi4zYTIuOTIgMi45MiAwIDAgMS0xLjMtMy45MUwzLjY5IDUuNmEyLjkyIDIuOTIgMCAwIDEgMy45Mi0xLjN6In1dLFsicGF0aCIse2Q6Ik0yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFMOSAxNSJ9XSxbInBhdGgiLHtkOiJNMiAyMXYtNCJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XV19KTt2YXIgTmYsd1RlPWcoKCk9PntOZj1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExLjIwN2EuNS41IDAgMCAxIC4xNDYtLjM1M2wyLTJhLjUuNSAwIDAgMSAuNzA4IDBsMy4yOTIgMy4yOTJhLjUuNSAwIDAgMCAuNzA4IDBsNC4yOTItNC4yOTJhLjUuNSAwIDAgMSAuODU0LjM1M1YxNmExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIFJmLGtUZT1nKCgpPT57UmY9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiI3Iix5OiIxMyIsd2lkdGg6IjkiLGhlaWdodDoiNCIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiNSIsd2lkdGg6IjEyIixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciB6VCxTVGU9ZygoKT0+e3pUPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgzIn1dLFsicGF0aCIse2Q6Ik03IDZoMTIifV1dfSk7dmFyIENULF9UZT1nKCgpPT57Q1Q9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxMWg4In1dLFsicGF0aCIse2Q6Ik03IDE2aDEyIn1dLFsicGF0aCIse2Q6Ik03IDZoMyJ9XV19KTt2YXIgVFQsTVRlPWcoKCk9PntUVD1bWyJwYXRoIix7ZDoiTTExIDEzdjQifV0sWyJwYXRoIix7ZDoiTTE1IDV2NCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgT2YselRlPWcoKCk9PntPZj1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDE2aDgifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTIifV0sWyJwYXRoIix7ZDoiTTcgNmgzIn1dXX0pO3ZhciBGZixDVGU9ZygoKT0+e0ZmPVtbInBhdGgiLHtkOiJNOSA1djQifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNiIseDoiNyIseToiOSIscng6IjEifV0sWyJwYXRoIix7ZDoiTTkgMTV2MiJ9XSxbInBhdGgiLHtkOiJNMTcgM3YyIn1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjgiLHg6IjE1Iix5OiI1IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2MyJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV1dfSk7dmFyIEJmLFRUZT1nKCgpPT57QmY9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNSIsd2lkdGg6IjQiLGhlaWdodDoiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjkiLHJ4OiIxIn1dXX0pO3ZhciAkVCwkVGU9ZygoKT0+eyRUPVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTd2LTMifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik04IDE3VjUifV1dfSk7dmFyIEhmLERUZT1nKCgpPT57SGY9W1sicGF0aCIse2Q6Ik0xMyAxN1Y5In1dLFsicGF0aCIse2Q6Ik0xOCAxN1Y1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV19KTt2YXIgRFQsTFRlPWcoKCk9PntEVD1bWyJwYXRoIix7ZDoiTTExIDEzSDcifV0sWyJwYXRoIix7ZDoiTTE5IDloLTQifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI1Iix3aWR0aDoiNCIsaGVpZ2h0OiIxMiIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOSIscng6IjEifV1dfSk7dmFyIHFmLEVUZT1nKCgpPT57cWY9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNMTggMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTdWNSJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV19KTt2YXIgTFQsUFRlPWcoKCk9PntMVD1bWyJwYXRoIix7ZDoiTTEwIDZoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNiJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTFoNyJ9XV19KTt2YXIgamYsSVRlPWcoKCk9PntqZj1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Im0xOSA5LTUgNS00LTQtMyAzIn1dXX0pO3ZhciBFVCxBVGU9ZygoKT0+e0VUPVtbInBhdGgiLHtkOiJtMTMuMTEgNy42NjQgMS43OCAyLjY3MiJ9XSxbInBhdGgiLHtkOiJtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCJ9XSxbInBhdGgiLHtkOiJtMjAgNC02LjA2IDEuNTE1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjIifV1dfSk7dmFyIFBULE5UZT1nKCgpPT57UFQ9W1sicGF0aCIse2Q6Ik01IDIxVjMifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjkifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi02In1dXX0pO3ZhciBWZixSVGU9ZygoKT0+e1ZmPVtbInBhdGgiLHtkOiJNNSAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgMjFWOSJ9XSxbInBhdGgiLHtkOiJNMTkgMjFWMyJ9XV19KTt2YXIgVWYsT1RlPWcoKCk9PntVZj1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjkifV1dfSk7dmFyIElULEZUZT1nKCgpPT57SVQ9W1sicGF0aCIse2Q6Ik0xMiAxNnY1In1dLFsicGF0aCIse2Q6Ik0xNiAxNHY3In1dLFsicGF0aCIse2Q6Ik0yMCAxMHYxMSJ9XSxbInBhdGgiLHtkOiJtMjIgMy04LjY0NiA4LjY0NmEuNS41IDAgMCAxLS43MDggMEw5LjM1NCA4LjM1NGEuNS41IDAgMCAwLS43MDcgMEwyIDE1In1dLFsicGF0aCIse2Q6Ik00IDE4djMifV0sWyJwYXRoIix7ZDoiTTggMTR2NyJ9XV19KTt2YXIgV2YsQlRlPWcoKCk9PntXZj1bWyJwYXRoIix7ZDoiTTYgNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTloOCJ9XV19KTt2YXIgR2YsSFRlPWcoKCk9PntHZj1bWyJwYXRoIix7ZDoiTTIxIDEyYy41NTIgMCAxLjAwNS0uNDQ5Ljk1LS45OThhMTAgMTAgMCAwIDAtOC45NTMtOC45NTFjLS41NS0uMDU1LS45OTguMzk4LS45OTguOTV2OGExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMjEuMjEgMTUuODlBMTAgMTAgMCAxIDEgOCAyLjgzIn1dXX0pO3ZhciBLZixxVGU9ZygoKT0+e0tmPVtbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjUuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTEuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XV19KTt2YXIgQVQsalRlPWcoKCk9PntBVD1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDE2Yy41LTIgMS41LTcgNC03IDIgMCAyIDMgNCAzIDIuNSAwIDQuNS01IDUtNyJ9XV19KTt2YXIgTlQsVlRlPWcoKCk9PntOVD1bWyJwYXRoIix7ZDoiTTE4IDYgNyAxN2wtNS01In1dLFsicGF0aCIse2Q6Im0yMiAxMC03LjUgNy41TDEzIDE2In1dXX0pO3ZhciBSVCxVVGU9ZygoKT0+e1JUPVtbInBhdGgiLHtkOiJNMjAgNEw5IDE1In1dLFsicGF0aCIse2Q6Ik0yMSAxOUwzIDE5In1dLFsicGF0aCIse2Q6Ik05IDE1TDQgMTAifV1dfSk7dmFyIE9ULFdUZT1nKCgpPT57T1Q9W1sicGF0aCIse2Q6Ik0yMCA2IDkgMTdsLTUtNSJ9XV19KTt2YXIgRlQsR1RlPWcoKCk9PntGVD1bWyJwYXRoIix7ZDoiTTE3IDIxYTEgMSAwIDAgMCAxLTF2LTUuMzVjMC0uNDU3LjMxNi0uODQ0LjcyNy0xLjA0MWE0IDQgMCAwIDAtMi4xMzQtNy41ODkgNSA1IDAgMCAwLTkuMTg2IDAgNCA0IDAgMCAwLTIuMTM0IDcuNTg4Yy40MTEuMTk4LjcyNy41ODUuNzI3IDEuMDQxVjIwYTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik02IDE3aDEyIn1dXX0pO3ZhciBCVCxLVGU9ZygoKT0+e0JUPVtbInBhdGgiLHtkOiJNMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oifV0sWyJwYXRoIix7ZDoiTTEyIDE3YTUgNSAwIDAgMCAxMCAwYzAtMi43Ni0yLjUtNS01LTMtMi41LTItNSAuMjQtNSAzWiJ9XSxbInBhdGgiLHtkOiJNNyAxNGMzLjIyLTIuOTEgNC4yOS04Ljc1IDUtMTIgMS42NiAyLjM4IDQuOTQgOSA1IDEyIn1dLFsicGF0aCIse2Q6Ik0yMiA5Yy00LjI5IDAtNy4xNC0yLjMzLTEwLTcgNS43MSAwIDEwIDQuNjcgMTAgN1oifV1dfSk7dmFyIEhULFlUZT1nKCgpPT57SFQ9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY2LjgxOCJ9XV19KTt2YXIgcVQsWlRlPWcoKCk9PntxVD1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNSAxOGMxLjUtLjYxNSAzLTIuNDYxIDMtNC45MjNDMTggOC43NjkgMTQuNSA0LjQ2MiAxMiAyIDkuNSA0LjQ2MiA2IDguNzcgNiAxMy4wNzcgNiAxNS41MzkgNy41IDE3LjM4NSA5IDE4In1dLFsicGF0aCIse2Q6Im0xNiA3LTIuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMmg2In1dXX0pO3ZhciBqVCxYVGU9ZygoKT0+e2pUPVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTE2LjUgMThjMS0yIDIuNS01IDIuNS05YTcgNyAwIDAgMC03LTdINi42MzVhMSAxIDAgMCAwLS43NjggMS42NEw3IDVsLTIuMzIgNS44MDJhMiAyIDAgMCAwIC45NSAyLjUyNmwyLjg3IDEuNDU2In1dLFsicGF0aCIse2Q6Im0xNSA1IDEuNDI1LTEuNDI1In1dLFsicGF0aCIse2Q6Im0xNyA4IDEuNTMtMS41MyJ9XSxbInBhdGgiLHtkOiJNOS43MTMgMTIuMTg1IDcgMTgifV1dfSk7dmFyIFZULFFUZT1nKCgpPT57VlQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMCAxLjUgOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCAxLjUtOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjQifV1dfSk7dmFyIFVULEpUZT1nKCgpPT57VVQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoibTE3IDE4LTEtOSJ9XSxbInBhdGgiLHtkOiJNNiAydjVhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNiA0aDEyIn1dLFsicGF0aCIse2Q6Im03IDE4IDEtOSJ9XV19KTt2YXIgV1QsZSRlPWcoKCk9PntXVD1bWyJwYXRoIix7ZDoibTYgOSA2IDYgNi02In1dXX0pO3ZhciBHVCx0JGU9ZygoKT0+e0dUPVtbInBhdGgiLHtkOiJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMiJ9XSxbInBhdGgiLHtkOiJtMjAgOS0zIDkifV0sWyJwYXRoIix7ZDoibTUuNTk0IDguMjA5IDIuNjE1IDMuNDAzYTEgMSAwIDAgMCAxLjc1LS4zMjlsMS41NjctNS4zNCJ9XSxbInBhdGgiLHtkOiJNNyAxOCA0IDkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiNyIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiNyIscjoiMiJ9XV19KTt2YXIgS1QsYSRlPWcoKCk9PntLVD1bWyJwYXRoIix7ZDoibTE3IDE4LTYtNiA2LTYifV0sWyJwYXRoIix7ZDoiTTcgNnYxMiJ9XV19KTt2YXIgWVQscyRlPWcoKCk9PntZVD1bWyJwYXRoIix7ZDoibTcgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTcgNnYxMiJ9XV19KTt2YXIgWlQsaSRlPWcoKCk9PntaVD1bWyJwYXRoIix7ZDoibTE1IDE4LTYtNiA2LTYifV1dfSk7dmFyIFhULHIkZT1nKCgpPT57WFQ9W1sicGF0aCIse2Q6Im05IDE4IDYtNi02LTYifV1dfSk7dmFyIFFULG8kZT1nKCgpPT57UVQ9W1sicGF0aCIse2Q6Im0xOCAxNS02LTYtNiA2In1dXX0pO3ZhciBKVCxuJGU9ZygoKT0+e0pUPVtbInBhdGgiLHtkOiJtNyAyMCA1LTUgNSA1In1dLFsicGF0aCIse2Q6Im03IDQgNSA1IDUtNSJ9XV19KTt2YXIgZSQsbCRlPWcoKCk9PntlJD1bWyJwYXRoIix7ZDoibTcgNiA1IDUgNS01In1dLFsicGF0aCIse2Q6Im03IDEzIDUgNSA1LTUifV1dfSk7dmFyIHQkLGMkZT1nKCgpPT57dCQ9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTcgNyA1IDUtNSA1In1dLFsicGF0aCIse2Q6Im03IDctNSA1IDUgNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dfSk7dmFyIGEkLGQkZT1nKCgpPT57YSQ9W1sicGF0aCIse2Q6Im05IDctNSA1IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTUgNyA1IDUtNSA1In1dXX0pO3ZhciBzJCx1JGU9ZygoKT0+e3MkPVtbInBhdGgiLHtkOiJtMTEgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJtMTggMTctNS01IDUtNSJ9XV19KTt2YXIgaSQscCRlPWcoKCk9PntpJD1bWyJwYXRoIix7ZDoibTIwIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTQgMTcgNS01LTUtNSJ9XV19KTt2YXIgciQsaCRlPWcoKCk9PntyJD1bWyJwYXRoIix7ZDoibTYgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJtMTMgMTcgNS01LTUtNSJ9XV19KTt2YXIgbyQsZiRlPWcoKCk9PntvJD1bWyJwYXRoIix7ZDoibTE3IDExLTUtNS01IDUifV0sWyJwYXRoIix7ZDoibTE3IDE4LTUtNS01IDUifV1dfSk7dmFyIG4kLG0kZT1nKCgpPT57biQ9W1sicGF0aCIse2Q6Im03IDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoibTcgOSA1LTUgNSA1In1dXX0pO3ZhciBsJCxnJGU9ZygoKT0+e2wkPVtbInBhdGgiLHtkOiJNMTAgOWg0In1dLFsicGF0aCIse2Q6Ik0xMiA3djUifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJtMTggOSAzLjUyIDIuMTQ3YTEgMSAwIDAgMSAuNDguODU0VjE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi02Ljk5OWExIDEgMCAwIDEgLjQ4LS44NTRMNiA5In1dLFsicGF0aCIse2Q6Ik02IDIxVjdhMSAxIDAgMCAxIC4zNzYtLjc4Mmw1LTMuOTk5YTEgMSAwIDAgMSAxLjI0OS4wMDFsNSA0QTEgMSAwIDAgMSAxOCA3djE0In1dXX0pO3ZhciBjJCxiJGU9ZygoKT0+e2MkPVtbInBhdGgiLHtkOiJNMTIgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxMyJ9XSxbInBhdGgiLHtkOiJNMTggOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0uNS44NjYifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Ik03IDEydjQifV1dfSk7dmFyIGQkLHYkZT1nKCgpPT57ZCQ9W1sicGF0aCIse2Q6Ik0xNyAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDE0In1dLFsicGF0aCIse2Q6Ik0xOCA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXX0pO3ZhciBZZix4JGU9ZygoKT0+e1lmPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIFpmLHkkZT1nKCgpPT57WmY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoibTggMTIgNCA0IDQtNCJ9XV19KTt2YXIgWGYsdyRlPWcoKCk9PntYZj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEyIDgtNCA0IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XV19KTt2YXIgUWYsayRlPWcoKCk9PntRZj1bWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAxIDEgMTAgMTAifV0sWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoiTTggMjJIMnYtNiJ9XV19KTt2YXIgSmYsUyRlPWcoKCk9PntKZj1bWyJwYXRoIix7ZDoiTTEyIDIyYTEwIDEwIDAgMSAxIDEwLTEwIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTZ2NmgtNiJ9XV19KTt2YXIgZW0sXyRlPWcoKCk9PntlbT1bWyJwYXRoIix7ZDoiTTIgOFYyaDYifV0sWyJwYXRoIix7ZDoibTIgMiAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMkExMCAxMCAwIDEgMSAyIDEyIn1dXX0pO3ZhciB0bSxNJGU9ZygoKT0+e3RtPVtbInBhdGgiLHtkOiJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMTYgMmg2djYifV1dfSk7dmFyIGFtLHokZT1nKCgpPT57YW09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dfSk7dmFyIHNtLEMkZT1nKCgpPT57c209W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dXX0pO3ZhciBpbSxUJGU9ZygoKT0+e2ltPVtbInBhdGgiLHtkOiJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1In1dLFsicGF0aCIse2Q6Im05IDExIDMgM0wyMiA0In1dXX0pO3ZhciBybSwkJGU9ZygoKT0+e3JtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dXX0pO3ZhciBvbSxEJGU9ZygoKT0+e29tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgbm0sTCRlPWcoKCk9PntubT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE2IDEwLTQgNC00LTQifV1dfSk7dmFyIGxtLEUkZT1nKCgpPT57bG09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMCA4IDQgNC00IDQifV1dfSk7dmFyIGNtLFAkZT1nKCgpPT57Y209W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIHUkLEkkZT1nKCgpPT57dSQ9W1sicGF0aCIse2Q6Ik0xMC4xIDIuMTgyYTEwIDEwIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xMy45IDIxLjgxOGExMCAxMCAwIDAgMS0zLjggMCJ9XSxbInBhdGgiLHtkOiJNMTcuNjA5IDMuNzIxYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yNzkgMTcuNjA5YTEwIDEwIDAgMCAxLTIuNyAyLjY5In1dLFsicGF0aCIse2Q6Ik0yMS44MTggMTAuMWExMCAxMCAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMy43MjEgNi4zOTFhMTAgMTAgMCAwIDEgMi43LTIuNjkifV0sWyJwYXRoIix7ZDoiTTYuMzkxIDIwLjI3OWExMCAxMCAwIDAgMS0yLjY5LTIuNyJ9XV19KTt2YXIgZG0sQSRlPWcoKCk9PntkbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dfSk7dmFyIHAkLE4kZT1nKCgpPT57cCQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIGgkLFIkZT1nKCgpPT57aCQ9W1sicGF0aCIse2Q6Ik0xMC4xIDIuMThhOS45MyA5LjkzIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42IDMuNzFhOS45NSA5Ljk1IDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yMS44MiAxMC4xYTkuOTMgOS45MyAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjkgMTcuNmE5Ljk1IDkuOTUgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODJhOS45NCA5Ljk0IDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik02LjQgMjAuMjlhOS45NSA5Ljk1IDAgMCAxLTIuNjktMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4IDEzLjlhOS45MyA5LjkzIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0zLjcxIDYuNGE5Ljk1IDkuOTUgMCAwIDEgMi43LTIuNjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgZiQsTyRlPWcoKCk9PntmJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDEyaC4wMSJ9XV19KTt2YXIgbSQsRiRlPWcoKCk9PnttJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgZyQsQiRlPWcoKCk9PntnJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV1dfSk7dmFyIGIkLEgkZT1nKCgpPT57YiQ9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV19KTt2YXIgdiQscSRlPWcoKCk9Pnt2JD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dLFsicGF0aCIse2Q6Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyJ9XSxbInBhdGgiLHtkOiJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCJ9XSxbInBhdGgiLHtkOiJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3In1dLFsicGF0aCIse2Q6Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgifV1dfSk7dmFyIHVtLGokZT1nKCgpPT57dW09W1sicGF0aCIse2Q6Ik0xNS42IDIuN2ExMCAxMCAwIDEgMCA1LjcgNS43In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEzLjQgMTAuNiAxOSA1In1dXX0pO3ZhciBwbSxWJGU9ZygoKT0+e3BtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciB4JCxVJGU9ZygoKT0+e3gkPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSJ9XSxbInBhdGgiLHtkOiJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIn1dXX0pO3ZhciBobSxXJGU9ZygoKT0+e2htPVtbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTNhMyAzIDAgMCAxIDIuOTg0IDMuMzA3In1dLFsicGF0aCIse2Q6Ik0xMyAxM0g5In1dLFsicGF0aCIse2Q6Ik0xOS4wNzEgMTkuMDcxQTEgMSAwIDAgMSA0LjkzIDQuOTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC4zNTcgMi42ODdhMTAgMTAgMCAwIDEgMTIuOTU2IDEyLjk1NiJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y5In1dXX0pO3ZhciBmbSxHJGU9ZygoKT0+e2ZtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5In1dXX0pO3ZhciBtbSxLJGU9ZygoKT0+e21tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgZ20sWSRlPWcoKCk9PntnbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dfSk7dmFyIGJtLFokZT1nKCgpPT57Ym09W1sicGF0aCIse2Q6Ik05IDkuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N0ExIDEgMCAwIDEgOSAxNC45OTZ6In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciB5JCxYJGU9ZygoKT0+e3kkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgdm0sUSRlPWcoKCk9Pnt2bT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciB3JCxKJGU9ZygoKT0+e3ckPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTJoNCJ9XSxbInBhdGgiLHtkOiJNOCAxNmg3In1dXX0pO3ZhciB4bSxlRGU9ZygoKT0+e3htPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1In1dXX0pO3ZhciBqMCx0RGU9ZygoKT0+e2owPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgeW0sYURlPWcoKCk9Pnt5bT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV19KTt2YXIgayQsc0RlPWcoKCk9PntrJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgUyQsaURlPWcoKCk9PntTJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XV19KTt2YXIgXyQsckRlPWcoKCk9PntfJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTExLjA1MSA3LjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2N2wtMS4xNTYtMS4xNTJhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XV19KTt2YXIgd20sb0RlPWcoKCk9Pnt3bT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJyZWN0Iix7eDoiOSIseToiOSIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIGttLG5EZT1nKCgpPT57a209W1sicGF0aCIse2Q6Ik0xNy45MjUgMjAuMDU2YTYgNiAwIDAgMC0xMS44NTEuMDAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIFNtLGxEZT1nKCgpPT57U209W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTcgMjAuNjYyVjE5YTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjEuNjYyIn1dXX0pO3ZhciBfbSxjRGU9ZygoKT0+e19tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIE0kLGREZT1nKCgpPT57TSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciB6JCx1RGU9ZygoKT0+e3okPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMSA5aDRhMiAyIDAgMCAwIDItMlYzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik03IDIxdi00YTIgMiAwIDAgMSAyLTJoNCJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciBDJCxwRGU9ZygoKT0+e0MkPVtbInBhdGgiLHtkOiJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6In1dLFsicGF0aCIse2Q6Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0In1dLFsicGF0aCIse2Q6Im0xNCAxMC01LjUgNS41In1dLFsicGF0aCIse2Q6Ik0xNCAxNy44NVYxMEg2LjE1In1dXX0pO3ZhciBUJCxoRGU9ZygoKT0+e1QkPVtbInBhdGgiLHtkOiJtMTIuMjk2IDMuNDY0IDMuMDIgMy45NTYifV0sWyJwYXRoIix7ZDoiTTIwLjIgNiAzIDExbC0uOS0yLjRjLS4zLTEuMS4zLTIuMiAxLjMtMi41bDEzLjUtNGMxLjEtLjMgMi4yLjMgMi41IDEuM3oifV0sWyJwYXRoIix7ZDoiTTMgMTFoMTh2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoibTYuMTggNS4yNzYgMy4xIDMuODk5In1dXX0pO3ZhciAkJCxmRGU9ZygoKT0+eyQkPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im05IDE0IDIgMiA0LTQifV1dfSk7dmFyIEQkLG1EZT1nKCgpPT57RCQ9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydi44MzIifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIEwkLGdEZT1nKCgpPT57TCQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE0SDExIn1dLFsicGF0aCIse2Q6Im0xNSAxMC00IDQgNCA0In1dXX0pO3ZhciBFJCxiRGU9ZygoKT0+e0UkPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMWg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNmg0In1dLFsicGF0aCIse2Q6Ik04IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIFAkLHZEZT1nKCgpPT57UCQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTkgMTRoNiJ9XV19KTt2YXIgSSQseERlPWcoKCk9PntJJD1bWyJwYXRoIix7ZDoiTTExIDE0aDEwIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxLjM0NCJ9XSxbInBhdGgiLHtkOiJtMTcgMTggNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjc5My0xLjExMyJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgTW0seURlPWcoKCk9PntNbT1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uNSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAxLjczIDEifV0sWyJwYXRoIix7ZDoiTTggMThoMSJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciB6bSx3RGU9ZygoKT0+e3ptPVtbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEuMzQgMTUuNjY0YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTggMjJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBBJCxrRGU9ZygoKT0+e0EkPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDE0aDYifV0sWyJwYXRoIix7ZDoiTTEyIDE3di02In1dXX0pO3ZhciBOJCxTRGU9ZygoKT0+e04kPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDEydi0xaDZ2MSJ9XSxbInBhdGgiLHtkOiJNMTEgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2NiJ9XV19KTt2YXIgUiQsX0RlPWcoKCk9PntSJD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTEtNiA2In1dLFsicGF0aCIse2Q6Im05IDExIDYgNiJ9XV19KTt2YXIgTyQsTURlPWcoKCk9PntPJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwyLTQifV1dfSk7dmFyIEYkLHpEZT1nKCgpPT57RiQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV1dfSk7dmFyIEIkLENEZT1nKCgpPT57QiQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsLTQtMiJ9XV19KTt2YXIgSCQsVERlPWcoKCk9PntIJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwtMi00In1dXX0pO3ZhciBxJCwkRGU9ZygoKT0+e3EkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2In1dXX0pO3ZhciBqJCxERGU9ZygoKT0+e2okPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQtMiJ9XV19KTt2YXIgViQsTERlPWcoKCk9PntWJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmg0In1dXX0pO3ZhciBVJCxFRGU9ZygoKT0+e1UkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XV19KTt2YXIgVyQsUERlPWcoKCk9PntXJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwyIDQifV1dfSk7dmFyIEckLElEZT1nKCgpPT57RyQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djEwIn1dXX0pO3ZhciBLJCxBRGU9ZygoKT0+e0skPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bC00IDIifV1dfSk7dmFyIFkkLE5EZT1nKCgpPT57WSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsLTIgNCJ9XV19KTt2YXIgWiQsUkRlPWcoKCk9PntaJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nkg4In1dXX0pO3ZhciBYJCxPRGU9ZygoKT0+e1gkPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYifV1dfSk7dmFyIFEkLEZEZT1nKCgpPT57USQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsMiAxIn1dLFsicGF0aCIse2Q6Ik0xMi4zMzcgMjEuOTk0YTEwIDEwIDAgMSAxIDkuNTg4LTguNzY3In1dLFsicGF0aCIse2Q6Im0xNCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY4In1dXX0pO3ZhciBKJCxCRGU9ZygoKT0+e0okPVtbInBhdGgiLHtkOiJNMTIgNnY2bDEuNTYuNzgifV0sWyJwYXRoIix7ZDoiTTEzLjIyNyAyMS45MjVhMTAgMTAgMCAxIDEgOC43NjctOS41ODgifV0sWyJwYXRoIix7ZDoibTE0IDE4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dXX0pO3ZhciBlRCxIRGU9ZygoKT0+e2VEPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJhMTAgMTAgMCAxIDAtMTEgOS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMTYtNS41IDUuNUwxNCAxOSJ9XV19KTt2YXIgdEQscURlPWcoKCk9Pnt0RD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXX0pO3ZhciBhRCxqRGU9ZygoKT0+e2FEPVtbInBhdGgiLHtkOiJNMTIgNnY2bDMuNjQ0IDEuODIyIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMS45MiAxMy4yNjdhMTAgMTAgMCAxIDAtOC42NTMgOC42NTMifV1dfSk7dmFyIHNELFZEZT1nKCgpPT57c0Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsNCAyIn1dXX0pO3ZhciBpRCxVRGU9ZygoKT0+e2lEPVtbInBhdGgiLHtkOiJNMTAgOS4xN2EzIDMgMCAxIDAgMCA1LjY2In1dLFsicGF0aCIse2Q6Ik0xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgckQsV0RlPWcoKCk9PntyRD1bWyJwYXRoIix7ZDoiTTEyIDEydjQifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC4xMjggMTYuOTQ5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhMSAxIDAgMCAxIDAgOWgtMS42NDIifV1dfSk7dmFyIG9ELEdEZT1nKCgpPT57b0Q9W1sicGF0aCIse2Q6Ik0yMSAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy41IDhoLTEuNzlBNyA3IDAgMSAwIDMgMTMuNjA3In1dLFsicGF0aCIse2Q6Ik03IDExdjRoNCJ9XSxbInBhdGgiLHtkOiJNOCAxOWE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNSA0LjgyIDQuODIgMCAwIDAtMy40MSAxLjQxTDcgMTUifV1dfSk7dmFyIG5ELEtEZT1nKCgpPT57bkQ9W1sicGF0aCIse2Q6Im0xNyAxNS01LjUgNS41TDkgMTgifV0sWyJwYXRoIix7ZDoiTTUuNTE2IDE2LjA3QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAzLjUwMSA3LjMyNyJ9XV19KTt2YXIgbEQsWURlPWcoKCk9PntsRD1bWyJwYXRoIix7ZDoibTEwLjg1MiAxOS43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTEzLjE0OCAxNC4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoiTTEzLjE0OCAxOS43NzJhMyAzIDAgMSAwLTIuMjk2LTUuNTQ0bC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjUzIDIwLjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0In1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTUuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTguMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTQuMiAxNS4xYTcgNyAwIDEgMSA5LjkzLTkuODU4QTcgNyAwIDAgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxNS44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxOC4xNDgtLjkyMy4zODMifV1dfSk7dmFyIENtLFpEZT1nKCgpPT57Q209W1sicGF0aCIse2Q6Ik0xMiAxM3Y4bC00LTQifV0sWyJwYXRoIix7ZDoibTEyIDIxIDQtNCJ9XSxbInBhdGgiLHtkOiJNNC4zOTMgMTUuMjY5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjQzNiA4LjI4NCJ9XV19KTt2YXIgY0QsWERlPWcoKCk9PntjRD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTggMTl2MSJ9XSxbInBhdGgiLHtkOiJNOCAxNHYxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOXYxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHYxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMXYxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYxIn1dXX0pO3ZhciBkRCxRRGU9ZygoKT0+e2REPVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmguMDEifV1dfSk7dmFyIHVELEpEZT1nKCgpPT57dUQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN0g3In1dLFsicGF0aCIse2Q6Ik0xNyAyMUg5In1dXX0pO3ZhciBwRCxlTGU9ZygoKT0+e3BEPVtbInBhdGgiLHtkOiJNNiAxNi4zMjZBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIC41IDguOTczIn1dLFsicGF0aCIse2Q6Im0xMyAxMi0zIDVoNGwtMyA1In1dXX0pO3ZhciBoRCx0TGU9ZygoKT0+e2hEPVtbInBhdGgiLHtkOiJNMTEgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2In1dLFsicGF0aCIse2Q6Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0In1dLFsicGF0aCIse2Q6Ik03IDE5djIifV1dfSk7dmFyIGZELGFMZT1nKCgpPT57ZkQ9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMCA2SDdhNSA1IDAgMSAxIDQuOS02eiJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2In1dXX0pO3ZhciBtRCxzTGU9ZygoKT0+e21EPVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJtOS4yIDIyIDMtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMy0zIDcifV0sWyJwYXRoIix7ZDoibTE3IDEzLTMgNyJ9XV19KTt2YXIgZ0QsaUxlPWcoKCk9PntnRD1bWyJwYXRoIix7ZDoiTTEwLjk0IDUuMjc0QTcgNyAwIDAgMSAxNS43MSAxMGgxLjc5YTQuNSA0LjUgMCAwIDEgNC4yMjIgNi4wNTcifV0sWyJwYXRoIix7ZDoiTTE4Ljc5NiAxOC44MUE0LjUgNC41IDAgMCAxIDE3LjUgMTlIOUE3IDcgMCAwIDEgNS43OSA1Ljc4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIGJELHJMZT1nKCgpPT57YkQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHY2In1dLFsicGF0aCIse2Q6Ik04IDE0djYifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dfSk7dmFyIHZELG9MZT1nKCgpPT57dkQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxOWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC4wMSJ9XV19KTt2YXIgeEQsbkxlPWcoKCk9Pnt4RD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgifV0sWyJwYXRoIix7ZDoiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQifV0sWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XV19KTt2YXIgeUQsbExlPWcoKCk9Pnt5RD1bWyJwYXRoIix7ZDoibTE3IDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIwLjk5NiAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy40OTUgOGgtMS43OWE3IDcgMCAxIDAtMTIuNzA5IDUuNjA3In1dLFsicGF0aCIse2Q6Ik03IDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtNyAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV1dfSk7dmFyIHdELGNMZT1nKCgpPT57d0Q9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0xMyAyMkg3YTUgNSAwIDEgMSA0LjktNkgxM2EzIDMgMCAwIDEgMCA2WiJ9XV19KTt2YXIgVG0sZExlPWcoKCk9PntUbT1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTggMTcgNC00IDQgNCJ9XV19KTt2YXIga0QsdUxlPWcoKCk9PntrRD1bWyJwYXRoIix7ZDoiTTE3LjUgMTlIOWE3IDcgMCAxIDEgNi43MS05aDEuNzlhNC41IDQuNSAwIDEgMSAwIDlaIn1dXX0pO3ZhciBTRCxwTGU9ZygoKT0+e1NEPVtbInBhdGgiLHtkOiJNMTcuNSAxMmExIDEgMCAxIDEgMCA5SDkuMDA2YTcgNyAwIDEgMSA2LjcwMi05eiJ9XSxbInBhdGgiLHtkOiJNMjEuODMyIDlBMyAzIDAgMCAwIDE5IDdoLTIuMjA3YTUuNSA1LjUgMCAwIDAtMTAuNzIuNjEifV1dfSk7dmFyIF9ELGhMZT1nKCgpPT57X0Q9W1sicGF0aCIse2Q6Ik0xNi4xNyA3LjgzIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuMDIgMTJhMi44MjcgMi44MjcgMCAxIDEgMy44MS00LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDQuMDJhMi44MjcgMi44MjcgMCAxIDEgNC4xNyAzLjgxQTIuODI3IDIuODI3IDAgMSAxIDE5Ljk4IDEyYTIuODI3IDIuODI3IDAgMSAxLTMuODEgNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiAxOS45OGEyLjgyNyAyLjgyNyAwIDEgMS00LjE3LTMuODFBMSAxIDAgMSAxIDQgMTIifV0sWyJwYXRoIix7ZDoibTcuODMgNy44MyA4LjM0IDguMzQifV1dfSk7dmFyIE1ELGZMZT1nKCgpPT57TUQ9W1sicGF0aCIse2Q6Ik0xNy4yOCA5LjA1YTUuNSA1LjUgMCAxIDAtMTAuNTYgMEE1LjUgNS41IDAgMSAwIDEyIDE3LjY2YTUuNSA1LjUgMCAxIDAgNS4yOC04LjZaIn1dLFsicGF0aCIse2Q6Ik0xMiAxNy42NkwxMiAyMiJ9XV19KTt2YXIgJG0sbUxlPWcoKCk9PnskbT1bWyJwYXRoIix7ZDoibTE4IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Im0xNC41IDQtNSAxNiJ9XV19KTt2YXIgekQsZ0xlPWcoKCk9Pnt6RD1bWyJwYXRoIix7ZDoibTE2IDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoibTggNi02IDYgNiA2In1dXX0pO3ZhciBDRCxiTGU9ZygoKT0+e0NEPVtbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoiTTE2IDhhMSAxIDAgMCAxIDEgMXY4YTQgNCAwIDAgMS00IDRIN2E0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMWgxNGE0IDQgMCAxIDEgMCA4aC0xIn1dLFsicGF0aCIse2Q6Ik02IDJ2MiJ9XV19KTt2YXIgVEQsdkxlPWcoKCk9PntURD1bWyJwYXRoIix7ZDoiTTExIDEwLjI3IDcgMy4zNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTMuNzMtNCA2LjkzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNyAyMC42Ni0xLTEuNzMifV0sWyJwYXRoIix7ZDoibTE3IDMuMzQtMSAxLjczIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoibTIwLjY2IDE3LTEuNzMtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgNy0xLjczIDEifV0sWyJwYXRoIix7ZDoibTMuMzQgMTcgMS43My0xIn1dLFsicGF0aCIse2Q6Im0zLjM0IDcgMS43MyAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiOCJ9XV19KTt2YXIgJEQseExlPWcoKCk9PnskRD1bWyJwYXRoIix7ZDoiTTEzLjc0NCAxNy43MzZhNiA2IDAgMSAxLTcuNDgtNy40OCJ9XSxbInBhdGgiLHtkOiJNMTUgNmgxdjQifV0sWyJwYXRoIix7ZDoibTYuMTM0IDE0Ljc2OC44NjYtLjUgMiAzLjQ2NCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjgiLHI6IjYifV1dfSk7dmFyIERtLHlMZT1nKCgpPT57RG09W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV1dfSk7dmFyIFYwLHdMZT1nKCgpPT57VjA9W1sicGF0aCIse2Q6Ik0xMC41IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjUifV0sWyJwYXRoIix7ZDoibTE0LjMgMTkuNiAxLS40In1dLFsicGF0aCIse2Q6Ik0xNSAzdjcuNSJ9XSxbInBhdGgiLHtkOiJtMTUuMiAxNi45LS45LS4zIn1dLFsicGF0aCIse2Q6Im0xNi42IDIxLjcuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTYuOCAxNS4zLS40LTEifV0sWyJwYXRoIix7ZDoibTE5LjEgMTUuMi4zLS45In1dLFsicGF0aCIse2Q6Im0xOS42IDIxLjctLjQtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNyAxNi44IDEtLjQifV0sWyJwYXRoIix7ZDoibTIxLjcgMTkuNC0uOS0uMyJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIExtLGtMZT1nKCgpPT57TG09W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgREQsU0xlPWcoKCk9PntERD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNy41IDN2MTgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoiTTE2LjUgM3YxOCJ9XV19KTt2YXIgTEQsX0xlPWcoKCk9PntMRD1bWyJwYXRoIix7ZDoiTTE0IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTcgMTUgMyAzIn1dLFsicGF0aCIse2Q6Im03IDIxIDMtM0g1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV19KTt2YXIgRUQsTUxlPWcoKCk9PntFRD1bWyJwYXRoIix7ZDoiTTE1IDZ2MTJhMyAzIDAgMSAwIDMtM0g2YTMgMyAwIDEgMCAzIDNWNmEzIDMgMCAxIDAtMyAzaDEyYTMgMyAwIDEgMC0zLTMifV1dfSk7dmFyIFBELHpMZT1nKCgpPT57UEQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNi4yNCA3Ljc2LTEuODA0IDUuNDExYTIgMiAwIDAgMS0xLjI2NSAxLjI2NUw3Ljc2IDE2LjI0bDEuODA0LTUuNDExYTIgMiAwIDAgMSAxLjI2NS0xLjI2NXoifV1dfSk7dmFyIElELENMZT1nKCgpPT57SUQ9W1sicGF0aCIse2Q6Ik0xNS41MzYgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc2IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTIuMjk3IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNEw2LjA4OCA4LjkxNmExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTguOTE2IDE3LjkxMmExIDEgMCAwIDAgMCAxLjQxNWwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNWwtMi4zNzctMi4zNzZhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik04LjkxNiA0LjY3NGExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6In1dXX0pO3ZhciBBRCxUTGU9ZygoKT0+e0FEPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiOCIseDoiNSIseToiMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGg2In1dXX0pO3ZhciBORCwkTGU9ZygoKT0+e05EPVtbInBhdGgiLHtkOiJNMyAyMGExIDEgMCAwIDEtMS0xdi0xYTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmE4IDggMCAxIDAtMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgNHY0In1dLFsicGF0aCIse2Q6Ik0xMCA0aDQifV1dfSk7dmFyIFJELERMZT1nKCgpPT57UkQ9W1sicGF0aCIse2Q6Im0yMC45IDE4LjU1LTgtMTUuOThhMSAxIDAgMCAwLTEuOCAwbC04IDE1Ljk4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjE5IixyeDoiOSIscnk6IjMifV1dfSk7dmFyIE9ELExMZT1nKCgpPT57T0Q9W1sicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTR2NyJ9XSxbInBhdGgiLHtkOiJNNyAxNHY3In1dLFsicGF0aCIse2Q6Ik0xNyAzdjMifV0sWyJwYXRoIix7ZDoiTTcgM3YzIn1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyLjMgNi4zIn1dLFsicGF0aCIse2Q6Im0xNCA2IDcuNyA3LjcifV0sWyJwYXRoIix7ZDoibTggNiA4IDgifV1dfSk7dmFyIEVtLEVMZT1nKCgpPT57RW09W1sicGF0aCIse2Q6Ik0xNiAydjIifV0sWyJwYXRoIix7ZDoiTTE3LjkxNSAyMmE2IDYgMCAwIDAtMTIgMCJ9XSxbInBhdGgiLHtkOiJNOCAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBGRCxQTGU9ZygoKT0+e0ZEPVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjMifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgQkQsSUxlPWcoKCk9PntCRD1bWyJwYXRoIix7ZDoiTTIyIDcuN2MwLS42LS40LTEuMi0uOC0xLjVsLTYuMy0zLjlhMS43MiAxLjcyIDAgMCAwLTEuNyAwbC0xMC4zIDZjLS41LjItLjkuOC0uOSAxLjR2Ni42YzAgLjUuNCAxLjIuOCAxLjVsNi4zIDMuOWExLjcyIDEuNzIgMCAwIDAgMS43IDBsMTAuMy02Yy41LS4zLjktMSAuOS0xLjVaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMS45VjE0TDIuMSA5LjEifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjktNi45In1dLFsicGF0aCIse2Q6Ik0xNCAxOS44di04LjEifV0sWyJwYXRoIix7ZDoiTTE4IDE3LjVWOS40In1dXX0pO3ZhciBIRCxBTGU9ZygoKT0+e0hEPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMThhNiA2IDAgMCAwIDAtMTJ2MTJ6In1dXX0pO3ZhciBxRCxOTGU9ZygoKT0+e3FEPVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjV2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNS41di4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMSAxN3YuMDEifV0sWyJwYXRoIix7ZDoiTTcgMTR2LjAxIn1dXX0pO3ZhciBqRCxSTGU9ZygoKT0+e2pEPVtbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCJ9XSxbInBhdGgiLHtkOiJtNCA4IDE2LTQifV0sWyJwYXRoIix7ZDoibTguODYgNi43OC0uNDUtMS44MWEyIDIgMCAwIDEgMS40NS0yLjQzbDEuOTQtLjQ4YTIgMiAwIDAgMSAyLjQzIDEuNDZsLjQ1IDEuOCJ9XV19KTt2YXIgVkQsT0xlPWcoKCk9PntWRD1bWyJwYXRoIix7ZDoibTEyIDE1IDIgMiA0LTQifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgVUQsRkxlPWcoKCk9PntVRD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxNSIseTI6IjE1In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIFdELEJMZT1nKCgpPT57V0Q9W1sibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiMTIiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE1Iix5MjoiMTUifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgR0QsSExlPWcoKCk9PntHRD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIEtELHFMZT1nKCgpPT57S0Q9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTIiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE4Iix5MjoiMTIifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgWUQsakxlPWcoKCk9PntZRD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgWkQsVkxlPWcoKCk9PntaRD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkuMTcgMTQuODNhNCA0IDAgMSAwIDAtNS42NiJ9XV19KTt2YXIgWEQsVUxlPWcoKCk9PntYRD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE0LjgzIDE0LjgzYTQgNCAwIDEgMSAwLTUuNjYifV1dfSk7dmFyIFFELFdMZT1nKCgpPT57UUQ9W1sicGF0aCIse2Q6Ik0yMCA0djdhNCA0IDAgMCAxLTQgNEg0In1dLFsicGF0aCIse2Q6Im05IDEwLTUgNSA1IDUifV1dfSk7dmFyIEpELEdMZT1nKCgpPT57SkQ9W1sicGF0aCIse2Q6Im0xNSAxMCA1IDUtNSA1In1dLFsicGF0aCIse2Q6Ik00IDR2N2E0IDQgMCAwIDAgNCA0aDEyIn1dXX0pO3ZhciBlTCxLTGU9ZygoKT0+e2VMPVtbInBhdGgiLHtkOiJtMTQgMTUtNSA1LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjAgNGgtN2E0IDQgMCAwIDAtNCA0djEyIn1dXX0pO3ZhciB0TCxZTGU9ZygoKT0+e3RMPVtbInBhdGgiLHtkOiJNMTQgOSA5IDQgNCA5In1dLFsicGF0aCIse2Q6Ik0yMCAyMGgtN2E0IDQgMCAwIDEtNC00VjQifV1dfSk7dmFyIGFMLFpMZT1nKCgpPT57YUw9W1sicGF0aCIse2Q6Im0xMCAxNSA1IDUgNS01In1dLFsicGF0aCIse2Q6Ik00IDRoN2E0IDQgMCAwIDEgNCA0djEyIn1dXX0pO3ZhciBzTCxYTGU9ZygoKT0+e3NMPVtbInBhdGgiLHtkOiJtMTAgOSA1LTUgNSA1In1dLFsicGF0aCIse2Q6Ik00IDIwaDdhNCA0IDAgMCAwIDQtNFY0In1dXX0pO3ZhciBpTCxRTGU9ZygoKT0+e2lMPVtbInBhdGgiLHtkOiJNMjAgMjB2LTdhNCA0IDAgMCAwLTQtNEg0In1dLFsicGF0aCIse2Q6Ik05IDE0IDQgOWw1LTUifV1dfSk7dmFyIHJMLEpMZT1nKCgpPT57ckw9W1sicGF0aCIse2Q6Im0xNSAxNCA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik00IDIwdi03YTQgNCAwIDAgMSA0LTRoMTIifV1dfSk7dmFyIG9MLGVFZT1nKCgpPT57b0w9W1sicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE3IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIifV0sWyJwYXRoIix7ZDoiTTIgN2gyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0yMCA3aDIifV0sWyJwYXRoIix7ZDoiTTcgMjB2MiJ9XSxbInBhdGgiLHtkOiJNNyAydjIifV0sWyJyZWN0Iix7eDoiNCIseToiNCIsd2lkdGg6IjE2IixoZWlnaHQ6IjE2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgbkwsdEVlPWcoKCk9PntuTD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEwIDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTcgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIn1dXX0pO3ZhciBsTCxhRWU9ZygoKT0+e2xMPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIxMCIseTI6IjEwIn1dXX0pO3ZhciBjTCxzRWU9ZygoKT0+e2NMPVtbInBhdGgiLHtkOiJNMTAuMiAxOEg0Ljc3NGExLjUgMS41IDAgMCAxLTEuMzUyLS45NyAxMSAxMSAwIDAgMSAuMTMyLTYuNDg3In1dLFsicGF0aCIse2Q6Ik0xOCAxMC4yVjQuNzc0YTEuNSAxLjUgMCAwIDAtLjk3LTEuMzUyIDExIDExIDAgMCAwLTYuNDg2LjEzMiJ9XSxbInBhdGgiLHtkOiJNMTggNWE0IDMgMCAwIDEgNCAzIDIgMiAwIDAgMS0yIDIgMTAgMTAgMCAwIDAtNS4xMzkgMS40MiJ9XSxbInBhdGgiLHtkOiJNNSAxOGEzIDQgMCAwIDAgMyA0IDIgMiAwIDAgMCAyLTIgMTAgMTAgMCAwIDEgMS40Mi01LjE0In1dLFsicGF0aCIse2Q6Ik04LjcwOSAyLjU1NGExMCAxMCAwIDAgMC02LjE1NSA2LjE1NSAxLjUgMS41IDAgMCAwIC42NzYgMS42MjZsOS44MDcgNS40MmEyIDIgMCAwIDAgMi43MTgtMi43MThsLTUuNDItOS44MDdhMS41IDEuNSAwIDAgMC0xLjYyNi0uNjc2In1dXX0pO3ZhciBkTCxpRWU9ZygoKT0+e2RMPVtbInBhdGgiLHtkOiJNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQifV0sWyJwYXRoIix7ZDoiTTE4IDIyVjhhMiAyIDAgMCAwLTItMkgyIn1dXX0pO3ZhciB1TCxyRWU9ZygoKT0+e3VMPVtbInBhdGgiLHtkOiJNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6In1dXX0pO3ZhciBwTCxvRWU9ZygoKT0+e3BMPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxOCIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjYiLHkyOiIyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxOCJ9XV19KTt2YXIgaEwsbkVlPWcoKCk9PntoTD1bWyJwYXRoIix7ZDoiTTExLjU2MiAzLjI2NmEuNS41IDAgMCAxIC44NzYgMEwxNS4zOSA4Ljg3YTEgMSAwIDAgMCAxLjUxNi4yOTRMMjEuMTgzIDUuNWEuNS41IDAgMCAxIC43OTguNTE5bC0yLjgzNCAxMC4yNDZhMSAxIDAgMCAxLS45NTYuNzM0SDUuODFhMSAxIDAgMCAxLS45NTctLjczNEwyLjAyIDYuMDJhLjUuNSAwIDAgMSAuNzk4LS41MTlsNC4yNzYgMy42NjRhMSAxIDAgMCAwIDEuNTE2LS4yOTR6In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXX0pO3ZhciBmTCxsRWU9ZygoKT0+e2ZMPVtbInBhdGgiLHtkOiJNMTAgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTIuMzM2IDguODkgMTAgMTRsMTEuNzE1LTcuMDI5In1dLFsicGF0aCIse2Q6Ik0yMiAxNGEyIDIgMCAwIDEtLjk3MSAxLjcxNWwtMTAgNmEyIDIgMCAwIDEtMi4xMzgtLjA1bC02LTRBMiAyIDAgMCAxIDIgMTZ2LTZhMiAyIDAgMCAxIC45NzEtMS43MTVsMTAtNmEyIDIgMCAwIDEgMi4xMzguMDVsNiA0QTIgMiAwIDAgMSAyMiA4eiJ9XV19KTt2YXIgbUwsY0VlPWcoKCk9PnttTD1bWyJwYXRoIix7ZDoibTYgOCAxLjc1IDEyLjI4YTIgMiAwIDAgMCAyIDEuNzJoNC41NGEyIDIgMCAwIDAgMi0xLjcyTDE4IDgifV0sWyJwYXRoIix7ZDoiTTUgOGgxNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV0sWyJwYXRoIix7ZDoibTEyIDggMS02aDIifV1dfSk7dmFyIGdMLGRFZT1nKCgpPT57Z0w9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjgifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTgiLHkxOiIzIix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIyMSIseTI6IjE4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMjEiLHkyOiIxOCJ9XV19KTt2YXIgYkwsdUVlPWcoKCk9PntiTD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDE4IDBWNSJ9XV19KTt2YXIgdkwscEVlPWcoKCk9Pnt2TD1bWyJwYXRoIix7ZDoiTTExIDExLjMxYzEuMTcuNTYgMS41NCAxLjY5IDMuNSAxLjY5IDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTEuNzUgMThjLjM1LjUgMS40NSAxIDIuNzUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik03IDNhMSAxIDAgMCAwLTEgMXYxNmExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMUwxMCA0YTEgMSAwIDAgMC0xLTF6In1dXX0pO3ZhciB4TCxoRWU9ZygoKT0+e3hMPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDUgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEgOS4zVjUifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY0aDQifV0sWyJwYXRoIix7ZDoiTTEzIDIwYTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTIgMTYifV1dfSk7dmFyIHlMLGZFZT1nKCgpPT57eUw9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAxNSAyMS44NCJ9XSxbInBhdGgiLHtkOiJNMjEgNVY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMkwxOCAxN0gyMkwxOSAyMiJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMTQuNTkgMTQuODcifV1dfSk7dmFyIHdMLG1FZT1nKCgpPT57d0w9W1sicGF0aCIse2Q6Ik0yMSAxMS42OTNWNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDguNjk3IDIuOTk4In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDkuMjggMi45OTkifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV1dfSk7dmFyIGtMLGdFZT1nKCgpPT57a0w9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAyMSAxOVY1In1dLFsicGF0aCIse2Q6Ik0zIDEyQTkgMyAwIDAgMCAyMSAxMiJ9XV19KTt2YXIgU0wsYkVlPWcoKCk9PntTTD1bWyJwYXRoIix7ZDoibTEzIDIxLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTIwIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt4OiI2Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dXX0pO3ZhciBfTCx2RWU9ZygoKT0+e19MPVtbInBhdGgiLHtkOiJNMTAgMThoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTMgMTFoLjAxIn1dLFsicmVjdCIse3g6IjE1Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dLFsicmVjdCIse3g6IjYiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjgiLHJ4OiIyLjUifV1dfSk7dmFyIE1MLHhFZT1nKCgpPT57TUw9W1sicGF0aCIse2Q6Ik0xMCA1YTIgMiAwIDAgMC0xLjM0NC41MTlsLTYuMzI4IDUuNzRhMSAxIDAgMCAwIDAgMS40ODFsNi4zMjggNS43NDFBMiAyIDAgMCAwIDEwIDE5aDEwYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJtMTIgOSA2IDYifV0sWyJwYXRoIix7ZDoibTE4IDktNiA2In1dXX0pO3ZhciB6TCx5RWU9ZygoKT0+e3pMPVtbInBhdGgiLHtkOiJNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNiJ9XSxbInBhdGgiLHtkOiJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dXX0pO3ZhciBDTCx3RWU9ZygoKT0+e0NMPVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYifV0sWyJwYXRoIix7ZDoibTYuNDEgNi40MSAxMS4xOCAxMS4xOCJ9XSxbInBhdGgiLHtkOiJNMy42NiA2LjQ4YTEwIDEwIDAgMCAwIDEzLjg2IDEzLjg2In1dXX0pO3ZhciBUTCxrRWU9ZygoKT0+e1RMPVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgUG0sU0VlPWcoKCk9PntQbT1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dLFsicGF0aCIse2Q6Ik05LjIgOS4yaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Ik0xNC43IDE0LjhoLjAxIn1dXX0pO3ZhciAkTCxfRWU9ZygoKT0+eyRMPVtbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBETCxNRWU9ZygoKT0+e0RMPVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MWwtNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dXX0pO3ZhciBMTCx6RWU9ZygoKT0+e0xMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXX0pO3ZhciBFTCxDRWU9ZygoKT0+e0VMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV0sWyJwYXRoIix7ZDoiTTkgMTVoLjAxIn1dXX0pO3ZhciBQTCxURWU9ZygoKT0+e1BMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIElMLCRFZT1nKCgpPT57SUw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XV19KTt2YXIgQUwsREVlPWcoKCk9PntBTD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIE5MLExFZT1nKCgpPT57Tkw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV19KTt2YXIgUkwsRUVlPWcoKCk9PntSTD1bWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMTBoMTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIE9MLFBFZT1nKCgpPT57T0w9W1sicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxMiIseDoiMiIseToiMTAiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTcuOTIgMTQgMy41LTMuNWEyLjI0IDIuMjQgMCAwIDAgMC0zbC01LTQuOTJhMi4yNCAyLjI0IDAgMCAwLTMgMEwxMCA2In1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOWguMDEifV1dfSk7dmFyIEZMLElFZT1nKCgpPT57Rkw9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV19KTt2YXIgQkwsQUVlPWcoKCk9PntCTD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTYgMTJjMC0xLjcuNy0zLjIgMS44LTQuMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmMwIDEuNy0uNyAzLjItMS44IDQuMiJ9XV19KTt2YXIgSEwsTkVlPWcoKCk9PntITD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIHFMLFJFZT1nKCgpPT57cUw9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIxIn1dXX0pO3ZhciBqTCxPRWU9ZygoKT0+e2pMPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBWTCxGRWU9ZygoKT0+e1ZMPVtbInBhdGgiLHtkOiJNMTUgMmMtMS4zNSAxLjUtMi4wOTIgMy0yLjUgNC41TDE0IDgifV0sWyJwYXRoIix7ZDoibTE3IDYtMi44OTEtMi44OTEifV0sWyJwYXRoIix7ZDoiTTIgMTVjMy4zMzMtMyA2LjY2Ny0zIDEwLTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJtMjAgOSAuODkxLjg5MSJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtMS41IDEuMzUtMyAyLjA5Mi00LjUgMi41bC0xLTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS4zNS0xLjUgMi4wOTItMyAyLjUtNC41TDEwIDE2In1dXX0pO3ZhciBVTCxCRWU9ZygoKT0+e1VMPVtbInBhdGgiLHtkOiJtMTAgMTYgMS41IDEuNSJ9XSxbInBhdGgiLHtkOiJtMTQgOC0xLjUtMS41In1dLFsicGF0aCIse2Q6Ik0xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxMC41IDEgMSJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYifV0sWyJwYXRoIix7ZDoibTIwIDkgLjg5MS44OTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMifV1dfSk7dmFyIFdMLEhFZT1nKCgpPT57V0w9W1sicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxNmgxMiJ9XV19KTt2YXIgR0wscUVlPWcoKCk9PntHTD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiMjIifV0sWyJwYXRoIix7ZDoiTTE3IDVIOS41YTMuNSAzLjUgMCAwIDAgMCA3aDVhMy41IDMuNSAwIDAgMSAwIDdINiJ9XV19KTt2YXIgS0wsakVlPWcoKCk9PntLTD1bWyJwYXRoIix7ZDoiTTExLjI1IDE2LjI1aDEuNUwxMiAxN3oifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik00LjQyIDExLjI0N0ExMy4xNTIgMTMuMTUyIDAgMCAwIDQgMTQuNTU2QzQgMTguNzI4IDcuNTgyIDIxIDEyIDIxczgtMi4yNzIgOC02LjQ0NGExMS43MDIgMTEuNzAyIDAgMCAwLS40OTMtMy4zMDkifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjVjLS4zODQgMS4wNS0xLjA4MyAyLjAyOC0yLjM0NCAyLjUtMS45MzEuNzIyLTMuNTc2LS4yOTctMy42NTYtMS0uMTEzLS45OTQgMS4xNzctNi41MyA0LTcgMS45MjMtLjMyMSAzLjY1MS44NDUgMy42NTEgMi4yMzVBNy40OTcgNy40OTcgMCAwIDEgMTQgNS4yNzdjMC0xLjM5IDEuODQ0LTIuNTk4IDMuNzY3LTIuMjc3IDIuODIzLjQ3IDQuMTEzIDYuMDA2IDQgNy0uMDguNzAzLTEuNzI1IDEuNzIyLTMuNjU2IDEtMS4yNjEtLjQ3Mi0xLjg1NS0xLjQ1LTIuMjM5LTIuNSJ9XV19KTt2YXIgWUwsVkVlPWcoKCk9PntZTD1bWyJwYXRoIix7ZDoiTTIwLjUgMTBhMi41IDIuNSAwIDAgMS0yLjQtM0gxOGEyLjk1IDIuOTUgMCAwIDEtMi42LTQuNCAxMCAxMCAwIDEgMCA2LjMgNy4xYy0uMy4yLS44LjMtMS4yLjMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgWkwsVUVlPWcoKCk9PntaTD1bWyJwYXRoIix7ZDoiTTEwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOVY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDgifV0sWyJwYXRoIix7ZDoiTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTciLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIxIn1dXX0pO3ZhciBYTCxXRWU9ZygoKT0+e1hMPVtbInBhdGgiLHtkOiJNMTAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dXX0pO3ZhciBRTCxHRWU9ZygoKT0+e1FMPVtbInBhdGgiLHtkOiJNMTEgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXoifV0sWyJwYXRoIix7ZDoiTTExIDRIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDIwaC0zIn1dXX0pO3ZhciBKTCxLRWU9ZygoKT0+e0pMPVtbImNpcmNsZSIse2N4OiIxMi4xIixjeToiMTIuMSIscjoiMSJ9XV19KTt2YXIgZUUsWUVlPWcoKCk9PntlRT1bWyJwYXRoIix7ZDoiTTEyIDE1VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoibTcgMTAgNSA1IDUtNSJ9XV19KTt2YXIgdEUsWkVlPWcoKCk9Pnt0RT1bWyJwYXRoIix7ZDoibTEyLjk5IDYuNzQgMS45MyAzLjQ0In1dLFsicGF0aCIse2Q6Ik0xOS4xMzYgMTJhMTAgMTAgMCAwIDEtMTQuMjcxIDAifV0sWyJwYXRoIix7ZDoibTIxIDIxLTIuMTYtMy44NCJ9XSxbInBhdGgiLHtkOiJtMyAyMSA4LjAyLTE0LjI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XV19KTt2YXIgYUUsWEVlPWcoKCk9PnthRT1bWyJwYXRoIix7ZDoiTTEwIDE4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDVhMyAzIDAgMCAxLTMtMyAxIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTMgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxbC0uODEgMy4yNDJhMSAxIDAgMCAxLS45Ny43NThIOCJ9XSxbInBhdGgiLHtkOiJNMTQgNGgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik0xOCA2aDQifV0sWyJwYXRoIix7ZDoibTUgMTAtMiA4In1dLFsicGF0aCIse2Q6Im03IDE4IDItOCJ9XV19KTt2YXIgc0UsUUVlPWcoKCk9PntzRT1bWyJwYXRoIix7ZDoiTTEwIDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjUgMTMuMWguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDVjMCA5LTQgMTItNiAxMnMtNi0zLTYtMTJjMC0yIDItMyA2LTNzNiAxIDYgMyJ9XSxbInBhdGgiLHtkOiJNMTcuNCA5LjljLS44LjgtMiAuOC0yLjggMCJ9XSxbInBhdGgiLHtkOiJNMTAuMSA3LjFDOSA3LjIgNy43IDcuNyA2IDguNmMtMy41IDItNC43IDMuOS0zLjcgNS42IDQuNSA3LjggOS41IDguNCAxMS4yIDcuNC45LS41IDEuOS0yLjEgMS45LTQuNyJ9XSxbInBhdGgiLHtkOiJNOS4xIDE2LjVjLjMtMS4xIDEuNC0xLjcgMi40LTEuNCJ9XV19KTt2YXIgaUUsSkVlPWcoKCk9PntpRT1bWyJwYXRoIix7ZDoiTTEwIDEwIDcgNyJ9XSxbInBhdGgiLHtkOiJtMTAgMTQtMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMgMyJ9XSxbInBhdGgiLHtkOiJNMTQuMjA1IDQuMTM5YTQgNCAwIDEgMSA1LjQzOSA1Ljg2MyJ9XSxbInBhdGgiLHtkOiJNMTkuNjM3IDE0YTQgNCAwIDEgMS01LjQzMiA1Ljg2OCJ9XSxbInBhdGgiLHtkOiJNNC4zNjcgMTBhNCA0IDAgMSAxIDUuNDM4LTUuODYyIn1dLFsicGF0aCIse2Q6Ik05Ljc5NSAxOS44NjJhNCA0IDAgMSAxLTUuNDI5LTUuODczIn1dLFsicmVjdCIse3g6IjEwIix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgckUsZVBlPWcoKCk9PntyRT1bWyJwYXRoIix7ZDoiTTEyIDIyYTcgNyAwIDAgMCA3LTdjMC0yLTEtMy45LTMtNS41cy0zLjUtNC00LTYuNWMtLjUgMi41LTIgNC45LTQgNi41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDcgN3oifV1dfSk7dmFyIG9FLHRQZT1nKCgpPT57b0U9W1sicGF0aCIse2Q6Ik0xOC43MTUgMTMuMTg2QzE4LjI5IDExLjg1OCAxNy4zODQgMTAuNjA3IDE2IDkuNWMtMi0xLjYtMy41LTQtNC02LjVhMTAuNyAxMC43IDAgMCAxLS44ODQgMi41ODYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC43OTUgOC43OTdBMTEgMTEgMCAwIDEgOCA5LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgMTMuMjIyIDMuMjA4In1dXX0pO3ZhciBuRSxhUGU9ZygoKT0+e25FPVtbInBhdGgiLHtkOiJNNyAxNi4zYzIuMiAwIDQtMS44MyA0LTQuMDUgMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOVM3LjI5IDYuNzUgNyA1LjNjLS4yOSAxLjQ1LTEuMTQgMi44NC0yLjI5IDMuNzZTMyAxMS4xIDMgMTIuMjVjMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXoifV0sWyJwYXRoIix7ZDoiTTEyLjU2IDYuNkExMC45NyAxMC45NyAwIDAgMCAxNCAzLjAyYy41IDIuNSAyIDQuOSA0IDYuNXMzIDMuNSAzIDUuNWE2Ljk4IDYuOTggMCAwIDEtMTEuOTEgNC45NyJ9XV19KTt2YXIgbEUsc1BlPWcoKCk9PntsRT1bWyJwYXRoIix7ZDoibTIgMiA4IDgifV0sWyJwYXRoIix7ZDoibTIyIDItOCA4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjkiLHJ4OiIxMCIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTcgMTMuNHY3LjkifV0sWyJwYXRoIix7ZDoiTTEyIDE0djgifV0sWyJwYXRoIix7ZDoiTTE3IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSJ9XV19KTt2YXIgY0UsaVBlPWcoKCk9PntjRT1bWyJwYXRoIix7ZDoiTTE1LjQgMTUuNjNhNy44NzUgNiAxMzUgMSAxIDYuMjMtNi4yMyA0LjUgMy40MyAxMzUgMCAwLTYuMjMgNi4yMyJ9XSxbInBhdGgiLHtkOiJtOC4yOSAxMi43MS0yLjYgMi42YTIuNSAyLjUgMCAxIDAtMS42NSA0LjY1QTIuNSAyLjUgMCAxIDAgOC43IDE4LjNsMi41OS0yLjU5In1dXX0pO3ZhciBkRSxyUGU9ZygoKT0+e2RFPVtbInBhdGgiLHtkOiJNMTcuNTk2IDEyLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTEuNzY4LTEuNzY3YTIgMiAwIDAgMCAyLjgyOC0yLjgyOWwtMi44MjgtMi44MjhhMiAyIDAgMCAwLTIuODI5IDIuODI4bC0xLjc2Ny0xLjc2OGEyIDIgMCAxIDAtMi44MjkgMi44Mjl6In1dLFsicGF0aCIse2Q6Im0yLjUgMjEuNSAxLjQtMS40In1dLFsicGF0aCIse2Q6Im0yMC4xIDMuOSAxLjQtMS40In1dLFsicGF0aCIse2Q6Ik01LjM0MyAyMS40ODVhMiAyIDAgMSAwIDIuODI5LTIuODI4bDEuNzY3IDEuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtNi4zNjQtNi4zNjRhMiAyIDAgMSAwLTIuODI5IDIuODI5bDEuNzY4IDEuNzY3YTIgMiAwIDAgMC0yLjgyOCAyLjgyOXoifV0sWyJwYXRoIix7ZDoibTkuNiAxNC40IDQuOC00LjgifV1dfSk7dmFyIHVFLG9QZT1nKCgpPT57dUU9W1sicGF0aCIse2Q6Ik02IDE4LjVhMy41IDMuNSAwIDEgMCA3IDBjMC0xLjU3LjkyLTIuNTIgMi4wNC0zLjQ2In1dLFsicGF0aCIse2Q6Ik02IDguNWMwLS43NS4xMy0xLjQ3LjM2LTIuMTQifV0sWyJwYXRoIix7ZDoiTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYifV0sWyJwYXRoIix7ZDoiTTEyLjUgNkEyLjUgMi41IDAgMCAxIDE1IDguNU0xMCAxM2EyIDIgMCAwIDAgMS44Mi0xLjE4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIHBFLG5QZT1nKCgpPT57cEU9W1sicGF0aCIse2Q6Ik02IDguNWE2LjUgNi41IDAgMSAxIDEzIDBjMCA2LTYgNi02IDEwYTMuNSAzLjUgMCAxIDEtNyAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4LjVhMi41IDIuNSAwIDAgMC01IDB2MWEyIDIgMCAxIDEgMCA0In1dXX0pO3ZhciBoRSxsUGU9ZygoKT0+e2hFPVtbInBhdGgiLHtkOiJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMSAwIDkuNTQgMTMifV0sWyJwYXRoIix7ZDoiTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTQiLHk6IjYiLHJ4OiIxIn1dXX0pO3ZhciBJbSxjUGU9ZygoKT0+e0ltPVtbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgZkUsZFBlPWcoKCk9PntmRT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJhNyA3IDAgMSAwIDEwIDEwIn1dXX0pO3ZhciBtRSx1UGU9ZygoKT0+e21FPVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMy41In1dLFsicGF0aCIse2Q6Ik0zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFoifV1dfSk7dmFyIGdFLHBQZT1nKCgpPT57Z0U9W1sicGF0aCIse2Q6Ik0xMiAyQzggMiA0IDggNCAxNGE4IDggMCAwIDAgMTYgMGMwLTYtNC0xMi04LTEyIn1dXX0pO3ZhciBiRSxoUGU9ZygoKT0+e2JFPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNC4zNDdWMTRjMC02LTQtMTItOC0xMi0xLjA3OCAwLTIuMTU3LjQzNi0zLjE1NyAxLjE5In1dLFsicGF0aCIse2Q6Ik02LjIwNiA2LjIxQzQuODcxIDguNCA0IDExLjIgNCAxNGE4IDggMCAwIDAgMTQuNTY4IDQuNTY4In1dXX0pO3ZhciB2RSxmUGU9ZygoKT0+e3ZFPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMiIscng6IjEwIixyeToiNiJ9XV19KTt2YXIgQW0sbVBlPWcoKCk9PntBbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgeEUsZ1BlPWcoKCk9Pnt4RT1bWyJwYXRoIix7ZDoiTTUgMTVhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAifV0sWyJwYXRoIix7ZDoiTTUgOWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCJ9XV19KTt2YXIgTm0sYlBlPWcoKCk9PntObT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgeUUsdlBlPWcoKCk9Pnt5RT1bWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV1dfSk7dmFyIHdFLHhQZT1nKCgpPT57d0U9W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XV19KTt2YXIga0UseVBlPWcoKCk9PntrRT1bWyJwYXRoIix7ZDoiTTIxIDIxSDhhMiAyIDAgMCAxLTEuNDItLjU4N2wtMy45OTQtMy45OTlhMiAyIDAgMCAxIDAtMi44MjhsMTAtMTBhMiAyIDAgMCAxIDIuODI5IDBsNS45OTkgNmEyIDIgMCAwIDEgMCAyLjgyOEwxMi44MzQgMjEifV0sWyJwYXRoIix7ZDoibTUuMDgyIDExLjA5IDguODI4IDguODI4In1dXX0pO3ZhciBTRSx3UGU9ZygoKT0+e1NFPVtbInBhdGgiLHtkOiJtMTUgMjAgMy0zaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgybDMgM3oifV0sWyJwYXRoIix7ZDoiTTYgOHYxIn1dLFsicGF0aCIse2Q6Ik0xMCA4djEifV0sWyJwYXRoIix7ZDoiTTE0IDh2MSJ9XSxbInBhdGgiLHtkOiJNMTggOHYxIn1dXX0pO3ZhciBfRSxrUGU9ZygoKT0+e19FPVtbInBhdGgiLHtkOiJNNCAxMGgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxNGg5In1dLFsicGF0aCIse2Q6Ik0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIifV1dfSk7dmFyIE1FLFNQZT1nKCgpPT57TUU9W1sicGF0aCIse2Q6Ik0xNCAxM2gyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDAgNCAwdi02Ljk5OGEyIDIgMCAwIDAtLjU5LTEuNDJMMTggNSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgxMyJ9XSxbInBhdGgiLHtkOiJNMyA3aDExIn1dLFsicGF0aCIse2Q6Im05IDExLTIgM2gzbC0yIDMifV1dfSk7dmFyIHpFLF9QZT1nKCgpPT57ekU9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTE1IDkgNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxNnY1aC01In1dLFsicGF0aCIse2Q6Ik0yMSA4VjNoLTUifV0sWyJwYXRoIix7ZDoiTTMgMTZ2NWg1In1dLFsicGF0aCIse2Q6Im0zIDIxIDYtNiJ9XSxbInBhdGgiLHtkOiJNMyA4VjNoNSJ9XSxbInBhdGgiLHtkOiJNOSA5IDMgMyJ9XV19KTt2YXIgQ0UsTVBlPWcoKCk9PntDRT1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyMSAzIn1dLFsicGF0aCIse2Q6Ik0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2In1dXX0pO3ZhciBURSx6UGU9ZygoKT0+e1RFPVtbInBhdGgiLHtkOiJtMTUgMTgtLjcyMi0zLjI1In1dLFsicGF0aCIse2Q6Ik0yIDhhMTAuNjQ1IDEwLjY0NSAwIDAgMCAyMCAwIn1dLFsicGF0aCIse2Q6Im0yMCAxNS0xLjcyNi0yLjA1In1dLFsicGF0aCIse2Q6Im00IDE1IDEuNzI2LTIuMDUifV0sWyJwYXRoIix7ZDoibTkgMTggLjcyMi0zLjI1In1dXX0pO3ZhciAkRSxDUGU9ZygoKT0+eyRFPVtbInBhdGgiLHtkOiJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5In1dLFsicGF0aCIse2Q6Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBERSxUUGU9ZygoKT0+e0RFPVtbInBhdGgiLHtkOiJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBMRSwkUGU9ZygoKT0+e0xFPVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTlhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjguNWEuNS41IDAgMCAwLS43NjktLjQyMmwtNC40NjIgMi44NDRBLjUuNSAwIDAgMSAxNSAxMC41di0yYS41LjUgMCAwIDAtLjc2OS0uNDIyTDkuNzcgMTAuOTIyQS41LjUgMCAwIDEgOSAxMC41VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV19KTt2YXIgRUUsRFBlPWcoKCk9PntFRT1bWyJwYXRoIix7ZDoiTTEwLjgyNyAxNi4zNzlhNi4wODIgNi4wODIgMCAwIDEtOC42MTgtNy4wMDJsNS40MTIgMS40NWE2LjA4MiA2LjA4MiAwIDAgMSA3LjAwMi04LjYxOGwtMS40NSA1LjQxMmE2LjA4MiA2LjA4MiAwIDAgMSA4LjYxOCA3LjAwMmwtNS40MTItMS40NWE2LjA4MiA2LjA4MiAwIDAgMS03LjAwMiA4LjYxOGwxLjQ1LTUuNDEyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dXX0pO3ZhciBQRSxMUGU9ZygoKT0+e1BFPVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHoifV1dfSk7dmFyIElFLEVQZT1nKCgpPT57SUU9W1sicGF0aCIse2Q6Ik0xMi42NyAxOWEyIDIgMCAwIDAgMS40MTYtLjU4OGw2LjE1NC02LjE3MmE2IDYgMCAwIDAtOC40OS04LjQ5TDUuNTg2IDkuOTE0QTIgMiAwIDAgMCA1IDExLjMyOFYxOGExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTYgOCAyIDIyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDE1SDkifV1dfSk7dmFyIEFFLFBQZT1nKCgpPT57QUU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtNi44IDE1LTMuNSAyIn1dLFsicGF0aCIse2Q6Im0yMC43IDctMy41IDIifV0sWyJwYXRoIix7ZDoiTTYuOCA5IDMuMyA3In1dLFsicGF0aCIse2Q6Im0yMC43IDE3LTMuNS0yIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtOCAzIDgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTggMTguN2E5IDkgMCAxIDAtMTIgMCJ9XV19KTt2YXIgTkUsSVBlPWcoKCk9PntORT1bWyJwYXRoIix7ZDoiTTQgMyAyIDV2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XSxbInBhdGgiLHtkOiJNNiA4aDQifV0sWyJwYXRoIix7ZDoiTTYgMThoNCJ9XSxbInBhdGgiLHtkOiJtMTIgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XSxbInBhdGgiLHtkOiJNMTQgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxOGg0In1dLFsicGF0aCIse2Q6Im0yMCAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dXX0pO3ZhciBSRSxBUGU9ZygoKT0+e1JFPVtbInBhdGgiLHtkOiJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3VjYifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBSbSxOUGU9ZygoKT0+e1JtPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0LTQifV0sWyJwYXRoIix7ZDoiTTggMTB2OGg4In1dXX0pO3ZhciBPbSxSUGU9ZygoKT0+e09tPVtbInBhdGgiLHtkOiJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE0IixyOiIzIn1dXX0pO3ZhciBPRSxPUGU9ZygoKT0+e09FPVtbInBhdGgiLHtkOiJNMTQuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuOCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEuNyAxNC4yIDcgMTdsLTQuNy0yLjgifV0sWyJwYXRoIix7ZDoiTTMgMTMuMWEyIDIgMCAwIDAtLjk5OSAxLjc2djMuMjRhMiAyIDAgMCAwIC45NjkgMS43OEw2IDIxLjdhMiAyIDAgMCAwIDIuMDMuMDFMMTEgMTkuOWEyIDIgMCAwIDAgMS0xLjc2VjE0LjlhMiAyIDAgMCAwLS45Ny0xLjc4TDggMTEuM2EyIDIgMCAwIDAtMi4wMy0uMDF6In1dLFsicGF0aCIse2Q6Ik03IDE3djUifV1dfSk7dmFyIEZtLEZQZT1nKCgpPT57Rm09W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCAxMmExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAwIDEgMSJ9XSxbInBhdGgiLHtkOiJNMTQgMThhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTFhMSAxIDAgMCAwLTEtMSJ9XV19KTt2YXIgQm0sQlBlPWcoKCk9PntCbT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4di00In1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtNiJ9XV19KTt2YXIgSG0sSFBlPWcoKCk9PntIbT1bWyJwYXRoIix7ZDoiTTE0IDIyaDRhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik01IDE0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik05IDIyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0yYTEgMSAwIDAgMC0xLTEifV1dfSk7dmFyIHFtLHFQZT1nKCgpPT57cW09W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE4di0xIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTMifV1dfSk7dmFyIGptLGpQZT1nKCgpPT57am09W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNiAxMy0zLjUgMy41LTItMkw4IDE3In1dXX0pO3ZhciBWbSxWUGU9ZygoKT0+e1ZtPVtbInBhdGgiLHtkOiJNMTUuOTQxIDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My41MTIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTQuMDE3IDExLjUxMmE2IDYgMCAxIDAgOC40NjYgOC40NzUifV0sWyJwYXRoIix7ZDoiTTkgMTZhMSAxIDAgMCAxLTEtMXYtNGMwLS41NTIuNDUtMS4wMDguOTk1LS45MTdhNiA2IDAgMCAxIDQuOTIyIDQuOTIyYy4wOTEuNTQ0LS4zNjUuOTk1LS45MTcuOTk1eiJ9XV19KTt2YXIgVW0sVVBlPWcoKCk9PntVbT1bWyJwYXRoIix7ZDoiTTEwLjUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNCAyMCAyIDIgNC00In1dXX0pO3ZhciBGRSxXUGU9ZygoKT0+e0ZFPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAyIDIgNC00In1dXX0pO3ZhciBCRSxHUGU9ZygoKT0+e0JFPVtbInBhdGgiLHtkOiJNMTYgMjJoMmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjIuODUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTR2Mi4ybDEuNiAxIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNiIscjoiNiJ9XV19KTt2YXIgV20sS1BlPWcoKCk9PntXbT1bWyJwYXRoIix7ZDoiTTQgMTIuMTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTUgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSAyMiAzLTMtMy0zIn1dXX0pO3ZhciBIRSxZUGU9ZygoKT0+e0hFPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTIuNSA4IDE1bDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMi41IDIgMi41LTIgMi41In1dXX0pO3ZhciBHbSxaUGU9ZygoKT0+e0dtPVtbInBhdGgiLHtkOiJNMTUgOGExIDEgMCAwIDEtMS0xVjJhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4eiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC00LjE4MiJ9XSxbInBhdGgiLHtkOiJtMy4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoiTTQgMTAuNTkyVjRhMiAyIDAgMCAxIDItMmg4In1dLFsicGF0aCIse2Q6Im00LjIyOCAxNi44NTItLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTguMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtOC41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im05Ljc3MyAxNi44NTIuOTIyLS4zODMifV0sWyJwYXRoIix7ZDoibTkuNzczIDE5LjE0OC45MjIuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgcUUsWFBlPWcoKCk9PntxRT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dXX0pO3ZhciBqRSxRUGU9ZygoKT0+e2pFPVtbInBhdGgiLHtkOiJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoMnY2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dLFsicmVjdCIse3g6IjIiLHk6IjE2Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV19KTt2YXIgVkUsSlBlPWcoKCk9PntWRT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dLFsicGF0aCIse2Q6Im05IDE1IDMgMyAzLTMifV1dfSk7dmFyIEttLGVJZT1nKCgpPT57S209W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgVTAsdEllPWcoKCk9PntVMD1bWyJwYXRoIix7ZDoiTTQgNi44MzVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLS4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTlhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMS00IDB2LTRhNiA2IDAgMCAxIDEyIDB2NGEyIDIgMCAwIDEtNCAwdi0xYTIgMiAwIDAgMSA0IDAifV1dfSk7dmFyIFVFLGFJZT1nKCgpPT57VUU9W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMy42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSA3IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhMSAxIDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBXRSxzSWU9ZygoKT0+e1dFPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMCAxNy0xLjI5Ni0xLjI5NmEyLjQxIDIuNDEgMCAwIDAtMy40MDggMEw5IDIyIn1dXX0pO3ZhciBHRSxpSWU9ZygoKT0+e0dFPVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTVoMTAifV0sWyJwYXRoIix7ZDoibTkgMTggMy0zLTMtMyJ9XV19KTt2YXIgWW0sckllPWcoKCk9PntZbT1bWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTQgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNNCAxNGgyIn1dLFsicGF0aCIse2Q6Ik05LjY1IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIFptLG9JZT1nKCgpPT57Wm09W1sicGF0aCIse2Q6Ik00IDkuOFY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxN3YtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMyIseToiMTciLHJ4OiIxIn1dXX0pO3ZhciBYbSxuSWU9ZygoKT0+e1htPVtbInBhdGgiLHtkOiJNMjAgMTRWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMThoNiJ9XV19KTt2YXIgS0UsbEllPWcoKCk9PntLRT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XV19KTt2YXIgWUUsY0llPWcoKCk9PntZRT1bWyJwYXRoIix7ZDoiTTExLjY1IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTAuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMjB2LTdsMyAxLjQ3NCJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIFpFLGRJZT1nKCgpPT57WkU9W1sicGF0aCIse2Q6Ik00LjIyNiAyMC45MjVBMiAyIDAgMCAwIDYgMjJoMTJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjEyNyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNSAxMS0zIDMifV0sWyJwYXRoIix7ZDoibTUgMTctMy0zaDEwIn1dXX0pO3ZhciBRbSx1SWU9ZygoKT0+e1FtPVtbInBhdGgiLHtkOiJNMTQuMzY0IDEzLjYzNGEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNmw0LjAxMy00LjAwOWExIDEgMCAwIDAtMy4wMDQtMy4wMDR6In1dLFsicGF0aCIse2Q6Ik0xNC40ODcgNy44NThBMSAxIDAgMCAxIDE0IDdWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTkuNjQ1VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDIuNTE2IDIuNTE2In1dLFsicGF0aCIse2Q6Ik04IDE4aDEifV1dfSk7dmFyIEptLHBJZT1nKCgpPT57Sm09W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNS4wMzMgMTMuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NnYtNC43MDRhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dXX0pO3ZhciBlNixoSWU9ZygoKT0+e2U2PVtbInBhdGgiLHtkOiJNMTIuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2OS4zNCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAuMzc4IDEyLjYyMmExIDEgMCAwIDEgMyAzLjAwM0w4LjM2IDIwLjYzN2EyIDIgMCAwIDEtLjg1NC41MDZsLTIuODY3LjgzN2EuNS41IDAgMCAxLS42Mi0uNjJsLjgzNi0yLjg2OWEyIDIgMCAwIDEgLjUwNi0uODUzeiJ9XV19KTt2YXIgdDYsZkllPWcoKCk9Pnt0Nj1bWyJwYXRoIix7ZDoiTTExLjM1IDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NS4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTZ2NiJ9XV19KTt2YXIgWEUsbUllPWcoKCk9PntYRT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYifV1dfSk7dmFyIGE2LGdJZT1nKCgpPT57YTY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTkuMSA5YTMgMyAwIDAgMSA1LjgyIDFjMCAyLTMgMy0zIDMifV1dfSk7dmFyIFFFLGJJZT1nKCgpPT57UUU9W1sicGF0aCIse2Q6Ik0yMCAxMFY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNGwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDQuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDE0YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTIwIDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIwIDIyYTIgMiAwIDAgMCAyLTIifV1dfSk7dmFyIHM2LHZJZT1nKCgpPT57czY9W1sicGF0aCIse2Q6Ik0xMS4xIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OSAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2My4yNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMi44OC0yLjg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTciLHI6IjMifV1dfSk7dmFyIEpFLHhJZT1nKCgpPT57SkU9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxNC41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTYuMyAxNSAxOCJ9XV19KTt2YXIgaTYseUllPWcoKCk9PntpNj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMS41IDEzLjVhMi41IDIuNSAwIDAgMSAwIDMifV0sWyJwYXRoIix7ZDoiTTE1IDEyYTUgNSAwIDAgMSAwIDYifV1dfSk7dmFyIGVQLHdJZT1nKCgpPT57ZVA9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEwIDExdjIifV0sWyJwYXRoIix7ZDoiTTggMTdoOCJ9XSxbInBhdGgiLHtkOiJNMTQgMTZ2MiJ9XV19KTt2YXIgdFAsa0llPWcoKCk9Pnt0UD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0xNCAxN2gyIn1dXX0pO3ZhciBhUCxTSWU9ZygoKT0+e2FQPVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxOCAzLTMtMy0zIn1dXX0pO3ZhciBzUCxfSWU9ZygoKT0+e3NQPVtbInBhdGgiLHtkOiJNMTEgMjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LThhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTFWOGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA2YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0yLTJBMiAyIDAgMCAwIDE3IDJoLTNhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xeiJ9XV19KTt2YXIgaVAsTUllPWcoKCk9PntpUD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTYgMi0yLTItMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNCJ9XV19KTt2YXIgclAsekllPWcoKCk9PntyUD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDlIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTNIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTdIOCJ9XV19KTt2YXIgcjYsQ0llPWcoKCk9PntyNj1bWyJwYXRoIix7ZDoiTTEyIDIyaDZhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0zIDE2di0xLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgLjUuNVYxNiJ9XSxbInBhdGgiLHtkOiJNNiAyMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE0djgifV1dfSk7dmFyIG9QLFRJZT1nKCgpPT57b1A9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMSAxOGgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Ik05IDEzdi0uNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAuNS41di41In1dXX0pO3ZhciBuUCwkSWU9ZygoKT0+e25QPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJtMTUgMTUtMy0zLTMgMyJ9XV19KTt2YXIgbFAsREllPWcoKCk9PntsUD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTQgNCAwIDAgMC04IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV19KTt2YXIgY1AsTEllPWcoKCk9PntjUD1bWyJwYXRoIix7ZDoiTTQgMTEuNTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTEuOTUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDE1YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTggMTQuNTAyYS41LjUgMCAwIDAtLjgyNi0uMzgxbC0xLjg5MyAxLjYzMWExIDEgMCAwIDEtLjY1MS4yNDNIMy41YS41LjUgMCAwIDAtLjUuNTAxdjMuMDA2YS41LjUgMCAwIDAgLjUuNTAxaDEuMTI5YTEgMSAwIDAgMSAuNjUyLjI0M2wxLjg5MyAxLjYzM2EuNS41IDAgMCAwIC44MjYtLjM4eiJ9XV19KTt2YXIgbzYsRUllPWcoKCk9PntvNj1bWyJwYXRoIix7ZDoiTTQgMTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE3Ljg0MyAzLjAzMy0xLjc1NWEuNjQuNjQgMCAwIDEgLjk2Ny41NnY0LjcwNGEuNjUuNjUgMCAwIDEtLjk2Ny41NkwxMCAyMC4xNTcifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNiIseDoiMyIseToiMTYiLHJ4OiIxIn1dXX0pO3ZhciBuNixQSWU9ZygoKT0+e242PVtbInBhdGgiLHtkOiJNMTEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNSAxNyA1IDUifV0sWyJwYXRoIix7ZDoibTIwIDE3LTUgNSJ9XV19KTt2YXIgZFAsSUllPWcoKCk9PntkUD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSAxMi41IDUgNSJ9XV19KTt2YXIgdVAsQUllPWcoKCk9Pnt1UD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV1dfSk7dmFyIHBQLE5JZT1nKCgpPT57cFA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMyA3LjVoNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNi41aDQifV0sWyJwYXRoIix7ZDoiTTE3IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE3IDcuNWg0In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41aDQifV1dfSk7dmFyIGhQLFJJZT1nKCgpPT57aFA9W1sicGF0aCIse2Q6Ik0xNSAyaC00YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTYuNzA2IDIuNzA2QTIuNCAyLjQgMCAwIDAgMTUgMnY1YTEgMSAwIDAgMCAxIDFoNWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZ6In1dLFsicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDEuNzMyLTEifV1dfSk7dmFyIGw2LE9JZT1nKCgpPT57bDY9W1sicGF0aCIse2Q6Ik0xMiAxMGEyIDIgMCAwIDAtMiAyYzAgMS4wMi0uMSAyLjUxLS4yNiA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMy4xMmMwIDIuMzggMCA2LjM4LTEgOC44OCJ9XSxbInBhdGgiLHtkOiJNMTcuMjkgMjEuMDJjLjEyLS42LjQzLTIuMy41LTMuMDIifV0sWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAwIDEgMTgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIxLjggMTZjLjItMiAuMTMxLTUuMzU0IDAtNiJ9XSxbInBhdGgiLHtkOiJNNSAxOS41QzUuNSAxOCA2IDE1IDYgMTJhNiA2IDAgMCAxIC4zNC0yIn1dLFsicGF0aCIse2Q6Ik04LjY1IDIyYy4yMS0uNjYuNDUtMS4zMi41Ny0yIn1dLFsicGF0aCIse2Q6Ik05IDYuOGE2IDYgMCAwIDEgOSA1LjJ2MiJ9XV19KTt2YXIgZlAsRkllPWcoKCk9PntmUD1bWyJwYXRoIix7ZDoiTTE1IDYuNVYzYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoOCJ9XSxbInBhdGgiLHtkOiJNMTggM2gtMyJ9XSxbInBhdGgiLHtkOiJNMTEgM2E2IDYgMCAwIDAtNiA2djExIn1dLFsicGF0aCIse2Q6Ik01IDEzaDQifV0sWyJwYXRoIix7ZDoiTTE3IDEwYTQgNCAwIDAgMC04IDB2MTBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJaIn1dXX0pO3ZhciBtUCxCSWU9ZygoKT0+e21QPVtbInBhdGgiLHtkOiJNMiAxNnM5LTE1IDIwLTRDMTEgMjMgMiA4IDIgOCJ9XV19KTt2YXIgZ1AsSEllPWcoKCk9PntnUD1bWyJwYXRoIix7ZDoiTTE4IDEyLjQ3di4wM20wLS41di40N20tLjQ3NSA1LjA1NkE2Ljc0NCA2Ljc0NCAwIDAgMSAxNSAxOGMtMy41NiAwLTcuNTYtMi41My04LjUtNiAuMzQ4LTEuMjggMS4xMTQtMi40MzMgMi4xMjEtMy4zOG0zLjQ0NC0yLjA4OEE4LjgwMiA4LjgwMiAwIDAgMSAxNSA2YzMuNTYgMCA2LjA2IDIuNTQgNyA2LS4zMDkgMS4xNC0uNzg2IDIuMTc3LTEuNDEzIDMuMDU4In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzbTcuNDgtNC4zNzJBOS43NyA5Ljc3IDAgMCAxIDE2IDYuMDdtMCAxMS44NmE5Ljc3IDkuNzcgMCAwIDEtMS43MjgtMy42MTgifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOThNOC41MyAzaDUuMjdhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40TTIgMmwyMCAyMCJ9XV19KTt2YXIgYlAscUllPWcoKCk9PntiUD1bWyJwYXRoIix7ZDoiTTYuNSAxMmMuOTQtMy40NiA0Ljk0LTYgOC41LTYgMy41NiAwIDYuMDYgMi41NCA3IDYtLjk0IDMuNDctMy40NCA2LTcgNnMtNy41Ni0yLjUzLTguNS02WiJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE3LjkzYTkuNzcgOS43NyAwIDAgMSAwLTExLjg2In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzIn1dLFsicGF0aCIse2Q6Ik0xMC40NiA3LjI2QzEwLjIgNS44OCA5LjE3IDQuMjQgOCAzaDUuOGEyIDIgMCAwIDEgMS45OCAxLjY3bC4yMyAxLjQifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOTgifV1dfSk7dmFyIHZQLGpJZT1nKCgpPT57dlA9W1sicGF0aCIse2Q6Im0xNy41ODYgMTEuNDE0LTUuOTMgNS45M2ExIDEgMCAwIDEtOC04bDMuMTM3LTMuMTM3YS43MDcuNzA3IDAgMCAxIDEuMjA3LjVWMTAifV0sWyJwYXRoIix7ZDoiTTIwLjQxNCA4LjU4NiAyMiA3In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTAiLHI6IjIifV1dfSk7dmFyIHhQLFZJZT1nKCgpPT57eFA9W1sicGF0aCIse2Q6Ik0xNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCAyMlY0In1dLFsicGF0aCIse2Q6Ik03LjY1NiAySDhjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMC4zNDcifV1dfSk7dmFyIHlQLFVJZT1nKCgpPT57eVA9W1sicGF0aCIse2Q6Ik00IDExaDEifV0sWyJwYXRoIix7ZDoiTTggMTVhMiAyIDAgMCAxLTQgMFYzYTEgMSAwIDAgMSAxLTFoLjVDMTQgMiAyMCA5IDIwIDE4djQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgd1AsV0llPWcoKCk9Pnt3UD1bWyJwYXRoIix7ZDoiTTE4IDIyVjIuOGEuOC44IDAgMCAwLTEuMTctLjcxTDUuNDUgNy43OGEuOC44IDAgMCAwIDAgMS40NEwxOCAxNS41In1dXX0pO3ZhciBrUCxHSWU9ZygoKT0+e2tQPVtbInBhdGgiLHtkOiJNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNSJ9XV19KTt2YXIgU1AsS0llPWcoKCk9PntTUD1bWyJwYXRoIix7ZDoiTTQgMjJWNGExIDEgMCAwIDEgLjQtLjhBNiA2IDAgMCAxIDggMmMzIDAgNSAyIDcuMzMzIDJxMiAwIDMuMDY3LS44QTEgMSAwIDAgMSAyMCA0djEwYTEgMSAwIDAgMS0uNC44QTYgNiAwIDAgMSAxNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV1dfSk7dmFyIF9QLFlJZT1nKCgpPT57X1A9W1sicGF0aCIse2Q6Ik0xMiAzcTEgNCA0IDYuNXQzIDUuNWExIDEgMCAwIDEtMTQgMCA1IDUgMCAwIDEgMS0zIDEgMSAwIDAgMCA1IDBjMC0yLTEuNS0zLTEuNS01cTAtMiAyLjUtNCJ9XV19KTt2YXIgTVAsWkllPWcoKCk9PntNUD1bWyJwYXRoIix7ZDoiTTExLjY1MiA2SDE4In1dLFsicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnY0YTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy42NDkgMkgxN2ExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOGE0IDQgMCAwIDAtLjU1IDEuMDA3In1dXX0pO3ZhciB6UCxYSWU9ZygoKT0+e3pQPVtbInBhdGgiLHtkOiJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiJ9XSxbInBhdGgiLHtkOiJtNSAyMiAxNC00In1dLFsicGF0aCIse2Q6Im01IDE4IDE0IDQifV1dfSk7dmFyIENQLFFJZT1nKCgpPT57Q1A9W1sicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNyAyYTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44QTQgNCAwIDAgMCAxNiAxMnY4YTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgNmgxMiJ9XV19KTt2YXIgVFAsSkllPWcoKCk9PntUUD1bWyJwYXRoIix7ZDoiTTEwIDJ2Mi4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2Ni4zNDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuMjI3LTkuNTYzIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNUgxNSJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV19KTt2YXIgJFAsZUFlPWcoKCk9PnskUD1bWyJwYXRoIix7ZDoiTTE0IDJ2NmEyIDIgMCAwIDAgLjI0NS45Nmw1LjUxIDEwLjA4QTIgMiAwIDAgMSAxOCAyMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuNTEtMTAuMDhBMiAyIDAgMCAwIDEwIDhWMiJ9XSxbInBhdGgiLHtkOiJNNi40NTMgMTVoMTEuMDk0In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXX0pO3ZhciBEUCx0QWU9ZygoKT0+e0RQPVtbInBhdGgiLHtkOiJNMTAgMnY2LjI5MmE3IDcgMCAxIDAgNCAwVjIifV0sWyJwYXRoIix7ZDoiTTUgMTVoMTQifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dfSk7dmFyIExQLGFBZT1nKCgpPT57TFA9W1sicGF0aCIse2Q6Im0zIDcgNSA1LTUgNVY3In1dLFsicGF0aCIse2Q6Im0yMSA3LTUgNSA1IDVWNyJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV1dfSk7dmFyIEVQLHNBZT1nKCgpPT57RVA9W1sicGF0aCIse2Q6Im0xNyAzLTUgNS01LTVoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxLTUtNS01IDVoMTAifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBQUCxpQWU9ZygoKT0+e1BQPVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDEgMyAzbS0zLTNhMyAzIDAgMSAwLTMgM20zLTN2MU05IDhhMyAzIDAgMSAwIDMgM005IDhoMW01IDBhMyAzIDAgMSAxLTMgM20zLTNoLTFtLTIgM3YtMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjEyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmM0LjIgMCA3LTEuNjY3IDctNS00LjIgMC03IDEuNjY3LTcgNVoifV0sWyJwYXRoIix7ZDoiTTEyIDIyYy00LjIgMC03LTEuNjY3LTctNSA0LjIgMCA3IDEuNjY3IDcgNVoifV1dfSk7dmFyIElQLHJBZT1nKCgpPT57SVA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgQVAsb0FlPWcoKCk9PntBUD1bWyJwYXRoIix7ZDoiTTIgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTYifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im0xOSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTUgMTUgMy0zLTMtMyJ9XV19KTt2YXIgTlAsbkFlPWcoKCk9PntOUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTYuNUE0LjUgNC41IDAgMSAxIDcuNSAxMiA0LjUgNC41IDAgMSAxIDEyIDcuNWE0LjUgNC41IDAgMSAxIDQuNSA0LjUgNC41IDQuNSAwIDEgMS00LjUgNC41In1dLFsicGF0aCIse2Q6Ik0xMiA3LjVWOSJ9XSxbInBhdGgiLHtkOiJNNy41IDEySDkifV0sWyJwYXRoIix7ZDoiTTE2LjUgMTJIMTUifV0sWyJwYXRoIix7ZDoiTTEyIDE2LjVWMTUifV0sWyJwYXRoIix7ZDoibTggOCAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDkuODggMTYgOCJ9XSxbInBhdGgiLHtkOiJtOCAxNiAxLjg4LTEuODgifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDE0LjEyIDE2IDE2In1dXX0pO3ZhciBSUCxsQWU9ZygoKT0+e1JQPVtbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0yMC45IDE5LjhBMiAyIDAgMCAwIDIyIDE4VjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMmg1LjEifV0sWyJwYXRoIix7ZDoiTTE1IDExdi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxN3YtMiJ9XV19KTt2YXIgT1AsY0FlPWcoKCk9PntPUD1bWyJwYXRoIix7ZDoiTTEyIDZ2OGwzLTMgMyAzVjYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyeiJ9XV19KTt2YXIgRlAsZEFlPWcoKCk9PntGUD1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMgMy0zLTMifV1dfSk7dmFyIEJQLHVBZT1nKCgpPT57QlA9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkgMTMgMiAyIDQtNCJ9XV19KTt2YXIgSFAscEFlPWcoKCk9PntIUD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV19KTt2YXIgcVAsaEFlPWcoKCk9PntxUD1bWyJwYXRoIix7ZDoiTTEwIDEwLjUgOCAxM2wyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTAuNSAyIDIuNS0yIDIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJ6In1dXX0pO3ZhciBjNixmQWU9ZygoKT0+e2M2PVtbInBhdGgiLHtkOiJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMifV0sWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgalAsbUFlPWcoKCk9PntqUD1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV1dfSk7dmFyIFZQLGdBZT1nKCgpPT57VlA9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjEifV1dfSk7dmFyIFVQLGJBZT1nKCgpPT57VVA9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoibTE1IDEzLTMgMy0zLTMifV1dfSk7dmFyIFdQLHZBZT1nKCgpPT57V1A9W1sicGF0aCIse2Q6Ik0xOCAxOWE1IDUgMCAwIDEtNS01djgifV0sWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY1In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgR1AseEFlPWcoKCk9PntHUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xNCAxM2gzIn1dLFsicGF0aCIse2Q6Ik03IDEzaDMifV1dfSk7dmFyIEtQLHlBZT1nKCgpPT57S1A9W1sicGF0aCIse2Q6Ik0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV19KTt2YXIgWVAsd0FlPWcoKCk9PntZUD1bWyJwYXRoIix7ZDoiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTB2NiJ9XV19KTt2YXIgWlAsa0FlPWcoKCk9PntaUD1bWyJwYXRoIix7ZDoiTTEzIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MS4zNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkgMTRoMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBYUCxTQWU9ZygoKT0+e1hQPVtbInBhdGgiLHtkOiJNMiA5VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAzLTMtMy0zIn1dXX0pO3ZhciBRUCxfQWU9ZygoKT0+e1FQPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMTciLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIn1dXX0pO3ZhciBKUCxNQWU9ZygoKT0+e0pQPVtbInBhdGgiLHtkOiJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjE1IixyOiIxIn1dXX0pO3ZhciBlSSx6QWU9ZygoKT0+e2VJPVtbInBhdGgiLHtkOiJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIHRJLENBZT1nKCgpPT57dEk9W1sicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgYUksVEFlPWcoKCk9PnthST1bWyJwYXRoIix7ZDoiTTIgNy41VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMS41In1dLFsicGF0aCIse2Q6Ik0yIDEzaDEwIn1dLFsicGF0aCIse2Q6Im01IDEwLTMgMyAzIDMifV1dfSk7dmFyIGQ2LCRBZT1nKCgpPT57ZDY9W1sicGF0aCIse2Q6Ik0yIDExLjVWNWEyIDIgMCAwIDEgMi0yaDMuOWMuNyAwIDEuMy4zIDEuNy45bC44IDEuMmMuNC42IDEgLjkgMS43LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC05LjUifV0sWyJwYXRoIix7ZDoiTTExLjM3OCAxMy42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV19KTt2YXIgc0ksREFlPWcoKCk9PntzST1bWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXX0pO3ZhciBpSSxMQWU9ZygoKT0+e2lJPVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY1In1dXX0pO3ZhciBySSxFQWU9ZygoKT0+e3JJPVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTQuMyAxNSAxNiJ9XV19KTt2YXIgb0ksUEFlPWcoKCk9PntvST1bWyJwYXRoIix7ZDoiTTEwLjcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY0LjEifV0sWyJwYXRoIix7ZDoibTIxIDIxLTEuOS0xLjkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgbkksSUFlPWcoKCk9PntuST1bWyJwYXRoIix7ZDoiTTIgOS4zNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Im04IDE2IDMtMy0zLTMifV1dfSk7dmFyIGxJLEFBZT1nKCgpPT57bEk9W1sicGF0aCIse2Q6Ik0yMCAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMi41YTEgMSAwIDAgMS0uOC0uNGwtLjktMS4yQTEgMSAwIDAgMCAxNSAzaC0yYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0yLjlhMSAxIDAgMCAxLS44OC0uNTVsLS40Mi0uODVhMSAxIDAgMCAwLS45Mi0uNkgxM2ExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgM3YxM2EyIDIgMCAwIDAgMiAyaDMifV1dfSk7dmFyIGNJLE5BZT1nKCgpPT57Y0k9W1sicGF0aCIse2Q6Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2LjUifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTIgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0yMiAyMnYtNGgtNCJ9XSxbInBhdGgiLHtkOiJtMjIgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41In1dXX0pO3ZhciBkSSxSQWU9ZygoKT0+e2RJPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im05IDEzIDMtMyAzIDMifV1dfSk7dmFyIHVJLE9BZT1nKCgpPT57dUk9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxMC41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMC41LTUgNSJ9XV19KTt2YXIgcEksRkFlPWcoKCk9PntwST1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgaEksQkFlPWcoKCk9PntoST1bWyJwYXRoIix7ZDoiTTIwIDVhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgyLjVhMS41IDEuNSAwIDAgMSAxLjIuNmwuNi44YTEuNSAxLjUgMCAwIDAgMS4yLjZ6In1dLFsicGF0aCIse2Q6Ik0zIDguMjY4YTIgMiAwIDAgMC0xIDEuNzM4VjE5YTIgMiAwIDAgMCAyIDJoMTFhMiAyIDAgMCAwIDEuNzMyLTEifV1dfSk7dmFyIGZJLEhBZT1nKCgpPT57Zkk9W1sicGF0aCIse2Q6Ik00IDE2di0yLjM4QzQgMTEuNSAyLjk3IDEwLjUgMyA4Yy4wMy0yLjcyIDEuNDktNiA0LjUtNkM5LjM3IDIgMTAgMy44IDEwIDUuNWMwIDMuMTEtMiA1LjY2LTIgOC42OFYxNmEyIDIgMCAxIDEtNCAwWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjB2LTIuMzhjMC0yLjEyIDEuMDMtMy4xMiAxLTUuNjItLjAzLTIuNzItMS40OS02LTQuNS02QzE0LjYzIDYgMTQgNy44IDE0IDkuNWMwIDMuMTEgMiA1LjY2IDIgOC42OFYyMGEyIDIgMCAxIDAgNCAwWiJ9XSxbInBhdGgiLHtkOiJNMTYgMTdoNCJ9XSxbInBhdGgiLHtkOiJNNCAxM2g0In1dXX0pO3ZhciBtSSxxQWU9ZygoKT0+e21JPVtbInBhdGgiLHtkOiJNMTIgMTJINWEyIDIgMCAwIDAtMiAydjUifV0sWyJwYXRoIix7ZDoiTTE1IDE5aDcifV0sWyJwYXRoIix7ZDoiTTE2IDE5VjIifV0sWyJwYXRoIix7ZDoiTTYgMTJWN2EyIDIgMCAwIDEgMi0yaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMy44MjggMy44MjhBMiAyIDAgMCAxIDE2IDEwLjgyOCJ9XSxbInBhdGgiLHtkOiJNNyAxOWg0In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBnSSxqQWU9ZygoKT0+e2dJPVtbInBhdGgiLHtkOiJNNCAxNGg2In1dLFsicGF0aCIse2Q6Ik00IDJoMTAifV0sWyJyZWN0Iix7eDoiNCIseToiMTgiLHdpZHRoOiIxNiIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIGJJLFZBZT1nKCgpPT57Ykk9W1sicGF0aCIse2Q6Im0xNSAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik00IDE4di0yYTQgNCAwIDAgMSA0LTRoMTIifV1dfSk7dmFyIHZJLFVBZT1nKCgpPT57dkk9W1sibGluZSIse3gxOiIyMiIseDI6IjIiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiMTgiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiIyIix5MjoiMjIifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTgiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIHhJLFdBZT1nKCgpPT57eEk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgeUksR0FlPWcoKCk9Pnt5ST1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDloMTEifV1dfSk7dmFyIHdJLEtBZT1nKCgpPT57d0k9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjgiLHg6IjciLHk6IjgiLHJ4OiIxIn1dXX0pO3ZhciBrSSxZQWU9ZygoKT0+e2tJPVtbInBhdGgiLHtkOiJNMTMuMzU0IDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbDEuMjE4LTEuMzQ4In1dLFsicGF0aCIse2Q6Ik0xNiA2aDYifV0sWyJwYXRoIix7ZDoiTTE5IDN2NiJ9XV19KTt2YXIgdTYsWkFlPWcoKCk9Pnt1Nj1bWyJwYXRoIix7ZDoiTTEyLjUzMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwuNDI3LS40NzMifV0sWyJwYXRoIix7ZDoibTE2LjUgMy41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAzLjUtNSA1In1dXX0pO3ZhciBTSSxYQWU9ZygoKT0+e1NJPVtbInBhdGgiLHtkOiJNMiA3djEwIn1dLFsicGF0aCIse2Q6Ik02IDV2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjE4Iix4OiIxMCIseToiMyIscng6IjIifV1dfSk7dmFyIHA2LFFBZT1nKCgpPT57cDY9W1sicGF0aCIse2Q6Ik0xMCAyMGExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MUwyMS43NCA0LjY3QTEgMSAwIDAgMCAyMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR6In1dXX0pO3ZhciBfSSxKQWU9ZygoKT0+e19JPVtbInBhdGgiLHtkOiJNMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxOCIseDoiNiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDN2MTgifV1dfSk7dmFyIE1JLGVOZT1nKCgpPT57TUk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAyMWgxIn1dXX0pO3ZhciB6SSx0TmU9ZygoKT0+e3pJPVtbInBhdGgiLHtkOiJNNyAyaDEwIn1dLFsicGF0aCIse2Q6Ik01IDZoMTQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiIxMCIscng6IjIifV1dfSk7dmFyIENJLGFOZT1nKCgpPT57Q0k9W1sicGF0aCIse2Q6Ik0zIDJoMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XV19KTt2YXIgVEksc05lPWcoKCk9PntUST1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjExIix5MjoiMTEifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiOSIseTI6IjEzIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjEwIix5MjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3LjMyIDVINi42OGE0IDQgMCAwIDAtMy45NzggMy41OWMtLjAwNi4wNTItLjAxLjEwMS0uMDE3LjE1MkMyLjYwNCA5LjQxNiAyIDE0LjQ1NiAyIDE2YTMgMyAwIDAgMCAzIDNjMSAwIDEuNS0uNSAyLTFsMS40MTQtMS40MTRBMiAyIDAgMCAxIDkuODI4IDE2aDQuMzQ0YTIgMiAwIDAgMSAxLjQxNC41ODZMMTcgMThjLjUuNSAxIDEgMiAxYTMgMyAwIDAgMCAzLTNjMC0xLjU0NS0uNjA0LTYuNTg0LS42ODUtNy4yNTgtLjAwNy0uMDUtLjAxMS0uMS0uMDE3LS4xNTFBNCA0IDAgMCAwIDE3LjMyIDV6In1dXX0pO3ZhciAkSSxpTmU9ZygoKT0+eyRJPVtbInBhdGgiLHtkOiJNMTEuMTQ2IDE1Ljg1NGExLjIwNyAxLjIwNyAwIDAgMSAxLjcwOCAwbDEuNTYgMS41NkEyIDIgMCAwIDEgMTUgMTguODI4VjIxYTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXYtMi4xNzJhMiAyIDAgMCAxIC41ODYtMS40MTR6In1dLFsicGF0aCIse2Q6Ik0xOC44MjggMTVhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTEuNTYtMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwLTEuNzA4bDEuNTYtMS41NkEyIDIgMCAwIDEgMTguODI4IDlIMjFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDF6In1dLFsicGF0aCIse2Q6Ik02LjU4NiAxNC40MTRBMiAyIDAgMCAxIDUuMTcyIDE1SDNhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDh6In1dLFsicGF0aCIse2Q6Ik05IDNhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2Mi4xNzJhMiAyIDAgMCAxLS41ODYgMS40MTRsLTEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwOCAwbC0xLjU2LTEuNTZBMiAyIDAgMCAxIDkgNS4xNzJ6In1dXX0pO3ZhciBESSxyTmU9ZygoKT0+e0RJPVtbImxpbmUiLHt4MToiNiIseDI6IjEwIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiIxMCIseTI6IjE0In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTMiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjExIix5MjoiMTEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgTEksb05lPWcoKCk9PntMST1bWyJwYXRoIix7ZDoibTEyIDE0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxOWExMCAxMCAwIDEgMSAxNy4zMiAwIn1dXX0pO3ZhciBFSSxuTmU9ZygoKT0+e0VJPVtbInBhdGgiLHtkOiJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM2w4LjM4NC04LjM4MSJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNi02In1dLFsicGF0aCIse2Q6Im0yMS41IDEwLjUtOC04In1dLFsicGF0aCIse2Q6Im04IDggNi02In1dLFsicGF0aCIse2Q6Im04LjUgNy41IDggOCJ9XV19KTt2YXIgUEksbE5lPWcoKCk9PntQST1bWyJwYXRoIix7ZDoiTTEwLjUgMyA4IDlsNCAxMyA0LTEzLTIuNS02In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjYuOGwzIDRhMiAyIDAgMCAxIC4wMTMgMi4zODJsLTcuOTkgMTAuOTg2YTIgMiAwIDAgMS0zLjI0NyAwbC03Ljk5LTEwLjk4NkEyIDIgMCAwIDEgMi40IDcuOGwyLjk5OC0zLjk5N0EyIDIgMCAwIDEgNyAzeiJ9XSxbInBhdGgiLHtkOiJNMiA5aDIwIn1dXX0pO3ZhciBJSSxjTmU9ZygoKT0+e0lJPVtbInBhdGgiLHtkOiJNOSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMmE4IDggMCAwIDAtOCA4djEybDMtMyAyLjUgMi41TDEyIDE5bDIuNSAyLjVMMTcgMTlsMyAzVjEwYTggOCAwIDAgMC04LTh6In1dXX0pO3ZhciBBSSxkTmU9ZygoKT0+e0FJPVtbInBhdGgiLHtkOiJNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTJWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XSxbInBhdGgiLHtkOiJNOSAxMlYzIn1dXX0pO3ZhciBOSSx1TmU9ZygoKT0+e05JPVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIFJJLHBOZT1nKCgpPT57Ukk9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0yMCAxMXY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi04In1dLFsicGF0aCIse2Q6Ik03LjUgN2ExIDEgMCAwIDEgMC01QTQuOCA4IDAgMCAxIDEyIDdhNC44IDggMCAwIDEgNC41LTUgMSAxIDAgMCAxIDAgNSJ9XSxbInJlY3QiLHt4OiIzIix5OiI3Iix3aWR0aDoiMTgiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIE9JLGhOZT1nKCgpPT57T0k9W1sicGF0aCIse2Q6Ik02IDN2MTIifV0sWyJwYXRoIix7ZDoiTTE4IDlhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiJ9XSxbInBhdGgiLHtkOiJNNiAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6In1dLFsicGF0aCIse2Q6Ik0xNSA2YTkgOSAwIDAgMC05IDkifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dXX0pO3ZhciBGSSxmTmU9ZygoKT0+e0ZJPVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgaDYsbU5lPWcoKCk9PntoNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjkiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgQkksZ05lPWcoKCk9PntCST1bWyJwYXRoIix7ZDoiTTEyIDN2NiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY2In1dXX0pO3ZhciBISSxiTmU9ZygoKT0+e0hJPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDE4SDdhMiAyIDAgMCAxLTItMlY5In1dLFsicGF0aCIse2Q6Im05IDE1IDMgMy0zIDMifV1dfSk7dmFyIHFJLHZOZT1nKCgpPT57cUk9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoiTTExIDE4SDhhMiAyIDAgMCAxLTItMlY5In1dXX0pO3ZhciBqSSx4TmU9ZygoKT0+e2pJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggOXYyYzAgLjYtLjQgMS0xIDFIN2MtLjYgMC0xLS40LTEtMVY5In1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dXX0pO3ZhciBWSSx5TmU9ZygoKT0+e1ZJPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNSA5djYifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTUuN0E5IDkgMCAwIDAgMTkgOSJ9XV19KTt2YXIgVUksd05lPWcoKCk9PntVST1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiAyMVY5YTkgOSAwIDAgMCA5IDkifV1dfSk7dmFyIFdJLGtOZT1nKCgpPT57V0k9W1sicGF0aCIse2Q6Ik0xMiA2aDRhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik02IDEydjkifV0sWyJwYXRoIix7ZDoiTTkgMyAzIDkifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgR0ksU05lPWcoKCk9PntHST1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV1dfSk7dmFyIEtJLF9OZT1nKCgpPT57S0k9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02IDl2MTIifV0sWyJwYXRoIix7ZDoibTIxIDMtNiA2In1dLFsicGF0aCIse2Q6Im0yMSA5LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNVYxNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBZSSxNTmU9ZygoKT0+e1lJPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNSA5djEyIn1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDE1djYifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02In1dXX0pO3ZhciBaSSx6TmU9ZygoKT0+e1pJPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiA5djEyIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XV19KTt2YXIgWEksQ05lPWcoKCk9PntYST1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggNlY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMXYtMSJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiI5Iix5MjoiMjEifV1dfSk7dmFyIFFJLFROZT1nKCgpPT57UUk9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiOSIseTI6IjIxIn1dXX0pO3ZhciBKSSwkTmU9ZygoKT0+e0pJPVtbInBhdGgiLHtkOiJNNS4xMTYgNC4xMDRBMSAxIDAgMCAxIDYuMTEgM2gxMS43OGExIDEgMCAwIDEgLjk5NCAxLjEwNUwxNy4xOSAyMC4yMUEyIDIgMCAwIDEgMTUuMiAyMkg4LjhhMiAyIDAgMCAxLTItMS43OXoifV0sWyJwYXRoIix7ZDoiTTYgMTJhNSA1IDAgMCAxIDYgMCA1IDUgMCAwIDAgNiAwIn1dXX0pO3ZhciBlQSxETmU9ZygoKT0+e2VBPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTUiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNSIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTVhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0yLjUgMTMgNSA3Yy43LTEuMyAxLjQtMiAzLTIifV0sWyJwYXRoIix7ZDoiTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMiJ9XV19KTt2YXIgdEEsTE5lPWcoKCk9Pnt0QT1bWyJwYXRoIix7ZDoiTTE1LjY4NiAxNUExNC41IDE0LjUgMCAwIDEgMTIgMjJhMTQuNSAxNC41IDAgMCAxIDAtMjAgMTAgMTAgMCAxIDAgOS41NDIgMTMifV0sWyJwYXRoIix7ZDoiTTIgMTJoOC41In1dLFsicGF0aCIse2Q6Ik0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiI2IixyeDoiMSJ9XV19KTt2YXIgYUEsRU5lPWcoKCk9PnthQT1bWyJwYXRoIix7ZDoibTE2IDMgNSA1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwQTEwIDEwIDAgMSAxIDEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDQtMTAifV0sWyJwYXRoIix7ZDoibTIxIDMtNSA1In1dXX0pO3ZhciBzQSxQTmU9ZygoKT0+e3NBPVtbInBhdGgiLHtkOiJNMTAuMTE0IDQuNDYyQTE0LjUgMTQuNSAwIDAgMSAxMiAyYTEwIDEwIDAgMCAxIDkuMzEzIDEzLjY0MyJ9XSxbInBhdGgiLHtkOiJNMTUuNTU3IDE1LjU1NkExNC41IDE0LjUgMCAwIDEgMTIgMjIgMTAgMTAgMCAwIDEgNC45MjkgNC45MjkifV0sWyJwYXRoIix7ZDoiTTE1Ljg5MiAxMC4yMzRBMTQuNSAxNC41IDAgMCAwIDEyIDJhMTAgMTAgMCAwIDAtMy42NDMuNjg3In1dLFsicGF0aCIse2Q6Ik0xNy42NTYgMTJIMjIifV0sWyJwYXRoIix7ZDoiTTE5LjA3MSAxOS4wNzFBMTAgMTAgMCAwIDEgMTIgMjIgMTQuNSAxNC41IDAgMCAxIDguNDQgOC40NSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxMCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBpQSxJTmU9ZygoKT0+e2lBPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XV19KTt2YXIgckEsQU5lPWcoKCk9PntyQT1bWyJwYXRoIix7ZDoiTTEyIDEzVjJsOCA0LTggNCJ9XSxbInBhdGgiLHtkOiJNMjAuNTYxIDEwLjIyMmE5IDkgMCAxIDEtMTIuNTUtNS4yOSJ9XSxbInBhdGgiLHtkOiJNOC4wMDIgOS45OTdhNSA1IDAgMSAwIDguOSAyLjAyIn1dXX0pO3ZhciBvQSxOTmU9ZygoKT0+e29BPVtbInBhdGgiLHtkOiJNMiAxN2gxOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDIxVjMifV0sWyJwYXRoIix7ZDoiTTcgMTd2M2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtMyJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjExIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMSIscjoiMiJ9XV19KTt2YXIgbkEsUk5lPWcoKCk9PntuQT1bWyJwYXRoIix7ZDoiTTIxLjQyIDEwLjkyMmExIDEgMCAwIDAtLjAxOS0xLjgzOEwxMi44MyA1LjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDkuMDhhMSAxIDAgMCAwIDAgMS44MzJsOC41NyAzLjkwOGEyIDIgMCAwIDAgMS42NiAweiJ9XSxbInBhdGgiLHtkOiJNMjIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNNiAxMi41VjE2YTYgMyAwIDAgMCAxMiAwdi0zLjUifV1dfSk7dmFyIGxBLE9OZT1nKCgpPT57bEE9W1sicGF0aCIse2Q6Ik0yMiA1VjJsLTUuODkgNS44OSJ9XSxbImNpcmNsZSIse2N4OiIxNi42IixjeToiMTUuODkiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiOC4xMSIsY3k6IjcuNCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMi4zNSIsY3k6IjExLjY1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEzLjkxIixjeToiNS44NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOC4xNSIsY3k6IjEwLjA5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYuNTYiLGN5OiIxMy4yIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjgiLGN5OiIxNy40NCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjMifV1dfSk7dmFyIGY2LEZOZT1nKCgpPT57ZjY9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciBtNixCTmU9ZygoKT0+e202PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV1dfSk7dmFyIGc2LEhOZT1nKCgpPT57ZzY9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxNiA1IDUifV0sWyJwYXRoIix7ZDoibTE2IDIxIDUtNSJ9XV19KTt2YXIgYjYscU5lPWcoKCk9PntiNj1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgY0Esak5lPWcoKCk9PntjQT1bWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBXMCxWTmU9ZygoKT0+e1cwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgZEEsVU5lPWcoKCk9PntkQT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE1IixyOiIxIn1dXX0pO3ZhciB1QSxXTmU9ZygoKT0+e3VBPVtbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjEifV1dfSk7dmFyIHBBLEdOZT1nKCgpPT57cEE9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIxIn1dXX0pO3ZhciBoQSxLTmU9ZygoKT0+e2hBPVtbInBhdGgiLHtkOiJNMyA3VjVjMC0xLjEuOS0yIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJjMS4xIDAgMiAuOSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmMwIDEuMS0uOSAyLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiI3Iix5OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxMCIseToiMTIiLHJ4OiIxIn1dXX0pO3ZhciBmQSxZTmU9ZygoKT0+e2ZBPVtbInBhdGgiLHtkOiJtMTEuOSAxMi4xIDQuNTE0LTQuNTE0In1dLFsicGF0aCIse2Q6Ik0yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eiJ9XSxbInBhdGgiLHtkOiJtNiAxNiAyIDIifV0sWyJwYXRoIix7ZDoiTTguMjMgOS44NUEzIDMgMCAwIDEgMTEgOGE1IDUgMCAwIDEgNSA1IDMgMyAwIDAgMS0xLjg1IDIuNzdsLS45Mi4zOEEyIDIgMCAwIDAgMTIgMThhNCA0IDAgMCAxLTQgNCA2IDYgMCAwIDEtNi02IDQgNCAwIDAgMSA0LTQgMiAyIDAgMCAwIDEuODUtMS4yM3oifV1dfSk7dmFyIG1BLFpOZT1nKCgpPT57bUE9W1sicGF0aCIse2Q6Ik0xMy4xNDQgMjEuMTQ0QTcuMjc0IDEwLjQ0NSA0NSAxIDAgMi44NTYgMTAuODU2In1dLFsicGF0aCIse2Q6Ik0xMy4xNDQgMjEuMTQ0QTcuMjc0IDQuMzY1IDQ1IDAgMCAyLjg1NiAxMC44NTZhNy4yNzQgNC4zNjUgNDUgMCAwIDEwLjI4OCAxMC4yODgifV0sWyJwYXRoIix7ZDoiTTE2LjU2NSAxMC40MzUgMTguNiA4LjRhMi41MDEgMi41MDEgMCAxIDAgMS42NS00LjY1IDIuNSAyLjUgMCAxIDAtNC42NiAxLjY2bC0yLjAyNCAyLjAyNSJ9XSxbInBhdGgiLHtkOiJtOC41IDE2LjUtMS0xIn1dXX0pO3ZhciBnQSxYTmU9ZygoKT0+e2dBPVtbInBhdGgiLHtkOiJNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUifV0sWyJwYXRoIix7ZDoiTTUgMTJhMiAyIDAgMCAxLTItMiA5IDcgMCAwIDEgMTggMCAyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik01IDE2YTIgMiAwIDAgMC0yIDIgMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zIDIgMiAwIDAgMC0yLTJxMCAwIDAgMCJ9XSxbInBhdGgiLHtkOiJtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dXX0pO3ZhciBiQSxRTmU9ZygoKT0+e2JBPVtbInBhdGgiLHtkOiJtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOSJ9XSxbInBhdGgiLHtkOiJtMTggMTUgNC00In1dLFsicGF0aCIse2Q6Im0yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcydi0uMzQ0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0xLjY1Ny0xLjY1N0E2IDYgMCAwIDAgMTIuNTE2IDNIOWwxLjI0MyAxLjI0M0E2IDYgMCAwIDEgMTIgOC40ODVWMTBsMiAyaDEuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTguNSAxNC41In1dXX0pO3ZhciB2QSxKTmU9ZygoKT0+e3ZBPVtbInBhdGgiLHtkOiJNMTEgMTVoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTcifV0sWyJwYXRoIix7ZDoibTcgMjEgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSJ9XSxbInBhdGgiLHtkOiJtMiAxNiA2IDYifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI5IixyOiIyLjkifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIHhBLGVSZT1nKCgpPT57eEE9W1sicGF0aCIse2Q6Ik0xMi4wMzUgMTcuMDEyYTMgMyAwIDAgMC0zLTNsLS4zMTEtLjAwMmEuNzIuNzIgMCAwIDEtLjUwNS0xLjIyOWwxLjE5NS0xLjE5NUEyIDIgMCAwIDEgMTAuODI4IDExSDEyYTIgMiAwIDAgMCAwLTRIOS4yNDNhMyAzIDAgMCAwLTIuMTIyLjg3OWwtMi43MDcgMi43MDdBNC44MyA0LjgzIDAgMCAwIDMgMTRhOCA4IDAgMCAwIDggOGgyYTggOCAwIDAgMCA4LThWN2EyIDIgMCAxIDAtNCAwdjJhMiAyIDAgMSAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTMuODg4IDkuNjYyQTIgMiAwIDAgMCAxNyA4VjVBMiAyIDAgMSAwIDEzIDUifV0sWyJwYXRoIix7ZDoiTTkgNUEyIDIgMCAxIDAgNSA1VjEwIn1dLFsicGF0aCIse2Q6Ik05IDdWNEEyIDIgMCAxIDEgMTMgNFY3LjI2OCJ9XV19KTt2YXIgdjYsdFJlPWcoKCk9Pnt2Nj1bWyJwYXRoIix7ZDoiTTE4IDExLjVWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40In1dLFsicGF0aCIse2Q6Ik0xNCAxMFY4YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjlWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2NSJ9XSxbInBhdGgiLHtkOiJNNiAxNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE4IDExYTIgMiAwIDEgMSA0IDB2M2E4IDggMCAwIDEtOCA4aC00YTggOCAwIDAgMS04LTggMiAyIDAgMSAxIDQgMCJ9XV19KTt2YXIgeUEsYVJlPWcoKCk9Pnt5QT1bWyJwYXRoIix7ZDoiTTExIDE0aDJhMiAyIDAgMCAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE2In1dLFsicGF0aCIse2Q6Im0xNC40NSAxMy4zOSA1LjA1LTQuNjk0QzIwLjE5NiA4IDIxIDYuODUgMjEgNS43NWEyLjc1IDIuNzUgMCAwIDAtNC43OTctMS44MzcuMjc2LjI3NiAwIDAgMS0uNDA2IDBBMi43NSAyLjc1IDAgMCAwIDExIDUuNzVjMCAxLjIuODAyIDIuMjQ4IDEuNSAyLjk0NkwxNiAxMS45NSJ9XSxbInBhdGgiLHtkOiJtMiAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTcgMjAgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMSAxIDAgMCAwLTIuNzUtMi45MSJ9XV19KTt2YXIgeDYsc1JlPWcoKCk9Pnt4Nj1bWyJwYXRoIix7ZDoiTTExIDEyaDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE0In1dLFsicGF0aCIse2Q6Im03IDE4IDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkifV0sWyJwYXRoIix7ZDoibTIgMTMgNiA2In1dXX0pO3ZhciB3QSxpUmU9ZygoKT0+e3dBPVtbInBhdGgiLHtkOiJNMTggMTIuNVYxMGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40In1dLFsicGF0aCIse2Q6Ik0xNCAxMVY5YTIgMiAwIDEgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OSJ9XSxbInBhdGgiLHtkOiJtNyAxNS0xLjc2LTEuNzZhMiAyIDAgMCAwLTIuODMgMi44MmwzLjYgMy42QzcuNSAyMS4xNCA5LjIgMjIgMTIgMjJoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHY1In1dXX0pO3ZhciBrQSxyUmU9ZygoKT0+e2tBPVtbInBhdGgiLHtkOiJNMTIgM1YyIn1dLFsicGF0aCIse2Q6Im0xNS40IDE3LjQgMy4yLTIuOGEyIDIgMCAxIDEgMi44IDIuOWwtMy42IDMuM2MtLjcuOC0xLjcgMS4yLTIuOCAxLjJoLTRjLTEuMSAwLTIuMS0uNC0yLjgtMS4ybC0xLjMwMi0xLjQ2NEExIDEgMCAwIDAgNi4xNTEgMTlINSJ9XSxbInBhdGgiLHtkOiJNMiAxNGgxMmEyIDIgMCAwIDEgMCA0aC0yIn1dLFsicGF0aCIse2Q6Ik00IDEwaDE2In1dLFsicGF0aCIse2Q6Ik01IDEwYTcgNyAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik01IDE0djZhMSAxIDAgMCAxLTEgMUgyIn1dXX0pO3ZhciBTQSxvUmU9ZygoKT0+e1NBPVtbInBhdGgiLHtkOiJNMTggMTFWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDEwVjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTEwIDEwLjVWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTggOGEyIDIgMCAxIDEgNCAwdjZhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBfQSxuUmU9ZygoKT0+e19BPVtbInBhdGgiLHtkOiJNMi4wNDggMTguNTY2QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjk1Mi0yLjQzNGwtMi05QTIgMiAwIDAgMCAxOCA4SDZhMiAyIDAgMCAwLTEuOTUyIDEuNTY2eiJ9XSxbInBhdGgiLHtkOiJNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NSJ9XV19KTt2YXIgTUEsbFJlPWcoKCk9PntNQT1bWyJwYXRoIix7ZDoibTExIDE3IDIgMmExIDEgMCAxIDAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAyLjUgMi41YTEgMSAwIDEgMCAzLTNsLTMuODgtMy44OGEzIDMgMCAwIDAtNC4yNCAwbC0uODguODhhMSAxIDAgMSAxLTMtM2wyLjgxLTIuODFhNS43OSA1Ljc5IDAgMCAxIDcuMDYtLjg3bC40Ny4yOGEyIDIgMCAwIDAgMS40Mi4yNUwyMSA0In1dLFsicGF0aCIse2Q6Im0yMSAzIDEgMTFoLTIifV0sWyJwYXRoIix7ZDoiTTMgMyAyIDE0bDYuNSA2LjVhMSAxIDAgMSAwIDMtMyJ9XSxbInBhdGgiLHtkOiJNMyA0aDgifV1dfSk7dmFyIHpBLGNSZT1nKCgpPT57ekE9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTE2IDYtNCA0LTQtNCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMThoLjAxIn1dXX0pO3ZhciBDQSxkUmU9ZygoKT0+e0NBPVtbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV19KTt2YXIgVEEsdVJlPWcoKCk9PntUQT1bWyJwYXRoIix7ZDoiTTEwIDEwVjVhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2NSJ9XSxbInBhdGgiLHtkOiJNMTQgNmE2IDYgMCAwIDEgNiA2djMifV0sWyJwYXRoIix7ZDoiTTQgMTV2LTNhNiA2IDAgMCAxIDYtNiJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciAkQSxwUmU9ZygoKT0+eyRBPVtbInBhdGgiLHtkOiJNMTAgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yLjIxMiAxMS41NzdhMiAyIDAgMCAwLS4yMTIuODk2VjE4YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNS41MjdhMiAyIDAgMCAwLS4yMTItLjg5NkwxOC41NSA1LjExQTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXoifV0sWyJwYXRoIix7ZDoiTTIxLjk0NiAxMi4wMTNIMi4wNTQifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dXX0pO3ZhciBEQSxoUmU9ZygoKT0+e0RBPVtbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjEwIix4MjoiOCIseTE6IjMiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNCIseTE6IjMiLHkyOiIyMSJ9XV19KTt2YXIgTEEsZlJlPWcoKCk9PntMQT1bWyJwYXRoIix7ZDoiTTE0IDE4YTIgMiAwIDAgMC00IDAifV0sWyJwYXRoIix7ZDoibTE5IDExLTIuMTEtNi42NTdhMiAyIDAgMCAwLTIuNzUyLTEuMTQ4bC0xLjI3Ni42MUEyIDIgMCAwIDEgMTIgNEg4LjVhMiAyIDAgMCAwLTEuOTI1IDEuNDU2TDUgMTEifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIEVBLG1SZT1nKCgpPT57RUE9W1sicGF0aCIse2Q6Im01LjIgNi4yIDEuNCAxLjQifV0sWyJwYXRoIix7ZDoiTTIgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTNoMiJ9XSxbInBhdGgiLHtkOiJtMTcuNCA3LjYgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTdIMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjFIMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTNhNCA0IDAgMCAwLTggMCJ9XSxbInBhdGgiLHtkOiJNMTIgNVYyLjUifV1dfSk7dmFyIFBBLGdSZT1nKCgpPT57UEE9W1sicGF0aCIse2Q6Ik0xMCAxMkg2In1dLFsicGF0aCIse2Q6Ik0xMCAxNVY5In1dLFsicGF0aCIse2Q6Ik0xNCAxNC41YS41LjUgMCAwIDAgLjUuNWgxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMUEyLjUgMi41IDAgMCAwIDE1LjUgOWgtMWEuNS41IDAgMCAwLS41LjV6In1dLFsicGF0aCIse2Q6Ik02IDE1VjkifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgSUEsYlJlPWcoKCk9PntJQT1bWyJwYXRoIix7ZDoiTTIyIDlhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDFsMiAyaDEybDItMmgxYTEgMSAwIDAgMCAxLTFaIn1dLFsicGF0aCIse2Q6Ik03LjUgMTJoOSJ9XV19KTt2YXIgQUEsdlJlPWcoKCk9PntBQT1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Im0xNyAxMiAzLTJ2OCJ9XV19KTt2YXIgTkEseFJlPWcoKCk9PntOQT1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNGMwLTQgNC0zIDQtNiAwLTEuNS0yLTIuNS00LTEifV1dfSk7dmFyIFJBLHlSZT1nKCgpPT57UkE9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMC41YzEuNy0xIDMuNSAwIDMuNSAxLjVhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuNWMyIDEuNSA0IC4zIDQtMS41YTIgMiAwIDAgMC0yLTIifV1dfSk7dmFyIE9BLHdSZT1nKCgpPT57T0E9W1sicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0xNyAxMHYzYTEgMSAwIDAgMCAxIDFoMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTB2OCJ9XSxbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV1dfSk7dmFyIEZBLGtSZT1nKCgpPT57RkE9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2LTNoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuN2MuNC4yLjguMyAxLjMuMyAxLjUgMCAyLjctMS4xIDIuNy0yLjVTMTkuOCAxMyAxOC4zIDEzSDE3In1dXX0pO3ZhciBCQSxTUmU9ZygoKT0+e0JBPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTBjLTIgMi0zIDMuNS0zIDYifV1dfSk7dmFyIEhBLF9SZT1nKCgpPT57SEE9W1sicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik02IDIwVjQifV0sWyJwYXRoIix7ZDoiTTE4IDIwVjQifV1dfSk7dmFyIHFBLE1SZT1nKCgpPT57cUE9W1sicGF0aCIse2Q6Ik0yMSAxNGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTkuMTI4IDMuNDdBOSA5IDAgMCAxIDIxIDEydjMuMzQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxNCAyMC40MTRBMiAyIDAgMCAxIDE5IDIxaC0xYTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDIuNjM2LTYuMzY0In1dXX0pO3ZhciBqQSx6UmU9ZygoKT0+e2pBPVtbInBhdGgiLHtkOiJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUifV1dfSk7dmFyIFZBLENSZT1nKCgpPT57VkE9W1sicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAxOCAwdjdhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV19KTt2YXIgVUEsVFJlPWcoKCk9PntVQT1bWyJwYXRoIix7ZDoiTTEyLjQwOSA1LjgyNGMtLjcwMi43OTItMS4xNSAxLjQ5Ni0xLjQxNSAyLjE2NmwyLjE1MyAyLjE1NmEuNS41IDAgMCAxIDAgLjcwN2wtMi4yOTMgMi4yOTNhLjUuNSAwIDAgMCAwIC43MDdMMTIgMTUifV0sWyJwYXRoIix7ZDoiTTEzLjUwOCAyMC4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzcuNi42IDAgMCAwIC44MTguMDAxQTUuNSA1LjUgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNXoifV1dfSk7dmFyIFdBLCRSZT1nKCgpPT57V0E9W1sicGF0aCIse2Q6Ik0xOS40MTQgMTQuNDE0QzIxIDEyLjgyOCAyMiAxMS41IDIyIDkuNWE1LjUgNS41IDAgMCAwLTkuNTkxLTMuNjc2LjYuNiAwIDAgMS0uODE4LjAwMUE1LjUgNS41IDAgMCAwIDIgOS41YzAgMi4zIDEuNSA0IDMgNS41bDUuNTM1IDUuMzYyYTIgMiAwIDAgMCAyLjg3OS4wNTIgMi4xMiAyLjEyIDAgMCAwLS4wMDQtMyAyLjEyNCAyLjEyNCAwIDEgMCAzLTMgMi4xMjQgMi4xMjQgMCAwIDAgMy4wMDQgMCAyIDIgMCAwIDAgMC0yLjgyOGwtMS44ODEtMS44ODJhMi40MSAyLjQxIDAgMCAwLTMuNDA5IDBsLTEuNzEgMS43MWEyIDIgMCAwIDEtMi44MjggMCAyIDIgMCAwIDEgMC0yLjgyOGwyLjgyMy0yLjc2MiJ9XV19KTt2YXIgR0EsRFJlPWcoKCk9PntHQT1bWyJwYXRoIix7ZDoibTE0Ljg3NiAxOC45OS0xLjM2OCAxLjMyM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWE1LjIgNS4yIDAgMCAxLS4yNDQgMS41NzIifV0sWyJwYXRoIix7ZDoiTTE1IDE1aDYifV1dfSk7dmFyIEtBLExSZT1nKCgpPT57S0E9W1sicGF0aCIse2Q6Ik0xMC41IDQuODkzYTUuNSA1LjUgMCAwIDEgMS4wOTEuOTMxLjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMS44NzItMS4wMDIgMy4zNTYtMi4xODcgNC42NTUifV0sWyJwYXRoIix7ZDoibTE2Ljk2NyAxNi45NjctMy40NTkgMy4zNDZhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgMi43NDctNC43NjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgWUEsRVJlPWcoKCk9PntZQT1bWyJwYXRoIix7ZDoibTE0LjQ3OSAxOS4zNzQtLjk3MS45MzlhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjE5IDEuNDkifV0sWyJwYXRoIix7ZDoiTTE1IDE1aDYifV0sWyJwYXRoIix7ZDoiTTE4IDEydjYifV1dfSk7dmFyIFpBLFBSZT1nKCgpPT57WkE9W1sicGF0aCIse2Q6Ik0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41In1dLFsicGF0aCIse2Q6Ik0zLjIyIDEzSDkuNWwuNS0xIDIgNC41IDItNyAxLjUgMy41aDUuMjcifV1dfSk7dmFyIFhBLElSZT1nKCgpPT57WEE9W1sicGF0aCIse2Q6Im0xNS41IDEyLjUgNSA1In1dLFsicGF0aCIse2Q6Im0yMC41IDEyLjUtNSA1In1dLFsicGF0aCIse2Q6Ik0yMS45NTUgOC43NzRhNS41IDUuNSAwIDAgMC05LjU0Ni0yLjk1LjYuNiAwIDAgMS0uODE4IDBBNS41IDUuNSAwIDAgMCAyIDkuNWMwIDIuMyAxLjUgNCAzIDUuNWw1LjUwOCA1LjMzMmEyIDIgMCAwIDAgMi41Ny4zNTIifV1dfSk7dmFyIFFBLEFSZT1nKCgpPT57UUE9W1sicGF0aCIse2Q6Ik0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41In1dXX0pO3ZhciBKQSxOUmU9ZygoKT0+e0pBPVtbInBhdGgiLHtkOiJNMTEgOGMyLTMtMi0zIDAtNiJ9XSxbInBhdGgiLHtkOiJNMTUuNSA4YzItMy0yLTMgMC02In1dLFsicGF0aCIse2Q6Ik02IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2di00In1dLFsicGF0aCIse2Q6Ik0xNCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTIwIDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNNSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAyMHYyIn1dXX0pO3ZhciBlTixSUmU9ZygoKT0+e2VOPVtbInBhdGgiLHtkOiJNMTEgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y4YTIgMiAwIDAgMCAyIDJoNS44NjUifV0sWyJwYXRoIix7ZDoiTTE3IDE3djQifV0sWyJwYXRoIix7ZDoiTTE4IDE3YTQgNCAwIDAgMCA0LTQgOCA2IDAgMCAwLTgtNiA2IDUgMCAwIDAtNiA1djNhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTTIgMTB2NSJ9XSxbInBhdGgiLHtkOiJNNiAzaDE2In1dLFsicGF0aCIse2Q6Ik03IDIxaDE0In1dLFsicGF0aCIse2Q6Ik04IDEzSDIifV1dfSk7dmFyIHROLE9SZT1nKCgpPT57dE49W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV1dfSk7dmFyIGFOLEZSZT1nKCgpPT57YU49W1sicGF0aCIse2Q6Im05IDExLTYgNnYzaDlsMy0zIn1dLFsicGF0aCIse2Q6Im0yMiAxMi00LjYgNC42YTIgMiAwIDAgMS0yLjggMGwtNS4yLTUuMmEyIDIgMCAwIDEgMC0yLjhMMTQgNCJ9XV19KTt2YXIgc04sQlJlPWcoKCk9PntzTj1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y1bDQgMiJ9XV19KTt2YXIgaU4sSFJlPWcoKCk9PntpTj1bWyJwYXRoIix7ZDoiTTEwLjgyIDE2LjEyYzEuNjkuNiAzLjkxLjc5IDUuMTguODUuNTUuMDMgMS0uNDIuOTctLjk3LS4wNi0xLjI3LS4yNi0zLjUtLjg1LTUuMTgifV0sWyJwYXRoIix7ZDoiTTExLjUgNi41YzEuNjQgMCA1LS4zOCA2LjcxLTEuMDcuNTItLjIuNTUtLjgyLjEyLTEuMTdBMTAgMTAgMCAwIDAgNC4yNiAxOC4zM2MuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44OC44OCAwIDAgMCAuNzMtLjc0Yy4zLTIuMTQtLjE1LTMuNS0uNjEtNC44OCJ9XSxbInBhdGgiLHtkOiJNMTUuNjIgMTYuOTVjLjIuODUuNjIgMi43Ni41IDQuMjhhLjc3Ljc3IDAgMCAxLS45LjcgMTYuNjQgMTYuNjQgMCAwIDEtNC4wOC0xLjM2In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC45Ni0uOTYgMTcuNjggMTcuNjggMCAwIDAtLjktNC44NyJ9XSxbInBhdGgiLHtkOiJNMTYuOTQgMTUuNjJjLjg2LjIgMi43Ny42MiA0LjI5LjVhLjc3Ljc3IDAgMCAwIC43LS45IDE2LjY0IDE2LjY0IDAgMCAwLTEuMzYtNC4wOCJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MiAyMC44MiAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTIuMzMuMi01LjMtLjMyLTguMjctMS41NyJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkzIDMgM2EuNy43IDAgMCAxIDAtMSJ9XSxbInBhdGgiLHtkOiJNOS41OCAxMi4xOGMxLjI0IDIuOTggMS43NyA1Ljk1IDEuNTcgOC4yOGEuOC44IDAgMCAxLTEuMTMuNjggMjAuODIgMjAuODIgMCAwIDEtNC41LTMuMTUifV1dfSk7dmFyIHJOLHFSZT1nKCgpPT57ck49W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTQgMjAuNTdjLjUyLjI0IDIuNDQgMS4xMiA0LjA4IDEuMzcuNDYuMDYuODYtLjI1LjktLjcxLjEyLTEuNTItLjMtMy40My0uNS00LjI4In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC43LS4yNiJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNSJ9XSxbInBhdGgiLHtkOiJNMjAuNTcgMTEuMTRjLjI0LjUyIDEuMTIgMi40NCAxLjM3IDQuMDguMDQuMy0uMDguNTktLjMxLjc1In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCJ9XSxbInBhdGgiLHtkOiJNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OGExMCAxMCAwIDAgMSA5Ljk4IDEuNThjLjQzLjM1LjQuOTYtLjEyIDEuMTctMS41LjYtNC4zLjk4LTYuMDcgMS4wNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBvTixqUmU9ZygoKT0+e29OPVtbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTE0IDloLTQifV0sWyJwYXRoIix7ZDoiTTE4IDExaDJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMjFWNWEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNiJ9XV19KTt2YXIgbk4sVlJlPWcoKCk9PntuTj1bWyJwYXRoIix7ZDoiTTEwIDIydi02LjU3In1dLFsicGF0aCIse2Q6Ik0xMiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNS40M1YyMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZhNSA1IDAgMCAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggN2guMDEifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgbE4sVVJlPWcoKCk9PntsTj1bWyJwYXRoIix7ZDoiTTUgMjJoMTQifV0sWyJwYXRoIix7ZDoiTTUgMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTQuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDEyIDEybC00LjQxNCA0LjQxNEEyIDIgMCAwIDAgNyAxNy44MjhWMjIifV0sWyJwYXRoIix7ZDoiTTcgMnY0LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNEwxMiAxMmw0LjQxNC00LjQxNEEyIDIgMCAwIDAgMTcgNi4xNzJWMiJ9XV19KTt2YXIgY04sV1JlPWcoKCk9PntjTj1bWyJwYXRoIix7ZDoiTTguNjIgMTMuOEEyLjI1IDIuMjUgMCAxIDEgMTIgMTAuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiJ9XV19KTt2YXIgZE4sR1JlPWcoKCk9PntkTj1bWyJwYXRoIix7ZDoiTTEwIDEyVjguOTY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTUgMTJhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtMmExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOC41IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgdU4sS1JlPWcoKCk9Pnt1Tj1bWyJwYXRoIix7ZDoiTTkuNSAxMy44NjZhNCA0IDAgMCAxIDUgLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTcgMTAuNzU0YTggOCAwIDAgMSAxMCAwIn1dXX0pO3ZhciBwTixZUmU9ZygoKT0+e3BOPVtbInBhdGgiLHtkOiJNMTIuMzUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzEtMS41M2w3LTZhMiAyIDAgMCAxIDIuNTggMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjIuMzUifV0sWyJwYXRoIix7ZDoiTTE0LjggMTIuNEExIDEgMCAwIDAgMTQgMTJoLTRhMSAxIDAgMCAwLTEgMXY4In1dLFsicGF0aCIse2Q6Ik0xNSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dXX0pO3ZhciB5NixaUmU9ZygoKT0+e3k2PVtbInBhdGgiLHtkOiJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dfSk7dmFyIHc2LFhSZT1nKCgpPT57dzY9W1sicGF0aCIse2Q6Ik0xMiAxN2M1IDAgOC0yLjY5IDgtNkg0YzAgMy4zMSAzIDYgOCA2bS00IDRoOG0tNC0zdjNNNS4xNCAxMWEzLjUgMy41IDAgMSAxIDYuNzEgMCJ9XSxbInBhdGgiLHtkOiJNMTIuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTE1LjUgNi41YTMuNSAzLjUgMCAxIDAtNyAwIn1dXX0pO3ZhciBrNixRUmU9ZygoKT0+e2s2PVtbInBhdGgiLHtkOiJtNyAxMSA0LjA4IDEwLjM1YTEgMSAwIDAgMCAxLjg0IDBMMTcgMTEifV0sWyJwYXRoIix7ZDoiTTE3IDdBNSA1IDAgMCAwIDcgNyJ9XSxbInBhdGgiLHtkOiJNMTcgN2EyIDIgMCAwIDEgMCA0SDdhMiAyIDAgMCAxIDAtNCJ9XV19KTt2YXIgaE4sSlJlPWcoKCk9PntoTj1bWyJwYXRoIix7ZDoiTTEzLjUgOGgtMyJ9XSxbInBhdGgiLHtkOiJtMTUgMi0xIDJoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgzIn1dLFsicGF0aCIse2Q6Ik0xNi44OTkgMjJBNSA1IDAgMCAwIDcuMSAyMiJ9XSxbInBhdGgiLHtkOiJtOSAyIDMgNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIzIn1dXX0pO3ZhciBmTixlT2U9ZygoKT0+e2ZOPVtbInBhdGgiLHtkOiJNMTYgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoMiJ9XSxbInBhdGgiLHtkOiJNNi4xNyAxNWEzIDMgMCAwIDEgNS42NiAwIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMSIscjoiMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI1Iix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBtTix0T2U9ZygoKT0+e21OPVtbInBhdGgiLHtkOiJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIn1dLFsicGF0aCIse2Q6Im0xNCAxOSAzIDN2LTUuNSJ9XSxbInBhdGgiLHtkOiJtMTcgMjIgMy0zIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciBnTixhT2U9ZygoKT0+e2dOPVtbInBhdGgiLHtkOiJNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjUiLHkyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXX0pO3ZhciBiTixzT2U9ZygoKT0+e2JOPVtbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dLFsicGF0aCIse2Q6Ik0xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzIn1dLFsibGluZSIse3gxOiIxMy41Iix4MjoiNiIseTE6IjEzLjUiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIyMSIseTE6IjEyIix5MjoiMTUifV0sWyJwYXRoIix7ZDoiTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5In1dLFsicGF0aCIse2Q6Ik0yMSAxNVY1YTIgMiAwIDAgMC0yLTJIOSJ9XV19KTt2YXIgdk4saU9lPWcoKCk9Pnt2Tj1bWyJwYXRoIix7ZDoiTTE1IDE1LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdhMSAxIDAgMCAxLTEuNTE3LS44NnoifV0sWyJwYXRoIix7ZDoiTTIxIDEyLjE3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Im02IDIxIDUtNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgeE4sck9lPWcoKCk9Pnt4Tj1bWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMS41VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg3LjUifV0sWyJwYXRoIix7ZDoibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dfSk7dmFyIHlOLG9PZT1nKCgpPT57eU49W1sicGF0aCIse2Q6Ik0xMC4zIDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxMGwtMy4xLTMuMWEyIDIgMCAwIDAtMi44MTQuMDE0TDYgMjEifV0sWyJwYXRoIix7ZDoibTE0IDE5LjUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUuNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgd04sbk9lPWcoKCk9Pnt3Tj1bWyJwYXRoIix7ZDoiTTE2IDNoNXY1In1dLFsicGF0aCIse2Q6Ik0xNyAyMWgyYTIgMiAwIDAgMCAyLTIifV0sWyJwYXRoIix7ZDoiTTIxIDEydjMifV0sWyJwYXRoIix7ZDoibTIxIDMtNSA1In1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Im01IDIxIDQuMTQ0LTQuMTQ0YTEuMjEgMS4yMSAwIDAgMSAxLjcxMiAwTDEzIDE5In1dLFsicGF0aCIse2Q6Ik05IDNoMyJ9XSxbInJlY3QiLHt4OiIzIix5OiIxMSIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIixyeDoiMSJ9XV19KTt2YXIga04sbE9lPWcoKCk9PntrTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEifV1dfSk7dmFyIFNOLGNPZT1nKCgpPT57U049W1sicGF0aCIse2Q6Im0yMiAxMS0xLjI5Ni0xLjI5NmEyLjQgMi40IDAgMCAwLTMuNDA4IDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTQgOGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjciLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBfTixkT2U9ZygoKT0+e19OPVtbInBhdGgiLHtkOiJNMTIgM3YxMiJ9XSxbInBhdGgiLHtkOiJtOCAxMSA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik04IDVINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTQifV1dfSk7dmFyIE1OLHVPZT1nKCgpPT57TU49W1sicG9seWxpbmUiLHtwb2ludHM6IjIyIDEyIDE2IDEyIDE0IDE1IDEwIDE1IDggMTIgMiAxMiJ9XSxbInBhdGgiLHtkOiJNNS40NSA1LjExIDIgMTJ2NmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTZsLTMuNDUtNi44OUEyIDIgMCAwIDAgMTYuNzYgNEg3LjI0YTIgMiAwIDAgMC0xLjc5IDEuMTF6In1dXX0pO3ZhciB6TixwT2U9ZygoKT0+e3pOPVtbInBhdGgiLHtkOiJNNiAzaDEyIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoibTYgMTMgOC41IDgifV0sWyJwYXRoIix7ZDoiTTYgMTNoMyJ9XSxbInBhdGgiLHtkOiJNOSAxM2M2LjY2NyAwIDYuNjY3LTEwIDAtMTAifV1dfSk7dmFyIENOLGhPZT1nKCgpPT57Q049W1sicGF0aCIse2Q6Ik02IDE2YzUgMCA3LTggMTItOGE0IDQgMCAwIDEgMCA4Yy01IDAtNy04LTEyLThhNCA0IDAgMSAwIDAgOCJ9XV19KTt2YXIgVE4sZk9lPWcoKCk9PntUTj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE2di00In1dLFsicGF0aCIse2Q6Ik0xMiA4aC4wMSJ9XV19KTt2YXIgJE4sbU9lPWcoKCk9PnskTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgN2guMDEifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxN2guMDEifV1dfSk7dmFyIEROLGdPZT1nKCgpPT57RE49W1sibGluZSIse3gxOiIxOSIseDI6IjEwIix5MToiNCIseTI6IjQifV0sWyJsaW5lIix7eDE6IjE0Iix4MjoiNSIseTE6IjIwIix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XV19KTt2YXIgTE4sYk9lPWcoKCk9PntMTj1bWyJwYXRoIix7ZDoibTE2IDE0IDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIwIDEwYTggOCAwIDEgMC04IDhoOCJ9XV19KTt2YXIgRU4sdk9lPWcoKCk9PntFTj1bWyJwYXRoIix7ZDoiTTQgMTBhOCA4IDAgMSAxIDggOEg0In1dLFsicGF0aCIse2Q6Im04IDIyLTQtNCA0LTQifV1dfSk7dmFyIFBOLHhPZT1nKCgpPT57UE49W1sicGF0aCIse2Q6Ik0xMiA5LjVWMjFtMC0xMS41TDYgM202IDYuNUwxOCAzIn1dLFsicGF0aCIse2Q6Ik02IDE1aDEyIn1dLFsicGF0aCIse2Q6Ik02IDExaDEyIn1dXX0pO3ZhciBJTix5T2U9ZygoKT0+e0lOPVtbInBhdGgiLHtkOiJNMjEgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJaIn1dLFsicGF0aCIse2Q6Ik02IDE1di0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMyJ9XV19KTt2YXIgQU4sd09lPWcoKCk9PntBTj1bWyJwYXRoIix7ZDoiTTUgM3YxNCJ9XSxbInBhdGgiLHtkOiJNMTIgM3Y4In1dLFsicGF0aCIse2Q6Ik0xOSAzdjE4In1dXX0pO3ZhciBOTixrT2U9ZygoKT0+e05OPVtbInBhdGgiLHtkOiJNMTggMTdhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEifV0sWyJwYXRoIix7ZDoibTYuNzA3IDYuNzA3IDEwLjU4NiAxMC41ODYifV0sWyJwYXRoIix7ZDoiTTcgNWEyIDIgMCAxIDAtMiAyaDFhMSAxIDAgMCAwIDEtMXoifV1dfSk7dmFyIFJOLFNPZT1nKCgpPT57Uk49W1sicGF0aCIse2Q6Ik0xMi40IDIuN2EyLjUgMi41IDAgMCAxIDMuNCAwbDUuNSA1LjVhMi41IDIuNSAwIDAgMSAwIDMuNGwtMy43IDMuN2EyLjUgMi41IDAgMCAxLTMuNCAwTDguNyA5LjhhMi41IDIuNSAwIDAgMSAwLTMuNHoifV0sWyJwYXRoIix7ZDoibTE0IDcgMyAzIn1dLFsicGF0aCIse2Q6Im05LjQgMTAuNi02LjgxNCA2LjgxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNCJ9XV19KTt2YXIgT04sX09lPWcoKCk9PntPTj1bWyJwYXRoIix7ZDoiTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHoifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgRk4sTU9lPWcoKCk9PntGTj1bWyJwYXRoIix7ZDoibTE1LjUgNy41IDIuMyAyLjNhMSAxIDAgMCAwIDEuNCAwbDIuMS0yLjFhMSAxIDAgMCAwIDAtMS40TDE5IDQifV0sWyJwYXRoIix7ZDoibTIxIDItOS42IDkuNiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNS41IixyOiI1LjUifV1dfSk7dmFyIEJOLHpPZT1nKCgpPT57Qk49W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NCJ9XV19KTt2YXIgSE4sQ09lPWcoKCk9PntITj1bWyJwYXRoIix7ZDoiTSAyMCA0IEEyIDIgMCAwIDEgMjIgNiJ9XSxbInBhdGgiLHtkOiJNIDIyIDYgTCAyMiAxNi40MSJ9XSxbInBhdGgiLHtkOiJNIDcgMTYgTCAxNiAxNiJ9XSxbInBhdGgiLHtkOiJNIDkuNjkgNCBMIDIwIDQifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XV19KTt2YXIgcU4sVE9lPWcoKCk9PntxTj1bWyJwYXRoIix7ZDoiTTEwIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDE2aDEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dXX0pO3ZhciBqTiwkT2U9ZygoKT0+e2pOPVtbInBhdGgiLHtkOiJNMTIgMnY1In1dLFsicGF0aCIse2Q6Ik0xNC44MjkgMTUuOTk4YTMgMyAwIDEgMS01LjY1OCAwIn1dLFsicGF0aCIse2Q6Ik0yMC45MiAxNC42MDZBMSAxIDAgMCAxIDIwIDE2SDRhMSAxIDAgMCAxLS45Mi0xLjM5NGwzLTdBMSAxIDAgMCAxIDcgN2gxMGExIDEgMCAwIDEgLjkyLjYwNnoifV1dfSk7dmFyIFZOLERPZT1nKCgpPT57Vk49W1sicGF0aCIse2Q6Ik0xMC4yOTMgMi4yOTNhMSAxIDAgMCAxIDEuNDE0IDBsMi41IDIuNSA1Ljk5NCAxLjIyN2ExIDEgMCAwIDEgLjUwNiAxLjY4N2wtNyA3YTEgMSAwIDAgMS0xLjY4Ny0uNTA2bC0xLjIyNy01Ljk5NC0yLjUtMi41YTEgMSAwIDAgMSAwLTEuNDE0eiJ9XSxbInBhdGgiLHtkOiJtMTQuMjA3IDQuNzkzLTMuNDE0IDMuNDE0In1dLFsicGF0aCIse2Q6Ik0zIDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im05LjA4NiA2LjUtNC43OTMgNC43OTNhMSAxIDAgMCAwLS4xOCAxLjE3TDcgMTgifV1dfSk7dmFyIFVOLExPZT1nKCgpPT57VU49W1sicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTcuOTI5IDcuNjI5QTEgMSAwIDAgMSAxNyA5SDdhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSA5IDJoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik05IDIyaDYifV1dfSk7dmFyIFdOLEVPZT1nKCgpPT57V049W1sicGF0aCIse2Q6Ik0xOS45MjkgMTguNjI5QTEgMSAwIDAgMSAxOSAyMEg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgMTNoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik02IDNhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggNmg0YTIgMiAwIDAgMSAyIDJ2NSJ9XV19KTt2YXIgR04sUE9lPWcoKCk9PntHTj1bWyJwYXRoIix7ZDoiTTE5LjkyOSA5LjYyOUExIDEgMCAwIDEgMTkgMTFIOWExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDExIDRoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik02IDE1YTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxOGg0YTIgMiAwIDAgMCAyLTJ2LTUifV1dfSk7dmFyIEtOLElPZT1nKCgpPT57S049W1sicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Ik00LjA3NyAxMC42MTVBMSAxIDAgMCAwIDUgMTJoMTRhMSAxIDAgMCAwIC45MjMtMS4zODVsLTMuMDc3LTcuMzg0QTIgMiAwIDAgMCAxNSAySDlhMiAyIDAgMCAwLTEuODQ2IDEuMjNaIn1dLFsicGF0aCIse2Q6Ik04IDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBZTixBT2U9ZygoKT0+e1lOPVtbInBhdGgiLHtkOiJtMTIgOCA2LTMtNi0zdjEwIn1dLFsicGF0aCIse2Q6Im04IDExLjk5LTUuNSAzLjE0YTEgMSAwIDAgMCAwIDEuNzRsOC41IDQuODZhMiAyIDAgMCAwIDIgMGw4LjUtNC44NmExIDEgMCAwIDAgMC0xLjc0TDE2IDEyIn1dLFsicGF0aCIse2Q6Im02LjQ5IDEyLjg1IDExLjAyIDYuMyJ9XSxbInBhdGgiLHtkOiJNMTcuNTEgMTIuODUgNi41IDE5LjE1In1dXX0pO3ZhciBaTixOT2U9ZygoKT0+e1pOPVtbInBhdGgiLHtkOiJNMTAgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eiJ9XSxbInBhdGgiLHtkOiJNMTQgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTE4IDE4di03In1dLFsicGF0aCIse2Q6Ik0zIDIyaDE4In1dLFsicGF0aCIse2Q6Ik02IDE4di03In1dXX0pO3ZhciBYTixST2U9ZygoKT0+e1hOPVtbInBhdGgiLHtkOiJtNSA4IDYgNiJ9XSxbInBhdGgiLHtkOiJtNCAxNCA2LTYgMi0zIn1dLFsicGF0aCIse2Q6Ik0yIDVoMTIifV0sWyJwYXRoIix7ZDoiTTcgMmgxIn1dLFsicGF0aCIse2Q6Im0yMiAyMi01LTEwLTUgMTAifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dfSk7dmFyIFFOLE9PZT1nKCgpPT57UU49W1sicGF0aCIse2Q6Ik0yIDIwaDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgUzYsRk9lPWcoKCk9PntTNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIwIix5MjoiMjAifV1dfSk7dmFyIEpOLEJPZT1nKCgpPT57Sk49W1sicGF0aCIse2Q6Ik0xOCA1YTIgMiAwIDAgMSAyIDJ2OC41MjZhMiAyIDAgMCAwIC4yMTIuODk3bDEuMDY4IDIuMTI3YTEgMSAwIDAgMS0uOSAxLjQ1SDMuNjJhMSAxIDAgMCAxLS45LTEuNDVsMS4wNjgtMi4xMjdBMiAyIDAgMCAwIDQgMTUuNTI2VjdhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTIwLjA1NCAxNS45ODdIMy45NDYifV1dfSk7dmFyIGVSLEhPZT1nKCgpPT57ZVI9W1sicGF0aCIse2Q6Ik03IDIyYTUgNSAwIDAgMS0yLTQifV0sWyJwYXRoIix7ZDoiTTcgMTYuOTNjLjk2LjQzIDEuOTYuNzQgMi45OS45MSJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxNEE2LjggNi44IDAgMCAxIDIgMTBjMC00LjQyIDQuNDgtOCAxMC04czEwIDMuNTggMTAgOGE3LjE5IDcuMTkgMCAwIDEtLjMzIDIifV0sWyJwYXRoIix7ZDoiTTUgMThhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0eiJ9XSxbInBhdGgiLHtkOiJNMTQuMzMgMjJoLS4wOWEuMzUuMzUgMCAwIDEtLjI0LS4zMnYtMTBhLjM0LjM0IDAgMCAxIC4zMy0uMzRjLjA4IDAgLjE1LjAzLjIxLjA4bDcuMzQgNmEuMzMuMzMgMCAwIDEtLjIxLjU5aC00LjQ5bC0yLjU3IDMuODVhLjM1LjM1IDAgMCAxLS4yOC4xNHoifV1dfSk7dmFyIHRSLHFPZT1nKCgpPT57dFI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxM2E2IDYgMCAwIDEtNiA1IDYgNiAwIDAgMS02LTVoMTJaIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dfSk7dmFyIGFSLGpPZT1nKCgpPT57YVI9W1sicGF0aCIse2Q6Ik0zLjcwNCAxNC40NjdhMTAgOCAwIDEgMSAzLjExNSAyLjM3NSJ9XSxbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi0zLjk5NCJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTYiLHI6IjIifV1dfSk7dmFyIHNSLFZPZT1nKCgpPT57c1I9W1sicGF0aCIse2Q6Ik0xMyAxMy43NGEyIDIgMCAwIDEtMiAwTDIuNSA4Ljg3YTEgMSAwIDAgMSAwLTEuNzRMMTEgMi4yNmEyIDIgMCAwIDEgMiAwbDguNSA0Ljg3YTEgMSAwIDAgMSAwIDEuNzR6In1dLFsicGF0aCIse2Q6Im0yMCAxNC4yODUgMS41Ljg0NWExIDEgMCAwIDEgMCAxLjc0TDEzIDIxLjc0YTIgMiAwIDAgMS0yIDBsLTguNS00Ljg3YTEgMSAwIDAgMSAwLTEuNzRsMS41LS44NDUifV1dfSk7dmFyIGlSLFVPZT1nKCgpPT57aVI9W1sicGF0aCIse2Q6Ik0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIC44My4xOCAyIDIgMCAwIDAgLjgzLS4xOGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzMnoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTIuMDAzIDExLjk5NWExIDEgMCAwIDAgLjU5Ny45MTVsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTgifV0sWyJwYXRoIix7ZDoiTTIuMDAzIDE2Ljk5NWExIDEgMCAwIDAgLjU5Ny45MTVsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsMi4xMS0uOTYifV0sWyJwYXRoIix7ZDoiTTIyLjAxOCAxMi4wMDRhMSAxIDAgMCAxLS41OTguOTE2bC0uMTc3LjA4In1dXX0pO3ZhciByUixXT2U9ZygoKT0+e3JSPVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6In1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY2In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4In1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIn1dXX0pO3ZhciBvUixHT2U9ZygoKT0+e29SPVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiOSIseDoiMTQiLHk6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV1dfSk7dmFyIF82LEtPZT1nKCgpPT57XzY9W1sicGF0aCIse2Q6Ik0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIDEuNjYgMGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzeiJ9XSxbInBhdGgiLHtkOiJNMiAxMmExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDEyIn1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGw4LjU4LTMuOUExIDEgMCAwIDAgMjIgMTcifV1dfSk7dmFyIG5SLFlPZT1nKCgpPT57blI9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgbFIsWk9lPWcoKCk9PntsUj1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNCA0aDcifV0sWyJwYXRoIix7ZDoiTTE0IDloNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoNyJ9XV19KTt2YXIgY1IsWE9lPWcoKCk9PntjUj1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBkUixRT2U9ZygoKT0+e2RSPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjciLHg6IjE2Iix5OiIxNCIscng6IjEifV1dfSk7dmFyIHVSLEpPZT1nKCgpPT57dVI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgcFIsZUZlPWcoKCk9PntwUj1bWyJwYXRoIix7ZDoiTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFoifV0sWyJwYXRoIix7ZDoiTTIgMjFjMC0zIDEuODUtNS4zNiA1LjA4LTZDOS41IDE0LjUyIDEyIDEzIDEzIDEyIn1dXX0pO3ZhciBoUix0RmU9ZygoKT0+e2hSPVtbInBhdGgiLHtkOiJNMiAyMmMxLjI1LS45ODcgMi4yNy0xLjk3NSAzLjktMi4yYTUuNTYgNS41NiAwIDAgMSAzLjggMS41IDQgNCAwIDAgMCA2LjE4Ny0yLjM1MyAzLjUgMy41IDAgMCAwIDMuNjktNS4xMTZBMy41IDMuNSAwIDAgMCAyMC45NSA4IDMuNSAzLjUgMCAxIDAgMTYgMy4wNWEzLjUgMy41IDAgMCAwLTUuODMxIDEuMzczIDMuNSAzLjUgMCAwIDAtNS4xMTYgMy42OSA0IDQgMCAwIDAtMi4zNDggNi4xNTVDMy40OTkgMTUuNDIgNC40MDkgMTYuNzEyIDQuMiAxOC4xIDMuOTI2IDE5Ljc0MyAzLjAxNCAyMC43MzIgMiAyMiJ9XSxbInBhdGgiLHtkOiJNMiAyMiAxNyA3In1dXX0pO3ZhciBmUixhRmU9ZygoKT0+e2ZSPVtbInBhdGgiLHtkOiJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjEyIix4OiI4Iix5OiIxMCIscng6IjEifV1dfSk7dmFyIG1SLHNGZT1nKCgpPT57bVI9W1sicGF0aCIse2Q6Ik03IDJhMSAxIDAgMCAwLS44IDEuNiAxNCAxNCAwIDAgMSAwIDE2LjhBMSAxIDAgMCAwIDcgMjJoMTBhMSAxIDAgMCAwIC44LTEuNiAxNCAxNCAwIDAgMSAwLTE2LjhBMSAxIDAgMCAwIDE3IDJ6In1dXX0pO3ZhciBnUixpRmU9ZygoKT0+e2dSPVtbInBhdGgiLHtkOiJNMTMuNDMzIDJhMSAxIDAgMCAxIC44MjQuNDQ4IDE4IDE4IDAgMCAxIDAgMTkuMTA0IDEgMSAwIDAgMS0uODI0LjQ0OGgtMi44NjZhMSAxIDAgMCAxLS44MjQtLjQ0OCAxOCAxOCAwIDAgMSAwLTE5LjEwNEExIDEgMCAwIDEgMTAuNTY3IDJ6In1dXX0pO3ZhciBiUixyRmU9ZygoKT0+e2JSPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMjAuNCAxOC45Yy4yLjUtLjEgMS4xLS42IDEuM2wtMS45LjdjLS41LjItMS4xLS4xLTEuMy0uNkwxMS4xIDUuMWMtLjItLjUuMS0xLjEuNi0xLjNsMS45LS43Yy41LS4yIDEuMS4xIDEuMy42WiJ9XV19KTt2YXIgdlIsb0ZlPWcoKCk9Pnt2Uj1bWyJwYXRoIix7ZDoibTE2IDYgNCAxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnYxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djEyIn1dLFsicGF0aCIse2Q6Ik00IDR2MTYifV1dfSk7dmFyIHhSLG5GZT1nKCgpPT57eFI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyA5LjE3IDQuMjQtNC4yNCJ9XSxbInBhdGgiLHtkOiJtMTQuODMgMTQuODMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im05LjE3IDE0LjgzLTQuMjQgNC4yNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXX0pO3ZhciB5UixsRmU9ZygoKT0+e3lSPVtbInBhdGgiLHtkOiJNMTQgMTJoMnY4In1dLFsicGF0aCIse2Q6Ik0xNCAyMGg0In1dLFsicGF0aCIse2Q6Ik02IDEyaDQifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNOCAyMFY4YTQgNCAwIDAgMSA3LjQ2NC0yIn1dXX0pO3ZhciB3UixjRmU9ZygoKT0+e3dSPVtbInBhdGgiLHtkOiJNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV1dfSk7dmFyIGtSLGRGZT1nKCgpPT57a1I9W1sicGF0aCIse2Q6Ik0xNi44IDExLjJjLjgtLjkgMS4yLTIgMS4yLTMuMmE2IDYgMCAwIDAtOS4zLTUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNi4zIDYuM2E0LjY3IDQuNjcgMCAwIDAgMS4yIDUuMmMuNy43IDEuMyAxLjUgMS41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dXX0pO3ZhciBTUix1RmU9ZygoKT0+e1NSPVtbInBhdGgiLHtkOiJNIDMgMTIgTCAxNSAxMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBfUixwRmU9ZygoKT0+e19SPVtbInBhdGgiLHtkOiJNMTEgNWgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xOSA1aDIifV0sWyJwYXRoIix7ZDoiTTMgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA1aDIifV1dfSk7dmFyIE1SLGhGZT1nKCgpPT57TVI9W1sicGF0aCIse2Q6Ik03IDMuNWM1LTIgNyAyLjUgMyA0QzEuNSAxMCAyIDE1IDUgMTZjNSAyIDktMTAgMTQtN3MuNSAxMy41LTQgMTJjLTUtMi41LjUtMTEgNi0yIn1dXX0pO3ZhciB6UixmRmU9ZygoKT0+e3pSPVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDcifV0sWyJwYXRoIix7ZDoiTTE1IDdoMmE1IDUgMCAwIDEgNCA4In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIENSLG1GZT1nKCgpPT57Q1I9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgN2gyIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMSAxIDAgMTBoLTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIFRSLGdGZT1nKCgpPT57VFI9W1sicGF0aCIse2Q6Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSJ9XV19KTt2YXIgJFIsYkZlPWcoKCk9PnskUj1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggMiAyIDQtNCJ9XV19KTt2YXIgRFIsdkZlPWcoKCk9PntEUj1bWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMyAxNyAyIDIgNC00In1dLFsicGF0aCIse2Q6Im0zIDcgMiAyIDQtNCJ9XV19KTt2YXIgTFIseEZlPWcoKCk9PntMUj1bWyJwYXRoIix7ZDoiTTMgNWg4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAzLTMgMyAzIn1dXX0pO3ZhciBFUix5RmU9ZygoKT0+e0VSPVtbInBhdGgiLHtkOiJNMyA1aDgifV0sWyJwYXRoIix7ZDoiTTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWg4In1dLFsicGF0aCIse2Q6Im0xNSA4IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE1IDE2IDMgMyAzLTMifV1dfSk7dmFyIFBSLHdGZT1nKCgpPT57UFI9W1sicGF0aCIse2Q6Ik0xMCA1aDExIn1dLFsicGF0aCIse2Q6Ik0xMCAxMmgxMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTloMTEifV0sWyJwYXRoIix7ZDoibTMgMTAgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtMyAyMCAzLTMtMy0zIn1dXX0pO3ZhciBJUixrRmU9ZygoKT0+e0lSPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik05IDE5SDMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XV19KTt2YXIgQVIsU0ZlPWcoKCk9PntBUj1bWyJwYXRoIix7ZDoiTTEyIDVIMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDhWMiJ9XV19KTt2YXIgTlIsX0ZlPWcoKCk9PntOUj1bWyJwYXRoIix7ZDoiTTIgNWgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dXX0pO3ZhciBHMCxNRmU9ZygoKT0+e0cwPVtbInBhdGgiLHtkOiJNMjEgNUgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDExIn1dLFsicGF0aCIse2Q6Im03IDgtNCA0IDQgNCJ9XV19KTt2YXIgSzAsekZlPWcoKCk9PntLMD1bWyJwYXRoIix7ZDoiTTIxIDVIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDEySDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxOUgxMSJ9XSxbInBhdGgiLHtkOiJtMyA4IDQgNC00IDQifV1dfSk7dmFyIFJSLENGZT1nKCgpPT57UlI9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciBPUixURmU9ZygoKT0+e09SPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNlY1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIEZSLCRGZT1nKCgpPT57RlI9W1sicGF0aCIse2Q6Ik0xMSA1aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTloMTAifV0sWyJwYXRoIix7ZDoiTTQgNGgxdjUifV0sWyJwYXRoIix7ZDoiTTQgOWgyIn1dLFsicGF0aCIse2Q6Ik02LjUgMjBIMy40YzAtMSAyLjYtMS45MjUgMi42LTMuNWExLjUgMS41IDAgMCAwLTIuNi0xLjAyIn1dXX0pO3ZhciBCUixERmU9ZygoKT0+e0JSPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciBIUixMRmU9ZygoKT0+e0hSPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik03IDEySDMifV0sWyJwYXRoIix7ZDoiTTcgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTB2NGg0In1dXX0pO3ZhciBxUixFRmU9ZygoKT0+e3FSPVtbInBhdGgiLHtkOiJNMyA1aDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloMTMifV0sWyJwYXRoIix7ZDoibTE2IDgtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02In1dXX0pO3ZhciBqUixQRmU9ZygoKT0+e2pSPVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIFZSLElGZT1nKCgpPT57VlI9W1sicGF0aCIse2Q6Ik04IDVoMTMifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTJhMiAyIDAgMCAwIDIgMmgzIn1dXX0pO3ZhciBVUixBRmU9ZygoKT0+e1VSPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMi4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dXX0pO3ZhciBXUixORmU9ZygoKT0+e1dSPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNS41IDkuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIwLjUgOS41LTUgNSJ9XV19KTt2YXIgR1IsUkZlPWcoKCk9PntHUj1bWyJwYXRoIix7ZDoiTTMgNWguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA1aDEzIn1dLFsicGF0aCIse2Q6Ik04IDEyaDEzIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEzIn1dXX0pO3ZhciBNNixPRmU9ZygoKT0+e002PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYifV1dfSk7dmFyIEtSLEZGZT1nKCgpPT57S1I9W1sicGF0aCIse2Q6Ik0yMiAxMmExIDEgMCAwIDEtMTAgMCAxIDEgMCAwIDAtMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyAyMC43YTEgMSAwIDEgMSA1LTguNyAxIDEgMCAxIDAgNS04LjYifV0sWyJwYXRoIix7ZDoiTTcgMy4zYTEgMSAwIDEgMSA1IDguNiAxIDEgMCAxIDAgNSA4LjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIFlSLEJGZT1nKCgpPT57WVI9W1sicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoibTE2LjIgNy44IDIuOS0yLjkifV0sWyJwYXRoIix7ZDoiTTE4IDEyaDQifV0sWyJwYXRoIix7ZDoibTE2LjIgMTYuMiAyLjkgMi45In1dLFsicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Im00LjkgMTkuMSAyLjktMi45In1dLFsicGF0aCIse2Q6Ik0yIDEyaDQifV0sWyJwYXRoIix7ZDoibTQuOSA0LjkgMi45IDIuOSJ9XV19KTt2YXIgWlIsSEZlPWcoKCk9PntaUj1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBYUixxRmU9ZygoKT0+e1hSPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yNGE3IDcgMCAwIDAtOC4xMy04LjEzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMmgzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy4wNSA3LjA1YTcgNyAwIDAgMCA5LjkgOS45In1dXX0pO3ZhciBRUixqRmU9ZygoKT0+e1FSPVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dXX0pO3ZhciB6NixWRmU9ZygoKT0+e3o2PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDkuMzMtMi41In1dXX0pO3ZhciBKUixVRmU9ZygoKT0+e0pSPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjEwIix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyJ9XV19KTt2YXIgQzYsV0ZlPWcoKCk9PntDNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDkuOS0xIn1dXX0pO3ZhciBlTyxHRmU9ZygoKT0+e2VPPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTEiLHg6IjMiLHk6IjExIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0In1dXX0pO3ZhciB0TyxLRmU9ZygoKT0+e3RPPVtbInBhdGgiLHtkOiJtMTAgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCJ9XV19KTt2YXIgYU8sWUZlPWcoKCk9PnthTz1bWyJwYXRoIix7ZDoibTE2IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIxIDEySDkifV0sWyJwYXRoIix7ZDoiTTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXX0pO3ZhciBzTyxaRmU9ZygoKT0+e3NPPVtbInBhdGgiLHtkOiJNMyA1aDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxIn1dLFsicGF0aCIse2Q6Ik04IDVoMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmgxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEifV0sWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XV19KTt2YXIgaU8sWEZlPWcoKCk9PntpTz1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTFhMiAyIDAgMCAwIDQgMCA0IDQgMCAwIDAtOCAwIDYgNiAwIDAgMCAxMiAwIn1dXX0pO3ZhciByTyxRRmU9ZygoKT0+e3JPPVtbInBhdGgiLHtkOiJNNiAyMGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTggMThWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMTAgMjBoNCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjIwIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgb08sSkZlPWcoKCk9PntvTz1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciBuTyxlQmU9ZygoKT0+e25PPVtbInBhdGgiLHtkOiJtMTIgMTUgNCA0In1dLFsicGF0aCIse2Q6Ik0yLjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMDI5LTYuMDI5YTEgMSAwIDEgMSAzIDNsLTYuMDI5IDYuMDI5YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjM2NS02LjM2N0ExIDEgMCAwIDAgOC43MTYgNC4yODJ6In1dLFsicGF0aCIse2Q6Im01IDggNCA0In1dXX0pO3ZhciBsTyx0QmU9ZygoKT0+e2xPPVtbInBhdGgiLHtkOiJNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV1dfSk7dmFyIGNPLGFCZT1nKCgpPT57Y089W1sicGF0aCIse2Q6Ik0yMS4yIDguNGMuNS4zOC44Ljk3LjggMS42djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAuOC0xLjZsOC02YTIgMiAwIDAgMSAyLjQgMGw4IDZaIn1dLFsicGF0aCIse2Q6Im0yMiAxMC04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgMTAifV1dfSk7dmFyIGRPLHNCZT1nKCgpPT57ZE89W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV19KTt2YXIgVDYsaUJlPWcoKCk9PntUNj1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDE1LjI4Yy4yLS40LjUtLjguOS0xYTIuMSAyLjEgMCAwIDEgMi42LjRjLjMuNC41LjguNSAxLjMgMCAxLjMtMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXX0pO3ZhciB1TyxyQmU9ZygoKT0+e3VPPVtbInBhdGgiLHtkOiJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuNS0xLjUifV1dfSk7dmFyIHBPLG9CZT1nKCgpPT57cE89W1sicGF0aCIse2Q6Ik0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0yMCAxNHY0In1dLFsicGF0aCIse2Q6Ik0yMCAyMnYuMDEifV1dfSk7dmFyIGhPLG5CZT1nKCgpPT57aE89W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOSJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNCA0In1dLFsicGF0aCIse2Q6Im0yMSAxNy00IDQifV1dfSk7dmFyIGZPLGxCZT1nKCgpPT57Zk89W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5LjVDMiA3IDQgNSA2LjUgNUgxOGMyLjIgMCA0IDEuOCA0IDR2OFoifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTUsOSAxOCw5IDE4LDExIn1dLFsicGF0aCIse2Q6Ik02LjUgNUM5IDUgMTEgNyAxMSA5LjVWMTdhMiAyIDAgMCAxLTIgMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjciLHkxOiIxMCIseTI6IjEwIn1dXX0pO3ZhciBtTyxjQmU9ZygoKT0+e21PPVtbInBhdGgiLHtkOiJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDcifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgZ08sZEJlPWcoKCk9PntnTz1bWyJwYXRoIix7ZDoiTTE3IDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAxLTEuNzMyIn1dLFsicGF0aCIse2Q6Im0yMiA1LjUtNi40MTkgNC4xNzlhMiAyIDAgMCAxLTIuMTYyIDBMNyA1LjUifV0sWyJyZWN0Iix7eDoiNyIseToiMyIsd2lkdGg6IjE1IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgYk8sdUJlPWcoKCk9PntiTz1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTQifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjE0In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV19KTt2YXIgdk8scEJlPWcoKCk9Pnt2Tz1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dXX0pO3ZhciB4TyxoQmU9ZygoKT0+e3hPPVtbInBhdGgiLHtkOiJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTggMiAyIDQtNCJ9XV19KTt2YXIgeU8sZkJlPWcoKCk9Pnt5Tz1bWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIC40NDUtLjgzMmwzLTJhMSAxIDAgMCAxIDEuMTEgMGwzIDJBMSAxIDAgMCAxIDIyIDE3djRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTE4IDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgLjYwMS4yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtMyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciB3TyxtQmU9ZygoKT0+e3dPPVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIGtPLGdCZT1nKCgpPT57a089W1sicGF0aCIse2Q6Ik0xOC45NzcgMTRDMTkuNiAxMi43MDEgMjAgMTEuMzQzIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XV19KTt2YXIgU08sYkJlPWcoKCk9PntTTz1bWyJwYXRoIix7ZDoiTTEyLjc1IDcuMDlhMyAzIDAgMCAxIDIuMTYgMi4xNiJ9XSxbInBhdGgiLHtkOiJNMTcuMDcyIDE3LjA3MmMtMS42MzQgMi4xNy0zLjUyNyAzLjkxMi00LjQ3MSA0LjcyN2ExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMS40MzItNC41NjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMyJ9XSxbInBhdGgiLHtkOiJNOS4xMyA5LjEzYTMgMyAwIDAgMCAzLjc0IDMuNzQifV1dfSk7dmFyICQ2LHZCZT1nKCgpPT57JDY9W1sicGF0aCIse2Q6Ik0xNy45NyA5LjMwNEE4IDggMCAwIDAgMiAxMGMwIDQuNjkgNC44ODcgOS41NjIgNy4wMjIgMTEuNDY4In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMCIscjoiMyJ9XV19KTt2YXIgX08seEJlPWcoKCk9PntfTz1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIE1PLHlCZT1nKCgpPT57TU89W1sicGF0aCIse2Q6Ik0xOS45MTQgMTEuMTA1QTcuMjk4IDcuMjk4IDAgMCAwIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTV2NiJ9XV19KTt2YXIgek8sd0JlPWcoKCk9Pnt6Tz1bWyJwYXRoIix7ZDoiTSAxMi4yNDggMjEuOTY5IGEgMSAxIDAgMCAxIC0wLjg0OSAtMC4xNyBDIDkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwIGEgOCA4IDAgMCAxIDE2IDAgQyAyMCAxMC40MiAxOS45NjEgMTAuODQxIDE5Ljg4OCAxMS4yNjIifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODgtMS44OCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIENPLGtCZT1nKCgpPT57Q089W1sicGF0aCIse2Q6Ik0xOS43NTIgMTEuOTAxQTcuNzggNy43OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMTkgMTkgMCAwIDAgLjA5LS4wNzcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxNS41LTUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAyMC41LTUtNSJ9XV19KTt2YXIgVE8sU0JlPWcoKCk9PntUTz1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtMTQuNSA3LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgNy41IDUgNSJ9XV19KTt2YXIgJE8sX0JlPWcoKCk9PnskTz1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciBETyxNQmU9ZygoKT0+e0RPPVtbInBhdGgiLHtkOiJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIn1dXX0pO3ZhciBMTyx6QmU9ZygoKT0+e0xPPVtbInBhdGgiLHtkOiJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxMiJ9XSxbInBhdGgiLHtkOiJNMTUgNS43NjRWMTIifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBFTyxDQmU9ZygoKT0+e0VPPVtbInBhdGgiLHtkOiJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0djE1In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBQTyxUQmU9ZygoKT0+e1BPPVtbInBhdGgiLHtkOiJtMTQgNiA0IDQifV0sWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Im0yMSAzLTcuNzUgNy43NSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjYifV1dfSk7dmFyIElPLCRCZT1nKCgpPT57SU89W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJtMjEgMy02Ljc1IDYuNzUifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxNCIscjoiNiJ9XV19KTt2YXIgQU8sREJlPWcoKCk9PntBTz1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2MTEifV0sWyJwYXRoIix7ZDoibTE5IDMtNyA4LTctOFoifV1dfSk7dmFyIE5PLExCZT1nKCgpPT57Tk89W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjEgMy03IDcifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dfSk7dmFyIFJPLEVCZT1nKCgpPT57Uk89W1sicGF0aCIse2Q6Ik04IDNINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDhWNWEyIDIgMCAwIDAtMi0yaC0zIn1dLFsicGF0aCIse2Q6Ik0zIDE2djNhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0xNiAyMWgzYTIgMiAwIDAgMCAyLTJ2LTMifV1dfSk7dmFyIE9PLFBCZT1nKCgpPT57T089W1sicGF0aCIse2Q6Ik03LjIxIDE1IDIuNjYgNy4xNGEyIDIgMCAwIDEgLjEzLTIuMkw0LjQgMi44QTIgMiAwIDAgMSA2IDJoMTJhMiAyIDAgMCAxIDEuNi44bDEuNiAyLjE0YTIgMiAwIDAgMSAuMTQgMi4yTDE2Ljc5IDE1In1dLFsicGF0aCIse2Q6Ik0xMSAxMiA1LjEyIDIuMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNS44OC05LjgifV0sWyJwYXRoIix7ZDoiTTggN2g4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yaC0uNSJ9XV19KTt2YXIgRk8sSUJlPWcoKCk9PntGTz1bWyJwYXRoIix7ZDoiTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djYifV1dfSk7dmFyIEJPLEFCZT1nKCgpPT57Qk89W1sicGF0aCIse2Q6Ik0xMSA2YTEzIDEzIDAgMCAwIDguNC0yLjhBMSAxIDAgMCAxIDIxIDR2MTJhMSAxIDAgMCAxLTEuNi44QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0In1dLFsicGF0aCIse2Q6Ik04IDZ2OCJ9XV19KTt2YXIgSE8sTkJlPWcoKCk9PntITz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgcU8sUkJlPWcoKCk9PntxTz1bWyJwYXRoIix7ZDoiTTEyIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDE4di0yIn1dLFsicGF0aCIse2Q6Ik0yIDExaDEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTIwLjUgMTFIMjIifV0sWyJwYXRoIix7ZDoiTTQgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjIwIixoZWlnaHQ6IjEwIixyeDoiMiJ9XV19KTt2YXIgak8sT0JlPWcoKCk9PntqTz1bWyJwYXRoIix7ZDoiTTQgNWgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxOWgxNiJ9XV19KTt2YXIgVk8sRkJlPWcoKCk9PntWTz1bWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjEwLjNhNCA0IDAgMCAxLTEuMTcyIDIuODcyTDQgMjIifV0sWyJwYXRoIix7ZDoibTIwIDIyLTUtNSJ9XV19KTt2YXIgVU8sQkJlPWcoKCk9PntVTz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIFdPLEhCZT1nKCgpPT57V089W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBHTyxxQmU9ZygoKT0+e0dPPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCJ9XV19KTt2YXIgS08sakJlPWcoKCk9PntLTz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDUuMDA0IDIuMjI0IDMgMyAwIDAgMS0uODMyIDIuMDgzbC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ1LS4wMDF6In1dXX0pO3ZhciBZTyxWQmU9ZygoKT0+e1lPPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgWk8sVUJlPWcoKCk9PntaTz1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1In1dXX0pO3ZhciBYTyxXQmU9ZygoKT0+e1hPPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBENixHQmU9ZygoKT0+e0Q2PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIFFPLEtCZT1nKCgpPT57UU89W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJtMTAgMTUtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNNyAxMmg4YTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgSk8sWUJlPWcoKCk9PntKTz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgZUYsWkJlPWcoKCk9PntlRj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgdEYsWEJlPWcoKCk9Pnt0Rj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBhRixRQmU9ZygoKT0+e2FGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMtMy0zLTMifV1dfSk7dmFyIHNGLEpCZT1nKCgpPT57c0Y9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43LjcgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im05IDExIDIgMiA0LTQifV1dfSk7dmFyIGlGLGVIZT1nKCgpPT57aUY9W1sicGF0aCIse2Q6Ik0xNCAzaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0yIDE2djUuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMS4xNDktMS4xNDkifV0sWyJwYXRoIix7ZDoiTTIwIDE5YTIgMiAwIDAgMCAyLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTIyIDZWNWEyIDIgMCAwIDAtMi0yIn1dLFsicGF0aCIse2Q6Ik00IDNhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDIifV0sWyJwYXRoIix7ZDoiTTggM2gyIn1dXX0pO3ZhciByRix0SGU9ZygoKT0+e3JGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV19KTt2YXIgb0YsYUhlPWcoKCk9PntvRj1bWyJwYXRoIix7ZDoiTTEyLjcgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQuNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIG5GLHNIZT1nKCgpPT57bkY9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41In1dXX0pO3ZhciBsRixpSGU9ZygoKT0+e2xGPVtbInBhdGgiLHtkOiJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE1Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgY0YsckhlPWcoKCk9PntjRj1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dXX0pO3ZhciBkRixvSGU9ZygoKT0+e2RGPVtbInBhdGgiLHtkOiJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0In1dXX0pO3ZhciB1RixuSGU9ZygoKT0+e3VGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA4djYifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XV19KTt2YXIgcEYsbEhlPWcoKCk9PntwRj1bWyJwYXRoIix7ZDoiTTE0IDE0YTIgMiAwIDAgMCAyLTJWOGgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE0YTIgMiAwIDAgMCAyLTJWOEg4In1dXX0pO3ZhciBoRixjSGU9ZygoKT0+e2hGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyJ9XV19KTt2YXIgZkYsZEhlPWcoKCk9PntmRj1bWyJwYXRoIix7ZDoiTTEyIDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xNiAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMTYgOSA2LTYifV1dfSk7dmFyIG1GLHVIZT1nKCgpPT57bUY9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTVoNiJ9XSxbInBhdGgiLHtkOiJNNyA3aDgifV1dfSk7dmFyIGdGLHBIZT1nKCgpPT57Z0Y9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXX0pO3ZhciBiRixoSGU9ZygoKT0+e2JGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xNC41IDguNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA4LjUgNSA1In1dXX0pO3ZhciB2RixmSGU9ZygoKT0+e3ZGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dXX0pO3ZhciB4RixtSGU9ZygoKT0+e3hGPVtbInBhdGgiLHtkOiJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSJ9XV19KTt2YXIgeUYsZ0hlPWcoKCk9Pnt5Rj1bWyJwYXRoIix7ZDoiTTEyIDExLjRWOS4xIn1dLFsicGF0aCIse2Q6Im0xMiAxNyA2LjU5LTYuNTkifV0sWyJwYXRoIix7ZDoibTE1LjA1IDUuNy0uMjE4LS42OTFhMyAzIDAgMCAwLTUuNjYzIDBMNC40MTggMTkuNjk1QTEgMSAwIDAgMCA1LjM3IDIxaDEzLjI1M2ExIDEgMCAwIDAgLjk1MS0xLjMxTDE4LjQ1IDE2LjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciB3RixiSGU9ZygoKT0+e3dGPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMifV0sWyJwYXRoIix7ZDoiTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiJ9XV19KTt2YXIgTDYsdkhlPWcoKCk9PntMNj1bWyJwYXRoIix7ZDoibTExIDcuNjAxLTUuOTk0IDguMTlhMSAxIDAgMCAwIC4xIDEuMjk4bC44MTcuODE4YTEgMSAwIDAgMCAxLjMxNC4wODdMMTUuMDkgMTIifV0sWyJwYXRoIix7ZDoiTTE2LjUgMjEuMTc0QzE1LjUgMjAuNSAxNC4zNzIgMjAgMTMgMjBjLTIuMDU4IDAtMy45MjggMi4zNTYtNiAyLTIuMDcyLS4zNTYtMi43NzUtMy4zNjktMS41LTQuNSJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjciLHI6IjUifV1dfSk7dmFyIGtGLHhIZT1nKCgpPT57a0Y9W1sicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMHYyYTcgNyAwIDAgMS0xNCAwdi0yIn1dLFsicmVjdCIse3g6IjkiLHk6IjIiLHdpZHRoOiI2IixoZWlnaHQ6IjEzIixyeDoiMyJ9XV19KTt2YXIgU0YseUhlPWcoKCk9PntTRj1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE3aDQifV0sWyJwYXRoIix7ZDoiTTEwIDdoNCJ9XSxbInBhdGgiLHtkOiJNMTggMTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMThoMiJ9XSxbInBhdGgiLHtkOiJNMTggNmgyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDIifV0sWyJwYXRoIix7ZDoiTTQgMThoMiJ9XSxbInBhdGgiLHtkOiJNNCA2aDIifV0sWyJyZWN0Iix7eDoiNiIseToiMiIsd2lkdGg6IjEyIixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgX0Ysd0hlPWcoKCk9PntfRj1bWyJwYXRoIix7ZDoiTTYgMThoOCJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XSxbInBhdGgiLHtkOiJNMTQgMjJhNyA3IDAgMSAwIDAtMTRoLTEifV0sWyJwYXRoIix7ZDoiTTkgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMmEyIDIgMCAwIDEtMi0yVjZoNnY0YTIgMiAwIDAgMS0yIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiA2VjNhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgTUYsa0hlPWcoKCk9PntNRj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI3Iix4OiI2Iix5OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTggOHY3In1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJwYXRoIix7ZDoiTTE4IDE5djIifV1dfSk7dmFyIHpGLFNIZT1nKCgpPT57ekY9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTE4LjE3MiA2YTIgMiAwIDAgMSAxLjQxNC41ODZsMi4wNiAyLjA2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDhsLTIuMDYgMi4wNmEyIDIgMCAwIDEtMS40MTQuNTg2SDRhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTF6In1dXX0pO3ZhciBDRixfSGU9ZygoKT0+e0NGPVtbInBhdGgiLHtkOiJNOCAyaDgifV0sWyJwYXRoIix7ZDoiTTkgMnYxLjM0M00xNSAydjIuNzg5YTQgNCAwIDAgMCAuNjcyIDIuMjE5bC42NTYuOTg0YTQgNCAwIDAgMSAuNjcyIDIuMjJ2MS4xMzFNNy44IDcuOGwtLjEyOC4xOTJBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIFRGLE1IZT1nKCgpPT57VEY9W1sicGF0aCIse2Q6Ik04IDJoOCJ9XSxbInBhdGgiLHtkOiJNOSAydjIuNzg5YTQgNCAwIDAgMS0uNjcyIDIuMjE5bC0uNjU2Ljk4NEE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTkuNzg5YTQgNCAwIDAgMC0uNjcyLTIuMjE5bC0uNjU2LS45ODRBNCA0IDAgMCAxIDE1IDQuNzg4VjIifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NzIgNi40NzIgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV1dfSk7dmFyICRGLHpIZT1nKCgpPT57JEY9W1sicGF0aCIse2Q6Im0xNCAxMCA3LTcifV0sWyJwYXRoIix7ZDoiTTIwIDEwaC02VjQifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik00IDE0aDZ2NiJ9XV19KTt2YXIgREYsQ0hlPWcoKCk9PntERj1bWyJwYXRoIix7ZDoiTTggM3YzYTIgMiAwIDAgMS0yIDJIMyJ9XSxbInBhdGgiLHtkOiJNMjEgOGgtM2EyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoiTTMgMTZoM2EyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV19KTt2YXIgTEYsVEhlPWcoKCk9PntMRj1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV1dfSk7dmFyIEVGLCRIZT1nKCgpPT57RUY9W1sicGF0aCIse2Q6Ik0xMSA2IDggOSJ9XSxbInBhdGgiLHtkOiJtMTYgNy04IDgifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgUEYsREhlPWcoKCk9PntQRj1bWyJwYXRoIix7ZDoiTTEwIDYuNiA4LjYgOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMTUgNy41IDkuNSAxMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiI4In1dXX0pO3ZhciBJRixMSGU9ZygoKT0+e0lGPVtbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgQUYsRUhlPWcoKCk9PntBRj1bWyJwYXRoIix7ZDoiTTExIDEzYTMgMyAwIDEgMSAyLjgzLTRIMTRhMiAyIDAgMCAxIDAgNHoifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBORixQSGU9ZygoKT0+e05GPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDcuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0In1dLFsicGF0aCIse2Q6Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDcuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIFJGLElIZT1nKCgpPT57UkY9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMiAxMi4zMDdWMTVhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDguNjkzIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dXX0pO3ZhciBPRixBSGU9ZygoKT0+e09GPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMTdINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDEuMTg0LTEuODI2In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJNOC42NTYgM0gyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0uMjkzIDEuMDQyIn1dXX0pO3ZhciBGRixOSGU9ZygoKT0+e0ZGPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIEJGLFJIZT1nKCgpPT57QkY9W1sicGF0aCIse2Q6Ik0xMCAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xNCAxM1Y3In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgSEYsT0hlPWcoKCk9PntIRj1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgcUYsRkhlPWcoKCk9PntxRj1bWyJwYXRoIix7ZDoiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTl2LTMuOTYgMy4xNSJ9XSxbInBhdGgiLHtkOiJNNyAxOWg1In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiMTIiLHJ4OiIyIn1dXX0pO3ZhciBqRixCSGU9ZygoKT0+e2pGPVtbInBhdGgiLHtkOiJNNS41IDIwSDgifV0sWyJwYXRoIix7ZDoiTTE3IDloLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxNiIseDoiMTIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjEifV1dfSk7dmFyIFZGLEhIZT1nKCgpPT57VkY9W1sicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciBVRixxSGU9ZygoKT0+e1VGPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV0sWyJyZWN0Iix7eDoiOSIseToiNyIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIFdGLGpIZT1nKCgpPT57V0Y9W1sicGF0aCIse2Q6Im0xNC41IDEyLjUtNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIuNSA1LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciBHRixWSGU9ZygoKT0+e0dGPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIyMSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTciLHkyOiIyMSJ9XV19KTt2YXIgS0YsVUhlPWcoKCk9PntLRj1bWyJwYXRoIix7ZDoiTTE4IDVoNCJ9XSxbInBhdGgiLHtkOiJNMjAgM3Y0In1dLFsicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXX0pO3ZhciBZRixXSGU9ZygoKT0+e1lGPVtbInBhdGgiLHtkOiJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSJ9XV19KTt2YXIgWkYsR0hlPWcoKCk9PntaRj1bWyJwYXRoIix7ZDoibTE4IDE0LTEtMyJ9XSxbInBhdGgiLHtkOiJtMyA5IDYgMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDEuOTkgMS44MSJ9XSxbInBhdGgiLHtkOiJNOCAxN2gzYTEgMSAwIDAgMCAxLTEgNiA2IDAgMCAxIDYtNiAxIDEgMCAwIDAgMS0xdi0uNzVBNSA1IDAgMCAwIDE3IDUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTciLHI6IjMifV1dfSk7dmFyIFhGLEtIZT1nKCgpPT57WEY9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XSxbInBhdGgiLHtkOiJNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5In1dXX0pO3ZhciBRRixZSGU9ZygoKT0+e1FGPVtbInBhdGgiLHtkOiJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oifV1dfSk7dmFyIEpGLFpIZT1nKCgpPT57SkY9W1sicGF0aCIse2Q6Ik0xMiA3LjMxOFYxMCJ9XSxbInBhdGgiLHtkOiJNNSAxMHY1YTcgNyAwIDAgMCAxNCAwVjljMC0zLjUyNy0yLjYwOC02LjUxNS02LTcifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjQiLHI6IjIifV1dfSk7dmFyIGVCLFhIZT1nKCgpPT57ZUI9W1sicGF0aCIse2Q6Ik0xMiA2di4zNDMifV0sWyJwYXRoIix7ZDoiTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCJ9XSxbInBhdGgiLHtkOiJNMTkgMTMuMzQzVjlBNyA3IDAgMCAwIDguNTYgMi45MDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV19KTt2YXIgdEIsUUhlPWcoKCk9Pnt0Qj1bWyJwYXRoIix7ZDoibTE1LjU1IDguNDUgNS4xMzggMi4wODdhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjNMOC40NSAxNS41NTEifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJtNi44MTYgMTEuNTI4LTIuNzc5LTYuODRhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDYuODQgMi43NzkifV1dfSk7dmFyIGFCLEpIZT1nKCgpPT57YUI9W1sicGF0aCIse2Q6Ik00LjAzNyA0LjY4OGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsMTYgNi41YS41LjUgMCAwIDEtLjA2My45NDdsLTYuMTI0IDEuNThhMiAyIDAgMCAwLTEuNDM4IDEuNDM1bC0xLjU3OSA2LjEyNmEuNS41IDAgMCAxLS45NDcuMDYzeiJ9XV19KTt2YXIgc0IsZXFlPWcoKCk9PntzQj1bWyJwYXRoIix7ZDoiTTIuMDM0IDIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQ0TDguMjA0IDcuNTQ1YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY2IDMuNDQzYS41LjUgMCAwIDEtLjk0NC4wMzN6In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJwYXRoIix7ZDoibTExLjggMTEuOCA4LjQgOC40In1dXX0pO3ZhciBpQix0cWU9ZygoKT0+e2lCPVtbInBhdGgiLHtkOiJNMTQgNC4xIDEyIDYifV0sWyJwYXRoIix7ZDoibTUuMSA4LTIuOS0uOCJ9XSxbInBhdGgiLHtkOiJtNiAxMi0xLjkgMiJ9XSxbInBhdGgiLHtkOiJNNy4yIDIuMiA4IDUuMSJ9XSxbInBhdGgiLHtkOiJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiJ9XV19KTt2YXIgckIsYXFlPWcoKCk9PntyQj1bWyJwYXRoIix7ZDoiTTEyLjU4NiAxMi41ODYgMTkgMTkifV0sWyJwYXRoIix7ZDoiTTMuNjg4IDMuMDM3YS40OTcuNDk3IDAgMCAwLS42NTEuNjUxbDYuNSAxNS45OTlhLjUwMS41MDEgMCAwIDAgLjk0Ny0uMDYybDEuNTY5LTYuMDgzYTIgMiAwIDAgMSAxLjQ0OC0xLjQ3OWw2LjEyNC0xLjU3OWEuNS41IDAgMCAwIC4wNjMtLjk0N3oifV1dfSk7dmFyIG9CLHNxZT1nKCgpPT57b0I9W1sicGF0aCIse2Q6Ik0xMiA3LjMxOFYxMCJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2NWE3IDcgMCAwIDEtMTQgMFY5YzAtMy41MjcgMi42MDgtNi41MTUgNi03In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiNCIscjoiMiJ9XV19KTt2YXIgbkIsaXFlPWcoKCk9PntuQj1bWyJyZWN0Iix7eDoiNSIseToiMiIsd2lkdGg6IjE0IixoZWlnaHQ6IjIwIixyeDoiNyJ9XSxbInBhdGgiLHtkOiJNMTIgNnY0In1dXX0pO3ZhciBFNixycWU9ZygoKT0+e0U2PVtbInBhdGgiLHtkOiJNNSAzdjE2aDE2In1dLFsicGF0aCIse2Q6Im01IDE5IDYtNiJ9XSxbInBhdGgiLHtkOiJtMiA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE4IDE2IDMgMy0zIDMifV1dfSk7dmFyIGxCLG9xZT1nKCgpPT57bEI9W1sicGF0aCIse2Q6Ik0xOSAxM3Y2aC02In1dLFsicGF0aCIse2Q6Ik01IDExVjVoNiJ9XSxbInBhdGgiLHtkOiJtNSA1IDE0IDE0In1dXX0pO3ZhciBjQixucWU9ZygoKT0+e2NCPVtbInBhdGgiLHtkOiJNMTEgMTlINXYtNiJ9XSxbInBhdGgiLHtkOiJNMTMgNWg2djYifV0sWyJwYXRoIix7ZDoiTTE5IDUgNSAxOSJ9XV19KTt2YXIgZEIsbHFlPWcoKCk9PntkQj1bWyJwYXRoIix7ZDoiTTExIDE5SDVWMTMifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV19KTt2YXIgdUIsY3FlPWcoKCk9Pnt1Qj1bWyJwYXRoIix7ZDoiTTE5IDEzVjE5SDEzIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIHBCLGRxZT1nKCgpPT57cEI9W1sicGF0aCIse2Q6Ik04IDE4TDEyIDIyTDE2IDE4In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciBoQix1cWU9ZygoKT0+e2hCPVtbInBhdGgiLHtkOiJtMTggOCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Im02IDgtNCA0IDQgNCJ9XV19KTt2YXIgZkIscHFlPWcoKCk9PntmQj1bWyJwYXRoIix7ZDoiTTYgOEwyIDEyTDYgMTYifV0sWyJwYXRoIix7ZDoiTTIgMTJIMjIifV1dfSk7dmFyIG1CLGhxZT1nKCgpPT57bUI9W1sicGF0aCIse2Q6Ik0xOCA4TDIyIDEyTDE4IDE2In1dLFsicGF0aCIse2Q6Ik0yIDEySDIyIn1dXX0pO3ZhciBnQixmcWU9ZygoKT0+e2dCPVtbInBhdGgiLHtkOiJNNSAxMVY1SDExIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIGJCLG1xZT1nKCgpPT57YkI9W1sicGF0aCIse2Q6Ik0xMyA1SDE5VjExIn1dLFsicGF0aCIse2Q6Ik0xOSA1TDUgMTkifV1dfSk7dmFyIHZCLGdxZT1nKCgpPT57dkI9W1sicGF0aCIse2Q6Ik04IDZMMTIgMkwxNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciB4QixicWU9ZygoKT0+e3hCPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XV19KTt2YXIgeUIsdnFlPWcoKCk9Pnt5Qj1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoibTE5IDkgMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXX0pO3ZhciB3Qix4cWU9ZygoKT0+e3dCPVtbImNpcmNsZSIse2N4OiI4IixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjJsNyA0In1dXX0pO3ZhciBrQix5cWU9ZygoKT0+e2tCPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJwYXRoIix7ZDoibTkgOSAxMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciBTQix3cWU9ZygoKT0+e1NCPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiAxOFYyIn1dXX0pO3ZhciBfQixrcWU9ZygoKT0+e19CPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIE1CLFNxZT1nKCgpPT57TUI9W1sicGF0aCIse2Q6Ik05LjMxIDkuMzEgNSAyMWw3LTQgNyA0LTEuMTctMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTQuNTMgOC44OCAxMiAybC0xLjE3IDMuMTcifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgekIsX3FlPWcoKCk9Pnt6Qj1bWyJwb2x5Z29uIix7cG9pbnRzOiIxMiAyIDE5IDIxIDEyIDE3IDUgMjEgMTIgMiJ9XV19KTt2YXIgQ0IsTXFlPWcoKCk9PntDQj1bWyJwYXRoIix7ZDoiTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzIn1dLFsicGF0aCIse2Q6Ik0xNy4zOSAxMS43MyAyMiAybC05LjczIDQuNjEifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgVEIsenFlPWcoKCk9PntUQj1bWyJwb2x5Z29uIix7cG9pbnRzOiIzIDExIDIyIDIgMTMgMjEgMTEgMTMgMyAxMSJ9XV19KTt2YXIgJEIsQ3FlPWcoKCk9PnskQj1bWyJyZWN0Iix7eDoiMTYiLHk6IjE2Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJyZWN0Iix7eDoiOSIseToiMiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTUgMTZ2LTNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjMifV0sWyJwYXRoIix7ZDoiTTEyIDEyVjgifV1dfSk7dmFyIERCLFRxZT1nKCgpPT57REI9W1sicGF0aCIse2Q6Ik0xNSAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggMTRoLTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjEwIix5OiI2IixyeDoiMSJ9XV19KTt2YXIgTEIsJHFlPWcoKCk9PntMQj1bWyJwYXRoIix7ZDoiTTYgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik05LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCJ9XSxbInBhdGgiLHtkOiJNMTIuOTEgNC4xYTE1LjkxIDE1LjkxIDAgMCAxIC4wMSAxNS44In1dLFsicGF0aCIse2Q6Ik0xNi4zNyAyYTIwLjE2IDIwLjE2IDAgMCAxIDAgMjAifV1dfSk7dmFyIEVCLERxZT1nKCgpPT57RUI9W1sicGF0aCIse2Q6Ik0xMiAydjEwIn1dLFsicGF0aCIse2Q6Im04LjUgNCA3IDQifV0sWyJwYXRoIix7ZDoibTguNSA4IDctNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiI1In1dXX0pO3ZhciBQQixMcWU9ZygoKT0+e1BCPVtbInBhdGgiLHtkOiJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCJ9XSxbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciBJQixFcWU9ZygoKT0+e0lCPVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOS41IDhoNSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDE2In1dLFsicGF0aCIse2Q6Ik05LjUgMTZIMTQifV1dfSk7dmFyIEFCLFBxZT1nKCgpPT57QUI9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDUifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDUifV0sWyJwYXRoIix7ZDoiTTE1IDE3aDUifV1dfSk7dmFyIE5CLElxZT1nKCgpPT57TkI9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjIwIn1dXX0pO3ZhciBSQixBcWU9ZygoKT0+e1JCPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEifV0sWyJwYXRoIix7ZDoiTTEzIDIyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNCAxNHYtMiJ9XSxbInBhdGgiLHtkOiJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXX0pO3ZhciBPQixOcWU9ZygoKT0+e09CPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxOCIseDoiNCIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTBoNiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDUifV1dfSk7dmFyIEZCLFJxZT1nKCgpPT57RkI9W1sicGF0aCIse2Q6Ik0xMiA0VjIifV0sWyJwYXRoIix7ZDoiTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyYTcuMDEgNy4wMSAwIDAgMCA0LjEyNS0yLjkzOSJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2My4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDEyYy0xLjM0OS0uNTczLTEuOTA1LTEuMDA1LTIuNS0yLS41NDYuOTAyLTEuMDQ4IDEuMzUzLTIuNSAyLTEuMDE4LS42NDQtMS40Ni0xLjA4LTItMi0xLjAyOC43MS0xLjY5LjkxOC0zIDEgMS4wODEtMS4wNDggMS43NTctMi4wMyAyLTMgLjE5NC0uNzc2Ljg0LTEuNTUxIDEuNzktMi4yMW0xMS42NTQgNS45OTdjLjg4Ny0uNDU3IDEuMjgtLjg5MSAxLjU1Ni0xLjc4NyAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNC0uNzQgMC0xLjQ2MS4wNjgtMi4xNS4xOTIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgQkIsT3FlPWcoKCk9PntCQj1bWyJwYXRoIix7ZDoiTTEyIDRWMiJ9XSxbInBhdGgiLHtkOiJNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJBNy4wMDMgNy4wMDMgMCAwIDAgMTkgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDRDOCA0IDQuNSA2IDQgOGMtLjI0My45Ny0uOTE5IDEuOTUyLTIgMyAxLjMxLS4wODIgMS45NzItLjI5IDMtMSAuNTQuOTIuOTgyIDEuMzU2IDIgMiAxLjQ1Mi0uNjQ3IDEuOTU0LTEuMDk4IDIuNS0yIC41OTUuOTk1IDEuMTUxIDEuNDI3IDIuNSAyIDEuMzEtLjYyMSAxLjg2Mi0xLjA1OCAyLjUtMiAuNjI5Ljk3NyAxLjE2MiAxLjQyMyAyLjUgMiAxLjIwOS0uNTQ4IDEuNjgtLjk2NyAyLTIgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTRaIn1dXX0pO3ZhciBQNixGcWU9ZygoKT0+e1A2PVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6In1dXX0pO3ZhciBIQixCcWU9ZygoKT0+e0hCPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgSTYsSHFlPWcoKCk9PntJNj1bWyJwYXRoIix7ZDoiTTEwIDE1VjkifV0sWyJwYXRoIix7ZDoiTTE0IDE1VjkifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXX0pO3ZhciBxQixxcWU9ZygoKT0+e3FCPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIEE2LGpxZT1nKCgpPT57QTY9W1sicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIGpCLFZxZT1nKCgpPT57akI9W1sicGF0aCIse2Q6Ik0zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEifV1dfSk7dmFyIFZCLFVxZT1nKCgpPT57VkI9W1sicGF0aCIse2Q6Ik0zIDNoNmw2IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE0IDNoNyJ9XV19KTt2YXIgVUIsV3FlPWcoKCk9PntVQj1bWyJwYXRoIix7ZDoiTTIwLjM0MSA2LjQ4NEExMCAxMCAwIDAgMSAxMC4yNjYgMjEuODUifV0sWyJwYXRoIix7ZDoiTTMuNjU5IDE3LjUxNkExMCAxMCAwIDAgMSAxMy43NCAyLjE1MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIFdCLEdxZT1nKCgpPT57V0I9W1sicGF0aCIse2Q6Ik0xMiAxMlY0YTEgMSAwIDAgMSAxLTFoNi4yOTdhMSAxIDAgMCAxIC42NTEgMS43NTlsLTQuNjk2IDQuMDI1In1dLFsicGF0aCIse2Q6Im0xMiAyMS03LjQxNC03LjQxNEEyIDIgMCAwIDEgNCAxMi4xNzJWNi40MTVhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN0wyMCAyMC4wMDkifV0sWyJwYXRoIix7ZDoibTEyLjIxNCAzLjM4MSA4LjQxNCAxNC45NjZhMSAxIDAgMCAxLS4xNjcgMS4xOTlsLTEuMTY4IDEuMTYzYTEgMSAwIDAgMS0uNzA2LjI5MUg2LjM1MWExIDEgMCAwIDEtLjYyNS0uMjE5TDMuMjUgMTguOGExIDEgMCAwIDEgLjYzMS0xLjc4MWw0LjE2NS4wMjcifV1dfSk7dmFyIEdCLEtxZT1nKCgpPT57R0I9W1sicGF0aCIse2Q6Ik0xMiAzdjYifV0sWyJwYXRoIix7ZDoiTTE2Ljc2IDNhMiAyIDAgMCAxIDEuOCAxLjFsMi4yMyA0LjQ3OWEyIDIgMCAwIDEgLjIxLjg5MVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY5LjQ3MmEyIDIgMCAwIDEgLjIxMS0uODk0TDUuNDUgNC4xQTIgMiAwIDAgMSA3LjI0IDN6In1dLFsicGF0aCIse2Q6Ik0zLjA1NCA5LjAxM2gxNy44OTMifV1dfSk7dmFyIEtCLFlxZT1nKCgpPT57S0I9W1sicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTcgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMTI3VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43MjlsNyA0YTIgMiAwIDAgMCAyIC4wMDFsMS4zMi0uNzUzIn1dLFsicGF0aCIse2Q6Ik0zLjI5IDcgMTIgMTJsOC43MS01In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA4Ljk5NyA1LjE0OCJ9XV19KTt2YXIgWUIsWnFlPWcoKCk9PntZQj1bWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0yMSAxM1Y4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBaQixYcWU9ZygoKT0+e1pCPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTkifV0sWyJwYXRoIix7ZDoiTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6In1dXX0pO3ZhciBYQixRcWU9ZygoKT0+e1hCPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE0djYifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjUzNVY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBRQixKcWU9ZygoKT0+e1FCPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoiTTIwLjI3IDE4LjI3IDIyIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxMC40OThWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuOTgtLjU1OSJ9XSxbInBhdGgiLHtkOiJNMy4yOSA3IDEyIDEybDguNzEtNSJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOC45OTcgNS4xNDgifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjE2LjUiLHI6IjIuNSJ9XV19KTt2YXIgSkIsZWplPWcoKCk9PntKQj1bWyJwYXRoIix7ZDoiTTExIDIxLjczYTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzN6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dXX0pO3ZhciBlSCx0amU9ZygoKT0+e2VIPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoibTE2LjUgMTQuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE2LjUgMTkuNSA1LTUifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjVWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuMTMtLjA3NCJ9XSxbInBhdGgiLHtkOiJNMy4yOSA3IDEyIDEybDguNzEtNSJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOC45OTcgNS4xNDgifV1dfSk7dmFyIHRILGFqZT1nKCgpPT57dEg9W1sicGF0aCIse2Q6Ik0xMSA3IDYgMiJ9XSxbInBhdGgiLHtkOiJNMTguOTkyIDEySDIuMDQxIn1dLFsicGF0aCIse2Q6Ik0yMS4xNDUgMTguMzhBMy4zNCAzLjM0IDAgMCAxIDIwIDE2LjVhMy4zIDMuMyAwIDAgMS0xLjE0NSAxLjg4Yy0uNTc1LjQ2LS44NTUgMS4wMi0uODU1IDEuNTk1QTIgMiAwIDAgMCAyMCAyMmEyIDIgMCAwIDAgMi0yLjAyNWMwLS41OC0uMjg1LTEuMTMtLjg1NS0xLjU5NSJ9XSxbInBhdGgiLHtkOiJtOC41IDQuNSAyLjE0OC0yLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDcuMjk2IDcuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTcuNTkyIDcuNTkyYTMuNjE1IDMuNjE1IDAgMCAxLTUuMTEyIDBsLTMuODg4LTMuODg4YTMuNjE1IDMuNjE1IDAgMCAxIDAtNS4xMTJMNS42NyA3LjMzIn1dXX0pO3ZhciBhSCxzamU9ZygoKT0+e2FIPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDE2di0yYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI2Iix4OiI4Iix5OiIxNiIscng6IjEifV1dfSk7dmFyIE42LGlqZT1nKCgpPT57TjY9W1sicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjlINlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDEyYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAwIDAgMiAyaDJhMSAxIDAgMCAxIDEgMXYyLjlhMiAyIDAgMSAwIDQgMFYxN2ExIDEgMCAwIDEgMS0xaDJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xIn1dXX0pO3ZhciBzSCxyamU9ZygoKT0+e3NIPVtbInBhdGgiLHtkOiJtMTQuNjIyIDE3Ljg5Ny0xMC42OC0yLjkxMyJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweiJ9XSxbInBhdGgiLHtkOiJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUifV1dfSk7dmFyIGlILG9qZT1nKCgpPT57aUg9W1sicGF0aCIse2Q6Ik0xMiAyMmExIDEgMCAwIDEgMC0yMCAxMCA5IDAgMCAxIDEwIDkgNSA1IDAgMCAxLTUgNWgtMi4yNWExLjc1IDEuNzUgMCAwIDAtMS40IDIuOGwuMy40YTEuNzUgMS43NSAwIDAgMS0xLjQgMi44eiJ9XSxbImNpcmNsZSIse2N4OiIxMy41IixjeToiNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiOC41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBySCxuamU9ZygoKT0+e3JIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Im0xNSA4LTMgMy0zLTMifV1dfSk7dmFyIG9ILGxqZT1nKCgpPT57b0g9W1sicGF0aCIse2Q6Ik0xMS4yNSAxNy4yNWgxLjVMMTIgMTh6In1dLFsicGF0aCIse2Q6Im0xNSAxMiAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDYuNWEuNS41IDAgMCAwLS41LS41In1dLFsicGF0aCIse2Q6Ik0yMC42OSA5LjY3YTQuNSA0LjUgMCAxIDAtNy4wNC01LjUgOC4zNSA4LjM1IDAgMCAwLTMuMyAwIDQuNSA0LjUgMCAxIDAtNy4wNCA1LjVDMi40OSAxMS4yIDIgMTIuODggMiAxNC41IDIgMTkuNDcgNi40OCAyMiAxMiAyMnMxMC0yLjUzIDEwLTcuNWMwLTEuNjItLjQ4LTMuMy0xLjMtNC44MyJ9XSxbInBhdGgiLHtkOiJNNiA2LjVhLjQ5NS40OTUgMCAwIDEgLjUtLjUifV0sWyJwYXRoIix7ZDoibTkgMTItMiAyIn1dXX0pO3ZhciBSNixjamU9ZygoKT0+e1I2PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XV19KTt2YXIgbkgsZGplPWcoKCk9PntuSD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dXX0pO3ZhciBsSCx1amU9ZygoKT0+e2xIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dXX0pO3ZhciBPNixwamU9ZygoKT0+e082PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE1LTMtMyAzLTMifV1dfSk7dmFyIEY2LGhqZT1nKCgpPT57RjY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTR2MSJ9XSxbInBhdGgiLHtkOiJNOSAxOXYyIn1dLFsicGF0aCIse2Q6Ik05IDN2MiJ9XSxbInBhdGgiLHtkOiJNOSA5djEifV1dfSk7dmFyIEI2LGZqZT1nKCgpPT57QjY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTQgOSAzIDMtMyAzIn1dXX0pO3ZhciBjSCxtamU9ZygoKT0+e2NIPVtbInBhdGgiLHtkOiJNMTUgMTBWOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTV2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0xNSA1VjMifV0sWyJwYXRoIix7ZDoiTTkgMTBWOSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNOSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNOSA1VjMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgSDYsZ2plPWcoKCk9PntINj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dXX0pO3ZhciBkSCxiamU9ZygoKT0+e2RIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Im04IDkgMyAzLTMgMyJ9XV19KTt2YXIgcTYsdmplPWcoKCk9PntxNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTUgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNSA5djEifV1dfSk7dmFyIHVILHhqZT1nKCgpPT57dUg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV1dfSk7dmFyIHBILHlqZT1nKCgpPT57cEg9W1sicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTE5IDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBoSCx3amU9ZygoKT0+e2hIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXX0pO3ZhciBmSCxramU9ZygoKT0+e2ZIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zIDMgMyJ9XV19KTt2YXIgajYsU2plPWcoKCk9PntqNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgOWgyIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XV19KTt2YXIgbUgsX2plPWcoKCk9PnttSD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Im0xNSAxNC0zIDMtMy0zIn1dXX0pO3ZhciBnSCxNamU9ZygoKT0+e2dIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV1dfSk7dmFyIGJILHpqZT1nKCgpPT57Ykg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxMiJ9XV19KTt2YXIgdkgsQ2plPWcoKCk9Pnt2SD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgVjYsVGplPWcoKCk9PntWNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik05IDIxVjkifV1dfSk7dmFyIHhILCRqZT1nKCgpPT57eEg9W1sicGF0aCIse2Q6Im0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MSJ9XV19KTt2YXIgeUgsRGplPWcoKCk9Pnt5SD1bWyJwYXRoIix7ZDoiTTggMjFzLTQtMy00LTkgNC05IDQtOSJ9XSxbInBhdGgiLHtkOiJNMTYgM3M0IDMgNCA5LTQgOS00IDkifV1dfSk7dmFyIHdILExqZT1nKCgpPT57d0g9W1sicGF0aCIse2Q6Ik0xMSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xNS4yODIgMTlhMSAxIDAgMCAwIC45NDgtLjY4bDIuMzctNi45ODhhNyA3IDAgMSAwLTEzLjIgMGwyLjM3IDYuOTg4YTEgMSAwIDAgMCAuOTQ4LjY4eiJ9XSxbInBhdGgiLHtkOiJNOSA5YTMgMyAwIDEgMSA2IDAifV1dfSk7dmFyIGtILEVqZT1nKCgpPT57a0g9W1sicmVjdCIse3g6IjE0Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiIxOCIscng6IjEifV0sWyJyZWN0Iix7eDoiNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dXX0pO3ZhciBTSCxQamU9ZygoKT0+e1NIPVtbInBhdGgiLHtkOiJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkifV0sWyJwYXRoIix7ZDoiTTQgM2guMDEifV0sWyJwYXRoIix7ZDoiTTIyIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCJ9XSxbInBhdGgiLHtkOiJtMjIgMTMtLjgyLS4zM2MtLjg2LS4zNC0xLjgyLjItMS45OCAxLjExYy0uMTEuNy0uNzIgMS4yMi0xLjQzIDEuMjJIMTcifV0sWyJwYXRoIix7ZDoibTExIDIgLjMzLjgyYy4zNC44Ni0uMiAxLjgyLTEuMTEgMS45OEM5LjUyIDQuOSA5IDUuNTIgOSA2LjIzVjcifV0sWyJwYXRoIix7ZDoiTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMloifV1dfSk7dmFyIF9ILElqZT1nKCgpPT57X0g9W1siY2lyY2xlIix7Y3g6IjExIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxMGE1IDUgMCAwIDEgNSA1djMuNWEzLjUgMy41IDAgMCAxLTYuODQgMS4wNDVRNi41MiAxNy40OCA0LjQ2IDE2Ljg0QTMuNSAzLjUgMCAwIDEgNS41IDEwWiJ9XV19KTt2YXIgTUgsQWplPWcoKCk9PntNSD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDZoNiJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXX0pO3ZhciBVNixOamU9ZygoKT0+e1U2PVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV19KTt2YXIgekgsUmplPWcoKCk9Pnt6SD1bWyJwYXRoIix7ZDoibTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MiJ9XSxbInBhdGgiLHtkOiJtMTIuODI5IDcuMTcyIDQuMzU5LTQuMzQ2YTEgMSAwIDEgMSAzLjk4NiAzLjk4NmwtNC4zNTMgNC4zNTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgVzYsT2plPWcoKCk9PntXNj1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyIENILEZqZT1nKCgpPT57Q0g9W1sicGF0aCIse2Q6Ik0xNS43MDcgMjEuMjkzYTEgMSAwIDAgMS0xLjQxNCAwbC0xLjU4Ni0xLjU4NmExIDEgMCAwIDEgMC0xLjQxNGw1LjU4Ni01LjU4NmExIDEgMCAwIDEgMS40MTQgMGwxLjU4NiAxLjU4NmExIDEgMCAwIDEgMCAxLjQxNHoifV0sWyJwYXRoIix7ZDoibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCJ9XSxbInBhdGgiLHtkOiJtMi4zIDIuMyA3LjI4NiA3LjI4NiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiIyIn1dXX0pO3ZhciBUSCxCamU9ZygoKT0+e1RIPVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyICRILEhqZT1nKCgpPT57JEg9W1sicGF0aCIse2Q6Im0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIifV0sWyJwYXRoIix7ZDoibTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzIn1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBESCxxamU9ZygoKT0+e0RIPVtbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV1dfSk7dmFyIExILGpqZT1nKCgpPT57TEg9W1sicGF0aCIse2Q6Ik0xMyA3IDguNyAyLjdhMi40MSAyLjQxIDAgMCAwLTMuNCAwTDIuNyA1LjNhMi40MSAyLjQxIDAgMCAwIDAgMy40TDcgMTMifV0sWyJwYXRoIix7ZDoibTggNiAyLTIifV0sWyJwYXRoIix7ZDoibTE4IDE2IDItMiJ9XSxbInBhdGgiLHtkOiJtMTcgMTEgNC4zIDQuM2MuOTQuOTQuOTQgMi40NiAwIDMuNGwtMi42IDIuNmMtLjk0Ljk0LTIuNDYuOTQtMy40IDBMMTEgMTcifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXX0pO3ZhciBFSCxWamU9ZygoKT0+e0VIPVtbInBhdGgiLHtkOiJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoifV1dfSk7dmFyIFBILFVqZT1nKCgpPT57UEg9W1sibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiNi41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV19KTt2YXIgSUgsV2plPWcoKCk9PntJSD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsicGF0aCIse2Q6Im05IDIwIDMtNiAzIDYifV0sWyJwYXRoIix7ZDoibTYgOCA2IDIgNi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY0In1dXX0pO3ZhciBBSCxHamU9ZygoKT0+e0FIPVtbInBhdGgiLHtkOiJNMjAgMTFINCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDcifV1dfSk7dmFyIE5ILEtqZT1nKCgpPT57Tkg9W1sicGF0aCIse2Q6Ik0xMyAyYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTEzIDZhNSA1IDAgMCAxIDUgNSJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFJILFlqZT1nKCgpPT57Ukg9W1sicGF0aCIse2Q6Ik0xNCA2aDgifV0sWyJwYXRoIix7ZDoibTE4IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIE9ILFpqZT1nKCgpPT57T0g9W1sicGF0aCIse2Q6Ik0xNiAydjZoNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXX0pO3ZhciBGSCxYamU9ZygoKT0+e0ZIPVtbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV19KTt2YXIgQkgsUWplPWcoKCk9PntCSD1bWyJwYXRoIix7ZDoiTTEwLjEgMTMuOWExNCAxNCAwIDAgMCAzLjczMiAyLjY2OCAxIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDIgMTggMTggMCAwIDEtMTIuNzI4LTUuMjcyIn1dLFsicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuNzYgMTMuNTgyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIC4yNDQuNDczIn1dXX0pO3ZhciBISCxKamU9ZygoKT0+e0hIPVtbInBhdGgiLHtkOiJtMTYgOCA2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDhWMmgtNiJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIHFILGVWZT1nKCgpPT57cUg9W1sibGluZSIse3gxOiI5Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XSxbInBhdGgiLHtkOiJNNCA3YzAtMS43IDEuMy0zIDMtM2gxMyJ9XSxbInBhdGgiLHtkOiJNMTggMjBjLTEuNyAwLTMtMS4zLTMtM1Y0In1dXX0pO3ZhciBqSCx0VmU9ZygoKT0+e2pIPVtbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFZILGFWZT1nKCgpPT57Vkg9W1sicGF0aCIse2Q6Ik0xOC41IDhjLTEuNCAwLTIuNi0uOC0zLjItMkE2Ljg3IDYuODcgMCAwIDAgMiA5djExYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtOC41QzIyIDkuNiAyMC40IDggMTguNSA4In1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0IDE0djQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djQifV1dfSk7dmFyIFVILHNWZT1nKCgpPT57VUg9W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkuOTk5In1dLFsicGF0aCIse2Q6Ik0xNS45NzMgNC4wMjdBMTMgMTMgMCAwIDAgNS45MDIgMi4zNzNjLTEuMzk4LjM0Mi0xLjA5MiAyLjE1OC4yNzcgMi42MDFhMTkuOSAxOS45IDAgMCAxIDUuODIyIDMuMDI0In1dLFsicGF0aCIse2Q6Ik0xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5In1dLFsicGF0aCIse2Q6Ik0xOC4zNTIgMy4zNTJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMGwtNS4yOTYgNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDUuMjk2LTUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDR6In1dXX0pO3ZhciBXSCxpVmU9ZygoKT0+e1dIPVtbInBhdGgiLHtkOiJNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNyIseDoiMTIiLHk6IjEzIixyeDoiMiJ9XV19KTt2YXIgR0gsclZlPWcoKCk9PntHSD1bWyJwYXRoIix7ZDoiTTIgMTBoNlY0In1dLFsicGF0aCIse2Q6Im0yIDQgNiA2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY3YTIgMiAwIDAgMC0yLTJoLTcifV0sWyJwYXRoIix7ZDoiTTMgMTR2MmEyIDIgMCAwIDAgMiAyaDMifV0sWyJyZWN0Iix7eDoiMTIiLHk6IjE0Iix3aWR0aDoiMTAiLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIEtILG9WZT1nKCgpPT57S0g9W1sicGF0aCIse2Q6Ik0xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4djFhMiAyIDAgMCAwIDIgMmgxIn1dXX0pO3ZhciBZSCxuVmU9ZygoKT0+e1lIPVtbInBhdGgiLHtkOiJNMTQgM3YxMSJ9XSxbInBhdGgiLHtkOiJNMTQgOWgtM2EzIDMgMCAwIDEgMC02aDkifV0sWyJwYXRoIix7ZDoiTTE4IDN2MTEifV0sWyJwYXRoIix7ZDoiTTIyIDE4SDJsNC00In1dLFsicGF0aCIse2Q6Im02IDIyLTQtNCJ9XV19KTt2YXIgWkgsbFZlPWcoKCk9PntaSD1bWyJwYXRoIix7ZDoiTTEwIDN2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDlIN2ExIDEgMCAwIDEgMC02aDgifV0sWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoibTE4IDE0IDQgNEgyIn1dLFsicGF0aCIse2Q6Im0yMiAxOC00IDQifV1dfSk7dmFyIFhILGNWZT1nKCgpPT57WEg9W1sicGF0aCIse2Q6Ik0xMyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMyJ9XV19KTt2YXIgUUgsZFZlPWcoKCk9PntRSD1bWyJwYXRoIix7ZDoiTTE4IDExaC00YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTYgN3YxM2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY3In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI1Iix4OiI0Iix5OiIyIixyeDoiMSJ9XV19KTt2YXIgSkgsdVZlPWcoKCk9PntKSD1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik05IDl2MS43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMSJ9XV19KTt2YXIgZXEscFZlPWcoKCk9PntlcT1bWyJwYXRoIix7ZDoibTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WiJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA3IDcifV1dfSk7dmFyIHRxLGhWZT1nKCgpPT57dHE9W1sicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik05IDEwLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDQgMSAxIDAgMCAxIDEgMXoifV1dfSk7dmFyIGFxLGZWZT1nKCgpPT57YXE9W1sicGF0aCIse2Q6Im0xMiA5LTguNDE0IDguNDE0QTIgMiAwIDAgMCAzIDE4LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMy44MjggMjFoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMTUgMTIifV0sWyJwYXRoIix7ZDoibTE4IDkgLjQuNGExIDEgMCAxIDEtMyAzbC0zLjgtMy44YTEgMSAwIDEgMSAzLTNsLjQuNCAzLjQtMy40YTEgMSAwIDEgMSAzIDN6In1dLFsicGF0aCIse2Q6Im0yIDIyIC40MTQtLjQxNCJ9XV19KTt2YXIgc3EsbVZlPWcoKCk9PntzcT1bWyJwYXRoIix7ZDoibTEyIDE0LTEgMSJ9XSxbInBhdGgiLHtkOiJtMTMuNzUgMTguMjUtMS4yNSAxLjQyIn1dLFsicGF0aCIse2Q6Ik0xNy43NzUgNS42NTRhMTUuNjggMTUuNjggMCAwIDAtMTIuMTIxIDEyLjEyIn1dLFsicGF0aCIse2Q6Ik0xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNyJ9XSxbInBhdGgiLHtkOiJNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6In1dXX0pO3ZhciBpcSxnVmU9ZygoKT0+e2lxPVtbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XSxbInBhdGgiLHtkOiJNMy43NyAxMC43NyAyIDlsMi00LjUgMS4xLjU1Yy41NS4yOC45Ljg0LjkgMS40NXMuMzUgMS4xNy45IDEuNDVMOCA4LjVsMy02IDEuMDUuNTNhMiAyIDAgMCAxIDEuMDkgMS41MmwuNzIgNS40YTIgMiAwIDAgMCAxLjA5IDEuNTJsNC40IDIuMmMuNDIuMjIuNzguNTUgMS4wMS45NmwuNiAxLjAzYy40OS44OC0uMDYgMS45OC0xLjA2IDIuMWwtMS4xOC4xNWMtLjQ3LjA2LS45NS0uMDItMS4zNy0uMjRMNC4yOSAxMS4xNWEyIDIgMCAwIDEtLjUyLS4zOFoifV1dfSk7dmFyIHJxLGJWZT1nKCgpPT57cnE9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik02LjM2IDE3LjQgNCAxN2wtMi00IDEuMS0uNTVhMiAyIDAgMCAxIDEuOCAwbC4xNy4xYTIgMiAwIDAgMCAxLjggMEw4IDEyIDUgNmwuOS0uNDVhMiAyIDAgMCAxIDIuMDkuMmw0LjAyIDNhMiAyIDAgMCAwIDIuMS4ybDQuMTktMi4wNmEyLjQxIDIuNDEgMCAwIDEgMS43My0uMTdMMjEgN2ExLjQgMS40IDAgMCAxIC44NyAxLjk5bC0uMzguNzZjLS4yMy40Ni0uNi44NC0xLjA3IDEuMDhMNy41OCAxNy4yYTIgMiAwIDAgMS0xLjIyLjE4WiJ9XV19KTt2YXIgb3EsdlZlPWcoKCk9PntvcT1bWyJwYXRoIix7ZDoiTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41QzIxIDYgMjEuNSA0IDIxIDNjLTEtLjUtMyAwLTQuNSAxLjVMMTMgOCA0LjggNi4yYy0uNS0uMS0uOS4xLTEuMS41bC0uMy41Yy0uMi41LS4xIDEgLjMgMS4zTDkgMTJsLTIgM0g0bC0xIDEgMyAyIDIgMyAxLTF2LTNsMy0yIDMuNSA1LjNjLjMuNC44LjUgMS4zLjNsLjUtLjJjLjQtLjMuNi0uNy41LTEuMnoifV1dfSk7dmFyIG5xLHhWZT1nKCgpPT57bnE9W1sicGF0aCIse2Q6Ik01IDVhMiAyIDAgMCAxIDMuMDA4LTEuNzI4bDExLjk5NyA2Ljk5OGEyIDIgMCAwIDEgLjAwMyAzLjQ1OGwtMTIgN0EyIDIgMCAwIDEgNSAxOXoifV1dfSk7dmFyIGxxLHlWZT1nKCgpPT57bHE9W1sicGF0aCIse2Q6Ik05IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMnY2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWiJ9XV19KTt2YXIgRzYsd1ZlPWcoKCk9PntHNj1bWyJwYXRoIix7ZDoiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNy41IDEzLjUgMTAgMTEifV0sWyJwYXRoIix7ZDoiTTEwLjUgMTYuNSAxMyAxNCJ9XSxbInBhdGgiLHtkOiJtMTggMy00IDRoNmwtNCA0In1dXX0pO3ZhciBjcSxrVmU9ZygoKT0+e2NxPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE1IDhWMiJ9XSxbInBhdGgiLHtkOiJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgOFYyIn1dXX0pO3ZhciBkcSxTVmU9ZygoKT0+e2RxPVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XV19KTt2YXIgdXEsX1ZlPWcoKCk9Pnt1cT1bWyJwYXRoIix7ZDoiTTMgMnYxYzAgMSAyIDEgMiAyUzMgNiAzIDdzMiAxIDIgMi0yIDEtMiAyIDIgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAuODMgOC44M2E0IDQgMCAwIDAtNS42Ni01LjY2bC0xMiAxMmE0IDQgMCAxIDAgNS42NiA1LjY2WiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNjZWMjJhNCA0IDAgMCAwIDQtNFY2In1dXX0pO3ZhciBwcSxNVmU9ZygoKT0+e3BxPVtbInBhdGgiLHtkOiJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNGE1IDUgMCAxIDEgOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgaHEselZlPWcoKCk9PntocT1bWyJwYXRoIix7ZDoiTTIyIDE0YTggOCAwIDAgMS04IDgifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41VjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBmcSxDVmU9ZygoKT0+e2ZxPVtbInBhdGgiLHtkOiJNMTAgNC41VjRhMiAyIDAgMCAwLTIuNDEtMS45NTcifV0sWyJwYXRoIix7ZDoiTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1In1dLFsicGF0aCIse2Q6Ik0yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgifV0sWyJwYXRoIix7ZDoibTcgMTUtMS44LTEuOGEyIDIgMCAwIDAtMi43OSAyLjg2TDYgMTkuN2E3Ljc0IDcuNzQgMCAwIDAgNiAyLjNoMmE4IDggMCAwIDAgNS42NTctMi4zNDMifV0sWyJwYXRoIix7ZDoiTTYgNnY4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIG1xLFRWZT1nKCgpPT57bXE9W1sicGF0aCIse2Q6Ik0xOCA4YTIgMiAwIDAgMCAwLTQgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwIDAgNCJ9XSxbInBhdGgiLHtkOiJNMTAgMjIgOSA4In1dLFsicGF0aCIse2Q6Im0xNCAyMiAxLTE0In1dLFsicGF0aCIse2Q6Ik0yMCA4Yy41IDAgLjkuNC44IDFsLTIuNiAxMmMtLjEuNS0uNyAxLTEuMiAxSDdjLS42IDAtMS4xLS40LTEuMi0xTDMuMiA5Yy0uMS0uNi4zLTEgLjgtMVoifV1dfSk7dmFyIGdxLCRWZT1nKCgpPT57Z3E9W1sicGF0aCIse2Q6Ik0xOC42IDE0LjRjLjgtLjguOC0yIDAtMi44bC04LjEtOC4xYTQuOTUgNC45NSAwIDEgMC03LjEgNy4xbDguMSA4LjFjLjkuNyAyLjEuNyAyLjktLjFaIn1dLFsicGF0aCIse2Q6Im0yMiAyMi01LjUtNS41In1dXX0pO3ZhciBicSxEVmU9ZygoKT0+e2JxPVtbInBhdGgiLHtkOiJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djE0In1dLFsicGF0aCIse2Q6Ik02IDIxaDEyIn1dLFsicGF0aCIse2Q6Ik02IDEzaDEwIn1dXX0pO3ZhciB2cSxMVmU9ZygoKT0+e3ZxPVtbInBhdGgiLHtkOiJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUifV0sWyJwYXRoIix7ZDoiTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciB4cSxFVmU9ZygoKT0+e3hxPVtbInBhdGgiLHtkOiJNMTIgMnYxMCJ9XSxbInBhdGgiLHtkOiJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0In1dXX0pO3ZhciB5cSxQVmU9ZygoKT0+e3lxPVtbInBhdGgiLHtkOiJNMiAzaDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAzdjExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoibTcgMjEgNS01IDUgNSJ9XV19KTt2YXIgd3EsSVZlPWcoKCk9Pnt3cT1bWyJwYXRoIix7ZDoiTTEyLjUzMSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWg2LjM3NyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxNi41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTYuNSAyMS41IDUtNSJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEuNSJ9XSxbInBhdGgiLHtkOiJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYifV1dfSk7dmFyIGtxLEFWZT1nKCgpPT57a3E9W1sicGF0aCIse2Q6Ik0xMy41IDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2LjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiJ9XV19KTt2YXIgU3EsTlZlPWcoKCk9PntTcT1bWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dLFsicmVjdCIse3g6IjYiLHk6IjE0Iix3aWR0aDoiMTIiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIF9xLFJWZT1nKCgpPT57X3E9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDl2MTEifV0sWyJwYXRoIix7ZDoiTTIgOWgxM2EyIDIgMCAwIDEgMiAydjkifV1dfSk7dmFyIE1xLE9WZT1nKCgpPT57TXE9W1sicGF0aCIse2Q6Ik0xNS4zOSA0LjM5YTEgMSAwIDAgMCAxLjY4LS40NzQgMi41IDIuNSAwIDEgMSAzLjAxNCAzLjAxNSAxIDEgMCAwIDAtLjQ3NCAxLjY4bDEuNjgzIDEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDAgMy40MTRMMTkuNjEgMTUuMzlhMSAxIDAgMCAxLTEuNjgtLjQ3NCAyLjUgMi41IDAgMSAwLTMuMDE0IDMuMDE1IDEgMSAwIDAgMSAuNDc0IDEuNjhsLTEuNjgzIDEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxLTMuNDE0IDBMOC42MSAxOS42MWExIDEgMCAwIDAtMS42OC40NzQgMi41IDIuNSAwIDEgMS0zLjAxNC0zLjAxNSAxIDEgMCAwIDAgLjQ3NC0xLjY4bC0xLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwLTMuNDE0TDQuMzkgOC42MWExIDEgMCAwIDEgMS42OC40NzQgMi41IDIuNSAwIDEgMCAzLjAxNC0zLjAxNSAxIDEgMCAwIDEtLjQ3NC0xLjY4bDEuNjgzLTEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDMuNDE0IDB6In1dXX0pO3ZhciB6cSxGVmU9ZygoKT0+e3pxPVtbInBhdGgiLHtkOiJNNSA3IDMgNSJ9XSxbInBhdGgiLHtkOiJNOSA2VjMifV0sWyJwYXRoIix7ZDoibTEzIDcgMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMyIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTEuODMgMTJIMjBhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMi4xNyJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoMiJ9XV19KTt2YXIgQ3EsQlZlPWcoKCk9PntDcT1bWyJwYXRoIix7ZDoiTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFoifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dfSk7dmFyIFRxLEhWZT1nKCgpPT57VHE9W1sicGF0aCIse2Q6Ik0xNiAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XV19KTt2YXIgJHEscVZlPWcoKCk9PnskcT1bWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMTYiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZoLTNhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yMSAyMXYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDd2M2EyIDIgMCAwIDEtMiAySDcifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi0xIn1dXX0pO3ZhciBEcSxqVmU9ZygoKT0+e0RxPVtbInBhdGgiLHtkOiJNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQifV0sWyJwYXRoIix7ZDoiTTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1In1dLFsicGF0aCIse2Q6Ik0xNi4yNCA3Ljc2QTYgNiAwIDEgMCA4LjIzIDE2LjY3In1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Im0xMy40MSAxMC41OSA1LjY2LTUuNjYifV1dfSk7dmFyIExxLFZWZT1nKCgpPT57THE9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMi4yNCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDIxaC04YTQgNCAwIDAgMS00LTQgNyA3IDAgMCAxIDctN2guMkw5LjYgNi40YTEgMSAwIDEgMSAyLjgtMi44TDE1LjggN2guMmMzLjMgMCA2IDIuNyA2IDZ2MWEyIDIgMCAwIDEtMiAyaC0xYTMgMyAwIDAgMC0zIDMifV0sWyJwYXRoIix7ZDoiTTIwIDguNTRWNGEyIDIgMCAxIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTcuNjEyIDEyLjUyNGEzIDMgMCAxIDAtMS42IDQuMyJ9XV19KTt2YXIgRXEsVVZlPWcoKCk9PntFcT1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDY0MWE0IDQgMCAwIDEtNCAwTDcuNTI3ODYgMTkuNzQ1OTcgQSAxIDEgMCAwIDAgNy45OTMwMyAyMS4xNjIxMSAxMCAxMCAwIDAgMCAxNi4wMDY5NyAyMS4xNjIxMSAxIDEgMCAwIDAgMTYuNDcyMTQgMTkuNzQ1OTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6In1dXX0pO3ZhciBQcSxXVmU9ZygoKT0+e1BxPVtbInBhdGgiLHtkOiJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSJ9XV19KTt2YXIgSXEsR1ZlPWcoKCk9PntJcT1bWyJwYXRoIix7ZDoiTTEzLjQxNCAxMy40MTRhMiAyIDAgMSAxLTIuODI4LTIuODI4In1dLFsicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDEuNzQ0IDQuNTcyIn1dLFsicGF0aCIse2Q6Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMi4yMzQgMTAuNzIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV1dfSk7dmFyIEFxLEtWZT1nKCgpPT57QXE9W1sicGF0aCIse2Q6Ik01IDE2djIifV0sWyJwYXRoIix7ZDoiTTE5IDE2djIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIE5xLFlWZT1nKCgpPT57TnE9W1sicGF0aCIse2Q6Ik00LjkgMTYuMUMxIDEyLjIgMSA1LjggNC45IDEuOSJ9XSxbInBhdGgiLHtkOiJNNy44IDQuN2E2LjE0IDYuMTQgMCAwIDAtLjggNy41In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTYuMiA0LjhjMiAyIDIuMjYgNS4xMS44IDcuNDcifV0sWyJwYXRoIix7ZDoiTTE5LjEgMS45YTkuOTYgOS45NiAwIDAgMSAwIDE0LjEifV0sWyJwYXRoIix7ZDoiTTkuNSAxOGg1In1dLFsicGF0aCIse2Q6Im04IDIyIDQtMTEgNCAxMSJ9XV19KTt2YXIgUnEsWlZlPWcoKCk9PntScT1bWyJwYXRoIix7ZDoiTTE2LjI0NyA3Ljc2MWE2IDYgMCAwIDEgMCA4LjQ3OCJ9XSxbInBhdGgiLHtkOiJNMTkuMDc1IDQuOTMzYTEwIDEwIDAgMCAxIDAgMTQuMTM0In1dLFsicGF0aCIse2Q6Ik00LjkyNSAxOS4wNjdhMTAgMTAgMCAwIDEgMC0xNC4xMzQifV0sWyJwYXRoIix7ZDoiTTcuNzUzIDE2LjIzOWE2IDYgMCAwIDEgMC04LjQ3OCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBPcSxYVmU9ZygoKT0+e09xPVtbInBhdGgiLHtkOiJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEzLjQxIDQuMTggNC4xOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBGcSxRVmU9ZygoKT0+e0ZxPVtbInBhdGgiLHtkOiJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCJ9XSxbInBhdGgiLHtkOiJNNiAxN2E2IDYgMCAwIDEgMTIgMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgQnEsSlZlPWcoKCk9PntCcT1bWyJwYXRoIix7ZDoiTTEzIDIySDRhMiAyIDAgMCAxIDAtNGgxMiJ9XSxbInBhdGgiLHtkOiJNMTMuMjM2IDE4YTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE2LjgyIDMuOTRhMyAzIDAgMSAxIDMuMjM3IDQuODY4bDEuODE1IDIuNTg3YTEuNSAxLjUgMCAwIDEtMS41IDIuMWwtMi44NzItLjQ1M2EzIDMgMCAwIDAtMy41IDMifV0sWyJwYXRoIix7ZDoiTTE3IDQuOTg4YTMgMyAwIDEgMC01LjIgMi4wNTJBNyA3IDAgMCAwIDQgMTQuMDE1IDQgNCAwIDAgMCA4IDE4In1dXX0pO3ZhciBIcSxlVWU9ZygoKT0+e0hxPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIHFxLHRVZT1nKCgpPT57cXE9W1sicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MjggMTQuODI5YTQgNCAwIDAgMS01LjY1NiAwIDQgNCAwIDAgMSAwLTUuNjU3IDQgNCAwIDAgMSA1LjY1NiAwIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBqcSxhVWU9ZygoKT0+e2pxPVtbInBhdGgiLHtkOiJNMTUuODI4IDE0LjgyOWE0IDQgMCAwIDEtNS42NTYgMCA0IDQgMCAwIDEgMC01LjY1NyA0IDQgMCAwIDEgNS42NTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg1In1dXX0pO3ZhciBWcSxzVWU9ZygoKT0+e1ZxPVtbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbInBhdGgiLHtkOiJNOSA3YTQgNCAwIDAgMSAwIDhIOGwzIDIifV1dfSk7dmFyIFVxLGlVZT1nKCgpPT57VXE9W1sicGF0aCIse2Q6Ik0xMCAxN1Y5LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxM2g1In1dLFsicGF0aCIse2Q6Ik04IDE3aDcifV1dfSk7dmFyIFdxLHJVZT1nKCgpPT57V3E9W1sicGF0aCIse2Q6Im0xMiAxMCAzLTMifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dLFsicGF0aCIse2Q6Im05IDcgMyAzdjcifV1dfSk7dmFyIEdxLG9VZT1nKCgpPT57R3E9W1sicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDExaDVhMiAyIDAgMCAwIDAtNGgtM3YxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dXX0pO3ZhciBLcSxuVWU9ZygoKT0+e0txPVtbInBhdGgiLHtkOiJNMTMgMTZIOCJ9XSxbInBhdGgiLHtkOiJNMTQgOEg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBZcSxsVWU9ZygoKT0+e1lxPVtbInBhdGgiLHtkOiJNMTAgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWN2g1In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDE1aDUifV1dfSk7dmFyIFpxLGNVZT1nKCgpPT57WnE9W1sicGF0aCIse2Q6Ik0xMiAxN1Y3In1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDAgMCAwIDRoNGEyIDIgMCAwIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIFhxLGRVZT1nKCgpPT57WHE9W1sicGF0aCIse2Q6Ik0xMCA3djEwYTUgNSAwIDAgMCA1LTUifV0sWyJwYXRoIix7ZDoibTE0IDgtNiAzIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBRcSx1VWU9ZygoKT0+e1FxPVtbInBhdGgiLHtkOiJNMTQgNHYxNkgzYTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xeiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjEyIixyOiI4In1dXX0pO3ZhciBLNixwVWU9ZygoKT0+e0s2PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dfSk7dmFyIEpxLGhVZT1nKCgpPT57SnE9W1sicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgZWosZlVlPWcoKCk9Pntlaj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgdGosbVVlPWcoKCk9Pnt0aj1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgYWosZ1VlPWcoKCk9Pnthaj1bWyJwYXRoIix7ZDoiTTcgMTlINC44MTVhMS44MyAxLjgzIDAgMCAxLTEuNTctLjg4MSAxLjc4NSAxLjc4NSAwIDAgMS0uMDA0LTEuNzg0TDcuMTk2IDkuNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTloOC4yMDNhMS44MyAxLjgzIDAgMCAwIDEuNTU2LS44OSAxLjc4NCAxLjc4NCAwIDAgMCAwLTEuNzc1bC0xLjIyNi0yLjEyIn1dLFsicGF0aCIse2Q6Im0xNCAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik04LjI5MyAxMy41OTYgNy4xOTYgOS41IDMuMSAxMC41OTgifV0sWyJwYXRoIix7ZDoibTkuMzQ0IDUuODExIDEuMDkzLTEuODkyQTEuODMgMS44MyAwIDAgMSAxMS45ODUgM2ExLjc4NCAxLjc4NCAwIDAgMSAxLjU0Ni44ODhsMy45NDMgNi44NDMifV0sWyJwYXRoIix7ZDoibTEzLjM3OCA5LjYzMyA0LjA5NiAxLjA5OCAxLjA5Ny00LjA5NiJ9XV19KTt2YXIgc2osYlVlPWcoKCk9Pntzaj1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDlIOS41QTUuNSA1LjUgMCAwIDAgNCAxNC41QTUuNSA1LjUgMCAwIDAgOS41IDIwSDEzIn1dXX0pO3ZhciBpaix2VWU9ZygoKT0+e2lqPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIHJqLHhVZT1nKCgpPT57cmo9W1sicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIG9qLHlVZT1nKCgpPT57b2o9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIG5qLHdVZT1nKCgpPT57bmo9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dXX0pO3ZhciBsaixrVWU9ZygoKT0+e2xqPVtbInBhdGgiLHtkOiJNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDcifV0sWyJwYXRoIix7ZDoiTTggMTZIM3Y1In1dLFsicGF0aCIse2Q6Ik0zIDEyQzMgOS41MSA0IDcuMjYgNS42NCA1LjY0In1dLFsicGF0aCIse2Q6Im0zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQifV0sWyJwYXRoIix7ZDoiTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NyJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV1dfSk7dmFyIGNqLFNVZT1nKCgpPT57Y2o9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XV19KTt2YXIgZGosX1VlPWcoKCk9Pntkaj1bWyJwYXRoIix7ZDoiTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WiJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNMTUgN3Y2In1dXX0pO3ZhciB1aixNVWU9ZygoKT0+e3VqPVtbInBhdGgiLHtkOiJNMTcgM3YxMCJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgNS41IDguNjYgNSJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgMTAuNSA4LjY2LTUifV0sWyJwYXRoIix7ZDoiTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoifV1dfSk7dmFyIHBqLHpVZT1nKCgpPT57cGo9W1sicGF0aCIse2Q6Ik00IDdWNGgxNnYzIn1dLFsicGF0aCIse2Q6Ik01IDIwaDYifV0sWyJwYXRoIix7ZDoiTTEzIDQgOCAyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNS01IDUifV1dfSk7dmFyIGhqLENVZT1nKCgpPT57aGo9W1sicGF0aCIse2Q6Im0yIDkgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTMgMThIN2EyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoiTTExIDZoNmEyIDIgMCAwIDEgMiAydjEwIn1dXX0pO3ZhciBmaixUVWU9ZygoKT0+e2ZqPVtbInBhdGgiLHtkOiJtMTcgMiA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0zIDExdi0xYTQgNCAwIDAgMSA0LTRoMTQifV0sWyJwYXRoIix7ZDoibTcgMjItNC00IDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMifV0sWyJwYXRoIix7ZDoiTTExIDEwaDF2NCJ9XV19KTt2YXIgbWosJFVlPWcoKCk9Pnttaj1bWyJwYXRoIix7ZDoiTTExLjY1NiA2SDIxbC00LTQifV0sWyJwYXRoIix7ZDoiTTE3Ljg5OCAxNy44OThBNCA0IDAgMCAxIDE3IDE4SDNsNC00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLS4xNzEgMS4xNTkifV0sWyJwYXRoIix7ZDoibTIxIDYtNCA0In1dLFsicGF0aCIse2Q6Ik0zIDExdi0xYTQgNCAwIDAgMSAzLjEwMi0zLjg5OCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQifV1dfSk7dmFyIGdqLERVZT1nKCgpPT57Z2o9W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XV19KTt2YXIgYmosTFVlPWcoKCk9Pntiaj1bWyJwYXRoIix7ZDoiTTE0IDE0YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Ik0xNCA0YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE1IDEwYTEgMSAwIDAgMS0xLTEifV0sWyJwYXRoIix7ZDoiTTE5IDE0YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Ik0yMSA0YTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDlhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtMyA3IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXX0pO3ZhciB2aixFVWU9ZygoKT0+e3ZqPVtbInBhdGgiLHtkOiJNMTQgNGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGExIDEgMCAwIDEtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA0YTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDlhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtMyA3IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXX0pO3ZhciB4aixQVWU9ZygoKT0+e3hqPVtbInBhdGgiLHtkOiJtMTIgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTh2LTJhNCA0IDAgMCAwLTQtNEg3In1dLFsicGF0aCIse2Q6Im03IDE3LTUtNSA1LTUifV1dfSk7dmFyIHlqLElVZT1nKCgpPT57eWo9W1sicGF0aCIse2Q6Ik0yMCAxOHYtMmE0IDQgMCAwIDAtNC00SDQifV0sWyJwYXRoIix7ZDoibTkgMTctNS01IDUtNSJ9XV19KTt2YXIgd2osQVVlPWcoKCk9Pnt3aj1bWyJwYXRoIix7ZDoiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTggMi41Ny0zLjUifV0sWyJwYXRoIix7ZDoiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41MyAxMiAxMS4yMiJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoifV1dfSk7dmFyIGtqLE5VZT1nKCgpPT57a2o9W1sicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMTIgMTh6In1dLFsicGF0aCIse2Q6Ik0yMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMjIgMTh6In1dXX0pO3ZhciBTaixSVWU9ZygoKT0+e1NqPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTIgNVYzIn1dLFsicGF0aCIse2Q6Ik0xMiA5djMifV0sWyJwYXRoIix7ZDoiTTIuMDc3IDE4LjQ0OUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjQtMi41NWwtNC0xNEEyIDIgMCAwIDAgMTYgM0g4YTIgMiAwIDAgMC0xLjkyNCAxLjQ1eiJ9XV19KTt2YXIgX2osT1VlPWcoKCk9Pntfaj1bWyJwYXRoIix7ZDoiTTEyIDE1djVzMy4wMy0uNTUgNC0yYzEuMDgtMS42MiAwLTUgMC01In1dLFsicGF0aCIse2Q6Ik00LjUgMTYuNWMtMS41IDEuMjYtMiA1LTIgNXMzLjc0LS41IDUtMmMuNzEtLjg0LjctMi4xMy0uMDktMi45MWEyLjE4IDIuMTggMCAwIDAtMi45MS0uMDkifV0sWyJwYXRoIix7ZDoiTTkgMTJhMjIgMjIgMCAwIDEgMi0zLjk1QTEyLjg4IDEyLjg4IDAgMCAxIDIyIDJjMCAyLjcyLS43OCA3LjUtNiAxMWEyMi40IDIyLjQgMCAwIDEtNCAyeiJ9XSxbInBhdGgiLHtkOiJNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAuMDUgNSAuMDUifV1dfSk7dmFyIE1qLEZVZT1nKCgpPT57TWo9W1sicGF0aCIse2Q6Im0xNSAxMyAzLjcwOCA3LjQxNiJ9XSxbInBhdGgiLHtkOiJNMyAxOWExNSAxNSAwIDAgMCAxOCAwIn1dLFsicGF0aCIse2Q6Im0zIDIgMy4yMSA5LjYzM0EyIDIgMCAwIDAgOC4xMDkgMTNIMTgifV0sWyJwYXRoIix7ZDoibTkgMTMtMy43MDggNy40MTYifV1dfSk7dmFyIHpqLEJVZT1nKCgpPT57emo9W1sicGF0aCIse2Q6Ik02IDE5VjUifV0sWyJwYXRoIix7ZDoiTTEwIDE5VjYuOCJ9XSxbInBhdGgiLHtkOiJNMTQgMTl2LTcuOCJ9XSxbInBhdGgiLHtkOiJNMTggNXY0In1dLFsicGF0aCIse2Q6Ik0xOCAxOXYtNiJ9XSxbInBhdGgiLHtkOiJNMjIgMTlWOSJ9XSxbInBhdGgiLHtkOiJNMiAxOVY5YTQgNCAwIDAgMSA0LTRjMiAwIDQgMS4zMyA2IDRzNCA0IDYgNGE0IDQgMCAxIDAtMy02LjY1In1dXX0pO3ZhciBDaixIVWU9ZygoKT0+e0NqPVtbInBhdGgiLHtkOiJNMTcgMTBoLTFhNCA0IDAgMSAxIDQtNHYuNTM0In1dLFsicGF0aCIse2Q6Ik0xNyA2aDFhNCA0IDAgMCAxIDEuNDIgNy43NGwtMi4yOS44N2E2IDYgMCAwIDEtNS4zMzktMTAuNjhsMi4wNjktMS4zMSJ9XSxbInBhdGgiLHtkOiJNNC41IDE3YzIuOC0uNSA0LjQgMCA1LjUuOHMxLjggMi4yIDIuMyAzLjdjLTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIn1dLFsicGF0aCIse2Q6Ik05Ljc3IDEyQzQgMTUgMiAyMiAyIDIyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiOCIscjoiMiJ9XV19KTt2YXIgWTYscVVlPWcoKCk9PntZNj1bWyJwYXRoIix7ZDoibTE1LjE5NCAxMy43MDcgMy44MTQgMS44Ni0xLjg2IDMuODE0In1dLFsicGF0aCIse2Q6Ik0xNi40NzIxNCA3LjUyNzg2IEEgNSAxMCAwIDEgMCAxMyAyMS43OTc5NiJ9XSxbInBhdGgiLHtkOiJNMjEuNzk3OTYgMTEgQSAxMCA1IDAgMSAwIDE5IDE1LjU3MDcxIn1dXX0pO3ZhciBUaixqVWU9ZygoKT0+e1RqPVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xMiA5aDIifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc0IDkuNzQgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciAkaixWVWU9ZygoKT0+eyRqPVtbInBhdGgiLHtkOiJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiJ9XV19KTt2YXIgRGosVVVlPWcoKCk9PntEaj1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XV19KTt2YXIgTGosV1VlPWcoKCk9PntMaj1bWyJwYXRoIix7ZDoiTTEyIDVINmEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoibTkgOCAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik00IDE0djRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XV19KTt2YXIgRWosR1VlPWcoKCk9PntFaj1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dXX0pO3ZhciBQaixLVWU9ZygoKT0+e1BqPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIn1dLFsicGF0aCIse2Q6Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyJ9XSxbInBhdGgiLHtkOiJNMTUgNWgtNC4zIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgSWosWVVlPWcoKCk9PntJaj1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE5IixyOiIzIn1dLFsicGF0aCIse2Q6Ik05IDE5aDguNWEzLjUgMy41IDAgMCAwIDAtN2gtMTFhMy41IDMuNSAwIDAgMSAwLTdIMTUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dXX0pO3ZhciBBaixaVWU9ZygoKT0+e0FqPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02LjAxIDE4SDYifV0sWyJwYXRoIix7ZDoiTTEwLjAxIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAifV0sWyJwYXRoIix7ZDoiTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAifV1dfSk7dmFyIFo2LFhVZT1nKCgpPT57WjY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV1dfSk7dmFyIFg2LFFVZT1nKCgpPT57WDY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVIMyJ9XV19KTt2YXIgTmosSlVlPWcoKCk9PntOaj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgNy41SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2LjVIMyJ9XV19KTt2YXIgUmosZVdlPWcoKCk9PntSaj1bWyJwYXRoIix7ZDoiTTQgMTFhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNNCA0YTE2IDE2IDAgMCAxIDE2IDE2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgT2osdFdlPWcoKCk9PntPaj1bWyJwYXRoIix7ZDoiTTEwIDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xNCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2LTMifV0sWyJwYXRoIix7ZDoiTTIgOFY0In1dLFsicGF0aCIse2Q6Ik0yMiA2SDIifV0sWyJwYXRoIix7ZDoiTTIyIDhWNCJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMyJ9XSxbInJlY3QiLHt4OiIyIix5OiIxMiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIyIn1dXX0pO3ZhciBGaixhV2U9ZygoKT0+e0ZqPVtbInBhdGgiLHtkOiJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNSAyLTIifV0sWyJwYXRoIix7ZDoibTExLjUgOS41IDItMiJ9XSxbInBhdGgiLHtkOiJtOC41IDYuNSAyLTIifV0sWyJwYXRoIix7ZDoibTE3LjUgMTUuNSAyLTIifV1dfSk7dmFyIEJqLHNXZT1nKCgpPT57Qmo9W1sicGF0aCIse2Q6Ik02IDExaDhhNCA0IDAgMCAwIDAtOEg5djE4In1dLFsicGF0aCIse2Q6Ik02IDE1aDgifV1dfSk7dmFyIEhqLGlXZT1nKCgpPT57SGo9W1sicGF0aCIse2Q6Ik0xMCAydjE1In1dLFsicGF0aCIse2Q6Ik03IDIyYTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAwIDEgMSAxIDQgNCAwIDAgMS00IDR6In1dLFsicGF0aCIse2Q6Ik05LjE1OSAyLjQ2YTEgMSAwIDAgMSAxLjUyMS0uMTkzbDkuOTc3IDguOThBMSAxIDAgMCAxIDIwIDEzSDRhMSAxIDAgMCAxLS44MjQtMS41Njd6In1dXX0pO3ZhciBxaixyV2U9ZygoKT0+e3FqPVtbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIn1dLFsicGF0aCIse2Q6Ik0xMS4zOCAxMmEyLjQgMi40IDAgMCAxLS40LTQuNzcgMi40IDIuNCAwIDAgMSAzLjItMi43NyAyLjQgMi40IDAgMCAxIDMuNDctLjYzIDIuNCAyLjQgMCAwIDEgMy4zNyAzLjM3IDIuNCAyLjQgMCAwIDEtMS4xIDMuNyAyLjUxIDIuNTEgMCAwIDEgLjAzIDEuMSJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNC00In1dLFsicGF0aCIse2Q6Ik0xMC45IDcuMjVBMy45OSAzLjk5IDAgMCAwIDQgMTBjMCAuNzMuMiAxLjQxLjU0IDIifV1dfSk7dmFyIGpqLG9XZT1nKCgpPT57amo9W1sicGF0aCIse2Q6Im0yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTUuMjUifV0sWyJwYXRoIix7ZDoiTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOSJ9XSxbInBhdGgiLHtkOiJtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI0Iix4OiIyIix5OiIxMSIscng6IjEifV1dfSk7dmFyIFZqLG5XZT1nKCgpPT57Vmo9W1sicGF0aCIse2Q6Im0xMy41IDYuNS0zLjE0OC0zLjE0OGExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDYuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRMOS41IDEwLjUifV0sWyJwYXRoIix7ZDoiTTE2LjUgNy41IDE5IDUifV0sWyJwYXRoIix7ZDoibTE3LjUgMTAuNSAzLjE0OCAzLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0yLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMS0xLjcwNCAwTDEzLjUgMTQuNSJ9XSxbInBhdGgiLHtkOiJNOSAyMWE2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik05LjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDQuMjk2LTQuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDRsLTIuMjk2LTIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDB6In1dXX0pO3ZhciBVaixsV2U9ZygoKT0+e1VqPVtbInBhdGgiLHtkOiJNNCAxMGE3LjMxIDcuMzEgMCAwIDAgMTAgMTBaIn1dLFsicGF0aCIse2Q6Im05IDE1IDMtMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTNhNiA2IDAgMCAwLTYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTNBMTAgMTAgMCAwIDAgMTEgMyJ9XV19KTt2YXIgV2osY1dlPWcoKCk9PntXaj1bWyJwYXRoIix7ZDoibTIwIDE5LjUtNS41IDEuMiJ9XSxbInBhdGgiLHtkOiJNMTQuNSA0djExLjIyYTEgMSAwIDAgMCAxLjI0Mi45N0wyMCAxNS4yIn1dLFsicGF0aCIse2Q6Im0yLjk3OCAxOS4zNTEgNS41NDktMS4zNjNBMiAyIDAgMCAwIDEwIDE2VjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwIDQgMTMuNSJ9XV19KTt2YXIgR2osZFdlPWcoKCk9PntHaj1bWyJwYXRoIix7ZDoiTTEzIDEzSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik0xNCA4aDEifV0sWyJwYXRoIix7ZDoiTTE3IDIxdi00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxIDIwLjQxQTIgMiAwIDAgMSAxOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgLjU5LTEuNDEifV0sWyJwYXRoIix7ZDoiTTI5LjUgMTEuNXM1IDUgNCA1In1dLFsicGF0aCIse2Q6Ik05IDNoNi4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTUifV1dfSk7dmFyIEtqLHVXZT1nKCgpPT57S2o9W1sicGF0aCIse2Q6Ik0xMCAydjNhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xOCAxOHYtNmExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMC0xIDF2NiJ9XSxbInBhdGgiLHtkOiJNMTggMjJINGEyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoiTTggMThhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOS4xNzJhMiAyIDAgMCAxIDEuNDE0LjU4NmwyLjgyOCAyLjgyOEEyIDIgMCAwIDEgMjIgNi44MjhWMTZhMiAyIDAgMCAxLTIuMDEgMnoifV1dfSk7dmFyIFlqLHBXZT1nKCgpPT57WWo9W1sicGF0aCIse2Q6Ik0xNS4yIDNhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik03IDN2NGExIDEgMCAwIDAgMSAxaDcifV1dfSk7dmFyIFE2LGhXZT1nKCgpPT57UTY9W1sicGF0aCIse2Q6Ik01IDd2MTFhMSAxIDAgMCAwIDEgMWgxMSJ9XSxbInBhdGgiLHtkOiJNNS4yOTMgMTguNzA3IDExIDEzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjIifV1dfSk7dmFyIFpqLGZXZT1nKCgpPT57Wmo9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Im0xOSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3In1dLFsicGF0aCIse2Q6Ik0zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEifV0sWyJwYXRoIix7ZDoibTUgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XV19KTt2YXIgWGosbVdlPWcoKCk9PntYaj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNyA3djEwIn1dXX0pO3ZhciBRaixnV2U9ZygoKT0+e1FqPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xNCAxNUg5di01In1dLFsicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMjEgMyA5IDE1In1dXX0pO3ZhciBKaixiV2U9ZygoKT0+e0pqPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgZVYsdldlPWcoKCk9PntlVj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV1dfSk7dmFyIHRWLHhXZT1nKCgpPT57dFY9W1sicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNC4xNzIgNC4zMDZsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDQ5IDB6In1dXX0pO3ZhciBhVix5V2U9ZygoKT0+e2FWPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dXX0pO3ZhciBzVix3V2U9ZygoKT0+e3NWPVtbInBhdGgiLHtkOiJNMTcgMTJ2NGExIDEgMCAwIDEtMSAxaC00In1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyA4VjcifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiNyIseToiNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV1dfSk7dmFyIGlWLGtXZT1nKCgpPT57aVY9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtMS45LTEuOSJ9XV19KTt2YXIgclYsU1dlPWcoKCk9PntyVj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNyA4aDgifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoNiJ9XV19KTt2YXIgb1YsX1dlPWcoKCk9PntvVj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgblYsTVdlPWcoKCk9PntuVj1bWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggNC45MzNWMjEifV0sWyJwYXRoIix7ZDoibTQgNiA3LjEwNi0zLjc5YTIgMiAwIDAgMSAxLjc4OCAwTDIwIDYifV0sWyJwYXRoIix7ZDoibTYgMTEtMy41MiAyLjE0N2ExIDEgMCAwIDAtLjQ4Ljg1NFYxOWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLS40OC0uODUzTDE4IDExIn1dLFsicGF0aCIse2Q6Ik02IDQuOTMzVjIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XV19KTt2YXIgbFYseldlPWcoKCk9PntsVj1bWyJwYXRoIix7ZDoiTTUuNDIgOS40MiA4IDEyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xNCA2LTguNTggOC41OCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEwLjggMTQuOCAxNCAxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBjVixDV2U9ZygoKT0+e2NWPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOC4xMiA4LjEyIDEyIDEyIn1dLFsicGF0aCIse2Q6Ik0yMCA0IDguMTIgMTUuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNC44IDE0LjggMjAgMjAifV1dfSk7dmFyIGRWLFRXZT1nKCgpPT57ZFY9W1sicGF0aCIse2Q6Ik0yMSA0aC0zLjVsMiAxMS4wNSJ9XSxbInBhdGgiLHtkOiJNNi45NSAxN2g1LjE0MmMuNTIzIDAgLjk1LS40MDYgMS4wNjMtLjkxNmE2LjUgNi41IDAgMCAxIDUuMzQ1LTUuMDA5In1dLFsiY2lyY2xlIix7Y3g6IjE5LjUiLGN5OiIxNy41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiNC41IixjeToiMTcuNSIscjoiMi41In1dXX0pO3ZhciB1ViwkV2U9ZygoKT0+e3VWPVtbInBhdGgiLHtkOiJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoibTIyIDMtNSA1In1dLFsicGF0aCIse2Q6Im0xNyAzIDUgNSJ9XV19KTt2YXIgcFYsRFdlPWcoKCk9PntwVj1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNyA4IDUtNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2g1djUifV1dfSk7dmFyIGhWLExXZT1nKCgpPT57aFY9W1sicGF0aCIse2Q6Ik0xNSAxMmgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQifV0sWyJwYXRoIix7ZDoiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyJ9XV19KTt2YXIgZlYsRVdlPWcoKCk9PntmVj1bWyJwYXRoIix7ZDoiTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0In1dLFsicGF0aCIse2Q6Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMifV1dfSk7dmFyIG1WLFBXZT1nKCgpPT57bVY9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTEgMTVoLjAxIn1dXX0pO3ZhciBnVixJV2U9ZygoKT0+e2dWPVtbInBhdGgiLHtkOiJtOCAxMSAyIDIgNC00In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dfSk7dmFyIGJWLEFXZT1nKCgpPT57YlY9W1sicGF0aCIse2Q6Im0xMyAxMy41IDItMi41LTItMi41In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik05IDguNSA3IDExbDIgMi41In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV1dfSk7dmFyIHZWLE5XZT1nKCgpPT57dlY9W1sicGF0aCIse2Q6Im0xMy41IDguNS01IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgeFYsUldlPWcoKCk9Pnt4Vj1bWyJwYXRoIix7ZDoibTEzLjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgeVYsT1dlPWcoKCk9Pnt5Vj1bWyJwYXRoIix7ZDoibTIxIDIxLTQuMzQtNC4zNCJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXX0pO3ZhciB3VixGV2U9ZygoKT0+e3dWPVtbInBhdGgiLHtkOiJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIn1dXX0pO3ZhciBKNixCV2U9ZygoKT0+e0o2PVtbInBhdGgiLHtkOiJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTYifV1dfSk7dmFyIGtWLEhXZT1nKCgpPT57a1Y9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIFNWLHFXZT1nKCgpPT57U1Y9W1sicGF0aCIse2Q6Ik0xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXoifV0sWyJwYXRoIix7ZDoibTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzkifV1dfSk7dmFyIF9WLGpXZT1nKCgpPT57X1Y9W1sicGF0aCIse2Q6Im0xNiAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Im04IDggNC00IDQgNCJ9XV19KTt2YXIgTVYsVldlPWcoKCk9PntNVj1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTggOC00IDQgNCA0In1dXX0pO3ZhciB6VixVV2U9ZygoKT0+e3pWPVtbInBhdGgiLHtkOiJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV1dfSk7dmFyIENWLFdXZT1nKCgpPT57Q1Y9W1sicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMTRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0xMyA2LTQgNmg2bC00IDYifV1dfSk7dmFyIFRWLEdXZT1nKCgpPT57VFY9W1sicGF0aCIse2Q6Ik03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUifV0sWyJwYXRoIix7ZDoiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoifV0sWyJwYXRoIix7ZDoiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyICRWLEtXZT1nKCgpPT57JFY9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTgiLHkyOiIxOCJ9XV19KTt2YXIgRFYsWVdlPWcoKCk9PntEVj1bWyJwYXRoIix7ZDoiTTE0IDE3SDUifV0sWyJwYXRoIix7ZDoiTTE5IDdoLTkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiMyJ9XV19KTt2YXIgTFYsWldlPWcoKCk9PntMVj1bWyJwYXRoIix7ZDoiTTguMyAxMGEuNy43IDAgMCAxLS42MjYtMS4wNzlMMTEuNCAzYS43LjcgMCAwIDEgMS4xOTgtLjA0M0wxNi4zIDguOWEuNy43IDAgMCAxLS41NzIgMS4xWiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XV19KTt2YXIgRVYsWFdlPWcoKCk9PntFVj1bWyJwYXRoIix7ZDoiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIFBWLFFXZT1nKCgpPT57UFY9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOSIscjoiMyJ9XSxbImxpbmUiLHt4MToiOC41OSIseDI6IjE1LjQyIix5MToiMTMuNTEiLHkyOiIxNy40OSJ9XSxbImxpbmUiLHt4MToiMTUuNDEiLHgyOiI4LjU5Iix5MToiNi41MSIseTI6IjEwLjQ5In1dXX0pO3ZhciBJVixKV2U9ZygoKT0+e0lWPVtbInBhdGgiLHtkOiJNMTIgMnYxMyJ9XSxbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04In1dXX0pO3ZhciBBVixlR2U9ZygoKT0+e0FWPVtbInBhdGgiLHtkOiJNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQifV1dfSk7dmFyIE5WLHRHZT1nKCgpPT57TlY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIzIix4MjoiMjEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkiLHkxOiI5Iix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUiLHkxOiI5Iix5MjoiMjEifV1dfSk7dmFyIFJWLGFHZT1nKCgpPT57UlY9W1sicGF0aCIse2Q6Ik0xMiAxMlY5YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTE2IDIwdi0zYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDE2In1dLFsicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Ik00IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTQgNGgxNiJ9XV19KTt2YXIgT1Ysc0dlPWcoKCk9PntPVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgRlYsaUdlPWcoKCk9PntGVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im00LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MiJ9XV19KTt2YXIgQlYsckdlPWcoKCk9PntCVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIEhWLG9HZT1nKCgpPT57SFY9W1sicGF0aCIse2Q6Ik0xMSAyMmMtMy44MDYtMS40NS03LTMuOTY2LTctOVY2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY0In1dLFsicGF0aCIse2Q6Ik0xNC45MjMgMTYuNTQ3IDE0IDE2LjE2NCJ9XSxbInBhdGgiLHtkOiJtMTQuOTIzIDE4Ljg0My0uOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNMTYuNTQ3IDE0LjkyMyAxNi4xNjQgMTQifV0sWyJwYXRoIix7ZDoibTE2LjU0NyAyMC40NjctLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE4Ljg0MyAxNC45MjMuMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjIyNSAyMS4zOTEtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTYuNTQ3LjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTguODQzLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTcuNjk1IixjeToiMTcuNjk1IixyOiIzIn1dXX0pO3ZhciBxVixuR2U9ZygoKT0+e3FWPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgalYsbEdlPWcoKCk9PntqVj1bWyJwYXRoIix7ZDoibTEwLjkyOSAxNC40NjctLjM4My45MjQifV0sWyJwYXRoIix7ZDoiTTEwLjkyOSA4LjkyMyAxMC41NDYgOCJ9XSxbInBhdGgiLHtkOiJNMTMuMjI1IDguOTIzIDEzLjYwOCA4In1dLFsicGF0aCIse2Q6Im0xMy42MDcgMTUuMzkxLS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTQuODQ5IDEwLjU0Ny45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuODQ5IDEyLjg0My45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtOS4zMDUgMTAuNTQ3LS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS4zMDUgMTIuODQzLS45MjMuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjEyLjA3NyIsY3k6IjExLjY5NSIscjoiMyJ9XV19KTt2YXIgVlYsY0dlPWcoKCk9PntWVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYyIn1dXX0pO3ZhciBVVixkR2U9ZygoKT0+e1VWPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XV19KTt2YXIgV1YsdUdlPWcoKCk9PntXVj1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNSA1YTEgMSAwIDAgMC0xIDF2N2MwIDUgMy41IDcuNSA3LjY3IDguOTRhMSAxIDAgMCAwIC42Ny4wMWMyLjM1LS44MiA0LjQ4LTEuOTcgNS45LTMuNzEifV0sWyJwYXRoIix7ZDoiTTkuMzA5IDMuNjUyQTEyLjI1MiAxMi4yNTIgMCAwIDAgMTEuMjQgMi4yOGExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF2N2E5Ljc4NCA5Ljc4NCAwIDAgMS0uMDggMS4yNjQifV1dfSk7dmFyIEdWLHBHZT1nKCgpPT57R1Y9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIGU1LGhHZT1nKCgpPT57ZTU9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXX0pO3ZhciBLVixmR2U9ZygoKT0+e0tWPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV1dfSk7dmFyIHQ1LG1HZT1nKCgpPT57dDU9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV19KTt2YXIgWVYsZ0dlPWcoKCk9PntZVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dXX0pO3ZhciBaVixiR2U9ZygoKT0+e1pWPVtbInBhdGgiLHtkOiJNMTIgMTAuMTg5VjE0In1dLFsicGF0aCIse2Q6Ik0xMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDEzVjdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYifV0sWyJwYXRoIix7ZDoiTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDFzMS4yIDEgMi41IDFjMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dXX0pO3ZhciBYVix2R2U9ZygoKT0+e1hWPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiAydjcuNSJ9XSxbInBhdGgiLHtkOiJtMTkgNS01LjIzIDUuMjMifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC03LjUifV0sWyJwYXRoIix7ZDoibTE5IDE5LTUuMjMtNS4yMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTQuNVYyMiJ9XSxbInBhdGgiLHtkOiJNMTAuMjMgMTMuNzcgNSAxOSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwLjIzIDEwLjIzIDUgNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyLjUifV1dfSk7dmFyIFFWLHhHZT1nKCgpPT57UVY9W1sicGF0aCIse2Q6Ik0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiJ9XV19KTt2YXIgSlYseUdlPWcoKCk9PntKVj1bWyJwYXRoIix7ZDoiTTE2IDEwYTQgNCAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTMuMTAzIDYuMDM0aDE3Ljc5NCJ9XSxbInBhdGgiLHtkOiJNMy40IDUuNDY3YTIgMiAwIDAgMC0uNCAxLjJWMjBhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjYuNjY3YTIgMiAwIDAgMC0uNC0xLjJsLTItMi42NjdBMiAyIDAgMCAwIDE3IDJIN2EyIDIgMCAwIDAtMS42Ljh6In1dXX0pO3ZhciBlVSx3R2U9ZygoKT0+e2VVPVtbInBhdGgiLHtkOiJtMTUgMTEtMSA5In1dLFsicGF0aCIse2Q6Im0xOSAxMS00LTcifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJwYXRoIix7ZDoibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQifV0sWyJwYXRoIix7ZDoiTTQuNSAxNS41aDE1In1dLFsicGF0aCIse2Q6Im01IDExIDQtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMSAxIDkifV1dfSk7dmFyIHRVLGtHZT1nKCgpPT57dFU9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiIyMSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIxIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyIn1dXX0pO3ZhciBhVSxTR2U9ZygoKT0+e2FVPVtbInBhdGgiLHtkOiJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiJ9XSxbInBhdGgiLHtkOiJNMyAyMmExIDEgMCAwIDEtMS0xdi0zLjU4NmExIDEgMCAwIDEgLjI5My0uNzA3bDMuMzU1LTMuMzU1YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsMy4yOTYgMy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMy4zNTUgMy4zNTVhMSAxIDAgMCAxLS43MDcuMjkzeiJ9XSxbInBhdGgiLHtkOiJtOSAxNSA3Ljg3OS03Ljg3OCJ9XV19KTt2YXIgc1UsX0dlPWcoKCk9PntzVT1bWyJwYXRoIix7ZDoibTQgNCAyLjUgMi41In1dLFsicGF0aCIse2Q6Ik0xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA1IDUgMTUifV0sWyJwYXRoIix7ZDoiTTE0IDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAxM3YuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYuMDEifV0sWyJwYXRoIix7ZDoiTTIwIDExdi4wMSJ9XV19KTt2YXIgaVUsTUdlPWcoKCk9PntpVT1bWyJwYXRoIix7ZDoiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtMiJ9XSxbInBhdGgiLHtkOiJNMTggMjB2LTMifV0sWyJwYXRoIix7ZDoiTTIgMTNoMjAifV0sWyJwYXRoIix7ZDoiTTYgMjB2LTMifV1dfSk7dmFyIHJVLHpHZT1nKCgpPT57clU9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDZtLTYtNnY0LjhtMC00LjhoNC44In1dLFsicGF0aCIse2Q6Ik05IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYifV0sWyJwYXRoIix7ZDoiTTkgNC4yVjltMCAwSDQuMk05IDkgMyAzIn1dXX0pO3ZhciBvVSxDR2U9ZygoKT0+e29VPVtbInBhdGgiLHtkOiJNMTEgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJhMy4yOCAzLjI4IDAgMCAxLTMuMjI3IDEuNzk4bC02LjE3LS41NjFBMi4zODcgMi4zODcgMCAxIDAgNC4zODcgOEgxNS41YTEgMSAwIDAgMSAwIDEzIDEgMSAwIDAgMCAwLTVIMTJhNyA3IDAgMCAxLTctN1Y4In1dLFsicGF0aCIse2Q6Ik0xNCA4YTguNSA4LjUgMCAwIDEgMCA4In1dLFsicGF0aCIse2Q6Ik0xNiAxNmMyIDAgNC41LTQgNC02In1dXX0pO3ZhciBuVSxUR2U9ZygoKT0+e25VPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41In1dLFsicGF0aCIse2Q6Ik0xNC41IDE0LjUgMTIgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoifV1dfSk7dmFyIGxVLCRHZT1nKCgpPT57bFU9W1sicGF0aCIse2Q6Im0xOCAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUifV1dfSk7dmFyIGNVLERHZT1nKCgpPT57Y1U9W1sicGF0aCIse2Q6Ik0xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTIifV1dfSk7dmFyIGRVLExHZT1nKCgpPT57ZFU9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV1dfSk7dmFyIHVVLEVHZT1nKCgpPT57dVU9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XV19KTt2YXIgcFUsUEdlPWcoKCk9PntwVT1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XV19KTt2YXIgaFUsSUdlPWcoKCk9PntoVT1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dXX0pO3ZhciBmVSxBR2U9ZygoKT0+e2ZVPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTcgMjB2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi04In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY4In1dLFsicGF0aCIse2Q6Ik0yMiA0djE2In1dXX0pO3ZhciBtVSxOR2U9ZygoKT0+e21VPVtbInBhdGgiLHtkOiJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWgxOCJ9XV19KTt2YXIgZ1UsUkdlPWcoKCk9PntnVT1bWyJwYXRoIix7ZDoiTTEwIDlINEwyIDdsMi0yaDYifV0sWyJwYXRoIix7ZDoiTTE0IDVoNmwyIDItMiAyaC02In1dLFsicGF0aCIse2Q6Ik0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XV19KTt2YXIgYlUsT0dlPWcoKCk9PntiVT1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MyJ9XSxbInBhdGgiLHtkOiJNMi4zNTQgMTAuMzU0YTEuMjA3IDEuMjA3IDAgMCAxIDAtMS43MDhsMi4wNi0yLjA2QTIgMiAwIDAgMSA1LjgyOCA2aDEyLjM0NGEyIDIgMCAwIDEgMS40MTQuNTg2bDIuMDYgMi4wNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4bC0yLjA2IDIuMDZhMiAyIDAgMCAxLTEuNDE0LjU4Nkg1LjgyOGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIHZVLEZHZT1nKCgpPT57dlU9W1sicGF0aCIse2Q6Ik03IDE4di02YTUgNSAwIDEgMSAxMCAwdjYifV0sWyJwYXRoIix7ZDoiTTUgMjFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMTguNSA0LjUgMTggNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0xMiAydjEifV0sWyJwYXRoIix7ZDoibTQuOTI5IDQuOTI5LjcwNy43MDcifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV1dfSk7dmFyIHhVLEJHZT1nKCgpPT57eFU9W1sicGF0aCIse2Q6Ik0xNy45NzEgNC4yODVBMiAyIDAgMCAxIDIxIDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgMjBWNCJ9XV19KTt2YXIgeVUsSEdlPWcoKCk9Pnt5VT1bWyJwYXRoIix7ZDoiTTIxIDR2MTYifV0sWyJwYXRoIix7ZDoiTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XV19KTt2YXIgd1UscUdlPWcoKCk9Pnt3VT1bWyJwYXRoIix7ZDoibTEyLjUgMTctLjUtMS0uNSAxaDF6In1dLFsicGF0aCIse2Q6Ik0xNSAyMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMCAxLjU2LTMuMjUgOCA4IDAgMSAwLTExLjEyIDBBMiAyIDAgMCAwIDggMjB2MWExIDEgMCAwIDAgMSAxeiJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIga1UsakdlPWcoKCk9PntrVT1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV19KTt2YXIgU1UsVkdlPWcoKCk9PntTVT1bWyJwYXRoIix7ZDoiTTEwIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y0In1dLFsicGF0aCIse2Q6Ik0xNiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMSAxMmgtOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLTUifV0sWyJwYXRoIix7ZDoiTTIxIDVoLTcifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNOCAxMkgzIn1dXX0pO3ZhciBfVSxVR2U9ZygoKT0+e19VPVtbInBhdGgiLHtkOiJNMTEgMTYuNTg2VjE5YTEgMSAwIDAgMS0xIDFIMkwxOC4zNyAzLjYzYTEgMSAwIDEgMSAzIDNsLTkuNjYzIDkuNjYzYTEgMSAwIDAgMS0xLjQxNCAwTDggMTQifV1dfSk7dmFyIGE1LFdHZT1nKCgpPT57YTU9W1sicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi05In1dLFsicGF0aCIse2Q6Ik0xMiA4VjMifV0sWyJwYXRoIix7ZDoiTTE3IDE2aDQifV0sWyJwYXRoIix7ZDoiTTE5IDEyVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi01In1dLFsicGF0aCIse2Q6Ik0zIDE0aDQifV0sWyJwYXRoIix7ZDoiTTUgMTBWMyJ9XSxbInBhdGgiLHtkOiJNNSAyMXYtNyJ9XV19KTt2YXIgTVUsR0dlPWcoKCk9PntNVT1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyLjY2NyA4IDEwIDEyaDRsLTIuNjY3IDQifV1dfSk7dmFyIHpVLEtHZT1nKCgpPT57elU9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTMgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik0xNi40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XV19KTt2YXIgQ1UsWUdlPWcoKCk9PntDVT1bWyJwYXRoIix7ZDoiTTIyIDExdjFhMTAgMTAgMCAxIDEtOS0xMCJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XV19KTt2YXIgVFUsWkdlPWcoKCk9PntUVT1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XV19KTt2YXIgJFUsWEdlPWcoKCk9PnskVT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgRFUsUUdlPWcoKCk9PntEVT1bWyJwYXRoIix7ZDoiTTIgMTNhNiA2IDAgMSAwIDEyIDAgNCA0IDAgMSAwLTggMCAyIDIgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTJjNC40IDAgOC0zLjYgOC04VjdhMiAyIDAgMSAwLTQgMHY2In1dLFsicGF0aCIse2Q6Ik0xOCAzIDE5LjEgNS4yIn1dLFsicGF0aCIse2Q6Ik0yMiAzIDIwLjkgNS4yIn1dXX0pO3ZhciBMVSxKR2U9ZygoKT0+e0xVPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNmgtNCJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNi41TDE0IDE1In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDQifV1dfSk7dmFyIEVVLGVLZT1nKCgpPT57RVU9W1sicGF0aCIse2Q6Ik0xMC41IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMkg3YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5LjI5IDE0Ljc2QTYuNjcgNi42NyAwIDAgMSAxNyAxMWE2LjYgNi42IDAgMCAxLTIuMjkgMy43NmMtMS4xNS45Mi0xLjcxIDIuMDQtMS43MSAzLjE5IDAgMi4yMiAxLjggNC4wNSA0IDQuMDVzNC0xLjgzIDQtNC4wNWMwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5In1dLFsicGF0aCIse2Q6Ik05LjYwNyAyMUg2YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIDItMmg3VjdhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgUFUsdEtlPWcoKCk9PntQVT1bWyJwYXRoIix7ZDoiTTIwIDlWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yIDE2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTQgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgNHY5In1dXX0pO3ZhciBJVSxhS2U9ZygoKT0+e0lVPVtbInBhdGgiLHtkOiJNMTEgMmgyIn1dLFsicGF0aCIse2Q6Im0xNC4yOCAxNC00LjU2IDgifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuNTU4LTRINC41NTgifV0sWyJwYXRoIix7ZDoiTTMgMTB2MiJ9XSxbInBhdGgiLHtkOiJNNi4yNDUgMTUuMDRBMiAyIDAgMCAxIDggMTRoMTJhMSAxIDAgMCAxIC44NjQgMS41MDVsLTMuMTEgNS40NTdBMiAyIDAgMCAxIDE2IDIySDRhMSAxIDAgMCAxLS44NjMtMS41MDZ6In1dLFsicGF0aCIse2Q6Ik03IDJhNCA0IDAgMCAxLTQgNCJ9XSxbInBhdGgiLHtkOiJtOC42NiA3LjY2IDEuNDEgMS40MSJ9XV19KTt2YXIgQVUsc0tlPWcoKCk9PntBVT1bWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTkuNSAxMiAyMiA2In1dLFsicGF0aCIse2Q6Ik0xNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzMgMS42MiJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MiJ9XSxbInBhdGgiLHtkOiJNNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzQgMS42MiJ9XV19KTt2YXIgTlUsaUtlPWcoKCk9PntOVT1bWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXX0pO3ZhciBSVSxyS2U9ZygoKT0+e1JVPVtbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUifV1dfSk7dmFyIE9VLG9LZT1nKCgpPT57T1U9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV1dfSk7dmFyIHM1LG5LZT1nKCgpPT57czU9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV0sWyJwYXRoIix7ZDoiTTIwIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjIgNGgtNCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIEZVLGxLZT1nKCgpPT57RlU9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XV19KTt2YXIgQlUsY0tlPWcoKCk9PntCVT1bWyJwYXRoIix7ZDoiTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCJ9XSxbInBhdGgiLHtkOiJNMTkuOCAxNy44YTcuNSA3LjUgMCAwIDAgLjAwMy0xMC42MDMifV0sWyJwYXRoIix7ZDoiTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NSJ9XV19KTt2YXIgSFUsZEtlPWcoKCk9PntIVT1bWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dfSk7dmFyIHFVLHVLZT1nKCgpPT57cVU9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDIxYzEuMSAwIDEuMS0xIDIuMy0xczEuMSAxIDIuMyAxYzEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIn1dXX0pO3ZhciBqVSxwS2U9ZygoKT0+e2pVPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBWVSxoS2U9ZygoKT0+e1ZVPVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik01IDE3QTEyIDEyIDAgMCAxIDE3IDUifV1dfSk7dmFyIFVVLGZLZT1nKCgpPT57VVU9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNOCAzSDN2NSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XV19KTt2YXIgV1UsbUtlPWcoKCk9PntXVT1bWyJwYXRoIix7ZDoiTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYifV0sWyJwYXRoIix7ZDoibTcgMTAuNTYgMTIuNTU4LTMuNjQyQTIgMiAwIDAgMCAxOS4wMTggM0g1YTIgMiAwIDAgMC0uNTU4IDMuOTIxbDEuMTE1LjMyQTIgMiAwIDAgMSA3IDkuMTYzdjcuMTc4In1dXX0pO3ZhciBHVSxnS2U9ZygoKT0+e0dVPVtbInBhdGgiLHtkOiJtMTUgMTAuNDIgNC44LTUuMDcifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDMifV0sWyJwYXRoIix7ZDoiTTkuNSAyMiAyMS40MTQgOS40MTVBMiAyIDAgMCAwIDIxLjIgNi40bC01LjYxLTQuMjA4QTEgMSAwIDAgMCAxNCAzdjJhMiAyIDAgMCAxLTEuMzk0IDEuOTA2TDguNjc3IDguMDUzQTEgMSAwIDAgMCA4IDljLS4xNTUgNi4zOTMtMi4wODIgOS00IDlhMiAyIDAgMCAwIDAgNGgxNCJ9XV19KTt2YXIgS1UsYktlPWcoKCk9PntLVT1bWyJwYXRoIix7ZDoiTTMgM2guMDEifV0sWyJwYXRoIix7ZDoiTTcgNWguMDEifV0sWyJwYXRoIix7ZDoiTTExIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI0Iix4OiIxNSIseToiNSJ9XSxbInBhdGgiLHtkOiJtMTkgOSAyIDJ2MTBjMCAuNi0uNCAxLTEgMWgtNmMtLjYgMC0xLS40LTEtMVYxMWwyLTIifV0sWyJwYXRoIix7ZDoibTEzIDE0IDgtMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTkgOC0yIn1dXX0pO3ZhciBZVSx2S2U9ZygoKT0+e1lVPVtbInBhdGgiLHtkOiJNMTQgOS41MzZWN2E0IDQgMCAwIDEgNC00aDEuNWEuNS41IDAgMCAxIC41LjVWNWE0IDQgMCAwIDEtNCA0IDQgNCAwIDAgMC00IDRjMCAyIDEgMyAxIDVhNSA1IDAgMCAxLTEgMyJ9XSxbInBhdGgiLHtkOiJNNCA5YTUgNSAwIDAgMSA4IDQgNSA1IDAgMCAxLTgtNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV19KTt2YXIgWlUseEtlPWcoKCk9PntaVT1bWyJwYXRoIix7ZDoiTTE1LjI5NSAxOS41NjIgMTYgMjIifV0sWyJwYXRoIix7ZDoibTE3IDE2IDMuNzU4IDIuMDk4In1dLFsicGF0aCIse2Q6Im0xOSAxMi41IDMuMDI2LS41OTgifV0sWyJwYXRoIix7ZDoiTTcuNjEgNi4zYTMgMyAwIDAgMC0zLjkyIDEuM2wtMS4zOCAyLjc5YTMgMyAwIDAgMCAxLjMgMy45MWw2Ljg5IDMuNTk3YTEgMSAwIDAgMCAxLjM0Mi0uNDQ3bDMuMTA2LTYuMjExYTEgMSAwIDAgMC0uNDQ3LTEuMzQxeiJ9XSxbInBhdGgiLHtkOiJNOCA5VjIifV1dfSk7dmFyIGk1LHlLZT1nKCgpPT57aTU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINyJ9XV19KTt2YXIgcjUsd0tlPWcoKCk9PntyNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgOC04IDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2SDhWOCJ9XV19KTt2YXIgbzUsa0tlPWcoKCk9PntvNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtOCA4IDggOCJ9XSxbInBhdGgiLHtkOiJNMTYgOHY4SDgifV1dfSk7dmFyIG41LFNLZT1nKCgpPT57bjU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXX0pO3ZhciBsNSxfS2U9ZygoKT0+e2w1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dfSk7dmFyIGM1LE1LZT1nKCgpPT57YzU9W1sicGF0aCIse2Q6Ik0xMyAyMWg2YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Im0zIDIxIDktOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUgzdi02In1dXX0pO3ZhciBkNSx6S2U9ZygoKT0+e2Q1PVtbInBhdGgiLHtkOiJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTIxIDIxLTktOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTV2NmgtNiJ9XV19KTt2YXIgdTUsQ0tlPWcoKCk9Pnt1NT1bWyJwYXRoIix7ZDoiTTEzIDNoNmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi02In1dLFsicGF0aCIse2Q6Im0zIDMgOSA5In1dLFsicGF0aCIse2Q6Ik0zIDlWM2g2In1dXX0pO3ZhciBwNSxUS2U9ZygoKT0+e3A1PVtbInBhdGgiLHtkOiJNMjEgMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNiJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDkifV0sWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dXX0pO3ZhciBYVSwkS2U9ZygoKT0+e1hVPVtbInBhdGgiLHtkOiJtMTAgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxMSJ9XSxbInBhdGgiLHtkOiJNMyA4VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0zIn1dXX0pO3ZhciBRVSxES2U9ZygoKT0+e1FVPVtbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoibTE3IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIxIDYuMzQ0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0xLjM0NCJ9XV19KTt2YXIgaDUsTEtlPWcoKCk9PntoNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dXX0pO3ZhciBmNSxFS2U9ZygoKT0+e2Y1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDE2VjhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTYgOCA4In1dXX0pO3ZhciBtNSxQS2U9ZygoKT0+e201PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDhoOHY4In1dLFsicGF0aCIse2Q6Im04IDE2IDgtOCJ9XV19KTt2YXIgZzUsSUtlPWcoKCk9PntnNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XV19KTt2YXIgYjUsQUtlPWcoKCk9PntiNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04LjUgMTQgNy00In1dLFsicGF0aCIse2Q6Im04LjUgMTAgNyA0In1dXX0pO3ZhciB2NSxOS2U9ZygoKT0+e3Y1PVtbImxpbmUiLHt4MToiNSIseTE6IjMiLHgyOiIxOSIseTI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHkxOiI1Iix4MjoiMyIseTI6IjE5In1dLFsibGluZSIse3gxOiIyMSIseTE6IjUiLHgyOiIyMSIseTI6IjE5In1dLFsibGluZSIse3gxOiI5Iix5MToiMjEiLHgyOiIxMCIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNCIseTE6IjIxIix4MjoiMTUiLHkyOiIyMSJ9XSxbInBhdGgiLHtkOiJNIDMgNSBBMiAyIDAgMCAxIDUgMyJ9XSxbInBhdGgiLHtkOiJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1In1dLFsicGF0aCIse2Q6Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkifV0sWyJwYXRoIix7ZDoiTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciB4NSxSS2U9ZygoKT0+e3g1PVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXX0pO3ZhciB5NSxPS2U9ZygoKT0+e3k1PVtbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBZMCxGS2U9ZygoKT0+e1kwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDhoNyJ9XSxbInBhdGgiLHtkOiJNOCAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMSAxNmg1In1dXX0pO3ZhciB3NSxCS2U9ZygoKT0+e3c1PVtbInBhdGgiLHtkOiJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQifV0sWyJwYXRoIix7ZDoibTkgMTEgMyAzTDIyIDQifV1dfSk7dmFyIGs1LEhLZT1nKCgpPT57azU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgUzUscUtlPWcoKCk9PntTNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV19KTt2YXIgXzUsaktlPWcoKCk9PntfNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgTTUsVktlPWcoKCk9PntNNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXX0pO3ZhciB6NSxVS2U9ZygoKT0+e3o1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIEM1LFdLZT1nKCgpPT57QzU9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgSlUsR0tlPWcoKCk9PntKVT1bWyJwYXRoIix7ZDoiTTEwIDkuNSA4IDEybDIgMi41In1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Im0xNCA5LjUgMiAyLjUtMiAyLjUifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV1dfSk7dmFyIGVXLEtLZT1nKCgpPT57ZVc9W1sicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dXX0pO3ZhciBUNSxZS2U9ZygoKT0+e1Q1PVtbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dXX0pO3ZhciAkNSxaS2U9ZygoKT0+eyQ1PVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMiJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYyIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV1dfSk7dmFyIFowLFhLZT1nKCgpPT57WjA9W1sicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dXX0pO3ZhciB0VyxRS2U9ZygoKT0+e3RXPVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV19KTt2YXIgRDUsSktlPWcoKCk9PntENT1bWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV1dfSk7dmFyIEw1LGVZZT1nKCgpPT57TDU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgRTUsdFllPWcoKCk9PntFNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dfSk7dmFyIFA1LGFZZT1nKCgpPT57UDU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV1dfSk7dmFyIEk1LHNZZT1nKCgpPT57STU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3YzIgMCAyLjgtMSAyLjgtMi44VjEwYzAtMiAxLTMuMyAzLjItMyJ9XSxbInBhdGgiLHtkOiJNOSAxMS4yaDUuNyJ9XV19KTt2YXIgQTUsaVllPWcoKCk9PntBNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMSA3djEwIn1dLFsicGF0aCIse2Q6Im0xNSA3IDIgMTAifV1dfSk7dmFyIE41LHJZZT1nKCgpPT57TjU9W1sicGF0aCIse2Q6Ik04IDE2VjguNWEuNS41IDAgMCAxIC45LS4zbDIuNyAzLjU5OWEuNS41IDAgMCAwIC44IDBsMi43LTMuNmEuNS41IDAgMCAxIC45LjNWMTYifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgUjUsb1llPWcoKCk9PntSNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dXX0pO3ZhciBPNSxuWWU9ZygoKT0+e081PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDhoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTAifV1dfSk7dmFyIEY1LGxZZT1nKCgpPT57RjU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgQjUsY1llPWcoKCk9PntCNT1bWyJwYXRoIix7ZDoiTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6In1dLFsicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XV19KTt2YXIgSDUsZFllPWcoKCk9PntINT1bWyJwYXRoIix7ZDoiTTMuNiAzLjZBMiAyIDAgMCAxIDUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0uNTkgMS40MSJ9XSxbInBhdGgiLHtkOiJNMyA4LjdWMTlhMiAyIDAgMCAwIDIgMmgxMC4zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTEzIDEzYTMgMyAwIDEgMCAwLTZIOXYyIn1dLFsicGF0aCIse2Q6Ik05IDE3di0yLjMifV1dfSk7dmFyIHE1LHVZZT1nKCgpPT57cTU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV19KTt2YXIgVjEscFllPWcoKCk9PntWMT1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTguMzc1IDIuNjI1YTEgMSAwIDAgMSAzIDNsLTkuMDEzIDkuMDE0YTIgMiAwIDAgMS0uODUzLjUwNWwtMi44NzMuODRhLjUuNSAwIDAgMS0uNjItLjYybC44NC0yLjg3M2EyIDIgMCAwIDEgLjUwNi0uODUyeiJ9XV19KTt2YXIgajUsaFllPWcoKCk9PntqNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV19KTt2YXIgYVcsZlllPWcoKCk9PnthVz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgVjUsbVllPWcoKCk9PntWNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aDEwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2EyIDIgMCAwIDEtMi0yVjcifV1dfSk7dmFyIFU1LGdZZT1nKCgpPT57VTU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEySDkuNWEyLjUgMi41IDAgMCAxIDAtNUgxNyJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTYgN3YxMCJ9XV19KTt2YXIgVzUsYlllPWcoKCk9PntXNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dfSk7dmFyIEc1LHZZZT1nKCgpPT57RzU9W1sicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV1dfSk7dmFyIEs1LHhZZT1nKCgpPT57SzU9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgc1cseVllPWcoKCk9PntzVz1bWyJwYXRoIix7ZDoiTTcgMTJoMmwyIDUgMi0xMGg0In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIGlXLHdZZT1nKCgpPT57aVc9W1sicGF0aCIse2Q6Ik0yMSAxMWE4IDggMCAwIDAtOC04In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXX0pO3ZhciBZNSxrWWU9ZygoKT0+e1k1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4LjlWN0g4bDQgNS00IDVoOHYtMS45In1dXX0pO3ZhciBaNSxTWWU9ZygoKT0+e1o1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciBYNSxfWWU9ZygoKT0+e1g1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dfSk7dmFyIFE1LE1ZZT1nKCgpPT57UTU9W1sicGF0aCIse2Q6Ik04IDE5SDVjLTEgMC0yLTEtMi0yVjdjMC0xIDEtMiAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgNWgzYzEgMCAyIDEgMiAydjEwYzAgMS0xIDItMiAyaC0zIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNCIseTI6IjIwIn1dXX0pO3ZhciBKNSx6WWU9ZygoKT0+e0o1PVtbInBhdGgiLHtkOiJNNSA4VjVjMC0xIDEtMiAyLTJoMTBjMSAwIDIgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2M2MwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMnYtMyJ9XSxbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgclcsQ1llPWcoKCk9PntyVz1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgb1csVFllPWcoKCk9PntvVz1bWyJwYXRoIix7ZDoiTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNmMtMS4xIDAtMi0uOS0yLTJ2LTRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjE0Iix5OiIxNCIscng6IjIifV1dfSk7dmFyIG5XLCRZZT1nKCgpPT57blc9W1sicGF0aCIse2Q6Ik0xMS4wMzUgNy42OWExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBsVyxEWWU9ZygoKT0+e2xXPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXX0pO3ZhciBlOCxMWWU9ZygoKT0+e2U4PVtbInBhdGgiLHtkOiJtNyAxMSAyLTItMi0yIn1dLFsicGF0aCIse2Q6Ik0xMSAxM2g0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dXX0pO3ZhciB0OCxFWWU9ZygoKT0+e3Q4PVtbInBhdGgiLHtkOiJNMTggMjFhNiA2IDAgMCAwLTEyIDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBhOCxQWWU9ZygoKT0+e2E4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIHM4LElZZT1nKCgpPT57czg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBjVyxBWWU9ZygoKT0+e2NXPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBkVyxOWWU9ZygoKT0+e2RXPVtbInBhdGgiLHtkOiJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIn1dXX0pO3ZhciB1VyxSWWU9ZygoKT0+e3VXPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTQgMmEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmgtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMFY4In1dLFsicGF0aCIse2Q6Ik0yIDRhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMjAgOGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTggMmgyIn1dXX0pO3ZhciBwVyxPWWU9ZygoKT0+e3BXPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV1dfSk7dmFyIGhXLEZZZT1nKCgpPT57aFc9W1sicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXoifV1dfSk7dmFyIGZXLEJZZT1nKCgpPT57Zlc9W1sicGF0aCIse2Q6Ik0xMy43NyAzLjA0M2EzNCAzNCAwIDAgMC0zLjU0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjc3MSAyMC45NTZhMzMgMzMgMCAwIDEtMy41NDEuMDAxIn1dLFsicGF0aCIse2Q6Ik0yMC4xOCAxNy43NGMtLjUxIDEuMTUtMS4yOSAxLjkzLTIuNDM5IDIuNDQifV0sWyJwYXRoIix7ZDoiTTIwLjE4IDYuMjU5Yy0uNTEtMS4xNDgtMS4yOTEtMS45MjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNMjAuOTU3IDEwLjIzYTMzIDMzIDAgMCAxIDAgMy41NCJ9XSxbInBhdGgiLHtkOiJNMy4wNDMgMTAuMjNhMzQgMzQgMCAwIDAgLjAwMSAzLjU0MSJ9XSxbInBhdGgiLHtkOiJNNi4yNiAyMC4xNzljLTEuMTUtLjUwOC0xLjkzLTEuMjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNNi4yNiAzLjgyYy0xLjE0OS41MS0xLjkzIDEuMjkxLTIuNDQgMi40NCJ9XV19KTt2YXIgbVcsSFllPWcoKCk9PnttVz1bWyJwYXRoIix7ZDoiTTEyIDNjNy4yIDAgOSAxLjggOSA5cy0xLjggOS05IDktOS0xLjgtOS05IDEuOC05IDktOSJ9XV19KTt2YXIgZ1cscVllPWcoKCk9PntnVz1bWyJwYXRoIix7ZDoiTTE1LjIzNiAyMmEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIwYTMgMyAwIDAgMSAzLTNoMWEyIDIgMCAwIDAgMi0ydi0yYTQgNCAwIDAgMC00LTRWNCJ9XSxbInBhdGgiLHtkOiJNMTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTQgNCAwIDAgMC00IDQgNyA3IDAgMCAwLTcgN2MwLTUgNC01IDQtMTAuNWE0LjUgNC41IDAgMSAwLTkgMCAyLjUgMi41IDAgMCAwIDUgMEM3IDEwIDMgMTEgMyAxN2MwIDIuOCAyLjIgNSA1IDVoMTAifV1dfSk7dmFyIGJXLGpZZT1nKCgpPT57Ylc9W1sicGF0aCIse2Q6Ik0xNCAxM1Y4LjVDMTQgNyAxNSA3IDE1IDVhMyAzIDAgMCAwLTYgMGMwIDIgMSAyIDEgMy41VjEzIn1dLFsicGF0aCIse2Q6Ik0yMCAxNS41YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtMTFBMi41IDIuNSAwIDAgMCA0IDE1LjVWMTdhMSAxIDAgMCAwIDEgMWgxNGExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNSAyMmgxNCJ9XV19KTt2YXIgdlcsVlllPWcoKCk9Pnt2Vz1bWyJwYXRoIix7ZDoiTTEyIDE4LjMzOGEyLjEgMi4xIDAgMCAwLS45ODcuMjQ0TDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlBLjUzLjUzIDAgMCAxIDEyIDIifV1dfSk7dmFyIHhXLFVZZT1nKCgpPT57eFc9W1sicGF0aCIse2Q6Im0xMC4zNDQgNC42ODggMS4xODEtMi4zOTNhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMiAyLjEyIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy4yMzcgMy4xNTIifV0sWyJwYXRoIix7ZDoibTE3Ljk0NSAxNy45NDUuNDMgMi41MDVhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIgMi4xMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhOCA4IDAgMCAwIC40LS4wOTkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgeVcsV1llPWcoKCk9Pnt5Vz1bWyJwYXRoIix7ZDoiTTExLjUyNSAyLjI5NWEuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyMyAyLjEyMyAwIDAgMCAxLjU5NSAxLjE2bDUuMTY2Ljc1NmEuNTMuNTMgMCAwIDEgLjI5NC45MDRsLTMuNzM2IDMuNjM4YTIuMTIzIDIuMTIzIDAgMCAwLS42MTEgMS44NzhsLjg4MiA1LjE0YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyMiAyLjEyMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMjIgMi4xMjIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyMiAyLjEyMiAwIDAgMCAxLjU5Ny0xLjE2eiJ9XV19KTt2YXIgd1csR1llPWcoKCk9Pnt3Vz1bWyJwYXRoIix7ZDoiTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMjBWNCJ9XV19KTt2YXIga1csS1llPWcoKCk9PntrVz1bWyJwYXRoIix7ZDoiTTEwLjAyOSA0LjI4NUEyIDIgMCAwIDAgNyA2djEyYTIgMiAwIDAgMCAzLjAyOSAxLjcxNWw5Ljk5Ny01Ljk5OGEyIDIgMCAwIDAgLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgNHYxNiJ9XV19KTt2YXIgU1csWVllPWcoKCk9PntTVz1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEifV1dfSk7dmFyIF9XLFpZZT1nKCgpPT57X1c9W1sicGF0aCIse2Q6Ik0xMSAydjIifV0sWyJwYXRoIix7ZDoiTTUgMnYyIn1dLFsicGF0aCIse2Q6Ik01IDNINGEyIDIgMCAwIDAtMiAydjRhNiA2IDAgMCAwIDEyIDBWNWEyIDIgMCAwIDAtMi0yaC0xIn1dLFsicGF0aCIse2Q6Ik04IDE1YTYgNiAwIDAgMCAxMiAwdi0zIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIE1XLFhZZT1nKCgpPT57TVc9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dXX0pO3ZhciB6VyxRWWU9ZygoKT0+e3pXPVtbInBhdGgiLHtkOiJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCJ9XSxbInBhdGgiLHtkOiJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUifV1dfSk7dmFyIENXLEpZZT1nKCgpPT57Q1c9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNiIseDoiMiIseToiMTQiLHJ4OiIyIn1dXX0pO3ZhciBUVyxlWmU9ZygoKT0+e1RXPVtbInBhdGgiLHtkOiJNMTEuMjY0IDIuMjA1QTQgNCAwIDAgMCA2LjQyIDQuMjExbC00IDhhNCA0IDAgMCAwIDEuMzU5IDUuMTE3bDYgNGE0IDQgMCAwIDAgNC40MzggMGw2LTRhNCA0IDAgMCAwIDEuNTc2LTQuNTkybC0yLTZhNCA0IDAgMCAwLTIuNTMtMi41M3oifV0sWyJwYXRoIix7ZDoiTTExLjk5IDIyIDE0IDEybDcuODIyIDMuMTg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMiA4LjQ3IDIuMzAyIn1dXX0pO3ZhciAkVyx0WmU9ZygoKT0+eyRXPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMjAiLHg6IjE0Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgRFcsYVplPWcoKCk9PntEVz1bWyJwYXRoIix7ZDoiTTE2IDRIOWEzIDMgMCAwIDAtMi44MyA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmE0IDQgMCAwIDEgMCA4SDYifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIExXLHNaZT1nKCgpPT57TFc9W1sicGF0aCIse2Q6Im00IDUgOCA4In1dLFsicGF0aCIse2Q6Im0xMiA1LTggOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTloLTRjMC0xLjUuNDQtMiAxLjUtMi41UzIwIDE1LjMzIDIwIDE0YzAtLjQ3LS4xNy0uOTMtLjQ4LTEuMjlhMi4xMSAyLjExIDAgMCAwLTIuNjItLjQ0Yy0uNDIuMjQtLjc0LjYyLS45IDEuMDcifV1dfSk7dmFyIEVXLGlaZT1nKCgpPT57RVc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyA2LjM0M2guMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyA2LjM0M2guMDEifV1dfSk7dmFyIFBXLHJaZT1nKCgpPT57UFc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDN2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgxIn1dLFsicGF0aCIse2Q6Im0xOC4zNjQgNS42MzYtLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTYuMzQzIDE3LjY1Ny0uNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtNS42MzYgNS42MzYuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtMTcuNjU3IDE3LjY1Ny43MDcuNzA3In1dXX0pO3ZhciBJVyxvWmU9ZygoKT0+e0lXPVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNC44MzcgMTYuMzg1YTYgNiAwIDEgMS03LjIyMy03LjIyMmMuNjI0LS4xNDcuOTcuNjYuNzE1IDEuMjQ4YTQgNCAwIDAgMCA1LjI2IDUuMjU5Yy41ODktLjI1NSAxLjM5Ni4wOSAxLjI0OC43MTUifV0sWyJwYXRoIix7ZDoiTTE2IDEyYTQgNCAwIDAgMC00LTQifV0sWyJwYXRoIix7ZDoibTE5IDUtMS4yNTYgMS4yNTYifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV1dfSk7dmFyIEFXLG5aZT1nKCgpPT57QVc9W1sicGF0aCIse2Q6Ik0xMCAyMXYtMSJ9XSxbInBhdGgiLHtkOiJNMTAgNFYzIn1dLFsicGF0aCIse2Q6Ik0xMCA5YTMgMyAwIDAgMCAwIDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNiAxLjUtM0gyMiJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMSJ9XSxbInBhdGgiLHtkOiJtMjAgMTAtMS41IDIgMS41IDIifV0sWyJwYXRoIix7ZDoibTMuNjQgMTguMzYuNy0uNyJ9XSxbInBhdGgiLHtkOiJtNC4zNCA2LjM0LS43LS43In1dXX0pO3ZhciBOVyxsWmU9ZygoKT0+e05XPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE3LjY2IDE3LjY2IDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im02LjM0IDE3LjY2LTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV1dfSk7dmFyIFJXLGNaZT1nKCgpPT57Ulc9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dfSk7dmFyIE9XLGRaZT1nKCgpPT57T1c9W1sicGF0aCIse2Q6Ik0xMiAxMFYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDEwLjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyAxMC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV0sWyJwYXRoIix7ZDoibTE2IDYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMThhNCA0IDAgMCAwLTggMCJ9XV19KTt2YXIgRlcsdVplPWcoKCk9PntGVz1bWyJwYXRoIix7ZDoibTQgMTkgOC04In1dLFsicGF0aCIse2Q6Im0xMiAxOS04LTgifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC00YzAtMS41LjQ0Mi0yIDEuNS0yLjVTMjAgOC4zMzQgMjAgNy4wMDJjMC0uNDcyLS4xNy0uOTMtLjQ4NC0xLjI5YTIuMTA1IDIuMTA1IDAgMCAwLTIuNjE3LS40MzZjLS40Mi4yMzktLjczOC42MTQtLjg5OSAxLjA2In1dXX0pO3ZhciBCVyxwWmU9ZygoKT0+e0JXPVtbInBhdGgiLHtkOiJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0gNyAxN2guMDEifV0sWyJwYXRoIix7ZDoibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgifV1dfSk7dmFyIEhXLGhaZT1nKCgpPT57SFc9W1sicGF0aCIse2Q6Ik0xMCAyMVYzaDgifV0sWyJwYXRoIix7ZDoiTTYgMTZoOSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41aDcifV1dfSk7dmFyIHFXLGZaZT1nKCgpPT57cVc9W1sicGF0aCIse2Q6Ik0xMSAxOUg0YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDUifV0sWyJwYXRoIix7ZDoiTTEzIDVoN2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJtNiAyIDMgMy0zIDMifV1dfSk7dmFyIGpXLG1aZT1nKCgpPT57alc9W1sicGF0aCIse2Q6Im0xMSAxOS02LTYifV0sWyJwYXRoIix7ZDoibTUgMjEtMi0yIn1dLFsicGF0aCIse2Q6Im04IDE2LTQgNCJ9XSxbInBhdGgiLHtkOiJNOS41IDE3LjUgMjEgNlYzaC0zTDYuNSAxNC41In1dXX0pO3ZhciBWVyxnWmU9ZygoKT0+e1ZXPVtbInBvbHlsaW5lIix7cG9pbnRzOiIxNC41IDE3LjUgMyA2IDMgMyA2IDMgMTcuNSAxNC41In1dLFsibGluZSIse3gxOiIxMyIseDI6IjE5Iix5MToiMTkiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMCIseTE6IjE2Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMjEiLHkxOiIyMSIseTI6IjE5In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjE0LjUgNi41IDE4IDMgMjEgMyAyMSA2IDE3LjUgOS41In1dLFsibGluZSIse3gxOiI1Iix4MjoiOSIseTE6IjE0Iix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjciLHgyOiI0Iix5MToiMTciLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjUiLHkxOiIxOSIseTI6IjIxIn1dXX0pO3ZhciBVVyxiWmU9ZygoKT0+e1VXPVtbInBhdGgiLHtkOiJtMTggMiA0IDQifV0sWyJwYXRoIix7ZDoibTE3IDcgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSA0IDQifV0sWyJwYXRoIix7ZDoibTUgMTktMyAzIn1dLFsicGF0aCIse2Q6Im0xNCA0IDYgNiJ9XV19KTt2YXIgV1csdlplPWcoKCk9PntXVz1bWyJwYXRoIix7ZDoiTTkgM0g1YTIgMiAwIDAgMC0yIDJ2NG02LTZoMTBhMiAyIDAgMCAxIDIgMnY0TTkgM3YxOG0wIDBoMTBhMiAyIDAgMCAwIDItMlY5TTkgMjFINWEyIDIgMCAwIDEtMi0yVjltMCAwaDE4In1dXX0pO3ZhciBHVyx4WmU9ZygoKT0+e0dXPVtbInBhdGgiLHtkOiJNMTIgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDlWMyJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dfSk7dmFyIEtXLHlaZT1nKCgpPT57S1c9W1sicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV19KTt2YXIgWVcsd1plPWcoKCk9PntZVz1bWyJwYXRoIix7ZDoiTTE0IDE0djIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgOHYyIn1dLFsicGF0aCIse2Q6Ik0yIDE1aDgifV0sWyJwYXRoIix7ZDoiTTIgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDloOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTVoLTQifV0sWyJwYXRoIix7ZDoiTTIyIDNoLTJhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLTQifV0sWyJwYXRoIix7ZDoiTTUgM3YxOCJ9XV19KTt2YXIgWlcsa1plPWcoKCk9PntaVz1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgNWguMDEifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLjAxIn1dXX0pO3ZhciBYVyxTWmU9ZygoKT0+e1hXPVtbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE1SDMifV1dfSk7dmFyIFFXLF9aZT1nKCgpPT57UVc9W1sicGF0aCIse2Q6Ik0xNCAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMTUgMnY0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEwaDIifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgMjJ2LTZhMiAyIDEzNSAwIDEgMi0yaDE0YTIgMiA0NSAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTMgMnYyYTIgMiA0NSAwIDAgMiAyaDE0YTIgMiAxMzUgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDIifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTkgMnY0In1dXX0pO3ZhciBKVyxNWmU9ZygoKT0+e0pXPVtbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV1dfSk7dmFyIGVHLHpaZT1nKCgpPT57ZUc9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV19KTt2YXIgdEcsQ1plPWcoKCk9Pnt0Rz1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxOCIseTI6IjE4In1dXX0pO3ZhciBhRyxUWmU9ZygoKT0+e2FHPVtbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiNSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxN2gxMCJ9XSxbInBhdGgiLHtkOiJtMy40NiAxMC41NCA3LjA4LTcuMDgifV1dfSk7dmFyIHNHLCRaZT1nKCgpPT57c0c9W1sicGF0aCIse2Q6Ik0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBpRyxEWmU9ZygoKT0+e2lHPVtbInBhdGgiLHtkOiJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjUiLGN5OiI2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dfSk7dmFyIHJHLExaZT1nKCgpPT57ckc9W1sicGF0aCIse2Q6Ik00IDR2MTYifV1dfSk7dmFyIG9HLEVaZT1nKCgpPT57b0c9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XV19KTt2YXIgbkcsUFplPWcoKCk9PntuRz1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dXX0pO3ZhciBsRyxJWmU9ZygoKT0+e2xHPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDR2MTYifV1dfSk7dmFyIGNHLEFaZT1nKCgpPT57Y0c9W1siY2lyY2xlIix7Y3g6IjE3IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTUuNTkgNS40MSA1LjQxIDE1LjU5In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJzLTQtOS0xLjUtMTEuNVMyMiAxMiAyMiAxMiJ9XV19KTt2YXIgZEcsTlplPWcoKCk9PntkRz1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0djE2In1dLFsicGF0aCIse2Q6Ik0yMiA2IDIgMTgifV1dfSk7dmFyIHVHLFJaZT1nKCgpPT57dUc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgcEcsT1plPWcoKCk9PntwRz1bWyJwYXRoIix7ZDoibTEwLjA2NSAxMi40OTMtNi4xOCAxLjMxOGEuOTM0LjkzNCAwIDAgMS0xLjEwOC0uNzAybC0uNTM3LTIuMTVhMS4wNyAxLjA3IDAgMCAxIC42OTEtMS4yNjVsMTMuNTA0LTQuNDQifV0sWyJwYXRoIix7ZDoibTEzLjU2IDExLjc0NyA0LjMzMi0uOTI0In1dLFsicGF0aCIse2Q6Im0xNiAyMS0zLjEwNS02LjIxIn1dLFsicGF0aCIse2Q6Ik0xNi40ODUgNS45NGEyIDIgMCAwIDEgMS40NTUtMi40MjVsMS4wOS0uMjcyYTEgMSAwIDAgMSAxLjIxMi43MjdsMS41MTUgNi4wNmExIDEgMCAwIDEtLjcyNyAxLjIxM2wtMS4wOS4yNzJhMiAyIDAgMCAxLTIuNDI1LTEuNDU1eiJ9XSxbInBhdGgiLHtkOiJtNi4xNTggOC42MzMgMS4xMTQgNC40NTYifV0sWyJwYXRoIix7ZDoibTggMjEgMy4xMDUtNi4yMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dXX0pO3ZhciBoRyxGWmU9ZygoKT0+e2hHPVtbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNEg3bC01IDhoMjBaIn1dLFsicGF0aCIse2Q6Ik04IDE0djgifV0sWyJwYXRoIix7ZDoibTkgMTQgNSA4In1dXX0pO3ZhciBmRyxCWmU9ZygoKT0+e2ZHPVtbInBhdGgiLHtkOiJNMy41IDIxIDE0IDMifV0sWyJwYXRoIix7ZDoiTTIwLjUgMjEgMTAgMyJ9XSxbInBhdGgiLHtkOiJNMTUuNSAyMSAxMiAxNWwtMy41IDYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV1dfSk7dmFyIG1HLEhaZT1nKCgpPT57bUc9W1sicGF0aCIse2Q6Ik0xMiAxOWg4In1dLFsicGF0aCIse2Q6Im00IDE3IDYtNi02LTYifV1dfSk7dmFyIGk4LHFaZT1nKCgpPT57aTg9W1sicGF0aCIse2Q6Ik0yMSA3IDYuODIgMjEuMThhMi44MyAyLjgzIDAgMCAxLTMuOTktLjAxYTIuODMgMi44MyAwIDAgMSAwLTRMMTcgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoiTTEyIDE2SDQifV1dfSk7dmFyIGdHLGpaZT1nKCgpPT57Z0c9W1sicGF0aCIse2Q6Ik0xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dLFsicGF0aCIse2Q6Ik0xNC41IDE2aC01In1dXX0pO3ZhciByOCxWWmU9ZygoKT0+e3I4PVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNyAxMkg3In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1In1dXX0pO3ZhciBiRyxVWmU9ZygoKT0+e2JHPVtbInBhdGgiLHtkOiJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNMyAyaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJoNyJ9XSxbInBhdGgiLHtkOiJNOSAxNkg0In1dLFsicGF0aCIse2Q6Ik0yMCAxNmgtNSJ9XV19KTt2YXIgbzgsV1plPWcoKCk9PntvOD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlINyJ9XV19KTt2YXIgbjgsR1plPWcoKCk9PntuOD1bWyJwYXRoIix7ZDoiTTMgNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XV19KTt2YXIgWDAsS1plPWcoKCk9PntYMD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTlIMyJ9XV19KTt2YXIgdkcsWVplPWcoKCk9Pnt2Rz1bWyJwYXRoIix7ZDoiTTEyIDIwaC0xYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxLTIgMkg2In1dLFsicGF0aCIse2Q6Ik0xMyA4aDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTcifV0sWyJwYXRoIix7ZDoiTTUgMTZINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJNNiA0aDFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTkgNnYxMiJ9XV19KTt2YXIgeEcsWlplPWcoKCk9Pnt4Rz1bWyJwYXRoIix7ZDoiTTE3IDIyaC0xYTQgNCAwIDAgMS00LTRWNmE0IDQgMCAwIDEgNC00aDEifV0sWyJwYXRoIix7ZDoiTTcgMjJoMWE0IDQgMCAwIDAgNC00di0xIn1dLFsicGF0aCIse2Q6Ik03IDJoMWE0IDQgMCAwIDEgNCA0djEifV1dfSk7dmFyIGw4LFhaZT1nKCgpPT57bDg9W1sicGF0aCIse2Q6Ik0xNSA1aDYifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoibTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTIifV0sWyJwYXRoIix7ZDoiTTMuOTIgMTBoNi4xNiJ9XV19KTt2YXIgeUcsUVplPWcoKCk9Pnt5Rz1bWyJwYXRoIix7ZDoiTTE3IDVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTlIOCJ9XSxbInBhdGgiLHtkOiJNMyAxMnY3In1dXX0pO3ZhciB3RyxKWmU9ZygoKT0+e3dHPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxIDE5LTEuOS0xLjkifV1dfSk7dmFyIGM4LGVYZT1nKCgpPT57Yzg9W1sicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWg2In1dLFsicGF0aCIse2Q6Ik0zIDVoMTgifV1dfSk7dmFyIGtHLHRYZT1nKCgpPT57a0c9W1sicGF0aCIse2Q6Ik0yIDEwczMtMyAzLTgifV0sWyJwYXRoIix7ZDoiTTIyIDEwcy0zLTMtMy04In1dLFsicGF0aCIse2Q6Ik0xMCAyYzAgNC40LTMuNiA4LTggOCJ9XSxbInBhdGgiLHtkOiJNMTQgMmMwIDQuNCAzLjYgOCA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTBzMiAyIDIgNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTIgMi0yIDUifV0sWyJwYXRoIix7ZDoiTTggMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dXX0pO3ZhciBTRyxhWGU9ZygoKT0+e1NHPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoiTTEwLjU4NSAxNUgxMCJ9XSxbInBhdGgiLHtkOiJNMiAxMmg2LjVMMTAgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDIifV1dfSk7dmFyIF9HLHNYZT1nKCgpPT57X0c9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDhhNCA0IDAgMCAwLTEuNjQ1IDcuNjQ3In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV1dfSk7dmFyIE1HLGlYZT1nKCgpPT57TUc9W1sicGF0aCIse2Q6Ik0xNCA0djEwLjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAwWiJ9XV19KTt2YXIgekcsclhlPWcoKCk9Pnt6Rz1bWyJwYXRoIix7ZDoiTTkgMTguMTIgMTAgMTRINC4xN2EyIDIgMCAwIDEtMS45Mi0yLjU2bDIuMzMtOEEyIDIgMCAwIDEgNi41IDJIMjBhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuNzZhMiAyIDAgMCAwLTEuNzkgMS4xMUwxMiAyMmEzLjEzIDMuMTMgMCAwIDEtMy0zLjg4WiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWMiJ9XV19KTt2YXIgQ0csb1hlPWcoKCk9PntDRz1bWyJwYXRoIix7ZDoiTTE1IDUuODggMTQgMTBoNS44M2EyIDIgMCAwIDEgMS45MiAyLjU2bC0yLjMzIDhBMiAyIDAgMCAxIDE3LjUgMjJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAyLTJoMi43NmEyIDIgMCAwIDAgMS43OS0xLjExTDEyIDJhMy4xMyAzLjEzIDAgMCAxIDMgMy44OFoifV0sWyJwYXRoIix7ZDoiTTcgMTB2MTIifV1dfSk7dmFyIFRHLG5YZT1nKCgpPT57VEc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyICRHLGxYZT1nKCgpPT57JEc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dfSk7dmFyIERHLGNYZT1nKCgpPT57REc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMSAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAxIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciBMRyxkWGU9ZygoKT0+e0xHPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIEVHLHVYZT1nKCgpPT57RUc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV1dfSk7dmFyIFBHLHBYZT1nKCgpPT57UEc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSA5LjUgNSA1In1dXX0pO3ZhciBJRyxoWGU9ZygoKT0+e0lHPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMgNXYyIn1dLFsicGF0aCIse2Q6Ik0xMyAxN3YyIn1dLFsicGF0aCIse2Q6Ik0xMyAxMXYyIn1dXX0pO3ZhciBBRyxmWGU9ZygoKT0+e0FHPVtbInBhdGgiLHtkOiJNMTAuNSAxN2gxLjIyN2EyIDIgMCAwIDAgMS4zNDUtLjUyTDE4IDEyIn1dLFsicGF0aCIse2Q6Im0xMiAxMy41IDMuNzk0LjUwNiJ9XSxbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciBORyxtWGU9ZygoKT0+e05HPVtbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciBSRyxnWGU9ZygoKT0+e1JHPVtbInBhdGgiLHtkOiJNNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTQgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik00IDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNCA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOS40MTQgMTMuNDE0YTIgMiAwIDAgMCAxLjQxNC41ODZIMTlhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xaC04LjE3MmEyIDIgMCAwIDAtMS40MTQuNTg2TDggMTJ6In1dLFsicGF0aCIse2Q6Ik05LjQxNCAyMS40MTRhMiAyIDAgMCAwIDEuNDE0LjU4NkgxOWExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFoLTguMTcyYTIgMiAwIDAgMC0xLjQxNC41ODZMOCAyMHoifV0sWyJwYXRoIix7ZDoiTTkuNDE0IDUuNDE0QTIgMiAwIDAgMCAxMC44MjggNkgxOWExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMWgtOC4xNzJhMiAyIDAgMCAwLTEuNDE0LjU4Nkw4IDR6In1dXX0pO3ZhciBPRyxiWGU9ZygoKT0+e09HPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcifV0sWyJwYXRoIix7ZDoiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XV19KTt2YXIgRkcsdlhlPWcoKCk9PntGRz1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTQgMTNhOCA4IDAgMCAxIDgtNyA4IDggMCAxIDEtNS4zIDE0TDQgMTcuNiJ9XSxbInBhdGgiLHtkOiJNOSAxN0g0djUifV1dfSk7dmFyIEJHLHhYZT1nKCgpPT57Qkc9W1sibGluZSIse3gxOiIxMCIseDI6IjE0Iix5MToiMiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTUiLHkxOiIxNCIseTI6IjExIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjgifV1dfSk7dmFyIEhHLHlYZT1nKCgpPT57SEc9W1sicGF0aCIse2Q6Ik03IDEyaDEzYTEgMSAwIDAgMSAxIDEgNSA1IDAgMCAxLTUgNWgtLjU5OGEuNS41IDAgMCAwLS40MjQuNzY1bDEuNTQ0IDIuNDdhLjUuNSAwIDAgMS0uNDI0Ljc2NUg1LjQwMmEuNS41IDAgMCAxLS40MjQtLjc2NUw3IDE4In1dLFsicGF0aCIse2Q6Ik04IDE4YTUgNSAwIDAgMS01LTVWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnY4In1dXX0pO3ZhciBxRyx3WGU9ZygoKT0+e3FHPVtbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjMifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiNyJ9XV19KTt2YXIgakcsa1hlPWcoKCk9PntqRz1bWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXX0pO3ZhciBWRyxTWGU9ZygoKT0+e1ZHPVtbInBhdGgiLHtkOiJNMTAgMTVoNCJ9XSxbInBhdGgiLHtkOiJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyJ9XSxbInBhdGgiLHtkOiJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIn1dLFsicGF0aCIse2Q6Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XV19KTt2YXIgVUcsX1hlPWcoKCk9PntVRz1bWyJwYXRoIix7ZDoiTTE2IDEydjQifV0sWyJwYXRoIix7ZDoiTTE2IDZhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0IDRBMiAyIDAgMCAxIDIyIDEydjdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIC41ODYtMS40MTRsNC00QTIgMiAwIDAgMSA4IDZ6In1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTggMTJ2NCJ9XV19KTt2YXIgV0csTVhlPWcoKCk9PntXRz1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTEiLHJ4OiIzIixyeToiMiJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMi41IixyeDoiMTAiLHJ5OiI4LjUifV1dfSk7dmFyIEdHLHpYZT1nKCgpPT57R0c9W1sicGF0aCIse2Q6Ik0xMiAyMHYtNiJ9XSxbInBhdGgiLHtkOiJNMTkuNjU2IDE0SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDEyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTkuNjU2IDRIMjBhMiAyIDAgMCAxIDIgMnYxMC4zNDQifV1dfSk7dmFyIEtHLENYZT1nKCgpPT57S0c9W1sicGF0aCIse2Q6Ik0yMSA0SDMifV0sWyJwYXRoIix7ZDoiTTE4IDhINiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLTYifV0sWyJwYXRoIix7ZDoiTTExIDIwSDkifV1dfSk7dmFyIFlHLFRYZT1nKCgpPT57WUc9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dXX0pO3ZhciBaRywkWGU9ZygoKT0+e1pHPVtbInBhdGgiLHtkOiJNMjIgN2gtMiJ9XSxbInBhdGgiLHtkOiJNNi41IDNoMTFBMi41IDIuNSAwIDAgMSAyMCA1LjVWMjBhMSAxIDAgMCAxLTEgMWgtOWExIDEgMCAwIDEtMS0xVjUuNWExIDEgMCAwIDAtNSAwVjE3YTEgMSAwIDAgMCAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNOSA3SDIifV1dfSk7dmFyIFhHLERYZT1nKCgpPT57WEc9W1sicGF0aCIse2Q6Ik0xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaIn1dLFsicGF0aCIse2Q6Ik04IDEzdjkifV0sWyJwYXRoIix7ZDoiTTE2IDIydi05In1dLFsicGF0aCIse2Q6Im05IDYgMSA3In1dLFsicGF0aCIse2Q6Im0xNSA2LTEgNyJ9XSxbInBhdGgiLHtkOiJNMTIgNlYyIn1dLFsicGF0aCIse2Q6Ik0xMyAyaC0yIn1dXX0pO3ZhciBRRyxMWGU9ZygoKT0+e1FHPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBKRyxFWGU9ZygoKT0+e0pHPVtbInBhdGgiLHtkOiJtMTAgMTEgMTEgLjlhMSAxIDAgMCAxIC44IDEuMWwtLjY2NSA0LjE1OGExIDEgMCAwIDEtLjk4OC44NDJIMjAifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC01In1dLFsicGF0aCIse2Q6Ik0xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMifV0sWyJwYXRoIix7ZDoiTTMgNGg4LjEyOWExIDEgMCAwIDEgLjk5Ljg2M0wxMyAxMS4yNDYifV0sWyJwYXRoIix7ZDoiTTQgMTFWNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTAuMVY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE1IixyOiI1In1dXX0pO3ZhciBlSyxQWGU9ZygoKT0+e2VLPVtbInBhdGgiLHtkOiJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIn1dLFsicGF0aCIse2Q6Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0In1dLFsicGF0aCIse2Q6Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoifV0sWyJwYXRoIix7ZDoiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIn1dXX0pO3ZhciB0SyxJWGU9ZygoKT0+e3RLPVtbInBhdGgiLHtkOiJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIn1dLFsicGF0aCIse2Q6Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgifV0sWyJwYXRoIix7ZDoiTTEwIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoifV0sWyJwYXRoIix7ZDoibTkgMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAyIDMifV1dfSk7dmFyIGFLLEFYZT1nKCgpPT57YUs9W1sicGF0aCIse2Q6Ik04IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xIn1dLFsicGF0aCIse2Q6Im05IDE1LTEtMSJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgMS0xIn1dLFsicGF0aCIse2Q6Ik05IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaIn1dLFsicGF0aCIse2Q6Im04IDE5LTIgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAzIn1dXX0pO3ZhciBzSyxOWGU9ZygoKT0+e3NLPVtbInBhdGgiLHtkOiJNMiAxNyAxNyAyIn1dLFsicGF0aCIse2Q6Im0yIDE0IDggOCJ9XSxbInBhdGgiLHtkOiJtNSAxMSA4IDgifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoibTExIDUgOCA4In1dLFsicGF0aCIse2Q6Im0xNCAyIDggOCJ9XSxbInBhdGgiLHtkOiJNNyAyMiAyMiA3In1dXX0pO3ZhciBkOCxSWGU9ZygoKT0+e2Q4PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDExaDE2In1dLFsicGF0aCIse2Q6Ik0xMiAzdjgifV0sWyJwYXRoIix7ZDoibTggMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xOCAyMi0yLTMifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV1dfSk7dmFyIGlLLE9YZT1nKCgpPT57aUs9W1sicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNCAyMGgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMmg0djQifV0sWyJwYXRoIix7ZDoibTIgMiA3LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTIgNS4zNTVWMmgzLjM1NyJ9XSxbInBhdGgiLHtkOiJtMjIgMi03LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTggNSA1IDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV19KTt2YXIgckssRlhlPWcoKCk9PntySz1bWyJwYXRoIix7ZDoiTTEwIDExdjYifV0sWyJwYXRoIix7ZDoiTTE0IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBvSyxCWGU9ZygoKT0+e29LPVtbInBhdGgiLHtkOiJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik0zIDZoMTgifV0sWyJwYXRoIix7ZDoiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIG5LLEhYZT1nKCgpPT57bks9W1sicGF0aCIse2Q6Ik04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dXX0pO3ZhciB1OCxxWGU9ZygoKT0+e3U4PVtbInBhdGgiLHtkOiJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1In1dLFsicGF0aCIse2Q6Ik0xMSAxNS41Yy41IDIuNS0uMTcgNC41LTEgNi41aDRjMi01LjUtLjUtMTItMS0xNCJ9XV19KTt2YXIgbEssalhlPWcoKCk9PntsSz1bWyJwYXRoIix7ZDoibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0zIn1dXX0pO3ZhciBjSyxWWGU9ZygoKT0+e2NLPVtbInBhdGgiLHtkOiJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiJ9XSxbInBhdGgiLHtkOiJNNyAxNnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41In1dXX0pO3ZhciBkSyxVWGU9ZygoKT0+e2RLPVtbInBhdGgiLHtkOiJNMTYgMTdoNnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTctOC41LTguNS01IDVMMiA3In1dXX0pO3ZhciB1SyxXWGU9ZygoKT0+e3VLPVtbInBhdGgiLHtkOiJNMTQuODI4IDE0LjgyOCAyMSAyMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDktNC00LTYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dXX0pO3ZhciBwSyxHWGU9ZygoKT0+e3BLPVtbInBhdGgiLHtkOiJNMTYgN2g2djYifV0sWyJwYXRoIix7ZDoibTIyIDctOC41IDguNS01LTVMMiAxNyJ9XV19KTt2YXIgcDgsS1hlPWcoKCk9PntwOD1bWyJwYXRoIix7ZDoibTIxLjczIDE4LTgtMTRhMiAyIDAgMCAwLTMuNDggMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgaEssWVhlPWcoKCk9PntoSz1bWyJwYXRoIix7ZDoiTTEwLjE3IDQuMTkzYTIgMiAwIDAgMSAzLjY2Ni4wMTMifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDIifV0sWyJwYXRoIix7ZDoibTE1Ljg3NCA3Ljc0MyAxIDEuNzMyIn1dLFsicGF0aCIse2Q6Im0xOC44NDkgMTIuOTUyIDEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQifV0sWyJwYXRoIix7ZDoiTTQuMDI0IDIxYTIgMiAwIDAgMS0xLjgzOS0yLjgzOSJ9XSxbInBhdGgiLHtkOiJtNS4xMzYgMTIuOTUyLTEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTggMjFoMiJ9XSxbInBhdGgiLHtkOiJtOC4xMDIgNy43NDMtMSAxLjczMiJ9XV19KTt2YXIgZkssWlhlPWcoKCk9PntmSz1bWyJwYXRoIix7ZDoiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIn1dXX0pO3ZhciBtSyxYWGU9ZygoKT0+e21LPVtbInBhdGgiLHtkOiJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIn1dXX0pO3ZhciBnSyxRWGU9ZygoKT0+e2dLPVtbInBhdGgiLHtkOiJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2In1dLFsicGF0aCIse2Q6Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2In1dXX0pO3ZhciBiSyxKWGU9ZygoKT0+e2JLPVtbInBhdGgiLHtkOiJNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDkifV0sWyJwYXRoIix7ZDoiTTE1IDE5SDkifV0sWyJwYXRoIix7ZDoiTTE5IDE5aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MkwxOC4zIDkuMzhhMSAxIDAgMCAwLS43OC0uMzhIMTQifV0sWyJwYXRoIix7ZDoiTTIgMTN2NWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTQgMyAyLjE1IDUuMTVhLjQ5NS40OTUgMCAwIDAgLjM1Ljg2aDIuMTVhLjQ3LjQ3IDAgMCAxIC4zNS44NkwzIDkuMDIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIHZLLGVRZT1nKCgpPT57dks9W1sicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMThIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciB4Syx0UWU9ZygoKT0+e3hLPVtbInBhdGgiLHtkOiJNMTUgNCA1IDkifV0sWyJwYXRoIix7ZDoibTE1IDguNS0xMCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmE5IDkgMCAwIDEtOSA5VjMifV1dfSk7dmFyIHlLLGFRZT1nKCgpPT57eUs9W1sicGF0aCIse2Q6Ik0xMCAxMi4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NGE4IDggMCAwIDEtMS4wNyA0In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgd0ssc1FlPWcoKCk9Pnt3Sz1bWyJwYXRoIix7ZDoibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIn1dLFsicGF0aCIse2Q6Ik00LjgyIDcuOSA4IDEwIn1dLFsicGF0aCIse2Q6Ik0xNS4xOCA3LjkgMTIgMTAifV0sWyJwYXRoIix7ZDoiTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMiJ9XV19KTt2YXIga0ssaVFlPWcoKCk9PntrSz1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIGg4LHJRZT1nKCgpPT57aDg9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIFNLLG9RZT1nKCgpPT57U0s9W1sicGF0aCIse2Q6Im0xNyAyLTUgNS01LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI3IixyeDoiMiJ9XV19KTt2YXIgX0ssblFlPWcoKCk9PntfSz1bWyJwYXRoIix7ZDoiTTE0IDE2LjVhLjUuNSAwIDAgMCAuNS41aC41YTIgMiAwIDAgMSAwIDRIOWEyIDIgMCAwIDEgMC00aC41YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVWOGEyIDIgMCAwIDEtNCAwVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTQgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVaIn1dXX0pO3ZhciBNSyxsUWU9ZygoKT0+e01LPVtbInBhdGgiLHtkOiJNMTIgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV19KTt2YXIgekssY1FlPWcoKCk9Pnt6Sz1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNS45NjEgNS45NTdhMTAuMjggMTAuMjggMCAwIDAtMy45MjIgNS43NjlBMSAxIDAgMCAwIDMgMTNoMTAifV1dfSk7dmFyIENLLGRRZT1nKCgpPT57Q0s9W1sicGF0aCIse2Q6Ik0xMiAxM3Y3YTIgMiAwIDAgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjAuOTkyIDEzYTEgMSAwIDAgMCAuOTctMS4yNzQgMTAuMjg0IDEwLjI4NCAwIDAgMC0xOS45MjMgMEExIDEgMCAwIDAgMyAxM3oifV1dfSk7dmFyIFRLLHVRZT1nKCgpPT57VEs9W1sicGF0aCIse2Q6Ik02IDR2NmE2IDYgMCAwIDAgMTIgMFY0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciAkSyxwUWU9ZygoKT0+eyRLPVtbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dLFsicGF0aCIse2Q6Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIn1dXX0pO3ZhciBESyxoUWU9ZygoKT0+e0RLPVtbInBhdGgiLHtkOiJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIn1dLFsicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjEifV1dfSk7dmFyIExLLGZRZT1nKCgpPT57TEs9W1sicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtOS05IDkgOSAwIDAgMC02IDIuM0wzIDEzIn1dXX0pO3ZhciBFSyxtUWU9ZygoKT0+e0VLPVtbInBhdGgiLHtkOiJNMTYgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV1dfSk7dmFyIFBLLGdRZT1nKCgpPT57UEs9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOFYyIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTktMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJtMTUgNS0zLTMtMyAzIn1dXX0pO3ZhciBmOCxiUWU9ZygoKT0+e2Y4PVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgN2ExIDEgMCAwIDAtMS0xaC0yYTIgMiAwIDAgMS0xLjE0My0uMzU5TDEzLjE0MyAyLjM2YTIgMiAwIDAgMC0yLjI4Ni0uMDAxTDYuMTQzIDUuNjRBMiAyIDAgMCAxIDUgNkgzYTEgMSAwIDAgMC0xIDF2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIElLLHZRZT1nKCgpPT57SUs9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjExIix5OiIxNCIscng6IjEifV1dfSk7dmFyIEFLLHhRZT1nKCgpPT57QUs9W1sicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiJ9XV19KTt2YXIgTksseVFlPWcoKCk9PntOSz1bWyJwYXRoIix7ZDoibTE5IDUgMy0zIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoifV0sWyJwYXRoIix7ZDoiTTcuNSAxMy41IDEwIDExIn1dLFsicGF0aCIse2Q6Ik0xMC41IDE2LjUgMTMgMTQifV0sWyJwYXRoIix7ZDoibTEyIDYgNiA2IDIuMy0yLjNhMi40IDIuNCAwIDAgMCAwLTMuNGwtMi42LTIuNmEyLjQgMi40IDAgMCAwLTMuNCAwWiJ9XV19KTt2YXIgUkssd1FlPWcoKCk9PntSSz1bWyJwYXRoIix7ZDoibTE4Ljg0IDEyLjI1IDEuNzItMS43MWgtLjAyYTUuMDA0IDUuMDA0IDAgMCAwLS4xMi03LjA3IDUuMDA2IDUuMDA2IDAgMCAwLTYuOTUgMGwtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Im01LjE3IDExLjc1LTEuNzEgMS43MWE1LjAwNCA1LjAwNCAwIDAgMCAuMTIgNy4wNyA1LjAwNiA1LjAwNiAwIDAgMCA2Ljk1IDBsMS43MS0xLjcxIn1dLFsibGluZSIse3gxOiI4Iix4MjoiOCIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIyIix4MjoiNSIseTE6IjgiLHkyOiI4In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTkiLHkyOiIyMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIE9LLGtRZT1nKCgpPT57T0s9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im0xNyA4LTUtNS01IDUifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV1dfSk7dmFyIEZLLFNRZT1nKCgpPT57Rks9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTQuNyAxOS4zIDE5IDUifV0sWyJwYXRoIix7ZDoibTIxIDMtMyAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTkuMjYgNy42OCA1IDEybDIgNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNSAyIDMuNS0zLjUifV0sWyJwYXRoIix7ZDoibTE4IDEyIDEtMSAxIDEtMSAxWiJ9XV19KTt2YXIgQkssX1FlPWcoKCk9PntCSz1bWyJwYXRoIix7ZDoibTE2IDExIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIEhLLE1RZT1nKCgpPT57SEs9W1sicGF0aCIse2Q6Ik0xMCAxNUg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDE2LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTMuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDEyLjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNy43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxMi4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDE4LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxMy44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBxSyx6UWU9ZygoKT0+e3FLPVtbInBhdGgiLHtkOiJNMjAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMjAgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMyAyMXYtMmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDIuMDcyLjU3OCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgakssQ1FlPWcoKCk9PntqSz1bWyJwYXRoIix7ZDoiTTE5IDE2di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNOS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbInJlY3QiLHt4OiIxMyIseToiMTYiLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIuODk5In1dXX0pO3ZhciBWSyxUUWU9ZygoKT0+e1ZLPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIFVLLCRRZT1nKCgpPT57VUs9W1sicGF0aCIse2Q6Ik0xMS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBXSyxEUWU9ZygoKT0+e1dLPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIxOSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIG04LExRZT1nKCgpPT57bTg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dfSk7dmFyIGc4LEVRZT1nKCgpPT57Zzg9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgR0ssUFFlPWcoKCk9PntHSz1bWyJwYXRoIix7ZDoiTTE5IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDEzaDIifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEyLjg2OC02LjM0OSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgYjgsSVFlPWcoKCk9PntiOD1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTloLTYifV1dfSk7dmFyIEtLLEFRZT1nKCgpPT57S0s9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMC44MjEtNy40ODcifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV1dfSk7dmFyIHY4LE5RZT1nKCgpPT57djg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXX0pO3ZhciBZSyxSUWU9ZygoKT0+e1lLPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuOS0xLjkifV1dfSk7dmFyIHg4LE9RZT1nKCgpPT57eDg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMS44NzMtNyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTctNSA1In1dXX0pO3ZhciB5OCxGUWU9ZygoKT0+e3k4PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTggOCAwIDAgMC0xNiAwIn1dXX0pO3ZhciBaSyxCUWU9ZygoKT0+e1pLPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XV19KTt2YXIgWEssSFFlPWcoKCk9PntYSz1bWyJwYXRoIix7ZDoiTTE2LjA1MSAxMi42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJwYXRoIix7ZDoiTTggMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBRSyxxUWU9ZygoKT0+e1FLPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTciLHgyOiIyMiIseTE6IjgiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNyIseTE6IjgiLHkyOiIxMyJ9XV19KTt2YXIgSkssalFlPWcoKCk9PntKSz1bWyJwYXRoIix7ZDoiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI3IixyOiI0In1dXX0pO3ZhciB3OCxWUWU9ZygoKT0+e3c4PVtbInBhdGgiLHtkOiJNMTggMjFhOCA4IDAgMCAwLTE2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0yMiAyMGMwLTMuMzctMi02LjUtNC04YTUgNSAwIDAgMC0uNDUtOC4zIn1dXX0pO3ZhciBlWSxVUWU9ZygoKT0+e2VZPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQifV0sWyJwYXRoIix7ZDoiTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIGs4LFdRZT1nKCgpPT57azg9W1sicGF0aCIse2Q6Im0xNiAyLTIuMyAyLjNhMyAzIDAgMCAwIDAgNC4ybDEuOCAxLjhhMyAzIDAgMCAwIDQuMiAwTDIyIDgifV0sWyJwYXRoIix7ZDoiTTE1IDE1IDMuMyAzLjNhNC4yIDQuMiAwIDAgMCAwIDZsNy4zIDcuM2MuNy43IDIgLjcgMi44IDBMMTUgMTVabTAgMCA3IDcifV0sWyJwYXRoIix7ZDoibTIuMSAyMS44IDYuNC02LjMifV0sWyJwYXRoIix7ZDoibTE5IDUtNyA3In1dXX0pO3ZhciBTOCxHUWU9ZygoKT0+e1M4PVtbInBhdGgiLHtkOiJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3In1dXX0pO3ZhciB0WSxLUWU9ZygoKT0+e3RZPVtbInBhdGgiLHtkOiJNMTMgNnY1YTEgMSAwIDAgMCAxIDFoNi4xMDJhMSAxIDAgMCAxIC43MTIuMjk4bC44OTguOTFhMSAxIDAgMCAxIC4yODguNzAyVjE3YTEgMSAwIDAgMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUgMThIM2ExIDEgMCAwIDEtMS0xVjhhMiAyIDAgMCAxIDItMmgxMmMxLjEgMCAyLjEuOCAyLjQgMS44bDEuMTc2IDQuMiJ9XSxbInBhdGgiLHtkOiJNOSAxOGg1In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciBhWSxZUWU9ZygoKT0+e2FZPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMiA1aDIwIn1dLFsicGF0aCIse2Q6Ik0zIDN2MiJ9XSxbInBhdGgiLHtkOiJNNyAzdjIifV0sWyJwYXRoIix7ZDoiTTE3IDN2MiJ9XSxbInBhdGgiLHtkOiJNMjEgM3YyIn1dLFsicGF0aCIse2Q6Im0xOSA1LTcgNy03LTcifV1dfSk7dmFyIHNZLFpRZT1nKCgpPT57c1k9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgaVksWFFlPWcoKCk9PntpWT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTcuOSA3LjkgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEwLjYgMi43LTIuNyJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im03LjkgMTYuMSAyLjctMi43In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEzLjQgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciByWSxRUWU9ZygoKT0+e3JZPVtbInBhdGgiLHtkOiJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAifV0sWyJwYXRoIix7ZDoiTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIn1dLFsicGF0aCIse2Q6Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIn1dLFsicmVjdCIse3g6IjE3Iix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMTciLHk6IjIiLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgb1ksSlFlPWcoKCk9PntvWT1bWyJwYXRoIix7ZDoiTTE2IDhxNiAwIDYtNi02IDAtNiA2In1dLFsicGF0aCIse2Q6Ik0xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMiAyYTI2LjYgMjYuNiAwIDAgMSAxMCAyMGMuOS02LjgyIDEuNS05LjUgNC0xNCJ9XV19KTt2YXIgblksZUplPWcoKCk9PntuWT1bWyJwYXRoIix7ZDoiTTE4IDExYy0xLjUgMC0yLjUuNS0zIDIifV0sWyJwYXRoIix7ZDoiTTQgNmEyIDIgMCAwIDAtMiAydjRhNSA1IDAgMCAwIDUgNSA4IDggMCAwIDEgNSAyIDggOCAwIDAgMSA1LTIgNSA1IDAgMCAwIDUtNVY4YTIgMiAwIDAgMC0yLTJoLTNhOCA4IDAgMCAwLTUgMiA4IDggMCAwIDAtNS0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMWMxLjUgMCAyLjUuNSAzIDIifV1dfSk7dmFyIGxZLHRKZT1nKCgpPT57bFk9W1sicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNyAyaDR2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMi01LjQ2IDUuNDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNSJ9XV19KTt2YXIgY1ksYUplPWcoKCk9PntjWT1bWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjkiLHI6IjYifV1dfSk7dmFyIGRZLHNKZT1nKCgpPT57ZFk9W1sicGF0aCIse2Q6Im0yIDggMiAyLTIgMiAyIDItMiAyIn1dLFsicGF0aCIse2Q6Im0yMiA4LTIgMiAyIDItMiAyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4djEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxMC4zNFY2YzAtLjU1LS40NS0xLTEtMWgtNC4zNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciB1WSxpSmU9ZygoKT0+e3VZPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjUiLHJ4OiIxIn1dXX0pO3ZhciBwWSxySmU9ZygoKT0+e3BZPVtbInBhdGgiLHtkOiJNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIGhZLG9KZT1nKCgpPT57aFk9W1sicGF0aCIse2Q6Im0xNiAxMyA1LjIyMyAzLjQ4MmEuNS41IDAgMCAwIC43NzctLjQxNlY3Ljg3YS41LjUgMCAwIDAtLjc1Mi0uNDMyTDE2IDEwLjUifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE0IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgZlksbkplPWcoKCk9PntmWT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTQiLHI6IjIifV1dfSk7dmFyIG1ZLGxKZT1nKCgpPT57bVk9W1sicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik0yMSA3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0xOC45NDQgMTIuMzNhMSAxIDAgMCAwIDAtLjY2IDcuNSA3LjUgMCAwIDAtMTMuODg4IDAgMSAxIDAgMCAwIDAgLjY2IDcuNSA3LjUgMCAwIDAgMTMuODg4IDAifV1dfSk7dmFyIGdZLGNKZT1nKCgpPT57Z1k9W1sicGF0aCIse2Q6Ik0xMS4xIDcuMWExNi41NSAxNi41NSAwIDAgMSAxMC45IDQifV0sWyJwYXRoIix7ZDoiTTEyIDEyYTEyLjYgMTIuNiAwIDAgMS04LjcgNSJ9XSxbInBhdGgiLHtkOiJNMTYuOCAxMy42YTE2LjU1IDE2LjU1IDAgMCAxLTkgNy41In1dLFsicGF0aCIse2Q6Ik0yMC43IDE3YTEyLjggMTIuOCAwIDAgMC04LjctNSAxMy4zIDEzLjMgMCAwIDEgMC0xMCJ9XSxbInBhdGgiLHtkOiJNNi4zIDMuOGExNi41NSAxNi41NSAwIDAgMCAxLjkgMTEuNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgYlksZEplPWcoKCk9PntiWT1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjEyIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTIiLHI6IjQifV0sWyJsaW5lIix7eDE6IjYiLHgyOiIxOCIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIHZZLHVKZT1nKCgpPT57dlk9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgMCA2In1dXX0pO3ZhciB4WSxwSmU9ZygoKT0+e3hZPVtbInBhdGgiLHtkOiJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoifV0sWyJwYXRoIix7ZDoiTTE2IDlhNSA1IDAgMCAxIDAgNiJ9XSxbInBhdGgiLHtkOiJNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgifV1dfSk7dmFyIHlZLGhKZT1nKCgpPT57eVk9W1sicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCA1LjYzNmE5IDkgMCAwIDEgMS44ODkgOS45NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im03IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEifV0sWyJwYXRoIix7ZDoiTTkuODI4IDQuMTcyQS42ODYuNjg2IDAgMCAxIDExIDQuNjU3di42ODYifV1dfSk7dmFyIHdZLGZKZT1nKCgpPT57d1k9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIga1ksbUplPWcoKCk9PntrWT1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dXX0pO3ZhciBTWSxnSmU9ZygoKT0+e1NZPVtbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oifV0sWyJwYXRoIix7ZDoiTTIyIDE5SDIifV1dfSk7dmFyIF9ZLGJKZT1nKCgpPT57X1k9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgMTFoM2MuOCAwIDEuNi4zIDIuMS45bDEuMS45YzEuNiAxLjYgNC4xIDEuNiA1LjcgMGwxLjEtLjljLjUtLjUgMS4zLS45IDIuMS0uOUgyMSJ9XV19KTt2YXIgXzgsdkplPWcoKCk9PntfOD1bWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA3aDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0In1dXX0pO3ZhciBNWSx4SmU9ZygoKT0+e01ZPVtbInBhdGgiLHtkOiJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00In1dXX0pO3ZhciB6WSx5SmU9ZygoKT0+e3pZPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Im05IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTUifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjkiLHI6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgTTgsd0plPWcoKCk9PntNOD1bWyJwYXRoIix7ZDoibTIxLjY0IDMuNjQtMS4yOC0xLjI4YTEuMjEgMS4yMSAwIDAgMC0xLjcyIDBMMi4zNiAxOC42NGExLjIxIDEuMjEgMCAwIDAgMCAxLjcybDEuMjggMS4yOGExLjIgMS4yIDAgMCAwIDEuNzIgMEwyMS42NCA1LjM2YTEuMiAxLjIgMCAwIDAgMC0xLjcyIn1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJNNSA2djQifV0sWyJwYXRoIix7ZDoiTTE5IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyA4SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC00In1dLFsicGF0aCIse2Q6Ik0xMSAzSDkifV1dfSk7dmFyIENZLGtKZT1nKCgpPT57Q1k9W1sicGF0aCIse2Q6Ik0xNSA0VjIifV0sWyJwYXRoIix7ZDoiTTE1IDE2di0yIn1dLFsicGF0aCIse2Q6Ik04IDloMiJ9XSxbInBhdGgiLHtkOiJNMjAgOWgyIn1dLFsicGF0aCIse2Q6Ik0xNy44IDExLjggMTkgMTMifV0sWyJwYXRoIix7ZDoiTTE1IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy44IDYuMiAxOSA1In1dLFsicGF0aCIse2Q6Im0zIDIxIDktOSJ9XSxbInBhdGgiLHtkOiJNMTIuMiA2LjIgMTEgNSJ9XV19KTt2YXIgVFksU0plPWcoKCk9PntUWT1bWyJwYXRoIix7ZDoiTTE4IDIxVjEwYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjExIn1dLFsicGF0aCIse2Q6Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAxLjEzMi0xLjgwM2w3Ljk1LTMuOTc0YTIgMiAwIDAgMSAxLjgzNyAwbDcuOTQ4IDMuOTc0QTIgMiAwIDAgMSAyMiA4eiJ9XSxbInBhdGgiLHtkOiJNNiAxM2gxMiJ9XSxbInBhdGgiLHtkOiJNNiAxN2gxMiJ9XV19KTt2YXIgJFksX0plPWcoKCk9PnskWT1bWyJwYXRoIix7ZDoiTTEyIDEwdjIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJtMTYuMTMgNy42Ni0uODEtNC4wNWEyIDIgMCAwIDAtMi0xLjYxaC0yLjY4YTIgMiAwIDAgMC0yIDEuNjFsLS43OCA0LjA1In1dLFsicGF0aCIse2Q6Im03Ljg4IDE2LjM2LjggNGEyIDIgMCAwIDAgMiAxLjYxaDIuNzJhMiAyIDAgMCAwIDItMS42MWwuODEtNC4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dXX0pO3ZhciBEWSxNSmU9ZygoKT0+e0RZPVtbInBhdGgiLHtkOiJNMyA2aDMifV0sWyJwYXRoIix7ZDoiTTE3IDZoLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIyMCIseDoiMyIseToiMiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMThhMi41IDIuNSAwIDAgMCAwLTUgMi41IDIuNSAwIDAgMSAwLTUifV1dfSk7dmFyIExZLHpKZT1nKCgpPT57TFk9W1sicGF0aCIse2Q6Ik0xMiAxMEwxMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiA2TDEyIDEwTDggNiJ9XSxbInBhdGgiLHtkOiJNMiAxNUMyLjYgMTUuNSAzLjIgMTYgNC41IDE2QzcgMTYgNyAxNCA5LjUgMTRDMTIuMSAxNCAxMS45IDE2IDE0LjUgMTZDMTcgMTYgMTcgMTQgMTkuNSAxNEMyMC44IDE0IDIxLjQgMTQuNSAyMiAxNSJ9XSxbInBhdGgiLHtkOiJNMiAyMUMyLjYgMjEuNSAzLjIgMjIgNC41IDIyQzcgMjIgNyAyMCA5LjUgMjBDMTIuMSAyMCAxMS45IDIyIDE0LjUgMjJDMTcgMjIgMTcgMjAgMTkuNSAyMEMyMC44IDIwIDIxLjQgMjAuNSAyMiAyMSJ9XV19KTt2YXIgRVksQ0plPWcoKCk9PntFWT1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMiAxNWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXX0pO3ZhciB6OCxUSmU9ZygoKT0+e3o4PVtbInBhdGgiLHtkOiJNMiAxMnEyLjUgMiA1IDB0NSAwIDUgMCA1IDAifV0sWyJwYXRoIix7ZDoiTTIgMTlxMi41IDIgNSAwdDUgMCA1IDAgNSAwIn1dLFsicGF0aCIse2Q6Ik0yIDVxMi41IDIgNSAwdDUgMCA1IDAgNSAwIn1dXX0pO3ZhciBQWSwkSmU9ZygoKT0+e1BZPVtbInBhdGgiLHtkOiJNMTkgNWEyIDIgMCAwIDAtMiAydjExIn1dLFsicGF0aCIse2Q6Ik0yIDE4Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTcgMTNoMTAifV0sWyJwYXRoIix7ZDoiTTcgOWgxMCJ9XSxbInBhdGgiLHtkOiJNOSA1YTIgMiAwIDAgMC0yIDJ2MTEifV1dfSk7dmFyIElZLERKZT1nKCgpPT57SVk9W1sicGF0aCIse2Q6Ik0xMiAycTIgMi41IDAgNXQwIDUgMCA1IDAgNSJ9XSxbInBhdGgiLHtkOiJNMTkgMnEyIDIuNSAwIDV0MCA1IDAgNSAwIDUifV0sWyJwYXRoIix7ZDoiTTUgMnEyIDIuNSAwIDV0MCA1IDAgNSAwIDUifV1dfSk7dmFyIEFZLExKZT1nKCgpPT57QVk9W1sicGF0aCIse2Q6Im0xMC41ODYgNS40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoibTE4LjU4NiAxMy40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTIiLHI6IjIifV1dfSk7dmFyIE5ZLEVKZT1nKCgpPT57Tlk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV1dfSk7dmFyIFJZLFBKZT1nKCgpPT57Ulk9W1sicGF0aCIse2Q6Ik0xNyAxN2gtNWMtMS4wOS0uMDItMS45NC45Mi0yLjUgMS45QTMgMyAwIDEgMSAyLjU3IDE1In1dLFsicGF0aCIse2Q6Ik05IDMuNGE0IDQgMCAwIDEgNi41Mi42NiJ9XSxbInBhdGgiLHtkOiJtNiAxNyAzLjEtNS44YTIuNSAyLjUgMCAwIDAgLjA1Ny0yLjA1In1dLFsicGF0aCIse2Q6Ik0yMC4zIDIwLjNhNCA0IDAgMCAxLTIuMy43In1dLFsicGF0aCIse2Q6Ik0xOC42IDEzYTQgNCAwIDAgMSAzLjM1NyAzLjQxNCJ9XSxbInBhdGgiLHtkOiJtMTIgNiAuNiAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIE9ZLElKZT1nKCgpPT57T1k9W1sicGF0aCIse2Q6Ik0xOCAxNi45OGgtNS45OWMtMS4xIDAtMS45NS45NC0yLjQ4IDEuOUE0IDQgMCAwIDEgMiAxN2MuMDEtLjcuMi0xLjQuNTctMiJ9XSxbInBhdGgiLHtkOiJtNiAxNyAzLjEzLTUuNzhjLjUzLS45Ny4xLTIuMTgtLjUtMy4xYTQgNCAwIDEgMSA2Ljg5LTQuMDYifV0sWyJwYXRoIix7ZDoibTEyIDYgMy4xMyA1LjczQzE1LjY2IDEyLjcgMTYuOSAxMyAxOCAxM2E0IDQgMCAwIDEgMCA4In1dXX0pO3ZhciBGWSxBSmU9ZygoKT0+e0ZZPVtbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6In1dLFsicGF0aCIse2Q6Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIEJZLE5KZT1nKCgpPT57Qlk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA1IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDhaIn1dXX0pO3ZhciBIWSxSSmU9ZygoKT0+e0hZPVtbInBhdGgiLHtkOiJtMiAyMiAxMC0xMCJ9XSxbInBhdGgiLHtkOiJtMTYgOC0xLjE3IDEuMTcifV0sWyJwYXRoIix7ZDoiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJtOCA4LS41My41M2EzLjUgMy41IDAgMCAwIDAgNC45NEw5IDE1bDEuNTMtMS41M2MuNTUtLjU1Ljg4LTEuMjUuOTgtMS45NyJ9XSxbInBhdGgiLHtkOiJNMTAuOTEgNS4yNmMuMTUtLjI2LjM0LS41MS41Ni0uNzNMMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAuMjggNC42MiJ9XSxbInBhdGgiLHtkOiJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIn1dLFsicGF0aCIse2Q6Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtLjUzLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNDkgMy40OSAwIDAgMSAxLjk3LS45OCJ9XSxbInBhdGgiLHtkOiJNMTguNzQgMTMuMDljLjI2LS4xNS41MS0uMzQuNzMtLjU2TDIxIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMC00LjYyLS4yOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBxWSxPSmU9ZygoKT0+e3FZPVtbInBhdGgiLHtkOiJNMiAyMiAxNiA4In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dLFsicGF0aCIse2Q6Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XV19KTt2YXIgalksRkplPWcoKCk9PntqWT1bWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMCA5djYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTQgN3Y4In1dLFsicGF0aCIse2Q6Ik0yMiAxN3YxYzAgLjUtLjUgMS0xIDFIM2MtLjUgMC0xLS41LTEtMXYtMSJ9XV19KTt2YXIgVlksQkplPWcoKCk9PntWWT1bWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Ik0yIDcuODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsicGF0aCIse2Q6Ik01IDExLjg1OGExMCAxMCAwIDAgMSAxMS41LTEuNzg1In1dLFsicGF0aCIse2Q6Ik04LjUgMTUuNDI5YTUgNSAwIDAgMSAyLjQxMy0xLjMxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIFVZLEhKZT1nKCgpPT57VVk9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgV1kscUplPWcoKCk9PntXWT1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dXX0pO3ZhciBHWSxqSmU9ZygoKT0+e0dZPVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDUuMTctMi42OSJ9XSxbInBhdGgiLHtkOiJNMTkgMTIuODU5YTEwIDEwIDAgMCAwLTIuMDA3LTEuNTIzIn1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgNC4xNzctMi42NDMifV0sWyJwYXRoIix7ZDoiTTIyIDguODJhMTUgMTUgMCAwIDAtMTEuMjg4LTMuNzY0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIEtZLFZKZT1nKCgpPT57S1k9W1sicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxMC41LTIuMjIyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSAzLTEuNDA2In1dXX0pO3ZhciBZWSxVSmU9ZygoKT0+e1lZPVtbInBhdGgiLHtkOiJNMTEuOTY1IDEwLjEwNXY0TDEzLjUgMTIuNWE1IDUgMCAwIDEgOCAxLjUifV0sWyJwYXRoIix7ZDoiTTExLjk2NSAxNC4xMDVoNCJ9XSxbInBhdGgiLHtkOiJNMTcuOTY1IDE4LjEwNWg0TDIwLjQzIDE5LjcxYTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTIxLjk2NSAyMi4xMDV2LTQifV0sWyJwYXRoIix7ZDoiTTUgMTIuODZhMTAgMTAgMCAwIDEgMy0yLjAzMiJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWguMDEifV1dfSk7dmFyIFpZLFdKZT1nKCgpPT57Wlk9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV1dfSk7dmFyIFhZLEdKZT1nKCgpPT57WFk9W1sicGF0aCIse2Q6Ik0xMCAydjgifV0sWyJwYXRoIix7ZDoiTTEyLjggMjEuNkEyIDIgMCAxIDAgMTQgMThIMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMGEyLjUgMi41IDAgMSAxIDIgNEgyIn1dLFsicGF0aCIse2Q6Im02IDYgNCA0IDQtNCJ9XV19KTt2YXIgUVksS0plPWcoKCk9PntRWT1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgSlksWUplPWcoKCk9PntKWT1bWyJwYXRoIix7ZDoiTTEyLjggMTkuNkEyIDIgMCAxIDAgMTQgMTZIMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSA4YTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoiTTkuOCA0LjRBMiAyIDAgMSAxIDExIDhIMiJ9XV19KTt2YXIgZVosWkplPWcoKCk9PntlWj1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgzbTcgMGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTcuMzA3IDcuMzA3QTEyLjMzIDEyLjMzIDAgMCAwIDcgMTBhNSA1IDAgMCAwIDcuMzkxIDQuMzkxTTguNjM4IDIuOTgxQzguNzUgMi42NjggOC44NzIgMi4zNCA5IDJoNmMxLjUgNCAyIDYgMiA4IDAgLjQwNy0uMDUuODA5LS4xNDUgMS4xOTgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgdFosWEplPWcoKCk9Pnt0Wj1bWyJwYXRoIix7ZDoibTE5IDEyLTEuNSAzIn1dLFsicGF0aCIse2Q6Ik0xOS42MyAxOC44MSAyMiAyMCJ9XSxbInBhdGgiLHtkOiJNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6In1dXX0pO3ZhciBhWixRSmU9ZygoKT0+e2FaPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0YTIgMiAwIDAgMCAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIxMyIseToiMTMiLHJ4OiIyIn1dXX0pO3ZhciBzWixKSmU9ZygoKT0+e3NaPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY3In1dLFsicGF0aCIse2Q6Ik0xMiAxNWE1IDUgMCAwIDAgNS01YzAtMi0uNS00LTItOEg5Yy0xLjUgNC0yIDYtMiA4YTUgNSAwIDAgMCA1IDVaIn1dXX0pO3ZhciBpWixlZXQ9ZygoKT0+e2laPVtbInBhdGgiLHtkOiJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6In1dXX0pO3ZhciByWix0ZXQ9ZygoKT0+e3JaPVtbInBhdGgiLHtkOiJNMTggNEg2In1dLFsicGF0aCIse2Q6Ik0xOCA4IDYgMjAifV0sWyJwYXRoIix7ZDoibTYgOCAxMiAxMiJ9XV19KTt2YXIgb1osYWV0PWcoKCk9PntvWj1bWyJwYXRoIix7ZDoiTTE4IDYgNiAxOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIn1dXX0pO3ZhciBuWixzZXQ9ZygoKT0+e25aPVtbInBhdGgiLHtkOiJNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3In1dLFsicGF0aCIse2Q6Ik0xNS42NTYgMTBIMjBhMSAxIDAgMCAxIC43OCAxLjYzbC0xLjcyIDEuNzczIn1dLFsicGF0aCIse2Q6Ik0xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIGxaLGlldD1nKCgpPT57bFo9W1sicGF0aCIse2Q6Ik00IDE0YTEgMSAwIDAgMS0uNzgtMS42M2w5LjktMTAuMmEuNS41IDAgMCAxIC44Ni40NmwtMS45MiA2LjAyQTEgMSAwIDAgMCAxMyAxMGg3YTEgMSAwIDAgMSAuNzggMS42M2wtOS45IDEwLjJhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTR6In1dXX0pO3ZhciBjWixyZXQ9ZygoKT0+e2NaPVtbInBhdGgiLHtkOiJtMiAxMCAyLjQ1Ni0zLjY4NGEuNy43IDAgMCAxIDEuMTA2LS4wMTNsMi4zOSAzLjQxM2EuNy43IDAgMCAwIDEuMDk2LS4wMDFsMi40MDItMy40MzJhLjcuNyAwIDAgMSAxLjA5OCAwbDIuNDAyIDMuNDMyYS43LjcgMCAwIDAgMS4wOTggMGwyLjM4OS0zLjQxM2EuNy43IDAgMCAxIDEuMTA2LjAxM0wyMiAxMCJ9XSxbInBhdGgiLHtkOiJtMiAxOC4wMDIgMi40NTYtMy42ODRhLjcuNyAwIDAgMSAxLjEwNi0uMDEzbDIuMzkgMy40MTNhLjcuNyAwIDAgMCAxLjA5NyAwbDIuNDAyLTMuNDMyYS43LjcgMCAwIDEgMS4wOTggMGwyLjQwMiAzLjQzMmEuNy43IDAgMCAwIDEuMDk4IDBsMi4zODktMy40MTNhLjcuNyAwIDAgMSAxLjEwNi4wMTNMMjIgMTguMDAyIn1dXX0pO3ZhciBkWixvZXQ9ZygoKT0+e2RaPVtbInBhdGgiLHtkOiJNMTIgNy41YTQuNSA0LjUgMCAxIDEgNSA0LjUifV0sWyJwYXRoIix7ZDoiTTcgMTJhNC41IDQuNSAwIDEgMSA1LTQuNVYyMSJ9XV19KTt2YXIgdVosbmV0PWcoKCk9Pnt1Wj1bWyJwYXRoIix7ZDoiTTIxIDE0LjVBOSA2LjUgMCAwIDEgNS41IDE5In1dLFsicGF0aCIse2Q6Ik0zIDkuNUE5IDYuNSAwIDAgMSAxOC41IDUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE0LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiI5LjUiLHI6IjMuNSJ9XV19KTt2YXIgcFosY2V0PWcoKCk9PntwWj1bWyJwYXRoIix7ZDoiTTExIDIxYTMgMyAwIDAgMCAzLTNWNi41YTEgMSAwIDAgMC03IDAifV0sWyJwYXRoIix7ZDoiTTcgMTlWNmEzIDMgMCAwIDAtMy0zaDAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgaFosZGV0PWcoKCk9PntoWj1bWyJwYXRoIix7ZDoiTTE2IDQuNTI1djE0Ljk0OCJ9XSxbInBhdGgiLHtkOiJNMjAgM0ExNyAxNyAwIDAgMSA0IDMifV0sWyJwYXRoIix7ZDoiTTQgMjFhMTcgMTcgMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNOCA0LjUyNXYxNC45NDgifV1dfSk7dmFyIGZaLHVldD1nKCgpPT57Zlo9W1sicGF0aCIse2Q6Ik0xMCAxNmMwLTQtMy00LjUtMy04YTUgNSAwIDAgMSAxMCAwYzAgMy40NjYtMyA2LjE5Ni0zIDEwYTMgMyAwIDAgMCA2IDAifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciBtWixwZXQ9ZygoKT0+e21aPVtbInBhdGgiLHtkOiJNMyAxNmg2Ljg1N2MuMTYyLS4wMTIuMTktLjMyMy4wMzgtLjM4YTYgNiAwIDEgMSA0LjIxMiAwYy0uMTUzLjA1Ny0uMTI1LjM2OC4wMzguMzhIMjEifV0sWyJwYXRoIix7ZDoiTTMgMjBoMTgifV1dfSk7dmFyIGdaLGhldD1nKCgpPT57Z1o9W1sicGF0aCIse2Q6Ik0zIDEwQTYuMDYgNi4wNiAwIDAgMSAxMiAxMCBBNi4wNiA2LjA2IDAgMCAwIDIxIDEwIn1dLFsicGF0aCIse2Q6Ik02IDN2MTJhNiA2IDAgMCAwIDEyIDBWMyJ9XV19KTt2YXIgYlosZmV0PWcoKCk9PntiWj1bWyJwYXRoIix7ZDoiTTE5IDIxYTE1IDE1IDAgMCAxIDAtMTgifV0sWyJwYXRoIix7ZDoiTTIwIDEySDQifV0sWyJwYXRoIix7ZDoiTTUgM2ExNSAxNSAwIDAgMSAwIDE4In1dXX0pO3ZhciB2WixtZXQ9ZygoKT0+e3ZaPVtbInBhdGgiLHtkOiJNMTAgMTlWNS41YTEgMSAwIDAgMSA1IDBWMTdhMiAyIDAgMCAwIDIgMmg1bC0zLTMifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMgMyJ9XSxbInBhdGgiLHtkOiJNNSAxOVY1LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNSA1LjVBMi41IDIuNSAwIDAgMCAyLjUgMyJ9XV19KTt2YXIgeFosZ2V0PWcoKCk9Pnt4Wj1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAzIDMgMjEifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIHlaLGJldD1nKCgpPT57eVo9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTUiLHI6IjYifV0sWyJwYXRoIix7ZDoiTTE4IDNBNiA2IDAgMCAxIDYgMyJ9XV19KTt2YXIgd1osdmV0PWcoKCk9Pnt3Wj1bWyJwYXRoIix7ZDoiTTExIDUuNWExIDEgMCAwIDEgNSAwVjE2YTUgNSAwIDAgMCA1IDUifV0sWyJwYXRoIix7ZDoiTTE2IDExLjVhMSAxIDAgMCAxIDUgMFYxNmE1IDUgMCAwIDEtNSA1In1dLFsicGF0aCIse2Q6Ik02IDE5VjZhMyAzIDAgMCAwLTMtM2gwIn1dLFsicGF0aCIse2Q6Ik02IDUuNWExIDEgMCAwIDEgNSAwVjE5In1dXX0pO3ZhciBrWix4ZXQ9ZygoKT0+e2taPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE2LjY1Iix5MToiMjEiLHkyOiIxNi42NSJ9XSxbImxpbmUiLHt4MToiMTEiLHgyOiIxMSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE0Iix5MToiMTEiLHkyOiIxMSJ9XV19KTt2YXIgU1oseWV0PWcoKCk9PntTWj1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxNi42NSIseTE6IjIxIix5MjoiMTYuNjUifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNCIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIENkPXt9O3l0KENkLHtBQXJyb3dEb3duOigpPT5oUyxBQXJyb3dVcDooKT0+ZlMsQUxhcmdlU21hbGw6KCk9Pm1TLEFjY2Vzc2liaWxpdHk6KCk9PmdTLEFjdGl2aXR5OigpPT5iUyxBY3Rpdml0eVNxdWFyZTooKT0+aTUsQWlyVmVudDooKT0+dlMsQWlycGxheTooKT0+eFMsQWxhcm1DaGVjazooKT0+eGYsQWxhcm1DbG9jazooKT0+d1MsQWxhcm1DbG9ja0NoZWNrOigpPT54ZixBbGFybUNsb2NrTWludXM6KCk9PnlmLEFsYXJtQ2xvY2tPZmY6KCk9PnlTLEFsYXJtQ2xvY2tQbHVzOigpPT53ZixBbGFybU1pbnVzOigpPT55ZixBbGFybVBsdXM6KCk9PndmLEFsYXJtU21va2U6KCk9PmtTLEFsYnVtOigpPT5TUyxBbGVydENpcmNsZTooKT0+WWYsQWxlcnRPY3RhZ29uOigpPT5QNixBbGVydFRyaWFuZ2xlOigpPT5wOCxBbGlnbkNlbnRlcjooKT0+cjgsQWxpZ25DZW50ZXJIb3Jpem9udGFsOigpPT5fUyxBbGlnbkNlbnRlclZlcnRpY2FsOigpPT5NUyxBbGlnbkVuZEhvcml6b250YWw6KCk9PnpTLEFsaWduRW5kVmVydGljYWw6KCk9PlRTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6KCk9PkNTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6KCk9PiRTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDooKT0+RFMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjooKT0+TFMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDooKT0+RVMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OigpPT5QUyxBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDooKT0+SVMsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOigpPT5SUyxBbGlnbkp1c3RpZnk6KCk9Pm44LEFsaWduTGVmdDooKT0+WDAsQWxpZ25SaWdodDooKT0+bzgsQWxpZ25TdGFydEhvcml6b250YWw6KCk9PkFTLEFsaWduU3RhcnRWZXJ0aWNhbDooKT0+TlMsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6KCk9Pk9TLEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOigpPT5GUyxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OigpPT5CUyxBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjooKT0+SFMsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6KCk9PnFTLEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6KCk9PmpTLEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDooKT0+VlMsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjooKT0+VVMsQW1idWxhbmNlOigpPT5XUyxBbXBlcnNhbmQ6KCk9PktTLEFtcGVyc2FuZHM6KCk9PkdTLEFtcGhvcmE6KCk9PllTLEFuY2hvcjooKT0+WlMsQW5ncnk6KCk9PlhTLEFubm95ZWQ6KCk9PlFTLEFudGVubmE6KCk9PkpTLEFudmlsOigpPT5lXyxBcGVydHVyZTooKT0+dF8sQXBwV2luZG93OigpPT5zXyxBcHBXaW5kb3dNYWM6KCk9PmFfLEFwcGxlOigpPT5yXyxBcmNoaXZlOigpPT5sXyxBcmNoaXZlUmVzdG9yZTooKT0+aV8sQXJjaGl2ZVg6KCk9Pm9fLEFyZWFDaGFydDooKT0+TmYsQXJtY2hhaXI6KCk9Pm5fLEFycm93QmlnRG93bjooKT0+ZF8sQXJyb3dCaWdEb3duRGFzaDooKT0+Y18sQXJyb3dCaWdMZWZ0OigpPT51XyxBcnJvd0JpZ0xlZnREYXNoOigpPT5wXyxBcnJvd0JpZ1JpZ2h0OigpPT5mXyxBcnJvd0JpZ1JpZ2h0RGFzaDooKT0+aF8sQXJyb3dCaWdVcDooKT0+Z18sQXJyb3dCaWdVcERhc2g6KCk9Pm1fLEFycm93RG93bjooKT0+el8sQXJyb3dEb3duMDE6KCk9PmJfLEFycm93RG93bjEwOigpPT52XyxBcnJvd0Rvd25BWjooKT0+a2YsQXJyb3dEb3duQXo6KCk9PmtmLEFycm93RG93bkNpcmNsZTooKT0+WmYsQXJyb3dEb3duRnJvbUxpbmU6KCk9PnhfLEFycm93RG93bkxlZnQ6KCk9PnlfLEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOigpPT5RZixBcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZTooKT0+YzUsQXJyb3dEb3duTGVmdFNxdWFyZTooKT0+cjUsQXJyb3dEb3duTmFycm93V2lkZTooKT0+d18sQXJyb3dEb3duUmlnaHQ6KCk9PmtfLEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTooKT0+SmYsQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlOigpPT5kNSxBcnJvd0Rvd25SaWdodFNxdWFyZTooKT0+bzUsQXJyb3dEb3duU3F1YXJlOigpPT5uNSxBcnJvd0Rvd25Ub0RvdDooKT0+U18sQXJyb3dEb3duVG9MaW5lOigpPT5NXyxBcnJvd0Rvd25VcDooKT0+X18sQXJyb3dEb3duV2lkZU5hcnJvdzooKT0+U2YsQXJyb3dEb3duWkE6KCk9Pl9mLEFycm93RG93blphOigpPT5fZixBcnJvd0xlZnQ6KCk9PkxfLEFycm93TGVmdENpcmNsZTooKT0+WGYsQXJyb3dMZWZ0RnJvbUxpbmU6KCk9PkNfLEFycm93TGVmdFJpZ2h0OigpPT5UXyxBcnJvd0xlZnRTcXVhcmU6KCk9Pmw1LEFycm93TGVmdFRvTGluZTooKT0+JF8sQXJyb3dSaWdodDooKT0+SV8sQXJyb3dSaWdodENpcmNsZTooKT0+YW0sQXJyb3dSaWdodEZyb21MaW5lOigpPT5EXyxBcnJvd1JpZ2h0TGVmdDooKT0+RV8sQXJyb3dSaWdodFNxdWFyZTooKT0+aDUsQXJyb3dSaWdodFRvTGluZTooKT0+UF8sQXJyb3dVcDooKT0+Vl8sQXJyb3dVcDAxOigpPT5OXyxBcnJvd1VwMTA6KCk9PkFfLEFycm93VXBBWjooKT0+TWYsQXJyb3dVcEF6OigpPT5NZixBcnJvd1VwQ2lyY2xlOigpPT5zbSxBcnJvd1VwRG93bjooKT0+Ul8sQXJyb3dVcEZyb21Eb3Q6KCk9Pk9fLEFycm93VXBGcm9tTGluZTooKT0+Rl8sQXJyb3dVcExlZnQ6KCk9PkJfLEFycm93VXBMZWZ0RnJvbUNpcmNsZTooKT0+ZW0sQXJyb3dVcExlZnRGcm9tU3F1YXJlOigpPT51NSxBcnJvd1VwTGVmdFNxdWFyZTooKT0+ZjUsQXJyb3dVcE5hcnJvd1dpZGU6KCk9PnpmLEFycm93VXBSaWdodDooKT0+SF8sQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTooKT0+dG0sQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTooKT0+cDUsQXJyb3dVcFJpZ2h0U3F1YXJlOigpPT5tNSxBcnJvd1VwU3F1YXJlOigpPT5nNSxBcnJvd1VwVG9MaW5lOigpPT5qXyxBcnJvd1VwV2lkZU5hcnJvdzooKT0+cV8sQXJyb3dVcFpBOigpPT5DZixBcnJvd1VwWmE6KCk9PkNmLEFycm93c1VwRnJvbUxpbmU6KCk9PldfLEFzdGVyaXNrOigpPT5VXyxBc3Rlcmlza1NxdWFyZTooKT0+YjUsQXN0cm9pZDooKT0+R18sQXRTaWduOigpPT5LXyxBdG9tOigpPT5ZXyxBdWRpb0xpbmVzOigpPT5aXyxBdWRpb1dhdmVmb3JtOigpPT5YXyxBd2FyZDooKT0+UV8sQXhlOigpPT5KXyxBeGlzM0Q6KCk9PlRmLEF4aXMzZDooKT0+VGYsQmFieTooKT0+ZU0sQmFja3BhY2s6KCk9PnRNLEJhZGdlOigpPT5iTSxCYWRnZUFsZXJ0OigpPT5hTSxCYWRnZUNlbnQ6KCk9PnNNLEJhZGdlQ2hlY2s6KCk9PiRmLEJhZGdlRG9sbGFyU2lnbjooKT0+aU0sQmFkZ2VFdXJvOigpPT5yTSxCYWRnZUhlbHA6KCk9PkRmLEJhZGdlSW5kaWFuUnVwZWU6KCk9Pm9NLEJhZGdlSW5mbzooKT0+bk0sQmFkZ2VKYXBhbmVzZVllbjooKT0+bE0sQmFkZ2VNaW51czooKT0+Y00sQmFkZ2VQZXJjZW50OigpPT5kTSxCYWRnZVBsdXM6KCk9PnVNLEJhZGdlUG91bmRTdGVybGluZzooKT0+cE0sQmFkZ2VRdWVzdGlvbk1hcms6KCk9PkRmLEJhZGdlUnVzc2lhblJ1YmxlOigpPT5mTSxCYWRnZVN3aXNzRnJhbmM6KCk9PmhNLEJhZGdlVHVya2lzaExpcmE6KCk9Pm1NLEJhZGdlWDooKT0+Z00sQmFnZ2FnZUNsYWltOigpPT52TSxCYWxsb29uOigpPT55TSxCYW46KCk9PnhNLEJhbmFuYTooKT0+d00sQmFuZGFnZTooKT0+a00sQmFua25vdGU6KCk9PnpNLEJhbmtub3RlQXJyb3dEb3duOigpPT5fTSxCYW5rbm90ZUFycm93VXA6KCk9PlNNLEJhbmtub3RlWDooKT0+TU0sQmFyQ2hhcnQ6KCk9PlZmLEJhckNoYXJ0MjooKT0+VWYsQmFyQ2hhcnQzOigpPT5xZixCYXJDaGFydDQ6KCk9PkhmLEJhckNoYXJ0QmlnOigpPT5CZixCYXJDaGFydEhvcml6b250YWw6KCk9Pk9mLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzooKT0+UmYsQmFyY29kZTooKT0+Q00sQmFycmVsOigpPT5UTSxCYXNlbGluZTooKT0+JE0sQmF0aDooKT0+RE0sQmF0dGVyeTooKT0+Uk0sQmF0dGVyeUNoYXJnaW5nOigpPT5MTSxCYXR0ZXJ5RnVsbDooKT0+RU0sQmF0dGVyeUxvdzooKT0+UE0sQmF0dGVyeU1lZGl1bTooKT0+SU0sQmF0dGVyeVBsdXM6KCk9PkFNLEJhdHRlcnlXYXJuaW5nOigpPT5OTSxCZWFrZXI6KCk9PkZNLEJlYW46KCk9PkhNLEJlYW5PZmY6KCk9Pk9NLEJlZDooKT0+Vk0sQmVkRG91YmxlOigpPT5CTSxCZWRTaW5nbGU6KCk9PnFNLEJlZWY6KCk9PlVNLEJlZWZPZmY6KCk9PmpNLEJlZXI6KCk9PkdNLEJlZXJPZmY6KCk9PldNLEJlbGw6KCk9PnR6LEJlbGxDaGVjazooKT0+S00sQmVsbERvdDooKT0+WU0sQmVsbEVsZWN0cmljOigpPT5aTSxCZWxsTWludXM6KCk9PlFNLEJlbGxPZmY6KCk9PlhNLEJlbGxQbHVzOigpPT5KTSxCZWxsUmluZzooKT0+ZXosQmV0d2Vlbkhvcml6b25hbEVuZDooKT0+TGYsQmV0d2Vlbkhvcml6b25hbFN0YXJ0OigpPT5FZixCZXR3ZWVuSG9yaXpvbnRhbEVuZDooKT0+TGYsQmV0d2Vlbkhvcml6b250YWxTdGFydDooKT0+RWYsQmV0d2VlblZlcnRpY2FsRW5kOigpPT5heixCZXR3ZWVuVmVydGljYWxTdGFydDooKT0+c3osQmljZXBzRmxleGVkOigpPT5peixCaWtlOigpPT5yeixCaW5hcnk6KCk9Pm96LEJpbm9jdWxhcnM6KCk9Pm56LEJpb2hhemFyZDooKT0+bHosQmlyZDooKT0+Y3osQmlyZGhvdXNlOigpPT5keixCaXRjb2luOigpPT51eixCbGVuZDooKT0+cHosQmxpbmRzOigpPT5oeixCbG9ja3M6KCk9PmZ6LEJsdWV0b290aDooKT0+YnosQmx1ZXRvb3RoQ29ubmVjdGVkOigpPT5teixCbHVldG9vdGhPZmY6KCk9Pmd6LEJsdWV0b290aFNlYXJjaGluZzooKT0+dnosQm9sZDooKT0+eHosQm9sdDooKT0+d3osQm9tYjooKT0+eXosQm9uZTooKT0+a3osQm9vazooKT0+R3osQm9va0E6KCk9PlN6LEJvb2tBbGVydDooKT0+X3osQm9va0F1ZGlvOigpPT5NeixCb29rQ2hlY2s6KCk9Pnp6LEJvb2tDb3B5OigpPT5DeixCb29rRGFzaGVkOigpPT5QZixCb29rRG93bjooKT0+VHosQm9va0hlYWRwaG9uZXM6KCk9PiR6LEJvb2tIZWFydDooKT0+RHosQm9va0ltYWdlOigpPT5MeixCb29rS2V5OigpPT5FeixCb29rTG9jazooKT0+SXosQm9va01hcmtlZDooKT0+UHosQm9va01pbnVzOigpPT5BeixCb29rT3BlbjooKT0+RnosQm9va09wZW5DaGVjazooKT0+TnosQm9va09wZW5UZXh0OigpPT5SeixCb29rUGx1czooKT0+QnosQm9va1NlYXJjaDooKT0+T3osQm9va1RlbXBsYXRlOigpPT5QZixCb29rVGV4dDooKT0+SHosQm9va1R5cGU6KCk9PlZ6LEJvb2tVcDooKT0+anosQm9va1VwMjooKT0+cXosQm9va1VzZXI6KCk9PlV6LEJvb2tYOigpPT5XeixCb29rbWFyazooKT0+SnosQm9va21hcmtDaGVjazooKT0+S3osQm9va21hcmtNaW51czooKT0+WXosQm9va21hcmtPZmY6KCk9Plp6LEJvb2ttYXJrUGx1czooKT0+WHosQm9va21hcmtYOigpPT5ReixCb29tQm94OigpPT5lQyxCb3Q6KCk9PnNDLEJvdE1lc3NhZ2VTcXVhcmU6KCk9PnRDLEJvdE9mZjooKT0+YUMsQm90dGxlV2luZTooKT0+ckMsQm93QXJyb3c6KCk9PmlDLEJveDooKT0+b0MsQm94U2VsZWN0OigpPT5ENSxCb3hlczooKT0+bkMsQnJhY2VzOigpPT5JZixCcmFja2V0czooKT0+bEMsQnJhaW46KCk9PnBDLEJyYWluQ2lyY3VpdDooKT0+Y0MsQnJhaW5Db2c6KCk9PmRDLEJyaWNrV2FsbDooKT0+ZkMsQnJpY2tXYWxsRmlyZTooKT0+dUMsQnJpY2tXYWxsU2hpZWxkOigpPT5oQyxCcmllZmNhc2U6KCk9PnZDLEJyaWVmY2FzZUJ1c2luZXNzOigpPT5tQyxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9PmdDLEJyaWVmY2FzZU1lZGljYWw6KCk9PmJDLEJyaW5nVG9Gcm9udDooKT0+eEMsQnJ1c2g6KCk9PndDLEJydXNoQ2xlYW5pbmc6KCk9PnlDLEJ1YmJsZXM6KCk9PlNDLEJ1ZzooKT0+TUMsQnVnT2ZmOigpPT5rQyxCdWdQbGF5OigpPT5fQyxCdWlsZGluZzooKT0+ekMsQnVpbGRpbmcyOigpPT5DQyxCdXM6KCk9PiRDLEJ1c0Zyb250OigpPT5UQyxDYWJsZTooKT0+REMsQ2FibGVDYXI6KCk9PkxDLENha2U6KCk9PlBDLENha2VTbGljZTooKT0+RUMsQ2FsY3VsYXRvcjooKT0+QUMsQ2FsZW5kYXI6KCk9PnRULENhbGVuZGFyMTooKT0+SUMsQ2FsZW5kYXJBcnJvd0Rvd246KCk9Pk5DLENhbGVuZGFyQXJyb3dVcDooKT0+UkMsQ2FsZW5kYXJDaGVjazooKT0+RkMsQ2FsZW5kYXJDaGVjazI6KCk9Pk9DLENhbGVuZGFyQ2xvY2s6KCk9PkJDLENhbGVuZGFyQ29nOigpPT5IQyxDYWxlbmRhckRheXM6KCk9PnFDLENhbGVuZGFyRm9sZDooKT0+akMsQ2FsZW5kYXJIZWFydDooKT0+VUMsQ2FsZW5kYXJNaW51czooKT0+R0MsQ2FsZW5kYXJNaW51czI6KCk9PlZDLENhbGVuZGFyT2ZmOigpPT5XQyxDYWxlbmRhclBsdXM6KCk9PlpDLENhbGVuZGFyUGx1czI6KCk9PktDLENhbGVuZGFyUmFuZ2U6KCk9PllDLENhbGVuZGFyU2VhcmNoOigpPT5YQyxDYWxlbmRhclN5bmM6KCk9PlFDLENhbGVuZGFyWDooKT0+ZVQsQ2FsZW5kYXJYMjooKT0+SkMsQ2FsZW5kYXJzOigpPT5hVCxDYW1lcmE6KCk9PmlULENhbWVyYU9mZjooKT0+c1QsQ2FuZGxlc3RpY2tDaGFydDooKT0+RmYsQ2FuZHk6KCk9Pm9ULENhbmR5Q2FuZTooKT0+clQsQ2FuZHlPZmY6KCk9Pm5ULENhbm5hYmlzOigpPT5jVCxDYW5uYWJpc09mZjooKT0+bFQsQ2FwdGlvbnM6KCk9PkFmLENhcHRpb25zT2ZmOigpPT5kVCxDYXI6KCk9PnBULENhckZyb250OigpPT51VCxDYXJUYXhpRnJvbnQ6KCk9PmhULENhcmF2YW46KCk9PmZULENhcmRTaW06KCk9Pm1ULENhcnJvdDooKT0+Z1QsQ2FzZUxvd2VyOigpPT5iVCxDYXNlU2Vuc2l0aXZlOigpPT52VCxDYXNlVXBwZXI6KCk9PnhULENhc3NldHRlVGFwZTooKT0+eVQsQ2FzdDooKT0+d1QsQ2FzdGxlOigpPT5rVCxDYXQ6KCk9PlNULENjdHY6KCk9Pk1ULENjdHZPZmY6KCk9Pl9ULENoYXJ0QXJlYTooKT0+TmYsQ2hhcnRCYXI6KCk9Pk9mLENoYXJ0QmFyQmlnOigpPT5SZixDaGFydEJhckRlY3JlYXNpbmc6KCk9PnpULENoYXJ0QmFySW5jcmVhc2luZzooKT0+Q1QsQ2hhcnRCYXJTdGFja2VkOigpPT5UVCxDaGFydENhbmRsZXN0aWNrOigpPT5GZixDaGFydENvbHVtbjooKT0+cWYsQ2hhcnRDb2x1bW5CaWc6KCk9PkJmLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+JFQsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5IZixDaGFydENvbHVtblN0YWNrZWQ6KCk9PkRULENoYXJ0R2FudHQ6KCk9PkxULENoYXJ0TGluZTooKT0+amYsQ2hhcnROZXR3b3JrOigpPT5FVCxDaGFydE5vQXhlc0NvbHVtbjooKT0+VWYsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT5QVCxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9PlZmLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9PklULENoYXJ0Tm9BeGVzR2FudHQ6KCk9PldmLENoYXJ0UGllOigpPT5HZixDaGFydFNjYXR0ZXI6KCk9PktmLENoYXJ0U3BsaW5lOigpPT5BVCxDaGVjazooKT0+T1QsQ2hlY2tDaGVjazooKT0+TlQsQ2hlY2tDaXJjbGU6KCk9PmltLENoZWNrQ2lyY2xlMjooKT0+cm0sQ2hlY2tMaW5lOigpPT5SVCxDaGVja1NxdWFyZTooKT0+dzUsQ2hlY2tTcXVhcmUyOigpPT5rNSxDaGVmSGF0OigpPT5GVCxDaGVycnk6KCk9PkJULENoZXNzQmlzaG9wOigpPT5xVCxDaGVzc0tpbmc6KCk9PkhULENoZXNzS25pZ2h0OigpPT5qVCxDaGVzc1Bhd246KCk9PlZULENoZXNzUXVlZW46KCk9PkdULENoZXNzUm9vazooKT0+VVQsQ2hldnJvbkRvd246KCk9PldULENoZXZyb25Eb3duQ2lyY2xlOigpPT5ubSxDaGV2cm9uRG93blNxdWFyZTooKT0+UzUsQ2hldnJvbkZpcnN0OigpPT5LVCxDaGV2cm9uTGFzdDooKT0+WVQsQ2hldnJvbkxlZnQ6KCk9PlpULENoZXZyb25MZWZ0Q2lyY2xlOigpPT5vbSxDaGV2cm9uTGVmdFNxdWFyZTooKT0+XzUsQ2hldnJvblJpZ2h0OigpPT5YVCxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PmxtLENoZXZyb25SaWdodFNxdWFyZTooKT0+TTUsQ2hldnJvblVwOigpPT5RVCxDaGV2cm9uVXBDaXJjbGU6KCk9PmNtLENoZXZyb25VcFNxdWFyZTooKT0+ejUsQ2hldnJvbnNEb3duOigpPT5lJCxDaGV2cm9uc0Rvd25VcDooKT0+SlQsQ2hldnJvbnNMZWZ0OigpPT5zJCxDaGV2cm9uc0xlZnRSaWdodDooKT0+YSQsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+dCQsQ2hldnJvbnNSaWdodDooKT0+ciQsQ2hldnJvbnNSaWdodExlZnQ6KCk9PmkkLENoZXZyb25zVXA6KCk9Pm8kLENoZXZyb25zVXBEb3duOigpPT5uJCxDaHVyY2g6KCk9PmwkLENpZ2FyZXR0ZTooKT0+ZCQsQ2lnYXJldHRlT2ZmOigpPT5jJCxDaXJjbGU6KCk9Pk0kLENpcmNsZUFsZXJ0OigpPT5ZZixDaXJjbGVBcnJvd0Rvd246KCk9PlpmLENpcmNsZUFycm93TGVmdDooKT0+WGYsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+UWYsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9PkpmLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5lbSxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PnRtLENpcmNsZUFycm93UmlnaHQ6KCk9PmFtLENpcmNsZUFycm93VXA6KCk9PnNtLENpcmNsZUNoZWNrOigpPT5ybSxDaXJjbGVDaGVja0JpZzooKT0+aW0sQ2lyY2xlQ2hldnJvbkRvd246KCk9Pm5tLENpcmNsZUNoZXZyb25MZWZ0OigpPT5vbSxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PmxtLENpcmNsZUNoZXZyb25VcDooKT0+Y20sQ2lyY2xlRGFzaGVkOigpPT51JCxDaXJjbGVEaXZpZGU6KCk9PmRtLENpcmNsZURvbGxhclNpZ246KCk9PnAkLENpcmNsZURvdDooKT0+bSQsQ2lyY2xlRG90RGFzaGVkOigpPT5oJCxDaXJjbGVFbGxpcHNpczooKT0+ZiQsQ2lyY2xlRXF1YWw6KCk9PmckLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9PmIkLENpcmNsZUZhZGluZ1BsdXM6KCk9PnYkLENpcmNsZUdhdWdlOigpPT51bSxDaXJjbGVIZWxwOigpPT5qMCxDaXJjbGVNaW51czooKT0+cG0sQ2lyY2xlT2ZmOigpPT54JCxDaXJjbGVQYXJraW5nOigpPT5mbSxDaXJjbGVQYXJraW5nT2ZmOigpPT5obSxDaXJjbGVQYXVzZTooKT0+bW0sQ2lyY2xlUGVyY2VudDooKT0+Z20sQ2lyY2xlUGlsZTooKT0+eSQsQ2lyY2xlUGxheTooKT0+Ym0sQ2lyY2xlUGx1czooKT0+dm0sQ2lyY2xlUG91bmRTdGVybGluZzooKT0+dyQsQ2lyY2xlUG93ZXI6KCk9PnhtLENpcmNsZVF1ZXN0aW9uTWFyazooKT0+ajAsQ2lyY2xlU2xhc2g6KCk9PmskLENpcmNsZVNsYXNoMjooKT0+eW0sQ2lyY2xlU2xhc2hlZDooKT0+eW0sQ2lyY2xlU21hbGw6KCk9PlMkLENpcmNsZVN0YXI6KCk9Pl8kLENpcmNsZVN0b3A6KCk9PndtLENpcmNsZVVzZXI6KCk9PlNtLENpcmNsZVVzZXJSb3VuZDooKT0+a20sQ2lyY2xlWDooKT0+X20sQ2lyY3VpdEJvYXJkOigpPT56JCxDaXRydXM6KCk9PkMkLENsYXBwZXJib2FyZDooKT0+VCQsQ2xpcGJvYXJkOigpPT5GJCxDbGlwYm9hcmRDaGVjazooKT0+JCQsQ2xpcGJvYXJkQ2xvY2s6KCk9PkQkLENsaXBib2FyZENvcHk6KCk9PkwkLENsaXBib2FyZEVkaXQ6KCk9PnptLENsaXBib2FyZExpc3Q6KCk9PkUkLENsaXBib2FyZE1pbnVzOigpPT5QJCxDbGlwYm9hcmRQYXN0ZTooKT0+SSQsQ2xpcGJvYXJkUGVuOigpPT56bSxDbGlwYm9hcmRQZW5MaW5lOigpPT5NbSxDbGlwYm9hcmRQbHVzOigpPT5BJCxDbGlwYm9hcmRTaWduYXR1cmU6KCk9Pk1tLENsaXBib2FyZFR5cGU6KCk9Pk4kLENsaXBib2FyZFg6KCk9PlIkLENsb2NrOigpPT5zRCxDbG9jazE6KCk9Pk8kLENsb2NrMTA6KCk9PkIkLENsb2NrMTE6KCk9PkgkLENsb2NrMTI6KCk9PnEkLENsb2NrMjooKT0+aiQsQ2xvY2szOigpPT5WJCxDbG9jazQ6KCk9PlUkLENsb2NrNTooKT0+VyQsQ2xvY2s2OigpPT5HJCxDbG9jazc6KCk9PlkkLENsb2NrODooKT0+SyQsQ2xvY2s5OigpPT5aJCxDbG9ja0FsZXJ0OigpPT5YJCxDbG9ja0Fycm93RG93bjooKT0+USQsQ2xvY2tBcnJvd1VwOigpPT5KJCxDbG9ja0NoZWNrOigpPT5lRCxDbG9ja0ZhZGluZzooKT0+dEQsQ2xvY2tQbHVzOigpPT5hRCxDbG9zZWRDYXB0aW9uOigpPT5pRCxDbG91ZDooKT0+a0QsQ2xvdWRBbGVydDooKT0+ckQsQ2xvdWRCYWNrdXA6KCk9Pm9ELENsb3VkQ2hlY2s6KCk9Pm5ELENsb3VkQ29nOigpPT5sRCxDbG91ZERvd25sb2FkOigpPT5DbSxDbG91ZERyaXp6bGU6KCk9PmNELENsb3VkRm9nOigpPT51RCxDbG91ZEhhaWw6KCk9PmRELENsb3VkTGlnaHRuaW5nOigpPT5wRCxDbG91ZE1vb246KCk9PmZELENsb3VkTW9vblJhaW46KCk9PmhELENsb3VkT2ZmOigpPT5nRCxDbG91ZFJhaW46KCk9PmJELENsb3VkUmFpbldpbmQ6KCk9Pm1ELENsb3VkU25vdzooKT0+dkQsQ2xvdWRTdW46KCk9PndELENsb3VkU3VuUmFpbjooKT0+eEQsQ2xvdWRTeW5jOigpPT55RCxDbG91ZFVwbG9hZDooKT0+VG0sQ2xvdWR5OigpPT5TRCxDbG92ZXI6KCk9Pl9ELENsdWI6KCk9Pk1ELENvZGU6KCk9PnpELENvZGUyOigpPT4kbSxDb2RlU3F1YXJlOigpPT5DNSxDb2RlWG1sOigpPT4kbSxDb2ZmZWU6KCk9PkNELENvZzooKT0+VEQsQ29pbnM6KCk9PiRELENvbHVtbnM6KCk9PkRtLENvbHVtbnMyOigpPT5EbSxDb2x1bW5zMzooKT0+TG0sQ29sdW1uczNDb2c6KCk9PlYwLENvbHVtbnM0OigpPT5ERCxDb2x1bW5zU2V0dGluZ3M6KCk9PlYwLENvbWJpbmU6KCk9PkxELENvbW1hbmQ6KCk9PkVELENvbXBhc3M6KCk9PlBELENvbXBvbmVudDooKT0+SUQsQ29tcHV0ZXI6KCk9PkFELENvbmNpZXJnZUJlbGw6KCk9Pk5ELENvbmU6KCk9PlJELENvbnN0cnVjdGlvbjooKT0+T0QsQ29udGFjdDooKT0+RkQsQ29udGFjdDI6KCk9PkVtLENvbnRhY3RSb3VuZDooKT0+RW0sQ29udGFpbmVyOigpPT5CRCxDb250cmFzdDooKT0+SEQsQ29va2llOigpPT5xRCxDb29raW5nUG90OigpPT5qRCxDb3B5OigpPT5ZRCxDb3B5Q2hlY2s6KCk9PlZELENvcHlNaW51czooKT0+VUQsQ29weVBsdXM6KCk9PldELENvcHlTbGFzaDooKT0+R0QsQ29weVg6KCk9PktELENvcHlsZWZ0OigpPT5aRCxDb3B5cmlnaHQ6KCk9PlhELENvcm5lckRvd25MZWZ0OigpPT5RRCxDb3JuZXJEb3duUmlnaHQ6KCk9PkpELENvcm5lckxlZnREb3duOigpPT5lTCxDb3JuZXJMZWZ0VXA6KCk9PnRMLENvcm5lclJpZ2h0RG93bjooKT0+YUwsQ29ybmVyUmlnaHRVcDooKT0+c0wsQ29ybmVyVXBMZWZ0OigpPT5pTCxDb3JuZXJVcFJpZ2h0OigpPT5yTCxDcHU6KCk9Pm9MLENyZWF0aXZlQ29tbW9uczooKT0+bkwsQ3JlZGl0Q2FyZDooKT0+bEwsQ3JvaXNzYW50OigpPT5jTCxDcm9wOigpPT5kTCxDcm9zczooKT0+dUwsQ3Jvc3NoYWlyOigpPT5wTCxDcm93bjooKT0+aEwsQ3Vib2lkOigpPT5mTCxDdXBTb2RhOigpPT5tTCxDdXJseUJyYWNlczooKT0+SWYsQ3VycmVuY3k6KCk9PmdMLEN5bGluZGVyOigpPT5iTCxEYW06KCk9PnZMLERhdGFiYXNlOigpPT5rTCxEYXRhYmFzZUJhY2t1cDooKT0+eEwsRGF0YWJhc2VTZWFyY2g6KCk9PndMLERhdGFiYXNlWmFwOigpPT55TCxEZWNpbWFsc0Fycm93TGVmdDooKT0+U0wsRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5fTCxEZWxldGU6KCk9Pk1MLERlc3NlcnQ6KCk9PnpMLERpYW1ldGVyOigpPT5DTCxEaWFtb25kOigpPT5ETCxEaWFtb25kTWludXM6KCk9PlRMLERpYW1vbmRQZXJjZW50OigpPT5QbSxEaWFtb25kUGx1czooKT0+JEwsRGljZTE6KCk9PkxMLERpY2UyOigpPT5FTCxEaWNlMzooKT0+UEwsRGljZTQ6KCk9PklMLERpY2U1OigpPT5BTCxEaWNlNjooKT0+TkwsRGljZXM6KCk9Pk9MLERpZmY6KCk9PlJMLERpc2M6KCk9PmpMLERpc2MyOigpPT5GTCxEaXNjMzooKT0+QkwsRGlzY0FsYnVtOigpPT5ITCxEaXZpZGU6KCk9PnFMLERpdmlkZUNpcmNsZTooKT0+ZG0sRGl2aWRlU3F1YXJlOigpPT5FNSxEbmE6KCk9PlVMLERuYU9mZjooKT0+VkwsRG9jazooKT0+V0wsRG9nOigpPT5LTCxEb2xsYXJTaWduOigpPT5HTCxEb251dDooKT0+WUwsRG9vckNsb3NlZDooKT0+WEwsRG9vckNsb3NlZExvY2tlZDooKT0+WkwsRG9vck9wZW46KCk9PlFMLERvdDooKT0+SkwsRG90U3F1YXJlOigpPT5MNSxEb3dubG9hZDooKT0+ZUUsRG93bmxvYWRDbG91ZDooKT0+Q20sRHJhZnRpbmdDb21wYXNzOigpPT50RSxEcmFtYTooKT0+c0UsRHJpbGw6KCk9PmFFLERyb25lOigpPT5pRSxEcm9wbGV0OigpPT5yRSxEcm9wbGV0T2ZmOigpPT5vRSxEcm9wbGV0czooKT0+bkUsRHJ1bTooKT0+bEUsRHJ1bXN0aWNrOigpPT5jRSxEdW1iYmVsbDooKT0+ZEUsRWFyOigpPT5wRSxFYXJPZmY6KCk9PnVFLEVhcnRoOigpPT5JbSxFYXJ0aExvY2s6KCk9PmhFLEVjbGlwc2U6KCk9PmZFLEVkaXQ6KCk9PlYxLEVkaXQyOigpPT5XNixFZGl0MzooKT0+VTYsRWdnOigpPT5nRSxFZ2dGcmllZDooKT0+bUUsRWdnT2ZmOigpPT5iRSxFbGxpcHNlOigpPT52RSxFbGxpcHNpczooKT0+Tm0sRWxsaXBzaXNWZXJ0aWNhbDooKT0+QW0sRXF1YWw6KCk9PndFLEVxdWFsQXBwcm94aW1hdGVseTooKT0+eEUsRXF1YWxOb3Q6KCk9PnlFLEVxdWFsU3F1YXJlOigpPT5QNSxFcmFzZXI6KCk9PmtFLEV0aGVybmV0UG9ydDooKT0+U0UsRXVybzooKT0+X0UsRXZDaGFyZ2VyOigpPT5NRSxFeHBhbmQ6KCk9PnpFLEV4dGVybmFsTGluazooKT0+Q0UsRXllOigpPT5ERSxFeWVDbG9zZWQ6KCk9PlRFLEV5ZU9mZjooKT0+JEUsRmFjdG9yeTooKT0+TEUsRmFuOigpPT5FRSxGYXN0Rm9yd2FyZDooKT0+UEUsRmVhdGhlcjooKT0+SUUsRmVuY2U6KCk9Pk5FLEZlcnJpc1doZWVsOigpPT5BRSxGaWxlOigpPT51UCxGaWxlQXJjaGl2ZTooKT0+UkUsRmlsZUF1ZGlvOigpPT5VMCxGaWxlQXVkaW8yOigpPT5VMCxGaWxlQXhpczNEOigpPT5SbSxGaWxlQXhpczNkOigpPT5SbSxGaWxlQmFkZ2U6KCk9Pk9tLEZpbGVCYWRnZTI6KCk9Pk9tLEZpbGVCYXJDaGFydDooKT0+Qm0sRmlsZUJhckNoYXJ0MjooKT0+cW0sRmlsZUJveDooKT0+T0UsRmlsZUJyYWNlczooKT0+Rm0sRmlsZUJyYWNlc0Nvcm5lcjooKT0+SG0sRmlsZUNoYXJ0Q29sdW1uOigpPT5xbSxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5CbSxGaWxlQ2hhcnRMaW5lOigpPT5qbSxGaWxlQ2hhcnRQaWU6KCk9PlZtLEZpbGVDaGVjazooKT0+RkUsRmlsZUNoZWNrMjooKT0+VW0sRmlsZUNoZWNrQ29ybmVyOigpPT5VbSxGaWxlQ2xvY2s6KCk9PkJFLEZpbGVDb2RlOigpPT5IRSxGaWxlQ29kZTI6KCk9PldtLEZpbGVDb2RlQ29ybmVyOigpPT5XbSxGaWxlQ29nOigpPT5HbSxGaWxlQ29nMjooKT0+R20sRmlsZURpZmY6KCk9PnFFLEZpbGVEaWdpdDooKT0+akUsRmlsZURvd246KCk9PlZFLEZpbGVFZGl0OigpPT5lNixGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+S20sRmlsZUhlYWRwaG9uZTooKT0+VTAsRmlsZUhlYXJ0OigpPT5VRSxGaWxlSW1hZ2U6KCk9PldFLEZpbGVJbnB1dDooKT0+R0UsRmlsZUpzb246KCk9PkZtLEZpbGVKc29uMjooKT0+SG0sRmlsZUtleTooKT0+WW0sRmlsZUtleTI6KCk9PlltLEZpbGVMaW5lQ2hhcnQ6KCk9PmptLEZpbGVMb2NrOigpPT5abSxGaWxlTG9jazI6KCk9PlptLEZpbGVNaW51czooKT0+S0UsRmlsZU1pbnVzMjooKT0+WG0sRmlsZU1pbnVzQ29ybmVyOigpPT5YbSxGaWxlTXVzaWM6KCk9PllFLEZpbGVPdXRwdXQ6KCk9PlpFLEZpbGVQZW46KCk9PmU2LEZpbGVQZW5MaW5lOigpPT5RbSxGaWxlUGllQ2hhcnQ6KCk9PlZtLEZpbGVQbGF5OigpPT5KbSxGaWxlUGx1czooKT0+WEUsRmlsZVBsdXMyOigpPT50NixGaWxlUGx1c0Nvcm5lcjooKT0+dDYsRmlsZVF1ZXN0aW9uOigpPT5hNixGaWxlUXVlc3Rpb25NYXJrOigpPT5hNixGaWxlU2NhbjooKT0+UUUsRmlsZVNlYXJjaDooKT0+SkUsRmlsZVNlYXJjaDI6KCk9PnM2LEZpbGVTZWFyY2hDb3JuZXI6KCk9PnM2LEZpbGVTaWduYWw6KCk9Pmk2LEZpbGVTaWduYXR1cmU6KCk9PlFtLEZpbGVTbGlkZXJzOigpPT5lUCxGaWxlU3ByZWFkc2hlZXQ6KCk9PnRQLEZpbGVTdGFjazooKT0+c1AsRmlsZVN5bWxpbms6KCk9PmFQLEZpbGVUZXJtaW5hbDooKT0+aVAsRmlsZVRleHQ6KCk9PnJQLEZpbGVUeXBlOigpPT5vUCxGaWxlVHlwZTI6KCk9PnI2LEZpbGVUeXBlQ29ybmVyOigpPT5yNixGaWxlVXA6KCk9Pm5QLEZpbGVVc2VyOigpPT5sUCxGaWxlVmlkZW86KCk9PkptLEZpbGVWaWRlbzI6KCk9Pm82LEZpbGVWaWRlb0NhbWVyYTooKT0+bzYsRmlsZVZvbHVtZTooKT0+Y1AsRmlsZVZvbHVtZTI6KCk9Pmk2LEZpbGVXYXJuaW5nOigpPT5LbSxGaWxlWDooKT0+ZFAsRmlsZVgyOigpPT5uNixGaWxlWENvcm5lcjooKT0+bjYsRmlsZXM6KCk9PmhQLEZpbG06KCk9PnBQLEZpbHRlcjooKT0+cDYsRmlsdGVyWDooKT0+dTYsRmluZ2VycHJpbnQ6KCk9Pmw2LEZpbmdlcnByaW50UGF0dGVybjooKT0+bDYsRmlyZUV4dGluZ3Vpc2hlcjooKT0+ZlAsRmlzaDooKT0+YlAsRmlzaE9mZjooKT0+Z1AsRmlzaFN5bWJvbDooKT0+bVAsRmlzaGluZ0hvb2s6KCk9PnZQLEZpc2hpbmdSb2Q6KCk9PnlQLEZsYWc6KCk9PlNQLEZsYWdPZmY6KCk9PnhQLEZsYWdUcmlhbmdsZUxlZnQ6KCk9PndQLEZsYWdUcmlhbmdsZVJpZ2h0OigpPT5rUCxGbGFtZTooKT0+X1AsRmxhbWVLaW5kbGluZzooKT0+elAsRmxhc2hsaWdodDooKT0+Q1AsRmxhc2hsaWdodE9mZjooKT0+TVAsRmxhc2tDb25pY2FsOigpPT4kUCxGbGFza0NvbmljYWxPZmY6KCk9PlRQLEZsYXNrUm91bmQ6KCk9PkRQLEZsaXBIb3Jpem9udGFsOigpPT54NSxGbGlwSG9yaXpvbnRhbDI6KCk9PkxQLEZsaXBWZXJ0aWNhbDooKT0+eTUsRmxpcFZlcnRpY2FsMjooKT0+RVAsRmxvd2VyOigpPT5OUCxGbG93ZXIyOigpPT5QUCxGb2N1czooKT0+SVAsRm9sZEhvcml6b250YWw6KCk9PkFQLEZvbGRWZXJ0aWNhbDooKT0+RlAsRm9sZGVyOigpPT5wSSxGb2xkZXJBcmNoaXZlOigpPT5SUCxGb2xkZXJCb29rbWFyazooKT0+T1AsRm9sZGVyQ2hlY2s6KCk9PkJQLEZvbGRlckNsb2NrOigpPT5qUCxGb2xkZXJDbG9zZWQ6KCk9PkhQLEZvbGRlckNvZGU6KCk9PnFQLEZvbGRlckNvZzooKT0+YzYsRm9sZGVyQ29nMjooKT0+YzYsRm9sZGVyRG90OigpPT5WUCxGb2xkZXJEb3duOigpPT5VUCxGb2xkZXJFZGl0OigpPT5kNixGb2xkZXJHaXQ6KCk9PkdQLEZvbGRlckdpdDI6KCk9PldQLEZvbGRlckhlYXJ0OigpPT5LUCxGb2xkZXJJbnB1dDooKT0+WFAsRm9sZGVyS2FuYmFuOigpPT5ZUCxGb2xkZXJLZXk6KCk9PlpQLEZvbGRlckxvY2s6KCk9PlFQLEZvbGRlck1pbnVzOigpPT50SSxGb2xkZXJPcGVuOigpPT5lSSxGb2xkZXJPcGVuRG90OigpPT5KUCxGb2xkZXJPdXRwdXQ6KCk9PmFJLEZvbGRlclBlbjooKT0+ZDYsRm9sZGVyUGx1czooKT0+c0ksRm9sZGVyUm9vdDooKT0+aUksRm9sZGVyU2VhcmNoOigpPT5vSSxGb2xkZXJTZWFyY2gyOigpPT5ySSxGb2xkZXJTeW1saW5rOigpPT5uSSxGb2xkZXJTeW5jOigpPT5jSSxGb2xkZXJUcmVlOigpPT5sSSxGb2xkZXJVcDooKT0+ZEksRm9sZGVyWDooKT0+dUksRm9sZGVyczooKT0+aEksRm9vdHByaW50czooKT0+ZkksRm9ya0tuaWZlOigpPT5TOCxGb3JrS25pZmVDcm9zc2VkOigpPT5rOCxGb3JrbGlmdDooKT0+bUksRm9ybTooKT0+Z0ksRm9ybUlucHV0OigpPT5LNixGb3J3YXJkOigpPT5iSSxGcmFtZTooKT0+dkksRnJvd246KCk9PnhJLEZ1ZWw6KCk9PnlJLEZ1bGxzY3JlZW46KCk9PndJLEZ1bmN0aW9uU3F1YXJlOigpPT5JNSxGdW5uZWw6KCk9PnA2LEZ1bm5lbFBsdXM6KCk9PmtJLEZ1bm5lbFg6KCk9PnU2LEdhbGxlcnlIb3Jpem9udGFsOigpPT5fSSxHYWxsZXJ5SG9yaXpvbnRhbEVuZDooKT0+U0ksR2FsbGVyeVRodW1ibmFpbHM6KCk9Pk1JLEdhbGxlcnlWZXJ0aWNhbDooKT0+Q0ksR2FsbGVyeVZlcnRpY2FsRW5kOigpPT56SSxHYW1lcGFkOigpPT5ESSxHYW1lcGFkMjooKT0+VEksR2FtZXBhZERpcmVjdGlvbmFsOigpPT4kSSxHYW50dENoYXJ0OigpPT5XZixHYW50dENoYXJ0U3F1YXJlOigpPT5ZMCxHYXVnZTooKT0+TEksR2F1Z2VDaXJjbGU6KCk9PnVtLEdhdmVsOigpPT5FSSxHZW06KCk9PlBJLEdlb3JnaWFuTGFyaTooKT0+QUksR2hvc3Q6KCk9PklJLEdpZnQ6KCk9PlJJLEdpdEJyYW5jaDooKT0+RkksR2l0QnJhbmNoTWludXM6KCk9Pk5JLEdpdEJyYW5jaFBsdXM6KCk9Pk9JLEdpdENvbW1pdDooKT0+aDYsR2l0Q29tbWl0SG9yaXpvbnRhbDooKT0+aDYsR2l0Q29tbWl0VmVydGljYWw6KCk9PkJJLEdpdENvbXBhcmU6KCk9PnFJLEdpdENvbXBhcmVBcnJvd3M6KCk9PkhJLEdpdEZvcms6KCk9PmpJLEdpdEdyYXBoOigpPT5WSSxHaXRNZXJnZTooKT0+VUksR2l0TWVyZ2VDb25mbGljdDooKT0+V0ksR2l0UHVsbFJlcXVlc3Q6KCk9PlFJLEdpdFB1bGxSZXF1ZXN0QXJyb3c6KCk9PkdJLEdpdFB1bGxSZXF1ZXN0Q2xvc2VkOigpPT5LSSxHaXRQdWxsUmVxdWVzdENyZWF0ZTooKT0+WkksR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzooKT0+WUksR2l0UHVsbFJlcXVlc3REcmFmdDooKT0+WEksR2xhc3NXYXRlcjooKT0+SkksR2xhc3NlczooKT0+ZUEsR2xvYmU6KCk9PmlBLEdsb2JlMjooKT0+SW0sR2xvYmVMb2NrOigpPT50QSxHbG9iZU9mZjooKT0+c0EsR2xvYmVYOigpPT5hQSxHb2FsOigpPT5yQSxHcHU6KCk9Pm9BLEdyYWI6KCk9PnY2LEdyYWR1YXRpb25DYXA6KCk9Pm5BLEdyYXBlOigpPT5sQSxHcmlkOigpPT5XMCxHcmlkMlgyOigpPT5iNixHcmlkMlgyQ2hlY2s6KCk9PmY2LEdyaWQyWDJQbHVzOigpPT5tNixHcmlkMlgyWDooKT0+ZzYsR3JpZDJ4MjooKT0+YjYsR3JpZDJ4MkNoZWNrOigpPT5mNixHcmlkMngyUGx1czooKT0+bTYsR3JpZDJ4Mlg6KCk9Pmc2LEdyaWQzWDM6KCk9PlcwLEdyaWQzeDI6KCk9PmNBLEdyaWQzeDM6KCk9PlcwLEdyaXA6KCk9PnBBLEdyaXBIb3Jpem9udGFsOigpPT5kQSxHcmlwVmVydGljYWw6KCk9PnVBLEdyb3VwOigpPT5oQSxHdWl0YXI6KCk9PmZBLEhhbTooKT0+bUEsSGFtYnVyZ2VyOigpPT5nQSxIYW1tZXI6KCk9PmJBLEhhbmQ6KCk9PlNBLEhhbmRDb2luczooKT0+dkEsSGFuZEZpc3Q6KCk9PnhBLEhhbmRHcmFiOigpPT52NixIYW5kSGVhcnQ6KCk9PnlBLEhhbmRIZWxwaW5nOigpPT54NixIYW5kTWV0YWw6KCk9PndBLEhhbmRQbGF0dGVyOigpPT5rQSxIYW5kYmFnOigpPT5fQSxIYW5kc2hha2U6KCk9Pk1BLEhhcmREcml2ZTooKT0+JEEsSGFyZERyaXZlRG93bmxvYWQ6KCk9PnpBLEhhcmREcml2ZVVwbG9hZDooKT0+Q0EsSGFyZEhhdDooKT0+VEEsSGFzaDooKT0+REEsSGF0R2xhc3NlczooKT0+TEEsSGF6ZTooKT0+RUEsSGQ6KCk9PlBBLEhkbWlQb3J0OigpPT5JQSxIZWFkaW5nOigpPT5IQSxIZWFkaW5nMTooKT0+QUEsSGVhZGluZzI6KCk9Pk5BLEhlYWRpbmczOigpPT5SQSxIZWFkaW5nNDooKT0+T0EsSGVhZGluZzU6KCk9PkZBLEhlYWRpbmc2OigpPT5CQSxIZWFkcGhvbmVPZmY6KCk9PnFBLEhlYWRwaG9uZXM6KCk9PlZBLEhlYWRzZXQ6KCk9PmpBLEhlYXJ0OigpPT5RQSxIZWFydENyYWNrOigpPT5VQSxIZWFydEhhbmRzaGFrZTooKT0+V0EsSGVhcnRNaW51czooKT0+R0EsSGVhcnRPZmY6KCk9PktBLEhlYXJ0UGx1czooKT0+WUEsSGVhcnRQdWxzZTooKT0+WkEsSGVhcnRYOigpPT5YQSxIZWF0ZXI6KCk9PkpBLEhlbGljb3B0ZXI6KCk9PmVOLEhlbHBDaXJjbGU6KCk9PmowLEhlbHBpbmdIYW5kOigpPT54NixIZXhhZ29uOigpPT50TixIaWdobGlnaHRlcjooKT0+YU4sSGlzdG9yeTooKT0+c04sSG9tZTooKT0+eTYsSG9wOigpPT5pTixIb3BPZmY6KCk9PnJOLEhvc3BpdGFsOigpPT5vTixIb3RlbDooKT0+bk4sSG91cmdsYXNzOigpPT5sTixIb3VzZTooKT0+eTYsSG91c2VIZWFydDooKT0+Y04sSG91c2VQbHVnOigpPT5kTixIb3VzZVBsdXM6KCk9PnBOLEhvdXNlV2lmaTooKT0+dU4sSWNlQ3JlYW06KCk9Pms2LEljZUNyZWFtMjooKT0+dzYsSWNlQ3JlYW1Cb3dsOigpPT53NixJY2VDcmVhbUNvbmU6KCk9Pms2LElkQ2FyZDooKT0+Zk4sSWRDYXJkTGFueWFyZDooKT0+aE4sSW1hZ2U6KCk9PmtOLEltYWdlRG93bjooKT0+bU4sSW1hZ2VNaW51czooKT0+Z04sSW1hZ2VPZmY6KCk9PmJOLEltYWdlUGxheTooKT0+dk4sSW1hZ2VQbHVzOigpPT54TixJbWFnZVVwOigpPT55TixJbWFnZVVwc2NhbGU6KCk9PndOLEltYWdlczooKT0+U04sSW1wb3J0OigpPT5fTixJbmJveDooKT0+TU4sSW5kZW50OigpPT5LMCxJbmRlbnREZWNyZWFzZTooKT0+RzAsSW5kZW50SW5jcmVhc2U6KCk9PkswLEluZGlhblJ1cGVlOigpPT56TixJbmZpbml0eTooKT0+Q04sSW5mbzooKT0+VE4sSW5zcGVjdDooKT0+QjUsSW5zcGVjdGlvblBhbmVsOigpPT4kTixJdGFsaWM6KCk9PkROLEl0ZXJhdGlvbkNjdzooKT0+TE4sSXRlcmF0aW9uQ3c6KCk9PkVOLEphcGFuZXNlWWVuOigpPT5QTixKb3lzdGljazooKT0+SU4sS2FuYmFuOigpPT5BTixLYW5iYW5TcXVhcmU6KCk9PlI1LEthbmJhblNxdWFyZURhc2hlZDooKT0+VDUsS2F5YWs6KCk9Pk5OLEtleTooKT0+Rk4sS2V5Um91bmQ6KCk9Pk9OLEtleVNxdWFyZTooKT0+Uk4sS2V5Ym9hcmQ6KCk9PnFOLEtleWJvYXJkTXVzaWM6KCk9PkJOLEtleWJvYXJkT2ZmOigpPT5ITixMYW1wOigpPT5LTixMYW1wQ2VpbGluZzooKT0+ak4sTGFtcERlc2s6KCk9PlZOLExhbXBGbG9vcjooKT0+VU4sTGFtcFdhbGxEb3duOigpPT5XTixMYW1wV2FsbFVwOigpPT5HTixMYW5kUGxvdDooKT0+WU4sTGFuZG1hcms6KCk9PlpOLExhbmd1YWdlczooKT0+WE4sTGFwdG9wOigpPT5KTixMYXB0b3AyOigpPT5TNixMYXB0b3BNaW5pbWFsOigpPT5TNixMYXB0b3BNaW5pbWFsQ2hlY2s6KCk9PlFOLExhc3NvOigpPT5hUixMYXNzb1NlbGVjdDooKT0+ZVIsTGF1Z2g6KCk9PnRSLExheWVyczooKT0+XzYsTGF5ZXJzMjooKT0+c1IsTGF5ZXJzMzooKT0+XzYsTGF5ZXJzTWludXM6KCk9PmlSLExheWVyc1BsdXM6KCk9PnJSLExheW91dDooKT0+VjYsTGF5b3V0RGFzaGJvYXJkOigpPT5vUixMYXlvdXRHcmlkOigpPT5uUixMYXlvdXRMaXN0OigpPT5sUixMYXlvdXRQYW5lbExlZnQ6KCk9PmNSLExheW91dFBhbmVsVG9wOigpPT51UixMYXlvdXRUZW1wbGF0ZTooKT0+ZFIsTGVhZjooKT0+cFIsTGVhZnlHcmVlbjooKT0+aFIsTGVjdGVybjooKT0+ZlIsTGVuc0NvbmNhdmU6KCk9Pm1SLExlbnNDb252ZXg6KCk9PmdSLExldHRlclRleHQ6KCk9Pmw4LExpYnJhcnk6KCk9PnZSLExpYnJhcnlCaWc6KCk9PmJSLExpYnJhcnlTcXVhcmU6KCk9PkE1LExpZmVCdW95OigpPT54UixMaWdhdHVyZTooKT0+eVIsTGlnaHRidWxiOigpPT53UixMaWdodGJ1bGJPZmY6KCk9PmtSLExpbmVDaGFydDooKT0+amYsTGluZURvdFJpZ2h0SG9yaXpvbnRhbDooKT0+U1IsTGluZVNxdWlnZ2xlOigpPT5NUixMaW5lU3R5bGU6KCk9Pl9SLExpbms6KCk9PlRSLExpbmsyOigpPT5DUixMaW5rMk9mZjooKT0+elIsTGlzdDooKT0+R1IsTGlzdENoZWNrOigpPT4kUixMaXN0Q2hlY2tzOigpPT5EUixMaXN0Q2hldnJvbnNEb3duVXA6KCk9PkxSLExpc3RDaGV2cm9uc1VwRG93bjooKT0+RVIsTGlzdENvbGxhcHNlOigpPT5QUixMaXN0RW5kOigpPT5JUixMaXN0RmlsdGVyOigpPT5OUixMaXN0RmlsdGVyUGx1czooKT0+QVIsTGlzdEluZGVudERlY3JlYXNlOigpPT5HMCxMaXN0SW5kZW50SW5jcmVhc2U6KCk9PkswLExpc3RNaW51czooKT0+UlIsTGlzdE11c2ljOigpPT5PUixMaXN0T3JkZXJlZDooKT0+RlIsTGlzdFBsdXM6KCk9PkJSLExpc3RSZXN0YXJ0OigpPT5IUixMaXN0U3RhcnQ6KCk9PnFSLExpc3RUb2RvOigpPT5qUixMaXN0VHJlZTooKT0+VlIsTGlzdFZpZGVvOigpPT5VUixMaXN0WDooKT0+V1IsTG9hZGVyOigpPT5ZUixMb2FkZXIyOigpPT5NNixMb2FkZXJDaXJjbGU6KCk9Pk02LExvYWRlclBpbndoZWVsOigpPT5LUixMb2NhdGU6KCk9PlFSLExvY2F0ZUZpeGVkOigpPT5aUixMb2NhdGVPZmY6KCk9PlhSLExvY2F0aW9uRWRpdDooKT0+JDYsTG9jazooKT0+ZU8sTG9ja0tleWhvbGU6KCk9PkpSLExvY2tLZXlob2xlT3BlbjooKT0+ejYsTG9ja09wZW46KCk9PkM2LExvZ0luOigpPT50TyxMb2dPdXQ6KCk9PmFPLExvZ3M6KCk9PnNPLExvbGxpcG9wOigpPT5pTyxMdWdnYWdlOigpPT5yTyxNU3F1YXJlOigpPT5ONSxNYWduZXQ6KCk9Pm5PLE1haWw6KCk9Pm1PLE1haWxDaGVjazooKT0+b08sTWFpbE1pbnVzOigpPT5sTyxNYWlsT3BlbjooKT0+Y08sTWFpbFBsdXM6KCk9PmRPLE1haWxRdWVzdGlvbjooKT0+VDYsTWFpbFF1ZXN0aW9uTWFyazooKT0+VDYsTWFpbFNlYXJjaDooKT0+dU8sTWFpbFdhcm5pbmc6KCk9PnBPLE1haWxYOigpPT5oTyxNYWlsYm94OigpPT5mTyxNYWlsczooKT0+Z08sTWFwOigpPT5FTyxNYXBNaW51czooKT0+Yk8sTWFwUGluOigpPT4kTyxNYXBQaW5DaGVjazooKT0+eE8sTWFwUGluQ2hlY2tJbnNpZGU6KCk9PnZPLE1hcFBpbkhvdXNlOigpPT55TyxNYXBQaW5NaW51czooKT0+a08sTWFwUGluTWludXNJbnNpZGU6KCk9PndPLE1hcFBpbk9mZjooKT0+U08sTWFwUGluUGVuOigpPT4kNixNYXBQaW5QbHVzOigpPT5NTyxNYXBQaW5QbHVzSW5zaWRlOigpPT5fTyxNYXBQaW5TZWFyY2g6KCk9PnpPLE1hcFBpblg6KCk9PkNPLE1hcFBpblhJbnNpZGU6KCk9PlRPLE1hcFBpbm5lZDooKT0+RE8sTWFwUGx1czooKT0+TE8sTWFyczooKT0+SU8sTWFyc1N0cm9rZTooKT0+UE8sTWFydGluaTooKT0+QU8sTWF4aW1pemU6KCk9PlJPLE1heGltaXplMjooKT0+Tk8sTWVkYWw6KCk9Pk9PLE1lZ2FwaG9uZTooKT0+Qk8sTWVnYXBob25lT2ZmOigpPT5GTyxNZWg6KCk9PkhPLE1lbW9yeVN0aWNrOigpPT5xTyxNZW51OigpPT5qTyxNZW51U3F1YXJlOigpPT5PNSxNZXJnZTooKT0+Vk8sTWVzc2FnZUNpcmNsZTooKT0+dEYsTWVzc2FnZUNpcmNsZUNoZWNrOigpPT5VTyxNZXNzYWdlQ2lyY2xlQ29kZTooKT0+V08sTWVzc2FnZUNpcmNsZURhc2hlZDooKT0+R08sTWVzc2FnZUNpcmNsZUhlYXJ0OigpPT5LTyxNZXNzYWdlQ2lyY2xlTW9yZTooKT0+WU8sTWVzc2FnZUNpcmNsZU9mZjooKT0+Wk8sTWVzc2FnZUNpcmNsZVBsdXM6KCk9PlhPLE1lc3NhZ2VDaXJjbGVRdWVzdGlvbjooKT0+RDYsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazooKT0+RDYsTWVzc2FnZUNpcmNsZVJlcGx5OigpPT5RTyxNZXNzYWdlQ2lyY2xlV2FybmluZzooKT0+Sk8sTWVzc2FnZUNpcmNsZVg6KCk9PmVGLE1lc3NhZ2VTcXVhcmU6KCk9PnZGLE1lc3NhZ2VTcXVhcmVDaGVjazooKT0+c0YsTWVzc2FnZVNxdWFyZUNvZGU6KCk9PmFGLE1lc3NhZ2VTcXVhcmVEYXNoZWQ6KCk9PmlGLE1lc3NhZ2VTcXVhcmVEaWZmOigpPT5yRixNZXNzYWdlU3F1YXJlRG90OigpPT5vRixNZXNzYWdlU3F1YXJlSGVhcnQ6KCk9Pm5GLE1lc3NhZ2VTcXVhcmVMb2NrOigpPT5sRixNZXNzYWdlU3F1YXJlTW9yZTooKT0+Y0YsTWVzc2FnZVNxdWFyZU9mZjooKT0+ZEYsTWVzc2FnZVNxdWFyZVBsdXM6KCk9PnVGLE1lc3NhZ2VTcXVhcmVRdW90ZTooKT0+cEYsTWVzc2FnZVNxdWFyZVJlcGx5OigpPT5oRixNZXNzYWdlU3F1YXJlU2hhcmU6KCk9PmZGLE1lc3NhZ2VTcXVhcmVUZXh0OigpPT5tRixNZXNzYWdlU3F1YXJlV2FybmluZzooKT0+Z0YsTWVzc2FnZVNxdWFyZVg6KCk9PmJGLE1lc3NhZ2VzU3F1YXJlOigpPT54RixNZXRyb25vbWU6KCk9PnlGLE1pYzooKT0+a0YsTWljMjooKT0+TDYsTWljT2ZmOigpPT53RixNaWNWb2NhbDooKT0+TDYsTWljcm9jaGlwOigpPT5TRixNaWNyb3Njb3BlOigpPT5fRixNaWNyb3dhdmU6KCk9Pk1GLE1pbGVzdG9uZTooKT0+ekYsTWlsazooKT0+VEYsTWlsa09mZjooKT0+Q0YsTWluaW1pemU6KCk9PkRGLE1pbmltaXplMjooKT0+JEYsTWludXM6KCk9PkxGLE1pbnVzQ2lyY2xlOigpPT5wbSxNaW51c1NxdWFyZTooKT0+RjUsTWlycm9yUmVjdGFuZ3VsYXI6KCk9PkVGLE1pcnJvclJvdW5kOigpPT5QRixNb25pdG9yOigpPT5HRixNb25pdG9yQ2hlY2s6KCk9PklGLE1vbml0b3JDbG91ZDooKT0+QUYsTW9uaXRvckNvZzooKT0+TkYsTW9uaXRvckRvdDooKT0+UkYsTW9uaXRvckRvd246KCk9PkZGLE1vbml0b3JPZmY6KCk9Pk9GLE1vbml0b3JQYXVzZTooKT0+QkYsTW9uaXRvclBsYXk6KCk9PkhGLE1vbml0b3JTbWFydHBob25lOigpPT5xRixNb25pdG9yU3BlYWtlcjooKT0+akYsTW9uaXRvclN0b3A6KCk9PlVGLE1vbml0b3JVcDooKT0+VkYsTW9uaXRvclg6KCk9PldGLE1vb246KCk9PllGLE1vb25TdGFyOigpPT5LRixNb3JlSG9yaXpvbnRhbDooKT0+Tm0sTW9yZVZlcnRpY2FsOigpPT5BbSxNb3RvcmJpa2U6KCk9PlpGLE1vdW50YWluOigpPT5RRixNb3VudGFpblNub3c6KCk9PlhGLE1vdXNlOigpPT5uQixNb3VzZUxlZnQ6KCk9PkpGLE1vdXNlT2ZmOigpPT5lQixNb3VzZVBvaW50ZXI6KCk9PnJCLE1vdXNlUG9pbnRlcjI6KCk9PmFCLE1vdXNlUG9pbnRlcjJPZmY6KCk9PnRCLE1vdXNlUG9pbnRlckJhbjooKT0+c0IsTW91c2VQb2ludGVyQ2xpY2s6KCk9PmlCLE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZDooKT0+JDUsTW91c2VSaWdodDooKT0+b0IsTW92ZTooKT0+eUIsTW92ZTNEOigpPT5FNixNb3ZlM2Q6KCk9PkU2LE1vdmVEaWFnb25hbDooKT0+Y0IsTW92ZURpYWdvbmFsMjooKT0+bEIsTW92ZURvd246KCk9PnBCLE1vdmVEb3duTGVmdDooKT0+ZEIsTW92ZURvd25SaWdodDooKT0+dUIsTW92ZUhvcml6b250YWw6KCk9PmhCLE1vdmVMZWZ0OigpPT5mQixNb3ZlUmlnaHQ6KCk9Pm1CLE1vdmVVcDooKT0+dkIsTW92ZVVwTGVmdDooKT0+Z0IsTW92ZVVwUmlnaHQ6KCk9PmJCLE1vdmVWZXJ0aWNhbDooKT0+eEIsTXVzaWM6KCk9Pl9CLE11c2ljMjooKT0+d0IsTXVzaWMzOigpPT5TQixNdXNpYzQ6KCk9PmtCLE5hdmlnYXRpb246KCk9PlRCLE5hdmlnYXRpb24yOigpPT56QixOYXZpZ2F0aW9uMk9mZjooKT0+TUIsTmF2aWdhdGlvbk9mZjooKT0+Q0IsTmV0d29yazooKT0+JEIsTmV3c3BhcGVyOigpPT5EQixOZmM6KCk9PkxCLE5vbkJpbmFyeTooKT0+RUIsTm90ZWJvb2s6KCk9Pk5CLE5vdGVib29rUGVuOigpPT5QQixOb3RlYm9va1RhYnM6KCk9PkFCLE5vdGVib29rVGV4dDooKT0+SUIsTm90ZXBhZFRleHQ6KCk9Pk9CLE5vdGVwYWRUZXh0RGFzaGVkOigpPT5SQixOdXQ6KCk9PkJCLE51dE9mZjooKT0+RkIsT2N0YWdvbjooKT0+cUIsT2N0YWdvbkFsZXJ0OigpPT5QNixPY3RhZ29uTWludXM6KCk9PkhCLE9jdGFnb25QYXVzZTooKT0+STYsT2N0YWdvblg6KCk9PkE2LE9tZWdhOigpPT5qQixPcHRpb246KCk9PlZCLE9yYml0OigpPT5VQixPcmlnYW1pOigpPT5XQixPdXRkZW50OigpPT5HMCxQYWNrYWdlOigpPT5KQixQYWNrYWdlMjooKT0+R0IsUGFja2FnZUNoZWNrOigpPT5LQixQYWNrYWdlTWludXM6KCk9PllCLFBhY2thZ2VPcGVuOigpPT5aQixQYWNrYWdlUGx1czooKT0+WEIsUGFja2FnZVNlYXJjaDooKT0+UUIsUGFja2FnZVg6KCk9PmVILFBhaW50QnVja2V0OigpPT50SCxQYWludFJvbGxlcjooKT0+YUgsUGFpbnRicnVzaDooKT0+c0gsUGFpbnRicnVzaDI6KCk9Pk42LFBhaW50YnJ1c2hWZXJ0aWNhbDooKT0+TjYsUGFsZXR0ZTooKT0+aUgsUGFsbXRyZWU6KCk9PnU4LFBhbmRhOigpPT5vSCxQYW5lbEJvdHRvbTooKT0+bEgsUGFuZWxCb3R0b21DbG9zZTooKT0+ckgsUGFuZWxCb3R0b21EYXNoZWQ6KCk9PlI2LFBhbmVsQm90dG9tSW5hY3RpdmU6KCk9PlI2LFBhbmVsQm90dG9tT3BlbjooKT0+bkgsUGFuZWxMZWZ0OigpPT5INixQYW5lbExlZnRDbG9zZTooKT0+TzYsUGFuZWxMZWZ0RGFzaGVkOigpPT5GNixQYW5lbExlZnRJbmFjdGl2ZTooKT0+RjYsUGFuZWxMZWZ0T3BlbjooKT0+QjYsUGFuZWxMZWZ0UmlnaHREYXNoZWQ6KCk9PmNILFBhbmVsUmlnaHQ6KCk9PmhILFBhbmVsUmlnaHRDbG9zZTooKT0+ZEgsUGFuZWxSaWdodERhc2hlZDooKT0+cTYsUGFuZWxSaWdodEluYWN0aXZlOigpPT5xNixQYW5lbFJpZ2h0T3BlbjooKT0+dUgsUGFuZWxUb3A6KCk9PmdILFBhbmVsVG9wQm90dG9tRGFzaGVkOigpPT5wSCxQYW5lbFRvcENsb3NlOigpPT5mSCxQYW5lbFRvcERhc2hlZDooKT0+ajYsUGFuZWxUb3BJbmFjdGl2ZTooKT0+ajYsUGFuZWxUb3BPcGVuOigpPT5tSCxQYW5lbHNMZWZ0Qm90dG9tOigpPT5iSCxQYW5lbHNMZWZ0UmlnaHQ6KCk9PkxtLFBhbmVsc1JpZ2h0Qm90dG9tOigpPT52SCxQYW5lbHNUb3BCb3R0b206KCk9Plg2LFBhbmVsc1RvcExlZnQ6KCk9PlY2LFBhcGVyY2xpcDooKT0+eEgsUGFyZW50aGVzZXM6KCk9PnlILFBhcmtpbmdDaXJjbGU6KCk9PmZtLFBhcmtpbmdDaXJjbGVPZmY6KCk9PmhtLFBhcmtpbmdNZXRlcjooKT0+d0gsUGFya2luZ1NxdWFyZTooKT0+cTUsUGFya2luZ1NxdWFyZU9mZjooKT0+SDUsUGFydHlQb3BwZXI6KCk9PlNILFBhdXNlOigpPT5rSCxQYXVzZUNpcmNsZTooKT0+bW0sUGF1c2VPY3RhZ29uOigpPT5JNixQYXdQcmludDooKT0+X0gsUGNDYXNlOigpPT5NSCxQZW46KCk9Plc2LFBlbkJveDooKT0+VjEsUGVuTGluZTooKT0+VTYsUGVuT2ZmOigpPT56SCxQZW5TcXVhcmU6KCk9PlYxLFBlblRvb2w6KCk9PkNILFBlbmNpbDooKT0+REgsUGVuY2lsTGluZTooKT0+VEgsUGVuY2lsT2ZmOigpPT4kSCxQZW5jaWxSdWxlcjooKT0+TEgsUGVudGFnb246KCk9PkVILFBlcmNlbnQ6KCk9PlBILFBlcmNlbnRDaXJjbGU6KCk9PmdtLFBlcmNlbnREaWFtb25kOigpPT5QbSxQZXJjZW50U3F1YXJlOigpPT5qNSxQZXJzb25TdGFuZGluZzooKT0+SUgsUGhpbGlwcGluZVBlc286KCk9PkFILFBob25lOigpPT5qSCxQaG9uZUNhbGw6KCk9Pk5ILFBob25lRm9yd2FyZGVkOigpPT5SSCxQaG9uZUluY29taW5nOigpPT5PSCxQaG9uZU1pc3NlZDooKT0+RkgsUGhvbmVPZmY6KCk9PkJILFBob25lT3V0Z29pbmc6KCk9PkhILFBpOigpPT5xSCxQaVNxdWFyZTooKT0+VjUsUGlhbm86KCk9PlZILFBpY2theGU6KCk9PlVILFBpY3R1cmVJblBpY3R1cmU6KCk9PkdILFBpY3R1cmVJblBpY3R1cmUyOigpPT5XSCxQaWVDaGFydDooKT0+R2YsUGlnZ3lCYW5rOigpPT5LSCxQaWxjcm93OigpPT5YSCxQaWxjcm93TGVmdDooKT0+WUgsUGlsY3Jvd1JpZ2h0OigpPT5aSCxQaWxjcm93U3F1YXJlOigpPT5VNSxQaWxsOigpPT5lcSxQaWxsQm90dGxlOigpPT5RSCxQaW46KCk9PnRxLFBpbk9mZjooKT0+SkgsUGlwZXR0ZTooKT0+YXEsUGl6emE6KCk9PnNxLFBsYW5lOigpPT5vcSxQbGFuZUxhbmRpbmc6KCk9PmlxLFBsYW5lVGFrZW9mZjooKT0+cnEsUGxheTooKT0+bnEsUGxheUNpcmNsZTooKT0+Ym0sUGxheVNxdWFyZTooKT0+RzUsUGx1ZzooKT0+Y3EsUGx1ZzI6KCk9PmxxLFBsdWdaYXA6KCk9Pkc2LFBsdWdaYXAyOigpPT5HNixQbHVzOigpPT5kcSxQbHVzQ2lyY2xlOigpPT52bSxQbHVzU3F1YXJlOigpPT5XNSxQb2NrZXRLbmlmZTooKT0+dXEsUG9kY2FzdDooKT0+cHEsUG9pbnRlcjooKT0+aHEsUG9pbnRlck9mZjooKT0+ZnEsUG9wY29ybjooKT0+bXEsUG9wc2ljbGU6KCk9PmdxLFBvdW5kU3Rlcmxpbmc6KCk9PmJxLFBvd2VyOigpPT54cSxQb3dlckNpcmNsZTooKT0+eG0sUG93ZXJPZmY6KCk9PnZxLFBvd2VyU3F1YXJlOigpPT5LNSxQcmVzZW50YXRpb246KCk9PnlxLFByaW50ZXI6KCk9PlNxLFByaW50ZXJDaGVjazooKT0+a3EsUHJpbnRlclg6KCk9PndxLFByb2plY3RvcjooKT0+enEsUHJvcG9ydGlvbnM6KCk9Pl9xLFB1enpsZTooKT0+TXEsUHlyYW1pZDooKT0+Q3EsUXJDb2RlOigpPT4kcSxRdW90ZTooKT0+VHEsUmFiYml0OigpPT5McSxSYWRhcjooKT0+RHEsUmFkaWF0aW9uOigpPT5FcSxSYWRpY2FsOigpPT5QcSxSYWRpbzooKT0+UnEsUmFkaW9PZmY6KCk9PklxLFJhZGlvUmVjZWl2ZXI6KCk9PkFxLFJhZGlvVG93ZXI6KCk9Pk5xLFJhZGl1czooKT0+T3EsUmFpbmJvdzooKT0+RnEsUmF0OigpPT5CcSxSYXRpbzooKT0+SHEsUmVjZWlwdDooKT0+WnEsUmVjZWlwdENlbnQ6KCk9PnFxLFJlY2VpcHRFdXJvOigpPT5qcSxSZWNlaXB0SW5kaWFuUnVwZWU6KCk9PlZxLFJlY2VpcHRKYXBhbmVzZVllbjooKT0+V3EsUmVjZWlwdFBvdW5kU3Rlcmxpbmc6KCk9PlVxLFJlY2VpcHRSdXNzaWFuUnVibGU6KCk9PkdxLFJlY2VpcHRTd2lzc0ZyYW5jOigpPT5ZcSxSZWNlaXB0VGV4dDooKT0+S3EsUmVjZWlwdFR1cmtpc2hMaXJhOigpPT5YcSxSZWN0YW5nbGVDaXJjbGU6KCk9PlFxLFJlY3RhbmdsZUVsbGlwc2lzOigpPT5LNixSZWN0YW5nbGVHb2dnbGVzOigpPT5KcSxSZWN0YW5nbGVIb3Jpem9udGFsOigpPT5laixSZWN0YW5nbGVWZXJ0aWNhbDooKT0+dGosUmVjeWNsZTooKT0+YWosUmVkbzooKT0+cmosUmVkbzI6KCk9PnNqLFJlZG9Eb3Q6KCk9PmlqLFJlZnJlc2hDY3c6KCk9Pm5qLFJlZnJlc2hDY3dEb3Q6KCk9Pm9qLFJlZnJlc2hDdzooKT0+Y2osUmVmcmVzaEN3T2ZmOigpPT5saixSZWZyaWdlcmF0b3I6KCk9PmRqLFJlZ2V4OigpPT51aixSZW1vdmVGb3JtYXR0aW5nOigpPT5waixSZXBlYXQ6KCk9PmdqLFJlcGVhdDE6KCk9PmZqLFJlcGVhdDI6KCk9PmhqLFJlcGVhdE9mZjooKT0+bWosUmVwbGFjZTooKT0+dmosUmVwbGFjZUFsbDooKT0+YmosUmVwbHk6KCk9PnlqLFJlcGx5QWxsOigpPT54aixSZXdpbmQ6KCk9PmtqLFJpYmJvbjooKT0+d2osUm9hZDooKT0+U2osUm9ja2V0OigpPT5faixSb2NraW5nQ2hhaXI6KCk9Pk1qLFJvbGxlckNvYXN0ZXI6KCk9PnpqLFJvc2U6KCk9PkNqLFJvdGF0ZTNEOigpPT5ZNixSb3RhdGUzZDooKT0+WTYsUm90YXRlQ2N3OigpPT5EaixSb3RhdGVDY3dLZXk6KCk9PlRqLFJvdGF0ZUNjd1NxdWFyZTooKT0+JGosUm90YXRlQ3c6KCk9PkVqLFJvdGF0ZUN3U3F1YXJlOigpPT5MaixSb3V0ZTooKT0+SWosUm91dGVPZmY6KCk9PlBqLFJvdXRlcjooKT0+QWosUm93czooKT0+WjYsUm93czI6KCk9Plo2LFJvd3MzOigpPT5YNixSb3dzNDooKT0+TmosUnNzOigpPT5SaixSdWxlcjooKT0+RmosUnVsZXJEaW1lbnNpb25MaW5lOigpPT5PaixSdXNzaWFuUnVibGU6KCk9PkJqLFNhaWxib2F0OigpPT5IaixTYWxhZDooKT0+cWosU2FuZHdpY2g6KCk9PmpqLFNhdGVsbGl0ZTooKT0+VmosU2F0ZWxsaXRlRGlzaDooKT0+VWosU2F1ZGlSaXlhbDooKT0+V2osU2F2ZTooKT0+WWosU2F2ZUFsbDooKT0+S2osU2F2ZU9mZjooKT0+R2osU2NhbGU6KCk9PlpqLFNjYWxlM0Q6KCk9PlE2LFNjYWxlM2Q6KCk9PlE2LFNjYWxpbmc6KCk9PlFqLFNjYW46KCk9Pm9WLFNjYW5CYXJjb2RlOigpPT5YaixTY2FuRXllOigpPT5KaixTY2FuRmFjZTooKT0+ZVYsU2NhbkhlYXJ0OigpPT50VixTY2FuTGluZTooKT0+YVYsU2NhblFyQ29kZTooKT0+c1YsU2NhblNlYXJjaDooKT0+aVYsU2NhblRleHQ6KCk9PnJWLFNjYXR0ZXJDaGFydDooKT0+S2YsU2Nob29sOigpPT5uVixTY2hvb2wyOigpPT5mOCxTY2lzc29yczooKT0+Y1YsU2Npc3NvcnNMaW5lRGFzaGVkOigpPT5sVixTY2lzc29yc1NxdWFyZTooKT0+WjUsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9PnY1LFNjb290ZXI6KCk9PmRWLFNjcmVlblNoYXJlOigpPT5wVixTY3JlZW5TaGFyZU9mZjooKT0+dVYsU2Nyb2xsOigpPT5mVixTY3JvbGxUZXh0OigpPT5oVixTZWFyY2g6KCk9PnlWLFNlYXJjaEFsZXJ0OigpPT5tVixTZWFyY2hDaGVjazooKT0+Z1YsU2VhcmNoQ29kZTooKT0+YlYsU2VhcmNoU2xhc2g6KCk9PnZWLFNlYXJjaFg6KCk9PnhWLFNlY3Rpb246KCk9PndWLFNlbmQ6KCk9PlNWLFNlbmRIb3Jpem9uYWw6KCk9Pko2LFNlbmRIb3Jpem9udGFsOigpPT5KNixTZW5kVG9CYWNrOigpPT5rVixTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5fVixTZXBhcmF0b3JWZXJ0aWNhbDooKT0+TVYsU2VydmVyOigpPT4kVixTZXJ2ZXJDb2c6KCk9PnpWLFNlcnZlckNyYXNoOigpPT5DVixTZXJ2ZXJPZmY6KCk9PlRWLFNldHRpbmdzOigpPT5FVixTZXR0aW5nczI6KCk9PkRWLFNoYXBlczooKT0+TFYsU2hhcmU6KCk9PklWLFNoYXJlMjooKT0+UFYsU2hlZXQ6KCk9Pk5WLFNoZWxsOigpPT5BVixTaGVsdmluZ1VuaXQ6KCk9PlJWLFNoaWVsZDooKT0+WVYsU2hpZWxkQWxlcnQ6KCk9Pk9WLFNoaWVsZEJhbjooKT0+RlYsU2hpZWxkQ2hlY2s6KCk9PkJWLFNoaWVsZENsb3NlOigpPT50NSxTaGllbGRDb2c6KCk9PmpWLFNoaWVsZENvZ0Nvcm5lcjooKT0+SFYsU2hpZWxkRWxsaXBzaXM6KCk9PnFWLFNoaWVsZEhhbGY6KCk9PlZWLFNoaWVsZE1pbnVzOigpPT5VVixTaGllbGRPZmY6KCk9PldWLFNoaWVsZFBsdXM6KCk9PkdWLFNoaWVsZFF1ZXN0aW9uOigpPT5lNSxTaGllbGRRdWVzdGlvbk1hcms6KCk9PmU1LFNoaWVsZFVzZXI6KCk9PktWLFNoaWVsZFg6KCk9PnQ1LFNoaXA6KCk9PlpWLFNoaXBXaGVlbDooKT0+WFYsU2hpcnQ6KCk9PlFWLFNob3BwaW5nQmFnOigpPT5KVixTaG9wcGluZ0Jhc2tldDooKT0+ZVUsU2hvcHBpbmdDYXJ0OigpPT50VSxTaG92ZWw6KCk9PmFVLFNob3dlckhlYWQ6KCk9PnNVLFNocmVkZGVyOigpPT5pVSxTaHJpbXA6KCk9Pm9VLFNocmluazooKT0+clUsU2hydWI6KCk9Pm5VLFNodWZmbGU6KCk9PmxVLFNpZGViYXI6KCk9Pkg2LFNpZGViYXJDbG9zZTooKT0+TzYsU2lkZWJhck9wZW46KCk9PkI2LFNpZ21hOigpPT5jVSxTaWdtYVNxdWFyZTooKT0+WTUsU2lnbmFsOigpPT5mVSxTaWduYWxIaWdoOigpPT5kVSxTaWduYWxMb3c6KCk9PnVVLFNpZ25hbE1lZGl1bTooKT0+cFUsU2lnbmFsWmVybzooKT0+aFUsU2lnbmF0dXJlOigpPT5tVSxTaWducG9zdDooKT0+YlUsU2lnbnBvc3RCaWc6KCk9PmdVLFNpcmVuOigpPT52VSxTa2lwQmFjazooKT0+eFUsU2tpcEZvcndhcmQ6KCk9PnlVLFNrdWxsOigpPT53VSxTbGFzaDooKT0+a1UsU2xhc2hTcXVhcmU6KCk9Plg1LFNsaWNlOigpPT5fVSxTbGlkZXJzOigpPT5hNSxTbGlkZXJzSG9yaXpvbnRhbDooKT0+U1UsU2xpZGVyc1ZlcnRpY2FsOigpPT5hNSxTbWFydHBob25lOigpPT5UVSxTbWFydHBob25lQ2hhcmdpbmc6KCk9Pk1VLFNtYXJ0cGhvbmVOZmM6KCk9PnpVLFNtaWxlOigpPT4kVSxTbWlsZVBsdXM6KCk9PkNVLFNuYWlsOigpPT5EVSxTbm93Zmxha2U6KCk9PkxVLFNvYXBEaXNwZW5zZXJEcm9wbGV0OigpPT5FVSxTb2ZhOigpPT5QVSxTb2xhclBhbmVsOigpPT5JVSxTb3J0QXNjOigpPT56ZixTb3J0RGVzYzooKT0+U2YsU291cDooKT0+QVUsU3BhY2U6KCk9Pk5VLFNwYWRlOigpPT5SVSxTcGFya2xlOigpPT5PVSxTcGFya2xlczooKT0+czUsU3BlYWtlcjooKT0+RlUsU3BlZWNoOigpPT5CVSxTcGVsbENoZWNrOigpPT5IVSxTcGVsbENoZWNrMjooKT0+cVUsU3BsaW5lOigpPT5WVSxTcGxpbmVQb2ludGVyOigpPT5qVSxTcGxpdDooKT0+VVUsU3BsaXRTcXVhcmVIb3Jpem9udGFsOigpPT5RNSxTcGxpdFNxdWFyZVZlcnRpY2FsOigpPT5KNSxTcG9vbDooKT0+V1UsU3BvcnRTaG9lOigpPT5HVSxTcG90bGlnaHQ6KCk9PlpVLFNwcmF5Q2FuOigpPT5LVSxTcHJvdXQ6KCk9PllVLFNxdWFyZTooKT0+Y1csU3F1YXJlQWN0aXZpdHk6KCk9Pmk1LFNxdWFyZUFycm93RG93bjooKT0+bjUsU3F1YXJlQXJyb3dEb3duTGVmdDooKT0+cjUsU3F1YXJlQXJyb3dEb3duUmlnaHQ6KCk9Pm81LFNxdWFyZUFycm93TGVmdDooKT0+bDUsU3F1YXJlQXJyb3dPdXREb3duTGVmdDooKT0+YzUsU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6KCk9PmQ1LFNxdWFyZUFycm93T3V0VXBMZWZ0OigpPT51NSxTcXVhcmVBcnJvd091dFVwUmlnaHQ6KCk9PnA1LFNxdWFyZUFycm93UmlnaHQ6KCk9Pmg1LFNxdWFyZUFycm93UmlnaHRFbnRlcjooKT0+WFUsU3F1YXJlQXJyb3dSaWdodEV4aXQ6KCk9PlFVLFNxdWFyZUFycm93VXA6KCk9Pmc1LFNxdWFyZUFycm93VXBMZWZ0OigpPT5mNSxTcXVhcmVBcnJvd1VwUmlnaHQ6KCk9Pm01LFNxdWFyZUFzdGVyaXNrOigpPT5iNSxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczooKT0+djUsU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6KCk9Png1LFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRWZXJ0aWNhbDooKT0+eTUsU3F1YXJlQ2hhcnRHYW50dDooKT0+WTAsU3F1YXJlQ2hlY2s6KCk9Pms1LFNxdWFyZUNoZWNrQmlnOigpPT53NSxTcXVhcmVDaGV2cm9uRG93bjooKT0+UzUsU3F1YXJlQ2hldnJvbkxlZnQ6KCk9Pl81LFNxdWFyZUNoZXZyb25SaWdodDooKT0+TTUsU3F1YXJlQ2hldnJvblVwOigpPT56NSxTcXVhcmVDb2RlOigpPT5DNSxTcXVhcmVEYXNoZWQ6KCk9PkQ1LFNxdWFyZURhc2hlZEJvdHRvbTooKT0+ZVcsU3F1YXJlRGFzaGVkQm90dG9tQ29kZTooKT0+SlUsU3F1YXJlRGFzaGVkS2FuYmFuOigpPT5UNSxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6KCk9PiQ1LFNxdWFyZURhc2hlZFRleHQ6KCk9PlowLFNxdWFyZURhc2hlZFRvcFNvbGlkOigpPT50VyxTcXVhcmVEaXZpZGU6KCk9PkU1LFNxdWFyZURvdDooKT0+TDUsU3F1YXJlRXF1YWw6KCk9PlA1LFNxdWFyZUZ1bmN0aW9uOigpPT5JNSxTcXVhcmVHYW50dENoYXJ0OigpPT5ZMCxTcXVhcmVLYW5iYW46KCk9PlI1LFNxdWFyZUxpYnJhcnk6KCk9PkE1LFNxdWFyZU06KCk9Pk41LFNxdWFyZU1lbnU6KCk9Pk81LFNxdWFyZU1pbnVzOigpPT5GNSxTcXVhcmVNb3VzZVBvaW50ZXI6KCk9PkI1LFNxdWFyZVBhcmtpbmc6KCk9PnE1LFNxdWFyZVBhcmtpbmdPZmY6KCk9Pkg1LFNxdWFyZVBhdXNlOigpPT5hVyxTcXVhcmVQZW46KCk9PlYxLFNxdWFyZVBlcmNlbnQ6KCk9Pmo1LFNxdWFyZVBpOigpPT5WNSxTcXVhcmVQaWxjcm93OigpPT5VNSxTcXVhcmVQbGF5OigpPT5HNSxTcXVhcmVQbHVzOigpPT5XNSxTcXVhcmVQb3dlcjooKT0+SzUsU3F1YXJlUmFkaWNhbDooKT0+c1csU3F1YXJlUm91bmRDb3JuZXI6KCk9PmlXLFNxdWFyZVNjaXNzb3JzOigpPT5aNSxTcXVhcmVTaWdtYTooKT0+WTUsU3F1YXJlU2xhc2g6KCk9Plg1LFNxdWFyZVNwbGl0SG9yaXpvbnRhbDooKT0+UTUsU3F1YXJlU3BsaXRWZXJ0aWNhbDooKT0+SjUsU3F1YXJlU3F1YXJlOigpPT5yVyxTcXVhcmVTdGFjazooKT0+b1csU3F1YXJlU3RhcjooKT0+blcsU3F1YXJlU3RvcDooKT0+bFcsU3F1YXJlVGVybWluYWw6KCk9PmU4LFNxdWFyZVVzZXI6KCk9PnM4LFNxdWFyZVVzZXJSb3VuZDooKT0+dDgsU3F1YXJlWDooKT0+YTgsU3F1YXJlc0V4Y2x1ZGU6KCk9PmRXLFNxdWFyZXNJbnRlcnNlY3Q6KCk9PnVXLFNxdWFyZXNTdWJ0cmFjdDooKT0+cFcsU3F1YXJlc1VuaXRlOigpPT5oVyxTcXVpcmNsZTooKT0+bVcsU3F1aXJjbGVEYXNoZWQ6KCk9PmZXLFNxdWlycmVsOigpPT5nVyxTdGFtcDooKT0+YlcsU3RhcjooKT0+eVcsU3RhckhhbGY6KCk9PnZXLFN0YXJPZmY6KCk9PnhXLFN0YXJzOigpPT5zNSxTdGVwQmFjazooKT0+d1csU3RlcEZvcndhcmQ6KCk9PmtXLFN0ZXRob3Njb3BlOigpPT5fVyxTdGlja2VyOigpPT5TVyxTdGlja3lOb3RlOigpPT5NVyxTdG9uZTooKT0+VFcsU3RvcENpcmNsZTooKT0+d20sU3RvcmU6KCk9PnpXLFN0cmV0Y2hIb3Jpem9udGFsOigpPT5DVyxTdHJldGNoVmVydGljYWw6KCk9PiRXLFN0cmlrZXRocm91Z2g6KCk9PkRXLFN1YnNjcmlwdDooKT0+TFcsU3VidGl0bGVzOigpPT5BZixTdW46KCk9Pk5XLFN1bkRpbTooKT0+RVcsU3VuTWVkaXVtOigpPT5QVyxTdW5Nb29uOigpPT5JVyxTdW5Tbm93OigpPT5BVyxTdW5yaXNlOigpPT5SVyxTdW5zZXQ6KCk9Pk9XLFN1cGVyc2NyaXB0OigpPT5GVyxTd2F0Y2hCb29rOigpPT5CVyxTd2lzc0ZyYW5jOigpPT5IVyxTd2l0Y2hDYW1lcmE6KCk9PnFXLFN3b3JkOigpPT5qVyxTd29yZHM6KCk9PlZXLFN5cmluZ2U6KCk9PlVXLFRhYmxlOigpPT5lRyxUYWJsZTI6KCk9PldXLFRhYmxlQ2VsbHNNZXJnZTooKT0+R1csVGFibGVDZWxsc1NwbGl0OigpPT5LVyxUYWJsZUNvbHVtbnNTcGxpdDooKT0+WVcsVGFibGVDb25maWc6KCk9PlYwLFRhYmxlT2ZDb250ZW50czooKT0+WlcsVGFibGVQcm9wZXJ0aWVzOigpPT5YVyxUYWJsZVJvd3NTcGxpdDooKT0+UVcsVGFibGV0OigpPT50RyxUYWJsZXRTbWFydHBob25lOigpPT5KVyxUYWJsZXRzOigpPT5hRyxUYWc6KCk9PnNHLFRhZ3M6KCk9PmlHLFRhbGx5MTooKT0+ckcsVGFsbHkyOigpPT5vRyxUYWxseTM6KCk9Pm5HLFRhbGx5NDooKT0+bEcsVGFsbHk1OigpPT5kRyxUYW5nZW50OigpPT5jRyxUYXJnZXQ6KCk9PnVHLFRlbGVzY29wZTooKT0+cEcsVGVudDooKT0+ZkcsVGVudFRyZWU6KCk9PmhHLFRlcm1pbmFsOigpPT5tRyxUZXJtaW5hbFNxdWFyZTooKT0+ZTgsVGVzdFR1YmU6KCk9PmdHLFRlc3RUdWJlMjooKT0+aTgsVGVzdFR1YmVEaWFnb25hbDooKT0+aTgsVGVzdFR1YmVzOigpPT5iRyxUZXh0OigpPT5YMCxUZXh0QWxpZ25DZW50ZXI6KCk9PnI4LFRleHRBbGlnbkVuZDooKT0+bzgsVGV4dEFsaWduSnVzdGlmeTooKT0+bjgsVGV4dEFsaWduU3RhcnQ6KCk9PlgwLFRleHRDdXJzb3I6KCk9PnhHLFRleHRDdXJzb3JJbnB1dDooKT0+dkcsVGV4dEluaXRpYWw6KCk9Pmw4LFRleHRRdW90ZTooKT0+eUcsVGV4dFNlYXJjaDooKT0+d0csVGV4dFNlbGVjdDooKT0+WjAsVGV4dFNlbGVjdGlvbjooKT0+WjAsVGV4dFdyYXA6KCk9PmM4LFRoZWF0ZXI6KCk9PmtHLFRoZXJtb21ldGVyOigpPT5NRyxUaGVybW9tZXRlclNub3dmbGFrZTooKT0+U0csVGhlcm1vbWV0ZXJTdW46KCk9Pl9HLFRodW1ic0Rvd246KCk9PnpHLFRodW1ic1VwOigpPT5DRyxUaWNrZXQ6KCk9PklHLFRpY2tldENoZWNrOigpPT5URyxUaWNrZXRNaW51czooKT0+JEcsVGlja2V0UGVyY2VudDooKT0+REcsVGlja2V0UGx1czooKT0+TEcsVGlja2V0U2xhc2g6KCk9PkVHLFRpY2tldFg6KCk9PlBHLFRpY2tldHM6KCk9Pk5HLFRpY2tldHNQbGFuZTooKT0+QUcsVGltZWxpbmU6KCk9PlJHLFRpbWVyOigpPT5CRyxUaW1lck9mZjooKT0+T0csVGltZXJSZXNldDooKT0+RkcsVG9nZ2xlTGVmdDooKT0+cUcsVG9nZ2xlUmlnaHQ6KCk9PmpHLFRvaWxldDooKT0+SEcsVG9vbENhc2U6KCk9PlZHLFRvb2xib3g6KCk9PlVHLFRvcm5hZG86KCk9PktHLFRvcnVzOigpPT5XRyxUb3VjaHBhZDooKT0+WUcsVG91Y2hwYWRPZmY6KCk9PkdHLFRvd2VsUmFjazooKT0+WkcsVG93ZXJDb250cm9sOigpPT5YRyxUb3lCcmljazooKT0+UUcsVHJhY3RvcjooKT0+SkcsVHJhZmZpY0NvbmU6KCk9PmVLLFRyYWluOigpPT5kOCxUcmFpbkZyb250OigpPT5hSyxUcmFpbkZyb250VHVubmVsOigpPT50SyxUcmFpblRyYWNrOigpPT5zSyxUcmFtRnJvbnQ6KCk9PmQ4LFRyYW5zZ2VuZGVyOigpPT5pSyxUcmFzaDooKT0+b0ssVHJhc2gyOigpPT5ySyxUcmVlRGVjaWR1b3VzOigpPT5uSyxUcmVlUGFsbTooKT0+dTgsVHJlZVBpbmU6KCk9PmxLLFRyZWVzOigpPT5jSyxUcmVuZGluZ0Rvd246KCk9PmRLLFRyZW5kaW5nVXA6KCk9PnBLLFRyZW5kaW5nVXBEb3duOigpPT51SyxUcmlhbmdsZTooKT0+bUssVHJpYW5nbGVBbGVydDooKT0+cDgsVHJpYW5nbGVEYXNoZWQ6KCk9PmhLLFRyaWFuZ2xlUmlnaHQ6KCk9PmZLLFRyb3BoeTooKT0+Z0ssVHJ1Y2s6KCk9PnZLLFRydWNrRWxlY3RyaWM6KCk9PmJLLFR1cmtpc2hMaXJhOigpPT54SyxUdXJudGFibGU6KCk9PnlLLFR1cnRsZTooKT0+d0ssVHY6KCk9PlNLLFR2MjooKT0+aDgsVHZNaW5pbWFsOigpPT5oOCxUdk1pbmltYWxQbGF5OigpPT5rSyxUeXBlOigpPT5NSyxUeXBlT3V0bGluZTooKT0+X0ssVW1icmVsbGE6KCk9PkNLLFVtYnJlbGxhT2ZmOigpPT56SyxVbmRlcmxpbmU6KCk9PlRLLFVuZG86KCk9PkxLLFVuZG8yOigpPT4kSyxVbmRvRG90OigpPT5ESyxVbmZvbGRIb3Jpem9udGFsOigpPT5FSyxVbmZvbGRWZXJ0aWNhbDooKT0+UEssVW5ncm91cDooKT0+SUssVW5pdmVyc2l0eTooKT0+ZjgsVW5saW5rOigpPT5SSyxVbmxpbmsyOigpPT5BSyxVbmxvY2s6KCk9PkM2LFVubG9ja0tleWhvbGU6KCk9Pno2LFVucGx1ZzooKT0+TkssVXBsb2FkOigpPT5PSyxVcGxvYWRDbG91ZDooKT0+VG0sVXNiOigpPT5GSyxVc2VyOigpPT5KSyxVc2VyMjooKT0+eTgsVXNlckNoZWNrOigpPT5CSyxVc2VyQ2hlY2syOigpPT5tOCxVc2VyQ2lyY2xlOigpPT5TbSxVc2VyQ2lyY2xlMjooKT0+a20sVXNlckNvZzooKT0+SEssVXNlckNvZzI6KCk9Pmc4LFVzZXJLZXk6KCk9PnFLLFVzZXJMb2NrOigpPT5qSyxVc2VyTWludXM6KCk9PlZLLFVzZXJNaW51czI6KCk9PmI4LFVzZXJQZW46KCk9PlVLLFVzZXJQbHVzOigpPT5XSyxVc2VyUGx1czI6KCk9PnY4LFVzZXJSb3VuZDooKT0+eTgsVXNlclJvdW5kQ2hlY2s6KCk9Pm04LFVzZXJSb3VuZENvZzooKT0+ZzgsVXNlclJvdW5kS2V5OigpPT5HSyxVc2VyUm91bmRNaW51czooKT0+YjgsVXNlclJvdW5kUGVuOigpPT5LSyxVc2VyUm91bmRQbHVzOigpPT52OCxVc2VyUm91bmRTZWFyY2g6KCk9PllLLFVzZXJSb3VuZFg6KCk9Png4LFVzZXJTZWFyY2g6KCk9PlpLLFVzZXJTcXVhcmU6KCk9PnM4LFVzZXJTcXVhcmUyOigpPT50OCxVc2VyU3RhcjooKT0+WEssVXNlclg6KCk9PlFLLFVzZXJYMjooKT0+eDgsVXNlcnM6KCk9PmVZLFVzZXJzMjooKT0+dzgsVXNlcnNSb3VuZDooKT0+dzgsVXRlbnNpbHM6KCk9PlM4LFV0ZW5zaWxzQ3Jvc3NlZDooKT0+azgsVXRpbGl0eVBvbGU6KCk9PmFZLFZhbjooKT0+dFksVmFyaWFibGU6KCk9PnNZLFZhdWx0OigpPT5pWSxWZWN0b3JTcXVhcmU6KCk9PnJZLFZlZ2FuOigpPT5vWSxWZW5ldGlhbk1hc2s6KCk9Pm5ZLFZlbnVzOigpPT5jWSxWZW51c0FuZE1hcnM6KCk9PmxZLFZlcmlmaWVkOigpPT4kZixWaWJyYXRlOigpPT51WSxWaWJyYXRlT2ZmOigpPT5kWSxWaWRlbzooKT0+aFksVmlkZW9PZmY6KCk9PnBZLFZpZGVvdGFwZTooKT0+ZlksVmlldzooKT0+bVksVm9pY2VtYWlsOigpPT5iWSxWb2xsZXliYWxsOigpPT5nWSxWb2x1bWU6KCk9PmtZLFZvbHVtZTE6KCk9PnZZLFZvbHVtZTI6KCk9PnhZLFZvbHVtZU9mZjooKT0+eVksVm9sdW1lWDooKT0+d1ksVm90ZTooKT0+U1ksV2FsbGV0OigpPT5NWSxXYWxsZXQyOigpPT5fOCxXYWxsZXRDYXJkczooKT0+X1ksV2FsbGV0TWluaW1hbDooKT0+XzgsV2FsbHBhcGVyOigpPT56WSxXYW5kOigpPT5DWSxXYW5kMjooKT0+TTgsV2FuZFNwYXJrbGVzOigpPT5NOCxXYXJlaG91c2U6KCk9PlRZLFdhc2hpbmdNYWNoaW5lOigpPT5EWSxXYXRjaDooKT0+JFksV2F2ZXM6KCk9Pno4LFdhdmVzQXJyb3dEb3duOigpPT5MWSxXYXZlc0Fycm93VXA6KCk9PkVZLFdhdmVzSG9yaXpvbnRhbDooKT0+ejgsV2F2ZXNMYWRkZXI6KCk9PlBZLFdhdmVzVmVydGljYWw6KCk9PklZLFdheXBvaW50czooKT0+QVksV2ViY2FtOigpPT5OWSxXZWJob29rOigpPT5PWSxXZWJob29rT2ZmOigpPT5SWSxXZWlnaHQ6KCk9PkJZLFdlaWdodFRpbGRlOigpPT5GWSxXaGVhdDooKT0+cVksV2hlYXRPZmY6KCk9PkhZLFdob2xlV29yZDooKT0+alksV2lmaTooKT0+UVksV2lmaUNvZzooKT0+VlksV2lmaUhpZ2g6KCk9PlVZLFdpZmlMb3c6KCk9PldZLFdpZmlPZmY6KCk9PkdZLFdpZmlQZW46KCk9PktZLFdpZmlTeW5jOigpPT5ZWSxXaWZpWmVybzooKT0+WlksV2luZDooKT0+SlksV2luZEFycm93RG93bjooKT0+WFksV2luZTooKT0+c1osV2luZU9mZjooKT0+ZVosV29ya2Zsb3c6KCk9PmFaLFdvcm06KCk9PnRaLFdyYXBUZXh0OigpPT5jOCxXcmVuY2g6KCk9PmlaLFg6KCk9Pm9aLFhDaXJjbGU6KCk9Pl9tLFhMaW5lVG9wOigpPT5yWixYT2N0YWdvbjooKT0+QTYsWFNxdWFyZTooKT0+YTgsWmFwOigpPT5sWixaYXBPZmY6KCk9Pm5aLFpvZGlhY0FxdWFyaXVzOigpPT5jWixab2RpYWNBcmllczooKT0+ZFosWm9kaWFjQ2FuY2VyOigpPT51Wixab2RpYWNDYXByaWNvcm46KCk9PnBaLFpvZGlhY0dlbWluaTooKT0+aFosWm9kaWFjTGVvOigpPT5mWixab2RpYWNMaWJyYTooKT0+bVosWm9kaWFjT3BoaXVjaHVzOigpPT5nWixab2RpYWNQaXNjZXM6KCk9PmJaLFpvZGlhY1NhZ2l0dGFyaXVzOigpPT54Wixab2RpYWNTY29ycGlvOigpPT52Wixab2RpYWNUYXVydXM6KCk9PnlaLFpvZGlhY1ZpcmdvOigpPT53Wixab29tSW46KCk9PmtaLFpvb21PdXQ6KCk9PlNafSk7dmFyIEcyYT1nKCgpPT57VWtlKCk7V2tlKCk7R2tlKCk7S2tlKCk7WWtlKCk7WmtlKCk7WGtlKCk7UWtlKCk7SmtlKCk7ZVNlKCk7dFNlKCk7YVNlKCk7c1NlKCk7aVNlKCk7clNlKCk7b1NlKCk7blNlKCk7bFNlKCk7Y1NlKCk7ZFNlKCk7dVNlKCk7cFNlKCk7aFNlKCk7ZlNlKCk7bVNlKCk7Z1NlKCk7YlNlKCk7dlNlKCk7eFNlKCk7eVNlKCk7d1NlKCk7a1NlKCk7U1NlKCk7X1NlKCk7TVNlKCk7elNlKCk7Q1NlKCk7VFNlKCk7JFNlKCk7RFNlKCk7TFNlKCk7RVNlKCk7UFNlKCk7SVNlKCk7QVNlKCk7TlNlKCk7UlNlKCk7T1NlKCk7RlNlKCk7QlNlKCk7SFNlKCk7cVNlKCk7alNlKCk7VlNlKCk7VVNlKCk7V1NlKCk7R1NlKCk7S1NlKCk7WVNlKCk7WlNlKCk7WFNlKCk7UVNlKCk7SlNlKCk7ZV9lKCk7dF9lKCk7YV9lKCk7c19lKCk7aV9lKCk7cl9lKCk7b19lKCk7bl9lKCk7bF9lKCk7Y19lKCk7ZF9lKCk7dV9lKCk7cF9lKCk7aF9lKCk7Zl9lKCk7bV9lKCk7Z19lKCk7Yl9lKCk7dl9lKCk7eF9lKCk7eV9lKCk7d19lKCk7a19lKCk7U19lKCk7X19lKCk7TV9lKCk7el9lKCk7Q19lKCk7VF9lKCk7JF9lKCk7RF9lKCk7TF9lKCk7RV9lKCk7UF9lKCk7SV9lKCk7QV9lKCk7Tl9lKCk7Ul9lKCk7T19lKCk7Rl9lKCk7Ql9lKCk7SF9lKCk7cV9lKCk7al9lKCk7Vl9lKCk7VV9lKCk7V19lKCk7R19lKCk7S19lKCk7WV9lKCk7Wl9lKCk7WF9lKCk7UV9lKCk7Sl9lKCk7ZU1lKCk7dE1lKCk7YU1lKCk7c01lKCk7aU1lKCk7ck1lKCk7b01lKCk7bk1lKCk7bE1lKCk7Y01lKCk7ZE1lKCk7dU1lKCk7cE1lKCk7aE1lKCk7Zk1lKCk7bU1lKCk7Z01lKCk7Yk1lKCk7dk1lKCk7eE1lKCk7eU1lKCk7d01lKCk7a01lKCk7U01lKCk7X01lKCk7TU1lKCk7ek1lKCk7Q01lKCk7VE1lKCk7JE1lKCk7RE1lKCk7TE1lKCk7RU1lKCk7UE1lKCk7SU1lKCk7QU1lKCk7Tk1lKCk7Uk1lKCk7T01lKCk7Rk1lKCk7Qk1lKCk7SE1lKCk7cU1lKCk7ak1lKCk7Vk1lKCk7VU1lKCk7V01lKCk7R01lKCk7S01lKCk7WU1lKCk7Wk1lKCk7WE1lKCk7UU1lKCk7Sk1lKCk7ZXplKCk7dHplKCk7YXplKCk7c3plKCk7aXplKCk7cnplKCk7b3plKCk7bnplKCk7bHplKCk7Y3plKCk7ZHplKCk7dXplKCk7cHplKCk7aHplKCk7ZnplKCk7bXplKCk7Z3plKCk7YnplKCk7dnplKCk7eHplKCk7eXplKCk7d3plKCk7a3plKCk7U3plKCk7X3plKCk7TXplKCk7enplKCk7Q3plKCk7VHplKCk7JHplKCk7RHplKCk7THplKCk7RXplKCk7UHplKCk7SXplKCk7QXplKCk7TnplKCk7UnplKCk7T3plKCk7RnplKCk7QnplKCk7SHplKCk7cXplKCk7anplKCk7VnplKCk7VXplKCk7V3plKCk7R3plKCk7S3plKCk7WXplKCk7WnplKCk7WHplKCk7UXplKCk7SnplKCk7ZUNlKCk7dENlKCk7YUNlKCk7c0NlKCk7aUNlKCk7ckNlKCk7b0NlKCk7bkNlKCk7bENlKCk7Y0NlKCk7ZENlKCk7dUNlKCk7cENlKCk7aENlKCk7ZkNlKCk7bUNlKCk7Z0NlKCk7YkNlKCk7dkNlKCk7eENlKCk7eUNlKCk7d0NlKCk7a0NlKCk7U0NlKCk7X0NlKCk7TUNlKCk7ekNlKCk7Q0NlKCk7VENlKCk7JENlKCk7RENlKCk7TENlKCk7RUNlKCk7UENlKCk7SUNlKCk7QUNlKCk7TkNlKCk7UkNlKCk7T0NlKCk7RkNlKCk7QkNlKCk7SENlKCk7cUNlKCk7akNlKCk7VkNlKCk7VUNlKCk7V0NlKCk7R0NlKCk7S0NlKCk7WUNlKCk7WkNlKCk7WENlKCk7UUNlKCk7SkNlKCk7ZVRlKCk7dFRlKCk7YVRlKCk7c1RlKCk7aVRlKCk7clRlKCk7b1RlKCk7blRlKCk7bFRlKCk7Y1RlKCk7ZFRlKCk7dVRlKCk7cFRlKCk7aFRlKCk7ZlRlKCk7bVRlKCk7Z1RlKCk7YlRlKCk7dlRlKCk7eFRlKCk7eVRlKCk7d1RlKCk7a1RlKCk7U1RlKCk7X1RlKCk7TVRlKCk7elRlKCk7Q1RlKCk7VFRlKCk7JFRlKCk7RFRlKCk7TFRlKCk7RVRlKCk7UFRlKCk7SVRlKCk7QVRlKCk7TlRlKCk7UlRlKCk7T1RlKCk7RlRlKCk7QlRlKCk7SFRlKCk7cVRlKCk7alRlKCk7VlRlKCk7VVRlKCk7V1RlKCk7R1RlKCk7S1RlKCk7WVRlKCk7WlRlKCk7WFRlKCk7UVRlKCk7SlRlKCk7ZSRlKCk7dCRlKCk7YSRlKCk7cyRlKCk7aSRlKCk7ciRlKCk7byRlKCk7biRlKCk7bCRlKCk7YyRlKCk7ZCRlKCk7dSRlKCk7cCRlKCk7aCRlKCk7ZiRlKCk7bSRlKCk7ZyRlKCk7YiRlKCk7diRlKCk7eCRlKCk7eSRlKCk7dyRlKCk7ayRlKCk7UyRlKCk7XyRlKCk7TSRlKCk7eiRlKCk7QyRlKCk7VCRlKCk7JCRlKCk7RCRlKCk7TCRlKCk7RSRlKCk7UCRlKCk7SSRlKCk7QSRlKCk7TiRlKCk7UiRlKCk7TyRlKCk7RiRlKCk7QiRlKCk7SCRlKCk7cSRlKCk7aiRlKCk7ViRlKCk7VSRlKCk7VyRlKCk7RyRlKCk7SyRlKCk7WSRlKCk7WiRlKCk7WCRlKCk7USRlKCk7SiRlKCk7ZURlKCk7dERlKCk7YURlKCk7c0RlKCk7aURlKCk7ckRlKCk7b0RlKCk7bkRlKCk7bERlKCk7Y0RlKCk7ZERlKCk7dURlKCk7cERlKCk7aERlKCk7ZkRlKCk7bURlKCk7Z0RlKCk7YkRlKCk7dkRlKCk7eERlKCk7eURlKCk7d0RlKCk7a0RlKCk7U0RlKCk7X0RlKCk7TURlKCk7ekRlKCk7Q0RlKCk7VERlKCk7JERlKCk7RERlKCk7TERlKCk7RURlKCk7UERlKCk7SURlKCk7QURlKCk7TkRlKCk7UkRlKCk7T0RlKCk7RkRlKCk7QkRlKCk7SERlKCk7cURlKCk7akRlKCk7VkRlKCk7VURlKCk7V0RlKCk7R0RlKCk7S0RlKCk7WURlKCk7WkRlKCk7WERlKCk7UURlKCk7SkRlKCk7ZUxlKCk7dExlKCk7YUxlKCk7c0xlKCk7aUxlKCk7ckxlKCk7b0xlKCk7bkxlKCk7bExlKCk7Y0xlKCk7ZExlKCk7dUxlKCk7cExlKCk7aExlKCk7ZkxlKCk7bUxlKCk7Z0xlKCk7YkxlKCk7dkxlKCk7eExlKCk7eUxlKCk7d0xlKCk7a0xlKCk7U0xlKCk7X0xlKCk7TUxlKCk7ekxlKCk7Q0xlKCk7VExlKCk7JExlKCk7RExlKCk7TExlKCk7RUxlKCk7UExlKCk7SUxlKCk7QUxlKCk7TkxlKCk7UkxlKCk7T0xlKCk7RkxlKCk7QkxlKCk7SExlKCk7cUxlKCk7akxlKCk7VkxlKCk7VUxlKCk7V0xlKCk7R0xlKCk7S0xlKCk7WUxlKCk7WkxlKCk7WExlKCk7UUxlKCk7SkxlKCk7ZUVlKCk7dEVlKCk7YUVlKCk7c0VlKCk7aUVlKCk7ckVlKCk7b0VlKCk7bkVlKCk7bEVlKCk7Y0VlKCk7ZEVlKCk7dUVlKCk7cEVlKCk7aEVlKCk7ZkVlKCk7bUVlKCk7Z0VlKCk7YkVlKCk7dkVlKCk7eEVlKCk7eUVlKCk7d0VlKCk7a0VlKCk7U0VlKCk7X0VlKCk7TUVlKCk7ekVlKCk7Q0VlKCk7VEVlKCk7JEVlKCk7REVlKCk7TEVlKCk7RUVlKCk7UEVlKCk7SUVlKCk7QUVlKCk7TkVlKCk7UkVlKCk7T0VlKCk7RkVlKCk7QkVlKCk7SEVlKCk7cUVlKCk7akVlKCk7VkVlKCk7VUVlKCk7V0VlKCk7R0VlKCk7S0VlKCk7WUVlKCk7WkVlKCk7WEVlKCk7UUVlKCk7SkVlKCk7ZVBlKCk7dFBlKCk7YVBlKCk7c1BlKCk7aVBlKCk7clBlKCk7b1BlKCk7blBlKCk7bFBlKCk7Y1BlKCk7ZFBlKCk7dVBlKCk7cFBlKCk7aFBlKCk7ZlBlKCk7bVBlKCk7Z1BlKCk7YlBlKCk7dlBlKCk7eFBlKCk7eVBlKCk7d1BlKCk7a1BlKCk7U1BlKCk7X1BlKCk7TVBlKCk7elBlKCk7Q1BlKCk7VFBlKCk7JFBlKCk7RFBlKCk7TFBlKCk7RVBlKCk7UFBlKCk7SVBlKCk7QVBlKCk7TlBlKCk7UlBlKCk7T1BlKCk7RlBlKCk7QlBlKCk7SFBlKCk7cVBlKCk7alBlKCk7VlBlKCk7VVBlKCk7V1BlKCk7R1BlKCk7S1BlKCk7WVBlKCk7WlBlKCk7WFBlKCk7UVBlKCk7SlBlKCk7ZUllKCk7dEllKCk7YUllKCk7c0llKCk7aUllKCk7ckllKCk7b0llKCk7bkllKCk7bEllKCk7Y0llKCk7ZEllKCk7dUllKCk7cEllKCk7aEllKCk7ZkllKCk7bUllKCk7Z0llKCk7YkllKCk7dkllKCk7eEllKCk7eUllKCk7d0llKCk7a0llKCk7U0llKCk7X0llKCk7TUllKCk7ekllKCk7Q0llKCk7VEllKCk7JEllKCk7REllKCk7TEllKCk7RUllKCk7UEllKCk7SUllKCk7QUllKCk7TkllKCk7UkllKCk7T0llKCk7RkllKCk7QkllKCk7SEllKCk7cUllKCk7akllKCk7VkllKCk7VUllKCk7V0llKCk7R0llKCk7S0llKCk7WUllKCk7WkllKCk7WEllKCk7UUllKCk7SkllKCk7ZUFlKCk7dEFlKCk7YUFlKCk7c0FlKCk7aUFlKCk7ckFlKCk7b0FlKCk7bkFlKCk7bEFlKCk7Y0FlKCk7ZEFlKCk7dUFlKCk7cEFlKCk7aEFlKCk7ZkFlKCk7bUFlKCk7Z0FlKCk7YkFlKCk7dkFlKCk7eEFlKCk7eUFlKCk7d0FlKCk7a0FlKCk7U0FlKCk7X0FlKCk7TUFlKCk7ekFlKCk7Q0FlKCk7VEFlKCk7JEFlKCk7REFlKCk7TEFlKCk7RUFlKCk7UEFlKCk7SUFlKCk7QUFlKCk7TkFlKCk7UkFlKCk7T0FlKCk7RkFlKCk7QkFlKCk7SEFlKCk7cUFlKCk7akFlKCk7VkFlKCk7VUFlKCk7V0FlKCk7R0FlKCk7S0FlKCk7WUFlKCk7WkFlKCk7WEFlKCk7UUFlKCk7SkFlKCk7ZU5lKCk7dE5lKCk7YU5lKCk7c05lKCk7aU5lKCk7ck5lKCk7b05lKCk7bk5lKCk7bE5lKCk7Y05lKCk7ZE5lKCk7dU5lKCk7cE5lKCk7aE5lKCk7Zk5lKCk7bU5lKCk7Z05lKCk7Yk5lKCk7dk5lKCk7eE5lKCk7eU5lKCk7d05lKCk7a05lKCk7U05lKCk7X05lKCk7TU5lKCk7ek5lKCk7Q05lKCk7VE5lKCk7JE5lKCk7RE5lKCk7TE5lKCk7RU5lKCk7UE5lKCk7SU5lKCk7QU5lKCk7Tk5lKCk7Uk5lKCk7T05lKCk7Rk5lKCk7Qk5lKCk7SE5lKCk7cU5lKCk7ak5lKCk7Vk5lKCk7VU5lKCk7V05lKCk7R05lKCk7S05lKCk7WU5lKCk7Wk5lKCk7WE5lKCk7UU5lKCk7Sk5lKCk7ZVJlKCk7dFJlKCk7YVJlKCk7c1JlKCk7aVJlKCk7clJlKCk7b1JlKCk7blJlKCk7bFJlKCk7Y1JlKCk7ZFJlKCk7dVJlKCk7cFJlKCk7aFJlKCk7ZlJlKCk7bVJlKCk7Z1JlKCk7YlJlKCk7dlJlKCk7eFJlKCk7eVJlKCk7d1JlKCk7a1JlKCk7U1JlKCk7X1JlKCk7TVJlKCk7elJlKCk7Q1JlKCk7VFJlKCk7JFJlKCk7RFJlKCk7TFJlKCk7RVJlKCk7UFJlKCk7SVJlKCk7QVJlKCk7TlJlKCk7UlJlKCk7T1JlKCk7RlJlKCk7QlJlKCk7SFJlKCk7cVJlKCk7alJlKCk7VlJlKCk7VVJlKCk7V1JlKCk7R1JlKCk7S1JlKCk7WVJlKCk7WlJlKCk7WFJlKCk7UVJlKCk7SlJlKCk7ZU9lKCk7dE9lKCk7YU9lKCk7c09lKCk7aU9lKCk7ck9lKCk7b09lKCk7bk9lKCk7bE9lKCk7Y09lKCk7ZE9lKCk7dU9lKCk7cE9lKCk7aE9lKCk7Zk9lKCk7bU9lKCk7Z09lKCk7Yk9lKCk7dk9lKCk7eE9lKCk7eU9lKCk7d09lKCk7a09lKCk7U09lKCk7X09lKCk7TU9lKCk7ek9lKCk7Q09lKCk7VE9lKCk7JE9lKCk7RE9lKCk7TE9lKCk7RU9lKCk7UE9lKCk7SU9lKCk7QU9lKCk7Tk9lKCk7Uk9lKCk7T09lKCk7Rk9lKCk7Qk9lKCk7SE9lKCk7cU9lKCk7ak9lKCk7Vk9lKCk7VU9lKCk7V09lKCk7R09lKCk7S09lKCk7WU9lKCk7Wk9lKCk7WE9lKCk7UU9lKCk7Sk9lKCk7ZUZlKCk7dEZlKCk7YUZlKCk7c0ZlKCk7aUZlKCk7ckZlKCk7b0ZlKCk7bkZlKCk7bEZlKCk7Y0ZlKCk7ZEZlKCk7dUZlKCk7cEZlKCk7aEZlKCk7ZkZlKCk7bUZlKCk7Z0ZlKCk7YkZlKCk7dkZlKCk7eEZlKCk7eUZlKCk7d0ZlKCk7a0ZlKCk7U0ZlKCk7X0ZlKCk7TUZlKCk7ekZlKCk7Q0ZlKCk7VEZlKCk7JEZlKCk7REZlKCk7TEZlKCk7RUZlKCk7UEZlKCk7SUZlKCk7QUZlKCk7TkZlKCk7UkZlKCk7T0ZlKCk7RkZlKCk7QkZlKCk7SEZlKCk7cUZlKCk7akZlKCk7VkZlKCk7VUZlKCk7V0ZlKCk7R0ZlKCk7S0ZlKCk7WUZlKCk7WkZlKCk7WEZlKCk7UUZlKCk7SkZlKCk7ZUJlKCk7dEJlKCk7YUJlKCk7c0JlKCk7aUJlKCk7ckJlKCk7b0JlKCk7bkJlKCk7bEJlKCk7Y0JlKCk7ZEJlKCk7dUJlKCk7cEJlKCk7aEJlKCk7ZkJlKCk7bUJlKCk7Z0JlKCk7YkJlKCk7dkJlKCk7eEJlKCk7eUJlKCk7d0JlKCk7a0JlKCk7U0JlKCk7X0JlKCk7TUJlKCk7ekJlKCk7Q0JlKCk7VEJlKCk7JEJlKCk7REJlKCk7TEJlKCk7RUJlKCk7UEJlKCk7SUJlKCk7QUJlKCk7TkJlKCk7UkJlKCk7T0JlKCk7RkJlKCk7QkJlKCk7SEJlKCk7cUJlKCk7akJlKCk7VkJlKCk7VUJlKCk7V0JlKCk7R0JlKCk7S0JlKCk7WUJlKCk7WkJlKCk7WEJlKCk7UUJlKCk7SkJlKCk7ZUhlKCk7dEhlKCk7YUhlKCk7c0hlKCk7aUhlKCk7ckhlKCk7b0hlKCk7bkhlKCk7bEhlKCk7Y0hlKCk7ZEhlKCk7dUhlKCk7cEhlKCk7aEhlKCk7ZkhlKCk7bUhlKCk7Z0hlKCk7YkhlKCk7dkhlKCk7eEhlKCk7eUhlKCk7d0hlKCk7a0hlKCk7U0hlKCk7X0hlKCk7TUhlKCk7ekhlKCk7Q0hlKCk7VEhlKCk7JEhlKCk7REhlKCk7TEhlKCk7RUhlKCk7UEhlKCk7SUhlKCk7QUhlKCk7TkhlKCk7UkhlKCk7T0hlKCk7RkhlKCk7QkhlKCk7SEhlKCk7cUhlKCk7akhlKCk7VkhlKCk7VUhlKCk7V0hlKCk7R0hlKCk7S0hlKCk7WUhlKCk7WkhlKCk7WEhlKCk7UUhlKCk7SkhlKCk7ZXFlKCk7dHFlKCk7YXFlKCk7c3FlKCk7aXFlKCk7cnFlKCk7b3FlKCk7bnFlKCk7bHFlKCk7Y3FlKCk7ZHFlKCk7dXFlKCk7cHFlKCk7aHFlKCk7ZnFlKCk7bXFlKCk7Z3FlKCk7YnFlKCk7dnFlKCk7eHFlKCk7eXFlKCk7d3FlKCk7a3FlKCk7U3FlKCk7X3FlKCk7TXFlKCk7enFlKCk7Q3FlKCk7VHFlKCk7JHFlKCk7RHFlKCk7THFlKCk7RXFlKCk7UHFlKCk7SXFlKCk7QXFlKCk7TnFlKCk7UnFlKCk7T3FlKCk7RnFlKCk7QnFlKCk7SHFlKCk7cXFlKCk7anFlKCk7VnFlKCk7VXFlKCk7V3FlKCk7R3FlKCk7S3FlKCk7WXFlKCk7WnFlKCk7WHFlKCk7UXFlKCk7SnFlKCk7ZWplKCk7dGplKCk7YWplKCk7c2plKCk7aWplKCk7cmplKCk7b2plKCk7bmplKCk7bGplKCk7Y2plKCk7ZGplKCk7dWplKCk7cGplKCk7aGplKCk7ZmplKCk7bWplKCk7Z2plKCk7YmplKCk7dmplKCk7eGplKCk7eWplKCk7d2plKCk7a2plKCk7U2plKCk7X2plKCk7TWplKCk7emplKCk7Q2plKCk7VGplKCk7JGplKCk7RGplKCk7TGplKCk7RWplKCk7UGplKCk7SWplKCk7QWplKCk7TmplKCk7UmplKCk7T2plKCk7RmplKCk7QmplKCk7SGplKCk7cWplKCk7amplKCk7VmplKCk7VWplKCk7V2plKCk7R2plKCk7S2plKCk7WWplKCk7WmplKCk7WGplKCk7UWplKCk7SmplKCk7ZVZlKCk7dFZlKCk7YVZlKCk7c1ZlKCk7aVZlKCk7clZlKCk7b1ZlKCk7blZlKCk7bFZlKCk7Y1ZlKCk7ZFZlKCk7dVZlKCk7cFZlKCk7aFZlKCk7ZlZlKCk7bVZlKCk7Z1ZlKCk7YlZlKCk7dlZlKCk7eFZlKCk7eVZlKCk7d1ZlKCk7a1ZlKCk7U1ZlKCk7X1ZlKCk7TVZlKCk7elZlKCk7Q1ZlKCk7VFZlKCk7JFZlKCk7RFZlKCk7TFZlKCk7RVZlKCk7UFZlKCk7SVZlKCk7QVZlKCk7TlZlKCk7UlZlKCk7T1ZlKCk7RlZlKCk7QlZlKCk7SFZlKCk7cVZlKCk7alZlKCk7VlZlKCk7VVZlKCk7V1ZlKCk7R1ZlKCk7S1ZlKCk7WVZlKCk7WlZlKCk7WFZlKCk7UVZlKCk7SlZlKCk7ZVVlKCk7dFVlKCk7YVVlKCk7c1VlKCk7aVVlKCk7clVlKCk7b1VlKCk7blVlKCk7bFVlKCk7Y1VlKCk7ZFVlKCk7dVVlKCk7cFVlKCk7aFVlKCk7ZlVlKCk7bVVlKCk7Z1VlKCk7YlVlKCk7dlVlKCk7eFVlKCk7eVVlKCk7d1VlKCk7a1VlKCk7U1VlKCk7X1VlKCk7TVVlKCk7elVlKCk7Q1VlKCk7VFVlKCk7JFVlKCk7RFVlKCk7TFVlKCk7RVVlKCk7UFVlKCk7SVVlKCk7QVVlKCk7TlVlKCk7UlVlKCk7T1VlKCk7RlVlKCk7QlVlKCk7SFVlKCk7cVVlKCk7alVlKCk7VlVlKCk7VVVlKCk7V1VlKCk7R1VlKCk7S1VlKCk7WVVlKCk7WlVlKCk7WFVlKCk7UVVlKCk7SlVlKCk7ZVdlKCk7dFdlKCk7YVdlKCk7c1dlKCk7aVdlKCk7cldlKCk7b1dlKCk7bldlKCk7bFdlKCk7Y1dlKCk7ZFdlKCk7dVdlKCk7cFdlKCk7aFdlKCk7ZldlKCk7bVdlKCk7Z1dlKCk7YldlKCk7dldlKCk7eFdlKCk7eVdlKCk7d1dlKCk7a1dlKCk7U1dlKCk7X1dlKCk7TVdlKCk7eldlKCk7Q1dlKCk7VFdlKCk7JFdlKCk7RFdlKCk7TFdlKCk7RVdlKCk7UFdlKCk7SVdlKCk7QVdlKCk7TldlKCk7UldlKCk7T1dlKCk7RldlKCk7QldlKCk7SFdlKCk7cVdlKCk7aldlKCk7VldlKCk7VVdlKCk7V1dlKCk7R1dlKCk7S1dlKCk7WVdlKCk7WldlKCk7WFdlKCk7UVdlKCk7SldlKCk7ZUdlKCk7dEdlKCk7YUdlKCk7c0dlKCk7aUdlKCk7ckdlKCk7b0dlKCk7bkdlKCk7bEdlKCk7Y0dlKCk7ZEdlKCk7dUdlKCk7cEdlKCk7aEdlKCk7ZkdlKCk7bUdlKCk7Z0dlKCk7YkdlKCk7dkdlKCk7eEdlKCk7eUdlKCk7d0dlKCk7a0dlKCk7U0dlKCk7X0dlKCk7TUdlKCk7ekdlKCk7Q0dlKCk7VEdlKCk7JEdlKCk7REdlKCk7TEdlKCk7RUdlKCk7UEdlKCk7SUdlKCk7QUdlKCk7TkdlKCk7UkdlKCk7T0dlKCk7RkdlKCk7QkdlKCk7SEdlKCk7cUdlKCk7akdlKCk7VkdlKCk7VUdlKCk7V0dlKCk7R0dlKCk7S0dlKCk7WUdlKCk7WkdlKCk7WEdlKCk7UUdlKCk7SkdlKCk7ZUtlKCk7dEtlKCk7YUtlKCk7c0tlKCk7aUtlKCk7cktlKCk7b0tlKCk7bktlKCk7bEtlKCk7Y0tlKCk7ZEtlKCk7dUtlKCk7cEtlKCk7aEtlKCk7ZktlKCk7bUtlKCk7Z0tlKCk7YktlKCk7dktlKCk7eEtlKCk7eUtlKCk7d0tlKCk7a0tlKCk7U0tlKCk7X0tlKCk7TUtlKCk7ektlKCk7Q0tlKCk7VEtlKCk7JEtlKCk7REtlKCk7TEtlKCk7RUtlKCk7UEtlKCk7SUtlKCk7QUtlKCk7TktlKCk7UktlKCk7T0tlKCk7RktlKCk7QktlKCk7SEtlKCk7cUtlKCk7aktlKCk7VktlKCk7VUtlKCk7V0tlKCk7R0tlKCk7S0tlKCk7WUtlKCk7WktlKCk7WEtlKCk7UUtlKCk7SktlKCk7ZVllKCk7dFllKCk7YVllKCk7c1llKCk7aVllKCk7clllKCk7b1llKCk7blllKCk7bFllKCk7Y1llKCk7ZFllKCk7dVllKCk7cFllKCk7aFllKCk7ZlllKCk7bVllKCk7Z1llKCk7YlllKCk7dlllKCk7eFllKCk7eVllKCk7d1llKCk7a1llKCk7U1llKCk7X1llKCk7TVllKCk7elllKCk7Q1llKCk7VFllKCk7JFllKCk7RFllKCk7TFllKCk7RVllKCk7UFllKCk7SVllKCk7QVllKCk7TlllKCk7UlllKCk7T1llKCk7RlllKCk7QlllKCk7SFllKCk7cVllKCk7alllKCk7VlllKCk7VVllKCk7V1llKCk7R1llKCk7S1llKCk7WVllKCk7WlllKCk7WFllKCk7UVllKCk7SlllKCk7ZVplKCk7dFplKCk7YVplKCk7c1plKCk7aVplKCk7clplKCk7b1plKCk7blplKCk7bFplKCk7Y1plKCk7ZFplKCk7dVplKCk7cFplKCk7aFplKCk7ZlplKCk7bVplKCk7Z1plKCk7YlplKCk7dlplKCk7eFplKCk7eVplKCk7d1plKCk7a1plKCk7U1plKCk7X1plKCk7TVplKCk7elplKCk7Q1plKCk7VFplKCk7JFplKCk7RFplKCk7TFplKCk7RVplKCk7UFplKCk7SVplKCk7QVplKCk7TlplKCk7UlplKCk7T1plKCk7RlplKCk7QlplKCk7SFplKCk7cVplKCk7alplKCk7VlplKCk7VVplKCk7V1plKCk7R1plKCk7S1plKCk7WVplKCk7WlplKCk7WFplKCk7UVplKCk7SlplKCk7ZVhlKCk7dFhlKCk7YVhlKCk7c1hlKCk7aVhlKCk7clhlKCk7b1hlKCk7blhlKCk7bFhlKCk7Y1hlKCk7ZFhlKCk7dVhlKCk7cFhlKCk7aFhlKCk7ZlhlKCk7bVhlKCk7Z1hlKCk7YlhlKCk7dlhlKCk7eFhlKCk7eVhlKCk7d1hlKCk7a1hlKCk7U1hlKCk7X1hlKCk7TVhlKCk7elhlKCk7Q1hlKCk7VFhlKCk7JFhlKCk7RFhlKCk7TFhlKCk7RVhlKCk7UFhlKCk7SVhlKCk7QVhlKCk7TlhlKCk7UlhlKCk7T1hlKCk7RlhlKCk7QlhlKCk7SFhlKCk7cVhlKCk7alhlKCk7VlhlKCk7VVhlKCk7V1hlKCk7R1hlKCk7S1hlKCk7WVhlKCk7WlhlKCk7WFhlKCk7UVhlKCk7SlhlKCk7ZVFlKCk7dFFlKCk7YVFlKCk7c1FlKCk7aVFlKCk7clFlKCk7b1FlKCk7blFlKCk7bFFlKCk7Y1FlKCk7ZFFlKCk7dVFlKCk7cFFlKCk7aFFlKCk7ZlFlKCk7bVFlKCk7Z1FlKCk7YlFlKCk7dlFlKCk7eFFlKCk7eVFlKCk7d1FlKCk7a1FlKCk7U1FlKCk7X1FlKCk7TVFlKCk7elFlKCk7Q1FlKCk7VFFlKCk7JFFlKCk7RFFlKCk7TFFlKCk7RVFlKCk7UFFlKCk7SVFlKCk7QVFlKCk7TlFlKCk7UlFlKCk7T1FlKCk7RlFlKCk7QlFlKCk7SFFlKCk7cVFlKCk7alFlKCk7VlFlKCk7VVFlKCk7V1FlKCk7R1FlKCk7S1FlKCk7WVFlKCk7WlFlKCk7WFFlKCk7UVFlKCk7SlFlKCk7ZUplKCk7dEplKCk7YUplKCk7c0plKCk7aUplKCk7ckplKCk7b0plKCk7bkplKCk7bEplKCk7Y0plKCk7ZEplKCk7dUplKCk7cEplKCk7aEplKCk7ZkplKCk7bUplKCk7Z0plKCk7YkplKCk7dkplKCk7eEplKCk7eUplKCk7d0plKCk7a0plKCk7U0plKCk7X0plKCk7TUplKCk7ekplKCk7Q0plKCk7VEplKCk7JEplKCk7REplKCk7TEplKCk7RUplKCk7UEplKCk7SUplKCk7QUplKCk7TkplKCk7UkplKCk7T0plKCk7RkplKCk7QkplKCk7SEplKCk7cUplKCk7akplKCk7VkplKCk7VUplKCk7V0plKCk7R0plKCk7S0plKCk7WUplKCk7WkplKCk7WEplKCk7UUplKCk7SkplKCk7ZWV0KCk7dGV0KCk7YWV0KCk7c2V0KCk7aWV0KCk7cmV0KCk7b2V0KCk7bmV0KCk7Y2V0KCk7ZGV0KCk7dWV0KCk7cGV0KCk7aGV0KCk7ZmV0KCk7bWV0KCk7Z2V0KCk7YmV0KCk7dmV0KCk7eGV0KCk7eWV0KCk7fSk7dmFyIEdyPXt9O3l0KEdyLHtBQXJyb3dEb3duOigpPT5oUyxBQXJyb3dVcDooKT0+ZlMsQUxhcmdlU21hbGw6KCk9Pm1TLEFjY2Vzc2liaWxpdHk6KCk9PmdTLEFjdGl2aXR5OigpPT5iUyxBY3Rpdml0eVNxdWFyZTooKT0+aTUsQWlyVmVudDooKT0+dlMsQWlycGxheTooKT0+eFMsQWxhcm1DaGVjazooKT0+eGYsQWxhcm1DbG9jazooKT0+d1MsQWxhcm1DbG9ja0NoZWNrOigpPT54ZixBbGFybUNsb2NrTWludXM6KCk9PnlmLEFsYXJtQ2xvY2tPZmY6KCk9PnlTLEFsYXJtQ2xvY2tQbHVzOigpPT53ZixBbGFybU1pbnVzOigpPT55ZixBbGFybVBsdXM6KCk9PndmLEFsYXJtU21va2U6KCk9PmtTLEFsYnVtOigpPT5TUyxBbGVydENpcmNsZTooKT0+WWYsQWxlcnRPY3RhZ29uOigpPT5QNixBbGVydFRyaWFuZ2xlOigpPT5wOCxBbGlnbkNlbnRlcjooKT0+cjgsQWxpZ25DZW50ZXJIb3Jpem9udGFsOigpPT5fUyxBbGlnbkNlbnRlclZlcnRpY2FsOigpPT5NUyxBbGlnbkVuZEhvcml6b250YWw6KCk9PnpTLEFsaWduRW5kVmVydGljYWw6KCk9PlRTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6KCk9PkNTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6KCk9PiRTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDooKT0+RFMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjooKT0+TFMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDooKT0+RVMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OigpPT5QUyxBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDooKT0+SVMsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOigpPT5SUyxBbGlnbkp1c3RpZnk6KCk9Pm44LEFsaWduTGVmdDooKT0+WDAsQWxpZ25SaWdodDooKT0+bzgsQWxpZ25TdGFydEhvcml6b250YWw6KCk9PkFTLEFsaWduU3RhcnRWZXJ0aWNhbDooKT0+TlMsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6KCk9Pk9TLEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOigpPT5GUyxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OigpPT5CUyxBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjooKT0+SFMsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6KCk9PnFTLEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6KCk9PmpTLEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDooKT0+VlMsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjooKT0+VVMsQW1idWxhbmNlOigpPT5XUyxBbXBlcnNhbmQ6KCk9PktTLEFtcGVyc2FuZHM6KCk9PkdTLEFtcGhvcmE6KCk9PllTLEFuY2hvcjooKT0+WlMsQW5ncnk6KCk9PlhTLEFubm95ZWQ6KCk9PlFTLEFudGVubmE6KCk9PkpTLEFudmlsOigpPT5lXyxBcGVydHVyZTooKT0+dF8sQXBwV2luZG93OigpPT5zXyxBcHBXaW5kb3dNYWM6KCk9PmFfLEFwcGxlOigpPT5yXyxBcmNoaXZlOigpPT5sXyxBcmNoaXZlUmVzdG9yZTooKT0+aV8sQXJjaGl2ZVg6KCk9Pm9fLEFyZWFDaGFydDooKT0+TmYsQXJtY2hhaXI6KCk9Pm5fLEFycm93QmlnRG93bjooKT0+ZF8sQXJyb3dCaWdEb3duRGFzaDooKT0+Y18sQXJyb3dCaWdMZWZ0OigpPT51XyxBcnJvd0JpZ0xlZnREYXNoOigpPT5wXyxBcnJvd0JpZ1JpZ2h0OigpPT5mXyxBcnJvd0JpZ1JpZ2h0RGFzaDooKT0+aF8sQXJyb3dCaWdVcDooKT0+Z18sQXJyb3dCaWdVcERhc2g6KCk9Pm1fLEFycm93RG93bjooKT0+el8sQXJyb3dEb3duMDE6KCk9PmJfLEFycm93RG93bjEwOigpPT52XyxBcnJvd0Rvd25BWjooKT0+a2YsQXJyb3dEb3duQXo6KCk9PmtmLEFycm93RG93bkNpcmNsZTooKT0+WmYsQXJyb3dEb3duRnJvbUxpbmU6KCk9PnhfLEFycm93RG93bkxlZnQ6KCk9PnlfLEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOigpPT5RZixBcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZTooKT0+YzUsQXJyb3dEb3duTGVmdFNxdWFyZTooKT0+cjUsQXJyb3dEb3duTmFycm93V2lkZTooKT0+d18sQXJyb3dEb3duUmlnaHQ6KCk9PmtfLEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTooKT0+SmYsQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlOigpPT5kNSxBcnJvd0Rvd25SaWdodFNxdWFyZTooKT0+bzUsQXJyb3dEb3duU3F1YXJlOigpPT5uNSxBcnJvd0Rvd25Ub0RvdDooKT0+U18sQXJyb3dEb3duVG9MaW5lOigpPT5NXyxBcnJvd0Rvd25VcDooKT0+X18sQXJyb3dEb3duV2lkZU5hcnJvdzooKT0+U2YsQXJyb3dEb3duWkE6KCk9Pl9mLEFycm93RG93blphOigpPT5fZixBcnJvd0xlZnQ6KCk9PkxfLEFycm93TGVmdENpcmNsZTooKT0+WGYsQXJyb3dMZWZ0RnJvbUxpbmU6KCk9PkNfLEFycm93TGVmdFJpZ2h0OigpPT5UXyxBcnJvd0xlZnRTcXVhcmU6KCk9Pmw1LEFycm93TGVmdFRvTGluZTooKT0+JF8sQXJyb3dSaWdodDooKT0+SV8sQXJyb3dSaWdodENpcmNsZTooKT0+YW0sQXJyb3dSaWdodEZyb21MaW5lOigpPT5EXyxBcnJvd1JpZ2h0TGVmdDooKT0+RV8sQXJyb3dSaWdodFNxdWFyZTooKT0+aDUsQXJyb3dSaWdodFRvTGluZTooKT0+UF8sQXJyb3dVcDooKT0+Vl8sQXJyb3dVcDAxOigpPT5OXyxBcnJvd1VwMTA6KCk9PkFfLEFycm93VXBBWjooKT0+TWYsQXJyb3dVcEF6OigpPT5NZixBcnJvd1VwQ2lyY2xlOigpPT5zbSxBcnJvd1VwRG93bjooKT0+Ul8sQXJyb3dVcEZyb21Eb3Q6KCk9Pk9fLEFycm93VXBGcm9tTGluZTooKT0+Rl8sQXJyb3dVcExlZnQ6KCk9PkJfLEFycm93VXBMZWZ0RnJvbUNpcmNsZTooKT0+ZW0sQXJyb3dVcExlZnRGcm9tU3F1YXJlOigpPT51NSxBcnJvd1VwTGVmdFNxdWFyZTooKT0+ZjUsQXJyb3dVcE5hcnJvd1dpZGU6KCk9PnpmLEFycm93VXBSaWdodDooKT0+SF8sQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTooKT0+dG0sQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTooKT0+cDUsQXJyb3dVcFJpZ2h0U3F1YXJlOigpPT5tNSxBcnJvd1VwU3F1YXJlOigpPT5nNSxBcnJvd1VwVG9MaW5lOigpPT5qXyxBcnJvd1VwV2lkZU5hcnJvdzooKT0+cV8sQXJyb3dVcFpBOigpPT5DZixBcnJvd1VwWmE6KCk9PkNmLEFycm93c1VwRnJvbUxpbmU6KCk9PldfLEFzdGVyaXNrOigpPT5VXyxBc3Rlcmlza1NxdWFyZTooKT0+YjUsQXN0cm9pZDooKT0+R18sQXRTaWduOigpPT5LXyxBdG9tOigpPT5ZXyxBdWRpb0xpbmVzOigpPT5aXyxBdWRpb1dhdmVmb3JtOigpPT5YXyxBd2FyZDooKT0+UV8sQXhlOigpPT5KXyxBeGlzM0Q6KCk9PlRmLEF4aXMzZDooKT0+VGYsQmFieTooKT0+ZU0sQmFja3BhY2s6KCk9PnRNLEJhZGdlOigpPT5iTSxCYWRnZUFsZXJ0OigpPT5hTSxCYWRnZUNlbnQ6KCk9PnNNLEJhZGdlQ2hlY2s6KCk9PiRmLEJhZGdlRG9sbGFyU2lnbjooKT0+aU0sQmFkZ2VFdXJvOigpPT5yTSxCYWRnZUhlbHA6KCk9PkRmLEJhZGdlSW5kaWFuUnVwZWU6KCk9Pm9NLEJhZGdlSW5mbzooKT0+bk0sQmFkZ2VKYXBhbmVzZVllbjooKT0+bE0sQmFkZ2VNaW51czooKT0+Y00sQmFkZ2VQZXJjZW50OigpPT5kTSxCYWRnZVBsdXM6KCk9PnVNLEJhZGdlUG91bmRTdGVybGluZzooKT0+cE0sQmFkZ2VRdWVzdGlvbk1hcms6KCk9PkRmLEJhZGdlUnVzc2lhblJ1YmxlOigpPT5mTSxCYWRnZVN3aXNzRnJhbmM6KCk9PmhNLEJhZGdlVHVya2lzaExpcmE6KCk9Pm1NLEJhZGdlWDooKT0+Z00sQmFnZ2FnZUNsYWltOigpPT52TSxCYWxsb29uOigpPT55TSxCYW46KCk9PnhNLEJhbmFuYTooKT0+d00sQmFuZGFnZTooKT0+a00sQmFua25vdGU6KCk9PnpNLEJhbmtub3RlQXJyb3dEb3duOigpPT5fTSxCYW5rbm90ZUFycm93VXA6KCk9PlNNLEJhbmtub3RlWDooKT0+TU0sQmFyQ2hhcnQ6KCk9PlZmLEJhckNoYXJ0MjooKT0+VWYsQmFyQ2hhcnQzOigpPT5xZixCYXJDaGFydDQ6KCk9PkhmLEJhckNoYXJ0QmlnOigpPT5CZixCYXJDaGFydEhvcml6b250YWw6KCk9Pk9mLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzooKT0+UmYsQmFyY29kZTooKT0+Q00sQmFycmVsOigpPT5UTSxCYXNlbGluZTooKT0+JE0sQmF0aDooKT0+RE0sQmF0dGVyeTooKT0+Uk0sQmF0dGVyeUNoYXJnaW5nOigpPT5MTSxCYXR0ZXJ5RnVsbDooKT0+RU0sQmF0dGVyeUxvdzooKT0+UE0sQmF0dGVyeU1lZGl1bTooKT0+SU0sQmF0dGVyeVBsdXM6KCk9PkFNLEJhdHRlcnlXYXJuaW5nOigpPT5OTSxCZWFrZXI6KCk9PkZNLEJlYW46KCk9PkhNLEJlYW5PZmY6KCk9Pk9NLEJlZDooKT0+Vk0sQmVkRG91YmxlOigpPT5CTSxCZWRTaW5nbGU6KCk9PnFNLEJlZWY6KCk9PlVNLEJlZWZPZmY6KCk9PmpNLEJlZXI6KCk9PkdNLEJlZXJPZmY6KCk9PldNLEJlbGw6KCk9PnR6LEJlbGxDaGVjazooKT0+S00sQmVsbERvdDooKT0+WU0sQmVsbEVsZWN0cmljOigpPT5aTSxCZWxsTWludXM6KCk9PlFNLEJlbGxPZmY6KCk9PlhNLEJlbGxQbHVzOigpPT5KTSxCZWxsUmluZzooKT0+ZXosQmV0d2Vlbkhvcml6b25hbEVuZDooKT0+TGYsQmV0d2Vlbkhvcml6b25hbFN0YXJ0OigpPT5FZixCZXR3ZWVuSG9yaXpvbnRhbEVuZDooKT0+TGYsQmV0d2Vlbkhvcml6b250YWxTdGFydDooKT0+RWYsQmV0d2VlblZlcnRpY2FsRW5kOigpPT5heixCZXR3ZWVuVmVydGljYWxTdGFydDooKT0+c3osQmljZXBzRmxleGVkOigpPT5peixCaWtlOigpPT5yeixCaW5hcnk6KCk9Pm96LEJpbm9jdWxhcnM6KCk9Pm56LEJpb2hhemFyZDooKT0+bHosQmlyZDooKT0+Y3osQmlyZGhvdXNlOigpPT5keixCaXRjb2luOigpPT51eixCbGVuZDooKT0+cHosQmxpbmRzOigpPT5oeixCbG9ja3M6KCk9PmZ6LEJsdWV0b290aDooKT0+YnosQmx1ZXRvb3RoQ29ubmVjdGVkOigpPT5teixCbHVldG9vdGhPZmY6KCk9Pmd6LEJsdWV0b290aFNlYXJjaGluZzooKT0+dnosQm9sZDooKT0+eHosQm9sdDooKT0+d3osQm9tYjooKT0+eXosQm9uZTooKT0+a3osQm9vazooKT0+R3osQm9va0E6KCk9PlN6LEJvb2tBbGVydDooKT0+X3osQm9va0F1ZGlvOigpPT5NeixCb29rQ2hlY2s6KCk9Pnp6LEJvb2tDb3B5OigpPT5DeixCb29rRGFzaGVkOigpPT5QZixCb29rRG93bjooKT0+VHosQm9va0hlYWRwaG9uZXM6KCk9PiR6LEJvb2tIZWFydDooKT0+RHosQm9va0ltYWdlOigpPT5MeixCb29rS2V5OigpPT5FeixCb29rTG9jazooKT0+SXosQm9va01hcmtlZDooKT0+UHosQm9va01pbnVzOigpPT5BeixCb29rT3BlbjooKT0+RnosQm9va09wZW5DaGVjazooKT0+TnosQm9va09wZW5UZXh0OigpPT5SeixCb29rUGx1czooKT0+QnosQm9va1NlYXJjaDooKT0+T3osQm9va1RlbXBsYXRlOigpPT5QZixCb29rVGV4dDooKT0+SHosQm9va1R5cGU6KCk9PlZ6LEJvb2tVcDooKT0+anosQm9va1VwMjooKT0+cXosQm9va1VzZXI6KCk9PlV6LEJvb2tYOigpPT5XeixCb29rbWFyazooKT0+SnosQm9va21hcmtDaGVjazooKT0+S3osQm9va21hcmtNaW51czooKT0+WXosQm9va21hcmtPZmY6KCk9Plp6LEJvb2ttYXJrUGx1czooKT0+WHosQm9va21hcmtYOigpPT5ReixCb29tQm94OigpPT5lQyxCb3Q6KCk9PnNDLEJvdE1lc3NhZ2VTcXVhcmU6KCk9PnRDLEJvdE9mZjooKT0+YUMsQm90dGxlV2luZTooKT0+ckMsQm93QXJyb3c6KCk9PmlDLEJveDooKT0+b0MsQm94U2VsZWN0OigpPT5ENSxCb3hlczooKT0+bkMsQnJhY2VzOigpPT5JZixCcmFja2V0czooKT0+bEMsQnJhaW46KCk9PnBDLEJyYWluQ2lyY3VpdDooKT0+Y0MsQnJhaW5Db2c6KCk9PmRDLEJyaWNrV2FsbDooKT0+ZkMsQnJpY2tXYWxsRmlyZTooKT0+dUMsQnJpY2tXYWxsU2hpZWxkOigpPT5oQyxCcmllZmNhc2U6KCk9PnZDLEJyaWVmY2FzZUJ1c2luZXNzOigpPT5tQyxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9PmdDLEJyaWVmY2FzZU1lZGljYWw6KCk9PmJDLEJyaW5nVG9Gcm9udDooKT0+eEMsQnJ1c2g6KCk9PndDLEJydXNoQ2xlYW5pbmc6KCk9PnlDLEJ1YmJsZXM6KCk9PlNDLEJ1ZzooKT0+TUMsQnVnT2ZmOigpPT5rQyxCdWdQbGF5OigpPT5fQyxCdWlsZGluZzooKT0+ekMsQnVpbGRpbmcyOigpPT5DQyxCdXM6KCk9PiRDLEJ1c0Zyb250OigpPT5UQyxDYWJsZTooKT0+REMsQ2FibGVDYXI6KCk9PkxDLENha2U6KCk9PlBDLENha2VTbGljZTooKT0+RUMsQ2FsY3VsYXRvcjooKT0+QUMsQ2FsZW5kYXI6KCk9PnRULENhbGVuZGFyMTooKT0+SUMsQ2FsZW5kYXJBcnJvd0Rvd246KCk9Pk5DLENhbGVuZGFyQXJyb3dVcDooKT0+UkMsQ2FsZW5kYXJDaGVjazooKT0+RkMsQ2FsZW5kYXJDaGVjazI6KCk9Pk9DLENhbGVuZGFyQ2xvY2s6KCk9PkJDLENhbGVuZGFyQ29nOigpPT5IQyxDYWxlbmRhckRheXM6KCk9PnFDLENhbGVuZGFyRm9sZDooKT0+akMsQ2FsZW5kYXJIZWFydDooKT0+VUMsQ2FsZW5kYXJNaW51czooKT0+R0MsQ2FsZW5kYXJNaW51czI6KCk9PlZDLENhbGVuZGFyT2ZmOigpPT5XQyxDYWxlbmRhclBsdXM6KCk9PlpDLENhbGVuZGFyUGx1czI6KCk9PktDLENhbGVuZGFyUmFuZ2U6KCk9PllDLENhbGVuZGFyU2VhcmNoOigpPT5YQyxDYWxlbmRhclN5bmM6KCk9PlFDLENhbGVuZGFyWDooKT0+ZVQsQ2FsZW5kYXJYMjooKT0+SkMsQ2FsZW5kYXJzOigpPT5hVCxDYW1lcmE6KCk9PmlULENhbWVyYU9mZjooKT0+c1QsQ2FuZGxlc3RpY2tDaGFydDooKT0+RmYsQ2FuZHk6KCk9Pm9ULENhbmR5Q2FuZTooKT0+clQsQ2FuZHlPZmY6KCk9Pm5ULENhbm5hYmlzOigpPT5jVCxDYW5uYWJpc09mZjooKT0+bFQsQ2FwdGlvbnM6KCk9PkFmLENhcHRpb25zT2ZmOigpPT5kVCxDYXI6KCk9PnBULENhckZyb250OigpPT51VCxDYXJUYXhpRnJvbnQ6KCk9PmhULENhcmF2YW46KCk9PmZULENhcmRTaW06KCk9Pm1ULENhcnJvdDooKT0+Z1QsQ2FzZUxvd2VyOigpPT5iVCxDYXNlU2Vuc2l0aXZlOigpPT52VCxDYXNlVXBwZXI6KCk9PnhULENhc3NldHRlVGFwZTooKT0+eVQsQ2FzdDooKT0+d1QsQ2FzdGxlOigpPT5rVCxDYXQ6KCk9PlNULENjdHY6KCk9Pk1ULENjdHZPZmY6KCk9Pl9ULENoYXJ0QXJlYTooKT0+TmYsQ2hhcnRCYXI6KCk9Pk9mLENoYXJ0QmFyQmlnOigpPT5SZixDaGFydEJhckRlY3JlYXNpbmc6KCk9PnpULENoYXJ0QmFySW5jcmVhc2luZzooKT0+Q1QsQ2hhcnRCYXJTdGFja2VkOigpPT5UVCxDaGFydENhbmRsZXN0aWNrOigpPT5GZixDaGFydENvbHVtbjooKT0+cWYsQ2hhcnRDb2x1bW5CaWc6KCk9PkJmLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+JFQsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5IZixDaGFydENvbHVtblN0YWNrZWQ6KCk9PkRULENoYXJ0R2FudHQ6KCk9PkxULENoYXJ0TGluZTooKT0+amYsQ2hhcnROZXR3b3JrOigpPT5FVCxDaGFydE5vQXhlc0NvbHVtbjooKT0+VWYsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT5QVCxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9PlZmLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9PklULENoYXJ0Tm9BeGVzR2FudHQ6KCk9PldmLENoYXJ0UGllOigpPT5HZixDaGFydFNjYXR0ZXI6KCk9PktmLENoYXJ0U3BsaW5lOigpPT5BVCxDaGVjazooKT0+T1QsQ2hlY2tDaGVjazooKT0+TlQsQ2hlY2tDaXJjbGU6KCk9PmltLENoZWNrQ2lyY2xlMjooKT0+cm0sQ2hlY2tMaW5lOigpPT5SVCxDaGVja1NxdWFyZTooKT0+dzUsQ2hlY2tTcXVhcmUyOigpPT5rNSxDaGVmSGF0OigpPT5GVCxDaGVycnk6KCk9PkJULENoZXNzQmlzaG9wOigpPT5xVCxDaGVzc0tpbmc6KCk9PkhULENoZXNzS25pZ2h0OigpPT5qVCxDaGVzc1Bhd246KCk9PlZULENoZXNzUXVlZW46KCk9PkdULENoZXNzUm9vazooKT0+VVQsQ2hldnJvbkRvd246KCk9PldULENoZXZyb25Eb3duQ2lyY2xlOigpPT5ubSxDaGV2cm9uRG93blNxdWFyZTooKT0+UzUsQ2hldnJvbkZpcnN0OigpPT5LVCxDaGV2cm9uTGFzdDooKT0+WVQsQ2hldnJvbkxlZnQ6KCk9PlpULENoZXZyb25MZWZ0Q2lyY2xlOigpPT5vbSxDaGV2cm9uTGVmdFNxdWFyZTooKT0+XzUsQ2hldnJvblJpZ2h0OigpPT5YVCxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PmxtLENoZXZyb25SaWdodFNxdWFyZTooKT0+TTUsQ2hldnJvblVwOigpPT5RVCxDaGV2cm9uVXBDaXJjbGU6KCk9PmNtLENoZXZyb25VcFNxdWFyZTooKT0+ejUsQ2hldnJvbnNEb3duOigpPT5lJCxDaGV2cm9uc0Rvd25VcDooKT0+SlQsQ2hldnJvbnNMZWZ0OigpPT5zJCxDaGV2cm9uc0xlZnRSaWdodDooKT0+YSQsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+dCQsQ2hldnJvbnNSaWdodDooKT0+ciQsQ2hldnJvbnNSaWdodExlZnQ6KCk9PmkkLENoZXZyb25zVXA6KCk9Pm8kLENoZXZyb25zVXBEb3duOigpPT5uJCxDaHVyY2g6KCk9PmwkLENpZ2FyZXR0ZTooKT0+ZCQsQ2lnYXJldHRlT2ZmOigpPT5jJCxDaXJjbGU6KCk9Pk0kLENpcmNsZUFsZXJ0OigpPT5ZZixDaXJjbGVBcnJvd0Rvd246KCk9PlpmLENpcmNsZUFycm93TGVmdDooKT0+WGYsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+UWYsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9PkpmLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5lbSxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PnRtLENpcmNsZUFycm93UmlnaHQ6KCk9PmFtLENpcmNsZUFycm93VXA6KCk9PnNtLENpcmNsZUNoZWNrOigpPT5ybSxDaXJjbGVDaGVja0JpZzooKT0+aW0sQ2lyY2xlQ2hldnJvbkRvd246KCk9Pm5tLENpcmNsZUNoZXZyb25MZWZ0OigpPT5vbSxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PmxtLENpcmNsZUNoZXZyb25VcDooKT0+Y20sQ2lyY2xlRGFzaGVkOigpPT51JCxDaXJjbGVEaXZpZGU6KCk9PmRtLENpcmNsZURvbGxhclNpZ246KCk9PnAkLENpcmNsZURvdDooKT0+bSQsQ2lyY2xlRG90RGFzaGVkOigpPT5oJCxDaXJjbGVFbGxpcHNpczooKT0+ZiQsQ2lyY2xlRXF1YWw6KCk9PmckLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9PmIkLENpcmNsZUZhZGluZ1BsdXM6KCk9PnYkLENpcmNsZUdhdWdlOigpPT51bSxDaXJjbGVIZWxwOigpPT5qMCxDaXJjbGVNaW51czooKT0+cG0sQ2lyY2xlT2ZmOigpPT54JCxDaXJjbGVQYXJraW5nOigpPT5mbSxDaXJjbGVQYXJraW5nT2ZmOigpPT5obSxDaXJjbGVQYXVzZTooKT0+bW0sQ2lyY2xlUGVyY2VudDooKT0+Z20sQ2lyY2xlUGlsZTooKT0+eSQsQ2lyY2xlUGxheTooKT0+Ym0sQ2lyY2xlUGx1czooKT0+dm0sQ2lyY2xlUG91bmRTdGVybGluZzooKT0+dyQsQ2lyY2xlUG93ZXI6KCk9PnhtLENpcmNsZVF1ZXN0aW9uTWFyazooKT0+ajAsQ2lyY2xlU2xhc2g6KCk9PmskLENpcmNsZVNsYXNoMjooKT0+eW0sQ2lyY2xlU2xhc2hlZDooKT0+eW0sQ2lyY2xlU21hbGw6KCk9PlMkLENpcmNsZVN0YXI6KCk9Pl8kLENpcmNsZVN0b3A6KCk9PndtLENpcmNsZVVzZXI6KCk9PlNtLENpcmNsZVVzZXJSb3VuZDooKT0+a20sQ2lyY2xlWDooKT0+X20sQ2lyY3VpdEJvYXJkOigpPT56JCxDaXRydXM6KCk9PkMkLENsYXBwZXJib2FyZDooKT0+VCQsQ2xpcGJvYXJkOigpPT5GJCxDbGlwYm9hcmRDaGVjazooKT0+JCQsQ2xpcGJvYXJkQ2xvY2s6KCk9PkQkLENsaXBib2FyZENvcHk6KCk9PkwkLENsaXBib2FyZEVkaXQ6KCk9PnptLENsaXBib2FyZExpc3Q6KCk9PkUkLENsaXBib2FyZE1pbnVzOigpPT5QJCxDbGlwYm9hcmRQYXN0ZTooKT0+SSQsQ2xpcGJvYXJkUGVuOigpPT56bSxDbGlwYm9hcmRQZW5MaW5lOigpPT5NbSxDbGlwYm9hcmRQbHVzOigpPT5BJCxDbGlwYm9hcmRTaWduYXR1cmU6KCk9Pk1tLENsaXBib2FyZFR5cGU6KCk9Pk4kLENsaXBib2FyZFg6KCk9PlIkLENsb2NrOigpPT5zRCxDbG9jazE6KCk9Pk8kLENsb2NrMTA6KCk9PkIkLENsb2NrMTE6KCk9PkgkLENsb2NrMTI6KCk9PnEkLENsb2NrMjooKT0+aiQsQ2xvY2szOigpPT5WJCxDbG9jazQ6KCk9PlUkLENsb2NrNTooKT0+VyQsQ2xvY2s2OigpPT5HJCxDbG9jazc6KCk9PlkkLENsb2NrODooKT0+SyQsQ2xvY2s5OigpPT5aJCxDbG9ja0FsZXJ0OigpPT5YJCxDbG9ja0Fycm93RG93bjooKT0+USQsQ2xvY2tBcnJvd1VwOigpPT5KJCxDbG9ja0NoZWNrOigpPT5lRCxDbG9ja0ZhZGluZzooKT0+dEQsQ2xvY2tQbHVzOigpPT5hRCxDbG9zZWRDYXB0aW9uOigpPT5pRCxDbG91ZDooKT0+a0QsQ2xvdWRBbGVydDooKT0+ckQsQ2xvdWRCYWNrdXA6KCk9Pm9ELENsb3VkQ2hlY2s6KCk9Pm5ELENsb3VkQ29nOigpPT5sRCxDbG91ZERvd25sb2FkOigpPT5DbSxDbG91ZERyaXp6bGU6KCk9PmNELENsb3VkRm9nOigpPT51RCxDbG91ZEhhaWw6KCk9PmRELENsb3VkTGlnaHRuaW5nOigpPT5wRCxDbG91ZE1vb246KCk9PmZELENsb3VkTW9vblJhaW46KCk9PmhELENsb3VkT2ZmOigpPT5nRCxDbG91ZFJhaW46KCk9PmJELENsb3VkUmFpbldpbmQ6KCk9Pm1ELENsb3VkU25vdzooKT0+dkQsQ2xvdWRTdW46KCk9PndELENsb3VkU3VuUmFpbjooKT0+eEQsQ2xvdWRTeW5jOigpPT55RCxDbG91ZFVwbG9hZDooKT0+VG0sQ2xvdWR5OigpPT5TRCxDbG92ZXI6KCk9Pl9ELENsdWI6KCk9Pk1ELENvZGU6KCk9PnpELENvZGUyOigpPT4kbSxDb2RlU3F1YXJlOigpPT5DNSxDb2RlWG1sOigpPT4kbSxDb2ZmZWU6KCk9PkNELENvZzooKT0+VEQsQ29pbnM6KCk9PiRELENvbHVtbnM6KCk9PkRtLENvbHVtbnMyOigpPT5EbSxDb2x1bW5zMzooKT0+TG0sQ29sdW1uczNDb2c6KCk9PlYwLENvbHVtbnM0OigpPT5ERCxDb2x1bW5zU2V0dGluZ3M6KCk9PlYwLENvbWJpbmU6KCk9PkxELENvbW1hbmQ6KCk9PkVELENvbXBhc3M6KCk9PlBELENvbXBvbmVudDooKT0+SUQsQ29tcHV0ZXI6KCk9PkFELENvbmNpZXJnZUJlbGw6KCk9Pk5ELENvbmU6KCk9PlJELENvbnN0cnVjdGlvbjooKT0+T0QsQ29udGFjdDooKT0+RkQsQ29udGFjdDI6KCk9PkVtLENvbnRhY3RSb3VuZDooKT0+RW0sQ29udGFpbmVyOigpPT5CRCxDb250cmFzdDooKT0+SEQsQ29va2llOigpPT5xRCxDb29raW5nUG90OigpPT5qRCxDb3B5OigpPT5ZRCxDb3B5Q2hlY2s6KCk9PlZELENvcHlNaW51czooKT0+VUQsQ29weVBsdXM6KCk9PldELENvcHlTbGFzaDooKT0+R0QsQ29weVg6KCk9PktELENvcHlsZWZ0OigpPT5aRCxDb3B5cmlnaHQ6KCk9PlhELENvcm5lckRvd25MZWZ0OigpPT5RRCxDb3JuZXJEb3duUmlnaHQ6KCk9PkpELENvcm5lckxlZnREb3duOigpPT5lTCxDb3JuZXJMZWZ0VXA6KCk9PnRMLENvcm5lclJpZ2h0RG93bjooKT0+YUwsQ29ybmVyUmlnaHRVcDooKT0+c0wsQ29ybmVyVXBMZWZ0OigpPT5pTCxDb3JuZXJVcFJpZ2h0OigpPT5yTCxDcHU6KCk9Pm9MLENyZWF0aXZlQ29tbW9uczooKT0+bkwsQ3JlZGl0Q2FyZDooKT0+bEwsQ3JvaXNzYW50OigpPT5jTCxDcm9wOigpPT5kTCxDcm9zczooKT0+dUwsQ3Jvc3NoYWlyOigpPT5wTCxDcm93bjooKT0+aEwsQ3Vib2lkOigpPT5mTCxDdXBTb2RhOigpPT5tTCxDdXJseUJyYWNlczooKT0+SWYsQ3VycmVuY3k6KCk9PmdMLEN5bGluZGVyOigpPT5iTCxEYW06KCk9PnZMLERhdGFiYXNlOigpPT5rTCxEYXRhYmFzZUJhY2t1cDooKT0+eEwsRGF0YWJhc2VTZWFyY2g6KCk9PndMLERhdGFiYXNlWmFwOigpPT55TCxEZWNpbWFsc0Fycm93TGVmdDooKT0+U0wsRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5fTCxEZWxldGU6KCk9Pk1MLERlc3NlcnQ6KCk9PnpMLERpYW1ldGVyOigpPT5DTCxEaWFtb25kOigpPT5ETCxEaWFtb25kTWludXM6KCk9PlRMLERpYW1vbmRQZXJjZW50OigpPT5QbSxEaWFtb25kUGx1czooKT0+JEwsRGljZTE6KCk9PkxMLERpY2UyOigpPT5FTCxEaWNlMzooKT0+UEwsRGljZTQ6KCk9PklMLERpY2U1OigpPT5BTCxEaWNlNjooKT0+TkwsRGljZXM6KCk9Pk9MLERpZmY6KCk9PlJMLERpc2M6KCk9PmpMLERpc2MyOigpPT5GTCxEaXNjMzooKT0+QkwsRGlzY0FsYnVtOigpPT5ITCxEaXZpZGU6KCk9PnFMLERpdmlkZUNpcmNsZTooKT0+ZG0sRGl2aWRlU3F1YXJlOigpPT5FNSxEbmE6KCk9PlVMLERuYU9mZjooKT0+VkwsRG9jazooKT0+V0wsRG9nOigpPT5LTCxEb2xsYXJTaWduOigpPT5HTCxEb251dDooKT0+WUwsRG9vckNsb3NlZDooKT0+WEwsRG9vckNsb3NlZExvY2tlZDooKT0+WkwsRG9vck9wZW46KCk9PlFMLERvdDooKT0+SkwsRG90U3F1YXJlOigpPT5MNSxEb3dubG9hZDooKT0+ZUUsRG93bmxvYWRDbG91ZDooKT0+Q20sRHJhZnRpbmdDb21wYXNzOigpPT50RSxEcmFtYTooKT0+c0UsRHJpbGw6KCk9PmFFLERyb25lOigpPT5pRSxEcm9wbGV0OigpPT5yRSxEcm9wbGV0T2ZmOigpPT5vRSxEcm9wbGV0czooKT0+bkUsRHJ1bTooKT0+bEUsRHJ1bXN0aWNrOigpPT5jRSxEdW1iYmVsbDooKT0+ZEUsRWFyOigpPT5wRSxFYXJPZmY6KCk9PnVFLEVhcnRoOigpPT5JbSxFYXJ0aExvY2s6KCk9PmhFLEVjbGlwc2U6KCk9PmZFLEVkaXQ6KCk9PlYxLEVkaXQyOigpPT5XNixFZGl0MzooKT0+VTYsRWdnOigpPT5nRSxFZ2dGcmllZDooKT0+bUUsRWdnT2ZmOigpPT5iRSxFbGxpcHNlOigpPT52RSxFbGxpcHNpczooKT0+Tm0sRWxsaXBzaXNWZXJ0aWNhbDooKT0+QW0sRXF1YWw6KCk9PndFLEVxdWFsQXBwcm94aW1hdGVseTooKT0+eEUsRXF1YWxOb3Q6KCk9PnlFLEVxdWFsU3F1YXJlOigpPT5QNSxFcmFzZXI6KCk9PmtFLEV0aGVybmV0UG9ydDooKT0+U0UsRXVybzooKT0+X0UsRXZDaGFyZ2VyOigpPT5NRSxFeHBhbmQ6KCk9PnpFLEV4dGVybmFsTGluazooKT0+Q0UsRXllOigpPT5ERSxFeWVDbG9zZWQ6KCk9PlRFLEV5ZU9mZjooKT0+JEUsRmFjdG9yeTooKT0+TEUsRmFuOigpPT5FRSxGYXN0Rm9yd2FyZDooKT0+UEUsRmVhdGhlcjooKT0+SUUsRmVuY2U6KCk9Pk5FLEZlcnJpc1doZWVsOigpPT5BRSxGaWxlOigpPT51UCxGaWxlQXJjaGl2ZTooKT0+UkUsRmlsZUF1ZGlvOigpPT5VMCxGaWxlQXVkaW8yOigpPT5VMCxGaWxlQXhpczNEOigpPT5SbSxGaWxlQXhpczNkOigpPT5SbSxGaWxlQmFkZ2U6KCk9Pk9tLEZpbGVCYWRnZTI6KCk9Pk9tLEZpbGVCYXJDaGFydDooKT0+Qm0sRmlsZUJhckNoYXJ0MjooKT0+cW0sRmlsZUJveDooKT0+T0UsRmlsZUJyYWNlczooKT0+Rm0sRmlsZUJyYWNlc0Nvcm5lcjooKT0+SG0sRmlsZUNoYXJ0Q29sdW1uOigpPT5xbSxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5CbSxGaWxlQ2hhcnRMaW5lOigpPT5qbSxGaWxlQ2hhcnRQaWU6KCk9PlZtLEZpbGVDaGVjazooKT0+RkUsRmlsZUNoZWNrMjooKT0+VW0sRmlsZUNoZWNrQ29ybmVyOigpPT5VbSxGaWxlQ2xvY2s6KCk9PkJFLEZpbGVDb2RlOigpPT5IRSxGaWxlQ29kZTI6KCk9PldtLEZpbGVDb2RlQ29ybmVyOigpPT5XbSxGaWxlQ29nOigpPT5HbSxGaWxlQ29nMjooKT0+R20sRmlsZURpZmY6KCk9PnFFLEZpbGVEaWdpdDooKT0+akUsRmlsZURvd246KCk9PlZFLEZpbGVFZGl0OigpPT5lNixGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+S20sRmlsZUhlYWRwaG9uZTooKT0+VTAsRmlsZUhlYXJ0OigpPT5VRSxGaWxlSW1hZ2U6KCk9PldFLEZpbGVJbnB1dDooKT0+R0UsRmlsZUpzb246KCk9PkZtLEZpbGVKc29uMjooKT0+SG0sRmlsZUtleTooKT0+WW0sRmlsZUtleTI6KCk9PlltLEZpbGVMaW5lQ2hhcnQ6KCk9PmptLEZpbGVMb2NrOigpPT5abSxGaWxlTG9jazI6KCk9PlptLEZpbGVNaW51czooKT0+S0UsRmlsZU1pbnVzMjooKT0+WG0sRmlsZU1pbnVzQ29ybmVyOigpPT5YbSxGaWxlTXVzaWM6KCk9PllFLEZpbGVPdXRwdXQ6KCk9PlpFLEZpbGVQZW46KCk9PmU2LEZpbGVQZW5MaW5lOigpPT5RbSxGaWxlUGllQ2hhcnQ6KCk9PlZtLEZpbGVQbGF5OigpPT5KbSxGaWxlUGx1czooKT0+WEUsRmlsZVBsdXMyOigpPT50NixGaWxlUGx1c0Nvcm5lcjooKT0+dDYsRmlsZVF1ZXN0aW9uOigpPT5hNixGaWxlUXVlc3Rpb25NYXJrOigpPT5hNixGaWxlU2NhbjooKT0+UUUsRmlsZVNlYXJjaDooKT0+SkUsRmlsZVNlYXJjaDI6KCk9PnM2LEZpbGVTZWFyY2hDb3JuZXI6KCk9PnM2LEZpbGVTaWduYWw6KCk9Pmk2LEZpbGVTaWduYXR1cmU6KCk9PlFtLEZpbGVTbGlkZXJzOigpPT5lUCxGaWxlU3ByZWFkc2hlZXQ6KCk9PnRQLEZpbGVTdGFjazooKT0+c1AsRmlsZVN5bWxpbms6KCk9PmFQLEZpbGVUZXJtaW5hbDooKT0+aVAsRmlsZVRleHQ6KCk9PnJQLEZpbGVUeXBlOigpPT5vUCxGaWxlVHlwZTI6KCk9PnI2LEZpbGVUeXBlQ29ybmVyOigpPT5yNixGaWxlVXA6KCk9Pm5QLEZpbGVVc2VyOigpPT5sUCxGaWxlVmlkZW86KCk9PkptLEZpbGVWaWRlbzI6KCk9Pm82LEZpbGVWaWRlb0NhbWVyYTooKT0+bzYsRmlsZVZvbHVtZTooKT0+Y1AsRmlsZVZvbHVtZTI6KCk9Pmk2LEZpbGVXYXJuaW5nOigpPT5LbSxGaWxlWDooKT0+ZFAsRmlsZVgyOigpPT5uNixGaWxlWENvcm5lcjooKT0+bjYsRmlsZXM6KCk9PmhQLEZpbG06KCk9PnBQLEZpbHRlcjooKT0+cDYsRmlsdGVyWDooKT0+dTYsRmluZ2VycHJpbnQ6KCk9Pmw2LEZpbmdlcnByaW50UGF0dGVybjooKT0+bDYsRmlyZUV4dGluZ3Vpc2hlcjooKT0+ZlAsRmlzaDooKT0+YlAsRmlzaE9mZjooKT0+Z1AsRmlzaFN5bWJvbDooKT0+bVAsRmlzaGluZ0hvb2s6KCk9PnZQLEZpc2hpbmdSb2Q6KCk9PnlQLEZsYWc6KCk9PlNQLEZsYWdPZmY6KCk9PnhQLEZsYWdUcmlhbmdsZUxlZnQ6KCk9PndQLEZsYWdUcmlhbmdsZVJpZ2h0OigpPT5rUCxGbGFtZTooKT0+X1AsRmxhbWVLaW5kbGluZzooKT0+elAsRmxhc2hsaWdodDooKT0+Q1AsRmxhc2hsaWdodE9mZjooKT0+TVAsRmxhc2tDb25pY2FsOigpPT4kUCxGbGFza0NvbmljYWxPZmY6KCk9PlRQLEZsYXNrUm91bmQ6KCk9PkRQLEZsaXBIb3Jpem9udGFsOigpPT54NSxGbGlwSG9yaXpvbnRhbDI6KCk9PkxQLEZsaXBWZXJ0aWNhbDooKT0+eTUsRmxpcFZlcnRpY2FsMjooKT0+RVAsRmxvd2VyOigpPT5OUCxGbG93ZXIyOigpPT5QUCxGb2N1czooKT0+SVAsRm9sZEhvcml6b250YWw6KCk9PkFQLEZvbGRWZXJ0aWNhbDooKT0+RlAsRm9sZGVyOigpPT5wSSxGb2xkZXJBcmNoaXZlOigpPT5SUCxGb2xkZXJCb29rbWFyazooKT0+T1AsRm9sZGVyQ2hlY2s6KCk9PkJQLEZvbGRlckNsb2NrOigpPT5qUCxGb2xkZXJDbG9zZWQ6KCk9PkhQLEZvbGRlckNvZGU6KCk9PnFQLEZvbGRlckNvZzooKT0+YzYsRm9sZGVyQ29nMjooKT0+YzYsRm9sZGVyRG90OigpPT5WUCxGb2xkZXJEb3duOigpPT5VUCxGb2xkZXJFZGl0OigpPT5kNixGb2xkZXJHaXQ6KCk9PkdQLEZvbGRlckdpdDI6KCk9PldQLEZvbGRlckhlYXJ0OigpPT5LUCxGb2xkZXJJbnB1dDooKT0+WFAsRm9sZGVyS2FuYmFuOigpPT5ZUCxGb2xkZXJLZXk6KCk9PlpQLEZvbGRlckxvY2s6KCk9PlFQLEZvbGRlck1pbnVzOigpPT50SSxGb2xkZXJPcGVuOigpPT5lSSxGb2xkZXJPcGVuRG90OigpPT5KUCxGb2xkZXJPdXRwdXQ6KCk9PmFJLEZvbGRlclBlbjooKT0+ZDYsRm9sZGVyUGx1czooKT0+c0ksRm9sZGVyUm9vdDooKT0+aUksRm9sZGVyU2VhcmNoOigpPT5vSSxGb2xkZXJTZWFyY2gyOigpPT5ySSxGb2xkZXJTeW1saW5rOigpPT5uSSxGb2xkZXJTeW5jOigpPT5jSSxGb2xkZXJUcmVlOigpPT5sSSxGb2xkZXJVcDooKT0+ZEksRm9sZGVyWDooKT0+dUksRm9sZGVyczooKT0+aEksRm9vdHByaW50czooKT0+ZkksRm9ya0tuaWZlOigpPT5TOCxGb3JrS25pZmVDcm9zc2VkOigpPT5rOCxGb3JrbGlmdDooKT0+bUksRm9ybTooKT0+Z0ksRm9ybUlucHV0OigpPT5LNixGb3J3YXJkOigpPT5iSSxGcmFtZTooKT0+dkksRnJvd246KCk9PnhJLEZ1ZWw6KCk9PnlJLEZ1bGxzY3JlZW46KCk9PndJLEZ1bmN0aW9uU3F1YXJlOigpPT5JNSxGdW5uZWw6KCk9PnA2LEZ1bm5lbFBsdXM6KCk9PmtJLEZ1bm5lbFg6KCk9PnU2LEdhbGxlcnlIb3Jpem9udGFsOigpPT5fSSxHYWxsZXJ5SG9yaXpvbnRhbEVuZDooKT0+U0ksR2FsbGVyeVRodW1ibmFpbHM6KCk9Pk1JLEdhbGxlcnlWZXJ0aWNhbDooKT0+Q0ksR2FsbGVyeVZlcnRpY2FsRW5kOigpPT56SSxHYW1lcGFkOigpPT5ESSxHYW1lcGFkMjooKT0+VEksR2FtZXBhZERpcmVjdGlvbmFsOigpPT4kSSxHYW50dENoYXJ0OigpPT5XZixHYW50dENoYXJ0U3F1YXJlOigpPT5ZMCxHYXVnZTooKT0+TEksR2F1Z2VDaXJjbGU6KCk9PnVtLEdhdmVsOigpPT5FSSxHZW06KCk9PlBJLEdlb3JnaWFuTGFyaTooKT0+QUksR2hvc3Q6KCk9PklJLEdpZnQ6KCk9PlJJLEdpdEJyYW5jaDooKT0+RkksR2l0QnJhbmNoTWludXM6KCk9Pk5JLEdpdEJyYW5jaFBsdXM6KCk9Pk9JLEdpdENvbW1pdDooKT0+aDYsR2l0Q29tbWl0SG9yaXpvbnRhbDooKT0+aDYsR2l0Q29tbWl0VmVydGljYWw6KCk9PkJJLEdpdENvbXBhcmU6KCk9PnFJLEdpdENvbXBhcmVBcnJvd3M6KCk9PkhJLEdpdEZvcms6KCk9PmpJLEdpdEdyYXBoOigpPT5WSSxHaXRNZXJnZTooKT0+VUksR2l0TWVyZ2VDb25mbGljdDooKT0+V0ksR2l0UHVsbFJlcXVlc3Q6KCk9PlFJLEdpdFB1bGxSZXF1ZXN0QXJyb3c6KCk9PkdJLEdpdFB1bGxSZXF1ZXN0Q2xvc2VkOigpPT5LSSxHaXRQdWxsUmVxdWVzdENyZWF0ZTooKT0+WkksR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzooKT0+WUksR2l0UHVsbFJlcXVlc3REcmFmdDooKT0+WEksR2xhc3NXYXRlcjooKT0+SkksR2xhc3NlczooKT0+ZUEsR2xvYmU6KCk9PmlBLEdsb2JlMjooKT0+SW0sR2xvYmVMb2NrOigpPT50QSxHbG9iZU9mZjooKT0+c0EsR2xvYmVYOigpPT5hQSxHb2FsOigpPT5yQSxHcHU6KCk9Pm9BLEdyYWI6KCk9PnY2LEdyYWR1YXRpb25DYXA6KCk9Pm5BLEdyYXBlOigpPT5sQSxHcmlkOigpPT5XMCxHcmlkMlgyOigpPT5iNixHcmlkMlgyQ2hlY2s6KCk9PmY2LEdyaWQyWDJQbHVzOigpPT5tNixHcmlkMlgyWDooKT0+ZzYsR3JpZDJ4MjooKT0+YjYsR3JpZDJ4MkNoZWNrOigpPT5mNixHcmlkMngyUGx1czooKT0+bTYsR3JpZDJ4Mlg6KCk9Pmc2LEdyaWQzWDM6KCk9PlcwLEdyaWQzeDI6KCk9PmNBLEdyaWQzeDM6KCk9PlcwLEdyaXA6KCk9PnBBLEdyaXBIb3Jpem9udGFsOigpPT5kQSxHcmlwVmVydGljYWw6KCk9PnVBLEdyb3VwOigpPT5oQSxHdWl0YXI6KCk9PmZBLEhhbTooKT0+bUEsSGFtYnVyZ2VyOigpPT5nQSxIYW1tZXI6KCk9PmJBLEhhbmQ6KCk9PlNBLEhhbmRDb2luczooKT0+dkEsSGFuZEZpc3Q6KCk9PnhBLEhhbmRHcmFiOigpPT52NixIYW5kSGVhcnQ6KCk9PnlBLEhhbmRIZWxwaW5nOigpPT54NixIYW5kTWV0YWw6KCk9PndBLEhhbmRQbGF0dGVyOigpPT5rQSxIYW5kYmFnOigpPT5fQSxIYW5kc2hha2U6KCk9Pk1BLEhhcmREcml2ZTooKT0+JEEsSGFyZERyaXZlRG93bmxvYWQ6KCk9PnpBLEhhcmREcml2ZVVwbG9hZDooKT0+Q0EsSGFyZEhhdDooKT0+VEEsSGFzaDooKT0+REEsSGF0R2xhc3NlczooKT0+TEEsSGF6ZTooKT0+RUEsSGQ6KCk9PlBBLEhkbWlQb3J0OigpPT5JQSxIZWFkaW5nOigpPT5IQSxIZWFkaW5nMTooKT0+QUEsSGVhZGluZzI6KCk9Pk5BLEhlYWRpbmczOigpPT5SQSxIZWFkaW5nNDooKT0+T0EsSGVhZGluZzU6KCk9PkZBLEhlYWRpbmc2OigpPT5CQSxIZWFkcGhvbmVPZmY6KCk9PnFBLEhlYWRwaG9uZXM6KCk9PlZBLEhlYWRzZXQ6KCk9PmpBLEhlYXJ0OigpPT5RQSxIZWFydENyYWNrOigpPT5VQSxIZWFydEhhbmRzaGFrZTooKT0+V0EsSGVhcnRNaW51czooKT0+R0EsSGVhcnRPZmY6KCk9PktBLEhlYXJ0UGx1czooKT0+WUEsSGVhcnRQdWxzZTooKT0+WkEsSGVhcnRYOigpPT5YQSxIZWF0ZXI6KCk9PkpBLEhlbGljb3B0ZXI6KCk9PmVOLEhlbHBDaXJjbGU6KCk9PmowLEhlbHBpbmdIYW5kOigpPT54NixIZXhhZ29uOigpPT50TixIaWdobGlnaHRlcjooKT0+YU4sSGlzdG9yeTooKT0+c04sSG9tZTooKT0+eTYsSG9wOigpPT5pTixIb3BPZmY6KCk9PnJOLEhvc3BpdGFsOigpPT5vTixIb3RlbDooKT0+bk4sSG91cmdsYXNzOigpPT5sTixIb3VzZTooKT0+eTYsSG91c2VIZWFydDooKT0+Y04sSG91c2VQbHVnOigpPT5kTixIb3VzZVBsdXM6KCk9PnBOLEhvdXNlV2lmaTooKT0+dU4sSWNlQ3JlYW06KCk9Pms2LEljZUNyZWFtMjooKT0+dzYsSWNlQ3JlYW1Cb3dsOigpPT53NixJY2VDcmVhbUNvbmU6KCk9Pms2LElkQ2FyZDooKT0+Zk4sSWRDYXJkTGFueWFyZDooKT0+aE4sSW1hZ2U6KCk9PmtOLEltYWdlRG93bjooKT0+bU4sSW1hZ2VNaW51czooKT0+Z04sSW1hZ2VPZmY6KCk9PmJOLEltYWdlUGxheTooKT0+dk4sSW1hZ2VQbHVzOigpPT54TixJbWFnZVVwOigpPT55TixJbWFnZVVwc2NhbGU6KCk9PndOLEltYWdlczooKT0+U04sSW1wb3J0OigpPT5fTixJbmJveDooKT0+TU4sSW5kZW50OigpPT5LMCxJbmRlbnREZWNyZWFzZTooKT0+RzAsSW5kZW50SW5jcmVhc2U6KCk9PkswLEluZGlhblJ1cGVlOigpPT56TixJbmZpbml0eTooKT0+Q04sSW5mbzooKT0+VE4sSW5zcGVjdDooKT0+QjUsSW5zcGVjdGlvblBhbmVsOigpPT4kTixJdGFsaWM6KCk9PkROLEl0ZXJhdGlvbkNjdzooKT0+TE4sSXRlcmF0aW9uQ3c6KCk9PkVOLEphcGFuZXNlWWVuOigpPT5QTixKb3lzdGljazooKT0+SU4sS2FuYmFuOigpPT5BTixLYW5iYW5TcXVhcmU6KCk9PlI1LEthbmJhblNxdWFyZURhc2hlZDooKT0+VDUsS2F5YWs6KCk9Pk5OLEtleTooKT0+Rk4sS2V5Um91bmQ6KCk9Pk9OLEtleVNxdWFyZTooKT0+Uk4sS2V5Ym9hcmQ6KCk9PnFOLEtleWJvYXJkTXVzaWM6KCk9PkJOLEtleWJvYXJkT2ZmOigpPT5ITixMYW1wOigpPT5LTixMYW1wQ2VpbGluZzooKT0+ak4sTGFtcERlc2s6KCk9PlZOLExhbXBGbG9vcjooKT0+VU4sTGFtcFdhbGxEb3duOigpPT5XTixMYW1wV2FsbFVwOigpPT5HTixMYW5kUGxvdDooKT0+WU4sTGFuZG1hcms6KCk9PlpOLExhbmd1YWdlczooKT0+WE4sTGFwdG9wOigpPT5KTixMYXB0b3AyOigpPT5TNixMYXB0b3BNaW5pbWFsOigpPT5TNixMYXB0b3BNaW5pbWFsQ2hlY2s6KCk9PlFOLExhc3NvOigpPT5hUixMYXNzb1NlbGVjdDooKT0+ZVIsTGF1Z2g6KCk9PnRSLExheWVyczooKT0+XzYsTGF5ZXJzMjooKT0+c1IsTGF5ZXJzMzooKT0+XzYsTGF5ZXJzTWludXM6KCk9PmlSLExheWVyc1BsdXM6KCk9PnJSLExheW91dDooKT0+VjYsTGF5b3V0RGFzaGJvYXJkOigpPT5vUixMYXlvdXRHcmlkOigpPT5uUixMYXlvdXRMaXN0OigpPT5sUixMYXlvdXRQYW5lbExlZnQ6KCk9PmNSLExheW91dFBhbmVsVG9wOigpPT51UixMYXlvdXRUZW1wbGF0ZTooKT0+ZFIsTGVhZjooKT0+cFIsTGVhZnlHcmVlbjooKT0+aFIsTGVjdGVybjooKT0+ZlIsTGVuc0NvbmNhdmU6KCk9Pm1SLExlbnNDb252ZXg6KCk9PmdSLExldHRlclRleHQ6KCk9Pmw4LExpYnJhcnk6KCk9PnZSLExpYnJhcnlCaWc6KCk9PmJSLExpYnJhcnlTcXVhcmU6KCk9PkE1LExpZmVCdW95OigpPT54UixMaWdhdHVyZTooKT0+eVIsTGlnaHRidWxiOigpPT53UixMaWdodGJ1bGJPZmY6KCk9PmtSLExpbmVDaGFydDooKT0+amYsTGluZURvdFJpZ2h0SG9yaXpvbnRhbDooKT0+U1IsTGluZVNxdWlnZ2xlOigpPT5NUixMaW5lU3R5bGU6KCk9Pl9SLExpbms6KCk9PlRSLExpbmsyOigpPT5DUixMaW5rMk9mZjooKT0+elIsTGlzdDooKT0+R1IsTGlzdENoZWNrOigpPT4kUixMaXN0Q2hlY2tzOigpPT5EUixMaXN0Q2hldnJvbnNEb3duVXA6KCk9PkxSLExpc3RDaGV2cm9uc1VwRG93bjooKT0+RVIsTGlzdENvbGxhcHNlOigpPT5QUixMaXN0RW5kOigpPT5JUixMaXN0RmlsdGVyOigpPT5OUixMaXN0RmlsdGVyUGx1czooKT0+QVIsTGlzdEluZGVudERlY3JlYXNlOigpPT5HMCxMaXN0SW5kZW50SW5jcmVhc2U6KCk9PkswLExpc3RNaW51czooKT0+UlIsTGlzdE11c2ljOigpPT5PUixMaXN0T3JkZXJlZDooKT0+RlIsTGlzdFBsdXM6KCk9PkJSLExpc3RSZXN0YXJ0OigpPT5IUixMaXN0U3RhcnQ6KCk9PnFSLExpc3RUb2RvOigpPT5qUixMaXN0VHJlZTooKT0+VlIsTGlzdFZpZGVvOigpPT5VUixMaXN0WDooKT0+V1IsTG9hZGVyOigpPT5ZUixMb2FkZXIyOigpPT5NNixMb2FkZXJDaXJjbGU6KCk9Pk02LExvYWRlclBpbndoZWVsOigpPT5LUixMb2NhdGU6KCk9PlFSLExvY2F0ZUZpeGVkOigpPT5aUixMb2NhdGVPZmY6KCk9PlhSLExvY2F0aW9uRWRpdDooKT0+JDYsTG9jazooKT0+ZU8sTG9ja0tleWhvbGU6KCk9PkpSLExvY2tLZXlob2xlT3BlbjooKT0+ejYsTG9ja09wZW46KCk9PkM2LExvZ0luOigpPT50TyxMb2dPdXQ6KCk9PmFPLExvZ3M6KCk9PnNPLExvbGxpcG9wOigpPT5pTyxMdWdnYWdlOigpPT5yTyxNU3F1YXJlOigpPT5ONSxNYWduZXQ6KCk9Pm5PLE1haWw6KCk9Pm1PLE1haWxDaGVjazooKT0+b08sTWFpbE1pbnVzOigpPT5sTyxNYWlsT3BlbjooKT0+Y08sTWFpbFBsdXM6KCk9PmRPLE1haWxRdWVzdGlvbjooKT0+VDYsTWFpbFF1ZXN0aW9uTWFyazooKT0+VDYsTWFpbFNlYXJjaDooKT0+dU8sTWFpbFdhcm5pbmc6KCk9PnBPLE1haWxYOigpPT5oTyxNYWlsYm94OigpPT5mTyxNYWlsczooKT0+Z08sTWFwOigpPT5FTyxNYXBNaW51czooKT0+Yk8sTWFwUGluOigpPT4kTyxNYXBQaW5DaGVjazooKT0+eE8sTWFwUGluQ2hlY2tJbnNpZGU6KCk9PnZPLE1hcFBpbkhvdXNlOigpPT55TyxNYXBQaW5NaW51czooKT0+a08sTWFwUGluTWludXNJbnNpZGU6KCk9PndPLE1hcFBpbk9mZjooKT0+U08sTWFwUGluUGVuOigpPT4kNixNYXBQaW5QbHVzOigpPT5NTyxNYXBQaW5QbHVzSW5zaWRlOigpPT5fTyxNYXBQaW5TZWFyY2g6KCk9PnpPLE1hcFBpblg6KCk9PkNPLE1hcFBpblhJbnNpZGU6KCk9PlRPLE1hcFBpbm5lZDooKT0+RE8sTWFwUGx1czooKT0+TE8sTWFyczooKT0+SU8sTWFyc1N0cm9rZTooKT0+UE8sTWFydGluaTooKT0+QU8sTWF4aW1pemU6KCk9PlJPLE1heGltaXplMjooKT0+Tk8sTWVkYWw6KCk9Pk9PLE1lZ2FwaG9uZTooKT0+Qk8sTWVnYXBob25lT2ZmOigpPT5GTyxNZWg6KCk9PkhPLE1lbW9yeVN0aWNrOigpPT5xTyxNZW51OigpPT5qTyxNZW51U3F1YXJlOigpPT5PNSxNZXJnZTooKT0+Vk8sTWVzc2FnZUNpcmNsZTooKT0+dEYsTWVzc2FnZUNpcmNsZUNoZWNrOigpPT5VTyxNZXNzYWdlQ2lyY2xlQ29kZTooKT0+V08sTWVzc2FnZUNpcmNsZURhc2hlZDooKT0+R08sTWVzc2FnZUNpcmNsZUhlYXJ0OigpPT5LTyxNZXNzYWdlQ2lyY2xlTW9yZTooKT0+WU8sTWVzc2FnZUNpcmNsZU9mZjooKT0+Wk8sTWVzc2FnZUNpcmNsZVBsdXM6KCk9PlhPLE1lc3NhZ2VDaXJjbGVRdWVzdGlvbjooKT0+RDYsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazooKT0+RDYsTWVzc2FnZUNpcmNsZVJlcGx5OigpPT5RTyxNZXNzYWdlQ2lyY2xlV2FybmluZzooKT0+Sk8sTWVzc2FnZUNpcmNsZVg6KCk9PmVGLE1lc3NhZ2VTcXVhcmU6KCk9PnZGLE1lc3NhZ2VTcXVhcmVDaGVjazooKT0+c0YsTWVzc2FnZVNxdWFyZUNvZGU6KCk9PmFGLE1lc3NhZ2VTcXVhcmVEYXNoZWQ6KCk9PmlGLE1lc3NhZ2VTcXVhcmVEaWZmOigpPT5yRixNZXNzYWdlU3F1YXJlRG90OigpPT5vRixNZXNzYWdlU3F1YXJlSGVhcnQ6KCk9Pm5GLE1lc3NhZ2VTcXVhcmVMb2NrOigpPT5sRixNZXNzYWdlU3F1YXJlTW9yZTooKT0+Y0YsTWVzc2FnZVNxdWFyZU9mZjooKT0+ZEYsTWVzc2FnZVNxdWFyZVBsdXM6KCk9PnVGLE1lc3NhZ2VTcXVhcmVRdW90ZTooKT0+cEYsTWVzc2FnZVNxdWFyZVJlcGx5OigpPT5oRixNZXNzYWdlU3F1YXJlU2hhcmU6KCk9PmZGLE1lc3NhZ2VTcXVhcmVUZXh0OigpPT5tRixNZXNzYWdlU3F1YXJlV2FybmluZzooKT0+Z0YsTWVzc2FnZVNxdWFyZVg6KCk9PmJGLE1lc3NhZ2VzU3F1YXJlOigpPT54RixNZXRyb25vbWU6KCk9PnlGLE1pYzooKT0+a0YsTWljMjooKT0+TDYsTWljT2ZmOigpPT53RixNaWNWb2NhbDooKT0+TDYsTWljcm9jaGlwOigpPT5TRixNaWNyb3Njb3BlOigpPT5fRixNaWNyb3dhdmU6KCk9Pk1GLE1pbGVzdG9uZTooKT0+ekYsTWlsazooKT0+VEYsTWlsa09mZjooKT0+Q0YsTWluaW1pemU6KCk9PkRGLE1pbmltaXplMjooKT0+JEYsTWludXM6KCk9PkxGLE1pbnVzQ2lyY2xlOigpPT5wbSxNaW51c1NxdWFyZTooKT0+RjUsTWlycm9yUmVjdGFuZ3VsYXI6KCk9PkVGLE1pcnJvclJvdW5kOigpPT5QRixNb25pdG9yOigpPT5HRixNb25pdG9yQ2hlY2s6KCk9PklGLE1vbml0b3JDbG91ZDooKT0+QUYsTW9uaXRvckNvZzooKT0+TkYsTW9uaXRvckRvdDooKT0+UkYsTW9uaXRvckRvd246KCk9PkZGLE1vbml0b3JPZmY6KCk9Pk9GLE1vbml0b3JQYXVzZTooKT0+QkYsTW9uaXRvclBsYXk6KCk9PkhGLE1vbml0b3JTbWFydHBob25lOigpPT5xRixNb25pdG9yU3BlYWtlcjooKT0+akYsTW9uaXRvclN0b3A6KCk9PlVGLE1vbml0b3JVcDooKT0+VkYsTW9uaXRvclg6KCk9PldGLE1vb246KCk9PllGLE1vb25TdGFyOigpPT5LRixNb3JlSG9yaXpvbnRhbDooKT0+Tm0sTW9yZVZlcnRpY2FsOigpPT5BbSxNb3RvcmJpa2U6KCk9PlpGLE1vdW50YWluOigpPT5RRixNb3VudGFpblNub3c6KCk9PlhGLE1vdXNlOigpPT5uQixNb3VzZUxlZnQ6KCk9PkpGLE1vdXNlT2ZmOigpPT5lQixNb3VzZVBvaW50ZXI6KCk9PnJCLE1vdXNlUG9pbnRlcjI6KCk9PmFCLE1vdXNlUG9pbnRlcjJPZmY6KCk9PnRCLE1vdXNlUG9pbnRlckJhbjooKT0+c0IsTW91c2VQb2ludGVyQ2xpY2s6KCk9PmlCLE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZDooKT0+JDUsTW91c2VSaWdodDooKT0+b0IsTW92ZTooKT0+eUIsTW92ZTNEOigpPT5FNixNb3ZlM2Q6KCk9PkU2LE1vdmVEaWFnb25hbDooKT0+Y0IsTW92ZURpYWdvbmFsMjooKT0+bEIsTW92ZURvd246KCk9PnBCLE1vdmVEb3duTGVmdDooKT0+ZEIsTW92ZURvd25SaWdodDooKT0+dUIsTW92ZUhvcml6b250YWw6KCk9PmhCLE1vdmVMZWZ0OigpPT5mQixNb3ZlUmlnaHQ6KCk9Pm1CLE1vdmVVcDooKT0+dkIsTW92ZVVwTGVmdDooKT0+Z0IsTW92ZVVwUmlnaHQ6KCk9PmJCLE1vdmVWZXJ0aWNhbDooKT0+eEIsTXVzaWM6KCk9Pl9CLE11c2ljMjooKT0+d0IsTXVzaWMzOigpPT5TQixNdXNpYzQ6KCk9PmtCLE5hdmlnYXRpb246KCk9PlRCLE5hdmlnYXRpb24yOigpPT56QixOYXZpZ2F0aW9uMk9mZjooKT0+TUIsTmF2aWdhdGlvbk9mZjooKT0+Q0IsTmV0d29yazooKT0+JEIsTmV3c3BhcGVyOigpPT5EQixOZmM6KCk9PkxCLE5vbkJpbmFyeTooKT0+RUIsTm90ZWJvb2s6KCk9Pk5CLE5vdGVib29rUGVuOigpPT5QQixOb3RlYm9va1RhYnM6KCk9PkFCLE5vdGVib29rVGV4dDooKT0+SUIsTm90ZXBhZFRleHQ6KCk9Pk9CLE5vdGVwYWRUZXh0RGFzaGVkOigpPT5SQixOdXQ6KCk9PkJCLE51dE9mZjooKT0+RkIsT2N0YWdvbjooKT0+cUIsT2N0YWdvbkFsZXJ0OigpPT5QNixPY3RhZ29uTWludXM6KCk9PkhCLE9jdGFnb25QYXVzZTooKT0+STYsT2N0YWdvblg6KCk9PkE2LE9tZWdhOigpPT5qQixPcHRpb246KCk9PlZCLE9yYml0OigpPT5VQixPcmlnYW1pOigpPT5XQixPdXRkZW50OigpPT5HMCxQYWNrYWdlOigpPT5KQixQYWNrYWdlMjooKT0+R0IsUGFja2FnZUNoZWNrOigpPT5LQixQYWNrYWdlTWludXM6KCk9PllCLFBhY2thZ2VPcGVuOigpPT5aQixQYWNrYWdlUGx1czooKT0+WEIsUGFja2FnZVNlYXJjaDooKT0+UUIsUGFja2FnZVg6KCk9PmVILFBhaW50QnVja2V0OigpPT50SCxQYWludFJvbGxlcjooKT0+YUgsUGFpbnRicnVzaDooKT0+c0gsUGFpbnRicnVzaDI6KCk9Pk42LFBhaW50YnJ1c2hWZXJ0aWNhbDooKT0+TjYsUGFsZXR0ZTooKT0+aUgsUGFsbXRyZWU6KCk9PnU4LFBhbmRhOigpPT5vSCxQYW5lbEJvdHRvbTooKT0+bEgsUGFuZWxCb3R0b21DbG9zZTooKT0+ckgsUGFuZWxCb3R0b21EYXNoZWQ6KCk9PlI2LFBhbmVsQm90dG9tSW5hY3RpdmU6KCk9PlI2LFBhbmVsQm90dG9tT3BlbjooKT0+bkgsUGFuZWxMZWZ0OigpPT5INixQYW5lbExlZnRDbG9zZTooKT0+TzYsUGFuZWxMZWZ0RGFzaGVkOigpPT5GNixQYW5lbExlZnRJbmFjdGl2ZTooKT0+RjYsUGFuZWxMZWZ0T3BlbjooKT0+QjYsUGFuZWxMZWZ0UmlnaHREYXNoZWQ6KCk9PmNILFBhbmVsUmlnaHQ6KCk9PmhILFBhbmVsUmlnaHRDbG9zZTooKT0+ZEgsUGFuZWxSaWdodERhc2hlZDooKT0+cTYsUGFuZWxSaWdodEluYWN0aXZlOigpPT5xNixQYW5lbFJpZ2h0T3BlbjooKT0+dUgsUGFuZWxUb3A6KCk9PmdILFBhbmVsVG9wQm90dG9tRGFzaGVkOigpPT5wSCxQYW5lbFRvcENsb3NlOigpPT5mSCxQYW5lbFRvcERhc2hlZDooKT0+ajYsUGFuZWxUb3BJbmFjdGl2ZTooKT0+ajYsUGFuZWxUb3BPcGVuOigpPT5tSCxQYW5lbHNMZWZ0Qm90dG9tOigpPT5iSCxQYW5lbHNMZWZ0UmlnaHQ6KCk9PkxtLFBhbmVsc1JpZ2h0Qm90dG9tOigpPT52SCxQYW5lbHNUb3BCb3R0b206KCk9Plg2LFBhbmVsc1RvcExlZnQ6KCk9PlY2LFBhcGVyY2xpcDooKT0+eEgsUGFyZW50aGVzZXM6KCk9PnlILFBhcmtpbmdDaXJjbGU6KCk9PmZtLFBhcmtpbmdDaXJjbGVPZmY6KCk9PmhtLFBhcmtpbmdNZXRlcjooKT0+d0gsUGFya2luZ1NxdWFyZTooKT0+cTUsUGFya2luZ1NxdWFyZU9mZjooKT0+SDUsUGFydHlQb3BwZXI6KCk9PlNILFBhdXNlOigpPT5rSCxQYXVzZUNpcmNsZTooKT0+bW0sUGF1c2VPY3RhZ29uOigpPT5JNixQYXdQcmludDooKT0+X0gsUGNDYXNlOigpPT5NSCxQZW46KCk9Plc2LFBlbkJveDooKT0+VjEsUGVuTGluZTooKT0+VTYsUGVuT2ZmOigpPT56SCxQZW5TcXVhcmU6KCk9PlYxLFBlblRvb2w6KCk9PkNILFBlbmNpbDooKT0+REgsUGVuY2lsTGluZTooKT0+VEgsUGVuY2lsT2ZmOigpPT4kSCxQZW5jaWxSdWxlcjooKT0+TEgsUGVudGFnb246KCk9PkVILFBlcmNlbnQ6KCk9PlBILFBlcmNlbnRDaXJjbGU6KCk9PmdtLFBlcmNlbnREaWFtb25kOigpPT5QbSxQZXJjZW50U3F1YXJlOigpPT5qNSxQZXJzb25TdGFuZGluZzooKT0+SUgsUGhpbGlwcGluZVBlc286KCk9PkFILFBob25lOigpPT5qSCxQaG9uZUNhbGw6KCk9Pk5ILFBob25lRm9yd2FyZGVkOigpPT5SSCxQaG9uZUluY29taW5nOigpPT5PSCxQaG9uZU1pc3NlZDooKT0+RkgsUGhvbmVPZmY6KCk9PkJILFBob25lT3V0Z29pbmc6KCk9PkhILFBpOigpPT5xSCxQaVNxdWFyZTooKT0+VjUsUGlhbm86KCk9PlZILFBpY2theGU6KCk9PlVILFBpY3R1cmVJblBpY3R1cmU6KCk9PkdILFBpY3R1cmVJblBpY3R1cmUyOigpPT5XSCxQaWVDaGFydDooKT0+R2YsUGlnZ3lCYW5rOigpPT5LSCxQaWxjcm93OigpPT5YSCxQaWxjcm93TGVmdDooKT0+WUgsUGlsY3Jvd1JpZ2h0OigpPT5aSCxQaWxjcm93U3F1YXJlOigpPT5VNSxQaWxsOigpPT5lcSxQaWxsQm90dGxlOigpPT5RSCxQaW46KCk9PnRxLFBpbk9mZjooKT0+SkgsUGlwZXR0ZTooKT0+YXEsUGl6emE6KCk9PnNxLFBsYW5lOigpPT5vcSxQbGFuZUxhbmRpbmc6KCk9PmlxLFBsYW5lVGFrZW9mZjooKT0+cnEsUGxheTooKT0+bnEsUGxheUNpcmNsZTooKT0+Ym0sUGxheVNxdWFyZTooKT0+RzUsUGx1ZzooKT0+Y3EsUGx1ZzI6KCk9PmxxLFBsdWdaYXA6KCk9Pkc2LFBsdWdaYXAyOigpPT5HNixQbHVzOigpPT5kcSxQbHVzQ2lyY2xlOigpPT52bSxQbHVzU3F1YXJlOigpPT5XNSxQb2NrZXRLbmlmZTooKT0+dXEsUG9kY2FzdDooKT0+cHEsUG9pbnRlcjooKT0+aHEsUG9pbnRlck9mZjooKT0+ZnEsUG9wY29ybjooKT0+bXEsUG9wc2ljbGU6KCk9PmdxLFBvdW5kU3Rlcmxpbmc6KCk9PmJxLFBvd2VyOigpPT54cSxQb3dlckNpcmNsZTooKT0+eG0sUG93ZXJPZmY6KCk9PnZxLFBvd2VyU3F1YXJlOigpPT5LNSxQcmVzZW50YXRpb246KCk9PnlxLFByaW50ZXI6KCk9PlNxLFByaW50ZXJDaGVjazooKT0+a3EsUHJpbnRlclg6KCk9PndxLFByb2plY3RvcjooKT0+enEsUHJvcG9ydGlvbnM6KCk9Pl9xLFB1enpsZTooKT0+TXEsUHlyYW1pZDooKT0+Q3EsUXJDb2RlOigpPT4kcSxRdW90ZTooKT0+VHEsUmFiYml0OigpPT5McSxSYWRhcjooKT0+RHEsUmFkaWF0aW9uOigpPT5FcSxSYWRpY2FsOigpPT5QcSxSYWRpbzooKT0+UnEsUmFkaW9PZmY6KCk9PklxLFJhZGlvUmVjZWl2ZXI6KCk9PkFxLFJhZGlvVG93ZXI6KCk9Pk5xLFJhZGl1czooKT0+T3EsUmFpbmJvdzooKT0+RnEsUmF0OigpPT5CcSxSYXRpbzooKT0+SHEsUmVjZWlwdDooKT0+WnEsUmVjZWlwdENlbnQ6KCk9PnFxLFJlY2VpcHRFdXJvOigpPT5qcSxSZWNlaXB0SW5kaWFuUnVwZWU6KCk9PlZxLFJlY2VpcHRKYXBhbmVzZVllbjooKT0+V3EsUmVjZWlwdFBvdW5kU3Rlcmxpbmc6KCk9PlVxLFJlY2VpcHRSdXNzaWFuUnVibGU6KCk9PkdxLFJlY2VpcHRTd2lzc0ZyYW5jOigpPT5ZcSxSZWNlaXB0VGV4dDooKT0+S3EsUmVjZWlwdFR1cmtpc2hMaXJhOigpPT5YcSxSZWN0YW5nbGVDaXJjbGU6KCk9PlFxLFJlY3RhbmdsZUVsbGlwc2lzOigpPT5LNixSZWN0YW5nbGVHb2dnbGVzOigpPT5KcSxSZWN0YW5nbGVIb3Jpem9udGFsOigpPT5laixSZWN0YW5nbGVWZXJ0aWNhbDooKT0+dGosUmVjeWNsZTooKT0+YWosUmVkbzooKT0+cmosUmVkbzI6KCk9PnNqLFJlZG9Eb3Q6KCk9PmlqLFJlZnJlc2hDY3c6KCk9Pm5qLFJlZnJlc2hDY3dEb3Q6KCk9Pm9qLFJlZnJlc2hDdzooKT0+Y2osUmVmcmVzaEN3T2ZmOigpPT5saixSZWZyaWdlcmF0b3I6KCk9PmRqLFJlZ2V4OigpPT51aixSZW1vdmVGb3JtYXR0aW5nOigpPT5waixSZXBlYXQ6KCk9PmdqLFJlcGVhdDE6KCk9PmZqLFJlcGVhdDI6KCk9PmhqLFJlcGVhdE9mZjooKT0+bWosUmVwbGFjZTooKT0+dmosUmVwbGFjZUFsbDooKT0+YmosUmVwbHk6KCk9PnlqLFJlcGx5QWxsOigpPT54aixSZXdpbmQ6KCk9PmtqLFJpYmJvbjooKT0+d2osUm9hZDooKT0+U2osUm9ja2V0OigpPT5faixSb2NraW5nQ2hhaXI6KCk9Pk1qLFJvbGxlckNvYXN0ZXI6KCk9PnpqLFJvc2U6KCk9PkNqLFJvdGF0ZTNEOigpPT5ZNixSb3RhdGUzZDooKT0+WTYsUm90YXRlQ2N3OigpPT5EaixSb3RhdGVDY3dLZXk6KCk9PlRqLFJvdGF0ZUNjd1NxdWFyZTooKT0+JGosUm90YXRlQ3c6KCk9PkVqLFJvdGF0ZUN3U3F1YXJlOigpPT5MaixSb3V0ZTooKT0+SWosUm91dGVPZmY6KCk9PlBqLFJvdXRlcjooKT0+QWosUm93czooKT0+WjYsUm93czI6KCk9Plo2LFJvd3MzOigpPT5YNixSb3dzNDooKT0+TmosUnNzOigpPT5SaixSdWxlcjooKT0+RmosUnVsZXJEaW1lbnNpb25MaW5lOigpPT5PaixSdXNzaWFuUnVibGU6KCk9PkJqLFNhaWxib2F0OigpPT5IaixTYWxhZDooKT0+cWosU2FuZHdpY2g6KCk9PmpqLFNhdGVsbGl0ZTooKT0+VmosU2F0ZWxsaXRlRGlzaDooKT0+VWosU2F1ZGlSaXlhbDooKT0+V2osU2F2ZTooKT0+WWosU2F2ZUFsbDooKT0+S2osU2F2ZU9mZjooKT0+R2osU2NhbGU6KCk9PlpqLFNjYWxlM0Q6KCk9PlE2LFNjYWxlM2Q6KCk9PlE2LFNjYWxpbmc6KCk9PlFqLFNjYW46KCk9Pm9WLFNjYW5CYXJjb2RlOigpPT5YaixTY2FuRXllOigpPT5KaixTY2FuRmFjZTooKT0+ZVYsU2NhbkhlYXJ0OigpPT50VixTY2FuTGluZTooKT0+YVYsU2NhblFyQ29kZTooKT0+c1YsU2NhblNlYXJjaDooKT0+aVYsU2NhblRleHQ6KCk9PnJWLFNjYXR0ZXJDaGFydDooKT0+S2YsU2Nob29sOigpPT5uVixTY2hvb2wyOigpPT5mOCxTY2lzc29yczooKT0+Y1YsU2Npc3NvcnNMaW5lRGFzaGVkOigpPT5sVixTY2lzc29yc1NxdWFyZTooKT0+WjUsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9PnY1LFNjb290ZXI6KCk9PmRWLFNjcmVlblNoYXJlOigpPT5wVixTY3JlZW5TaGFyZU9mZjooKT0+dVYsU2Nyb2xsOigpPT5mVixTY3JvbGxUZXh0OigpPT5oVixTZWFyY2g6KCk9PnlWLFNlYXJjaEFsZXJ0OigpPT5tVixTZWFyY2hDaGVjazooKT0+Z1YsU2VhcmNoQ29kZTooKT0+YlYsU2VhcmNoU2xhc2g6KCk9PnZWLFNlYXJjaFg6KCk9PnhWLFNlY3Rpb246KCk9PndWLFNlbmQ6KCk9PlNWLFNlbmRIb3Jpem9uYWw6KCk9Pko2LFNlbmRIb3Jpem9udGFsOigpPT5KNixTZW5kVG9CYWNrOigpPT5rVixTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5fVixTZXBhcmF0b3JWZXJ0aWNhbDooKT0+TVYsU2VydmVyOigpPT4kVixTZXJ2ZXJDb2c6KCk9PnpWLFNlcnZlckNyYXNoOigpPT5DVixTZXJ2ZXJPZmY6KCk9PlRWLFNldHRpbmdzOigpPT5FVixTZXR0aW5nczI6KCk9PkRWLFNoYXBlczooKT0+TFYsU2hhcmU6KCk9PklWLFNoYXJlMjooKT0+UFYsU2hlZXQ6KCk9Pk5WLFNoZWxsOigpPT5BVixTaGVsdmluZ1VuaXQ6KCk9PlJWLFNoaWVsZDooKT0+WVYsU2hpZWxkQWxlcnQ6KCk9Pk9WLFNoaWVsZEJhbjooKT0+RlYsU2hpZWxkQ2hlY2s6KCk9PkJWLFNoaWVsZENsb3NlOigpPT50NSxTaGllbGRDb2c6KCk9PmpWLFNoaWVsZENvZ0Nvcm5lcjooKT0+SFYsU2hpZWxkRWxsaXBzaXM6KCk9PnFWLFNoaWVsZEhhbGY6KCk9PlZWLFNoaWVsZE1pbnVzOigpPT5VVixTaGllbGRPZmY6KCk9PldWLFNoaWVsZFBsdXM6KCk9PkdWLFNoaWVsZFF1ZXN0aW9uOigpPT5lNSxTaGllbGRRdWVzdGlvbk1hcms6KCk9PmU1LFNoaWVsZFVzZXI6KCk9PktWLFNoaWVsZFg6KCk9PnQ1LFNoaXA6KCk9PlpWLFNoaXBXaGVlbDooKT0+WFYsU2hpcnQ6KCk9PlFWLFNob3BwaW5nQmFnOigpPT5KVixTaG9wcGluZ0Jhc2tldDooKT0+ZVUsU2hvcHBpbmdDYXJ0OigpPT50VSxTaG92ZWw6KCk9PmFVLFNob3dlckhlYWQ6KCk9PnNVLFNocmVkZGVyOigpPT5pVSxTaHJpbXA6KCk9Pm9VLFNocmluazooKT0+clUsU2hydWI6KCk9Pm5VLFNodWZmbGU6KCk9PmxVLFNpZGViYXI6KCk9Pkg2LFNpZGViYXJDbG9zZTooKT0+TzYsU2lkZWJhck9wZW46KCk9PkI2LFNpZ21hOigpPT5jVSxTaWdtYVNxdWFyZTooKT0+WTUsU2lnbmFsOigpPT5mVSxTaWduYWxIaWdoOigpPT5kVSxTaWduYWxMb3c6KCk9PnVVLFNpZ25hbE1lZGl1bTooKT0+cFUsU2lnbmFsWmVybzooKT0+aFUsU2lnbmF0dXJlOigpPT5tVSxTaWducG9zdDooKT0+YlUsU2lnbnBvc3RCaWc6KCk9PmdVLFNpcmVuOigpPT52VSxTa2lwQmFjazooKT0+eFUsU2tpcEZvcndhcmQ6KCk9PnlVLFNrdWxsOigpPT53VSxTbGFzaDooKT0+a1UsU2xhc2hTcXVhcmU6KCk9Plg1LFNsaWNlOigpPT5fVSxTbGlkZXJzOigpPT5hNSxTbGlkZXJzSG9yaXpvbnRhbDooKT0+U1UsU2xpZGVyc1ZlcnRpY2FsOigpPT5hNSxTbWFydHBob25lOigpPT5UVSxTbWFydHBob25lQ2hhcmdpbmc6KCk9Pk1VLFNtYXJ0cGhvbmVOZmM6KCk9PnpVLFNtaWxlOigpPT4kVSxTbWlsZVBsdXM6KCk9PkNVLFNuYWlsOigpPT5EVSxTbm93Zmxha2U6KCk9PkxVLFNvYXBEaXNwZW5zZXJEcm9wbGV0OigpPT5FVSxTb2ZhOigpPT5QVSxTb2xhclBhbmVsOigpPT5JVSxTb3J0QXNjOigpPT56ZixTb3J0RGVzYzooKT0+U2YsU291cDooKT0+QVUsU3BhY2U6KCk9Pk5VLFNwYWRlOigpPT5SVSxTcGFya2xlOigpPT5PVSxTcGFya2xlczooKT0+czUsU3BlYWtlcjooKT0+RlUsU3BlZWNoOigpPT5CVSxTcGVsbENoZWNrOigpPT5IVSxTcGVsbENoZWNrMjooKT0+cVUsU3BsaW5lOigpPT5WVSxTcGxpbmVQb2ludGVyOigpPT5qVSxTcGxpdDooKT0+VVUsU3BsaXRTcXVhcmVIb3Jpem9udGFsOigpPT5RNSxTcGxpdFNxdWFyZVZlcnRpY2FsOigpPT5KNSxTcG9vbDooKT0+V1UsU3BvcnRTaG9lOigpPT5HVSxTcG90bGlnaHQ6KCk9PlpVLFNwcmF5Q2FuOigpPT5LVSxTcHJvdXQ6KCk9PllVLFNxdWFyZTooKT0+Y1csU3F1YXJlQWN0aXZpdHk6KCk9Pmk1LFNxdWFyZUFycm93RG93bjooKT0+bjUsU3F1YXJlQXJyb3dEb3duTGVmdDooKT0+cjUsU3F1YXJlQXJyb3dEb3duUmlnaHQ6KCk9Pm81LFNxdWFyZUFycm93TGVmdDooKT0+bDUsU3F1YXJlQXJyb3dPdXREb3duTGVmdDooKT0+YzUsU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6KCk9PmQ1LFNxdWFyZUFycm93T3V0VXBMZWZ0OigpPT51NSxTcXVhcmVBcnJvd091dFVwUmlnaHQ6KCk9PnA1LFNxdWFyZUFycm93UmlnaHQ6KCk9Pmg1LFNxdWFyZUFycm93UmlnaHRFbnRlcjooKT0+WFUsU3F1YXJlQXJyb3dSaWdodEV4aXQ6KCk9PlFVLFNxdWFyZUFycm93VXA6KCk9Pmc1LFNxdWFyZUFycm93VXBMZWZ0OigpPT5mNSxTcXVhcmVBcnJvd1VwUmlnaHQ6KCk9Pm01LFNxdWFyZUFzdGVyaXNrOigpPT5iNSxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczooKT0+djUsU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6KCk9Png1LFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRWZXJ0aWNhbDooKT0+eTUsU3F1YXJlQ2hhcnRHYW50dDooKT0+WTAsU3F1YXJlQ2hlY2s6KCk9Pms1LFNxdWFyZUNoZWNrQmlnOigpPT53NSxTcXVhcmVDaGV2cm9uRG93bjooKT0+UzUsU3F1YXJlQ2hldnJvbkxlZnQ6KCk9Pl81LFNxdWFyZUNoZXZyb25SaWdodDooKT0+TTUsU3F1YXJlQ2hldnJvblVwOigpPT56NSxTcXVhcmVDb2RlOigpPT5DNSxTcXVhcmVEYXNoZWQ6KCk9PkQ1LFNxdWFyZURhc2hlZEJvdHRvbTooKT0+ZVcsU3F1YXJlRGFzaGVkQm90dG9tQ29kZTooKT0+SlUsU3F1YXJlRGFzaGVkS2FuYmFuOigpPT5UNSxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6KCk9PiQ1LFNxdWFyZURhc2hlZFRleHQ6KCk9PlowLFNxdWFyZURhc2hlZFRvcFNvbGlkOigpPT50VyxTcXVhcmVEaXZpZGU6KCk9PkU1LFNxdWFyZURvdDooKT0+TDUsU3F1YXJlRXF1YWw6KCk9PlA1LFNxdWFyZUZ1bmN0aW9uOigpPT5JNSxTcXVhcmVHYW50dENoYXJ0OigpPT5ZMCxTcXVhcmVLYW5iYW46KCk9PlI1LFNxdWFyZUxpYnJhcnk6KCk9PkE1LFNxdWFyZU06KCk9Pk41LFNxdWFyZU1lbnU6KCk9Pk81LFNxdWFyZU1pbnVzOigpPT5GNSxTcXVhcmVNb3VzZVBvaW50ZXI6KCk9PkI1LFNxdWFyZVBhcmtpbmc6KCk9PnE1LFNxdWFyZVBhcmtpbmdPZmY6KCk9Pkg1LFNxdWFyZVBhdXNlOigpPT5hVyxTcXVhcmVQZW46KCk9PlYxLFNxdWFyZVBlcmNlbnQ6KCk9Pmo1LFNxdWFyZVBpOigpPT5WNSxTcXVhcmVQaWxjcm93OigpPT5VNSxTcXVhcmVQbGF5OigpPT5HNSxTcXVhcmVQbHVzOigpPT5XNSxTcXVhcmVQb3dlcjooKT0+SzUsU3F1YXJlUmFkaWNhbDooKT0+c1csU3F1YXJlUm91bmRDb3JuZXI6KCk9PmlXLFNxdWFyZVNjaXNzb3JzOigpPT5aNSxTcXVhcmVTaWdtYTooKT0+WTUsU3F1YXJlU2xhc2g6KCk9Plg1LFNxdWFyZVNwbGl0SG9yaXpvbnRhbDooKT0+UTUsU3F1YXJlU3BsaXRWZXJ0aWNhbDooKT0+SjUsU3F1YXJlU3F1YXJlOigpPT5yVyxTcXVhcmVTdGFjazooKT0+b1csU3F1YXJlU3RhcjooKT0+blcsU3F1YXJlU3RvcDooKT0+bFcsU3F1YXJlVGVybWluYWw6KCk9PmU4LFNxdWFyZVVzZXI6KCk9PnM4LFNxdWFyZVVzZXJSb3VuZDooKT0+dDgsU3F1YXJlWDooKT0+YTgsU3F1YXJlc0V4Y2x1ZGU6KCk9PmRXLFNxdWFyZXNJbnRlcnNlY3Q6KCk9PnVXLFNxdWFyZXNTdWJ0cmFjdDooKT0+cFcsU3F1YXJlc1VuaXRlOigpPT5oVyxTcXVpcmNsZTooKT0+bVcsU3F1aXJjbGVEYXNoZWQ6KCk9PmZXLFNxdWlycmVsOigpPT5nVyxTdGFtcDooKT0+YlcsU3RhcjooKT0+eVcsU3RhckhhbGY6KCk9PnZXLFN0YXJPZmY6KCk9PnhXLFN0YXJzOigpPT5zNSxTdGVwQmFjazooKT0+d1csU3RlcEZvcndhcmQ6KCk9PmtXLFN0ZXRob3Njb3BlOigpPT5fVyxTdGlja2VyOigpPT5TVyxTdGlja3lOb3RlOigpPT5NVyxTdG9uZTooKT0+VFcsU3RvcENpcmNsZTooKT0+d20sU3RvcmU6KCk9PnpXLFN0cmV0Y2hIb3Jpem9udGFsOigpPT5DVyxTdHJldGNoVmVydGljYWw6KCk9PiRXLFN0cmlrZXRocm91Z2g6KCk9PkRXLFN1YnNjcmlwdDooKT0+TFcsU3VidGl0bGVzOigpPT5BZixTdW46KCk9Pk5XLFN1bkRpbTooKT0+RVcsU3VuTWVkaXVtOigpPT5QVyxTdW5Nb29uOigpPT5JVyxTdW5Tbm93OigpPT5BVyxTdW5yaXNlOigpPT5SVyxTdW5zZXQ6KCk9Pk9XLFN1cGVyc2NyaXB0OigpPT5GVyxTd2F0Y2hCb29rOigpPT5CVyxTd2lzc0ZyYW5jOigpPT5IVyxTd2l0Y2hDYW1lcmE6KCk9PnFXLFN3b3JkOigpPT5qVyxTd29yZHM6KCk9PlZXLFN5cmluZ2U6KCk9PlVXLFRhYmxlOigpPT5lRyxUYWJsZTI6KCk9PldXLFRhYmxlQ2VsbHNNZXJnZTooKT0+R1csVGFibGVDZWxsc1NwbGl0OigpPT5LVyxUYWJsZUNvbHVtbnNTcGxpdDooKT0+WVcsVGFibGVDb25maWc6KCk9PlYwLFRhYmxlT2ZDb250ZW50czooKT0+WlcsVGFibGVQcm9wZXJ0aWVzOigpPT5YVyxUYWJsZVJvd3NTcGxpdDooKT0+UVcsVGFibGV0OigpPT50RyxUYWJsZXRTbWFydHBob25lOigpPT5KVyxUYWJsZXRzOigpPT5hRyxUYWc6KCk9PnNHLFRhZ3M6KCk9PmlHLFRhbGx5MTooKT0+ckcsVGFsbHkyOigpPT5vRyxUYWxseTM6KCk9Pm5HLFRhbGx5NDooKT0+bEcsVGFsbHk1OigpPT5kRyxUYW5nZW50OigpPT5jRyxUYXJnZXQ6KCk9PnVHLFRlbGVzY29wZTooKT0+cEcsVGVudDooKT0+ZkcsVGVudFRyZWU6KCk9PmhHLFRlcm1pbmFsOigpPT5tRyxUZXJtaW5hbFNxdWFyZTooKT0+ZTgsVGVzdFR1YmU6KCk9PmdHLFRlc3RUdWJlMjooKT0+aTgsVGVzdFR1YmVEaWFnb25hbDooKT0+aTgsVGVzdFR1YmVzOigpPT5iRyxUZXh0OigpPT5YMCxUZXh0QWxpZ25DZW50ZXI6KCk9PnI4LFRleHRBbGlnbkVuZDooKT0+bzgsVGV4dEFsaWduSnVzdGlmeTooKT0+bjgsVGV4dEFsaWduU3RhcnQ6KCk9PlgwLFRleHRDdXJzb3I6KCk9PnhHLFRleHRDdXJzb3JJbnB1dDooKT0+dkcsVGV4dEluaXRpYWw6KCk9Pmw4LFRleHRRdW90ZTooKT0+eUcsVGV4dFNlYXJjaDooKT0+d0csVGV4dFNlbGVjdDooKT0+WjAsVGV4dFNlbGVjdGlvbjooKT0+WjAsVGV4dFdyYXA6KCk9PmM4LFRoZWF0ZXI6KCk9PmtHLFRoZXJtb21ldGVyOigpPT5NRyxUaGVybW9tZXRlclNub3dmbGFrZTooKT0+U0csVGhlcm1vbWV0ZXJTdW46KCk9Pl9HLFRodW1ic0Rvd246KCk9PnpHLFRodW1ic1VwOigpPT5DRyxUaWNrZXQ6KCk9PklHLFRpY2tldENoZWNrOigpPT5URyxUaWNrZXRNaW51czooKT0+JEcsVGlja2V0UGVyY2VudDooKT0+REcsVGlja2V0UGx1czooKT0+TEcsVGlja2V0U2xhc2g6KCk9PkVHLFRpY2tldFg6KCk9PlBHLFRpY2tldHM6KCk9Pk5HLFRpY2tldHNQbGFuZTooKT0+QUcsVGltZWxpbmU6KCk9PlJHLFRpbWVyOigpPT5CRyxUaW1lck9mZjooKT0+T0csVGltZXJSZXNldDooKT0+RkcsVG9nZ2xlTGVmdDooKT0+cUcsVG9nZ2xlUmlnaHQ6KCk9PmpHLFRvaWxldDooKT0+SEcsVG9vbENhc2U6KCk9PlZHLFRvb2xib3g6KCk9PlVHLFRvcm5hZG86KCk9PktHLFRvcnVzOigpPT5XRyxUb3VjaHBhZDooKT0+WUcsVG91Y2hwYWRPZmY6KCk9PkdHLFRvd2VsUmFjazooKT0+WkcsVG93ZXJDb250cm9sOigpPT5YRyxUb3lCcmljazooKT0+UUcsVHJhY3RvcjooKT0+SkcsVHJhZmZpY0NvbmU6KCk9PmVLLFRyYWluOigpPT5kOCxUcmFpbkZyb250OigpPT5hSyxUcmFpbkZyb250VHVubmVsOigpPT50SyxUcmFpblRyYWNrOigpPT5zSyxUcmFtRnJvbnQ6KCk9PmQ4LFRyYW5zZ2VuZGVyOigpPT5pSyxUcmFzaDooKT0+b0ssVHJhc2gyOigpPT5ySyxUcmVlRGVjaWR1b3VzOigpPT5uSyxUcmVlUGFsbTooKT0+dTgsVHJlZVBpbmU6KCk9PmxLLFRyZWVzOigpPT5jSyxUcmVuZGluZ0Rvd246KCk9PmRLLFRyZW5kaW5nVXA6KCk9PnBLLFRyZW5kaW5nVXBEb3duOigpPT51SyxUcmlhbmdsZTooKT0+bUssVHJpYW5nbGVBbGVydDooKT0+cDgsVHJpYW5nbGVEYXNoZWQ6KCk9PmhLLFRyaWFuZ2xlUmlnaHQ6KCk9PmZLLFRyb3BoeTooKT0+Z0ssVHJ1Y2s6KCk9PnZLLFRydWNrRWxlY3RyaWM6KCk9PmJLLFR1cmtpc2hMaXJhOigpPT54SyxUdXJudGFibGU6KCk9PnlLLFR1cnRsZTooKT0+d0ssVHY6KCk9PlNLLFR2MjooKT0+aDgsVHZNaW5pbWFsOigpPT5oOCxUdk1pbmltYWxQbGF5OigpPT5rSyxUeXBlOigpPT5NSyxUeXBlT3V0bGluZTooKT0+X0ssVW1icmVsbGE6KCk9PkNLLFVtYnJlbGxhT2ZmOigpPT56SyxVbmRlcmxpbmU6KCk9PlRLLFVuZG86KCk9PkxLLFVuZG8yOigpPT4kSyxVbmRvRG90OigpPT5ESyxVbmZvbGRIb3Jpem9udGFsOigpPT5FSyxVbmZvbGRWZXJ0aWNhbDooKT0+UEssVW5ncm91cDooKT0+SUssVW5pdmVyc2l0eTooKT0+ZjgsVW5saW5rOigpPT5SSyxVbmxpbmsyOigpPT5BSyxVbmxvY2s6KCk9PkM2LFVubG9ja0tleWhvbGU6KCk9Pno2LFVucGx1ZzooKT0+TkssVXBsb2FkOigpPT5PSyxVcGxvYWRDbG91ZDooKT0+VG0sVXNiOigpPT5GSyxVc2VyOigpPT5KSyxVc2VyMjooKT0+eTgsVXNlckNoZWNrOigpPT5CSyxVc2VyQ2hlY2syOigpPT5tOCxVc2VyQ2lyY2xlOigpPT5TbSxVc2VyQ2lyY2xlMjooKT0+a20sVXNlckNvZzooKT0+SEssVXNlckNvZzI6KCk9Pmc4LFVzZXJLZXk6KCk9PnFLLFVzZXJMb2NrOigpPT5qSyxVc2VyTWludXM6KCk9PlZLLFVzZXJNaW51czI6KCk9PmI4LFVzZXJQZW46KCk9PlVLLFVzZXJQbHVzOigpPT5XSyxVc2VyUGx1czI6KCk9PnY4LFVzZXJSb3VuZDooKT0+eTgsVXNlclJvdW5kQ2hlY2s6KCk9Pm04LFVzZXJSb3VuZENvZzooKT0+ZzgsVXNlclJvdW5kS2V5OigpPT5HSyxVc2VyUm91bmRNaW51czooKT0+YjgsVXNlclJvdW5kUGVuOigpPT5LSyxVc2VyUm91bmRQbHVzOigpPT52OCxVc2VyUm91bmRTZWFyY2g6KCk9PllLLFVzZXJSb3VuZFg6KCk9Png4LFVzZXJTZWFyY2g6KCk9PlpLLFVzZXJTcXVhcmU6KCk9PnM4LFVzZXJTcXVhcmUyOigpPT50OCxVc2VyU3RhcjooKT0+WEssVXNlclg6KCk9PlFLLFVzZXJYMjooKT0+eDgsVXNlcnM6KCk9PmVZLFVzZXJzMjooKT0+dzgsVXNlcnNSb3VuZDooKT0+dzgsVXRlbnNpbHM6KCk9PlM4LFV0ZW5zaWxzQ3Jvc3NlZDooKT0+azgsVXRpbGl0eVBvbGU6KCk9PmFZLFZhbjooKT0+dFksVmFyaWFibGU6KCk9PnNZLFZhdWx0OigpPT5pWSxWZWN0b3JTcXVhcmU6KCk9PnJZLFZlZ2FuOigpPT5vWSxWZW5ldGlhbk1hc2s6KCk9Pm5ZLFZlbnVzOigpPT5jWSxWZW51c0FuZE1hcnM6KCk9PmxZLFZlcmlmaWVkOigpPT4kZixWaWJyYXRlOigpPT51WSxWaWJyYXRlT2ZmOigpPT5kWSxWaWRlbzooKT0+aFksVmlkZW9PZmY6KCk9PnBZLFZpZGVvdGFwZTooKT0+ZlksVmlldzooKT0+bVksVm9pY2VtYWlsOigpPT5iWSxWb2xsZXliYWxsOigpPT5nWSxWb2x1bWU6KCk9PmtZLFZvbHVtZTE6KCk9PnZZLFZvbHVtZTI6KCk9PnhZLFZvbHVtZU9mZjooKT0+eVksVm9sdW1lWDooKT0+d1ksVm90ZTooKT0+U1ksV2FsbGV0OigpPT5NWSxXYWxsZXQyOigpPT5fOCxXYWxsZXRDYXJkczooKT0+X1ksV2FsbGV0TWluaW1hbDooKT0+XzgsV2FsbHBhcGVyOigpPT56WSxXYW5kOigpPT5DWSxXYW5kMjooKT0+TTgsV2FuZFNwYXJrbGVzOigpPT5NOCxXYXJlaG91c2U6KCk9PlRZLFdhc2hpbmdNYWNoaW5lOigpPT5EWSxXYXRjaDooKT0+JFksV2F2ZXM6KCk9Pno4LFdhdmVzQXJyb3dEb3duOigpPT5MWSxXYXZlc0Fycm93VXA6KCk9PkVZLFdhdmVzSG9yaXpvbnRhbDooKT0+ejgsV2F2ZXNMYWRkZXI6KCk9PlBZLFdhdmVzVmVydGljYWw6KCk9PklZLFdheXBvaW50czooKT0+QVksV2ViY2FtOigpPT5OWSxXZWJob29rOigpPT5PWSxXZWJob29rT2ZmOigpPT5SWSxXZWlnaHQ6KCk9PkJZLFdlaWdodFRpbGRlOigpPT5GWSxXaGVhdDooKT0+cVksV2hlYXRPZmY6KCk9PkhZLFdob2xlV29yZDooKT0+alksV2lmaTooKT0+UVksV2lmaUNvZzooKT0+VlksV2lmaUhpZ2g6KCk9PlVZLFdpZmlMb3c6KCk9PldZLFdpZmlPZmY6KCk9PkdZLFdpZmlQZW46KCk9PktZLFdpZmlTeW5jOigpPT5ZWSxXaWZpWmVybzooKT0+WlksV2luZDooKT0+SlksV2luZEFycm93RG93bjooKT0+WFksV2luZTooKT0+c1osV2luZU9mZjooKT0+ZVosV29ya2Zsb3c6KCk9PmFaLFdvcm06KCk9PnRaLFdyYXBUZXh0OigpPT5jOCxXcmVuY2g6KCk9PmlaLFg6KCk9Pm9aLFhDaXJjbGU6KCk9Pl9tLFhMaW5lVG9wOigpPT5yWixYT2N0YWdvbjooKT0+QTYsWFNxdWFyZTooKT0+YTgsWmFwOigpPT5sWixaYXBPZmY6KCk9Pm5aLFpvZGlhY0FxdWFyaXVzOigpPT5jWixab2RpYWNBcmllczooKT0+ZFosWm9kaWFjQ2FuY2VyOigpPT51Wixab2RpYWNDYXByaWNvcm46KCk9PnBaLFpvZGlhY0dlbWluaTooKT0+aFosWm9kaWFjTGVvOigpPT5mWixab2RpYWNMaWJyYTooKT0+bVosWm9kaWFjT3BoaXVjaHVzOigpPT5nWixab2RpYWNQaXNjZXM6KCk9PmJaLFpvZGlhY1NhZ2l0dGFyaXVzOigpPT54Wixab2RpYWNTY29ycGlvOigpPT52Wixab2RpYWNUYXVydXM6KCk9PnlaLFpvZGlhY1ZpcmdvOigpPT53Wixab29tSW46KCk9PmtaLFpvb21PdXQ6KCk9PlNaLGNyZWF0ZUVsZW1lbnQ6KCk9PmoxLGNyZWF0ZUljb25zOigpPT53ZXQsaWNvbnM6KCk9PkNkfSk7dmFyIHdldCxDOD1nKCgpPT57VzJhKCk7RzJhKCk7RmtlKCk7VWtlKCk7V2tlKCk7R2tlKCk7S2tlKCk7WWtlKCk7WmtlKCk7WGtlKCk7UWtlKCk7SmtlKCk7ZVNlKCk7dFNlKCk7YVNlKCk7c1NlKCk7aVNlKCk7clNlKCk7b1NlKCk7blNlKCk7bFNlKCk7Y1NlKCk7ZFNlKCk7dVNlKCk7cFNlKCk7aFNlKCk7ZlNlKCk7bVNlKCk7Z1NlKCk7YlNlKCk7dlNlKCk7eFNlKCk7eVNlKCk7d1NlKCk7a1NlKCk7U1NlKCk7X1NlKCk7TVNlKCk7elNlKCk7Q1NlKCk7VFNlKCk7JFNlKCk7RFNlKCk7TFNlKCk7RVNlKCk7UFNlKCk7SVNlKCk7QVNlKCk7TlNlKCk7UlNlKCk7T1NlKCk7RlNlKCk7QlNlKCk7SFNlKCk7cVNlKCk7alNlKCk7VlNlKCk7VVNlKCk7V1NlKCk7R1NlKCk7S1NlKCk7WVNlKCk7WlNlKCk7WFNlKCk7UVNlKCk7SlNlKCk7ZV9lKCk7dF9lKCk7YV9lKCk7c19lKCk7aV9lKCk7cl9lKCk7b19lKCk7bl9lKCk7bF9lKCk7Y19lKCk7ZF9lKCk7dV9lKCk7cF9lKCk7aF9lKCk7Zl9lKCk7bV9lKCk7Z19lKCk7Yl9lKCk7dl9lKCk7eF9lKCk7eV9lKCk7d19lKCk7a19lKCk7U19lKCk7X19lKCk7TV9lKCk7el9lKCk7Q19lKCk7VF9lKCk7JF9lKCk7RF9lKCk7TF9lKCk7RV9lKCk7UF9lKCk7SV9lKCk7QV9lKCk7Tl9lKCk7Ul9lKCk7T19lKCk7Rl9lKCk7Ql9lKCk7SF9lKCk7cV9lKCk7al9lKCk7Vl9lKCk7VV9lKCk7V19lKCk7R19lKCk7S19lKCk7WV9lKCk7Wl9lKCk7WF9lKCk7UV9lKCk7Sl9lKCk7ZU1lKCk7dE1lKCk7YU1lKCk7c01lKCk7aU1lKCk7ck1lKCk7b01lKCk7bk1lKCk7bE1lKCk7Y01lKCk7ZE1lKCk7dU1lKCk7cE1lKCk7aE1lKCk7Zk1lKCk7bU1lKCk7Z01lKCk7Yk1lKCk7dk1lKCk7eE1lKCk7eU1lKCk7d01lKCk7a01lKCk7U01lKCk7X01lKCk7TU1lKCk7ek1lKCk7Q01lKCk7VE1lKCk7JE1lKCk7RE1lKCk7TE1lKCk7RU1lKCk7UE1lKCk7SU1lKCk7QU1lKCk7Tk1lKCk7Uk1lKCk7T01lKCk7Rk1lKCk7Qk1lKCk7SE1lKCk7cU1lKCk7ak1lKCk7Vk1lKCk7VU1lKCk7V01lKCk7R01lKCk7S01lKCk7WU1lKCk7Wk1lKCk7WE1lKCk7UU1lKCk7Sk1lKCk7ZXplKCk7dHplKCk7YXplKCk7c3plKCk7aXplKCk7cnplKCk7b3plKCk7bnplKCk7bHplKCk7Y3plKCk7ZHplKCk7dXplKCk7cHplKCk7aHplKCk7ZnplKCk7bXplKCk7Z3plKCk7YnplKCk7dnplKCk7eHplKCk7eXplKCk7d3plKCk7a3plKCk7U3plKCk7X3plKCk7TXplKCk7enplKCk7Q3plKCk7VHplKCk7JHplKCk7RHplKCk7THplKCk7RXplKCk7UHplKCk7SXplKCk7QXplKCk7TnplKCk7UnplKCk7T3plKCk7RnplKCk7QnplKCk7SHplKCk7cXplKCk7anplKCk7VnplKCk7VXplKCk7V3plKCk7R3plKCk7S3plKCk7WXplKCk7WnplKCk7WHplKCk7UXplKCk7SnplKCk7ZUNlKCk7dENlKCk7YUNlKCk7c0NlKCk7aUNlKCk7ckNlKCk7b0NlKCk7bkNlKCk7bENlKCk7Y0NlKCk7ZENlKCk7dUNlKCk7cENlKCk7aENlKCk7ZkNlKCk7bUNlKCk7Z0NlKCk7YkNlKCk7dkNlKCk7eENlKCk7eUNlKCk7d0NlKCk7a0NlKCk7U0NlKCk7X0NlKCk7TUNlKCk7ekNlKCk7Q0NlKCk7VENlKCk7JENlKCk7RENlKCk7TENlKCk7RUNlKCk7UENlKCk7SUNlKCk7QUNlKCk7TkNlKCk7UkNlKCk7T0NlKCk7RkNlKCk7QkNlKCk7SENlKCk7cUNlKCk7akNlKCk7VkNlKCk7VUNlKCk7V0NlKCk7R0NlKCk7S0NlKCk7WUNlKCk7WkNlKCk7WENlKCk7UUNlKCk7SkNlKCk7ZVRlKCk7dFRlKCk7YVRlKCk7c1RlKCk7aVRlKCk7clRlKCk7b1RlKCk7blRlKCk7bFRlKCk7Y1RlKCk7ZFRlKCk7dVRlKCk7cFRlKCk7aFRlKCk7ZlRlKCk7bVRlKCk7Z1RlKCk7YlRlKCk7dlRlKCk7eFRlKCk7eVRlKCk7d1RlKCk7a1RlKCk7U1RlKCk7X1RlKCk7TVRlKCk7elRlKCk7Q1RlKCk7VFRlKCk7JFRlKCk7RFRlKCk7TFRlKCk7RVRlKCk7UFRlKCk7SVRlKCk7QVRlKCk7TlRlKCk7UlRlKCk7T1RlKCk7RlRlKCk7QlRlKCk7SFRlKCk7cVRlKCk7alRlKCk7VlRlKCk7VVRlKCk7V1RlKCk7R1RlKCk7S1RlKCk7WVRlKCk7WlRlKCk7WFRlKCk7UVRlKCk7SlRlKCk7ZSRlKCk7dCRlKCk7YSRlKCk7cyRlKCk7aSRlKCk7ciRlKCk7byRlKCk7biRlKCk7bCRlKCk7YyRlKCk7ZCRlKCk7dSRlKCk7cCRlKCk7aCRlKCk7ZiRlKCk7bSRlKCk7ZyRlKCk7YiRlKCk7diRlKCk7eCRlKCk7eSRlKCk7dyRlKCk7ayRlKCk7UyRlKCk7XyRlKCk7TSRlKCk7eiRlKCk7QyRlKCk7VCRlKCk7JCRlKCk7RCRlKCk7TCRlKCk7RSRlKCk7UCRlKCk7SSRlKCk7QSRlKCk7TiRlKCk7UiRlKCk7TyRlKCk7RiRlKCk7QiRlKCk7SCRlKCk7cSRlKCk7aiRlKCk7ViRlKCk7VSRlKCk7VyRlKCk7RyRlKCk7SyRlKCk7WSRlKCk7WiRlKCk7WCRlKCk7USRlKCk7SiRlKCk7ZURlKCk7dERlKCk7YURlKCk7c0RlKCk7aURlKCk7ckRlKCk7b0RlKCk7bkRlKCk7bERlKCk7Y0RlKCk7ZERlKCk7dURlKCk7cERlKCk7aERlKCk7ZkRlKCk7bURlKCk7Z0RlKCk7YkRlKCk7dkRlKCk7eERlKCk7eURlKCk7d0RlKCk7a0RlKCk7U0RlKCk7X0RlKCk7TURlKCk7ekRlKCk7Q0RlKCk7VERlKCk7JERlKCk7RERlKCk7TERlKCk7RURlKCk7UERlKCk7SURlKCk7QURlKCk7TkRlKCk7UkRlKCk7T0RlKCk7RkRlKCk7QkRlKCk7SERlKCk7cURlKCk7akRlKCk7VkRlKCk7VURlKCk7V0RlKCk7R0RlKCk7S0RlKCk7WURlKCk7WkRlKCk7WERlKCk7UURlKCk7SkRlKCk7ZUxlKCk7dExlKCk7YUxlKCk7c0xlKCk7aUxlKCk7ckxlKCk7b0xlKCk7bkxlKCk7bExlKCk7Y0xlKCk7ZExlKCk7dUxlKCk7cExlKCk7aExlKCk7ZkxlKCk7bUxlKCk7Z0xlKCk7YkxlKCk7dkxlKCk7eExlKCk7eUxlKCk7d0xlKCk7a0xlKCk7U0xlKCk7X0xlKCk7TUxlKCk7ekxlKCk7Q0xlKCk7VExlKCk7JExlKCk7RExlKCk7TExlKCk7RUxlKCk7UExlKCk7SUxlKCk7QUxlKCk7TkxlKCk7UkxlKCk7T0xlKCk7RkxlKCk7QkxlKCk7SExlKCk7cUxlKCk7akxlKCk7VkxlKCk7VUxlKCk7V0xlKCk7R0xlKCk7S0xlKCk7WUxlKCk7WkxlKCk7WExlKCk7UUxlKCk7SkxlKCk7ZUVlKCk7dEVlKCk7YUVlKCk7c0VlKCk7aUVlKCk7ckVlKCk7b0VlKCk7bkVlKCk7bEVlKCk7Y0VlKCk7ZEVlKCk7dUVlKCk7cEVlKCk7aEVlKCk7ZkVlKCk7bUVlKCk7Z0VlKCk7YkVlKCk7dkVlKCk7eEVlKCk7eUVlKCk7d0VlKCk7a0VlKCk7U0VlKCk7X0VlKCk7TUVlKCk7ekVlKCk7Q0VlKCk7VEVlKCk7JEVlKCk7REVlKCk7TEVlKCk7RUVlKCk7UEVlKCk7SUVlKCk7QUVlKCk7TkVlKCk7UkVlKCk7T0VlKCk7RkVlKCk7QkVlKCk7SEVlKCk7cUVlKCk7akVlKCk7VkVlKCk7VUVlKCk7V0VlKCk7R0VlKCk7S0VlKCk7WUVlKCk7WkVlKCk7WEVlKCk7UUVlKCk7SkVlKCk7ZVBlKCk7dFBlKCk7YVBlKCk7c1BlKCk7aVBlKCk7clBlKCk7b1BlKCk7blBlKCk7bFBlKCk7Y1BlKCk7ZFBlKCk7dVBlKCk7cFBlKCk7aFBlKCk7ZlBlKCk7bVBlKCk7Z1BlKCk7YlBlKCk7dlBlKCk7eFBlKCk7eVBlKCk7d1BlKCk7a1BlKCk7U1BlKCk7X1BlKCk7TVBlKCk7elBlKCk7Q1BlKCk7VFBlKCk7JFBlKCk7RFBlKCk7TFBlKCk7RVBlKCk7UFBlKCk7SVBlKCk7QVBlKCk7TlBlKCk7UlBlKCk7T1BlKCk7RlBlKCk7QlBlKCk7SFBlKCk7cVBlKCk7alBlKCk7VlBlKCk7VVBlKCk7V1BlKCk7R1BlKCk7S1BlKCk7WVBlKCk7WlBlKCk7WFBlKCk7UVBlKCk7SlBlKCk7ZUllKCk7dEllKCk7YUllKCk7c0llKCk7aUllKCk7ckllKCk7b0llKCk7bkllKCk7bEllKCk7Y0llKCk7ZEllKCk7dUllKCk7cEllKCk7aEllKCk7ZkllKCk7bUllKCk7Z0llKCk7YkllKCk7dkllKCk7eEllKCk7eUllKCk7d0llKCk7a0llKCk7U0llKCk7X0llKCk7TUllKCk7ekllKCk7Q0llKCk7VEllKCk7JEllKCk7REllKCk7TEllKCk7RUllKCk7UEllKCk7SUllKCk7QUllKCk7TkllKCk7UkllKCk7T0llKCk7RkllKCk7QkllKCk7SEllKCk7cUllKCk7akllKCk7VkllKCk7VUllKCk7V0llKCk7R0llKCk7S0llKCk7WUllKCk7WkllKCk7WEllKCk7UUllKCk7SkllKCk7ZUFlKCk7dEFlKCk7YUFlKCk7c0FlKCk7aUFlKCk7ckFlKCk7b0FlKCk7bkFlKCk7bEFlKCk7Y0FlKCk7ZEFlKCk7dUFlKCk7cEFlKCk7aEFlKCk7ZkFlKCk7bUFlKCk7Z0FlKCk7YkFlKCk7dkFlKCk7eEFlKCk7eUFlKCk7d0FlKCk7a0FlKCk7U0FlKCk7X0FlKCk7TUFlKCk7ekFlKCk7Q0FlKCk7VEFlKCk7JEFlKCk7REFlKCk7TEFlKCk7RUFlKCk7UEFlKCk7SUFlKCk7QUFlKCk7TkFlKCk7UkFlKCk7T0FlKCk7RkFlKCk7QkFlKCk7SEFlKCk7cUFlKCk7akFlKCk7VkFlKCk7VUFlKCk7V0FlKCk7R0FlKCk7S0FlKCk7WUFlKCk7WkFlKCk7WEFlKCk7UUFlKCk7SkFlKCk7ZU5lKCk7dE5lKCk7YU5lKCk7c05lKCk7aU5lKCk7ck5lKCk7b05lKCk7bk5lKCk7bE5lKCk7Y05lKCk7ZE5lKCk7dU5lKCk7cE5lKCk7aE5lKCk7Zk5lKCk7bU5lKCk7Z05lKCk7Yk5lKCk7dk5lKCk7eE5lKCk7eU5lKCk7d05lKCk7a05lKCk7U05lKCk7X05lKCk7TU5lKCk7ek5lKCk7Q05lKCk7VE5lKCk7JE5lKCk7RE5lKCk7TE5lKCk7RU5lKCk7UE5lKCk7SU5lKCk7QU5lKCk7Tk5lKCk7Uk5lKCk7T05lKCk7Rk5lKCk7Qk5lKCk7SE5lKCk7cU5lKCk7ak5lKCk7Vk5lKCk7VU5lKCk7V05lKCk7R05lKCk7S05lKCk7WU5lKCk7Wk5lKCk7WE5lKCk7UU5lKCk7Sk5lKCk7ZVJlKCk7dFJlKCk7YVJlKCk7c1JlKCk7aVJlKCk7clJlKCk7b1JlKCk7blJlKCk7bFJlKCk7Y1JlKCk7ZFJlKCk7dVJlKCk7cFJlKCk7aFJlKCk7ZlJlKCk7bVJlKCk7Z1JlKCk7YlJlKCk7dlJlKCk7eFJlKCk7eVJlKCk7d1JlKCk7a1JlKCk7U1JlKCk7X1JlKCk7TVJlKCk7elJlKCk7Q1JlKCk7VFJlKCk7JFJlKCk7RFJlKCk7TFJlKCk7RVJlKCk7UFJlKCk7SVJlKCk7QVJlKCk7TlJlKCk7UlJlKCk7T1JlKCk7RlJlKCk7QlJlKCk7SFJlKCk7cVJlKCk7alJlKCk7VlJlKCk7VVJlKCk7V1JlKCk7R1JlKCk7S1JlKCk7WVJlKCk7WlJlKCk7WFJlKCk7UVJlKCk7SlJlKCk7ZU9lKCk7dE9lKCk7YU9lKCk7c09lKCk7aU9lKCk7ck9lKCk7b09lKCk7bk9lKCk7bE9lKCk7Y09lKCk7ZE9lKCk7dU9lKCk7cE9lKCk7aE9lKCk7Zk9lKCk7bU9lKCk7Z09lKCk7Yk9lKCk7dk9lKCk7eE9lKCk7eU9lKCk7d09lKCk7a09lKCk7U09lKCk7X09lKCk7TU9lKCk7ek9lKCk7Q09lKCk7VE9lKCk7JE9lKCk7RE9lKCk7TE9lKCk7RU9lKCk7UE9lKCk7SU9lKCk7QU9lKCk7Tk9lKCk7Uk9lKCk7T09lKCk7Rk9lKCk7Qk9lKCk7SE9lKCk7cU9lKCk7ak9lKCk7Vk9lKCk7VU9lKCk7V09lKCk7R09lKCk7S09lKCk7WU9lKCk7Wk9lKCk7WE9lKCk7UU9lKCk7Sk9lKCk7ZUZlKCk7dEZlKCk7YUZlKCk7c0ZlKCk7aUZlKCk7ckZlKCk7b0ZlKCk7bkZlKCk7bEZlKCk7Y0ZlKCk7ZEZlKCk7dUZlKCk7cEZlKCk7aEZlKCk7ZkZlKCk7bUZlKCk7Z0ZlKCk7YkZlKCk7dkZlKCk7eEZlKCk7eUZlKCk7d0ZlKCk7a0ZlKCk7U0ZlKCk7X0ZlKCk7TUZlKCk7ekZlKCk7Q0ZlKCk7VEZlKCk7JEZlKCk7REZlKCk7TEZlKCk7RUZlKCk7UEZlKCk7SUZlKCk7QUZlKCk7TkZlKCk7UkZlKCk7T0ZlKCk7RkZlKCk7QkZlKCk7SEZlKCk7cUZlKCk7akZlKCk7VkZlKCk7VUZlKCk7V0ZlKCk7R0ZlKCk7S0ZlKCk7WUZlKCk7WkZlKCk7WEZlKCk7UUZlKCk7SkZlKCk7ZUJlKCk7dEJlKCk7YUJlKCk7c0JlKCk7aUJlKCk7ckJlKCk7b0JlKCk7bkJlKCk7bEJlKCk7Y0JlKCk7ZEJlKCk7dUJlKCk7cEJlKCk7aEJlKCk7ZkJlKCk7bUJlKCk7Z0JlKCk7YkJlKCk7dkJlKCk7eEJlKCk7eUJlKCk7d0JlKCk7a0JlKCk7U0JlKCk7X0JlKCk7TUJlKCk7ekJlKCk7Q0JlKCk7VEJlKCk7JEJlKCk7REJlKCk7TEJlKCk7RUJlKCk7UEJlKCk7SUJlKCk7QUJlKCk7TkJlKCk7UkJlKCk7T0JlKCk7RkJlKCk7QkJlKCk7SEJlKCk7cUJlKCk7akJlKCk7VkJlKCk7VUJlKCk7V0JlKCk7R0JlKCk7S0JlKCk7WUJlKCk7WkJlKCk7WEJlKCk7UUJlKCk7SkJlKCk7ZUhlKCk7dEhlKCk7YUhlKCk7c0hlKCk7aUhlKCk7ckhlKCk7b0hlKCk7bkhlKCk7bEhlKCk7Y0hlKCk7ZEhlKCk7dUhlKCk7cEhlKCk7aEhlKCk7ZkhlKCk7bUhlKCk7Z0hlKCk7YkhlKCk7dkhlKCk7eEhlKCk7eUhlKCk7d0hlKCk7a0hlKCk7U0hlKCk7X0hlKCk7TUhlKCk7ekhlKCk7Q0hlKCk7VEhlKCk7JEhlKCk7REhlKCk7TEhlKCk7RUhlKCk7UEhlKCk7SUhlKCk7QUhlKCk7TkhlKCk7UkhlKCk7T0hlKCk7RkhlKCk7QkhlKCk7SEhlKCk7cUhlKCk7akhlKCk7VkhlKCk7VUhlKCk7V0hlKCk7R0hlKCk7S0hlKCk7WUhlKCk7WkhlKCk7WEhlKCk7UUhlKCk7SkhlKCk7ZXFlKCk7dHFlKCk7YXFlKCk7c3FlKCk7aXFlKCk7cnFlKCk7b3FlKCk7bnFlKCk7bHFlKCk7Y3FlKCk7ZHFlKCk7dXFlKCk7cHFlKCk7aHFlKCk7ZnFlKCk7bXFlKCk7Z3FlKCk7YnFlKCk7dnFlKCk7eHFlKCk7eXFlKCk7d3FlKCk7a3FlKCk7U3FlKCk7X3FlKCk7TXFlKCk7enFlKCk7Q3FlKCk7VHFlKCk7JHFlKCk7RHFlKCk7THFlKCk7RXFlKCk7UHFlKCk7SXFlKCk7QXFlKCk7TnFlKCk7UnFlKCk7T3FlKCk7RnFlKCk7QnFlKCk7SHFlKCk7cXFlKCk7anFlKCk7VnFlKCk7VXFlKCk7V3FlKCk7R3FlKCk7S3FlKCk7WXFlKCk7WnFlKCk7WHFlKCk7UXFlKCk7SnFlKCk7ZWplKCk7dGplKCk7YWplKCk7c2plKCk7aWplKCk7cmplKCk7b2plKCk7bmplKCk7bGplKCk7Y2plKCk7ZGplKCk7dWplKCk7cGplKCk7aGplKCk7ZmplKCk7bWplKCk7Z2plKCk7YmplKCk7dmplKCk7eGplKCk7eWplKCk7d2plKCk7a2plKCk7U2plKCk7X2plKCk7TWplKCk7emplKCk7Q2plKCk7VGplKCk7JGplKCk7RGplKCk7TGplKCk7RWplKCk7UGplKCk7SWplKCk7QWplKCk7TmplKCk7UmplKCk7T2plKCk7RmplKCk7QmplKCk7SGplKCk7cWplKCk7amplKCk7VmplKCk7VWplKCk7V2plKCk7R2plKCk7S2plKCk7WWplKCk7WmplKCk7WGplKCk7UWplKCk7SmplKCk7ZVZlKCk7dFZlKCk7YVZlKCk7c1ZlKCk7aVZlKCk7clZlKCk7b1ZlKCk7blZlKCk7bFZlKCk7Y1ZlKCk7ZFZlKCk7dVZlKCk7cFZlKCk7aFZlKCk7ZlZlKCk7bVZlKCk7Z1ZlKCk7YlZlKCk7dlZlKCk7eFZlKCk7eVZlKCk7d1ZlKCk7a1ZlKCk7U1ZlKCk7X1ZlKCk7TVZlKCk7elZlKCk7Q1ZlKCk7VFZlKCk7JFZlKCk7RFZlKCk7TFZlKCk7RVZlKCk7UFZlKCk7SVZlKCk7QVZlKCk7TlZlKCk7UlZlKCk7T1ZlKCk7RlZlKCk7QlZlKCk7SFZlKCk7cVZlKCk7alZlKCk7VlZlKCk7VVZlKCk7V1ZlKCk7R1ZlKCk7S1ZlKCk7WVZlKCk7WlZlKCk7WFZlKCk7UVZlKCk7SlZlKCk7ZVVlKCk7dFVlKCk7YVVlKCk7c1VlKCk7aVVlKCk7clVlKCk7b1VlKCk7blVlKCk7bFVlKCk7Y1VlKCk7ZFVlKCk7dVVlKCk7cFVlKCk7aFVlKCk7ZlVlKCk7bVVlKCk7Z1VlKCk7YlVlKCk7dlVlKCk7eFVlKCk7eVVlKCk7d1VlKCk7a1VlKCk7U1VlKCk7X1VlKCk7TVVlKCk7elVlKCk7Q1VlKCk7VFVlKCk7JFVlKCk7RFVlKCk7TFVlKCk7RVVlKCk7UFVlKCk7SVVlKCk7QVVlKCk7TlVlKCk7UlVlKCk7T1VlKCk7RlVlKCk7QlVlKCk7SFVlKCk7cVVlKCk7alVlKCk7VlVlKCk7VVVlKCk7V1VlKCk7R1VlKCk7S1VlKCk7WVVlKCk7WlVlKCk7WFVlKCk7UVVlKCk7SlVlKCk7ZVdlKCk7dFdlKCk7YVdlKCk7c1dlKCk7aVdlKCk7cldlKCk7b1dlKCk7bldlKCk7bFdlKCk7Y1dlKCk7ZFdlKCk7dVdlKCk7cFdlKCk7aFdlKCk7ZldlKCk7bVdlKCk7Z1dlKCk7YldlKCk7dldlKCk7eFdlKCk7eVdlKCk7d1dlKCk7a1dlKCk7U1dlKCk7X1dlKCk7TVdlKCk7eldlKCk7Q1dlKCk7VFdlKCk7JFdlKCk7RFdlKCk7TFdlKCk7RVdlKCk7UFdlKCk7SVdlKCk7QVdlKCk7TldlKCk7UldlKCk7T1dlKCk7RldlKCk7QldlKCk7SFdlKCk7cVdlKCk7aldlKCk7VldlKCk7VVdlKCk7V1dlKCk7R1dlKCk7S1dlKCk7WVdlKCk7WldlKCk7WFdlKCk7UVdlKCk7SldlKCk7ZUdlKCk7dEdlKCk7YUdlKCk7c0dlKCk7aUdlKCk7ckdlKCk7b0dlKCk7bkdlKCk7bEdlKCk7Y0dlKCk7ZEdlKCk7dUdlKCk7cEdlKCk7aEdlKCk7ZkdlKCk7bUdlKCk7Z0dlKCk7YkdlKCk7dkdlKCk7eEdlKCk7eUdlKCk7d0dlKCk7a0dlKCk7U0dlKCk7X0dlKCk7TUdlKCk7ekdlKCk7Q0dlKCk7VEdlKCk7JEdlKCk7REdlKCk7TEdlKCk7RUdlKCk7UEdlKCk7SUdlKCk7QUdlKCk7TkdlKCk7UkdlKCk7T0dlKCk7RkdlKCk7QkdlKCk7SEdlKCk7cUdlKCk7akdlKCk7VkdlKCk7VUdlKCk7V0dlKCk7R0dlKCk7S0dlKCk7WUdlKCk7WkdlKCk7WEdlKCk7UUdlKCk7SkdlKCk7ZUtlKCk7dEtlKCk7YUtlKCk7c0tlKCk7aUtlKCk7cktlKCk7b0tlKCk7bktlKCk7bEtlKCk7Y0tlKCk7ZEtlKCk7dUtlKCk7cEtlKCk7aEtlKCk7ZktlKCk7bUtlKCk7Z0tlKCk7YktlKCk7dktlKCk7eEtlKCk7eUtlKCk7d0tlKCk7a0tlKCk7U0tlKCk7X0tlKCk7TUtlKCk7ektlKCk7Q0tlKCk7VEtlKCk7JEtlKCk7REtlKCk7TEtlKCk7RUtlKCk7UEtlKCk7SUtlKCk7QUtlKCk7TktlKCk7UktlKCk7T0tlKCk7RktlKCk7QktlKCk7SEtlKCk7cUtlKCk7aktlKCk7VktlKCk7VUtlKCk7V0tlKCk7R0tlKCk7S0tlKCk7WUtlKCk7WktlKCk7WEtlKCk7UUtlKCk7SktlKCk7ZVllKCk7dFllKCk7YVllKCk7c1llKCk7aVllKCk7clllKCk7b1llKCk7blllKCk7bFllKCk7Y1llKCk7ZFllKCk7dVllKCk7cFllKCk7aFllKCk7ZlllKCk7bVllKCk7Z1llKCk7YlllKCk7dlllKCk7eFllKCk7eVllKCk7d1llKCk7a1llKCk7U1llKCk7X1llKCk7TVllKCk7elllKCk7Q1llKCk7VFllKCk7JFllKCk7RFllKCk7TFllKCk7RVllKCk7UFllKCk7SVllKCk7QVllKCk7TlllKCk7UlllKCk7T1llKCk7RlllKCk7QlllKCk7SFllKCk7cVllKCk7alllKCk7VlllKCk7VVllKCk7V1llKCk7R1llKCk7S1llKCk7WVllKCk7WlllKCk7WFllKCk7UVllKCk7SlllKCk7ZVplKCk7dFplKCk7YVplKCk7c1plKCk7aVplKCk7clplKCk7b1plKCk7blplKCk7bFplKCk7Y1plKCk7ZFplKCk7dVplKCk7cFplKCk7aFplKCk7ZlplKCk7bVplKCk7Z1plKCk7YlplKCk7dlplKCk7eFplKCk7eVplKCk7d1plKCk7a1plKCk7U1plKCk7X1plKCk7TVplKCk7elplKCk7Q1plKCk7VFplKCk7JFplKCk7RFplKCk7TFplKCk7RVplKCk7UFplKCk7SVplKCk7QVplKCk7TlplKCk7UlplKCk7T1plKCk7RlplKCk7QlplKCk7SFplKCk7cVplKCk7alplKCk7VlplKCk7VVplKCk7V1plKCk7R1plKCk7S1plKCk7WVplKCk7WlplKCk7WFplKCk7UVplKCk7SlplKCk7ZVhlKCk7dFhlKCk7YVhlKCk7c1hlKCk7aVhlKCk7clhlKCk7b1hlKCk7blhlKCk7bFhlKCk7Y1hlKCk7ZFhlKCk7dVhlKCk7cFhlKCk7aFhlKCk7ZlhlKCk7bVhlKCk7Z1hlKCk7YlhlKCk7dlhlKCk7eFhlKCk7eVhlKCk7d1hlKCk7a1hlKCk7U1hlKCk7X1hlKCk7TVhlKCk7elhlKCk7Q1hlKCk7VFhlKCk7JFhlKCk7RFhlKCk7TFhlKCk7RVhlKCk7UFhlKCk7SVhlKCk7QVhlKCk7TlhlKCk7UlhlKCk7T1hlKCk7RlhlKCk7QlhlKCk7SFhlKCk7cVhlKCk7alhlKCk7VlhlKCk7VVhlKCk7V1hlKCk7R1hlKCk7S1hlKCk7WVhlKCk7WlhlKCk7WFhlKCk7UVhlKCk7SlhlKCk7ZVFlKCk7dFFlKCk7YVFlKCk7c1FlKCk7aVFlKCk7clFlKCk7b1FlKCk7blFlKCk7bFFlKCk7Y1FlKCk7ZFFlKCk7dVFlKCk7cFFlKCk7aFFlKCk7ZlFlKCk7bVFlKCk7Z1FlKCk7YlFlKCk7dlFlKCk7eFFlKCk7eVFlKCk7d1FlKCk7a1FlKCk7U1FlKCk7X1FlKCk7TVFlKCk7elFlKCk7Q1FlKCk7VFFlKCk7JFFlKCk7RFFlKCk7TFFlKCk7RVFlKCk7UFFlKCk7SVFlKCk7QVFlKCk7TlFlKCk7UlFlKCk7T1FlKCk7RlFlKCk7QlFlKCk7SFFlKCk7cVFlKCk7alFlKCk7VlFlKCk7VVFlKCk7V1FlKCk7R1FlKCk7S1FlKCk7WVFlKCk7WlFlKCk7WFFlKCk7UVFlKCk7SlFlKCk7ZUplKCk7dEplKCk7YUplKCk7c0plKCk7aUplKCk7ckplKCk7b0plKCk7bkplKCk7bEplKCk7Y0plKCk7ZEplKCk7dUplKCk7cEplKCk7aEplKCk7ZkplKCk7bUplKCk7Z0plKCk7YkplKCk7dkplKCk7eEplKCk7eUplKCk7d0plKCk7a0plKCk7U0plKCk7X0plKCk7TUplKCk7ekplKCk7Q0plKCk7VEplKCk7JEplKCk7REplKCk7TEplKCk7RUplKCk7UEplKCk7SUplKCk7QUplKCk7TkplKCk7UkplKCk7T0plKCk7RkplKCk7QkplKCk7SEplKCk7cUplKCk7akplKCk7VkplKCk7VUplKCk7V0plKCk7R0plKCk7S0plKCk7WUplKCk7WkplKCk7WEplKCk7UUplKCk7SkplKCk7ZWV0KCk7dGV0KCk7YWV0KCk7c2V0KCk7aWV0KCk7cmV0KCk7b2V0KCk7bmV0KCk7Y2V0KCk7ZGV0KCk7dWV0KCk7cGV0KCk7aGV0KCk7ZmV0KCk7bWV0KCk7Z2V0KCk7YmV0KCk7dmV0KCk7eGV0KCk7eWV0KCk7d2V0PWkoKHtpY29uczpzPXt9LG5hbWVBdHRyOmU9ImRhdGEtbHVjaWRlIixhdHRyczp0PXt9LHJvb3Q6YT1kb2N1bWVudCxpblRlbXBsYXRlczpyfT17fSk9PntpZighT2JqZWN0LnZhbHVlcyhzKS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBQbGVhc2UgcHJvdmlkZSBhbiBpY29ucyBvYmplY3QuCklmIHlvdSB3YW50IHRvIHVzZSBhbGwgdGhlIGljb25zIHlvdSBjYW4gaW1wb3J0IGl0IGxpa2U6CiBcYGltcG9ydCB7IGNyZWF0ZUljb25zLCBpY29ucyB9IGZyb20gJ2x1Y2lkZSc7Cmx1Y2lkZS5jcmVhdGVJY29ucyh7aWNvbnN9KTtcYGApO2lmKHR5cGVvZiBhPiJ1Iil0aHJvdyBuZXcgRXJyb3IoImBjcmVhdGVJY29ucygpYCBvbmx5IHdvcmtzIGluIGEgYnJvd3NlciBlbnZpcm9ubWVudC4iKTtpZihBcnJheS5mcm9tKGEucXVlcnlTZWxlY3RvckFsbChgWyR7ZX1dYCkpLmZvckVhY2gobz0+dG5lKG8se25hbWVBdHRyOmUsaWNvbnM6cyxhdHRyczp0fSkpLHImJkFycmF5LmZyb20oYS5xdWVyeVNlbGVjdG9yQWxsKCJ0ZW1wbGF0ZSIpKS5mb3JFYWNoKGw9PndldCh7aWNvbnM6cyxuYW1lQXR0cjplLGF0dHJzOnQscm9vdDpsLmNvbnRlbnQsaW5UZW1wbGF0ZXM6cn0pKSxlPT09ImRhdGEtbHVjaWRlIil7bGV0IG89YS5xdWVyeVNlbGVjdG9yQWxsKCJbaWNvbi1uYW1lXSIpO28ubGVuZ3RoPjAmJihjb25zb2xlLndhcm4oIltMdWNpZGVdIFNvbWUgaWNvbnMgd2VyZSBmb3VuZCB3aXRoIHRoZSBub3cgZGVwcmVjYXRlZCBpY29uLW5hbWUgYXR0cmlidXRlLiBUaGVzZSB3aWxsIHN0aWxsIGJlIHJlcGxhY2VkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYnV0IHdpbGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBpbiB2MS4wIGFuZCB5b3Ugc2hvdWxkIHN3aXRjaCB0byBkYXRhLWx1Y2lkZSIpLEFycmF5LmZyb20obykuZm9yRWFjaChsPT50bmUobCx7bmFtZUF0dHI6Imljb24tbmFtZSIsaWNvbnM6cyxhdHRyczp0fSkpKX19LCJjcmVhdGVJY29ucyIpfSk7dmFyIEsyYSxZMmE9ZygoKT0+e3BlKCk7VWEoKTtDOCgpO0syYT1pKCgpPT57bGV0IHM9T2JqZWN0LmtleXMoYW5lLmZhKTtjb25zb2xlLmxvZygiRmlyc3QgZmV3IEx1Y2lkZSBrZXlzOiIsT2JqZWN0LmtleXMoR3IpLnNsaWNlKDAsNSkpO2xldCBlPU9iamVjdC5rZXlzKEdyKS5maWx0ZXIobj0+e2xldCBvPW5bMF09PT1uWzBdLnRvVXBwZXJDYXNlKCkmJm5bMF0hPT1uWzBdLnRvTG93ZXJDYXNlKCksbD10eXBlb2YgR3Jbbl09PSJmdW5jdGlvbiIscD0hWyJjcmVhdGVFbGVtZW50IiwiY3JlYXRlSWNvbnMiLCJkZWZhdWx0Il0uaW5jbHVkZXMobik7cmV0dXJuIGwmJm8mJnB9KS5tYXAobj0+bi5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKStuLnNsaWNlKDEpKTtpZihjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gTHVjaWRlIGljb25zYCksZS5sZW5ndGg9PT0wJiYoY29uc29sZS5sb2coIlRyeWluZyBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBmaW5kIEx1Y2lkZSBpY29ucyIpLENkKSl7bGV0IG49Q2R8fHt9O2UucHVzaCguLi5PYmplY3Qua2V5cyhuKSksY29uc29sZS5sb2coYEZvdW5kICR7ZS5sZW5ndGh9IGljb25zIHZpYSBhbHRlcm5hdGl2ZSBtZXRob2RgKX1sZXQgdD1pKCgpPT57bGV0IG49cy5tYXAoZD0+YGZhOiR7ZH1gKSxvPWUubWFwKGQ9PmBsdWNpZGU6JHtkfWApLGw9Wy4uLm4sLi4ub10scD1sLmpvaW4oYApgKTtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChwKS50aGVuKCgpPT57bGV0IHU9d2luZG93LmV2ZW50LmN1cnJlbnRUYXJnZXQsYz11LnRleHRDb250ZW50O3UudGV4dENvbnRlbnQ9YFx1MjcxMyBDb3BpZWQgJHtsLmxlbmd0aH0gaWNvbiBuYW1lcyFgLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PWN9LDJlMyl9KX0sImNvcHlBbGxJY29uTmFtZXMiKSxhPWkobj0+e2xldCBvPW4udGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpLGw9bi50YXJnZXQuY2xvc2VzdCgiLmRlbW9Db250YWluZXIiKTtsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5pY29uQ29udGFpbmVyIikuZm9yRWFjaChkPT57bGV0IHU9ZC5nZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIpO289PT0iInx8dSYmdS5pbmNsdWRlcyhvKT9kLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KSxsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZWN0aW9uLWNvbnRhaW5lciIpLmZvckVhY2goZD0+e2xldCB1PWQucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXI6bm90KC5oaWRkZW4pIikubGVuZ3RoLGM9ZC5xdWVyeVNlbGVjdG9yKCIuaWNvbi1jb3VudCIpO2lmKGMpe2xldCBiPWQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmYS1zZWN0aW9uIik/cy5sZW5ndGg6ZS5sZW5ndGg7Yy50ZXh0Q29udGVudD11PT09Yj9gJHtifSBpY29uc2A6YCR7dX0gb2YgJHtifSBpY29uc2B9fSl9LCJzZWFyY2hJY29ucyIpLHI9aSgobixvKT0+e2xldCBsPWAke299OiR7bn1gO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGwpLnRoZW4oKCk9PntsZXQgdT13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldC5xdWVyeVNlbGVjdG9yKCIuY29weS10b29sdGlwIik7dSYmKHUudGV4dENvbnRlbnQ9IkNvcGllZCEiLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PSJDbGljayB0byBjb3B5In0sMmUzKSl9KX0sImNvcHlJY29uTmFtZSIpO3JldHVybiB3YAogIDxzdHlsZT4KICAgIC5kZW1vQ29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYmFja2dyb3VuZDogIzExMTExMTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLnNlYXJjaC1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMHB4OwogICAgfQogICAgCiAgICAjaWNvblNlYXJjaCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgY29sb3I6ICNmZmY7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgYm9yZGVyLWNvbG9yOiAjZTQwMDJiOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uIHsKICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICNjNDAwMWI7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjphY3RpdmUgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgICAKICAgIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjBweCAxNnB4IDBweCAxNnB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzOwogICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KICAgIAogICAgLmljb25Db250YWluZXI6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogICAgfQoKICAgIC5pY29uTmFtZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBjb2xvcjogI2NjYzsKICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIG1heC13aWR0aDogMTIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIG1hcmdpbjogMjBweCAwOwogICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KICAgIAogICAgLmFwaS1ub3RlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogI2U0MDAyYjsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgcGFkZGluZzogMTBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0MDAyYjsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyOCwgMCwgNDMsIDAuMSk7CiAgICB9CiAgICAKICAgIC5pY29uLWNvdW50IHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogIzg4ODsKICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICB9CiAgICAKICAgIC5pY29ucy1ncmlkIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICB9CiAgICAKICAgIC5jb3B5LXRvb2x0aXAgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0b3A6IC0zMHB4OwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciAuY29weS10b29sdGlwIHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciBkZWVzLWljb24gewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICB9CiAgICAKICAgIC5oaWRkZW4gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlYXJjaC1jb250YWluZXIiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imljb25TZWFyY2giIHBsYWNlaG9sZGVyPSJTZWFyY2ggaWNvbnMuLi4iIEBpbnB1dD0ke2F9PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWFsbC1idXR0b24iIEBjbGljaz0ke3R9PvCfk4sgQ29weSBBbGwgSWNvbiBOYW1lczwvYnV0dG9uPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImFwaS1ub3RlIj4KICAgICAgTmV3IEFQSTogVXNlIDxjb2RlPmljb249ImZhOmljb25OYW1lIjwvY29kZT4gb3IgPGNvZGU+aWNvbj0ibHVjaWRlOmljb25OYW1lIjwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5pY29uRkE8L2NvZGU+LiAKICAgICAgQ2xpY2sgYW55IGljb24gdG8gY29weSBpdHMgbmV3IGZvcm1hdCB0byBjbGlwYm9hcmQuCiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250YWluZXIgZmEtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEZvbnRBd2Vzb21lIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7cy5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHtzLm1hcChuPT57bGV0IG89YGZhOiR7bn1gO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25Db250YWluZXIgZmEtaWNvbiIgZGF0YS1uYW1lPSR7bi50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+cihuLCJmYSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtvfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmZhOiR7bn08L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5LXRvb2x0aXAiPkNsaWNrIHRvIGNvcHk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBsdWNpZGUtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEx1Y2lkZSBJY29ucwogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWNvdW50Ij4ke2UubGVuZ3RofSBpY29uczwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Imljb25zLWdyaWQiPgogICAgICAgICR7ZS5tYXAobj0+e2xldCBvPWBsdWNpZGU6JHtufWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBsdWNpZGUtaWNvbiIgZGF0YS1uYW1lPSR7bi50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+cihuLCJsdWNpZGUiKX0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7b30gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25OYW1lIj5sdWNpZGU6JHtufTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgogIGB9LCJkZW1vRnVuYyIpfSk7ZnVuY3Rpb24gdldhKCl7cnYuc2l6ZT5aMmEmJkFycmF5LmZyb20ocnYua2V5cygpKS5zbGljZSgwLFoyYS81KS5mb3JFYWNoKGU9PnJ2LmRlbGV0ZShlKSl9dmFyIGl2LFUxLGJXYSxhbmUscnYsWjJhLFgyYSxVYT1nKCgpPT57cGUoKTtrdCgpO3B0KCk7azhlKCk7c2dlKCk7ejdlKCk7UmtlKCk7WTJhKCk7QzgoKTtDOCgpO2l2PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxVMT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sYldhPXthcnJvd1JpZ2h0OlhiLGFycm93VXBSaWdodEZyb21TcXVhcmU6Z2YsYmVsbDpGYixidWc6ZXYsYnVpbGRpbmc6S2IsY2FyZXRMZWZ0OnFiLGNhcmV0UmlnaHQ6T2IsY2hlY2s6WmIsY2lyY2xlSW5mbzp2ZixjaXJjbGVDaGVjazp0ZixjaXJjbGVDaGVja1NvbGlkOnBmLGNpcmNsZVhtYXJrOnVoLGNpcmNsZVhtYXJrU29saWQ6cGgsY2xvY2tSb3RhdGVMZWZ0OmhmLGNvcHk6UGIsY29weVNvbGlkOnR2LGRlc2t0b3A6YmYsZXllOkhiLGV5ZVNsYXNoOmF2LGZpbGVJbnZvaWNlOlFiLGZpbGVJbnZvaWNlRG9sbGVyOkpiLGdlYXI6ZGYsZ3JpcDpoaCxtYWduaWZ5aW5nR2xhc3M6bmYsbWVzc2FnZTpKMyxtZXNzYWdlU29saWQ6cmYsbW9uZXlDaGVja0RvbGxhcjptZixtdWdIb3Q6c3YsbWludXM6c2YsbmV0d29ya1dpcmVkOldiLHBhcGVyY2xpcDpZYixwYXN0ZTpRMyxwYXN0ZVNvbGlkOmFmLHBlblRvU3F1YXJlOmxmLHBsdXM6ZmYscmVjZWlwdDpqYixyc3M6b2Ysc2hhcmU6Y2Ysc3VuOkViLHN1blNvbGlkOlViLHRlcm1pbmFsOkdiLHRyYXNoOmZoLHRyYXNoU29saWQ6ZmgsdHJhc2hDYW46ZWYsdHJhc2hDYW5Tb2xpZDp1Zix1c2VyczpWYix3YWxsZXQ6QmIseG1hcms6emQsZmFjZWJvb2s6Q2IsZ29vZ2xlOk1iLGluc3RhZ3JhbTpEYixsaW5rZWRpbjp6YixtZWRpdW06WDMsc2xhY2s6VGIsdGlrdG9rOiRiLHR3aXR0ZXI6TGJ9LGFuZT17ZmE6YldhfSxydj1uZXcgTWFwLFoyYT01MDA7aSh2V2EsImxpbWl0Q2FjaGVTaXplIik7WDJhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pY29uIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJY29uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmkoXz0+XywiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOmkoXz0+XywidG9BdHRyaWJ1dGUiKX19KV0scD1bTCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmkoXz0+XywiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOmkoXz0+XywidG9BdHRyaWJ1dGUiKX19KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpOdW1iZXJ9KV0saXYodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uRkEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imljb25GQSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmljb25GQSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmljb25GQT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksaXYodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpY29uImluIF8sImhhcyIpLGdldDppKF89Pl8uaWNvbiwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmljb249T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLGl2KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imljb25TaXplImluIF8sImhhcyIpLGdldDppKF89Pl8uaWNvblNpemUsImdldCIpLHNldDppKChfLE8pPT57Xy5pY29uU2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksaXYodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY29sb3IiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jb2xvciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmNvbG9yPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxpdih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cm9rZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzdHJva2VXaWR0aCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnN0cm9rZVdpZHRoLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3Ryb2tlV2lkdGg9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLGl2KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89SzJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPVUxKHRoaXMsbyx2b2lkIDApO2dldCBpY29uRkEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaWNvbkZBKEMpe3RoaXMuI2U9Q30jdD0oVTEodGhpcyxsKSxVMSh0aGlzLGQsdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgaWNvbihDKXt0aGlzLiN0PUN9I2E9KFUxKHRoaXMsdSksVTEodGhpcyxiLHZvaWQgMCkpO2dldCBpY29uU2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBpY29uU2l6ZShDKXt0aGlzLiNhPUN9I3M9KFUxKHRoaXMsdiksVTEodGhpcyxtLCJjdXJyZW50Q29sb3IiKSk7Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbG9yKEMpe3RoaXMuI3M9Q30jaT0oVTEodGhpcyxmKSxVMSh0aGlzLE0sMikpO2dldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBzdHJva2VXaWR0aChDKXt0aGlzLiNpPUN9bGFzdEljb249KFUxKHRoaXMseiksbnVsbCk7bGFzdEljb25TaXplPW51bGw7bGFzdENvbG9yPW51bGw7bGFzdFN0cm9rZVdpZHRoPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRhLnNldHVwKCl9Z2V0RWZmZWN0aXZlSWNvbigpe3JldHVybiB0aGlzLmljb24/dGhpcy5pY29uOnRoaXMuaWNvbkZBP3RoaXMuaWNvbkZBLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT90aGlzLmljb25GQTpgZmE6JHt0aGlzLmljb25GQX1gOm51bGx9cGFyc2VJY29uU3RyaW5nKEMpe2xldCBfPUMudG9Mb3dlckNhc2UoKTtyZXR1cm4gXy5zdGFydHNXaXRoKCJmYToiKT97dHlwZToiZmEiLG5hbWU6Qy5zdWJzdHJpbmcoMyl9Ol8uc3RhcnRzV2l0aCgibHVjaWRlOiIpP3t0eXBlOiJsdWNpZGUiLG5hbWU6Qy5zdWJzdHJpbmcoNyl9Ont0eXBlOiJsdWNpZGUiLG5hbWU6Q319cmVuZGVyTHVjaWRlSWNvbihDKXtsZXQgXz1gbHVjaWRlOiR7Q306JHt0aGlzLmljb25TaXplfToke3RoaXMuY29sb3J9OiR7dGhpcy5zdHJva2VXaWR0aH1gO2lmKHJ2LmhhcyhfKSlyZXR1cm4gcnYuZ2V0KF8pfHwiIjt0cnl7bGV0IE89Qy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStDLnNsaWNlKDEpO2lmKCFHcltPXSlyZXR1cm4gY29uc29sZS53YXJuKGBMdWNpZGUgaWNvbiAnJHtPfScgbm90IGZvdW5kIGluIGx1Y2lkZUljb25zIG9iamVjdGApLCIiO2xldCAkPWoxKEdyW09dLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoISQpcmV0dXJuIGNvbnNvbGUud2FybihgY3JlYXRlRWxlbWVudCByZXR1cm5lZCBlbXB0eSByZXN1bHQgZm9yICR7T31gKSwiIjtsZXQgRT0kLm91dGVySFRNTDtyZXR1cm4gcnYuc2V0KF8sRSksdldhKCksRX1jYXRjaChPKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uICR7Q306YCxPKSxgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIke3RoaXMuaWNvblNpemV9IiBoZWlnaHQ9IiR7dGhpcy5pY29uU2l6ZX0iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIke3RoaXMuY29sb3J9IiBzdHJva2Utd2lkdGg9IiR7dGhpcy5zdHJva2VXaWR0aH0iIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtc2l6ZT0iNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgZmlsbD0iJHt0aGlzLmNvbG9yfSI+JHtDfTwvdGV4dD4KICAgICAgPC9zdmc+YH19c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovCiAgICAgICNpY29uQ29udGFpbmVyIHN2ZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIEhlbHBzIHdpdGggYW5pbWF0aW9ucyAqLwogICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovCiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RhLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgICNpY29uQ29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgaWQ9Imljb25Db250YWluZXIiPjwvZGl2PgogICAgYH11cGRhdGVkKCl7dGhpcy5pY29uU2l6ZXx8KHRoaXMuaWNvblNpemU9cGFyc2VJbnQoZ2xvYmFsVGhpcy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmZvbnRTaXplLnJlcGxhY2UoL1xEL2csIiIpKSk7bGV0IEM9dGhpcy5nZXRFZmZlY3RpdmVJY29uKCk7aWYodGhpcy5sYXN0SWNvbj09PUMmJnRoaXMubGFzdEljb25TaXplPT09dGhpcy5pY29uU2l6ZSYmdGhpcy5sYXN0Q29sb3I9PT10aGlzLmNvbG9yJiZ0aGlzLmxhc3RTdHJva2VXaWR0aD09PXRoaXMuc3Ryb2tlV2lkdGgpcmV0dXJuO3RoaXMubGFzdEljb249Qyx0aGlzLmxhc3RJY29uU2l6ZT10aGlzLmljb25TaXplLHRoaXMubGFzdENvbG9yPXRoaXMuY29sb3IsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9dGhpcy5zdHJva2VXaWR0aDtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIiNpY29uQ29udGFpbmVyIik7aWYoISghX3x8IUMpKXRyeXtsZXR7dHlwZTpPLG5hbWU6JH09dGhpcy5wYXJzZUljb25TdHJpbmcoQyk7aWYoTz09PSJsdWNpZGUiKXtfLmlubmVySFRNTD0iIjt0cnl7bGV0IEU9JC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSskLnNsaWNlKDEpO2lmKEdyW0VdKXtsZXQgSD1qMShHcltFXSx7Y29sb3I6dGhpcy5jb2xvcixzaXplOnRoaXMuaWNvblNpemUsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aH0pO2lmKEgpe18uYXBwZW5kQ2hpbGQoSCk7cmV0dXJufX10aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgZWxlbWVudCBmb3IgJHtFfWApfWNhdGNoKEUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyBMdWNpZGUgaWNvbjoiLEUpO2xldCBIPXRoaXMucmVuZGVyTHVjaWRlSWNvbigkKTtIJiYoXy5pbm5lckhUTUw9SCl9fWVsc2V7bGV0IEU9YW5lLmZhWyRdO2lmKEUpe2xldCBIPUdrKEUpLmh0bWxbMF07Xy5pbm5lckhUTUw9SH1lbHNlIGNvbnNvbGUud2FybihgRm9udEF3ZXNvbWUgaWNvbiBub3QgZm91bmQ6ICR7JH1gKX19Y2F0Y2goTyl7Y29uc29sZS5lcnJvcihgRXJyb3IgdXBkYXRpbmcgaWNvbiAke0N9OmAsTyl9fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmxhc3RJY29uPW51bGwsdGhpcy5sYXN0SWNvblNpemU9bnVsbCx0aGlzLmxhc3RDb2xvcj1udWxsLHRoaXMubGFzdFN0cm9rZVdpZHRoPW51bGx9c3RhdGlje1UxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBRMmEsa2V0LGthLG9yPWcoKCk9PntwbygpO0trdCgpO3BlKCk7a3QoKTtGMSgpO3puKCk7VWEoKTtwdCgpO1EyYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sa2V0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxrYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY29udGV4dG1lbnUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NvbnRleHRtZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxRMmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+Im1lbnVJdGVtcyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51Lm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1Lm1lbnVJdGVtcz1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksUTJhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89R2t0O3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBjb250ZXh0TWVudURlYWN0aXZhdGVkPSExO3N0YXRpYyBhY2N1bXVsYXRlZE1lbnVJdGVtcz1bXTtzdGF0aWMgaW5pdGlhbGl6ZUdsb2JhbExpc3RlbmVyKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGQ9PntpZih0aGlzLmNvbnRleHRNZW51RGVhY3RpdmF0ZWQpcmV0dXJuO2QucHJldmVudERlZmF1bHQoKSxwLmFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO2xldCB1PWQuY29tcG9zZWRQYXRoKCk7Zm9yKGxldCBjIG9mIHUpaWYoYy5nZXRDb250ZXh0TWVudUl0ZW1zKXtsZXQgYj1jLmdldENvbnRleHRNZW51SXRlbXMoKTtiJiZiLmxlbmd0aD4wJiYocC5hY2N1bXVsYXRlZE1lbnVJdGVtcy5sZW5ndGg+MCYmcC5hY2N1bXVsYXRlZE1lbnVJdGVtcy5wdXNoKHtkaXZpZGVyOiEwfSkscC5hY2N1bXVsYXRlZE1lbnVJdGVtcy5wdXNoKC4uLmIpKX1wLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGQscC5hY2N1bXVsYXRlZE1lbnVJdGVtcyl9KX1zdGF0aWMgYXN5bmMgb3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZCx1KXtpZih0aGlzLmNvbnRleHRNZW51RGVhY3RpdmF0ZWQpcmV0dXJuO2QucHJldmVudERlZmF1bHQoKSxkLnN0b3BQcm9wYWdhdGlvbigpO2xldCBjPW5ldyBwO2Muc3R5bGUucG9zaXRpb249ImZpeGVkIixjLnN0eWxlLnpJbmRleD1TdHJpbmcoV3Iub3ZlcmxheS5jb250ZXh0TWVudSksYy5zdHlsZS5vcGFjaXR5PSIwIixjLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCkiLGMubWVudUl0ZW1zPXUsYy53aW5kb3dMYXllcj1hd2FpdCBoby5jcmVhdGVBbmRTaG93KCksYy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMgeT0+e3kudGFyZ2V0LmNsb3Nlc3QoImRlZXMtY29udGV4dG1lbnUiKXx8YXdhaXQgYy5kZXN0cm95KCl9KSxkb2N1bWVudC5ib2R5LmFwcGVuZChjKSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBiPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj13aW5kb3cuaW5uZXJXaWR0aCx4PXdpbmRvdy5pbm5lckhlaWdodCxtPWQuY2xpZW50WSxmPWQuY2xpZW50WDtmK2Iud2lkdGg+diYmKGY9di1iLndpZHRoLTEwKSxtK2IuaGVpZ2h0PngmJihtPXgtYi5oZWlnaHQtMTApLGY8MTAmJihmPTEwKSxtPDEwJiYobT0xMCksYy5zdHlsZS50b3A9YCR7bX1weGAsYy5zdHlsZS5sZWZ0PWAke2Z9cHhgLGMuc3R5bGUudHJhbnNmb3JtT3JpZ2luPSJ0b3AgbGVmdCIsYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSxjLnN0eWxlLm9wYWNpdHk9IjEiLGMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgxKSB0cmFuc2xhdGVZKDApIn0jZT1rZXQodGhpcyxvLFtdKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG1lbnVJdGVtcyhkKXt0aGlzLiNlPWR9d2luZG93TGF5ZXI9a2V0KHRoaXMsbCk7c3VibWVudT1udWxsO3N1Ym1lbnVUaW1lb3V0PW51bGw7cGFyZW50TWVudT1udWxsO2lzRGVzdHJveWluZz0hMTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWJJbmRleD0wfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDI4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWVudWl0ZW0uaGFzLXN1Ym1lbnU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAn4oC6JzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAubWVudWl0ZW06YWN0aXZlOm5vdCguaGFzLXN1Ym1lbnUpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudWl0ZW0tc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChkPT57aWYoImRpdmlkZXIiaW4gZCYmZC5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgdT1kLGM9dS5zdWJtZW51JiZ1LnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Im1lbnVpdGVtICR7dS5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSAke2M/Imhhcy1zdWJtZW51IjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0keygpPT4hdS5kaXNhYmxlZCYmIWMmJnRoaXMuaGFuZGxlQ2xpY2sodSl9CiAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUhvdmVyKHUsYyl9CiAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3UuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dS5pY29uTmFtZX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXRleHQiPiR7dS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAke3Uuc2hvcnRjdXQmJiFjP3dgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tc2hvcnRjdXQiPiR7dS5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSl9CiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIiBAY2xpY2s9JHsoKT0+e3AuY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMCx0aGlzLmRlc3Ryb3koKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249Imx1Y2lkZTp4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+QWxsb3cgbmF0aXZlIGNvbnRleHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6d2BgfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5mb2N1cygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlkb3duKX1oYW5kbGVLZXlkb3duPWkoZD0+e2xldCB1PUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbTpub3QoLmRpc2FibGVkKSIpKSxjPXUuZmluZEluZGV4KGI9PmIubWF0Y2hlcygiOmhvdmVyIikpO3N3aXRjaChkLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmQucHJldmVudERlZmF1bHQoKTtsZXQgYj1jKzE8dS5sZW5ndGg/YysxOjA7dVtiXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCB2PWMtMT49MD9jLTE6dS5sZW5ndGgtMTt1W3ZdLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlZW50ZXIiKSk7YnJlYWs7Y2FzZSJFbnRlciI6ZC5wcmV2ZW50RGVmYXVsdCgpLGM+PTAmJnVbY10uY2xpY2soKTticmVhaztjYXNlIkVzY2FwZSI6ZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVzdHJveSgpO2JyZWFrfX0sImhhbmRsZUtleWRvd24iKTthc3luYyBoYW5kbGVDbGljayhkKXtkLmFjdGlvbigpLGF3YWl0IHRoaXMuZGVzdHJveUFsbCgpfWFzeW5jIGhhbmRsZU1lbnVJdGVtSG92ZXIoZCx1KXt0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCksdGhpcy5zdWJtZW51JiZhd2FpdCB0aGlzLmhpZGVTdWJtZW51KCksdSYmZC5zdWJtZW51JiYodGhpcy5zdWJtZW51VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zaG93U3VibWVudShkKX0sMjAwKSl9aGFuZGxlTWVudUl0ZW1MZWF2ZSgpe3RoaXMuc3VibWVudVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnN1Ym1lbnUmJiF0aGlzLnN1Ym1lbnUubWF0Y2hlcygiOmhvdmVyIikmJnRoaXMuaGlkZVN1Ym1lbnUoKX0sMzAwKX1hc3luYyBzaG93U3VibWVudShkKXtpZighZC5zdWJtZW51fHxkLnN1Ym1lbnUubGVuZ3RoPT09MClyZXR1cm47bGV0IGM9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVpdGVtIikpLmZpbmQoTT0+TS5xdWVyeVNlbGVjdG9yKCIubWVudWl0ZW0tdGV4dCIpPy50ZXh0Q29udGVudD09PWQubmFtZSk7aWYoIWMpcmV0dXJuO3RoaXMuc3VibWVudT1uZXcgcCx0aGlzLnN1Ym1lbnUubWVudUl0ZW1zPWQuc3VibWVudSx0aGlzLnN1Ym1lbnUucGFyZW50TWVudT10aGlzLHRoaXMuc3VibWVudS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3VibWVudS5zdHlsZS56SW5kZXg9U3RyaW5nKHBhcnNlSW50KHRoaXMuc3R5bGUuekluZGV4KSsxKSx0aGlzLnN1Ym1lbnUuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkiLGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc3VibWVudSksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKTtsZXQgYj1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx4PXRoaXMuc3VibWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPXdpbmRvdy5pbm5lcldpZHRoLGY9di5yaWdodC00LHk9Yi50b3A7Zit4LndpZHRoPm0tMTAmJihmPXYubGVmdC14LndpZHRoKzQpLHkreC5oZWlnaHQ+d2luZG93LmlubmVySGVpZ2h0LTEwJiYoeT13aW5kb3cuaW5uZXJIZWlnaHQteC5oZWlnaHQtMTApLHRoaXMuc3VibWVudS5zdHlsZS5sZWZ0PWAke2Z9cHhgLHRoaXMuc3VibWVudS5zdHlsZS50b3A9YCR7eX1weGAsYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN1Ym1lbnUuc3R5bGUub3BhY2l0eT0iMSIsdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMSkiLHRoaXMuc3VibWVudS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwoKT0+e3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKX0pLHRoaXMuc3VibWVudS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKT0+e3RoaXMuaGFuZGxlTWVudUl0ZW1MZWF2ZSgpfSl9YXN5bmMgaGlkZVN1Ym1lbnUoKXt0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKX1hc3luYyBkZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fCh0aGlzLmlzRGVzdHJveWluZz0hMCx0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCksdGhpcy5zdWJtZW51JiYoYXdhaXQgdGhpcy5zdWJtZW51LmRlc3Ryb3koKSx0aGlzLnN1Ym1lbnU9bnVsbCksdGhpcy53aW5kb3dMYXllciYmIXRoaXMucGFyZW50TWVudSYmdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCkiLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTAwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSl9YXN5bmMgZGVzdHJveUFsbCgpe2xldCBkPXRoaXM7Zm9yKDtkLnBhcmVudE1lbnU7KWQ9ZC5wYXJlbnRNZW51O2F3YWl0IGQuZGVzdHJveSgpfXN0YXRpY3trZXQoYSx0KX19O3JldHVybiBwPWF9KSgpO2thLmluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpfSk7dmFyIEoyYSxfZXQseFdhLGVkYT1nKCgpPT57cGUoKTtKMmE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LF9ldD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0seFdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1kZW1vd3JhcHBlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRGVtb1dyYXBwZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHthdHRyaWJ1dGU6ITF9KV0sSjJhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InJ1bkFmdGVyUmVuZGVyImluIHUsImhhcyIpLGdldDppKHU9PnUucnVuQWZ0ZXJSZW5kZXIsImdldCIpLHNldDppKCh1LGMpPT57dS5ydW5BZnRlclJlbmRlcj1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksSjJhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9I2U9X2V0KHRoaXMsbyx2b2lkIDApO2dldCBydW5BZnRlclJlbmRlcigpe3JldHVybiB0aGlzLiNlfXNldCBydW5BZnRlclJlbmRlcihkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHNsb3Q+PC9zbG90PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKGQ9PnNldFRpbWVvdXQoZCw1MCkpLHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjAmJnRoaXMucnVuQWZ0ZXJSZW5kZXIpdHJ5e2F3YWl0IHRoaXMucnVuQWZ0ZXJSZW5kZXIodGhpcyl9Y2F0Y2goZCl7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gcnVuQWZ0ZXJSZW5kZXI6IixkKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLF9ldCh0aGlzLGwpfXN0YXRpY3tfZXQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIEl0PWcoKCk9PntlZGEoKX0pO3ZhciB0ZGEsYWRhPWcoKCk9PntwZSgpO0l0KCk7dGRhPWkoKCk9PntsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLWFwcHVpLWFjdGl2aXR5bG9nIik7cmV0dXJuIHNldFRpbWVvdXQoKCk9PntzLmFkZE1hbnkoW3t0eXBlOiJsb2dpbiIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6ImxvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUyJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOidjcmVhdGVkIGEgbmV3IHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ1cGRhdGVkIEFQSSBkb2N1bWVudGF0aW9uIn0se3R5cGU6InZpZXciLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn0se3R5cGU6ImxvZ291dCIsdXNlcjoiQWxpY2UgQnJvd24iLG1lc3NhZ2U6ImxvZ2dlZCBvdXQifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJjcmVhdGVkIGludm9pY2UgIzEyMzQifV0pLHMuZW50cmllcyQuc3Vic2NyaWJlKGU9Pntjb25zb2xlLmxvZygiQWN0aXZpdHkgbG9nIHVwZGF0ZWQ6IixlLmxlbmd0aCwiZW50cmllcyIpfSl9LDEwMCksd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICAke3N9CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHNuZSxUOCxzZGEsTWV0PWcoKCk9PntwZSgpO2t0KCk7b3IoKTtVYSgpO2FkYSgpO3B0KCk7c25lPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxUOD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sc2RhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlBY3Rpdml0eWxvZyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLHNuZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImVudHJpZXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5lbnRyaWVzLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZW50cmllcz15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksc25lKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InNlYXJjaFF1ZXJ5ImluIGYsImhhcyIpLGdldDppKGY9PmYuc2VhcmNoUXVlcnksImdldCIpLHNldDppKChmLHkpPT57Zi5zZWFyY2hRdWVyeT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksc25lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyQ3JpdGVyaWEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImZpbHRlckNyaXRlcmlhImluIGYsImhhcyIpLGdldDppKGY9PmYuZmlsdGVyQ3JpdGVyaWEsImdldCIpLHNldDppKChmLHkpPT57Zi5maWx0ZXJDcml0ZXJpYT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksc25lKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89dGRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9VDgodGhpcyxvLFtdKTtnZXQgZW50cmllcygpe3JldHVybiB0aGlzLiNlfXNldCBlbnRyaWVzKG0pe3RoaXMuI2U9bX0jdD0oVDgodGhpcyxsKSxUOCh0aGlzLGQsIiIpKTtnZXQgc2VhcmNoUXVlcnkoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VhcmNoUXVlcnkobSl7dGhpcy4jdD1tfSNhPShUOCh0aGlzLHUpLFQ4KHRoaXMsYix7fSkpO2dldCBmaWx0ZXJDcml0ZXJpYSgpe3JldHVybiB0aGlzLiNhfXNldCBmaWx0ZXJDcml0ZXJpYShtKXt0aGlzLiNhPW19ZW50cmllcyQ9KFQ4KHRoaXMsdiksbmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgYWxpZ25lZCB3aXRoIHNlY29uZGFyeSBtZW51ICovCiAgICAgICAgLS1hY3Rpdml0eWxvZy1iZzogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmc6ICR7aC5iZFRoZW1lKCIjNTI1MjUyIiwiI2EzYTNhMyIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnLW11dGVkOiAke2guYmRUaGVtZSgiIzczNzM3MyIsIiM3MzczNzMiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmU6ICR7aC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWJvcmRlcjogJHtoLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctaG92ZXI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWFjY2VudDogJHtoLmJkVGhlbWUoIiM3ODcxNmMiLCIjYjVhOTlhIil9OwoKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWFjdGl2aXR5bG9nLWJvcmRlcik7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMjgwcHg7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlciB3aXRoIHN0cmVhbWluZyBpbmRpY2F0b3IgKi8KICAgICAgLnRvcGJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWFjdGl2aXR5bG9nLWJvcmRlcik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudG9wYmFyIC5oZWFkaW5nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLmxpdmUtaW5kaWNhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5saXZlLWluZGljYXRvciAuZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBwdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjU7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgfQogICAgICAgIDUwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfQogICAgICB9CgogICAgICAvKiBBY3Rpdml0eSBjb250YWluZXIgKi8KICAgICAgLmFjdGl2aXR5Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0OHB4OwogICAgICAgIGJvdHRvbTogNDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjMzMzMzMzIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjMzMzMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhM2EzYTMiLCIjNTI1MjUyIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDBweCAxNnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC8qIERhdGUgc2VwYXJhdG9yIC0gd2FybSB0YXVwZSBzdHlsaW5nICovCiAgICAgIC5kYXRlLXNlcGFyYXRvciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxMnB4IDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctYWNjZW50KTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgZW50cnkgLSBtb2Rlcm4gc3RhY2tlZCBsYXlvdXQgKi8KICAgICAgLmFjdGl2aXR5ZW50cnkgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBtYXJnaW46IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuYWN0aXZpdHllbnRyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctaG92ZXIpOwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbiB7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24ubG9naW4gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjA4KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiM0YWRlODAiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmxvZ291dCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24udmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5jcmVhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDE2OCwgODUsIDI0NywgMC4wOCkiLCJyZ2JhKDE2OCwgODUsIDI0NywgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTMzM2VhIiwiI2MwODRmYyIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24udXBkYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTEsIDE0NiwgNjAsIDAuMDgpIiwicmdiYSgyNTEsIDE0NiwgNjAsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmRlbGV0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uY3VzdG9tIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxMDAsIDExNiwgMTM5LCAwLjA4KSIsInJnYmEoMTAwLCAxMTYsIDEzOSwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNDc1NTY5IiwiIzk0YTNiOCIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdXNlciB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICB9CgogICAgICAudGltZXN0YW1wIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuYWN0aXZpdHktbWVzc2FnZSB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBTZWFyY2ggYm94IC0gcmVmaW5lZCBzdHlsaW5nICovCiAgICAgIC5zZWFyY2hib3ggewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTBweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dCB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpIil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweCAwIDM0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC13cmFwcGVyOmhhcyhpbnB1dDpmb2N1cykgLnNlYXJjaC1pY29uIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgbT10aGlzLmdldEZpbHRlcmVkRW50cmllcygpLGY9dGhpcy5ncm91cEVudHJpZXNCeURhdGUobSk7cmV0dXJuIHdgCiAgICAgICR7dGEuc3R5bGVzfQogICAgICA8c3R5bGU+PC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmciPkFjdGl2aXR5IExvZzwvZGl2PgogICAgICAgICAgJHttLmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0ibGl2ZS1pbmRpY2F0b3IiPjxzcGFuIGNsYXNzPSJkb3QiPjwvc3Bhbj5MaXZlPC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eUNvbnRhaW5lciI+CiAgICAgICAgICAke20ubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBhY3Rpdml0eSBlbnRyaWVzPC9kaXY+YDpmLm1hcCh5PT53YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLXNlcGFyYXRvciI+JHt5LmxhYmVsfTwvZGl2PgogICAgICAgICAgICAgICAgICAke3kuZW50cmllcy5tYXAoTT0+dGhpcy5yZW5kZXJBY3Rpdml0eUVudHJ5KE0pKX0KICAgICAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaGJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InNlYXJjaC1pY29uIiAuaWNvbj0keyJsdWNpZGU6c2VhcmNoIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBhY3Rpdml0aWVzLCB1c2Vycy4uLiIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlU2VhcmNoSW5wdXR9CiAgICAgICAgICAgIC8+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGl2aXR5RW50cnkobSl7bGV0IGY9bS50aW1lc3RhbXB8fG5ldyBEYXRlLHk9dGhpcy5mb3JtYXRUaW1lKGYpLE09bS5pY29uTmFtZXx8dGhpcy5nZXRJY29uRm9yVHlwZShtLnR5cGUpO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImFjdGl2aXR5ZW50cnkiCiAgICAgICAgQGNvbnRleHRtZW51PSR7ej0+dGhpcy5oYW5kbGVDb250ZXh0TWVudSh6LG0pfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktaWNvbiAke20udHlwZX0iPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke019PjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktaGVhZGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGl2aXR5LXVzZXIiPiR7bS51c2VyfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGl2aXR5LXNlcGFyYXRvciI+wrc8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lc3RhbXAiPiR7eX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LW1lc3NhZ2UiPiR7bS5tZXNzYWdlfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YWRkKG0pe2xldCBmPXsuLi5tLGlkOm0uaWR8fHRoaXMuZ2VuZXJhdGVJZCgpLHRpbWVzdGFtcDptLnRpbWVzdGFtcHx8bmV3IERhdGV9O3RoaXMuZW50cmllcz1bZiwuLi50aGlzLmVudHJpZXNdLHRoaXMuZW50cmllcyQubmV4dCh0aGlzLmVudHJpZXMpfWFkZE1hbnkobSl7bGV0IGY9bS5tYXAoeT0+KHsuLi55LGlkOnkuaWR8fHRoaXMuZ2VuZXJhdGVJZCgpLHRpbWVzdGFtcDp5LnRpbWVzdGFtcHx8bmV3IERhdGV9KSk7dGhpcy5lbnRyaWVzPVsuLi5mLnJldmVyc2UoKSwuLi50aGlzLmVudHJpZXNdLHRoaXMuZW50cmllcyQubmV4dCh0aGlzLmVudHJpZXMpfWNsZWFyKCl7dGhpcy5lbnRyaWVzPVtdLHRoaXMuZW50cmllcyQubmV4dCh0aGlzLmVudHJpZXMpfWdldEVudHJpZXMoKXtyZXR1cm5bLi4udGhpcy5lbnRyaWVzXX1maWx0ZXIobSl7cmV0dXJuIHRoaXMuZW50cmllcy5maWx0ZXIoZj0+IShtLnVzZXImJmYudXNlciE9PW0udXNlcnx8bS50eXBlJiZmLnR5cGUhPT1tLnR5cGUpKX1zZWFyY2gobSl7bGV0IGY9bS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKHk9PnkubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGYpfHx5LnVzZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmKSl9Z2VuZXJhdGVJZCgpe3JldHVybmBhY3Rpdml0eS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YH1nZXRGaWx0ZXJlZEVudHJpZXMoKXtsZXQgbT10aGlzLmVudHJpZXM7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IGY9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO209bS5maWx0ZXIoeT0+eS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZil8fHkudXNlci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGYpKX1yZXR1cm4odGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyfHx0aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpJiYobT1tLmZpbHRlcihmPT4hKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlciYmZi51c2VyIT09dGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyfHx0aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUmJmYudHlwZSE9PXRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSkpKSxtfWdyb3VwRW50cmllc0J5RGF0ZShtKXtsZXQgZj1uZXcgTWFwLHk9bmV3IERhdGUsTT1uZXcgRGF0ZSh5KTtNLnNldERhdGUoTS5nZXREYXRlKCktMSk7Zm9yKGxldCB6IG9mIG0pe2xldCBOPXoudGltZXN0YW1wfHxuZXcgRGF0ZSxDO3RoaXMuaXNTYW1lRGF5KE4seSk/Qz0iVG9kYXkiOnRoaXMuaXNTYW1lRGF5KE4sTSk/Qz0iWWVzdGVyZGF5IjpDPU4udG9Mb2NhbGVEYXRlU3RyaW5nKCJlbi1VUyIse21vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIix5ZWFyOk4uZ2V0RnVsbFllYXIoKSE9PXkuZ2V0RnVsbFllYXIoKT8ibnVtZXJpYyI6dm9pZCAwfSksZi5oYXMoQyl8fGYuc2V0KEMsW10pLGYuZ2V0KEMpLnB1c2goeil9cmV0dXJuIEFycmF5LmZyb20oZi5lbnRyaWVzKCkpLm1hcCgoW3osTl0pPT4oe2xhYmVsOnosZW50cmllczpOfSkpfWlzU2FtZURheShtLGYpe3JldHVybiBtLmdldEZ1bGxZZWFyKCk9PT1mLmdldEZ1bGxZZWFyKCkmJm0uZ2V0TW9udGgoKT09PWYuZ2V0TW9udGgoKSYmbS5nZXREYXRlKCk9PT1mLmdldERhdGUoKX1mb3JtYXRUaW1lKG0pe3JldHVybiBtLnRvTG9jYWxlVGltZVN0cmluZygiZW4tVVMiLHtob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLGhvdXIxMjohMX0pfWdldEljb25Gb3JUeXBlKG0pe2xldCBmPXtsb2dpbjoibHVjaWRlOmxvZ0luIixsb2dvdXQ6Imx1Y2lkZTpsb2dPdXQiLHZpZXc6Imx1Y2lkZTpleWUiLGNyZWF0ZToibHVjaWRlOnBsdXMiLHVwZGF0ZToibHVjaWRlOmVkaXQiLGRlbGV0ZToibHVjaWRlOnRyYXNoMiIsY3VzdG9tOiJsdWNpZGU6YWN0aXZpdHkifTtyZXR1cm4gZlttXXx8Zi5jdXN0b219aGFuZGxlU2VhcmNoSW5wdXQobSl7bGV0IGY9bS50YXJnZXQ7dGhpcy5zZWFyY2hRdWVyeT1mLnZhbHVlfWhhbmRsZUNvbnRleHRNZW51KG0sZil7bS5wcmV2ZW50RGVmYXVsdCgpLGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKG0sW3tuYW1lOiJDb3B5IGFjdGl2aXR5IixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChgJHtmLnVzZXJ9ICR7Zi5tZXNzYWdlfWApfSwiYWN0aW9uIil9LHtuYW1lOiJGaWx0ZXIgYnkgdXNlciIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246aShhc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17dXNlcjpmLnVzZXJ9fSwiYWN0aW9uIil9LHtuYW1lOiJGaWx0ZXIgYnkgdHlwZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt0eXBlOmYudHlwZX19LCJhY3Rpb24iKX0se25hbWU6IkNsZWFyIGZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6eCIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e30sdGhpcy5zZWFyY2hRdWVyeT0iIn0sImFjdGlvbiIpfV0pfXN0YXRpY3tUOChhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgaWRhPWcoKCk9PntNZXQoKX0pO3ZhciByZGE9ZygoKT0+e30pO3ZhciBvZGE9ZygoKT0+e3BvKCl9KTt2YXIgbmRhPWcoKCk9Pnt9KTt2YXIgbGRhPWcoKCk9Pnt9KTt2YXIgY2RhPWcoKCk9Pnt9KTt2YXIgbWg9ZygoKT0+e3JkYSgpO29kYSgpO25kYSgpO2xkYSgpO2NkYSgpfSk7dmFyIGRkYSx1ZGE9ZygoKT0+e3BlKCk7SXQoKTt6ZXQoKTtkZGE9aSgoKT0+e2xldCBzPVt7bmFtZToiRmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgRmlsZSIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZS1wbHVzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXItb3BlbiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4iKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIFJlY2VudCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJwcm9qZWN0LWFscGhhLnRzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiByZWNlbnQgMSIpLCJhY3Rpb24iKX0se25hbWU6ImNvbmZpZy5qc29uIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiByZWNlbnQgMiIpLCJhY3Rpb24iKX0se25hbWU6InJlYWRtZS5tZCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDMiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX0se25hbWU6IlNhdmUgQXMuLi4iLHNob3J0Y3V0OiJDbWQrU2hpZnQrUyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUgYXMiKSwiYWN0aW9uIiksZGlzYWJsZWQ6ITB9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhpdCIsc2hvcnRjdXQ6IkNtZCtRIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRXhpdCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVW5kbyIpLCJhY3Rpb24iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWRvIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpLCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGaW5kIixzaG9ydGN1dDoiQ21kK0YiLGljb25OYW1lOiJzZWFyY2giLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGaW5kIiksImFjdGlvbiIpfSx7bmFtZToiUmVwbGFjZSIsc2hvcnRjdXQ6IkNtZCtIIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVwbGFjZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgRnVsbHNjcmVlbiIsc2hvcnRjdXQ6IkYxMSIsaWNvbk5hbWU6ImV4cGFuZCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZ1bGxzY3JlZW4iKSwiYWN0aW9uIil9LHtuYW1lOiJab29tIEluIixzaG9ydGN1dDoiQ21kKysiLGljb25OYW1lOiJ6b29tLWluIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBpbiIpLCJhY3Rpb24iKX0se25hbWU6Ilpvb20gT3V0IixzaG9ydGN1dDoiQ21kKy0iLGljb25OYW1lOiJ6b29tLW91dCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gb3V0IiksImFjdGlvbiIpfSx7bmFtZToiUmVzZXQgWm9vbSIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVzZXQgem9vbSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHNpZGViYXIiKSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgVGVybWluYWwiLHNob3J0Y3V0OiJDbWQrSiIsaWNvbk5hbWU6InRlcm1pbmFsIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHRlcm1pbmFsIiksImFjdGlvbiIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRhdGlvbiIpLCJhY3Rpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJmaWxlLXRleHQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWxlYXNlIG5vdGVzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlcG9ydCBJc3N1ZSIsaWNvbk5hbWU6ImJ1ZyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcG9ydCBpc3N1ZSIpLCJhY3Rpb24iKX0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0IiksImFjdGlvbiIpfV19XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNhcHBiYXIiKSxhPWUucXVlcnlTZWxlY3RvckFsbCgiLnN0YXR1cy10b2dnbGUgZGVlcy1idXR0b24iKTthWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudXNlcj17Li4udC51c2VyLHN0YXR1czoib25saW5lIn19KSxhWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudXNlcj17Li4udC51c2VyLHN0YXR1czoiYnVzeSJ9fSksYVsyXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LnVzZXI9ey4uLnQudXNlcixzdGF0dXM6ImF3YXkifX0pLGFbM10uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC51c2VyPXsuLi50LnVzZXIsc3RhdHVzOiJvZmZsaW5lIn19KSxlLnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3ctY29udHJvbHMtdG9nZ2xlIGRlZXMtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5zaG93V2luZG93Q29udHJvbHM9IXQuc2hvd1dpbmRvd0NvbnRyb2xzfSk7bGV0IG49ZS5xdWVyeVNlbGVjdG9yQWxsKCIuYnJlYWRjcnVtYi10b2dnbGUgZGVlcy1idXR0b24iKTtuWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QuYnJlYWRjcnVtYnM9IkhvbWUgPiBEb2N1bWVudHMgPiBQcm9qZWN0cyA+IE15QXBwID4gc3JjID4gaW5kZXgudHMifSksblsxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmJyZWFkY3J1bWJzPSJEYXNoYm9hcmQifSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGNvbG9yOiAjY2NjOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIGxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYXBwdWktYXBwYmFyCiAgICAgICAgaWQ9ImFwcGJhciIKICAgICAgICAubWVudUl0ZW1zPSR7c30KICAgICAgICAuYnJlYWRjcnVtYnM9JHsiUHJvamVjdCA+IHNyYyA+IGNvbXBvbmVudHMgPiBBcHBCYXIudHMifQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7IiA+ICJ9CiAgICAgICAgLnNob3dXaW5kb3dDb250cm9scz0keyEwfQogICAgICAgIC5zaG93U2VhcmNoPSR7ITB9CiAgICAgICAgLnRoZW1lPSR7ImRhcmsifQogICAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAgIEBtZW51LXNlbGVjdD0ke2U9PmNvbnNvbGUubG9nKCJNZW51IHNlbGVjdGVkOiIsZS5kZXRhaWwuaXRlbSl9CiAgICAgICAgQGJyZWFkY3J1bWItbmF2aWdhdGU9JHtlPT5jb25zb2xlLmxvZygiQnJlYWRjcnVtYiBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+Y29uc29sZS5sb2coIlNlYXJjaCBjbGlja2VkIil9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PmNvbnNvbGUubG9nKCJVc2VyIG1lbnUgY2xpY2tlZCIpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxoMj5BcHAgQmFyIERlbW88L2gyPgogICAgICAgIDxwPlRoaXMgZGVtbyBzaG93cyB2YXJpb3VzIGZlYXR1cmVzIG9mIHRoZSBhcHAgYmFyIGNvbXBvbmVudDo8L3A+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPkR5bmFtaWMgbWVudSBpdGVtcyB3aXRoIGljb25zLCBzaG9ydGN1dHMsIGFuZCBzdWJtZW51czwvbGk+CiAgICAgICAgICA8bGk+QnJlYWRjcnVtYiBuYXZpZ2F0aW9uPC9saT4KICAgICAgICAgIDxsaT5Vc2VyIGFjY291bnQgc2VjdGlvbiB3aXRoIHN0YXR1cyBpbmRpY2F0b3I8L2xpPgogICAgICAgICAgPGxpPlNlYXJjaCBpY29uPC9saT4KICAgICAgICAgIDxsaT5XaW5kb3cgY29udHJvbHMgKHBsYXRmb3JtLXNwZWNpZmljKTwvbGk+CiAgICAgICAgICA8bGk+RGFyay9saWdodCB0aGVtZSBzdXBwb3J0PC9saT4KICAgICAgICAgIDxsaT5LZXlib2FyZCBuYXZpZ2F0aW9uIChUYWIsIEVudGVyLCBFc2NhcGUpPC9saT4KICAgICAgICAgIDxsaT5DdXN0b20gZXZlbnRzIGZvciBhbGwgaW50ZXJhY3Rpb25zPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5UaGVtZTwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9InRoZW1lLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXJrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkxpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VXNlciBTdGF0dXM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJzdGF0dXMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9ubGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5CdXN5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkF3YXk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+T2ZmbGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPldpbmRvdyBDb250cm9sczwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9IndpbmRvdy1jb250cm9scy10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+QnJlYWRjcnVtYnM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJicmVhZGNydW1iLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Mb25nIFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2hvcnQgUGF0aDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHBkYSxoZGE9ZygoKT0+e3BlKCk7cGRhPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIHRoZW1pbmcgKi8KICAgICAgICAtLWFwcGJhci1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS1hcHBiYXItZm9udC1zaXplOiAxMnB4OwogICAgICAgIAogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IHZhcigtLWFwcGJhci1oZWlnaHQpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYXBwYmFyLWZvbnQtc2l6ZSk7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBkcmFnOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBuby1kcmFnOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAvKiBPcHRpb25hbDogU3R5bGUgZm9yIG1lbnUgaXRlbXMgd2l0aCBpY29ucyAobm90IHR5cGljYWxseSB1c2VkIGZvciB0b3AtbGV2ZWwgaXRlbXMpICovCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDIwIiwiI2ZmZmZmZjMwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjMDAwMDAwODAiLCIjZmZmZmZmODAiKX07CiAgICAgIH0KCgogICAgICAvKiBEcm9wZG93biBzdHlsZXMgKi8KICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5vcGVuIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbTpob3ZlciwKICAgICAgLmRyb3Bkb3duLWl0ZW0uZm9jdXNlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtW2Rpc2FibGVkXSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIC5zaG9ydGN1dCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogQnJlYWRjcnVtYnMgKi8KICAgICAgLmJyZWFkY3J1bWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLWl0ZW0gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1zZXBhcmF0b3IgewogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBBY2NvdW50IHNlY3Rpb24gKi8KICAgICAgLmFjY291bnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnVzZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm86aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgbG9nIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmFjdGl2aXR5LXRvZ2dsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA2MCIsIiNmZmZmZmY2MCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjE1Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktYmFkZ2UgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICAgIG1pbi13aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM1MjUyNTIiLCIjNTI1MjUyIil9OwogICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KICAgIGBdfSk7dmFyIGZkYSxtZGE9ZygoKT0+e3BlKCk7ZmRhPWkocz0+d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51cyI+CiAgICAgICAgICAke3Muc2hvd1dpbmRvd0NvbnRyb2xzP3dgPGRlZXMtd2luZG93Y29udHJvbHM+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPmA6IiJ9CiAgICAgICAgICAke3MucmVuZGVyTWVudUl0ZW1zKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYnMiPgogICAgICAgICAgJHtzLnJlbmRlckJyZWFkY3J1bWJzKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3VudCI+CiAgICAgICAgICAke3MucmVuZGVyQWNjb3VudFNlY3Rpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYCwicmVuZGVyQXBwdWlBcHBiYXIiKX0pO3ZhciBDZXQsX1osZ2RhLFRldD1nKCgpPT57cGUoKTtwdCgpO0NldD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sX1o9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGdkYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd2luZG93Y29udHJvbHMiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dpbmRvd0NvbnRyb2xzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7cmVmbGVjdDohMH0pXSxwPVtMKHtyZWZsZWN0OiEwfSldLENldCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InR5cGUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di50eXBlLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YudHlwZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksQ2V0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InBvc2l0aW9uImluIHYsImhhcyIpLGdldDppKHY9PnYucG9zaXRpb24sImdldCIpLHNldDppKCh2LHgpPT57di5wb3NpdGlvbj14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksQ2V0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2A8ZGVlcy13aW5kb3djb250cm9scz48L2RlZXMtd2luZG93Y29udHJvbHM+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPV9aKHRoaXMsbywibWFjIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShiKXt0aGlzLiNlPWJ9I3Q9KF9aKHRoaXMsbCksX1oodGhpcyxkLCJsZWZ0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbihiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdiB7CiAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICMyMjIyMjI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYuY2xvc2UgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjVmNTc7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LnRvRG9jayB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmYmQyZTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYubWluTWF4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjdjOTNmOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLnR5cGU9PT0ibWFjIiYmdGhpcy5wb3NpdGlvbj09PSJsZWZ0Inx8KHRoaXMudHlwZT09PSJsaW51eCJ8fHRoaXMudHlwZT09PSJ3aW5kb3dzIikmJnRoaXMucG9zaXRpb249PT0icmlnaHQiP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpbmRvd0NvbnRyb2xzIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZSI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9Eb2NrIj48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtaW5NYXgiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2BgfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksX1oodGhpcyx1KX1zdGF0aWN7X1ooYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIE1aLFEwLGJkYSwkZXQ9ZygoKT0+e3BvKCk7em4oKTtwZSgpO3B0KCk7TVo9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFEwPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxiZGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93biIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlQcm9maWxlRHJvcGRvd24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOkFycmF5fSldLGM9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLE1aKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idXNlciJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnVzZXIsImdldCIpLHNldDppKCh6LE4pPT57ei51c2VyPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxNWih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibWVudUl0ZW1zImluIHosImhhcyIpLGdldDppKHo9PnoubWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubWVudUl0ZW1zPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxNWih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNPcGVuImluIHosImhhcyIpLGdldDppKHo9PnouaXNPcGVuLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaXNPcGVuPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxNWih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJwb3NpdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oucG9zaXRpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLE1aKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bgogICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsZW1haWw6ImpvaG4uZG9lQGV4YW1wbGUuY29tIixhdmF0YXI6Imh0dHBzOi8vcmFuZG9tdXNlci5tZS9hcGkvcG9ydHJhaXRzL21lbi8xLmpwZyIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvZmlsZSBTZXR0aW5ncyIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIiksImFjdGlvbiIpfSx7bmFtZToiQWNjb3VudCIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQWNjb3VudCIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJIZWxwIiksImFjdGlvbiIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaWduIE91dCIsaWNvbk5hbWU6ImxvZ091dCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0IiksImFjdGlvbiIpfV19CiAgICAgIC5pc09wZW49JHshMH0KICAgID48L2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duPgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPVEwKHRoaXMsbyx2b2lkIDApO2dldCB1c2VyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHVzZXIoTSl7dGhpcy4jZT1NfSN0PShRMCh0aGlzLGwpLFEwKHRoaXMsZCxbXSkpO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWVudUl0ZW1zKE0pe3RoaXMuI3Q9TX0jYT0oUTAodGhpcyx1KSxRMCh0aGlzLGIsITEpKTtnZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzT3BlbihNKXt0aGlzLiNhPU19I3M9KFEwKHRoaXMsdiksUTAodGhpcyxtLCJ0b3AtcmlnaHQiKSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBvc2l0aW9uKE0pe3RoaXMuI3M9TX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbWluLXdpZHRoOiAyMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgei1pbmRleDogJHtXci5vdmVybGF5LmRyb3Bkb3dufTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5iYWNrZHJvcCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogUG9zaXRpb24gdmFyaWFudHMgKi8KICAgICAgLmRyb3Bkb3duLnRvcC1yaWdodCB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLnRvcC1sZWZ0IHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5ib3R0b20tcmlnaHQgewogICAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5ib3R0b20tbGVmdCB7CiAgICAgICAgYm90dG9tOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAvKiBVc2VyIHNlY3Rpb24gKi8KICAgICAgLnVzZXItc2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICB9CgogICAgICAudXNlci1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLnVzZXItZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC51c2VyLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudXNlci1lbWFpbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLyogTWVudSBzZWN0aW9uICovCiAgICAgIC5tZW51LXNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAubWVudS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAubWVudS1pdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudS1pdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudS1zaG9ydGN1dCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQoKICAgICAgLyogQmFja2Ryb3AgZm9yIG1vYmlsZSAqLwogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuYmFja2Ryb3AgewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwOwogICAgICAgICAgbGVmdDogMDsKICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgYm90dG9tOiAwOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgei1pbmRleDogJHtXci5iYWNrZHJvcC5kcm9wZG93bn07CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtpc29wZW5dKSAuYmFja2Ryb3AgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAuZHJvcGRvd24gewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICByaWdodDogYXV0bzsKICAgICAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDAuOTUpOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzJweCk7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtpc29wZW5dKSAuZHJvcGRvd24gewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYmFja2Ryb3AiIEBjbGljaz0keygpPT50aGlzLmNsb3NlKCl9PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93biAke3RoaXMucG9zaXRpb259Ij4KICAgICAgICAke3RoaXMudXNlcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWF2YXRhciI+CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5hdmF0YXI/d2A8aW1nIHNyYz0iJHt0aGlzLnVzZXIuYXZhdGFyfSIgYWx0PSIke3RoaXMudXNlci5uYW1lfSI+YDp0aGlzLmdldEluaXRpYWxzKHRoaXMudXNlci5uYW1lKX0KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXN0YXR1cyAke3RoaXMudXNlci5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1kZXRhaWxzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItbmFtZSI+JHt0aGlzLnVzZXIubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLmVtYWlsP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItZW1haWwiPiR7dGhpcy51c2VyLmVtYWlsfTwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnUtc2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChNPT50aGlzLnJlbmRlck1lbnVJdGVtKE0pKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1lbnVJdGVtKE0pe2lmKCJkaXZpZGVyImluIE0mJk0uZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51LWRpdmlkZXIiPjwvZGl2PmA7bGV0IHo9TTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2soeil9PgogICAgICAgICR7ei5pY29uTmFtZT93YAogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7ei5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS1pdGVtLXRleHQiPiR7ei5uYW1lfTwvc3Bhbj4KICAgICAgICAke3ouc2hvcnRjdXQ/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LXNob3J0Y3V0Ij4ke3ouc2hvcnRjdXR9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbml0aWFscyhNKXtyZXR1cm4gTS5zcGxpdCgiICIpLm1hcCh6PT56WzBdKS5qb2luKCIiKS50b1VwcGVyQ2FzZSgpLnNsaWNlKDAsMil9YXN5bmMgaGFuZGxlTWVudUNsaWNrKE0pe2F3YWl0IE0uYWN0aW9uKCksdGhpcy5jbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOk19LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9b3Blbigpe3RoaXMuaXNPcGVuPSEwfWNsb3NlKCl7dGhpcy5pc09wZW49ITF9dG9nZ2xlKCl7dGhpcy5pc09wZW49IXRoaXMuaXNPcGVufWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZU91dHNpZGVDbGljaz10aGlzLmhhbmRsZU91dHNpZGVDbGljay5iaW5kKHRoaXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZU91dHNpZGVDbGljayl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZU91dHNpZGVDbGljayl9aGFuZGxlT3V0c2lkZUNsaWNrKE0pe2lmKHRoaXMuaXNPcGVuJiYhdGhpcy5jb250YWlucyhNLnRhcmdldCkpe2xldCB6PXRoaXMucGFyZW50RWxlbWVudDtpZih6JiZ6LmNvbnRhaW5zKE0udGFyZ2V0KSlyZXR1cm47dGhpcy5jbG9zZSgpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUTAodGhpcyxmKX1zdGF0aWN7UTAoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIHNuLFNzLHZkYSx6ZXQ9ZygoKT0+e3BlKCk7a3QoKTttaCgpO3BvKCk7dWRhKCk7aGRhKCk7bWRhKCk7VWEoKTtUZXQoKTskZXQoKTtzbj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sU3M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHZkYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtYXBwdWktYXBwYmFyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXTt2YXIgeWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aUJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBxPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6T2JqZWN0fSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpCb29sZWFufSldLEg9W0woe3R5cGU6Qm9vbGVhbn0pXSxJPVtMKHt0eXBlOk51bWJlcn0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0sc24odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+Im1lbnVJdGVtcyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5tZW51SXRlbXM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbyxsKSxzbih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJicmVhZGNydW1icyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmJyZWFkY3J1bWJzLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmJyZWFkY3J1bWJzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGQsdSksc24odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJicmVhZGNydW1iU2VwYXJhdG9yImluIEEsImhhcyIpLGdldDppKEE9PkEuYnJlYWRjcnVtYlNlcGFyYXRvciwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5icmVhZGNydW1iU2VwYXJhdG9yPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGIsdiksc24odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNob3dXaW5kb3dDb250cm9scyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNob3dXaW5kb3dDb250cm9scywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93V2luZG93Q29udHJvbHM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbSxmKSxzbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InVzZXIiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS51c2VyLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnVzZXI9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sTSx6KSxzbih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InByb2ZpbGVNZW51SXRlbXMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5wcm9maWxlTWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnByb2ZpbGVNZW51SXRlbXM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sQyxfKSxzbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNob3dTZWFyY2giaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5zaG93U2VhcmNoLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnNob3dTZWFyY2g9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sJCxFKSxzbih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBY3Rpdml0eUxvZ1RvZ2dsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ic2hvd0FjdGl2aXR5TG9nVG9nZ2xlImluIEEsImhhcyIpLGdldDppKEE9PkEuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxrLFMpLHNuKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChBLHNlKT0+e0EuYWN0aXZpdHlMb2dDb3VudD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxQLFIpLHNuKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImFjdGl2aXR5TG9nQWN0aXZlImluIEEsImhhcyIpLGdldDppKEE9PkEuYWN0aXZpdHlMb2dBY3RpdmUsImdldCIpLHNldDppKChBLHNlKT0+e0EuYWN0aXZpdHlMb2dBY3RpdmU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sVixXKSxzbih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVNZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJhY3RpdmVNZW51ImluIEEsImhhcyIpLGdldDppKEE9PkEuYWN0aXZlTWVudSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5hY3RpdmVNZW51PXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEIsVSksc24odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkRyb3Bkb3ducyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ib3BlbkRyb3Bkb3ducyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLm9wZW5Ecm9wZG93bnMsImdldCIpLHNldDppKChBLHNlKT0+e0Eub3BlbkRyb3Bkb3ducz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxGLGopLHNuKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvY3VzZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJmb2N1c2VkSXRlbSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmZvY3VzZWRJdGVtLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmZvY3VzZWRJdGVtPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGxlLFEpLHNuKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvY3VzZWREcm9wZG93bkl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImZvY3VzZWREcm9wZG93bkl0ZW0iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5mb2N1c2VkRHJvcGRvd25JdGVtLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmZvY3VzZWREcm9wZG93bkl0ZW09c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sdGUsZWUpLHNuKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvZmlsZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iaXNQcm9maWxlRHJvcGRvd25PcGVuImluIEEsImhhcyIpLGdldDppKEE9PkEuaXNQcm9maWxlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmlzUHJvZmlsZURyb3Bkb3duT3Blbj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxYLFopLHNuKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnF9LG51bGwsdCkseWU9YT1lLnZhbHVlLHEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pfXN0YXRpYyBkZW1vPWRkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPVNzKHRoaXMsbyxbXSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBtZW51SXRlbXMocSl7dGhpcy4jZT1xfSN0PShTcyh0aGlzLGwpLFNzKHRoaXMsZCwiIikpO2dldCBicmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBicmVhZGNydW1icyhxKXt0aGlzLiN0PXF9I2E9KFNzKHRoaXMsdSksU3ModGhpcyxiLCIgPiAiKSk7Z2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYnJlYWRjcnVtYlNlcGFyYXRvcihxKXt0aGlzLiNhPXF9I3M9KFNzKHRoaXMsdiksU3ModGhpcyxtLCEwKSk7Z2V0IHNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNzfXNldCBzaG93V2luZG93Q29udHJvbHMocSl7dGhpcy4jcz1xfSNpPShTcyh0aGlzLGYpLFNzKHRoaXMsTSx2b2lkIDApKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNpfXNldCB1c2VyKHEpe3RoaXMuI2k9cX0jcj0oU3ModGhpcyx6KSxTcyh0aGlzLEMsW10pKTtnZXQgcHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNyfXNldCBwcm9maWxlTWVudUl0ZW1zKHEpe3RoaXMuI3I9cX0jbz0oU3ModGhpcyxfKSxTcyh0aGlzLCQsITEpKTtnZXQgc2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNvfXNldCBzaG93U2VhcmNoKHEpe3RoaXMuI289cX0jbj0oU3ModGhpcyxFKSxTcyh0aGlzLGssITEpKTtnZXQgc2hvd0FjdGl2aXR5TG9nVG9nZ2xlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZShxKXt0aGlzLiNuPXF9I2w9KFNzKHRoaXMsUyksU3ModGhpcyxQLDApKTtnZXQgYWN0aXZpdHlMb2dDb3VudCgpe3JldHVybiB0aGlzLiNsfXNldCBhY3Rpdml0eUxvZ0NvdW50KHEpe3RoaXMuI2w9cX0jYz0oU3ModGhpcyxSKSxTcyh0aGlzLFYsITEpKTtnZXQgYWN0aXZpdHlMb2dBY3RpdmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZpdHlMb2dBY3RpdmUocSl7dGhpcy4jYz1xfSNkPShTcyh0aGlzLFcpLFNzKHRoaXMsQixudWxsKSk7Z2V0IGFjdGl2ZU1lbnUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlTWVudShxKXt0aGlzLiNkPXF9I3U9KFNzKHRoaXMsVSksU3ModGhpcyxGLG5ldyBTZXQpKTtnZXQgb3BlbkRyb3Bkb3ducygpe3JldHVybiB0aGlzLiN1fXNldCBvcGVuRHJvcGRvd25zKHEpe3RoaXMuI3U9cX0jcD0oU3ModGhpcyxqKSxTcyh0aGlzLGxlLG51bGwpKTtnZXQgZm9jdXNlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jcH1zZXQgZm9jdXNlZEl0ZW0ocSl7dGhpcy4jcD1xfSNoPShTcyh0aGlzLFEpLFNzKHRoaXMsdGUsLTEpKTtnZXQgZm9jdXNlZERyb3Bkb3duSXRlbSgpe3JldHVybiB0aGlzLiNofXNldCBmb2N1c2VkRHJvcGRvd25JdGVtKHEpe3RoaXMuI2g9cX0jZj0oU3ModGhpcyxlZSksU3ModGhpcyxYLCExKSk7Z2V0IGlzUHJvZmlsZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNmfXNldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4ocSl7dGhpcy4jZj1xfXN0YXRpYyBzdHlsZXM9cGRhO3JlbmRlcigpe3JldHVybiBmZGEodGhpcyl9cmVuZGVyTWVudUl0ZW1zKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKChxLEEpPT50aGlzLnJlbmRlck1lbnVJdGVtKHEsYG1lbnUtJHtBfWApKX0KICAgIGB9cmVuZGVyTWVudUl0ZW0ocSxBKXtpZigiZGl2aWRlciJpbiBxJiZxLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgc2U9cSxvZT10aGlzLmFjdGl2ZU1lbnU9PT1BLGFlPXNlLnN1Ym1lbnUmJnNlLnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHtvZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7c2UuZGlzYWJsZWR9CiAgICAgICAgdGFiaW5kZXg9IiR7c2UuZGlzYWJsZWQ/LTE6MH0iCiAgICAgICAgZGF0YS1pdGVtLWlkPSIke0F9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVDbGljayhzZSxBKX0KICAgICAgICBAa2V5ZG93bj0ke1RlPT50aGlzLmhhbmRsZU1lbnVLZXlkb3duKFRlLHNlLEEpfQogICAgICAgIHJvbGU9Im1lbnVpdGVtIgogICAgICAgIGFyaWEtaGFzcG9wdXA9IiR7YWV9IgogICAgICAgIGFyaWEtZXhwYW5kZWQ9IiR7b2V9IgogICAgICA+CiAgICAgICAgJHtzZS5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke3NlLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICR7c2UubmFtZX0KICAgICAgICAke2FlP3RoaXMucmVuZGVyRHJvcGRvd24oc2Uuc3VibWVudSxBLG9lKToiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRyb3Bkb3duKHEsQSxzZSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImRyb3Bkb3duICR7c2U/Im9wZW4iOiIifSIgCiAgICAgICAgQGNsaWNrPSR7b2U9Pm9lLnN0b3BQcm9wYWdhdGlvbigpfQogICAgICAgIEBrZXlkb3duPSR7b2U9PnRoaXMuaGFuZGxlRHJvcGRvd25LZXlkb3duKG9lLHEsQSl9CiAgICAgICAgdGFiaW5kZXg9IiR7c2U/MDotMX0iCiAgICAgICAgcm9sZT0ibWVudSIKICAgICAgPgogICAgICAgICR7cS5tYXAoKG9lLGFlKT0+dGhpcy5yZW5kZXJEcm9wZG93bkl0ZW0ob2UsYCR7QX0tJHthZX1gKSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bkl0ZW0ocSxBKXtpZigiZGl2aWRlciJpbiBxJiZxLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgc2U9cSxvZT1wYXJzZUludChBLnNwbGl0KCItIikucG9wKCl8fCIwIiksYWU9dGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPT09b2U7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSAke2FlPyJmb2N1c2VkIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7c2UuZGlzYWJsZWR9CiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soc2UpfQogICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1vZX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICB0YWJpbmRleD0iJHtzZS5kaXNhYmxlZD8tMTowfSIKICAgICAgPgogICAgICAgICR7c2UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtzZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3Bhbj4ke3NlLm5hbWV9PC9zcGFuPgogICAgICAgICR7c2Uuc2hvcnRjdXQ/d2A8c3BhbiBjbGFzcz0ic2hvcnRjdXQiPiR7c2Uuc2hvcnRjdXR9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJCcmVhZGNydW1icygpe2lmKCF0aGlzLmJyZWFkY3J1bWJzKXJldHVybiB3YGA7bGV0IHE9dGhpcy5icmVhZGNydW1icy5zcGxpdCh0aGlzLmJyZWFkY3J1bWJTZXBhcmF0b3IpO3JldHVybiB3YAogICAgICAke3EubWFwKChBLHNlKT0+d2AKICAgICAgICAke3NlPjA/d2A8c3BhbiBjbGFzcz0iYnJlYWRjcnVtYi1zZXBhcmF0b3IiPiR7dGhpcy5icmVhZGNydW1iU2VwYXJhdG9yfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIAogICAgICAgICAgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSIgCiAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVCcmVhZGNydW1iQ2xpY2soQSxzZSl9CiAgICAgICAgPgogICAgICAgICAgJHtBfQogICAgICAgIDwvc3Bhbj4KICAgICAgYCl9CiAgICBgfXJlbmRlckFjY291bnRTZWN0aW9uKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5zaG93U2VhcmNoP3dgCiAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgY2xhc3M9InNlYXJjaC1pY29uIgogICAgICAgICAgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9CiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlYXJjaENsaWNrfQogICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnVzZXI/d2AKICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItaW5mbyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVVc2VyQ2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWF2YXRhciI+CiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyP3dgPGltZyBzcmM9IiR7dGhpcy51c2VyLmF2YXRhcn0iIGFsdD0iJHt0aGlzLnVzZXIubmFtZX0iPmA6d2Ake3RoaXMudXNlci5uYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfWB9CiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXN0YXR1cyAke3RoaXMudXNlci5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4+JHt0aGlzLnVzZXIubmFtZX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bgogICAgICAgICAgICAudXNlcj0ke3RoaXMudXNlcn0KICAgICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMucHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAgICAgLmlzT3Blbj0ke3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVufQogICAgICAgICAgICAucG9zaXRpb249JHsidG9wLXJpZ2h0In0KICAgICAgICAgICAgQG1lbnUtc2VsZWN0PSR7cT0+dGhpcy5oYW5kbGVQcm9maWxlTWVudVNlbGVjdChxKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAke3RoaXMuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlP3dgCiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImFjdGl2aXR5LXRvZ2dsZSAke3RoaXMuYWN0aXZpdHlMb2dBY3RpdmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVBY3Rpdml0eVRvZ2dsZX0KICAgICAgICAgIHRpdGxlPSJBY3Rpdml0eSBMb2ciCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6YWN0aXZpdHkifT48L2RlZXMtaWNvbj4KICAgICAgICAgICR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50PjA/d2AKICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGl2aXR5LWJhZGdlIj4ke3RoaXMuYWN0aXZpdHlMb2dDb3VudD45OT8iOTkrIjp0aGlzLmFjdGl2aXR5TG9nQ291bnR9PC9zcGFuPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9aGFuZGxlTWVudUNsaWNrKHEsQSl7cS5kaXNhYmxlZHx8KHEuc3VibWVudSYmcS5zdWJtZW51Lmxlbmd0aD4wP3RoaXMuYWN0aXZlTWVudT09PUE/dGhpcy5hY3RpdmVNZW51PW51bGw6dGhpcy5hY3RpdmVNZW51PUE6KHRoaXMuYWN0aXZlTWVudT1udWxsLHEuYWN0aW9uJiZxLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOnF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpKX1oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhxKXtxLmRpc2FibGVkfHwodGhpcy5hY3RpdmVNZW51PW51bGwscS5hY3Rpb24mJnEuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWVudS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06cX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9aGFuZGxlTWVudUtleWRvd24ocSxBLHNlKXtzd2l0Y2gocS5rZXkpe2Nhc2UiRW50ZXIiOmNhc2UiICI6cS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlTWVudUNsaWNrKEEsc2UpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjppZihBLnN1Ym1lbnUmJnRoaXMuYWN0aXZlTWVudT09PXNlKXtxLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPTA7bGV0IG9lPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQS5zdWJtZW51LC0xLDEpO29lIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09b2Usc2V0VGltZW91dCgoKT0+e2xldCBhZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLmRyb3Bkb3duLm9wZW4iKTthZSYmYWUuZm9jdXMoKX0sMCkpfWJyZWFrO2Nhc2UiRXNjYXBlIjp0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTE7YnJlYWs7Y2FzZSJUYWIiOnRoaXMuYWN0aXZlTWVudT09PXNlJiYodGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xKTticmVhaztjYXNlIkFycm93UmlnaHQiOnEucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKHNlLDEpO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0IjpxLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbShzZSwtMSk7YnJlYWt9fWhhbmRsZUJyZWFkY3J1bWJDbGljayhxLEEpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6e2JyZWFkY3J1bWI6cSxpbmRleDpBfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNsaWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBY3Rpdml0eVRvZ2dsZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGl2aXR5LXRvZ2dsZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVXNlckNsaWNrKCl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49IXRoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVQcm9maWxlTWVudVNlbGVjdChxKXt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbj0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwcm9maWxlLW1lbnUtc2VsZWN0Iix7ZGV0YWlsOnEuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlR2xvYmFsQ2xpY2spLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZURvY3VtZW50Q2xpY2spfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1oYW5kbGVHbG9iYWxDbGljaz0oU3ModGhpcyxaKSxxPT57cS5zdG9wUHJvcGFnYXRpb24oKX0pO2hhbmRsZURvY3VtZW50Q2xpY2s9aSgoKT0+e3RoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMX0sImhhbmRsZURvY3VtZW50Q2xpY2siKTtoYW5kbGVEcm9wZG93bktleWRvd24ocSxBLHNlKXtsZXQgb2U9QS5maWx0ZXIoYWU9PiEoImRpdmlkZXIiaW4gYWUmJmFlLmRpdmlkZXIpKTtzd2l0Y2gocS5rZXkpe2Nhc2UiQXJyb3dEb3duIjpxLnByZXZlbnREZWZhdWx0KCk7bGV0IGFlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sMSk7YWUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1hZSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjpxLnByZXZlbnREZWZhdWx0KCk7bGV0IFRlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sLTEpO1RlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09VGUpO2JyZWFrO2Nhc2UiRW50ZXIiOmlmKHEucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0hPT0tMSl7bGV0IERlPW9lW3RoaXMuZm9jdXNlZERyb3Bkb3duSXRlbV07RGUmJiJhY3Rpb24iaW4gRGUmJiFEZS5kaXNhYmxlZCYmdGhpcy5oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhEZSl9YnJlYWs7Y2FzZSJIb21lIjpxLnByZXZlbnREZWZhdWx0KCk7bGV0IFJlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQSwtMSwxKTtSZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPVJlKTticmVhaztjYXNlIkVuZCI6cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBCZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEsQS5sZW5ndGgsLTEpO0JlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09QmUpO2JyZWFrO2Nhc2UiRXNjYXBlIjpxLnByZXZlbnREZWZhdWx0KCksdGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2xldCBHZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLm1lbnVJdGVtLmFjdGl2ZSIpO0dlJiZHZS5mb2N1cygpO2JyZWFrfX1maW5kTmV4dFZhbGlkSXRlbShxLEEsc2Upe2xldCBvZT1BK3NlO2Zvcig7b2U+PTAmJm9lPHEubGVuZ3RoOyl7bGV0IGFlPXFbb2VdO2lmKCEoImRpdmlkZXIiaW4gYWUmJmFlLmRpdmlkZXIpJiYhKCJkaXNhYmxlZCJpbiBhZSYmYWUuZGlzYWJsZWQpKXJldHVybiBvZTtvZSs9c2V9cmV0dXJuLTF9Zm9jdXNOZXh0TWVudUl0ZW0ocSxBKXtsZXQgc2U9QXJyYXkuZnJvbSh0aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVJdGVtIikpLG9lPXNlLmZpbmRJbmRleChSZT0+UmUuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taWQiKT09PXEpO2lmKG9lPT09LTEpcmV0dXJuO2xldCBhZT1vZStBO2FlPDA/YWU9c2UubGVuZ3RoLTE6YWU+PXNlLmxlbmd0aCYmKGFlPTApO2xldCBUZT0wO2Zvcig7VGU8c2UubGVuZ3RoOyl7bGV0IFJlPXNlW2FlXTtpZighUmUuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXtSZS5mb2N1cygpLHRoaXMuYWN0aXZlTWVudSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWt9YWU9KGFlK0Erc2UubGVuZ3RoKSVzZS5sZW5ndGgsVGUrK319c3RhdGlje1NzKGEsdCl9fTtyZXR1cm4geWU9YX0pKCl9KTt2YXIgRGV0PWcoKCk9Pnt6ZXQoKX0pO3ZhciB4ZGEseWRhLHdkYT1nKCgpPT57cGUoKTtJdCgpO3lkYT1pKCgpPT53KHhkYXx8KHhkYT1iYyhbYAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjNzM3MzczOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWJvdHRvbWJhci13cmFwcGVyIHsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwIDAlIDIwJSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWxhYmVsIj5Cb3R0b20gYmFyIHdpdGggc3RhdHVzIHdpZGdldHMgYW5kIGFjdGlvbnM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tYm90dG9tYmFyLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1hcHB1aS1ib3R0b21iYXIKICAgICAgICAgICAgICBpZD0iZGVtby1ib3R0b21iYXIiCiAgICAgICAgICAgID48L2RlZXMtYXBwdWktYm90dG9tYmFyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWxhYmVsIj5Db250cm9sczwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFN1Y2Nlc3NXaWRnZXQoKSI+QWRkIFN1Y2Nlc3MgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkV2FybmluZ1dpZGdldCgpIj5BZGQgV2FybmluZyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRFcnJvcldpZGdldCgpIj5BZGQgRXJyb3IgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkTG9hZGluZ1dpZGdldCgpIj5BZGQgTG9hZGluZyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRSaWdodFdpZGdldCgpIj5BZGQgUmlnaHQgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkQWN0aW9uKCkiPkFkZCBBY3Rpb248L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbGVhckFsbCgpIj5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogICAgICAgIGNvbnN0IGJvdHRvbWJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZW1vLWJvdHRvbWJhcicpOwoKICAgICAgICAvLyBXYWl0IGZvciBjb21wb25lbnQgdG8gaW5pdGlhbGl6ZQogICAgICAgIGF3YWl0IGJvdHRvbWJhci51cGRhdGVDb21wbGV0ZTsKCiAgICAgICAgLy8gQWRkIGluaXRpYWwgd2lkZ2V0cwogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICdzdGF0dXMnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWN0aXZpdHknLAogICAgICAgICAgbGFiZWw6ICdTeXN0ZW0gT25saW5lJywKICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgdG9vbHRpcDogJ0FsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdTdGF0dXMgY2xpY2tlZCcpLAogICAgICAgICAgY29udGV4dE1lbnVJdGVtczogWwogICAgICAgICAgICB7IG5hbWU6ICdWaWV3IERldGFpbHMnLCBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywgYWN0aW9uOiAoKSA9PiBhbGVydCgnU3lzdGVtIGRldGFpbHMnKSB9LAogICAgICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSwKICAgICAgICAgICAgeyBuYW1lOiAnUmVmcmVzaCBTdGF0dXMnLCBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoQ3cnLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdSZWZyZXNoaW5nLi4uJykgfSwKICAgICAgICAgIF0sCiAgICAgICAgfSk7CgogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICdub3RpZmljYXRpb25zJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmJlbGwnLAogICAgICAgICAgbGFiZWw6ICczIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICB0b29sdGlwOiAnWW91IGhhdmUgdW5yZWFkIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ05vdGlmaWNhdGlvbnMgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAndmVyc2lvbicsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpnaXRCcmFuY2gnLAogICAgICAgICAgbGFiZWw6ICd2MS4yLjMnLAogICAgICAgICAgdG9vbHRpcDogJ0N1cnJlbnQgdmVyc2lvbicsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdWZXJzaW9uIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gQWRkIGluaXRpYWwgYWN0aW9ucwogICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgaWQ6ICdzZXR0aW5ncycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpzZXR0aW5ncycsCiAgICAgICAgICB0b29sdGlwOiAnU2V0dGluZ3MnLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBhbGVydCgnU2V0dGluZ3MgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnaGVscCcsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpoZWxwQ2lyY2xlJywKICAgICAgICAgIHRvb2x0aXA6ICdIZWxwJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ0hlbHAgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICAvLyBEZW1vIGNvbnRyb2wgZnVuY3Rpb25zCiAgICAgICAgbGV0IHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgIGxldCBhY3Rpb25Db3VudGVyID0gMDsKCiAgICAgICAgd2luZG93LmFkZFN1Y2Nlc3NXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVja0NpcmNsZScsCiAgICAgICAgICAgIGxhYmVsOiAnU3VjY2VzcyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdTdWNjZXNzIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3N1Y2Nlc3MtJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZFdhcm5pbmdXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICd3YXJuaW5nLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphbGVydFRyaWFuZ2xlJywKICAgICAgICAgICAgbGFiZWw6ICdXYXJuaW5nICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICd3YXJuaW5nJywKICAgICAgICAgICAgdG9vbHRpcDogJ1dhcm5pbmcgd2lkZ2V0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkRXJyb3JXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdlcnJvci0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6eENpcmNsZScsCiAgICAgICAgICAgIGxhYmVsOiAnRXJyb3IgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJywKICAgICAgICAgICAgdG9vbHRpcDogJ0Vycm9yIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ2Vycm9yLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRMb2FkaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgY29uc3QgaWQgPSAnbG9hZGluZy0nICsgd2lkZ2V0Q291bnRlcjsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogaWQsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmxvYWRlcjInLAogICAgICAgICAgICBsYWJlbDogJ0xvYWRpbmcuLi4nLAogICAgICAgICAgICBzdGF0dXM6ICdhY3RpdmUnLAogICAgICAgICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAgICAgICB0b29sdGlwOiAnTG9hZGluZyBpbiBwcm9ncmVzcycsCiAgICAgICAgICB9KTsKCiAgICAgICAgICAvLyBTaW11bGF0ZSBjb21wbGV0aW9uIGFmdGVyIDMgc2Vjb25kcwogICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGJvdHRvbWJhci51cGRhdGVXaWRnZXQoaWQsIHsKICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVjaycsCiAgICAgICAgICAgICAgbGFiZWw6ICdEb25lIScsCiAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwgMzAwMCk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZFJpZ2h0V2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAncmlnaHQtJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmluZm8nLAogICAgICAgICAgICBsYWJlbDogJ1JpZ2h0ICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgncmlnaHQtJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEFjdGlvbiA9ICgpID0+IHsKICAgICAgICAgIGFjdGlvbkNvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgICBpZDogJ2FjdGlvbi0nICsgYWN0aW9uQ291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6emFwJywKICAgICAgICAgICAgdG9vbHRpcDogJ0FjdGlvbiAnICsgYWN0aW9uQ291bnRlciwKICAgICAgICAgICAgb25DbGljazogKCkgPT4gewogICAgICAgICAgICAgIGFsZXJ0KCdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIgKyAnIGNsaWNrZWQnKTsKICAgICAgICAgICAgICBib3R0b21iYXIucmVtb3ZlQWN0aW9uKCdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIpOwogICAgICAgICAgICB9LAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmNsZWFyQWxsID0gKCkgPT4gewogICAgICAgICAgYm90dG9tYmFyLmNsZWFyV2lkZ2V0cygpOwogICAgICAgICAgYm90dG9tYmFyLmNsZWFyQWN0aW9ucygpOwogICAgICAgICAgd2lkZ2V0Q291bnRlciA9IDA7CiAgICAgICAgICBhY3Rpb25Db3VudGVyID0gMDsKICAgICAgICB9OwogICAgICA8XC9zY3JpcHQ+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYF0pKSksImRlbW9GdW5jIil9KTt2YXIgTGV0LHpaLGtkYSxFZXQ9ZygoKT0+e3BlKCk7cHQoKTtVYSgpO29yKCk7d2RhKCk7TGV0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6Wj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sa2RhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1ib3R0b21iYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQm90dG9tYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLExldCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+IndpZGdldHMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di53aWRnZXRzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yud2lkZ2V0cz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksTGV0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iYWN0aW9ucyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmFjdGlvbnMsImdldCIpLHNldDppKCh2LHgpPT57di5hY3Rpb25zPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxMZXQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz15ZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT16Wih0aGlzLG8sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMoYil7dGhpcy4jZT1ifSN0PSh6Wih0aGlzLGwpLHpaKHRoaXMsZCxbXSkpO2dldCBhY3Rpb25zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFjdGlvbnMoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLyogU3RhdHVzIGNvbG9ycyBtYXRjaGluZyBkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIgKi8KICAgICAgLndpZGdldC5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5zdWNjZXNzIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0Lndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5zcGlubmluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnNwYWNlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgYj10aGlzLndpZGdldHMuZmlsdGVyKGY9PmYucG9zaXRpb24hPT0icmlnaHQiKS5zb3J0KChmLHkpPT4oZi5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSx2PXRoaXMud2lkZ2V0cy5maWx0ZXIoZj0+Zi5wb3NpdGlvbj09PSJyaWdodCIpLnNvcnQoKGYseSk9PihmLm9yZGVyfHwwKS0oeS5vcmRlcnx8MCkpLHg9dGhpcy5hY3Rpb25zLmZpbHRlcihmPT5mLnBvc2l0aW9uPT09ImxlZnQiKSxtPXRoaXMuYWN0aW9ucy5maWx0ZXIoZj0+Zi5wb3NpdGlvbiE9PSJsZWZ0Iik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1iYXIiPgogICAgICAgIDwhLS0gTGVmdCBhY3Rpb25zIC0tPgogICAgICAgICR7eC5tYXAoZj0+dGhpcy5yZW5kZXJBY3Rpb24oZikpfQoKICAgICAgICA8IS0tIExlZnQgd2lkZ2V0cyAtLT4KICAgICAgICAke2IubWFwKChmLHkpPT53YAogICAgICAgICAgJHt5PjB8fHgubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj5gOiIifQogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChmKX0KICAgICAgICBgKX0KCiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCiAgICAgICAgPCEtLSBSaWdodCB3aWRnZXRzIC0tPgogICAgICAgICR7di5tYXAoKGYseSk9PndgCiAgICAgICAgICAke3RoaXMucmVuZGVyV2lkZ2V0KGYpfQogICAgICAgICAgJHt5PHYubGVuZ3RoLTF8fG0ubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj5gOiIifQogICAgICAgIGApfQoKICAgICAgICA8IS0tIFJpZ2h0IGFjdGlvbnMgLS0+CiAgICAgICAgJHttLm1hcChmPT50aGlzLnJlbmRlckFjdGlvbihmKSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQoYil7bGV0IHY9Yi5zdGF0dXMmJmIuc3RhdHVzIT09ImlkbGUiP2Iuc3RhdHVzOiIiLHg9Yi5pY29uTmFtZT9iLmljb25OYW1lLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9iLmljb25OYW1lOmBsdWNpZGU6JHtiLmljb25OYW1lfWA6IiI7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0id2lkZ2V0ICR7dn0iCiAgICAgICAgdGl0bGU9IiR7Yi50b29sdGlwfHwiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PmIub25DbGljaz8uKCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7bT0+dGhpcy5oYW5kbGVXaWRnZXRDb250ZXh0TWVudShtLGIpfQogICAgICA+CiAgICAgICAgJHt4P3dgCiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7eH0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgICBjbGFzcz0iJHtiLmxvYWRpbmc/InNwaW5uaW5nIjoiIn0iCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICAke2IubGFiZWw/d2A8c3Bhbj4ke2IubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb24oYil7bGV0IHY9Yi5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/Yi5pY29uTmFtZTpgbHVjaWRlOiR7Yi5pY29uTmFtZX1gO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtiLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIHRpdGxlPSIke2IudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT4hYi5kaXNhYmxlZCYmYi5vbkNsaWNrPy4oKX0KICAgICAgPgogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIC5pY29uPSR7dn0KICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVXaWRnZXRDb250ZXh0TWVudShiLHYpe2lmKCF2LmNvbnRleHRNZW51SXRlbXN8fHYuY29udGV4dE1lbnVJdGVtcy5sZW5ndGg9PT0wKXJldHVybjtiLnByZXZlbnREZWZhdWx0KCk7bGV0IHg9W107Zm9yKGxldCBtIG9mIHYuY29udGV4dE1lbnVJdGVtcyltLmRpdmlkZXI/eC5wdXNoKHtkaXZpZGVyOiEwfSk6eC5wdXNoKHtuYW1lOm0ubmFtZSxpY29uTmFtZTptLmljb25OYW1lLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBtLmFjdGlvbigpfSwiYWN0aW9uIiksZGlzYWJsZWQ6bS5kaXNhYmxlZH0pO2F3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGIseCl9YWRkV2lkZ2V0KGIpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKHY9PnYuaWQhPT1iLmlkKSx0aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyxiXX11cGRhdGVXaWRnZXQoYix2KXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcCh4PT54LmlkPT09Yj97Li4ueCwuLi52fTp4KX1yZW1vdmVXaWRnZXQoYil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIodj0+di5pZCE9PWIpfWdldFdpZGdldChiKXtyZXR1cm4gdGhpcy53aWRnZXRzLmZpbmQodj0+di5pZD09PWIpfWNsZWFyV2lkZ2V0cygpe3RoaXMud2lkZ2V0cz1bXX1hZGRBY3Rpb24oYil7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIodj0+di5pZCE9PWIuaWQpLHRoaXMuYWN0aW9ucz1bLi4udGhpcy5hY3Rpb25zLGJdfXJlbW92ZUFjdGlvbihiKXt0aGlzLmFjdGlvbnM9dGhpcy5hY3Rpb25zLmZpbHRlcih2PT52LmlkIT09Yil9Y2xlYXJBY3Rpb25zKCl7dGhpcy5hY3Rpb25zPVtdfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx6Wih0aGlzLHUpfXN0YXRpY3t6WihhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgU2RhPWcoKCk9PntFZXQoKX0pO3ZhciBfZGEsTWRhPWcoKCk9PntwZSgpO19kYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tYmFja2dyb3VuZCB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luOiAzMnB4IDAgMTZweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7CiAgICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1iYWNrZ3JvdW5kIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5EZWZhdWx0IFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGFuZWwgQ29tcG9uZW50In0gLnN1YnRpdGxlPSR7IlRoZSBkZWZhdWx0IHBhbmVsIHZhcmlhbnQgd2l0aCBzaGFkY24taW5zcGlyZWQgc3R5bGluZyJ9PgogICAgICAgIDxwPlRoZSBwYW5lbCBjb21wb25lbnQgYXV0b21hdGljYWxseSBmb2xsb3dzIHRoZSB0aGVtZSBhbmQgcHJvdmlkZXMgY29uc2lzdGVudCBzdHlsaW5nIGZvciBncm91cGVkIGNvbnRlbnQuPC9wPgogICAgICAgIDxwPkl0J3MgcGVyZmVjdCBmb3IgY3JlYXRpbmcgc2VjdGlvbnMgaW4geW91ciBhcHBsaWNhdGlvbiB3aXRoIHByb3BlciBzcGFjaW5nIGFuZCBib3JkZXJzLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIE92ZXJ2aWV3In0gLnN1YnRpdGxlPSR7IktleSBjYXBhYmlsaXRpZXMifT4KICAgICAgICAgIDxwPkdyaWQgbGF5b3V0cyB3b3JrIGdyZWF0IHdpdGggcGFuZWxzIGZvciBjcmVhdGluZyBkYXNoYm9hcmRzIGFuZCBmZWF0dXJlIHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MZWFybiBNb3JlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlF1aWNrIEFjdGlvbnMifSAuc3VidGl0bGU9JHsiQ29tbW9uIHRhc2tzIn0+CiAgICAgICAgICA8cD5FYWNoIHBhbmVsIG1haW50YWlucyBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHN0eWxpbmcgYWNyb3NzIHlvdXIgYXBwbGljYXRpb24uPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkdldCBTdGFydGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBWYXJpYW50czwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGVmYXVsdCBWYXJpYW50In0gLnZhcmlhbnQ9JHsiZGVmYXVsdCJ9PgogICAgICAgIDxwPlRoZSBkZWZhdWx0IHZhcmlhbnQgaGFzIGEgd2hpdGUgYmFja2dyb3VuZCwgc3VidGxlIGJvcmRlciwgYW5kIG1pbmltYWwgc2hhZG93LiBJdCdzIHRoZSBzdGFuZGFyZCBjaG9pY2UgZm9yIG1vc3QgY29udGVudC48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9ImRlZmF1bHQiPC9jb2RlPiBvciBvbWl0IHRoZSB2YXJpYW50IHByb3BlcnR5LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik91dGxpbmUgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJUcmFuc3BhcmVudCBiYWNrZ3JvdW5kIHdpdGggYm9yZGVyIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgIDxwPlRoZSBvdXRsaW5lIHZhcmlhbnQgcmVtb3ZlcyB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgc2hhZG93LCBrZWVwaW5nIG9ubHkgdGhlIGJvcmRlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Im91dGxpbmUiPC9jb2RlPiBmb3IgYSBsaWdodGVyIHZpc3VhbCB3ZWlnaHQuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiR2hvc3QgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJNaW5pbWFsIHN0eWxpbmcgZm9yIHN1YnRsZSBzZWN0aW9ucyJ9IC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgPHA+VGhlIGdob3N0IHZhcmlhbnQgaGFzIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kIGJ5IGRlZmF1bHQsIG9ubHkgc2hvd2luZyBhIHN1YnRsZSBiYWNrZ3JvdW5kIG9uIGhvdmVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZ2hvc3QiPC9jb2RlPiBmb3IgdGhlIG1vc3QgbWluaW1hbCBhcHBlYXJhbmNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBTaXplczwvaDI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLTNjb2wiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTbWFsbCBQYW5lbCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5Db21wYWN0IHBhZGRpbmcgZm9yIGRlbnNlIGxheW91dHMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9InNtIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJNZWRpdW0gUGFuZWwifSAuc2l6ZT0keyJtZCJ9PgogICAgICAgICAgPHA+RGVmYXVsdCBzaXplIHdpdGggYmFsYW5jZWQgc3BhY2luZy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibWQiPC9jb2RlPiBvciBvbWl0LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhcmdlIFBhbmVsIn0gLnNpemU9JHsibGcifT4KICAgICAgICAgIDxwPkdlbmVyb3VzIHBhZGRpbmcgZm9yIHByb21pbmVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibGciPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db21wbGV4IEV4YW1wbGVzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiUGFuZWxzIHdvcmsgZ3JlYXQgZm9yIG9yZ2FuaXppbmcgZm9ybSBzZWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJEZXNjcmlwdGlvbiJ9IC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIAogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifSAKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIERldmVsb3BtZW50IixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHAiLGtleToibW9iaWxlIn0se29wdGlvbjoiRGVza3RvcCBTb2Z0d2FyZSIsa2V5OiJkZXNrdG9wIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNyZWF0ZSBQcm9qZWN0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVscyJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgY2FuIGJlIG5lc3RlZCBmb3IgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbiJ9PgogICAgICAgIDxwPllvdSBjYW4gbmVzdCBwYW5lbHMgdG8gY3JlYXRlIG1vcmUgY29tcGxleCBsYXlvdXRzOjwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDEifSAudmFyaWFudD0keyJvdXRsaW5lIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYSBuZXN0ZWQgcGFuZWwgd2l0aCBvdXRsaW5lIHZhcmlhbnQgYW5kIHNtYWxsIHNpemUuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDIifSAudmFyaWFudD0keyJnaG9zdCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGFub3RoZXIgbmVzdGVkIHBhbmVsIHdpdGggZ2hvc3QgdmFyaWFudC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVudGl0bGVkIFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD5QYW5lbHMgd29yayBncmVhdCBldmVuIHdpdGhvdXQgYSB0aXRsZSBmb3Igc2ltcGxlIGNvbnRlbnQgZ3JvdXBpbmcuPC9wPgogICAgICAgIDxwPlRoZXkgcHJvdmlkZSB2aXN1YWwgc2VwYXJhdGlvbiBhbmQgY29uc2lzdGVudCBwYWRkaW5nIHRocm91Z2hvdXQgeW91ciBpbnRlcmZhY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+Q3VzdG9tIENvbnRlbnQ8L2g0PgogICAgICAgICAgPHA+WW91IGNhbiBhZGQgeW91ciBvd24gaGVhZGluZ3MgYW5kIHN0cnVjdHVyZSB3aXRoaW4gdW50aXRsZWQgcGFuZWxzLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPk1pbmltYWwgU3R5bGU8L2g0PgogICAgICAgICAgPHA+R2hvc3QgcGFuZWxzIHdpdGhvdXQgdGl0bGVzIGNyZWF0ZSB2ZXJ5IHN1YnRsZSBjb250ZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgeVdhLHdXYSxQZXQsaW5lLE5hLCQ4LGtXYSxTV2EsemRhLF9XYSxNV2EsUVhyLEpYcixDcj1nKCgpPT57cGUoKTt5V2E9IkdlaXN0IFNhbnMiLHdXYT0iSW50ZWwgT25lIE1vbm8iLFBldD1gJyR7eVdhfScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgLGluZT1gJyR7d1dhfScsICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgJ0Ryb2lkIFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZWAsTmE9YWEoUGV0KSwkOD1hYShpbmUpLGtXYT0iQ2FsIFNhbnMiLFNXYT1gJyR7a1dhfScsICR7UGV0fWAsemRhPWFhKFNXYSksX1dhPSJSb2JvdG8gU2xhYiIsTVdhPWAnJHtfV2F9JywgR2VvcmdpYSwgc2VyaWZgLFFYcj1hYShNV2EpLEpYcj1hYShgCiAgZm9udC1mYW1pbHk6ICR7UGV0fTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2N2MTEnLCAndG51bScsICdjdjA1JyAxOwpgKX0pO3ZhciBvdixXMSxDZGEsZm89ZygoKT0+e3BlKCk7TWRhKCk7Q3IoKTtwdCgpO292PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxXMT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQ2RhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1wYW5lbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzUGFuZWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHthdHRyaWJ1dGU6ITF9KV0sb3YodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4idGl0bGUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy50aXRsZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnRpdGxlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxvdih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1YnRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzdWJ0aXRsZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnN1YnRpdGxlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3VidGl0bGU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLG92KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFyaWFudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4idmFyaWFudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnZhcmlhbnQsImdldCIpLHNldDppKChfLE8pPT57Xy52YXJpYW50PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxvdih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNpemUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zaXplLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksb3YodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydW5BZnRlclJlbmRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icnVuQWZ0ZXJSZW5kZXIiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5ydW5BZnRlclJlbmRlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnJ1bkFmdGVyUmVuZGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxvdihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPV9kYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPVcxKHRoaXMsbywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKEMpe3RoaXMuI2U9Q30jdD0oVzEodGhpcyxsKSxXMSh0aGlzLGQsIiIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3VidGl0bGUoQyl7dGhpcy4jdD1DfSNhPShXMSh0aGlzLHUpLFcxKHRoaXMsYiwiZGVmYXVsdCIpKTtnZXQgdmFyaWFudCgpe3JldHVybiB0aGlzLiNhfXNldCB2YXJpYW50KEMpe3RoaXMuI2E9Q30jcz0oVzEodGhpcyx2KSxXMSh0aGlzLG0sIm1kIikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNpemUoQyl7dGhpcy4jcz1DfSNpPShXMSh0aGlzLGYpLFcxKHRoaXMsTSx2b2lkIDApKTtnZXQgcnVuQWZ0ZXJSZW5kZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcnVuQWZ0ZXJSZW5kZXIoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLyogVmFyaWFudDogZGVmYXVsdCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdKSB7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgaHNsKDAgMCUgMCUgLyAwLjA1KTsKICAgICAgfQoKICAgICAgLyogVmFyaWFudDogb3V0bGluZSAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgfQoKICAgICAgLyogVmFyaWFudDogZ2hvc3QgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Imdob3N0Il0pIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLyogU2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3NpemU9ImxnIl0pIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuaGVhZGVyOmVtcHR5IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIFRpdGxlIHNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBtYXJnaW46IDRweCAwIDAgMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIFN1YnRpdGxlIHNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDg0LjklKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQoKICAgICAgLyogQ29udGVudCBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5jb250ZW50IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICB9CgogICAgICAvKiBSZW1vdmUgbWFyZ2lucyBmcm9tIGZpcnN0IGFuZCBsYXN0IGNoaWxkcmVuICovCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmZpcnN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgOjpzbG90dGVkKCo6bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZGVmYXVsdCB2YXJpYW50ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJkZWZhdWx0Il06aG92ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3Igb3V0bGluZSB2YXJpYW50ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJvdXRsaW5lIl06aG92ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA3LjglKSIpfTsKICAgICAgfQoKICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBnaG9zdCB2YXJpYW50ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdOmhvdmVyKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogRm9jdXMgc3RhdGVzICovCiAgICAgIDpob3N0KDpmb2N1cy13aXRoaW4pIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE5lc3RlZCBwYW5lbHMgc3BhY2luZyAqLwogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbCkgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChkZWVzLXBhbmVsOmZpcnN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgJHt0aGlzLnRpdGxlP3dgPGgzIGNsYXNzPSJ0aXRsZSI+JHt0aGlzLnRpdGxlfTwvaDM+YDoiIn0KICAgICAgICAke3RoaXMuc3VidGl0bGU/d2A8cCBjbGFzcz0ic3VidGl0bGUiPiR7dGhpcy5zdWJ0aXRsZX08L3A+YDoiIn0KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMucnVuQWZ0ZXJSZW5kZXImJmF3YWl0IHRoaXMucnVuQWZ0ZXJSZW5kZXIodGhpcyl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFcxKHRoaXMseil9c3RhdGlje1cxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBUZGEsSWV0LCRkYSxEZGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO0lldD1pKHM9PkFycmF5LmZyb20oe2xlbmd0aDpzfSwoZSx0KT0+KHtpZDp0LHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApLGxhYmVsOmAke3R9YH0pKSwiZ2VuZXJhdGVDcHVDb3JlcyIpLCRkYT1pKCgpPT53KFRkYXx8KFRkYT1iYyhbYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICBgLGAKICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iYWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IHBhZGRpbmc6IDEycHg7IGJhY2tncm91bmQ6IGAsIjsgYm9yZGVyLXJhZGl1czogNnB4OyBmb250LXNpemU6IDE0cHg7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGNvbG9yOiAiLGA7Ij4KICAgICAgICAgIDxlbT5DbGljayBvbiB0aWxlIGFjdGlvbnMgb3IgZ3JpZCBhY3Rpb25zIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb25maWciPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPkNvbmZpZ3VyYXRpb24gT3B0aW9uczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgIEVhY2ggdGlsZSB0eXBlIHN1cHBvcnRzIGRpZmZlcmVudCBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOiA4cHggMDsgcGFkZGluZy1sZWZ0OiAyMHB4OyI+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5OdW1iZXI6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+R2F1Z2U6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCBnYXVnZU9wdGlvbnMgKG1pbiwgbWF4LCB0aHJlc2hvbGRzKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5QZXJjZW50YWdlOjwvc3Ryb25nPiB2YWx1ZSAoMC0xMDApLCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VHJlbmQ6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCB0cmVuZERhdGEgYXJyYXksIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRleHQ6PC9zdHJvbmc+IHZhbHVlIChzdHJpbmcpLCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDE2cHggMDsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyI+Q29tcGFjdCBMYXlvdXQgKDE4MHB4IHRpbGVzKTwvaDQ+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMjRweCAwIDE2cHggMDsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyI+U3BhY2lvdXMgTGF5b3V0ICgzMjBweCB0aWxlcyk8L2g0PgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIGlkPSJjcHUtY29yZXMtZ3JpZCIKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZ3JpZCIKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+YCxgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgoKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbmZpZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+UGFydGl0aW9uIFRpbGUgUHJvcGVydGllczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOiA4cHggMDsgcGFkZGluZy1sZWZ0OiAyMHB4OyI+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wYXJ0aXRpb25EYXRhLnVzZWQ6PC9zdHJvbmc+IFVzZWQgc3BhY2UgaW4gYnl0ZXMgKGF1dG8tZm9ybWF0dGVkKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wYXJ0aXRpb25EYXRhLnRvdGFsOjwvc3Ryb25nPiBUb3RhbCBjYXBhY2l0eSBpbiBieXRlczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wYXJ0aXRpb25EYXRhLmZpbGVzeXN0ZW06PC9zdHJvbmc+IEZpbGVzeXN0ZW0gdHlwZSAoZXh0NCwgeGZzLCBudGZzKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wYXJ0aXRpb25EYXRhLm1vdW50UG9pbnQ6PC9zdHJvbmc+IE1vdW50IHBvaW50IHBhdGggKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICBDb2xvciB0aHJlc2hvbGRzOiBOb3JtYWwgKCZsdDs3NSUpLCBXYXJuaW5nICg3NS05MCUpLCBDcml0aWNhbCAoJmd0OzkwJSkKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5EaXNrIFRpbGUgUHJvcGVydGllczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOiA4cHggMDsgcGFkZGluZy1sZWZ0OiAyMHB4OyI+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5jYXBhY2l0eTo8L3N0cm9uZz4gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEubW9kZWw6PC9zdHJvbmc+IERpc2sgbW9kZWwgbmFtZSAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLnR5cGU6PC9zdHJvbmc+IERpc2sgdHlwZTogJ3NzZCcsICdoZGQnLCBvciAnbnZtZSc8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuaW9wczo8L3N0cm9uZz4gUmVhZC93cml0ZSBJT1BTIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuaGVhbHRoOjwvc3Ryb25nPiBIZWFsdGggcGVyY2VudGFnZSAwLTEwMCAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIEhlYWx0aCB0aHJlc2hvbGRzOiBHb29kICg3MC0xMDAlKSwgV2FybmluZyAoMzAtNzAlKSwgQ3JpdGljYWwgKCZsdDszMCUpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgoKICAgIDxzY3JpcHQ+CiAgICAgIC8vIENsZWFudXAgbGl2ZSB1cGRhdGVzIG9uIHBhZ2UgdW5sb2FkCiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCAoKSA9PiB7CiAgICAgICAgaWYgKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpIHsKICAgICAgICAgIGNsZWFySW50ZXJ2YWwoKHdpbmRvdyBhcyBhbnkpLmxpdmVVcGRhdGVJbnRlcnZhbCk7CiAgICAgICAgfQogICAgICB9KTsKICAgIDxcL3NjcmlwdD4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYF0pKSxKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGlsZS1jb25maWcgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy1zZWN0aW9uIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb2RlLWJsb2NrIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICAgIH0KICAgICAgYCwiMS4gQ29tcHJlaGVuc2l2ZSBEYXNoYm9hcmQiLCJGdWxsLWZlYXR1cmVkIHN0YXRzIGdyaWQgd2l0aCB2YXJpb3VzIHRpbGUgdHlwZXMsIGFjdGlvbnMsIGFuZCBMdWNpZGUgaWNvbnMiLFt7aWQ6InJldmVudWUiLHRpdGxlOiJUb3RhbCBSZXZlbnVlIix2YWx1ZToxMjU0MjAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6ZG9sbGFyLXNpZ24iLGRlc2NyaXB0aW9uOiIrMTIuNSUgZnJvbSBsYXN0IG1vbnRoIixhY3Rpb25zOlt7bmFtZToiVmlldyBEZXRhaWxzIixpY29uTmFtZToibHVjaWRlOnRyZW5kaW5nLXVwIixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD0iVmlld2luZyByZXZlbnVlIGRldGFpbHM6ICQxMjUsNDIwICgrMTIuNSUpIil9LCJhY3Rpb24iKX0se25hbWU6IkV4cG9ydCBEYXRhIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD0iRXhwb3J0aW5nIHJldmVudWUgZGF0YSB0byBDU1YuLi4iKX0sImFjdGlvbiIpfV19LHtpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjM4NDcsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGRlc2NyaXB0aW9uOiIzMjQgbmV3IHRoaXMgd2VlayIsYWN0aW9uczpbe25hbWU6IlZpZXcgVXNlciBMaXN0IixpY29uTmFtZToibHVjaWRlOmxpc3QiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3MmJihzLnRleHRDb250ZW50PSJPcGVuaW5nIHVzZXIgbGlzdC4uLiIpfSwiYWN0aW9uIil9XX0se2lkOiJjcHUiLHRpdGxlOiJDUFUgVXNhZ2UiLHZhbHVlOjczLHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Y3B1IixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NjAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJzdG9yYWdlIix0aXRsZToiU3RvcmFnZSBVc2VkIix2YWx1ZTo2NSx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGVzY3JpcHRpb246IjY1MCBHQiBvZiAxIFRCIn0se2lkOiJsYXRlbmN5Iix0aXRsZToiUmVzcG9uc2UgVGltZSIsdmFsdWU6MTQyLHVuaXQ6Im1zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5Iix0cmVuZERhdGE6WzE1MCwxNDUsMTQ4LDE0MiwxMzgsMTQwLDEzNSwxNDUsMTQyXSxkZXNjcmlwdGlvbjoiUDk1In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZToiOTkuOTUlIix0eXBlOiJ0ZXh0IixpY29uOiJsdWNpZGU6Y2hlY2stY2lyY2xlIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZGVzY3JpcHRpb246Ikxhc3QgMzAgZGF5cyJ9XSxbe25hbWU6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc3RhdHNncmlkIik7cyYmKHMuc3R5bGUub3BhY2l0eT0iMC41IixzZXRUaW1lb3V0KCgpPT57cy5zdHlsZS5vcGFjaXR5PSIxIn0sMzAwKSl9LCJhY3Rpb24iKX0se25hbWU6IkV4cG9ydCIsaWNvbk5hbWU6Imx1Y2lkZTpzaGFyZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9IkV4cG9ydGluZyBkYXNoYm9hcmQgcmVwb3J0Li4uIil9LCJhY3Rpb24iKX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD0iT3BlbmluZyBkYXNoYm9hcmQgc2V0dGluZ3MuLi4iKX0sImFjdGlvbiIpfV0sMjUwLDE2LGguYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKSxoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIiksIjIuIFRpbGUgVHlwZXMiLCJEaWZmZXJlbnQgdmlzdWFsaXphdGlvbiB0eXBlcyBhdmFpbGFibGUgaW4gdGhlIHN0YXRzIGdyaWQiLFt7aWQ6Im51bWJlci1leGFtcGxlIix0aXRsZToiTnVtYmVyIFRpbGUiLHZhbHVlOjQyMTk1LHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmhhc2giLGRlc2NyaXB0aW9uOiJTaW1wbGUgbnVtZXJpYyBkaXNwbGF5In0se2lkOiJnYXVnZS1leGFtcGxlIix0aXRsZToiR2F1Z2UgVGlsZSIsdmFsdWU6NjgsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpnYXVnZSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjUwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoicGVyY2VudGFnZS1leGFtcGxlIix0aXRsZToiUGVyY2VudGFnZSBUaWxlIix2YWx1ZTo3OCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6cGVyY2VudCIsZGVzY3JpcHRpb246IlByb2dyZXNzIGJhciB2aXN1YWxpemF0aW9uIn0se2lkOiJ0cmVuZC1leGFtcGxlIix0aXRsZToiVHJlbmQgVGlsZSIsdmFsdWU6ODkyLHVuaXQ6Im9wcy9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnRyZW5kaW5nLXVwIix0cmVuZERhdGE6WzcyMCw3NTAsNzgwLDc5NSw4MTAsODM1LDg1MCw4NjUsODgwLDg5Ml0sZGVzY3JpcHRpb246ImF2ZyJ9LHtpZDoidGV4dC1leGFtcGxlIix0aXRsZToiVGV4dCBUaWxlIix2YWx1ZToiT3BlcmF0aW9uYWwiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTppbmZvIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZGVzY3JpcHRpb246IlN0YXR1cyBkaXNwbGF5In1dLDI4MCwxNiwiMy4gR3JpZCBDb25maWd1cmF0aW9ucyIsIkRpZmZlcmVudCBsYXlvdXQgb3B0aW9ucyBhbmQgcmVzcG9uc2l2ZSBiZWhhdmlvciIsW3tpZDoiMSIsdGl0bGU6Ik9yZGVycyIsdmFsdWU6MTU2LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNob3BwaW5nLWNhcnQifSx7aWQ6IjIiLHRpdGxlOiJSZXZlbnVlIix2YWx1ZTo4NDIwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmRvbGxhci1zaWduIn0se2lkOiIzIix0aXRsZToiVXNlcnMiLHZhbHVlOjQyMyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyJ9LHtpZDoiNCIsdGl0bGU6Ikdyb3d0aCIsdmFsdWU6MTIuNSx1bml0OiIlIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp0cmVuZGluZy11cCIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifV0sMTgwLDEyLFt7aWQ6InNwYWNpb3VzMSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6MTg0NTAwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmNyZWRpdC1jYXJkIixkZXNjcmlwdGlvbjoiVG90YWwgcmV2ZW51ZSB0aGlzIG1vbnRoIn0se2lkOiJzcGFjaW91czIiLHRpdGxlOiJDdXN0b21lciBTYXRpc2ZhY3Rpb24iLHZhbHVlOjk0LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzbWlsZSIsZGVzY3JpcHRpb246IkJhc2VkIG9uIDEsMjM0IHJldmlld3MifSx7aWQ6InNwYWNpb3VzMyIsdGl0bGU6IlNlcnZlciBSZXNwb25zZSIsdmFsdWU6OTgsdW5pdDoibXMiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6c2VydmVyIix0cmVuZERhdGE6WzEwNSwxMDIsMTAwLDk5LDk4LDk4LDk3LDk4XSxkZXNjcmlwdGlvbjoiYXZnIHJlc3BvbnNlIHRpbWUifV0sMzIwLDIwLCI0LiBDUFUgQ29yZXMgVmlzdWFsaXphdGlvbiIsIlZlcnRpY2FsIGJhciB2aXN1YWxpemF0aW9uIGZvciBtdWx0aS1jb3JlIENQVSB1c2FnZSB3aXRoIGNvbHVtbiBzcGFubmluZyIsW3tpZDoiY3B1LWNvcmVzLTgiLHRpdGxlOiJDUFUgQ29yZXMgKDgtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6SWV0KDgpLGRlc2NyaXB0aW9uOiJJbnRlbCBpNyAtIDggY29yZXMifSx7aWQ6Im1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjgsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIixkZXNjcmlwdGlvbjoiMTMuNiBHQiBvZiAyMCBHQiJ9LHtpZDoiY3B1LWNvcmVzLTE2Iix0aXRsZToiQ1BVIENvcmVzICgxNi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOmNwdSIsY29sdW1uU3BhbjoyLGNvcmVzRGF0YTpJZXQoMTYpLGRlc2NyaXB0aW9uOiJBTUQgUnl6ZW4gOSAtIDE2IGNvcmVzIn0se2lkOiJuZXR3b3JrIix0aXRsZToiTmV0d29yayBJL08iLHZhbHVlOjI0NSx1bml0OiJNQi9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOm5ldHdvcmsiLHRyZW5kRGF0YTpbMjAwLDIyMCwyMzUsMjQwLDIzOCwyNDVdLGRlc2NyaXB0aW9uOiJ0aHJvdWdocHV0In0se2lkOiJjcHUtY29yZXMtMzIiLHRpdGxlOiJTZXJ2ZXIgQ1BVICgzMi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sdW1uU3BhbjozLGNvcmVzRGF0YTpJZXQoMzIpLGRlc2NyaXB0aW9uOiJBTUQgRVBZQyAtIDMyIGNvcmVzIn0se2lkOiJkaXNrIix0aXRsZToiRGlzayBVc2FnZSIsdmFsdWU6NDIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRlc2NyaXB0aW9uOiI0MjAgR0Igb2YgMSBUQiJ9XSxbe25hbWU6IlJhbmRvbWl6ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzaHVmZmxlIixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NwdS1jb3Jlcy1ncmlkIik7aWYoIXMpcmV0dXJuO2xldCBlPXMudGlsZXMubWFwKHQ9PnQudHlwZT09PSJjcHVDb3JlcyImJnQuY29yZXNEYXRhP3suLi50LGNvcmVzRGF0YTp0LmNvcmVzRGF0YS5tYXAoYT0+KHsuLi5hLHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApfSkpfTp0KTtzLnRpbGVzPWV9LCJhY3Rpb24iKX1dLDI1MCwxNiwiNS4gSW50ZXJhY3RpdmUgRmVhdHVyZXMiLCJUaWxlcyB3aXRoIGFjdGlvbnMgYW5kIHJlYWwtdGltZSB1cGRhdGVzIixbe2lkOiJsaXZlLWNwdSIsdGl0bGU6IkxpdmUgQ1BVIix2YWx1ZTo0NSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoibGl2ZS1yZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6ODkyLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbODUwLDg2MCw4NzAsODgwLDg4NSw4OTAsODkyXX0se2lkOiJsaXZlLW1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIn0se2lkOiJjb3VudGVyIix0aXRsZToiRXZlbnQgQ291bnRlciIsdmFsdWU6MCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp6YXAiLGFjdGlvbnM6W3tuYW1lOiJJbmNyZW1lbnQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYoIXMpcmV0dXJuO2xldCBlPXMudGlsZXMuZmluZCh0PT50LmlkPT09ImNvdW50ZXIiKTtlLnZhbHVlPXR5cGVvZiBlLnZhbHVlPT0ibnVtYmVyIj9lLnZhbHVlKzE6MSxzLnRpbGVzPVsuLi5zLnRpbGVzXX0sImFjdGlvbiIpfSx7bmFtZToiUmVzZXQiLGljb25OYW1lOiJsdWNpZGU6cm90YXRlLWNjdyIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYoIXMpcmV0dXJuO2xldCBlPXMudGlsZXMuZmluZCh0PT50LmlkPT09ImNvdW50ZXIiKTtlLnZhbHVlPTAscy50aWxlcz1bLi4ucy50aWxlc119LCJhY3Rpb24iKX1dfV0sW3tuYW1lOiJTdGFydCBMaXZlIFVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cGxheSIsYWN0aW9uOmkoYXN5bmMgZnVuY3Rpb24oKXt3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPyhjbGVhckludGVydmFsKHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWwpLHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9bnVsbCx0aGlzLm5hbWU9IlN0YXJ0IExpdmUgVXBkYXRlcyIsdGhpcy5pY29uTmFtZT0ibHVjaWRlOnBsYXkiKTood2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYocyl7bGV0IGU9Wy4uLnMudGlsZXNdLHQ9ZS5maW5kKG89Pm8uaWQ9PT0ibGl2ZS1jcHUiKTt0LnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLHQudmFsdWUrKE1hdGgucmFuZG9tKCkqMjAtMTApKSk7bGV0IGE9ZS5maW5kKG89Pm8uaWQ9PT0ibGl2ZS1yZXF1ZXN0cyIpLHI9YS52YWx1ZStNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqNTAtMjUpO2EudmFsdWU9TWF0aC5tYXgoODAwLHIpLGEudHJlbmREYXRhPVsuLi5hLnRyZW5kRGF0YS5zbGljZSgxKSxhLnZhbHVlXTtsZXQgbj1lLmZpbmQobz0+by5pZD09PSJsaXZlLW1lbW9yeSIpO24udmFsdWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsbi52YWx1ZSsoTWF0aC5yYW5kb20oKSoxMC01KSkpLHMudGlsZXM9ZX19LDFlMyksdGhpcy5uYW1lPSJTdG9wIExpdmUgVXBkYXRlcyIsdGhpcy5pY29uTmFtZT0ibHVjaWRlOnBhdXNlIil9LCJhY3Rpb24iKX1dLDI1MCwxNiwiNi4gQ29kZSBFeGFtcGxlIiwiSG93IHRvIGltcGxlbWVudCBhIHN0YXRzIGdyaWQgd2l0aCBUeXBlU2NyaXB0IixgY29uc3QgdGlsZXM6IElTdGF0c1RpbGVbXSA9IFsKICB7CiAgICBpZDogJ3JldmVudWUnLAogICAgdGl0bGU6ICdUb3RhbCBSZXZlbnVlJywKICAgIHZhbHVlOiAxMjU0MjAsCiAgICB1bml0OiAnJCcsCiAgICB0eXBlOiAnbnVtYmVyJywKICAgIGljb246ICdsdWNpZGU6ZG9sbGFyLXNpZ24nLAogICAgZGVzY3JpcHRpb246ICcrMTIuNSUgZnJvbSBsYXN0IG1vbnRoJywKICAgIGFjdGlvbnM6IFsKICAgICAgewogICAgICAgIG5hbWU6ICdWaWV3IERldGFpbHMnLAogICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnRyZW5kaW5nLXVwJywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdWaWV3IHJldmVudWUgZGV0YWlscycpOwogICAgICAgIH0KICAgICAgfQogICAgXQogIH0sCiAgewogICAgaWQ6ICdjcHUnLAogICAgdGl0bGU6ICdDUFUgVXNhZ2UnLAogICAgdmFsdWU6IDczLAogICAgdW5pdDogJyUnLAogICAgdHlwZTogJ2dhdWdlJywKICAgIGljb246ICdsdWNpZGU6Y3B1JywKICAgIGdhdWdlT3B0aW9uczogewogICAgICBtaW46IDAsCiAgICAgIG1heDogMTAwLAogICAgICB0aHJlc2hvbGRzOiBbCiAgICAgICAgeyB2YWx1ZTogMCwgY29sb3I6ICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyB9LAogICAgICAgIHsgdmFsdWU6IDYwLCBjb2xvcjogJ2hzbCg0NS40IDkzLjQlIDQ3LjUlKScgfSwKICAgICAgICB7IHZhbHVlOiA4MCwgY29sb3I6ICdoc2woMCA4NC4yJSA2MC4yJSknIH0KICAgICAgXQogICAgfQogIH0KXTsKCi8vIFJlbmRlciB0aGUgc3RhdHMgZ3JpZApodG1sXGAKICA8ZGVlcy1zdGF0c2dyaWQKICAgIC50aWxlcz1cJHt0aWxlc30KICAgIC5taW5UaWxlV2lkdGg9XCR7MjUwfQogICAgLmdhcD1cJHsxNn0KICAgIC5ncmlkQWN0aW9ucz1cJHtbCiAgICAgIHsKICAgICAgICBuYW1lOiAnUmVmcmVzaCcsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaC1jdycsCiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUmVmcmVzaCcpCiAgICAgIH0KICAgIF19CiAgPjwvZGVlcy1zdGF0c2dyaWQ+ClxgO2AsIjcuIERpc2sgJiBTdG9yYWdlIFRpbGVzIiwiUGFydGl0aW9uIGFuZCBwaHlzaWNhbCBkaXNrIHZpc3VhbGl6YXRpb24gdGlsZXMiLFt7aWQ6InJvb3QtcGFydGl0aW9uIix0aXRsZToiUm9vdCBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6Zm9sZGVyLXJvb3QiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6Njk4MzQxNDI1MTUyLHRvdGFsOjEwNzM3NDE4MjRlMyxmaWxlc3lzdGVtOiJleHQ0Iixtb3VudFBvaW50OiIvIn19LHtpZDoiaG9tZS1wYXJ0aXRpb24iLHRpdGxlOiJIb21lIFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpob21lIixwYXJ0aXRpb25EYXRhOnt1c2VkOjIxNDc0ODM2NDgwMCx0b3RhbDo1MzY4NzA5MTJlMyxmaWxlc3lzdGVtOiJleHQ0Iixtb3VudFBvaW50OiIvaG9tZSJ9fSx7aWQ6ImRhdGEtcGFydGl0aW9uIix0aXRsZToiRGF0YSBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6MTkzMjczNTI4MzIwMCx0b3RhbDoyMTQ3NDgzNjQ4ZTMsZmlsZXN5c3RlbToieGZzIixtb3VudFBvaW50OiIvZGF0YSJ9fSx7aWQ6Im52bWUtc3NkIix0aXRsZToiUHJpbWFyeSBOVk1lIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixjb2x1bW5TcGFuOjIsZGlza0RhdGE6e2NhcGFjaXR5OjJlMTIsbW9kZWw6IlNhbXN1bmcgOTkwIFBybyIsdHlwZToibnZtZSIsaW9wczp7cmVhZDo3NDUwLHdyaXRlOjY5MDB9LGhlYWx0aDo5OH19LHtpZDoic2F0YS1zc2QiLHRpdGxlOiJTZWNvbmRhcnkgU1NEIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkaXNrRGF0YTp7Y2FwYWNpdHk6MWUxMixtb2RlbDoiQ3J1Y2lhbCBNWDUwMCIsdHlwZToic3NkIixpb3BzOntyZWFkOjU2MCx3cml0ZTo1MTB9LGhlYWx0aDo4NX19LHtpZDoiaGRkLXN0b3JhZ2UiLHRpdGxlOiJCYWNrdXAgSEREIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTphcmNoaXZlIixkaXNrRGF0YTp7Y2FwYWNpdHk6OGUxMixtb2RlbDoiU2VhZ2F0ZSBJcm9uV29sZiIsdHlwZToiaGRkIixpb3BzOntyZWFkOjIxMCx3cml0ZToxOTV9LGhlYWx0aDo0Mn19XSwyODAsMTYpLCJkZW1vRnVuYyIpfSk7dmFyIGdoLHJuLE90LHppPWcoKCk9PntwZSgpO2t0KCk7Z2g9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHJuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxPdD0oKCk9PntsZXQgcz13ZSxlLHQ9W10sYT1bXSxyLG49W10sbz1bXSxsLHA9W10sZD1bXSx1LGM9W10sYj1bXSx2LHg9W10sbT1bXSxmLHk9W10sTT1bXSx6LE49W10sQz1bXSxfLE89W10sJD1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dEJhc2UiKX1zdGF0aWN7bGV0IEg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bTCh7dHlwZTpTdHJpbmd9KV0scj1bTCh7dHlwZTpTdHJpbmd9KV0sbD1bTCh7dHlwZTpTdHJpbmd9KV0sdT1bTCh7dHlwZTpTdHJpbmd9KV0sdj1bTCh7dHlwZTpCb29sZWFufSldLGY9W0woe3R5cGU6Qm9vbGVhbn0pXSx6PVtMKHt0eXBlOlN0cmluZ30pXSxfPVtMKHt0eXBlOlN0cmluZ30pXSxnaCh0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxheW91dE1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImxheW91dE1vZGUiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5sYXlvdXRNb2RlLCJnZXQiKSxzZXQ6aSgoayxTKT0+e2subGF5b3V0TW9kZT1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LHQsYSksZ2godGhpcyxudWxsLHIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbFBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJsYWJlbFBvc2l0aW9uImluIGssImhhcyIpLGdldDppKGs9PmsubGFiZWxQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLmxhYmVsUG9zaXRpb249U30sInNldCIpfSxtZXRhZGF0YTpIfSxuLG8pLGdoKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToia2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJrZXkiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5rZXksImdldCIpLHNldDppKChrLFMpPT57ay5rZXk9U30sInNldCIpfSxtZXRhZGF0YTpIfSxwLGQpLGdoKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImxhYmVsImluIGssImhhcyIpLGdldDppKGs9PmsubGFiZWwsImdldCIpLHNldDppKChrLFMpPT57ay5sYWJlbD1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LGMsYiksZ2godGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4icmVxdWlyZWQiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5yZXF1aXJlZCwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLnJlcXVpcmVkPVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0seCxtKSxnaCh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJkaXNhYmxlZCJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLmRpc2FibGVkLCJnZXQiKSxzZXQ6aSgoayxTKT0+e2suZGlzYWJsZWQ9U30sInNldCIpfSxtZXRhZGF0YTpIfSx5LE0pLGdoKHRoaXMsbnVsbCx6LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImluZm9UZXh0ImluIGssImhhcyIpLGdldDppKGs9PmsuaW5mb1RleHQsImdldCIpLHNldDppKChrLFMpPT57ay5pbmZvVGV4dD1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LE4sQyksZ2godGhpcyxudWxsLF8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4iZGVzY3JpcHRpb24iaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5kZXNjcmlwdGlvbiwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLmRlc2NyaXB0aW9uPVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0sTywkKSxIJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkh9KX0jZT1ybih0aGlzLHQsImF1dG8iKTtnZXQgbGF5b3V0TW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBsYXlvdXRNb2RlKEgpe3RoaXMuI2U9SH0jdD0ocm4odGhpcyxhKSxybih0aGlzLG4sInRvcCIpKTtnZXQgbGFiZWxQb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBsYWJlbFBvc2l0aW9uKEgpe3RoaXMuI3Q9SH0jYT0ocm4odGhpcyxvKSxybih0aGlzLHAsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNhfXNldCBrZXkoSCl7dGhpcy4jYT1IfSNzPShybih0aGlzLGQpLHJuKHRoaXMsYyx2b2lkIDApKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgbGFiZWwoSCl7dGhpcy4jcz1IfSNpPShybih0aGlzLGIpLHJuKHRoaXMseCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNpfXNldCByZXF1aXJlZChIKXt0aGlzLiNpPUh9I3I9KHJuKHRoaXMsbSkscm4odGhpcyx5LCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRpc2FibGVkKEgpe3RoaXMuI3I9SH0jbz0ocm4odGhpcyxNKSxybih0aGlzLE4sdm9pZCAwKSk7Z2V0IGluZm9UZXh0KCl7cmV0dXJuIHRoaXMuI299c2V0IGluZm9UZXh0KEgpe3RoaXMuI289SH0jbj0ocm4odGhpcyxDKSxybih0aGlzLE8sdm9pZCAwKSk7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuI259c2V0IGRlc2NyaXB0aW9uKEgpe3RoaXMuI249SH1zdGF0aWMgZ2V0IGJhc2VTdHlsZXMoKXtyZXR1cm5bSmAKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0OiA4cHg7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwOiB2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCk7IC8qIDhweCAqLwogICAgICAgIH0KCiAgICAgICAgLyogRGVmYXVsdCBibG9jayBkaXNwbGF5IHdpdGggbm8gbWFyZ2lucyAtIHNwYWNpbmcgaXMgY29udGFpbmVyLWRyaXZlbiAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgLyogSG9yaXpvbnRhbCBsYXlvdXQgbW9kZSAtIGFjdGl2YXRlZCBieSBhdHRyaWJ1dGUgKi8KICAgICAgICA6aG9zdChbbGF5b3V0LW1vZGU9Imhvcml6b250YWwiXSkgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgcG9zaXRpb24gdmFyaWF0aW9ucyAqLwogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibm9uZSJdKSBkZWVzLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAvKiBEZXNjcmlwdGlvbiB0ZXh0IGJlbG93IGlucHV0ICovCiAgICAgICAgLmRlc2NyaXB0aW9uVGV4dCB7CiAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgfQogICAgICBgXX1jaGFuZ2VTdWJqZWN0PShybih0aGlzLCQpLG5ldyB1dC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpfWRldGVjdExheW91dE1vZGUoKXtpZih0aGlzLmxheW91dE1vZGUhPT0iYXV0byIpe3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsdGhpcy5sYXlvdXRNb2RlKTtyZXR1cm59bGV0IEg9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtIJiZILmhhc0F0dHJpYnV0ZSgiaG9yaXpvbnRhbC1sYXlvdXQiKT90aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJob3Jpem9udGFsIik6dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwidmVydGljYWwiKX11cGRhdGVkKEgpe3N1cGVyLnVwZGF0ZWQoSCksSC5oYXMoImxheW91dE1vZGUiKSYmdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCksSC5oYXMoImxhYmVsUG9zaXRpb24iKSYmdGhpcy5zZXRBdHRyaWJ1dGUoImxhYmVsLXBvc2l0aW9uIix0aGlzLmxhYmVsUG9zaXRpb24pfWFzeW5jIGZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITB9YXN5bmMgdW5mcmVlemUoKXt0aGlzLmRpc2FibGVkPSExfXJlbmRlckRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvblRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifX19KSgpfSk7dmFyIExkYSxFZGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO0Q4KCk7TGRhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1jaGVja2JveCIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0LWFsbC1idG4iKSxhPXMucXVlcnlTZWxlY3RvcigiI2NsZWFyLWFsbC1idG4iKTt0JiZhJiYodC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmZvckVhY2gocj0+eyFyLmRpc2FibGVkJiZyLmtleT8uc3RhcnRzV2l0aCgiZmVhdHVyZSIpJiYoci52YWx1ZT0hMCl9KX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKHI9Pnshci5kaXNhYmxlZCYmci5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKHIudmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hlY2tib3gtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWNoZWNrYm94ZXMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmVhdHVyZS1saXN0IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgQ2hlY2tib3hlcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgY2hlY2tib3ggZXhhbXBsZXMgd2l0aCB2YXJpb3VzIGxhYmVscyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiSSBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmtleT0keyJ0ZXJtcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpYmUgdG8gbmV3c2xldHRlciJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAua2V5PSR7Im5ld3NsZXR0ZXIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlY2VpdmUgZW1haWwgdXBkYXRlcyBhYm91dCB5b3VyIGFjY291bnQifQogICAgICAgICAgICAua2V5PSR7Im5vdGlmaWNhdGlvbnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNoZWNrYm94IFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgY2hlY2tib3ggc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRGVmYXVsdCBzdGF0ZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiQ2hlY2tlZCBzdGF0ZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgdW5jaGVja2VkIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgY2hlY2tlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIGNoZWNrYm94In0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtY2hlY2tib3hlcyI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBBIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEIifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25DIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBEIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFNlbGVjdGlvbiBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiB1c2UgY2FzZSBmb3IgZmVhdHVyZSB0b2dnbGVzIHdpdGggYmF0Y2ggb3BlcmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9InNlbGVjdC1hbGwtYnRuIiB0eXBlPSJzZWNvbmRhcnkiPlNlbGVjdCBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJjbGVhci1hbGwtYnRuIiB0eXBlPSJzZWNvbmRhcnkiPkNsZWFyIEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSBTdXBwb3J0In0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUxIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIE5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTIifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiVHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJBUEkgQWNjZXNzIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU0In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFkdmFuY2VkIEFuYWx5dGljcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlNSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByaXZhY3kgU2V0dGluZ3MgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDaGVja2JveGVzIGluIGEgdHlwaWNhbCBmb3JtIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXNlY3Rpb24iPgogICAgICAgICAgPGg0IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Qcml2YWN5IFByZWZlcmVuY2VzPC9oND4KCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJTaGFyZSBhbmFseXRpY3MgZGF0YSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkhlbHAgdXMgaW1wcm92ZSBieSBzaGFyaW5nIGFub255bW91cyB1c2FnZSBkYXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlBlcnNvbmFsaXplZCByZWNvbW1lbmRhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgc3VnZ2VzdGlvbnMgYmFzZWQgb24geW91ciBhY3Rpdml0eSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJNYXJrZXRpbmcgY29tbXVuaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIHByb21vdGlvbmFsIGVtYWlscyBhbmQgc3BlY2lhbCBvZmZlcnMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiVGhpcmQtcGFydHkgaW50ZWdyYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWxsb3cgYXBwcm92ZWQgcGFydG5lcnMgdG8gYWNjZXNzIHlvdXIgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2xpY2sgY2hlY2tib3hlcyB0byBzZWUgdmFsdWUgY2hhbmdlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRmVhdHVyZSB0b2dnbGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQGNoYW5nZVN1YmplY3Q9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoZWNrYm94LW91dHB1dCIpO2lmKGUmJnMuZGV0YWlsKXtsZXQgdD1zLmRldGFpbC5nZXRWYWx1ZSgpO2UudGV4dENvbnRlbnQ9YEZlYXR1cmUgaXMgJHt0PyJlbmFibGVkIjoiZGlzYWJsZWQifWB9fX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRlYnVnIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQGNoYW5nZVN1YmplY3Q9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2RlYnVnLW91dHB1dCIpO2lmKGUmJnMuZGV0YWlsKXtsZXQgdD1zLmRldGFpbC5nZXRWYWx1ZSgpO2UudGV4dENvbnRlbnQ9YERlYnVnIG1vZGU6ICR7dD8iT04iOiJPRkYifWB9fX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CgogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0iY2hlY2tib3gtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkZlYXR1cmUgaXMgZGlzYWJsZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRlYnVnLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0IiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyI+RGVidWcgbW9kZTogT0ZGPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBBZXQsQ1oscm5lLG9uZT1nKCgpPT57cGUoKTt6aSgpO0VkYSgpO0NyKCk7cHQoKTtBZXQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LENaPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxybmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWNoZWNrYm94IildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dENoZWNrYm94Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFufSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxBZXQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4idmFsdWUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di52YWx1ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnZhbHVlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxBZXQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRldGVybWluYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJpbmRldGVybWluYXRlImluIHYsImhhcyIpLGdldDppKHY9PnYuaW5kZXRlcm1pbmF0ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmluZGV0ZXJtaW5hdGU9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLEFldChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPUxkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9Q1oodGhpcyxvLCExKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoYil7dGhpcy4jZT1ifSN0PShDWih0aGlzLGwpLENaKHRoaXMsZCwhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZGV0ZXJtaW5hdGUoYil7dGhpcy4jdD1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxDWih0aGlzLHUpLHRoaXMubGFiZWxQb3NpdGlvbj0icmlnaHQifXN0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgICAqIHsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveCB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3guc2VsZWN0ZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgICB9CgogICAgICAgIC8qIENoZWNrbWFyayB1c2luZyBMdWNpZGUgaWNvbiBzdHlsZSAqLwogICAgICAgIC5jaGVja2JveCAuY2hlY2ttYXJrIHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIC5jaGVja21hcmsgewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCAuY2hlY2ttYXJrIHN2ZyB7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIHN0cm9rZTogd2hpdGU7CiAgICAgICAgICBzdHJva2Utd2lkdGg6IDM7CiAgICAgICAgfQoKICAgICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3guZGlzYWJsZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC8qIExhYmVsICovCiAgICAgICAgLmxhYmVsLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMnB4OwogICAgICAgICAgZmxleDogMTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLmNoZWNrYm94LWxhYmVsIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIEBjbGljaz0iJHt0aGlzLnRvZ2dsZVNlbGVjdGVkfSI+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0iY2hlY2tib3ggJHt0aGlzLnZhbHVlPyJzZWxlY3RlZCI6IiJ9ICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZUtleWRvd259IgogICAgICAgICAgPgogICAgICAgICAgICAke3RoaXMudmFsdWU/d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoZWNrbWFyayI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAgNkw5IDE3TDQgMTIiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgYDp0aGlzLmluZGV0ZXJtaW5hdGU/d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxMkgxOSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRpdiBjbGFzcz0iY2hlY2tib3gtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgdG9nZ2xlU2VsZWN0ZWQoKXt0aGlzLmRpc2FibGVkfHwodGhpcy52YWx1ZT0hdGhpcy52YWx1ZSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoYil7dGhpcy52YWx1ZT1ifWZvY3VzKCl7bGV0IGI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGVja2JveCIpO2ImJmIuZm9jdXMoKX1oYW5kbGVLZXlkb3duKGIpeyhiLmtleT09PSIgInx8Yi5rZXk9PT0iRW50ZXIiKSYmKGIucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZVNlbGVjdGVkKCkpfXN0YXRpY3tDWihhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgbnY9e307eXQobnYse2JyaWdodDooKT0+dmgsZGFyazooKT0+Ymh9KTt2YXIgYmgsdmgsRzE9ZygoKT0+e2JoPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMTI0NTIiLHRleHQ6IiNmZmZmZmYifSx2aD17Ymx1ZToiIzAwNTBiOSIsYmx1ZUFjdGl2ZToiIzAwNjlmMiIsYmx1ZU11dGVkOiIjMDA2OWYyIix0ZXh0OiIjMzMzMzMzIn19KTt2YXIgUGRhLElkYT1nKCgpPT57cGUoKTtKMCgpO1BkYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXNlY3Rpb24gaDMgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHAgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5IZWFkZXIgQnV0dG9uczwvaDM+CiAgICAgIDxwPk1vZGFscyBjYW4gaGF2ZSBvcHRpb25hbCBoZWFkZXIgYnV0dG9ucyBmb3IgaGVscCBhbmQgY2xvc2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIEhlbHAgQnV0dG9uIixzaG93SGVscEJ1dHRvbjohMCxvbkhlbHA6aShhc3luYygpPT57YXdhaXQgUWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiSGVscCIsd2lkdGg6InNtYWxsIixzaG93Q2xvc2VCdXR0b246ITAsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDp3YAogICAgICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSBoZWxwIGNvbnRlbnQgZm9yIHRoZSBtb2RhbC48L3A+CiAgICAgICAgICAgICAgICAgIDxwPllvdSBjYW4gcHJvdmlkZSBjb250ZXh0LXNwZWNpZmljIGhlbHAgaGVyZS48L3A+CiAgICAgICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiR290IGl0IixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgaGVscCBidXR0b24gaW4gdGhlIGhlYWRlci4gQ2xpY2sgaXQgdG8gc2VlIGhlbHAgY29udGVudC48L3A+CiAgICAgICAgICAgICAgPHA+VGhlIGNsb3NlIGJ1dHRvbiBpcyBhbHNvIHZpc2libGUgYnkgZGVmYXVsdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJPSyIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PldpdGggSGVscCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik5vIENsb3NlIEJ1dHRvbiIsc2hvd0Nsb3NlQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBjbG9zZSBidXR0b24gaW4gdGhlIGhlYWRlci48L3A+CiAgICAgICAgICAgICAgPHA+WW91IG11c3QgdXNlIHRoZSBhY3Rpb24gYnV0dG9ucyBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlIGl0LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+Tm8gQ2xvc2UgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJCb3RoIEJ1dHRvbnMiLHNob3dIZWxwQnV0dG9uOiEwLHNob3dDbG9zZUJ1dHRvbjohMCxvbkhlbHA6aSgoKT0+YWxlcnQoIkhlbHAgY2xpY2tlZCEiKSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGJvdGggaGVscCBhbmQgY2xvc2UgYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+Qm90aCBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJDbGVhbiBIZWFkZXIiLHNob3dDbG9zZUJ1dHRvbjohMSxzaG93SGVscEJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgYSBjbGVhbiBoZWFkZXIgd2l0aCBubyBidXR0b25zLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+Q2xlYW4gSGVhZGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPk1vZGFsIFdpZHRoIFZhcmlhdGlvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IHdpZHRoczogc21hbGwsIG1lZGl1bSwgbGFyZ2UsIGZ1bGxzY3JlZW4sIG9yIGN1c3RvbSBwaXhlbCB2YWx1ZXMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU21hbGwgTW9kYWwiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzbWFsbCBtb2RhbCB3aXRoIGEgd2lkdGggb2YgMzgwcHguIFBlcmZlY3QgZm9yIHNpbXBsZSBjb25maXJtYXRpb25zIG9yIGJyaWVmIG1lc3NhZ2VzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiT0siLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5TbWFsbCBNb2RhbDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTWVkaXVtIE1vZGFsIChEZWZhdWx0KSIsd2lkdGg6Im1lZGl1bSIsY29udGVudDp3YAogICAgICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJVc2VybmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRW1haWwifSAuaW5wdXRUeXBlPSR7ImVtYWlsIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQYXNzd29yZCJ9IC5pbnB1dFR5cGU9JHsicGFzc3dvcmQifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2lnbiBVcCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk1lZGl1bSBNb2RhbDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTGFyZ2UgTW9kYWwiLHdpZHRoOiJsYXJnZSIsY29udGVudDp3YAogICAgICAgICAgICAgIDxoND5XaWRlIENvbnRlbnQgQXJlYTwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBsYXJnZSBtb2RhbCBpcyA4MDBweCB3aWRlIGFuZCBwZXJmZWN0IGZvciBkaXNwbGF5aW5nIG1vcmUgY29tcGxleCBjb250ZW50IGxpa2UgZm9ybXMgd2l0aCBtdWx0aXBsZSBjb2x1bW5zLCB0YWJsZXMsIG9yIGRldGFpbGVkIGluZm9ybWF0aW9uLjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTZweDsgbWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiTGFzdCBOYW1lIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJDb21wYW55In0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQb3NpdGlvbiJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TGFyZ2UgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkZ1bGxzY3JlZW4gRWRpdG9yIix3aWR0aDoiZnVsbHNjcmVlbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmkoYXN5bmMoKT0+e2FsZXJ0KCJJbiBhIHJlYWwgYXBwLCB0aGlzIHdvdWxkIHNob3cgZWRpdG9yIGRvY3VtZW50YXRpb24iKX0sIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+RnVsbHNjcmVlbiBFeHBlcmllbmNlIHdpdGggSGVhZGVyIENvbnRyb2xzPC9oND4KICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIHRha2VzIHVwIGFsbW9zdCB0aGUgZW50aXJlIHZpZXdwb3J0IHdpdGggYSAyMHB4IG1hcmdpbiBvbiBhbGwgc2lkZXMuIFRoZSBoZWFkZXIgYnV0dG9ucyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpbiBmdWxsc2NyZWVuIG1vZGUuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjb250ZW50IGFyZWEgY2FuIGJlIGFzIHRhbGwgYXMgbmVlZGVkIGFuZCB3aWxsIHNjcm9sbCBpZiBuZWNlc3NhcnkuPC9wPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzJhMmEyYSIpfTsgYm9yZGVyLXJhZGl1czogOHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX0iPkxhcmdlIGNvbnRlbnQgYXJlYTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IlNhdmUiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkZ1bGxzY3JlZW4gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+Q3VzdG9tIFdpZHRoICYgQ29uc3RyYWludHM8L2gzPgogICAgICA8cD5Zb3UgY2FuIGFsc28gc2V0IGN1c3RvbSBwaXhlbCB3aWR0aHMgYW5kIG1pbi9tYXggY29uc3RyYWludHMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ3VzdG9tIFdpZHRoICg3MDBweCkiLHdpZHRoOjcwMCxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgYSBjdXN0b20gd2lkdGggb2YgZXhhY3RseSA3MDAgcGl4ZWxzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+Q3VzdG9tIDcwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIE1heCBXaWR0aCIsd2lkdGg6ImxhcmdlIixtYXhXaWR0aDo2MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaXMgc2V0IHRvICdsYXJnZScgYnV0IGNvbnN0cmFpbmVkIGJ5IGEgbWF4V2lkdGggb2YgNjAwcHguPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiR290IGl0IixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TWF4IFdpZHRoIDYwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIE1pbiBXaWR0aCIsd2lkdGg6MzAwLG1pbldpZHRoOjQwMCxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB3aWR0aCBpcyBzZXQgdG8gMzAwcHggYnV0IGhhcyBhIG1pbldpZHRoIG9mIDQwMHB4LCBzbyBpdCB3aWxsIGJlIDQwMHB4IHdpZGUuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5NaW4gV2lkdGggNDAwcHg8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QnV0dG9uIFZhcmlhdGlvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IGJ1dHRvbiBjb25maWd1cmF0aW9ucyB3aXRoIHByb3BlciBzcGFjaW5nLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik11bHRpcGxlIEFjdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGRlbW9uc3RyYXRlcyBtdWx0aXBsZSBidXR0b25zIHdpdGggcHJvcGVyIHNwYWNpbmcgYmV0d2VlbiB0aGVtLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRlbGV0ZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIENoYW5nZXMiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UaHJlZSBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJTaW5nbGUgQWN0aW9uIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+U29tZXRpbWVzIHlvdSBqdXN0IG5lZWQgb25lIGJ1dHRvbi48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJBY2tub3dsZWRnZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PlNpbmdsZSBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik5vIEFjdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBib3R0b20gYnV0dG9ucy4gVXNlIHRoZSBYIGJ1dHRvbiBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlLjwvcD4KICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsiPlRoaXMgaXMgdXNlZnVsIGZvciBpbmZvcm1hdGlvbmFsIG1vZGFscyB0aGF0IGRvbid0IHJlcXVpcmUgdXNlciBhY3Rpb24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOltdfSl9fT5ObyBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIEJ1dHRvbiBMYWJlbHMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UZXN0aW5nIGJ1dHRvbiBsYXlvdXQgd2l0aCBsb25nZXIgbGFiZWxzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRpc2NhcmQgQWxsIENoYW5nZXMiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IlNhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmciLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIExhYmVsczwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5SZXNwb25zaXZlIEJlaGF2aW9yPC9oMz4KICAgICAgPHA+QWxsIG1vZGFscyBhdXRvbWF0aWNhbGx5IGJlY29tZSBmdWxsLXdpZHRoIG9uIG1vYmlsZSBkZXZpY2VzICg8IDc2OHB4IHZpZXdwb3J0IHdpZHRoKSBmb3IgYmV0dGVyIHVzYWJpbGl0eS48L3A+CiAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlJlc3BvbnNpdmUgTW9kYWwiLHdpZHRoOiJsYXJnZSIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmkoKCk9PmNvbnNvbGUubG9nKCJIZWxwIHJlcXVlc3RlZCBmb3IgcmVzcG9uc2l2ZSBtb2RhbCIpLCJvbkhlbHAiKSxjb250ZW50OndgCiAgICAgICAgICAgIDxwPlJlc2l6ZSB5b3VyIGJyb3dzZXIgd2luZG93IHRvIHNlZSBob3cgdGhpcyBtb2RhbCBhZGFwdHMuIE9uIG1vYmlsZSB2aWV3cG9ydHMsIGl0IHdpbGwgYXV0b21hdGljYWxseSB0YWtlIHRoZSBmdWxsIHdpZHRoIG1pbnVzIG1hcmdpbnMuPC9wPgogICAgICAgICAgICA8cD5UaGUgaGVhZGVyIGJ1dHRvbnMgcmVtYWluIGFjY2Vzc2libGUgYXQgYWxsIHZpZXdwb3J0IHNpemVzLjwvcD4KICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PlRlc3QgUmVzcG9uc2l2ZTwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2Nyb2xsYWJsZSBDb250ZW50PC9oMz4KICAgICAgPHA+V2hlbiBjb250ZW50IGV4Y2VlZHMgdGhlIG1vZGFsJ3MgbWF4LWhlaWdodCAoPGNvZGU+Y2FsYygxMDB2aCAtIDgwcHgpPC9jb2RlPiksIHRoZSB0aWxlIGNhcHMgYXQgdGhhdCBoZWlnaHQgYW5kIHRoZSBjb250ZW50IGFyZWEgc2Nyb2xscyBpbnNpZGUuIFRoZSBoZWFkaW5nIGFuZCBib3R0b20gYnV0dG9ucyBzdGF5IHBpbm5lZC48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIEFydGljbGUiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvaDQ+CiAgICAgICAgICAgICAgJHtBcnJheS5mcm9tKHtsZW5ndGg6NDB9LChzLGUpPT53YAogICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+wqcgJHtlKzF9Ljwvc3Ryb25nPgogICAgICAgICAgICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBTZWQgZG8KICAgICAgICAgICAgICAgICAgZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQKICAgICAgICAgICAgICAgICAgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzCiAgICAgICAgICAgICAgICAgIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yCiAgICAgICAgICAgICAgICAgIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQKICAgICAgICAgICAgICAgICAgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsCiAgICAgICAgICAgICAgICAgIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkFjY2VwdCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkxvbmcgQXJ0aWNsZTwvZGVlcy1idXR0b24+CgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxvbmcgTGlzdCIsd2lkdGg6InNtYWxsIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+U2VsZWN0ZWQgaXRlbXM6PC9wPgogICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZy1sZWZ0OiAyMHB4OyBtYXJnaW46IDA7Ij4KICAgICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjgwfSwocyxlKT0+d2AKICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJwYWRkaW5nOiA0cHggMDsiPkl0ZW0gJHtlKzF9IOKAlCBvcHRpb24gbGFiZWw8L2xpPgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIExpc3Q8L2RlZXMtYnV0dG9uPgoKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJUYWxsIEZvcm0iLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgJHtBcnJheS5mcm9tKHtsZW5ndGg6MjV9LChzLGUpPT53YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0ke2BGaWVsZCAke2UrMX1gfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTdWJtaXQiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UYWxsIEZvcm08L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEFkYSxOZGE9ZygoKT0+e3BlKCk7bnIoKTtBZGE9aSgoKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLnRpbGUtZGVtby1jb250ZW50IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIH0KICAgICAgICAgIC5mb290ZXItc3RhdHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgICAuZm9vdGVyLXN0YXRzIC5zdGF0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuZm9vdGVyLXN0YXRzIC5zdGF0IHN0cm9uZyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRlZXMtdGlsZSBoZWFkaW5nPSJTaW1wbGUgVGlsZSIgc3R5bGU9ImhlaWdodDogMjAwcHg7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZGVtby1jb250ZW50Ij5Db250ZW50IGFyZWEgd2l0aCByb3VuZGVkIGNvcm5lcnM8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPGRlZXMtdGlsZSBoZWFkaW5nPSJUaWxlIHdpdGggRm9vdGVyIiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1kZW1vLWNvbnRlbnQiPkNvbnRlbnQgZ29lcyBoZXJlPC9kaXY+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImZvb3Rlci1zdGF0cyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5sYXRlc3QgPHN0cm9uZz40Mjwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPm1pbiA8c3Ryb25nPjEyPC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+bWF4IDxzdHJvbmc+ODc8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5hdmcgPHN0cm9uZz40NS4zPC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDxkZWVzLXRpbGUgc3R5bGU9ImhlaWdodDogMjAwcHg7Ij4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDt3aWR0aDoxMDAlOyI+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo1MDA7Ij5DdXN0b20gSGVhZGVyPC9zcGFuPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IlNlYXJjaC4uLiIgc3R5bGU9ImZsZXg6MTttYXgtd2lkdGg6MjAwcHg7cGFkZGluZzoycHggOHB4O2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjEycHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjppbmhlcml0O2JvcmRlci1jb2xvcjppbmhlcml0OyI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZGVtby1jb250ZW50Ij5DdXN0b20gaGVhZGVyIHNsb3Qgd2l0aCBzZWFyY2ggaW5wdXQ8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBubmUsTDgsUmRhLG5yPWcoKCk9PntwZSgpO05kYSgpO0NyKCk7cHQoKTtubmU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEw4PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxSZGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXRpbGUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RpbGUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGM9W1koKV0sbm5lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iaGVhZGluZyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmhlYWRpbmcsImdldCIpLHNldDppKChmLHkpPT57Zi5oZWFkaW5nPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxubmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdmVyc2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJvdmVyc2Nyb2xsImluIGYsImhhcyIpLGdldDppKGY9PmYub3ZlcnNjcm9sbCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLm92ZXJzY3JvbGw9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLG5uZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0Zvb3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iaGFzRm9vdGVyImluIGYsImhhcyIpLGdldDppKGY9PmYuaGFzRm9vdGVyLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuaGFzRm9vdGVyPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxubmUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1BZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1MOCh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobSl7dGhpcy4jZT1tfSN0PShMOCh0aGlzLGwpLEw4KHRoaXMsZCwiYXV0byIpKTtnZXQgb3ZlcnNjcm9sbCgpe3JldHVybiB0aGlzLiN0fXNldCBvdmVyc2Nyb2xsKG0pe3RoaXMuI3Q9bX0jYT0oTDgodGhpcyx1KSxMOCh0aGlzLGIsITEpKTtnZXQgaGFzRm9vdGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGhhc0Zvb3RlcihtKXt0aGlzLiNhPW19c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBUaGUgZnJhbWUgLS0tICovCiAgICAgIC50aWxlLW91dGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAvKiAtLS0gSGVhZGVyOiBiYXJlIGNvbnRhaW5lciwgb25seSB0aGUgZGVmYXVsdCBoZWFkaW5nIGdldHMgc3R5bGVkIC0tLSAqLwogICAgICAudGlsZS1oZWFkZXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS1oZWFkaW5nIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLyogLS0tIENvbnRlbnQ6IHRoZSByb3VuZGVkIGluc2V0IC0tLQogICAgICAgICBVc2VzIG92ZXJmbG93LXk6IGF1dG8gc28gdGhhdCB3aGVuIGEgY29uc3VtZXIgKGUuZy4gZGVlcy1tb2RhbCkgY2FwcwogICAgICAgICB0aGUgdGlsZSB3aXRoIG1heC1oZWlnaHQsIGxvbmcgY29udGVudCBzY3JvbGxzIGluc2lkZSB0aGUgdGlsZQogICAgICAgICBpbnN0ZWFkIG9mIGJlaW5nIGNsaXBwZWQuIEZvciBjb25zdW1lcnMgd2l0aG91dCBtYXgtaGVpZ2h0CiAgICAgICAgIChlLmcuIGRlZXMtc3RlcHBlciksIHRoZSB0aWxlIGdyb3dzIHdpdGggY29udGVudCBhbmQgdGhlIHNjcm9sbAogICAgICAgICBuZXZlciBhY3RpdmF0ZXMuIEhvcml6b250YWwgb3ZlcmZsb3cgc3RheXMgY2xpcHBlZCB0byBwcmVzZXJ2ZSB0aGUKICAgICAgICAgcm91bmRlZCBjb3JuZXJzLiAqLwogICAgICAudGlsZS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICA6aG9zdChbb3ZlcnNjcm9sbD0iY29udGFpbiJdKSAudGlsZS1jb250ZW50IHsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAudGlsZS1jb250ZW50Lm5vLWZvb3RlciB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOwogICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOwogICAgICB9CgogICAgICAvKiAtLS0gRm9vdGVyOiBiYXJlIGNvbnRhaW5lciwgY29uc3VtZXIgc3R5bGVzIHRoZSBzbG90dGVkIGNvbnRlbnQgLS0tICovCiAgICAgIC50aWxlLWZvb3RlciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWZvb3Rlci5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW91dGVyIiBwYXJ0PSJvdXRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1oZWFkZXIiIHBhcnQ9ImhlYWRlciI+CiAgICAgICAgICA8c2xvdCBuYW1lPSJoZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvZGl2PgogICAgICAgICAgPC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCAke3RoaXMuaGFzRm9vdGVyPyIiOiJuby1mb290ZXIifSIgcGFydD0iY29udGVudCI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1mb290ZXIgJHt0aGlzLmhhc0Zvb3Rlcj8iIjoiaGlkZGVuIn0iIHBhcnQ9ImZvb3RlciI+CiAgICAgICAgICA8c2xvdCBuYW1lPSJmb290ZXIiIEBzbG90Y2hhbmdlPSR7dGhpcy5vbkZvb3RlclNsb3RDaGFuZ2V9Pjwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfW9uRm9vdGVyU2xvdENoYW5nZShtKXtsZXQgZj1tLnRhcmdldDt0aGlzLmhhc0Zvb3Rlcj1mLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KS5sZW5ndGg+MH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTDgodGhpcyx2KX1zdGF0aWN7TDgoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIEdsLHVpLFFhLEowPWcoKCk9PntHMSgpO3BvKCk7em4oKTtDcigpO0lkYSgpO3BlKCk7a3QoKTtGMSgpO1VhKCk7bnIoKTtwdCgpO0dsPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx1aT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sUWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLW1vZGFsIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXTt2YXIgdWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNNb2RhbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBsZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtZKHt9KV0sYz1bWSh7fSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7YXR0cmlidXRlOiExfSldLEs9W0woe3R5cGU6Qm9vbGVhbn0pXSxtZT1bTCh7dHlwZTpOdW1iZXJ9KV0saGU9W1koKV0sR2wodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJoZWFkaW5nImluIFEsImhhcyIpLGdldDppKFE9PlEuaGVhZGluZywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5oZWFkaW5nPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxvLGwpLEdsKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iY29udGVudCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmNvbnRlbnQsImdldCIpLHNldDppKChRLGllKT0+e1EuY29udGVudD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sZCx1KSxHbCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJtZW51T3B0aW9ucyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1lbnVPcHRpb25zLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLm1lbnVPcHRpb25zPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxiLHYpLEdsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+IndpZHRoImluIFEsImhhcyIpLGdldDppKFE9PlEud2lkdGgsImdldCIpLHNldDppKChRLGllKT0+e1Eud2lkdGg9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LG0sZiksR2wodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibWF4V2lkdGgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5tYXhXaWR0aCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5tYXhXaWR0aD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sTSx6KSxHbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbldpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJtaW5XaWR0aCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1pbldpZHRoLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLm1pbldpZHRoPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxDLF8pLEdsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0Nsb3NlQnV0dG9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJzaG93Q2xvc2VCdXR0b24iaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5zaG93Q2xvc2VCdXR0b24sImdldCIpLHNldDppKChRLGllKT0+e1Euc2hvd0Nsb3NlQnV0dG9uPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSwkLEUpLEdsKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0hlbHBCdXR0b24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNob3dIZWxwQnV0dG9uImluIFEsImhhcyIpLGdldDppKFE9PlEuc2hvd0hlbHBCdXR0b24sImdldCIpLHNldDppKChRLGllKT0+e1Euc2hvd0hlbHBCdXR0b249aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGssUyksR2wodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkhlbHAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Im9uSGVscCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm9uSGVscCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5vbkhlbHA9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LFAsUiksR2wodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVGdWxsc2NyZWVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJtb2JpbGVGdWxsc2NyZWVuImluIFEsImhhcyIpLGdldDppKFE9PlEubW9iaWxlRnVsbHNjcmVlbiwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5tb2JpbGVGdWxsc2NyZWVuPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxWLFcpLEdsKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRQYWRkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJjb250ZW50UGFkZGluZyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmNvbnRlbnRQYWRkaW5nLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmNvbnRlbnRQYWRkaW5nPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxCLFUpLEdsKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGFsWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJtb2RhbFpJbmRleCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1vZGFsWkluZGV4LCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLm1vZGFsWkluZGV4PWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxGLGopLEdsKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmxlfSxudWxsLHQpLHVlPWE9ZS52YWx1ZSxsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpsZX0pfXN0YXRpYyBkZW1vPVBkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhsZSl7bGV0IFE9ZG9jdW1lbnQuYm9keSxpZT1uZXcgdWU7cmV0dXJuIGllLmhlYWRpbmc9bGUuaGVhZGluZyxpZS5jb250ZW50PWxlLmNvbnRlbnQsaWUubWVudU9wdGlvbnM9bGUubWVudU9wdGlvbnMsbGUud2lkdGgmJihpZS53aWR0aD1sZS53aWR0aCksbGUubWF4V2lkdGgmJihpZS5tYXhXaWR0aD1sZS5tYXhXaWR0aCksbGUubWluV2lkdGgmJihpZS5taW5XaWR0aD1sZS5taW5XaWR0aCksbGUuc2hvd0Nsb3NlQnV0dG9uIT09dm9pZCAwJiYoaWUuc2hvd0Nsb3NlQnV0dG9uPWxlLnNob3dDbG9zZUJ1dHRvbiksbGUuc2hvd0hlbHBCdXR0b24hPT12b2lkIDAmJihpZS5zaG93SGVscEJ1dHRvbj1sZS5zaG93SGVscEJ1dHRvbiksbGUub25IZWxwJiYoaWUub25IZWxwPWxlLm9uSGVscCksbGUubW9iaWxlRnVsbHNjcmVlbiE9PXZvaWQgMCYmKGllLm1vYmlsZUZ1bGxzY3JlZW49bGUubW9iaWxlRnVsbHNjcmVlbiksbGUuY29udGVudFBhZGRpbmchPT12b2lkIDAmJihpZS5jb250ZW50UGFkZGluZz1sZS5jb250ZW50UGFkZGluZyksaWUud2luZG93TGF5ZXI9YXdhaXQgaG8uY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLGllLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57YXdhaXQgaWUuZGVzdHJveSgpfSksUS5hcHBlbmQoaWUud2luZG93TGF5ZXIpLFEuYXBwZW5kKGllKSxpZS5tb2RhbFpJbmRleD14YS5nZXROZXh0WkluZGV4KCkseGEucmVnaXN0ZXIoaWUsaWUubW9kYWxaSW5kZXgpLGllfSNlPXVpKHRoaXMsbywiIik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhsZSl7dGhpcy4jZT1sZX0jdD0odWkodGhpcyxsKSx1aSh0aGlzLGQsdm9pZCAwKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29udGVudChsZSl7dGhpcy4jdD1sZX0jYT0odWkodGhpcyx1KSx1aSh0aGlzLGIsW10pKTtnZXQgbWVudU9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudU9wdGlvbnMobGUpe3RoaXMuI2E9bGV9I3M9KHVpKHRoaXMsdiksdWkodGhpcyxtLCJtZWRpdW0iKSk7Z2V0IHdpZHRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdpZHRoKGxlKXt0aGlzLiNzPWxlfSNpPSh1aSh0aGlzLGYpLHVpKHRoaXMsTSx2b2lkIDApKTtnZXQgbWF4V2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWF4V2lkdGgobGUpe3RoaXMuI2k9bGV9I3I9KHVpKHRoaXMseiksdWkodGhpcyxDLHZvaWQgMCkpO2dldCBtaW5XaWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCBtaW5XaWR0aChsZSl7dGhpcy4jcj1sZX0jbz0odWkodGhpcyxfKSx1aSh0aGlzLCQsITApKTtnZXQgc2hvd0Nsb3NlQnV0dG9uKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dDbG9zZUJ1dHRvbihsZSl7dGhpcy4jbz1sZX0jbj0odWkodGhpcyxFKSx1aSh0aGlzLGssITEpKTtnZXQgc2hvd0hlbHBCdXR0b24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2hvd0hlbHBCdXR0b24obGUpe3RoaXMuI249bGV9I2w9KHVpKHRoaXMsUyksdWkodGhpcyxQLHZvaWQgMCkpO2dldCBvbkhlbHAoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb25IZWxwKGxlKXt0aGlzLiNsPWxlfSNjPSh1aSh0aGlzLFIpLHVpKHRoaXMsViwhMSkpO2dldCBtb2JpbGVGdWxsc2NyZWVuKCl7cmV0dXJuIHRoaXMuI2N9c2V0IG1vYmlsZUZ1bGxzY3JlZW4obGUpe3RoaXMuI2M9bGV9I2Q9KHVpKHRoaXMsVyksdWkodGhpcyxCLDE2KSk7Z2V0IGNvbnRlbnRQYWRkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGNvbnRlbnRQYWRkaW5nKGxlKXt0aGlzLiNkPWxlfSN1PSh1aSh0aGlzLFUpLHVpKHRoaXMsRiwxZTMpKTtnZXQgbW9kYWxaSW5kZXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbW9kYWxaSW5kZXgobGUpe3RoaXMuI3U9bGV9Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSksIG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIG1hcmdpbjogNDBweDsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3gtc2hhZG93OgogICAgICAgICAgMCAwIDAgMXB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDMpIil9LAogICAgICAgICAgMCA4cHggNDBweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjEyKSIsImhzbCgwIDAlIDAlIC8gMC41KSIpfSwKICAgICAgICAgIDAgMnB4IDhweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA2KSIsImhzbCgwIDAlIDAlIC8gMC4yNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdpZHRoIHZhcmlhdGlvbnMgKi8KICAgICAgZGVlcy10aWxlLndpZHRoLXNtYWxsIHsKICAgICAgICB3aWR0aDogMzgwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS53aWR0aC1tZWRpdW0gewogICAgICAgIHdpZHRoOiA1NjBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLndpZHRoLWxhcmdlIHsKICAgICAgICB3aWR0aDogODAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS53aWR0aC1mdWxsc2NyZWVuIHsKICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpOwogICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpOwogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgZGVlcy10aWxlIHsKICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCkgIWltcG9ydGFudDsKICAgICAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIH0KCiAgICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDIwcHgpOwogICAgICAgIH0KCiAgICAgICAgZGVlcy10aWxlLm1vYmlsZS1mdWxsc2NyZWVuIHsKICAgICAgICAgIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50OwogICAgICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICAgICAgbWF4LWhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICB9CgogICAgICAgIGRlZXMtdGlsZS5tb2JpbGUtZnVsbHNjcmVlbjo6cGFydChvdXRlcikgewogICAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zaG93IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNob3cucHJlZGVzdHJveSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSBzY2FsZSgwLjk4KTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZS1pbiwgb3BhY2l0eSAwLjE1cyBlYXNlLWluOwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDE2cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGluZy10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTIpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xMikiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBsZT10eXBlb2YgdGhpcy53aWR0aD09InN0cmluZyI/YHdpZHRoLSR7dGhpcy53aWR0aH1gOiIiLFE9dHlwZW9mIHRoaXMud2lkdGg9PSJudW1iZXIiP2Ake3RoaXMud2lkdGh9cHhgOiIiLGllPXRoaXMubWF4V2lkdGg/YCR7dGhpcy5tYXhXaWR0aH1weGA6IiIsdGU9dGhpcy5taW5XaWR0aD9gJHt0aGlzLm1pbldpZHRofXB4YDoiIixlZT10aGlzLm1vYmlsZUZ1bGxzY3JlZW4/Im1vYmlsZS1mdWxsc2NyZWVuIjoiIjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICR7UT9gZGVlcy10aWxlIHsgd2lkdGg6ICR7UX07IH1gOiIifQogICAgICAgICR7aWU/YGRlZXMtdGlsZSB7IG1heC13aWR0aDogJHtpZX07IH1gOiIifQogICAgICAgICR7dGU/YGRlZXMtdGlsZSB7IG1pbi13aWR0aDogJHt0ZX07IH1gOiIifQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtb2RhbENvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2t9IHN0eWxlPSJ6LWluZGV4OiAke3RoaXMubW9kYWxaSW5kZXh9Ij4KICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSIke2xlfSAke2VlfSIgLm92ZXJzY3JvbGw9JHsiY29udGFpbiJ9PgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy10ZXh0Ij4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5zaG93SGVscEJ1dHRvbj93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVIZWxwfSB0aXRsZT0iSGVscCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmhlbHBDaXJjbGUifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLnNob3dDbG9zZUJ1dHRvbj93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuZGVzdHJveSgpfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6ICR7dGhpcy5jb250ZW50UGFkZGluZ31weDsiPiR7dGhpcy5jb250ZW50fTwvZGl2PgogICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYm90dG9tQnV0dG9ucyI+CiAgICAgICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLm1hcCgoa2UsWCk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke1g9PT10aGlzLm1lbnVPcHRpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0gJHtrZS5uYW1lPT09Ik9LIj8ib2siOiIifSIgQGNsaWNrPSR7KCk9PntrZS5hY3Rpb24odGhpcyl9fT4ke2tlLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI9dWkodGhpcyxqKTthc3luYyBmaXJzdFVwZGF0ZWQobGUpe3N1cGVyLmZpcnN0VXBkYXRlZChsZSksYXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXRpbGUiKS5jbGFzc0xpc3QuYWRkKCJzaG93Iil9YXN5bmMgaGFuZGxlT3V0c2lkZUNsaWNrKGxlKXtsZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsQ29udGFpbmVyIik7bGUudGFyZ2V0PT09USYmYXdhaXQgdGhpcy5kZXN0cm95KCl9YXN5bmMgZGVzdHJveSgpe2xldCBsZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy10aWxlIikuY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IGxlLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjAwKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHhhLnVucmVnaXN0ZXIodGhpcyl9YXN5bmMgaGFuZGxlSGVscCgpe3RoaXMub25IZWxwJiZhd2FpdCB0aGlzLm9uSGVscCgpfXN0YXRpY3t1aShhLHQpfX07cmV0dXJuIHVlPWF9KSgpfSk7dmFyIE9kYSxGZGE9ZygoKT0+e3BlKCk7T2RhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAubGFiZWwtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmxhYmVsLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAubGFiZWwtcm93IC5hbm5vdGF0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM4ODgiLCIjNjY2Iil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJhc2ljIExhYmVsPC9oMz4KICAgICAgPHA+QSBzaW1wbGUgdGV4dCBsYWJlbCB3aXRoIG5vIGFkZGl0aW9uYWwgaW5kaWNhdG9ycy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+bGFiZWw9IlVzZXJuYW1lIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJVc2VybmFtZSJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSJFbWFpbCBBZGRyZXNzIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJFbWFpbCBBZGRyZXNzIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5SZXF1aXJlZCBJbmRpY2F0b3I8L2gzPgogICAgICA8cD5XaGVuIDxjb2RlPnJlcXVpcmVkPC9jb2RlPiBpcyBzZXQsIGEgcmVkIGFzdGVyaXNrIGFwcGVhcnMgYWZ0ZXIgdGhlIGxhYmVsIHRleHQuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPnJlcXVpcmVkPSR7Int0cnVlfSJ9PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkZ1bGwgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZD0keyJ7ZmFsc2V9In0gKGRlZmF1bHQpPC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7Ik5pY2tuYW1lIn0gLnJlcXVpcmVkPSR7ITF9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SW5mbyBUZXh0IChJbmZvIEljb24pPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5pbmZvVGV4dDwvY29kZT4gaXMgc2V0LCBhbiBpbmZvIGljb24gYXBwZWFycyBuZXh0IHRvIHRoZSBsYWJlbC4gSG92ZXIgb3ZlciBpdCB0byBzZWUgdGhlIHRvb2x0aXAuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmluZm9UZXh0PSIuLi4iPC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkFQSSBLZXkifSAuaW5mb1RleHQ9JHsiWW91ciBBUEkga2V5IGNhbiBiZSBmb3VuZCBpbiB0aGUgZGV2ZWxvcGVyIHNldHRpbmdzIGRhc2hib2FyZC4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5zaG9ydCBpbmZvVGV4dDwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJSZWdpb24ifSAuaW5mb1RleHQ9JHsiU2VsZWN0IHlvdXIgbmVhcmVzdCBkYXRhY2VudGVyLiJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVxdWlyZWQgKyBJbmZvIFRleHQ8L2gzPgogICAgICA8cD5Cb3RoIGluZGljYXRvcnMgY2FuIGJlIGNvbWJpbmVkLiBUaGUgYXN0ZXJpc2sgYXBwZWFycyBmaXJzdCwgdGhlbiB0aGUgaW5mbyBpY29uLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZCArIGluZm9UZXh0PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IlBhc3N3b3JkIn0gLnJlcXVpcmVkPSR7ITB9IC5pbmZvVGV4dD0keyJNdXN0IGJlIGF0IGxlYXN0IDggY2hhcmFjdGVycyB3aXRoIG9uZSB1cHBlcmNhc2UgbGV0dGVyIGFuZCBvbmUgbnVtYmVyLiJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPnJlcXVpcmVkICsgaW5mb1RleHQ8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9IC5yZXF1aXJlZD0keyEwfSAuaW5mb1RleHQ9JHsiV2Ugd2lsbCBzZW5kIGEgdmVyaWZpY2F0aW9uIGxpbmsgdG8gdGhpcyBhZGRyZXNzLiJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RW1wdHkgTGFiZWw8L2gzPgogICAgICA8cD5XaGVuIDxjb2RlPmxhYmVsPC9jb2RlPiBpcyBlbXB0eSBvciBub3Qgc2V0LCBub3RoaW5nIGlzIHJlbmRlcmVkLiBUaGUgZWxlbWVudCBiZWxvdyBoYXMgbm8gbGFiZWwgdGV4dDo8L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+bGFiZWw9IiIgKGVtcHR5KTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyIifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgbG5lLEU4LEJkYSxsdj1nKCgpPT57cG8oKTtHMSgpO3BlKCk7RmRhKCk7cHQoKTtsbmU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEU4PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxCZGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWxhYmVsIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNMYWJlbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxjPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxsbmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibGFiZWwiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5sYWJlbCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmxhYmVsPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxsbmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmZvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iaW5mb1RleHQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5pbmZvVGV4dCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmluZm9UZXh0PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxsbmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4icmVxdWlyZWQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5yZXF1aXJlZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnJlcXVpcmVkPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxsbmUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1PZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiLCJJbnB1dCJdOyNlPUU4KHRoaXMsbywiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKG0pe3RoaXMuI2U9bX0jdD0oRTgodGhpcyxsKSxFOCh0aGlzLGQsdm9pZCAwKSk7Z2V0IGluZm9UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZm9UZXh0KG0pe3RoaXMuI3Q9bX0jYT0oRTgodGhpcyx1KSxFOCh0aGlzLGIsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcmVxdWlyZWQobSl7dGhpcy4jYT1tfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnJlcXVpcmVkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24taWNvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgbWFyZ2luOiAtNnB4IDAgLTZweCAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbi1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA2KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24taWNvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5sYWJlbD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCI+CiAgICAgICAgICAgICAgJHt0aGlzLmxhYmVsfQogICAgICAgICAgICAgICR7dGhpcy5yZXF1aXJlZD93YDxzcGFuIGNsYXNzPSJyZXF1aXJlZCI+Kjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICR7dGhpcy5pbmZvVGV4dD93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uLWljb24iPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6aW5mbyJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1zcGVlY2hidWJibGU+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2BgfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRTgodGhpcyx2KX1zdGF0aWN7RTgoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIGNuZSxOZXQ9ZygoKT0+e2NuZT0iMC41NS4xIn0pO3ZhciBjdixLMSxIZGEsUDg9ZygoKT0+e3BlKCk7a3QoKTtOZXQoKTtwdCgpO2N2PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLMT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSGRhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VNb25hY28iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOk9iamVjdH0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sY3YodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjb250ZW50ImluIF8sImhhcyIpLGdldDppKF89Pl8uY29udGVudCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmNvbnRlbnQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGN2KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imxhbmd1YWdlImluIF8sImhhcyIpLGdldDppKF89Pl8ubGFuZ3VhZ2UsImdldCIpLHNldDppKChfLE8pPT57Xy5sYW5ndWFnZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksY3YodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iZmlsZVBhdGgiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5maWxlUGF0aCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmZpbGVQYXRoPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxjdih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRTdWJqZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjb250ZW50U3ViamVjdCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmNvbnRlbnRTdWJqZWN0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY29udGVudFN1YmplY3Q9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLGN2KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29yZFdyYXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+IndvcmRXcmFwImluIF8sImhhcyIpLGdldDppKF89Pl8ud29yZFdyYXAsImdldCIpLHNldDppKChfLE8pPT57Xy53b3JkV3JhcD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksY3YobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxkZWVzLXdvcmtzcGFjZS1tb25hY28+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIG1vbmFjb0RlZmVycmVkO2VkaXRvckRlZmVycmVkPXV0LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPUsxKHRoaXMsbyxgZnVuY3Rpb24gaGVsbG8oKSB7CglhbGVydCgnSGVsbG8gd29ybGQhJyk7Cn1gKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBjb250ZW50KEMpe3RoaXMuI2U9Q30jdD0oSzEodGhpcyxsKSxLMSh0aGlzLGQsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhbmd1YWdlKEMpe3RoaXMuI3Q9Q30jYT0oSzEodGhpcyx1KSxLMSh0aGlzLGIsIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsZVBhdGgoQyl7dGhpcy4jYT1DfSNzPShLMSh0aGlzLHYpLEsxKHRoaXMsbSxuZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3QpKTtnZXQgY29udGVudFN1YmplY3QoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29udGVudFN1YmplY3QoQyl7dGhpcy4jcz1DfSNpPShLMSh0aGlzLGYpLEsxKHRoaXMsTSwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNpfXNldCB3b3JkV3JhcChDKXt0aGlzLiNpPUN9bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249KEsxKHRoaXMseiksbnVsbCk7aXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksamkuc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNjb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKEMpe3N1cGVyLmZpcnN0VXBkYXRlZChDKTtsZXQgXz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLE89YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke2NuZX1gO2lmKCFOLm1vbmFjb0RlZmVycmVkKXtOLm1vbmFjb0RlZmVycmVkPXV0LnNtYXJ0cHJvbWlzZS5kZWZlcigpO2xldCBrPWAke099L21pbi92cy9sb2FkZXIuanNgLFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Uy5zcmM9ayxTLm9ubG9hZD0oKT0+e04ubW9uYWNvRGVmZXJyZWQucmVzb2x2ZSgpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKFMpfWF3YWl0IE4ubW9uYWNvRGVmZXJyZWQucHJvbWlzZSx3aW5kb3cucmVxdWlyZS5jb25maWcoe3BhdGhzOnt2czpgJHtPfS9taW4vdnNgfX0pLHdpbmRvdy5yZXF1aXJlKFsidnMvZWRpdG9yL2VkaXRvci5tYWluIl0sYXN5bmMoKT0+e2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLEk9ay50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLFA9d2luZG93Lm1vbmFjbyxSPW51bGw7aWYodGhpcy5maWxlUGF0aCl7bGV0IFY9UC5VcmkucGFyc2UoYGZpbGU6Ly8ke3RoaXMuZmlsZVBhdGh9YCk7Uj1QLmVkaXRvci5nZXRNb2RlbChWKSxSP1Iuc2V0VmFsdWUodGhpcy5jb250ZW50KTpSPVAuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCx0aGlzLmxhbmd1YWdlLFYpfWxldCBLPVAuZWRpdG9yLmNyZWF0ZShfLHttb2RlbDpSfHx2b2lkIDAsdmFsdWU6Uj92b2lkIDA6dGhpcy5jb250ZW50LGxhbmd1YWdlOlI/dm9pZCAwOnRoaXMubGFuZ3VhZ2UsdGhlbWU6SSx1c2VTaGFkb3dET006ITAsZm9udFNpemU6MTYsYXV0b21hdGljTGF5b3V0OiEwLHdvcmRXcmFwOnRoaXMud29yZFdyYXAsaG92ZXI6e2VuYWJsZWQ6ITAsZGVsYXk6MzAwLHN0aWNreTohMCxhYm92ZTohMX19KTt0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPWsudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoVj0+e2xldCBXPVY/InZzIjoidnMtZGFyayI7Sy51cGRhdGVPcHRpb25zKHt0aGVtZTpXfSl9KSx0aGlzLmVkaXRvckRlZmVycmVkLnJlc29sdmUoSyl9KTtsZXQgJD1hd2FpdChhd2FpdCBmZXRjaChgJHtPfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0UudGV4dENvbnRlbnQ9JCx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kKEUpO2xldCBIPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtILm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KGFzeW5jIGs9PntpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwpcmV0dXJuO2xldCBTPUguZ2V0VmFsdWUoKTt0aGlzLmNvbnRlbnRTdWJqZWN0Lm5leHQoUyksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC1jaGFuZ2UiLHtkZXRhaWw6UyxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSksdGhpcy5jb250ZW50U3ViamVjdC5uZXh0KEguZ2V0VmFsdWUoKSl9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpO2xldCBfPXdpbmRvdy5tb25hY287aWYoXyl7aWYoQy5oYXMoImZpbGVQYXRoIikmJnRoaXMuZmlsZVBhdGgpe2xldCBPPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSwkPV8uVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApLEU9Xy5lZGl0b3IuZ2V0TW9kZWwoJCk7RT9FLmdldFZhbHVlKCkhPT10aGlzLmNvbnRlbnQmJih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsRS5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSk6RT1fLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSwkKSxPLmdldE1vZGVsKCk/LnVyaS50b1N0cmluZygpIT09JC50b1N0cmluZygpJiZPLnNldE1vZGVsKEUpO3JldHVybn1pZihDLmhhcygiY29udGVudCIpKXtsZXQgTz1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7Ty5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE8uc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpfWlmKEMuaGFzKCJsYW5ndWFnZSIpKXtsZXQgJD0oYXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpOyQmJl8uZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoJCx0aGlzLmxhbmd1YWdlKX19fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCl9YXN5bmMgc2V0Q29udGVudEV4dGVybmFsKEMsXz0hMCl7bGV0IE89YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO2lmKE8uZ2V0VmFsdWUoKT09PUMpcmV0dXJuO2xldCBFPV8/Ty5nZXRQb3NpdGlvbigpOm51bGwsSD1fP08uZ2V0U2VsZWN0aW9ucygpOm51bGwsaz1fP08uZ2V0U2Nyb2xsVG9wKCk6MCxTPV8/Ty5nZXRTY3JvbGxMZWZ0KCk6MDtpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsTy5zZXRWYWx1ZShDKSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEsXyl7aWYoRSl7bGV0IEk9Ty5nZXRNb2RlbCgpLFA9ST8uZ2V0TGluZUNvdW50KCl8fDEsUj1NYXRoLm1pbihFLmxpbmVOdW1iZXIsUCksSz1JPy5nZXRMaW5lTWF4Q29sdW1uKFIpfHwxLFY9TWF0aC5taW4oRS5jb2x1bW4sSyk7Ty5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpSLGNvbHVtbjpWfSl9aWYoSCYmSC5sZW5ndGg+MCl0cnl7Ty5zZXRTZWxlY3Rpb25zKEgpfWNhdGNoe31PLnNldFNjcm9sbFBvc2l0aW9uKHtzY3JvbGxUb3A6ayxzY3JvbGxMZWZ0OlN9KX19c3RhdGlje0sxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBUZCxLcixJOCxkbmUsUmV0PWcoKCk9Pnt6aSgpO3BlKCk7cHQoKTtKMCgpO1VhKCk7bHYoKTtucigpO1A4KCk7UDgoKTtUZD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sS3I9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEk4PVt7a2V5OiJ0eXBlc2NyaXB0IixsYWJlbDoiVHlwZVNjcmlwdCJ9LHtrZXk6ImphdmFzY3JpcHQiLGxhYmVsOiJKYXZhU2NyaXB0In0se2tleToianNvbiIsbGFiZWw6IkpTT04ifSx7a2V5OiJodG1sIixsYWJlbDoiSFRNTCJ9LHtrZXk6ImNzcyIsbGFiZWw6IkNTUyJ9LHtrZXk6InNjc3MiLGxhYmVsOiJTQ1NTIn0se2tleToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biJ9LHtrZXk6InlhbWwiLGxhYmVsOiJZQU1MIn0se2tleToieG1sIixsYWJlbDoiWE1MIn0se2tleToic3FsIixsYWJlbDoiU1FMIn0se2tleToicHl0aG9uIixsYWJlbDoiUHl0aG9uIn0se2tleToiamF2YSIsbGFiZWw6IkphdmEifSx7a2V5OiJjc2hhcnAiLGxhYmVsOiJDIyJ9LHtrZXk6ImNwcCIsbGFiZWw6IkMrKyJ9LHtrZXk6ImdvIixsYWJlbDoiR28ifSx7a2V5OiJydXN0IixsYWJlbDoiUnVzdCJ9LHtrZXk6InNoZWxsIixsYWJlbDoiU2hlbGwifSx7a2V5OiJwbGFpbnRleHQiLGxhYmVsOiJQbGFpbiBUZXh0In1dLGRuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtY29kZSIpXSxlLHQ9W10sYSxyPU90LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdO3ZhciBLPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRDb2RlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W1koKV0sTz1bWSgpXSxIPVtZKCldLEk9W1koKV0sVGQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idmFsdWUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy52YWx1ZSwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy52YWx1ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxvLGwpLFRkKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Imxhbmd1YWdlImluIFcsImhhcyIpLGdldDppKFc9PlcubGFuZ3VhZ2UsImdldCIpLHNldDppKChXLG1lKT0+e1cubGFuZ3VhZ2U9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sZCx1KSxUZCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaGVpZ2h0ImluIFcsImhhcyIpLGdldDppKFc9PlcuaGVpZ2h0LCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmhlaWdodD1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxiLHYpLFRkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29yZFdyYXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+IndvcmRXcmFwImluIFcsImhhcyIpLGdldDppKFc9Plcud29yZFdyYXAsImdldCIpLHNldDppKChXLG1lKT0+e1cud29yZFdyYXA9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbSxmKSxUZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5lTnVtYmVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ic2hvd0xpbmVOdW1iZXJzImluIFcsImhhcyIpLGdldDppKFc9Plcuc2hvd0xpbmVOdW1iZXJzLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLnNob3dMaW5lTnVtYmVycz1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxNLHopLFRkKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMYW5ndWFnZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaXNMYW5ndWFnZURyb3Bkb3duT3BlbiJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4sImdldCIpLHNldDppKChXLG1lKT0+e1cuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxDLF8pLFRkKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29weVN1Y2Nlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImNvcHlTdWNjZXNzImluIFcsImhhcyIpLGdldDppKFc9PlcuY29weVN1Y2Nlc3MsImdldCIpLHNldDppKChXLG1lKT0+e1cuY29weVN1Y2Nlc3M9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sJCxFKSxUZCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxpbmVDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ibGluZUNvdW50ImluIFcsImhhcyIpLGdldDppKFc9PlcubGluZUNvdW50LCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmxpbmVDb3VudD1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxrLFMpLFRkKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3Vyc29yUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImN1cnNvclBvc2l0aW9uImluIFcsImhhcyIpLGdldDppKFc9PlcuY3Vyc29yUG9zaXRpb24sImdldCIpLHNldDppKChXLG1lKT0+e1cuY3Vyc29yUG9zaXRpb249bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sUCxSKSxUZChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpWfSxudWxsLHQpLEs9YT1lLnZhbHVlLFYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Vn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1pbnB1dC1jb2RlCiAgICAgIGxhYmVsPSJUeXBlU2NyaXB0IENvZGUiCiAgICAgIGtleT0iY29kZSIKICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgIGhlaWdodD0iMzAwcHgiCiAgICAgIC52YWx1ZT0ke2Bjb25zdCBncmVldGluZzogc3RyaW5nID0gIkhlbGxvIFdvcmxkIjsKY29uc29sZS5sb2coZ3JlZXRpbmcpO2B9CiAgICA+PC9kZWVzLWlucHV0LWNvZGU+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiLCJXb3Jrc3BhY2UiXTsjZT1Lcih0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShWKXt0aGlzLiNlPVZ9I3Q9KEtyKHRoaXMsbCksS3IodGhpcyxkLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBsYW5ndWFnZShWKXt0aGlzLiN0PVZ9I2E9KEtyKHRoaXMsdSksS3IodGhpcyxiLCIyMDBweCIpKTtnZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGhlaWdodChWKXt0aGlzLiNhPVZ9I3M9KEtyKHRoaXMsdiksS3IodGhpcyxtLCJvZmYiKSk7Z2V0IHdvcmRXcmFwKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdvcmRXcmFwKFYpe3RoaXMuI3M9Vn0jaT0oS3IodGhpcyxmKSxLcih0aGlzLE0sITApKTtnZXQgc2hvd0xpbmVOdW1iZXJzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dMaW5lTnVtYmVycyhWKXt0aGlzLiNpPVZ9I3I9KEtyKHRoaXMseiksS3IodGhpcyxDLCExKSk7Z2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNMYW5ndWFnZURyb3Bkb3duT3BlbihWKXt0aGlzLiNyPVZ9I289KEtyKHRoaXMsXyksS3IodGhpcywkLCExKSk7Z2V0IGNvcHlTdWNjZXNzKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvcHlTdWNjZXNzKFYpe3RoaXMuI289Vn0jbj0oS3IodGhpcyxFKSxLcih0aGlzLGssMCkpO2dldCBsaW5lQ291bnQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbGluZUNvdW50KFYpe3RoaXMuI249Vn0jbD0oS3IodGhpcyxTKSxLcih0aGlzLFAse2xpbmU6MSxjb2x1bW46MX0pKTtnZXQgY3Vyc29yUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3Vyc29yUG9zaXRpb24oVil7dGhpcy4jbD1WfWVkaXRvckVsZW1lbnQ9KEtyKHRoaXMsUiksbnVsbCk7c3RhdGljIHN0eWxlcz1bSGUsLi4uT3QuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC50b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1sZWZ0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXJpZ2h0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uc3VjY2VzcyB7CiAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3Itd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwOwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY28gewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLyogTWF0Y2ggTW9uYWNvIGJhY2tncm91bmQgdG8gdGlsZSAqLwogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY286OnBhcnQoY29udGFpbmVyKSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItZGl2aWRlciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLyogRm9vdGVyICovCiAgICAgIC5lZGl0b3ItZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5mb290ZXItbGVmdCwKICAgICAgLmZvb3Rlci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmZvb3Rlci1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuY29kZS1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IFY9STguZmluZChXPT5XLmtleT09PXRoaXMubGFuZ3VhZ2UpfHxJOFswXTtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmhlaWdodH07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxhbmd1YWdlRHJvcGRvd259CiAgICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVMYW5ndWFnZUJsdXJ9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Vi5sYWJlbH0KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAke3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgJHtJOC5tYXAoVz0+d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke1cua2V5PT09dGhpcy5sYW5ndWFnZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke21lPT50aGlzLnNlbGVjdExhbmd1YWdlKG1lLFcua2V5KX0KICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHtXLmxhYmVsfQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItcmlnaHQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMud29yZFdyYXA9PT0ib24iPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIHRpdGxlPSJXb3JkIFdyYXAiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZVdvcmRXcmFwfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOldyYXBUZXh0In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLnNob3dMaW5lTnVtYmVycz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iTGluZSBOdW1iZXJzIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMaW5lTnVtYmVyc30KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpIYXNoIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMuY29weVN1Y2Nlc3M/InN1Y2Nlc3MiOiIifSIKICAgICAgICAgICAgICAgIHRpdGxlPSJDb3B5IENvZGUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmNvcHlDb2RlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLmNvcHlTdWNjZXNzPyJsdWNpZGU6Q2hlY2siOiJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgdGl0bGU9IkV4cGFuZCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMub3BlbkZ1bGxzY3JlZW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6TWF4aW1pemUyIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAgIC5jb250ZW50PSR7dGhpcy52YWx1ZX0KICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmxhbmd1YWdlfQogICAgICAgICAgICAgIC53b3JkV3JhcD0ke3RoaXMud29yZFdyYXB9CiAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlfQogICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1sZWZ0Ij4KICAgICAgICAgICAgICA8c3Bhbj5MbiAke3RoaXMuY3Vyc29yUG9zaXRpb24ubGluZX0sIENvbCAke3RoaXMuY3Vyc29yUG9zaXRpb24uY29sdW1ufTwvc3Bhbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItc2VwYXJhdG9yIj48L2Rpdj4KICAgICAgICAgICAgICA8c3Bhbj4ke3RoaXMubGluZUNvdW50fSBsaW5lJHt0aGlzLmxpbmVDb3VudCE9PTE/InMiOiIifTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1yaWdodCI+CiAgICAgICAgICAgICAgPHNwYW4+JHsoSTguZmluZChXPT5XLmtleT09PXRoaXMubGFuZ3VhZ2UpfHxJOFswXSkubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5lZGl0b3JFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQuY29udGVudFN1YmplY3Quc3Vic2NyaWJlKFU9Pnt0aGlzLnZhbHVlIT09VSYmKHRoaXMudmFsdWU9VSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9KTtsZXQgVj1hd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxXPVYuZ2V0TW9kZWwoKTtXJiYodGhpcy5saW5lQ291bnQ9Vy5nZXRMaW5lQ291bnQoKSxXLm9uRGlkQ2hhbmdlQ29udGVudCgoKT0+e3RoaXMubGluZUNvdW50PVcuZ2V0TGluZUNvdW50KCl9KSksVi5vbkRpZENoYW5nZUN1cnNvclBvc2l0aW9uKFU9Pnt0aGlzLmN1cnNvclBvc2l0aW9uPXtsaW5lOlUucG9zaXRpb24ubGluZU51bWJlcixjb2x1bW46VS5wb3NpdGlvbi5jb2x1bW59fSk7bGV0IG1lPWF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5kb210b29sc1Byb21pc2UsQj1pKFU9PntsZXQgaGU9VT8iI2ZmZmZmZiI6IiMwYTBhMGEiO1YudXBkYXRlT3B0aW9ucyh7fSksd2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWxpZ2h0Iix7YmFzZToidnMiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOmhlfX0pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1kYXJrIix7YmFzZToidnMtZGFyayIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6aGV9fSksVi51cGRhdGVPcHRpb25zKHt0aGVtZTpVPyJkZWVzLWxpZ2h0IjoiZGVlcy1kYXJrIn0pfSwidXBkYXRlRWRpdG9yQmciKTtCKG1lLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4pLG1lLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKFU9PntCKFUpfSl9fXRvZ2dsZUxhbmd1YWdlRHJvcGRvd24oKXt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49IXRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbn1oYW5kbGVMYW5ndWFnZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExfSwxNTApfWFzeW5jIHNlbGVjdExhbmd1YWdlKFYsVyl7aWYoVi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubGFuZ3VhZ2U9Vyx0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITEsdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQubGFuZ3VhZ2U9VztsZXQgQj0oYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7QiYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShCLFcpfX10b2dnbGVXb3JkV3JhcCgpe3RoaXMud29yZFdyYXA9dGhpcy53b3JkV3JhcD09PSJvbiI/Im9mZiI6Im9uIix0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigid29yZFdyYXAiLHRoaXMud29yZFdyYXApfXRvZ2dsZUxpbmVOdW1iZXJzKCl7dGhpcy5zaG93TGluZU51bWJlcnM9IXRoaXMuc2hvd0xpbmVOdW1iZXJzLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJsaW5lTnVtYmVycyIsdGhpcy5zaG93TGluZU51bWJlcnM/Im9uIjoib2ZmIil9YXN5bmMgdXBkYXRlRWRpdG9yT3B0aW9uKFYsVyl7dGhpcy5lZGl0b3JFbGVtZW50JiYoYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe1tWXTpXfSl9YXN5bmMgY29weUNvZGUoKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSksdGhpcy5jb3B5U3VjY2Vzcz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5jb3B5U3VjY2Vzcz0hMX0sMmUzKX1jYXRjaChWKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsVil9fWhhbmRsZUNvbnRlbnRDaGFuZ2UoVil7bGV0IFc9Vi5kZXRhaWw7dGhpcy52YWx1ZSE9PVcmJih0aGlzLnZhbHVlPVcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWFzeW5jIG9wZW5GdWxsc2NyZWVuKCl7bGV0IFY9dGhpcy52YWx1ZSxXPW51bGwsbWU9dGhpcy5sYW5ndWFnZSxCPXRoaXMud29yZFdyYXAsVT10aGlzLnNob3dMaW5lTnVtYmVycyxoZT0hMSxGPSExLGo9aSgoKT0+e2xldCBYPUk4LmZpbmQoWj0+Wi5rZXk9PT1tZSk7cmV0dXJuIFg/WC5sYWJlbDoiVHlwZVNjcmlwdCJ9LCJnZXRMYW5ndWFnZUxhYmVsIiksdWU9aShYPT57bGV0IFo9WC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwtdG9vbGJhciIpO2lmKCFaKXJldHVybjtsZXQgeWU9Wi5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIHNwYW4iKTt5ZSYmKHllLnRleHRDb250ZW50PWooKSk7bGV0IHE9Wi5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKTtxJiZxLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsQj09PSJvbiIpO2xldCBBPVoucXVlcnlTZWxlY3RvcigiLmxpbmVzLWJ0biIpO0EmJkEuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixVKTtsZXQgc2U9Wi5xdWVyeVNlbGVjdG9yKCIuY29weS1idG4iKSxvZT1zZT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7c2UmJm9lJiYoc2UuY2xhc3NMaXN0LnRvZ2dsZSgic3VjY2VzcyIsRiksb2UuaWNvbj1GPyJsdWNpZGU6Q2hlY2siOiJsdWNpZGU6Q29weSIpO2xldCBhZT1aLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1kcm9wZG93biIpO2FlJiYoYWUuc3R5bGUuZGlzcGxheT1oZT8iYmxvY2siOiJub25lIil9LCJ1cGRhdGVUb29sYmFyVUkiKSxsZT1pKFg9PntsZXQgWj1YLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1mb290ZXIiKTtpZighWilyZXR1cm47bGV0IHllPVoucXVlcnlTZWxlY3RvcigiLmZvb3Rlci1jdXJzb3IiKSxxPVoucXVlcnlTZWxlY3RvcigiLmZvb3Rlci1saW5lcyIpLEE9Wi5xdWVyeVNlbGVjdG9yKCIuZm9vdGVyLWxhbmciKTt5ZSYmKHllLnRleHRDb250ZW50PWBMbiAke1F9LCBDb2wgJHtpZX1gKSxxJiYocS50ZXh0Q29udGVudD1gJHt0ZX0gbGluZSR7dGUhPT0xPyJzIjoiIn1gKSxBJiYoQS50ZXh0Q29udGVudD1qKCkpfSwidXBkYXRlRm9vdGVyVUkiKSxRPTEsaWU9MSx0ZT1WLnNwbGl0KGAKYCkubGVuZ3RoLGVlPWF3YWl0IFFhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6dGhpcy5sYWJlbHx8IkNvZGUgRWRpdG9yIix3aWR0aDoiZnVsbHNjcmVlbiIsY29udGVudFBhZGRpbmc6MCxjb250ZW50OndgCiAgICAgICAgPHN0eWxlPgogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWxlZnQgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLXJpZ2h0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWRyb3Bkb3duIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utb3B0aW9uIHsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utb3B0aW9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgICAgICBjb2xvcjogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgICAgICB3aWR0aDogMXB4OwogICAgICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1lZGl0b3Itd3JhcHBlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1mb290ZXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWZvb3RlciAuZm9vdGVyLWxlZnQsCiAgICAgICAgICAubW9kYWwtZm9vdGVyIC5mb290ZXItcmlnaHQgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZm9vdGVyIC5mb290ZXItc2VwYXJhdG9yIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iPgogICAgICAgICAgICAgICAgPHNwYW4+JHtqKCl9PC9zcGFuPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICR7STgubWFwKFg9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2Utb3B0aW9uICR7WC5rZXk9PT1tZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBkYXRhLWxhbmc9IiR7WC5rZXl9IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtYLmxhYmVsfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIHdyYXAtYnRuICR7Qj09PSJvbiI/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iV29yZCBXcmFwIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBsaW5lcy1idG4gJHtVPyJhY3RpdmUiOiIifSIgdGl0bGU9IkxpbmUgTnVtYmVycyI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBjb3B5LWJ0biIgdGl0bGU9IkNvcHkgQ29kZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAuY29udGVudD0ke1Z9CiAgICAgICAgICAgIC5sYW5ndWFnZT0ke21lfQogICAgICAgICAgICAud29yZFdyYXA9JHtCfQogICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItbGVmdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290ZXItY3Vyc29yIj5MbiAke1F9LCBDb2wgJHtpZX08L3NwYW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zZXBhcmF0b3IiPjwvZGl2PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWxpbmVzIj4ke3RlfSBsaW5lJHt0ZSE9PTE/InMiOiIifTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXJpZ2h0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1sYW5nIj4ke2ooKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgWD0+e2F3YWl0IFguZGVzdHJveSgpfSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlICYgQ2xvc2UiLGFjdGlvbjppKGFzeW5jIFg9PntpZihXPVguc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksVyl7bGV0IHllPShhd2FpdCBXLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dGhpcy5zZXRWYWx1ZSh5ZSl9YXdhaXQgWC5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfSk7aWYoYXdhaXQgbmV3IFByb21pc2UoWD0+c2V0VGltZW91dChYLDEwMCkpLFc9ZWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksVyl7bGV0IFg9YXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLFo9YXdhaXQgVy5kb210b29sc1Byb21pc2UseWU9aShBPT57bGV0IHNlPUE/IiNmZmZmZmYiOiIjMGEwYTBhIjt3aW5kb3cubW9uYWNvPy5lZGl0b3I/LmRlZmluZVRoZW1lPy4oImRlZXMtbGlnaHQiLHtiYXNlOiJ2cyIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6c2V9fSksd2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWRhcmsiLHtiYXNlOiJ2cy1kYXJrIixpbmhlcml0OiEwLHJ1bGVzOltdLGNvbG9yczp7ImVkaXRvci5iYWNrZ3JvdW5kIjpzZX19KSxYLnVwZGF0ZU9wdGlvbnMoe3RoZW1lOkE/ImRlZXMtbGlnaHQiOiJkZWVzLWRhcmsifSl9LCJhcHBseU1vZGFsVGhlbWUiKTt5ZShaLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4pLFoudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoQT0+e3llKEEpfSksWC5vbkRpZENoYW5nZUN1cnNvclBvc2l0aW9uKEE9PntRPUEucG9zaXRpb24ubGluZU51bWJlcixpZT1BLnBvc2l0aW9uLmNvbHVtbixsZShlZSl9KTtsZXQgcT1YLmdldE1vZGVsKCk7cSYmKHRlPXEuZ2V0TGluZUNvdW50KCksbGUoZWUpLHEub25EaWRDaGFuZ2VDb250ZW50KCgpPT57dGU9cS5nZXRMaW5lQ291bnQoKSxsZShlZSl9KSl9bGV0IGtlPWVlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoa2Upe2xldCBYPWtlLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24iKTtYPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntoZT0haGUsdWUoZWUpfSk7bGV0IFo9a2UucXVlcnlTZWxlY3RvckFsbCgiLmxhbmd1YWdlLW9wdGlvbiIpO1ouZm9yRWFjaChzZT0+e3NlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IG9lPXNlLmRhdGFzZXQubGFuZztpZihvZSYmVyl7bWU9b2UsaGU9ITE7bGV0IFRlPShhd2FpdCBXLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7VGUmJndpbmRvdy5tb25hY28uZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoVGUsb2UpLFouZm9yRWFjaChSZT0+UmUuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKSksc2UuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKSx1ZShlZSksbGUoZWUpfX0pfSksa2UucXVlcnlTZWxlY3RvcigiLndyYXAtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57Qj1CPT09Im9uIj8ib2ZmIjoib24iLFcmJihhd2FpdCBXLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe3dvcmRXcmFwOkJ9KSx1ZShlZSl9KSxrZS5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57VT0hVSxXJiYoYXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHtsaW5lTnVtYmVyczpVPyJvbiI6Im9mZiJ9KSx1ZShlZSl9KSxrZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntpZihXKXtsZXQgb2U9KGF3YWl0IFcuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0VmFsdWUoKTt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQob2UpLEY9ITAsdWUoZWUpLHNldFRpbWVvdXQoKCk9PntGPSExLHVlKGVlKX0sMmUzKX1jYXRjaChhZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHkgY29kZToiLGFlKX19fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHNlPT57aGUmJiFYPy5jb250YWlucyhzZS50YXJnZXQpJiYoaGU9ITEsdWUoZWUpKX0se29uY2U6ITB9KX19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShWKXt0aGlzLnZhbHVlPVYsdGhpcy5lZGl0b3JFbGVtZW50JiYodGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnQ9Vix0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZS50aGVuKFc9PntXLmdldFZhbHVlKCkhPT1WJiZXLnNldFZhbHVlKFYpfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXN0YXRpY3tLcihhLHQpfX07cmV0dXJuIEs9YX0pKCl9KTt2YXIgcWRhLGpkYT1nKCgpPT57cGUoKTtJdCgpO2ZvKCk7T2V0KCk7cWRhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQogICAgICAKICAgICAgLmRhdGUtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwodD0+e2NvbnNvbGUubG9nKCJCYXNpYyBkYXRlIHNlbGVjdGVkOiIsdC50YXJnZXQudmFsdWUpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBEYXRlIFBpY2tlciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgZGF0ZSBzZWxlY3Rpb24gd2l0aG91dCB0aW1lIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IlNlbGVjdCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNob29zZSBhIGRhdGUgZnJvbSB0aGUgY2FsZW5kYXIiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFdmVudCBEYXRlICYgVGltZSJdJyksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iQXBwb2ludG1lbnQiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCByPWEudGFyZ2V0LnZhbHVlO2NvbnNvbGUubG9nKCIyNGggZm9ybWF0IGRhdGV0aW1lOiIscil9KSksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHI9YS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjEyaCBmb3JtYXQgZGF0ZXRpbWU6IixyKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBhbmQgVGltZSBTZWxlY3Rpb24ifSAuc3VidGl0bGU9JHsiRGF0ZSBwaWNrZXJzIHdpdGggdGltZSBzZWxlY3Rpb24gaW4gZGlmZmVyZW50IGZvcm1hdHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGF0ZSAmIFRpbWUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGJvdGggZGF0ZSBhbmQgdGltZSAoMjQtaG91ciBmb3JtYXQpIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjI0aCIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkFwcG9pbnRtZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IkRhdGUgYW5kIHRpbWUgd2l0aCBBTS9QTSBzZWxlY3RvciAoMTUtbWludXRlIGluY3JlbWVudHMpIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIC5taW51dGVJbmNyZW1lbnQ9JHsxNX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldDtjb25zb2xlLmxvZyhgJHtyLmxhYmVsfSB2YWx1ZTpgLHIudmFsdWUpO2xldCBuPXIuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgJHtyLmxhYmVsfSBmb3JtYXR0ZWQ6YCxuLnZhbHVlKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUaW1lem9uZSBTdXBwb3J0In0gLnN1YnRpdGxlPSR7IkRhdGUgYW5kIHRpbWUgc2VsZWN0aW9uIHdpdGggdGltZXpvbmUgYXdhcmVuZXNzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgVGltZSAod2l0aCBUaW1lem9uZSkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZS90aW1lIGFuZCB0aW1lem9uZSBmb3IgdGhlIG1lZXRpbmciCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgICB0aW1lem9uZT0iQW1lcmljYS9OZXdfWW9yayIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ikdsb2JhbCBFdmVudCBTY2hlZHVsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTY2hlZHVsZSBhbiBldmVudCBhY3Jvc3MgZGlmZmVyZW50IHRpbWV6b25lcyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIHRpbWV6b25lPSJFdXJvcGUvTG9uZG9uIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezMwfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwodD0+e2xldCBhPXQudGFyZ2V0LnZhbHVlO2lmKGEpe2xldCByPW5ldyBEYXRlKGEpLG49bmV3IERhdGUsbz1NYXRoLmZsb29yKChyLmdldFRpbWUoKS1uLmdldFRpbWUoKSkvKDFlMyo2MCo2MCoyNCkpO2NvbnNvbGUubG9nKGBTZWxlY3RlZCBkYXRlIGlzICR7b30gZGF5cyBmcm9tIHRvZGF5YCl9fSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIFJhbmdlIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7IkxpbWl0IHNlbGVjdGFibGUgZGF0ZXMgd2l0aCBtaW4gYW5kIG1heCB2YWx1ZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRnV0dXJlIERhdGUgT25seSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDYW4gb25seSBzZWxlY3QgZGF0ZXMgZnJvbSB0b2RheSB0byA5MCBkYXlzIGluIHRoZSBmdXR1cmUiCiAgICAgICAgICAubWluRGF0ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgIC5tYXhEYXRlPSR7bmV3IERhdGUoRGF0ZS5ub3coKSsyMTYwKjYwKjYwKjFlMykudG9JU09TdHJpbmcoKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9eyJERC9NTS9ZWVlZIjoiRXVyb3BlYW4iLCJNTS9ERC9ZWVlZIjoiVVMiLCJZWVlZLU1NLUREIjoiSVNPIn07cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHI9PntsZXQgbj1yLnRhcmdldCxvPW4uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtvJiZjb25zb2xlLmxvZyhgJHtuLmxhYmVsfSBmb3JtYXQ6YCxvLnZhbHVlKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIEZvcm1hdHMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGRhdGUgZGlzcGxheSBmb3JtYXRzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IkV1cm9wZWFuIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iREQvTU0vWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJVUyBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9Ik1NL0REL1lZWVkiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iSVNPIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iWVlZWS1NTS1ERCIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntlLmdldFZhbHVlKCl8fGNvbnNvbGUubG9nKCJSZXF1aXJlZCBkYXRlIGZpZWxkIGlzIGVtcHR5Iil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiUmVxdWlyZWQgYW5kIGRpc2FibGVkIHN0YXRlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJCaXJ0aCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiCiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWxlY3QgeW91ciBiaXJ0aCBkYXRlIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRGlzYWJsZWQgRGF0ZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IlVTIENhbGVuZGFyIl0nKSx0PXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFVSBDYWxlbmRhciJdJyk7ZSYmY29uc29sZS5sb2coIlVTIENhbGVuZGFyIHN0YXJ0cyBvbiBTdW5kYXkgKDApIiksdCYmY29uc29sZS5sb2coIkVVIENhbGVuZGFyIHN0YXJ0cyBvbiBNb25kYXkgKDEpIil9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNhbGVuZGFyIEN1c3RvbWl6YXRpb24ifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHdlZWsgc3RhcnQgZGF5cyBmb3IgdmFyaW91cyByZWdpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJVUyBDYWxlbmRhciIKICAgICAgICAgICAgZGVzY3JpcHRpb249IldlZWsgc3RhcnRzIG9uIFN1bmRheSIKICAgICAgICAgICAgLndlZWtTdGFydHNPbj0kezB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IkVVIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gTW9uZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1pKCgpPT57bGV0IGE9W10scj1uZXcgRGF0ZSxuPXIuZ2V0RnVsbFllYXIoKSxvPXIuZ2V0TW9udGgoKSxsPW5ldyBEYXRlKG4sbywxKTtmb3IoO2wuZ2V0TW9udGgoKT09PW87KShsLmdldERheSgpPT09MHx8bC5nZXREYXkoKT09PTYpJiZhLnB1c2gobmV3IERhdGUobCkudG9JU09TdHJpbmcoKSksbC5zZXREYXRlKGwuZ2V0RGF0ZSgpKzEpO3JldHVybiBhfSwiZ2VuZXJhdGVXZWVrZW5kcyIpLHQ9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTt0JiYodC5kaXNhYmxlZERhdGVzPWUoKSxjb25zb2xlLmxvZygiRGlzYWJsZWQgd2Vla2VuZCBkYXRlcyBmb3IgY3VycmVudCBtb250aCIpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGlzYWJsZWQgRGF0ZXMifSAuc3VidGl0bGU9JHsiQ2FsZW5kYXIgd2l0aCBzcGVjaWZpYyBkYXRlcyBkaXNhYmxlZCAod2Vla2VuZHMgaW4gY3VycmVudCBtb250aCkifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXZhaWxhYmlsaXR5IENhbGVuZGFyIgogICAgICAgICAgZGVzY3JpcHRpb249IldlZWtlbmRzIGFyZSBkaXNhYmxlZCBmb3IgdGhlIGN1cnJlbnQgbW9udGgiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPW5ldyBEYXRlLHQ9ZS5nZXRNb250aCgpLGE9ZS5nZXRGdWxsWWVhcigpLHI9W3tkYXRlOmAke2F9LSR7KHQrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVGVhbSBNZWV0aW5nIix0eXBlOiJpbmZvIixjb3VudDoyfSx7ZGF0ZTpgJHthfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJQcm9qZWN0IERlYWRsaW5lIix0eXBlOiJ3YXJuaW5nIn0se2RhdGU6YCR7YX0tJHsodCsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUmVsZWFzZSBEYXkiLHR5cGU6InN1Y2Nlc3MifSx7ZGF0ZTpgJHthfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSs1KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJVcmdlbnQgRml4IFJlcXVpcmVkIix0eXBlOiJlcnJvciJ9LHtkYXRlOmAke2F9LSR7KHQrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzcpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6Ik11bHRpcGxlIEV2ZW50cyBUb2RheSIsdHlwZToiaW5mbyIsY291bnQ6NX0se2RhdGU6YCR7YX0tJHsodCsyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tMTVgLHRpdGxlOiJGdXR1cmUgUGxhbm5pbmcgU2Vzc2lvbiIsdHlwZToiaW5mbyJ9XSxuPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7biYmKG4uZXZlbnRzPXIsY29uc29sZS5sb2coIkNhbGVuZGFyIGV2ZW50cyBsb2FkZWQ6IixyKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggRXZlbnRzIn0gLnN1YnRpdGxlPSR7IlZpc3VhbCBmZWVkYmFjayBmb3Igc2NoZWR1bGVkIGV2ZW50cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJEYXlzIHdpdGggY29sb3JlZCBkb3RzIGhhdmUgZXZlbnRzLiBIb3ZlciB0byBzZWUgZGV0YWlscy4iCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPHN0cm9uZz5FdmVudCBMZWdlbmQ6PC9zdHJvbmc+PGJyPgogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjMDk2OWRhOyI+4pePIEluZm88L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICNkMjk5MjI7Ij7il48gV2FybmluZzwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzJlYTA0MzsiPuKXjyBTdWNjZXNzPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjY2YyMjJlOyI+4pePIEVycm9yPC9zcGFuPjxicj4KICAgICAgICAgIDxlbT5EYXlzIHdpdGggbW9yZSB0aGFuIDMgZXZlbnRzIHNob3cgYSBjb3VudCBiYWRnZTwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKSx0PXMucXVlcnlTZWxlY3RvcigiI2V2ZW50LW91dHB1dCIpO2UmJnQmJihlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldCxuPXIudmFsdWU7aWYobil7bGV0IG89bmV3IERhdGUobikscD1yLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik/LnZhbHVlfHwiTi9BIjt0LmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5FdmVudCB0cmlnZ2VyZWQhPC9zdHJvbmc+PGJyPgogICAgICAgICAgICAgIElTTyBWYWx1ZTogJHtufTxicj4KICAgICAgICAgICAgICBGb3JtYXR0ZWQ6ICR7cH08YnI+CiAgICAgICAgICAgICAgRGF0ZSBvYmplY3Q6ICR7by50b0xvY2FsZVN0cmluZygpfQogICAgICAgICAgICBgfWVsc2UgdC5pbm5lckhUTUw9IjxlbT5EYXRlIGNsZWFyZWQ8L2VtPiJ9KSksZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJEYXRlcGlja2VyIGxvc3QgZm9jdXMiKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRXZlbnQgSGFuZGxpbmcifSAuc3VidGl0bGU9JHsiSW50ZXJhY3RpdmUgZGVtb25zdHJhdGlvbiBvZiBjaGFuZ2UgZXZlbnRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkV2ZW50IERlbW8iCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZSB0byBzZWUgdGhlIGV2ZW50IGRldGFpbHMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImV2ZW50LW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0Ij4KICAgICAgICAgIDxlbT5TZWxlY3QgYSBkYXRlIHRvIHNlZSBldmVudCBkZXRhaWxzLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFZkYSxVZGE9ZygoKT0+e3BlKCk7emkoKTtWZGE9Wy4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmZvY3VzLAogICAgICAuZGF0ZS1pbnB1dC5vcGVuIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaWNvbi1jb250YWluZXIgPiAqIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CiAgICBgXX0pO3ZhciBXZGEsR2RhPWcoKCk9PntwZSgpO1dkYT1pKHM9PndgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHtzLmxhYmVsfSAuaW5mb1RleHQ9JHtzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHtzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1jb250YWluZXIiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJkYXRlLWlucHV0ICR7cy5pc09wZW5lZD8ib3BlbiI6IiJ9IgogICAgICAgICAgICAgIC52YWx1ZT0ke3MuZm9ybWF0RGF0ZShzLnZhbHVlKX0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHtzLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3MuZGlzYWJsZWR9CiAgICAgICAgICAgICAgQGNsaWNrPSR7cy50b2dnbGVDYWxlbmRhcn0KICAgICAgICAgICAgICBAa2V5ZG93bj0ke3MuaGFuZGxlS2V5ZG93bn0KICAgICAgICAgICAgICBAaW5wdXQ9JHtzLmhhbmRsZU1hbnVhbElucHV0fQogICAgICAgICAgICAgIEBibHVyPSR7cy5oYW5kbGVJbnB1dEJsdXJ9CiAgICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctcmlnaHQ6ICR7cy52YWx1ZT8iNjRweCI6IjQwcHgifSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jb250YWluZXIiPgogICAgICAgICAgICAgICR7cy52YWx1ZSYmIXMuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7cy5jbGVhclZhbHVlfSB0aXRsZT0iQ2xlYXIiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYWxlbmRhci1pY29uIiBpY29uPSJsdWNpZGU6Y2FsZW5kYXIiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3MucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYCwicmVuZGVyRGF0ZXBpY2tlciIpfSk7dmFyIFRyLFRhLHVuZSxGZXQ9ZygoKT0+e3BlKCk7a3QoKTt6bigpO3B0KCk7RjEoKTtVYSgpO1RyPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxUYT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdW5lPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyLXBvcHVwIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W10sc2Usb2U9W10sYWU9W10sVGUsUmU9W10sQmU9W10sR2UsRGU9W10sX2U9W107dmFyIENlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREYXRlcGlja2VyUG9wdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgdmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7YXR0cmlidXRlOiExfSldLHA9W0woe2F0dHJpYnV0ZTohMX0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpOdW1iZXJ9KV0sTj1bTCh7dHlwZTpOdW1iZXJ9KV0sTz1bTCh7dHlwZTpTdHJpbmd9KV0sSD1bTCh7dHlwZTpTdHJpbmd9KV0sST1bTCh7dHlwZTpBcnJheX0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W0woe3R5cGU6U3RyaW5nfSldLGhlPVtMKHt0eXBlOkFycmF5fSldLHVlPVtMKHt0eXBlOkJvb2xlYW59KV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sc2U9W1koKV0sVGU9W1koKV0sR2U9W1koKV0sVHIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmlnZ2VyUmVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InRyaWdnZXJSZWN0ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUudHJpZ2dlclJlY3QsImdldCIpLHNldDppKChiZSxFZSk9PntiZS50cmlnZ2VyUmVjdD1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sbyxsKSxUcih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im93bmVyQ29tcG9uZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ib3duZXJDb21wb25lbnQiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5vd25lckNvbXBvbmVudCwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLm93bmVyQ29tcG9uZW50PUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxkLHUpLFRyKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+ImVuYWJsZVRpbWUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5lbmFibGVUaW1lLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuZW5hYmxlVGltZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sYix2KSxUcih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ0aW1lRm9ybWF0ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUudGltZUZvcm1hdCwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnRpbWVGb3JtYXQ9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LG0sZiksVHIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW51dGVJbmNyZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJtaW51dGVJbmNyZW1lbnQiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5taW51dGVJbmNyZW1lbnQsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5taW51dGVJbmNyZW1lbnQ9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LE0seiksVHIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3ZWVrU3RhcnRzT24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ3ZWVrU3RhcnRzT24iaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS53ZWVrU3RhcnRzT24sImdldCIpLHNldDppKChiZSxFZSk9PntiZS53ZWVrU3RhcnRzT249RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LEMsXyksVHIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5EYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ibWluRGF0ZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLm1pbkRhdGUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5taW5EYXRlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSwkLEUpLFRyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im1heERhdGUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5tYXhEYXRlLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUubWF4RGF0ZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sayxTKSxUcih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkRGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJkaXNhYmxlZERhdGVzImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZGlzYWJsZWREYXRlcywiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLmRpc2FibGVkRGF0ZXM9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LFAsUiksVHIodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+ImVuYWJsZVRpbWV6b25lImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZW5hYmxlVGltZXpvbmUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5lbmFibGVUaW1lem9uZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sVixXKSxUcih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InRpbWV6b25lImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUudGltZXpvbmUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS50aW1lem9uZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sQixVKSxUcih0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJldmVudHMiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5ldmVudHMsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5ldmVudHM9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LEYsaiksVHIodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbnNUb1RvcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im9wZW5zVG9Ub3AiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5vcGVuc1RvVG9wLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUub3BlbnNUb1RvcD1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sbGUsUSksVHIodGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ic2VsZWN0ZWREYXRlImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuc2VsZWN0ZWREYXRlLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuc2VsZWN0ZWREYXRlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSx0ZSxlZSksVHIodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld0RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ2aWV3RGF0ZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnZpZXdEYXRlLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUudmlld0RhdGU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LFgsWiksVHIodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRIb3VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ic2VsZWN0ZWRIb3VyImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuc2VsZWN0ZWRIb3VyLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuc2VsZWN0ZWRIb3VyPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxxLEEpLFRyKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkTWludXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ic2VsZWN0ZWRNaW51dGUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5zZWxlY3RlZE1pbnV0ZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnNlbGVjdGVkTWludXRlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxvZSxhZSksVHIodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im1lbnVaSW5kZXgiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5tZW51WkluZGV4LCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUubWVudVpJbmRleD1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sUmUsQmUpLFRyKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ2aXNpYmxlImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUudmlzaWJsZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnZpc2libGU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LERlLF9lKSxUcihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTp2ZX0sbnVsbCx0KSxDZT1hPWUudmFsdWUsdmUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dmV9KX0jZT1UYSh0aGlzLG8sbnVsbCk7Z2V0IHRyaWdnZXJSZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRyaWdnZXJSZWN0KHZlKXt0aGlzLiNlPXZlfSN0PShUYSh0aGlzLGwpLFRhKHRoaXMsZCxudWxsKSk7Z2V0IG93bmVyQ29tcG9uZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IG93bmVyQ29tcG9uZW50KHZlKXt0aGlzLiN0PXZlfSNhPShUYSh0aGlzLHUpLFRhKHRoaXMsYiwhMSkpO2dldCBlbmFibGVUaW1lKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVuYWJsZVRpbWUodmUpe3RoaXMuI2E9dmV9I3M9KFRhKHRoaXMsdiksVGEodGhpcyxtLCIyNGgiKSk7Z2V0IHRpbWVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGltZUZvcm1hdCh2ZSl7dGhpcy4jcz12ZX0jaT0oVGEodGhpcyxmKSxUYSh0aGlzLE0sMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWludXRlSW5jcmVtZW50KHZlKXt0aGlzLiNpPXZlfSNyPShUYSh0aGlzLHopLFRhKHRoaXMsQywxKSk7Z2V0IHdlZWtTdGFydHNPbigpe3JldHVybiB0aGlzLiNyfXNldCB3ZWVrU3RhcnRzT24odmUpe3RoaXMuI3I9dmV9I289KFRhKHRoaXMsXyksVGEodGhpcywkLCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWluRGF0ZSh2ZSl7dGhpcy4jbz12ZX0jbj0oVGEodGhpcyxFKSxUYSh0aGlzLGssIiIpKTtnZXQgbWF4RGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhEYXRlKHZlKXt0aGlzLiNuPXZlfSNsPShUYSh0aGlzLFMpLFRhKHRoaXMsUCxbXSkpO2dldCBkaXNhYmxlZERhdGVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGRpc2FibGVkRGF0ZXModmUpe3RoaXMuI2w9dmV9I2M9KFRhKHRoaXMsUiksVGEodGhpcyxWLCExKSk7Z2V0IGVuYWJsZVRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGVuYWJsZVRpbWV6b25lKHZlKXt0aGlzLiNjPXZlfSNkPShUYSh0aGlzLFcpLFRhKHRoaXMsQixJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUpKTtnZXQgdGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgdGltZXpvbmUodmUpe3RoaXMuI2Q9dmV9I3U9KFRhKHRoaXMsVSksVGEodGhpcyxGLFtdKSk7Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLiN1fXNldCBldmVudHModmUpe3RoaXMuI3U9dmV9I3A9KFRhKHRoaXMsaiksVGEodGhpcyxsZSwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG9wZW5zVG9Ub3AodmUpe3RoaXMuI3A9dmV9I2g9KFRhKHRoaXMsUSksVGEodGhpcyx0ZSxudWxsKSk7Z2V0IHNlbGVjdGVkRGF0ZSgpe3JldHVybiB0aGlzLiNofXNldCBzZWxlY3RlZERhdGUodmUpe3RoaXMuI2g9dmV9I2Y9KFRhKHRoaXMsZWUpLFRhKHRoaXMsWCxuZXcgRGF0ZSkpO2dldCB2aWV3RGF0ZSgpe3JldHVybiB0aGlzLiNmfXNldCB2aWV3RGF0ZSh2ZSl7dGhpcy4jZj12ZX0jbT0oVGEodGhpcyxaKSxUYSh0aGlzLHEsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWRIb3VyKHZlKXt0aGlzLiNtPXZlfSNnPShUYSh0aGlzLEEpLFRhKHRoaXMsb2UsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZE1pbnV0ZSh2ZSl7dGhpcy4jZz12ZX0jYj0oVGEodGhpcyxhZSksVGEodGhpcyxSZSwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNifXNldCBtZW51WkluZGV4KHZlKXt0aGlzLiNiPXZlfSN2PShUYSh0aGlzLEJlKSxUYSh0aGlzLERlLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgdmlzaWJsZSh2ZSl7dGhpcy4jdj12ZX13aW5kb3dMYXllcj0oVGEodGhpcyxfZSksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxMHB4IDE1cHggLTNweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgNHB4IDZweCAtNHB4IGhzbCgwIDAlIDAlIC8gMC4xKSIsIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjIpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwLnRvcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC5zaG93IHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogQ2FsZW5kYXIgSGVhZGVyICovCiAgICAgIC5jYWxlbmRhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLm1vbnRoLXllYXItZGlzcGxheSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLyogV2Vla2RheSBoZWFkZXJzICovCiAgICAgIC53ZWVrZGF5cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLndlZWtkYXkgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBwYWRkaW5nOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC8qIERheXMgZ3JpZCAqLwogICAgICAuZGF5cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5kYXkgewogICAgICAgIGFzcGVjdC1yYXRpbzogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZGF5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAuZGF5Lm90aGVyLW1vbnRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5kYXkudG9kYXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5kaXNhYmxlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KCiAgICAgIC8qIEV2ZW50IGluZGljYXRvcnMgKi8KICAgICAgLmV2ZW50LWluZGljYXRvciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdCB7CiAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC5pbmZvIHsgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTEgNzAlIDUyJSkiLCJoc2woMjExIDcwJSA2MiUpIil9OyB9CiAgICAgIC5ldmVudC1kb3Qud2FybmluZyB7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTAlIDQ1JSkiLCJoc2woNDUgOTAlIDU1JSkiKX07IH0KICAgICAgLmV2ZW50LWRvdC5zdWNjZXNzIHsgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIgNjklIDQ1JSkiLCJoc2woMTQyIDY5JSA1NSUpIil9OyB9CiAgICAgIC5ldmVudC1kb3QuZXJyb3IgeyBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsgfQoKICAgICAgLmV2ZW50LWNvdW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgcmlnaHQ6IDJweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgNTElKSIsImhzbCgwIDcyJSA2MSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZXZlbnQtdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgOHB4KTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuZGF5Lmhhcy1ldmVudDpob3ZlciAuZXZlbnQtdG9vbHRpcCB7IG9wYWNpdHk6IDE7IH0KCiAgICAgIC8qIFRpbWUgc2VsZWN0b3IgKi8KICAgICAgLnRpbWUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXRzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0IHsKICAgICAgICB3aWR0aDogNjVweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VwYXJhdG9yIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLXNlbGVjdG9yIHsgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7IG1hcmdpbi1sZWZ0OiA4cHg7IH0KCiAgICAgIC5hbS1wbS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b246aG92ZXI6bm90KC5zZWxlY3RlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbWV6b25lIHNlbGVjdG9yICovCiAgICAgIC50aW1lem9uZS1zZWxlY3RvciB7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAvKiBBY3Rpb24gYnV0dG9ucyAqLwogICAgICAuY2FsZW5kYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWFjdGlvbi1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDMwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQogICAgYF07c3RhdGljIE1PTlRIX05BTUVTPVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXTtzdGF0aWMgVElNRVpPTkVTPVt7dmFsdWU6IlVUQyIsbGFiZWw6IlVUQyAoQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUpIn0se3ZhbHVlOiJBbWVyaWNhL05ld19Zb3JrIixsYWJlbDoiRWFzdGVybiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvQ2hpY2FnbyIsbGFiZWw6IkNlbnRyYWwgVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0RlbnZlciIsbGFiZWw6Ik1vdW50YWluIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9Mb3NfQW5nZWxlcyIsbGFiZWw6IlBhY2lmaWMgVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJFdXJvcGUvTG9uZG9uIixsYWJlbDoiTG9uZG9uIn0se3ZhbHVlOiJFdXJvcGUvUGFyaXMiLGxhYmVsOiJQYXJpcyJ9LHt2YWx1ZToiRXVyb3BlL0JlcmxpbiIsbGFiZWw6IkJlcmxpbiJ9LHt2YWx1ZToiRXVyb3BlL01vc2NvdyIsbGFiZWw6Ik1vc2NvdyJ9LHt2YWx1ZToiQXNpYS9EdWJhaSIsbGFiZWw6IkR1YmFpIn0se3ZhbHVlOiJBc2lhL0tvbGthdGEiLGxhYmVsOiJJbmRpYSBTdGFuZGFyZCBUaW1lIn0se3ZhbHVlOiJBc2lhL1NoYW5naGFpIixsYWJlbDoiQ2hpbmEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9Ub2t5byIsbGFiZWw6IlRva3lvIn0se3ZhbHVlOiJBdXN0cmFsaWEvU3lkbmV5IixsYWJlbDoiU3lkbmV5In0se3ZhbHVlOiJQYWNpZmljL0F1Y2tsYW5kIixsYWJlbDoiQXVja2xhbmQifV07cmVuZGVyKCl7aWYoIXRoaXMudHJpZ2dlclJlY3QpcmV0dXJuIHdgYDtsZXQgdmU9dGhpcy5jb21wdXRlUG9zaXRpb25TdHlsZSgpLGJlPXRoaXMud2Vla1N0YXJ0c09uPT09MT9bIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSIsIlN1Il06WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLEVlPXRoaXMuZ2V0RGF5c0luTW9udGgoKSxqZT10aGlzLnNlbGVjdGVkSG91cjwxMjtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJjYWxlbmRhci1wb3B1cCAke3RoaXMudmlzaWJsZT8ic2hvdyI6IiJ9ICR7dGhpcy5vcGVuc1RvVG9wPyJ0b3AiOiJib3R0b20ifSIKICAgICAgICBzdHlsZT0iJHt2ZX07IHotaW5kZXg6ICR7dGhpcy5tZW51WkluZGV4fTsiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1oZWFkZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5wcmV2aW91c01vbnRofT4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvbkxlZnQiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1vbnRoLXllYXItZGlzcGxheSI+CiAgICAgICAgICAgICR7Q2UuTU9OVEhfTkFNRVNbdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpXX0gJHt0aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3RoaXMubmV4dE1vbnRofT4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvblJpZ2h0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IndlZWtkYXlzIj4KICAgICAgICAgICR7YmUubWFwKFdlPT53YDxkaXYgY2xhc3M9IndlZWtkYXkiPiR7V2V9PC9kaXY+YCl9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRheXMtZ3JpZCI+CiAgICAgICAgICAke0VlLm1hcChXZT0+e2xldCBzdD10aGlzLmlzVG9kYXkoV2UpLE1lPXRoaXMuaXNTZWxlY3RlZChXZSksZ2U9V2UuZ2V0TW9udGgoKSE9PXRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSxJZT10aGlzLmlzRGF5RGlzYWJsZWQoV2UpLGNlPXRoaXMuZ2V0RXZlbnRzRm9yRGF0ZShXZSksZGU9Y2UubGVuZ3RoPjAsTGU9Y2UucmVkdWNlKChLZSxZZSk9PktlKyhZZS5jb3VudHx8MSksMCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImRheSAke2dlPyJvdGhlci1tb250aCI6IiJ9ICR7c3Q/InRvZGF5IjoiIn0gJHtNZT8ic2VsZWN0ZWQiOiIifSAke0llPyJkaXNhYmxlZCI6IiJ9ICR7ZGU/Imhhcy1ldmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFJZSYmdGhpcy5oYW5kbGVTZWxlY3REYXRlKFdlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1dlLmdldERhdGUoKX0KICAgICAgICAgICAgICAgICR7ZGU/d2AKICAgICAgICAgICAgICAgICAgJHtMZT4zP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtY291bnQiPiR7TGV9PC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1pbmRpY2F0b3IiPgogICAgICAgICAgICAgICAgICAgICAgJHtjZS5zbGljZSgwLDMpLm1hcChLZT0+d2AKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtZG90ICR7S2UudHlwZXx8ImluZm8ifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgJHtjZVswXS50aXRsZT93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LXRvb2x0aXAiPgogICAgICAgICAgICAgICAgICAgICAgJHtjZVswXS50aXRsZX0KICAgICAgICAgICAgICAgICAgICAgICR7TGU+MT93YCAoKyR7TGUtMX0gbW9yZSlgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuZW5hYmxlVGltZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1zZWxlY3RvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3ItdGl0bGUiPlRpbWU8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1pbnB1dHMiPgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJ0aW1lLWlucHV0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/KHRoaXMuc2VsZWN0ZWRIb3VyPT09MD8xMjp0aGlzLnNlbGVjdGVkSG91cj4xMj90aGlzLnNlbGVjdGVkSG91ci0xMjp0aGlzLnNlbGVjdGVkSG91cikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIik6dGhpcy5zZWxlY3RlZEhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUhvdXJJbnB1dH0KICAgICAgICAgICAgICAgIG1pbj0iJHt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj8xOjB9IgogICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudGltZUZvcm1hdD09PSIxMmgiPzEyOjIzfSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLXNlcGFyYXRvciI+Ojwvc3Bhbj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0idGltZS1pbnB1dCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VsZWN0ZWRNaW51dGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZU1pbnV0ZUlucHV0fQogICAgICAgICAgICAgICAgbWluPSIwIiBtYXg9IjU5IiBzdGVwPSIke3RoaXMubWludXRlSW5jcmVtZW50fHwxfSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtLXBtLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYW0tcG0tYnV0dG9uICR7amU/InNlbGVjdGVkIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnNldEFNUE0oImFtIil9PkFNPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFtLXBtLWJ1dHRvbiAke2plPyIiOiJzZWxlY3RlZCJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5zZXRBTVBNKCJwbSIpfT5QTTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZW5hYmxlVGltZXpvbmU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZXpvbmUtc2VsZWN0b3ItdGl0bGUiPlRpbWV6b25lPC9kaXY+CiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9InRpbWV6b25lLXNlbGVjdCIgLnZhbHVlPSR7dGhpcy50aW1lem9uZX0gQGNoYW5nZT0ke3RoaXMuaGFuZGxlVGltZXpvbmVDaGFuZ2V9PgogICAgICAgICAgICAgICR7Q2UuVElNRVpPTkVTLm1hcChXZT0+d2AKICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiR7V2UudmFsdWV9IiA/c2VsZWN0ZWQ9JHtXZS52YWx1ZT09PXRoaXMudGltZXpvbmV9PiR7V2UubGFiZWx9PC9vcHRpb24+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHRvZGF5LWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWxlY3RUb2RheX0+VG9kYXk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gY2xlYXItYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhcn0+Q2xlYXI8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbXB1dGVQb3NpdGlvblN0eWxlKCl7bGV0IHZlPXRoaXMudHJpZ2dlclJlY3QsYmU9dmUubGVmdDtpZih0aGlzLm9wZW5zVG9Ub3Ape2xldCBFZT13aW5kb3cuaW5uZXJIZWlnaHQtdmUudG9wKzQ7cmV0dXJuYGxlZnQ6ICR7YmV9cHg7IGJvdHRvbTogJHtFZX1weDsgdG9wOiBhdXRvYH1lbHNle2xldCBFZT12ZS5ib3R0b20rNDtyZXR1cm5gbGVmdDogJHtiZX1weDsgdG9wOiAke0VlfXB4YH19Z2V0RGF5c0luTW9udGgoKXtsZXQgdmU9dGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLGJlPXRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSxFZT1uZXcgRGF0ZSh2ZSxiZSwxKSxqZT1uZXcgRGF0ZSh2ZSxiZSsxLDApLFdlPVtdLHN0PXRoaXMud2Vla1N0YXJ0c09uPT09MT9FZS5nZXREYXkoKT09PTA/NjpFZS5nZXREYXkoKS0xOkVlLmdldERheSgpO2ZvcihsZXQgZ2U9c3Q7Z2U+MDtnZS0tKVdlLnB1c2gobmV3IERhdGUodmUsYmUsMS1nZSkpO2ZvcihsZXQgZ2U9MTtnZTw9amUuZ2V0RGF0ZSgpO2dlKyspV2UucHVzaChuZXcgRGF0ZSh2ZSxiZSxnZSkpO2xldCBNZT00Mi1XZS5sZW5ndGg7Zm9yKGxldCBnZT0xO2dlPD1NZTtnZSsrKVdlLnB1c2gobmV3IERhdGUodmUsYmUrMSxnZSkpO3JldHVybiBXZX1pc1RvZGF5KHZlKXtsZXQgYmU9bmV3IERhdGU7cmV0dXJuIHZlLmdldERhdGUoKT09PWJlLmdldERhdGUoKSYmdmUuZ2V0TW9udGgoKT09PWJlLmdldE1vbnRoKCkmJnZlLmdldEZ1bGxZZWFyKCk9PT1iZS5nZXRGdWxsWWVhcigpfWlzU2VsZWN0ZWQodmUpe3JldHVybiB0aGlzLnNlbGVjdGVkRGF0ZT92ZS5nZXREYXRlKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCkmJnZlLmdldE1vbnRoKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpJiZ2ZS5nZXRGdWxsWWVhcigpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKTohMX1pc0RheURpc2FibGVkKHZlKXtpZih0aGlzLm1pbkRhdGUpe2xldCBiZT1uZXcgRGF0ZSh0aGlzLm1pbkRhdGUpO2lmKHZlPGJlKXJldHVybiEwfWlmKHRoaXMubWF4RGF0ZSl7bGV0IGJlPW5ldyBEYXRlKHRoaXMubWF4RGF0ZSk7aWYodmU+YmUpcmV0dXJuITB9cmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcz8ubGVuZ3RoP3RoaXMuZGlzYWJsZWREYXRlcy5zb21lKGJlPT57dHJ5e2xldCBFZT1uZXcgRGF0ZShiZSk7cmV0dXJuIHZlLmdldERhdGUoKT09PUVlLmdldERhdGUoKSYmdmUuZ2V0TW9udGgoKT09PUVlLmdldE1vbnRoKCkmJnZlLmdldEZ1bGxZZWFyKCk9PT1FZS5nZXRGdWxsWWVhcigpfWNhdGNoe3JldHVybiExfX0pOiExfWdldEV2ZW50c0ZvckRhdGUodmUpe2lmKCF0aGlzLmV2ZW50cz8ubGVuZ3RoKXJldHVybltdO2xldCBiZT1gJHt2ZS5nZXRGdWxsWWVhcigpfS0keyh2ZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke3ZlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gO3JldHVybiB0aGlzLmV2ZW50cy5maWx0ZXIoRWU9PkVlLmRhdGU9PT1iZSl9cHJldmlvdXNNb250aCgpe3RoaXMudmlld0RhdGU9bmV3IERhdGUodGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLHRoaXMudmlld0RhdGUuZ2V0TW9udGgoKS0xLDEpfW5leHRNb250aCgpe3RoaXMudmlld0RhdGU9bmV3IERhdGUodGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLHRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSsxLDEpfWhhbmRsZVNlbGVjdERhdGUodmUpe3RoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKHZlLmdldEZ1bGxZZWFyKCksdmUuZ2V0TW9udGgoKSx2ZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSx0aGlzLmVuYWJsZVRpbWV8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9aGFuZGxlU2VsZWN0VG9kYXkoKXtsZXQgdmU9bmV3IERhdGU7dGhpcy5zZWxlY3RlZERhdGU9dmUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh2ZSksdGhpcy5zZWxlY3RlZEhvdXI9dmUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPXZlLmdldE1pbnV0ZXMoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLXNlbGVjdGVkIix7ZGV0YWlsOnRoaXMuc2VsZWN0ZWREYXRlfSkpLHRoaXMuZW5hYmxlVGltZXx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX1oYW5kbGVDbGVhcigpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRhdGUtY2xlYXJlZCIpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfWhhbmRsZUhvdXJJbnB1dD1pKHZlPT57bGV0IGJlPXZlLnRhcmdldCxFZT1wYXJzZUludChiZS52YWx1ZSl8fDA7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/KEVlPU1hdGgubWF4KDEsTWF0aC5taW4oMTIsRWUpKSx0aGlzLnNlbGVjdGVkSG91cj49MTImJkVlIT09MTI/dGhpcy5zZWxlY3RlZEhvdXI9RWUrMTI6dGhpcy5zZWxlY3RlZEhvdXI8MTImJkVlPT09MTI/dGhpcy5zZWxlY3RlZEhvdXI9MDp0aGlzLnNlbGVjdGVkSG91cj1FZSk6dGhpcy5zZWxlY3RlZEhvdXI9TWF0aC5tYXgoMCxNYXRoLm1pbigyMyxFZSkpLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZUhvdXJJbnB1dCIpO2hhbmRsZU1pbnV0ZUlucHV0PWkodmU9PntsZXQgYmU9dmUudGFyZ2V0LEVlPXBhcnNlSW50KGJlLnZhbHVlKXx8MDtFZT1NYXRoLm1heCgwLE1hdGgubWluKDU5LEVlKSksdGhpcy5taW51dGVJbmNyZW1lbnQ+MSYmKEVlPU1hdGgucm91bmQoRWUvdGhpcy5taW51dGVJbmNyZW1lbnQpKnRoaXMubWludXRlSW5jcmVtZW50KSx0aGlzLnNlbGVjdGVkTWludXRlPUVlLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZU1pbnV0ZUlucHV0Iik7c2V0QU1QTSh2ZSl7dmU9PT0iYW0iJiZ0aGlzLnNlbGVjdGVkSG91cj49MTI/dGhpcy5zZWxlY3RlZEhvdXItPTEyOnZlPT09InBtIiYmdGhpcy5zZWxlY3RlZEhvdXI8MTImJih0aGlzLnNlbGVjdGVkSG91cis9MTIpLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX1oYW5kbGVUaW1lem9uZUNoYW5nZT1pKHZlPT57dGhpcy50aW1lem9uZT12ZS50YXJnZXQudmFsdWUsdGhpcy5lbWl0VGltZVVwZGF0ZSgpfSwiaGFuZGxlVGltZXpvbmVDaGFuZ2UiKTtlbWl0VGltZVVwZGF0ZSgpe3RoaXMuc2VsZWN0ZWREYXRlJiYodGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpLHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLXNlbGVjdGVkIix7ZGV0YWlsOnRoaXMuc2VsZWN0ZWREYXRlfSkpKX1hc3luYyBzaG93KCl7dGhpcy53aW5kb3dMYXllcj1hd2FpdCBoby5jcmVhdGVBbmRTaG93KCksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfSksdGhpcy5tZW51WkluZGV4PXhhLmdldE5leHRaSW5kZXgoKSx4YS5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzKSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwLHBhc3NpdmU6ITB9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtwYXNzaXZlOiEwfSl9YXN5bmMgaGlkZSgpe3RoaXMuaXNEZXN0cm95aW5nfHwodGhpcy5pc0Rlc3Ryb3lpbmc9ITAsd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMH0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUpLHhhLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmKHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMud2luZG93TGF5ZXI9bnVsbCksdGhpcy52aXNpYmxlPSExLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLmlzRGVzdHJveWluZz0hMSl9aGFuZGxlU2Nyb2xsT3JSZXNpemU9aSgoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcG9zaXRpb24tcmVxdWVzdCIpKX0sImhhbmRsZVNjcm9sbE9yUmVzaXplIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSx4YS51bnJlZ2lzdGVyKHRoaXMpfXN0YXRpY3tUYShhLHQpfX07cmV0dXJuIENlPWF9KSgpfSk7dmFyIFlyLFdhLHBuZSxPZXQ9ZygoKT0+e3BlKCk7emkoKTtqZGEoKTtVZGEoKTtHZGEoKTtGZXQoKTtVYSgpO2x2KCk7WXI9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFdhPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxwbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXTt2YXIgR2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dERhdGVwaWNrZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgRGU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpCb29sZWFufSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W0woe3R5cGU6U3RyaW5nfSldLE49W0woe3R5cGU6U3RyaW5nfSldLE89W0woe3R5cGU6U3RyaW5nfSldLEg9W0woe3R5cGU6QXJyYXl9KV0sST1bTCh7dHlwZTpOdW1iZXJ9KV0sSz1bTCh7dHlwZTpTdHJpbmd9KV0sbWU9W0woe3R5cGU6Qm9vbGVhbn0pXSxoZT1bTCh7dHlwZTpTdHJpbmd9KV0sdWU9W0woe3R5cGU6QXJyYXl9KV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sc2U9W1koKV0sVGU9W1koKV0sWXIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InZhbHVlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UudmFsdWUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS52YWx1ZT1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sbyxsKSxZcih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJlbmFibGVUaW1lImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZW5hYmxlVGltZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmVuYWJsZVRpbWU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGQsdSksWXIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4idGltZUZvcm1hdCJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnRpbWVGb3JtYXQsImdldCIpLHNldDppKChfZSxDZSk9PntfZS50aW1lRm9ybWF0PUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxiLHYpLFlyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWludXRlSW5jcmVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ibWludXRlSW5jcmVtZW50ImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UubWludXRlSW5jcmVtZW50LCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UubWludXRlSW5jcmVtZW50PUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxtLGYpLFlyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0ZUZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImRhdGVGb3JtYXQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5kYXRlRm9ybWF0LCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UuZGF0ZUZvcm1hdD1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sTSx6KSxZcih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkRhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJtaW5EYXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UubWluRGF0ZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLm1pbkRhdGU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LEMsXyksWXIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ibWF4RGF0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLm1heERhdGUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5tYXhEYXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSwkLEUpLFlyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWREYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImRpc2FibGVkRGF0ZXMiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5kaXNhYmxlZERhdGVzLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UuZGlzYWJsZWREYXRlcz1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sayxTKSxZcih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndlZWtTdGFydHNPbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+IndlZWtTdGFydHNPbiJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLndlZWtTdGFydHNPbiwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLndlZWtTdGFydHNPbj1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sUCxSKSxZcih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4icGxhY2Vob2xkZXIiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnBsYWNlaG9sZGVyPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxWLFcpLFlyKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZW5hYmxlVGltZXpvbmUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5lbmFibGVUaW1lem9uZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmVuYWJsZVRpbWV6b25lPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxCLFUpLFlyKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4idGltZXpvbmUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS50aW1lem9uZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnRpbWV6b25lPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxGLGopLFlyKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImV2ZW50cyJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmV2ZW50cywiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmV2ZW50cz1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sbGUsUSksWXIodGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJpc09wZW5lZCJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmlzT3BlbmVkLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UuaXNPcGVuZWQ9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LHRlLGVlKSxZcih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJzZWxlY3RlZERhdGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5zZWxlY3RlZERhdGUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5zZWxlY3RlZERhdGU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LFgsWiksWXIodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld0RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ2aWV3RGF0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnZpZXdEYXRlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2Uudmlld0RhdGU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LHEsQSksWXIodGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRIb3VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ic2VsZWN0ZWRIb3VyImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uuc2VsZWN0ZWRIb3VyLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2Uuc2VsZWN0ZWRIb3VyPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxvZSxhZSksWXIodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRNaW51dGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJzZWxlY3RlZE1pbnV0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnNlbGVjdGVkTWludXRlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2Uuc2VsZWN0ZWRNaW51dGU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LFJlLEJlKSxZcihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpEZX0sbnVsbCx0KSxHZT1hPWUudmFsdWUsRGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RGV9KX1zdGF0aWMgZGVtbz1xZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVdhKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKERlKXt0aGlzLiNlPURlfSN0PShXYSh0aGlzLGwpLFdhKHRoaXMsZCwhMSkpO2dldCBlbmFibGVUaW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGVuYWJsZVRpbWUoRGUpe3RoaXMuI3Q9RGV9I2E9KFdhKHRoaXMsdSksV2EodGhpcyxiLCIyNGgiKSk7Z2V0IHRpbWVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGltZUZvcm1hdChEZSl7dGhpcy4jYT1EZX0jcz0oV2EodGhpcyx2KSxXYSh0aGlzLG0sMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWludXRlSW5jcmVtZW50KERlKXt0aGlzLiNzPURlfSNpPShXYSh0aGlzLGYpLFdhKHRoaXMsTSwiWVlZWS1NTS1ERCIpKTtnZXQgZGF0ZUZvcm1hdCgpe3JldHVybiB0aGlzLiNpfXNldCBkYXRlRm9ybWF0KERlKXt0aGlzLiNpPURlfSNyPShXYSh0aGlzLHopLFdhKHRoaXMsQywiIikpO2dldCBtaW5EYXRlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1pbkRhdGUoRGUpe3RoaXMuI3I9RGV9I289KFdhKHRoaXMsXyksV2EodGhpcywkLCIiKSk7Z2V0IG1heERhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4RGF0ZShEZSl7dGhpcy4jbz1EZX0jbj0oV2EodGhpcyxFKSxXYSh0aGlzLGssW10pKTtnZXQgZGlzYWJsZWREYXRlcygpe3JldHVybiB0aGlzLiNufXNldCBkaXNhYmxlZERhdGVzKERlKXt0aGlzLiNuPURlfSNsPShXYSh0aGlzLFMpLFdhKHRoaXMsUCwxKSk7Z2V0IHdlZWtTdGFydHNPbigpe3JldHVybiB0aGlzLiNsfXNldCB3ZWVrU3RhcnRzT24oRGUpe3RoaXMuI2w9RGV9I2M9KFdhKHRoaXMsUiksV2EodGhpcyxWLCJZWVlZLU1NLUREIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNjfXNldCBwbGFjZWhvbGRlcihEZSl7dGhpcy4jYz1EZX0jZD0oV2EodGhpcyxXKSxXYSh0aGlzLEIsITEpKTtnZXQgZW5hYmxlVGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZW5hYmxlVGltZXpvbmUoRGUpe3RoaXMuI2Q9RGV9I3U9KFdhKHRoaXMsVSksV2EodGhpcyxGLEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiN1fXNldCB0aW1lem9uZShEZSl7dGhpcy4jdT1EZX0jcD0oV2EodGhpcyxqKSxXYSh0aGlzLGxlLFtdKSk7Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLiNwfXNldCBldmVudHMoRGUpe3RoaXMuI3A9RGV9I2g9KFdhKHRoaXMsUSksV2EodGhpcyx0ZSwhMSkpO2dldCBpc09wZW5lZCgpe3JldHVybiB0aGlzLiNofXNldCBpc09wZW5lZChEZSl7dGhpcy4jaD1EZX0jZj0oV2EodGhpcyxlZSksV2EodGhpcyxYLG51bGwpKTtnZXQgc2VsZWN0ZWREYXRlKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNlbGVjdGVkRGF0ZShEZSl7dGhpcy4jZj1EZX0jbT0oV2EodGhpcyxaKSxXYSh0aGlzLHEsbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jbX1zZXQgdmlld0RhdGUoRGUpe3RoaXMuI209RGV9I2c9KFdhKHRoaXMsQSksV2EodGhpcyxvZSwwKSk7Z2V0IHNlbGVjdGVkSG91cigpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZEhvdXIoRGUpe3RoaXMuI2c9RGV9I2I9KFdhKHRoaXMsYWUpLFdhKHRoaXMsUmUsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNifXNldCBzZWxlY3RlZE1pbnV0ZShEZSl7dGhpcy4jYj1EZX1wb3B1cEluc3RhbmNlPShXYSh0aGlzLEJlKSxudWxsKTtzdGF0aWMgc3R5bGVzPVZkYTtyZW5kZXIoKXtyZXR1cm4gV2RhKHRoaXMpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWV8fCh0aGlzLnZhbHVlPSIiKSx0aGlzLnZhbHVlKXRyeXtsZXQgRGU9bmV3IERhdGUodGhpcy52YWx1ZSk7aXNOYU4oRGUuZ2V0VGltZSgpKXx8KHRoaXMuc2VsZWN0ZWREYXRlPURlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoRGUpLHRoaXMuc2VsZWN0ZWRIb3VyPURlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1EZS5nZXRNaW51dGVzKCkpfWNhdGNoe31lbHNle2xldCBEZT1uZXcgRGF0ZTt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKERlKSx0aGlzLnNlbGVjdGVkSG91cj1EZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9MH19Zm9ybWF0RGF0ZShEZSl7aWYoIURlKXJldHVybiIiO3RyeXtsZXQgX2U9bmV3IERhdGUoRGUpO2lmKGlzTmFOKF9lLmdldFRpbWUoKSkpcmV0dXJuIiI7bGV0IENlPXRoaXMuZGF0ZUZvcm1hdCx2ZT1fZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksYmU9KF9lLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksRWU9X2UuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO2lmKENlPUNlLnJlcGxhY2UoIllZWVkiLEVlKSxDZT1DZS5yZXBsYWNlKCJZWSIsRWUuc2xpY2UoLTIpKSxDZT1DZS5yZXBsYWNlKCJNTSIsYmUpLENlPUNlLnJlcGxhY2UoIkREIix2ZSksdGhpcy5lbmFibGVUaW1lKXtsZXQgamU9X2UuZ2V0SG91cnMoKSxXZT1qZT09PTA/MTI6amU+MTI/amUtMTI6amUsc3Q9X2UuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLE1lPWplPj0xMj8iUE0iOiJBTSI7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/Q2UrPWAgJHtXZX06JHtzdH0gJHtNZX1gOkNlKz1gICR7amUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7c3R9YH1pZih0aGlzLmVuYWJsZVRpbWV6b25lKXtsZXQgc3Q9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmVOYW1lOiJzaG9ydCIsdGltZVpvbmU6dGhpcy50aW1lem9uZX0pLmZvcm1hdFRvUGFydHMoX2UpLmZpbmQoTWU9Pk1lLnR5cGU9PT0idGltZVpvbmVOYW1lIik7c3QmJihDZSs9YCAke3N0LnZhbHVlfWApfXJldHVybiBDZX1jYXRjaHtyZXR1cm4iIn19YXN5bmMgdG9nZ2xlQ2FsZW5kYXIoKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtpZih0aGlzLmlzT3BlbmVkKXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59dGhpcy5pc09wZW5lZD0hMDtsZXQgX2U9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb250YWluZXIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxDZT13aW5kb3cuaW5uZXJIZWlnaHQtX2UuYm90dG9tLHZlPV9lLnRvcCxiZT1DZTw0MDAmJnZlPkNlO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgdW5lKSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X2UsdGhpcy5wb3B1cEluc3RhbmNlLm93bmVyQ29tcG9uZW50PXRoaXMsdGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9YmUsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWU9dGhpcy5lbmFibGVUaW1lLHRoaXMucG9wdXBJbnN0YW5jZS50aW1lRm9ybWF0PXRoaXMudGltZUZvcm1hdCx0aGlzLnBvcHVwSW5zdGFuY2UubWludXRlSW5jcmVtZW50PXRoaXMubWludXRlSW5jcmVtZW50LHRoaXMucG9wdXBJbnN0YW5jZS53ZWVrU3RhcnRzT249dGhpcy53ZWVrU3RhcnRzT24sdGhpcy5wb3B1cEluc3RhbmNlLm1pbkRhdGU9dGhpcy5taW5EYXRlLHRoaXMucG9wdXBJbnN0YW5jZS5tYXhEYXRlPXRoaXMubWF4RGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2UuZGlzYWJsZWREYXRlcz10aGlzLmRpc2FibGVkRGF0ZXMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWV6b25lPXRoaXMuZW5hYmxlVGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLnRpbWV6b25lPXRoaXMudGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLmV2ZW50cz10aGlzLmV2ZW50cyx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWREYXRlPXRoaXMuc2VsZWN0ZWREYXRlLHRoaXMucG9wdXBJbnN0YW5jZS52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlKSx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWRIb3VyPXRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMucG9wdXBJbnN0YW5jZS5zZWxlY3RlZE1pbnV0ZT10aGlzLnNlbGVjdGVkTWludXRlLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSxhd2FpdCB0aGlzLnBvcHVwSW5zdGFuY2Uuc2hvdygpfWNsb3NlUG9wdXAoKXt0aGlzLmlzT3BlbmVkPSExLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuaGlkZSgpKX1oYW5kbGVEYXRlU2VsZWN0ZWQ9aShEZT0+e2xldCBfZT1EZS5kZXRhaWw7dGhpcy5zZWxlY3RlZERhdGU9X2UsdGhpcy5zZWxlY3RlZEhvdXI9X2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPV9lLmdldE1pbnV0ZXMoKSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKF9lKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoX2UpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiaGFuZGxlRGF0ZVNlbGVjdGVkIik7aGFuZGxlRGF0ZUNsZWFyZWQ9aSgoKT0+e3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImhhbmRsZURhdGVDbGVhcmVkIik7aGFuZGxlQ2xvc2VSZXF1ZXN0PWkoKCk9Pnt0aGlzLmNsb3NlUG9wdXAoKX0sImhhbmRsZUNsb3NlUmVxdWVzdCIpO2hhbmRsZVJlcG9zaXRpb25SZXF1ZXN0PWkoKCk9PntpZighdGhpcy5wb3B1cEluc3RhbmNlfHwhdGhpcy5pc09wZW5lZClyZXR1cm47bGV0IERlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIik7aWYoIURlKXJldHVybjtsZXQgX2U9RGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoX2UuYm90dG9tPDB8fF9lLnRvcD53aW5kb3cuaW5uZXJIZWlnaHQpe3RoaXMuY2xvc2VQb3B1cCgpO3JldHVybn1sZXQgQ2U9d2luZG93LmlubmVySGVpZ2h0LV9lLmJvdHRvbSx2ZT1fZS50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9Q2U8NDAwJiZ2ZT5DZSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X2V9LCJoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCIpO2hhbmRsZUtleWRvd24oRGUpe0RlLmtleT09PSJFbnRlciJ8fERlLmtleT09PSIgIj8oRGUucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOkRlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmlzT3BlbmVkJiYoRGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlUG9wdXAoKSl9Y2xlYXJWYWx1ZShEZSl7RGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWhhbmRsZU1hbnVhbElucHV0KERlKXtsZXQgQ2U9RGUudGFyZ2V0LnZhbHVlLnRyaW0oKTtpZighQ2Upe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbDtyZXR1cm59bGV0IHZlPXRoaXMucGFyc2VNYW51YWxEYXRlKENlKTt2ZSYmIWlzTmFOKHZlLmdldFRpbWUoKSkmJih0aGlzLnZhbHVlPXZlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9dmUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh2ZSksdGhpcy5zZWxlY3RlZEhvdXI9dmUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPXZlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9aGFuZGxlSW5wdXRCbHVyKERlKXtsZXQgX2U9RGUudGFyZ2V0LENlPV9lLnZhbHVlLnRyaW0oKTtpZighQ2Upe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtyZXR1cm59bGV0IHZlPXRoaXMucGFyc2VNYW51YWxEYXRlKENlKTt2ZSYmIWlzTmFOKHZlLmdldFRpbWUoKSk/KHRoaXMudmFsdWU9dmUudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT12ZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHZlKSx0aGlzLnNlbGVjdGVkSG91cj12ZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9dmUuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLF9lLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKSk6X2UudmFsdWU9dGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpfXBhcnNlTWFudWFsRGF0ZShEZSl7aWYoIURlKXJldHVybiBudWxsO2xldCBfZT1EZS5zcGxpdCgiICIpLENlPV9lWzBdLHZlPV9lWzFdfHwiIixiZT1udWxsLEVlPUNlLm1hdGNoKC9eKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pJC8pO2lmKEVlKXtsZXRbamUsV2Usc3QsTWVdPUVlO2JlPW5ldyBEYXRlKHBhcnNlSW50KFdlKSxwYXJzZUludChzdCktMSxwYXJzZUludChNZSkpfWlmKCFiZSl7bGV0IGplPUNlLm1hdGNoKC9eKFxkezEsMn0pXC4oXGR7MSwyfSlcLihcZHs0fSkkLyk7aWYoamUpe2xldFtXZSxzdCxNZSxnZV09amU7YmU9bmV3IERhdGUocGFyc2VJbnQoZ2UpLHBhcnNlSW50KE1lKS0xLHBhcnNlSW50KHN0KSl9fWlmKCFiZSl7bGV0IGplPUNlLm1hdGNoKC9eKFxkezEsMn0pXC8oXGR7MSwyfSlcLyhcZHs0fSkkLyk7aWYoamUpe2xldFtXZSxzdCxNZSxnZV09amU7YmU9bmV3IERhdGUocGFyc2VJbnQoZ2UpLHBhcnNlSW50KHN0KS0xLHBhcnNlSW50KE1lKSl9fWlmKCFiZXx8aXNOYU4oYmUuZ2V0VGltZSgpKSlyZXR1cm4gbnVsbDtpZih2ZSl7bGV0IGplPXZlLm1hdGNoKC9eKFxkezEsMn0pOihcZHsyfSkkLyk7aWYoamUpe2xldFtXZSxzdCxNZV09amU7YmUuc2V0SG91cnMocGFyc2VJbnQoc3QpKSxiZS5zZXRNaW51dGVzKHBhcnNlSW50KE1lKSl9fWVsc2UgaWYoIXRoaXMuZW5hYmxlVGltZSl7bGV0IGplPW5ldyBEYXRlO2JlLnNldEhvdXJzKGplLmdldEhvdXJzKCkpLGJlLnNldE1pbnV0ZXMoamUuZ2V0TWludXRlcygpKSxiZS5zZXRTZWNvbmRzKDApLGJlLnNldE1pbGxpc2Vjb25kcygwKX1yZXR1cm4gYmV9Zm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoRGUpe2lmKCF0aGlzLmVuYWJsZVRpbWV6b25lKXJldHVybiBEZS50b0lTT1N0cmluZygpO2xldCBDZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt5ZWFyOiJudW1lcmljIixtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iixob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsaG91cjEyOiExLHRpbWVab25lOnRoaXMudGltZXpvbmUsdGltZVpvbmVOYW1lOiJzaG9ydCJ9KS5mb3JtYXRUb1BhcnRzKERlKSx2ZT17fTtDZS5mb3JFYWNoKGplPT57dmVbamUudHlwZV09amUudmFsdWV9KTtsZXQgYmU9YCR7dmUueWVhcn0tJHt2ZS5tb250aH0tJHt2ZS5kYXl9VCR7dmUuaG91cn06JHt2ZS5taW51dGV9OiR7dmUuc2Vjb25kfWAsRWU9dGhpcy5nZXRUaW1lem9uZU9mZnNldChEZSx0aGlzLnRpbWV6b25lKTtyZXR1cm5gJHtiZX0ke0VlfWB9Z2V0VGltZXpvbmVPZmZzZXQoRGUsX2Upe2xldCBDZT1uZXcgRGF0ZShEZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZTpfZX0pKSx2ZT1uZXcgRGF0ZShEZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZToiVVRDIn0pKSxiZT0oQ2UuZ2V0VGltZSgpLXZlLmdldFRpbWUoKSkvKDFlMyo2MCksRWU9TWF0aC5mbG9vcihNYXRoLmFicyhiZSkvNjApLGplPU1hdGguYWJzKGJlKSU2MDtyZXR1cm5gJHtiZT49MD8iKyI6Ii0ifSR7RWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7amUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKERlKXtpZih0aGlzLnZhbHVlPURlLERlKXRyeXtsZXQgX2U9bmV3IERhdGUoRGUpO2lzTmFOKF9lLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1fZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKF9lKSx0aGlzLnNlbGVjdGVkSG91cj1fZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9X2UuZ2V0TWludXRlcygpKX1jYXRjaHt9fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje1dhKGEsdCl9fTtyZXR1cm4gR2U9YX0pKCl9KTt2YXIgaG5lPWcoKCk9PntPZXQoKTtGZXQoKX0pO3ZhciBLZGEsWWRhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTtLZGE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsKHI9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7YS5sYWJlbH0iIGNoYW5nZWQgdG86YCxhLmdldFZhbHVlKCkpfSkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7YS5sYWJlbH0iIGxvc3QgZm9jdXNgKX0pfSkscy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJwYXNzd29yZCJdJykmJmNvbnNvbGUubG9nKCJQYXNzd29yZCBpbnB1dCBpbmNsdWRlcyB2aXNpYmlsaXR5IHRvZ2dsZSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUZXh0IElucHV0cyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCB0ZXh0IGlucHV0cyB3aXRoIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlVzZXJuYW1lIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5kb2UifQogICAgICAgICAgICAua2V5PSR7InVzZXJuYW1lIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IllvdXIgdXNlcm5hbWUgd2lsbCBiZSB2aXNpYmxlIHRvIG90aGVyIHVzZXJzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBBZGRyZXNzIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5AZXhhbXBsZS5jb20ifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiV2Ugd2lsbCBuZXZlciBzaGFyZSB5b3VyIGVtYWlsIHdpdGggYW55b25lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUGFzc3dvcmQifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7InNlY3JldDEyMyJ9CiAgICAgICAgICAgIC5rZXk9JHsicGFzc3dvcmQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2gocj0+e2xldCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHIpO2NvbnNvbGUubG9nKGBIb3Jpem9udGFsIGlucHV0ICIke3IubGFiZWx9IiBkaXNwbGF5OmAsbi5kaXNwbGF5KX0pO2xldCB0PXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0iZmlyc3ROYW1lIl0nKSxhPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0ibGFzdE5hbWUiXScpO2lmKHQmJmEpe2xldCByPWkoKCk9PntsZXQgbj10LmdldFZhbHVlKCksbz1hLmdldFZhbHVlKCk7Y29uc29sZS5sb2coYEZ1bGwgbmFtZTogJHtufSAke299YCl9LCJ1cGRhdGVGdWxsTmFtZSIpO3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsciksYS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixyKX19fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgZm9ybXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IkpvaG4ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsiZmlyc3ROYW1lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJMYXN0IE5hbWUifQogICAgICAgICAgICAgIC52YWx1ZT0keyJEb2UifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsibGFzdE5hbWUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFnZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IjI4In0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7ImFnZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goYT0+e2xldCByPWEubGFiZWxQb3NpdGlvbjtjb25zb2xlLmxvZyhgSW5wdXQgIiR7YS5sYWJlbH0iIGhhcyBsYWJlbCBwb3NpdGlvbjogJHtyfWApfSk7bGV0IHQ9cy5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LXRleHRbbGFiZWxQb3NpdGlvbj0ibGVmdCJdJyk7dC5sZW5ndGg+MCYmY29uc29sZS5sb2coYCR7dC5sZW5ndGh9IGlucHV0cyBoYXZlIGxlZnQtYWxpZ25lZCBsYWJlbHMgZm9yIGlubGluZSBsYXlvdXRgKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTGFiZWwgUG9zaXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBsYWJlbCBwb3NpdGlvbmluZyBvcHRpb25zIGZvciB2YXJpb3VzIGxheW91dHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiTGFiZWwgb24gVG9wIChEZWZhdWx0KSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJTdGFuZGFyZCBsYXlvdXQifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJ0b3AifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIExlZnQifQogICAgICAgICAgICAudmFsdWU9JHsiSW5saW5lIGxhYmVsIn0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiQ2l0eSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJOZXcgWW9yayJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlpJUCBDb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjEwMDAxIn0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB2YWxpZGF0aW9uIHN0YXRlcyBhbmQgaW5wdXQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJyZXF1aXJlZEZpZWxkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBGaWVsZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJDYW5ub3QgZWRpdCB0aGlzIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgd2l0aCBWYWxpZGF0aW9uIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImludmFsaWRAIn0KICAgICAgICAgICAgLnZhbGlkYXRpb25GdW5jdGlvbj0ke3M9Pi9eW15cc0BdK0BbXlxzQF0rXC5bXlxzQF0rJC8udGVzdChzKT97dmFsaWQ6ITAsbWVzc2FnZToiRW1haWwgYWRkcmVzcyBpcyB2YWxpZCJ9Ont2YWxpZDohMSxtZXNzYWdlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0W2lzUGFzc3dvcmRCb29sXSIpLmZvckVhY2godD0+e2xldCBhPXQscj1pKCgpPT57bGV0IG49YS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO24mJmNvbnNvbGUubG9nKGBQYXNzd29yZCBmaWVsZCAiJHthLmxhYmVsfSIgdHlwZTpgLG4udHlwZSl9LCJjaGVja1RvZ2dsZSIpO2lmKGEuc2hhZG93Um9vdCl7bGV0IG49bmV3IE11dGF0aW9uT2JzZXJ2ZXIociksbz1hLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtvJiZuLm9ic2VydmUobyx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJ0eXBlIl19KX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQWR2YW5jZWQgRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiUGFzc3dvcmQgdmlzaWJpbGl0eSB0b2dnbGUgYW5kIG90aGVyIGFkdmFuY2VkIGZlYXR1cmVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlBhc3N3b3JkIHdpdGggVG9nZ2xlIn0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJteVNlY3VyZVBhc3N3b3JkMTIzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkNsaWNrIHRoZSBleWUgaWNvbiB0byBzaG93L2hpZGUgcGFzc3dvcmQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkFQSSBLZXkifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7InNrLTEyMzQ1Njc4OTBhYmNkZWYifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiS2VlcCB0aGlzIGtleSBzZWN1cmUgYW5kIG5ldmVyIHNoYXJlIGl0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKSx0PXMucXVlcnlTZWxlY3RvcigiI3RleHQtaW5wdXQtb3V0cHV0Iik7ZSYmdCYmZS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3QudGV4dENvbnRlbnQ9YEN1cnJlbnQgdmFsdWU6ICIke2UuZ2V0VmFsdWUoKX0iYH0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRyeSB0eXBpbmcgaW4gdGhlIGlucHV0IHRvIHNlZSByZWFsLXRpbWUgdmFsdWUgY2hhbmdlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgIC5sYWJlbD0keyJEeW5hbWljIElucHV0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHNvbWV0aGluZyBoZXJlLi4uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0idGV4dC1pbnB1dC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCI+Q3VycmVudCB2YWx1ZTogIiI8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGV1LE1vLGZuZSx4aD1nKCgpPT57RzEoKTt6aSgpO1lkYSgpO0NyKCk7cGUoKTtwdCgpO29yKCk7ZXU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE1vPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxmbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LXRleHQiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXTt2YXIgST1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0VGV4dCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBQPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sYz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx5PVtMKHtyZWZsZWN0OiEwfSldLE49W0woe2F0dHJpYnV0ZTohMX0pXSxPPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxIPVtMKHthdHRyaWJ1dGU6ITF9KV0sZXUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsdWUiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWx1ZSwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbHVlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbyxsKSxldSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGFzc3dvcmRCb29sIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJpc1Bhc3N3b3JkQm9vbCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmlzUGFzc3dvcmRCb29sLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuaXNQYXNzd29yZEJvb2w9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLGV1KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2hvd1Bhc3N3b3JkQm9vbCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNob3dQYXNzd29yZEJvb2wsImdldCIpLHNldDppKChSLEspPT57Ui5zaG93UGFzc3dvcmRCb29sPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxldSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsaWRhdGlvblN0YXRlImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsaWRhdGlvblN0YXRlLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmFsaWRhdGlvblN0YXRlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbSxmKSxldSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJ2YWxpZGF0aW9uVGV4dCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmFsaWRhdGlvblRleHQ9S30sInNldCIpfSxtZXRhZGF0YTpQfSxNLHopLGV1KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvbkZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJ2YWxpZGF0aW9uRnVuY3Rpb24iaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWxpZGF0aW9uRnVuY3Rpb24sImdldCIpLHNldDppKChSLEspPT57Ui52YWxpZGF0aW9uRnVuY3Rpb249S30sInNldCIpfSxtZXRhZGF0YTpQfSxDLF8pLGV1KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmludGVncmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZpbnRlZ3JhdGVkImluIFIsImhhcyIpLGdldDppKFI9PlIudmludGVncmF0ZWQsImdldCIpLHNldDppKChSLEspPT57Ui52aW50ZWdyYXRlZD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LCQsRSksZXUodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZENvbmZpcm1lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsaWRDb25maXJtZWQiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWxpZENvbmZpcm1lZCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbGlkQ29uZmlybWVkPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sayxTKSxldShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpQfSxudWxsLHQpLEk9YT1lLnZhbHVlLFAmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UH0pfXN0YXRpYyBkZW1vPUtkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9TW8odGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoUCl7dGhpcy4jZT1QfSN0PShNbyh0aGlzLGwpLE1vKHRoaXMsZCwhMSkpO2dldCBpc1Bhc3N3b3JkQm9vbCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1Bhc3N3b3JkQm9vbChQKXt0aGlzLiN0PVB9I2E9KE1vKHRoaXMsdSksTW8odGhpcyxiLCExKSk7Z2V0IHNob3dQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1Bhc3N3b3JkQm9vbChQKXt0aGlzLiNhPVB9I3M9KE1vKHRoaXMsdiksTW8odGhpcyxtLHZvaWQgMCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgdmFsaWRhdGlvblN0YXRlKFApe3RoaXMuI3M9UH0jaT0oTW8odGhpcyxmKSxNbyh0aGlzLE0sIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsaWRhdGlvblRleHQoUCl7dGhpcy4jaT1QfSNyPShNbyh0aGlzLHopLE1vKHRoaXMsQyx2b2lkIDApKTtnZXQgdmFsaWRhdGlvbkZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZhbGlkYXRpb25GdW5jdGlvbihQKXt0aGlzLiNyPVB9I289KE1vKHRoaXMsXyksTW8odGhpcywkLCExKSk7Z2V0IHZpbnRlZ3JhdGVkKCl7cmV0dXJuIHRoaXMuI299c2V0IHZpbnRlZ3JhdGVkKFApe3RoaXMuI289UH0jbj0oTW8odGhpcyxFKSxNbyh0aGlzLGssITEpKTtnZXQgdmFsaWRDb25maXJtZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdmFsaWRDb25maXJtZWQoUCl7dGhpcy4jbj1QfXZhbGlkVGltZW91dD1Nbyh0aGlzLFMpO3N0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogYXV0bzsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCg6Zm9jdXMpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogUGFzc3dvcmQgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuc2hvd1Bhc3N3b3JkIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDFweDsKICAgICAgICB0b3A6IDIwcHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzhweDsKICAgICAgICBoZWlnaHQ6IDM4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwOwogICAgICB9CgogICAgICAuc2hvd1Bhc3N3b3JkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWQgY2hlY2ttYXJrIGljb24gKi8KICAgICAgLnZhbGlkSWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMHB4OwogICAgICAgIHRvcDogMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkSWNvbi5zaG93IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudmFsaWRJY29uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIuaW52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIud2FybiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4xKSIsImhzbCgyNSA5NSUgNjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIudmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAvKiBFcnJvciBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJpbnZhbGlkIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMDUpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogV2FybmluZyBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0id2FybiJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ3YXJuIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMDUpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWQgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9InZhbGlkIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0idmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4wNSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogVmlzdWFsbHkgaW50ZWdyYXRlZCBtb2RlOiBzaGVkIGNocm9tZSB0byBibGVuZCBpbnRvIGEgaG9zdCBjb21wb25lbnQKICAgICAgICAgKGUuZy4gYSBkZWVzLXRhYmxlIGNlbGwgaW4gZWRpdCBtb2RlKS4gKi8KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgZGVlcy1sYWJlbCwKICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLm1haW5jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBpbnB1dCB7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCg6Zm9jdXMpLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNob3dQYXNzd29yZCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICBpbnB1dCB7CiAgICAgICAgICBmb250LWZhbWlseTogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyQ4OiJpbmhlcml0In07CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyIwLjVweCI6Im5vcm1hbCJ9OwogICAgICAgICAgcGFkZGluZy1yaWdodDogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyI0OHB4Ijp0aGlzLnZhbGlkQ29uZmlybWVkPyI0MHB4IjoiMTJweCJ9OwogICAgICAgIH0KICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQmJiF0aGlzLnZhbGlkQ29uZmlybWVkP0pgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGA6SmAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9IiR7dGhpcy5pc1Bhc3N3b3JkQm9vbCYmIXRoaXMuc2hvd1Bhc3N3b3JkQm9vbD8icGFzc3dvcmQiOiJ0ZXh0In0iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLnVwZGF0ZVZhbHVlfSIKICAgICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgcGxhY2Vob2xkZXI9IiR7dGhpcy5sYWJlbD8iIjoiRW50ZXIgdGV4dC4uLiJ9IgogICAgICAgICAgLz4KICAgICAgICAgICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvd1Bhc3N3b3JkIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBhc3N3b3JkVmlld30+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLnNob3dQYXNzd29yZEJvb2w/Imx1Y2lkZTpFeWUiOiJsdWNpZGU6RXllT2ZmIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkSWNvbiAke3RoaXMudmFsaWRDb25maXJtZWQ/InNob3ciOiIifSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbkNvbnRhaW5lciAke3RoaXMudmFsaWRhdGlvblN0YXRlfHwiaW52YWxpZCJ9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0fQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIiPjwvZGl2PmB9CiAgICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uJiZ0aGlzLnZhbHVlKXtsZXQgUD10aGlzLnZhbGlkYXRpb25GdW5jdGlvbih0aGlzLnZhbHVlKTt0aGlzLnZhbGlkYXRpb25TdGF0ZT1QLnZhbGlkPyJ2YWxpZCI6ImludmFsaWQiLHRoaXMudmFsaWRhdGlvblRleHQ9UC5tZXNzYWdlfHwiIixQLnZhbGlkJiYodGhpcy52YWxpZENvbmZpcm1lZD0hMSx0aGlzLnZhbGlkVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy52YWxpZENvbmZpcm1lZD0hMCx0aGlzLnZhbGlkYXRpb25TdGF0ZT12b2lkIDB9LDUwMCkpfX1hc3luYyB1cGRhdGVWYWx1ZShQKXtsZXQgUj1QLnRhcmdldDtpZih0aGlzLnZhbHVlPVIudmFsdWUsdGhpcy52YWxpZGF0aW9uRnVuY3Rpb24pe2xldCBLPXRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uKHRoaXMudmFsdWUpO3RoaXMudmFsaWRhdGlvblN0YXRlPUsudmFsaWQ/InZhbGlkIjoiaW52YWxpZCIsdGhpcy52YWxpZGF0aW9uVGV4dD1LLm1lc3NhZ2V8fCIiLEsudmFsaWQ/KHRoaXMudmFsaWRDb25maXJtZWQ9ITEsY2xlYXJUaW1lb3V0KHRoaXMudmFsaWRUaW1lb3V0KSx0aGlzLnZhbGlkVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy52YWxpZENvbmZpcm1lZD0hMCx0aGlzLnZhbGlkYXRpb25TdGF0ZT12b2lkIDB9LDUwMCkpOihjbGVhclRpbWVvdXQodGhpcy52YWxpZFRpbWVvdXQpLHRoaXMudmFsaWRDb25maXJtZWQ9ITEpfXRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKSxSPVAuc2VsZWN0aW9uU3RhcnQhPT1QLnNlbGVjdGlvbkVuZDtyZXR1cm5be25hbWU6IkN1dCIsaWNvbk5hbWU6Imx1Y2lkZTpTY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixkaXNhYmxlZDohUixhY3Rpb246aShhc3luYygpPT57bGV0IEs9dGhpcy52YWx1ZS5zdWJzdHJpbmcoUC5zZWxlY3Rpb25TdGFydCxQLnNlbGVjdGlvbkVuZCk7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSyk7bGV0IFY9UC5zZWxlY3Rpb25TdGFydDt0aGlzLnZhbHVlPXRoaXMudmFsdWUuc3Vic3RyaW5nKDAsVikrdGhpcy52YWx1ZS5zdWJzdHJpbmcoUC5zZWxlY3Rpb25FbmQpLFAudmFsdWU9dGhpcy52YWx1ZSxQLnNldFNlbGVjdGlvblJhbmdlKFYsViksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsc2hvcnRjdXQ6IkNtZCtDIixkaXNhYmxlZDohUixhY3Rpb246aShhc3luYygpPT57bGV0IEs9dGhpcy52YWx1ZS5zdWJzdHJpbmcoUC5zZWxlY3Rpb25TdGFydCxQLnNlbGVjdGlvbkVuZCk7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSyl9LCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixpY29uTmFtZToibHVjaWRlOkNsaXBib2FyZFBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgSz1hd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLnJlYWRUZXh0KCksVj1QLnNlbGVjdGlvblN0YXJ0LFc9UC5zZWxlY3Rpb25FbmQ7dGhpcy52YWx1ZT10aGlzLnZhbHVlLnN1YnN0cmluZygwLFYpK0srdGhpcy52YWx1ZS5zdWJzdHJpbmcoVyksUC52YWx1ZT10aGlzLnZhbHVlLFAuc2V0U2VsZWN0aW9uUmFuZ2UoVitLLmxlbmd0aCxWK0subGVuZ3RoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNlbGVjdCBBbGwiLGljb25OYW1lOiJsdWNpZGU6VGV4dEN1cnNvcklucHV0IixzaG9ydGN1dDoiQ21kK0EiLGFjdGlvbjppKGFzeW5jKCk9PntQLnNlbGVjdCgpfSwiYWN0aW9uIil9XX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKFApe3RoaXMudmFsdWU9UH1hc3luYyB0b2dnbGVQYXNzd29yZFZpZXcoKXt0aGlzLnNob3dQYXNzd29yZEJvb2w9IXRoaXMuc2hvd1Bhc3N3b3JkQm9vbH1hc3luYyBmb2N1cygpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9YXN5bmMgYmx1cigpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmJsdXIoKX1zdGF0aWN7TW8oYSx0KX19O3JldHVybiBJPWF9KSgpfSk7dmFyIFpkYSxYZGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO1pkYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9kdWN0LWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0ZWQtcHJvZHVjdHMgewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiU2ltcGxlIHByb2R1Y3QgZGlzcGxheSB3aXRoIHZhcmlvdXMgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IldpcmVsZXNzIEJsdWV0b290aCBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJQcmVtaXVtIHNvdW5kIHF1YWxpdHkgd2l0aCBhY3RpdmUgbm9pc2UgY2FuY2VsbGF0aW9uIixwcmljZToxNDkuOTksb3JpZ2luYWxQcmljZToxOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTbWFydCBXYXRjaCBTZXJpZXMgNyIsY2F0ZWdvcnk6IldlYXJhYmxlcyIsZGVzY3JpcHRpb246IlRyYWNrIHlvdXIgZml0bmVzcyBhbmQgc3RheSBjb25uZWN0ZWQgb24gdGhlIGdvIixwcmljZTozOTksaWNvbk5hbWU6Imx1Y2lkZTp3YXRjaCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiVVNCLUMgSHViIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLHByaWNlOjQ5Ljk5LGljb25OYW1lOiJsdWNpZGU6dXNiIixpblN0b2NrOiExfX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBTaG9wcGluZyBDYXJ0In0gLnN1YnRpdGxlPSR7IlByb2R1Y3QgY2FyZHMgd2l0aCBkeW5hbWljIGNhcnQgY2FsY3VsYXRpb24ifSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9W3tpZDoibGFwdG9wIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0se2lkOiJpcGFkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0se2lkOiJrZXlib2FyZCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6Ik1hZ2ljIEtleWJvYXJkIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJXaXJlbGVzcyBrZXlib2FyZCB3aXRoIFRvdWNoIElEIixwcmljZToxNDksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fV0sdD1pKCgpPT57bGV0IGE9MCxyPVtdO2UuZm9yRWFjaChvPT57bGV0IGw9cy5xdWVyeVNlbGVjdG9yKGAjJHtvLmlkfWApO2lmKGwmJmwucXVhbnRpdHk+MCl7bGV0IHA9by5kYXRhLnByaWNlKmwucXVhbnRpdHk7YSs9cCxyLnB1c2goYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JHtvLmRhdGEubmFtZX0gKCR7bC5xdWFudGl0eX0pPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj4kJHtwLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9fSk7bGV0IG49cy5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Iik7biYmKG4uaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke3Iuam9pbigiIil9CiAgICAgICAgICAgICAgJHtyLmxlbmd0aD09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHthLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0sInVwZGF0ZUNhcnRTdW1tYXJ5Iik7c2V0VGltZW91dCh0LDEwMCkscy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIsdCl9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibGFwdG9wIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImlwYWQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJNYWdpYyBLZXlib2FyZCIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiV2lyZWxlc3Mga2V5Ym9hcmQgd2l0aCBUb3VjaCBJRCIscHJpY2U6MTQ5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+U2hvcHBpbmcgQ2FydDwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJpbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkiPgogICAgICAgICAgICA8IS0tIER5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNlbGVjdGFibGUgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJDbGljayBjYXJkcyBvciBjaGVja2JveGVzIHRvIHNlbGVjdCBwcm9kdWN0cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBBbHBoYSA3IElWIixjYXRlZ29yeToiQ2FtZXJhcyIsZGVzY3JpcHRpb246IkZ1bGwtZnJhbWUgbWlycm9ybGVzcyBjYW1lcmEiLHByaWNlOjI0OTgsaWNvbk5hbWU6Imx1Y2lkZTpjYW1lcmEifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksYT1bXTt0LmZvckVhY2gocj0+e3Iuc2VsZWN0ZWQmJmEucHVzaChyLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1hLmxlbmd0aD4wP2BTZWxlY3RlZDogJHthLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJESkkgTWluaSAzIFBybyIsY2F0ZWdvcnk6IkRyb25lcyIsZGVzY3JpcHRpb246IkxpZ2h0d2VpZ2h0IGRyb25lIHdpdGggNEsgY2FtZXJhIixwcmljZTo3NTksaWNvbk5hbWU6Imx1Y2lkZTpwbGFuZSJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke3M9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxhPVtdO3QuZm9yRWFjaChyPT57ci5zZWxlY3RlZCYmYS5wdXNoKHIucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PWEubGVuZ3RoPjA/YFNlbGVjdGVkOiAke2Euam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkdvUHJvIEhFUk8xMiIsY2F0ZWdvcnk6IkFjdGlvbiBDYW1lcmFzIixkZXNjcmlwdGlvbjoiNS4zSyB2aWRlbyB3aXRoIEh5cGVyU21vb3RoIDYuMCIscHJpY2U6Mzk5LG9yaWdpbmFsUHJpY2U6NDQ5LGljb25OYW1lOiJsdWNpZGU6dmlkZW8ifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksYT1bXTt0LmZvckVhY2gocj0+e3Iuc2VsZWN0ZWQmJmEucHVzaChyLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1hLmxlbmd0aD4wP2BTZWxlY3RlZDogJHthLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGVkLXByb2R1Y3RzIiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIE5vIHByb2R1Y3RzIHNlbGVjdGVkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9kdWN0IFZhcmlhdGlvbnMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxpbWl0ZWQgRWRpdGlvbiBTbmVha2VycyIsY2F0ZWdvcnk6IkZvb3R3ZWFyIixkZXNjcmlwdGlvbjoiRXhjbHVzaXZlIGNvbG9yd2F5IC0gT25seSA1MDAgcGFpcnMiLHByaWNlOjI5OSxpY29uTmFtZToibHVjaWRlOmZvb3RwcmludHMiLGluU3RvY2s6ITEsc3RvY2tUZXh0OiJTb2xkIE91dCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWluaW1hbGlzdCBXYWxsZXQiLHByaWNlOjM5Ljk5LGljb25OYW1lOiJsdWNpZGU6d2FsbGV0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJQcmVtaXVtIENvZmZlZSBCZWFucyIsY2F0ZWdvcnk6IkZvb2QgJiBCZXZlcmFnZSIsZGVzY3JpcHRpb246IlNpbmdsZSBvcmlnaW4sIG1lZGl1bSByb2FzdCIscHJpY2U6MTguNSxpY29uTmFtZToibHVjaWRlOmNvZmZlZSIsY3VycmVuY3k6Ilx1MjBBQyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGR2LFkxLFFkYSxCZXQ9ZygoKT0+e3BlKCk7WGRhKCk7cHQoKTtucigpO2R2PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxZMT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sUWRhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6TnVtYmVyfSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLGR2KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZHVjdERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InByb2R1Y3REYXRhImluIF8sImhhcyIpLGdldDppKF89Pl8ucHJvZHVjdERhdGEsImdldCIpLHNldDppKChfLE8pPT57Xy5wcm9kdWN0RGF0YT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksZHYodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJxdWFudGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icXVhbnRpdHkiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5xdWFudGl0eSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnF1YW50aXR5PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxkdih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dRdWFudGl0eVNlbGVjdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaG93UXVhbnRpdHlTZWxlY3RvciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNob3dRdWFudGl0eVNlbGVjdG9yLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2hvd1F1YW50aXR5U2VsZWN0b3I9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLGR2KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0YWJsZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGFibGUsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RhYmxlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxkdih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2VsZWN0ZWQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLGR2KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89WmRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9WTEodGhpcyxvLHtuYW1lOiJQcm9kdWN0IE5hbWUiLHByaWNlOjB9KTtnZXQgcHJvZHVjdERhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZHVjdERhdGEoQyl7dGhpcy4jZT1DfSN0PShZMSh0aGlzLGwpLFkxKHRoaXMsZCwwKSk7Z2V0IHF1YW50aXR5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHF1YW50aXR5KEMpe3RoaXMuI3Q9Q30jYT0oWTEodGhpcyx1KSxZMSh0aGlzLGIsITApKTtnZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoQyl7dGhpcy4jYT1DfSNzPShZMSh0aGlzLHYpLFkxKHRoaXMsbSwhMSkpO2dldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGFibGUoQyl7dGhpcy4jcz1DfSNpPShZMSh0aGlzLGYpLFkxKHRoaXMsTSwhMSkpO2dldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZChDKXt0aGlzLiNpPUN9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGFibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGVkOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWhlYWRlci1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucHJvZHVjdC1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJvZHVjdC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucHJvZHVjdC1wcmljZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucHJpY2UtY3VycmVudCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnByaWNlLW9yaWdpbmFsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5pbi1zdG9jayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5vdXQtb2Ytc3RvY2sgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXR7bmFtZTpDLGNhdGVnb3J5Ol8sZGVzY3JpcHRpb246TyxwcmljZTokLG9yaWdpbmFsUHJpY2U6RSxjdXJyZW5jeTpIPSIkIixpblN0b2NrOms9ITAsc3RvY2tUZXh0OlM9az8iSW4gU3RvY2siOiJPdXQgb2YgU3RvY2siLGltYWdlVXJsOkksaWNvbk5hbWU6UD0ibHVjaWRlOnBhY2thZ2UifT10aGlzLnByb2R1Y3REYXRhLFI9aShLPT5gJHtIfSR7Sy50b0ZpeGVkKDIpfWAsImZvcm1hdFByaWNlIik7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUKICAgICAgICBjbGFzcz0iJHt0aGlzLnNlbGVjdGFibGU/InNlbGVjdGFibGUiOiIifSAke3RoaXMuc2VsZWN0ZWQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDYXJkQ2xpY2t9CiAgICAgID4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InByb2R1Y3QtaGVhZGVyLWJhciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1uYW1lIj4ke0N9PC9zcGFuPgogICAgICAgICAgJHtfP3dgPHNwYW4gY2xhc3M9InByb2R1Y3QtY2F0ZWdvcnkiPiR7X308L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1pbWFnZSI+CiAgICAgICAgICAgICR7ST93YAogICAgICAgICAgICAgIDxpbWcgc3JjPSIke0l9IiBhbHQ9IiR7Q30iPgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke1B9PjwvZGVlcy1pY29uPgogICAgICAgICAgICBgfQogICAgICAgICAgICAke3RoaXMuc2VsZWN0YWJsZT93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJzZWxlY3Rpb24tY2hlY2tib3ggJHt0aGlzLnNlbGVjdGVkPyJjaGVja2VkIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHtLPT57Sy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnQiPgogICAgICAgICAgICAke08/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWRlc2NyaXB0aW9uIj4ke099PC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0b2NrLXN0YXR1cyAke2s/ImluLXN0b2NrIjoib3V0LW9mLXN0b2NrIn0iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtrPyJsdWNpZGU6Y2hlY2stY2lyY2xlIjoibHVjaWRlOngtY2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgJHtTfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0icHJvZHVjdC1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1wcmljZSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1jdXJyZW50Ij4ke1IoJCl9PC9zcGFuPgogICAgICAgICAgICAke0UmJkU+JD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1vcmlnaW5hbCI+JHtSKEUpfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnNob3dRdWFudGl0eVNlbGVjdG9yP3dgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnF1YW50aXR5fQogICAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7Sz0+e3RoaXMucXVhbnRpdHk9Sy5kZXRhaWwuZ2V0VmFsdWUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJxdWFudGl0eUNoYW5nZSIse2RldGFpbDp7cXVhbnRpdHk6dGhpcy5xdWFudGl0eSxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWhhbmRsZUNhcmRDbGljaygpe3RoaXMuc2VsZWN0YWJsZSYmKHRoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpe3RoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFkxKHRoaXMseil9c3RhdGlje1kxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBKZGEsZTBhPWcoKCk9PntwZSgpO0JldCgpO0pkYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaG9wcGluZy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnktdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXRvdGFsIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFF1YW50aXR5IFNlbGVjdG9yIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBxdWFudGl0eSBpbnB1dCB3aXRoIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTZWxlY3QgdGhlIGRlc2lyZWQgcXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWluaW11bSBvcmRlciBxdWFudGl0eSBpcyAxIGl0ZW0ifQogICAgICAgICAgICAudmFsdWU9JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgLmxhYmVsPSR7Ikl0ZW1zIGluIENhcnQifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRqdXN0IHRoZSBxdWFudGl0eSBvZiBpdGVtcyJ9CiAgICAgICAgICAgIC52YWx1ZT0kezN9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTaG9wcGluZyBDYXJ0In0gLnN1YnRpdGxlPSR7Ik1vZGVybiBlLWNvbW1lcmNlIHByb2R1Y3QgY2FyZHMgd2l0aCBpbnRlcmFjdGl2ZSBxdWFudGl0eSBzZWxlY3RvcnMifSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9aSgoKT0+e2xldCB0PXMucXVlcnlTZWxlY3RvcigiI2hlYWRwaG9uZXMtcXR5IiksYT1zLnF1ZXJ5U2VsZWN0b3IoIiNtb3VzZS1xdHkiKSxyPXMucXVlcnlTZWxlY3RvcigiI2tleWJvYXJkLXF0eSIpLG49dD8ucXVhbnRpdHl8fDAsbz1hPy5xdWFudGl0eXx8MCxsPXI/LnF1YW50aXR5fHwwLHA9MzQ5Ljk5Km4sZD05OS45OSpvLHU9NzkuOTkqbCxjPXArZCt1LGI9cy5xdWVyeVNlbGVjdG9yKCIjY2FydC1zdW1tYXJ5LWNvbnRlbnQiKTtiJiYoYi5pbm5lckhUTUw9YAogICAgICAgICAgICAgICR7bj4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+U29ueSBXSC0xMDAwWE01ICgke259KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke3AudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke28+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPkxvZ2l0ZWNoIE1YIE1hc3RlciAzUyAoJHtvfSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtkLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtsPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5LZXljaHJvbiBLMiAoJHtsfSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHt1LnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtjPT09MD8nPGRpdiBjbGFzcz0iY2FydC1pdGVtIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTsiPllvdXIgY2FydCBpcyBlbXB0eTwvZGl2Pic6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC10b3RhbCI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2MudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfSwidXBkYXRlQ2FydFN1bW1hcnkiKTtzZXRUaW1lb3V0KGUsMTAwKSxzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoInF1YW50aXR5Q2hhbmdlIixlKX0pfX0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcHBpbmctZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0iaGVhZHBob25lcy1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTb255IFdILTEwMDBYTTUgV2lyZWxlc3MgSGVhZHBob25lcyIsY2F0ZWdvcnk6IkF1ZGlvIixkZXNjcmlwdGlvbjoiSW5kdXN0cnktbGVhZGluZyBub2lzZSBjYW5jZWxpbmcgd2l0aCBBdXRvIE5DIE9wdGltaXplciIscHJpY2U6MzQ5Ljk5LG9yaWdpbmFsUHJpY2U6Mzk5Ljk5LGljb25OYW1lOiJsdWNpZGU6aGVhZHBob25lcyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9Im1vdXNlLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxvZ2l0ZWNoIE1YIE1hc3RlciAzUyIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiUGVyZm9ybWFuY2Ugd2lyZWxlc3MgbW91c2Ugd2l0aCB1bHRyYS1mYXN0IHNjcm9sbGluZyIscHJpY2U6OTkuOTksaWNvbk5hbWU6Imx1Y2lkZTptb3VzZS1wb2ludGVyIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiS2V5Y2hyb24gSzIgV2lyZWxlc3MgTWVjaGFuaWNhbCBLZXlib2FyZCIsY2F0ZWdvcnk6IktleWJvYXJkcyIsZGVzY3JpcHRpb246IkNvbXBhY3QgNzUlIGxheW91dCB3aXRoIGhvdC1zd2FwcGFibGUgc3dpdGNoZXMiLHByaWNlOjc5Ljk5LG9yaWdpbmFsUHJpY2U6OTQuOTksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgIDxoMyBjbGFzcz0iY2FydC1zdW1tYXJ5LXRpdGxlIj5PcmRlciBTdW1tYXJ5PC9oMz4KICAgICAgICAgIDxkaXYgaWQ9ImNhcnQtc3VtbWFyeS1jb250ZW50Ij4KICAgICAgICAgICAgPCEtLSBDb250ZW50IHdpbGwgYmUgZHluYW1pY2FsbHkgdXBkYXRlZCAtLT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUmVxdWlyZWQgJiBEaXNhYmxlZCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBmb3IgdmFsaWRhdGlvbiBhbmQgcmVzdHJpY3Rpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgLmxhYmVsPSR7Ik51bWJlciBvZiBMaWNlbnNlcyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTZWxlY3QgaG93IG1hbnkgbGljZW5zZXMgeW91IG5lZWQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJGaXhlZCBRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIHF1YW50aXR5IGNhbm5vdCBiZSBjaGFuZ2VkIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezV9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJPcmRlciBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIG9yZGVyIGZvcm0gd2l0aCBxdWFudGl0eSBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ3VzdG9tZXIgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIFBsYW4iLCJQcm8gUGxhbiIsIkVudGVycHJpc2UgUGxhbiJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJOdW1iZXIgb2YgbGljZW5zZXMifQogICAgICAgICAgICAudmFsdWU9JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiU3BlY2lhbCBJbnN0cnVjdGlvbnMifQogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIHQwYSxIZXQsbW5lLHFldD1nKCgpPT57cGUoKTtrdCgpO3ppKCk7ZTBhKCk7cHQoKTt0MGE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEhldD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbW5lPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFF1YW50aXR5U2VsZWN0b3IiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk51bWJlcn0pXSx0MGEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4idmFsdWUiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS52YWx1ZSwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnZhbHVlPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSx0MGEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1KZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUhldCh0aGlzLG8sMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IgewogICAgICAgICAgZmxleDogMCAwIDQwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RvcjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IucGx1cyB7CiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHkgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIH0KCiAgICAgICAgLyogS2V5Ym9hcmQgbmF2aWdhdGlvbiBmb2N1cyBzdHlsZXMgKi8KICAgICAgICAuc2VsZWN0b3I6Zm9jdXMgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAvKiBNaW4gdmFsdWUgc3RhdGUgKi8KICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InF1YW50aXR5LWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICBkYXRhLW1pbj0iJHt0aGlzLnZhbHVlPD0wfSIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2VsZWN0b3IgbWludXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmRlY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2Q9PnsoZC5rZXk9PT0iRW50ZXIifHxkLmtleT09PSIgIikmJihkLnByZXZlbnREZWZhdWx0KCksdGhpcy5kZWNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkRlY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPuKIkjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icXVhbnRpdHkiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWF0b21pYz0idHJ1ZSI+JHt0aGlzLnZhbHVlfTwvZGl2PgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIHBsdXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmluY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2Q9PnsoZC5rZXk9PT0iRW50ZXIifHxkLmtleT09PSIgIikmJihkLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkluY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPis8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWluY3JlYXNlKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMudmFsdWUrKyx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9ZGVjcmVhc2UoKXshdGhpcy5kaXNhYmxlZCYmdGhpcy52YWx1ZT4wJiYodGhpcy52YWx1ZS0tLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGQpe3RoaXMudmFsdWU9ZH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksSGV0KHRoaXMsbCl9c3RhdGlje0hldChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgYTBhLHMwYT1nKCgpPT57cGUoKTtJdCgpO2ZvKCk7YTBhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtZGlzcGxheSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJhZGlvIEdyb3VwcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgc3RyaW5nIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpcHRpb24gUGxhbiJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIC0gJDkvbW9udGgiLCJQcm8gLSAkMjkvbW9udGgiLCJFbnRlcnByaXNlIC0gJDk5L21vbnRoIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlBybyAtICQyOS9tb250aCJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB5b3VyIHN1YnNjcmlwdGlvbiB0aWVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkhpZ2giLCJNZWRpdW0iLCJMb3ciXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTWVkaXVtIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJSYWRpbyBncm91cHMgd2l0aCBob3Jpem9udGFsIGFycmFuZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcz8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWWVzIiwiTm8iLCJNYXliZSJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiWWVzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHBlcmllbmNlIExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJlZ2lubmVyIiwiSW50ZXJtZWRpYXRlIiwiRXhwZXJ0Il19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbnRlcm1lZGlhdGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHlvdXIgZXhwZXJpZW5jZSBsZXZlbCB3aXRoIHdlYiBkZXZlbG9wbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBBZHZhbmNlZCBPcHRpb25zIn0gLnN1YnRpdGxlPSR7IlVzaW5nIG9iamVjdCBmb3JtYXQgd2l0aCBrZXlzIGFuZCBwYXlsb2FkcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIGlkPSJhZHZhbmNlZC1yYWRpbyIKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUmVnaW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMgKFVTIEVhc3QpIixrZXk6InVzLWVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoidXMtZWFzdC0xIixsYXRlbmN5OjIwfX0se29wdGlvbjoiRXVyb3BlIChGcmFua2Z1cnQpIixrZXk6ImV1LWNlbnRyYWwiLHBheWxvYWQ6e3JlZ2lvbjoiZXUtY2VudHJhbC0xIixsYXRlbmN5OjUwfX0se29wdGlvbjoiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpIixrZXk6ImFwLXNvdXRoZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJhcC1zb3V0aGVhc3QtMSIsbGF0ZW5jeToxMjB9fV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZXUtY2VudHJhbCJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIHRoZSBjbG9zZXN0IHJlZ2lvbiBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSJ9CiAgICAgICAgICBAY2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWdpb24tcmVzdWx0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlNlbGVjdGVkOiAiK0pTT04uc3RyaW5naWZ5KHMuZGV0YWlsLnZhbHVlLG51bGwsMikpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPGRpdiBpZD0icmVnaW9uLXJlc3VsdCIgY2xhc3M9InJlc3VsdC1kaXNwbGF5Ij5TZWxlY3RlZDogeyAicmVnaW9uIjogImV1LWNlbnRyYWwtMSIsICJsYXRlbmN5IjogNTAgfTwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3VydmV5IEV4YW1wbGUifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgcmFkaW8gZ3JvdXBzIGZvciBzdXJ2ZXlzIGFuZCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkhvdyBzYXRpc2ZpZWQgYXJlIHlvdT8ifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJWZXJ5IFNhdGlzZmllZCIsIlNhdGlzZmllZCIsIk5ldXRyYWwiLCJEaXNzYXRpc2ZpZWQiLCJWZXJ5IERpc3NhdGlzZmllZCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJTYXRpc2ZpZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IldvdWxkIHlvdSByZWNvbW1lbmQgdXM/In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGVmaW5pdGVseSIsIlByb2JhYmx5IiwiTm90IFN1cmUiLCJQcm9iYWJseSBOb3QiLCJEZWZpbml0ZWx5IE5vdCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm9iYWJseSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gU3RhdGVzICYgVmFsaWRhdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCB2YWxpZGF0aW9uIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgU2VsZWN0aW9uIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siT3B0aW9uIEEiLCJPcHRpb24gQiIsIk9wdGlvbiBDIl19CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIFN0YXRlIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGlzYWJsZWQgT3B0aW9uIDEiLCJEaXNhYmxlZCBPcHRpb24gMiIsIkRpc2FibGVkIE9wdGlvbiAzIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRpc2FibGVkIE9wdGlvbiAyIn0KICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiBwYXR0ZXJucyBpbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJUaGVtZSBQcmVmZXJlbmNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTGlnaHQgVGhlbWUiLGtleToibGlnaHQiLHBheWxvYWQ6ImxpZ2h0In0se29wdGlvbjoiRGFyayBUaGVtZSIsa2V5OiJkYXJrIixwYXlsb2FkOiJkYXJrIn0se29wdGlvbjoiU3lzdGVtIERlZmF1bHQiLGtleToic3lzdGVtIixwYXlsb2FkOiJhdXRvIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZGFyayJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgYXBwZWFyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb24gRnJlcXVlbmN5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkFsbCBOb3RpZmljYXRpb25zIiwiSW1wb3J0YW50IE9ubHkiLCJOb25lIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbXBvcnRhbnQgT25seSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDb250cm9sIGhvdyBvZnRlbiB5b3UgcmVjZWl2ZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbmdsaXNoIiwiR2VybWFuIiwiRnJlbmNoIiwiU3BhbmlzaCIsIkphcGFuZXNlIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiV29ya3Mgc2VhbWxlc3NseSB3aXRoIGRlZXMtZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IE5hbWUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJwcm9kdWN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgQ2F0ZWdvcnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRWxlY3Ryb25pY3MiLCJDbG90aGluZyIsIkJvb2tzIiwiSG9tZSAmIEdhcmRlbiIsIlNwb3J0cyJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJjYXRlZ29yeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJOZXciLCJMaWtlIE5ldyIsIkdvb2QiLCJGYWlyIiwiUG9vciJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJOZXcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJTaGlwcGluZyBTcGVlZCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlN0YW5kYXJkICg1LTcgZGF5cykiLGtleToic3RhbmRhcmQiLHBheWxvYWQ6e2RheXM6NyxwcmljZTowfX0se29wdGlvbjoiRXhwcmVzcyAoMi0zIGRheXMpIixrZXk6ImV4cHJlc3MiLHBheWxvYWQ6e2RheXM6MyxwcmljZToxMH19LHtvcHRpb246Ik92ZXJuaWdodCIsa2V5OiJvdmVybmlnaHQiLHBheWxvYWQ6e2RheXM6MSxwcmljZToyNX19XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7InN0YW5kYXJkIn0KICAgICAgICAgICAgLmtleT0keyJzaGlwcGluZyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBQcm9kdWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgVFosdHUsZ25lLGJuZT1nKCgpPT57cGUoKTt6aSgpO3MwYSgpO3B0KCk7VFo9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHR1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxnbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LXJhZGlvZ3JvdXAiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UmFkaW9ncm91cCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCgpXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLFRaKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3B0aW9ucyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm9wdGlvbnMsImdldCIpLHNldDppKCh6LE4pPT57ei5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxUWih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWxlY3RlZE9wdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouc2VsZWN0ZWRPcHRpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLFRaKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkaXJlY3Rpb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5kaXJlY3Rpb24sImdldCIpLHNldDppKCh6LE4pPT57ei5kaXJlY3Rpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLFRaKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ2YWxpZGF0aW9uU3RhdGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei52YWxpZGF0aW9uU3RhdGUsImdldCIpLHNldDppKCh6LE4pPT57ei52YWxpZGF0aW9uU3RhdGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLFRaKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89YTBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT10dSh0aGlzLG8sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoTSl7dGhpcy4jZT1NfSN0PSh0dSh0aGlzLGwpLHR1KHRoaXMsZCwiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZE9wdGlvbihNKXt0aGlzLiN0PU19I2E9KHR1KHRoaXMsdSksdHUodGhpcyxiLCJ2ZXJ0aWNhbCIpKTtnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpcmVjdGlvbihNKXt0aGlzLiNhPU19I3M9KHR1KHRoaXMsdiksdHUodGhpcyxtLG51bGwpKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25TdGF0ZShNKXt0aGlzLiNzPU19Z2V0IHZhbHVlKCl7bGV0IE09dGhpcy5nZXRPcHRpb25CeUtleSh0aGlzLnNlbGVjdGVkT3B0aW9uKTtyZXR1cm4gdHlwZW9mIE09PSJvYmplY3QiJiZNLnBheWxvYWQhPT12b2lkIDA/TS5wYXlsb2FkOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKE0pe2lmKHR5cGVvZiBNPT0ic3RyaW5nIil0aGlzLnNlbGVjdGVkT3B0aW9uPU07ZWxzZXtsZXQgej10aGlzLm9wdGlvbnMuZmluZChOPT50eXBlb2YgTj09Im9iamVjdCImJk4ucGF5bG9hZD09PU0pO3omJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHRoaXMuc2VsZWN0ZWRPcHRpb249ei5rZXkpfX1zdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmhvcml6b250YWwgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDIwcHggNnB4IDA7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tY2lyY2xlIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZTo6YWZ0ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGU6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgMy45JSkiKX0sCiAgICAgICAgICAgICAgICAgICAgMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICB9CgogICAgICAubGFiZWwtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdKSAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0idmFsaWQiXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9Indhcm4iXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLyogT3ZlcnJpZGUgYmFzZSBncmlkIGxheW91dCBmb3IgcmFkaW9ncm91cCB0byBwcmV2ZW50IGxhcmdlIGdhcHMgKi8KICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJsZWZ0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJsYWJlbC10ZXh0Ij4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcChNPT57bGV0IHo9dGhpcy5nZXRPcHRpb25LZXkoTSksTj10aGlzLmdldE9wdGlvbkxhYmVsKE0pLEM9dGhpcy5zZWxlY3RlZE9wdGlvbj09PXo7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1vcHRpb24gJHtDPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdE9wdGlvbih6KX0iCiAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHtfPT50aGlzLmhhbmRsZUtleWRvd24oXyx6KX0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9InJhZGlvLWNpcmNsZSIgCiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICAgICAgICByb2xlPSJyYWRpbyIKICAgICAgICAgICAgICAgICAgYXJpYS1jaGVja2VkPSIke0N9IgogICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSIke059IgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaW8tbGFiZWwiPiR7Tn08L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0T3B0aW9uS2V5KE0pe3JldHVybiB0eXBlb2YgTT09InN0cmluZyI/TTpNLmtleX1nZXRPcHRpb25MYWJlbChNKXtyZXR1cm4gdHlwZW9mIE09PSJzdHJpbmciP006TS5vcHRpb259Z2V0T3B0aW9uQnlLZXkoTSl7cmV0dXJuIHRoaXMub3B0aW9ucy5maW5kKHo9PnRoaXMuZ2V0T3B0aW9uS2V5KHopPT09TSl9c2VsZWN0T3B0aW9uKE0pe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCB6PXRoaXMuc2VsZWN0ZWRPcHRpb247dGhpcy5zZWxlY3RlZE9wdGlvbj1NLHohPT1NJiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKE0pe3RoaXMudmFsdWU9TX1hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYhdGhpcy5zZWxlY3RlZE9wdGlvbj8odGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExKToodGhpcy52YWxpZGF0aW9uU3RhdGU9InZhbGlkIiwhMCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoIXRoaXMuc2VsZWN0ZWRPcHRpb24mJnRoaXMub3B0aW9ucy5sZW5ndGg+MCYmIXRoaXMucmVxdWlyZWQpe2xldCBNPXRoaXMub3B0aW9uc1swXTt0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMuZ2V0T3B0aW9uS2V5KE0pfX1oYW5kbGVLZXlkb3duKE0seil7dGhpcy5kaXNhYmxlZHx8KE0ua2V5PT09IiAifHxNLmtleT09PSJFbnRlciI/KE0ucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbGVjdE9wdGlvbih6KSk6TS5rZXk9PT0iQXJyb3dEb3duInx8TS5rZXk9PT0iQXJyb3dSaWdodCI/KE0ucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE9wdGlvbigpKTooTS5rZXk9PT0iQXJyb3dVcCJ8fE0ua2V5PT09IkFycm93TGVmdCIpJiYoTS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNQcmV2aW91c09wdGlvbigpKSl9Zm9jdXNOZXh0T3B0aW9uKCl7bGV0IE09QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnJhZGlvLWNpcmNsZSIpKSxOPShNLmZpbmRJbmRleChDPT5DPT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpKzEpJU0ubGVuZ3RoO01bTl0uZm9jdXMoKX1mb2N1c1ByZXZpb3VzT3B0aW9uKCl7bGV0IE09QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnJhZGlvLWNpcmNsZSIpKSx6PU0uZmluZEluZGV4KEM9PkM9PT10aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCksTj16PD0wP00ubGVuZ3RoLTE6ei0xO01bTl0uZm9jdXMoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdHUodGhpcyxmKX1zdGF0aWN7dHUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIGkwYSxyMGE9ZygoKT0+e3BlKCk7aTBhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAyNHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gaDMgewogICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogIzg4ODsKICAgIH0KICAgIC5kZW1vLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTJweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJhc2ljIFVzYWdlPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlN1Ym1pdCBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHRleHQ9IldpdGggVGV4dCBQcm9wZXJ0eSI+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5XaXRoIEljb25zIChpbmhlcml0ZWQgZnJvbSBEZWVzQnV0dG9uKTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6c2VuZCI+U3VibWl0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzYXZlIiBpY29uUG9zaXRpb249ImxlZnQiPlNhdmUgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6YXJyb3ctcmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiPkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CdXR0b24gVHlwZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdHlwZT0iaGlnaGxpZ2h0ZWQiIGljb249Imx1Y2lkZTpzZW5kIj5IaWdobGlnaHRlZDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdHlwZT0iZGlzY3JlZXQiIGljb249Imx1Y2lkZTpzZW5kIj5EaXNjcmVldDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc2l6ZT0ic21hbGwiIGljb249Imx1Y2lkZTpzZW5kIj5TbWFsbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc2l6ZT0ibGFyZ2UiIGljb249Imx1Y2lkZTpzZW5kIj5MYXJnZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U3RhdGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0ibm9ybWFsIiBpY29uPSJsdWNpZGU6c2VuZCI+Tm9ybWFsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0icGVuZGluZyIgaWNvbj0ibHVjaWRlOnNlbmQiPlBlbmRpbmc8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJzdWNjZXNzIiBpY29uPSJsdWNpZGU6Y2hlY2siPlN1Y2Nlc3M8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJlcnJvciIgaWNvbj0ibHVjaWRlOngiPkVycm9yPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGRpc2FibGVkIGljb249Imx1Y2lkZTpzZW5kIj5EaXNhYmxlZDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SW4gYSBGb3JtIENvbnRleHQ8L2gzPgogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iRW1haWwiIGtleT0iZW1haWwiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIiB0eXBlPSJoaWdobGlnaHRlZCI+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgeWgsQ24sdm5lLEE4PWcoKCk9PntyMGEoKTtwZSgpO3B0KCk7eWg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LENuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx2bmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWZvcm0tc3VibWl0IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNGb3JtU3VibWl0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx5PVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLE49W0woe3R5cGU6U3RyaW5nfSldLE89W0woe3R5cGU6U3RyaW5nfSldLHloKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImRpc2FibGVkImluIFMsImhhcyIpLGdldDppKFM9PlMuZGlzYWJsZWQsImdldCIpLHNldDppKChTLEkpPT57Uy5kaXNhYmxlZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCkseWgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0ZXh0ImluIFMsImhhcyIpLGdldDppKFM9PlMudGV4dCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRleHQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHloKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdGF0dXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdGF0dXMsImdldCIpLHNldDppKChTLEkpPT57Uy5zdGF0dXM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLHloKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idHlwZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnR5cGUsImdldCIpLHNldDppKChTLEkpPT57Uy50eXBlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSx5aCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNpemUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaXplLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2l6ZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seikseWgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpY29uImluIFMsImhhcyIpLGdldDppKFM9PlMuaWNvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmljb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLHloKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpY29uUG9zaXRpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pY29uUG9zaXRpb24sImdldCIpLHNldDppKChTLEkpPT57Uy5pY29uUG9zaXRpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLHloKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89aTBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRm9ybSIsIkJ1dHRvbiJdOyNlPUNuKHRoaXMsbywhMSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRpc2FibGVkKGspe3RoaXMuI2U9a30jdD0oQ24odGhpcyxsKSxDbih0aGlzLGQsdm9pZCAwKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dChrKXt0aGlzLiN0PWt9I2E9KENuKHRoaXMsdSksQ24odGhpcyxiLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNhfXNldCBzdGF0dXMoayl7dGhpcy4jYT1rfSNzPShDbih0aGlzLHYpLENuKHRoaXMsbSwiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNzfXNldCB0eXBlKGspe3RoaXMuI3M9a30jaT0oQ24odGhpcyxmKSxDbih0aGlzLE0sImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2l6ZShrKXt0aGlzLiNpPWt9I3I9KENuKHRoaXMseiksQ24odGhpcyxDLHZvaWQgMCkpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGljb24oayl7dGhpcy4jcj1rfSNvPShDbih0aGlzLF8pLENuKHRoaXMsJCwibGVmdCIpKTtnZXQgaWNvblBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI299c2V0IGljb25Qb3NpdGlvbihrKXt0aGlzLiNvPWt9Y29uc3RydWN0b3IoKXtzdXBlcigpLENuKHRoaXMsRSl9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgZGVlcy1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgLnN0YXR1cz0ke3RoaXMuc3RhdHVzfQogICAgICAgIC50eXBlPSR7dGhpcy50eXBlfQogICAgICAgIC5zaXplPSR7dGhpcy5zaXplfQogICAgICAgIC5pY29uPSR7dGhpcy5pY29ufQogICAgICAgIC5pY29uUG9zaXRpb249JHt0aGlzLmljb25Qb3NpdGlvbn0KICAgICAgICAudGV4dD0ke3RoaXMudGV4dH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgIEBjbGlja2VkPSR7dGhpcy5zdWJtaXR9CiAgICAgID48L2RlZXMtYnV0dG9uPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZighdGhpcy50ZXh0KXtsZXQgaz10aGlzLnRleHRDb250ZW50Py50cmltKCk7ayYmKHRoaXMudGV4dD1rKX19YXN5bmMgc3VibWl0KCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IGs9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtrJiZrLmdhdGhlckFuZERpc3BhdGNoJiZrLmdhdGhlckFuZERpc3BhdGNoKCl9YXN5bmMgZm9jdXMoKXtsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmRpc2FibGVkfHwoYXdhaXQgay5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWl0KCkpfXN0YXRpY3tDbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgbzBhLG4wYT1nKCgpPT57cGUoKTtJdCgpO2ZvKCk7dXYoKTtBOCgpO28wYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3BhY2VyIHsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgQ291bnRyeSJdJyksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bbGFiZWw9IlNlbGVjdCBSb2xlIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2NvbnNvbGUubG9nKCJDb3VudHJ5IHNlbGVjdGVkOiIsYS5kZXRhaWwpfSkpLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChhPT57Y29uc29sZS5sb2coIlJvbGUgc2VsZWN0ZWQ6IixhLmRldGFpbCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIERyb3Bkb3ducyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCBkcm9wZG93biB3aXRoIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGFuZCB2YXJpb3VzIG9wdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBDb3VudHJ5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB0aGUgY291bnRyeSB3aGVyZSB5b3VyIGJ1c2luZXNzIGlzIHJlZ2lzdGVyZWQifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn0se29wdGlvbjoiQXVzdHJhbGlhIixrZXk6ImF1In0se29wdGlvbjoiSmFwYW4iLGtleToianAifSx7b3B0aW9uOiJCcmF6aWwiLGtleToiYnIifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBSb2xlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQWRtaW5pc3RyYXRvciIsa2V5OiJhZG1pbiJ9LHtvcHRpb246IkVkaXRvciIsa2V5OiJlZGl0b3IifSx7b3B0aW9uOiJWaWV3ZXIiLGtleToidmlld2VyIn0se29wdGlvbjoiR3Vlc3QiLGtleToiZ3Vlc3QifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwodD0+e2NvbnNvbGUubG9nKGBQcmlvcml0eSBjaGFuZ2VkIHRvOiAke3QuZGV0YWlsLm9wdGlvbn1gKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gV2l0aG91dCBTZWFyY2gifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBkaXNhYmxlZCBmb3Igc2ltcGxlciBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlByaW9yaXR5IExldmVsIn0KICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkhpZ2giLGtleToiaGlnaCJ9LHtvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiJMb3ciLGtleToibG93In1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiTWVkaXVtIixrZXk6Im1lZGl1bSJ9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kcm9wZG93biIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChhPT57bGV0IHI9dC5nZXRBdHRyaWJ1dGUoImxhYmVsIik7Y29uc29sZS5sb2coYCR7cn06ICR7YS5kZXRhaWwub3B0aW9ufWApfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGRyb3Bkb3ducyBpbiBhIGhvcml6b250YWwgbGF5b3V0IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXBhcnRtZW50In0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdpbmVlcmluZyIsa2V5OiJlbmcifSx7b3B0aW9uOiJEZXNpZ24iLGtleToiZGVzaWduIn0se29wdGlvbjoiTWFya2V0aW5nIixrZXk6Im1hcmtldGluZyJ9LHtvcHRpb246IlNhbGVzIixrZXk6InNhbGVzIn1dfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBTaXplIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiMS01IixrZXk6InNtYWxsIn0se29wdGlvbjoiNi0yMCIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiIyMS01MCIsa2V5OiJsYXJnZSJ9LHtvcHRpb246IjUwKyIsa2V5OiJ4bGFyZ2UifV19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIC5sYWJlbD0keyJMb2NhdGlvbiJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVtb3RlIixrZXk6InJlbW90ZSJ9LHtvcHRpb246Ik9uLXNpdGUiLGtleToib25zaXRlIn0se29wdGlvbjoiSHlicmlkIixrZXk6Imh5YnJpZCJ9XX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd25bcmVxdWlyZWRdIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJSZXF1aXJlZCBkcm9wZG93biBsb3N0IGZvY3VzIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBGaWVsZCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJPcHRpb24gQSIsa2V5OiJhIn0se29wdGlvbjoiT3B0aW9uIEIiLGtleToiYiJ9LHtvcHRpb246Ik9wdGlvbiBDIixrZXk6ImMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBEcm9wZG93biJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkaXYgY2xhc3M9InNwYWNlciI+CiAgICAgIChTcGFjZXIgdG8gdGVzdCBkcm9wZG93biBwb3NpdGlvbmluZykKICAgIDwvZGl2PgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHQ9Pntjb25zb2xlLmxvZygiQm90dG9tIGRyb3Bkb3duIHNlbGVjdGVkOiIsdC5kZXRhaWwpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBCb3R0b20gUG9zaXRpb25pbmcifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gdGhhdCBvcGVucyB1cHdhcmQgd2hlbiBuZWFyIGJvdHRvbSBvZiB2aWV3cG9ydCJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiT3BlbnMgVXB3YXJkIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkZpcnN0IE9wdGlvbiIsa2V5OiJmaXJzdCJ9LHtvcHRpb246IlNlY29uZCBPcHRpb24iLGtleToic2Vjb25kIn0se29wdGlvbjoiVGhpcmQgT3B0aW9uIixrZXk6InRoaXJkIn0se29wdGlvbjoiRm91cnRoIE9wdGlvbiIsa2V5OiJmb3VydGgifSx7b3B0aW9uOiJGaWZ0aCBPcHRpb24iLGtleToiZmlmdGgifV19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKSx0PXMucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtlJiZ0JiYodC5pbm5lckhUTUw9IjxlbT5TZWxlY3QgYSBwcm9kdWN0IHRvIHNlZSBkZXRhaWxzLi4uPC9lbT4iLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2EuZGV0YWlsLnZhbHVlJiYodC5pbm5lckhUTUw9YAogICAgICAgICAgICAgIDxzdHJvbmc+U2VsZWN0ZWQ6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUub3B0aW9ufTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPktleTo8L3N0cm9uZz4gJHthLmRldGFpbC52YWx1ZS5rZXl9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+UHJpY2U6PC9zdHJvbmc+ICQke2EuZGV0YWlsLnZhbHVlLnBheWxvYWQ/LnByaWNlfHwiTi9BIn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5GZWF0dXJlczo8L3N0cm9uZz4gJHthLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5mZWF0dXJlcz8uam9pbigiLCAiKXx8Ik4vQSJ9CiAgICAgICAgICAgIGApfSkpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRXZlbnQgSGFuZGxpbmcgJiBQYXlsb2FkIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggcGF5bG9hZCBkYXRhIGFuZCBjaGFuZ2UgZXZlbnQgaGFuZGxpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBQcm9kdWN0In0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkJhc2ljIFBsYW4iLGtleToiYmFzaWMiLHBheWxvYWQ6e3ByaWNlOjkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiXX19LHtvcHRpb246IlBybyBQbGFuIixrZXk6InBybyIscGF5bG9hZDp7cHJpY2U6MTkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiXX19LHtvcHRpb246IkVudGVycHJpc2UgUGxhbiIsa2V5OiJlbnRlcnByaXNlIixwYXlsb2FkOntwcmljZTo0OS45OSxmZWF0dXJlczpbIkZlYXR1cmUgQSIsIkZlYXR1cmUgQiIsIkZlYXR1cmUgQyJdfX1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IHBhZGRpbmc6IDEycHg7IGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7IGJvcmRlci1yYWRpdXM6IDRweDsgZm9udC1zaXplOiAxNHB4OyI+PC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltrZXk9InByb2plY3RUeXBlIl0nKSxhPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltrZXk9ImZyYW1ld29yayJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKHI9Pntjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIsci5kZXRhaWwuZGF0YSl9KSksdCYmYSYmdC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHI9PntsZXQgbj1yLmRldGFpbC5rZXk7Y29uc29sZS5sb2coYFByb2plY3QgdHlwZSBjaGFuZ2VkIHRvOiAke259YCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd29ya2luZyB3aXRoaW4gYSBmb3JtIHdpdGggdmFsaWRhdGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBUeXBlIn0KICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0VHlwZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJXZWIgQXBwbGljYXRpb24iLGtleToid2ViIn0se29wdGlvbjoiTW9iaWxlIEFwcGxpY2F0aW9uIixrZXk6Im1vYmlsZSJ9LHtvcHRpb246IkRlc2t0b3AgQXBwbGljYXRpb24iLGtleToiZGVza3RvcCJ9LHtvcHRpb246IkFQSSBTZXJ2aWNlIixrZXk6ImFwaSJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wbWVudCBGcmFtZXdvcmsifQogICAgICAgICAgICAua2V5PSR7ImZyYW1ld29yayJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJSZWFjdCIsa2V5OiJyZWFjdCIscGF5bG9hZDp7dHlwZToid2ViIn19LHtvcHRpb246IlZ1ZS5qcyIsa2V5OiJ2dWUiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJBbmd1bGFyIixrZXk6ImFuZ3VsYXIiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJSZWFjdCBOYXRpdmUiLGtleToicmVhY3QtbmF0aXZlIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRmx1dHRlciIsa2V5OiJmbHV0dGVyIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRWxlY3Ryb24iLGtleToiZWxlY3Ryb24iLHBheWxvYWQ6e3R5cGU6ImRlc2t0b3AifX1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiQ3JlYXRlIFByb2plY3QifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBaMSxscix4bmUsamV0PWcoKCk9PntwZSgpO2t0KCk7em4oKTtDcigpO3B0KCk7RjEoKTtaMT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbHI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHhuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtZHJvcGRvd24tcG9wdXAiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXTt2YXIgbWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dERyb3Bkb3duUG9wdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7YXR0cmlidXRlOiExfSldLHk9W0woe2F0dHJpYnV0ZTohMX0pXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sWjEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJvcHRpb25zImluIFUsImhhcyIpLGdldDppKFU9PlUub3B0aW9ucywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5vcHRpb25zPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG8sbCksWjEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImVuYWJsZVNlYXJjaCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmVuYWJsZVNlYXJjaCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5lbmFibGVTZWFyY2g9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sZCx1KSxaMSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Im9wZW5zVG9Ub3AiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5vcGVuc1RvVG9wLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLm9wZW5zVG9Ub3A9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sYix2KSxaMSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyaWdnZXJSZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0cmlnZ2VyUmVjdCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnRyaWdnZXJSZWN0LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnRyaWdnZXJSZWN0PWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG0sZiksWjEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvd25lckNvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ib3duZXJDb21wb25lbnQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5vd25lckNvbXBvbmVudCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5vd25lckNvbXBvbmVudD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxNLHopLFoxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyZWRPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJmaWx0ZXJlZE9wdGlvbnMiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5maWx0ZXJlZE9wdGlvbnMsImdldCIpLHNldDppKChVLGhlKT0+e1UuZmlsdGVyZWRPcHRpb25zPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LEMsXyksWjEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJoaWdobGlnaHRlZEluZGV4ImluIFUsImhhcyIpLGdldDppKFU9PlUuaGlnaGxpZ2h0ZWRJbmRleCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5oaWdobGlnaHRlZEluZGV4PWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LCQsRSksWjEodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2VhcmNoVmFsdWUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zZWFyY2hWYWx1ZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zZWFyY2hWYWx1ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLFoxKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ibWVudVpJbmRleCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChVLGhlKT0+e1UubWVudVpJbmRleD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLFoxKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idmlzaWJsZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnZpc2libGUsImdldCIpLHNldDppKChVLGhlKT0+e1UudmlzaWJsZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxWLFcpLFoxKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsdCksbWU9YT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfSNlPWxyKHRoaXMsbyxbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhCKXt0aGlzLiNlPUJ9I3Q9KGxyKHRoaXMsbCksbHIodGhpcyxkLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVTZWFyY2goQil7dGhpcy4jdD1CfSNhPShscih0aGlzLHUpLGxyKHRoaXMsYiwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9wZW5zVG9Ub3AoQil7dGhpcy4jYT1CfSNzPShscih0aGlzLHYpLGxyKHRoaXMsbSxudWxsKSk7Z2V0IHRyaWdnZXJSZWN0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRyaWdnZXJSZWN0KEIpe3RoaXMuI3M9Qn0jaT0obHIodGhpcyxmKSxscih0aGlzLE0sbnVsbCkpO2dldCBvd25lckNvbXBvbmVudCgpe3JldHVybiB0aGlzLiNpfXNldCBvd25lckNvbXBvbmVudChCKXt0aGlzLiNpPUJ9I3I9KGxyKHRoaXMseiksbHIodGhpcyxDLFtdKSk7Z2V0IGZpbHRlcmVkT3B0aW9ucygpe3JldHVybiB0aGlzLiNyfXNldCBmaWx0ZXJlZE9wdGlvbnMoQil7dGhpcy4jcj1CfSNvPShscih0aGlzLF8pLGxyKHRoaXMsJCwwKSk7Z2V0IGhpZ2hsaWdodGVkSW5kZXgoKXtyZXR1cm4gdGhpcy4jb31zZXQgaGlnaGxpZ2h0ZWRJbmRleChCKXt0aGlzLiNvPUJ9I249KGxyKHRoaXMsRSksbHIodGhpcyxrLCIiKSk7Z2V0IHNlYXJjaFZhbHVlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNlYXJjaFZhbHVlKEIpe3RoaXMuI249Qn0jbD0obHIodGhpcyxTKSxscih0aGlzLFAsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbWVudVpJbmRleChCKXt0aGlzLiNsPUJ9I2M9KGxyKHRoaXMsUiksbHIodGhpcyxWLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmlzaWJsZShCKXt0aGlzLiNjPUJ9d2luZG93TGF5ZXI9KGxyKHRoaXMsVyksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMC45OCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnRvcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3guc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDJweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5uby1vcHRpb25zIHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy50cmlnZ2VyUmVjdClyZXR1cm4gd2BgO2xldCBCPXRoaXMuY29tcHV0ZVBvc2l0aW9uU3R5bGUoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJzZWxlY3Rpb25Cb3ggJHt0aGlzLnZpc2libGU/InNob3ciOiIifSAke3RoaXMub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iCiAgICAgICAgc3R5bGU9IiR7Qn07IHotaW5kZXg6ICR7dGhpcy5tZW51WkluZGV4fTsiCiAgICAgID4KICAgICAgICAke3RoaXMuZW5hYmxlU2VhcmNoP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIG9wdGlvbnMuLi4iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLnNlYXJjaFZhbHVlfSIKICAgICAgICAgICAgICAgICAgQGlucHV0PSIke3RoaXMuaGFuZGxlU2VhcmNofSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke1U9PlUuc3RvcFByb3BhZ2F0aW9uKCl9IgogICAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZVNlYXJjaEtleWRvd259IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDpudWxsfQogICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9Im5vLW9wdGlvbnMiPk5vIG9wdGlvbnMgZm91bmQ8L2Rpdj5gOnRoaXMuZmlsdGVyZWRPcHRpb25zLm1hcCgoVSxoZSk9PntsZXQgRj10aGlzLmhpZ2hsaWdodGVkSW5kZXg9PT1oZTtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcHRpb24gJHtGPyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oVSl9IgogICAgICAgICAgICAgICAgICAgIEBtb3VzZWVudGVyPSIkeygpPT50aGlzLmhpZ2hsaWdodGVkSW5kZXg9aGV9IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtVLm9wdGlvbn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb21wdXRlUG9zaXRpb25TdHlsZSgpe2xldCBCPXRoaXMudHJpZ2dlclJlY3QsVT1CLmxlZnQsaGU9Qi53aWR0aDtpZih0aGlzLm9wZW5zVG9Ub3Ape2xldCBGPXdpbmRvdy5pbm5lckhlaWdodC1CLnRvcCs0O3JldHVybmBsZWZ0OiAke1V9cHg7IHdpZHRoOiAke2hlfXB4OyBib3R0b206ICR7Rn1weDsgdG9wOiBhdXRvYH1lbHNle2xldCBGPUIuYm90dG9tKzQ7cmV0dXJuYGxlZnQ6ICR7VX1weDsgd2lkdGg6ICR7aGV9cHg7IHRvcDogJHtGfXB4YH19YXN5bmMgc2hvdygpe3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMud2luZG93TGF5ZXI9YXdhaXQgaG8uY3JlYXRlQW5kU2hvdygpLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX0pLHRoaXMubWVudVpJbmRleD14YS5nZXROZXh0WkluZGV4KCkseGEucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcyksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7cGFzc2l2ZTohMH0pfWFzeW5jIGhpZGUoKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSx4YS51bnJlZ2lzdGVyKHRoaXMpLHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wLHRoaXMud2luZG93TGF5ZXImJih0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyPW51bGwpLHRoaXMudmlzaWJsZT0hMSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy5pc0Rlc3Ryb3lpbmc9ITEpfWFzeW5jIGZvY3VzU2VhcmNoSW5wdXQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBCPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoIGlucHV0Iik7QiYmQi5mb2N1cygpfXVwZGF0ZU9wdGlvbnMoQil7aWYodGhpcy5vcHRpb25zPUIsdGhpcy5zZWFyY2hWYWx1ZSl7bGV0IFU9dGhpcy5zZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpO3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucy5maWx0ZXIoaGU9PmhlLm9wdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFUpKX1lbHNlIHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9uczt0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH1zZWxlY3RPcHRpb24oQil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib3B0aW9uLXNlbGVjdGVkIix7ZGV0YWlsOkJ9KSl9aGFuZGxlU2VhcmNoPWkoQj0+e2xldCBVPUIudGFyZ2V0LnZhbHVlO3RoaXMuc2VhcmNoVmFsdWU9VTtsZXQgaGU9VS50b0xvd2VyQ2FzZSgpO3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucy5maWx0ZXIoRj0+Ri5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhoZSkpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wfSwiaGFuZGxlU2VhcmNoIik7aGFuZGxlU2VhcmNoS2V5ZG93bj1pKEI9PntsZXQgVT1CLmtleSxoZT10aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgtMTtVPT09IkFycm93RG93biI/KEIucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4KzE+aGU/MDp0aGlzLmhpZ2hsaWdodGVkSW5kZXgrMSk6VT09PSJBcnJvd1VwIj8oQi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD10aGlzLmhpZ2hsaWdodGVkSW5kZXgtMTwwP2hlOnRoaXMuaGlnaGxpZ2h0ZWRJbmRleC0xKTpVPT09IkVudGVyIj8oQi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0mJnRoaXMuc2VsZWN0T3B0aW9uKHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0pKTpVPT09IkVzY2FwZSImJihCLnByZXZlbnREZWZhdWx0KCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKSl9LCJoYW5kbGVTZWFyY2hLZXlkb3duIik7aGFuZGxlU2Nyb2xsT3JSZXNpemU9aSgoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcG9zaXRpb24tcmVxdWVzdCIpKX0sImhhbmRsZVNjcm9sbE9yUmVzaXplIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSx4YS51bnJlZ2lzdGVyKHRoaXMpfXN0YXRpY3tscihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIHB2LFgxLHluZSx3bmU9ZygoKT0+e3BlKCk7bjBhKCk7emkoKTtDcigpO3B0KCk7amV0KCk7cHY9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFgxPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx5bmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWRyb3Bkb3duIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dERyb3Bkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKCldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx5PVtZKCldLHB2KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ib3B0aW9ucyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLm9wdGlvbnMsImdldCIpLHNldDppKChfLE8pPT57Xy5vcHRpb25zPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxwdih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZE9wdGlvbiJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2VsZWN0ZWRPcHRpb249T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLHB2KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlU2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJlbmFibGVTZWFyY2giaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5lbmFibGVTZWFyY2gsImdldCIpLHNldDppKChfLE8pPT57Xy5lbmFibGVTZWFyY2g9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLHB2KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmludGVncmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InZpbnRlZ3JhdGVkImluIF8sImhhcyIpLGdldDppKF89Pl8udmludGVncmF0ZWQsImdldCIpLHNldDppKChfLE8pPT57Xy52aW50ZWdyYXRlZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZikscHYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW5lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaXNPcGVuZWQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pc09wZW5lZCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmlzT3BlbmVkPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxwdihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPW8wYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9WDEodGhpcyxvLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKEMpe3RoaXMuI2U9Q30jdD0oWDEodGhpcyxsKSxYMSh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZE9wdGlvbihDKXt0aGlzLiN0PUN9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKEMpe3RoaXMuc2VsZWN0ZWRPcHRpb249Q30jYT0oWDEodGhpcyx1KSxYMSh0aGlzLGIsITApKTtnZXQgZW5hYmxlU2VhcmNoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVuYWJsZVNlYXJjaChDKXt0aGlzLiNhPUN9I3M9KFgxKHRoaXMsdiksWDEodGhpcyxtLCExKSk7Z2V0IHZpbnRlZ3JhdGVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZpbnRlZ3JhdGVkKEMpe3RoaXMuI3M9Q30jaT0oWDEodGhpcyxmKSxYMSh0aGlzLE0sITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNPcGVuZWQoQyl7dGhpcy4jaT1DfXBvcHVwSW5zdGFuY2U9KFgxKHRoaXMseiksbnVsbCk7c3RhdGljIHN0eWxlcz1bSGUsLi4uT3QuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNDBweCAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3g6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94LmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogRHJvcGRvd24gYXJyb3cgKi8KICAgICAgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94Lm9wZW46OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7CiAgICAgIH0KCiAgICAgIC8qIFZpc3VhbGx5IGludGVncmF0ZWQgbW9kZTogc2hlZCBjaHJvbWUgdG8gYmxlbmQgaW50byBhIGhvc3QgY29tcG9uZW50CiAgICAgICAgIChlLmcuIGEgZGVlcy10YWJsZSBjZWxsIGluIGVkaXQgbW9kZSkuICovCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGRlZXMtbGFiZWwgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLm1haW5jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3ggewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDMycHggMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic2VsZWN0ZWRCb3ggJHt0aGlzLmlzT3BlbmVkPyJvcGVuIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLmRpc2FibGVkJiZ0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpfSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkT3B0aW9uPy5vcHRpb258fCJTZWxlY3QgYW4gb3B0aW9uIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLnNlbGVjdGVkT3B0aW9ufHxudWxsfXVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSxDLmhhcygib3B0aW9ucyIpJiZ0aGlzLnBvcHVwSW5zdGFuY2UmJnRoaXMuaXNPcGVuZWQmJnRoaXMucG9wdXBJbnN0YW5jZS51cGRhdGVPcHRpb25zKHRoaXMub3B0aW9ucyl9YXN5bmMgdXBkYXRlU2VsZWN0aW9uKEMpe3RoaXMuc2VsZWN0ZWRPcHRpb249Qyx0aGlzLmNsb3NlUG9wdXAoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3RlZE9wdGlvbiIse2RldGFpbDpDLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9YXN5bmMgdG9nZ2xlU2VsZWN0aW9uQm94KCl7aWYodGhpcy5pc09wZW5lZCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufXRoaXMuaXNPcGVuZWQ9ITA7bGV0IF89dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE89d2luZG93LmlubmVySGVpZ2h0LV8uYm90dG9tLCQ9Xy50b3AsRT1PPDMwMCYmJD5PO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgeG5lKSx0aGlzLnBvcHVwSW5zdGFuY2Uub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVNlYXJjaD10aGlzLmVuYWJsZVNlYXJjaCx0aGlzLnBvcHVwSW5zdGFuY2Uub3BlbnNUb1RvcD1FLHRoaXMucG9wdXBJbnN0YW5jZS50cmlnZ2VyUmVjdD1fLHRoaXMucG9wdXBJbnN0YW5jZS5vd25lckNvbXBvbmVudD10aGlzLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLnNob3coKSx0aGlzLmVuYWJsZVNlYXJjaCYmYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLmZvY3VzU2VhcmNoSW5wdXQoKX1jbG9zZVBvcHVwKCl7dGhpcy5pc09wZW5lZD0hMSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCkpfWhhbmRsZU9wdGlvblNlbGVjdGVkPWkoQz0+e2xldCBfPUMuZGV0YWlsO3RoaXMudXBkYXRlU2VsZWN0aW9uKF8pfSwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQiKTtoYW5kbGVDbG9zZVJlcXVlc3Q9aSgoKT0+e3RoaXMuY2xvc2VQb3B1cCgpfSwiaGFuZGxlQ2xvc2VSZXF1ZXN0Iik7aGFuZGxlUmVwb3NpdGlvblJlcXVlc3Q9aSgoKT0+e2lmKCF0aGlzLnBvcHVwSW5zdGFuY2V8fCF0aGlzLmlzT3BlbmVkKXJldHVybjtsZXQgQz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkQm94Iik7aWYoIUMpcmV0dXJuO2xldCBfPUMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoXy5ib3R0b208MHx8Xy50b3A+d2luZG93LmlubmVySGVpZ2h0KXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59bGV0IE89d2luZG93LmlubmVySGVpZ2h0LV8uYm90dG9tLCQ9Xy50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9TzwzMDAmJiQ+Tyx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X30sImhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0Iik7aGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3duKEMpe3RoaXMuZGlzYWJsZWR8fChDLmtleT09PSJFbnRlciJ8fEMua2V5PT09IiAiPyhDLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6Qy5rZXk9PT0iQXJyb3dEb3duInx8Qy5rZXk9PT0iQXJyb3dVcCI/KEMucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkfHx0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpKTpDLmtleT09PSJFc2NhcGUiJiYoQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWQmJnRoaXMuY2xvc2VQb3B1cCgpKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShDKXt0aGlzLnNlbGVjdGVkT3B0aW9uPUN9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje1gxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBsMGEsYzBhPWcoKCk9PntwZSgpO1ZldCgpO2ZvKCk7bDBhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1zaGVsbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDExNjBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7CiAgICAgICAgICAuZGVtby1ncmlkLS10d28gewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zdGFjayB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMThweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDkwJSkiLCJoc2woMjE1IDIwJSAyNiUpIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTMgMTAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyNSUgMzIlKSIsImhzbCgyMTUgMjAlIDgyJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgc3Ryb25nIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNDUlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zaGVsbCI+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7Ik1vZGVybiBmaWxlIHVwbG9hZGVyIn0KICAgICAgICAuc3VidGl0bGU9JHsiU2hhZGNuLWluc3BpcmVkIGxheW91dCB3aXRoIGRyYWcgJiBkcm9wLCBwcmV2aWV3cyBhbmQgdmFsaWRhdGlvbiJ9CiAgICAgID4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIGRlbW8tZ3JpZC0tdHdvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkF0dGFjaG1lbnRzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWQgc3VwcG9ydGluZyBkb2N1bWVudHMgZm9yIHlvdXIgcmVxdWVzdCJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWNjZXB0ZWQgZm9ybWF0czogaW1hZ2VzLCBQREYsIGFuZCBaSVAgYXJjaGl2ZXMgdXAgdG8gMTBNQiJ9CiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlLyosLnBkZiwuemlwIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTAqMTAyNCoxMDI0fQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkJyYW5kIGFzc2V0cyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXJ5IChKUEcvUE5HKSJ9CiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlL2pwZWcsaW1hZ2UvcG5nIn0KICAgICAgICAgICAgICAgIC5tdWx0aXBsZT0keyExfQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5idXR0b25UZXh0PSR7IlNlbGVjdCBjb3ZlciBpbWFnZSJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJBdWRpbyB1cGxvYWRzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTaGFyZSBwb2RjYXN0IGRyYWZ0cyAoTVAzL1dBViwgbWF4IDI1TUIgZWFjaCkifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJhdWRpby8qIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MjUqMTAyNCoxMDI0fQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGV4YW1wbGUifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IlVwbG9hZGVyIGlzIGRpc2FibGVkIHdoaWxlIG1vZGVyYXRpb24gaXMgcGVuZGluZyJ9CiAgICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkZvcm0gaW50ZWdyYXRpb24ifQogICAgICAgIC5zdWJ0aXRsZT0keyJDb21iaW5lIGZpbGUgdXBsb2FkcyB3aXRoIHRoZSByZXN0IG9mIHRoZSBERUVTIGZvcm0gZWNvc3lzdGVtIn0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IG5hbWUifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IkhvdyBzaG91bGQgd2UgcmVmZXIgdG8gdGhpcyBwcm9qZWN0IGludGVybmFsbHk/In0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0TmFtZSJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ29udGFjdCBlbWFpbCJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7ImVtYWlsIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJjb250YWN0RW1haWwifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IlN0YXRlbWVudCBvZiB3b3JrIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWQgYSBzaWduZWQgc3RhdGVtZW50IG9mIHdvcmsgKFBERiwgbWF4IDE1TUIpIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJhcHBsaWNhdGlvbi9wZGYifQogICAgICAgICAgICAgICAgLm1heFNpemU9JHsxNSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5rZXk9JHsic293In0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJDcmVhdGl2ZSByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJPcHRpb25hbC4gVXBsb2FkIHVwIHRvIGZpdmUgdmlzdWFsIHJlZmVyZW5jZXMifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qIn0KICAgICAgICAgICAgICAgIC5tYXhGaWxlcz0kezV9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezgqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLmtleT0keyJyZWZlcmVuY2VzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJOb3RlcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIG9wdGlvbmFsIGNvbnRleHQgZm9yIHJldmlld2VycyJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgICAgIC5rZXk9JHsibm90ZXMifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiU3VibWl0IGJyaWVmaW5nIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgICAgICAgPHN0cm9uZz5Hb29kIHRvIGtub3c6PC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+RHJhZyAmIGRyb3AgaGlnaGxpZ2h0cyB0aGUgZHJvcHpvbmUgYW5kIHN1cHBvcnRzIGtleWJvYXJkIGFjdGl2YXRpb24uPC9saT4KICAgICAgICAgICAgICA8bGk+QWNjZXB0ZWQgZmlsZSB0eXBlcyBhcmUgc3VtbWFyaXNlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIDxjb2RlPmFjY2VwdDwvY29kZT4gYXR0cmlidXRlLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkltYWdlIHVwbG9hZHMgc2hvdyBsaXZlIHByZXZpZXdzIGdlbmVyYXRlZCB2aWEgPGNvZGU+VVJMLmNyZWF0ZU9iamVjdFVSTDwvY29kZT4uPC9saT4KICAgICAgICAgICAgICA8bGk+RmlsZSBzaXplIGFuZCBmaWxlLWNvdW50IGxpbWl0cyBzdXJmYWNlIGlubGluZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRoZSBjb21wb25lbnQgc3RheXMgY29tcGF0aWJsZSB3aXRoIDxjb2RlPmRlZXMtZm9ybTwvY29kZT4gdmFsdWUgYWNjZXNzb3JzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGQwYSx1MGE9ZygoKT0+e3BlKCk7emkoKTtwdCgpO2QwYT1bSGUsLi4uT3QuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgIDpob3N0IHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KCiAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAvKiDilIDilIAgVGlsZSBpbnRlZ3JhdGlvbiDilIDilIAgKi8KICAgIGRlZXMtdGlsZSB7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIH0KCiAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgfQoKICAgIGRlZXMtdGlsZS5kcmFnb3Zlcjo6cGFydChvdXRlcikgewogICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuMTUpIiwiaHNsKDIxMyA5MyUgNjglIC8gMC4xNSkiKX07CiAgICB9CgogICAgOmhvc3QoW2Rpc2FibGVkXSkgZGVlcy10aWxlIHsKICAgICAgb3BhY2l0eTogMC42OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAvKiDilIDilIAgSGVhZGVyIHNsb3Q6IHNsZWVrIHRvb2xiYXIg4pSA4pSAICovCiAgICAuZHJvcHpvbmUtaGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgfQoKICAgIC5kcm9wem9uZS1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmRyb3B6b25lLWxvYWRlciB7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgxNSwgMjMsIDQyLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBhbmltYXRpb246IGxvYWRlci1zcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC5kcm9wem9uZS10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmRyb3B6b25lLWJyb3dzZSB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgcGFkZGluZzogMDsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLmRyb3B6b25lLWJyb3dzZTpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5kcm9wem9uZS1icm93c2U6ZGlzYWJsZWQgewogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBvcGFjaXR5OiAwLjU7CiAgICB9CgogICAgLyog4pSA4pSAIENvbnRlbnQgc2xvdDogZmlsZSBsaXN0IGluIHJvdW5kZWQgaW5zZXQg4pSA4pSAICovCiAgICAuZmlsZS1saXN0LWVtcHR5IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4IDE2cHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICB9CgogICAgLmZpbGUtbGlzdC1lbXB0eSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgIH0KCiAgICAuZmlsZS1saXN0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIH0KCiAgICAuZmlsZS1saXN0LWhlYWRlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmZpbGUtbGlzdC1jbGVhciB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgcGFkZGluZzogMDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICB9CgogICAgLmZpbGUtbGlzdC1jbGVhcjpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5maWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZGVlcy10cmFuc2l0aW9uLWZhc3QpIGVhc2U7CiAgICB9CgogICAgLmZpbGUtcm93OmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1yb3ctaG92ZXIpOwogICAgfQoKICAgIC5maWxlLXRodW1iIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtc20pOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC5maWxlLXRodW1iIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTZweDsKICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnRodW1iLWltYWdlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICB9CgogICAgLmZpbGUtbWV0YSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMnB4OwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmZpbGUtbmFtZSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB9CgogICAgLmZpbGUtZGV0YWlscyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmZpbGUtc2l6ZSB7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB9CgogICAgLmZpbGUtdHlwZSB7CiAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOwogICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBmb250LXNpemU6IDEwcHg7CiAgICB9CgogICAgLmZpbGUtYWN0aW9ucyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteHMpOwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWRlZXMtdHJhbnNpdGlvbi1mYXN0KSBlYXNlLAogICAgICAgICAgICAgICAgICBjb2xvciB2YXIoLS1kZWVzLXRyYW5zaXRpb24tZmFzdCkgZWFzZTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSAvIDAuMDgpIiwiaHNsKDAgNjIlIDMyJSAvIDAuMTUpIil9OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC8qIOKUgOKUgCBGb290ZXIgc2xvdDogbWV0YSBjaGlwcyDilIDilIAgKi8KICAgIC5kcm9wem9uZS1mb290ZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGdhcDogNnB4OwogICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KCiAgICAubWV0YS1jaGlwIHsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgfQoKICAgIC8qIOKUgOKUgCBWYWxpZGF0aW9uIOKUgOKUgCAqLwogICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIGxvYWRlci1zcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KICBgXX0pO3ZhciAkZCxacixrbmUsVmV0PWcoKCk9Pnt6aSgpO2MwYSgpO3UwYSgpO1VhKCk7bHYoKTtucigpO3BlKCk7JGQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFpyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxrbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWZpbGV1cGxvYWQiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXTt2YXIgSz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0RmlsZXVwbG9hZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBWPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe2F0dHJpYnV0ZTohMX0pXSxwPVtZKCldLGM9W1koKV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6TnVtYmVyfSldLEg9W0woe3R5cGU6TnVtYmVyfSldLEk9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sJGQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idmFsdWUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy52YWx1ZSwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy52YWx1ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxvLGwpLCRkKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InN0YXRlImluIFcsImhhcyIpLGdldDppKFc9Plcuc3RhdGUsImdldCIpLHNldDppKChXLG1lKT0+e1cuc3RhdGU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sZCx1KSwkZCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaXNMb2FkaW5nImluIFcsImhhcyIpLGdldDppKFc9PlcuaXNMb2FkaW5nLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmlzTG9hZGluZz1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxiLHYpLCRkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnV0dG9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iYnV0dG9uVGV4dCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmJ1dHRvblRleHQsImdldCIpLHNldDppKChXLG1lKT0+e1cuYnV0dG9uVGV4dD1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxtLGYpLCRkKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJhY2NlcHQiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5hY2NlcHQsImdldCIpLHNldDppKChXLG1lKT0+e1cuYWNjZXB0PW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LE0seiksJGQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtdWx0aXBsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ibXVsdGlwbGUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5tdWx0aXBsZSwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5tdWx0aXBsZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxDLF8pLCRkKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ibWF4U2l6ZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLm1heFNpemUsImdldCIpLHNldDppKChXLG1lKT0+e1cubWF4U2l6ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSwkLEUpLCRkKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Im1heEZpbGVzImluIFcsImhhcyIpLGdldDppKFc9PlcubWF4RmlsZXMsImdldCIpLHNldDppKChXLG1lKT0+e1cubWF4RmlsZXM9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sayxTKSwkZCh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idmFsaWRhdGlvblN0YXRlImluIFcsImhhcyIpLGdldDppKFc9PlcudmFsaWRhdGlvblN0YXRlLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLnZhbGlkYXRpb25TdGF0ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxQLFIpLCRkKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlZ9LG51bGwsdCksSz1hPWUudmFsdWUsViYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpWfSl9c3RhdGljIGRlbW89bDBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1acih0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShWKXt0aGlzLiNlPVZ9I3Q9KFpyKHRoaXMsbCksWnIodGhpcyxkLCJpZGxlIikpO2dldCBzdGF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0ZShWKXt0aGlzLiN0PVZ9I2E9KFpyKHRoaXMsdSksWnIodGhpcyxiLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0xvYWRpbmcoVil7dGhpcy4jYT1WfSNzPShacih0aGlzLHYpLFpyKHRoaXMsbSwiU2VsZWN0IGZpbGVzIikpO2dldCBidXR0b25UZXh0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGJ1dHRvblRleHQoVil7dGhpcy4jcz1WfSNpPShacih0aGlzLGYpLFpyKHRoaXMsTSwiIikpO2dldCBhY2NlcHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWNjZXB0KFYpe3RoaXMuI2k9Vn0jcj0oWnIodGhpcyx6KSxacih0aGlzLEMsITApKTtnZXQgbXVsdGlwbGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbXVsdGlwbGUoVil7dGhpcy4jcj1WfSNvPShacih0aGlzLF8pLFpyKHRoaXMsJCwwKSk7Z2V0IG1heFNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4U2l6ZShWKXt0aGlzLiNvPVZ9I249KFpyKHRoaXMsRSksWnIodGhpcyxrLDApKTtnZXQgbWF4RmlsZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWF4RmlsZXMoVil7dGhpcy4jbj1WfSNsPShacih0aGlzLFMpLFpyKHRoaXMsUCxudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNsfXNldCB2YWxpZGF0aW9uU3RhdGUoVil7dGhpcy4jbD1WfSNjPShacih0aGlzLFIpLCIiKTtnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmFsaWRhdGlvbk1lc3NhZ2UoVil7dGhpcy4jYz1WfXByZXZpZXdVcmxNYXA9bmV3IFdlYWtNYXA7ZHJvcEFyZWE9bnVsbDtzdGF0aWMgc3R5bGVzPWQwYTtyZW5kZXIoKXtsZXQgVj10aGlzLmdldEFjY2VwdGVkU3VtbWFyeSgpLFc9W3RoaXMubXVsdGlwbGU/Ik11bHRpcGxlIGZpbGVzIHN1cHBvcnRlZCI6IlNpbmdsZSBmaWxlIG9ubHkiLHRoaXMubWF4U2l6ZT4wP2BNYXggJHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMubWF4U2l6ZSl9YDoiTm8gc2l6ZSBsaW1pdCJdO3JldHVybiBWJiZXLnB1c2goYEFjY2VwdHMgJHtWfWApLHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsCiAgICAgICAgICAubGFiZWw9JHt0aGlzLmxhYmVsfQogICAgICAgICAgLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy10aWxlCiAgICAgICAgICBjbGFzcz0iJHt0aGlzLnN0YXRlPT09ImRyYWdPdmVyIj8iZHJhZ292ZXIiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlRHJvcHpvbmVDbGlja30KICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVEcm9wem9uZUtleWRvd259CiAgICAgICAgICB0YWJpbmRleD0ke3RoaXMuZGlzYWJsZWQ/LTE6MH0KICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgYXJpYS1sYWJlbD0ke2BTZWxlY3QgZmlsZXMke1Y/YCAoJHtWfSlgOiIifWB9CiAgICAgICAgPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIGNsYXNzPSJmaWxlLWlucHV0IgogICAgICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBvcGFjaXR5OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHRvcDogMDsgbGVmdDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsiCiAgICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICAgID9tdWx0aXBsZT0ke3RoaXMubXVsdGlwbGV9CiAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0fHwiIn0KICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZUlucHV0Q2hhbmdlfQogICAgICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJkcm9wem9uZS1oZWFkZXIiPgogICAgICAgICAgICAke3RoaXMuaXNMb2FkaW5nP3dgPHNwYW4gY2xhc3M9ImRyb3B6b25lLWxvYWRlciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj5gOndgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VXBsb2FkIj48L2RlZXMtaWNvbj5gfQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZHJvcHpvbmUtdGl0bGUiPkRyb3AgZmlsZXMgaGVyZSBvcjwvc3Bhbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgICBjbGFzcz0iZHJvcHpvbmUtYnJvd3NlIgogICAgICAgICAgICAgIEBjbGljaz0ke21lPT57bWUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuRmlsZVNlbGVjdG9yKCl9fQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgID5icm93c2U8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnJlbmRlckZpbGVMaXN0KCl9CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImRyb3B6b25lLWZvb3RlciI+CiAgICAgICAgICAgICR7Vy5tYXAobWU9PndgPHNwYW4gY2xhc3M9Im1ldGEtY2hpcCI+JHttZX08L3NwYW4+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2U/d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiIGFyaWEtbGl2ZT0icG9saXRlIj4ke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2V9PC9kaXY+YDp3YGB9CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlTGlzdCgpe3JldHVybiB0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QtZW1wdHkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVN0YWNrIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIGZpbGVzIHNlbGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0LWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMudmFsdWUubGVuZ3RofSBmaWxlJHt0aGlzLnZhbHVlLmxlbmd0aD09PTE/IiI6InMifSBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZmlsZS1saXN0LWNsZWFyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsZWFyQWxsfT5DbGVhciAke3RoaXMudmFsdWUubGVuZ3RoPjE/ImFsbCI6IiJ9PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnZhbHVlLm1hcChWPT50aGlzLnJlbmRlckZpbGVSb3coVikpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZVJvdyhWKXtsZXQgVz10aGlzLmdldEZpbGVUeXBlKFYpLG1lPXRoaXMuY2FuU2hvd1ByZXZpZXcoVik/dGhpcy5nZXRQcmV2aWV3VXJsKFYpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtcm93ICR7V30tZmlsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS10aHVtYiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgJHttZT93YDxpbWcgY2xhc3M9InRodW1iLWltYWdlIiBzcmM9JHttZX0gYWx0PSR7YFByZXZpZXcgb2YgJHtWLm5hbWV9YH0+YDp3YDxkZWVzLWljb24gaWNvbj0ke3RoaXMuZ2V0RmlsZUljb24oVil9PjwvZGVlcy1pY29uPmB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1tZXRhIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSIgdGl0bGU9JHtWLm5hbWV9PiR7Vi5uYW1lfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1kZXRhaWxzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKFYuc2l6ZSl9PC9zcGFuPgogICAgICAgICAgICAke1chPT0iZmlsZSI/d2A8c3BhbiBjbGFzcz0iZmlsZS10eXBlIj4ke1d9PC9zcGFuPmA6d2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1hY3Rpb25zIj4KICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlRmlsZShWKX0KICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2BSZW1vdmUgJHtWLm5hbWV9YH0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6WCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUZpbGVJbnB1dENoYW5nZT1pKGFzeW5jIFY9Pnt0aGlzLmlzTG9hZGluZz0hMTtsZXQgVz1WLnRhcmdldCxtZT1BcnJheS5mcm9tKFcuZmlsZXM/P1tdKTttZS5sZW5ndGg+MCYmYXdhaXQgdGhpcy5hZGRGaWxlcyhtZSksVy52YWx1ZT0iIn0sImhhbmRsZUZpbGVJbnB1dENoYW5nZSIpO2hhbmRsZURyb3B6b25lQ2xpY2s9aShWPT57dGhpcy5kaXNhYmxlZHx8Vi50YXJnZXQuY2xvc2VzdCgiLmZpbGUtbGlzdCwgLmRyb3B6b25lLWhlYWRlciwgLmRyb3B6b25lLWZvb3RlciIpfHx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKX0sImhhbmRsZURyb3B6b25lQ2xpY2siKTtoYW5kbGVEcm9wem9uZUtleWRvd249aShWPT57dGhpcy5kaXNhYmxlZHx8KFYua2V5PT09IkVudGVyInx8Vi5rZXk9PT0iICIpJiYoVi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpKX0sImhhbmRsZURyb3B6b25lS2V5ZG93biIpO2hhbmRsZUNsZWFyQWxsPWkoVj0+e1YucHJldmVudERlZmF1bHQoKSx0aGlzLmNsZWFyQWxsKCl9LCJoYW5kbGVDbGVhckFsbCIpO2hhbmRsZURyYWdFdmVudD1pKGFzeW5jIFY9PntpZihWLnByZXZlbnREZWZhdWx0KCksVi5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5kaXNhYmxlZCl7aWYoVi50eXBlPT09ImRyYWdlbnRlciJ8fFYudHlwZT09PSJkcmFnb3ZlciIpe1YuZGF0YVRyYW5zZmVyJiYoVi5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0iY29weSIpLHRoaXMuc3RhdGU9ImRyYWdPdmVyIjtyZXR1cm59aWYoVi50eXBlPT09ImRyYWdsZWF2ZSIpe2lmKCF0aGlzLmRyb3BBcmVhKXt0aGlzLnN0YXRlPSJpZGxlIjtyZXR1cm59bGV0IFc9dGhpcy5kcm9wQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7Y2xpZW50WDptZT0wLGNsaWVudFk6Qj0wfT1WOyhtZTw9Vy5sZWZ0fHxtZT49Vy5yaWdodHx8Qjw9Vy50b3B8fEI+PVcuYm90dG9tKSYmKHRoaXMuc3RhdGU9ImlkbGUiKTtyZXR1cm59aWYoVi50eXBlPT09ImRyb3AiKXt0aGlzLnN0YXRlPSJpZGxlIjtsZXQgVz1BcnJheS5mcm9tKFYuZGF0YVRyYW5zZmVyPy5maWxlcz8/W10pO1cubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoVyl9fX0sImhhbmRsZURyYWdFdmVudCIpO2F0dGFjaERyb3BMaXN0ZW5lcnMoKXt0aGlzLmRyb3BBcmVhJiZbImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiZHJvcCJdLmZvckVhY2goVj0+e3RoaXMuZHJvcEFyZWEuYWRkRXZlbnRMaXN0ZW5lcihWLHRoaXMuaGFuZGxlRHJhZ0V2ZW50KX0pfWRldGFjaERyb3BMaXN0ZW5lcnMoKXt0aGlzLmRyb3BBcmVhJiZbImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiZHJvcCJdLmZvckVhY2goVj0+e3RoaXMuZHJvcEFyZWEucmVtb3ZlRXZlbnRMaXN0ZW5lcihWLHRoaXMuaGFuZGxlRHJhZ0V2ZW50KX0pfXJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKXtsZXQgVj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtdGlsZSIpO1YhPT10aGlzLmRyb3BBcmVhJiYodGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy5kcm9wQXJlYT1WLHRoaXMuYXR0YWNoRHJvcExpc3RlbmVycygpKX1mb3JtYXRGaWxlU2l6ZShWKXtsZXQgVz1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl07aWYoVj09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBtZT1NYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nKFYpL01hdGgubG9nKDEwMjQpKSxXLmxlbmd0aC0xKSxCPVYvTWF0aC5wb3coMTAyNCxtZSk7cmV0dXJuYCR7TWF0aC5yb3VuZChCKjEwMCkvMTAwfSAke1dbbWVdfWB9Z2V0RmlsZVR5cGUoVil7bGV0IFc9Vi50eXBlLnRvTG93ZXJDYXNlKCk7cmV0dXJuIFcuc3RhcnRzV2l0aCgiaW1hZ2UvIik/ImltYWdlIjpXPT09ImFwcGxpY2F0aW9uL3BkZiI/InBkZiI6Vy5pbmNsdWRlcygid29yZCIpfHxXLmluY2x1ZGVzKCJkb2N1bWVudCIpPyJkb2MiOlcuaW5jbHVkZXMoInNoZWV0Iil8fFcuaW5jbHVkZXMoImV4Y2VsIik/InNwcmVhZHNoZWV0IjpXLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKXx8Vy5pbmNsdWRlcygicG93ZXJwb2ludCIpPyJwcmVzZW50YXRpb24iOlcuc3RhcnRzV2l0aCgidmlkZW8vIik/InZpZGVvIjpXLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJhdWRpbyI6Vy5pbmNsdWRlcygiemlwIil8fFcuaW5jbHVkZXMoImNvbXByZXNzZWQiKT8iYXJjaGl2ZSI6ImZpbGUifWdldEZpbGVJY29uKFYpe2xldCBXPXRoaXMuZ2V0RmlsZVR5cGUoVik7cmV0dXJue2ltYWdlOiJsdWNpZGU6RmlsZUltYWdlIixwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsZG9jOiJsdWNpZGU6RmlsZVRleHQiLHNwcmVhZHNoZWV0OiJsdWNpZGU6RmlsZVNwcmVhZHNoZWV0IixwcmVzZW50YXRpb246Imx1Y2lkZTpGaWxlQmFyQ2hhcnQiLHZpZGVvOiJsdWNpZGU6RmlsZVZpZGVvIixhdWRpbzoibHVjaWRlOkZpbGVBdWRpbyIsYXJjaGl2ZToibHVjaWRlOkZpbGVBcmNoaXZlIixmaWxlOiJsdWNpZGU6RmlsZSJ9W1ddPz8ibHVjaWRlOkZpbGUifWNhblNob3dQcmV2aWV3KFYpe3JldHVybiBWLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikmJlYuc2l6ZTw1KjEwMjQqMTAyNH12YWxpZGF0ZUZpbGUoVil7aWYodGhpcy5tYXhTaXplPjAmJlYuc2l6ZT50aGlzLm1heFNpemUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgIiR7Vi5uYW1lfSIgZXhjZWVkcyB0aGUgbWF4aW11bSBzaXplIG9mICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExO2lmKHRoaXMuYWNjZXB0KXtsZXQgVz10aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChtZT0+bWUudHJpbSgpKS5maWx0ZXIobWU9Pm1lLmxlbmd0aD4wKTtpZihXLmxlbmd0aD4wKXtsZXQgbWU9ITE7Zm9yKGxldCBCIG9mIFcpaWYoQi5zdGFydHNXaXRoKCIuIikpe2lmKFYubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKEIudG9Mb3dlckNhc2UoKSkpe21lPSEwO2JyZWFrfX1lbHNlIGlmKEIuZW5kc1dpdGgoIi8qIikpe2xldCBVPUIuc2xpY2UoMCwtMik7aWYoVi50eXBlLnN0YXJ0c1dpdGgoVSkpe21lPSEwO2JyZWFrfX1lbHNlIGlmKFYudHlwZT09PUIpe21lPSEwO2JyZWFrfWlmKCFtZSlyZXR1cm4gdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gRmlsZSB0eXBlIG5vdCBhY2NlcHRlZC4gQWxsb3dlZDogJHtXLmpvaW4oIiwgIil9YCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITF9fXJldHVybiEwfWdldFByZXZpZXdVcmwoVil7bGV0IFc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChWKTtyZXR1cm4gV3x8KFc9VVJMLmNyZWF0ZU9iamVjdFVSTChWKSx0aGlzLnByZXZpZXdVcmxNYXAuc2V0KFYsVykpLFd9cmVsZWFzZVByZXZpZXcoVil7bGV0IFc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChWKTtXJiYoVVJMLnJldm9rZU9iamVjdFVSTChXKSx0aGlzLnByZXZpZXdVcmxNYXAuZGVsZXRlKFYpKX1nZXRBY2NlcHRlZFN1bW1hcnkoKXtpZighdGhpcy5hY2NlcHQpcmV0dXJuIG51bGw7bGV0IFY9QXJyYXkuZnJvbShuZXcgU2V0KHRoaXMuYWNjZXB0LnNwbGl0KCIsIikubWFwKFc9PlcudHJpbSgpKS5maWx0ZXIoVz0+Vy5sZW5ndGg+MCkubWFwKFc9PnRoaXMuZm9ybWF0QWNjZXB0VG9rZW4oVykpKSkuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBWLmxlbmd0aD09PTA/bnVsbDpWLmxlbmd0aD09PTE/VlswXTpWLmxlbmd0aD09PTI/YCR7VlswXX0sICR7VlsxXX1gOmAke1Yuc2xpY2UoMCwyKS5qb2luKCIsICIpfVx1MjAyNmB9Zm9ybWF0QWNjZXB0VG9rZW4oVil7aWYoVj09PSIqLyoiKXJldHVybiJBbGwgZmlsZXMiO2lmKFYuZW5kc1dpdGgoIi8qIikpe2xldCBCPVYuc3BsaXQoIi8iKVswXTtyZXR1cm4gQj9gJHtCLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7Qi5zbGljZSgxKX0gZmlsZXNgOiJBbGwgZmlsZXMifXJldHVybiBWLnN0YXJ0c1dpdGgoIi4iKT9WLnNsaWNlKDEpLnRvVXBwZXJDYXNlKCk6Vi5pbmNsdWRlcygicGRmIik/IlBERiI6Vi5pbmNsdWRlcygiemlwIik/IlpJUCI6Vi5pbmNsdWRlcygianNvbiIpPyJKU09OIjpWLmluY2x1ZGVzKCJtc3dvcmQiKT8iRE9DIjpWLmluY2x1ZGVzKCJ3b3JkcHJvY2Vzc2luZ21sIik/IkRPQ1giOlYuaW5jbHVkZXMoImV4Y2VsIik/IlhMUyI6Vi5pbmNsdWRlcygicHJlc2VudGF0aW9uIik/IlBQVCI6KFYuc3BsaXQoIi8iKS5wb3AoKT8/VikudG9VcHBlckNhc2UoKX1hdHRhY2hMaWZlY3ljbGVMaXN0ZW5lcnMoKXt0aGlzLnJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKX1maXJzdFVwZGF0ZWQoVil7c3VwZXIuZmlyc3RVcGRhdGVkKFYpLHRoaXMuYXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl9dXBkYXRlZChWKXtzdXBlci51cGRhdGVkKFYpLFYuaGFzKCJ2YWx1ZSIpJiZ0aGlzLnZhbGlkYXRlKCksdGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLmRldGFjaERyb3BMaXN0ZW5lcnMoKSx0aGlzLnZhbHVlLmZvckVhY2goVj0+dGhpcy5yZWxlYXNlUHJldmlldyhWKSksdGhpcy5wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgb3BlbkZpbGVTZWxlY3Rvcigpe2lmKHRoaXMuZGlzYWJsZWR8fHRoaXMuaXNMb2FkaW5nKXJldHVybjt0aGlzLmlzTG9hZGluZz0hMDtsZXQgVj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLWlucHV0Iik7aWYoIVYpe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1sZXQgVz1pKCgpPT57c2V0VGltZW91dCgoKT0+eyghVi5maWxlc3x8Vi5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLFcpfSwzMDApfSwiaGFuZGxlRm9jdXMiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLFcpLFYuY2xpY2soKX1yZW1vdmVGaWxlKFYpe2xldCBXPXRoaXMudmFsdWUuaW5kZXhPZihWKTtXPi0xJiYodGhpcy5yZWxlYXNlUHJldmlldyhWKSx0aGlzLnZhbHVlLnNwbGljZShXLDEpLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWNsZWFyQWxsKCl7bGV0IFY9Wy4uLnRoaXMudmFsdWVdO3RoaXMudmFsdWU9W10sVi5mb3JFYWNoKFc9PnRoaXMucmVsZWFzZVByZXZpZXcoVykpLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHVwZGF0ZVZhbHVlKFYpe2xldCBXPVYudGFyZ2V0O3RoaXMudmFsdWU9QXJyYXkuZnJvbShXLmZpbGVzPz9bXSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9c2V0VmFsdWUoVil7dGhpcy52YWx1ZS5mb3JFYWNoKFc9PnRoaXMucmVsZWFzZVByZXZpZXcoVykpLHRoaXMudmFsdWU9VixWLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMiLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1hc3luYyBhZGRGaWxlcyhWKXtsZXQgVz1bXTtmb3IobGV0IG1lIG9mIFYpdGhpcy52YWxpZGF0ZUZpbGUobWUpJiZXLnB1c2gobWUpO2lmKFcubGVuZ3RoPT09MCl7dGhpcy5pc0xvYWRpbmc9ITE7cmV0dXJufWlmKHRoaXMubWF4RmlsZXM+MCYmdGhpcy52YWx1ZS5sZW5ndGgrVy5sZW5ndGg+dGhpcy5tYXhGaWxlcyl7bGV0IEI9dGhpcy5tYXhGaWxlcy10aGlzLnZhbHVlLmxlbmd0aDtpZihCPD0wKXt0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBNYXhpbXVtICR7dGhpcy5tYXhGaWxlc30gZmlsZXMgYWxsb3dlZGAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLHRoaXMuaXNMb2FkaW5nPSExO3JldHVybn1XLnNwbGljZShCKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBPbmx5ICR7Qn0gbW9yZSBmaWxlKHMpIGNhbiBiZSBhZGRlZGAsdGhpcy52YWxpZGF0aW9uU3RhdGU9Indhcm4ifSF0aGlzLm11bHRpcGxlJiZXLmxlbmd0aD4wPyh0aGlzLnZhbHVlLmZvckVhY2gobWU9PnRoaXMucmVsZWFzZVByZXZpZXcobWUpKSx0aGlzLnZhbHVlPVtXWzBdXSk6dGhpcy52YWx1ZS5wdXNoKC4uLlcpLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IiIsdGhpcy52YWxpZGF0aW9uU3RhdGU9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksYXdhaXQgdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuaXNMb2FkaW5nPSExLHRoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy5idXR0b25UZXh0PXRoaXMubXVsdGlwbGU/IkFkZCBtb3JlIGZpbGVzIjoiUmVwbGFjZSBmaWxlIjp0aGlzLmJ1dHRvblRleHQ9IlNlbGVjdCBmaWxlcyJ9YXN5bmMgdmFsaWRhdGUoKXtpZih0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMucmVxdWlyZWQmJnRoaXMudmFsdWUubGVuZ3RoPT09MClyZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IlBsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIGZpbGUiLCExO2ZvcihsZXQgViBvZiB0aGlzLnZhbHVlKWlmKCF0aGlzLnZhbGlkYXRlRmlsZShWKSlyZXR1cm4hMTtyZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdGU9dGhpcy52YWx1ZS5sZW5ndGg+MD8idmFsaWQiOm51bGwsITB9c3RhdGlje1pyKGEsdCl9fTtyZXR1cm4gSz1hfSkoKX0pO3ZhciBVZXQ9ZygoKT0+e1ZldCgpfSk7ZnVuY3Rpb24gTjgocyxlPXthbGxvd1FSSUJBTjohMH0pe2lmKHM9PW51bGwpcmV0dXJuITE7bGV0IHQ9bmV3IFJlZ0V4cCgiXlswLTldezJ9JCIsIiIpLGE9cy5zbGljZSgwLDIpLHI9TmNbYV07cmV0dXJuIHI9PT12b2lkIDB8fHIuYmJhbl9yZWdleHA9PT12b2lkIDB8fHIuYmJhbl9yZWdleHA9PT1udWxsfHxyLmNoYXJzPT09dm9pZCAwPyExOnIuY2hhcnM9PT1zLmxlbmd0aCYmdC50ZXN0KHMuc2xpY2UoMiw0KSkmJnpXYShzLnNsaWNlKDQpLGEpJiZoMGEocykmJihlLmFsbG93UVJJQkFOfHwhcDBhKHMpKX1mdW5jdGlvbiB5YW8ocyxlPXthbGxvd1FSSUJBTjohMH0pe2xldCB0PXtlcnJvckNvZGVzOltdLHZhbGlkOiEwfTtpZihzIT1udWxsJiZzIT09IiIpe2xldCBhPU5jW3Muc2xpY2UoMCwyKV07aWYoIWF8fCEoYS5iYmFuX3JlZ2V4cHx8YS5jaGFycykpcmV0dXJuIHQudmFsaWQ9ITEsdC5lcnJvckNvZGVzLnB1c2goUTEuTm9JQkFOQ291bnRyeSksdDthJiZhLmNoYXJzJiZhLmNoYXJzIT09cy5sZW5ndGgmJih0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKFExLldyb25nQkJBTkxlbmd0aCkpLGEmJmEuYmJhbl9yZWdleHAmJiFXZXQocy5zbGljZSg0KSxhLmJiYW5fcmVnZXhwKSYmKHQudmFsaWQ9ITEsdC5lcnJvckNvZGVzLnB1c2goUTEuV3JvbmdCQkFORm9ybWF0KSksYSYmYS5iYmFuX3ZhbGlkYXRpb25fZnVuYyYmIWEuYmJhbl92YWxpZGF0aW9uX2Z1bmMocy5zbGljZSg0KSkmJih0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKFExLldyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSkpLG5ldyBSZWdFeHAoIl5bMC05XXsyfSQiLCIiKS50ZXN0KHMuc2xpY2UoMiw0KSl8fCh0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKFExLkNoZWNrc3VtTm90TnVtYmVyKSksKHQuZXJyb3JDb2Rlcy5pbmRleE9mKFExLldyb25nQkJBTkZvcm1hdCkhPT0tMXx8IWgwYShzKSkmJih0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKFExLldyb25nSUJBTkNoZWNrc3VtKSksIWUuYWxsb3dRUklCQU4mJnAwYShzKSYmKHQudmFsaWQ9ITEsdC5lcnJvckNvZGVzLnB1c2goUTEuUVJJQkFOTm90QWxsb3dlZCkpfWVsc2UgdC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChRMS5Ob0lCQU5Qcm92aWRlZCk7cmV0dXJuIHR9ZnVuY3Rpb24geldhKHMsZSl7aWYocz09bnVsbHx8ZT09PXZvaWQgMHx8ZT09PW51bGwpcmV0dXJuITE7bGV0IHQ9TmNbZV07cmV0dXJuIHQ9PW51bGx8fHQuYmJhbl9yZWdleHA9PT12b2lkIDB8fHQuYmJhbl9yZWdleHA9PT1udWxsfHx0LmNoYXJzPT09dm9pZCAwfHx0LmNoYXJzPT09bnVsbD8hMTp0LmNoYXJzLTQ9PT1zLmxlbmd0aCYmV2V0KHMsdC5iYmFuX3JlZ2V4cCk/dC5iYmFuX3ZhbGlkYXRpb25fZnVuYz90LmJiYW5fdmFsaWRhdGlvbl9mdW5jKHMucmVwbGFjZSgvW1xzLl0rL2csIiIpKTohMDohMX1mdW5jdGlvbiB3YW8ocyl7aWYocyE9bnVsbCl7bGV0IGU9TmNbc107aWYoZSE9PXZvaWQgMClyZXR1cm4gZS5TRVBBP2UuU0VQQTohMX1yZXR1cm4hMX1mdW5jdGlvbiBwMGEocyl7aWYocz09bnVsbClyZXR1cm4hMTtsZXQgZT1zLnNsaWNlKDAsMik7cmV0dXJuWyJMSSIsIkNIIl0uaW5jbHVkZXMoZSk/bmV3IFJlZ0V4cCgiXjNbMC0xXXsxfVswLTldezN9JCIsIiIpLnRlc3Qocy5zbGljZSg0LDkpKTohMX1mdW5jdGlvbiBrYW8ocyl7bGV0IGU9R2V0KHMuYmJhbil8fCIiO2lmKHMuY291bnRyeUNvZGU9PT1udWxsfHxzLmNvdW50cnlDb2RlPT09dm9pZCAwKXJldHVybiBudWxsO2xldCB0PU5jW3MuY291bnRyeUNvZGVdO2lmKGUhPT0iIiYmdCE9PXZvaWQgMCYmdC5jaGFycyYmdC5jaGFycyE9PW51bGwmJnQuY2hhcnM9PT1lLmxlbmd0aCs0JiZ0LmJiYW5fcmVnZXhwJiZ0LmJiYW5fcmVnZXhwIT09bnVsbCYmV2V0KGUsdC5iYmFuX3JlZ2V4cCkpe2xldCBhPUNXYShzLmNvdW50cnlDb2RlKyIwMCIrZSk7cmV0dXJuIHMuY291bnRyeUNvZGUrKCIwIisoOTgtYSkpLnNsaWNlKC0yKStlfXJldHVybiBudWxsfWZ1bmN0aW9uIFNhbyhzKXtsZXQgZT17fSx0PUdldChzKTtpZihlLmliYW49dHx8cyx0JiZOOCh0KSl7ZS5iYmFuPXQuc2xpY2UoNCksZS5jb3VudHJ5Q29kZT10LnNsaWNlKDAsMiksZS52YWxpZD0hMDtsZXQgYT1OY1tlLmNvdW50cnlDb2RlXTtpZihhLmFjY291bnRfaW5kZW50aWZpZXIpe2xldCByPWEuYWNjb3VudF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoclswXSksbz1wYXJzZUludChyWzFdKTtlLmFjY291bnROdW1iZXI9ZS5pYmFuLnNsaWNlKG4sbysxKX1pZihhLmJhbmtfaWRlbnRpZmllcil7bGV0IHI9YS5iYW5rX2lkZW50aWZpZXIuc3BsaXQoIi0iKSxuPXBhcnNlSW50KHJbMF0pLG89cGFyc2VJbnQoclsxXSk7ZS5iYW5rSWRlbnRpZmllcj1lLmJiYW4uc2xpY2UobixvKzEpfWlmKGEuYnJhbmNoX2luZGVudGlmaWVyKXtsZXQgcj1hLmJyYW5jaF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoclswXSksbz1wYXJzZUludChyWzFdKTtlLmJyYW5jaElkZW50aWZpZXI9ZS5iYmFuLnNsaWNlKG4sbysxKX19ZWxzZSBlLnZhbGlkPSExO3JldHVybiBlfWZ1bmN0aW9uIFdldChzLGUpe3JldHVybiBuZXcgUmVnRXhwKGUsIiIpLnRlc3Qocyl9ZnVuY3Rpb24gR2V0KHMpe3JldHVybiB0eXBlb2YgcyE9InN0cmluZyI/bnVsbDpzLnJlcGxhY2UoL1stXCBdL2csIiIpLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gZnYocyxlKXtpZih0eXBlb2YgcyE9InN0cmluZyIpcmV0dXJuIG51bGw7ZT09bnVsbCYmKGU9IiAiKTtsZXQgdD1HZXQocyk7cmV0dXJuIHQ9PT1udWxsP251bGw6dC5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrZSl9ZnVuY3Rpb24gaDBhKHMpe2xldCBlPXMuc2xpY2UoMCwyKSx0PXBhcnNlSW50KHMuc2xpY2UoMiw0KSwxMCksYT1zLnNsaWNlKDQpLHI9ZjBhKGAke2F9JHtlfTAwYCk7cmV0dXJuIDk4LVNuZShyKT09PXR9ZnVuY3Rpb24gZjBhKHMpe3JldHVybiBzLnNwbGl0KCIiKS5tYXAoZT0+e2xldCB0PWUuY2hhckNvZGVBdCgwKTtyZXR1cm4gdD49NjU/KHQtNTUpLnRvU3RyaW5nKCk6ZX0pLmpvaW4oIiIpfWZ1bmN0aW9uIENXYShzKXtyZXR1cm4gU25lKGYwYShzLnNsaWNlKDQpK3Muc2xpY2UoMCw0KSkpfWZ1bmN0aW9uIF9hbygpe2xldCBzPXt9O2ZvcihsZXQgZSBpbiBOYyl7bGV0IHQ9TmNbZV07c1tlXT17Y2hhcnM6dC5jaGFyc3x8bnVsbCxiYmFuX3JlZ2V4cDp0LmJiYW5fcmVnZXhwfHxudWxsLElCQU5SZWdpc3RyeTp0LklCQU5SZWdpc3RyeXx8ITEsU0VQQTp0LlNFUEF8fCExfX1yZXR1cm4gc31mdW5jdGlvbiBUV2Eocyl7aWYoIXMpcmV0dXJuITE7bGV0IGU9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKSx0PU5jW3MudG9VcHBlckNhc2UoKS5zbGljZSg0LDYpXTtyZXR1cm4gZS50ZXN0KHMpJiZ0IT09dm9pZCAwfWZ1bmN0aW9uIE1hbyhzKXtsZXQgZT17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07cmV0dXJuIHMhPW51bGwmJnMhPT0iIj9OY1tzLnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV09PT12b2lkIDA/KGUudmFsaWQ9ITEsZS5lcnJvckNvZGVzLnB1c2goJFouTm9CSUNDb3VudHJ5KSk6bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKS50ZXN0KHMpfHwoZS52YWxpZD0hMSxlLmVycm9yQ29kZXMucHVzaCgkWi5Xcm9uZ0JJQ0Zvcm1hdCkpOihlLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKCRaLk5vQklDUHJvdmlkZWQpKSxlfWZ1bmN0aW9uIHphbyhzKXtsZXQgZT17fSx0PXMudG9VcHBlckNhc2UoKTtyZXR1cm4gVFdhKHQpPyhlLmJhbmtDb2RlPXQuc2xpY2UoMCw0KSxlLmNvdW50cnlDb2RlPXQuc2xpY2UoNCw2KSxlLmxvY2F0aW9uQ29kZT10LnNsaWNlKDYsOCksZS50ZXN0QklDPWUubG9jYXRpb25Db2RlWzFdPT09IjAiLGUuYnJhbmNoQ29kZT10Lmxlbmd0aD44P3Quc2xpY2UoOCk6bnVsbCxlLnZhbGlkPSEwKTplLnZhbGlkPSExLGV9dmFyIFExLCRaLCRXYSxEV2EsU25lLGh2LExXYSxFV2EsbTBhLFBXYSxnMGEsSVdhLGIwYSxBV2EsQ2FvLE5jLEtldD1nKCgpPT57InVzZSBzdHJpY3QiO2koTjgsImlzVmFsaWRJQkFOIik7KGZ1bmN0aW9uKHMpe3Nbcy5Ob0lCQU5Qcm92aWRlZD0wXT0iTm9JQkFOUHJvdmlkZWQiLHNbcy5Ob0lCQU5Db3VudHJ5PTFdPSJOb0lCQU5Db3VudHJ5IixzW3MuV3JvbmdCQkFOTGVuZ3RoPTJdPSJXcm9uZ0JCQU5MZW5ndGgiLHNbcy5Xcm9uZ0JCQU5Gb3JtYXQ9M109Ildyb25nQkJBTkZvcm1hdCIsc1tzLkNoZWNrc3VtTm90TnVtYmVyPTRdPSJDaGVja3N1bU5vdE51bWJlciIsc1tzLldyb25nSUJBTkNoZWNrc3VtPTVdPSJXcm9uZ0lCQU5DaGVja3N1bSIsc1tzLldyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bT02XT0iV3JvbmdBY2NvdW50QmFua0JyYW5jaENoZWNrc3VtIixzW3MuUVJJQkFOTm90QWxsb3dlZD03XT0iUVJJQkFOTm90QWxsb3dlZCJ9KShRMXx8KFExPXt9KSk7aSh5YW8sInZhbGlkYXRlSUJBTiIpO2koeldhLCJpc1ZhbGlkQkJBTiIpO2kod2FvLCJpc1NFUEFDb3VudHJ5Iik7aShwMGEsImlzUVJJQkFOIik7aShrYW8sImNvbXBvc2VJQkFOIik7aShTYW8sImV4dHJhY3RJQkFOIik7aShXZXQsImNoZWNrRm9ybWF0QkJBTiIpO2koR2V0LCJlbGVjdHJvbmljRm9ybWF0SUJBTiIpO2koZnYsImZyaWVuZGx5Rm9ybWF0SUJBTiIpO2koaDBhLCJpc1ZhbGlkSUJBTkNoZWNrc3VtIik7aShmMGEsInJlcGxhY2VDaGFyYXRlcldpdGhDb2RlIik7aShDV2EsIm1vZDk3MTBJYmFuIik7aShfYW8sImdldENvdW50cnlTcGVjaWZpY2F0aW9ucyIpO2koVFdhLCJpc1ZhbGlkQklDIik7KGZ1bmN0aW9uKHMpe3Nbcy5Ob0JJQ1Byb3ZpZGVkPTBdPSJOb0JJQ1Byb3ZpZGVkIixzW3MuTm9CSUNDb3VudHJ5PTFdPSJOb0JJQ0NvdW50cnkiLHNbcy5Xcm9uZ0JJQ0Zvcm1hdD0yXT0iV3JvbmdCSUNGb3JtYXQifSkoJFp8fCgkWj17fSkpO2koTWFvLCJ2YWxpZGF0ZUJJQyIpO2koemFvLCJleHRyYWN0QklDIik7JFdhPWkocz0+e2xldCBlPVs1LDQsMywyLDcsNiw1LDQsMywyXSx0PXMucmVwbGFjZSgvW1xzLl0rL2csIiIpLGE9cGFyc2VJbnQodC5jaGFyQXQoMTApLDEwKSxyPXQuc3Vic3RyaW5nKDAsMTApLG49MDtmb3IobGV0IGw9MDtsPDEwO2wrKyluKz1wYXJzZUludChyLmNoYXJBdChsKSwxMCkqZVtsXTtsZXQgbz1uJTExO3JldHVybiBhPT09KG89PT0wPzA6MTEtbyl9LCJjaGVja05vcndheUJCQU4iKSxEV2E9aShzPT57bGV0IGU9cy5yZXBsYWNlKC9bXHMuXSsvZywiIiksdD1wYXJzZUludChlLnN1YnN0cmluZygwLGUubGVuZ3RoLTIpLDEwKSxhPXBhcnNlSW50KGUuc3Vic3RyaW5nKGUubGVuZ3RoLTIsZS5sZW5ndGgpLDEwKTtyZXR1cm4odCU5Nz09PTA/OTc6dCU5Nyk9PT1hfSwiY2hlY2tCZWxnaWFuQkJBTiIpLFNuZT1pKHM9Pntmb3IoO3MubGVuZ3RoPjI7KXtsZXQgZT1zLnNsaWNlKDAsNiksdD1wYXJzZUludChlLDEwKTtpZihpc05hTih0KSlyZXR1cm4gTmFOO3M9dCU5NytzLnNsaWNlKGUubGVuZ3RoKX1yZXR1cm4gcGFyc2VJbnQocywxMCklOTd9LCJtb2Q5NzEwIiksaHY9aShzPT57bGV0IGU9cy5yZXBsYWNlKC9bXHMuXSsvZywiIik7cmV0dXJuIFNuZShlKT09PTF9LCJjaGVja01vZDk3MTBCQkFOIiksTFdhPWkocz0+e2xldCBlPVszLDksNywxLDMsOSw3XSx0PXBhcnNlSW50KHMuY2hhckF0KDcpLDEwKSxhPXMuc3Vic3RyaW5nKDAsNykscj0wO2ZvcihsZXQgbz0wO288NztvKyspcis9cGFyc2VJbnQoYS5jaGFyQXQobyksMTApKmVbb107bGV0IG49ciUxMDtyZXR1cm4gdD09PShuPT09MD8wOjEwLW4pfSwiY2hlY2tQb2xhbmRCQkFOIiksRVdhPWkocz0+e2xldCBlPVs0LDgsNSwxMCw5LDcsMyw2XSx0PVsxLDIsNCw4LDUsMTAsOSw3LDMsNl0sYT1wYXJzZUludChzLmNoYXJBdCg4KSwxMCkscj1wYXJzZUludChzLmNoYXJBdCg5KSwxMCksbj1zLnN1YnN0cmluZygwLDgpLG89cy5zdWJzdHJpbmcoMTAsMjApLGw9MDtmb3IobGV0IGQ9MDtkPDg7ZCsrKWwrPXBhcnNlSW50KG4uY2hhckF0KGQpLDEwKSplW2RdO2xldCBwPWwlMTE7aWYoYSE9PShwPT09MD8wOnA9PT0xPzE6MTEtcCkpcmV0dXJuITE7bD0wO2ZvcihsZXQgZD0wO2Q8MTA7ZCsrKWwrPXBhcnNlSW50KG8uY2hhckF0KGQpLDEwKSp0W2RdO3JldHVybiBwPWwlMTEscj09PShwPT09MD8wOnA9PT0xPzE6MTEtcCl9LCJjaGVja1NwYWluQkJBTiIpLG0wYT1pKChzLGUpPT57bGV0IHQ9MTA7Zm9yKGxldCBhPTA7YTxzLmxlbmd0aDthKyspdCs9cGFyc2VJbnQocy5jaGFyQXQoYSksMTApLHQlMTAhPT0wJiYodD10JTEwKSx0PXQqMix0PXQlMTE7cmV0dXJuIGU9PT0oMTEtdD09PTEwPzA6MTEtdCl9LCJjaGVja01vZDExMTAiKSxQV2E9aShzPT57bGV0IGU9cGFyc2VJbnQocy5jaGFyQXQoNiksMTApLHQ9cGFyc2VJbnQocy5jaGFyQXQoMTYpLDEwKSxhPXMuc3Vic3RyaW5nKDAsNikscj1zLnN1YnN0cmluZyg3LDE2KTtyZXR1cm4gbTBhKGEsZSkmJm0wYShyLHQpfSwiY2hlY2tDcm9hdGlhbkJCQU4iKSxnMGE9aShzPT57bGV0IGU9WzEwLDUsOCw0LDIsMV0sdD1bNiwzLDcsOSwxMCw1LDgsNCwyLDFdLGE9cGFyc2VJbnQocy5jaGFyQXQoOSksMTApLHI9cGFyc2VJbnQocy5jaGFyQXQoMTkpLDEwKSxuPXMuc3Vic3RyaW5nKDQsOSksbz1zLnN1YnN0cmluZygxMCwxOSksbD0wO2ZvcihsZXQgZD0wO2Q8bi5sZW5ndGg7ZCsrKWwrPXBhcnNlSW50KG4uY2hhckF0KGQpLDEwKSplW2RdO2xldCBwPWwlMTE7aWYoYSE9PShwPT09MD8wOnA9PT0xPzE6MTEtcCkpcmV0dXJuITE7bD0wO2ZvcihsZXQgZD0wO2Q8by5sZW5ndGg7ZCsrKWwrPXBhcnNlSW50KG8uY2hhckF0KGQpLDEwKSp0W2RdO3JldHVybiBwPWwlMTEscj09PShwPT09MD8wOnA9PT0xPzE6MTEtcCl9LCJjaGVja0N6ZWNoQW5kU2xvdmFrQkJBTiIpLElXYT1pKHM9PntsZXQgZT1bNywxLDMsNywxLDMsNywxLDMsNywxLDMsN10sdD1wYXJzZUludChzLmNoYXJBdCgxNSksMTApLGE9cy5zdWJzdHJpbmcoMiwxNSkscj0wO2ZvcihsZXQgbz0wO288YS5sZW5ndGg7bysrKXIrPXBhcnNlSW50KGEuY2hhckF0KG8pLDEwKSplW29dO2xldCBuPXIlMTA7cmV0dXJuIHQ9PT0obj09PTA/MDoxMC1uKX0sImNoZWNrRXN0b25pYW5CQkFOIiksYjBhPWkocz0+e2xldCBlPXMucmVwbGFjZSgvW1xzLl0rL2csIiIpLHQ9QXJyYXkuZnJvbShlKTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IG49dFtyXS5jaGFyQ29kZUF0KDApO2lmKG4+PTY1KXN3aXRjaChuKXtjYXNlIDY1OmNhc2UgNzQ6dFtyXT0iMSI7YnJlYWs7Y2FzZSA2NjpjYXNlIDc1OmNhc2UgODM6dFtyXT0iMiI7YnJlYWs7Y2FzZSA2NzpjYXNlIDc2OmNhc2UgODQ6dFtyXT0iMyI7YnJlYWs7Y2FzZSA2ODpjYXNlIDc3OmNhc2UgODU6dFtyXT0iNCI7YnJlYWs7Y2FzZSA2OTpjYXNlIDc4OmNhc2UgODY6dFtyXT0iNSI7YnJlYWs7Y2FzZSA3MDpjYXNlIDc5OmNhc2UgODc6dFtyXT0iNiI7YnJlYWs7Y2FzZSA3MTpjYXNlIDgwOmNhc2UgODg6dFtyXT0iNyI7YnJlYWs7Y2FzZSA3MjpjYXNlIDgxOmNhc2UgODk6dFtyXT0iOCI7YnJlYWs7Y2FzZSA3MzpjYXNlIDgyOmNhc2UgOTA6dFtyXT0iOSI7YnJlYWt9fXJldHVybiBTbmUodC5qb2luKCIiKSk9PT0wfSwiY2hlY2tGcmVuY2hCQkFOIiksQVdhPWkocz0+e2xldCBlPVs5LDcsMywxLDksNywzLDEsOSw3LDMsMSw5LDcsM10sdD1wYXJzZUludChzLmNoYXJBdCg3KSwxMCksYT1zLnN1YnN0cmluZygwLDcpLHI9MDtmb3IobGV0IG89MDtvPGEubGVuZ3RoO28rKylyKz1wYXJzZUludChhLmNoYXJBdChvKSwxMCkqZVtvXTtsZXQgbj1yJTEwO2lmKHQhPT0obj09PTA/MDoxMC1uKSlyZXR1cm4hMTtpZihyPTAscy5lbmRzV2l0aCgiMDAwMDAwMDAiKSl7bGV0IG89cy5zdWJzdHJpbmcoOCwxNSksbD1wYXJzZUludChzLmNoYXJBdCgxNSksMTApO2ZvcihsZXQgZD0wO2Q8by5sZW5ndGg7ZCsrKXIrPXBhcnNlSW50KG8uY2hhckF0KGQpLDEwKSplW2RdO2xldCBwPXIlMTA7cmV0dXJuIGw9PT0ocD09PTA/MDoxMC1wKX1lbHNle2xldCBvPXMuc3Vic3RyaW5nKDgsMjMpLGw9cGFyc2VJbnQocy5jaGFyQXQoMjMpLDEwKTtmb3IobGV0IGQ9MDtkPG8ubGVuZ3RoO2QrKylyKz1wYXJzZUludChvLmNoYXJBdChkKSwxMCkqZVtkXTtsZXQgcD1yJTEwO3JldHVybiBsPT09KHA9PT0wPzA6MTAtcCl9fSwiY2hlY2tIdW5nYXJpYW5CQkFOIiksQ2FvPWkoKHMsZSk9PnR5cGVvZiBOY1tzXT4idSI/ITE6KE5jW3NdLmJiYW5fdmFsaWRhdGlvbl9mdW5jPWUsITApLCJzZXRDb3VudHJ5QkJBTlZhbGlkYXRpb24iKSxOYz17QUQ6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTIzIn0sQUU6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjMifSxBRjp7fSxBRzp7fSxBSTp7fSxBTDp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNyIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI4In0sQU06e30sQU86e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LEFROnt9LEFSOnt9LEFTOnt9LEFUOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sQVU6e30sQVc6e30sQVg6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxBWjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yOCJ9LEJBOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmh2LElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIifSxCQjp7fSxCRDp7fSxCRTp7Y2hhcnM6MTYsYmJhbl9yZWdleHA6Il5bMC05XXsxMn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpEV2EsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMTYifSxCRjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezIyfSQifSxCRzp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezZ9W0EtWjAtOV17OH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMifSxCSDp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMiJ9LEJJOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjcifSxCSjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezIyfSQifSxCTDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQifSxCTTp7fSxCTjp7fSxCTzp7fSxCUTp7fSxCUjp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXsyM31bQS1aXXsxfVtBLVowLTldezF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiOC0xMiIsYmFua19pZGVudGlmaWVyOiIwLTciLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sQlM6e30sQlQ6e30sQlY6e30sQlc6e30sQlk6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs0fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEJaOnt9LENBOnt9LENDOnt9LENEOnt9LENGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDRzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sQ0g6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeWzAtOV17NX1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LENJOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MjN9JCJ9LENLOnt9LENMOnt9LENNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDTjp7fSxDTzp7fSxDUjp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjIifSxDVTp7fSxDVjp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sQ1c6e30sQ1g6e30sQ1k6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNyIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI4In0sQ1o6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6ZzBhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sREU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTciLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTIyIn0sREo6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNyJ9LERLOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sRE06e30sRE86e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxEWjp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXsyMn0kIn0sRUM6e30sRUU6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6SVdhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIwIn0sRUc6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeWzAtOV17MjV9IixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LEVIOnt9LEVSOnt9LEVTOntjaGFyczoyNCxiYmFuX3ZhbGlkYXRpb25fZnVuYzpFV2EsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI0In0sRVQ6e30sRkk6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMCJ9LEZKOnt9LEZLOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MTJ9JCIsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMTgifSxGTTp7fSxGTzp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxGUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmIwYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI0In0sR0E6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEdCOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTkiLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sR0Q6e30sR0U6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMjIifSxHRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sR0c6e30sR0g6e30sR0k6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMyJ9LEdMOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LEdNOnt9LEdOOnt9LEdQOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxHUTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sR1I6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17N31bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNiIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjcifSxHUzp7fSxHVDp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxHVTp7fSxHVzp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezE5fSQifSxHWTp7fSxISzp7fSxITTp7fSxITjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQifSxIUjp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXsxN30kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpQV2EsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTYifSxIVDp7fSxIVTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXsyNH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpBV2EsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTYiLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sSUQ6e30sSUU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOSIsYmFua19pZGVudGlmaWVyOiIwLTMifSxJTDp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTUiLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sSU06e30sSU46e30sSU86e30sSVE6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTYiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxMS0yMyJ9LElSOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQifSxJUzp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXsyMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItMyIsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjUifSxJVDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezEwfVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi0xMCIsYmFua19pZGVudGlmaWVyOiIxLTUiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjcifSxKRTp7fSxKTTp7fSxKTzp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjQtNyJ9LEpQOnt9LEtFOnt9LEtHOnt9LEtIOnt9LEtJOnt9LEtNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxLTjp7fSxLUDp7fSxLUjp7fSxLVzp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezIyfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMjAtMzAifSxLWTp7fSxLWjp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yMCJ9LExBOnt9LExCOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezR9W0EtWjAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yOCJ9LExDOntjaGFyczozMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTMyIn0sTEk6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeWzAtOV17NX1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LExLOnt9LExSOnt9LExTOnt9LExUOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTFU6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LExWOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMjEifSxMWTp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTUiLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIxMC0yNSJ9LE1BOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQifSxNQzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmIwYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQifSxNRDp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0yNCJ9LE1FOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmh2LElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMiJ9LE1GOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxNRzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sTUg6e30sTUs6e2NoYXJzOjE5LGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxMH1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmh2LElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LE1MOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LE1NOnt9LE1OOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMCJ9LE1POnt9LE1QOnt9LE1ROntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxNUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI2In0sTVM6e30sTVQ6e2NoYXJzOjMxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs1fVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC04IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTUtMzEifSxNVTp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE5fVtBLVpdezN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi03IixiYW5rX2lkZW50aWZpZXI6IjAtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0zMCJ9LE1WOnt9LE1XOnt9LE1YOnt9LE1ZOnt9LE1aOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxOQTp7fSxOQzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sTkU6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsyMn0kIn0sTkY6e30sTkc6e30sTkk6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixiYW5rX2lkZW50aWZpZXI6IjAtMyIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxOTDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezEwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTE4In0sTk86e2NoYXJzOjE1LGJiYW5fcmVnZXhwOiJeWzAtOV17MTF9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6JFdhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE1In0sTlA6e30sTlI6e30sTlU6e30sTlo6e30sT006e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMSxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFBBOnt9LFBFOnt9LFBGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxQRzp7fSxQSDp7fSxQSzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LFBMOntjaGFyczoyOCxiYmFuX3ZhbGlkYXRpb25fZnVuYzpMV2EsYmJhbl9yZWdleHA6Il5bMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMi0yOCJ9LFBNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxQTjp7fSxQUjp7fSxQUzp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxQVDp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpodixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LFBXOnt9LFBZOnt9LFFBOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI5In0sUkU6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFJPOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMjQifSxSUzp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpodixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxSVTp7Y2hhcnM6MzMsYmJhbl9yZWdleHA6Il5bMC05XXsxNH1bQS1aMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI5LTEzIixiYW5rX2lkZW50aWZpZXI6IjAtOCIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTMtMzMifSxSVzp7fSxTQTp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyfVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjQifSxTQjp7fSxTQzp7Y2hhcnM6MzEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfVtBLVpdezN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi03IixiYW5rX2lkZW50aWZpZXI6IjAtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxTRDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMTgifSxTRTp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFNHOnt9LFNIOnt9LFNJOntjaGFyczoxOSxiYmFuX3JlZ2V4cDoiXlswLTldezE1fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmh2LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi00IixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiOS0xNiJ9LFNKOnt9LFNLOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmcwYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMH0sU0w6e30sU006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsxMH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtMTAifSxTTjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxTTzp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTYiLGFjY291bnRfaW5kZW50aWZpZXI6IjExLTIzIn0sU1I6e30sU1M6e30sU1Q6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03In0sU1Y6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LFNYOnt9LFNZOnt9LFNaOnt9LFRDOnt9LFREOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxURjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sVEc6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsyMn0kIn0sVEg6e30sVEo6e30sVEs6e30sVEw6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjMifSxUTTp7fSxUTjp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjQifSxUTzp7fSxUUjp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezE3fSQiLElCQU5SZWdpc3RyeTohMH0sVFQ6e30sVFY6e30sVFc6e30sVFo6e30sVUE6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeWzAtOV17Nn1bQS1aMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiMTUtMjkifSxVRzp7fSxVTTp7fSxVUzp7fSxVWTp7fSxVWjp7fSxWQTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0iLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjIifSxWQzp7fSxWRTp7fSxWRzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI0In0sVkk6e30sVk46e30sVlU6e30sV0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFdTOnt9LFhLOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMCJ9LFlFOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiW0EtWl17NH1bMC05XXs0fVswLTlBLVpdezE4fSIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixicmFuY2hfaW5kZW50aWZpZXI6IjQtNyJ9LFlUOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxaQTp7fSxaTTp7fSxaVzp7fX19KTt2YXIgeDBhLHkwYT1nKCgpPT57cGUoKTt4MGE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGF5bWVudC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBJQkFOIElucHV0In0gLnN1YnRpdGxlPSR7IkludGVybmF0aW9uYWwgQmFuayBBY2NvdW50IE51bWJlciB3aXRoIGF1dG9tYXRpYyBmb3JtYXR0aW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkJhbmsgQWNjb3VudCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVudGVyIHlvdXIgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IllvdXIgSUJBTiBjYW4gYmUgZm91bmQgb24geW91ciBiYW5rIHN0YXRlbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiVmVyaWZpZWQgSUJBTiJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIElCQU4gaGFzIGJlZW4gdmVyaWZpZWQifQogICAgICAgICAgICAudmFsdWU9JHsiREU4OTM3MDQwMDQ0MDUzMjAxMzAwMCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQYXltZW50IEluZm9ybWF0aW9uIn0gLnN1YnRpdGxlPSR7IklCQU4gaW5wdXQgd2l0aCBob3Jpem9udGFsIGxheW91dCBmb3IgcGF5bWVudCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJBY2NvdW50IEhvbGRlciJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IkpvaG4gRG9lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAgIC5sYWJlbD0keyJJQkFOIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiR0I4MldFU1QxMjM0NTY5ODc2NTQzMiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBmaWVsZHMgYW5kIGRpc2FibGVkIHN0YXRlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJQYXltZW50IEFjY291bnQifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiUmVxdWlyZWQgZm9yIHByb2Nlc3NpbmcgcGF5bWVudHMifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJMb2NrZWQgSUJBTiJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIElCQU4gY2Fubm90IGJlIGNoYW5nZWQifQogICAgICAgICAgICAudmFsdWU9JHsiRlIxNDIwMDQxMDEwMDUwNTAwMDEzTTAyNjA2In0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYW5rIFRyYW5zZmVyIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSBleGFtcGxlIHdpdGggSUJBTiB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlJlY2lwaWVudCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAubGFiZWw9JHsiUmVjaXBpZW50IElCQU4ifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJUcmFuc2ZlciBSZWZlcmVuY2UifSAuaW5mb1RleHQ9JHsiT3B0aW9uYWwgcmVmZXJlbmNlIGZvciB0aGUgdHJhbnNmZXIifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFtb3VudCJ9IC5pbnB1dFR5cGU9JHsibnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgX25lLFI4LE1uZSxZZXQ9ZygoKT0+e3BlKCk7a3QoKTt6aSgpO0tldCgpO3kwYSgpO3B0KCk7X25lPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxSOD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sTW5lPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1pYmFuIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dEliYW4iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W1koKV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0sX25lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW50ZXJlZFN0cmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iZW50ZXJlZFN0cmluZyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmVudGVyZWRTdHJpbmcsImdldCIpLHNldDppKChmLHkpPT57Zi5lbnRlcmVkU3RyaW5nPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxfbmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRlcmVkSWJhbklzVmFsaWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImVudGVyZWRJYmFuSXNWYWxpZCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmVudGVyZWRJYmFuSXNWYWxpZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmVudGVyZWRJYmFuSXNWYWxpZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksX25lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZhbHVlImluIGYsImhhcyIpLGdldDppKGY9PmYudmFsdWUsImdldCIpLHNldDppKChmLHkpPT57Zi52YWx1ZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksX25lKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89eDBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1SOCh0aGlzLG8sIiIpO2dldCBlbnRlcmVkU3RyaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGVudGVyZWRTdHJpbmcobSl7dGhpcy4jZT1tfSN0PShSOCh0aGlzLGwpLFI4KHRoaXMsZCwhMSkpO2dldCBlbnRlcmVkSWJhbklzVmFsaWQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKG0pe3RoaXMuI3Q9bX0jYT0oUjgodGhpcyx1KSxSOCh0aGlzLGIsIiIpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFsdWUobSl7dGhpcy4jYT1tfXN0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIElCQU4gaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbHx8IklCQU4ifSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkRFODkgMzcwNCAwMDQ0IDA1MzIgMDEzMCAwMCJ9CiAgICAgICAgICAudmFsaWRhdGlvbkZ1bmN0aW9uPSR7bT0+e2xldCBmPW0ucmVwbGFjZSgvIC9nLCIiKTtyZXR1cm4gZi5sZW5ndGg9PT0wP3t2YWxpZDohMCxtZXNzYWdlOiIifTpOOChmKT97dmFsaWQ6ITAsbWVzc2FnZToiSUJBTiBpcyB2YWxpZCJ9Ont2YWxpZDohMSxtZXNzYWdlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBJQkFOIn19fQogICAgICAgICAgQGlucHV0PSR7bT0+e3RoaXMudmFsaWRhdGVJYmFuKG0pfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQobSl7c3VwZXIuZmlyc3RVcGRhdGVkKG0pO2xldCBmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtmJiZmLmNoYW5nZVN1YmplY3QmJmYuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWFzeW5jIHZhbGlkYXRlSWJhbihtKXtsZXQgZj1tLnRhcmdldCx5PWY/LnZhbHVlO3k9eXx8IiIsdGhpcy5lbnRlcmVkU3RyaW5nIT09eSYmKHRoaXMuZW50ZXJlZFN0cmluZz1mdih5KXx8IiIsZiYmKGYudmFsdWU9dGhpcy5lbnRlcmVkU3RyaW5nLHRoaXMudmFsdWU9dGhpcy5lbnRlcmVkU3RyaW5nLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKSksdGhpcy5lbnRlcmVkSWJhbklzVmFsaWQ9TjgodGhpcy5lbnRlcmVkU3RyaW5nLnJlcGxhY2UoLyAvZywiIikpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUobSl7dGhpcy52YWx1ZT1tLHRoaXMuZW50ZXJlZFN0cmluZz1mdihtKXx8IiJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFI4KHRoaXMsdil9c3RhdGlje1I4KGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciB3MGEsazBhPWcoKCk9PntwZSgpO3cwYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2V0dGluZ3MtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NdWx0aS1PcHRpb24gVG9nZ2xlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2VsZWN0IGZyb20gbXVsdGlwbGUgb3B0aW9ucyB3aXRoIGEgc21vb3RoIHNsaWRpbmcgaW5kaWNhdG9yIGFuaW1hdGlvbi48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNwbGF5IE1vZGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQ2hvb3NlIGhvdyBjb250ZW50IGlzIGRpc3BsYXllZCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHNldHRpbmcgYWZmZWN0cyBob3cgaXRlbXMgYXBwZWFyIG9uIHlvdXIgZGFzaGJvYXJkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxpc3QgVmlldyIsIkdyaWQgVmlldyIsIkNvbXBhY3QiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkdyaWQgVmlldyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJULVNoaXJ0IFNpemUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IHlvdXIgcHJlZmVycmVkIHNpemUifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWFMiLCJTIiwiTSIsIkwiLCJYTCIsIlhYTCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkJvb2xlYW4gVG9nZ2xlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2ltcGxlIG9uL29mZiBzd2l0Y2hlcyB3aXRoIGN1c3RvbWl6YWJsZSBsYWJlbHMgZm9yIGNsZWFyZXIgY29udGV4dC48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVuYWJsZSBvciBkaXNhYmxlIHB1c2ggbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidHJ1ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJUaGVtZSBNb2RlIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlN3aXRjaCBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrIHRoZW1lIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRGFyayJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkxpZ2h0In0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRhcmsifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TZXR0aW5ncyBHcmlkPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29uZmlndXJhdGlvbiBvcHRpb25zIGFycmFuZ2VkIGluIGEgcmVzcG9uc2l2ZSBncmlkIGxheW91dC48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJBdXRvLVNhdmUifQogICAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiRGlzYWJsZWQifQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmFibGVkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRW5nbGlzaCIsIkdlcm1hbiIsIkZyZW5jaCIsIlNwYW5pc2giXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5nbGlzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJRdWFsaXR5In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siTG93IiwiTWVkaXVtIiwiSGlnaCIsIlVsdHJhIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkhpZ2gifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHJpdmFjeSJ9CiAgICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcml2YXRlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0YXRlcyAmIEZvcm0gSW50ZWdyYXRpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5FeGFtcGxlcyBvZiBkaXNhYmxlZCBzdGF0ZXMgYW5kIGludGVncmF0aW9uIHdpdGhpbiBmb3Jtcy48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgVHlwZSJ9CiAgICAgICAgICAuaW5mb1RleHQ9JHsiVGhpcyBzZXR0aW5nIGlzIGxvY2tlZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siRnJlZSIsIlBybyIsIkVudGVycHJpc2UiXX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbnRlcnByaXNlIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgCiAgICAgICAgPGJyPjxicj4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlZpc2liaWxpdHkifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJMaWNlbnNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk1JVCIsIkFwYWNoZSAyLjAiLCJHUEwgdjMiLCJQcm9wcmlldGFyeSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTUlUIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIE84LEtsLHpuZSxaZXQ9ZygoKT0+e3BlKCk7emkoKTtHMSgpO2swYSgpO3B0KCk7Tzg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEtsPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx6bmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LW11bHRpdG9nZ2xlIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dE11bHRpdG9nZ2xlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKCldLGM9W0woKV0seD1bTCh7dHlwZTpBcnJheX0pXSx5PVtMKCldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPOCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InR5cGUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS50eXBlLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudHlwZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksTzgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuVHJ1ZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImJvb2xlYW5UcnVlTmFtZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmJvb2xlYW5UcnVlTmFtZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmJvb2xlYW5UcnVlTmFtZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGQsdSksTzgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuRmFsc2VOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJib29sZWFuRmFsc2VOYW1lImluIEUsImhhcyIpLGdldDppKEU9PkUuYm9vbGVhbkZhbHNlTmFtZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmJvb2xlYW5GYWxzZU5hbWU9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLE84KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ib3B0aW9ucyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm9wdGlvbnMsImdldCIpLHNldDppKChFLEgpPT57RS5vcHRpb25zPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSxPOCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzZWxlY3RlZE9wdGlvbiJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc2VsZWN0ZWRPcHRpb249SH0sInNldCIpfSxtZXRhZGF0YTokfSxNLHopLE84KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJib29sVmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5ib29sVmFsdWUsImdldCIpLHNldDppKChFLEgpPT57RS5ib29sVmFsdWU9SH0sInNldCIpfSxtZXRhZGF0YTokfSxDLF8pLE84KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOiR9LG51bGwsdCksTz1hPWUudmFsdWUsJCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTokfSl9c3RhdGljIGRlbW89dzBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1LbCh0aGlzLG8sIm11bHRpIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZSgkKXt0aGlzLiNlPSR9I3Q9KEtsKHRoaXMsbCksS2wodGhpcyxkLCJ0cnVlIikpO2dldCBib29sZWFuVHJ1ZU5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYm9vbGVhblRydWVOYW1lKCQpe3RoaXMuI3Q9JH0jYT0oS2wodGhpcyx1KSxLbCh0aGlzLGIsImZhbHNlIikpO2dldCBib29sZWFuRmFsc2VOYW1lKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJvb2xlYW5GYWxzZU5hbWUoJCl7dGhpcy4jYT0kfSNzPShLbCh0aGlzLHYpLEtsKHRoaXMsbSxbXSkpO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG9wdGlvbnMoJCl7dGhpcy4jcz0kfSNpPShLbCh0aGlzLGYpLEtsKHRoaXMsTSwiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZE9wdGlvbigkKXt0aGlzLiNpPSR9I3I9KEtsKHRoaXMseiksS2wodGhpcyxDLCExKSk7Z2V0IGJvb2xWYWx1ZSgpe3JldHVybiB0aGlzLiNyfXNldCBib29sVmFsdWUoJCl7dGhpcy4jcj0kfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKCQpe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mICQ9PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPSQ/dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5ib29sZWFuRmFsc2VOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb249JCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbnMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogICAgICB9CgogICAgICAub3B0aW9uIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KCiAgICAgIC5vcHRpb246aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNlNGU0ZTciKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5pbmRpY2F0b3IgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gOHB4KTsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbmRpY2F0b3Iubm8tdHJhbnNpdGlvbiB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnNlbGVjdGlvbnMgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAub3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuaW5kaWNhdG9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIsInJnYmEoMTEzLCAxMTMsIDEyMiwgMC4xNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3Rpb25zIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImluZGljYXRvciI+PC9kaXY+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAoJD0+d2A8ZGl2IGNsYXNzPSJvcHRpb24gJHskPT09dGhpcy5zZWxlY3RlZE9wdGlvbj8ic2VsZWN0ZWQiOiIifSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU2VsZWN0aW9uKCQpfT4KICAgICAgICAgICAgICAgICR7JH0KICAgICAgICAgICAgICA8L2Rpdj4gYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnR5cGU9PT0iYm9vbGVhbiImJnRoaXMub3B0aW9ucy5sZW5ndGg9PT0wJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0sdGhpcy5zZWxlY3RlZE9wdGlvbnx8KHRoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiKSksIXRoaXMuc2VsZWN0ZWRPcHRpb24mJnRoaXMub3B0aW9ucy5sZW5ndGg+MCYmKHRoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5vcHRpb25zWzBdKX1hc3luYyBmaXJzdFVwZGF0ZWQoJCl7c3VwZXIuZmlyc3RVcGRhdGVkKCQpLHRoaXMudHlwZT09PSJib29sZWFuIiYmKHRoaXMub3B0aW9ucz1bdGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIix0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSJdKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxhd2FpdCBuZXcgUHJvbWlzZShFPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoRSkpLHRoaXMuc2V0SW5kaWNhdG9yKCl9YXN5bmMgaGFuZGxlU2VsZWN0aW9uKCQpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnNlbGVjdGVkT3B0aW9uPSQsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnNldEluZGljYXRvcigpKX1pbmRpY2F0b3JJbml0aWFsaXplZD0oS2wodGhpcyxfKSwhMSk7YXN5bmMgc2V0SW5kaWNhdG9yKCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbmRpY2F0b3IiKSxFPXRoaXMub3B0aW9ucy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRPcHRpb24pO2lmKEU9PT0tMXx8ISQpeyQmJigkLnN0eWxlLm9wYWNpdHk9IjAiKTtyZXR1cm59bGV0IEg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYC5vcHRpb246bnRoLWNoaWxkKCR7RSsyfSlgKTskJiZIJiYodGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZHx8KCQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITAsc2V0VGltZW91dCgoKT0+eyQuY2xhc3NMaXN0LnJlbW92ZSgibm8tdHJhbnNpdGlvbiIpfSw1MCkpLCQuc3R5bGUud2lkdGg9YCR7SC5jbGllbnRXaWR0aH1weGAsJC5zdHlsZS5sZWZ0PWAke0gub2Zmc2V0TGVmdH1weGAsJC5zdHlsZS5vcGFjaXR5PSIxIil9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy50eXBlPT09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249PT10aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldFZhbHVlKCQpe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mICQ9PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPSQ/dGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIjp0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSI6dGhpcy5zZWxlY3RlZE9wdGlvbj0kLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuaGFzVXBkYXRlZCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zZXRJbmRpY2F0b3IoKX0pfXN0YXRpY3tLbChhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgUzBhLF8wYT1nKCgpPT57cGUoKTtTMGE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVudGVyIHlvdXIgcGhvbmUgbnVtYmVyIHdpdGggY291bnRyeSBjb2RlIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkluY2x1ZGUgY291bnRyeSBjb2RlIGZvciBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik1vYmlsZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IjQxNTU1NTEyMzQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgICAubGFiZWw9JHsiT2ZmaWNlIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDgwMCkgNTU1LTAwMDAifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkludGVybmF0aW9uYWwgQ29udGFjdCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBdXRvbWF0aWNhbGx5IGZvcm1hdHMgaW50ZXJuYXRpb25hbCBudW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjQ0MTIzNDU2Nzg5MCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWVyZ2VuY3kgQ29udGFjdCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyI5MTEifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0IGFzIHBhcnQgb2YgYSBjb250YWN0IGZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRnVsbCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUgLmxhYmVsPSR7IlBob25lIE51bWJlciJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJFbWFpbCJ9IC5pbnB1dFR5cGU9JHsiZW1haWwifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIENuZSxGOCxUbmUsWGV0PWcoKCk9PntwZSgpO2t0KCk7emkoKTtfMGEoKTtwdCgpO0NuZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRjg9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFRuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcGhvbmUiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UGhvbmUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLENuZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvcm1hdHRlZFBob25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJmb3JtYXR0ZWRQaG9uZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmZvcm1hdHRlZFBob25lLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZm9ybWF0dGVkUGhvbmU9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLENuZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ2YWx1ZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnZhbHVlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YudmFsdWU9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLENuZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJwbGFjZWhvbGRlciJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YucGxhY2Vob2xkZXI9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLENuZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPVMwYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9RjgodGhpcyxvLCIiKTtnZXQgZm9ybWF0dGVkUGhvbmUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZm9ybWF0dGVkUGhvbmUobSl7dGhpcy4jZT1tfSN0PShGOCh0aGlzLGwpLEY4KHRoaXMsZCwiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCB2YWx1ZShtKXt0aGlzLiN0PW19I2E9KEY4KHRoaXMsdSksRjgodGhpcyxiLCIrMSAoNTU1KSAxMjMtNDU2NyIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGxhY2Vob2xkZXIobSl7dGhpcy4jYT1tfXN0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIFBob25lIGlucHV0IHNwZWNpZmljIHN0eWxlcyBjYW4gZ28gaGVyZSAqLwogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLmZvcm1hdHRlZFBob25lfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgQGlucHV0PSR7bT0+dGhpcy5oYW5kbGVQaG9uZUlucHV0KG0pfQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZChtKXtzdXBlci5maXJzdFVwZGF0ZWQobSksdGhpcy52YWx1ZSYmKHRoaXMuZm9ybWF0dGVkUGhvbmU9dGhpcy5mb3JtYXRQaG9uZU51bWJlcih0aGlzLnZhbHVlKSk7bGV0IGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO2YmJmYuY2hhbmdlU3ViamVjdCYmZi5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSl9aGFuZGxlUGhvbmVJbnB1dChtKXtsZXQgZj1tLnRhcmdldCx5PXRoaXMuY2xlYW5QaG9uZU51bWJlcihmLnZhbHVlKSxNPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIoeSk7aWYoZi52YWx1ZSE9PU0pe2xldCB6PWYuc2VsZWN0aW9uU3RhcnR8fDA7Zi52YWx1ZT1NO2xldCBOPXRoaXMuY2FsY3VsYXRlQ3Vyc29yUG9zaXRpb24oeSxNLHopO2Yuc2V0U2VsZWN0aW9uUmFuZ2UoTixOKX10aGlzLmZvcm1hdHRlZFBob25lPU0sdGhpcy52YWx1ZT15LHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWNsZWFuUGhvbmVOdW1iZXIobSl7cmV0dXJuIG0ucmVwbGFjZSgvXEQvZywiIil9Zm9ybWF0UGhvbmVOdW1iZXIobSl7bGV0IGY9dGhpcy5jbGVhblBob25lTnVtYmVyKG0pO3JldHVybiBmLmxlbmd0aD09PTA/IiI6Zi5sZW5ndGg8PTM/ZjpmLmxlbmd0aDw9Nj9gKCR7Zi5zbGljZSgwLDMpfSkgJHtmLnNsaWNlKDMpfWA6Zi5sZW5ndGg8PTEwP2AoJHtmLnNsaWNlKDAsMyl9KSAke2Yuc2xpY2UoMyw2KX0tJHtmLnNsaWNlKDYpfWA6YCske2Yuc2xpY2UoMCxmLmxlbmd0aC0xMCl9ICgke2Yuc2xpY2UoLTEwLC03KX0pICR7Zi5zbGljZSgtNywtNCl9LSR7Zi5zbGljZSgtNCl9YH1jYWxjdWxhdGVDdXJzb3JQb3NpdGlvbihtLGYseSl7bGV0IE09MDtmb3IobGV0IHo9MDt6PHkmJno8Zi5sZW5ndGg7eisrKS9cZC8udGVzdChmW3pdKXx8TSsrO3JldHVybiBNYXRoLm1pbih5K00sZi5sZW5ndGgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUobSl7dGhpcy52YWx1ZT1tLHRoaXMuZm9ybWF0dGVkUGhvbmU9dGhpcy5mb3JtYXRQaG9uZU51bWJlcihtKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRjgodGhpcyx2KX1zdGF0aWN7RjgoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIE0wYSx6MGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO00wYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoIiN0b2dnbGUtYWxsLW9uIiksdD1zLnF1ZXJ5U2VsZWN0b3IoIiN0b2dnbGUtYWxsLW9mZiIpLGE9cy5xdWVyeVNlbGVjdG9yQWxsKCIuZmVhdHVyZS10b2dnbGVzIGRlZXMtaW5wdXQtdG9nZ2xlIik7ZSYmdCYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5mb3JFYWNoKHI9PntsZXQgbj1yOyFuLmRpc2FibGVkJiYhbi5yZXF1aXJlZCYmKG4udmFsdWU9ITApfSl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EuZm9yRWFjaChyPT57bGV0IG49cjshbi5kaXNhYmxlZCYmIW4ucmVxdWlyZWQmJihuLnZhbHVlPSExKX0pfSkpfX0+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvZ2dsZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CgogICAgICAgIC5ob3Jpem9udGFsLXRvZ2dsZXMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CgogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICB9CgogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5mZWF0dXJlLXRvZ2dsZXMgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuZHJhZy1oaW50IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVG9nZ2xlIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBvbi9vZmYgdG9nZ2xlIHN3aXRjaCB3aXRoIGRyYWcgc3VwcG9ydCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBmZWF0dXJlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsiYmFzaWMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJBY3RpdmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiYWN0aXZlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiV2l0aCBkZXNjcmlwdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgaGFzIGFkZGl0aW9uYWwgaGVscGVyIHRleHQgZXhwbGFpbmluZyBpdHMgcHVycG9zZSJ9CiAgICAgICAgICAgIC5rZXk9JHsid2l0aERlc2MifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPHAgY2xhc3M9ImRyYWctaGludCI+VGlwOiBZb3UgY2FuIGRyYWcgdGhlIHRvZ2dsZSBrbm9iIHRvIHN3aXRjaCBzdGF0ZXM8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUb2dnbGUgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB0b2dnbGUgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvZmYpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCAoYWx3YXlzIG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgdG9nZ2xlIGNhbm5vdCBiZSB0dXJuZWQgb2ZmIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiVG9nZ2xlcyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgaW50ZXJmYWNlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLXRvZ2dsZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiV2lGaSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJsdWV0b290aCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkdQUyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik5GQyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgaW4gYSB0eXBpY2FsIHNldHRpbmdzIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oND4KCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgb24geW91ciBkZXZpY2UifQogICAgICAgICAgICAgIC5rZXk9JHsicHVzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgaW1wb3J0YW50IHVwZGF0ZXMgdmlhIGVtYWlsIn0KICAgICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU291bmQifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJQbGF5IGEgc291bmQgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsic291bmQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJWaWJyYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJWaWJyYXRlIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InZpYnJhdGlvbiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFRvZ2dsZXMifSAuc3VidGl0bGU9JHsiQmF0Y2ggb3BlcmF0aW9ucyBvbiBtdWx0aXBsZSB0b2dnbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vbiIgdHlwZT0ic2Vjb25kYXJ5Ij5FbmFibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vZmYiIHR5cGU9InNlY29uZGFyeSI+RGlzYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLXRvZ2dsZXMiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJkYXJrTW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tc2F2ZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJhdXRvU2F2ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWxsIGNoZWNrIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7InNwZWxsQ2hlY2sifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wZXIgbW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJkZXZNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmV0YSBmZWF0dXJlcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJiZXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlIHRvIHNlZSB2YWx1ZSBjaGFuZ2VzIGluIHJlYWwtdGltZSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFpcnBsYW5lIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaXJwbGFuZS1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gQWlycGxhbmUgbW9kZTogJHtzLmRldGFpbD8iT04iOiJPRkYifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRG8gbm90IGRpc3R1cmIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkbmQtb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9YERvIG5vdCBkaXN0dXJiOiAke3MuZGV0YWlsPyJFTkFCTEVEIjoiRElTQUJMRUQifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImFpcnBsYW5lLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5BaXJwbGFuZSBtb2RlOiBPRkY8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRuZC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRvIG5vdCBkaXN0dXJiOiBESVNBQkxFRDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgQzBhLFFldCwkbmUsSmV0PWcoKCk9PntwZSgpO2t0KCk7emkoKTt6MGEoKTtDcigpO3B0KCk7QzBhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxRZXQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LCRuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtdG9nZ2xlIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRvZ2dsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLEMwYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJ2YWx1ZSJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LnZhbHVlLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UudmFsdWU9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEMwYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPU0wYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9UWV0KHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGQpe3RoaXMuI2U9ZH1jdXJyZW50WD0oUWV0KHRoaXMsbCksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bSGUsLi4uT3QuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2s6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lOwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IuZHJhZ2dpbmcgewogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogUmVxdWlyZWQgc3RhdGUgKGxvY2tlZCBvbikgKi8KICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbcmVxdWlyZWRdW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExhYmVsICovCiAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQ6aG92ZXIgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMuaGFuZGxlQ2xpY2t9Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS10cmFjayAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZUtleWRvd259IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1rbm9iIgogICAgICAgICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucGFkZGluZyt0aGlzLmN1cnJlbnRYfXB4OyIKICAgICAgICAgICAgICBAcG9pbnRlcmRvd249IiR7dGhpcy5vblBvaW50ZXJEb3dufSIKICAgICAgICAgICAgICBAcG9pbnRlcm1vdmU9IiR7dGhpcy5vblBvaW50ZXJNb3ZlfSIKICAgICAgICAgICAgICBAcG9pbnRlcnVwPSIke3RoaXMub25Qb2ludGVyVXB9IgogICAgICAgICAgICAgIEBwb2ludGVyY2FuY2VsPSIke3RoaXMub25Qb2ludGVyVXB9IgogICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICR7dGhpcy5sYWJlbD93YDxkaXYgY2xhc3M9InRvZ2dsZS1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoZCl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKGQpLHRoaXMucmVxdWlyZWQmJiF0aGlzLnZhbHVlJiYodGhpcy52YWx1ZT0hMCksdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXN5bmMgaGFuZGxlQ2xpY2soZCl7aWYodGhpcy5pc0RyYWdnaW5nfHx0aGlzLmhhc0RyYWdnZWQpe2Quc3RvcFByb3BhZ2F0aW9uKCksZC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1pZighdGhpcy5kaXNhYmxlZCl7aWYodGhpcy5yZXF1aXJlZCl7dGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbCx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCBuZXcgUHJvbWlzZSh1PT5zZXRUaW1lb3V0KHUsMTApKSx0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLTMsdGhpcy5yZXF1ZXN0VXBkYXRlKCksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigxNTApLHRoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwsdGhpcy5yZXF1ZXN0VXBkYXRlKCk7cmV0dXJufWQuc3RvcFByb3BhZ2F0aW9uKCksZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudmFsdWU9IXRoaXMudmFsdWUsdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCkudGhlbigoKT0+e3RoaXMuaGFzRHJhZ2dlZD0hMX0pfX1vblBvaW50ZXJEb3duKGQpe3RoaXMucmVxdWlyZWR8fHRoaXMuZGlzYWJsZWR8fCh0aGlzLmlzRHJhZ2dpbmc9ITAsdGhpcy5zdGFydFg9ZC5jbGllbnRYLXRoaXMuY3VycmVudFgsZC50YXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoZC5wb2ludGVySWQpKX1vblBvaW50ZXJNb3ZlKGQpe2lmKCF0aGlzLmlzRHJhZ2dpbmcpcmV0dXJuO2xldCB1PWQuY2xpZW50WC10aGlzLnN0YXJ0WDt0aGlzLmhhc0RyYWdnZWQ9ITA7bGV0IGM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLWtub2IiKTtjJiZjLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5jdXJyZW50WD1NYXRoLm1heCgwLE1hdGgubWluKHUsdGhpcy5tYXhUcmF2ZWwpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1vblBvaW50ZXJVcChkKXtpZighdGhpcy5pc0RyYWdnaW5nfHwoZC50YXJnZXQucmVsZWFzZVBvaW50ZXJDYXB0dXJlKGQucG9pbnRlcklkKSx0aGlzLmlzRHJhZ2dpbmc9ITEsIXRoaXMuaGFzRHJhZ2dlZCkpcmV0dXJuO2xldCB1PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS1rbm9iIik7dSYmdS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpO2xldCBjPXRoaXMubWF4VHJhdmVsLzI7dGhpcy52YWx1ZT10aGlzLmN1cnJlbnRYPmMsdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCkudGhlbigoKT0+e3RoaXMuaGFzRHJhZ2dlZD0hMX0pfXVwZGF0ZWQoZCl7c3VwZXIudXBkYXRlZChkKSxkLmhhcygidmFsdWUiKSYmIXRoaXMuaXNEcmFnZ2luZyYmIXRoaXMuaGFzRHJhZ2dlZCYmKHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1oYW5kbGVLZXlkb3duKGQpeyhkLmtleT09PSIgInx8ZC5rZXk9PT0iRW50ZXIiKSYmKGQucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZUNsaWNrKGQpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGQpe3RoaXMudmFsdWU9ZH1mb2N1cygpe2xldCBkPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS10cmFjayIpO2QmJmQuZm9jdXMoKX1zdGF0aWN7UWV0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBUMGEsJDBhPWcoKCk9PntwZSgpO1QwYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8tYm94IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UzZjJmZDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAjMTk3NmQyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuaW5mby1ib3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWUzYTVmOwogICAgICAgICAgICBjb2xvcjogIzkwY2FmOTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUeXBlIExpc3QifSAuc3VidGl0bGU9JHsiQWRkIGFuZCByZW1vdmUgaXRlbXMgZnJvbSBhIGxpc3QifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIHRhZ3MgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlciJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUYWdzIGhlbHAgY2F0ZWdvcml6ZSBhbmQgZmlsdGVyIHlvdXIgY29udGVudCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siamF2YXNjcmlwdCIsInR5cGVzY3JpcHQiLCJ3ZWItY29tcG9uZW50cyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJhbGljZUBleGFtcGxlLmNvbSIsImJvYkBleGFtcGxlLmNvbSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNraWxscyAmIEtleXdvcmRzIn0gLnN1YnRpdGxlPSR7Ik1hbmFnZSBsaXN0cyBvZiBza2lsbHMgYW5kIGtleXdvcmRzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJZb3VyIFNraWxscyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJMaXN0IHlvdXIgcHJvZmVzc2lvbmFsIHNraWxscyJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siSFRNTCIsIkNTUyIsIkphdmFTY3JpcHQiLCJOb2RlLmpzIiwiUmVhY3QiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3JpZXMifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC52YWx1ZT0ke1siVGVjaG5vbG9neSIsIkRlc2lnbiIsIkJ1c2luZXNzIl19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJLZXl3b3JkcyJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJpbm5vdmF0aW9uIiwic3RhcnR1cCIsImdyb3d0aCJdfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJSZXF1aXJlZCAmIERpc2FibGVkIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgaW5wdXQgc3RhdGVzIGZvciB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IERlcGVuZGVuY2llcyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJMaXN0IGFsbCByZXF1aXJlZCBucG0gcGFja2FnZXMifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7WyJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiLCJAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGVzZSB0YWdzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0ifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7WyJzeXN0ZW0iLCJwcm90ZWN0ZWQiLCJyZWFkb25seSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkFydGljbGUgUHVibGlzaGluZyBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIGZvcm0gd2l0aCB0YWcgbWFuYWdlbWVudCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJBcnRpY2xlIFRpdGxlIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IlN1bW1hcnkifSAKICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYXJ0aWNsZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgcmVsZXZhbnQgdGFncyBmb3IgYmV0dGVyIGRpc2NvdmVyYWJpbGl0eSJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1sidHV0b3JpYWwiLCJ3ZWItZGV2ZWxvcG1lbnQiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiQ28tQXV0aG9ycyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgZW1haWwgYWRkcmVzc2VzIG9mIGNvLWF1dGhvcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgICA8c3Ryb25nPlRpcDo8L3N0cm9uZz4gVHlwZSBhIHZhbHVlIGFuZCBwcmVzcyBFbnRlciB0byBhZGQgaXQgdG8gdGhlIGxpc3QuIENsaWNrIG9uIGFueSBpdGVtIHRvIHJlbW92ZSBpdC4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGV0dCxEWixEbmUsdHR0PWcoKCk9PntwZSgpO2t0KCk7emkoKTskMGEoKTtwdCgpO2V0dD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRFo9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LERuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtdHlwZWxpc3QiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0VHlwZWxpc3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W1koKV0sZXR0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InZhbHVlImluIHYsImhhcyIpLGdldDppKHY9PnYudmFsdWUsImdldCIpLHNldDppKCh2LHgpPT57di52YWx1ZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZXR0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaW5wdXRWYWx1ZSJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmlucHV0VmFsdWUsImdldCIpLHNldDppKCh2LHgpPT57di5pbnB1dFZhbHVlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxldHQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1UMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPURaKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGIpe3RoaXMuI2U9Yn0jdD0oRFoodGhpcyxsKSxEWih0aGlzLGQsIiIpKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbnB1dFZhbHVlKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzIyMjIyMiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci10b3A6ICR7aC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHtoLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICMyMjIiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMykiLCJub25lIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6aG92ZXIgewogICAgICAgIGZpbHRlcjogJHtoLmJkVGhlbWUoImJyaWdodG5lc3MoMC45OCkiLCJicmlnaHRuZXNzKDEuMDUpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpmb2N1cy13aXRoaW4gewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiIzAwNjlmMiIsIiMwMDg0ZmYiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm5vdGFncyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODE4Iil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZThmNWU5IiwiIzJkM2EyZCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyZTdkMzIiLCIjODFjNzg0Iil9OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2M4ZTZjOSIsIiMxYjVlMjAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC50YWc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYzhlNmM5IiwiIzNkNGYzZCIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2M2MjgyOCIsIiNlZjUzNTAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5tYWluYm94IHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZ3MgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWcgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdzIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9fT4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJub3RhZ3MiPk5vIHRhZ3MgeWV0PC9kaXY+YDp0aGlzLnZhbHVlLm1hcChiPT53YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgICAgICAgJHtifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlbW92ZSIgQGNsaWNrPSR7dj0+e3Yuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVUYWcoYil9fT7Dlzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlR5cGUsIHByZXNzIEVudGVyIHRvIGFkZCBpdC4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9JHtiPT57dGhpcy5pbnB1dFZhbHVlPWIudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgICAgQGtleWRvd249JHtiPT57Yi5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoYi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpKX19CiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YWRkVGFnKGIpe3RoaXMudmFsdWUuaW5jbHVkZXMoYil8fCh0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGJdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9cmVtb3ZlVGFnKGIpe3RoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIodj0+diE9PWIpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoYil7dGhpcy52YWx1ZT1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxEWih0aGlzLHUpfXN0YXRpY3tEWihhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgRDBhLEwwYSxFMGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO0wwYT1pKCgpPT53KEQwYXx8KEQwYT1iYyhbYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICBgLGAKICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kaXNhYmxlZD1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAgIC5yZXF1aXJlZD1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLmtleT1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLmlucHV0VHlwZT1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD1gLGA+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLXRhZ3MiCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICBAY2hhbmdlPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcHJldmlldyIgaWQ9InRhZ3MtcHJldmlldyI+CiAgICAgICAgICA8ZW0gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Tm8gdGFncyBhZGRlZCB5ZXQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0idGFncy1qc29uIj4KICAgICAgICAgIDxlbT5KU09OIG91dHB1dCB3aWxsIGFwcGVhciBoZXJlLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8c2NyaXB0PgogICAgICAgICAgLy8gVXBkYXRlIEpTT04gcHJldmlldwogICAgICAgICAgY29uc3QgdGFnc0lucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ludGVyYWN0aXZlLXRhZ3MnKTsKICAgICAgICAgIHRhZ3NJbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgICAgICAgY29uc3QganNvblByZXZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGFncy1qc29uJyk7CiAgICAgICAgICAgIGlmIChqc29uUHJldmlldykgewogICAgICAgICAgICAgIGpzb25QcmV2aWV3LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoZS5kZXRhaWwudmFsdWUsIG51bGwsIDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICA8XC9zY3JpcHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYF0pKSxKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmYWZiOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZjI5Mzc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UwZTdmZjsKICAgICAgICAgIGNvbG9yOiAjNDMzOGNhOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzEyZTgxOwogICAgICAgICAgICBjb2xvcjogI2M3ZDJmZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGAsIjEuIEJhc2ljIFRhZ3MgSW5wdXQiLCJTaW1wbGUgdGFnIGlucHV0IHdpdGggY29tbW9uIHByb2dyYW1taW5nIGxhbmd1YWdlcyIsIlByb2dyYW1taW5nIExhbmd1YWdlcyIsIkFkZCBhIGxhbmd1YWdlLi4uIixbIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiR28iXSwiUHJlc3MgRW50ZXIgb3IgY29tbWEgdG8gYWRkIHRhZ3MiLCIyLiBUYWdzIHdpdGggU3VnZ2VzdGlvbnMiLCJBdXRvLWNvbXBsZXRlIHN1Z2dlc3Rpb25zIGZvciBmYXN0ZXIgaW5wdXQiLCJUZWNoIFN0YWNrIiwiVHlwZSB0byBzZWUgc3VnZ2VzdGlvbnMuLi4iLFsiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTGl0IiwiTmV4dC5qcyIsIk51eHQiLCJTdmVsdGVLaXQiLCJOb2RlLmpzIiwiRGVubyIsIkJ1biIsIkV4cHJlc3MiLCJGYXN0aWZ5IiwiTmVzdC5qcyIsIktvYSIsIk1vbmdvREIiLCJQb3N0Z3JlU1FMIiwiUmVkaXMiLCJNeVNRTCIsIlNRTGl0ZSIsIkNhc3NhbmRyYSIsIkRvY2tlciIsIkt1YmVybmV0ZXMiLCJBV1MiLCJBenVyZSIsIkdDUCIsIlZlcmNlbCIsIk5ldGxpZnkiXSxbIlJlYWN0IiwiTm9kZS5qcyIsIlBvc3RncmVTUUwiLCJEb2NrZXIiXSwiU3RhcnQgdHlwaW5nIHRvIHNlZSBzdWdnZXN0aW9ucyBmcm9tIHBvcHVsYXIgdGVjaG5vbG9naWVzIiwiMy4gTGltaXRlZCBUYWdzIiwiUmVzdHJpY3QgdGhlIG51bWJlciBvZiB0YWdzIHVzZXJzIGNhbiBhZGQiLCJUb3AgMyBTa2lsbHMiLCJBZGQgdXAgdG8gMyBza2lsbHMuLi4iLDMsWyJEZXNpZ24iLCJEZXZlbG9wbWVudCJdLCJNYXhpbXVtIDMgdGFncyBhbGxvd2VkIiwiQ2F0ZWdvcmllcyAoTWF4IDUpIiwiU2VsZWN0IGNhdGVnb3JpZXMuLi4iLDUsWyJCbG9nIiwiVHV0b3JpYWwiLCJOZXdzIiwiUmV2aWV3IiwiR3VpZGUiLCJDYXNlIFN0dWR5IiwiSW50ZXJ2aWV3Il0sWyJUdXRvcmlhbCIsIkd1aWRlIl0sIkNob29zZSB1cCB0byA1IGNhdGVnb3JpZXMiLCI0LiBSZXF1aXJlZCAmIFZhbGlkYXRpb24iLCJUYWdzIGlucHV0IHdpdGggdmFsaWRhdGlvbiByZXF1aXJlbWVudHMiLCJQcm9qZWN0IFRhZ3MiLCJBZGQgYXQgbGVhc3Qgb25lIHRhZy4uLiIsITAsIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgLSBhZGQgYXQgbGVhc3Qgb25lIHRhZyIsIjUuIERpc2FibGVkIFN0YXRlIiwiUmVhZC1vbmx5IHRhZ3MgZGlzcGxheSIsIlN5c3RlbSBUYWdzIixbIlN5c3RlbSIsIlByb3RlY3RlZCIsIlJlYWQtT25seSIsIkFyY2hpdmUiXSwhMCwiVGhlc2UgdGFncyBjYW5ub3QgYmUgbW9kaWZpZWQiLCI2LiBGb3JtIEludGVncmF0aW9uIiwiVGFncyBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCIsIlByb2plY3QgTmFtZSIsIk15IEF3ZXNvbWUgUHJvamVjdCIsITAsIm5hbWUiLCJUZWNobm9sb2dpZXMgVXNlZCIsIkFkZCB0ZWNobm9sb2dpZXMuLi4iLCEwLCJ0ZWNobm9sb2dpZXMiLFsiVHlwZVNjcmlwdCIsIkphdmFTY3JpcHQiLCJQeXRob24iLCJHbyIsIlJ1c3QiLCJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJOb2RlLmpzIiwiRGVubyIsIkV4cHJlc3MiLCJGYXN0QVBJIl0sIlByb2plY3QgVGFncyIsIkFkZCBkZXNjcmlwdGl2ZSB0YWdzLi4uIiwidGFncyIsMTAsWyJmcm9udGVuZCIsImJhY2tlbmQiLCJmdWxsc3RhY2siLCJtb2JpbGUiLCJkZXNrdG9wIiwid2ViIiwiYXBpIiwiZGF0YWJhc2UiLCJkZXZvcHMiLCJ1aS91eCIsIm9wZW5zb3VyY2UiLCJzYWFzIiwiZW50ZXJwcmlzZSIsInN0YXJ0dXAiXSwiRGVzY3JpcHRpb24iLCJ0ZXh0YXJlYSIsIkRlc2NyaWJlIHlvdXIgcHJvamVjdC4uLiIsImRlc2NyaXB0aW9uIiwiQ3JlYXRlIFByb2plY3QiLCI3LiBJbnRlcmFjdGl2ZSBEZW1vIiwiQWRkIHRhZ3MgYW5kIHNlZSB0aGVtIGNvbGxlY3RlZCBpbiByZWFsLXRpbWUiLCJZb3VyIEludGVyZXN0cyIsIlR5cGUgeW91ciBpbnRlcmVzdHMuLi4iLFsiTXVzaWMiLCJNb3ZpZXMiLCJCb29rcyIsIlRyYXZlbCIsIlBob3RvZ3JhcGh5IiwiQ29va2luZyIsIkdhbWluZyIsIlNwb3J0cyIsIkFydCIsIlRlY2hub2xvZ3kiLCJGYXNoaW9uIiwiRml0bmVzcyIsIk5hdHVyZSIsIlNjaWVuY2UiLCJIaXN0b3J5Il0scz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0YWdzLXByZXZpZXciKSx0PXMuZGV0YWlsLnZhbHVlO2UmJih0Lmxlbmd0aD09PTA/ZS5pbm5lckhUTUw9JzxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+JzplLmlubmVySFRNTD10Lm1hcChhPT5gPHNwYW4gY2xhc3M9InRhZy1wcmV2aWV3LWl0ZW0iPiR7YX08L3NwYW4+YCkuam9pbigiIikpfSksImRlbW9GdW5jIil9KTt2YXIgYXUsem8sTG5lLGF0dD1nKCgpPT57cGUoKTt6aSgpO1VhKCk7RTBhKCk7cHQoKTthdT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sem89ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LExuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtdGFncyIpXSxlLHQ9W10sYSxyPU90LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdO3ZhciBJPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRUYWdzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFA9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W0woe3R5cGU6U3RyaW5nfSldLGF1KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbHVlImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsdWUsImdldCIpLHNldDppKChSLEspPT57Ui52YWx1ZT1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LG8sbCksYXUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4icGxhY2Vob2xkZXIiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnBsYWNlaG9sZGVyPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sZCx1KSxhdSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFRhZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+Im1heFRhZ3MiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5tYXhUYWdzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IubWF4VGFncz1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGIsdiksYXUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic3VnZ2VzdGlvbnMiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5zdWdnZXN0aW9ucywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnN1Z2dlc3Rpb25zPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbSxmKSxhdSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlucHV0VmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+ImlucHV0VmFsdWUiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5pbnB1dFZhbHVlLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuaW5wdXRWYWx1ZT1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LE0seiksYXUodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U3VnZ2VzdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InNob3dTdWdnZXN0aW9ucyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNob3dTdWdnZXN0aW9ucywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnNob3dTdWdnZXN0aW9ucz1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LEMsXyksYXUodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sJCxFKSxhdSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJ2YWxpZGF0aW9uVGV4dCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmFsaWRhdGlvblRleHQ9S30sInNldCIpfSxtZXRhZGF0YTpQfSxrLFMpLGF1KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlB9LG51bGwsdCksST1hPWUudmFsdWUsUCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpQfSl9c3RhdGljIGRlbW89TDBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT16byh0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShQKXt0aGlzLiNlPVB9I3Q9KHpvKHRoaXMsbCksem8odGhpcyxkLCJBZGQgdGFncy4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoUCl7dGhpcy4jdD1QfSNhPSh6byh0aGlzLHUpLHpvKHRoaXMsYiwwKSk7Z2V0IG1heFRhZ3MoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWF4VGFncyhQKXt0aGlzLiNhPVB9I3M9KHpvKHRoaXMsdiksem8odGhpcyxtLFtdKSk7Z2V0IHN1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHN1Z2dlc3Rpb25zKFApe3RoaXMuI3M9UH0jaT0oem8odGhpcyxmKSx6byh0aGlzLE0sIiIpKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNpfXNldCBpbnB1dFZhbHVlKFApe3RoaXMuI2k9UH0jcj0oem8odGhpcyx6KSx6byh0aGlzLEMsITEpKTtnZXQgc2hvd1N1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dTdWdnZXN0aW9ucyhQKXt0aGlzLiNyPVB9I289KHpvKHRoaXMsXyksem8odGhpcywkLC0xKSk7Z2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KCl7cmV0dXJuIHRoaXMuI299c2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KFApe3RoaXMuI289UH0jbj0oem8odGhpcyxFKSx6byh0aGlzLGssIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdmFsaWRhdGlvblRleHQoUCl7dGhpcy4jbj1QfXN0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFnIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjIpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjMpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSAvIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogdGFnQXBwZWFyIDAuMTVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgdGFnQXBwZWFyIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgNDYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDU0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAudGFnLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBTdWdnZXN0aW9ucyBkcm9wZG93biAqLwogICAgICAuc3VnZ2VzdGlvbnMtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBQPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKFI9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKFIpJiZSLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRhZ3MtY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb250YWluZXJDbGlja30KICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLm1hcChSPT53YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZyI+CiAgICAgICAgICAgICAgICA8c3Bhbj4ke1J9PC9zcGFuPgogICAgICAgICAgICAgICAgJHt0aGlzLmRpc2FibGVkPyIiOndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZy1yZW1vdmUiIEBjbGljaz0ke0s9PnRoaXMucmVtb3ZlVGFnKEssUil9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQmJighdGhpcy5tYXhUYWdzfHx0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1heFRhZ3MpP3dgCiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9InRhZy1pbnB1dCIKICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUtleURvd259CiAgICAgICAgICAgICAgICBAZm9jdXM9JHt0aGlzLmhhbmRsZUZvY3VzfQogICAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLmhhbmRsZUJsdXJ9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMuc2hvd1N1Z2dlc3Rpb25zJiZQLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAke1AubWFwKChSLEspPT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0ic3VnZ2VzdGlvbiAke0s9PT10aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7Vj0+e1YucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZFRhZyhSKX19CiAgICAgICAgICAgICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9S30KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtSfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ29udGFpbmVyQ2xpY2soUCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IFI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7UiYmUC50YXJnZXQhPT1SJiZSLmZvY3VzKCl9aGFuZGxlSW5wdXQoUCl7bGV0IFI9UC50YXJnZXQ7aWYodGhpcy5pbnB1dFZhbHVlPVIudmFsdWUsdGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCIsIil8fHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiOyIpKXtsZXQgSz10aGlzLmlucHV0VmFsdWUucmVwbGFjZSgvWyw7XS9nLCIiKS50cmltKCk7SyYmdGhpcy5hZGRUYWcoSyl9fWhhbmRsZUtleURvd24oUCl7bGV0IFI9UC50YXJnZXQ7aWYoUC5rZXk9PT0iRW50ZXIiKWlmKFAucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4Pj0wJiZ0aGlzLnNob3dTdWdnZXN0aW9ucyl7bGV0IEs9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoVj0+IXRoaXMudmFsdWUuaW5jbHVkZXMoVikmJlYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpO0tbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0mJnRoaXMuYWRkVGFnKEtbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0pfWVsc2UgdGhpcy5pbnB1dFZhbHVlLnRyaW0oKSYmdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlLnRyaW0oKSk7ZWxzZSBpZihQLmtleT09PSJCYWNrc3BhY2UiJiYhdGhpcy5pbnB1dFZhbHVlJiZ0aGlzLnZhbHVlLmxlbmd0aD4wKXRoaXMucmVtb3ZlVGFnKFAsdGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aC0xXSk7ZWxzZSBpZihQLmtleT09PSJBcnJvd0Rvd24iJiZ0aGlzLnNob3dTdWdnZXN0aW9ucyl7UC5wcmV2ZW50RGVmYXVsdCgpO2xldCBLPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKFY9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKFYpJiZWLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKS5sZW5ndGg7dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1NYXRoLm1pbih0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KzEsSy0xKX1lbHNlIFAua2V5PT09IkFycm93VXAiJiZ0aGlzLnNob3dTdWdnZXN0aW9ucz8oUC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5tYXgodGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleC0xLDApKTpQLmtleT09PSJFc2NhcGUiJiYodGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMSl9aGFuZGxlRm9jdXMoKXt0aGlzLnN1Z2dlc3Rpb25zLmxlbmd0aD4wJiYodGhpcy5zaG93U3VnZ2VzdGlvbnM9ITApfWhhbmRsZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMX0sMjAwKX1hZGRUYWcoUCl7aWYoIVB8fHRoaXMudmFsdWUuaW5jbHVkZXMoUCl8fHRoaXMubWF4VGFncyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4VGFncylyZXR1cm47dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxQXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMTtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWctaW5wdXQiKTtSJiYoUi52YWx1ZT0iIiksdGhpcy5lbWl0Q2hhbmdlKCl9cmVtb3ZlVGFnKFAsUil7UC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKEs9PkshPT1SKSx0aGlzLmVtaXRDaGFuZ2UoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoUCl7dGhpcy52YWx1ZT1QfHxbXX1hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYoIXRoaXMudmFsdWV8fHRoaXMudmFsdWUubGVuZ3RoPT09MCk/KHRoaXMudmFsaWRhdGlvblRleHQ9IkF0IGxlYXN0IG9uZSB0YWcgaXMgcmVxdWlyZWQiLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHpvKHRoaXMsUyl9c3RhdGlje3pvKGEsdCl9fTtyZXR1cm4gST1hfSkoKX0pO3ZhciBQMGEsSTBhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTt1digpO3hoKCk7QTgoKTtQMGE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlZmY2ZmY7CiAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMzYjgyZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogIzFlNDBhZjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTNjNWZkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIExpc3QgSW5wdXQifSAuc3VidGl0bGU9JHsiU2ltcGxlIGxpc3QgbWFuYWdlbWVudCB3aXRoIGFkZCwgZWRpdCwgYW5kIGRlbGV0ZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTaG9wcGluZyBMaXN0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaXRlbSB0byB5b3VyIGxpc3QuLi4ifQogICAgICAgICAgLnZhbHVlPSR7WyJNaWxrIiwiQnJlYWQiLCJFZ2dzIiwiQ2hlZXNlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRG91YmxlLWNsaWNrIHRvIGVkaXQgaXRlbXMsIG9yIHVzZSB0aGUgZWRpdCBidXR0b24ifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg8J+SoSBEb3VibGUtY2xpY2sgYW55IGl0ZW0gdG8gcXVpY2tseSBlZGl0IGl0IGlubGluZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gU29ydGFibGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJEcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIgaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiVGFzayBQcmlvcml0eSJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGEgdGFzay4uLiJ9CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siUmV2aWV3IHB1bGwgcmVxdWVzdHMiLCJGaXggY3JpdGljYWwgYnVnIiwiVXBkYXRlIGRvY3VtZW50YXRpb24iLCJEZXBsb3kgdG8gcHJvZHVjdGlvbiIsIlRlYW0gc3RhbmR1cCBtZWV0aW5nIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRHJhZyBpdGVtcyB1c2luZyB0aGUgaGFuZGxlIHRvIHJlb3JkZXIgdGhlbSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5SEIERyYWcgdGhlIGdyaXAgaGFuZGxlIHRvIHJlb3JkZXIgdGFza3MgYnkgcHJpb3JpdHkKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFZhbGlkYXRpb24gJiBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaXN0cyB3aXRoIG1pbmltdW0vbWF4aW11bSBpdGVtcyBhbmQgZHVwbGljYXRlIHByZXZlbnRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gTWVtYmVycyAoTWluIDIsIE1heCA1KSJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB0ZWFtIG1lbWJlci4uLiJ9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgICAubWF4SXRlbXM9JHs1fQogICAgICAgICAgICAgIC52YWx1ZT0ke1siQWxpY2UiLCJCb2IiXX0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIDItNSB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlVuaXF1ZSBUYWdzIChObyBEdXBsaWNhdGVzKSJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB1bmlxdWUgdGFnLi4uIn0KICAgICAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJmcm9udGVuZCIsImJhY2tlbmQiLCJkYXRhYmFzZSJdfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCBhbGxvd2VkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBEZWxldGUgQ29uZmlybWF0aW9uIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmUgY29uZmlybWF0aW9uIGJlZm9yZSBkZWxldGluZyBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJJbXBvcnRhbnQgRG9jdW1lbnRzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgZG9jdW1lbnQgbmFtZS4uLiJ9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJDb250cmFjdF8yMDI0LnBkZiIsIkZpbmFuY2lhbF9SZXBvcnRfUTMueGxzeCIsIlByb2plY3RfUHJvcG9zYWwuZG9jeCIsIk1lZXRpbmdfTm90ZXMudHh0Il19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRGVsZXRpb24gcmVxdWlyZXMgY29uZmlybWF0aW9uIGZvciBzYWZldHkifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIERpc2FibGVkIFN0YXRlIn0gLnN1YnRpdGxlPSR7IlJlYWQtb25seSBsaXN0IGRpc3BsYXkifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiU3lzdGVtIERlZmF1bHRzIn0KICAgICAgICAgIC52YWx1ZT0ke1siRGVmYXVsdCBTZXR0aW5nIDEiLCJEZWZhdWx0IFNldHRpbmcgMiIsIkRlZmF1bHQgU2V0dGluZyAzIl19CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGVzZSBpdGVtcyBjYW5ub3QgYmUgbW9kaWZpZWQifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiTGlzdCBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJSZWNpcGUgTmFtZSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJNeSBBbWF6aW5nIFJlY2lwZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7Im5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiSW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaW5ncmVkaWVudC4uLiJ9CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7M30KICAgICAgICAgICAgICAua2V5PSR7ImluZ3JlZGllbnRzIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIjIgY3VwcyBmbG91ciIsIjEgY3VwIHN1Z2FyIiwiMyBlZ2dzIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBhdCBsZWFzdCAzIGluZ3JlZGllbnRzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbnN0cnVjdGlvbnMifQogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaW5zdHJ1Y3Rpb24gc3RlcC4uLiJ9CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgICAua2V5PSR7Imluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJQcmVoZWF0IG92ZW4gdG8gMzUwXHhCMEYiLCJNaXggZHJ5IGluZ3JlZGllbnRzIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBjb29raW5nIGluc3RydWN0aW9ucyBpbiBvcmRlciJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RlcyJ9CiAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQW55IHNwZWNpYWwgbm90ZXMgb3IgdGlwcy4uLiJ9CiAgICAgICAgICAgIC5rZXk9JHsibm90ZXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTYXZlIFJlY2lwZSJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiQnVpbGQgeW91ciBvd24gZmVhdHVyZSBsaXN0IGFuZCBzZWUgdGhlIGRhdGEifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtbGlzdCIKICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IEZlYXR1cmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgYSBmZWF0dXJlLi4uIn0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLmNvbmZpcm1EZWxldGU9JHshMX0KICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHshMX0KICAgICAgICAgIC5tYXhJdGVtcz0kezEwfQogICAgICAgICAgQGNoYW5nZT0ke3M9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjbGlzdC1qc29uIik7aWYoZSl7bGV0IHQ9e2l0ZW1zOnMuZGV0YWlsLnZhbHVlLGNvdW50OnMuZGV0YWlsLnZhbHVlLmxlbmd0aCx0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfTtlLnRleHRDb250ZW50PUpTT04uc3RyaW5naWZ5KHQsbnVsbCwyKX19fQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9Imxpc3QtanNvbiI+CiAgICAgICAgICB7CiAgICAgICAgICAgICJpdGVtcyI6IFtdLAogICAgICAgICAgICAiY291bnQiOiAwLAogICAgICAgICAgICAidGltZXN0YW1wIjogIiR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSIKICAgICAgICAgIH0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg4pyoIEFkZCwgZWRpdCwgcmVtb3ZlLCBhbmQgcmVvcmRlciBpdGVtcyB0byBzZWUgdGhlIEpTT04gb3V0cHV0IHVwZGF0ZSBpbiByZWFsLXRpbWUKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjguIEFkdmFuY2VkIENvbmZpZ3VyYXRpb24ifSAuc3VidGl0bGU9JHsiQ29tYmluZSBhbGwgZmVhdHVyZXMgZm9yIGNvbXBsZXggdXNlIGNhc2VzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgTWlsZXN0b25lcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIG1pbGVzdG9uZS4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbIlByb2plY3QgS2lja29mZiAtIFdlZWsgMSIsIlJlcXVpcmVtZW50cyBHYXRoZXJpbmcgLSBXZWVrIDItMyIsIkRlc2lnbiBQaGFzZSAtIFdlZWsgNC02IiwiRGV2ZWxvcG1lbnQgU3ByaW50IDEgLSBXZWVrIDctOSIsIlRlc3RpbmcgJiBRQSAtIFdlZWsgMTAtMTEiLCJEZXBsb3ltZW50IC0gV2VlayAxMiJdfQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyEwfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1pbkl0ZW1zPSR7M30KICAgICAgICAgIC5tYXhJdGVtcz0kezEyfQogICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWFuYWdlIHByb2plY3QgbWlsZXN0b25lcyAoMy0xMiBpdGVtcywgc29ydGFibGUsIG5vIGR1cGxpY2F0ZXMpIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBDYW5kaWRhdGVzIHdpdGggVGFiIENvbXBsZXRpb24ifSAuc3VidGl0bGU9JHsiVGVybWluYWwtc3R5bGUgYXV0b2NvbXBsZXRlIFx1MjAxNCBUYWIgYWNjZXB0cywgU2hpZnQrVGFiIGN5Y2xlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgaWQ9ImNhbmRpZGF0ZS1saXN0IgogICAgICAgICAgICAubGFiZWw9JHsiQXNzaWduIFRlYW0gTWVtYmVycyJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIGEgbmFtZS4uLiAoVGFiIHRvIGNvbXBsZXRlKSJ9CiAgICAgICAgICAgIC5jYW5kaWRhdGVzPSR7W3t2aWV3S2V5OiJBbGljZSBTbWl0aCIscGF5bG9hZDp7aWQ6MSxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiRnJvbnRlbmQifX0se3ZpZXdLZXk6IkJvYiBKb2huc29uIixwYXlsb2FkOntpZDoyLHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJVWCJ9fSx7dmlld0tleToiQ2Fyb2wgV2lsbGlhbXMiLHBheWxvYWQ6e2lkOjMscm9sZToiUHJvZHVjdCBNYW5hZ2VyIixkZXBhcnRtZW50OiJQcm9kdWN0In19LHt2aWV3S2V5OiJEYXZpZCBCcm93biIscGF5bG9hZDp7aWQ6NCxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiQmFja2VuZCJ9fSx7dmlld0tleToiRXZlIERhdmlzIixwYXlsb2FkOntpZDo1LHJvbGU6IlFBIEVuZ2luZWVyIixkZXBhcnRtZW50OiJRdWFsaXR5In19LHt2aWV3S2V5OiJGcmFuayBNaWxsZXIiLHBheWxvYWQ6e2lkOjYscm9sZToiRGV2T3BzIixkZXBhcnRtZW50OiJJbmZyYXN0cnVjdHVyZSJ9fSx7dmlld0tleToiR3JhY2UgV2lsc29uIixwYXlsb2FkOntpZDo3LHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJVWCJ9fSx7dmlld0tleToiSGVucnkgTW9vcmUiLHBheWxvYWQ6e2lkOjgscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IkZyb250ZW5kIn19XX0KICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSBTbWl0aCIsIkNhcm9sIFdpbGxpYW1zIl19CiAgICAgICAgICAgIC5tYXhJdGVtcz0kezV9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUeXBlIHRvIHNlZSBnaG9zdCBjb21wbGV0aW9uLiBUYWIgdG8gYWNjZXB0LCBTaGlmdCtUYWIgdG8gY3ljbGUsIEVudGVyIHRvIGFkZC4ifQogICAgICAgICAgICBAY2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjYW5kaWRhdGUtanNvbiIpO2lmKGUpe2xldCBhPXMudGFyZ2V0LmdldEFkZGVkQ2FuZGlkYXRlcygpO2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkoYSxudWxsLDIpfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNTAwOyBtYXJnaW4tYm90dG9tOiA4cHg7IGNvbG9yOiBpbmhlcml0OyI+U2VsZWN0ZWQgQ2FuZGlkYXRlcyAod2l0aCBwYXlsb2Fkcyk8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJjYW5kaWRhdGUtanNvbiI+W108L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgICAgICBUcnkgdHlwaW5nICJEIiDigJQgZ2hvc3QgdGV4dCBzaG93cyAiYXZpZCBCcm93biIuIFByZXNzIFNoaWZ0K1RhYiB0byBjeWNsZSB0byBvdGhlciBELW1hdGNoZXMuIFRhYiBhY2NlcHRzLCBFbnRlciBhZGRzLgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTAuIFRlY2hub2xvZ3kgU3RhY2sifSAuc3VidGl0bGU9JHsiTGFyZ2VyIGNhbmRpZGF0ZSBwb29sIHdpdGggU2hpZnQrVGFiIGN5Y2xpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFRlY2hub2xvZ2llcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSB0byBhdXRvY29tcGxldGUuLi4ifQogICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6IlR5cGVTY3JpcHQiLHBheWxvYWQ6e2NhdGVnb3J5OiJsYW5ndWFnZSJ9fSx7dmlld0tleToiUmVhY3QiLHBheWxvYWQ6e2NhdGVnb3J5OiJmcmFtZXdvcmsifX0se3ZpZXdLZXk6IlZ1ZS5qcyIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiQW5ndWxhciIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiTm9kZS5qcyIscGF5bG9hZDp7Y2F0ZWdvcnk6InJ1bnRpbWUifX0se3ZpZXdLZXk6IkRlbm8iLHBheWxvYWQ6e2NhdGVnb3J5OiJydW50aW1lIn19LHt2aWV3S2V5OiJEb2NrZXIiLHBheWxvYWQ6e2NhdGVnb3J5OiJkZXZvcHMifX0se3ZpZXdLZXk6IlBvc3RncmVTUUwiLHBheWxvYWQ6e2NhdGVnb3J5OiJkYXRhYmFzZSJ9fSx7dmlld0tleToiTW9uZ29EQiIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJSZWRpcyIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJLdWJlcm5ldGVzIixwYXlsb2FkOntjYXRlZ29yeToiZGV2b3BzIn19XX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydUcnkgIkQiIFx1MjAxNCBjeWNsZXMgdGhyb3VnaCBEZW5vL0RvY2tlci4gIlIiIFx1MjAxNCBjeWNsZXMgdGhyb3VnaCBSZWFjdC9SZWRpcy4nfQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjExLiBGcmVlZm9ybSArIENhbmRpZGF0ZXMifSAuc3VidGl0bGU9JHsiQWxsb3cgYWRkaW5nIGl0ZW1zIG5vdCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgKHNob3duIHdpdGggYSBxdWVzdGlvbiBtYXJrKSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJUYWdzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIGEgdGFnLi4uIChmcmVlZm9ybSBhbGxvd2VkKSJ9CiAgICAgICAgICAuYWxsb3dGcmVlZm9ybT0keyEwfQogICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6ImJ1ZyIscGF5bG9hZDp7Y29sb3I6InJlZCJ9fSx7dmlld0tleToiZmVhdHVyZSIscGF5bG9hZDp7Y29sb3I6ImJsdWUifX0se3ZpZXdLZXk6ImRvY3MiLHBheWxvYWQ6e2NvbG9yOiJncmVlbiJ9fSx7dmlld0tleToicmVmYWN0b3IiLHBheWxvYWQ6e2NvbG9yOiJwdXJwbGUifX0se3ZpZXdLZXk6InBlcmZvcm1hbmNlIixwYXlsb2FkOntjb2xvcjoib3JhbmdlIn19LHt2aWV3S2V5OiJzZWN1cml0eSIscGF5bG9hZDp7Y29sb3I6InJlZCJ9fV19CiAgICAgICAgICAudmFsdWU9JHtbImJ1ZyIsIm15LWN1c3RvbS10YWciLCJmZWF0dXJlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiS25vd24gdGFncyBnZXQgYSBjaGVja21hcmssIGN1c3RvbSB0YWdzIGdldCBhIHF1ZXN0aW9uIG1hcmsuIFRhYiB0byBjb21wbGV0ZSwgRW50ZXIgdG8gYWRkIGZyZWVmb3JtLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTIuIEVtcHR5IFN0YXRlIn0gLnN1YnRpdGxlPSR7IkhvdyB0aGUgY29tcG9uZW50IGxvb2tzIHdpdGggbm8gaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiWW91ciBJZGVhcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU2hhcmUgeW91ciBpZGVhcy4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTdGFydCBhZGRpbmcgaXRlbXMgdG8gYnVpbGQgeW91ciBsaXN0In0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBHaSxmYSxFbmUsc3R0PWcoKCk9PntwZSgpO3ppKCk7VWEoKTtucigpO0kwYSgpO3B0KCk7R2k9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGZhPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxFbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWxpc3QiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXSxHZSxEZT1bXSxfZT1bXSxDZSx2ZT1bXSxiZT1bXSxFZSxqZT1bXSxXZT1bXTt2YXIgc3Q9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dExpc3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOkFycmF5fSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHt0eXBlOlN0cmluZ30pXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSx5ZT1bWSgpXSxzZT1bWSgpXSxUZT1bWSgpXSxHZT1bWSgpXSxDZT1bWSgpXSxFZT1bWSgpXSxHaSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4idmFsdWUiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS52YWx1ZSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLnZhbHVlPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxvLGwpLEdpKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJwbGFjZWhvbGRlciJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UucGxhY2Vob2xkZXI9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LGQsdSksR2kodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+Im1heEl0ZW1zImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UubWF4SXRlbXMsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5tYXhJdGVtcz1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sYix2KSxHaSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4ibWluSXRlbXMiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5taW5JdGVtcywiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLm1pbkl0ZW1zPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxtLGYpLEdpKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dEdXBsaWNhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iYWxsb3dEdXBsaWNhdGVzImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuYWxsb3dEdXBsaWNhdGVzLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuYWxsb3dEdXBsaWNhdGVzPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxNLHopLEdpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJzb3J0YWJsZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLnNvcnRhYmxlLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2Uuc29ydGFibGU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LEMsXyksR2kodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb25maXJtRGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iY29uZmlybURlbGV0ZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmNvbmZpcm1EZWxldGUsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5jb25maXJtRGVsZXRlPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSwkLEUpLEdpKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuZGlkYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImNhbmRpZGF0ZXMiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5jYW5kaWRhdGVzLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuY2FuZGlkYXRlcz1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sayxTKSxHaSh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RnJlZWZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJhbGxvd0ZyZWVmb3JtImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuYWxsb3dGcmVlZm9ybSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmFsbG93RnJlZWZvcm09SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LFAsUiksR2kodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+InZhbGlkYXRpb25UZXh0ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UudmFsaWRhdGlvblRleHQsImdldCIpLHNldDppKChnZSxJZSk9PntnZS52YWxpZGF0aW9uVGV4dD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sVixXKSxHaSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iaW5wdXRWYWx1ZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmlucHV0VmFsdWUsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5pbnB1dFZhbHVlPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxCLFUpLEdpKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdob3N0VGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+Imdob3N0VGV4dCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmdob3N0VGV4dCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmdob3N0VGV4dD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sRixqKSxHaSh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50Q2FuZGlkYXRlSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJjdXJyZW50Q2FuZGlkYXRlSW5kZXgiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5jdXJyZW50Q2FuZGlkYXRlSW5kZXgsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LGxlLFEpLEdpKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImVkaXRpbmdJbmRleCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmVkaXRpbmdJbmRleCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmVkaXRpbmdJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sdGUsZWUpLEdpKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImVkaXRpbmdWYWx1ZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmVkaXRpbmdWYWx1ZSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmVkaXRpbmdWYWx1ZT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sWCxaKSxHaSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJkcmFnZ2VkSW5kZXgiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5kcmFnZ2VkSW5kZXgsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5kcmFnZ2VkSW5kZXg9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LHEsQSksR2kodGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImRyYWdPdmVySW5kZXgiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5kcmFnT3ZlckluZGV4LCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZHJhZ092ZXJJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sb2UsYWUpLEdpKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdTdGFydFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJkcmFnU3RhcnRZImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuZHJhZ1N0YXJ0WSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmRyYWdTdGFydFk9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LFJlLEJlKSxHaSh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJkcmFnQ3VycmVudFkiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5kcmFnQ3VycmVudFksImdldCIpLHNldDppKChnZSxJZSk9PntnZS5kcmFnQ3VycmVudFk9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LERlLF9lKSxHaSh0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+InRhcmdldEluZGV4ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UudGFyZ2V0SW5kZXgsImdldCIpLHNldDppKChnZSxJZSk9PntnZS50YXJnZXRJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sdmUsYmUpLEdpKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1IZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJpdGVtSGVpZ2h0ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuaXRlbUhlaWdodCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLml0ZW1IZWlnaHQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LGplLFdlKSxHaShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNZX0sbnVsbCx0KSxzdD1hPWUudmFsdWUsTWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TWV9KX1zdGF0aWMgZGVtbz1QMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPWZhKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKE1lKXt0aGlzLiNlPU1lfSN0PShmYSh0aGlzLGwpLGZhKHRoaXMsZCwiQWRkIG5ldyBpdGVtLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihNZSl7dGhpcy4jdD1NZX0jYT0oZmEodGhpcyx1KSxmYSh0aGlzLGIsMCkpO2dldCBtYXhJdGVtcygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhJdGVtcyhNZSl7dGhpcy4jYT1NZX0jcz0oZmEodGhpcyx2KSxmYSh0aGlzLG0sMCkpO2dldCBtaW5JdGVtcygpe3JldHVybiB0aGlzLiNzfXNldCBtaW5JdGVtcyhNZSl7dGhpcy4jcz1NZX0jaT0oZmEodGhpcyxmKSxmYSh0aGlzLE0sITEpKTtnZXQgYWxsb3dEdXBsaWNhdGVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbG93RHVwbGljYXRlcyhNZSl7dGhpcy4jaT1NZX0jcj0oZmEodGhpcyx6KSxmYSh0aGlzLEMsITEpKTtnZXQgc29ydGFibGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc29ydGFibGUoTWUpe3RoaXMuI3I9TWV9I289KGZhKHRoaXMsXyksZmEodGhpcywkLCExKSk7Z2V0IGNvbmZpcm1EZWxldGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgY29uZmlybURlbGV0ZShNZSl7dGhpcy4jbz1NZX0jbj0oZmEodGhpcyxFKSxmYSh0aGlzLGssW10pKTtnZXQgY2FuZGlkYXRlcygpe3JldHVybiB0aGlzLiNufXNldCBjYW5kaWRhdGVzKE1lKXt0aGlzLiNuPU1lfSNsPShmYSh0aGlzLFMpLGZhKHRoaXMsUCwhMSkpO2dldCBhbGxvd0ZyZWVmb3JtKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGFsbG93RnJlZWZvcm0oTWUpe3RoaXMuI2w9TWV9I2M9KGZhKHRoaXMsUiksZmEodGhpcyxWLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25UZXh0KE1lKXt0aGlzLiNjPU1lfWFkZGVkQ2FuZGlkYXRlc01hcD0oZmEodGhpcyxXKSxuZXcgTWFwKTttYXRjaGluZ0NhbmRpZGF0ZXM9W107I2Q9ZmEodGhpcyxCLCIiKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBpbnB1dFZhbHVlKE1lKXt0aGlzLiNkPU1lfSN1PShmYSh0aGlzLFUpLGZhKHRoaXMsRiwiIikpO2dldCBnaG9zdFRleHQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZ2hvc3RUZXh0KE1lKXt0aGlzLiN1PU1lfSNwPShmYSh0aGlzLGopLGZhKHRoaXMsbGUsLTEpKTtnZXQgY3VycmVudENhbmRpZGF0ZUluZGV4KCl7cmV0dXJuIHRoaXMuI3B9c2V0IGN1cnJlbnRDYW5kaWRhdGVJbmRleChNZSl7dGhpcy4jcD1NZX0jaD0oZmEodGhpcyxRKSxmYSh0aGlzLHRlLC0xKSk7Z2V0IGVkaXRpbmdJbmRleCgpe3JldHVybiB0aGlzLiNofXNldCBlZGl0aW5nSW5kZXgoTWUpe3RoaXMuI2g9TWV9I2Y9KGZhKHRoaXMsZWUpLGZhKHRoaXMsWCwiIikpO2dldCBlZGl0aW5nVmFsdWUoKXtyZXR1cm4gdGhpcy4jZn1zZXQgZWRpdGluZ1ZhbHVlKE1lKXt0aGlzLiNmPU1lfSNtPShmYSh0aGlzLFopLGZhKHRoaXMscSwtMSkpO2dldCBkcmFnZ2VkSW5kZXgoKXtyZXR1cm4gdGhpcy4jbX1zZXQgZHJhZ2dlZEluZGV4KE1lKXt0aGlzLiNtPU1lfSNnPShmYSh0aGlzLEEpLGZhKHRoaXMsb2UsLTEpKTtnZXQgZHJhZ092ZXJJbmRleCgpe3JldHVybiB0aGlzLiNnfXNldCBkcmFnT3ZlckluZGV4KE1lKXt0aGlzLiNnPU1lfSNiPShmYSh0aGlzLGFlKSxmYSh0aGlzLFJlLDApKTtnZXQgZHJhZ1N0YXJ0WSgpe3JldHVybiB0aGlzLiNifXNldCBkcmFnU3RhcnRZKE1lKXt0aGlzLiNiPU1lfSN2PShmYSh0aGlzLEJlKSxmYSh0aGlzLERlLDApKTtnZXQgZHJhZ0N1cnJlbnRZKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IGRyYWdDdXJyZW50WShNZSl7dGhpcy4jdj1NZX0jeD0oZmEodGhpcyxfZSksZmEodGhpcyx2ZSwtMSkpO2dldCB0YXJnZXRJbmRleCgpe3JldHVybiB0aGlzLiN4fXNldCB0YXJnZXRJbmRleChNZSl7dGhpcy4jeD1NZX0jeT0oZmEodGhpcyxiZSksZmEodGhpcyxqZSwwKSk7Z2V0IGl0ZW1IZWlnaHQoKXtyZXR1cm4gdGhpcy4jeX1zZXQgaXRlbUhlaWdodChNZSl7dGhpcy4jeT1NZX1ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPShmYSh0aGlzLFdlKSxudWxsKTtib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbDtvcmlnaW5hbEl0ZW1SZWN0cz1bXTtzdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6Zm9jdXMtd2l0aGluOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgZGVlcy10aWxlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXMgewogICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbTpsYXN0LW9mLXR5cGUgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOm5vdCguaXMtZHJhZ2dpbmcpIC5saXN0LWl0ZW06aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itcm93LWhvdmVyKTsKICAgICAgfQoKICAgICAgLyogRHJhZ2dpbmcgaXRlbSAtIGZvbGxvd3MgY3Vyc29yICovCiAgICAgIC5saXN0LWl0ZW0uZHJhZ2dpbmcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDEyJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMCwgMCwgMCwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIHVwIHRvIG1ha2Ugc3BhY2UgKi8KICAgICAgLmxpc3QtaXRlbS5tb3ZlLXVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSkpOwogICAgICB9CgogICAgICAvKiBJdGVtcyB0aGF0IG5lZWQgdG8gbW92ZSBkb3duIHRvIG1ha2Ugc3BhY2UgKi8KICAgICAgLmxpc3QtaXRlbS5tb3ZlLWRvd24gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1pdGVtLWhlaWdodCwgNDhweCkpOwogICAgICB9CgoKICAgICAgLmNhbmRpZGF0ZS1jaGVjayB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jYW5kaWRhdGUtdW5rbm93biB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA1OCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuaXRlbS1idWxsZXQgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGN1cnNvcjogbW92ZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuZHJhZy1oYW5kbGUgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5pdGVtLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLml0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5pdGVtLWVkaXQtaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogM3B4IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pdGVtLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2F2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2F2ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSA1MC42JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTNweDsKICAgICAgICBoZWlnaHQ6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5hZGQtaXRlbS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4IDEwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDI0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDM0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZSB0cmFuc2l0aW9ucyBkdXJpbmcgZHJvcCB0byBwcmV2ZW50IGZsYXNoICovCiAgICAgIC5saXN0LWl0ZW1zLmRyb3BwaW5nIC5saXN0LWl0ZW0gewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLyog4pSA4pSAIFRlcm1pbmFsLXN0eWxlIGlubGluZSBhdXRvY29tcGxldGUg4pSA4pSAICovCiAgICAgIC5hdXRvY29tcGxldGUtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5naG9zdC10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LXR5cGVkIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5naG9zdC1jb21wbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSIke3RoaXMudmFsdWUubGVuZ3RofSBpdGVtJHt0aGlzLnZhbHVlLmxlbmd0aCE9PTE/InMiOiIifSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0LWl0ZW1zIj4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMudmFsdWUubWFwKChNZSxnZSk9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9Imxpc3QtaXRlbSAke3RoaXMuZHJhZ2dlZEluZGV4PT09Z2U/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9IiR7dGhpcy5zb3J0YWJsZSYmIXRoaXMuZGlzYWJsZWR9IgogICAgICAgICAgICAgICAgQGRyYWdzdGFydD0ke0llPT50aGlzLmhhbmRsZURyYWdTdGFydChJZSxnZSl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke3RoaXMuaGFuZGxlRHJhZ0VuZH0KICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke0llPT50aGlzLmhhbmRsZURyYWdPdmVyKEllLGdlKX0KICAgICAgICAgICAgICAgIEBkcm9wPSR7SWU9PnRoaXMuaGFuZGxlRHJvcChJZSxnZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcmFnLWhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Z3JpcFZlcnRpY2FsIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgICAke3RoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICAke3RoaXMuY2FuZGlkYXRlcy5zb21lKEllPT5JZS52aWV3S2V5PT09TWUpP3dgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FuZGlkYXRlLWNoZWNrIiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNhbmRpZGF0ZS11bmtub3duIiAuaWNvbj0keyJsdWNpZGU6aGVscENpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgYDohdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJpdGVtLWJ1bGxldCIgLmljb249JHsibHVjaWRlOmRvdCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZWRpdGluZ0luZGV4PT09Z2U/d2AKICAgICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXRlbS1lZGl0LWlucHV0IgogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5lZGl0aW5nVmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtJZT0+dGhpcy5lZGl0aW5nVmFsdWU9SWUudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgICAgICAgICAgQGtleWRvd249JHtJZT0+dGhpcy5oYW5kbGVFZGl0S2V5RG93bihJZSxnZSl9CiAgICAgICAgICAgICAgICAgICAgICBAYmx1cj0keygpPT50aGlzLnNhdmVFZGl0KGdlKX0KICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS10ZXh0IiBAZGJsY2xpY2s9JHsoKT0+IXRoaXMuZGlzYWJsZWQmJnRoaXMuc3RhcnRFZGl0KGdlKX0+CiAgICAgICAgICAgICAgICAgICAgICAke01lfQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT1nZT93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gc2F2ZSIgQGNsaWNrPSR7KCk9PnRoaXMuc2F2ZUVkaXQoZ2UpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBjYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNhbmNlbEVkaXQoKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlzYWJsZWQ/IiI6d2AKICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnN0YXJ0RWRpdChnZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwZW5jaWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUl0ZW0oZ2UpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJhc2gyIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgTm8gaXRlbXMgYWRkZWQgeWV0CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgJHshdGhpcy5kaXNhYmxlZCYmKCF0aGlzLm1heEl0ZW1zfHx0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1heEl0ZW1zKT93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImFkZC1pdGVtLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0b2NvbXBsZXRlLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLmdob3N0VGV4dD93YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2hvc3QtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imdob3N0LXR5cGVkIj4ke3RoaXMuaW5wdXRWYWx1ZX08L3NwYW4+PHNwYW4gY2xhc3M9Imdob3N0LWNvbXBsZXRpb24iPiR7dGhpcy5naG9zdFRleHR9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJhZGQtaW5wdXQiCiAgICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUFkZEtleURvd259CiAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJhZGQtYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hZGRJdGVtfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuaW5wdXRWYWx1ZS50cmltKCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUlucHV0KE1lKXt0aGlzLmlucHV0VmFsdWU9TWUudGFyZ2V0LnZhbHVlLHRoaXMudXBkYXRlR2hvc3RUZXh0KCl9dXBkYXRlR2hvc3RUZXh0KCl7aWYodGhpcy5jYW5kaWRhdGVzLmxlbmd0aD09PTB8fCF0aGlzLmlucHV0VmFsdWUpe3RoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdO3JldHVybn1sZXQgTWU9dGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCk7dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9dGhpcy5jYW5kaWRhdGVzLmZpbHRlcihnZT0+dGhpcy52YWx1ZS5pbmNsdWRlcyhnZS52aWV3S2V5KT8hMTpnZS52aWV3S2V5LnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChNZSkpLnNvcnQoKGdlLEllKT0+Z2Uudmlld0tleS5sZW5ndGgtSWUudmlld0tleS5sZW5ndGgpLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wPyh0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0wLHRoaXMuZ2hvc3RUZXh0PXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzWzBdLnZpZXdLZXkuc2xpY2UodGhpcy5pbnB1dFZhbHVlLmxlbmd0aCkpOih0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLmdob3N0VGV4dD0iIil9aGFuZGxlQWRkS2V5RG93bihNZSl7aWYoTWUua2V5PT09IlRhYiImJnRoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MCYmdGhpcy5pbnB1dFZhbHVlKXtpZihNZS5wcmV2ZW50RGVmYXVsdCgpLE1lLnNoaWZ0S2V5JiZ0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcy5sZW5ndGg+MCl7dGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4KzEpJXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aDtsZXQgZ2U9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXhdO3RoaXMuZ2hvc3RUZXh0PWdlLnZpZXdLZXkuc2xpY2UodGhpcy5pbnB1dFZhbHVlLmxlbmd0aCl9ZWxzZSBpZighTWUuc2hpZnRLZXkmJnRoaXMuZ2hvc3RUZXh0JiZ0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcy5sZW5ndGg+MCl7bGV0IGdlPXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzW3RoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4XTt0aGlzLmlucHV0VmFsdWU9Z2Uudmlld0tleSx0aGlzLmdob3N0VGV4dD0iIjtsZXQgSWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7SWUmJihJZS52YWx1ZT1nZS52aWV3S2V5KX1yZXR1cm59aWYoTWUua2V5PT09IkVzY2FwZSImJnRoaXMuZ2hvc3RUZXh0KXtNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdO3JldHVybn1pZihNZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpKXtpZihNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MCl7bGV0IGdlPXRoaXMuY2FuZGlkYXRlcy5maW5kKEllPT5JZS52aWV3S2V5LnRvTG93ZXJDYXNlKCk9PT10aGlzLmlucHV0VmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCkpO2dlP3RoaXMuc2VsZWN0Q2FuZGlkYXRlKGdlKTp0aGlzLmFsbG93RnJlZWZvcm0mJih0aGlzLmdob3N0VGV4dD0iIix0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz1bXSx0aGlzLmFkZEl0ZW0oKSk7cmV0dXJufXRoaXMuYWRkSXRlbSgpfX1oYW5kbGVFZGl0S2V5RG93bihNZSxnZSl7TWUua2V5PT09IkVudGVyIj8oTWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVFZGl0KGdlKSk6TWUua2V5PT09IkVzY2FwZSImJihNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsRWRpdCgpKX1zZWxlY3RDYW5kaWRhdGUoTWUpe2lmKHRoaXMubWF4SXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heEl0ZW1zKXt0aGlzLnZhbGlkYXRpb25UZXh0PWBNYXhpbXVtICR7dGhpcy5tYXhJdGVtc30gaXRlbXMgYWxsb3dlZGAsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1pZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJnRoaXMudmFsdWUuaW5jbHVkZXMoTWUudmlld0tleSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn10aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5zZXQoTWUudmlld0tleSxNZSksdGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxNZS52aWV3S2V5XSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W10sdGhpcy52YWxpZGF0aW9uVGV4dD0iIix0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgZ2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7Z2UmJihnZS52YWx1ZT0iIixnZS5mb2N1cygpKX0pfWdldENhbmRpZGF0ZUZvckl0ZW0oTWUpe3JldHVybiB0aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5nZXQoTWUpfWdldEFkZGVkQ2FuZGlkYXRlcygpe3JldHVybiB0aGlzLnZhbHVlLm1hcChNZT0+dGhpcy5hZGRlZENhbmRpZGF0ZXNNYXAuZ2V0KE1lKSkuZmlsdGVyKE1lPT5NZSE9PXZvaWQgMCl9YWRkSXRlbSgpe2xldCBNZT10aGlzLmlucHV0VmFsdWUudHJpbSgpO2lmKE1lKXtpZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJnRoaXMudmFsdWUuaW5jbHVkZXMoTWUpKXt0aGlzLnZhbGlkYXRpb25UZXh0PSJUaGlzIGl0ZW0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIGxpc3QiLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59aWYodGhpcy5tYXhJdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4SXRlbXMpe3RoaXMudmFsaWRhdGlvblRleHQ9YE1heGltdW0gJHt0aGlzLm1heEl0ZW1zfSBpdGVtcyBhbGxvd2VkYCxzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufXRoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsTWVdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTtnZSYmKGdlLnZhbHVlPSIiLGdlLmZvY3VzKCkpfSl9fXN0YXJ0RWRpdChNZSl7dGhpcy5lZGl0aW5nSW5kZXg9TWUsdGhpcy5lZGl0aW5nVmFsdWU9dGhpcy52YWx1ZVtNZV0sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IGdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLml0ZW0tZWRpdC1pbnB1dCIpO2dlJiYoZ2UuZm9jdXMoKSxnZS5zZWxlY3QoKSl9KX1zYXZlRWRpdChNZSl7bGV0IGdlPXRoaXMuZWRpdGluZ1ZhbHVlLnRyaW0oKTtpZighZ2Upe3RoaXMuY2FuY2VsRWRpdCgpO3JldHVybn1pZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJmdlIT09dGhpcy52YWx1ZVtNZV0mJnRoaXMudmFsdWUuaW5jbHVkZXMoZ2UpKXt0aGlzLnZhbGlkYXRpb25UZXh0PSJUaGlzIGl0ZW0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIGxpc3QiLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59bGV0IEllPVsuLi50aGlzLnZhbHVlXTtJZVtNZV09Z2UsdGhpcy52YWx1ZT1JZSx0aGlzLmVkaXRpbmdJbmRleD0tMSx0aGlzLmVkaXRpbmdWYWx1ZT0iIix0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpfWNhbmNlbEVkaXQoKXt0aGlzLmVkaXRpbmdJbmRleD0tMSx0aGlzLmVkaXRpbmdWYWx1ZT0iIn1hc3luYyByZW1vdmVJdGVtKE1lKXtpZih0aGlzLmNvbmZpcm1EZWxldGUmJiFhd2FpdCB0aGlzLnNob3dDb25maXJtRGlhbG9nKGBEZWxldGUgIiR7dGhpcy52YWx1ZVtNZV19Ij9gKSlyZXR1cm47bGV0IGdlPXRoaXMudmFsdWVbTWVdO3RoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLmRlbGV0ZShnZSksdGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcigoSWUsY2UpPT5jZSE9PU1lKSx0aGlzLmVtaXRDaGFuZ2UoKX1hc3luYyBzaG93Q29uZmlybURpYWxvZyhNZSl7cmV0dXJuIGNvbmZpcm0oTWUpfWhhbmRsZURyYWdTdGFydChNZSxnZSl7aWYoIXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWQpcmV0dXJuO3RoaXMuZHJhZ2dlZEluZGV4PWdlLHRoaXMudGFyZ2V0SW5kZXg9Z2UsTWUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLE1lLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixnZS50b1N0cmluZygpKTtsZXQgSWU9bmV3IEltYWdlO0llLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsTWUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShJZSwwLDApLHRoaXMuZHJhZ1N0YXJ0WT1NZS5jbGllbnRZLHRoaXMuZHJhZ0N1cnJlbnRZPU1lLmNsaWVudFk7bGV0IGNlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSxkZT1BcnJheS5mcm9tKGNlPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIil8fFtdKTtkZVtnZV0mJih0aGlzLml0ZW1IZWlnaHQ9ZGVbZ2VdLm9mZnNldEhlaWdodCksdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1kZS5tYXAoTGU9PkxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjZT8uY2xhc3NMaXN0LmFkZCgiaXMtZHJhZ2dpbmciKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9dGhpcy5oYW5kbGVHbG9iYWxEcmFnT3Zlci5iaW5kKHRoaXMpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPXRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZC5iaW5kKHRoaXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kKX1oYW5kbGVHbG9iYWxEcmFnT3ZlcihNZSl7aWYoTWUucHJldmVudERlZmF1bHQoKSx0aGlzLmRyYWdnZWRJbmRleD09PS0xKXJldHVybjt0aGlzLmRyYWdDdXJyZW50WT1NZS5jbGllbnRZO2xldCBnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7aWYoIWdlKXJldHVybjtsZXQgSWU9QXJyYXkuZnJvbShnZS5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIikpLGNlPUllW3RoaXMuZHJhZ2dlZEluZGV4XTtpZighY2UpcmV0dXJuO2xldCBkZT10aGlzLmRyYWdDdXJyZW50WS10aGlzLmRyYWdTdGFydFk7Y2Uuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7ZGV9cHgpYDtsZXQgTGU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF07aWYoIUxlKXJldHVybjtsZXQgS2U9TGUudG9wK0xlLmhlaWdodC8yK2RlLFllPXRoaXMuZHJhZ2dlZEluZGV4O2ZvcihsZXQgb3Q9MDtvdDxJZS5sZW5ndGg7b3QrKyl7aWYob3Q9PT10aGlzLmRyYWdnZWRJbmRleCljb250aW51ZTtsZXQgVXQ9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1tvdF07aWYoIVV0KWNvbnRpbnVlO2xldCBadD1VdC50b3ArVXQuaGVpZ2h0LzI7aWYoSWVbb3RdLmNsYXNzTGlzdC5jb250YWlucygibW92ZS11cCIpP1p0LT10aGlzLml0ZW1IZWlnaHQ6SWVbb3RdLmNsYXNzTGlzdC5jb250YWlucygibW92ZS1kb3duIikmJihadCs9dGhpcy5pdGVtSGVpZ2h0KSxLZTxadCYmb3Q8dGhpcy5kcmFnZ2VkSW5kZXgpe1llPW90O2JyZWFrfWVsc2UgS2U+WnQmJm90PnRoaXMuZHJhZ2dlZEluZGV4JiYoWWU9b3QpfVllIT09dGhpcy50YXJnZXRJbmRleCYmKHRoaXMudGFyZ2V0SW5kZXg9WWUsdGhpcy51cGRhdGVJdGVtUG9zaXRpb25zKEllKSl9dXBkYXRlSXRlbVBvc2l0aW9ucyhNZSl7bGV0IGdlPXRoaXMuZHJhZ2dlZEluZGV4LEllPXRoaXMudGFyZ2V0SW5kZXgsY2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpO2NlJiZjZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1pdGVtLWhlaWdodCIsYCR7dGhpcy5pdGVtSGVpZ2h0fXB4YCksTWUuZm9yRWFjaCgoZGUsTGUpPT57TGUhPT1nZSYmKGRlLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxkZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1pdGVtLWhlaWdodCIsYCR7dGhpcy5pdGVtSGVpZ2h0fXB4YCksZ2U8SWU/TGU+Z2UmJkxlPD1JZSYmZGUuY2xhc3NMaXN0LmFkZCgibW92ZS11cCIpOmdlPkllJiZMZT49SWUmJkxlPGdlJiZkZS5jbGFzc0xpc3QuYWRkKCJtb3ZlLWRvd24iKSl9KX1oYW5kbGVHbG9iYWxEcmFnRW5kKCl7dGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPW51bGwpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGwpO2xldCBNZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIiksZ2U9TWU/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKSxJZT1nZT8uW3RoaXMuZHJhZ2dlZEluZGV4XTtpZih0aGlzLmRyYWdnZWRJbmRleD09PS0xfHx0aGlzLnRhcmdldEluZGV4PT09LTF8fHRoaXMuZHJhZ2dlZEluZGV4PT09dGhpcy50YXJnZXRJbmRleCl7aWYoSWUmJnRoaXMuZHJhZ2dlZEluZGV4IT09LTEpe0llLnN0eWxlLnRyYW5zaXRpb249InRyYW5zZm9ybSAwLjE1cyBlYXNlIixJZS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMCkiO2xldCBvdD0hMSxVdD1pKCgpPT57b3R8fChvdD0hMCxJZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixVdCksdGhpcy5jbGVhbnVwRHJhZ1N0YXRlKE1lLGdlKSl9LCJvblJldHVybiIpO0llLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFV0LHtvbmNlOiEwfSksc2V0VGltZW91dChVdCwyMDApfWVsc2UgdGhpcy5jbGVhbnVwRHJhZ1N0YXRlKE1lLGdlKTtyZXR1cm59bGV0IGNlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy5kcmFnZ2VkSW5kZXhdLGRlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy50YXJnZXRJbmRleF07aWYoIWNlfHwhZGV8fCFJZSl7dGhpcy5jbGVhbnVwRHJhZ1N0YXRlKE1lLGdlKTtyZXR1cm59bGV0IExlO3RoaXMudGFyZ2V0SW5kZXg+dGhpcy5kcmFnZ2VkSW5kZXg/TGU9ZGUuYm90dG9tLWNlLmJvdHRvbTpMZT1kZS50b3AtY2UudG9wLEllLnN0eWxlLnRyYW5zaXRpb249InRyYW5zZm9ybSAwLjE1cyBlYXNlIixJZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtMZX1weClgO2xldCBLZT0hMSxZZT1pKCgpPT57aWYoS2UpcmV0dXJuO0tlPSEwLEllLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFllKSxNZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxNZT8ub2Zmc2V0SGVpZ2h0LGdlPy5mb3JFYWNoKFp0PT57WnQuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksWnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLFp0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KTtsZXQgb3Q9Wy4uLnRoaXMudmFsdWVdLFtVdF09b3Quc3BsaWNlKHRoaXMuZHJhZ2dlZEluZGV4LDEpO290LnNwbGljZSh0aGlzLnRhcmdldEluZGV4LDAsVXQpLHRoaXMudmFsdWU9b3QsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5kcmFnZ2VkSW5kZXg9LTEsdGhpcy5kcmFnT3ZlckluZGV4PS0xLHRoaXMudGFyZ2V0SW5kZXg9LTEsdGhpcy5kcmFnU3RhcnRZPTAsdGhpcy5kcmFnQ3VycmVudFk9MCx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPVtdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBadD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKTtadD8uZm9yRWFjaChqYT0+e2phLnN0eWxlLnRyYW5zaXRpb249Im5vbmUifSksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpPy5vZmZzZXRIZWlnaHQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57WnQ/LmZvckVhY2goamE9PntqYS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSksTWU/LmNsYXNzTGlzdC5yZW1vdmUoImRyb3BwaW5nIiwiaXMtZHJhZ2dpbmciKX0pfSl9LCJvblRyYW5zaXRpb25FbmQiKTtJZS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixZZSx7b25jZTohMH0pLHNldFRpbWVvdXQoWWUsMjAwKX1jbGVhbnVwRHJhZ1N0YXRlKE1lLGdlKXtNZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxNZT8ub2Zmc2V0SGVpZ2h0LGdlPy5mb3JFYWNoKEllPT57SWUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksSWUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLEllLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IEllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO0llPy5mb3JFYWNoKGNlPT57Y2Uuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntJZT8uZm9yRWFjaChjZT0+e2NlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxNZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX1oYW5kbGVEcmFnRW5kKCl7dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKCl9aGFuZGxlRHJhZ092ZXIoTWUsZ2UpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHwoTWUucHJldmVudERlZmF1bHQoKSxNZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSIpfWhhbmRsZURyYWdMZWF2ZSgpe31oYW5kbGVEcm9wKE1lLGdlKXshdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZHx8TWUucHJldmVudERlZmF1bHQoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoTWUpe3RoaXMudmFsdWU9TWV8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIGl0ZW0gaXMgcmVxdWlyZWQiLCExKTp0aGlzLm1pbkl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1pbkl0ZW1zPyh0aGlzLnZhbGlkYXRpb25UZXh0PWBBdCBsZWFzdCAke3RoaXMubWluSXRlbXN9IGl0ZW1zIHJlcXVpcmVkYCwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfXN0YXRpY3tmYShhLHQpfX07cmV0dXJuIHN0PWF9KSgpfSk7dmFyIE5XYSxSV2EsT1dhLEZXYSxCV2EsSFdhLHFXYSxBMGEsTjBhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTtOV2E9aSgoKT0+e2xldCBzPURhdGUubm93KCk7cmV0dXJuW3tpZDpgdGl0bGUtJHtzfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJTeXN0ZW0gUGVyZm9ybWFuY2UgUmVwb3J0In0se2lkOmBkYXRlLSR7cysxfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OmBHZW5lcmF0ZWQgb246ICR7bmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpfWB9LHtpZDpgc3VtbWFyeS1oZWFkaW5nLSR7cysyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJFeGVjdXRpdmUgU3VtbWFyeSJ9LHtpZDpgc3VtbWFyeS0ke3MrM31gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiVGhpcyByZXBvcnQgcHJvdmlkZXMgYW4gYW5hbHlzaXMgb2Ygc3lzdGVtIHBlcmZvcm1hbmNlIG1ldHJpY3Mgb3ZlciB0aGUgbGFzdCAzMCBkYXlzLiJ9LHtpZDpgbWV0cmljcy1oZWFkaW5nLSR7cys0fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJLZXkgTWV0cmljcyJ9LHtpZDpgbWV0cmljcy1saXN0LSR7cys1fWAsdHlwZToibGlzdCIsY29udGVudDpgQXZlcmFnZSByZXNwb25zZSB0aW1lOiAxMjRtcwpVcHRpbWU6IDk5Ljk3JQpDUFUgdXRpbGl6YXRpb246IDQ1JQpNZW1vcnkgdXNhZ2U6IDIuM0dCIC8gOEdCYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGFuYWx5c2lzLWhlYWRpbmctJHtzKzZ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IlBlcmZvcm1hbmNlIEFuYWx5c2lzIn0se2lkOmBhbmFseXNpcy1xdW90ZS0ke3MrN31gLHR5cGU6InF1b3RlIixjb250ZW50OiJTeXN0ZW0gcGVyZm9ybWFuY2UgcmVtYWlucyB3aXRoaW4gYWNjZXB0YWJsZSBwYXJhbWV0ZXJzIHdpdGggcm9vbSBmb3Igb3B0aW1pemF0aW9uIGluIG1lbW9yeSBtYW5hZ2VtZW50LiJ9LHtpZDpgY29kZS1oZWFkaW5nLSR7cys4fWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJTYW1wbGUgUXVlcnkgUGVyZm9ybWFuY2UifSx7aWQ6YGNvZGUtYmxvY2stJHtzKzl9YCx0eXBlOiJjb2RlIixjb250ZW50OmBTRUxFQ1QgQVZHKHJlc3BvbnNlX3RpbWUpIGFzIGF2Z190aW1lLAogICAgICAgQ09VTlQoKikgYXMgdG90YWxfcmVxdWVzdHMsCiAgICAgICBEQVRFKGNyZWF0ZWRfYXQpIGFzIGRhdGUKRlJPTSBwZXJmb3JtYW5jZV9sb2dzCldIRVJFIGNyZWF0ZWRfYXQgPj0gTk9XKCkgLSBJTlRFUlZBTCAzMCBEQVkKR1JPVVAgQlkgREFURShjcmVhdGVkX2F0KQpPUkRFUiBCWSBkYXRlIERFU0M7YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6InNxbCJ9fSx7aWQ6YGRpdmlkZXItJHtzKzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBmb290ZXItJHtzKzExfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJSZXBvcnQgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgU3lzdGVtIE1vbml0b3IgdjIuNS4wIn1dfSwiZ2VuZXJhdGVSZXBvcnRCbG9ja3MiKSxSV2E9aSgoKT0+e2xldCBzPURhdGUubm93KCk7cmV0dXJuW3tpZDpgcmVjaXBlLXRpdGxlLSR7c31gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiQ2xhc3NpYyBNYXJnaGVyaXRhIFBpenphIn0se2lkOmByZWNpcGUtaW50cm8tJHtzKzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IkEgdHJhZGl0aW9uYWwgSXRhbGlhbiBwaXp6YSB3aXRoIGZyZXNoIGJhc2lsLCBtb3p6YXJlbGxhLCBhbmQgdG9tYXRvIHNhdWNlLiJ9LHtpZDpgaW5ncmVkaWVudHMtaGVhZGluZy0ke3MrMn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiXHV7MUYzNTV9IEluZ3JlZGllbnRzIn0se2lkOmBkb3VnaC1oZWFkaW5nLSR7cyszfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJGb3IgdGhlIERvdWdoOiJ9LHtpZDpgZG91Z2gtbGlzdC0ke3MrNH1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YDUwMGcgdGlwbyAiMDAiIGZsb3VyCjMyNW1sIHdhcm0gd2F0ZXIKMTBnIHNhbHQKN2cgYWN0aXZlIGRyeSB5ZWFzdAoyIHRic3Agb2xpdmUgb2lsYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YHRvcHBpbmdzLWhlYWRpbmctJHtzKzV9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgVG9wcGluZ3M6In0se2lkOmB0b3BwaW5ncy1saXN0LSR7cys2fWAsdHlwZToibGlzdCIsY29udGVudDpgNDAwZyBjYW5uZWQgU2FuIE1hcnphbm8gdG9tYXRvZXMKMjUwZyBmcmVzaCBtb3p6YXJlbGxhCkZyZXNoIGJhc2lsIGxlYXZlcwpFeHRyYSB2aXJnaW4gb2xpdmUgb2lsClNhbHQgYW5kIHBlcHBlciB0byB0YXN0ZWAsbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0se2lkOmBpbnN0cnVjdGlvbnMtaGVhZGluZy0ke3MrN31gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiXHV7MUY0Njh9XHUyMDBEXHV7MUYzNzN9IEluc3RydWN0aW9ucyJ9LHtpZDpgc3RlcHMtbGlzdC0ke3MrOH1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YERpc3NvbHZlIHllYXN0IGluIHdhcm0gd2F0ZXIgYW5kIGxldCBzdGFuZCBmb3IgNSBtaW51dGVzCk1peCBmbG91ciBhbmQgc2FsdCwgY3JlYXRlIGEgd2VsbCBpbiBjZW50ZXIKQWRkIHllYXN0IG1peHR1cmUgYW5kIG9saXZlIG9pbApLbmVhZCBmb3IgMTAgbWludXRlcyB1bnRpbCBzbW9vdGgKTGV0IHJpc2UgZm9yIDEtMiBob3VycyB1bnRpbCBkb3VibGVkClB1bmNoIGRvd24gYW5kIGRpdmlkZSBpbnRvIHBvcnRpb25zClJvbGwgb3V0IGVhY2ggcG9ydGlvbiB0byAxMi1pbmNoIGNpcmNsZXMKVG9wIHdpdGggY3J1c2hlZCB0b21hdG9lcywgbW96emFyZWxsYSwgYW5kIGJhc2lsCkJha2UgYXQgNDc1XHhCMEYgKDI0NVx4QjBDKSBmb3IgMTAtMTIgbWludXRlc2AsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDpgdGlwLSR7cys5fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlBybyB0aXA6IEZvciBhbiBhdXRoZW50aWMgdGFzdGUsIHVzZSBhIHBpenphIHN0b25lIGFuZCBwcmVoZWF0IGl0IGluIHRoZSBvdmVuIGZvciBhdCBsZWFzdCAzMCBtaW51dGVzIGJlZm9yZSBiYWtpbmcuIn0se2lkOmBkaXZpZGVyLSR7cysxMH1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDpgc2VydmluZ3MtJHtzKzExfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJTZXJ2aW5nczogNCBwaXp6YXMgfCBQcmVwIHRpbWU6IDIgaG91cnMgfCBDb29rIHRpbWU6IDEyIG1pbnV0ZXMifV19LCJnZW5lcmF0ZVJlY2lwZUJsb2NrcyIpLE9XYT1pKHM9PntsZXQgZT17fTtyZXR1cm4gZS5iYXNpYz1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYmFzaWMiKSxlLmFydGljbGU9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWFydGljbGUiKSxlLmRyYWdEcm9wPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1kcmFnZHJvcCIpLGUudHV0b3JpYWw9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXR1dG9yaWFsIiksZS5tZWV0aW5nPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1tZWV0aW5nIiksZS5yZWNpcGU9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXJlY2lwZSIpLGUudGVjaG5pY2FsPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci10ZWNobmljYWwiKSxlLmZvcm1JbnRlZ3JhdGlvbj1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIpLGUucHJvZ3JhbW1hdGljPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1wcm9ncmFtbWF0aWMiKSxlLmV4cG9ydERlbW89cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWV4cG9ydCIpLGV9LCJpbml0aWFsaXplRWRpdG9ycyIpLEZXYT1pKChzLGUpPT57bGV0IHQ9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLWdlbmVyYXRlLXJlcG9ydCIpLGE9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLWdlbmVyYXRlLXJlY2lwZSIpLHI9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLWNsZWFyLWVkaXRvciIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoTldhKCkpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhSV2EoKSl9KSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKFtdKX0pfSwic2V0dXBQcm9ncmFtbWF0aWNEZW1vIiksQldhPWkoKHMsZSk9PntsZXQgdD1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWJsb2NrcyIpLGE9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1odG1sIikscj1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LW1hcmtkb3duIiksbj1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2F2ZS1zdGF0ZSIpLG89cy5xdWVyeVNlbGVjdG9yKCIjYnRuLXJlc3RvcmUtc3RhdGUiKSxsPW51bGw7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgcD1lLmV4cG9ydEJsb2NrcygpO2NvbnNvbGUubG9nKCJFeHBvcnRlZCBibG9ja3M6IixwKSxhbGVydChgRXhwb3J0ZWQgJHtwLmxlbmd0aH0gYmxvY2tzIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy5gKX0pLGEmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IHA9ZS5leHBvcnRBc0h0bWwoKTtjb25zb2xlLmxvZygiSFRNTCBFeHBvcnQ6IixwKSxhbGVydCgiSFRNTCBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBwPWUuZXhwb3J0QXNNYXJrZG93bigpO2NvbnNvbGUubG9nKCJNYXJrZG93biBFeHBvcnQ6IixwKSxhbGVydCgiTWFya2Rvd24gZXhwb3J0ZWQgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLiIpfSksbiYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsPWUuZXhwb3J0U3RhdGUoKSxjb25zb2xlLmxvZygiU2F2ZWQgc3RhdGU6IixsKSxhbGVydCgiRWRpdG9yIHN0YXRlIHNhdmVkISIpfSksbyYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsPyhlLmltcG9ydFN0YXRlKGwpLGFsZXJ0KCJFZGl0b3Igc3RhdGUgcmVzdG9yZWQhIikpOmFsZXJ0KCJObyBzYXZlZCBzdGF0ZSBmb3VuZC4gU2F2ZSBzdGF0ZSBmaXJzdCEiKX0pfSwic2V0dXBFeHBvcnREZW1vIiksSFdhPWkoKHMsZSx0KT0+e2xldCBhPXMucXVlcnlTZWxlY3RvcigiI2J0bi1zaG93LWh0bWwtb3V0cHV0Iikscj1zLnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1odG1sIik7YSYmciYmZSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLnRleHRDb250ZW50PWUuZ2V0VmFsdWUoKSxyLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pO2xldCBuPXMucXVlcnlTZWxlY3RvcigiI2J0bi1zaG93LW1hcmtkb3duLW91dHB1dCIpLG89cy5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXctbWFya2Rvd24iKTtuJiZvJiZ0JiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e28udGV4dENvbnRlbnQ9dC5nZXRWYWx1ZSgpLG8uY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSl9LCJzZXR1cE91dHB1dEZvcm1hdERlbW8iKSxxV2E9aShzPT57cy5hcnRpY2xlJiZzZXRUaW1lb3V0KCgpPT57bGV0IGU9W3tpZDoiaW50cm8taGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJJbnRyb2R1Y3Rpb24gdG8gTW9kZXJuIFdlYiBEZXZlbG9wbWVudCJ9LHtpZDoiaW50cm8tcGFyYS0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJNb2Rlcm4gd2ViIGRldmVsb3BtZW50IGhhcyBldm9sdmVkIHNpZ25pZmljYW50bHkgb3ZlciB0aGUgcGFzdCBkZWNhZGUuIEluIHRoaXMgYXJ0aWNsZSwgd2UnbGwgZXhwbG9yZSB0aGUga2V5IHRlY2hub2xvZ2llcyBhbmQgYmVzdCBwcmFjdGljZXMgdGhhdCBkZWZpbmUgd2ViIGRldmVsb3BtZW50IGluIDIwMjQuIn0se2lkOiJ0ZWNoLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiS2V5IFRlY2hub2xvZ2llcyJ9LHtpZDoidGVjaC1saXN0LSIrRGF0ZS5ub3coKSx0eXBlOiJsaXN0Iixjb250ZW50OmBUeXBlU2NyaXB0IC0gVHlwZS1zYWZlIEphdmFTY3JpcHQgZGV2ZWxvcG1lbnQKV2ViIENvbXBvbmVudHMgLSBOYXRpdmUgY29tcG9uZW50IG1vZGVsCkVTIE1vZHVsZXMgLSBNb2Rlcm4gbW9kdWxlIHN5c3RlbQpXZWJBc3NlbWJseSAtIEhpZ2gtcGVyZm9ybWFuY2UgY29tcHV0aW5nYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOiJxdW90ZS0iK0RhdGUubm93KCksdHlwZToicXVvdGUiLGNvbnRlbnQ6IlRoZSBiZXN0IHdheSB0byBwcmVkaWN0IHRoZSBmdXR1cmUgaXMgdG8gaW52ZW50IGl0LiAtIEFsYW4gS2F5In0se2lkOiJleGFtcGxlLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiQ29kZSBFeGFtcGxlIn0se2lkOiJjb2RlLWV4YW1wbGUtIitEYXRlLm5vdygpLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YGNsYXNzIE1vZGVybldlYkFwcCBleHRlbmRzIEhUTUxFbGVtZW50IHsKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTsKICB9CiAgCiAgY29ubmVjdGVkQ2FsbGJhY2soKSB7CiAgICB0aGlzLnJlbmRlcigpOwogIH0KfWAsbWV0YWRhdGE6e2xhbmd1YWdlOiJqYXZhc2NyaXB0In19XTtzLmFydGljbGUuaW1wb3J0QmxvY2tzKGUpfSw1MDApLHMuZHJhZ0Ryb3AmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJkcmFnLXRpdGxlLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IkRyYWcgJiBEcm9wIERlbW8ifSx7aWQ6ImRyYWctaW50cm8tIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiVGhpcyBlZGl0b3IgZGVtb25zdHJhdGVzIGRyYWcgYW5kIGRyb3AgZnVuY3Rpb25hbGl0eS4gVHJ5IGRyYWdnaW5nIHRoZXNlIGJsb2NrcyBhcm91bmQhIn0se2lkOiJkcmFnLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiSG93IEl0IFdvcmtzIn0se2lkOiJkcmFnLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YEhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHNlZSB0aGUgZHJhZyBoYW5kbGUKQ2xpY2sgYW5kIGhvbGQgdGhlIGhhbmRsZSB0byBzdGFydCBkcmFnZ2luZwpEcmFnIHRvIHJlb3JkZXIgYmxvY2tzClJlbGVhc2UgdG8gZHJvcCBpbiB0aGUgbmV3IHBvc2l0aW9uYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOiJkcmFnLXF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGRyYWcgYW5kIGRyb3AgZmVhdHVyZSBtYWtlcyBpdCBlYXN5IHRvIHJlb3JnYW5pemUgeW91ciBjb250ZW50IHdpdGhvdXQgY3V0dGluZyBhbmQgcGFzdGluZy4ifSx7aWQ6ImRyYWctZGl2aWRlci0iK0RhdGUubm93KCksdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOiJkcmFnLWZvb3Rlci0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJOb3RlOiBEaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZCwgYnV0IG90aGVyIGJsb2NrcyBjYW4gYmUgbW92ZWQgYXJvdW5kIHRoZW0uIn1dO3MuZHJhZ0Ryb3AuaW1wb3J0QmxvY2tzKGUpfSw2MDApfSwicG9wdWxhdGVJbml0aWFsQ29udGVudCIpLEEwYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9Pnthd2FpdCBuZXcgUHJvbWlzZSh0PT5zZXRUaW1lb3V0KHQsNTAwKSk7bGV0IGU9T1dhKHMpO2UucHJvZ3JhbW1hdGljJiZGV2EocyxlLnByb2dyYW1tYXRpYyksZS5leHBvcnREZW1vJiZCV2EocyxlLmV4cG9ydERlbW8pLEhXYShzLGUubWVldGluZyxlLnJlY2lwZSkscVdhKGUpLGNvbnNvbGUubG9nKCJXWVNJV1lHIERlbW8gaW5pdGlhbGl6ZWQgd2l0aCBlZGl0b3JzOiIsT2JqZWN0LmtleXMoZSkpfX0+CiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmVhdHVyZS1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2FhYTsKICAgICAgICB9CiAgICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEwMiwgMjA0LCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICBtYXJnaW46IDAgMCAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYmJiOwogICAgICAgIH0KICAgICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1jYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3V0cHV0LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4wNCk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgIzBmMTcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW3RoZW1lPSdkYXJrJ10pIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjA2KTsKICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgI2Y0ZjRmNSk7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldy52aXNpYmxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjhmZjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IHsKICAgICAgICBtYXJnaW46IDhweCAwIDAgMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODsKICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM1NTU7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3MgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTYsIDM5LCAxNzYsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHN0cm9uZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3Mgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjNENBRjUwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjRkY5ODAwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjOUMyN0IwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBwIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIFx1ezFGNjgwfSBNb2Rlcm4gV1lTSVdZRyBFZGl0b3IifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQSBwb3dlcmZ1bCBibG9jay1iYXNlZCBlZGl0b3Igd2l0aCBzbGFzaCBjb21tYW5kcywga2V5Ym9hcmQgc2hvcnRjdXRzLCBhbmQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdHMuIAogICAgICAgICAgUGVyZmVjdCBmb3IgY29udGVudCBjcmVhdGlvbiwgYmxvZyBwb3N0cywgZG9jdW1lbnRhdGlvbiwgYW5kIG1vcmUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPlNsYXNoIGNvbW1hbmRzICgvKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5LZXlib2FyZCBzaG9ydGN1dHM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+QmxvY2stYmFzZWQgZWRpdGluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EcmFnICYgZHJvcCByZW9yZGVyaW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkhUTUwgJiBNYXJrZG93biBvdXRwdXQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RGFyayBtb2RlIHN1cHBvcnQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+TW9iaWxlIHJlc3BvbnNpdmU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1iYXNpYyIKICAgICAgICAgIGxhYmVsPSJSaWNoIFRleHQgRWRpdG9yIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGFydCB0eXBpbmcgb3IgdXNlICcvJyB0byBpbnNlcnQgZGlmZmVyZW50IGJsb2NrIHR5cGVzIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWJveCI+CiAgICAgICAgICA8aDQgY2xhc3M9InNob3J0Y3V0cy10aXRsZSI+4oyo77iPIEtleWJvYXJkIFNob3J0Y3V0czwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtZ3JpZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi88L3NwYW4+IFNsYXNoIGNvbW1hbmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jPC9zcGFuPiBIZWFkaW5nIDEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjPC9zcGFuPiBIZWFkaW5nIDIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjIzwvc3Bhbj4gSGVhZGluZyAzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4+PC9zcGFuPiBRdW90ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+XGBcYFxgPC9zcGFuPiBDb2RlIGJsb2NrCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4qPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tPC9zcGFuPiBCdWxsZXQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+MS48L3NwYW4+IE51bWJlcmVkIGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi0tLTwvc3Bhbj4gRGl2aWRlcgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gXHV7MUY0RER9IEJsb2cgUG9zdCBFeGFtcGxlIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFBlcmZlY3QgZm9yIGNyZWF0aW5nIHJpY2ggY29udGVudCB3aXRoIG11bHRpcGxlIGJsb2NrIHR5cGVzLiAKICAgICAgICAgIFRoZSBlZGl0b3IgcHJlc2VydmVzIGZvcm1hdHRpbmcgYW5kIHByb3ZpZGVzIGEgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1hcnRpY2xlIgogICAgICAgICAgbGFiZWw9IkJsb2cgUG9zdCBDb250ZW50IiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgdXNpbmcgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gXHV7MUY1MDB9IERyYWcgJiBEcm9wIFJlb3JkZXJpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgRWFzaWx5IHJlYXJyYW5nZSB5b3VyIGNvbnRlbnQgYmxvY2tzIGJ5IGRyYWdnaW5nIHRoZW0uIAogICAgICAgICAgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gcmV2ZWFsIHRoZSBkcmFnIGhhbmRsZSBvbiB0aGUgbGVmdCBzaWRlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1kcmFnZHJvcCIKICAgICAgICAgIGxhYmVsPSJEcmFnICYgRHJvcCBEZW1vIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgZHJhZ2dpbmcgYmxvY2tzIHRvIHJlb3JkZXIgdGhlbSAtIGhvdmVyIHRvIHNlZSBkcmFnIGhhbmRsZXMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpcHMtYm94Ij4KICAgICAgICAgIDxzdHJvbmc+8J+SoSBUaXBzOjwvc3Ryb25nPgogICAgICAgICAgPHVsIGNsYXNzPSJ0aXBzLWxpc3QiPgogICAgICAgICAgICA8bGk+SG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZSAo4ouu4ouuKSBvbiB0aGUgbGVmdDwvbGk+CiAgICAgICAgICAgIDxsaT5DbGljayBhbmQgaG9sZCB0aGUgZHJhZyBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmc8L2xpPgogICAgICAgICAgICA8bGk+Qmx1ZSBpbmRpY2F0b3JzIHNob3cgd2hlcmUgdGhlIGJsb2NrIHdpbGwgYmUgZHJvcHBlZDwvbGk+CiAgICAgICAgICAgIDxsaT5EaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZDwvbGk+CiAgICAgICAgICAgIDxsaT5UaGUgZWRpdG9yIG1haW50YWlucyBmb2N1cyBvbiB0aGUgbW92ZWQgYmxvY2sgYWZ0ZXIgZHJvcHBpbmc8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFx1ezFGNERBfSBUdXRvcmlhbCAmIERvY3VtZW50YXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXByZWhlbnNpdmUgdHV0b3JpYWxzIGFuZCBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBleGFtcGxlcywgbGlzdHMsIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXR1dG9yaWFsIgogICAgICAgICAgbGFiZWw9IkdpdCBUdXRvcmlhbCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RlcC1ieS1zdGVwIGd1aWRlIHdpdGggY29tbWFuZHMgYW5kIGV4cGxhbmF0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICB2YWx1ZT0iIyBHaXQgVHV0b3JpYWwgZm9yIEJlZ2lubmVycwoKR2l0IGlzIGEgZGlzdHJpYnV0ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0aGF0IGhlbHBzIHlvdSB0cmFjayBjaGFuZ2VzIGluIHlvdXIgY29kZSBvdmVyIHRpbWUuIFRoaXMgdHV0b3JpYWwgd2lsbCBndWlkZSB5b3UgdGhyb3VnaCB0aGUgYmFzaWNzLgoKIyMgUHJlcmVxdWlzaXRlcwoKQmVmb3JlIHN0YXJ0aW5nLCBlbnN1cmUgeW91IGhhdmU6CgotIEdpdCBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0KLSBBIHRleHQgZWRpdG9yIG9yIElERQotIEJhc2ljIGNvbW1hbmQgbGluZSBrbm93bGVkZ2UKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIDEuIENvbmZpZ3VyZSBHaXQKCkZpcnN0LCBzZXQgdXAgeW91ciBpZGVudGl0eToKClxgXGBcYGJhc2gKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgJnF1b3Q7WW91ciBOYW1lJnF1b3Q7CmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAmcXVvdDt5b3VyLmVtYWlsQGV4YW1wbGUuY29tJnF1b3Q7ClxgXGBcYAoKIyMjIDIuIEluaXRpYWxpemUgYSBSZXBvc2l0b3J5CgpDcmVhdGUgYSBuZXcgR2l0IHJlcG9zaXRvcnk6CgpcYFxgXGBiYXNoCm1rZGlyIG15LXByb2plY3QKY2QgbXktcHJvamVjdApnaXQgaW5pdApcYFxgXGAKCiMjIyAzLiBCYXNpYyBHaXQgV29ya2Zsb3cKCiMjIyMgQWRkaW5nIEZpbGVzCgpDcmVhdGUgYSBmaWxlIGFuZCBhZGQgaXQgdG8gc3RhZ2luZzoKClxgXGBcYGJhc2gKZWNobyAmcXVvdDsjIE15IFByb2plY3QmcXVvdDsgPiBSRUFETUUubWQKZ2l0IGFkZCBSRUFETUUubWQKXGBcYFxgCgojIyMjIENvbW1pdHRpbmcgQ2hhbmdlcwoKXGBcYFxgYmFzaApnaXQgY29tbWl0IC1tICZxdW90O0luaXRpYWwgY29tbWl0JnF1b3Q7ClxgXGBcYAoKPiAqKkJlc3QgUHJhY3RpY2U6KiogV3JpdGUgY2xlYXIsIGRlc2NyaXB0aXZlIGNvbW1pdCBtZXNzYWdlcyB0aGF0IGV4cGxhaW4gd2hhdCBjaGFuZ2VzIHdlcmUgbWFkZSBhbmQgd2h5LgoKIyMjIDQuIFdvcmtpbmcgd2l0aCBCcmFuY2hlcwoKQnJhbmNoZXMgYWxsb3cgeW91IHRvIHdvcmsgb24gZmVhdHVyZXMgaW5kZXBlbmRlbnRseToKClxgXGBcYGJhc2gKIyBDcmVhdGUgYW5kIHN3aXRjaCB0byBhIG5ldyBicmFuY2gKZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUtYnJhbmNoCgojIE1ha2UgY2hhbmdlcyBhbmQgY29tbWl0CmdpdCBhZGQgLgpnaXQgY29tbWl0IC1tICZxdW90O0FkZCBuZXcgZmVhdHVyZSZxdW90OwoKIyBTd2l0Y2ggYmFjayB0byBtYWluCmdpdCBjaGVja291dCBtYWluCgojIE1lcmdlIHRoZSBmZWF0dXJlCmdpdCBtZXJnZSBmZWF0dXJlLWJyYW5jaApcYFxgXGAKCi0tLQoKIyMgQ29tbW9uIENvbW1hbmRzIFJlZmVyZW5jZQoKfCBDb21tYW5kIHwgRGVzY3JpcHRpb24gfAp8LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgXGBnaXQgc3RhdHVzXGAgfCBDaGVjayByZXBvc2l0b3J5IHN0YXR1cyB8CnwgXGBnaXQgbG9nXGAgfCBWaWV3IGNvbW1pdCBoaXN0b3J5IHwKfCBcYGdpdCBkaWZmXGAgfCBTaG93IGNoYW5nZXMgfAp8IFxgZ2l0IHB1bGxcYCB8IEZldGNoIGFuZCBtZXJnZSBjaGFuZ2VzIHwKfCBcYGdpdCBwdXNoXGAgfCBVcGxvYWQgY2hhbmdlcyB0byByZW1vdGUgfAoKIyMgTmV4dCBTdGVwcwoKMS4gTGVhcm4gYWJvdXQgcmVtb3RlIHJlcG9zaXRvcmllcwoyLiBFeHBsb3JlIGFkdmFuY2VkIEdpdCBmZWF0dXJlcwozLiBQcmFjdGljZSB3aXRoIHJlYWwgcHJvamVjdHMKNC4gQ29udHJpYnV0ZSB0byBvcGVuIHNvdXJjZQoKKipIYXBweSBjb2RpbmchKiog8J+agCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBcdXsxRjUwNH0gT3V0cHV0IEZvcm1hdHMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2hvb3NlIGJldHdlZW4gSFRNTCBhbmQgTWFya2Rvd24gb3V0cHV0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHlvdXIgbmVlZHMuIAogICAgICAgICAgUGVyZmVjdCBmb3Igc3RhdGljIHNpdGUgZ2VuZXJhdG9ycywgZG9jdW1lbnRhdGlvbiBzeXN0ZW1zLCBvciBhbnkgY29udGVudCBtYW5hZ2VtZW50IHdvcmtmbG93LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1tZWV0aW5nIgogICAgICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIE5vdGVzIiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RydWN0dXJlZCBtZWV0aW5nIGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgICAgICAgIHZhbHVlPSI8aDI+UTQgUGxhbm5pbmcgTWVldGluZzwvaDI+PHA+PHN0cm9uZz5EYXRlOjwvc3Ryb25nPiBEZWNlbWJlciAxNSwgMjAyNDxicj48c3Ryb25nPkF0dGVuZGVlczo8L3N0cm9uZz4gUHJvZHVjdCBUZWFtLCBFbmdpbmVlcmluZywgRGVzaWduPC9wPjxoMz5BZ2VuZGEgSXRlbXM8L2gzPjxvbD48bGk+UmV2aWV3IFEzIGFjaGlldmVtZW50czwvbGk+PGxpPlNldCBRNCBvYmplY3RpdmVzPC9saT48bGk+UmVzb3VyY2UgYWxsb2NhdGlvbjwvbGk+PGxpPlRpbWVsaW5lIGRpc2N1c3Npb248L2xpPjwvb2w+PGgzPktleSBEZWNpc2lvbnM8L2gzPjx1bD48bGk+TGF1bmNoIG5ldyBkYXNoYm9hcmQgZmVhdHVyZSBieSBlbmQgb2YgSmFudWFyeTwvbGk+PGxpPkluY3JlYXNlIGVuZ2luZWVyaW5nIHRlYW0gYnkgMiBkZXZlbG9wZXJzPC9saT48bGk+SW1wbGVtZW50IHdlZWtseSBkZXNpZ24gcmV2aWV3czwvbGk+PC91bD48YmxvY2txdW90ZT4mcXVvdDtGb2N1cyBvbiB1c2VyIGV4cGVyaWVuY2UgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIFEzIGZlZWRiYWNrJnF1b3Q7IC0gUHJvZHVjdCBNYW5hZ2VyPC9ibG9ja3F1b3RlPjxoMz5BY3Rpb24gSXRlbXM8L2gzPjx1bD48bGk+U2FyYWg6IENyZWF0ZSBkZXRhaWxlZCBwcm9qZWN0IHRpbWVsaW5lPC9saT48bGk+TWlrZTogRHJhZnQgdGVjaG5pY2FsIHJlcXVpcmVtZW50czwvbGk+PGxpPkxpc2E6IFNjaGVkdWxlIHVzZXIgcmVzZWFyY2ggc2Vzc2lvbnM8L2xpPjwvdWw+PGhyPjxwPk5leHQgbWVldGluZzogSmFudWFyeSA1LCAyMDI1PC9wPiIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctaHRtbC1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBIVE1MIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctaHRtbCIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItcmVjaXBlIgogICAgICAgICAgICAgIGxhYmVsPSJSZWNpcGUgQmxvZyBQb3N0IiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRm9vZCBibG9nIHdpdGggbWl4ZWQgY29udGVudCIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgICAgIHZhbHVlPSIjIFVsdGltYXRlIENob2NvbGF0ZSBDaGlwIENvb2tpZXMKClRoZXJlJ3Mgbm90aGluZyBxdWl0ZSBsaWtlIHRoZSBzbWVsbCBvZiBmcmVzaGx5IGJha2VkIGNob2NvbGF0ZSBjaGlwIGNvb2tpZXMuIFRoaXMgcmVjaXBlIGhhcyBiZWVuIHBlcmZlY3RlZCBvdmVyIHllYXJzIG9mIHRlc3RpbmchCgojIyBJbmdyZWRpZW50cwoKLSAywrwgY3VwcyBhbGwtcHVycG9zZSBmbG91cgotIDEgdHNwIGJha2luZyBzb2RhCi0gMSB0c3Agc2FsdAotIDEgY3VwIGJ1dHRlciwgc29mdGVuZWQKLSDCviBjdXAgZ3JhbnVsYXRlZCBzdWdhcgotIMK+IGN1cCBwYWNrZWQgYnJvd24gc3VnYXIKLSAyIGxhcmdlIGVnZ3MKLSAyIHRzcCB2YW5pbGxhIGV4dHJhY3QKLSAyIGN1cHMgY2hvY29sYXRlIGNoaXBzCgojIyBJbnN0cnVjdGlvbnMKCiMjIyBTdGVwIDE6IFByZXBhcmF0aW9uCgpQcmVoZWF0IHlvdXIgb3ZlbiB0byAqKjM3NcKwRiAoMTkwwrBDKSoqLiBUaGlzIHRlbXBlcmF0dXJlIGlzIGNydWNpYWwgZm9yIGFjaGlldmluZyB0aGUgcGVyZmVjdCB0ZXh0dXJlLgoKIyMjIFN0ZXAgMjogTWl4IERyeSBJbmdyZWRpZW50cwoKSW4gYSBtZWRpdW0gYm93bCwgd2hpc2sgdG9nZXRoZXI6CgoxLiBGbG91cgoyLiBCYWtpbmcgc29kYQozLiBTYWx0CgojIyMgU3RlcCAzOiBDcmVhbSBCdXR0ZXIgYW5kIFN1Z2FycwoKXGBcYFxgCkNyZWFtIGJ1dHRlciBhbmQgc3VnYXJzIGZvciAzLTQgbWludXRlcwp1bnRpbCBsaWdodCBhbmQgZmx1ZmZ5ClxgXGBcYAoKPiAqKlBybyB0aXA6KiogUm9vbSB0ZW1wZXJhdHVyZSBpbmdyZWRpZW50cyBtaXggYmV0dGVyIGFuZCBjcmVhdGUgYSBtb3JlIHVuaWZvcm0gZG91Z2guCgojIyMgU3RlcCA0OiBBZGQgV2V0IEluZ3JlZGllbnRzCgpCZWF0IGluIGVnZ3Mgb25lIGF0IGEgdGltZSwgdGhlbiBhZGQgdmFuaWxsYSBleHRyYWN0LgoKIyMjIFN0ZXAgNTogQ29tYmluZSBhbmQgQmFrZQoKR3JhZHVhbGx5IGJsZW5kIGluIGZsb3VyIG1peHR1cmUsIHRoZW4gc3RpciBpbiBjaG9jb2xhdGUgY2hpcHMuIERyb3Agcm91bmRlZCB0YWJsZXNwb29ucyBvbnRvIHVuZ3JlYXNlZCBjb29raWUgc2hlZXRzLgoKLS0tCgoqKkJha2luZyB0aW1lOioqIDktMTEgbWludXRlcyBvciB1bnRpbCBnb2xkZW4gYnJvd24KCioqWWllbGQ6KiogQWJvdXQgNSBkb3plbiBjb29raWVzIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBNYXJrZG93biBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LW1hcmtkb3duIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gXHV7MUYzQTh9IEFkdmFuY2VkIEVkaXRpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXBsZXggZG9jdW1lbnRzIHdpdGggbWl4ZWQgY29udGVudCB0eXBlcy4gVGhlIGVkaXRvciBoYW5kbGVzIGFsbCBmb3JtYXR0aW5nIHNlYW1sZXNzbHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXRlY2huaWNhbCIKICAgICAgICAgIGxhYmVsPSJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ3JlYXRlIHRlY2huaWNhbCBkb2NzIHdpdGggY29kZSBleGFtcGxlcyBhbmQgc3RydWN0dXJlZCBjb250ZW50IgogICAgICAgICAgdmFsdWU9IjxoMT5BUEkgRG9jdW1lbnRhdGlvbjwvaDE+PHA+V2VsY29tZSB0byBvdXIgQVBJIGRvY3VtZW50YXRpb24uIEJlbG93IHlvdSdsbCBmaW5kIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ugb3VyIGVuZHBvaW50cy48L3A+PGgyPkF1dGhlbnRpY2F0aW9uPC9oMj48cD5BbGwgQVBJIHJlcXVlc3RzIHJlcXVpcmUgYXV0aGVudGljYXRpb24gdXNpbmcgYW4gQVBJIGtleTo8L3A+PHByZT48Y29kZT5BdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZPC9jb2RlPjwvcHJlPjxoMj5FbmRwb2ludHM8L2gyPjxoMz5HRVQgL3VzZXJzPC9oMz48cD5SZXRyaWV2ZSBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPmN1cmwgLVggR0VUIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIFxcCiAgLUggJnF1b3Q7QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSZxdW90OzwvY29kZT48L3ByZT48YmxvY2txdW90ZT5Ob3RlOiBSYXRlIGxpbWl0aW5nIGFwcGxpZXMgdG8gYWxsIGVuZHBvaW50cy4gWW91IGNhbiBtYWtlIHVwIHRvIDEwMCByZXF1ZXN0cyBwZXIgbWludXRlLjwvYmxvY2txdW90ZT48aDM+UE9TVCAvdXNlcnM8L2gzPjxwPkNyZWF0ZSBhIG5ldyB1c2VyIGluIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+ewogICZxdW90O25hbWUmcXVvdDs6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICZxdW90O2VtYWlsJnF1b3Q7OiAmcXVvdDtqb2huQGV4YW1wbGUuY29tJnF1b3Q7LAogICZxdW90O3JvbGUmcXVvdDs6ICZxdW90O3VzZXImcXVvdDsKfTwvY29kZT48L3ByZT48aHI+PHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byBvdXIgY29tcGxldGUgZG9jdW1lbnRhdGlvbi48L3A+IgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIFx1MjY5OVx1RkUwRiBGb3JtIEludGVncmF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFNlYW1sZXNzbHkgaW50ZWdyYXRlcyB3aXRoIGRlZXMtZm9ybSBmb3IgY29tcGxldGUgZm9ybSBzb2x1dGlvbnMuIAogICAgICAgICAgQWxsIHN0YW5kYXJkIGZvcm0gZmVhdHVyZXMgbGlrZSB2YWxpZGF0aW9uLCByZXF1aXJlZCBmaWVsZHMsIGFuZCBkYXRhIGJpbmRpbmcgd29yayBvdXQgb2YgdGhlIGJveC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIFRpdGxlIiAKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIHZhbHVlPSJIb3cgdG8gQnVpbGQgTW9kZXJuIFdlYiBBcHBsaWNhdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgIGlkPSJlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgQ29udGVudCIgCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgY29udGVudCBoZXJlIgogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICBsYWJlbD0iVGFncyIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkFkZCByZWxldmFudCB0YWdzIGZvciB5b3VyIGFydGljbGUiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBcdXsxRjlFOX0gUHJvZ3JhbW1hdGljIEJsb2NrIENyZWF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb250ZW50IHByb2dyYW1tYXRpY2FsbHkgdXNpbmcgdGhlIGJsb2NrIEFQSSBmb3IgZHluYW1pYyBkb2N1bWVudCBnZW5lcmF0aW9uLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLXByb2dyYW1tYXRpYyIKICAgICAgICAgIGxhYmVsPSJQcm9ncmFtbWF0aWNhbGx5IEdlbmVyYXRlZCBDb250ZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgY29udGVudCB3YXMgY3JlYXRlZCB1c2luZyB0aGUgaW1wb3J0QmxvY2tzIEFQSSIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZXBvcnQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlcG9ydAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZWNpcGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlY2lwZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jbGVhci1lZGl0b3IiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIENsZWFyIEVkaXRvcgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBcdXsxRjRFNH0gRXhwb3J0L0ltcG9ydCBGZWF0dXJlcyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUaGUgV1lTSVdZRyBlZGl0b3IgcHJvdmlkZXMgbXVsdGlwbGUgZXhwb3J0IGZvcm1hdHMgYW5kIGxvc3NsZXNzIHNhdmUvcmVzdG9yZSBjYXBhYmlsaXRpZXMgZm9yIG1heGltdW0gZmxleGliaWxpdHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBibG9ja3MiPgogICAgICAgICAgICA8c3Ryb25nPkxvc3NsZXNzIEJsb2Nrczwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYW5kIGltcG9ydCByYXcgYmxvY2sgc3RydWN0dXJlIGZvciBwZXJmZWN0IHJvdW5kLXRyaXAgZWRpdGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBodG1sIj4KICAgICAgICAgICAgPHN0cm9uZz5IVE1MIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5HZXQgY2xlYW4sIHNlbWFudGljIEhUTUwgcmVnYXJkbGVzcyBvZiBvdXRwdXQgZm9ybWF0IHNldHRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgbWFya2Rvd24iPgogICAgICAgICAgICA8c3Ryb25nPk1hcmtkb3duIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYXMgTWFya2Rvd24gZm9yIGRvY3MsIFJFQURNRXMsIGFuZCBzdGF0aWMgc2l0ZXM8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgc3RhdGUiPgogICAgICAgICAgICA8c3Ryb25nPlN0YXRlIE1hbmFnZW1lbnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+U2F2ZSBhbmQgcmVzdG9yZSBjb21wbGV0ZSBlZGl0b3Igc3RhdGUgaW5jbHVkaW5nIHNldHRpbmdzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1leHBvcnQiCiAgICAgICAgICBsYWJlbD0iRXhwb3J0IERlbW8gRWRpdG9yIgogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSB0aGUgZXhwb3J0IGJ1dHRvbnMgYmVsb3cgdG8gc2VlIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cyIKICAgICAgICAgIHZhbHVlPSI8aDE+U29mdHdhcmUgUmVsZWFzZSBOb3RlczwvaDE+PHA+PHN0cm9uZz5WZXJzaW9uIDIuNS4wPC9zdHJvbmc+IC0gUmVsZWFzZWQgRGVjZW1iZXIgMTUsIDIwMjQ8L3A+PGgyPvCfjokgTmV3IEZlYXR1cmVzPC9oMj48dWw+PGxpPkFkZGVkIGRhcmsgbW9kZSBzdXBwb3J0IGFjcm9zcyBhbGwgY29tcG9uZW50czwvbGk+PGxpPkltcGxlbWVudGVkIHJlYWwtdGltZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmVzPC9saT48bGk+TmV3IGRhc2hib2FyZCBhbmFseXRpY3Mgd2lkZ2V0czwvbGk+PGxpPkV4cG9ydCBmdW5jdGlvbmFsaXR5IGZvciBhbGwgcmVwb3J0IHR5cGVzPC9saT48L3VsPjxoMj7wn5CbIEJ1ZyBGaXhlczwvaDI+PHVsPjxsaT5GaXhlZCBtZW1vcnkgbGVhayBpbiBkYXRhIHByb2Nlc3NpbmcgbW9kdWxlPC9saT48bGk+UmVzb2x2ZWQgYXV0aGVudGljYXRpb24gdGltZW91dCBpc3N1ZXM8L2xpPjxsaT5Db3JyZWN0ZWQgdGltZXpvbmUgaGFuZGxpbmcgaW4gc2NoZWR1bGVkIHRhc2tzPC9saT48L3VsPjxoMj7imqEgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzPC9oMj48YmxvY2txdW90ZT5QYWdlIGxvYWQgdGltZXMgcmVkdWNlZCBieSA0MCUgdGhyb3VnaCBsYXp5IGxvYWRpbmcgYW5kIGNvZGUgc3BsaXR0aW5nPC9ibG9ja3F1b3RlPjxoMj7wn5SnIFRlY2huaWNhbCBEZXRhaWxzPC9oMj48cHJlPjxjb2RlPi8vIE5ldyBBUEkgZW5kcG9pbnQgZm9yIGJhdGNoIG9wZXJhdGlvbnMKUE9TVCAvYXBpL3YyL2JhdGNoCnsKICAmcXVvdDtvcGVyYXRpb25zJnF1b3Q7OiBbCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7R0VUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvdXNlcnMvMTIzJnF1b3Q7IH0sCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7UFVUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvc2V0dGluZ3MmcXVvdDssICZxdW90O2JvZHkmcXVvdDs6IHsuLi59IH0KICBdCn08L2NvZGU+PC9wcmU+PGgyPvCfkqEgTWlncmF0aW9uIEd1aWRlPC9oMj48b2w+PGxpPlVwZGF0ZSB5b3VyIGRlcGVuZGVuY2llcyB0byB0aGUgbGF0ZXN0IHZlcnNpb25zPC9saT48bGk+UnVuIGRhdGFiYXNlIG1pZ3JhdGlvbnM6IDxjb2RlPm5wbSBydW4gbWlncmF0ZTwvY29kZT48L2xpPjxsaT5DbGVhciBjYWNoZTogPGNvZGU+bnBtIHJ1biBjYWNoZTpjbGVhcjwvY29kZT48L2xpPjxsaT5SZXN0YXJ0IGFsbCBzZXJ2aWNlczwvbGk+PC9vbD48aHI+PHA+Rm9yIHF1ZXN0aW9ucyBvciBpc3N1ZXMsIHBsZWFzZSBjb250YWN0IHRoZSBkZXZlbG9wbWVudCB0ZWFtIG9yIGZpbGUgYSB0aWNrZXQgaW4gb3VyIGlzc3VlIHRyYWNrZXIuPC9wPiIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtYmxvY2tzIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgQmxvY2tzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1odG1sIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgSFRNTAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtbWFya2Rvd24iIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBNYXJrZG93bgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBTYXZlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc3RvcmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFJlc3RvcmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgTWw9ZygoKT0+e30pO3ZhciBjcixCOD1nKCgpPT57TWwoKTtjcj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnU2hvcnRjdXRzIil9c3RhdGljIEhFQURJTkdfUEFUVEVSTlM9W3twYXR0ZXJuOi9eI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTEifSx7cGF0dGVybjovXiMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMiJ9LHtwYXR0ZXJuOi9eIyMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMyJ9XTtzdGF0aWMgTElTVF9QQVRURVJOUz1be3BhdHRlcm46L15bKi1dW1xzXHUwMEEwXSQvLHR5cGU6ImJ1bGxldCJ9LHtwYXR0ZXJuOi9eKFxkKylcLltcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn0se3BhdHRlcm46L14oXGQrKVwpW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifV07c3RhdGljIFFVT1RFX1BBVFRFUk49L14+W1xzXHUwMEEwXSQvO3N0YXRpYyBDT0RFX1BBVFRFUk49L15gYGAkLztzdGF0aWMgRElWSURFUl9QQVRURVJOUz1bIi0tLSIsIioqKiIsIl9fXyJdO3N0YXRpYyBjaGVja0hlYWRpbmdTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46dCx0eXBlOmF9b2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKWlmKHQudGVzdChlKSlyZXR1cm57dHlwZTphfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQoZSl7Zm9yKGxldHtwYXR0ZXJuOnQsdHlwZTphfW9mIHRoaXMuTElTVF9QQVRURVJOUylpZih0LnRlc3QoZSkpcmV0dXJue3R5cGU6Imxpc3QiLGxpc3RUeXBlOmF9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0NvZGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5DT0RFX1BBVFRFUk4udGVzdChlKX1zdGF0aWMgY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuRElWSURFUl9QQVRURVJOUy5pbmNsdWRlcyhlKX1zdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKXtyZXR1cm5be3R5cGU6InBhcmFncmFwaCIsbGFiZWw6IlBhcmFncmFwaCIsaWNvbjoibHVjaWRlOnBpbGNyb3cifSx7dHlwZToiaGVhZGluZy0xIixsYWJlbDoiSGVhZGluZyAxIixpY29uOiJsdWNpZGU6aGVhZGluZzEifSx7dHlwZToiaGVhZGluZy0yIixsYWJlbDoiSGVhZGluZyAyIixpY29uOiJsdWNpZGU6aGVhZGluZzIifSx7dHlwZToiaGVhZGluZy0zIixsYWJlbDoiSGVhZGluZyAzIixpY29uOiJsdWNpZGU6aGVhZGluZzMifSx7dHlwZToicXVvdGUiLGxhYmVsOiJRdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIn0se3R5cGU6ImNvZGUiLGxhYmVsOiJDb2RlIEJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUifSx7dHlwZToibGlzdCIsbGFiZWw6IkJ1bGxldCBMaXN0IixpY29uOiJsdWNpZGU6bGlzdCJ9LHt0eXBlOiJpbWFnZSIsbGFiZWw6IkltYWdlIixpY29uOiJsdWNpZGU6aW1hZ2UifSx7dHlwZToiZGl2aWRlciIsbGFiZWw6IkRpdmlkZXIiLGljb246Imx1Y2lkZTptaW51cyJ9LHt0eXBlOiJ5b3V0dWJlIixsYWJlbDoiWW91VHViZSIsaWNvbjoibHVjaWRlOnlvdXR1YmUifSx7dHlwZToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biIsaWNvbjoibHVjaWRlOmZpbGVUZXh0In0se3R5cGU6Imh0bWwiLGxhYmVsOiJIVE1MIixpY29uOiJsdWNpZGU6Y29kZSJ9LHt0eXBlOiJhdHRhY2htZW50IixsYWJlbDoiRmlsZSBBdHRhY2htZW50IixpY29uOiJsdWNpZGU6cGFwZXJjbGlwIn1dfXN0YXRpYyBnZW5lcmF0ZUJsb2NrSWQoKXtyZXR1cm5gYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWB9fX0pO3ZhciBtdixKMSxQbmUsaXR0PWcoKCk9PntwZSgpO3puKCk7VWEoKTtNbCgpO0I4KCk7cHQoKTttdj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSjE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtc2xhc2gtbWVudSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2xhc2hNZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bWSgpXSx5PVtZKCldLG12KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4idmlzaWJsZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnZpc2libGUsImdldCIpLHNldDppKChfLE8pPT57Xy52aXNpYmxlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxtdih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJwb3NpdGlvbiJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucG9zaXRpb249T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLG12KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJmaWx0ZXIiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5maWx0ZXIsImdldCIpLHNldDppKChfLE8pPT57Xy5maWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLG12KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0ZWRJbmRleCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkSW5kZXgsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RlZEluZGV4PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxtdih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Im1lbnVaSW5kZXgiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5tZW51WkluZGV4LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ubWVudVpJbmRleD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksbXYobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIE4uaW5zdGFuY2V8fChOLmluc3RhbmNlPW5ldyBOLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTi5pbnN0YW5jZSkpLE4uaW5zdGFuY2V9I2U9SjEodGhpcyxvLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKEMpe3RoaXMuI2U9Q30jdD0oSjEodGhpcyxsKSxKMSh0aGlzLGQse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKEMpe3RoaXMuI3Q9Q30jYT0oSjEodGhpcyx1KSxKMSh0aGlzLGIsIiIpKTtnZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbHRlcihDKXt0aGlzLiNhPUN9I3M9KEoxKHRoaXMsdiksSjEodGhpcyxtLDApKTtnZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RlZEluZGV4KEMpe3RoaXMuI3M9Q30jaT0oSjEodGhpcyxmKSxKMSh0aGlzLE0sMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWVudVpJbmRleChDKXt0aGlzLiNpPUN9Y2FsbGJhY2s9KEoxKHRoaXMseiksbnVsbCk7c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc2xhc2gtbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy52aXNpYmxlKXJldHVybiB3YGA7dGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCk7bGV0IEM9dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJzbGFzaC1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0ic2xhc2giCiAgICAgID4KICAgICAgICAke0MubWFwKChfLE8pPT53YAogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUtaXRlbSAke089PT10aGlzLnNlbGVjdGVkSW5kZXg/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGRhdGEtaXRlbS10eXBlPSIke18udHlwZX0iCiAgICAgICAgICAgIGRhdGEtaXRlbS1pbmRleD0iJHtPfSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaWNvbiIgLmljb249IiR7Xy5pY29ufSIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+JHtfLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0RmlsdGVyZWRNZW51SXRlbXMoKXtyZXR1cm4gY3IuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIoXz0+dGhpcy5maWx0ZXI9PT0iInx8Xy5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCkpKX1zZWxlY3RJdGVtKEMpe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2soQyksdGhpcy5oaWRlKCl9c2hvdyhDLF8pe3RoaXMucG9zaXRpb249Qyx0aGlzLmNhbGxiYWNrPV8sdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsdGhpcy5tZW51WkluZGV4PXhhLmdldE5leHRaSW5kZXgoKSx4YS5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHRoaXMuZmlsdGVyPSIiLHRoaXMuc2VsZWN0ZWRJbmRleD0wLHhhLnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlRmlsdGVyKEMpe3RoaXMuZmlsdGVyPUMsdGhpcy5zZWxlY3RlZEluZGV4PTB9bmF2aWdhdGUoQyl7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO0M9PT0iZG93biI/dGhpcy5zZWxlY3RlZEluZGV4PSh0aGlzLnNlbGVjdGVkSW5kZXgrMSklXy5sZW5ndGg6dGhpcy5zZWxlY3RlZEluZGV4PXRoaXMuc2VsZWN0ZWRJbmRleD09PTA/Xy5sZW5ndGgtMTp0aGlzLnNlbGVjdGVkSW5kZXgtMX1zZWxlY3RDdXJyZW50KCl7bGV0IEM9dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO0NbdGhpcy5zZWxlY3RlZEluZGV4XSYmdGhpcy5zZWxlY3RJdGVtKENbdGhpcy5zZWxlY3RlZEluZGV4XS50eXBlKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixDPT57bGV0IF89QyxPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNsYXNoLW1lbnUiKTtPJiZPLmNvbnRhaW5zKF8udGFyZ2V0KSYmKF8ucHJldmVudERlZmF1bHQoKSxfLnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQz0+e2xldCBfPUMsJD1fLnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoJCl7Xy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEU9JC5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS10eXBlIik7RSYmdGhpcy5zZWxlY3RJdGVtKEUpfX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixDPT57bGV0ICQ9Qy50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKCQpe2xldCBFPXBhcnNlSW50KCQuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taW5kZXgiKXx8IjAiLDEwKTt0aGlzLnNlbGVjdGVkSW5kZXg9RX19LCEwKSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEM9PntsZXQgXz1DLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO08mJk8uY29udGFpbnMoXy50YXJnZXQpJiYoXy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje0oxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBTdCxEZD1nKCgpPT57U3Q9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z1NlbGVjdGlvbiIpfXN0YXRpYyBnZXRTZWxlY3Rpb25JbmZvKC4uLmUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihjb25zb2xlLmxvZygiV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvIC0gc2VsZWN0aW9uOiIsdCwicmFuZ2VDb3VudDoiLHQ/LnJhbmdlQ291bnQpLCF0KXJldHVybiBudWxsO2lmKCJnZXRDb21wb3NlZFJhbmdlcyJpbiB0JiZ0eXBlb2YgdC5nZXRDb21wb3NlZFJhbmdlcz09ImZ1bmN0aW9uIil7Y29uc29sZS5sb2coIlVzaW5nIGdldENvbXBvc2VkUmFuZ2VzIHdpdGgiLGUubGVuZ3RoLCJzaGFkb3cgcm9vdHMiKTt0cnl7bGV0IGE9dC5nZXRDb21wb3NlZFJhbmdlcyh7c2hhZG93Um9vdHM6ZX0pO2lmKGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyByZXR1cm5lZCIsYS5sZW5ndGgsInJhbmdlcyIpLGEubGVuZ3RoPjApe2xldCByPWFbMF07cmV0dXJue3N0YXJ0Q29udGFpbmVyOnIuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6ci5zdGFydE9mZnNldCxlbmRDb250YWluZXI6ci5lbmRDb250YWluZXIsZW5kT2Zmc2V0OnIuZW5kT2Zmc2V0LGNvbGxhcHNlZDpyLmNvbGxhcHNlZH19fWNhdGNoKGEpe2NvbnNvbGUud2FybigiZ2V0Q29tcG9zZWRSYW5nZXMgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gZ2V0UmFuZ2VBdDoiLGEpfX1lbHNlIGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyBub3QgYXZhaWxhYmxlLCB1c2luZyBmYWxsYmFjayIpO2lmKHQucmFuZ2VDb3VudD4wKXtsZXQgYT10LmdldFJhbmdlQXQoMCk7cmV0dXJue3N0YXJ0Q29udGFpbmVyOmEuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6YS5zdGFydE9mZnNldCxlbmRDb250YWluZXI6YS5lbmRDb250YWluZXIsZW5kT2Zmc2V0OmEuZW5kT2Zmc2V0LGNvbGxhcHNlZDphLmNvbGxhcHNlZH19cmV0dXJuIG51bGx9c3RhdGljIGlzU2VsZWN0aW9uSW5FbGVtZW50KGUsdCl7bGV0IGE9dD90aGlzLmdldFNlbGVjdGlvbkluZm8odCk6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7cmV0dXJuIGE/ZS5jb250YWlucyhhLnN0YXJ0Q29udGFpbmVyKXx8ZS5jb250YWlucyhhLmVuZENvbnRhaW5lcik6ITF9c3RhdGljIGdldFNlbGVjdGVkVGV4dCgpe2xldCBlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyZXR1cm4gZT9lLnRvU3RyaW5nKCk6IiJ9c3RhdGljIGNyZWF0ZVJhbmdlRnJvbUluZm8oZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdC5zZXRTdGFydChlLnN0YXJ0Q29udGFpbmVyLGUuc3RhcnRPZmZzZXQpLHQuc2V0RW5kKGUuZW5kQ29udGFpbmVyLGUuZW5kT2Zmc2V0KSx0fXN0YXRpYyBzZXRTZWxlY3Rpb25Gcm9tUmFuZ2UoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO3QmJih0LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoZSkpfXN0YXRpYyBnZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChlLC4uLnQpe2xldCBhPXQubGVuZ3RoPjA/dGhpcy5nZXRTZWxlY3Rpb25JbmZvKC4uLnQpOnRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO2lmKCFhfHwhYS5jb2xsYXBzZWQpcmV0dXJuIG51bGw7dHJ5e2xldCByPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoci5zZWxlY3ROb2RlQ29udGVudHMoZSksdGhpcy5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShlLGEuc3RhcnRDb250YWluZXIpKXJldHVybiByLnNldEVuZChhLnN0YXJ0Q29udGFpbmVyLGEuc3RhcnRPZmZzZXQpLHIudG9TdHJpbmcoKS5sZW5ndGg7e2xldCBvPWUudGV4dENvbnRlbnR8fCIiLGw9YS5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudHx8IiI7cmV0dXJuIGEuc3RhcnRPZmZzZXQ9PT0wPzA6YS5zdGFydE9mZnNldD09PWwubGVuZ3RoP28ubGVuZ3RoOihjb25zb2xlLndhcm4oIlNlbGVjdGlvbiBjb250YWluZXIgbm90IHdpdGhpbiBlbGVtZW50LCB1c2luZyB0ZXh0IG1hdGNoaW5nIGZhbGxiYWNrIiksYS5zdGFydE9mZnNldCl9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBnZXQgY3Vyc29yIHBvc2l0aW9uOiIsciksbnVsbH19c3RhdGljIGdldEN1cnNvclBvc2l0aW9uRnJvbVBvaW50KGUsdCxhLC4uLnIpe2lmKCJjYXJldFBvc2l0aW9uRnJvbVBvaW50ImluIGRvY3VtZW50JiZkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KXtsZXQgbj1udWxsO3RyeXtuPWRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZSx0LC4uLnIpfWNhdGNoe249ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHQpfWlmKG4mJmEuY29udGFpbnMobi5vZmZzZXROb2RlKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQobi5vZmZzZXROb2RlLG4ub2Zmc2V0LGEpfWlmKCJjYXJldFJhbmdlRnJvbVBvaW50ImluIGRvY3VtZW50KXtsZXQgbj1kb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KGUsdCk7aWYobiYmYS5jb250YWlucyhuLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQobi5zdGFydENvbnRhaW5lcixuLnN0YXJ0T2Zmc2V0LGEpfXJldHVybiBudWxsfXN0YXRpYyBnZXRPZmZzZXRJbkVsZW1lbnQoZSx0LGEpe2xldCByPTAsbj0hMSxvPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxsO2Zvcig7bD1vLm5leHROb2RlKCk7KWlmKGw9PT1lKXtyKz10LG49ITA7YnJlYWt9ZWxzZSByKz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIG4/cjowfXN0YXRpYyBzZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxyPTAsbj1udWxsLG89MDtmb3IoO2EubmV4dE5vZGUoKTspe2xldCBsPWEuY3VycmVudE5vZGUscD1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYocitwPj10KXtuPWwsbz10LXI7YnJlYWt9cis9cH1pZihuKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2wuc2V0U3RhcnQobixvKSxsLmNvbGxhcHNlKCEwKSx0aGlzLnNldFNlbGVjdGlvbkZyb21SYW5nZShsKX19c3RhdGljIGNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUsdCl7aWYoIWV8fCF0KXJldHVybiExO2xldCBhPXQ7Zm9yKDthOyl7aWYoYT09PWUpcmV0dXJuITA7aWYoYS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmYS5ob3N0KXtsZXQgcj1hO2lmKHIuY29udGFpbnMoZSkpcmV0dXJuITE7YT1yLmhvc3R9ZWxzZSBhPWEucGFyZW50Tm9kZX1yZXR1cm4hMX19fSk7dmFyIHN1LHJ0dD1nKCgpPT57cGUoKTtEZCgpO3N1PWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdGb3JtYXR0aW5nIil9c3RhdGljIGZvcm1hdEJ1dHRvbnM9W3tjb21tYW5kOiJib2xkIixpY29uOiJCIixsYWJlbDoiQm9sZCIsc2hvcnRjdXQ6Ilx1MjMxOEIifSx7Y29tbWFuZDoiaXRhbGljIixpY29uOiJJIixsYWJlbDoiSXRhbGljIixzaG9ydGN1dDoiXHUyMzE4SSJ9LHtjb21tYW5kOiJ1bmRlcmxpbmUiLGljb246IlUiLGxhYmVsOiJVbmRlcmxpbmUiLHNob3J0Y3V0OiJcdTIzMThVIn0se2NvbW1hbmQ6InN0cmlrZVRocm91Z2giLGljb246IlNcdTAzMzYiLGxhYmVsOiJTdHJpa2V0aHJvdWdoIn0se2NvbW1hbmQ6ImNvZGUiLGljb246InsgfSIsbGFiZWw6IklubGluZSBDb2RlIn0se2NvbW1hbmQ6ImxpbmsiLGljb246Ilx1ezFGNTE3fSIsbGFiZWw6IkxpbmsiLHNob3J0Y3V0OiJcdTIzMThLIn1dO3N0YXRpYyByZW5kZXJGb3JtYXR0aW5nTWVudShlLHQpe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJ0b3A6ICR7ZS55fXB4OyBsZWZ0OiAke2UueH1weDsiCiAgICAgICAgQG1vdXNlZG93bj0iJHthPT57YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9fSIKICAgICAgICBAY2xpY2s9IiR7YT0+YS5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgID4KICAgICAgICAke3RoaXMuZm9ybWF0QnV0dG9ucy5tYXAoYT0+d2AKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7YS5jb21tYW5kfSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50KGEuY29tbWFuZCl9IgogICAgICAgICAgICB0aXRsZT0iJHthLmxhYmVsfSR7YS5zaG9ydGN1dD9gICgke2Euc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHthLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke2EuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpYyBhcHBseUZvcm1hdChlLHQsYSxyKXtsZXQgbjtpZihhKW49YTtlbHNle2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm4hMTtuPW8uZ2V0UmFuZ2VBdCgwKX1zd2l0Y2goZSl7Y2FzZSJib2xkIjp0aGlzLndyYXBTZWxlY3Rpb24obiwic3Ryb25nIik7YnJlYWs7Y2FzZSJpdGFsaWMiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJlbSIpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp0aGlzLndyYXBTZWxlY3Rpb24obiwidSIpO2JyZWFrO2Nhc2Uic3RyaWtlVGhyb3VnaCI6dGhpcy53cmFwU2VsZWN0aW9uKG4sInMiKTticmVhaztjYXNlImNvZGUiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJjb2RlIik7YnJlYWs7Y2FzZSJsaW5rIjppZighdClyZXR1cm4hMTt0aGlzLndyYXBTZWxlY3Rpb25XaXRoTGluayhuLHQpO2JyZWFrfWlmKHImJnIubGVuZ3RoPjApU3Quc2V0U2VsZWN0aW9uRnJvbVJhbmdlKG4pO2Vsc2V7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO28mJihvLnJlbW92ZUFsbFJhbmdlcygpLG8uYWRkUmFuZ2UobikpfXJldHVybiEwfXN0YXRpYyB3cmFwU2VsZWN0aW9uKGUsdCl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtpZih0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsdCkpdGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsdCk7ZWxzZXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO3RyeXtsZXQgbz1lLmV4dHJhY3RDb250ZW50cygpO24uYXBwZW5kQ2hpbGQobyksZS5pbnNlcnROb2RlKG4pLGUuc2VsZWN0Tm9kZUNvbnRlbnRzKG4pLGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShlKX1jYXRjaChvKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gd3JhcCBzZWxlY3Rpb246IixvKX19fXN0YXRpYyBzZWxlY3Rpb25Db250YWluc1RhZyhlLHQpe2xldCBhPWUuc3RhcnRDb250YWluZXI7Zm9yKDthJiZhIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZhLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXQpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9Zm9yKGE9ZS5lbmRDb250YWluZXI7YSYmYSE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKGEubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmYS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10KXJldHVybiEwO2E9YS5wYXJlbnROb2RlfWxldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49ZS5jbG9uZUNvbnRlbnRzKCk7cmV0dXJuIHIuYXBwZW5kQ2hpbGQobiksci5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KS5sZW5ndGg+MH1zdGF0aWMgcmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLHQpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYSlyZXR1cm47bGV0IHI9ZS5jbG9uZVJhbmdlKCksbj1lLnN0YXJ0Q29udGFpbmVyLG89bnVsbDtmb3IoO24mJm4hPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihuLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm4udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dCl7bz1uO2JyZWFrfW49bi5wYXJlbnROb2RlfWxldCBsPWUuZW5kQ29udGFpbmVyLHA9bnVsbDtmb3IoO2wmJmwhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihsLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmwudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dCl7cD1sO2JyZWFrfWw9bC5wYXJlbnROb2RlfW8mJnIuc2V0U3RhcnRCZWZvcmUobykscCYmci5zZXRFbmRBZnRlcihwKTtsZXQgZD1yLmV4dHJhY3RDb250ZW50cygpLHU9dGhpcy5yZW1vdmVUYWdzRnJvbUZyYWdtZW50KGQsdCk7ci5pbnNlcnROb2RlKHUpO2xldCBjPVtdLGI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih1LE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLHY7Zm9yKDt2PWIubmV4dE5vZGUoKTspYy5wdXNoKHYpO2lmKGMubGVuZ3RoPjApe2xldCB4PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7eC5zZXRTdGFydChjWzBdLDApLHguc2V0RW5kKGNbYy5sZW5ndGgtMV0sY1tjLmxlbmd0aC0xXS50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2UoeCl9fXN0YXRpYyByZW1vdmVUYWdzRnJvbUZyYWdtZW50KGUsdCl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5hcHBlbmRDaGlsZChlKTtsZXQgcj1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpO0FycmF5LmZyb20ocikuZm9yRWFjaChsPT57bGV0IHA9bC5wYXJlbnROb2RlO2lmKHApe2Zvcig7bC5maXJzdENoaWxkOylwLmluc2VydEJlZm9yZShsLmZpcnN0Q2hpbGQsbCk7cC5yZW1vdmVDaGlsZChsKX19KTtsZXQgbz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKDthLmZpcnN0Q2hpbGQ7KW8uYXBwZW5kQ2hpbGQoYS5maXJzdENoaWxkKTtyZXR1cm4gb31zdGF0aWMgd3JhcFNlbGVjdGlvbldpdGhMaW5rKGUsdCl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjt0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsImEiKSYmKHRoaXMucmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLCJhIiksYS5yYW5nZUNvdW50PjAmJihlPWEuZ2V0UmFuZ2VBdCgwKSkpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtyLmhyZWY9dCxyLnRhcmdldD0iX2JsYW5rIixyLnJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI7dHJ5e2xldCBuPWUuZXh0cmFjdENvbnRlbnRzKCk7ci5hcHBlbmRDaGlsZChuKSxlLmluc2VydE5vZGUociksZS5zZWxlY3ROb2RlQ29udGVudHMociksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGUpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgbGluazoiLG4pfX1zdGF0aWMgZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uZSl7bGV0IHQ9U3QuZ2V0U2VsZWN0aW9uSW5mbyguLi5lKTtpZihjb25zb2xlLmxvZygiZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMgLSBzZWxlY3Rpb25JbmZvOiIsdCksIXQpcmV0dXJuIGNvbnNvbGUubG9nKCJObyBzZWxlY3Rpb24gaW5mbyBhdmFpbGFibGUiKSxudWxsO2xldCByPVN0LmNyZWF0ZVJhbmdlRnJvbUluZm8odCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoY29uc29sZS5sb2coIlJhbmdlIHJlY3Q6IixyKSxyLndpZHRoPT09MCYmci5oZWlnaHQ9PT0wKXtpZihjb25zb2xlLmxvZygiUmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwLCB0cnlpbmcgZGlmZmVyZW50IGFwcHJvYWNoIiksImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvJiZvLnJhbmdlQ291bnQ+MCl7bGV0IGw9by5nZXRSYW5nZUF0KDApLHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3AudGV4dENvbnRlbnQ9Ilx1MjAwQiIsbC5pbnNlcnROb2RlKHApO2xldCBkPXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYocC5yZW1vdmUoKSxkLndpZHRoPjB8fGQuaGVpZ2h0PjApe2xldCB1PXt4OmQubGVmdCx5Ok1hdGgubWF4KDQ1LGQudG9wLTQ1KX07cmV0dXJuIGNvbnNvbGUubG9nKCJVc2VkIHNwYW4gdHJpY2sgZm9yIGNvb3JkczoiLHUpLHV9fX1yZXR1cm4gbnVsbH1sZXQgbj17eDpyLmxlZnQrci53aWR0aC8yLHk6TWF0aC5tYXgoNDUsci50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlJldHVybmluZyBjb29yZHM6IixuKSxufX19KTt2YXIgSW5lLEg4LEFuZSxvdHQ9ZygoKT0+e3BlKCk7em4oKTtydHQoKTtwdCgpO0luZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSDg9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEFuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtZm9ybWF0dGluZy1tZW51IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNGb3JtYXR0aW5nTWVudSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLEluZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZpc2libGUiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YudmlzaWJsZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksSW5lKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InBvc2l0aW9uImluIGYsImhhcyIpLGdldDppKGY9PmYucG9zaXRpb24sImdldCIpLHNldDppKChmLHkpPT57Zi5wb3NpdGlvbj15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksSW5lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibWVudVpJbmRleCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChmLHkpPT57Zi5tZW51WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxJbmUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHguaW5zdGFuY2V8fCh4Lmluc3RhbmNlPW5ldyB4LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoeC5pbnN0YW5jZSkpLHguaW5zdGFuY2V9I2U9SDgodGhpcyxvLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKG0pe3RoaXMuI2U9bX0jdD0oSDgodGhpcyxsKSxIOCh0aGlzLGQse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKG0pe3RoaXMuI3Q9bX0jYT0oSDgodGhpcyx1KSxIOCh0aGlzLGIsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudVpJbmRleChtKXt0aGlzLiNhPW19Y2FsbGJhY2s9KEg4KHRoaXMsdiksbnVsbCk7c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuZm9ybWF0dGluZy1tZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjYyNjI2Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSg1cHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24gewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMzMzMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy52aXNpYmxlPyh0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucG9zaXRpb24ueH1weDsgdG9wOiAke3RoaXMucG9zaXRpb24ueX1weDsiCiAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgIGRhdGEtbWVudS10eXBlPSJmb3JtYXR0aW5nIgogICAgICA+CiAgICAgICAgJHtzdS5mb3JtYXRCdXR0b25zLm1hcChtPT53YAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHttLmNvbW1hbmR9IgogICAgICAgICAgICBkYXRhLWNvbW1hbmQ9IiR7bS5jb21tYW5kfSIKICAgICAgICAgICAgdGl0bGU9IiR7bS5sYWJlbH0ke20uc2hvcnRjdXQ/YCAoJHttLnNob3J0Y3V0fSlgOiIifSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9IiR7bS5jb21tYW5kPT09ImNvZGUiPyJjb2RlLWljb24iOiIifSI+JHttLmljb259PC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYCk6d2BgfWFwcGx5Rm9ybWF0KG0pe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2sobSksbT09PSJsaW5rIiYmdGhpcy5oaWRlKCl9c2hvdyhtLGYpe2NvbnNvbGUubG9nKCJGb3JtYXR0aW5nTWVudS5zaG93IGNhbGxlZDoiLHtwb3NpdGlvbjptLHZpc2libGU6dGhpcy52aXNpYmxlfSksdGhpcy5wb3NpdGlvbj1tLHRoaXMuY2FsbGJhY2s9Zix0aGlzLm1lbnVaSW5kZXg9eGEuZ2V0TmV4dFpJbmRleCgpLHhhLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx0aGlzLnZpc2libGU9ITB9aGlkZSgpe3RoaXMudmlzaWJsZT0hMSx0aGlzLmNhbGxiYWNrPW51bGwseGEudW5yZWdpc3Rlcih0aGlzKX11cGRhdGVQb3NpdGlvbihtKXt0aGlzLnBvc2l0aW9uPW19Zmlyc3RVcGRhdGVkKCl7dGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsbT0+e2xldCBmPW0seT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTt5JiZ5LmNvbnRhaW5zKGYudGFyZ2V0KSYmKGYucHJldmVudERlZmF1bHQoKSxmLnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbT0+e2xldCBmPW0sTT1mLnRhcmdldC5jbG9zZXN0KCIuZm9ybWF0LWJ1dHRvbiIpO2lmKE0pe2YucHJldmVudERlZmF1bHQoKSxmLnN0b3BQcm9wYWdhdGlvbigpO2xldCB6PU0uZ2V0QXR0cmlidXRlKCJkYXRhLWNvbW1hbmQiKTt6JiZ0aGlzLmFwcGx5Rm9ybWF0KHopfX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsbT0+e2xldCBmPW0seT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTt5JiZ5LmNvbnRhaW5zKGYudGFyZ2V0KSYmKGYucHJldmVudERlZmF1bHQoKSxmLnN0b3BQcm9wYWdhdGlvbigpKX0sITApfXN0YXRpY3tIOChhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgZ3Y9ZygoKT0+e3BlKCk7TWwoKTtpdHQoKTtvdHQoKX0pO3ZhciBMWixObmU9ZygoKT0+e0xaPVsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJKYXZhIiwiQysrIiwiQyMiLCJHbyIsIlJ1c3QiLCJIVE1MIiwiQ1NTIiwiU1FMIiwiU2hlbGwiLCJKU09OIiwiWUFNTCIsIk1hcmtkb3duIiwiUGxhaW4gVGV4dCJdfSk7dmFyIG50dCxSMGE9ZygoKT0+e3BlKCk7bnR0PUpgCiAgOmhvc3QgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXIgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgbWluLWhlaWdodDogMjAwcHg7CiAgICBwYWRkaW5nOiAyNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXI6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiMzZjNmNDYiKX07CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9LCAwIDAgMCA0cHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuNSkiKX07CiAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC8qIFZpc3VhbCBoaW50IGZvciB0ZXh0IHNlbGVjdGlvbiAqLwogIC5lZGl0b3ItY29udGVudDpob3ZlciB7CiAgICBjdXJzb3I6IHRleHQ7CiAgfQoKICAuZWRpdG9yLWNvbnRlbnQgewogICAgb3V0bGluZTogbm9uZTsKICAgIG1pbi1oZWlnaHQ6IDE2MHB4OwogICAgbWFyZ2luOiAwIC04cHg7CiAgICBwYWRkaW5nOiAwIDhweDsKICB9CgogIC5ibG9jayB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiA0cHggMDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgbWluLWhlaWdodDogMS42ZW07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLyogRmlyc3QgYW5kIGxhc3QgYmxvY2tzIGRvbid0IG5lZWQgZXh0cmEgc3BhY2luZyAqLwogIC5ibG9jay13cmFwcGVyOmZpcnN0LWNoaWxkIC5ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgfQoKICAuYmxvY2std3JhcHBlcjpsYXN0LWNoaWxkIC5ibG9jayB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiKX07CiAgICBvdXRsaW5lOiAycHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgfQoKICAuYmxvY2tbY29udGVudGVkaXRhYmxlXSB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgLmJsb2NrLnBhcmFncmFwaCB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGg6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMSB7CiAgICBmb250LXNpemU6IDMycHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0xOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMSI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDMycHg7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTIgewogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMjplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDIiOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0zIHsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTM6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAzIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLnF1b3RlIHsKICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICB9CgogIC5ibG9jay5xdW90ZTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJRdW90ZSI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5jb2RlLWJsb2NrLWNvbnRhaW5lciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBtYXJnaW46IDIwcHggMDsKICB9CgogIC5jb2RlLWxhbmd1YWdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogMCA0cHggMCA0cHg7CiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOwogICAgei1pbmRleDogMTsKICB9CgogIC5ibG9jay5jb2RlIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHBhZGRpbmc6IDE2cHg7CiAgICBwYWRkaW5nLXRvcDogMzJweDsgLyogTWFrZSByb29tIGZvciBsYW5ndWFnZSBpbmRpY2F0b3IgKi8KICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBvdmVyZmxvdy14OiBhdXRvOwogIH0KCiAgLmJsb2NrLmNvZGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiLy8gQ29kZSBibG9jayI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLmxpc3QgewogICAgcGFkZGluZy1sZWZ0OiAwOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwsCiAgLmJsb2NrLmxpc3Qgb2wgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMCAwIDAgMjRweDsKICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7CiAgfQoKICAuYmxvY2subGlzdCB1bCB7CiAgICBsaXN0LXN0eWxlOiBkaXNjOwogIH0KCiAgLmJsb2NrLmxpc3Qgb2wgewogICAgbGlzdC1zdHlsZTogZGVjaW1hbDsKICB9CgogIC5ibG9jay5saXN0IGxpIHsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQoKICAuYmxvY2suZGl2aWRlciB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAyMHB4IDA7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CgogIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBtYXJnaW46IDA7CiAgfQoKICAuc2xhc2gtbWVudSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gewogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIsCiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIgLmljb24sCiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCAuaWNvbiB7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLnRvb2xiYXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAtNDBweDsKICAgIGxlZnQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBnYXA6IDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgfQoKICAudG9vbGJhci52aXNpYmxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQoKICAudG9vbGJhci1idXR0b24gewogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC8qIERyYWcgYW5kIERyb3AgU3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgfQoKICAvKiBFbnN1cmUgcHJvcGVyIHNwYWNpbmcgY29udGV4dCBmb3IgYmxvY2tzICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMTZweDsKICB9CgogIC8qIE92ZXJyaWRlIGZvciBoZWFkaW5ncyBmb2xsb3dpbmcgb3RoZXIgYmxvY2tzICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0xLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMiwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTMgewogICAgbWFyZ2luLXRvcDogMjRweDsKICB9CgogIC8qIENvZGUgYW5kIHF1b3RlIGJsb2NrcyBuZWVkIGNvbnNpc3RlbnQgc3BhY2luZyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmNvZGUsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sucXVvdGUgewogICAgbWFyZ2luLXRvcDogMjBweDsKICB9CgogIC5kcmFnLWhhbmRsZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAtMjhweDsKICAgIHRvcDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBjdXJzb3I6IGdyYWI7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICB9CgogIC5kcmFnLWhhbmRsZTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICLii67ii64iOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGV0dGVyLXNwYWNpbmc6IC0ycHg7CiAgfQoKICAuYmxvY2std3JhcHBlcjpob3ZlciAuZHJhZy1oYW5kbGUgewogICAgb3BhY2l0eTogMTsKICB9CgogIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogIH0KCiAgLmRyYWctaGFuZGxlOmFjdGl2ZSB7CiAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLmJsb2NrLXdyYXBwZXIuZHJhZ2dpbmcgewogICAgb3BhY2l0eTogMC44OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4OiAyMDAxOwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KCgogIC8qIEJsb2NrcyB0aGF0IHNob3VsZCBtb3ZlIG91dCBvZiB0aGUgd2F5ICovCiAgLmJsb2NrLXdyYXBwZXIubW92ZS1kb3duIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1kcmFnLW9mZnNldCwgMHB4KSk7CiAgfQoKICAuYmxvY2std3JhcHBlci5tb3ZlLXVwIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpKTsKICB9CgogIC8qIERyb3AgaW5kaWNhdG9yICovCiAgLmRyb3AtaW5kaWNhdG9yIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiKX07CiAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgZWFzZSwgaGVpZ2h0IDAuMnMgZWFzZTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogMTk5OTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICAvKiBSZW1vdmUgb2xkIGRyYWctb3ZlciBzdHlsZXMgKi8KICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYmVmb3JlLAogIC5ibG9jay13cmFwcGVyLmRyYWctb3Zlci1hZnRlciB7CiAgICAvKiBObyBsb25nZXIgbmVlZGVkLCB1c2luZyBkcm9wIGluZGljYXRvciBpbnN0ZWFkICovCiAgfQoKICAuZWRpdG9yLWNvbnRlbnQuZHJhZ2dpbmcgKiB7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CgogIC8qIEJsb2NrIFNldHRpbmdzIEJ1dHRvbiAtIFJlbW92ZWQgaW4gZmF2b3Igb2YgY29udGV4dCBtZW51ICovCgogIC8qIFRleHQgU2VsZWN0aW9uIFN0eWxlcyAqLwogIC5ibG9jayA6OnNlbGVjdGlvbiB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgIGNvbG9yOiBpbmhlcml0OwogIH0KCiAgLyogRm9ybWF0dGluZyBNZW51ICovCiAgLmZvcm1hdHRpbmctbWVudSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDJweDsKICAgIHotaW5kZXg6IDEwMDE7CiAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogIH0KCiAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICBmcm9tIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKDJweCk7CiAgICB9CiAgICB0byB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgIH0KICB9CgogIC5mb3JtYXQtYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC5mb3JtYXQtYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICB9CgogIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CgogIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxMnB4OwogIH0KCiAgLyogQXBwbGllZCBmb3JtYXQgc3R5bGVzIGluIGNvbnRlbnQgKi8KICAuYmxvY2sgc3Ryb25nLAogIC5ibG9jayBiIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrIGVtLAogIC5ibG9jayBpIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5ibG9jayB1IHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmJsb2NrIHN0cmlrZSwKICAuYmxvY2sgcyB7CiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgIG9wYWNpdHk6IDAuNzsKICB9CgogIC5ibG9jayBjb2RlIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrIGEgewogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogIH0KCiAgLmJsb2NrIGE6aG92ZXIgewogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KYH0pO3ZhciBSYyxsdHQ9ZygoKT0+e01sKCk7UmM9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0NvbnZlcnRlcnMiKX1zdGF0aWMgZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfXN0YXRpYyBmb3JtYXRGaWxlU2l6ZShlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHQ9MTAyNCxhPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxyPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2codCkpO3JldHVybiBwYXJzZUZsb2F0KChlL01hdGgucG93KHQscikpLnRvRml4ZWQoMikpKyIgIithW3JdfXN0YXRpYyBnZXRIdG1sT3V0cHV0KGUpe3JldHVybiBlLm1hcCh0PT57bGV0IGE9dC5jb250ZW50LmluY2x1ZGVzKCI8IikmJnQuY29udGVudC5pbmNsdWRlcygiPiIpP3QuY29udGVudDp0aGlzLmVzY2FwZUh0bWwodC5jb250ZW50KTtzd2l0Y2godC50eXBlKXtjYXNlInBhcmFncmFwaCI6cmV0dXJuIHQuY29udGVudD9gPHA+JHthfTwvcD5gOiIiO2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gPGgxPiR7YX08L2gxPmA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmA8aDI+JHthfTwvaDI+YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYDxoMz4ke2F9PC9oMz5gO2Nhc2UicXVvdGUiOnJldHVybmA8YmxvY2txdW90ZT4ke2F9PC9ibG9ja3F1b3RlPmA7Y2FzZSJjb2RlIjpyZXR1cm5gPHByZT48Y29kZT4ke3RoaXMuZXNjYXBlSHRtbCh0LmNvbnRlbnQpfTwvY29kZT48L3ByZT5gO2Nhc2UibGlzdCI6bGV0IHI9dC5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKHA9PnAudHJpbSgpKTtpZihyLmxlbmd0aD4wKXtsZXQgcD10Lm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke3B9PiR7ci5tYXAoZD0+YDxsaT4ke2R9PC9saT5gKS5qb2luKCIiKX08LyR7cH0+YH1yZXR1cm4iIjtjYXNlImRpdmlkZXIiOnJldHVybiI8aHI+IjtjYXNlImltYWdlIjpsZXQgbj10Lm1ldGFkYXRhPy51cmw7aWYobil7bGV0IHA9dGhpcy5lc2NhcGVIdG1sKHQuY29udGVudHx8IkltYWdlIik7cmV0dXJuYDxpbWcgc3JjPSIke259IiBhbHQ9IiR7cH0iIC8+YH1yZXR1cm4iIjtjYXNlInlvdXR1YmUiOmxldCBvPXQubWV0YWRhdGE/LnZpZGVvSWQ7cmV0dXJuIG8/YDxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtvfSIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+YDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm5gPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+JHt0aGlzLmVzY2FwZUh0bWwodC5jb250ZW50KX08L2Rpdj5gO2Nhc2UiaHRtbCI6cmV0dXJuIHQuY29udGVudDtjYXNlImF0dGFjaG1lbnQiOmxldCBsPXQubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gbC5sZW5ndGg+MD9gPGRpdiBjbGFzcz0iYXR0YWNobWVudHMiPiR7bC5tYXAocD0+YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke3AuaWR9Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7cC5kYXRhfSIgZG93bmxvYWQ9IiR7cC5uYW1lfSI+JHt0aGlzLmVzY2FwZUh0bWwocC5uYW1lKX08L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj4oJHt0aGlzLmZvcm1hdEZpbGVTaXplKHAuc2l6ZSl9KTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gKS5qb2luKCIiKX08L2Rpdj5gOiIiO2RlZmF1bHQ6cmV0dXJuYDxwPiR7YX08L3A+YH19KS5maWx0ZXIodD0+dCE9PSIiKS5qb2luKGAKYCl9c3RhdGljIGdldE1hcmtkb3duT3V0cHV0KGUpe3JldHVybiBlLm1hcCh0PT57c3dpdGNoKHQudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiB0LmNvbnRlbnQ7Y2FzZSJoZWFkaW5nLTEiOnJldHVybmAjICR7dC5jb250ZW50fWA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmAjIyAke3QuY29udGVudH1gO2Nhc2UiaGVhZGluZy0zIjpyZXR1cm5gIyMjICR7dC5jb250ZW50fWA7Y2FzZSJxdW90ZSI6cmV0dXJuYD4gJHt0LmNvbnRlbnR9YDtjYXNlImNvZGUiOnJldHVybmBcYFxgXGAKJHt0LmNvbnRlbnR9ClxgXGBcYGA7Y2FzZSJsaXN0IjpsZXQgYT10LmNvbnRlbnQuc3BsaXQoYApgKS5maWx0ZXIoZD0+ZC50cmltKCkpO3JldHVybiB0Lm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj9hLm1hcCgoZCx1KT0+YCR7dSsxfS4gJHtkfWApLmpvaW4oYApgKTphLm1hcChkPT5gLSAke2R9YCkuam9pbihgCmApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIi0tLSI7Y2FzZSJpbWFnZSI6bGV0IHI9dC5tZXRhZGF0YT8udXJsLG49dC5jb250ZW50fHwiSW1hZ2UiO3JldHVybiByP2AhWyR7bn1dKCR7cn0pYDoiIjtjYXNlInlvdXR1YmUiOmxldCBvPXQubWV0YWRhdGE/LnZpZGVvSWQsbD10Lm1ldGFkYXRhPy51cmx8fChvP2BodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9JHtvfWA6IiIpO3JldHVybiBsP2BbWW91VHViZSBWaWRlb10oJHtsfSlgOiIiO2Nhc2UibWFya2Rvd24iOnJldHVybiB0LmNvbnRlbnQ7Y2FzZSJodG1sIjpyZXR1cm5gPCEtLSBIVE1MIEJsb2NrCiR7dC5jb250ZW50fQotLT5gO2Nhc2UiYXR0YWNobWVudCI6bGV0IHA9dC5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybiBwLmxlbmd0aD4wP3AubWFwKGQ9PmAtIFske2QubmFtZX1dKCR7ZC5kYXRhfSlgKS5qb2luKGAKYCk6IiI7ZGVmYXVsdDpyZXR1cm4gdC5jb250ZW50fX0pLmZpbHRlcih0PT50IT09IiIpLmpvaW4oYAoKYCl9c3RhdGljIHBhcnNlSHRtbFRvQmxvY2tzKGUpe2xldCBhPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC9odG1sIikscj1bXSxuPWkobz0+e2lmKG8ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmby50ZXh0Q29udGVudD8udHJpbSgpKXIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpvLnRleHRDb250ZW50LnRyaW0oKX0pO2Vsc2UgaWYoby5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXtsZXQgbD1vLHA9bC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7c3dpdGNoKHApe2Nhc2UicCI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDEiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgyIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMyI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiYmxvY2txdW90ZSI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJwcmUiOmNhc2UiY29kZSI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpsLnRleHRDb250ZW50fHwiIn0pO2JyZWFrO2Nhc2UidWwiOmNhc2Uib2wiOmxldCB1PUFycmF5LmZyb20obC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpKS5tYXAoYj0+Yi5pbm5lckhUTUx8fCIiKS5qb2luKGAKYCk7ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToibGlzdCIsY29udGVudDp1LG1ldGFkYXRhOntsaXN0VHlwZTpwPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9fSk7YnJlYWs7Y2FzZSJociI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTticmVhaztjYXNlImltZyI6bGV0IGM9bDtyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpjLmFsdHx8IiIsbWV0YWRhdGE6e3VybDpjLnNyY319KTticmVhaztkZWZhdWx0OmwuY2hpbGROb2Rlcy5mb3JFYWNoKGI9Pm4oYikpfX19LCJwcm9jZXNzTm9kZSIpO3JldHVybiBhLmJvZHkuY2hpbGROb2Rlcy5mb3JFYWNoKG89Pm4obykpLHJ9c3RhdGljIHBhcnNlTWFya2Rvd25Ub0Jsb2NrcyhlKXtsZXQgdD1lLnNwbGl0KGAKYCksYT1bXSxyPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtsZXQgbz10W25dO2lmKG8uc3RhcnRzV2l0aCgiIyAiKSlhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6by5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiIyMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50Om8uc3Vic3RyaW5nKDMpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIiMjIyAiKSlhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6by5zdWJzdHJpbmcoNCl9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiPiAiKSlhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJxdW90ZSIsY29udGVudDpvLnN1YnN0cmluZygyKX0pO2Vsc2UgaWYoby5zdGFydHNXaXRoKCJgYGAiKSl7bGV0IGw9W107Zm9yKG4rKztuPHQubGVuZ3RoJiYhdFtuXS5zdGFydHNXaXRoKCJgYGAiKTspbC5wdXNoKHRbbl0pLG4rKzthLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJjb2RlIixjb250ZW50Omwuam9pbihgCmApfSl9ZWxzZSBpZihvLm1hdGNoKC9eKFwqfC0pIC8pKXIucHVzaChvLnN1YnN0cmluZygyKSksKG49PT10Lmxlbmd0aC0xfHwhdFtuKzFdLm1hdGNoKC9eKFwqfC0pIC8pKSYmKGEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6ci5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0pLHI9W10pO2Vsc2UgaWYoby5tYXRjaCgvXlxkK1wuIC8pKXIucHVzaChvLnJlcGxhY2UoL15cZCtcLiAvLCIiKSksKG49PT10Lmxlbmd0aC0xfHwhdFtuKzFdLm1hdGNoKC9eXGQrXC4gLykpJiYoYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToibGlzdCIsY29udGVudDpyLmpvaW4oYApgKSxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0pLHI9W10pO2Vsc2UgaWYobz09PSItLS0ifHxvPT09IioqKiJ8fG89PT0iX19fIilhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIgIn0pO2Vsc2UgaWYoby5tYXRjaCgvXiFcWyhbXlxdXSopXF1cKChbXlwpXSspXCkkLykpe2xldCBsPW8ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pO2wmJmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImltYWdlIixjb250ZW50OmxbMV18fCIiLG1ldGFkYXRhOnt1cmw6bFsyXX19KX1lbHNlIG8udHJpbSgpJiZhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6b30pfXJldHVybiBhfX19KTt2YXIgQ28saXU9ZygoKT0+e3BlKCk7TWwoKTtsdHQoKTtDbz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnQmxvY2tzIil9c3RhdGljIHJlbmRlckxpc3RDb250ZW50KGUsdCl7bGV0IGE9ZS5zcGxpdChgCmApLmZpbHRlcihuPT5uLnRyaW0oKSk7aWYoYS5sZW5ndGg9PT0wKXJldHVybiIiO2xldCByPXQ/Lmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjtyZXR1cm5gPCR7cn0+JHthLm1hcChuPT5gPGxpPiR7bn08L2xpPmApLmpvaW4oIiIpfTwvJHtyfT5gfXN0YXRpYyByZW5kZXJCbG9jayhlLHQsYSl7aWYoZS50eXBlPT09ImRpdmlkZXIiKXJldHVybiB3YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBkaXZpZGVyIgogICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICA+CiAgICAgICAgICA8aHI+CiAgICAgICAgPC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09Imxpc3QiKXJldHVybiB3YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBsaXN0ICR7dD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICBAaW5wdXQ9IiR7YS5vbklucHV0fSIKICAgICAgICAgIEBrZXlkb3duPSIke2Eub25LZXlEb3dufSIKICAgICAgICAgIEBmb2N1cz0iJHthLm9uRm9jdXN9IgogICAgICAgICAgQGJsdXI9IiR7YS5vbkJsdXJ9IgogICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7YS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgQGNvbXBvc2l0aW9uZW5kPSIke2Eub25Db21wb3NpdGlvbkVuZH0iCiAgICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxhLm9uTW91c2VVcCYmYS5vbk1vdXNlVXAobil9fSIKICAgICAgICAgIC5pbm5lckhUTUw9IiR7dGhpcy5yZW5kZXJMaXN0Q29udGVudChlLmNvbnRlbnQsZS5tZXRhZGF0YSl9IgogICAgICAgID48L2Rpdj4KICAgICAgYDtpZihlLnR5cGU9PT0iY29kZSIpe2xldCBuPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwicGxhaW4gdGV4dCI7cmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1sYW5ndWFnZSI+JHtufTwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgJHtlLnR5cGV9ICR7dD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICBAaW5wdXQ9IiR7YS5vbklucHV0fSIKICAgICAgICAgICAgQGtleWRvd249IiR7YS5vbktleURvd259IgogICAgICAgICAgICBAZm9jdXM9IiR7YS5vbkZvY3VzfSIKICAgICAgICAgICAgQGJsdXI9IiR7YS5vbkJsdXJ9IgogICAgICAgICAgICBAY29tcG9zaXRpb25zdGFydD0iJHthLm9uQ29tcG9zaXRpb25TdGFydH0iCiAgICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHthLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgICBAbW91c2V1cD0iJHtvPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxhLm9uTW91c2VVcCYmYS5vbk1vdXNlVXAobyl9fSIKICAgICAgICAgICAgLnRleHRDb250ZW50PSIke2UuY29udGVudHx8IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke3Q/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIEBpbnB1dD0iJHthLm9uSW5wdXR9IgogICAgICAgIEBrZXlkb3duPSIke2Eub25LZXlEb3dufSIKICAgICAgICBAZm9jdXM9IiR7YS5vbkZvY3VzfSIKICAgICAgICBAYmx1cj0iJHthLm9uQmx1cn0iCiAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7YS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHthLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgIEBtb3VzZXVwPSIke249Pntjb25zb2xlLmxvZygiQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCIpLGEub25Nb3VzZVVwJiZhLm9uTW91c2VVcChuKX19IgogICAgICAgIC5pbm5lckhUTUw9IiR7ZS5jb250ZW50fHwiIn0iCiAgICAgID48L2Rpdj4KICAgIGB9c3RhdGljIHNldEN1cnNvclRvRW5kKGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighdClyZXR1cm47bGV0IGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihlLmNoaWxkTm9kZXMubGVuZ3RoPT09MCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpO2UuYXBwZW5kQ2hpbGQociksYS5zZXRTdGFydChyLDEpLGEuY29sbGFwc2UoITApfWVsc2V7bGV0IHI9dGhpcy5nZXRMYXN0Tm9kZShlKTtyLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/YS5zZXRTdGFydChyLHIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCk6YS5zZXRTdGFydEFmdGVyKHIpLGEuY29sbGFwc2UoITApfXQucmVtb3ZlQWxsUmFuZ2VzKCksdC5hZGRSYW5nZShhKSxlLnRleHRDb250ZW50PT09Ilx1MjAwQiImJihlLnRleHRDb250ZW50PSIiKX1zdGF0aWMgc2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXQpcmV0dXJuO2xldCBhPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApYS5zZXRTdGFydChlLDApLGEuY29sbGFwc2UoITApO2Vsc2V7bGV0IHI9dGhpcy5nZXRGaXJzdE5vZGUoZSk7ci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2Euc2V0U3RhcnQociwwKTphLnNldFN0YXJ0QmVmb3JlKHIpLGEuY29sbGFwc2UoITApfXQucmVtb3ZlQWxsUmFuZ2VzKCksdC5hZGRSYW5nZShhKX1zdGF0aWMgZ2V0TGFzdE5vZGUoZSl7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IHQ9ZS5jaGlsZE5vZGVzW2UuY2hpbGROb2Rlcy5sZW5ndGgtMV07cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERXx8dC5jaGlsZE5vZGVzLmxlbmd0aD09PTA/dDp0aGlzLmdldExhc3ROb2RlKHQpfXN0YXRpYyBnZXRGaXJzdE5vZGUoZSl7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IHQ9ZS5jaGlsZE5vZGVzWzBdO3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHQuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3Q6dGhpcy5nZXRGaXJzdE5vZGUodCl9c3RhdGljIGZvY3VzTGlzdEl0ZW0oZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJsaSIpO2lmKHQpe3QuZm9jdXMoKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLHI9d2luZG93LmdldFNlbGVjdGlvbigpO2Euc2VsZWN0Tm9kZUNvbnRlbnRzKHQpLGEuY29sbGFwc2UoITApLHIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShhKX19fX0pO3ZhciBFWixjdHQ9ZygoKT0+e01sKCk7Z3YoKTtCOCgpO2l1KCk7RVo9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyIpfWNvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIsdD0iIixhKXtyZXR1cm57aWQ6Y3IuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6dCwuLi5hJiZ7bWV0YWRhdGE6YX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSx0LGE9ITApe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrcyxuPXIuZmluZEluZGV4KG89Pm8uaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLnIuc2xpY2UoMCxuKzEpLHQsLi4uci5zbGljZShuKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgbz10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihvKXtsZXQgbD10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQodCk7by5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixsKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxhJiZ0LnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayh0LmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcih0PT50LmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IHQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7dCYmdC5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQodD0+dC5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgodD0+dC5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSx0PSJzdGFydCIpe2xldCBhPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKGEpe2xldCByPWEucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7ciYmKGF3YWl0IG5ldyBQcm9taXNlKG49PnJlcXVlc3RBbmltYXRpb25GcmFtZShuKSksci5mb2N1c1dpdGhDdXJzb3IodCkpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSx0KXtsZXQgYT10aGlzLmZpbmRCbG9jayhlKTthJiYoYS5jb250ZW50PXQsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSx0LGEpe2xldCByPXRoaXMuZmluZEJsb2NrKGUpO3ImJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxyLnR5cGU9dCxyLmNvbnRlbnQ9IiIsYSYmKHIubWV0YWRhdGE9YSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLHQpe2xldCBhPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLHI9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKHI9PT0tMXx8dDwwfHx0Pj1hLmxlbmd0aClyZXR1cm47bGV0W25dPWEuc3BsaWNlKHIsMSk7YS5zcGxpY2UodCwwLG4pLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1hLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ+MD90aGlzLmNvbXBvbmVudC5ibG9ja3NbdC0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1t0KzFdOm51bGx9fX0pO3ZhciBwaSxZbD1nKCgpPT57cGk9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFzZUJsb2NrSGFuZGxlciIpfXNldHVwKGUsdCxhKXt9Z2V0U3R5bGVzKCl7cmV0dXJuIiJ9fX0pO3ZhciBJcyxPMGE9ZygoKT0+e0lzPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJsb2NrUmVnaXN0cnkiKX1zdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIoZSx0KXt0aGlzLmhhbmRsZXJzLnNldChlLHQpfXN0YXRpYyBnZXRIYW5kbGVyKGUpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldChlKX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciBGMGE9ZygoKT0+e30pO3ZhciBQWixCMGE9ZygoKT0+e1lsKCk7cGUoKTtpdSgpO0RkKCk7UFo9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIiKX10eXBlPSJwYXJhZ3JhcGgiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcGFyYWdyYXBoJHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighcil7Y29uc29sZS5lcnJvcigiUGFyYWdyYXBoQmxvY2tIYW5kbGVyLnNldHVwOiBObyBwYXJhZ3JhcGggYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn10LmNvbnRlbnQmJiFyLmlubmVySFRNTCYmKHIuaW5uZXJIVE1MPXQuY29udGVudCksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25LZXlEb3duKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnthLm9uRm9jdXMoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnthLm9uQmx1cigpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2Eub25Db21wb3NpdGlvblN0YXJ0KCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2Eub25Db21wb3NpdGlvbkVuZCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbk1vdXNlVXA/LihuKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxyLHQpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHQsYSl7bGV0IHI9aSgoKT0+e2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGw9by50b1N0cmluZygpO2lmKGwubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBwPXQuZ2V0Um9vdE5vZGUoKS5ob3N0LHU9cD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsYz1wPy5zaGFkb3dSb290LGI9W107dSYmYi5wdXNoKHUpLGMmJmIucHVzaChjKTtsZXQgdj1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLmIpO2lmKCF2KXJldHVybjtsZXQgeD1TdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuc3RhcnRDb250YWluZXIpLG09U3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCx2LmVuZENvbnRhaW5lcik7aWYoeHx8bSl7aWYobCE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWw7bGV0IGY9U3QuY3JlYXRlUmFuZ2VGcm9tSW5mbyh2KSx5PWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6bC50cmltKCksYmxvY2tJZDphLmlkLHJhbmdlOmYscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1yO2xldCBuPWUuY2xvc2VzdCgiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBQYXJhZ3JhcGggc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5wYXJhZ3JhcGggewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIn1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhU3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPXQsbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiZDby5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7YSYmQ28uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxwPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO3Aubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChwLHAudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQocCxwLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMocCksbC5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShsKX19ci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiZTdC5zZXRDdXJzb3JQb3NpdGlvbihyLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9aWYoIVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgYz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtjLnNldFN0YXJ0KGEsMCksYy5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksYi5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj1jLmNsb25lQ29udGVudHMoKSx4PWIuY2xvbmVDb250ZW50cygpLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5hcHBlbmRDaGlsZCh2KTtsZXQgZj1tLmlubmVySFRNTDttLmlubmVySFRNTD0iIixtLmFwcGVuZENoaWxkKHgpO2xldCB5PW0uaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZixhZnRlcjp5fX19fSk7dmFyIHE4LEgwYT1nKCgpPT57WWwoKTtwZSgpO2l1KCk7RGQoKTtxOD1jbGFzcyBleHRlbmRzIHBpe3N0YXRpY3tpKHRoaXMsIkhlYWRpbmdCbG9ja0hhbmRsZXIiKX10eXBlO2xldmVsO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnR5cGU9ZSx0aGlzLmxldmVsPXBhcnNlSW50KGUuc3BsaXQoIi0iKVsxXSl9cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgaGVhZGluZy0ke3RoaXMubGV2ZWx9JHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcil7Y29uc29sZS5lcnJvcigiSGVhZGluZ0Jsb2NrSGFuZGxlci5zZXR1cDogTm8gaGVhZGluZyBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dC5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PVN0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT1TdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suaGVhZGluZy0xIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMjRweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgbWFyZ2luOiAyMHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBtYXJnaW46IDE2cHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UgMTpyZXR1cm4iSGVhZGluZyAxIjtjYXNlIDI6cmV0dXJuIkhlYWRpbmcgMiI7Y2FzZSAzOnJldHVybiJIZWFkaW5nIDMiO2RlZmF1bHQ6cmV0dXJuIkhlYWRpbmcifX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhU3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPXQsbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiZDby5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7YSYmQ28uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxwPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO3Aubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChwLHAudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQocCxwLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMocCksbC5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShsKX19ci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiZTdC5zZXRDdXJzb3JQb3NpdGlvbihyLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9aWYoIVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgYz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtjLnNldFN0YXJ0KGEsMCksYy5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksYi5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj1jLmNsb25lQ29udGVudHMoKSx4PWIuY2xvbmVDb250ZW50cygpLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5hcHBlbmRDaGlsZCh2KTtsZXQgZj1tLmlubmVySFRNTDttLmlubmVySFRNTD0iIixtLmFwcGVuZENoaWxkKHgpO2xldCB5PW0uaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZixhZnRlcjp5fX19fSk7dmFyIElaLHEwYT1nKCgpPT57WWwoKTtwZSgpO2l1KCk7RGQoKTtJWj1jbGFzcyBleHRlbmRzIHBpe3N0YXRpY3tpKHRoaXMsIlF1b3RlQmxvY2tIYW5kbGVyIil9dHlwZT0icXVvdGUiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcXVvdGUke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3J9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIlF1b3RlQmxvY2tIYW5kbGVyLnNldHVwOiBObyBxdW90ZSBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dC5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PVN0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT1TdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnF1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTU1IiwiI2IwYjBiMCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJBZGQgYSBxdW90ZS4uLiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhU3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7cmV0dXJuIGEmJmEuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybjtsZXQgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cjtyLmlubmVySFRNTD10LG4mJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTthJiZDby5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTthJiZDby5zZXRDdXJzb3JUb0VuZChhKX1mb2N1cyhlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7YSYmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWEmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIixhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybjtyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlLGEpOnR5cGVvZiB0PT0ibnVtYmVyIiYmU3Quc2V0Q3Vyc29yUG9zaXRpb24ocix0KX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz10Py5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9dD8uc2hhZG93Um9vdCxwPVtdO28mJnAucHVzaChvKSxsJiZwLnB1c2gobCk7bGV0IGQ9U3QuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZCl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWEudGV4dENvbnRlbnR8fCIiLHo9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLHopLGFmdGVyOk0uc3Vic3RyaW5nKHopfX1yZXR1cm4gbnVsbH1pZighU3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWEudGV4dENvbnRlbnR8fCIiLHo9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLHopLGFmdGVyOk0uc3Vic3RyaW5nKHopfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUsdCk7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6YS5pbm5lckhUTUx9O2xldCBjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksYj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Muc2V0U3RhcnQoYSwwKSxjLnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLGIuc2V0U3RhcnQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldEVuZChhLGEuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCB2PWMuY2xvbmVDb250ZW50cygpLHg9Yi5jbG9uZUNvbnRlbnRzKCksbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTttLmFwcGVuZENoaWxkKHYpO2xldCBmPW0uaW5uZXJIVE1MO20uaW5uZXJIVE1MPSIiLG0uYXBwZW5kQ2hpbGQoeCk7bGV0IHk9bS5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpmLGFmdGVyOnl9fX19KTtmdW5jdGlvbiBvbihzKXt0aGlzLmNvbnRlbnQ9c312YXIgZHR0LGowYT1nKCgpPT57aShvbiwiT3JkZXJlZE1hcCIpLG9uLnByb3RvdHlwZT17Y29uc3RydWN0b3I6b24sZmluZDppKGZ1bmN0aW9uKHMpe2Zvcih2YXIgZT0wO2U8dGhpcy5jb250ZW50Lmxlbmd0aDtlKz0yKWlmKHRoaXMuY29udGVudFtlXT09PXMpcmV0dXJuIGU7cmV0dXJuLTF9LCJmaW5kIiksZ2V0OmkoZnVuY3Rpb24ocyl7dmFyIGU9dGhpcy5maW5kKHMpO3JldHVybiBlPT0tMT92b2lkIDA6dGhpcy5jb250ZW50W2UrMV19LCJnZXQiKSx1cGRhdGU6aShmdW5jdGlvbihzLGUsdCl7dmFyIGE9dCYmdCE9cz90aGlzLnJlbW92ZSh0KTp0aGlzLHI9YS5maW5kKHMpLG49YS5jb250ZW50LnNsaWNlKCk7cmV0dXJuIHI9PS0xP24ucHVzaCh0fHxzLGUpOihuW3IrMV09ZSx0JiYobltyXT10KSksbmV3IG9uKG4pfSwidXBkYXRlIikscmVtb3ZlOmkoZnVuY3Rpb24ocyl7dmFyIGU9dGhpcy5maW5kKHMpO2lmKGU9PS0xKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuY29udGVudC5zbGljZSgpO3JldHVybiB0LnNwbGljZShlLDIpLG5ldyBvbih0KX0sInJlbW92ZSIpLGFkZFRvU3RhcnQ6aShmdW5jdGlvbihzLGUpe3JldHVybiBuZXcgb24oW3MsZV0uY29uY2F0KHRoaXMucmVtb3ZlKHMpLmNvbnRlbnQpKX0sImFkZFRvU3RhcnQiKSxhZGRUb0VuZDppKGZ1bmN0aW9uKHMsZSl7dmFyIHQ9dGhpcy5yZW1vdmUocykuY29udGVudC5zbGljZSgpO3JldHVybiB0LnB1c2gocyxlKSxuZXcgb24odCl9LCJhZGRUb0VuZCIpLGFkZEJlZm9yZTppKGZ1bmN0aW9uKHMsZSx0KXt2YXIgYT10aGlzLnJlbW92ZShlKSxyPWEuY29udGVudC5zbGljZSgpLG49YS5maW5kKHMpO3JldHVybiByLnNwbGljZShuPT0tMT9yLmxlbmd0aDpuLDAsZSx0KSxuZXcgb24ocil9LCJhZGRCZWZvcmUiKSxmb3JFYWNoOmkoZnVuY3Rpb24ocyl7Zm9yKHZhciBlPTA7ZTx0aGlzLmNvbnRlbnQubGVuZ3RoO2UrPTIpcyh0aGlzLmNvbnRlbnRbZV0sdGhpcy5jb250ZW50W2UrMV0pfSwiZm9yRWFjaCIpLHByZXBlbmQ6aShmdW5jdGlvbihzKXtyZXR1cm4gcz1vbi5mcm9tKHMpLHMuc2l6ZT9uZXcgb24ocy5jb250ZW50LmNvbmNhdCh0aGlzLnN1YnRyYWN0KHMpLmNvbnRlbnQpKTp0aGlzfSwicHJlcGVuZCIpLGFwcGVuZDppKGZ1bmN0aW9uKHMpe3JldHVybiBzPW9uLmZyb20ocykscy5zaXplP25ldyBvbih0aGlzLnN1YnRyYWN0KHMpLmNvbnRlbnQuY29uY2F0KHMuY29udGVudCkpOnRoaXN9LCJhcHBlbmQiKSxzdWJ0cmFjdDppKGZ1bmN0aW9uKHMpe3ZhciBlPXRoaXM7cz1vbi5mcm9tKHMpO2Zvcih2YXIgdD0wO3Q8cy5jb250ZW50Lmxlbmd0aDt0Kz0yKWU9ZS5yZW1vdmUocy5jb250ZW50W3RdKTtyZXR1cm4gZX0sInN1YnRyYWN0IiksdG9PYmplY3Q6aShmdW5jdGlvbigpe3ZhciBzPXt9O3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSx0KXtzW2VdPXR9KSxzfSwidG9PYmplY3QiKSxnZXQgc2l6ZSgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoPj4xfX0sb24uZnJvbT1mdW5jdGlvbihzKXtpZihzIGluc3RhbmNlb2Ygb24pcmV0dXJuIHM7dmFyIGU9W107aWYocylmb3IodmFyIHQgaW4gcyllLnB1c2godCxzW3RdKTtyZXR1cm4gbmV3IG9uKGUpfTtkdHQ9b259KTtmdW5jdGlvbiBWMGEocyxlLHQpe2ZvcihsZXQgYT0wOzthKyspe2lmKGE9PXMuY2hpbGRDb3VudHx8YT09ZS5jaGlsZENvdW50KXJldHVybiBzLmNoaWxkQ291bnQ9PWUuY2hpbGRDb3VudD9udWxsOnQ7bGV0IHI9cy5jaGlsZChhKSxuPWUuY2hpbGQoYSk7aWYocj09bil7dCs9ci5ub2RlU2l6ZTtjb250aW51ZX1pZighci5zYW1lTWFya3VwKG4pKXJldHVybiB0O2lmKHIuaXNUZXh0JiZyLnRleHQhPW4udGV4dCl7Zm9yKGxldCBvPTA7ci50ZXh0W29dPT1uLnRleHRbb107bysrKXQrKztyZXR1cm4gdH1pZihyLmNvbnRlbnQuc2l6ZXx8bi5jb250ZW50LnNpemUpe2xldCBvPVYwYShyLmNvbnRlbnQsbi5jb250ZW50LHQrMSk7aWYobyE9bnVsbClyZXR1cm4gb310Kz1yLm5vZGVTaXplfX1mdW5jdGlvbiBVMGEocyxlLHQsYSl7Zm9yKGxldCByPXMuY2hpbGRDb3VudCxuPWUuY2hpbGRDb3VudDs7KXtpZihyPT0wfHxuPT0wKXJldHVybiByPT1uP251bGw6e2E6dCxiOmF9O2xldCBvPXMuY2hpbGQoLS1yKSxsPWUuY2hpbGQoLS1uKSxwPW8ubm9kZVNpemU7aWYobz09bCl7dC09cCxhLT1wO2NvbnRpbnVlfWlmKCFvLnNhbWVNYXJrdXAobCkpcmV0dXJue2E6dCxiOmF9O2lmKG8uaXNUZXh0JiZvLnRleHQhPWwudGV4dCl7bGV0IGQ9MCx1PU1hdGgubWluKG8udGV4dC5sZW5ndGgsbC50ZXh0Lmxlbmd0aCk7Zm9yKDtkPHUmJm8udGV4dFtvLnRleHQubGVuZ3RoLWQtMV09PWwudGV4dFtsLnRleHQubGVuZ3RoLWQtMV07KWQrKyx0LS0sYS0tO3JldHVybnthOnQsYjphfX1pZihvLmNvbnRlbnQuc2l6ZXx8bC5jb250ZW50LnNpemUpe2xldCBkPVUwYShvLmNvbnRlbnQsbC5jb250ZW50LHQtMSxhLTEpO2lmKGQpcmV0dXJuIGR9dC09cCxhLT1wfX1mdW5jdGlvbiBSbmUocyxlKXtyZXR1cm4gdXR0LmluZGV4PXMsdXR0Lm9mZnNldD1lLHV0dH1mdW5jdGlvbiBPbmUocyxlKXtpZihzPT09ZSlyZXR1cm4hMDtpZighKHMmJnR5cGVvZiBzPT0ib2JqZWN0Iil8fCEoZSYmdHlwZW9mIGU9PSJvYmplY3QiKSlyZXR1cm4hMTtsZXQgdD1BcnJheS5pc0FycmF5KHMpO2lmKEFycmF5LmlzQXJyYXkoZSkhPXQpcmV0dXJuITE7aWYodCl7aWYocy5sZW5ndGghPWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSsrKWlmKCFPbmUoc1thXSxlW2FdKSlyZXR1cm4hMX1lbHNle2ZvcihsZXQgYSBpbiBzKWlmKCEoYSBpbiBlKXx8IU9uZShzW2FdLGVbYV0pKXJldHVybiExO2ZvcihsZXQgYSBpbiBlKWlmKCEoYSBpbiBzKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBXMGEocyxlLHQpe2xldHtpbmRleDphLG9mZnNldDpyfT1zLmZpbmRJbmRleChlKSxuPXMubWF5YmVDaGlsZChhKSx7aW5kZXg6byxvZmZzZXQ6bH09cy5maW5kSW5kZXgodCk7aWYocj09ZXx8bi5pc1RleHQpe2lmKGwhPXQmJiFzLmNoaWxkKG8pLmlzVGV4dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUmVtb3Zpbmcgbm9uLWZsYXQgcmFuZ2UiKTtyZXR1cm4gcy5jdXQoMCxlKS5hcHBlbmQocy5jdXQodCkpfWlmKGEhPW8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlJlbW92aW5nIG5vbi1mbGF0IHJhbmdlIik7cmV0dXJuIHMucmVwbGFjZUNoaWxkKGEsbi5jb3B5KFcwYShuLmNvbnRlbnQsZS1yLTEsdC1yLTEpKSl9ZnVuY3Rpb24gRzBhKHMsZSx0LGEpe2xldHtpbmRleDpyLG9mZnNldDpufT1zLmZpbmRJbmRleChlKSxvPXMubWF5YmVDaGlsZChyKTtpZihuPT1lfHxvLmlzVGV4dClyZXR1cm4gYSYmIWEuY2FuUmVwbGFjZShyLHIsdCk/bnVsbDpzLmN1dCgwLGUpLmFwcGVuZCh0KS5hcHBlbmQocy5jdXQoZSkpO2xldCBsPUcwYShvLmNvbnRlbnQsZS1uLTEsdCxvKTtyZXR1cm4gbCYmcy5yZXBsYWNlQ2hpbGQocixvLmNvcHkobCkpfWZ1bmN0aW9uIGpXYShzLGUsdCl7aWYodC5vcGVuU3RhcnQ+cy5kZXB0aCl0aHJvdyBuZXcga2goIkluc2VydGVkIGNvbnRlbnQgZGVlcGVyIHRoYW4gaW5zZXJ0aW9uIHBvc2l0aW9uIik7aWYocy5kZXB0aC10Lm9wZW5TdGFydCE9ZS5kZXB0aC10Lm9wZW5FbmQpdGhyb3cgbmV3IGtoKCJJbmNvbnNpc3RlbnQgb3BlbiBkZXB0aHMiKTtyZXR1cm4gSzBhKHMsZSx0LDApfWZ1bmN0aW9uIEswYShzLGUsdCxhKXtsZXQgcj1zLmluZGV4KGEpLG49cy5ub2RlKGEpO2lmKHI9PWUuaW5kZXgoYSkmJmE8cy5kZXB0aC10Lm9wZW5TdGFydCl7bGV0IG89SzBhKHMsZSx0LGErMSk7cmV0dXJuIG4uY29weShuLmNvbnRlbnQucmVwbGFjZUNoaWxkKHIsbykpfWVsc2UgaWYodC5jb250ZW50LnNpemUpaWYoIXQub3BlblN0YXJ0JiYhdC5vcGVuRW5kJiZzLmRlcHRoPT1hJiZlLmRlcHRoPT1hKXtsZXQgbz1zLnBhcmVudCxsPW8uY29udGVudDtyZXR1cm4gVjgobyxsLmN1dCgwLHMucGFyZW50T2Zmc2V0KS5hcHBlbmQodC5jb250ZW50KS5hcHBlbmQobC5jdXQoZS5wYXJlbnRPZmZzZXQpKSl9ZWxzZXtsZXR7c3RhcnQ6byxlbmQ6bH09VldhKHQscyk7cmV0dXJuIFY4KG4sWjBhKHMsbyxsLGUsYSkpfWVsc2UgcmV0dXJuIFY4KG4sRm5lKHMsZSxhKSl9ZnVuY3Rpb24gWTBhKHMsZSl7aWYoIWUudHlwZS5jb21wYXRpYmxlQ29udGVudChzLnR5cGUpKXRocm93IG5ldyBraCgiQ2Fubm90IGpvaW4gIitlLnR5cGUubmFtZSsiIG9udG8gIitzLnR5cGUubmFtZSl9ZnVuY3Rpb24gcHR0KHMsZSx0KXtsZXQgYT1zLm5vZGUodCk7cmV0dXJuIFkwYShhLGUubm9kZSh0KSksYX1mdW5jdGlvbiBqOChzLGUpe2xldCB0PWUubGVuZ3RoLTE7dD49MCYmcy5pc1RleHQmJnMuc2FtZU1hcmt1cChlW3RdKT9lW3RdPXMud2l0aFRleHQoZVt0XS50ZXh0K3MudGV4dCk6ZS5wdXNoKHMpfWZ1bmN0aW9uIEFaKHMsZSx0LGEpe2xldCByPShlfHxzKS5ub2RlKHQpLG49MCxvPWU/ZS5pbmRleCh0KTpyLmNoaWxkQ291bnQ7cyYmKG49cy5pbmRleCh0KSxzLmRlcHRoPnQ/bisrOnMudGV4dE9mZnNldCYmKGo4KHMubm9kZUFmdGVyLGEpLG4rKykpO2ZvcihsZXQgbD1uO2w8bztsKyspajgoci5jaGlsZChsKSxhKTtlJiZlLmRlcHRoPT10JiZlLnRleHRPZmZzZXQmJmo4KGUubm9kZUJlZm9yZSxhKX1mdW5jdGlvbiBWOChzLGUpe3JldHVybiBzLnR5cGUuY2hlY2tDb250ZW50KGUpLHMuY29weShlKX1mdW5jdGlvbiBaMGEocyxlLHQsYSxyKXtsZXQgbj1zLmRlcHRoPnImJnB0dChzLGUscisxKSxvPWEuZGVwdGg+ciYmcHR0KHQsYSxyKzEpLGw9W107cmV0dXJuIEFaKG51bGwscyxyLGwpLG4mJm8mJmUuaW5kZXgocik9PXQuaW5kZXgocik/KFkwYShuLG8pLGo4KFY4KG4sWjBhKHMsZSx0LGEscisxKSksbCkpOihuJiZqOChWOChuLEZuZShzLGUscisxKSksbCksQVooZSx0LHIsbCksbyYmajgoVjgobyxGbmUodCxhLHIrMSkpLGwpKSxBWihhLG51bGwscixsKSxuZXcgcnQobCl9ZnVuY3Rpb24gRm5lKHMsZSx0KXtsZXQgYT1bXTtpZihBWihudWxsLHMsdCxhKSxzLmRlcHRoPnQpe2xldCByPXB0dChzLGUsdCsxKTtqOChWOChyLEZuZShzLGUsdCsxKSksYSl9cmV0dXJuIEFaKGUsbnVsbCx0LGEpLG5ldyBydChhKX1mdW5jdGlvbiBWV2EocyxlKXtsZXQgdD1lLmRlcHRoLXMub3BlblN0YXJ0LHI9ZS5ub2RlKHQpLmNvcHkocy5jb250ZW50KTtmb3IobGV0IG49dC0xO24+PTA7bi0tKXI9ZS5ub2RlKG4pLmNvcHkocnQuZnJvbShyKSk7cmV0dXJue3N0YXJ0OnIucmVzb2x2ZU5vQ2FjaGUocy5vcGVuU3RhcnQrdCksZW5kOnIucmVzb2x2ZU5vQ2FjaGUoci5jb250ZW50LnNpemUtcy5vcGVuRW5kLXQpfX1mdW5jdGlvbiBRMGEocyxlKXtmb3IobGV0IHQ9cy5sZW5ndGgtMTt0Pj0wO3QtLSllPXNbdF0udHlwZS5uYW1lKyIoIitlKyIpIjtyZXR1cm4gZX1mdW5jdGlvbiBKMGEocyl7bGV0IGU9W107ZG8gZS5wdXNoKEdXYShzKSk7d2hpbGUocy5lYXQoInwiKSk7cmV0dXJuIGUubGVuZ3RoPT0xP2VbMF06e3R5cGU6ImNob2ljZSIsZXhwcnM6ZX19ZnVuY3Rpb24gR1dhKHMpe2xldCBlPVtdO2RvIGUucHVzaChLV2EocykpO3doaWxlKHMubmV4dCYmcy5uZXh0IT0iKSImJnMubmV4dCE9InwiKTtyZXR1cm4gZS5sZW5ndGg9PTE/ZVswXTp7dHlwZToic2VxIixleHByczplfX1mdW5jdGlvbiBLV2Eocyl7bGV0IGU9WFdhKHMpO2Zvcig7OylpZihzLmVhdCgiKyIpKWU9e3R5cGU6InBsdXMiLGV4cHI6ZX07ZWxzZSBpZihzLmVhdCgiKiIpKWU9e3R5cGU6InN0YXIiLGV4cHI6ZX07ZWxzZSBpZihzLmVhdCgiPyIpKWU9e3R5cGU6Im9wdCIsZXhwcjplfTtlbHNlIGlmKHMuZWF0KCJ7IikpZT1ZV2EocyxlKTtlbHNlIGJyZWFrO3JldHVybiBlfWZ1bmN0aW9uIGV1YShzKXsvXEQvLnRlc3Qocy5uZXh0KSYmcy5lcnIoIkV4cGVjdGVkIG51bWJlciwgZ290ICciK3MubmV4dCsiJyIpO2xldCBlPU51bWJlcihzLm5leHQpO3JldHVybiBzLnBvcysrLGV9ZnVuY3Rpb24gWVdhKHMsZSl7bGV0IHQ9ZXVhKHMpLGE9dDtyZXR1cm4gcy5lYXQoIiwiKSYmKHMubmV4dCE9In0iP2E9ZXVhKHMpOmE9LTEpLHMuZWF0KCJ9Iil8fHMuZXJyKCJVbmNsb3NlZCBicmFjZWQgcmFuZ2UiKSx7dHlwZToicmFuZ2UiLG1pbjp0LG1heDphLGV4cHI6ZX19ZnVuY3Rpb24gWldhKHMsZSl7bGV0IHQ9cy5ub2RlVHlwZXMsYT10W2VdO2lmKGEpcmV0dXJuW2FdO2xldCByPVtdO2ZvcihsZXQgbiBpbiB0KXtsZXQgbz10W25dO28uaXNJbkdyb3VwKGUpJiZyLnB1c2gobyl9cmV0dXJuIHIubGVuZ3RoPT0wJiZzLmVycigiTm8gbm9kZSB0eXBlIG9yIGdyb3VwICciK2UrIicgZm91bmQiKSxyfWZ1bmN0aW9uIFhXYShzKXtpZihzLmVhdCgiKCIpKXtsZXQgZT1KMGEocyk7cmV0dXJuIHMuZWF0KCIpIil8fHMuZXJyKCJNaXNzaW5nIGNsb3NpbmcgcGFyZW4iKSxlfWVsc2UgaWYoL1xXLy50ZXN0KHMubmV4dCkpcy5lcnIoIlVuZXhwZWN0ZWQgdG9rZW4gJyIrcy5uZXh0KyInIik7ZWxzZXtsZXQgZT1aV2EocyxzLm5leHQpLm1hcCh0PT4ocy5pbmxpbmU9PW51bGw/cy5pbmxpbmU9dC5pc0lubGluZTpzLmlubGluZSE9dC5pc0lubGluZSYmcy5lcnIoIk1peGluZyBpbmxpbmUgYW5kIGJsb2NrIGNvbnRlbnQiKSx7dHlwZToibmFtZSIsdmFsdWU6dH0pKTtyZXR1cm4gcy5wb3MrKyxlLmxlbmd0aD09MT9lWzBdOnt0eXBlOiJjaG9pY2UiLGV4cHJzOmV9fX1mdW5jdGlvbiBRV2Eocyl7bGV0IGU9W1tdXTtyZXR1cm4gcihuKHMsMCksdCgpKSxlO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZS5wdXNoKFtdKS0xfWkodCwibm9kZSIpO2Z1bmN0aW9uIGEobyxsLHApe2xldCBkPXt0ZXJtOnAsdG86bH07cmV0dXJuIGVbb10ucHVzaChkKSxkfWkoYSwiZWRnZSIpO2Z1bmN0aW9uIHIobyxsKXtvLmZvckVhY2gocD0+cC50bz1sKX1pKHIsImNvbm5lY3QiKTtmdW5jdGlvbiBuKG8sbCl7aWYoby50eXBlPT0iY2hvaWNlIilyZXR1cm4gby5leHBycy5yZWR1Y2UoKHAsZCk9PnAuY29uY2F0KG4oZCxsKSksW10pO2lmKG8udHlwZT09InNlcSIpZm9yKGxldCBwPTA7O3ArKyl7bGV0IGQ9bihvLmV4cHJzW3BdLGwpO2lmKHA9PW8uZXhwcnMubGVuZ3RoLTEpcmV0dXJuIGQ7cihkLGw9dCgpKX1lbHNlIGlmKG8udHlwZT09InN0YXIiKXtsZXQgcD10KCk7cmV0dXJuIGEobCxwKSxyKG4oby5leHByLHApLHApLFthKHApXX1lbHNlIGlmKG8udHlwZT09InBsdXMiKXtsZXQgcD10KCk7cmV0dXJuIHIobihvLmV4cHIsbCkscCkscihuKG8uZXhwcixwKSxwKSxbYShwKV19ZWxzZXtpZihvLnR5cGU9PSJvcHQiKXJldHVyblthKGwpXS5jb25jYXQobihvLmV4cHIsbCkpO2lmKG8udHlwZT09InJhbmdlIil7bGV0IHA9bDtmb3IobGV0IGQ9MDtkPG8ubWluO2QrKyl7bGV0IHU9dCgpO3IobihvLmV4cHIscCksdSkscD11fWlmKG8ubWF4PT0tMSlyKG4oby5leHByLHApLHApO2Vsc2UgZm9yKGxldCBkPW8ubWluO2Q8by5tYXg7ZCsrKXtsZXQgdT10KCk7YShwLHUpLHIobihvLmV4cHIscCksdSkscD11fXJldHVyblthKHApXX1lbHNle2lmKG8udHlwZT09Im5hbWUiKXJldHVyblthKGwsdm9pZCAwLG8udmFsdWUpXTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZXhwciB0eXBlIil9fX1pKG4sImNvbXBpbGUiKX1mdW5jdGlvbiB0dWEocyxlKXtyZXR1cm4gZS1zfWZ1bmN0aW9uIGF1YShzLGUpe2xldCB0PVtdO3JldHVybiBhKGUpLHQuc29ydCh0dWEpO2Z1bmN0aW9uIGEocil7bGV0IG49c1tyXTtpZihuLmxlbmd0aD09MSYmIW5bMF0udGVybSlyZXR1cm4gYShuWzBdLnRvKTt0LnB1c2gocik7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspe2xldHt0ZXJtOmwsdG86cH09bltvXTshbCYmdC5pbmRleE9mKHApPT0tMSYmYShwKX19aShhLCJzY2FuIil9ZnVuY3Rpb24gSldhKHMpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHQoYXVhKHMsMCkpO2Z1bmN0aW9uIHQoYSl7bGV0IHI9W107YS5mb3JFYWNoKG89PntzW29dLmZvckVhY2goKHt0ZXJtOmwsdG86cH0pPT57aWYoIWwpcmV0dXJuO2xldCBkO2ZvcihsZXQgdT0wO3U8ci5sZW5ndGg7dSsrKXJbdV1bMF09PWwmJihkPXJbdV1bMV0pO2F1YShzLHApLmZvckVhY2godT0+e2R8fHIucHVzaChbbCxkPVtdXSksZC5pbmRleE9mKHUpPT0tMSYmZC5wdXNoKHUpfSl9KX0pO2xldCBuPWVbYS5qb2luKCIsIildPW5ldyB3aChhLmluZGV4T2Yocy5sZW5ndGgtMSk+LTEpO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXtsZXQgbD1yW29dWzFdLnNvcnQodHVhKTtuLm5leHQucHVzaCh7dHlwZTpyW29dWzBdLG5leHQ6ZVtsLmpvaW4oIiwiKV18fHQobCl9KX1yZXR1cm4gbn19ZnVuY3Rpb24gZUdhKHMsZSl7Zm9yKGxldCB0PTAsYT1bc107dDxhLmxlbmd0aDt0Kyspe2xldCByPWFbdF0sbj0hci52YWxpZEVuZCxvPVtdO2ZvcihsZXQgbD0wO2w8ci5uZXh0Lmxlbmd0aDtsKyspe2xldHt0eXBlOnAsbmV4dDpkfT1yLm5leHRbbF07by5wdXNoKHAubmFtZSksbiYmIShwLmlzVGV4dHx8cC5oYXNSZXF1aXJlZEF0dHJzKCkpJiYobj0hMSksYS5pbmRleE9mKGQpPT0tMSYmYS5wdXNoKGQpfW4mJmUuZXJyKCJPbmx5IG5vbi1nZW5lcmF0YWJsZSBub2RlcyAoIitvLmpvaW4oIiwgIikrIikgaW4gYSByZXF1aXJlZCBwb3NpdGlvbiAoc2VlIGh0dHBzOi8vcHJvc2VtaXJyb3IubmV0L2RvY3MvZ3VpZGUvI2dlbmVyYXRhYmxlKSIpfX1mdW5jdGlvbiBzdWEocyl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHQgaW4gcyl7bGV0IGE9c1t0XTtpZighYS5oYXNEZWZhdWx0KXJldHVybiBudWxsO2VbdF09YS5kZWZhdWx0fXJldHVybiBlfWZ1bmN0aW9uIGl1YShzLGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBhIGluIHMpe2xldCByPWUmJmVbYV07aWYocj09PXZvaWQgMCl7bGV0IG49c1thXTtpZihuLmhhc0RlZmF1bHQpcj1uLmRlZmF1bHQ7ZWxzZSB0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm8gdmFsdWUgc3VwcGxpZWQgZm9yIGF0dHJpYnV0ZSAiK2EpfXRbYV09cn1yZXR1cm4gdH1mdW5jdGlvbiBydWEocyxlLHQsYSl7Zm9yKGxldCByIGluIGUpaWYoIShyIGluIHMpKXRocm93IG5ldyBSYW5nZUVycm9yKGBVbnN1cHBvcnRlZCBhdHRyaWJ1dGUgJHtyfSBmb3IgJHt0fSBvZiB0eXBlICR7cn1gKTtmb3IobGV0IHIgaW4gcyl7bGV0IG49c1tyXTtuLnZhbGlkYXRlJiZuLnZhbGlkYXRlKGVbcl0pfX1mdW5jdGlvbiBvdWEocyxlKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGUpZm9yKGxldCBhIGluIGUpdFthXT1uZXcgZ3R0KHMsYSxlW2FdKTtyZXR1cm4gdH1mdW5jdGlvbiB0R2EocyxlLHQpe2xldCBhPXQuc3BsaXQoInwiKTtyZXR1cm4gcj0+e2xldCBuPXI9PT1udWxsPyJudWxsIjp0eXBlb2YgcjtpZihhLmluZGV4T2Yobik8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgRXhwZWN0ZWQgdmFsdWUgb2YgdHlwZSAke2F9IGZvciBhdHRyaWJ1dGUgJHtlfSBvbiB0eXBlICR7c30sIGdvdCAke259YCl9fWZ1bmN0aW9uIG51YShzLGUpe2xldCB0PVtdO2ZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtsZXQgcj1lW2FdLG49cy5tYXJrc1tyXSxvPW47aWYobil0LnB1c2gobik7ZWxzZSBmb3IobGV0IGwgaW4gcy5tYXJrcyl7bGV0IHA9cy5tYXJrc1tsXTsocj09Il8ifHxwLnNwZWMuZ3JvdXAmJnAuc3BlYy5ncm91cC5zcGxpdCgiICIpLmluZGV4T2Yocik+LTEpJiZ0LnB1c2gobz1wKX1pZighbyl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlVua25vd24gbWFyayB0eXBlOiAnIitlW2FdKyInIil9cmV0dXJuIHR9ZnVuY3Rpb24gYUdhKHMpe3JldHVybiBzLnRhZyE9bnVsbH1mdW5jdGlvbiBzR2Eocyl7cmV0dXJuIHMuc3R5bGUhPW51bGx9ZnVuY3Rpb24gZHVhKHMsZSx0KXtyZXR1cm4gZSE9bnVsbD8oZT9PWjowKXwoZT09PSJmdWxsIj9idHQ6MCk6cyYmcy53aGl0ZXNwYWNlPT0icHJlIj9PWnxidHQ6dCZ+Rlp9ZnVuY3Rpb24gckdhKHMpe2ZvcihsZXQgZT1zLmZpcnN0Q2hpbGQsdD1udWxsO2U7ZT1lLm5leHRTaWJsaW5nKXtsZXQgYT1lLm5vZGVUeXBlPT0xP2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKTpudWxsO2EmJmN1YS5oYXNPd25Qcm9wZXJ0eShhKSYmdD8odC5hcHBlbmRDaGlsZChlKSxlPXQpOmE9PSJsaSI/dD1lOmEmJih0PW51bGwpfX1mdW5jdGlvbiBvR2EocyxlKXtyZXR1cm4ocy5tYXRjaGVzfHxzLm1zTWF0Y2hlc1NlbGVjdG9yfHxzLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8cy5tb3pNYXRjaGVzU2VsZWN0b3IpLmNhbGwocyxlKX1mdW5jdGlvbiB1dWEocyl7bGV0IGU9e307Zm9yKGxldCB0IGluIHMpZVt0XT1zW3RdO3JldHVybiBlfWZ1bmN0aW9uIHB1YShzLGUpe2xldCB0PWUuc2NoZW1hLm5vZGVzO2ZvcihsZXQgYSBpbiB0KXtsZXQgcj10W2FdO2lmKCFyLmFsbG93c01hcmtUeXBlKHMpKWNvbnRpbnVlO2xldCBuPVtdLG89aShsPT57bi5wdXNoKGwpO2ZvcihsZXQgcD0wO3A8bC5lZGdlQ291bnQ7cCsrKXtsZXR7dHlwZTpkLG5leHQ6dX09bC5lZGdlKHApO2lmKGQ9PWV8fG4uaW5kZXhPZih1KTwwJiZvKHUpKXJldHVybiEwfX0sInNjYW4iKTtpZihvKHIuY29udGVudE1hdGNoKSlyZXR1cm4hMH19ZnVuY3Rpb24gaHVhKHMpe2xldCBlPXt9O2ZvcihsZXQgdCBpbiBzKXtsZXQgYT1zW3RdLnNwZWMudG9ET007YSYmKGVbdF09YSl9cmV0dXJuIGV9ZnVuY3Rpb24gdnR0KHMpe3JldHVybiBzLmRvY3VtZW50fHx3aW5kb3cuZG9jdW1lbnR9ZnVuY3Rpb24gbkdhKHMpe2xldCBlPWZ1YS5nZXQocyk7cmV0dXJuIGU9PT12b2lkIDAmJmZ1YS5zZXQocyxlPWxHYShzKSksZX1mdW5jdGlvbiBsR2Eocyl7bGV0IGU9bnVsbDtmdW5jdGlvbiB0KGEpe2lmKGEmJnR5cGVvZiBhPT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KGEpKWlmKHR5cGVvZiBhWzBdPT0ic3RyaW5nIillfHwoZT1bXSksZS5wdXNoKGEpO2Vsc2UgZm9yKGxldCByPTA7cjxhLmxlbmd0aDtyKyspdChhW3JdKTtlbHNlIGZvcihsZXQgciBpbiBhKXQoYVtyXSl9cmV0dXJuIGkodCwic2NhbiIpLHQocyksZX1mdW5jdGlvbiBIbmUocyxlLHQsYSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybntkb206cy5jcmVhdGVUZXh0Tm9kZShlKX07aWYoZS5ub2RlVHlwZSE9bnVsbClyZXR1cm57ZG9tOmV9O2lmKGUuZG9tJiZlLmRvbS5ub2RlVHlwZSE9bnVsbClyZXR1cm4gZTtsZXQgcj1lWzBdLG47aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGFycmF5IHBhc3NlZCB0byByZW5kZXJTcGVjIik7aWYoYSYmKG49bkdhKGEpKSYmbi5pbmRleE9mKGUpPi0xKXRocm93IG5ldyBSYW5nZUVycm9yKCJVc2luZyBhbiBhcnJheSBmcm9tIGFuIGF0dHJpYnV0ZSBvYmplY3QgYXMgYSBET00gc3BlYy4gVGhpcyBtYXkgYmUgYW4gYXR0ZW1wdGVkIGNyb3NzIHNpdGUgc2NyaXB0aW5nIGF0dGFjay4iKTtsZXQgbz1yLmluZGV4T2YoIiAiKTtvPjAmJih0PXIuc2xpY2UoMCxvKSxyPXIuc2xpY2UobysxKSk7bGV0IGwscD10P3MuY3JlYXRlRWxlbWVudE5TKHQscik6cy5jcmVhdGVFbGVtZW50KHIpLGQ9ZVsxXSx1PTE7aWYoZCYmdHlwZW9mIGQ9PSJvYmplY3QiJiZkLm5vZGVUeXBlPT1udWxsJiYhQXJyYXkuaXNBcnJheShkKSl7dT0yO2ZvcihsZXQgYyBpbiBkKWlmKGRbY10hPW51bGwpe2xldCBiPWMuaW5kZXhPZigiICIpO2I+MD9wLnNldEF0dHJpYnV0ZU5TKGMuc2xpY2UoMCxiKSxjLnNsaWNlKGIrMSksZFtjXSk6Yz09InN0eWxlIiYmcC5zdHlsZT9wLnN0eWxlLmNzc1RleHQ9ZFtjXTpwLnNldEF0dHJpYnV0ZShjLGRbY10pfX1mb3IobGV0IGM9dTtjPGUubGVuZ3RoO2MrKyl7bGV0IGI9ZVtjXTtpZihiPT09MCl7aWYoYzxlLmxlbmd0aC0xfHxjPnUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNvbnRlbnQgaG9sZSBtdXN0IGJlIHRoZSBvbmx5IGNoaWxkIG9mIGl0cyBwYXJlbnQgbm9kZSIpO3JldHVybntkb206cCxjb250ZW50RE9NOnB9fWVsc2V7bGV0e2RvbTp2LGNvbnRlbnRET006eH09SG5lKHMsYix0LGEpO2lmKHAuYXBwZW5kQ2hpbGQodikseCl7aWYobCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTXVsdGlwbGUgY29udGVudCBob2xlcyIpO2w9eH19fXJldHVybntkb206cCxjb250ZW50RE9NOmx9fXZhciBydCx1dHQsZnMsa2gsX3QsTlosaHR0LFVXYSxYMGEsU2gsV1dhLFRuLGZ0dCx3aCxtdHQsUlosZ3R0LHZ2LHh2LGUyLGx1YSxpR2EsY3VhLE9aLGJ0dCxGWixidixCbmUsTGQsZnVhLF9oPWcoKCk9PntqMGEoKTtpKFYwYSwiZmluZERpZmZTdGFydCIpO2koVTBhLCJmaW5kRGlmZkVuZCIpO3J0PWNsYXNzIHN7c3RhdGlje2kodGhpcywiRnJhZ21lbnQiKX1jb25zdHJ1Y3RvcihlLHQpe2lmKHRoaXMuY29udGVudD1lLHRoaXMuc2l6ZT10fHwwLHQ9PW51bGwpZm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspdGhpcy5zaXplKz1lW2FdLm5vZGVTaXplfW5vZGVzQmV0d2VlbihlLHQsYSxyPTAsbil7Zm9yKGxldCBvPTAsbD0wO2w8dDtvKyspe2xldCBwPXRoaXMuY29udGVudFtvXSxkPWwrcC5ub2RlU2l6ZTtpZihkPmUmJmEocCxyK2wsbnx8bnVsbCxvKSE9PSExJiZwLmNvbnRlbnQuc2l6ZSl7bGV0IHU9bCsxO3Aubm9kZXNCZXR3ZWVuKE1hdGgubWF4KDAsZS11KSxNYXRoLm1pbihwLmNvbnRlbnQuc2l6ZSx0LXUpLGEscit1KX1sPWR9fWRlc2NlbmRhbnRzKGUpe3RoaXMubm9kZXNCZXR3ZWVuKDAsdGhpcy5zaXplLGUpfXRleHRCZXR3ZWVuKGUsdCxhLHIpe2xldCBuPSIiLG89ITA7cmV0dXJuIHRoaXMubm9kZXNCZXR3ZWVuKGUsdCwobCxwKT0+e2xldCBkPWwuaXNUZXh0P2wudGV4dC5zbGljZShNYXRoLm1heChlLHApLXAsdC1wKTpsLmlzTGVhZj9yP3R5cGVvZiByPT0iZnVuY3Rpb24iP3IobCk6cjpsLnR5cGUuc3BlYy5sZWFmVGV4dD9sLnR5cGUuc3BlYy5sZWFmVGV4dChsKToiIjoiIjtsLmlzQmxvY2smJihsLmlzTGVhZiYmZHx8bC5pc1RleHRibG9jaykmJmEmJihvP289ITE6bis9YSksbis9ZH0sMCksbn1hcHBlbmQoZSl7aWYoIWUuc2l6ZSlyZXR1cm4gdGhpcztpZighdGhpcy5zaXplKXJldHVybiBlO2xldCB0PXRoaXMubGFzdENoaWxkLGE9ZS5maXJzdENoaWxkLHI9dGhpcy5jb250ZW50LnNsaWNlKCksbj0wO2Zvcih0LmlzVGV4dCYmdC5zYW1lTWFya3VwKGEpJiYocltyLmxlbmd0aC0xXT10LndpdGhUZXh0KHQudGV4dCthLnRleHQpLG49MSk7bjxlLmNvbnRlbnQubGVuZ3RoO24rKylyLnB1c2goZS5jb250ZW50W25dKTtyZXR1cm4gbmV3IHMocix0aGlzLnNpemUrZS5zaXplKX1jdXQoZSx0PXRoaXMuc2l6ZSl7aWYoZT09MCYmdD09dGhpcy5zaXplKXJldHVybiB0aGlzO2xldCBhPVtdLHI9MDtpZih0PmUpZm9yKGxldCBuPTAsbz0wO288dDtuKyspe2xldCBsPXRoaXMuY29udGVudFtuXSxwPW8rbC5ub2RlU2l6ZTtwPmUmJigobzxlfHxwPnQpJiYobC5pc1RleHQ/bD1sLmN1dChNYXRoLm1heCgwLGUtbyksTWF0aC5taW4obC50ZXh0Lmxlbmd0aCx0LW8pKTpsPWwuY3V0KE1hdGgubWF4KDAsZS1vLTEpLE1hdGgubWluKGwuY29udGVudC5zaXplLHQtby0xKSkpLGEucHVzaChsKSxyKz1sLm5vZGVTaXplKSxvPXB9cmV0dXJuIG5ldyBzKGEscil9Y3V0QnlJbmRleChlLHQpe3JldHVybiBlPT10P3MuZW1wdHk6ZT09MCYmdD09dGhpcy5jb250ZW50Lmxlbmd0aD90aGlzOm5ldyBzKHRoaXMuY29udGVudC5zbGljZShlLHQpKX1yZXBsYWNlQ2hpbGQoZSx0KXtsZXQgYT10aGlzLmNvbnRlbnRbZV07aWYoYT09dClyZXR1cm4gdGhpcztsZXQgcj10aGlzLmNvbnRlbnQuc2xpY2UoKSxuPXRoaXMuc2l6ZSt0Lm5vZGVTaXplLWEubm9kZVNpemU7cmV0dXJuIHJbZV09dCxuZXcgcyhyLG4pfWFkZFRvU3RhcnQoZSl7cmV0dXJuIG5ldyBzKFtlXS5jb25jYXQodGhpcy5jb250ZW50KSx0aGlzLnNpemUrZS5ub2RlU2l6ZSl9YWRkVG9FbmQoZSl7cmV0dXJuIG5ldyBzKHRoaXMuY29udGVudC5jb25jYXQoZSksdGhpcy5zaXplK2Uubm9kZVNpemUpfWVxKGUpe2lmKHRoaXMuY29udGVudC5sZW5ndGghPWUuY29udGVudC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB0PTA7dDx0aGlzLmNvbnRlbnQubGVuZ3RoO3QrKylpZighdGhpcy5jb250ZW50W3RdLmVxKGUuY29udGVudFt0XSkpcmV0dXJuITE7cmV0dXJuITB9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aD90aGlzLmNvbnRlbnRbMF06bnVsbH1nZXQgbGFzdENoaWxkKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50W3RoaXMuY29udGVudC5sZW5ndGgtMV06bnVsbH1nZXQgY2hpbGRDb3VudCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RofWNoaWxkKGUpe2xldCB0PXRoaXMuY29udGVudFtlXTtpZighdCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggIitlKyIgb3V0IG9mIHJhbmdlIGZvciAiK3RoaXMpO3JldHVybiB0fW1heWJlQ2hpbGQoZSl7cmV0dXJuIHRoaXMuY29udGVudFtlXXx8bnVsbH1mb3JFYWNoKGUpe2ZvcihsZXQgdD0wLGE9MDt0PHRoaXMuY29udGVudC5sZW5ndGg7dCsrKXtsZXQgcj10aGlzLmNvbnRlbnRbdF07ZShyLGEsdCksYSs9ci5ub2RlU2l6ZX19ZmluZERpZmZTdGFydChlLHQ9MCl7cmV0dXJuIFYwYSh0aGlzLGUsdCl9ZmluZERpZmZFbmQoZSx0PXRoaXMuc2l6ZSxhPWUuc2l6ZSl7cmV0dXJuIFUwYSh0aGlzLGUsdCxhKX1maW5kSW5kZXgoZSl7aWYoZT09MClyZXR1cm4gUm5lKDAsZSk7aWYoZT09dGhpcy5zaXplKXJldHVybiBSbmUodGhpcy5jb250ZW50Lmxlbmd0aCxlKTtpZihlPnRoaXMuc2l6ZXx8ZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKGBQb3NpdGlvbiAke2V9IG91dHNpZGUgb2YgZnJhZ21lbnQgKCR7dGhpc30pYCk7Zm9yKGxldCB0PTAsYT0wOzt0Kyspe2xldCByPXRoaXMuY2hpbGQodCksbj1hK3Iubm9kZVNpemU7aWYobj49ZSlyZXR1cm4gbj09ZT9SbmUodCsxLG4pOlJuZSh0LGEpO2E9bn19dG9TdHJpbmcoKXtyZXR1cm4iPCIrdGhpcy50b1N0cmluZ0lubmVyKCkrIj4ifXRvU3RyaW5nSW5uZXIoKXtyZXR1cm4gdGhpcy5jb250ZW50LmpvaW4oIiwgIil9dG9KU09OKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50Lm1hcChlPT5lLnRvSlNPTigpKTpudWxsfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXJldHVybiBzLmVtcHR5O2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBGcmFnbWVudC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0Lm1hcChlLm5vZGVGcm9tSlNPTikpfXN0YXRpYyBmcm9tQXJyYXkoZSl7aWYoIWUubGVuZ3RoKXJldHVybiBzLmVtcHR5O2xldCB0LGE9MDtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IG49ZVtyXTthKz1uLm5vZGVTaXplLHImJm4uaXNUZXh0JiZlW3ItMV0uc2FtZU1hcmt1cChuKT8odHx8KHQ9ZS5zbGljZSgwLHIpKSx0W3QubGVuZ3RoLTFdPW4ud2l0aFRleHQodFt0Lmxlbmd0aC0xXS50ZXh0K24udGV4dCkpOnQmJnQucHVzaChuKX1yZXR1cm4gbmV3IHModHx8ZSxhKX1zdGF0aWMgZnJvbShlKXtpZighZSlyZXR1cm4gcy5lbXB0eTtpZihlIGluc3RhbmNlb2YgcylyZXR1cm4gZTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB0aGlzLmZyb21BcnJheShlKTtpZihlLmF0dHJzKXJldHVybiBuZXcgcyhbZV0sZS5ub2RlU2l6ZSk7dGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNhbiBub3QgY29udmVydCAiK2UrIiB0byBhIEZyYWdtZW50IisoZS5ub2Rlc0JldHdlZW4/IiAobG9va3MgbGlrZSBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBwcm9zZW1pcnJvci1tb2RlbCB3ZXJlIGxvYWRlZCkiOiIiKSl9fTtydC5lbXB0eT1uZXcgcnQoW10sMCk7dXR0PXtpbmRleDowLG9mZnNldDowfTtpKFJuZSwicmV0SW5kZXgiKTtpKE9uZSwiY29tcGFyZURlZXAiKTtmcz1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIk1hcmsiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudHlwZT1lLHRoaXMuYXR0cnM9dH1hZGRUb1NldChlKXtsZXQgdCxhPSExO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXtsZXQgbj1lW3JdO2lmKHRoaXMuZXEobikpcmV0dXJuIGU7aWYodGhpcy50eXBlLmV4Y2x1ZGVzKG4udHlwZSkpdHx8KHQ9ZS5zbGljZSgwLHIpKTtlbHNle2lmKG4udHlwZS5leGNsdWRlcyh0aGlzLnR5cGUpKXJldHVybiBlOyFhJiZuLnR5cGUucmFuaz50aGlzLnR5cGUucmFuayYmKHR8fCh0PWUuc2xpY2UoMCxyKSksdC5wdXNoKHRoaXMpLGE9ITApLHQmJnQucHVzaChuKX19cmV0dXJuIHR8fCh0PWUuc2xpY2UoKSksYXx8dC5wdXNoKHRoaXMpLHR9cmVtb3ZlRnJvbVNldChlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZih0aGlzLmVxKGVbdF0pKXJldHVybiBlLnNsaWNlKDAsdCkuY29uY2F0KGUuc2xpY2UodCsxKSk7cmV0dXJuIGV9aXNJblNldChlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZih0aGlzLmVxKGVbdF0pKXJldHVybiEwO3JldHVybiExfWVxKGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLnR5cGU9PWUudHlwZSYmT25lKHRoaXMuYXR0cnMsZS5hdHRycyl9dG9KU09OKCl7bGV0IGU9e3R5cGU6dGhpcy50eXBlLm5hbWV9O2ZvcihsZXQgdCBpbiB0aGlzLmF0dHJzKXtlLmF0dHJzPXRoaXMuYXR0cnM7YnJlYWt9cmV0dXJuIGV9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIE1hcmsuZnJvbUpTT04iKTtsZXQgYT1lLm1hcmtzW3QudHlwZV07aWYoIWEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZXJlIGlzIG5vIG1hcmsgdHlwZSAke3QudHlwZX0gaW4gdGhpcyBzY2hlbWFgKTtsZXQgcj1hLmNyZWF0ZSh0LmF0dHJzKTtyZXR1cm4gYS5jaGVja0F0dHJzKHIuYXR0cnMpLHJ9c3RhdGljIHNhbWVTZXQoZSx0KXtpZihlPT10KXJldHVybiEwO2lmKGUubGVuZ3RoIT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKylpZighZVthXS5lcSh0W2FdKSlyZXR1cm4hMTtyZXR1cm4hMH1zdGF0aWMgc2V0RnJvbShlKXtpZighZXx8QXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg9PTApcmV0dXJuIHMubm9uZTtpZihlIGluc3RhbmNlb2YgcylyZXR1cm5bZV07bGV0IHQ9ZS5zbGljZSgpO3JldHVybiB0LnNvcnQoKGEscik9PmEudHlwZS5yYW5rLXIudHlwZS5yYW5rKSx0fX07ZnMubm9uZT1bXTtraD1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tpKHRoaXMsIlJlcGxhY2VFcnJvciIpfX0sX3Q9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJTbGljZSIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLmNvbnRlbnQ9ZSx0aGlzLm9wZW5TdGFydD10LHRoaXMub3BlbkVuZD1hfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuY29udGVudC5zaXplLXRoaXMub3BlblN0YXJ0LXRoaXMub3BlbkVuZH1pbnNlcnRBdChlLHQpe2xldCBhPUcwYSh0aGlzLmNvbnRlbnQsZSt0aGlzLm9wZW5TdGFydCx0KTtyZXR1cm4gYSYmbmV3IHMoYSx0aGlzLm9wZW5TdGFydCx0aGlzLm9wZW5FbmQpfXJlbW92ZUJldHdlZW4oZSx0KXtyZXR1cm4gbmV3IHMoVzBhKHRoaXMuY29udGVudCxlK3RoaXMub3BlblN0YXJ0LHQrdGhpcy5vcGVuU3RhcnQpLHRoaXMub3BlblN0YXJ0LHRoaXMub3BlbkVuZCl9ZXEoZSl7cmV0dXJuIHRoaXMuY29udGVudC5lcShlLmNvbnRlbnQpJiZ0aGlzLm9wZW5TdGFydD09ZS5vcGVuU3RhcnQmJnRoaXMub3BlbkVuZD09ZS5vcGVuRW5kfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29udGVudCsiKCIrdGhpcy5vcGVuU3RhcnQrIiwiK3RoaXMub3BlbkVuZCsiKSJ9dG9KU09OKCl7aWYoIXRoaXMuY29udGVudC5zaXplKXJldHVybiBudWxsO2xldCBlPXtjb250ZW50OnRoaXMuY29udGVudC50b0pTT04oKX07cmV0dXJuIHRoaXMub3BlblN0YXJ0PjAmJihlLm9wZW5TdGFydD10aGlzLm9wZW5TdGFydCksdGhpcy5vcGVuRW5kPjAmJihlLm9wZW5FbmQ9dGhpcy5vcGVuRW5kKSxlfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXJldHVybiBzLmVtcHR5O2xldCBhPXQub3BlblN0YXJ0fHwwLHI9dC5vcGVuRW5kfHwwO2lmKHR5cGVvZiBhIT0ibnVtYmVyInx8dHlwZW9mIHIhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTbGljZS5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyhydC5mcm9tSlNPTihlLHQuY29udGVudCksYSxyKX1zdGF0aWMgbWF4T3BlbihlLHQ9ITApe2xldCBhPTAscj0wO2ZvcihsZXQgbj1lLmZpcnN0Q2hpbGQ7biYmIW4uaXNMZWFmJiYodHx8IW4udHlwZS5zcGVjLmlzb2xhdGluZyk7bj1uLmZpcnN0Q2hpbGQpYSsrO2ZvcihsZXQgbj1lLmxhc3RDaGlsZDtuJiYhbi5pc0xlYWYmJih0fHwhbi50eXBlLnNwZWMuaXNvbGF0aW5nKTtuPW4ubGFzdENoaWxkKXIrKztyZXR1cm4gbmV3IHMoZSxhLHIpfX07X3QuZW1wdHk9bmV3IF90KHJ0LmVtcHR5LDAsMCk7aShXMGEsInJlbW92ZVJhbmdlIik7aShHMGEsImluc2VydEludG8iKTtpKGpXYSwicmVwbGFjZSIpO2koSzBhLCJyZXBsYWNlT3V0ZXIiKTtpKFkwYSwiY2hlY2tKb2luIik7aShwdHQsImpvaW5hYmxlIik7aShqOCwiYWRkTm9kZSIpO2koQVosImFkZFJhbmdlIik7aShWOCwiY2xvc2UiKTtpKFowYSwicmVwbGFjZVRocmVlV2F5Iik7aShGbmUsInJlcGxhY2VUd29XYXkiKTtpKFZXYSwicHJlcGFyZVNsaWNlRm9yUmVwbGFjZSIpO05aPWNsYXNzIHN7c3RhdGlje2kodGhpcywiUmVzb2x2ZWRQb3MiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5wb3M9ZSx0aGlzLnBhdGg9dCx0aGlzLnBhcmVudE9mZnNldD1hLHRoaXMuZGVwdGg9dC5sZW5ndGgvMy0xfXJlc29sdmVEZXB0aChlKXtyZXR1cm4gZT09bnVsbD90aGlzLmRlcHRoOmU8MD90aGlzLmRlcHRoK2U6ZX1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLmRlcHRoKX1nZXQgZG9jKCl7cmV0dXJuIHRoaXMubm9kZSgwKX1ub2RlKGUpe3JldHVybiB0aGlzLnBhdGhbdGhpcy5yZXNvbHZlRGVwdGgoZSkqM119aW5kZXgoZSl7cmV0dXJuIHRoaXMucGF0aFt0aGlzLnJlc29sdmVEZXB0aChlKSozKzFdfWluZGV4QWZ0ZXIoZSl7cmV0dXJuIGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksdGhpcy5pbmRleChlKSsoZT09dGhpcy5kZXB0aCYmIXRoaXMudGV4dE9mZnNldD8wOjEpfXN0YXJ0KGUpe3JldHVybiBlPXRoaXMucmVzb2x2ZURlcHRoKGUpLGU9PTA/MDp0aGlzLnBhdGhbZSozLTFdKzF9ZW5kKGUpe3JldHVybiBlPXRoaXMucmVzb2x2ZURlcHRoKGUpLHRoaXMuc3RhcnQoZSkrdGhpcy5ub2RlKGUpLmNvbnRlbnQuc2l6ZX1iZWZvcmUoZSl7aWYoZT10aGlzLnJlc29sdmVEZXB0aChlKSwhZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlcmUgaXMgbm8gcG9zaXRpb24gYmVmb3JlIHRoZSB0b3AtbGV2ZWwgbm9kZSIpO3JldHVybiBlPT10aGlzLmRlcHRoKzE/dGhpcy5wb3M6dGhpcy5wYXRoW2UqMy0xXX1hZnRlcihlKXtpZihlPXRoaXMucmVzb2x2ZURlcHRoKGUpLCFlKXRocm93IG5ldyBSYW5nZUVycm9yKCJUaGVyZSBpcyBubyBwb3NpdGlvbiBhZnRlciB0aGUgdG9wLWxldmVsIG5vZGUiKTtyZXR1cm4gZT09dGhpcy5kZXB0aCsxP3RoaXMucG9zOnRoaXMucGF0aFtlKjMtMV0rdGhpcy5wYXRoW2UqM10ubm9kZVNpemV9Z2V0IHRleHRPZmZzZXQoKXtyZXR1cm4gdGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV19Z2V0IG5vZGVBZnRlcigpe2xldCBlPXRoaXMucGFyZW50LHQ9dGhpcy5pbmRleCh0aGlzLmRlcHRoKTtpZih0PT1lLmNoaWxkQ291bnQpcmV0dXJuIG51bGw7bGV0IGE9dGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV0scj1lLmNoaWxkKHQpO3JldHVybiBhP2UuY2hpbGQodCkuY3V0KGEpOnJ9Z2V0IG5vZGVCZWZvcmUoKXtsZXQgZT10aGlzLmluZGV4KHRoaXMuZGVwdGgpLHQ9dGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV07cmV0dXJuIHQ/dGhpcy5wYXJlbnQuY2hpbGQoZSkuY3V0KDAsdCk6ZT09MD9udWxsOnRoaXMucGFyZW50LmNoaWxkKGUtMSl9cG9zQXRJbmRleChlLHQpe3Q9dGhpcy5yZXNvbHZlRGVwdGgodCk7bGV0IGE9dGhpcy5wYXRoW3QqM10scj10PT0wPzA6dGhpcy5wYXRoW3QqMy0xXSsxO2ZvcihsZXQgbj0wO248ZTtuKyspcis9YS5jaGlsZChuKS5ub2RlU2l6ZTtyZXR1cm4gcn1tYXJrcygpe2xldCBlPXRoaXMucGFyZW50LHQ9dGhpcy5pbmRleCgpO2lmKGUuY29udGVudC5zaXplPT0wKXJldHVybiBmcy5ub25lO2lmKHRoaXMudGV4dE9mZnNldClyZXR1cm4gZS5jaGlsZCh0KS5tYXJrcztsZXQgYT1lLm1heWJlQ2hpbGQodC0xKSxyPWUubWF5YmVDaGlsZCh0KTtpZighYSl7bGV0IGw9YTthPXIscj1sfWxldCBuPWEubWFya3M7Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspbltvXS50eXBlLnNwZWMuaW5jbHVzaXZlPT09ITEmJighcnx8IW5bb10uaXNJblNldChyLm1hcmtzKSkmJihuPW5bby0tXS5yZW1vdmVGcm9tU2V0KG4pKTtyZXR1cm4gbn1tYXJrc0Fjcm9zcyhlKXtsZXQgdD10aGlzLnBhcmVudC5tYXliZUNoaWxkKHRoaXMuaW5kZXgoKSk7aWYoIXR8fCF0LmlzSW5saW5lKXJldHVybiBudWxsO2xldCBhPXQubWFya3Mscj1lLnBhcmVudC5tYXliZUNoaWxkKGUuaW5kZXgoKSk7Zm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspYVtuXS50eXBlLnNwZWMuaW5jbHVzaXZlPT09ITEmJighcnx8IWFbbl0uaXNJblNldChyLm1hcmtzKSkmJihhPWFbbi0tXS5yZW1vdmVGcm9tU2V0KGEpKTtyZXR1cm4gYX1zaGFyZWREZXB0aChlKXtmb3IobGV0IHQ9dGhpcy5kZXB0aDt0PjA7dC0tKWlmKHRoaXMuc3RhcnQodCk8PWUmJnRoaXMuZW5kKHQpPj1lKXJldHVybiB0O3JldHVybiAwfWJsb2NrUmFuZ2UoZT10aGlzLHQpe2lmKGUucG9zPHRoaXMucG9zKXJldHVybiBlLmJsb2NrUmFuZ2UodGhpcyk7Zm9yKGxldCBhPXRoaXMuZGVwdGgtKHRoaXMucGFyZW50LmlubGluZUNvbnRlbnR8fHRoaXMucG9zPT1lLnBvcz8xOjApO2E+PTA7YS0tKWlmKGUucG9zPD10aGlzLmVuZChhKSYmKCF0fHx0KHRoaXMubm9kZShhKSkpKXJldHVybiBuZXcgU2godGhpcyxlLGEpO3JldHVybiBudWxsfXNhbWVQYXJlbnQoZSl7cmV0dXJuIHRoaXMucG9zLXRoaXMucGFyZW50T2Zmc2V0PT1lLnBvcy1lLnBhcmVudE9mZnNldH1tYXgoZSl7cmV0dXJuIGUucG9zPnRoaXMucG9zP2U6dGhpc31taW4oZSl7cmV0dXJuIGUucG9zPHRoaXMucG9zP2U6dGhpc310b1N0cmluZygpe2xldCBlPSIiO2ZvcihsZXQgdD0xO3Q8PXRoaXMuZGVwdGg7dCsrKWUrPShlPyIvIjoiIikrdGhpcy5ub2RlKHQpLnR5cGUubmFtZSsiXyIrdGhpcy5pbmRleCh0LTEpO3JldHVybiBlKyI6Iit0aGlzLnBhcmVudE9mZnNldH1zdGF0aWMgcmVzb2x2ZShlLHQpe2lmKCEodD49MCYmdDw9ZS5jb250ZW50LnNpemUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJQb3NpdGlvbiAiK3QrIiBvdXQgb2YgcmFuZ2UiKTtsZXQgYT1bXSxyPTAsbj10O2ZvcihsZXQgbz1lOzspe2xldHtpbmRleDpsLG9mZnNldDpwfT1vLmNvbnRlbnQuZmluZEluZGV4KG4pLGQ9bi1wO2lmKGEucHVzaChvLGwscitwKSwhZHx8KG89by5jaGlsZChsKSxvLmlzVGV4dCkpYnJlYWs7bj1kLTEscis9cCsxfXJldHVybiBuZXcgcyh0LGEsbil9c3RhdGljIHJlc29sdmVDYWNoZWQoZSx0KXtsZXQgYT1YMGEuZ2V0KGUpO2lmKGEpZm9yKGxldCBuPTA7bjxhLmVsdHMubGVuZ3RoO24rKyl7bGV0IG89YS5lbHRzW25dO2lmKG8ucG9zPT10KXJldHVybiBvfWVsc2UgWDBhLnNldChlLGE9bmV3IGh0dCk7bGV0IHI9YS5lbHRzW2EuaV09cy5yZXNvbHZlKGUsdCk7cmV0dXJuIGEuaT0oYS5pKzEpJVVXYSxyfX0saHR0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlJlc29sdmVDYWNoZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5lbHRzPVtdLHRoaXMuaT0wfX0sVVdhPTEyLFgwYT1uZXcgV2Vha01hcCxTaD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOb2RlUmFuZ2UiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy4kZnJvbT1lLHRoaXMuJHRvPXQsdGhpcy5kZXB0aD1hfWdldCBzdGFydCgpe3JldHVybiB0aGlzLiRmcm9tLmJlZm9yZSh0aGlzLmRlcHRoKzEpfWdldCBlbmQoKXtyZXR1cm4gdGhpcy4kdG8uYWZ0ZXIodGhpcy5kZXB0aCsxKX1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuJGZyb20ubm9kZSh0aGlzLmRlcHRoKX1nZXQgc3RhcnRJbmRleCgpe3JldHVybiB0aGlzLiRmcm9tLmluZGV4KHRoaXMuZGVwdGgpfWdldCBlbmRJbmRleCgpe3JldHVybiB0aGlzLiR0by5pbmRleEFmdGVyKHRoaXMuZGVwdGgpfX0sV1dhPU9iamVjdC5jcmVhdGUobnVsbCksVG49Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlIil9Y29uc3RydWN0b3IoZSx0LGEscj1mcy5ub25lKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXQsdGhpcy5tYXJrcz1yLHRoaXMuY29udGVudD1hfHxydC5lbXB0eX1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5jb250ZW50LmNvbnRlbnR9Z2V0IG5vZGVTaXplKCl7cmV0dXJuIHRoaXMuaXNMZWFmPzE6Mit0aGlzLmNvbnRlbnQuc2l6ZX1nZXQgY2hpbGRDb3VudCgpe3JldHVybiB0aGlzLmNvbnRlbnQuY2hpbGRDb3VudH1jaGlsZChlKXtyZXR1cm4gdGhpcy5jb250ZW50LmNoaWxkKGUpfW1heWJlQ2hpbGQoZSl7cmV0dXJuIHRoaXMuY29udGVudC5tYXliZUNoaWxkKGUpfWZvckVhY2goZSl7dGhpcy5jb250ZW50LmZvckVhY2goZSl9bm9kZXNCZXR3ZWVuKGUsdCxhLHI9MCl7dGhpcy5jb250ZW50Lm5vZGVzQmV0d2VlbihlLHQsYSxyLHRoaXMpfWRlc2NlbmRhbnRzKGUpe3RoaXMubm9kZXNCZXR3ZWVuKDAsdGhpcy5jb250ZW50LnNpemUsZSl9Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuaXNMZWFmJiZ0aGlzLnR5cGUuc3BlYy5sZWFmVGV4dD90aGlzLnR5cGUuc3BlYy5sZWFmVGV4dCh0aGlzKTp0aGlzLnRleHRCZXR3ZWVuKDAsdGhpcy5jb250ZW50LnNpemUsIiIpfXRleHRCZXR3ZWVuKGUsdCxhLHIpe3JldHVybiB0aGlzLmNvbnRlbnQudGV4dEJldHdlZW4oZSx0LGEscil9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jb250ZW50LmZpcnN0Q2hpbGR9Z2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGFzdENoaWxkfWVxKGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLnNhbWVNYXJrdXAoZSkmJnRoaXMuY29udGVudC5lcShlLmNvbnRlbnQpfXNhbWVNYXJrdXAoZSl7cmV0dXJuIHRoaXMuaGFzTWFya3VwKGUudHlwZSxlLmF0dHJzLGUubWFya3MpfWhhc01hcmt1cChlLHQsYSl7cmV0dXJuIHRoaXMudHlwZT09ZSYmT25lKHRoaXMuYXR0cnMsdHx8ZS5kZWZhdWx0QXR0cnN8fFdXYSkmJmZzLnNhbWVTZXQodGhpcy5tYXJrcyxhfHxmcy5ub25lKX1jb3B5KGU9bnVsbCl7cmV0dXJuIGU9PXRoaXMuY29udGVudD90aGlzOm5ldyBzKHRoaXMudHlwZSx0aGlzLmF0dHJzLGUsdGhpcy5tYXJrcyl9bWFyayhlKXtyZXR1cm4gZT09dGhpcy5tYXJrcz90aGlzOm5ldyBzKHRoaXMudHlwZSx0aGlzLmF0dHJzLHRoaXMuY29udGVudCxlKX1jdXQoZSx0PXRoaXMuY29udGVudC5zaXplKXtyZXR1cm4gZT09MCYmdD09dGhpcy5jb250ZW50LnNpemU/dGhpczp0aGlzLmNvcHkodGhpcy5jb250ZW50LmN1dChlLHQpKX1zbGljZShlLHQ9dGhpcy5jb250ZW50LnNpemUsYT0hMSl7aWYoZT09dClyZXR1cm4gX3QuZW1wdHk7bGV0IHI9dGhpcy5yZXNvbHZlKGUpLG49dGhpcy5yZXNvbHZlKHQpLG89YT8wOnIuc2hhcmVkRGVwdGgodCksbD1yLnN0YXJ0KG8pLGQ9ci5ub2RlKG8pLmNvbnRlbnQuY3V0KHIucG9zLWwsbi5wb3MtbCk7cmV0dXJuIG5ldyBfdChkLHIuZGVwdGgtbyxuLmRlcHRoLW8pfXJlcGxhY2UoZSx0LGEpe3JldHVybiBqV2EodGhpcy5yZXNvbHZlKGUpLHRoaXMucmVzb2x2ZSh0KSxhKX1ub2RlQXQoZSl7Zm9yKGxldCB0PXRoaXM7Oyl7bGV0e2luZGV4OmEsb2Zmc2V0OnJ9PXQuY29udGVudC5maW5kSW5kZXgoZSk7aWYodD10Lm1heWJlQ2hpbGQoYSksIXQpcmV0dXJuIG51bGw7aWYocj09ZXx8dC5pc1RleHQpcmV0dXJuIHQ7ZS09cisxfX1jaGlsZEFmdGVyKGUpe2xldHtpbmRleDp0LG9mZnNldDphfT10aGlzLmNvbnRlbnQuZmluZEluZGV4KGUpO3JldHVybntub2RlOnRoaXMuY29udGVudC5tYXliZUNoaWxkKHQpLGluZGV4OnQsb2Zmc2V0OmF9fWNoaWxkQmVmb3JlKGUpe2lmKGU9PTApcmV0dXJue25vZGU6bnVsbCxpbmRleDowLG9mZnNldDowfTtsZXR7aW5kZXg6dCxvZmZzZXQ6YX09dGhpcy5jb250ZW50LmZpbmRJbmRleChlKTtpZihhPGUpcmV0dXJue25vZGU6dGhpcy5jb250ZW50LmNoaWxkKHQpLGluZGV4OnQsb2Zmc2V0OmF9O2xldCByPXRoaXMuY29udGVudC5jaGlsZCh0LTEpO3JldHVybntub2RlOnIsaW5kZXg6dC0xLG9mZnNldDphLXIubm9kZVNpemV9fXJlc29sdmUoZSl7cmV0dXJuIE5aLnJlc29sdmVDYWNoZWQodGhpcyxlKX1yZXNvbHZlTm9DYWNoZShlKXtyZXR1cm4gTloucmVzb2x2ZSh0aGlzLGUpfXJhbmdlSGFzTWFyayhlLHQsYSl7bGV0IHI9ITE7cmV0dXJuIHQ+ZSYmdGhpcy5ub2Rlc0JldHdlZW4oZSx0LG49PihhLmlzSW5TZXQobi5tYXJrcykmJihyPSEwKSwhcikpLHJ9Z2V0IGlzQmxvY2soKXtyZXR1cm4gdGhpcy50eXBlLmlzQmxvY2t9Z2V0IGlzVGV4dGJsb2NrKCl7cmV0dXJuIHRoaXMudHlwZS5pc1RleHRibG9ja31nZXQgaW5saW5lQ29udGVudCgpe3JldHVybiB0aGlzLnR5cGUuaW5saW5lQ29udGVudH1nZXQgaXNJbmxpbmUoKXtyZXR1cm4gdGhpcy50eXBlLmlzSW5saW5lfWdldCBpc1RleHQoKXtyZXR1cm4gdGhpcy50eXBlLmlzVGV4dH1nZXQgaXNMZWFmKCl7cmV0dXJuIHRoaXMudHlwZS5pc0xlYWZ9Z2V0IGlzQXRvbSgpe3JldHVybiB0aGlzLnR5cGUuaXNBdG9tfXRvU3RyaW5nKCl7aWYodGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZylyZXR1cm4gdGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZyh0aGlzKTtsZXQgZT10aGlzLnR5cGUubmFtZTtyZXR1cm4gdGhpcy5jb250ZW50LnNpemUmJihlKz0iKCIrdGhpcy5jb250ZW50LnRvU3RyaW5nSW5uZXIoKSsiKSIpLFEwYSh0aGlzLm1hcmtzLGUpfWNvbnRlbnRNYXRjaEF0KGUpe2xldCB0PXRoaXMudHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudCh0aGlzLmNvbnRlbnQsMCxlKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCBjb250ZW50TWF0Y2hBdCBvbiBhIG5vZGUgd2l0aCBpbnZhbGlkIGNvbnRlbnQiKTtyZXR1cm4gdH1jYW5SZXBsYWNlKGUsdCxhPXJ0LmVtcHR5LHI9MCxuPWEuY2hpbGRDb3VudCl7bGV0IG89dGhpcy5jb250ZW50TWF0Y2hBdChlKS5tYXRjaEZyYWdtZW50KGEscixuKSxsPW8mJm8ubWF0Y2hGcmFnbWVudCh0aGlzLmNvbnRlbnQsdCk7aWYoIWx8fCFsLnZhbGlkRW5kKXJldHVybiExO2ZvcihsZXQgcD1yO3A8bjtwKyspaWYoIXRoaXMudHlwZS5hbGxvd3NNYXJrcyhhLmNoaWxkKHApLm1hcmtzKSlyZXR1cm4hMTtyZXR1cm4hMH1jYW5SZXBsYWNlV2l0aChlLHQsYSxyKXtpZihyJiYhdGhpcy50eXBlLmFsbG93c01hcmtzKHIpKXJldHVybiExO2xldCBuPXRoaXMuY29udGVudE1hdGNoQXQoZSkubWF0Y2hUeXBlKGEpLG89biYmbi5tYXRjaEZyYWdtZW50KHRoaXMuY29udGVudCx0KTtyZXR1cm4gbz9vLnZhbGlkRW5kOiExfWNhbkFwcGVuZChlKXtyZXR1cm4gZS5jb250ZW50LnNpemU/dGhpcy5jYW5SZXBsYWNlKHRoaXMuY2hpbGRDb3VudCx0aGlzLmNoaWxkQ291bnQsZS5jb250ZW50KTp0aGlzLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQoZS50eXBlKX1jaGVjaygpe3RoaXMudHlwZS5jaGVja0NvbnRlbnQodGhpcy5jb250ZW50KSx0aGlzLnR5cGUuY2hlY2tBdHRycyh0aGlzLmF0dHJzKTtsZXQgZT1mcy5ub25lO2ZvcihsZXQgdD0wO3Q8dGhpcy5tYXJrcy5sZW5ndGg7dCsrKXtsZXQgYT10aGlzLm1hcmtzW3RdO2EudHlwZS5jaGVja0F0dHJzKGEuYXR0cnMpLGU9YS5hZGRUb1NldChlKX1pZighZnMuc2FtZVNldChlLHRoaXMubWFya3MpKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIGNvbGxlY3Rpb24gb2YgbWFya3MgZm9yIG5vZGUgJHt0aGlzLnR5cGUubmFtZX06ICR7dGhpcy5tYXJrcy5tYXAodD0+dC50eXBlLm5hbWUpfWApO3RoaXMuY29udGVudC5mb3JFYWNoKHQ9PnQuY2hlY2soKSl9dG9KU09OKCl7bGV0IGU9e3R5cGU6dGhpcy50eXBlLm5hbWV9O2ZvcihsZXQgdCBpbiB0aGlzLmF0dHJzKXtlLmF0dHJzPXRoaXMuYXR0cnM7YnJlYWt9cmV0dXJuIHRoaXMuY29udGVudC5zaXplJiYoZS5jb250ZW50PXRoaXMuY29udGVudC50b0pTT04oKSksdGhpcy5tYXJrcy5sZW5ndGgmJihlLm1hcmtzPXRoaXMubWFya3MubWFwKHQ9PnQudG9KU09OKCkpKSxlfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBOb2RlLmZyb21KU09OIik7bGV0IGE7aWYodC5tYXJrcyl7aWYoIUFycmF5LmlzQXJyYXkodC5tYXJrcykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgbWFyayBkYXRhIGZvciBOb2RlLmZyb21KU09OIik7YT10Lm1hcmtzLm1hcChlLm1hcmtGcm9tSlNPTil9aWYodC50eXBlPT0idGV4dCIpe2lmKHR5cGVvZiB0LnRleHQhPSJzdHJpbmciKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRleHQgbm9kZSBpbiBKU09OIik7cmV0dXJuIGUudGV4dCh0LnRleHQsYSl9bGV0IHI9cnQuZnJvbUpTT04oZSx0LmNvbnRlbnQpLG49ZS5ub2RlVHlwZSh0LnR5cGUpLmNyZWF0ZSh0LmF0dHJzLHIsYSk7cmV0dXJuIG4udHlwZS5jaGVja0F0dHJzKG4uYXR0cnMpLG59fTtUbi5wcm90b3R5cGUudGV4dD12b2lkIDA7ZnR0PWNsYXNzIHMgZXh0ZW5kcyBUbntzdGF0aWN7aSh0aGlzLCJUZXh0Tm9kZSIpfWNvbnN0cnVjdG9yKGUsdCxhLHIpe2lmKHN1cGVyKGUsdCxudWxsLHIpLCFhKXRocm93IG5ldyBSYW5nZUVycm9yKCJFbXB0eSB0ZXh0IG5vZGVzIGFyZSBub3QgYWxsb3dlZCIpO3RoaXMudGV4dD1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmc/dGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZyh0aGlzKTpRMGEodGhpcy5tYXJrcyxKU09OLnN0cmluZ2lmeSh0aGlzLnRleHQpKX1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy50ZXh0fXRleHRCZXR3ZWVuKGUsdCl7cmV0dXJuIHRoaXMudGV4dC5zbGljZShlLHQpfWdldCBub2RlU2l6ZSgpe3JldHVybiB0aGlzLnRleHQubGVuZ3RofW1hcmsoZSl7cmV0dXJuIGU9PXRoaXMubWFya3M/dGhpczpuZXcgcyh0aGlzLnR5cGUsdGhpcy5hdHRycyx0aGlzLnRleHQsZSl9d2l0aFRleHQoZSl7cmV0dXJuIGU9PXRoaXMudGV4dD90aGlzOm5ldyBzKHRoaXMudHlwZSx0aGlzLmF0dHJzLGUsdGhpcy5tYXJrcyl9Y3V0KGU9MCx0PXRoaXMudGV4dC5sZW5ndGgpe3JldHVybiBlPT0wJiZ0PT10aGlzLnRleHQubGVuZ3RoP3RoaXM6dGhpcy53aXRoVGV4dCh0aGlzLnRleHQuc2xpY2UoZSx0KSl9ZXEoZSl7cmV0dXJuIHRoaXMuc2FtZU1hcmt1cChlKSYmdGhpcy50ZXh0PT1lLnRleHR9dG9KU09OKCl7bGV0IGU9c3VwZXIudG9KU09OKCk7cmV0dXJuIGUudGV4dD10aGlzLnRleHQsZX19O2koUTBhLCJ3cmFwTWFya3MiKTt3aD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIkNvbnRlbnRNYXRjaCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMudmFsaWRFbmQ9ZSx0aGlzLm5leHQ9W10sdGhpcy53cmFwQ2FjaGU9W119c3RhdGljIHBhcnNlKGUsdCl7bGV0IGE9bmV3IG10dChlLHQpO2lmKGEubmV4dD09bnVsbClyZXR1cm4gcy5lbXB0eTtsZXQgcj1KMGEoYSk7YS5uZXh0JiZhLmVycigiVW5leHBlY3RlZCB0cmFpbGluZyB0ZXh0Iik7bGV0IG49SldhKFFXYShyKSk7cmV0dXJuIGVHYShuLGEpLG59bWF0Y2hUeXBlKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5uZXh0Lmxlbmd0aDt0KyspaWYodGhpcy5uZXh0W3RdLnR5cGU9PWUpcmV0dXJuIHRoaXMubmV4dFt0XS5uZXh0O3JldHVybiBudWxsfW1hdGNoRnJhZ21lbnQoZSx0PTAsYT1lLmNoaWxkQ291bnQpe2xldCByPXRoaXM7Zm9yKGxldCBuPXQ7ciYmbjxhO24rKylyPXIubWF0Y2hUeXBlKGUuY2hpbGQobikudHlwZSk7cmV0dXJuIHJ9Z2V0IGlubGluZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5uZXh0Lmxlbmd0aCE9MCYmdGhpcy5uZXh0WzBdLnR5cGUuaXNJbmxpbmV9Z2V0IGRlZmF1bHRUeXBlKCl7Zm9yKGxldCBlPTA7ZTx0aGlzLm5leHQubGVuZ3RoO2UrKyl7bGV0e3R5cGU6dH09dGhpcy5uZXh0W2VdO2lmKCEodC5pc1RleHR8fHQuaGFzUmVxdWlyZWRBdHRycygpKSlyZXR1cm4gdH1yZXR1cm4gbnVsbH1jb21wYXRpYmxlKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5uZXh0Lmxlbmd0aDt0KyspZm9yKGxldCBhPTA7YTxlLm5leHQubGVuZ3RoO2ErKylpZih0aGlzLm5leHRbdF0udHlwZT09ZS5uZXh0W2FdLnR5cGUpcmV0dXJuITA7cmV0dXJuITF9ZmlsbEJlZm9yZShlLHQ9ITEsYT0wKXtsZXQgcj1bdGhpc107ZnVuY3Rpb24gbihvLGwpe2xldCBwPW8ubWF0Y2hGcmFnbWVudChlLGEpO2lmKHAmJighdHx8cC52YWxpZEVuZCkpcmV0dXJuIHJ0LmZyb20obC5tYXAoZD0+ZC5jcmVhdGVBbmRGaWxsKCkpKTtmb3IobGV0IGQ9MDtkPG8ubmV4dC5sZW5ndGg7ZCsrKXtsZXR7dHlwZTp1LG5leHQ6Y309by5uZXh0W2RdO2lmKCEodS5pc1RleHR8fHUuaGFzUmVxdWlyZWRBdHRycygpKSYmci5pbmRleE9mKGMpPT0tMSl7ci5wdXNoKGMpO2xldCBiPW4oYyxsLmNvbmNhdCh1KSk7aWYoYilyZXR1cm4gYn19cmV0dXJuIG51bGx9cmV0dXJuIGkobiwic2VhcmNoIiksbih0aGlzLFtdKX1maW5kV3JhcHBpbmcoZSl7Zm9yKGxldCBhPTA7YTx0aGlzLndyYXBDYWNoZS5sZW5ndGg7YSs9MilpZih0aGlzLndyYXBDYWNoZVthXT09ZSlyZXR1cm4gdGhpcy53cmFwQ2FjaGVbYSsxXTtsZXQgdD10aGlzLmNvbXB1dGVXcmFwcGluZyhlKTtyZXR1cm4gdGhpcy53cmFwQ2FjaGUucHVzaChlLHQpLHR9Y29tcHV0ZVdyYXBwaW5nKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCksYT1be21hdGNoOnRoaXMsdHlwZTpudWxsLHZpYTpudWxsfV07Zm9yKDthLmxlbmd0aDspe2xldCByPWEuc2hpZnQoKSxuPXIubWF0Y2g7aWYobi5tYXRjaFR5cGUoZSkpe2xldCBvPVtdO2ZvcihsZXQgbD1yO2wudHlwZTtsPWwudmlhKW8ucHVzaChsLnR5cGUpO3JldHVybiBvLnJldmVyc2UoKX1mb3IobGV0IG89MDtvPG4ubmV4dC5sZW5ndGg7bysrKXtsZXR7dHlwZTpsLG5leHQ6cH09bi5uZXh0W29dOyFsLmlzTGVhZiYmIWwuaGFzUmVxdWlyZWRBdHRycygpJiYhKGwubmFtZSBpbiB0KSYmKCFyLnR5cGV8fHAudmFsaWRFbmQpJiYoYS5wdXNoKHttYXRjaDpsLmNvbnRlbnRNYXRjaCx0eXBlOmwsdmlhOnJ9KSx0W2wubmFtZV09ITApfX1yZXR1cm4gbnVsbH1nZXQgZWRnZUNvdW50KCl7cmV0dXJuIHRoaXMubmV4dC5sZW5ndGh9ZWRnZShlKXtpZihlPj10aGlzLm5leHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGVyZSdzIG5vICR7ZX10aCBlZGdlIGluIHRoaXMgY29udGVudCBtYXRjaGApO3JldHVybiB0aGlzLm5leHRbZV19dG9TdHJpbmcoKXtsZXQgZT1bXTtmdW5jdGlvbiB0KGEpe2UucHVzaChhKTtmb3IobGV0IHI9MDtyPGEubmV4dC5sZW5ndGg7cisrKWUuaW5kZXhPZihhLm5leHRbcl0ubmV4dCk9PS0xJiZ0KGEubmV4dFtyXS5uZXh0KX1yZXR1cm4gaSh0LCJzY2FuIiksdCh0aGlzKSxlLm1hcCgoYSxyKT0+e2xldCBuPXIrKGEudmFsaWRFbmQ/IioiOiIgIikrIiAiO2ZvcihsZXQgbz0wO288YS5uZXh0Lmxlbmd0aDtvKyspbis9KG8/IiwgIjoiIikrYS5uZXh0W29dLnR5cGUubmFtZSsiLT4iK2UuaW5kZXhPZihhLm5leHRbb10ubmV4dCk7cmV0dXJuIG59KS5qb2luKGAKYCl9fTt3aC5lbXB0eT1uZXcgd2goITApO210dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUb2tlblN0cmVhbSIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdHJpbmc9ZSx0aGlzLm5vZGVUeXBlcz10LHRoaXMuaW5saW5lPW51bGwsdGhpcy5wb3M9MCx0aGlzLnRva2Vucz1lLnNwbGl0KC9ccyooPz1cYnxcV3wkKS8pLHRoaXMudG9rZW5zW3RoaXMudG9rZW5zLmxlbmd0aC0xXT09IiImJnRoaXMudG9rZW5zLnBvcCgpLHRoaXMudG9rZW5zWzBdPT0iIiYmdGhpcy50b2tlbnMuc2hpZnQoKX1nZXQgbmV4dCgpe3JldHVybiB0aGlzLnRva2Vuc1t0aGlzLnBvc119ZWF0KGUpe3JldHVybiB0aGlzLm5leHQ9PWUmJih0aGlzLnBvcysrfHwhMCl9ZXJyKGUpe3Rocm93IG5ldyBTeW50YXhFcnJvcihlKyIgKGluIGNvbnRlbnQgZXhwcmVzc2lvbiAnIit0aGlzLnN0cmluZysiJykiKX19O2koSjBhLCJwYXJzZUV4cHIiKTtpKEdXYSwicGFyc2VFeHByU2VxIik7aShLV2EsInBhcnNlRXhwclN1YnNjcmlwdCIpO2koZXVhLCJwYXJzZU51bSIpO2koWVdhLCJwYXJzZUV4cHJSYW5nZSIpO2koWldhLCJyZXNvbHZlTmFtZSIpO2koWFdhLCJwYXJzZUV4cHJBdG9tIik7aShRV2EsIm5mYSIpO2kodHVhLCJjbXAiKTtpKGF1YSwibnVsbEZyb20iKTtpKEpXYSwiZGZhIik7aShlR2EsImNoZWNrRm9yRGVhZEVuZHMiKTtpKHN1YSwiZGVmYXVsdEF0dHJzIik7aShpdWEsImNvbXB1dGVBdHRycyIpO2kocnVhLCJjaGVja0F0dHJzIik7aShvdWEsImluaXRBdHRycyIpO1JaPWNsYXNzIHN7c3RhdGlje2kodGhpcywiTm9kZVR5cGUiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5uYW1lPWUsdGhpcy5zY2hlbWE9dCx0aGlzLnNwZWM9YSx0aGlzLm1hcmtTZXQ9bnVsbCx0aGlzLmdyb3Vwcz1hLmdyb3VwP2EuZ3JvdXAuc3BsaXQoIiAiKTpbXSx0aGlzLmF0dHJzPW91YShlLGEuYXR0cnMpLHRoaXMuZGVmYXVsdEF0dHJzPXN1YSh0aGlzLmF0dHJzKSx0aGlzLmNvbnRlbnRNYXRjaD1udWxsLHRoaXMuaW5saW5lQ29udGVudD1udWxsLHRoaXMuaXNCbG9jaz0hKGEuaW5saW5lfHxlPT0idGV4dCIpLHRoaXMuaXNUZXh0PWU9PSJ0ZXh0In1nZXQgaXNJbmxpbmUoKXtyZXR1cm4hdGhpcy5pc0Jsb2NrfWdldCBpc1RleHRibG9jaygpe3JldHVybiB0aGlzLmlzQmxvY2smJnRoaXMuaW5saW5lQ29udGVudH1nZXQgaXNMZWFmKCl7cmV0dXJuIHRoaXMuY29udGVudE1hdGNoPT13aC5lbXB0eX1nZXQgaXNBdG9tKCl7cmV0dXJuIHRoaXMuaXNMZWFmfHwhIXRoaXMuc3BlYy5hdG9tfWlzSW5Hcm91cChlKXtyZXR1cm4gdGhpcy5ncm91cHMuaW5kZXhPZihlKT4tMX1nZXQgd2hpdGVzcGFjZSgpe3JldHVybiB0aGlzLnNwZWMud2hpdGVzcGFjZXx8KHRoaXMuc3BlYy5jb2RlPyJwcmUiOiJub3JtYWwiKX1oYXNSZXF1aXJlZEF0dHJzKCl7Zm9yKGxldCBlIGluIHRoaXMuYXR0cnMpaWYodGhpcy5hdHRyc1tlXS5pc1JlcXVpcmVkKXJldHVybiEwO3JldHVybiExfWNvbXBhdGlibGVDb250ZW50KGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLmNvbnRlbnRNYXRjaC5jb21wYXRpYmxlKGUuY29udGVudE1hdGNoKX1jb21wdXRlQXR0cnMoZSl7cmV0dXJuIWUmJnRoaXMuZGVmYXVsdEF0dHJzP3RoaXMuZGVmYXVsdEF0dHJzOml1YSh0aGlzLmF0dHJzLGUpfWNyZWF0ZShlPW51bGwsdCxhKXtpZih0aGlzLmlzVGV4dCl0aHJvdyBuZXcgRXJyb3IoIk5vZGVUeXBlLmNyZWF0ZSBjYW4ndCBjb25zdHJ1Y3QgdGV4dCBub2RlcyIpO3JldHVybiBuZXcgVG4odGhpcyx0aGlzLmNvbXB1dGVBdHRycyhlKSxydC5mcm9tKHQpLGZzLnNldEZyb20oYSkpfWNyZWF0ZUNoZWNrZWQoZT1udWxsLHQsYSl7cmV0dXJuIHQ9cnQuZnJvbSh0KSx0aGlzLmNoZWNrQ29udGVudCh0KSxuZXcgVG4odGhpcyx0aGlzLmNvbXB1dGVBdHRycyhlKSx0LGZzLnNldEZyb20oYSkpfWNyZWF0ZUFuZEZpbGwoZT1udWxsLHQsYSl7aWYoZT10aGlzLmNvbXB1dGVBdHRycyhlKSx0PXJ0LmZyb20odCksdC5zaXplKXtsZXQgbz10aGlzLmNvbnRlbnRNYXRjaC5maWxsQmVmb3JlKHQpO2lmKCFvKXJldHVybiBudWxsO3Q9by5hcHBlbmQodCl9bGV0IHI9dGhpcy5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudCh0KSxuPXImJnIuZmlsbEJlZm9yZShydC5lbXB0eSwhMCk7cmV0dXJuIG4/bmV3IFRuKHRoaXMsZSx0LmFwcGVuZChuKSxmcy5zZXRGcm9tKGEpKTpudWxsfXZhbGlkQ29udGVudChlKXtsZXQgdD10aGlzLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KGUpO2lmKCF0fHwhdC52YWxpZEVuZClyZXR1cm4hMTtmb3IobGV0IGE9MDthPGUuY2hpbGRDb3VudDthKyspaWYoIXRoaXMuYWxsb3dzTWFya3MoZS5jaGlsZChhKS5tYXJrcykpcmV0dXJuITE7cmV0dXJuITB9Y2hlY2tDb250ZW50KGUpe2lmKCF0aGlzLnZhbGlkQ29udGVudChlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCBjb250ZW50IGZvciBub2RlICR7dGhpcy5uYW1lfTogJHtlLnRvU3RyaW5nKCkuc2xpY2UoMCw1MCl9YCl9Y2hlY2tBdHRycyhlKXtydWEodGhpcy5hdHRycyxlLCJub2RlIix0aGlzLm5hbWUpfWFsbG93c01hcmtUeXBlKGUpe3JldHVybiB0aGlzLm1hcmtTZXQ9PW51bGx8fHRoaXMubWFya1NldC5pbmRleE9mKGUpPi0xfWFsbG93c01hcmtzKGUpe2lmKHRoaXMubWFya1NldD09bnVsbClyZXR1cm4hMDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZighdGhpcy5hbGxvd3NNYXJrVHlwZShlW3RdLnR5cGUpKXJldHVybiExO3JldHVybiEwfWFsbG93ZWRNYXJrcyhlKXtpZih0aGlzLm1hcmtTZXQ9PW51bGwpcmV0dXJuIGU7bGV0IHQ7Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspdGhpcy5hbGxvd3NNYXJrVHlwZShlW2FdLnR5cGUpP3QmJnQucHVzaChlW2FdKTp0fHwodD1lLnNsaWNlKDAsYSkpO3JldHVybiB0P3QubGVuZ3RoP3Q6ZnMubm9uZTplfXN0YXRpYyBjb21waWxlKGUsdCl7bGV0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTtlLmZvckVhY2goKG4sbyk9PmFbbl09bmV3IHMobix0LG8pKTtsZXQgcj10LnNwZWMudG9wTm9kZXx8ImRvYyI7aWYoIWFbcl0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlNjaGVtYSBpcyBtaXNzaW5nIGl0cyB0b3Agbm9kZSB0eXBlICgnIityKyInKSIpO2lmKCFhLnRleHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkV2ZXJ5IHNjaGVtYSBuZWVkcyBhICd0ZXh0JyB0eXBlIik7Zm9yKGxldCBuIGluIGEudGV4dC5hdHRycyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlIHRleHQgbm9kZSB0eXBlIHNob3VsZCBub3QgaGF2ZSBhdHRyaWJ1dGVzIik7cmV0dXJuIGF9fTtpKHRHYSwidmFsaWRhdGVUeXBlIik7Z3R0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkF0dHJpYnV0ZSIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLmhhc0RlZmF1bHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsImRlZmF1bHQiKSx0aGlzLmRlZmF1bHQ9YS5kZWZhdWx0LHRoaXMudmFsaWRhdGU9dHlwZW9mIGEudmFsaWRhdGU9PSJzdHJpbmciP3RHYShlLHQsYS52YWxpZGF0ZSk6YS52YWxpZGF0ZX1nZXQgaXNSZXF1aXJlZCgpe3JldHVybiF0aGlzLmhhc0RlZmF1bHR9fSx2dj1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIk1hcmtUeXBlIil9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpcy5uYW1lPWUsdGhpcy5yYW5rPXQsdGhpcy5zY2hlbWE9YSx0aGlzLnNwZWM9cix0aGlzLmF0dHJzPW91YShlLHIuYXR0cnMpLHRoaXMuZXhjbHVkZWQ9bnVsbDtsZXQgbj1zdWEodGhpcy5hdHRycyk7dGhpcy5pbnN0YW5jZT1uP25ldyBmcyh0aGlzLG4pOm51bGx9Y3JlYXRlKGU9bnVsbCl7cmV0dXJuIWUmJnRoaXMuaW5zdGFuY2U/dGhpcy5pbnN0YW5jZTpuZXcgZnModGhpcyxpdWEodGhpcy5hdHRycyxlKSl9c3RhdGljIGNvbXBpbGUoZSx0KXtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpLHI9MDtyZXR1cm4gZS5mb3JFYWNoKChuLG8pPT5hW25dPW5ldyBzKG4scisrLHQsbykpLGF9cmVtb3ZlRnJvbVNldChlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLnR5cGU9PXRoaXMmJihlPWUuc2xpY2UoMCx0KS5jb25jYXQoZS5zbGljZSh0KzEpKSx0LS0pO3JldHVybiBlfWlzSW5TZXQoZSl7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS50eXBlPT10aGlzKXJldHVybiBlW3RdfWNoZWNrQXR0cnMoZSl7cnVhKHRoaXMuYXR0cnMsZSwibWFyayIsdGhpcy5uYW1lKX1leGNsdWRlcyhlKXtyZXR1cm4gdGhpcy5leGNsdWRlZC5pbmRleE9mKGUpPi0xfX0seHY9Y2xhc3N7c3RhdGlje2kodGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3IoZSl7dGhpcy5saW5lYnJlYWtSZXBsYWNlbWVudD1udWxsLHRoaXMuY2FjaGVkPU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IHQ9dGhpcy5zcGVjPXt9O2ZvcihsZXQgciBpbiBlKXRbcl09ZVtyXTt0Lm5vZGVzPWR0dC5mcm9tKGUubm9kZXMpLHQubWFya3M9ZHR0LmZyb20oZS5tYXJrc3x8e30pLHRoaXMubm9kZXM9UlouY29tcGlsZSh0aGlzLnNwZWMubm9kZXMsdGhpcyksdGhpcy5tYXJrcz12di5jb21waWxlKHRoaXMuc3BlYy5tYXJrcyx0aGlzKTtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgciBpbiB0aGlzLm5vZGVzKXtpZihyIGluIHRoaXMubWFya3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IocisiIGNhbiBub3QgYmUgYm90aCBhIG5vZGUgYW5kIGEgbWFyayIpO2xldCBuPXRoaXMubm9kZXNbcl0sbz1uLnNwZWMuY29udGVudHx8IiIsbD1uLnNwZWMubWFya3M7aWYobi5jb250ZW50TWF0Y2g9YVtvXXx8KGFbb109d2gucGFyc2Uobyx0aGlzLm5vZGVzKSksbi5pbmxpbmVDb250ZW50PW4uY29udGVudE1hdGNoLmlubGluZUNvbnRlbnQsbi5zcGVjLmxpbmVicmVha1JlcGxhY2VtZW50KXtpZih0aGlzLmxpbmVicmVha1JlcGxhY2VtZW50KXRocm93IG5ldyBSYW5nZUVycm9yKCJNdWx0aXBsZSBsaW5lYnJlYWsgbm9kZXMgZGVmaW5lZCIpO2lmKCFuLmlzSW5saW5lfHwhbi5pc0xlYWYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkxpbmVicmVhayByZXBsYWNlbWVudCBub2RlcyBtdXN0IGJlIGlubGluZSBsZWFmIG5vZGVzIik7dGhpcy5saW5lYnJlYWtSZXBsYWNlbWVudD1ufW4ubWFya1NldD1sPT0iXyI/bnVsbDpsP251YSh0aGlzLGwuc3BsaXQoIiAiKSk6bD09IiJ8fCFuLmlubGluZUNvbnRlbnQ/W106bnVsbH1mb3IobGV0IHIgaW4gdGhpcy5tYXJrcyl7bGV0IG49dGhpcy5tYXJrc1tyXSxvPW4uc3BlYy5leGNsdWRlcztuLmV4Y2x1ZGVkPW89PW51bGw/W25dOm89PSIiP1tdOm51YSh0aGlzLG8uc3BsaXQoIiAiKSl9dGhpcy5ub2RlRnJvbUpTT049cj0+VG4uZnJvbUpTT04odGhpcyxyKSx0aGlzLm1hcmtGcm9tSlNPTj1yPT5mcy5mcm9tSlNPTih0aGlzLHIpLHRoaXMudG9wTm9kZVR5cGU9dGhpcy5ub2Rlc1t0aGlzLnNwZWMudG9wTm9kZXx8ImRvYyJdLHRoaXMuY2FjaGVkLndyYXBwaW5ncz1PYmplY3QuY3JlYXRlKG51bGwpfW5vZGUoZSx0PW51bGwsYSxyKXtpZih0eXBlb2YgZT09InN0cmluZyIpZT10aGlzLm5vZGVUeXBlKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFJaKXtpZihlLnNjaGVtYSE9dGhpcyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm9kZSB0eXBlIGZyb20gZGlmZmVyZW50IHNjaGVtYSB1c2VkICgiK2UubmFtZSsiKSIpfWVsc2UgdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgbm9kZSB0eXBlOiAiK2UpO3JldHVybiBlLmNyZWF0ZUNoZWNrZWQodCxhLHIpfXRleHQoZSx0KXtsZXQgYT10aGlzLm5vZGVzLnRleHQ7cmV0dXJuIG5ldyBmdHQoYSxhLmRlZmF1bHRBdHRycyxlLGZzLnNldEZyb20odCkpfW1hcmsoZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciJiYoZT10aGlzLm1hcmtzW2VdKSxlLmNyZWF0ZSh0KX1ub2RlVHlwZShlKXtsZXQgdD10aGlzLm5vZGVzW2VdO2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJVbmtub3duIG5vZGUgdHlwZTogIitlKTtyZXR1cm4gdH19O2kobnVhLCJnYXRoZXJNYXJrcyIpO2koYUdhLCJpc1RhZ1J1bGUiKTtpKHNHYSwiaXNTdHlsZVJ1bGUiKTtlMj1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIkRPTVBhcnNlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zY2hlbWE9ZSx0aGlzLnJ1bGVzPXQsdGhpcy50YWdzPVtdLHRoaXMuc3R5bGVzPVtdO2xldCBhPXRoaXMubWF0Y2hlZFN0eWxlcz1bXTt0LmZvckVhY2gocj0+e2lmKGFHYShyKSl0aGlzLnRhZ3MucHVzaChyKTtlbHNlIGlmKHNHYShyKSl7bGV0IG49L1tePV0qLy5leGVjKHIuc3R5bGUpWzBdO2EuaW5kZXhPZihuKTwwJiZhLnB1c2gobiksdGhpcy5zdHlsZXMucHVzaChyKX19KSx0aGlzLm5vcm1hbGl6ZUxpc3RzPSF0aGlzLnRhZ3Muc29tZShyPT57aWYoIS9eKHVsfG9sKVxiLy50ZXN0KHIudGFnKXx8IXIubm9kZSlyZXR1cm4hMTtsZXQgbj1lLm5vZGVzW3Iubm9kZV07cmV0dXJuIG4uY29udGVudE1hdGNoLm1hdGNoVHlwZShuKX0pfXBhcnNlKGUsdD17fSl7bGV0IGE9bmV3IEJuZSh0aGlzLHQsITEpO3JldHVybiBhLmFkZEFsbChlLGZzLm5vbmUsdC5mcm9tLHQudG8pLGEuZmluaXNoKCl9cGFyc2VTbGljZShlLHQ9e30pe2xldCBhPW5ldyBCbmUodGhpcyx0LCEwKTtyZXR1cm4gYS5hZGRBbGwoZSxmcy5ub25lLHQuZnJvbSx0LnRvKSxfdC5tYXhPcGVuKGEuZmluaXNoKCkpfW1hdGNoVGFnKGUsdCxhKXtmb3IobGV0IHI9YT90aGlzLnRhZ3MuaW5kZXhPZihhKSsxOjA7cjx0aGlzLnRhZ3MubGVuZ3RoO3IrKyl7bGV0IG49dGhpcy50YWdzW3JdO2lmKG9HYShlLG4udGFnKSYmKG4ubmFtZXNwYWNlPT09dm9pZCAwfHxlLm5hbWVzcGFjZVVSST09bi5uYW1lc3BhY2UpJiYoIW4uY29udGV4dHx8dC5tYXRjaGVzQ29udGV4dChuLmNvbnRleHQpKSl7aWYobi5nZXRBdHRycyl7bGV0IG89bi5nZXRBdHRycyhlKTtpZihvPT09ITEpY29udGludWU7bi5hdHRycz1vfHx2b2lkIDB9cmV0dXJuIG59fX1tYXRjaFN0eWxlKGUsdCxhLHIpe2ZvcihsZXQgbj1yP3RoaXMuc3R5bGVzLmluZGV4T2YocikrMTowO248dGhpcy5zdHlsZXMubGVuZ3RoO24rKyl7bGV0IG89dGhpcy5zdHlsZXNbbl0sbD1vLnN0eWxlO2lmKCEobC5pbmRleE9mKGUpIT0wfHxvLmNvbnRleHQmJiFhLm1hdGNoZXNDb250ZXh0KG8uY29udGV4dCl8fGwubGVuZ3RoPmUubGVuZ3RoJiYobC5jaGFyQ29kZUF0KGUubGVuZ3RoKSE9NjF8fGwuc2xpY2UoZS5sZW5ndGgrMSkhPXQpKSl7aWYoby5nZXRBdHRycyl7bGV0IHA9by5nZXRBdHRycyh0KTtpZihwPT09ITEpY29udGludWU7by5hdHRycz1wfHx2b2lkIDB9cmV0dXJuIG99fX1zdGF0aWMgc2NoZW1hUnVsZXMoZSl7bGV0IHQ9W107ZnVuY3Rpb24gYShyKXtsZXQgbj1yLnByaW9yaXR5PT1udWxsPzUwOnIucHJpb3JpdHksbz0wO2Zvcig7bzx0Lmxlbmd0aDtvKyspe2xldCBsPXRbb107aWYoKGwucHJpb3JpdHk9PW51bGw/NTA6bC5wcmlvcml0eSk8bilicmVha310LnNwbGljZShvLDAscil9aShhLCJpbnNlcnQiKTtmb3IobGV0IHIgaW4gZS5tYXJrcyl7bGV0IG49ZS5tYXJrc1tyXS5zcGVjLnBhcnNlRE9NO24mJm4uZm9yRWFjaChvPT57YShvPXV1YShvKSksby5tYXJrfHxvLmlnbm9yZXx8by5jbGVhck1hcmt8fChvLm1hcms9cil9KX1mb3IobGV0IHIgaW4gZS5ub2Rlcyl7bGV0IG49ZS5ub2Rlc1tyXS5zcGVjLnBhcnNlRE9NO24mJm4uZm9yRWFjaChvPT57YShvPXV1YShvKSksby5ub2RlfHxvLmlnbm9yZXx8by5tYXJrfHwoby5ub2RlPXIpfSl9cmV0dXJuIHR9c3RhdGljIGZyb21TY2hlbWEoZSl7cmV0dXJuIGUuY2FjaGVkLmRvbVBhcnNlcnx8KGUuY2FjaGVkLmRvbVBhcnNlcj1uZXcgcyhlLHMuc2NoZW1hUnVsZXMoZSkpKX19LGx1YT17YWRkcmVzczohMCxhcnRpY2xlOiEwLGFzaWRlOiEwLGJsb2NrcXVvdGU6ITAsY2FudmFzOiEwLGRkOiEwLGRpdjohMCxkbDohMCxmaWVsZHNldDohMCxmaWdjYXB0aW9uOiEwLGZpZ3VyZTohMCxmb290ZXI6ITAsZm9ybTohMCxoMTohMCxoMjohMCxoMzohMCxoNDohMCxoNTohMCxoNjohMCxoZWFkZXI6ITAsaGdyb3VwOiEwLGhyOiEwLGxpOiEwLG5vc2NyaXB0OiEwLG9sOiEwLG91dHB1dDohMCxwOiEwLHByZTohMCxzZWN0aW9uOiEwLHRhYmxlOiEwLHRmb290OiEwLHVsOiEwfSxpR2E9e2hlYWQ6ITAsbm9zY3JpcHQ6ITAsb2JqZWN0OiEwLHNjcmlwdDohMCxzdHlsZTohMCx0aXRsZTohMH0sY3VhPXtvbDohMCx1bDohMH0sT1o9MSxidHQ9MixGWj00O2koZHVhLCJ3c09wdGlvbnNGb3IiKTtidj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOb2RlQ29udGV4dCIpfWNvbnN0cnVjdG9yKGUsdCxhLHIsbixvKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXQsdGhpcy5tYXJrcz1hLHRoaXMuc29saWQ9cix0aGlzLm9wdGlvbnM9byx0aGlzLmNvbnRlbnQ9W10sdGhpcy5hY3RpdmVNYXJrcz1mcy5ub25lLHRoaXMubWF0Y2g9bnx8KG8mRlo/bnVsbDplLmNvbnRlbnRNYXRjaCl9ZmluZFdyYXBwaW5nKGUpe2lmKCF0aGlzLm1hdGNoKXtpZighdGhpcy50eXBlKXJldHVybltdO2xldCB0PXRoaXMudHlwZS5jb250ZW50TWF0Y2guZmlsbEJlZm9yZShydC5mcm9tKGUpKTtpZih0KXRoaXMubWF0Y2g9dGhpcy50eXBlLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KHQpO2Vsc2V7bGV0IGE9dGhpcy50eXBlLmNvbnRlbnRNYXRjaCxyO3JldHVybihyPWEuZmluZFdyYXBwaW5nKGUudHlwZSkpPyh0aGlzLm1hdGNoPWEscik6bnVsbH19cmV0dXJuIHRoaXMubWF0Y2guZmluZFdyYXBwaW5nKGUudHlwZSl9ZmluaXNoKGUpe2lmKCEodGhpcy5vcHRpb25zJk9aKSl7bGV0IGE9dGhpcy5jb250ZW50W3RoaXMuY29udGVudC5sZW5ndGgtMV0scjtpZihhJiZhLmlzVGV4dCYmKHI9L1sgXHRcclxuXHUwMDBjXSskLy5leGVjKGEudGV4dCkpKXtsZXQgbj1hO2EudGV4dC5sZW5ndGg9PXJbMF0ubGVuZ3RoP3RoaXMuY29udGVudC5wb3AoKTp0aGlzLmNvbnRlbnRbdGhpcy5jb250ZW50Lmxlbmd0aC0xXT1uLndpdGhUZXh0KG4udGV4dC5zbGljZSgwLG4udGV4dC5sZW5ndGgtclswXS5sZW5ndGgpKX19bGV0IHQ9cnQuZnJvbSh0aGlzLmNvbnRlbnQpO3JldHVybiFlJiZ0aGlzLm1hdGNoJiYodD10LmFwcGVuZCh0aGlzLm1hdGNoLmZpbGxCZWZvcmUocnQuZW1wdHksITApKSksdGhpcy50eXBlP3RoaXMudHlwZS5jcmVhdGUodGhpcy5hdHRycyx0LHRoaXMubWFya3MpOnR9aW5saW5lQ29udGV4dChlKXtyZXR1cm4gdGhpcy50eXBlP3RoaXMudHlwZS5pbmxpbmVDb250ZW50OnRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50WzBdLmlzSW5saW5lOmUucGFyZW50Tm9kZSYmIWx1YS5oYXNPd25Qcm9wZXJ0eShlLnBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl9fSxCbmU9Y2xhc3N7c3RhdGlje2kodGhpcywiUGFyc2VDb250ZXh0Iil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMucGFyc2VyPWUsdGhpcy5vcHRpb25zPXQsdGhpcy5pc09wZW49YSx0aGlzLm9wZW49MCx0aGlzLmxvY2FsUHJlc2VydmVXUz0hMTtsZXQgcj10LnRvcE5vZGUsbixvPWR1YShudWxsLHQucHJlc2VydmVXaGl0ZXNwYWNlLDApfChhP0ZaOjApO3I/bj1uZXcgYnYoci50eXBlLHIuYXR0cnMsZnMubm9uZSwhMCx0LnRvcE1hdGNofHxyLnR5cGUuY29udGVudE1hdGNoLG8pOmE/bj1uZXcgYnYobnVsbCxudWxsLGZzLm5vbmUsITAsbnVsbCxvKTpuPW5ldyBidihlLnNjaGVtYS50b3BOb2RlVHlwZSxudWxsLGZzLm5vbmUsITAsbnVsbCxvKSx0aGlzLm5vZGVzPVtuXSx0aGlzLmZpbmQ9dC5maW5kUG9zaXRpb25zLHRoaXMubmVlZHNCbG9jaz0hMX1nZXQgdG9wKCl7cmV0dXJuIHRoaXMubm9kZXNbdGhpcy5vcGVuXX1hZGRET00oZSx0KXtlLm5vZGVUeXBlPT0zP3RoaXMuYWRkVGV4dE5vZGUoZSx0KTplLm5vZGVUeXBlPT0xJiZ0aGlzLmFkZEVsZW1lbnQoZSx0KX1hZGRUZXh0Tm9kZShlLHQpe2xldCBhPWUubm9kZVZhbHVlLHI9dGhpcy50b3Asbj1yLm9wdGlvbnMmYnR0PyJmdWxsIjp0aGlzLmxvY2FsUHJlc2VydmVXU3x8KHIub3B0aW9ucyZPWik+MCx7c2NoZW1hOm99PXRoaXMucGFyc2VyO2lmKG49PT0iZnVsbCJ8fHIuaW5saW5lQ29udGV4dChlKXx8L1teIFx0XHJcblx1MDAwY10vLnRlc3QoYSkpe2lmKG4paWYobj09PSJmdWxsIilhPWEucmVwbGFjZSgvXHJcbj8vZyxgCmApO2Vsc2UgaWYoby5saW5lYnJlYWtSZXBsYWNlbWVudCYmL1tcclxuXS8udGVzdChhKSYmdGhpcy50b3AuZmluZFdyYXBwaW5nKG8ubGluZWJyZWFrUmVwbGFjZW1lbnQuY3JlYXRlKCkpKXtsZXQgbD1hLnNwbGl0KC9ccj9cbnxcci8pO2ZvcihsZXQgcD0wO3A8bC5sZW5ndGg7cCsrKXAmJnRoaXMuaW5zZXJ0Tm9kZShvLmxpbmVicmVha1JlcGxhY2VtZW50LmNyZWF0ZSgpLHQsITApLGxbcF0mJnRoaXMuaW5zZXJ0Tm9kZShvLnRleHQobFtwXSksdCwhL1xTLy50ZXN0KGxbcF0pKTthPSIifWVsc2UgYT1hLnJlcGxhY2UoL1xyP1xufFxyL2csIiAiKTtlbHNlIGlmKGE9YS5yZXBsYWNlKC9bIFx0XHJcblx1MDAwY10rL2csIiAiKSwvXlsgXHRcclxuXHUwMDBjXS8udGVzdChhKSYmdGhpcy5vcGVuPT10aGlzLm5vZGVzLmxlbmd0aC0xKXtsZXQgbD1yLmNvbnRlbnRbci5jb250ZW50Lmxlbmd0aC0xXSxwPWUucHJldmlvdXNTaWJsaW5nOyghbHx8cCYmcC5ub2RlTmFtZT09IkJSInx8bC5pc1RleHQmJi9bIFx0XHJcblx1MDAwY10kLy50ZXN0KGwudGV4dCkpJiYoYT1hLnNsaWNlKDEpKX1hJiZ0aGlzLmluc2VydE5vZGUoby50ZXh0KGEpLHQsIS9cUy8udGVzdChhKSksdGhpcy5maW5kSW5UZXh0KGUpfWVsc2UgdGhpcy5maW5kSW5zaWRlKGUpfWFkZEVsZW1lbnQoZSx0LGEpe2xldCByPXRoaXMubG9jYWxQcmVzZXJ2ZVdTLG49dGhpcy50b3A7KGUudGFnTmFtZT09IlBSRSJ8fC9wcmUvLnRlc3QoZS5zdHlsZSYmZS5zdHlsZS53aGl0ZVNwYWNlKSkmJih0aGlzLmxvY2FsUHJlc2VydmVXUz0hMCk7bGV0IG89ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGw7Y3VhLmhhc093blByb3BlcnR5KG8pJiZ0aGlzLnBhcnNlci5ub3JtYWxpemVMaXN0cyYmckdhKGUpO2xldCBwPXRoaXMub3B0aW9ucy5ydWxlRnJvbU5vZGUmJnRoaXMub3B0aW9ucy5ydWxlRnJvbU5vZGUoZSl8fChsPXRoaXMucGFyc2VyLm1hdGNoVGFnKGUsdGhpcyxhKSk7ZTppZihwP3AuaWdub3JlOmlHYS5oYXNPd25Qcm9wZXJ0eShvKSl0aGlzLmZpbmRJbnNpZGUoZSksdGhpcy5pZ25vcmVGYWxsYmFjayhlLHQpO2Vsc2UgaWYoIXB8fHAuc2tpcHx8cC5jbG9zZVBhcmVudCl7cCYmcC5jbG9zZVBhcmVudD90aGlzLm9wZW49TWF0aC5tYXgoMCx0aGlzLm9wZW4tMSk6cCYmcC5za2lwLm5vZGVUeXBlJiYoZT1wLnNraXApO2xldCBkLHU9dGhpcy5uZWVkc0Jsb2NrO2lmKGx1YS5oYXNPd25Qcm9wZXJ0eShvKSluLmNvbnRlbnQubGVuZ3RoJiZuLmNvbnRlbnRbMF0uaXNJbmxpbmUmJnRoaXMub3BlbiYmKHRoaXMub3Blbi0tLG49dGhpcy50b3ApLGQ9ITAsbi50eXBlfHwodGhpcy5uZWVkc0Jsb2NrPSEwKTtlbHNlIGlmKCFlLmZpcnN0Q2hpbGQpe3RoaXMubGVhZkZhbGxiYWNrKGUsdCk7YnJlYWsgZX1sZXQgYz1wJiZwLnNraXA/dDp0aGlzLnJlYWRTdHlsZXMoZSx0KTtjJiZ0aGlzLmFkZEFsbChlLGMpLGQmJnRoaXMuc3luYyhuKSx0aGlzLm5lZWRzQmxvY2s9dX1lbHNle2xldCBkPXRoaXMucmVhZFN0eWxlcyhlLHQpO2QmJnRoaXMuYWRkRWxlbWVudEJ5UnVsZShlLHAsZCxwLmNvbnN1bWluZz09PSExP2w6dm9pZCAwKX10aGlzLmxvY2FsUHJlc2VydmVXUz1yfWxlYWZGYWxsYmFjayhlLHQpe2Uubm9kZU5hbWU9PSJCUiImJnRoaXMudG9wLnR5cGUmJnRoaXMudG9wLnR5cGUuaW5saW5lQ29udGVudCYmdGhpcy5hZGRUZXh0Tm9kZShlLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYApgKSx0KX1pZ25vcmVGYWxsYmFjayhlLHQpe2Uubm9kZU5hbWU9PSJCUiImJighdGhpcy50b3AudHlwZXx8IXRoaXMudG9wLnR5cGUuaW5saW5lQ29udGVudCkmJnRoaXMuZmluZFBsYWNlKHRoaXMucGFyc2VyLnNjaGVtYS50ZXh0KCItIiksdCwhMCl9cmVhZFN0eWxlcyhlLHQpe2xldCBhPWUuc3R5bGU7aWYoYSYmYS5sZW5ndGgpZm9yKGxldCByPTA7cjx0aGlzLnBhcnNlci5tYXRjaGVkU3R5bGVzLmxlbmd0aDtyKyspe2xldCBuPXRoaXMucGFyc2VyLm1hdGNoZWRTdHlsZXNbcl0sbz1hLmdldFByb3BlcnR5VmFsdWUobik7aWYobylmb3IobGV0IGw9dm9pZCAwOzspe2xldCBwPXRoaXMucGFyc2VyLm1hdGNoU3R5bGUobixvLHRoaXMsbCk7aWYoIXApYnJlYWs7aWYocC5pZ25vcmUpcmV0dXJuIG51bGw7aWYocC5jbGVhck1hcms/dD10LmZpbHRlcihkPT4hcC5jbGVhck1hcmsoZCkpOnQ9dC5jb25jYXQodGhpcy5wYXJzZXIuc2NoZW1hLm1hcmtzW3AubWFya10uY3JlYXRlKHAuYXR0cnMpKSxwLmNvbnN1bWluZz09PSExKWw9cDtlbHNlIGJyZWFrfX1yZXR1cm4gdH1hZGRFbGVtZW50QnlSdWxlKGUsdCxhLHIpe2xldCBuLG87aWYodC5ub2RlKWlmKG89dGhpcy5wYXJzZXIuc2NoZW1hLm5vZGVzW3Qubm9kZV0sby5pc0xlYWYpdGhpcy5pbnNlcnROb2RlKG8uY3JlYXRlKHQuYXR0cnMpLGEsZS5ub2RlTmFtZT09IkJSIil8fHRoaXMubGVhZkZhbGxiYWNrKGUsYSk7ZWxzZXtsZXQgcD10aGlzLmVudGVyKG8sdC5hdHRyc3x8bnVsbCxhLHQucHJlc2VydmVXaGl0ZXNwYWNlKTtwJiYobj0hMCxhPXApfWVsc2V7bGV0IHA9dGhpcy5wYXJzZXIuc2NoZW1hLm1hcmtzW3QubWFya107YT1hLmNvbmNhdChwLmNyZWF0ZSh0LmF0dHJzKSl9bGV0IGw9dGhpcy50b3A7aWYobyYmby5pc0xlYWYpdGhpcy5maW5kSW5zaWRlKGUpO2Vsc2UgaWYocil0aGlzLmFkZEVsZW1lbnQoZSxhLHIpO2Vsc2UgaWYodC5nZXRDb250ZW50KXRoaXMuZmluZEluc2lkZShlKSx0LmdldENvbnRlbnQoZSx0aGlzLnBhcnNlci5zY2hlbWEpLmZvckVhY2gocD0+dGhpcy5pbnNlcnROb2RlKHAsYSwhMSkpO2Vsc2V7bGV0IHA9ZTt0eXBlb2YgdC5jb250ZW50RWxlbWVudD09InN0cmluZyI/cD1lLnF1ZXJ5U2VsZWN0b3IodC5jb250ZW50RWxlbWVudCk6dHlwZW9mIHQuY29udGVudEVsZW1lbnQ9PSJmdW5jdGlvbiI/cD10LmNvbnRlbnRFbGVtZW50KGUpOnQuY29udGVudEVsZW1lbnQmJihwPXQuY29udGVudEVsZW1lbnQpLHRoaXMuZmluZEFyb3VuZChlLHAsITApLHRoaXMuYWRkQWxsKHAsYSksdGhpcy5maW5kQXJvdW5kKGUscCwhMSl9biYmdGhpcy5zeW5jKGwpJiZ0aGlzLm9wZW4tLX1hZGRBbGwoZSx0LGEscil7bGV0IG49YXx8MDtmb3IobGV0IG89YT9lLmNoaWxkTm9kZXNbYV06ZS5maXJzdENoaWxkLGw9cj09bnVsbD9udWxsOmUuY2hpbGROb2Rlc1tyXTtvIT1sO289by5uZXh0U2libGluZywrK24pdGhpcy5maW5kQXRQb2ludChlLG4pLHRoaXMuYWRkRE9NKG8sdCk7dGhpcy5maW5kQXRQb2ludChlLG4pfWZpbmRQbGFjZShlLHQsYSl7bGV0IHIsbjtmb3IobGV0IG89dGhpcy5vcGVuLGw9MDtvPj0wO28tLSl7bGV0IHA9dGhpcy5ub2Rlc1tvXSxkPXAuZmluZFdyYXBwaW5nKGUpO2lmKGQmJighcnx8ci5sZW5ndGg+ZC5sZW5ndGgrbCkmJihyPWQsbj1wLCFkLmxlbmd0aCkpYnJlYWs7aWYocC5zb2xpZCl7aWYoYSlicmVhaztsKz0yfX1pZighcilyZXR1cm4gbnVsbDt0aGlzLnN5bmMobik7Zm9yKGxldCBvPTA7bzxyLmxlbmd0aDtvKyspdD10aGlzLmVudGVySW5uZXIocltvXSxudWxsLHQsITEpO3JldHVybiB0fWluc2VydE5vZGUoZSx0LGEpe2lmKGUuaXNJbmxpbmUmJnRoaXMubmVlZHNCbG9jayYmIXRoaXMudG9wLnR5cGUpe2xldCBuPXRoaXMudGV4dGJsb2NrRnJvbUNvbnRleHQoKTtuJiYodD10aGlzLmVudGVySW5uZXIobixudWxsLHQpKX1sZXQgcj10aGlzLmZpbmRQbGFjZShlLHQsYSk7aWYocil7dGhpcy5jbG9zZUV4dHJhKCk7bGV0IG49dGhpcy50b3A7bi5tYXRjaCYmKG4ubWF0Y2g9bi5tYXRjaC5tYXRjaFR5cGUoZS50eXBlKSk7bGV0IG89ZnMubm9uZTtmb3IobGV0IGwgb2Ygci5jb25jYXQoZS5tYXJrcykpKG4udHlwZT9uLnR5cGUuYWxsb3dzTWFya1R5cGUobC50eXBlKTpwdWEobC50eXBlLGUudHlwZSkpJiYobz1sLmFkZFRvU2V0KG8pKTtyZXR1cm4gbi5jb250ZW50LnB1c2goZS5tYXJrKG8pKSwhMH1yZXR1cm4hMX1lbnRlcihlLHQsYSxyKXtsZXQgbj10aGlzLmZpbmRQbGFjZShlLmNyZWF0ZSh0KSxhLCExKTtyZXR1cm4gbiYmKG49dGhpcy5lbnRlcklubmVyKGUsdCxhLCEwLHIpKSxufWVudGVySW5uZXIoZSx0LGEscj0hMSxuKXt0aGlzLmNsb3NlRXh0cmEoKTtsZXQgbz10aGlzLnRvcDtvLm1hdGNoPW8ubWF0Y2gmJm8ubWF0Y2gubWF0Y2hUeXBlKGUpO2xldCBsPWR1YShlLG4sby5vcHRpb25zKTtvLm9wdGlvbnMmRlomJm8uY29udGVudC5sZW5ndGg9PTAmJihsfD1GWik7bGV0IHA9ZnMubm9uZTtyZXR1cm4gYT1hLmZpbHRlcihkPT4oby50eXBlP28udHlwZS5hbGxvd3NNYXJrVHlwZShkLnR5cGUpOnB1YShkLnR5cGUsZSkpPyhwPWQuYWRkVG9TZXQocCksITEpOiEwKSx0aGlzLm5vZGVzLnB1c2gobmV3IGJ2KGUsdCxwLHIsbnVsbCxsKSksdGhpcy5vcGVuKyssYX1jbG9zZUV4dHJhKGU9ITEpe2xldCB0PXRoaXMubm9kZXMubGVuZ3RoLTE7aWYodD50aGlzLm9wZW4pe2Zvcig7dD50aGlzLm9wZW47dC0tKXRoaXMubm9kZXNbdC0xXS5jb250ZW50LnB1c2godGhpcy5ub2Rlc1t0XS5maW5pc2goZSkpO3RoaXMubm9kZXMubGVuZ3RoPXRoaXMub3BlbisxfX1maW5pc2goKXtyZXR1cm4gdGhpcy5vcGVuPTAsdGhpcy5jbG9zZUV4dHJhKHRoaXMuaXNPcGVuKSx0aGlzLm5vZGVzWzBdLmZpbmlzaCghISh0aGlzLmlzT3Blbnx8dGhpcy5vcHRpb25zLnRvcE9wZW4pKX1zeW5jKGUpe2ZvcihsZXQgdD10aGlzLm9wZW47dD49MDt0LS0pe2lmKHRoaXMubm9kZXNbdF09PWUpcmV0dXJuIHRoaXMub3Blbj10LCEwO3RoaXMubG9jYWxQcmVzZXJ2ZVdTJiYodGhpcy5ub2Rlc1t0XS5vcHRpb25zfD1PWil9cmV0dXJuITF9Z2V0IGN1cnJlbnRQb3MoKXt0aGlzLmNsb3NlRXh0cmEoKTtsZXQgZT0wO2ZvcihsZXQgdD10aGlzLm9wZW47dD49MDt0LS0pe2xldCBhPXRoaXMubm9kZXNbdF0uY29udGVudDtmb3IobGV0IHI9YS5sZW5ndGgtMTtyPj0wO3ItLSllKz1hW3JdLm5vZGVTaXplO3QmJmUrK31yZXR1cm4gZX1maW5kQXRQb2ludChlLHQpe2lmKHRoaXMuZmluZClmb3IobGV0IGE9MDthPHRoaXMuZmluZC5sZW5ndGg7YSsrKXRoaXMuZmluZFthXS5ub2RlPT1lJiZ0aGlzLmZpbmRbYV0ub2Zmc2V0PT10JiYodGhpcy5maW5kW2FdLnBvcz10aGlzLmN1cnJlbnRQb3MpfWZpbmRJbnNpZGUoZSl7aWYodGhpcy5maW5kKWZvcihsZXQgdD0wO3Q8dGhpcy5maW5kLmxlbmd0aDt0KyspdGhpcy5maW5kW3RdLnBvcz09bnVsbCYmZS5ub2RlVHlwZT09MSYmZS5jb250YWlucyh0aGlzLmZpbmRbdF0ubm9kZSkmJih0aGlzLmZpbmRbdF0ucG9zPXRoaXMuY3VycmVudFBvcyl9ZmluZEFyb3VuZChlLHQsYSl7aWYoZSE9dCYmdGhpcy5maW5kKWZvcihsZXQgcj0wO3I8dGhpcy5maW5kLmxlbmd0aDtyKyspdGhpcy5maW5kW3JdLnBvcz09bnVsbCYmZS5ub2RlVHlwZT09MSYmZS5jb250YWlucyh0aGlzLmZpbmRbcl0ubm9kZSkmJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcy5maW5kW3JdLm5vZGUpJihhPzI6NCkmJih0aGlzLmZpbmRbcl0ucG9zPXRoaXMuY3VycmVudFBvcyl9ZmluZEluVGV4dChlKXtpZih0aGlzLmZpbmQpZm9yKGxldCB0PTA7dDx0aGlzLmZpbmQubGVuZ3RoO3QrKyl0aGlzLmZpbmRbdF0ubm9kZT09ZSYmKHRoaXMuZmluZFt0XS5wb3M9dGhpcy5jdXJyZW50UG9zLShlLm5vZGVWYWx1ZS5sZW5ndGgtdGhpcy5maW5kW3RdLm9mZnNldCkpfW1hdGNoZXNDb250ZXh0KGUpe2lmKGUuaW5kZXhPZigifCIpPi0xKXJldHVybiBlLnNwbGl0KC9ccypcfFxzKi8pLnNvbWUodGhpcy5tYXRjaGVzQ29udGV4dCx0aGlzKTtsZXQgdD1lLnNwbGl0KCIvIiksYT10aGlzLm9wdGlvbnMuY29udGV4dCxyPSF0aGlzLmlzT3BlbiYmKCFhfHxhLnBhcmVudC50eXBlPT10aGlzLm5vZGVzWzBdLnR5cGUpLG49LShhP2EuZGVwdGgrMTowKSsocj8wOjEpLG89aSgobCxwKT0+e2Zvcig7bD49MDtsLS0pe2xldCBkPXRbbF07aWYoZD09IiIpe2lmKGw9PXQubGVuZ3RoLTF8fGw9PTApY29udGludWU7Zm9yKDtwPj1uO3AtLSlpZihvKGwtMSxwKSlyZXR1cm4hMDtyZXR1cm4hMX1lbHNle2xldCB1PXA+MHx8cD09MCYmcj90aGlzLm5vZGVzW3BdLnR5cGU6YSYmcD49bj9hLm5vZGUocC1uKS50eXBlOm51bGw7aWYoIXV8fHUubmFtZSE9ZCYmIXUuaXNJbkdyb3VwKGQpKXJldHVybiExO3AtLX19cmV0dXJuITB9LCJtYXRjaCIpO3JldHVybiBvKHQubGVuZ3RoLTEsdGhpcy5vcGVuKX10ZXh0YmxvY2tGcm9tQ29udGV4dCgpe2xldCBlPXRoaXMub3B0aW9ucy5jb250ZXh0O2lmKGUpZm9yKGxldCB0PWUuZGVwdGg7dD49MDt0LS0pe2xldCBhPWUubm9kZSh0KS5jb250ZW50TWF0Y2hBdChlLmluZGV4QWZ0ZXIodCkpLmRlZmF1bHRUeXBlO2lmKGEmJmEuaXNUZXh0YmxvY2smJmEuZGVmYXVsdEF0dHJzKXJldHVybiBhfWZvcihsZXQgdCBpbiB0aGlzLnBhcnNlci5zY2hlbWEubm9kZXMpe2xldCBhPXRoaXMucGFyc2VyLnNjaGVtYS5ub2Rlc1t0XTtpZihhLmlzVGV4dGJsb2NrJiZhLmRlZmF1bHRBdHRycylyZXR1cm4gYX19fTtpKHJHYSwibm9ybWFsaXplTGlzdCIpO2kob0dhLCJtYXRjaGVzIik7aSh1dWEsImNvcHkiKTtpKHB1YSwibWFya01heUFwcGx5Iik7TGQ9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJET01TZXJpYWxpemVyIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLm5vZGVzPWUsdGhpcy5tYXJrcz10fXNlcmlhbGl6ZUZyYWdtZW50KGUsdD17fSxhKXthfHwoYT12dHQodCkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKTtsZXQgcj1hLG49W107cmV0dXJuIGUuZm9yRWFjaChvPT57aWYobi5sZW5ndGh8fG8ubWFya3MubGVuZ3RoKXtsZXQgbD0wLHA9MDtmb3IoO2w8bi5sZW5ndGgmJnA8by5tYXJrcy5sZW5ndGg7KXtsZXQgZD1vLm1hcmtzW3BdO2lmKCF0aGlzLm1hcmtzW2QudHlwZS5uYW1lXSl7cCsrO2NvbnRpbnVlfWlmKCFkLmVxKG5bbF1bMF0pfHxkLnR5cGUuc3BlYy5zcGFubmluZz09PSExKWJyZWFrO2wrKyxwKyt9Zm9yKDtsPG4ubGVuZ3RoOylyPW4ucG9wKClbMV07Zm9yKDtwPG8ubWFya3MubGVuZ3RoOyl7bGV0IGQ9by5tYXJrc1twKytdLHU9dGhpcy5zZXJpYWxpemVNYXJrKGQsby5pc0lubGluZSx0KTt1JiYobi5wdXNoKFtkLHJdKSxyLmFwcGVuZENoaWxkKHUuZG9tKSxyPXUuY29udGVudERPTXx8dS5kb20pfX1yLmFwcGVuZENoaWxkKHRoaXMuc2VyaWFsaXplTm9kZUlubmVyKG8sdCkpfSksYX1zZXJpYWxpemVOb2RlSW5uZXIoZSx0KXtsZXR7ZG9tOmEsY29udGVudERPTTpyfT1IbmUodnR0KHQpLHRoaXMubm9kZXNbZS50eXBlLm5hbWVdKGUpLG51bGwsZS5hdHRycyk7aWYocil7aWYoZS5pc0xlYWYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNvbnRlbnQgaG9sZSBub3QgYWxsb3dlZCBpbiBhIGxlYWYgbm9kZSBzcGVjIik7dGhpcy5zZXJpYWxpemVGcmFnbWVudChlLmNvbnRlbnQsdCxyKX1yZXR1cm4gYX1zZXJpYWxpemVOb2RlKGUsdD17fSl7bGV0IGE9dGhpcy5zZXJpYWxpemVOb2RlSW5uZXIoZSx0KTtmb3IobGV0IHI9ZS5tYXJrcy5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IG49dGhpcy5zZXJpYWxpemVNYXJrKGUubWFya3Nbcl0sZS5pc0lubGluZSx0KTtuJiYoKG4uY29udGVudERPTXx8bi5kb20pLmFwcGVuZENoaWxkKGEpLGE9bi5kb20pfXJldHVybiBhfXNlcmlhbGl6ZU1hcmsoZSx0LGE9e30pe2xldCByPXRoaXMubWFya3NbZS50eXBlLm5hbWVdO3JldHVybiByJiZIbmUodnR0KGEpLHIoZSx0KSxudWxsLGUuYXR0cnMpfXN0YXRpYyByZW5kZXJTcGVjKGUsdCxhPW51bGwscil7cmV0dXJuIEhuZShlLHQsYSxyKX1zdGF0aWMgZnJvbVNjaGVtYShlKXtyZXR1cm4gZS5jYWNoZWQuZG9tU2VyaWFsaXplcnx8KGUuY2FjaGVkLmRvbVNlcmlhbGl6ZXI9bmV3IHModGhpcy5ub2Rlc0Zyb21TY2hlbWEoZSksdGhpcy5tYXJrc0Zyb21TY2hlbWEoZSkpKX1zdGF0aWMgbm9kZXNGcm9tU2NoZW1hKGUpe2xldCB0PWh1YShlLm5vZGVzKTtyZXR1cm4gdC50ZXh0fHwodC50ZXh0PWE9PmEudGV4dCksdH1zdGF0aWMgbWFya3NGcm9tU2NoZW1hKGUpe3JldHVybiBodWEoZS5tYXJrcyl9fTtpKGh1YSwiZ2F0aGVyVG9ET00iKTtpKHZ0dCwiZG9jIik7ZnVhPW5ldyBXZWFrTWFwO2kobkdhLCJzdXNwaWNpb3VzQXR0cmlidXRlcyIpO2kobEdhLCJzdXNwaWNpb3VzQXR0cmlidXRlc0lubmVyIik7aShIbmUsInJlbmRlclNwZWMiKX0pO2Z1bmN0aW9uIGNHYShzLGUpe3JldHVybiBzK2UqZ3VhfWZ1bmN0aW9uIGJ1YShzKXtyZXR1cm4gcyZtdWF9ZnVuY3Rpb24gZEdhKHMpe3JldHVybihzLShzJm11YSkpL2d1YX1mdW5jdGlvbiB5dHQocyxlLHQpe2xldCBhPVtdO2ZvcihsZXQgcj0wO3I8cy5jaGlsZENvdW50O3IrKyl7bGV0IG49cy5jaGlsZChyKTtuLmNvbnRlbnQuc2l6ZSYmKG49bi5jb3B5KHl0dChuLmNvbnRlbnQsZSxuKSkpLG4uaXNJbmxpbmUmJihuPWUobix0LHIpKSxhLnB1c2gobil9cmV0dXJuIHJ0LmZyb21BcnJheShhKX1mdW5jdGlvbiB3dHQocyxlLHQpe2xldCBhPXMucmVzb2x2ZShlKSxyPXQtZSxuPWEuZGVwdGg7Zm9yKDtyPjAmJm4+MCYmYS5pbmRleEFmdGVyKG4pPT1hLm5vZGUobikuY2hpbGRDb3VudDspbi0tLHItLTtpZihyPjApe2xldCBvPWEubm9kZShuKS5tYXliZUNoaWxkKGEuaW5kZXhBZnRlcihuKSk7Zm9yKDtyPjA7KXtpZighb3x8by5pc0xlYWYpcmV0dXJuITA7bz1vLmZpcnN0Q2hpbGQsci0tfX1yZXR1cm4hMX1mdW5jdGlvbiB1R2EocyxlLHQsYSl7bGV0IHI9W10sbj1bXSxvLGw7cy5kb2Mubm9kZXNCZXR3ZWVuKGUsdCwocCxkLHUpPT57aWYoIXAuaXNJbmxpbmUpcmV0dXJuO2xldCBjPXAubWFya3M7aWYoIWEuaXNJblNldChjKSYmdS50eXBlLmFsbG93c01hcmtUeXBlKGEudHlwZSkpe2xldCBiPU1hdGgubWF4KGQsZSksdj1NYXRoLm1pbihkK3Aubm9kZVNpemUsdCkseD1hLmFkZFRvU2V0KGMpO2ZvcihsZXQgbT0wO208Yy5sZW5ndGg7bSsrKWNbbV0uaXNJblNldCh4KXx8KG8mJm8udG89PWImJm8ubWFyay5lcShjW21dKT9vLnRvPXY6ci5wdXNoKG89bmV3IE1oKGIsdixjW21dKSkpO2wmJmwudG89PWI/bC50bz12Om4ucHVzaChsPW5ldyB3dihiLHYsYSkpfX0pLHIuZm9yRWFjaChwPT5zLnN0ZXAocCkpLG4uZm9yRWFjaChwPT5zLnN0ZXAocCkpfWZ1bmN0aW9uIHBHYShzLGUsdCxhKXtsZXQgcj1bXSxuPTA7cy5kb2Mubm9kZXNCZXR3ZWVuKGUsdCwobyxsKT0+e2lmKCFvLmlzSW5saW5lKXJldHVybjtuKys7bGV0IHA9bnVsbDtpZihhIGluc3RhbmNlb2YgdnYpe2xldCBkPW8ubWFya3MsdTtmb3IoO3U9YS5pc0luU2V0KGQpOykocHx8KHA9W10pKS5wdXNoKHUpLGQ9dS5yZW1vdmVGcm9tU2V0KGQpfWVsc2UgYT9hLmlzSW5TZXQoby5tYXJrcykmJihwPVthXSk6cD1vLm1hcmtzO2lmKHAmJnAubGVuZ3RoKXtsZXQgZD1NYXRoLm1pbihsK28ubm9kZVNpemUsdCk7Zm9yKGxldCB1PTA7dTxwLmxlbmd0aDt1Kyspe2xldCBjPXBbdV0sYjtmb3IobGV0IHY9MDt2PHIubGVuZ3RoO3YrKyl7bGV0IHg9clt2XTt4LnN0ZXA9PW4tMSYmYy5lcShyW3ZdLnN0eWxlKSYmKGI9eCl9Yj8oYi50bz1kLGIuc3RlcD1uKTpyLnB1c2goe3N0eWxlOmMsZnJvbTpNYXRoLm1heChsLGUpLHRvOmQsc3RlcDpufSl9fX0pLHIuZm9yRWFjaChvPT5zLnN0ZXAobmV3IE1oKG8uZnJvbSxvLnRvLG8uc3R5bGUpKSl9ZnVuY3Rpb24ga3R0KHMsZSx0LGE9dC5jb250ZW50TWF0Y2gscj0hMCl7bGV0IG49cy5kb2Mubm9kZUF0KGUpLG89W10sbD1lKzE7Zm9yKGxldCBwPTA7cDxuLmNoaWxkQ291bnQ7cCsrKXtsZXQgZD1uLmNoaWxkKHApLHU9bCtkLm5vZGVTaXplLGM9YS5tYXRjaFR5cGUoZC50eXBlKTtpZighYylvLnB1c2gobmV3IGdvKGwsdSxfdC5lbXB0eSkpO2Vsc2V7YT1jO2ZvcihsZXQgYj0wO2I8ZC5tYXJrcy5sZW5ndGg7YisrKXQuYWxsb3dzTWFya1R5cGUoZC5tYXJrc1tiXS50eXBlKXx8cy5zdGVwKG5ldyBNaChsLHUsZC5tYXJrc1tiXSkpO2lmKHImJmQuaXNUZXh0JiZ0LndoaXRlc3BhY2UhPSJwcmUiKXtsZXQgYix2PS9ccj9cbnxcci9nLHg7Zm9yKDtiPXYuZXhlYyhkLnRleHQpOyl4fHwoeD1uZXcgX3QocnQuZnJvbSh0LnNjaGVtYS50ZXh0KCIgIix0LmFsbG93ZWRNYXJrcyhkLm1hcmtzKSkpLDAsMCkpLG8ucHVzaChuZXcgZ28obCtiLmluZGV4LGwrYi5pbmRleCtiWzBdLmxlbmd0aCx4KSl9fWw9dX1pZighYS52YWxpZEVuZCl7bGV0IHA9YS5maWxsQmVmb3JlKHJ0LmVtcHR5LCEwKTtzLnJlcGxhY2UobCxsLG5ldyBfdChwLDAsMCkpfWZvcihsZXQgcD1vLmxlbmd0aC0xO3A+PTA7cC0tKXMuc3RlcChvW3BdKX1mdW5jdGlvbiBoR2EocyxlLHQpe3JldHVybihlPT0wfHxzLmNhblJlcGxhY2UoZSxzLmNoaWxkQ291bnQpKSYmKHQ9PXMuY2hpbGRDb3VudHx8cy5jYW5SZXBsYWNlKDAsdCkpfWZ1bmN0aW9uIFBkKHMpe2xldCB0PXMucGFyZW50LmNvbnRlbnQuY3V0QnlJbmRleChzLnN0YXJ0SW5kZXgscy5lbmRJbmRleCk7Zm9yKGxldCBhPXMuZGVwdGgscj0wLG49MDs7LS1hKXtsZXQgbz1zLiRmcm9tLm5vZGUoYSksbD1zLiRmcm9tLmluZGV4KGEpK3IscD1zLiR0by5pbmRleEFmdGVyKGEpLW47aWYoYTxzLmRlcHRoJiZvLmNhblJlcGxhY2UobCxwLHQpKXJldHVybiBhO2lmKGE9PTB8fG8udHlwZS5zcGVjLmlzb2xhdGluZ3x8IWhHYShvLGwscCkpYnJlYWs7bCYmKHI9MSkscDxvLmNoaWxkQ291bnQmJihuPTEpfXJldHVybiBudWxsfWZ1bmN0aW9uIGZHYShzLGUsdCl7bGV0eyRmcm9tOmEsJHRvOnIsZGVwdGg6bn09ZSxvPWEuYmVmb3JlKG4rMSksbD1yLmFmdGVyKG4rMSkscD1vLGQ9bCx1PXJ0LmVtcHR5LGM9MDtmb3IobGV0IHg9bixtPSExO3g+dDt4LS0pbXx8YS5pbmRleCh4KT4wPyhtPSEwLHU9cnQuZnJvbShhLm5vZGUoeCkuY29weSh1KSksYysrKTpwLS07bGV0IGI9cnQuZW1wdHksdj0wO2ZvcihsZXQgeD1uLG09ITE7eD50O3gtLSltfHxyLmFmdGVyKHgrMSk8ci5lbmQoeCk/KG09ITAsYj1ydC5mcm9tKHIubm9kZSh4KS5jb3B5KGIpKSx2KyspOmQrKztzLnN0ZXAobmV3IGRyKHAsZCxvLGwsbmV3IF90KHUuYXBwZW5kKGIpLGMsdiksdS5zaXplLWMsITApKX1mdW5jdGlvbiBLOChzLGUsdD1udWxsLGE9cyl7bGV0IHI9bUdhKHMsZSksbj1yJiZnR2EoYSxlKTtyZXR1cm4gbj9yLm1hcCh3dWEpLmNvbmNhdCh7dHlwZTplLGF0dHJzOnR9KS5jb25jYXQobi5tYXAod3VhKSk6bnVsbH1mdW5jdGlvbiB3dWEocyl7cmV0dXJue3R5cGU6cyxhdHRyczpudWxsfX1mdW5jdGlvbiBtR2EocyxlKXtsZXR7cGFyZW50OnQsc3RhcnRJbmRleDphLGVuZEluZGV4OnJ9PXMsbj10LmNvbnRlbnRNYXRjaEF0KGEpLmZpbmRXcmFwcGluZyhlKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1uLmxlbmd0aD9uWzBdOmU7cmV0dXJuIHQuY2FuUmVwbGFjZVdpdGgoYSxyLG8pP246bnVsbH1mdW5jdGlvbiBnR2EocyxlKXtsZXR7cGFyZW50OnQsc3RhcnRJbmRleDphLGVuZEluZGV4OnJ9PXMsbj10LmNoaWxkKGEpLG89ZS5jb250ZW50TWF0Y2guZmluZFdyYXBwaW5nKG4udHlwZSk7aWYoIW8pcmV0dXJuIG51bGw7bGV0IHA9KG8ubGVuZ3RoP29bby5sZW5ndGgtMV06ZSkuY29udGVudE1hdGNoO2ZvcihsZXQgZD1hO3AmJmQ8cjtkKyspcD1wLm1hdGNoVHlwZSh0LmNoaWxkKGQpLnR5cGUpO3JldHVybiFwfHwhcC52YWxpZEVuZD9udWxsOm99ZnVuY3Rpb24gYkdhKHMsZSx0KXtsZXQgYT1ydC5lbXB0eTtmb3IobGV0IG89dC5sZW5ndGgtMTtvPj0wO28tLSl7aWYoYS5zaXplKXtsZXQgbD10W29dLnR5cGUuY29udGVudE1hdGNoLm1hdGNoRnJhZ21lbnQoYSk7aWYoIWx8fCFsLnZhbGlkRW5kKXRocm93IG5ldyBSYW5nZUVycm9yKCJXcmFwcGVyIHR5cGUgZ2l2ZW4gdG8gVHJhbnNmb3JtLndyYXAgZG9lcyBub3QgZm9ybSB2YWxpZCBjb250ZW50IG9mIGl0cyBwYXJlbnQgd3JhcHBlciIpfWE9cnQuZnJvbSh0W29dLnR5cGUuY3JlYXRlKHRbb10uYXR0cnMsYSkpfWxldCByPWUuc3RhcnQsbj1lLmVuZDtzLnN0ZXAobmV3IGRyKHIsbixyLG4sbmV3IF90KGEsMCwwKSx0Lmxlbmd0aCwhMCkpfWZ1bmN0aW9uIHZHYShzLGUsdCxhLHIpe2lmKCFhLmlzVGV4dGJsb2NrKXRocm93IG5ldyBSYW5nZUVycm9yKCJUeXBlIGdpdmVuIHRvIHNldEJsb2NrVHlwZSBzaG91bGQgYmUgYSB0ZXh0YmxvY2siKTtsZXQgbj1zLnN0ZXBzLmxlbmd0aDtzLmRvYy5ub2Rlc0JldHdlZW4oZSx0LChvLGwpPT57bGV0IHA9dHlwZW9mIHI9PSJmdW5jdGlvbiI/cihvKTpyO2lmKG8uaXNUZXh0YmxvY2smJiFvLmhhc01hcmt1cChhLHApJiZ4R2Eocy5kb2Mscy5tYXBwaW5nLnNsaWNlKG4pLm1hcChsKSxhKSl7bGV0IGQ9bnVsbDtpZihhLnNjaGVtYS5saW5lYnJlYWtSZXBsYWNlbWVudCl7bGV0IHY9YS53aGl0ZXNwYWNlPT0icHJlIix4PSEhYS5jb250ZW50TWF0Y2gubWF0Y2hUeXBlKGEuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50KTt2JiYheD9kPSExOiF2JiZ4JiYoZD0hMCl9ZD09PSExJiZTdWEocyxvLGwsbiksa3R0KHMscy5tYXBwaW5nLnNsaWNlKG4pLm1hcChsLDEpLGEsdm9pZCAwLGQ9PT1udWxsKTtsZXQgdT1zLm1hcHBpbmcuc2xpY2UobiksYz11Lm1hcChsLDEpLGI9dS5tYXAobCtvLm5vZGVTaXplLDEpO3JldHVybiBzLnN0ZXAobmV3IGRyKGMsYixjKzEsYi0xLG5ldyBfdChydC5mcm9tKGEuY3JlYXRlKHAsbnVsbCxvLm1hcmtzKSksMCwwKSwxLCEwKSksZD09PSEwJiZrdWEocyxvLGwsbiksITF9fSl9ZnVuY3Rpb24ga3VhKHMsZSx0LGEpe2UuZm9yRWFjaCgocixuKT0+e2lmKHIuaXNUZXh0KXtsZXQgbyxsPS9ccj9cbnxcci9nO2Zvcig7bz1sLmV4ZWMoci50ZXh0KTspe2xldCBwPXMubWFwcGluZy5zbGljZShhKS5tYXAodCsxK24rby5pbmRleCk7cy5yZXBsYWNlV2l0aChwLHArMSxlLnR5cGUuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50LmNyZWF0ZSgpKX19fSl9ZnVuY3Rpb24gU3VhKHMsZSx0LGEpe2UuZm9yRWFjaCgocixuKT0+e2lmKHIudHlwZT09ci50eXBlLnNjaGVtYS5saW5lYnJlYWtSZXBsYWNlbWVudCl7bGV0IG89cy5tYXBwaW5nLnNsaWNlKGEpLm1hcCh0KzErbik7cy5yZXBsYWNlV2l0aChvLG8rMSxlLnR5cGUuc2NoZW1hLnRleHQoYApgKSl9fSl9ZnVuY3Rpb24geEdhKHMsZSx0KXtsZXQgYT1zLnJlc29sdmUoZSkscj1hLmluZGV4KCk7cmV0dXJuIGEucGFyZW50LmNhblJlcGxhY2VXaXRoKHIscisxLHQpfWZ1bmN0aW9uIHlHYShzLGUsdCxhLHIpe2xldCBuPXMuZG9jLm5vZGVBdChlKTtpZighbil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm8gbm9kZSBhdCBnaXZlbiBwb3NpdGlvbiIpO3R8fCh0PW4udHlwZSk7bGV0IG89dC5jcmVhdGUoYSxudWxsLHJ8fG4ubWFya3MpO2lmKG4uaXNMZWFmKXJldHVybiBzLnJlcGxhY2VXaXRoKGUsZStuLm5vZGVTaXplLG8pO2lmKCF0LnZhbGlkQ29udGVudChuLmNvbnRlbnQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGNvbnRlbnQgZm9yIG5vZGUgdHlwZSAiK3QubmFtZSk7cy5zdGVwKG5ldyBkcihlLGUrbi5ub2RlU2l6ZSxlKzEsZStuLm5vZGVTaXplLTEsbmV3IF90KHJ0LmZyb20obyksMCwwKSwxLCEwKSl9ZnVuY3Rpb24gemwocyxlLHQ9MSxhKXtsZXQgcj1zLnJlc29sdmUoZSksbj1yLmRlcHRoLXQsbz1hJiZhW2EubGVuZ3RoLTFdfHxyLnBhcmVudDtpZihuPDB8fHIucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmd8fCFyLnBhcmVudC5jYW5SZXBsYWNlKHIuaW5kZXgoKSxyLnBhcmVudC5jaGlsZENvdW50KXx8IW8udHlwZS52YWxpZENvbnRlbnQoci5wYXJlbnQuY29udGVudC5jdXRCeUluZGV4KHIuaW5kZXgoKSxyLnBhcmVudC5jaGlsZENvdW50KSkpcmV0dXJuITE7Zm9yKGxldCBkPXIuZGVwdGgtMSx1PXQtMjtkPm47ZC0tLHUtLSl7bGV0IGM9ci5ub2RlKGQpLGI9ci5pbmRleChkKTtpZihjLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0IHY9Yy5jb250ZW50LmN1dEJ5SW5kZXgoYixjLmNoaWxkQ291bnQpLHg9YSYmYVt1KzFdO3gmJih2PXYucmVwbGFjZUNoaWxkKDAseC50eXBlLmNyZWF0ZSh4LmF0dHJzKSkpO2xldCBtPWEmJmFbdV18fGM7aWYoIWMuY2FuUmVwbGFjZShiKzEsYy5jaGlsZENvdW50KXx8IW0udHlwZS52YWxpZENvbnRlbnQodikpcmV0dXJuITF9bGV0IGw9ci5pbmRleEFmdGVyKG4pLHA9YSYmYVswXTtyZXR1cm4gci5ub2RlKG4pLmNhblJlcGxhY2VXaXRoKGwsbCxwP3AudHlwZTpyLm5vZGUobisxKS50eXBlKX1mdW5jdGlvbiB3R2EocyxlLHQ9MSxhKXtsZXQgcj1zLmRvYy5yZXNvbHZlKGUpLG49cnQuZW1wdHksbz1ydC5lbXB0eTtmb3IobGV0IGw9ci5kZXB0aCxwPXIuZGVwdGgtdCxkPXQtMTtsPnA7bC0tLGQtLSl7bj1ydC5mcm9tKHIubm9kZShsKS5jb3B5KG4pKTtsZXQgdT1hJiZhW2RdO289cnQuZnJvbSh1P3UudHlwZS5jcmVhdGUodS5hdHRycyxvKTpyLm5vZGUobCkuY29weShvKSl9cy5zdGVwKG5ldyBnbyhlLGUsbmV3IF90KG4uYXBwZW5kKG8pLHQsdCksITApKX1mdW5jdGlvbiBabChzLGUpe2xldCB0PXMucmVzb2x2ZShlKSxhPXQuaW5kZXgoKTtyZXR1cm4gX3VhKHQubm9kZUJlZm9yZSx0Lm5vZGVBZnRlcikmJnQucGFyZW50LmNhblJlcGxhY2UoYSxhKzEpfWZ1bmN0aW9uIGtHYShzLGUpe2UuY29udGVudC5zaXplfHxzLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQoZS50eXBlKTtsZXQgdD1zLmNvbnRlbnRNYXRjaEF0KHMuY2hpbGRDb3VudCkse2xpbmVicmVha1JlcGxhY2VtZW50OmF9PXMudHlwZS5zY2hlbWE7Zm9yKGxldCByPTA7cjxlLmNoaWxkQ291bnQ7cisrKXtsZXQgbj1lLmNoaWxkKHIpLG89bi50eXBlPT1hP3MudHlwZS5zY2hlbWEubm9kZXMudGV4dDpuLnR5cGU7aWYodD10Lm1hdGNoVHlwZShvKSwhdHx8IXMudHlwZS5hbGxvd3NNYXJrcyhuLm1hcmtzKSlyZXR1cm4hMX1yZXR1cm4gdC52YWxpZEVuZH1mdW5jdGlvbiBfdWEocyxlKXtyZXR1cm4hIShzJiZlJiYhcy5pc0xlYWYmJmtHYShzLGUpKX1mdW5jdGlvbiBZOChzLGUsdD0tMSl7bGV0IGE9cy5yZXNvbHZlKGUpO2ZvcihsZXQgcj1hLmRlcHRoOztyLS0pe2xldCBuLG8sbD1hLmluZGV4KHIpO2lmKHI9PWEuZGVwdGg/KG49YS5ub2RlQmVmb3JlLG89YS5ub2RlQWZ0ZXIpOnQ+MD8obj1hLm5vZGUocisxKSxsKyssbz1hLm5vZGUocikubWF5YmVDaGlsZChsKSk6KG49YS5ub2RlKHIpLm1heWJlQ2hpbGQobC0xKSxvPWEubm9kZShyKzEpKSxuJiYhbi5pc1RleHRibG9jayYmX3VhKG4sbykmJmEubm9kZShyKS5jYW5SZXBsYWNlKGwsbCsxKSlyZXR1cm4gZTtpZihyPT0wKWJyZWFrO2U9dDwwP2EuYmVmb3JlKHIpOmEuYWZ0ZXIocil9fWZ1bmN0aW9uIFNHYShzLGUsdCl7bGV0IGE9bnVsbCx7bGluZWJyZWFrUmVwbGFjZW1lbnQ6cn09cy5kb2MudHlwZS5zY2hlbWEsbj1zLmRvYy5yZXNvbHZlKGUtdCksbz1uLm5vZGUoKS50eXBlO2lmKHImJm8uaW5saW5lQ29udGVudCl7bGV0IHU9by53aGl0ZXNwYWNlPT0icHJlIixjPSEhby5jb250ZW50TWF0Y2gubWF0Y2hUeXBlKHIpO3UmJiFjP2E9ITE6IXUmJmMmJihhPSEwKX1sZXQgbD1zLnN0ZXBzLmxlbmd0aDtpZihhPT09ITEpe2xldCB1PXMuZG9jLnJlc29sdmUoZSt0KTtTdWEocyx1Lm5vZGUoKSx1LmJlZm9yZSgpLGwpfW8uaW5saW5lQ29udGVudCYma3R0KHMsZSt0LTEsbyxuLm5vZGUoKS5jb250ZW50TWF0Y2hBdChuLmluZGV4KCkpLGE9PW51bGwpO2xldCBwPXMubWFwcGluZy5zbGljZShsKSxkPXAubWFwKGUtdCk7aWYocy5zdGVwKG5ldyBnbyhkLHAubWFwKGUrdCwtMSksX3QuZW1wdHksITApKSxhPT09ITApe2xldCB1PXMuZG9jLnJlc29sdmUoZCk7a3VhKHMsdS5ub2RlKCksdS5iZWZvcmUoKSxzLnN0ZXBzLmxlbmd0aCl9cmV0dXJuIHN9ZnVuY3Rpb24gTXVhKHMsZSx0KXtsZXQgYT1zLnJlc29sdmUoZSk7aWYoYS5wYXJlbnQuY2FuUmVwbGFjZVdpdGgoYS5pbmRleCgpLGEuaW5kZXgoKSx0KSlyZXR1cm4gZTtpZihhLnBhcmVudE9mZnNldD09MClmb3IobGV0IHI9YS5kZXB0aC0xO3I+PTA7ci0tKXtsZXQgbj1hLmluZGV4KHIpO2lmKGEubm9kZShyKS5jYW5SZXBsYWNlV2l0aChuLG4sdCkpcmV0dXJuIGEuYmVmb3JlKHIrMSk7aWYobj4wKXJldHVybiBudWxsfWlmKGEucGFyZW50T2Zmc2V0PT1hLnBhcmVudC5jb250ZW50LnNpemUpZm9yKGxldCByPWEuZGVwdGgtMTtyPj0wO3ItLSl7bGV0IG49YS5pbmRleEFmdGVyKHIpO2lmKGEubm9kZShyKS5jYW5SZXBsYWNlV2l0aChuLG4sdCkpcmV0dXJuIGEuYWZ0ZXIocisxKTtpZihuPGEubm9kZShyKS5jaGlsZENvdW50KXJldHVybiBudWxsfXJldHVybiBudWxsfWZ1bmN0aW9uIFZaKHMsZSx0KXtsZXQgYT1zLnJlc29sdmUoZSk7aWYoIXQuY29udGVudC5zaXplKXJldHVybiBlO2xldCByPXQuY29udGVudDtmb3IobGV0IG49MDtuPHQub3BlblN0YXJ0O24rKylyPXIuZmlyc3RDaGlsZC5jb250ZW50O2ZvcihsZXQgbj0xO248PSh0Lm9wZW5TdGFydD09MCYmdC5zaXplPzI6MSk7bisrKWZvcihsZXQgbz1hLmRlcHRoO28+PTA7by0tKXtsZXQgbD1vPT1hLmRlcHRoPzA6YS5wb3M8PShhLnN0YXJ0KG8rMSkrYS5lbmQobysxKSkvMj8tMToxLHA9YS5pbmRleChvKSsobD4wPzE6MCksZD1hLm5vZGUobyksdT0hMTtpZihuPT0xKXU9ZC5jYW5SZXBsYWNlKHAscCxyKTtlbHNle2xldCBjPWQuY29udGVudE1hdGNoQXQocCkuZmluZFdyYXBwaW5nKHIuZmlyc3RDaGlsZC50eXBlKTt1PWMmJmQuY2FuUmVwbGFjZVdpdGgocCxwLGNbMF0pfWlmKHUpcmV0dXJuIGw9PTA/YS5wb3M6bDwwP2EuYmVmb3JlKG8rMSk6YS5hZnRlcihvKzEpfXJldHVybiBudWxsfWZ1bmN0aW9uIF92KHMsZSx0PWUsYT1fdC5lbXB0eSl7aWYoZT09dCYmIWEuc2l6ZSlyZXR1cm4gbnVsbDtsZXQgcj1zLnJlc29sdmUoZSksbj1zLnJlc29sdmUodCk7cmV0dXJuIHp1YShyLG4sYSk/bmV3IGdvKGUsdCxhKTpuZXcgU3R0KHIsbixhKS5maXQoKX1mdW5jdGlvbiB6dWEocyxlLHQpe3JldHVybiF0Lm9wZW5TdGFydCYmIXQub3BlbkVuZCYmcy5zdGFydCgpPT1lLnN0YXJ0KCkmJnMucGFyZW50LmNhblJlcGxhY2Uocy5pbmRleCgpLGUuaW5kZXgoKSx0LmNvbnRlbnQpfWZ1bmN0aW9uIEJaKHMsZSx0KXtyZXR1cm4gZT09MD9zLmN1dEJ5SW5kZXgodCxzLmNoaWxkQ291bnQpOnMucmVwbGFjZUNoaWxkKDAscy5maXJzdENoaWxkLmNvcHkoQloocy5maXJzdENoaWxkLmNvbnRlbnQsZS0xLHQpKSl9ZnVuY3Rpb24gSFoocyxlLHQpe3JldHVybiBlPT0wP3MuYXBwZW5kKHQpOnMucmVwbGFjZUNoaWxkKHMuY2hpbGRDb3VudC0xLHMubGFzdENoaWxkLmNvcHkoSFoocy5sYXN0Q2hpbGQuY29udGVudCxlLTEsdCkpKX1mdW5jdGlvbiBfdHQocyxlKXtmb3IobGV0IHQ9MDt0PGU7dCsrKXM9cy5maXJzdENoaWxkLmNvbnRlbnQ7cmV0dXJuIHN9ZnVuY3Rpb24gQ3VhKHMsZSx0KXtpZihlPD0wKXJldHVybiBzO2xldCBhPXMuY29udGVudDtyZXR1cm4gZT4xJiYoYT1hLnJlcGxhY2VDaGlsZCgwLEN1YShhLmZpcnN0Q2hpbGQsZS0xLGEuY2hpbGRDb3VudD09MT90LTE6MCkpKSxlPjAmJihhPXMudHlwZS5jb250ZW50TWF0Y2guZmlsbEJlZm9yZShhKS5hcHBlbmQoYSksdDw9MCYmKGE9YS5hcHBlbmQocy50eXBlLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KGEpLmZpbGxCZWZvcmUocnQuZW1wdHksITApKSkpLHMuY29weShhKX1mdW5jdGlvbiBNdHQocyxlLHQsYSxyKXtsZXQgbj1zLm5vZGUoZSksbz1yP3MuaW5kZXhBZnRlcihlKTpzLmluZGV4KGUpO2lmKG89PW4uY2hpbGRDb3VudCYmIXQuY29tcGF0aWJsZUNvbnRlbnQobi50eXBlKSlyZXR1cm4gbnVsbDtsZXQgbD1hLmZpbGxCZWZvcmUobi5jb250ZW50LCEwLG8pO3JldHVybiBsJiYhX0dhKHQsbi5jb250ZW50LG8pP2w6bnVsbH1mdW5jdGlvbiBfR2EocyxlLHQpe2ZvcihsZXQgYT10O2E8ZS5jaGlsZENvdW50O2ErKylpZighcy5hbGxvd3NNYXJrcyhlLmNoaWxkKGEpLm1hcmtzKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBNR2Eocyl7cmV0dXJuIHMuc3BlYy5kZWZpbmluZ3x8cy5zcGVjLmRlZmluaW5nRm9yQ29udGVudH1mdW5jdGlvbiB6R2EocyxlLHQsYSl7aWYoIWEuc2l6ZSlyZXR1cm4gcy5kZWxldGVSYW5nZShlLHQpO2xldCByPXMuZG9jLnJlc29sdmUoZSksbj1zLmRvYy5yZXNvbHZlKHQpO2lmKHp1YShyLG4sYSkpcmV0dXJuIHMuc3RlcChuZXcgZ28oZSx0LGEpKTtsZXQgbz0kdWEocixuKTtvW28ubGVuZ3RoLTFdPT0wJiZvLnBvcCgpO2xldCBsPS0oci5kZXB0aCsxKTtvLnVuc2hpZnQobCk7Zm9yKGxldCBiPXIuZGVwdGgsdj1yLnBvcy0xO2I+MDtiLS0sdi0tKXtsZXQgeD1yLm5vZGUoYikudHlwZS5zcGVjO2lmKHguZGVmaW5pbmd8fHguZGVmaW5pbmdBc0NvbnRleHR8fHguaXNvbGF0aW5nKWJyZWFrO28uaW5kZXhPZihiKT4tMT9sPWI6ci5iZWZvcmUoYik9PXYmJm8uc3BsaWNlKDEsMCwtYil9bGV0IHA9by5pbmRleE9mKGwpLGQ9W10sdT1hLm9wZW5TdGFydDtmb3IobGV0IGI9YS5jb250ZW50LHY9MDs7disrKXtsZXQgeD1iLmZpcnN0Q2hpbGQ7aWYoZC5wdXNoKHgpLHY9PWEub3BlblN0YXJ0KWJyZWFrO2I9eC5jb250ZW50fWZvcihsZXQgYj11LTE7Yj49MDtiLS0pe2xldCB2PWRbYl0seD1NR2Eodi50eXBlKTtpZih4JiYhdi5zYW1lTWFya3VwKHIubm9kZShNYXRoLmFicyhsKS0xKSkpdT1iO2Vsc2UgaWYoeHx8IXYudHlwZS5pc1RleHRibG9jaylicmVha31mb3IobGV0IGI9YS5vcGVuU3RhcnQ7Yj49MDtiLS0pe2xldCB2PShiK3UrMSklKGEub3BlblN0YXJ0KzEpLHg9ZFt2XTtpZih4KWZvcihsZXQgbT0wO208by5sZW5ndGg7bSsrKXtsZXQgZj1vWyhtK3ApJW8ubGVuZ3RoXSx5PSEwO2Y8MCYmKHk9ITEsZj0tZik7bGV0IE09ci5ub2RlKGYtMSksej1yLmluZGV4KGYtMSk7aWYoTS5jYW5SZXBsYWNlV2l0aCh6LHoseC50eXBlLHgubWFya3MpKXJldHVybiBzLnJlcGxhY2Uoci5iZWZvcmUoZikseT9uLmFmdGVyKGYpOnQsbmV3IF90KFR1YShhLmNvbnRlbnQsMCxhLm9wZW5TdGFydCx2KSx2LGEub3BlbkVuZCkpfX1sZXQgYz1zLnN0ZXBzLmxlbmd0aDtmb3IobGV0IGI9by5sZW5ndGgtMTtiPj0wJiYocy5yZXBsYWNlKGUsdCxhKSwhKHMuc3RlcHMubGVuZ3RoPmMpKTtiLS0pe2xldCB2PW9bYl07djwwfHwoZT1yLmJlZm9yZSh2KSx0PW4uYWZ0ZXIodikpfX1mdW5jdGlvbiBUdWEocyxlLHQsYSxyKXtpZihlPHQpe2xldCBuPXMuZmlyc3RDaGlsZDtzPXMucmVwbGFjZUNoaWxkKDAsbi5jb3B5KFR1YShuLmNvbnRlbnQsZSsxLHQsYSxuKSkpfWlmKGU+YSl7bGV0IG49ci5jb250ZW50TWF0Y2hBdCgwKSxvPW4uZmlsbEJlZm9yZShzKS5hcHBlbmQocyk7cz1vLmFwcGVuZChuLm1hdGNoRnJhZ21lbnQobykuZmlsbEJlZm9yZShydC5lbXB0eSwhMCkpfXJldHVybiBzfWZ1bmN0aW9uIENHYShzLGUsdCxhKXtpZighYS5pc0lubGluZSYmZT09dCYmcy5kb2MucmVzb2x2ZShlKS5wYXJlbnQuY29udGVudC5zaXplKXtsZXQgcj1NdWEocy5kb2MsZSxhLnR5cGUpO3IhPW51bGwmJihlPXQ9cil9cy5yZXBsYWNlUmFuZ2UoZSx0LG5ldyBfdChydC5mcm9tKGEpLDAsMCkpfWZ1bmN0aW9uIFRHYShzLGUsdCl7bGV0IGE9cy5kb2MucmVzb2x2ZShlKSxyPXMuZG9jLnJlc29sdmUodCk7aWYoYS5wYXJlbnQuaXNUZXh0YmxvY2smJnIucGFyZW50LmlzVGV4dGJsb2NrJiZhLnN0YXJ0KCkhPXIuc3RhcnQoKSYmYS5wYXJlbnRPZmZzZXQ9PTAmJnIucGFyZW50T2Zmc2V0PT0wKXtsZXQgbz1hLnNoYXJlZERlcHRoKHQpLGw9ITE7Zm9yKGxldCBwPWEuZGVwdGg7cD5vO3AtLSlhLm5vZGUocCkudHlwZS5zcGVjLmlzb2xhdGluZyYmKGw9ITApO2ZvcihsZXQgcD1yLmRlcHRoO3A+bztwLS0pci5ub2RlKHApLnR5cGUuc3BlYy5pc29sYXRpbmcmJihsPSEwKTtpZighbCl7Zm9yKGxldCBwPWEuZGVwdGg7cD4wJiZlPT1hLnN0YXJ0KHApO3AtLSllPWEuYmVmb3JlKHApO2ZvcihsZXQgcD1yLmRlcHRoO3A+MCYmdD09ci5zdGFydChwKTtwLS0pdD1yLmJlZm9yZShwKTthPXMuZG9jLnJlc29sdmUoZSkscj1zLmRvYy5yZXNvbHZlKHQpfX1sZXQgbj0kdWEoYSxyKTtmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7bGV0IGw9bltvXSxwPW89PW4ubGVuZ3RoLTE7aWYocCYmbD09MHx8YS5ub2RlKGwpLnR5cGUuY29udGVudE1hdGNoLnZhbGlkRW5kKXJldHVybiBzLmRlbGV0ZShhLnN0YXJ0KGwpLHIuZW5kKGwpKTtpZihsPjAmJihwfHxhLm5vZGUobC0xKS5jYW5SZXBsYWNlKGEuaW5kZXgobC0xKSxyLmluZGV4QWZ0ZXIobC0xKSkpKXJldHVybiBzLmRlbGV0ZShhLmJlZm9yZShsKSxyLmFmdGVyKGwpKX1mb3IobGV0IG89MTtvPD1hLmRlcHRoJiZvPD1yLmRlcHRoO28rKylpZihlLWEuc3RhcnQobyk9PWEuZGVwdGgtbyYmdD5hLmVuZChvKSYmci5lbmQobyktdCE9ci5kZXB0aC1vJiZhLnN0YXJ0KG8tMSk9PXIuc3RhcnQoby0xKSYmYS5ub2RlKG8tMSkuY2FuUmVwbGFjZShhLmluZGV4KG8tMSksci5pbmRleChvLTEpKSlyZXR1cm4gcy5kZWxldGUoYS5iZWZvcmUobyksdCk7cy5kZWxldGUoZSx0KX1mdW5jdGlvbiAkdWEocyxlKXtsZXQgdD1bXSxhPU1hdGgubWluKHMuZGVwdGgsZS5kZXB0aCk7Zm9yKGxldCByPWE7cj49MDtyLS0pe2xldCBuPXMuc3RhcnQocik7aWYobjxzLnBvcy0ocy5kZXB0aC1yKXx8ZS5lbmQocik+ZS5wb3MrKGUuZGVwdGgtcil8fHMubm9kZShyKS50eXBlLnNwZWMuaXNvbGF0aW5nfHxlLm5vZGUocikudHlwZS5zcGVjLmlzb2xhdGluZylicmVhazsobj09ZS5zdGFydChyKXx8cj09cy5kZXB0aCYmcj09ZS5kZXB0aCYmcy5wYXJlbnQuaW5saW5lQ29udGVudCYmZS5wYXJlbnQuaW5saW5lQ29udGVudCYmciYmZS5zdGFydChyLTEpPT1uLTEpJiZ0LnB1c2gocil9cmV0dXJuIHR9dmFyIG11YSxndWEsdnVhLHh1YSxxbmUseXVhLHl2LEVkLFN2LHh0dCxYcixtbyx3dixNaCxrdixVOCxnbyxkcixTdHQscVosalosVzgsRzgsemg9ZygoKT0+e19oKCk7bXVhPTY1NTM1LGd1YT1NYXRoLnBvdygyLDE2KTtpKGNHYSwibWFrZVJlY292ZXIiKTtpKGJ1YSwicmVjb3ZlckluZGV4Iik7aShkR2EsInJlY292ZXJPZmZzZXQiKTt2dWE9MSx4dWE9MixxbmU9NCx5dWE9OCx5dj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJNYXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5wb3M9ZSx0aGlzLmRlbEluZm89dCx0aGlzLnJlY292ZXI9YX1nZXQgZGVsZXRlZCgpe3JldHVybih0aGlzLmRlbEluZm8meXVhKT4wfWdldCBkZWxldGVkQmVmb3JlKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyYodnVhfHFuZSkpPjB9Z2V0IGRlbGV0ZWRBZnRlcigpe3JldHVybih0aGlzLmRlbEluZm8mKHh1YXxxbmUpKT4wfWdldCBkZWxldGVkQWNyb3NzKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyZxbmUpPjB9fSxFZD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlN0ZXBNYXAiKX1jb25zdHJ1Y3RvcihlLHQ9ITEpe2lmKHRoaXMucmFuZ2VzPWUsdGhpcy5pbnZlcnRlZD10LCFlLmxlbmd0aCYmcy5lbXB0eSlyZXR1cm4gcy5lbXB0eX1yZWNvdmVyKGUpe2xldCB0PTAsYT1idWEoZSk7aWYoIXRoaXMuaW52ZXJ0ZWQpZm9yKGxldCByPTA7cjxhO3IrKyl0Kz10aGlzLnJhbmdlc1tyKjMrMl0tdGhpcy5yYW5nZXNbciozKzFdO3JldHVybiB0aGlzLnJhbmdlc1thKjNdK3QrZEdhKGUpfW1hcFJlc3VsdChlLHQ9MSl7cmV0dXJuIHRoaXMuX21hcChlLHQsITEpfW1hcChlLHQ9MSl7cmV0dXJuIHRoaXMuX21hcChlLHQsITApfV9tYXAoZSx0LGEpe2xldCByPTAsbj10aGlzLmludmVydGVkPzI6MSxvPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBwPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP3I6MCk7aWYocD5lKWJyZWFrO2xldCBkPXRoaXMucmFuZ2VzW2wrbl0sdT10aGlzLnJhbmdlc1tsK29dLGM9cCtkO2lmKGU8PWMpe2xldCBiPWQ/ZT09cD8tMTplPT1jPzE6dDp0LHY9cCtyKyhiPDA/MDp1KTtpZihhKXJldHVybiB2O2xldCB4PWU9PSh0PDA/cDpjKT9udWxsOmNHYShsLzMsZS1wKSxtPWU9PXA/eHVhOmU9PWM/dnVhOnFuZTtyZXR1cm4odDwwP2UhPXA6ZSE9YykmJihtfD15dWEpLG5ldyB5dih2LG0seCl9cis9dS1kfXJldHVybiBhP2UrcjpuZXcgeXYoZStyLDAsbnVsbCl9dG91Y2hlcyhlLHQpe2xldCBhPTAscj1idWEodCksbj10aGlzLmludmVydGVkPzI6MSxvPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBwPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP2E6MCk7aWYocD5lKWJyZWFrO2xldCBkPXRoaXMucmFuZ2VzW2wrbl0sdT1wK2Q7aWYoZTw9dSYmbD09ciozKXJldHVybiEwO2ErPXRoaXMucmFuZ2VzW2wrb10tZH1yZXR1cm4hMX1mb3JFYWNoKGUpe2xldCB0PXRoaXMuaW52ZXJ0ZWQ/MjoxLGE9dGhpcy5pbnZlcnRlZD8xOjI7Zm9yKGxldCByPTAsbj0wO3I8dGhpcy5yYW5nZXMubGVuZ3RoO3IrPTMpe2xldCBvPXRoaXMucmFuZ2VzW3JdLGw9by0odGhpcy5pbnZlcnRlZD9uOjApLHA9bysodGhpcy5pbnZlcnRlZD8wOm4pLGQ9dGhpcy5yYW5nZXNbcit0XSx1PXRoaXMucmFuZ2VzW3IrYV07ZShsLGwrZCxwLHArdSksbis9dS1kfX1pbnZlcnQoKXtyZXR1cm4gbmV3IHModGhpcy5yYW5nZXMsIXRoaXMuaW52ZXJ0ZWQpfXRvU3RyaW5nKCl7cmV0dXJuKHRoaXMuaW52ZXJ0ZWQ/Ii0iOiIiKStKU09OLnN0cmluZ2lmeSh0aGlzLnJhbmdlcyl9c3RhdGljIG9mZnNldChlKXtyZXR1cm4gZT09MD9zLmVtcHR5Om5ldyBzKGU8MD9bMCwtZSwwXTpbMCwwLGVdKX19O0VkLmVtcHR5PW5ldyBFZChbXSk7U3Y9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJNYXBwaW5nIil9Y29uc3RydWN0b3IoZSx0LGE9MCxyPWU/ZS5sZW5ndGg6MCl7dGhpcy5taXJyb3I9dCx0aGlzLmZyb209YSx0aGlzLnRvPXIsdGhpcy5fbWFwcz1lfHxbXSx0aGlzLm93bkRhdGE9IShlfHx0KX1nZXQgbWFwcygpe3JldHVybiB0aGlzLl9tYXBzfXNsaWNlKGU9MCx0PXRoaXMubWFwcy5sZW5ndGgpe3JldHVybiBuZXcgcyh0aGlzLl9tYXBzLHRoaXMubWlycm9yLGUsdCl9YXBwZW5kTWFwKGUsdCl7dGhpcy5vd25EYXRhfHwodGhpcy5fbWFwcz10aGlzLl9tYXBzLnNsaWNlKCksdGhpcy5taXJyb3I9dGhpcy5taXJyb3ImJnRoaXMubWlycm9yLnNsaWNlKCksdGhpcy5vd25EYXRhPSEwKSx0aGlzLnRvPXRoaXMuX21hcHMucHVzaChlKSx0IT1udWxsJiZ0aGlzLnNldE1pcnJvcih0aGlzLl9tYXBzLmxlbmd0aC0xLHQpfWFwcGVuZE1hcHBpbmcoZSl7Zm9yKGxldCB0PTAsYT10aGlzLl9tYXBzLmxlbmd0aDt0PGUuX21hcHMubGVuZ3RoO3QrKyl7bGV0IHI9ZS5nZXRNaXJyb3IodCk7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1t0XSxyIT1udWxsJiZyPHQ/YStyOnZvaWQgMCl9fWdldE1pcnJvcihlKXtpZih0aGlzLm1pcnJvcil7Zm9yKGxldCB0PTA7dDx0aGlzLm1pcnJvci5sZW5ndGg7dCsrKWlmKHRoaXMubWlycm9yW3RdPT1lKXJldHVybiB0aGlzLm1pcnJvclt0Kyh0JTI/LTE6MSldfX1zZXRNaXJyb3IoZSx0KXt0aGlzLm1pcnJvcnx8KHRoaXMubWlycm9yPVtdKSx0aGlzLm1pcnJvci5wdXNoKGUsdCl9YXBwZW5kTWFwcGluZ0ludmVydGVkKGUpe2ZvcihsZXQgdD1lLm1hcHMubGVuZ3RoLTEsYT10aGlzLl9tYXBzLmxlbmd0aCtlLl9tYXBzLmxlbmd0aDt0Pj0wO3QtLSl7bGV0IHI9ZS5nZXRNaXJyb3IodCk7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1t0XS5pbnZlcnQoKSxyIT1udWxsJiZyPnQ/YS1yLTE6dm9pZCAwKX19aW52ZXJ0KCl7bGV0IGU9bmV3IHM7cmV0dXJuIGUuYXBwZW5kTWFwcGluZ0ludmVydGVkKHRoaXMpLGV9bWFwKGUsdD0xKXtpZih0aGlzLm1pcnJvcilyZXR1cm4gdGhpcy5fbWFwKGUsdCwhMCk7Zm9yKGxldCBhPXRoaXMuZnJvbTthPHRoaXMudG87YSsrKWU9dGhpcy5fbWFwc1thXS5tYXAoZSx0KTtyZXR1cm4gZX1tYXBSZXN1bHQoZSx0PTEpe3JldHVybiB0aGlzLl9tYXAoZSx0LCExKX1fbWFwKGUsdCxhKXtsZXQgcj0wO2ZvcihsZXQgbj10aGlzLmZyb207bjx0aGlzLnRvO24rKyl7bGV0IG89dGhpcy5fbWFwc1tuXSxsPW8ubWFwUmVzdWx0KGUsdCk7aWYobC5yZWNvdmVyIT1udWxsKXtsZXQgcD10aGlzLmdldE1pcnJvcihuKTtpZihwIT1udWxsJiZwPm4mJnA8dGhpcy50byl7bj1wLGU9dGhpcy5fbWFwc1twXS5yZWNvdmVyKGwucmVjb3Zlcik7Y29udGludWV9fXJ8PWwuZGVsSW5mbyxlPWwucG9zfXJldHVybiBhP2U6bmV3IHl2KGUscixudWxsKX19LHh0dD1PYmplY3QuY3JlYXRlKG51bGwpLFhyPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN0ZXAiKX1nZXRNYXAoKXtyZXR1cm4gRWQuZW1wdHl9bWVyZ2UoZSl7cmV0dXJuIG51bGx9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXR8fCF0LnN0ZXBUeXBlKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTdGVwLmZyb21KU09OIik7bGV0IGE9eHR0W3Quc3RlcFR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzdGVwIHR5cGUgJHt0LnN0ZXBUeXBlfSBkZWZpbmVkYCk7cmV0dXJuIGEuZnJvbUpTT04oZSx0KX1zdGF0aWMganNvbklEKGUsdCl7aWYoZSBpbiB4dHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkR1cGxpY2F0ZSB1c2Ugb2Ygc3RlcCBKU09OIElEICIrZSk7cmV0dXJuIHh0dFtlXT10LHQucHJvdG90eXBlLmpzb25JRD1lLHR9fSxtbz1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlN0ZXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuZG9jPWUsdGhpcy5mYWlsZWQ9dH1zdGF0aWMgb2soZSl7cmV0dXJuIG5ldyBzKGUsbnVsbCl9c3RhdGljIGZhaWwoZSl7cmV0dXJuIG5ldyBzKG51bGwsZSl9c3RhdGljIGZyb21SZXBsYWNlKGUsdCxhLHIpe3RyeXtyZXR1cm4gcy5vayhlLnJlcGxhY2UodCxhLHIpKX1jYXRjaChuKXtpZihuIGluc3RhbmNlb2Yga2gpcmV0dXJuIHMuZmFpbChuLm1lc3NhZ2UpO3Rocm93IG59fX07aSh5dHQsIm1hcEZyYWdtZW50Iik7d3Y9Y2xhc3MgcyBleHRlbmRzIFhye3N0YXRpY3tpKHRoaXMsIkFkZE1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSx0LGEpe3N1cGVyKCksdGhpcy5mcm9tPWUsdGhpcy50bz10LHRoaXMubWFyaz1hfWFwcGx5KGUpe2xldCB0PWUuc2xpY2UodGhpcy5mcm9tLHRoaXMudG8pLGE9ZS5yZXNvbHZlKHRoaXMuZnJvbSkscj1hLm5vZGUoYS5zaGFyZWREZXB0aCh0aGlzLnRvKSksbj1uZXcgX3QoeXR0KHQuY29udGVudCwobyxsKT0+IW8uaXNBdG9tfHwhbC50eXBlLmFsbG93c01hcmtUeXBlKHRoaXMubWFyay50eXBlKT9vOm8ubWFyayh0aGlzLm1hcmsuYWRkVG9TZXQoby5tYXJrcykpLHIpLHQub3BlblN0YXJ0LHQub3BlbkVuZCk7cmV0dXJuIG1vLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sbil9aW52ZXJ0KCl7cmV0dXJuIG5ldyBNaCh0aGlzLmZyb20sdGhpcy50byx0aGlzLm1hcmspfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSksYT1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKTtyZXR1cm4gdC5kZWxldGVkJiZhLmRlbGV0ZWR8fHQucG9zPj1hLnBvcz9udWxsOm5ldyBzKHQucG9zLGEucG9zLHRoaXMubWFyayl9bWVyZ2UoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBzJiZlLm1hcmsuZXEodGhpcy5tYXJrKSYmdGhpcy5mcm9tPD1lLnRvJiZ0aGlzLnRvPj1lLmZyb20/bmV3IHMoTWF0aC5taW4odGhpcy5mcm9tLGUuZnJvbSksTWF0aC5tYXgodGhpcy50byxlLnRvKSx0aGlzLm1hcmspOm51bGx9dG9KU09OKCl7cmV0dXJue3N0ZXBUeXBlOiJhZGRNYXJrIixtYXJrOnRoaXMubWFyay50b0pTT04oKSxmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5mcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQudG8hPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBBZGRNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0LmZyb20sdC50byxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1hyLmpzb25JRCgiYWRkTWFyayIsd3YpO01oPWNsYXNzIHMgZXh0ZW5kcyBYcntzdGF0aWN7aSh0aGlzLCJSZW1vdmVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCxhKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLm1hcms9YX1hcHBseShlKXtsZXQgdD1lLnNsaWNlKHRoaXMuZnJvbSx0aGlzLnRvKSxhPW5ldyBfdCh5dHQodC5jb250ZW50LHI9PnIubWFyayh0aGlzLm1hcmsucmVtb3ZlRnJvbVNldChyLm1hcmtzKSksZSksdC5vcGVuU3RhcnQsdC5vcGVuRW5kKTtyZXR1cm4gbW8uZnJvbVJlcGxhY2UoZSx0aGlzLmZyb20sdGhpcy50byxhKX1pbnZlcnQoKXtyZXR1cm4gbmV3IHd2KHRoaXMuZnJvbSx0aGlzLnRvLHRoaXMubWFyayl9bWFwKGUpe2xldCB0PWUubWFwUmVzdWx0KHRoaXMuZnJvbSwxKSxhPWUubWFwUmVzdWx0KHRoaXMudG8sLTEpO3JldHVybiB0LmRlbGV0ZWQmJmEuZGVsZXRlZHx8dC5wb3M+PWEucG9zP251bGw6bmV3IHModC5wb3MsYS5wb3MsdGhpcy5tYXJrKX1tZXJnZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHMmJmUubWFyay5lcSh0aGlzLm1hcmspJiZ0aGlzLmZyb208PWUudG8mJnRoaXMudG8+PWUuZnJvbT9uZXcgcyhNYXRoLm1pbih0aGlzLmZyb20sZS5mcm9tKSxNYXRoLm1heCh0aGlzLnRvLGUudG8pLHRoaXMubWFyayk6bnVsbH10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU1hcmsiLG1hcms6dGhpcy5tYXJrLnRvSlNPTigpLGZyb206dGhpcy5mcm9tLHRvOnRoaXMudG99fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LmZyb20hPSJudW1iZXIifHx0eXBlb2YgdC50byE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU1hcmtTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBzKHQuZnJvbSx0LnRvLGUubWFya0Zyb21KU09OKHQubWFyaykpfX07WHIuanNvbklEKCJyZW1vdmVNYXJrIixNaCk7a3Y9Y2xhc3MgcyBleHRlbmRzIFhye3N0YXRpY3tpKHRoaXMsIkFkZE5vZGVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLnBvcz1lLHRoaXMubWFyaz10fWFwcGx5KGUpe2xldCB0PWUubm9kZUF0KHRoaXMucG9zKTtpZighdClyZXR1cm4gbW8uZmFpbCgiTm8gbm9kZSBhdCBtYXJrIHN0ZXAncyBwb3NpdGlvbiIpO2xldCBhPXQudHlwZS5jcmVhdGUodC5hdHRycyxudWxsLHRoaXMubWFyay5hZGRUb1NldCh0Lm1hcmtzKSk7cmV0dXJuIG1vLmZyb21SZXBsYWNlKGUsdGhpcy5wb3MsdGhpcy5wb3MrMSxuZXcgX3QocnQuZnJvbShhKSwwLHQuaXNMZWFmPzA6MSkpfWludmVydChlKXtsZXQgdD1lLm5vZGVBdCh0aGlzLnBvcyk7aWYodCl7bGV0IGE9dGhpcy5tYXJrLmFkZFRvU2V0KHQubWFya3MpO2lmKGEubGVuZ3RoPT10Lm1hcmtzLmxlbmd0aCl7Zm9yKGxldCByPTA7cjx0Lm1hcmtzLmxlbmd0aDtyKyspaWYoIXQubWFya3Nbcl0uaXNJblNldChhKSlyZXR1cm4gbmV3IHModGhpcy5wb3MsdC5tYXJrc1tyXSk7cmV0dXJuIG5ldyBzKHRoaXMucG9zLHRoaXMubWFyayl9fXJldHVybiBuZXcgVTgodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHQ9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHQuZGVsZXRlZEFmdGVyP251bGw6bmV3IHModC5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImFkZE5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIEFkZE5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0LnBvcyxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1hyLmpzb25JRCgiYWRkTm9kZU1hcmsiLGt2KTtVOD1jbGFzcyBzIGV4dGVuZHMgWHJ7c3RhdGlje2kodGhpcywiUmVtb3ZlTm9kZU1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMucG9zPWUsdGhpcy5tYXJrPXR9YXBwbHkoZSl7bGV0IHQ9ZS5ub2RlQXQodGhpcy5wb3MpO2lmKCF0KXJldHVybiBtby5mYWlsKCJObyBub2RlIGF0IG1hcmsgc3RlcCdzIHBvc2l0aW9uIik7bGV0IGE9dC50eXBlLmNyZWF0ZSh0LmF0dHJzLG51bGwsdGhpcy5tYXJrLnJlbW92ZUZyb21TZXQodC5tYXJrcykpO3JldHVybiBtby5mcm9tUmVwbGFjZShlLHRoaXMucG9zLHRoaXMucG9zKzEsbmV3IF90KHJ0LmZyb20oYSksMCx0LmlzTGVhZj8wOjEpKX1pbnZlcnQoZSl7bGV0IHQ9ZS5ub2RlQXQodGhpcy5wb3MpO3JldHVybiF0fHwhdGhpcy5tYXJrLmlzSW5TZXQodC5tYXJrcyk/dGhpczpuZXcga3YodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHQ9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHQuZGVsZXRlZEFmdGVyP251bGw6bmV3IHModC5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0LnBvcyxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1hyLmpzb25JRCgicmVtb3ZlTm9kZU1hcmsiLFU4KTtnbz1jbGFzcyBzIGV4dGVuZHMgWHJ7c3RhdGlje2kodGhpcywiUmVwbGFjZVN0ZXAiKX1jb25zdHJ1Y3RvcihlLHQsYSxyPSExKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLnNsaWNlPWEsdGhpcy5zdHJ1Y3R1cmU9cn1hcHBseShlKXtyZXR1cm4gdGhpcy5zdHJ1Y3R1cmUmJnd0dChlLHRoaXMuZnJvbSx0aGlzLnRvKT9tby5mYWlsKCJTdHJ1Y3R1cmUgcmVwbGFjZSB3b3VsZCBvdmVyd3JpdGUgY29udGVudCIpOm1vLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sdGhpcy5zbGljZSl9Z2V0TWFwKCl7cmV0dXJuIG5ldyBFZChbdGhpcy5mcm9tLHRoaXMudG8tdGhpcy5mcm9tLHRoaXMuc2xpY2Uuc2l6ZV0pfWludmVydChlKXtyZXR1cm4gbmV3IHModGhpcy5mcm9tLHRoaXMuZnJvbSt0aGlzLnNsaWNlLnNpemUsZS5zbGljZSh0aGlzLmZyb20sdGhpcy50bykpfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKSxhPXRoaXMuZnJvbT09dGhpcy50byYmcy5NQVBfQklBUzwwP3Q6ZS5tYXBSZXN1bHQodGhpcy5mcm9tLDEpO3JldHVybiBhLmRlbGV0ZWRBY3Jvc3MmJnQuZGVsZXRlZEFjcm9zcz9udWxsOm5ldyBzKGEucG9zLE1hdGgubWF4KGEucG9zLHQucG9zKSx0aGlzLnNsaWNlLHRoaXMuc3RydWN0dXJlKX1tZXJnZShlKXtpZighKGUgaW5zdGFuY2VvZiBzKXx8ZS5zdHJ1Y3R1cmV8fHRoaXMuc3RydWN0dXJlKXJldHVybiBudWxsO2lmKHRoaXMuZnJvbSt0aGlzLnNsaWNlLnNpemU9PWUuZnJvbSYmIXRoaXMuc2xpY2Uub3BlbkVuZCYmIWUuc2xpY2Uub3BlblN0YXJ0KXtsZXQgdD10aGlzLnNsaWNlLnNpemUrZS5zbGljZS5zaXplPT0wP190LmVtcHR5Om5ldyBfdCh0aGlzLnNsaWNlLmNvbnRlbnQuYXBwZW5kKGUuc2xpY2UuY29udGVudCksdGhpcy5zbGljZS5vcGVuU3RhcnQsZS5zbGljZS5vcGVuRW5kKTtyZXR1cm4gbmV3IHModGhpcy5mcm9tLHRoaXMudG8rKGUudG8tZS5mcm9tKSx0LHRoaXMuc3RydWN0dXJlKX1lbHNlIGlmKGUudG89PXRoaXMuZnJvbSYmIXRoaXMuc2xpY2Uub3BlblN0YXJ0JiYhZS5zbGljZS5vcGVuRW5kKXtsZXQgdD10aGlzLnNsaWNlLnNpemUrZS5zbGljZS5zaXplPT0wP190LmVtcHR5Om5ldyBfdChlLnNsaWNlLmNvbnRlbnQuYXBwZW5kKHRoaXMuc2xpY2UuY29udGVudCksZS5zbGljZS5vcGVuU3RhcnQsdGhpcy5zbGljZS5vcGVuRW5kKTtyZXR1cm4gbmV3IHMoZS5mcm9tLHRoaXMudG8sdCx0aGlzLnN0cnVjdHVyZSl9ZWxzZSByZXR1cm4gbnVsbH10b0pTT04oKXtsZXQgZT17c3RlcFR5cGU6InJlcGxhY2UiLGZyb206dGhpcy5mcm9tLHRvOnRoaXMudG99O3JldHVybiB0aGlzLnNsaWNlLnNpemUmJihlLnNsaWNlPXRoaXMuc2xpY2UudG9KU09OKCkpLHRoaXMuc3RydWN0dXJlJiYoZS5zdHJ1Y3R1cmU9ITApLGV9c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuZnJvbSE9Im51bWJlciJ8fHR5cGVvZiB0LnRvIT0ibnVtYmVyIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgUmVwbGFjZVN0ZXAuZnJvbUpTT04iKTtyZXR1cm4gbmV3IHModC5mcm9tLHQudG8sX3QuZnJvbUpTT04oZSx0LnNsaWNlKSwhIXQuc3RydWN0dXJlKX19O2dvLk1BUF9CSUFTPTEsWHIuanNvbklEKCJyZXBsYWNlIixnbyk7ZHI9Y2xhc3MgcyBleHRlbmRzIFhye3N0YXRpY3tpKHRoaXMsIlJlcGxhY2VBcm91bmRTdGVwIil9Y29uc3RydWN0b3IoZSx0LGEscixuLG8sbD0hMSl7c3VwZXIoKSx0aGlzLmZyb209ZSx0aGlzLnRvPXQsdGhpcy5nYXBGcm9tPWEsdGhpcy5nYXBUbz1yLHRoaXMuc2xpY2U9bix0aGlzLmluc2VydD1vLHRoaXMuc3RydWN0dXJlPWx9YXBwbHkoZSl7aWYodGhpcy5zdHJ1Y3R1cmUmJih3dHQoZSx0aGlzLmZyb20sdGhpcy5nYXBGcm9tKXx8d3R0KGUsdGhpcy5nYXBUbyx0aGlzLnRvKSkpcmV0dXJuIG1vLmZhaWwoIlN0cnVjdHVyZSBnYXAtcmVwbGFjZSB3b3VsZCBvdmVyd3JpdGUgY29udGVudCIpO2xldCB0PWUuc2xpY2UodGhpcy5nYXBGcm9tLHRoaXMuZ2FwVG8pO2lmKHQub3BlblN0YXJ0fHx0Lm9wZW5FbmQpcmV0dXJuIG1vLmZhaWwoIkdhcCBpcyBub3QgYSBmbGF0IHJhbmdlIik7bGV0IGE9dGhpcy5zbGljZS5pbnNlcnRBdCh0aGlzLmluc2VydCx0LmNvbnRlbnQpO3JldHVybiBhP21vLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sYSk6bW8uZmFpbCgiQ29udGVudCBkb2VzIG5vdCBmaXQgaW4gZ2FwIil9Z2V0TWFwKCl7cmV0dXJuIG5ldyBFZChbdGhpcy5mcm9tLHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5pbnNlcnQsdGhpcy5nYXBUbyx0aGlzLnRvLXRoaXMuZ2FwVG8sdGhpcy5zbGljZS5zaXplLXRoaXMuaW5zZXJ0XSl9aW52ZXJ0KGUpe2xldCB0PXRoaXMuZ2FwVG8tdGhpcy5nYXBGcm9tO3JldHVybiBuZXcgcyh0aGlzLmZyb20sdGhpcy5mcm9tK3RoaXMuc2xpY2Uuc2l6ZSt0LHRoaXMuZnJvbSt0aGlzLmluc2VydCx0aGlzLmZyb20rdGhpcy5pbnNlcnQrdCxlLnNsaWNlKHRoaXMuZnJvbSx0aGlzLnRvKS5yZW1vdmVCZXR3ZWVuKHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5nYXBUby10aGlzLmZyb20pLHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5zdHJ1Y3R1cmUpfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSksYT1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKSxyPXRoaXMuZnJvbT09dGhpcy5nYXBGcm9tP3QucG9zOmUubWFwKHRoaXMuZ2FwRnJvbSwtMSksbj10aGlzLnRvPT10aGlzLmdhcFRvP2EucG9zOmUubWFwKHRoaXMuZ2FwVG8sMSk7cmV0dXJuIHQuZGVsZXRlZEFjcm9zcyYmYS5kZWxldGVkQWNyb3NzfHxyPHQucG9zfHxuPmEucG9zP251bGw6bmV3IHModC5wb3MsYS5wb3MscixuLHRoaXMuc2xpY2UsdGhpcy5pbnNlcnQsdGhpcy5zdHJ1Y3R1cmUpfXRvSlNPTigpe2xldCBlPXtzdGVwVHlwZToicmVwbGFjZUFyb3VuZCIsZnJvbTp0aGlzLmZyb20sdG86dGhpcy50byxnYXBGcm9tOnRoaXMuZ2FwRnJvbSxnYXBUbzp0aGlzLmdhcFRvLGluc2VydDp0aGlzLmluc2VydH07cmV0dXJuIHRoaXMuc2xpY2Uuc2l6ZSYmKGUuc2xpY2U9dGhpcy5zbGljZS50b0pTT04oKSksdGhpcy5zdHJ1Y3R1cmUmJihlLnN0cnVjdHVyZT0hMCksZX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5mcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQudG8hPSJudW1iZXIifHx0eXBlb2YgdC5nYXBGcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQuZ2FwVG8hPSJudW1iZXIifHx0eXBlb2YgdC5pbnNlcnQhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBSZXBsYWNlQXJvdW5kU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0LmZyb20sdC50byx0LmdhcEZyb20sdC5nYXBUbyxfdC5mcm9tSlNPTihlLHQuc2xpY2UpLHQuaW5zZXJ0LCEhdC5zdHJ1Y3R1cmUpfX07WHIuanNvbklEKCJyZXBsYWNlQXJvdW5kIixkcik7aSh3dHQsImNvbnRlbnRCZXR3ZWVuIik7aSh1R2EsImFkZE1hcmsiKTtpKHBHYSwicmVtb3ZlTWFyayIpO2koa3R0LCJjbGVhckluY29tcGF0aWJsZSIpO2koaEdhLCJjYW5DdXQiKTtpKFBkLCJsaWZ0VGFyZ2V0Iik7aShmR2EsImxpZnQiKTtpKEs4LCJmaW5kV3JhcHBpbmciKTtpKHd1YSwid2l0aEF0dHJzIik7aShtR2EsImZpbmRXcmFwcGluZ091dHNpZGUiKTtpKGdHYSwiZmluZFdyYXBwaW5nSW5zaWRlIik7aShiR2EsIndyYXAiKTtpKHZHYSwic2V0QmxvY2tUeXBlIik7aShrdWEsInJlcGxhY2VOZXdsaW5lcyIpO2koU3VhLCJyZXBsYWNlTGluZWJyZWFrcyIpO2koeEdhLCJjYW5DaGFuZ2VUeXBlIik7aSh5R2EsInNldE5vZGVNYXJrdXAiKTtpKHpsLCJjYW5TcGxpdCIpO2kod0dhLCJzcGxpdCIpO2koWmwsImNhbkpvaW4iKTtpKGtHYSwiY2FuQXBwZW5kV2l0aFN1YnN0aXR1dGVkTGluZWJyZWFrcyIpO2koX3VhLCJqb2luYWJsZSIpO2koWTgsImpvaW5Qb2ludCIpO2koU0dhLCJqb2luIik7aShNdWEsImluc2VydFBvaW50Iik7aShWWiwiZHJvcFBvaW50Iik7aShfdiwicmVwbGFjZVN0ZXAiKTtpKHp1YSwiZml0c1RyaXZpYWxseSIpO1N0dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJGaXR0ZXIiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy4kZnJvbT1lLHRoaXMuJHRvPXQsdGhpcy51bnBsYWNlZD1hLHRoaXMuZnJvbnRpZXI9W10sdGhpcy5wbGFjZWQ9cnQuZW1wdHk7Zm9yKGxldCByPTA7cjw9ZS5kZXB0aDtyKyspe2xldCBuPWUubm9kZShyKTt0aGlzLmZyb250aWVyLnB1c2goe3R5cGU6bi50eXBlLG1hdGNoOm4uY29udGVudE1hdGNoQXQoZS5pbmRleEFmdGVyKHIpKX0pfWZvcihsZXQgcj1lLmRlcHRoO3I+MDtyLS0pdGhpcy5wbGFjZWQ9cnQuZnJvbShlLm5vZGUocikuY29weSh0aGlzLnBsYWNlZCkpfWdldCBkZXB0aCgpe3JldHVybiB0aGlzLmZyb250aWVyLmxlbmd0aC0xfWZpdCgpe2Zvcig7dGhpcy51bnBsYWNlZC5zaXplOyl7bGV0IGQ9dGhpcy5maW5kRml0dGFibGUoKTtkP3RoaXMucGxhY2VOb2RlcyhkKTp0aGlzLm9wZW5Nb3JlKCl8fHRoaXMuZHJvcE5vZGUoKX1sZXQgZT10aGlzLm11c3RNb3ZlSW5saW5lKCksdD10aGlzLnBsYWNlZC5zaXplLXRoaXMuZGVwdGgtdGhpcy4kZnJvbS5kZXB0aCxhPXRoaXMuJGZyb20scj10aGlzLmNsb3NlKGU8MD90aGlzLiR0bzphLmRvYy5yZXNvbHZlKGUpKTtpZighcilyZXR1cm4gbnVsbDtsZXQgbj10aGlzLnBsYWNlZCxvPWEuZGVwdGgsbD1yLmRlcHRoO2Zvcig7byYmbCYmbi5jaGlsZENvdW50PT0xOyluPW4uZmlyc3RDaGlsZC5jb250ZW50LG8tLSxsLS07bGV0IHA9bmV3IF90KG4sbyxsKTtyZXR1cm4gZT4tMT9uZXcgZHIoYS5wb3MsZSx0aGlzLiR0by5wb3MsdGhpcy4kdG8uZW5kKCkscCx0KTpwLnNpemV8fGEucG9zIT10aGlzLiR0by5wb3M/bmV3IGdvKGEucG9zLHIucG9zLHApOm51bGx9ZmluZEZpdHRhYmxlKCl7bGV0IGU9dGhpcy51bnBsYWNlZC5vcGVuU3RhcnQ7Zm9yKGxldCB0PXRoaXMudW5wbGFjZWQuY29udGVudCxhPTAscj10aGlzLnVucGxhY2VkLm9wZW5FbmQ7YTxlO2ErKyl7bGV0IG49dC5maXJzdENoaWxkO2lmKHQuY2hpbGRDb3VudD4xJiYocj0wKSxuLnR5cGUuc3BlYy5pc29sYXRpbmcmJnI8PWEpe2U9YTticmVha310PW4uY29udGVudH1mb3IobGV0IHQ9MTt0PD0yO3QrKylmb3IobGV0IGE9dD09MT9lOnRoaXMudW5wbGFjZWQub3BlblN0YXJ0O2E+PTA7YS0tKXtsZXQgcixuPW51bGw7YT8obj1fdHQodGhpcy51bnBsYWNlZC5jb250ZW50LGEtMSkuZmlyc3RDaGlsZCxyPW4uY29udGVudCk6cj10aGlzLnVucGxhY2VkLmNvbnRlbnQ7bGV0IG89ci5maXJzdENoaWxkO2ZvcihsZXQgbD10aGlzLmRlcHRoO2w+PTA7bC0tKXtsZXR7dHlwZTpwLG1hdGNoOmR9PXRoaXMuZnJvbnRpZXJbbF0sdSxjPW51bGw7aWYodD09MSYmKG8/ZC5tYXRjaFR5cGUoby50eXBlKXx8KGM9ZC5maWxsQmVmb3JlKHJ0LmZyb20obyksITEpKTpuJiZwLmNvbXBhdGlibGVDb250ZW50KG4udHlwZSkpKXJldHVybntzbGljZURlcHRoOmEsZnJvbnRpZXJEZXB0aDpsLHBhcmVudDpuLGluamVjdDpjfTtpZih0PT0yJiZvJiYodT1kLmZpbmRXcmFwcGluZyhvLnR5cGUpKSlyZXR1cm57c2xpY2VEZXB0aDphLGZyb250aWVyRGVwdGg6bCxwYXJlbnQ6bix3cmFwOnV9O2lmKG4mJmQubWF0Y2hUeXBlKG4udHlwZSkpYnJlYWt9fX1vcGVuTW9yZSgpe2xldHtjb250ZW50OmUsb3BlblN0YXJ0OnQsb3BlbkVuZDphfT10aGlzLnVucGxhY2VkLHI9X3R0KGUsdCk7cmV0dXJuIXIuY2hpbGRDb3VudHx8ci5maXJzdENoaWxkLmlzTGVhZj8hMToodGhpcy51bnBsYWNlZD1uZXcgX3QoZSx0KzEsTWF0aC5tYXgoYSxyLnNpemUrdD49ZS5zaXplLWE/dCsxOjApKSwhMCl9ZHJvcE5vZGUoKXtsZXR7Y29udGVudDplLG9wZW5TdGFydDp0LG9wZW5FbmQ6YX09dGhpcy51bnBsYWNlZCxyPV90dChlLHQpO2lmKHIuY2hpbGRDb3VudDw9MSYmdD4wKXtsZXQgbj1lLnNpemUtdDw9dCtyLnNpemU7dGhpcy51bnBsYWNlZD1uZXcgX3QoQlooZSx0LTEsMSksdC0xLG4/dC0xOmEpfWVsc2UgdGhpcy51bnBsYWNlZD1uZXcgX3QoQlooZSx0LDEpLHQsYSl9cGxhY2VOb2Rlcyh7c2xpY2VEZXB0aDplLGZyb250aWVyRGVwdGg6dCxwYXJlbnQ6YSxpbmplY3Q6cix3cmFwOm59KXtmb3IoO3RoaXMuZGVwdGg+dDspdGhpcy5jbG9zZUZyb250aWVyTm9kZSgpO2lmKG4pZm9yKGxldCBtPTA7bTxuLmxlbmd0aDttKyspdGhpcy5vcGVuRnJvbnRpZXJOb2RlKG5bbV0pO2xldCBvPXRoaXMudW5wbGFjZWQsbD1hP2EuY29udGVudDpvLmNvbnRlbnQscD1vLm9wZW5TdGFydC1lLGQ9MCx1PVtdLHttYXRjaDpjLHR5cGU6Yn09dGhpcy5mcm9udGllclt0XTtpZihyKXtmb3IobGV0IG09MDttPHIuY2hpbGRDb3VudDttKyspdS5wdXNoKHIuY2hpbGQobSkpO2M9Yy5tYXRjaEZyYWdtZW50KHIpfWxldCB2PWwuc2l6ZStlLShvLmNvbnRlbnQuc2l6ZS1vLm9wZW5FbmQpO2Zvcig7ZDxsLmNoaWxkQ291bnQ7KXtsZXQgbT1sLmNoaWxkKGQpLGY9Yy5tYXRjaFR5cGUobS50eXBlKTtpZighZilicmVhaztkKyssKGQ+MXx8cD09MHx8bS5jb250ZW50LnNpemUpJiYoYz1mLHUucHVzaChDdWEobS5tYXJrKGIuYWxsb3dlZE1hcmtzKG0ubWFya3MpKSxkPT0xP3A6MCxkPT1sLmNoaWxkQ291bnQ/djotMSkpKX1sZXQgeD1kPT1sLmNoaWxkQ291bnQ7eHx8KHY9LTEpLHRoaXMucGxhY2VkPUhaKHRoaXMucGxhY2VkLHQscnQuZnJvbSh1KSksdGhpcy5mcm9udGllclt0XS5tYXRjaD1jLHgmJnY8MCYmYSYmYS50eXBlPT10aGlzLmZyb250aWVyW3RoaXMuZGVwdGhdLnR5cGUmJnRoaXMuZnJvbnRpZXIubGVuZ3RoPjEmJnRoaXMuY2xvc2VGcm9udGllck5vZGUoKTtmb3IobGV0IG09MCxmPWw7bTx2O20rKyl7bGV0IHk9Zi5sYXN0Q2hpbGQ7dGhpcy5mcm9udGllci5wdXNoKHt0eXBlOnkudHlwZSxtYXRjaDp5LmNvbnRlbnRNYXRjaEF0KHkuY2hpbGRDb3VudCl9KSxmPXkuY29udGVudH10aGlzLnVucGxhY2VkPXg/ZT09MD9fdC5lbXB0eTpuZXcgX3QoQlooby5jb250ZW50LGUtMSwxKSxlLTEsdjwwP28ub3BlbkVuZDplLTEpOm5ldyBfdChCWihvLmNvbnRlbnQsZSxkKSxvLm9wZW5TdGFydCxvLm9wZW5FbmQpfW11c3RNb3ZlSW5saW5lKCl7aWYoIXRoaXMuJHRvLnBhcmVudC5pc1RleHRibG9jaylyZXR1cm4tMTtsZXQgZT10aGlzLmZyb250aWVyW3RoaXMuZGVwdGhdLHQ7aWYoIWUudHlwZS5pc1RleHRibG9ja3x8IU10dCh0aGlzLiR0byx0aGlzLiR0by5kZXB0aCxlLnR5cGUsZS5tYXRjaCwhMSl8fHRoaXMuJHRvLmRlcHRoPT10aGlzLmRlcHRoJiYodD10aGlzLmZpbmRDbG9zZUxldmVsKHRoaXMuJHRvKSkmJnQuZGVwdGg9PXRoaXMuZGVwdGgpcmV0dXJuLTE7bGV0e2RlcHRoOmF9PXRoaXMuJHRvLHI9dGhpcy4kdG8uYWZ0ZXIoYSk7Zm9yKDthPjEmJnI9PXRoaXMuJHRvLmVuZCgtLWEpOykrK3I7cmV0dXJuIHJ9ZmluZENsb3NlTGV2ZWwoZSl7ZTpmb3IobGV0IHQ9TWF0aC5taW4odGhpcy5kZXB0aCxlLmRlcHRoKTt0Pj0wO3QtLSl7bGV0e21hdGNoOmEsdHlwZTpyfT10aGlzLmZyb250aWVyW3RdLG49dDxlLmRlcHRoJiZlLmVuZCh0KzEpPT1lLnBvcysoZS5kZXB0aC0odCsxKSksbz1NdHQoZSx0LHIsYSxuKTtpZihvKXtmb3IobGV0IGw9dC0xO2w+PTA7bC0tKXtsZXR7bWF0Y2g6cCx0eXBlOmR9PXRoaXMuZnJvbnRpZXJbbF0sdT1NdHQoZSxsLGQscCwhMCk7aWYoIXV8fHUuY2hpbGRDb3VudCljb250aW51ZSBlfXJldHVybntkZXB0aDp0LGZpdDpvLG1vdmU6bj9lLmRvYy5yZXNvbHZlKGUuYWZ0ZXIodCsxKSk6ZX19fX1jbG9zZShlKXtsZXQgdD10aGlzLmZpbmRDbG9zZUxldmVsKGUpO2lmKCF0KXJldHVybiBudWxsO2Zvcig7dGhpcy5kZXB0aD50LmRlcHRoOyl0aGlzLmNsb3NlRnJvbnRpZXJOb2RlKCk7dC5maXQuY2hpbGRDb3VudCYmKHRoaXMucGxhY2VkPUhaKHRoaXMucGxhY2VkLHQuZGVwdGgsdC5maXQpKSxlPXQubW92ZTtmb3IobGV0IGE9dC5kZXB0aCsxO2E8PWUuZGVwdGg7YSsrKXtsZXQgcj1lLm5vZGUoYSksbj1yLnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUoci5jb250ZW50LCEwLGUuaW5kZXgoYSkpO3RoaXMub3BlbkZyb250aWVyTm9kZShyLnR5cGUsci5hdHRycyxuKX1yZXR1cm4gZX1vcGVuRnJvbnRpZXJOb2RlKGUsdD1udWxsLGEpe2xldCByPXRoaXMuZnJvbnRpZXJbdGhpcy5kZXB0aF07ci5tYXRjaD1yLm1hdGNoLm1hdGNoVHlwZShlKSx0aGlzLnBsYWNlZD1IWih0aGlzLnBsYWNlZCx0aGlzLmRlcHRoLHJ0LmZyb20oZS5jcmVhdGUodCxhKSkpLHRoaXMuZnJvbnRpZXIucHVzaCh7dHlwZTplLG1hdGNoOmUuY29udGVudE1hdGNofSl9Y2xvc2VGcm9udGllck5vZGUoKXtsZXQgdD10aGlzLmZyb250aWVyLnBvcCgpLm1hdGNoLmZpbGxCZWZvcmUocnQuZW1wdHksITApO3QuY2hpbGRDb3VudCYmKHRoaXMucGxhY2VkPUhaKHRoaXMucGxhY2VkLHRoaXMuZnJvbnRpZXIubGVuZ3RoLHQpKX19O2koQlosImRyb3BGcm9tRnJhZ21lbnQiKTtpKEhaLCJhZGRUb0ZyYWdtZW50Iik7aShfdHQsImNvbnRlbnRBdCIpO2koQ3VhLCJjbG9zZU5vZGVTdGFydCIpO2koTXR0LCJjb250ZW50QWZ0ZXJGaXRzIik7aShfR2EsImludmFsaWRNYXJrcyIpO2koTUdhLCJkZWZpbmVzQ29udGVudCIpO2koekdhLCJyZXBsYWNlUmFuZ2UiKTtpKFR1YSwiY2xvc2VGcmFnbWVudCIpO2koQ0dhLCJyZXBsYWNlUmFuZ2VXaXRoIik7aShUR2EsImRlbGV0ZVJhbmdlIik7aSgkdWEsImNvdmVyZWREZXB0aHMiKTtxWj1jbGFzcyBzIGV4dGVuZHMgWHJ7c3RhdGlje2kodGhpcywiQXR0clN0ZXAiKX1jb25zdHJ1Y3RvcihlLHQsYSl7c3VwZXIoKSx0aGlzLnBvcz1lLHRoaXMuYXR0cj10LHRoaXMudmFsdWU9YX1hcHBseShlKXtsZXQgdD1lLm5vZGVBdCh0aGlzLnBvcyk7aWYoIXQpcmV0dXJuIG1vLmZhaWwoIk5vIG5vZGUgYXQgYXR0cmlidXRlIHN0ZXAncyBwb3NpdGlvbiIpO2xldCBhPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBuIGluIHQuYXR0cnMpYVtuXT10LmF0dHJzW25dO2FbdGhpcy5hdHRyXT10aGlzLnZhbHVlO2xldCByPXQudHlwZS5jcmVhdGUoYSxudWxsLHQubWFya3MpO3JldHVybiBtby5mcm9tUmVwbGFjZShlLHRoaXMucG9zLHRoaXMucG9zKzEsbmV3IF90KHJ0LmZyb20ociksMCx0LmlzTGVhZj8wOjEpKX1nZXRNYXAoKXtyZXR1cm4gRWQuZW1wdHl9aW52ZXJ0KGUpe3JldHVybiBuZXcgcyh0aGlzLnBvcyx0aGlzLmF0dHIsZS5ub2RlQXQodGhpcy5wb3MpLmF0dHJzW3RoaXMuYXR0cl0pfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLnBvcywxKTtyZXR1cm4gdC5kZWxldGVkQWZ0ZXI/bnVsbDpuZXcgcyh0LnBvcyx0aGlzLmF0dHIsdGhpcy52YWx1ZSl9dG9KU09OKCl7cmV0dXJue3N0ZXBUeXBlOiJhdHRyIixwb3M6dGhpcy5wb3MsYXR0cjp0aGlzLmF0dHIsdmFsdWU6dGhpcy52YWx1ZX19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQucG9zIT0ibnVtYmVyInx8dHlwZW9mIHQuYXR0ciE9InN0cmluZyIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIEF0dHJTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBzKHQucG9zLHQuYXR0cix0LnZhbHVlKX19O1hyLmpzb25JRCgiYXR0ciIscVopO2paPWNsYXNzIHMgZXh0ZW5kcyBYcntzdGF0aWN7aSh0aGlzLCJEb2NBdHRyU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLmF0dHI9ZSx0aGlzLnZhbHVlPXR9YXBwbHkoZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHIgaW4gZS5hdHRycyl0W3JdPWUuYXR0cnNbcl07dFt0aGlzLmF0dHJdPXRoaXMudmFsdWU7bGV0IGE9ZS50eXBlLmNyZWF0ZSh0LGUuY29udGVudCxlLm1hcmtzKTtyZXR1cm4gbW8ub2soYSl9Z2V0TWFwKCl7cmV0dXJuIEVkLmVtcHR5fWludmVydChlKXtyZXR1cm4gbmV3IHModGhpcy5hdHRyLGUuYXR0cnNbdGhpcy5hdHRyXSl9bWFwKGUpe3JldHVybiB0aGlzfXRvSlNPTigpe3JldHVybntzdGVwVHlwZToiZG9jQXR0ciIsYXR0cjp0aGlzLmF0dHIsdmFsdWU6dGhpcy52YWx1ZX19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuYXR0ciE9InN0cmluZyIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIERvY0F0dHJTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBzKHQuYXR0cix0LnZhbHVlKX19O1hyLmpzb25JRCgiZG9jQXR0ciIsalopO1c4PWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje2kodGhpcywiVHJhbnNmb3JtRXJyb3IiKX19O1c4PWkoZnVuY3Rpb24gcyhlKXtsZXQgdD1FcnJvci5jYWxsKHRoaXMsZSk7cmV0dXJuIHQuX19wcm90b19fPXMucHJvdG90eXBlLHR9LCJUcmFuc2Zvcm1FcnJvciIpLFc4LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksVzgucHJvdG90eXBlLmNvbnN0cnVjdG9yPVc4LFc4LnByb3RvdHlwZS5uYW1lPSJUcmFuc2Zvcm1FcnJvciI7Rzg9Y2xhc3N7c3RhdGlje2kodGhpcywiVHJhbnNmb3JtIil9Y29uc3RydWN0b3IoZSl7dGhpcy5kb2M9ZSx0aGlzLnN0ZXBzPVtdLHRoaXMuZG9jcz1bXSx0aGlzLm1hcHBpbmc9bmV3IFN2fWdldCBiZWZvcmUoKXtyZXR1cm4gdGhpcy5kb2NzLmxlbmd0aD90aGlzLmRvY3NbMF06dGhpcy5kb2N9c3RlcChlKXtsZXQgdD10aGlzLm1heWJlU3RlcChlKTtpZih0LmZhaWxlZCl0aHJvdyBuZXcgVzgodC5mYWlsZWQpO3JldHVybiB0aGlzfW1heWJlU3RlcChlKXtsZXQgdD1lLmFwcGx5KHRoaXMuZG9jKTtyZXR1cm4gdC5mYWlsZWR8fHRoaXMuYWRkU3RlcChlLHQuZG9jKSx0fWdldCBkb2NDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuc3RlcHMubGVuZ3RoPjB9Y2hhbmdlZFJhbmdlKCl7bGV0IGU9MWU5LHQ9LTFlOTtmb3IobGV0IGE9MDthPHRoaXMubWFwcGluZy5tYXBzLmxlbmd0aDthKyspe2xldCByPXRoaXMubWFwcGluZy5tYXBzW2FdO2EmJihlPXIubWFwKGUsMSksdD1yLm1hcCh0LC0xKSksci5mb3JFYWNoKChuLG8sbCxwKT0+e2U9TWF0aC5taW4oZSxsKSx0PU1hdGgubWF4KHQscCl9KX1yZXR1cm4gZT09MWU5P251bGw6e2Zyb206ZSx0bzp0fX1hZGRTdGVwKGUsdCl7dGhpcy5kb2NzLnB1c2godGhpcy5kb2MpLHRoaXMuc3RlcHMucHVzaChlKSx0aGlzLm1hcHBpbmcuYXBwZW5kTWFwKGUuZ2V0TWFwKCkpLHRoaXMuZG9jPXR9cmVwbGFjZShlLHQ9ZSxhPV90LmVtcHR5KXtsZXQgcj1fdih0aGlzLmRvYyxlLHQsYSk7cmV0dXJuIHImJnRoaXMuc3RlcChyKSx0aGlzfXJlcGxhY2VXaXRoKGUsdCxhKXtyZXR1cm4gdGhpcy5yZXBsYWNlKGUsdCxuZXcgX3QocnQuZnJvbShhKSwwLDApKX1kZWxldGUoZSx0KXtyZXR1cm4gdGhpcy5yZXBsYWNlKGUsdCxfdC5lbXB0eSl9aW5zZXJ0KGUsdCl7cmV0dXJuIHRoaXMucmVwbGFjZVdpdGgoZSxlLHQpfXJlcGxhY2VSYW5nZShlLHQsYSl7cmV0dXJuIHpHYSh0aGlzLGUsdCxhKSx0aGlzfXJlcGxhY2VSYW5nZVdpdGgoZSx0LGEpe3JldHVybiBDR2EodGhpcyxlLHQsYSksdGhpc31kZWxldGVSYW5nZShlLHQpe3JldHVybiBUR2EodGhpcyxlLHQpLHRoaXN9bGlmdChlLHQpe3JldHVybiBmR2EodGhpcyxlLHQpLHRoaXN9am9pbihlLHQ9MSl7cmV0dXJuIFNHYSh0aGlzLGUsdCksdGhpc313cmFwKGUsdCl7cmV0dXJuIGJHYSh0aGlzLGUsdCksdGhpc31zZXRCbG9ja1R5cGUoZSx0PWUsYSxyPW51bGwpe3JldHVybiB2R2EodGhpcyxlLHQsYSxyKSx0aGlzfXNldE5vZGVNYXJrdXAoZSx0LGE9bnVsbCxyKXtyZXR1cm4geUdhKHRoaXMsZSx0LGEsciksdGhpc31zZXROb2RlQXR0cmlidXRlKGUsdCxhKXtyZXR1cm4gdGhpcy5zdGVwKG5ldyBxWihlLHQsYSkpLHRoaXN9c2V0RG9jQXR0cmlidXRlKGUsdCl7cmV0dXJuIHRoaXMuc3RlcChuZXcgalooZSx0KSksdGhpc31hZGROb2RlTWFyayhlLHQpe3JldHVybiB0aGlzLnN0ZXAobmV3IGt2KGUsdCkpLHRoaXN9cmVtb3ZlTm9kZU1hcmsoZSx0KXtsZXQgYT10aGlzLmRvYy5ub2RlQXQoZSk7aWYoIWEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIG5vZGUgYXQgcG9zaXRpb24gIitlKTtpZih0IGluc3RhbmNlb2YgZnMpdC5pc0luU2V0KGEubWFya3MpJiZ0aGlzLnN0ZXAobmV3IFU4KGUsdCkpO2Vsc2V7bGV0IHI9YS5tYXJrcyxuLG89W107Zm9yKDtuPXQuaXNJblNldChyKTspby5wdXNoKG5ldyBVOChlLG4pKSxyPW4ucmVtb3ZlRnJvbVNldChyKTtmb3IobGV0IGw9by5sZW5ndGgtMTtsPj0wO2wtLSl0aGlzLnN0ZXAob1tsXSl9cmV0dXJuIHRoaXN9c3BsaXQoZSx0PTEsYSl7cmV0dXJuIHdHYSh0aGlzLGUsdCxhKSx0aGlzfWFkZE1hcmsoZSx0LGEpe3JldHVybiB1R2EodGhpcyxlLHQsYSksdGhpc31yZW1vdmVNYXJrKGUsdCxhKXtyZXR1cm4gcEdhKHRoaXMsZSx0LGEpLHRoaXN9Y2xlYXJJbmNvbXBhdGlibGUoZSx0LGEpe3JldHVybiBrdHQodGhpcyxlLHQsYSksdGhpc319fSk7ZnVuY3Rpb24gTHVhKHMpeyFEdWEmJiFzLnBhcmVudC5pbmxpbmVDb250ZW50JiYoRHVhPSEwLGNvbnNvbGUud2FybigiVGV4dFNlbGVjdGlvbiBlbmRwb2ludCBub3QgcG9pbnRpbmcgaW50byBhIG5vZGUgd2l0aCBpbmxpbmUgY29udGVudCAoIitzLnBhcmVudC50eXBlLm5hbWUrIikiKSl9ZnVuY3Rpb24gTXYocyxlLHQsYSxyLG49ITEpe2lmKGUuaW5saW5lQ29udGVudClyZXR1cm4gSnQuY3JlYXRlKHMsdCk7Zm9yKGxldCBvPWEtKHI+MD8wOjEpO3I+MD9vPGUuY2hpbGRDb3VudDpvPj0wO28rPXIpe2xldCBsPWUuY2hpbGQobyk7aWYobC5pc0F0b20pe2lmKCFuJiZGdC5pc1NlbGVjdGFibGUobCkpcmV0dXJuIEZ0LmNyZWF0ZShzLHQtKHI8MD9sLm5vZGVTaXplOjApKX1lbHNle2xldCBwPU12KHMsbCx0K3IscjwwP2wuY2hpbGRDb3VudDowLHIsbik7aWYocClyZXR1cm4gcH10Kz1sLm5vZGVTaXplKnJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gRXVhKHMsZSx0KXtsZXQgYT1zLnN0ZXBzLmxlbmd0aC0xO2lmKGE8ZSlyZXR1cm47bGV0IHI9cy5zdGVwc1thXTtpZighKHIgaW5zdGFuY2VvZiBnb3x8ciBpbnN0YW5jZW9mIGRyKSlyZXR1cm47bGV0IG49cy5tYXBwaW5nLm1hcHNbYV0sbztuLmZvckVhY2goKGwscCxkLHUpPT57bz09bnVsbCYmKG89dSl9KSxzLnNldFNlbGVjdGlvbihRdC5uZWFyKHMuZG9jLnJlc29sdmUobyksdCkpfWZ1bmN0aW9uIEF1YShzLGUpe3JldHVybiFlfHwhcz9zOnMuYmluZChlKX1mdW5jdGlvbiBOdWEocyxlLHQpe2ZvcihsZXQgYSBpbiBzKXtsZXQgcj1zW2FdO3IgaW5zdGFuY2VvZiBGdW5jdGlvbj9yPXIuYmluZChlKTphPT0iaGFuZGxlRE9NRXZlbnRzIiYmKHI9TnVhKHIsZSx7fSkpLHRbYV09cn1yZXR1cm4gdH1mdW5jdGlvbiBSdWEocyl7cmV0dXJuIHMgaW4gVHR0P3MrIiQiKyArK1R0dFtzXTooVHR0W3NdPTAscysiJCIpfXZhciB6dHQsUXQsWDgsRHVhLEp0LGpuZSxGdCxDdHQsbm4sJEdhLFB1YSxWbmUsSXVhLFVuZSxaOCxER2EsVVosV1osWXMsVHR0LCRyLHJ1PWcoKCk9PntfaCgpO3poKCk7enR0PU9iamVjdC5jcmVhdGUobnVsbCksUXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMuJGFuY2hvcj1lLHRoaXMuJGhlYWQ9dCx0aGlzLnJhbmdlcz1hfHxbbmV3IFg4KGUubWluKHQpLGUubWF4KHQpKV19Z2V0IGFuY2hvcigpe3JldHVybiB0aGlzLiRhbmNob3IucG9zfWdldCBoZWFkKCl7cmV0dXJuIHRoaXMuJGhlYWQucG9zfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuJGZyb20ucG9zfWdldCB0bygpe3JldHVybiB0aGlzLiR0by5wb3N9Z2V0ICRmcm9tKCl7cmV0dXJuIHRoaXMucmFuZ2VzWzBdLiRmcm9tfWdldCAkdG8oKXtyZXR1cm4gdGhpcy5yYW5nZXNbMF0uJHRvfWdldCBlbXB0eSgpe2xldCBlPXRoaXMucmFuZ2VzO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKGVbdF0uJGZyb20ucG9zIT1lW3RdLiR0by5wb3MpcmV0dXJuITE7cmV0dXJuITB9Y29udGVudCgpe3JldHVybiB0aGlzLiRmcm9tLmRvYy5zbGljZSh0aGlzLmZyb20sdGhpcy50bywhMCl9cmVwbGFjZShlLHQ9X3QuZW1wdHkpe2xldCBhPXQuY29udGVudC5sYXN0Q2hpbGQscj1udWxsO2ZvcihsZXQgbD0wO2w8dC5vcGVuRW5kO2wrKylyPWEsYT1hLmxhc3RDaGlsZDtsZXQgbj1lLnN0ZXBzLmxlbmd0aCxvPXRoaXMucmFuZ2VzO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKXtsZXR7JGZyb206cCwkdG86ZH09b1tsXSx1PWUubWFwcGluZy5zbGljZShuKTtlLnJlcGxhY2VSYW5nZSh1Lm1hcChwLnBvcyksdS5tYXAoZC5wb3MpLGw/X3QuZW1wdHk6dCksbD09MCYmRXVhKGUsbiwoYT9hLmlzSW5saW5lOnImJnIuaXNUZXh0YmxvY2spPy0xOjEpfX1yZXBsYWNlV2l0aChlLHQpe2xldCBhPWUuc3RlcHMubGVuZ3RoLHI9dGhpcy5yYW5nZXM7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspe2xldHskZnJvbTpvLCR0bzpsfT1yW25dLHA9ZS5tYXBwaW5nLnNsaWNlKGEpLGQ9cC5tYXAoby5wb3MpLHU9cC5tYXAobC5wb3MpO24/ZS5kZWxldGVSYW5nZShkLHUpOihlLnJlcGxhY2VSYW5nZVdpdGgoZCx1LHQpLEV1YShlLGEsdC5pc0lubGluZT8tMToxKSl9fXN0YXRpYyBmaW5kRnJvbShlLHQsYT0hMSl7bGV0IHI9ZS5wYXJlbnQuaW5saW5lQ29udGVudD9uZXcgSnQoZSk6TXYoZS5ub2RlKDApLGUucGFyZW50LGUucG9zLGUuaW5kZXgoKSx0LGEpO2lmKHIpcmV0dXJuIHI7Zm9yKGxldCBuPWUuZGVwdGgtMTtuPj0wO24tLSl7bGV0IG89dDwwP012KGUubm9kZSgwKSxlLm5vZGUobiksZS5iZWZvcmUobisxKSxlLmluZGV4KG4pLHQsYSk6TXYoZS5ub2RlKDApLGUubm9kZShuKSxlLmFmdGVyKG4rMSksZS5pbmRleChuKSsxLHQsYSk7aWYobylyZXR1cm4gb31yZXR1cm4gbnVsbH1zdGF0aWMgbmVhcihlLHQ9MSl7cmV0dXJuIHRoaXMuZmluZEZyb20oZSx0KXx8dGhpcy5maW5kRnJvbShlLC10KXx8bmV3IG5uKGUubm9kZSgwKSl9c3RhdGljIGF0U3RhcnQoZSl7cmV0dXJuIE12KGUsZSwwLDAsMSl8fG5ldyBubihlKX1zdGF0aWMgYXRFbmQoZSl7cmV0dXJuIE12KGUsZSxlLmNvbnRlbnQuc2l6ZSxlLmNoaWxkQ291bnQsLTEpfHxuZXcgbm4oZSl9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXR8fCF0LnR5cGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFNlbGVjdGlvbi5mcm9tSlNPTiIpO2xldCBhPXp0dFt0LnR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzZWxlY3Rpb24gdHlwZSAke3QudHlwZX0gZGVmaW5lZGApO3JldHVybiBhLmZyb21KU09OKGUsdCl9c3RhdGljIGpzb25JRChlLHQpe2lmKGUgaW4genR0KXRocm93IG5ldyBSYW5nZUVycm9yKCJEdXBsaWNhdGUgdXNlIG9mIHNlbGVjdGlvbiBKU09OIElEICIrZSk7cmV0dXJuIHp0dFtlXT10LHQucHJvdG90eXBlLmpzb25JRD1lLHR9Z2V0Qm9va21hcmsoKXtyZXR1cm4gSnQuYmV0d2Vlbih0aGlzLiRhbmNob3IsdGhpcy4kaGVhZCkuZ2V0Qm9va21hcmsoKX19O1F0LnByb3RvdHlwZS52aXNpYmxlPSEwO1g4PWNsYXNze3N0YXRpY3tpKHRoaXMsIlNlbGVjdGlvblJhbmdlIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLiRmcm9tPWUsdGhpcy4kdG89dH19LER1YT0hMTtpKEx1YSwiY2hlY2tUZXh0U2VsZWN0aW9uIik7SnQ9Y2xhc3MgcyBleHRlbmRzIFF0e3N0YXRpY3tpKHRoaXMsIlRleHRTZWxlY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHQ9ZSl7THVhKGUpLEx1YSh0KSxzdXBlcihlLHQpfWdldCAkY3Vyc29yKCl7cmV0dXJuIHRoaXMuJGFuY2hvci5wb3M9PXRoaXMuJGhlYWQucG9zP3RoaXMuJGhlYWQ6bnVsbH1tYXAoZSx0KXtsZXQgYT1lLnJlc29sdmUodC5tYXAodGhpcy5oZWFkKSk7aWYoIWEucGFyZW50LmlubGluZUNvbnRlbnQpcmV0dXJuIFF0Lm5lYXIoYSk7bGV0IHI9ZS5yZXNvbHZlKHQubWFwKHRoaXMuYW5jaG9yKSk7cmV0dXJuIG5ldyBzKHIucGFyZW50LmlubGluZUNvbnRlbnQ/cjphLGEpfXJlcGxhY2UoZSx0PV90LmVtcHR5KXtpZihzdXBlci5yZXBsYWNlKGUsdCksdD09X3QuZW1wdHkpe2xldCBhPXRoaXMuJGZyb20ubWFya3NBY3Jvc3ModGhpcy4kdG8pO2EmJmUuZW5zdXJlTWFya3MoYSl9fWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgcyYmZS5hbmNob3I9PXRoaXMuYW5jaG9yJiZlLmhlYWQ9PXRoaXMuaGVhZH1nZXRCb29rbWFyaygpe3JldHVybiBuZXcgam5lKHRoaXMuYW5jaG9yLHRoaXMuaGVhZCl9dG9KU09OKCl7cmV0dXJue3R5cGU6InRleHQiLGFuY2hvcjp0aGlzLmFuY2hvcixoZWFkOnRoaXMuaGVhZH19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuYW5jaG9yIT0ibnVtYmVyInx8dHlwZW9mIHQuaGVhZCE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFRleHRTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IHMoZS5yZXNvbHZlKHQuYW5jaG9yKSxlLnJlc29sdmUodC5oZWFkKSl9c3RhdGljIGNyZWF0ZShlLHQsYT10KXtsZXQgcj1lLnJlc29sdmUodCk7cmV0dXJuIG5ldyB0aGlzKHIsYT09dD9yOmUucmVzb2x2ZShhKSl9c3RhdGljIGJldHdlZW4oZSx0LGEpe2xldCByPWUucG9zLXQucG9zO2lmKCghYXx8cikmJihhPXI+PTA/MTotMSksIXQucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBuPVF0LmZpbmRGcm9tKHQsYSwhMCl8fFF0LmZpbmRGcm9tKHQsLWEsITApO2lmKG4pdD1uLiRoZWFkO2Vsc2UgcmV0dXJuIFF0Lm5lYXIodCxhKX1yZXR1cm4gZS5wYXJlbnQuaW5saW5lQ29udGVudHx8KHI9PTA/ZT10OihlPShRdC5maW5kRnJvbShlLC1hLCEwKXx8UXQuZmluZEZyb20oZSxhLCEwKSkuJGFuY2hvcixlLnBvczx0LnBvcyE9cjwwJiYoZT10KSkpLG5ldyBzKGUsdCl9fTtRdC5qc29uSUQoInRleHQiLEp0KTtqbmU9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJUZXh0Qm9va21hcmsiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuYW5jaG9yPWUsdGhpcy5oZWFkPXR9bWFwKGUpe3JldHVybiBuZXcgcyhlLm1hcCh0aGlzLmFuY2hvciksZS5tYXAodGhpcy5oZWFkKSl9cmVzb2x2ZShlKXtyZXR1cm4gSnQuYmV0d2VlbihlLnJlc29sdmUodGhpcy5hbmNob3IpLGUucmVzb2x2ZSh0aGlzLmhlYWQpKX19LEZ0PWNsYXNzIHMgZXh0ZW5kcyBRdHtzdGF0aWN7aSh0aGlzLCJOb2RlU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7bGV0IHQ9ZS5ub2RlQWZ0ZXIsYT1lLm5vZGUoMCkucmVzb2x2ZShlLnBvcyt0Lm5vZGVTaXplKTtzdXBlcihlLGEpLHRoaXMubm9kZT10fW1hcChlLHQpe2xldHtkZWxldGVkOmEscG9zOnJ9PXQubWFwUmVzdWx0KHRoaXMuYW5jaG9yKSxuPWUucmVzb2x2ZShyKTtyZXR1cm4gYT9RdC5uZWFyKG4pOm5ldyBzKG4pfWNvbnRlbnQoKXtyZXR1cm4gbmV3IF90KHJ0LmZyb20odGhpcy5ub2RlKSwwLDApfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgcyYmZS5hbmNob3I9PXRoaXMuYW5jaG9yfXRvSlNPTigpe3JldHVybnt0eXBlOiJub2RlIixhbmNob3I6dGhpcy5hbmNob3J9fWdldEJvb2ttYXJrKCl7cmV0dXJuIG5ldyBDdHQodGhpcy5hbmNob3IpfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LmFuY2hvciE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIE5vZGVTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IHMoZS5yZXNvbHZlKHQuYW5jaG9yKSl9c3RhdGljIGNyZWF0ZShlLHQpe3JldHVybiBuZXcgcyhlLnJlc29sdmUodCkpfXN0YXRpYyBpc1NlbGVjdGFibGUoZSl7cmV0dXJuIWUuaXNUZXh0JiZlLnR5cGUuc3BlYy5zZWxlY3RhYmxlIT09ITF9fTtGdC5wcm90b3R5cGUudmlzaWJsZT0hMSxRdC5qc29uSUQoIm5vZGUiLEZ0KTtDdHQ9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlQm9va21hcmsiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmFuY2hvcj1lfW1hcChlKXtsZXR7ZGVsZXRlZDp0LHBvczphfT1lLm1hcFJlc3VsdCh0aGlzLmFuY2hvcik7cmV0dXJuIHQ/bmV3IGpuZShhLGEpOm5ldyBzKGEpfXJlc29sdmUoZSl7bGV0IHQ9ZS5yZXNvbHZlKHRoaXMuYW5jaG9yKSxhPXQubm9kZUFmdGVyO3JldHVybiBhJiZGdC5pc1NlbGVjdGFibGUoYSk/bmV3IEZ0KHQpOlF0Lm5lYXIodCl9fSxubj1jbGFzcyBzIGV4dGVuZHMgUXR7c3RhdGlje2kodGhpcywiQWxsU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5yZXNvbHZlKDApLGUucmVzb2x2ZShlLmNvbnRlbnQuc2l6ZSkpfXJlcGxhY2UoZSx0PV90LmVtcHR5KXtpZih0PT1fdC5lbXB0eSl7ZS5kZWxldGUoMCxlLmRvYy5jb250ZW50LnNpemUpO2xldCBhPVF0LmF0U3RhcnQoZS5kb2MpO2EuZXEoZS5zZWxlY3Rpb24pfHxlLnNldFNlbGVjdGlvbihhKX1lbHNlIHN1cGVyLnJlcGxhY2UoZSx0KX10b0pTT04oKXtyZXR1cm57dHlwZToiYWxsIn19c3RhdGljIGZyb21KU09OKGUpe3JldHVybiBuZXcgcyhlKX1tYXAoZSl7cmV0dXJuIG5ldyBzKGUpfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2Ygc31nZXRCb29rbWFyaygpe3JldHVybiAkR2F9fTtRdC5qc29uSUQoImFsbCIsbm4pOyRHYT17bWFwKCl7cmV0dXJuIHRoaXN9LHJlc29sdmUocyl7cmV0dXJuIG5ldyBubihzKX19O2koTXYsImZpbmRTZWxlY3Rpb25JbiIpO2koRXVhLCJzZWxlY3Rpb25Ub0luc2VydGlvbkVuZCIpO1B1YT0xLFZuZT0yLEl1YT00LFVuZT1jbGFzcyBleHRlbmRzIEc4e3N0YXRpY3tpKHRoaXMsIlRyYW5zYWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5kb2MpLHRoaXMuY3VyU2VsZWN0aW9uRm9yPTAsdGhpcy51cGRhdGVkPTAsdGhpcy5tZXRhPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy50aW1lPURhdGUubm93KCksdGhpcy5jdXJTZWxlY3Rpb249ZS5zZWxlY3Rpb24sdGhpcy5zdG9yZWRNYXJrcz1lLnN0b3JlZE1hcmtzfWdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb25Gb3I8dGhpcy5zdGVwcy5sZW5ndGgmJih0aGlzLmN1clNlbGVjdGlvbj10aGlzLmN1clNlbGVjdGlvbi5tYXAodGhpcy5kb2MsdGhpcy5tYXBwaW5nLnNsaWNlKHRoaXMuY3VyU2VsZWN0aW9uRm9yKSksdGhpcy5jdXJTZWxlY3Rpb25Gb3I9dGhpcy5zdGVwcy5sZW5ndGgpLHRoaXMuY3VyU2VsZWN0aW9ufXNldFNlbGVjdGlvbihlKXtpZihlLiRmcm9tLmRvYyE9dGhpcy5kb2MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlNlbGVjdGlvbiBwYXNzZWQgdG8gc2V0U2VsZWN0aW9uIG11c3QgcG9pbnQgYXQgdGhlIGN1cnJlbnQgZG9jdW1lbnQiKTtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb249ZSx0aGlzLmN1clNlbGVjdGlvbkZvcj10aGlzLnN0ZXBzLmxlbmd0aCx0aGlzLnVwZGF0ZWQ9KHRoaXMudXBkYXRlZHxQdWEpJn5WbmUsdGhpcy5zdG9yZWRNYXJrcz1udWxsLHRoaXN9Z2V0IHNlbGVjdGlvblNldCgpe3JldHVybih0aGlzLnVwZGF0ZWQmUHVhKT4wfXNldFN0b3JlZE1hcmtzKGUpe3JldHVybiB0aGlzLnN0b3JlZE1hcmtzPWUsdGhpcy51cGRhdGVkfD1WbmUsdGhpc31lbnN1cmVNYXJrcyhlKXtyZXR1cm4gZnMuc2FtZVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpLGUpfHx0aGlzLnNldFN0b3JlZE1hcmtzKGUpLHRoaXN9YWRkU3RvcmVkTWFyayhlKXtyZXR1cm4gdGhpcy5lbnN1cmVNYXJrcyhlLmFkZFRvU2V0KHRoaXMuc3RvcmVkTWFya3N8fHRoaXMuc2VsZWN0aW9uLiRoZWFkLm1hcmtzKCkpKX1yZW1vdmVTdG9yZWRNYXJrKGUpe3JldHVybiB0aGlzLmVuc3VyZU1hcmtzKGUucmVtb3ZlRnJvbVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kaGVhZC5tYXJrcygpKSl9Z2V0IHN0b3JlZE1hcmtzU2V0KCl7cmV0dXJuKHRoaXMudXBkYXRlZCZWbmUpPjB9YWRkU3RlcChlLHQpe3N1cGVyLmFkZFN0ZXAoZSx0KSx0aGlzLnVwZGF0ZWQ9dGhpcy51cGRhdGVkJn5WbmUsdGhpcy5zdG9yZWRNYXJrcz1udWxsfXNldFRpbWUoZSl7cmV0dXJuIHRoaXMudGltZT1lLHRoaXN9cmVwbGFjZVNlbGVjdGlvbihlKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzLGUpLHRoaXN9cmVwbGFjZVNlbGVjdGlvbldpdGgoZSx0PSEwKXtsZXQgYT10aGlzLnNlbGVjdGlvbjtyZXR1cm4gdCYmKGU9ZS5tYXJrKHRoaXMuc3RvcmVkTWFya3N8fChhLmVtcHR5P2EuJGZyb20ubWFya3MoKTphLiRmcm9tLm1hcmtzQWNyb3NzKGEuJHRvKXx8ZnMubm9uZSkpKSxhLnJlcGxhY2VXaXRoKHRoaXMsZSksdGhpc31kZWxldGVTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzKSx0aGlzfWluc2VydFRleHQoZSx0LGEpe2xldCByPXRoaXMuZG9jLnR5cGUuc2NoZW1hO2lmKHQ9PW51bGwpcmV0dXJuIGU/dGhpcy5yZXBsYWNlU2VsZWN0aW9uV2l0aChyLnRleHQoZSksITApOnRoaXMuZGVsZXRlU2VsZWN0aW9uKCk7e2lmKGE9PW51bGwmJihhPXQpLCFlKXJldHVybiB0aGlzLmRlbGV0ZVJhbmdlKHQsYSk7bGV0IG49dGhpcy5zdG9yZWRNYXJrcztpZighbil7bGV0IG89dGhpcy5kb2MucmVzb2x2ZSh0KTtuPWE9PXQ/by5tYXJrcygpOm8ubWFya3NBY3Jvc3ModGhpcy5kb2MucmVzb2x2ZShhKSl9cmV0dXJuIHRoaXMucmVwbGFjZVJhbmdlV2l0aCh0LGEsci50ZXh0KGUsbikpLCF0aGlzLnNlbGVjdGlvbi5lbXB0eSYmdGhpcy5zZWxlY3Rpb24udG89PXQrZS5sZW5ndGgmJnRoaXMuc2V0U2VsZWN0aW9uKFF0Lm5lYXIodGhpcy5zZWxlY3Rpb24uJHRvKSksdGhpc319c2V0TWV0YShlLHQpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldPXQsdGhpc31nZXRNZXRhKGUpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldfWdldCBpc0dlbmVyaWMoKXtmb3IobGV0IGUgaW4gdGhpcy5tZXRhKXJldHVybiExO3JldHVybiEwfXNjcm9sbEludG9WaWV3KCl7cmV0dXJuIHRoaXMudXBkYXRlZHw9SXVhLHRoaXN9Z2V0IHNjcm9sbGVkSW50b1ZpZXcoKXtyZXR1cm4odGhpcy51cGRhdGVkJkl1YSk+MH19O2koQXVhLCJiaW5kIik7Wjg9Y2xhc3N7c3RhdGlje2kodGhpcywiRmllbGREZXNjIil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMubmFtZT1lLHRoaXMuaW5pdD1BdWEodC5pbml0LGEpLHRoaXMuYXBwbHk9QXVhKHQuYXBwbHksYSl9fSxER2E9W25ldyBaOCgiZG9jIix7aW5pdChzKXtyZXR1cm4gcy5kb2N8fHMuc2NoZW1hLnRvcE5vZGVUeXBlLmNyZWF0ZUFuZEZpbGwoKX0sYXBwbHkocyl7cmV0dXJuIHMuZG9jfX0pLG5ldyBaOCgic2VsZWN0aW9uIix7aW5pdChzLGUpe3JldHVybiBzLnNlbGVjdGlvbnx8UXQuYXRTdGFydChlLmRvYyl9LGFwcGx5KHMpe3JldHVybiBzLnNlbGVjdGlvbn19KSxuZXcgWjgoInN0b3JlZE1hcmtzIix7aW5pdChzKXtyZXR1cm4gcy5zdG9yZWRNYXJrc3x8bnVsbH0sYXBwbHkocyxlLHQsYSl7cmV0dXJuIGEuc2VsZWN0aW9uLiRjdXJzb3I/cy5zdG9yZWRNYXJrczpudWxsfX0pLG5ldyBaOCgic2Nyb2xsVG9TZWxlY3Rpb24iLHtpbml0KCl7cmV0dXJuIDB9LGFwcGx5KHMsZSl7cmV0dXJuIHMuc2Nyb2xsZWRJbnRvVmlldz9lKzE6ZX19KV0sVVo9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29uZmlndXJhdGlvbiIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zY2hlbWE9ZSx0aGlzLnBsdWdpbnM9W10sdGhpcy5wbHVnaW5zQnlLZXk9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmZpZWxkcz1ER2Euc2xpY2UoKSx0JiZ0LmZvckVhY2goYT0+e2lmKHRoaXMucGx1Z2luc0J5S2V5W2Eua2V5XSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQWRkaW5nIGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgYSBrZXllZCBwbHVnaW4gKCIrYS5rZXkrIikiKTt0aGlzLnBsdWdpbnMucHVzaChhKSx0aGlzLnBsdWdpbnNCeUtleVthLmtleV09YSxhLnNwZWMuc3RhdGUmJnRoaXMuZmllbGRzLnB1c2gobmV3IFo4KGEua2V5LGEuc3BlYy5zdGF0ZSxhKSl9KX19LFdaPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRWRpdG9yU3RhdGUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmNvbmZpZz1lfWdldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5jb25maWcuc2NoZW1hfWdldCBwbHVnaW5zKCl7cmV0dXJuIHRoaXMuY29uZmlnLnBsdWdpbnN9YXBwbHkoZSl7cmV0dXJuIHRoaXMuYXBwbHlUcmFuc2FjdGlvbihlKS5zdGF0ZX1maWx0ZXJUcmFuc2FjdGlvbihlLHQ9LTEpe2ZvcihsZXQgYT0wO2E8dGhpcy5jb25maWcucGx1Z2lucy5sZW5ndGg7YSsrKWlmKGEhPXQpe2xldCByPXRoaXMuY29uZmlnLnBsdWdpbnNbYV07aWYoci5zcGVjLmZpbHRlclRyYW5zYWN0aW9uJiYhci5zcGVjLmZpbHRlclRyYW5zYWN0aW9uLmNhbGwocixlLHRoaXMpKXJldHVybiExfXJldHVybiEwfWFwcGx5VHJhbnNhY3Rpb24oZSl7aWYoIXRoaXMuZmlsdGVyVHJhbnNhY3Rpb24oZSkpcmV0dXJue3N0YXRlOnRoaXMsdHJhbnNhY3Rpb25zOltdfTtsZXQgdD1bZV0sYT10aGlzLmFwcGx5SW5uZXIoZSkscj1udWxsO2Zvcig7Oyl7bGV0IG49ITE7Zm9yKGxldCBvPTA7bzx0aGlzLmNvbmZpZy5wbHVnaW5zLmxlbmd0aDtvKyspe2xldCBsPXRoaXMuY29uZmlnLnBsdWdpbnNbb107aWYobC5zcGVjLmFwcGVuZFRyYW5zYWN0aW9uKXtsZXQgcD1yP3Jbb10ubjowLGQ9cj9yW29dLnN0YXRlOnRoaXMsdT1wPHQubGVuZ3RoJiZsLnNwZWMuYXBwZW5kVHJhbnNhY3Rpb24uY2FsbChsLHA/dC5zbGljZShwKTp0LGQsYSk7aWYodSYmYS5maWx0ZXJUcmFuc2FjdGlvbih1LG8pKXtpZih1LnNldE1ldGEoImFwcGVuZGVkVHJhbnNhY3Rpb24iLGUpLCFyKXtyPVtdO2ZvcihsZXQgYz0wO2M8dGhpcy5jb25maWcucGx1Z2lucy5sZW5ndGg7YysrKXIucHVzaChjPG8/e3N0YXRlOmEsbjp0Lmxlbmd0aH06e3N0YXRlOnRoaXMsbjowfSl9dC5wdXNoKHUpLGE9YS5hcHBseUlubmVyKHUpLG49ITB9ciYmKHJbb109e3N0YXRlOmEsbjp0Lmxlbmd0aH0pfX1pZighbilyZXR1cm57c3RhdGU6YSx0cmFuc2FjdGlvbnM6dH19fWFwcGx5SW5uZXIoZSl7aWYoIWUuYmVmb3JlLmVxKHRoaXMuZG9jKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXBwbHlpbmcgYSBtaXNtYXRjaGVkIHRyYW5zYWN0aW9uIik7bGV0IHQ9bmV3IHModGhpcy5jb25maWcpLGE9dGhpcy5jb25maWcuZmllbGRzO2ZvcihsZXQgcj0wO3I8YS5sZW5ndGg7cisrKXtsZXQgbj1hW3JdO3Rbbi5uYW1lXT1uLmFwcGx5KGUsdGhpc1tuLm5hbWVdLHRoaXMsdCl9cmV0dXJuIHR9Z2V0IHRyKCl7cmV0dXJuIG5ldyBVbmUodGhpcyl9c3RhdGljIGNyZWF0ZShlKXtsZXQgdD1uZXcgVVooZS5kb2M/ZS5kb2MudHlwZS5zY2hlbWE6ZS5zY2hlbWEsZS5wbHVnaW5zKSxhPW5ldyBzKHQpO2ZvcihsZXQgcj0wO3I8dC5maWVsZHMubGVuZ3RoO3IrKylhW3QuZmllbGRzW3JdLm5hbWVdPXQuZmllbGRzW3JdLmluaXQoZSxhKTtyZXR1cm4gYX1yZWNvbmZpZ3VyZShlKXtsZXQgdD1uZXcgVVoodGhpcy5zY2hlbWEsZS5wbHVnaW5zKSxhPXQuZmllbGRzLHI9bmV3IHModCk7Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspe2xldCBvPWFbbl0ubmFtZTtyW29dPXRoaXMuaGFzT3duUHJvcGVydHkobyk/dGhpc1tvXTphW25dLmluaXQoZSxyKX1yZXR1cm4gcn10b0pTT04oZSl7bGV0IHQ9e2RvYzp0aGlzLmRvYy50b0pTT04oKSxzZWxlY3Rpb246dGhpcy5zZWxlY3Rpb24udG9KU09OKCl9O2lmKHRoaXMuc3RvcmVkTWFya3MmJih0LnN0b3JlZE1hcmtzPXRoaXMuc3RvcmVkTWFya3MubWFwKGE9PmEudG9KU09OKCkpKSxlJiZ0eXBlb2YgZT09Im9iamVjdCIpZm9yKGxldCBhIGluIGUpe2lmKGE9PSJkb2MifHxhPT0ic2VsZWN0aW9uIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlIEpTT04gZmllbGRzIGBkb2NgIGFuZCBgc2VsZWN0aW9uYCBhcmUgcmVzZXJ2ZWQiKTtsZXQgcj1lW2FdLG49ci5zcGVjLnN0YXRlO24mJm4udG9KU09OJiYodFthXT1uLnRvSlNPTi5jYWxsKHIsdGhpc1tyLmtleV0pKX1yZXR1cm4gdH1zdGF0aWMgZnJvbUpTT04oZSx0LGEpe2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBFZGl0b3JTdGF0ZS5mcm9tSlNPTiIpO2lmKCFlLnNjaGVtYSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUmVxdWlyZWQgY29uZmlnIGZpZWxkICdzY2hlbWEnIG1pc3NpbmciKTtsZXQgcj1uZXcgVVooZS5zY2hlbWEsZS5wbHVnaW5zKSxuPW5ldyBzKHIpO3JldHVybiByLmZpZWxkcy5mb3JFYWNoKG89PntpZihvLm5hbWU9PSJkb2MiKW4uZG9jPVRuLmZyb21KU09OKGUuc2NoZW1hLHQuZG9jKTtlbHNlIGlmKG8ubmFtZT09InNlbGVjdGlvbiIpbi5zZWxlY3Rpb249UXQuZnJvbUpTT04obi5kb2MsdC5zZWxlY3Rpb24pO2Vsc2UgaWYoby5uYW1lPT0ic3RvcmVkTWFya3MiKXQuc3RvcmVkTWFya3MmJihuLnN0b3JlZE1hcmtzPXQuc3RvcmVkTWFya3MubWFwKGUuc2NoZW1hLm1hcmtGcm9tSlNPTikpO2Vsc2V7aWYoYSlmb3IobGV0IGwgaW4gYSl7bGV0IHA9YVtsXSxkPXAuc3BlYy5zdGF0ZTtpZihwLmtleT09by5uYW1lJiZkJiZkLmZyb21KU09OJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxsKSl7bltvLm5hbWVdPWQuZnJvbUpTT04uY2FsbChwLGUsdFtsXSxuKTtyZXR1cm59fW5bby5uYW1lXT1vLmluaXQoZSxuKX19KSxufX07aShOdWEsImJpbmRQcm9wcyIpO1lzPWNsYXNze3N0YXRpY3tpKHRoaXMsIlBsdWdpbiIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3BlYz1lLHRoaXMucHJvcHM9e30sZS5wcm9wcyYmTnVhKGUucHJvcHMsdGhpcyx0aGlzLnByb3BzKSx0aGlzLmtleT1lLmtleT9lLmtleS5rZXk6UnVhKCJwbHVnaW4iKX1nZXRTdGF0ZShlKXtyZXR1cm4gZVt0aGlzLmtleV19fSxUdHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtpKFJ1YSwiY3JlYXRlS2V5Iik7JHI9Y2xhc3N7c3RhdGlje2kodGhpcywiUGx1Z2luS2V5Iil9Y29uc3RydWN0b3IoZT0ia2V5Iil7dGhpcy5rZXk9UnVhKGUpfWdldChlKXtyZXR1cm4gZS5jb25maWcucGx1Z2luc0J5S2V5W3RoaXMua2V5XX1nZXRTdGF0ZShlKXtyZXR1cm4gZVt0aGlzLmtleV19fX0pO3ZhciBHWj1nKCgpPT57cnUoKX0pO2Z1bmN0aW9uIE91YShzLGUsdCxhLHIpe2Zvcih2YXIgbjs7KXtpZihzPT10JiZlPT1hKXJldHVybiEwO2lmKGU9PShyPDA/MDpPYyhzKSkpe2xldCBvPXMucGFyZW50Tm9kZTtpZighb3x8by5ub2RlVHlwZSE9MXx8S1oocyl8fEVHYS50ZXN0KHMubm9kZU5hbWUpfHxzLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilyZXR1cm4hMTtlPVRvKHMpKyhyPDA/MDoxKSxzPW99ZWxzZSBpZihzLm5vZGVUeXBlPT0xKXtsZXQgbz1zLmNoaWxkTm9kZXNbZSsocjwwPy0xOjApXTtpZihvLm5vZGVUeXBlPT0xJiZvLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilpZighKChuPW8ucG1WaWV3RGVzYyk9PT1udWxsfHxuPT09dm9pZCAwKSYmbi5pZ25vcmVGb3JTZWxlY3Rpb24pZSs9cjtlbHNlIHJldHVybiExO2Vsc2Ugcz1vLGU9cjwwP09jKHMpOjB9ZWxzZSByZXR1cm4hMX19ZnVuY3Rpb24gT2Mocyl7cmV0dXJuIHMubm9kZVR5cGU9PTM/cy5ub2RlVmFsdWUubGVuZ3RoOnMuY2hpbGROb2Rlcy5sZW5ndGh9ZnVuY3Rpb24gUEdhKHMsZSl7Zm9yKDs7KXtpZihzLm5vZGVUeXBlPT0zJiZlKXJldHVybiBzO2lmKHMubm9kZVR5cGU9PTEmJmU+MCl7aWYocy5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpcmV0dXJuIG51bGw7cz1zLmNoaWxkTm9kZXNbZS0xXSxlPU9jKHMpfWVsc2UgaWYocy5wYXJlbnROb2RlJiYhS1oocykpZT1UbyhzKSxzPXMucGFyZW50Tm9kZTtlbHNlIHJldHVybiBudWxsfX1mdW5jdGlvbiBJR2EocyxlKXtmb3IoOzspe2lmKHMubm9kZVR5cGU9PTMmJmU8cy5ub2RlVmFsdWUubGVuZ3RoKXJldHVybiBzO2lmKHMubm9kZVR5cGU9PTEmJmU8cy5jaGlsZE5vZGVzLmxlbmd0aCl7aWYocy5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpcmV0dXJuIG51bGw7cz1zLmNoaWxkTm9kZXNbZV0sZT0wfWVsc2UgaWYocy5wYXJlbnROb2RlJiYhS1oocykpZT1UbyhzKSsxLHM9cy5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGx9fWZ1bmN0aW9uIEFHYShzLGUsdCl7Zm9yKGxldCBhPWU9PTAscj1lPT1PYyhzKTthfHxyOyl7aWYocz09dClyZXR1cm4hMDtsZXQgbj1UbyhzKTtpZihzPXMucGFyZW50Tm9kZSwhcylyZXR1cm4hMTthPWEmJm49PTAscj1yJiZuPT1PYyhzKX19ZnVuY3Rpb24gS1oocyl7bGV0IGU7Zm9yKGxldCB0PXM7dCYmIShlPXQucG1WaWV3RGVzYyk7dD10LnBhcmVudE5vZGUpO3JldHVybiBlJiZlLm5vZGUmJmUubm9kZS5pc0Jsb2NrJiYoZS5kb209PXN8fGUuY29udGVudERPTT09cyl9ZnVuY3Rpb24gSjgocyxlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoImtleWRvd24iLCEwLCEwKSx0LmtleUNvZGU9cyx0LmtleT10LmNvZGU9ZSx0fWZ1bmN0aW9uIE5HYShzKXtsZXQgZT1zLmFjdGl2ZUVsZW1lbnQ7Zm9yKDtlJiZlLnNoYWRvd1Jvb3Q7KWU9ZS5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIGV9ZnVuY3Rpb24gUkdhKHMsZSx0KXtpZihzLmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpdHJ5e2xldCBhPXMuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHQpO2lmKGEpcmV0dXJue25vZGU6YS5vZmZzZXROb2RlLG9mZnNldDpNYXRoLm1pbihPYyhhLm9mZnNldE5vZGUpLGEub2Zmc2V0KX19Y2F0Y2h7fWlmKHMuY2FyZXRSYW5nZUZyb21Qb2ludCl7bGV0IGE9cy5jYXJldFJhbmdlRnJvbVBvaW50KGUsdCk7aWYoYSlyZXR1cm57bm9kZTphLnN0YXJ0Q29udGFpbmVyLG9mZnNldDpNYXRoLm1pbihPYyhhLnN0YXJ0Q29udGFpbmVyKSxhLnN0YXJ0T2Zmc2V0KX19fWZ1bmN0aW9uIEZHYShzKXtsZXQgZT1zLmRlZmF1bHRWaWV3JiZzLmRlZmF1bHRWaWV3LnZpc3VhbFZpZXdwb3J0O3JldHVybiBlP3tsZWZ0OjAscmlnaHQ6ZS53aWR0aCx0b3A6MCxib3R0b206ZS5oZWlnaHR9OntsZWZ0OjAscmlnaHQ6cy5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsdG9wOjAsYm90dG9tOnMuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodH19ZnVuY3Rpb24gbHUocyxlKXtyZXR1cm4gdHlwZW9mIHM9PSJudW1iZXIiP3M6c1tlXX1mdW5jdGlvbiBCR2Eocyl7bGV0IGU9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PWUud2lkdGgvcy5vZmZzZXRXaWR0aHx8MSxhPWUuaGVpZ2h0L3Mub2Zmc2V0SGVpZ2h0fHwxO3JldHVybntsZWZ0OmUubGVmdCxyaWdodDplLmxlZnQrcy5jbGllbnRXaWR0aCp0LHRvcDplLnRvcCxib3R0b206ZS50b3Arcy5jbGllbnRIZWlnaHQqYX19ZnVuY3Rpb24ganVhKHMsZSx0KXtsZXQgYT1zLnNvbWVQcm9wKCJzY3JvbGxUaHJlc2hvbGQiKXx8MCxyPXMuc29tZVByb3AoInNjcm9sbE1hcmdpbiIpfHw1LG49cy5kb20ub3duZXJEb2N1bWVudDtmb3IobGV0IG89dHx8cy5kb207bzspe2lmKG8ubm9kZVR5cGUhPTEpe289enYobyk7Y29udGludWV9bGV0IGw9byxwPWw9PW4uYm9keSxkPXA/RkdhKG4pOkJHYShsKSx1PTAsYz0wO2lmKGUudG9wPGQudG9wK2x1KGEsInRvcCIpP2M9LShkLnRvcC1lLnRvcCtsdShyLCJ0b3AiKSk6ZS5ib3R0b20+ZC5ib3R0b20tbHUoYSwiYm90dG9tIikmJihjPWUuYm90dG9tLWUudG9wPmQuYm90dG9tLWQudG9wP2UudG9wK2x1KHIsInRvcCIpLWQudG9wOmUuYm90dG9tLWQuYm90dG9tK2x1KHIsImJvdHRvbSIpKSxlLmxlZnQ8ZC5sZWZ0K2x1KGEsImxlZnQiKT91PS0oZC5sZWZ0LWUubGVmdCtsdShyLCJsZWZ0IikpOmUucmlnaHQ+ZC5yaWdodC1sdShhLCJyaWdodCIpJiYodT1lLnJpZ2h0LWQucmlnaHQrbHUociwicmlnaHQiKSksdXx8YylpZihwKW4uZGVmYXVsdFZpZXcuc2Nyb2xsQnkodSxjKTtlbHNle2xldCB2PWwuc2Nyb2xsTGVmdCx4PWwuc2Nyb2xsVG9wO2MmJihsLnNjcm9sbFRvcCs9YyksdSYmKGwuc2Nyb2xsTGVmdCs9dSk7bGV0IG09bC5zY3JvbGxMZWZ0LXYsZj1sLnNjcm9sbFRvcC14O2U9e2xlZnQ6ZS5sZWZ0LW0sdG9wOmUudG9wLWYscmlnaHQ6ZS5yaWdodC1tLGJvdHRvbTplLmJvdHRvbS1mfX1sZXQgYj1wPyJmaXhlZCI6Z2V0Q29tcHV0ZWRTdHlsZShvKS5wb3NpdGlvbjtpZigvXihmaXhlZHxzdGlja3kpJC8udGVzdChiKSlicmVhaztvPWI9PSJhYnNvbHV0ZSI/by5vZmZzZXRQYXJlbnQ6enYobyl9fWZ1bmN0aW9uIEhHYShzKXtsZXQgZT1zLmRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PU1hdGgubWF4KDAsZS50b3ApLGEscjtmb3IobGV0IG49KGUubGVmdCtlLnJpZ2h0KS8yLG89dCsxO288TWF0aC5taW4oaW5uZXJIZWlnaHQsZS5ib3R0b20pO28rPTUpe2xldCBsPXMucm9vdC5lbGVtZW50RnJvbVBvaW50KG4sbyk7aWYoIWx8fGw9PXMuZG9tfHwhcy5kb20uY29udGFpbnMobCkpY29udGludWU7bGV0IHA9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihwLnRvcD49dC0yMCl7YT1sLHI9cC50b3A7YnJlYWt9fXJldHVybntyZWZET006YSxyZWZUb3A6cixzdGFjazpWdWEocy5kb20pfX1mdW5jdGlvbiBWdWEocyl7bGV0IGU9W10sdD1zLm93bmVyRG9jdW1lbnQ7Zm9yKGxldCBhPXM7YSYmKGUucHVzaCh7ZG9tOmEsdG9wOmEuc2Nyb2xsVG9wLGxlZnQ6YS5zY3JvbGxMZWZ0fSkscyE9dCk7YT16dihhKSk7cmV0dXJuIGV9ZnVuY3Rpb24gcUdhKHtyZWZET006cyxyZWZUb3A6ZSxzdGFjazp0fSl7bGV0IGE9cz9zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDowO1V1YSh0LGE9PTA/MDphLWUpfWZ1bmN0aW9uIFV1YShzLGUpe2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKXtsZXR7ZG9tOmEsdG9wOnIsbGVmdDpufT1zW3RdO2Euc2Nyb2xsVG9wIT1yK2UmJihhLnNjcm9sbFRvcD1yK2UpLGEuc2Nyb2xsTGVmdCE9biYmKGEuc2Nyb2xsTGVmdD1uKX19ZnVuY3Rpb24gakdhKHMpe2lmKHMuc2V0QWN0aXZlKXJldHVybiBzLnNldEFjdGl2ZSgpO2lmKFR2KXJldHVybiBzLmZvY3VzKFR2KTtsZXQgZT1WdWEocyk7cy5mb2N1cyhUdj09bnVsbD97Z2V0IHByZXZlbnRTY3JvbGwoKXtyZXR1cm4gVHY9e3ByZXZlbnRTY3JvbGw6ITB9LCEwfX06dm9pZCAwKSxUdnx8KFR2PSExLFV1YShlLDApKX1mdW5jdGlvbiBXdWEocyxlKXtsZXQgdCxhPTJlOCxyLG49MCxvPWUudG9wLGw9ZS50b3AscCxkO2ZvcihsZXQgdT1zLmZpcnN0Q2hpbGQsYz0wO3U7dT11Lm5leHRTaWJsaW5nLGMrKyl7bGV0IGI7aWYodS5ub2RlVHlwZT09MSliPXUuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGlmKHUubm9kZVR5cGU9PTMpYj1vdSh1KS5nZXRDbGllbnRSZWN0cygpO2Vsc2UgY29udGludWU7Zm9yKGxldCB2PTA7djxiLmxlbmd0aDt2Kyspe2xldCB4PWJbdl07aWYoeC50b3A8PW8mJnguYm90dG9tPj1sKXtvPU1hdGgubWF4KHguYm90dG9tLG8pLGw9TWF0aC5taW4oeC50b3AsbCk7bGV0IG09eC5sZWZ0PmUubGVmdD94LmxlZnQtZS5sZWZ0OngucmlnaHQ8ZS5sZWZ0P2UubGVmdC14LnJpZ2h0OjA7aWYobTxhKXt0PXUsYT1tLHI9bSYmdC5ub2RlVHlwZT09Mz97bGVmdDp4LnJpZ2h0PGUubGVmdD94LnJpZ2h0OngubGVmdCx0b3A6ZS50b3B9OmUsdS5ub2RlVHlwZT09MSYmbSYmKG49YysoZS5sZWZ0Pj0oeC5sZWZ0K3gucmlnaHQpLzI/MTowKSk7Y29udGludWV9fWVsc2UgeC50b3A+ZS50b3AmJiFwJiZ4LmxlZnQ8PWUubGVmdCYmeC5yaWdodD49ZS5sZWZ0JiYocD11LGQ9e2xlZnQ6TWF0aC5tYXgoeC5sZWZ0LE1hdGgubWluKHgucmlnaHQsZS5sZWZ0KSksdG9wOngudG9wfSk7IXQmJihlLmxlZnQ+PXgucmlnaHQmJmUudG9wPj14LnRvcHx8ZS5sZWZ0Pj14LmxlZnQmJmUudG9wPj14LmJvdHRvbSkmJihuPWMrMSl9fXJldHVybiF0JiZwJiYodD1wLHI9ZCxhPTApLHQmJnQubm9kZVR5cGU9PTM/VkdhKHQscik6IXR8fGEmJnQubm9kZVR5cGU9PTE/e25vZGU6cyxvZmZzZXQ6bn06V3VhKHQscil9ZnVuY3Rpb24gVkdhKHMsZSl7bGV0IHQ9cy5ub2RlVmFsdWUubGVuZ3RoLGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxyO2ZvcihsZXQgbj0wO248dDtuKyspe2Euc2V0RW5kKHMsbisxKSxhLnNldFN0YXJ0KHMsbik7bGV0IG89JGgoYSwxKTtpZihvLnRvcCE9by5ib3R0b20mJlB0dChlLG8pKXtyPXtub2RlOnMsb2Zmc2V0Om4rKGUubGVmdD49KG8ubGVmdCtvLnJpZ2h0KS8yPzE6MCl9O2JyZWFrfX1yZXR1cm4gYS5kZXRhY2goKSxyfHx7bm9kZTpzLG9mZnNldDowfX1mdW5jdGlvbiBQdHQocyxlKXtyZXR1cm4gcy5sZWZ0Pj1lLmxlZnQtMSYmcy5sZWZ0PD1lLnJpZ2h0KzEmJnMudG9wPj1lLnRvcC0xJiZzLnRvcDw9ZS5ib3R0b20rMX1mdW5jdGlvbiBVR2EocyxlKXtsZXQgdD1zLnBhcmVudE5vZGU7cmV0dXJuIHQmJi9ebGkkL2kudGVzdCh0Lm5vZGVOYW1lKSYmZS5sZWZ0PHMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdD90OnN9ZnVuY3Rpb24gV0dhKHMsZSx0KXtsZXR7bm9kZTphLG9mZnNldDpyfT1XdWEoZSx0KSxuPS0xO2lmKGEubm9kZVR5cGU9PTEmJiFhLmZpcnN0Q2hpbGQpe2xldCBvPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bj1vLmxlZnQhPW8ucmlnaHQmJnQubGVmdD4oby5sZWZ0K28ucmlnaHQpLzI/MTotMX1yZXR1cm4gcy5kb2NWaWV3LnBvc0Zyb21ET00oYSxyLG4pfWZ1bmN0aW9uIEdHYShzLGUsdCxhKXtsZXQgcj0tMTtmb3IobGV0IG49ZSxvPSExO24hPXMuZG9tOyl7bGV0IGw9cy5kb2NWaWV3Lm5lYXJlc3REZXNjKG4sITApLHA7aWYoIWwpcmV0dXJuIG51bGw7aWYobC5kb20ubm9kZVR5cGU9PTEmJihsLm5vZGUuaXNCbG9jayYmbC5wYXJlbnR8fCFsLmNvbnRlbnRET00pJiYoKHA9bC5kb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLndpZHRofHxwLmhlaWdodCkmJihsLm5vZGUuaXNCbG9jayYmbC5wYXJlbnQmJiEvXlQoUnxCT0RZfEhFQUR8Rk9PVCkkLy50ZXN0KGwuZG9tLm5vZGVOYW1lKSYmKCFvJiZwLmxlZnQ+YS5sZWZ0fHxwLnRvcD5hLnRvcD9yPWwucG9zQmVmb3JlOighbyYmcC5yaWdodDxhLmxlZnR8fHAuYm90dG9tPGEudG9wKSYmKHI9bC5wb3NBZnRlciksbz0hMCksIWwuY29udGVudERPTSYmcjwwJiYhbC5ub2RlLmlzVGV4dCkpcmV0dXJuKGwubm9kZS5pc0Jsb2NrP2EudG9wPChwLnRvcCtwLmJvdHRvbSkvMjphLmxlZnQ8KHAubGVmdCtwLnJpZ2h0KS8yKT9sLnBvc0JlZm9yZTpsLnBvc0FmdGVyO249bC5kb20ucGFyZW50Tm9kZX1yZXR1cm4gcj4tMT9yOnMuZG9jVmlldy5wb3NGcm9tRE9NKGUsdCwtMSl9ZnVuY3Rpb24gR3VhKHMsZSx0KXtsZXQgYT1zLmNoaWxkTm9kZXMubGVuZ3RoO2lmKGEmJnQudG9wPHQuYm90dG9tKWZvcihsZXQgcj1NYXRoLm1heCgwLE1hdGgubWluKGEtMSxNYXRoLmZsb29yKGEqKGUudG9wLXQudG9wKS8odC5ib3R0b20tdC50b3ApKS0yKSksbj1yOzspe2xldCBvPXMuY2hpbGROb2Rlc1tuXTtpZihvLm5vZGVUeXBlPT0xKXtsZXQgbD1vLmdldENsaWVudFJlY3RzKCk7Zm9yKGxldCBwPTA7cDxsLmxlbmd0aDtwKyspe2xldCBkPWxbcF07aWYoUHR0KGUsZCkpcmV0dXJuIEd1YShvLGUsZCl9fWlmKChuPShuKzEpJWEpPT1yKWJyZWFrfXJldHVybiBzfWZ1bmN0aW9uIEtHYShzLGUpe2xldCB0PXMuZG9tLm93bmVyRG9jdW1lbnQsYSxyPTAsbj1SR2EodCxlLmxlZnQsZS50b3ApO24mJih7bm9kZTphLG9mZnNldDpyfT1uKTtsZXQgbz0ocy5yb290LmVsZW1lbnRGcm9tUG9pbnQ/cy5yb290OnQpLmVsZW1lbnRGcm9tUG9pbnQoZS5sZWZ0LGUudG9wKSxsO2lmKCFvfHwhcy5kb20uY29udGFpbnMoby5ub2RlVHlwZSE9MT9vLnBhcmVudE5vZGU6bykpe2xldCBkPXMuZG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCFQdHQoZSxkKXx8KG89R3VhKHMuZG9tLGUsZCksIW8pKXJldHVybiBudWxsfWlmKGxuKWZvcihsZXQgZD1vO2EmJmQ7ZD16dihkKSlkLmRyYWdnYWJsZSYmKGE9dm9pZCAwKTtpZihvPVVHYShvLGUpLGEpe2lmKEZjJiZhLm5vZGVUeXBlPT0xJiYocj1NYXRoLm1pbihyLGEuY2hpbGROb2Rlcy5sZW5ndGgpLHI8YS5jaGlsZE5vZGVzLmxlbmd0aCkpe2xldCB1PWEuY2hpbGROb2Rlc1tyXSxjO3Uubm9kZU5hbWU9PSJJTUciJiYoYz11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS5yaWdodDw9ZS5sZWZ0JiZjLmJvdHRvbT5lLnRvcCYmcisrfWxldCBkO1laJiZyJiZhLm5vZGVUeXBlPT0xJiYoZD1hLmNoaWxkTm9kZXNbci0xXSkubm9kZVR5cGU9PTEmJmQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiJiZkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcD49ZS50b3AmJnItLSxhPT1zLmRvbSYmcj09YS5jaGlsZE5vZGVzLmxlbmd0aC0xJiZhLmxhc3RDaGlsZC5ub2RlVHlwZT09MSYmZS50b3A+YS5sYXN0Q2hpbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tP2w9cy5zdGF0ZS5kb2MuY29udGVudC5zaXplOihyPT0wfHxhLm5vZGVUeXBlIT0xfHxhLmNoaWxkTm9kZXNbci0xXS5ub2RlTmFtZSE9IkJSIikmJihsPUdHYShzLGEscixlKSl9bD09bnVsbCYmKGw9V0dhKHMsbyxlKSk7bGV0IHA9cy5kb2NWaWV3Lm5lYXJlc3REZXNjKG8sITApO3JldHVybntwb3M6bCxpbnNpZGU6cD9wLnBvc0F0U3RhcnQtcC5ib3JkZXI6LTF9fWZ1bmN0aW9uIEt1YShzKXtyZXR1cm4gcy50b3A8cy5ib3R0b218fHMubGVmdDxzLnJpZ2h0fWZ1bmN0aW9uICRoKHMsZSl7bGV0IHQ9cy5nZXRDbGllbnRSZWN0cygpO2lmKHQubGVuZ3RoKXtsZXQgYT10W2U8MD8wOnQubGVuZ3RoLTFdO2lmKEt1YShhKSlyZXR1cm4gYX1yZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbmQuY2FsbCh0LEt1YSl8fHMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZnVuY3Rpb24gWXVhKHMsZSx0KXtsZXR7bm9kZTphLG9mZnNldDpyLGF0b206bn09cy5kb2NWaWV3LmRvbUZyb21Qb3MoZSx0PDA/LTE6MSksbz1ZWnx8RmM7aWYoYS5ub2RlVHlwZT09MylpZihvJiYoWUdhLnRlc3QoYS5ub2RlVmFsdWUpfHwodDwwPyFyOnI9PWEubm9kZVZhbHVlLmxlbmd0aCkpKXtsZXQgcD0kaChvdShhLHIsciksdCk7aWYoRmMmJnImJi9ccy8udGVzdChhLm5vZGVWYWx1ZVtyLTFdKSYmcjxhLm5vZGVWYWx1ZS5sZW5ndGgpe2xldCBkPSRoKG91KGEsci0xLHItMSksLTEpO2lmKGQudG9wPT1wLnRvcCl7bGV0IHU9JGgob3UoYSxyLHIrMSksLTEpO2lmKHUudG9wIT1wLnRvcClyZXR1cm4gWloodSx1LmxlZnQ8ZC5sZWZ0KX19cmV0dXJuIHB9ZWxzZXtsZXQgcD1yLGQ9cix1PXQ8MD8xOi0xO3JldHVybiB0PDAmJiFyPyhkKyssdT0tMSk6dD49MCYmcj09YS5ub2RlVmFsdWUubGVuZ3RoPyhwLS0sdT0xKTp0PDA/cC0tOmQrKyxaWigkaChvdShhLHAsZCksdSksdTwwKX1pZighcy5zdGF0ZS5kb2MucmVzb2x2ZShlLShufHwwKSkucGFyZW50LmlubGluZUNvbnRlbnQpe2lmKG49PW51bGwmJnImJih0PDB8fHI9PU9jKGEpKSl7bGV0IHA9YS5jaGlsZE5vZGVzW3ItMV07aWYocC5ub2RlVHlwZT09MSlyZXR1cm4gSXR0KHAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksITEpfWlmKG49PW51bGwmJnI8T2MoYSkpe2xldCBwPWEuY2hpbGROb2Rlc1tyXTtpZihwLm5vZGVUeXBlPT0xKXJldHVybiBJdHQocC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwhMCl9cmV0dXJuIEl0dChhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQ+PTApfWlmKG49PW51bGwmJnImJih0PDB8fHI9PU9jKGEpKSl7bGV0IHA9YS5jaGlsZE5vZGVzW3ItMV0sZD1wLm5vZGVUeXBlPT0zP291KHAsT2MocCktKG8/MDoxKSk6cC5ub2RlVHlwZT09MSYmKHAubm9kZU5hbWUhPSJCUiJ8fCFwLm5leHRTaWJsaW5nKT9wOm51bGw7aWYoZClyZXR1cm4gWlooJGgoZCwxKSwhMSl9aWYobj09bnVsbCYmcjxPYyhhKSl7bGV0IHA9YS5jaGlsZE5vZGVzW3JdO2Zvcig7cC5wbVZpZXdEZXNjJiZwLnBtVmlld0Rlc2MuaWdub3JlRm9yQ29vcmRzOylwPXAubmV4dFNpYmxpbmc7bGV0IGQ9cD9wLm5vZGVUeXBlPT0zP291KHAsMCxvPzA6MSk6cC5ub2RlVHlwZT09MT9wOm51bGw6bnVsbDtpZihkKXJldHVybiBaWigkaChkLC0xKSwhMCl9cmV0dXJuIFpaKCRoKGEubm9kZVR5cGU9PTM/b3UoYSk6YSwtdCksdD49MCl9ZnVuY3Rpb24gWloocyxlKXtpZihzLndpZHRoPT0wKXJldHVybiBzO2xldCB0PWU/cy5sZWZ0OnMucmlnaHQ7cmV0dXJue3RvcDpzLnRvcCxib3R0b206cy5ib3R0b20sbGVmdDp0LHJpZ2h0OnR9fWZ1bmN0aW9uIEl0dChzLGUpe2lmKHMuaGVpZ2h0PT0wKXJldHVybiBzO2xldCB0PWU/cy50b3A6cy5ib3R0b207cmV0dXJue3RvcDp0LGJvdHRvbTp0LGxlZnQ6cy5sZWZ0LHJpZ2h0OnMucmlnaHR9fWZ1bmN0aW9uIFp1YShzLGUsdCl7bGV0IGE9cy5zdGF0ZSxyPXMucm9vdC5hY3RpdmVFbGVtZW50O2EhPWUmJnMudXBkYXRlU3RhdGUoZSksciE9cy5kb20mJnMuZm9jdXMoKTt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e2EhPWUmJnMudXBkYXRlU3RhdGUoYSksciE9cy5kb20mJnImJnIuZm9jdXMoKX19ZnVuY3Rpb24gWkdhKHMsZSx0KXtsZXQgYT1lLnNlbGVjdGlvbixyPXQ9PSJ1cCI/YS4kZnJvbTphLiR0bztyZXR1cm4gWnVhKHMsZSwoKT0+e2xldHtub2RlOm59PXMuZG9jVmlldy5kb21Gcm9tUG9zKHIucG9zLHQ9PSJ1cCI/LTE6MSk7Zm9yKDs7KXtsZXQgbD1zLmRvY1ZpZXcubmVhcmVzdERlc2MobiwhMCk7aWYoIWwpYnJlYWs7aWYobC5ub2RlLmlzQmxvY2spe249bC5jb250ZW50RE9NfHxsLmRvbTticmVha31uPWwuZG9tLnBhcmVudE5vZGV9bGV0IG89WXVhKHMsci5wb3MsMSk7Zm9yKGxldCBsPW4uZmlyc3RDaGlsZDtsO2w9bC5uZXh0U2libGluZyl7bGV0IHA7aWYobC5ub2RlVHlwZT09MSlwPWwuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGlmKGwubm9kZVR5cGU9PTMpcD1vdShsLDAsbC5ub2RlVmFsdWUubGVuZ3RoKS5nZXRDbGllbnRSZWN0cygpO2Vsc2UgY29udGludWU7Zm9yKGxldCBkPTA7ZDxwLmxlbmd0aDtkKyspe2xldCB1PXBbZF07aWYodS5ib3R0b20+dS50b3ArMSYmKHQ9PSJ1cCI/by50b3AtdS50b3A+KHUuYm90dG9tLW8udG9wKSoyOnUuYm90dG9tLW8uYm90dG9tPihvLmJvdHRvbS11LnRvcCkqMikpcmV0dXJuITF9fXJldHVybiEwfSl9ZnVuY3Rpb24gUUdhKHMsZSx0KXtsZXR7JGhlYWQ6YX09ZS5zZWxlY3Rpb247aWYoIWEucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybiExO2xldCByPWEucGFyZW50T2Zmc2V0LG49IXIsbz1yPT1hLnBhcmVudC5jb250ZW50LnNpemUsbD1zLmRvbVNlbGVjdGlvbigpO3JldHVybiBsPyFYR2EudGVzdChhLnBhcmVudC50ZXh0Q29udGVudCl8fCFsLm1vZGlmeT90PT0ibGVmdCJ8fHQ9PSJiYWNrd2FyZCI/bjpvOlp1YShzLGUsKCk9PntsZXR7Zm9jdXNOb2RlOnAsZm9jdXNPZmZzZXQ6ZCxhbmNob3JOb2RlOnUsYW5jaG9yT2Zmc2V0OmN9PXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSxiPWwuY2FyZXRCaWRpTGV2ZWw7bC5tb2RpZnkoIm1vdmUiLHQsImNoYXJhY3RlciIpO2xldCB2PWEuZGVwdGg/cy5kb2NWaWV3LmRvbUFmdGVyUG9zKGEuYmVmb3JlKCkpOnMuZG9tLHtmb2N1c05vZGU6eCxmb2N1c09mZnNldDptfT1zLmRvbVNlbGVjdGlvblJhbmdlKCksZj14JiYhdi5jb250YWlucyh4Lm5vZGVUeXBlPT0xP3g6eC5wYXJlbnROb2RlKXx8cD09eCYmZD09bTt0cnl7bC5jb2xsYXBzZSh1LGMpLHAmJihwIT11fHxkIT1jKSYmbC5leHRlbmQmJmwuZXh0ZW5kKHAsZCl9Y2F0Y2h7fXJldHVybiBiIT1udWxsJiYobC5jYXJldEJpZGlMZXZlbD1iKSxmfSk6YS5wb3M9PWEuc3RhcnQoKXx8YS5wb3M9PWEuZW5kKCl9ZnVuY3Rpb24gSkdhKHMsZSx0KXtyZXR1cm4gWHVhPT1lJiZRdWE9PXQ/SnVhOihYdWE9ZSxRdWE9dCxKdWE9dD09InVwInx8dD09ImRvd24iP1pHYShzLGUsdCk6UUdhKHMsZSx0KSl9ZnVuY3Rpb24gdHBhKHMsZSx0LGEscil7aXBhKGEsZSxzKTtsZXQgbj1uZXcgRGgodm9pZCAwLHMsZSx0LGEsYSxhLHIsMCk7cmV0dXJuIG4uY29udGVudERPTSYmbi51cGRhdGVDaGlsZHJlbihyLDApLG59ZnVuY3Rpb24gYXBhKHMsZSx0KXtsZXQgYT1zLmZpcnN0Q2hpbGQscj0hMTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IG89ZVtuXSxsPW8uZG9tO2lmKGwucGFyZW50Tm9kZT09cyl7Zm9yKDtsIT1hOylhPXJwYShhKSxyPSEwO2E9YS5uZXh0U2libGluZ31lbHNlIHI9ITAscy5pbnNlcnRCZWZvcmUobCxhKTtpZihvIGluc3RhbmNlb2YgJHYpe2xldCBwPWE/YS5wcmV2aW91c1NpYmxpbmc6cy5sYXN0Q2hpbGQ7YXBhKG8uY29udGVudERPTSxvLmNoaWxkcmVuLHQpLGE9cD9wLm5leHRTaWJsaW5nOnMuZmlyc3RDaGlsZH19Zm9yKDthOylhPXJwYShhKSxyPSEwO3ImJnQudHJhY2tXcml0ZXM9PXMmJih0LnRyYWNrV3JpdGVzPW51bGwpfWZ1bmN0aW9uIFJ0dChzLGUsdCl7aWYocy5sZW5ndGg9PTApcmV0dXJuIGFnO2xldCBhPXQ/YWdbMF06bmV3IFhaLHI9W2FdO2ZvcihsZXQgbj0wO248cy5sZW5ndGg7bisrKXtsZXQgbz1zW25dLnR5cGUuYXR0cnM7aWYobyl7by5ub2RlTmFtZSYmci5wdXNoKGE9bmV3IFhaKG8ubm9kZU5hbWUpKTtmb3IobGV0IGwgaW4gbyl7bGV0IHA9b1tsXTtwIT1udWxsJiYodCYmci5sZW5ndGg9PTEmJnIucHVzaChhPW5ldyBYWihlLmlzSW5saW5lPyJzcGFuIjoiZGl2IikpLGw9PSJjbGFzcyI/YS5jbGFzcz0oYS5jbGFzcz9hLmNsYXNzKyIgIjoiIikrcDpsPT0ic3R5bGUiP2Euc3R5bGU9KGEuc3R5bGU/YS5zdHlsZSsiOyI6IiIpK3A6bCE9Im5vZGVOYW1lIiYmKGFbbF09cCkpfX19cmV0dXJuIHJ9ZnVuY3Rpb24gc3BhKHMsZSx0LGEpe2lmKHQ9PWFnJiZhPT1hZylyZXR1cm4gZTtsZXQgcj1lO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bisrKXtsZXQgbz1hW25dLGw9dFtuXTtpZihuKXtsZXQgcDtsJiZsLm5vZGVOYW1lPT1vLm5vZGVOYW1lJiZyIT1zJiYocD1yLnBhcmVudE5vZGUpJiZwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PW8ubm9kZU5hbWV8fChwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoby5ub2RlTmFtZSkscC5wbUlzRGVjbz0hMCxwLmFwcGVuZENoaWxkKHIpLGw9YWdbMF0pLHI9cH1lS2EocixsfHxhZ1swXSxvKX1yZXR1cm4gcn1mdW5jdGlvbiBlS2EocyxlLHQpe2ZvcihsZXQgYSBpbiBlKWEhPSJjbGFzcyImJmEhPSJzdHlsZSImJmEhPSJub2RlTmFtZSImJiEoYSBpbiB0KSYmcy5yZW1vdmVBdHRyaWJ1dGUoYSk7Zm9yKGxldCBhIGluIHQpYSE9ImNsYXNzIiYmYSE9InN0eWxlIiYmYSE9Im5vZGVOYW1lIiYmdFthXSE9ZVthXSYmcy5zZXRBdHRyaWJ1dGUoYSx0W2FdKTtpZihlLmNsYXNzIT10LmNsYXNzKXtsZXQgYT1lLmNsYXNzP2UuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W10scj10LmNsYXNzP3QuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W107Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspci5pbmRleE9mKGFbbl0pPT0tMSYmcy5jbGFzc0xpc3QucmVtb3ZlKGFbbl0pO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKWEuaW5kZXhPZihyW25dKT09LTEmJnMuY2xhc3NMaXN0LmFkZChyW25dKTtzLmNsYXNzTGlzdC5sZW5ndGg9PTAmJnMucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfWlmKGUuc3R5bGUhPXQuc3R5bGUpe2lmKGUuc3R5bGUpe2xldCBhPS9ccyooW1x3XC1ceGExLVx1ZmZmZl0rKVxzKjooPzoiKD86XFwufFteIl0pKiJ8Jyg/OlxcLnxbXiddKSonfFwoLio/XCl8W147XSkqL2cscjtmb3IoO3I9YS5leGVjKGUuc3R5bGUpOylzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHJbMV0pfXQuc3R5bGUmJihzLnN0eWxlLmNzc1RleHQrPXQuc3R5bGUpfX1mdW5jdGlvbiBpcGEocyxlLHQpe3JldHVybiBzcGEocyxzLGFnLFJ0dChlLHQscy5ub2RlVHlwZSE9MSkpfWZ1bmN0aW9uIFpuZShzLGUpe2lmKHMubGVuZ3RoIT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrKylpZighc1t0XS50eXBlLmVxKGVbdF0udHlwZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gcnBhKHMpe2xldCBlPXMubmV4dFNpYmxpbmc7cmV0dXJuIHMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzKSxlfWZ1bmN0aW9uIHRLYShzLGUpe2xldCB0PWUsYT10LmNoaWxkcmVuLmxlbmd0aCxyPXMuY2hpbGRDb3VudCxuPW5ldyBNYXAsbz1bXTtlOmZvcig7cj4wOyl7bGV0IGw7Zm9yKDs7KWlmKGEpe2xldCBkPXQuY2hpbGRyZW5bYS0xXTtpZihkIGluc3RhbmNlb2YgJHYpdD1kLGE9ZC5jaGlsZHJlbi5sZW5ndGg7ZWxzZXtsPWQsYS0tO2JyZWFrfX1lbHNle2lmKHQ9PWUpYnJlYWsgZTthPXQucGFyZW50LmNoaWxkcmVuLmluZGV4T2YodCksdD10LnBhcmVudH1sZXQgcD1sLm5vZGU7aWYocCl7aWYocCE9cy5jaGlsZChyLTEpKWJyZWFrOy0tcixuLnNldChsLHIpLG8ucHVzaChsKX19cmV0dXJue2luZGV4OnIsbWF0Y2hlZDpuLG1hdGNoZXM6by5yZXZlcnNlKCl9fWZ1bmN0aW9uIGFLYShzLGUpe3JldHVybiBzLnR5cGUuc2lkZS1lLnR5cGUuc2lkZX1mdW5jdGlvbiBzS2EocyxlLHQsYSl7bGV0IHI9ZS5sb2NhbHMocyksbj0wO2lmKHIubGVuZ3RoPT0wKXtmb3IobGV0IGQ9MDtkPHMuY2hpbGRDb3VudDtkKyspe2xldCB1PXMuY2hpbGQoZCk7YSh1LHIsZS5mb3JDaGlsZChuLHUpLGQpLG4rPXUubm9kZVNpemV9cmV0dXJufWxldCBvPTAsbD1bXSxwPW51bGw7Zm9yKGxldCBkPTA7Oyl7bGV0IHUsYztmb3IoO288ci5sZW5ndGgmJnJbb10udG89PW47KXtsZXQgZj1yW28rK107Zi53aWRnZXQmJih1PyhjfHwoYz1bdV0pKS5wdXNoKGYpOnU9Zil9aWYodSlpZihjKXtjLnNvcnQoYUthKTtmb3IobGV0IGY9MDtmPGMubGVuZ3RoO2YrKyl0KGNbZl0sZCwhIXApfWVsc2UgdCh1LGQsISFwKTtsZXQgYix2O2lmKHApdj0tMSxiPXAscD1udWxsO2Vsc2UgaWYoZDxzLmNoaWxkQ291bnQpdj1kLGI9cy5jaGlsZChkKyspO2Vsc2UgYnJlYWs7Zm9yKGxldCBmPTA7ZjxsLmxlbmd0aDtmKyspbFtmXS50bzw9biYmbC5zcGxpY2UoZi0tLDEpO2Zvcig7bzxyLmxlbmd0aCYmcltvXS5mcm9tPD1uJiZyW29dLnRvPm47KWwucHVzaChyW28rK10pO2xldCB4PW4rYi5ub2RlU2l6ZTtpZihiLmlzVGV4dCl7bGV0IGY9eDtvPHIubGVuZ3RoJiZyW29dLmZyb208ZiYmKGY9cltvXS5mcm9tKTtmb3IobGV0IHk9MDt5PGwubGVuZ3RoO3krKylsW3ldLnRvPGYmJihmPWxbeV0udG8pO2Y8eCYmKHA9Yi5jdXQoZi1uKSxiPWIuY3V0KDAsZi1uKSx4PWYsdj0tMSl9ZWxzZSBmb3IoO288ci5sZW5ndGgmJnJbb10udG88eDspbysrO2xldCBtPWIuaXNJbmxpbmUmJiFiLmlzTGVhZj9sLmZpbHRlcihmPT4hZi5pbmxpbmUpOmwuc2xpY2UoKTthKGIsbSxlLmZvckNoaWxkKG4sYiksdiksbj14fX1mdW5jdGlvbiBpS2Eocyl7aWYocy5ub2RlTmFtZT09IlVMInx8cy5ub2RlTmFtZT09Ik9MIil7bGV0IGU9cy5zdHlsZS5jc3NUZXh0O3Muc3R5bGUuY3NzVGV4dD1lKyI7IGxpc3Qtc3R5bGU6IHNxdWFyZSAhaW1wb3J0YW50Iix3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzKS5saXN0U3R5bGUscy5zdHlsZS5jc3NUZXh0PWV9fWZ1bmN0aW9uIHJLYShzLGUsdCxhKXtmb3IobGV0IHI9MCxuPTA7cjxzLmNoaWxkQ291bnQmJm48PWE7KXtsZXQgbz1zLmNoaWxkKHIrKyksbD1uO2lmKG4rPW8ubm9kZVNpemUsIW8uaXNUZXh0KWNvbnRpbnVlO2xldCBwPW8udGV4dDtmb3IoO3I8cy5jaGlsZENvdW50Oyl7bGV0IGQ9cy5jaGlsZChyKyspO2lmKG4rPWQubm9kZVNpemUsIWQuaXNUZXh0KWJyZWFrO3ArPWQudGV4dH1pZihuPj10KXtpZihuPj1hJiZwLnNsaWNlKGEtZS5sZW5ndGgtbCxhLWwpPT1lKXJldHVybiBhLWUubGVuZ3RoO2xldCBkPWw8YT9wLmxhc3RJbmRleE9mKGUsYS1sLTEpOi0xO2lmKGQ+PTAmJmQrZS5sZW5ndGgrbD49dClyZXR1cm4gbCtkO2lmKHQ9PWEmJnAubGVuZ3RoPj1hK2UubGVuZ3RoLWwmJnAuc2xpY2UoYS1sLGEtbCtlLmxlbmd0aCk9PWUpcmV0dXJuIGF9fXJldHVybi0xfWZ1bmN0aW9uIEZ0dChzLGUsdCxhLHIpe2xldCBuPVtdO2ZvcihsZXQgbz0wLGw9MDtvPHMubGVuZ3RoO28rKyl7bGV0IHA9c1tvXSxkPWwsdT1sKz1wLnNpemU7ZD49dHx8dTw9ZT9uLnB1c2gocCk6KGQ8ZSYmbi5wdXNoKHAuc2xpY2UoMCxlLWQsYSkpLHImJihuLnB1c2gocikscj12b2lkIDApLHU+dCYmbi5wdXNoKHAuc2xpY2UodC1kLHAuc2l6ZSxhKSkpfXJldHVybiBufWZ1bmN0aW9uIEJ0dChzLGU9bnVsbCl7bGV0IHQ9cy5kb21TZWxlY3Rpb25SYW5nZSgpLGE9cy5zdGF0ZS5kb2M7aWYoIXQuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCByPXMuZG9jVmlldy5uZWFyZXN0RGVzYyh0LmZvY3VzTm9kZSksbj1yJiZyLnNpemU9PTAsbz1zLmRvY1ZpZXcucG9zRnJvbURPTSh0LmZvY3VzTm9kZSx0LmZvY3VzT2Zmc2V0LDEpO2lmKG88MClyZXR1cm4gbnVsbDtsZXQgbD1hLnJlc29sdmUobykscCxkO2lmKFduZSh0KSl7Zm9yKHA9bztyJiYhci5ub2RlOylyPXIucGFyZW50O2xldCBjPXIubm9kZTtpZihyJiZjLmlzQXRvbSYmRnQuaXNTZWxlY3RhYmxlKGMpJiZyLnBhcmVudCYmIShjLmlzSW5saW5lJiZBR2EodC5mb2N1c05vZGUsdC5mb2N1c09mZnNldCxyLmRvbSkpKXtsZXQgYj1yLnBvc0JlZm9yZTtkPW5ldyBGdChvPT1iP2w6YS5yZXNvbHZlKGIpKX19ZWxzZXtpZih0IGluc3RhbmNlb2Ygcy5kb20ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5TZWxlY3Rpb24mJnQucmFuZ2VDb3VudD4xKXtsZXQgYz1vLGI9bztmb3IobGV0IHY9MDt2PHQucmFuZ2VDb3VudDt2Kyspe2xldCB4PXQuZ2V0UmFuZ2VBdCh2KTtjPU1hdGgubWluKGMscy5kb2NWaWV3LnBvc0Zyb21ET00oeC5zdGFydENvbnRhaW5lcix4LnN0YXJ0T2Zmc2V0LDEpKSxiPU1hdGgubWF4KGIscy5kb2NWaWV3LnBvc0Zyb21ET00oeC5lbmRDb250YWluZXIseC5lbmRPZmZzZXQsLTEpKX1pZihjPDApcmV0dXJuIG51bGw7W3Asb109Yj09cy5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yP1tiLGNdOltjLGJdLGw9YS5yZXNvbHZlKG8pfWVsc2UgcD1zLmRvY1ZpZXcucG9zRnJvbURPTSh0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQsMSk7aWYocDwwKXJldHVybiBudWxsfWxldCB1PWEucmVzb2x2ZShwKTtpZighZCl7bGV0IGM9ZT09InBvaW50ZXIifHxzLnN0YXRlLnNlbGVjdGlvbi5oZWFkPGwucG9zJiYhbj8xOi0xO2Q9cXR0KHMsdSxsLGMpfXJldHVybiBkfWZ1bmN0aW9uIG9wYShzKXtyZXR1cm4gcy5lZGl0YWJsZT9zLmhhc0ZvY3VzKCk6aHBhKHMpJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNvbnRhaW5zKHMuZG9tKX1mdW5jdGlvbiBjdShzLGU9ITEpe2xldCB0PXMuc3RhdGUuc2VsZWN0aW9uO2lmKGRwYShzLHQpLCEhb3BhKHMpKXtpZighZSYmcy5pbnB1dC5tb3VzZURvd24mJnMuaW5wdXQubW91c2VEb3duLmFsbG93RGVmYXVsdCYmJG8pe2xldCBhPXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSxyPXMuZG9tT2JzZXJ2ZXIuY3VycmVudFNlbGVjdGlvbjtpZihhLmFuY2hvck5vZGUmJnIuYW5jaG9yTm9kZSYmUTgoYS5hbmNob3JOb2RlLGEuYW5jaG9yT2Zmc2V0LHIuYW5jaG9yTm9kZSxyLmFuY2hvck9mZnNldCkpe3MuaW5wdXQubW91c2VEb3duLmRlbGF5ZWRTZWxlY3Rpb25TeW5jPSEwLHMuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCk7cmV0dXJufX1pZihzLmRvbU9ic2VydmVyLmRpc2Nvbm5lY3RTZWxlY3Rpb24oKSxzLmN1cnNvcldyYXBwZXIpbkthKHMpO2Vsc2V7bGV0e2FuY2hvcjphLGhlYWQ6cn09dCxuLG87bnBhJiYhKHQgaW5zdGFuY2VvZiBKdCkmJih0LiRmcm9tLnBhcmVudC5pbmxpbmVDb250ZW50fHwobj1scGEocyx0LmZyb20pKSwhdC5lbXB0eSYmIXQuJGZyb20ucGFyZW50LmlubGluZUNvbnRlbnQmJihvPWxwYShzLHQudG8pKSkscy5kb2NWaWV3LnNldFNlbGVjdGlvbihhLHIscyxlKSxucGEmJihuJiZjcGEobiksbyYmY3BhKG8pKSx0LnZpc2libGU/cy5kb20uY2xhc3NMaXN0LnJlbW92ZSgiUHJvc2VNaXJyb3ItaGlkZXNlbGVjdGlvbiIpOihzLmRvbS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIiksIm9uc2VsZWN0aW9uY2hhbmdlImluIGRvY3VtZW50JiZvS2EocykpfXMuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCkscy5kb21PYnNlcnZlci5jb25uZWN0U2VsZWN0aW9uKCl9fWZ1bmN0aW9uIGxwYShzLGUpe2xldHtub2RlOnQsb2Zmc2V0OmF9PXMuZG9jVmlldy5kb21Gcm9tUG9zKGUsMCkscj1hPHQuY2hpbGROb2Rlcy5sZW5ndGg/dC5jaGlsZE5vZGVzW2FdOm51bGwsbj1hP3QuY2hpbGROb2Rlc1thLTFdOm51bGw7aWYobG4mJnImJnIuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiBIdHQocik7aWYoKCFyfHxyLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIikmJighbnx8bi5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpKXtpZihyKXJldHVybiBIdHQocik7aWYobilyZXR1cm4gSHR0KG4pfX1mdW5jdGlvbiBIdHQocyl7cmV0dXJuIHMuY29udGVudEVkaXRhYmxlPSJ0cnVlIixsbiYmcy5kcmFnZ2FibGUmJihzLmRyYWdnYWJsZT0hMSxzLndhc0RyYWdnYWJsZT0hMCksc31mdW5jdGlvbiBjcGEocyl7cy5jb250ZW50RWRpdGFibGU9ImZhbHNlIixzLndhc0RyYWdnYWJsZSYmKHMuZHJhZ2dhYmxlPSEwLHMud2FzRHJhZ2dhYmxlPW51bGwpfWZ1bmN0aW9uIG9LYShzKXtsZXQgZT1zLmRvbS5vd25lckRvY3VtZW50O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixzLmlucHV0LmhpZGVTZWxlY3Rpb25HdWFyZCk7bGV0IHQ9cy5kb21TZWxlY3Rpb25SYW5nZSgpLGE9dC5hbmNob3JOb2RlLHI9dC5hbmNob3JPZmZzZXQ7ZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHMuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkPSgpPT57KHQuYW5jaG9yTm9kZSE9YXx8dC5hbmNob3JPZmZzZXQhPXIpJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHMuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkKSxzZXRUaW1lb3V0KCgpPT57KCFvcGEocyl8fHMuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUpJiZzLmRvbS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIil9LDIwKSl9KX1mdW5jdGlvbiBuS2Eocyl7bGV0IGU9cy5kb21TZWxlY3Rpb24oKTtpZighZSlyZXR1cm47bGV0IHQ9cy5jdXJzb3JXcmFwcGVyLmRvbSxhPXQubm9kZU5hbWU9PSJJTUciO2E/ZS5jb2xsYXBzZSh0LnBhcmVudE5vZGUsVG8odCkrMSk6ZS5jb2xsYXBzZSh0LDApLCFhJiYhcy5zdGF0ZS5zZWxlY3Rpb24udmlzaWJsZSYmQ2wmJlRoPD0xMSYmKHQuZGlzYWJsZWQ9ITAsdC5kaXNhYmxlZD0hMSl9ZnVuY3Rpb24gZHBhKHMsZSl7aWYoZSBpbnN0YW5jZW9mIEZ0KXtsZXQgdD1zLmRvY1ZpZXcuZGVzY0F0KGUuZnJvbSk7dCE9cy5sYXN0U2VsZWN0ZWRWaWV3RGVzYyYmKHVwYShzKSx0JiZ0LnNlbGVjdE5vZGUoKSxzLmxhc3RTZWxlY3RlZFZpZXdEZXNjPXQpfWVsc2UgdXBhKHMpfWZ1bmN0aW9uIHVwYShzKXtzLmxhc3RTZWxlY3RlZFZpZXdEZXNjJiYocy5sYXN0U2VsZWN0ZWRWaWV3RGVzYy5wYXJlbnQmJnMubGFzdFNlbGVjdGVkVmlld0Rlc2MuZGVzZWxlY3ROb2RlKCkscy5sYXN0U2VsZWN0ZWRWaWV3RGVzYz12b2lkIDApfWZ1bmN0aW9uIHF0dChzLGUsdCxhKXtyZXR1cm4gcy5zb21lUHJvcCgiY3JlYXRlU2VsZWN0aW9uQmV0d2VlbiIscj0+cihzLGUsdCkpfHxKdC5iZXR3ZWVuKGUsdCxhKX1mdW5jdGlvbiBwcGEocyl7cmV0dXJuIHMuZWRpdGFibGUmJiFzLmhhc0ZvY3VzKCk/ITE6aHBhKHMpfWZ1bmN0aW9uIGhwYShzKXtsZXQgZT1zLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuYW5jaG9yTm9kZSlyZXR1cm4hMTt0cnl7cmV0dXJuIHMuZG9tLmNvbnRhaW5zKGUuYW5jaG9yTm9kZS5ub2RlVHlwZT09Mz9lLmFuY2hvck5vZGUucGFyZW50Tm9kZTplLmFuY2hvck5vZGUpJiYocy5lZGl0YWJsZXx8cy5kb20uY29udGFpbnMoZS5mb2N1c05vZGUubm9kZVR5cGU9PTM/ZS5mb2N1c05vZGUucGFyZW50Tm9kZTplLmZvY3VzTm9kZSkpfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBsS2Eocyl7bGV0IGU9cy5kb2NWaWV3LmRvbUZyb21Qb3Mocy5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yLDApLHQ9cy5kb21TZWxlY3Rpb25SYW5nZSgpO3JldHVybiBROChlLm5vZGUsZS5vZmZzZXQsdC5hbmNob3JOb2RlLHQuYW5jaG9yT2Zmc2V0KX1mdW5jdGlvbiBqdHQocyxlKXtsZXR7JGFuY2hvcjp0LCRoZWFkOmF9PXMuc2VsZWN0aW9uLHI9ZT4wP3QubWF4KGEpOnQubWluKGEpLG49ci5wYXJlbnQuaW5saW5lQ29udGVudD9yLmRlcHRoP3MuZG9jLnJlc29sdmUoZT4wP3IuYWZ0ZXIoKTpyLmJlZm9yZSgpKTpudWxsOnI7cmV0dXJuIG4mJlF0LmZpbmRGcm9tKG4sZSl9ZnVuY3Rpb24gTGgocyxlKXtyZXR1cm4gcy5kaXNwYXRjaChzLnN0YXRlLnRyLnNldFNlbGVjdGlvbihlKS5zY3JvbGxJbnRvVmlldygpKSwhMH1mdW5jdGlvbiBmcGEocyxlLHQpe2xldCBhPXMuc3RhdGUuc2VsZWN0aW9uO2lmKGEgaW5zdGFuY2VvZiBKdClpZih0LmluZGV4T2YoInMiKT4tMSl7bGV0eyRoZWFkOnJ9PWEsbj1yLnRleHRPZmZzZXQ/bnVsbDplPDA/ci5ub2RlQmVmb3JlOnIubm9kZUFmdGVyO2lmKCFufHxuLmlzVGV4dHx8IW4uaXNMZWFmKXJldHVybiExO2xldCBvPXMuc3RhdGUuZG9jLnJlc29sdmUoci5wb3Mrbi5ub2RlU2l6ZSooZTwwPy0xOjEpKTtyZXR1cm4gTGgocyxuZXcgSnQoYS4kYW5jaG9yLG8pKX1lbHNlIGlmKGEuZW1wdHkpe2lmKHMuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSl7bGV0IHI9anR0KHMuc3RhdGUsZSk7cmV0dXJuIHImJnIgaW5zdGFuY2VvZiBGdD9MaChzLHIpOiExfWVsc2UgaWYoIShCYyYmdC5pbmRleE9mKCJtIik+LTEpKXtsZXQgcj1hLiRoZWFkLG49ci50ZXh0T2Zmc2V0P251bGw6ZTwwP3Iubm9kZUJlZm9yZTpyLm5vZGVBZnRlcixvO2lmKCFufHxuLmlzVGV4dClyZXR1cm4hMTtsZXQgbD1lPDA/ci5wb3Mtbi5ub2RlU2l6ZTpyLnBvcztyZXR1cm4gbi5pc0F0b218fChvPXMuZG9jVmlldy5kZXNjQXQobCkpJiYhby5jb250ZW50RE9NP0Z0LmlzU2VsZWN0YWJsZShuKT9MaChzLG5ldyBGdChlPDA/cy5zdGF0ZS5kb2MucmVzb2x2ZShyLnBvcy1uLm5vZGVTaXplKTpyKSk6WVo/TGgocyxuZXcgSnQocy5zdGF0ZS5kb2MucmVzb2x2ZShlPDA/bDpsK24ubm9kZVNpemUpKSk6ITE6ITF9fWVsc2UgcmV0dXJuITE7ZWxzZXtpZihhIGluc3RhbmNlb2YgRnQmJmEubm9kZS5pc0lubGluZSlyZXR1cm4gTGgocyxuZXcgSnQoZT4wP2EuJHRvOmEuJGZyb20pKTt7bGV0IHI9anR0KHMuc3RhdGUsZSk7cmV0dXJuIHI/TGgocyxyKTohMX19fWZ1bmN0aW9uIFhuZShzKXtyZXR1cm4gcy5ub2RlVHlwZT09Mz9zLm5vZGVWYWx1ZS5sZW5ndGg6cy5jaGlsZE5vZGVzLmxlbmd0aH1mdW5jdGlvbiBRWihzLGUpe2xldCB0PXMucG1WaWV3RGVzYztyZXR1cm4gdCYmdC5zaXplPT0wJiYoZTwwfHxzLm5leHRTaWJsaW5nfHxzLm5vZGVOYW1lIT0iQlIiKX1mdW5jdGlvbiBEdihzLGUpe3JldHVybiBlPDA/Y0thKHMpOmRLYShzKX1mdW5jdGlvbiBjS2Eocyl7bGV0IGU9cy5kb21TZWxlY3Rpb25SYW5nZSgpLHQ9ZS5mb2N1c05vZGUsYT1lLmZvY3VzT2Zmc2V0O2lmKCF0KXJldHVybjtsZXQgcixuLG89ITE7Zm9yKEZjJiZ0Lm5vZGVUeXBlPT0xJiZhPFhuZSh0KSYmUVoodC5jaGlsZE5vZGVzW2FdLC0xKSYmKG89ITApOzspaWYoYT4wKXtpZih0Lm5vZGVUeXBlIT0xKWJyZWFrO3tsZXQgbD10LmNoaWxkTm9kZXNbYS0xXTtpZihRWihsLC0xKSlyPXQsbj0tLWE7ZWxzZSBpZihsLm5vZGVUeXBlPT0zKXQ9bCxhPXQubm9kZVZhbHVlLmxlbmd0aDtlbHNlIGJyZWFrfX1lbHNle2lmKG1wYSh0KSlicmVhazt7bGV0IGw9dC5wcmV2aW91c1NpYmxpbmc7Zm9yKDtsJiZRWihsLC0xKTspcj10LnBhcmVudE5vZGUsbj1UbyhsKSxsPWwucHJldmlvdXNTaWJsaW5nO2lmKGwpdD1sLGE9WG5lKHQpO2Vsc2V7aWYodD10LnBhcmVudE5vZGUsdD09cy5kb20pYnJlYWs7YT0wfX19bz9WdHQocyx0LGEpOnImJlZ0dChzLHIsbil9ZnVuY3Rpb24gZEthKHMpe2xldCBlPXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSx0PWUuZm9jdXNOb2RlLGE9ZS5mb2N1c09mZnNldDtpZighdClyZXR1cm47bGV0IHI9WG5lKHQpLG4sbztmb3IoOzspaWYoYTxyKXtpZih0Lm5vZGVUeXBlIT0xKWJyZWFrO2xldCBsPXQuY2hpbGROb2Rlc1thXTtpZihRWihsLDEpKW49dCxvPSsrYTtlbHNlIGJyZWFrfWVsc2V7aWYobXBhKHQpKWJyZWFrO3tsZXQgbD10Lm5leHRTaWJsaW5nO2Zvcig7bCYmUVoobCwxKTspbj1sLnBhcmVudE5vZGUsbz1UbyhsKSsxLGw9bC5uZXh0U2libGluZztpZihsKXQ9bCxhPTAscj1YbmUodCk7ZWxzZXtpZih0PXQucGFyZW50Tm9kZSx0PT1zLmRvbSlicmVhazthPXI9MH19fW4mJlZ0dChzLG4sbyl9ZnVuY3Rpb24gbXBhKHMpe2xldCBlPXMucG1WaWV3RGVzYztyZXR1cm4gZSYmZS5ub2RlJiZlLm5vZGUuaXNCbG9ja31mdW5jdGlvbiB1S2EocyxlKXtmb3IoO3MmJmU9PXMuY2hpbGROb2Rlcy5sZW5ndGgmJiFLWihzKTspZT1UbyhzKSsxLHM9cy5wYXJlbnROb2RlO2Zvcig7cyYmZTxzLmNoaWxkTm9kZXMubGVuZ3RoOyl7bGV0IHQ9cy5jaGlsZE5vZGVzW2VdO2lmKHQubm9kZVR5cGU9PTMpcmV0dXJuIHQ7aWYodC5ub2RlVHlwZT09MSYmdC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpYnJlYWs7cz10LGU9MH19ZnVuY3Rpb24gcEthKHMsZSl7Zm9yKDtzJiYhZSYmIUtaKHMpOyllPVRvKHMpLHM9cy5wYXJlbnROb2RlO2Zvcig7cyYmZTspe2xldCB0PXMuY2hpbGROb2Rlc1tlLTFdO2lmKHQubm9kZVR5cGU9PTMpcmV0dXJuIHQ7aWYodC5ub2RlVHlwZT09MSYmdC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpYnJlYWs7cz10LGU9cy5jaGlsZE5vZGVzLmxlbmd0aH19ZnVuY3Rpb24gVnR0KHMsZSx0KXtpZihlLm5vZGVUeXBlIT0zKXtsZXQgbixvOyhvPXVLYShlLHQpKT8oZT1vLHQ9MCk6KG49cEthKGUsdCkpJiYoZT1uLHQ9bi5ub2RlVmFsdWUubGVuZ3RoKX1sZXQgYT1zLmRvbVNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtpZihXbmUoYSkpe2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bi5zZXRFbmQoZSx0KSxuLnNldFN0YXJ0KGUsdCksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKG4pfWVsc2UgYS5leHRlbmQmJmEuZXh0ZW5kKGUsdCk7cy5kb21PYnNlcnZlci5zZXRDdXJTZWxlY3Rpb24oKTtsZXR7c3RhdGU6cn09cztzZXRUaW1lb3V0KCgpPT57cy5zdGF0ZT09ciYmY3Uocyl9LDUwKX1mdW5jdGlvbiBncGEocyxlKXtsZXQgdD1zLnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCEoJG98fHF1YSkmJnQucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCByPXMuY29vcmRzQXRQb3MoZSk7aWYoZT50LnN0YXJ0KCkpe2xldCBuPXMuY29vcmRzQXRQb3MoZS0xKSxvPShuLnRvcCtuLmJvdHRvbSkvMjtpZihvPnIudG9wJiZvPHIuYm90dG9tJiZNYXRoLmFicyhuLmxlZnQtci5sZWZ0KT4xKXJldHVybiBuLmxlZnQ8ci5sZWZ0PyJsdHIiOiJydGwifWlmKGU8dC5lbmQoKSl7bGV0IG49cy5jb29yZHNBdFBvcyhlKzEpLG89KG4udG9wK24uYm90dG9tKS8yO2lmKG8+ci50b3AmJm88ci5ib3R0b20mJk1hdGguYWJzKG4ubGVmdC1yLmxlZnQpPjEpcmV0dXJuIG4ubGVmdD5yLmxlZnQ/Imx0ciI6InJ0bCJ9fXJldHVybiBnZXRDb21wdXRlZFN0eWxlKHMuZG9tKS5kaXJlY3Rpb249PSJydGwiPyJydGwiOiJsdHIifWZ1bmN0aW9uIGJwYShzLGUsdCl7bGV0IGE9cy5zdGF0ZS5zZWxlY3Rpb247aWYoYSBpbnN0YW5jZW9mIEp0JiYhYS5lbXB0eXx8dC5pbmRleE9mKCJzIik+LTF8fEJjJiZ0LmluZGV4T2YoIm0iKT4tMSlyZXR1cm4hMTtsZXR7JGZyb206ciwkdG86bn09YTtpZighci5wYXJlbnQuaW5saW5lQ29udGVudHx8cy5lbmRPZlRleHRibG9jayhlPDA/InVwIjoiZG93biIpKXtsZXQgbz1qdHQocy5zdGF0ZSxlKTtpZihvJiZvIGluc3RhbmNlb2YgRnQpcmV0dXJuIExoKHMsbyl9aWYoIXIucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBvPWU8MD9yOm4sbD1hIGluc3RhbmNlb2Ygbm4/UXQubmVhcihvLGUpOlF0LmZpbmRGcm9tKG8sZSk7cmV0dXJuIGw/TGgocyxsKTohMX1yZXR1cm4hMX1mdW5jdGlvbiB2cGEocyxlKXtpZighKHMuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgSnQpKXJldHVybiEwO2xldHskaGVhZDp0LCRhbmNob3I6YSxlbXB0eTpyfT1zLnN0YXRlLnNlbGVjdGlvbjtpZighdC5zYW1lUGFyZW50KGEpKXJldHVybiEwO2lmKCFyKXJldHVybiExO2lmKHMuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSlyZXR1cm4hMDtsZXQgbj0hdC50ZXh0T2Zmc2V0JiYoZTwwP3Qubm9kZUJlZm9yZTp0Lm5vZGVBZnRlcik7aWYobiYmIW4uaXNUZXh0KXtsZXQgbz1zLnN0YXRlLnRyO3JldHVybiBlPDA/by5kZWxldGUodC5wb3Mtbi5ub2RlU2l6ZSx0LnBvcyk6by5kZWxldGUodC5wb3MsdC5wb3Mrbi5ub2RlU2l6ZSkscy5kaXNwYXRjaChvKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiB4cGEocyxlLHQpe3MuZG9tT2JzZXJ2ZXIuc3RvcCgpLGUuY29udGVudEVkaXRhYmxlPXQscy5kb21PYnNlcnZlci5zdGFydCgpfWZ1bmN0aW9uIGhLYShzKXtpZighbG58fHMuc3RhdGUuc2VsZWN0aW9uLiRoZWFkLnBhcmVudE9mZnNldD4wKXJldHVybiExO2xldHtmb2N1c05vZGU6ZSxmb2N1c09mZnNldDp0fT1zLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoZSYmZS5ub2RlVHlwZT09MSYmdD09MCYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXtsZXQgYT1lLmZpcnN0Q2hpbGQ7eHBhKHMsYSwidHJ1ZSIpLHNldFRpbWVvdXQoKCk9PnhwYShzLGEsImZhbHNlIiksMjApfXJldHVybiExfWZ1bmN0aW9uIGZLYShzKXtsZXQgZT0iIjtyZXR1cm4gcy5jdHJsS2V5JiYoZSs9ImMiKSxzLm1ldGFLZXkmJihlKz0ibSIpLHMuYWx0S2V5JiYoZSs9ImEiKSxzLnNoaWZ0S2V5JiYoZSs9InMiKSxlfWZ1bmN0aW9uIG1LYShzLGUpe2xldCB0PWUua2V5Q29kZSxhPWZLYShlKTtpZih0PT04fHxCYyYmdD09NzImJmE9PSJjIilyZXR1cm4gdnBhKHMsLTEpfHxEdihzLC0xKTtpZih0PT00NiYmIWUuc2hpZnRLZXl8fEJjJiZ0PT02OCYmYT09ImMiKXJldHVybiB2cGEocywxKXx8RHYocywxKTtpZih0PT0xM3x8dD09MjcpcmV0dXJuITA7aWYodD09Mzd8fEJjJiZ0PT02NiYmYT09ImMiKXtsZXQgcj10PT0zNz9ncGEocyxzLnN0YXRlLnNlbGVjdGlvbi5mcm9tKT09Imx0ciI/LTE6MTotMTtyZXR1cm4gZnBhKHMscixhKXx8RHYocyxyKX1lbHNlIGlmKHQ9PTM5fHxCYyYmdD09NzAmJmE9PSJjIil7bGV0IHI9dD09Mzk/Z3BhKHMscy5zdGF0ZS5zZWxlY3Rpb24uZnJvbSk9PSJsdHIiPzE6LTE6MTtyZXR1cm4gZnBhKHMscixhKXx8RHYocyxyKX1lbHNle2lmKHQ9PTM4fHxCYyYmdD09ODAmJmE9PSJjIilyZXR1cm4gYnBhKHMsLTEsYSl8fER2KHMsLTEpO2lmKHQ9PTQwfHxCYyYmdD09NzgmJmE9PSJjIilyZXR1cm4gaEthKHMpfHxicGEocywxLGEpfHxEdihzLDEpO2lmKGE9PShCYz8ibSI6ImMiKSYmKHQ9PTY2fHx0PT03M3x8dD09ODl8fHQ9PTkwKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBVdHQocyxlKXtzLnNvbWVQcm9wKCJ0cmFuc2Zvcm1Db3BpZWQiLHY9PntlPXYoZSxzKX0pO2xldCB0PVtdLHtjb250ZW50OmEsb3BlblN0YXJ0OnIsb3BlbkVuZDpufT1lO2Zvcig7cj4xJiZuPjEmJmEuY2hpbGRDb3VudD09MSYmYS5maXJzdENoaWxkLmNoaWxkQ291bnQ9PTE7KXtyLS0sbi0tO2xldCB2PWEuZmlyc3RDaGlsZDt0LnB1c2godi50eXBlLm5hbWUsdi5hdHRycyE9di50eXBlLmRlZmF1bHRBdHRycz92LmF0dHJzOm51bGwpLGE9di5jb250ZW50fWxldCBvPXMuc29tZVByb3AoImNsaXBib2FyZFNlcmlhbGl6ZXIiKXx8TGQuZnJvbVNjaGVtYShzLnN0YXRlLnNjaGVtYSksbD16cGEoKSxwPWwuY3JlYXRlRWxlbWVudCgiZGl2Iik7cC5hcHBlbmRDaGlsZChvLnNlcmlhbGl6ZUZyYWdtZW50KGEse2RvY3VtZW50Omx9KSk7bGV0IGQ9cC5maXJzdENoaWxkLHUsYz0wO2Zvcig7ZCYmZC5ub2RlVHlwZT09MSYmKHU9X3BhW2Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pOyl7Zm9yKGxldCB2PXUubGVuZ3RoLTE7dj49MDt2LS0pe2xldCB4PWwuY3JlYXRlRWxlbWVudCh1W3ZdKTtmb3IoO3AuZmlyc3RDaGlsZDspeC5hcHBlbmRDaGlsZChwLmZpcnN0Q2hpbGQpO3AuYXBwZW5kQ2hpbGQoeCksYysrfWQ9cC5maXJzdENoaWxkfWQmJmQubm9kZVR5cGU9PTEmJmQuc2V0QXR0cmlidXRlKCJkYXRhLXBtLXNsaWNlIixgJHtyfSAke259JHtjP2AgLSR7Y31gOiIifSAke0pTT04uc3RyaW5naWZ5KHQpfWApO2xldCBiPXMuc29tZVByb3AoImNsaXBib2FyZFRleHRTZXJpYWxpemVyIix2PT52KGUscykpfHxlLmNvbnRlbnQudGV4dEJldHdlZW4oMCxlLmNvbnRlbnQuc2l6ZSxgCgpgKTtyZXR1cm57ZG9tOnAsdGV4dDpiLHNsaWNlOmV9fWZ1bmN0aW9uIFd0dChzLGUsdCxhLHIpe2xldCBuPXIucGFyZW50LnR5cGUuc3BlYy5jb2RlLG8sbDtpZighdCYmIWUpcmV0dXJuIG51bGw7bGV0IHA9ISFlJiYoYXx8bnx8IXQpO2lmKHApe2lmKHMuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZFRleHQiLGI9PntlPWIoZSxufHxhLHMpfSksbilyZXR1cm4gbD1uZXcgX3QocnQuZnJvbShzLnN0YXRlLnNjaGVtYS50ZXh0KGUucmVwbGFjZSgvXHJcbj8vZyxgCmApKSksMCwwKSxzLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLGI9PntsPWIobCxzLCEwKX0pLGw7bGV0IGM9cy5zb21lUHJvcCgiY2xpcGJvYXJkVGV4dFBhcnNlciIsYj0+YihlLHIsYSxzKSk7aWYoYylsPWM7ZWxzZXtsZXQgYj1yLm1hcmtzKCkse3NjaGVtYTp2fT1zLnN0YXRlLHg9TGQuZnJvbVNjaGVtYSh2KTtvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3BsaXQoLyg/OlxyXG4/fFxuKSsvKS5mb3JFYWNoKG09PntsZXQgZj1vLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSk7bSYmZi5hcHBlbmRDaGlsZCh4LnNlcmlhbGl6ZU5vZGUodi50ZXh0KG0sYikpKX0pfX1lbHNlIHMuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZEhUTUwiLGM9Pnt0PWModCxzKX0pLG89eEthKHQpLFlaJiZ5S2Eobyk7bGV0IGQ9byYmby5xdWVyeVNlbGVjdG9yKCJbZGF0YS1wbS1zbGljZV0iKSx1PWQmJi9eKFxkKykgKFxkKykoPzogLShcZCspKT8gKC4qKS8uZXhlYyhkLmdldEF0dHJpYnV0ZSgiZGF0YS1wbS1zbGljZSIpfHwiIik7aWYodSYmdVszXSlmb3IobGV0IGM9K3VbM107Yz4wO2MtLSl7bGV0IGI9by5maXJzdENoaWxkO2Zvcig7YiYmYi5ub2RlVHlwZSE9MTspYj1iLm5leHRTaWJsaW5nO2lmKCFiKWJyZWFrO289Yn1pZihsfHwobD0ocy5zb21lUHJvcCgiY2xpcGJvYXJkUGFyc2VyIil8fHMuc29tZVByb3AoImRvbVBhcnNlciIpfHxlMi5mcm9tU2NoZW1hKHMuc3RhdGUuc2NoZW1hKSkucGFyc2VTbGljZShvLHtwcmVzZXJ2ZVdoaXRlc3BhY2U6ISEocHx8dSksY29udGV4dDpyLHJ1bGVGcm9tTm9kZShiKXtyZXR1cm4gYi5ub2RlTmFtZT09IkJSIiYmIWIubmV4dFNpYmxpbmcmJmIucGFyZW50Tm9kZSYmIWdLYS50ZXN0KGIucGFyZW50Tm9kZS5ub2RlTmFtZSk/e2lnbm9yZTohMH06bnVsbH19KSksdSlsPXdLYShTcGEobCwrdVsxXSwrdVsyXSksdVs0XSk7ZWxzZSBpZihsPV90Lm1heE9wZW4oYkthKGwuY29udGVudCxyKSwhMCksbC5vcGVuU3RhcnR8fGwub3BlbkVuZCl7bGV0IGM9MCxiPTA7Zm9yKGxldCB2PWwuY29udGVudC5maXJzdENoaWxkO2M8bC5vcGVuU3RhcnQmJiF2LnR5cGUuc3BlYy5pc29sYXRpbmc7YysrLHY9di5maXJzdENoaWxkKTtmb3IobGV0IHY9bC5jb250ZW50Lmxhc3RDaGlsZDtiPGwub3BlbkVuZCYmIXYudHlwZS5zcGVjLmlzb2xhdGluZztiKyssdj12Lmxhc3RDaGlsZCk7bD1TcGEobCxjLGIpfXJldHVybiBzLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLGM9PntsPWMobCxzLHApfSksbH1mdW5jdGlvbiBiS2EocyxlKXtpZihzLmNoaWxkQ291bnQ8MilyZXR1cm4gcztmb3IobGV0IHQ9ZS5kZXB0aDt0Pj0wO3QtLSl7bGV0IHI9ZS5ub2RlKHQpLmNvbnRlbnRNYXRjaEF0KGUuaW5kZXgodCkpLG4sbz1bXTtpZihzLmZvckVhY2gobD0+e2lmKCFvKXJldHVybjtsZXQgcD1yLmZpbmRXcmFwcGluZyhsLnR5cGUpLGQ7aWYoIXApcmV0dXJuIG89bnVsbDtpZihkPW8ubGVuZ3RoJiZuLmxlbmd0aCYmd3BhKHAsbixsLG9bby5sZW5ndGgtMV0sMCkpb1tvLmxlbmd0aC0xXT1kO2Vsc2V7by5sZW5ndGgmJihvW28ubGVuZ3RoLTFdPWtwYShvW28ubGVuZ3RoLTFdLG4ubGVuZ3RoKSk7bGV0IHU9eXBhKGwscCk7by5wdXNoKHUpLHI9ci5tYXRjaFR5cGUodS50eXBlKSxuPXB9fSksbylyZXR1cm4gcnQuZnJvbShvKX1yZXR1cm4gc31mdW5jdGlvbiB5cGEocyxlLHQ9MCl7Zm9yKGxldCBhPWUubGVuZ3RoLTE7YT49dDthLS0pcz1lW2FdLmNyZWF0ZShudWxsLHJ0LmZyb20ocykpO3JldHVybiBzfWZ1bmN0aW9uIHdwYShzLGUsdCxhLHIpe2lmKHI8cy5sZW5ndGgmJnI8ZS5sZW5ndGgmJnNbcl09PWVbcl0pe2xldCBuPXdwYShzLGUsdCxhLmxhc3RDaGlsZCxyKzEpO2lmKG4pcmV0dXJuIGEuY29weShhLmNvbnRlbnQucmVwbGFjZUNoaWxkKGEuY2hpbGRDb3VudC0xLG4pKTtpZihhLmNvbnRlbnRNYXRjaEF0KGEuY2hpbGRDb3VudCkubWF0Y2hUeXBlKHI9PXMubGVuZ3RoLTE/dC50eXBlOnNbcisxXSkpcmV0dXJuIGEuY29weShhLmNvbnRlbnQuYXBwZW5kKHJ0LmZyb20oeXBhKHQscyxyKzEpKSkpfX1mdW5jdGlvbiBrcGEocyxlKXtpZihlPT0wKXJldHVybiBzO2xldCB0PXMuY29udGVudC5yZXBsYWNlQ2hpbGQocy5jaGlsZENvdW50LTEsa3BhKHMubGFzdENoaWxkLGUtMSkpLGE9cy5jb250ZW50TWF0Y2hBdChzLmNoaWxkQ291bnQpLmZpbGxCZWZvcmUocnQuZW1wdHksITApO3JldHVybiBzLmNvcHkodC5hcHBlbmQoYSkpfWZ1bmN0aW9uIEd0dChzLGUsdCxhLHIsbil7bGV0IG89ZTwwP3MuZmlyc3RDaGlsZDpzLmxhc3RDaGlsZCxsPW8uY29udGVudDtyZXR1cm4gcy5jaGlsZENvdW50PjEmJihuPTApLHI8YS0xJiYobD1HdHQobCxlLHQsYSxyKzEsbikpLHI+PXQmJihsPWU8MD9vLmNvbnRlbnRNYXRjaEF0KDApLmZpbGxCZWZvcmUobCxuPD1yKS5hcHBlbmQobCk6bC5hcHBlbmQoby5jb250ZW50TWF0Y2hBdChvLmNoaWxkQ291bnQpLmZpbGxCZWZvcmUocnQuZW1wdHksITApKSkscy5yZXBsYWNlQ2hpbGQoZTwwPzA6cy5jaGlsZENvdW50LTEsby5jb3B5KGwpKX1mdW5jdGlvbiBTcGEocyxlLHQpe3JldHVybiBlPHMub3BlblN0YXJ0JiYocz1uZXcgX3QoR3R0KHMuY29udGVudCwtMSxlLHMub3BlblN0YXJ0LDAscy5vcGVuRW5kKSxlLHMub3BlbkVuZCkpLHQ8cy5vcGVuRW5kJiYocz1uZXcgX3QoR3R0KHMuY29udGVudCwxLHQscy5vcGVuRW5kLDAsMCkscy5vcGVuU3RhcnQsdCkpLHN9ZnVuY3Rpb24genBhKCl7cmV0dXJuIE1wYXx8KE1wYT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInRpdGxlIikpfWZ1bmN0aW9uIHZLYShzKXtsZXQgZT13aW5kb3cudHJ1c3RlZFR5cGVzO3JldHVybiBlPyhLdHR8fChLdHQ9ZS5kZWZhdWx0UG9saWN5fHxlLmNyZWF0ZVBvbGljeSgiUHJvc2VNaXJyb3JDbGlwYm9hcmQiLHtjcmVhdGVIVE1MOmkodD0+dCwiY3JlYXRlSFRNTCIpfSkpLEt0dC5jcmVhdGVIVE1MKHMpKTpzfWZ1bmN0aW9uIHhLYShzKXtsZXQgZT0vXihccyo8bWV0YSBbXj5dKj4pKi8uZXhlYyhzKTtlJiYocz1zLnNsaWNlKGVbMF0ubGVuZ3RoKSk7bGV0IHQ9enBhKCkuY3JlYXRlRWxlbWVudCgiZGl2IiksYT0vPChbYS16XVtePlxzXSspL2kuZXhlYyhzKSxyO2lmKChyPWEmJl9wYVthWzFdLnRvTG93ZXJDYXNlKCldKSYmKHM9ci5tYXAobj0+IjwiK24rIj4iKS5qb2luKCIiKStzK3IubWFwKG49PiI8LyIrbisiPiIpLnJldmVyc2UoKS5qb2luKCIiKSksdC5pbm5lckhUTUw9dkthKHMpLHIpZm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspdD10LnF1ZXJ5U2VsZWN0b3IocltuXSl8fHQ7cmV0dXJuIHR9ZnVuY3Rpb24geUthKHMpe2xldCBlPXMucXVlcnlTZWxlY3RvckFsbCgkbz8ic3Bhbjpub3QoW2NsYXNzXSk6bm90KFtzdHlsZV0pIjoic3Bhbi5BcHBsZS1jb252ZXJ0ZWQtc3BhY2UiKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IGE9ZVt0XTthLmNoaWxkTm9kZXMubGVuZ3RoPT0xJiZhLnRleHRDb250ZW50PT0iXHhBMCImJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChzLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSxhKX19ZnVuY3Rpb24gd0thKHMsZSl7aWYoIXMuc2l6ZSlyZXR1cm4gcztsZXQgdD1zLmNvbnRlbnQuZmlyc3RDaGlsZC50eXBlLnNjaGVtYSxhO3RyeXthPUpTT04ucGFyc2UoZSl9Y2F0Y2h7cmV0dXJuIHN9bGV0e2NvbnRlbnQ6cixvcGVuU3RhcnQ6bixvcGVuRW5kOm99PXM7Zm9yKGxldCBsPWEubGVuZ3RoLTI7bD49MDtsLT0yKXtsZXQgcD10Lm5vZGVzW2FbbF1dO2lmKCFwfHxwLmhhc1JlcXVpcmVkQXR0cnMoKSlicmVhaztyPXJ0LmZyb20ocC5jcmVhdGUoYVtsKzFdLHIpKSxuKyssbysrfXJldHVybiBuZXcgX3QocixuLG8pfWZ1bmN0aW9uIFNLYShzKXtmb3IobGV0IGUgaW4gJG4pe2xldCB0PSRuW2VdO3MuZG9tLmFkZEV2ZW50TGlzdGVuZXIoZSxzLmlucHV0LmV2ZW50SGFuZGxlcnNbZV09YT0+e01LYShzLGEpJiYhWHR0KHMsYSkmJihzLmVkaXRhYmxlfHwhKGEudHlwZSBpbiBEbikpJiZ0KHMsYSl9LGtLYVtlXT97cGFzc2l2ZTohMH06dm9pZCAwKX1sbiYmcy5kb20uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT5udWxsKSxadHQocyl9ZnVuY3Rpb24gRWgocyxlKXtzLmlucHV0Lmxhc3RTZWxlY3Rpb25PcmlnaW49ZSxzLmlucHV0Lmxhc3RTZWxlY3Rpb25UaW1lPURhdGUubm93KCl9ZnVuY3Rpb24gX0thKHMpe3MuZG9tT2JzZXJ2ZXIuc3RvcCgpO2ZvcihsZXQgZSBpbiBzLmlucHV0LmV2ZW50SGFuZGxlcnMpcy5kb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHMuaW5wdXQuZXZlbnRIYW5kbGVyc1tlXSk7Y2xlYXJUaW1lb3V0KHMuaW5wdXQuY29tcG9zaW5nVGltZW91dCksY2xlYXJUaW1lb3V0KHMuaW5wdXQubGFzdElPU0VudGVyRmFsbGJhY2tUaW1lb3V0KX1mdW5jdGlvbiBadHQocyl7cy5zb21lUHJvcCgiaGFuZGxlRE9NRXZlbnRzIixlPT57Zm9yKGxldCB0IGluIGUpcy5pbnB1dC5ldmVudEhhbmRsZXJzW3RdfHxzLmRvbS5hZGRFdmVudExpc3RlbmVyKHQscy5pbnB1dC5ldmVudEhhbmRsZXJzW3RdPWE9Plh0dChzLGEpKX0pfWZ1bmN0aW9uIFh0dChzLGUpe3JldHVybiBzLnNvbWVQcm9wKCJoYW5kbGVET01FdmVudHMiLHQ9PntsZXQgYT10W2UudHlwZV07cmV0dXJuIGE/YShzLGUpfHxlLmRlZmF1bHRQcmV2ZW50ZWQ6ITF9KX1mdW5jdGlvbiBNS2EocyxlKXtpZighZS5idWJibGVzKXJldHVybiEwO2lmKGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm4hMTtmb3IobGV0IHQ9ZS50YXJnZXQ7dCE9cy5kb207dD10LnBhcmVudE5vZGUpaWYoIXR8fHQubm9kZVR5cGU9PTExfHx0LnBtVmlld0Rlc2MmJnQucG1WaWV3RGVzYy5zdG9wRXZlbnQoZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gekthKHMsZSl7IVh0dChzLGUpJiYkbltlLnR5cGVdJiYocy5lZGl0YWJsZXx8IShlLnR5cGUgaW4gRG4pKSYmJG5bZS50eXBlXShzLGUpfWZ1bmN0aW9uIFFuZShzKXtyZXR1cm57bGVmdDpzLmNsaWVudFgsdG9wOnMuY2xpZW50WX19ZnVuY3Rpb24gQ0thKHMsZSl7bGV0IHQ9ZS54LXMuY2xpZW50WCxhPWUueS1zLmNsaWVudFk7cmV0dXJuIHQqdCthKmE8MTAwfWZ1bmN0aW9uIFF0dChzLGUsdCxhLHIpe2lmKGE9PS0xKXJldHVybiExO2xldCBuPXMuc3RhdGUuZG9jLnJlc29sdmUoYSk7Zm9yKGxldCBvPW4uZGVwdGgrMTtvPjA7by0tKWlmKHMuc29tZVByb3AoZSxsPT5vPm4uZGVwdGg/bChzLHQsbi5ub2RlQWZ0ZXIsbi5iZWZvcmUobyksciwhMCk6bChzLHQsbi5ub2RlKG8pLG4uYmVmb3JlKG8pLHIsITEpKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBMdihzLGUsdCl7aWYocy5mb2N1c2VkfHxzLmZvY3VzKCkscy5zdGF0ZS5zZWxlY3Rpb24uZXEoZSkpcmV0dXJuO2xldCBhPXMuc3RhdGUudHIuc2V0U2VsZWN0aW9uKGUpO3Q9PSJwb2ludGVyIiYmYS5zZXRNZXRhKCJwb2ludGVyIiwhMCkscy5kaXNwYXRjaChhKX1mdW5jdGlvbiBUS2EocyxlKXtpZihlPT0tMSlyZXR1cm4hMTtsZXQgdD1zLnN0YXRlLmRvYy5yZXNvbHZlKGUpLGE9dC5ub2RlQWZ0ZXI7cmV0dXJuIGEmJmEuaXNBdG9tJiZGdC5pc1NlbGVjdGFibGUoYSk/KEx2KHMsbmV3IEZ0KHQpLCJwb2ludGVyIiksITApOiExfWZ1bmN0aW9uICRLYShzLGUpe2lmKGU9PS0xKXJldHVybiExO2xldCB0PXMuc3RhdGUuc2VsZWN0aW9uLGEscjt0IGluc3RhbmNlb2YgRnQmJihhPXQubm9kZSk7bGV0IG49cy5zdGF0ZS5kb2MucmVzb2x2ZShlKTtmb3IobGV0IG89bi5kZXB0aCsxO28+MDtvLS0pe2xldCBsPW8+bi5kZXB0aD9uLm5vZGVBZnRlcjpuLm5vZGUobyk7aWYoRnQuaXNTZWxlY3RhYmxlKGwpKXthJiZ0LiRmcm9tLmRlcHRoPjAmJm8+PXQuJGZyb20uZGVwdGgmJm4uYmVmb3JlKHQuJGZyb20uZGVwdGgrMSk9PXQuJGZyb20ucG9zP3I9bi5iZWZvcmUodC4kZnJvbS5kZXB0aCk6cj1uLmJlZm9yZShvKTticmVha319cmV0dXJuIHIhPW51bGw/KEx2KHMsRnQuY3JlYXRlKHMuc3RhdGUuZG9jLHIpLCJwb2ludGVyIiksITApOiExfWZ1bmN0aW9uIERLYShzLGUsdCxhLHIpe3JldHVybiBRdHQocywiaGFuZGxlQ2xpY2tPbiIsZSx0LGEpfHxzLnNvbWVQcm9wKCJoYW5kbGVDbGljayIsbj0+bihzLGUsYSkpfHwocj8kS2Eocyx0KTpUS2Eocyx0KSl9ZnVuY3Rpb24gTEthKHMsZSx0LGEpe3JldHVybiBRdHQocywiaGFuZGxlRG91YmxlQ2xpY2tPbiIsZSx0LGEpfHxzLnNvbWVQcm9wKCJoYW5kbGVEb3VibGVDbGljayIscj0+cihzLGUsYSkpfWZ1bmN0aW9uIEVLYShzLGUsdCxhKXtyZXR1cm4gUXR0KHMsImhhbmRsZVRyaXBsZUNsaWNrT24iLGUsdCxhKXx8cy5zb21lUHJvcCgiaGFuZGxlVHJpcGxlQ2xpY2siLHI9PnIocyxlLGEpKXx8UEthKHMsdCxhKX1mdW5jdGlvbiBQS2EocyxlLHQpe2lmKHQuYnV0dG9uIT0wKXJldHVybiExO2xldCBhPXMuc3RhdGUuZG9jO2lmKGU9PS0xKXJldHVybiBhLmlubGluZUNvbnRlbnQ/KEx2KHMsSnQuY3JlYXRlKGEsMCxhLmNvbnRlbnQuc2l6ZSksInBvaW50ZXIiKSwhMCk6ITE7bGV0IHI9YS5yZXNvbHZlKGUpO2ZvcihsZXQgbj1yLmRlcHRoKzE7bj4wO24tLSl7bGV0IG89bj5yLmRlcHRoP3Iubm9kZUFmdGVyOnIubm9kZShuKSxsPXIuYmVmb3JlKG4pO2lmKG8uaW5saW5lQ29udGVudClMdihzLEp0LmNyZWF0ZShhLGwrMSxsKzErby5jb250ZW50LnNpemUpLCJwb2ludGVyIik7ZWxzZSBpZihGdC5pc1NlbGVjdGFibGUobykpTHYocyxGdC5jcmVhdGUoYSxsKSwicG9pbnRlciIpO2Vsc2UgY29udGludWU7cmV0dXJuITB9fWZ1bmN0aW9uIEp0dChzKXtyZXR1cm4gSloocyl9ZnVuY3Rpb24gVHBhKHMsZSl7cmV0dXJuIHMuY29tcG9zaW5nPyEwOmxuJiZNYXRoLmFicyhlLnRpbWVTdGFtcC1zLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdCk8NTAwPyhzLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD0tMmU4LCEwKTohMX1mdW5jdGlvbiBBS2Eocyl7bGV0e2ZvY3VzTm9kZTplLGZvY3VzT2Zmc2V0OnR9PXMuZG9tU2VsZWN0aW9uUmFuZ2UoKTtpZighZXx8ZS5ub2RlVHlwZSE9MXx8dD49ZS5jaGlsZE5vZGVzLmxlbmd0aClyZXR1cm4hMTtsZXQgYT1lLmNoaWxkTm9kZXNbdF07cmV0dXJuIGEubm9kZVR5cGU9PTEmJmEuY29udGVudEVkaXRhYmxlPT0iZmFsc2UifWZ1bmN0aW9uICRwYShzLGUpe2NsZWFyVGltZW91dChzLmlucHV0LmNvbXBvc2luZ1RpbWVvdXQpLGU+LTEmJihzLmlucHV0LmNvbXBvc2luZ1RpbWVvdXQ9c2V0VGltZW91dCgoKT0+SloocyksZSkpfWZ1bmN0aW9uIERwYShzKXtmb3Iocy5jb21wb3NpbmcmJihzLmlucHV0LmNvbXBvc2luZz0hMSxzLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD1SS2EoKSk7cy5pbnB1dC5jb21wb3NpdGlvbk5vZGVzLmxlbmd0aD4wOylzLmlucHV0LmNvbXBvc2l0aW9uTm9kZXMucG9wKCkubWFya1BhcmVudHNEaXJ0eSgpfWZ1bmN0aW9uIE5LYShzKXtsZXQgZT1zLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCB0PVBHYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KSxhPUlHYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KTtpZih0JiZhJiZ0IT1hKXtsZXQgcj1hLnBtVmlld0Rlc2Msbj1zLmRvbU9ic2VydmVyLmxhc3RDaGFuZ2VkVGV4dE5vZGU7aWYodD09bnx8YT09bilyZXR1cm4gbjtpZighcnx8IXIuaXNUZXh0KGEubm9kZVZhbHVlKSlyZXR1cm4gYTtpZihzLmlucHV0LmNvbXBvc2l0aW9uTm9kZT09YSl7bGV0IG89dC5wbVZpZXdEZXNjO2lmKCEoIW98fCFvLmlzVGV4dCh0Lm5vZGVWYWx1ZSkpKXJldHVybiBhfX1yZXR1cm4gdHx8YX1mdW5jdGlvbiBSS2EoKXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gcy5pbml0RXZlbnQoImV2ZW50IiwhMCwhMCkscy50aW1lU3RhbXB9ZnVuY3Rpb24gSloocyxlPSExKXtpZighKG51JiZzLmRvbU9ic2VydmVyLmZsdXNoaW5nU29vbj49MCkpe2lmKHMuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpLERwYShzKSxlfHxzLmRvY1ZpZXcmJnMuZG9jVmlldy5kaXJ0eSl7bGV0IHQ9QnR0KHMpLGE9cy5zdGF0ZS5zZWxlY3Rpb247cmV0dXJuIHQmJiF0LmVxKGEpP3MuZGlzcGF0Y2gocy5zdGF0ZS50ci5zZXRTZWxlY3Rpb24odCkpOihzLm1hcmtDdXJzb3J8fGUpJiYhYS4kZnJvbS5ub2RlKGEuJGZyb20uc2hhcmVkRGVwdGgoYS50bykpLmlubGluZUNvbnRlbnQ/cy5kaXNwYXRjaChzLnN0YXRlLnRyLmRlbGV0ZVNlbGVjdGlvbigpKTpzLnVwZGF0ZVN0YXRlKHMuc3RhdGUpLCEwfXJldHVybiExfX1mdW5jdGlvbiBPS2EocyxlKXtpZighcy5kb20ucGFyZW50Tm9kZSlyZXR1cm47bGV0IHQ9cy5kb20ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7dC5hcHBlbmRDaGlsZChlKSx0LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogLTEwMDAwcHg7IHRvcDogMTBweCI7bGV0IGE9Z2V0U2VsZWN0aW9uKCkscj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Iuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpLHMuZG9tLmJsdXIoKSxhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2Uociksc2V0VGltZW91dCgoKT0+e3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHMuZm9jdXMoKX0sNTApfWZ1bmN0aW9uIEZLYShzKXtyZXR1cm4gcy5vcGVuU3RhcnQ9PTAmJnMub3BlbkVuZD09MCYmcy5jb250ZW50LmNoaWxkQ291bnQ9PTE/cy5jb250ZW50LmZpcnN0Q2hpbGQ6bnVsbH1mdW5jdGlvbiBCS2EocyxlKXtpZighcy5kb20ucGFyZW50Tm9kZSlyZXR1cm47bGV0IHQ9cy5pbnB1dC5zaGlmdEtleXx8cy5zdGF0ZS5zZWxlY3Rpb24uJGZyb20ucGFyZW50LnR5cGUuc3BlYy5jb2RlLGE9cy5kb20ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KHQ/InRleHRhcmVhIjoiZGl2IikpO3R8fChhLmNvbnRlbnRFZGl0YWJsZT0idHJ1ZSIpLGEuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGZpeGVkOyBsZWZ0OiAtMTAwMDBweDsgdG9wOiAxMHB4IixhLmZvY3VzKCk7bGV0IHI9cy5pbnB1dC5zaGlmdEtleSYmcy5pbnB1dC5sYXN0S2V5Q29kZSE9NDU7c2V0VGltZW91dCgoKT0+e3MuZm9jdXMoKSxhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKSx0P3RYKHMsYS52YWx1ZSxudWxsLHIsZSk6dFgocyxhLnRleHRDb250ZW50LGEuaW5uZXJIVE1MLHIsZSl9LDUwKX1mdW5jdGlvbiB0WChzLGUsdCxhLHIpe2xldCBuPVd0dChzLGUsdCxhLHMuc3RhdGUuc2VsZWN0aW9uLiRmcm9tKTtpZihzLnNvbWVQcm9wKCJoYW5kbGVQYXN0ZSIscD0+cChzLHIsbnx8X3QuZW1wdHkpKSlyZXR1cm4hMDtpZighbilyZXR1cm4hMTtsZXQgbz1GS2EobiksbD1vP3Muc3RhdGUudHIucmVwbGFjZVNlbGVjdGlvbldpdGgobyxhKTpzLnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb24obik7cmV0dXJuIHMuZGlzcGF0Y2gobC5zY3JvbGxJbnRvVmlldygpLnNldE1ldGEoInBhc3RlIiwhMCkuc2V0TWV0YSgidWlFdmVudCIsInBhc3RlIikpLCEwfWZ1bmN0aW9uIExwYShzKXtsZXQgZT1zLmdldERhdGEoInRleHQvcGxhaW4iKXx8cy5nZXREYXRhKCJUZXh0Iik7aWYoZSlyZXR1cm4gZTtsZXQgdD1zLmdldERhdGEoInRleHQvdXJpLWxpc3QiKTtyZXR1cm4gdD90LnJlcGxhY2UoL1xyP1xuL2csIiAiKToiIn1mdW5jdGlvbiBFcGEocyxlKXtsZXQgdDtyZXR1cm4gcy5zb21lUHJvcCgiZHJhZ0NvcGllcyIsYT0+e3Q9dHx8YShlKX0pLHQhPW51bGw/IXQ6IWVbSEthXX1mdW5jdGlvbiBxS2EocyxlLHQpe2lmKCFlLmRhdGFUcmFuc2ZlcilyZXR1cm47bGV0IGE9cy5wb3NBdENvb3JkcyhRbmUoZSkpO2lmKCFhKXJldHVybjtsZXQgcj1zLnN0YXRlLmRvYy5yZXNvbHZlKGEucG9zKSxuPXQmJnQuc2xpY2U7bj9zLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLHY9PntuPXYobixzLCExKX0pOm49V3R0KHMsTHBhKGUuZGF0YVRyYW5zZmVyKSxlWD9udWxsOmUuZGF0YVRyYW5zZmVyLmdldERhdGEoInRleHQvaHRtbCIpLCExLHIpO2xldCBvPSEhKHQmJkVwYShzLGUpKTtpZihzLnNvbWVQcm9wKCJoYW5kbGVEcm9wIix2PT52KHMsZSxufHxfdC5lbXB0eSxvKSkpe2UucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoIW4pcmV0dXJuO2UucHJldmVudERlZmF1bHQoKTtsZXQgbD1uP1ZaKHMuc3RhdGUuZG9jLHIucG9zLG4pOnIucG9zO2w9PW51bGwmJihsPXIucG9zKTtsZXQgcD1zLnN0YXRlLnRyO2lmKG8pe2xldHtub2RlOnZ9PXQ7dj92LnJlcGxhY2UocCk6cC5kZWxldGVTZWxlY3Rpb24oKX1sZXQgZD1wLm1hcHBpbmcubWFwKGwpLHU9bi5vcGVuU3RhcnQ9PTAmJm4ub3BlbkVuZD09MCYmbi5jb250ZW50LmNoaWxkQ291bnQ9PTEsYz1wLmRvYztpZih1P3AucmVwbGFjZVJhbmdlV2l0aChkLGQsbi5jb250ZW50LmZpcnN0Q2hpbGQpOnAucmVwbGFjZVJhbmdlKGQsZCxuKSxwLmRvYy5lcShjKSlyZXR1cm47bGV0IGI9cC5kb2MucmVzb2x2ZShkKTtpZih1JiZGdC5pc1NlbGVjdGFibGUobi5jb250ZW50LmZpcnN0Q2hpbGQpJiZiLm5vZGVBZnRlciYmYi5ub2RlQWZ0ZXIuc2FtZU1hcmt1cChuLmNvbnRlbnQuZmlyc3RDaGlsZCkpcC5zZXRTZWxlY3Rpb24obmV3IEZ0KGIpKTtlbHNle2xldCB2PXAubWFwcGluZy5tYXAobCk7cC5tYXBwaW5nLm1hcHNbcC5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLmZvckVhY2goKHgsbSxmLHkpPT52PXkpLHAuc2V0U2VsZWN0aW9uKHF0dChzLGIscC5kb2MucmVzb2x2ZSh2KSkpfXMuZm9jdXMoKSxzLmRpc3BhdGNoKHAuc2V0TWV0YSgidWlFdmVudCIsImRyb3AiKSl9ZnVuY3Rpb24gYVgocyxlKXtpZihzPT1lKXJldHVybiEwO2ZvcihsZXQgdCBpbiBzKWlmKHNbdF0hPT1lW3RdKXJldHVybiExO2ZvcihsZXQgdCBpbiBlKWlmKCEodCBpbiBzKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBqS2EocyxlLHQsYSxyLG4sbyl7bGV0IGw9cy5zbGljZSgpO2ZvcihsZXQgZD0wLHU9bjtkPHQubWFwcy5sZW5ndGg7ZCsrKXtsZXQgYz0wO3QubWFwc1tkXS5mb3JFYWNoKChiLHYseCxtKT0+e2xldCBmPW0teC0odi1iKTtmb3IobGV0IHk9MDt5PGwubGVuZ3RoO3krPTMpe2xldCBNPWxbeSsxXTtpZihNPDB8fGI+TSt1LWMpY29udGludWU7bGV0IHo9bFt5XSt1LWM7dj49ej9sW3krMV09Yjw9ej8tMjotMTpiPj11JiZmJiYobFt5XSs9ZixsW3krMV0rPWYpfWMrPWZ9KSx1PXQubWFwc1tkXS5tYXAodSwtMSl9bGV0IHA9ITE7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKz0zKWlmKGxbZCsxXTwwKXtpZihsW2QrMV09PS0yKXtwPSEwLGxbZCsxXT0tMTtjb250aW51ZX1sZXQgdT10Lm1hcChzW2RdK24pLGM9dS1yO2lmKGM8MHx8Yz49YS5jb250ZW50LnNpemUpe3A9ITA7Y29udGludWV9bGV0IGI9dC5tYXAoc1tkKzFdK24sLTEpLHY9Yi1yLHtpbmRleDp4LG9mZnNldDptfT1hLmNvbnRlbnQuZmluZEluZGV4KGMpLGY9YS5tYXliZUNoaWxkKHgpO2lmKGYmJm09PWMmJm0rZi5ub2RlU2l6ZT09dil7bGV0IHk9bFtkKzJdLm1hcElubmVyKHQsZix1KzEsc1tkXStuKzEsbyk7eSE9Y24/KGxbZF09YyxsW2QrMV09dixsW2QrMl09eSk6KGxbZCsxXT0tMixwPSEwKX1lbHNlIHA9ITB9aWYocCl7bGV0IGQ9VkthKGwscyxlLHQscixuLG8pLHU9YWxlKGQsYSwwLG8pO2U9dS5sb2NhbDtmb3IobGV0IGM9MDtjPGwubGVuZ3RoO2MrPTMpbFtjKzFdPDAmJihsLnNwbGljZShjLDMpLGMtPTMpO2ZvcihsZXQgYz0wLGI9MDtjPHUuY2hpbGRyZW4ubGVuZ3RoO2MrPTMpe2xldCB2PXUuY2hpbGRyZW5bY107Zm9yKDtiPGwubGVuZ3RoJiZsW2JdPHY7KWIrPTM7bC5zcGxpY2UoYiwwLHUuY2hpbGRyZW5bY10sdS5jaGlsZHJlbltjKzFdLHUuY2hpbGRyZW5bYysyXSl9fXJldHVybiBuZXcgTG4oZS5zb3J0KHJnKSxsKX1mdW5jdGlvbiBQcGEocyxlKXtpZighZXx8IXMubGVuZ3RoKXJldHVybiBzO2xldCB0PVtdO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSsrKXtsZXQgcj1zW2FdO3QucHVzaChuZXcgdDIoci5mcm9tK2Usci50bytlLHIudHlwZSkpfXJldHVybiB0fWZ1bmN0aW9uIFZLYShzLGUsdCxhLHIsbixvKXtmdW5jdGlvbiBsKHAsZCl7Zm9yKGxldCB1PTA7dTxwLmxvY2FsLmxlbmd0aDt1Kyspe2xldCBjPXAubG9jYWxbdV0ubWFwKGEscixkKTtjP3QucHVzaChjKTpvLm9uUmVtb3ZlJiZvLm9uUmVtb3ZlKHAubG9jYWxbdV0uc3BlYyl9Zm9yKGxldCB1PTA7dTxwLmNoaWxkcmVuLmxlbmd0aDt1Kz0zKWwocC5jaGlsZHJlblt1KzJdLHAuY2hpbGRyZW5bdV0rZCsxKX1pKGwsImdhdGhlciIpO2ZvcihsZXQgcD0wO3A8cy5sZW5ndGg7cCs9MylzW3ArMV09PS0xJiZsKHNbcCsyXSxlW3BdK24rMSk7cmV0dXJuIHR9ZnVuY3Rpb24gSXBhKHMsZSx0KXtpZihlLmlzTGVhZilyZXR1cm4gbnVsbDtsZXQgYT10K2Uubm9kZVNpemUscj1udWxsO2ZvcihsZXQgbj0wLG87bjxzLmxlbmd0aDtuKyspKG89c1tuXSkmJm8uZnJvbT50JiZvLnRvPGEmJigocnx8KHI9W10pKS5wdXNoKG8pLHNbbl09bnVsbCk7cmV0dXJuIHJ9ZnVuY3Rpb24gQXBhKHMpe2xldCBlPVtdO2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKXNbdF0hPW51bGwmJmUucHVzaChzW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiBhbGUocyxlLHQsYSl7bGV0IHI9W10sbj0hMTtlLmZvckVhY2goKGwscCk9PntsZXQgZD1JcGEocyxsLHArdCk7aWYoZCl7bj0hMDtsZXQgdT1hbGUoZCxsLHQrcCsxLGEpO3UhPWNuJiZyLnB1c2gocCxwK2wubm9kZVNpemUsdSl9fSk7bGV0IG89UHBhKG4/QXBhKHMpOnMsLXQpLnNvcnQocmcpO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKW9bbF0udHlwZS52YWxpZChlLG9bbF0pfHwoYS5vblJlbW92ZSYmYS5vblJlbW92ZShvW2xdLnNwZWMpLG8uc3BsaWNlKGwtLSwxKSk7cmV0dXJuIG8ubGVuZ3RofHxyLmxlbmd0aD9uZXcgTG4obyxyKTpjbn1mdW5jdGlvbiByZyhzLGUpe3JldHVybiBzLmZyb20tZS5mcm9tfHxzLnRvLWUudG99ZnVuY3Rpb24gYWF0KHMpe2xldCBlPXM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aC0xO3QrKyl7bGV0IGE9ZVt0XTtpZihhLmZyb20hPWEudG8pZm9yKGxldCByPXQrMTtyPGUubGVuZ3RoO3IrKyl7bGV0IG49ZVtyXTtpZihuLmZyb209PWEuZnJvbSl7bi50byE9YS50byYmKGU9PXMmJihlPXMuc2xpY2UoKSksZVtyXT1uLmNvcHkobi5mcm9tLGEudG8pLE5wYShlLHIrMSxuLmNvcHkoYS50byxuLnRvKSkpO2NvbnRpbnVlfWVsc2V7bi5mcm9tPGEudG8mJihlPT1zJiYoZT1zLnNsaWNlKCkpLGVbdF09YS5jb3B5KGEuZnJvbSxuLmZyb20pLE5wYShlLHIsYS5jb3B5KG4uZnJvbSxhLnRvKSkpO2JyZWFrfX19cmV0dXJuIGV9ZnVuY3Rpb24gTnBhKHMsZSx0KXtmb3IoO2U8cy5sZW5ndGgmJnJnKHQsc1tlXSk+MDspZSsrO3Muc3BsaWNlKGUsMCx0KX1mdW5jdGlvbiBzYXQocyl7bGV0IGU9W107cmV0dXJuIHMuc29tZVByb3AoImRlY29yYXRpb25zIix0PT57bGV0IGE9dChzLnN0YXRlKTthJiZhIT1jbiYmZS5wdXNoKGEpfSkscy5jdXJzb3JXcmFwcGVyJiZlLnB1c2goTG4uY3JlYXRlKHMuc3RhdGUuZG9jLFtzLmN1cnNvcldyYXBwZXIuZGVjb10pKSx0bGUuZnJvbShlKX1mdW5jdGlvbiBHS2Eocyl7aWYoIVJwYS5oYXMocykmJihScGEuc2V0KHMsbnVsbCksWyJub3JtYWwiLCJub3dyYXAiLCJwcmUtbGluZSJdLmluZGV4T2YoZ2V0Q29tcHV0ZWRTdHlsZShzLmRvbSkud2hpdGVTcGFjZSkhPT0tMSkpe2lmKHMucmVxdWlyZXNHZWNrb0hhY2tOb2RlPUZjLE9wYSlyZXR1cm47Y29uc29sZS53YXJuKCJQcm9zZU1pcnJvciBleHBlY3RzIHRoZSBDU1Mgd2hpdGUtc3BhY2UgcHJvcGVydHkgdG8gYmUgc2V0LCBwcmVmZXJhYmx5IHRvICdwcmUtd3JhcCcuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGxvYWQgc3R5bGUvcHJvc2VtaXJyb3IuY3NzIGZyb20gdGhlIHByb3NlbWlycm9yLXZpZXcgcGFja2FnZS4iKSxPcGE9ITB9fWZ1bmN0aW9uIEZwYShzLGUpe2xldCB0PWUuc3RhcnRDb250YWluZXIsYT1lLnN0YXJ0T2Zmc2V0LHI9ZS5lbmRDb250YWluZXIsbj1lLmVuZE9mZnNldCxvPXMuZG9tQXRQb3Mocy5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yKTtyZXR1cm4gUTgoby5ub2RlLG8ub2Zmc2V0LHIsbikmJihbdCxhLHIsbl09W3Isbix0LGFdKSx7YW5jaG9yTm9kZTp0LGFuY2hvck9mZnNldDphLGZvY3VzTm9kZTpyLGZvY3VzT2Zmc2V0Om59fWZ1bmN0aW9uIEtLYShzLGUpe2lmKGUuZ2V0Q29tcG9zZWRSYW5nZXMpe2xldCByPWUuZ2V0Q29tcG9zZWRSYW5nZXMocy5yb290KVswXTtpZihyKXJldHVybiBGcGEocyxyKX1sZXQgdDtmdW5jdGlvbiBhKHIpe3IucHJldmVudERlZmF1bHQoKSxyLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHQ9ci5nZXRUYXJnZXRSYW5nZXMoKVswXX1yZXR1cm4gaShhLCJyZWFkIikscy5kb20uYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlaW5wdXQiLGEsITApLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbmRlbnQiKSxzLmRvbS5yZW1vdmVFdmVudExpc3RlbmVyKCJiZWZvcmVpbnB1dCIsYSwhMCksdD9GcGEocyx0KTpudWxsfWZ1bmN0aW9uIFlLYShzLGUpe2ZvcihsZXQgdD1lLnBhcmVudE5vZGU7dCYmdCE9cy5kb207dD10LnBhcmVudE5vZGUpe2xldCBhPXMuZG9jVmlldy5uZWFyZXN0RGVzYyh0LCEwKTtpZihhJiZhLm5vZGUuaXNCbG9jaylyZXR1cm4gdH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBaS2EocyxlKXt2YXIgdDtsZXR7Zm9jdXNOb2RlOmEsZm9jdXNPZmZzZXQ6cn09cy5kb21TZWxlY3Rpb25SYW5nZSgpO2ZvcihsZXQgbiBvZiBlKWlmKCgodD1uLnBhcmVudE5vZGUpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5ub2RlTmFtZSk9PSJUUiIpe2xldCBvPW4ubmV4dFNpYmxpbmc7Zm9yKDtvJiZvLm5vZGVOYW1lIT0iVEQiJiZvLm5vZGVOYW1lIT0iVEgiOylvPW8ubmV4dFNpYmxpbmc7aWYobyl7bGV0IGw9bztmb3IoOzspe2xldCBwPWwuZmlyc3RDaGlsZDtpZighcHx8cC5ub2RlVHlwZSE9MXx8cC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSJ8fC9eKEJSfElNRykkLy50ZXN0KHAubm9kZU5hbWUpKWJyZWFrO2w9cH1sLmluc2VydEJlZm9yZShuLGwuZmlyc3RDaGlsZCksYT09biYmcy5kb21TZWxlY3Rpb24oKS5jb2xsYXBzZShuLHIpfWVsc2Ugbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pfX1mdW5jdGlvbiBYS2EocyxlLHQpe2xldHtub2RlOmEsZnJvbU9mZnNldDpyLHRvT2Zmc2V0Om4sZnJvbTpvLHRvOmx9PXMuZG9jVmlldy5wYXJzZVJhbmdlKGUsdCkscD1zLmRvbVNlbGVjdGlvblJhbmdlKCksZCx1PXAuYW5jaG9yTm9kZTtpZih1JiZzLmRvbS5jb250YWlucyh1Lm5vZGVUeXBlPT0xP3U6dS5wYXJlbnROb2RlKSYmKGQ9W3tub2RlOnUsb2Zmc2V0OnAuYW5jaG9yT2Zmc2V0fV0sV25lKHApfHxkLnB1c2goe25vZGU6cC5mb2N1c05vZGUsb2Zmc2V0OnAuZm9jdXNPZmZzZXR9KSksJG8mJnMuaW5wdXQubGFzdEtleUNvZGU9PT04KWZvcihsZXQgZj1uO2Y+cjtmLS0pe2xldCB5PWEuY2hpbGROb2Rlc1tmLTFdLE09eS5wbVZpZXdEZXNjO2lmKHkubm9kZU5hbWU9PSJCUiImJiFNKXtuPWY7YnJlYWt9aWYoIU18fE0uc2l6ZSlicmVha31sZXQgYz1zLnN0YXRlLmRvYyxiPXMuc29tZVByb3AoImRvbVBhcnNlciIpfHxlMi5mcm9tU2NoZW1hKHMuc3RhdGUuc2NoZW1hKSx2PWMucmVzb2x2ZShvKSx4PW51bGwsbT1iLnBhcnNlKGEse3RvcE5vZGU6di5wYXJlbnQsdG9wTWF0Y2g6di5wYXJlbnQuY29udGVudE1hdGNoQXQodi5pbmRleCgpKSx0b3BPcGVuOiEwLGZyb206cix0bzpuLHByZXNlcnZlV2hpdGVzcGFjZTp2LnBhcmVudC50eXBlLndoaXRlc3BhY2U9PSJwcmUiPyJmdWxsIjohMCxmaW5kUG9zaXRpb25zOmQscnVsZUZyb21Ob2RlOlFLYSxjb250ZXh0OnZ9KTtpZihkJiZkWzBdLnBvcyE9bnVsbCl7bGV0IGY9ZFswXS5wb3MseT1kWzFdJiZkWzFdLnBvczt5PT1udWxsJiYoeT1mKSx4PXthbmNob3I6ZitvLGhlYWQ6eStvfX1yZXR1cm57ZG9jOm0sc2VsOngsZnJvbTpvLHRvOmx9fWZ1bmN0aW9uIFFLYShzKXtsZXQgZT1zLnBtVmlld0Rlc2M7aWYoZSlyZXR1cm4gZS5wYXJzZVJ1bGUoKTtpZihzLm5vZGVOYW1lPT0iQlIiJiZzLnBhcmVudE5vZGUpe2lmKGxuJiYvXih1bHxvbCkkL2kudGVzdChzLnBhcmVudE5vZGUubm9kZU5hbWUpKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpKSx7c2tpcDp0fX1lbHNlIGlmKHMucGFyZW50Tm9kZS5sYXN0Q2hpbGQ9PXN8fGxuJiYvXih0cnx0YWJsZSkkL2kudGVzdChzLnBhcmVudE5vZGUubm9kZU5hbWUpKXJldHVybntpZ25vcmU6ITB9fWVsc2UgaWYocy5ub2RlTmFtZT09IklNRyImJnMuZ2V0QXR0cmlidXRlKCJtYXJrLXBsYWNlaG9sZGVyIikpcmV0dXJue2lnbm9yZTohMH07cmV0dXJuIG51bGx9ZnVuY3Rpb24gZVlhKHMsZSx0LGEscil7bGV0IG49cy5pbnB1dC5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzfHwocy5jb21wb3Npbmc/cy5pbnB1dC5jb21wb3NpdGlvbklEOjApO2lmKHMuaW5wdXQuY29tcG9zaXRpb25QZW5kaW5nQ2hhbmdlcz0wLGU8MCl7bGV0IE89cy5pbnB1dC5sYXN0U2VsZWN0aW9uVGltZT5EYXRlLm5vdygpLTUwP3MuaW5wdXQubGFzdFNlbGVjdGlvbk9yaWdpbjpudWxsLCQ9QnR0KHMsTyk7aWYoJCYmIXMuc3RhdGUuc2VsZWN0aW9uLmVxKCQpKXtpZigkbyYmbnUmJnMuaW5wdXQubGFzdEtleUNvZGU9PT0xMyYmRGF0ZS5ub3coKS0xMDA8cy5pbnB1dC5sYXN0S2V5Q29kZVRpbWUmJnMuc29tZVByb3AoImhhbmRsZUtleURvd24iLEg9PkgocyxKOCgxMywiRW50ZXIiKSkpKXJldHVybjtsZXQgRT1zLnN0YXRlLnRyLnNldFNlbGVjdGlvbigkKTtPPT0icG9pbnRlciI/RS5zZXRNZXRhKCJwb2ludGVyIiwhMCk6Tz09ImtleSImJkUuc2Nyb2xsSW50b1ZpZXcoKSxuJiZFLnNldE1ldGEoImNvbXBvc2l0aW9uIixuKSxzLmRpc3BhdGNoKEUpfXJldHVybn1sZXQgbz1zLnN0YXRlLmRvYy5yZXNvbHZlKGUpLGw9by5zaGFyZWREZXB0aCh0KTtlPW8uYmVmb3JlKGwrMSksdD1zLnN0YXRlLmRvYy5yZXNvbHZlKHQpLmFmdGVyKGwrMSk7bGV0IHA9cy5zdGF0ZS5zZWxlY3Rpb24sZD1YS2EocyxlLHQpLHU9cy5zdGF0ZS5kb2MsYz11LnNsaWNlKGQuZnJvbSxkLnRvKSxiLHY7cy5pbnB1dC5sYXN0S2V5Q29kZT09PTgmJkRhdGUubm93KCktMTAwPHMuaW5wdXQubGFzdEtleUNvZGVUaW1lPyhiPXMuc3RhdGUuc2VsZWN0aW9uLnRvLHY9ImVuZCIpOihiPXMuc3RhdGUuc2VsZWN0aW9uLmZyb20sdj0ic3RhcnQiKSxzLmlucHV0Lmxhc3RLZXlDb2RlPW51bGw7bGV0IHg9c1lhKGMuY29udGVudCxkLmRvYy5jb250ZW50LGQuZnJvbSxiLHYpO2lmKHgmJnMuaW5wdXQuZG9tQ2hhbmdlQ291bnQrKywoQ3YmJnMuaW5wdXQubGFzdElPU0VudGVyPkRhdGUubm93KCktMjI1fHxudSkmJnIuc29tZShPPT5PLm5vZGVUeXBlPT0xJiYhSkthLnRlc3QoTy5ub2RlTmFtZSkpJiYoIXh8fHguZW5kQT49eC5lbmRCKSYmcy5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsTz0+TyhzLEo4KDEzLCJFbnRlciIpKSkpe3MuaW5wdXQubGFzdElPU0VudGVyPTA7cmV0dXJufWlmKCF4KWlmKGEmJnAgaW5zdGFuY2VvZiBKdCYmIXAuZW1wdHkmJnAuJGhlYWQuc2FtZVBhcmVudChwLiRhbmNob3IpJiYhcy5jb21wb3NpbmcmJiEoZC5zZWwmJmQuc2VsLmFuY2hvciE9ZC5zZWwuaGVhZCkpeD17c3RhcnQ6cC5mcm9tLGVuZEE6cC50byxlbmRCOnAudG99O2Vsc2V7aWYoZC5zZWwpe2xldCBPPUJwYShzLHMuc3RhdGUuZG9jLGQuc2VsKTtpZihPJiYhTy5lcShzLnN0YXRlLnNlbGVjdGlvbikpe2xldCAkPXMuc3RhdGUudHIuc2V0U2VsZWN0aW9uKE8pO24mJiQuc2V0TWV0YSgiY29tcG9zaXRpb24iLG4pLHMuZGlzcGF0Y2goJCl9fXJldHVybn1zLnN0YXRlLnNlbGVjdGlvbi5mcm9tPHMuc3RhdGUuc2VsZWN0aW9uLnRvJiZ4LnN0YXJ0PT14LmVuZEImJnMuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgSnQmJih4LnN0YXJ0PnMuc3RhdGUuc2VsZWN0aW9uLmZyb20mJnguc3RhcnQ8PXMuc3RhdGUuc2VsZWN0aW9uLmZyb20rMiYmcy5zdGF0ZS5zZWxlY3Rpb24uZnJvbT49ZC5mcm9tP3guc3RhcnQ9cy5zdGF0ZS5zZWxlY3Rpb24uZnJvbTp4LmVuZEE8cy5zdGF0ZS5zZWxlY3Rpb24udG8mJnguZW5kQT49cy5zdGF0ZS5zZWxlY3Rpb24udG8tMiYmcy5zdGF0ZS5zZWxlY3Rpb24udG88PWQudG8mJih4LmVuZEIrPXMuc3RhdGUuc2VsZWN0aW9uLnRvLXguZW5kQSx4LmVuZEE9cy5zdGF0ZS5zZWxlY3Rpb24udG8pKSxDbCYmVGg8PTExJiZ4LmVuZEI9PXguc3RhcnQrMSYmeC5lbmRBPT14LnN0YXJ0JiZ4LnN0YXJ0PmQuZnJvbSYmZC5kb2MudGV4dEJldHdlZW4oeC5zdGFydC1kLmZyb20tMSx4LnN0YXJ0LWQuZnJvbSsxKT09IiBceEEwIiYmKHguc3RhcnQtLSx4LmVuZEEtLSx4LmVuZEItLSk7bGV0IG09ZC5kb2MucmVzb2x2ZU5vQ2FjaGUoeC5zdGFydC1kLmZyb20pLGY9ZC5kb2MucmVzb2x2ZU5vQ2FjaGUoeC5lbmRCLWQuZnJvbSkseT11LnJlc29sdmUoeC5zdGFydCksTT1tLnNhbWVQYXJlbnQoZikmJm0ucGFyZW50LmlubGluZUNvbnRlbnQmJnkuZW5kKCk+PXguZW5kQTtpZigoQ3YmJnMuaW5wdXQubGFzdElPU0VudGVyPkRhdGUubm93KCktMjI1JiYoIU18fHIuc29tZShPPT5PLm5vZGVOYW1lPT0iRElWInx8Ty5ub2RlTmFtZT09IlAiKSl8fCFNJiZtLnBvczxkLmRvYy5jb250ZW50LnNpemUmJighbS5zYW1lUGFyZW50KGYpfHwhbS5wYXJlbnQuaW5saW5lQ29udGVudCkmJm0ucG9zPGYucG9zJiYhL1xTLy50ZXN0KGQuZG9jLnRleHRCZXR3ZWVuKG0ucG9zLGYucG9zLCIiLCIiKSkpJiZzLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixPPT5PKHMsSjgoMTMsIkVudGVyIikpKSl7cy5pbnB1dC5sYXN0SU9TRW50ZXI9MDtyZXR1cm59aWYocy5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yPnguc3RhcnQmJmFZYSh1LHguc3RhcnQseC5lbmRBLG0sZikmJnMuc29tZVByb3AoImhhbmRsZUtleURvd24iLE89Pk8ocyxKOCg4LCJCYWNrc3BhY2UiKSkpKXtudSYmJG8mJnMuZG9tT2JzZXJ2ZXIuc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGVzKCk7cmV0dXJufSRvJiZ4LmVuZEI9PXguc3RhcnQmJihzLmlucHV0Lmxhc3RDaHJvbWVEZWxldGU9RGF0ZS5ub3coKSksbnUmJiFNJiZtLnN0YXJ0KCkhPWYuc3RhcnQoKSYmZi5wYXJlbnRPZmZzZXQ9PTAmJm0uZGVwdGg9PWYuZGVwdGgmJmQuc2VsJiZkLnNlbC5hbmNob3I9PWQuc2VsLmhlYWQmJmQuc2VsLmhlYWQ9PXguZW5kQSYmKHguZW5kQi09MixmPWQuZG9jLnJlc29sdmVOb0NhY2hlKHguZW5kQi1kLmZyb20pLHNldFRpbWVvdXQoKCk9PntzLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixmdW5jdGlvbihPKXtyZXR1cm4gTyhzLEo4KDEzLCJFbnRlciIpKX0pfSwyMCkpO2xldCB6PXguc3RhcnQsTj14LmVuZEEsQz1pKE89PntsZXQgJD1PfHxzLnN0YXRlLnRyLnJlcGxhY2UoeixOLGQuZG9jLnNsaWNlKHguc3RhcnQtZC5mcm9tLHguZW5kQi1kLmZyb20pKTtpZihkLnNlbCl7bGV0IEU9QnBhKHMsJC5kb2MsZC5zZWwpO0UmJiEoJG8mJnMuY29tcG9zaW5nJiZFLmVtcHR5JiYoeC5zdGFydCE9eC5lbmRCfHxzLmlucHV0Lmxhc3RDaHJvbWVEZWxldGU8RGF0ZS5ub3coKS0xMDApJiYoRS5oZWFkPT16fHxFLmhlYWQ9PSQubWFwcGluZy5tYXAoTiktMSl8fENsJiZFLmVtcHR5JiZFLmhlYWQ9PXopJiYkLnNldFNlbGVjdGlvbihFKX1yZXR1cm4gbiYmJC5zZXRNZXRhKCJjb21wb3NpdGlvbiIsbiksJC5zY3JvbGxJbnRvVmlldygpfSwibWtUciIpLF87aWYoTSlpZihtLnBvcz09Zi5wb3Mpe0NsJiZUaDw9MTEmJm0ucGFyZW50T2Zmc2V0PT0wJiYocy5kb21PYnNlcnZlci5zdXBwcmVzc1NlbGVjdGlvblVwZGF0ZXMoKSxzZXRUaW1lb3V0KCgpPT5jdShzKSwyMCkpO2xldCBPPUMocy5zdGF0ZS50ci5kZWxldGUoeixOKSksJD11LnJlc29sdmUoeC5zdGFydCkubWFya3NBY3Jvc3ModS5yZXNvbHZlKHguZW5kQSkpOyQmJk8uZW5zdXJlTWFya3MoJCkscy5kaXNwYXRjaChPKX1lbHNlIGlmKHguZW5kQT09eC5lbmRCJiYoXz10WWEobS5wYXJlbnQuY29udGVudC5jdXQobS5wYXJlbnRPZmZzZXQsZi5wYXJlbnRPZmZzZXQpLHkucGFyZW50LmNvbnRlbnQuY3V0KHkucGFyZW50T2Zmc2V0LHguZW5kQS15LnN0YXJ0KCkpKSkpe2xldCBPPUMocy5zdGF0ZS50cik7Xy50eXBlPT0iYWRkIj9PLmFkZE1hcmsoeixOLF8ubWFyayk6Ty5yZW1vdmVNYXJrKHosTixfLm1hcmspLHMuZGlzcGF0Y2goTyl9ZWxzZSBpZihtLnBhcmVudC5jaGlsZChtLmluZGV4KCkpLmlzVGV4dCYmbS5pbmRleCgpPT1mLmluZGV4KCktKGYudGV4dE9mZnNldD8wOjEpKXtsZXQgTz1tLnBhcmVudC50ZXh0QmV0d2VlbihtLnBhcmVudE9mZnNldCxmLnBhcmVudE9mZnNldCksJD1pKCgpPT5DKHMuc3RhdGUudHIuaW5zZXJ0VGV4dChPLHosTikpLCJkZWZsdCIpO3Muc29tZVByb3AoImhhbmRsZVRleHRJbnB1dCIsRT0+RShzLHosTixPLCQpKXx8cy5kaXNwYXRjaCgkKCkpfWVsc2Ugcy5kaXNwYXRjaChDKCkpO2Vsc2Ugcy5kaXNwYXRjaChDKCkpfWZ1bmN0aW9uIEJwYShzLGUsdCl7cmV0dXJuIE1hdGgubWF4KHQuYW5jaG9yLHQuaGVhZCk+ZS5jb250ZW50LnNpemU/bnVsbDpxdHQocyxlLnJlc29sdmUodC5hbmNob3IpLGUucmVzb2x2ZSh0LmhlYWQpKX1mdW5jdGlvbiB0WWEocyxlKXtsZXQgdD1zLmZpcnN0Q2hpbGQubWFya3MsYT1lLmZpcnN0Q2hpbGQubWFya3Mscj10LG49YSxvLGwscDtmb3IobGV0IHU9MDt1PGEubGVuZ3RoO3UrKylyPWFbdV0ucmVtb3ZlRnJvbVNldChyKTtmb3IobGV0IHU9MDt1PHQubGVuZ3RoO3UrKyluPXRbdV0ucmVtb3ZlRnJvbVNldChuKTtpZihyLmxlbmd0aD09MSYmbi5sZW5ndGg9PTApbD1yWzBdLG89ImFkZCIscD1pKHU9PnUubWFyayhsLmFkZFRvU2V0KHUubWFya3MpKSwidXBkYXRlIik7ZWxzZSBpZihyLmxlbmd0aD09MCYmbi5sZW5ndGg9PTEpbD1uWzBdLG89InJlbW92ZSIscD1pKHU9PnUubWFyayhsLnJlbW92ZUZyb21TZXQodS5tYXJrcykpLCJ1cGRhdGUiKTtlbHNlIHJldHVybiBudWxsO2xldCBkPVtdO2ZvcihsZXQgdT0wO3U8ZS5jaGlsZENvdW50O3UrKylkLnB1c2gocChlLmNoaWxkKHUpKSk7aWYocnQuZnJvbShkKS5lcShzKSlyZXR1cm57bWFyazpsLHR5cGU6b319ZnVuY3Rpb24gYVlhKHMsZSx0LGEscil7aWYodC1lPD1yLnBvcy1hLnBvc3x8b2F0KGEsITAsITEpPHIucG9zKXJldHVybiExO2xldCBuPXMucmVzb2x2ZShlKTtpZighYS5wYXJlbnQuaXNUZXh0YmxvY2spe2xldCBsPW4ubm9kZUFmdGVyO3JldHVybiBsIT1udWxsJiZ0PT1lK2wubm9kZVNpemV9aWYobi5wYXJlbnRPZmZzZXQ8bi5wYXJlbnQuY29udGVudC5zaXplfHwhbi5wYXJlbnQuaXNUZXh0YmxvY2spcmV0dXJuITE7bGV0IG89cy5yZXNvbHZlKG9hdChuLCEwLCEwKSk7cmV0dXJuIW8ucGFyZW50LmlzVGV4dGJsb2NrfHxvLnBvcz50fHxvYXQobywhMCwhMSk8dD8hMTphLnBhcmVudC5jb250ZW50LmN1dChhLnBhcmVudE9mZnNldCkuZXEoby5wYXJlbnQuY29udGVudCl9ZnVuY3Rpb24gb2F0KHMsZSx0KXtsZXQgYT1zLmRlcHRoLHI9ZT9zLmVuZCgpOnMucG9zO2Zvcig7YT4wJiYoZXx8cy5pbmRleEFmdGVyKGEpPT1zLm5vZGUoYSkuY2hpbGRDb3VudCk7KWEtLSxyKyssZT0hMTtpZih0KXtsZXQgbj1zLm5vZGUoYSkubWF5YmVDaGlsZChzLmluZGV4QWZ0ZXIoYSkpO2Zvcig7biYmIW4uaXNMZWFmOyluPW4uZmlyc3RDaGlsZCxyKyt9cmV0dXJuIHJ9ZnVuY3Rpb24gc1lhKHMsZSx0LGEscil7bGV0IG49cy5maW5kRGlmZlN0YXJ0KGUsdCk7aWYobj09bnVsbClyZXR1cm4gbnVsbDtsZXR7YTpvLGI6bH09cy5maW5kRGlmZkVuZChlLHQrcy5zaXplLHQrZS5zaXplKTtpZihyPT0iZW5kIil7bGV0IHA9TWF0aC5tYXgoMCxuLU1hdGgubWluKG8sbCkpO2EtPW8rcC1ufWlmKG88biYmcy5zaXplPGUuc2l6ZSl7bGV0IHA9YTw9biYmYT49bz9uLWE6MDtuLT1wLG4mJm48ZS5zaXplJiZIcGEoZS50ZXh0QmV0d2VlbihuLTEsbisxKSkmJihuKz1wPzE6LTEpLGw9bisobC1vKSxvPW59ZWxzZSBpZihsPG4pe2xldCBwPWE8PW4mJmE+PWw/bi1hOjA7bi09cCxuJiZuPHMuc2l6ZSYmSHBhKHMudGV4dEJldHdlZW4obi0xLG4rMSkpJiYobis9cD8xOi0xKSxvPW4rKG8tbCksbD1ufXJldHVybntzdGFydDpuLGVuZEE6byxlbmRCOmx9fWZ1bmN0aW9uIEhwYShzKXtpZihzLmxlbmd0aCE9MilyZXR1cm4hMTtsZXQgZT1zLmNoYXJDb2RlQXQoMCksdD1zLmNoYXJDb2RlQXQoMSk7cmV0dXJuIGU+PTU2MzIwJiZlPD01NzM0MyYmdD49NTUyOTYmJnQ8PTU2MzE5fWZ1bmN0aW9uIHFwYShzKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBlLmNsYXNzPSJQcm9zZU1pcnJvciIsZS5jb250ZW50ZWRpdGFibGU9U3RyaW5nKHMuZWRpdGFibGUpLHMuc29tZVByb3AoImF0dHJpYnV0ZXMiLHQ9PntpZih0eXBlb2YgdD09ImZ1bmN0aW9uIiYmKHQ9dChzLnN0YXRlKSksdClmb3IobGV0IGEgaW4gdClhPT0iY2xhc3MiP2UuY2xhc3MrPSIgIit0W2FdOmE9PSJzdHlsZSI/ZS5zdHlsZT0oZS5zdHlsZT9lLnN0eWxlKyI7IjoiIikrdFthXTohZVthXSYmYSE9ImNvbnRlbnRlZGl0YWJsZSImJmEhPSJub2RlTmFtZSImJihlW2FdPVN0cmluZyh0W2FdKSl9KSxlLnRyYW5zbGF0ZXx8KGUudHJhbnNsYXRlPSJubyIpLFt0Mi5ub2RlKDAscy5zdGF0ZS5kb2MuY29udGVudC5zaXplLGUpXX1mdW5jdGlvbiBqcGEocyl7aWYocy5tYXJrQ3Vyc29yKXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtlLmNsYXNzTmFtZT0iUHJvc2VNaXJyb3Itc2VwYXJhdG9yIixlLnNldEF0dHJpYnV0ZSgibWFyay1wbGFjZWhvbGRlciIsInRydWUiKSxlLnNldEF0dHJpYnV0ZSgiYWx0IiwiIikscy5jdXJzb3JXcmFwcGVyPXtkb206ZSxkZWNvOnQyLndpZGdldChzLnN0YXRlLnNlbGVjdGlvbi5mcm9tLGUse3JhdzohMCxtYXJrczpzLm1hcmtDdXJzb3J9KX19ZWxzZSBzLmN1cnNvcldyYXBwZXI9bnVsbH1mdW5jdGlvbiBWcGEocyl7cmV0dXJuIXMuc29tZVByb3AoImVkaXRhYmxlIixlPT5lKHMuc3RhdGUpPT09ITEpfWZ1bmN0aW9uIG9ZYShzLGUpe2xldCB0PU1hdGgubWluKHMuJGFuY2hvci5zaGFyZWREZXB0aChzLmhlYWQpLGUuJGFuY2hvci5zaGFyZWREZXB0aChlLmhlYWQpKTtyZXR1cm4gcy4kYW5jaG9yLnN0YXJ0KHQpIT1lLiRhbmNob3Iuc3RhcnQodCl9ZnVuY3Rpb24gVXBhKHMpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gdChhKXtmb3IobGV0IHIgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKXx8KGVbcl09YVtyXSl9cmV0dXJuIGkodCwiYWRkIikscy5zb21lUHJvcCgibm9kZVZpZXdzIix0KSxzLnNvbWVQcm9wKCJtYXJrVmlld3MiLHQpLGV9ZnVuY3Rpb24gbllhKHMsZSl7bGV0IHQ9MCxhPTA7Zm9yKGxldCByIGluIHMpe2lmKHNbcl0hPWVbcl0pcmV0dXJuITA7dCsrfWZvcihsZXQgciBpbiBlKWErKztyZXR1cm4gdCE9YX1mdW5jdGlvbiBXcGEocyl7aWYocy5zcGVjLnN0YXRlfHxzLnNwZWMuZmlsdGVyVHJhbnNhY3Rpb258fHMuc3BlYy5hcHBlbmRUcmFuc2FjdGlvbil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUGx1Z2lucyBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIHZpZXcgbXVzdCBub3QgaGF2ZSBhIHN0YXRlIGNvbXBvbmVudCIpfXZhciBUbyx6diwkdHQsb3UsTEdhLFE4LEVHYSxXbmUsSWQsRnVhLENoLER0dCxCdWEsTHR0LENsLFRoLEZjLEV0dCwkbyxIdWEsbG4sQ3YsQmMscXVhLG51LFlaLE9HYSxUdixZR2EsWEdhLFh1YSxRdWEsSnVhLEhjLGVwYSxlZyxBZCx0ZyxHbmUsQXR0LCR2LERoLEtuZSxZbmUsTnR0LFhaLGFnLE90dCxucGEsZ0thLF9wYSxNcGEsS3R0LCRuLERuLGtLYSxZdHQsQ3BhLGVhdCxJS2EsZVgsSm5lLEhLYSxlbGUsc2csdGF0LHQyLEV2LGlnLExuLGNuLHRsZSxVS2EsV0thLGlhdCxyYXQsUnBhLE9wYSxKS2EsaVlhLHJZYSxQdixuYXQ9ZygoKT0+e3J1KCk7X2goKTt6aCgpO1RvPWkoZnVuY3Rpb24ocyl7Zm9yKHZhciBlPTA7O2UrKylpZihzPXMucHJldmlvdXNTaWJsaW5nLCFzKXJldHVybiBlfSwiZG9tSW5kZXgiKSx6dj1pKGZ1bmN0aW9uKHMpe2xldCBlPXMuYXNzaWduZWRTbG90fHxzLnBhcmVudE5vZGU7cmV0dXJuIGUmJmUubm9kZVR5cGU9PTExP2UuaG9zdDplfSwicGFyZW50Tm9kZSIpLCR0dD1udWxsLG91PWkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPSR0dHx8KCR0dD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpKTtyZXR1cm4gYS5zZXRFbmQocyx0Pz9zLm5vZGVWYWx1ZS5sZW5ndGgpLGEuc2V0U3RhcnQocyxlfHwwKSxhfSwidGV4dFJhbmdlIiksTEdhPWkoZnVuY3Rpb24oKXskdHQ9bnVsbH0sImNsZWFyUmV1c2VkUmFuZ2UiKSxROD1pKGZ1bmN0aW9uKHMsZSx0LGEpe3JldHVybiB0JiYoT3VhKHMsZSx0LGEsLTEpfHxPdWEocyxlLHQsYSwxKSl9LCJpc0VxdWl2YWxlbnRQb3NpdGlvbiIpLEVHYT0vXihpbWd8YnJ8aW5wdXR8dGV4dGFyZWF8aHIpJC9pO2koT3VhLCJzY2FuRm9yIik7aShPYywibm9kZVNpemUiKTtpKFBHYSwidGV4dE5vZGVCZWZvcmUkMSIpO2koSUdhLCJ0ZXh0Tm9kZUFmdGVyJDEiKTtpKEFHYSwiaXNPbkVkZ2UiKTtpKEtaLCJoYXNCbG9ja0Rlc2MiKTtXbmU9aShmdW5jdGlvbihzKXtyZXR1cm4gcy5mb2N1c05vZGUmJlE4KHMuZm9jdXNOb2RlLHMuZm9jdXNPZmZzZXQscy5hbmNob3JOb2RlLHMuYW5jaG9yT2Zmc2V0KX0sInNlbGVjdGlvbkNvbGxhcHNlZCIpO2koSjgsImtleUV2ZW50Iik7aShOR2EsImRlZXBBY3RpdmVFbGVtZW50Iik7aShSR2EsImNhcmV0RnJvbVBvaW50Iik7SWQ9dHlwZW9mIG5hdmlnYXRvcjwidSI/bmF2aWdhdG9yOm51bGwsRnVhPXR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6bnVsbCxDaD1JZCYmSWQudXNlckFnZW50fHwiIixEdHQ9L0VkZ2VcLyhcZCspLy5leGVjKENoKSxCdWE9L01TSUUgXGQvLmV4ZWMoQ2gpLEx0dD0vVHJpZGVudFwvKD86WzctOV18XGR7Mix9KVwuLipydjooXGQrKS8uZXhlYyhDaCksQ2w9ISEoQnVhfHxMdHR8fER0dCksVGg9QnVhP2RvY3VtZW50LmRvY3VtZW50TW9kZTpMdHQ/K0x0dFsxXTpEdHQ/K0R0dFsxXTowLEZjPSFDbCYmL2dlY2tvXC8oXGQrKS9pLnRlc3QoQ2gpO0ZjJiYrKC9GaXJlZm94XC8oXGQrKS8uZXhlYyhDaCl8fFswLDBdKVsxXTtFdHQ9IUNsJiYvQ2hyb21lXC8oXGQrKS8uZXhlYyhDaCksJG89ISFFdHQsSHVhPUV0dD8rRXR0WzFdOjAsbG49IUNsJiYhIUlkJiYvQXBwbGUgQ29tcHV0ZXIvLnRlc3QoSWQudmVuZG9yKSxDdj1sbiYmKC9Nb2JpbGVcL1x3Ky8udGVzdChDaCl8fCEhSWQmJklkLm1heFRvdWNoUG9pbnRzPjIpLEJjPUN2fHwoSWQ/L01hYy8udGVzdChJZC5wbGF0Zm9ybSk6ITEpLHF1YT1JZD8vV2luLy50ZXN0KElkLnBsYXRmb3JtKTohMSxudT0vQW5kcm9pZCBcZC8udGVzdChDaCksWVo9ISFGdWEmJiJ3ZWJraXRGb250U21vb3RoaW5nImluIEZ1YS5kb2N1bWVudEVsZW1lbnQuc3R5bGUsT0dhPVlaPysoL1xiQXBwbGVXZWJLaXRcLyhcZCspLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpfHxbMCwwXSlbMV06MDtpKEZHYSwid2luZG93UmVjdCIpO2kobHUsImdldFNpZGUiKTtpKEJHYSwiY2xpZW50UmVjdCIpO2koanVhLCJzY3JvbGxSZWN0SW50b1ZpZXciKTtpKEhHYSwic3RvcmVTY3JvbGxQb3MiKTtpKFZ1YSwic2Nyb2xsU3RhY2siKTtpKHFHYSwicmVzZXRTY3JvbGxQb3MiKTtpKFV1YSwicmVzdG9yZVNjcm9sbFN0YWNrIik7VHY9bnVsbDtpKGpHYSwiZm9jdXNQcmV2ZW50U2Nyb2xsIik7aShXdWEsImZpbmRPZmZzZXRJbk5vZGUiKTtpKFZHYSwiZmluZE9mZnNldEluVGV4dCIpO2koUHR0LCJpblJlY3QiKTtpKFVHYSwidGFyZ2V0S2x1ZGdlIik7aShXR2EsInBvc0Zyb21FbGVtZW50Iik7aShHR2EsInBvc0Zyb21DYXJldCIpO2koR3VhLCJlbGVtZW50RnJvbVBvaW50Iik7aShLR2EsInBvc0F0Q29vcmRzIik7aShLdWEsIm5vblplcm8iKTtpKCRoLCJzaW5nbGVSZWN0Iik7WUdhPS9bXHUwNTkwLVx1MDVmNFx1MDYwMC1cdTA2ZmZcdTA3MDAtXHUwOGFjXS87aShZdWEsImNvb3Jkc0F0UG9zIik7aShaWiwiZmxhdHRlblYiKTtpKEl0dCwiZmxhdHRlbkgiKTtpKFp1YSwid2l0aEZsdXNoZWRTdGF0ZSIpO2koWkdhLCJlbmRPZlRleHRibG9ja1ZlcnRpY2FsIik7WEdhPS9bXHUwNTkwLVx1MDhhY10vO2koUUdhLCJlbmRPZlRleHRibG9ja0hvcml6b250YWwiKTtYdWE9bnVsbCxRdWE9bnVsbCxKdWE9ITE7aShKR2EsImVuZE9mVGV4dGJsb2NrIik7SGM9MCxlcGE9MSxlZz0yLEFkPTMsdGc9Y2xhc3N7c3RhdGlje2kodGhpcywiVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQsYSxyKXt0aGlzLnBhcmVudD1lLHRoaXMuY2hpbGRyZW49dCx0aGlzLmRvbT1hLHRoaXMuY29udGVudERPTT1yLHRoaXMuZGlydHk9SGMsYS5wbVZpZXdEZXNjPXRoaXN9bWF0Y2hlc1dpZGdldChlKXtyZXR1cm4hMX1tYXRjaGVzTWFyayhlKXtyZXR1cm4hMX1tYXRjaGVzTm9kZShlLHQsYSl7cmV0dXJuITF9bWF0Y2hlc0hhY2soZSl7cmV0dXJuITF9cGFyc2VSdWxlKCl7cmV0dXJuIG51bGx9c3RvcEV2ZW50KGUpe3JldHVybiExfWdldCBzaXplKCl7bGV0IGU9MDtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrKyllKz10aGlzLmNoaWxkcmVuW3RdLnNpemU7cmV0dXJuIGV9Z2V0IGJvcmRlcigpe3JldHVybiAwfWRlc3Ryb3koKXt0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5kb20ucG1WaWV3RGVzYz09dGhpcyYmKHRoaXMuZG9tLnBtVmlld0Rlc2M9dm9pZCAwKTtmb3IobGV0IGU9MDtlPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2UrKyl0aGlzLmNoaWxkcmVuW2VdLmRlc3Ryb3koKX1wb3NCZWZvcmVDaGlsZChlKXtmb3IobGV0IHQ9MCxhPXRoaXMucG9zQXRTdGFydDs7dCsrKXtsZXQgcj10aGlzLmNoaWxkcmVuW3RdO2lmKHI9PWUpcmV0dXJuIGE7YSs9ci5zaXplfX1nZXQgcG9zQmVmb3JlKCl7cmV0dXJuIHRoaXMucGFyZW50LnBvc0JlZm9yZUNoaWxkKHRoaXMpfWdldCBwb3NBdFN0YXJ0KCl7cmV0dXJuIHRoaXMucGFyZW50P3RoaXMucGFyZW50LnBvc0JlZm9yZUNoaWxkKHRoaXMpK3RoaXMuYm9yZGVyOjB9Z2V0IHBvc0FmdGVyKCl7cmV0dXJuIHRoaXMucG9zQmVmb3JlK3RoaXMuc2l6ZX1nZXQgcG9zQXRFbmQoKXtyZXR1cm4gdGhpcy5wb3NBdFN0YXJ0K3RoaXMuc2l6ZS0yKnRoaXMuYm9yZGVyfWxvY2FsUG9zRnJvbURPTShlLHQsYSl7aWYodGhpcy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSkpaWYoYTwwKXtsZXQgbixvO2lmKGU9PXRoaXMuY29udGVudERPTSluPWUuY2hpbGROb2Rlc1t0LTFdO2Vsc2V7Zm9yKDtlLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTspZT1lLnBhcmVudE5vZGU7bj1lLnByZXZpb3VzU2libGluZ31mb3IoO24mJiEoKG89bi5wbVZpZXdEZXNjKSYmby5wYXJlbnQ9PXRoaXMpOyluPW4ucHJldmlvdXNTaWJsaW5nO3JldHVybiBuP3RoaXMucG9zQmVmb3JlQ2hpbGQobykrby5zaXplOnRoaXMucG9zQXRTdGFydH1lbHNle2xldCBuLG87aWYoZT09dGhpcy5jb250ZW50RE9NKW49ZS5jaGlsZE5vZGVzW3RdO2Vsc2V7Zm9yKDtlLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTspZT1lLnBhcmVudE5vZGU7bj1lLm5leHRTaWJsaW5nfWZvcig7biYmISgobz1uLnBtVmlld0Rlc2MpJiZvLnBhcmVudD09dGhpcyk7KW49bi5uZXh0U2libGluZztyZXR1cm4gbj90aGlzLnBvc0JlZm9yZUNoaWxkKG8pOnRoaXMucG9zQXRFbmR9bGV0IHI7aWYoZT09dGhpcy5kb20mJnRoaXMuY29udGVudERPTSlyPXQ+VG8odGhpcy5jb250ZW50RE9NKTtlbHNlIGlmKHRoaXMuY29udGVudERPTSYmdGhpcy5jb250ZW50RE9NIT10aGlzLmRvbSYmdGhpcy5kb20uY29udGFpbnModGhpcy5jb250ZW50RE9NKSlyPWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcy5jb250ZW50RE9NKSYyO2Vsc2UgaWYodGhpcy5kb20uZmlyc3RDaGlsZCl7aWYodD09MClmb3IobGV0IG49ZTs7bj1uLnBhcmVudE5vZGUpe2lmKG49PXRoaXMuZG9tKXtyPSExO2JyZWFrfWlmKG4ucHJldmlvdXNTaWJsaW5nKWJyZWFrfWlmKHI9PW51bGwmJnQ9PWUuY2hpbGROb2Rlcy5sZW5ndGgpZm9yKGxldCBuPWU7O249bi5wYXJlbnROb2RlKXtpZihuPT10aGlzLmRvbSl7cj0hMDticmVha31pZihuLm5leHRTaWJsaW5nKWJyZWFrfX1yZXR1cm4gcj8/YT4wP3RoaXMucG9zQXRFbmQ6dGhpcy5wb3NBdFN0YXJ0fW5lYXJlc3REZXNjKGUsdD0hMSl7Zm9yKGxldCBhPSEwLHI9ZTtyO3I9ci5wYXJlbnROb2RlKXtsZXQgbj10aGlzLmdldERlc2MociksbztpZihuJiYoIXR8fG4ubm9kZSkpaWYoYSYmKG89bi5ub2RlRE9NKSYmIShvLm5vZGVUeXBlPT0xP28uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSk6bz09ZSkpYT0hMTtlbHNlIHJldHVybiBufX1nZXREZXNjKGUpe2xldCB0PWUucG1WaWV3RGVzYztmb3IobGV0IGE9dDthO2E9YS5wYXJlbnQpaWYoYT09dGhpcylyZXR1cm4gdH1wb3NGcm9tRE9NKGUsdCxhKXtmb3IobGV0IHI9ZTtyO3I9ci5wYXJlbnROb2RlKXtsZXQgbj10aGlzLmdldERlc2Mocik7aWYobilyZXR1cm4gbi5sb2NhbFBvc0Zyb21ET00oZSx0LGEpfXJldHVybi0xfWRlc2NBdChlKXtmb3IobGV0IHQ9MCxhPTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0Kyspe2xldCByPXRoaXMuY2hpbGRyZW5bdF0sbj1hK3Iuc2l6ZTtpZihhPT1lJiZuIT1hKXtmb3IoOyFyLmJvcmRlciYmci5jaGlsZHJlbi5sZW5ndGg7KWZvcihsZXQgbz0wO288ci5jaGlsZHJlbi5sZW5ndGg7bysrKXtsZXQgbD1yLmNoaWxkcmVuW29dO2lmKGwuc2l6ZSl7cj1sO2JyZWFrfX1yZXR1cm4gcn1pZihlPG4pcmV0dXJuIHIuZGVzY0F0KGUtYS1yLmJvcmRlcik7YT1ufX1kb21Gcm9tUG9zKGUsdCl7aWYoIXRoaXMuY29udGVudERPTSlyZXR1cm57bm9kZTp0aGlzLmRvbSxvZmZzZXQ6MCxhdG9tOmUrMX07bGV0IGE9MCxyPTA7Zm9yKGxldCBuPTA7YTx0aGlzLmNoaWxkcmVuLmxlbmd0aDthKyspe2xldCBvPXRoaXMuY2hpbGRyZW5bYV0sbD1uK28uc2l6ZTtpZihsPmV8fG8gaW5zdGFuY2VvZiBZbmUpe3I9ZS1uO2JyZWFrfW49bH1pZihyKXJldHVybiB0aGlzLmNoaWxkcmVuW2FdLmRvbUZyb21Qb3Moci10aGlzLmNoaWxkcmVuW2FdLmJvcmRlcix0KTtmb3IobGV0IG47YSYmIShuPXRoaXMuY2hpbGRyZW5bYS0xXSkuc2l6ZSYmbiBpbnN0YW5jZW9mIEduZSYmbi5zaWRlPj0wO2EtLSk7aWYodDw9MCl7bGV0IG4sbz0hMDtmb3IoO249YT90aGlzLmNoaWxkcmVuW2EtMV06bnVsbCwhKCFufHxuLmRvbS5wYXJlbnROb2RlPT10aGlzLmNvbnRlbnRET00pO2EtLSxvPSExKTtyZXR1cm4gbiYmdCYmbyYmIW4uYm9yZGVyJiYhbi5kb21BdG9tP24uZG9tRnJvbVBvcyhuLnNpemUsdCk6e25vZGU6dGhpcy5jb250ZW50RE9NLG9mZnNldDpuP1RvKG4uZG9tKSsxOjB9fWVsc2V7bGV0IG4sbz0hMDtmb3IoO249YTx0aGlzLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNoaWxkcmVuW2FdOm51bGwsISghbnx8bi5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NKTthKyssbz0hMSk7cmV0dXJuIG4mJm8mJiFuLmJvcmRlciYmIW4uZG9tQXRvbT9uLmRvbUZyb21Qb3MoMCx0KTp7bm9kZTp0aGlzLmNvbnRlbnRET00sb2Zmc2V0Om4/VG8obi5kb20pOnRoaXMuY29udGVudERPTS5jaGlsZE5vZGVzLmxlbmd0aH19fXBhcnNlUmFuZ2UoZSx0LGE9MCl7aWYodGhpcy5jaGlsZHJlbi5sZW5ndGg9PTApcmV0dXJue25vZGU6dGhpcy5jb250ZW50RE9NLGZyb206ZSx0bzp0LGZyb21PZmZzZXQ6MCx0b09mZnNldDp0aGlzLmNvbnRlbnRET00uY2hpbGROb2Rlcy5sZW5ndGh9O2xldCByPS0xLG49LTE7Zm9yKGxldCBvPWEsbD0wOztsKyspe2xldCBwPXRoaXMuY2hpbGRyZW5bbF0sZD1vK3Auc2l6ZTtpZihyPT0tMSYmZTw9ZCl7bGV0IHU9bytwLmJvcmRlcjtpZihlPj11JiZ0PD1kLXAuYm9yZGVyJiZwLm5vZGUmJnAuY29udGVudERPTSYmdGhpcy5jb250ZW50RE9NLmNvbnRhaW5zKHAuY29udGVudERPTSkpcmV0dXJuIHAucGFyc2VSYW5nZShlLHQsdSk7ZT1vO2ZvcihsZXQgYz1sO2M+MDtjLS0pe2xldCBiPXRoaXMuY2hpbGRyZW5bYy0xXTtpZihiLnNpemUmJmIuZG9tLnBhcmVudE5vZGU9PXRoaXMuY29udGVudERPTSYmIWIuZW1wdHlDaGlsZEF0KDEpKXtyPVRvKGIuZG9tKSsxO2JyZWFrfWUtPWIuc2l6ZX1yPT0tMSYmKHI9MCl9aWYocj4tMSYmKGQ+dHx8bD09dGhpcy5jaGlsZHJlbi5sZW5ndGgtMSkpe3Q9ZDtmb3IobGV0IHU9bCsxO3U8dGhpcy5jaGlsZHJlbi5sZW5ndGg7dSsrKXtsZXQgYz10aGlzLmNoaWxkcmVuW3VdO2lmKGMuc2l6ZSYmYy5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NJiYhYy5lbXB0eUNoaWxkQXQoLTEpKXtuPVRvKGMuZG9tKTticmVha310Kz1jLnNpemV9bj09LTEmJihuPXRoaXMuY29udGVudERPTS5jaGlsZE5vZGVzLmxlbmd0aCk7YnJlYWt9bz1kfXJldHVybntub2RlOnRoaXMuY29udGVudERPTSxmcm9tOmUsdG86dCxmcm9tT2Zmc2V0OnIsdG9PZmZzZXQ6bn19ZW1wdHlDaGlsZEF0KGUpe2lmKHRoaXMuYm9yZGVyfHwhdGhpcy5jb250ZW50RE9NfHwhdGhpcy5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuITE7bGV0IHQ9dGhpcy5jaGlsZHJlbltlPDA/MDp0aGlzLmNoaWxkcmVuLmxlbmd0aC0xXTtyZXR1cm4gdC5zaXplPT0wfHx0LmVtcHR5Q2hpbGRBdChlKX1kb21BZnRlclBvcyhlKXtsZXR7bm9kZTp0LG9mZnNldDphfT10aGlzLmRvbUZyb21Qb3MoZSwwKTtpZih0Lm5vZGVUeXBlIT0xfHxhPT10LmNoaWxkTm9kZXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJObyBub2RlIGFmdGVyIHBvcyAiK2UpO3JldHVybiB0LmNoaWxkTm9kZXNbYV19c2V0U2VsZWN0aW9uKGUsdCxhLHI9ITEpe2xldCBuPU1hdGgubWluKGUsdCksbz1NYXRoLm1heChlLHQpO2ZvcihsZXQgdj0wLHg9MDt2PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3YrKyl7bGV0IG09dGhpcy5jaGlsZHJlblt2XSxmPXgrbS5zaXplO2lmKG4+eCYmbzxmKXJldHVybiBtLnNldFNlbGVjdGlvbihlLXgtbS5ib3JkZXIsdC14LW0uYm9yZGVyLGEscik7eD1mfWxldCBsPXRoaXMuZG9tRnJvbVBvcyhlLGU/LTE6MSkscD10PT1lP2w6dGhpcy5kb21Gcm9tUG9zKHQsdD8tMToxKSxkPWEucm9vdC5nZXRTZWxlY3Rpb24oKSx1PWEuZG9tU2VsZWN0aW9uUmFuZ2UoKSxjPSExO2lmKChGY3x8bG4pJiZlPT10KXtsZXR7bm9kZTp2LG9mZnNldDp4fT1sO2lmKHYubm9kZVR5cGU9PTMpe2lmKGM9ISEoeCYmdi5ub2RlVmFsdWVbeC0xXT09YApgKSxjJiZ4PT12Lm5vZGVWYWx1ZS5sZW5ndGgpZm9yKGxldCBtPXYsZjttO209bS5wYXJlbnROb2RlKXtpZihmPW0ubmV4dFNpYmxpbmcpe2Yubm9kZU5hbWU9PSJCUiImJihsPXA9e25vZGU6Zi5wYXJlbnROb2RlLG9mZnNldDpUbyhmKSsxfSk7YnJlYWt9bGV0IHk9bS5wbVZpZXdEZXNjO2lmKHkmJnkubm9kZSYmeS5ub2RlLmlzQmxvY2spYnJlYWt9fWVsc2V7bGV0IG09di5jaGlsZE5vZGVzW3gtMV07Yz1tJiYobS5ub2RlTmFtZT09IkJSInx8bS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpfX1pZihGYyYmdS5mb2N1c05vZGUmJnUuZm9jdXNOb2RlIT1wLm5vZGUmJnUuZm9jdXNOb2RlLm5vZGVUeXBlPT0xKXtsZXQgdj11LmZvY3VzTm9kZS5jaGlsZE5vZGVzW3UuZm9jdXNPZmZzZXRdO3YmJnYuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiJiYocj0hMCl9aWYoIShyfHxjJiZsbikmJlE4KGwubm9kZSxsLm9mZnNldCx1LmFuY2hvck5vZGUsdS5hbmNob3JPZmZzZXQpJiZROChwLm5vZGUscC5vZmZzZXQsdS5mb2N1c05vZGUsdS5mb2N1c09mZnNldCkpcmV0dXJuO2xldCBiPSExO2lmKChkLmV4dGVuZHx8ZT09dCkmJiEoYyYmRmMpKXtkLmNvbGxhcHNlKGwubm9kZSxsLm9mZnNldCk7dHJ5e2UhPXQmJmQuZXh0ZW5kKHAubm9kZSxwLm9mZnNldCksYj0hMH1jYXRjaHt9fWlmKCFiKXtpZihlPnQpe2xldCB4PWw7bD1wLHA9eH1sZXQgdj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Yuc2V0RW5kKHAubm9kZSxwLm9mZnNldCksdi5zZXRTdGFydChsLm5vZGUsbC5vZmZzZXQpLGQucmVtb3ZlQWxsUmFuZ2VzKCksZC5hZGRSYW5nZSh2KX19aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIXRoaXMuY29udGVudERPTSYmZS50eXBlIT0ic2VsZWN0aW9uIn1nZXQgY29udGVudExvc3QoKXtyZXR1cm4gdGhpcy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00hPXRoaXMuZG9tJiYhdGhpcy5kb20uY29udGFpbnModGhpcy5jb250ZW50RE9NKX1tYXJrRGlydHkoZSx0KXtmb3IobGV0IGE9MCxyPTA7cjx0aGlzLmNoaWxkcmVuLmxlbmd0aDtyKyspe2xldCBuPXRoaXMuY2hpbGRyZW5bcl0sbz1hK24uc2l6ZTtpZihhPT1vP2U8PW8mJnQ+PWE6ZTxvJiZ0PmEpe2xldCBsPWErbi5ib3JkZXIscD1vLW4uYm9yZGVyO2lmKGU+PWwmJnQ8PXApe3RoaXMuZGlydHk9ZT09YXx8dD09bz9lZzplcGEsZT09bCYmdD09cCYmKG4uY29udGVudExvc3R8fG4uZG9tLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTSk/bi5kaXJ0eT1BZDpuLm1hcmtEaXJ0eShlLWwsdC1sKTtyZXR1cm59ZWxzZSBuLmRpcnR5PW4uZG9tPT1uLmNvbnRlbnRET00mJm4uZG9tLnBhcmVudE5vZGU9PXRoaXMuY29udGVudERPTSYmIW4uY2hpbGRyZW4ubGVuZ3RoP2VnOkFkfWE9b310aGlzLmRpcnR5PWVnfW1hcmtQYXJlbnRzRGlydHkoKXtsZXQgZT0xO2ZvcihsZXQgdD10aGlzLnBhcmVudDt0O3Q9dC5wYXJlbnQsZSsrKXtsZXQgYT1lPT0xP2VnOmVwYTt0LmRpcnR5PGEmJih0LmRpcnR5PWEpfX1nZXQgZG9tQXRvbSgpe3JldHVybiExfWdldCBpZ25vcmVGb3JDb29yZHMoKXtyZXR1cm4hMX1nZXQgaWdub3JlRm9yU2VsZWN0aW9uKCl7cmV0dXJuITF9aXNUZXh0KGUpe3JldHVybiExfX0sR25lPWNsYXNzIGV4dGVuZHMgdGd7c3RhdGlje2kodGhpcywiV2lkZ2V0Vmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQsYSxyKXtsZXQgbixvPXQudHlwZS50b0RPTTtpZih0eXBlb2Ygbz09ImZ1bmN0aW9uIiYmKG89byhhLCgpPT57aWYoIW4pcmV0dXJuIHI7aWYobi5wYXJlbnQpcmV0dXJuIG4ucGFyZW50LnBvc0JlZm9yZUNoaWxkKG4pfSkpLCF0LnR5cGUuc3BlYy5yYXcpe2lmKG8ubm9kZVR5cGUhPTEpe2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtsLmFwcGVuZENoaWxkKG8pLG89bH1vLmNvbnRlbnRFZGl0YWJsZT0iZmFsc2UiLG8uY2xhc3NMaXN0LmFkZCgiUHJvc2VNaXJyb3Itd2lkZ2V0Iil9c3VwZXIoZSxbXSxvLG51bGwpLHRoaXMud2lkZ2V0PXQsdGhpcy53aWRnZXQ9dCxuPXRoaXN9bWF0Y2hlc1dpZGdldChlKXtyZXR1cm4gdGhpcy5kaXJ0eT09SGMmJmUudHlwZS5lcSh0aGlzLndpZGdldC50eXBlKX1wYXJzZVJ1bGUoKXtyZXR1cm57aWdub3JlOiEwfX1zdG9wRXZlbnQoZSl7bGV0IHQ9dGhpcy53aWRnZXQuc3BlYy5zdG9wRXZlbnQ7cmV0dXJuIHQ/dChlKTohMX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gZS50eXBlIT0ic2VsZWN0aW9uInx8dGhpcy53aWRnZXQuc3BlYy5pZ25vcmVTZWxlY3Rpb259ZGVzdHJveSgpe3RoaXMud2lkZ2V0LnR5cGUuZGVzdHJveSh0aGlzLmRvbSksc3VwZXIuZGVzdHJveSgpfWdldCBkb21BdG9tKCl7cmV0dXJuITB9Z2V0IGlnbm9yZUZvclNlbGVjdGlvbigpe3JldHVybiEhdGhpcy53aWRnZXQudHlwZS5zcGVjLnJlbGF4ZWRTaWRlfWdldCBzaWRlKCl7cmV0dXJuIHRoaXMud2lkZ2V0LnR5cGUuc2lkZX19LEF0dD1jbGFzcyBleHRlbmRzIHRne3N0YXRpY3tpKHRoaXMsIkNvbXBvc2l0aW9uVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQsYSxyKXtzdXBlcihlLFtdLHQsbnVsbCksdGhpcy50ZXh0RE9NPWEsdGhpcy50ZXh0PXJ9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aH1sb2NhbFBvc0Zyb21ET00oZSx0KXtyZXR1cm4gZSE9dGhpcy50ZXh0RE9NP3RoaXMucG9zQXRTdGFydCsodD90aGlzLnNpemU6MCk6dGhpcy5wb3NBdFN0YXJ0K3R9ZG9tRnJvbVBvcyhlKXtyZXR1cm57bm9kZTp0aGlzLnRleHRET00sb2Zmc2V0OmV9fWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0iY2hhcmFjdGVyRGF0YSImJmUudGFyZ2V0Lm5vZGVWYWx1ZT09ZS5vbGRWYWx1ZX19LCR2PWNsYXNzIHMgZXh0ZW5kcyB0Z3tzdGF0aWN7aSh0aGlzLCJNYXJrVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQsYSxyLG4pe3N1cGVyKGUsW10sYSxyKSx0aGlzLm1hcms9dCx0aGlzLnNwZWM9bn1zdGF0aWMgY3JlYXRlKGUsdCxhLHIpe2xldCBuPXIubm9kZVZpZXdzW3QudHlwZS5uYW1lXSxvPW4mJm4odCxyLGEpO3JldHVybighb3x8IW8uZG9tKSYmKG89TGQucmVuZGVyU3BlYyhkb2N1bWVudCx0LnR5cGUuc3BlYy50b0RPTSh0LGEpLG51bGwsdC5hdHRycykpLG5ldyBzKGUsdCxvLmRvbSxvLmNvbnRlbnRET018fG8uZG9tLG8pfXBhcnNlUnVsZSgpe3JldHVybiB0aGlzLmRpcnR5JkFkfHx0aGlzLm1hcmsudHlwZS5zcGVjLnJlcGFyc2VJblZpZXc/bnVsbDp7bWFyazp0aGlzLm1hcmsudHlwZS5uYW1lLGF0dHJzOnRoaXMubWFyay5hdHRycyxjb250ZW50RWxlbWVudDp0aGlzLmNvbnRlbnRET019fW1hdGNoZXNNYXJrKGUpe3JldHVybiB0aGlzLmRpcnR5IT1BZCYmdGhpcy5tYXJrLmVxKGUpfW1hcmtEaXJ0eShlLHQpe2lmKHN1cGVyLm1hcmtEaXJ0eShlLHQpLHRoaXMuZGlydHkhPUhjKXtsZXQgYT10aGlzLnBhcmVudDtmb3IoOyFhLm5vZGU7KWE9YS5wYXJlbnQ7YS5kaXJ0eTx0aGlzLmRpcnR5JiYoYS5kaXJ0eT10aGlzLmRpcnR5KSx0aGlzLmRpcnR5PUhjfX1zbGljZShlLHQsYSl7bGV0IHI9cy5jcmVhdGUodGhpcy5wYXJlbnQsdGhpcy5tYXJrLCEwLGEpLG49dGhpcy5jaGlsZHJlbixvPXRoaXMuc2l6ZTt0PG8mJihuPUZ0dChuLHQsbyxhKSksZT4wJiYobj1GdHQobiwwLGUsYSkpO2ZvcihsZXQgbD0wO2w8bi5sZW5ndGg7bCsrKW5bbF0ucGFyZW50PXI7cmV0dXJuIHIuY2hpbGRyZW49bixyfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiB0aGlzLnNwZWMuaWdub3JlTXV0YXRpb24/dGhpcy5zcGVjLmlnbm9yZU11dGF0aW9uKGUpOnN1cGVyLmlnbm9yZU11dGF0aW9uKGUpfWRlc3Ryb3koKXt0aGlzLnNwZWMuZGVzdHJveSYmdGhpcy5zcGVjLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fSxEaD1jbGFzcyBzIGV4dGVuZHMgdGd7c3RhdGlje2kodGhpcywiTm9kZVZpZXdEZXNjIil9Y29uc3RydWN0b3IoZSx0LGEscixuLG8sbCxwLGQpe3N1cGVyKGUsW10sbixvKSx0aGlzLm5vZGU9dCx0aGlzLm91dGVyRGVjbz1hLHRoaXMuaW5uZXJEZWNvPXIsdGhpcy5ub2RlRE9NPWx9c3RhdGljIGNyZWF0ZShlLHQsYSxyLG4sbyl7bGV0IGw9bi5ub2RlVmlld3NbdC50eXBlLm5hbWVdLHAsZD1sJiZsKHQsbiwoKT0+e2lmKCFwKXJldHVybiBvO2lmKHAucGFyZW50KXJldHVybiBwLnBhcmVudC5wb3NCZWZvcmVDaGlsZChwKX0sYSxyKSx1PWQmJmQuZG9tLGM9ZCYmZC5jb250ZW50RE9NO2lmKHQuaXNUZXh0KXtpZighdSl1PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQudGV4dCk7ZWxzZSBpZih1Lm5vZGVUeXBlIT0zKXRocm93IG5ldyBSYW5nZUVycm9yKCJUZXh0IG11c3QgYmUgcmVuZGVyZWQgYXMgYSBET00gdGV4dCBub2RlIil9ZWxzZSB1fHwoe2RvbTp1LGNvbnRlbnRET006Y309TGQucmVuZGVyU3BlYyhkb2N1bWVudCx0LnR5cGUuc3BlYy50b0RPTSh0KSxudWxsLHQuYXR0cnMpKTshYyYmIXQuaXNUZXh0JiZ1Lm5vZGVOYW1lIT0iQlIiJiYodS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHwodS5jb250ZW50RWRpdGFibGU9ImZhbHNlIiksdC50eXBlLnNwZWMuZHJhZ2dhYmxlJiYodS5kcmFnZ2FibGU9ITApKTtsZXQgYj11O3JldHVybiB1PWlwYSh1LGEsdCksZD9wPW5ldyBOdHQoZSx0LGEscix1LGN8fG51bGwsYixkLG4sbysxKTp0LmlzVGV4dD9uZXcgS25lKGUsdCxhLHIsdSxiLG4pOm5ldyBzKGUsdCxhLHIsdSxjfHxudWxsLGIsbixvKzEpfXBhcnNlUnVsZSgpe2lmKHRoaXMubm9kZS50eXBlLnNwZWMucmVwYXJzZUluVmlldylyZXR1cm4gbnVsbDtsZXQgZT17bm9kZTp0aGlzLm5vZGUudHlwZS5uYW1lLGF0dHJzOnRoaXMubm9kZS5hdHRyc307aWYodGhpcy5ub2RlLnR5cGUud2hpdGVzcGFjZT09InByZSImJihlLnByZXNlcnZlV2hpdGVzcGFjZT0iZnVsbCIpLCF0aGlzLmNvbnRlbnRET00pZS5nZXRDb250ZW50PSgpPT50aGlzLm5vZGUuY29udGVudDtlbHNlIGlmKCF0aGlzLmNvbnRlbnRMb3N0KWUuY29udGVudEVsZW1lbnQ9dGhpcy5jb250ZW50RE9NO2Vsc2V7Zm9yKGxldCB0PXRoaXMuY2hpbGRyZW4ubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuY2hpbGRyZW5bdF07aWYodGhpcy5kb20uY29udGFpbnMoYS5kb20ucGFyZW50Tm9kZSkpe2UuY29udGVudEVsZW1lbnQ9YS5kb20ucGFyZW50Tm9kZTticmVha319ZS5jb250ZW50RWxlbWVudHx8KGUuZ2V0Q29udGVudD0oKT0+cnQuZW1wdHkpfXJldHVybiBlfW1hdGNoZXNOb2RlKGUsdCxhKXtyZXR1cm4gdGhpcy5kaXJ0eT09SGMmJmUuZXEodGhpcy5ub2RlKSYmWm5lKHQsdGhpcy5vdXRlckRlY28pJiZhLmVxKHRoaXMuaW5uZXJEZWNvKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLm5vZGUubm9kZVNpemV9Z2V0IGJvcmRlcigpe3JldHVybiB0aGlzLm5vZGUuaXNMZWFmPzA6MX11cGRhdGVDaGlsZHJlbihlLHQpe2xldCBhPXRoaXMubm9kZS5pbmxpbmVDb250ZW50LHI9dCxuPWUuY29tcG9zaW5nP3RoaXMubG9jYWxDb21wb3NpdGlvbkluZm8oZSx0KTpudWxsLG89biYmbi5wb3M+LTE/bjpudWxsLGw9biYmbi5wb3M8MCxwPW5ldyBPdHQodGhpcyxvJiZvLm5vZGUsZSk7c0thKHRoaXMubm9kZSx0aGlzLmlubmVyRGVjbywoZCx1LGMpPT57ZC5zcGVjLm1hcmtzP3Auc3luY1RvTWFya3MoZC5zcGVjLm1hcmtzLGEsZSx1KTpkLnR5cGUuc2lkZT49MCYmIWMmJnAuc3luY1RvTWFya3ModT09dGhpcy5ub2RlLmNoaWxkQ291bnQ/ZnMubm9uZTp0aGlzLm5vZGUuY2hpbGQodSkubWFya3MsYSxlLHUpLHAucGxhY2VXaWRnZXQoZCxlLHIpfSwoZCx1LGMsYik9PntwLnN5bmNUb01hcmtzKGQubWFya3MsYSxlLGIpO2xldCB2O3AuZmluZE5vZGVNYXRjaChkLHUsYyxiKXx8bCYmZS5zdGF0ZS5zZWxlY3Rpb24uZnJvbT5yJiZlLnN0YXRlLnNlbGVjdGlvbi50bzxyK2Qubm9kZVNpemUmJih2PXAuZmluZEluZGV4V2l0aENoaWxkKG4ubm9kZSkpPi0xJiZwLnVwZGF0ZU5vZGVBdChkLHUsYyx2LGUpfHxwLnVwZGF0ZU5leHROb2RlKGQsdSxjLGUsYixyKXx8cC5hZGROb2RlKGQsdSxjLGUscikscis9ZC5ub2RlU2l6ZX0pLHAuc3luY1RvTWFya3MoW10sYSxlLDApLHRoaXMubm9kZS5pc1RleHRibG9jayYmcC5hZGRUZXh0YmxvY2tIYWNrcygpLHAuZGVzdHJveVJlc3QoKSwocC5jaGFuZ2VkfHx0aGlzLmRpcnR5PT1lZykmJihvJiZ0aGlzLnByb3RlY3RMb2NhbENvbXBvc2l0aW9uKGUsbyksYXBhKHRoaXMuY29udGVudERPTSx0aGlzLmNoaWxkcmVuLGUpLEN2JiZpS2EodGhpcy5kb20pKX1sb2NhbENvbXBvc2l0aW9uSW5mbyhlLHQpe2xldHtmcm9tOmEsdG86cn09ZS5zdGF0ZS5zZWxlY3Rpb247aWYoIShlLnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIEp0KXx8YTx0fHxyPnQrdGhpcy5ub2RlLmNvbnRlbnQuc2l6ZSlyZXR1cm4gbnVsbDtsZXQgbj1lLmlucHV0LmNvbXBvc2l0aW9uTm9kZTtpZighbnx8IXRoaXMuZG9tLmNvbnRhaW5zKG4ucGFyZW50Tm9kZSkpcmV0dXJuIG51bGw7aWYodGhpcy5ub2RlLmlubGluZUNvbnRlbnQpe2xldCBvPW4ubm9kZVZhbHVlLGw9ckthKHRoaXMubm9kZS5jb250ZW50LG8sYS10LHItdCk7cmV0dXJuIGw8MD9udWxsOntub2RlOm4scG9zOmwsdGV4dDpvfX1lbHNlIHJldHVybntub2RlOm4scG9zOi0xLHRleHQ6IiJ9fXByb3RlY3RMb2NhbENvbXBvc2l0aW9uKGUse25vZGU6dCxwb3M6YSx0ZXh0OnJ9KXtpZih0aGlzLmdldERlc2ModCkpcmV0dXJuO2xldCBuPXQ7Zm9yKDtuLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTtuPW4ucGFyZW50Tm9kZSl7Zm9yKDtuLnByZXZpb3VzU2libGluZzspbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4ucHJldmlvdXNTaWJsaW5nKTtmb3IoO24ubmV4dFNpYmxpbmc7KW4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuLm5leHRTaWJsaW5nKTtuLnBtVmlld0Rlc2MmJihuLnBtVmlld0Rlc2M9dm9pZCAwKX1sZXQgbz1uZXcgQXR0KHRoaXMsbix0LHIpO2UuaW5wdXQuY29tcG9zaXRpb25Ob2Rlcy5wdXNoKG8pLHRoaXMuY2hpbGRyZW49RnR0KHRoaXMuY2hpbGRyZW4sYSxhK3IubGVuZ3RoLGUsbyl9dXBkYXRlKGUsdCxhLHIpe3JldHVybiB0aGlzLmRpcnR5PT1BZHx8IWUuc2FtZU1hcmt1cCh0aGlzLm5vZGUpPyExOih0aGlzLnVwZGF0ZUlubmVyKGUsdCxhLHIpLCEwKX11cGRhdGVJbm5lcihlLHQsYSxyKXt0aGlzLnVwZGF0ZU91dGVyRGVjbyh0KSx0aGlzLm5vZGU9ZSx0aGlzLmlubmVyRGVjbz1hLHRoaXMuY29udGVudERPTSYmdGhpcy51cGRhdGVDaGlsZHJlbihyLHRoaXMucG9zQXRTdGFydCksdGhpcy5kaXJ0eT1IY311cGRhdGVPdXRlckRlY28oZSl7aWYoWm5lKGUsdGhpcy5vdXRlckRlY28pKXJldHVybjtsZXQgdD10aGlzLm5vZGVET00ubm9kZVR5cGUhPTEsYT10aGlzLmRvbTt0aGlzLmRvbT1zcGEodGhpcy5kb20sdGhpcy5ub2RlRE9NLFJ0dCh0aGlzLm91dGVyRGVjbyx0aGlzLm5vZGUsdCksUnR0KGUsdGhpcy5ub2RlLHQpKSx0aGlzLmRvbSE9YSYmKGEucG1WaWV3RGVzYz12b2lkIDAsdGhpcy5kb20ucG1WaWV3RGVzYz10aGlzKSx0aGlzLm91dGVyRGVjbz1lfXNlbGVjdE5vZGUoKXt0aGlzLm5vZGVET00ubm9kZVR5cGU9PTEmJih0aGlzLm5vZGVET00uY2xhc3NMaXN0LmFkZCgiUHJvc2VNaXJyb3Itc2VsZWN0ZWRub2RlIiksKHRoaXMuY29udGVudERPTXx8IXRoaXMubm9kZS50eXBlLnNwZWMuZHJhZ2dhYmxlKSYmKHRoaXMubm9kZURPTS5kcmFnZ2FibGU9ITApKX1kZXNlbGVjdE5vZGUoKXt0aGlzLm5vZGVET00ubm9kZVR5cGU9PTEmJih0aGlzLm5vZGVET00uY2xhc3NMaXN0LnJlbW92ZSgiUHJvc2VNaXJyb3Itc2VsZWN0ZWRub2RlIiksKHRoaXMuY29udGVudERPTXx8IXRoaXMubm9kZS50eXBlLnNwZWMuZHJhZ2dhYmxlKSYmdGhpcy5ub2RlRE9NLnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ2dhYmxlIikpfWdldCBkb21BdG9tKCl7cmV0dXJuIHRoaXMubm9kZS5pc0F0b219fTtpKHRwYSwiZG9jVmlld0Rlc2MiKTtLbmU9Y2xhc3MgcyBleHRlbmRzIERoe3N0YXRpY3tpKHRoaXMsIlRleHRWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUsdCxhLHIsbixvLGwpe3N1cGVyKGUsdCxhLHIsbixudWxsLG8sbCwwKX1wYXJzZVJ1bGUoKXtsZXQgZT10aGlzLm5vZGVET00ucGFyZW50Tm9kZTtmb3IoO2UmJmUhPXRoaXMuZG9tJiYhZS5wbUlzRGVjbzspZT1lLnBhcmVudE5vZGU7cmV0dXJue3NraXA6ZXx8ITB9fXVwZGF0ZShlLHQsYSxyKXtyZXR1cm4gdGhpcy5kaXJ0eT09QWR8fHRoaXMuZGlydHkhPUhjJiYhdGhpcy5pblBhcmVudCgpfHwhZS5zYW1lTWFya3VwKHRoaXMubm9kZSk/ITE6KHRoaXMudXBkYXRlT3V0ZXJEZWNvKHQpLCh0aGlzLmRpcnR5IT1IY3x8ZS50ZXh0IT10aGlzLm5vZGUudGV4dCkmJmUudGV4dCE9dGhpcy5ub2RlRE9NLm5vZGVWYWx1ZSYmKHRoaXMubm9kZURPTS5ub2RlVmFsdWU9ZS50ZXh0LHIudHJhY2tXcml0ZXM9PXRoaXMubm9kZURPTSYmKHIudHJhY2tXcml0ZXM9bnVsbCkpLHRoaXMubm9kZT1lLHRoaXMuZGlydHk9SGMsITApfWluUGFyZW50KCl7bGV0IGU9dGhpcy5wYXJlbnQuY29udGVudERPTTtmb3IobGV0IHQ9dGhpcy5ub2RlRE9NO3Q7dD10LnBhcmVudE5vZGUpaWYodD09ZSlyZXR1cm4hMDtyZXR1cm4hMX1kb21Gcm9tUG9zKGUpe3JldHVybntub2RlOnRoaXMubm9kZURPTSxvZmZzZXQ6ZX19bG9jYWxQb3NGcm9tRE9NKGUsdCxhKXtyZXR1cm4gZT09dGhpcy5ub2RlRE9NP3RoaXMucG9zQXRTdGFydCtNYXRoLm1pbih0LHRoaXMubm9kZS50ZXh0Lmxlbmd0aCk6c3VwZXIubG9jYWxQb3NGcm9tRE9NKGUsdCxhKX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gZS50eXBlIT0iY2hhcmFjdGVyRGF0YSImJmUudHlwZSE9InNlbGVjdGlvbiJ9c2xpY2UoZSx0LGEpe2xldCByPXRoaXMubm9kZS5jdXQoZSx0KSxuPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHIudGV4dCk7cmV0dXJuIG5ldyBzKHRoaXMucGFyZW50LHIsdGhpcy5vdXRlckRlY28sdGhpcy5pbm5lckRlY28sbixuLGEpfW1hcmtEaXJ0eShlLHQpe3N1cGVyLm1hcmtEaXJ0eShlLHQpLHRoaXMuZG9tIT10aGlzLm5vZGVET00mJihlPT0wfHx0PT10aGlzLm5vZGVET00ubm9kZVZhbHVlLmxlbmd0aCkmJih0aGlzLmRpcnR5PUFkKX1nZXQgZG9tQXRvbSgpe3JldHVybiExfWlzVGV4dChlKXtyZXR1cm4gdGhpcy5ub2RlLnRleHQ9PWV9fSxZbmU9Y2xhc3MgZXh0ZW5kcyB0Z3tzdGF0aWN7aSh0aGlzLCJUcmFpbGluZ0hhY2tWaWV3RGVzYyIpfXBhcnNlUnVsZSgpe3JldHVybntpZ25vcmU6ITB9fW1hdGNoZXNIYWNrKGUpe3JldHVybiB0aGlzLmRpcnR5PT1IYyYmdGhpcy5kb20ubm9kZU5hbWU9PWV9Z2V0IGRvbUF0b20oKXtyZXR1cm4hMH1nZXQgaWdub3JlRm9yQ29vcmRzKCl7cmV0dXJuIHRoaXMuZG9tLm5vZGVOYW1lPT0iSU1HIn19LE50dD1jbGFzcyBleHRlbmRzIERoe3N0YXRpY3tpKHRoaXMsIkN1c3RvbU5vZGVWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUsdCxhLHIsbixvLGwscCxkLHUpe3N1cGVyKGUsdCxhLHIsbixvLGwsZCx1KSx0aGlzLnNwZWM9cH11cGRhdGUoZSx0LGEscil7aWYodGhpcy5kaXJ0eT09QWQpcmV0dXJuITE7aWYodGhpcy5zcGVjLnVwZGF0ZSYmKHRoaXMubm9kZS50eXBlPT1lLnR5cGV8fHRoaXMuc3BlYy5tdWx0aVR5cGUpKXtsZXQgbj10aGlzLnNwZWMudXBkYXRlKGUsdCxhKTtyZXR1cm4gbiYmdGhpcy51cGRhdGVJbm5lcihlLHQsYSxyKSxufWVsc2UgcmV0dXJuIXRoaXMuY29udGVudERPTSYmIWUuaXNMZWFmPyExOnN1cGVyLnVwZGF0ZShlLHQsYSxyKX1zZWxlY3ROb2RlKCl7dGhpcy5zcGVjLnNlbGVjdE5vZGU/dGhpcy5zcGVjLnNlbGVjdE5vZGUoKTpzdXBlci5zZWxlY3ROb2RlKCl9ZGVzZWxlY3ROb2RlKCl7dGhpcy5zcGVjLmRlc2VsZWN0Tm9kZT90aGlzLnNwZWMuZGVzZWxlY3ROb2RlKCk6c3VwZXIuZGVzZWxlY3ROb2RlKCl9c2V0U2VsZWN0aW9uKGUsdCxhLHIpe3RoaXMuc3BlYy5zZXRTZWxlY3Rpb24/dGhpcy5zcGVjLnNldFNlbGVjdGlvbihlLHQsYS5yb290KTpzdXBlci5zZXRTZWxlY3Rpb24oZSx0LGEscil9ZGVzdHJveSgpe3RoaXMuc3BlYy5kZXN0cm95JiZ0aGlzLnNwZWMuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1zdG9wRXZlbnQoZSl7cmV0dXJuIHRoaXMuc3BlYy5zdG9wRXZlbnQ/dGhpcy5zcGVjLnN0b3BFdmVudChlKTohMX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gdGhpcy5zcGVjLmlnbm9yZU11dGF0aW9uP3RoaXMuc3BlYy5pZ25vcmVNdXRhdGlvbihlKTpzdXBlci5pZ25vcmVNdXRhdGlvbihlKX19O2koYXBhLCJyZW5kZXJEZXNjcyIpO1haPWkoZnVuY3Rpb24ocyl7cyYmKHRoaXMubm9kZU5hbWU9cyl9LCJPdXRlckRlY29MZXZlbCIpO1haLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG51bGwpO2FnPVtuZXcgWFpdO2koUnR0LCJjb21wdXRlT3V0ZXJEZWNvIik7aShzcGEsInBhdGNoT3V0ZXJEZWNvIik7aShlS2EsInBhdGNoQXR0cmlidXRlcyIpO2koaXBhLCJhcHBseU91dGVyRGVjbyIpO2koWm5lLCJzYW1lT3V0ZXJEZWNvIik7aShycGEsInJtIik7T3R0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlZpZXdUcmVlVXBkYXRlciIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLmxvY2s9dCx0aGlzLnZpZXc9YSx0aGlzLmluZGV4PTAsdGhpcy5zdGFjaz1bXSx0aGlzLmNoYW5nZWQ9ITEsdGhpcy50b3A9ZSx0aGlzLnByZU1hdGNoPXRLYShlLm5vZGUuY29udGVudCxlKX1kZXN0cm95QmV0d2VlbihlLHQpe2lmKGUhPXQpe2ZvcihsZXQgYT1lO2E8dDthKyspdGhpcy50b3AuY2hpbGRyZW5bYV0uZGVzdHJveSgpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZShlLHQtZSksdGhpcy5jaGFuZ2VkPSEwfX1kZXN0cm95UmVzdCgpe3RoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCx0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGgpfXN5bmNUb01hcmtzKGUsdCxhLHIpe2xldCBuPTAsbz10aGlzLnN0YWNrLmxlbmd0aD4+MSxsPU1hdGgubWluKG8sZS5sZW5ndGgpO2Zvcig7bjxsJiYobj09by0xP3RoaXMudG9wOnRoaXMuc3RhY2tbbisxPDwxXSkubWF0Y2hlc01hcmsoZVtuXSkmJmVbbl0udHlwZS5zcGVjLnNwYW5uaW5nIT09ITE7KW4rKztmb3IoO248bzspdGhpcy5kZXN0cm95UmVzdCgpLHRoaXMudG9wLmRpcnR5PUhjLHRoaXMuaW5kZXg9dGhpcy5zdGFjay5wb3AoKSx0aGlzLnRvcD10aGlzLnN0YWNrLnBvcCgpLG8tLTtmb3IoO288ZS5sZW5ndGg7KXt0aGlzLnN0YWNrLnB1c2godGhpcy50b3AsdGhpcy5pbmRleCsxKTtsZXQgcD0tMSxkPXRoaXMudG9wLmNoaWxkcmVuLmxlbmd0aDtyPHRoaXMucHJlTWF0Y2guaW5kZXgmJihkPU1hdGgubWluKHRoaXMuaW5kZXgrMyxkKSk7Zm9yKGxldCB1PXRoaXMuaW5kZXg7dTxkO3UrKyl7bGV0IGM9dGhpcy50b3AuY2hpbGRyZW5bdV07aWYoYy5tYXRjaGVzTWFyayhlW29dKSYmIXRoaXMuaXNMb2NrZWQoYy5kb20pKXtwPXU7YnJlYWt9fWlmKHA+LTEpcD50aGlzLmluZGV4JiYodGhpcy5jaGFuZ2VkPSEwLHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxwKSksdGhpcy50b3A9dGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleF07ZWxzZXtsZXQgdT0kdi5jcmVhdGUodGhpcy50b3AsZVtvXSx0LGEpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4LDAsdSksdGhpcy50b3A9dSx0aGlzLmNoYW5nZWQ9ITB9dGhpcy5pbmRleD0wLG8rK319ZmluZE5vZGVNYXRjaChlLHQsYSxyKXtsZXQgbj0tMSxvO2lmKHI+PXRoaXMucHJlTWF0Y2guaW5kZXgmJihvPXRoaXMucHJlTWF0Y2gubWF0Y2hlc1tyLXRoaXMucHJlTWF0Y2guaW5kZXhdKS5wYXJlbnQ9PXRoaXMudG9wJiZvLm1hdGNoZXNOb2RlKGUsdCxhKSluPXRoaXMudG9wLmNoaWxkcmVuLmluZGV4T2Yobyx0aGlzLmluZGV4KTtlbHNlIGZvcihsZXQgbD10aGlzLmluZGV4LHA9TWF0aC5taW4odGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoLGwrNSk7bDxwO2wrKyl7bGV0IGQ9dGhpcy50b3AuY2hpbGRyZW5bbF07aWYoZC5tYXRjaGVzTm9kZShlLHQsYSkmJiF0aGlzLnByZU1hdGNoLm1hdGNoZWQuaGFzKGQpKXtuPWw7YnJlYWt9fXJldHVybiBuPDA/ITE6KHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxuKSx0aGlzLmluZGV4KyssITApfXVwZGF0ZU5vZGVBdChlLHQsYSxyLG4pe2xldCBvPXRoaXMudG9wLmNoaWxkcmVuW3JdO3JldHVybiBvLmRpcnR5PT1BZCYmby5kb209PW8uY29udGVudERPTSYmKG8uZGlydHk9ZWcpLG8udXBkYXRlKGUsdCxhLG4pPyh0aGlzLmRlc3Ryb3lCZXR3ZWVuKHRoaXMuaW5kZXgsciksdGhpcy5pbmRleCsrLCEwKTohMX1maW5kSW5kZXhXaXRoQ2hpbGQoZSl7Zm9yKDs7KXtsZXQgdD1lLnBhcmVudE5vZGU7aWYoIXQpcmV0dXJuLTE7aWYodD09dGhpcy50b3AuY29udGVudERPTSl7bGV0IGE9ZS5wbVZpZXdEZXNjO2lmKGEpe2ZvcihsZXQgcj10aGlzLmluZGV4O3I8dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoO3IrKylpZih0aGlzLnRvcC5jaGlsZHJlbltyXT09YSlyZXR1cm4gcn1yZXR1cm4tMX1lPXR9fXVwZGF0ZU5leHROb2RlKGUsdCxhLHIsbixvKXtmb3IobGV0IGw9dGhpcy5pbmRleDtsPHRoaXMudG9wLmNoaWxkcmVuLmxlbmd0aDtsKyspe2xldCBwPXRoaXMudG9wLmNoaWxkcmVuW2xdO2lmKHAgaW5zdGFuY2VvZiBEaCl7bGV0IGQ9dGhpcy5wcmVNYXRjaC5tYXRjaGVkLmdldChwKTtpZihkIT1udWxsJiZkIT1uKXJldHVybiExO2xldCB1PXAuZG9tLGMsYj10aGlzLmlzTG9ja2VkKHUpJiYhKGUuaXNUZXh0JiZwLm5vZGUmJnAubm9kZS5pc1RleHQmJnAubm9kZURPTS5ub2RlVmFsdWU9PWUudGV4dCYmcC5kaXJ0eSE9QWQmJlpuZSh0LHAub3V0ZXJEZWNvKSk7aWYoIWImJnAudXBkYXRlKGUsdCxhLHIpKXJldHVybiB0aGlzLmRlc3Ryb3lCZXR3ZWVuKHRoaXMuaW5kZXgsbCkscC5kb20hPXUmJih0aGlzLmNoYW5nZWQ9ITApLHRoaXMuaW5kZXgrKywhMDtpZighYiYmKGM9dGhpcy5yZWNyZWF0ZVdyYXBwZXIocCxlLHQsYSxyLG8pKSlyZXR1cm4gdGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LGwpLHRoaXMudG9wLmNoaWxkcmVuW3RoaXMuaW5kZXhdPWMsYy5jb250ZW50RE9NJiYoYy5kaXJ0eT1lZyxjLnVwZGF0ZUNoaWxkcmVuKHIsbysxKSxjLmRpcnR5PUhjKSx0aGlzLmNoYW5nZWQ9ITAsdGhpcy5pbmRleCsrLCEwO2JyZWFrfX1yZXR1cm4hMX1yZWNyZWF0ZVdyYXBwZXIoZSx0LGEscixuLG8pe2lmKGUuZGlydHl8fHQuaXNBdG9tfHwhZS5jaGlsZHJlbi5sZW5ndGh8fCFlLm5vZGUuY29udGVudC5lcSh0LmNvbnRlbnQpfHwhWm5lKGEsZS5vdXRlckRlY28pfHwhci5lcShlLmlubmVyRGVjbykpcmV0dXJuIG51bGw7bGV0IGw9RGguY3JlYXRlKHRoaXMudG9wLHQsYSxyLG4sbyk7aWYobC5jb250ZW50RE9NKXtsLmNoaWxkcmVuPWUuY2hpbGRyZW4sZS5jaGlsZHJlbj1bXTtmb3IobGV0IHAgb2YgbC5jaGlsZHJlbilwLnBhcmVudD1sfXJldHVybiBlLmRlc3Ryb3koKSxsfWFkZE5vZGUoZSx0LGEscixuKXtsZXQgbz1EaC5jcmVhdGUodGhpcy50b3AsZSx0LGEscixuKTtvLmNvbnRlbnRET00mJm8udXBkYXRlQ2hpbGRyZW4ocixuKzEpLHRoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4KyssMCxvKSx0aGlzLmNoYW5nZWQ9ITB9cGxhY2VXaWRnZXQoZSx0LGEpe2xldCByPXRoaXMuaW5kZXg8dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoP3RoaXMudG9wLmNoaWxkcmVuW3RoaXMuaW5kZXhdOm51bGw7aWYociYmci5tYXRjaGVzV2lkZ2V0KGUpJiYoZT09ci53aWRnZXR8fCFyLndpZGdldC50eXBlLnRvRE9NLnBhcmVudE5vZGUpKXRoaXMuaW5kZXgrKztlbHNle2xldCBuPW5ldyBHbmUodGhpcy50b3AsZSx0LGEpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4KyssMCxuKSx0aGlzLmNoYW5nZWQ9ITB9fWFkZFRleHRibG9ja0hhY2tzKCl7bGV0IGU9dGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleC0xXSx0PXRoaXMudG9wO2Zvcig7ZSBpbnN0YW5jZW9mICR2Oyl0PWUsZT10LmNoaWxkcmVuW3QuY2hpbGRyZW4ubGVuZ3RoLTFdOyghZXx8IShlIGluc3RhbmNlb2YgS25lKXx8L1xuJC8udGVzdChlLm5vZGUudGV4dCl8fHRoaXMudmlldy5yZXF1aXJlc0dlY2tvSGFja05vZGUmJi9ccyQvLnRlc3QoZS5ub2RlLnRleHQpKSYmKChsbnx8JG8pJiZlJiZlLmRvbS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSImJnRoaXMuYWRkSGFja05vZGUoIklNRyIsdCksdGhpcy5hZGRIYWNrTm9kZSgiQlIiLHRoaXMudG9wKSl9YWRkSGFja05vZGUoZSx0KXtpZih0PT10aGlzLnRvcCYmdGhpcy5pbmRleDx0LmNoaWxkcmVuLmxlbmd0aCYmdC5jaGlsZHJlblt0aGlzLmluZGV4XS5tYXRjaGVzSGFjayhlKSl0aGlzLmluZGV4Kys7ZWxzZXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO2U9PSJJTUciJiYoYS5jbGFzc05hbWU9IlByb3NlTWlycm9yLXNlcGFyYXRvciIsYS5hbHQ9IiIpLGU9PSJCUiImJihhLmNsYXNzTmFtZT0iUHJvc2VNaXJyb3ItdHJhaWxpbmdCcmVhayIpO2xldCByPW5ldyBZbmUodGhpcy50b3AsW10sYSxudWxsKTt0IT10aGlzLnRvcD90LmNoaWxkcmVuLnB1c2gocik6dC5jaGlsZHJlbi5zcGxpY2UodGhpcy5pbmRleCsrLDAsciksdGhpcy5jaGFuZ2VkPSEwfX1pc0xvY2tlZChlKXtyZXR1cm4gdGhpcy5sb2NrJiYoZT09dGhpcy5sb2NrfHxlLm5vZGVUeXBlPT0xJiZlLmNvbnRhaW5zKHRoaXMubG9jay5wYXJlbnROb2RlKSl9fTtpKHRLYSwicHJlTWF0Y2giKTtpKGFLYSwiY29tcGFyZVNpZGUiKTtpKHNLYSwiaXRlckRlY28iKTtpKGlLYSwiaW9zSGFja3MiKTtpKHJLYSwiZmluZFRleHRJbkZyYWdtZW50Iik7aShGdHQsInJlcGxhY2VOb2RlcyIpO2koQnR0LCJzZWxlY3Rpb25Gcm9tRE9NIik7aShvcGEsImVkaXRvck93bnNTZWxlY3Rpb24iKTtpKGN1LCJzZWxlY3Rpb25Ub0RPTSIpO25wYT1sbnx8JG8mJkh1YTw2MztpKGxwYSwidGVtcG9yYXJpbHlFZGl0YWJsZU5lYXIiKTtpKEh0dCwic2V0RWRpdGFibGUiKTtpKGNwYSwicmVzZXRFZGl0YWJsZSIpO2kob0thLCJyZW1vdmVDbGFzc09uU2VsZWN0aW9uQ2hhbmdlIik7aShuS2EsInNlbGVjdEN1cnNvcldyYXBwZXIiKTtpKGRwYSwic3luY05vZGVTZWxlY3Rpb24iKTtpKHVwYSwiY2xlYXJOb2RlU2VsZWN0aW9uIik7aShxdHQsInNlbGVjdGlvbkJldHdlZW4iKTtpKHBwYSwiaGFzRm9jdXNBbmRTZWxlY3Rpb24iKTtpKGhwYSwiaGFzU2VsZWN0aW9uIik7aShsS2EsImFuY2hvckluUmlnaHRQbGFjZSIpO2koanR0LCJtb3ZlU2VsZWN0aW9uQmxvY2siKTtpKExoLCJhcHBseSIpO2koZnBhLCJzZWxlY3RIb3Jpem9udGFsbHkiKTtpKFhuZSwibm9kZUxlbiIpO2koUVosImlzSWdub3JhYmxlIik7aShEdiwic2tpcElnbm9yZWROb2RlcyIpO2koY0thLCJza2lwSWdub3JlZE5vZGVzQmVmb3JlIik7aShkS2EsInNraXBJZ25vcmVkTm9kZXNBZnRlciIpO2kobXBhLCJpc0Jsb2NrTm9kZSIpO2kodUthLCJ0ZXh0Tm9kZUFmdGVyIik7aShwS2EsInRleHROb2RlQmVmb3JlIik7aShWdHQsInNldFNlbEZvY3VzIik7aShncGEsImZpbmREaXJlY3Rpb24iKTtpKGJwYSwic2VsZWN0VmVydGljYWxseSIpO2kodnBhLCJzdG9wTmF0aXZlSG9yaXpvbnRhbERlbGV0ZSIpO2koeHBhLCJzd2l0Y2hFZGl0YWJsZSIpO2koaEthLCJzYWZhcmlEb3duQXJyb3dCdWciKTtpKGZLYSwiZ2V0TW9kcyIpO2kobUthLCJjYXB0dXJlS2V5RG93biIpO2koVXR0LCJzZXJpYWxpemVGb3JDbGlwYm9hcmQiKTtpKFd0dCwicGFyc2VGcm9tQ2xpcGJvYXJkIik7Z0thPS9eKGF8YWJicnxhY3JvbnltfGJ8Y2l0ZXxjb2RlfGRlbHxlbXxpfGluc3xrYmR8bGFiZWx8b3V0cHV0fHF8cnVieXxzfHNhbXB8c3BhbnxzdHJvbmd8c3VifHN1cHx0aW1lfHV8dHR8dmFyKSQvaTtpKGJLYSwibm9ybWFsaXplU2libGluZ3MiKTtpKHlwYSwid2l0aFdyYXBwZXJzIik7aSh3cGEsImFkZFRvU2libGluZyIpO2koa3BhLCJjbG9zZVJpZ2h0Iik7aShHdHQsImNsb3NlUmFuZ2UiKTtpKFNwYSwiY2xvc2VTbGljZSIpO19wYT17dGhlYWQ6WyJ0YWJsZSJdLHRib2R5OlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sY2FwdGlvbjpbInRhYmxlIl0sY29sZ3JvdXA6WyJ0YWJsZSJdLGNvbDpbInRhYmxlIiwiY29sZ3JvdXAiXSx0cjpbInRhYmxlIiwidGJvZHkiXSx0ZDpbInRhYmxlIiwidGJvZHkiLCJ0ciJdLHRoOlsidGFibGUiLCJ0Ym9keSIsInRyIl19LE1wYT1udWxsO2koenBhLCJkZXRhY2hlZERvYyIpO0t0dD1udWxsO2kodkthLCJtYXliZVdyYXBUcnVzdGVkIik7aSh4S2EsInJlYWRIVE1MIik7aSh5S2EsInJlc3RvcmVSZXBsYWNlZFNwYWNlcyIpO2kod0thLCJhZGRDb250ZXh0Iik7JG49e30sRG49e30sa0thPXt0b3VjaHN0YXJ0OiEwLHRvdWNobW92ZTohMH0sWXR0PWNsYXNze3N0YXRpY3tpKHRoaXMsIklucHV0U3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc2hpZnRLZXk9ITEsdGhpcy5tb3VzZURvd249bnVsbCx0aGlzLmxhc3RLZXlDb2RlPW51bGwsdGhpcy5sYXN0S2V5Q29kZVRpbWU9MCx0aGlzLmxhc3RDbGljaz17dGltZTowLHg6MCx5OjAsdHlwZToiIixidXR0b246MH0sdGhpcy5sYXN0U2VsZWN0aW9uT3JpZ2luPW51bGwsdGhpcy5sYXN0U2VsZWN0aW9uVGltZT0wLHRoaXMubGFzdElPU0VudGVyPTAsdGhpcy5sYXN0SU9TRW50ZXJGYWxsYmFja1RpbWVvdXQ9LTEsdGhpcy5sYXN0Rm9jdXM9MCx0aGlzLmxhc3RUb3VjaD0wLHRoaXMubGFzdENocm9tZURlbGV0ZT0wLHRoaXMuY29tcG9zaW5nPSExLHRoaXMuY29tcG9zaXRpb25Ob2RlPW51bGwsdGhpcy5jb21wb3NpbmdUaW1lb3V0PS0xLHRoaXMuY29tcG9zaXRpb25Ob2Rlcz1bXSx0aGlzLmNvbXBvc2l0aW9uRW5kZWRBdD0tMmU4LHRoaXMuY29tcG9zaXRpb25JRD0xLHRoaXMuYmFkU2FmYXJpQ29tcG9zaXRpb249ITEsdGhpcy5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzPTAsdGhpcy5kb21DaGFuZ2VDb3VudD0wLHRoaXMuZXZlbnRIYW5kbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuaGlkZVNlbGVjdGlvbkd1YXJkPW51bGx9fTtpKFNLYSwiaW5pdElucHV0Iik7aShFaCwic2V0U2VsZWN0aW9uT3JpZ2luIik7aShfS2EsImRlc3Ryb3lJbnB1dCIpO2koWnR0LCJlbnN1cmVMaXN0ZW5lcnMiKTtpKFh0dCwicnVuQ3VzdG9tSGFuZGxlciIpO2koTUthLCJldmVudEJlbG9uZ3NUb1ZpZXciKTtpKHpLYSwiZGlzcGF0Y2hFdmVudCIpLERuLmtleWRvd249KHMsZSk9PntsZXQgdD1lO2lmKHMuaW5wdXQuc2hpZnRLZXk9dC5rZXlDb2RlPT0xNnx8dC5zaGlmdEtleSwhVHBhKHMsdCkmJihzLmlucHV0Lmxhc3RLZXlDb2RlPXQua2V5Q29kZSxzLmlucHV0Lmxhc3RLZXlDb2RlVGltZT1EYXRlLm5vdygpLCEobnUmJiRvJiZ0LmtleUNvZGU9PTEzKSkpaWYodC5rZXlDb2RlIT0yMjkmJnMuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpLEN2JiZ0LmtleUNvZGU9PTEzJiYhdC5jdHJsS2V5JiYhdC5hbHRLZXkmJiF0Lm1ldGFLZXkpe2xldCBhPURhdGUubm93KCk7cy5pbnB1dC5sYXN0SU9TRW50ZXI9YSxzLmlucHV0Lmxhc3RJT1NFbnRlckZhbGxiYWNrVGltZW91dD1zZXRUaW1lb3V0KCgpPT57cy5pbnB1dC5sYXN0SU9TRW50ZXI9PWEmJihzLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixyPT5yKHMsSjgoMTMsIkVudGVyIikpKSxzLmlucHV0Lmxhc3RJT1NFbnRlcj0wKX0sMjAwKX1lbHNlIHMuc29tZVByb3AoImhhbmRsZUtleURvd24iLGE9PmEocyx0KSl8fG1LYShzLHQpP3QucHJldmVudERlZmF1bHQoKTpFaChzLCJrZXkiKX0sRG4ua2V5dXA9KHMsZSk9PntlLmtleUNvZGU9PTE2JiYocy5pbnB1dC5zaGlmdEtleT0hMSl9LERuLmtleXByZXNzPShzLGUpPT57bGV0IHQ9ZTtpZihUcGEocyx0KXx8IXQuY2hhckNvZGV8fHQuY3RybEtleSYmIXQuYWx0S2V5fHxCYyYmdC5tZXRhS2V5KXJldHVybjtpZihzLnNvbWVQcm9wKCJoYW5kbGVLZXlQcmVzcyIscj0+cihzLHQpKSl7dC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1sZXQgYT1zLnN0YXRlLnNlbGVjdGlvbjtpZighKGEgaW5zdGFuY2VvZiBKdCl8fCFhLiRmcm9tLnNhbWVQYXJlbnQoYS4kdG8pKXtsZXQgcj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuY2hhckNvZGUpLG49aSgoKT0+cy5zdGF0ZS50ci5pbnNlcnRUZXh0KHIpLnNjcm9sbEludG9WaWV3KCksImRlZmx0Iik7IS9bXHJcbl0vLnRlc3QocikmJiFzLnNvbWVQcm9wKCJoYW5kbGVUZXh0SW5wdXQiLG89Pm8ocyxhLiRmcm9tLnBvcyxhLiR0by5wb3MscixuKSkmJnMuZGlzcGF0Y2gobigpKSx0LnByZXZlbnREZWZhdWx0KCl9fTtpKFFuZSwiZXZlbnRDb29yZHMiKTtpKENLYSwiaXNOZWFyIik7aShRdHQsInJ1bkhhbmRsZXJPbkNvbnRleHQiKTtpKEx2LCJ1cGRhdGVTZWxlY3Rpb24iKTtpKFRLYSwic2VsZWN0Q2xpY2tlZExlYWYiKTtpKCRLYSwic2VsZWN0Q2xpY2tlZE5vZGUiKTtpKERLYSwiaGFuZGxlU2luZ2xlQ2xpY2siKTtpKExLYSwiaGFuZGxlRG91YmxlQ2xpY2siKTtpKEVLYSwiaGFuZGxlVHJpcGxlQ2xpY2siKTtpKFBLYSwiZGVmYXVsdFRyaXBsZUNsaWNrIik7aShKdHQsImZvcmNlRE9NRmx1c2giKTtDcGE9QmM/Im1ldGFLZXkiOiJjdHJsS2V5Ijskbi5tb3VzZWRvd249KHMsZSk9PntsZXQgdD1lO3MuaW5wdXQuc2hpZnRLZXk9dC5zaGlmdEtleTtsZXQgYT1KdHQocykscj1EYXRlLm5vdygpLG49InNpbmdsZUNsaWNrIjtyLXMuaW5wdXQubGFzdENsaWNrLnRpbWU8NTAwJiZDS2EodCxzLmlucHV0Lmxhc3RDbGljaykmJiF0W0NwYV0mJnMuaW5wdXQubGFzdENsaWNrLmJ1dHRvbj09dC5idXR0b24mJihzLmlucHV0Lmxhc3RDbGljay50eXBlPT0ic2luZ2xlQ2xpY2siP249ImRvdWJsZUNsaWNrIjpzLmlucHV0Lmxhc3RDbGljay50eXBlPT0iZG91YmxlQ2xpY2siJiYobj0idHJpcGxlQ2xpY2siKSkscy5pbnB1dC5sYXN0Q2xpY2s9e3RpbWU6cix4OnQuY2xpZW50WCx5OnQuY2xpZW50WSx0eXBlOm4sYnV0dG9uOnQuYnV0dG9ufTtsZXQgbz1zLnBvc0F0Q29vcmRzKFFuZSh0KSk7byYmKG49PSJzaW5nbGVDbGljayI/KHMuaW5wdXQubW91c2VEb3duJiZzLmlucHV0Lm1vdXNlRG93bi5kb25lKCkscy5pbnB1dC5tb3VzZURvd249bmV3IGVhdChzLG8sdCwhIWEpKToobj09ImRvdWJsZUNsaWNrIj9MS2E6RUthKShzLG8ucG9zLG8uaW5zaWRlLHQpP3QucHJldmVudERlZmF1bHQoKTpFaChzLCJwb2ludGVyIikpfTtlYXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiTW91c2VEb3duIil9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpcy52aWV3PWUsdGhpcy5wb3M9dCx0aGlzLmV2ZW50PWEsdGhpcy5mbHVzaGVkPXIsdGhpcy5kZWxheWVkU2VsZWN0aW9uU3luYz0hMSx0aGlzLm1pZ2h0RHJhZz1udWxsLHRoaXMuc3RhcnREb2M9ZS5zdGF0ZS5kb2MsdGhpcy5zZWxlY3ROb2RlPSEhYVtDcGFdLHRoaXMuYWxsb3dEZWZhdWx0PWEuc2hpZnRLZXk7bGV0IG4sbztpZih0Lmluc2lkZT4tMSluPWUuc3RhdGUuZG9jLm5vZGVBdCh0Lmluc2lkZSksbz10Lmluc2lkZTtlbHNle2xldCB1PWUuc3RhdGUuZG9jLnJlc29sdmUodC5wb3MpO249dS5wYXJlbnQsbz11LmRlcHRoP3UuYmVmb3JlKCk6MH1sZXQgbD1yP251bGw6YS50YXJnZXQscD1sP2UuZG9jVmlldy5uZWFyZXN0RGVzYyhsLCEwKTpudWxsO3RoaXMudGFyZ2V0PXAmJnAubm9kZURPTS5ub2RlVHlwZT09MT9wLm5vZGVET006bnVsbDtsZXR7c2VsZWN0aW9uOmR9PWUuc3RhdGU7YS5idXR0b249PTAmJihuLnR5cGUuc3BlYy5kcmFnZ2FibGUmJm4udHlwZS5zcGVjLnNlbGVjdGFibGUhPT0hMXx8ZCBpbnN0YW5jZW9mIEZ0JiZkLmZyb208PW8mJmQudG8+bykmJih0aGlzLm1pZ2h0RHJhZz17bm9kZTpuLHBvczpvLGFkZEF0dHI6ISEodGhpcy50YXJnZXQmJiF0aGlzLnRhcmdldC5kcmFnZ2FibGUpLHNldFVuZWRpdGFibGU6ISEodGhpcy50YXJnZXQmJkZjJiYhdGhpcy50YXJnZXQuaGFzQXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKSl9KSx0aGlzLnRhcmdldCYmdGhpcy5taWdodERyYWcmJih0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyfHx0aGlzLm1pZ2h0RHJhZy5zZXRVbmVkaXRhYmxlKSYmKHRoaXMudmlldy5kb21PYnNlcnZlci5zdG9wKCksdGhpcy5taWdodERyYWcuYWRkQXR0ciYmKHRoaXMudGFyZ2V0LmRyYWdnYWJsZT0hMCksdGhpcy5taWdodERyYWcuc2V0VW5lZGl0YWJsZSYmc2V0VGltZW91dCgoKT0+e3RoaXMudmlldy5pbnB1dC5tb3VzZURvd249PXRoaXMmJnRoaXMudGFyZ2V0LnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwiZmFsc2UiKX0sMjApLHRoaXMudmlldy5kb21PYnNlcnZlci5zdGFydCgpKSxlLnJvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy51cD10aGlzLnVwLmJpbmQodGhpcykpLGUucm9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZT10aGlzLm1vdmUuYmluZCh0aGlzKSksRWgoZSwicG9pbnRlciIpfWRvbmUoKXt0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnVwKSx0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZSksdGhpcy5taWdodERyYWcmJnRoaXMudGFyZ2V0JiYodGhpcy52aWV3LmRvbU9ic2VydmVyLnN0b3AoKSx0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyJiZ0aGlzLnRhcmdldC5yZW1vdmVBdHRyaWJ1dGUoImRyYWdnYWJsZSIpLHRoaXMubWlnaHREcmFnLnNldFVuZWRpdGFibGUmJnRoaXMudGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiksdGhpcy52aWV3LmRvbU9ic2VydmVyLnN0YXJ0KCkpLHRoaXMuZGVsYXllZFNlbGVjdGlvblN5bmMmJnNldFRpbWVvdXQoKCk9PmN1KHRoaXMudmlldykpLHRoaXMudmlldy5pbnB1dC5tb3VzZURvd249bnVsbH11cChlKXtpZih0aGlzLmRvbmUoKSwhdGhpcy52aWV3LmRvbS5jb250YWlucyhlLnRhcmdldCkpcmV0dXJuO2xldCB0PXRoaXMucG9zO3RoaXMudmlldy5zdGF0ZS5kb2MhPXRoaXMuc3RhcnREb2MmJih0PXRoaXMudmlldy5wb3NBdENvb3JkcyhRbmUoZSkpKSx0aGlzLnVwZGF0ZUFsbG93RGVmYXVsdChlKSx0aGlzLmFsbG93RGVmYXVsdHx8IXQ/RWgodGhpcy52aWV3LCJwb2ludGVyIik6REthKHRoaXMudmlldyx0LnBvcyx0Lmluc2lkZSxlLHRoaXMuc2VsZWN0Tm9kZSk/ZS5wcmV2ZW50RGVmYXVsdCgpOmUuYnV0dG9uPT0wJiYodGhpcy5mbHVzaGVkfHxsbiYmdGhpcy5taWdodERyYWcmJiF0aGlzLm1pZ2h0RHJhZy5ub2RlLmlzQXRvbXx8JG8mJiF0aGlzLnZpZXcuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUmJk1hdGgubWluKE1hdGguYWJzKHQucG9zLXRoaXMudmlldy5zdGF0ZS5zZWxlY3Rpb24uZnJvbSksTWF0aC5hYnModC5wb3MtdGhpcy52aWV3LnN0YXRlLnNlbGVjdGlvbi50bykpPD0yKT8oTHYodGhpcy52aWV3LFF0Lm5lYXIodGhpcy52aWV3LnN0YXRlLmRvYy5yZXNvbHZlKHQucG9zKSksInBvaW50ZXIiKSxlLnByZXZlbnREZWZhdWx0KCkpOkVoKHRoaXMudmlldywicG9pbnRlciIpfW1vdmUoZSl7dGhpcy51cGRhdGVBbGxvd0RlZmF1bHQoZSksRWgodGhpcy52aWV3LCJwb2ludGVyIiksZS5idXR0b25zPT0wJiZ0aGlzLmRvbmUoKX11cGRhdGVBbGxvd0RlZmF1bHQoZSl7IXRoaXMuYWxsb3dEZWZhdWx0JiYoTWF0aC5hYnModGhpcy5ldmVudC54LWUuY2xpZW50WCk+NHx8TWF0aC5hYnModGhpcy5ldmVudC55LWUuY2xpZW50WSk+NCkmJih0aGlzLmFsbG93RGVmYXVsdD0hMCl9fTskbi50b3VjaHN0YXJ0PXM9PntzLmlucHV0Lmxhc3RUb3VjaD1EYXRlLm5vdygpLEp0dChzKSxFaChzLCJwb2ludGVyIil9LCRuLnRvdWNobW92ZT1zPT57cy5pbnB1dC5sYXN0VG91Y2g9RGF0ZS5ub3coKSxFaChzLCJwb2ludGVyIil9LCRuLmNvbnRleHRtZW51PXM9Pkp0dChzKTtpKFRwYSwiaW5Pck5lYXJDb21wb3NpdGlvbiIpO0lLYT1udT81ZTM6LTE7RG4uY29tcG9zaXRpb25zdGFydD1Ebi5jb21wb3NpdGlvbnVwZGF0ZT1zPT57aWYoIXMuY29tcG9zaW5nKXtzLmRvbU9ic2VydmVyLmZsdXNoKCk7bGV0e3N0YXRlOmV9PXMsdD1lLnNlbGVjdGlvbi4kdG87aWYoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBKdCYmKGUuc3RvcmVkTWFya3N8fCF0LnRleHRPZmZzZXQmJnQucGFyZW50T2Zmc2V0JiZ0Lm5vZGVCZWZvcmUubWFya3Muc29tZShhPT5hLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSl8fCRvJiZxdWEmJkFLYShzKSkpcy5tYXJrQ3Vyc29yPXMuc3RhdGUuc3RvcmVkTWFya3N8fHQubWFya3MoKSxKWihzLCEwKSxzLm1hcmtDdXJzb3I9bnVsbDtlbHNlIGlmKEpaKHMsIWUuc2VsZWN0aW9uLmVtcHR5KSxGYyYmZS5zZWxlY3Rpb24uZW1wdHkmJnQucGFyZW50T2Zmc2V0JiYhdC50ZXh0T2Zmc2V0JiZ0Lm5vZGVCZWZvcmUubWFya3MubGVuZ3RoKXtsZXQgYT1zLmRvbVNlbGVjdGlvblJhbmdlKCk7Zm9yKGxldCByPWEuZm9jdXNOb2RlLG49YS5mb2N1c09mZnNldDtyJiZyLm5vZGVUeXBlPT0xJiZuIT0wOyl7bGV0IG89bjwwP3IubGFzdENoaWxkOnIuY2hpbGROb2Rlc1tuLTFdO2lmKCFvKWJyZWFrO2lmKG8ubm9kZVR5cGU9PTMpe2xldCBsPXMuZG9tU2VsZWN0aW9uKCk7bCYmbC5jb2xsYXBzZShvLG8ubm9kZVZhbHVlLmxlbmd0aCk7YnJlYWt9ZWxzZSByPW8sbj0tMX19cy5pbnB1dC5jb21wb3Npbmc9ITB9JHBhKHMsSUthKX07aShBS2EsInNlbGVjdGlvbkJlZm9yZVVuZWRpdGFibGUiKSxEbi5jb21wb3NpdGlvbmVuZD0ocyxlKT0+e3MuY29tcG9zaW5nJiYocy5pbnB1dC5jb21wb3Npbmc9ITEscy5pbnB1dC5jb21wb3NpdGlvbkVuZGVkQXQ9ZS50aW1lU3RhbXAscy5pbnB1dC5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzPXMuZG9tT2JzZXJ2ZXIucGVuZGluZ1JlY29yZHMoKS5sZW5ndGg/cy5pbnB1dC5jb21wb3NpdGlvbklEOjAscy5pbnB1dC5jb21wb3NpdGlvbk5vZGU9bnVsbCxzLmlucHV0LmJhZFNhZmFyaUNvbXBvc2l0aW9uP3MuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpOnMuaW5wdXQuY29tcG9zaXRpb25QZW5kaW5nQ2hhbmdlcyYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+cy5kb21PYnNlcnZlci5mbHVzaCgpKSxzLmlucHV0LmNvbXBvc2l0aW9uSUQrKywkcGEocywyMCkpfTtpKCRwYSwic2NoZWR1bGVDb21wb3NlRW5kIik7aShEcGEsImNsZWFyQ29tcG9zaXRpb24iKTtpKE5LYSwiZmluZENvbXBvc2l0aW9uTm9kZSIpO2koUkthLCJ0aW1lc3RhbXBGcm9tQ3VzdG9tRXZlbnQiKTtpKEpaLCJlbmRDb21wb3NpdGlvbiIpO2koT0thLCJjYXB0dXJlQ29weSIpO2VYPUNsJiZUaDwxNXx8Q3YmJk9HYTw2MDQ7JG4uY29weT1Ebi5jdXQ9KHMsZSk9PntsZXQgdD1lLGE9cy5zdGF0ZS5zZWxlY3Rpb24scj10LnR5cGU9PSJjdXQiO2lmKGEuZW1wdHkpcmV0dXJuO2xldCBuPWVYP251bGw6dC5jbGlwYm9hcmREYXRhLG89YS5jb250ZW50KCkse2RvbTpsLHRleHQ6cH09VXR0KHMsbyk7bj8odC5wcmV2ZW50RGVmYXVsdCgpLG4uY2xlYXJEYXRhKCksbi5zZXREYXRhKCJ0ZXh0L2h0bWwiLGwuaW5uZXJIVE1MKSxuLnNldERhdGEoInRleHQvcGxhaW4iLHApKTpPS2EocyxsKSxyJiZzLmRpc3BhdGNoKHMuc3RhdGUudHIuZGVsZXRlU2VsZWN0aW9uKCkuc2Nyb2xsSW50b1ZpZXcoKS5zZXRNZXRhKCJ1aUV2ZW50IiwiY3V0IikpfTtpKEZLYSwic2xpY2VTaW5nbGVOb2RlIik7aShCS2EsImNhcHR1cmVQYXN0ZSIpO2kodFgsImRvUGFzdGUiKTtpKExwYSwiZ2V0VGV4dCIpLERuLnBhc3RlPShzLGUpPT57bGV0IHQ9ZTtpZihzLmNvbXBvc2luZyYmIW51KXJldHVybjtsZXQgYT1lWD9udWxsOnQuY2xpcGJvYXJkRGF0YSxyPXMuaW5wdXQuc2hpZnRLZXkmJnMuaW5wdXQubGFzdEtleUNvZGUhPTQ1O2EmJnRYKHMsTHBhKGEpLGEuZ2V0RGF0YSgidGV4dC9odG1sIikscix0KT90LnByZXZlbnREZWZhdWx0KCk6QkthKHMsdCl9O0puZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEcmFnZ2luZyIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLnNsaWNlPWUsdGhpcy5tb3ZlPXQsdGhpcy5ub2RlPWF9fSxIS2E9QmM/ImFsdEtleSI6ImN0cmxLZXkiO2koRXBhLCJkcmFnTW92ZXMiKSwkbi5kcmFnc3RhcnQ9KHMsZSk9PntsZXQgdD1lLGE9cy5pbnB1dC5tb3VzZURvd247aWYoYSYmYS5kb25lKCksIXQuZGF0YVRyYW5zZmVyKXJldHVybjtsZXQgcj1zLnN0YXRlLnNlbGVjdGlvbixuPXIuZW1wdHk/bnVsbDpzLnBvc0F0Q29vcmRzKFFuZSh0KSksbztpZighKG4mJm4ucG9zPj1yLmZyb20mJm4ucG9zPD0ociBpbnN0YW5jZW9mIEZ0P3IudG8tMTpyLnRvKSkpe2lmKGEmJmEubWlnaHREcmFnKW89RnQuY3JlYXRlKHMuc3RhdGUuZG9jLGEubWlnaHREcmFnLnBvcyk7ZWxzZSBpZih0LnRhcmdldCYmdC50YXJnZXQubm9kZVR5cGU9PTEpe2xldCBjPXMuZG9jVmlldy5uZWFyZXN0RGVzYyh0LnRhcmdldCwhMCk7YyYmYy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUmJmMhPXMuZG9jVmlldyYmKG89RnQuY3JlYXRlKHMuc3RhdGUuZG9jLGMucG9zQmVmb3JlKSl9fWxldCBsPShvfHxzLnN0YXRlLnNlbGVjdGlvbikuY29udGVudCgpLHtkb206cCx0ZXh0OmQsc2xpY2U6dX09VXR0KHMsbCk7KCF0LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGh8fCEkb3x8SHVhPjEyMCkmJnQuZGF0YVRyYW5zZmVyLmNsZWFyRGF0YSgpLHQuZGF0YVRyYW5zZmVyLnNldERhdGEoZVg/IlRleHQiOiJ0ZXh0L2h0bWwiLHAuaW5uZXJIVE1MKSx0LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJjb3B5TW92ZSIsZVh8fHQuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLGQpLHMuZHJhZ2dpbmc9bmV3IEpuZSh1LEVwYShzLHQpLG8pfSwkbi5kcmFnZW5kPXM9PntsZXQgZT1zLmRyYWdnaW5nO3dpbmRvdy5zZXRUaW1lb3V0KCgpPT57cy5kcmFnZ2luZz09ZSYmKHMuZHJhZ2dpbmc9bnVsbCl9LDUwKX0sRG4uZHJhZ292ZXI9RG4uZHJhZ2VudGVyPShzLGUpPT5lLnByZXZlbnREZWZhdWx0KCksRG4uZHJvcD0ocyxlKT0+e3RyeXtxS2EocyxlLHMuZHJhZ2dpbmcpfWZpbmFsbHl7cy5kcmFnZ2luZz1udWxsfX07aShxS2EsImhhbmRsZURyb3AiKSwkbi5mb2N1cz1zPT57cy5pbnB1dC5sYXN0Rm9jdXM9RGF0ZS5ub3coKSxzLmZvY3VzZWR8fChzLmRvbU9ic2VydmVyLnN0b3AoKSxzLmRvbS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1mb2N1c2VkIikscy5kb21PYnNlcnZlci5zdGFydCgpLHMuZm9jdXNlZD0hMCxzZXRUaW1lb3V0KCgpPT57cy5kb2NWaWV3JiZzLmhhc0ZvY3VzKCkmJiFzLmRvbU9ic2VydmVyLmN1cnJlbnRTZWxlY3Rpb24uZXEocy5kb21TZWxlY3Rpb25SYW5nZSgpKSYmY3Uocyl9LDIwKSl9LCRuLmJsdXI9KHMsZSk9PntsZXQgdD1lO3MuZm9jdXNlZCYmKHMuZG9tT2JzZXJ2ZXIuc3RvcCgpLHMuZG9tLmNsYXNzTGlzdC5yZW1vdmUoIlByb3NlTWlycm9yLWZvY3VzZWQiKSxzLmRvbU9ic2VydmVyLnN0YXJ0KCksdC5yZWxhdGVkVGFyZ2V0JiZzLmRvbS5jb250YWlucyh0LnJlbGF0ZWRUYXJnZXQpJiZzLmRvbU9ic2VydmVyLmN1cnJlbnRTZWxlY3Rpb24uY2xlYXIoKSxzLmZvY3VzZWQ9ITEpfSwkbi5iZWZvcmVpbnB1dD0ocyxlKT0+e2lmKCRvJiZudSYmZS5pbnB1dFR5cGU9PSJkZWxldGVDb250ZW50QmFja3dhcmQiKXtzLmRvbU9ic2VydmVyLmZsdXNoU29vbigpO2xldHtkb21DaGFuZ2VDb3VudDphfT1zLmlucHV0O3NldFRpbWVvdXQoKCk9PntpZihzLmlucHV0LmRvbUNoYW5nZUNvdW50IT1hfHwocy5kb20uYmx1cigpLHMuZm9jdXMoKSxzLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixuPT5uKHMsSjgoOCwiQmFja3NwYWNlIikpKSkpcmV0dXJuO2xldHskY3Vyc29yOnJ9PXMuc3RhdGUuc2VsZWN0aW9uO3ImJnIucG9zPjAmJnMuZGlzcGF0Y2gocy5zdGF0ZS50ci5kZWxldGUoci5wb3MtMSxyLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSl9LDUwKX19O2ZvcihsZXQgcyBpbiBEbikkbltzXT1EbltzXTtpKGFYLCJjb21wYXJlT2JqcyIpO2VsZT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIldpZGdldFR5cGUiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudG9ET009ZSx0aGlzLnNwZWM9dHx8aWcsdGhpcy5zaWRlPXRoaXMuc3BlYy5zaWRlfHwwfW1hcChlLHQsYSxyKXtsZXR7cG9zOm4sZGVsZXRlZDpvfT1lLm1hcFJlc3VsdCh0LmZyb20rcix0aGlzLnNpZGU8MD8tMToxKTtyZXR1cm4gbz9udWxsOm5ldyB0MihuLWEsbi1hLHRoaXMpfXZhbGlkKCl7cmV0dXJuITB9ZXEoZSl7cmV0dXJuIHRoaXM9PWV8fGUgaW5zdGFuY2VvZiBzJiYodGhpcy5zcGVjLmtleSYmdGhpcy5zcGVjLmtleT09ZS5zcGVjLmtleXx8dGhpcy50b0RPTT09ZS50b0RPTSYmYVgodGhpcy5zcGVjLGUuc3BlYykpfWRlc3Ryb3koZSl7dGhpcy5zcGVjLmRlc3Ryb3kmJnRoaXMuc3BlYy5kZXN0cm95KGUpfX0sc2c9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJJbmxpbmVUeXBlIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmF0dHJzPWUsdGhpcy5zcGVjPXR8fGlnfW1hcChlLHQsYSxyKXtsZXQgbj1lLm1hcCh0LmZyb20rcix0aGlzLnNwZWMuaW5jbHVzaXZlU3RhcnQ/LTE6MSktYSxvPWUubWFwKHQudG8rcix0aGlzLnNwZWMuaW5jbHVzaXZlRW5kPzE6LTEpLWE7cmV0dXJuIG4+PW8/bnVsbDpuZXcgdDIobixvLHRoaXMpfXZhbGlkKGUsdCl7cmV0dXJuIHQuZnJvbTx0LnRvfWVxKGUpe3JldHVybiB0aGlzPT1lfHxlIGluc3RhbmNlb2YgcyYmYVgodGhpcy5hdHRycyxlLmF0dHJzKSYmYVgodGhpcy5zcGVjLGUuc3BlYyl9c3RhdGljIGlzKGUpe3JldHVybiBlLnR5cGUgaW5zdGFuY2VvZiBzfWRlc3Ryb3koKXt9fSx0YXQ9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlVHlwZSIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5hdHRycz1lLHRoaXMuc3BlYz10fHxpZ31tYXAoZSx0LGEscil7bGV0IG49ZS5tYXBSZXN1bHQodC5mcm9tK3IsMSk7aWYobi5kZWxldGVkKXJldHVybiBudWxsO2xldCBvPWUubWFwUmVzdWx0KHQudG8rciwtMSk7cmV0dXJuIG8uZGVsZXRlZHx8by5wb3M8PW4ucG9zP251bGw6bmV3IHQyKG4ucG9zLWEsby5wb3MtYSx0aGlzKX12YWxpZChlLHQpe2xldHtpbmRleDphLG9mZnNldDpyfT1lLmNvbnRlbnQuZmluZEluZGV4KHQuZnJvbSksbjtyZXR1cm4gcj09dC5mcm9tJiYhKG49ZS5jaGlsZChhKSkuaXNUZXh0JiZyK24ubm9kZVNpemU9PXQudG99ZXEoZSl7cmV0dXJuIHRoaXM9PWV8fGUgaW5zdGFuY2VvZiBzJiZhWCh0aGlzLmF0dHJzLGUuYXR0cnMpJiZhWCh0aGlzLnNwZWMsZS5zcGVjKX1kZXN0cm95KCl7fX0sdDI9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEZWNvcmF0aW9uIil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLnR5cGU9YX1jb3B5KGUsdCl7cmV0dXJuIG5ldyBzKGUsdCx0aGlzLnR5cGUpfWVxKGUsdD0wKXtyZXR1cm4gdGhpcy50eXBlLmVxKGUudHlwZSkmJnRoaXMuZnJvbSt0PT1lLmZyb20mJnRoaXMudG8rdD09ZS50b31tYXAoZSx0LGEpe3JldHVybiB0aGlzLnR5cGUubWFwKGUsdGhpcyx0LGEpfXN0YXRpYyB3aWRnZXQoZSx0LGEpe3JldHVybiBuZXcgcyhlLGUsbmV3IGVsZSh0LGEpKX1zdGF0aWMgaW5saW5lKGUsdCxhLHIpe3JldHVybiBuZXcgcyhlLHQsbmV3IHNnKGEscikpfXN0YXRpYyBub2RlKGUsdCxhLHIpe3JldHVybiBuZXcgcyhlLHQsbmV3IHRhdChhLHIpKX1nZXQgc3BlYygpe3JldHVybiB0aGlzLnR5cGUuc3BlY31nZXQgaW5saW5lKCl7cmV0dXJuIHRoaXMudHlwZSBpbnN0YW5jZW9mIHNnfWdldCB3aWRnZXQoKXtyZXR1cm4gdGhpcy50eXBlIGluc3RhbmNlb2YgZWxlfX0sRXY9W10saWc9e30sTG49Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEZWNvcmF0aW9uU2V0Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmxvY2FsPWUubGVuZ3RoP2U6RXYsdGhpcy5jaGlsZHJlbj10Lmxlbmd0aD90OkV2fXN0YXRpYyBjcmVhdGUoZSx0KXtyZXR1cm4gdC5sZW5ndGg/YWxlKHQsZSwwLGlnKTpjbn1maW5kKGUsdCxhKXtsZXQgcj1bXTtyZXR1cm4gdGhpcy5maW5kSW5uZXIoZT8/MCx0Pz8xZTksciwwLGEpLHJ9ZmluZElubmVyKGUsdCxhLHIsbil7Zm9yKGxldCBvPTA7bzx0aGlzLmxvY2FsLmxlbmd0aDtvKyspe2xldCBsPXRoaXMubG9jYWxbb107bC5mcm9tPD10JiZsLnRvPj1lJiYoIW58fG4obC5zcGVjKSkmJmEucHVzaChsLmNvcHkobC5mcm9tK3IsbC50bytyKSl9Zm9yKGxldCBvPTA7bzx0aGlzLmNoaWxkcmVuLmxlbmd0aDtvKz0zKWlmKHRoaXMuY2hpbGRyZW5bb108dCYmdGhpcy5jaGlsZHJlbltvKzFdPmUpe2xldCBsPXRoaXMuY2hpbGRyZW5bb10rMTt0aGlzLmNoaWxkcmVuW28rMl0uZmluZElubmVyKGUtbCx0LWwsYSxyK2wsbil9fW1hcChlLHQsYSl7cmV0dXJuIHRoaXM9PWNufHxlLm1hcHMubGVuZ3RoPT0wP3RoaXM6dGhpcy5tYXBJbm5lcihlLHQsMCwwLGF8fGlnKX1tYXBJbm5lcihlLHQsYSxyLG4pe2xldCBvO2ZvcihsZXQgbD0wO2w8dGhpcy5sb2NhbC5sZW5ndGg7bCsrKXtsZXQgcD10aGlzLmxvY2FsW2xdLm1hcChlLGEscik7cCYmcC50eXBlLnZhbGlkKHQscCk/KG98fChvPVtdKSkucHVzaChwKTpuLm9uUmVtb3ZlJiZuLm9uUmVtb3ZlKHRoaXMubG9jYWxbbF0uc3BlYyl9cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoP2pLYSh0aGlzLmNoaWxkcmVuLG98fFtdLGUsdCxhLHIsbik6bz9uZXcgcyhvLnNvcnQocmcpLEV2KTpjbn1hZGQoZSx0KXtyZXR1cm4gdC5sZW5ndGg/dGhpcz09Y24/cy5jcmVhdGUoZSx0KTp0aGlzLmFkZElubmVyKGUsdCwwKTp0aGlzfWFkZElubmVyKGUsdCxhKXtsZXQgcixuPTA7ZS5mb3JFYWNoKChsLHApPT57bGV0IGQ9cCthLHU7aWYodT1JcGEodCxsLGQpKXtmb3Iocnx8KHI9dGhpcy5jaGlsZHJlbi5zbGljZSgpKTtuPHIubGVuZ3RoJiZyW25dPHA7KW4rPTM7cltuXT09cD9yW24rMl09cltuKzJdLmFkZElubmVyKGwsdSxkKzEpOnIuc3BsaWNlKG4sMCxwLHArbC5ub2RlU2l6ZSxhbGUodSxsLGQrMSxpZykpLG4rPTN9fSk7bGV0IG89UHBhKG4/QXBhKHQpOnQsLWEpO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKW9bbF0udHlwZS52YWxpZChlLG9bbF0pfHxvLnNwbGljZShsLS0sMSk7cmV0dXJuIG5ldyBzKG8ubGVuZ3RoP3RoaXMubG9jYWwuY29uY2F0KG8pLnNvcnQocmcpOnRoaXMubG9jYWwscnx8dGhpcy5jaGlsZHJlbil9cmVtb3ZlKGUpe3JldHVybiBlLmxlbmd0aD09MHx8dGhpcz09Y24/dGhpczp0aGlzLnJlbW92ZUlubmVyKGUsMCl9cmVtb3ZlSW5uZXIoZSx0KXtsZXQgYT10aGlzLmNoaWxkcmVuLHI9dGhpcy5sb2NhbDtmb3IobGV0IG49MDtuPGEubGVuZ3RoO24rPTMpe2xldCBvLGw9YVtuXSt0LHA9YVtuKzFdK3Q7Zm9yKGxldCB1PTAsYzt1PGUubGVuZ3RoO3UrKykoYz1lW3VdKSYmYy5mcm9tPmwmJmMudG88cCYmKGVbdV09bnVsbCwob3x8KG89W10pKS5wdXNoKGMpKTtpZighbyljb250aW51ZTthPT10aGlzLmNoaWxkcmVuJiYoYT10aGlzLmNoaWxkcmVuLnNsaWNlKCkpO2xldCBkPWFbbisyXS5yZW1vdmVJbm5lcihvLGwrMSk7ZCE9Y24/YVtuKzJdPWQ6KGEuc3BsaWNlKG4sMyksbi09Myl9aWYoci5sZW5ndGgpe2ZvcihsZXQgbj0wLG87bjxlLmxlbmd0aDtuKyspaWYobz1lW25dKWZvcihsZXQgbD0wO2w8ci5sZW5ndGg7bCsrKXJbbF0uZXEobyx0KSYmKHI9PXRoaXMubG9jYWwmJihyPXRoaXMubG9jYWwuc2xpY2UoKSksci5zcGxpY2UobC0tLDEpKX1yZXR1cm4gYT09dGhpcy5jaGlsZHJlbiYmcj09dGhpcy5sb2NhbD90aGlzOnIubGVuZ3RofHxhLmxlbmd0aD9uZXcgcyhyLGEpOmNufWZvckNoaWxkKGUsdCl7aWYodGhpcz09Y24pcmV0dXJuIHRoaXM7aWYodC5pc0xlYWYpcmV0dXJuIHMuZW1wdHk7bGV0IGEscjtmb3IobGV0IGw9MDtsPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2wrPTMpaWYodGhpcy5jaGlsZHJlbltsXT49ZSl7dGhpcy5jaGlsZHJlbltsXT09ZSYmKGE9dGhpcy5jaGlsZHJlbltsKzJdKTticmVha31sZXQgbj1lKzEsbz1uK3QuY29udGVudC5zaXplO2ZvcihsZXQgbD0wO2w8dGhpcy5sb2NhbC5sZW5ndGg7bCsrKXtsZXQgcD10aGlzLmxvY2FsW2xdO2lmKHAuZnJvbTxvJiZwLnRvPm4mJnAudHlwZSBpbnN0YW5jZW9mIHNnKXtsZXQgZD1NYXRoLm1heChuLHAuZnJvbSktbix1PU1hdGgubWluKG8scC50byktbjtkPHUmJihyfHwocj1bXSkpLnB1c2gocC5jb3B5KGQsdSkpfX1pZihyKXtsZXQgbD1uZXcgcyhyLnNvcnQocmcpLEV2KTtyZXR1cm4gYT9uZXcgdGxlKFtsLGFdKTpsfXJldHVybiBhfHxjbn1lcShlKXtpZih0aGlzPT1lKXJldHVybiEwO2lmKCEoZSBpbnN0YW5jZW9mIHMpfHx0aGlzLmxvY2FsLmxlbmd0aCE9ZS5sb2NhbC5sZW5ndGh8fHRoaXMuY2hpbGRyZW4ubGVuZ3RoIT1lLmNoaWxkcmVuLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMubG9jYWwubGVuZ3RoO3QrKylpZighdGhpcy5sb2NhbFt0XS5lcShlLmxvY2FsW3RdKSlyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrPTMpaWYodGhpcy5jaGlsZHJlblt0XSE9ZS5jaGlsZHJlblt0XXx8dGhpcy5jaGlsZHJlblt0KzFdIT1lLmNoaWxkcmVuW3QrMV18fCF0aGlzLmNoaWxkcmVuW3QrMl0uZXEoZS5jaGlsZHJlblt0KzJdKSlyZXR1cm4hMTtyZXR1cm4hMH1sb2NhbHMoZSl7cmV0dXJuIGFhdCh0aGlzLmxvY2Fsc0lubmVyKGUpKX1sb2NhbHNJbm5lcihlKXtpZih0aGlzPT1jbilyZXR1cm4gRXY7aWYoZS5pbmxpbmVDb250ZW50fHwhdGhpcy5sb2NhbC5zb21lKHNnLmlzKSlyZXR1cm4gdGhpcy5sb2NhbDtsZXQgdD1bXTtmb3IobGV0IGE9MDthPHRoaXMubG9jYWwubGVuZ3RoO2ErKyl0aGlzLmxvY2FsW2FdLnR5cGUgaW5zdGFuY2VvZiBzZ3x8dC5wdXNoKHRoaXMubG9jYWxbYV0pO3JldHVybiB0fWZvckVhY2hTZXQoZSl7ZSh0aGlzKX19O0xuLmVtcHR5PW5ldyBMbihbXSxbXSksTG4ucmVtb3ZlT3ZlcmxhcD1hYXQ7Y249TG4uZW1wdHksdGxlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRGVjb3JhdGlvbkdyb3VwIil9Y29uc3RydWN0b3IoZSl7dGhpcy5tZW1iZXJzPWV9bWFwKGUsdCl7bGV0IGE9dGhpcy5tZW1iZXJzLm1hcChyPT5yLm1hcChlLHQsaWcpKTtyZXR1cm4gcy5mcm9tKGEpfWZvckNoaWxkKGUsdCl7aWYodC5pc0xlYWYpcmV0dXJuIExuLmVtcHR5O2xldCBhPVtdO2ZvcihsZXQgcj0wO3I8dGhpcy5tZW1iZXJzLmxlbmd0aDtyKyspe2xldCBuPXRoaXMubWVtYmVyc1tyXS5mb3JDaGlsZChlLHQpO24hPWNuJiYobiBpbnN0YW5jZW9mIHM/YT1hLmNvbmNhdChuLm1lbWJlcnMpOmEucHVzaChuKSl9cmV0dXJuIHMuZnJvbShhKX1lcShlKXtpZighKGUgaW5zdGFuY2VvZiBzKXx8ZS5tZW1iZXJzLmxlbmd0aCE9dGhpcy5tZW1iZXJzLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMubWVtYmVycy5sZW5ndGg7dCsrKWlmKCF0aGlzLm1lbWJlcnNbdF0uZXEoZS5tZW1iZXJzW3RdKSlyZXR1cm4hMTtyZXR1cm4hMH1sb2NhbHMoZSl7bGV0IHQsYT0hMDtmb3IobGV0IHI9MDtyPHRoaXMubWVtYmVycy5sZW5ndGg7cisrKXtsZXQgbj10aGlzLm1lbWJlcnNbcl0ubG9jYWxzSW5uZXIoZSk7aWYobi5sZW5ndGgpaWYoIXQpdD1uO2Vsc2V7YSYmKHQ9dC5zbGljZSgpLGE9ITEpO2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXQucHVzaChuW29dKX19cmV0dXJuIHQ/YWF0KGE/dDp0LnNvcnQocmcpKTpFdn1zdGF0aWMgZnJvbShlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gY247Y2FzZSAxOnJldHVybiBlWzBdO2RlZmF1bHQ6cmV0dXJuIG5ldyBzKGUuZXZlcnkodD0+dCBpbnN0YW5jZW9mIExuKT9lOmUucmVkdWNlKCh0LGEpPT50LmNvbmNhdChhIGluc3RhbmNlb2YgTG4/YTphLm1lbWJlcnMpLFtdKSl9fWZvckVhY2hTZXQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLm1lbWJlcnMubGVuZ3RoO3QrKyl0aGlzLm1lbWJlcnNbdF0uZm9yRWFjaFNldChlKX19O2koakthLCJtYXBDaGlsZHJlbiIpO2koUHBhLCJtb3ZlU3BhbnMiKTtpKFZLYSwibWFwQW5kR2F0aGVyUmVtYWluaW5nRGVjb3JhdGlvbnMiKTtpKElwYSwidGFrZVNwYW5zRm9yTm9kZSIpO2koQXBhLCJ3aXRob3V0TnVsbHMiKTtpKGFsZSwiYnVpbGRUcmVlIik7aShyZywiYnlQb3MiKTtpKGFhdCwicmVtb3ZlT3ZlcmxhcCIpO2koTnBhLCJpbnNlcnRBaGVhZCIpO2koc2F0LCJ2aWV3RGVjb3JhdGlvbnMiKTtVS2E9e2NoaWxkTGlzdDohMCxjaGFyYWN0ZXJEYXRhOiEwLGNoYXJhY3RlckRhdGFPbGRWYWx1ZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZU9sZFZhbHVlOiEwLHN1YnRyZWU6ITB9LFdLYT1DbCYmVGg8PTExLGlhdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTZWxlY3Rpb25TdGF0ZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hbmNob3JOb2RlPW51bGwsdGhpcy5hbmNob3JPZmZzZXQ9MCx0aGlzLmZvY3VzTm9kZT1udWxsLHRoaXMuZm9jdXNPZmZzZXQ9MH1zZXQoZSl7dGhpcy5hbmNob3JOb2RlPWUuYW5jaG9yTm9kZSx0aGlzLmFuY2hvck9mZnNldD1lLmFuY2hvck9mZnNldCx0aGlzLmZvY3VzTm9kZT1lLmZvY3VzTm9kZSx0aGlzLmZvY3VzT2Zmc2V0PWUuZm9jdXNPZmZzZXR9Y2xlYXIoKXt0aGlzLmFuY2hvck5vZGU9dGhpcy5mb2N1c05vZGU9bnVsbH1lcShlKXtyZXR1cm4gZS5hbmNob3JOb2RlPT10aGlzLmFuY2hvck5vZGUmJmUuYW5jaG9yT2Zmc2V0PT10aGlzLmFuY2hvck9mZnNldCYmZS5mb2N1c05vZGU9PXRoaXMuZm9jdXNOb2RlJiZlLmZvY3VzT2Zmc2V0PT10aGlzLmZvY3VzT2Zmc2V0fX0scmF0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkRPTU9ic2VydmVyIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnZpZXc9ZSx0aGlzLmhhbmRsZURPTUNoYW5nZT10LHRoaXMucXVldWU9W10sdGhpcy5mbHVzaGluZ1Nvb249LTEsdGhpcy5vYnNlcnZlcj1udWxsLHRoaXMuY3VycmVudFNlbGVjdGlvbj1uZXcgaWF0LHRoaXMub25DaGFyRGF0YT1udWxsLHRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzPSExLHRoaXMubGFzdENoYW5nZWRUZXh0Tm9kZT1udWxsLHRoaXMub2JzZXJ2ZXI9d2luZG93Lk11dGF0aW9uT2JzZXJ2ZXImJm5ldyB3aW5kb3cuTXV0YXRpb25PYnNlcnZlcihhPT57Zm9yKGxldCByPTA7cjxhLmxlbmd0aDtyKyspdGhpcy5xdWV1ZS5wdXNoKGFbcl0pO0NsJiZUaDw9MTEmJmEuc29tZShyPT5yLnR5cGU9PSJjaGlsZExpc3QiJiZyLnJlbW92ZWROb2Rlcy5sZW5ndGh8fHIudHlwZT09ImNoYXJhY3RlckRhdGEiJiZyLm9sZFZhbHVlLmxlbmd0aD5yLnRhcmdldC5ub2RlVmFsdWUubGVuZ3RoKT90aGlzLmZsdXNoU29vbigpOmxuJiZlLmNvbXBvc2luZyYmYS5zb21lKHI9PnIudHlwZT09ImNoaWxkTGlzdCImJnIudGFyZ2V0Lm5vZGVOYW1lPT0iVFIiKT8oZS5pbnB1dC5iYWRTYWZhcmlDb21wb3NpdGlvbj0hMCx0aGlzLmZsdXNoU29vbigpKTp0aGlzLmZsdXNoKCl9KSxXS2EmJih0aGlzLm9uQ2hhckRhdGE9YT0+e3RoaXMucXVldWUucHVzaCh7dGFyZ2V0OmEudGFyZ2V0LHR5cGU6ImNoYXJhY3RlckRhdGEiLG9sZFZhbHVlOmEucHJldlZhbHVlfSksdGhpcy5mbHVzaFNvb24oKX0pLHRoaXMub25TZWxlY3Rpb25DaGFuZ2U9dGhpcy5vblNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpfWZsdXNoU29vbigpe3RoaXMuZmx1c2hpbmdTb29uPDAmJih0aGlzLmZsdXNoaW5nU29vbj13aW5kb3cuc2V0VGltZW91dCgoKT0+e3RoaXMuZmx1c2hpbmdTb29uPS0xLHRoaXMuZmx1c2goKX0sMjApKX1mb3JjZUZsdXNoKCl7dGhpcy5mbHVzaGluZ1Nvb24+LTEmJih3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuZmx1c2hpbmdTb29uKSx0aGlzLmZsdXNoaW5nU29vbj0tMSx0aGlzLmZsdXNoKCkpfXN0YXJ0KCl7dGhpcy5vYnNlcnZlciYmKHRoaXMub2JzZXJ2ZXIudGFrZVJlY29yZHMoKSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3LmRvbSxVS2EpKSx0aGlzLm9uQ2hhckRhdGEmJnRoaXMudmlldy5kb20uYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIix0aGlzLm9uQ2hhckRhdGEpLHRoaXMuY29ubmVjdFNlbGVjdGlvbigpfXN0b3AoKXtpZih0aGlzLm9ic2VydmVyKXtsZXQgZT10aGlzLm9ic2VydmVyLnRha2VSZWNvcmRzKCk7aWYoZS5sZW5ndGgpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMucXVldWUucHVzaChlW3RdKTt3aW5kb3cuc2V0VGltZW91dCgoKT0+dGhpcy5mbHVzaCgpLDIwKX10aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKX10aGlzLm9uQ2hhckRhdGEmJnRoaXMudmlldy5kb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIix0aGlzLm9uQ2hhckRhdGEpLHRoaXMuZGlzY29ubmVjdFNlbGVjdGlvbigpfWNvbm5lY3RTZWxlY3Rpb24oKXt0aGlzLnZpZXcuZG9tLm93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlKX1kaXNjb25uZWN0U2VsZWN0aW9uKCl7dGhpcy52aWV3LmRvbS5vd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5vblNlbGVjdGlvbkNoYW5nZSl9c3VwcHJlc3NTZWxlY3Rpb25VcGRhdGVzKCl7dGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXM9ITAsc2V0VGltZW91dCgoKT0+dGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXM9ITEsNTApfW9uU2VsZWN0aW9uQ2hhbmdlKCl7aWYocHBhKHRoaXMudmlldykpe2lmKHRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzKXJldHVybiBjdSh0aGlzLnZpZXcpO2lmKENsJiZUaDw9MTEmJiF0aGlzLnZpZXcuc3RhdGUuc2VsZWN0aW9uLmVtcHR5KXtsZXQgZT10aGlzLnZpZXcuZG9tU2VsZWN0aW9uUmFuZ2UoKTtpZihlLmZvY3VzTm9kZSYmUTgoZS5mb2N1c05vZGUsZS5mb2N1c09mZnNldCxlLmFuY2hvck5vZGUsZS5hbmNob3JPZmZzZXQpKXJldHVybiB0aGlzLmZsdXNoU29vbigpfXRoaXMuZmx1c2goKX19c2V0Q3VyU2VsZWN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uLnNldCh0aGlzLnZpZXcuZG9tU2VsZWN0aW9uUmFuZ2UoKSl9aWdub3JlU2VsZWN0aW9uQ2hhbmdlKGUpe2lmKCFlLmZvY3VzTm9kZSlyZXR1cm4hMDtsZXQgdD1uZXcgU2V0LGE7Zm9yKGxldCBuPWUuZm9jdXNOb2RlO247bj16dihuKSl0LmFkZChuKTtmb3IobGV0IG49ZS5hbmNob3JOb2RlO247bj16dihuKSlpZih0LmhhcyhuKSl7YT1uO2JyZWFrfWxldCByPWEmJnRoaXMudmlldy5kb2NWaWV3Lm5lYXJlc3REZXNjKGEpO2lmKHImJnIuaWdub3JlTXV0YXRpb24oe3R5cGU6InNlbGVjdGlvbiIsdGFyZ2V0OmEubm9kZVR5cGU9PTM/YS5wYXJlbnROb2RlOmF9KSlyZXR1cm4gdGhpcy5zZXRDdXJTZWxlY3Rpb24oKSwhMH1wZW5kaW5nUmVjb3Jkcygpe2lmKHRoaXMub2JzZXJ2ZXIpZm9yKGxldCBlIG9mIHRoaXMub2JzZXJ2ZXIudGFrZVJlY29yZHMoKSl0aGlzLnF1ZXVlLnB1c2goZSk7cmV0dXJuIHRoaXMucXVldWV9Zmx1c2goKXtsZXR7dmlldzplfT10aGlzO2lmKCFlLmRvY1ZpZXd8fHRoaXMuZmx1c2hpbmdTb29uPi0xKXJldHVybjtsZXQgdD10aGlzLnBlbmRpbmdSZWNvcmRzKCk7dC5sZW5ndGgmJih0aGlzLnF1ZXVlPVtdKTtsZXQgYT1lLmRvbVNlbGVjdGlvblJhbmdlKCkscj0hdGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXMmJiF0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZXEoYSkmJnBwYShlKSYmIXRoaXMuaWdub3JlU2VsZWN0aW9uQ2hhbmdlKGEpLG49LTEsbz0tMSxsPSExLHA9W107aWYoZS5lZGl0YWJsZSlmb3IobGV0IHU9MDt1PHQubGVuZ3RoO3UrKyl7bGV0IGM9dGhpcy5yZWdpc3Rlck11dGF0aW9uKHRbdV0scCk7YyYmKG49bjwwP2MuZnJvbTpNYXRoLm1pbihjLmZyb20sbiksbz1vPDA/Yy50bzpNYXRoLm1heChjLnRvLG8pLGMudHlwZU92ZXImJihsPSEwKSl9aWYocC5zb21lKHU9PnUubm9kZU5hbWU9PSJCUiIpJiYoZS5pbnB1dC5sYXN0S2V5Q29kZT09OHx8ZS5pbnB1dC5sYXN0S2V5Q29kZT09NDYpKXtmb3IobGV0IHUgb2YgcClpZih1Lm5vZGVOYW1lPT0iQlIiJiZ1LnBhcmVudE5vZGUpe2xldCBjPXUubmV4dFNpYmxpbmc7Zm9yKDtjJiZjLm5vZGVUeXBlPT0xOyl7aWYoYy5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpe3UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh1KTticmVha31jPWMuZmlyc3RDaGlsZH19fWVsc2UgaWYoRmMmJnAubGVuZ3RoKXtsZXQgdT1wLmZpbHRlcihjPT5jLm5vZGVOYW1lPT0iQlIiKTtpZih1Lmxlbmd0aD09Mil7bGV0W2MsYl09dTtjLnBhcmVudE5vZGUmJmMucGFyZW50Tm9kZS5wYXJlbnROb2RlPT1iLnBhcmVudE5vZGU/Yi5yZW1vdmUoKTpjLnJlbW92ZSgpfWVsc2V7bGV0e2ZvY3VzTm9kZTpjfT10aGlzLmN1cnJlbnRTZWxlY3Rpb247Zm9yKGxldCBiIG9mIHUpe2xldCB2PWIucGFyZW50Tm9kZTt2JiZ2Lm5vZGVOYW1lPT0iTEkiJiYoIWN8fFlLYShlLGMpIT12KSYmYi5yZW1vdmUoKX19fWxldCBkPW51bGw7bjwwJiZyJiZlLmlucHV0Lmxhc3RGb2N1cz5EYXRlLm5vdygpLTIwMCYmTWF0aC5tYXgoZS5pbnB1dC5sYXN0VG91Y2gsZS5pbnB1dC5sYXN0Q2xpY2sudGltZSk8RGF0ZS5ub3coKS0zMDAmJlduZShhKSYmKGQ9QnR0KGUpKSYmZC5lcShRdC5uZWFyKGUuc3RhdGUuZG9jLnJlc29sdmUoMCksMSkpPyhlLmlucHV0Lmxhc3RGb2N1cz0wLGN1KGUpLHRoaXMuY3VycmVudFNlbGVjdGlvbi5zZXQoYSksZS5zY3JvbGxUb1NlbGVjdGlvbigpKToobj4tMXx8cikmJihuPi0xJiYoZS5kb2NWaWV3Lm1hcmtEaXJ0eShuLG8pLEdLYShlKSksZS5pbnB1dC5iYWRTYWZhcmlDb21wb3NpdGlvbiYmKGUuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb249ITEsWkthKGUscCkpLHRoaXMuaGFuZGxlRE9NQ2hhbmdlKG4sbyxsLHApLGUuZG9jVmlldyYmZS5kb2NWaWV3LmRpcnR5P2UudXBkYXRlU3RhdGUoZS5zdGF0ZSk6dGhpcy5jdXJyZW50U2VsZWN0aW9uLmVxKGEpfHxjdShlKSx0aGlzLmN1cnJlbnRTZWxlY3Rpb24uc2V0KGEpKX1yZWdpc3Rlck11dGF0aW9uKGUsdCl7aWYodC5pbmRleE9mKGUudGFyZ2V0KT4tMSlyZXR1cm4gbnVsbDtsZXQgYT10aGlzLnZpZXcuZG9jVmlldy5uZWFyZXN0RGVzYyhlLnRhcmdldCk7aWYoZS50eXBlPT0iYXR0cmlidXRlcyImJihhPT10aGlzLnZpZXcuZG9jVmlld3x8ZS5hdHRyaWJ1dGVOYW1lPT0iY29udGVudGVkaXRhYmxlInx8ZS5hdHRyaWJ1dGVOYW1lPT0ic3R5bGUiJiYhZS5vbGRWYWx1ZSYmIWUudGFyZ2V0LmdldEF0dHJpYnV0ZSgic3R5bGUiKSl8fCFhfHxhLmlnbm9yZU11dGF0aW9uKGUpKXJldHVybiBudWxsO2lmKGUudHlwZT09ImNoaWxkTGlzdCIpe2ZvcihsZXQgdT0wO3U8ZS5hZGRlZE5vZGVzLmxlbmd0aDt1Kyspe2xldCBjPWUuYWRkZWROb2Rlc1t1XTt0LnB1c2goYyksYy5ub2RlVHlwZT09MyYmKHRoaXMubGFzdENoYW5nZWRUZXh0Tm9kZT1jKX1pZihhLmNvbnRlbnRET00mJmEuY29udGVudERPTSE9YS5kb20mJiFhLmNvbnRlbnRET00uY29udGFpbnMoZS50YXJnZXQpKXJldHVybntmcm9tOmEucG9zQmVmb3JlLHRvOmEucG9zQWZ0ZXJ9O2xldCByPWUucHJldmlvdXNTaWJsaW5nLG49ZS5uZXh0U2libGluZztpZihDbCYmVGg8PTExJiZlLmFkZGVkTm9kZXMubGVuZ3RoKWZvcihsZXQgdT0wO3U8ZS5hZGRlZE5vZGVzLmxlbmd0aDt1Kyspe2xldHtwcmV2aW91c1NpYmxpbmc6YyxuZXh0U2libGluZzpifT1lLmFkZGVkTm9kZXNbdV07KCFjfHxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUuYWRkZWROb2RlcyxjKTwwKSYmKHI9YyksKCFifHxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUuYWRkZWROb2RlcyxiKTwwKSYmKG49Yil9bGV0IG89ciYmci5wYXJlbnROb2RlPT1lLnRhcmdldD9UbyhyKSsxOjAsbD1hLmxvY2FsUG9zRnJvbURPTShlLnRhcmdldCxvLC0xKSxwPW4mJm4ucGFyZW50Tm9kZT09ZS50YXJnZXQ/VG8obik6ZS50YXJnZXQuY2hpbGROb2Rlcy5sZW5ndGgsZD1hLmxvY2FsUG9zRnJvbURPTShlLnRhcmdldCxwLDEpO3JldHVybntmcm9tOmwsdG86ZH19ZWxzZSByZXR1cm4gZS50eXBlPT0iYXR0cmlidXRlcyI/e2Zyb206YS5wb3NBdFN0YXJ0LWEuYm9yZGVyLHRvOmEucG9zQXRFbmQrYS5ib3JkZXJ9Oih0aGlzLmxhc3RDaGFuZ2VkVGV4dE5vZGU9ZS50YXJnZXQse2Zyb206YS5wb3NBdFN0YXJ0LHRvOmEucG9zQXRFbmQsdHlwZU92ZXI6ZS50YXJnZXQubm9kZVZhbHVlPT1lLm9sZFZhbHVlfSl9fSxScGE9bmV3IFdlYWtNYXAsT3BhPSExO2koR0thLCJjaGVja0NTUyIpO2koRnBhLCJyYW5nZVRvU2VsZWN0aW9uUmFuZ2UiKTtpKEtLYSwic2FmYXJpU2hhZG93U2VsZWN0aW9uUmFuZ2UiKTtpKFlLYSwiYmxvY2tQYXJlbnQiKTtpKFpLYSwiZml4VXBCYWRTYWZhcmlDb21wb3NpdGlvbiIpO2koWEthLCJwYXJzZUJldHdlZW4iKTtpKFFLYSwicnVsZUZyb21Ob2RlIik7SkthPS9eKGF8YWJicnxhY3JvbnltfGJ8YmRbaW9dfGJpZ3xicnxidXR0b258Y2l0ZXxjb2RlfGRhdGEobGlzdCk/fGRlbHxkZm58ZW18aXxpbWd8aW5zfGtiZHxsYWJlbHxtYXB8bWFya3xtZXRlcnxvdXRwdXR8cXxydWJ5fHN8c2FtcHxzbWFsbHxzcGFufHN0cm9uZ3xzdVticF18dGltZXx1fHR0fHZhcikkL2k7aShlWWEsInJlYWRET01DaGFuZ2UiKTtpKEJwYSwicmVzb2x2ZVNlbGVjdGlvbiIpO2kodFlhLCJpc01hcmtDaGFuZ2UiKTtpKGFZYSwibG9va3NMaWtlQmFja3NwYWNlIik7aShvYXQsInNraXBDbG9zaW5nQW5kT3BlbmluZyIpO2koc1lhLCJmaW5kRGlmZiIpO2koSHBhLCJpc1N1cnJvZ2F0ZVBhaXIiKTtpWWE9V3R0LHJZYT1KWixQdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFZGl0b3JWaWV3Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9yb290PW51bGwsdGhpcy5mb2N1c2VkPSExLHRoaXMudHJhY2tXcml0ZXM9bnVsbCx0aGlzLm1vdW50ZWQ9ITEsdGhpcy5tYXJrQ3Vyc29yPW51bGwsdGhpcy5jdXJzb3JXcmFwcGVyPW51bGwsdGhpcy5sYXN0U2VsZWN0ZWRWaWV3RGVzYz12b2lkIDAsdGhpcy5pbnB1dD1uZXcgWXR0LHRoaXMucHJldkRpcmVjdFBsdWdpbnM9W10sdGhpcy5wbHVnaW5WaWV3cz1bXSx0aGlzLnJlcXVpcmVzR2Vja29IYWNrTm9kZT0hMSx0aGlzLmRyYWdnaW5nPW51bGwsdGhpcy5fcHJvcHM9dCx0aGlzLnN0YXRlPXQuc3RhdGUsdGhpcy5kaXJlY3RQbHVnaW5zPXQucGx1Z2luc3x8W10sdGhpcy5kaXJlY3RQbHVnaW5zLmZvckVhY2goV3BhKSx0aGlzLmRpc3BhdGNoPXRoaXMuZGlzcGF0Y2guYmluZCh0aGlzKSx0aGlzLmRvbT1lJiZlLm1vdW50fHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlJiYoZS5hcHBlbmRDaGlsZD9lLmFwcGVuZENoaWxkKHRoaXMuZG9tKTp0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHRoaXMuZG9tKTplLm1vdW50JiYodGhpcy5tb3VudGVkPSEwKSksdGhpcy5lZGl0YWJsZT1WcGEodGhpcyksanBhKHRoaXMpLHRoaXMubm9kZVZpZXdzPVVwYSh0aGlzKSx0aGlzLmRvY1ZpZXc9dHBhKHRoaXMuc3RhdGUuZG9jLHFwYSh0aGlzKSxzYXQodGhpcyksdGhpcy5kb20sdGhpcyksdGhpcy5kb21PYnNlcnZlcj1uZXcgcmF0KHRoaXMsKGEscixuLG8pPT5lWWEodGhpcyxhLHIsbixvKSksdGhpcy5kb21PYnNlcnZlci5zdGFydCgpLFNLYSh0aGlzKSx0aGlzLnVwZGF0ZVBsdWdpblZpZXdzKCl9Z2V0IGNvbXBvc2luZygpe3JldHVybiB0aGlzLmlucHV0LmNvbXBvc2luZ31nZXQgcHJvcHMoKXtpZih0aGlzLl9wcm9wcy5zdGF0ZSE9dGhpcy5zdGF0ZSl7bGV0IGU9dGhpcy5fcHJvcHM7dGhpcy5fcHJvcHM9e307Zm9yKGxldCB0IGluIGUpdGhpcy5fcHJvcHNbdF09ZVt0XTt0aGlzLl9wcm9wcy5zdGF0ZT10aGlzLnN0YXRlfXJldHVybiB0aGlzLl9wcm9wc311cGRhdGUoZSl7ZS5oYW5kbGVET01FdmVudHMhPXRoaXMuX3Byb3BzLmhhbmRsZURPTUV2ZW50cyYmWnR0KHRoaXMpO2xldCB0PXRoaXMuX3Byb3BzO3RoaXMuX3Byb3BzPWUsZS5wbHVnaW5zJiYoZS5wbHVnaW5zLmZvckVhY2goV3BhKSx0aGlzLmRpcmVjdFBsdWdpbnM9ZS5wbHVnaW5zKSx0aGlzLnVwZGF0ZVN0YXRlSW5uZXIoZS5zdGF0ZSx0KX1zZXRQcm9wcyhlKXtsZXQgdD17fTtmb3IobGV0IGEgaW4gdGhpcy5fcHJvcHMpdFthXT10aGlzLl9wcm9wc1thXTt0LnN0YXRlPXRoaXMuc3RhdGU7Zm9yKGxldCBhIGluIGUpdFthXT1lW2FdO3RoaXMudXBkYXRlKHQpfXVwZGF0ZVN0YXRlKGUpe3RoaXMudXBkYXRlU3RhdGVJbm5lcihlLHRoaXMuX3Byb3BzKX11cGRhdGVTdGF0ZUlubmVyKGUsdCl7dmFyIGE7bGV0IHI9dGhpcy5zdGF0ZSxuPSExLG89ITE7ZS5zdG9yZWRNYXJrcyYmdGhpcy5jb21wb3NpbmcmJihEcGEodGhpcyksbz0hMCksdGhpcy5zdGF0ZT1lO2xldCBsPXIucGx1Z2lucyE9ZS5wbHVnaW5zfHx0aGlzLl9wcm9wcy5wbHVnaW5zIT10LnBsdWdpbnM7aWYobHx8dGhpcy5fcHJvcHMucGx1Z2lucyE9dC5wbHVnaW5zfHx0aGlzLl9wcm9wcy5ub2RlVmlld3MhPXQubm9kZVZpZXdzKXtsZXQgdj1VcGEodGhpcyk7bllhKHYsdGhpcy5ub2RlVmlld3MpJiYodGhpcy5ub2RlVmlld3M9dixuPSEwKX0obHx8dC5oYW5kbGVET01FdmVudHMhPXRoaXMuX3Byb3BzLmhhbmRsZURPTUV2ZW50cykmJlp0dCh0aGlzKSx0aGlzLmVkaXRhYmxlPVZwYSh0aGlzKSxqcGEodGhpcyk7bGV0IHA9c2F0KHRoaXMpLGQ9cXBhKHRoaXMpLHU9ci5wbHVnaW5zIT1lLnBsdWdpbnMmJiFyLmRvYy5lcShlLmRvYyk/InJlc2V0IjplLnNjcm9sbFRvU2VsZWN0aW9uPnIuc2Nyb2xsVG9TZWxlY3Rpb24/InRvIHNlbGVjdGlvbiI6InByZXNlcnZlIixjPW58fCF0aGlzLmRvY1ZpZXcubWF0Y2hlc05vZGUoZS5kb2MsZCxwKTsoY3x8IWUuc2VsZWN0aW9uLmVxKHIuc2VsZWN0aW9uKSkmJihvPSEwKTtsZXQgYj11PT0icHJlc2VydmUiJiZvJiZ0aGlzLmRvbS5zdHlsZS5vdmVyZmxvd0FuY2hvcj09bnVsbCYmSEdhKHRoaXMpO2lmKG8pe3RoaXMuZG9tT2JzZXJ2ZXIuc3RvcCgpO2xldCB2PWMmJihDbHx8JG8pJiYhdGhpcy5jb21wb3NpbmcmJiFyLnNlbGVjdGlvbi5lbXB0eSYmIWUuc2VsZWN0aW9uLmVtcHR5JiZvWWEoci5zZWxlY3Rpb24sZS5zZWxlY3Rpb24pO2lmKGMpe2xldCB4PSRvP3RoaXMudHJhY2tXcml0ZXM9dGhpcy5kb21TZWxlY3Rpb25SYW5nZSgpLmZvY3VzTm9kZTpudWxsO3RoaXMuY29tcG9zaW5nJiYodGhpcy5pbnB1dC5jb21wb3NpdGlvbk5vZGU9TkthKHRoaXMpKSwobnx8IXRoaXMuZG9jVmlldy51cGRhdGUoZS5kb2MsZCxwLHRoaXMpKSYmKHRoaXMuZG9jVmlldy51cGRhdGVPdXRlckRlY28oZCksdGhpcy5kb2NWaWV3LmRlc3Ryb3koKSx0aGlzLmRvY1ZpZXc9dHBhKGUuZG9jLGQscCx0aGlzLmRvbSx0aGlzKSkseCYmKCF0aGlzLnRyYWNrV3JpdGVzfHwhdGhpcy5kb20uY29udGFpbnModGhpcy50cmFja1dyaXRlcykpJiYodj0hMCl9dnx8ISh0aGlzLmlucHV0Lm1vdXNlRG93biYmdGhpcy5kb21PYnNlcnZlci5jdXJyZW50U2VsZWN0aW9uLmVxKHRoaXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSkmJmxLYSh0aGlzKSk/Y3UodGhpcyx2KTooZHBhKHRoaXMsZS5zZWxlY3Rpb24pLHRoaXMuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCkpLHRoaXMuZG9tT2JzZXJ2ZXIuc3RhcnQoKX10aGlzLnVwZGF0ZVBsdWdpblZpZXdzKHIpLCEoKGE9dGhpcy5kcmFnZ2luZyk9PT1udWxsfHxhPT09dm9pZCAwKSYmYS5ub2RlJiYhci5kb2MuZXEoZS5kb2MpJiZ0aGlzLnVwZGF0ZURyYWdnZWROb2RlKHRoaXMuZHJhZ2dpbmcsciksdT09InJlc2V0Ij90aGlzLmRvbS5zY3JvbGxUb3A9MDp1PT0idG8gc2VsZWN0aW9uIj90aGlzLnNjcm9sbFRvU2VsZWN0aW9uKCk6YiYmcUdhKGIpfXNjcm9sbFRvU2VsZWN0aW9uKCl7bGV0IGU9dGhpcy5kb21TZWxlY3Rpb25SYW5nZSgpLmZvY3VzTm9kZTtpZighKCFlfHwhdGhpcy5kb20uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSkpKXtpZighdGhpcy5zb21lUHJvcCgiaGFuZGxlU2Nyb2xsVG9TZWxlY3Rpb24iLHQ9PnQodGhpcykpKWlmKHRoaXMuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgRnQpe2xldCB0PXRoaXMuZG9jVmlldy5kb21BZnRlclBvcyh0aGlzLnN0YXRlLnNlbGVjdGlvbi5mcm9tKTt0Lm5vZGVUeXBlPT0xJiZqdWEodGhpcyx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGUpfWVsc2UganVhKHRoaXMsdGhpcy5jb29yZHNBdFBvcyh0aGlzLnN0YXRlLnNlbGVjdGlvbi5oZWFkLDEpLGUpfX1kZXN0cm95UGx1Z2luVmlld3MoKXtsZXQgZTtmb3IoO2U9dGhpcy5wbHVnaW5WaWV3cy5wb3AoKTspZS5kZXN0cm95JiZlLmRlc3Ryb3koKX11cGRhdGVQbHVnaW5WaWV3cyhlKXtpZighZXx8ZS5wbHVnaW5zIT10aGlzLnN0YXRlLnBsdWdpbnN8fHRoaXMuZGlyZWN0UGx1Z2lucyE9dGhpcy5wcmV2RGlyZWN0UGx1Z2lucyl7dGhpcy5wcmV2RGlyZWN0UGx1Z2lucz10aGlzLmRpcmVjdFBsdWdpbnMsdGhpcy5kZXN0cm95UGx1Z2luVmlld3MoKTtmb3IobGV0IHQ9MDt0PHRoaXMuZGlyZWN0UGx1Z2lucy5sZW5ndGg7dCsrKXtsZXQgYT10aGlzLmRpcmVjdFBsdWdpbnNbdF07YS5zcGVjLnZpZXcmJnRoaXMucGx1Z2luVmlld3MucHVzaChhLnNwZWMudmlldyh0aGlzKSl9Zm9yKGxldCB0PTA7dDx0aGlzLnN0YXRlLnBsdWdpbnMubGVuZ3RoO3QrKyl7bGV0IGE9dGhpcy5zdGF0ZS5wbHVnaW5zW3RdO2Euc3BlYy52aWV3JiZ0aGlzLnBsdWdpblZpZXdzLnB1c2goYS5zcGVjLnZpZXcodGhpcykpfX1lbHNlIGZvcihsZXQgdD0wO3Q8dGhpcy5wbHVnaW5WaWV3cy5sZW5ndGg7dCsrKXtsZXQgYT10aGlzLnBsdWdpblZpZXdzW3RdO2EudXBkYXRlJiZhLnVwZGF0ZSh0aGlzLGUpfX11cGRhdGVEcmFnZ2VkTm9kZShlLHQpe2xldCBhPWUubm9kZSxyPS0xO2lmKGEuZnJvbTx0aGlzLnN0YXRlLmRvYy5jb250ZW50LnNpemUmJnRoaXMuc3RhdGUuZG9jLm5vZGVBdChhLmZyb20pPT1hLm5vZGUpcj1hLmZyb207ZWxzZXtsZXQgbj1hLmZyb20rKHRoaXMuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZS10LmRvYy5jb250ZW50LnNpemUpOyhuPjAmJm48dGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplJiZ0aGlzLnN0YXRlLmRvYy5ub2RlQXQobikpPT1hLm5vZGUmJihyPW4pfXRoaXMuZHJhZ2dpbmc9bmV3IEpuZShlLnNsaWNlLGUubW92ZSxyPDA/dm9pZCAwOkZ0LmNyZWF0ZSh0aGlzLnN0YXRlLmRvYyxyKSl9c29tZVByb3AoZSx0KXtsZXQgYT10aGlzLl9wcm9wcyYmdGhpcy5fcHJvcHNbZV0scjtpZihhIT1udWxsJiYocj10P3QoYSk6YSkpcmV0dXJuIHI7Zm9yKGxldCBvPTA7bzx0aGlzLmRpcmVjdFBsdWdpbnMubGVuZ3RoO28rKyl7bGV0IGw9dGhpcy5kaXJlY3RQbHVnaW5zW29dLnByb3BzW2VdO2lmKGwhPW51bGwmJihyPXQ/dChsKTpsKSlyZXR1cm4gcn1sZXQgbj10aGlzLnN0YXRlLnBsdWdpbnM7aWYobilmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7bGV0IGw9bltvXS5wcm9wc1tlXTtpZihsIT1udWxsJiYocj10P3QobCk6bCkpcmV0dXJuIHJ9fWhhc0ZvY3VzKCl7aWYoQ2wpe2xldCBlPXRoaXMucm9vdC5hY3RpdmVFbGVtZW50O2lmKGU9PXRoaXMuZG9tKXJldHVybiEwO2lmKCFlfHwhdGhpcy5kb20uY29udGFpbnMoZSkpcmV0dXJuITE7Zm9yKDtlJiZ0aGlzLmRvbSE9ZSYmdGhpcy5kb20uY29udGFpbnMoZSk7KXtpZihlLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilyZXR1cm4hMTtlPWUucGFyZW50RWxlbWVudH1yZXR1cm4hMH1yZXR1cm4gdGhpcy5yb290LmFjdGl2ZUVsZW1lbnQ9PXRoaXMuZG9tfWZvY3VzKCl7dGhpcy5kb21PYnNlcnZlci5zdG9wKCksdGhpcy5lZGl0YWJsZSYmakdhKHRoaXMuZG9tKSxjdSh0aGlzKSx0aGlzLmRvbU9ic2VydmVyLnN0YXJ0KCl9Z2V0IHJvb3QoKXtsZXQgZT10aGlzLl9yb290O2lmKGU9PW51bGwpe2ZvcihsZXQgdD10aGlzLmRvbS5wYXJlbnROb2RlO3Q7dD10LnBhcmVudE5vZGUpaWYodC5ub2RlVHlwZT09OXx8dC5ub2RlVHlwZT09MTEmJnQuaG9zdClyZXR1cm4gdC5nZXRTZWxlY3Rpb258fChPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkuZ2V0U2VsZWN0aW9uPSgpPT50Lm93bmVyRG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkpLHRoaXMuX3Jvb3Q9dH1yZXR1cm4gZXx8ZG9jdW1lbnR9dXBkYXRlUm9vdCgpe3RoaXMuX3Jvb3Q9bnVsbH1wb3NBdENvb3JkcyhlKXtyZXR1cm4gS0dhKHRoaXMsZSl9Y29vcmRzQXRQb3MoZSx0PTEpe3JldHVybiBZdWEodGhpcyxlLHQpfWRvbUF0UG9zKGUsdD0wKXtyZXR1cm4gdGhpcy5kb2NWaWV3LmRvbUZyb21Qb3MoZSx0KX1ub2RlRE9NKGUpe2xldCB0PXRoaXMuZG9jVmlldy5kZXNjQXQoZSk7cmV0dXJuIHQ/dC5ub2RlRE9NOm51bGx9cG9zQXRET00oZSx0LGE9LTEpe2xldCByPXRoaXMuZG9jVmlldy5wb3NGcm9tRE9NKGUsdCxhKTtpZihyPT1udWxsKXRocm93IG5ldyBSYW5nZUVycm9yKCJET00gcG9zaXRpb24gbm90IGluc2lkZSB0aGUgZWRpdG9yIik7cmV0dXJuIHJ9ZW5kT2ZUZXh0YmxvY2soZSx0KXtyZXR1cm4gSkdhKHRoaXMsdHx8dGhpcy5zdGF0ZSxlKX1wYXN0ZUhUTUwoZSx0KXtyZXR1cm4gdFgodGhpcywiIixlLCExLHR8fG5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiKSl9cGFzdGVUZXh0KGUsdCl7cmV0dXJuIHRYKHRoaXMsZSxudWxsLCEwLHR8fG5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiKSl9c2VyaWFsaXplRm9yQ2xpcGJvYXJkKGUpe3JldHVybiBVdHQodGhpcyxlKX1kZXN0cm95KCl7dGhpcy5kb2NWaWV3JiYoX0thKHRoaXMpLHRoaXMuZGVzdHJveVBsdWdpblZpZXdzKCksdGhpcy5tb3VudGVkPyh0aGlzLmRvY1ZpZXcudXBkYXRlKHRoaXMuc3RhdGUuZG9jLFtdLHNhdCh0aGlzKSx0aGlzKSx0aGlzLmRvbS50ZXh0Q29udGVudD0iIik6dGhpcy5kb20ucGFyZW50Tm9kZSYmdGhpcy5kb20ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmRvbSksdGhpcy5kb2NWaWV3LmRlc3Ryb3koKSx0aGlzLmRvY1ZpZXc9bnVsbCxMR2EoKSl9Z2V0IGlzRGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuZG9jVmlldz09bnVsbH1kaXNwYXRjaEV2ZW50KGUpe3JldHVybiB6S2EodGhpcyxlKX1kb21TZWxlY3Rpb25SYW5nZSgpe2xldCBlPXRoaXMuZG9tU2VsZWN0aW9uKCk7cmV0dXJuIGU/bG4mJnRoaXMucm9vdC5ub2RlVHlwZT09PTExJiZOR2EodGhpcy5kb20ub3duZXJEb2N1bWVudCk9PXRoaXMuZG9tJiZLS2EodGhpcyxlKXx8ZTp7Zm9jdXNOb2RlOm51bGwsZm9jdXNPZmZzZXQ6MCxhbmNob3JOb2RlOm51bGwsYW5jaG9yT2Zmc2V0OjB9fWRvbVNlbGVjdGlvbigpe3JldHVybiB0aGlzLnJvb3QuZ2V0U2VsZWN0aW9uKCl9fTtQdi5wcm90b3R5cGUuZGlzcGF0Y2g9ZnVuY3Rpb24ocyl7bGV0IGU9dGhpcy5fcHJvcHMuZGlzcGF0Y2hUcmFuc2FjdGlvbjtlP2UuY2FsbCh0aGlzLHMpOnRoaXMudXBkYXRlU3RhdGUodGhpcy5zdGF0ZS5hcHBseShzKSl9O2kocXBhLCJjb21wdXRlRG9jRGVjbyIpO2koanBhLCJ1cGRhdGVDdXJzb3JXcmFwcGVyIik7aShWcGEsImdldEVkaXRhYmxlIik7aShvWWEsInNlbGVjdGlvbkNvbnRleHRDaGFuZ2VkIik7aShVcGEsImJ1aWxkTm9kZVZpZXdzIik7aShuWWEsImNoYW5nZWROb2RlVmlld3MiKTtpKFdwYSwiY2hlY2tTdGF0ZUNvbXBvbmVudCIpfSk7dmFyIEdwYT1nKCgpPT57bmF0KCl9KTtmdW5jdGlvbiBLcGEocyl7dmFyIGU9bFlhJiZzLm1ldGFLZXkmJnMuc2hpZnRLZXkmJiFzLmN0cmxLZXkmJiFzLmFsdEtleXx8Y1lhJiZzLnNoaWZ0S2V5JiZzLmtleSYmcy5rZXkubGVuZ3RoPT0xfHxzLmtleT09IlVuaWRlbnRpZmllZCIsdD0hZSYmcy5rZXl8fChzLnNoaWZ0S2V5P3NsZTpkdSlbcy5rZXlDb2RlXXx8cy5rZXl8fCJVbmlkZW50aWZpZWQiO3JldHVybiB0PT0iRXNjIiYmKHQ9IkVzY2FwZSIpLHQ9PSJEZWwiJiYodD0iRGVsZXRlIiksdD09IkxlZnQiJiYodD0iQXJyb3dMZWZ0IiksdD09IlVwIiYmKHQ9IkFycm93VXAiKSx0PT0iUmlnaHQiJiYodD0iQXJyb3dSaWdodCIpLHQ9PSJEb3duIiYmKHQ9IkFycm93RG93biIpLHR9dmFyIGR1LHNsZSxsWWEsY1lhLERyLGlsZSxZcGE9ZygoKT0+e2R1PXs4OiJCYWNrc3BhY2UiLDk6IlRhYiIsMTA6IkVudGVyIiwxMjoiTnVtTG9jayIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ0OiJQcmludFNjcmVlbiIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsNTk6IjsiLDYxOiI9Iiw5MToiTWV0YSIsOTI6Ik1ldGEiLDEwNjoiKiIsMTA3OiIrIiwxMDg6IiwiLDEwOToiLSIsMTEwOiIuIiwxMTE6Ii8iLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwxNjA6IlNoaWZ0IiwxNjE6IlNoaWZ0IiwxNjI6IkNvbnRyb2wiLDE2MzoiQ29udHJvbCIsMTY0OiJBbHQiLDE2NToiQWx0IiwxNzM6Ii0iLDE4NjoiOyIsMTg3OiI9IiwxODg6IiwiLDE4OToiLSIsMTkwOiIuIiwxOTE6Ii8iLDE5MjoiYCIsMjE5OiJbIiwyMjA6IlxcIiwyMjE6Il0iLDIyMjoiJyJ9LHNsZT17NDg6IikiLDQ5OiIhIiw1MDoiQCIsNTE6IiMiLDUyOiIkIiw1MzoiJSIsNTQ6Il4iLDU1OiImIiw1NjoiKiIsNTc6IigiLDU5OiI6Iiw2MToiKyIsMTczOiJfIiwxODY6IjoiLDE4NzoiKyIsMTg4OiI8IiwxODk6Il8iLDE5MDoiPiIsMTkxOiI/IiwxOTI6In4iLDIxOToieyIsMjIwOiJ8IiwyMjE6In0iLDIyMjonIid9LGxZYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLGNZYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01TSUUgXGR8VHJpZGVudFwvKD86WzctOV18XGR7Mix9KVwuLipydjooXGQrKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KTtmb3IoRHI9MDtEcjwxMDtEcisrKWR1WzQ4K0RyXT1kdVs5NitEcl09U3RyaW5nKERyKTtmb3IoRHI9MTtEcjw9MjQ7RHIrKylkdVtEcisxMTFdPSJGIitEcjtmb3IoRHI9NjU7RHI8PTkwO0RyKyspZHVbRHJdPVN0cmluZy5mcm9tQ2hhckNvZGUoRHIrMzIpLHNsZVtEcl09U3RyaW5nLmZyb21DaGFyQ29kZShEcik7Zm9yKGlsZSBpbiBkdSlzbGUuaGFzT3duUHJvcGVydHkoaWxlKXx8KHNsZVtpbGVdPWR1W2lsZV0pO2koS3BhLCJrZXlOYW1lIil9KTtmdW5jdGlvbiBwWWEocyl7bGV0IGU9cy5zcGxpdCgvLSg/ISQpLyksdD1lW2UubGVuZ3RoLTFdO3Q9PSJTcGFjZSImJih0PSIgIik7bGV0IGEscixuLG87Zm9yKGxldCBsPTA7bDxlLmxlbmd0aC0xO2wrKyl7bGV0IHA9ZVtsXTtpZigvXihjbWR8bWV0YXxtKSQvaS50ZXN0KHApKW89ITA7ZWxzZSBpZigvXmEobHQpPyQvaS50ZXN0KHApKWE9ITA7ZWxzZSBpZigvXihjfGN0cmx8Y29udHJvbCkkL2kudGVzdChwKSlyPSEwO2Vsc2UgaWYoL15zKGhpZnQpPyQvaS50ZXN0KHApKW49ITA7ZWxzZSBpZigvXm1vZCQvaS50ZXN0KHApKWRZYT9vPSEwOnI9ITA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBtb2RpZmllciBuYW1lOiAiK3ApfXJldHVybiBhJiYodD0iQWx0LSIrdCksciYmKHQ9IkN0cmwtIit0KSxvJiYodD0iTWV0YS0iK3QpLG4mJih0PSJTaGlmdC0iK3QpLHR9ZnVuY3Rpb24gaFlhKHMpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCB0IGluIHMpZVtwWWEodCldPXNbdF07cmV0dXJuIGV9ZnVuY3Rpb24gbGF0KHMsZSx0PSEwKXtyZXR1cm4gZS5hbHRLZXkmJihzPSJBbHQtIitzKSxlLmN0cmxLZXkmJihzPSJDdHJsLSIrcyksZS5tZXRhS2V5JiYocz0iTWV0YS0iK3MpLHQmJmUuc2hpZnRLZXkmJihzPSJTaGlmdC0iK3MpLHN9ZnVuY3Rpb24gY2F0KHMpe3JldHVybiBuZXcgWXMoe3Byb3BzOntoYW5kbGVLZXlEb3duOnJsZShzKX19KX1mdW5jdGlvbiBybGUocyl7bGV0IGU9aFlhKHMpO3JldHVybiBmdW5jdGlvbih0LGEpe2xldCByPUtwYShhKSxuLG89ZVtsYXQocixhKV07aWYobyYmbyh0LnN0YXRlLHQuZGlzcGF0Y2gsdCkpcmV0dXJuITA7aWYoci5sZW5ndGg9PTEmJnIhPSIgIil7aWYoYS5zaGlmdEtleSl7bGV0IGw9ZVtsYXQocixhLCExKV07aWYobCYmbCh0LnN0YXRlLHQuZGlzcGF0Y2gsdCkpcmV0dXJuITB9aWYoKGEuYWx0S2V5fHxhLm1ldGFLZXl8fGEuY3RybEtleSkmJiEodVlhJiZhLmN0cmxLZXkmJmEuYWx0S2V5KSYmKG49ZHVbYS5rZXlDb2RlXSkmJm4hPXIpe2xldCBsPWVbbGF0KG4sYSldO2lmKGwmJmwodC5zdGF0ZSx0LmRpc3BhdGNoLHQpKXJldHVybiEwfX1yZXR1cm4hMX19dmFyIGRZYSx1WWEsZGF0PWcoKCk9PntZcGEoKTtydSgpO2RZYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01hY3xpUChob25lfFtvYV1kKS8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLHVZYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL1dpbi8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pO2kocFlhLCJub3JtYWxpemVLZXlOYW1lIik7aShoWWEsIm5vcm1hbGl6ZSIpO2kobGF0LCJtb2RpZmllcnMiKTtpKGNhdCwia2V5bWFwIik7aShybGUsImtleWRvd25IYW5kbGVyIil9KTt2YXIgWnBhPWcoKCk9PntkYXQoKX0pO3ZhciBYcGE9ZygoKT0+e19oKCl9KTt2YXIgUXBhPWcoKCk9Pnt6aCgpfSk7ZnVuY3Rpb24gSnBhKHMsZSl7bGV0eyRjdXJzb3I6dH09cy5zZWxlY3Rpb247cmV0dXJuIXR8fChlPyFlLmVuZE9mVGV4dGJsb2NrKCJiYWNrd2FyZCIscyk6dC5wYXJlbnRPZmZzZXQ+MCk/bnVsbDp0fWZ1bmN0aW9uIGVoYShzLGUsdCl7bGV0IGE9ZS5ub2RlQmVmb3JlLHI9YSxuPWUucG9zLTE7Zm9yKDshci5pc1RleHRibG9jaztuLS0pe2lmKHIudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMTtsZXQgdT1yLmxhc3RDaGlsZDtpZighdSlyZXR1cm4hMTtyPXV9bGV0IG89ZS5ub2RlQWZ0ZXIsbD1vLHA9ZS5wb3MrMTtmb3IoOyFsLmlzVGV4dGJsb2NrO3ArKyl7aWYobC50eXBlLnNwZWMuaXNvbGF0aW5nKXJldHVybiExO2xldCB1PWwuZmlyc3RDaGlsZDtpZighdSlyZXR1cm4hMTtsPXV9bGV0IGQ9X3Yocy5kb2MsbixwLF90LmVtcHR5KTtpZighZHx8ZC5mcm9tIT1ufHxkIGluc3RhbmNlb2YgZ28mJmQuc2xpY2Uuc2l6ZT49cC1uKXJldHVybiExO2lmKHQpe2xldCB1PXMudHIuc3RlcChkKTt1LnNldFNlbGVjdGlvbihKdC5jcmVhdGUodS5kb2MsbikpLHQodS5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH1mdW5jdGlvbiBJdihzLGUsdD0hMSl7Zm9yKGxldCBhPXM7YTthPWU9PSJzdGFydCI/YS5maXJzdENoaWxkOmEubGFzdENoaWxkKXtpZihhLmlzVGV4dGJsb2NrKXJldHVybiEwO2lmKHQmJmEuY2hpbGRDb3VudCE9MSlyZXR1cm4hMX1yZXR1cm4hMX1mdW5jdGlvbiB1YXQocyl7aWYoIXMucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmcpZm9yKGxldCBlPXMuZGVwdGgtMTtlPj0wO2UtLSl7aWYocy5pbmRleChlKT4wKXJldHVybiBzLmRvYy5yZXNvbHZlKHMuYmVmb3JlKGUrMSkpO2lmKHMubm9kZShlKS50eXBlLnNwZWMuaXNvbGF0aW5nKWJyZWFrfXJldHVybiBudWxsfWZ1bmN0aW9uIHRoYShzLGUpe2xldHskY3Vyc29yOnR9PXMuc2VsZWN0aW9uO3JldHVybiF0fHwoZT8hZS5lbmRPZlRleHRibG9jaygiZm9yd2FyZCIscyk6dC5wYXJlbnRPZmZzZXQ8dC5wYXJlbnQuY29udGVudC5zaXplKT9udWxsOnR9ZnVuY3Rpb24gcGF0KHMpe2lmKCFzLnBhcmVudC50eXBlLnNwZWMuaXNvbGF0aW5nKWZvcihsZXQgZT1zLmRlcHRoLTE7ZT49MDtlLS0pe2xldCB0PXMubm9kZShlKTtpZihzLmluZGV4KGUpKzE8dC5jaGlsZENvdW50KXJldHVybiBzLmRvYy5yZXNvbHZlKHMuYWZ0ZXIoZSsxKSk7aWYodC50eXBlLnNwZWMuaXNvbGF0aW5nKWJyZWFrfXJldHVybiBudWxsfWZ1bmN0aW9uIGhhdChzKXtmb3IobGV0IGU9MDtlPHMuZWRnZUNvdW50O2UrKyl7bGV0e3R5cGU6dH09cy5lZGdlKGUpO2lmKHQuaXNUZXh0YmxvY2smJiF0Lmhhc1JlcXVpcmVkQXR0cnMoKSlyZXR1cm4gdH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBhaGEocyl7cmV0dXJuKGUsdCk9PntsZXR7JGZyb206YSwkdG86cn09ZS5zZWxlY3Rpb247aWYoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBGdCYmZS5zZWxlY3Rpb24ubm9kZS5pc0Jsb2NrKXJldHVybiFhLnBhcmVudE9mZnNldHx8IXpsKGUuZG9jLGEucG9zKT8hMToodCYmdChlLnRyLnNwbGl0KGEucG9zKS5zY3JvbGxJbnRvVmlldygpKSwhMCk7aWYoIWEuZGVwdGgpcmV0dXJuITE7bGV0IG49W10sbyxsLHA9ITEsZD0hMTtmb3IobGV0IHY9YS5kZXB0aDs7di0tKWlmKGEubm9kZSh2KS5pc0Jsb2NrKXtwPWEuZW5kKHYpPT1hLnBvcysoYS5kZXB0aC12KSxkPWEuc3RhcnQodik9PWEucG9zLShhLmRlcHRoLXYpLGw9aGF0KGEubm9kZSh2LTEpLmNvbnRlbnRNYXRjaEF0KGEuaW5kZXhBZnRlcih2LTEpKSk7bGV0IG09cyYmcyhyLnBhcmVudCxwLGEpO24udW5zaGlmdChtfHwocCYmbD97dHlwZTpsfTpudWxsKSksbz12O2JyZWFrfWVsc2V7aWYodj09MSlyZXR1cm4hMTtuLnVuc2hpZnQobnVsbCl9bGV0IHU9ZS50cjsoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBKdHx8ZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBubikmJnUuZGVsZXRlU2VsZWN0aW9uKCk7bGV0IGM9dS5tYXBwaW5nLm1hcChhLnBvcyksYj16bCh1LmRvYyxjLG4ubGVuZ3RoLG4pO2lmKGJ8fChuWzBdPWw/e3R5cGU6bH06bnVsbCxiPXpsKHUuZG9jLGMsbi5sZW5ndGgsbikpLCFiKXJldHVybiExO2lmKHUuc3BsaXQoYyxuLmxlbmd0aCxuKSwhcCYmZCYmYS5ub2RlKG8pLnR5cGUhPWwpe2xldCB2PXUubWFwcGluZy5tYXAoYS5iZWZvcmUobykpLHg9dS5kb2MucmVzb2x2ZSh2KTtsJiZhLm5vZGUoby0xKS5jYW5SZXBsYWNlV2l0aCh4LmluZGV4KCkseC5pbmRleCgpKzEsbCkmJnUuc2V0Tm9kZU1hcmt1cCh1Lm1hcHBpbmcubWFwKGEuYmVmb3JlKG8pKSxsKX1yZXR1cm4gdCYmdCh1LnNjcm9sbEludG9WaWV3KCkpLCEwfX1mdW5jdGlvbiBtWWEocyxlLHQpe2xldCBhPWUubm9kZUJlZm9yZSxyPWUubm9kZUFmdGVyLG49ZS5pbmRleCgpO3JldHVybiFhfHwhcnx8IWEudHlwZS5jb21wYXRpYmxlQ29udGVudChyLnR5cGUpPyExOiFhLmNvbnRlbnQuc2l6ZSYmZS5wYXJlbnQuY2FuUmVwbGFjZShuLTEsbik/KHQmJnQocy50ci5kZWxldGUoZS5wb3MtYS5ub2RlU2l6ZSxlLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApOiFlLnBhcmVudC5jYW5SZXBsYWNlKG4sbisxKXx8IShyLmlzVGV4dGJsb2NrfHxabChzLmRvYyxlLnBvcykpPyExOih0JiZ0KHMudHIuam9pbihlLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApfWZ1bmN0aW9uIGloYShzLGUsdCxhKXtsZXQgcj1lLm5vZGVCZWZvcmUsbj1lLm5vZGVBZnRlcixvLGwscD1yLnR5cGUuc3BlYy5pc29sYXRpbmd8fG4udHlwZS5zcGVjLmlzb2xhdGluZztpZighcCYmbVlhKHMsZSx0KSlyZXR1cm4hMDtsZXQgZD0hcCYmZS5wYXJlbnQuY2FuUmVwbGFjZShlLmluZGV4KCksZS5pbmRleCgpKzEpO2lmKGQmJihvPShsPXIuY29udGVudE1hdGNoQXQoci5jaGlsZENvdW50KSkuZmluZFdyYXBwaW5nKG4udHlwZSkpJiZsLm1hdGNoVHlwZShvWzBdfHxuLnR5cGUpLnZhbGlkRW5kKXtpZih0KXtsZXQgdj1lLnBvcytuLm5vZGVTaXplLHg9cnQuZW1wdHk7Zm9yKGxldCB5PW8ubGVuZ3RoLTE7eT49MDt5LS0peD1ydC5mcm9tKG9beV0uY3JlYXRlKG51bGwseCkpO3g9cnQuZnJvbShyLmNvcHkoeCkpO2xldCBtPXMudHIuc3RlcChuZXcgZHIoZS5wb3MtMSx2LGUucG9zLHYsbmV3IF90KHgsMSwwKSxvLmxlbmd0aCwhMCkpLGY9bS5kb2MucmVzb2x2ZSh2KzIqby5sZW5ndGgpO2Yubm9kZUFmdGVyJiZmLm5vZGVBZnRlci50eXBlPT1yLnR5cGUmJlpsKG0uZG9jLGYucG9zKSYmbS5qb2luKGYucG9zKSx0KG0uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9bGV0IHU9bi50eXBlLnNwZWMuaXNvbGF0aW5nfHxhPjAmJnA/bnVsbDpRdC5maW5kRnJvbShlLDEpLGM9dSYmdS4kZnJvbS5ibG9ja1JhbmdlKHUuJHRvKSxiPWMmJlBkKGMpO2lmKGIhPW51bGwmJmI+PWUuZGVwdGgpcmV0dXJuIHQmJnQocy50ci5saWZ0KGMsYikuc2Nyb2xsSW50b1ZpZXcoKSksITA7aWYoZCYmSXYobiwic3RhcnQiLCEwKSYmSXYociwiZW5kIikpe2xldCB2PXIseD1bXTtmb3IoO3gucHVzaCh2KSwhdi5pc1RleHRibG9jazspdj12Lmxhc3RDaGlsZDtsZXQgbT1uLGY9MTtmb3IoOyFtLmlzVGV4dGJsb2NrO209bS5maXJzdENoaWxkKWYrKztpZih2LmNhblJlcGxhY2Uodi5jaGlsZENvdW50LHYuY2hpbGRDb3VudCxtLmNvbnRlbnQpKXtpZih0KXtsZXQgeT1ydC5lbXB0eTtmb3IobGV0IHo9eC5sZW5ndGgtMTt6Pj0wO3otLSl5PXJ0LmZyb20oeFt6XS5jb3B5KHkpKTtsZXQgTT1zLnRyLnN0ZXAobmV3IGRyKGUucG9zLXgubGVuZ3RoLGUucG9zK24ubm9kZVNpemUsZS5wb3MrZixlLnBvcytuLm5vZGVTaXplLWYsbmV3IF90KHkseC5sZW5ndGgsMCksMCwhMCkpO3QoTS5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH19cmV0dXJuITF9ZnVuY3Rpb24gcmhhKHMpe3JldHVybiBmdW5jdGlvbihlLHQpe2xldCBhPWUuc2VsZWN0aW9uLHI9czwwP2EuJGZyb206YS4kdG8sbj1yLmRlcHRoO2Zvcig7ci5ub2RlKG4pLmlzSW5saW5lOyl7aWYoIW4pcmV0dXJuITE7bi0tfXJldHVybiByLm5vZGUobikuaXNUZXh0YmxvY2s/KHQmJnQoZS50ci5zZXRTZWxlY3Rpb24oSnQuY3JlYXRlKGUuZG9jLHM8MD9yLnN0YXJ0KG4pOnIuZW5kKG4pKSkpLCEwKTohMX19ZnVuY3Rpb24gU2F0KHMsZT1udWxsKXtyZXR1cm4gZnVuY3Rpb24odCxhKXtsZXR7JGZyb206ciwkdG86bn09dC5zZWxlY3Rpb24sbz1yLmJsb2NrUmFuZ2UobiksbD1vJiZLOChvLHMsZSk7cmV0dXJuIGw/KGEmJmEodC50ci53cmFwKG8sbCkuc2Nyb2xsSW50b1ZpZXcoKSksITApOiExfX1mdW5jdGlvbiBibGUocyxlPW51bGwpe3JldHVybiBmdW5jdGlvbih0LGEpe2xldCByPSExO2ZvcihsZXQgbj0wO248dC5zZWxlY3Rpb24ucmFuZ2VzLmxlbmd0aCYmIXI7bisrKXtsZXR7JGZyb206e3BvczpvfSwkdG86e3BvczpsfX09dC5zZWxlY3Rpb24ucmFuZ2VzW25dO3QuZG9jLm5vZGVzQmV0d2VlbihvLGwsKHAsZCk9PntpZihyKXJldHVybiExO2lmKCEoIXAuaXNUZXh0YmxvY2t8fHAuaGFzTWFya3VwKHMsZSkpKWlmKHAudHlwZT09cylyPSEwO2Vsc2V7bGV0IHU9dC5kb2MucmVzb2x2ZShkKSxjPXUuaW5kZXgoKTtyPXUucGFyZW50LmNhblJlcGxhY2VXaXRoKGMsYysxLHMpfX0pfWlmKCFyKXJldHVybiExO2lmKGEpe2xldCBuPXQudHI7Zm9yKGxldCBvPTA7bzx0LnNlbGVjdGlvbi5yYW5nZXMubGVuZ3RoO28rKyl7bGV0eyRmcm9tOntwb3M6bH0sJHRvOntwb3M6cH19PXQuc2VsZWN0aW9uLnJhbmdlc1tvXTtuLnNldEJsb2NrVHlwZShsLHAscyxlKX1hKG4uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9fWZ1bmN0aW9uIGdZYShzLGUsdCxhKXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0eyRmcm9tOm4sJHRvOm99PWVbcl0sbD1uLmRlcHRoPT0wP3MuaW5saW5lQ29udGVudCYmcy50eXBlLmFsbG93c01hcmtUeXBlKHQpOiExO2lmKHMubm9kZXNCZXR3ZWVuKG4ucG9zLG8ucG9zLChwLGQpPT57aWYobHx8IWEmJnAuaXNBdG9tJiZwLmlzSW5saW5lJiZkPj1uLnBvcyYmZCtwLm5vZGVTaXplPD1vLnBvcylyZXR1cm4hMTtsPXAuaW5saW5lQ29udGVudCYmcC50eXBlLmFsbG93c01hcmtUeXBlKHQpfSksbClyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBiWWEocyl7bGV0IGU9W107Zm9yKGxldCB0PTA7dDxzLmxlbmd0aDt0Kyspe2xldHskZnJvbTphLCR0bzpyfT1zW3RdO2EuZG9jLm5vZGVzQmV0d2VlbihhLnBvcyxyLnBvcywobixvKT0+e2lmKG4uaXNBdG9tJiZuLmNvbnRlbnQuc2l6ZSYmbi5pc0lubGluZSYmbz49YS5wb3MmJm8rbi5ub2RlU2l6ZTw9ci5wb3MpcmV0dXJuIG8rMT5hLnBvcyYmZS5wdXNoKG5ldyBYOChhLGEuZG9jLnJlc29sdmUobysxKSkpLGE9YS5kb2MucmVzb2x2ZShvKzErbi5jb250ZW50LnNpemUpLCExfSksYS5wb3M8ci5wb3MmJmUucHVzaChuZXcgWDgoYSxyKSl9cmV0dXJuIGV9ZnVuY3Rpb24gdllhKHMsZT1udWxsLHQpe2xldCBhPSh0JiZ0LnJlbW92ZVdoZW5QcmVzZW50KSE9PSExLHI9KHQmJnQuZW50ZXJJbmxpbmVBdG9tcykhPT0hMSxuPSEodCYmdC5pbmNsdWRlV2hpdGVzcGFjZSk7cmV0dXJuIGZ1bmN0aW9uKG8sbCl7bGV0e2VtcHR5OnAsJGN1cnNvcjpkLHJhbmdlczp1fT1vLnNlbGVjdGlvbjtpZihwJiYhZHx8IWdZYShvLmRvYyx1LHMscikpcmV0dXJuITE7aWYobClpZihkKXMuaXNJblNldChvLnN0b3JlZE1hcmtzfHxkLm1hcmtzKCkpP2woby50ci5yZW1vdmVTdG9yZWRNYXJrKHMpKTpsKG8udHIuYWRkU3RvcmVkTWFyayhzLmNyZWF0ZShlKSkpO2Vsc2V7bGV0IGMsYj1vLnRyO3J8fCh1PWJZYSh1KSksYT9jPSF1LnNvbWUodj0+by5kb2MucmFuZ2VIYXNNYXJrKHYuJGZyb20ucG9zLHYuJHRvLnBvcyxzKSk6Yz0hdS5ldmVyeSh2PT57bGV0IHg9ITE7cmV0dXJuIGIuZG9jLm5vZGVzQmV0d2Vlbih2LiRmcm9tLnBvcyx2LiR0by5wb3MsKG0sZix5KT0+e2lmKHgpcmV0dXJuITE7eD0hcy5pc0luU2V0KG0ubWFya3MpJiYhIXkmJnkudHlwZS5hbGxvd3NNYXJrVHlwZShzKSYmIShtLmlzVGV4dCYmL15ccyokLy50ZXN0KG0udGV4dEJldHdlZW4oTWF0aC5tYXgoMCx2LiRmcm9tLnBvcy1mKSxNYXRoLm1pbihtLm5vZGVTaXplLHYuJHRvLnBvcy1mKSkpKX0pLCF4fSk7Zm9yKGxldCB2PTA7djx1Lmxlbmd0aDt2Kyspe2xldHskZnJvbTp4LCR0bzptfT11W3ZdO2lmKCFjKWIucmVtb3ZlTWFyayh4LnBvcyxtLnBvcyxzKTtlbHNle2xldCBmPXgucG9zLHk9bS5wb3MsTT14Lm5vZGVBZnRlcix6PW0ubm9kZUJlZm9yZSxOPW4mJk0mJk0uaXNUZXh0Py9eXHMqLy5leGVjKE0udGV4dClbMF0ubGVuZ3RoOjAsQz1uJiZ6JiZ6LmlzVGV4dD8vXHMqJC8uZXhlYyh6LnRleHQpWzBdLmxlbmd0aDowO2YrTjx5JiYoZis9Tix5LT1DKSxiLmFkZE1hcmsoZix5LHMuY3JlYXRlKGUpKX19bChiLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1mdW5jdGlvbiB4WWEocyxlKXtyZXR1cm4gdD0+e2lmKCF0LmlzR2VuZXJpYylyZXR1cm4gcyh0KTtsZXQgYT1bXTtmb3IobGV0IG49MDtuPHQubWFwcGluZy5tYXBzLmxlbmd0aDtuKyspe2xldCBvPXQubWFwcGluZy5tYXBzW25dO2ZvcihsZXQgbD0wO2w8YS5sZW5ndGg7bCsrKWFbbF09by5tYXAoYVtsXSk7by5mb3JFYWNoKChsLHAsZCx1KT0+YS5wdXNoKGQsdSkpfWxldCByPVtdO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bis9Mil7bGV0IG89YVtuXSxsPWFbbisxXSxwPXQuZG9jLnJlc29sdmUobyksZD1wLnNoYXJlZERlcHRoKGwpLHU9cC5ub2RlKGQpO2ZvcihsZXQgYz1wLmluZGV4QWZ0ZXIoZCksYj1wLmFmdGVyKGQrMSk7Yjw9bDsrK2Mpe2xldCB2PXUubWF5YmVDaGlsZChjKTtpZighdilicmVhaztpZihjJiZyLmluZGV4T2YoYik9PS0xKXtsZXQgeD11LmNoaWxkKGMtMSk7eC50eXBlPT12LnR5cGUmJmUoeCx2KSYmci5wdXNoKGIpfWIrPXYubm9kZVNpemV9fXIuc29ydCgobixvKT0+bi1vKTtmb3IobGV0IG49ci5sZW5ndGgtMTtuPj0wO24tLSlabCh0LmRvYyxyW25dKSYmdC5qb2luKHJbbl0pO3ModCl9fWZ1bmN0aW9uIHlZYShzLGUpe2xldCB0PUFycmF5LmlzQXJyYXkoZSk/YT0+ZS5pbmRleE9mKGEudHlwZS5uYW1lKT4tMTplO3JldHVybihhLHIsbik9PnMoYSxyJiZ4WWEocix0KSxuKX1mdW5jdGlvbiBvbGUoLi4ucyl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxhKXtmb3IobGV0IHI9MDtyPHMubGVuZ3RoO3IrKylpZihzW3JdKGUsdCxhKSlyZXR1cm4hMDtyZXR1cm4hMX19dmFyIHNYLG5sZSxiYXQsdmF0LGxsZSxjbGUsZGxlLHhhdCx5YXQsd2F0LHVsZSxwbGUsaGxlLGZsZSxmYXQsZllhLGthdCxzaGEsbWxlLGdsZSxtYXQsb2hhLE5kLGdhdCx3WWEsa1lhLG5oYT1nKCgpPT57emgoKTtfaCgpO3J1KCk7c1g9aSgocyxlKT0+cy5zZWxlY3Rpb24uZW1wdHk/ITE6KGUmJmUocy50ci5kZWxldGVTZWxlY3Rpb24oKS5zY3JvbGxJbnRvVmlldygpKSwhMCksImRlbGV0ZVNlbGVjdGlvbiIpO2koSnBhLCJhdEJsb2NrU3RhcnQiKTtubGU9aSgocyxlLHQpPT57bGV0IGE9SnBhKHMsdCk7aWYoIWEpcmV0dXJuITE7bGV0IHI9dWF0KGEpO2lmKCFyKXtsZXQgbz1hLmJsb2NrUmFuZ2UoKSxsPW8mJlBkKG8pO3JldHVybiBsPT1udWxsPyExOihlJiZlKHMudHIubGlmdChvLGwpLnNjcm9sbEludG9WaWV3KCkpLCEwKX1sZXQgbj1yLm5vZGVCZWZvcmU7aWYoaWhhKHMscixlLC0xKSlyZXR1cm4hMDtpZihhLnBhcmVudC5jb250ZW50LnNpemU9PTAmJihJdihuLCJlbmQiKXx8RnQuaXNTZWxlY3RhYmxlKG4pKSlmb3IobGV0IG89YS5kZXB0aDs7by0tKXtsZXQgbD1fdihzLmRvYyxhLmJlZm9yZShvKSxhLmFmdGVyKG8pLF90LmVtcHR5KTtpZihsJiZsLnNsaWNlLnNpemU8bC50by1sLmZyb20pe2lmKGUpe2xldCBwPXMudHIuc3RlcChsKTtwLnNldFNlbGVjdGlvbihJdihuLCJlbmQiKT9RdC5maW5kRnJvbShwLmRvYy5yZXNvbHZlKHAubWFwcGluZy5tYXAoci5wb3MsLTEpKSwtMSk6RnQuY3JlYXRlKHAuZG9jLHIucG9zLW4ubm9kZVNpemUpKSxlKHAuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9aWYobz09MXx8YS5ub2RlKG8tMSkuY2hpbGRDb3VudD4xKWJyZWFrfXJldHVybiBuLmlzQXRvbSYmci5kZXB0aD09YS5kZXB0aC0xPyhlJiZlKHMudHIuZGVsZXRlKHIucG9zLW4ubm9kZVNpemUsci5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX0sImpvaW5CYWNrd2FyZCIpLGJhdD1pKChzLGUsdCk9PntsZXQgYT1KcGEocyx0KTtpZighYSlyZXR1cm4hMTtsZXQgcj11YXQoYSk7cmV0dXJuIHI/ZWhhKHMscixlKTohMX0sImpvaW5UZXh0YmxvY2tCYWNrd2FyZCIpLHZhdD1pKChzLGUsdCk9PntsZXQgYT10aGEocyx0KTtpZighYSlyZXR1cm4hMTtsZXQgcj1wYXQoYSk7cmV0dXJuIHI/ZWhhKHMscixlKTohMX0sImpvaW5UZXh0YmxvY2tGb3J3YXJkIik7aShlaGEsImpvaW5UZXh0YmxvY2tzQXJvdW5kIik7aShJdiwidGV4dGJsb2NrQXQiKTtsbGU9aSgocyxlLHQpPT57bGV0eyRoZWFkOmEsZW1wdHk6cn09cy5zZWxlY3Rpb24sbj1hO2lmKCFyKXJldHVybiExO2lmKGEucGFyZW50LmlzVGV4dGJsb2NrKXtpZih0PyF0LmVuZE9mVGV4dGJsb2NrKCJiYWNrd2FyZCIscyk6YS5wYXJlbnRPZmZzZXQ+MClyZXR1cm4hMTtuPXVhdChhKX1sZXQgbz1uJiZuLm5vZGVCZWZvcmU7cmV0dXJuIW98fCFGdC5pc1NlbGVjdGFibGUobyk/ITE6KGUmJmUocy50ci5zZXRTZWxlY3Rpb24oRnQuY3JlYXRlKHMuZG9jLG4ucG9zLW8ubm9kZVNpemUpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlQmFja3dhcmQiKTtpKHVhdCwiZmluZEN1dEJlZm9yZSIpO2kodGhhLCJhdEJsb2NrRW5kIik7Y2xlPWkoKHMsZSx0KT0+e2xldCBhPXRoYShzLHQpO2lmKCFhKXJldHVybiExO2xldCByPXBhdChhKTtpZighcilyZXR1cm4hMTtsZXQgbj1yLm5vZGVBZnRlcjtpZihpaGEocyxyLGUsMSkpcmV0dXJuITA7aWYoYS5wYXJlbnQuY29udGVudC5zaXplPT0wJiYoSXYobiwic3RhcnQiKXx8RnQuaXNTZWxlY3RhYmxlKG4pKSl7bGV0IG89X3Yocy5kb2MsYS5iZWZvcmUoKSxhLmFmdGVyKCksX3QuZW1wdHkpO2lmKG8mJm8uc2xpY2Uuc2l6ZTxvLnRvLW8uZnJvbSl7aWYoZSl7bGV0IGw9cy50ci5zdGVwKG8pO2wuc2V0U2VsZWN0aW9uKEl2KG4sInN0YXJ0Iik/UXQuZmluZEZyb20obC5kb2MucmVzb2x2ZShsLm1hcHBpbmcubWFwKHIucG9zKSksMSk6RnQuY3JlYXRlKGwuZG9jLGwubWFwcGluZy5tYXAoci5wb3MpKSksZShsLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1yZXR1cm4gbi5pc0F0b20mJnIuZGVwdGg9PWEuZGVwdGgtMT8oZSYmZShzLnRyLmRlbGV0ZShyLnBvcyxyLnBvcytuLm5vZGVTaXplKS5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9LCJqb2luRm9yd2FyZCIpLGRsZT1pKChzLGUsdCk9PntsZXR7JGhlYWQ6YSxlbXB0eTpyfT1zLnNlbGVjdGlvbixuPWE7aWYoIXIpcmV0dXJuITE7aWYoYS5wYXJlbnQuaXNUZXh0YmxvY2spe2lmKHQ/IXQuZW5kT2ZUZXh0YmxvY2soImZvcndhcmQiLHMpOmEucGFyZW50T2Zmc2V0PGEucGFyZW50LmNvbnRlbnQuc2l6ZSlyZXR1cm4hMTtuPXBhdChhKX1sZXQgbz1uJiZuLm5vZGVBZnRlcjtyZXR1cm4hb3x8IUZ0LmlzU2VsZWN0YWJsZShvKT8hMTooZSYmZShzLnRyLnNldFNlbGVjdGlvbihGdC5jcmVhdGUocy5kb2Msbi5wb3MpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlRm9yd2FyZCIpO2kocGF0LCJmaW5kQ3V0QWZ0ZXIiKTt4YXQ9aSgocyxlKT0+e2xldCB0PXMuc2VsZWN0aW9uLGE9dCBpbnN0YW5jZW9mIEZ0LHI7aWYoYSl7aWYodC5ub2RlLmlzVGV4dGJsb2NrfHwhWmwocy5kb2MsdC5mcm9tKSlyZXR1cm4hMTtyPXQuZnJvbX1lbHNlIGlmKHI9WTgocy5kb2MsdC5mcm9tLC0xKSxyPT1udWxsKXJldHVybiExO2lmKGUpe2xldCBuPXMudHIuam9pbihyKTthJiZuLnNldFNlbGVjdGlvbihGdC5jcmVhdGUobi5kb2Msci1zLmRvYy5yZXNvbHZlKHIpLm5vZGVCZWZvcmUubm9kZVNpemUpKSxlKG4uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJqb2luVXAiKSx5YXQ9aSgocyxlKT0+e2xldCB0PXMuc2VsZWN0aW9uLGE7aWYodCBpbnN0YW5jZW9mIEZ0KXtpZih0Lm5vZGUuaXNUZXh0YmxvY2t8fCFabChzLmRvYyx0LnRvKSlyZXR1cm4hMTthPXQudG99ZWxzZSBpZihhPVk4KHMuZG9jLHQudG8sMSksYT09bnVsbClyZXR1cm4hMTtyZXR1cm4gZSYmZShzLnRyLmpvaW4oYSkuc2Nyb2xsSW50b1ZpZXcoKSksITB9LCJqb2luRG93biIpLHdhdD1pKChzLGUpPT57bGV0eyRmcm9tOnQsJHRvOmF9PXMuc2VsZWN0aW9uLHI9dC5ibG9ja1JhbmdlKGEpLG49ciYmUGQocik7cmV0dXJuIG49PW51bGw/ITE6KGUmJmUocy50ci5saWZ0KHIsbikuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibGlmdCIpLHVsZT1pKChzLGUpPT57bGV0eyRoZWFkOnQsJGFuY2hvcjphfT1zLnNlbGVjdGlvbjtyZXR1cm4hdC5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCF0LnNhbWVQYXJlbnQoYSk/ITE6KGUmJmUocy50ci5pbnNlcnRUZXh0KGAKYCkuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibmV3bGluZUluQ29kZSIpO2koaGF0LCJkZWZhdWx0QmxvY2tBdCIpO3BsZT1pKChzLGUpPT57bGV0eyRoZWFkOnQsJGFuY2hvcjphfT1zLnNlbGVjdGlvbjtpZighdC5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCF0LnNhbWVQYXJlbnQoYSkpcmV0dXJuITE7bGV0IHI9dC5ub2RlKC0xKSxuPXQuaW5kZXhBZnRlcigtMSksbz1oYXQoci5jb250ZW50TWF0Y2hBdChuKSk7aWYoIW98fCFyLmNhblJlcGxhY2VXaXRoKG4sbixvKSlyZXR1cm4hMTtpZihlKXtsZXQgbD10LmFmdGVyKCkscD1zLnRyLnJlcGxhY2VXaXRoKGwsbCxvLmNyZWF0ZUFuZEZpbGwoKSk7cC5zZXRTZWxlY3Rpb24oUXQubmVhcihwLmRvYy5yZXNvbHZlKGwpLDEpKSxlKHAuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJleGl0Q29kZSIpLGhsZT1pKChzLGUpPT57bGV0IHQ9cy5zZWxlY3Rpb24seyRmcm9tOmEsJHRvOnJ9PXQ7aWYodCBpbnN0YW5jZW9mIG5ufHxhLnBhcmVudC5pbmxpbmVDb250ZW50fHxyLnBhcmVudC5pbmxpbmVDb250ZW50KXJldHVybiExO2xldCBuPWhhdChyLnBhcmVudC5jb250ZW50TWF0Y2hBdChyLmluZGV4QWZ0ZXIoKSkpO2lmKCFufHwhbi5pc1RleHRibG9jaylyZXR1cm4hMTtpZihlKXtsZXQgbz0oIWEucGFyZW50T2Zmc2V0JiZyLmluZGV4KCk8ci5wYXJlbnQuY2hpbGRDb3VudD9hOnIpLnBvcyxsPXMudHIuaW5zZXJ0KG8sbi5jcmVhdGVBbmRGaWxsKCkpO2wuc2V0U2VsZWN0aW9uKEp0LmNyZWF0ZShsLmRvYyxvKzEpKSxlKGwuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJjcmVhdGVQYXJhZ3JhcGhOZWFyIiksZmxlPWkoKHMsZSk9PntsZXR7JGN1cnNvcjp0fT1zLnNlbGVjdGlvbjtpZighdHx8dC5wYXJlbnQuY29udGVudC5zaXplKXJldHVybiExO2lmKHQuZGVwdGg+MSYmdC5hZnRlcigpIT10LmVuZCgtMSkpe2xldCBuPXQuYmVmb3JlKCk7aWYoemwocy5kb2MsbikpcmV0dXJuIGUmJmUocy50ci5zcGxpdChuKS5zY3JvbGxJbnRvVmlldygpKSwhMH1sZXQgYT10LmJsb2NrUmFuZ2UoKSxyPWEmJlBkKGEpO3JldHVybiByPT1udWxsPyExOihlJiZlKHMudHIubGlmdChhLHIpLnNjcm9sbEludG9WaWV3KCkpLCEwKX0sImxpZnRFbXB0eUJsb2NrIik7aShhaGEsInNwbGl0QmxvY2tBcyIpO2ZhdD1haGEoKSxmWWE9aSgocyxlKT0+ZmF0KHMsZSYmKHQ9PntsZXQgYT1zLnN0b3JlZE1hcmtzfHxzLnNlbGVjdGlvbi4kdG8ucGFyZW50T2Zmc2V0JiZzLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpO2EmJnQuZW5zdXJlTWFya3MoYSksZSh0KX0pKSwic3BsaXRCbG9ja0tlZXBNYXJrcyIpLGthdD1pKChzLGUpPT57bGV0eyRmcm9tOnQsdG86YX09cy5zZWxlY3Rpb24scixuPXQuc2hhcmVkRGVwdGgoYSk7cmV0dXJuIG49PTA/ITE6KHI9dC5iZWZvcmUobiksZSYmZShzLnRyLnNldFNlbGVjdGlvbihGdC5jcmVhdGUocy5kb2MscikpKSwhMCl9LCJzZWxlY3RQYXJlbnROb2RlIiksc2hhPWkoKHMsZSk9PihlJiZlKHMudHIuc2V0U2VsZWN0aW9uKG5ldyBubihzLmRvYykpKSwhMCksInNlbGVjdEFsbCIpO2kobVlhLCJqb2luTWF5YmVDbGVhciIpO2koaWhhLCJkZWxldGVCYXJyaWVyIik7aShyaGEsInNlbGVjdFRleHRibG9ja1NpZGUiKTttbGU9cmhhKC0xKSxnbGU9cmhhKDEpO2koU2F0LCJ3cmFwSW4iKTtpKGJsZSwic2V0QmxvY2tUeXBlIik7aShnWWEsIm1hcmtBcHBsaWVzIik7aShiWWEsInJlbW92ZUlubGluZUF0b21zIik7aSh2WWEsInRvZ2dsZU1hcmsiKTtpKHhZYSwid3JhcERpc3BhdGNoRm9ySm9pbiIpO2koeVlhLCJhdXRvSm9pbiIpO2kob2xlLCJjaGFpbkNvbW1hbmRzIik7bWF0PW9sZShzWCxubGUsbGxlKSxvaGE9b2xlKHNYLGNsZSxkbGUpLE5kPXtFbnRlcjpvbGUodWxlLGhsZSxmbGUsZmF0KSwiTW9kLUVudGVyIjpwbGUsQmFja3NwYWNlOm1hdCwiTW9kLUJhY2tzcGFjZSI6bWF0LCJTaGlmdC1CYWNrc3BhY2UiOm1hdCxEZWxldGU6b2hhLCJNb2QtRGVsZXRlIjpvaGEsIk1vZC1hIjpzaGF9LGdhdD17IkN0cmwtaCI6TmQuQmFja3NwYWNlLCJBbHQtQmFja3NwYWNlIjpOZFsiTW9kLUJhY2tzcGFjZSJdLCJDdHJsLWQiOk5kLkRlbGV0ZSwiQ3RybC1BbHQtQmFja3NwYWNlIjpOZFsiTW9kLURlbGV0ZSJdLCJBbHQtRGVsZXRlIjpOZFsiTW9kLURlbGV0ZSJdLCJBbHQtZCI6TmRbIk1vZC1EZWxldGUiXSwiQ3RybC1hIjptbGUsIkN0cmwtZSI6Z2xlfTtmb3IobGV0IHMgaW4gTmQpZ2F0W3NdPU5kW3NdO3dZYT10eXBlb2YgbmF2aWdhdG9yPCJ1Ij8vTWFjfGlQKGhvbmV8W29hXWQpLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk6dHlwZW9mIG9zPCJ1IiYmb3MucGxhdGZvcm0/b3MucGxhdGZvcm0oKT09ImRhcndpbiI6ITEsa1lhPXdZYT9nYXQ6TmR9KTt2YXIgbGhhPWcoKCk9PntuaGEoKX0pO2Z1bmN0aW9uIF9hdChzLGUpe2xldCB0PXt9O2ZvcihsZXQgYSBpbiBzKXRbYV09c1thXTtmb3IobGV0IGEgaW4gZSl0W2FdPWVbYV07cmV0dXJuIHR9ZnVuY3Rpb24gellhKHMsZSx0KXtyZXR1cm4gcy5hcHBlbmQoe29yZGVyZWRfbGlzdDpfYXQoY2hhLHtjb250ZW50OiJsaXN0X2l0ZW0rIixncm91cDp0fSksYnVsbGV0X2xpc3Q6X2F0KGRoYSx7Y29udGVudDoibGlzdF9pdGVtKyIsZ3JvdXA6dH0pLGxpc3RfaXRlbTpfYXQodWhhLHtjb250ZW50OmV9KX0pfWZ1bmN0aW9uIE1hdChzLGU9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uKHQsYSl7bGV0eyRmcm9tOnIsJHRvOm59PXQuc2VsZWN0aW9uLG89ci5ibG9ja1JhbmdlKG4pO2lmKCFvKXJldHVybiExO2xldCBsPWE/dC50cjpudWxsO3JldHVybiBwaGEobCxvLHMsZSk/KGEmJmEobC5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9fWZ1bmN0aW9uIHBoYShzLGUsdCxhPW51bGwpe2xldCByPSExLG49ZSxvPWUuJGZyb20uZG9jO2lmKGUuZGVwdGg+PTImJmUuJGZyb20ubm9kZShlLmRlcHRoLTEpLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQodCkmJmUuc3RhcnRJbmRleD09MCl7aWYoZS4kZnJvbS5pbmRleChlLmRlcHRoLTEpPT0wKXJldHVybiExO2xldCBwPW8ucmVzb2x2ZShlLnN0YXJ0LTIpO249bmV3IFNoKHAscCxlLmRlcHRoKSxlLmVuZEluZGV4PGUucGFyZW50LmNoaWxkQ291bnQmJihlPW5ldyBTaChlLiRmcm9tLG8ucmVzb2x2ZShlLiR0by5lbmQoZS5kZXB0aCkpLGUuZGVwdGgpKSxyPSEwfWxldCBsPUs4KG4sdCxhLGUpO3JldHVybiBsPyhzJiZDWWEocyxlLGwscix0KSwhMCk6ITF9ZnVuY3Rpb24gQ1lhKHMsZSx0LGEscil7bGV0IG49cnQuZW1wdHk7Zm9yKGxldCB1PXQubGVuZ3RoLTE7dT49MDt1LS0pbj1ydC5mcm9tKHRbdV0udHlwZS5jcmVhdGUodFt1XS5hdHRycyxuKSk7cy5zdGVwKG5ldyBkcihlLnN0YXJ0LShhPzI6MCksZS5lbmQsZS5zdGFydCxlLmVuZCxuZXcgX3QobiwwLDApLHQubGVuZ3RoLCEwKSk7bGV0IG89MDtmb3IobGV0IHU9MDt1PHQubGVuZ3RoO3UrKyl0W3VdLnR5cGU9PXImJihvPXUrMSk7bGV0IGw9dC5sZW5ndGgtbyxwPWUuc3RhcnQrdC5sZW5ndGgtKGE/MjowKSxkPWUucGFyZW50O2ZvcihsZXQgdT1lLnN0YXJ0SW5kZXgsYz1lLmVuZEluZGV4LGI9ITA7dTxjO3UrKyxiPSExKSFiJiZ6bChzLmRvYyxwLGwpJiYocy5zcGxpdChwLGwpLHArPTIqbCkscCs9ZC5jaGlsZCh1KS5ub2RlU2l6ZTtyZXR1cm4gc31mdW5jdGlvbiBoaGEocyxlKXtyZXR1cm4gZnVuY3Rpb24odCxhKXtsZXR7JGZyb206ciwkdG86bixub2RlOm99PXQuc2VsZWN0aW9uO2lmKG8mJm8uaXNCbG9ja3x8ci5kZXB0aDwyfHwhci5zYW1lUGFyZW50KG4pKXJldHVybiExO2xldCBsPXIubm9kZSgtMSk7aWYobC50eXBlIT1zKXJldHVybiExO2lmKHIucGFyZW50LmNvbnRlbnQuc2l6ZT09MCYmci5ub2RlKC0xKS5jaGlsZENvdW50PT1yLmluZGV4QWZ0ZXIoLTEpKXtpZihyLmRlcHRoPT0zfHxyLm5vZGUoLTMpLnR5cGUhPXN8fHIuaW5kZXgoLTIpIT1yLm5vZGUoLTIpLmNoaWxkQ291bnQtMSlyZXR1cm4hMTtpZihhKXtsZXQgYz1ydC5lbXB0eSxiPXIuaW5kZXgoLTEpPzE6ci5pbmRleCgtMik/MjozO2ZvcihsZXQgeT1yLmRlcHRoLWI7eT49ci5kZXB0aC0zO3ktLSljPXJ0LmZyb20oci5ub2RlKHkpLmNvcHkoYykpO2xldCB2PXIuaW5kZXhBZnRlcigtMSk8ci5ub2RlKC0yKS5jaGlsZENvdW50PzE6ci5pbmRleEFmdGVyKC0yKTxyLm5vZGUoLTMpLmNoaWxkQ291bnQ/MjozO2M9Yy5hcHBlbmQocnQuZnJvbShzLmNyZWF0ZUFuZEZpbGwoKSkpO2xldCB4PXIuYmVmb3JlKHIuZGVwdGgtKGItMSkpLG09dC50ci5yZXBsYWNlKHgsci5hZnRlcigtdiksbmV3IF90KGMsNC1iLDApKSxmPS0xO20uZG9jLm5vZGVzQmV0d2Vlbih4LG0uZG9jLmNvbnRlbnQuc2l6ZSwoeSxNKT0+e2lmKGY+LTEpcmV0dXJuITE7eS5pc1RleHRibG9jayYmeS5jb250ZW50LnNpemU9PTAmJihmPU0rMSl9KSxmPi0xJiZtLnNldFNlbGVjdGlvbihRdC5uZWFyKG0uZG9jLnJlc29sdmUoZikpKSxhKG0uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9bGV0IHA9bi5wb3M9PXIuZW5kKCk/bC5jb250ZW50TWF0Y2hBdCgwKS5kZWZhdWx0VHlwZTpudWxsLGQ9dC50ci5kZWxldGUoci5wb3Msbi5wb3MpLHU9cD9bZT97dHlwZTpzLGF0dHJzOmV9Om51bGwse3R5cGU6cH1dOnZvaWQgMDtyZXR1cm4gemwoZC5kb2Msci5wb3MsMix1KT8oYSYmYShkLnNwbGl0KHIucG9zLDIsdSkuc2Nyb2xsSW50b1ZpZXcoKSksITApOiExfX1mdW5jdGlvbiBUWWEocyxlKXtsZXQgdD1oaGEocyxlKTtyZXR1cm4oYSxyKT0+dChhLHImJihuPT57bGV0IG89YS5zdG9yZWRNYXJrc3x8YS5zZWxlY3Rpb24uJHRvLnBhcmVudE9mZnNldCYmYS5zZWxlY3Rpb24uJGZyb20ubWFya3MoKTtvJiZuLmVuc3VyZU1hcmtzKG8pLHIobil9KSl9ZnVuY3Rpb24gemF0KHMpe3JldHVybiBmdW5jdGlvbihlLHQpe2xldHskZnJvbTphLCR0bzpyfT1lLnNlbGVjdGlvbixuPWEuYmxvY2tSYW5nZShyLG89Pm8uY2hpbGRDb3VudD4wJiZvLmZpcnN0Q2hpbGQudHlwZT09cyk7cmV0dXJuIG4/dD9hLm5vZGUobi5kZXB0aC0xKS50eXBlPT1zPyRZYShlLHQscyxuKTpEWWEoZSx0LG4pOiEwOiExfX1mdW5jdGlvbiAkWWEocyxlLHQsYSl7bGV0IHI9cy50cixuPWEuZW5kLG89YS4kdG8uZW5kKGEuZGVwdGgpO248byYmKHIuc3RlcChuZXcgZHIobi0xLG8sbixvLG5ldyBfdChydC5mcm9tKHQuY3JlYXRlKG51bGwsYS5wYXJlbnQuY29weSgpKSksMSwwKSwxLCEwKSksYT1uZXcgU2goci5kb2MucmVzb2x2ZShhLiRmcm9tLnBvcyksci5kb2MucmVzb2x2ZShvKSxhLmRlcHRoKSk7bGV0IGw9UGQoYSk7aWYobD09bnVsbClyZXR1cm4hMTtyLmxpZnQoYSxsKTtsZXQgcD1yLmRvYy5yZXNvbHZlKHIubWFwcGluZy5tYXAobiwtMSktMSk7cmV0dXJuIFpsKHIuZG9jLHAucG9zKSYmcC5ub2RlQmVmb3JlLnR5cGU9PXAubm9kZUFmdGVyLnR5cGUmJnIuam9pbihwLnBvcyksZShyLnNjcm9sbEludG9WaWV3KCkpLCEwfWZ1bmN0aW9uIERZYShzLGUsdCl7bGV0IGE9cy50cixyPXQucGFyZW50O2ZvcihsZXQgdj10LmVuZCx4PXQuZW5kSW5kZXgtMSxtPXQuc3RhcnRJbmRleDt4Pm07eC0tKXYtPXIuY2hpbGQoeCkubm9kZVNpemUsYS5kZWxldGUodi0xLHYrMSk7bGV0IG49YS5kb2MucmVzb2x2ZSh0LnN0YXJ0KSxvPW4ubm9kZUFmdGVyO2lmKGEubWFwcGluZy5tYXAodC5lbmQpIT10LnN0YXJ0K24ubm9kZUFmdGVyLm5vZGVTaXplKXJldHVybiExO2xldCBsPXQuc3RhcnRJbmRleD09MCxwPXQuZW5kSW5kZXg9PXIuY2hpbGRDb3VudCxkPW4ubm9kZSgtMSksdT1uLmluZGV4KC0xKTtpZighZC5jYW5SZXBsYWNlKHUrKGw/MDoxKSx1KzEsby5jb250ZW50LmFwcGVuZChwP3J0LmVtcHR5OnJ0LmZyb20ocikpKSlyZXR1cm4hMTtsZXQgYz1uLnBvcyxiPWMrby5ub2RlU2l6ZTtyZXR1cm4gYS5zdGVwKG5ldyBkcihjLShsPzE6MCksYisocD8xOjApLGMrMSxiLTEsbmV3IF90KChsP3J0LmVtcHR5OnJ0LmZyb20oci5jb3B5KHJ0LmVtcHR5KSkpLmFwcGVuZChwP3J0LmVtcHR5OnJ0LmZyb20oci5jb3B5KHJ0LmVtcHR5KSkpLGw/MDoxLHA/MDoxKSxsPzA6MSkpLGUoYS5zY3JvbGxJbnRvVmlldygpKSwhMH1mdW5jdGlvbiBDYXQocyl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7bGV0eyRmcm9tOmEsJHRvOnJ9PWUuc2VsZWN0aW9uLG49YS5ibG9ja1JhbmdlKHIsZD0+ZC5jaGlsZENvdW50PjAmJmQuZmlyc3RDaGlsZC50eXBlPT1zKTtpZighbilyZXR1cm4hMTtsZXQgbz1uLnN0YXJ0SW5kZXg7aWYobz09MClyZXR1cm4hMTtsZXQgbD1uLnBhcmVudCxwPWwuY2hpbGQoby0xKTtpZihwLnR5cGUhPXMpcmV0dXJuITE7aWYodCl7bGV0IGQ9cC5sYXN0Q2hpbGQmJnAubGFzdENoaWxkLnR5cGU9PWwudHlwZSx1PXJ0LmZyb20oZD9zLmNyZWF0ZSgpOm51bGwpLGM9bmV3IF90KHJ0LmZyb20ocy5jcmVhdGUobnVsbCxydC5mcm9tKGwudHlwZS5jcmVhdGUobnVsbCx1KSkpKSxkPzM6MSwwKSxiPW4uc3RhcnQsdj1uLmVuZDt0KGUudHIuc3RlcChuZXcgZHIoYi0oZD8zOjEpLHYsYix2LGMsMSwhMCkpLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX12YXIgU1lhLF9ZYSxNWWEsY2hhLGRoYSx1aGEsZmhhPWcoKCk9Pnt6aCgpO19oKCk7cnUoKTtTWWE9WyJvbCIsMF0sX1lhPVsidWwiLDBdLE1ZYT1bImxpIiwwXSxjaGE9e2F0dHJzOntvcmRlcjp7ZGVmYXVsdDoxLHZhbGlkYXRlOiJudW1iZXIifX0scGFyc2VET006W3t0YWc6Im9sIixnZXRBdHRycyhzKXtyZXR1cm57b3JkZXI6cy5oYXNBdHRyaWJ1dGUoInN0YXJ0Iik/K3MuZ2V0QXR0cmlidXRlKCJzdGFydCIpOjF9fX1dLHRvRE9NKHMpe3JldHVybiBzLmF0dHJzLm9yZGVyPT0xP1NZYTpbIm9sIix7c3RhcnQ6cy5hdHRycy5vcmRlcn0sMF19fSxkaGE9e3BhcnNlRE9NOlt7dGFnOiJ1bCJ9XSx0b0RPTSgpe3JldHVybiBfWWF9fSx1aGE9e3BhcnNlRE9NOlt7dGFnOiJsaSJ9XSx0b0RPTSgpe3JldHVybiBNWWF9LGRlZmluaW5nOiEwfTtpKF9hdCwiYWRkIik7aSh6WWEsImFkZExpc3ROb2RlcyIpO2koTWF0LCJ3cmFwSW5MaXN0Iik7aShwaGEsIndyYXBSYW5nZUluTGlzdCIpO2koQ1lhLCJkb1dyYXBJbkxpc3QiKTtpKGhoYSwic3BsaXRMaXN0SXRlbSIpO2koVFlhLCJzcGxpdExpc3RJdGVtS2VlcE1hcmtzIik7aSh6YXQsImxpZnRMaXN0SXRlbSIpO2koJFlhLCJsaWZ0VG9PdXRlckxpc3QiKTtpKERZYSwibGlmdE91dE9mTGlzdCIpO2koQ2F0LCJzaW5rTGlzdEl0ZW0iKX0pO3ZhciBtaGE9ZygoKT0+e2ZoYSgpfSk7dmFyIEthdD17fTt5dChLYXQse0NvbW1hbmRNYW5hZ2VyOigpPT5QaCxFZGl0b3I6KCk9PklsZSxFeHRlbnNpb246KCk9PndpLElucHV0UnVsZTooKT0+dXUsTWFyazooKT0+RG8sTm9kZTooKT0+c2ksTm9kZVBvczooKT0+aFgsTm9kZVZpZXc6KCk9PkFsZSxQYXN0ZVJ1bGU6KCk9Pm9nLFRyYWNrZXI6KCk9Pk5sZSxjYWxsT3JSZXR1cm46KCk9PmNhLGNhbkluc2VydE5vZGU6KCk9PnFsZSxjb21iaW5lVHJhbnNhY3Rpb25TdGVwczooKT0+UmxlLGNyZWF0ZUNoYWluYWJsZVN0YXRlOigpPT5BdixjcmVhdGVEb2N1bWVudDooKT0+Y1gsY3JlYXRlTm9kZUZyb21Db250ZW50OigpPT5jZyxjcmVhdGVTdHlsZVRhZzooKT0+R2F0LGRlZmF1bHRCbG9ja0F0OigpPT5IYXQsZGVsZXRlUHJvcHM6KCk9PkRsZSxlbGVtZW50RnJvbVN0cmluZzooKT0+bGcsZXNjYXBlRm9yUmVnRXg6KCk9PkhoYSxleHRlbnNpb25zOigpPT5CaGEsZmluZENoaWxkcmVuOigpPT5MaGEsZmluZENoaWxkcmVuSW5SYW5nZTooKT0+T2xlLGZpbmREdXBsaWNhdGVzOigpPT5PYXQsZmluZFBhcmVudE5vZGU6KCk9PnF2LGZpbmRQYXJlbnROb2RlQ2xvc2VzdFRvUG9zOigpPT5xYXQsZnJvbVN0cmluZzooKT0+UGF0LGdlbmVyYXRlSFRNTDooKT0+RWhhLGdlbmVyYXRlSlNPTjooKT0+UGhhLGdlbmVyYXRlVGV4dDooKT0+SWhhLGdldEF0dHJpYnV0ZXM6KCk9PmZYLGdldEF0dHJpYnV0ZXNGcm9tRXh0ZW5zaW9uczooKT0+d2xlLGdldENoYW5nZWRSYW5nZXM6KCk9PkZsZSxnZXREZWJ1Z0pTT046KCk9PlVhdCxnZXRFeHRlbnNpb25GaWVsZDooKT0+RHQsZ2V0SFRNTEZyb21GcmFnbWVudDooKT0+UnYsZ2V0TWFya0F0dHJpYnV0ZXM6KCk9PkxsZSxnZXRNYXJrUmFuZ2U6KCk9PmxYLGdldE1hcmtUeXBlOigpPT5SZCxnZXRNYXJrc0JldHdlZW46KCk9PlZ2LGdldE5vZGVBdFBvc2l0aW9uOigpPT5BaGEsZ2V0Tm9kZUF0dHJpYnV0ZXM6KCk9PmphdCxnZXROb2RlVHlwZTooKT0+THIsZ2V0UmVuZGVyZWRBdHRyaWJ1dGVzOigpPT5pWCxnZXRTY2hlbWE6KCk9PmRYLGdldFNjaGVtYUJ5UmVzb2x2ZWRFeHRlbnNpb25zOigpPT5fbGUsZ2V0U2NoZW1hVHlwZUJ5TmFtZTooKT0+clgsZ2V0U2NoZW1hVHlwZU5hbWVCeU5hbWU6KCk9Pkh2LGdldFNwbGl0dGVkQXR0cmlidXRlczooKT0+anYsZ2V0VGV4dDooKT0+RWxlLGdldFRleHRCZXR3ZWVuOigpPT56bGUsZ2V0VGV4dENvbnRlbnRGcm9tTm9kZXM6KCk9PklhdCxnZXRUZXh0U2VyaWFsaXplcnNGcm9tU2NoZW1hOigpPT5uWCxpbmplY3RFeHRlbnNpb25BdHRyaWJ1dGVzVG9QYXJzZVJ1bGU6KCk9PlNsZSxpbnB1dFJ1bGVzUGx1Z2luOigpPT5BYXQsaXNBY3RpdmU6KCk9PldhdCxpc0F0RW5kT2ZOb2RlOigpPT5OaGEsaXNBdFN0YXJ0T2ZOb2RlOigpPT5SaGEsaXNFbXB0eU9iamVjdDooKT0+RWF0LGlzRXh0ZW5zaW9uUnVsZXNFbmFibGVkOigpPT5NbGUsaXNGdW5jdGlvbjooKT0+a2xlLGlzTGlzdDooKT0+UGxlLGlzTWFjT1M6KCk9PiRsZSxpc01hcmtBY3RpdmU6KCk9PnVYLGlzTm9kZUFjdGl2ZTooKT0+ZGcsaXNOb2RlRW1wdHk6KCk9PnBYLGlzTm9kZVNlbGVjdGlvbjooKT0+QmxlLGlzTnVtYmVyOigpPT5OYXQsaXNQbGFpbk9iamVjdDooKT0+T3YsaXNSZWdFeHA6KCk9Pm9YLGlzU2FmYXJpOigpPT5GYXQsaXNTdHJpbmc6KCk9PnFoYSxpc1RleHRTZWxlY3Rpb246KCk9PkNsZSxpc2lPUzooKT0+bmcsbWFya0lucHV0UnVsZTooKT0+cWMsbWFya1Bhc3RlUnVsZTooKT0+VGwsbWVyZ2VBdHRyaWJ1dGVzOigpPT5hcyxtZXJnZURlZXA6KCk9PkZ2LG1pbk1heDooKT0+YTIsbm9kZUlucHV0UnVsZTooKT0+SGxlLG5vZGVQYXN0ZVJ1bGU6KCk9PmpoYSxvYmplY3RJbmNsdWRlczooKT0+QnYscGFzdGVSdWxlc1BsdWdpbjooKT0+UmF0LHBvc1RvRE9NUmVjdDooKT0+T2hhLHJlbW92ZUR1cGxpY2F0ZXM6KCk9PlZhdCxyZXNvbHZlRm9jdXNQb3NpdGlvbjooKT0+VGxlLHJld3JpdGVVbmtub3duQ29udGVudDooKT0+RmhhLHNlbGVjdGlvblRvSW5zZXJ0aW9uRW5kOigpPT5CYXQsc3BsaXRFeHRlbnNpb25zOigpPT5Odix0ZXh0SW5wdXRSdWxlOigpPT5oaSx0ZXh0UGFzdGVSdWxlOigpPT5WaGEsdGV4dGJsb2NrVHlwZUlucHV0UnVsZTooKT0+dWcsd3JhcHBpbmdJbnB1dFJ1bGU6KCk9Pk9kfSk7ZnVuY3Rpb24gQXYocyl7bGV0e3N0YXRlOmUsdHJhbnNhY3Rpb246dH09cyx7c2VsZWN0aW9uOmF9PXQse2RvYzpyfT10LHtzdG9yZWRNYXJrczpufT10O3JldHVybnsuLi5lLGFwcGx5OmUuYXBwbHkuYmluZChlKSxhcHBseVRyYW5zYWN0aW9uOmUuYXBwbHlUcmFuc2FjdGlvbi5iaW5kKGUpLHBsdWdpbnM6ZS5wbHVnaW5zLHNjaGVtYTplLnNjaGVtYSxyZWNvbmZpZ3VyZTplLnJlY29uZmlndXJlLmJpbmQoZSksdG9KU09OOmUudG9KU09OLmJpbmQoZSksZ2V0IHN0b3JlZE1hcmtzKCl7cmV0dXJuIG59LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gYX0sZ2V0IGRvYygpe3JldHVybiByfSxnZXQgdHIoKXtyZXR1cm4gYT10LnNlbGVjdGlvbixyPXQuZG9jLG49dC5zdG9yZWRNYXJrcyx0fX19ZnVuY3Rpb24gRHQocyxlLHQpe3JldHVybiBzLmNvbmZpZ1tlXT09PXZvaWQgMCYmcy5wYXJlbnQ/RHQocy5wYXJlbnQsZSx0KTp0eXBlb2Ygcy5jb25maWdbZV09PSJmdW5jdGlvbiI/cy5jb25maWdbZV0uYmluZCh7Li4udCxwYXJlbnQ6cy5wYXJlbnQ/RHQocy5wYXJlbnQsZSx0KTpudWxsfSk6cy5jb25maWdbZV19ZnVuY3Rpb24gTnYocyl7bGV0IGU9cy5maWx0ZXIocj0+ci50eXBlPT09ImV4dGVuc2lvbiIpLHQ9cy5maWx0ZXIocj0+ci50eXBlPT09Im5vZGUiKSxhPXMuZmlsdGVyKHI9PnIudHlwZT09PSJtYXJrIik7cmV0dXJue2Jhc2VFeHRlbnNpb25zOmUsbm9kZUV4dGVuc2lvbnM6dCxtYXJrRXh0ZW5zaW9uczphfX1mdW5jdGlvbiB3bGUocyl7bGV0IGU9W10se25vZGVFeHRlbnNpb25zOnQsbWFya0V4dGVuc2lvbnM6YX09TnYocykscj1bLi4udCwuLi5hXSxuPXtkZWZhdWx0Om51bGwscmVuZGVyZWQ6ITAscmVuZGVySFRNTDpudWxsLHBhcnNlSFRNTDpudWxsLGtlZXBPblNwbGl0OiEwLGlzUmVxdWlyZWQ6ITF9O3JldHVybiBzLmZvckVhY2gobz0+e2xldCBsPXtuYW1lOm8ubmFtZSxvcHRpb25zOm8ub3B0aW9ucyxzdG9yYWdlOm8uc3RvcmFnZSxleHRlbnNpb25zOnJ9LHA9RHQobywiYWRkR2xvYmFsQXR0cmlidXRlcyIsbCk7aWYoIXApcmV0dXJuO3AoKS5mb3JFYWNoKHU9Pnt1LnR5cGVzLmZvckVhY2goYz0+e09iamVjdC5lbnRyaWVzKHUuYXR0cmlidXRlcykuZm9yRWFjaCgoW2Isdl0pPT57ZS5wdXNoKHt0eXBlOmMsbmFtZTpiLGF0dHJpYnV0ZTp7Li4ubiwuLi52fX0pfSl9KX0pfSksci5mb3JFYWNoKG89PntsZXQgbD17bmFtZTpvLm5hbWUsb3B0aW9uczpvLm9wdGlvbnMsc3RvcmFnZTpvLnN0b3JhZ2V9LHA9RHQobywiYWRkQXR0cmlidXRlcyIsbCk7aWYoIXApcmV0dXJuO2xldCBkPXAoKTtPYmplY3QuZW50cmllcyhkKS5mb3JFYWNoKChbdSxjXSk9PntsZXQgYj17Li4ubiwuLi5jfTt0eXBlb2YgYj8uZGVmYXVsdD09ImZ1bmN0aW9uIiYmKGIuZGVmYXVsdD1iLmRlZmF1bHQoKSksYj8uaXNSZXF1aXJlZCYmYj8uZGVmYXVsdD09PXZvaWQgMCYmZGVsZXRlIGIuZGVmYXVsdCxlLnB1c2goe3R5cGU6by5uYW1lLG5hbWU6dSxhdHRyaWJ1dGU6Yn0pfSl9KSxlfWZ1bmN0aW9uIExyKHMsZSl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXtpZighZS5ub2Rlc1tzXSl0aHJvdyBFcnJvcihgVGhlcmUgaXMgbm8gbm9kZSB0eXBlIG5hbWVkICcke3N9Jy4gTWF5YmUgeW91IGZvcmdvdCB0byBhZGQgdGhlIGV4dGVuc2lvbj9gKTtyZXR1cm4gZS5ub2Rlc1tzXX1yZXR1cm4gc31mdW5jdGlvbiBhcyguLi5zKXtyZXR1cm4gcy5maWx0ZXIoZT0+ISFlKS5yZWR1Y2UoKGUsdCk9PntsZXQgYT17Li4uZX07cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKFtyLG5dKT0+e2lmKCFhW3JdKXthW3JdPW47cmV0dXJufWlmKHI9PT0iY2xhc3MiKXtsZXQgbD1uP1N0cmluZyhuKS5zcGxpdCgiICIpOltdLHA9YVtyXT9hW3JdLnNwbGl0KCIgIik6W10sZD1sLmZpbHRlcih1PT4hcC5pbmNsdWRlcyh1KSk7YVtyXT1bLi4ucCwuLi5kXS5qb2luKCIgIil9ZWxzZSBpZihyPT09InN0eWxlIil7bGV0IGw9bj9uLnNwbGl0KCI7IikubWFwKHU9PnUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W10scD1hW3JdP2Fbcl0uc3BsaXQoIjsiKS5tYXAodT0+dS50cmltKCkpLmZpbHRlcihCb29sZWFuKTpbXSxkPW5ldyBNYXA7cC5mb3JFYWNoKHU9PntsZXRbYyxiXT11LnNwbGl0KCI6IikubWFwKHY9PnYudHJpbSgpKTtkLnNldChjLGIpfSksbC5mb3JFYWNoKHU9PntsZXRbYyxiXT11LnNwbGl0KCI6IikubWFwKHY9PnYudHJpbSgpKTtkLnNldChjLGIpfSksYVtyXT1BcnJheS5mcm9tKGQuZW50cmllcygpKS5tYXAoKFt1LGNdKT0+YCR7dX06ICR7Y31gKS5qb2luKCI7ICIpfWVsc2UgYVtyXT1ufSksYX0se30pfWZ1bmN0aW9uIGlYKHMsZSl7cmV0dXJuIGUuZmlsdGVyKHQ9PnQudHlwZT09PXMudHlwZS5uYW1lKS5maWx0ZXIodD0+dC5hdHRyaWJ1dGUucmVuZGVyZWQpLm1hcCh0PT50LmF0dHJpYnV0ZS5yZW5kZXJIVE1MP3QuYXR0cmlidXRlLnJlbmRlckhUTUwocy5hdHRycyl8fHt9OntbdC5uYW1lXTpzLmF0dHJzW3QubmFtZV19KS5yZWR1Y2UoKHQsYSk9PmFzKHQsYSkse30pfWZ1bmN0aW9uIGtsZShzKXtyZXR1cm4gdHlwZW9mIHM9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gY2EocyxlPXZvaWQgMCwuLi50KXtyZXR1cm4ga2xlKHMpP2U/cy5iaW5kKGUpKC4uLnQpOnMoLi4udCk6c31mdW5jdGlvbiBFYXQocz17fSl7cmV0dXJuIE9iamVjdC5rZXlzKHMpLmxlbmd0aD09PTAmJnMuY29uc3RydWN0b3I9PT1PYmplY3R9ZnVuY3Rpb24gUGF0KHMpe3JldHVybiB0eXBlb2YgcyE9InN0cmluZyI/czpzLm1hdGNoKC9eWystXT8oPzpcZCpcLik/XGQrJC8pP051bWJlcihzKTpzPT09InRydWUiPyEwOnM9PT0iZmFsc2UiPyExOnN9ZnVuY3Rpb24gU2xlKHMsZSl7cmV0dXJuInN0eWxlImluIHM/czp7Li4ucyxnZXRBdHRyczppKHQ9PntsZXQgYT1zLmdldEF0dHJzP3MuZ2V0QXR0cnModCk6cy5hdHRycztpZihhPT09ITEpcmV0dXJuITE7bGV0IHI9ZS5yZWR1Y2UoKG4sbyk9PntsZXQgbD1vLmF0dHJpYnV0ZS5wYXJzZUhUTUw/by5hdHRyaWJ1dGUucGFyc2VIVE1MKHQpOlBhdCh0LmdldEF0dHJpYnV0ZShvLm5hbWUpKTtyZXR1cm4gbD09bnVsbD9uOnsuLi5uLFtvLm5hbWVdOmx9fSx7fSk7cmV0dXJuey4uLmEsLi4ucn19LCJnZXRBdHRycyIpfX1mdW5jdGlvbiBnaGEocyl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhzKS5maWx0ZXIoKFtlLHRdKT0+ZT09PSJhdHRycyImJkVhdCh0KT8hMTp0IT1udWxsKSl9ZnVuY3Rpb24gX2xlKHMsZSl7dmFyIHQ7bGV0IGE9d2xlKHMpLHtub2RlRXh0ZW5zaW9uczpyLG1hcmtFeHRlbnNpb25zOm59PU52KHMpLG89KHQ9ci5maW5kKGQ9PkR0KGQsInRvcE5vZGUiKSkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5uYW1lLGw9T2JqZWN0LmZyb21FbnRyaWVzKHIubWFwKGQ9PntsZXQgdT1hLmZpbHRlcih5PT55LnR5cGU9PT1kLm5hbWUpLGM9e25hbWU6ZC5uYW1lLG9wdGlvbnM6ZC5vcHRpb25zLHN0b3JhZ2U6ZC5zdG9yYWdlLGVkaXRvcjplfSxiPXMucmVkdWNlKCh5LE0pPT57bGV0IHo9RHQoTSwiZXh0ZW5kTm9kZVNjaGVtYSIsYyk7cmV0dXJuey4uLnksLi4uej96KGQpOnt9fX0se30pLHY9Z2hhKHsuLi5iLGNvbnRlbnQ6Y2EoRHQoZCwiY29udGVudCIsYykpLG1hcmtzOmNhKER0KGQsIm1hcmtzIixjKSksZ3JvdXA6Y2EoRHQoZCwiZ3JvdXAiLGMpKSxpbmxpbmU6Y2EoRHQoZCwiaW5saW5lIixjKSksYXRvbTpjYShEdChkLCJhdG9tIixjKSksc2VsZWN0YWJsZTpjYShEdChkLCJzZWxlY3RhYmxlIixjKSksZHJhZ2dhYmxlOmNhKER0KGQsImRyYWdnYWJsZSIsYykpLGNvZGU6Y2EoRHQoZCwiY29kZSIsYykpLHdoaXRlc3BhY2U6Y2EoRHQoZCwid2hpdGVzcGFjZSIsYykpLGxpbmVicmVha1JlcGxhY2VtZW50OmNhKER0KGQsImxpbmVicmVha1JlcGxhY2VtZW50IixjKSksZGVmaW5pbmc6Y2EoRHQoZCwiZGVmaW5pbmciLGMpKSxpc29sYXRpbmc6Y2EoRHQoZCwiaXNvbGF0aW5nIixjKSksYXR0cnM6T2JqZWN0LmZyb21FbnRyaWVzKHUubWFwKHk9Pnt2YXIgTTtyZXR1cm5beS5uYW1lLHtkZWZhdWx0OihNPXk/LmF0dHJpYnV0ZSk9PT1udWxsfHxNPT09dm9pZCAwP3ZvaWQgMDpNLmRlZmF1bHR9XX0pKX0pLHg9Y2EoRHQoZCwicGFyc2VIVE1MIixjKSk7eCYmKHYucGFyc2VET009eC5tYXAoeT0+U2xlKHksdSkpKTtsZXQgbT1EdChkLCJyZW5kZXJIVE1MIixjKTttJiYodi50b0RPTT15PT5tKHtub2RlOnksSFRNTEF0dHJpYnV0ZXM6aVgoeSx1KX0pKTtsZXQgZj1EdChkLCJyZW5kZXJUZXh0IixjKTtyZXR1cm4gZiYmKHYudG9UZXh0PWYpLFtkLm5hbWUsdl19KSkscD1PYmplY3QuZnJvbUVudHJpZXMobi5tYXAoZD0+e2xldCB1PWEuZmlsdGVyKGY9PmYudHlwZT09PWQubmFtZSksYz17bmFtZTpkLm5hbWUsb3B0aW9uczpkLm9wdGlvbnMsc3RvcmFnZTpkLnN0b3JhZ2UsZWRpdG9yOmV9LGI9cy5yZWR1Y2UoKGYseSk9PntsZXQgTT1EdCh5LCJleHRlbmRNYXJrU2NoZW1hIixjKTtyZXR1cm57Li4uZiwuLi5NP00oZCk6e319fSx7fSksdj1naGEoey4uLmIsaW5jbHVzaXZlOmNhKER0KGQsImluY2x1c2l2ZSIsYykpLGV4Y2x1ZGVzOmNhKER0KGQsImV4Y2x1ZGVzIixjKSksZ3JvdXA6Y2EoRHQoZCwiZ3JvdXAiLGMpKSxzcGFubmluZzpjYShEdChkLCJzcGFubmluZyIsYykpLGNvZGU6Y2EoRHQoZCwiY29kZSIsYykpLGF0dHJzOk9iamVjdC5mcm9tRW50cmllcyh1Lm1hcChmPT57dmFyIHk7cmV0dXJuW2YubmFtZSx7ZGVmYXVsdDooeT1mPy5hdHRyaWJ1dGUpPT09bnVsbHx8eT09PXZvaWQgMD92b2lkIDA6eS5kZWZhdWx0fV19KSl9KSx4PWNhKER0KGQsInBhcnNlSFRNTCIsYykpO3gmJih2LnBhcnNlRE9NPXgubWFwKGY9PlNsZShmLHUpKSk7bGV0IG09RHQoZCwicmVuZGVySFRNTCIsYyk7cmV0dXJuIG0mJih2LnRvRE9NPWY9Pm0oe21hcms6ZixIVE1MQXR0cmlidXRlczppWChmLHUpfSkpLFtkLm5hbWUsdl19KSk7cmV0dXJuIG5ldyB4dih7dG9wTm9kZTpvLG5vZGVzOmwsbWFya3M6cH0pfWZ1bmN0aW9uIHJYKHMsZSl7cmV0dXJuIGUubm9kZXNbc118fGUubWFya3Nbc118fG51bGx9ZnVuY3Rpb24gTWxlKHMsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5zb21lKHQ9Pih0eXBlb2YgdD09InN0cmluZyI/dDp0Lm5hbWUpPT09cy5uYW1lKTplfWZ1bmN0aW9uIFJ2KHMsZSl7bGV0IHQ9TGQuZnJvbVNjaGVtYShlKS5zZXJpYWxpemVGcmFnbWVudChzKSxyPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiByLmFwcGVuZENoaWxkKHQpLHIuaW5uZXJIVE1MfWZ1bmN0aW9uIG9YKHMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyk9PT0iW29iamVjdCBSZWdFeHBdIn1mdW5jdGlvbiB2bGUocyl7dmFyIGU7bGV0e2VkaXRvcjp0LGZyb206YSx0bzpyLHRleHQ6bixydWxlczpvLHBsdWdpbjpsfT1zLHt2aWV3OnB9PXQ7aWYocC5jb21wb3NpbmcpcmV0dXJuITE7bGV0IGQ9cC5zdGF0ZS5kb2MucmVzb2x2ZShhKTtpZihkLnBhcmVudC50eXBlLnNwZWMuY29kZXx8ISgoZT1kLm5vZGVCZWZvcmV8fGQubm9kZUFmdGVyKT09PW51bGx8fGU9PT12b2lkIDApJiZlLm1hcmtzLmZpbmQoYj0+Yi50eXBlLnNwZWMuY29kZSkpcmV0dXJuITE7bGV0IHU9ITEsYz1JYXQoZCkrbjtyZXR1cm4gby5mb3JFYWNoKGI9PntpZih1KXJldHVybjtsZXQgdj1MWWEoYyxiLmZpbmQpO2lmKCF2KXJldHVybjtsZXQgeD1wLnN0YXRlLnRyLG09QXYoe3N0YXRlOnAuc3RhdGUsdHJhbnNhY3Rpb246eH0pLGY9e2Zyb206YS0odlswXS5sZW5ndGgtbi5sZW5ndGgpLHRvOnJ9LHtjb21tYW5kczp5LGNoYWluOk0sY2FuOnp9PW5ldyBQaCh7ZWRpdG9yOnQsc3RhdGU6bX0pO2IuaGFuZGxlcih7c3RhdGU6bSxyYW5nZTpmLG1hdGNoOnYsY29tbWFuZHM6eSxjaGFpbjpNLGNhbjp6fSk9PT1udWxsfHwheC5zdGVwcy5sZW5ndGh8fCh4LnNldE1ldGEobCx7dHJhbnNmb3JtOngsZnJvbTphLHRvOnIsdGV4dDpufSkscC5kaXNwYXRjaCh4KSx1PSEwKX0pLHV9ZnVuY3Rpb24gQWF0KHMpe2xldHtlZGl0b3I6ZSxydWxlczp0fT1zLGE9bmV3IFlzKHtzdGF0ZTp7aW5pdCgpe3JldHVybiBudWxsfSxhcHBseShyLG4sbyl7bGV0IGw9ci5nZXRNZXRhKGEpO2lmKGwpcmV0dXJuIGw7bGV0IHA9ci5nZXRNZXRhKCJhcHBseUlucHV0UnVsZXMiKTtyZXR1cm4gcCYmc2V0VGltZW91dCgoKT0+e2xldHt0ZXh0OnV9PXA7dHlwZW9mIHU9PSJzdHJpbmciP3U9dTp1PVJ2KHJ0LmZyb20odSksby5zY2hlbWEpO2xldHtmcm9tOmN9PXAsYj1jK3UubGVuZ3RoO3ZsZSh7ZWRpdG9yOmUsZnJvbTpjLHRvOmIsdGV4dDp1LHJ1bGVzOnQscGx1Z2luOmF9KX0pLHIuc2VsZWN0aW9uU2V0fHxyLmRvY0NoYW5nZWQ/bnVsbDpufX0scHJvcHM6e2hhbmRsZVRleHRJbnB1dChyLG4sbyxsKXtyZXR1cm4gdmxlKHtlZGl0b3I6ZSxmcm9tOm4sdG86byx0ZXh0OmwscnVsZXM6dCxwbHVnaW46YX0pfSxoYW5kbGVET01FdmVudHM6e2NvbXBvc2l0aW9uZW5kOmkocj0+KHNldFRpbWVvdXQoKCk9PntsZXR7JGN1cnNvcjpufT1yLnN0YXRlLnNlbGVjdGlvbjtuJiZ2bGUoe2VkaXRvcjplLGZyb206bi5wb3MsdG86bi5wb3MsdGV4dDoiIixydWxlczp0LHBsdWdpbjphfSl9KSwhMSksImNvbXBvc2l0aW9uZW5kIil9LGhhbmRsZUtleURvd24ocixuKXtpZihuLmtleSE9PSJFbnRlciIpcmV0dXJuITE7bGV0eyRjdXJzb3I6b309ci5zdGF0ZS5zZWxlY3Rpb247cmV0dXJuIG8/dmxlKHtlZGl0b3I6ZSxmcm9tOm8ucG9zLHRvOm8ucG9zLHRleHQ6YApgLHJ1bGVzOnQscGx1Z2luOmF9KTohMX19LGlzSW5wdXRSdWxlczohMH0pO3JldHVybiBhfWZ1bmN0aW9uIEVZYShzKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpLnNsaWNlKDgsLTEpfWZ1bmN0aW9uIE92KHMpe3JldHVybiBFWWEocykhPT0iT2JqZWN0Ij8hMTpzLmNvbnN0cnVjdG9yPT09T2JqZWN0JiZPYmplY3QuZ2V0UHJvdG90eXBlT2Yocyk9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIEZ2KHMsZSl7bGV0IHQ9ey4uLnN9O3JldHVybiBPdihzKSYmT3YoZSkmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goYT0+e092KGVbYV0pJiZPdihzW2FdKT90W2FdPUZ2KHNbYV0sZVthXSk6dFthXT1lW2FdfSksdH1mdW5jdGlvbiBOYXQocyl7cmV0dXJuIHR5cGVvZiBzPT0ibnVtYmVyIn1mdW5jdGlvbiBJWWEocyl7bGV0e2VkaXRvcjplLHN0YXRlOnQsZnJvbTphLHRvOnIscnVsZTpuLHBhc3RlRXZlbnQ6byxkcm9wRXZlbnQ6bH09cyx7Y29tbWFuZHM6cCxjaGFpbjpkLGNhbjp1fT1uZXcgUGgoe2VkaXRvcjplLHN0YXRlOnR9KSxjPVtdO3JldHVybiB0LmRvYy5ub2Rlc0JldHdlZW4oYSxyLCh2LHgpPT57aWYoIXYuaXNUZXh0YmxvY2t8fHYudHlwZS5zcGVjLmNvZGUpcmV0dXJuO2xldCBtPU1hdGgubWF4KGEseCksZj1NYXRoLm1pbihyLHgrdi5jb250ZW50LnNpemUpLHk9di50ZXh0QmV0d2VlbihtLXgsZi14LHZvaWQgMCwiXHVGRkZDIik7UFlhKHksbi5maW5kLG8pLmZvckVhY2goej0+e2lmKHouaW5kZXg9PT12b2lkIDApcmV0dXJuO2xldCBOPW0rei5pbmRleCsxLEM9Tit6WzBdLmxlbmd0aCxfPXtmcm9tOnQudHIubWFwcGluZy5tYXAoTiksdG86dC50ci5tYXBwaW5nLm1hcChDKX0sTz1uLmhhbmRsZXIoe3N0YXRlOnQscmFuZ2U6XyxtYXRjaDp6LGNvbW1hbmRzOnAsY2hhaW46ZCxjYW46dSxwYXN0ZUV2ZW50Om8sZHJvcEV2ZW50Omx9KTtjLnB1c2goTyl9KX0pLGMuZXZlcnkodj0+diE9PW51bGwpfWZ1bmN0aW9uIFJhdChzKXtsZXR7ZWRpdG9yOmUscnVsZXM6dH09cyxhPW51bGwscj0hMSxuPSExLG89dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxsO3RyeXtsPXR5cGVvZiBEcmFnRXZlbnQ8InUiP25ldyBEcmFnRXZlbnQoImRyb3AiKTpudWxsfWNhdGNoe2w9bnVsbH1sZXQgcD1pKCh7c3RhdGU6dSxmcm9tOmMsdG86YixydWxlOnYscGFzdGVFdnQ6eH0pPT57bGV0IG09dS50cixmPUF2KHtzdGF0ZTp1LHRyYW5zYWN0aW9uOm19KTtpZighKCFJWWEoe2VkaXRvcjplLHN0YXRlOmYsZnJvbTpNYXRoLm1heChjLTEsMCksdG86Yi5iLTEscnVsZTp2LHBhc3RlRXZlbnQ6eCxkcm9wRXZlbnQ6bH0pfHwhbS5zdGVwcy5sZW5ndGgpKXt0cnl7bD10eXBlb2YgRHJhZ0V2ZW50PCJ1Ij9uZXcgRHJhZ0V2ZW50KCJkcm9wIik6bnVsbH1jYXRjaHtsPW51bGx9cmV0dXJuIG89dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxtfX0sInByb2Nlc3NFdmVudCIpO3JldHVybiB0Lm1hcCh1PT5uZXcgWXMoe3ZpZXcoYyl7bGV0IGI9aSh4PT57dmFyIG07YT0hKChtPWMuZG9tLnBhcmVudEVsZW1lbnQpPT09bnVsbHx8bT09PXZvaWQgMCkmJm0uY29udGFpbnMoeC50YXJnZXQpP2MuZG9tLnBhcmVudEVsZW1lbnQ6bnVsbCxhJiYoeGxlPWUpfSwiaGFuZGxlRHJhZ3N0YXJ0Iiksdj1pKCgpPT57eGxlJiYoeGxlPW51bGwpfSwiaGFuZGxlRHJhZ2VuZCIpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixiKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdikse2Rlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixiKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdil9fX0scHJvcHM6e2hhbmRsZURPTUV2ZW50czp7ZHJvcDppKChjLGIpPT57aWYobj1hPT09Yy5kb20ucGFyZW50RWxlbWVudCxsPWIsIW4pe2xldCB2PXhsZTt2Py5pc0VkaXRhYmxlJiZzZXRUaW1lb3V0KCgpPT57bGV0IHg9di5zdGF0ZS5zZWxlY3Rpb247eCYmdi5jb21tYW5kcy5kZWxldGVSYW5nZSh7ZnJvbTp4LmZyb20sdG86eC50b30pfSwxMCl9cmV0dXJuITF9LCJkcm9wIikscGFzdGU6aSgoYyxiKT0+e3ZhciB2O2xldCB4PSh2PWIuY2xpcGJvYXJkRGF0YSk9PT1udWxsfHx2PT09dm9pZCAwP3ZvaWQgMDp2LmdldERhdGEoInRleHQvaHRtbCIpO3JldHVybiBvPWIscj0hIXg/LmluY2x1ZGVzKCJkYXRhLXBtLXNsaWNlIiksITF9LCJwYXN0ZSIpfX0sYXBwZW5kVHJhbnNhY3Rpb246aSgoYyxiLHYpPT57bGV0IHg9Y1swXSxtPXguZ2V0TWV0YSgidWlFdmVudCIpPT09InBhc3RlIiYmIXIsZj14LmdldE1ldGEoInVpRXZlbnQiKT09PSJkcm9wIiYmIW4seT14LmdldE1ldGEoImFwcGx5UGFzdGVSdWxlcyIpLE09ISF5O2lmKCFtJiYhZiYmIU0pcmV0dXJuO2lmKE0pe2xldHt0ZXh0OkN9PXk7dHlwZW9mIEM9PSJzdHJpbmciP0M9QzpDPVJ2KHJ0LmZyb20oQyksdi5zY2hlbWEpO2xldHtmcm9tOl99PXksTz1fK0MubGVuZ3RoLCQ9QVlhKEMpO3JldHVybiBwKHtydWxlOnUsc3RhdGU6dixmcm9tOl8sdG86e2I6T30scGFzdGVFdnQ6JH0pfWxldCB6PWIuZG9jLmNvbnRlbnQuZmluZERpZmZTdGFydCh2LmRvYy5jb250ZW50KSxOPWIuZG9jLmNvbnRlbnQuZmluZERpZmZFbmQodi5kb2MuY29udGVudCk7aWYoISghTmF0KHopfHwhTnx8ej09PU4uYikpcmV0dXJuIHAoe3J1bGU6dSxzdGF0ZTp2LGZyb206eix0bzpOLHBhc3RlRXZ0Om99KX0sImFwcGVuZFRyYW5zYWN0aW9uIil9KSl9ZnVuY3Rpb24gT2F0KHMpe2xldCBlPXMuZmlsdGVyKCh0LGEpPT5zLmluZGV4T2YodCkhPT1hKTtyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGUpKX1mdW5jdGlvbiB6bGUocyxlLHQpe2xldHtmcm9tOmEsdG86cn09ZSx7YmxvY2tTZXBhcmF0b3I6bj1gCgpgLHRleHRTZXJpYWxpemVyczpvPXt9fT10fHx7fSxsPSIiO3JldHVybiBzLm5vZGVzQmV0d2VlbihhLHIsKHAsZCx1LGMpPT57dmFyIGI7cC5pc0Jsb2NrJiZkPmEmJihsKz1uKTtsZXQgdj1vPy5bcC50eXBlLm5hbWVdO2lmKHYpcmV0dXJuIHUmJihsKz12KHtub2RlOnAscG9zOmQscGFyZW50OnUsaW5kZXg6YyxyYW5nZTplfSkpLCExO3AuaXNUZXh0JiYobCs9KGI9cD8udGV4dCk9PT1udWxsfHxiPT09dm9pZCAwP3ZvaWQgMDpiLnNsaWNlKE1hdGgubWF4KGEsZCktZCxyLWQpKX0pLGx9ZnVuY3Rpb24gblgocyl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhzLm5vZGVzKS5maWx0ZXIoKFssZV0pPT5lLnNwZWMudG9UZXh0KS5tYXAoKFtlLHRdKT0+W2UsdC5zcGVjLnRvVGV4dF0pKX1mdW5jdGlvbiBCdihzLGUsdD17c3RyaWN0OiEwfSl7bGV0IGE9T2JqZWN0LmtleXMoZSk7cmV0dXJuIGEubGVuZ3RoP2EuZXZlcnkocj0+dC5zdHJpY3Q/ZVtyXT09PXNbcl06b1goZVtyXSk/ZVtyXS50ZXN0KHNbcl0pOmVbcl09PT1zW3JdKTohMH1mdW5jdGlvbiB2aGEocyxlLHQ9e30pe3JldHVybiBzLmZpbmQoYT0+YS50eXBlPT09ZSYmQnYoT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5rZXlzKHQpLm1hcChyPT5bcixhLmF0dHJzW3JdXSkpLHQpKX1mdW5jdGlvbiB4aGEocyxlLHQ9e30pe3JldHVybiEhdmhhKHMsZSx0KX1mdW5jdGlvbiBsWChzLGUsdCl7dmFyIGE7aWYoIXN8fCFlKXJldHVybjtsZXQgcj1zLnBhcmVudC5jaGlsZEFmdGVyKHMucGFyZW50T2Zmc2V0KTtpZigoIXIubm9kZXx8IXIubm9kZS5tYXJrcy5zb21lKHU9PnUudHlwZT09PWUpKSYmKHI9cy5wYXJlbnQuY2hpbGRCZWZvcmUocy5wYXJlbnRPZmZzZXQpKSwhci5ub2RlfHwhci5ub2RlLm1hcmtzLnNvbWUodT0+dS50eXBlPT09ZSl8fCh0PXR8fCgoYT1yLm5vZGUubWFya3NbMF0pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5hdHRycyksIXZoYShbLi4uci5ub2RlLm1hcmtzXSxlLHQpKSlyZXR1cm47bGV0IG89ci5pbmRleCxsPXMuc3RhcnQoKStyLm9mZnNldCxwPW8rMSxkPWwrci5ub2RlLm5vZGVTaXplO2Zvcig7bz4wJiZ4aGEoWy4uLnMucGFyZW50LmNoaWxkKG8tMSkubWFya3NdLGUsdCk7KW8tPTEsbC09cy5wYXJlbnQuY2hpbGQobykubm9kZVNpemU7Zm9yKDtwPHMucGFyZW50LmNoaWxkQ291bnQmJnhoYShbLi4ucy5wYXJlbnQuY2hpbGQocCkubWFya3NdLGUsdCk7KWQrPXMucGFyZW50LmNoaWxkKHApLm5vZGVTaXplLHArPTE7cmV0dXJue2Zyb206bCx0bzpkfX1mdW5jdGlvbiBSZChzLGUpe2lmKHR5cGVvZiBzPT0ic3RyaW5nIil7aWYoIWUubWFya3Nbc10pdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIG1hcmsgdHlwZSBuYW1lZCAnJHtzfScuIE1heWJlIHlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBleHRlbnNpb24/YCk7cmV0dXJuIGUubWFya3Nbc119cmV0dXJuIHN9ZnVuY3Rpb24gQ2xlKHMpe3JldHVybiBzIGluc3RhbmNlb2YgSnR9ZnVuY3Rpb24gYTIocz0wLGU9MCx0PTApe3JldHVybiBNYXRoLm1pbihNYXRoLm1heChzLGUpLHQpfWZ1bmN0aW9uIFRsZShzLGU9bnVsbCl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9UXQuYXRTdGFydChzKSxhPVF0LmF0RW5kKHMpO2lmKGU9PT0ic3RhcnQifHxlPT09ITApcmV0dXJuIHQ7aWYoZT09PSJlbmQiKXJldHVybiBhO2xldCByPXQuZnJvbSxuPWEudG87cmV0dXJuIGU9PT0iYWxsIj9KdC5jcmVhdGUocyxhMigwLHIsbiksYTIocy5jb250ZW50LnNpemUscixuKSk6SnQuY3JlYXRlKHMsYTIoZSxyLG4pLGEyKGUscixuKSl9ZnVuY3Rpb24gJGF0KCl7cmV0dXJuIG5hdmlnYXRvci5wbGF0Zm9ybT09PSJBbmRyb2lkInx8L2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfWZ1bmN0aW9uIG5nKCl7cmV0dXJuWyJpUGFkIFNpbXVsYXRvciIsImlQaG9uZSBTaW11bGF0b3IiLCJpUG9kIFNpbXVsYXRvciIsImlQYWQiLCJpUGhvbmUiLCJpUG9kIl0uaW5jbHVkZXMobmF2aWdhdG9yLnBsYXRmb3JtKXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiTWFjIikmJiJvbnRvdWNoZW5kImluIGRvY3VtZW50fWZ1bmN0aW9uIEZhdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1Ij8vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOiExfWZ1bmN0aW9uIGxnKHMpe2xldCBlPWA8Ym9keT4ke3N9PC9ib2R5PmAsdD1uZXcgd2luZG93LkRPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiB5aGEodCl9ZnVuY3Rpb24gY2cocyxlLHQpe2lmKHMgaW5zdGFuY2VvZiBUbnx8cyBpbnN0YW5jZW9mIHJ0KXJldHVybiBzO3Q9e3NsaWNlOiEwLHBhcnNlT3B0aW9uczp7fSwuLi50fTtsZXQgYT10eXBlb2Ygcz09Im9iamVjdCImJnMhPT1udWxsLHI9dHlwZW9mIHM9PSJzdHJpbmciO2lmKGEpdHJ5e2lmKEFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoPjApcmV0dXJuIHJ0LmZyb21BcnJheShzLm1hcChsPT5lLm5vZGVGcm9tSlNPTihsKSkpO2xldCBvPWUubm9kZUZyb21KU09OKHMpO3JldHVybiB0LmVycm9yT25JbnZhbGlkQ29udGVudCYmby5jaGVjaygpLG99Y2F0Y2gobil7aWYodC5lcnJvck9uSW52YWxpZENvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBKU09OIGNvbnRlbnQiLHtjYXVzZTpufSk7cmV0dXJuIGNvbnNvbGUud2FybigiW3RpcHRhcCB3YXJuXTogSW52YWxpZCBjb250ZW50LiIsIlBhc3NlZCB2YWx1ZToiLHMsIkVycm9yOiIsbiksY2coIiIsZSx0KX1pZihyKXtpZih0LmVycm9yT25JbnZhbGlkQ29udGVudCl7bGV0IG89ITEsbD0iIixwPW5ldyB4dih7dG9wTm9kZTplLnNwZWMudG9wTm9kZSxtYXJrczplLnNwZWMubWFya3Msbm9kZXM6ZS5zcGVjLm5vZGVzLmFwcGVuZCh7X190aXB0YXBfX3ByaXZhdGVfX3Vua25vd25fX2NhdGNoX19hbGxfX25vZGU6e2NvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIscGFyc2VET006W3t0YWc6IioiLGdldEF0dHJzOmkoZD0+KG89ITAsbD10eXBlb2YgZD09InN0cmluZyI/ZDpkLm91dGVySFRNTCxudWxsKSwiZ2V0QXR0cnMiKX1dfX0pfSk7aWYodC5zbGljZT9lMi5mcm9tU2NoZW1hKHApLnBhcnNlU2xpY2UobGcocyksdC5wYXJzZU9wdGlvbnMpOmUyLmZyb21TY2hlbWEocCkucGFyc2UobGcocyksdC5wYXJzZU9wdGlvbnMpLHQuZXJyb3JPbkludmFsaWRDb250ZW50JiZvKXRocm93IG5ldyBFcnJvcigiW3RpcHRhcCBlcnJvcl06IEludmFsaWQgSFRNTCBjb250ZW50Iix7Y2F1c2U6bmV3IEVycm9yKGBJbnZhbGlkIGVsZW1lbnQgZm91bmQ6ICR7bH1gKX0pfWxldCBuPWUyLmZyb21TY2hlbWEoZSk7cmV0dXJuIHQuc2xpY2U/bi5wYXJzZVNsaWNlKGxnKHMpLHQucGFyc2VPcHRpb25zKS5jb250ZW50Om4ucGFyc2UobGcocyksdC5wYXJzZU9wdGlvbnMpfXJldHVybiBjZygiIixlLHQpfWZ1bmN0aW9uIEJhdChzLGUsdCl7bGV0IGE9cy5zdGVwcy5sZW5ndGgtMTtpZihhPGUpcmV0dXJuO2xldCByPXMuc3RlcHNbYV07aWYoIShyIGluc3RhbmNlb2YgZ298fHIgaW5zdGFuY2VvZiBkcikpcmV0dXJuO2xldCBuPXMubWFwcGluZy5tYXBzW2FdLG89MDtuLmZvckVhY2goKGwscCxkLHUpPT57bz09PTAmJihvPXUpfSkscy5zZXRTZWxlY3Rpb24oUXQubmVhcihzLmRvYy5yZXNvbHZlKG8pLHQpKX1mdW5jdGlvbiAkbGUoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSI/L01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pOiExfWZ1bmN0aW9uIGNaYShzKXtsZXQgZT1zLnNwbGl0KC8tKD8hJCkvKSx0PWVbZS5sZW5ndGgtMV07dD09PSJTcGFjZSImJih0PSIgIik7bGV0IGEscixuLG87Zm9yKGxldCBsPTA7bDxlLmxlbmd0aC0xO2wrPTEpe2xldCBwPWVbbF07aWYoL14oY21kfG1ldGF8bSkkL2kudGVzdChwKSlvPSEwO2Vsc2UgaWYoL15hKGx0KT8kL2kudGVzdChwKSlhPSEwO2Vsc2UgaWYoL14oY3xjdHJsfGNvbnRyb2wpJC9pLnRlc3QocCkpcj0hMDtlbHNlIGlmKC9ecyhoaWZ0KT8kL2kudGVzdChwKSluPSEwO2Vsc2UgaWYoL15tb2QkL2kudGVzdChwKSluZygpfHwkbGUoKT9vPSEwOnI9ITA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBtb2RpZmllciBuYW1lOiAke3B9YCl9cmV0dXJuIGEmJih0PWBBbHQtJHt0fWApLHImJih0PWBDdHJsLSR7dH1gKSxvJiYodD1gTWV0YS0ke3R9YCksbiYmKHQ9YFNoaWZ0LSR7dH1gKSx0fWZ1bmN0aW9uIGRnKHMsZSx0PXt9KXtsZXR7ZnJvbTphLHRvOnIsZW1wdHk6bn09cy5zZWxlY3Rpb24sbz1lP0xyKGUscy5zY2hlbWEpOm51bGwsbD1bXTtzLmRvYy5ub2Rlc0JldHdlZW4oYSxyLChjLGIpPT57aWYoYy5pc1RleHQpcmV0dXJuO2xldCB2PU1hdGgubWF4KGEsYikseD1NYXRoLm1pbihyLGIrYy5ub2RlU2l6ZSk7bC5wdXNoKHtub2RlOmMsZnJvbTp2LHRvOnh9KX0pO2xldCBwPXItYSxkPWwuZmlsdGVyKGM9Pm8/by5uYW1lPT09Yy5ub2RlLnR5cGUubmFtZTohMCkuZmlsdGVyKGM9PkJ2KGMubm9kZS5hdHRycyx0LHtzdHJpY3Q6ITF9KSk7cmV0dXJuIG4/ISFkLmxlbmd0aDpkLnJlZHVjZSgoYyxiKT0+YytiLnRvLWIuZnJvbSwwKT49cH1mdW5jdGlvbiBIdihzLGUpe3JldHVybiBlLm5vZGVzW3NdPyJub2RlIjplLm1hcmtzW3NdPyJtYXJrIjpudWxsfWZ1bmN0aW9uIERsZShzLGUpe2xldCB0PXR5cGVvZiBlPT0ic3RyaW5nIj9bZV06ZTtyZXR1cm4gT2JqZWN0LmtleXMocykucmVkdWNlKChhLHIpPT4odC5pbmNsdWRlcyhyKXx8KGFbcl09c1tyXSksYSkse30pfWZ1bmN0aW9uIGNYKHMsZSx0PXt9LGE9e30pe3JldHVybiBjZyhzLGUse3NsaWNlOiExLHBhcnNlT3B0aW9uczp0LGVycm9yT25JbnZhbGlkQ29udGVudDphLmVycm9yT25JbnZhbGlkQ29udGVudH0pfWZ1bmN0aW9uIExsZShzLGUpe2xldCB0PVJkKGUscy5zY2hlbWEpLHtmcm9tOmEsdG86cixlbXB0eTpufT1zLnNlbGVjdGlvbixvPVtdO24/KHMuc3RvcmVkTWFya3MmJm8ucHVzaCguLi5zLnN0b3JlZE1hcmtzKSxvLnB1c2goLi4ucy5zZWxlY3Rpb24uJGhlYWQubWFya3MoKSkpOnMuZG9jLm5vZGVzQmV0d2VlbihhLHIscD0+e28ucHVzaCguLi5wLm1hcmtzKX0pO2xldCBsPW8uZmluZChwPT5wLnR5cGUubmFtZT09PXQubmFtZSk7cmV0dXJuIGw/ey4uLmwuYXR0cnN9Ont9fWZ1bmN0aW9uIFJsZShzLGUpe2xldCB0PW5ldyBHOChzKTtyZXR1cm4gZS5mb3JFYWNoKGE9PnthLnN0ZXBzLmZvckVhY2gocj0+e3Quc3RlcChyKX0pfSksdH1mdW5jdGlvbiBIYXQocyl7Zm9yKGxldCBlPTA7ZTxzLmVkZ2VDb3VudDtlKz0xKXtsZXR7dHlwZTp0fT1zLmVkZ2UoZSk7aWYodC5pc1RleHRibG9jayYmIXQuaGFzUmVxdWlyZWRBdHRycygpKXJldHVybiB0fXJldHVybiBudWxsfWZ1bmN0aW9uIExoYShzLGUpe2xldCB0PVtdO3JldHVybiBzLmRlc2NlbmRhbnRzKChhLHIpPT57ZShhKSYmdC5wdXNoKHtub2RlOmEscG9zOnJ9KX0pLHR9ZnVuY3Rpb24gT2xlKHMsZSx0KXtsZXQgYT1bXTtyZXR1cm4gcy5ub2Rlc0JldHdlZW4oZS5mcm9tLGUudG8sKHIsbik9Pnt0KHIpJiZhLnB1c2goe25vZGU6cixwb3M6bn0pfSksYX1mdW5jdGlvbiBxYXQocyxlKXtmb3IobGV0IHQ9cy5kZXB0aDt0PjA7dC09MSl7bGV0IGE9cy5ub2RlKHQpO2lmKGUoYSkpcmV0dXJue3Bvczp0PjA/cy5iZWZvcmUodCk6MCxzdGFydDpzLnN0YXJ0KHQpLGRlcHRoOnQsbm9kZTphfX19ZnVuY3Rpb24gcXYocyl7cmV0dXJuIGU9PnFhdChlLiRmcm9tLHMpfWZ1bmN0aW9uIGRYKHMsZSl7bGV0IHQ9eWxlLnJlc29sdmUocyk7cmV0dXJuIF9sZSh0LGUpfWZ1bmN0aW9uIEVoYShzLGUpe2xldCB0PWRYKGUpLGE9VG4uZnJvbUpTT04odCxzKTtyZXR1cm4gUnYoYS5jb250ZW50LHQpfWZ1bmN0aW9uIFBoYShzLGUpe2xldCB0PWRYKGUpLGE9bGcocyk7cmV0dXJuIGUyLmZyb21TY2hlbWEodCkucGFyc2UoYSkudG9KU09OKCl9ZnVuY3Rpb24gRWxlKHMsZSl7bGV0IHQ9e2Zyb206MCx0bzpzLmNvbnRlbnQuc2l6ZX07cmV0dXJuIHpsZShzLHQsZSl9ZnVuY3Rpb24gSWhhKHMsZSx0KXtsZXR7YmxvY2tTZXBhcmF0b3I6YT1gCgpgLHRleHRTZXJpYWxpemVyczpyPXt9fT10fHx7fSxuPWRYKGUpLG89VG4uZnJvbUpTT04obixzKTtyZXR1cm4gRWxlKG8se2Jsb2NrU2VwYXJhdG9yOmEsdGV4dFNlcmlhbGl6ZXJzOnsuLi5uWChuKSwuLi5yfX0pfWZ1bmN0aW9uIGphdChzLGUpe2xldCB0PUxyKGUscy5zY2hlbWEpLHtmcm9tOmEsdG86cn09cy5zZWxlY3Rpb24sbj1bXTtzLmRvYy5ub2Rlc0JldHdlZW4oYSxyLGw9PntuLnB1c2gobCl9KTtsZXQgbz1uLnJldmVyc2UoKS5maW5kKGw9PmwudHlwZS5uYW1lPT09dC5uYW1lKTtyZXR1cm4gbz97Li4uby5hdHRyc306e319ZnVuY3Rpb24gZlgocyxlKXtsZXQgdD1Idih0eXBlb2YgZT09InN0cmluZyI/ZTplLm5hbWUscy5zY2hlbWEpO3JldHVybiB0PT09Im5vZGUiP2phdChzLGUpOnQ9PT0ibWFyayI/TGxlKHMsZSk6e319ZnVuY3Rpb24gVmF0KHMsZT1KU09OLnN0cmluZ2lmeSl7bGV0IHQ9e307cmV0dXJuIHMuZmlsdGVyKGE9PntsZXQgcj1lKGEpO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKT8hMTp0W3JdPSEwfSl9ZnVuY3Rpb24gX1phKHMpe2xldCBlPVZhdChzKTtyZXR1cm4gZS5sZW5ndGg9PT0xP2U6ZS5maWx0ZXIoKHQsYSk9PiFlLmZpbHRlcigobixvKT0+byE9PWEpLnNvbWUobj0+dC5vbGRSYW5nZS5mcm9tPj1uLm9sZFJhbmdlLmZyb20mJnQub2xkUmFuZ2UudG88PW4ub2xkUmFuZ2UudG8mJnQubmV3UmFuZ2UuZnJvbT49bi5uZXdSYW5nZS5mcm9tJiZ0Lm5ld1JhbmdlLnRvPD1uLm5ld1JhbmdlLnRvKSl9ZnVuY3Rpb24gRmxlKHMpe2xldHttYXBwaW5nOmUsc3RlcHM6dH09cyxhPVtdO3JldHVybiBlLm1hcHMuZm9yRWFjaCgocixuKT0+e2xldCBvPVtdO2lmKHIucmFuZ2VzLmxlbmd0aClyLmZvckVhY2goKGwscCk9PntvLnB1c2goe2Zyb206bCx0bzpwfSl9KTtlbHNle2xldHtmcm9tOmwsdG86cH09dFtuXTtpZihsPT09dm9pZCAwfHxwPT09dm9pZCAwKXJldHVybjtvLnB1c2goe2Zyb206bCx0bzpwfSl9by5mb3JFYWNoKCh7ZnJvbTpsLHRvOnB9KT0+e2xldCBkPWUuc2xpY2UobikubWFwKGwsLTEpLHU9ZS5zbGljZShuKS5tYXAocCksYz1lLmludmVydCgpLm1hcChkLC0xKSxiPWUuaW52ZXJ0KCkubWFwKHUpO2EucHVzaCh7b2xkUmFuZ2U6e2Zyb206Yyx0bzpifSxuZXdSYW5nZTp7ZnJvbTpkLHRvOnV9fSl9KX0pLF9aYShhKX1mdW5jdGlvbiBVYXQocyxlPTApe2xldCBhPXMudHlwZT09PXMudHlwZS5zY2hlbWEudG9wTm9kZVR5cGU/MDoxLHI9ZSxuPXIrcy5ub2RlU2l6ZSxvPXMubWFya3MubWFwKGQ9PntsZXQgdT17dHlwZTpkLnR5cGUubmFtZX07cmV0dXJuIE9iamVjdC5rZXlzKGQuYXR0cnMpLmxlbmd0aCYmKHUuYXR0cnM9ey4uLmQuYXR0cnN9KSx1fSksbD17Li4ucy5hdHRyc30scD17dHlwZTpzLnR5cGUubmFtZSxmcm9tOnIsdG86bn07cmV0dXJuIE9iamVjdC5rZXlzKGwpLmxlbmd0aCYmKHAuYXR0cnM9bCksby5sZW5ndGgmJihwLm1hcmtzPW8pLHMuY29udGVudC5jaGlsZENvdW50JiYocC5jb250ZW50PVtdLHMuZm9yRWFjaCgoZCx1KT0+e3ZhciBjOyhjPXAuY29udGVudCk9PT1udWxsfHxjPT09dm9pZCAwfHxjLnB1c2goVWF0KGQsZSt1K2EpKX0pKSxzLnRleHQmJihwLnRleHQ9cy50ZXh0KSxwfWZ1bmN0aW9uIFZ2KHMsZSx0KXtsZXQgYT1bXTtyZXR1cm4gcz09PWU/dC5yZXNvbHZlKHMpLm1hcmtzKCkuZm9yRWFjaChyPT57bGV0IG49dC5yZXNvbHZlKHMpLG89bFgobixyLnR5cGUpO28mJmEucHVzaCh7bWFyazpyLC4uLm99KX0pOnQubm9kZXNCZXR3ZWVuKHMsZSwocixuKT0+eyFyfHxyPy5ub2RlU2l6ZT09PXZvaWQgMHx8YS5wdXNoKC4uLnIubWFya3MubWFwKG89Pih7ZnJvbTpuLHRvOm4rci5ub2RlU2l6ZSxtYXJrOm99KSkpfSksYX1mdW5jdGlvbiBqdihzLGUsdCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5maWx0ZXIoKFthXSk9PntsZXQgcj1zLmZpbmQobj0+bi50eXBlPT09ZSYmbi5uYW1lPT09YSk7cmV0dXJuIHI/ci5hdHRyaWJ1dGUua2VlcE9uU3BsaXQ6ITF9KSl9ZnVuY3Rpb24gdVgocyxlLHQ9e30pe2xldHtlbXB0eTphLHJhbmdlczpyfT1zLnNlbGVjdGlvbixuPWU/UmQoZSxzLnNjaGVtYSk6bnVsbDtpZihhKXJldHVybiEhKHMuc3RvcmVkTWFya3N8fHMuc2VsZWN0aW9uLiRmcm9tLm1hcmtzKCkpLmZpbHRlcihjPT5uP24ubmFtZT09PWMudHlwZS5uYW1lOiEwKS5maW5kKGM9PkJ2KGMuYXR0cnMsdCx7c3RyaWN0OiExfSkpO2xldCBvPTAsbD1bXTtpZihyLmZvckVhY2goKHskZnJvbTpjLCR0bzpifSk9PntsZXQgdj1jLnBvcyx4PWIucG9zO3MuZG9jLm5vZGVzQmV0d2Vlbih2LHgsKG0sZik9PntpZighbS5pc1RleHQmJiFtLm1hcmtzLmxlbmd0aClyZXR1cm47bGV0IHk9TWF0aC5tYXgodixmKSxNPU1hdGgubWluKHgsZittLm5vZGVTaXplKSx6PU0teTtvKz16LGwucHVzaCguLi5tLm1hcmtzLm1hcChOPT4oe21hcms6Tixmcm9tOnksdG86TX0pKSl9KX0pLG89PT0wKXJldHVybiExO2xldCBwPWwuZmlsdGVyKGM9Pm4/bi5uYW1lPT09Yy5tYXJrLnR5cGUubmFtZTohMCkuZmlsdGVyKGM9PkJ2KGMubWFyay5hdHRycyx0LHtzdHJpY3Q6ITF9KSkucmVkdWNlKChjLGIpPT5jK2IudG8tYi5mcm9tLDApLGQ9bC5maWx0ZXIoYz0+bj9jLm1hcmsudHlwZSE9PW4mJmMubWFyay50eXBlLmV4Y2x1ZGVzKG4pOiEwKS5yZWR1Y2UoKGMsYik9PmMrYi50by1iLmZyb20sMCk7cmV0dXJuKHA+MD9wK2Q6cCk+PW99ZnVuY3Rpb24gV2F0KHMsZSx0PXt9KXtpZighZSlyZXR1cm4gZGcocyxudWxsLHQpfHx1WChzLG51bGwsdCk7bGV0IGE9SHYoZSxzLnNjaGVtYSk7cmV0dXJuIGE9PT0ibm9kZSI/ZGcocyxlLHQpOmE9PT0ibWFyayI/dVgocyxlLHQpOiExfWZ1bmN0aW9uIFBsZShzLGUpe2xldHtub2RlRXh0ZW5zaW9uczp0fT1OdihlKSxhPXQuZmluZChvPT5vLm5hbWU9PT1zKTtpZighYSlyZXR1cm4hMTtsZXQgcj17bmFtZTphLm5hbWUsb3B0aW9uczphLm9wdGlvbnMsc3RvcmFnZTphLnN0b3JhZ2V9LG49Y2EoRHQoYSwiZ3JvdXAiLHIpKTtyZXR1cm4gdHlwZW9mIG4hPSJzdHJpbmciPyExOm4uc3BsaXQoIiAiKS5pbmNsdWRlcygibGlzdCIpfWZ1bmN0aW9uIHBYKHMse2NoZWNrQ2hpbGRyZW46ZT0hMCxpZ25vcmVXaGl0ZXNwYWNlOnQ9ITF9PXt9KXt2YXIgYTtpZih0KXtpZihzLnR5cGUubmFtZT09PSJoYXJkQnJlYWsiKXJldHVybiEwO2lmKHMuaXNUZXh0KXJldHVybi9eXHMqJC9tLnRlc3QoKGE9cy50ZXh0KSE9PW51bGwmJmEhPT12b2lkIDA/YToiIil9aWYocy5pc1RleHQpcmV0dXJuIXMudGV4dDtpZihzLmlzQXRvbXx8cy5pc0xlYWYpcmV0dXJuITE7aWYocy5jb250ZW50LmNoaWxkQ291bnQ9PT0wKXJldHVybiEwO2lmKGUpe2xldCByPSEwO3JldHVybiBzLmNvbnRlbnQuZm9yRWFjaChuPT57ciE9PSExJiYocFgobix7aWdub3JlV2hpdGVzcGFjZTp0LGNoZWNrQ2hpbGRyZW46ZX0pfHwocj0hMSkpfSkscn1yZXR1cm4hMX1mdW5jdGlvbiBCbGUocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBGdH1mdW5jdGlvbiBPaGEocyxlLHQpe2xldCByPXMuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSxuPWEyKGUsMCxyKSxvPWEyKHQsMCxyKSxsPXMuY29vcmRzQXRQb3MobikscD1zLmNvb3Jkc0F0UG9zKG8sLTEpLGQ9TWF0aC5taW4obC50b3AscC50b3ApLHU9TWF0aC5tYXgobC5ib3R0b20scC5ib3R0b20pLGM9TWF0aC5taW4obC5sZWZ0LHAubGVmdCksYj1NYXRoLm1heChsLnJpZ2h0LHAucmlnaHQpLHY9Yi1jLHg9dS1kLHk9e3RvcDpkLGJvdHRvbTp1LGxlZnQ6YyxyaWdodDpiLHdpZHRoOnYsaGVpZ2h0OngseDpjLHk6ZH07cmV0dXJuey4uLnksdG9KU09OOmkoKCk9PnksInRvSlNPTiIpfX1mdW5jdGlvbiB3aGEoe2pzb246cyx2YWxpZE1hcmtzOmUsdmFsaWROb2Rlczp0LG9wdGlvbnM6YSxyZXdyaXR0ZW5Db250ZW50OnI9W119KXtyZXR1cm4gcy5tYXJrcyYmQXJyYXkuaXNBcnJheShzLm1hcmtzKSYmKHMubWFya3M9cy5tYXJrcy5maWx0ZXIobj0+e2xldCBvPXR5cGVvZiBuPT0ic3RyaW5nIj9uOm4udHlwZTtyZXR1cm4gZS5oYXMobyk/ITA6KHIucHVzaCh7b3JpZ2luYWw6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuKSksdW5zdXBwb3J0ZWQ6b30pLCExKX0pKSxzLmNvbnRlbnQmJkFycmF5LmlzQXJyYXkocy5jb250ZW50KSYmKHMuY29udGVudD1zLmNvbnRlbnQubWFwKG49PndoYSh7anNvbjpuLHZhbGlkTWFya3M6ZSx2YWxpZE5vZGVzOnQsb3B0aW9uczphLHJld3JpdHRlbkNvbnRlbnQ6cn0pLmpzb24pLmZpbHRlcihuPT5uIT1udWxsKSkscy50eXBlJiYhdC5oYXMocy50eXBlKT8oci5wdXNoKHtvcmlnaW5hbDpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHMpKSx1bnN1cHBvcnRlZDpzLnR5cGV9KSxzLmNvbnRlbnQmJkFycmF5LmlzQXJyYXkocy5jb250ZW50KSYmYT8uZmFsbGJhY2tUb1BhcmFncmFwaCE9PSExPyhzLnR5cGU9InBhcmFncmFwaCIse2pzb246cyxyZXdyaXR0ZW5Db250ZW50OnJ9KTp7anNvbjpudWxsLHJld3JpdHRlbkNvbnRlbnQ6cn0pOntqc29uOnMscmV3cml0dGVuQ29udGVudDpyfX1mdW5jdGlvbiBGaGEocyxlLHQpe3JldHVybiB3aGEoe2pzb246cyx2YWxpZE5vZGVzOm5ldyBTZXQoT2JqZWN0LmtleXMoZS5ub2RlcykpLHZhbGlkTWFya3M6bmV3IFNldChPYmplY3Qua2V5cyhlLm1hcmtzKSksb3B0aW9uczp0fSl9ZnVuY3Rpb24gTVphKHMsZSx0KXt2YXIgYTtsZXR7c2VsZWN0aW9uOnJ9PWUsbj1udWxsO2lmKENsZShyKSYmKG49ci4kY3Vyc29yKSxuKXtsZXQgbD0oYT1zLnN0b3JlZE1hcmtzKSE9PW51bGwmJmEhPT12b2lkIDA/YTpuLm1hcmtzKCk7cmV0dXJuISF0LmlzSW5TZXQobCl8fCFsLnNvbWUocD0+cC50eXBlLmV4Y2x1ZGVzKHQpKX1sZXR7cmFuZ2VzOm99PXI7cmV0dXJuIG8uc29tZSgoeyRmcm9tOmwsJHRvOnB9KT0+e2xldCBkPWwuZGVwdGg9PT0wP3MuZG9jLmlubGluZUNvbnRlbnQmJnMuZG9jLnR5cGUuYWxsb3dzTWFya1R5cGUodCk6ITE7cmV0dXJuIHMuZG9jLm5vZGVzQmV0d2VlbihsLnBvcyxwLnBvcywodSxjLGIpPT57aWYoZClyZXR1cm4hMTtpZih1LmlzSW5saW5lKXtsZXQgdj0hYnx8Yi50eXBlLmFsbG93c01hcmtUeXBlKHQpLHg9ISF0LmlzSW5TZXQodS5tYXJrcyl8fCF1Lm1hcmtzLnNvbWUobT0+bS50eXBlLmV4Y2x1ZGVzKHQpKTtkPXYmJnh9cmV0dXJuIWR9KSxkfSl9ZnVuY3Rpb24ga2hhKHMsZSl7bGV0IHQ9cy5zdG9yZWRNYXJrc3x8cy5zZWxlY3Rpb24uJHRvLnBhcmVudE9mZnNldCYmcy5zZWxlY3Rpb24uJGZyb20ubWFya3MoKTtpZih0KXtsZXQgYT10LmZpbHRlcihyPT5lPy5pbmNsdWRlcyhyLnR5cGUubmFtZSkpO3MudHIuZW5zdXJlTWFya3MoYSl9fWZ1bmN0aW9uIEdhdChzLGUsdCl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc3R5bGVbZGF0YS10aXB0YXAtc3R5bGUke3Q/YC0ke3R9YDoiIn1dYCk7aWYoYSE9PW51bGwpcmV0dXJuIGE7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gZSYmci5zZXRBdHRyaWJ1dGUoIm5vbmNlIixlKSxyLnNldEF0dHJpYnV0ZShgZGF0YS10aXB0YXAtc3R5bGUke3Q/YC0ke3R9YDoiIn1gLCIiKSxyLmlubmVySFRNTD1zLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQocikscn1mdW5jdGlvbiBxYyhzKXtyZXR1cm4gbmV3IHV1KHtmaW5kOnMuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnQsbWF0Y2g6YX0pPT57bGV0IHI9Y2Eocy5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhKTtpZihyPT09ITF8fHI9PT1udWxsKXJldHVybiBudWxsO2xldHt0cjpufT1lLG89YVthLmxlbmd0aC0xXSxsPWFbMF07aWYobyl7bGV0IHA9bC5zZWFyY2goL1xTLyksZD10LmZyb20rbC5pbmRleE9mKG8pLHU9ZCtvLmxlbmd0aDtpZihWdih0LmZyb20sdC50byxlLmRvYykuZmlsdGVyKHY9PnYubWFyay50eXBlLmV4Y2x1ZGVkLmZpbmQobT0+bT09PXMudHlwZSYmbSE9PXYubWFyay50eXBlKSkuZmlsdGVyKHY9PnYudG8+ZCkubGVuZ3RoKXJldHVybiBudWxsO3U8dC50byYmbi5kZWxldGUodSx0LnRvKSxkPnQuZnJvbSYmbi5kZWxldGUodC5mcm9tK3AsZCk7bGV0IGI9dC5mcm9tK3Arby5sZW5ndGg7bi5hZGRNYXJrKHQuZnJvbStwLGIscy50eXBlLmNyZWF0ZShyfHx7fSkpLG4ucmVtb3ZlU3RvcmVkTWFyayhzLnR5cGUpfX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIEhsZShzKXtyZXR1cm4gbmV3IHV1KHtmaW5kOnMuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnQsbWF0Y2g6YX0pPT57bGV0IHI9Y2Eocy5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhKXx8e30se3RyOm59PWUsbz10LmZyb20sbD10LnRvLHA9cy50eXBlLmNyZWF0ZShyKTtpZihhWzFdKXtsZXQgZD1hWzBdLmxhc3RJbmRleE9mKGFbMV0pLHU9bytkO3U+bD91PWw6bD11K2FbMV0ubGVuZ3RoO2xldCBjPWFbMF1bYVswXS5sZW5ndGgtMV07bi5pbnNlcnRUZXh0KGMsbythWzBdLmxlbmd0aC0xKSxuLnJlcGxhY2VXaXRoKHUsbCxwKX1lbHNlIGlmKGFbMF0pe2xldCBkPXMudHlwZS5pc0lubGluZT9vOm8tMTtuLmluc2VydChkLHMudHlwZS5jcmVhdGUocikpLmRlbGV0ZShuLm1hcHBpbmcubWFwKG8pLG4ubWFwcGluZy5tYXAobCkpfW4uc2Nyb2xsSW50b1ZpZXcoKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIHVnKHMpe3JldHVybiBuZXcgdXUoe2ZpbmQ6cy5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDphfSk9PntsZXQgcj1lLmRvYy5yZXNvbHZlKHQuZnJvbSksbj1jYShzLmdldEF0dHJpYnV0ZXMsdm9pZCAwLGEpfHx7fTtpZighci5ub2RlKC0xKS5jYW5SZXBsYWNlV2l0aChyLmluZGV4KC0xKSxyLmluZGV4QWZ0ZXIoLTEpLHMudHlwZSkpcmV0dXJuIG51bGw7ZS50ci5kZWxldGUodC5mcm9tLHQudG8pLnNldEJsb2NrVHlwZSh0LmZyb20sdC5mcm9tLHMudHlwZSxuKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIGhpKHMpe3JldHVybiBuZXcgdXUoe2ZpbmQ6cy5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDphfSk9PntsZXQgcj1zLnJlcGxhY2Usbj10LmZyb20sbz10LnRvO2lmKGFbMV0pe2xldCBsPWFbMF0ubGFzdEluZGV4T2YoYVsxXSk7cis9YVswXS5zbGljZShsK2FbMV0ubGVuZ3RoKSxuKz1sO2xldCBwPW4tbztwPjAmJihyPWFbMF0uc2xpY2UobC1wLGwpK3Isbj1vKX1lLnRyLmluc2VydFRleHQocixuLG8pfSwiaGFuZGxlciIpfSl9ZnVuY3Rpb24gT2Qocyl7cmV0dXJuIG5ldyB1dSh7ZmluZDpzLmZpbmQsaGFuZGxlcjppKCh7c3RhdGU6ZSxyYW5nZTp0LG1hdGNoOmEsY2hhaW46cn0pPT57bGV0IG49Y2Eocy5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhKXx8e30sbz1lLnRyLmRlbGV0ZSh0LmZyb20sdC50bykscD1vLmRvYy5yZXNvbHZlKHQuZnJvbSkuYmxvY2tSYW5nZSgpLGQ9cCYmSzgocCxzLnR5cGUsbik7aWYoIWQpcmV0dXJuIG51bGw7aWYoby53cmFwKHAsZCkscy5rZWVwTWFya3MmJnMuZWRpdG9yKXtsZXR7c2VsZWN0aW9uOmMsc3RvcmVkTWFya3M6Yn09ZSx7c3BsaXR0YWJsZU1hcmtzOnZ9PXMuZWRpdG9yLmV4dGVuc2lvbk1hbmFnZXIseD1ifHxjLiR0by5wYXJlbnRPZmZzZXQmJmMuJGZyb20ubWFya3MoKTtpZih4KXtsZXQgbT14LmZpbHRlcihmPT52LmluY2x1ZGVzKGYudHlwZS5uYW1lKSk7by5lbnN1cmVNYXJrcyhtKX19aWYocy5rZWVwQXR0cmlidXRlcyl7bGV0IGM9cy50eXBlLm5hbWU9PT0iYnVsbGV0TGlzdCJ8fHMudHlwZS5uYW1lPT09Im9yZGVyZWRMaXN0Ij8ibGlzdEl0ZW0iOiJ0YXNrTGlzdCI7cigpLnVwZGF0ZUF0dHJpYnV0ZXMoYyxuKS5ydW4oKX1sZXQgdT1vLmRvYy5yZXNvbHZlKHQuZnJvbS0xKS5ub2RlQmVmb3JlO3UmJnUudHlwZT09PXMudHlwZSYmWmwoby5kb2MsdC5mcm9tLTEpJiYoIXMuam9pblByZWRpY2F0ZXx8cy5qb2luUHJlZGljYXRlKGEsdSkpJiZvLmpvaW4odC5mcm9tLTEpfSwiaGFuZGxlciIpfSl9ZnVuY3Rpb24gVGwocyl7cmV0dXJuIG5ldyBvZyh7ZmluZDpzLmZpbmQsaGFuZGxlcjppKCh7c3RhdGU6ZSxyYW5nZTp0LG1hdGNoOmEscGFzdGVFdmVudDpyfSk9PntsZXQgbj1jYShzLmdldEF0dHJpYnV0ZXMsdm9pZCAwLGEscik7aWYobj09PSExfHxuPT09bnVsbClyZXR1cm4gbnVsbDtsZXR7dHI6b309ZSxsPWFbYS5sZW5ndGgtMV0scD1hWzBdLGQ9dC50bztpZihsKXtsZXQgdT1wLnNlYXJjaCgvXFMvKSxjPXQuZnJvbStwLmluZGV4T2YobCksYj1jK2wubGVuZ3RoO2lmKFZ2KHQuZnJvbSx0LnRvLGUuZG9jKS5maWx0ZXIoeD0+eC5tYXJrLnR5cGUuZXhjbHVkZWQuZmluZChmPT5mPT09cy50eXBlJiZmIT09eC5tYXJrLnR5cGUpKS5maWx0ZXIoeD0+eC50bz5jKS5sZW5ndGgpcmV0dXJuIG51bGw7Yjx0LnRvJiZvLmRlbGV0ZShiLHQudG8pLGM+dC5mcm9tJiZvLmRlbGV0ZSh0LmZyb20rdSxjKSxkPXQuZnJvbSt1K2wubGVuZ3RoLG8uYWRkTWFyayh0LmZyb20rdSxkLHMudHlwZS5jcmVhdGUobnx8e30pKSxvLnJlbW92ZVN0b3JlZE1hcmsocy50eXBlKX19LCJoYW5kbGVyIil9KX1mdW5jdGlvbiBxbGUocyxlKXtsZXR7c2VsZWN0aW9uOnR9PXMseyRmcm9tOmF9PXQ7aWYodCBpbnN0YW5jZW9mIEZ0KXtsZXQgbj1hLmluZGV4KCk7cmV0dXJuIGEucGFyZW50LmNhblJlcGxhY2VXaXRoKG4sbisxLGUpfWxldCByPWEuZGVwdGg7Zm9yKDtyPj0wOyl7bGV0IG49YS5pbmRleChyKTtpZihhLm5vZGUocikuY29udGVudE1hdGNoQXQobikubWF0Y2hUeXBlKGUpKXJldHVybiEwO3ItPTF9cmV0dXJuITF9ZnVuY3Rpb24gSGhhKHMpe3JldHVybiBzLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKX1mdW5jdGlvbiBxaGEocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIn1mdW5jdGlvbiBqaGEocyl7cmV0dXJuIG5ldyBvZyh7ZmluZDpzLmZpbmQsaGFuZGxlcih7bWF0Y2g6ZSxjaGFpbjp0LHJhbmdlOmEscGFzdGVFdmVudDpyfSl7bGV0IG49Y2Eocy5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxlLHIpLG89Y2Eocy5nZXRDb250ZW50LHZvaWQgMCxuKTtpZihuPT09ITF8fG49PT1udWxsKXJldHVybiBudWxsO2xldCBsPXt0eXBlOnMudHlwZS5uYW1lLGF0dHJzOm59O28mJihsLmNvbnRlbnQ9byksZS5pbnB1dCYmdCgpLmRlbGV0ZVJhbmdlKGEpLmluc2VydENvbnRlbnRBdChhLmZyb20sbCl9fSl9ZnVuY3Rpb24gVmhhKHMpe3JldHVybiBuZXcgb2coe2ZpbmQ6cy5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDphfSk9PntsZXQgcj1zLnJlcGxhY2Usbj10LmZyb20sbz10LnRvO2lmKGFbMV0pe2xldCBsPWFbMF0ubGFzdEluZGV4T2YoYVsxXSk7cis9YVswXS5zbGljZShsK2FbMV0ubGVuZ3RoKSxuKz1sO2xldCBwPW4tbztwPjAmJihyPWFbMF0uc2xpY2UobC1wLGwpK3Isbj1vKX1lLnRyLmluc2VydFRleHQocixuLG8pfSwiaGFuZGxlciIpfSl9dmFyIFBoLFRhdCxJYXQsdXUsTFlhLERvLG9nLFBZYSx4bGUsQVlhLHlsZSx3aSxiaGEsTllhLFJZYSxPWWEsRllhLEJZYSxIWWEscVlhLGpZYSxWWWEsVVlhLFdZYSxHWWEsS1lhLFlZYSxaWWEsWFlhLFFZYSx5aGEsSllhLGVaYSx0WmEsYVphLHNaYSxpWmEsclphLG9aYSxuWmEsbFphLGRaYSx1WmEscFphLGhaYSxmWmEsbVphLGdaYSxiWmEsdlphLHhaYSx5WmEsd1phLGtaYSxTWmEsQWhhLE5oYSxSaGEselphLENaYSxUWmEsJFphLERaYSxMWmEsRVphLFBaYSxEYXQsTGF0LElaYSxBWmEsTlphLFJaYSxPWmEsRlphLEJaYSxIWmEscVphLGpaYSxWWmEsU2hhLF9oYSxNaGEsemhhLENoYSxUaGEsJGhhLERoYSxCaGEsaFgsVVphLElsZSxzaSxBbGUsTmxlLGlpPWcoKCk9PntHWigpO0dwYSgpO1pwYSgpO1hwYSgpO1FwYSgpO2xoYSgpO21oYSgpO2koQXYsImNyZWF0ZUNoYWluYWJsZVN0YXRlIik7UGg9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29tbWFuZE1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmVkaXRvcj1lLmVkaXRvcix0aGlzLnJhd0NvbW1hbmRzPXRoaXMuZWRpdG9yLmV4dGVuc2lvbk1hbmFnZXIuY29tbWFuZHMsdGhpcy5jdXN0b21TdGF0ZT1lLnN0YXRlfWdldCBoYXNDdXN0b21TdGF0ZSgpe3JldHVybiEhdGhpcy5jdXN0b21TdGF0ZX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5jdXN0b21TdGF0ZXx8dGhpcy5lZGl0b3Iuc3RhdGV9Z2V0IGNvbW1hbmRzKCl7bGV0e3Jhd0NvbW1hbmRzOmUsZWRpdG9yOnQsc3RhdGU6YX09dGhpcyx7dmlldzpyfT10LHt0cjpufT1hLG89dGhpcy5idWlsZFByb3BzKG4pO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZSkubWFwKChbbCxwXSk9PltsLGkoKC4uLnUpPT57bGV0IGM9cCguLi51KShvKTtyZXR1cm4hbi5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJnIuZGlzcGF0Y2gobiksY30sIm1ldGhvZCIpXSkpfWdldCBjaGFpbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNoYWluKCl9Z2V0IGNhbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNhbigpfWNyZWF0ZUNoYWluKGUsdD0hMCl7bGV0e3Jhd0NvbW1hbmRzOmEsZWRpdG9yOnIsc3RhdGU6bn09dGhpcyx7dmlldzpvfT1yLGw9W10scD0hIWUsZD1lfHxuLnRyLHU9aSgoKT0+KCFwJiZ0JiYhZC5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJm8uZGlzcGF0Y2goZCksbC5ldmVyeShiPT5iPT09ITApKSwicnVuIiksYz17Li4uT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGEpLm1hcCgoW2Isdl0pPT5bYixpKCguLi5tKT0+e2xldCBmPXRoaXMuYnVpbGRQcm9wcyhkLHQpLHk9diguLi5tKShmKTtyZXR1cm4gbC5wdXNoKHkpLGN9LCJjaGFpbmVkQ29tbWFuZCIpXSkpLHJ1bjp1fTtyZXR1cm4gY31jcmVhdGVDYW4oZSl7bGV0e3Jhd0NvbW1hbmRzOnQsc3RhdGU6YX09dGhpcyxyPSExLG49ZXx8YS50cixvPXRoaXMuYnVpbGRQcm9wcyhuLHIpO3JldHVybnsuLi5PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKChbcCxkXSk9PltwLCguLi51KT0+ZCguLi51KSh7Li4ubyxkaXNwYXRjaDp2b2lkIDB9KV0pKSxjaGFpbjppKCgpPT50aGlzLmNyZWF0ZUNoYWluKG4sciksImNoYWluIil9fWJ1aWxkUHJvcHMoZSx0PSEwKXtsZXR7cmF3Q29tbWFuZHM6YSxlZGl0b3I6cixzdGF0ZTpufT10aGlzLHt2aWV3Om99PXIsbD17dHI6ZSxlZGl0b3I6cix2aWV3Om8sc3RhdGU6QXYoe3N0YXRlOm4sdHJhbnNhY3Rpb246ZX0pLGRpc3BhdGNoOnQ/KCk9Pnt9OnZvaWQgMCxjaGFpbjppKCgpPT50aGlzLmNyZWF0ZUNoYWluKGUsdCksImNoYWluIiksY2FuOmkoKCk9PnRoaXMuY3JlYXRlQ2FuKGUpLCJjYW4iKSxnZXQgY29tbWFuZHMoKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGEpLm1hcCgoW3AsZF0pPT5bcCwoLi4udSk9PmQoLi4udSkobCldKSl9fTtyZXR1cm4gbH19LFRhdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFdmVudEVtaXR0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuY2FsbGJhY2tzPXt9fW9uKGUsdCl7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2VdfHwodGhpcy5jYWxsYmFja3NbZV09W10pLHRoaXMuY2FsbGJhY2tzW2VdLnB1c2godCksdGhpc31lbWl0KGUsLi4udCl7bGV0IGE9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIGEmJmEuZm9yRWFjaChyPT5yLmFwcGx5KHRoaXMsdCkpLHRoaXN9b2ZmKGUsdCl7bGV0IGE9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIGEmJih0P3RoaXMuY2FsbGJhY2tzW2VdPWEuZmlsdGVyKHI9PnIhPT10KTpkZWxldGUgdGhpcy5jYWxsYmFja3NbZV0pLHRoaXN9b25jZShlLHQpe2xldCBhPWkoKC4uLnIpPT57dGhpcy5vZmYoZSxhKSx0LmFwcGx5KHRoaXMscil9LCJvbmNlRm4iKTtyZXR1cm4gdGhpcy5vbihlLGEpfXJlbW92ZUFsbExpc3RlbmVycygpe3RoaXMuY2FsbGJhY2tzPXt9fX07aShEdCwiZ2V0RXh0ZW5zaW9uRmllbGQiKTtpKE52LCJzcGxpdEV4dGVuc2lvbnMiKTtpKHdsZSwiZ2V0QXR0cmlidXRlc0Zyb21FeHRlbnNpb25zIik7aShMciwiZ2V0Tm9kZVR5cGUiKTtpKGFzLCJtZXJnZUF0dHJpYnV0ZXMiKTtpKGlYLCJnZXRSZW5kZXJlZEF0dHJpYnV0ZXMiKTtpKGtsZSwiaXNGdW5jdGlvbiIpO2koY2EsImNhbGxPclJldHVybiIpO2koRWF0LCJpc0VtcHR5T2JqZWN0Iik7aShQYXQsImZyb21TdHJpbmciKTtpKFNsZSwiaW5qZWN0RXh0ZW5zaW9uQXR0cmlidXRlc1RvUGFyc2VSdWxlIik7aShnaGEsImNsZWFuVXBTY2hlbWFJdGVtIik7aShfbGUsImdldFNjaGVtYUJ5UmVzb2x2ZWRFeHRlbnNpb25zIik7aShyWCwiZ2V0U2NoZW1hVHlwZUJ5TmFtZSIpO2koTWxlLCJpc0V4dGVuc2lvblJ1bGVzRW5hYmxlZCIpO2koUnYsImdldEhUTUxGcm9tRnJhZ21lbnQiKTtJYXQ9aSgocyxlPTUwMCk9PntsZXQgdD0iIixhPXMucGFyZW50T2Zmc2V0O3JldHVybiBzLnBhcmVudC5ub2Rlc0JldHdlZW4oTWF0aC5tYXgoMCxhLWUpLGEsKHIsbixvLGwpPT57dmFyIHAsZDtsZXQgdT0oKGQ9KHA9ci50eXBlLnNwZWMpLnRvVGV4dCk9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLmNhbGwocCx7bm9kZTpyLHBvczpuLHBhcmVudDpvLGluZGV4Omx9KSl8fHIudGV4dENvbnRlbnR8fCIlbGVhZiUiO3QrPXIuaXNBdG9tJiYhci5pc1RleHQ/dTp1LnNsaWNlKDAsTWF0aC5tYXgoMCxhLW4pKX0pLHR9LCJnZXRUZXh0Q29udGVudEZyb21Ob2RlcyIpO2kob1gsImlzUmVnRXhwIik7dXU9Y2xhc3N7c3RhdGlje2kodGhpcywiSW5wdXRSdWxlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5maW5kPWUuZmluZCx0aGlzLmhhbmRsZXI9ZS5oYW5kbGVyfX0sTFlhPWkoKHMsZSk9PntpZihvWChlKSlyZXR1cm4gZS5leGVjKHMpO2xldCB0PWUocyk7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGE9W3QudGV4dF07cmV0dXJuIGEuaW5kZXg9dC5pbmRleCxhLmlucHV0PXMsYS5kYXRhPXQuZGF0YSx0LnJlcGxhY2VXaXRoJiYodC50ZXh0LmluY2x1ZGVzKHQucmVwbGFjZVdpdGgpfHxjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06ICJpbnB1dFJ1bGVNYXRjaC5yZXBsYWNlV2l0aCIgbXVzdCBiZSBwYXJ0IG9mICJpbnB1dFJ1bGVNYXRjaC50ZXh0Ii4nKSxhLnB1c2godC5yZXBsYWNlV2l0aCkpLGF9LCJpbnB1dFJ1bGVNYXRjaGVySGFuZGxlciIpO2kodmxlLCJydW4kMSIpO2koQWF0LCJpbnB1dFJ1bGVzUGx1Z2luIik7aShFWWEsImdldFR5cGUiKTtpKE92LCJpc1BsYWluT2JqZWN0Iik7aShGdiwibWVyZ2VEZWVwIik7RG89Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJNYXJrIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy50eXBlPSJtYXJrIix0aGlzLm5hbWU9Im1hcmsiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZD1udWxsLHRoaXMuY29uZmlnPXtuYW1lOnRoaXMubmFtZSxkZWZhdWx0T3B0aW9uczp7fX0sdGhpcy5jb25maWc9ey4uLnRoaXMuY29uZmlnLC4uLmV9LHRoaXMubmFtZT10aGlzLmNvbmZpZy5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3RoaXMubmFtZX0iLmApLHRoaXMub3B0aW9ucz10aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucyx0aGlzLmNvbmZpZy5hZGRPcHRpb25zJiYodGhpcy5vcHRpb25zPWNhKER0KHRoaXMsImFkZE9wdGlvbnMiLHtuYW1lOnRoaXMubmFtZX0pKSksdGhpcy5zdG9yYWdlPWNhKER0KHRoaXMsImFkZFN0b3JhZ2UiLHtuYW1lOnRoaXMubmFtZSxvcHRpb25zOnRoaXMub3B0aW9uc30pKXx8e319c3RhdGljIGNyZWF0ZShlPXt9KXtyZXR1cm4gbmV3IHMoZSl9Y29uZmlndXJlKGU9e30pe2xldCB0PXRoaXMuZXh0ZW5kKHsuLi50aGlzLmNvbmZpZyxhZGRPcHRpb25zOmkoKCk9PkZ2KHRoaXMub3B0aW9ucyxlKSwiYWRkT3B0aW9ucyIpfSk7cmV0dXJuIHQubmFtZT10aGlzLm5hbWUsdC5wYXJlbnQ9dGhpcy5wYXJlbnQsdH1leHRlbmQoZT17fSl7bGV0IHQ9bmV3IHMoZSk7cmV0dXJuIHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZD10LHQubmFtZT1lLm5hbWU/ZS5uYW1lOnQucGFyZW50Lm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dC5uYW1lfSIuYCksdC5vcHRpb25zPWNhKER0KHQsImFkZE9wdGlvbnMiLHtuYW1lOnQubmFtZX0pKSx0LnN0b3JhZ2U9Y2EoRHQodCwiYWRkU3RvcmFnZSIse25hbWU6dC5uYW1lLG9wdGlvbnM6dC5vcHRpb25zfSkpLHR9c3RhdGljIGhhbmRsZUV4aXQoe2VkaXRvcjplLG1hcms6dH0pe2xldHt0cjphfT1lLnN0YXRlLHI9ZS5zdGF0ZS5zZWxlY3Rpb24uJGZyb207aWYoci5wb3M9PT1yLmVuZCgpKXtsZXQgbz1yLm1hcmtzKCk7aWYoISEhby5maW5kKGQ9PmQ/LnR5cGUubmFtZT09PXQubmFtZSkpcmV0dXJuITE7bGV0IHA9by5maW5kKGQ9PmQ/LnR5cGUubmFtZT09PXQubmFtZSk7cmV0dXJuIHAmJmEucmVtb3ZlU3RvcmVkTWFyayhwKSxhLmluc2VydFRleHQoIiAiLHIucG9zKSxlLnZpZXcuZGlzcGF0Y2goYSksITB9cmV0dXJuITF9fTtpKE5hdCwiaXNOdW1iZXIiKTtvZz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQYXN0ZVJ1bGUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmZpbmQ9ZS5maW5kLHRoaXMuaGFuZGxlcj1lLmhhbmRsZXJ9fSxQWWE9aSgocyxlLHQpPT57aWYob1goZSkpcmV0dXJuWy4uLnMubWF0Y2hBbGwoZSldO2xldCBhPWUocyx0KTtyZXR1cm4gYT9hLm1hcChyPT57bGV0IG49W3IudGV4dF07cmV0dXJuIG4uaW5kZXg9ci5pbmRleCxuLmlucHV0PXMsbi5kYXRhPXIuZGF0YSxyLnJlcGxhY2VXaXRoJiYoci50ZXh0LmluY2x1ZGVzKHIucmVwbGFjZVdpdGgpfHxjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06ICJwYXN0ZVJ1bGVNYXRjaC5yZXBsYWNlV2l0aCIgbXVzdCBiZSBwYXJ0IG9mICJwYXN0ZVJ1bGVNYXRjaC50ZXh0Ii4nKSxuLnB1c2goci5yZXBsYWNlV2l0aCkpLG59KTpbXX0sInBhc3RlUnVsZU1hdGNoZXJIYW5kbGVyIik7aShJWWEsInJ1biIpO3hsZT1udWxsLEFZYT1pKHM9Pnt2YXIgZTtsZXQgdD1uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIix7Y2xpcGJvYXJkRGF0YTpuZXcgRGF0YVRyYW5zZmVyfSk7cmV0dXJuKGU9dC5jbGlwYm9hcmREYXRhKT09PW51bGx8fGU9PT12b2lkIDB8fGUuc2V0RGF0YSgidGV4dC9odG1sIixzKSx0fSwiY3JlYXRlQ2xpcGJvYXJkUGFzdGVFdmVudCIpO2koUmF0LCJwYXN0ZVJ1bGVzUGx1Z2luIik7aShPYXQsImZpbmREdXBsaWNhdGVzIik7eWxlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRXh0ZW5zaW9uTWFuYWdlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zcGxpdHRhYmxlTWFya3M9W10sdGhpcy5lZGl0b3I9dCx0aGlzLmV4dGVuc2lvbnM9cy5yZXNvbHZlKGUpLHRoaXMuc2NoZW1hPV9sZSh0aGlzLmV4dGVuc2lvbnMsdCksdGhpcy5zZXR1cEV4dGVuc2lvbnMoKX1zdGF0aWMgcmVzb2x2ZShlKXtsZXQgdD1zLnNvcnQocy5mbGF0dGVuKGUpKSxhPU9hdCh0Lm1hcChyPT5yLm5hbWUpKTtyZXR1cm4gYS5sZW5ndGgmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogRHVwbGljYXRlIGV4dGVuc2lvbiBuYW1lcyBmb3VuZDogWyR7YS5tYXAocj0+YCcke3J9J2ApLmpvaW4oIiwgIil9XS4gVGhpcyBjYW4gbGVhZCB0byBpc3N1ZXMuYCksdH1zdGF0aWMgZmxhdHRlbihlKXtyZXR1cm4gZS5tYXAodD0+e2xldCBhPXtuYW1lOnQubmFtZSxvcHRpb25zOnQub3B0aW9ucyxzdG9yYWdlOnQuc3RvcmFnZX0scj1EdCh0LCJhZGRFeHRlbnNpb25zIixhKTtyZXR1cm4gcj9bdCwuLi50aGlzLmZsYXR0ZW4ocigpKV06dH0pLmZsYXQoMTApfXN0YXRpYyBzb3J0KGUpe3JldHVybiBlLnNvcnQoKGEscik9PntsZXQgbj1EdChhLCJwcmlvcml0eSIpfHwxMDAsbz1EdChyLCJwcmlvcml0eSIpfHwxMDA7cmV0dXJuIG4+bz8tMTpuPG8/MTowfSl9Z2V0IGNvbW1hbmRzKCl7cmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5yZWR1Y2UoKGUsdCk9PntsZXQgYT17bmFtZTp0Lm5hbWUsb3B0aW9uczp0Lm9wdGlvbnMsc3RvcmFnZTp0LnN0b3JhZ2UsZWRpdG9yOnRoaXMuZWRpdG9yLHR5cGU6clgodC5uYW1lLHRoaXMuc2NoZW1hKX0scj1EdCh0LCJhZGRDb21tYW5kcyIsYSk7cmV0dXJuIHI/ey4uLmUsLi4ucigpfTplfSx7fSl9Z2V0IHBsdWdpbnMoKXtsZXR7ZWRpdG9yOmV9PXRoaXMsdD1zLnNvcnQoWy4uLnRoaXMuZXh0ZW5zaW9uc10ucmV2ZXJzZSgpKSxhPVtdLHI9W10sbj10Lm1hcChvPT57bGV0IGw9e25hbWU6by5uYW1lLG9wdGlvbnM6by5vcHRpb25zLHN0b3JhZ2U6by5zdG9yYWdlLGVkaXRvcjplLHR5cGU6clgoby5uYW1lLHRoaXMuc2NoZW1hKX0scD1bXSxkPUR0KG8sImFkZEtleWJvYXJkU2hvcnRjdXRzIixsKSx1PXt9O2lmKG8udHlwZT09PSJtYXJrIiYmRHQobywiZXhpdGFibGUiLGwpJiYodS5BcnJvd1JpZ2h0PSgpPT5Eby5oYW5kbGVFeGl0KHtlZGl0b3I6ZSxtYXJrOm99KSksZCl7bGV0IG09T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGQoKSkubWFwKChbZix5XSk9PltmLCgpPT55KHtlZGl0b3I6ZX0pXSkpO3U9ey4uLnUsLi4ubX19bGV0IGM9Y2F0KHUpO3AucHVzaChjKTtsZXQgYj1EdChvLCJhZGRJbnB1dFJ1bGVzIixsKTtNbGUobyxlLm9wdGlvbnMuZW5hYmxlSW5wdXRSdWxlcykmJmImJmEucHVzaCguLi5iKCkpO2xldCB2PUR0KG8sImFkZFBhc3RlUnVsZXMiLGwpO01sZShvLGUub3B0aW9ucy5lbmFibGVQYXN0ZVJ1bGVzKSYmdiYmci5wdXNoKC4uLnYoKSk7bGV0IHg9RHQobywiYWRkUHJvc2VNaXJyb3JQbHVnaW5zIixsKTtpZih4KXtsZXQgbT14KCk7cC5wdXNoKC4uLm0pfXJldHVybiBwfSkuZmxhdCgpO3JldHVybltBYXQoe2VkaXRvcjplLHJ1bGVzOmF9KSwuLi5SYXQoe2VkaXRvcjplLHJ1bGVzOnJ9KSwuLi5uXX1nZXQgYXR0cmlidXRlcygpe3JldHVybiB3bGUodGhpcy5leHRlbnNpb25zKX1nZXQgbm9kZVZpZXdzKCl7bGV0e2VkaXRvcjplfT10aGlzLHtub2RlRXh0ZW5zaW9uczp0fT1Odih0aGlzLmV4dGVuc2lvbnMpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXModC5maWx0ZXIoYT0+ISFEdChhLCJhZGROb2RlVmlldyIpKS5tYXAoYT0+e2xldCByPXRoaXMuYXR0cmlidXRlcy5maWx0ZXIocD0+cC50eXBlPT09YS5uYW1lKSxuPXtuYW1lOmEubmFtZSxvcHRpb25zOmEub3B0aW9ucyxzdG9yYWdlOmEuc3RvcmFnZSxlZGl0b3I6ZSx0eXBlOkxyKGEubmFtZSx0aGlzLnNjaGVtYSl9LG89RHQoYSwiYWRkTm9kZVZpZXciLG4pO2lmKCFvKXJldHVybltdO2xldCBsPWkoKHAsZCx1LGMsYik9PntsZXQgdj1pWChwLHIpO3JldHVybiBvKCkoe25vZGU6cCx2aWV3OmQsZ2V0UG9zOnUsZGVjb3JhdGlvbnM6Yyxpbm5lckRlY29yYXRpb25zOmIsZWRpdG9yOmUsZXh0ZW5zaW9uOmEsSFRNTEF0dHJpYnV0ZXM6dn0pfSwibm9kZXZpZXciKTtyZXR1cm5bYS5uYW1lLGxdfSkpfXNldHVwRXh0ZW5zaW9ucygpe3RoaXMuZXh0ZW5zaW9ucy5mb3JFYWNoKGU9Pnt2YXIgdDt0aGlzLmVkaXRvci5leHRlbnNpb25TdG9yYWdlW2UubmFtZV09ZS5zdG9yYWdlO2xldCBhPXtuYW1lOmUubmFtZSxvcHRpb25zOmUub3B0aW9ucyxzdG9yYWdlOmUuc3RvcmFnZSxlZGl0b3I6dGhpcy5lZGl0b3IsdHlwZTpyWChlLm5hbWUsdGhpcy5zY2hlbWEpfTtlLnR5cGU9PT0ibWFyayImJighKCh0PWNhKER0KGUsImtlZXBPblNwbGl0IixhKSkpIT09bnVsbCYmdCE9PXZvaWQgMCl8fHQpJiZ0aGlzLnNwbGl0dGFibGVNYXJrcy5wdXNoKGUubmFtZSk7bGV0IHI9RHQoZSwib25CZWZvcmVDcmVhdGUiLGEpLG49RHQoZSwib25DcmVhdGUiLGEpLG89RHQoZSwib25VcGRhdGUiLGEpLGw9RHQoZSwib25TZWxlY3Rpb25VcGRhdGUiLGEpLHA9RHQoZSwib25UcmFuc2FjdGlvbiIsYSksZD1EdChlLCJvbkZvY3VzIixhKSx1PUR0KGUsIm9uQmx1ciIsYSksYz1EdChlLCJvbkRlc3Ryb3kiLGEpO3ImJnRoaXMuZWRpdG9yLm9uKCJiZWZvcmVDcmVhdGUiLHIpLG4mJnRoaXMuZWRpdG9yLm9uKCJjcmVhdGUiLG4pLG8mJnRoaXMuZWRpdG9yLm9uKCJ1cGRhdGUiLG8pLGwmJnRoaXMuZWRpdG9yLm9uKCJzZWxlY3Rpb25VcGRhdGUiLGwpLHAmJnRoaXMuZWRpdG9yLm9uKCJ0cmFuc2FjdGlvbiIscCksZCYmdGhpcy5lZGl0b3Iub24oImZvY3VzIixkKSx1JiZ0aGlzLmVkaXRvci5vbigiYmx1ciIsdSksYyYmdGhpcy5lZGl0b3Iub24oImRlc3Ryb3kiLGMpfSl9fSx3aT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIkV4dGVuc2lvbiIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0iZXh0ZW5zaW9uIix0aGlzLm5hbWU9ImV4dGVuc2lvbiIsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkPW51bGwsdGhpcy5jb25maWc9e25hbWU6dGhpcy5uYW1lLGRlZmF1bHRPcHRpb25zOnt9fSx0aGlzLmNvbmZpZz17Li4udGhpcy5jb25maWcsLi4uZX0sdGhpcy5uYW1lPXRoaXMuY29uZmlnLm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dGhpcy5uYW1lfSIuYCksdGhpcy5vcHRpb25zPXRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLHRoaXMuY29uZmlnLmFkZE9wdGlvbnMmJih0aGlzLm9wdGlvbnM9Y2EoRHQodGhpcywiYWRkT3B0aW9ucyIse25hbWU6dGhpcy5uYW1lfSkpKSx0aGlzLnN0b3JhZ2U9Y2EoRHQodGhpcywiYWRkU3RvcmFnZSIse25hbWU6dGhpcy5uYW1lLG9wdGlvbnM6dGhpcy5vcHRpb25zfSkpfHx7fX1zdGF0aWMgY3JlYXRlKGU9e30pe3JldHVybiBuZXcgcyhlKX1jb25maWd1cmUoZT17fSl7bGV0IHQ9dGhpcy5leHRlbmQoey4uLnRoaXMuY29uZmlnLGFkZE9wdGlvbnM6aSgoKT0+RnYodGhpcy5vcHRpb25zLGUpLCJhZGRPcHRpb25zIil9KTtyZXR1cm4gdC5uYW1lPXRoaXMubmFtZSx0LnBhcmVudD10aGlzLnBhcmVudCx0fWV4dGVuZChlPXt9KXtsZXQgdD1uZXcgcyh7Li4udGhpcy5jb25maWcsLi4uZX0pO3JldHVybiB0LnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9dCx0Lm5hbWU9ZS5uYW1lP2UubmFtZTp0LnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3QubmFtZX0iLmApLHQub3B0aW9ucz1jYShEdCh0LCJhZGRPcHRpb25zIix7bmFtZTp0Lm5hbWV9KSksdC5zdG9yYWdlPWNhKER0KHQsImFkZFN0b3JhZ2UiLHtuYW1lOnQubmFtZSxvcHRpb25zOnQub3B0aW9uc30pKSx0fX07aSh6bGUsImdldFRleHRCZXR3ZWVuIik7aShuWCwiZ2V0VGV4dFNlcmlhbGl6ZXJzRnJvbVNjaGVtYSIpO2JoYT13aS5jcmVhdGUoe25hbWU6ImNsaXBib2FyZFRleHRTZXJpYWxpemVyIixhZGRPcHRpb25zKCl7cmV0dXJue2Jsb2NrU2VwYXJhdG9yOnZvaWQgMH19LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgWXMoe2tleTpuZXcgJHIoImNsaXBib2FyZFRleHRTZXJpYWxpemVyIikscHJvcHM6e2NsaXBib2FyZFRleHRTZXJpYWxpemVyOmkoKCk9PntsZXR7ZWRpdG9yOnN9PXRoaXMse3N0YXRlOmUsc2NoZW1hOnR9PXMse2RvYzphLHNlbGVjdGlvbjpyfT1lLHtyYW5nZXM6bn09cixvPU1hdGgubWluKC4uLm4ubWFwKHU9PnUuJGZyb20ucG9zKSksbD1NYXRoLm1heCguLi5uLm1hcCh1PT51LiR0by5wb3MpKSxwPW5YKHQpO3JldHVybiB6bGUoYSx7ZnJvbTpvLHRvOmx9LHsuLi50aGlzLm9wdGlvbnMuYmxvY2tTZXBhcmF0b3IhPT12b2lkIDA/e2Jsb2NrU2VwYXJhdG9yOnRoaXMub3B0aW9ucy5ibG9ja1NlcGFyYXRvcn06e30sdGV4dFNlcmlhbGl6ZXJzOnB9KX0sImNsaXBib2FyZFRleHRTZXJpYWxpemVyIil9fSldfX0pLE5ZYT1pKCgpPT4oe2VkaXRvcjpzLHZpZXc6ZX0pPT4ocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dmFyIHQ7cy5pc0Rlc3Ryb3llZHx8KGUuZG9tLmJsdXIoKSwodD13aW5kb3c/LmdldFNlbGVjdGlvbigpKT09PW51bGx8fHQ9PT12b2lkIDB8fHQucmVtb3ZlQWxsUmFuZ2VzKCkpfSksITApLCJibHVyIiksUllhPWkoKHM9ITEpPT4oe2NvbW1hbmRzOmV9KT0+ZS5zZXRDb250ZW50KCIiLHMpLCJjbGVhckNvbnRlbnQiKSxPWWE9aSgoKT0+KHtzdGF0ZTpzLHRyOmUsZGlzcGF0Y2g6dH0pPT57bGV0e3NlbGVjdGlvbjphfT1lLHtyYW5nZXM6cn09YTtyZXR1cm4gdCYmci5mb3JFYWNoKCh7JGZyb206biwkdG86b30pPT57cy5kb2Mubm9kZXNCZXR3ZWVuKG4ucG9zLG8ucG9zLChsLHApPT57aWYobC50eXBlLmlzVGV4dClyZXR1cm47bGV0e2RvYzpkLG1hcHBpbmc6dX09ZSxjPWQucmVzb2x2ZSh1Lm1hcChwKSksYj1kLnJlc29sdmUodS5tYXAocCtsLm5vZGVTaXplKSksdj1jLmJsb2NrUmFuZ2UoYik7aWYoIXYpcmV0dXJuO2xldCB4PVBkKHYpO2lmKGwudHlwZS5pc1RleHRibG9jayl7bGV0e2RlZmF1bHRUeXBlOm19PWMucGFyZW50LmNvbnRlbnRNYXRjaEF0KGMuaW5kZXgoKSk7ZS5zZXROb2RlTWFya3VwKHYuc3RhcnQsbSl9KHh8fHg9PT0wKSYmZS5saWZ0KHYseCl9KX0pLCEwfSwiY2xlYXJOb2RlcyIpLEZZYT1pKHM9PmU9PnMoZSksImNvbW1hbmQiKSxCWWE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+aGxlKHMsZSksImNyZWF0ZVBhcmFncmFwaE5lYXIiKSxIWWE9aSgocyxlKT0+KHtlZGl0b3I6dCx0cjphfSk9PntsZXR7c3RhdGU6cn09dCxuPXIuZG9jLnNsaWNlKHMuZnJvbSxzLnRvKTthLmRlbGV0ZVJhbmdlKHMuZnJvbSxzLnRvKTtsZXQgbz1hLm1hcHBpbmcubWFwKGUpO3JldHVybiBhLmluc2VydChvLG4uY29udGVudCksYS5zZXRTZWxlY3Rpb24obmV3IEp0KGEuZG9jLnJlc29sdmUoTWF0aC5tYXgoby0xLDApKSkpLCEwfSwiY3V0IikscVlhPWkoKCk9Pih7dHI6cyxkaXNwYXRjaDplfSk9PntsZXR7c2VsZWN0aW9uOnR9PXMsYT10LiRhbmNob3Iubm9kZSgpO2lmKGEuY29udGVudC5zaXplPjApcmV0dXJuITE7bGV0IHI9cy5zZWxlY3Rpb24uJGFuY2hvcjtmb3IobGV0IG49ci5kZXB0aDtuPjA7bi09MSlpZihyLm5vZGUobikudHlwZT09PWEudHlwZSl7aWYoZSl7bGV0IGw9ci5iZWZvcmUobikscD1yLmFmdGVyKG4pO3MuZGVsZXRlKGwscCkuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1yZXR1cm4hMX0sImRlbGV0ZUN1cnJlbnROb2RlIiksallhPWkocz0+KHt0cjplLHN0YXRlOnQsZGlzcGF0Y2g6YX0pPT57bGV0IHI9THIocyx0LnNjaGVtYSksbj1lLnNlbGVjdGlvbi4kYW5jaG9yO2ZvcihsZXQgbz1uLmRlcHRoO28+MDtvLT0xKWlmKG4ubm9kZShvKS50eXBlPT09cil7aWYoYSl7bGV0IHA9bi5iZWZvcmUobyksZD1uLmFmdGVyKG8pO2UuZGVsZXRlKHAsZCkuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1yZXR1cm4hMX0sImRlbGV0ZU5vZGUiKSxWWWE9aShzPT4oe3RyOmUsZGlzcGF0Y2g6dH0pPT57bGV0e2Zyb206YSx0bzpyfT1zO3JldHVybiB0JiZlLmRlbGV0ZShhLHIpLCEwfSwiZGVsZXRlUmFuZ2UiKSxVWWE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+c1gocyxlKSwiZGVsZXRlU2VsZWN0aW9uIiksV1lhPWkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLmtleWJvYXJkU2hvcnRjdXQoIkVudGVyIiksImVudGVyIiksR1lhPWkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9PnBsZShzLGUpLCJleGl0Q29kZSIpO2koQnYsIm9iamVjdEluY2x1ZGVzIik7aSh2aGEsImZpbmRNYXJrSW5TZXQiKTtpKHhoYSwiaXNNYXJrSW5TZXQiKTtpKGxYLCJnZXRNYXJrUmFuZ2UiKTtpKFJkLCJnZXRNYXJrVHlwZSIpO0tZYT1pKChzLGU9e30pPT4oe3RyOnQsc3RhdGU6YSxkaXNwYXRjaDpyfSk9PntsZXQgbj1SZChzLGEuc2NoZW1hKSx7ZG9jOm8sc2VsZWN0aW9uOmx9PXQseyRmcm9tOnAsZnJvbTpkLHRvOnV9PWw7aWYocil7bGV0IGM9bFgocCxuLGUpO2lmKGMmJmMuZnJvbTw9ZCYmYy50bz49dSl7bGV0IGI9SnQuY3JlYXRlKG8sYy5mcm9tLGMudG8pO3Quc2V0U2VsZWN0aW9uKGIpfX1yZXR1cm4hMH0sImV4dGVuZE1hcmtSYW5nZSIpLFlZYT1pKHM9PmU9PntsZXQgdD10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zKGUpOnM7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKz0xKWlmKHRbYV0oZSkpcmV0dXJuITA7cmV0dXJuITF9LCJmaXJzdCIpO2koQ2xlLCJpc1RleHRTZWxlY3Rpb24iKTtpKGEyLCJtaW5NYXgiKTtpKFRsZSwicmVzb2x2ZUZvY3VzUG9zaXRpb24iKTtpKCRhdCwiaXNBbmRyb2lkIik7aShuZywiaXNpT1MiKTtpKEZhdCwiaXNTYWZhcmkiKTtaWWE9aSgocz1udWxsLGU9e30pPT4oe2VkaXRvcjp0LHZpZXc6YSx0cjpyLGRpc3BhdGNoOm59KT0+e2U9e3Njcm9sbEludG9WaWV3OiEwLC4uLmV9O2xldCBvPWkoKCk9PnsobmcoKXx8JGF0KCkpJiZhLmRvbS5mb2N1cygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3QuaXNEZXN0cm95ZWR8fChhLmZvY3VzKCksRmF0KCkmJiFuZygpJiYhJGF0KCkmJmEuZG9tLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSkpfSl9LCJkZWxheWVkRm9jdXMiKTtpZihhLmhhc0ZvY3VzKCkmJnM9PT1udWxsfHxzPT09ITEpcmV0dXJuITA7aWYobiYmcz09PW51bGwmJiFDbGUodC5zdGF0ZS5zZWxlY3Rpb24pKXJldHVybiBvKCksITA7bGV0IGw9VGxlKHIuZG9jLHMpfHx0LnN0YXRlLnNlbGVjdGlvbixwPXQuc3RhdGUuc2VsZWN0aW9uLmVxKGwpO3JldHVybiBuJiYocHx8ci5zZXRTZWxlY3Rpb24obCkscCYmci5zdG9yZWRNYXJrcyYmci5zZXRTdG9yZWRNYXJrcyhyLnN0b3JlZE1hcmtzKSxvKCkpLCEwfSwiZm9jdXMiKSxYWWE9aSgocyxlKT0+dD0+cy5ldmVyeSgoYSxyKT0+ZShhLHsuLi50LGluZGV4OnJ9KSksImZvckVhY2giKSxRWWE9aSgocyxlKT0+KHt0cjp0LGNvbW1hbmRzOmF9KT0+YS5pbnNlcnRDb250ZW50QXQoe2Zyb206dC5zZWxlY3Rpb24uZnJvbSx0bzp0LnNlbGVjdGlvbi50b30scyxlKSwiaW5zZXJ0Q29udGVudCIpLHloYT1pKHM9PntsZXQgZT1zLmNoaWxkTm9kZXM7Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LT0xKXtsZXQgYT1lW3RdO2Eubm9kZVR5cGU9PT0zJiZhLm5vZGVWYWx1ZSYmL14oXG5cc1xzfFxuKSQvLnRlc3QoYS5ub2RlVmFsdWUpP3MucmVtb3ZlQ2hpbGQoYSk6YS5ub2RlVHlwZT09PTEmJnloYShhKX1yZXR1cm4gc30sInJlbW92ZVdoaXRlc3BhY2VzIik7aShsZywiZWxlbWVudEZyb21TdHJpbmciKTtpKGNnLCJjcmVhdGVOb2RlRnJvbUNvbnRlbnQiKTtpKEJhdCwic2VsZWN0aW9uVG9JbnNlcnRpb25FbmQiKTtKWWE9aShzPT4hKCJ0eXBlImluIHMpLCJpc0ZyYWdtZW50IiksZVphPWkoKHMsZSx0KT0+KHt0cjphLGRpc3BhdGNoOnIsZWRpdG9yOm59KT0+e3ZhciBvO2lmKHIpe3Q9e3BhcnNlT3B0aW9uczpuLm9wdGlvbnMucGFyc2VPcHRpb25zLHVwZGF0ZVNlbGVjdGlvbjohMCxhcHBseUlucHV0UnVsZXM6ITEsYXBwbHlQYXN0ZVJ1bGVzOiExLC4uLnR9O2xldCBsLHA9aShmPT57bi5lbWl0KCJjb250ZW50RXJyb3IiLHtlZGl0b3I6bixlcnJvcjpmLGRpc2FibGVDb2xsYWJvcmF0aW9uOmkoKCk9PntuLnN0b3JhZ2UuY29sbGFib3JhdGlvbiYmKG4uc3RvcmFnZS5jb2xsYWJvcmF0aW9uLmlzRGlzYWJsZWQ9ITApfSwiZGlzYWJsZUNvbGxhYm9yYXRpb24iKX0pfSwiZW1pdENvbnRlbnRFcnJvciIpLGQ9e3ByZXNlcnZlV2hpdGVzcGFjZToiZnVsbCIsLi4udC5wYXJzZU9wdGlvbnN9O2lmKCF0LmVycm9yT25JbnZhbGlkQ29udGVudCYmIW4ub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2smJm4ub3B0aW9ucy5lbWl0Q29udGVudEVycm9yKXRyeXtjZyhlLG4uc2NoZW1hLHtwYXJzZU9wdGlvbnM6ZCxlcnJvck9uSW52YWxpZENvbnRlbnQ6ITB9KX1jYXRjaChmKXtwKGYpfXRyeXtsPWNnKGUsbi5zY2hlbWEse3BhcnNlT3B0aW9uczpkLGVycm9yT25JbnZhbGlkQ29udGVudDoobz10LmVycm9yT25JbnZhbGlkQ29udGVudCkhPT1udWxsJiZvIT09dm9pZCAwP286bi5vcHRpb25zLmVuYWJsZUNvbnRlbnRDaGVja30pfWNhdGNoKGYpe3JldHVybiBwKGYpLCExfWxldHtmcm9tOnUsdG86Y309dHlwZW9mIHM9PSJudW1iZXIiP3tmcm9tOnMsdG86c306e2Zyb206cy5mcm9tLHRvOnMudG99LGI9ITAsdj0hMDtpZigoSllhKGwpP2w6W2xdKS5mb3JFYWNoKGY9PntmLmNoZWNrKCksYj1iP2YuaXNUZXh0JiZmLm1hcmtzLmxlbmd0aD09PTA6ITEsdj12P2YuaXNCbG9jazohMX0pLHU9PT1jJiZ2KXtsZXR7cGFyZW50OmZ9PWEuZG9jLnJlc29sdmUodSk7Zi5pc1RleHRibG9jayYmIWYudHlwZS5zcGVjLmNvZGUmJiFmLmNoaWxkQ291bnQmJih1LT0xLGMrPTEpfWxldCBtO2lmKGIpe2lmKEFycmF5LmlzQXJyYXkoZSkpbT1lLm1hcChmPT5mLnRleHR8fCIiKS5qb2luKCIiKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBydCl7bGV0IGY9IiI7ZS5mb3JFYWNoKHk9Pnt5LnRleHQmJihmKz15LnRleHQpfSksbT1mfWVsc2UgdHlwZW9mIGU9PSJvYmplY3QiJiZlJiZlLnRleHQ/bT1lLnRleHQ6bT1lO2EuaW5zZXJ0VGV4dChtLHUsYyl9ZWxzZSBtPWwsYS5yZXBsYWNlV2l0aCh1LGMsbSk7dC51cGRhdGVTZWxlY3Rpb24mJkJhdChhLGEuc3RlcHMubGVuZ3RoLTEsLTEpLHQuYXBwbHlJbnB1dFJ1bGVzJiZhLnNldE1ldGEoImFwcGx5SW5wdXRSdWxlcyIse2Zyb206dSx0ZXh0Om19KSx0LmFwcGx5UGFzdGVSdWxlcyYmYS5zZXRNZXRhKCJhcHBseVBhc3RlUnVsZXMiLHtmcm9tOnUsdGV4dDptfSl9cmV0dXJuITB9LCJpbnNlcnRDb250ZW50QXQiKSx0WmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+eGF0KHMsZSksImpvaW5VcCIpLGFaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT55YXQocyxlKSwiam9pbkRvd24iKSxzWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+bmxlKHMsZSksImpvaW5CYWNrd2FyZCIpLGlaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5jbGUocyxlKSwiam9pbkZvcndhcmQiKSxyWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmUsdHI6dH0pPT57dHJ5e2xldCBhPVk4KHMuZG9jLHMuc2VsZWN0aW9uLiRmcm9tLnBvcywtMSk7cmV0dXJuIGE9PW51bGw/ITE6KHQuam9pbihhLDIpLGUmJmUodCksITApfWNhdGNoe3JldHVybiExfX0sImpvaW5JdGVtQmFja3dhcmQiKSxvWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmUsdHI6dH0pPT57dHJ5e2xldCBhPVk4KHMuZG9jLHMuc2VsZWN0aW9uLiRmcm9tLnBvcywxKTtyZXR1cm4gYT09bnVsbD8hMToodC5qb2luKGEsMiksZSYmZSh0KSwhMCl9Y2F0Y2h7cmV0dXJuITF9fSwiam9pbkl0ZW1Gb3J3YXJkIiksblphPWkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9PmJhdChzLGUpLCJqb2luVGV4dGJsb2NrQmFja3dhcmQiKSxsWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+dmF0KHMsZSksImpvaW5UZXh0YmxvY2tGb3J3YXJkIik7aSgkbGUsImlzTWFjT1MiKTtpKGNaYSwibm9ybWFsaXplS2V5TmFtZSIpO2RaYT1pKHM9Pih7ZWRpdG9yOmUsdmlldzp0LHRyOmEsZGlzcGF0Y2g6cn0pPT57bGV0IG49Y1phKHMpLnNwbGl0KC8tKD8hJCkvKSxvPW4uZmluZChkPT4hWyJBbHQiLCJDdHJsIiwiTWV0YSIsIlNoaWZ0Il0uaW5jbHVkZXMoZCkpLGw9bmV3IEtleWJvYXJkRXZlbnQoImtleWRvd24iLHtrZXk6bz09PSJTcGFjZSI/IiAiOm8sYWx0S2V5Om4uaW5jbHVkZXMoIkFsdCIpLGN0cmxLZXk6bi5pbmNsdWRlcygiQ3RybCIpLG1ldGFLZXk6bi5pbmNsdWRlcygiTWV0YSIpLHNoaWZ0S2V5Om4uaW5jbHVkZXMoIlNoaWZ0IiksYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSkscD1lLmNhcHR1cmVUcmFuc2FjdGlvbigoKT0+e3Quc29tZVByb3AoImhhbmRsZUtleURvd24iLGQ9PmQodCxsKSl9KTtyZXR1cm4gcD8uc3RlcHMuZm9yRWFjaChkPT57bGV0IHU9ZC5tYXAoYS5tYXBwaW5nKTt1JiZyJiZhLm1heWJlU3RlcCh1KX0pLCEwfSwia2V5Ym9hcmRTaG9ydGN1dCIpO2koZGcsImlzTm9kZUFjdGl2ZSIpO3VaYT1pKChzLGU9e30pPT4oe3N0YXRlOnQsZGlzcGF0Y2g6YX0pPT57bGV0IHI9THIocyx0LnNjaGVtYSk7cmV0dXJuIGRnKHQscixlKT93YXQodCxhKTohMX0sImxpZnQiKSxwWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+ZmxlKHMsZSksImxpZnRFbXB0eUJsb2NrIiksaFphPWkocz0+KHtzdGF0ZTplLGRpc3BhdGNoOnR9KT0+e2xldCBhPUxyKHMsZS5zY2hlbWEpO3JldHVybiB6YXQoYSkoZSx0KX0sImxpZnRMaXN0SXRlbSIpLGZaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT51bGUocyxlKSwibmV3bGluZUluQ29kZSIpO2koSHYsImdldFNjaGVtYVR5cGVOYW1lQnlOYW1lIik7aShEbGUsImRlbGV0ZVByb3BzIik7bVphPWkoKHMsZSk9Pih7dHI6dCxzdGF0ZTphLGRpc3BhdGNoOnJ9KT0+e2xldCBuPW51bGwsbz1udWxsLGw9SHYodHlwZW9mIHM9PSJzdHJpbmciP3M6cy5uYW1lLGEuc2NoZW1hKTtyZXR1cm4gbD8obD09PSJub2RlIiYmKG49THIocyxhLnNjaGVtYSkpLGw9PT0ibWFyayImJihvPVJkKHMsYS5zY2hlbWEpKSxyJiZ0LnNlbGVjdGlvbi5yYW5nZXMuZm9yRWFjaChwPT57YS5kb2Mubm9kZXNCZXR3ZWVuKHAuJGZyb20ucG9zLHAuJHRvLnBvcywoZCx1KT0+e24mJm49PT1kLnR5cGUmJnQuc2V0Tm9kZU1hcmt1cCh1LHZvaWQgMCxEbGUoZC5hdHRycyxlKSksbyYmZC5tYXJrcy5sZW5ndGgmJmQubWFya3MuZm9yRWFjaChjPT57bz09PWMudHlwZSYmdC5hZGRNYXJrKHUsdStkLm5vZGVTaXplLG8uY3JlYXRlKERsZShjLmF0dHJzLGUpKSl9KX0pfSksITApOiExfSwicmVzZXRBdHRyaWJ1dGVzIiksZ1phPWkoKCk9Pih7dHI6cyxkaXNwYXRjaDplfSk9PihlJiZzLnNjcm9sbEludG9WaWV3KCksITApLCJzY3JvbGxJbnRvVmlldyIpLGJaYT1pKCgpPT4oe3RyOnMsZGlzcGF0Y2g6ZX0pPT57aWYoZSl7bGV0IHQ9bmV3IG5uKHMuZG9jKTtzLnNldFNlbGVjdGlvbih0KX1yZXR1cm4hMH0sInNlbGVjdEFsbCIpLHZaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5sbGUocyxlKSwic2VsZWN0Tm9kZUJhY2t3YXJkIikseFphPWkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9PmRsZShzLGUpLCJzZWxlY3ROb2RlRm9yd2FyZCIpLHlaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5rYXQocyxlKSwic2VsZWN0UGFyZW50Tm9kZSIpLHdaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5nbGUocyxlKSwic2VsZWN0VGV4dGJsb2NrRW5kIiksa1phPWkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9Pm1sZShzLGUpLCJzZWxlY3RUZXh0YmxvY2tTdGFydCIpO2koY1gsImNyZWF0ZURvY3VtZW50Iik7U1phPWkoKHMsZT0hMSx0PXt9LGE9e30pPT4oe2VkaXRvcjpyLHRyOm4sZGlzcGF0Y2g6byxjb21tYW5kczpsfSk9Pnt2YXIgcCxkO2xldHtkb2M6dX09bjtpZih0LnByZXNlcnZlV2hpdGVzcGFjZSE9PSJmdWxsIil7bGV0IGM9Y1gocyxyLnNjaGVtYSx0LHtlcnJvck9uSW52YWxpZENvbnRlbnQ6KHA9YS5lcnJvck9uSW52YWxpZENvbnRlbnQpIT09bnVsbCYmcCE9PXZvaWQgMD9wOnIub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2t9KTtyZXR1cm4gbyYmbi5yZXBsYWNlV2l0aCgwLHUuY29udGVudC5zaXplLGMpLnNldE1ldGEoInByZXZlbnRVcGRhdGUiLCFlKSwhMH1yZXR1cm4gbyYmbi5zZXRNZXRhKCJwcmV2ZW50VXBkYXRlIiwhZSksbC5pbnNlcnRDb250ZW50QXQoe2Zyb206MCx0bzp1LmNvbnRlbnQuc2l6ZX0scyx7cGFyc2VPcHRpb25zOnQsZXJyb3JPbkludmFsaWRDb250ZW50OihkPWEuZXJyb3JPbkludmFsaWRDb250ZW50KSE9PW51bGwmJmQhPT12b2lkIDA/ZDpyLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSl9LCJzZXRDb250ZW50Iik7aShMbGUsImdldE1hcmtBdHRyaWJ1dGVzIik7aShSbGUsImNvbWJpbmVUcmFuc2FjdGlvblN0ZXBzIik7aShIYXQsImRlZmF1bHRCbG9ja0F0Iik7aShMaGEsImZpbmRDaGlsZHJlbiIpO2koT2xlLCJmaW5kQ2hpbGRyZW5JblJhbmdlIik7aShxYXQsImZpbmRQYXJlbnROb2RlQ2xvc2VzdFRvUG9zIik7aShxdiwiZmluZFBhcmVudE5vZGUiKTtpKGRYLCJnZXRTY2hlbWEiKTtpKEVoYSwiZ2VuZXJhdGVIVE1MIik7aShQaGEsImdlbmVyYXRlSlNPTiIpO2koRWxlLCJnZXRUZXh0Iik7aShJaGEsImdlbmVyYXRlVGV4dCIpO2koamF0LCJnZXROb2RlQXR0cmlidXRlcyIpO2koZlgsImdldEF0dHJpYnV0ZXMiKTtpKFZhdCwicmVtb3ZlRHVwbGljYXRlcyIpO2koX1phLCJzaW1wbGlmeUNoYW5nZWRSYW5nZXMiKTtpKEZsZSwiZ2V0Q2hhbmdlZFJhbmdlcyIpO2koVWF0LCJnZXREZWJ1Z0pTT04iKTtpKFZ2LCJnZXRNYXJrc0JldHdlZW4iKTtBaGE9aSgocyxlLHQsYT0yMCk9PntsZXQgcj1zLmRvYy5yZXNvbHZlKHQpLG49YSxvPW51bGw7Zm9yKDtuPjAmJm89PT1udWxsOyl7bGV0IGw9ci5ub2RlKG4pO2w/LnR5cGUubmFtZT09PWU/bz1sOm4tPTF9cmV0dXJuW28sbl19LCJnZXROb2RlQXRQb3NpdGlvbiIpO2koanYsImdldFNwbGl0dGVkQXR0cmlidXRlcyIpO2kodVgsImlzTWFya0FjdGl2ZSIpO2koV2F0LCJpc0FjdGl2ZSIpO05oYT1pKChzLGUpPT57bGV0eyRmcm9tOnQsJHRvOmEsJGFuY2hvcjpyfT1zLnNlbGVjdGlvbjtpZihlKXtsZXQgbj1xdihsPT5sLnR5cGUubmFtZT09PWUpKHMuc2VsZWN0aW9uKTtpZighbilyZXR1cm4hMTtsZXQgbz1zLmRvYy5yZXNvbHZlKG4ucG9zKzEpO3JldHVybiByLnBvcysxPT09by5lbmQoKX1yZXR1cm4hKGEucGFyZW50T2Zmc2V0PGEucGFyZW50Lm5vZGVTaXplLTJ8fHQucG9zIT09YS5wb3MpfSwiaXNBdEVuZE9mTm9kZSIpLFJoYT1pKHM9PntsZXR7JGZyb206ZSwkdG86dH09cy5zZWxlY3Rpb247cmV0dXJuIShlLnBhcmVudE9mZnNldD4wfHxlLnBvcyE9PXQucG9zKX0sImlzQXRTdGFydE9mTm9kZSIpO2koUGxlLCJpc0xpc3QiKTtpKHBYLCJpc05vZGVFbXB0eSIpO2koQmxlLCJpc05vZGVTZWxlY3Rpb24iKTtpKE9oYSwicG9zVG9ET01SZWN0Iik7aSh3aGEsInJld3JpdGVVbmtub3duQ29udGVudElubmVyIik7aShGaGEsInJld3JpdGVVbmtub3duQ29udGVudCIpO2koTVphLCJjYW5TZXRNYXJrIik7elphPWkoKHMsZT17fSk9Pih7dHI6dCxzdGF0ZTphLGRpc3BhdGNoOnJ9KT0+e2xldHtzZWxlY3Rpb246bn09dCx7ZW1wdHk6byxyYW5nZXM6bH09bixwPVJkKHMsYS5zY2hlbWEpO2lmKHIpaWYobyl7bGV0IGQ9TGxlKGEscCk7dC5hZGRTdG9yZWRNYXJrKHAuY3JlYXRlKHsuLi5kLC4uLmV9KSl9ZWxzZSBsLmZvckVhY2goZD0+e2xldCB1PWQuJGZyb20ucG9zLGM9ZC4kdG8ucG9zO2EuZG9jLm5vZGVzQmV0d2Vlbih1LGMsKGIsdik9PntsZXQgeD1NYXRoLm1heCh2LHUpLG09TWF0aC5taW4oditiLm5vZGVTaXplLGMpO2IubWFya3MuZmluZCh5PT55LnR5cGU9PT1wKT9iLm1hcmtzLmZvckVhY2goeT0+e3A9PT15LnR5cGUmJnQuYWRkTWFyayh4LG0scC5jcmVhdGUoey4uLnkuYXR0cnMsLi4uZX0pKX0pOnQuYWRkTWFyayh4LG0scC5jcmVhdGUoZSkpfSl9KTtyZXR1cm4gTVphKGEsdCxwKX0sInNldE1hcmsiKSxDWmE9aSgocyxlKT0+KHt0cjp0fSk9Pih0LnNldE1ldGEocyxlKSwhMCksInNldE1ldGEiKSxUWmE9aSgocyxlPXt9KT0+KHtzdGF0ZTp0LGRpc3BhdGNoOmEsY2hhaW46cn0pPT57bGV0IG49THIocyx0LnNjaGVtYSksbztyZXR1cm4gdC5zZWxlY3Rpb24uJGFuY2hvci5zYW1lUGFyZW50KHQuc2VsZWN0aW9uLiRoZWFkKSYmKG89dC5zZWxlY3Rpb24uJGFuY2hvci5wYXJlbnQuYXR0cnMpLG4uaXNUZXh0YmxvY2s/cigpLmNvbW1hbmQoKHtjb21tYW5kczpsfSk9PmJsZShuLHsuLi5vLC4uLmV9KSh0KT8hMDpsLmNsZWFyTm9kZXMoKSkuY29tbWFuZCgoe3N0YXRlOmx9KT0+YmxlKG4sey4uLm8sLi4uZX0pKGwsYSkpLnJ1bigpOihjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06IEN1cnJlbnRseSAic2V0Tm9kZSgpIiBvbmx5IHN1cHBvcnRzIHRleHQgYmxvY2sgbm9kZXMuJyksITEpfSwic2V0Tm9kZSIpLCRaYT1pKHM9Pih7dHI6ZSxkaXNwYXRjaDp0fSk9PntpZih0KXtsZXR7ZG9jOmF9PWUscj1hMihzLDAsYS5jb250ZW50LnNpemUpLG49RnQuY3JlYXRlKGEscik7ZS5zZXRTZWxlY3Rpb24obil9cmV0dXJuITB9LCJzZXROb2RlU2VsZWN0aW9uIiksRFphPWkocz0+KHt0cjplLGRpc3BhdGNoOnR9KT0+e2lmKHQpe2xldHtkb2M6YX09ZSx7ZnJvbTpyLHRvOm59PXR5cGVvZiBzPT0ibnVtYmVyIj97ZnJvbTpzLHRvOnN9OnMsbz1KdC5hdFN0YXJ0KGEpLmZyb20sbD1KdC5hdEVuZChhKS50byxwPWEyKHIsbyxsKSxkPWEyKG4sbyxsKSx1PUp0LmNyZWF0ZShhLHAsZCk7ZS5zZXRTZWxlY3Rpb24odSl9cmV0dXJuITB9LCJzZXRUZXh0U2VsZWN0aW9uIiksTFphPWkocz0+KHtzdGF0ZTplLGRpc3BhdGNoOnR9KT0+e2xldCBhPUxyKHMsZS5zY2hlbWEpO3JldHVybiBDYXQoYSkoZSx0KX0sInNpbmtMaXN0SXRlbSIpO2koa2hhLCJlbnN1cmVNYXJrcyIpO0VaYT1pKCh7a2VlcE1hcmtzOnM9ITB9PXt9KT0+KHt0cjplLHN0YXRlOnQsZGlzcGF0Y2g6YSxlZGl0b3I6cn0pPT57bGV0e3NlbGVjdGlvbjpuLGRvYzpvfT1lLHskZnJvbTpsLCR0bzpwfT1uLGQ9ci5leHRlbnNpb25NYW5hZ2VyLmF0dHJpYnV0ZXMsdT1qdihkLGwubm9kZSgpLnR5cGUubmFtZSxsLm5vZGUoKS5hdHRycyk7aWYobiBpbnN0YW5jZW9mIEZ0JiZuLm5vZGUuaXNCbG9jaylyZXR1cm4hbC5wYXJlbnRPZmZzZXR8fCF6bChvLGwucG9zKT8hMTooYSYmKHMmJmtoYSh0LHIuZXh0ZW5zaW9uTWFuYWdlci5zcGxpdHRhYmxlTWFya3MpLGUuc3BsaXQobC5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTtpZighbC5wYXJlbnQuaXNCbG9jaylyZXR1cm4hMTtsZXQgYz1wLnBhcmVudE9mZnNldD09PXAucGFyZW50LmNvbnRlbnQuc2l6ZSxiPWwuZGVwdGg9PT0wP3ZvaWQgMDpIYXQobC5ub2RlKC0xKS5jb250ZW50TWF0Y2hBdChsLmluZGV4QWZ0ZXIoLTEpKSksdj1jJiZiP1t7dHlwZTpiLGF0dHJzOnV9XTp2b2lkIDAseD16bChlLmRvYyxlLm1hcHBpbmcubWFwKGwucG9zKSwxLHYpO2lmKCF2JiYheCYmemwoZS5kb2MsZS5tYXBwaW5nLm1hcChsLnBvcyksMSxiP1t7dHlwZTpifV06dm9pZCAwKSYmKHg9ITAsdj1iP1t7dHlwZTpiLGF0dHJzOnV9XTp2b2lkIDApLGEpe2lmKHgmJihuIGluc3RhbmNlb2YgSnQmJmUuZGVsZXRlU2VsZWN0aW9uKCksZS5zcGxpdChlLm1hcHBpbmcubWFwKGwucG9zKSwxLHYpLGImJiFjJiYhbC5wYXJlbnRPZmZzZXQmJmwucGFyZW50LnR5cGUhPT1iKSl7bGV0IG09ZS5tYXBwaW5nLm1hcChsLmJlZm9yZSgpKSxmPWUuZG9jLnJlc29sdmUobSk7bC5ub2RlKC0xKS5jYW5SZXBsYWNlV2l0aChmLmluZGV4KCksZi5pbmRleCgpKzEsYikmJmUuc2V0Tm9kZU1hcmt1cChlLm1hcHBpbmcubWFwKGwuYmVmb3JlKCkpLGIpfXMmJmtoYSh0LHIuZXh0ZW5zaW9uTWFuYWdlci5zcGxpdHRhYmxlTWFya3MpLGUuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4geH0sInNwbGl0QmxvY2siKSxQWmE9aSgocyxlPXt9KT0+KHt0cjp0LHN0YXRlOmEsZGlzcGF0Y2g6cixlZGl0b3I6bn0pPT57dmFyIG87bGV0IGw9THIocyxhLnNjaGVtYSkseyRmcm9tOnAsJHRvOmR9PWEuc2VsZWN0aW9uLHU9YS5zZWxlY3Rpb24ubm9kZTtpZih1JiZ1LmlzQmxvY2t8fHAuZGVwdGg8Mnx8IXAuc2FtZVBhcmVudChkKSlyZXR1cm4hMTtsZXQgYz1wLm5vZGUoLTEpO2lmKGMudHlwZSE9PWwpcmV0dXJuITE7bGV0IGI9bi5leHRlbnNpb25NYW5hZ2VyLmF0dHJpYnV0ZXM7aWYocC5wYXJlbnQuY29udGVudC5zaXplPT09MCYmcC5ub2RlKC0xKS5jaGlsZENvdW50PT09cC5pbmRleEFmdGVyKC0xKSl7aWYocC5kZXB0aD09PTJ8fHAubm9kZSgtMykudHlwZSE9PWx8fHAuaW5kZXgoLTIpIT09cC5ub2RlKC0yKS5jaGlsZENvdW50LTEpcmV0dXJuITE7aWYocil7bGV0IHk9cnQuZW1wdHksTT1wLmluZGV4KC0xKT8xOnAuaW5kZXgoLTIpPzI6Mztmb3IobGV0ICQ9cC5kZXB0aC1NOyQ+PXAuZGVwdGgtMzskLT0xKXk9cnQuZnJvbShwLm5vZGUoJCkuY29weSh5KSk7bGV0IHo9cC5pbmRleEFmdGVyKC0xKTxwLm5vZGUoLTIpLmNoaWxkQ291bnQ/MTpwLmluZGV4QWZ0ZXIoLTIpPHAubm9kZSgtMykuY2hpbGRDb3VudD8yOjMsTj17Li4uanYoYixwLm5vZGUoKS50eXBlLm5hbWUscC5ub2RlKCkuYXR0cnMpLC4uLmV9LEM9KChvPWwuY29udGVudE1hdGNoLmRlZmF1bHRUeXBlKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uY3JlYXRlQW5kRmlsbChOKSl8fHZvaWQgMDt5PXkuYXBwZW5kKHJ0LmZyb20obC5jcmVhdGVBbmRGaWxsKG51bGwsQyl8fHZvaWQgMCkpO2xldCBfPXAuYmVmb3JlKHAuZGVwdGgtKE0tMSkpO3QucmVwbGFjZShfLHAuYWZ0ZXIoLXopLG5ldyBfdCh5LDQtTSwwKSk7bGV0IE89LTE7dC5kb2Mubm9kZXNCZXR3ZWVuKF8sdC5kb2MuY29udGVudC5zaXplLCgkLEUpPT57aWYoTz4tMSlyZXR1cm4hMTskLmlzVGV4dGJsb2NrJiYkLmNvbnRlbnQuc2l6ZT09PTAmJihPPUUrMSl9KSxPPi0xJiZ0LnNldFNlbGVjdGlvbihKdC5uZWFyKHQuZG9jLnJlc29sdmUoTykpKSx0LnNjcm9sbEludG9WaWV3KCl9cmV0dXJuITB9bGV0IHY9ZC5wb3M9PT1wLmVuZCgpP2MuY29udGVudE1hdGNoQXQoMCkuZGVmYXVsdFR5cGU6bnVsbCx4PXsuLi5qdihiLGMudHlwZS5uYW1lLGMuYXR0cnMpLC4uLmV9LG09ey4uLmp2KGIscC5ub2RlKCkudHlwZS5uYW1lLHAubm9kZSgpLmF0dHJzKSwuLi5lfTt0LmRlbGV0ZShwLnBvcyxkLnBvcyk7bGV0IGY9dj9be3R5cGU6bCxhdHRyczp4fSx7dHlwZTp2LGF0dHJzOm19XTpbe3R5cGU6bCxhdHRyczp4fV07aWYoIXpsKHQuZG9jLHAucG9zLDIpKXJldHVybiExO2lmKHIpe2xldHtzZWxlY3Rpb246eSxzdG9yZWRNYXJrczpNfT1hLHtzcGxpdHRhYmxlTWFya3M6en09bi5leHRlbnNpb25NYW5hZ2VyLE49TXx8eS4kdG8ucGFyZW50T2Zmc2V0JiZ5LiRmcm9tLm1hcmtzKCk7aWYodC5zcGxpdChwLnBvcywyLGYpLnNjcm9sbEludG9WaWV3KCksIU58fCFyKXJldHVybiEwO2xldCBDPU4uZmlsdGVyKF89PnouaW5jbHVkZXMoXy50eXBlLm5hbWUpKTt0LmVuc3VyZU1hcmtzKEMpfXJldHVybiEwfSwic3BsaXRMaXN0SXRlbSIpLERhdD1pKChzLGUpPT57bGV0IHQ9cXYobz0+by50eXBlPT09ZSkocy5zZWxlY3Rpb24pO2lmKCF0KXJldHVybiEwO2xldCBhPXMuZG9jLnJlc29sdmUoTWF0aC5tYXgoMCx0LnBvcy0xKSkuYmVmb3JlKHQuZGVwdGgpO2lmKGE9PT12b2lkIDApcmV0dXJuITA7bGV0IHI9cy5kb2Mubm9kZUF0KGEpO3JldHVybiB0Lm5vZGUudHlwZT09PXI/LnR5cGUmJlpsKHMuZG9jLHQucG9zKSYmcy5qb2luKHQucG9zKSwhMH0sImpvaW5MaXN0QmFja3dhcmRzIiksTGF0PWkoKHMsZSk9PntsZXQgdD1xdihvPT5vLnR5cGU9PT1lKShzLnNlbGVjdGlvbik7aWYoIXQpcmV0dXJuITA7bGV0IGE9cy5kb2MucmVzb2x2ZSh0LnN0YXJ0KS5hZnRlcih0LmRlcHRoKTtpZihhPT09dm9pZCAwKXJldHVybiEwO2xldCByPXMuZG9jLm5vZGVBdChhKTtyZXR1cm4gdC5ub2RlLnR5cGU9PT1yPy50eXBlJiZabChzLmRvYyxhKSYmcy5qb2luKGEpLCEwfSwiam9pbkxpc3RGb3J3YXJkcyIpLElaYT1pKChzLGUsdCxhPXt9KT0+KHtlZGl0b3I6cix0cjpuLHN0YXRlOm8sZGlzcGF0Y2g6bCxjaGFpbjpwLGNvbW1hbmRzOmQsY2FuOnV9KT0+e2xldHtleHRlbnNpb25zOmMsc3BsaXR0YWJsZU1hcmtzOmJ9PXIuZXh0ZW5zaW9uTWFuYWdlcix2PUxyKHMsby5zY2hlbWEpLHg9THIoZSxvLnNjaGVtYSkse3NlbGVjdGlvbjptLHN0b3JlZE1hcmtzOmZ9PW8seyRmcm9tOnksJHRvOk19PW0sej15LmJsb2NrUmFuZ2UoTSksTj1mfHxtLiR0by5wYXJlbnRPZmZzZXQmJm0uJGZyb20ubWFya3MoKTtpZigheilyZXR1cm4hMTtsZXQgQz1xdihfPT5QbGUoXy50eXBlLm5hbWUsYykpKG0pO2lmKHouZGVwdGg+PTEmJkMmJnouZGVwdGgtQy5kZXB0aDw9MSl7aWYoQy5ub2RlLnR5cGU9PT12KXJldHVybiBkLmxpZnRMaXN0SXRlbSh4KTtpZihQbGUoQy5ub2RlLnR5cGUubmFtZSxjKSYmdi52YWxpZENvbnRlbnQoQy5ub2RlLmNvbnRlbnQpJiZsKXJldHVybiBwKCkuY29tbWFuZCgoKT0+KG4uc2V0Tm9kZU1hcmt1cChDLnBvcyx2KSwhMCkpLmNvbW1hbmQoKCk9PkRhdChuLHYpKS5jb21tYW5kKCgpPT5MYXQobix2KSkucnVuKCl9cmV0dXJuIXR8fCFOfHwhbD9wKCkuY29tbWFuZCgoKT0+dSgpLndyYXBJbkxpc3QodixhKT8hMDpkLmNsZWFyTm9kZXMoKSkud3JhcEluTGlzdCh2LGEpLmNvbW1hbmQoKCk9PkRhdChuLHYpKS5jb21tYW5kKCgpPT5MYXQobix2KSkucnVuKCk6cCgpLmNvbW1hbmQoKCk9PntsZXQgXz11KCkud3JhcEluTGlzdCh2LGEpLE89Ti5maWx0ZXIoJD0+Yi5pbmNsdWRlcygkLnR5cGUubmFtZSkpO3JldHVybiBuLmVuc3VyZU1hcmtzKE8pLF8/ITA6ZC5jbGVhck5vZGVzKCl9KS53cmFwSW5MaXN0KHYsYSkuY29tbWFuZCgoKT0+RGF0KG4sdikpLmNvbW1hbmQoKCk9PkxhdChuLHYpKS5ydW4oKX0sInRvZ2dsZUxpc3QiKSxBWmE9aSgocyxlPXt9LHQ9e30pPT4oe3N0YXRlOmEsY29tbWFuZHM6cn0pPT57bGV0e2V4dGVuZEVtcHR5TWFya1JhbmdlOm49ITF9PXQsbz1SZChzLGEuc2NoZW1hKTtyZXR1cm4gdVgoYSxvLGUpP3IudW5zZXRNYXJrKG8se2V4dGVuZEVtcHR5TWFya1JhbmdlOm59KTpyLnNldE1hcmsobyxlKX0sInRvZ2dsZU1hcmsiKSxOWmE9aSgocyxlLHQ9e30pPT4oe3N0YXRlOmEsY29tbWFuZHM6cn0pPT57bGV0IG49THIocyxhLnNjaGVtYSksbz1McihlLGEuc2NoZW1hKSxsPWRnKGEsbix0KSxwO3JldHVybiBhLnNlbGVjdGlvbi4kYW5jaG9yLnNhbWVQYXJlbnQoYS5zZWxlY3Rpb24uJGhlYWQpJiYocD1hLnNlbGVjdGlvbi4kYW5jaG9yLnBhcmVudC5hdHRycyksbD9yLnNldE5vZGUobyxwKTpyLnNldE5vZGUobix7Li4ucCwuLi50fSl9LCJ0b2dnbGVOb2RlIiksUlphPWkoKHMsZT17fSk9Pih7c3RhdGU6dCxjb21tYW5kczphfSk9PntsZXQgcj1McihzLHQuc2NoZW1hKTtyZXR1cm4gZGcodCxyLGUpP2EubGlmdChyKTphLndyYXBJbihyLGUpfSwidG9nZ2xlV3JhcCIpLE9aYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT57bGV0IHQ9cy5wbHVnaW5zO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSs9MSl7bGV0IHI9dFthXSxuO2lmKHIuc3BlYy5pc0lucHV0UnVsZXMmJihuPXIuZ2V0U3RhdGUocykpKXtpZihlKXtsZXQgbz1zLnRyLGw9bi50cmFuc2Zvcm07Zm9yKGxldCBwPWwuc3RlcHMubGVuZ3RoLTE7cD49MDtwLT0xKW8uc3RlcChsLnN0ZXBzW3BdLmludmVydChsLmRvY3NbcF0pKTtpZihuLnRleHQpe2xldCBwPW8uZG9jLnJlc29sdmUobi5mcm9tKS5tYXJrcygpO28ucmVwbGFjZVdpdGgobi5mcm9tLG4udG8scy5zY2hlbWEudGV4dChuLnRleHQscCkpfWVsc2Ugby5kZWxldGUobi5mcm9tLG4udG8pfXJldHVybiEwfX1yZXR1cm4hMX0sInVuZG9JbnB1dFJ1bGUiKSxGWmE9aSgoKT0+KHt0cjpzLGRpc3BhdGNoOmV9KT0+e2xldHtzZWxlY3Rpb246dH09cyx7ZW1wdHk6YSxyYW5nZXM6cn09dDtyZXR1cm4gYXx8ZSYmci5mb3JFYWNoKG49PntzLnJlbW92ZU1hcmsobi4kZnJvbS5wb3Msbi4kdG8ucG9zKX0pLCEwfSwidW5zZXRBbGxNYXJrcyIpLEJaYT1pKChzLGU9e30pPT4oe3RyOnQsc3RhdGU6YSxkaXNwYXRjaDpyfSk9Pnt2YXIgbjtsZXR7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6bz0hMX09ZSx7c2VsZWN0aW9uOmx9PXQscD1SZChzLGEuc2NoZW1hKSx7JGZyb206ZCxlbXB0eTp1LHJhbmdlczpjfT1sO2lmKCFyKXJldHVybiEwO2lmKHUmJm8pe2xldHtmcm9tOmIsdG86dn09bCx4PShuPWQubWFya3MoKS5maW5kKGY9PmYudHlwZT09PXApKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uYXR0cnMsbT1sWChkLHAseCk7bSYmKGI9bS5mcm9tLHY9bS50byksdC5yZW1vdmVNYXJrKGIsdixwKX1lbHNlIGMuZm9yRWFjaChiPT57dC5yZW1vdmVNYXJrKGIuJGZyb20ucG9zLGIuJHRvLnBvcyxwKX0pO3JldHVybiB0LnJlbW92ZVN0b3JlZE1hcmsocCksITB9LCJ1bnNldE1hcmsiKSxIWmE9aSgocyxlPXt9KT0+KHt0cjp0LHN0YXRlOmEsZGlzcGF0Y2g6cn0pPT57bGV0IG49bnVsbCxvPW51bGwsbD1Idih0eXBlb2Ygcz09InN0cmluZyI/czpzLm5hbWUsYS5zY2hlbWEpO3JldHVybiBsPyhsPT09Im5vZGUiJiYobj1McihzLGEuc2NoZW1hKSksbD09PSJtYXJrIiYmKG89UmQocyxhLnNjaGVtYSkpLHImJnQuc2VsZWN0aW9uLnJhbmdlcy5mb3JFYWNoKHA9PntsZXQgZD1wLiRmcm9tLnBvcyx1PXAuJHRvLnBvcyxjLGIsdix4O3Quc2VsZWN0aW9uLmVtcHR5P2EuZG9jLm5vZGVzQmV0d2VlbihkLHUsKG0sZik9PntuJiZuPT09bS50eXBlJiYodj1NYXRoLm1heChmLGQpLHg9TWF0aC5taW4oZittLm5vZGVTaXplLHUpLGM9ZixiPW0pfSk6YS5kb2Mubm9kZXNCZXR3ZWVuKGQsdSwobSxmKT0+e2Y8ZCYmbiYmbj09PW0udHlwZSYmKHY9TWF0aC5tYXgoZixkKSx4PU1hdGgubWluKGYrbS5ub2RlU2l6ZSx1KSxjPWYsYj1tKSxmPj1kJiZmPD11JiYobiYmbj09PW0udHlwZSYmdC5zZXROb2RlTWFya3VwKGYsdm9pZCAwLHsuLi5tLmF0dHJzLC4uLmV9KSxvJiZtLm1hcmtzLmxlbmd0aCYmbS5tYXJrcy5mb3JFYWNoKHk9PntpZihvPT09eS50eXBlKXtsZXQgTT1NYXRoLm1heChmLGQpLHo9TWF0aC5taW4oZittLm5vZGVTaXplLHUpO3QuYWRkTWFyayhNLHosby5jcmVhdGUoey4uLnkuYXR0cnMsLi4uZX0pKX19KSl9KSxiJiYoYyE9PXZvaWQgMCYmdC5zZXROb2RlTWFya3VwKGMsdm9pZCAwLHsuLi5iLmF0dHJzLC4uLmV9KSxvJiZiLm1hcmtzLmxlbmd0aCYmYi5tYXJrcy5mb3JFYWNoKG09PntvPT09bS50eXBlJiZ0LmFkZE1hcmsodix4LG8uY3JlYXRlKHsuLi5tLmF0dHJzLC4uLmV9KSl9KSl9KSwhMCk6ITF9LCJ1cGRhdGVBdHRyaWJ1dGVzIikscVphPWkoKHMsZT17fSk9Pih7c3RhdGU6dCxkaXNwYXRjaDphfSk9PntsZXQgcj1McihzLHQuc2NoZW1hKTtyZXR1cm4gU2F0KHIsZSkodCxhKX0sIndyYXBJbiIpLGpaYT1pKChzLGU9e30pPT4oe3N0YXRlOnQsZGlzcGF0Y2g6YX0pPT57bGV0IHI9THIocyx0LnNjaGVtYSk7cmV0dXJuIE1hdChyLGUpKHQsYSl9LCJ3cmFwSW5MaXN0IiksVlphPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGJsdXI6TllhLGNsZWFyQ29udGVudDpSWWEsY2xlYXJOb2RlczpPWWEsY29tbWFuZDpGWWEsY3JlYXRlUGFyYWdyYXBoTmVhcjpCWWEsY3V0OkhZYSxkZWxldGVDdXJyZW50Tm9kZTpxWWEsZGVsZXRlTm9kZTpqWWEsZGVsZXRlUmFuZ2U6VllhLGRlbGV0ZVNlbGVjdGlvbjpVWWEsZW50ZXI6V1lhLGV4aXRDb2RlOkdZYSxleHRlbmRNYXJrUmFuZ2U6S1lhLGZpcnN0OllZYSxmb2N1czpaWWEsZm9yRWFjaDpYWWEsaW5zZXJ0Q29udGVudDpRWWEsaW5zZXJ0Q29udGVudEF0OmVaYSxqb2luQmFja3dhcmQ6c1phLGpvaW5Eb3duOmFaYSxqb2luRm9yd2FyZDppWmEsam9pbkl0ZW1CYWNrd2FyZDpyWmEsam9pbkl0ZW1Gb3J3YXJkOm9aYSxqb2luVGV4dGJsb2NrQmFja3dhcmQ6blphLGpvaW5UZXh0YmxvY2tGb3J3YXJkOmxaYSxqb2luVXA6dFphLGtleWJvYXJkU2hvcnRjdXQ6ZFphLGxpZnQ6dVphLGxpZnRFbXB0eUJsb2NrOnBaYSxsaWZ0TGlzdEl0ZW06aFphLG5ld2xpbmVJbkNvZGU6ZlphLHJlc2V0QXR0cmlidXRlczptWmEsc2Nyb2xsSW50b1ZpZXc6Z1phLHNlbGVjdEFsbDpiWmEsc2VsZWN0Tm9kZUJhY2t3YXJkOnZaYSxzZWxlY3ROb2RlRm9yd2FyZDp4WmEsc2VsZWN0UGFyZW50Tm9kZTp5WmEsc2VsZWN0VGV4dGJsb2NrRW5kOndaYSxzZWxlY3RUZXh0YmxvY2tTdGFydDprWmEsc2V0Q29udGVudDpTWmEsc2V0TWFyazp6WmEsc2V0TWV0YTpDWmEsc2V0Tm9kZTpUWmEsc2V0Tm9kZVNlbGVjdGlvbjokWmEsc2V0VGV4dFNlbGVjdGlvbjpEWmEsc2lua0xpc3RJdGVtOkxaYSxzcGxpdEJsb2NrOkVaYSxzcGxpdExpc3RJdGVtOlBaYSx0b2dnbGVMaXN0OklaYSx0b2dnbGVNYXJrOkFaYSx0b2dnbGVOb2RlOk5aYSx0b2dnbGVXcmFwOlJaYSx1bmRvSW5wdXRSdWxlOk9aYSx1bnNldEFsbE1hcmtzOkZaYSx1bnNldE1hcms6QlphLHVwZGF0ZUF0dHJpYnV0ZXM6SFphLHdyYXBJbjpxWmEsd3JhcEluTGlzdDpqWmF9KSxTaGE9d2kuY3JlYXRlKHtuYW1lOiJjb21tYW5kcyIsYWRkQ29tbWFuZHMoKXtyZXR1cm57Li4uVlphfX19KSxfaGE9d2kuY3JlYXRlKHtuYW1lOiJkcm9wIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJ0aXB0YXBEcm9wIikscHJvcHM6e2hhbmRsZURyb3A6aSgocyxlLHQsYSk9Pnt0aGlzLmVkaXRvci5lbWl0KCJkcm9wIix7ZWRpdG9yOnRoaXMuZWRpdG9yLGV2ZW50OmUsc2xpY2U6dCxtb3ZlZDphfSl9LCJoYW5kbGVEcm9wIil9fSldfX0pLE1oYT13aS5jcmVhdGUoe25hbWU6ImVkaXRhYmxlIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJlZGl0YWJsZSIpLHByb3BzOntlZGl0YWJsZTppKCgpPT50aGlzLmVkaXRvci5vcHRpb25zLmVkaXRhYmxlLCJlZGl0YWJsZSIpfX0pXX19KSx6aGE9bmV3ICRyKCJmb2N1c0V2ZW50cyIpLENoYT13aS5jcmVhdGUoe25hbWU6ImZvY3VzRXZlbnRzIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtsZXR7ZWRpdG9yOnN9PXRoaXM7cmV0dXJuW25ldyBZcyh7a2V5OnpoYSxwcm9wczp7aGFuZGxlRE9NRXZlbnRzOntmb2N1czppKChlLHQpPT57cy5pc0ZvY3VzZWQ9ITA7bGV0IGE9cy5zdGF0ZS50ci5zZXRNZXRhKCJmb2N1cyIse2V2ZW50OnR9KS5zZXRNZXRhKCJhZGRUb0hpc3RvcnkiLCExKTtyZXR1cm4gZS5kaXNwYXRjaChhKSwhMX0sImZvY3VzIiksYmx1cjppKChlLHQpPT57cy5pc0ZvY3VzZWQ9ITE7bGV0IGE9cy5zdGF0ZS50ci5zZXRNZXRhKCJibHVyIix7ZXZlbnQ6dH0pLnNldE1ldGEoImFkZFRvSGlzdG9yeSIsITEpO3JldHVybiBlLmRpc3BhdGNoKGEpLCExfSwiYmx1ciIpfX19KV19fSksVGhhPXdpLmNyZWF0ZSh7bmFtZToia2V5bWFwIixhZGRLZXlib2FyZFNob3J0Y3V0cygpe2xldCBzPWkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLmZpcnN0KCh7Y29tbWFuZHM6b30pPT5bKCk9Pm8udW5kb0lucHV0UnVsZSgpLCgpPT5vLmNvbW1hbmQoKHt0cjpsfSk9PntsZXR7c2VsZWN0aW9uOnAsZG9jOmR9PWwse2VtcHR5OnUsJGFuY2hvcjpjfT1wLHtwb3M6YixwYXJlbnQ6dn09Yyx4PWMucGFyZW50LmlzVGV4dGJsb2NrJiZiPjA/bC5kb2MucmVzb2x2ZShiLTEpOmMsbT14LnBhcmVudC50eXBlLnNwZWMuaXNvbGF0aW5nLGY9Yy5wb3MtYy5wYXJlbnRPZmZzZXQseT1tJiZ4LnBhcmVudC5jaGlsZENvdW50PT09MT9mPT09Yy5wb3M6UXQuYXRTdGFydChkKS5mcm9tPT09YjtyZXR1cm4hdXx8IXYudHlwZS5pc1RleHRibG9ja3x8di50ZXh0Q29udGVudC5sZW5ndGh8fCF5fHx5JiZjLnBhcmVudC50eXBlLm5hbWU9PT0icGFyYWdyYXBoIj8hMTpvLmNsZWFyTm9kZXMoKX0pLCgpPT5vLmRlbGV0ZVNlbGVjdGlvbigpLCgpPT5vLmpvaW5CYWNrd2FyZCgpLCgpPT5vLnNlbGVjdE5vZGVCYWNrd2FyZCgpXSksImhhbmRsZUJhY2tzcGFjZSIpLGU9aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuZmlyc3QoKHtjb21tYW5kczpvfSk9PlsoKT0+by5kZWxldGVTZWxlY3Rpb24oKSwoKT0+by5kZWxldGVDdXJyZW50Tm9kZSgpLCgpPT5vLmpvaW5Gb3J3YXJkKCksKCk9Pm8uc2VsZWN0Tm9kZUZvcndhcmQoKV0pLCJoYW5kbGVEZWxldGUiKSxhPXtFbnRlcjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5maXJzdCgoe2NvbW1hbmRzOm99KT0+WygpPT5vLm5ld2xpbmVJbkNvZGUoKSwoKT0+by5jcmVhdGVQYXJhZ3JhcGhOZWFyKCksKCk9Pm8ubGlmdEVtcHR5QmxvY2soKSwoKT0+by5zcGxpdEJsb2NrKCldKSwiaGFuZGxlRW50ZXIiKSwiTW9kLUVudGVyIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5leGl0Q29kZSgpLCJNb2QtRW50ZXIiKSxCYWNrc3BhY2U6cywiTW9kLUJhY2tzcGFjZSI6cywiU2hpZnQtQmFja3NwYWNlIjpzLERlbGV0ZTplLCJNb2QtRGVsZXRlIjplLCJNb2QtYSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2VsZWN0QWxsKCksIk1vZC1hIil9LHI9ey4uLmF9LG49ey4uLmEsIkN0cmwtaCI6cywiQWx0LUJhY2tzcGFjZSI6cywiQ3RybC1kIjplLCJDdHJsLUFsdC1CYWNrc3BhY2UiOmUsIkFsdC1EZWxldGUiOmUsIkFsdC1kIjplLCJDdHJsLWEiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNlbGVjdFRleHRibG9ja1N0YXJ0KCksIkN0cmwtYSIpLCJDdHJsLWUiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNlbGVjdFRleHRibG9ja0VuZCgpLCJDdHJsLWUiKX07cmV0dXJuIG5nKCl8fCRsZSgpP246cn0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW25ldyBZcyh7a2V5Om5ldyAkcigiY2xlYXJEb2N1bWVudCIpLGFwcGVuZFRyYW5zYWN0aW9uOmkoKHMsZSx0KT0+e2lmKHMuc29tZShtPT5tLmdldE1ldGEoImNvbXBvc2l0aW9uIikpKXJldHVybjtsZXQgYT1zLnNvbWUobT0+bS5kb2NDaGFuZ2VkKSYmIWUuZG9jLmVxKHQuZG9jKSxyPXMuc29tZShtPT5tLmdldE1ldGEoInByZXZlbnRDbGVhckRvY3VtZW50IikpO2lmKCFhfHxyKXJldHVybjtsZXR7ZW1wdHk6bixmcm9tOm8sdG86bH09ZS5zZWxlY3Rpb24scD1RdC5hdFN0YXJ0KGUuZG9jKS5mcm9tLGQ9UXQuYXRFbmQoZS5kb2MpLnRvO2lmKG58fCEobz09PXAmJmw9PT1kKXx8IXBYKHQuZG9jKSlyZXR1cm47bGV0IGI9dC50cix2PUF2KHtzdGF0ZTp0LHRyYW5zYWN0aW9uOmJ9KSx7Y29tbWFuZHM6eH09bmV3IFBoKHtlZGl0b3I6dGhpcy5lZGl0b3Isc3RhdGU6dn0pO2lmKHguY2xlYXJOb2RlcygpLCEhYi5zdGVwcy5sZW5ndGgpcmV0dXJuIGJ9LCJhcHBlbmRUcmFuc2FjdGlvbiIpfSldfX0pLCRoYT13aS5jcmVhdGUoe25hbWU6InBhc3RlIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJ0aXB0YXBQYXN0ZSIpLHByb3BzOntoYW5kbGVQYXN0ZTppKChzLGUsdCk9Pnt0aGlzLmVkaXRvci5lbWl0KCJwYXN0ZSIse2VkaXRvcjp0aGlzLmVkaXRvcixldmVudDplLHNsaWNlOnR9KX0sImhhbmRsZVBhc3RlIil9fSldfX0pLERoYT13aS5jcmVhdGUoe25hbWU6InRhYmluZGV4IixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJ0YWJpbmRleCIpLHByb3BzOnthdHRyaWJ1dGVzOmkoKCk9PnRoaXMuZWRpdG9yLmlzRWRpdGFibGU/e3RhYmluZGV4OiIwIn06e30sImF0dHJpYnV0ZXMiKX19KV19fSksQmhhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLENsaXBib2FyZFRleHRTZXJpYWxpemVyOmJoYSxDb21tYW5kczpTaGEsRHJvcDpfaGEsRWRpdGFibGU6TWhhLEZvY3VzRXZlbnRzOkNoYSxLZXltYXA6VGhhLFBhc3RlOiRoYSxUYWJpbmRleDpEaGEsZm9jdXNFdmVudHNQbHVnaW5LZXk6emhhfSksaFg9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlUG9zIil9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5ub2RlLnR5cGUubmFtZX1jb25zdHJ1Y3RvcihlLHQsYT0hMSxyPW51bGwpe3RoaXMuY3VycmVudE5vZGU9bnVsbCx0aGlzLmFjdHVhbERlcHRoPW51bGwsdGhpcy5pc0Jsb2NrPWEsdGhpcy5yZXNvbHZlZFBvcz1lLHRoaXMuZWRpdG9yPXQsdGhpcy5jdXJyZW50Tm9kZT1yfWdldCBub2RlKCl7cmV0dXJuIHRoaXMuY3VycmVudE5vZGV8fHRoaXMucmVzb2x2ZWRQb3Mubm9kZSgpfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuZWRpdG9yLnZpZXcuZG9tQXRQb3ModGhpcy5wb3MpLm5vZGV9Z2V0IGRlcHRoKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5hY3R1YWxEZXB0aCkhPT1udWxsJiZlIT09dm9pZCAwP2U6dGhpcy5yZXNvbHZlZFBvcy5kZXB0aH1nZXQgcG9zKCl7cmV0dXJuIHRoaXMucmVzb2x2ZWRQb3MucG9zfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMubm9kZS5jb250ZW50fXNldCBjb250ZW50KGUpe2xldCB0PXRoaXMuZnJvbSxhPXRoaXMudG87aWYodGhpcy5pc0Jsb2NrKXtpZih0aGlzLmNvbnRlbnQuc2l6ZT09PTApe2NvbnNvbGUuZXJyb3IoYFlvdSBjYW5cdTIwMTl0IHNldCBjb250ZW50IG9uIGEgYmxvY2sgbm9kZS4gVHJpZWQgdG8gc2V0IGNvbnRlbnQgb24gJHt0aGlzLm5hbWV9IGF0ICR7dGhpcy5wb3N9YCk7cmV0dXJufXQ9dGhpcy5mcm9tKzEsYT10aGlzLnRvLTF9dGhpcy5lZGl0b3IuY29tbWFuZHMuaW5zZXJ0Q29udGVudEF0KHtmcm9tOnQsdG86YX0sZSl9Z2V0IGF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5ub2RlLmF0dHJzfWdldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLm5vZGUudGV4dENvbnRlbnR9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5ub2RlLm5vZGVTaXplfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuaXNCbG9jaz90aGlzLnBvczp0aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgpfWdldCByYW5nZSgpe3JldHVybntmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1nZXQgdG8oKXtyZXR1cm4gdGhpcy5pc0Jsb2NrP3RoaXMucG9zK3RoaXMuc2l6ZTp0aGlzLnJlc29sdmVkUG9zLmVuZCh0aGlzLnJlc29sdmVkUG9zLmRlcHRoKSsodGhpcy5ub2RlLmlzVGV4dD8wOjEpfWdldCBwYXJlbnQoKXtpZih0aGlzLmRlcHRoPT09MClyZXR1cm4gbnVsbDtsZXQgZT10aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgtMSksdD10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgcyh0LHRoaXMuZWRpdG9yKX1nZXQgYmVmb3JlKCl7bGV0IGU9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZSh0aGlzLmZyb20tKHRoaXMuaXNCbG9jaz8xOjIpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy5mcm9tLTMpKSxuZXcgcyhlLHRoaXMuZWRpdG9yKX1nZXQgYWZ0ZXIoKXtsZXQgZT10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKHRoaXMudG8rKHRoaXMuaXNCbG9jaz8yOjEpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy50byszKSksbmV3IHMoZSx0aGlzLmVkaXRvcil9Z2V0IGNoaWxkcmVuKCl7bGV0IGU9W107cmV0dXJuIHRoaXMubm9kZS5jb250ZW50LmZvckVhY2goKHQsYSk9PntsZXQgcj10LmlzQmxvY2smJiF0LmlzVGV4dGJsb2NrLG49dC5pc0F0b20mJiF0LmlzVGV4dCxvPXRoaXMucG9zK2ErKG4/MDoxKTtpZihvPDB8fG8+dGhpcy5yZXNvbHZlZFBvcy5kb2Mubm9kZVNpemUtMilyZXR1cm47bGV0IGw9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZShvKTtpZighciYmbC5kZXB0aDw9dGhpcy5kZXB0aClyZXR1cm47bGV0IHA9bmV3IHMobCx0aGlzLmVkaXRvcixyLHI/dDpudWxsKTtyJiYocC5hY3R1YWxEZXB0aD10aGlzLmRlcHRoKzEpLGUucHVzaChuZXcgcyhsLHRoaXMuZWRpdG9yLHIscj90Om51bGwpKX0pLGV9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jaGlsZHJlblswXXx8bnVsbH1nZXQgbGFzdENoaWxkKCl7bGV0IGU9dGhpcy5jaGlsZHJlbjtyZXR1cm4gZVtlLmxlbmd0aC0xXXx8bnVsbH1jbG9zZXN0KGUsdD17fSl7bGV0IGE9bnVsbCxyPXRoaXMucGFyZW50O2Zvcig7ciYmIWE7KXtpZihyLm5vZGUudHlwZS5uYW1lPT09ZSlpZihPYmplY3Qua2V5cyh0KS5sZW5ndGg+MCl7bGV0IG49ci5ub2RlLmF0dHJzLG89T2JqZWN0LmtleXModCk7Zm9yKGxldCBsPTA7bDxvLmxlbmd0aDtsKz0xKXtsZXQgcD1vW2xdO2lmKG5bcF0hPT10W3BdKWJyZWFrfX1lbHNlIGE9cjtyPXIucGFyZW50fXJldHVybiBhfXF1ZXJ5U2VsZWN0b3IoZSx0PXt9KXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUsdCwhMClbMF18fG51bGx9cXVlcnlTZWxlY3RvckFsbChlLHQ9e30sYT0hMSl7bGV0IHI9W107aWYoIXRoaXMuY2hpbGRyZW58fHRoaXMuY2hpbGRyZW4ubGVuZ3RoPT09MClyZXR1cm4gcjtsZXQgbj1PYmplY3Qua2V5cyh0KTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5mb3JFYWNoKG89PnthJiZyLmxlbmd0aD4wfHwoby5ub2RlLnR5cGUubmFtZT09PWUmJm4uZXZlcnkocD0+dFtwXT09PW8ubm9kZS5hdHRyc1twXSkmJnIucHVzaChvKSwhKGEmJnIubGVuZ3RoPjApJiYocj1yLmNvbmNhdChvLnF1ZXJ5U2VsZWN0b3JBbGwoZSx0LGEpKSkpfSkscn1zZXRBdHRyaWJ1dGUoZSl7bGV0e3RyOnR9PXRoaXMuZWRpdG9yLnN0YXRlO3Quc2V0Tm9kZU1hcmt1cCh0aGlzLmZyb20sdm9pZCAwLHsuLi50aGlzLm5vZGUuYXR0cnMsLi4uZX0pLHRoaXMuZWRpdG9yLnZpZXcuZGlzcGF0Y2godCl9fSxVWmE9YC5Qcm9zZU1pcnJvciB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouUHJvc2VNaXJyb3IgewogIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAtd2Via2l0LWZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vbmU7CiAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIiAwOyAvKiB0aGUgYWJvdmUgZG9lc24ndCBzZWVtIHRvIHdvcmsgaW4gRWRnZSAqLwp9CgouUHJvc2VNaXJyb3IgW2NvbnRlbnRlZGl0YWJsZT0iZmFsc2UiXSB7CiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKfQoKLlByb3NlTWlycm9yIFtjb250ZW50ZWRpdGFibGU9ImZhbHNlIl0gW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdIHsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KCi5Qcm9zZU1pcnJvciBwcmUgewogIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKfQoKaW1nLlByb3NlTWlycm9yLXNlcGFyYXRvciB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDAgIWltcG9ydGFudDsKICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKfQoKLlByb3NlTWlycm9yLWdhcGN1cnNvciB7CiAgZGlzcGxheTogbm9uZTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbWFyZ2luOiAwOwp9CgouUHJvc2VNaXJyb3ItZ2FwY3Vyc29yOmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiBibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAtMnB4OwogIHdpZHRoOiAyMHB4OwogIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsKICBhbmltYXRpb246IFByb3NlTWlycm9yLWN1cnNvci1ibGluayAxLjFzIHN0ZXBzKDIsIHN0YXJ0KSBpbmZpbml0ZTsKfQoKQGtleWZyYW1lcyBQcm9zZU1pcnJvci1jdXJzb3ItYmxpbmsgewogIHRvIHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICB9Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6OnNlbGVjdGlvbiB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6Oi1tb3otc2VsZWN0aW9uIHsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoKLlByb3NlTWlycm9yLWhpZGVzZWxlY3Rpb24gKiB7CiAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50Owp9CgouUHJvc2VNaXJyb3ItZm9jdXNlZCAuUHJvc2VNaXJyb3ItZ2FwY3Vyc29yIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLnRpcHB5LWJveFtkYXRhLWFuaW1hdGlvbj1mYWRlXVtkYXRhLXN0YXRlPWhpZGRlbl0gewogIG9wYWNpdHk6IDAKfWA7aShHYXQsImNyZWF0ZVN0eWxlVGFnIik7SWxlPWNsYXNzIGV4dGVuZHMgVGF0e3N0YXRpY3tpKHRoaXMsIkVkaXRvciIpfWNvbnN0cnVjdG9yKGU9e30pe3N1cGVyKCksdGhpcy5pc0ZvY3VzZWQ9ITEsdGhpcy5pc0luaXRpYWxpemVkPSExLHRoaXMuZXh0ZW5zaW9uU3RvcmFnZT17fSx0aGlzLm9wdGlvbnM9e2VsZW1lbnQ6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksY29udGVudDoiIixpbmplY3RDU1M6ITAsaW5qZWN0Tm9uY2U6dm9pZCAwLGV4dGVuc2lvbnM6W10sYXV0b2ZvY3VzOiExLGVkaXRhYmxlOiEwLGVkaXRvclByb3BzOnt9LHBhcnNlT3B0aW9uczp7fSxjb3JlRXh0ZW5zaW9uT3B0aW9uczp7fSxlbmFibGVJbnB1dFJ1bGVzOiEwLGVuYWJsZVBhc3RlUnVsZXM6ITAsZW5hYmxlQ29yZUV4dGVuc2lvbnM6ITAsZW5hYmxlQ29udGVudENoZWNrOiExLGVtaXRDb250ZW50RXJyb3I6ITEsb25CZWZvcmVDcmVhdGU6aSgoKT0+bnVsbCwib25CZWZvcmVDcmVhdGUiKSxvbkNyZWF0ZTppKCgpPT5udWxsLCJvbkNyZWF0ZSIpLG9uVXBkYXRlOmkoKCk9Pm51bGwsIm9uVXBkYXRlIiksb25TZWxlY3Rpb25VcGRhdGU6aSgoKT0+bnVsbCwib25TZWxlY3Rpb25VcGRhdGUiKSxvblRyYW5zYWN0aW9uOmkoKCk9Pm51bGwsIm9uVHJhbnNhY3Rpb24iKSxvbkZvY3VzOmkoKCk9Pm51bGwsIm9uRm9jdXMiKSxvbkJsdXI6aSgoKT0+bnVsbCwib25CbHVyIiksb25EZXN0cm95OmkoKCk9Pm51bGwsIm9uRGVzdHJveSIpLG9uQ29udGVudEVycm9yOmkoKHtlcnJvcjp0fSk9Pnt0aHJvdyB0fSwib25Db250ZW50RXJyb3IiKSxvblBhc3RlOmkoKCk9Pm51bGwsIm9uUGFzdGUiKSxvbkRyb3A6aSgoKT0+bnVsbCwib25Ecm9wIil9LHRoaXMuaXNDYXB0dXJpbmdUcmFuc2FjdGlvbj0hMSx0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCx0aGlzLnNldE9wdGlvbnMoZSksdGhpcy5jcmVhdGVFeHRlbnNpb25NYW5hZ2VyKCksdGhpcy5jcmVhdGVDb21tYW5kTWFuYWdlcigpLHRoaXMuY3JlYXRlU2NoZW1hKCksdGhpcy5vbigiYmVmb3JlQ3JlYXRlIix0aGlzLm9wdGlvbnMub25CZWZvcmVDcmVhdGUpLHRoaXMuZW1pdCgiYmVmb3JlQ3JlYXRlIix7ZWRpdG9yOnRoaXN9KSx0aGlzLm9uKCJjb250ZW50RXJyb3IiLHRoaXMub3B0aW9ucy5vbkNvbnRlbnRFcnJvciksdGhpcy5jcmVhdGVWaWV3KCksdGhpcy5pbmplY3RDU1MoKSx0aGlzLm9uKCJjcmVhdGUiLHRoaXMub3B0aW9ucy5vbkNyZWF0ZSksdGhpcy5vbigidXBkYXRlIix0aGlzLm9wdGlvbnMub25VcGRhdGUpLHRoaXMub24oInNlbGVjdGlvblVwZGF0ZSIsdGhpcy5vcHRpb25zLm9uU2VsZWN0aW9uVXBkYXRlKSx0aGlzLm9uKCJ0cmFuc2FjdGlvbiIsdGhpcy5vcHRpb25zLm9uVHJhbnNhY3Rpb24pLHRoaXMub24oImZvY3VzIix0aGlzLm9wdGlvbnMub25Gb2N1cyksdGhpcy5vbigiYmx1ciIsdGhpcy5vcHRpb25zLm9uQmx1ciksdGhpcy5vbigiZGVzdHJveSIsdGhpcy5vcHRpb25zLm9uRGVzdHJveSksdGhpcy5vbigiZHJvcCIsKHtldmVudDp0LHNsaWNlOmEsbW92ZWQ6cn0pPT50aGlzLm9wdGlvbnMub25Ecm9wKHQsYSxyKSksdGhpcy5vbigicGFzdGUiLCh7ZXZlbnQ6dCxzbGljZTphfSk9PnRoaXMub3B0aW9ucy5vblBhc3RlKHQsYSkpLHdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8KHRoaXMuY29tbWFuZHMuZm9jdXModGhpcy5vcHRpb25zLmF1dG9mb2N1cyksdGhpcy5lbWl0KCJjcmVhdGUiLHtlZGl0b3I6dGhpc30pLHRoaXMuaXNJbml0aWFsaXplZD0hMCl9LDApfWdldCBzdG9yYWdlKCl7cmV0dXJuIHRoaXMuZXh0ZW5zaW9uU3RvcmFnZX1nZXQgY29tbWFuZHMoKXtyZXR1cm4gdGhpcy5jb21tYW5kTWFuYWdlci5jb21tYW5kc31jaGFpbigpe3JldHVybiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNoYWluKCl9Y2FuKCl7cmV0dXJuIHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuKCl9aW5qZWN0Q1NTKCl7dGhpcy5vcHRpb25zLmluamVjdENTUyYmZG9jdW1lbnQmJih0aGlzLmNzcz1HYXQoVVphLHRoaXMub3B0aW9ucy5pbmplY3ROb25jZSkpfXNldE9wdGlvbnMoZT17fSl7dGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4uZX0sISghdGhpcy52aWV3fHwhdGhpcy5zdGF0ZXx8dGhpcy5pc0Rlc3Ryb3llZCkmJih0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMmJnRoaXMudmlldy5zZXRQcm9wcyh0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMpLHRoaXMudmlldy51cGRhdGVTdGF0ZSh0aGlzLnN0YXRlKSl9c2V0RWRpdGFibGUoZSx0PSEwKXt0aGlzLnNldE9wdGlvbnMoe2VkaXRhYmxlOmV9KSx0JiZ0aGlzLmVtaXQoInVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOnRoaXMuc3RhdGUudHJ9KX1nZXQgaXNFZGl0YWJsZSgpe3JldHVybiB0aGlzLm9wdGlvbnMuZWRpdGFibGUmJnRoaXMudmlldyYmdGhpcy52aWV3LmVkaXRhYmxlfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLnZpZXcuc3RhdGV9cmVnaXN0ZXJQbHVnaW4oZSx0KXtsZXQgYT1rbGUodCk/dChlLFsuLi50aGlzLnN0YXRlLnBsdWdpbnNdKTpbLi4udGhpcy5zdGF0ZS5wbHVnaW5zLGVdLHI9dGhpcy5zdGF0ZS5yZWNvbmZpZ3VyZSh7cGx1Z2luczphfSk7cmV0dXJuIHRoaXMudmlldy51cGRhdGVTdGF0ZShyKSxyfXVucmVnaXN0ZXJQbHVnaW4oZSl7aWYodGhpcy5pc0Rlc3Ryb3llZClyZXR1cm47bGV0IHQ9dGhpcy5zdGF0ZS5wbHVnaW5zLGE9dDtpZihbXS5jb25jYXQoZSkuZm9yRWFjaChuPT57bGV0IG89dHlwZW9mIG49PSJzdHJpbmciP2Ake259JGA6bi5rZXk7YT1hLmZpbHRlcihsPT4hbC5rZXkuc3RhcnRzV2l0aChvKSl9KSx0Lmxlbmd0aD09PWEubGVuZ3RoKXJldHVybjtsZXQgcj10aGlzLnN0YXRlLnJlY29uZmlndXJlKHtwbHVnaW5zOmF9KTtyZXR1cm4gdGhpcy52aWV3LnVwZGF0ZVN0YXRlKHIpLHJ9Y3JlYXRlRXh0ZW5zaW9uTWFuYWdlcigpe3ZhciBlLHQ7bGV0IHI9Wy4uLnRoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9ucz9bTWhhLGJoYS5jb25maWd1cmUoe2Jsb2NrU2VwYXJhdG9yOih0PShlPXRoaXMub3B0aW9ucy5jb3JlRXh0ZW5zaW9uT3B0aW9ucyk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmNsaXBib2FyZFRleHRTZXJpYWxpemVyKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuYmxvY2tTZXBhcmF0b3J9KSxTaGEsQ2hhLFRoYSxEaGEsX2hhLCRoYV0uZmlsdGVyKG49PnR5cGVvZiB0aGlzLm9wdGlvbnMuZW5hYmxlQ29yZUV4dGVuc2lvbnM9PSJvYmplY3QiP3RoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9uc1tuLm5hbWVdIT09ITE6ITApOltdLC4uLnRoaXMub3B0aW9ucy5leHRlbnNpb25zXS5maWx0ZXIobj0+WyJleHRlbnNpb24iLCJub2RlIiwibWFyayJdLmluY2x1ZGVzKG4/LnR5cGUpKTt0aGlzLmV4dGVuc2lvbk1hbmFnZXI9bmV3IHlsZShyLHRoaXMpfWNyZWF0ZUNvbW1hbmRNYW5hZ2VyKCl7dGhpcy5jb21tYW5kTWFuYWdlcj1uZXcgUGgoe2VkaXRvcjp0aGlzfSl9Y3JlYXRlU2NoZW1hKCl7dGhpcy5zY2hlbWE9dGhpcy5leHRlbnNpb25NYW5hZ2VyLnNjaGVtYX1jcmVhdGVWaWV3KCl7dmFyIGU7bGV0IHQ7dHJ5e3Q9Y1godGhpcy5vcHRpb25zLmNvbnRlbnQsdGhpcy5zY2hlbWEsdGhpcy5vcHRpb25zLnBhcnNlT3B0aW9ucyx7ZXJyb3JPbkludmFsaWRDb250ZW50OnRoaXMub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2t9KX1jYXRjaChvKXtpZighKG8gaW5zdGFuY2VvZiBFcnJvcil8fCFbIlt0aXB0YXAgZXJyb3JdOiBJbnZhbGlkIEpTT04gY29udGVudCIsIlt0aXB0YXAgZXJyb3JdOiBJbnZhbGlkIEhUTUwgY29udGVudCJdLmluY2x1ZGVzKG8ubWVzc2FnZSkpdGhyb3cgbzt0aGlzLmVtaXQoImNvbnRlbnRFcnJvciIse2VkaXRvcjp0aGlzLGVycm9yOm8sZGlzYWJsZUNvbGxhYm9yYXRpb246aSgoKT0+e3RoaXMuc3RvcmFnZS5jb2xsYWJvcmF0aW9uJiYodGhpcy5zdG9yYWdlLmNvbGxhYm9yYXRpb24uaXNEaXNhYmxlZD0hMCksdGhpcy5vcHRpb25zLmV4dGVuc2lvbnM9dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuZmlsdGVyKGw9PmwubmFtZSE9PSJjb2xsYWJvcmF0aW9uIiksdGhpcy5jcmVhdGVFeHRlbnNpb25NYW5hZ2VyKCl9LCJkaXNhYmxlQ29sbGFib3JhdGlvbiIpfSksdD1jWCh0aGlzLm9wdGlvbnMuY29udGVudCx0aGlzLnNjaGVtYSx0aGlzLm9wdGlvbnMucGFyc2VPcHRpb25zLHtlcnJvck9uSW52YWxpZENvbnRlbnQ6ITF9KX1sZXQgYT1UbGUodCx0aGlzLm9wdGlvbnMuYXV0b2ZvY3VzKTt0aGlzLnZpZXc9bmV3IFB2KHRoaXMub3B0aW9ucy5lbGVtZW50LHsuLi50aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMsYXR0cmlidXRlczp7cm9sZToidGV4dGJveCIsLi4uKGU9dGhpcy5vcHRpb25zLmVkaXRvclByb3BzKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuYXR0cmlidXRlc30sZGlzcGF0Y2hUcmFuc2FjdGlvbjp0aGlzLmRpc3BhdGNoVHJhbnNhY3Rpb24uYmluZCh0aGlzKSxzdGF0ZTpXWi5jcmVhdGUoe2RvYzp0LHNlbGVjdGlvbjphfHx2b2lkIDB9KX0pO2xldCByPXRoaXMuc3RhdGUucmVjb25maWd1cmUoe3BsdWdpbnM6dGhpcy5leHRlbnNpb25NYW5hZ2VyLnBsdWdpbnN9KTt0aGlzLnZpZXcudXBkYXRlU3RhdGUociksdGhpcy5jcmVhdGVOb2RlVmlld3MoKSx0aGlzLnByZXBlbmRDbGFzcygpO2xldCBuPXRoaXMudmlldy5kb207bi5lZGl0b3I9dGhpc31jcmVhdGVOb2RlVmlld3MoKXt0aGlzLnZpZXcuaXNEZXN0cm95ZWR8fHRoaXMudmlldy5zZXRQcm9wcyh7bm9kZVZpZXdzOnRoaXMuZXh0ZW5zaW9uTWFuYWdlci5ub2RlVmlld3N9KX1wcmVwZW5kQ2xhc3MoKXt0aGlzLnZpZXcuZG9tLmNsYXNzTmFtZT1gdGlwdGFwICR7dGhpcy52aWV3LmRvbS5jbGFzc05hbWV9YH1jYXB0dXJlVHJhbnNhY3Rpb24oZSl7dGhpcy5pc0NhcHR1cmluZ1RyYW5zYWN0aW9uPSEwLGUoKSx0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb249ITE7bGV0IHQ9dGhpcy5jYXB0dXJlZFRyYW5zYWN0aW9uO3JldHVybiB0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCx0fWRpc3BhdGNoVHJhbnNhY3Rpb24oZSl7aWYodGhpcy52aWV3LmlzRGVzdHJveWVkKXJldHVybjtpZih0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb24pe2lmKCF0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb24pe3RoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbj1lO3JldHVybn1lLnN0ZXBzLmZvckVhY2gobz0+e3ZhciBsO3JldHVybihsPXRoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbik9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLnN0ZXAobyl9KTtyZXR1cm59bGV0IHQ9dGhpcy5zdGF0ZS5hcHBseShlKSxhPSF0aGlzLnN0YXRlLnNlbGVjdGlvbi5lcSh0LnNlbGVjdGlvbik7dGhpcy5lbWl0KCJiZWZvcmVUcmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmUsbmV4dFN0YXRlOnR9KSx0aGlzLnZpZXcudXBkYXRlU3RhdGUodCksdGhpcy5lbWl0KCJ0cmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KSxhJiZ0aGlzLmVtaXQoInNlbGVjdGlvblVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KTtsZXQgcj1lLmdldE1ldGEoImZvY3VzIiksbj1lLmdldE1ldGEoImJsdXIiKTtyJiZ0aGlzLmVtaXQoImZvY3VzIix7ZWRpdG9yOnRoaXMsZXZlbnQ6ci5ldmVudCx0cmFuc2FjdGlvbjplfSksbiYmdGhpcy5lbWl0KCJibHVyIix7ZWRpdG9yOnRoaXMsZXZlbnQ6bi5ldmVudCx0cmFuc2FjdGlvbjplfSksISghZS5kb2NDaGFuZ2VkfHxlLmdldE1ldGEoInByZXZlbnRVcGRhdGUiKSkmJnRoaXMuZW1pdCgidXBkYXRlIix7ZWRpdG9yOnRoaXMsdHJhbnNhY3Rpb246ZX0pfWdldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIGZYKHRoaXMuc3RhdGUsZSl9aXNBY3RpdmUoZSx0KXtsZXQgYT10eXBlb2YgZT09InN0cmluZyI/ZTpudWxsLHI9dHlwZW9mIGU9PSJzdHJpbmciP3Q6ZTtyZXR1cm4gV2F0KHRoaXMuc3RhdGUsYSxyKX1nZXRKU09OKCl7cmV0dXJuIHRoaXMuc3RhdGUuZG9jLnRvSlNPTigpfWdldEhUTUwoKXtyZXR1cm4gUnYodGhpcy5zdGF0ZS5kb2MuY29udGVudCx0aGlzLnNjaGVtYSl9Z2V0VGV4dChlKXtsZXR7YmxvY2tTZXBhcmF0b3I6dD1gCgpgLHRleHRTZXJpYWxpemVyczphPXt9fT1lfHx7fTtyZXR1cm4gRWxlKHRoaXMuc3RhdGUuZG9jLHtibG9ja1NlcGFyYXRvcjp0LHRleHRTZXJpYWxpemVyczp7Li4ublgodGhpcy5zY2hlbWEpLC4uLmF9fSl9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gcFgodGhpcy5zdGF0ZS5kb2MpfWdldENoYXJhY3RlckNvdW50KCl7cmV0dXJuIGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogImVkaXRvci5nZXRDaGFyYWN0ZXJDb3VudCgpIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJlZGl0b3Iuc3RvcmFnZS5jaGFyYWN0ZXJDb3VudC5jaGFyYWN0ZXJzKCkiIGluc3RlYWQuJyksdGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplLTJ9ZGVzdHJveSgpe2lmKHRoaXMuZW1pdCgiZGVzdHJveSIpLHRoaXMudmlldyl7bGV0IGU9dGhpcy52aWV3LmRvbTtlJiZlLmVkaXRvciYmZGVsZXRlIGUuZWRpdG9yLHRoaXMudmlldy5kZXN0cm95KCl9dGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKX1nZXQgaXNEZXN0cm95ZWQoKXt2YXIgZTtyZXR1cm4hKCEoKGU9dGhpcy52aWV3KT09PW51bGx8fGU9PT12b2lkIDApJiZlLmRvY1ZpZXcpfSRub2RlKGUsdCl7dmFyIGE7cmV0dXJuKChhPXRoaXMuJGRvYyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3IoZSx0KSl8fG51bGx9JG5vZGVzKGUsdCl7dmFyIGE7cmV0dXJuKChhPXRoaXMuJGRvYyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3JBbGwoZSx0KSl8fG51bGx9JHBvcyhlKXtsZXQgdD10aGlzLnN0YXRlLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgaFgodCx0aGlzKX1nZXQgJGRvYygpe3JldHVybiB0aGlzLiRwb3MoMCl9fTtpKHFjLCJtYXJrSW5wdXRSdWxlIik7aShIbGUsIm5vZGVJbnB1dFJ1bGUiKTtpKHVnLCJ0ZXh0YmxvY2tUeXBlSW5wdXRSdWxlIik7aShoaSwidGV4dElucHV0UnVsZSIpO2koT2QsIndyYXBwaW5nSW5wdXRSdWxlIik7c2k9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy50eXBlPSJub2RlIix0aGlzLm5hbWU9Im5vZGUiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZD1udWxsLHRoaXMuY29uZmlnPXtuYW1lOnRoaXMubmFtZSxkZWZhdWx0T3B0aW9uczp7fX0sdGhpcy5jb25maWc9ey4uLnRoaXMuY29uZmlnLC4uLmV9LHRoaXMubmFtZT10aGlzLmNvbmZpZy5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3RoaXMubmFtZX0iLmApLHRoaXMub3B0aW9ucz10aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucyx0aGlzLmNvbmZpZy5hZGRPcHRpb25zJiYodGhpcy5vcHRpb25zPWNhKER0KHRoaXMsImFkZE9wdGlvbnMiLHtuYW1lOnRoaXMubmFtZX0pKSksdGhpcy5zdG9yYWdlPWNhKER0KHRoaXMsImFkZFN0b3JhZ2UiLHtuYW1lOnRoaXMubmFtZSxvcHRpb25zOnRoaXMub3B0aW9uc30pKXx8e319c3RhdGljIGNyZWF0ZShlPXt9KXtyZXR1cm4gbmV3IHMoZSl9Y29uZmlndXJlKGU9e30pe2xldCB0PXRoaXMuZXh0ZW5kKHsuLi50aGlzLmNvbmZpZyxhZGRPcHRpb25zOmkoKCk9PkZ2KHRoaXMub3B0aW9ucyxlKSwiYWRkT3B0aW9ucyIpfSk7cmV0dXJuIHQubmFtZT10aGlzLm5hbWUsdC5wYXJlbnQ9dGhpcy5wYXJlbnQsdH1leHRlbmQoZT17fSl7bGV0IHQ9bmV3IHMoZSk7cmV0dXJuIHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZD10LHQubmFtZT1lLm5hbWU/ZS5uYW1lOnQucGFyZW50Lm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dC5uYW1lfSIuYCksdC5vcHRpb25zPWNhKER0KHQsImFkZE9wdGlvbnMiLHtuYW1lOnQubmFtZX0pKSx0LnN0b3JhZ2U9Y2EoRHQodCwiYWRkU3RvcmFnZSIse25hbWU6dC5uYW1lLG9wdGlvbnM6dC5vcHRpb25zfSkpLHR9fSxBbGU9Y2xhc3N7c3RhdGlje2kodGhpcywiTm9kZVZpZXciKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuY29tcG9uZW50PWUsdGhpcy5lZGl0b3I9dC5lZGl0b3IsdGhpcy5vcHRpb25zPXtzdG9wRXZlbnQ6bnVsbCxpZ25vcmVNdXRhdGlvbjpudWxsLC4uLmF9LHRoaXMuZXh0ZW5zaW9uPXQuZXh0ZW5zaW9uLHRoaXMubm9kZT10Lm5vZGUsdGhpcy5kZWNvcmF0aW9ucz10LmRlY29yYXRpb25zLHRoaXMuaW5uZXJEZWNvcmF0aW9ucz10LmlubmVyRGVjb3JhdGlvbnMsdGhpcy52aWV3PXQudmlldyx0aGlzLkhUTUxBdHRyaWJ1dGVzPXQuSFRNTEF0dHJpYnV0ZXMsdGhpcy5nZXRQb3M9dC5nZXRQb3MsdGhpcy5tb3VudCgpfW1vdW50KCl7fWdldCBkb20oKXtyZXR1cm4gdGhpcy5lZGl0b3Iudmlldy5kb219Z2V0IGNvbnRlbnRET00oKXtyZXR1cm4gbnVsbH1vbkRyYWdTdGFydChlKXt2YXIgdCxhLHIsbixvLGwscDtsZXR7dmlldzpkfT10aGlzLmVkaXRvcix1PWUudGFyZ2V0LGM9dS5ub2RlVHlwZT09PTM/KHQ9dS5wYXJlbnRFbGVtZW50KT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuY2xvc2VzdCgiW2RhdGEtZHJhZy1oYW5kbGVdIik6dS5jbG9zZXN0KCJbZGF0YS1kcmFnLWhhbmRsZV0iKTtpZighdGhpcy5kb218fCEoKGE9dGhpcy5jb250ZW50RE9NKT09PW51bGx8fGE9PT12b2lkIDApJiZhLmNvbnRhaW5zKHUpfHwhYylyZXR1cm47bGV0IGI9MCx2PTA7aWYodGhpcy5kb20hPT1jKXtsZXQgTT10aGlzLmRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx6PWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTj0ocj1lLm9mZnNldFgpIT09bnVsbCYmciE9PXZvaWQgMD9yOihuPWUubmF0aXZlRXZlbnQpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5vZmZzZXRYLEM9KG89ZS5vZmZzZXRZKSE9PW51bGwmJm8hPT12b2lkIDA/bzoobD1lLm5hdGl2ZUV2ZW50KT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwub2Zmc2V0WTtiPXoueC1NLngrTix2PXoueS1NLnkrQ31sZXQgeD10aGlzLmRvbS5jbG9uZU5vZGUoITApOyhwPWUuZGF0YVRyYW5zZmVyKT09PW51bGx8fHA9PT12b2lkIDB8fHAuc2V0RHJhZ0ltYWdlKHgsYix2KTtsZXQgbT10aGlzLmdldFBvcygpO2lmKHR5cGVvZiBtIT0ibnVtYmVyIilyZXR1cm47bGV0IGY9RnQuY3JlYXRlKGQuc3RhdGUuZG9jLG0pLHk9ZC5zdGF0ZS50ci5zZXRTZWxlY3Rpb24oZik7ZC5kaXNwYXRjaCh5KX1zdG9wRXZlbnQoZSl7dmFyIHQ7aWYoIXRoaXMuZG9tKXJldHVybiExO2lmKHR5cGVvZiB0aGlzLm9wdGlvbnMuc3RvcEV2ZW50PT0iZnVuY3Rpb24iKXJldHVybiB0aGlzLm9wdGlvbnMuc3RvcEV2ZW50KHtldmVudDplfSk7bGV0IGE9ZS50YXJnZXQ7aWYoISh0aGlzLmRvbS5jb250YWlucyhhKSYmISghKCh0PXRoaXMuY29udGVudERPTSk9PT1udWxsfHx0PT09dm9pZCAwKSYmdC5jb250YWlucyhhKSkpKXJldHVybiExO2xldCBuPWUudHlwZS5zdGFydHNXaXRoKCJkcmFnIiksbz1lLnR5cGU9PT0iZHJvcCI7aWYoKFsiSU5QVVQiLCJCVVRUT04iLCJTRUxFQ1QiLCJURVhUQVJFQSJdLmluY2x1ZGVzKGEudGFnTmFtZSl8fGEuaXNDb250ZW50RWRpdGFibGUpJiYhbyYmIW4pcmV0dXJuITA7bGV0e2lzRWRpdGFibGU6cH09dGhpcy5lZGl0b3Ise2lzRHJhZ2dpbmc6ZH09dGhpcyx1PSEhdGhpcy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUsYz1GdC5pc1NlbGVjdGFibGUodGhpcy5ub2RlKSxiPWUudHlwZT09PSJjb3B5Iix2PWUudHlwZT09PSJwYXN0ZSIseD1lLnR5cGU9PT0iY3V0IixtPWUudHlwZT09PSJtb3VzZWRvd24iO2lmKCF1JiZjJiZuJiZlLnRhcmdldD09PXRoaXMuZG9tJiZlLnByZXZlbnREZWZhdWx0KCksdSYmbiYmIWQmJmUudGFyZ2V0PT09dGhpcy5kb20pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSwhMTtpZih1JiZwJiYhZCYmbSl7bGV0IGY9YS5jbG9zZXN0KCJbZGF0YS1kcmFnLWhhbmRsZV0iKTtmJiYodGhpcy5kb209PT1mfHx0aGlzLmRvbS5jb250YWlucyhmKSkmJih0aGlzLmlzRHJhZ2dpbmc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSkpfXJldHVybiEoZHx8b3x8Ynx8dnx8eHx8bSYmYyl9aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIXRoaXMuZG9tfHwhdGhpcy5jb250ZW50RE9NPyEwOnR5cGVvZiB0aGlzLm9wdGlvbnMuaWdub3JlTXV0YXRpb249PSJmdW5jdGlvbiI/dGhpcy5vcHRpb25zLmlnbm9yZU11dGF0aW9uKHttdXRhdGlvbjplfSk6dGhpcy5ub2RlLmlzTGVhZnx8dGhpcy5ub2RlLmlzQXRvbT8hMDplLnR5cGU9PT0ic2VsZWN0aW9uInx8dGhpcy5kb20uY29udGFpbnMoZS50YXJnZXQpJiZlLnR5cGU9PT0iY2hpbGRMaXN0IiYmKG5nKCl8fCRhdCgpKSYmdGhpcy5lZGl0b3IuaXNGb2N1c2VkJiZbLi4uQXJyYXkuZnJvbShlLmFkZGVkTm9kZXMpLC4uLkFycmF5LmZyb20oZS5yZW1vdmVkTm9kZXMpXS5ldmVyeShhPT5hLmlzQ29udGVudEVkaXRhYmxlKT8hMTp0aGlzLmNvbnRlbnRET009PT1lLnRhcmdldCYmZS50eXBlPT09ImF0dHJpYnV0ZXMiPyEwOiF0aGlzLmNvbnRlbnRET00uY29udGFpbnMoZS50YXJnZXQpfXVwZGF0ZUF0dHJpYnV0ZXMoZSl7dGhpcy5lZGl0b3IuY29tbWFuZHMuY29tbWFuZCgoe3RyOnR9KT0+e2xldCBhPXRoaXMuZ2V0UG9zKCk7cmV0dXJuIHR5cGVvZiBhIT0ibnVtYmVyIj8hMToodC5zZXROb2RlTWFya3VwKGEsdm9pZCAwLHsuLi50aGlzLm5vZGUuYXR0cnMsLi4uZX0pLCEwKX0pfWRlbGV0ZU5vZGUoKXtsZXQgZT10aGlzLmdldFBvcygpO2lmKHR5cGVvZiBlIT0ibnVtYmVyIilyZXR1cm47bGV0IHQ9ZSt0aGlzLm5vZGUubm9kZVNpemU7dGhpcy5lZGl0b3IuY29tbWFuZHMuZGVsZXRlUmFuZ2Uoe2Zyb206ZSx0bzp0fSl9fTtpKFRsLCJtYXJrUGFzdGVSdWxlIik7aShxbGUsImNhbkluc2VydE5vZGUiKTtpKEhoYSwiZXNjYXBlRm9yUmVnRXgiKTtpKHFoYSwiaXNTdHJpbmciKTtpKGpoYSwibm9kZVBhc3RlUnVsZSIpO2koVmhhLCJ0ZXh0UGFzdGVSdWxlIik7TmxlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRyYWNrZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRyYW5zYWN0aW9uPWUsdGhpcy5jdXJyZW50U3RlcD10aGlzLnRyYW5zYWN0aW9uLnN0ZXBzLmxlbmd0aH1tYXAoZSl7bGV0IHQ9ITE7cmV0dXJue3Bvc2l0aW9uOnRoaXMudHJhbnNhY3Rpb24uc3RlcHMuc2xpY2UodGhpcy5jdXJyZW50U3RlcCkucmVkdWNlKChyLG4pPT57bGV0IG89bi5nZXRNYXAoKS5tYXBSZXN1bHQocik7cmV0dXJuIG8uZGVsZXRlZCYmKHQ9ITApLG8ucG9zfSxlKSxkZWxldGVkOnR9fX19KTt2YXIgVWhhLGpsZSxXaGE9ZygoKT0+e2lpKCk7VWhhPS9eXHMqPlxzJC8samxlPXNpLmNyZWF0ZSh7bmFtZToiYmxvY2txdW90ZSIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6ImJsb2NrKyIsZ3JvdXA6ImJsb2NrIixkZWZpbmluZzohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiYmxvY2txdW90ZSJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6c30pe3JldHVyblsiYmxvY2txdW90ZSIsYXModGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHMpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRCbG9ja3F1b3RlOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLndyYXBJbih0aGlzLm5hbWUpLCJzZXRCbG9ja3F1b3RlIiksdG9nZ2xlQmxvY2txdW90ZTppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy50b2dnbGVXcmFwKHRoaXMubmFtZSksInRvZ2dsZUJsb2NrcXVvdGUiKSx1bnNldEJsb2NrcXVvdGU6aSgoKT0+KHtjb21tYW5kczpzfSk9PnMubGlmdCh0aGlzLm5hbWUpLCJ1bnNldEJsb2NrcXVvdGUiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtYiI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQmxvY2txdW90ZSgpLCJNb2QtU2hpZnQtYiIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltPZCh7ZmluZDpVaGEsdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgR2hhLEtoYSxZaGEsWmhhLFZsZSxYaGE9ZygoKT0+e2lpKCk7R2hhPS8oPzpefFxzKShcKlwqKD8hXHMrXCpcKikoKD86W14qXSspKVwqXCooPyFccytcKlwqKSkkLyxLaGE9Lyg/Ol58XHMpKFwqXCooPyFccytcKlwqKSgoPzpbXipdKykpXCpcKig/IVxzK1wqXCopKS9nLFloYT0vKD86XnxccykoX18oPyFccytfXykoKD86W15fXSspKV9fKD8hXHMrX18pKSQvLFpoYT0vKD86XnxccykoX18oPyFccytfXykoKD86W15fXSspKV9fKD8hXHMrX18pKS9nLFZsZT1Eby5jcmVhdGUoe25hbWU6ImJvbGQiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoic3Ryb25nIn0se3RhZzoiYiIsZ2V0QXR0cnM6aShzPT5zLnN0eWxlLmZvbnRXZWlnaHQhPT0ibm9ybWFsIiYmbnVsbCwiZ2V0QXR0cnMiKX0se3N0eWxlOiJmb250LXdlaWdodD00MDAiLGNsZWFyTWFyazppKHM9PnMudHlwZS5uYW1lPT09dGhpcy5uYW1lLCJjbGVhck1hcmsiKX0se3N0eWxlOiJmb250LXdlaWdodCIsZ2V0QXR0cnM6aShzPT4vXihib2xkKGVyKT98WzUtOV1cZHsyLH0pJC8udGVzdChzKSYmbnVsbCwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczpzfSl7cmV0dXJuWyJzdHJvbmciLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxzKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0Qm9sZDppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy5zZXRNYXJrKHRoaXMubmFtZSksInNldEJvbGQiKSx0b2dnbGVCb2xkOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnRvZ2dsZU1hcmsodGhpcy5uYW1lKSwidG9nZ2xlQm9sZCIpLHVuc2V0Qm9sZDppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRCb2xkIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLWIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUJvbGQoKSwiTW9kLWIiKSwiTW9kLUIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUJvbGQoKSwiTW9kLUIiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bcWMoe2ZpbmQ6R2hhLHR5cGU6dGhpcy50eXBlfSkscWMoe2ZpbmQ6WWhhLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW1RsKHtmaW5kOktoYSx0eXBlOnRoaXMudHlwZX0pLFRsKHtmaW5kOlpoYSx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBXWmEsUWhhLFlhdCxVbGUsSmhhPWcoKCk9PntpaSgpO1daYT0ibGlzdEl0ZW0iLFFoYT0idGV4dFN0eWxlIixZYXQ9L15ccyooWy0rKl0pXHMkLyxVbGU9c2kuY3JlYXRlKHtuYW1lOiJidWxsZXRMaXN0IixhZGRPcHRpb25zKCl7cmV0dXJue2l0ZW1UeXBlTmFtZToibGlzdEl0ZW0iLEhUTUxBdHRyaWJ1dGVzOnt9LGtlZXBNYXJrczohMSxrZWVwQXR0cmlidXRlczohMX19LGdyb3VwOiJibG9jayBsaXN0Iixjb250ZW50KCl7cmV0dXJuYCR7dGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZX0rYH0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InVsIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczpzfSl7cmV0dXJuWyJ1bCIsYXModGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHMpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybnt0b2dnbGVCdWxsZXRMaXN0OmkoKCk9Pih7Y29tbWFuZHM6cyxjaGFpbjplfSk9PnRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcz9lKCkudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKS51cGRhdGVBdHRyaWJ1dGVzKFdaYSx0aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKFFoYSkpLnJ1bigpOnMudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKSwidG9nZ2xlQnVsbGV0TGlzdCIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1TaGlmdC04IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVCdWxsZXRMaXN0KCksIk1vZC1TaGlmdC04Iil9fSxhZGRJbnB1dFJ1bGVzKCl7bGV0IHM9T2Qoe2ZpbmQ6WWF0LHR5cGU6dGhpcy50eXBlfSk7cmV0dXJuKHRoaXMub3B0aW9ucy5rZWVwTWFya3N8fHRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcykmJihzPU9kKHtmaW5kOllhdCx0eXBlOnRoaXMudHlwZSxrZWVwTWFya3M6dGhpcy5vcHRpb25zLmtlZXBNYXJrcyxrZWVwQXR0cmlidXRlczp0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMsZ2V0QXR0cmlidXRlczppKCgpPT50aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKFFoYSksImdldEF0dHJpYnV0ZXMiKSxlZGl0b3I6dGhpcy5lZGl0b3J9KSksW3NdfX0pfSk7dmFyIGU0YSx0NGEsV2xlLGE0YT1nKCgpPT57aWkoKTtlNGE9LyhefFteYF0pYChbXmBdKylgKD8hYCkvLHQ0YT0vKF58W15gXSlgKFteYF0rKWAoPyFgKS9nLFdsZT1Eby5jcmVhdGUoe25hbWU6ImNvZGUiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxleGNsdWRlczoiXyIsY29kZTohMCxleGl0YWJsZTohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiY29kZSJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6c30pe3JldHVyblsiY29kZSIsYXModGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHMpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRDb2RlOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnNldE1hcmsodGhpcy5uYW1lKSwic2V0Q29kZSIpLHRvZ2dsZUNvZGU6aSgoKT0+KHtjb21tYW5kczpzfSk9PnMudG9nZ2xlTWFyayh0aGlzLm5hbWUpLCJ0b2dnbGVDb2RlIiksdW5zZXRDb2RlOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldENvZGUiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtZSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQ29kZSgpLCJNb2QtZSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltxYyh7ZmluZDplNGEsdHlwZTp0aGlzLnR5cGV9KV19LGFkZFBhc3RlUnVsZXMoKXtyZXR1cm5bVGwoe2ZpbmQ6dDRhLHR5cGU6dGhpcy50eXBlfSldfX0pfSk7dmFyIHM0YSxpNGEsR2xlLHI0YT1nKCgpPT57aWkoKTtHWigpO3M0YT0vXmBgYChbYS16XSspP1tcc1xuXSQvLGk0YT0vXn5+fihbYS16XSspP1tcc1xuXSQvLEdsZT1zaS5jcmVhdGUoe25hbWU6ImNvZGVCbG9jayIsYWRkT3B0aW9ucygpe3JldHVybntsYW5ndWFnZUNsYXNzUHJlZml4OiJsYW5ndWFnZS0iLGV4aXRPblRyaXBsZUVudGVyOiEwLGV4aXRPbkFycm93RG93bjohMCxkZWZhdWx0TGFuZ3VhZ2U6bnVsbCxIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6InRleHQqIixtYXJrczoiIixncm91cDoiYmxvY2siLGNvZGU6ITAsZGVmaW5pbmc6ITAsYWRkQXR0cmlidXRlcygpe3JldHVybntsYW5ndWFnZTp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuZGVmYXVsdExhbmd1YWdlLHBhcnNlSFRNTDppKHM9Pnt2YXIgZTtsZXR7bGFuZ3VhZ2VDbGFzc1ByZWZpeDp0fT10aGlzLm9wdGlvbnMsbj1bLi4uKChlPXMuZmlyc3RFbGVtZW50Q2hpbGQpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5jbGFzc0xpc3QpfHxbXV0uZmlsdGVyKG89Pm8uc3RhcnRzV2l0aCh0KSkubWFwKG89Pm8ucmVwbGFjZSh0LCIiKSlbMF07cmV0dXJuIG58fG51bGx9LCJwYXJzZUhUTUwiKSxyZW5kZXJlZDohMX19fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoicHJlIixwcmVzZXJ2ZVdoaXRlc3BhY2U6ImZ1bGwifV19LHJlbmRlckhUTUwoe25vZGU6cyxIVE1MQXR0cmlidXRlczplfSl7cmV0dXJuWyJwcmUiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxlKSxbImNvZGUiLHtjbGFzczpzLmF0dHJzLmxhbmd1YWdlP3RoaXMub3B0aW9ucy5sYW5ndWFnZUNsYXNzUHJlZml4K3MuYXR0cnMubGFuZ3VhZ2U6bnVsbH0sMF1dfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRDb2RlQmxvY2s6aShzPT4oe2NvbW1hbmRzOmV9KT0+ZS5zZXROb2RlKHRoaXMubmFtZSxzKSwic2V0Q29kZUJsb2NrIiksdG9nZ2xlQ29kZUJsb2NrOmkocz0+KHtjb21tYW5kczplfSk9PmUudG9nZ2xlTm9kZSh0aGlzLm5hbWUsInBhcmFncmFwaCIscyksInRvZ2dsZUNvZGVCbG9jayIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1BbHQtYyI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQ29kZUJsb2NrKCksIk1vZC1BbHQtYyIpLEJhY2tzcGFjZTppKCgpPT57bGV0e2VtcHR5OnMsJGFuY2hvcjplfT10aGlzLmVkaXRvci5zdGF0ZS5zZWxlY3Rpb24sdD1lLnBvcz09PTE7cmV0dXJuIXN8fGUucGFyZW50LnR5cGUubmFtZSE9PXRoaXMubmFtZT8hMTp0fHwhZS5wYXJlbnQudGV4dENvbnRlbnQubGVuZ3RoP3RoaXMuZWRpdG9yLmNvbW1hbmRzLmNsZWFyTm9kZXMoKTohMX0sIkJhY2tzcGFjZSIpLEVudGVyOmkoKHtlZGl0b3I6c30pPT57aWYoIXRoaXMub3B0aW9ucy5leGl0T25UcmlwbGVFbnRlcilyZXR1cm4hMTtsZXR7c3RhdGU6ZX09cyx7c2VsZWN0aW9uOnR9PWUseyRmcm9tOmEsZW1wdHk6cn09dDtpZighcnx8YS5wYXJlbnQudHlwZSE9PXRoaXMudHlwZSlyZXR1cm4hMTtsZXQgbj1hLnBhcmVudE9mZnNldD09PWEucGFyZW50Lm5vZGVTaXplLTIsbz1hLnBhcmVudC50ZXh0Q29udGVudC5lbmRzV2l0aChgCgpgKTtyZXR1cm4hbnx8IW8/ITE6cy5jaGFpbigpLmNvbW1hbmQoKHt0cjpsfSk9PihsLmRlbGV0ZShhLnBvcy0yLGEucG9zKSwhMCkpLmV4aXRDb2RlKCkucnVuKCl9LCJFbnRlciIpLEFycm93RG93bjppKCh7ZWRpdG9yOnN9KT0+e2lmKCF0aGlzLm9wdGlvbnMuZXhpdE9uQXJyb3dEb3duKXJldHVybiExO2xldHtzdGF0ZTplfT1zLHtzZWxlY3Rpb246dCxkb2M6YX09ZSx7JGZyb206cixlbXB0eTpufT10O2lmKCFufHxyLnBhcmVudC50eXBlIT09dGhpcy50eXBlfHwhKHIucGFyZW50T2Zmc2V0PT09ci5wYXJlbnQubm9kZVNpemUtMikpcmV0dXJuITE7bGV0IGw9ci5hZnRlcigpO3JldHVybiBsPT09dm9pZCAwPyExOmEubm9kZUF0KGwpP3MuY29tbWFuZHMuY29tbWFuZCgoe3RyOmR9KT0+KGQuc2V0U2VsZWN0aW9uKFF0Lm5lYXIoYS5yZXNvbHZlKGwpKSksITApKTpzLmNvbW1hbmRzLmV4aXRDb2RlKCl9LCJBcnJvd0Rvd24iKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bdWcoe2ZpbmQ6czRhLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6aShzPT4oe2xhbmd1YWdlOnNbMV19KSwiZ2V0QXR0cmlidXRlcyIpfSksdWcoe2ZpbmQ6aTRhLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6aShzPT4oe2xhbmd1YWdlOnNbMV19KSwiZ2V0QXR0cmlidXRlcyIpfSldfSxhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJjb2RlQmxvY2tWU0NvZGVIYW5kbGVyIikscHJvcHM6e2hhbmRsZVBhc3RlOmkoKHMsZSk9PntpZighZS5jbGlwYm9hcmREYXRhfHx0aGlzLmVkaXRvci5pc0FjdGl2ZSh0aGlzLnR5cGUubmFtZSkpcmV0dXJuITE7bGV0IHQ9ZS5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvcGxhaW4iKSxhPWUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ2c2NvZGUtZWRpdG9yLWRhdGEiKSxyPWE/SlNPTi5wYXJzZShhKTp2b2lkIDAsbj1yPy5tb2RlO2lmKCF0fHwhbilyZXR1cm4hMTtsZXR7dHI6byxzY2hlbWE6bH09cy5zdGF0ZSxwPWwudGV4dCh0LnJlcGxhY2UoL1xyXG4/L2csYApgKSk7cmV0dXJuIG8ucmVwbGFjZVNlbGVjdGlvbldpdGgodGhpcy50eXBlLmNyZWF0ZSh7bGFuZ3VhZ2U6bn0scCkpLG8uc2VsZWN0aW9uLiRmcm9tLnBhcmVudC50eXBlIT09dGhpcy50eXBlJiZvLnNldFNlbGVjdGlvbihKdC5uZWFyKG8uZG9jLnJlc29sdmUoTWF0aC5tYXgoMCxvLnNlbGVjdGlvbi5mcm9tLTIpKSkpLG8uc2V0TWV0YSgicGFzdGUiLCEwKSxzLmRpc3BhdGNoKG8pLCEwfSwiaGFuZGxlUGFzdGUiKX19KV19fSl9KTt2YXIgS2xlLG80YT1nKCgpPT57aWkoKTtLbGU9c2kuY3JlYXRlKHtuYW1lOiJkb2MiLHRvcE5vZGU6ITAsY29udGVudDoiYmxvY2srIn0pfSk7ZnVuY3Rpb24gWGF0KHM9e30pe3JldHVybiBuZXcgWXMoe3ZpZXcoZSl7cmV0dXJuIG5ldyBaYXQoZSxzKX19KX12YXIgWmF0LG40YT1nKCgpPT57cnUoKTt6aCgpO2koWGF0LCJkcm9wQ3Vyc29yIik7WmF0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkRyb3BDdXJzb3JWaWV3Iil9Y29uc3RydWN0b3IoZSx0KXt2YXIgYTt0aGlzLmVkaXRvclZpZXc9ZSx0aGlzLmN1cnNvclBvcz1udWxsLHRoaXMuZWxlbWVudD1udWxsLHRoaXMudGltZW91dD0tMSx0aGlzLndpZHRoPShhPXQud2lkdGgpIT09bnVsbCYmYSE9PXZvaWQgMD9hOjEsdGhpcy5jb2xvcj10LmNvbG9yPT09ITE/dm9pZCAwOnQuY29sb3J8fCJibGFjayIsdGhpcy5jbGFzcz10LmNsYXNzLHRoaXMuaGFuZGxlcnM9WyJkcmFnb3ZlciIsImRyYWdlbmQiLCJkcm9wIiwiZHJhZ2xlYXZlIl0ubWFwKHI9PntsZXQgbj1pKG89Pnt0aGlzW3JdKG8pfSwiaGFuZGxlciIpO3JldHVybiBlLmRvbS5hZGRFdmVudExpc3RlbmVyKHIsbikse25hbWU6cixoYW5kbGVyOm59fSl9ZGVzdHJveSgpe3RoaXMuaGFuZGxlcnMuZm9yRWFjaCgoe25hbWU6ZSxoYW5kbGVyOnR9KT0+dGhpcy5lZGl0b3JWaWV3LmRvbS5yZW1vdmVFdmVudExpc3RlbmVyKGUsdCkpfXVwZGF0ZShlLHQpe3RoaXMuY3Vyc29yUG9zIT1udWxsJiZ0LmRvYyE9ZS5zdGF0ZS5kb2MmJih0aGlzLmN1cnNvclBvcz5lLnN0YXRlLmRvYy5jb250ZW50LnNpemU/dGhpcy5zZXRDdXJzb3IobnVsbCk6dGhpcy51cGRhdGVPdmVybGF5KCkpfXNldEN1cnNvcihlKXtlIT10aGlzLmN1cnNvclBvcyYmKHRoaXMuY3Vyc29yUG9zPWUsZT09bnVsbD8odGhpcy5lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KSx0aGlzLmVsZW1lbnQ9bnVsbCk6dGhpcy51cGRhdGVPdmVybGF5KCkpfXVwZGF0ZU92ZXJsYXkoKXtsZXQgZT10aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLnJlc29sdmUodGhpcy5jdXJzb3JQb3MpLHQ9IWUucGFyZW50LmlubGluZUNvbnRlbnQsYSxyPXRoaXMuZWRpdG9yVmlldy5kb20sbj1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89bi53aWR0aC9yLm9mZnNldFdpZHRoLGw9bi5oZWlnaHQvci5vZmZzZXRIZWlnaHQ7aWYodCl7bGV0IGM9ZS5ub2RlQmVmb3JlLGI9ZS5ub2RlQWZ0ZXI7aWYoY3x8Yil7bGV0IHY9dGhpcy5lZGl0b3JWaWV3Lm5vZGVET00odGhpcy5jdXJzb3JQb3MtKGM/Yy5ub2RlU2l6ZTowKSk7aWYodil7bGV0IHg9di5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPWM/eC5ib3R0b206eC50b3A7YyYmYiYmKG09KG0rdGhpcy5lZGl0b3JWaWV3Lm5vZGVET00odGhpcy5jdXJzb3JQb3MpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkvMik7bGV0IGY9dGhpcy53aWR0aC8yKmw7YT17bGVmdDp4LmxlZnQscmlnaHQ6eC5yaWdodCx0b3A6bS1mLGJvdHRvbTptK2Z9fX19aWYoIWEpe2xldCBjPXRoaXMuZWRpdG9yVmlldy5jb29yZHNBdFBvcyh0aGlzLmN1cnNvclBvcyksYj10aGlzLndpZHRoLzIqbzthPXtsZWZ0OmMubGVmdC1iLHJpZ2h0OmMubGVmdCtiLHRvcDpjLnRvcCxib3R0b206Yy5ib3R0b219fWxldCBwPXRoaXMuZWRpdG9yVmlldy5kb20ub2Zmc2V0UGFyZW50O3RoaXMuZWxlbWVudHx8KHRoaXMuZWxlbWVudD1wLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSx0aGlzLmNsYXNzJiYodGhpcy5lbGVtZW50LmNsYXNzTmFtZT10aGlzLmNsYXNzKSx0aGlzLmVsZW1lbnQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiA1MDsgcG9pbnRlci1ldmVudHM6IG5vbmU7Iix0aGlzLmNvbG9yJiYodGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLmNvbG9yKSksdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInByb3NlbWlycm9yLWRyb3BjdXJzb3ItYmxvY2siLHQpLHRoaXMuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJwcm9zZW1pcnJvci1kcm9wY3Vyc29yLWlubGluZSIsIXQpO2xldCBkLHU7aWYoIXB8fHA9PWRvY3VtZW50LmJvZHkmJmdldENvbXB1dGVkU3R5bGUocCkucG9zaXRpb249PSJzdGF0aWMiKWQ9LXBhZ2VYT2Zmc2V0LHU9LXBhZ2VZT2Zmc2V0O2Vsc2V7bGV0IGM9cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPWMud2lkdGgvcC5vZmZzZXRXaWR0aCx2PWMuaGVpZ2h0L3Aub2Zmc2V0SGVpZ2h0O2Q9Yy5sZWZ0LXAuc2Nyb2xsTGVmdCpiLHU9Yy50b3AtcC5zY3JvbGxUb3Aqdn10aGlzLmVsZW1lbnQuc3R5bGUubGVmdD0oYS5sZWZ0LWQpL28rInB4Iix0aGlzLmVsZW1lbnQuc3R5bGUudG9wPShhLnRvcC11KS9sKyJweCIsdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoPShhLnJpZ2h0LWEubGVmdCkvbysicHgiLHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQ9KGEuYm90dG9tLWEudG9wKS9sKyJweCJ9c2NoZWR1bGVSZW1vdmFsKGUpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMudGltZW91dD1zZXRUaW1lb3V0KCgpPT50aGlzLnNldEN1cnNvcihudWxsKSxlKX1kcmFnb3ZlcihlKXtpZighdGhpcy5lZGl0b3JWaWV3LmVkaXRhYmxlKXJldHVybjtsZXQgdD10aGlzLmVkaXRvclZpZXcucG9zQXRDb29yZHMoe2xlZnQ6ZS5jbGllbnRYLHRvcDplLmNsaWVudFl9KSxhPXQmJnQuaW5zaWRlPj0wJiZ0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLm5vZGVBdCh0Lmluc2lkZSkscj1hJiZhLnR5cGUuc3BlYy5kaXNhYmxlRHJvcEN1cnNvcixuPXR5cGVvZiByPT0iZnVuY3Rpb24iP3IodGhpcy5lZGl0b3JWaWV3LHQsZSk6cjtpZih0JiYhbil7bGV0IG89dC5wb3M7aWYodGhpcy5lZGl0b3JWaWV3LmRyYWdnaW5nJiZ0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcuc2xpY2Upe2xldCBsPVZaKHRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2Msbyx0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcuc2xpY2UpO2whPW51bGwmJihvPWwpfXRoaXMuc2V0Q3Vyc29yKG8pLHRoaXMuc2NoZWR1bGVSZW1vdmFsKDVlMyl9fWRyYWdlbmQoKXt0aGlzLnNjaGVkdWxlUmVtb3ZhbCgyMCl9ZHJvcCgpe3RoaXMuc2NoZWR1bGVSZW1vdmFsKDIwKX1kcmFnbGVhdmUoZSl7dGhpcy5lZGl0b3JWaWV3LmRvbS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHx0aGlzLnNldEN1cnNvcihudWxsKX19fSk7dmFyIGw0YT1nKCgpPT57bjRhKCl9KTt2YXIgWWxlLGM0YT1nKCgpPT57aWkoKTtsNGEoKTtZbGU9d2kuY3JlYXRlKHtuYW1lOiJkcm9wQ3Vyc29yIixhZGRPcHRpb25zKCl7cmV0dXJue2NvbG9yOiJjdXJyZW50Q29sb3IiLHdpZHRoOjEsY2xhc3M6dm9pZCAwfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW1hhdCh0aGlzLm9wdGlvbnMpXX19KX0pO2Z1bmN0aW9uIGQ0YShzKXtyZXR1cm4gcy5pc0F0b218fHMuc3BlYy5pc29sYXRpbmd8fHMuc3BlYy5jcmVhdGVHYXBDdXJzb3J9ZnVuY3Rpb24gR1phKHMpe2ZvcihsZXQgZT1zLmRlcHRoO2U+PTA7ZS0tKXtsZXQgdD1zLmluZGV4KGUpLGE9cy5ub2RlKGUpO2lmKHQ9PTApe2lmKGEudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMDtjb250aW51ZX1mb3IobGV0IHI9YS5jaGlsZCh0LTEpOztyPXIubGFzdENoaWxkKXtpZihyLmNoaWxkQ291bnQ9PTAmJiFyLmlubGluZUNvbnRlbnR8fGQ0YShyLnR5cGUpKXJldHVybiEwO2lmKHIuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gS1phKHMpe2ZvcihsZXQgZT1zLmRlcHRoO2U+PTA7ZS0tKXtsZXQgdD1zLmluZGV4QWZ0ZXIoZSksYT1zLm5vZGUoZSk7aWYodD09YS5jaGlsZENvdW50KXtpZihhLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITA7Y29udGludWV9Zm9yKGxldCByPWEuY2hpbGQodCk7O3I9ci5maXJzdENoaWxkKXtpZihyLmNoaWxkQ291bnQ9PTAmJiFyLmlubGluZUNvbnRlbnR8fGQ0YShyLnR5cGUpKXJldHVybiEwO2lmKHIuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gSmF0KCl7cmV0dXJuIG5ldyBZcyh7cHJvcHM6e2RlY29yYXRpb25zOlFaYSxjcmVhdGVTZWxlY3Rpb25CZXR3ZWVuKHMsZSx0KXtyZXR1cm4gZS5wb3M9PXQucG9zJiZMby52YWxpZCh0KT9uZXcgTG8odCk6bnVsbH0saGFuZGxlQ2xpY2s6WlphLGhhbmRsZUtleURvd246WVphLGhhbmRsZURPTUV2ZW50czp7YmVmb3JlaW5wdXQ6WFphfX19KX1mdW5jdGlvbiBabGUocyxlKXtsZXQgdD1zPT0idmVydCI/ZT4wPyJkb3duIjoidXAiOmU+MD8icmlnaHQiOiJsZWZ0IjtyZXR1cm4gZnVuY3Rpb24oYSxyLG4pe2xldCBvPWEuc2VsZWN0aW9uLGw9ZT4wP28uJHRvOm8uJGZyb20scD1vLmVtcHR5O2lmKG8gaW5zdGFuY2VvZiBKdCl7aWYoIW4uZW5kT2ZUZXh0YmxvY2sodCl8fGwuZGVwdGg9PTApcmV0dXJuITE7cD0hMSxsPWEuZG9jLnJlc29sdmUoZT4wP2wuYWZ0ZXIoKTpsLmJlZm9yZSgpKX1sZXQgZD1Mby5maW5kR2FwQ3Vyc29yRnJvbShsLGUscCk7cmV0dXJuIGQ/KHImJnIoYS50ci5zZXRTZWxlY3Rpb24obmV3IExvKGQpKSksITApOiExfX1mdW5jdGlvbiBaWmEocyxlLHQpe2lmKCFzfHwhcy5lZGl0YWJsZSlyZXR1cm4hMTtsZXQgYT1zLnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCFMby52YWxpZChhKSlyZXR1cm4hMTtsZXQgcj1zLnBvc0F0Q29vcmRzKHtsZWZ0OnQuY2xpZW50WCx0b3A6dC5jbGllbnRZfSk7cmV0dXJuIHImJnIuaW5zaWRlPi0xJiZGdC5pc1NlbGVjdGFibGUocy5zdGF0ZS5kb2Mubm9kZUF0KHIuaW5zaWRlKSk/ITE6KHMuZGlzcGF0Y2gocy5zdGF0ZS50ci5zZXRTZWxlY3Rpb24obmV3IExvKGEpKSksITApfWZ1bmN0aW9uIFhaYShzLGUpe2lmKGUuaW5wdXRUeXBlIT0iaW5zZXJ0Q29tcG9zaXRpb25UZXh0Inx8IShzLnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIExvKSlyZXR1cm4hMTtsZXR7JGZyb206dH09cy5zdGF0ZS5zZWxlY3Rpb24sYT10LnBhcmVudC5jb250ZW50TWF0Y2hBdCh0LmluZGV4KCkpLmZpbmRXcmFwcGluZyhzLnN0YXRlLnNjaGVtYS5ub2Rlcy50ZXh0KTtpZighYSlyZXR1cm4hMTtsZXQgcj1ydC5lbXB0eTtmb3IobGV0IG89YS5sZW5ndGgtMTtvPj0wO28tLSlyPXJ0LmZyb20oYVtvXS5jcmVhdGVBbmRGaWxsKG51bGwscikpO2xldCBuPXMuc3RhdGUudHIucmVwbGFjZSh0LnBvcyx0LnBvcyxuZXcgX3QociwwLDApKTtyZXR1cm4gbi5zZXRTZWxlY3Rpb24oSnQubmVhcihuLmRvYy5yZXNvbHZlKHQucG9zKzEpKSkscy5kaXNwYXRjaChuKSwhMX1mdW5jdGlvbiBRWmEocyl7aWYoIShzLnNlbGVjdGlvbiBpbnN0YW5jZW9mIExvKSlyZXR1cm4gbnVsbDtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5jbGFzc05hbWU9IlByb3NlTWlycm9yLWdhcGN1cnNvciIsTG4uY3JlYXRlKHMuZG9jLFt0Mi53aWRnZXQocy5zZWxlY3Rpb24uaGVhZCxlLHtrZXk6ImdhcGN1cnNvciJ9KV0pfXZhciBMbyxRYXQsWVphLHU0YT1nKCgpPT57ZGF0KCk7cnUoKTtfaCgpO25hdCgpO0xvPWNsYXNzIHMgZXh0ZW5kcyBRdHtzdGF0aWN7aSh0aGlzLCJHYXBDdXJzb3IiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlLGUpfW1hcChlLHQpe2xldCBhPWUucmVzb2x2ZSh0Lm1hcCh0aGlzLmhlYWQpKTtyZXR1cm4gcy52YWxpZChhKT9uZXcgcyhhKTpRdC5uZWFyKGEpfWNvbnRlbnQoKXtyZXR1cm4gX3QuZW1wdHl9ZXEoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBzJiZlLmhlYWQ9PXRoaXMuaGVhZH10b0pTT04oKXtyZXR1cm57dHlwZToiZ2FwY3Vyc29yIixwb3M6dGhpcy5oZWFkfX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5wb3MhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBHYXBDdXJzb3IuZnJvbUpTT04iKTtyZXR1cm4gbmV3IHMoZS5yZXNvbHZlKHQucG9zKSl9Z2V0Qm9va21hcmsoKXtyZXR1cm4gbmV3IFFhdCh0aGlzLmFuY2hvcil9c3RhdGljIHZhbGlkKGUpe2xldCB0PWUucGFyZW50O2lmKHQuaW5saW5lQ29udGVudHx8IUdaYShlKXx8IUtaYShlKSlyZXR1cm4hMTtsZXQgYT10LnR5cGUuc3BlYy5hbGxvd0dhcEN1cnNvcjtpZihhIT1udWxsKXJldHVybiBhO2xldCByPXQuY29udGVudE1hdGNoQXQoZS5pbmRleCgpKS5kZWZhdWx0VHlwZTtyZXR1cm4gciYmci5pc1RleHRibG9ja31zdGF0aWMgZmluZEdhcEN1cnNvckZyb20oZSx0LGE9ITEpe2U6Zm9yKDs7KXtpZighYSYmcy52YWxpZChlKSlyZXR1cm4gZTtsZXQgcj1lLnBvcyxuPW51bGw7Zm9yKGxldCBvPWUuZGVwdGg7O28tLSl7bGV0IGw9ZS5ub2RlKG8pO2lmKHQ+MD9lLmluZGV4QWZ0ZXIobyk8bC5jaGlsZENvdW50OmUuaW5kZXgobyk+MCl7bj1sLmNoaWxkKHQ+MD9lLmluZGV4QWZ0ZXIobyk6ZS5pbmRleChvKS0xKTticmVha31lbHNlIGlmKG89PTApcmV0dXJuIG51bGw7cis9dDtsZXQgcD1lLmRvYy5yZXNvbHZlKHIpO2lmKHMudmFsaWQocCkpcmV0dXJuIHB9Zm9yKDs7KXtsZXQgbz10PjA/bi5maXJzdENoaWxkOm4ubGFzdENoaWxkO2lmKCFvKXtpZihuLmlzQXRvbSYmIW4uaXNUZXh0JiYhRnQuaXNTZWxlY3RhYmxlKG4pKXtlPWUuZG9jLnJlc29sdmUocituLm5vZGVTaXplKnQpLGE9ITE7Y29udGludWUgZX1icmVha31uPW8scis9dDtsZXQgbD1lLmRvYy5yZXNvbHZlKHIpO2lmKHMudmFsaWQobCkpcmV0dXJuIGx9cmV0dXJuIG51bGx9fX07TG8ucHJvdG90eXBlLnZpc2libGU9ITEsTG8uZmluZEZyb209TG8uZmluZEdhcEN1cnNvckZyb20sUXQuanNvbklEKCJnYXBjdXJzb3IiLExvKTtRYXQ9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJHYXBCb29rbWFyayIpfWNvbnN0cnVjdG9yKGUpe3RoaXMucG9zPWV9bWFwKGUpe3JldHVybiBuZXcgcyhlLm1hcCh0aGlzLnBvcykpfXJlc29sdmUoZSl7bGV0IHQ9ZS5yZXNvbHZlKHRoaXMucG9zKTtyZXR1cm4gTG8udmFsaWQodCk/bmV3IExvKHQpOlF0Lm5lYXIodCl9fTtpKGQ0YSwibmVlZHNHYXAiKTtpKEdaYSwiY2xvc2VkQmVmb3JlIik7aShLWmEsImNsb3NlZEFmdGVyIik7aShKYXQsImdhcEN1cnNvciIpO1laYT1ybGUoe0Fycm93TGVmdDpabGUoImhvcml6IiwtMSksQXJyb3dSaWdodDpabGUoImhvcml6IiwxKSxBcnJvd1VwOlpsZSgidmVydCIsLTEpLEFycm93RG93bjpabGUoInZlcnQiLDEpfSk7aShabGUsImFycm93Iik7aShaWmEsImhhbmRsZUNsaWNrIik7aShYWmEsImJlZm9yZWlucHV0Iik7aShRWmEsImRyYXdHYXBDdXJzb3IiKX0pO3ZhciBwNGE9ZygoKT0+e3U0YSgpfSk7dmFyIFhsZSxoNGE9ZygoKT0+e2lpKCk7cDRhKCk7WGxlPXdpLmNyZWF0ZSh7bmFtZToiZ2FwQ3Vyc29yIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bSmF0KCldfSxleHRlbmROb2RlU2NoZW1hKHMpe3ZhciBlO2xldCB0PXtuYW1lOnMubmFtZSxvcHRpb25zOnMub3B0aW9ucyxzdG9yYWdlOnMuc3RvcmFnZX07cmV0dXJue2FsbG93R2FwQ3Vyc29yOihlPWNhKER0KHMsImFsbG93R2FwQ3Vyc29yIix0KSkpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm51bGx9fX0pfSk7dmFyIFFsZSxmNGE9ZygoKT0+e2lpKCk7UWxlPXNpLmNyZWF0ZSh7bmFtZToiaGFyZEJyZWFrIixhZGRPcHRpb25zKCl7cmV0dXJue2tlZXBNYXJrczohMCxIVE1MQXR0cmlidXRlczp7fX19LGlubGluZTohMCxncm91cDoiaW5saW5lIixzZWxlY3RhYmxlOiExLGxpbmVicmVha1JlcGxhY2VtZW50OiEwLHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJiciJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6c30pe3JldHVyblsiYnIiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxzKV19LHJlbmRlclRleHQoKXtyZXR1cm5gCmB9LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEhhcmRCcmVhazppKCgpPT4oe2NvbW1hbmRzOnMsY2hhaW46ZSxzdGF0ZTp0LGVkaXRvcjphfSk9PnMuZmlyc3QoWygpPT5zLmV4aXRDb2RlKCksKCk9PnMuY29tbWFuZCgoKT0+e2xldHtzZWxlY3Rpb246cixzdG9yZWRNYXJrczpufT10O2lmKHIuJGZyb20ucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0e2tlZXBNYXJrczpvfT10aGlzLm9wdGlvbnMse3NwbGl0dGFibGVNYXJrczpsfT1hLmV4dGVuc2lvbk1hbmFnZXIscD1ufHxyLiR0by5wYXJlbnRPZmZzZXQmJnIuJGZyb20ubWFya3MoKTtyZXR1cm4gZSgpLmluc2VydENvbnRlbnQoe3R5cGU6dGhpcy5uYW1lfSkuY29tbWFuZCgoe3RyOmQsZGlzcGF0Y2g6dX0pPT57aWYodSYmcCYmbyl7bGV0IGM9cC5maWx0ZXIoYj0+bC5pbmNsdWRlcyhiLnR5cGUubmFtZSkpO2QuZW5zdXJlTWFya3MoYyl9cmV0dXJuITB9KS5ydW4oKX0pXSksInNldEhhcmRCcmVhayIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIk1vZC1FbnRlciIpLCJTaGlmdC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIlNoaWZ0LUVudGVyIil9fX0pfSk7dmFyIEpsZSxtNGE9ZygoKT0+e2lpKCk7SmxlPXNpLmNyZWF0ZSh7bmFtZToiaGVhZGluZyIsYWRkT3B0aW9ucygpe3JldHVybntsZXZlbHM6WzEsMiwzLDQsNSw2XSxIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIsZGVmaW5pbmc6ITAsYWRkQXR0cmlidXRlcygpe3JldHVybntsZXZlbDp7ZGVmYXVsdDoxLHJlbmRlcmVkOiExfX19LHBhcnNlSFRNTCgpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcChzPT4oe3RhZzpgaCR7c31gLGF0dHJzOntsZXZlbDpzfX0pKX0scmVuZGVySFRNTCh7bm9kZTpzLEhUTUxBdHRyaWJ1dGVzOmV9KXtyZXR1cm5bYGgke3RoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXMocy5hdHRycy5sZXZlbCk/cy5hdHRycy5sZXZlbDp0aGlzLm9wdGlvbnMubGV2ZWxzWzBdfWAsYXModGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGUpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRIZWFkaW5nOmkocz0+KHtjb21tYW5kczplfSk9PnRoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXMocy5sZXZlbCk/ZS5zZXROb2RlKHRoaXMubmFtZSxzKTohMSwic2V0SGVhZGluZyIpLHRvZ2dsZUhlYWRpbmc6aShzPT4oe2NvbW1hbmRzOmV9KT0+dGhpcy5vcHRpb25zLmxldmVscy5pbmNsdWRlcyhzLmxldmVsKT9lLnRvZ2dsZU5vZGUodGhpcy5uYW1lLCJwYXJhZ3JhcGgiLHMpOiExLCJ0b2dnbGVIZWFkaW5nIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLnJlZHVjZSgocyxlKT0+KHsuLi5zLFtgTW9kLUFsdC0ke2V9YF06KCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUhlYWRpbmcoe2xldmVsOmV9KX0pLHt9KX0sYWRkSW5wdXRSdWxlcygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcChzPT51Zyh7ZmluZDpuZXcgUmVnRXhwKGBeKCN7JHtNYXRoLm1pbiguLi50aGlzLm9wdGlvbnMubGV2ZWxzKX0sJHtzfX0pXFxzJGApLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6e2xldmVsOnN9fSkpfX0pfSk7dmFyIGVjZSxFbyxnNGEsSlphLGVzdCxiNGE9ZygoKT0+e2VjZT0yMDAsRW89aShmdW5jdGlvbigpe30sIlJvcGVTZXF1ZW5jZSIpO0VvLnByb3RvdHlwZS5hcHBlbmQ9aShmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg/KGU9RW8uZnJvbShlKSwhdGhpcy5sZW5ndGgmJmV8fGUubGVuZ3RoPGVjZSYmdGhpcy5sZWFmQXBwZW5kKGUpfHx0aGlzLmxlbmd0aDxlY2UmJmUubGVhZlByZXBlbmQodGhpcyl8fHRoaXMuYXBwZW5kSW5uZXIoZSkpOnRoaXN9LCJhcHBlbmQiKSxFby5wcm90b3R5cGUucHJlcGVuZD1pKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aD9Fby5mcm9tKGUpLmFwcGVuZCh0aGlzKTp0aGlzfSwicHJlcGVuZCIpLEVvLnByb3RvdHlwZS5hcHBlbmRJbm5lcj1pKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgSlphKHRoaXMsZSl9LCJhcHBlbmRJbm5lciIpLEVvLnByb3RvdHlwZS5zbGljZT1pKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLHQ9PT12b2lkIDAmJih0PXRoaXMubGVuZ3RoKSxlPj10P0VvLmVtcHR5OnRoaXMuc2xpY2VJbm5lcihNYXRoLm1heCgwLGUpLE1hdGgubWluKHRoaXMubGVuZ3RoLHQpKX0sInNsaWNlIiksRW8ucHJvdG90eXBlLmdldD1pKGZ1bmN0aW9uKGUpe2lmKCEoZTwwfHxlPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZ2V0SW5uZXIoZSl9LCJnZXQiKSxFby5wcm90b3R5cGUuZm9yRWFjaD1pKGZ1bmN0aW9uKGUsdCxhKXt0PT09dm9pZCAwJiYodD0wKSxhPT09dm9pZCAwJiYoYT10aGlzLmxlbmd0aCksdDw9YT90aGlzLmZvckVhY2hJbm5lcihlLHQsYSwwKTp0aGlzLmZvckVhY2hJbnZlcnRlZElubmVyKGUsdCxhLDApfSwiZm9yRWFjaCIpLEVvLnByb3RvdHlwZS5tYXA9aShmdW5jdGlvbihlLHQsYSl7dD09PXZvaWQgMCYmKHQ9MCksYT09PXZvaWQgMCYmKGE9dGhpcy5sZW5ndGgpO3ZhciByPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24obixvKXtyZXR1cm4gci5wdXNoKGUobixvKSl9LHQsYSkscn0sIm1hcCIpLEVvLmZyb209aShmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVvP2U6ZSYmZS5sZW5ndGg/bmV3IGc0YShlKTpFby5lbXB0eX0sImZyb20iKTtnNGE9KGZ1bmN0aW9uKHMpe2Z1bmN0aW9uIGUoYSl7cy5jYWxsKHRoaXMpLHRoaXMudmFsdWVzPWF9aShlLCJMZWFmIikscyYmKGUuX19wcm90b19fPXMpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUocyYmcy5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHQ9e2xlbmd0aDp7Y29uZmlndXJhYmxlOiEwfSxkZXB0aDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIGUucHJvdG90eXBlLmZsYXR0ZW49aShmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlc30sImZsYXR0ZW4iKSxlLnByb3RvdHlwZS5zbGljZUlubmVyPWkoZnVuY3Rpb24ocixuKXtyZXR1cm4gcj09MCYmbj09dGhpcy5sZW5ndGg/dGhpczpuZXcgZSh0aGlzLnZhbHVlcy5zbGljZShyLG4pKX0sInNsaWNlSW5uZXIiKSxlLnByb3RvdHlwZS5nZXRJbm5lcj1pKGZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLnZhbHVlc1tyXX0sImdldElubmVyIiksZS5wcm90b3R5cGUuZm9yRWFjaElubmVyPWkoZnVuY3Rpb24ocixuLG8sbCl7Zm9yKHZhciBwPW47cDxvO3ArKylpZihyKHRoaXMudmFsdWVzW3BdLGwrcCk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbnZlcnRlZElubmVyPWkoZnVuY3Rpb24ocixuLG8sbCl7Zm9yKHZhciBwPW4tMTtwPj1vO3AtLSlpZihyKHRoaXMudmFsdWVzW3BdLGwrcCk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbnZlcnRlZElubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1pKGZ1bmN0aW9uKHIpe2lmKHRoaXMubGVuZ3RoK3IubGVuZ3RoPD1lY2UpcmV0dXJuIG5ldyBlKHRoaXMudmFsdWVzLmNvbmNhdChyLmZsYXR0ZW4oKSkpfSwibGVhZkFwcGVuZCIpLGUucHJvdG90eXBlLmxlYWZQcmVwZW5kPWkoZnVuY3Rpb24ocil7aWYodGhpcy5sZW5ndGgrci5sZW5ndGg8PWVjZSlyZXR1cm4gbmV3IGUoci5mbGF0dGVuKCkuY29uY2F0KHRoaXMudmFsdWVzKSl9LCJsZWFmUHJlcGVuZCIpLHQubGVuZ3RoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGh9LHQuZGVwdGguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDB9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHQpLGV9KShFbyk7RW8uZW1wdHk9bmV3IGc0YShbXSk7SlphPShmdW5jdGlvbihzKXtmdW5jdGlvbiBlKHQsYSl7cy5jYWxsKHRoaXMpLHRoaXMubGVmdD10LHRoaXMucmlnaHQ9YSx0aGlzLmxlbmd0aD10Lmxlbmd0aCthLmxlbmd0aCx0aGlzLmRlcHRoPU1hdGgubWF4KHQuZGVwdGgsYS5kZXB0aCkrMX1yZXR1cm4gaShlLCJBcHBlbmQiKSxzJiYoZS5fX3Byb3RvX189cyksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShzJiZzLnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5mbGF0dGVuPWkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZWZ0LmZsYXR0ZW4oKS5jb25jYXQodGhpcy5yaWdodC5mbGF0dGVuKCkpfSwiZmxhdHRlbiIpLGUucHJvdG90eXBlLmdldElubmVyPWkoZnVuY3Rpb24oYSl7cmV0dXJuIGE8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuZ2V0KGEpOnRoaXMucmlnaHQuZ2V0KGEtdGhpcy5sZWZ0Lmxlbmd0aCl9LCJnZXRJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbm5lcj1pKGZ1bmN0aW9uKGEscixuLG8pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYocjxsJiZ0aGlzLmxlZnQuZm9yRWFjaElubmVyKGEscixNYXRoLm1pbihuLGwpLG8pPT09ITF8fG4+bCYmdGhpcy5yaWdodC5mb3JFYWNoSW5uZXIoYSxNYXRoLm1heChyLWwsMCksTWF0aC5taW4odGhpcy5sZW5ndGgsbiktbCxvK2wpPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW5uZXIiKSxlLnByb3RvdHlwZS5mb3JFYWNoSW52ZXJ0ZWRJbm5lcj1pKGZ1bmN0aW9uKGEscixuLG8pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYocj5sJiZ0aGlzLnJpZ2h0LmZvckVhY2hJbnZlcnRlZElubmVyKGEsci1sLE1hdGgubWF4KG4sbCktbCxvK2wpPT09ITF8fG48bCYmdGhpcy5sZWZ0LmZvckVhY2hJbnZlcnRlZElubmVyKGEsTWF0aC5taW4ocixsKSxuLG8pPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW52ZXJ0ZWRJbm5lciIpLGUucHJvdG90eXBlLnNsaWNlSW5uZXI9aShmdW5jdGlvbihhLHIpe2lmKGE9PTAmJnI9PXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBuPXRoaXMubGVmdC5sZW5ndGg7cmV0dXJuIHI8PW4/dGhpcy5sZWZ0LnNsaWNlKGEscik6YT49bj90aGlzLnJpZ2h0LnNsaWNlKGEtbixyLW4pOnRoaXMubGVmdC5zbGljZShhLG4pLmFwcGVuZCh0aGlzLnJpZ2h0LnNsaWNlKDAsci1uKSl9LCJzbGljZUlubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1pKGZ1bmN0aW9uKGEpe3ZhciByPXRoaXMucmlnaHQubGVhZkFwcGVuZChhKTtpZihyKXJldHVybiBuZXcgZSh0aGlzLmxlZnQscil9LCJsZWFmQXBwZW5kIiksZS5wcm90b3R5cGUubGVhZlByZXBlbmQ9aShmdW5jdGlvbihhKXt2YXIgcj10aGlzLmxlZnQubGVhZlByZXBlbmQoYSk7aWYocilyZXR1cm4gbmV3IGUocix0aGlzLnJpZ2h0KX0sImxlYWZQcmVwZW5kIiksZS5wcm90b3R5cGUuYXBwZW5kSW5uZXI9aShmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sZWZ0LmRlcHRoPj1NYXRoLm1heCh0aGlzLnJpZ2h0LmRlcHRoLGEuZGVwdGgpKzE/bmV3IGUodGhpcy5sZWZ0LG5ldyBlKHRoaXMucmlnaHQsYSkpOm5ldyBlKHRoaXMsYSl9LCJhcHBlbmRJbm5lciIpLGV9KShFbyksZXN0PUVvfSk7ZnVuY3Rpb24gdFhhKHMsZSl7bGV0IHQ7cmV0dXJuIHMuZm9yRWFjaCgoYSxyKT0+e2lmKGEuc2VsZWN0aW9uJiZlLS09PTApcmV0dXJuIHQ9ciwhMX0pLHMuc2xpY2UodCl9ZnVuY3Rpb24gc1hhKHMsZSx0LGEpe2xldCByPXQuZ2V0TWV0YShIZCksbjtpZihyKXJldHVybiByLmhpc3RvcnlTdGF0ZTt0LmdldE1ldGEoeTRhKSYmKHM9bmV3IEJkKHMuZG9uZSxzLnVuZG9uZSxudWxsLDAsLTEpKTtsZXQgbz10LmdldE1ldGEoImFwcGVuZGVkVHJhbnNhY3Rpb24iKTtpZih0LnN0ZXBzLmxlbmd0aD09MClyZXR1cm4gcztpZihvJiZvLmdldE1ldGEoSGQpKXJldHVybiBvLmdldE1ldGEoSGQpLnJlZG8/bmV3IEJkKHMuZG9uZS5hZGRUcmFuc2Zvcm0odCx2b2lkIDAsYSx0Y2UoZSkpLHMudW5kb25lLHY0YSh0Lm1hcHBpbmcubWFwcykscy5wcmV2VGltZSxzLnByZXZDb21wb3NpdGlvbik6bmV3IEJkKHMuZG9uZSxzLnVuZG9uZS5hZGRUcmFuc2Zvcm0odCx2b2lkIDAsYSx0Y2UoZSkpLG51bGwscy5wcmV2VGltZSxzLnByZXZDb21wb3NpdGlvbik7aWYodC5nZXRNZXRhKCJhZGRUb0hpc3RvcnkiKSE9PSExJiYhKG8mJm8uZ2V0TWV0YSgiYWRkVG9IaXN0b3J5Iik9PT0hMSkpe2xldCBsPXQuZ2V0TWV0YSgiY29tcG9zaXRpb24iKSxwPXMucHJldlRpbWU9PTB8fCFvJiZzLnByZXZDb21wb3NpdGlvbiE9bCYmKHMucHJldlRpbWU8KHQudGltZXx8MCktYS5uZXdHcm91cERlbGF5fHwhaVhhKHQscy5wcmV2UmFuZ2VzKSksZD1vP3RzdChzLnByZXZSYW5nZXMsdC5tYXBwaW5nKTp2NGEodC5tYXBwaW5nLm1hcHMpO3JldHVybiBuZXcgQmQocy5kb25lLmFkZFRyYW5zZm9ybSh0LHA/ZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKTp2b2lkIDAsYSx0Y2UoZSkpLHBnLmVtcHR5LGQsdC50aW1lLGw/P3MucHJldkNvbXBvc2l0aW9uKX1lbHNlIHJldHVybihuPXQuZ2V0TWV0YSgicmViYXNlZCIpKT9uZXcgQmQocy5kb25lLnJlYmFzZWQodCxuKSxzLnVuZG9uZS5yZWJhc2VkKHQsbiksdHN0KHMucHJldlJhbmdlcyx0Lm1hcHBpbmcpLHMucHJldlRpbWUscy5wcmV2Q29tcG9zaXRpb24pOm5ldyBCZChzLmRvbmUuYWRkTWFwcyh0Lm1hcHBpbmcubWFwcykscy51bmRvbmUuYWRkTWFwcyh0Lm1hcHBpbmcubWFwcyksdHN0KHMucHJldlJhbmdlcyx0Lm1hcHBpbmcpLHMucHJldlRpbWUscy5wcmV2Q29tcG9zaXRpb24pfWZ1bmN0aW9uIGlYYShzLGUpe2lmKCFlKXJldHVybiExO2lmKCFzLmRvY0NoYW5nZWQpcmV0dXJuITA7bGV0IHQ9ITE7cmV0dXJuIHMubWFwcGluZy5tYXBzWzBdLmZvckVhY2goKGEscik9Pntmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rPTIpYTw9ZVtuKzFdJiZyPj1lW25dJiYodD0hMCl9KSx0fWZ1bmN0aW9uIHY0YShzKXtsZXQgZT1bXTtmb3IobGV0IHQ9cy5sZW5ndGgtMTt0Pj0wJiZlLmxlbmd0aD09MDt0LS0pc1t0XS5mb3JFYWNoKChhLHIsbixvKT0+ZS5wdXNoKG4sbykpO3JldHVybiBlfWZ1bmN0aW9uIHRzdChzLGUpe2lmKCFzKXJldHVybiBudWxsO2xldCB0PVtdO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSs9Mil7bGV0IHI9ZS5tYXAoc1thXSwxKSxuPWUubWFwKHNbYSsxXSwtMSk7cjw9biYmdC5wdXNoKHIsbil9cmV0dXJuIHR9ZnVuY3Rpb24gclhhKHMsZSx0KXtsZXQgYT10Y2UoZSkscj1IZC5nZXQoZSkuc3BlYy5jb25maWcsbj0odD9zLnVuZG9uZTpzLmRvbmUpLnBvcEV2ZW50KGUsYSk7aWYoIW4pcmV0dXJuIG51bGw7bGV0IG89bi5zZWxlY3Rpb24ucmVzb2x2ZShuLnRyYW5zZm9ybS5kb2MpLGw9KHQ/cy5kb25lOnMudW5kb25lKS5hZGRUcmFuc2Zvcm0obi50cmFuc2Zvcm0sZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKSxyLGEpLHA9bmV3IEJkKHQ/bDpuLnJlbWFpbmluZyx0P24ucmVtYWluaW5nOmwsbnVsbCwwLC0xKTtyZXR1cm4gbi50cmFuc2Zvcm0uc2V0U2VsZWN0aW9uKG8pLnNldE1ldGEoSGQse3JlZG86dCxoaXN0b3J5U3RhdGU6cH0pfWZ1bmN0aW9uIHRjZShzKXtsZXQgZT1zLnBsdWdpbnM7aWYoeDRhIT1lKXthc3Q9ITEseDRhPWU7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS5zcGVjLmhpc3RvcnlQcmVzZXJ2ZUl0ZW1zKXthc3Q9ITA7YnJlYWt9fXJldHVybiBhc3R9ZnVuY3Rpb24gb1hhKHMpe3JldHVybiBzLnNldE1ldGEoeTRhLCEwKX1mdW5jdGlvbiBzc3Qocz17fSl7cmV0dXJuIHM9e2RlcHRoOnMuZGVwdGh8fDEwMCxuZXdHcm91cERlbGF5OnMubmV3R3JvdXBEZWxheXx8NTAwfSxuZXcgWXMoe2tleTpIZCxzdGF0ZTp7aW5pdCgpe3JldHVybiBuZXcgQmQocGcuZW1wdHkscGcuZW1wdHksbnVsbCwwLC0xKX0sYXBwbHkoZSx0LGEpe3JldHVybiBzWGEodCxhLGUscyl9fSxjb25maWc6cyxwcm9wczp7aGFuZGxlRE9NRXZlbnRzOntiZWZvcmVpbnB1dChlLHQpe2xldCBhPXQuaW5wdXRUeXBlLHI9YT09Imhpc3RvcnlVbmRvIj9zY2U6YT09Imhpc3RvcnlSZWRvIj9pY2U6bnVsbDtyZXR1cm4hcnx8IWUuZWRpdGFibGU/ITE6KHQucHJldmVudERlZmF1bHQoKSxyKGUuc3RhdGUsZS5kaXNwYXRjaCkpfX19fSl9ZnVuY3Rpb24gYWNlKHMsZSl7cmV0dXJuKHQsYSk9PntsZXQgcj1IZC5nZXRTdGF0ZSh0KTtpZighcnx8KHM/ci51bmRvbmU6ci5kb25lKS5ldmVudENvdW50PT0wKXJldHVybiExO2lmKGEpe2xldCBuPXJYYShyLHQscyk7biYmYShlP24uc2Nyb2xsSW50b1ZpZXcoKTpuKX1yZXR1cm4hMH19ZnVuY3Rpb24gY1hhKHMpe2xldCBlPUhkLmdldFN0YXRlKHMpO3JldHVybiBlP2UuZG9uZS5ldmVudENvdW50OjB9ZnVuY3Rpb24gZFhhKHMpe2xldCBlPUhkLmdldFN0YXRlKHMpO3JldHVybiBlP2UudW5kb25lLmV2ZW50Q291bnQ6MH1mdW5jdGlvbiB1WGEocyl7cmV0dXJuIHMuZ2V0TWV0YShIZCkhPW51bGx9dmFyIGVYYSxwZyxGZCxCZCxhWGEsYXN0LHg0YSxIZCx5NGEsc2NlLGljZSxuWGEsbFhhLHc0YT1nKCgpPT57YjRhKCk7emgoKTtydSgpO2VYYT01MDAscGc9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJCcmFuY2giKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuaXRlbXM9ZSx0aGlzLmV2ZW50Q291bnQ9dH1wb3BFdmVudChlLHQpe2lmKHRoaXMuZXZlbnRDb3VudD09MClyZXR1cm4gbnVsbDtsZXQgYT10aGlzLml0ZW1zLmxlbmd0aDtmb3IoOzthLS0paWYodGhpcy5pdGVtcy5nZXQoYS0xKS5zZWxlY3Rpb24pey0tYTticmVha31sZXQgcixuO3QmJihyPXRoaXMucmVtYXBwaW5nKGEsdGhpcy5pdGVtcy5sZW5ndGgpLG49ci5tYXBzLmxlbmd0aCk7bGV0IG89ZS50cixsLHAsZD1bXSx1PVtdO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKGMsYik9PntpZighYy5zdGVwKXtyfHwocj10aGlzLnJlbWFwcGluZyhhLGIrMSksbj1yLm1hcHMubGVuZ3RoKSxuLS0sdS5wdXNoKGMpO3JldHVybn1pZihyKXt1LnB1c2gobmV3IEZkKGMubWFwKSk7bGV0IHY9Yy5zdGVwLm1hcChyLnNsaWNlKG4pKSx4O3YmJm8ubWF5YmVTdGVwKHYpLmRvYyYmKHg9by5tYXBwaW5nLm1hcHNbby5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLGQucHVzaChuZXcgRmQoeCx2b2lkIDAsdm9pZCAwLGQubGVuZ3RoK3UubGVuZ3RoKSkpLG4tLSx4JiZyLmFwcGVuZE1hcCh4LG4pfWVsc2Ugby5tYXliZVN0ZXAoYy5zdGVwKTtpZihjLnNlbGVjdGlvbilyZXR1cm4gbD1yP2Muc2VsZWN0aW9uLm1hcChyLnNsaWNlKG4pKTpjLnNlbGVjdGlvbixwPW5ldyBzKHRoaXMuaXRlbXMuc2xpY2UoMCxhKS5hcHBlbmQodS5yZXZlcnNlKCkuY29uY2F0KGQpKSx0aGlzLmV2ZW50Q291bnQtMSksITF9LHRoaXMuaXRlbXMubGVuZ3RoLDApLHtyZW1haW5pbmc6cCx0cmFuc2Zvcm06byxzZWxlY3Rpb246bH19YWRkVHJhbnNmb3JtKGUsdCxhLHIpe2xldCBuPVtdLG89dGhpcy5ldmVudENvdW50LGw9dGhpcy5pdGVtcyxwPSFyJiZsLmxlbmd0aD9sLmdldChsLmxlbmd0aC0xKTpudWxsO2ZvcihsZXQgdT0wO3U8ZS5zdGVwcy5sZW5ndGg7dSsrKXtsZXQgYz1lLnN0ZXBzW3VdLmludmVydChlLmRvY3NbdV0pLGI9bmV3IEZkKGUubWFwcGluZy5tYXBzW3VdLGMsdCksdjsodj1wJiZwLm1lcmdlKGIpKSYmKGI9dix1P24ucG9wKCk6bD1sLnNsaWNlKDAsbC5sZW5ndGgtMSkpLG4ucHVzaChiKSx0JiYobysrLHQ9dm9pZCAwKSxyfHwocD1iKX1sZXQgZD1vLWEuZGVwdGg7cmV0dXJuIGQ+YVhhJiYobD10WGEobCxkKSxvLT1kKSxuZXcgcyhsLmFwcGVuZChuKSxvKX1yZW1hcHBpbmcoZSx0KXtsZXQgYT1uZXcgU3Y7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaCgocixuKT0+e2xldCBvPXIubWlycm9yT2Zmc2V0IT1udWxsJiZuLXIubWlycm9yT2Zmc2V0Pj1lP2EubWFwcy5sZW5ndGgtci5taXJyb3JPZmZzZXQ6dm9pZCAwO2EuYXBwZW5kTWFwKHIubWFwLG8pfSxlLHQpLGF9YWRkTWFwcyhlKXtyZXR1cm4gdGhpcy5ldmVudENvdW50PT0wP3RoaXM6bmV3IHModGhpcy5pdGVtcy5hcHBlbmQoZS5tYXAodD0+bmV3IEZkKHQpKSksdGhpcy5ldmVudENvdW50KX1yZWJhc2VkKGUsdCl7aWYoIXRoaXMuZXZlbnRDb3VudClyZXR1cm4gdGhpcztsZXQgYT1bXSxyPU1hdGgubWF4KDAsdGhpcy5pdGVtcy5sZW5ndGgtdCksbj1lLm1hcHBpbmcsbz1lLnN0ZXBzLmxlbmd0aCxsPXRoaXMuZXZlbnRDb3VudDt0aGlzLml0ZW1zLmZvckVhY2goYj0+e2Iuc2VsZWN0aW9uJiZsLS19LHIpO2xldCBwPXQ7dGhpcy5pdGVtcy5mb3JFYWNoKGI9PntsZXQgdj1uLmdldE1pcnJvcigtLXApO2lmKHY9PW51bGwpcmV0dXJuO289TWF0aC5taW4obyx2KTtsZXQgeD1uLm1hcHNbdl07aWYoYi5zdGVwKXtsZXQgbT1lLnN0ZXBzW3ZdLmludmVydChlLmRvY3Nbdl0pLGY9Yi5zZWxlY3Rpb24mJmIuc2VsZWN0aW9uLm1hcChuLnNsaWNlKHArMSx2KSk7ZiYmbCsrLGEucHVzaChuZXcgRmQoeCxtLGYpKX1lbHNlIGEucHVzaChuZXcgRmQoeCkpfSxyKTtsZXQgZD1bXTtmb3IobGV0IGI9dDtiPG87YisrKWQucHVzaChuZXcgRmQobi5tYXBzW2JdKSk7bGV0IHU9dGhpcy5pdGVtcy5zbGljZSgwLHIpLmFwcGVuZChkKS5hcHBlbmQoYSksYz1uZXcgcyh1LGwpO3JldHVybiBjLmVtcHR5SXRlbUNvdW50KCk+ZVhhJiYoYz1jLmNvbXByZXNzKHRoaXMuaXRlbXMubGVuZ3RoLWEubGVuZ3RoKSksY31lbXB0eUl0ZW1Db3VudCgpe2xldCBlPTA7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaCh0PT57dC5zdGVwfHxlKyt9KSxlfWNvbXByZXNzKGU9dGhpcy5pdGVtcy5sZW5ndGgpe2xldCB0PXRoaXMucmVtYXBwaW5nKDAsZSksYT10Lm1hcHMubGVuZ3RoLHI9W10sbj0wO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKG8sbCk9PntpZihsPj1lKXIucHVzaChvKSxvLnNlbGVjdGlvbiYmbisrO2Vsc2UgaWYoby5zdGVwKXtsZXQgcD1vLnN0ZXAubWFwKHQuc2xpY2UoYSkpLGQ9cCYmcC5nZXRNYXAoKTtpZihhLS0sZCYmdC5hcHBlbmRNYXAoZCxhKSxwKXtsZXQgdT1vLnNlbGVjdGlvbiYmby5zZWxlY3Rpb24ubWFwKHQuc2xpY2UoYSkpO3UmJm4rKztsZXQgYz1uZXcgRmQoZC5pbnZlcnQoKSxwLHUpLGIsdj1yLmxlbmd0aC0xOyhiPXIubGVuZ3RoJiZyW3ZdLm1lcmdlKGMpKT9yW3ZdPWI6ci5wdXNoKGMpfX1lbHNlIG8ubWFwJiZhLS19LHRoaXMuaXRlbXMubGVuZ3RoLDApLG5ldyBzKGVzdC5mcm9tKHIucmV2ZXJzZSgpKSxuKX19O3BnLmVtcHR5PW5ldyBwZyhlc3QuZW1wdHksMCk7aSh0WGEsImN1dE9mZkV2ZW50cyIpO0ZkPWNsYXNzIHN7c3RhdGlje2kodGhpcywiSXRlbSIpfWNvbnN0cnVjdG9yKGUsdCxhLHIpe3RoaXMubWFwPWUsdGhpcy5zdGVwPXQsdGhpcy5zZWxlY3Rpb249YSx0aGlzLm1pcnJvck9mZnNldD1yfW1lcmdlKGUpe2lmKHRoaXMuc3RlcCYmZS5zdGVwJiYhZS5zZWxlY3Rpb24pe2xldCB0PWUuc3RlcC5tZXJnZSh0aGlzLnN0ZXApO2lmKHQpcmV0dXJuIG5ldyBzKHQuZ2V0TWFwKCkuaW52ZXJ0KCksdCx0aGlzLnNlbGVjdGlvbil9fX0sQmQ9Y2xhc3N7c3RhdGlje2kodGhpcywiSGlzdG9yeVN0YXRlIil9Y29uc3RydWN0b3IoZSx0LGEscixuKXt0aGlzLmRvbmU9ZSx0aGlzLnVuZG9uZT10LHRoaXMucHJldlJhbmdlcz1hLHRoaXMucHJldlRpbWU9cix0aGlzLnByZXZDb21wb3NpdGlvbj1ufX0sYVhhPTIwO2koc1hhLCJhcHBseVRyYW5zYWN0aW9uIik7aShpWGEsImlzQWRqYWNlbnRUbyIpO2kodjRhLCJyYW5nZXNGb3IiKTtpKHRzdCwibWFwUmFuZ2VzIik7aShyWGEsImhpc3RUcmFuc2FjdGlvbiIpO2FzdD0hMSx4NGE9bnVsbDtpKHRjZSwibXVzdFByZXNlcnZlSXRlbXMiKTtpKG9YYSwiY2xvc2VIaXN0b3J5Iik7SGQ9bmV3ICRyKCJoaXN0b3J5IikseTRhPW5ldyAkcigiY2xvc2VIaXN0b3J5Iik7aShzc3QsImhpc3RvcnkiKTtpKGFjZSwiYnVpbGRDb21tYW5kIik7c2NlPWFjZSghMSwhMCksaWNlPWFjZSghMCwhMCksblhhPWFjZSghMSwhMSksbFhhPWFjZSghMCwhMSk7aShjWGEsInVuZG9EZXB0aCIpO2koZFhhLCJyZWRvRGVwdGgiKTtpKHVYYSwiaXNIaXN0b3J5VHJhbnNhY3Rpb24iKX0pO3ZhciBrNGE9ZygoKT0+e3c0YSgpfSk7dmFyIHJjZSxTNGE9ZygoKT0+e2lpKCk7azRhKCk7cmNlPXdpLmNyZWF0ZSh7bmFtZToiaGlzdG9yeSIsYWRkT3B0aW9ucygpe3JldHVybntkZXB0aDoxMDAsbmV3R3JvdXBEZWxheTo1MDB9fSxhZGRDb21tYW5kcygpe3JldHVybnt1bmRvOmkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9PnNjZShzLGUpLCJ1bmRvIikscmVkbzppKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5pY2UocyxlKSwicmVkbyIpfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW3NzdCh0aGlzLm9wdGlvbnMpXX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC16IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy51bmRvKCksIk1vZC16IiksIlNoaWZ0LU1vZC16IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC16IiksIk1vZC15IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIk1vZC15IiksIk1vZC1cdTA0NEYiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnVuZG8oKSwiTW9kLVx1MDQ0RiIpLCJTaGlmdC1Nb2QtXHUwNDRGIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC1cdTA0NEYiKX19fSl9KTt2YXIgb2NlLF80YT1nKCgpPT57aWkoKTtHWigpO29jZT1zaS5jcmVhdGUoe25hbWU6Imhvcml6b250YWxSdWxlIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0sZ3JvdXA6ImJsb2NrIixwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiaHIifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bImhyIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyldfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRIb3Jpem9udGFsUnVsZTppKCgpPT4oe2NoYWluOnMsc3RhdGU6ZX0pPT57aWYoIXFsZShlLGUuc2NoZW1hLm5vZGVzW3RoaXMubmFtZV0pKXJldHVybiExO2xldHtzZWxlY3Rpb246dH09ZSx7JGZyb206YSwkdG86cn09dCxuPXMoKTtyZXR1cm4gYS5wYXJlbnRPZmZzZXQ9PT0wP24uaW5zZXJ0Q29udGVudEF0KHtmcm9tOk1hdGgubWF4KGEucG9zLTEsMCksdG86ci5wb3N9LHt0eXBlOnRoaXMubmFtZX0pOkJsZSh0KT9uLmluc2VydENvbnRlbnRBdChyLnBvcyx7dHlwZTp0aGlzLm5hbWV9KTpuLmluc2VydENvbnRlbnQoe3R5cGU6dGhpcy5uYW1lfSksbi5jb21tYW5kKCh7dHI6byxkaXNwYXRjaDpsfSk9Pnt2YXIgcDtpZihsKXtsZXR7JHRvOmR9PW8uc2VsZWN0aW9uLHU9ZC5lbmQoKTtpZihkLm5vZGVBZnRlcilkLm5vZGVBZnRlci5pc1RleHRibG9jaz9vLnNldFNlbGVjdGlvbihKdC5jcmVhdGUoby5kb2MsZC5wb3MrMSkpOmQubm9kZUFmdGVyLmlzQmxvY2s/by5zZXRTZWxlY3Rpb24oRnQuY3JlYXRlKG8uZG9jLGQucG9zKSk6by5zZXRTZWxlY3Rpb24oSnQuY3JlYXRlKG8uZG9jLGQucG9zKSk7ZWxzZXtsZXQgYz0ocD1kLnBhcmVudC50eXBlLmNvbnRlbnRNYXRjaC5kZWZhdWx0VHlwZSk9PT1udWxsfHxwPT09dm9pZCAwP3ZvaWQgMDpwLmNyZWF0ZSgpO2MmJihvLmluc2VydCh1LGMpLG8uc2V0U2VsZWN0aW9uKEp0LmNyZWF0ZShvLmRvYyx1KzEpKSl9by5zY3JvbGxJbnRvVmlldygpfXJldHVybiEwfSkucnVuKCl9LCJzZXRIb3Jpem9udGFsUnVsZSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltIbGUoe2ZpbmQ6L14oPzotLS184oCULXxfX19cc3xcKlwqXCpccykkLyx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBNNGEsejRhLEM0YSxUNGEsbmNlLCQ0YT1nKCgpPT57aWkoKTtNNGE9Lyg/Ol58XHMpKFwqKD8hXHMrXCopKCg/OlteKl0rKSlcKig/IVxzK1wqKSkkLyx6NGE9Lyg/Ol58XHMpKFwqKD8hXHMrXCopKCg/OlteKl0rKSlcKig/IVxzK1wqKSkvZyxDNGE9Lyg/Ol58XHMpKF8oPyFccytfKSgoPzpbXl9dKykpXyg/IVxzK18pKSQvLFQ0YT0vKD86XnxccykoXyg/IVxzK18pKCg/OlteX10rKSlfKD8hXHMrXykpL2csbmNlPURvLmNyZWF0ZSh7bmFtZToiaXRhbGljIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImVtIn0se3RhZzoiaSIsZ2V0QXR0cnM6aShzPT5zLnN0eWxlLmZvbnRTdHlsZSE9PSJub3JtYWwiJiZudWxsLCJnZXRBdHRycyIpfSx7c3R5bGU6ImZvbnQtc3R5bGU9bm9ybWFsIixjbGVhck1hcms6aShzPT5zLnR5cGUubmFtZT09PXRoaXMubmFtZSwiY2xlYXJNYXJrIil9LHtzdHlsZToiZm9udC1zdHlsZT1pdGFsaWMifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bImVtIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEl0YWxpYzppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy5zZXRNYXJrKHRoaXMubmFtZSksInNldEl0YWxpYyIpLHRvZ2dsZUl0YWxpYzppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZUl0YWxpYyIpLHVuc2V0SXRhbGljOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldEl0YWxpYyIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1pIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVJdGFsaWMoKSwiTW9kLWkiKSwiTW9kLUkiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUl0YWxpYygpLCJNb2QtSSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltxYyh7ZmluZDpNNGEsdHlwZTp0aGlzLnR5cGV9KSxxYyh7ZmluZDpDNGEsdHlwZTp0aGlzLnR5cGV9KV19LGFkZFBhc3RlUnVsZXMoKXtyZXR1cm5bVGwoe2ZpbmQ6ejRhLHR5cGU6dGhpcy50eXBlfSksVGwoe2ZpbmQ6VDRhLHR5cGU6dGhpcy50eXBlfSldfX0pfSk7dmFyIGxjZSxENGE9ZygoKT0+e2lpKCk7bGNlPXNpLmNyZWF0ZSh7bmFtZToibGlzdEl0ZW0iLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e30sYnVsbGV0TGlzdFR5cGVOYW1lOiJidWxsZXRMaXN0IixvcmRlcmVkTGlzdFR5cGVOYW1lOiJvcmRlcmVkTGlzdCJ9fSxjb250ZW50OiJwYXJhZ3JhcGggYmxvY2sqIixkZWZpbmluZzohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoibGkifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bImxpIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJue0VudGVyOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNwbGl0TGlzdEl0ZW0odGhpcy5uYW1lKSwiRW50ZXIiKSxUYWI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2lua0xpc3RJdGVtKHRoaXMubmFtZSksIlRhYiIpLCJTaGlmdC1UYWIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLmxpZnRMaXN0SXRlbSh0aGlzLm5hbWUpLCJTaGlmdC1UYWIiKX19fSl9KTt2YXIgcFhhLEw0YSxpc3QsY2NlLEU0YT1nKCgpPT57aWkoKTtwWGE9Imxpc3RJdGVtIixMNGE9InRleHRTdHlsZSIsaXN0PS9eKFxkKylcLlxzJC8sY2NlPXNpLmNyZWF0ZSh7bmFtZToib3JkZXJlZExpc3QiLGFkZE9wdGlvbnMoKXtyZXR1cm57aXRlbVR5cGVOYW1lOiJsaXN0SXRlbSIsSFRNTEF0dHJpYnV0ZXM6e30sa2VlcE1hcmtzOiExLGtlZXBBdHRyaWJ1dGVzOiExfX0sZ3JvdXA6ImJsb2NrIGxpc3QiLGNvbnRlbnQoKXtyZXR1cm5gJHt0aGlzLm9wdGlvbnMuaXRlbVR5cGVOYW1lfStgfSxhZGRBdHRyaWJ1dGVzKCl7cmV0dXJue3N0YXJ0OntkZWZhdWx0OjEscGFyc2VIVE1MOmkocz0+cy5oYXNBdHRyaWJ1dGUoInN0YXJ0Iik/cGFyc2VJbnQocy5nZXRBdHRyaWJ1dGUoInN0YXJ0Iil8fCIiLDEwKToxLCJwYXJzZUhUTUwiKX0sdHlwZTp7ZGVmYXVsdDpudWxsLHBhcnNlSFRNTDppKHM9PnMuZ2V0QXR0cmlidXRlKCJ0eXBlIiksInBhcnNlSFRNTCIpfX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJvbCJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6c30pe2xldHtzdGFydDplLC4uLnR9PXM7cmV0dXJuIGU9PT0xP1sib2wiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXTpbIm9sIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3RvZ2dsZU9yZGVyZWRMaXN0OmkoKCk9Pih7Y29tbWFuZHM6cyxjaGFpbjplfSk9PnRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcz9lKCkudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKS51cGRhdGVBdHRyaWJ1dGVzKHBYYSx0aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKEw0YSkpLnJ1bigpOnMudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKSwidG9nZ2xlT3JkZXJlZExpc3QiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtNyI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlT3JkZXJlZExpc3QoKSwiTW9kLVNoaWZ0LTciKX19LGFkZElucHV0UnVsZXMoKXtsZXQgcz1PZCh7ZmluZDppc3QsdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczppKGU9Pih7c3RhcnQ6K2VbMV19KSwiZ2V0QXR0cmlidXRlcyIpLGpvaW5QcmVkaWNhdGU6aSgoZSx0KT0+dC5jaGlsZENvdW50K3QuYXR0cnMuc3RhcnQ9PT0rZVsxXSwiam9pblByZWRpY2F0ZSIpfSk7cmV0dXJuKHRoaXMub3B0aW9ucy5rZWVwTWFya3N8fHRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcykmJihzPU9kKHtmaW5kOmlzdCx0eXBlOnRoaXMudHlwZSxrZWVwTWFya3M6dGhpcy5vcHRpb25zLmtlZXBNYXJrcyxrZWVwQXR0cmlidXRlczp0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMsZ2V0QXR0cmlidXRlczppKGU9Pih7c3RhcnQ6K2VbMV0sLi4udGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhMNGEpfSksImdldEF0dHJpYnV0ZXMiKSxqb2luUHJlZGljYXRlOmkoKGUsdCk9PnQuY2hpbGRDb3VudCt0LmF0dHJzLnN0YXJ0PT09K2VbMV0sImpvaW5QcmVkaWNhdGUiKSxlZGl0b3I6dGhpcy5lZGl0b3J9KSksW3NdfX0pfSk7dmFyIGRjZSxQNGE9ZygoKT0+e2lpKCk7ZGNlPXNpLmNyZWF0ZSh7bmFtZToicGFyYWdyYXBoIixwcmlvcml0eToxZTMsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LGdyb3VwOiJibG9jayIsY29udGVudDoiaW5saW5lKiIscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InAifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bInAiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxzKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0UGFyYWdyYXBoOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnNldE5vZGUodGhpcy5uYW1lKSwic2V0UGFyYWdyYXBoIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLUFsdC0wIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZXRQYXJhZ3JhcGgoKSwiTW9kLUFsdC0wIil9fX0pfSk7dmFyIEk0YSxBNGEsdWNlLE40YT1nKCgpPT57aWkoKTtJNGE9Lyg/Ol58XHMpKH5+KD8hXHMrfn4pKCg/Oltefl0rKSl+fig/IVxzK35+KSkkLyxBNGE9Lyg/Ol58XHMpKH5+KD8hXHMrfn4pKCg/Oltefl0rKSl+fig/IVxzK35+KSkvZyx1Y2U9RG8uY3JlYXRlKHtuYW1lOiJzdHJpa2UiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoicyJ9LHt0YWc6ImRlbCJ9LHt0YWc6InN0cmlrZSJ9LHtzdHlsZToidGV4dC1kZWNvcmF0aW9uIixjb25zdW1pbmc6ITEsZ2V0QXR0cnM6aShzPT5zLmluY2x1ZGVzKCJsaW5lLXRocm91Z2giKT97fTohMSwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczpzfSl7cmV0dXJuWyJzIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFN0cmlrZTppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy5zZXRNYXJrKHRoaXMubmFtZSksInNldFN0cmlrZSIpLHRvZ2dsZVN0cmlrZTppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZVN0cmlrZSIpLHVuc2V0U3RyaWtlOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldFN0cmlrZSIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1TaGlmdC1zIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVTdHJpa2UoKSwiTW9kLVNoaWZ0LXMiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bcWMoe2ZpbmQ6STRhLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW1RsKHtmaW5kOkE0YSx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBwY2UsUjRhPWcoKCk9PntpaSgpO3BjZT1zaS5jcmVhdGUoe25hbWU6InRleHQiLGdyb3VwOiJpbmxpbmUifSl9KTt2YXIgb3N0PXt9O3l0KG9zdCx7U3RhcnRlcktpdDooKT0+cnN0LGRlZmF1bHQ6KCk9PnJzdH0pO3ZhciByc3QsbnN0PWcoKCk9PntpaSgpO1doYSgpO1hoYSgpO0poYSgpO2E0YSgpO3I0YSgpO280YSgpO2M0YSgpO2g0YSgpO2Y0YSgpO200YSgpO1M0YSgpO180YSgpOyQ0YSgpO0Q0YSgpO0U0YSgpO1A0YSgpO040YSgpO1I0YSgpO3JzdD13aS5jcmVhdGUoe25hbWU6InN0YXJ0ZXJLaXQiLGFkZEV4dGVuc2lvbnMoKXtsZXQgcz1bXTtyZXR1cm4gdGhpcy5vcHRpb25zLmJvbGQhPT0hMSYmcy5wdXNoKFZsZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmJvbGQpKSx0aGlzLm9wdGlvbnMuYmxvY2txdW90ZSE9PSExJiZzLnB1c2goamxlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuYmxvY2txdW90ZSkpLHRoaXMub3B0aW9ucy5idWxsZXRMaXN0IT09ITEmJnMucHVzaChVbGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5idWxsZXRMaXN0KSksdGhpcy5vcHRpb25zLmNvZGUhPT0hMSYmcy5wdXNoKFdsZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmNvZGUpKSx0aGlzLm9wdGlvbnMuY29kZUJsb2NrIT09ITEmJnMucHVzaChHbGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5jb2RlQmxvY2spKSx0aGlzLm9wdGlvbnMuZG9jdW1lbnQhPT0hMSYmcy5wdXNoKEtsZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmRvY3VtZW50KSksdGhpcy5vcHRpb25zLmRyb3BjdXJzb3IhPT0hMSYmcy5wdXNoKFlsZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmRyb3BjdXJzb3IpKSx0aGlzLm9wdGlvbnMuZ2FwY3Vyc29yIT09ITEmJnMucHVzaChYbGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5nYXBjdXJzb3IpKSx0aGlzLm9wdGlvbnMuaGFyZEJyZWFrIT09ITEmJnMucHVzaChRbGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5oYXJkQnJlYWspKSx0aGlzLm9wdGlvbnMuaGVhZGluZyE9PSExJiZzLnB1c2goSmxlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaGVhZGluZykpLHRoaXMub3B0aW9ucy5oaXN0b3J5IT09ITEmJnMucHVzaChyY2UuY29uZmlndXJlKHRoaXMub3B0aW9ucy5oaXN0b3J5KSksdGhpcy5vcHRpb25zLmhvcml6b250YWxSdWxlIT09ITEmJnMucHVzaChvY2UuY29uZmlndXJlKHRoaXMub3B0aW9ucy5ob3Jpem9udGFsUnVsZSkpLHRoaXMub3B0aW9ucy5pdGFsaWMhPT0hMSYmcy5wdXNoKG5jZS5jb25maWd1cmUodGhpcy5vcHRpb25zLml0YWxpYykpLHRoaXMub3B0aW9ucy5saXN0SXRlbSE9PSExJiZzLnB1c2gobGNlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMubGlzdEl0ZW0pKSx0aGlzLm9wdGlvbnMub3JkZXJlZExpc3QhPT0hMSYmcy5wdXNoKGNjZS5jb25maWd1cmUodGhpcy5vcHRpb25zLm9yZGVyZWRMaXN0KSksdGhpcy5vcHRpb25zLnBhcmFncmFwaCE9PSExJiZzLnB1c2goZGNlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMucGFyYWdyYXBoKSksdGhpcy5vcHRpb25zLnN0cmlrZSE9PSExJiZzLnB1c2godWNlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuc3RyaWtlKSksdGhpcy5vcHRpb25zLnRleHQhPT0hMSYmcy5wdXNoKHBjZS5jb25maWd1cmUodGhpcy5vcHRpb25zLnRleHQpKSxzfX0pfSk7dmFyIGNzdD17fTt5dChjc3Qse1VuZGVybGluZTooKT0+bHN0LGRlZmF1bHQ6KCk9PmxzdH0pO3ZhciBsc3QsZHN0PWcoKCk9PntpaSgpO2xzdD1Eby5jcmVhdGUoe25hbWU6InVuZGVybGluZSIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJ1In0se3N0eWxlOiJ0ZXh0LWRlY29yYXRpb24iLGNvbnN1bWluZzohMSxnZXRBdHRyczppKHM9PnMuaW5jbHVkZXMoInVuZGVybGluZSIpP3t9OiExLCJnZXRBdHRycyIpfV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bInUiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxzKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0VW5kZXJsaW5lOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnNldE1hcmsodGhpcy5uYW1lKSwic2V0VW5kZXJsaW5lIiksdG9nZ2xlVW5kZXJsaW5lOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnRvZ2dsZU1hcmsodGhpcy5uYW1lKSwidG9nZ2xlVW5kZXJsaW5lIiksdW5zZXRVbmRlcmxpbmU6aSgoKT0+KHtjb21tYW5kczpzfSk9PnMudW5zZXRNYXJrKHRoaXMubmFtZSksInVuc2V0VW5kZXJsaW5lIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLXUiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZVVuZGVybGluZSgpLCJNb2QtdSIpLCJNb2QtVSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlVW5kZXJsaW5lKCksIk1vZC1VIil9fX0pfSk7dmFyIHBzdD17fTt5dChwc3Qse1RleHRBbGlnbjooKT0+dXN0LGRlZmF1bHQ6KCk9PnVzdH0pO3ZhciB1c3QsaHN0PWcoKCk9PntpaSgpO3VzdD13aS5jcmVhdGUoe25hbWU6InRleHRBbGlnbiIsYWRkT3B0aW9ucygpe3JldHVybnt0eXBlczpbXSxhbGlnbm1lbnRzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0IiwianVzdGlmeSJdLGRlZmF1bHRBbGlnbm1lbnQ6bnVsbH19LGFkZEdsb2JhbEF0dHJpYnV0ZXMoKXtyZXR1cm5be3R5cGVzOnRoaXMub3B0aW9ucy50eXBlcyxhdHRyaWJ1dGVzOnt0ZXh0QWxpZ246e2RlZmF1bHQ6dGhpcy5vcHRpb25zLmRlZmF1bHRBbGlnbm1lbnQscGFyc2VIVE1MOmkocz0+e2xldCBlPXMuc3R5bGUudGV4dEFsaWduO3JldHVybiB0aGlzLm9wdGlvbnMuYWxpZ25tZW50cy5pbmNsdWRlcyhlKT9lOnRoaXMub3B0aW9ucy5kZWZhdWx0QWxpZ25tZW50fSwicGFyc2VIVE1MIikscmVuZGVySFRNTDppKHM9PnMudGV4dEFsaWduP3tzdHlsZTpgdGV4dC1hbGlnbjogJHtzLnRleHRBbGlnbn1gfTp7fSwicmVuZGVySFRNTCIpfX19XX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0VGV4dEFsaWduOmkocz0+KHtjb21tYW5kczplfSk9PnRoaXMub3B0aW9ucy5hbGlnbm1lbnRzLmluY2x1ZGVzKHMpP3RoaXMub3B0aW9ucy50eXBlcy5tYXAodD0+ZS51cGRhdGVBdHRyaWJ1dGVzKHQse3RleHRBbGlnbjpzfSkpLmV2ZXJ5KHQ9PnQpOiExLCJzZXRUZXh0QWxpZ24iKSx1bnNldFRleHRBbGlnbjppKCgpPT4oe2NvbW1hbmRzOnN9KT0+dGhpcy5vcHRpb25zLnR5cGVzLm1hcChlPT5zLnJlc2V0QXR0cmlidXRlcyhlLCJ0ZXh0QWxpZ24iKSkuZXZlcnkoZT0+ZSksInVuc2V0VGV4dEFsaWduIiksdG9nZ2xlVGV4dEFsaWduOmkocz0+KHtlZGl0b3I6ZSxjb21tYW5kczp0fSk9PnRoaXMub3B0aW9ucy5hbGlnbm1lbnRzLmluY2x1ZGVzKHMpP2UuaXNBY3RpdmUoe3RleHRBbGlnbjpzfSk/dC51bnNldFRleHRBbGlnbigpOnQuc2V0VGV4dEFsaWduKHMpOiExLCJ0b2dnbGVUZXh0QWxpZ24iKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtbCI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJsZWZ0IiksIk1vZC1TaGlmdC1sIiksIk1vZC1TaGlmdC1lIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZXRUZXh0QWxpZ24oImNlbnRlciIpLCJNb2QtU2hpZnQtZSIpLCJNb2QtU2hpZnQtciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJyaWdodCIpLCJNb2QtU2hpZnQtciIpLCJNb2QtU2hpZnQtaiI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJqdXN0aWZ5IiksIk1vZC1TaGlmdC1qIil9fX0pfSk7ZnVuY3Rpb24gYlhhKHMsZSl7cmV0dXJuIHMgaW4gZXx8KGVbc109W10pLGVbc119ZnVuY3Rpb24gaGcocyxlLHQpe2VbZnN0XSYmKGVbbVhdPSEwLGVbZ1hdPSEwKSxlW21zdF0mJihlW21YXT0hMCxlW2dzdF09ITApLGVbbVhdJiYoZVtnWF09ITApLGVbZ3N0XSYmKGVbZ1hdPSEwKSxlW2dYXSYmKGVbYnN0XT0hMCksZVtPNGFdJiYoZVtic3RdPSEwKTtmb3IobGV0IGEgaW4gZSl7bGV0IHI9YlhhKGEsdCk7ci5pbmRleE9mKHMpPDAmJnIucHVzaChzKX19ZnVuY3Rpb24gdlhhKHMsZSl7bGV0IHQ9e307Zm9yKGxldCBhIGluIGUpZVthXS5pbmRleE9mKHMpPj0wJiYodFthXT0hMCk7cmV0dXJuIHR9ZnVuY3Rpb24gRW4ocz1udWxsKXt0aGlzLmo9e30sdGhpcy5qcj1bXSx0aGlzLmpkPW51bGwsdGhpcy50PXN9ZnVuY3Rpb24gU1hhKHM9W10pe2xldCBlPXt9O0VuLmdyb3Vwcz1lO2xldCB0PW5ldyBFbjtqY2U9PW51bGwmJihqY2U9SzRhKGhYYSkpLFZjZT09bnVsbCYmKFZjZT1LNGEoZlhhKSksY3QodCwiJyIsJGNlKSxjdCh0LCJ7Iix2WCksY3QodCwifSIseFgpLGN0KHQsIlsiLGZjZSksY3QodCwiXSIsbWNlKSxjdCh0LCIoIixnY2UpLGN0KHQsIikiLGJjZSksY3QodCwiPCIsdmNlKSxjdCh0LCI+Iix4Y2UpLGN0KHQsIlx1RkYwOCIseWNlKSxjdCh0LCJcdUZGMDkiLHdjZSksY3QodCwiXHUzMDBDIixrY2UpLGN0KHQsIlx1MzAwRCIsU2NlKSxjdCh0LCJcdTMwMEUiLF9jZSksY3QodCwiXHUzMDBGIixNY2UpLGN0KHQsIlx1RkYxQyIsemNlKSxjdCh0LCJcdUZGMUUiLENjZSksY3QodCwiJiIsVGNlKSxjdCh0LCIqIixEY2UpLGN0KHQsIkAiLEloKSxjdCh0LCJgIixFY2UpLGN0KHQsIl4iLFBjZSksY3QodCwiOiIsQWgpLGN0KHQsIiwiLE1zdCksY3QodCwiJCIsSWNlKSxjdCh0LCIuIixxZCksY3QodCwiPSIsQWNlKSxjdCh0LCIhIix6c3QpLGN0KHQsIi0iLGpjKSxjdCh0LCIlIix5WCksY3QodCwifCIsTmNlKSxjdCh0LCIrIixSY2UpLGN0KHQsIiMiLE9jZSksY3QodCwiPyIsd1gpLGN0KHQsJyInLENzdCksY3QodCwiLyIsamQpLGN0KHQsIjsiLFRzdCksY3QodCwifiIsa1gpLGN0KHQsIl8iLEZjZSksY3QodCwiXFwiLExjZSksY3QodCwiXHUzMEZCIixxNGEpO2xldCBhPUtpKHQsVWQsa3N0LHtbZnN0XTohMH0pO0tpKGEsVWQsYSk7bGV0IHI9S2koYSxWZCxCNGEse1ttWF06ITB9KSxuPUtpKGEsV3YsSDRhLHtbZ1hdOiEwfSksbz1LaSh0LFZkLHB1LHtbbXN0XTohMH0pO0tpKG8sVWQsciksS2kobyxWZCxvKSxLaShyLFVkLHIpLEtpKHIsVmQscik7bGV0IGw9S2kodCxXdix4c3Qse1tnc3RdOiEwfSk7S2kobCxWZCksS2kobCxVZCxuKSxLaShsLFd2LGwpLEtpKG4sVWQsbiksS2kobixWZCksS2kobixXdixuKTtsZXQgcD1jdCh0LCRzdCxfc3Qse1t2c3RdOiEwfSksZD1jdCh0LFU0YSxTc3Qse1t2c3RdOiEwfSksdT1LaSh0LHFjZSxTc3Qse1t2c3RdOiEwfSk7Y3QodCxEc3QsdSksY3QoZCwkc3QscCksY3QoZCxEc3QsdSksS2koZCxxY2UsdSksY3QodSxVNGEpLGN0KHUsJHN0KSxLaSh1LHFjZSx1KSxjdCh1LERzdCx1KTtsZXQgYz1LaSh0LEhjZSxqNGEse1tPNGFdOiEwfSk7Y3QoYywiIyIpLEtpKGMsSGNlLGMpLGN0KGMsd1hhLGMpO2xldCBiPWN0KGMsa1hhKTtjdChiLCIjIiksS2koYixIY2UsYyk7bGV0IHY9W1tWZCxvXSxbVWQscl1dLHg9W1tWZCxudWxsXSxbV3YsbF0sW1VkLG5dXTtmb3IobGV0IG09MDttPGpjZS5sZW5ndGg7bSsrKU5oKHQsamNlW21dLHlzdCxwdSx2KTtmb3IobGV0IG09MDttPFZjZS5sZW5ndGg7bSsrKU5oKHQsVmNlW21dLHdzdCx4c3QseCk7aGcoeXN0LHt0bGQ6ITAsYXNjaWk6ITB9LGUpLGhnKHdzdCx7dXRsZDohMCxhbHBoYTohMH0sZSksTmgodCwiZmlsZSIsaGNlLHB1LHYpLE5oKHQsIm1haWx0byIsaGNlLHB1LHYpLE5oKHQsImh0dHAiLFV2LHB1LHYpLE5oKHQsImh0dHBzIixVdixwdSx2KSxOaCh0LCJmdHAiLFV2LHB1LHYpLE5oKHQsImZ0cHMiLFV2LHB1LHYpLGhnKGhjZSx7c2NoZW1lOiEwLGFzY2lpOiEwfSxlKSxoZyhVdix7c2xhc2hzY2hlbWU6ITAsYXNjaWk6ITB9LGUpLHM9cy5zb3J0KChtLGYpPT5tWzBdPmZbMF0/MTotMSk7Zm9yKGxldCBtPTA7bTxzLmxlbmd0aDttKyspe2xldCBmPXNbbV1bMF0sTT1zW21dWzFdP3tbbVhhXTohMH06e1tnWGFdOiEwfTtmLmluZGV4T2YoIi0iKT49MD9NW2JzdF09ITA6VmQudGVzdChmKT9VZC50ZXN0KGYpP01bbVhdPSEwOk1bbXN0XT0hMDpNW2ZzdF09ITAsRjRhKHQsZixmLE0pfXJldHVybiBGNGEodCwibG9jYWxob3N0IixiWCx7YXNjaWk6ITB9KSx0LmpkPW5ldyBFbihCY2UpLHtzdGFydDp0LHRva2VuczpPYmplY3QuYXNzaWduKHtncm91cHM6ZX0sVjRhKX19ZnVuY3Rpb24gVzRhKHMsZSl7bGV0IHQ9RzRhKGUucmVwbGFjZSgvW0EtWl0vZyxsPT5sLnRvTG93ZXJDYXNlKCkpKSxhPXQubGVuZ3RoLHI9W10sbj0wLG89MDtmb3IoO288YTspe2xldCBsPXMscD1udWxsLGQ9MCx1PW51bGwsYz0tMSxiPS0xO2Zvcig7bzxhJiYocD1sLmdvKHRbb10pKTspbD1wLGwuYWNjZXB0cygpPyhjPTAsYj0wLHU9bCk6Yz49MCYmKGMrPXRbb10ubGVuZ3RoLGIrKyksZCs9dFtvXS5sZW5ndGgsbis9dFtvXS5sZW5ndGgsbysrO24tPWMsby09YixkLT1jLHIucHVzaCh7dDp1LnQsdjplLnNsaWNlKG4tZCxuKSxzOm4tZCxlOm59KX1yZXR1cm4gcn1mdW5jdGlvbiBHNGEocyl7bGV0IGU9W10sdD1zLmxlbmd0aCxhPTA7Zm9yKDthPHQ7KXtsZXQgcj1zLmNoYXJDb2RlQXQoYSksbixvPXI8NTUyOTZ8fHI+NTYzMTl8fGErMT09PXR8fChuPXMuY2hhckNvZGVBdChhKzEpKTw1NjMyMHx8bj41NzM0Mz9zW2FdOnMuc2xpY2UoYSxhKzIpO2UucHVzaChvKSxhKz1vLmxlbmd0aH1yZXR1cm4gZX1mdW5jdGlvbiBOaChzLGUsdCxhLHIpe2xldCBuLG89ZS5sZW5ndGg7Zm9yKGxldCBsPTA7bDxvLTE7bCsrKXtsZXQgcD1lW2xdO3MualtwXT9uPXMualtwXToobj1uZXcgRW4oYSksbi5qcj1yLnNsaWNlKCkscy5qW3BdPW4pLHM9bn1yZXR1cm4gbj1uZXcgRW4odCksbi5qcj1yLnNsaWNlKCkscy5qW2Vbby0xXV09bixufWZ1bmN0aW9uIEs0YShzKXtsZXQgZT1bXSx0PVtdLGE9MCxyPSIwMTIzNDU2Nzg5Ijtmb3IoO2E8cy5sZW5ndGg7KXtsZXQgbj0wO2Zvcig7ci5pbmRleE9mKHNbYStuXSk+PTA7KW4rKztpZihuPjApe2UucHVzaCh0LmpvaW4oIiIpKTtmb3IobGV0IG89cGFyc2VJbnQocy5zdWJzdHJpbmcoYSxhK24pLDEwKTtvPjA7by0tKXQucG9wKCk7YSs9bn1lbHNlIHQucHVzaChzW2FdKSxhKyt9cmV0dXJuIGV9ZnVuY3Rpb24gU1gocyxlPW51bGwpe2xldCB0PU9iamVjdC5hc3NpZ24oe30sR3YpO3MmJih0PU9iamVjdC5hc3NpZ24odCxzIGluc3RhbmNlb2YgU1g/cy5vOnMpKTtsZXQgYT10Lmlnbm9yZVRhZ3Mscj1bXTtmb3IobGV0IG49MDtuPGEubGVuZ3RoO24rKylyLnB1c2goYVtuXS50b1VwcGVyQ2FzZSgpKTt0aGlzLm89dCxlJiYodGhpcy5kZWZhdWx0UmVuZGVyPWUpLHRoaXMuaWdub3JlVGFncz1yfWZ1bmN0aW9uIFk0YShzKXtyZXR1cm4gc31mdW5jdGlvbiBfWChzLGUpe3RoaXMudD0idG9rZW4iLHRoaXMudj1zLHRoaXMudGs9ZX1mdW5jdGlvbiBLdihzLGUpe2NsYXNzIHQgZXh0ZW5kcyBfWHtzdGF0aWN7aSh0aGlzLCJUb2tlbiIpfWNvbnN0cnVjdG9yKHIsbil7c3VwZXIocixuKSx0aGlzLnQ9c319Zm9yKGxldCBhIGluIGUpdC5wcm90b3R5cGVbYV09ZVthXTtyZXR1cm4gdC50PXMsdH1mdW5jdGlvbiBNWGEoe2dyb3VwczpzfSl7bGV0IGU9cy5kb21haW4uY29uY2F0KFtUY2UsRGNlLEloLExjZSxFY2UsUGNlLEljZSxBY2UsamMsa3N0LHlYLE5jZSxSY2UsT2NlLGpkLEJjZSxrWCxGY2VdKSx0PVskY2UsQWgsTXN0LHFkLHpzdCx5WCx3WCxDc3QsVHN0LHZjZSx4Y2UsdlgseFgsbWNlLGZjZSxnY2UsYmNlLHljZSx3Y2Usa2NlLFNjZSxfY2UsTWNlLHpjZSxDY2VdLGE9W1RjZSwkY2UsRGNlLExjZSxFY2UsUGNlLEljZSxBY2UsamMsdlgseFgseVgsTmNlLFJjZSxPY2Usd1gsamQsQmNlLGtYLEZjZV0scj1WYygpLG49Y3QocixrWCk7U2EobixhLG4pLFNhKG4scy5kb21haW4sbik7bGV0IG89VmMoKSxsPVZjKCkscD1WYygpO1NhKHIscy5kb21haW4sbyksU2EocixzLnNjaGVtZSxsKSxTYShyLHMuc2xhc2hzY2hlbWUscCksU2EobyxhLG4pLFNhKG8scy5kb21haW4sbyk7bGV0IGQ9Y3QobyxJaCk7Y3QobixJaCxkKSxjdChsLEloLGQpLGN0KHAsSWgsZCk7bGV0IHU9Y3QobixxZCk7U2EodSxhLG4pLFNhKHUscy5kb21haW4sbik7bGV0IGM9VmMoKTtTYShkLHMuZG9tYWluLGMpLFNhKGMscy5kb21haW4sYyk7bGV0IGI9Y3QoYyxxZCk7U2EoYixzLmRvbWFpbixjKTtsZXQgdj1WYyhMc3QpO1NhKGIscy50bGQsdiksU2EoYixzLnV0bGQsdiksY3QoZCxiWCx2KTtsZXQgeD1jdChjLGpjKTtjdCh4LGpjLHgpLFNhKHgscy5kb21haW4sYyksU2EodixzLmRvbWFpbixjKSxjdCh2LHFkLGIpLGN0KHYsamMseCk7bGV0IG09Y3QodixBaCk7U2EobSxzLm51bWVyaWMsTHN0KTtsZXQgZj1jdChvLGpjKSx5PWN0KG8scWQpO2N0KGYsamMsZiksU2EoZixzLmRvbWFpbixvKSxTYSh5LGEsbiksU2EoeSxzLmRvbWFpbixvKTtsZXQgTT1WYyhNWCk7U2EoeSxzLnRsZCxNKSxTYSh5LHMudXRsZCxNKSxTYShNLHMuZG9tYWluLG8pLFNhKE0sYSxuKSxjdChNLHFkLHkpLGN0KE0samMsZiksY3QoTSxJaCxkKTtsZXQgej1jdChNLEFoKSxOPVZjKE1YKTtTYSh6LHMubnVtZXJpYyxOKTtsZXQgQz1WYyhNWCksXz1WYygpO1NhKEMsZSxDKSxTYShDLHQsXyksU2EoXyxlLEMpLFNhKF8sdCxfKSxjdChNLGpkLEMpLGN0KE4samQsQyk7bGV0IE89Y3QobCxBaCksJD1jdChwLEFoKSxFPWN0KCQsamQpLEg9Y3QoRSxqZCk7U2EobCxzLmRvbWFpbixvKSxjdChsLHFkLHkpLGN0KGwsamMsZiksU2EocCxzLmRvbWFpbixvKSxjdChwLHFkLHkpLGN0KHAsamMsZiksU2EoTyxzLmRvbWFpbixDKSxjdChPLGpkLEMpLGN0KE8sd1gsQyksU2EoSCxzLmRvbWFpbixDKSxTYShILGUsQyksY3QoSCxqZCxDKTtsZXQgaz1bW3ZYLHhYXSxbZmNlLG1jZV0sW2djZSxiY2VdLFt2Y2UseGNlXSxbeWNlLHdjZV0sW2tjZSxTY2VdLFtfY2UsTWNlXSxbemNlLENjZV1dO2ZvcihsZXQgUz0wO1M8ay5sZW5ndGg7UysrKXtsZXRbSSxQXT1rW1NdLFI9Y3QoQyxJKTtjdChfLEksUiksY3QoUixQLEMpO2xldCBLPVZjKE1YKTtTYShSLGUsSyk7bGV0IFY9VmMoKTtTYShSLHQpLFNhKEssZSxLKSxTYShLLHQsViksU2EoVixlLEspLFNhKFYsdCxWKSxjdChLLFAsQyksY3QoVixQLEMpfXJldHVybiBjdChyLGJYLE0pLGN0KHIsX3N0LFo0YSkse3N0YXJ0OnIsdG9rZW5zOlY0YX19ZnVuY3Rpb24gelhhKHMsZSx0KXtsZXQgYT10Lmxlbmd0aCxyPTAsbj1bXSxvPVtdO2Zvcig7cjxhOyl7bGV0IGw9cyxwPW51bGwsZD1udWxsLHU9MCxjPW51bGwsYj0tMTtmb3IoO3I8YSYmIShwPWwuZ28odFtyXS50KSk7KW8ucHVzaCh0W3IrK10pO2Zvcig7cjxhJiYoZD1wfHxsLmdvKHRbcl0udCkpOylwPW51bGwsbD1kLGwuYWNjZXB0cygpPyhiPTAsYz1sKTpiPj0wJiZiKysscisrLHUrKztpZihiPDApci09dSxyPGEmJihvLnB1c2godFtyXSkscisrKTtlbHNle28ubGVuZ3RoPjAmJihuLnB1c2goUHN0KEVzdCxlLG8pKSxvPVtdKSxyLT1iLHUtPWI7bGV0IHY9Yy50LHg9dC5zbGljZShyLXUscik7bi5wdXNoKFBzdCh2LGUseCkpfX1yZXR1cm4gby5sZW5ndGg+MCYmbi5wdXNoKFBzdChFc3QsZSxvKSksbn1mdW5jdGlvbiBQc3QocyxlLHQpe2xldCBhPXRbMF0ucyxyPXRbdC5sZW5ndGgtMV0uZSxuPWUuc2xpY2UoYSxyKTtyZXR1cm4gbmV3IHMobix0KX1mdW5jdGlvbiBBc3QoKXtyZXR1cm4gRW4uZ3JvdXBzPXt9LHNzLnNjYW5uZXI9bnVsbCxzcy5wYXJzZXI9bnVsbCxzcy50b2tlblF1ZXVlPVtdLHNzLnBsdWdpblF1ZXVlPVtdLHNzLmN1c3RvbVNjaGVtZXM9W10sc3MuaW5pdGlhbGl6ZWQ9ITEsc3N9ZnVuY3Rpb24gQ1hhKHMsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgdG9rZW4gcGx1Z2luICR7ZX0gKGV4cGVjdHMgZnVuY3Rpb24pYCk7Zm9yKGxldCB0PTA7dDxzcy50b2tlblF1ZXVlLmxlbmd0aDt0KyspaWYocz09PXNzLnRva2VuUXVldWVbdF1bMF0pe3pYKGBsaW5raWZ5anM6IHRva2VuIHBsdWdpbiAiJHtzfSIgYWxyZWFkeSByZWdpc3RlcmVkIC0gd2lsbCBiZSBvdmVyd3JpdHRlbmApLHNzLnRva2VuUXVldWVbdF09W3MsZV07cmV0dXJufXNzLnRva2VuUXVldWUucHVzaChbcyxlXSksc3MuaW5pdGlhbGl6ZWQmJnpYKGBsaW5raWZ5anM6IGFscmVhZHkgaW5pdGlhbGl6ZWQgLSB3aWxsIG5vdCByZWdpc3RlciB0b2tlbiBwbHVnaW4gIiR7c30iICR7SXN0fWApfWZ1bmN0aW9uIFRYYShzLGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcihgbGlua2lmeWpzOiBJbnZhbGlkIHBsdWdpbiAke2V9IChleHBlY3RzIGZ1bmN0aW9uKWApO2ZvcihsZXQgdD0wO3Q8c3MucGx1Z2luUXVldWUubGVuZ3RoO3QrKylpZihzPT09c3MucGx1Z2luUXVldWVbdF1bMF0pe3pYKGBsaW5raWZ5anM6IHBsdWdpbiAiJHtzfSIgYWxyZWFkeSByZWdpc3RlcmVkIC0gd2lsbCBiZSBvdmVyd3JpdHRlbmApLHNzLnBsdWdpblF1ZXVlW3RdPVtzLGVdO3JldHVybn1zcy5wbHVnaW5RdWV1ZS5wdXNoKFtzLGVdKSxzcy5pbml0aWFsaXplZCYmelgoYGxpbmtpZnlqczogYWxyZWFkeSBpbml0aWFsaXplZCAtIHdpbGwgbm90IHJlZ2lzdGVyIHBsdWdpbiAiJHtzfSIgJHtJc3R9YCl9ZnVuY3Rpb24gVWNlKHMsZT0hMSl7aWYoc3MuaW5pdGlhbGl6ZWQmJnpYKGBsaW5raWZ5anM6IGFscmVhZHkgaW5pdGlhbGl6ZWQgLSB3aWxsIG5vdCByZWdpc3RlciBjdXN0b20gc2NoZW1lICIke3N9IiAke0lzdH1gKSwhL15bMC05YS16XSsoLVswLTlhLXpdKykqJC8udGVzdChzKSl0aHJvdyBuZXcgRXJyb3IoYGxpbmtpZnlqczogaW5jb3JyZWN0IHNjaGVtZSBmb3JtYXQuCjEuIE11c3Qgb25seSBjb250YWluIGRpZ2l0cywgbG93ZXJjYXNlIEFTQ0lJIGxldHRlcnMgb3IgIi0iCjIuIENhbm5vdCBzdGFydCBvciBlbmQgd2l0aCAiLSIKMy4gIi0iIGNhbm5vdCByZXBlYXRgKTtzcy5jdXN0b21TY2hlbWVzLnB1c2goW3MsZV0pfWZ1bmN0aW9uIFE0YSgpe3NzLnNjYW5uZXI9U1hhKHNzLmN1c3RvbVNjaGVtZXMpO2ZvcihsZXQgcz0wO3M8c3MudG9rZW5RdWV1ZS5sZW5ndGg7cysrKXNzLnRva2VuUXVldWVbc11bMV0oe3NjYW5uZXI6c3Muc2Nhbm5lcn0pO3NzLnBhcnNlcj1NWGEoc3Muc2Nhbm5lci50b2tlbnMpO2ZvcihsZXQgcz0wO3M8c3MucGx1Z2luUXVldWUubGVuZ3RoO3MrKylzcy5wbHVnaW5RdWV1ZVtzXVsxXSh7c2Nhbm5lcjpzcy5zY2FubmVyLHBhcnNlcjpzcy5wYXJzZXJ9KTtyZXR1cm4gc3MuaW5pdGlhbGl6ZWQ9ITAsc3N9ZnVuY3Rpb24gWXYocyl7cmV0dXJuIHNzLmluaXRpYWxpemVkfHxRNGEoKSx6WGEoc3MucGFyc2VyLnN0YXJ0LHMsVzRhKHNzLnNjYW5uZXIuc3RhcnQscykpfWZ1bmN0aW9uIFdjZShzLGU9bnVsbCx0PW51bGwpe2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYodCl0aHJvdyBFcnJvcihgbGlua2lmeWpzOiBJbnZhbGlkIGxpbmsgdHlwZSAke2V9OyBtdXN0IGJlIGEgc3RyaW5nYCk7dD1lLGU9bnVsbH1sZXQgYT1uZXcgU1godCkscj1ZdihzKSxuPVtdO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXtsZXQgbD1yW29dO2wuaXNMaW5rJiYoIWV8fGwudD09PWUpJiZhLmNoZWNrKGwpJiZuLnB1c2gobC50b0Zvcm1hdHRlZE9iamVjdChhKSl9cmV0dXJuIG59ZnVuY3Rpb24gJFhhKHMsZT1udWxsKXtsZXQgdD1ZdihzKTtyZXR1cm4gdC5sZW5ndGg9PT0xJiZ0WzBdLmlzTGluayYmKCFlfHx0WzBdLnQ9PT1lKX12YXIgaFhhLGZYYSxmc3QsbXN0LGdzdCxtWCxnWCxic3QsTzRhLG1YYSxnWGEsdnN0LFNhLEtpLEY0YSxjdCxwdSx4c3QsQjRhLEg0YSxiWCx5c3Qsd3N0LGhjZSxVdixrc3QsU3N0LF9zdCx2WCx4WCxmY2UsbWNlLGdjZSxiY2UsdmNlLHhjZSx5Y2Usd2NlLGtjZSxTY2UsX2NlLE1jZSx6Y2UsQ2NlLFRjZSwkY2UsRGNlLEloLExjZSxFY2UsUGNlLEFoLE1zdCxJY2UscWQsQWNlLHpzdCxqYyx5WCxOY2UsUmNlLE9jZSx3WCxDc3QscTRhLFRzdCxqZCxrWCxGY2UsajRhLEJjZSxWNGEsVmQsV3YsSGNlLHhYYSxVZCxxY2UseVhhLFU0YSwkc3Qsd1hhLGtYYSxEc3QsamNlLFZjZSxHdixfWGEsTHN0LEVzdCxaNGEsTVgsWDRhLFZjLHpYLElzdCxzcyxKNGE9ZygoKT0+e2hYYT0iYWFhMXJwM2JiMG90dDN2aWU0YzFsZTJvZ2FkbzV1ZGhhYmk3YzBhZGVteTVjZW50dXJlNm91bnRhbnQwczlvMXRvcjRkMHMxdWx0NGUwZzFybzJ0bmE0ZjBsMXJpY2E1ZzBha2hhbjVlbmN5NWkwZzFyYnVzM2ZvcmNlNXRlbDVrZG4zbDBpYmFiYTRwYXk0bGZpbmFuejZzdGF0ZTV5MnNhY2UzdG9tNW0wYXpvbjRlcmljYW5leHByZXNzN2ZhbWlseTExeDJmYW0zaWNhM3N0ZXJkYW04bmFseXRpY3M3ZHJvaWQ1cXVhbjR6Mm8wbDJwYXJ0bWVudHM4cDBsZTRxMHVhcmVsbGU4cjBhYjFtY280Y2hpM215MnBhMnQwZTNzMGRhMmlhMnNvY2lhdGVzOXQwaGxldGE1dG9ybmV5N3UwY3Rpb241ZGkwYmxlM28zc3Bvc3Q1dGhvcjNvMHM0dzBzMngwYTJ6MHVyZTViYTBieTJpZHUzbmFtZXg0ZDFrMnIwY2Vsb25hNWxheWNhcmQ0czVlZm9vdDVnYWluczZzZWJhbGw1a2V0YmFsbDh1aGF1czV5ZXJuNWIwYzF0MXZhM2NnMW4yZDFlMGF0czJ1dHk0ZXIycmxpbjRzdDBidXk1dDJmMWcxaDBhcnRpNWkwYmxlM2Qxa2UybmcwbzNvMXoyajFsYWNrMGZyaWRheTlvY2tidXN0ZXI4ZzFvbWJlcmc3dWUzbTBzMXcybjBwcGFyaWJhczlvMGF0czNlaHJpbmdlcjhmYTJtMW5kMm8wazBpbmc1c2NoMnRpazJvbjR0MXV0aXF1ZTZ4MnIwYWRlc2NvNmlkZ2VzdG9uZTlvYWR3YXk1a2VyM3RoZXI1dXNzZWxzN3MxdDF1aWxkMGVyczZzaW5lc3M2eTF6ejN2MXcxeTF6MGgzY2EwYjFmZTJsMGwxdmlua2xlaW45bTBlcmEzcDJub24zcGV0b3duNWl0YWwwb25lOHIwYXZhbjRkczJlMGVyMHM0czJzYTFlMWgxaW5vNHQwZXJpbmc1aG9saWM3YmExbjFyZTNjMWQxZW50ZXI0bzFybjNmMGExZDJnMWgwYW5lbDJuZWw0cml0eTRzZTJ0MmVhcDNpbnRhaTVyaXN0bWFzNm9tZTR1cmNoNWkwcHJpYW5pNnJjbGU0c2NvM3RhZGVsNGkwYzJ5M2sxbDBhaW1zNGVhbmluZzZpY2sybmljMXF1ZTZvdGhpbmc1dWQzdWIwbWVkNm0xbjFvMGFjaDNkZXMzZmZlZTRsbGVnZTRvZ25lNW0wbWJhbms0dW5pdHk2cGFueTJyZTN1dGVyNXNlYzRuZG9zM3N0cnVjdGlvbjh1bHRpbmc3dGFjdDNyYWN0b3JzOW9raW5nNGwxcDJyc2ljYTV1bnRyeTRwb24wczRyc2VzNnBhMnIwZWRpdDBjYXJkNHVuaW9uOWlja2V0NW93bjNzMXVpc2UwczZ1MGlzaW5lbGxhOXYxdzF4MXkwbXJ1M291M3oyZGFkMW5jZTN0YTFlMWluZzNzdW40eTJjbGszZHMyZTBhbDBlcjJzM2dyZWU0bGl2ZXJ5NWwxb2l0dGU1dGEzbW9jcmF0Nm50YWwyaXN0NXNpMGduNHYyaGwyaWFtb25kczZldDJnaXRhbDVyZWN0MG9yeTdzY291bnQzdmVyNWgyeTJqMWsxbTFucDJvMGNzMXRvcjRnMW1haW5zNXQxd25sb2FkN3JpdmU0dHYydWJhaTNubG9wNHBvbnQ0cmJhbjV2YWcycjJ6MmVhcnRoM3QyYzBvMmRla2EzdTBjYXRpb244ZTFnMW1haWwzZXJjazVuZXJneTRnaW5lZXIwaW5nOXRlcnByaXNlczEwcHNvbjRxdWlwbWVudDhyMGljc3NvbjZuaTNzMHExdGF0ZTV0MXUwcm92aXNpb244czJ2ZW50czV4Y2hhbmdlNnBlcnQzb3NlZDRyZXNzNXRyYXNwYWNlMTBmYWdlMmlsMXJ3aW5kczZ0aDNtaWx5NG4wczJybTBlcnM1c2hpb240dDNlZGV4M2VkYmFjazZycmFyaTNlcm82aTBkZWxpdHk1bzJsbTJuYWwxbmNlMWlhbDdyZTBzdG9uZTZtZGFsZTZzaDBpbmc1dDBuZXNzNmoxazFsaWNrcjNnaHRzNHIyb3Jpc3Q0d2VyczV5Mm0xbzBvMGQxdGJhbGw2cmQxZXgyc2FsZTR1bTN1bmRhdGlvbjh4MnIwZWUxc2VuaXVzN2wxb2dhbnM0bnRpZXI3dHIydWppdHN1NW4wZDJybml0dXJlN3Rib2w1eWkzZ2EwbDBsZXJ5M28xdXA0bWUwczNwMXJkZW40eTJiMGl6M2QwbjJlMGExbnQwaW5nNW9yZ2U1ZjFnMGVlM2gxaTBmdDBzM3ZlczJpbmc1bDBhc3MzZTFvYmFsMm80bTBhaWwzYmgybzF4Mm4xb2RhZGR5NWxkMHBvaW50NmYybzBkeWVhcjVnMGxlNHAxdDF2MnAxcTFyMGFpbmdlcjVwaGljczV0aXM0ZWVuM2lwZTNvY2VyeTR1cDRzMXQxdTBjY2kzZ2UyaWRlMnRhcnM1cnUzdzF5MmhhaXIybWJ1cmc1bmdvdXQ1dXMzYm8yZGZjMGJhbms3ZWFsdGgwY2FyZThscDFzaW5raTZyZTFtZXM1aXBob3A0c2FtaXRzdTd0YWNoaTV2MmswdDJtMW4xb2NrZXk0bGRpbmdzNWlkYXk1bWVkZXBvdDVnb29kczVzMGVuc2U3bmRhM3JzZTNzcGl0YWw1dDBpbmc1dDBlbHMzbWFpbDV1c2UzdzJyMXNiYzN0MXUwZ2hlczV5YXR0M3VuZGFpN2libTJjYmMyZTF1MmQxZTBlZTNmbTJrYW5vNGwxbTBhbWF0NGRiMm1vMGJpbGllbjluMGMxZHVzdHJpZXM4ZmluaXRpNW8yZzFrMXN0aXR1dGU2dXJhbmNlNGU0dDBlcm5hdGlvbmFsMTB1aXQ0dmVzdG1lbnRzMTBvMXBpcmFuZ2E3cTFyMGlzaDRzMG1haWxpNXQwYW5idWw3dDBhdTJ2M2phZ3VhcjR2YTNjYjJlMGVwMnR6dDN3ZWxyeTZpbzJsbDJtMHAybmoybzBiczF1cmc0dDF5MnAwbW9yZ2FuNnJzM3VlZ29zNG5pcGVyN2thdWZlbjVkZGkzZTBycnlob3RlbHM2cHJvcGVydGllczE0ZmgyZzFoMWkwYTFkczJtMW5kbGU0dGNoZW41d2kzbTFuMW9lbG4zbWF0c3U1c2hlcjVwMG1nMm4ycjBkMWVkM3Vva2dyb3VwOHcxeTBvdG80ejJsYTBjYWl4YTVtYm9yZ2hpbmk4ZXIzbmQwcm92ZXI2eGVzczVzYWxsZTV0MGlubzNyb2JlNXcweWVyNWIxYzFkczJlYXNlM2NsZXJjNWZyYWs0Z2FsMm8yeHVzNGdidDNpMGRsMmZlMGluc3VyYW5jZTlzdHlsZTdnaHRpbmc2a2UybGx5M21pdGVkNG8ybmNvbG40azJ2ZTFpbmc1azFsYzFwMm9hbjBzM2NrZXIzdXMzbDFuZG9uNHR0ZTFvM3ZlM3BsMGZpbmFuY2lhbDExcjFzMXQwZDBhM3UwbmRiZWNrNnhlMXVyeTV2MXkybWEwZHJpZDRpZjFzb240a2V1cDRuMGFnZW1lbnQ3Z28zcDFya2V0MGluZzNzNHJpb3R0NXNoYWxsczd0dGVsNWJhMmMwa2luc2V5N2QxZTBkMGlhM2V0Mmxib3VybmU3bWUxb3JpYWw2bjB1MnJja21zZDdnMWgxaWFtaTNjcm9zb2Z0N2wxbmkxdDJ0MHN1YmlzaGk5azFsMGIxczJtMGEybjFvMGJpMGxlNGRhMmUxaTFtMW5hc2gzZXkyc3RlcjVybW9uM3RnYWdlNnNjb3c0dG8wcmN5Y2xlczl2MGllNHAxcTFyMXMwZDJ0MG4xcjJ1MHNldW0zaWM0djF3MXgxeTF6Mm5hMGIxZ295YTRtZTJ2eTNiYTJjMWUwYzF0MGJhbms0ZmxpeDR3b3JrNXVzdGFyNXcwczJ4dDBkaXJlY3Q3dXM0ZjBsMmcwbzJoazJpMGNvMmtlMW9uM25qYTNzc2FuMXk1bDFvMGtpYTNydG9uNHcwcnV6M3R2NHAxcjBhMXcydHQydTF5YzJ6Mm9iaTFzZXJ2ZXI3ZmZpY2U1a2luYXdhNmxheWFuMGdyb3VwOWxvM20wZWdhNG5lMWcxbDBpbmU1b28ycGVuM3JhY2xlM25nZTRnMGFuaWM1aWdpbnM2c2FrYTR0c3VrYTR0MnZoM3BhMGdlMm5hc29uaWM3cmlzMnMxdG5lcnM0czF5M3kyY2N3M2UwdDJmMGl6ZXI1ZzFoMGFybWFjeTZkMWlsaXBzNW9uZTJ0bzBncmFwaHk2czR5c2lvNWljczF0ZXQydXJlczZkMW4wZzFrMm9uZWVyNXp6YTRrMWwwYWNlMnkwc3RhdGlvbjl1bWJpbmc1czNtMW4wYzJvaGwya2VyM2xpdGllNXJuMnN0M3IwYXhpM2VzczNpbWUzbzBkMHVjdGlvbnM4ZjFncmVzc2l2ZThtbzJwZXJ0aWVzM3k1dGVjdGlvbjh1MGRlbnRpYWw5czF0MXViMncwYzJ5MnFhMXBvbjN1ZWJlYzNzdDVyYWNpbmc0ZGlvNGUwYWQxbGVzdGF0ZTZ0b3IyeTRjaXBlczVkMHN0b25lNXVtYnJlbGxhOWhhYjNpc2UwbjN0MmxpYW5jZTZuMHQwYWxzNXBhaXIzb3J0M3VibGljYW44c3QwYXVyYW50OHZpZXcwczV4cm90aDZpY2gwYXJkbGk2b2gzbDFvMXAybzBja3MzZGVvM2dlcnM0b20zczB2cDN1MGdieTNocjJuMncwZTJ5dWt5dTZzYTBhcmxhbmQ2ZmUwdHk0a3VyYTRsZTFvbjNtc2NsdWI0dW5nNW5kdmlrMGNvcm9tYW50MTJvZmk0cDFybDJzMXZlMnhvM2IwaTFzMmMwYjFoYWVmZmxlcjdtaWR0NG9sYXJzaGlwczhvbDN1bGUzd2FyejVpZW5jZTVvdDNkMWUwYXJjaDN0MmN1cmUxaXR5NmVrMmxlY3Q0bmVyM3J2aWNlczZ2ZW4zdzF4MHkzZnIyZzFoMGFuZ3JpbGE2cnAzZWxsM2lhMWtzaGE1b2VzMnAwcGluZzV1amkzdzNpMGxrMm5hMWdsZXM1dGUzajFrMGkwbjJ5MHBlNGwwaW5nNG0wYXJ0M2lsZTRuMGNmM28wY2NlcjNpYWw0ZnRiYW5rNHdhcmU2aHUybGFyMnV0aW9uczduZzF5MnkycGEwY2Uzb3J0MnQzcjBsMnMxdDBhZGEycGxlczRyMXRlYmFuazRmYXJtN2MwZ3JvdXA2b2NraG9sbTZyYWdlM2UzcmVhbTR1ZGlvMnkzeWxlNHUwY2tzM3BwbGllczN5Mm9ydDVyZjFnZXJ5NXp1a2k1djF3YXRjaDRpc3M0eDF5MGRuZXk0c3RlbXM2ejJ0YWIxaXBlaTRsazJvYmFvNHJnZXQ0dGFtb3RvcnM2cjJ0b280eDBpM2MwaTJkMGsyZWFtMmNoMG5vbG9neThsMW1hc2VrNW5uaXM0dmEzZjFnMWgwZDFlYXRlcjJyZTZpYWEyY2tldHM1ZW5kYTRwczJyZXMyb2w0ajBtYXh4NHgyazBtYXh4NWwxbTBhbGw0bjFvMGRheTNreW8zb2xzM3AxcmF5M3NoaWJhNXRhbDN1cnMzd24yeW90YTNzM3IwYWRlMWluZzRpbmluZzV2ZWwwZXJzMGluc3VyYW5jZTE2dXN0M3YydDF1YmUyaTFuZXMzc2h1NHYwczJ3MXoydWExYmFuazNzMmcxazFuaWNvbTN2ZXJzaXR5OG8yb2wycHMyczF5MXoydmEwY2F0aW9uczduYTFndWFyZDdjMWUwZ2FzM250dXJlczZyaXNpZ241bVx4RjZnZW5zYmVyYXRlcjJ1bmcxNHNpY2hlcnVuZzEwdDJnMWkwYWplczRkZW8zZzFraW5nNGxsYXM0bjFwMXJnaW40c2ExaW9uNHZhMW8zbGFhbmRlcmVuOW4xb2RrYTNsdm8zdGUxaW5nM28yeWFnZTV1MndhbGVzMm1hcnQ0dGVyNG5nMGdvdTV0Y2gwZXM2ZWF0aGVyMGNoYW5uZWwxMmJjYW0zZXIyc2l0ZTVkMGRpbmc1aWJvMnIzZjFob3N3aG82aWVuMmtpMmxsaWFtaGlsbDluMGRvd3M0ZTFuZXJzNm1lMm9sdGVyc2tsdXdlcjExb2RzaWRlNnJrMHMybGQzdzJzMXRjMWYzeGJveDNlcm94NGlodWFuNG4yeHgyeXozeWFjaHRzNGhvbzNtYXh1bjVuZGV4NWUxb2RvYmFzaGk3Z2Eya29oYW1hNnUwdHViZTZ0MXVuM3phMHBwb3M0cmEzZXJvM2lwMm0xb25lM3VlcmljaDZ3MiIsZlhhPSJcdTAzQjVcdTAzQkIxXHUwM0M1Mlx1MDQzMVx1MDQzMzFcdTA0MzVcdTA0M0IzXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDM4NFx1MDQzNVx1MDQ0RTJcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0M0JcdTA0MzhcdTA0M0E2XHUwNDNFXHUwNDNDM1x1MDQzQ1x1MDQzQVx1MDQzNDJcdTA0M0VcdTA0M0QxXHUwNDQxXHUwNDNBXHUwNDMyXHUwNDMwNlx1MDQzRVx1MDQzRFx1MDQzQlx1MDQzMFx1MDQzOVx1MDQzRDVcdTA0NDBcdTA0MzMzXHUwNDQwXHUwNDQzXHUwNDQxMlx1MDQ0NDJcdTA0NDFcdTA0MzBcdTA0MzlcdTA0NDIzXHUwNDQwXHUwNDMxM1x1MDQ0M1x1MDQzQVx1MDQ0MDNcdTA0OUJcdTA0MzBcdTA0MzczXHUwNTcwXHUwNTYxXHUwNTc1M1x1MDVEOVx1MDVFOVx1MDVFOFx1MDVEMFx1MDVEQzVcdTA1RTdcdTA1RDVcdTA1REQzXHUwNjI3XHUwNjI4XHUwNjQ4XHUwNjM4XHUwNjI4XHUwNjRBNVx1MDYzMVx1MDYyN1x1MDY0NVx1MDY0M1x1MDY0ODVcdTA2NDRcdTA2MjdcdTA2MzFcdTA2MkZcdTA2NDY0XHUwNjI4XHUwNjJEXHUwNjMxXHUwNjRBXHUwNjQ2NVx1MDYyQ1x1MDYzMlx1MDYyN1x1MDYyNlx1MDYzMTVcdTA2MzNcdTA2MzlcdTA2NDhcdTA2MkZcdTA2NEFcdTA2Mjk2XHUwNjM5XHUwNjQ0XHUwNjRBXHUwNjI3XHUwNjQ2NVx1MDY0NVx1MDYzQVx1MDYzMVx1MDYyODVcdTA2NDVcdTA2MjdcdTA2MzFcdTA2MjdcdTA2MkE1XHUwNkNDXHUwNjMxXHUwNjI3XHUwNjQ2NVx1MDYyOFx1MDYyN1x1MDYzMVx1MDYyQTJcdTA2MzJcdTA2MjdcdTA2MzE0XHUwNjRBXHUwNjJBXHUwNjQzM1x1MDZCRVx1MDYyN1x1MDYzMVx1MDYyQTVcdTA2MkFcdTA2NDhcdTA2NDZcdTA2MzM0XHUwNjMzXHUwNjQ4XHUwNjJGXHUwNjI3XHUwNjQ2M1x1MDYzMVx1MDY0QVx1MDYyOTVcdTA2MzRcdTA2MjhcdTA2NDNcdTA2Mjk0XHUwNjM5XHUwNjMxXHUwNjI3XHUwNjQyMlx1MDYyODJcdTA2NDVcdTA2MjdcdTA2NDY0XHUwNjQxXHUwNjQ0XHUwNjMzXHUwNjM3XHUwNjRBXHUwNjQ2Nlx1MDY0Mlx1MDYzN1x1MDYzMTNcdTA2NDNcdTA2MjdcdTA2MkJcdTA2NDhcdTA2NDRcdTA2NEFcdTA2NDM2XHUwNjQ4XHUwNjQ1M1x1MDY0NVx1MDYzNVx1MDYzMTJcdTA2NDRcdTA2NEFcdTA2MzNcdTA2NEFcdTA2Mjc1XHUwNjQ4XHUwNjMxXHUwNjRBXHUwNjJBXHUwNjI3XHUwNjQ2XHUwNjRBXHUwNjI3N1x1MDY0Mlx1MDYzOTRcdTA2NDdcdTA2NDVcdTA2MzFcdTA2MjdcdTA2NDc1XHUwNjdFXHUwNjI3XHUwNkE5XHUwNjMzXHUwNjJBXHUwNjI3XHUwNjQ2N1x1MDY4MFx1MDYyN1x1MDYzMVx1MDYyQTRcdTA5MTVcdTA5NDlcdTA5MkUzXHUwOTI4XHUwOTQ3XHUwOTFGM1x1MDkyRFx1MDkzRVx1MDkzMFx1MDkyNDBcdTA5MkVcdTA5NEQzXHUwOTRCXHUwOTI0NVx1MDkzOFx1MDkwMlx1MDkxN1x1MDkyMFx1MDkyODVcdTA5QUNcdTA5QkVcdTA5ODJcdTA5QjJcdTA5QkU1XHUwOUFEXHUwOUJFXHUwOUIwXHUwOUE0Mlx1MDlGMFx1MDlBNDRcdTBBMkRcdTBBM0VcdTBBMzBcdTBBMjQ0XHUwQUFEXHUwQUJFXHUwQUIwXHUwQUE0NFx1MEIyRFx1MEIzRVx1MEIzMFx1MEIyNDRcdTBCODdcdTBCQThcdTBCQ0RcdTBCQTRcdTBCQkZcdTBCQUZcdTBCQkU2XHUwQkIyXHUwQjk5XHUwQkNEXHUwQjk1XHUwQkM4Nlx1MEI5QVx1MEJCRlx1MEI5OVx1MEJDRFx1MEI5NVx1MEJBQVx1MEJDRFx1MEJBQVx1MEJDMlx1MEJCMFx1MEJDRDExXHUwQzJEXHUwQzNFXHUwQzMwXHUwQzI0XHUwQzRENVx1MENBRFx1MENCRVx1MENCMFx1MENBNDRcdTBEMkRcdTBEM0VcdTBEMzBcdTBEMjRcdTBEMDI1XHUwREJEXHUwRDgyXHUwRDlBXHUwRENGNFx1MEUwNFx1MEUyRFx1MEUyMTNcdTBFNDRcdTBFMTdcdTBFMjIzXHUwRUE1XHUwRUIyXHUwRUE3M1x1MTBEMlx1MTBENDJcdTMwN0ZcdTMwOTNcdTMwNkEzXHUzMEEyXHUzMERFXHUzMEJFXHUzMEYzNFx1MzBBRlx1MzBFOVx1MzBBNlx1MzBDOTRcdTMwQjBcdTMwRkNcdTMwQjBcdTMwRUI0XHUzMEIzXHUzMEUwMlx1MzBCOVx1MzBDOFx1MzBBMjNcdTMwQkJcdTMwRkNcdTMwRUIzXHUzMEQ1XHUzMEExXHUzMEMzXHUzMEI3XHUzMEU3XHUzMEYzNlx1MzBERFx1MzBBNFx1MzBGM1x1MzBDODRcdTRFMTZcdTc1NEMyXHU0RTJEXHU0RkUxMVx1NTZGRDFcdTU3MEIxXHU2NTg3XHU3RjUxM1x1NEU5QVx1OUE2Q1x1OTAwQTNcdTRGMDFcdTRFMUEyXHU0RjVCXHU1QzcxMlx1NEZFMVx1NjA2RjJcdTUwNjVcdTVFQjcyXHU1MTZCXHU1MzY2Mlx1NTE2Q1x1NTNGODFcdTc2Q0EyXHU1M0YwXHU2RTdFMVx1NzA2MzJcdTU1NDZcdTU3Q0UxXHU1RTk3MVx1NjgwNzJcdTU2MDlcdTkxQ0MwXHU1OTI3XHU5MTUyXHU1RTk3NVx1NTcyOFx1N0VCRjJcdTU5MjdcdTYyRkYyXHU1OTI5XHU0RTNCXHU2NTU5M1x1NUEzMVx1NEU1MDJcdTVCQjZcdTk2RkIyXHU1RTdGXHU0RTFDMlx1NUZBRVx1NTM1QTJcdTYxNDhcdTU1ODQyXHU2MjExXHU3MjMxXHU0RjYwM1x1NjI0Qlx1NjczQTJcdTYyREJcdTgwNTgyXHU2NTNGXHU1MkExMVx1NUU5QzJcdTY1QjBcdTUyQTBcdTU3NjEyXHU5NUZCMlx1NjVGNlx1NUMxQTJcdTY2RjhcdTdDNEQyXHU2NzNBXHU2Nzg0Mlx1NkRFMVx1OUE2Q1x1OTUyMTNcdTZFMzhcdTYyMEYyXHU2RkIzXHU5NTgwMlx1NzBCOVx1NzcwQjJcdTc5RkJcdTUyQTgyXHU3RUM0XHU3RUM3XHU2NzNBXHU2Nzg0NFx1N0Y1MVx1NTc0MDFcdTVFOTcxXHU3QUQ5MVx1N0VEQzJcdTgwNTRcdTkwMUEyXHU4QzM3XHU2QjRDMlx1OEQyRFx1NzI2OTJcdTkwMUFcdThDQTkyXHU5NkM2XHU1NkUyMlx1OTZGQlx1OEEwQVx1NzZDOFx1NzlEMTRcdTk4REVcdTUyMjlcdTZENjYzXHU5OERGXHU1NEMxMlx1OTkxMFx1NTM4NTJcdTk5OTlcdTY4M0NcdTkxQ0NcdTYyQzkzXHU2RTJGMlx1QjJGN1x1QjEzNzFcdUNFRjQyXHVDMEJDXHVDMTMxMlx1RDU1Q1x1QUQ2RDIiLGZzdD0ibnVtZXJpYyIsbXN0PSJhc2NpaSIsZ3N0PSJhbHBoYSIsbVg9ImFzY2lpbnVtZXJpYyIsZ1g9ImFscGhhbnVtZXJpYyIsYnN0PSJkb21haW4iLE80YT0iZW1vamkiLG1YYT0ic2NoZW1lIixnWGE9InNsYXNoc2NoZW1lIix2c3Q9IndoaXRlc3BhY2UiO2koYlhhLCJyZWdpc3Rlckdyb3VwIik7aShoZywiYWRkVG9Hcm91cHMiKTtpKHZYYSwiZmxhZ3NGb3JUb2tlbiIpO2koRW4sIlN0YXRlIiksRW4uZ3JvdXBzPXt9LEVuLnByb3RvdHlwZT17YWNjZXB0cygpe3JldHVybiEhdGhpcy50fSxnbyhzKXtsZXQgZT10aGlzLHQ9ZS5qW3NdO2lmKHQpcmV0dXJuIHQ7Zm9yKGxldCBhPTA7YTxlLmpyLmxlbmd0aDthKyspe2xldCByPWUuanJbYV1bMF0sbj1lLmpyW2FdWzFdO2lmKG4mJnIudGVzdChzKSlyZXR1cm4gbn1yZXR1cm4gZS5qZH0saGFzKHMsZT0hMSl7cmV0dXJuIGU/cyBpbiB0aGlzLmo6ISF0aGlzLmdvKHMpfSx0YShzLGUsdCxhKXtmb3IobGV0IHI9MDtyPHMubGVuZ3RoO3IrKyl0aGlzLnR0KHNbcl0sZSx0LGEpfSx0cihzLGUsdCxhKXthPWF8fEVuLmdyb3VwcztsZXQgcjtyZXR1cm4gZSYmZS5qP3I9ZToocj1uZXcgRW4oZSksdCYmYSYmaGcoZSx0LGEpKSx0aGlzLmpyLnB1c2goW3Mscl0pLHJ9LHRzKHMsZSx0LGEpe2xldCByPXRoaXMsbj1zLmxlbmd0aDtpZighbilyZXR1cm4gcjtmb3IobGV0IG89MDtvPG4tMTtvKyspcj1yLnR0KHNbb10pO3JldHVybiByLnR0KHNbbi0xXSxlLHQsYSl9LHR0KHMsZSx0LGEpe2E9YXx8RW4uZ3JvdXBzO2xldCByPXRoaXM7aWYoZSYmZS5qKXJldHVybiByLmpbc109ZSxlO2xldCBuPWUsbyxsPXIuZ28ocyk7aWYobD8obz1uZXcgRW4sT2JqZWN0LmFzc2lnbihvLmosbC5qKSxvLmpyLnB1c2guYXBwbHkoby5qcixsLmpyKSxvLmpkPWwuamQsby50PWwudCk6bz1uZXcgRW4sbil7aWYoYSlpZihvLnQmJnR5cGVvZiBvLnQ9PSJzdHJpbmciKXtsZXQgcD1PYmplY3QuYXNzaWduKHZYYShvLnQsYSksdCk7aGcobixwLGEpfWVsc2UgdCYmaGcobix0LGEpO28udD1ufXJldHVybiByLmpbc109byxvfX07U2E9aSgocyxlLHQsYSxyKT0+cy50YShlLHQsYSxyKSwidGEiKSxLaT1pKChzLGUsdCxhLHIpPT5zLnRyKGUsdCxhLHIpLCJ0ciIpLEY0YT1pKChzLGUsdCxhLHIpPT5zLnRzKGUsdCxhLHIpLCJ0cyIpLGN0PWkoKHMsZSx0LGEscik9PnMudHQoZSx0LGEsciksInR0IikscHU9IldPUkQiLHhzdD0iVVdPUkQiLEI0YT0iQVNDSUlOVU1FUklDQUwiLEg0YT0iQUxQSEFOVU1FUklDQUwiLGJYPSJMT0NBTEhPU1QiLHlzdD0iVExEIix3c3Q9IlVUTEQiLGhjZT0iU0NIRU1FIixVdj0iU0xBU0hfU0NIRU1FIixrc3Q9Ik5VTSIsU3N0PSJXUyIsX3N0PSJOTCIsdlg9Ik9QRU5CUkFDRSIseFg9IkNMT1NFQlJBQ0UiLGZjZT0iT1BFTkJSQUNLRVQiLG1jZT0iQ0xPU0VCUkFDS0VUIixnY2U9Ik9QRU5QQVJFTiIsYmNlPSJDTE9TRVBBUkVOIix2Y2U9Ik9QRU5BTkdMRUJSQUNLRVQiLHhjZT0iQ0xPU0VBTkdMRUJSQUNLRVQiLHljZT0iRlVMTFdJRFRITEVGVFBBUkVOIix3Y2U9IkZVTExXSURUSFJJR0hUUEFSRU4iLGtjZT0iTEVGVENPUk5FUkJSQUNLRVQiLFNjZT0iUklHSFRDT1JORVJCUkFDS0VUIixfY2U9IkxFRlRXSElURUNPUk5FUkJSQUNLRVQiLE1jZT0iUklHSFRXSElURUNPUk5FUkJSQUNLRVQiLHpjZT0iRlVMTFdJRFRITEVTU1RIQU4iLENjZT0iRlVMTFdJRFRIR1JFQVRFUlRIQU4iLFRjZT0iQU1QRVJTQU5EIiwkY2U9IkFQT1NUUk9QSEUiLERjZT0iQVNURVJJU0siLEloPSJBVCIsTGNlPSJCQUNLU0xBU0giLEVjZT0iQkFDS1RJQ0siLFBjZT0iQ0FSRVQiLEFoPSJDT0xPTiIsTXN0PSJDT01NQSIsSWNlPSJET0xMQVIiLHFkPSJET1QiLEFjZT0iRVFVQUxTIix6c3Q9IkVYQ0xBTUFUSU9OIixqYz0iSFlQSEVOIix5WD0iUEVSQ0VOVCIsTmNlPSJQSVBFIixSY2U9IlBMVVMiLE9jZT0iUE9VTkQiLHdYPSJRVUVSWSIsQ3N0PSJRVU9URSIscTRhPSJGVUxMV0lEVEhNSURETEVET1QiLFRzdD0iU0VNSSIsamQ9IlNMQVNIIixrWD0iVElMREUiLEZjZT0iVU5ERVJTQ09SRSIsajRhPSJFTU9KSSIsQmNlPSJTWU0iLFY0YT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBTFBIQU5VTUVSSUNBTDpINGEsQU1QRVJTQU5EOlRjZSxBUE9TVFJPUEhFOiRjZSxBU0NJSU5VTUVSSUNBTDpCNGEsQVNURVJJU0s6RGNlLEFUOkloLEJBQ0tTTEFTSDpMY2UsQkFDS1RJQ0s6RWNlLENBUkVUOlBjZSxDTE9TRUFOR0xFQlJBQ0tFVDp4Y2UsQ0xPU0VCUkFDRTp4WCxDTE9TRUJSQUNLRVQ6bWNlLENMT1NFUEFSRU46YmNlLENPTE9OOkFoLENPTU1BOk1zdCxET0xMQVI6SWNlLERPVDpxZCxFTU9KSTpqNGEsRVFVQUxTOkFjZSxFWENMQU1BVElPTjp6c3QsRlVMTFdJRFRIR1JFQVRFUlRIQU46Q2NlLEZVTExXSURUSExFRlRQQVJFTjp5Y2UsRlVMTFdJRFRITEVTU1RIQU46emNlLEZVTExXSURUSE1JRERMRURPVDpxNGEsRlVMTFdJRFRIUklHSFRQQVJFTjp3Y2UsSFlQSEVOOmpjLExFRlRDT1JORVJCUkFDS0VUOmtjZSxMRUZUV0hJVEVDT1JORVJCUkFDS0VUOl9jZSxMT0NBTEhPU1Q6YlgsTkw6X3N0LE5VTTprc3QsT1BFTkFOR0xFQlJBQ0tFVDp2Y2UsT1BFTkJSQUNFOnZYLE9QRU5CUkFDS0VUOmZjZSxPUEVOUEFSRU46Z2NlLFBFUkNFTlQ6eVgsUElQRTpOY2UsUExVUzpSY2UsUE9VTkQ6T2NlLFFVRVJZOndYLFFVT1RFOkNzdCxSSUdIVENPUk5FUkJSQUNLRVQ6U2NlLFJJR0hUV0hJVEVDT1JORVJCUkFDS0VUOk1jZSxTQ0hFTUU6aGNlLFNFTUk6VHN0LFNMQVNIOmpkLFNMQVNIX1NDSEVNRTpVdixTWU06QmNlLFRJTERFOmtYLFRMRDp5c3QsVU5ERVJTQ09SRTpGY2UsVVRMRDp3c3QsVVdPUkQ6eHN0LFdPUkQ6cHUsV1M6U3N0fSksVmQ9L1thLXpdLyxXdj0vXHB7TH0vdSxIY2U9L1xwe0Vtb2ppfS91LHhYYT0vXHVmZTBmLyxVZD0vXGQvLHFjZT0vXHMvLHlYYT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBU0NJSV9MRVRURVI6VmQsRElHSVQ6VWQsRU1PSkk6SGNlLEVNT0pJX1ZBUklBVElPTjp4WGEsTEVUVEVSOld2LFNQQUNFOnFjZX0pLFU0YT0iXHIiLCRzdD1gCmAsd1hhPSJcdUZFMEYiLGtYYT0iXHUyMDBEIixEc3Q9Ilx1RkZGQyIsamNlPW51bGwsVmNlPW51bGw7aShTWGEsImluaXQkMiIpO2koVzRhLCJydW4kMSIpO2koRzRhLCJzdHJpbmdUb0FycmF5Iik7aShOaCwiZmFzdHRzIik7aShLNGEsImRlY29kZVRsZHMiKTtHdj17ZGVmYXVsdFByb3RvY29sOiJodHRwIixldmVudHM6bnVsbCxmb3JtYXQ6WTRhLGZvcm1hdEhyZWY6WTRhLG5sMmJyOiExLHRhZ05hbWU6ImEiLHRhcmdldDpudWxsLHJlbDpudWxsLHZhbGlkYXRlOiEwLHRydW5jYXRlOjEvMCxjbGFzc05hbWU6bnVsbCxhdHRyaWJ1dGVzOm51bGwsaWdub3JlVGFnczpbXSxyZW5kZXI6bnVsbH07aShTWCwiT3B0aW9ucyIpLFNYLnByb3RvdHlwZT17bzpHdixpZ25vcmVUYWdzOltdLGRlZmF1bHRSZW5kZXIocyl7cmV0dXJuIHN9LGNoZWNrKHMpe3JldHVybiB0aGlzLmdldCgidmFsaWRhdGUiLHMudG9TdHJpbmcoKSxzKX0sZ2V0KHMsZSx0KXtsZXQgYT1lIT1udWxsLHI9dGhpcy5vW3NdO3JldHVybiByJiYodHlwZW9mIHI9PSJvYmplY3QiPyhyPXQudCBpbiByP3JbdC50XTpHdltzXSx0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmYSYmKHI9cihlLHQpKSk6dHlwZW9mIHI9PSJmdW5jdGlvbiImJmEmJihyPXIoZSx0LnQsdCkpLHIpfSxnZXRPYmoocyxlLHQpe2xldCBhPXRoaXMub1tzXTtyZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiImJmUhPW51bGwmJihhPWEoZSx0LnQsdCkpLGF9LHJlbmRlcihzKXtsZXQgZT1zLnJlbmRlcih0aGlzKTtyZXR1cm4odGhpcy5nZXQoInJlbmRlciIsbnVsbCxzKXx8dGhpcy5kZWZhdWx0UmVuZGVyKShlLHMudCxzKX19O2koWTRhLCJub29wIik7X1hhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLE9wdGlvbnM6U1gsZGVmYXVsdHM6R3Z9KTtpKF9YLCJNdWx0aVRva2VuIiksX1gucHJvdG90eXBlPXtpc0xpbms6ITEsdG9TdHJpbmcoKXtyZXR1cm4gdGhpcy52fSx0b0hyZWYocyl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sdG9Gb3JtYXR0ZWRTdHJpbmcocyl7bGV0IGU9dGhpcy50b1N0cmluZygpLHQ9cy5nZXQoInRydW5jYXRlIixlLHRoaXMpLGE9cy5nZXQoImZvcm1hdCIsZSx0aGlzKTtyZXR1cm4gdCYmYS5sZW5ndGg+dD9hLnN1YnN0cmluZygwLHQpKyJcdTIwMjYiOmF9LHRvRm9ybWF0dGVkSHJlZihzKXtyZXR1cm4gcy5nZXQoImZvcm1hdEhyZWYiLHRoaXMudG9IcmVmKHMuZ2V0KCJkZWZhdWx0UHJvdG9jb2wiKSksdGhpcyl9LHN0YXJ0SW5kZXgoKXtyZXR1cm4gdGhpcy50a1swXS5zfSxlbmRJbmRleCgpe3JldHVybiB0aGlzLnRrW3RoaXMudGsubGVuZ3RoLTFdLmV9LHRvT2JqZWN0KHM9R3YuZGVmYXVsdFByb3RvY29sKXtyZXR1cm57dHlwZTp0aGlzLnQsdmFsdWU6dGhpcy50b1N0cmluZygpLGlzTGluazp0aGlzLmlzTGluayxocmVmOnRoaXMudG9IcmVmKHMpLHN0YXJ0OnRoaXMuc3RhcnRJbmRleCgpLGVuZDp0aGlzLmVuZEluZGV4KCl9fSx0b0Zvcm1hdHRlZE9iamVjdChzKXtyZXR1cm57dHlwZTp0aGlzLnQsdmFsdWU6dGhpcy50b0Zvcm1hdHRlZFN0cmluZyhzKSxpc0xpbms6dGhpcy5pc0xpbmssaHJlZjp0aGlzLnRvRm9ybWF0dGVkSHJlZihzKSxzdGFydDp0aGlzLnN0YXJ0SW5kZXgoKSxlbmQ6dGhpcy5lbmRJbmRleCgpfX0sdmFsaWRhdGUocyl7cmV0dXJuIHMuZ2V0KCJ2YWxpZGF0ZSIsdGhpcy50b1N0cmluZygpLHRoaXMpfSxyZW5kZXIocyl7bGV0IGU9dGhpcyx0PXRoaXMudG9IcmVmKHMuZ2V0KCJkZWZhdWx0UHJvdG9jb2wiKSksYT1zLmdldCgiZm9ybWF0SHJlZiIsdCx0aGlzKSxyPXMuZ2V0KCJ0YWdOYW1lIix0LGUpLG49dGhpcy50b0Zvcm1hdHRlZFN0cmluZyhzKSxvPXt9LGw9cy5nZXQoImNsYXNzTmFtZSIsdCxlKSxwPXMuZ2V0KCJ0YXJnZXQiLHQsZSksZD1zLmdldCgicmVsIix0LGUpLHU9cy5nZXRPYmooImF0dHJpYnV0ZXMiLHQsZSksYz1zLmdldE9iaigiZXZlbnRzIix0LGUpO3JldHVybiBvLmhyZWY9YSxsJiYoby5jbGFzcz1sKSxwJiYoby50YXJnZXQ9cCksZCYmKG8ucmVsPWQpLHUmJk9iamVjdC5hc3NpZ24obyx1KSx7dGFnTmFtZTpyLGF0dHJpYnV0ZXM6byxjb250ZW50Om4sZXZlbnRMaXN0ZW5lcnM6Y319fTtpKEt2LCJjcmVhdGVUb2tlbkNsYXNzIik7THN0PUt2KCJlbWFpbCIse2lzTGluazohMCx0b0hyZWYoKXtyZXR1cm4ibWFpbHRvOiIrdGhpcy50b1N0cmluZygpfX0pLEVzdD1LdigidGV4dCIpLFo0YT1LdigibmwiKSxNWD1LdigidXJsIix7aXNMaW5rOiEwLHRvSHJlZihzPUd2LmRlZmF1bHRQcm90b2NvbCl7cmV0dXJuIHRoaXMuaGFzUHJvdG9jb2woKT90aGlzLnY6YCR7c306Ly8ke3RoaXMudn1gfSxoYXNQcm90b2NvbCgpe2xldCBzPXRoaXMudGs7cmV0dXJuIHMubGVuZ3RoPj0yJiZzWzBdLnQhPT1iWCYmc1sxXS50PT09QWh9fSksWDRhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEJhc2U6X1gsRW1haWw6THN0LE11bHRpVG9rZW46X1gsTmw6WjRhLFRleHQ6RXN0LFVybDpNWCxjcmVhdGVUb2tlbkNsYXNzOkt2fSksVmM9aShzPT5uZXcgRW4ocyksIm1ha2VTdGF0ZSIpO2koTVhhLCJpbml0JDEiKTtpKHpYYSwicnVuIik7aShQc3QsImluaXRNdWx0aVRva2VuIik7elg9dHlwZW9mIGNvbnNvbGU8InUiJiZjb25zb2xlJiZjb25zb2xlLndhcm58fCgoKT0+e30pLElzdD0idW50aWwgbWFudWFsIGNhbGwgb2YgbGlua2lmeS5pbml0KCkuIFJlZ2lzdGVyIGFsbCBzY2hlbWVzIGFuZCBwbHVnaW5zIGJlZm9yZSBpbnZva2luZyBsaW5raWZ5IHRoZSBmaXJzdCB0aW1lLiIsc3M9e3NjYW5uZXI6bnVsbCxwYXJzZXI6bnVsbCx0b2tlblF1ZXVlOltdLHBsdWdpblF1ZXVlOltdLGN1c3RvbVNjaGVtZXM6W10saW5pdGlhbGl6ZWQ6ITF9O2koQXN0LCJyZXNldCIpO2koQ1hhLCJyZWdpc3RlclRva2VuUGx1Z2luIik7aShUWGEsInJlZ2lzdGVyUGx1Z2luIik7aShVY2UsInJlZ2lzdGVyQ3VzdG9tUHJvdG9jb2wiKTtpKFE0YSwiaW5pdCIpO2koWXYsInRva2VuaXplIiksWXYuc2Nhbj1XNGE7aShXY2UsImZpbmQiKTtpKCRYYSwidGVzdCIpfSk7dmFyIE9zdD17fTt5dChPc3Qse0xpbms6KCk9PlJzdCxkZWZhdWx0OigpPT5Sc3QsaXNBbGxvd2VkVXJpOigpPT5odSxwYXN0ZVJlZ2V4OigpPT5lM2F9KTtmdW5jdGlvbiBQWGEocyl7cmV0dXJuIHMubGVuZ3RoPT09MT9zWzBdLmlzTGluazpzLmxlbmd0aD09PTMmJnNbMV0uaXNMaW5rP1siKCkiLCJbXSJdLmluY2x1ZGVzKHNbMF0udmFsdWUrc1syXS52YWx1ZSk6ITF9ZnVuY3Rpb24gSVhhKHMpe3JldHVybiBuZXcgWXMoe2tleTpuZXcgJHIoImF1dG9saW5rIiksYXBwZW5kVHJhbnNhY3Rpb246aSgoZSx0LGEpPT57bGV0IHI9ZS5zb21lKGQ9PmQuZG9jQ2hhbmdlZCkmJiF0LmRvYy5lcShhLmRvYyksbj1lLnNvbWUoZD0+ZC5nZXRNZXRhKCJwcmV2ZW50QXV0b2xpbmsiKSk7aWYoIXJ8fG4pcmV0dXJuO2xldHt0cjpvfT1hLGw9UmxlKHQuZG9jLFsuLi5lXSk7aWYoRmxlKGwpLmZvckVhY2goKHtuZXdSYW5nZTpkfSk9PntsZXQgdT1PbGUoYS5kb2MsZCx2PT52LmlzVGV4dGJsb2NrKSxjLGI7aWYodS5sZW5ndGg+MSljPXVbMF0sYj1hLmRvYy50ZXh0QmV0d2VlbihjLnBvcyxjLnBvcytjLm5vZGUubm9kZVNpemUsdm9pZCAwLCIgIik7ZWxzZSBpZih1Lmxlbmd0aCl7bGV0IHY9YS5kb2MudGV4dEJldHdlZW4oZC5mcm9tLGQudG8sIiAiLCIgIik7aWYoIUxYYS50ZXN0KHYpKXJldHVybjtjPXVbMF0sYj1hLmRvYy50ZXh0QmV0d2VlbihjLnBvcyxkLnRvLHZvaWQgMCwiICIpfWlmKGMmJmIpe2xldCB2PWIuc3BsaXQoRFhhKS5maWx0ZXIoQm9vbGVhbik7aWYodi5sZW5ndGg8PTApcmV0dXJuITE7bGV0IHg9dlt2Lmxlbmd0aC0xXSxtPWMucG9zK2IubGFzdEluZGV4T2YoeCk7aWYoIXgpcmV0dXJuITE7bGV0IGY9WXYoeCkubWFwKHk9PnkudG9PYmplY3Qocy5kZWZhdWx0UHJvdG9jb2wpKTtpZighUFhhKGYpKXJldHVybiExO2YuZmlsdGVyKHk9PnkuaXNMaW5rKS5tYXAoeT0+KHsuLi55LGZyb206bSt5LnN0YXJ0KzEsdG86bSt5LmVuZCsxfSkpLmZpbHRlcih5PT5hLnNjaGVtYS5tYXJrcy5jb2RlPyFhLmRvYy5yYW5nZUhhc01hcmsoeS5mcm9tLHkudG8sYS5zY2hlbWEubWFya3MuY29kZSk6ITApLmZpbHRlcih5PT5zLnZhbGlkYXRlKHkudmFsdWUpKS5maWx0ZXIoeT0+cy5zaG91bGRBdXRvTGluayh5LnZhbHVlKSkuZm9yRWFjaCh5PT57VnYoeS5mcm9tLHkudG8sYS5kb2MpLnNvbWUoTT0+TS5tYXJrLnR5cGU9PT1zLnR5cGUpfHxvLmFkZE1hcmsoeS5mcm9tLHkudG8scy50eXBlLmNyZWF0ZSh7aHJlZjp5LmhyZWZ9KSl9KX19KSwhIW8uc3RlcHMubGVuZ3RoKXJldHVybiBvfSwiYXBwZW5kVHJhbnNhY3Rpb24iKX0pfWZ1bmN0aW9uIEFYYShzKXtyZXR1cm4gbmV3IFlzKHtrZXk6bmV3ICRyKCJoYW5kbGVDbGlja0xpbmsiKSxwcm9wczp7aGFuZGxlQ2xpY2s6aSgoZSx0LGEpPT57dmFyIHIsbjtpZihhLmJ1dHRvbiE9PTB8fCFlLmVkaXRhYmxlKXJldHVybiExO2xldCBvPWEudGFyZ2V0LGw9W107Zm9yKDtvLm5vZGVOYW1lIT09IkRJViI7KWwucHVzaChvKSxvPW8ucGFyZW50Tm9kZTtpZighbC5maW5kKGI9PmIubm9kZU5hbWU9PT0iQSIpKXJldHVybiExO2xldCBwPWZYKGUuc3RhdGUscy50eXBlLm5hbWUpLGQ9YS50YXJnZXQsdT0ocj1kPy5ocmVmKSE9PW51bGwmJnIhPT12b2lkIDA/cjpwLmhyZWYsYz0obj1kPy50YXJnZXQpIT09bnVsbCYmbiE9PXZvaWQgMD9uOnAudGFyZ2V0O3JldHVybiBkJiZ1Pyh3aW5kb3cub3Blbih1LGMpLCEwKTohMX0sImhhbmRsZUNsaWNrIil9fSl9ZnVuY3Rpb24gTlhhKHMpe3JldHVybiBuZXcgWXMoe2tleTpuZXcgJHIoImhhbmRsZVBhc3RlTGluayIpLHByb3BzOntoYW5kbGVQYXN0ZTppKChlLHQsYSk9PntsZXR7c3RhdGU6cn09ZSx7c2VsZWN0aW9uOm59PXIse2VtcHR5Om99PW47aWYobylyZXR1cm4hMTtsZXQgbD0iIjthLmNvbnRlbnQuZm9yRWFjaChkPT57bCs9ZC50ZXh0Q29udGVudH0pO2xldCBwPVdjZShsLHtkZWZhdWx0UHJvdG9jb2w6cy5kZWZhdWx0UHJvdG9jb2x9KS5maW5kKGQ9PmQuaXNMaW5rJiZkLnZhbHVlPT09bCk7cmV0dXJuIWx8fCFwPyExOnMuZWRpdG9yLmNvbW1hbmRzLnNldE1hcmsocy50eXBlLHtocmVmOnAuaHJlZn0pfSwiaGFuZGxlUGFzdGUiKX19KX1mdW5jdGlvbiBodShzLGUpe2xldCB0PVsiaHR0cCIsImh0dHBzIiwiZnRwIiwiZnRwcyIsIm1haWx0byIsInRlbCIsImNhbGx0byIsInNtcyIsImNpZCIsInhtcHAiXTtyZXR1cm4gZSYmZS5mb3JFYWNoKGE9PntsZXQgcj10eXBlb2YgYT09InN0cmluZyI/YTphLnNjaGVtZTtyJiZ0LnB1c2gocil9KSwhc3x8cy5yZXBsYWNlKEVYYSwiIikubWF0Y2gobmV3IFJlZ0V4cChgXig/Oig/OiR7dC5qb2luKCJ8Iil9KTp8W15hLXpdfFthLXowLTkrLi1dKyg/OlteYS16Ky4tOl18JCkpYCwiaSIpKX12YXIgTnN0LERYYSxMWGEsRVhhLGUzYSxSc3QsRnN0PWcoKCk9PntpaSgpO0o0YSgpO0daKCk7TnN0PSJbXDAtIFx4QTBcdTE2ODBcdTE4MEVcdTIwMDAtXHUyMDI5XHUyMDVGXHUzMDAwXSIsRFhhPW5ldyBSZWdFeHAoTnN0KSxMWGE9bmV3IFJlZ0V4cChgJHtOc3R9JGApLEVYYT1uZXcgUmVnRXhwKE5zdCwiZyIpO2koUFhhLCJpc1ZhbGlkTGlua1N0cnVjdHVyZSIpO2koSVhhLCJhdXRvbGluayIpO2koQVhhLCJjbGlja0hhbmRsZXIiKTtpKE5YYSwicGFzdGVIYW5kbGVyIik7ZTNhPS9odHRwcz86XC9cLyg/Ond3d1wuKT9bLWEtekEtWjAtOUA6JS5fK34jPV17MSwyNTZ9XC5bYS16QS1aXXsyLH1cYig/OlstYS16QS1aMC05QDolLl8rfiM9PyEmL10qKSg/OlstYS16QS1aMC05QDolLl8rfiM9PyEmL10qKS9naTtpKGh1LCJpc0FsbG93ZWRVcmkiKTtSc3Q9RG8uY3JlYXRlKHtuYW1lOiJsaW5rIixwcmlvcml0eToxZTMsa2VlcE9uU3BsaXQ6ITEsZXhpdGFibGU6ITAsb25DcmVhdGUoKXt0aGlzLm9wdGlvbnMudmFsaWRhdGUmJiF0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbmsmJih0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbms9dGhpcy5vcHRpb25zLnZhbGlkYXRlLGNvbnNvbGUud2FybigiVGhlIGB2YWxpZGF0ZWAgb3B0aW9uIGlzIGRlcHJlY2F0ZWQuIFJlbmFtZSB0byB0aGUgYHNob3VsZEF1dG9MaW5rYCBvcHRpb24gaW5zdGVhZC4iKSksdGhpcy5vcHRpb25zLnByb3RvY29scy5mb3JFYWNoKHM9PntpZih0eXBlb2Ygcz09InN0cmluZyIpe1VjZShzKTtyZXR1cm59VWNlKHMuc2NoZW1lLHMub3B0aW9uYWxTbGFzaGVzKX0pfSxvbkRlc3Ryb3koKXtBc3QoKX0saW5jbHVzaXZlKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvbGlua30sYWRkT3B0aW9ucygpe3JldHVybntvcGVuT25DbGljazohMCxsaW5rT25QYXN0ZTohMCxhdXRvbGluazohMCxwcm90b2NvbHM6W10sZGVmYXVsdFByb3RvY29sOiJodHRwIixIVE1MQXR0cmlidXRlczp7dGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvdyIsY2xhc3M6bnVsbH0saXNBbGxvd2VkVXJpOmkoKHMsZSk9PiEhaHUocyxlLnByb3RvY29scyksImlzQWxsb3dlZFVyaSIpLHZhbGlkYXRlOmkocz0+ISFzLCJ2YWxpZGF0ZSIpLHNob3VsZEF1dG9MaW5rOmkocz0+ISFzLCJzaG91bGRBdXRvTGluayIpfX0sYWRkQXR0cmlidXRlcygpe3JldHVybntocmVmOntkZWZhdWx0Om51bGwscGFyc2VIVE1MKHMpe3JldHVybiBzLmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0sdGFyZ2V0OntkZWZhdWx0OnRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcy50YXJnZXR9LHJlbDp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMucmVsfSxjbGFzczp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMuY2xhc3N9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImFbaHJlZl0iLGdldEF0dHJzOmkocz0+e2xldCBlPXMuZ2V0QXR0cmlidXRlKCJocmVmIik7cmV0dXJuIWV8fCF0aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKGUse2RlZmF1bHRWYWxpZGF0ZTppKHQ9PiEhaHUodCx0aGlzLm9wdGlvbnMucHJvdG9jb2xzKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOnRoaXMub3B0aW9ucy5wcm90b2NvbHMsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2x9KT8hMTpudWxsfSwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczpzfSl7cmV0dXJuIHRoaXMub3B0aW9ucy5pc0FsbG93ZWRVcmkocy5ocmVmLHtkZWZhdWx0VmFsaWRhdGU6aShlPT4hIWh1KGUsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/WyJhIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF06WyJhIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsey4uLnMsaHJlZjoiIn0pLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRMaW5rOmkocz0+KHtjaGFpbjplfSk9PntsZXR7aHJlZjp0fT1zO3JldHVybiB0aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKHQse2RlZmF1bHRWYWxpZGF0ZTppKGE9PiEhaHUoYSx0aGlzLm9wdGlvbnMucHJvdG9jb2xzKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOnRoaXMub3B0aW9ucy5wcm90b2NvbHMsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2x9KT9lKCkuc2V0TWFyayh0aGlzLm5hbWUscykuc2V0TWV0YSgicHJldmVudEF1dG9saW5rIiwhMCkucnVuKCk6ITF9LCJzZXRMaW5rIiksdG9nZ2xlTGluazppKHM9Pih7Y2hhaW46ZX0pPT57bGV0e2hyZWY6dH09cztyZXR1cm4gdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaSh0LHtkZWZhdWx0VmFsaWRhdGU6aShhPT4hIWh1KGEsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/ZSgpLnRvZ2dsZU1hcmsodGhpcy5uYW1lLHMse2V4dGVuZEVtcHR5TWFya1JhbmdlOiEwfSkuc2V0TWV0YSgicHJldmVudEF1dG9saW5rIiwhMCkucnVuKCk6ITF9LCJ0b2dnbGVMaW5rIiksdW5zZXRMaW5rOmkoKCk9Pih7Y2hhaW46c30pPT5zKCkudW5zZXRNYXJrKHRoaXMubmFtZSx7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6ITB9KS5zZXRNZXRhKCJwcmV2ZW50QXV0b2xpbmsiLCEwKS5ydW4oKSwidW5zZXRMaW5rIil9fSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW1RsKHtmaW5kOmkocz0+e2xldCBlPVtdO2lmKHMpe2xldHtwcm90b2NvbHM6dCxkZWZhdWx0UHJvdG9jb2w6YX09dGhpcy5vcHRpb25zLHI9V2NlKHMpLmZpbHRlcihuPT5uLmlzTGluayYmdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShuLnZhbHVlLHtkZWZhdWx0VmFsaWRhdGU6aShvPT4hIWh1KG8sdCksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0LGRlZmF1bHRQcm90b2NvbDphfSkpO3IubGVuZ3RoJiZyLmZvckVhY2gobj0+ZS5wdXNoKHt0ZXh0Om4udmFsdWUsZGF0YTp7aHJlZjpuLmhyZWZ9LGluZGV4Om4uc3RhcnR9KSl9cmV0dXJuIGV9LCJmaW5kIiksdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczppKHM9Pnt2YXIgZTtyZXR1cm57aHJlZjooZT1zLmRhdGEpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5ocmVmfX0sImdldEF0dHJpYnV0ZXMiKX0pXX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7bGV0IHM9W10se3Byb3RvY29sczplLGRlZmF1bHRQcm90b2NvbDp0fT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvbGluayYmcy5wdXNoKElYYSh7dHlwZTp0aGlzLnR5cGUsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2wsdmFsaWRhdGU6aShhPT50aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKGEse2RlZmF1bHRWYWxpZGF0ZTppKHI9PiEhaHUocixlKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOmUsZGVmYXVsdFByb3RvY29sOnR9KSwidmFsaWRhdGUiKSxzaG91bGRBdXRvTGluazp0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbmt9KSksdGhpcy5vcHRpb25zLm9wZW5PbkNsaWNrPT09ITAmJnMucHVzaChBWGEoe3R5cGU6dGhpcy50eXBlfSkpLHRoaXMub3B0aW9ucy5saW5rT25QYXN0ZSYmcy5wdXNoKE5YYSh7ZWRpdG9yOnRoaXMuZWRpdG9yLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sLHR5cGU6dGhpcy50eXBlfSkpLHN9fSl9KTt2YXIgY2l0PXt9O3l0KGNpdCx7VHlwb2dyYXBoeTooKT0+bGl0LGNsb3NlRG91YmxlUXVvdGU6KCk9PmpzdCxjbG9zZVNpbmdsZVF1b3RlOigpPT5Vc3QsY29weXJpZ2h0OigpPT5Lc3QsZGVmYXVsdDooKT0+bGl0LGVsbGlwc2lzOigpPT5Ic3QsZW1EYXNoOigpPT5Cc3QsbGFxdW86KCk9PnRpdCxsZWZ0QXJyb3c6KCk9PldzdCxtdWx0aXBsaWNhdGlvbjooKT0+c2l0LG5vdEVxdWFsOigpPT5laXQsb25lSGFsZjooKT0+UXN0LG9uZVF1YXJ0ZXI6KCk9Pm9pdCxvcGVuRG91YmxlUXVvdGU6KCk9PnFzdCxvcGVuU2luZ2xlUXVvdGU6KCk9PlZzdCxwbHVzTWludXM6KCk9PkpzdCxyYXF1bzooKT0+YWl0LHJlZ2lzdGVyZWRUcmFkZW1hcms6KCk9PlhzdCxyaWdodEFycm93OigpPT5Hc3Qsc2VydmljZW1hcms6KCk9PlpzdCxzdXBlcnNjcmlwdFRocmVlOigpPT5yaXQsc3VwZXJzY3JpcHRUd286KCk9PmlpdCx0aHJlZVF1YXJ0ZXJzOigpPT5uaXQsdHJhZGVtYXJrOigpPT5Zc3R9KTt2YXIgQnN0LEhzdCxxc3QsanN0LFZzdCxVc3QsV3N0LEdzdCxLc3QsWXN0LFpzdCxYc3QsUXN0LEpzdCxlaXQsdGl0LGFpdCxzaXQsaWl0LHJpdCxvaXQsbml0LGxpdCxkaXQ9ZygoKT0+e2lpKCk7QnN0PWkocz0+aGkoe2ZpbmQ6Ly0tJC8scmVwbGFjZTpzPz8iXHUyMDE0In0pLCJlbURhc2giKSxIc3Q9aShzPT5oaSh7ZmluZDovXC5cLlwuJC8scmVwbGFjZTpzPz8iXHUyMDI2In0pLCJlbGxpcHNpcyIpLHFzdD1pKHM9PmhpKHtmaW5kOi8oPzpefFtcc3tbKDwnIlx1MjAxOFx1MjAxQ10pKCIpJC8scmVwbGFjZTpzPz8iXHUyMDFDIn0pLCJvcGVuRG91YmxlUXVvdGUiKSxqc3Q9aShzPT5oaSh7ZmluZDovIiQvLHJlcGxhY2U6cz8/Ilx1MjAxRCJ9KSwiY2xvc2VEb3VibGVRdW90ZSIpLFZzdD1pKHM9PmhpKHtmaW5kOi8oPzpefFtcc3tbKDwnIlx1MjAxOFx1MjAxQ10pKCcpJC8scmVwbGFjZTpzPz8iXHUyMDE4In0pLCJvcGVuU2luZ2xlUXVvdGUiKSxVc3Q9aShzPT5oaSh7ZmluZDovJyQvLHJlcGxhY2U6cz8/Ilx1MjAxOSJ9KSwiY2xvc2VTaW5nbGVRdW90ZSIpLFdzdD1pKHM9PmhpKHtmaW5kOi88LSQvLHJlcGxhY2U6cz8/Ilx1MjE5MCJ9KSwibGVmdEFycm93IiksR3N0PWkocz0+aGkoe2ZpbmQ6Ly0+JC8scmVwbGFjZTpzPz8iXHUyMTkyIn0pLCJyaWdodEFycm93IiksS3N0PWkocz0+aGkoe2ZpbmQ6L1woY1wpJC8scmVwbGFjZTpzPz8iXHhBOSJ9KSwiY29weXJpZ2h0IiksWXN0PWkocz0+aGkoe2ZpbmQ6L1wodG1cKSQvLHJlcGxhY2U6cz8/Ilx1MjEyMiJ9KSwidHJhZGVtYXJrIiksWnN0PWkocz0+aGkoe2ZpbmQ6L1woc21cKSQvLHJlcGxhY2U6cz8/Ilx1MjEyMCJ9KSwic2VydmljZW1hcmsiKSxYc3Q9aShzPT5oaSh7ZmluZDovXChyXCkkLyxyZXBsYWNlOnM/PyJceEFFIn0pLCJyZWdpc3RlcmVkVHJhZGVtYXJrIiksUXN0PWkocz0+aGkoe2ZpbmQ6Lyg/Ol58XHMpKDFcLzIpXHMkLyxyZXBsYWNlOnM/PyJceEJEIn0pLCJvbmVIYWxmIiksSnN0PWkocz0+aGkoe2ZpbmQ6L1wrXC8tJC8scmVwbGFjZTpzPz8iXHhCMSJ9KSwicGx1c01pbnVzIiksZWl0PWkocz0+aGkoe2ZpbmQ6LyE9JC8scmVwbGFjZTpzPz8iXHUyMjYwIn0pLCJub3RFcXVhbCIpLHRpdD1pKHM9PmhpKHtmaW5kOi88PCQvLHJlcGxhY2U6cz8/Ilx4QUIifSksImxhcXVvIiksYWl0PWkocz0+aGkoe2ZpbmQ6Lz4+JC8scmVwbGFjZTpzPz8iXHhCQiJ9KSwicmFxdW8iKSxzaXQ9aShzPT5oaSh7ZmluZDovXGQrXHM/KFsqeF0pXHM/XGQrJC8scmVwbGFjZTpzPz8iXHhENyJ9KSwibXVsdGlwbGljYXRpb24iKSxpaXQ9aShzPT5oaSh7ZmluZDovXF4yJC8scmVwbGFjZTpzPz8iXHhCMiJ9KSwic3VwZXJzY3JpcHRUd28iKSxyaXQ9aShzPT5oaSh7ZmluZDovXF4zJC8scmVwbGFjZTpzPz8iXHhCMyJ9KSwic3VwZXJzY3JpcHRUaHJlZSIpLG9pdD1pKHM9PmhpKHtmaW5kOi8oPzpefFxzKSgxXC80KVxzJC8scmVwbGFjZTpzPz8iXHhCQyJ9KSwib25lUXVhcnRlciIpLG5pdD1pKHM9PmhpKHtmaW5kOi8oPzpefFxzKSgzXC80KVxzJC8scmVwbGFjZTpzPz8iXHhCRSJ9KSwidGhyZWVRdWFydGVycyIpLGxpdD13aS5jcmVhdGUoe25hbWU6InR5cG9ncmFwaHkiLGFkZE9wdGlvbnMoKXtyZXR1cm57Y2xvc2VEb3VibGVRdW90ZToiXHUyMDFEIixjbG9zZVNpbmdsZVF1b3RlOiJcdTIwMTkiLGNvcHlyaWdodDoiXHhBOSIsZWxsaXBzaXM6Ilx1MjAyNiIsZW1EYXNoOiJcdTIwMTQiLGxhcXVvOiJceEFCIixsZWZ0QXJyb3c6Ilx1MjE5MCIsbXVsdGlwbGljYXRpb246Ilx4RDciLG5vdEVxdWFsOiJcdTIyNjAiLG9uZUhhbGY6Ilx4QkQiLG9uZVF1YXJ0ZXI6Ilx4QkMiLG9wZW5Eb3VibGVRdW90ZToiXHUyMDFDIixvcGVuU2luZ2xlUXVvdGU6Ilx1MjAxOCIscGx1c01pbnVzOiJceEIxIixyYXF1bzoiXHhCQiIscmVnaXN0ZXJlZFRyYWRlbWFyazoiXHhBRSIscmlnaHRBcnJvdzoiXHUyMTkyIixzZXJ2aWNlbWFyazoiXHUyMTIwIixzdXBlcnNjcmlwdFRocmVlOiJceEIzIixzdXBlcnNjcmlwdFR3bzoiXHhCMiIsdGhyZWVRdWFydGVyczoiXHhCRSIsdHJhZGVtYXJrOiJcdTIxMjIifX0sYWRkSW5wdXRSdWxlcygpe2xldCBzPVtdO3JldHVybiB0aGlzLm9wdGlvbnMuZW1EYXNoIT09ITEmJnMucHVzaChCc3QodGhpcy5vcHRpb25zLmVtRGFzaCkpLHRoaXMub3B0aW9ucy5lbGxpcHNpcyE9PSExJiZzLnB1c2goSHN0KHRoaXMub3B0aW9ucy5lbGxpcHNpcykpLHRoaXMub3B0aW9ucy5vcGVuRG91YmxlUXVvdGUhPT0hMSYmcy5wdXNoKHFzdCh0aGlzLm9wdGlvbnMub3BlbkRvdWJsZVF1b3RlKSksdGhpcy5vcHRpb25zLmNsb3NlRG91YmxlUXVvdGUhPT0hMSYmcy5wdXNoKGpzdCh0aGlzLm9wdGlvbnMuY2xvc2VEb3VibGVRdW90ZSkpLHRoaXMub3B0aW9ucy5vcGVuU2luZ2xlUXVvdGUhPT0hMSYmcy5wdXNoKFZzdCh0aGlzLm9wdGlvbnMub3BlblNpbmdsZVF1b3RlKSksdGhpcy5vcHRpb25zLmNsb3NlU2luZ2xlUXVvdGUhPT0hMSYmcy5wdXNoKFVzdCh0aGlzLm9wdGlvbnMuY2xvc2VTaW5nbGVRdW90ZSkpLHRoaXMub3B0aW9ucy5sZWZ0QXJyb3chPT0hMSYmcy5wdXNoKFdzdCh0aGlzLm9wdGlvbnMubGVmdEFycm93KSksdGhpcy5vcHRpb25zLnJpZ2h0QXJyb3chPT0hMSYmcy5wdXNoKEdzdCh0aGlzLm9wdGlvbnMucmlnaHRBcnJvdykpLHRoaXMub3B0aW9ucy5jb3B5cmlnaHQhPT0hMSYmcy5wdXNoKEtzdCh0aGlzLm9wdGlvbnMuY29weXJpZ2h0KSksdGhpcy5vcHRpb25zLnRyYWRlbWFyayE9PSExJiZzLnB1c2goWXN0KHRoaXMub3B0aW9ucy50cmFkZW1hcmspKSx0aGlzLm9wdGlvbnMuc2VydmljZW1hcmshPT0hMSYmcy5wdXNoKFpzdCh0aGlzLm9wdGlvbnMuc2VydmljZW1hcmspKSx0aGlzLm9wdGlvbnMucmVnaXN0ZXJlZFRyYWRlbWFyayE9PSExJiZzLnB1c2goWHN0KHRoaXMub3B0aW9ucy5yZWdpc3RlcmVkVHJhZGVtYXJrKSksdGhpcy5vcHRpb25zLm9uZUhhbGYhPT0hMSYmcy5wdXNoKFFzdCh0aGlzLm9wdGlvbnMub25lSGFsZikpLHRoaXMub3B0aW9ucy5wbHVzTWludXMhPT0hMSYmcy5wdXNoKEpzdCh0aGlzLm9wdGlvbnMucGx1c01pbnVzKSksdGhpcy5vcHRpb25zLm5vdEVxdWFsIT09ITEmJnMucHVzaChlaXQodGhpcy5vcHRpb25zLm5vdEVxdWFsKSksdGhpcy5vcHRpb25zLmxhcXVvIT09ITEmJnMucHVzaCh0aXQodGhpcy5vcHRpb25zLmxhcXVvKSksdGhpcy5vcHRpb25zLnJhcXVvIT09ITEmJnMucHVzaChhaXQodGhpcy5vcHRpb25zLnJhcXVvKSksdGhpcy5vcHRpb25zLm11bHRpcGxpY2F0aW9uIT09ITEmJnMucHVzaChzaXQodGhpcy5vcHRpb25zLm11bHRpcGxpY2F0aW9uKSksdGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VHdvIT09ITEmJnMucHVzaChpaXQodGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VHdvKSksdGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VGhyZWUhPT0hMSYmcy5wdXNoKHJpdCh0aGlzLm9wdGlvbnMuc3VwZXJzY3JpcHRUaHJlZSkpLHRoaXMub3B0aW9ucy5vbmVRdWFydGVyIT09ITEmJnMucHVzaChvaXQodGhpcy5vcHRpb25zLm9uZVF1YXJ0ZXIpKSx0aGlzLm9wdGlvbnMudGhyZWVRdWFydGVycyE9PSExJiZzLnB1c2gobml0KHRoaXMub3B0aW9ucy50aHJlZVF1YXJ0ZXJzKSksc319KX0pO3ZhciBzMixpMix1aXQ9ZygoKT0+e3MyPXt4dGVybToiNS4zLjAiLHh0ZXJtQWRkb25GaXQ6IjAuOC4wIix4dGVybUFkZG9uU2VhcmNoOiIwLjEzLjAiLGhpZ2hsaWdodEpzOiIxMS4xMS4xIixlY2hhcnRzOiI1LjYuMCIsbGlnaHR3ZWlnaHRDaGFydHM6IjUuMS4wIix0aXB0YXA6IjIuMjcuMiIsZm9udGF3ZXNvbWU6IjcuMi4wIn0saTI9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0ifSk7dmFyIFFyLHQzYT1nKCgpPT57dWl0KCk7UXI9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEZWVzU2VydmljZUxpYkxvYWRlciIpfXN0YXRpYyBpbnN0YW5jZTt4dGVybUxpYj1udWxsO3h0ZXJtRml0QWRkb25MaWI9bnVsbDt4dGVybVNlYXJjaEFkZG9uTGliPW51bGw7aGlnaGxpZ2h0SnNMaWI9bnVsbDtsaWdodHdlaWdodENoYXJ0c0xpYj1udWxsO2VjaGFydHNMaWI9bnVsbDt0aXB0YXBMaWI9bnVsbDt4dGVybUxvYWRpbmdQcm9taXNlPW51bGw7eHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlPW51bGw7aGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZT1udWxsO2xpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U9bnVsbDtlY2hhcnRzTG9hZGluZ1Byb21pc2U9bnVsbDt0aXB0YXBMb2FkaW5nUHJvbWlzZT1udWxsO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBzLmluc3RhbmNlfHwocy5pbnN0YW5jZT1uZXcgcykscy5pbnN0YW5jZX1hc3luYyBsb2FkWHRlcm0oKXtyZXR1cm4gdGhpcy54dGVybUxpYj90aGlzLnh0ZXJtTGliOnRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCB0PWF3YWl0IGltcG9ydChgJHtpMn0veHRlcm1AJHtzMi54dGVybX0vK2VzbWApO3JldHVybiBhd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzKCksdGhpcy54dGVybUxpYj17VGVybWluYWw6dC5UZXJtaW5hbH0sdGhpcy54dGVybUxpYn0pKCksdGhpcy54dGVybUxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1GaXRBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI/dGhpcy54dGVybUZpdEFkZG9uTGliOnRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCB0PWF3YWl0IGltcG9ydChgJHtpMn0veHRlcm0tYWRkb24tZml0QCR7czIueHRlcm1BZGRvbkZpdH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI9e0ZpdEFkZG9uOnQuRml0QWRkb259LHRoaXMueHRlcm1GaXRBZGRvbkxpYn0pKCksdGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRYdGVybVNlYXJjaEFkZG9uKCl7cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYj90aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI6dGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAke2kyfS94dGVybS1hZGRvbi1zZWFyY2hAJHtzMi54dGVybUFkZG9uU2VhcmNofS8rZXNtYCk7cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYj17U2VhcmNoQWRkb246dC5TZWFyY2hBZGRvbn0sdGhpcy54dGVybVNlYXJjaEFkZG9uTGlifSkoKSx0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXMoKXtsZXQgZT0ieHRlcm0tY2RuLXN0eWxlcyI7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSkpcmV0dXJuO2xldCB0PWAke2kyfS94dGVybUAke3MyLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxyPWF3YWl0KGF3YWl0IGZldGNoKHQpKS50ZXh0KCksbj1gCi8qIEZpeCB4dGVybS5qcyBXaWR0aENhY2hlIG1lYXN1cmVtZW50IGNvbnRhaW5lciBjYXVzaW5nIGhvcml6b250YWwgc2Nyb2xsYmFyICovCi8qIHh0ZXJtIGNyZWF0ZXMgdGhpcyBvbiBkb2N1bWVudC5ib2R5IC0gbW92ZSBpdCBvZmYtc2NyZWVuIGhvcml6b250YWxseSB0b28gKi8KYm9keSA+IGRpdltzdHlsZSo9InRvcDogLTUwMDAwcHgiXVtzdHlsZSo9IndpZHRoOiA1MDAwMHB4Il0gewogIGxlZnQ6IC01MDAwMHB4ICFpbXBvcnRhbnQ7Cn0KYCxvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7by5pZD1lLG8udGV4dENvbnRlbnQ9cituLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobyl9YXN5bmMgbG9hZEhpZ2hsaWdodEpzKCl7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI/dGhpcy5oaWdobGlnaHRKc0xpYjp0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U/dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlOih0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7aTJ9L2hpZ2hsaWdodC5qc0Ake3MyLmhpZ2hsaWdodEpzfS8rZXNtYCk7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI9dC5kZWZhdWx0LHRoaXMuaGlnaGxpZ2h0SnNMaWJ9KSgpLHRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZExpZ2h0d2VpZ2h0Q2hhcnRzKCl7cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI/dGhpcy5saWdodHdlaWdodENoYXJ0c0xpYjp0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlOih0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7aTJ9L2xpZ2h0d2VpZ2h0LWNoYXJ0c0Ake3MyLmxpZ2h0d2VpZ2h0Q2hhcnRzfS8rZXNtYCk7cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI9e2NyZWF0ZUNoYXJ0OnQuY3JlYXRlQ2hhcnQsQXJlYVNlcmllczp0LkFyZWFTZXJpZXMsTGluZVNlcmllczp0LkxpbmVTZXJpZXMsQ29sb3JUeXBlOnQuQ29sb3JUeXBlLExpbmVUeXBlOnQuTGluZVR5cGUsQ3Jvc3NoYWlyTW9kZTp0LkNyb3NzaGFpck1vZGV9LHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWJ9KSgpLHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZEVjaGFydHMoKXtyZXR1cm4gdGhpcy5lY2hhcnRzTGliP3RoaXMuZWNoYXJ0c0xpYjp0aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZT90aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7aTJ9L2VjaGFydHNAJHtzMi5lY2hhcnRzfS9kaXN0L2VjaGFydHMuZXNtLm1pbi5qc2ApO3JldHVybiB0aGlzLmVjaGFydHNMaWI9e2luaXQ6dC5pbml0LGRpc3Bvc2U6dC5kaXNwb3NlLGdldEluc3RhbmNlQnlEb206dC5nZXRJbnN0YW5jZUJ5RG9tfSx0aGlzLmVjaGFydHNMaWJ9KSgpLHRoaXMuZWNoYXJ0c0xvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkVGlwdGFwKCl7cmV0dXJuIHRoaXMudGlwdGFwTGliP3RoaXMudGlwdGFwTGliOnRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U/dGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZToodGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldFtlLHQsYSxyLG4sb109YXdhaXQgUHJvbWlzZS5hbGwoW1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihpaSgpLEthdCkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pihuc3QoKSxvc3QpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZHN0KCksY3N0KSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGhzdCgpLHBzdCkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihGc3QoKSxPc3QpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZGl0KCksY2l0KSldKTtyZXR1cm4gdGhpcy50aXB0YXBMaWI9e0VkaXRvcjplLkVkaXRvcixTdGFydGVyS2l0OnQuZGVmYXVsdHx8dC5TdGFydGVyS2l0LFVuZGVybGluZTphLmRlZmF1bHR8fGEuVW5kZXJsaW5lLFRleHRBbGlnbjpyLmRlZmF1bHR8fHIuVGV4dEFsaWduLExpbms6bi5kZWZhdWx0fHxuLkxpbmssVHlwb2dyYXBoeTpvLmRlZmF1bHR8fG8uVHlwb2dyYXBoeX0sdGhpcy50aXB0YXBMaWJ9KSgpLHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2UpfWFzeW5jIHByZWxvYWRBbGwoKXthd2FpdCBQcm9taXNlLmFsbChbdGhpcy5sb2FkWHRlcm0oKSx0aGlzLmxvYWRYdGVybUZpdEFkZG9uKCksdGhpcy5sb2FkWHRlcm1TZWFyY2hBZGRvbigpLHRoaXMubG9hZEhpZ2hsaWdodEpzKCksdGhpcy5sb2FkTGlnaHR3ZWlnaHRDaGFydHMoKSx0aGlzLmxvYWRFY2hhcnRzKCksdGhpcy5sb2FkVGlwdGFwKCldKX1pc0xvYWRlZChlKXtzd2l0Y2goZSl7Y2FzZSJ4dGVybSI6cmV0dXJuIHRoaXMueHRlcm1MaWIhPT1udWxsO2Nhc2UieHRlcm1GaXRBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYiE9PW51bGw7Y2FzZSJ4dGVybVNlYXJjaEFkZG9uIjpyZXR1cm4gdGhpcy54dGVybVNlYXJjaEFkZG9uTGliIT09bnVsbDtjYXNlImhpZ2hsaWdodEpzIjpyZXR1cm4gdGhpcy5oaWdobGlnaHRKc0xpYiE9PW51bGw7Y2FzZSJsaWdodHdlaWdodENoYXJ0cyI6cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWIhPT1udWxsO2Nhc2UiZWNoYXJ0cyI6cmV0dXJuIHRoaXMuZWNoYXJ0c0xpYiE9PW51bGw7Y2FzZSJ0aXB0YXAiOnJldHVybiB0aGlzLnRpcHRhcExpYiE9PW51bGw7ZGVmYXVsdDpyZXR1cm4hMX19fX0pO3ZhciBmdT1nKCgpPT57dDNhKCk7dWl0KCl9KTt2YXIgQ1gsYTNhPWcoKCk9PntZbCgpO3BlKCk7RGQoKTtDcigpO05uZSgpO2Z1KCk7Q1g9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJDb2RlQmxvY2tIYW5kbGVyIil9dHlwZT0iY29kZSI7aGlnaGxpZ2h0VGltZXI9bnVsbDtoaWdobGlnaHRKcz1udWxsO3JlbmRlcihlLHQpe2xldCBhPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCIscj1lLmNvbnRlbnR8fCIiLG49ci5zcGxpdChgCmApLmxlbmd0aCxvPSIiO2ZvcihsZXQgcD0xO3A8PW47cCsrKW8rPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtwfTwvZGl2PmA7bGV0IGw9TFoubWFwKHA9PntsZXQgZD1wLnRvTG93ZXJDYXNlKCk7cmV0dXJuYDxvcHRpb24gdmFsdWU9IiR7ZH0iICR7ZD09PWE/InNlbGVjdGVkIjoiIn0+JHtwfTwvb3B0aW9uPmB9KS5qb2luKCIiKTtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyJHt0PyIgc2VsZWN0ZWQiOiIifSIgZGF0YS1sYW5ndWFnZT0iJHthfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1oZWFkZXIiPgogICAgICAgICAgPHNlbGVjdCBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iPgogICAgICAgICAgICAke2x9CiAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiB0aXRsZT0iQ29weSBjb2RlIj4KICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY29weS1pY29uIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMCA2Ljc1QzAgNS43ODQuNzg0IDUgMS43NSA1aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDcuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTEuNWEuNzUuNzUgMCAwMTEuNSAwdjEuNUExLjc1IDEuNzUgMCAwMTkuMjUgMTZoLTcuNUExLjc1IDEuNzUgMCAwMTAgMTQuMjV2LTcuNXoiPjwvcGF0aD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxLjc1QzUgLjc4NCA1Ljc4NCAwIDYuNzUgMGg3LjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djcuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDExaC03LjVBMS43NSAxLjc1IDAgMDE1IDkuMjV2LTcuNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDcuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1aC03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10ZXh0Ij5Db3B5PC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ib2R5Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtbnVtYmVycyI+JHtvfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250ZW50Ij4KICAgICAgICAgICAgPHByZSBjbGFzcz0iY29kZS1wcmUiPjxjb2RlIGNsYXNzPSJjb2RlLWVkaXRvciIgCiAgICAgICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKHIpfTwvY29kZT48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idXR0b24iKSxsPWUucXVlcnlTZWxlY3RvcigiLmxhbmd1YWdlLXNlbGVjdG9yIik7aWYoIXJ8fCFuKXJldHVybjtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZD0+e2xldCB1PWQudGFyZ2V0LnZhbHVlO3QubWV0YWRhdGE9ey4uLnQubWV0YWRhdGEsbGFuZ3VhZ2U6dX0sbi5zZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiLHUpLHQuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJnRoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSx0KSxhLm9uSW5wdXQmJmEub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSl9KSxvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IGQ9ci50ZXh0Q29udGVudHx8IiI7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGQpO2xldCB1PW8ucXVlcnlTZWxlY3RvcigiLmNvcHktdGV4dCIpLGM9dS50ZXh0Q29udGVudDt1LnRleHRDb250ZW50PSJDb3BpZWQhIixvLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PWMsby5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX1jYXRjaCh1KXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLHUpO2xldCBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7Yy52YWx1ZT1kLGMuc3R5bGUucG9zaXRpb249ImZpeGVkIixjLnN0eWxlLm9wYWNpdHk9IjAiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyksYy5zZWxlY3QoKTt0cnl7ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtsZXQgYj1vLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSx2PWIudGV4dENvbnRlbnQ7Yi50ZXh0Q29udGVudD0iQ29waWVkISIsby5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57Yi50ZXh0Q29udGVudD12LG8uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2goYil7Y29uc29sZS5lcnJvcigiRmFsbGJhY2sgY29weSBmYWlsZWQ6IixiKX1kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGMpfX0pO2xldCBwPSExO3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57cD0hMCxuLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKTtsZXQgZD1yLnRleHRDb250ZW50fHwiIjtyLnRleHRDb250ZW50PWQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57bGV0IHU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxjPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyLmZpcnN0Q2hpbGQmJih1LnNldFN0YXJ0KHIuZmlyc3RDaGlsZCwwKSx1LmNvbGxhcHNlKCEwKSxjPy5yZW1vdmVBbGxSYW5nZXMoKSxjPy5hZGRSYW5nZSh1KSl9KSxhLm9uRm9jdXMoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntwPSExLG4uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLHRoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSx0KSxhLm9uQmx1cigpfSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZD0+e2Eub25JbnB1dChkKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpLGNsZWFyVGltZW91dCh0aGlzLmhpZ2hsaWdodFRpbWVyKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZD0+e2lmKGQua2V5PT09IlRhYiIpe2QucHJldmVudERlZmF1bHQoKTtsZXQgdT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYodSYmdS5yYW5nZUNvdW50PjApe2xldCBjPXUuZ2V0UmFuZ2VBdCgwKSxiPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgICIpO2MuaW5zZXJ0Tm9kZShiKSxjLnNldFN0YXJ0QWZ0ZXIoYiksYy5zZXRFbmRBZnRlcihiKSx1LnJlbW92ZUFsbFJhbmdlcygpLHUuYWRkUmFuZ2UoYyksYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpfXJldHVybn1pZihbIkFycm93TGVmdCIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiQXJyb3dEb3duIl0uaW5jbHVkZXMoZC5rZXkpKXtsZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpLGM9ci50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKGQua2V5PT09IkFycm93TGVmdCImJnU9PT0wfHxkLmtleT09PSJBcnJvd1JpZ2h0IiYmdT09PWMpe2Eub25LZXlEb3duKGQpO3JldHVybn1pZihkLmtleT09PSJBcnJvd1VwInx8ZC5rZXk9PT0iQXJyb3dEb3duIil7bGV0IGI9KHIudGV4dENvbnRlbnR8fCIiKS5zcGxpdChgCmApLHY9dGhpcy5nZXRDdXJyZW50TGluZUluZGV4KHIpO2lmKGQua2V5PT09IkFycm93VXAiJiZ2PT09MHx8ZC5rZXk9PT0iQXJyb3dEb3duIiYmdj09PWIubGVuZ3RoLTEpe2Eub25LZXlEb3duKGQpO3JldHVybn19fWEub25LZXlEb3duKGQpfSksci5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsZD0+e2QucHJldmVudERlZmF1bHQoKTtsZXQgdT1kLmNsaXBib2FyZERhdGE/LmdldERhdGEoInRleHQvcGxhaW4iKTtpZih1KXtsZXQgYz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoYyYmYy5yYW5nZUNvdW50PjApe2xldCBiPWMuZ2V0UmFuZ2VBdCgwKTtiLmRlbGV0ZUNvbnRlbnRzKCk7bGV0IHY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodSk7Yi5pbnNlcnROb2RlKHYpLGIuc2V0U3RhcnRBZnRlcih2KSxiLnNldEVuZEFmdGVyKHYpLGMucmVtb3ZlQWxsUmFuZ2VzKCksYy5hZGRSYW5nZShiKSxhLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSl9fX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PmEub25Db21wb3NpdGlvblN0YXJ0KCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT5hLm9uQ29tcG9zaXRpb25FbmQoKSksdC5jb250ZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ciYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHQpfSl9dXBkYXRlTGluZU51bWJlcnMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKSxhPWUucXVlcnlTZWxlY3RvcigiLmxpbmUtbnVtYmVycyIpO2lmKCF0fHwhYSlyZXR1cm47bGV0IG89KHQudGV4dENvbnRlbnR8fCIiKS5zcGxpdChgCmApLmxlbmd0aHx8MSxsPSIiO2ZvcihsZXQgcD0xO3A8PW87cCsrKWwrPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtwfTwvZGl2PmA7YS5pbm5lckhUTUw9bH1nZXRDdXJyZW50TGluZUluZGV4KGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighdHx8dC5yYW5nZUNvdW50PT09MClyZXR1cm4gMDtsZXQgYT10LmdldFJhbmdlQXQoMCkscj1hLmNsb25lUmFuZ2UoKTtyZXR1cm4gci5zZWxlY3ROb2RlQ29udGVudHMoZSksci5zZXRFbmQoYS5zdGFydENvbnRhaW5lcixhLnN0YXJ0T2Zmc2V0KSxyLnRvU3RyaW5nKCkuc3BsaXQoYApgKS5sZW5ndGgtMX1hc3luYyBhcHBseUhpZ2hsaWdodGluZyhlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoIWEpcmV0dXJuO3RoaXMuaGlnaGxpZ2h0SnN8fCh0aGlzLmhpZ2hsaWdodEpzPWF3YWl0IFFyLmdldEluc3RhbmNlKCkubG9hZEhpZ2hsaWdodEpzKCkpO2xldCByPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSksbj1hLnRleHRDb250ZW50fHwiIixvPXQubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCI7dHJ5e2xldCBsPXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KG4se2xhbmd1YWdlOm8saWdub3JlSWxsZWdhbHM6ITB9KTtsLnZhbHVlJiYoYS5pbm5lckhUTUw9bC52YWx1ZSxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YSYmciE9PW51bGwmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1N0LnNldEN1cnNvclBvc2l0aW9uKGEscil9KSl9Y2F0Y2gobCl7Y29uc29sZS53YXJuKCJTeW50YXggaGlnaGxpZ2h0aW5nIGZhaWxlZDoiLGwpfX1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKT8udGV4dENvbnRlbnR8fCIifXNldENvbnRlbnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKGEmJihhLnRleHRDb250ZW50PXQsdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSkpe2xldCByPXtpZDphLmRhdGFzZXQuYmxvY2tJZHx8IiIsdHlwZToiY29kZSIsY29udGVudDp0LG1ldGFkYXRhOntsYW5ndWFnZTplLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiKXx8InR5cGVzY3JpcHQifX07dGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHIpfX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCF0KXJldHVybiBudWxsO2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYXx8YS5yYW5nZUNvdW50PT09MClyZXR1cm4gbnVsbDtsZXQgcj1hLmdldFJhbmdlQXQoMCk7aWYoIXQuY29udGFpbnMoci5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IG49ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gbi5zZWxlY3ROb2RlQ29udGVudHModCksbi5zZXRFbmQoci5zdGFydENvbnRhaW5lcixyLnN0YXJ0T2Zmc2V0KSxuLnRvU3RyaW5nKCkubGVuZ3RofXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTt0JiZTdC5zZXRDdXJzb3JQb3NpdGlvbih0LDApfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYodCl7bGV0IGE9dC50ZXh0Q29udGVudD8ubGVuZ3RofHwwO1N0LnNldEN1cnNvclBvc2l0aW9uKHQsYSl9fWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTthJiYoYS5mb2N1cygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgdD09Im51bWJlciImJlN0LnNldEN1cnNvclBvc2l0aW9uKGEsdCl9KSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCB0PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYodD09PW51bGwpcmV0dXJuIG51bGw7bGV0IGE9dGhpcy5nZXRDb250ZW50KGUpO3JldHVybntiZWZvcmU6YS5zdWJzdHJpbmcoMCx0KSxhZnRlcjphLnN1YnN0cmluZyh0KX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBDb2RlIEJsb2NrIENvbnRhaW5lciAtIE1pbmltYWxpc3Qgc2hhZGNuIHN0eWxlICovCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyIC0gU2ltcGxpZmllZCAqLwogICAgICAuY29kZS1oZWFkZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvcHkgQnV0dG9uIC0gTWluaW1hbCAqLwogICAgICAuY29weS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbi5jb3BpZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmhvdmVyIC5jb3B5LWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LXRleHQgewogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQm9keSAqLwogICAgICAuY29kZS1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExpbmUgTnVtYmVycyAtIFN1YnRsZSAqLwogICAgICAubGluZS1udW1iZXJzIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmxpbmUtbnVtYmVyIHsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCA4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBmb250LWZhbWlseTogJHskOH07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogQ29kZSBDb250ZW50ICovCiAgICAgIC5jb2RlLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXByZSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LWZhbWlseTogJHskOH07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuY29kZS1lZGl0b3I6ZW1wdHk6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogIi8vIFR5cGUgb3IgcGFzdGUgY29kZSBoZXJlLi4uIjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBXaGVuIGVkaXRpbmcgKGZvY3VzZWQpLCBzaG93IGdyZXkgdGV4dCB3aXRob3V0IGhpZ2hsaWdodGluZyAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyAuY29kZS1lZGl0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX0gIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yICogewogICAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFN5bnRheCBIaWdobGlnaHRpbmcgLSBNdXRlZCBjb2xvcnMgKi8KICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWtleXdvcmQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXN0cmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLW51bWJlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWZ1bmN0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY29tbWVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy12YXJpYWJsZSwKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWF0dHIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1jbGFzcywKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXRpdGxlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1wYXJhbXMgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWxpdGVyYWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1tZXRhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcHVuY3R1YXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNkMWQ1ZGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10YWcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyaWJ1dGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci10YWcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1jbGFzcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLWlkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBTZWxlY3Rpb24gKi8KICAgICAgLmNvZGUtZWRpdG9yOjpzZWxlY3Rpb24sCiAgICAgIC5jb2RlLWVkaXRvciAqOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4yKSIsInJnYmEoOTksIDEwMiwgMjQxLCAwLjMpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAtIE1pbmltYWwgKi8KICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICBgfX19KTt2YXIgVFgsczNhPWcoKCk9PntZbCgpO3BlKCk7aXUoKTtEZCgpO1RYPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiTGlzdEJsb2NrSGFuZGxlciIpfXR5cGU9Imxpc3QiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixuPShlLm1ldGFkYXRhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixvPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBsaXN0JHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgPiR7b308L2Rpdj4KICAgIGB9cmVuZGVyTGlzdENvbnRlbnQoZSx0KXtpZighZSlyZXR1cm4iPHVsPjxsaT48L2xpPjwvdWw+IjtsZXQgcj0odD8ubGlzdFR5cGV8fCJ1bm9yZGVyZWQiKT09PSJvcmRlcmVkIj8ib2wiOiJ1bCIsbj1lLnNwbGl0KGAKYCkuZmlsdGVyKGw9PmwudHJpbSgpKTtpZihuLmxlbmd0aD09PTApcmV0dXJuYDwke3J9PjxsaT48L2xpPjwvJHtyfT5gO2xldCBvPW4ubWFwKGw9PmA8bGk+JHtsfTwvbGk+YCkuam9pbigiIik7cmV0dXJuYDwke3J9PiR7b308LyR7cn0+YH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFyKXtjb25zb2xlLmVycm9yKCJMaXN0QmxvY2tIYW5kbGVyLnNldHVwOiBObyBsaXN0IGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59dC5jb250ZW50JiYhci5pbm5lckhUTUwmJihyLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHQuY29udGVudCx0Lm1ldGFkYXRhKSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYobyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe2xldCBsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihsJiZsLnJhbmdlQ291bnQ+MCl7bGV0IGQ9bC5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYoZCYmZC50ZXh0Q29udGVudD09PSIiKXtuLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24obik7cmV0dXJufX19YS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PVN0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT1TdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBMaXN0IHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2subGlzdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgdWwsCiAgICAgIC5ibG9jay5saXN0IG9sIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWR8fCFTdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGQuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCB1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIHUuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLHUuc2V0RW5kKGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksdS50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybiIiO2xldCByPWEucXVlcnlTZWxlY3RvckFsbCgibGkiKTtyZXR1cm4gQXJyYXkuZnJvbShyKS5tYXAobz0+by50ZXh0Q29udGVudHx8IiIpLmpvaW4oYApgKX1zZXRDb250ZW50KGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yLGw9ci5xdWVyeVNlbGVjdG9yKCJ1bCwgb2wiKT8udGFnTmFtZT09PSJPTCI7ci5pbm5lckhUTUw9dGhpcy5yZW5kZXJMaXN0Q29udGVudCh0LHtsaXN0VHlwZTpsPyJvcmRlcmVkIjoidW5vcmRlcmVkIn0pLG4mJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybjtsZXQgcj1hLnF1ZXJ5U2VsZWN0b3IoImxpIik7aWYocil7bGV0IG49dGhpcy5nZXRGaXJzdFRleHROb2RlKHIpO2lmKG4pe2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7by5zZXRTdGFydChuLDApLG8uc2V0RW5kKG4sMCksbD8ucmVtb3ZlQWxsUmFuZ2VzKCksbD8uYWRkUmFuZ2Uobyl9fX1zZXRDdXJzb3JUb0VuZChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm47bGV0IHI9YS5xdWVyeVNlbGVjdG9yKCJsaTpsYXN0LWNoaWxkIik7aWYocil7bGV0IG49dGhpcy5nZXRMYXN0VGV4dE5vZGUocik7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKSxwPW4udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtvLnNldFN0YXJ0KG4scCksby5zZXRFbmQobixwKSxsPy5yZW1vdmVBbGxSYW5nZXMoKSxsPy5hZGRSYW5nZShvKX19fWdldEZpcnN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD0wO3Q8ZS5jaGlsZE5vZGVzLmxlbmd0aDt0Kyspe2xldCBhPXRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbdF0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IHQ9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO3Q+PTA7dC0tKXtsZXQgYT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbdF0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7YSYmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWEmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIixhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpcmV0dXJuO3IuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCk7bGV0IG49aSgoKT0+e3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGEpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiZ0aGlzLnNldEN1cnNvclRvRW5kKGUsYSl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0pfWdldFNwbGl0Q29udGVudChlLHQpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0IiksbnVsbH19fSk7dmFyICRYLGkzYT1nKCgpPT57WWwoKTtwZSgpOyRYPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiSW1hZ2VCbG9ja0hhbmRsZXIiKX10eXBlPSJpbWFnZSI7cmVuZGVyKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8udXJsLHI9ZS5jb250ZW50fHwiSW1hZ2UiLG49ZS5tZXRhZGF0YT8ubG9hZGluZztyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtaW1hZ2U9IiR7ISFhfSIKICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgJHtuP3RoaXMucmVuZGVyTG9hZGluZygpOmE/dGhpcy5yZW5kZXJJbWFnZShhLHIpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX0KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgCiAgICAgICAgICAgICAgIGNsYXNzPSJpbWFnZS1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgYWNjZXB0PSJpbWFnZS8qIiAKICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiPgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1pY29uIiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIi8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41Ii8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIxIDE1IDE2IDEwIDUgMjEiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC10ZXh0IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5DbGljayB0byB1cGxvYWQgYW4gaW1hZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtaGludCIgc3R5bGU9InBvaW50ZXItZXZlbnRzOiBub25lOyI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVySW1hZ2UoZSx0KXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWNvbnRhaW5lciI+CiAgICAgICAgPGltZyBzcmM9IiR7ZX0iIGFsdD0iJHt0aGlzLmVzY2FwZUh0bWwodCl9IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTG9hZGluZygpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtbG9hZGluZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPlVwbG9hZGluZyBpbWFnZS4uLjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtZmlsZS1pbnB1dCIpO2lmKCFyKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgY29udGFpbmVyIik7cmV0dXJufWlmKCFuKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgZmlsZSBpbnB1dCIpO3JldHVybn1sZXQgbz1yLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBQbGFjZWhvbGRlciBjbGlja2VkLCBvcGVuaW5nIGZpbGUgc2VsZWN0b3IiKSxuLmNsaWNrKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2Eub25Gb2N1cygpfSksbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIGw9PntsZXQgZD1sLnRhcmdldC5maWxlcz8uWzBdO2QmJihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IEZpbGUgc2VsZWN0ZWQ6IixkLm5hbWUpLGF3YWl0IHRoaXMuaGFuZGxlRmlsZVVwbG9hZChkLHQsYSkpfSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLHQubWV0YWRhdGE/LnVybHx8ci5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsYXN5bmMgbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7bGV0IHA9bC5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO3AmJnAudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmIXQubWV0YWRhdGE/LnVybCYmYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKHAsdCxhKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsPT57aWYoKGwua2V5PT09IkRlbGV0ZSJ8fGwua2V5PT09IkJhY2tzcGFjZSIpJiZ0Lm1ldGFkYXRhPy51cmwpe3QubWV0YWRhdGEudXJsPXZvaWQgMCx0Lm1ldGFkYXRhLmxvYWRpbmc9ITEsdC5jb250ZW50PSIiLGEub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSk7cmV0dXJufWEub25LZXlEb3duKGwpfSl9YXN5bmMgaGFuZGxlRmlsZVVwbG9hZChlLHQsYSl7aWYoY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTdGFydGluZyBmaWxlIHVwbG9hZCIse2ZpbGVOYW1lOmUubmFtZSxmaWxlU2l6ZTplLnNpemUsYmxvY2tJZDp0LmlkfSksIWUudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6IixlLnR5cGUpO3JldHVybn1sZXQgcj0xMCoxMDI0KjEwMjQ7aWYoZS5zaXplPnIpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlLiBNYXhpbXVtIHNpemUgaXMgMTBNQiIpO3JldHVybn10Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS5sb2FkaW5nPSEwLHQubWV0YWRhdGEuZmlsZU5hbWU9ZS5uYW1lLHQubWV0YWRhdGEuZmlsZVNpemU9ZS5zaXplLHQubWV0YWRhdGEubWltZVR5cGU9ZS50eXBlLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogU2V0IGxvYWRpbmcgc3RhdGUsIHJlcXVlc3RpbmcgdXBkYXRlIiksYS5vblJlcXVlc3RVcGRhdGU/LigpO3RyeXtsZXQgbj1hd2FpdCB0aGlzLmZpbGVUb0RhdGFVcmwoZSk7dC5tZXRhZGF0YS51cmw9bix0Lm1ldGFkYXRhLmxvYWRpbmc9ITE7bGV0IG89ZS5uYW1lLnJlcGxhY2UoL1wuW14vLl0rJC8sIiIpO3QuY29udGVudD1vLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogVXBsb2FkIGNvbXBsZXRlLCByZXF1ZXN0aW5nIHVwZGF0ZSIse2hhc1VybDohIXQubWV0YWRhdGEudXJsLHVybExlbmd0aDpuLmxlbmd0aCxhbHRUZXh0OnQuY29udGVudH0pLGEub25SZXF1ZXN0VXBkYXRlPy4oKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBsb2FkIGltYWdlOiIsbiksdC5tZXRhZGF0YS5sb2FkaW5nPSExLGEub25SZXF1ZXN0VXBkYXRlPy4oKX19ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQsYSk9PntsZXQgcj1uZXcgRmlsZVJlYWRlcjtyLm9ubG9hZD1uPT57bGV0IG89bi50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbz09InN0cmluZyI/dChvKTphKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0sci5vbmVycm9yPWEsci5yZWFkQXNEYXRhVVJMKGUpfSl9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHQpe2xldCBhPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTthJiYoYS5jb250ZW50PXQpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBhP3tpZDphLHR5cGU6ImltYWdlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSW1hZ2UgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogVXBsb2FkIFBsYWNlaG9sZGVyICovCiAgICAgIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXI6aG92ZXIgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsIiMxZTFiNGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaWNvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBJbWFnZSBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBMb2FkaW5nIFN0YXRlICovCiAgICAgIC5pbWFnZS1sb2FkaW5nIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIGlucHV0IGhpZGRlbiAqLwogICAgICAuaW1hZ2UtZmlsZS1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICBgfX19KTt2YXIgRFgscjNhPWcoKCk9PntZbCgpO3BlKCk7RFg9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJZb3VUdWJlQmxvY2tIYW5kbGVyIil9dHlwZT0ieW91dHViZSI7cmVuZGVyKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8udmlkZW9JZCxyPWUubWV0YWRhdGE/LnVybHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtdmlkZW89IiR7ISFhfSI+CiAgICAgICAgJHthP3RoaXMucmVuZGVyVmlkZW8oYSk6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihyKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaWNvbiI+CiAgICAgICAgICA8c3ZnIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTkuNjE1IDMuMTg0Yy0zLjYwNC0uMjQ2LTExLjYzMS0uMjQ1LTE1LjIzIDAtMy44OTcuMjY2LTQuMzU2IDIuNjItNC4zODUgOC44MTYuMDI5IDYuMTg1LjQ4NCA4LjU0OSA0LjM4NSA4LjgxNiAzLjYuMjQ1IDExLjYyNi4yNDYgMTUuMjMgMCAzLjg5Ny0uMjY2IDQuMzU2LTIuNjIgNC4zODUtOC44MTYtLjAyOS02LjE4NS0uNDg0LTguNTQ5LTQuMzg1LTguODE2em0tMTAuNjE1IDEyLjgxNnYtOGw4IDMuOTkzLTggNC4wMDd6Ii8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5FbnRlciBZb3VUdWJlIFVSTDwvZGl2PgogICAgICAgIDxpbnB1dCB0eXBlPSJ1cmwiIAogICAgICAgICAgICAgICBjbGFzcz0ieW91dHViZS11cmwtaW5wdXQiIAogICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PS4uLiIgCiAgICAgICAgICAgICAgIHZhbHVlPSIke3RoaXMuZXNjYXBlSHRtbChlKX0iIC8+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0ieW91dHViZS1lbWJlZC1idG4iPkVtYmVkIFZpZGVvPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJWaWRlbyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtY29udGFpbmVyIj4KICAgICAgICA8aWZyYW1lIAogICAgICAgICAgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2V9IgogICAgICAgICAgZnJhbWVib3JkZXI9IjAiCiAgICAgICAgICBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIKICAgICAgICAgIGFsbG93ZnVsbHNjcmVlbgogICAgICAgID48L2lmcmFtZT4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpO2lmKCFyKXJldHVybjtpZih0Lm1ldGFkYXRhPy52aWRlb0lkKXtyLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PnsobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJmwucHJldmVudERlZmF1bHQoKSxhLm9uS2V5RG93bihsKX0pO3JldHVybn1sZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLXVybC1pbnB1dCIpLG89ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1lbWJlZC1idG4iKTshbnx8IW98fChuLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLG4uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLG8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5lbWJlZFZpZGVvKG4udmFsdWUsdCxhKX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbD0+e2wua2V5PT09IkVudGVyIj8obC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZW1iZWRWaWRlbyhuLnZhbHVlLHQsYSkpOmwua2V5PT09IkVzY2FwZSImJihsLnByZXZlbnREZWZhdWx0KCksbi5ibHVyKCkpfSksbi5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsbD0+e3NldFRpbWVvdXQoKCk9PntsZXQgcD1uLnZhbHVlO3RoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKHApJiZ0aGlzLmVtYmVkVmlkZW8ocCx0LGEpfSwwKX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEudXJsPW4udmFsdWV9KSl9ZW1iZWRWaWRlbyhlLHQsYSl7bGV0IHI9dGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQoZSk7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkludmFsaWQgWW91VHViZSBVUkwiKTtyZXR1cm59dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEudmlkZW9JZD1yLHQubWV0YWRhdGEudXJsPWUsdC5jb250ZW50PWBZb3VUdWJlIFZpZGVvOiAke3J9YCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9ZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGUpe2xldCB0PVsvKD86eW91dHViZVwuY29tXC8oPzpbXlwvXStcLy4rXC98KD86dnxlKD86bWJlZCk/KVwvfC4qWz8mXXY9KXx5b3V0dVwuYmVcLykoW14iJj9cLyBdezExfSkvLC95b3V0dWJlXC5jb21cL2VtYmVkXC8oW14iJj9cLyBdezExfSkvLC95b3V0dWJlXC5jb21cL3dhdGNoXD92PShbXiImP1wvIF17MTF9KS8sL3lvdXR1XC5iZVwvKFteIiY/XC8gXXsxMX0pL107Zm9yKGxldCBhIG9mIHQpe2xldCByPWUubWF0Y2goYSk7aWYocilyZXR1cm4gclsxXX1yZXR1cm4gbnVsbH1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2EmJihhLmNvbnRlbnQ9dCl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4gYT97aWQ6YSx0eXBlOiJ5b3V0dWJlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIiksYT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLXVybC1pbnB1dCIpO2E/YS5mb2N1cygpOnQmJnQuZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXt0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtyZXR1cm4gbnVsbH1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFlvdVR1YmUgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogWW91VHViZSBQbGFjZWhvbGRlciAqLwogICAgICAueW91dHViZS1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMzJweCAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0biB7CiAgICAgICAgcGFkZGluZzogNnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0bjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG46YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAvKiBZb3VUdWJlIENvbnRhaW5lciAqLwogICAgICAueW91dHViZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvKiAxNjo5IGFzcGVjdCByYXRpbyAqLwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtY29udGFpbmVyIGlmcmFtZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CiAgICBgfX19KTt2YXIgTFgsbzNhPWcoKCk9PntZbCgpO3BlKCk7TFg9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJBdHRhY2htZW50QmxvY2tIYW5kbGVyIil9dHlwZT0iYXR0YWNobWVudCI7cmVuZGVyKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWljb24iPlx1ezFGNENFfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC10aXRsZSI+RmlsZSBBdHRhY2htZW50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtbGlzdCI+CiAgICAgICAgICAke2EubGVuZ3RoPjA/dGhpcy5yZW5kZXJGaWxlcyhhKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIAogICAgICAgICAgICAgICBjbGFzcz0iYXR0YWNobWVudC1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgbXVsdGlwbGUgCiAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KICAgICAgICAke2EubGVuZ3RoPjA/JzxidXR0b24gY2xhc3M9ImFkZC1tb3JlLWZpbGVzIj5BZGQgTW9yZSBGaWxlczwvYnV0dG9uPic6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+Q2xpY2sgdG8gYWRkIGZpbGVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaGludCI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZXMoZSl7cmV0dXJuIGUubWFwKHQ9PmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pdGVtIiBkYXRhLWZpbGUtaWQ9IiR7dC5pZH0iPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaWNvbiI+JHt0aGlzLmdldEZpbGVJY29uKHQudHlwZSl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSI+JHt0aGlzLmVzY2FwZUh0bWwodC5uYW1lKX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKHQuc2l6ZSl9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWZpbGUiIGRhdGEtZmlsZS1pZD0iJHt0LmlkfSI+XHhENzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGApLmpvaW4oIiIpfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1maWxlLWlucHV0Iik7aWYoIXJ8fCFuKXtjb25zb2xlLmVycm9yKCJBdHRhY2htZW50QmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn10Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS5maWxlc3x8KHQubWV0YWRhdGEuZmlsZXM9W10pO2xldCBvPXIucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixwPT57cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCksbi5jbGljaygpfSk7bGV0IGw9ci5xdWVyeVNlbGVjdG9yKCIuYWRkLW1vcmUtZmlsZXMiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixwPT57cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCksbi5jbGljaygpfSksbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIHA9PntsZXQgZD1wLnRhcmdldCx1PWQuZmlsZXM7dSYmdS5sZW5ndGg+MCYmKGF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKHUsdCxhKSxkLnZhbHVlPSIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHA9PntsZXQgZD1wLnRhcmdldDtpZihkLmNsYXNzTGlzdC5jb250YWlucygicmVtb3ZlLWZpbGUiKSl7cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHU9ZC5nZXRBdHRyaWJ1dGUoImRhdGEtZmlsZS1pZCIpO3UmJnRoaXMucmVtb3ZlRmlsZSh1LHQsYSl9fSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIscD0+e3AucHJldmVudERlZmF1bHQoKSxwLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIscD0+e3AucHJldmVudERlZmF1bHQoKSxwLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGFzeW5jIHA9PntwLnByZXZlbnREZWZhdWx0KCkscC5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO2xldCBkPXAuZGF0YVRyYW5zZmVyPy5maWxlcztkJiZkLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyhkLHQsYSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscD0+e2lmKChwLmtleT09PSJEZWxldGUifHxwLmtleT09PSJCYWNrc3BhY2UiKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXImJnQubWV0YWRhdGE/LmZpbGVzPy5sZW5ndGg+MCl7cC5wcmV2ZW50RGVmYXVsdCgpLHQubWV0YWRhdGEuZmlsZXM9W10sYS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1hLm9uS2V5RG93bihwKX0pfWFzeW5jIGhhbmRsZUZpbGVBdHRhY2htZW50cyhlLHQsYSl7dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEuZmlsZXN8fCh0Lm1ldGFkYXRhLmZpbGVzPVtdKTtmb3IobGV0IHIgb2YgQXJyYXkuZnJvbShlKSl0cnl7bGV0IG49YXdhaXQgdGhpcy5maWxlVG9EYXRhVXJsKHIpLG89e2lkOnRoaXMuZ2VuZXJhdGVJZCgpLG5hbWU6ci5uYW1lLHNpemU6ci5zaXplLHR5cGU6ci50eXBlLGRhdGE6bn07dC5tZXRhZGF0YS5maWxlcy5wdXNoKG8pfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBhdHRhY2ggZmlsZToiLHIubmFtZSxuKX10LmNvbnRlbnQ9YCR7dC5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke3QubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9cmVtb3ZlRmlsZShlLHQsYSl7dC5tZXRhZGF0YT8uZmlsZXMmJih0Lm1ldGFkYXRhLmZpbGVzPXQubWV0YWRhdGEuZmlsZXMuZmlsdGVyKHI9PnIuaWQhPT1lKSx0LmNvbnRlbnQ9dC5tZXRhZGF0YS5maWxlcy5sZW5ndGg+MD9gJHt0Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7dC5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgOiIiLGEub25SZXF1ZXN0VXBkYXRlPy4oKSl9ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQsYSk9PntsZXQgcj1uZXcgRmlsZVJlYWRlcjtyLm9ubG9hZD1uPT57bGV0IG89bi50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbz09InN0cmluZyI/dChvKTphKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0sci5vbmVycm9yPWEsci5yZWFkQXNEYXRhVVJMKGUpfSl9Z2V0RmlsZUljb24oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiaW1hZ2UvIik/Ilx1ezFGNUJDfVx1RkUwRiI6ZS5zdGFydHNXaXRoKCJ2aWRlby8iKT8iXHV7MUYzQTV9IjplLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJcdXsxRjNCNX0iOmUuaW5jbHVkZXMoInBkZiIpPyJcdXsxRjRDNH0iOmUuaW5jbHVkZXMoInppcCIpfHxlLmluY2x1ZGVzKCJyYXIiKXx8ZS5pbmNsdWRlcygidGFyIik/Ilx1ezFGNUM0fVx1RkUwRiI6ZS5pbmNsdWRlcygic2hlZXQiKT8iXHV7MUY0Q0F9IjplLmluY2x1ZGVzKCJkb2N1bWVudCIpfHxlLmluY2x1ZGVzKCJtc3dvcmQiKT8iXHV7MUY0RER9IjplLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKT8iXHV7MUY0Q0J9IjplLmluY2x1ZGVzKCJ0ZXh0Iik/Ilx1ezFGNEMzfSI6Ilx1ezFGNEMxfSJ9Zm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCB0PTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scj1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHQpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyh0LHIpKS50b0ZpeGVkKDIpKSsiICIrYVtyXX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGZpbGUtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHQpe2xldCBhPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTthJiYoYS5jb250ZW50PXQpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToiYXR0YWNobWVudCIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQXR0YWNobWVudCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuYXR0YWNobWVudC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIExpc3QgKi8KICAgICAgLmF0dGFjaG1lbnQtbGlzdCB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBJdGVtcyAqLwogICAgICAuYXR0YWNobWVudC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1zaXplIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCIjOTkxYjFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmY2E1YTUiLCIjZGMyNjI2Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmY2E1YTUiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEFkZCBNb3JlIEZpbGVzIEJ1dHRvbiAqLwogICAgICAuYWRkLW1vcmUtZmlsZXMgewogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgIH0KICAgICAgCiAgICAgIC5hZGQtbW9yZS1maWxlczpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIaWRkZW4gZmlsZSBpbnB1dCAqLwogICAgICAuYXR0YWNobWVudC1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBFWCxuM2E9ZygoKT0+e1lsKCk7cGUoKTtFWD1jbGFzcyBleHRlbmRzIHBpe3N0YXRpY3tpKHRoaXMsIkRpdmlkZXJCbG9ja0hhbmRsZXIiKX10eXBlPSJkaXZpZGVyIjtyZW5kZXIoZSx0KXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIGRpdmlkZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IiBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIgdGFiaW5kZXg9IjAiPgogICAgICAgIDxocj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5kaXZpZGVyIik7ciYmKHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntuLnN0b3BQcm9wYWdhdGlvbigpLHIuZm9jdXMoKSxhLm9uRm9jdXM/LigpfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnthLm9uRm9jdXM/LigpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyPy4oKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+eyhuLmtleT09PSJCYWNrc3BhY2UifHxuLmtleT09PSJEZWxldGUiKSYmbi5wcmV2ZW50RGVmYXVsdCgpLGEub25LZXlEb3duPy4obil9KSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suZGl2aWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlci5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4yKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjIpIil9OwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlciBociB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgfX19KTt2YXIgUFgsbDNhPWcoKCk9PntZbCgpO3BlKCk7UFg9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJNYXJrZG93bkJsb2NrSGFuZGxlciIpfXR5cGU9Im1hcmtkb3duIjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxyPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2F9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taWNvbiI+TVx1MjE5MzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tdGl0bGUiPk1hcmtkb3duPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXJrZG93bi10b2dnbGUtbW9kZSIgdGl0bGU9IiR7YT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7YT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPgogICAgICAgICAgJHthP3RoaXMucmVuZGVyRWRpdG9yKHIpOnRoaXMucmVuZGVyUHJldmlldyhyKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckVkaXRvcihlKXtyZXR1cm5gCiAgICAgIDx0ZXh0YXJlYSBjbGFzcz0ibWFya2Rvd24tZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBtYXJrZG93biBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1wcmV2aWV3Ij4KICAgICAgICAke3RoaXMucGFyc2VNYXJrZG93bihlKXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi10b2dnbGUtbW9kZSIpO2lmKCFyfHwhbil7Y29uc29sZS5lcnJvcigiTWFya2Rvd25CbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJih0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntpZihvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPXIucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2wmJih0LmNvbnRlbnQ9bC52YWx1ZSl9dC5tZXRhZGF0YS5pc0VkaXRNb2RlPSF0Lm1ldGFkYXRhLmlzRWRpdE1vZGUsYS5vblJlcXVlc3RVcGRhdGU/LigpfSksdC5tZXRhZGF0YS5pc0VkaXRNb2RlP3RoaXMuc2V0dXBFZGl0b3IoZSx0LGEpOnRoaXMuc2V0dXBQcmV2aWV3KGUsdCxhKX1zZXR1cEVkaXRvcihlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7ciYmKHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0LmNvbnRlbnQ9ci52YWx1ZX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2lmKG4ua2V5PT09IlRhYiIpe24ucHJldmVudERlZmF1bHQoKTtsZXQgbz1yLnNlbGVjdGlvblN0YXJ0LGw9ci5zZWxlY3Rpb25FbmQscD1yLnZhbHVlO2lmKG4uc2hpZnRLZXkpe2xldCBjPXAuc3Vic3RyaW5nKDAsbykubGFzdEluZGV4T2YoYApgKSsxLGI9cC5zdWJzdHJpbmcoYyxvKTtiLnN0YXJ0c1dpdGgoIiAgIikmJihyLnZhbHVlPXAuc3Vic3RyaW5nKDAsYykrYi5zdWJzdHJpbmcoMikrcC5zdWJzdHJpbmcobyksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1vLTIpfWVsc2Ugci52YWx1ZT1wLnN1YnN0cmluZygwLG8pKyIgICIrcC5zdWJzdHJpbmcobCksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1vKzI7dC5jb250ZW50PXIudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImIiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKHIsIioqIiwiKioiKSx0LmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKG4uY3RybEtleXx8bi5tZXRhS2V5KSYmbi5rZXk9PT0iaSIpe24ucHJldmVudERlZmF1bHQoKSx0aGlzLndyYXBTZWxlY3Rpb24ociwiXyIsIl8iKSx0LmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKG4uY3RybEtleXx8bi5tZXRhS2V5KSYmbi5rZXk9PT0iayIpe24ucHJldmVudERlZmF1bHQoKSx0aGlzLmluc2VydExpbmsociksdC5jb250ZW50PXIudmFsdWU7cmV0dXJufWEub25LZXlEb3duKG4pfSksdGhpcy5hdXRvUmVzaXplKHIpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUocikpKX1zZXR1cFByZXZpZXcoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tcHJldmlldyIpOyFyfHwhbnx8KG4uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxuLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLG4uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLG4uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2lmKG8ua2V5PT09IkVudGVyIiYmIW8uc2hpZnRLZXkpe28ucHJldmVudERlZmF1bHQoKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITAsYS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1hLm9uS2V5RG93bihvKX0pKX13cmFwU2VsZWN0aW9uKGUsdCxhKXtsZXQgcj1lLnNlbGVjdGlvblN0YXJ0LG49ZS5zZWxlY3Rpb25FbmQsbz1lLnZhbHVlLnN1YnN0cmluZyhyLG4pLGw9dCsob3x8InRleHQiKSthO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCxyKStsK2UudmFsdWUuc3Vic3RyaW5nKG4pLG8/KGUuc2VsZWN0aW9uU3RhcnQ9cixlLnNlbGVjdGlvbkVuZD1yK2wubGVuZ3RoKTooZS5zZWxlY3Rpb25TdGFydD1yK3QubGVuZ3RoLGUuc2VsZWN0aW9uRW5kPXIrdC5sZW5ndGgrNCksZS5mb2N1cygpfWluc2VydExpbmsoZSl7bGV0IHQ9ZS5zZWxlY3Rpb25TdGFydCxhPWUuc2VsZWN0aW9uRW5kLG49ZS52YWx1ZS5zdWJzdHJpbmcodCxhKXx8ImxpbmsgdGV4dCIsbz1gWyR7bn1dKHVybClgO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCx0KStvK2UudmFsdWUuc3Vic3RyaW5nKGEpLGUuc2VsZWN0aW9uU3RhcnQ9dCtuLmxlbmd0aCszLGUuc2VsZWN0aW9uRW5kPXQrbi5sZW5ndGgrNixlLmZvY3VzKCl9YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In1wYXJzZU1hcmtkb3duKGUpe2xldCB0PXRoaXMuZXNjYXBlSHRtbChlKTtyZXR1cm4gdD10LnJlcGxhY2UoL14jIyMgKC4rKSQvZ20sIjxoMz4kMTwvaDM+IiksdD10LnJlcGxhY2UoL14jIyAoLispJC9nbSwiPGgyPiQxPC9oMj4iKSx0PXQucmVwbGFjZSgvXiMgKC4rKSQvZ20sIjxoMT4kMTwvaDE+IiksdD10LnJlcGxhY2UoL1wqXCooLis/KVwqXCovZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9fXyguKz8pX18vZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9cKiguKz8pXCovZywiPGVtPiQxPC9lbT4iKSx0PXQucmVwbGFjZSgvXyguKz8pXy9nLCI8ZW0+JDE8L2VtPiIpLHQ9dC5yZXBsYWNlKC9gYGAoW1xzXFNdKj8pYGBgL2csIjxwcmU+PGNvZGU+JDE8L2NvZGU+PC9wcmU+IiksdD10LnJlcGxhY2UoL2AoLis/KWAvZywiPGNvZGU+JDE8L2NvZGU+IiksdD10LnJlcGxhY2UoL1xbKFteXF1dKylcXVwoKFteKV0rKVwpL2csJzxhIGhyZWY9IiQyIj4kMTwvYT4nKSx0PXQucmVwbGFjZSgvXlwqICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC9eLSAoLispJC9nbSwiPGxpPiQxPC9saT4iKSx0PXQucmVwbGFjZSgvXlxkK1wuICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC8oPGxpPi4qPFwvbGk+XG4/KSsvZyxhPT4iPHVsPiIrYSsiPC91bD4iKSx0PXQucmVwbGFjZSgvXG5cbi9nLCI8L3A+PHA+IiksdD0iPHA+Iit0KyI8L3A+Iix0PXQucmVwbGFjZSgvPHA+PFwvcD4vZywiIiksdD10LnJlcGxhY2UoLzxwPig8aFsxLTNdPikvZywiJDEiKSx0PXQucmVwbGFjZSgvKDxcL2hbMS0zXT4pPFwvcD4vZywiJDEiKSx0PXQucmVwbGFjZSgvPHA+KDx1bD4pL2csIiQxIiksdD10LnJlcGxhY2UoLyg8XC91bD4pPFwvcD4vZywiJDEiKSx0PXQucmVwbGFjZSgvPHA+KDxwcmU+KS9nLCIkMSIpLHQ9dC5yZXBsYWNlKC8oPFwvcHJlPik8XC9wPi9nLCIkMSIpLHR9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYodClyZXR1cm4gdC52YWx1ZTtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2EmJihhLnZhbHVlPXQsdGhpcy5hdXRvUmVzaXplKGEpKX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyZXR1cm4gdD90LnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTt0Pyh0LnNlbGVjdGlvblN0YXJ0PXQuc2VsZWN0aW9uRW5kPTAsdC5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKHQpe2xldCBhPXQudmFsdWUubGVuZ3RoO3Quc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9YSx0LmZvY3VzKCl9ZWxzZSB0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3Q/dC5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTthP3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgdD09Im51bWJlciImJihhLnNlbGVjdGlvblN0YXJ0PWEuc2VsZWN0aW9uRW5kPXQsYS5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZighdClyZXR1cm4gbnVsbDtsZXQgYT10LnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6dC52YWx1ZS5zdWJzdHJpbmcoMCxhKSxhZnRlcjp0LnZhbHVlLnN1YnN0cmluZyhhKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBNYXJrZG93biBCbG9jayBDb250YWluZXIgKi8KICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLm1hcmtkb3duLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24taWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvbnRlbnQgKi8KICAgICAgLm1hcmtkb3duLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5tYXJrZG93bi1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWVkaXRvcjo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFByZXZpZXcgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogTWFya2Rvd24gcHJldmlldyBzdHlsZXMgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTZweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgyIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE0cHggMCA2cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxMnB4IDAgNHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgdWwsCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IG9sIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBzdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgZW0gewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICBgfX19KTt2YXIgSVgsYzNhPWcoKCk9PntZbCgpO3BlKCk7SVg9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJIdG1sQmxvY2tIYW5kbGVyIil9dHlwZT0iaHRtbCI7cmVuZGVyKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAscj1lLmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaHRtbC1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2F9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWljb24iPiZsdDsvJmd0OzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC10aXRsZSI+SFRNTDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaHRtbC10b2dnbGUtbW9kZSIgdGl0bGU9IiR7YT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7YT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtY29udGVudCI+CiAgICAgICAgICAke2E/dGhpcy5yZW5kZXJFZGl0b3Iocik6dGhpcy5yZW5kZXJQcmV2aWV3KHIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKGUpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJodG1sLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgSFRNTCBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLXByZXZpZXciPgogICAgICAgICR7ZXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKSxuPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtdG9nZ2xlLW1vZGUiKTtpZighcnx8IW4pe2NvbnNvbGUuZXJyb3IoIkh0bWxCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJih0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntpZihvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPXIucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7bCYmKHQuY29udGVudD1sLnZhbHVlKX10Lm1ldGFkYXRhLmlzRWRpdE1vZGU9IXQubWV0YWRhdGEuaXNFZGl0TW9kZSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcihlLHQsYSk6dGhpcy5zZXR1cFByZXZpZXcoZSx0LGEpfXNldHVwRWRpdG9yKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3ImJihyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dC5jb250ZW50PXIudmFsdWUsdGhpcy52YWxpZGF0ZUh0bWwoci52YWx1ZSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89ci5zZWxlY3Rpb25TdGFydCxsPXIuc2VsZWN0aW9uRW5kLHA9ci52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgYz1wLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxiPXAuc3Vic3RyaW5nKGMsbyk7Yi5zdGFydHNXaXRoKCIgICIpJiYoci52YWx1ZT1wLnN1YnN0cmluZygwLGMpK2Iuc3Vic3RyaW5nKDIpK3Auc3Vic3RyaW5nKG8pLHIuc2VsZWN0aW9uU3RhcnQ9ci5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIHIudmFsdWU9cC5zdWJzdHJpbmcoMCxvKSsiICAiK3Auc3Vic3RyaW5nKGwpLHIuc2VsZWN0aW9uU3RhcnQ9ci5zZWxlY3Rpb25FbmQ9bysyO3QuY29udGVudD1yLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSIvIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXV0b0Nsb3NlVGFnKHIpLHQuY29udGVudD1yLnZhbHVlO3JldHVybn1hLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShyKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKHIpKSl9c2V0dXBQcmV2aWV3KGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1wcmV2aWV3Iik7IXJ8fCFufHwobi5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57aWYoby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7by5wcmV2ZW50RGVmYXVsdCgpLHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWEub25LZXlEb3duKG8pfSksdGhpcy5zYW5kYm94Q29udGVudChuKSl9YXV0b0Nsb3NlVGFnKGUpe2xldCB0PWUuc2VsZWN0aW9uU3RhcnQsYT1lLnZhbHVlLHI9dDtmb3IoO3I+MCYmYVtyLTFdIT09IjwiOylyLS07aWYocj4wKXtsZXQgbz1hLnN1YnN0cmluZyhyLHQpLm1hdGNoKC9eKFx3KykvKTtpZihvKXtsZXQgcD1gPC8ke29bMV19PmA7ZS52YWx1ZT1hLnN1YnN0cmluZygwLHQpKyI+IitwK2Euc3Vic3RyaW5nKHQpLGUuc2VsZWN0aW9uU3RhcnQ9ZS5zZWxlY3Rpb25FbmQ9dCsxfX19YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In12YWxpZGF0ZUh0bWwoZSl7bGV0IHQ9W10sYT0vPFwvPyhbYS16QS1aXVthLXpBLVowLTldKilcYltePl0qPi9nLHI7Zm9yKDsocj1hLmV4ZWMoZSkpIT09bnVsbDspe2xldCBuPXJbMF0uc3RhcnRzV2l0aCgiPC8iKSxvPXJbMV0udG9Mb3dlckNhc2UoKTtpZihuKXtpZih0Lmxlbmd0aD09PTB8fHRbdC5sZW5ndGgtMV0hPT1vKXJldHVybiBjb25zb2xlLndhcm4oYE1pc21hdGNoZWQgY2xvc2luZyB0YWc6ICR7b31gKSwhMTt0LnBvcCgpfWVsc2UgclswXS5lbmRzV2l0aCgiLz4iKXx8dC5wdXNoKG8pfXJldHVybiB0Lmxlbmd0aD4wPyhjb25zb2xlLndhcm4oYFVuY2xvc2VkIHRhZ3M6ICR7dC5qb2luKCIsICIpfWApLCExKTohMH1zYW5kYm94Q29udGVudChlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpLmZvckVhY2gobj0+bi5yZW1vdmUoKSksZS5xdWVyeVNlbGVjdG9yQWxsKCIqIikuZm9yRWFjaChuPT57QXJyYXkuZnJvbShuLmF0dHJpYnV0ZXMpLmZvckVhY2gobz0+e28ubmFtZS5zdGFydHNXaXRoKCJvbiIpJiZuLnJlbW92ZUF0dHJpYnV0ZShvLm5hbWUpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKS5mb3JFYWNoKG49PntuLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsbz0+e28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpfSl9KX1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKHQpcmV0dXJuIHQudmFsdWU7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7YSYmKGEudmFsdWU9dCx0aGlzLmF1dG9SZXNpemUoYSkpfWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cmV0dXJuIHQ/dC5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTt0Pyh0LnNlbGVjdGlvblN0YXJ0PXQuc2VsZWN0aW9uRW5kPTAsdC5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYodCl7bGV0IGE9dC52YWx1ZS5sZW5ndGg7dC5zZWxlY3Rpb25TdGFydD10LnNlbGVjdGlvbkVuZD1hLHQuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTt0P3QuZm9jdXMoKTplLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2E/dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiB0PT0ibnVtYmVyIiYmKGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9dCxhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGE9dC5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnQudmFsdWUuc3Vic3RyaW5nKDAsYSksYWZ0ZXI6dC52YWx1ZS5zdWJzdHJpbmcoYSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSFRNTCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5odG1sLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAuaHRtbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAuaHRtbC1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAuaHRtbC1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNhbmRib3hlZCBIVE1MIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5odG1sLXByZXZpZXcgKiB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGltZyB7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRhYmxlIHsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGgsCiAgICAgIC5odG1sLXByZXZpZXcgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgfX19KTt2YXIgcGl0PWcoKCk9PntZbCgpO08wYSgpO0YwYSgpO0IwYSgpO0gwYSgpO3EwYSgpO2EzYSgpO3MzYSgpO2kzYSgpO3IzYSgpO28zYSgpO24zYSgpO2wzYSgpO2MzYSgpfSk7ZnVuY3Rpb24gZDNhKCl7SXMucmVnaXN0ZXIoImRpdmlkZXIiLG5ldyBFWCksSXMucmVnaXN0ZXIoInBhcmFncmFwaCIsbmV3IFBaKSxJcy5yZWdpc3RlcigiaGVhZGluZy0xIixuZXcgcTgoImhlYWRpbmctMSIpKSxJcy5yZWdpc3RlcigiaGVhZGluZy0yIixuZXcgcTgoImhlYWRpbmctMiIpKSxJcy5yZWdpc3RlcigiaGVhZGluZy0zIixuZXcgcTgoImhlYWRpbmctMyIpKSxJcy5yZWdpc3RlcigicXVvdGUiLG5ldyBJWiksSXMucmVnaXN0ZXIoImNvZGUiLG5ldyBDWCksSXMucmVnaXN0ZXIoImxpc3QiLG5ldyBUWCksSXMucmVnaXN0ZXIoImltYWdlIixuZXcgJFgpLElzLnJlZ2lzdGVyKCJ5b3V0dWJlIixuZXcgRFgpLElzLnJlZ2lzdGVyKCJhdHRhY2htZW50IixuZXcgTFgpLElzLnJlZ2lzdGVyKCJtYXJrZG93biIsbmV3IFBYKSxJcy5yZWdpc3RlcigiaHRtbCIsbmV3IElYKX12YXIgaGl0PWcoKCk9PntwaXQoKTtpKGQzYSwicmVnaXN0ZXJBbGxCbG9ja0hhbmRsZXJzIiksZDNhKCl9KTt2YXIgQVgsZml0PWcoKCk9PntwZSgpO0owKCk7TWwoKTtCOCgpO05uZSgpO0FYPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdNb2RhbE1hbmFnZXIiKX1zdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2xldCB0PW51bGw7UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2VsZWN0IFByb2dyYW1taW5nIExhbmd1YWdlIixjb250ZW50OndgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5sYW5ndWFnZS1jb250YWluZXIgewogICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7CiAgICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChhPT53YAogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke3Q9PT1hLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0PWEudG9Mb3dlckNhc2UoKTtsZXQgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7ciYmdHlwZW9mIHIuZGVzdHJveT09ImZ1bmN0aW9uIiYmci5kZXN0cm95KCksZSh0KX19Ij4KICAgICAgICAgICAgICAgICAgJHthfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgYT0+e2EuZGVzdHJveSgpLGUobnVsbCl9LCJhY3Rpb24iKX1dfSl9KX1zdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbChlLHQpe2xldCBhPXdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLWxhYmVsIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtaWNvbiB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmdldEJsb2NrVHlwZVNlbGVjdG9yKGUsdCl9CiAgICAgICAgJHtlLnR5cGU9PT0iY29kZSI/dGhpcy5nZXRDb2RlQmxvY2tTZXR0aW5ncyhlLHQpOiIifQogICAgICA8L2Rpdj4KICAgIGA7UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQmxvY2sgU2V0dGluZ3MiLGNvbnRlbnQ6YSxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjppKGFzeW5jIHI9PntyLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KX1zdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogNnB4OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+UHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAocj0+d2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7YT09PXIudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57ZS5tZXRhZGF0YXx8KGUubWV0YWRhdGE9e30pLGUubWV0YWRhdGEubGFuZ3VhZ2U9ci50b0xvd2VyQ2FzZSgpLHQoZSk7bGV0IG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO24mJnR5cGVvZiBuLmRlc3Ryb3k9PSJmdW5jdGlvbiImJm4uZGVzdHJveSgpfX0iCiAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3J9IgogICAgICAgICAgICA+JHtyfTwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWMgZ2V0TGFuZ3VhZ2VzKCl7cmV0dXJuWy4uLkxaXX1zdGF0aWMgZ2V0QmxvY2tUeXBlU2VsZWN0b3IoZSx0KXtsZXQgYT1jci5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihyPT5yLnR5cGUhPT0iZGl2aWRlciIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+QmxvY2sgVHlwZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrLXR5cGUtZ3JpZCI+CiAgICAgICAgICAke2EubWFwKHI9PndgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9ImJsb2NrLXR5cGUtYnV0dG9uICR7ZS50eXBlPT09ci50eXBlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0iJHthc3luYyBuPT57bGV0IG89bi5jdXJyZW50VGFyZ2V0LGw9ZS50eXBlO2lmKGUudHlwZT1yLnR5cGUsbD09PSJjb2RlIiYmZS50eXBlIT09ImNvZGUiKWRlbGV0ZSBlLm1ldGFkYXRhPy5sYW5ndWFnZTtlbHNlIGlmKGw9PT0ibGlzdCImJmUudHlwZSE9PSJsaXN0IilkZWxldGUgZS5tZXRhZGF0YT8ubGlzdFR5cGU7ZWxzZSBpZihlLnR5cGU9PT0ibGlzdCImJiFlLm1ldGFkYXRhPy5saXN0VHlwZSllLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In07ZWxzZSBpZihlLnR5cGU9PT0iY29kZSImJiFlLm1ldGFkYXRhPy5sYW5ndWFnZSl7bGV0IGQ9YXdhaXQgdGhpcy5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO2lmKGQpZS5tZXRhZGF0YT17bGFuZ3VhZ2U6ZH07ZWxzZXtlLnR5cGU9bDtyZXR1cm59fXQoZSk7bGV0IHA9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO3AmJnR5cGVvZiBwLmRlc3Ryb3k9PSJmdW5jdGlvbiImJnAuZGVzdHJveSgpfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmxvY2stdHlwZS1pY29uIj4ke3IuaWNvbn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+JHtyLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX19KTt2YXIgTlgsdTNhPWcoKCk9PntNbCgpO2d2KCk7QjgoKTtpdSgpO2N0dCgpO2ZpdCgpO05YPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdJbnB1dEhhbmRsZXIiKX1jb21wb25lbnQ7c2F2ZVRpbWVvdXQ9bnVsbDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWhhbmRsZUJsb2NrSW5wdXQoZSx0KXtpZih0aGlzLmNvbXBvbmVudC5pc0NvbXBvc2luZylyZXR1cm47bGV0IGE9ZS50YXJnZXQscj1hLnRleHRDb250ZW50fHwiIixuPXRoaXMuZGV0ZWN0QmxvY2tUeXBlSW50ZW50KHIpO2lmKG4mJm4udHlwZSE9PXQudHlwZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQmxvY2tUcmFuc2Zvcm1hdGlvbih0LG4sYSk7cmV0dXJufXRoaXMuaGFuZGxlU2xhc2hDb21tYW5kKHIsYSksdGhpcy5zY2hlZHVsZUF1dG9TYXZlKCl9dXBkYXRlQmxvY2tDb250ZW50KGUsdCl7bGV0IHI9dC5jbG9zZXN0KCIuYmxvY2std3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihyKXtsZXQgbj1yLmdldENvbnRlbnQoKTtpZihlLmNvbnRlbnQhPT1uJiYoZS5jb250ZW50PW4pLGUudHlwZT09PSJsaXN0Iil7bGV0IG89dC5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtvJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6by50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfX1lbHNlIGlmKGUudHlwZT09PSJsaXN0Iil7bGV0IG49dC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO2UuY29udGVudD1BcnJheS5mcm9tKG4pLm1hcChsPT5sLmlubmVySFRNTHx8IiIpLmpvaW4oYApgKTtsZXQgbz10LnF1ZXJ5U2VsZWN0b3IoIm9sLCB1bCIpO28mJihlLm1ldGFkYXRhPXtsaXN0VHlwZTpvLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifSl9ZWxzZSBlLnR5cGU9PT0iY29kZSI/ZS5jb250ZW50PXQudGV4dENvbnRlbnR8fCIiOmUuY29udGVudD10LmlubmVySFRNTHx8IiJ9ZGV0ZWN0QmxvY2tUeXBlSW50ZW50KGUpe2xldCB0PWNyLmNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IGE9Y3IuY2hlY2tMaXN0U2hvcnRjdXQoZSk7cmV0dXJuIGF8fChjci5jaGVja1F1b3RlU2hvcnRjdXQoZSk/e3R5cGU6InF1b3RlIn06Y3IuY2hlY2tDb2RlU2hvcnRjdXQoZSk/e3R5cGU6ImNvZGUifTpjci5jaGVja0RpdmlkZXJTaG9ydGN1dChlKT97dHlwZToiZGl2aWRlciJ9Om51bGwpfWFzeW5jIGhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oZSx0LGEpe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZih0LnR5cGU9PT0ibGlzdCIpe2UudHlwZT0ibGlzdCIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xpc3RUeXBlOnQubGlzdFR5cGV9O2xldCBuPXQubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO2EuaW5uZXJIVE1MPWA8JHtufT48bGk+PC9saT48LyR7bn0+YCx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KCgpPT57Q28uZm9jdXNMaXN0SXRlbShhKX0sMCl9ZWxzZSBpZih0LnR5cGU9PT0iZGl2aWRlciIpe2UudHlwZT0iZGl2aWRlciIsZS5jb250ZW50PSIgIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCk7bGV0IG49ci5jcmVhdGVCbG9jaygpO3IuaW5zZXJ0QmxvY2tBZnRlcihlLG4pLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZSBpZih0LnR5cGU9PT0iY29kZSIpe2xldCBuPWF3YWl0IEFYLnNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCk7biYmKGUudHlwZT0iY29kZSIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xhbmd1YWdlOm59LGEudGV4dENvbnRlbnQ9IiIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgci5mb2N1c0Jsb2NrKGUuaWQsInN0YXJ0Iil9LDUwKSl9ZWxzZSBlLnR5cGU9dC50eXBlLGUuY29udGVudD0iIixhLnRleHRDb250ZW50PSIiLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHIuZm9jdXNCbG9jayhlLmlkLCJzdGFydCIpfSw1MCl9aGFuZGxlU2xhc2hDb21tYW5kKGUsdCl7bGV0IGE9dGhpcy5jb21wb25lbnQuc2xhc2hNZW51LHI9YSYmYS52aXNpYmxlO2lmKGU9PT0iLyJ8fGUuc3RhcnRzV2l0aCgiLyIpJiZyKXtpZighciYmZT09PSIvIil7bGV0IG49dGhpcy5nZXRDYXJldENvb3JkaW5hdGVzKHQpO2Euc2hvdyh7eDpuLmxlZnQseTpuLmJvdHRvbSs0fSxvPT57dGhpcy5jb21wb25lbnQuaW5zZXJ0QmxvY2sobyl9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmdC5mb2N1cygpfSl9YSYmYS51cGRhdGVGaWx0ZXIoZS5zbGljZSgxKSl9ZWxzZSBlLnN0YXJ0c1dpdGgoIi8iKXx8dGhpcy5jb21wb25lbnQuY2xvc2VTbGFzaE1lbnUoKX1nZXRDYXJldENvb3JkaW5hdGVzKGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZih0JiZ0LnJhbmdlQ291bnQ+MCl7bGV0IHI9dC5nZXRSYW5nZUF0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKHIud2lkdGg+MHx8ci5oZWlnaHQ+MClyZXR1cm4gcn1yZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1zY2hlZHVsZUF1dG9TYXZlKCl7dGhpcy5zYXZlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpLCEodGhpcy5jb21wb25lbnQuc2xhc2hNZW51JiZ0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSkmJih0aGlzLnNhdmVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnN5bmNBbGxCbG9ja0NvbnRlbnQoKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfSwyZTMpKX1zeW5jQWxsQmxvY2tDb250ZW50KCl7dGhpcy5jb21wb25lbnQuYmxvY2tzLmZvckVhY2goZT0+e2xldCBhPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoYSYmYS5nZXRDb250ZW50KXtsZXQgcj1hLmdldENvbnRlbnQoKTtlLmNvbnRlbnQhPT1yJiYoZS5jb250ZW50PXIpfX0pfWRlc3Ryb3koKXt0aGlzLnNhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCl9fX0pO3ZhciBSWCxwM2E9ZygoKT0+e01sKCk7Z3YoKTtEZCgpO1JYPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdLZXlib2FyZEhhbmRsZXIiKX1jb21wb25lbnQ7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1hc3luYyBoYW5kbGVCbG9ja0tleURvd24oZSx0KXtpZih0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5pc1NsYXNoTWVudUtleShlLmtleSkpe3RoaXMuY29tcG9uZW50LmhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGUpO3JldHVybn1pZighdGhpcy5oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpKXN3aXRjaChlLmtleSl7Y2FzZSJUYWIiOnRoaXMuaGFuZGxlVGFiKGUsdCk7YnJlYWs7Y2FzZSJFbnRlciI6YXdhaXQgdGhpcy5oYW5kbGVFbnRlcihlLHQpO2JyZWFrO2Nhc2UiQmFja3NwYWNlIjphd2FpdCB0aGlzLmhhbmRsZUJhY2tzcGFjZShlLHQpO2JyZWFrO2Nhc2UiRGVsZXRlIjphd2FpdCB0aGlzLmhhbmRsZURlbGV0ZShlLHQpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1VwKGUsdCk7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dEb3duKGUsdCk7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dMZWZ0KGUsdCk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93UmlnaHQoZSx0KTticmVha319aXNTbGFzaE1lbnVLZXkoZSl7cmV0dXJuWyJBcnJvd0Rvd24iLCJBcnJvd1VwIiwiRW50ZXIiLCJFc2NhcGUiXS5pbmNsdWRlcyhlKX1oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpe2lmKCEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpKXJldHVybiExO3N3aXRjaChlLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlImIiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoImJvbGQiKSksITA7Y2FzZSJpIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJpdGFsaWMiKSksITA7Y2FzZSJ1IjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJ1bmRlcmxpbmUiKSksITA7Y2FzZSJrIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJsaW5rIikpLCEwfXJldHVybiExfWhhbmRsZVRhYihlLHQpe3QudHlwZSE9PSJjb2RlIiYmdC50eXBlPT09Imxpc3QiJiZlLnByZXZlbnREZWZhdWx0KCl9YXN5bmMgaGFuZGxlRW50ZXIoZSx0KXtsZXQgYT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbj1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQsbik7cmV0dXJufWlmKHQudHlwZT09PSJjb2RlIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPWEuY3JlYXRlQmxvY2soKTthd2FpdCBhLmluc2VydEJsb2NrQWZ0ZXIodCxuKX1yZXR1cm59aWYoIWUuc2hpZnRLZXkpaWYodC50eXBlPT09Imxpc3QiKWF3YWl0IHRoaXMuaGFuZGxlRW50ZXJJbkxpc3QoZSx0KTtlbHNle2UucHJldmVudERlZmF1bHQoKTtsZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG8mJm8uZ2V0U3BsaXRDb250ZW50KXtsZXQgbD1vLmdldFNwbGl0Q29udGVudCgpO2lmKGwpe28uc2V0Q29udGVudChsLmJlZm9yZSksdC5jb250ZW50PWwuYmVmb3JlO2xldCBwPWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsbC5hZnRlcik7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQscCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1lbHNle2xldCBwPWEuY3JlYXRlQmxvY2soKTthd2FpdCBhLmluc2VydEJsb2NrQWZ0ZXIodCxwKX19ZWxzZXtsZXQgbD1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQsbCl9fX1hc3luYyBoYW5kbGVFbnRlckluTGlzdChlLHQpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihhJiZhLnJhbmdlQ291bnQ+MCl7bGV0IG49YS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYobiYmbi50ZXh0Q29udGVudD09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG89dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9by5jcmVhdGVCbG9jaygpO2F3YWl0IG8uaW5zZXJ0QmxvY2tBZnRlcih0LGwpfX19YXN5bmMgaGFuZGxlQmFja3NwYWNlKGUsdCl7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0LnR5cGUpKXtpZihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD09PTEpe3RoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGEucmVtb3ZlQmxvY2sodC5pZCk7bGV0IHg9YS5jcmVhdGVCbG9jaygicGFyYWdyYXBoIiwiIik7dGhpcy5jb21wb25lbnQuYmxvY2tzPVt4XSx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksYXdhaXQgYS5mb2N1c0Jsb2NrKHguaWQsInN0YXJ0IiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtyZXR1cm59dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSk7bGV0IGI9YS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpLHY9YS5nZXROZXh0QmxvY2sodC5pZCk7YS5yZW1vdmVCbG9jayh0LmlkKSxiJiZiLnR5cGUhPT0iZGl2aWRlciImJmIudHlwZSE9PSJpbWFnZSI/YXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQsImVuZCIpOnYmJnYudHlwZSE9PSJkaXZpZGVyIiYmdi50eXBlIT09ImltYWdlIj9hd2FpdCBhLmZvY3VzQmxvY2sodi5pZCwic3RhcnQiKTpiP2F3YWl0IGEuZm9jdXNCbG9jayhiLmlkKTp2JiZhd2FpdCBhLmZvY3VzQmxvY2sodi5pZCk7cmV0dXJufWxldCBvPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3QuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW98fCFvLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBsPXQudHlwZT09PSJjb2RlIj9vLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFsKXJldHVybjtsZXQgcD1vLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGQ9W107cD8uc2hhZG93Um9vdCYmZC5wdXNoKHAuc2hhZG93Um9vdCksZC5wdXNoKG8uc2hhZG93Um9vdCk7bGV0IHU9U3QuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobCwuLi5kKSxjPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTpsLnRleHRDb250ZW50O2lmKHU9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGI9YS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO2lmKGIpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhiLnR5cGUpKXthd2FpdCBhLmZvY3VzQmxvY2soYi5pZCk7cmV0dXJufWlmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGIudHlwZT09PSJjb2RlIiYmdC50eXBlIT09ImNvZGUiKXt0LmNvbnRlbnQ9PT0iIiYmKGEucmVtb3ZlQmxvY2sodC5pZCksYXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQsImVuZCIpKTtyZXR1cm59aWYodC50eXBlPT09ImNvZGUiJiZiLnR5cGUhPT0iY29kZSIpe2xldCBOPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTp0LmNvbnRlbnQ7KE49PT0iInx8Ti50cmltKCk9PT0iIikmJihhLnJlbW92ZUJsb2NrKHQuaWQpLGF3YWl0IGEuZm9jdXNCbG9jayhiLmlkLCJlbmQiKSk7cmV0dXJufWxldCBtPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2IuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIiksZj1tPy5nZXRDb250ZW50KCl8fGIuY29udGVudHx8IiIseT1vLmdldENvbnRlbnQoKXx8dC5jb250ZW50fHwiIixNPSIiO2IudHlwZT09PSJjb2RlIiYmdC50eXBlPT09ImNvZGUifHxiLnR5cGU9PT0ibGlzdCImJnQudHlwZT09PSJsaXN0Ij9NPWYrKGYmJnk/YApgOiIiKSt5Ok09ZisoZiYmeT8iICI6IiIpK3k7bGV0IHo9Zi5sZW5ndGg7YS51cGRhdGVCbG9ja0NvbnRlbnQoYi5pZCxNKSxtJiZtLnNldENvbnRlbnQoTSksYS5yZW1vdmVCbG9jayh0LmlkKSxhd2FpdCBhLmZvY3VzQmxvY2soYi5pZCx6KX19ZWxzZSBpZih0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPjEpe2xldCBiPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTp0LmNvbnRlbnQ7aWYoYj09PSIifHxiLnRyaW0oKT09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9YS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO3YmJihhLnJlbW92ZUJsb2NrKHQuaWQpLHYudHlwZSE9PSJkaXZpZGVyIiYmYXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQsImVuZCIpKX19fWFzeW5jIGhhbmRsZURlbGV0ZShlLHQpe2xldCBhPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxhLnJlbW92ZUJsb2NrKHQuaWQpO2xldCBtPWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1bbV0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGEuZm9jdXNCbG9jayhtLmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBiPWEuZ2V0UHJldmlvdXNCbG9jayh0LmlkKSx2PWEuZ2V0TmV4dEJsb2NrKHQuaWQpO2EucmVtb3ZlQmxvY2sodC5pZCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO3YmJiF4LmluY2x1ZGVzKHYudHlwZSk/YXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQsInN0YXJ0Iik6YiYmIXguaW5jbHVkZXMoYi50eXBlKT9hd2FpdCBhLmZvY3VzQmxvY2soYi5pZCwiZW5kIik6dj9hd2FpdCBhLmZvY3VzQmxvY2sodi5pZCk6YiYmYXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgbD10LnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbClyZXR1cm47bGV0IHA9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO3A/LnNoYWRvd1Jvb3QmJmQucHVzaChwLnNoYWRvd1Jvb3QpLGQucHVzaChvLnNoYWRvd1Jvb3QpO2xldCB1PVN0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGwsLi4uZCksYz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYodT09PWMpe2xldCBiPWEuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKGImJlsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhiLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCksYXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQpO3JldHVybn19fWFzeW5jIGhhbmRsZUFycm93VXAoZSx0KXtsZXQgYT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07aWYoYS5pbmNsdWRlcyh0LnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGM9dS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO2MmJmF3YWl0IHUuZm9jdXNCbG9jayhjLmlkLGEuaW5jbHVkZXMoYy50eXBlKT92b2lkIDA6ImVuZCIpO3JldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz10LnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxwPVtdO2w/LnNoYWRvd1Jvb3QmJnAucHVzaChsLnNoYWRvd1Jvb3QpLHAucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoISghZHx8IWQuY29sbGFwc2VkKSYmdGhpcy5pc09uRmlyc3RMaW5lKGQsbywuLi5wKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxjPXUuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihjKXtsZXQgYj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgdS5mb2N1c0Jsb2NrKGMuaWQsYi5pbmNsdWRlcyhjLnR5cGUpP3ZvaWQgMDoiZW5kIil9fX1hc3luYyBoYW5kbGVBcnJvd0Rvd24oZSx0KXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxjPXUuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKGMpe2xldCBiPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCB1LmZvY3VzQmxvY2soYy5pZCxiLmluY2x1ZGVzKGMudHlwZSk/dm9pZCAwOiJzdGFydCIpfXJldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz10LnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxwPVtdO2w/LnNoYWRvd1Jvb3QmJnAucHVzaChsLnNoYWRvd1Jvb3QpLHAucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoISghZHx8IWQuY29sbGFwc2VkKSYmdGhpcy5pc09uTGFzdExpbmUoZCxvLC4uLnApKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGM9dS5nZXROZXh0QmxvY2sodC5pZCk7aWYoYyl7bGV0IGI9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHUuZm9jdXNCbG9jayhjLmlkLGIuaW5jbHVkZXMoYy50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1hc3luYyBoYW5kbGVBcnJvd0xlZnQoZSx0KXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBjPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxiPWMuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihiKXtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgYy5mb2N1c0Jsb2NrKGIuaWQsdi5pbmNsdWRlcyhiLnR5cGUpP3ZvaWQgMDoiZW5kIil9cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3QuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPXQudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgbD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLHA9W107bD8uc2hhZG93Um9vdCYmcC5wdXNoKGwuc2hhZG93Um9vdCkscC5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGQ9U3QuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZHx8IWQuY29sbGFwc2VkKXJldHVybjtpZihTdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLnApPT09MCl7bGV0IGM9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGI9Yy5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO2lmKGIpe2UucHJldmVudERlZmF1bHQoKTtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYi50eXBlKT92b2lkIDA6ImVuZCI7YXdhaXQgYy5mb2N1c0Jsb2NrKGIuaWQseCl9fX1hc3luYyBoYW5kbGVBcnJvd1JpZ2h0KGUsdCl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgYj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsdj1iLmdldE5leHRCbG9jayh0LmlkKTtpZih2KXtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgYi5mb2N1c0Jsb2NrKHYuaWQseC5pbmNsdWRlcyh2LnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89dC50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBsPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIikscD1bXTtsPy5zaGFkb3dSb290JiZwLnB1c2gobC5zaGFkb3dSb290KSxwLnB1c2gobi5zaGFkb3dSb290KTtsZXQgZD1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhZC5jb2xsYXBzZWQpcmV0dXJuO2xldCB1PVN0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4ucCksYz1vLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYodT09PWMpe2xldCBiPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyx2PWIuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKHYpe2UucHJldmVudERlZmF1bHQoKTtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgYi5mb2N1c0Jsb2NrKHYuaWQseC5pbmNsdWRlcyh2LnR5cGUpP3ZvaWQgMDoic3RhcnQiKX19fWlzT25GaXJzdExpbmUoZSx0LC4uLmEpe3RyeXtsZXQgcj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG49ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7by5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobz1vLnBhcmVudEVsZW1lbnQpO2xldCBsPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1uLnRvcC1sLnRvcDw1O3JldHVybiBvLnRleHRDb250ZW50JiYhby50ZXh0Q29udGVudC5pbmNsdWRlcyhgCmApP1N0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4uYSk9PT0wOnB9Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUud2FybigiRXJyb3IgY2hlY2tpbmcgZmlyc3QgbGluZToiLHIpLGUuc3RhcnRPZmZzZXQ9PT0wfX1pc09uTGFzdExpbmUoZSx0LC4uLmEpe3RyeXtsZXQgcj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG49ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7by5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobz1vLnBhcmVudEVsZW1lbnQpO2xldCBwPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLW4uYm90dG9tPDU7aWYoby50ZXh0Q29udGVudCYmIW8udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKSl7bGV0IGQ9dC50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBTdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudCh0LC4uLmEpPT09ZH1yZXR1cm4gcH1jYXRjaChyKXtjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGxhc3QgbGluZToiLHIpO2xldCBuPXQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gU3QuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQodCwuLi5hKT09PW59fX19KTt2YXIgT1gsaDNhPWcoKCk9PntNbCgpO2d2KCk7T1g9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0RyYWdEcm9wSGFuZGxlciIpfWNvbXBvbmVudDtkcmFnZ2VkQmxvY2tJZD1udWxsO2RyYWdPdmVyQmxvY2tJZD1udWxsO2RyYWdPdmVyUG9zaXRpb249bnVsbDtkcm9wSW5kaWNhdG9yPW51bGw7aW5pdGlhbE1vdXNlWT0wO2luaXRpYWxCbG9ja1k9MDtkcmFnZ2VkQmxvY2tFbGVtZW50PW51bGw7ZHJhZ2dlZEJsb2NrSGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wO2RyYWdnZWRCbG9ja01hcmdpblRvcD0wO2xhc3RVcGRhdGVUaW1lPTA7dXBkYXRlVGhyb3R0bGU9ODA7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1nZXQgZHJhZ1N0YXRlKCl7cmV0dXJue2RyYWdnZWRCbG9ja0lkOnRoaXMuZHJhZ2dlZEJsb2NrSWQsZHJhZ092ZXJCbG9ja0lkOnRoaXMuZHJhZ092ZXJCbG9ja0lkLGRyYWdPdmVyUG9zaXRpb246dGhpcy5kcmFnT3ZlclBvc2l0aW9ufX1oYW5kbGVEcmFnU3RhcnQoZSx0KXtpZighZS5kYXRhVHJhbnNmZXIpcmV0dXJuO3RoaXMuZHJhZ2dlZEJsb2NrSWQ9dC5pZCxlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJtb3ZlIixlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIix0LmlkKTtsZXQgYT1uZXcgSW1hZ2U7aWYoYS5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iLGUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShhLDAsMCksdGhpcy5pbml0aWFsTW91c2VZPWUuY2xpZW50WSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCksdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgcj10aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5pbml0aWFsQmxvY2tZPXIudG9wO2xldCBuPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihuKXtsZXQgbz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9d2luZG93LmdldENvbXB1dGVkU3R5bGUobik7dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9cGFyc2VJbnQobC5tYXJnaW5Ub3ApfHwwLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD1vLmhlaWdodH10aGlzLmRyYWdnZWRCbG9ja0hlaWdodD1yLmhlaWdodCxjb25zb2xlLmxvZygiRHJhZyBtZWFzdXJlbWVudHM6Iix7d3JhcHBlckhlaWdodDpyLmhlaWdodCxtYXJnaW5Ub3A6dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3AsZHJvcEluZGljYXRvckhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxjb250ZW50SGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCxibG9ja0lkOnQuaWR9KSx0aGlzLmNyZWF0ZURyb3BJbmRpY2F0b3IoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKX10aGlzLmNvbXBvbmVudC5kcmFnZ2VkQmxvY2tJZD10aGlzLmRyYWdnZWRCbG9ja0lkLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQmJnRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX0sMTApfWhhbmRsZURyYWdFbmQoKXt0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikuZm9yRWFjaCh0PT57dC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIsIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSx0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IiksdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIil9KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50PW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD0wLHRoaXMuaW5pdGlhbEJsb2NrWT0wLHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyYWdPdmVyKGUsdCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCFlLmRhdGFUcmFuc2Zlcnx8IXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT10LmlkKXJldHVybjtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIjtsZXQgYT1lLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1hLnRvcCthLmhlaWdodC8yO3RoaXMuZHJhZ092ZXJCbG9ja0lkPXQuaWQsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPWUuY2xpZW50WTxyPyJiZWZvcmUiOiJhZnRlciIsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPXRoaXMuZHJhZ092ZXJCbG9ja0lkLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249dGhpcy5kcmFnT3ZlclBvc2l0aW9ufWhhbmRsZURyYWdMZWF2ZShlKXt0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWUuaWQmJih0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249bnVsbCl9aGFuZGxlRHJvcChlLHQpe2UucHJldmVudERlZmF1bHQoKSwhKCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09dC5pZCkmJnRoaXMuY29tcG9uZW50LmhhbmRsZURyb3AoZSx0KX1pc0RyYWdnaW5nKGUpe3JldHVybiB0aGlzLmRyYWdnZWRCbG9ja0lkPT09ZX1pc0RyYWdPdmVyKGUpe3JldHVybiB0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWV9Z2V0RHJhZ092ZXJDbGFzc2VzKGUpe3JldHVybiB0aGlzLmlzRHJhZ092ZXIoZSk/dGhpcy5kcmFnT3ZlclBvc2l0aW9uPT09ImJlZm9yZSI/ImRyYWctb3Zlci1iZWZvcmUiOiJkcmFnLW92ZXItYWZ0ZXIiOiIifWNyZWF0ZURyb3BJbmRpY2F0b3IoKXt0aGlzLmRyb3BJbmRpY2F0b3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5kcm9wSW5kaWNhdG9yLmNsYXNzTmFtZT0iZHJvcC1pbmRpY2F0b3IiLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKHRoaXMuZHJvcEluZGljYXRvcil9aGFuZGxlR2xvYmFsRHJhZ092ZXI9aShlPT57aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO2xldCB0PWUuY2xpZW50WS10aGlzLmluaXRpYWxNb3VzZVk7dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke3R9cHgpYDtsZXQgYT1EYXRlLm5vdygpO2EtdGhpcy5sYXN0VXBkYXRlVGltZTx0aGlzLnVwZGF0ZVRocm90dGxlfHwodGhpcy5sYXN0VXBkYXRlVGltZT1hLHRoaXMudXBkYXRlQmxvY2tQb3NpdGlvbnMoZS5jbGllbnRZKSl9LCJoYW5kbGVHbG9iYWxEcmFnT3ZlciIpO3VwZGF0ZUJsb2NrUG9zaXRpb25zKGUpe2xldCB0PUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKSxhPXQuZmluZEluZGV4KG49Pm4uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihhPT09LTEpcmV0dXJuO3QuZm9yRWFjaChuPT57bi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKSE9PXRoaXMuZHJhZ2dlZEJsb2NrSWQmJihuLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxuLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IikpfSk7bGV0IHI9dC5sZW5ndGg7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKG49PT1hKWNvbnRpbnVlO2xldCBsPXRbbl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1sLnRvcDtpZihlPHArbC5oZWlnaHQqLjUpe3I9bjticmVha319Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKG49PT1hKWNvbnRpbnVlO2xldCBvPXRbbl07YTxyP24+YSYmbjxyJiYoby5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIiksby5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSk6YT5yJiZuPj1yJiZuPGEmJihvLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpLG8uc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpfXRoaXMudXBkYXRlRHJvcEluZGljYXRvcih0LHIsYSl9dXBkYXRlRHJvcEluZGljYXRvcihlLHQsYSl7aWYoIXRoaXMuZHJvcEluZGljYXRvcnx8IXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtsZXQgcj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49MCxvPVtdO2ZvcihsZXQgZD0wO2Q8ZS5sZW5ndGg7ZCsrKXtpZihkPT09YSljb250aW51ZTtsZXQgdT1lW2RdLGM9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPWMudG9wLXIudG9wLHY9Yy5ib3R0b20tci50b3AseD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh1KS50cmFuc2Zvcm07aWYoeCYmeCE9PSJub25lIil7bGV0IGY9bmV3IERPTU1hdHJpeCh4KS5tNDI7Yis9Zix2Kz1mfW8ucHVzaCh7aW5kZXg6ZCx0b3A6Yixib3R0b206dn0pfW8uc29ydCgoZCx1KT0+ZC50b3AtdS50b3ApO2xldCBsPXQ7dD5hJiZsLS07bGV0IHA9MTY7aWYodGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgZD10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoZCl7bGV0IHU9ZC50eXBlO3U9PT0iaGVhZGluZy0xInx8dT09PSJoZWFkaW5nLTIifHx1PT09ImhlYWRpbmctMyI/cD0yNDoodT09PSJjb2RlInx8dT09PSJxdW90ZSIpJiYocD0yMCl9fWlmKGw9PT0wKW49MDtlbHNlIGlmKGw+PW8ubGVuZ3RoKXtsZXQgZD1vW28ubGVuZ3RoLTFdO2QmJihuPWQuYm90dG9tLG4rPXApfWVsc2V7bGV0IGQ9b1tsLTFdO2QmJihuPWQuYm90dG9tLG4rPXApfXRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5oZWlnaHQ9YCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS50b3A9YCR7TWF0aC5tYXgoMCxuKX1weGAsY29uc29sZS5sb2coIkRyb3AgaW5kaWNhdG9yIHVwZGF0ZToiLHt0YXJnZXRJbmRleDp0LGFkanVzdGVkVGFyZ2V0SW5kZXg6bCxkcmFnZ2VkSW5kZXg6YSx0b3BQb3NpdGlvbjpuLGhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxibG9ja01hcmdpbjpwLHZpc3VhbEJsb2NrczpvLm1hcChkPT4oe2luZGV4OmQuaW5kZXgsdG9wOmQudG9wLGJvdHRvbTpkLmJvdHRvbX0pKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQ9aSgoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuZHJvcEluZGljYXRvciYmKHRoaXMuZHJvcEluZGljYXRvci5yZW1vdmUoKSx0aGlzLmRyb3BJbmRpY2F0b3I9bnVsbCksdGhpcy5kcmFnZ2VkQmxvY2tJZD9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnBlcmZvcm1Ecm9wKCksdGhpcy5oYW5kbGVEcmFnRW5kKCl9KTp0aGlzLmhhbmRsZURyYWdFbmQoKX0sImhhbmRsZUdsb2JhbERyYWdFbmQiKTtwZXJmb3JtRHJvcCgpe2lmKCF0aGlzLmRyYWdnZWRCbG9ja0lkKXJldHVybjtsZXQgZT1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSk7aWYoIWUuZmluZCh1PT51LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCkpcmV0dXJuO2xldCBhPWUubWFwKHU9PntsZXQgYz11LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpLGI9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PWIudG9wK2IuaGVpZ2h0LzI7cmV0dXJue2lkOmMsY2VudGVyWTp2LGVsZW1lbnQ6dX19KTthLnNvcnQoKHUsYyk9PnUuY2VudGVyWS1jLmNlbnRlclkpO2xldCByPWEubWFwKHU9PnUuaWQpLmZpbHRlcih1PT51IT09bnVsbCksbj1bLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXSxvPW4uZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoIW8pcmV0dXJuO2xldCBsPW4ubWFwKHU9PnUuaWQpO2lmKCEhci5ldmVyeSgodSxjKT0+dT09PWxbY10pKXJldHVybjtsZXQgZD1yLm1hcCh1PT5uLmZpbmQoYz0+Yy5pZD09PXUpKS5maWx0ZXIoQm9vbGVhbik7dGhpcy5jb21wb25lbnQuYmxvY2tzPWQsdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksc2V0VGltZW91dCgoKT0+e28udHlwZSE9PSJkaXZpZGVyIiYmdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soby5pZCl9LDEwMCl9fX0pO3ZhciBGWCxmM2E9ZygoKT0+e01sKCk7Rlg9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0hpc3RvcnkiKX1oaXN0b3J5PVtdO2N1cnJlbnRJbmRleD0tMTttYXhIaXN0b3J5U2l6ZT01MDtsYXN0U2F2ZVRpbWU9MDtzYXZlRGVib3VuY2VNcz01MDA7Y29uc3RydWN0b3IoKXt0aGlzLmhpc3Rvcnk9W10sdGhpcy5jdXJyZW50SW5kZXg9LTF9c2F2ZVN0YXRlKGUsdCxhKXtsZXQgcj1EYXRlLm5vdygpO2lmKHItdGhpcy5sYXN0U2F2ZVRpbWU8dGhpcy5zYXZlRGVib3VuY2VNcyYmdGhpcy5jdXJyZW50SW5kZXg+PTApe3RoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF09e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDp0LGN1cnNvclBvc2l0aW9uOmE/ey4uLmF9OnZvaWQgMCx0aW1lc3RhbXA6cn07cmV0dXJufXRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGgtMSYmKHRoaXMuaGlzdG9yeT10aGlzLmhpc3Rvcnkuc2xpY2UoMCx0aGlzLmN1cnJlbnRJbmRleCsxKSk7bGV0IG49e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDp0LGN1cnNvclBvc2l0aW9uOmE/ey4uLmF9OnZvaWQgMCx0aW1lc3RhbXA6cn07dGhpcy5oaXN0b3J5LnB1c2gobiksdGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmhpc3RvcnkubGVuZ3RoPnRoaXMubWF4SGlzdG9yeVNpemUmJih0aGlzLmhpc3Rvcnkuc2hpZnQoKSx0aGlzLmN1cnJlbnRJbmRleC0tKSx0aGlzLmxhc3RTYXZlVGltZT1yfXNhdmVDaGVja3BvaW50KGUsdCxhKXt0aGlzLmxhc3RTYXZlVGltZT0wLHRoaXMuc2F2ZVN0YXRlKGUsdCxhKX11bmRvKCl7cmV0dXJuIHRoaXMuY2FuVW5kbygpPyh0aGlzLmN1cnJlbnRJbmRleC0tLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1yZWRvKCl7cmV0dXJuIHRoaXMuY2FuUmVkbygpPyh0aGlzLmN1cnJlbnRJbmRleCsrLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1jYW5VbmRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4PjB9Y2FuUmVkbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTF9Z2V0Q3VycmVudFN0YXRlKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4Pj0wJiZ0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoP3RoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKTpudWxsfWNsZWFyKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xLHRoaXMubGFzdFNhdmVUaW1lPTB9Y2xvbmVCbG9ja3MoZSl7cmV0dXJuIGUubWFwKHQ9Pih7Li4udCxtZXRhZGF0YTp0Lm1ldGFkYXRhP3suLi50Lm1ldGFkYXRhfTp2b2lkIDB9KSl9Y2xvbmVTdGF0ZShlKXtyZXR1cm57YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZS5ibG9ja3MpLHNlbGVjdGVkQmxvY2tJZDplLnNlbGVjdGVkQmxvY2tJZCxjdXJzb3JQb3NpdGlvbjplLmN1cnNvclBvc2l0aW9uP3suLi5lLmN1cnNvclBvc2l0aW9ufTp2b2lkIDAsdGltZXN0YW1wOmUudGltZXN0YW1wfX1nZXRIaXN0b3J5SW5mbygpe3JldHVybntzaXplOnRoaXMuaGlzdG9yeS5sZW5ndGgsY3VycmVudEluZGV4OnRoaXMuY3VycmVudEluZGV4LGNhblVuZG86dGhpcy5jYW5VbmRvKCksY2FuUmVkbzp0aGlzLmNhblJlZG8oKX19fX0pO3ZhciBCWCxtdSxtM2EsZzNhPWcoKCk9PntwZSgpO01sKCk7aXUoKTtEZCgpO3BpdCgpO2hpdCgpO0I4KCk7b3IoKTtwdCgpO0JYPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxtdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbTNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13eXNpd3lnLWJsb2NrIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXeXNpd3lnQmxvY2siKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sYz1bTCh7dHlwZTpPYmplY3R9KV0seD1bTCh7dHlwZTpPYmplY3R9KV0sQlgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9jayIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iYmxvY2siaW4geiwiaGFzIiksZ2V0Omkoej0+ei5ibG9jaywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmJsb2NrPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxCWCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzU2VsZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImlzU2VsZWN0ZWQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pc1NlbGVjdGVkLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaXNTZWxlY3RlZD1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGQsdSksQlgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYW5kbGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaGFuZGxlcnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5oYW5kbGVycywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmhhbmRsZXJzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxCWCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Ind5c2l3eWdDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Ind5c2l3eWdDb21wb25lbnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei53eXNpd3lnQ29tcG9uZW50LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oud3lzaXd5Z0NvbXBvbmVudD1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksQlgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fc2VsZWN0aW9uSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLl9zZWxlY3Rpb25IYW5kbGVyKX0jZT1tdSh0aGlzLG8sdm9pZCAwKTtnZXQgYmxvY2soKXtyZXR1cm4gdGhpcy4jZX1zZXQgYmxvY2soTSl7dGhpcy4jZT1NfSN0PShtdSh0aGlzLGwpLG11KHRoaXMsZCwhMSkpO2dldCBpc1NlbGVjdGVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlzU2VsZWN0ZWQoTSl7dGhpcy4jdD1NfSNhPShtdSh0aGlzLHUpLG11KHRoaXMsYix2b2lkIDApKTtnZXQgaGFuZGxlcnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaGFuZGxlcnMoTSl7dGhpcy4jYT1NfSNzPShtdSh0aGlzLHYpLG11KHRoaXMsbSx2b2lkIDApKTtnZXQgd3lzaXd5Z0NvbXBvbmVudCgpe3JldHVybiB0aGlzLiNzfXNldCB3eXNpd3lnQ29tcG9uZW50KE0pe3RoaXMuI3M9TX1ibG9ja0VsZW1lbnQ9KG11KHRoaXMsZiksbnVsbCk7Y29udGVudEluaXRpYWxpemVkPSExO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtoYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITE7c3RhdGljIE5PTl9FRElUQUJMRV9UWVBFUz1bImltYWdlIiwiZGl2aWRlciIsInlvdXR1YmUiXTtpbmplY3RIYW5kbGVyU3R5bGVzKCl7aWYodGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQpcmV0dXJuO3RoaXMuaGFuZGxlclN0eWxlc0luamVjdGVkPSEwO2xldCBNPSIiLHo9SXMuZ2V0QWxsVHlwZXMoKTtmb3IobGV0IE4gb2Ygeil7bGV0IEM9SXMuZ2V0SGFuZGxlcihOKTtDJiYoTSs9Qy5nZXRTdHlsZXMoKSl9aWYoTSl7bGV0IE49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtOLnRleHRDb250ZW50PU0sdGhpcy5zaGFkb3dSb290Py5hcHBlbmRDaGlsZChOKX19c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmJsb2NrIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrOmVtcHR5Om5vdCg6Zm9jdXMpOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrLXNwZWNpZmljIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVycyAqLwoKCiAgICAgIC8qIEZvcm1hdHRpbmcgc3R5bGVzICovCiAgICAgIC5ibG9jayA6aXMoYiwgc3Ryb25nKSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2sgOmlzKGksIGVtKSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuYmxvY2sgdSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jayBzIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgfQoKICAgICAgLmJsb2NrIGNvZGUgewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDE0IiwiI2ZmNmI2YiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrIGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5ibG9jayBhOmhvdmVyIHsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIENvZGUgYmxvY2sgY29udGFpbmVyIGFuZCBsYW5ndWFnZSBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlciAqLwoKICAgICAgLyogU2VsZWN0aW9uIHN0eWxlcyAqLwogICAgICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjMpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMykiKX07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCgogICAgICAvKiBTdHJpa2UgdGhyb3VnaCAqLwogICAgICAuYmxvY2sgOmlzKHMsIHN0cmlrZSkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKCiAgICAgIC8qIEJsb2NrIG1hcmdpbiBhZGp1c3RtZW50cyBiYXNlZCBvbiB0eXBlICovCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdC1jb250ZXh0KC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogU2VsZWN0ZWQgc3RhdGUgKi8KICAgICAgLmJsb2NrLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgIH0KCgoKCiAgICBgXTtzaG91bGRVcGRhdGUoTSl7aWYoTS5oYXMoImlzU2VsZWN0ZWQiKSYmdGhpcy5ibG9jayl7bGV0IHo9bnVsbCxDPWAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YDtyZXR1cm4gej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoQykseiYmKHRoaXMuaXNTZWxlY3RlZD96LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik6ei5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSwhMX1pZihNLmhhcygiYmxvY2siKSYmdGhpcy5ibG9jayl7bGV0IHo9TS5nZXQoImJsb2NrIik7aWYoeiYmei5pZCYmei50eXBlJiZ6LmlkPT09dGhpcy5ibG9jay5pZCYmei50eXBlPT09dGhpcy5ibG9jay50eXBlKXJldHVybiExfXJldHVybiF0aGlzLmJsb2NrRWxlbWVudHx8dGhpcy5ibG9jaz8udHlwZSE9PXRoaXMuYmxvY2tFbGVtZW50LmRhdGFzZXQuYmxvY2tUeXBlfWZpcnN0VXBkYXRlZCgpe3RoaXMuY29udGVudEluaXRpYWxpemVkPSEwLHRoaXMuaW5qZWN0SGFuZGxlclN0eWxlcygpO2xldCBNPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7aWYoTSYmdGhpcy5ibG9jayYmKE0uaW5uZXJIVE1MPXRoaXMucmVuZGVyQmxvY2tDb250ZW50KCkpLHRoaXMuYmxvY2spe2xldCBOPUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihOKXtsZXQgQz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO0MmJk4uc2V0dXAoQyx0aGlzLmJsb2NrLHRoaXMuaGFuZGxlcnMpO3JldHVybn19bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZih6KXt6LnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsdGhpcy5ibG9jay5pZCksei5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2stdHlwZSIsdGhpcy5ibG9jay50eXBlKSx6LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixDPT57dGhpcy5oYW5kbGVycz8ub25JbnB1dD8uKEMpO2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oeik7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pfSksei5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixDPT57bGV0IF89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih6KTtfIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249XyksdGhpcy5oYW5kbGVycz8ub25LZXlEb3duPy4oQyl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uRm9jdXM/LigpfSksei5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQmx1cj8uKCl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvblN0YXJ0Py4oKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvbkVuZD8uKCl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLEM9PntsZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHopO18hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1fKSx0aGlzLmhhbmRsZXJzPy5vbk1vdXNlVXA/LihDKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c2V0VGltZW91dCgoKT0+e2xldCBDPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oeik7QyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPUMpfSwwKX0pO2xldCBOPWkoKCk9PntsZXQgQz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIUN8fEMucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBfPUMudG9TdHJpbmcoKTtpZihfLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpO3JldHVybn1sZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFPKXJldHVybjtsZXQgRT10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LEg9W107RSYmSC5wdXNoKEUpLHRoaXMuc2hhZG93Um9vdCYmSC5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IGs9U3QuZ2V0U2VsZWN0aW9uSW5mbyguLi5IKTtpZighaylyZXR1cm47bGV0IFM9U3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oTyxrLnN0YXJ0Q29udGFpbmVyKSxJPVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKE8say5lbmRDb250YWluZXIpO2lmKFN8fEkpe2lmKF8hPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1fO2xldCBQPVN0LmNyZWF0ZVJhbmdlRnJvbUluZm8oayksUj1QLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6Xy50cmltKCksYmxvY2tJZDp0aGlzLmJsb2NrLmlkLHJhbmdlOlAscmVjdDpSLGhhc1NlbGVjdGlvbjohMH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDoiIixibG9ja0lkOnRoaXMuYmxvY2suaWQsaGFzU2VsZWN0aW9uOiExfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixOKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyPU4sei5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsKCk9PntsZXQgQz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHopO0MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1DKX0pLHRoaXMuYmxvY2suY29udGVudCYmKHouaW5uZXJIVE1MPXRoaXMuYmxvY2suY29udGVudCl9dGhpcy5ibG9ja0VsZW1lbnQ9en1yZW5kZXIoKXtyZXR1cm4gdGhpcy5ibG9jaz9NbmA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWJsb2NrLWNvbnRhaW5lciI+PC9kaXY+YDpNbmBgfXJlbmRlckJsb2NrQ29udGVudCgpe2lmKCF0aGlzLmJsb2NrKXJldHVybiIiO2xldCBNPUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNKXJldHVybiBNLnJlbmRlcih0aGlzLmJsb2NrLHRoaXMuaXNTZWxlY3RlZCk7bGV0IHo9dGhpcy5pc1NlbGVjdGVkPyIgc2VsZWN0ZWQiOiIiO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke3RoaXMuYmxvY2sudHlwZX0ke3p9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgPjwvZGl2PgogICAgYH1mb2N1cygpe2xldCBNPUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLmZvY3VzKXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLEM9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5mb2N1cyhOLEMpfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWApO04mJk4uZm9jdXMoKTtyZXR1cm59bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTt6JiYoei5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHx6LnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHouZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09eiYmdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09eiYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3ouZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoTT0iZW5kIil7bGV0IHo9SXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHomJnouZm9jdXNXaXRoQ3Vyc29yKXtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLE89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gei5mb2N1c1dpdGhDdXJzb3IoXyxNLE8pfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe3RoaXMuZm9jdXMoKTtyZXR1cm59bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTilyZXR1cm47Ti5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxOLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE4uZm9jdXMoKTtsZXQgQz1pKCgpPT57TT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KCk6TT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoKTp0eXBlb2YgTT09Im51bWJlciImJlN0LnNldEN1cnNvclBvc2l0aW9uKE4sTSl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09Tj9DKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09TikmJkMoKX0pfWdldEN1cnNvclBvc2l0aW9uKE0pe2xldCB6PUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih6JiZ6LmdldEN1cnNvclBvc2l0aW9uKXtsZXQgSD17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB6LmdldEN1cnNvclBvc2l0aW9uKE0sSCl9bGV0IEM9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxfPVtdO0MmJl8ucHVzaChDKSx0aGlzLnNoYWRvd1Jvb3QmJl8ucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPVN0LmdldFNlbGVjdGlvbkluZm8oLi4uXyk7aWYoY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86TyxzaGFkb3dSb290c0NvdW50Ol8ubGVuZ3RofSksIU8pcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogTm8gc2VsZWN0aW9uIGZvdW5kIiksbnVsbDtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIGluZm86Iix7c3RhcnRDb250YWluZXI6Ty5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpPLnN0YXJ0T2Zmc2V0LGNvbGxhcHNlZDpPLmNvbGxhcHNlZCxzdGFydENvbnRhaW5lclRleHQ6Ty5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudH0pLCFNLmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpKXJldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIG5vdCBpbiBlbGVtZW50IiksbnVsbDtsZXQgJD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpOyQuc2VsZWN0Tm9kZUNvbnRlbnRzKE0pLCQuc2V0RW5kKE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCk7bGV0IEU9JC50b1N0cmluZygpLmxlbmd0aDtyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBDYWxjdWxhdGVkIHBvc2l0aW9uOiIse3Bvc2l0aW9uOkUscHJlQ2FyZXRUZXh0OiQudG9TdHJpbmcoKSxlbGVtZW50VGV4dDpNLnRleHRDb250ZW50LGVsZW1lbnRUZXh0TGVuZ3RoOk0udGV4dENvbnRlbnQ/Lmxlbmd0aH0pLEV9Z2V0Q29udGVudCgpe2xldCBNPUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLmdldENvbnRlbnQpe2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksXz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmdldENvbnRlbnQoQyxfKX1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCF6KXJldHVybiIiO2xldCBOPXouaW5uZXJIVE1MfHwiIjtyZXR1cm4gY29uc29sZS5sb2coIkdldHRpbmcgY29udGVudCBmcm9tIGJsb2NrOiIsTiksTn1zZXRDb250ZW50KE0pe2xldCB6PUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih6JiZ6LnNldENvbnRlbnQpe2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB6LnNldENvbnRlbnQoXyxNLE8pfWxldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU4pcmV0dXJuO2xldCBDPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OO04uaW5uZXJIVE1MPU0sQyYmTi5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoKXtsZXQgTT1Jcy5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoTSYmTS5zZXRDdXJzb3JUb1N0YXJ0KXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLEM9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5zZXRDdXJzb3JUb1N0YXJ0KE4sQyl9bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTt6JiZDby5zZXRDdXJzb3JUb1N0YXJ0KHopfXNldEN1cnNvclRvRW5kKCl7bGV0IE09SXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uc2V0Q3Vyc29yVG9FbmQpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksQz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLnNldEN1cnNvclRvRW5kKE4sQyl9bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTt6JiZDby5zZXRDdXJzb3JUb0VuZCh6KX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7aWYoIXRoaXMuYmxvY2t8fHRoaXMuYmxvY2sudHlwZT09PSJkaXZpZGVyIilyZXR1cm5bXTtsZXQgTT1jci5nZXRTbGFzaE1lbnVJdGVtcygpLHo9dGhpcy5ibG9jay50eXBlLE49dGhpcy53eXNpd3lnQ29tcG9uZW50LEM9dGhpcy5ibG9jay5pZCxPPVt7bmFtZToiQ2hhbmdlIFR5cGUiLGljb25OYW1lOiJ0eXBlIixzdWJtZW51Ok0uZmlsdGVyKCQ9PiQudHlwZSE9PXomJiQudHlwZSE9PSJkaXZpZGVyIikubWFwKCQ9Pih7bmFtZTokLmxhYmVsLGljb25OYW1lOiQuaWNvbi5yZXBsYWNlKCJsdWNpZGU6IiwiIiksYWN0aW9uOmkoYXN5bmMoKT0+e2lmKE4mJk4uYmxvY2tPcGVyYXRpb25zKXtsZXQgRT1OLmJsb2Nrcy5maW5kKEg9PkguaWQ9PT1DKTtFJiYoRS50eXBlPSQudHlwZSxFLmNvbnRlbnQ9RS5jb250ZW50fHwiIiwkLnR5cGU9PT0iY29kZSI/RS5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifTokLnR5cGU9PT0ibGlzdCI/RS5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9OiQudHlwZT09PSJpbWFnZSI/KEUuY29udGVudD0iIixFLm1ldGFkYXRhPXt1cmw6IiIsbG9hZGluZzohMX0pOiQudHlwZT09PSJ5b3V0dWJlIj8oRS5jb250ZW50PSIiLEUubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6JC50eXBlPT09Im1hcmtkb3duIj9FLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06JC50eXBlPT09Imh0bWwiP0UubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTokLnR5cGU9PT0iYXR0YWNobWVudCImJihFLmNvbnRlbnQ9IiIsRS5tZXRhZGF0YT17ZmlsZXM6W119KSxOLnVwZGF0ZUJsb2NrRWxlbWVudChDKSxOLnVwZGF0ZVZhbHVlKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ti5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhDKX0pKX19LCJhY3Rpb24iKX0pKX1dO3JldHVyblsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpfHxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImN1dCIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsc2hvcnRjdXQ6IkNtZCtDIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX0sImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmkoYXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJwYXN0ZSIpfSwiYWN0aW9uIil9KSxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgQmxvY2siLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9PntOJiZOLmJsb2NrT3BlcmF0aW9ucyYmTi5ibG9ja09wZXJhdGlvbnMuZGVsZXRlQmxvY2soQyl9LCJhY3Rpb24iKX0pLE99Z2V0U3BsaXRDb250ZW50KCl7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3RhcnRpbmcuLi4iKTtsZXQgTT1Jcy5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ2hlY2tpbmcgZm9yIGhhbmRsZXIiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGhhc0hhbmRsZXI6ISFNLGhhc1NwbGl0TWV0aG9kOiEhKE0mJk0uZ2V0U3BsaXRDb250ZW50KX0pLE0mJk0uZ2V0U3BsaXRDb250ZW50KXtsZXQgSz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZvdW5kIGNvbnRhaW5lciIse2NvbnRhaW5lcjohIUssY29udGFpbmVySFRNTDpLPy5pbm5lckhUTUw/LnN1YnN0cmluZygwLDEwMCl9KTtsZXQgVj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmdldFNwbGl0Q29udGVudChLLFYpfWxldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIXopcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIGVkaXRhYmxlIGVsZW1lbnQgZm91bmQiKSxudWxsO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEVsZW1lbnQgaW5mbzoiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGlubmVySFRNTDp6LmlubmVySFRNTCx0ZXh0Q29udGVudDp6LnRleHRDb250ZW50LHRleHRMZW5ndGg6ei50ZXh0Q29udGVudD8ubGVuZ3RofSk7bGV0IEM9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxfPVtdO0MmJl8ucHVzaChDKSx0aGlzLnNoYWRvd1Jvb3QmJl8ucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPVN0LmdldFNlbGVjdGlvbkluZm8oLi4uXyk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczoiLHtzZWxlY3Rpb25JbmZvOk8sc2hhZG93Um9vdHNDb3VudDpfLmxlbmd0aH0pLCFPKXtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBObyBzZWxlY3Rpb24sIHVzaW5nIGxhc3Qga25vd24gcG9zaXRpb246Iix0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKSx0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IEs9ei50ZXh0Q29udGVudHx8IiIsVj1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLEsubGVuZ3RoKTtyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3BsaXR0aW5nIHdpdGggbGFzdCBrbm93biBwb3NpdGlvbjoiLHtwb3M6VixmdWxsVGV4dExlbmd0aDpLLmxlbmd0aCxiZWZvcmU6Sy5zdWJzdHJpbmcoMCxWKSxhZnRlcjpLLnN1YnN0cmluZyhWKX0pLHtiZWZvcmU6Sy5zdWJzdHJpbmcoMCxWKSxhZnRlcjpLLnN1YnN0cmluZyhWKX19cmV0dXJuIG51bGx9aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIHJhbmdlOiIse3N0YXJ0Q29udGFpbmVyOk8uc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6Ty5zdGFydE9mZnNldCxzdGFydENvbnRhaW5lckluRWxlbWVudDp6LmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpfSksIVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHosTy5zdGFydENvbnRhaW5lcikpe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiBub3QgaW4gdGhpcyBibG9jaywgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgSz16LnRleHRDb250ZW50fHwiIixWPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sSy5sZW5ndGgpO3JldHVybntiZWZvcmU6Sy5zdWJzdHJpbmcoMCxWKSxhZnRlcjpLLnN1YnN0cmluZyhWKX19cmV0dXJuIG51bGx9bGV0ICQ9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih6KTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDdXJzb3IgcG9zaXRpb24gZm9yIEhUTUwgc3BsaXQ6IiwkKSwkPT09bnVsbHx8JD09PTApcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBhdCBzdGFydCBvciBudWxsLCBtb3ZpbmcgYWxsIGNvbnRlbnQiKSx7YmVmb3JlOiIiLGFmdGVyOnouaW5uZXJIVE1MfTtsZXQgRT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLEg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtFLnNldFN0YXJ0KHosMCksRS5zZXRFbmQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KSxILnNldFN0YXJ0KE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCksSC5zZXRFbmQoeix6LmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgaz1FLmNsb25lQ29udGVudHMoKSxTPUguY2xvbmVDb250ZW50cygpLEk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7SS5hcHBlbmRDaGlsZChrKTtsZXQgUD1JLmlubmVySFRNTDtJLmlubmVySFRNTD0iIixJLmFwcGVuZENoaWxkKFMpO2xldCBSPUkuaW5uZXJIVE1MO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBGaW5hbCBzcGxpdCByZXN1bHQ6Iix7Y3Vyc29yUG9zOiQsYmVmb3JlSHRtbDpQLGJlZm9yZUxlbmd0aDpQLmxlbmd0aCxiZWZvcmVIdG1sUHJldmlldzpQLnN1YnN0cmluZygwLDEwMCkrKFAubGVuZ3RoPjEwMD8iLi4uIjoiIiksYWZ0ZXJIdG1sOlIsYWZ0ZXJMZW5ndGg6Ui5sZW5ndGgsYWZ0ZXJIdG1sUHJldmlldzpSLnN1YnN0cmluZygwLDEwMCkrKFIubGVuZ3RoPjEwMD8iLi4uIjoiIil9KSx7YmVmb3JlOlAsYWZ0ZXI6Un19c3RhdGlje211KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBtaXQ9ZygoKT0+e0djZSgpO01sKCk7Z3YoKTtObmUoKTtSMGEoKTtsdHQoKTtCOCgpO3J0dCgpO0RkKCk7aXUoKTtjdHQoKTtoaXQoKTt1M2EoKTtwM2EoKTtoM2EoKTtmaXQoKTtmM2EoKTtpdHQoKTtvdHQoKTtnM2EoKX0pO3ZhciBSaCxQbixIWCxHY2U9ZygoKT0+e3ppKCk7TjBhKCk7SjAoKTtwZSgpO21pdCgpO3B0KCk7Umg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFBuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxIWD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtd3lzaXd5ZyIpXSxlLHQ9W10sYSxyPU90LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRXeXNpd3lnIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bWSgpXSx4PVtZKCldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLFJoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InZhbHVlImluIFMsImhhcyIpLGdldDppKFM9PlMudmFsdWUsImdldCIpLHNldDppKChTLEkpPT57Uy52YWx1ZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksUmgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Im91dHB1dEZvcm1hdCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm91dHB1dEZvcm1hdCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm91dHB1dEZvcm1hdD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksUmgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9ja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImJsb2NrcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmJsb2NrcywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmJsb2Nrcz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsdiksUmgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZHJhZ2dlZEJsb2NrSWQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5kcmFnZ2VkQmxvY2tJZCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmRyYWdnZWRCbG9ja0lkPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxSaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZHJhZ092ZXJCbG9ja0lkImluIFMsImhhcyIpLGdldDppKFM9PlMuZHJhZ092ZXJCbG9ja0lkLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZHJhZ092ZXJCbG9ja0lkPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sTSx6KSxSaCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImRyYWdPdmVyUG9zaXRpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5kcmFnT3ZlclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZHJhZ092ZXJQb3NpdGlvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksUmgodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkVGV4dCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlbGVjdGVkVGV4dCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNlbGVjdGVkVGV4dD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksUmgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1BMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCIsIldvcmtzcGFjZSJdOyNlPVBuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGspe3RoaXMuI2U9a30jdD0oUG4odGhpcyxsKSxQbih0aGlzLGQsImh0bWwiKSk7Z2V0IG91dHB1dEZvcm1hdCgpe3JldHVybiB0aGlzLiN0fXNldCBvdXRwdXRGb3JtYXQoayl7dGhpcy4jdD1rfSNhPShQbih0aGlzLHUpLFBuKHRoaXMsYixbe2lkOmNyLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiIn1dKSk7Z2V0IGJsb2Nrcygpe3JldHVybiB0aGlzLiNhfXNldCBibG9ja3Moayl7dGhpcy4jYT1rfXNlbGVjdGVkQmxvY2tJZD0oUG4odGhpcyx2KSxudWxsKTtzbGFzaE1lbnU9UG5lLmdldEluc3RhbmNlKCk7I3M9UG4odGhpcyxtLG51bGwpO2dldCBkcmFnZ2VkQmxvY2tJZCgpe3JldHVybiB0aGlzLiNzfXNldCBkcmFnZ2VkQmxvY2tJZChrKXt0aGlzLiNzPWt9I2k9KFBuKHRoaXMsZiksUG4odGhpcyxNLG51bGwpKTtnZXQgZHJhZ092ZXJCbG9ja0lkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGRyYWdPdmVyQmxvY2tJZChrKXt0aGlzLiNpPWt9I3I9KFBuKHRoaXMseiksUG4odGhpcyxDLG51bGwpKTtnZXQgZHJhZ092ZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkcmFnT3ZlclBvc2l0aW9uKGspe3RoaXMuI3I9a31mb3JtYXR0aW5nTWVudT0oUG4odGhpcyxfKSxBbmUuZ2V0SW5zdGFuY2UoKSk7I289UG4odGhpcywkLCIiKTtnZXQgc2VsZWN0ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI299c2V0IHNlbGVjdGVkVGV4dChrKXt0aGlzLiNvPWt9ZWRpdG9yQ29udGVudFJlZj1Qbih0aGlzLEUpO2lzQ29tcG9zaW5nPSExO2Jsb2NrT3BlcmF0aW9ucztpbnB1dEhhbmRsZXI7a2V5Ym9hcmRIYW5kbGVyO2RyYWdEcm9wSGFuZGxlcjtoaXN0b3J5O3N0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLG50dF07Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYmxvY2tPcGVyYXRpb25zPW5ldyBFWih0aGlzKSx0aGlzLmlucHV0SGFuZGxlcj1uZXcgTlgodGhpcyksdGhpcy5rZXlib2FyZEhhbmRsZXI9bmV3IFJYKHRoaXMpLHRoaXMuZHJhZ0Ryb3BIYW5kbGVyPW5ldyBPWCh0aGlzKSx0aGlzLmhpc3Rvcnk9bmV3IEZYfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pbnB1dEhhbmRsZXI/LmRlc3Ryb3koKSx0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy52YWx1ZSYmdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjApe2xldCBrPXRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP1JjLnBhcnNlSHRtbFRvQmxvY2tzKHRoaXMudmFsdWUpOlJjLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtrLmxlbmd0aD4wJiYodGhpcy5ibG9ja3M9ayl9dGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmVkaXRvckNvbnRlbnRSZWYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGs9PnRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soaykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2stdGV4dC1zZWxlY3RlZCIsKGs9PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmay5kZXRhaWwuaGFzU2VsZWN0aW9uJiZrLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9ay5kZXRhaWwudGV4dCxrLmRldGFpbC5yZWN0KSl7bGV0IFM9e3g6ay5kZXRhaWwucmVjdC5sZWZ0K2suZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LGsuZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KFMsYXN5bmMgST0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChJKSl9fSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaz0+e2xldCBTPXRoaXMuZm9ybWF0dGluZ01lbnUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2lmKFMmJlMuY29udGFpbnMoay50YXJnZXQpKXJldHVybjtsZXQgST13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7SSYmSS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGg+MHx8dGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlJiZ0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixrPT57bGV0IFM9ay50YXJnZXQ7IXRoaXMuY29udGFpbnMoUykmJiF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKFMpfHwoKGsubWV0YUtleXx8ay5jdHJsS2V5KSYmIWsuc2hpZnRLZXkmJmsua2V5PT09InoiPyhrLnByZXZlbnREZWZhdWx0KCksdGhpcy51bmRvKCkpOihrLm1ldGFLZXl8fGsuY3RybEtleSkmJmsuc2hpZnRLZXkmJmsua2V5PT09InoiJiYoay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVkbygpKSl9KSx0aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl7dGhpcy5lZGl0b3JDb250ZW50UmVmJiYodGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTD0iIix0aGlzLmJsb2Nrcy5mb3JFYWNoKGs9PntsZXQgUz10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChrKTt0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoUyl9KSl9Y3JlYXRlQmxvY2tFbGVtZW50KGspe2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKFMuY2xhc3NOYW1lPSJibG9jay13cmFwcGVyIixTLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsay5pZCksay50eXBlIT09ImRpdmlkZXIiKXtsZXQgUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtQLmNsYXNzTmFtZT0iZHJhZy1oYW5kbGUiLFAuZHJhZ2dhYmxlPSEwLFAuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixSPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoUixrKSksUy5hcHBlbmRDaGlsZChQKX1sZXQgST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXd5c2l3eWctYmxvY2siKTtyZXR1cm4gSS5ibG9jaz1rLEkuaXNTZWxlY3RlZD10aGlzLnNlbGVjdGVkQmxvY2tJZD09PWsuaWQsSS53eXNpd3lnQ29tcG9uZW50PXRoaXMsSS5oYW5kbGVycz17b25JbnB1dDppKFA9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoUCxrKSwib25JbnB1dCIpLG9uS2V5RG93bjppKFA9PnRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bihQLGspLCJvbktleURvd24iKSxvbkZvY3VzOmkoKCk9PnRoaXMuaGFuZGxlQmxvY2tGb2N1cyhrKSwib25Gb2N1cyIpLG9uQmx1cjppKCgpPT50aGlzLmhhbmRsZUJsb2NrQmx1cihrKSwib25CbHVyIiksb25Db21wb3NpdGlvblN0YXJ0OmkoKCk9PnRoaXMuaXNDb21wb3Npbmc9ITAsIm9uQ29tcG9zaXRpb25TdGFydCIpLG9uQ29tcG9zaXRpb25FbmQ6aSgoKT0+dGhpcy5pc0NvbXBvc2luZz0hMSwib25Db21wb3NpdGlvbkVuZCIpLG9uTW91c2VVcDppKFA9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbihQKSwib25Nb3VzZVVwIiksb25SZXF1ZXN0VXBkYXRlOmkoKCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KGsuaWQpLCJvblJlcXVlc3RVcGRhdGUiKX0sUy5hcHBlbmRDaGlsZChJKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixQPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnT3ZlcihQLGspKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLFA9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoUCxrKSksUy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgpPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnTGVhdmUoaykpLFN9dXBkYXRlQmxvY2tFbGVtZW50KGspe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoUj0+Ui5pZD09PWspO2lmKCFTKXJldHVybjtsZXQgST10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7a30iXWApO2lmKCFJKXJldHVybjtsZXQgUD10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChTKTtJLnJlcGxhY2VXaXRoKFApfXJlbmRlcigpe3JldHVybiBNbmAKICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAubGFiZWw9IiR7dGhpcy5sYWJlbH0iCiAgICAgICAgLmluZm9UZXh0PSIke3RoaXMuaW5mb1RleHR9IgogICAgICAgIC5yZXF1aXJlZD0iJHt0aGlzLnJlcXVpcmVkfSIKICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0id3lzaXd5Zy1jb250YWluZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICBgfWhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGspe3N3aXRjaChrLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmsucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgiZG93biIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6ay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJ1cCIpO2JyZWFrO2Nhc2UiRW50ZXIiOmsucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7YnJlYWs7Y2FzZSJFc2NhcGUiOmsucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlU2xhc2hNZW51KCEwKTticmVha319Y2xvc2VTbGFzaE1lbnUoaz0hMSl7aWYoayYmdGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoST0+SS5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZihTKXtsZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQKXtsZXQgUj1QLmdldENvbnRlbnQoKTtpZihSLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IEs9Ui5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7UC5zZXRDb250ZW50KEspLFMuY29udGVudD1LLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1AuZm9jdXNXaXRoQ3Vyc29yKDApfSl9fX19dGhpcy5zbGFzaE1lbnUuaGlkZSgpfWhhbmRsZUJsb2NrRm9jdXMoayl7dGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpO2xldCBTPXRoaXMuc2VsZWN0ZWRCbG9ja0lkO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkPWsuaWQsUyE9PWsuaWQpe2lmKFMpe2xldCBLPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7U30iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtLJiYoSy5pc1NlbGVjdGVkPSExKX1sZXQgUD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7UCYmKFAuaXNTZWxlY3RlZD0hMCl9fWJsdXJUaW1lb3V0PW51bGw7aGFuZGxlQmxvY2tCbHVyKGspe2lmKHRoaXMuYmx1clRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLnNsYXNoTWVudS52aXNpYmxlKXJldHVybjtsZXQgST10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoSSYmSS5nZXRDb250ZW50KXtsZXQgUD1JLmdldENvbnRlbnQoKTtrLmNvbnRlbnQhPT1QJiYoay5jb250ZW50PVApfXRoaXMuYmx1clRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCJibG9jayIpfHx0aGlzLnVwZGF0ZVZhbHVlKCl9LDEwMCl9aGFuZGxlRWRpdG9yQ2xpY2soayl7bGV0IFM9ay50YXJnZXQ7aWYodGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5jbG9zZVNsYXNoTWVudSghMCksUy5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1jb250ZW50Iikpe2xldCBJPXRoaXMuYmxvY2tzW3RoaXMuYmxvY2tzLmxlbmd0aC0xXTt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEkuaWQsSS50eXBlPT09ImRpdmlkZXIifHxJLnR5cGU9PT0iaW1hZ2UiP3ZvaWQgMDoiZW5kIil9fWNyZWF0ZU5ld0Jsb2NrKGs9InBhcmFncmFwaCIsUz0iIixJKXtyZXR1cm57aWQ6Y3IuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTprLGNvbnRlbnQ6UywuLi5JJiZ7bWV0YWRhdGE6SX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoayxTLEk9ITApe2xldCBQPXRoaXMuYmxvY2tzLmZpbmRJbmRleChLPT5LLmlkPT09ay5pZCk7dGhpcy5ibG9ja3M9Wy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsUCsxKSxTLC4uLnRoaXMuYmxvY2tzLnNsaWNlKFArMSldO2xldCBSPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtrLmlkfSJdYCk7aWYoUil7bGV0IEs9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoUyk7Ui5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixLKX10aGlzLnVwZGF0ZVZhbHVlKCksSSYmUy50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2UoSz0+c2V0VGltZW91dChLLDApKSxhd2FpdCB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKFMuaWQsInN0YXJ0IikpfWFzeW5jIGluc2VydEJsb2NrKGspe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoUj0+Ui5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZighUyl7dGhpcy5jbG9zZVNsYXNoTWVudSgpO3JldHVybn1sZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQKXtsZXQgUj1QLmdldENvbnRlbnQoKTtpZihSLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IEs9Ui5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7UC5zZXRDb250ZW50KEspLFMuY29udGVudD1LfX1pZih0aGlzLmNsb3NlU2xhc2hNZW51KCExKSxrPT09ImNvZGUiJiYoUy5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifSksUy50eXBlPWssUy5jb250ZW50PVMuY29udGVudHx8IiIsaz09PSJkaXZpZGVyIil7Uy5jb250ZW50PSIgIjtsZXQgUj10aGlzLmNyZWF0ZU5ld0Jsb2NrKCk7dGhpcy5pbnNlcnRCbG9ja0FmdGVyKFMsUil9ZWxzZSBrPT09Imxpc3QiPyhTLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In0sUy5jb250ZW50PSIiKTprPT09ImltYWdlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6az09PSJ5b3V0dWJlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6az09PSJtYXJrZG93biI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Oms9PT0iaHRtbCI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Oms9PT0iYXR0YWNobWVudCI/KFMuY29udGVudD0iIixTLm1ldGFkYXRhPXtmaWxlczpbXX0pOlMuY29udGVudD1TLmNvbnRlbnR8fCIiO3RoaXMudXBkYXRlQmxvY2tFbGVtZW50KFMuaWQpLHRoaXMudXBkYXRlVmFsdWUoKSxhd2FpdCBuZXcgUHJvbWlzZShSPT5zZXRUaW1lb3V0KFIsMCkpLGs9PT0ibGlzdCI/KHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgSz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke1MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7SyYmSy5mb2N1c0xpc3RJdGVtKCl9KSk6ayE9PSJkaXZpZGVyIiYmayE9PSJpbWFnZSImJmshPT0ieW91dHViZSImJmshPT0ibWFya2Rvd24iJiZrIT09Imh0bWwiJiZrIT09ImF0dGFjaG1lbnQiP3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKTooaz09PSJpbWFnZSJ8fGs9PT0ieW91dHViZSJ8fGs9PT0ibWFya2Rvd24ifHxrPT09Imh0bWwifHxrPT09ImF0dGFjaG1lbnQiKSYmdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkKX11cGRhdGVWYWx1ZSgpe3RoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMudmFsdWU9UmMuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk6dGhpcy52YWx1ZT1SYy5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2NrcyksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5zYXZlVG9IaXN0b3J5KCEwKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGspe3RoaXMudmFsdWU9ayx0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLmJsb2Nrcz1SYy5wYXJzZUh0bWxUb0Jsb2NrcyhrKTp0aGlzLmJsb2Nrcz1SYy5wYXJzZU1hcmtkb3duVG9CbG9ja3MoayksdGhpcy5ibG9ja3MubGVuZ3RoPT09MCYmKHRoaXMuYmxvY2tzPVt7aWQ6Y3IuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QmxvY2tzKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ibG9ja3MpKX1pbXBvcnRCbG9ja3Moayl7dGhpcy5ibG9ja3M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShrKSksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QXNIdG1sKCl7cmV0dXJuIFJjLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydEFzTWFya2Rvd24oKXtyZXR1cm4gUmMuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydFN0YXRlKCl7cmV0dXJue2Jsb2Nrczp0aGlzLmV4cG9ydEJsb2NrcygpLG91dHB1dEZvcm1hdDp0aGlzLm91dHB1dEZvcm1hdH19aW1wb3J0U3RhdGUoayl7ay5vdXRwdXRGb3JtYXQmJih0aGlzLm91dHB1dEZvcm1hdD1rLm91dHB1dEZvcm1hdCksdGhpcy5pbXBvcnRCbG9ja3Moay5ibG9ja3MpfWhhbmRsZURyYWdFbmQoKXtpZih0aGlzLmRyYWdnZWRCbG9ja0lkKXtsZXQgUz10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH0iXWApO1MmJlMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKFM9PntTLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3Zlci1iZWZvcmUiLCJkcmFnLW92ZXItYWZ0ZXIiKX0pLHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyb3AoayxTKXtpZihrLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1TLmlkKXJldHVybjtsZXQgST10aGlzLmJsb2Nrcy5maW5kSW5kZXgoVj0+Vi5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpLFA9dGhpcy5ibG9ja3MuZmluZEluZGV4KFY9PlYuaWQ9PT1TLmlkKTtpZihJPT09LTF8fFA9PT0tMSlyZXR1cm47bGV0W1JdPXRoaXMuYmxvY2tzLnNwbGljZShJLDEpLEs9UDt0aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYWZ0ZXIiP0s9STxQP1A6UCsxOks9STxQP1AtMTpQLHRoaXMuYmxvY2tzLnNwbGljZShLLDAsUiksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgVj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Ui5pZH0iXSAuYmxvY2tgKTtWJiZSLnR5cGUhPT0iZGl2aWRlciImJlYuZm9jdXMoKX0sMTAwKX1oYW5kbGVUZXh0U2VsZWN0aW9uKGspe3RoaXMuc2xhc2hNZW51LnZpc2libGV9dXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpe2xldCBrPVtdO3RoaXMuc2hhZG93Um9vdCYmay5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKFA9PntsZXQgUj1QLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1I/LnNoYWRvd1Jvb3QmJmsucHVzaChSLnNoYWRvd1Jvb3QpfSk7bGV0IEk9c3UuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uayk7SSYmdGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHt4OkkueCx5OkkueX0sYXN5bmMgUD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChQKSl9aGlkZUZvcm1hdHRpbmdNZW51KCl7dGhpcy5mb3JtYXR0aW5nTWVudS5oaWRlKCksdGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgYXBwbHlGb3JtYXQoayl7bGV0IFM9W107dGhpcy5zaGFkb3dSb290JiZTLnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2gobWU9PntsZXQgQj1tZS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtCPy5zaGFkb3dSb290JiZTLnB1c2goQi5zaGFkb3dSb290KX0pO2xldCBQPVN0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoIVApcmV0dXJuO2xldCBSLEssVj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKTtmb3IobGV0IG1lPTA7bWU8Vi5sZW5ndGg7bWUrKyl7bGV0IEI9VlttZV0sVT1CLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFU/LnNoYWRvd1Jvb3Qpe2xldCBoZT1VLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoaGUmJihoZS5jb250YWlucyhQLnN0YXJ0Q29udGFpbmVyKXx8aGUuY29udGFpbnMoUC5lbmRDb250YWluZXIpKSl7bGV0IEY9Qi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtSPXRoaXMuYmxvY2tzLmZpbmQoaj0+ai5pZD09PUYpLEs9VTticmVha319fWlmKCFSfHwhSylyZXR1cm47bGV0IFc9U3QuY3JlYXRlUmFuZ2VGcm9tSW5mbyhQKTtpZihrPT09ImxpbmsiKXtsZXQgbWU9YXdhaXQgdGhpcy5zaG93TGlua0RpYWxvZygpO2lmKCFtZSl7Sy5mb2N1cygpO3JldHVybn1zdS5hcHBseUZvcm1hdChrLG1lLFcsUyl9ZWxzZSBzdS5hcHBseUZvcm1hdChrLHZvaWQgMCxXLFMpO2F3YWl0IG5ldyBQcm9taXNlKG1lPT5zZXRUaW1lb3V0KG1lLDEwKSksUi5jb250ZW50PUsuZ2V0Q29udGVudCgpLHRoaXMudXBkYXRlVmFsdWUoKSxLLmZvY3VzKCksaz09PSJsaW5rIj90aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpOnRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIHNob3dMaW5rRGlhbG9nKCl7cmV0dXJuIG5ldyBQcm9taXNlKGs9PntsZXQgUz1udWxsO1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBMaW5rIixjb250ZW50Ok1uYAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGluay1pbnB1dCB7CiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaW5wdXQpOwogICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpOwogICAgICAgICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1wcmltYXJ5KTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgY2xhc3M9ImxpbmstaW5wdXQiIAogICAgICAgICAgICB0eXBlPSJ1cmwiIAogICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9leGFtcGxlLmNvbSIgCiAgICAgICAgICAgIEBrZXlkb3duPSIke0k9PntpZihJLmtleT09PSJFbnRlciIpe2xldCBQPUkudGFyZ2V0O1M9UC52YWx1ZTtsZXQgUj1QLmNsb3Nlc3QoImRlZXMtbW9kYWwiKTtpZihSKXtsZXQgSz1SLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ib3R0b21CdXR0b246bGFzdC1jaGlsZCIpO0smJksuY2xpY2soKX19fX0iCiAgICAgICAgICAgIEBpbnB1dD0iJHtJPT57Uz1JLnRhcmdldC52YWx1ZX19IgogICAgICAgICAgLz4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBJPT57SS5kZXN0cm95KCksayhudWxsKX0sImFjdGlvbiIpfSx7bmFtZToiQWRkIExpbmsiLGFjdGlvbjppKGFzeW5jIEk9PntJLmRlc3Ryb3koKSxrKFMpfSwiYWN0aW9uIil9XX0pLHNldFRpbWVvdXQoKCk9PntsZXQgST1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIC5saW5rLWlucHV0Iik7SSYmSS5mb2N1cygpfSwxMDApfSl9dW5kbygpe2xldCBrPXRoaXMuaGlzdG9yeS51bmRvKCk7ayYmdGhpcy5yZXN0b3JlU3RhdGUoayl9cmVkbygpe2xldCBrPXRoaXMuaGlzdG9yeS5yZWRvKCk7ayYmdGhpcy5yZXN0b3JlU3RhdGUoayl9cmVzdG9yZVN0YXRlKGspe3RoaXMuYmxvY2tzPWsuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkPWsuc2VsZWN0ZWRCbG9ja0lkLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGsuY3Vyc29yUG9zaXRpb24/c2V0VGltZW91dCgoKT0+e2xldCBJPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ay5jdXJzb3JQb3NpdGlvbi5ibG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0kmJkkuZm9jdXNXaXRoQ3Vyc29yKGsuY3Vyc29yUG9zaXRpb24ub2Zmc2V0KX0sNTApOmsuc2VsZWN0ZWRCbG9ja0lkJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhrLnNlbGVjdGVkQmxvY2tJZCl9LDUwKSx0aGlzLnVwZGF0ZVZhbHVlKCl9c2F2ZVRvSGlzdG9yeShrPSEwKXtsZXQgUztpZih0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IFA9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLnNlbGVjdGVkQmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQJiZ0eXBlb2YgUC5nZXRDdXJzb3JQb3NpdGlvbj09ImZ1bmN0aW9uIil7bGV0IFI9UC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihSKXtsZXQgSz1QLmdldEN1cnNvclBvc2l0aW9uKFIpO0shPT1udWxsJiYoUz17YmxvY2tJZDp0aGlzLnNlbGVjdGVkQmxvY2tJZCxvZmZzZXQ6S30pfX19az90aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLFMpOnRoaXMuaGlzdG9yeS5zYXZlQ2hlY2twb2ludCh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCxTKX1zdGF0aWN7UG4oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIGIzYSx2M2E9ZygoKT0+e3BlKCk7SXQoKTtLY2UoKTtmbygpO2IzYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJpY2ggVGV4dCBFZGl0b3IifSAuc3VidGl0bGU9JHsiQSBmdWxsLWZlYXR1cmVkIHJpY2ggdGV4dCBlZGl0b3Igd2l0aCBmb3JtYXR0aW5nIHRvb2xiYXIifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJBcnRpY2xlIENvbnRlbnQifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDE+V2VsY29tZSB0byB0aGUgUmljaCBUZXh0IEVkaXRvciE8L2gxPjxwPlRoaXMgaXMgYSBmZWF0dXJlLXJpY2ggZWRpdG9yIGJ1aWx0IHdpdGggVGlwVGFwLiBZb3UgY2FuOjwvcD48dWw+PGxpPjxzdHJvbmc+Rm9ybWF0IHRleHQ8L3N0cm9uZz4gd2l0aCA8ZW0+dmFyaW91czwvZW0+IDx1PnN0eWxlczwvdT48L2xpPjxsaT5DcmVhdGUgZGlmZmVyZW50IGhlYWRpbmcgbGV2ZWxzPC9saT48bGk+QWRkIDxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS5jb20iPmxpbmtzPC9hPiB0byBleHRlcm5hbCByZXNvdXJjZXM8L2xpPjxsaT5Xcml0ZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4gb3IgY29kZSBibG9ja3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+PHA+VXNlIHRoZSB0b29sYmFyIGFib3ZlIHRvIGV4cGxvcmUgYWxsIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnMgYXZhaWxhYmxlITwvcD48L2Jsb2NrcXVvdGU+PHA+U3RhcnQgdHlwaW5nIHRvIHNlZSB0aGUgbWFnaWMgaGFwcGVuLi4uPC9wPid9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXNlIHRoZSB0b29sYmFyIHRvIGZvcm1hdCB5b3VyIGNvbnRlbnQgd2l0aCBoZWFkaW5ncywgbGlzdHMsIGxpbmtzLCBhbmQgbW9yZSJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRoIFBsYWNlaG9sZGVyIn0gLnN1YnRpdGxlPSR7IkVtcHR5IGVkaXRvciB3aXRoIHBsYWNlaG9sZGVyIHRleHQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJCbG9nIFBvc3QifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTdGFydCB3cml0aW5nIHlvdXIgYmxvZyBwb3N0IGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gRGlmZmVyZW50IEhlaWdodHMifSAuc3VidGl0bGU9JHsiRWRpdG9ycyB3aXRoIGRpZmZlcmVudCBtaW5pbXVtIGhlaWdodHMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTaG9ydCBOb3RlIn0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHsxNTB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJRdWljayBub3RlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRXh0ZW5kZWQgQ29udGVudCJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MzAwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiV3JpdGUgeW91ciBleHRlbmRlZCBjb250ZW50IGhlcmUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIENvZGUgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiRWRpdG9yIHByZS1maWxsZWQgd2l0aCBjb2RlIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiVGVjaG5pY2FsIERvY3VtZW50YXRpb24ifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+SW5zdGFsbGF0aW9uIEd1aWRlPC9oMj48cD5UbyBpbnN0YWxsIHRoZSBwYWNrYWdlLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOjwvcD48cHJlPjxjb2RlPm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT48cD5UaGVuIGltcG9ydCB0aGUgY29tcG9uZW50IGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlOjwvcD48cHJlPjxjb2RlPmltcG9ydCB7IERlZXNJbnB1dFJpY2h0ZXh0IH0gZnJvbSAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIjs8L2NvZGU+PC9wcmU+PHA+WW91IGNhbiBub3cgdXNlIHRoZSA8Y29kZT4mbHQ7ZGVlcy1pbnB1dC1yaWNodGV4dCZndDs8L2NvZGU+IGVsZW1lbnQgaW4geW91ciB0ZW1wbGF0ZXMuPC9wPid9CiAgICAgICAgICAubWluSGVpZ2h0PSR7MjUwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IHJpY2ggdGV4dCBjb250ZW50In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiUHVibGlzaGVkIEFydGljbGUgKFJlYWQgT25seSkifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+VGhlIEZ1dHVyZSBvZiBXZWIgQ29tcG9uZW50czwvaDI+PHA+V2ViIENvbXBvbmVudHMgaGF2ZSByZXZvbHV0aW9uaXplZCBob3cgd2UgYnVpbGQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMuLi48L3A+PGJsb2NrcXVvdGU+PHA+IlRoZSBmdXR1cmUgb2Ygd2ViIGRldmVsb3BtZW50IGxpZXMgaW4gcmV1c2FibGUsIGVuY2Fwc3VsYXRlZCBjb21wb25lbnRzLiI8L3A+PC9ibG9ja3F1b3RlPid9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiVHlwZSBpbiB0aGUgZWRpdG9yIGJlbG93IGFuZCBzZWUgdGhlIEhUTUwgb3V0cHV0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZWRpdG9yIgogICAgICAgICAgLmxhYmVsPSR7IlRyeSBpdCB5b3Vyc2VsZiJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgc29tZXRoaW5nIGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgIEBjaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3Iik7ZSYmKGUudGV4dENvbnRlbnQ9cy5kZXRhaWwudmFsdWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ib3V0cHV0LXByZXZpZXciPgogICAgICAgICAgPGVtPkhUTUwgb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgeDNhLHkzYT1nKCgpPT57cGUoKTt6aSgpO3B0KCk7eDNhPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLmZvY3VzZWQ6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHAgewogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHVsLAogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIG9sIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtOwogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBsaSB7CiAgICAgICAgbWFyZ2luOiAwLjI1ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTsKICAgICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0ZpcmEgQ29kZScsICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsICdSb2JvdG8gTW9ubycsIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMWVtOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNDEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDY5LjglKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLndvcmQtY291bnQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIGRlZXMtdGlsZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50b29sYmFyLWJ1dHRvbiwKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF19KTt2YXIgdzNhLGszYT1nKCgpPT57cGUoKTt3M2E9aShzPT53YAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgJHtzLmxhYmVsP3dgPGxhYmVsIGNsYXNzPSJsYWJlbCI+JHtzLmxhYmVsfTwvbGFiZWw+YDoiIn0KICAgICAgICAgIDxkZWVzLXRpbGUgY2xhc3M9IiR7cy5lZGl0b3I/LmlzRm9jdXNlZD8iZm9jdXNlZCI6IiJ9IiBzdHlsZT0iLS1taW4taGVpZ2h0OiAke3MubWluSGVpZ2h0fXB4Ij4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJlZGl0b3ItdG9vbGJhciI+CiAgICAgICAgICAgICAgJHtzLnJlbmRlclRvb2xiYXIoKX0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0ICR7cy5zaG93TGlua0lucHV0PyJzaG93IjoiIn0iPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InVybCIgcGxhY2Vob2xkZXI9IkVudGVyIFVSTC4uLiIgQGtleWRvd249JHtzLmhhbmRsZUxpbmtJbnB1dEtleWRvd259IC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0LWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcmltYXJ5IiBAY2xpY2s9JHtzLnNhdmVMaW5rfT5TYXZlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7cy5yZW1vdmVMaW5rfT5SZW1vdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHtzLmhpZGVMaW5rSW5wdXR9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+PC9kaXY+CiAgICAgICAgICAgICR7cy5zaG93V29yZENvdW50P3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQtY291bnQiPiR7cy53b3JkQ291bnR9IHdvcmQke3Mud29yZENvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAgICR7cy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgIDwvZGl2PgogICAgICBgLCJyZW5kZXJSaWNodGV4dCIpfSk7dmFyIGZnLFhsLFljZSxLY2U9ZygoKT0+e3ppKCk7djNhKCk7eTNhKCk7azNhKCk7VWEoKTtwZSgpO2Z1KCk7bnIoKTtmZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sWGw9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFljZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcmljaHRleHQiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UmljaHRleHQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtZKCldLE49W1koKV0sZmcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZhbHVlPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxmZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJwbGFjZWhvbGRlciJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UucGxhY2Vob2xkZXI9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLGZnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2hvd1dvcmRDb3VudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNob3dXb3JkQ291bnQsImdldCIpLHNldDppKChFLEgpPT57RS5zaG93V29yZENvdW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYix2KSxmZyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWluSGVpZ2h0ImluIEUsImhhcyIpLGdldDppKEU9PkUubWluSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubWluSGVpZ2h0PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSxmZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dMaW5rSW5wdXQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93TGlua0lucHV0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc2hvd0xpbmtJbnB1dD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksZmcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+IndvcmRDb3VudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLndvcmRDb3VudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLndvcmRDb3VudD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksZmcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1iM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVhsKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCQpe3RoaXMuI2U9JH0jdD0oWGwodGhpcyxsKSxYbCh0aGlzLGQsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoJCl7dGhpcy4jdD0kfSNhPShYbCh0aGlzLHUpLFhsKHRoaXMsYiwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dXb3JkQ291bnQoJCl7dGhpcy4jYT0kfSNzPShYbCh0aGlzLHYpLFhsKHRoaXMsbSwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1pbkhlaWdodCgkKXt0aGlzLiNzPSR9I2k9KFhsKHRoaXMsZiksWGwodGhpcyxNLCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd0xpbmtJbnB1dCgkKXt0aGlzLiNpPSR9I3I9KFhsKHRoaXMseiksWGwodGhpcyxDLDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHdvcmRDb3VudCgkKXt0aGlzLiNyPSR9ZWRpdG9yRWxlbWVudD1YbCh0aGlzLF8pO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9eDNhO3JlbmRlcigpe3JldHVybiB3M2EodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCAkPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gd2AKICAgICAgJHskLm1hcChFPT5FLmlzRGl2aWRlcj93YDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHtFLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke0UuYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0ke0UudGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke0UuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQm9sZCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYm9sZCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiaXRhbGljIixpY29uOiJsdWNpZGU6aXRhbGljIix0aXRsZToiSXRhbGljIChDdHJsK0kpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUl0YWxpYygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaXRhbGljIiksImlzQWN0aXZlIil9LHtuYW1lOiJ1bmRlcmxpbmUiLGljb246Imx1Y2lkZTp1bmRlcmxpbmUiLHRpdGxlOiJVbmRlcmxpbmUgKEN0cmwrVSkiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKSwiaXNBY3RpdmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVN0cmlrZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgic3RyaWtlIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMSIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToiaDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSIsdGl0bGU6IkhlYWRpbmcgMSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoxfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6MX0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDIiLGljb246Imx1Y2lkZTpoZWFkaW5nMiIsdGl0bGU6IkhlYWRpbmcgMiIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDozfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6M30pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjIiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImJ1bGxldExpc3QiLGljb246Imx1Y2lkZTpsaXN0Iix0aXRsZToiQnVsbGV0IExpc3QiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQnVsbGV0TGlzdCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYnVsbGV0TGlzdCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToib3JkZXJlZExpc3QiLGljb246Imx1Y2lkZTpsaXN0T3JkZXJlZCIsdGl0bGU6Ik51bWJlcmVkIExpc3QiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0IiksImlzQWN0aXZlIil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCbG9ja3F1b3RlKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJibG9ja3F1b3RlIiksImlzQWN0aXZlIil9LHtuYW1lOiJjb2RlIixpY29uOiJsdWNpZGU6Y29kZSIsdGl0bGU6IkNvZGUiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQ29kZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiY29kZUJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUiLHRpdGxlOiJDb2RlIEJsb2NrIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOmkoKCk9PnRoaXMudG9nZ2xlTGluaygpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25MZWZ0IixpY29uOiJsdWNpZGU6YWxpZ25MZWZ0Iix0aXRsZToiQWxpZ24gTGVmdCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oImxlZnQiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoibGVmdCJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduQ2VudGVyIixpY29uOiJsdWNpZGU6YWxpZ25DZW50ZXIiLHRpdGxlOiJBbGlnbiBDZW50ZXIiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oInJpZ2h0IikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246InJpZ2h0In0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjQiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6InVuZG8iLGljb246Imx1Y2lkZTp1bmRvIix0aXRsZToiVW5kbyAoQ3RybCtaKSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bmRvKCkucnVuKCksImFjdGlvbiIpfSx7bmFtZToicmVkbyIsaWNvbjoibHVjaWRlOnJlZG8iLHRpdGxlOiJSZWRvIChDdHJsK1kpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnJlZG8oKS5ydW4oKSwiYWN0aW9uIil9XTpbXX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMudGlwdGFwQnVuZGxlPWF3YWl0IFFyLmdldEluc3RhbmNlKCkubG9hZFRpcHRhcCgpLHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5saW5rSW5wdXRFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubGluay1pbnB1dCBpbnB1dCIpLHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWluaXRpYWxpemVFZGl0b3IoKXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy50aXB0YXBCdW5kbGUpcmV0dXJuO2xldHtFZGl0b3I6JCxTdGFydGVyS2l0OkUsVW5kZXJsaW5lOkgsVGV4dEFsaWduOmssTGluazpTLFR5cG9ncmFwaHk6SX09dGhpcy50aXB0YXBCdW5kbGU7dGhpcy5lZGl0b3I9bmV3ICQoe2VsZW1lbnQ6dGhpcy5lZGl0b3JFbGVtZW50LGV4dGVuc2lvbnM6W0UuY29uZmlndXJlKHtoZWFkaW5nOntsZXZlbHM6WzEsMiwzXX19KSxILmNvbmZpZ3VyZSh7fSksay5jb25maWd1cmUoe3R5cGVzOlsiaGVhZGluZyIsInBhcmFncmFwaCJdfSksUy5jb25maWd1cmUoe29wZW5PbkNsaWNrOiExLEhUTUxBdHRyaWJ1dGVzOntjbGFzczoiZWRpdG9yLWxpbmsifX0pLEkuY29uZmlndXJlKHt9KV0sY29udGVudDp0aGlzLnZhbHVlfHwodGhpcy5wbGFjZWhvbGRlcj9gPHA+JHt0aGlzLnBsYWNlaG9sZGVyfTwvcD5gOiIiKSxvblVwZGF0ZTppKCh7ZWRpdG9yOlB9KT0+e3RoaXMudmFsdWU9UC5nZXRIVE1MKCksdGhpcy51cGRhdGVXb3JkQ291bnQoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJvblVwZGF0ZSIpLG9uU2VsZWN0aW9uVXBkYXRlOmkoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uU2VsZWN0aW9uVXBkYXRlIiksb25Gb2N1czppKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvbkZvY3VzIiksb25CbHVyOmkoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uQmx1ciIpfSksdGhpcy51cGRhdGVXb3JkQ291bnQoKX11cGRhdGVXb3JkQ291bnQoKXtpZighdGhpcy5lZGl0b3IpcmV0dXJuO2xldCAkPXRoaXMuZWRpdG9yLmdldFRleHQoKTt0aGlzLndvcmRDb3VudD0kLnRyaW0oKT8kLnRyaW0oKS5zcGxpdCgvXHMrLykubGVuZ3RoOjB9dG9nZ2xlTGluaygpe2lmKHRoaXMuZWRpdG9yKWlmKHRoaXMuZWRpdG9yLmlzQWN0aXZlKCJsaW5rIikpe2xldCAkPXRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoImxpbmsiKS5ocmVmO3RoaXMuc2hvd0xpbmtJbnB1dD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmxpbmtJbnB1dEVsZW1lbnQmJih0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU9JHx8IiIsdGhpcy5saW5rSW5wdXRFbGVtZW50LmZvY3VzKCksdGhpcy5saW5rSW5wdXRFbGVtZW50LnNlbGVjdCgpKX0pfWVsc2UgdGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT0iIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSl9KX1zYXZlTGluaygpe2lmKCF0aGlzLmVkaXRvcnx8IXRoaXMubGlua0lucHV0RWxlbWVudClyZXR1cm47bGV0ICQ9dGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlOyQmJnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRMaW5rKHtocmVmOiR9KS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKX1yZW1vdmVMaW5rKCl7dGhpcy5lZGl0b3ImJih0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5zZXRMaW5rKCkucnVuKCksdGhpcy5oaWRlTGlua0lucHV0KCkpfWhpZGVMaW5rSW5wdXQoKXt0aGlzLnNob3dMaW5rSW5wdXQ9ITEsdGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCl9aGFuZGxlTGlua0lucHV0S2V5ZG93bigkKXskLmtleT09PSJFbnRlciI/KCQucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVMaW5rKCkpOiQua2V5PT09IkVzY2FwZSImJigkLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWRlTGlua0lucHV0KCkpfXNldFZhbHVlKCQpe3RoaXMudmFsdWU9JCx0aGlzLmVkaXRvciYmJCE9PXRoaXMuZWRpdG9yLmdldEhUTUwoKSYmdGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0Q29udGVudCgkKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfWNsZWFyKCl7dGhpcy5zZXRWYWx1ZSgiIil9Zm9jdXMoKXt0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmRlc3Ryb3koKX1zdGF0aWN7WGwoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIFMzYSxfM2E9ZygoKT0+e2dpdCgpO3BvKCk7cGUoKTtJdCgpO1MzYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgPGRlZXMtYnV0dG9uIGNsYXNzPSJ0aGVtZS10b2dnbGUiIEBjbGljaz0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImRhcmsiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIFRhYmxlIHdpdGggQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgc3RhbmRhcmQgdGFibGUgd2l0aCByb3cgYWN0aW9ucywgZWRpdGFibGUgY2VsbHMsIGFuZCBjb250ZXh0IG1lbnUgc3VwcG9ydC4gRG91YmxlLWNsaWNrIGFueSBjZWxsIHRvIGVkaXQuIFRhYiBtb3ZlcyB0byB0aGUgbmV4dCBlZGl0YWJsZSBjZWxsLCBFbnRlciB0byB0aGUgcm93IGJlbG93LCBFc2MgY2FuY2Vscy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50IgogICAgICAgICAgaGVhZGluZzI9IkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjEiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJkYXRlIixoZWFkZXI6IkRhdGUiLHNvcnRhYmxlOiEwLGVkaXRhYmxlOiEwLGVkaXRvcjoiZGF0ZSJ9LHtrZXk6ImFtb3VudCIsaGVhZGVyOiJBbW91bnQiLGVkaXRhYmxlOiEwLGVkaXRvcjoidGV4dCJ9LHtrZXk6ImNhdGVnb3J5IixoZWFkZXI6IkNhdGVnb3J5IixlZGl0YWJsZTohMCxlZGl0b3I6ImRyb3Bkb3duIixlZGl0b3JPcHRpb25zOntvcHRpb25zOlt7b3B0aW9uOiJPZmZpY2UgU3VwcGxpZXMiLGtleToib2ZmaWNlIn0se29wdGlvbjoiSGFyZHdhcmUiLGtleToiaGFyZHdhcmUifSx7b3B0aW9uOiJTb2Z0d2FyZSIsa2V5OiJzb2Z0d2FyZSJ9LHtvcHRpb246IlRyYXZlbCIsa2V5OiJ0cmF2ZWwifV19fSx7a2V5OiJkZXNjcmlwdGlvbiIsaGVhZGVyOiJEZXNjcmlwdGlvbiIsZWRpdGFibGU6ITB9LHtrZXk6InJlY29uY2lsZWQiLGhlYWRlcjoiT0siLGVkaXRhYmxlOiEwLGVkaXRvcjoiY2hlY2tib3gifV19CiAgICAgICAgICBAY2VsbEVkaXQ9JHtzPT5jb25zb2xlLmxvZygiY2VsbEVkaXQiLHMuZGV0YWlsKX0KICAgICAgICAgIC5kYXRhPSR7W3tkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixjYXRlZ29yeToib2ZmaWNlIixkZXNjcmlwdGlvbjoiUHJpbnRpbmcgUGFwZXIgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDIiLGFtb3VudDoiMTY1LjY1IFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTG9naXRlY2ggTW91c2UgLSBsb2dpLmNvbSBPbmxpbmVTaG9wIixyZWNvbmNpbGVkOiExfSx7ZGF0ZToiMjAyMS0wNC0wMyIsYW1vdW50OiIyOTk5LDAwIFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTWFjYm9vayBQcm8gMTZpbmNoIC0gQXBwbGUuZGUgT25saW5lU2hvcCIscmVjb25jaWxlZDohMX0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH1dfQogICAgICAgICAgZGF0YU5hbWU9InRyYW5zYWN0aW9ucyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6InVwbG9hZCIsaWNvbk5hbWU6ImJlbGwiLHVzZVRhYmxlQmVoYXZpb3VyOiJ1cGxvYWQiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57YWxlcnQocy5pdGVtLmFtb3VudCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJ2aXNpYmlsaXR5IixpY29uTmFtZToiY29weSIsdHlwZTpbImluUm93Il0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY3JlYXRlIG5ldyIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsdHlwZTpbImhlYWRlciJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmkoYXN5bmMgcz0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6InRvIGdhbGxlcnkiLGljb25OYW1lOiJtZXNzYWdlIix0eXBlOlsiZm9vdGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY29weSIsaWNvbk5hbWU6ImNvcHlTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51IiwiaW5Sb3ciXSxhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX0se25hbWU6ImVkaXQgKGZyb20gZGVtbykiLGljb25OYW1lOiJwZW5Ub1NxdWFyZSIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOmkoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9LHtuYW1lOiJwYXN0ZSIsaWNvbk5hbWU6InBhc3RlU29saWQiLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbjppKGFzeW5jKCk9Pm51bGwsImFjdGlvbiIpfSx7bmFtZToicHJldmlldyIsdHlwZTpbImRvdWJsZUNsaWNrIiwiY29udGV4dG1lbnUiXSxpY29uTmFtZToiZXllIixhY3Rpb25GdW5jOmkoYXN5bmMgcz0+KGFsZXJ0KHMuaXRlbS5hbW91bnQpLG51bGwpLCJhY3Rpb25GdW5jIil9XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBWZXJ0aWNhbCBMaW5lczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVuaGFuY2VkIGNvbHVtbiBzZXBhcmF0aW9uIGZvciBiZXR0ZXIgZGF0YSB0cmFja2luZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQcm9kdWN0IEludmVudG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJDdXJyZW50IHN0b2NrIGxldmVscyBhY3Jvc3Mgd2FyZWhvdXNlcyIKICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6J01hY0Jvb2sgUHJvIDE2Iicsd2FyZWhvdXNlX2E6IjQ1Iix3YXJlaG91c2VfYjoiMzIiLHdhcmVob3VzZV9jOiIyOCIsdG90YWw6IjEwNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiaVBob25lIDE1IFBybyIsd2FyZWhvdXNlX2E6IjEyMCIsd2FyZWhvdXNlX2I6Ijg5Iix3YXJlaG91c2VfYzoiMTU2Iix0b3RhbDoiMzY1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJBaXJQb2RzIFBybyIsd2FyZWhvdXNlX2E6IjAiLHdhcmVob3VzZV9iOiIxMiIsd2FyZWhvdXNlX2M6IjUiLHRvdGFsOiIxNyIsc3RhdHVzOiJcdTI2QTAgTG93IFN0b2NrIn0se3Byb2R1Y3Q6ImlQYWQgQWlyIix3YXJlaG91c2VfYToiMjMiLHdhcmVob3VzZV9iOiI0NSIsd2FyZWhvdXNlX2M6IjY3Iix0b3RhbDoiMTM1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmQiCiAgICAgICAgICBoZWFkaW5nMj0iUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnMiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tzZXJ2ZXI6IkFQSS0xIixyZWdpb246IlVTLUVhc3QiLGNwdToiNDUlIixtZW1vcnk6IjYyJSIsZGlzazoiNzglIixsYXRlbmN5OiIxMm1zIix1cHRpbWU6Ijk5LjklIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQVBJLTIiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIzOCUiLG1lbW9yeToiNTUlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjI1bXMiLHVwdGltZToiOTkuOCUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJEQi1NYXN0ZXIiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI3MiUiLG1lbW9yeToiODElIixkaXNrOiI5MiUiLGxhdGVuY3k6IjhtcyIsdXB0aW1lOiIxMDAlIixzdGF0dXM6Ilx1ezFGN0UxfSBXYXJuaW5nIn0se3NlcnZlcjoiREItUmVwbGljYSIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjIzJSIsbWVtb3J5OiIzNCUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMTVtcyIsdXB0aW1lOiI5OS43JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkNhY2hlLTEiLHJlZ2lvbjoiQVAtU291dGgiLGNwdToiODklIixtZW1vcnk6IjkyJSIsZGlzazoiMTIlIixsYXRlbmN5OiIxMjBtcyIsdXB0aW1lOiI5OC41JSIsc3RhdHVzOiJcdXsxRjUzNH0gQ3JpdGljYWwifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2VydmVycyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6IlNTSCBDb25uZWN0IixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMgcz0+e2NvbnNvbGUubG9nKCJDb25uZWN0aW5nIHRvOiIscy5pdGVtLnNlcnZlcil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6ZmlsZS10ZXh0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57Y29uc29sZS5sb2coIlZpZXdpbmcgbG9ncyBmb3I6IixzLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IlJlc3RhcnQgU2VydmVyIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57Y29uc29sZS5sb2coIlJlc3RhcnRpbmc6IixzLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEhvcml6b250YWwgTGluZXMgT25seTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVtcGhhc2lzIG9uIHJvdyBzZXBhcmF0aW9uIHdpdGhvdXQgY29sdW1uIGRpdmlkZXJzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFBlcmZvcm1hbmNlIgogICAgICAgICAgaGVhZGluZzI9IlRvcCBwZXJmb3JtZXJzIHRoaXMgcXVhcnRlciIKICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7ITB9CiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tzYWxlc3BlcnNvbjoiRW1pbHkgSm9obnNvbiIscmVnaW9uOiJOb3J0aCBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjQyIixyZXZlbnVlOiIkMS4yTSIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEyOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJNaWNoYWVsIENoZW4iLHJlZ2lvbjoiQXNpYSBQYWNpZmljIixkZWFsc19jbG9zZWQ6IjM4IixyZXZlbnVlOiIkOTgwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjExNSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJTYXJhaCBXaWxsaWFtcyIscmVnaW9uOiJFdXJvcGUiLGRlYWxzX2Nsb3NlZDoiMzUiLHJldmVudWU6IiQ4NzVLIixxdW90YV9hY2hpZXZlbWVudDoiMTA4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IkRhdmlkIEdhcmNpYSIscmVnaW9uOiJMYXRpbiBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjMxIixyZXZlbnVlOiIkNzUwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6Ijk1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2FsZXMgcmVwcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TaW1wbGUgVGFibGUgKE5vIEdyaWQpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q2xlYW4sIG1pbmltYWwgZGVzaWduIHdpdGhvdXQgZ3JpZCBsaW5lcy4gU2V0IHNob3dHcmlkIHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgZ3JpZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJUZWFtIE1lbWJlcnMiCiAgICAgICAgICBoZWFkaW5nMj0iRW5naW5lZXJpbmcgRGVwYXJ0bWVudCIKICAgICAgICAgIC5zaG93R3JpZD0keyExfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkxlYWQgRW5naW5lZXIiLGVtYWlsOiJhbGljZUBjb21wYW55LmNvbSIsbG9jYXRpb246IlNhbiBGcmFuY2lzY28iLGpvaW5lZDoiMjAyMC0wMy0xNSJ9LHtuYW1lOiJCb2IgU21pdGgiLHJvbGU6IlNlbmlvciBEZXZlbG9wZXIiLGVtYWlsOiJib2JAY29tcGFueS5jb20iLGxvY2F0aW9uOiJOZXcgWW9yayIsam9pbmVkOiIyMDE5LTA3LTIyIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6IkRldk9wcyBFbmdpbmVlciIsZW1haWw6ImNoYXJsaWVAY29tcGFueS5jb20iLGxvY2F0aW9uOiJMb25kb24iLGpvaW5lZDoiMjAyMS0wMS0xMCJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRnJvbnRlbmQgRGV2ZWxvcGVyIixlbWFpbDoiZGlhbmFAY29tcGFueS5jb20iLGxvY2F0aW9uOiJCYXJjZWxvbmEiLGpvaW5lZDoiMjAyMi0wNS0xOCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJ0ZWFtIG1lbWJlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBDdXN0b20gRGlzcGxheSBGdW5jdGlvbjwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlRyYW5zZm9ybSBkYXRhIGZvciBkaXNwbGF5IHVzaW5nIGN1c3RvbSBmb3JtYXR0aW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFJlcG9ydCIKICAgICAgICAgIGhlYWRpbmcyPSJRNCAyMDIzIFBlcmZvcm1hbmNlIgogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6IkVudGVycHJpc2UgTGljZW5zZSIsdW5pdHM6NDUscmV2ZW51ZToyMjVlMyxncm93dGg6LjIzLGZvcmVjYXN0OjI4ZTR9LHtwcm9kdWN0OiJQcm9mZXNzaW9uYWwgTGljZW5zZSIsdW5pdHM6MTI4LHJldmVudWU6MTI4ZTMsZ3Jvd3RoOi4xNSxmb3JlY2FzdDoxNDdlM30se3Byb2R1Y3Q6IlN0YXJ0ZXIgTGljZW5zZSIsdW5pdHM6MzQyLHJldmVudWU6Njg0MDAsZ3Jvd3RoOi40Mixmb3JlY2FzdDo5N2UzfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7cz0+KHtQcm9kdWN0OnMucHJvZHVjdCwiVW5pdHMgU29sZCI6cy51bml0cy50b0xvY2FsZVN0cmluZygpLFJldmVudWU6IiQiK3MucmV2ZW51ZS50b0xvY2FsZVN0cmluZygpLEdyb3d0aDoocy5ncm93dGgqMTAwKS50b0ZpeGVkKDEpKyIlIiwiUTEgMjAyNCBGb3JlY2FzdCI6IiQiK3MuZm9yZWNhc3QudG9Mb2NhbGVTdHJpbmcoKX0pfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkVtcHR5IFRhYmxlIFN0YXRlPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+SG93IHRoZSB0YWJsZSBsb29rcyB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9Ik5vIERhdGEgQXZhaWxhYmxlIgogICAgICAgICAgaGVhZGluZzI9IlRoaXMgdGFibGUgaXMgY3VycmVudGx5IGVtcHR5IgogICAgICAgICAgLmRhdGE9JHtbXX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFNjaGVtYS1GaXJzdCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlciIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixyZW5kZXJlcjppKHM9PndgPGRlZXMtYmFkZ2U+JHtzfTwvZGVlcy1iYWRnZT5gLCJyZW5kZXJlciIpfSx7a2V5OiJqb2luZWRBdCIsaGVhZGVyOiJKb2luZWQiLHJlbmRlcmVyOmkocz0+bmV3IERhdGUocykudG9Mb2NhbGVEYXRlU3RyaW5nKCksInJlbmRlcmVyIil9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSIsZW1haWw6ImFsaWNlQGV4YW1wbGUuY29tIixqb2luZWRBdDoiMjAyMi0wOC0wMSJ9LHtuYW1lOiJCb2IiLGVtYWlsOiJib2JAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIxLTEyLTExIn0se25hbWU6IkNhcm9sIixlbWFpbDoiY2Fyb2xAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIzLTAzLTIyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlBhcnRpYWwgU2NoZW1hICsgQXVnbWVudCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlByb3ZpZGVzIG9ubHkgdGhlIGltcG9ydGFudCBjb2x1bW5zOyB0aGUgcmVzdCBhcmUgbWVyZ2VkIGluIGZyb20gZGlzcGxheUZ1bmN0aW9uLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChQYXJ0aWFsICsgQXVnbWVudCkiCiAgICAgICAgICBoZWFkaW5nMj0iTWlzc2luZyBjb2x1bW5zIGFyZSBkZXJpdmVkIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke3M9Pih7bmFtZTpzLm5hbWUsZW1haWw6cy5lbWFpbCxyb2xlOnMucm9sZX0pfQogICAgICAgICAgLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiRXJpbiIsZW1haWw6ImVyaW5AZXhhbXBsZS5jb20iLHJvbGU6IkFkbWluIn0se25hbWU6IkZpbm4iLGVtYWlsOiJmaW5uQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn0se25hbWU6IkdpbmEiLGVtYWlsOiJnaW5hQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIiAKICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7cz0+e2NvbnNvbGUubG9nKCJTZWxlY3Rpb24gY2hhbmdlZCIscy5kZXRhaWwpfX0KICAgICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtzPT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dChzLmRldGFpbC52YWx1ZSl9fQogICAgICAgICAgIEBzZWFyY2gtc3VibWl0PSR7cz0+e2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZUZpbHRlclNlbGVjdERlbW8iKTtlJiZlLnNldEZpbHRlclRleHQocy5kZXRhaWwudmFsdWUpfX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RmlsdGVyaW5nICsgTXVsdGktU2VsZWN0aW9uIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VXNlIHRoZSBzZWFyY2ggYmFyIHRvIGZpbHRlciByb3dzOyB0b2dnbGUgc2VsZWN0aW9uIHZpYSBjaGVja2JveGVzLiBDbGljayBoZWFkZXJzIHRvIHNvcnQuPC9wPgogICAgICAgIDxkZWVzLXNlYXJjaGJhcj48L2RlZXMtc2VhcmNoYmFyPgogICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTJweCI+PC9kaXY+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJ0YWJsZUZpbHRlclNlbGVjdERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iSW52ZW50b3J5IChGaWx0ZXIgKyBTZWxlY3QpIgogICAgICAgICAgaGVhZGluZzI9IlRyeSB0eXBpbmcgdG8gZmlsdGVyIGFuZCBzZWxlY3RpbmcgbXVsdGlwbGUgcm93cyIKICAgICAgICAgIC5zZWxlY3Rpb25Nb2RlPSR7Im11bHRpIn0KICAgICAgICAgIC5yb3dLZXk9JHsic2t1In0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InNrdSIsaGVhZGVyOiJTS1UiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJzdG9jayIsaGVhZGVyOiJTdG9jayIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tza3U6IkEtMTAwIixuYW1lOiJVU0ItQyBDYWJsZSIsc3RvY2s6MTIwfSx7c2t1OiJBLTEwMSIsbmFtZToiV2lyZWxlc3MgTW91c2UiLHN0b2NrOjU1fSx7c2t1OiJBLTEwMiIsbmFtZToiTGFwdG9wIFN0YW5kIixzdG9jazoxOH0se3NrdToiQi0yMDAiLG5hbWU6IktleWJvYXJkIChJU08pIixzdG9jazo4OX0se3NrdToiQi0yMDEiLG5hbWU6IkhETUkgQWRhcHRlciIsc3RvY2s6MH0se3NrdToiQy0zMDAiLG5hbWU6IldlYmNhbSAxMDgwcCIsc3RvY2s6NDJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Db2x1bW4gRmlsdGVycyArIFN0aWNreSBIZWFkZXIgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5QZXItY29sdW1uIHF1aWNrIGZpbHRlcnMgYW5kIHN0aWNreSBoZWFkZXIgd2l0aCBpbnRlcm5hbCBzY3JvbGwuIFRyeSBmaWx0ZXJpbmcgdGhlIE5hbWUgY29sdW1uLiBVc2VzIC0tdGFibGUtbWF4LWhlaWdodCB2YXIuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgIGRlZXMtdGFibGVbZml4ZWQtaGVpZ2h0XSB7IC0tdGFibGUtbWF4LWhlaWdodDogMjIwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iRW1wbG95ZWVzIgogICAgICAgICAgaGVhZGluZzI9IlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlciIKICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgLmZpeGVkSGVpZ2h0PSR7ITB9CiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSBKb2huc29uIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkJvYiBTbWl0aCIsZW1haWw6ImJvYkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiQ2hhcmxpZSBEYXZpcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkhSIn0se25hbWU6IkRpYW5hIE1hcnRpbmV6IixlbWFpbDoiZGlhbmFAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkV0aGFuIEJyb3duIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiRmlvbmEgQ2xhcmsiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiR3JhY2UgTGVlIixlbWFpbDoiZ3JhY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkhlbnJ5IFdpbHNvbiIsZW1haWw6ImhlbnJ5QGNvcnAuY29tIixkZXBhcnRtZW50OiJNYXJrZXRpbmcifSx7bmFtZToiSXJlbmUgV2Fsa2VyIixlbWFpbDoiaXJlbmVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiSmFjayBUdXJuZXIiLGVtYWlsOiJqYWNrQGNvcnAuY29tIixkZXBhcnRtZW50OiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9ImVtcGxveWVlcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiIKICAgICAgICBAc2VhcmNoUmVxdWVzdD0ke2FzeW5jIHM9PntsZXR7cXVlcnk6ZX09cy5kZXRhaWx8fHtxdWVyeToiIn0sdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VydmVyU2VhcmNoRGVtbyIpLGE9W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV07YXdhaXQgbmV3IFByb21pc2Uobz0+c2V0VGltZW91dChvLDMwMCkpO2xldCByPVN0cmluZyhlfHwiIikudG9Mb3dlckNhc2UoKSxuPXI/YS5maWx0ZXIobz0+T2JqZWN0LnZhbHVlcyhvKS5zb21lKGw9PlN0cmluZyhsKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHIpKSk6YTt0LmRhdGE9bn19CiAgICAgID4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNlcnZlciBTZWFyY2ggKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5TZWxlY3QgU2VydmVyIG1vZGUsIHR5cGUgYSBxdWVyeSwgYW5kIHdhdGNoIHRoZSB0YWJsZSBmZXRjaCBzaW11bGF0ZWQgcmVzdWx0cy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzZXJ2ZXJTZWFyY2hEZW1vIgogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSAoU2VydmVyIFNlYXJjaCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ2xpY2sgU2VhcmNoLCBjaG9vc2UgU2VydmVyIG1vZGUsIGFuZCB0eXBlIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIn0se2tleToiY2l0eSIsaGVhZGVyOiJDaXR5In0se2tleToidGl0bGUiLGhlYWRlcjoiVGl0bGUifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSIsY2l0eToiQmVybGluIix0aXRsZToiRW5naW5lZXIifSx7aWQ6MixuYW1lOiJCb2IiLGNpdHk6IlBhcmlzIix0aXRsZToiRGVzaWduZXIifSx7aWQ6MyxuYW1lOiJDaGFybGllIixjaXR5OiJMb25kb24iLHRpdGxlOiJNYW5hZ2VyIn0se2lkOjQsbmFtZToiRGlhbmEiLGNpdHk6Ik1hZHJpZCIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjUsbmFtZToiRXRoYW4iLGNpdHk6IlJvbWUiLHRpdGxlOiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9InBlb3BsZSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aS1Db2x1bW4gU29ydDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2xpY2sgYW55IGNvbHVtbiBoZWFkZXIgZm9yIGEgc2luZ2xlLWNvbHVtbiBzb3J0LiBIb2xkIFNoaWZ0IHdoaWxlIGNsaWNraW5nIHRvIGFkZCB0aGUKICAgICAgICAgIGNvbHVtbiB0byBhIG11bHRpLXNvcnQgY2FzY2FkZSAob3IgY3ljbGUgaXRzIGRpcmVjdGlvbikuIFJpZ2h0LWNsaWNrIGFueSBzb3J0YWJsZSBoZWFkZXIKICAgICAgICAgIHRvIG9wZW4gYSBtZW51IHdoZXJlIHlvdSBjYW4gcGluIGEgY29sdW1uIHRvIGEgc3BlY2lmaWMgcHJpb3JpdHkgc2xvdCwgcmVtb3ZlIGl0LCBvcgogICAgICAgICAgY2xlYXIgdGhlIGNhc2NhZGUuCiAgICAgICAgPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJQcmUtc2VlZGVkIHdpdGggZGVwYXJ0bWVudCDilrIgMSwgbmFtZSDilrIgMiIKICAgICAgICAgIC5zb3J0Qnk9JHtbe2tleToiZGVwYXJ0bWVudCIsZGlyOiJhc2MifSx7a2V5OiJuYW1lIixkaXI6ImFzYyJ9XX0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe2RlcGFydG1lbnQ6IlImRCIsbmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMC0wNi0zMCIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJNYXJrIExlZSIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyNC0wMy0wNCIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJTYXJhIEtpbSIscm9sZToiRGVzaWduZXIiLGNyZWF0ZWRBdDoiMjAyMS0wOC0xOSIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiSGVsZW5hIFZvc3MiLHJvbGU6IlNSRSIsY3JlYXRlZEF0OiIyMDIzLTA3LTIyIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJRQSIsbmFtZToiRmlvbmEgQ2xhcmsiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IlFBIixuYW1lOiJUb21ceEUxcyBSaXZlcmEiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjQtMDEtMDkiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IkNTIixuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsY3JlYXRlZEF0OiIyMDE5LTA5LTE4Iixsb2NhdGlvbjoiUm9tZSIsc3RhdHVzOiJJbmFjdGl2ZSJ9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5XaWRlIFByb3BlcnRpZXMgKyBNYW55IEFjdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5BIHRhYmxlIHdpdGggbWFueSBjb2x1bW5zIGFuZCByaWNoIGFjdGlvbnMgdG8gc3RyZXNzIHRlc3QgbGF5b3V0IGFuZCBzdGlja3kgQWN0aW9ucy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IgogICAgICAgICAgaGVhZGluZzI9Ik1hbnkgcHJvcGVydGllcyBhbmQgYWN0aW9ucyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiUiZEIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTEiLGxvY2F0aW9uOiJCZXJsaW4iLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjMtMDEtMTIiLHVwZGF0ZWRBdDoiMjAyNC0wNS0wMyIsbGFzdExvZ2luOiIyMDI0LTEwLTAxIixwcm9qZWN0czo1LHRhZ3M6InR5cGVzY3JpcHQsIHVpIixub3RlczoiTWVudG9yIn0se2lkOjIsbmFtZToiQm9iIFNtaXRoIixyb2xlOiJEZXNpZ25lciIsZGVwYXJ0bWVudDoiRGVzaWduIixlbWFpbDoiYm9iQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTEyIixsb2NhdGlvbjoiUGFyaXMiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLHVwZGF0ZWRBdDoiMjAyNC0wNC0xMCIsbGFzdExvZ2luOiIyMDI0LTA5LTI4Iixwcm9qZWN0czo4LHRhZ3M6ImZpZ21hLCBicmFuZCIsbm90ZXM6IlBhcnQtdGltZSJ9LHtpZDozLG5hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6Ik1hbmFnZXIiLGRlcGFydG1lbnQ6Ik9wcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTMiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiT24gTGVhdmUiLGNyZWF0ZWRBdDoiMjAyMS0wNC0yMSIsdXBkYXRlZEF0OiIyMDI0LTAyLTE1IixsYXN0TG9naW46IjIwMjQtMDgtMTIiLHByb2plY3RzOjMsdGFnczoic3JlLCBsZWFkZXJzaGlwIixub3RlczoiIn0se2lkOjQsbmFtZToiRGlhbmEgTWFydGluZXoiLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJQbGF0Zm9ybSIsZW1haWw6ImRpYW5hQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE0Iixsb2NhdGlvbjoiTWFkcmlkIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIwLTA2LTMwIix1cGRhdGVkQXQ6IjIwMjQtMDYtMjUiLGxhc3RMb2dpbjoiMjAyNC0xMC0wMiIscHJvamVjdHM6Nix0YWdzOiJub2RlLCBhcGkiLG5vdGVzOiJPbi1jYWxsIn0se2lkOjUsbmFtZToiRXRoYW4gQnJvd24iLHJvbGU6IlN1cHBvcnQiLGRlcGFydG1lbnQ6IkNTIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTUiLGxvY2F0aW9uOiJSb21lIixzdGF0dXM6IkluYWN0aXZlIixjcmVhdGVkQXQ6IjIwMTktMDktMTgiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wOSIsbGFzdExvZ2luOiIyMDI0LTA2LTE5Iixwcm9qZWN0czoyLHRhZ3M6InplbmRlc2siLG5vdGVzOiJSZWhpcmUifSx7aWQ6NixuYW1lOiJGaW9uYSBDbGFyayIscm9sZToiUUEiLGRlcGFydG1lbnQ6IlFBIixlbWFpbDoiZmlvbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTYiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wMSIsbGFzdExvZ2luOiIyMDI0LTA5LTA3Iixwcm9qZWN0czo3LHRhZ3M6InBsYXl3cmlnaHQiLG5vdGVzOiIifV19CiAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyh7aXRlbTpzfSk9Pntjb25zb2xlLmxvZygidmlldyIscyl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e2NvbnNvbGUubG9nKCJlZGl0IixzKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06c30pPT57Y29uc29sZS5sb2coImRlbGV0ZSIscyl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNZXNzYWdlIixpY29uTmFtZToibHVjaWRlOm1lc3NhZ2Utc3F1YXJlIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06c30pPT57Y29uc29sZS5sb2coIm1lc3NhZ2UiLHMpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiSGlzdG9yeSIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e2NvbnNvbGUubG9nKCJoaXN0b3J5IixzKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkFkZCBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImFkZCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRXhwb3J0IENTViIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImV4cG9ydCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiQnVsayBEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gtMiIsdHlwZTpbImZvb3RlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImJ1bGsgZGVsZXRlIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY3JvbGxhYmxlIFNtYWxsIEhlaWdodDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIG1hbnkgaXRlbXMgYW5kIGEgc21hbGwgZml4ZWQgaGVpZ2h0IHRvIGZvcmNlIHZlcnRpY2FsIHNjcm9sbGluZyBpbnNpZGUgdGhlIHRhYmxlLiBBY3Rpb25zIHJlbWFpbiB2aXNpYmxlIG9uIHRoZSByaWdodDsgaG9yaXpvbnRhbCBzY3JvbGwgYXBwZWFycyBpZiBuZWVkZWQuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICNzY3JvbGxTbWFsbEhlaWdodCB7IC0tdGFibGUtbWF4LWhlaWdodDogMjQwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2Nyb2xsU21hbGxIZWlnaHQiCiAgICAgICAgICAuZml4ZWRIZWlnaHQ9JHshMH0KICAgICAgICAgIC52aXJ0dWFsaXplZD0keyEwfQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkgKFNjcm9sbGFibGUsIFZpcnR1YWxpemVkKSIKICAgICAgICAgIGhlYWRpbmcyPSJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtcyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oe2xlbmd0aDoxMDB9LChzLGUpPT4oe2lkOmUrMSxuYW1lOmBVc2VyICR7ZSsxfWAscm9sZTpbIkVuZ2luZWVyIiwiRGVzaWduZXIiLCJNYW5hZ2VyIiwiUUEiLCJTdXBwb3J0Il1bZSU1XSxkZXBhcnRtZW50OlsiUiZEIiwiRGVzaWduIiwiT3BzIiwiUUEiLCJDUyJdW2UlNV0sZW1haWw6YHVzZXIke2UrMX1AY29ycC5jb21gLHBob25lOmArMSAyMDIgNTU1ICR7U3RyaW5nKDFlMytlKS5zbGljZSgtNCl9YCxsb2NhdGlvbjpbIkJlcmxpbiIsIlBhcmlzIiwiTG9uZG9uIiwiTWFkcmlkIiwiUm9tZSJdW2UlNV0sc3RhdHVzOlsiQWN0aXZlIiwiSW5hY3RpdmUiLCJPbiBMZWF2ZSJdW2UlM10sY3JlYXRlZEF0OmAyMDIzLSR7U3RyaW5nKGUlMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZyhlJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHVwZGF0ZWRBdDpgMjAyNC0ke1N0cmluZygoZSszKSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzcpJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLGxhc3RMb2dpbjpgMjAyNC0ke1N0cmluZygoZSs2KSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzEwKSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxwcm9qZWN0czplJTEyLHRhZ3M6ZSUyPyJ0eXBlc2NyaXB0IjoiZGVzaWduIixub3RlczplJTM/IiI6Ik5vdGUifSkpfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI2RlbW9MaXZlRmxhc2giKTtpZighZSlyZXR1cm47ZS5fX2xpdmVGbGFzaFRpbWVySWQmJndpbmRvdy5jbGVhckludGVydmFsKGUuX19saXZlRmxhc2hUaW1lcklkKTtsZXQgdD1pKCgpPT57aWYoIUFycmF5LmlzQXJyYXkoZS5kYXRhKXx8ZS5kYXRhLmxlbmd0aD09PTApcmV0dXJuO2xldCBhPWUuZGF0YS5tYXAobj0+KHsuLi5ufSkpLHI9MStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyk7Zm9yKGxldCBuPTA7bjxyO24rKyl7bGV0IG89TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmEubGVuZ3RoKSxsPSsoKE1hdGgucmFuZG9tKCkqMi0xKSozKS50b0ZpeGVkKDIpLHA9TWF0aC5tYXgoMSwrKGFbb10ucHJpY2UrbCkudG9GaXhlZCgyKSk7YVtvXT17Li4uYVtvXSxwcmljZTpwLGNoYW5nZTpsLHVwZGF0ZWRBdDpuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfX1lLmRhdGE9YX0sInRpY2siKTtlLl9fbGl2ZUZsYXNoVGltZXJJZD13aW5kb3cuc2V0SW50ZXJ2YWwodCwxNTAwKX19PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxpdmUgVXBkYXRlcyB3aXRoIEZsYXNoIEhpZ2hsaWdodGluZzwvaDI+CiAgICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgIE9wdC1pbiBjZWxsLWZsYXNoIHZpYSA8Y29kZT5oaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giPC9jb2RlPi4gVGhlIHRpY2tlciBiZWxvdyBtdXRhdGVzCiAgICAgICAgICAgIHJhbmRvbSByb3dzIGV2ZXJ5IDEuNXMgYW5kIHJlYXNzaWducyA8Y29kZT4uZGF0YTwvY29kZT4uIFVwZGF0ZWQgY2VsbHMgYnJpZWZseSBmbGFzaAogICAgICAgICAgICBhbWJlciBhbmQgZmFkZSBvdXQuIFJlcXVpcmVzIDxjb2RlPnJvd0tleTwvY29kZT4gKGhlcmUgPGNvZGU+InN5bWJvbCI8L2NvZGU+KS4gSG9ub3JzCiAgICAgICAgICAgIDxjb2RlPnByZWZlcnMtcmVkdWNlZC1tb3Rpb248L2NvZGU+LiBSb3cgc2VsZWN0aW9uIHBlcnNpc3RzIGFjcm9zcyB1cGRhdGVzIOKAlCBjbGljayBhCiAgICAgICAgICAgIHJvdywgdGhlbiB3YXRjaCBpdCBzdGF5IHNlbGVjdGVkIGFzIHRoZSBkYXRhIGNodXJucy4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICAgIGlkPSJkZW1vTGl2ZUZsYXNoIgogICAgICAgICAgICAucm93S2V5PSR7InN5bWJvbCJ9CiAgICAgICAgICAgIGhpZ2hsaWdodC11cGRhdGVzPSJmbGFzaCIKICAgICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgICBoZWFkaW5nMT0iTGl2ZSBNYXJrZXQgRmVlZCIKICAgICAgICAgICAgaGVhZGluZzI9IkZsYXNoaW5nIGNlbGxzIGluZGljYXRlIHVwZGF0ZWQgdmFsdWVzIgogICAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJzeW1ib2wiLGhlYWRlcjoiU3ltYm9sIixzb3J0YWJsZTohMH0se2tleToicHJpY2UiLGhlYWRlcjoiUHJpY2UiLHNvcnRhYmxlOiEwfSx7a2V5OiJjaGFuZ2UiLGhlYWRlcjoiXHUwMzk0Iixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQifV19CiAgICAgICAgICAgIC5kYXRhPSR7W3tzeW1ib2w6IkFBUEwiLHByaWNlOjE4Mi41MixjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6Ik1TRlQiLHByaWNlOjQxNC4xOCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkdPT0ciLHByaWNlOjE2OC43NCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkFNWk4iLHByaWNlOjE4Ni4xMyxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IlRTTEEiLHByaWNlOjI0OC41LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTlZEQSIscHJpY2U6ODc3LjM1LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTUVUQSIscHJpY2U6NDkyLjk2LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTkZMWCIscHJpY2U6NjA1Ljg4LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiQU1EIixwcmljZToxNjUuMjQsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJJTlRDIixwcmljZTo0Mi4xNSxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9XX0KICAgICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE0zYSx6M2E9ZygoKT0+e3BlKCk7Q3IoKTtwdCgpO00zYT1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBtb2RlIChNb2RlIEIsIHBhZ2Ugc3RpY2t5KTogaG9yaXpvbnRhbCBzY3JvbGwgbGl2ZXMgb24KICAgICAgICAgLnRhYmxlU2Nyb2xsIChzbyB3aWRlIHRhYmxlcyBkb24ndCBnZXQgY2xpcHBlZCBieSBhbiBhbmNlc3RvcgogICAgICAgICBvdmVyZmxvdzpoaWRkZW4gc3VjaCBhcyBkZWVzLXRpbGUpLiBWZXJ0aWNhbCBzdGlja3kgaXMgaGFuZGxlZCBieQogICAgICAgICBhIEpTLW1hbmFnZWQgZmxvYXRpbmcgaGVhZGVyICguZmxvYXRpbmdIZWFkZXIsIHBvc2l0aW9uOmZpeGVkKSwKICAgICAgICAgd2hpY2ggaXMgdW5hZmZlY3RlZCBieSBhbmNlc3RvciBvdmVyZmxvdy4gKi8KICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlOwogICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICAgICAgfQogICAgICAvKiBNb2RlIEEsIGludGVybmFsIHNjcm9sbDogb3B0LWluIHZpYSBmaXhlZC1oZWlnaHQgYXR0cmlidXRlLgogICAgICAgICBUaGUgdGFibGUgc2Nyb2xscyBpbnNpZGUgaXRzIG93biBib3ggYW5kIHRoZSBoZWFkZXIgc3RpY2tzIHZpYSBwbGFpbiBDU1Mgc3RpY2t5LiAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGhlYWRlciBvdmVybGF5IChNb2RlIEIpLiBQb3NpdGlvbiBpcyBtYW5hZ2VkIGJ5IEpTIHNvIGl0CiAgICAgICAgIGVzY2FwZXMgYW55IGFuY2VzdG9yIG92ZXJmbG93OmhpZGRlbiAocG9zaXRpb246Zml4ZWQgaXMgbm90IGNsaXBwZWQKICAgICAgICAgYnkgb3ZlcmZsb3cgYW5jZXN0b3JzKS4gKi8KICAgICAgLmZsb2F0aW5nSGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIC5mbG9hdGluZ0hlYWRlci5hY3RpdmUgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRhYmxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRoIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KICAgICAgLyogdGggbmVlZHMgaXRzIG93biBiYWNrZ3JvdW5kIHNvIHN0aWNreSBjZWxscyBwYWludCBvdmVyIHNjcm9sbGVkIHJvd3MKICAgICAgICAgKGJyb3dzZXJzIGRvbid0IHBhaW50IHRoZSA8dGhlYWQ+IGJveCBiZWhpbmQgYSBzdGlja3kgPHRoPikuICovCiAgICAgIHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CiAgICAgIC8qIE1vZGUgQSDigJQgaW50ZXJuYWwgc2Nyb2xsIHN0aWNreSAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHRvcDogMzZweDsgLyogbWF0Y2hlcyB0aCB7IGhlaWdodDogMzZweCB9IGJlbG93ICovCiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogRnVsbCBob3Jpem9udGFsIGxpbmVzIHdoZW4gZW5hYmxlZCAqLwogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4wNCkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA1KSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRkIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBlZGdlIGJvcmRlcnMgdGhhdCB3b3VsZCBkb3VibGUgd2l0aCB0aWxlIGZyYW1lICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICB0aFtyb2xlPSdjb2x1bW5oZWFkZXInXTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgdGggLnNvcnRBcnJvdyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICB0aCAuc29ydEJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDMwJSkiLCJoc2woMjE3LjIgOTEuMiUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIAogICAgICB0aDpmaXJzdC1jaGlsZCwKICAgICAgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgdGg6bGFzdC1jaGlsZCwKICAgICAgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRkOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBib3R0b20gYm9yZGVyIG9uIGxhc3Qgcm93IHJlbW92ZWQg4oCUIHRpbGUgZnJhbWUgaGFuZGxlcyBpdCAqLwogICAgICA6aG9zdCg6bm90KFtzaG93LWhvcml6b250YWwtbGluZXNdKSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLS0gQ2VsbCBmbGFzaCBoaWdobGlnaHRpbmcgKG9wdC1pbiB2aWEgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIikgLS0tLQogICAgICAgICBCbG9vbWJlcmcvVHJhZGluZ1ZpZXctc3R5bGU6IHRoZSB0ZXh0IGl0c2VsZiBicmllZmx5IHRha2VzIGFuIGFjY2VudAogICAgICAgICBjb2xvciB0aGVuIGZhZGVzIGJhY2sgdG8gdGhlIGRlZmF1bHQuIE5vIGJhY2tncm91bmQgdGludCwgbm8gbGF5b3V0CiAgICAgICAgIHNoaWZ0LCBubyB3ZWlnaHQgY2hhbmdlLiBSZWFkYWJsZSwgbW9kZXJuLCBzdWJ0bGUuCiAgICAgICAgIENvbnN1bWVycyBjYW4gb3ZlcnJpZGUgcGVyIGluc3RhbmNlOgogICAgICAgICAgIGRlZXMtdGFibGUjbXlUYWJsZSB7IC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcjogaHNsKDE0MiA3NiUgNDAlKTsgfQogICAgICAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDMyIDk1JSA0NCUpIiwiaHNsKDQ1IDkzJSA2MiUpIil9OwogICAgICAgIC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmc6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsKICAgICAgfQoKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBkZWVzLXRhYmxlLWNlbGwtZmxhc2gKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICB9CgogICAgICAvKiBIb2xkIHRoZSBhY2NlbnQgY29sb3IgYnJpZWZseSwgdGhlbiBmYWRlIGJhY2sgdG8gdGhlIHRoZW1lJ3MgZGVmYXVsdAogICAgICAgICB0ZXh0IGNvbG9yLiBJbmhlcml0cyB0byBjaGlsZCB0ZXh0IGFuZCB0byBTVkcgaWNvbnMgdGhhdCB1c2UKICAgICAgICAgY3VycmVudENvbG9yLiBDZWxscyB3aXRoIGV4cGxpY2l0IGNvbG9yIG92ZXJyaWRlcyBpbiByZW5kZXJlcnMgYXJlCiAgICAgICAgIGludGVudGlvbmFsbHkgdW5hZmZlY3RlZC4gKi8KICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2ggewogICAgICAgIDAlLAogICAgICAgIDM1JSB7IGNvbG9yOiB2YXIoLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yKTsgfQogICAgICAgIDEwMCUgeyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyB9CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci9iYWNrZ3JvdW5kIGZsYXNoIHZhcmlhbnQgZm9yIGNlbGxzIHdpdGggc3R5bGVkIGNvbnRlbnQKICAgICAgICAgKGJhZGdlcywgaWNvbnMsIGN1c3RvbSBjb21wb25lbnRzKSB3aGVyZSBhIHRleHQtY29sb3IgYW5pbWF0aW9uCiAgICAgICAgIHdvdWxkIGJlIGludmlzaWJsZS4gQWN0aXZhdGVkIHZpYSBmbGFzaEJvcmRlciBvbiBDb2x1bW4uICovCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICBhbmltYXRpb246IGRlZXMtdGFibGUtY2VsbC1mbGFzaC1ib3JkZXIKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2gtYm9yZGVyIHsKICAgICAgICAwJSwKICAgICAgICAzNSUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA2MiUgLyAwLjEwKSIsImhzbCg0NSA5MyUgNjIlIC8gMC4wOCkiKX07CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdHJhbnNwYXJlbnQ7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgfQogICAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWRlZXMtdGFibGUtZmxhc2gtY29sb3IpOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MyUgNjIlIC8gMC4xMCkiLCJoc2woNDUgOTMlIDYyJSAvIDAuMDgpIil9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogRGV2LXRpbWUgd2FybmluZyBiYW5uZXIgc2hvd24gd2hlbiBoaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giIGJ1dAogICAgICAgICByb3dLZXkgaXMgbWlzc2luZy4gQ29uc3VtZXJzIHNob3VsZCBuZXZlciBzaGlwIHRoaXMgdG8gcHJvZHVjdGlvbi4gKi8KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbjogOHB4IDE2cHggMDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woNDggOTYlIDYzJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0OCA5NiUgODklIC8gMC42KSIsImhzbCg0OCA5NiUgMzAlIC8gMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzIgODElIDI5JSkiLCJoc2woNDggOTYlIDgwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIC5mbGFzaENvbmZpZ1dhcm5pbmcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAxcHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuNikiLCJoc2woMCAwJSAwJSAvIDAuMykiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogRWRpdGFibGUgY2VsbCBhZmZvcmRhbmNlcyAqLwogICAgICB0ZC5lZGl0YWJsZSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CiAgICAgIHRkLmZvY3VzZWQgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC42KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuNikiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC42KSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQogICAgICB0ZC5lZGl0aW5nQ2VsbCAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRyb3Bkb3duLAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsCiAgICAgIHRkLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIGZpbHRlciByb3cgKi8KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggMTJweCAxMnB4OwogICAgICB9CiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggaW5wdXRbdHlwZT0ndGV4dCddIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAuYWN0aW9uc0NvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDExLjglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGFibGVTdGF0aXN0aWNzIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICBgXX0pO3ZhciBiaXQ9ZygoKT0+e3hoKCl9KTt2YXIgdml0PWcoKCk9PntvbmUoKX0pO3ZhciB4aXQ9ZygoKT0+e3duZSgpO2pldCgpfSk7dmFyIHlpdD1nKCgpPT57YXR0KCl9KTtmdW5jdGlvbiB3aXQocyxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCB0PXMoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcChyPT4oe2tleTpyLGhlYWRlcjpyLHZhbHVlOmkobj0+cyhuKVtyXSwidmFsdWUiKX0pKX1mdW5jdGlvbiBDM2EocyxlLHQsYSl7bGV0IHI9KHN8fFtdKS5zbGljZSgpO2lmKCFlKXJldHVybiByO2xldCBuPXdpdCh0LGEpLG89bmV3IFNldChyLm1hcChsPT5TdHJpbmcobC5rZXkpKSk7Zm9yKGxldCBsIG9mIG4pby5oYXMoU3RyaW5nKGwua2V5KSl8fHIucHVzaChsKTtyZXR1cm4gcn1mdW5jdGlvbiBPaChzLGUsdCl7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZShzKTpzW2Uua2V5XX1mdW5jdGlvbiBSWGEocyxlKXtpZihzPT1udWxsJiZlPT1udWxsKXJldHVybiAwO2lmKHM9PW51bGwpcmV0dXJuLTE7aWYoZT09bnVsbClyZXR1cm4gMTtpZih0eXBlb2Ygcz09Im51bWJlciImJnR5cGVvZiBlPT0ibnVtYmVyIilyZXR1cm4gczxlPy0xOnM+ZT8xOjA7bGV0IHQ9U3RyaW5nKHMpLnRvTG93ZXJDYXNlKCksYT1TdHJpbmcoZSkudG9Mb3dlckNhc2UoKTtyZXR1cm4gdDxhPy0xOnQ+YT8xOjB9ZnVuY3Rpb24gVDNhKHMsZSx0LGEscixuPSJ0YWJsZSIsbyl7bGV0IGw9cy5zbGljZSgpLHA9KGF8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxkPXJ8fHt9LHU9T2JqZWN0LmtleXMoZCkuZmlsdGVyKGI9PihkW2JdPz8iIikudHJpbSgpLmxlbmd0aD4wKTtpZigocHx8dS5sZW5ndGg+MCkmJihsPWwuZmlsdGVyKGI9Pntmb3IobGV0IHYgb2YgdSlpZihuPT09ImRhdGEiKXtsZXQgeD1iW3ZdLG09U3RyaW5nKHg/PyIiKS50b0xvd2VyQ2FzZSgpLGY9U3RyaW5nKGRbdl0pLnRvTG93ZXJDYXNlKCk7aWYoIW0uaW5jbHVkZXMoZikpcmV0dXJuITF9ZWxzZXtsZXQgeD1lLmZpbmQoTT0+U3RyaW5nKE0ua2V5KT09PXYpO2lmKCF4fHx4LmhpZGRlbnx8eC5maWx0ZXJhYmxlPT09ITEpY29udGludWU7bGV0IG09T2goYix4KSxmPVN0cmluZyhtPz8iIikudG9Mb3dlckNhc2UoKSx5PVN0cmluZyhkW3ZdKS50b0xvd2VyQ2FzZSgpO2lmKCFmLmluY2x1ZGVzKHkpKXJldHVybiExfWlmKHApe2lmKG8pcmV0dXJuISFvKGIpO2xldCB2PSExO2lmKG49PT0iZGF0YSIpe2ZvcihsZXQgeCBvZiBPYmplY3QudmFsdWVzKGIpKWlmKFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwKSl7dj0hMDticmVha319ZWxzZSBmb3IobGV0IHggb2YgZSl7aWYoeC5oaWRkZW4pY29udGludWU7bGV0IG09T2goYix4KTtpZihTdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocCkpe3Y9ITA7YnJlYWt9fWlmKCF2KXJldHVybiExfXJldHVybiEwfSkpLCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIGw7bGV0IGM9dC5tYXAoYj0+KHtkZXNjOmIsY29sOmUuZmluZCh2PT5TdHJpbmcodi5rZXkpPT09Yi5rZXkpfSkpLmZpbHRlcihiPT4hIWIuY29sKTtyZXR1cm4gYy5sZW5ndGg9PT0wfHxsLnNvcnQoKGIsdik9Pntmb3IobGV0e2Rlc2M6eCxjb2w6bX1vZiBjKXtsZXQgZj1SWGEoT2goYixtKSxPaCh2LG0pKTtpZihmIT09MClyZXR1cm4geC5kaXI9PT0iYXNjIj9mOi1mfXJldHVybiAwfSksbH12YXIgJDNhPWcoKCk9PntpKHdpdCwiY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIik7aShDM2EsImNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zIik7aShPaCwiZ2V0Q2VsbFZhbHVlIik7aShSWGEsImNvbXBhcmVDZWxsVmFsdWVzIik7aShUM2EsImdldFZpZXdEYXRhIil9KTtmdW5jdGlvbiBaY2Uocyl7cmV0dXJuIHMuc3RhcnRzV2l0aCgnIicpJiZzLmVuZHNXaXRoKCciJyl8fHMuc3RhcnRzV2l0aCgiJyIpJiZzLmVuZHNXaXRoKCInIik/cy5zbGljZSgxLC0xKTpzfWZ1bmN0aW9uIE9YYShzKXtyZXR1cm4gcy5zcGxpdCgvXHMrT1JccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gRlhhKHMpe3JldHVybiBzLnNwbGl0KC9ccytBTkRccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gQlhhKHMpe2lmKCFzKXJldHVybiBudWxsO2xldCBlPSExLHQ9cy5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTt0JiYoZT0hMCxzPXRbMl0pO2xldCBhPXMubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYoYSlyZXR1cm57ZmllbGQ6YVsxXSxuZWdhdGU6ZSxyYW5nZTp7bG93ZXI6WmNlKGFbMl0pLnRvTG93ZXJDYXNlKCksdXBwZXI6WmNlKGFbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IHI9cy5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gcj97ZmllbGQ6clsxXSx2YWx1ZTpaY2UoclsyXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6ZX06cy5sZW5ndGg+MD97dmFsdWU6WmNlKHMpLnRvTG93ZXJDYXNlKCksbmVnYXRlOmV9Om51bGx9ZnVuY3Rpb24gSFhhKHMpe2lmKCFzKXJldHVybiBudWxsO2xldCBlPU9YYShzKS5tYXAodD0+KHt0ZXJtczpGWGEodCkubWFwKEJYYSkuZmlsdGVyKHI9PiEhciYmISFyLnZhbHVlKX0pKS5maWx0ZXIodD0+dC50ZXJtcy5sZW5ndGg+MCk7cmV0dXJuIGUubGVuZ3RoPT09MD9udWxsOntjbGF1c2VzOmV9fWZ1bmN0aW9uIEQzYShzLGUsdCl7bGV0IGE9SFhhKHMpO2lmKCFhKXJldHVybiBudWxsO2xldCByPW5ldyBNYXAodC5tYXAocD0+W1N0cmluZyhwLmtleSkscF0pKSxuPWkoKHAsZCk9PnA8ZD8tMTpwPmQ/MTowLCJjbXAiKSxvPWkocD0+e2xldCBkPVN0cmluZyhwPz8iIikudG9Mb3dlckNhc2UoKSx1PU51bWJlcihkKSxjPURhdGUucGFyc2UoZCk7cmV0dXJuIU51bWJlci5pc05hTih1KSYmZC50cmltKCkhPT0iIj97dDoibiIsdjp1fTpOdW1iZXIuaXNOYU4oYyk/e3Q6InMiLHY6ZH06e3Q6ImQiLHY6Y319LCJjb2VyY2UiKSxsPWkoKHAsZCx1KT0+e2xldCBjPW8ocCksYj1vKGQpLHY9byh1KTtpZihjLnQ9PT0icyImJmIudD09PSJzIiYmdi50PT09InMiKXtsZXQgbT1jLnY7cmV0dXJuIG4obSxiLnYpPj0wJiZuKG0sdi52KTw9MH1pZihjLnQ9PT0ibiImJmIudD09PSJuIiYmdi50PT09Im4iKXtsZXQgbT1jLnY7cmV0dXJuIG0+PWIudiYmbTw9di52fWlmKGMudD09PSJkIiYmYi50PT09ImQiJiZ2LnQ9PT0iZCIpe2xldCBtPWMudjtyZXR1cm4gbT49Yi52JiZtPD12LnZ9bGV0IHg9U3RyaW5nKHA/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBuKHgsZCk+PTAmJm4oeCx1KTw9MH0sImluUmFuZ2UiKTtyZXR1cm4gcD0+e2ZvcihsZXQgZCBvZiBhLmNsYXVzZXMpe2xldCB1PSEwO2ZvcihsZXQgYyBvZiBkLnRlcm1zKXtsZXQgYj0hMTtpZihjLnJhbmdlJiZjLmZpZWxkKWlmKGU9PT0iZGF0YSIpYj1sKHBbYy5maWVsZF0sYy5yYW5nZS5sb3dlcixjLnJhbmdlLnVwcGVyKTtlbHNle2xldCB2PXIuZ2V0KGMuZmllbGQpO2lmKCF2fHx2LmhpZGRlbiliPSExO2Vsc2V7bGV0IHg9di52YWx1ZT92LnZhbHVlKHApOnBbdi5rZXldO2I9bCh4LGMucmFuZ2UubG93ZXIsYy5yYW5nZS51cHBlcil9fWVsc2UgaWYoYy5maWVsZCYmYy52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWI9U3RyaW5nKHBbYy5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMudmFsdWUpO2Vsc2V7bGV0IHY9ci5nZXQoYy5maWVsZCk7aWYoIXZ8fHYuaGlkZGVuPT09ITApYj0hMTtlbHNle2xldCB4PXYudmFsdWU/di52YWx1ZShwKTpwW3Yua2V5XTtiPVN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjLnZhbHVlKX19ZWxzZSBjLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9iPU9iamVjdC52YWx1ZXMocCkuc29tZSh2PT5TdHJpbmcodj8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYy52YWx1ZSkpOmI9dC5zb21lKHY9PntpZih2LmhpZGRlbilyZXR1cm4hMTtsZXQgeD12LnZhbHVlP3YudmFsdWUocCk6cFt2LmtleV07cmV0dXJuIFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjLnZhbHVlKX0pKTtpZihjLm5lZ2F0ZSYmKGI9IWIpLCFiKXt1PSExO2JyZWFrfX1pZih1KXJldHVybiEwfXJldHVybiExfX12YXIgTDNhPWcoKCk9PntpKFpjZSwic3RyaXBRdW90ZXMiKTtpKE9YYSwic3BsaXRCeU9yIik7aShGWGEsInNwbGl0QnlBbmQiKTtpKEJYYSwicGFyc2VUZXJtIik7aShIWGEsInBhcnNlTHVjZW5lIik7aShEM2EsImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiKX0pO2Z1bmN0aW9uIHFYYShzKXtsZXQgZT1bInRoIiwic3QiLCJuZCIsInJkIl0sdD1zJTEwMDtyZXR1cm4gcysoZVsodC0yMCklMTBdfHxlW3RdfHxlWzBdKX12YXIgUmEsTXQsWGNlLGdpdD1nKCgpPT57cG8oKTtfM2EoKTtwZSgpO29yKCk7SjAoKTtrdCgpO1VhKCk7ejNhKCk7Yml0KCk7dml0KCk7eGl0KCk7aG5lKCk7eWl0KCk7JDNhKCk7TDNhKCk7cHQoKTtucigpO1JhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxNdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH07aShxWGEsIm9yZGluYWxMYWJlbCIpO1hjZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGFibGUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXSxHZSxEZT1bXSxfZT1bXSxDZSx2ZT1bXSxiZT1bXSxFZSxqZT1bXSxXZT1bXSxzdCxNZT1bXSxnZT1bXSxJZSxjZT1bXSxkZT1bXSxMZSxLZT1bXSxZZT1bXSxvdCxVdD1bXSxadD1bXSxqYSxldD1bXSxidD1bXSx5YSxlcz1bXSxycz1bXSxwcyxucz1bXSx0aT1bXSxhaSx6ZT1bXSx4ZT1bXSxOZSx4dD1bXSxNYT1bXSxOcixmZT1bXSxyZT1bXSxTZSxPZT1bXSxKZT1bXSx6YSxkYT1bXSx3cz1bXSxraSxKaT1bXSxScj1bXSxTaSx2bj1bXSxyMT1bXSxvMSxuMT1bXSxsMT1bXSxjMSxkMT1bXSx1MT1bXTt2YXIgcDE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUYWJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBEPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHt0eXBlOkFycmF5fSldLG1lPVtMKHthdHRyaWJ1dGU6ITF9KV0saGU9W0woe2F0dHJpYnV0ZTohMX0pXSx1ZT1bTCh7dHlwZTpCb29sZWFufSldLGllPVtMKHthdHRyaWJ1dGU6ITF9KV0sa2U9W0woe2F0dHJpYnV0ZTohMX0pXSx5ZT1bTCh7dHlwZTpPYmplY3R9KV0sc2U9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy12ZXJ0aWNhbC1saW5lcyJ9KV0sVGU9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ob3Jpem9udGFsLWxpbmVzIn0pXSxHZT1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWdyaWQifSldLENlPVtMKHthdHRyaWJ1dGU6ITF9KV0sRWU9W0woe3R5cGU6U3RyaW5nfSldLHN0PVtMKHthdHRyaWJ1dGU6ITF9KV0sSWU9W0woe3R5cGU6Qm9vbGVhbixhdHRyaWJ1dGU6InNob3ctY29sdW1uLWZpbHRlcnMifSldLExlPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InNob3ctc2VsZWN0aW9uLWNoZWNrYm94In0pXSxvdD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJ2aXJ0dWFsaXplZCJ9KV0samE9W0woe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZToidmlydHVhbC1vdmVyc2NhbiJ9KV0seWE9W0woe3R5cGU6U3RyaW5nLGF0dHJpYnV0ZToiaGlnaGxpZ2h0LXVwZGF0ZXMifSldLHBzPVtMKHt0eXBlOk51bWJlcixhdHRyaWJ1dGU6ImhpZ2hsaWdodC1kdXJhdGlvbiJ9KV0sYWk9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiZml4ZWQtaGVpZ2h0In0pXSxOZT1bTCh7dHlwZTpTdHJpbmd9KV0sTnI9W0woe3R5cGU6U3RyaW5nfSldLFNlPVtMKHthdHRyaWJ1dGU6ITF9KV0semE9W1koKV0sa2k9W1koKV0sU2k9W1koKV0sbzE9W1koKV0sYzE9W1koKV0sUmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nMSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iaGVhZGluZzEiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oZWFkaW5nMSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmhlYWRpbmcxPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbyxsKSxSYSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJoZWFkaW5nMiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmhlYWRpbmcyLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuaGVhZGluZzI9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkLHUpLFJhKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iZGF0YSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGEsImdldCIpLHNldDppKChULEcpPT57VC5kYXRhPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sYix2KSxSYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ia2V5ImluIFQsImhhcyIpLGdldDppKFQ9PlQua2V5LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Qua2V5PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbSxmKSxSYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJsYWJlbCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmxhYmVsLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubGFiZWw9R30sInNldCIpfSxtZXRhZGF0YTpEfSxNLHopLFJhKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImRpc2FibGVkImluIFQsImhhcyIpLGdldDppKFQ9PlQuZGlzYWJsZWQsImdldCIpLHNldDppKChULEcpPT57VC5kaXNhYmxlZD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEMsXyksUmEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4icmVxdWlyZWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5yZXF1aXJlZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnJlcXVpcmVkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxFKSxSYSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJkYXRhTmFtZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGFOYW1lLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZGF0YU5hbWU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxrLFMpLFJhKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VhcmNoYWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlYXJjaGFibGUsImdldCIpLHNldDppKChULEcpPT57VC5zZWFyY2hhYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUCxSKSxSYSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJkYXRhQWN0aW9ucyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGFBY3Rpb25zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZGF0YUFjdGlvbnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxWLFcpLFJhKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbHVtbnMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY29sdW1ucz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEIsVSksUmEodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm93S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJyb3dLZXkiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5yb3dLZXksImdldCIpLHNldDppKChULEcpPT57VC5yb3dLZXk9R30sInNldCIpfSxtZXRhZGF0YTpEfSxGLGopLFJhKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249R30sInNldCIpfSxtZXRhZGF0YTpEfSxsZSxRKSxSYSh0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImRpc3BsYXlGdW5jdGlvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmRpc3BsYXlGdW5jdGlvbj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LHRlLGVlKSxSYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXZlcnNlRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJyZXZlcnNlRGlzcGxheUZ1bmN0aW9uImluIFQsImhhcyIpLGdldDppKFQ9PlQucmV2ZXJzZURpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnJldmVyc2VEaXNwbGF5RnVuY3Rpb249R30sInNldCIpfSxtZXRhZGF0YTpEfSxYLFopLFJhKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0YVJvdyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VsZWN0ZWREYXRhUm93ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2VsZWN0ZWREYXRhUm93LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2VsZWN0ZWREYXRhUm93PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0scSxBKSxSYSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2hvd1ZlcnRpY2FsTGluZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93VmVydGljYWxMaW5lcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dWZXJ0aWNhbExpbmVzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sb2UsYWUpLFJhKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIb3Jpem9udGFsTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dIb3Jpem9udGFsTGluZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93SG9yaXpvbnRhbExpbmVzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2hvd0hvcml6b250YWxMaW5lcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LFJlLEJlKSxSYSh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93R3JpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2hvd0dyaWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93R3JpZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dHcmlkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sRGUsX2UpLFJhKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRCeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic29ydEJ5ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc29ydEJ5LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc29ydEJ5PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdmUsYmUpLFJhKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlclRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImZpbHRlclRleHQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5maWx0ZXJUZXh0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZmlsdGVyVGV4dD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGplLFdlKSxSYSh0aGlzLG51bGwsc3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5GaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb2x1bW5GaWx0ZXJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29sdW1uRmlsdGVycywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbHVtbkZpbHRlcnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxNZSxnZSksUmEodGhpcyxudWxsLEllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbHVtbkZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dDb2x1bW5GaWx0ZXJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2hvd0NvbHVtbkZpbHRlcnMsImdldCIpLHNldDppKChULEcpPT57VC5zaG93Q29sdW1uRmlsdGVycz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGNlLGRlKSxSYSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2VsZWN0aW9uQ2hlY2tib3giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dTZWxlY3Rpb25DaGVja2JveCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNob3dTZWxlY3Rpb25DaGVja2JveCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dTZWxlY3Rpb25DaGVja2JveD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEtlLFllKSxSYSh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXJ0dWFsaXplZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4idmlydHVhbGl6ZWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC52aXJ0dWFsaXplZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnZpcnR1YWxpemVkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVXQsWnQpLFJhKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpcnR1YWxPdmVyc2NhbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4idmlydHVhbE92ZXJzY2FuImluIFQsImhhcyIpLGdldDppKFQ9PlQudmlydHVhbE92ZXJzY2FuLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QudmlydHVhbE92ZXJzY2FuPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZXQsYnQpLFJhKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodFVwZGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImhpZ2hsaWdodFVwZGF0ZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oaWdobGlnaHRVcGRhdGVzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuaGlnaGxpZ2h0VXBkYXRlcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGVzLHJzKSxSYSh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHREdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iaGlnaGxpZ2h0RHVyYXRpb24iaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oaWdobGlnaHREdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmhpZ2hsaWdodER1cmF0aW9uPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbnMsdGkpLFJhKHRoaXMsbnVsbCxhaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpeGVkSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJmaXhlZEhlaWdodCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmZpeGVkSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZml4ZWRIZWlnaHQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx6ZSx4ZSksUmEodGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VhcmNoTW9kZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlYXJjaE1vZGUsImdldCIpLHNldDppKChULEcpPT57VC5zZWFyY2hNb2RlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0seHQsTWEpLFJhKHRoaXMsbnVsbCxOcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNlbGVjdGlvbk1vZGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zZWxlY3Rpb25Nb2RlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2VsZWN0aW9uTW9kZT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZlLHJlKSxSYSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VsZWN0ZWRJZHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zZWxlY3RlZElkcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlbGVjdGVkSWRzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sT2UsSmUpLFJhKHRoaXMsbnVsbCx6YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fZm9jdXNlZENlbGwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Il9fZm9jdXNlZENlbGwiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5fX2ZvY3VzZWRDZWxsLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX19mb2N1c2VkQ2VsbD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRhLHdzKSxSYSh0aGlzLG51bGwsa2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX2VkaXRpbmdDZWxsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJfX2VkaXRpbmdDZWxsImluIFQsImhhcyIpLGdldDppKFQ9PlQuX19lZGl0aW5nQ2VsbCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULl9fZWRpdGluZ0NlbGw9R30sInNldCIpfSxtZXRhZGF0YTpEfSxKaSxSciksUmEodGhpcyxudWxsLFNpLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mbG9hdGluZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iX19mbG9hdGluZ0FjdGl2ZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULl9fZmxvYXRpbmdBY3RpdmUsImdldCIpLHNldDppKChULEcpPT57VC5fX2Zsb2F0aW5nQWN0aXZlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdm4scjEpLFJhKHRoaXMsbnVsbCxvMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fZmxhc2hpbmdDZWxscyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iX19mbGFzaGluZ0NlbGxzImluIFQsImhhcyIpLGdldDppKFQ9PlQuX19mbGFzaGluZ0NlbGxzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX19mbGFzaGluZ0NlbGxzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbjEsbDEpLFJhKHRoaXMsbnVsbCxjMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fdmlydHVhbFJhbmdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJfX3ZpcnR1YWxSYW5nZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULl9fdmlydHVhbFJhbmdlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX192aXJ0dWFsUmFuZ2U9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkMSx1MSksUmEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCx0KSxwMT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89UzNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9TXQodGhpcyxvLCJoZWFkaW5nIDEiKTtnZXQgaGVhZGluZzEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZzEoRCl7dGhpcy4jZT1EfSN0PShNdCh0aGlzLGwpLE10KHRoaXMsZCwiaGVhZGluZyAyIikpO2dldCBoZWFkaW5nMigpe3JldHVybiB0aGlzLiN0fXNldCBoZWFkaW5nMihEKXt0aGlzLiN0PUR9I2E9KE10KHRoaXMsdSksTXQodGhpcyxiLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGF0YShEKXt0aGlzLiNhPUR9I3M9KE10KHRoaXMsdiksTXQodGhpcyxtLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jc31zZXQga2V5KEQpe3RoaXMuI3M9RH0jaT0oTXQodGhpcyxmKSxNdCh0aGlzLE0sdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKEQpe3RoaXMuI2k9RH0jcj0oTXQodGhpcyx6KSxNdCh0aGlzLEMsITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGlzYWJsZWQoRCl7dGhpcy4jcj1EfSNvPShNdCh0aGlzLF8pLE10KHRoaXMsJCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNvfXNldCByZXF1aXJlZChEKXt0aGlzLiNvPUR9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGF0YX1zZXQgdmFsdWUoRCl7fWNoYW5nZVN1YmplY3Q9KE10KHRoaXMsRSksbmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTsjbj1NdCh0aGlzLGssdm9pZCAwKTtnZXQgZGF0YU5hbWUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGF0YU5hbWUoRCl7dGhpcy4jbj1EfSNsPShNdCh0aGlzLFMpLE10KHRoaXMsUCwhMCkpO2dldCBzZWFyY2hhYmxlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNlYXJjaGFibGUoRCl7dGhpcy4jbD1EfSNjPShNdCh0aGlzLFIpLE10KHRoaXMsVixbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhEKXt0aGlzLiNjPUR9I2Q9KE10KHRoaXMsVyksTXQodGhpcyxCLFtdKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29sdW1ucyhEKXt0aGlzLiNkPUR9I3U9KE10KHRoaXMsVSksTXQodGhpcyxGLHZvaWQgMCkpO2dldCByb3dLZXkoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcm93S2V5KEQpe3RoaXMuI3U9RH0jcD0oTXQodGhpcyxqKSxNdCh0aGlzLGxlLCExKSk7Z2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKEQpe3RoaXMuI3A9RH0jaD0oTXQodGhpcyxRKSxNdCh0aGlzLHRlLEQ9PkQpKTtnZXQgZGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGRpc3BsYXlGdW5jdGlvbihEKXt0aGlzLiNoPUR9I2Y9KE10KHRoaXMsZWUpLE10KHRoaXMsWCxEPT5EKSk7Z2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4jZn1zZXQgcmV2ZXJzZURpc3BsYXlGdW5jdGlvbihEKXt0aGlzLiNmPUR9I209KE10KHRoaXMsWiksTXQodGhpcyxxLHZvaWQgMCkpO2dldCBzZWxlY3RlZERhdGFSb3coKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWREYXRhUm93KEQpe3RoaXMuI209RH0jZz0oTXQodGhpcyxBKSxNdCh0aGlzLG9lLCExKSk7Z2V0IHNob3dWZXJ0aWNhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IHNob3dWZXJ0aWNhbExpbmVzKEQpe3RoaXMuI2c9RH0jYj0oTXQodGhpcyxhZSksTXQodGhpcyxSZSwhMSkpO2dldCBzaG93SG9yaXpvbnRhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNob3dIb3Jpem9udGFsTGluZXMoRCl7dGhpcy4jYj1EfSN2PShNdCh0aGlzLEJlKSxNdCh0aGlzLERlLCEwKSk7Z2V0IHNob3dHcmlkKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNob3dHcmlkKEQpe3RoaXMuI3Y9RH1maWxlcz0oTXQodGhpcyxfZSksW10pO2ZpbGVXZWFrTWFwPW5ldyBXZWFrTWFwO2RhdGFDaGFuZ2VTdWJqZWN0PW5ldyB1dC5zbWFydHJ4LnJ4anMuU3ViamVjdDsjeD1NdCh0aGlzLHZlLFtdKTtnZXQgc29ydEJ5KCl7cmV0dXJuIHRoaXMuI3h9c2V0IHNvcnRCeShEKXt0aGlzLiN4PUR9I3k9KE10KHRoaXMsYmUpLE10KHRoaXMsamUsIiIpKTtnZXQgZmlsdGVyVGV4dCgpe3JldHVybiB0aGlzLiN5fXNldCBmaWx0ZXJUZXh0KEQpe3RoaXMuI3k9RH0jdz0oTXQodGhpcyxXZSksTXQodGhpcyxNZSx7fSkpO2dldCBjb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbHVtbkZpbHRlcnMoRCl7dGhpcy4jdz1EfSNrPShNdCh0aGlzLGdlKSxNdCh0aGlzLGNlLCExKSk7Z2V0IHNob3dDb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IHNob3dDb2x1bW5GaWx0ZXJzKEQpe3RoaXMuI2s9RH0jUz0oTXQodGhpcyxkZSksTXQodGhpcyxLZSwhMSkpO2dldCBzaG93U2VsZWN0aW9uQ2hlY2tib3goKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd1NlbGVjdGlvbkNoZWNrYm94KEQpe3RoaXMuI1M9RH0jXz0oTXQodGhpcyxZZSksTXQodGhpcyxVdCwhMSkpO2dldCB2aXJ0dWFsaXplZCgpe3JldHVybiB0aGlzLiNffXNldCB2aXJ0dWFsaXplZChEKXt0aGlzLiNfPUR9I009KE10KHRoaXMsWnQpLE10KHRoaXMsZXQsOCkpO2dldCB2aXJ0dWFsT3ZlcnNjYW4oKXtyZXR1cm4gdGhpcy4jTX1zZXQgdmlydHVhbE92ZXJzY2FuKEQpe3RoaXMuI009RH0jej0oTXQodGhpcyxidCksTXQodGhpcyxlcywibm9uZSIpKTtnZXQgaGlnaGxpZ2h0VXBkYXRlcygpe3JldHVybiB0aGlzLiN6fXNldCBoaWdobGlnaHRVcGRhdGVzKEQpe3RoaXMuI3o9RH0jQz0oTXQodGhpcyxycyksTXQodGhpcyxucyw5MDApKTtnZXQgaGlnaGxpZ2h0RHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jQ31zZXQgaGlnaGxpZ2h0RHVyYXRpb24oRCl7dGhpcy4jQz1EfSNUPShNdCh0aGlzLHRpKSxNdCh0aGlzLHplLCExKSk7Z2V0IGZpeGVkSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI1R9c2V0IGZpeGVkSGVpZ2h0KEQpe3RoaXMuI1Q9RH0jJD0oTXQodGhpcyx4ZSksTXQodGhpcyx4dCwidGFibGUiKSk7Z2V0IHNlYXJjaE1vZGUoKXtyZXR1cm4gdGhpcy4jJH1zZXQgc2VhcmNoTW9kZShEKXt0aGlzLiMkPUR9X19zZWFyY2hUZXh0U3ViPU10KHRoaXMsTWEpO19fc2VhcmNoTW9kZVN1YjsjRD1NdCh0aGlzLGZlLCJub25lIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jRH1zZXQgc2VsZWN0aW9uTW9kZShEKXt0aGlzLiNEPUR9I0w9KE10KHRoaXMscmUpLE10KHRoaXMsT2UsbmV3IFNldCkpO2dldCBzZWxlY3RlZElkcygpe3JldHVybiB0aGlzLiNMfXNldCBzZWxlY3RlZElkcyhEKXt0aGlzLiNMPUR9X3Jvd0lkTWFwPShNdCh0aGlzLEplKSxuZXcgV2Vha01hcCk7X3Jvd0lkQ291bnRlcj0wO19fc2VsZWN0aW9uQW5jaG9ySWQ7I0U9TXQodGhpcyxkYSx2b2lkIDApO2dldCBfX2ZvY3VzZWRDZWxsKCl7cmV0dXJuIHRoaXMuI0V9c2V0IF9fZm9jdXNlZENlbGwoRCl7dGhpcy4jRT1EfSNQPShNdCh0aGlzLHdzKSxNdCh0aGlzLEppLHZvaWQgMCkpO2dldCBfX2VkaXRpbmdDZWxsKCl7cmV0dXJuIHRoaXMuI1B9c2V0IF9fZWRpdGluZ0NlbGwoRCl7dGhpcy4jUD1EfSNJPShNdCh0aGlzLFJyKSxNdCh0aGlzLHZuLCExKSk7Z2V0IF9fZmxvYXRpbmdBY3RpdmUoKXtyZXR1cm4gdGhpcy4jSX1zZXQgX19mbG9hdGluZ0FjdGl2ZShEKXt0aGlzLiNJPUR9I0E9KE10KHRoaXMscjEpLE10KHRoaXMsbjEsbmV3IE1hcCkpO2dldCBfX2ZsYXNoaW5nQ2VsbHMoKXtyZXR1cm4gdGhpcy4jQX1zZXQgX19mbGFzaGluZ0NlbGxzKEQpe3RoaXMuI0E9RH1fX3ByZXZTbmFwc2hvdD1NdCh0aGlzLGwxKTtfX2ZsYXNoQ2xlYXJUaW1lcjtfX2ZsYXNoVGljaz0wO19fZmxhc2hXYXJuZWROb1Jvd0tleT0hMTtfX21lbW9FZmZlY3RpdmVDb2xzO19fbWVtb1ZpZXdEYXRhO19fY29sdW1uc1NpemVkRm9yO19fcm93SGVpZ2h0PTM2O19fcm93SGVpZ2h0TWVhc3VyZWQ9ITE7I049TXQodGhpcyxkMSx7c3RhcnQ6MCxlbmQ6MH0pO2dldCBfX3ZpcnR1YWxSYW5nZSgpe3JldHVybiB0aGlzLiNOfXNldCBfX3ZpcnR1YWxSYW5nZShEKXt0aGlzLiNOPUR9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9faGFuZGxlSG9zdEtleWRvd24pfV9faGFuZGxlSG9zdEtleWRvd249KE10KHRoaXMsdTEpLEQ9PntsZXQgVD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdLEc9ITE7Zm9yKGxldCBQZSBvZiBUKXtsZXQgRmU9UGU/LnRhZ05hbWU7aWYoRmU9PT0iSU5QVVQifHxGZT09PSJURVhUQVJFQSJ8fFBlPy5pc0NvbnRlbnRFZGl0YWJsZSl7Rz0hMDticmVha319aWYoKEQubWV0YUtleXx8RC5jdHJsS2V5KSYmKEQua2V5PT09ImMifHxELmtleT09PSJDIikpe2lmKEcpcmV0dXJuO2xldCBQZT1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IEZlIG9mIHRoaXMuZGF0YSl0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEZlKSkmJlBlLnB1c2goRmUpO2Vsc2UgdGhpcy5zZWxlY3RlZERhdGFSb3cmJlBlLnB1c2godGhpcy5zZWxlY3RlZERhdGFSb3cpO2lmKFBlLmxlbmd0aD09PTApcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLl9fd3JpdGVSb3dzQXNKc29uKFBlKTtyZXR1cm59aWYoIShHfHx0aGlzLl9fZWRpdGluZ0NlbGwpKXN3aXRjaChELmtleSl7Y2FzZSJBcnJvd0xlZnQiOkQucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgtMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1JpZ2h0IjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1VwIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwtMSwhMSk7cmV0dXJuO2Nhc2UiQXJyb3dEb3duIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwxLCExKTtyZXR1cm47Y2FzZSJFbnRlciI6Y2FzZSJGMiI6e2lmKCF0aGlzLl9fZm9jdXNlZENlbGwpcmV0dXJuO2xldCBGZT0odGhpcy5fbGFzdFZpZXdEYXRhPz9bXSkuZmluZChYZT0+dGhpcy5nZXRSb3dJZChYZSk9PT10aGlzLl9fZm9jdXNlZENlbGwucm93SWQpO2lmKCFGZSlyZXR1cm47bGV0IFVlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmluZChYZT0+U3RyaW5nKFhlLmtleSk9PT10aGlzLl9fZm9jdXNlZENlbGwuY29sS2V5KTtpZighVWV8fCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShVZSkpcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLnN0YXJ0RWRpdGluZyhGZSxVZSk7cmV0dXJufWNhc2UiRXNjYXBlIjp0aGlzLl9fZm9jdXNlZENlbGwmJih0aGlzLl9fZm9jdXNlZENlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtyZXR1cm47ZGVmYXVsdDpyZXR1cm59fSk7Y29weVNlbGVjdGlvbkFzSnNvbihEKXtsZXQgVD1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IEcgb2YgdGhpcy5kYXRhKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoRykpJiZULnB1c2goRyk7ZWxzZSBEP1QucHVzaChEKTp0aGlzLnNlbGVjdGVkRGF0YVJvdyYmVC5wdXNoKHRoaXMuc2VsZWN0ZWREYXRhUm93KTtULmxlbmd0aCE9PTAmJnRoaXMuX193cml0ZVJvd3NBc0pzb24oVCl9X193cml0ZVJvd3NBc0pzb24oRCl7dHJ5e2xldCBUPUpTT04uc3RyaW5naWZ5KEQsbnVsbCwyKTtuYXZpZ2F0b3IuY2xpcGJvYXJkPy53cml0ZVRleHQoVCl9Y2F0Y2h7fX1zdGF0aWMgc3R5bGVzPU0zYTtfX2dldERpc3BsYXlGdW5jdGlvblNoYXBlS2V5KCl7aWYoIXRoaXMuZGF0YXx8dGhpcy5kYXRhLmxlbmd0aD09PTApcmV0dXJuIiI7bGV0IEQ9dGhpcy5kaXNwbGF5RnVuY3Rpb24odGhpcy5kYXRhWzBdKT8/e307cmV0dXJuIE9iamVjdC5rZXlzKEQpLmpvaW4oIlwwIil9X19nZXRFZmZlY3RpdmVDb2x1bW5zKCl7bGV0IEQ9QXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPjAsVD0hRHx8dGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj90aGlzLl9fZ2V0RGlzcGxheUZ1bmN0aW9uU2hhcGVLZXkoKToiIixHPXRoaXMuX19tZW1vRWZmZWN0aXZlQ29scztpZihHJiZHLmNvbHVtbnM9PT10aGlzLmNvbHVtbnMmJkcuYXVnbWVudD09PXRoaXMuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24mJkcuZGlzcGxheUZ1bmN0aW9uPT09dGhpcy5kaXNwbGF5RnVuY3Rpb24mJkcuZGlzcGxheVNoYXBlS2V5PT09VClyZXR1cm4gRy5vdXQ7bGV0ICRlPUQ/QzNhKHRoaXMuY29sdW1ucyx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk6d2l0KHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk7cmV0dXJuIHRoaXMuX19tZW1vRWZmZWN0aXZlQ29scz17Y29sdW1uczp0aGlzLmNvbHVtbnMsYXVnbWVudDp0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLGRpc3BsYXlGdW5jdGlvbjp0aGlzLmRpc3BsYXlGdW5jdGlvbixkaXNwbGF5U2hhcGVLZXk6VCxvdXQ6JGV9LCRlfV9fZ2V0Vmlld0RhdGEoRCl7bGV0IFQ9dGhpcy5zZWFyY2hNb2RlPT09ImRhdGEiPyJkYXRhIjoidGFibGUiLEc9dGhpcy5fX21lbW9WaWV3RGF0YTtpZihHJiZHLmRhdGE9PT10aGlzLmRhdGEmJkcuc29ydEJ5PT09dGhpcy5zb3J0QnkmJkcuZmlsdGVyVGV4dD09PXRoaXMuZmlsdGVyVGV4dCYmRy5jb2x1bW5GaWx0ZXJzPT09dGhpcy5jb2x1bW5GaWx0ZXJzJiZHLnNlYXJjaE1vZGU9PT1UJiZHLmVmZmVjdGl2ZUNvbHVtbnM9PT1EKXJldHVybiBHLm91dDtsZXQgJGU9RDNhKHRoaXMuZmlsdGVyVGV4dCxULEQpLFBlPVQzYSh0aGlzLmRhdGEsRCx0aGlzLnNvcnRCeSx0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLFQsJGV8fHZvaWQgMCk7cmV0dXJuIHRoaXMuX19tZW1vVmlld0RhdGE9e2RhdGE6dGhpcy5kYXRhLHNvcnRCeTp0aGlzLnNvcnRCeSxmaWx0ZXJUZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5GaWx0ZXJzOnRoaXMuY29sdW1uRmlsdGVycyxzZWFyY2hNb2RlOlQsZWZmZWN0aXZlQ29sdW1uczpELG91dDpQZX0sUGV9cmVuZGVyKCl7bGV0IEQ9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSxUPXRoaXMuX19nZXRWaWV3RGF0YShEKSxHPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImhlYWRlciIpLCRlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImZvb3RlciIpLFBlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93Iik7dGhpcy5fbGFzdFZpZXdEYXRhPVQ7bGV0IEZlPXRoaXMudmlydHVhbGl6ZWQmJlQubGVuZ3RoPjAsVmU9VCxVZT0wLFhlPTAsd3Q9MDtpZihGZSl7bGV0IFFlPXRoaXMuX192aXJ0dWFsUmFuZ2UsdmE9TWF0aC5tYXgoMCxRZS5zdGFydCksTnM9TWF0aC5taW4oVC5sZW5ndGgsUWUuZW5kfHwwKSx1YT1Ocz4wP05zOk1hdGgubWluKFQubGVuZ3RoLHRoaXMudmlydHVhbE92ZXJzY2FuKjIrMTYpO1VlPXZhLFZlPVQuc2xpY2UodmEsdWEpLFhlPXZhKnRoaXMuX19yb3dIZWlnaHQsd3Q9TWF0aC5tYXgoMCxULmxlbmd0aC11YSkqdGhpcy5fX3Jvd0hlaWdodH1yZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMSI+JHt0aGlzLmxhYmVsfHx0aGlzLmhlYWRpbmcxfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIGhlYWRpbmcyIj4ke3RoaXMuaGVhZGluZzJ9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlckFjdGlvbnMiPgogICAgICAgICAgICAke0cubWFwKFFlPT53YDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJoZWFkZXJBY3Rpb24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e1FlLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1FlLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvblNpemU9JHsxNH0gLmljb249JHtRZS5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAke1FlLm5hbWV9YDpRZS5uYW1lfQogICAgICAgICAgICAgIDwvZGl2PmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ1NlcGFyYXRpb24iPjwvZGl2PgogICAgICAgICR7dGhpcy5oaWdobGlnaHRVcGRhdGVzPT09ImZsYXNoIiYmIXRoaXMucm93S2V5P3dgPGRpdiBjbGFzcz0iZmxhc2hDb25maWdXYXJuaW5nIiByb2xlPSJhbGVydCI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgPGNvZGU+aGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIjwvY29kZT4gcmVxdWlyZXMKICAgICAgICAgICAgICAgIDxjb2RlPnJvd0tleTwvY29kZT4gdG8gYmUgc2V0LiBGbGFzaCBpcyBkaXNhYmxlZC4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PmA6d2BgfQogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaEdyaWQgaGlkZGVuIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Imx1Y2VuZSBzeW50YXggc2VhcmNoIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7YAogICAgICAgICAgICAgIFlvdSBjYW4gdXNlIHRoZSBsdWNlbmUgc3ludGF4IHRvIHNlYXJjaCBmb3IgZGF0YSwgZS5nLjoKCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7InNlYXJjaCBtb2RlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbInRhYmxlIiwiZGF0YSIsInNlcnZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidGFibGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHtgCiAgICAgICAgICAgICAgVGhlcmUgYXJlIHRocmVlIGJhc2ljIG1vZGVzOgoKICAgICAgICAgICAgICAqIHRhYmxlOiBvbmx5IHNlYXJjaGVzIGRhdGEgYWxyZWFkeSBpbiB0aGUgdGFibGUKICAgICAgICAgICAgICAqIGRhdGE6IHNlYXJjaGVzIG9yaWdpbmFsIGRhdGEsIGlnbm9yaW5nIHRhYmxlIHRyYW5zZm9ybXMKICAgICAgICAgICAgICAqIHNlcnZlcjogc2VhcmNoZXMgZGF0YSBvbiB0aGUgc2VydmVyCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgPHRib2R5CiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuX19vblRib2R5Q2xpY2t9CiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0ke3RoaXMuX19vblRib2R5RGJsY2xpY2t9CiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLl9fb25UYm9keU1vdXNlZG93bn0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7dGhpcy5fX29uVGJvZHlDb250ZXh0bWVudX0KICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke3RoaXMuX19vblRib2R5RHJhZ2VudGVyfQogICAgICAgICAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fX29uVGJvZHlEcmFnbGVhdmV9CiAgICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuX19vblRib2R5RHJhZ292ZXJ9CiAgICAgICAgICAgICAgICAgIEBkcm9wPSR7dGhpcy5fX29uVGJvZHlEcm9wfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke0ZlJiZYZT4wP3dgPHRyIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iaGVpZ2h0OiR7WGV9cHgiPjx0ZD48L3RkPjwvdHI+YDp3YGB9CiAgICAgICAgICAgICAgICAgICR7VmkucmVwZWF0KFZlLFFlPT50aGlzLmdldFJvd0lkKFFlKSwoUWUsdmEpPT57bGV0IE5zPVVlK3ZhLHVhPXRoaXMuZ2V0Um93SWQoUWUpLEdzPXRoaXMuX19mbGFzaGluZ0NlbGxzLmdldCh1YSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yb3ctaWR4PSR7TnN9CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSIke1FlPT09dGhpcy5zZWxlY3RlZERhdGFSb3d8fHRoaXMuaXNSb3dTZWxlY3RlZChRZSk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3g/d2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKFFlKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtmdD0+e2Z0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQoUWUsZnQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDp3YGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7RC5maWx0ZXIoZnQ9PiFmdC5oaWRkZW4pLm1hcCgoZnQsZXIpPT57bGV0IGtzPU9oKFFlLGZ0LHRoaXMuZGlzcGxheUZ1bmN0aW9uKSxocz1mdC5yZW5kZXJlcj9mdC5yZW5kZXJlcihrcyxRZSx7cm93SW5kZXg6TnMsY29sSW5kZXg6ZXIsY29sdW1uOmZ0fSk6a3MsX2k9U3RyaW5nKGZ0LmtleSksQTJlPSEhKGZ0LmVkaXRhYmxlfHxmdC5lZGl0b3IpLE4yZT10aGlzLl9fZm9jdXNlZENlbGw/LnJvd0lkPT09dWEmJnRoaXMuX19mb2N1c2VkQ2VsbD8uY29sS2V5PT09X2ksRDQ9dGhpcy5fX2VkaXRpbmdDZWxsPy5yb3dJZD09PXVhJiZ0aGlzLl9fZWRpdGluZ0NlbGw/LmNvbEtleT09PV9pLFd4PUdzPy5nZXQoX2kpLEw0PVd4IT09dm9pZCAwLFIyZT1MNCYmISFmdC5mbGFzaEJvcmRlcixPMmU9W0EyZT8iZWRpdGFibGUiOiIiLE4yZSYmIUQ0PyJmb2N1c2VkIjoiIixEND8iZWRpdGluZ0NlbGwiOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpLEd4PXdgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ke0w0P1IyZT8iaW5uZXJDZWxsQ29udGFpbmVyIGZsYXNoaW5nLWJvcmRlciI6ImlubmVyQ2VsbENvbnRhaW5lciBmbGFzaGluZyI6ImlubmVyQ2VsbENvbnRhaW5lciJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7RDQ/dGhpcy5yZW5kZXJDZWxsRWRpdG9yKFFlLGZ0KTpoc30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSR7TzJlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtY29sLWtleT0ke19pfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtMND9WaS5rZXllZChgJHt1YX06JHtfaX06JHtXeH1gLEd4KTpHeH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZihQZS5sZW5ndGg+MClyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJhY3Rpb25zQ29sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7UGUubWFwKGZ0PT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+ZnQuYWN0aW9uRnVuYyh7aXRlbTpRZSx0YWJsZTp0aGlzfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtmdC5pY29uTmFtZT93YCA8ZGVlcy1pY29uIC5pY29uPSR7ZnQuaWNvbk5hbWV9PjwvZGVlcy1pY29uPiBgOmZ0Lm5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmB9KX0KICAgICAgICAgICAgICAgICAgJHtGZSYmd3Q+MD93YDx0ciBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9ImhlaWdodDoke3d0fXB4Ij48dGQ+PC90ZD48L3RyPmA6d2BgfQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nSGVhZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICAke3RoaXMuX19mbG9hdGluZ0FjdGl2ZT93YDx0YWJsZT4KICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+YDp3YGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AgPGRpdiBjbGFzcz0ibm9EYXRhU2V0Ij5ObyBkYXRhIHNldCE8L2Rpdj4gYH0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVN0YXRpc3RpY3MiPgogICAgICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGh9ICR7dGhpcy5kYXRhTmFtZXx8ImRhdGEgcm93cyJ9ICh0b3RhbCkgfAogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWREYXRhUm93P2AjICR7dGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZERhdGFSb3cpKzF9YDoiTm8ifQogICAgICAgICAgICBzZWxlY3RlZAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHskZS5tYXAoUWU9PndgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImZvb3RlckFjdGlvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57UWUuYWN0aW9uRnVuYyh7aXRlbTp0aGlzLnNlbGVjdGVkRGF0YVJvdyx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7UWUuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke1FlLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICR7UWUubmFtZX1gOlFlLm5hbWV9CiAgICAgICAgICAgICAgPC9kaXY+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlckhlYWRlclJvd3MoRCl7cmV0dXJuIHdgCiAgICAgIDx0cj4KICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgCiAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtUPT57VC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnNldFNlbGVjdFZpc2libGUoVC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICBgOndgYH0KICAgICAgICAke0QuZmlsdGVyKFQ9PiFULmhpZGRlbikubWFwKFQ9PntsZXQgRz1ULnNvcnRhYmxlIT09ITEsJGU9dGhpcy5nZXRBcmlhU29ydChUKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8dGgKICAgICAgICAgICAgICAgIHJvbGU9ImNvbHVtbmhlYWRlciIKICAgICAgICAgICAgICAgIGFyaWEtc29ydD0keyRlfQogICAgICAgICAgICAgICAgc3R5bGU9IiR7Rz8iY3Vyc29yOiBwb2ludGVyOyI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7UGU9Pkc/dGhpcy5oYW5kbGVIZWFkZXJDbGljayhQZSxULEQpOm51bGx9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtQZT0+Rz90aGlzLm9wZW5IZWFkZXJDb250ZXh0TWVudShQZSxULEQpOm51bGx9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtULmhlYWRlcj8/VC5rZXl9CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcihUKX0KICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAke3RoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjA/d2A8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPmA6d2BgfQogICAgICA8L3RyPgogICAgICAke3RoaXMuc2hvd0NvbHVtbkZpbHRlcnM/d2A8dHIgY2xhc3M9ImZpbHRlcnNSb3ciPgogICAgICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyI+PC90aD5gOndgYH0KICAgICAgICAgICAgJHtELmZpbHRlcihUPT4hVC5oaWRkZW4pLm1hcChUPT57bGV0IEc9U3RyaW5nKFQua2V5KTtyZXR1cm4gVC5maWx0ZXJhYmxlPT09ITE/d2A8dGg+PC90aD5gOndgPHRoPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgZGF0YS1jb2wta2V5PSR7R30gLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW0ddfHwiIn0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHskZT0+dGhpcy5zZXRDb2x1bW5GaWx0ZXIoRywkZS50YXJnZXQudmFsdWUpfSAvPgogICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICR7dGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MD93YDx0aD48L3RoPmA6d2BgfQogICAgICAgICAgPC90cj5gOndgYH0KICAgIGB9X19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyO19fZmxvYXRpbmdTY3JvbGxIYW5kbGVyO19fc2Nyb2xsQW5jZXN0b3JzPVtdO2dldCBfX2Zsb2F0aW5nSGVhZGVyRWwoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmxvYXRpbmdIZWFkZXIiKT8/bnVsbH1nZXQgX19yZWFsVGFibGVFbCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJsZVNjcm9sbCA+IHRhYmxlIik/P251bGx9Z2V0IF9fZmxvYXRpbmdUYWJsZUVsKCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZsb2F0aW5nSGVhZGVyID4gdGFibGUiKT8/bnVsbH1fX2NvbGxlY3RTY3JvbGxBbmNlc3RvcnMoKXtsZXQgRD1bXSxUPXRoaXMsRz1pKCRlPT4kZT09PSJhdXRvInx8JGU9PT0ic2Nyb2xsInx8JGU9PT0ib3ZlcmxheSIsInNjcm9sbGlzaCIpO2Zvcig7VDspe2lmKFQgaW5zdGFuY2VvZiBFbGVtZW50KXtsZXQgUGU9Z2V0Q29tcHV0ZWRTdHlsZShUKSxGZT1HKFBlLm92ZXJmbG93WSksVmU9RyhQZS5vdmVyZmxvd1gpOyhGZXx8VmUpJiZELnB1c2goe3RhcmdldDpULHNjcm9sbHNZOkZlLHNjcm9sbHNYOlZlfSl9bGV0ICRlPVQuYXNzaWduZWRTbG90P1QuYXNzaWduZWRTbG90OlQucGFyZW50Tm9kZTskZT9UPSRlOlQuaG9zdD9UPVQuaG9zdDpUPW51bGx9cmV0dXJuIEQucHVzaCh7dGFyZ2V0OndpbmRvdyxzY3JvbGxzWTohMCxzY3JvbGxzWDohMH0pLER9X19nZXRTdGlja0NvbnRleHQoKXtsZXQgRD0wLFQ9MCxHPXdpbmRvdy5pbm5lcldpZHRoO2ZvcihsZXQgJGUgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYoJGUudGFyZ2V0PT09d2luZG93KWNvbnRpbnVlO2xldCBQZT0kZS50YXJnZXQsRmU9UGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVmU9Z2V0Q29tcHV0ZWRTdHlsZShQZSk7aWYoJGUuc2Nyb2xsc1kpe2xldCBVZT1wYXJzZUZsb2F0KFZlLmJvcmRlclRvcFdpZHRoKXx8MDtEPU1hdGgubWF4KEQsRmUudG9wK1VlKX1pZigkZS5zY3JvbGxzWCl7bGV0IFVlPXBhcnNlRmxvYXQoVmUuYm9yZGVyTGVmdFdpZHRoKXx8MCxYZT1wYXJzZUZsb2F0KFZlLmJvcmRlclJpZ2h0V2lkdGgpfHwwO1Q9TWF0aC5tYXgoVCxGZS5sZWZ0K1VlKSxHPU1hdGgubWluKEcsRmUucmlnaHQtWGUpfX1yZXR1cm57dG9wOkQsbGVmdDpULHJpZ2h0Okd9fXNldHVwRmxvYXRpbmdIZWFkZXIoKXtpZih0aGlzLnRlYXJkb3duRmxvYXRpbmdIZWFkZXIoKSx0aGlzLmZpeGVkSGVpZ2h0JiYhdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IEQ9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCFEKXJldHVybjt0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzPXRoaXMuX19jb2xsZWN0U2Nyb2xsQW5jZXN0b3JzKCk7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwiKTtUJiZ0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzLnVuc2hpZnQoe3RhcmdldDpULHNjcm9sbHNZOnRoaXMuZml4ZWRIZWlnaHQsc2Nyb2xsc1g6ITB9KSx0aGlzLl9fZmxvYXRpbmdSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy52aXJ0dWFsaXplZCYmdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKX0pLHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoRCksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj0oKT0+e3RoaXMuZml4ZWRIZWlnaHR8fHRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnZpcnR1YWxpemVkJiZ0aGlzLl9fY29tcHV0ZVZpcnR1YWxSYW5nZSgpfTtmb3IobGV0IEcgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycylHLnRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksdGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9dGVhcmRvd25GbG9hdGluZ0hlYWRlcigpe2lmKHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpe2ZvcihsZXQgVCBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKVQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlciksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj12b2lkIDB9dGhpcy5fX3Njcm9sbEFuY2VzdG9ycz1bXSx0aGlzLl9fZmxvYXRpbmdBY3RpdmU9ITE7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7RCYmRC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1fX3RyYW5zZmVyRm9jdXNUb1JlYWxIZWFkZXIoKXtsZXQgRD10aGlzLl9fZmxvYXRpbmdIZWFkZXJFbDtpZighRClyZXR1cm47bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50O2lmKCFUfHwhRC5jb250YWlucyhUKSlyZXR1cm47bGV0IEc9VC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCFHKXJldHVybjtsZXQgJGU9VCxQZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50YWJsZVNjcm9sbCA+IHRhYmxlID4gdGhlYWQgaW5wdXRbZGF0YS1jb2wta2V5PSIke0NTUy5lc2NhcGUoRyl9Il1gKTtpZighUGV8fFBlPT09JGUpcmV0dXJuO2xldCBGZT0kZS5zZWxlY3Rpb25TdGFydCxWZT0kZS5zZWxlY3Rpb25FbmQsVWU9JGUuc2VsZWN0aW9uRGlyZWN0aW9uO1BlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e0ZlIT1udWxsJiZWZSE9bnVsbCYmUGUuc2V0U2VsZWN0aW9uUmFuZ2UoRmUsVmUsVWV8fHZvaWQgMCl9Y2F0Y2h7fX1fX3RyYW5zZmVyRm9jdXNUb0Zsb2F0aW5nSGVhZGVyKCl7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7aWYoIUR8fCF0aGlzLl9fZmxvYXRpbmdBY3RpdmUpcmV0dXJuO2xldCBUPXRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudDtpZighVClyZXR1cm47bGV0IEc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwgPiB0YWJsZSA+IHRoZWFkIik7aWYoIUd8fCFHLmNvbnRhaW5zKFQpKXJldHVybjtsZXQgJGU9VC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCEkZSlyZXR1cm47bGV0IFBlPVQsRmU9RC5xdWVyeVNlbGVjdG9yKGBpbnB1dFtkYXRhLWNvbC1rZXk9IiR7Q1NTLmVzY2FwZSgkZSl9Il1gKTtpZighRmV8fEZlPT09UGUpcmV0dXJuO2xldCBWZT1QZS5zZWxlY3Rpb25TdGFydCxVZT1QZS5zZWxlY3Rpb25FbmQsWGU9UGUuc2VsZWN0aW9uRGlyZWN0aW9uO0ZlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e1ZlIT1udWxsJiZVZSE9bnVsbCYmRmUuc2V0U2VsZWN0aW9uUmFuZ2UoVmUsVWUsWGV8fHZvaWQgMCl9Y2F0Y2h7fX1fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKXtpZighdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IFQ9KHRoaXMuX2xhc3RWaWV3RGF0YT8/W10pLmxlbmd0aDtpZihUPT09MCl7KHRoaXMuX192aXJ0dWFsUmFuZ2Uuc3RhcnQhPT0wfHx0aGlzLl9fdmlydHVhbFJhbmdlLmVuZCE9PTApJiYodGhpcy5fX3ZpcnR1YWxSYW5nZT17c3RhcnQ6MCxlbmQ6MH0pO3JldHVybn1sZXQgRz10aGlzLl9fcmVhbFRhYmxlRWw7aWYoIUcpcmV0dXJuO2xldCAkZT1HLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFBlPTAsRmU9d2luZG93LmlubmVySGVpZ2h0O2ZvcihsZXQgZnQgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYoZnQudGFyZ2V0PT09d2luZG93fHwhZnQuc2Nyb2xsc1kpY29udGludWU7bGV0IGVyPWZ0LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxrcz1nZXRDb21wdXRlZFN0eWxlKGZ0LnRhcmdldCksaHM9cGFyc2VGbG9hdChrcy5ib3JkZXJUb3BXaWR0aCl8fDAsX2k9cGFyc2VGbG9hdChrcy5ib3JkZXJCb3R0b21XaWR0aCl8fDA7UGU9TWF0aC5tYXgoUGUsZXIudG9wK2hzKSxGZT1NYXRoLm1pbihGZSxlci5ib3R0b20tX2kpfWxldCBWZT1NYXRoLm1heCgxLHRoaXMuX19yb3dIZWlnaHQpLFVlPUcudEhlYWQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodD8/MCxYZT0kZS50b3ArVWUsd3Q9TWF0aC5tYXgoMCxQZS1YZSksUWU9TWF0aC5tYXgoMCxGZS1NYXRoLm1heChQZSxYZSkpLHZhPU1hdGguZmxvb3Iod3QvVmUpLE5zPU1hdGguY2VpbChRZS9WZSkrMSx1YT1NYXRoLm1heCgwLHZhLXRoaXMudmlydHVhbE92ZXJzY2FuKSxHcz1NYXRoLm1pbihULHZhK05zK3RoaXMudmlydHVhbE92ZXJzY2FuKTsodWEhPT10aGlzLl9fdmlydHVhbFJhbmdlLnN0YXJ0fHxHcyE9PXRoaXMuX192aXJ0dWFsUmFuZ2UuZW5kKSYmKHRoaXMuX192aXJ0dWFsUmFuZ2U9e3N0YXJ0OnVhLGVuZDpHc30pfV9fbWVhc3VyZVJvd0hlaWdodCgpe2lmKCF0aGlzLnZpcnR1YWxpemVkfHx0aGlzLl9fcm93SGVpZ2h0TWVhc3VyZWQpcmV0dXJuO2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidGJvZHkiKTtpZighRClyZXR1cm47bGV0IFQ9QXJyYXkuZnJvbShELnJvd3MpLmZpbmQoJGU9PiRlLmhhc0F0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4IikpO2lmKCFUKXJldHVybjtsZXQgRz1ULmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtHPjAmJih0aGlzLl9fcm93SGVpZ2h0PUcsdGhpcy5fX3Jvd0hlaWdodE1lYXN1cmVkPSEwKX1fX3N5bmNGbG9hdGluZ0hlYWRlcigpe2xldCBEPXRoaXMuX19mbG9hdGluZ0hlYWRlckVsLFQ9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCFEfHwhVClyZXR1cm47bGV0IEc9VC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwkZT10aGlzLl9fZ2V0U3RpY2tDb250ZXh0KCksUGU9VC50SGVhZD8ucm93cyxGZT0wO2lmKFBlKWZvcihsZXQgZnQ9MDtmdDxQZS5sZW5ndGg7ZnQrKylGZSs9UGVbZnRdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtsZXQgVmU9Ry5ib3R0b20tJGUudG9wLFVlPUcudG9wPCRlLnRvcCYmVmU+MDtpZihVZSE9PXRoaXMuX19mbG9hdGluZ0FjdGl2ZSl7aWYoVWV8fHRoaXMuX190cmFuc2ZlckZvY3VzVG9SZWFsSGVhZGVyKCksdGhpcy5fX2Zsb2F0aW5nQWN0aXZlPVVlLEQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixVZSksIVVlKXtELnN0eWxlLmhlaWdodD0iIjtsZXQgZnQ9dGhpcy5fX2Zsb2F0aW5nVGFibGVFbDtmdCYmKGZ0LnN0eWxlLnRyYW5zZm9ybT0iIil9aWYoVWUpe3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLl9fdHJhbnNmZXJGb2N1c1RvRmxvYXRpbmdIZWFkZXIoKX0pO3JldHVybn19aWYoIVVlKXJldHVybjtsZXQgWGU9dGhpcy5fX2Zsb2F0aW5nVGFibGVFbDtpZighWGUpcmV0dXJuO1hlLnN0eWxlLnRhYmxlTGF5b3V0PVQuc3R5bGUudGFibGVMYXlvdXR8fCJhdXRvIjtsZXQgd3Q9WGUudEhlYWQ/LnJvd3M7aWYoUGUmJnd0KWZvcihsZXQgZnQ9MDtmdDxQZS5sZW5ndGgmJmZ0PHd0Lmxlbmd0aDtmdCsrKXtsZXQgZXI9UGVbZnRdLmNlbGxzLGtzPXd0W2Z0XS5jZWxscztmb3IobGV0IGhzPTA7aHM8ZXIubGVuZ3RoJiZoczxrcy5sZW5ndGg7aHMrKyl7bGV0IF9pPWVyW2hzXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtrc1toc10uc3R5bGUud2lkdGg9YCR7X2l9cHhgLGtzW2hzXS5zdHlsZS5taW5XaWR0aD1gJHtfaX1weGAsa3NbaHNdLnN0eWxlLm1heFdpZHRoPWAke19pfXB4YH19bGV0IFFlPU1hdGgubWF4KEcubGVmdCwkZS5sZWZ0KSx2YT1NYXRoLm1pbihHLnJpZ2h0LCRlLnJpZ2h0KSxOcz1NYXRoLm1heCgwLHZhLVFlKTtELnN0eWxlLnRvcD1gJHskZS50b3B9cHhgLEQuc3R5bGUubGVmdD1gJHtRZX1weGAsRC5zdHlsZS53aWR0aD1gJHtOc31weGA7bGV0IHVhPU1hdGgubWluKEZlLFZlKSxHcz1GZS11YTtELnN0eWxlLmhlaWdodD1gJHt1YX1weGAsWGUuc3R5bGUud2lkdGg9YCR7Ry53aWR0aH1weGAsWGUuc3R5bGUubWFyZ2luTGVmdD1gJHtHLmxlZnQtUWV9cHhgLFhlLnN0eWxlLnRyYW5zZm9ybT1Hcz4wP2B0cmFuc2xhdGVZKC0ke0dzfXB4KWA6IiJ9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpLHRoaXMuX19mbGFzaENsZWFyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj12b2lkIDApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe313aWxsVXBkYXRlKEQpe2lmKEQuaGFzKCJkYXRhIikmJnRoaXMuc2VsZWN0ZWREYXRhUm93JiZ0aGlzLnJvd0tleSl7bGV0IHd0PXRoaXMuZ2V0Um93SWQodGhpcy5zZWxlY3RlZERhdGFSb3cpLFFlO2ZvcihsZXQgdmEgb2YgdGhpcy5kYXRhKWlmKHRoaXMuZ2V0Um93SWQodmEpPT09d3Qpe1FlPXZhO2JyZWFrfVFlP1FlIT09dGhpcy5zZWxlY3RlZERhdGFSb3cmJih0aGlzLnNlbGVjdGVkRGF0YVJvdz1RZSk6dGhpcy5zZWxlY3RlZERhdGFSb3c9dm9pZCAwfWlmKHRoaXMuaGlnaGxpZ2h0VXBkYXRlcyE9PSJmbGFzaCIpeyh0aGlzLl9fcHJldlNuYXBzaG90fHx0aGlzLl9fZmxhc2hpbmdDZWxscy5zaXplPjApJiYodGhpcy5fX3ByZXZTbmFwc2hvdD12b2lkIDAsdGhpcy5fX2ZsYXNoaW5nQ2VsbHMuc2l6ZT4wJiYodGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMCkpO3JldHVybn1pZighdGhpcy5yb3dLZXkpe3RoaXMuX19mbGFzaFdhcm5lZE5vUm93S2V5fHwodGhpcy5fX2ZsYXNoV2FybmVkTm9Sb3dLZXk9ITAsY29uc29sZS53YXJuKCdbZGVlcy10YWJsZV0gaGlnaGxpZ2h0VXBkYXRlcz0iZmxhc2giIHJlcXVpcmVzIGByb3dLZXlgIHRvIGJlIHNldC4gRmxhc2ggaXMgZGlzYWJsZWQuIFNldCB0aGUgcm93S2V5IHByb3BlcnR5L2F0dHJpYnV0ZSB0byBhIHN0YWJsZSBpZGVudGlmaWVyIG9uIHlvdXIgcm93IGRhdGEgKGUuZy4gYHJvd0tleT0iaWQiYCkuJykpO3JldHVybn1pZighRC5oYXMoImRhdGEiKSlyZXR1cm47bGV0IEc9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maWx0ZXIod3Q9PiF3dC5oaWRkZW4pLCRlPW5ldyBNYXAoRy5tYXAod3Q9PltTdHJpbmcod3Qua2V5KSx3dF0pKSxQZT1uZXcgTWFwLEZlPW5ldyBNYXA7Zm9yKGxldCB3dCBvZiB0aGlzLmRhdGEpe2xldCBRZT10aGlzLmdldFJvd0lkKHd0KSx2YT1uZXcgTWFwO2ZvcihsZXQgdWEgb2YgRyl2YS5zZXQoU3RyaW5nKHVhLmtleSksT2god3QsdWEsdGhpcy5kaXNwbGF5RnVuY3Rpb24pKTtQZS5zZXQoUWUsdmEpO2xldCBOcz10aGlzLl9fcHJldlNuYXBzaG90Py5nZXQoUWUpO2lmKE5zKWZvcihsZXRbdWEsR3Ndb2YgdmEpe2xldCBmdD1Ocy5nZXQodWEpLGVyPSRlLmdldCh1YSksa3M7aWYoZXI/LmZsYXNoQ29tcGFyZT9rcz1lci5mbGFzaENvbXBhcmUoZnQsR3MpOkdzIT1udWxsJiZ0eXBlb2YgR3M9PSJvYmplY3QiP2tzPSExOmtzPWZ0IT09R3Msa3Mpe2lmKHRoaXMuX19lZGl0aW5nQ2VsbCYmdGhpcy5fX2VkaXRpbmdDZWxsLnJvd0lkPT09UWUmJnRoaXMuX19lZGl0aW5nQ2VsbC5jb2xLZXk9PT11YSljb250aW51ZTtsZXQgaHM9RmUuZ2V0KFFlKTtoc3x8KGhzPW5ldyBTZXQsRmUuc2V0KFFlLGhzKSksaHMuYWRkKHVhKX19fWxldCBWZT0hIXRoaXMuX19wcmV2U25hcHNob3Q7aWYodGhpcy5fX3ByZXZTbmFwc2hvdD1QZSwhVmV8fEZlLnNpemU9PT0wKXJldHVybjtsZXQgVWU9Kyt0aGlzLl9fZmxhc2hUaWNrLFhlPW5ldyBNYXAodGhpcy5fX2ZsYXNoaW5nQ2VsbHMpO2ZvcihsZXRbd3QsUWVdb2YgRmUpe2xldCB2YT1uZXcgTWFwKFhlLmdldCh3dCk/P1tdKTtmb3IobGV0IE5zIG9mIFFlKXZhLnNldChOcyxVZSk7WGUuc2V0KHd0LHZhKX10aGlzLl9fZmxhc2hpbmdDZWxscz1YZSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMH0sTWF0aC5tYXgoMCx0aGlzLmhpZ2hsaWdodER1cmF0aW9uKSl9YXN5bmMgdXBkYXRlZChEKXtzdXBlci51cGRhdGVkKEQpO2xldCBUPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksRz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik/P251bGwsJGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaW5Sb3ciKS5sZW5ndGg7RC5oYXMoImhpZ2hsaWdodER1cmF0aW9uIikmJnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tZGVlcy10YWJsZS1mbGFzaC1kdXJhdGlvbiIsYCR7dGhpcy5oaWdobGlnaHREdXJhdGlvbn1tc2ApO2xldCBQZT0hIUcmJighdGhpcy5fX2NvbHVtbnNTaXplZEZvcnx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5lZmZlY3RpdmVDb2x1bW5zIT09VHx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5zaG93U2VsZWN0aW9uQ2hlY2tib3ghPT10aGlzLnNob3dTZWxlY3Rpb25DaGVja2JveHx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5pblJvd0FjdGlvbkNvdW50IT09JGV8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3IudGFibGUhPT1HKTtHJiZQZSYmKHRoaXMuX19jb2x1bW5zU2l6ZWRGb3I9e2VmZmVjdGl2ZUNvbHVtbnM6VCxzaG93U2VsZWN0aW9uQ2hlY2tib3g6dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3gsaW5Sb3dBY3Rpb25Db3VudDokZSx0YWJsZTpHfSx0aGlzLmRldGVybWluZUNvbHVtbldpZHRocygpLHRoaXMuX19yb3dIZWlnaHRNZWFzdXJlZD0hMSksdGhpcy52aXJ0dWFsaXplZCYmKHRoaXMuX19tZWFzdXJlUm93SGVpZ2h0KCksdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKSksKEQuaGFzKCJmaXhlZEhlaWdodCIpfHxELmhhcygidmlydHVhbGl6ZWQiKXx8RC5oYXMoImRhdGEiKXx8RC5oYXMoImNvbHVtbnMiKXx8IXRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpJiYoKCF0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLnZpcnR1YWxpemVkKSYmdGhpcy5kYXRhLmxlbmd0aD4wP3RoaXMuc2V0dXBGbG9hdGluZ0hlYWRlcigpOnRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpKSwhdGhpcy5maXhlZEhlaWdodCYmdGhpcy5kYXRhLmxlbmd0aD4wJiYodGhpcy5fX2Zsb2F0aW5nQWN0aXZlfHxQZSkmJnRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnNlYXJjaGFibGUmJih0aGlzLmRhdGFBY3Rpb25zLmZpbmQoVmU9PlZlLnR5cGU/LmluY2x1ZGVzKCJoZWFkZXIiKSYmVmUubmFtZT09PSJTZWFyY2giKXx8KHRoaXMuZGF0YUFjdGlvbnMudW5zaGlmdCh7bmFtZToiU2VhcmNoIixpY29uTmFtZToibHVjaWRlOlNlYXJjaCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57Y29uc29sZS5sb2coIm9wZW4gc2VhcmNoIiksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIikuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIil9LCJhY3Rpb25GdW5jIil9KSxjb25zb2xlLmxvZyh0aGlzLmRhdGFBY3Rpb25zKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksdGhpcy53aXJlU2VhcmNoSW5wdXRzKCkpfV9fZGVib3VuY2VUaW1lcjtkZWJvdW5jZVJ1bihELFQ9MjAwKXt0aGlzLl9fZGVib3VuY2VUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuX19kZWJvdW5jZVRpbWVyKSx0aGlzLl9fZGVib3VuY2VUaW1lcj1zZXRUaW1lb3V0KEQsVCl9d2lyZVNlYXJjaElucHV0cygpe2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQgZGVlcy1pbnB1dC10ZXh0IiksVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKTtEJiYhdGhpcy5fX3NlYXJjaFRleHRTdWImJih0aGlzLl9fc2VhcmNoVGV4dFN1Yj1ELmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEc9PntsZXQgJGU9Rz8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTokZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dCgkZSl9KX0pKSxUJiYhdGhpcy5fX3NlYXJjaE1vZGVTdWImJih0aGlzLl9fc2VhcmNoTW9kZVN1Yj1ULmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEc9PntsZXQgJGU9Rz8uc2VsZWN0ZWRPcHRpb258fEc/LnZhbHVlfHwidGFibGUiO2lmKCRlPT09InRhYmxlInx8JGU9PT0iZGF0YSJ8fCRlPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT0kZTtsZXQgUGU9RD8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpQZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChQZSl9KX19KSl9YXN5bmMgZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IFQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik7aWYoIVQpcmV0dXJuO2xldCBHPVQucm93c1swXS5jZWxscywkZT1pKGFzeW5jKFBlLEZlPSExKT0+e2xldCBWZT1tdC5kZWZlcigpLFVlPUdbUGVdLFhlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKFVlKS53aWR0aDtpZihVZS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpKXtsZXQgd3Q9dGhpcy5kYXRhQWN0aW9ucy5maWx0ZXIoUWU9PlFlLnR5cGU/LmluY2x1ZGVzKCJpblJvdyIpKS5sZW5ndGgqMzY7VWUuc3R5bGUud2lkdGg9YCR7TWF0aC5tYXgod3QsNjgpfXB4YH1lbHNlIFVlLnN0eWxlLndpZHRoPVhlO0ZlJiYocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VmUucmVzb2x2ZSgpfSksYXdhaXQgVmUucHJvbWlzZSl9LCJoYW5kbGVDb2x1bW5CeUluZGV4Iik7R1tHLmxlbmd0aC0xXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpJiZhd2FpdCAkZShHLmxlbmd0aC0xLCEwKTtmb3IobGV0IFBlPTA7UGU8Ry5sZW5ndGg7UGUrKylHW1BlXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpfHxhd2FpdCAkZShQZSk7VC5zdHlsZS50YWJsZUxheW91dD0iZml4ZWQifWdldFNvcnREZXNjcmlwdG9yKEQpe3JldHVybiB0aGlzLnNvcnRCeS5maW5kKFQ9PlQua2V5PT09RCl9Z2V0U29ydFByaW9yaXR5KEQpe3JldHVybiB0aGlzLnNvcnRCeS5maW5kSW5kZXgoVD0+VC5rZXk9PT1EKX1zZXRTb3J0KEQsVCl7dGhpcy5zb3J0Qnk9W3trZXk6RCxkaXI6VH1dLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hZGRTb3J0QXQoRCxULEcpe2xldCAkZT10aGlzLnNvcnRCeS5maWx0ZXIoRmU9PkZlLmtleSE9PUQpLFBlPU1hdGgubWF4KDAsTWF0aC5taW4oVCwkZS5sZW5ndGgpKTskZS5zcGxpY2UoUGUsMCx7a2V5OkQsZGlyOkd9KSx0aGlzLnNvcnRCeT0kZSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kU29ydChELFQpe2xldCBHPXRoaXMuc29ydEJ5LmZpbHRlcigkZT0+JGUua2V5IT09RCk7Ry5wdXNoKHtrZXk6RCxkaXI6VH0pLHRoaXMuc29ydEJ5PUcsdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXJlbW92ZVNvcnQoRCl7dGhpcy5zb3J0Qnkuc29tZShUPT5ULmtleT09PUQpJiYodGhpcy5zb3J0Qnk9dGhpcy5zb3J0QnkuZmlsdGVyKFQ9PlQua2V5IT09RCksdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1jbGVhclNvcnRzKCl7dGhpcy5zb3J0QnkubGVuZ3RoIT09MCYmKHRoaXMuc29ydEJ5PVtdLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9ZW1pdFNvcnRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzb3J0Q2hhbmdlIix7ZGV0YWlsOntzb3J0Qnk6dGhpcy5zb3J0QnkubWFwKEQ9Pih7Li4uRH0pKX0sYnViYmxlczohMH0pKX1hc3luYyBoYW5kbGVIZWFkZXJDbGljayhELFQsRyl7aWYoRC5zaGlmdEtleSl7dGhpcy5oYW5kbGVIZWFkZXJTaGlmdENsaWNrKFQpO3JldHVybn1hd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShUKSYmdGhpcy5jeWNsZVNpbmdsZVNvcnQoVCl9Y3ljbGVTaW5nbGVTb3J0KEQpe2xldCBUPVN0cmluZyhELmtleSksRz10aGlzLnNvcnRCeS5sZW5ndGg9PT0xJiZ0aGlzLnNvcnRCeVswXS5rZXk9PT1UP3RoaXMuc29ydEJ5WzBdLmRpcjpudWxsO0c9PT0iYXNjIj90aGlzLnNldFNvcnQoVCwiZGVzYyIpOkc9PT0iZGVzYyI/dGhpcy5jbGVhclNvcnRzKCk6dGhpcy5zZXRTb3J0KFQsImFzYyIpfWhhbmRsZUhlYWRlclNoaWZ0Q2xpY2soRCl7bGV0IFQ9U3RyaW5nKEQua2V5KSxHPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoVCk7Rz9HLmRpcj09PSJhc2MiPyh0aGlzLnNvcnRCeT10aGlzLnNvcnRCeS5tYXAoJGU9PiRlLmtleT09PVQ/e2tleTpULGRpcjoiZGVzYyJ9OiRlKSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpOnRoaXMucmVtb3ZlU29ydChUKTp0aGlzLmFwcGVuZFNvcnQoVCwiYXNjIil9Y29uZmlybVJlcGxhY2VDYXNjYWRlKEQpe3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg8PTE/UHJvbWlzZS5yZXNvbHZlKCEwKTpuZXcgUHJvbWlzZShUPT57bGV0IEc9ITEsJGU9aShGZT0+e0d8fChHPSEwLFQoRmUpKX0sInNldHRsZSIpLFBlPXRoaXMuc29ydEJ5Lm1hcCgoRmUsVmUpPT57bGV0IFhlPXRoaXMuX2xvb2t1cENvbHVtbkJ5S2V5Py4oRmUua2V5KT8uaGVhZGVyPz9GZS5rZXk7cmV0dXJuIHdgPGxpPiR7VmUrMX0uICR7WGV9ICR7RmUuZGlyPT09ImFzYyI/Ilx1MjVCMiI6Ilx1MjVCQyJ9PC9saT5gfSk7UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiUmVwbGFjZSBtdWx0aS1jb2x1bW4gc29ydD8iLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4OyBsaW5lLWhlaWdodDoxLjU1OyI+CiAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46MCAwIDhweDsiPgogICAgICAgICAgICAgIFlvdSBjdXJyZW50bHkgaGF2ZSBhICR7dGhpcy5zb3J0QnkubGVuZ3RofS1jb2x1bW4gc29ydCBhY3RpdmU6CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7IHBhZGRpbmctbGVmdDoxOHB4OyI+JHtQZX08L3VsPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOjA7Ij4KICAgICAgICAgICAgICBDb250aW51aW5nIHdpbGwgZGlzY2FyZCB0aGUgY2FzY2FkZSBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgc2luZ2xlIHNvcnQgb24KICAgICAgICAgICAgICA8c3Ryb25nPiR7RC5oZWFkZXI/P1N0cmluZyhELmtleSl9PC9zdHJvbmc+LgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjppKGFzeW5jIEZlPT4oJGUoITEpLGF3YWl0IEZlLmRlc3Ryb3koKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToibHVjaWRlOmNoZWNrIixhY3Rpb246aShhc3luYyBGZT0+KCRlKCEwKSxhd2FpdCBGZS5kZXN0cm95KCksbnVsbCksImFjdGlvbiIpfV19KX0pfV9sb29rdXBDb2x1bW5CeUtleShEKXtyZXR1cm4gdGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKEc9PlN0cmluZyhHLmtleSk9PT1EKX1vcGVuSGVhZGVyQ29udGV4dE1lbnUoRCxULEcpe2xldCAkZT10aGlzLmJ1aWxkSGVhZGVyTWVudUl0ZW1zKFQsRyk7a2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCwkZSl9YnVpbGRIZWFkZXJNZW51SXRlbXMoRCxUKXtsZXQgRz1TdHJpbmcoRC5rZXkpLCRlPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoRyksUGU9dGhpcy5zb3J0QnkubGVuZ3RoLEZlPVQuZmlsdGVyKFhlPT5YZS5zb3J0YWJsZSE9PSExKS5sZW5ndGgsVmU9TWF0aC5taW4oTWF0aC5tYXgoUGUrKCRlPzA6MSksMSksTWF0aC5tYXgoRmUsMSkpLFVlPVtdO1VlLnB1c2goe25hbWU6IlNvcnQgQXNjZW5kaW5nIixpY29uTmFtZTpQZT09PTEmJiRlPy5kaXI9PT0iYXNjIj8ibHVjaWRlOmNoZWNrIjoibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShEKSYmdGhpcy5zZXRTb3J0KEcsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0pLFVlLnB1c2goe25hbWU6IlNvcnQgRGVzY2VuZGluZyIsaWNvbk5hbWU6UGU9PT0xJiYkZT8uZGlyPT09ImRlc2MiPyJsdWNpZGU6Y2hlY2siOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246aShhc3luYygpPT4oYXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoRCkmJnRoaXMuc2V0U29ydChHLCJkZXNjIiksbnVsbCksImFjdGlvbiIpfSksVWUucHVzaCh7ZGl2aWRlcjohMH0pO2ZvcihsZXQgWGU9MTtYZTw9VmU7WGUrKyl7bGV0IHd0PXFYYShYZSksUWU9JGUmJnRoaXMuZ2V0U29ydFByaW9yaXR5KEcpPT09WGUtMTtVZS5wdXNoKHtuYW1lOmBTZXQgYXMgJHt3dH0gc29ydGAsaWNvbk5hbWU6UWU/Imx1Y2lkZTpjaGVjayI6Imx1Y2lkZTpsaXN0T3JkZXJlZCIsc3VibWVudTpbe25hbWU6IkFzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd1VwIixhY3Rpb246aShhc3luYygpPT4odGhpcy5hZGRTb3J0QXQoRyxYZS0xLCJhc2MiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJEZXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93RG93biIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuYWRkU29ydEF0KEcsWGUtMSwiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSl9cmV0dXJuIFVlLnB1c2goe2RpdmlkZXI6ITB9KSxVZS5wdXNoKHtuYW1lOiJBcHBlbmQgdG8gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixzdWJtZW51Olt7bmFtZToiQXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQoRywiYXNjIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiRGVzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd0Rvd24iLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQoRywiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSksJGUmJihVZS5wdXNoKHtkaXZpZGVyOiEwfSksVWUucHVzaCh7bmFtZToiUmVtb3ZlIGZyb20gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTptaW51cyIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMucmVtb3ZlU29ydChHKSxudWxsKSwiYWN0aW9uIil9KSksUGU+MCYmKCRlfHxVZS5wdXNoKHtkaXZpZGVyOiEwfSksVWUucHVzaCh7bmFtZToiQ2xlYXIgYWxsIHNvcnRzIixpY29uTmFtZToibHVjaWRlOnRyYXNoIixhY3Rpb246aShhc3luYygpPT4odGhpcy5jbGVhclNvcnRzKCksbnVsbCksImFjdGlvbiIpfSkpLFVlLnB1c2goe2RpdmlkZXI6ITB9KSxVZS5wdXNoKHtuYW1lOnRoaXMuc2hvd0NvbHVtbkZpbHRlcnM/IkhpZGUgY29sdW1uIGZpbHRlcnMiOiJTaG93IGNvbHVtbiBmaWx0ZXJzIixpY29uTmFtZTp0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPyJsdWNpZGU6ZmlsdGVyWCI6Imx1Y2lkZTpmaWx0ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPSF0aGlzLnNob3dDb2x1bW5GaWx0ZXJzLHRoaXMucmVxdWVzdFVwZGF0ZSgpLG51bGwpLCJhY3Rpb24iKX0pLFVlfWdldEFyaWFTb3J0KEQpe2xldCBUPXRoaXMuc29ydEJ5WzBdO3JldHVybiFUfHxULmtleSE9PVN0cmluZyhELmtleSk/Im5vbmUiOlQuZGlyPT09ImFzYyI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmcifXJlbmRlclNvcnRJbmRpY2F0b3IoRCl7bGV0IFQ9dGhpcy5nZXRTb3J0UHJpb3JpdHkoU3RyaW5nKEQua2V5KSk7aWYoVDwwKXJldHVybiB3YGA7bGV0ICRlPXRoaXMuc29ydEJ5W1RdLmRpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMiO3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg9PT0xP3dgPHNwYW4gY2xhc3M9InNvcnRBcnJvdyI+JHskZX08L3NwYW4+YDp3YDxzcGFuIGNsYXNzPSJzb3J0QXJyb3ciPiR7JGV9PC9zcGFuPjxzcGFuIGNsYXNzPSJzb3J0QmFkZ2UiPiR7VCsxfTwvc3Bhbj5gfXNldEZpbHRlclRleHQoRCl7bGV0IFQ9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1EPz8iIixUIT09dGhpcy5maWx0ZXJUZXh0JiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1zZXRDb2x1bW5GaWx0ZXIoRCxUKXt0aGlzLmNvbHVtbkZpbHRlcnM9ey4uLnRoaXMuY29sdW1uRmlsdGVycyxbRF06VH0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKEQpe2lmKHRoaXMucm93S2V5KXJldHVybiB0eXBlb2YgdGhpcy5yb3dLZXk9PSJmdW5jdGlvbiI/dGhpcy5yb3dLZXkoRCk6U3RyaW5nKERbdGhpcy5yb3dLZXldKTtsZXQgVD1EO3JldHVybiB0aGlzLl9yb3dJZE1hcC5oYXMoVCl8fHRoaXMuX3Jvd0lkTWFwLnNldChULFN0cmluZygrK3RoaXMuX3Jvd0lkQ291bnRlcikpLHRoaXMuX3Jvd0lkTWFwLmdldChUKX1pc1Jvd1NlbGVjdGVkKEQpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEQpKX10b2dnbGVSb3dTZWxlY3RlZChEKXtsZXQgVD10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoVCkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJih0aGlzLnNlbGVjdGVkSWRzLmhhcyhUKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShUKTp0aGlzLnNlbGVjdGVkSWRzLmFkZChUKSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9X19yZXNvbHZlUm93KEQpe2xldCBUPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sRz1udWxsO2ZvcihsZXQgVmUgb2YgVCl7bGV0IFVlPVZlO2lmKFVlPy50YWdOYW1lPT09IlRSIiYmVWUuaGFzQXR0cmlidXRlKCJkYXRhLXJvdy1pZHgiKSl7Rz1VZTticmVha319aWYoIUcpcmV0dXJuIG51bGw7bGV0ICRlPU51bWJlcihHLmdldEF0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4IikpLEZlPSh0aGlzLl9sYXN0Vmlld0RhdGE/P1tdKVskZV07cmV0dXJuIEZlP3tpdGVtOkZlLHJvd0lkeDokZX06bnVsbH1fX3Jlc29sdmVDZWxsKEQpe2xldCBUPXRoaXMuX19yZXNvbHZlUm93KEQpO2lmKCFUKXJldHVybiBudWxsO2xldCBHPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sJGU9bnVsbDtmb3IobGV0IFVlIG9mIEcpe2xldCBYZT1VZTtpZihYZT8udGFnTmFtZT09PSJURCImJlhlLmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IikpeyRlPVhlO2JyZWFrfX1pZighJGUpcmV0dXJuIG51bGw7bGV0IFBlPSRlLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IiksVmU9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKFVlPT5TdHJpbmcoVWUua2V5KT09PVBlKTtyZXR1cm4gVmU/e2l0ZW06VC5pdGVtLHJvd0lkeDpULnJvd0lkeCxjb2w6VmV9Om51bGx9X19pc0luQWN0aW9uc0NvbChEKXtsZXQgVD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdO2ZvcihsZXQgRyBvZiBUKWlmKEc/LmNsYXNzTGlzdD8uY29udGFpbnMoImFjdGlvbnNDb2wiKSlyZXR1cm4hMDtyZXR1cm4hMX1fX2lzSW5FZGl0b3IoRCl7bGV0IFQ9RC5jb21wb3NlZFBhdGg/LigpfHxbXTtmb3IobGV0IEcgb2YgVCl7bGV0ICRlPUcsUGU9JGU/LnRhZ05hbWU7aWYoUGU9PT0iSU5QVVQifHxQZT09PSJURVhUQVJFQSJ8fCRlPy5pc0NvbnRlbnRFZGl0YWJsZXx8UGUmJlBlLnN0YXJ0c1dpdGgoIkRFRVMtSU5QVVQtIikpcmV0dXJuITB9cmV0dXJuITF9X19vblRib2R5Q2xpY2s9aShEPT57aWYodGhpcy5fX2lzSW5FZGl0b3IoRCl8fHRoaXMuX19pc0luQWN0aW9uc0NvbChEKSlyZXR1cm47bGV0IFQ9dGhpcy5fX3Jlc29sdmVDZWxsKEQpO2lmKCFUKXJldHVybjtsZXQgRz10aGlzLl9sYXN0Vmlld0RhdGE/P1tdOyhULmNvbC5lZGl0YWJsZXx8VC5jb2wuZWRpdG9yKSYmKHRoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChULml0ZW0pLGNvbEtleTpTdHJpbmcoVC5jb2wua2V5KX0pLHRoaXMuaGFuZGxlUm93Q2xpY2soRCxULml0ZW0sVC5yb3dJZHgsRyl9LCJfX29uVGJvZHlDbGljayIpO19fb25UYm9keURibGNsaWNrPWkoRD0+e2lmKHRoaXMuX19pc0luRWRpdG9yKEQpfHx0aGlzLl9faXNJbkFjdGlvbnNDb2woRCkpcmV0dXJuO2xldCBUPXRoaXMuX19yZXNvbHZlQ2VsbChEKTtpZighVClyZXR1cm47aWYoISEoVC5jb2wuZWRpdGFibGV8fFQuY29sLmVkaXRvcikpe0Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zdGFydEVkaXRpbmcoVC5pdGVtLFQuY29sKTtyZXR1cm59bGV0ICRlPXRoaXMuZGF0YUFjdGlvbnMuZmluZChQZT0+UGUudHlwZT8uaW5jbHVkZXMoImRvdWJsZUNsaWNrIikpOyRlJiYkZS5hY3Rpb25GdW5jKHtpdGVtOlQuaXRlbSx0YWJsZTp0aGlzfSl9LCJfX29uVGJvZHlEYmxjbGljayIpO19fb25UYm9keU1vdXNlZG93bj1pKEQ9PntELnNoaWZ0S2V5JiZ0aGlzLnNlbGVjdGlvbk1vZGUhPT0ic2luZ2xlIiYmRC5wcmV2ZW50RGVmYXVsdCgpfSwiX19vblRib2R5TW91c2Vkb3duIik7X19vblRib2R5Q29udGV4dG1lbnU9aShEPT57aWYodGhpcy5fX2lzSW5BY3Rpb25zQ29sKEQpKXJldHVybjtsZXQgVD10aGlzLl9fcmVzb2x2ZVJvdyhEKTtpZighVClyZXR1cm47bGV0IEc9VC5pdGVtO3RoaXMuaXNSb3dTZWxlY3RlZChHKXx8KHRoaXMuc2VsZWN0ZWREYXRhUm93PUcsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRykpLHRoaXMuX19zZWxlY3Rpb25BbmNob3JJZD10aGlzLmdldFJvd0lkKEcpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtsZXQgJGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoRmU9Pih7bmFtZTpGZS5uYW1lLGljb25OYW1lOkZlLmljb25OYW1lLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCBGZS5hY3Rpb25GdW5jKHtpdGVtOkcsdGFibGU6dGhpc30pLG51bGwpLCJhY3Rpb24iKX0pKSxQZT1be25hbWU6dGhpcy5zZWxlY3RlZElkcy5zaXplPjE/YENvcHkgJHt0aGlzLnNlbGVjdGVkSWRzLnNpemV9IHJvd3MgYXMgSlNPTmA6IkNvcHkgcm93IGFzIEpTT04iLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuY29weVNlbGVjdGlvbkFzSnNvbihHKSxudWxsKSwiYWN0aW9uIil9XTtrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhELFsuLi4kZSwuLi5QZV0pfSwiX19vblRib2R5Q29udGV4dG1lbnUiKTtfX29uVGJvZHlEcmFnZW50ZXI9aShEPT57aWYoRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuX19yZXNvbHZlUm93KEQpKXJldHVybjtsZXQgRz0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZCgkZT0+JGU/LnRhZ05hbWU9PT0iVFIiKTtHJiZzZXRUaW1lb3V0KCgpPT5HLmNsYXNzTGlzdC5hZGQoImhhc0F0dGFjaG1lbnQiKSwwKX0sIl9fb25UYm9keURyYWdlbnRlciIpO19fb25UYm9keURyYWdsZWF2ZT1pKEQ9PntELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgVD0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZChHPT5HPy50YWdOYW1lPT09IlRSIik7VCYmVC5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9LCJfX29uVGJvZHlEcmFnbGVhdmUiKTtfX29uVGJvZHlEcmFnb3Zlcj1pKEQ9PntELnByZXZlbnREZWZhdWx0KCl9LCJfX29uVGJvZHlEcmFnb3ZlciIpO19fb25UYm9keURyb3A9aShhc3luYyBEPT57RC5wcmV2ZW50RGVmYXVsdCgpO2xldCBUPXRoaXMuX19yZXNvbHZlUm93KEQpO2lmKCFUKXJldHVybjtsZXQgRz1ULml0ZW0sJGU9W107Zm9yKGxldCBGZSBvZiBBcnJheS5mcm9tKEQuZGF0YVRyYW5zZmVyLmZpbGVzKSl0aGlzLmZpbGVzLnB1c2goRmUpLCRlLnB1c2goRmUpLHRoaXMucmVxdWVzdFVwZGF0ZSgpO2xldCBQZT10aGlzLmZpbGVXZWFrTWFwLmdldChHKTtQZT9QZS5wdXNoKC4uLiRlKTp0aGlzLmZpbGVXZWFrTWFwLnNldChHLCRlKX0sIl9fb25UYm9keURyb3AiKTtoYW5kbGVSb3dDbGljayhELFQsRywkZSl7bGV0IFBlPXRoaXMuZ2V0Um93SWQoVCk7aWYodGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSIpe3RoaXMuc2VsZWN0ZWREYXRhUm93PVQsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGUsdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCk7cmV0dXJufWxldCBGZT1ELm1ldGFLZXl8fEQuY3RybEtleTtpZihELnNoaWZ0S2V5JiZ0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQhPT12b2lkIDApe3dpbmRvdy5nZXRTZWxlY3Rpb24/LigpPy5yZW1vdmVBbGxSYW5nZXMoKTtsZXQgVWU9JGUuZmluZEluZGV4KFhlPT50aGlzLmdldFJvd0lkKFhlKT09PXRoaXMuX19zZWxlY3Rpb25BbmNob3JJZCk7aWYoVWU+PTApe2xldFtYZSx3dF09VWU8PUc/W1VlLEddOltHLFVlXTt0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCk7Zm9yKGxldCBRZT1YZTtRZTw9d3Q7UWUrKyl0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKCRlW1FlXSkpfWVsc2UgdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGU7dGhpcy5zZWxlY3RlZERhdGFSb3c9VH1lbHNlIGlmKEZlKXtpZih0aGlzLnNlbGVjdGVkSWRzLmhhcyhQZSkpe2lmKHRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKFBlKSx0aGlzLnNlbGVjdGVkRGF0YVJvdz09PVQpe2xldCBYZT0kZS5maW5kKHd0PT50aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKHd0KSkpO3RoaXMuc2VsZWN0ZWREYXRhUm93PVhlfX1lbHNlIHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLnNlbGVjdGVkRGF0YVJvdz1UO3RoaXMuX19zZWxlY3Rpb25BbmNob3JJZD1QZX1lbHNlIHRoaXMuc2VsZWN0ZWREYXRhUm93PVQsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGU7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c2V0Um93U2VsZWN0ZWQoRCxUKXtsZXQgRz10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksVCYmdGhpcy5zZWxlY3RlZElkcy5hZGQoRykpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJihUP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKEcpOnRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKEcpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKXtsZXQgRD10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKEQubGVuZ3RoPT09MClyZXR1cm4hMTtmb3IobGV0IFQgb2YgRClpZighdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChUKSkpcmV0dXJuITE7cmV0dXJuITB9aXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpe2xldCBEPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoRC5sZW5ndGg9PT0wKXJldHVybiExO2xldCBUPTA7Zm9yKGxldCBHIG9mIEQpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChHKSkmJlQrKztyZXR1cm4gVD4wJiZUPEQubGVuZ3RofXNldFNlbGVjdFZpc2libGUoRCl7bGV0IFQ9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihEKWZvcihsZXQgRyBvZiBUKXRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRykpO2Vsc2UgZm9yKGxldCBHIG9mIFQpdGhpcy5zZWxlY3RlZElkcy5kZWxldGUodGhpcy5nZXRSb3dJZChHKSk7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9ZW1pdFNlbGVjdGlvbkNoYW5nZSgpe2xldCBEPUFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcyksVD10aGlzLmRhdGEuZmlsdGVyKEc9PnRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoRykpKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkSWRzOkQsc2VsZWN0ZWRSb3dzOlR9LGJ1YmJsZXM6ITB9KSl9Z2V0QWN0aW9uc0ZvclR5cGUoRCl7bGV0IFQ9W107Zm9yKGxldCBHIG9mIHRoaXMuZGF0YUFjdGlvbnMpRy50eXBlPy5pbmNsdWRlcyhEKSYmVC5wdXNoKEcpO3JldHVybiBUfV9faXNDb2x1bW5FZGl0YWJsZShEKXtyZXR1cm4hIShELmVkaXRhYmxlfHxELmVkaXRvcil9X19lZGl0YWJsZUNvbHVtbnMoRCl7cmV0dXJuIEQuZmlsdGVyKFQ9PiFULmhpZGRlbiYmdGhpcy5fX2lzQ29sdW1uRWRpdGFibGUoVCkpfXN0YXJ0RWRpdGluZyhELFQpe2lmKCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShUKSlyZXR1cm47bGV0IEc9dGhpcy5nZXRSb3dJZChEKSwkZT1TdHJpbmcoVC5rZXkpO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6Ryxjb2xLZXk6JGV9LHRoaXMuX19lZGl0aW5nQ2VsbD17cm93SWQ6Ryxjb2xLZXk6JGV9LHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBQZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LXRleHQsIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LCAuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC1kcm9wZG93biwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtZGF0ZXBpY2tlciwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyIpO1BlPy5mb2N1cz8uKCksUGU/LnRhZ05hbWU9PT0iREVFUy1JTlBVVC1EUk9QRE9XTiImJlBlLnVwZGF0ZUNvbXBsZXRlPy50aGVuKCgpPT5QZS50b2dnbGVTZWxlY3Rpb25Cb3g/LigpKX0pfWNhbmNlbENlbGxFZGl0KCl7dGhpcy5fX2VkaXRpbmdDZWxsPXZvaWQgMCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1jb21taXRDZWxsRWRpdChELFQsRyl7bGV0ICRlPVN0cmluZyhULmtleSksUGU9RFtULmtleV0sRmU9VC5wYXJzZT9ULnBhcnNlKEcsRCk6RztpZihULnZhbGlkYXRlKXtsZXQgVmU9VC52YWxpZGF0ZShGZSxEKTtpZih0eXBlb2YgVmU9PSJzdHJpbmciKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsRWRpdEVycm9yIix7ZGV0YWlsOntyb3c6RCxrZXk6JGUsdmFsdWU6RmUsbWVzc2FnZTpWZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKTtyZXR1cm59fUZlIT09UGUmJihEW1Qua2V5XT1GZSx0aGlzLl9fcmVjb3JkQ2VsbEluU25hcHNob3QoRCxUKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsRWRpdCIse2RldGFpbDp7cm93OkQsa2V5OiRlLG9sZFZhbHVlOlBlLG5ld1ZhbHVlOkZlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKSx0aGlzLl9fZWRpdGluZ0NlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpfV9fcmVjb3JkQ2VsbEluU25hcHNob3QoRCxUKXtpZih0aGlzLmhpZ2hsaWdodFVwZGF0ZXMhPT0iZmxhc2gifHwhdGhpcy5fX3ByZXZTbmFwc2hvdHx8IXRoaXMucm93S2V5KXJldHVybjtsZXQgRz10aGlzLmdldFJvd0lkKEQpLCRlPXRoaXMuX19wcmV2U25hcHNob3QuZ2V0KEcpOyRlfHwoJGU9bmV3IE1hcCx0aGlzLl9fcHJldlNuYXBzaG90LnNldChHLCRlKSksJGUuc2V0KFN0cmluZyhULmtleSksT2goRCxULHRoaXMuZGlzcGxheUZ1bmN0aW9uKSl9cmVuZGVyQ2VsbEVkaXRvcihELFQpe2xldCBHPURbVC5rZXldLCRlPVQuZm9ybWF0P1QuZm9ybWF0KEcsRCk6RyxQZT1ULmVkaXRvcj8/InRleHQiLEZlPWkoVmU9PnRoaXMuY29tbWl0Q2VsbEVkaXQoRCxULFZlLnZhbHVlKSwib25UZXh0Q29tbWl0Iik7c3dpdGNoKFBlKXtjYXNlImNoZWNrYm94IjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgLnZhbHVlPSR7ISEkZX0KICAgICAgICAgIEBuZXdWYWx1ZT0ke1ZlPT57VmUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jb21taXRDZWxsRWRpdChELFQsVmUuZGV0YWlsKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5gO2Nhc2UiZHJvcGRvd24iOntsZXQgVmU9VC5lZGl0b3JPcHRpb25zPy5vcHRpb25zPz9bXSxVZT1WZS5maW5kKFhlPT5YZT09bnVsbD8hMTp0eXBlb2YgWGU9PSJzdHJpbmciP1hlPT09RzpYZS5rZXk9PT1HfHxYZS5vcHRpb249PT1HKT8/bnVsbDtyZXR1cm4gd2A8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLnZpbnRlZ3JhdGVkPSR7ITB9CiAgICAgICAgICAub3B0aW9ucz0ke1ZlfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7VWV9CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtYZT0+e1hlLnN0b3BQcm9wYWdhdGlvbigpO2xldCB3dD1YZS5kZXRhaWwsUWU9d3Q/Lm9wdGlvbj8/d3Q/LmtleT8/d3Q7dGhpcy5jb21taXRDZWxsRWRpdChELFQsUWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPmB9Y2FzZSJkYXRlIjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAudmFsdWU9JHskZX0KICAgICAgICAgIEBmb2N1c291dD0ke1ZlPT5GZShWZS50YXJnZXQpfQogICAgICAgICAgQGtleWRvd249JHtWZT0+dGhpcy5fX2hhbmRsZUVkaXRvcktleShWZSxELFQpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5gO2Nhc2UidGFncyI6cmV0dXJuIHdgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLnZhbHVlPSR7JGU/P1tdfQogICAgICAgICAgQGZvY3Vzb3V0PSR7VmU9PkZlKFZlLnRhcmdldCl9CiAgICAgICAgICBAa2V5ZG93bj0ke1ZlPT50aGlzLl9faGFuZGxlRWRpdG9yS2V5KFZlLEQsVCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPmA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmludGVncmF0ZWQ9JHshMH0KICAgICAgICAgIC52YWx1ZT0keyRlPT1udWxsPyIiOlN0cmluZygkZSl9CiAgICAgICAgICBAZm9jdXNvdXQ9JHtWZT0+RmUoVmUudGFyZ2V0KX0KICAgICAgICAgIEBrZXlkb3duPSR7VmU9PnRoaXMuX19oYW5kbGVFZGl0b3JLZXkoVmUsRCxUKX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+YH19X19oYW5kbGVFZGl0b3JLZXkoRCxULEcpe2lmKEQua2V5PT09IkVzY2FwZSIpRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jYW5jZWxDZWxsRWRpdCgpLHRoaXMuZm9jdXMoKTtlbHNlIGlmKEQua2V5PT09IkVudGVyIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoVCxHLCRlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLDEsITApfWVsc2UgaWYoRC5rZXk9PT0iVGFiIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoVCxHLCRlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbChELnNoaWZ0S2V5Py0xOjEsMCwhMCl9fW1vdmVGb2N1c2VkQ2VsbChELFQsRyl7bGV0ICRlPXRoaXMuX2xhc3RWaWV3RGF0YT8/W107aWYoJGUubGVuZ3RoPT09MClyZXR1cm47bGV0IFBlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksRmU9dGhpcy5fX2VkaXRhYmxlQ29sdW1ucyhQZSk7aWYoRmUubGVuZ3RoPT09MClyZXR1cm47bGV0IFZlPTAsVWU9MDtpZih0aGlzLl9fZm9jdXNlZENlbGwmJihWZT0kZS5maW5kSW5kZXgoUWU9PnRoaXMuZ2V0Um93SWQoUWUpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLnJvd0lkKSxVZT1GZS5maW5kSW5kZXgoUWU9PlN0cmluZyhRZS5rZXkpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLmNvbEtleSksVmU8MCYmKFZlPTApLFVlPDAmJihVZT0wKSksRCE9PTApe2ZvcihVZSs9RDtVZT49RmUubGVuZ3RoOylVZS09RmUubGVuZ3RoLFZlKz0xO2Zvcig7VWU8MDspVWUrPUZlLmxlbmd0aCxWZS09MX1pZihUIT09MCYmKFZlKz1UKSxWZTwwfHxWZT49JGUubGVuZ3RoKXt0aGlzLmNhbmNlbENlbGxFZGl0KCk7cmV0dXJufWxldCBYZT0kZVtWZV0sd3Q9RmVbVWVdO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChYZSksY29sS2V5OlN0cmluZyh3dC5rZXkpfSxHP3RoaXMuc3RhcnRFZGl0aW5nKFhlLHd0KTp0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7TXQoYSx0KX19O3JldHVybiBwMT1hfSkoKX0pO3ZhciBraXQ9ZygoKT0+e2dpdCgpfSk7dmFyIEUzYSxQM2E9ZygoKT0+e3BlKCk7SXQoKTtFM2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5mb3JtLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDM1LjMlKSIsImhzbCgxNDIuMSA3MC42JSA2NS4zJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDQwLjYlKSIsImhzbCgwIDcyLjIlIDYwLjYlKSIpfTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIuZm9ybS1vdXRwdXQiKTtlJiZ0JiYoZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGFzeW5jIHI9PntsZXQgbj1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJGb3JtIHN1Ym1pdHRlZCB3aXRoIGRhdGE6IixuKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlByb2Nlc3NpbmcgeW91ciByZWdpc3RyYXRpb24uLi4iKSx0LmlubmVySFRNTD1gPHN0cm9uZz5TdWJtaXR0ZWQgRGF0YTo8L3N0cm9uZz4KJHtKU09OLnN0cmluZ2lmeShuLG51bGwsMil9YCxhd2FpdCBsdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnNldFN0YXR1cygic3VjY2VzcyIsIlJlZ2lzdHJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUucmVzZXQoKSx0LmlubmVySFRNTD0iPGVtPkZvcm0gaGFzIGJlZW4gcmVzZXQ8L2VtPiJ9KSksZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQsIGRlZXMtaW5wdXQtZHJvcGRvd24sIGRlZXMtaW5wdXQtY2hlY2tib3giKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLCgpPT57Y29uc29sZS5sb2coIkZpZWxkIGNoYW5nZWQ6IixyLmdldEF0dHJpYnV0ZSgia2V5IikpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkNvbXBsZXRlIEZvcm0gRXhhbXBsZSIgLmRlc2NyaXB0aW9uPSJBIGNvbXByZWhlbnNpdmUgZm9ybSB3aXRoIHZhcmlvdXMgaW5wdXQgdHlwZXMsIHZhbGlkYXRpb24sIGFuZCBmb3JtIHN1Ym1pc3Npb24gaGFuZGxpbmciPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZmlyc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9IkZpcnN0IE5hbWUiCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJZb3VyIGdpdmVuIG5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0ibGFzdE5hbWUiIAogICAgICAgICAgICBsYWJlbD0iTGFzdCBOYW1lIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZW1haWwiIAogICAgICAgICAgICBsYWJlbD0iRW1haWwgQWRkcmVzcyIKICAgICAgICAgICAgLmluZm9UZXh0PSR7IldlIHdpbGwgdXNlIHRoaXMgdG8gY29udGFjdCB5b3UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJjb3VudHJ5IgogICAgICAgICAgICAubGFiZWw9JHsiQ291bnRyeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifSx7b3B0aW9uOiJDYW5hZGEiLGtleToiY2EifSx7b3B0aW9uOiJHZXJtYW55IixrZXk6ImRlIn0se29wdGlvbjoiRnJhbmNlIixrZXk6ImZyIn0se29wdGlvbjoiVW5pdGVkIEtpbmdkb20iLGtleToidWsifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InBhc3N3b3JkIgogICAgICAgICAgICBsYWJlbD0iUGFzc3dvcmQiCiAgICAgICAgICAgIGlzUGFzc3dvcmRCb29sCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJNaW5pbXVtIDggY2hhcmFjdGVycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InRlcm1zIgogICAgICAgICAgICBsYWJlbD0iSSBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9Im5ld3NsZXR0ZXIiCiAgICAgICAgICAgIGxhYmVsPSJTZW5kIG1lIHByb21vdGlvbmFsIGVtYWlscyIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgQWNjb3VudDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLW91dHB1dCI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgY29sbGVjdGVkIGRhdGEuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpO2UmJihjb25zb2xlLmxvZygiSG9yaXpvbnRhbCBmb3JtIGxheW91dCBhY3RpdmUiKSxlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoYT0+e2xldCByPWEuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZpbHRlciBhcHBsaWVkOiIscik7bGV0IG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMTtjb25zb2xlLmxvZyhgRm91bmQgJHtufSByZXN1bHRzIHdpdGggZmlsdGVyczpgLHIpfSkpLGUucXVlcnlTZWxlY3RvckFsbCgiW2tleV0iKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGFzeW5jKCk9PntsZXQgcj1hd2FpdCBlLmNvbGxlY3RGb3JtRGF0YSgpO2NvbnNvbGUubG9nKCJMaXZlIGZpbHRlciB1cGRhdGU6IixyKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJIb3Jpem9udGFsIEZvcm0gTGF5b3V0IiAuZGVzY3JpcHRpb249IkNvbXBhY3QgZm9ybSB3aXRoIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgLSBwZXJmZWN0IGZvciBmaWx0ZXJzIGFuZCBxdWljayBmb3JtcyI+CiAgICAgICAgPGRlZXMtZm9ybSBob3Jpem9udGFsLWxheW91dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGtleT0ic2VhcmNoIiAKICAgICAgICAgICAgbGFiZWw9IlNlYXJjaCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIGtleXdvcmRzLi4uIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9ImNhdGVnb3J5IgogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFsbCIsa2V5OiJhbGwifSx7b3B0aW9uOiJQcm9kdWN0cyIsa2V5OiJwcm9kdWN0cyJ9LHtvcHRpb246IlNlcnZpY2VzIixrZXk6InNlcnZpY2VzIn0se29wdGlvbjoiU3VwcG9ydCIsa2V5OiJzdXBwb3J0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJzb3J0IgogICAgICAgICAgICAubGFiZWw9JHsiU29ydCBCeSJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTmV3ZXN0IixrZXk6Im5ld2VzdCJ9LHtvcHRpb246IlBvcHVsYXIiLGtleToicG9wdWxhciJ9LHtvcHRpb246IlByaWNlOiBMb3cgdG8gSGlnaCIsa2V5OiJwcmljZV9hc2MifSx7b3B0aW9uOiJQcmljZTogSGlnaCB0byBMb3ciLGtleToicHJpY2VfZGVzYyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIGtleT0iaW5TdG9jayIKICAgICAgICAgICAgbGFiZWw9IkluIFN0b2NrIE9ubHkiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PXMucXVlcnlTZWxlY3RvcigiI3N0YXR1cy1kaXNwbGF5Iik7aWYoZSl7ZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGFzeW5jIHI9PntsZXQgbj1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJBZHZhbmNlZCBmb3JtIGRhdGE6IixuKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlZhbGlkYXRpbmcgeW91ciBpbmZvcm1hdGlvbi4uLiIpLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigxNTAwKSxuLmliYW4mJm4uaWJhbi5sZW5ndGg+MTU/KGUuc2V0U3RhdHVzKCJzdWNjZXNzIiwiQXBwbGljYXRpb24gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseSEiKSx0JiYodC5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIHN1Y2Nlc3MiLHQudGV4dENvbnRlbnQ9Ilx1MjcxMyBZb3VyIGFwcGxpY2F0aW9uIGhhcyBiZWVuIHN1Ym1pdHRlZC4gV2Ugd2lsbCBjb250YWN0IHlvdSBzb29uLiIpKTooZS5zZXRTdGF0dXMoImVycm9yIiwiUGxlYXNlIGNoZWNrIHlvdXIgSUJBTiIpLHQmJih0LmNsYXNzTmFtZT0ic3RhdHVzLW1lc3NhZ2UgZXJyb3IiLHQudGV4dENvbnRlbnQ9Ilx1MjcxNyBJbnZhbGlkIElCQU4gZm9ybWF0LiBQbGVhc2UgY2hlY2sgYW5kIHRyeSBhZ2Fpbi4iKSksY29uc29sZS5sb2coIkZvcm0gZGF0YSBsb2dnZWQ6IixuKX0pKTtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57bGV0IG49ci5kZXRhaWw/LmZpbGVzfHxbXTtjb25zb2xlLmxvZyhgJHtuLmxlbmd0aH0gZmlsZShzKSBzZWxlY3RlZCBmb3IgdXBsb2FkYCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkFkdmFuY2VkIEZvcm0gRmVhdHVyZXMiIC5kZXNjcmlwdGlvbj0iRm9ybSB3aXRoIHNwZWNpYWxpemVkIGlucHV0IHR5cGVzIGFuZCBjb21wbGV4IHZhbGlkYXRpb24iPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICBrZXk9ImliYW4iCiAgICAgICAgICAgIGxhYmVsPSJJQkFOIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAga2V5PSJwaG9uZSIKICAgICAgICAgICAgbGFiZWw9IlBob25lIE51bWJlciIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICBrZXk9InByZWZlcmVuY2VzIgogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVtYWlsIiwiU01TIiwiUHVzaCIsIkluLUFwcCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGlzZWxlY3QKICAgICAgICAgICAga2V5PSJpbnRlcmVzdHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJBcmVhcyBvZiBJbnRlcmVzdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlRlY2hub2xvZ3kiLGtleToidGVjaCJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJCdXNpbmVzcyIsa2V5OiJidXNpbmVzcyJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGlzZWxlY3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAga2V5PSJkb2N1bWVudHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJVcGxvYWQgRG9jdW1lbnRzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlBERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic3RhdHVzLWRpc3BsYXkiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgSTNhLFNpdCxBM2EsTjNhLHV2PWcoKCk9PntwZSgpO2t0KCk7b25lKCk7UmV0KCk7aG5lKCk7eGgoKTtxZXQoKTtibmUoKTt3bmUoKTtVZXQoKTtZZXQoKTtaZXQoKTtYZXQoKTtKZXQoKTt0dHQoKTthdHQoKTtzdHQoKTtHY2UoKTtLY2UoKTtBOCgpO2tpdCgpO1AzYSgpO0kzYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sU2l0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxBM2E9W3JuZSxkbmUscG5lLHluZSxrbmUsTW5lLHpuZSxUbmUsbW5lLGduZSxmbmUsJG5lLERuZSxMbmUsRW5lLEhYLFljZSxYY2VdLE4zYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtZm9ybSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRm9ybSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiaG9yaXpvbnRhbC1sYXlvdXQifSldLEkzYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhvcml6b250YWxMYXlvdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+Imhvcml6b250YWxMYXlvdXQiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5ob3Jpem9udGFsTGF5b3V0LCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UuaG9yaXpvbnRhbExheW91dD1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksSTNhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89RTNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRm9ybSJdO25hbWU9Im15Zm9ybSI7Y2hhbmdlU3ViamVjdD1uZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7cmVhZHlEZWZlcnJlZD11dC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1TaXQodGhpcyxvLCExKTtnZXQgaG9yaXpvbnRhbExheW91dCgpe3JldHVybiB0aGlzLiNlfXNldCBob3Jpem9udGFsTGF5b3V0KGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2hvcml6b250YWwtbGF5b3V0XSkgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTt0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCksdGhpcy51cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKTtmb3IobGV0IHUgb2YgZCl1LmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKGFzeW5jKCk9PntsZXQgYz1hd2FpdCB0aGlzLmNvbGxlY3RGb3JtRGF0YSgpO3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KGMpLGNvbnNvbGUubG9nKGMpLHRoaXMudXBkYXRlUmVxdWlyZWRTdGF0dXMoKX0pO2F3YWl0IHRoaXMuYWRkQmVoYXZpb3VycygpLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9Z2V0Rm9ybUVsZW1lbnRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCIqIikpLmZpbHRlcihkPT5BM2EuaW5jbHVkZXMoZC5jb25zdHJ1Y3RvcikpfWdldFN1Ym1pdEJ1dHRvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maW5kKGQ9PmQgaW5zdGFuY2VvZiB2bmUpfWFzeW5jIHVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl7Y29uc29sZS5sb2coImNoZWNraW5nIHRoZSByZXF1aXJlZCBzdGF0dXMuIik7bGV0IGQ9ITA7Zm9yKGxldCBjIG9mIHRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCkpYy5yZXF1aXJlZCYmIWMudmFsdWUmJihkPSExKTtsZXQgdT10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO3UmJih1LmRpc2FibGVkPSFkKX1hc3luYyBjb2xsZWN0Rm9ybURhdGEoKXtsZXQgZD10aGlzLmdldEZvcm1FbGVtZW50cygpLHU9e307Zm9yKGxldCBjIG9mIGQpe2lmKCFjLmtleSl7Y29uc29sZS5sb2coYGZvcm0gZWxlbWVudCB3aXRoIGxhYmVsICIke2MubGFiZWx9IiBoYXMgbm8ga2V5LiBza2lwcGluZy5gKTtjb250aW51ZX11W2Mua2V5XT1jLnZhbHVlfXJldHVybiB1fWFzeW5jIGdhdGhlckFuZERpc3BhdGNoKCl7bGV0IGQ9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKSx1PW5ldyBDdXN0b21FdmVudCgiZm9ybURhdGEiLHtkZXRhaWw6e2RhdGE6ZH0sYnViYmxlczohMH0pO3RoaXMuZGlzcGF0Y2hFdmVudCh1KSxjb25zb2xlLmxvZygiZGlzcGF0Y2hlZCBkYXRhOiIpLGNvbnNvbGUubG9nKGQpfXNldFN0YXR1cyhkLHUpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksYj10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2lmKGIpe3N3aXRjaChkKXtjYXNlIm5vcm1hbCI6Yi5kaXNhYmxlZD0hMSxiLnN0YXR1cz0ibm9ybWFsIjtmb3IobGV0IHYgb2YgYyl2LmRpc2FibGVkPSExO2JyZWFrO2Nhc2UicGVuZGluZyI6Yi5kaXNhYmxlZD0hMCxiLnN0YXR1cz0icGVuZGluZyI7Zm9yKGxldCB2IG9mIGMpdi5kaXNhYmxlZD0hMDticmVhaztjYXNlInN1Y2Nlc3MiOmIuZGlzYWJsZWQ9ITAsYi5zdGF0dXM9InN1Y2Nlc3MiO2ZvcihsZXQgdiBvZiBjKXYuZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJlcnJvciI6Yi5kaXNhYmxlZD0hMCxiLnN0YXR1cz0iZXJyb3IiO2ZvcihsZXQgdiBvZiBjKXYuZGlzYWJsZWQ9ITA7YnJlYWt9Yi50ZXh0PXV9fXJlc2V0KCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTtmb3IobGV0IHUgb2YgZCl1LnZhbHVlPW51bGw7dGhpcy5zZXRTdGF0dXMoIm5vcm1hbCIsIlN1Ym1pdCIpfWFzeW5jIGFkZEJlaGF2aW91cnMoKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntsZXQgdT1kLnRhcmdldDtpZihBM2EuaW5jbHVkZXModS5jb25zdHJ1Y3RvcikmJmQua2V5PT09IkVudGVyIil7bGV0IGM9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxiPWMuaW5kZXhPZih1KTtiPGMubGVuZ3RoLTE/Y1tiKzFdLmZvY3VzKCk6KHUuYmx1cigpLHRoaXMuZ2V0U3VibWl0QnV0dG9uKCk/LmZvY3VzKCkpfX0pfXVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCB1IG9mIGQpImxheW91dE1vZGUiaW4gdSYmKHUubGF5b3V0TW9kZT0iYXV0byIpfXVwZGF0ZWQoZCl7c3VwZXIudXBkYXRlZChkKSxkLmhhcygiaG9yaXpvbnRhbExheW91dCIpJiZ0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxTaXQodGhpcyxsKX1zdGF0aWN7U2l0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBSM2EsTzNhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTt1digpO0E4KCk7eGgoKTtVYSgpO1IzYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC52ZXJ0aWNhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1heC13aWR0aDogMzAwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tb3V0cHV0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CiAgICAgIAogICAgICAuaWNvbi1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtc25pcHBldCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXQuZ2V0QXR0cmlidXRlKCJ0eXBlIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHZhcmlhbnQgY2xpY2tlZDogJHthfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQnV0dG9uIFZhcmlhbnRzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB2aXN1YWwgc3R5bGVzIGZvciB2YXJpb3VzIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCI+RGVmYXVsdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5Ij5TZWNvbmRhcnk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj5EZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSI+T3V0bGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkdob3N0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJsaW5rIj5MaW5rIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IGE9dC5nZXRBdHRyaWJ1dGUoInNpemUiKXx8ImRlZmF1bHQiO2NvbnNvbGUubG9nKGBCdXR0b24gc2l6ZTogJHthfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gQnV0dG9uIFNpemVzIn0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIHNpemVzIGZvciBkaWZmZXJlbnQgY29udGV4dHMgYW5kIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iPlNtYWxsIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iZGVmYXVsdCI+RGVmYXVsdCBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJsZyI+TGFyZ2UgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJvdXRsaW5lIiAudGV4dD0keyJcdXsxRjY4MH0ifT48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJzbSIgdHlwZT0ic2Vjb25kYXJ5Ij5TbWFsbCBTZWNvbmRhcnk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiIHR5cGU9ImRlc3RydWN0aXZlIj5EZWZhdWx0IERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJsZyIgdHlwZT0ib3V0bGluZSI+TGFyZ2UgT3V0bGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtpZihhKXtsZXQgcj1hLmdldEF0dHJpYnV0ZSgiaWNvbkZBIil8fCJ1bmtub3duIjtjb25zb2xlLmxvZyhgSWNvbiBidXR0b24gY2xpY2tlZDogJHtyfWApfX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEJ1dHRvbnMgd2l0aCBJY29ucyJ9IC5zdWJ0aXRsZT0keyJDb21iaW5pbmcgaWNvbnMgd2l0aCB0ZXh0IGZvciBlbmhhbmNlZCB2aXN1YWwgY29tbXVuaWNhdGlvbiJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQWRkIEl0ZW0KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgRGVsZXRlCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpEb3dubG9hZCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERvd25sb2FkCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Z2VhciI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIFNldHRpbmdzCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldExlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBCYWNrCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgTmV4dAogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmNhcmV0UmlnaHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9ImRlZmF1bHQiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnBsdXMiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJzZWNvbmRhcnkiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6U2VhcmNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZXN0cnVjdGl2ZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXQuZ2V0QXR0cmlidXRlKCJpY29uIil8fCJub25lIixyPXQuZ2V0QXR0cmlidXRlKCJpY29uUG9zaXRpb24iKXx8ImxlZnQiO2NvbnNvbGUubG9nKGBJY29uIHByb3BlcnR5IGJ1dHRvbjogaWNvbj0ke2F9LCBwb3NpdGlvbj0ke3J9YCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBJY29ucyB2aWEgUHJvcGVydHkifSAuc3VidGl0bGU9JHsiU2ltcGxpZmllZCBpY29uIHN5bnRheCB1c2luZyB0aGUgaWNvbiBwcm9wZXJ0eSJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpY29uPSJmYTpwbHVzIj5BZGQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj5EZWxldGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpEb3dubG9hZCI+RG93bmxvYWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSIgaWNvbj0iZmE6Z2VhciI+U2V0dGluZ3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBpY29uPSJmYTpjYXJldExlZnQiPkJhY2s8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBpY29uPSJmYTpjYXJldFJpZ2h0IiBpY29uUG9zaXRpb249InJpZ2h0Ij5OZXh0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9ImRlZmF1bHQiIGljb249ImZhOnBsdXMiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5IiBpY29uPSJsdWNpZGU6U2V0dGluZ3MiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJnaG9zdCIgaWNvbj0ibHVjaWRlOk1vcmVWZXJ0aWNhbCI+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZXN0cnVjdGl2ZSIgaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtc25pcHBldCI+CiAgICAgICAgICAgICZsdDtkZWVzLWJ1dHRvbiBpY29uPSJmYTpwbHVzIiZndDtBZGQgSXRlbSZsdDsvZGVlcy1idXR0b24mZ3Q7PGJyPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCImZ3Q7TmV4dCZsdDsvZGVlcy1idXR0b24mZ3Q7CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3N0YXR1cz0icGVuZGluZyJdJyksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3N0YXR1cz0ic3VjY2VzcyJdJyksYT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3N0YXR1cz0iZXJyb3IiXScpO2UmJnNldFRpbWVvdXQoKCk9Pntjb25zb2xlLmxvZygiUGVuZGluZyBidXR0b24gaXMgc2hvd2luZyBsb2FkaW5nIHN0YXRlIil9LDFlMyksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJTdWNjZXNzIHN0YXRlIGJ1dHRvbiBjbGlja2VkIil9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIkVycm9yIHN0YXRlIGJ1dHRvbiBjbGlja2VkIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gQnV0dG9uIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIHRvIGluZGljYXRlIGJ1dHRvbiBzdGF0dXMgYW5kIGxvYWRpbmcgY29uZGl0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJub3JtYWwiPk5vcm1hbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJwZW5kaW5nIj5Qcm9jZXNzaW5nLi4uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9InN1Y2Nlc3MiPlN1Y2Nlc3MhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9ImVycm9yIj5FcnJvciE8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGRpc2FibGVkPkRpc2FibGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzdGF0dXM9InBlbmRpbmciIHNpemU9InNtIj5TbWFsbCBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzdGF0dXM9InBlbmRpbmciPkRlZmF1bHQgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiIHN0YXR1cz0icGVuZGluZyIgc2l6ZT0ibGciPkxhcmdlIExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoIiNjbGljay1vdXRwdXQiKSx0PXMucXVlcnlTZWxlY3RvcigiZGVlcy1idXR0b246Zmlyc3Qtb2YtdHlwZSIpLGE9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPSJzZWNvbmRhcnkiXScpLHI9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPSJkZXN0cnVjdGl2ZSJdJyk7dCYmZSYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2UudGV4dENvbnRlbnQ9YENsaWNrZWQ6IERlZmF1bHQgYnV0dG9uIGF0ICR7bmV3IERhdGUoKS50b0xvY2FsZVRpbWVTdHJpbmcoKX1gfSksYSYmZSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIixuPT57ZS50ZXh0Q29udGVudD1gQ2xpY2tlZDogU2Vjb25kYXJ5IGJ1dHRvbiB3aXRoIGRhdGE6ICR7bi5kZXRhaWwuZGF0YX1gfSksciYmZSYmci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIixhc3luYygpPT57ZS50ZXh0Q29udGVudD0iUHJvY2Vzc2luZy4uLiIsYXdhaXQgbHQucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksZS50ZXh0Q29udGVudD0iQWN0aW9uIGNvbXBsZXRlZCEifSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEV2ZW50IEhhbmRsaW5nIn0gLnN1YnRpdGxlPSR7IkludGVyYWN0aXZlIGV4YW1wbGVzIHdpdGggY2xpY2sgZXZlbnQgaGFuZGxpbmcifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkNsaWNrIE1lPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiIC5ldmVudERldGFpbERhdGE9JHsiY3VzdG9tLWRhdGEtMTIzIn0+CiAgICAgICAgICAgIENsaWNrIHdpdGggRGF0YQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+QXN5bmMgQWN0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJjbGljay1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICA8ZW0+Q2xpY2sgYSBidXR0b24gdG8gc2VlIHRoZSByZXN1bHQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIjZm9ybS1vdXRwdXQiKTtlJiZ0JiZlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixuPT57dC5pbm5lckhUTUw9IjxzdHJvbmc+Rm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOjwvc3Ryb25nPjxicj4iK0pTT04uc3RyaW5naWZ5KG4uZGV0YWlsLmRhdGEsbnVsbCwyKX0pO2xldCBhPXMucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxyPXMucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZ2hvc3QiXScpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU2F2ZSBEcmFmdCBjbGlja2VkIil9KSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIkNhbmNlbCBjbGlja2VkIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJCdXR0b25zIHdvcmtpbmcgd2l0aGluIGZvcm1zIHdpdGggYXV0b21hdGljIHNwYWNpbmcifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTmFtZSIga2V5PSJuYW1lIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9IkVtYWlsIiBrZXk9ImVtYWlsIiB0eXBlPSJlbWFpbCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJNZXNzYWdlIiBrZXk9Im1lc3NhZ2UiIGlzTXVsdGlsaW5lPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5Ij5TYXZlIERyYWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+Q2FuY2VsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlN1Ym1pdCBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImZvcm0tb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Ij4KICAgICAgICAgIDxlbT5TdWJtaXQgdGhlIGZvcm0gdG8gc2VlIHRoZSBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godD0+e2xldCBhPXQuZ2V0QXR0cmlidXRlKCJ0eXBlIik7YSYmY29uc29sZS5sb2coYExlZ2FjeSB0eXBlICIke2F9IiBpcyBzdXBwb3J0ZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlgKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBCYWNrd2FyZCBDb21wYXRpYmlsaXR5In0gLnN1YnRpdGxlPSR7Ik9sZCBidXR0b24gdHlwZXMgYXJlIGF1dG9tYXRpY2FsbHkgbWFwcGVkIHRvIG5ldyB2YXJpYW50cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibm9ybWFsIj5Ob3JtYWwg4oaSIERlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5IaWdobGlnaHRlZCDihpIgRGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRpc2NyZWV0Ij5EaXNjcmVldCDihpIgT3V0bGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iYmlnIj5CaWcg4oaSIExhcmdlIFNpemU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OyI+CiAgICAgICAgICBUaGVzZSBsZWdhY3kgdHlwZSB2YWx1ZXMgYXJlIG1haW50YWluZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYnV0IHdlIHJlY29tbWVuZCB1c2luZyB0aGUgbmV3IHZhcmlhbnQgc3lzdGVtLgogICAgICAgIDwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yQWxsKCIudmVydGljYWwtZ3JvdXAiKVswXSx0PXMucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMV07ZSYmZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKHIsbik9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG89WyJTYXZlIENoYW5nZXMiLCJEaXNjYXJkIiwiSGVscCJdW25dO2NvbnNvbGUubG9nKGBBY3Rpb24gZ3JvdXA6ICR7b30gY2xpY2tlZGApfSl9KSx0JiZ0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCgocixuKT0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgbz1bIkRlbGV0ZSBBY2NvdW50IiwiQXJjaGl2ZSBEYXRhIiwiTm90IEF2YWlsYWJsZSJdW25dO24hPT0yJiZjb25zb2xlLmxvZyhgRGFuZ2VyIHpvbmU6ICR7b30gY2xpY2tlZGApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOS4gQWR2YW5jZWQgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiQ29tcGxleCBidXR0b24gY29uZmlndXJhdGlvbnMgYW5kIHJlYWwtd29ybGQgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbC1ncm91cCI+CiAgICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsiPkFjdGlvbiBHcm91cDwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6U2F2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgU2F2ZSBDaGFuZ2VzCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpVbmRvMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgRGlzY2FyZAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpIZWxwQ2lyY2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBIZWxwCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbC1ncm91cCI+CiAgICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsiPkRhbmdlciBab25lPC9oND4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgRGVsZXRlIEFjY291bnQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcmNoaXZlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBBcmNoaXZlIERhdGEKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QmFuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBOb3QgQXZhaWxhYmxlCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5Db2RlIEV4YW1wbGU6PC9oND4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtc25pcHBldCI+CiAgICAgICAgICAgICZsdDtkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0IiBzaXplPSJzbSIgaWNvbj0ibHVjaWRlOlNhdmUiIEBjbGlja2VkPSJcJHtoYW5kbGVDbGlja30iJmd0Ozxicj4KICAgICAgICAgICAgJm5ic3A7Jm5ic3A7U2F2ZSBDaGFuZ2VzPGJyPgogICAgICAgICAgICAmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciByMix1cixGM2EsRDg9ZygoKT0+e3BlKCk7a3QoKTtPM2EoKTtwdCgpO3IyPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx1cj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRjNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1idXR0b24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXTt2YXIgbWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNCdXR0b24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHtyZWZsZWN0OiEwLGhhc0NoYW5nZWQoKXtyZXR1cm4hMH19KV0scD1bTCgpXSxjPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpTdHJpbmd9KV0sTz1bTCh7dHlwZTpTdHJpbmd9KV0sSD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sST1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxLPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHIyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idGV4dCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnRleHQsImdldCIpLHNldDppKChVLGhlKT0+e1UudGV4dD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxvLGwpLHIyKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnREZXRhaWxEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJldmVudERldGFpbERhdGEiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5ldmVudERldGFpbERhdGEsImdldCIpLHNldDppKChVLGhlKT0+e1UuZXZlbnREZXRhaWxEYXRhPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGQsdSkscjIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iZGlzYWJsZWQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5kaXNhYmxlZCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5kaXNhYmxlZD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxiLHYpLHIyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIaWRkZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImlzSGlkZGVuImluIFUsImhhcyIpLGdldDppKFU9PlUuaXNIaWRkZW4sImdldCIpLHNldDppKChVLGhlKT0+e1UuaXNIaWRkZW49aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbSxmKSxyMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InR5cGUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS50eXBlLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnR5cGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sTSx6KSxyMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InNpemUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zaXplLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnNpemU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sQyxfKSxyMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic3RhdHVzImluIFUsImhhcyIpLGdldDppKFU9PlUuc3RhdHVzLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnN0YXR1cz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSwkLEUpLHIyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5zaWRlRm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaW5zaWRlRm9ybSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmluc2lkZUZvcm0sImdldCIpLHNldDppKChVLGhlKT0+e1UuaW5zaWRlRm9ybT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLHIyKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaWNvbiJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmljb24sImdldCIpLHNldDppKChVLGhlKT0+e1UuaWNvbj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLHIyKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJpY29uUG9zaXRpb24iaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5pY29uUG9zaXRpb24sImdldCIpLHNldDppKChVLGhlKT0+e1UuaWNvblBvc2l0aW9uPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LFYsVykscjIobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Qn0sbnVsbCx0KSxtZT1hPWUudmFsdWUsQiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpCfSl9c3RhdGljIGRlbW89UjNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQnV0dG9uIl07I2U9dXIodGhpcyxvLHZvaWQgMCk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGV4dChCKXt0aGlzLiNlPUJ9I3Q9KHVyKHRoaXMsbCksdXIodGhpcyxkLHZvaWQgMCkpO2dldCBldmVudERldGFpbERhdGEoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZXZlbnREZXRhaWxEYXRhKEIpe3RoaXMuI3Q9Qn0jYT0odXIodGhpcyx1KSx1cih0aGlzLGIsITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGlzYWJsZWQoQil7dGhpcy4jYT1CfSNzPSh1cih0aGlzLHYpLHVyKHRoaXMsbSwhMSkpO2dldCBpc0hpZGRlbigpe3JldHVybiB0aGlzLiNzfXNldCBpc0hpZGRlbihCKXt0aGlzLiNzPUJ9I2k9KHVyKHRoaXMsZiksdXIodGhpcyxNLCJkZWZhdWx0IikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHR5cGUoQil7dGhpcy4jaT1CfSNyPSh1cih0aGlzLHopLHVyKHRoaXMsQywiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBzaXplKEIpe3RoaXMuI3I9Qn0jbz0odXIodGhpcyxfKSx1cih0aGlzLCQsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI299c2V0IHN0YXR1cyhCKXt0aGlzLiNvPUJ9I249KHVyKHRoaXMsRSksdXIodGhpcyxrLCExKSk7Z2V0IGluc2lkZUZvcm0oKXtyZXR1cm4gdGhpcy4jbn1zZXQgaW5zaWRlRm9ybShCKXt0aGlzLiNuPUJ9I2w9KHVyKHRoaXMsUyksdXIodGhpcyxQLHZvaWQgMCkpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGljb24oQil7dGhpcy4jbD1CfSNjPSh1cih0aGlzLFIpLHVyKHRoaXMsViwibGVmdCIpKTtnZXQgaWNvblBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGljb25Qb3NpdGlvbihCKXt0aGlzLiNjPUJ9Y29uc3RydWN0b3IoKXtzdXBlcigpLHVyKHRoaXMsVyl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLCF0aGlzLmluc2lkZUZvcm0mJnRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIikmJih0aGlzLmluc2lkZUZvcm09ITApfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBGb3JtIHNwYWNpbmcgc3R5bGVzICovCiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV0pIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLWZvcm1baG9yaXpvbnRhbC1sYXlvdXRdIDpob3N0KFtpbnNpZGUtZm9ybV0pIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXTpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICB9CgogICAgICAuYnV0dG9uIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAvKiBTaXplIHZhcmlhbnRzICovCiAgICAgIC5idXR0b24uc2l6ZS1kZWZhdWx0IHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zaXplLXNtIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zaXplLWxnIHsKICAgICAgICBoZWlnaHQ6IDQ0cHg7CiAgICAgICAgcGFkZGluZzogMCAyNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zaXplLWljb24gewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAvKiBEZWZhdWx0IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVmYXVsdDpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTAuMiUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA4NSUpIiwiaHNsKDIxNSAyMC4yJSAyMCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLmRlZmF1bHQ6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgOSUpIil9OwogICAgICB9CgogICAgICAvKiBEZXN0cnVjdGl2ZSB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTsKICAgICAgICBjb2xvcjogaHNsKDAgMCUgOTglKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNTYuMiUpOwogICAgICB9CgogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNTIuMiUpOwogICAgICB9CgogICAgICAvKiBPdXRsaW5lIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5vdXRsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24ub3V0bGluZTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA4NSUpIiwiaHNsKDIxNSAyMC4yJSAyNi44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24ub3V0bGluZTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxMy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFNlY29uZGFyeSB2YXJpYW50ICovCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxMy44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA4NSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEdob3N0IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5naG9zdCB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5naG9zdDpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLmdob3N0OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogTGluayB2YXJpYW50ICovCiAgICAgIC5idXR0b24ubGluayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5saW5rOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLyogU3RhdHVzIHN0YXRlcyAqLwogICAgICAuYnV0dG9uLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc3VjY2VzcywKICAgICAgLmJ1dHRvbi5lcnJvciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAzNnB4OyAvKiBTcGFjZSBmb3Igc3Bpbm5lciAqLwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20ucGVuZGluZywKICAgICAgLmJ1dHRvbi5zaXplLXNtLnN1Y2Nlc3MsCiAgICAgIC5idXR0b24uc2l6ZS1zbS5lcnJvciB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcucGVuZGluZywKICAgICAgLmJ1dHRvbi5zaXplLWxnLnN1Y2Nlc3MsCiAgICAgIC5idXR0b24uc2l6ZS1sZy5lcnJvciB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnBlbmRpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA2Mi44JSA3MC42JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDYyLjglIDcwLjYlKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgLmJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEhpZGRlbiBzdGF0ZSAqLwogICAgICAuYnV0dG9uLmhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogRm9jdXMgc3RhdGUgKi8KICAgICAgLmJ1dHRvbjpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICAgIH0KCiAgICAgIC8qIExvYWRpbmcgc3Bpbm5lciAqLwogICAgICBkZWVzLXNwaW5uZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLWxnIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgbGVmdDogMTRweDsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEljb24gc2l6aW5nIHdpdGhpbiBidXR0b25zICovCiAgICAgIC5idXR0b24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLWxnIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICB9CgogICAgICAvKiBUZXh0IGFsaWdubWVudCAqLwogICAgICAudGV4dGJveCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgYF07ZXh0cmFjdExpZ2h0RG9tKCl7bGV0IEI9dGhpcy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKSxVPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKS5maWx0ZXIoaGU9PmhlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpLm1hcChoZT0+aGUudGV4dENvbnRlbnQ/LnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtpZihVJiYhdGhpcy50ZXh0JiYodGhpcy50ZXh0PVUpLEIpe2xldCBoZT1CLmljb258fEIuZ2V0QXR0cmlidXRlKCJpY29uIil8fChCLmljb25GQT9gZmE6JHtCLmljb25GQX1gOm51bGwpO2lmKGhlKXtsZXQgRj1BcnJheS5mcm9tKHRoaXMuY2hpbGROb2Rlcyksaj1GLmluZGV4T2YoQiksdWU9Ri5maWx0ZXIobGU9PmxlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJmxlLnRleHRDb250ZW50Py50cmltKCkpO2lmKHVlLmxlbmd0aD4wKXtsZXQgbGU9Ri5pbmRleE9mKHVlWzBdKTt0aGlzLmljb25Qb3NpdGlvbj1qPGxlPyJsZWZ0IjoicmlnaHQifXRoaXMuaWNvbj1oZX1CLnJlbW92ZSgpfXRoaXMuaW5uZXJIVE1MPSIifXJlbmRlcigpe2xldCBVPXtub3JtYWw6ImRlZmF1bHQiLGhpZ2hsaWdodGVkOiJkZXN0cnVjdGl2ZSIsZGlzY3JlZXQ6Im91dGxpbmUiLGJpZzoiZGVmYXVsdCJ9W3RoaXMudHlwZV18fHRoaXMudHlwZSxoZT10aGlzLnR5cGU9PT0iYmlnIj8ibGciOnRoaXMuc2l6ZSxGPXRoaXMuaWNvblBvc2l0aW9uPT09ImxlZnQiJiZ0aGlzLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj5gOiIiLGo9dGhpcy5pY29uUG9zaXRpb249PT0icmlnaHQiJiZ0aGlzLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj5gOiIiLHVlPWhlPT09Imljb24iJiZ0aGlzLmljb247cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYnV0dG9uICR7dGhpcy5pc0hpZGRlbj8iaGlkZGVuIjoiIn0gJHtVfSBzaXplLSR7aGV9ICR7dGhpcy5zdGF0dXN9ICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5kaXNwYXRjaENsaWNrfSIKICAgICAgPgogICAgICAgICR7dGhpcy5zdGF0dXM9PT0ibm9ybWFsIj93YGA6d2AKICAgICAgICAgIDxkZWVzLXNwaW5uZXIKICAgICAgICAgICAgLmJudz0keyEwfQogICAgICAgICAgICBzdGF0dXM9IiR7dGhpcy5zdGF0dXN9IgogICAgICAgICAgICBzaXplPSIke2hlPT09InNtIj8xNDpoZT09PSJsZyI/MTg6MTZ9IgogICAgICAgICAgPjwvZGVlcy1zcGlubmVyPgogICAgICAgIGB9CiAgICAgICAgJHtGfQogICAgICAgICR7dWU/IiI6d2A8ZGl2IGNsYXNzPSJ0ZXh0Ym94Ij4ke3RoaXMudGV4dHx8IkJ1dHRvbiJ9PC9kaXY+YH0KICAgICAgICAke2p9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNwYXRjaENsaWNrKCl7dGhpcy5kaXNhYmxlZHx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIse2RldGFpbDp7ZGF0YTp0aGlzLmV2ZW50RGV0YWlsRGF0YX0sYnViYmxlczohMH0pKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmV4dHJhY3RMaWdodERvbSgpfXN0YXRpY3t1cihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIEZoLEluLEIzYSxRY2U9ZygoKT0+e0RkYSgpO3BvKCk7Q3IoKTtwZSgpO1VhKCk7b3IoKTtEOCgpO3B0KCk7bnIoKTtGaD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSW49ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEIzYT0oKCk9PntsZXQgcz1bdmIoKSxuZSgiZGVlcy1zdGF0c2dyaWQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0YXRzR3JpZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpBcnJheX0pXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxGaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0aWxlcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRpbGVzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGlsZXM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLEZoKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluVGlsZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJtaW5UaWxlV2lkdGgiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5taW5UaWxlV2lkdGgsImdldCIpLHNldDppKChTLEkpPT57Uy5taW5UaWxlV2lkdGg9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLEZoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2FwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJnYXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5nYXAsImdldCIpLHNldDppKChTLEkpPT57Uy5nYXA9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLEZoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JpZEFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImdyaWRBY3Rpb25zImluIFMsImhhcyIpLGdldDppKFM9PlMuZ3JpZEFjdGlvbnMsImdldCIpLHNldDppKChTLEkpPT57Uy5ncmlkQWN0aW9ucz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksRmgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbnRleHRNZW51VmlzaWJsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNvbnRleHRNZW51VmlzaWJsZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmNvbnRleHRNZW51VmlzaWJsZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksRmgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjb250ZXh0TWVudVBvc2l0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuY29udGV4dE1lbnVQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmNvbnRleHRNZW51UG9zaXRpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLEZoKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjb250ZXh0TWVudUFjdGlvbnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jb250ZXh0TWVudUFjdGlvbnMsImdldCIpLHNldDppKChTLEkpPT57Uy5jb250ZXh0TWVudUFjdGlvbnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLEZoKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89JGRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9SW4odGhpcyxvLFtdKTtnZXQgdGlsZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGlsZXMoayl7dGhpcy4jZT1rfSN0PShJbih0aGlzLGwpLEluKHRoaXMsZCwyNTApKTtnZXQgbWluVGlsZVdpZHRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblRpbGVXaWR0aChrKXt0aGlzLiN0PWt9I2E9KEluKHRoaXMsdSksSW4odGhpcyxiLDE2KSk7Z2V0IGdhcCgpe3JldHVybiB0aGlzLiNhfXNldCBnYXAoayl7dGhpcy4jYT1rfSNzPShJbih0aGlzLHYpLEluKHRoaXMsbSxbXSkpO2dldCBncmlkQWN0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBncmlkQWN0aW9ucyhrKXt0aGlzLiNzPWt9I2k9KEluKHRoaXMsZiksSW4odGhpcyxNLCExKSk7Z2V0IGNvbnRleHRNZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBjb250ZXh0TWVudVZpc2libGUoayl7dGhpcy4jaT1rfSNyPShJbih0aGlzLHopLEluKHRoaXMsQyx7eDowLHk6MH0pKTtnZXQgY29udGV4dE1lbnVQb3NpdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBjb250ZXh0TWVudVBvc2l0aW9uKGspe3RoaXMuI3I9a30jbz0oSW4odGhpcyxfKSxJbih0aGlzLCQsW10pKTtnZXQgY29udGV4dE1lbnVBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbnRleHRNZW51QWN0aW9ucyhrKXt0aGlzLiNvPWt9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgIH0KCiAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIGNvbnNpc3RlbnQgc3BhY2luZyBhbmQgc2l6aW5nICovCiAgICAgIDpob3N0IHsKICAgICAgICAtLWdyaWQtZ2FwOiAxMnB4OwogICAgICAgIC0tdGlsZS1wYWRkaW5nOiAxNnB4OwogICAgICAgIC0taGVhZGVyLXNwYWNpbmc6IDEycHg7CiAgICAgICAgLS1jb250ZW50LW1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDI2cHg7CiAgICAgICAgLS11bml0LWZvbnQtc2l6ZTogMTRweDsKICAgICAgICAtLWxhYmVsLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAtLXRpdGxlLWZvbnQtc2l6ZTogMTNweDsKICAgICAgICAtLWRlc2NyaXB0aW9uLXNwYWNpbmc6IDhweDsKICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOwogICAgICB9CgogICAgICAvKiBHcmlkIExheW91dCAqLwogICAgICAuZ3JpZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1ncmlkLWdhcCkgKiAxLjUpOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncmlkLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuZ3JpZC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZ3JpZC1hY3Rpb25zIGRlZXMtYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgIH0KCiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHthYSgyNTApfXB4LCAxZnIpKTsKICAgICAgICBnYXA6ICR7YWEoMTYpfXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBUaWxlIEJhc2UgU3R5bGVzIOKAlCBmcmFtZSBwcm92aWRlZCBieSBkZWVzLXRpbGUsIGhvdmVyIHZpYSA6OnBhcnQgKi8KICAgICAgLnN0YXRzLXRpbGU6OnBhcnQob3V0ZXIpIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgZWFzZTsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlLmNsaWNrYWJsZSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDMpIiwicmdiYSgwLDAsMCwwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLyogVGlsZSBIZWFkZXIg4oCUIHNsb3R0ZWQgaW50byBkZWVzLXRpbGUgaGVhZGVyICovCiAgICAgIC50aWxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10aXRsZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC50aWxlLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgQ29udGVudCDigJQgc2xvdHRlZCBpbnRvIGRlZXMtdGlsZSBjb250ZW50IGFyZWEgKi8KICAgICAgLnRpbGUtY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tY29udGVudC1taW4taGVpZ2h0KTsKICAgICAgfQoKICAgICAgLnRpbGUtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50aWxlLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC50aWxlLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfQoKICAgICAgLyogR2F1Z2UgU3R5bGVzICovCiAgICAgIC5nYXVnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgICBoZWlnaHQ6IDcwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbi10b3A6IC04cHg7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1zdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmdhdWdlLWJhY2tncm91bmQgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1maWxsIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZS13aWR0aDogNjsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ2F1Z2UtdGV4dCB7CiAgICAgICAgZmlsbDogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LWFuY2hvcjogbWlkZGxlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLmdhdWdlLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZpbGw6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgIH0KCiAgICAgIC8qIFBlcmNlbnRhZ2UgU3R5bGVzICovCiAgICAgIC5wZXJjZW50YWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC8qIE11bHRpIFBlcmNlbnRhZ2UgU3R5bGVzICovCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1pdGVtcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAvKiBDUFUgQ29yZXMgU3R5bGVzICovCiAgICAgIC5jcHUtY29yZXMtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogODBweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtYmFycyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgICAgZ2FwOiAzcHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMuY2VudGVyZWQgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDZweDsKICAgICAgICBtYXgtd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLXdyYXBwZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5sb3cgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXN1Y2Nlc3MpOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubWVkaXVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC13YXJuaW5nKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLmhpZ2ggewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBQYXJ0aXRpb24gU3R5bGVzICovCiAgICAgIC5wYXJ0aXRpb24td3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1wZXJjZW50YWdlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZyk7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwuY3JpdGljYWwgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWZpbGVzeXN0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1tb3VudHBvaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERpc2sgU3R5bGVzICovCiAgICAgIC5kaXNrLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZGlzay1jYXBhY2l0eSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLmRpc2stbW9kZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLXR5cGUtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuZGlzay1tZXRyaWNzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLmRpc2staW9wcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmdvb2QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwuY3JpdGljYWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA4NC4yJSA2MC4yJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRyZW5kIFN0eWxlcyAqLwogICAgICAudHJlbmQtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnRyZW5kLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50cmVuZC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnRyZW5kLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC50cmVuZC1ncmFwaCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC50cmVuZC1saW5lIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBzdHJva2Utd2lkdGg6IDEuNTsKICAgICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgfQoKICAgICAgLnRyZW5kLWFyZWEgewogICAgICAgIGZpbGw6ICR7aC5iZFRoZW1lKCJyZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMDgpIiwicmdiYSgxMDAsIDEwMCwgMTAwLCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLyogVGV4dCBWYWx1ZSBTdHlsZXMgKi8KICAgICAgLnRleHQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC8qIENvbnRleHQgTWVudSAqLwogICAgICBkZWVzLWNvbnRleHRtZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQogICAgYCxoLmNzc0ZvclRhYmxldChKYAogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsKICAgICAgfQogICAgYCxhKSxoLmNzc0ZvclBoYWJsZXQoSmAKICAgICAgOmhvc3QgewogICAgICAgIC0tdGlsZS1wYWRkaW5nOiAxMnB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyMnB4OwogICAgICAgIC0tdGl0bGUtZm9udC1zaXplOiAxMnB4OwogICAgICAgIC0tZ3JpZC1nYXA6IDhweDsKICAgICAgfQogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLXRpbGUgewogICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgIWltcG9ydGFudDsKICAgICAgfQogICAgYCxhKSxoLmNzc0ZvclBob25lKEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTBweDsKICAgICAgICAtLXZhbHVlLWZvbnQtc2l6ZTogMjBweDsKICAgICAgICAtLWhlYWRlci1zcGFjaW5nOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CiAgICBgLGEpXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksSW4odGhpcyxFKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC10aXRsZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWFjdGlvbnMiPgogICAgICAgICAgICAke3RoaXMuZ3JpZEFjdGlvbnMubWFwKGs9PndgCiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uIAogICAgICAgICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5oYW5kbGVHcmlkQWN0aW9uKGspfQogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIHNpemU9InNtIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7ay5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249JHtrLmljb25OYW1lfSBzaXplPSJzbWFsbCI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICAgICR7ay5uYW1lfQogICAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzdGF0cy1ncmlkIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgke3RoaXMubWluVGlsZVdpZHRofXB4LCAxZnIpKTsgZ2FwOiAke3RoaXMuZ2FwfXB4OyI+CiAgICAgICAgJHt0aGlzLnRpbGVzLm1hcChrPT50aGlzLnJlbmRlclRpbGUoaykpfQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jb250ZXh0TWVudVZpc2libGU/d2AKICAgICAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICAgICAgLng9JHt0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueH0KICAgICAgICAgIC55PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnl9CiAgICAgICAgICAubWVudUl0ZW1zPSR7dGhpcy5jb250ZXh0TWVudUFjdGlvbnN9CiAgICAgICAgICBAY2xpY2tlZD0keygpPT50aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMX0KICAgICAgICA+PC9kZWVzLWNvbnRleHRtZW51PgogICAgICBgOiIifQogICAgYH1yZW5kZXJUaWxlKGspe2xldCBTPWsuYWN0aW9ucyYmay5hY3Rpb25zLmxlbmd0aD4wLEk9UyYmay5hY3Rpb25zLmxlbmd0aD09PTEsUD1rLmNvbHVtblNwYW4mJmsuY29sdW1uU3Bhbj4xP2suY29sdW1uU3Bhbjp2b2lkIDA7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUKICAgICAgICBjbGFzcz0ic3RhdHMtdGlsZSAke0k/ImNsaWNrYWJsZSI6IiJ9IgogICAgICAgIHN0eWxlPSIke1A/YGdyaWQtY29sdW1uOiBzcGFuICR7UH1gOiIifSIKICAgICAgICBAY2xpY2s9JHtJPygpPT50aGlzLmhhbmRsZVRpbGVBY3Rpb24oay5hY3Rpb25zWzBdLGspOnZvaWQgMH0KICAgICAgICBAY29udGV4dG1lbnU9JHtTP1I9PnRoaXMuc2hvd0NvbnRleHRNZW51KFIsayk6dm9pZCAwfQogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJ0aWxlLWhlYWRlciI+CiAgICAgICAgICA8aDMgY2xhc3M9InRpbGUtdGl0bGUiPiR7ay50aXRsZX08L2gzPgogICAgICAgICAgJHtrLmljb24/d2AKICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0idGlsZS1pY29uIiAuaWNvbj0ke2suaWNvbn0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb250ZW50Ij4KICAgICAgICAgICR7dGhpcy5yZW5kZXJUaWxlQ29udGVudChrKX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHtrLmRlc2NyaXB0aW9uJiZrLnR5cGUhPT0idHJlbmQiP3dgCiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InRpbGUtZGVzY3JpcHRpb24iPiR7ay5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyVGlsZUNvbnRlbnQoayl7c3dpdGNoKGsudHlwZSl7Y2FzZSJudW1iZXIiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSIgc3R5bGU9IiR7ay5jb2xvcj9gY29sb3I6ICR7ay5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgIDxzcGFuPiR7ay52YWx1ZX08L3NwYW4+CiAgICAgICAgICAgICR7ay51bml0P3dgPHNwYW4gY2xhc3M9InRpbGUtdW5pdCI+JHtrLnVuaXR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgO2Nhc2UiZ2F1Z2UiOnJldHVybiB0aGlzLnJlbmRlckdhdWdlKGspO2Nhc2UicGVyY2VudGFnZSI6cmV0dXJuIHRoaXMucmVuZGVyUGVyY2VudGFnZShrKTtjYXNlInRyZW5kIjpyZXR1cm4gdGhpcy5yZW5kZXJUcmVuZChrKTtjYXNlIm11bHRpUGVyY2VudGFnZSI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlQZXJjZW50YWdlKGspO2Nhc2UiY3B1Q29yZXMiOnJldHVybiB0aGlzLnJlbmRlckNwdUNvcmVzKGspO2Nhc2UicGFydGl0aW9uIjpyZXR1cm4gdGhpcy5yZW5kZXJQYXJ0aXRpb24oayk7Y2FzZSJkaXNrIjpyZXR1cm4gdGhpcy5yZW5kZXJEaXNrKGspO2Nhc2UidGV4dCI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXZhbHVlIiBzdHlsZT0iJHtrLmNvbG9yP2Bjb2xvcjogJHtrLmNvbG9yfWA6IiJ9Ij4KICAgICAgICAgICAgJHtrLnZhbHVlfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtkZWZhdWx0OnJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7ay52YWx1ZX08L2Rpdj5gfX1yZW5kZXJHYXVnZShrKXtsZXQgUz10eXBlb2Ygay52YWx1ZT09Im51bWJlciI/ay52YWx1ZTpwYXJzZUZsb2F0KGsudmFsdWUpLEk9ay5nYXVnZU9wdGlvbnN8fHttaW46MCxtYXg6MTAwfSxQPShTLUkubWluKS8oSS5tYXgtSS5taW4pKjEwMCxSPTEyMCxLPTcwLFc9Ni8yKzIsbWU9NDAsQj1SLzIsVT1LLVcsaGU9Qi1tZSxGPVUsaj1CK21lLGxlPWBNICR7aGV9ICR7Rn0gQSAke21lfSAke21lfSAwIDAgMSAke2p9ICR7VX1gLFE9TWF0aC5QSSptZSxpZT1RLVEqUC8xMDAsdGU9ay5jb2xvcnx8aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI4LjglKSIsImhzbCgyMTAgNDAlIDc4JSkiKTtpZihJLnRocmVzaG9sZHMpe2xldCBlZT1bLi4uSS50aHJlc2hvbGRzXS5zb3J0KChrZSxYKT0+WC52YWx1ZS1rZS52YWx1ZSk7Zm9yKGxldCBrZSBvZiBlZSlpZihTPj1rZS52YWx1ZSl7dGU9a2UuY29sb3I7YnJlYWt9fXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJnYXVnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXVnZS1jb250YWluZXIiPgogICAgICAgICAgPHN2ZyBjbGFzcz0iZ2F1Z2Utc3ZnIiB2aWV3Qm94PSIwIDAgJHtSfSAke0t9IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4KICAgICAgICAgICAgPCEtLSBCYWNrZ3JvdW5kIGFyYyAtLT4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICBjbGFzcz0iZ2F1Z2UtYmFja2dyb3VuZCIKICAgICAgICAgICAgICBkPSIke2xlfSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPCEtLSBGaWxsZWQgYXJjIC0tPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgIGNsYXNzPSJnYXVnZS1maWxsIgogICAgICAgICAgICAgIGQ9IiR7bGV9IgogICAgICAgICAgICAgIHN0cm9rZT0iJHt0ZX0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT0iJHtRfSIKICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldD0iJHtpZX0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gVmFsdWUgdGV4dCAtLT4KICAgICAgICAgICAgPHRleHQgY2xhc3M9ImdhdWdlLXRleHQiIHg9IiR7Qn0iIHk9IiR7VS04fSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSI+CiAgICAgICAgICAgICAgPHRzcGFuPiR7U308L3RzcGFuPiR7ay51bml0P3dgPHRzcGFuIGNsYXNzPSJnYXVnZS11bml0IiBkeD0iMiIgZHk9IjAiPiR7ay51bml0fTwvdHNwYW4+YDoiIn0KICAgICAgICAgICAgPC90ZXh0PgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQZXJjZW50YWdlKGspe2xldCBTPXR5cGVvZiBrLnZhbHVlPT0ibnVtYmVyIj9rLnZhbHVlOnBhcnNlRmxvYXQoay52YWx1ZSksST1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxTKSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS12YWx1ZSI+JHtJfSU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLWJhciI+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0icGVyY2VudGFnZS1maWxsIiAKICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke0l9JTsgJHtrLmNvbG9yP2BiYWNrZ3JvdW5kOiAke2suY29sb3J9YDoiIn0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUcmVuZChrKXtpZighay50cmVuZERhdGF8fGsudHJlbmREYXRhLmxlbmd0aDwyKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7ay52YWx1ZX08L2Rpdj5gO2xldCBTPWsudHJlbmREYXRhLEk9TWF0aC5tYXgoLi4uUyksUD1NYXRoLm1pbiguLi5TKSxSPUktUHx8MSxLPTMwMCxWPTMyLFc9MixtZT1TLm1hcCgoVSxoZSk9PntsZXQgRj1oZS8oUy5sZW5ndGgtMSkqSyxqPVcrKFYtMipXKS0oVS1QKS9SKihWLTIqVyk7cmV0dXJuYCR7Rn0sJHtqfWB9KS5qb2luKCIgIiksQj1gMCwke1Z9ICR7bWV9ICR7S30sJHtWfWA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0cmVuZC12YWx1ZSI+JHtrLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICR7ay51bml0P3dgPHNwYW4gY2xhc3M9InRyZW5kLXVuaXQiPiR7ay51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgJHtrLmRlc2NyaXB0aW9uP3dgPHNwYW4gY2xhc3M9InRyZW5kLWxhYmVsIj4ke2suZGVzY3JpcHRpb259PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtZ3JhcGgiPgogICAgICAgICAgPHN2ZyBjbGFzcz0idHJlbmQtc3ZnIiB2aWV3Qm94PSIwIDAgJHtLfSAke1Z9IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj4KICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9InRyZW5kLWFyZWEiIHBvaW50cz0iJHtCfSIgLz4KICAgICAgICAgICAgPHBvbHlsaW5lIGNsYXNzPSJ0cmVuZC1saW5lIiBwb2ludHM9IiR7bWV9IiAvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNdWx0aVBlcmNlbnRhZ2Uoayl7aWYoIWsucGVyY2VudGFnZXN8fGsucGVyY2VudGFnZXMubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YDtsZXQgUz1rLnBlcmNlbnRhZ2VzLnNsaWNlKDAsMyk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtcyI+CiAgICAgICAgICAke1MubWFwKEk9PntsZXQgUD1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxJLnZhbHVlKSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtbGFiZWwiPiR7SS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLXZhbHVlIj4ke1B9JTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtZmlsbCIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7UH0lOyAke0kuY29sb3I/YGJhY2tncm91bmQ6ICR7SS5jb2xvcn1gOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNwdUNvcmVzKGspe2lmKCFrLmNvcmVzRGF0YXx8ay5jb3Jlc0RhdGEubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YDtsZXQgUz1rLmNvcmVzRGF0YSxJPU1hdGgucm91bmQoUy5yZWR1Y2UoKG1lLEIpPT5tZStCLnVzYWdlLDApL1MubGVuZ3RoKSxQPWkobWU9Pm1lPDUwPyJsb3ciOm1lPDgwPyJtZWRpdW0iOiJoaWdoIiwiZ2V0Q29sb3JDbGFzcyIpLFI9Uy5sZW5ndGgqMjQrKFMubGVuZ3RoLTEpKjMsSz1rLmNvbHVtblNwYW58fDEsVj10aGlzLm1pblRpbGVXaWR0aCpLKyhLLTEpKnRoaXMuZ2FwLTMyLFc9UjxWKi42NjY7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3Jlcy13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZXMtdmFsdWUiPiR7SX08L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXVuaXQiPiU8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLWxhYmVsIj4ke1MubGVuZ3RofSBjb3Jlczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtYmFycyAke1c/ImNlbnRlcmVkIjoiIn0iPgogICAgICAgICAgJHtTLm1hcChtZT0+e2xldCBCPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLG1lLnVzYWdlKSksVT1QKEIpO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3JlLWJhci1jb250YWluZXIiIHRpdGxlPSJDb3JlICR7bWUubGFiZWx8fG1lLmlkfTogJHtCfSUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNwdS1jb3JlLWJhci1maWxsICR7VX0iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHtCfSUiCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtTLmxlbmd0aDw9MTY/d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3JlLWxhYmVsIj4ke21lLmxhYmVsfHxtZS5pZH08L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXRCeXRlcyhrKXtpZihrPT09MClyZXR1cm4iMCBCIjtsZXQgUz0xMDI0LEk9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiLCJQQiJdLFA9TWF0aC5mbG9vcihNYXRoLmxvZyhrKS9NYXRoLmxvZyhTKSk7cmV0dXJuIHBhcnNlRmxvYXQoKGsvTWF0aC5wb3coUyxQKSkudG9GaXhlZCgxKSkrIiAiK0lbUF19cmVuZGVyUGFydGl0aW9uKGspe2lmKCFrLnBhcnRpdGlvbkRhdGEpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtrLnZhbHVlfTwvZGl2PmA7bGV0e3VzZWQ6Uyx0b3RhbDpJLGZpbGVzeXN0ZW06UCxtb3VudFBvaW50OlJ9PWsucGFydGl0aW9uRGF0YSxLPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLFMvSSoxMDApKSxWPUktUyxXPWkoKCk9Pks+PTkwPyJjcml0aWNhbCI6Sz49NzU/Indhcm5pbmciOiIiLCJnZXRDb2xvckNsYXNzIik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24taGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tcGVyY2VudGFnZSI+JHtNYXRoLnJvdW5kKEspfSU8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLWJhciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJwYXJ0aXRpb24tYmFyLWZpbGwgJHtXKCl9IgogICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7S30lIgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0cyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+VXNlZDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoUyl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+RnJlZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoVil9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1maWxlc3lzdGVtIj4ke1B9PC9zcGFuPgogICAgICAgICAgJHtSP3dgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1tb3VudHBvaW50Ij4ke1J9PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEaXNrKGspe2lmKCFrLmRpc2tEYXRhKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7ay52YWx1ZX08L2Rpdj5gO2xldHtjYXBhY2l0eTpTLG1vZGVsOkksdHlwZTpQLGlvcHM6UixoZWFsdGg6S309ay5kaXNrRGF0YSxWPWkoVz0+Vz49NzA/Imdvb2QiOlc+PTMwPyJ3YXJuaW5nIjoiY3JpdGljYWwiLCJnZXRIZWFsdGhDbGFzcyIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaXNrLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stY2FwYWNpdHkiPiR7dGhpcy5mb3JtYXRCeXRlcyhTKX08L2Rpdj4KICAgICAgICAke0l8fFA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbW9kZWwiPgogICAgICAgICAgICAke0k/d2A8c3Bhbj4ke0l9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICR7UD93YDxzcGFuIGNsYXNzPSJkaXNrLXR5cGUtYmFkZ2UiPiR7UH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1tZXRyaWNzIj4KICAgICAgICAgICR7Uj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtbGFiZWwiPlJlYWQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4ke1IucmVhZC50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5Xcml0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtdmFsdWUiPiR7Ui53cml0ZS50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHtLIT09dm9pZCAwP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLWxhYmVsIj5IZWFsdGg8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1oZWFsdGgtdmFsdWUiPiR7S30lPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNrLWhlYWx0aC1maWxsICR7VihLKX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtLfSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUdyaWRBY3Rpb24oayl7ay5hY3Rpb24mJmF3YWl0IGsuYWN0aW9uKCl9YXN5bmMgaGFuZGxlVGlsZUFjdGlvbihrLFMpe2suYWN0aW9uJiZhd2FpdCBrLmFjdGlvbigpfXNob3dDb250ZXh0TWVudShrLFMpe2lmKCFTLmFjdGlvbnN8fFMuYWN0aW9ucy5sZW5ndGg9PT0wKXJldHVybjtrLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uPXt4OmsuY2xpZW50WCx5OmsuY2xpZW50WX0sdGhpcy5jb250ZXh0TWVudUFjdGlvbnM9Uy5hY3Rpb25zLHRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSEwO2xldCBJPWkoKCk9Pnt0aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsSSl9LCJjbG9zZUhhbmRsZXIiKTtzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEkpfSwxMDApfXN0YXRpY3tJbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgbWcsV2QsTjBvLFIwbyxPMG8sRjBvLEgzYSxxM2E9ZygoKT0+e3BlKCk7SXQoKTtRY2UoKTttZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sV2Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LE4wbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tZGFzaGJvYXJkLXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb0Rhc2hib2FyZFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLG1nKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZhdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJhY3RpdmF0ZWQiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5hY3RpdmF0ZWQsImdldCIpLHNldDppKCh1LGMpPT57dS5hY3RpdmF0ZWQ9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLG1nKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSksV2QoYSx0KX0jZT1XZCh0aGlzLG8sITEpO2dldCBhY3RpdmF0ZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgYWN0aXZhdGVkKGQpe3RoaXMuI2U9ZH1jdHg9V2QodGhpcyxsKTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIixkZXNjcmlwdGlvbjoiT25saW5lIG5vdyIsY29sb3I6IiMyMmM1NWUifSx7aWQ6ImFwaS1jYWxscyIsdGl0bGU6IkFQSSBDYWxscyIsdmFsdWU6NDUyMDAsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsZGVzY3JpcHRpb246IisxMiUgZnJvbSBsYXN0IGhvdXIiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzMyZTMsMzVlMywzOGUzLDQxZTMsMzllMyw0MmUzLDQ1MjAwXX0se2lkOiJoZWFsdGgiLHRpdGxlOiJTeXN0ZW0gSGVhbHRoIix2YWx1ZTo5OS45LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6aGVhcnQtcHVsc2UiLGRlc2NyaXB0aW9uOiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsY29sb3I6IiMxMGI5ODEiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6ODAsY29sb3I6IiNlZjQ0NDQifSx7dmFsdWU6OTUsY29sb3I6IiNmNTllMGIifSx7dmFsdWU6MTAwLGNvbG9yOiIjMTBiOTgxIn1dfX0se2lkOiJyZXNwb25zZSIsdGl0bGU6IkF2ZyBSZXNwb25zZSIsdmFsdWU6MTI3LHVuaXQ6Im1zIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp0aW1lciIsZGVzY3JpcHRpb246Ii0xNW1zIGZyb20geWVzdGVyZGF5Iixjb2xvcjoiIzhiNWNmNiJ9LHtpZDoicmVzb3VyY2VzIix0aXRsZToiUmVzb3VyY2UgVXNhZ2UiLHZhbHVlOiIiLHR5cGU6Im11bHRpUGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnNlcnZlciIscGVyY2VudGFnZXM6W3tsYWJlbDoiQ1BVIix2YWx1ZTo2Nyxjb2xvcjoiIzNiODJmNiJ9LHtsYWJlbDoiTWVtb3J5Iix2YWx1ZTo4NCxjb2xvcjoiIzhiNWNmNiJ9LHtsYWJlbDoiRGlzayIsdmFsdWU6NDUsY29sb3I6IiMxMGI5ODEifV19LHtpZDoicmVxdWVzdHMiLHRpdGxlOiJSZXF1ZXN0cy9zZWMiLHZhbHVlOjE4NTAsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTp6YXAiLGRlc2NyaXB0aW9uOiJDdXJyZW50IHRocm91Z2hwdXQiLGNvbG9yOiIjMDZiNmQ0Iix0cmVuZERhdGE6WzEyMDAsMTQwMCwxMzUwLDE2MDAsMTc1MCwxNjgwLDE4NTBdfV07b25BY3RpdmF0ZShkKXt0aGlzLmN0eD1kLHRoaXMuYWN0aXZhdGVkPSEwLGNvbnNvbGUubG9nKCJEYXNoYm9hcmQgYWN0aXZhdGVkIHdpdGggY29udGV4dDoiLGQpLGQuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRGFzaGJvYXJkIixncm91cHM6W3tuYW1lOiJRdWljayBBY2Nlc3MiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXciKSwiYWN0aW9uIil9LHtrZXk6IlJlY2VudCIsaWNvbk5hbWU6ImNsb2NrIixiYWRnZTo1LGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVjZW50IiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCBEYXRhIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJSZWZyZXNoaW5nIGRhc2hib2FyZCBkYXRhLi4uIiksImFjdGlvbiIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJUaW1lIFJhbmdlIn0se3R5cGU6ImZpbHRlciIsa2V5OiJMaXZlIFVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cmFkaW8iLGFjdGl2ZTohMCxvblRvZ2dsZTppKHU9PmNvbnNvbGUubG9nKCJMaXZlIHVwZGF0ZXM6Iix1KSwib25Ub2dnbGUiKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTppKHU9PmNvbnNvbGUubG9nKCJTaG93IGFyY2hpdmVkOiIsdSksIm9uVG9nZ2xlIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6Im11bHRpRmlsdGVyIixrZXk6IkRhdGEgU291cmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSIsb3B0aW9uczpbe2tleToiYXBpIixsYWJlbDoiQVBJIFNlcnZlciIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOnNlcnZlciJ9LHtrZXk6IndlYiIsbGFiZWw6IldlYiBUcmFmZmljIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6Z2xvYmUifSx7a2V5OiJtb2JpbGUiLGxhYmVsOiJNb2JpbGUgQXBwIixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6c21hcnRwaG9uZSJ9XSxvbkNoYW5nZTppKHU9PmNvbnNvbGUubG9nKCJEYXRhIHNvdXJjZXM6Iix1KSwib25DaGFuZ2UiKX1dfSx7bmFtZToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsaXRlbXM6W3trZXk6Ik1ldHJpY3MiLGljb25OYW1lOiJhY3Rpdml0eSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJNZXRyaWNzIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToiZmlsZVRleHQiLGJhZGdlOiJuZXciLGJhZGdlVmFyaWFudDoic3VjY2VzcyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJsaW5rIixrZXk6IkFuYWx5dGljcyBEb2NzIixpY29uTmFtZToibHVjaWRlOmV4dGVybmFsTGluayIsaHJlZjoiaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2FuYWx5dGljcyJ9XX1dfSksZC5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0RGFzaGJvYXJkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IHRhYiIpLCJhY3Rpb24iKX0se2tleToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyB0YWIiKSwiYWN0aW9uIil9LHtrZXk6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVwb3J0cyB0YWIiKSwiYWN0aW9uIil9XSl9b25EZWFjdGl2YXRlKCl7dGhpcy5hY3RpdmF0ZWQ9ITEsY29uc29sZS5sb2coIkRhc2hib2FyZCBkZWFjdGl2YXRlZCIpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQogICAgICAgIHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luLWJvdHRvbTogMzJweDsgfQogICAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuY3R4LWFjdGlvbnMgewogICAgICAgICAgbWFyZ2luLXRvcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDIpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB9CiAgICAgICAgLmN0eC1hY3Rpb25zIGgyIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQogICAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7CiAgICAgICAgICBjb2xvcjogIzYwYTVmYTsKICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uZGFuZ2VyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uZGFuZ2VyOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLnN1Y2Nlc3MgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMTk3LCA5NCwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5zdWNjZXNzOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuNSk7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+RGFzaGJvYXJkPC9oMT4KICAgICAgPHA+V2VsY29tZSBiYWNrISBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBzeXN0ZW0uPC9wPgogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnN0YXRzVGlsZXN9CiAgICAgICAgQHRpbGUtYWN0aW9uPSR7ZD0+Y29uc29sZS5sb2coIlRpbGUgYWN0aW9uOiIsZC5kZXRhaWwpfQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgIDxkaXYgY2xhc3M9ImN0eC1hY3Rpb25zIj4KICAgICAgICA8aDI+Q29udGV4dCBBY3Rpb25zIChjdHguYXBwdWkpPC9oMj4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSghMSl9PkhpZGUgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVWaXNpYmxlKCEwKX0+U2hvdyBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVZpc2libGUoITEpfT5IaWRlIFNlY29uZGFyeSBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVZpc2libGUoITApfT5TaG93IFNlY29uZGFyeSBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSghMSl9PkhpZGUgQ29udGVudCBUYWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNWaXNpYmxlKCEwKX0+U2hvdyBDb250ZW50IFRhYnM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVDb2xsYXBzZWQoITApfT5Db2xsYXBzZSBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUNvbGxhcHNlZCghMSl9PkV4cGFuZCBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0QnJlYWRjcnVtYnMoWyJEYXNoYm9hcmQiLCJPdmVydmlldyIsIlN0YXRzIl0pfT5TZXQgQnJlYWRjcnVtYnM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkubmF2aWdhdGVUb1ZpZXcoInByb2plY3RzIil9PkdvIHRvIFByb2plY3RzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLm5hdmlnYXRlVG9WaWV3KCJzZXR0aW5ncyIse3NlY3Rpb246InNlY3VyaXR5In0pfT5HbyB0byBTZXR0aW5ncy9TZWN1cml0eTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5hY3Rpdml0eUxvZy5hZGQoe3R5cGU6ImN1c3RvbSIsdXNlcjoiRGVtbyBVc2VyIixtZXNzYWdlOiJCdXR0b24gY2xpY2tlZCBmcm9tIGN0eCEiLGljb25OYW1lOiJsdWNpZGU6bW91c2UtcG9pbnRlci1jbGljayJ9KX0+QWRkIEFjdGl2aXR5IEVudHJ5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51QmFkZ2UoInRhc2tzIiw5OSl9PlNldCBUYXNrcyBCYWRnZSB0byA5OTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuY2xlYXJNYWluTWVudUJhZGdlKCJ0YXNrcyIpfT5DbGVhciBUYXNrcyBCYWRnZTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKCEwLDEpfT5BdXRvLWhpZGUgVGFicyAo4omkMSk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzQXV0b0hpZGUoITEpfT5EaXNhYmxlIEF1dG8taGlkZTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRDbG9zZWFibGVUYWIoKX0+QWRkIENsb3NlYWJsZSBUYWI8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXRhYkNvdW50ZXI9MDthZGRDbG9zZWFibGVUYWIoKXtpZighdGhpcy5jdHgpcmV0dXJuO3RoaXMudGFiQ291bnRlcisrO2xldCBkPWBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YDt0aGlzLmN0eC5hcHB1aS5hZGRDb250ZW50VGFiKHtrZXk6ZCxpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZyhgU2VsZWN0ZWQgJHtkfWApLCJhY3Rpb24iKSxjbG9zZWFibGU6ITAsb25DbG9zZTppKCgpPT57dGhpcy5jdHg/LmFwcHVpLnJlbW92ZUNvbnRlbnRUYWIoZCl9LCJvbkNsb3NlIil9KX19O3JldHVybiBwPWF9KSgpLFIwbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tc2V0dGluZ3MtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vU2V0dGluZ3NWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLG1nKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2VjdGlvbiJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnNlY3Rpb24sImdldCIpLHNldDppKCh2LHgpPT57di5zZWN0aW9uPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxtZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0NoYW5nZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+Imhhc0NoYW5nZXMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5oYXNDaGFuZ2VzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuaGFzQ2hhbmdlcz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksbWcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSxXZChhLHQpfSNlPVdkKHRoaXMsbywiZ2VuZXJhbCIpO2dldCBzZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlY3Rpb24oYil7dGhpcy4jZT1ifSN0PShXZCh0aGlzLGwpLFdkKHRoaXMsZCwhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGhhc0NoYW5nZXMoYil7dGhpcy4jdD1ifWFwcHVpPVdkKHRoaXMsdSk7b25BY3RpdmF0ZShiKXt0aGlzLmFwcHVpPWIuYXBwdWksY29uc29sZS5sb2coIlNldHRpbmdzIGFjdGl2YXRlZCB3aXRoIHBhcmFtczoiLGIucGFyYW1zKSxiLnBhcmFtcz8uc2VjdGlvbiYmKHRoaXMuc2VjdGlvbj1iLnBhcmFtcy5zZWN0aW9uKSxiLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlNldHRpbmdzIixncm91cHM6W3tuYW1lOiJBY2NvdW50IixpY29uTmFtZToibHVjaWRlOnVzZXIiLGl0ZW1zOlt7a2V5OiJnZW5lcmFsIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJnZW5lcmFsIiksImFjdGlvbiIpfSx7a2V5OiJwcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmkoKCk9PnRoaXMuc2hvd1NlY3Rpb24oInByb2ZpbGUiKSwiYWN0aW9uIil9LHtrZXk6InNlY3VyaXR5IixpY29uTmFtZToic2hpZWxkIixhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigic2VjdXJpdHkiKSwiYWN0aW9uIil9XX0se25hbWU6IlByZWZlcmVuY2VzIixpY29uTmFtZToibHVjaWRlOnNsaWRlcnMiLGl0ZW1zOlt7a2V5OiJub3RpZmljYXRpb25zIixpY29uTmFtZToiYmVsbCIsYmFkZ2U6MyxhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigibm90aWZpY2F0aW9ucyIpLCJhY3Rpb24iKX0se2tleToiYXBwZWFyYW5jZSIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJhcHBlYXJhbmNlIiksImFjdGlvbiIpfV19XX0pLGIuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbih0aGlzLnNlY3Rpb24pLGIuYXBwdWkuc2V0Q29udGVudFRhYnMoW10pfW9uRGVhY3RpdmF0ZSgpe2NvbnNvbGUubG9nKCJTZXR0aW5ncyBkZWFjdGl2YXRlZCIpLHRoaXMuaGFzQ2hhbmdlcz0hMX1jYW5EZWFjdGl2YXRlKCl7cmV0dXJuIHRoaXMuaGFzQ2hhbmdlcz8iWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBMZWF2ZSBhbnl3YXk/IjohMH1zaG93U2VjdGlvbihiKXt0aGlzLnNlY3Rpb249Yix0aGlzLmFwcHVpPy5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKGIpfXNpbXVsYXRlQ2hhbmdlKCl7dGhpcy5oYXNDaGFuZ2VzPSEwfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQogICAgICAgIHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5zZWN0aW9uLW5hbWUgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5hY3Rpb25zIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2OwogICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjU2M2ViOwogICAgICAgIH0KICAgICAgICAud2FybmluZyB7CiAgICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+U2V0dGluZ3M8L2gxPgogICAgICA8cD5NYW5hZ2UgeW91ciBhY2NvdW50IGFuZCBhcHBsaWNhdGlvbiBwcmVmZXJlbmNlcy48L3A+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbmFtZSI+CiAgICAgICAgQ3VycmVudCBzZWN0aW9uOiA8c3Ryb25nPiR7dGhpcy5zZWN0aW9ufTwvc3Ryb25nPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zaW11bGF0ZUNoYW5nZSgpfT5NYWtlIENoYW5nZXM8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5oYXNDaGFuZ2VzP3dgPHAgY2xhc3M9Indhcm5pbmciPllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcy4gTmF2aWdhdGlvbiB3aWxsIHByb21wdCBmb3IgY29uZmlybWF0aW9uLjwvcD5gOiIifQogICAgYH19O3JldHVybiBjPWF9KSgpLE8wbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tcHJvamVjdHMtdmlldyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vUHJvamVjdHNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bWcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxXZChhLHQpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJQcm9qZWN0cyIsZ3JvdXBzOlt7bmFtZToiTXkgUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixpdGVtczpbe2tleToiQWN0aXZlIixpY29uTmFtZToiZm9sZGVyIixiYWRnZTozLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWN0aXZlIiksImFjdGlvbiIpfSx7a2V5OiJBcmNoaXZlZCIsaWNvbk5hbWU6ImFyY2hpdmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQiKSwiYWN0aW9uIil9LHtrZXk6IlNoYXJlZCIsaWNvbk5hbWU6InVzZXJzIixiYWRnZToyLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTaGFyZWQiKSwiYWN0aW9uIil9XX0se25hbWU6IlF1aWNrIEFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBuZXcgcHJvamVjdCIpLCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjppKCgpPT5hbGVydCgiSW1wb3J0IHByb2plY3QiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiVGVtcGxhdGVzIixpY29uTmFtZToibHVjaWRlOmxheW91dFRlbXBsYXRlIixocmVmOiJodHRwczovL3RlbXBsYXRlcy5leGFtcGxlLmNvbSJ9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiR3JpZCIsaWNvbk5hbWU6Imx1Y2lkZTpncmlkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkdyaWQgdmlldyIpLCJhY3Rpb24iKX0se2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkxpc3QgdmlldyIpLCJhY3Rpb24iKX0se2tleToiQm9hcmQiLGljb25OYW1lOiJsdWNpZGU6a2FuYmFuIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkJvYXJkIHZpZXciKSwiYWN0aW9uIil9XSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5wcm9qZWN0cyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0OmhvdmVyIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwogICAgICAgIH0KICAgICAgICAucHJvamVjdCBoMyB7IGNvbG9yOiAjZmFmYWZhOyBtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNnB4OyB9CiAgICAgICAgLnByb2plY3QgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAgIC5iYWRnZSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTQ1MzJkOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5Qcm9qZWN0czwvaDE+CiAgICAgIDxkaXYgY2xhc3M9InByb2plY3RzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Gcm9udGVuZCBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0LWJhc2VkIGRhc2hib2FyZCBhcHBsaWNhdGlvbjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5BUEkgU2VydmVyIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5Ob2RlLmpzIFJFU1QgQVBJIGJhY2tlbmQ8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+TW9iaWxlIEFwcCA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+UmVhY3QgTmF0aXZlIGlPUy9BbmRyb2lkIGFwcDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Eb2N1bWVudGF0aW9uPC9oMz4KICAgICAgICAgIDxwPlRlY2huaWNhbCBkb2N1bWVudGF0aW9uIHNpdGU8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWF9KSgpLEYwbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tdGFza3MtdmlldyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vVGFza3NWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bWcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxXZChhLHQpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUYXNrcyIsZ3JvdXBzOlt7bmFtZToiVmlld3MiLGljb25OYW1lOiJsdWNpZGU6ZXllIixpdGVtczpbe2tleToiQWxsIFRhc2tzIixpY29uTmFtZToibGlzdCIsYmFkZ2U6MTIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbGwiKSwiYWN0aW9uIil9LHtrZXk6IlRvZGF5IixpY29uTmFtZToiY2FsZW5kYXIiLGJhZGdlOjMsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJUb2RheSIpLCJhY3Rpb24iKX0se2tleToiVXBjb21pbmciLGljb25OYW1lOiJjbG9jayIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJVcGNvbWluZyIpLCJhY3Rpb24iKX0se2tleToiQ29tcGxldGVkIixpY29uTmFtZToiY2hlY2tDaXJjbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIiksImFjdGlvbiIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJQcmlvcml0eSJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJQcmlvcml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpmbGFnIixvcHRpb25zOlt7a2V5OiJoaWdoIixsYWJlbDoiSGlnaCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmFsZXJ0Q2lyY2xlIn0se2tleToibWVkaXVtIixsYWJlbDoiTWVkaXVtIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6bWludXNDaXJjbGUifSx7a2V5OiJsb3ciLGxhYmVsOiJMb3ciLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjaXJjbGUifV0sb25DaGFuZ2U6aShsPT5jb25zb2xlLmxvZygiUHJpb3JpdHkgZmlsdGVyOiIsbCksIm9uQ2hhbmdlIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6Ik9wdGlvbnMifSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgU3VidGFza3MiLGljb25OYW1lOiJsdWNpZGU6bGlzdFRyZWUiLGFjdGl2ZTohMCxvblRvZ2dsZTppKGw9PmNvbnNvbGUubG9nKCJTaG93IHN1YnRhc2tzOiIsbCksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGFjdGl2ZTohMSxvblRvZ2dsZTppKGw9PmNvbnNvbGUubG9nKCJTaG93IGNvbXBsZXRlZDoiLGwpLCJvblRvZ2dsZSIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFRhc2siLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJBZGQgbmV3IHRhc2siKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IFRhc2tzIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJJbXBvcnQgdGFza3MiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJDbGVhciBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJEZWxldGUgYWxsIGNvbXBsZXRlZCB0YXNrcz8iLGFjdGlvbjppKCgpPT5hbGVydCgiQ2xlYXJlZCBjb21wbGV0ZWQgdGFza3MiKSwiYWN0aW9uIil9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkxpc3QiKSwiYWN0aW9uIil9LHtrZXk6IkNhbGVuZGFyIixpY29uTmFtZToibHVjaWRlOmNhbGVuZGFyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkNhbGVuZGFyIiksImFjdGlvbiIpfV0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAudGFzay1saXN0IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC50YXNrIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM1MjUyNTI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC50YXNrLXRleHQgeyBjb2xvcjogI2ZhZmFmYTsgZmxleDogMTsgfQogICAgICAgIC5kdWUtZGF0ZSB7IGNvbG9yOiAjNzM3MzczOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAucHJpb3JpdHkgewogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLnByaW9yaXR5LmhpZ2ggeyBiYWNrZ3JvdW5kOiAjNDUwYTBhOyBjb2xvcjogI2Y4NzE3MTsgfQogICAgICAgIC5wcmlvcml0eS5tZWRpdW0geyBiYWNrZ3JvdW5kOiAjNDUxYTAzOyBjb2xvcjogI2ZiYmYyNDsgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+VGFza3M8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJ0YXNrLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+UmV2aWV3IHB1bGwgcmVxdWVzdCAjNDI8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvZGF5PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IGhpZ2giPkhpZ2g8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5VcGRhdGUgZG9jdW1lbnRhdGlvbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9tb3Jyb3c8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgbWVkaXVtIj5NZWRpdW08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5Xcml0ZSB1bml0IHRlc3RzPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5EZWMgMjA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWF9KSgpLEgzYT1pKCgpPT57bGV0IHM9e2JyYW5kaW5nOntsb2dvSWNvbjoibHVjaWRlOmJveCIsbG9nb1RleHQ6IkFjbWUgQXBwIn0sYXBwQmFyOnttZW51SXRlbXM6W3tuYW1lOiJGaWxlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixzaG9ydGN1dDoiQ21kK04iLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4uLi4iLHNob3J0Y3V0OiJDbWQrTyIsaWNvbk5hbWU6ImZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIiksImFjdGlvbiIpfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Im15LWFwcCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gbXktYXBwIiksImFjdGlvbiIpfSx7bmFtZToiY29tcG9uZW50LWxpYiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gY29tcG9uZW50LWxpYiIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUgQWxsIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVW5kbyIpLCJhY3Rpb24iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWRvIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpLCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHNpZGViYXIiKSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgQWN0aXZpdHkgTG9nIixzaG9ydGN1dDoiQ21kK1NoaWZ0K0EiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgYWN0aXZpdHkiKSwiYWN0aW9uIil9XX0se25hbWU6IkhlbHAiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRG9jdW1lbnRhdGlvbiIsaWNvbk5hbWU6ImJvb2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2NzIiksImFjdGlvbiIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrLyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV0sYnJlYWRjcnVtYnM6IkRhc2hib2FyZCIsc2hvd1dpbmRvd0NvbnRyb2xzOiEwLHNob3dTZWFyY2g6ITAsdXNlcjp7bmFtZToiSmFuZSBTbWl0aCIsZW1haWw6ImphbmUuc21pdGhAZXhhbXBsZS5jb20iLHN0YXR1czoib25saW5lIn0scHJvZmlsZU1lbnVJdGVtczpbe25hbWU6IlByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQgU2V0dGluZ3MiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAgJiBTdXBwb3J0IixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkhlbHAiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfSx2aWV3czpbe2lkOiJkYXNoYm9hcmQiLG5hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixjb250ZW50OiJkZW1vLWRhc2hib2FyZC12aWV3Iixyb3V0ZToiZGFzaGJvYXJkIn0se2lkOiJwcm9qZWN0cyIsbmFtZToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixjb250ZW50OiJkZW1vLXByb2plY3RzLXZpZXciLHJvdXRlOiJwcm9qZWN0cyIsYmFkZ2U6M30se2lkOiJ0YXNrcyIsbmFtZToiVGFza3MiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGNvbnRlbnQ6ImRlbW8tdGFza3MtdmlldyIscm91dGU6InRhc2tzIixiYWRnZToxMn0se2lkOiJzZXR0aW5ncyIsbmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGNvbnRlbnQ6ImRlbW8tc2V0dGluZ3MtdmlldyIscm91dGU6InNldHRpbmdzLzpzZWN0aW9uPyJ9XSxtYWluTWVudTp7c2VjdGlvbnM6W3tuYW1lOiJNYWluIix2aWV3czpbImRhc2hib2FyZCJdfSx7bmFtZToiV29ya3NwYWNlIix2aWV3czpbInByb2plY3RzIiwidGFza3MiXX1dLGJvdHRvbUl0ZW1zOlsic2V0dGluZ3MiXX0sZGVmYXVsdFZpZXc6ImRhc2hib2FyZCIsYm90dG9tQmFyOnt2aXNpYmxlOiEwLHdpZGdldHM6W3tpZDoic3RhdHVzIixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixsYWJlbDoiU3lzdGVtIE9ubGluZSIsc3RhdHVzOiJzdWNjZXNzIix0b29sdGlwOiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiU3RhdHVzIGNsaWNrZWQiKSwib25DbGljayIpfSx7aWQ6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsbGFiZWw6IjMgbm90aWZpY2F0aW9ucyIsc3RhdHVzOiJ3YXJuaW5nIix0b29sdGlwOiJZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucyIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIiksIm9uQ2xpY2siKX0se2lkOiJ2ZXJzaW9uIixpY29uTmFtZToibHVjaWRlOmdpdEJyYW5jaCIsbGFiZWw6InYxLjIuMyIscG9zaXRpb246InJpZ2h0Iix0b29sdGlwOiJDdXJyZW50IHZlcnNpb24ifV0sYWN0aW9uczpbe2lkOiJ0ZXJtaW5hbCIsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsdG9vbHRpcDoiT3BlbiBUZXJtaW5hbCIscG9zaXRpb246InJpZ2h0IixvbkNsaWNrOmkoKCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCBjbGlja2VkIiksIm9uQ2xpY2siKX1dfSxvblZpZXdDaGFuZ2U6aSgoYSxyKT0+e2NvbnNvbGUubG9nKGBWaWV3IGNoYW5nZWQgdG86ICR7YX0gKCR7ci5uYW1lfSlgKX0sIm9uVmlld0NoYW5nZSIpLG9uU2VhcmNoOmkoYT0+e2NvbnNvbGUubG9nKCJTZWFyY2ggcXVlcnk6IixhKX0sIm9uU2VhcmNoIil9LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9ImRlbW8tY29udGFpbmVyIixlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aSIpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHQudXBkYXRlQ29tcGxldGUsdC5jb25maWd1cmUocyksc2V0VGltZW91dCgoKT0+e3QuYWN0aXZpdHlMb2cuYWRkTWFueShbe3R5cGU6ImxvZ2luIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOidjcmVhdGVkIHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn1dKX0sNTAwKSx0LnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoYT0+e2NvbnNvbGUubG9nKCJWaWV3IGNoYW5nZWQgZXZlbnQ6IixhKSx0LnNldEJyZWFkY3J1bWJzKGEudmlldy5uYW1lKX0pLHQudmlld0xpZmVjeWNsZSQuc3Vic2NyaWJlKGE9Pntjb25zb2xlLmxvZygiTGlmZWN5Y2xlIGV2ZW50OiIsYS50eXBlLGEudmlld0lkKX0pLHNldFRpbWVvdXQoKCk9Pnt0LnNldE1haW5NZW51QmFkZ2UoInRhc2tzIiwxNSksdC5hY3Rpdml0eUxvZy5hZGQoe3R5cGU6InVwZGF0ZSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJuZXcgdGFza3MgYWRkZWQifSl9LDVlMyl9LDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgJHtlfQogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHFYLF9pdD1nKCgpPT57cGUoKTtxWD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaWV3UmVnaXN0cnkiKX12aWV3cz1uZXcgTWFwO2luc3RhbmNlcz1uZXcgTWFwO2N1cnJlbnRWaWV3SWQ9bnVsbDthcHB1aT1udWxsO3NldEFwcHVpUmVmKGUpe3RoaXMuYXBwdWk9ZX1yZWdpc3RlcihlKXt0aGlzLnZpZXdzLmhhcyhlLmlkKSYmY29uc29sZS53YXJuKGBWaWV3IHdpdGggaWQgIiR7ZS5pZH0iIGFscmVhZHkgcmVnaXN0ZXJlZC4gT3ZlcndyaXRpbmcuYCksdGhpcy52aWV3cy5zZXQoZS5pZCxlKX1yZWdpc3RlckFsbChlKXtlLmZvckVhY2godD0+dGhpcy5yZWdpc3Rlcih0KSl9Z2V0KGUpe3JldHVybiB0aGlzLnZpZXdzLmdldChlKX1nZXRWaWV3SWRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy5rZXlzKCkpfWdldEFsbCgpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudmlld3MudmFsdWVzKCkpfWdldFJvdXRlKGUpe2xldCB0PXRoaXMudmlld3MuZ2V0KGUpO3JldHVybiB0Py5yb3V0ZXx8dD8uaWR8fCIifWZpbmRCeVJvdXRlKGUpe2ZvcihsZXQgdCBvZiB0aGlzLnZpZXdzLnZhbHVlcygpKXtsZXQgYT10LnJvdXRlfHx0LmlkLHI9dGhpcy5tYXRjaFJvdXRlKGEsZSk7aWYociE9PW51bGwpcmV0dXJue3ZpZXc6dCxwYXJhbXM6cn19fW1hdGNoUm91dGUoZSx0KXtsZXQgYT1lLnNwbGl0KCIvIikscj10LnNwbGl0KCIvIik7aWYoYS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXS5lbmRzV2l0aCgiPyIpKXtpZihyLmxlbmd0aDxhLmxlbmd0aC0xfHxyLmxlbmd0aD5hLmxlbmd0aClyZXR1cm4gbnVsbH1lbHNlIGlmKGEubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IG89e307Zm9yKGxldCBsPTA7bDxhLmxlbmd0aDtsKyspe2xldCBwPWFbbF0sZD1wLmVuZHNXaXRoKCI/Iik7aWYoZCYmKHA9cC5zbGljZSgwLC0xKSkscC5zdGFydHNXaXRoKCI6Iikpe2xldCB1PXAuc2xpY2UoMSk7aWYocltsXSE9PXZvaWQgMClvW3VdPXJbbF07ZWxzZSBpZighZClyZXR1cm4gbnVsbH1lbHNlIGlmKHJbbF0hPT1wKXJldHVybiBudWxsfXJldHVybiBvfWFzeW5jIGNhbkxlYXZlQ3VycmVudFZpZXcoKXtpZighdGhpcy5jdXJyZW50Vmlld0lkKXJldHVybiEwO2xldCBlPXRoaXMuaW5zdGFuY2VzLmdldCh0aGlzLmN1cnJlbnRWaWV3SWQpO2lmKCFlKXJldHVybiEwO2xldCB0PWU7cmV0dXJuIHR5cGVvZiB0LmNhbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiI/YXdhaXQgdC5jYW5EZWFjdGl2YXRlKCk6ITB9YXN5bmMgYWN0aXZhdGVWaWV3KGUsdCxhKXtsZXQgcj10aGlzLnZpZXdzLmdldChlKTtpZighcilyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDtsZXQgbj1yLmNhY2hlIT09ITE7dGhpcy5jdXJyZW50Vmlld0lkJiZ0aGlzLmN1cnJlbnRWaWV3SWQhPT1lJiZhd2FpdCB0aGlzLmRlYWN0aXZhdGVWaWV3KHRoaXMuY3VycmVudFZpZXdJZCk7bGV0IG89bj90aGlzLmluc3RhbmNlcy5nZXQoZSk6dm9pZCAwO2lmKG8pby5zdHlsZS5kaXNwbGF5PSIiO2Vsc2V7aWYobz1hd2FpdCB0aGlzLmNyZWF0ZVZpZXdFbGVtZW50KHIpLCFvKXJldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGVsZW1lbnQgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDt0LmFwcGVuZENoaWxkKG8pLG4mJnRoaXMuaW5zdGFuY2VzLnNldChlLG8pfXJldHVybiB0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxhd2FpdCB0aGlzLmNhbGxPbkFjdGl2YXRlKG8sZSxhKSxvfWFzeW5jIGRlYWN0aXZhdGVWaWV3KGUpe2xldCB0PXRoaXMuaW5zdGFuY2VzLmdldChlKTtpZighdClyZXR1cm47bGV0IGE9dDt0eXBlb2YgYS5vbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiImJmF3YWl0IGEub25EZWFjdGl2YXRlKCksdC5zdHlsZS5kaXNwbGF5PSJub25lIn1hc3luYyBjcmVhdGVWaWV3RWxlbWVudChlKXtsZXQgdD1lLmNvbnRlbnQ7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiImJiEodC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkmJnQuY29uc3RydWN0b3IubmFtZT09PSJBc3luY0Z1bmN0aW9uIil0cnl7dD1hd2FpdCB0KCl9Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGFzeW5jIGNvbnRlbnQgZm9yIHZpZXcgIiR7ZS5pZH0iOmAsciksbnVsbH1sZXQgYTtpZih0eXBlb2YgdD09InN0cmluZyIpYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpaWYodC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClhPW5ldyB0O2Vsc2V7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixyLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IG49dCgpO2gxKG4sciksYT1yfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2UuaWR9ImApLG51bGw7cmV0dXJuIGEuZGF0YXNldC52aWV3SWQ9ZS5pZCxhfWFzeW5jIGNhbGxPbkFjdGl2YXRlKGUsdCxhKXtsZXQgcj1lO2lmKHR5cGVvZiByLm9uQWN0aXZhdGU9PSJmdW5jdGlvbiIpe2xldCBuPXthcHB1aTp0aGlzLmFwcHVpLHZpZXdJZDp0LHBhcmFtczphfTthd2FpdCByLm9uQWN0aXZhdGUobil9fXJlbmRlclZpZXcoZSx0KXtsZXQgYT10aGlzLnZpZXdzLmdldChlKTtpZighYSlyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDt0LmlubmVySFRNTD0iIjtsZXQgcixuPWEuY29udGVudDtpZih0eXBlb2Ygbj09InN0cmluZyIpcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KG4pO2Vsc2UgaWYodHlwZW9mIG49PSJmdW5jdGlvbiIpaWYobi5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClyPW5ldyBuO2Vsc2V7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixvLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IGw9bigpO2gxKGwsbykscj1vfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2V9ImApLG51bGw7cmV0dXJuIHQuYXBwZW5kQ2hpbGQociksdGhpcy5pbnN0YW5jZXMuc2V0KGUsciksdGhpcy5jdXJyZW50Vmlld0lkPWUscn1nZXRDdXJyZW50Vmlld0lkKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZH1nZXRJbnN0YW5jZShlKXtyZXR1cm4gdGhpcy5pbnN0YW5jZXMuZ2V0KGUpfWNsZWFySW5zdGFuY2UoZSl7bGV0IHQ9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHRoaXMuaW5zdGFuY2VzLmRlbGV0ZShlKSx0aGlzLmN1cnJlbnRWaWV3SWQ9PT1lJiYodGhpcy5jdXJyZW50Vmlld0lkPW51bGwpfWNsZWFySW5zdGFuY2VzKCl7Zm9yKGxldFtlLHRdb2YgdGhpcy5pbnN0YW5jZXMpdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk7dGhpcy5pbnN0YW5jZXMuY2xlYXIoKSx0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbH11bnJlZ2lzdGVyKGUpe3JldHVybiB0aGlzLmNsZWFySW5zdGFuY2UoZSksdGhpcy52aWV3cy5kZWxldGUoZSl9Y2xlYXIoKXt0aGlzLnZpZXdzLmNsZWFyKCksdGhpcy5jbGVhckluc3RhbmNlcygpfWhhcyhlKXtyZXR1cm4gdGhpcy52aWV3cy5oYXMoZSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy52aWV3cy5zaXplfX19KTt2YXIgajNhLFYzYT1nKCgpPT57cGUoKTtqM2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1tYWlubWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tbWFpbm1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgIC5sb2dvSWNvbj0keyJsdWNpZGU6Ym94In0KICAgICAgLmxvZ29UZXh0PSR7IkFjbWUgQXBwIn0KICAgICAgLm1lbnVHcm91cHM9JHtbe3RhYnM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRhc2hib2FyZCIpLCJhY3Rpb24iKX0se2tleToiSW5ib3giLGljb25OYW1lOiJsdWNpZGU6aW5ib3giLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSW5ib3giKSwiYWN0aW9uIil9XX0se25hbWU6IldvcmtzcGFjZSIsdGFiczpbe2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlByb2plY3RzIiksImFjdGlvbiIpfSx7a2V5OiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJUYXNrcyIpLCJhY3Rpb24iKX0se2tleToiRG9jdW1lbnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50cyIpLCJhY3Rpb24iKX1dfSx7bmFtZToiQW5hbHl0aWNzIix0YWJzOlt7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIiksImFjdGlvbiIpfSx7a2V5OiJJbnNpZ2h0cyIsaWNvbk5hbWU6Imx1Y2lkZTpsaWdodGJ1bGIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSW5zaWdodHMiKSwiYWN0aW9uIil9XX1dfQogICAgICAuYm90dG9tVGFicz0ke1t7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkhlbHAiKSwiYWN0aW9uIil9XX0KICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEJoLEFuLFUzYSxNaXQ9ZygoKT0+e3BvKCk7bWgoKTt6bigpO3BlKCk7b3IoKTtWM2EoKTtwdCgpO0JoPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxBbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVTNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1tYWlubWVudSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlNYWlubWVudSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpBcnJheX0pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woKV0sTz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sQmgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibG9nb0ljb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5sb2dvSWNvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmxvZ29JY29uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxCaCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJsb2dvVGV4dCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmxvZ29UZXh0LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MubG9nb1RleHQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLEJoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibWVudUdyb3VwcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm1lbnVHcm91cHMsImdldCIpLHNldDppKChTLEkpPT57Uy5tZW51R3JvdXBzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxCaCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImJvdHRvbVRhYnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5ib3R0b21UYWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuYm90dG9tVGFicz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksQmgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzImluIFMsImhhcyIpLGdldDppKFM9PlMudGFicywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLEJoKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkVGFiImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWRUYWIsImdldCIpLHNldDppKChTLEkpPT57Uy5zZWxlY3RlZFRhYj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksQmgodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbGxhcHNlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmNvbGxhcHNlZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksQmgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1qM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Bbih0aGlzLG8sIiIpO2dldCBsb2dvSWNvbigpe3JldHVybiB0aGlzLiNlfXNldCBsb2dvSWNvbihrKXt0aGlzLiNlPWt9I3Q9KEFuKHRoaXMsbCksQW4odGhpcyxkLCIiKSk7Z2V0IGxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ29UZXh0KGspe3RoaXMuI3Q9a30jYT0oQW4odGhpcyx1KSxBbih0aGlzLGIsW10pKTtnZXQgbWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNhfXNldCBtZW51R3JvdXBzKGspe3RoaXMuI2E9a30jcz0oQW4odGhpcyx2KSxBbih0aGlzLG0sW10pKTtnZXQgYm90dG9tVGFicygpe3JldHVybiB0aGlzLiNzfXNldCBib3R0b21UYWJzKGspe3RoaXMuI3M9a30jaT0oQW4odGhpcyxmKSxBbih0aGlzLE0sW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzKGspe3RoaXMuI2k9a30jcj0oQW4odGhpcyx6KSxBbih0aGlzLEMsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGVkVGFiKGspe3RoaXMuI3I9a30jbz0oQW4odGhpcyxfKSxBbih0aGlzLCQsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNlZChrKXt0aGlzLiNvPWt9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtYmcpOwogICAgICAgIC0tdG9vbHRpcC1mZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHotaW5kZXg6ICR7V3IuZml4ZWQuYXBwQmFyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAubG9nb1NlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29JY29uIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBNaWRkbGUgU2VjdGlvbiAoc2Nyb2xsYWJsZSkgKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAubWVudUdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnRhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYiAudGFiTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiLnNlbGVjdGVkVGFiOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAudGFiLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLnRhYi10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBCb3R0b20gU2VjdGlvbiAqLwogICAgICAuYm90dG9tU2VjdGlvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7Uz0+e2thLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKFMsW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP3dgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/d2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChrPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke2submFtZT93YDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke2submFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtrLml0ZW1zLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKGs9PnRoaXMucmVuZGVyVGFiKGspKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihrKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtrPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihrKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtrLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtrLmtleX08L3NwYW4+CiAgICAgICAgJHtrLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtrLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtrLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtrLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoUz0+Uy5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKGspe3RoaXMuc2VsZWN0ZWRUYWI9ayx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjprfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBrPXRoaXMuZ2V0QWxsVGFicygpO2subGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKGtbMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxBbih0aGlzLEUpfXN0YXRpY3tBbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgVzNhLEczYT1nKCgpPT57cGUoKTtXM2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGJhY2tncm91bmQ6ICMwZjBmMGY7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBoMyB7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICBtYXJnaW4tdG9wOiAwOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBjb2RlIHsKICAgICAgYmFja2dyb3VuZDogIzI3MjcyYTsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHVsIHsKICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAuaGVhZGluZz0keyJQcm9qZWN0cyJ9CiAgICAgIC5ncm91cHM9JHtbe25hbWU6Ik5hdmlnYXRpb24iLGljb25OYW1lOiJsdWNpZGU6Y29tcGFzcyIsaXRlbXM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIGNsaWNrZWQiKSwiYWN0aW9uIiksYmFkZ2U6MyxiYWRnZVZhcmlhbnQ6Indhcm5pbmcifSx7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMgY2xpY2tlZCIpLCJhY3Rpb24iKSxiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MifSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBOZXcgY2xpY2tlZCEiKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIkltcG9ydCBEYXRhIGNsaWNrZWQhIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiRGVsZXRlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIGl0ZW1zPyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJEZWxldGVkISIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiU3RhdHVzIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFjdGl2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja0NpcmNsZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOmkocz0+Y29uc29sZS5sb2coIlNob3cgQWN0aXZlOiIscyksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aShzPT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLHMpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6aShzPT5jb25zb2xlLmxvZygiU2VsZWN0ZWQgY2F0ZWdvcmllczoiLHMpLCJvbkNoYW5nZSIpfV19LHtuYW1lOiJSZXNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6Ym9va09wZW4iLGNvbGxhcHNlZDohMCxpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IkRvY3VtZW50YXRpb24ifSx7dHlwZToibGluayIsa2V5OiJBUEkgUmVmZXJlbmNlIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixocmVmOiJodHRwczovL2FwaS5leGFtcGxlLmNvbS9kb2NzIn0se3R5cGU6ImxpbmsiLGtleToiVXNlciBHdWlkZSIsaWNvbk5hbWU6Imx1Y2lkZTpib29rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZ3VpZGUifSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdXBwb3J0In0se3R5cGU6ImxpbmsiLGtleToiSGVscCBDZW50ZXIiLGljb25OYW1lOiJsdWNpZGU6aGVscENpcmNsZSIsaHJlZjoiL2hlbHAiLGV4dGVybmFsOiExfSx7dHlwZToibGluayIsa2V5OiJHaXRIdWIgSXNzdWVzIixpY29uTmFtZToibHVjaWRlOmdpdGh1YiIsaHJlZjoiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvaXNzdWVzIn1dfV19CiAgICAgIEBpdGVtLXNlbGVjdD0ke3M9PmNvbnNvbGUubG9nKCJUYWIgc2VsZWN0ZWQ6IixzLmRldGFpbCl9CiAgICAgIEBhY3Rpb24tY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiQWN0aW9uIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgIEBmaWx0ZXItdG9nZ2xlPSR7cz0+Y29uc29sZS5sb2coIkZpbHRlciB0b2dnbGVkOiIscy5kZXRhaWwpfQogICAgICBAbXVsdGlmaWx0ZXItY2hhbmdlPSR7cz0+Y29uc29sZS5sb2coIk11bHRpLWZpbHRlciBjaGFuZ2VkOiIscy5kZXRhaWwpfQogICAgICBAbGluay1jbGljaz0ke3M9PmNvbnNvbGUubG9nKCJMaW5rIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICA8aDM+U2Vjb25kYXJ5IE1lbnUgRGVtbzwvaDM+CiAgICAgIDxwPlRoaXMgZGVtbyBzaG93Y2FzZXMgYWxsIDggaXRlbSB0eXBlczo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+PGNvZGU+dGFiPC9jb2RlPiAtIFNlbGVjdGFibGUgaXRlbXMgKE5hdmlnYXRpb24gZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiAtIEJsdWUgYWN0aW9ucyAoQWN0aW9ucyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IHdpdGggPGNvZGU+dmFyaWFudDogJ2Rhbmdlcic8L2NvZGU+IC0gUmVkIGRhbmdlciBhY3Rpb248L2xpPgogICAgICAgIDxsaT48Y29kZT5maWx0ZXI8L2NvZGU+IC0gQ2hlY2tib3ggdG9nZ2xlcyAoRmlsdGVycyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5tdWx0aUZpbHRlcjwvY29kZT4gLSBDb2xsYXBzaWJsZSBtdWx0aS1zZWxlY3QgKENhdGVnb3JpZXMpPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZGl2aWRlcjwvY29kZT4gLSBWaXN1YWwgc2VwYXJhdG9yczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmhlYWRlcjwvY29kZT4gLSBTZWN0aW9uIGxhYmVsczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmxpbms8L2NvZGU+IC0gRXh0ZXJuYWwvaW50ZXJuYWwgbGlua3MgKFJlc291cmNlcyBncm91cCk8L2xpPgogICAgICA8L3VsPgogICAgICA8cD5UcnkgdGhlIGNvbGxhcHNlIHRvZ2dsZSBvbiB0aGUgbGVmdCBlZGdlITwvcD4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGd1LFBvLEszYSx6aXQ9ZygoKT0+e3BvKCk7bWgoKTtvcigpO1VhKCk7cGUoKTtHM2EoKTtwdCgpO2d1PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxQbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSzNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W107dmFyIEk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVNlY29uZGFyeW1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOkFycmF5fSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpPYmplY3R9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sZ3UodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJoZWFkaW5nImluIFIsImhhcyIpLGdldDppKFI9PlIuaGVhZGluZywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmhlYWRpbmc9S30sInNldCIpfSxtZXRhZGF0YTpQfSxvLGwpLGd1KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJncm91cHMiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5ncm91cHMsImdldCIpLHNldDppKChSLEspPT57Ui5ncm91cHM9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLGd1KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VsZWN0aW9uT3B0aW9ucyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNlbGVjdGlvbk9wdGlvbnMsImdldCIpLHNldDppKChSLEspPT57Ui5zZWxlY3Rpb25PcHRpb25zPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxndSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VsZWN0ZWRJdGVtImluIFIsImhhcyIpLGdldDppKFI9PlIuc2VsZWN0ZWRJdGVtLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc2VsZWN0ZWRJdGVtPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbSxmKSxndSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZEdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY29sbGFwc2VkR3JvdXBzImluIFIsImhhcyIpLGdldDppKFI9PlIuY29sbGFwc2VkR3JvdXBzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuY29sbGFwc2VkR3JvdXBzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sTSx6KSxndSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZE11bHRpRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY29sbGFwc2VkTXVsdGlGaWx0ZXJzImluIFIsImhhcyIpLGdldDppKFI9PlIuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxndSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlckNvdW50ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InJlbmRlckNvdW50ZXIiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5yZW5kZXJDb3VudGVyLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IucmVuZGVyQ291bnRlcj1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LCQsRSksZ3UodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+ImNvbGxhcHNlZCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmNvbGxhcHNlZD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGssUyksZ3UobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6UH0sbnVsbCx0KSxJPWE9ZS52YWx1ZSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX1zdGF0aWMgZGVtbz1XM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Qbyh0aGlzLG8sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKFApe3RoaXMuI2U9UH0jdD0oUG8odGhpcyxsKSxQbyh0aGlzLGQsW10pKTtnZXQgZ3JvdXBzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGdyb3VwcyhQKXt0aGlzLiN0PVB9I2E9KFBvKHRoaXMsdSksUG8odGhpcyxiLFtdKSk7Z2V0IHNlbGVjdGlvbk9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0aW9uT3B0aW9ucyhQKXt0aGlzLiNhPVB9I3M9KFBvKHRoaXMsdiksUG8odGhpcyxtLG51bGwpKTtnZXQgc2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkSXRlbShQKXt0aGlzLiNzPVB9I2k9KFBvKHRoaXMsZiksUG8odGhpcyxNLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkR3JvdXBzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbGxhcHNlZEdyb3VwcyhQKXt0aGlzLiNpPVB9I3I9KFBvKHRoaXMseiksUG8odGhpcyxDLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkTXVsdGlGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycyhQKXt0aGlzLiNyPVB9I289KFBvKHRoaXMsXyksUG8odGhpcywkLDApKTtnZXQgcmVuZGVyQ291bnRlcigpe3JldHVybiB0aGlzLiNvfXNldCByZW5kZXJDb3VudGVyKFApe3RoaXMuI289UH0jbj0oUG8odGhpcyxFKSxQbyh0aGlzLGssITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbGxhcHNlZChQKXt0aGlzLiNuPVB9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQ6IDI0MHB4OwogICAgICAgIC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS1zaWRlYmFyLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgLS1zaWRlYmFyLWZnOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICAtLXNpZGViYXItZmctbXV0ZWQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgLS1zaWRlYmFyLWZnLWFjdGl2ZTogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIC0tc2lkZWJhci1ib3JkZXI6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgLS1zaWRlYmFyLWhvdmVyOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICAtLXNpZGViYXItYWN0aXZlOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgLS1zaWRlYmFyLWFjY2VudDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIC0tdG9vbHRpcC1iZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWJnKTsKICAgICAgICAtLXRvb2x0aXAtZmc6IHZhcigtLWRlZXMtY29sb3ItdG9vbHRpcC1mZyk7CgogICAgICAgIC8qIEJhZGdlIGNvbG9ycyAqLwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1iZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICAtLWJhZGdlLWRlZmF1bHQtZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1mZyk7CiAgICAgICAgLS1iYWRnZS1zdWNjZXNzLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtYmcpOwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1mZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgICAtLWJhZGdlLXdhcm5pbmctYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgLS1iYWRnZS13YXJuaW5nLWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICAgIC0tYmFkZ2UtZXJyb3ItYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItYmcpOwogICAgICAgIC0tYmFkZ2UtZXJyb3ItZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwoKICAgICAgICAvKiBBY3Rpb24gY29sb3JzICovCiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeTogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICAgIC0tYWN0aW9uLXByaW1hcnktaG92ZXI6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzYwYTVmYSIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXI6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXItaG92ZXI6ICR7aC5iZFRoZW1lKCIjYjkxYzFjIiwiI2Y4NzE3MSIpfTsKCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1leHBhbmRlZCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iZyk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZCk7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTEycHg7CiAgICAgICAgdG9wOiAyNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGxhYmxlIE1lbnUgU2VjdGlvbiAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpob3ZlciB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIHBhZGRpbmc6IDdweCAxMXB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6bm90KC5jb2xsYXBzZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXdhcm0pOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtd2FybSk7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC13YXJtKTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLyogSGlkZSBncm91cCBoZWFkZXJzIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEdyb3VwIEl0ZW1zIENvbnRhaW5lciAqLwogICAgICAuZ3JvdXBJdGVtcyB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXJnaW4gMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBJdGVtcy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBBbHdheXMgc2hvdyBpdGVtcyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKHJlZ2FyZGxlc3Mgb2YgZ3JvdXAgY29sbGFwc2Ugc3RhdGUpICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBJdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBNZW51IEl0ZW0gQmFzZSAqLwogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5LWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNywgOTksIDIzNSwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlcik7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlci1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjIwLCAzOCwgMzgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogRmlsdGVyIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAvKiBNdWx0aS1GaWx0ZXIgQ29udGFpbmVyICovCiAgICAgIC5tdWx0aUZpbHRlciB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLWNvdW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucyB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiBkZWVzLWljb24ub3B0aW9uLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKi8KICAgICAgLm1lbnVEaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51RGl2aWRlciB7CiAgICAgICAgbWFyZ2luOiA4cHggNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIvTGFiZWwgKi8KICAgICAgLm1lbnVIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA0cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUhlYWRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGluayBJdGVtICovCiAgICAgIC5tZW51SXRlbS5saW5rIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgbWVudSBpdGVtIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmZpbHRlci1jaGVja2JveCwKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tdWx0aUZpbHRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC5pdGVtLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLml0ZW0tdG9vbHRpcDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbTpob3ZlciAuaXRlbS10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOwogICAgICB9CgogICAgICAvKiBCYWRnZSBTdHlsZXMgKi8KICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMZWdhY3kgb3B0aW9ucyBjb250YWluZXIgKi8KICAgICAgLmxlZ2FjeU9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyIChsZWdhY3kpICovCiAgICAgIC5kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5ncm91cHMubGVuZ3RoPjA/dGhpcy5yZW5kZXJHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeU9wdGlvbnMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyR3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncm91cHMubWFwKFA9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9Imdyb3VwSGVhZGVyICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKFAubmFtZSk/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlR3JvdXAoUC5uYW1lKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJncm91cFRpdGxlIj4KICAgICAgICAgICAgICAke1AuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihQLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgJHtQLm5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBJdGVtcyAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhQLm5hbWUpPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICR7UC5pdGVtcy5tYXAoUj0+dGhpcy5yZW5kZXJJdGVtKFIsUCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJJdGVtKFAsUil7aWYoImhpZGRlbiJpbiBQJiZQLmhpZGRlbilyZXR1cm4gd2BgO3N3aXRjaCgidHlwZSJpbiBQP1AudHlwZToidGFiIil7Y2FzZSJhY3Rpb24iOnJldHVybiB0aGlzLnJlbmRlckFjdGlvbkl0ZW0oUCk7Y2FzZSJmaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlckZpbHRlckl0ZW0oUCk7Y2FzZSJtdWx0aUZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIHRoaXMucmVuZGVyRGl2aWRlcigpO2Nhc2UiaGVhZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJIZWFkZXIoUCk7Y2FzZSJsaW5rIjpyZXR1cm4gdGhpcy5yZW5kZXJMaW5rSXRlbShQKTtkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oUCxSKX19cmVuZGVyVGFiSXRlbShQLFIpe2xldCBLPXRoaXMuc2VsZWN0ZWRJdGVtPy5rZXk9PT1QLmtleSxWPVAuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSAke0s/InNlbGVjdGVkIjoiIn0gJHtWPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IVYmJnRoaXMuc2VsZWN0VGFiSXRlbShQLFIpfSIKICAgICAgICBAY29udGV4dG1lbnU9IiR7Vz0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShXLFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICAke1AuYmFkZ2UhPT12b2lkIDA/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke1AuYmFkZ2VWYXJpYW50fHwiZGVmYXVsdCJ9Ij4ke1AuYmFkZ2V9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtQLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25JdGVtKFApe2xldCBSPVAudmFyaWFudHx8InByaW1hcnkiLEs9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGFjdGlvbi0ke1J9ICR7Sz8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFLJiZ0aGlzLmhhbmRsZUFjdGlvbkNsaWNrKFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbHRlckl0ZW0oUCl7bGV0IFI9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGZpbHRlciAke1AuYWN0aXZlPyJhY3RpdmUiOiIifSAke1I/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hUiYmdGhpcy5oYW5kbGVGaWx0ZXJUb2dnbGUoUCl9IgogICAgICA+CiAgICAgICAgJHtQLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7UC5rZXl9PC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1jaGVja2JveCAke1AuYWN0aXZlPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgJHtQLmFjdGl2ZT93YDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7UC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFApe2xldCBSPXRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLmhhcyhQLmtleSksSz1QLm9wdGlvbnMuZmlsdGVyKFY9PlYuY2hlY2tlZCkubGVuZ3RoO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlciI+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLWhlYWRlciAke1I/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZU11bHRpRmlsdGVyKFAua2V5KX0iCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLXRpdGxlIj4KICAgICAgICAgICAgJHtQLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke1Aua2V5fQogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgJHtLPjA/d2A8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItY291bnQiPiR7S308L3NwYW4+YDoiIn0KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9ucyAke1I/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICR7UC5vcHRpb25zLm1hcChWPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbiIKICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuaGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoUCxWLmtleSl9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWNoZWNrYm94ICR7Vi5jaGVja2VkPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgICAgICAgJHtWLmNoZWNrZWQ/d2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke1YuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIGNsYXNzPSJvcHRpb24taWNvbiIgLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFYuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8c3Bhbj4ke1YubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGl2aWRlcigpe3JldHVybiB3YDxkaXYgY2xhc3M9Im1lbnVEaXZpZGVyIj48L2Rpdj5gfXJlbmRlckhlYWRlcihQKXtyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51SGVhZGVyIj4ke1AubGFiZWx9PC9kaXY+YH1yZW5kZXJMaW5rSXRlbShQKXtsZXQgUj1QLmV4dGVybmFsPz9QLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpLEs9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGxpbmsgJHtLPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUsmJnRoaXMuaGFuZGxlTGlua0NsaWNrKFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICAke1I/d2A8ZGVlcy1pY29uIGNsYXNzPSJleHRlcm5hbC1pY29uIiAuaWNvbj0iJHsibHVjaWRlOmV4dGVybmFsTGluayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7UC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGVnYWN5T3B0aW9ucygpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsZWdhY3lPcHRpb25zIj4KICAgICAgICAke3RoaXMuc2VsZWN0aW9uT3B0aW9ucy5tYXAoUD0+e2lmKCJkaXZpZGVyImluIFAmJlAuZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj5gO2xldCBSPVAsSz17a2V5OlIua2V5LGljb25OYW1lOlIuaWNvbk5hbWUsYWN0aW9uOlIuYWN0aW9uLGJhZGdlOlIuYmFkZ2UsYmFkZ2VWYXJpYW50OlIuYmFkZ2VWYXJpYW50fTtyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKEspfSl9CiAgICAgIDwvZGl2PgogICAgYH1ub3JtYWxpemVJY29uKFApe3JldHVybiBQLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9QOmBsdWNpZGU6JHtQfWB9dG9nZ2xlR3JvdXAoUCl7bGV0IFI9bmV3IFNldCh0aGlzLmNvbGxhcHNlZEdyb3Vwcyk7Ui5oYXMoUCk/Ui5kZWxldGUoUCk6Ui5hZGQoUCksdGhpcy5jb2xsYXBzZWRHcm91cHM9Un10b2dnbGVNdWx0aUZpbHRlcihQKXtsZXQgUj1uZXcgU2V0KHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzKTtSLmhhcyhQKT9SLmRlbGV0ZShQKTpSLmFkZChQKSx0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1SfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXNlbGVjdFRhYkl0ZW0oUCxSKXt0aGlzLnNlbGVjdGVkSXRlbT1QLFAuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06UCxncm91cDpSfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGhhbmRsZUFjdGlvbkNsaWNrKFApe1AuY29uZmlybU1lc3NhZ2UmJiF3aW5kb3cuY29uZmlybShQLmNvbmZpcm1NZXNzYWdlKXx8KGF3YWl0IFAuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOntpdGVtOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZUZpbHRlclRvZ2dsZShQKXtsZXQgUj0hUC5hY3RpdmU7UC5hY3RpdmU9UixQLm9uVG9nZ2xlKFIpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlci10b2dnbGUiLHtkZXRhaWw6e2l0ZW06UCxhY3RpdmU6Un0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShQLFIpe2xldCBLPVAub3B0aW9ucy5maW5kKFc9Plcua2V5PT09Uik7SyYmKEsuY2hlY2tlZD0hSy5jaGVja2VkKTtsZXQgVj1QLm9wdGlvbnMuZmlsdGVyKFc9PlcuY2hlY2tlZCkubWFwKFc9Plcua2V5KTtQLm9uQ2hhbmdlKFYpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm11bHRpZmlsdGVyLWNoYW5nZSIse2RldGFpbDp7aXRlbTpQLHNlbGVjdGVkS2V5czpWfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUxpbmtDbGljayhQKXtQLmV4dGVybmFsPz9QLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpP3dpbmRvdy5vcGVuKFAuaHJlZiwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpOndpbmRvdy5sb2NhdGlvbi5ocmVmPVAuaHJlZix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsaW5rLWNsaWNrIix7ZGV0YWlsOntpdGVtOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGV4dE1lbnUoUCxSKXtrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhQLFt7bmFtZToiVmlldyBkZXRhaWxzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksaWNvbk5hbWU6Imx1Y2lkZTpleWUifSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIn1dKX1hc3luYyBmaXJzdFVwZGF0ZWQoUCl7aWYoYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKFApLHRoaXMuZ3JvdXBzLmxlbmd0aD4wKXtsZXQgUj1uZXcgU2V0LEs9bmV3IFNldDtpZih0aGlzLmdyb3Vwcy5mb3JFYWNoKFY9PntWLmNvbGxhcHNlZCYmUi5hZGQoVi5uYW1lKSxWLml0ZW1zLmZvckVhY2goVz0+e2lmKCJ0eXBlImluIFcmJlcudHlwZT09PSJtdWx0aUZpbHRlciIpe2xldCBtZT1XO21lLmNvbGxhcHNlZCYmSy5hZGQobWUua2V5KX19KX0pLHRoaXMuY29sbGFwc2VkR3JvdXBzPVIsdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9SywhdGhpcy5zZWxlY3RlZEl0ZW0pZm9yKGxldCBWIG9mIHRoaXMuZ3JvdXBzKWZvcihsZXQgVyBvZiBWLml0ZW1zKXtsZXQgbWU9InR5cGUiaW4gVz9XLnR5cGU6InRhYiI7aWYobWU9PT0idGFiInx8bWU9PT12b2lkIDApe2xldCBCPVc7aWYoIUIuZGlzYWJsZWQpe3RoaXMuc2VsZWN0VGFiSXRlbShCLFYpO3JldHVybn19fX1lbHNlIGlmKHRoaXMuc2VsZWN0aW9uT3B0aW9ucy5sZW5ndGg+MCl7bGV0IFI9dGhpcy5zZWxlY3Rpb25PcHRpb25zLmZpbmQoSz0+ISgiZGl2aWRlciJpbiBLKSk7aWYoUiYmIXRoaXMuc2VsZWN0ZWRJdGVtKXtsZXQgSz17a2V5OlIua2V5LGljb25OYW1lOlIuaWNvbk5hbWUsYWN0aW9uOlIuYWN0aW9ufTt0aGlzLnNlbGVjdFRhYkl0ZW0oSyl9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUG8odGhpcyxTKX1zdGF0aWN7UG8oYSx0KX19O3JldHVybiBJPWF9KSgpfSk7dmFyIGdnLFVjLF91byxNdW8sWTNhLFozYT1nKCgpPT57cGUoKTttaCgpO2dnPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxVYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sX3VvPSgoKT0+e2xldCBzPVtuZSgiZGVtby1jbG9zZWFibGUtdGFicyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vQ2xvc2VhYmxlVGFicyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxnZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InRhYnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di50YWJzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YudGFicz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZ2codGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJ0YWJDb3VudGVyImluIHYsImhhcyIpLGdldDppKHY9PnYudGFiQ291bnRlciwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnRhYkNvdW50ZXI9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGdnKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9I2U9VWModGhpcyxvLFt7a2V5OiJNYWluIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWFpbiBjbGlja2VkIiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoYil7dGhpcy4jZT1ifSN0PShVYyh0aGlzLGwpLFVjKHRoaXMsZCwwKSk7Z2V0IHRhYkNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGFiQ291bnRlcihiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTthZGRUYWIoKXt0aGlzLnRhYkNvdW50ZXIrKztsZXQgYj1gRG9jdW1lbnQgJHt0aGlzLnRhYkNvdW50ZXJ9YDt0aGlzLnRhYnM9Wy4uLnRoaXMudGFicyx7a2V5OmIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYCR7Yn0gY2xpY2tlZGApLCJhY3Rpb24iKSxjbG9zZWFibGU6ITAsb25DbG9zZTppKCgpPT50aGlzLnJlbW92ZVRhYihiKSwib25DbG9zZSIpfV19cmVtb3ZlVGFiKGIpe3RoaXMudGFicz10aGlzLnRhYnMuZmlsdGVyKHY9PnYua2V5IT09Yil9Y2xlYXJBbGwoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS10YWJzIik/LmNsZWFyKCksdGhpcy50YWJzPVtdLHRoaXMudGFiQ291bnRlcj0wfXJlbmRlcigpe2xldCBiPVt7aWQ6ImFkZCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+dGhpcy5hZGRUYWIoKSwiYWN0aW9uIiksdG9vbHRpcDoiTmV3IFRhYiJ9LHtpZDoiY2xlYXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aSgoKT0+dGhpcy5jbGVhckFsbCgpLCJhY3Rpb24iKSx0b29sdGlwOiJDbGVhciBBbGwgVGFicyJ9XTtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgIC5hY3Rpb25zUmlnaHQ9JHtifQogICAgICAgIEB0YWItY2xvc2U9JHt2PT50aGlzLnJlbW92ZVRhYih2LmRldGFpbC50YWIua2V5KX0KICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBDbGljayB0aGUgWCBidXR0b24gb24gdGFicyB0byBjbG9zZSB0aGVtLiBVc2UgdGhlICsgYnV0dG9uIHRvIGFkZCB0YWJzIGFuZCB0aGUgdHJhc2ggYnV0dG9uIHRvIGNsZWFyIGFsbC4KICAgICAgICA8YnI+Q3VycmVudCB0YWJzOiAke3RoaXMudGFicy5sZW5ndGh9CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVWModGhpcyx1KX1zdGF0aWN7VWMoYSx0KX19O3JldHVybiBjPWF9KSgpLE11bz0oKCk9PntsZXQgcz1bbmUoImRlbW8tYXV0b2hpZGUtdGFicyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vQXV0b0hpZGVUYWJzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0sZ2codGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ0YWJzImluIGYsImhhcyIpLGdldDppKGY9PmYudGFicywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRhYnM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLGdnKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImF1dG9IaWRlImluIGYsImhhcyIpLGdldDppKGY9PmYuYXV0b0hpZGUsImdldCIpLHNldDppKChmLHkpPT57Zi5hdXRvSGlkZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksZ2codGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InRocmVzaG9sZCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRocmVzaG9sZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksZ2cobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX0jZT1VYyh0aGlzLG8sW3trZXk6IlRhYiAxIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVGFiIDEiKSwiYWN0aW9uIil9LHtrZXk6IlRhYiAyIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVGFiIDIiKSwiYWN0aW9uIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhtKXt0aGlzLiNlPW19I3Q9KFVjKHRoaXMsbCksVWModGhpcyxkLCEwKSk7Z2V0IGF1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGF1dG9IaWRlKG0pe3RoaXMuI3Q9bX0jYT0oVWModGhpcyx1KSxVYyh0aGlzLGIsMSkpO2dldCB0aHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGhyZXNob2xkKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgZGVlcy1hcHB1aS10YWJzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAucGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAuY29udHJvbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTt0YWJDb3VudGVyPShVYyh0aGlzLHYpLDIpO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrLHRoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6YFRhYiAke3RoaXMudGFiQ291bnRlcn1gLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCksImFjdGlvbiIpfV19cmVtb3ZlTGFzdFRhYigpe3RoaXMudGFicy5sZW5ndGg+MCYmKHRoaXMudGFicz10aGlzLnRhYnMuc2xpY2UoMCwtMSkpfWNsZWFyVGFicygpe3RoaXMudGFicz1bXX1yZW5kZXIoKXtsZXQgbT10aGlzLmF1dG9IaWRlJiZ0aGlzLnRhYnMubGVuZ3RoPD10aGlzLnRocmVzaG9sZDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICR7bT93YDxzcGFuIGNsYXNzPSJwbGFjZWhvbGRlciI+VGFicyBoaWRkZW4gKCR7dGhpcy50YWJzLmxlbmd0aH0gdGFicyDiiaQgdGhyZXNob2xkICR7dGhpcy50aHJlc2hvbGR9KTwvc3Bhbj5gOndgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgICAgICAgIC5hdXRvSGlkZT0ke3RoaXMuYXV0b0hpZGV9CiAgICAgICAgICAgICAgLmF1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy50aHJlc2hvbGR9CiAgICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz5gfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkVGFiKCl9PisgQWRkIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTGFzdFRhYigpfT4tIFJlbW92ZSBUYWI8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmNsZWFyVGFicygpfT5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9MH19PlRocmVzaG9sZDogMDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0xfX0+VGhyZXNob2xkOiAxPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTJ9fT5UaHJlc2hvbGQ6IDI8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIEF1dG8taGlkZTogJHt0aGlzLmF1dG9IaWRlPyJPTiI6Ik9GRiJ9IHwgVGhyZXNob2xkOiAke3RoaXMudGhyZXNob2xkfSB8IFRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgICA8YnI+VGFicyB3aWxsIGhpZGUgd2hlbiBjb3VudCDiiaQgdGhyZXNob2xkLgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1VjKGEsdCl9fTtyZXR1cm4geD1hfSkoKSxZM2E9aSgoKT0+e2xldCBzPVt7a2V5OiJIb21lIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSG9tZSBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBbmFseXRpY3MgRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IlVzZXIgU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkhlbHAgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGU9W3trZXk6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IlNlY3VyaXR5IixpY29uTmFtZToibHVjaWRlOnNoaWVsZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZWN1cml0eSBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJOb3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJJbnRlZ3JhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6bGluayIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJJbnRlZ3JhdGlvbnMgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQWR2YW5jZWQiLGljb25OYW1lOiJsdWNpZGU6Y29kZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBZHZhbmNlZCBjbGlja2VkIiksImFjdGlvbiIpfV0sdD1be2tleToiQWxsIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFsbCBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBY3RpdmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWN0aXZlIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkNvbXBsZXRlZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDb21wbGV0ZWQgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQXJjaGl2ZWQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGE9W3tpZDoiYmFjayIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd0xlZnQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQmFjayIpLCJhY3Rpb24iKSx0b29sdGlwOiJHbyBCYWNrIn1dLHI9W3tpZDoiYWRkIixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWRkIHRhYiIpLCJhY3Rpb24iKSx0b29sdGlwOiJOZXcgVGFiIn0se2lkOiJzZWFyY2giLGljb25OYW1lOiJsdWNpZGU6c2VhcmNoIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNlYXJjaCIpLCJhY3Rpb24iKSx0b29sdGlwOiJTZWFyY2ggVGFicyJ9LHtpZDoiZGlzYWJsZWQiLGljb25OYW1lOiJsdWNpZGU6bG9jayIsYWN0aW9uOmkoKCk9Pnt9LCJhY3Rpb24iKSx0b29sdGlwOiJEaXNhYmxlZCBBY3Rpb24iLGRpc2FibGVkOiEwfV0sbj1pKG89PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OyI+CiAgICAgICR7b30KICAgIDwvZGl2PgogIGAsImRlbW9Db250ZW50Iik7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnR3by1jb2x1bW4gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMDBweCAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SG9yaXpvbnRhbCBUYWJzIHdpdGggQW5pbWF0ZWQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFicz0ke3N9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7bigiU2VsZWN0IGEgdGFiIHRvIHNlZSB0aGUgc21vb3RoIHNsaWRpbmcgYW5pbWF0aW9uIG9mIHRoZSBpbmRpY2F0b3IuIFRoZSBpbmRpY2F0b3IgYXV0b21hdGljYWxseSBhZGp1c3RzIGl0cyB3aWR0aCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgd2l0aCBtaW5pbWFsIHBhZGRpbmcuIil9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VGFicyB3aXRoIEFjdGlvbiBCdXR0b25zPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgLnRhYnM9JHtzfQogICAgICAgICAgLmFjdGlvbnNMZWZ0PSR7YX0KICAgICAgICAgIC5hY3Rpb25zUmlnaHQ9JHtyfQogICAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAke24oIkFjdGlvbiBidXR0b25zIGNhbiBiZSBwbGFjZWQgb24gZWl0aGVyIHNpZGUgb2YgdGhlIHRhYiBiYXIuIFRoZXkgcmVtYWluIGZpeGVkIHdoaWxlIHRhYnMgc2Nyb2xsLiBUaGUgbG9jayBpY29uIHNob3dzIGEgZGlzYWJsZWQgYWN0aW9uLiIpfQogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsb3NlYWJsZSBUYWJzIHdpdGggQWN0aW9uczwvZGl2PgogICAgICAgIDxkZW1vLWNsb3NlYWJsZS10YWJzPjwvZGVtby1jbG9zZWFibGUtdGFicz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdXRvLWhpZGUgVGFiczwvZGl2PgogICAgICAgIDxkZW1vLWF1dG9oaWRlLXRhYnM+PC9kZW1vLWF1dG9oaWRlLXRhYnM+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmVydGljYWwgVGFicyBMYXlvdXQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0d28tY29sdW1uIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnRhYlN0eWxlPSR7InZlcnRpY2FsIn0gLnRhYnM9JHtlfT48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAgICR7bigiVmVydGljYWwgdGFicyB3b3JrIGdyZWF0IGZvciBzZXR0aW5ncyBwYWdlcyBhbmQgbmF2aWdhdGlvbiBtZW51cy4gVGhlIGFuaW1hdGVkIGluZGljYXRvciBzbW9vdGhseSB0cmFuc2l0aW9ucyBiZXR3ZWVuIHNlbGVjdGlvbnMuIil9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+V2l0aG91dCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC5zaG93VGFiSW5kaWNhdG9yPSR7ITF9IC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtuKCJUYWJzIGNhbiBhbHNvIGJlIHVzZWQgd2l0aG91dCB0aGUgYW5pbWF0ZWQgaW5kaWNhdG9yIGJ5IHNldHRpbmcgc2hvd1RhYkluZGljYXRvciB0byBmYWxzZS4iKX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBvMixwcixYM2EsQ2l0PWcoKCk9PnttaCgpO3BlKCk7a3QoKTtaM2EoKTtwdCgpO28yPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxwcj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sWDNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS10YWJzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W107dmFyIG1lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlUYWJzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W0woe3R5cGU6QXJyYXl9KV0sSD1bTCh7dHlwZTpBcnJheX0pXSxJPVtZKCldLEs9W1koKV0sbzIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0YWJzImluIFUsImhhcyIpLGdldDppKFU9PlUudGFicywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50YWJzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG8sbCksbzIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2VsZWN0ZWRUYWIiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zZWxlY3RlZFRhYj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxkLHUpLG8yKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkluZGljYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2hvd1RhYkluZGljYXRvciJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnNob3dUYWJJbmRpY2F0b3IsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc2hvd1RhYkluZGljYXRvcj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxiLHYpLG8yKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiU3R5bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InRhYlN0eWxlImluIFUsImhhcyIpLGdldDppKFU9PlUudGFiU3R5bGUsImdldCIpLHNldDppKChVLGhlKT0+e1UudGFiU3R5bGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbSxmKSxvMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJhdXRvSGlkZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmF1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmF1dG9IaWRlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE0seiksbzIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYXV0b0hpZGVUaHJlc2hvbGQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5hdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5hdXRvSGlkZVRocmVzaG9sZD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxDLF8pLG8yKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImFjdGlvbnNMZWZ0ImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aW9uc0xlZnQsImdldCIpLHNldDppKChVLGhlKT0+e1UuYWN0aW9uc0xlZnQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sJCxFKSxvMih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnNSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYWN0aW9uc1JpZ2h0ImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmFjdGlvbnNSaWdodD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLG8yKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iY2FuU2Nyb2xsTGVmdCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmNhblNjcm9sbExlZnQsImdldCIpLHNldDppKChVLGhlKT0+e1UuY2FuU2Nyb2xsTGVmdD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLG8yKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImNhblNjcm9sbFJpZ2h0ImluIFUsImhhcyIpLGdldDppKFU9PlUuY2FuU2Nyb2xsUmlnaHQsImdldCIpLHNldDppKChVLGhlKT0+e1UuY2FuU2Nyb2xsUmlnaHQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sVixXKSxvMihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpCfSxudWxsLHQpLG1lPWE9ZS52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX1zdGF0aWMgZGVtbz1ZM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1wcih0aGlzLG8sW10pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoQil7dGhpcy4jZT1CfSN0PShwcih0aGlzLGwpLHByKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKEIpe3RoaXMuI3Q9Qn0jYT0ocHIodGhpcyx1KSxwcih0aGlzLGIsITApKTtnZXQgc2hvd1RhYkluZGljYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBzaG93VGFiSW5kaWNhdG9yKEIpe3RoaXMuI2E9Qn0jcz0ocHIodGhpcyx2KSxwcih0aGlzLG0sImhvcml6b250YWwiKSk7Z2V0IHRhYlN0eWxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRhYlN0eWxlKEIpe3RoaXMuI3M9Qn0jaT0ocHIodGhpcyxmKSxwcih0aGlzLE0sITEpKTtnZXQgYXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b0hpZGUoQil7dGhpcy4jaT1CfSNyPShwcih0aGlzLHopLHByKHRoaXMsQywwKSk7Z2V0IGF1dG9IaWRlVGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGF1dG9IaWRlVGhyZXNob2xkKEIpe3RoaXMuI3I9Qn0jbz0ocHIodGhpcyxfKSxwcih0aGlzLCQsW10pKTtnZXQgYWN0aW9uc0xlZnQoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWN0aW9uc0xlZnQoQil7dGhpcy4jbz1CfSNuPShwcih0aGlzLEUpLHByKHRoaXMsayxbXSkpO2dldCBhY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYWN0aW9uc1JpZ2h0KEIpe3RoaXMuI249Qn0jbD0ocHIodGhpcyxTKSxwcih0aGlzLFAsITEpKTtnZXQgY2FuU2Nyb2xsTGVmdCgpe3JldHVybiB0aGlzLiNsfXNldCBjYW5TY3JvbGxMZWZ0KEIpe3RoaXMuI2w9Qn0jYz0ocHIodGhpcyxSKSxwcih0aGlzLFYsITEpKTtnZXQgY2FuU2Nyb2xsUmlnaHQoKXtyZXR1cm4gdGhpcy4jY31zZXQgY2FuU2Nyb2xsUmlnaHQoQil7dGhpcy4jYz1CfXJlc2l6ZU9ic2VydmVyPShwcih0aGlzLFcpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyLmhvcml6b250YWwtd3JhcHBlciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsIGZhZGUgaW5kaWNhdG9ycyAqLwogICAgICAuc2Nyb2xsLWZhZGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAxcHg7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnNjcm9sbC1mYWRlLWxlZnQgewogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9IDAlLAogICAgICAgICAgJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMCkiLCJyZ2JhKDIyLDIyLDIyLDApIil9IDEwMCUpOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtcmlnaHQgewogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9IDAlLAogICAgICAgICAgJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMCkiLCJyZ2JhKDIyLDIyLDIyLDApIil9IDEwMCUpOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUudmlzaWJsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnNjcm9sbC1hcmVhIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAvKiBUYWIgYWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLnRhYi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9ucy5sZWZ0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbnMucmlnaHQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXByZXNzZWQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogU2hvdyBzY3JvbGxiYXIgb24gaG92ZXIgKi8KICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwKICAgICAgLnNjcm9sbC1hcmVhOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9OwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMzUpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjM1KSIpfTsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIudmVydGljYWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLmhvcml6b250YWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiIC50YWItY29udGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI0NCwgMjQ0LCAyNDUsIDAuNSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuNSkiKX07CiAgICAgIH0KCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAudGFiSW5kaWNhdG9yIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CiAgICAgIAogICAgICAudGFiSW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwOwogICAgICAgIHotaW5kZXg6IDM7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbC13cmFwcGVyIC50YWJJbmRpY2F0b3IgewogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wOCk7CiAgICAgIH0KCiAgICAgIC8qIENsb3NlIGJ1dHRvbiAqLwogICAgICAudGFiLWNsb3NlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1wcmVzc2VkKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMuYXV0b0hpZGVUaHJlc2hvbGQ/d2BgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJzV3JhcHBlcigpfQogICAgYH1yZW5kZXJUYWJzV3JhcHBlcigpe2xldCBCPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCIsVT1CPyJ0YWJzLXdyYXBwZXIgaG9yaXpvbnRhbC13cmFwcGVyIjoidmVydGljYWwtd3JhcHBlciIsaGU9YHRhYnNDb250YWluZXIgJHt0aGlzLnRhYlN0eWxlfWA7aWYoQil7bGV0IEY9dGhpcy5hY3Rpb25zTGVmdCYmdGhpcy5hY3Rpb25zTGVmdC5sZW5ndGg+MCxqPXRoaXMuYWN0aW9uc1JpZ2h0JiZ0aGlzLmFjdGlvbnNSaWdodC5sZW5ndGg+MDtyZXR1cm4gd2AKICAgICAgICA8ZGl2IGNsYXNzPSIke1V9Ij4KICAgICAgICAgICR7Rj90aGlzLnJlbmRlckFjdGlvbnModGhpcy5hY3Rpb25zTGVmdCwibGVmdCIpOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWFyZWEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1sZWZ0ICR7dGhpcy5jYW5TY3JvbGxMZWZ0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSIke2hlfSIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgICAke3RoaXMudGFicy5tYXAodWU9PnRoaXMucmVuZGVyVGFiKHVlLEIpKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC1mYWRlIHNjcm9sbC1mYWRlLXJpZ2h0ICR7dGhpcy5jYW5TY3JvbGxSaWdodD8idmlzaWJsZSI6IiJ9Ij48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtqP3RoaXMucmVuZGVyQWN0aW9ucyh0aGlzLmFjdGlvbnNSaWdodCwicmlnaHQiKToiIn0KICAgICAgICAgICR7dGhpcy5zaG93VGFiSW5kaWNhdG9yP3dgPGRpdiBjbGFzcz0idGFiSW5kaWNhdG9yIj48L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSIke1V9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSIke2hlfSI+CiAgICAgICAgICAke3RoaXMudGFicy5tYXAoRj0+dGhpcy5yZW5kZXJUYWIoRixCKSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25zKEIsVSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb25zICR7VX0iPgogICAgICAgICR7Qi5tYXAoaGU9PndgCiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWItYWN0aW9uLWJ1dHRvbiAke2hlLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICB0aXRsZT0iJHtoZS50b29sdGlwfHxoZS5pZH0iCiAgICAgICAgICAgIEBjbGljaz0keygpPT4haGUuZGlzYWJsZWQmJmhlLmFjdGlvbigpfQogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7aGUuaWNvbk5hbWV9PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoQixVKXtsZXQgRj1gdGFiICR7Qj09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn1gLGo9Qi5jbG9zZWFibGU/d2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSIke2xlPT50aGlzLmNsb3NlVGFiKGxlLEIpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij48L2RlZXMtaWNvbj4KICAgICAgPC9zcGFuPgogICAgYDoiIix1ZT1VP3dgCiAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY29udGVudCI+CiAgICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oQil9CiAgICAgICAgJHtCLmtleX0KICAgICAgPC9zcGFuPgogICAgICAke2p9CiAgICBgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKEIpfQogICAgICAke0Iua2V5fQogICAgICAke2p9CiAgICBgO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IiR7Rn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdFRhYihCKX0iCiAgICAgID4KICAgICAgICAke3VlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVGFiSWNvbihCKXtyZXR1cm4gQi5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249JHtCLmljb25OYW1lfT48L2RlZXMtaWNvbj5gOiIifXNlbGVjdFRhYihCKXt0aGlzLnNlbGVjdGVkVGFiPUIsQi5hY3Rpb24oKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNjcm9sbFRhYkludG9WaWV3KEIpfSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOkJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xlYXIoKXt0aGlzLnRhYnM9W10sdGhpcy5zZWxlY3RlZFRhYj1udWxsfWNsb3NlVGFiKEIsVSl7Qi5zdG9wUHJvcGFnYXRpb24oKSxVLm9uQ2xvc2UmJlUub25DbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDp7dGFiOlV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjt0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pO2xldCBCPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpO0ImJnRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShCKX1oYW5kbGVTY3JvbGw9aSgoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0sImhhbmRsZVNjcm9sbCIpO3VwZGF0ZVNjcm9sbFN0YXRlKCl7bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7aWYoIUIpcmV0dXJuO2xldCBVPUIuc2Nyb2xsTGVmdCxoZT1CLnNjcm9sbFdpZHRoLEY9Qi5jbGllbnRXaWR0aCxqPTI7dGhpcy5jYW5TY3JvbGxMZWZ0PVU+aix0aGlzLmNhblNjcm9sbFJpZ2h0PVU8aGUtRi1qfXNjcm9sbFRhYkludG9WaWV3KEIpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO2xldCBVPXRoaXMudGFicy5pbmRleE9mKEIpO2lmKFU9PT0tMSlyZXR1cm47bGV0IGhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpLEY9aGU/LnF1ZXJ5U2VsZWN0b3IoYC50YWI6bnRoLWNoaWxkKCR7VSsxfSlgKTtpZihGJiZoZSl7bGV0IGo9aGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdWU9Ri5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt1ZS5sZWZ0Pj1qLmxlZnQmJnVlLnJpZ2h0PD1qLnJpZ2h0fHxGLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pfX1hc3luYyB1cGRhdGVkKEIpe3N1cGVyLnVwZGF0ZWQoQiksQi5oYXMoInRhYnMiKSYmKCF0aGlzLnRhYnN8fHRoaXMudGFicy5sZW5ndGg9PT0wP3RoaXMuc2VsZWN0ZWRUYWIhPT1udWxsJiYodGhpcy5zZWxlY3RlZFRhYj1udWxsLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpudWxsfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKTp0aGlzLnNlbGVjdGVkVGFiJiYhdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpP3RoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSk6dGhpcy5zZWxlY3RlZFRhYnx8dGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKSksKEIuaGFzKCJzZWxlY3RlZFRhYiIpfHxCLmhhcygidGFicyIpKSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsIXRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQmJmRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVRhYkluZGljYXRvcigpLHRoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pKX1pbmRpY2F0b3JJbml0aWFsaXplZD0hMTt1cGRhdGVUYWJJbmRpY2F0b3IoKXtpZighdGhpcy5zaG91bGRTaG93SW5kaWNhdG9yKCkpcmV0dXJuO2xldCBCPXRoaXMuZ2V0U2VsZWN0ZWRUYWJFbGVtZW50KCk7aWYoIUIpcmV0dXJuO2xldCBVPXRoaXMuZ2V0SW5kaWNhdG9yRWxlbWVudCgpO1UmJih0aGlzLmhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKFUpLHRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/dGhpcy51cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKFUsQik6dGhpcy51cGRhdGVWZXJ0aWNhbEluZGljYXRvcihVLEIpLFUuc3R5bGUub3BhY2l0eT0iMSIpfXNob3VsZFNob3dJbmRpY2F0b3IoKXtyZXR1cm4hIXRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2hvd1RhYkluZGljYXRvciYmdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpfWdldFNlbGVjdGVkVGFiRWxlbWVudCgpe2xldCBCPXRoaXMudGFicy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRUYWIpLGhlPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/YC50YWJzLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtCKzF9KWA6YC52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIC50YWI6bnRoLWNoaWxkKCR7QisxfSlgO3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihoZSl9Z2V0SW5kaWNhdG9yRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRhYkluZGljYXRvciIpfWhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKEIpe3RoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChCLmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntCLmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKX11cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKEIsVSl7bGV0IGhlPVUucXVlcnlTZWxlY3RvcigiLnRhYi1jb250ZW50Iik7aWYoIWhlKXJldHVybjtsZXQgRj1CLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaj1oZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1ZT1qLmxlZnQtRi5sZWZ0LGxlPWoud2lkdGgrOCxRPXVlLTQ7Qi5zdHlsZS53aWR0aD1gJHtsZX1weGAsQi5zdHlsZS5sZWZ0PWAke1F9cHhgfXVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKEIsVSl7bGV0IGhlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciIpO2hlJiYoQi5zdHlsZS50b3A9YCR7VS5vZmZzZXRUb3AraGUub2Zmc2V0VG9wfXB4YCxCLnN0eWxlLmhlaWdodD1gJHtVLmNsaWVudEhlaWdodH1weGApfXN0YXRpY3twcihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIEhoLE5uLFEzYSxUaXQ9ZygoKT0+e21oKCk7cGUoKTtrdCgpO0NpdCgpO3B0KCk7SGg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE5uPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxRM2E9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFwcHVpLW1haW5jb250ZW50IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aU1haW5jb250ZW50Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpBcnJheX0pXSxIaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGFicz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksSGgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2VsZWN0ZWRUYWIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNlbGVjdGVkVGFiPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxIaCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaG93VGFicyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNob3dUYWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hvd1RhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLEhoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFic0F1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzQXV0b0hpZGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzQXV0b0hpZGUsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJzQXV0b0hpZGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLEhoKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzQXV0b0hpZGVUaHJlc2hvbGQsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJzQXV0b0hpZGVUaHJlc2hvbGQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLEhoKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYkFjdGlvbnNMZWZ0ImluIFMsImhhcyIpLGdldDppKFM9PlMudGFiQWN0aW9uc0xlZnQsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJBY3Rpb25zTGVmdD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksSGgodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJBY3Rpb25zUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYkFjdGlvbnNSaWdodCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRhYkFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYkFjdGlvbnNSaWdodD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksSGgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgLnRhYnM9JHtbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyIpLCJhY3Rpb24iKX0se2tleToiRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRldGFpbHMiKSwiYWN0aW9uIil9LHtrZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfV19CiAgICA+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDQwcHg7IGNvbG9yOiAjY2NjOyI+CiAgICAgICAgPGgxPk1haW4gQ29udGVudCBBcmVhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gY29udGVudCBnb2VzLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9Tm4odGhpcyxvLFt7a2V5OiJcdTI2QTBcdUZFMEYgUGxlYXNlIHNldCB0YWJzIixhY3Rpb246aSgoKT0+Y29uc29sZS53YXJuKCJObyB0YWJzIGNvbmZpZ3VyZWQgZm9yIG1haW5jb250ZW50IiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoayl7dGhpcy4jZT1rfSN0PShObih0aGlzLGwpLE5uKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKGspe3RoaXMuI3Q9a30jYT0oTm4odGhpcyx1KSxObih0aGlzLGIsITApKTtnZXQgc2hvd1RhYnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1RhYnMoayl7dGhpcy4jYT1rfSNzPShObih0aGlzLHYpLE5uKHRoaXMsbSwhMSkpO2dldCB0YWJzQXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFic0F1dG9IaWRlKGspe3RoaXMuI3M9a30jaT0oTm4odGhpcyxmKSxObih0aGlzLE0sMCkpO2dldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFic0F1dG9IaWRlVGhyZXNob2xkKGspe3RoaXMuI2k9a30jcj0oTm4odGhpcyx6KSxObih0aGlzLEMsW10pKTtnZXQgdGFiQWN0aW9uc0xlZnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGFiQWN0aW9uc0xlZnQoayl7dGhpcy4jcj1rfSNvPShObih0aGlzLF8pLE5uKHRoaXMsJCxbXSkpO2dldCB0YWJBY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgdGFiQWN0aW9uc1JpZ2h0KGspe3RoaXMuI289a31zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHt0aGlzLnRhYkFjdGlvbnNMZWZ0fQogICAgICAgICAgICAuYWN0aW9uc1JpZ2h0PSR7dGhpcy50YWJBY3Rpb25zUmlnaHR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7az0+dGhpcy5oYW5kbGVUYWJTZWxlY3Qoayl9CiAgICAgICAgICAgIEB0YWItY2xvc2U9JHtrPT50aGlzLmhhbmRsZVRhYkNsb3NlKGspfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVUYWJTZWxlY3Qoayl7dGhpcy5zZWxlY3RlZFRhYj1rLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDprLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhYkNsb3NlKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDprLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSxrLmhhcygic2hvd1RhYnMiKSYmKHRoaXMuc2hvd1RhYnM/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm5vdGFicyIpOnRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKSl9YXN5bmMgZmlyc3RVcGRhdGVkKGspe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChrKSx0aGlzLnNob3dUYWJzfHx0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIik7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpO1MmJmF3YWl0IFMudXBkYXRlQ29tcGxldGV9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLE5uKHRoaXMsRSl9c3RhdGlje05uKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBPYSx6dCxKM2EsZWZhPWcoKCk9PntwZSgpO2t0KCk7bWgoKTtxM2EoKTtwdCgpO19pdCgpO0RldCgpO0VldCgpO01pdCgpO3ppdCgpO1RpdCgpO01ldCgpO09hPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6dD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSjNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdLEllLGNlPVtdLGRlPVtdLExlLEtlPVtdLFllPVtdLG90LFV0PVtdLFp0PVtdLGphLGV0PVtdLGJ0PVtdLHlhLGVzPVtdLHJzPVtdLHBzLG5zPVtdLHRpPVtdLGFpLHplPVtdLHhlPVtdLE5lLHh0PVtdLE1hPVtdLE5yLGZlPVtdLHJlPVtdLFNlLE9lPVtdLEplPVtdLHphLGRhPVtdLHdzPVtdLGtpLEppPVtdLFJyPVtdLFNpLHZuPVtdLHIxPVtdLG8xLG4xPVtdLGwxPVtdLGMxLGQxPVtdLHUxPVtdO3ZhciBwMT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpPYmplY3R9KV0sTj1bTCh7dHlwZTpBcnJheX0pXSxPPVtMKHt0eXBlOkJvb2xlYW59KV0sSD1bTCh7dHlwZTpTdHJpbmd9KV0sST1bTCh7dHlwZTpTdHJpbmd9KV0sSz1bTCh7dHlwZTpBcnJheX0pXSxtZT1bTCh7dHlwZTpBcnJheX0pXSxoZT1bTCh7dHlwZTpBcnJheX0pXSx1ZT1bTCh7dHlwZTpPYmplY3R9KV0saWU9W0woe3R5cGU6U3RyaW5nfSldLGtlPVtMKHt0eXBlOkFycmF5fSldLHllPVtMKHt0eXBlOk9iamVjdH0pXSxzZT1bTCh7dHlwZTpCb29sZWFufSldLFRlPVtMKHt0eXBlOkJvb2xlYW59KV0sR2U9W0woe3R5cGU6Qm9vbGVhbn0pXSxDZT1bTCh7dHlwZTpCb29sZWFufSldLEVlPVtMKHt0eXBlOkJvb2xlYW59KV0sc3Q9W0woe3R5cGU6Qm9vbGVhbn0pXSxJZT1bTCh7dHlwZTpOdW1iZXJ9KV0sTGU9W1koKV0sb3Q9W1koKV0samE9W0woe3R5cGU6QXJyYXl9KV0seWE9W0woe3R5cGU6T2JqZWN0fSldLHBzPVtMKHt0eXBlOkFycmF5fSldLGFpPVtMKHt0eXBlOkFycmF5fSldLE5lPVtZKCldLE5yPVtZKCldLFNlPVtZKCldLHphPVtZKCldLGtpPVtZKCldLFNpPVtZKCldLG8xPVtZKCldLGMxPVtZKCldLE9hKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJNZW51SXRlbXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJNZW51SXRlbXMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJNZW51SXRlbXM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxvLGwpLE9hKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFwcGJhckJyZWFkY3J1bWJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyQnJlYWRjcnVtYnMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJCcmVhZGNydW1icz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGQsdSksT2EodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3I9R30sInNldCIpfSxtZXRhZGF0YTpEfSxiLHYpLE9hKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJTaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxtLGYpLE9hKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyVXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYXBwYmFyVXNlciJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFwcGJhclVzZXIsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJVc2VyPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sTSx6KSxPYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJQcm9maWxlTWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEMsXyksT2EodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJTaG93U2VhcmNoImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyU2hvd1NlYXJjaCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFwcGJhclNob3dTZWFyY2g9R30sInNldCIpfSxtZXRhZGF0YTpEfSwkLEUpLE9hKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVMb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVMb2dvSWNvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51TG9nb0ljb24sImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudUxvZ29JY29uPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sayxTKSxPYSh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51TG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51TG9nb1RleHQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudUxvZ29UZXh0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVMb2dvVGV4dD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LFAsUiksT2EodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVHcm91cHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudUdyb3VwcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULm1haW5tZW51R3JvdXBzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVixXKSxPYSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51Qm90dG9tVGFicyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51Qm90dG9tVGFicywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULm1haW5tZW51Qm90dG9tVGFicz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEIsVSksT2EodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJtYWlubWVudVRhYnMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudVRhYnMsImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudVRhYnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxGLGopLE9hKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudVNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVTZWxlY3RlZFRhYj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGxlLFEpLE9hKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVIZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51SGVhZGluZyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVIZWFkaW5nLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2Vjb25kYXJ5bWVudUhlYWRpbmc9R30sInNldCIpfSxtZXRhZGF0YTpEfSx0ZSxlZSksT2EodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2Vjb25kYXJ5bWVudUdyb3VwcyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVHcm91cHMsImdldCIpLHNldDppKChULEcpPT57VC5zZWNvbmRhcnltZW51R3JvdXBzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sWCxaKSxPYSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09R30sInNldCIpfSxtZXRhZGF0YTpEfSxxLEEpLE9hKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJtYWlubWVudUNvbGxhcHNlZCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51Q29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVDb2xsYXBzZWQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSxvZSxhZSksT2EodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVDb2xsYXBzZWQsImdldCIpLHNldDppKChULEcpPT57VC5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUmUsQmUpLE9hKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVWaXNpYmxlImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbm1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sRGUsX2UpLE9hKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51VmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2Vjb25kYXJ5bWVudVZpc2libGU9R30sInNldCIpfSxtZXRhZGF0YTpEfSx2ZSxiZSksT2EodGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5jb250ZW50VGFic1Zpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5tYWluY29udGVudFRhYnNWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0samUsV2UpLE9hKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5jb250ZW50VGFic0F1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY29udGVudFRhYnNBdXRvSGlkZT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LE1lLGdlKSxPYSh0aGlzLG51bGwsSWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSxjZSxkZSksT2EodGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhY3Rpdml0eUxvZ1Zpc2libGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hY3Rpdml0eUxvZ1Zpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5hY3Rpdml0eUxvZ1Zpc2libGU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxLZSxZZSksT2EodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChULEcpPT57VC5hY3Rpdml0eUxvZ0NvdW50PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVXQsWnQpLE9hKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbmNvbnRlbnRUYWJzImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbmNvbnRlbnRUYWJzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbmNvbnRlbnRUYWJzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZXQsYnQpLE9hKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWluY29udGVudFNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGVzLHJzKSxPYSh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbnRlbnRUYWJBY3Rpb25zTGVmdCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmNvbnRlbnRUYWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJBY3Rpb25zTGVmdD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LG5zLHRpKSxPYSh0aGlzLG51bGwsYWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc1JpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb250ZW50VGFiQWN0aW9uc1JpZ2h0ImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29udGVudFRhYkFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx6ZSx4ZSksT2EodGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXIsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXI9R30sInNldCIpfSxtZXRhZGF0YTpEfSx4dCxNYSksT2EodGhpcyxudWxsLE5yLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51ImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbm1lbnUsImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZlLHJlKSxPYSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2Vjb25kYXJ5bWVudSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlY29uZGFyeW1lbnU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxPZSxKZSksT2EodGhpcyxudWxsLHphLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5jb250ZW50ImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbmNvbnRlbnQsImdldCIpLHNldDppKChULEcpPT57VC5tYWluY29udGVudD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRhLHdzKSxPYSh0aGlzLG51bGwsa2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eWxvZ0VsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFjdGl2aXR5bG9nRWxlbWVudCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFjdGl2aXR5bG9nRWxlbWVudCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFjdGl2aXR5bG9nRWxlbWVudD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEppLFJyKSxPYSh0aGlzLG51bGwsU2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21iYXJFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJib3R0b21iYXJFbGVtZW50ImluIFQsImhhcyIpLGdldDppKFQ9PlQuYm90dG9tYmFyRWxlbWVudCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmJvdHRvbWJhckVsZW1lbnQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx2bixyMSksT2EodGhpcyxudWxsLG8xLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYm90dG9tYmFyVmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmJvdHRvbWJhclZpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5ib3R0b21iYXJWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbjEsbDEpLE9hKHRoaXMsbnVsbCxjMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjdXJyZW50VmlldyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY3VycmVudFZpZXc9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkMSx1MSksT2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCx0KSxwMT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89SDNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07dmlld0xpZmVjeWNsZSQ9bmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0O3ZpZXdDaGFuZ2VkJD1uZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7I2U9enQodGhpcyxvLFtdKTtnZXQgYXBwYmFyTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFwcGJhck1lbnVJdGVtcyhEKXt0aGlzLiNlPUR9I3Q9KHp0KHRoaXMsbCksenQodGhpcyxkLCIiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFwcGJhckJyZWFkY3J1bWJzKEQpe3RoaXMuI3Q9RH0jYT0oenQodGhpcyx1KSx6dCh0aGlzLGIsIiA+ICIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKEQpe3RoaXMuI2E9RH0jcz0oenQodGhpcyx2KSx6dCh0aGlzLG0sITApKTtnZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scyhEKXt0aGlzLiNzPUR9I2k9KHp0KHRoaXMsZiksenQodGhpcyxNLHZvaWQgMCkpO2dldCBhcHBiYXJVc2VyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFwcGJhclVzZXIoRCl7dGhpcy4jaT1EfSNyPSh6dCh0aGlzLHopLHp0KHRoaXMsQyxbXSkpO2dldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMoRCl7dGhpcy4jcj1EfSNvPSh6dCh0aGlzLF8pLHp0KHRoaXMsJCwhMSkpO2dldCBhcHBiYXJTaG93U2VhcmNoKCl7cmV0dXJuIHRoaXMuI299c2V0IGFwcGJhclNob3dTZWFyY2goRCl7dGhpcy4jbz1EfSNuPSh6dCh0aGlzLEUpLHp0KHRoaXMsaywiIikpO2dldCBtYWlubWVudUxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI259c2V0IG1haW5tZW51TG9nb0ljb24oRCl7dGhpcy4jbj1EfSNsPSh6dCh0aGlzLFMpLHp0KHRoaXMsUCwiIikpO2dldCBtYWlubWVudUxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IG1haW5tZW51TG9nb1RleHQoRCl7dGhpcy4jbD1EfSNjPSh6dCh0aGlzLFIpLHp0KHRoaXMsVixbXSkpO2dldCBtYWlubWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNjfXNldCBtYWlubWVudUdyb3VwcyhEKXt0aGlzLiNjPUR9I2Q9KHp0KHRoaXMsVyksenQodGhpcyxCLFtdKSk7Z2V0IG1haW5tZW51Qm90dG9tVGFicygpe3JldHVybiB0aGlzLiNkfXNldCBtYWlubWVudUJvdHRvbVRhYnMoRCl7dGhpcy4jZD1EfSN1PSh6dCh0aGlzLFUpLHp0KHRoaXMsRixbXSkpO2dldCBtYWlubWVudVRhYnMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbWFpbm1lbnVUYWJzKEQpe3RoaXMuI3U9RH0jcD0oenQodGhpcyxqKSx6dCh0aGlzLGxlLHZvaWQgMCkpO2dldCBtYWlubWVudVNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoRCl7dGhpcy4jcD1EfSNoPSh6dCh0aGlzLFEpLHp0KHRoaXMsdGUsIiIpKTtnZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoRCl7dGhpcy4jaD1EfSNmPSh6dCh0aGlzLGVlKSx6dCh0aGlzLFgsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNmfXNldCBzZWNvbmRhcnltZW51R3JvdXBzKEQpe3RoaXMuI2Y9RH0jbT0oenQodGhpcyxaKSx6dCh0aGlzLHEsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbShEKXt0aGlzLiNtPUR9I2c9KHp0KHRoaXMsQSksenQodGhpcyxvZSwhMSkpO2dldCBtYWlubWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNnfXNldCBtYWlubWVudUNvbGxhcHNlZChEKXt0aGlzLiNnPUR9I2I9KHp0KHRoaXMsYWUpLHp0KHRoaXMsUmUsITEpKTtnZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNifXNldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKEQpe3RoaXMuI2I9RH0jdj0oenQodGhpcyxCZSksenQodGhpcyxEZSwhMCkpO2dldCBtYWlubWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbWFpbm1lbnVWaXNpYmxlKEQpe3RoaXMuI3Y9RH0jeD0oenQodGhpcyxfZSksenQodGhpcyx2ZSwhMCkpO2dldCBzZWNvbmRhcnltZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN4fXNldCBzZWNvbmRhcnltZW51VmlzaWJsZShEKXt0aGlzLiN4PUR9I3k9KHp0KHRoaXMsYmUpLHp0KHRoaXMsamUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKEQpe3RoaXMuI3k9RH0jdz0oenQodGhpcyxXZSksenQodGhpcyxNZSwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoRCl7dGhpcy4jdz1EfSNrPSh6dCh0aGlzLGdlKSx6dCh0aGlzLGNlLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNrfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKEQpe3RoaXMuI2s9RH0jUz0oenQodGhpcyxkZSksenQodGhpcyxLZSwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jU31zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKEQpe3RoaXMuI1M9RH0jXz0oenQodGhpcyxZZSksenQodGhpcyxVdCwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jX31zZXQgYWN0aXZpdHlMb2dDb3VudChEKXt0aGlzLiNfPUR9I009KHp0KHRoaXMsWnQpLHp0KHRoaXMsZXQsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI019c2V0IG1haW5jb250ZW50VGFicyhEKXt0aGlzLiNNPUR9I3o9KHp0KHRoaXMsYnQpLHp0KHRoaXMsZXMsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jen1zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihEKXt0aGlzLiN6PUR9I0M9KHp0KHRoaXMscnMpLHp0KHRoaXMsbnMsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNMZWZ0KCl7cmV0dXJuIHRoaXMuI0N9c2V0IGNvbnRlbnRUYWJBY3Rpb25zTGVmdChEKXt0aGlzLiNDPUR9I1Q9KHp0KHRoaXMsdGkpLHp0KHRoaXMsemUsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNUfXNldCBjb250ZW50VGFiQWN0aW9uc1JpZ2h0KEQpe3RoaXMuI1Q9RH0jJD0oenQodGhpcyx4ZSksenQodGhpcyx4dCx2b2lkIDApKTtnZXQgYXBwYmFyKCl7cmV0dXJuIHRoaXMuIyR9c2V0IGFwcGJhcihEKXt0aGlzLiMkPUR9I0Q9KHp0KHRoaXMsTWEpLHp0KHRoaXMsZmUsdm9pZCAwKSk7Z2V0IG1haW5tZW51KCl7cmV0dXJuIHRoaXMuI0R9c2V0IG1haW5tZW51KEQpe3RoaXMuI0Q9RH0jTD0oenQodGhpcyxyZSksenQodGhpcyxPZSx2b2lkIDApKTtnZXQgc2Vjb25kYXJ5bWVudSgpe3JldHVybiB0aGlzLiNMfXNldCBzZWNvbmRhcnltZW51KEQpe3RoaXMuI0w9RH0jRT0oenQodGhpcyxKZSksenQodGhpcyxkYSx2b2lkIDApKTtnZXQgbWFpbmNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgbWFpbmNvbnRlbnQoRCl7dGhpcy4jRT1EfSNQPSh6dCh0aGlzLHdzKSx6dCh0aGlzLEppLHZvaWQgMCkpO2dldCBhY3Rpdml0eWxvZ0VsZW1lbnQoKXtyZXR1cm4gdGhpcy4jUH1zZXQgYWN0aXZpdHlsb2dFbGVtZW50KEQpe3RoaXMuI1A9RH0jST0oenQodGhpcyxSciksenQodGhpcyx2bix2b2lkIDApKTtnZXQgYm90dG9tYmFyRWxlbWVudCgpe3JldHVybiB0aGlzLiNJfXNldCBib3R0b21iYXJFbGVtZW50KEQpe3RoaXMuI0k9RH0jQT0oenQodGhpcyxyMSksenQodGhpcyxuMSwhMCkpO2dldCBib3R0b21iYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI0F9c2V0IGJvdHRvbWJhclZpc2libGUoRCl7dGhpcy4jQT1EfSNOPSh6dCh0aGlzLGwxKSx6dCh0aGlzLGQxLHZvaWQgMCkpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNOfXNldCBjdXJyZW50VmlldyhEKXt0aGlzLiNOPUR9dmlld1JlZ2lzdHJ5PSh6dCh0aGlzLHUxKSxuZXcgcVgpO3JvdXRlckNsZWFudXA9bnVsbDtzZWFyY2hDYWxsYmFjaz1udWxsO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgfQogICAgICAubWFpbmdyaWQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4IC0gMjRweCk7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAvKiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgc2V0IGR5bmFtaWNhbGx5IGluIHRlbXBsYXRlICovCiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIDAuM3MgZWFzZSwgaGVpZ2h0IDAuM3MgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICA6aG9zdChbYm90dG9tYmFyLWhpZGRlbl0pIC5tYWluZ3JpZCB7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KTsKICAgICAgfQoKICAgICAgZGVlcy1hcHB1aS1ib3R0b21iYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiA0OwogICAgICB9CgogICAgICAvKiBaLWluZGV4IGxheWVyaW5nIGZvciBwcm9wZXIgc3RhY2tpbmcgKi8KICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWlubWVudSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDM7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLW1haW5jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLmhpZGRlbiB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cudmlzaWJsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgIH0KCiAgICAgIC8qIFZpZXcgY29udGFpbmVyIGZvciBkeW5hbWljYWxseSBsb2FkZWQgdmlld3MgKi8KICAgICAgLnZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQoKICAgICAgLnZpZXctY29udGFpbmVyOmVtcHR5IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWktYXBwYmFyCiAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyTWVudUl0ZW1zfQogICAgICAgIC5icmVhZGNydW1icz0ke3RoaXMuYXBwYmFyQnJlYWRjcnVtYnN9CiAgICAgICAgLmJyZWFkY3J1bWJTZXBhcmF0b3I9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3J9CiAgICAgICAgLnNob3dXaW5kb3dDb250cm9scz0ke3RoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzfQogICAgICAgIC51c2VyPSR7dGhpcy5hcHBiYXJVc2VyfQogICAgICAgIC5wcm9maWxlTWVudUl0ZW1zPSR7dGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zfQogICAgICAgIC5zaG93U2VhcmNoPSR7dGhpcy5hcHBiYXJTaG93U2VhcmNofQogICAgICAgIC5zaG93QWN0aXZpdHlMb2dUb2dnbGU9JHshMH0KICAgICAgICAuYWN0aXZpdHlMb2dDb3VudD0ke3RoaXMuYWN0aXZpdHlMb2dDb3VudH0KICAgICAgICAuYWN0aXZpdHlMb2dBY3RpdmU9JHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX0KICAgICAgICBAbWVudS1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZUFwcGJhck1lbnVTZWxlY3QoRCl9CiAgICAgICAgQGJyZWFkY3J1bWItbmF2aWdhdGU9JHtEPT50aGlzLmhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShEKX0KICAgICAgICBAc2VhcmNoLWNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoQ2xpY2soKX0KICAgICAgICBAc2VhcmNoLXF1ZXJ5PSR7RD0+dGhpcy5oYW5kbGVBcHBiYXJTZWFyY2hRdWVyeShEKX0KICAgICAgICBAdXNlci1tZW51LW9wZW49JHsoKT0+dGhpcy5oYW5kbGVBcHBiYXJVc2VyTWVudU9wZW4oKX0KICAgICAgICBAcHJvZmlsZS1tZW51LXNlbGVjdD0ke0Q9PnRoaXMuaGFuZGxlQXBwYmFyUHJvZmlsZU1lbnVTZWxlY3QoRCl9CiAgICAgICAgQGFjdGl2aXR5LXRvZ2dsZT0keygpPT50aGlzLnRvZ2dsZUFjdGl2aXR5TG9nKCl9CiAgICAgID48L2RlZXMtYXBwdWktYXBwYmFyPgogICAgICA8ZGl2IGNsYXNzPSJtYWluZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIDFmciAke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyIyODBweCI6IjBweCJ9OyI+CiAgICAgICAgJHt0aGlzLm1haW5tZW51VmlzaWJsZT93YAogICAgICAgICAgPGRlZXMtYXBwdWktbWFpbm1lbnUKICAgICAgICAgICAgLmxvZ29JY29uPSR7dGhpcy5tYWlubWVudUxvZ29JY29ufQogICAgICAgICAgICAubG9nb1RleHQ9JHt0aGlzLm1haW5tZW51TG9nb1RleHR9CiAgICAgICAgICAgIC5tZW51R3JvdXBzPSR7dGhpcy5tYWlubWVudUdyb3Vwc30KICAgICAgICAgICAgLmJvdHRvbVRhYnM9JHt0aGlzLm1haW5tZW51Qm90dG9tVGFic30KICAgICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5tZW51VGFic30KICAgICAgICAgICAgLnNlbGVjdGVkVGFiPSR7dGhpcy5tYWlubWVudVNlbGVjdGVkVGFifQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5tYWlubWVudUNvbGxhcHNlZH0KICAgICAgICAgICAgQHRhYi1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZU1haW5tZW51VGFiU2VsZWN0KEQpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7RD0+dGhpcy5oYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKEQpfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS1tYWlubWVudT4KICAgICAgICBgOiIifQogICAgICAgICR7dGhpcy5zZWNvbmRhcnltZW51VmlzaWJsZT93YAogICAgICAgICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAgICAgICAuaGVhZGluZz0ke3RoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmd9CiAgICAgICAgICAgIC5ncm91cHM9JHt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHN9CiAgICAgICAgICAgIC5zZWxlY3RlZEl0ZW09JHt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW19CiAgICAgICAgICAgIC5jb2xsYXBzZWQ9JHt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEBpdGVtLXNlbGVjdD0ke0Q9PnRoaXMuaGFuZGxlU2Vjb25kYXJ5bWVudUl0ZW1TZWxlY3QoRCl9CiAgICAgICAgICAgIEBjb2xsYXBzZS1jaGFuZ2U9JHtEPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVDb2xsYXBzZUNoYW5nZShEKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktc2Vjb25kYXJ5bWVudT4KICAgICAgICBgOiIifQogICAgICAgIDxkZWVzLWFwcHVpLW1haW5jb250ZW50CiAgICAgICAgICAudGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzfQogICAgICAgICAgLnNlbGVjdGVkVGFiPSR7dGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFifQogICAgICAgICAgLnNob3dUYWJzPSR7dGhpcy5tYWluY29udGVudFRhYnNWaXNpYmxlfQogICAgICAgICAgLnRhYnNBdXRvSGlkZT0ke3RoaXMuY29udGVudFRhYnNBdXRvSGlkZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGR9CiAgICAgICAgICAudGFiQWN0aW9uc0xlZnQ9JHt0aGlzLmNvbnRlbnRUYWJBY3Rpb25zTGVmdH0KICAgICAgICAgIC50YWJBY3Rpb25zUmlnaHQ9JHt0aGlzLmNvbnRlbnRUYWJBY3Rpb25zUmlnaHR9CiAgICAgICAgICBAdGFiLXNlbGVjdD0ke0Q9PnRoaXMuaGFuZGxlQ29udGVudFRhYlNlbGVjdChEKX0KICAgICAgICAgIEB0YWItY2xvc2U9JHtEPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJDbG9zZShEKX0KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICA8c2xvdCBuYW1lPSJtYWluY29udGVudCI+PC9zbG90PgogICAgICAgIDwvZGVlcy1hcHB1aS1tYWluY29udGVudD4KICAgICAgICA8ZGVlcy1hcHB1aS1hY3Rpdml0eWxvZwogICAgICAgICAgY2xhc3M9IiR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU/InZpc2libGUiOiJoaWRkZW4ifSIKICAgICAgICA+PC9kZWVzLWFwcHVpLWFjdGl2aXR5bG9nPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmJvdHRvbWJhclZpc2libGU/d2AKICAgICAgICA8ZGVlcy1hcHB1aS1ib3R0b21iYXI+PC9kZWVzLWFwcHVpLWJvdHRvbWJhcj4KICAgICAgYDoiIn0KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5hcHBiYXI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktYXBwYmFyIiksdGhpcy5tYWlubWVudT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1tYWlubWVudSIpLHRoaXMuc2Vjb25kYXJ5bWVudT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IiksdGhpcy5tYWluY29udGVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1tYWluY29udGVudCIpLHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFjdGl2aXR5bG9nIiksdGhpcy5ib3R0b21iYXJFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWJvdHRvbWJhciIpLHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50JiZ0aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5lbnRyaWVzJC5zdWJzY3JpYmUoRD0+e3RoaXMuYWN0aXZpdHlMb2dDb3VudD1ELmxlbmd0aH0pLHRoaXMudmlld1JlZ2lzdHJ5LnNldEFwcHVpUmVmKHRoaXMpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJvdXRlckNsZWFudXAmJih0aGlzLnJvdXRlckNsZWFudXAoKSx0aGlzLnJvdXRlckNsZWFudXA9bnVsbCksdGhpcy52aWV3TGlmZWN5Y2xlJC5jb21wbGV0ZSgpLHRoaXMudmlld0NoYW5nZWQkLmNvbXBsZXRlKCl9c2V0QXBwQmFyTWVudXMoRCl7dGhpcy5hcHBiYXJNZW51SXRlbXM9Wy4uLkRdfXVwZGF0ZUFwcEJhck1lbnUoRCxUKXt0aGlzLmFwcGJhck1lbnVJdGVtcz10aGlzLmFwcGJhck1lbnVJdGVtcy5tYXAoRz0+Im5hbWUiaW4gRyYmRy5uYW1lPT09RD97Li4uRywuLi5UfTpHKX1zZXRCcmVhZGNydW1icyhEKXtBcnJheS5pc0FycmF5KEQpP3RoaXMuYXBwYmFyQnJlYWRjcnVtYnM9RC5qb2luKHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcik6dGhpcy5hcHBiYXJCcmVhZGNydW1icz1EfXNldFVzZXIoRCl7dGhpcy5hcHBiYXJVc2VyPUR9c2V0UHJvZmlsZU1lbnVJdGVtcyhEKXt0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9Wy4uLkRdfXNldFNlYXJjaFZpc2libGUoRCl7dGhpcy5hcHBiYXJTaG93U2VhcmNoPUR9c2V0V2luZG93Q29udHJvbHNWaXNpYmxlKEQpe3RoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUR9b25TZWFyY2goRCl7dGhpcy5zZWFyY2hDYWxsYmFjaz1EfXNldE1haW5NZW51KEQpe0QubG9nb0ljb24hPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb0ljb249RC5sb2dvSWNvbiksRC5sb2dvVGV4dCE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVMb2dvVGV4dD1ELmxvZ29UZXh0KSxELmdyb3VwcyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVHcm91cHM9Wy4uLkQuZ3JvdXBzXSksRC5ib3R0b21UYWJzIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9Wy4uLkQuYm90dG9tVGFic10pfXVwZGF0ZU1haW5NZW51R3JvdXAoRCxUKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKEc9PkcubmFtZT09PUQ/ey4uLkcsLi4uVH06Ryl9YWRkTWFpbk1lbnVJdGVtKEQsVCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLGl0ZW1zOlsuLi5HLml0ZW1zfHxbXSxUXX06Ryl9cmVtb3ZlTWFpbk1lbnVJdGVtKEQsVCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLGl0ZW1zOihHLml0ZW1zfHxbXSkuZmlsdGVyKCRlPT4kZS5rZXkhPT1UKX06Ryl9c2V0TWFpbk1lbnVTZWxlY3Rpb24oRCl7Zm9yKGxldCBHIG9mIHRoaXMubWFpbm1lbnVHcm91cHMpe2xldCAkZT1HLml0ZW1zPy5maW5kKFBlPT5QZS5rZXk9PT1EKTtpZigkZSl7dGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPSRlO3JldHVybn19bGV0IFQ9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMuZmluZChHPT5HLmtleT09PUQpO1QmJih0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9VCl9c2V0TWFpbk1lbnVDb2xsYXBzZWQoRCl7dGhpcy5tYWlubWVudUNvbGxhcHNlZD1EfXNldE1haW5NZW51VmlzaWJsZShEKXt0aGlzLm1haW5tZW51VmlzaWJsZT1EfXNldFNlY29uZGFyeU1lbnVDb2xsYXBzZWQoRCl7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUR9c2V0U2Vjb25kYXJ5TWVudVZpc2libGUoRCl7dGhpcy5zZWNvbmRhcnltZW51VmlzaWJsZT1EfXNldENvbnRlbnRUYWJzVmlzaWJsZShEKXt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGU9RH1zZXRDb250ZW50VGFic0F1dG9IaWRlKEQsVD0wKXt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGU9RCx0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9VH1zZXRNYWluTWVudUJhZGdlKEQsVCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChHPT4oey4uLkcsaXRlbXM6KEcuaXRlbXN8fFtdKS5tYXAoJGU9PiRlLmtleT09PUQ/ey4uLiRlLGJhZGdlOlR9OiRlKX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoRz0+Ry5rZXk9PT1EP3suLi5HLGJhZGdlOlR9OkcpfWNsZWFyTWFpbk1lbnVCYWRnZShEKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKFQ9Pih7Li4uVCxpdGVtczooVC5pdGVtc3x8W10pLm1hcChHPT57aWYoRy5rZXk9PT1EKXtsZXR7YmFkZ2U6JGUsLi4uUGV9PUc7cmV0dXJuIFBlfXJldHVybiBHfSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKFQ9PntpZihULmtleT09PUQpe2xldHtiYWRnZTpHLC4uLiRlfT1UO3JldHVybiAkZX1yZXR1cm4gVH0pfXNldFNlY29uZGFyeU1lbnUoRCl7RC5oZWFkaW5nIT09dm9pZCAwJiYodGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1ELmhlYWRpbmcpLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bLi4uRC5ncm91cHNdfXVwZGF0ZVNlY29uZGFyeU1lbnVHcm91cChELFQpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKEc9PkcubmFtZT09PUQ/ey4uLkcsLi4uVH06Ryl9YWRkU2Vjb25kYXJ5TWVudUl0ZW0oRCxUKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLGl0ZW1zOlsuLi5HLml0ZW1zLFRdfTpHKX1zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKEQpe2ZvcihsZXQgVCBvZiB0aGlzLnNlY29uZGFyeW1lbnVHcm91cHMpe2xldCBHPVQuaXRlbXMuZmluZCgkZT0+ImtleSJpbiAkZSYmJGUua2V5PT09RCk7aWYoRyYmKCEoInR5cGUiaW4gRyl8fEcudHlwZT09PSJ0YWIifHxHLnR5cGU9PT12b2lkIDApKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09RztyZXR1cm59fX1jbGVhclNlY29uZGFyeU1lbnUoKXt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nPSIiLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bXSx0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09dm9pZCAwfXNldENvbnRlbnRUYWJzKEQpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi5EXSxELmxlbmd0aD4wJiYhdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPURbMF0pfWFkZENvbnRlbnRUYWIoRCl7dGhpcy5tYWluY29udGVudFRhYnM9Wy4uLnRoaXMubWFpbmNvbnRlbnRUYWJzLERdfXJlbW92ZUNvbnRlbnRUYWIoRCl7dGhpcy5tYWluY29udGVudFRhYnM9dGhpcy5tYWluY29udGVudFRhYnMuZmlsdGVyKFQ9PlQua2V5IT09RCksdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPy5rZXk9PT1EJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPXRoaXMubWFpbmNvbnRlbnRUYWJzWzBdKX1zZWxlY3RDb250ZW50VGFiKEQpe2xldCBUPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbmQoRz0+Ry5rZXk9PT1EKTtUJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPVQpfWdldFNlbGVjdGVkQ29udGVudFRhYigpe3JldHVybiB0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9c2V0Q29udGVudFRhYkFjdGlvbnNMZWZ0KEQpe3RoaXMuY29udGVudFRhYkFjdGlvbnNMZWZ0PVsuLi5EXX1zZXRDb250ZW50VGFiQWN0aW9uc1JpZ2h0KEQpe3RoaXMuY29udGVudFRhYkFjdGlvbnNSaWdodD1bLi4uRF19Z2V0IGFjdGl2aXR5TG9nKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50P3thZGQ6aShEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGQoRCksImFkZCIpLGFkZE1hbnk6aShEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGRNYW55KEQpLCJhZGRNYW55IiksY2xlYXI6aSgoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuY2xlYXIoKSwiY2xlYXIiKSxnZXRFbnRyaWVzOmkoKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmdldEVudHJpZXMoKSwiZ2V0RW50cmllcyIpLGZpbHRlcjppKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmZpbHRlcihEKSwiZmlsdGVyIiksc2VhcmNoOmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuc2VhcmNoKEQpLCJzZWFyY2giKX06e2FkZDppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGQoRCkpfSwiYWRkIiksYWRkTWFueTppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGRNYW55KEQpKX0sImFkZE1hbnkiKSxjbGVhcjppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uY2xlYXIoKSl9LCJjbGVhciIpLGdldEVudHJpZXM6aSgoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmdldEVudHJpZXMoKXx8W10sImdldEVudHJpZXMiKSxmaWx0ZXI6aShEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uZmlsdGVyKEQpfHxbXSwiZmlsdGVyIiksc2VhcmNoOmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LnNlYXJjaChEKXx8W10sInNlYXJjaCIpfX1zZXRBY3Rpdml0eUxvZ1Zpc2libGUoRCl7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU9RH10b2dnbGVBY3Rpdml0eUxvZygpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPSF0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX1nZXRBY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0IGJvdHRvbUJhcigpe3JldHVybiB0aGlzLmJvdHRvbWJhckVsZW1lbnQ/e2FkZFdpZGdldDppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5hZGRXaWRnZXQoRCksImFkZFdpZGdldCIpLHVwZGF0ZVdpZGdldDppKChELFQpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQudXBkYXRlV2lkZ2V0KEQsVCksInVwZGF0ZVdpZGdldCIpLHJlbW92ZVdpZGdldDppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5yZW1vdmVXaWRnZXQoRCksInJlbW92ZVdpZGdldCIpLGdldFdpZGdldDppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5nZXRXaWRnZXQoRCksImdldFdpZGdldCIpLGNsZWFyV2lkZ2V0czppKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuY2xlYXJXaWRnZXRzKCksImNsZWFyV2lkZ2V0cyIpLGFkZEFjdGlvbjppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5hZGRBY3Rpb24oRCksImFkZEFjdGlvbiIpLHJlbW92ZUFjdGlvbjppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5yZW1vdmVBY3Rpb24oRCksInJlbW92ZUFjdGlvbiIpLGNsZWFyQWN0aW9uczppKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuY2xlYXJBY3Rpb25zKCksImNsZWFyQWN0aW9ucyIpfTp7YWRkV2lkZ2V0OmkoRD0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5hZGRXaWRnZXQoRCkpfSwiYWRkV2lkZ2V0IiksdXBkYXRlV2lkZ2V0OmkoKEQsVCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8udXBkYXRlV2lkZ2V0KEQsVCkpfSwidXBkYXRlV2lkZ2V0IikscmVtb3ZlV2lkZ2V0OmkoRD0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVXaWRnZXQoRCkpfSwicmVtb3ZlV2lkZ2V0IiksZ2V0V2lkZ2V0OmkoRD0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5nZXRXaWRnZXQoRCksImdldFdpZGdldCIpLGNsZWFyV2lkZ2V0czppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyV2lkZ2V0cygpKX0sImNsZWFyV2lkZ2V0cyIpLGFkZEFjdGlvbjppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkQWN0aW9uKEQpKX0sImFkZEFjdGlvbiIpLHJlbW92ZUFjdGlvbjppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlQWN0aW9uKEQpKX0sInJlbW92ZUFjdGlvbiIpLGNsZWFyQWN0aW9uczppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyQWN0aW9ucygpKX0sImNsZWFyQWN0aW9ucyIpfX1zZXRCb3R0b21CYXJWaXNpYmxlKEQpe3RoaXMuYm90dG9tYmFyVmlzaWJsZT1ELEQ/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iKTp0aGlzLnNldEF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIsIiIpfWdldEJvdHRvbUJhclZpc2libGUoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJWaXNpYmxlfWFzeW5jIG5hdmlnYXRlVG9WaWV3KEQsVCl7bGV0IEc9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KEQpO2lmKCFHKXJldHVybiBjb25zb2xlLndhcm4oYENhbm5vdCBuYXZpZ2F0ZSB0byB1bmtub3duIHZpZXc6ICR7RH1gKSwhMTtsZXQgJGU9YXdhaXQgdGhpcy52aWV3UmVnaXN0cnkuY2FuTGVhdmVDdXJyZW50VmlldygpO2lmKCRlIT09ITApaWYodHlwZW9mICRlPT0ic3RyaW5nIil7aWYoIXdpbmRvdy5jb25maXJtKCRlKSlyZXR1cm4hMX1lbHNlIHJldHVybiExO3RoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZGluZyIsdmlld0lkOkR9KTt0cnl7YXdhaXQgdGhpcy5sb2FkVmlldyhHLFQpO2xldCBQZT1HLnJvdXRlfHxEO2lmKFQpZm9yKGxldFtWZSxVZV1vZiBPYmplY3QuZW50cmllcyhUKSlQZT1QZS5yZXBsYWNlKGA6JHtWZX1gLFVlKTtsZXQgRmU9YCMke1BlfWA7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoIT09RmUmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7dmlld0lkOkR9LCIiLEZlKSwhMH1jYXRjaChQZSl7cmV0dXJuIHRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZEVycm9yIix2aWV3SWQ6RCxlcnJvcjpQZX0pLCExfX1nZXRDdXJyZW50Vmlldygpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3fWdldFZpZXdSZWdpc3RyeSgpe3JldHVybiB0aGlzLnZpZXdSZWdpc3RyeX1jb25maWd1cmUoRCl7RC52aWV3cyYmKHRoaXMudmlld1JlZ2lzdHJ5LmNsZWFyKCksdGhpcy52aWV3UmVnaXN0cnkucmVnaXN0ZXJBbGwoRC52aWV3cykpLEQuYnJhbmRpbmcmJih0aGlzLm1haW5tZW51TG9nb0ljb249RC5icmFuZGluZy5sb2dvSWNvbnx8IiIsdGhpcy5tYWlubWVudUxvZ29UZXh0PUQuYnJhbmRpbmcubG9nb1RleHR8fCIiKSxELmFwcEJhciYmKHRoaXMuYXBwYmFyTWVudUl0ZW1zPUQuYXBwQmFyLm1lbnVJdGVtc3x8W10sdGhpcy5hcHBiYXJCcmVhZGNydW1icz1ELmFwcEJhci5icmVhZGNydW1ic3x8IiIsdGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yPUQuYXBwQmFyLmJyZWFkY3J1bWJTZXBhcmF0b3J8fCIgPiAiLHRoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUQuYXBwQmFyLnNob3dXaW5kb3dDb250cm9scz8/ITAsdGhpcy5hcHBiYXJTaG93U2VhcmNoPUQuYXBwQmFyLnNob3dTZWFyY2g/PyExLHRoaXMuYXBwYmFyVXNlcj1ELmFwcEJhci51c2VyLHRoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1ELmFwcEJhci5wcm9maWxlTWVudUl0ZW1zfHxbXSksRC5tYWluTWVudSYmKEQubWFpbk1lbnUuc2VjdGlvbnM/dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLmJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoRCk6RC5tYWluTWVudS5ncm91cHMmJih0aGlzLm1haW5tZW51R3JvdXBzPUQubWFpbk1lbnUuZ3JvdXBzKSxELm1haW5NZW51LmxvZ29JY29uJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUQubWFpbk1lbnUubG9nb0ljb24pLEQubWFpbk1lbnUubG9nb1RleHQmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9RC5tYWluTWVudS5sb2dvVGV4dCksRC5tYWluTWVudS5ib3R0b21UYWJzP3RoaXMubWFpbm1lbnVCb3R0b21UYWJzPUQubWFpbk1lbnUuYm90dG9tVGFiczpELm1haW5NZW51LmJvdHRvbUl0ZW1zJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoRC5tYWluTWVudS5ib3R0b21JdGVtcykpKSxELmJvdHRvbUJhciYmKHRoaXMuc2V0Qm90dG9tQmFyVmlzaWJsZShELmJvdHRvbUJhci52aXNpYmxlPz8hMCksRC5ib3R0b21CYXIud2lkZ2V0cyYmRC5ib3R0b21CYXIud2lkZ2V0cy5mb3JFYWNoKFQ9Pnt0aGlzLmJvdHRvbUJhci5hZGRXaWRnZXQoVCl9KSxELmJvdHRvbUJhci5hY3Rpb25zJiZELmJvdHRvbUJhci5hY3Rpb25zLmZvckVhY2goVD0+e3RoaXMuYm90dG9tQmFyLmFkZEFjdGlvbihUKX0pKSx0aGlzLnNldHVwUm91dGVySW50ZWdyYXRpb24oRCksRC5vblZpZXdDaGFuZ2UmJnRoaXMudmlld0NoYW5nZWQkLnN1YnNjcmliZShUPT57RC5vblZpZXdDaGFuZ2UoVC52aWV3SWQsVC52aWV3KX0pLEQub25TZWFyY2gmJih0aGlzLnNlYXJjaENhbGxiYWNrPUQub25TZWFyY2gpLEQuZGVmYXVsdFZpZXcmJnRoaXMubmF2aWdhdGVUb1ZpZXcoRC5kZWZhdWx0Vmlldyl9c2V0dXBSb3V0ZXJJbnRlZ3JhdGlvbihEKXtsZXQgVD1pKCgpPT57bGV0ICRlPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKCEkZSlyZXR1cm47bGV0IFBlPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKCRlKTtQZSYmdGhpcy5uYXZpZ2F0ZVRvVmlldyhQZS52aWV3LmlkLFBlLnBhcmFtcyl9LCJoYW5kbGVIYXNoQ2hhbmdlIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLFQpLHRoaXMucm91dGVyQ2xlYW51cD0oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixUKX07bGV0IEc9d2luZG93LmxvY2F0aW9uLmhhc2guc2xpY2UoMSk7aWYoRyl7bGV0ICRlPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKEcpOyRlJiZzZXRUaW1lb3V0KCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KCRlLnZpZXcuaWQsJGUucGFyYW1zKSwwKX19YnVpbGRNYWluTWVudUZyb21TZWN0aW9ucyhEKXtyZXR1cm4gRC5tYWluTWVudT8uc2VjdGlvbnM/RC5tYWluTWVudS5zZWN0aW9ucy5tYXAoVD0+KHtuYW1lOlQubmFtZXx8IiIsaXRlbXM6VC52aWV3cy5tYXAoRz0+e2xldCAkZT10aGlzLnZpZXdSZWdpc3RyeS5nZXQoRyk7cmV0dXJuICRlP3trZXk6JGUuaWQsaWNvbk5hbWU6JGUuaWNvbk5hbWUsYWN0aW9uOmkoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoRyksImFjdGlvbiIpLGJhZGdlOiRlLmJhZGdlfTooY29uc29sZS53YXJuKGBWaWV3ICIke0d9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX0pKTpbXX1idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoRCl7cmV0dXJuIEQubWFwKFQ9PntsZXQgRz10aGlzLnZpZXdSZWdpc3RyeS5nZXQoVCk7cmV0dXJuIEc/e2tleTpHLmlkLGljb25OYW1lOkcuaWNvbk5hbWUsYWN0aW9uOmkoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoVCksImFjdGlvbiIpfTooY29uc29sZS53YXJuKGBWaWV3ICIke1R9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX1hc3luYyBsb2FkVmlldyhELFQpe2xldCBHPXRoaXMuY3VycmVudFZpZXc7dGhpcy5jdXJyZW50Vmlldz1EO2xldCAkZT10aGlzLm1haW5jb250ZW50Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKXx8dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKTtpZigkZSl7bGV0IEZlPWF3YWl0IHRoaXMudmlld1JlZ2lzdHJ5LmFjdGl2YXRlVmlldyhELmlkLCRlLFQpO0ZlJiZ0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImFjdGl2YXRlZCIsdmlld0lkOkQuaWQsZWxlbWVudDpGZSxwYXJhbXM6VH0pfUQuc2Vjb25kYXJ5TWVudSYmKHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1ELnNlY29uZGFyeU1lbnUsdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1ELm5hbWUpLEQuY29udGVudFRhYnMmJih0aGlzLm1haW5jb250ZW50VGFicz1ELmNvbnRlbnRUYWJzKSx0aGlzLnNldE1haW5NZW51U2VsZWN0aW9uKEQuaWQpO2xldCBQZT17dmlld0lkOkQuaWQsdmlldzpELHByZXZpb3VzVmlldzpHLHBhcmFtczpUfTt0aGlzLnZpZXdDaGFuZ2VkJC5uZXh0KFBlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2aWV3LWNoYW5nZSIse2RldGFpbDpQZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhck1lbnVTZWxlY3QoRCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLW1lbnUtc2VsZWN0Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyQnJlYWRjcnVtYk5hdmlnYXRlKEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1icmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyU2VhcmNoQ2xpY2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItc2VhcmNoLWNsaWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJTZWFyY2hRdWVyeShEKXt0aGlzLnNlYXJjaENhbGxiYWNrJiZ0aGlzLnNlYXJjaENhbGxiYWNrKEQuZGV0YWlsLnF1ZXJ5KSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2gtcXVlcnkiLHtkZXRhaWw6RC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJVc2VyTWVudU9wZW4oKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItdXNlci1tZW51LW9wZW4iLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1wcm9maWxlLW1lbnUtc2VsZWN0Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTWFpbm1lbnVUYWJTZWxlY3QoRCl7dGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPUQuZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYWlubWVudS10YWItc2VsZWN0Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlU2Vjb25kYXJ5bWVudUl0ZW1TZWxlY3QoRCl7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPUQuZGV0YWlsLml0ZW0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Vjb25kYXJ5bWVudS1pdGVtLXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU1haW5tZW51Q29sbGFwc2VDaGFuZ2UoRCl7dGhpcy5tYWlubWVudUNvbGxhcHNlZD1ELmRldGFpbC5jb2xsYXBzZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWFpbm1lbnUtY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlU2Vjb25kYXJ5bWVudUNvbGxhcHNlQ2hhbmdlKEQpe3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1ELmRldGFpbC5jb2xsYXBzZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Vjb25kYXJ5bWVudS1jb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6RC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZW50VGFiU2VsZWN0KEQpe3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1ELmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC10YWItc2VsZWN0Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGVudFRhYkNsb3NlKEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtdGFiLWNsb3NlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c3RhdGlje3p0KGEsdCl9fTtyZXR1cm4gcDE9YX0pKCl9KTt2YXIgdGZhPWcoKCk9PntlZmEoKTtfaXQoKX0pO3ZhciBhZmE9ZygoKT0+e1RpdCgpfSk7dmFyIHNmYT1nKCgpPT57TWl0KCl9KTt2YXIgaWZhPWcoKCk9Pnt6aXQoKX0pO3ZhciByZmE9ZygoKT0+eyRldCgpfSk7dmFyIG9mYT1nKCgpPT57Q2l0KCl9KTt2YXIgSmNlLGJnLG5mYSxsZmE9ZygoKT0+e3BvKCk7em4oKTtDcigpO3BlKCk7RjEoKTtVYSgpO3B0KCk7SmNlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxiZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbmZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1tb2JpbGVuYXZpZ2F0aW9uIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNNb2JpbGVuYXZpZ2F0aW9uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtZKCldLEpjZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImhlYWRpbmciaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5oZWFkaW5nLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuaGVhZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksSmNlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJtZW51SXRlbXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5tZW51SXRlbXMsImdldCIpLHNldDppKChmLHkpPT57Zi5tZW51SXRlbXM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLEpjZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vYmlsZU5hdlpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibW9iaWxlTmF2WkluZGV4ImluIGYsImhhcyIpLGdldDppKGY9PmYubW9iaWxlTmF2WkluZGV4LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YubW9iaWxlTmF2WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxKY2UobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3N0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pnt4LmNyZWF0ZUFuZFNob3coW3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0LWRhc2hib2FyZCIsYWN0aW9uOmkoYXN5bmMgbT0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBkYXNoYm9hcmQiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjppKGFzeW5jIG09Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gcHJvZmlsZSIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aShhc3luYyBtPT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHNldHRpbmdzIiksbnVsbCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAiLGljb25OYW1lOiJsdWNpZGU6aGVscC1jaXJjbGUiLGFjdGlvbjppKGFzeW5jIG09Pihjb25zb2xlLmxvZygiU2hvdyBoZWxwIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsdWNpZGU6bG9nLW91dCIsYWN0aW9uOmkoYXN5bmMgbT0+KGNvbnNvbGUubG9nKCJTaWduIG91dCIpLG51bGwpLCJhY3Rpb24iKX1dKX19Pk9wZW4gTW9iaWxlIE5hdmlnYXRpb248L2RlZXMtYnV0dG9uPgogIGAsImRlbW8iKTtzdGF0aWMgc2luZ2xldG9uUmVmO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KG0pe3JldHVybiB0aGlzLnNpbmdsZXRvblJlZnx8KHRoaXMuc2luZ2xldG9uUmVmPW5ldyB4LGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc2luZ2xldG9uUmVmKSxhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5pbml0KCkpLHRoaXMuc2luZ2xldG9uUmVmLm1lbnVJdGVtcz1tLGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnNpbmdsZXRvblJlZi5zaG93KCksdGhpcy5zaW5nbGV0b25SZWZ9I2U9YmcodGhpcyxvLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhtKXt0aGlzLiNlPW19I3Q9KGJnKHRoaXMsbCksYmcodGhpcyxkLFtdKSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBtZW51SXRlbXMobSl7dGhpcy4jdD1tfSNhPShiZyh0aGlzLHUpLGJnKHRoaXMsYiwxZTMpKTtnZXQgbW9iaWxlTmF2WkluZGV4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1vYmlsZU5hdlpJbmRleChtKXt0aGlzLiNhPW19cmVhZHlEZWZlcnJlZD0oYmcodGhpcyx2KSxsdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9YXN5bmMgaW5pdCgpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgfQoKICAgICAgLm1haW4gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLm1haW4uc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW46IDhweCAxNnB4OwogICAgICB9CgogICAgICAvKiBNb2JpbGUgcmVzcG9uc2l2ZW5lc3MgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7CiAgICAgICAgLm1haW4gewogICAgICAgICAgbWF4LXdpZHRoOiAxMDB2dzsKICAgICAgICAgIHdpZHRoOiA4NXZ3OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogQW5pbWF0aW9uIGZvciBtZW51IGl0ZW1zICovCiAgICAgIEBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi5zaG93IC5tZW51SXRlbSB7CiAgICAgICAgYW5pbWF0aW9uOiBzbGlkZUluUmlnaHQgMC4zcyBlYXNlLW91dCBmb3J3YXJkczsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0taXRlbS1pbmRleCwgMCkgKiAwLjA1cyk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbiB7CiAgICAgICAgICAtLXotaW5kZXg6ICR7dGhpcy5tb2JpbGVOYXZaSW5kZXh9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9oMj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgobSxmKT0+ImRpdmlkZXIiaW4gbSYmbS5kaXZpZGVyP3dgPGRpdiBjbGFzcz0ibWVudUl0ZW0tZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJtZW51SXRlbSIKICAgICAgICAgICAgICAgIHN0eWxlPSItLWl0ZW0taW5kZXg6ICR7Zn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmhpZGUoKSxtLmFjdGlvbih0aGlzKX19IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7bS5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7bS5pY29uTmFtZX0gc2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51SXRlbS10ZXh0Ij4ke20ubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI7YXN5bmMgc2hvdygpe2xldCBtPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIik7dGhpcy53aW5kb3dMYXllcj8oZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy53aW5kb3dMYXllciksYXdhaXQgdGhpcy53aW5kb3dMYXllci5zaG93KCkpOih0aGlzLndpbmRvd0xheWVyPWF3YWl0IGhvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuaGlkZSgpfSkpLHRoaXMubW9iaWxlTmF2WkluZGV4PXhhLmdldE5leHRaSW5kZXgoKSx4YS5yZWdpc3Rlcih0aGlzLHRoaXMubW9iaWxlTmF2WkluZGV4KSxhd2FpdCBtLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTApLGYuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhpZGUoKXtsZXQgbT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW4iKS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93IikseGEudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCkseGEudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7YmcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIGNmYT1nKCgpPT57bGZhKCl9KTt2YXIgZGZhPWcoKCk9PntpZGEoKTtEZXQoKTtTZGEoKTt0ZmEoKTthZmEoKTtzZmEoKTtpZmEoKTtyZmEoKTtvZmEoKTtjZmEoKX0pO3ZhciB1ZmE9ZygoKT0+e0Q4KCl9KTt2YXIgcGZhLCRpdCxoZmEsZmZhPWcoKCk9PntwZSgpO3BmYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sJGl0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxoZmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWJ1dHRvbi1leGl0IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNCdXR0b25FeGl0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scGZhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ic2l6ZSJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LnNpemUsImdldCIpLHNldDppKCh1LGMpPT57dS5zaXplPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxwZmEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtYnV0dG9uLWV4aXQ+PC9kZWVzLWJ1dHRvbi1leGl0PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPSRpdCh0aGlzLG8sMjQpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNpemUoZCl7dGhpcy4jZT1kfXN0eWxlcz0oJGl0KHRoaXMsbCksW2guZGVmYXVsdFN0eWxlcyxKYAoKICAgIGBdKTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaXJzdExpbmUiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY29uZExpbmUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljeyRpdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgbWZhPWcoKCk9PntmZmEoKX0pO3ZhciBnZmEsYmZhPWcoKCk9PntwZSgpO2dmYT1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+QmFzaWMgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aG91dCBsYWJlbHMgZm9yIHNpbXBsZSBncm91cGluZzwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDE8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMzwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TGFiZWxlZCBCdXR0b24gR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QnV0dG9uIGdyb3VwcyB3aXRoIGRlc2NyaXB0aXZlIGxhYmVsczwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlZpZXcgTW9kZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5HcmlkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DYXJkczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TXVsdGlwbGUgR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+TXVsdGlwbGUgYnV0dG9uIGdyb3VwcyB1c2VkIHRvZ2V0aGVyPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRhdGFzZXQ6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlRpbWUgUmFuZ2U6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjFIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj4yNEg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+N0Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+MzBEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5FeHBvcnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VmVydGljYWwgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCB2ZXJ0aWNhbCBsYXlvdXQ8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAyNHB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgZGlyZWN0aW9uPSJ2ZXJ0aWNhbCIgbGFiZWw9Ik5hdmlnYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRhc2hib2FyZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+QW5hbHl0aWNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlcG9ydHM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2V0dGluZ3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RWRpdCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRlbGV0ZSBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk1peGVkIEJ1dHRvbiBUeXBlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRpZmZlcmVudCBidXR0b24gdHlwZXMgd2l0aGluIGdyb3VwczwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlN0YXR1czoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InN1Y2Nlc3MiPkFjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+UGVuZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGFuZ2VyIj5JbmFjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIERpdCxqWCx2ZmEseGZhPWcoKCk9PntwZSgpO2t0KCk7YmZhKCk7cHQoKTtEaXQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGpYPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx2ZmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWJ1dHRvbi1ncm91cCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uR3JvdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sRGl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+ImxhYmVsImluIHYsImhhcyIpLGdldDppKHY9PnYubGFiZWwsImdldCIpLHNldDppKCh2LHgpPT57di5sYWJlbD14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksRGl0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJkaXJlY3Rpb24iaW4gdiwiaGFzIiksZ2V0Omkodj0+di5kaXJlY3Rpb24sImdldCIpLHNldDppKCh2LHgpPT57di5kaXJlY3Rpb249eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLERpdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWdmYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPWpYKHRoaXMsbywiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKGIpe3RoaXMuI2U9Yn0jdD0oalgodGhpcyxsKSxqWCh0aGlzLGQsImhvcml6b250YWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkaXJlY3Rpb24oYil7dGhpcy4jdD1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxqWCh0aGlzLHUpLHRhLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncm91cC52ZXJ0aWNhbCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgLmxhYmVsIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoKikgewogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0ibGFiZWwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7algoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIHlmYT1nKCgpPT57eGZhKCl9KTt2YXIgd2ZhPWcoKCk9Pnt1ZmEoKTttZmEoKTt5ZmEoKX0pO3ZhciBrZmEsU2ZhPWcoKCk9PntwZSgpO0l0KCk7TGl0KCk7a2ZhPWkoKCk9PntsZXQgcz17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOlt7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTNlNSkudG9JU09TdHJpbmcoKSx5OjI1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTI0ZTQpLnRvSVNPU3RyaW5nKCkseTozMH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xOGU0KS50b0lTT1N0cmluZygpLHk6Mjh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMTJlNCkudG9JU09TdHJpbmcoKSx5OjM1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTZlNCkudG9JU09TdHJpbmcoKSx5OjMyfSx7eDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseTozOH1dfSx7bmFtZToiTWVtb3J5IixkYXRhOlt7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTNlNSkudG9JU09TdHJpbmcoKSx5OjQ1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTI0ZTQpLnRvSVNPU3RyaW5nKCkseTo0OH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xOGU0KS50b0lTT1N0cmluZygpLHk6NDZ9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMTJlNCkudG9JU09TdHJpbmcoKSx5OjUyfSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTZlNCkudG9JU09TdHJpbmcoKSx5OjUwfSx7eDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseTo1NX1dfV19fSxlPXtzeXN0ZW06aSh0PT5gJHt0fSVgLCJzeXN0ZW0iKX07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjbWFpbi1jaGFydCIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjY29ubmVjdGlvbnMtY2hhcnQiKSxuLG8sbD0ic3lzdGVtIixwPXtzeXN0ZW06aShIPT5gJHtIfSVgLCJzeXN0ZW0iKSxuZXR3b3JrOmkoSD0+YCR7SH0gTWJwc2AsIm5ldHdvcmsiKSxzYWxlczppKEg9PmAkJHtILnRvTG9jYWxlU3RyaW5nKCl9YCwic2FsZXMiKX0sZD0xMjAqMWUzLHU9MWUzLGM9NWUzLGI9e2NwdTozMCxtZW1vcnk6NTAsZG93bmxvYWQ6MTUwLHVwbG9hZDozMCxjb25uZWN0aW9uczoxNTB9LHY9aSgoSCxrLFM9Yyk9PntsZXQgST1bXSxQPURhdGUubm93KCksUj1NYXRoLmZsb29yKGQvUyk7Zm9yKGxldCBLPVI7Sz49MDtLLS0pe2xldCBWPW5ldyBEYXRlKFAtSypTKS50b0lTT1N0cmluZygpLFc9SCsoTWF0aC5yYW5kb20oKS0uNSkqaztJLnB1c2goe3g6Vix5Ok1hdGgucm91bmQoVyl9KX1yZXR1cm4gSX0sImdlbmVyYXRlSW5pdGlhbERhdGEiKSx4PXtzeXN0ZW06e2xhYmVsOiJTeXN0ZW0gVXNhZ2UgKCUpIixzZXJpZXM6W3tuYW1lOiJDUFUiLGRhdGE6dihiLmNwdSwxMCl9LHtuYW1lOiJNZW1vcnkiLGRhdGE6dihiLm1lbW9yeSw4KX1dfSxuZXR3b3JrOntsYWJlbDoiTmV0d29yayBUcmFmZmljIChNYnBzKSIsc2VyaWVzOlt7bmFtZToiRG93bmxvYWQiLGRhdGE6dihiLmRvd25sb2FkLDMwKX0se25hbWU6IlVwbG9hZCIsZGF0YTp2KGIudXBsb2FkLDEwKX1dfSxzYWxlczp7bGFiZWw6IlNhbGVzIEFuYWx5dGljcyIsc2VyaWVzOlt7bmFtZToiUmV2ZW51ZSIsZGF0YTpbe3g6IjIwMjUtMDEtMDEiLHk6NDVlM30se3g6IjIwMjUtMDEtMDIiLHk6NTJlM30se3g6IjIwMjUtMDEtMDMiLHk6NDhlM30se3g6IjIwMjUtMDEtMDQiLHk6NjFlM30se3g6IjIwMjUtMDEtMDUiLHk6NThlM30se3g6IjIwMjUtMDEtMDYiLHk6NjVlM31dfSx7bmFtZToiUHJvZml0IixkYXRhOlt7eDoiMjAyNS0wMS0wMSIseToxMmUzfSx7eDoiMjAyNS0wMS0wMiIseToxNGUzfSx7eDoiMjAyNS0wMS0wMyIseToxMWUzfSx7eDoiMjAyNS0wMS0wNCIseToxOGUzfSx7eDoiMjAyNS0wMS0wNSIseToxNmUzfSx7eDoiMjAyNS0wMS0wNiIseToyZTR9XX1dfX0sbT1pKChILGssUyxJPTUpPT57bGV0IFA9KE1hdGgucmFuZG9tKCktLjUpKkkqMixSPUgrUCxWPSgoaytTKS8yLVIpKi4xO3JldHVybiBSKz1WLFI9TWF0aC5tYXgoayxNYXRoLm1pbihTLFIpKSxNYXRoLnJvdW5kKFIpfSwiZ2V0TmV4dFZhbHVlIiksZj1EYXRlLm5vdygpLHk9RGF0ZS5ub3coKSxNPWkoKCk9PntpZighYSlyZXR1cm47bGV0IEg9RGF0ZS5ub3coKTtpZihILWY+PWMpe2Y9SDtsZXQgUz1uZXcgRGF0ZShIKS50b0lTT1N0cmluZygpO2lmKGw9PT0ic3lzdGVtIil7Yi5jcHU9bShiLmNwdSwyMCw1MCwzKSxiLm1lbW9yeT1tKGIubWVtb3J5LDQwLDcwLDIpO2xldCBJPWEuY2hhcnRTZXJpZXMubWFwKChQLFIpPT4oe25hbWU6UC5uYW1lLGRhdGE6Wy4uLlAuZGF0YSxSPT09MD97eDpTLHk6Yi5jcHV9Ont4OlMseTpiLm1lbW9yeX1dfSkpO2EudXBkYXRlU2VyaWVzKEksITEpfWVsc2UgaWYobD09PSJuZXR3b3JrIil7Yi5kb3dubG9hZD1tKGIuZG93bmxvYWQsMTAwLDIwMCwxMCksYi51cGxvYWQ9bShiLnVwbG9hZCwyMCw1MCw1KTtsZXQgST1hLmNoYXJ0U2VyaWVzLm1hcCgoUCxSKT0+KHtuYW1lOlAubmFtZSxkYXRhOlsuLi5QLmRhdGEsUj09PTA/e3g6Uyx5OmIuZG93bmxvYWR9Ont4OlMseTpiLnVwbG9hZH1dfSkpO2EudXBkYXRlU2VyaWVzKEksITEpfX19LCJhZGRSZWFsdGltZURhdGEiKSx6PWkoKCk9PntpZighcilyZXR1cm47bGV0IEg9RGF0ZS5ub3coKSxrPW5ldyBEYXRlKEgpLnRvSVNPU3RyaW5nKCksUz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjEpLTEwO2IuY29ubmVjdGlvbnM9TWF0aC5tYXgoNTAsTWF0aC5taW4oMzAwLGIuY29ubmVjdGlvbnMrUykpO2xldCBJPXIuY2hhcnRTZXJpZXMsUD1be25hbWU6SVswXT8ubmFtZXx8IkNvbm5lY3Rpb25zIixkYXRhOlsuLi5JWzBdPy5kYXRhfHxbXSx7eDprLHk6Yi5jb25uZWN0aW9uc31dfV07ci51cGRhdGVTZXJpZXMoUCwhMSl9LCJ1cGRhdGVDb25uZWN0aW9ucyIpLE49aShIPT57bD1IO2xldCBrPXhbSF07YS5sYWJlbD1rLmxhYmVsLGEuc2VyaWVzPWsuc2VyaWVzLGEueUF4aXNGb3JtYXR0ZXI9cFtIXSxIPT09InN5c3RlbSI/KGEueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixhLnlBeGlzTWF4PTEwMCk6YS55QXhpc1NjYWxpbmc9ImR5bmFtaWMiLGY9RGF0ZS5ub3coKS1jfSwic3dpdGNoRGF0YXNldCIpLEM9aSgoKT0+eyFuJiYobD09PSJzeXN0ZW0ifHxsPT09Im5ldHdvcmsiKSYmKGEucmVhbHRpbWVNb2RlPSEwLG49d2luZG93LnNldEludGVydmFsKCgpPT5NKCksYykpLG98fChyLnJlYWx0aW1lTW9kZT0hMCxvPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+eigpLHUpKX0sInN0YXJ0UmVhbHRpbWUiKSxfPWkoKCk9PntuJiYod2luZG93LmNsZWFySW50ZXJ2YWwobiksbj1udWxsLGEucmVhbHRpbWVNb2RlPSExKSxvJiYod2luZG93LmNsZWFySW50ZXJ2YWwobyksbz1udWxsLHIucmVhbHRpbWVNb2RlPSExKX0sInN0b3BSZWFsdGltZSIpLE89aSgoKT0+e2w9PT0ic3lzdGVtIj8oYi5jcHU9TWF0aC5yYW5kb20oKT4uNT84NToyNSxiLm1lbW9yeT1NYXRoLnJhbmRvbSgpPi41PzgwOjQ1KTpsPT09Im5ldHdvcmsiJiYoYi5kb3dubG9hZD1NYXRoLnJhbmRvbSgpPi41PzI1MDoxMDAsYi51cGxvYWQ9TWF0aC5yYW5kb20oKT4uNT84MDoyMCksYi5jb25uZWN0aW9ucz1NYXRoLnJhbmRvbSgpPi41PzI4MDo4MCxmPTAseT0wfSwicmFuZG9taXplRGF0YSIpLCQ9aSgoKT0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGs9PntsZXQgUz1rLnRleHQ/LnRyaW0oKTtTPT09IlN5c3RlbSBVc2FnZSI/ay50eXBlPWw9PT0ic3lzdGVtIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiOlM9PT0iTmV0d29yayBUcmFmZmljIj9rLnR5cGU9bD09PSJuZXR3b3JrIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiOlM9PT0iU2FsZXMgRGF0YSImJihrLnR5cGU9bD09PSJzYWxlcyI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIil9KX0sInVwZGF0ZUJ1dHRvblN0YXRlcyIpO2lmKHQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKEg9PntsZXQgaz1ILnRleHQ/LnRyaW0oKTtrPT09IlN5c3RlbSBVc2FnZSI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntOKCJzeXN0ZW0iKSwkKCl9KTprPT09Ik5ldHdvcmsgVHJhZmZpYyI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntOKCJuZXR3b3JrIiksJCgpfSk6az09PSJTYWxlcyBEYXRhIj9ILmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e04oInNhbGVzIiksJCgpfSk6az09PSJTdGFydCBMaXZlIj9ILmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+QygpKTprPT09IlN0b3AgTGl2ZSI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pl8oKSk6az09PSJTcGlrZSBWYWx1ZXMiJiZILmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+TygpKX0pLGEucm9sbGluZ1dpbmRvdz1kLGEucmVhbHRpbWVNb2RlPSExLGEueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixhLnlBeGlzTWF4PTEwMCxhLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e2EudXBkYXRlVGltZVdpbmRvdygpfSwxMDApLHIpe2xldCBIPXYoYi5jb25uZWN0aW9ucywzMCx1KTtyLnNlcmllcz1be25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOkh9XSxyLnJvbGxpbmdXaW5kb3c9ZCxyLnJlYWx0aW1lTW9kZT0hMSxyLnlBeGlzU2NhbGluZz0iZml4ZWQiLHIueUF4aXNNYXg9MzUwLHIuYXV0b1Njcm9sbEludGVydmFsPTFlMyxzZXRUaW1lb3V0KCgpPT57ci51cGRhdGVUaW1lV2luZG93KCl9LDEwMCl9fX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8gewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPlN5c3RlbSBVc2FnZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yayBUcmFmZmljPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlcyBEYXRhPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iUmVhbC10aW1lOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBMaXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlIFZhbHVlczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiPgogICAgICAgIDxkZWVzLWNoYXJ0LWFyZWEKICAgICAgICAgIGlkPSJtYWluLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7cy5zeXN0ZW0ubGFiZWx9CiAgICAgICAgICAuc2VyaWVzPSR7cy5zeXN0ZW0uc2VyaWVzfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7ZS5zeXN0ZW19CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciIgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0iY29ubmVjdGlvbnMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiQWN0aXZlIENvbm5lY3Rpb25zIn0KICAgICAgICAgIC5zZXJpZXM9JHtbe25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOltdfV19CiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHt0PT5gJHt0fWB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIFJlYWwtdGltZSBtb25pdG9yaW5nIHdpdGggMi1taW51dGUgcm9sbGluZyB3aW5kb3cg4oCiIAogICAgICAgIFVwZGF0ZXMgZXZlcnkgc2Vjb25kIHdpdGggc21vb3RoIHZhbHVlIHRyYW5zaXRpb25zIOKAoiAKICAgICAgICBDbGljayAnU3Bpa2UgVmFsdWVzJyB0byBzaW11bGF0ZSBsb2FkIHNwaWtlcwogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIF9mYSxNZmE9ZygoKT0+e3BlKCk7cHQoKTtfZmE9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgICBkZWVzLXRpbGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAuY2hhcnRIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgICB9CiAgICAgIC5jaGFydExhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQogICAgICAuZXhwYW5kQnRuIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgLmV4cGFuZEJ0bjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CiAgICAgIC5jaGFydENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwIDAgNHB4IDA7CiAgICAgIH0KICAgICAgLnN0YXRzQmFyIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgICAuc3RhdHNTZXJpZXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAuc3RhdHNTZXJpZXMgKyAuc3RhdHNTZXJpZXMgewogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIC5zdGF0c0NvbG9yIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAuc3RhdHNOYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICAgIH0KICAgICAgLnN0YXRzSXRlbSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CiAgICAgIC5zdGF0c0l0ZW0gc3Ryb25nIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIC5sdy10b29sdGlwIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgfQogICAgYF19KTt2YXIgemZhLENmYT1nKCgpPT57cGUoKTtVYSgpO3pmYT1pKHM9PndgCiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHtzLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZXhwYW5kQnRuIiBAY2xpY2s9JHsoKT0+cy50b2dnbGVGdWxsUGFnZSgpfSB0aXRsZT0iJHtzLmlzRnVsbFBhZ2U/IkV4aXQgZnVsbCBwYWdlIjoiRnVsbCBwYWdlIn0iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtzLmlzRnVsbFBhZ2U/Imx1Y2lkZTpNaW5pbWl6ZTIiOiJsdWNpZGU6TWF4aW1pemUyIn0gLmljb25TaXplPSR7MTR9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgICAgICAgJHtzLnNlcmllc1N0YXRzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic3RhdHNCYXIiPgogICAgICAgICAgICAgICR7cy5zZXJpZXNTdGF0cy5tYXAoZT0+d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXRzU2VyaWVzIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzQ29sb3IiIHN0eWxlPSJiYWNrZ3JvdW5kOiR7ZS5jb2xvcn0iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzTmFtZSI+JHtlLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5sYXRlc3QgPHN0cm9uZz4ke3MueUF4aXNGb3JtYXR0ZXIoZS5sYXRlc3QpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+bWluIDxzdHJvbmc+JHtzLnlBeGlzRm9ybWF0dGVyKGUubWluKX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0l0ZW0iPm1heCA8c3Ryb25nPiR7cy55QXhpc0Zvcm1hdHRlcihlLm1heCl9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5hdmcgPHN0cm9uZz4ke3MueUF4aXNGb3JtYXR0ZXIoZS5hdmcpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgIGAsInJlbmRlckNoYXJ0QXJlYSIpfSk7dmFyIFdjLENpLFRmYSxMaXQ9ZygoKT0+e3BlKCk7a3QoKTtTZmEoKTtNZmEoKTtDZmEoKTtmdSgpO25yKCk7V2M9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LENpPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxUZmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoYXJ0LWFyZWEiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W107dmFyIGhlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRBcmVhIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bTCgpXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woe2F0dHJpYnV0ZTohMX0pXSxPPVtMKHt0eXBlOk51bWJlcn0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7dHlwZTpTdHJpbmd9KV0sSz1bTCh7dHlwZTpOdW1iZXJ9KV0sbWU9W0woe3R5cGU6TnVtYmVyfSldLFdjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hhcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImNoYXJ0ImluIGosImhhcyIpLGdldDppKGo9PmouY2hhcnQsImdldCIpLHNldDppKChqLHVlKT0+e2ouY2hhcnQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sbyxsKSxXYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllc1N0YXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJzZXJpZXNTdGF0cyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnNlcmllc1N0YXRzLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnNlcmllc1N0YXRzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGQsdSksV2ModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0Z1bGxQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJpc0Z1bGxQYWdlImluIGosImhhcyIpLGdldDppKGo9PmouaXNGdWxsUGFnZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5pc0Z1bGxQYWdlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGIsdiksV2ModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibGFiZWwiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5sYWJlbCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5sYWJlbD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxtLGYpLFdjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJzZXJpZXMiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zZXJpZXMsImdldCIpLHNldDppKChqLHVlKT0+e2ouc2VyaWVzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LE0seiksV2ModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc0Zvcm1hdHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ieUF4aXNGb3JtYXR0ZXIiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai55QXhpc0Zvcm1hdHRlciwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai55QXhpc0Zvcm1hdHRlcj11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxDLF8pLFdjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm9sbGluZ1dpbmRvdyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4icm9sbGluZ1dpbmRvdyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnJvbGxpbmdXaW5kb3csImdldCIpLHNldDppKChqLHVlKT0+e2oucm9sbGluZ1dpbmRvdz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSwkLEUpLFdjKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVhbHRpbWVNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJyZWFsdGltZU1vZGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5yZWFsdGltZU1vZGUsImdldCIpLHNldDppKChqLHVlKT0+e2oucmVhbHRpbWVNb2RlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGssUyksV2ModGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc1NjYWxpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InlBeGlzU2NhbGluZyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnlBeGlzU2NhbGluZywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai55QXhpc1NjYWxpbmc9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sUCxSKSxXYyh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InlBeGlzTWF4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJ5QXhpc01heCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnlBeGlzTWF4LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnlBeGlzTWF4PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFYsVyksV2ModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1Njcm9sbEludGVydmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJhdXRvU2Nyb2xsSW50ZXJ2YWwiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5hdXRvU2Nyb2xsSW50ZXJ2YWwsImdldCIpLHNldDppKChqLHVlKT0+e2ouYXV0b1Njcm9sbEludGVydmFsPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LEIsVSksV2MobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Rn0sbnVsbCx0KSxoZT1hPWUudmFsdWUsRiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpGfSl9c3RhdGljIGRlbW89a2ZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1DaSh0aGlzLG8sbnVsbCk7Z2V0IGNoYXJ0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNoYXJ0KEYpe3RoaXMuI2U9Rn0jdD0oQ2kodGhpcyxsKSxDaSh0aGlzLGQsW10pKTtnZXQgc2VyaWVzU3RhdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VyaWVzU3RhdHMoRil7dGhpcy4jdD1GfSNhPShDaSh0aGlzLHUpLENpKHRoaXMsYiwhMSkpO2dldCBpc0Z1bGxQYWdlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzRnVsbFBhZ2UoRil7dGhpcy4jYT1GfSNzPShDaSh0aGlzLHYpLENpKHRoaXMsbSwiVW50aXRsZWQgQ2hhcnQiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxhYmVsKEYpe3RoaXMuI3M9Rn0jaT0oQ2kodGhpcyxmKSxDaSh0aGlzLE0sW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlcmllcyhGKXt0aGlzLiNpPUZ9Z2V0IGNoYXJ0U2VyaWVzKCl7cmV0dXJuIHRoaXMuaW50ZXJuYWxDaGFydERhdGEubGVuZ3RoPjA/dGhpcy5pbnRlcm5hbENoYXJ0RGF0YTp0aGlzLnNlcmllc30jcj0oQ2kodGhpcyx6KSxDaSh0aGlzLEMsRj0+YCR7Rn0gTWJwc2ApKTtnZXQgeUF4aXNGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgeUF4aXNGb3JtYXR0ZXIoRil7dGhpcy4jcj1GfSNvPShDaSh0aGlzLF8pLENpKHRoaXMsJCwwKSk7Z2V0IHJvbGxpbmdXaW5kb3coKXtyZXR1cm4gdGhpcy4jb31zZXQgcm9sbGluZ1dpbmRvdyhGKXt0aGlzLiNvPUZ9I249KENpKHRoaXMsRSksQ2kodGhpcyxrLCExKSk7Z2V0IHJlYWx0aW1lTW9kZSgpe3JldHVybiB0aGlzLiNufXNldCByZWFsdGltZU1vZGUoRil7dGhpcy4jbj1GfSNsPShDaSh0aGlzLFMpLENpKHRoaXMsUCwiZHluYW1pYyIpKTtnZXQgeUF4aXNTY2FsaW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHlBeGlzU2NhbGluZyhGKXt0aGlzLiNsPUZ9I2M9KENpKHRoaXMsUiksQ2kodGhpcyxWLDEwMCkpO2dldCB5QXhpc01heCgpe3JldHVybiB0aGlzLiNjfXNldCB5QXhpc01heChGKXt0aGlzLiNjPUZ9I2Q9KENpKHRoaXMsVyksQ2kodGhpcyxCLDFlMykpO2dldCBhdXRvU2Nyb2xsSW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYXV0b1Njcm9sbEludGVydmFsKEYpe3RoaXMuI2Q9Rn1pbnRlcm5hbENoYXJ0RGF0YT0oQ2kodGhpcyxVKSxbXSk7YXV0b1Njcm9sbFRpbWVyPW51bGw7bGNCdW5kbGU9bnVsbDtzZXJpZXNBcGlzPW5ldyBNYXA7cHJpY2VMaW5lcz1uZXcgTWFwO3Rvb2x0aXBFbD1udWxsO0NIQVJUX0NPTE9SUz17ZGFyazpbImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMTczLjQgODAuNCUgNDAlKSIsImhzbCgyODAuMyA4Ny40JSA2Ni43JSkiLCJoc2woMjQuNiA5NSUgNTMuMSUpIl0sbGlnaHQ6WyJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgyODAuMyA0Ny43JSA1MC4yJSkiLCJoc2woMjAuNSA5MC4yJSA0OC4yJSkiXX07Y29uc3RydWN0b3IoKXtzdXBlcigpLHRhLnNldHVwKCksdGhpcy5yZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihhc3luYygpPT57aWYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMuY2hhcnQpdHJ5e3RoaXMuY2hhcnQucmVtb3ZlKCksdGhpcy5jaGFydD1udWxsLHRoaXMuc2VyaWVzQXBpcy5jbGVhcigpLHRoaXMucHJpY2VMaW5lcy5jbGVhcigpfWNhdGNoKEYpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRlc3Ryb3lpbmcgY2hhcnQ6IixGKX19KX1zdGF0aWMgc3R5bGVzPV9mYTtyZW5kZXIoKXtyZXR1cm4gemZhKHRoaXMpfWNvbnZlcnREYXRhVG9MQyhGKXtyZXR1cm4gRi5tYXAoaj0+e2xldCB1ZT10eXBlb2Ygai54PT0ibnVtYmVyIj9qLng6bmV3IERhdGUoai54KS5nZXRUaW1lKCk7cmV0dXJue3RpbWU6TWF0aC5mbG9vcih1ZS8xZTMpLHZhbHVlOmoueX19KS5zb3J0KChqLHVlKT0+ai50aW1lLXVlLnRpbWUpfWhzbFRvUmdiYShGLGope2xldCB1ZT1GLm1hdGNoKC9oc2xcKChbXildKylcKS8pO2lmKCF1ZSlyZXR1cm4gRjtsZXQgbGU9dWVbMV0udHJpbSgpLnNwbGl0KC9ccysvKTtpZihsZS5sZW5ndGg8MylyZXR1cm4gRjtsZXQgUT1wYXJzZUZsb2F0KGxlWzBdKS8zNjAsaWU9cGFyc2VGbG9hdChsZVsxXSkvMTAwLHRlPXBhcnNlRmxvYXQobGVbMl0pLzEwMCxlZSxrZSxYO2lmKGllPT09MCllZT1rZT1YPXRlO2Vsc2V7bGV0IFo9aSgoQSxzZSxvZSk9PihvZTwwJiYob2UrPTEpLG9lPjEmJihvZS09MSksb2U8LjE2NjY2NjY2NjY2NjY2NjY2P0ErKHNlLUEpKjYqb2U6b2U8LjU/c2U6b2U8LjY2NjY2NjY2NjY2NjY2NjY/QSsoc2UtQSkqKC42NjY2NjY2NjY2NjY2NjY2LW9lKSo2OkEpLCJodWUycmdiIikseWU9dGU8LjU/dGUqKDEraWUpOnRlK2llLXRlKmllLHE9Mip0ZS15ZTtlZT1aKHEseWUsUSsxLzMpLGtlPVoocSx5ZSxRKSxYPVoocSx5ZSxRLTEvMyl9cmV0dXJuYHJnYmEoJHtNYXRoLnJvdW5kKGVlKjI1NSl9LCAke01hdGgucm91bmQoa2UqMjU1KX0sICR7TWF0aC5yb3VuZChYKjI1NSl9LCAke2p9KWB9Z2V0U2VyaWVzQ29sb3JzKEYpe3JldHVybiBGP3RoaXMuQ0hBUlRfQ09MT1JTLmRhcms6dGhpcy5DSEFSVF9DT0xPUlMubGlnaHR9YXBwbHlUaGVtZSgpe2lmKCF0aGlzLmNoYXJ0fHwhdGhpcy5sY0J1bmRsZSlyZXR1cm47bGV0IEY9IXRoaXMuZ29CcmlnaHQsaj10aGlzLmdldFNlcmllc0NvbG9ycyhGKTt0aGlzLmNoYXJ0LmFwcGx5T3B0aW9ucyh7bGF5b3V0OntiYWNrZ3JvdW5kOnt0eXBlOnRoaXMubGNCdW5kbGUuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOiJ0cmFuc3BhcmVudCJ9LHRleHRDb2xvcjpGPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIixhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6e3ZlcnRMaW5lczp7Y29sb3I6Rj8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifSxob3J6TGluZXM6e2NvbG9yOkY/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn19fSk7bGV0IHVlPTA7Zm9yKGxldFssbGVdb2YgdGhpcy5zZXJpZXNBcGlzKXtsZXQgUT1qW3VlJWoubGVuZ3RoXTtsZS5hcHBseU9wdGlvbnMoe3RvcENvbG9yOnRoaXMuaHNsVG9SZ2JhKFEsRj8uNDouNSksYm90dG9tQ29sb3I6dGhpcy5oc2xUb1JnYmEoUSwwKSxsaW5lQ29sb3I6UX0pLHVlKyt9fXJlY3JlYXRlU2VyaWVzKEYpe2lmKCF0aGlzLmNoYXJ0fHwhdGhpcy5sY0J1bmRsZSlyZXR1cm47bGV0IGo9IXRoaXMuZ29CcmlnaHQsdWU9dGhpcy5nZXRTZXJpZXNDb2xvcnMoaik7Zm9yKGxldFssbGVdb2YgdGhpcy5zZXJpZXNBcGlzKXRoaXMuY2hhcnQucmVtb3ZlU2VyaWVzKGxlKTt0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKSxGLmZvckVhY2goKGxlLFEpPT57bGV0IGllPXVlW1EldWUubGVuZ3RoXSx0ZT10aGlzLmNoYXJ0LmFkZFNlcmllcyh0aGlzLmxjQnVuZGxlLkFyZWFTZXJpZXMse3RvcENvbG9yOnRoaXMuaHNsVG9SZ2JhKGllLGo/LjQ6LjUpLGJvdHRvbUNvbG9yOnRoaXMuaHNsVG9SZ2JhKGllLDApLGxpbmVDb2xvcjppZSxsaW5lV2lkdGg6MixsaW5lVHlwZTp0aGlzLmxjQnVuZGxlLkxpbmVUeXBlLkN1cnZlZCxsYXN0VmFsdWVWaXNpYmxlOiExLHByaWNlTGluZVZpc2libGU6ITEsY3Jvc3NoYWlyTWFya2VyVmlzaWJsZTohMCxjcm9zc2hhaXJNYXJrZXJSYWRpdXM6NH0pO3RlLnNldERhdGEodGhpcy5jb252ZXJ0RGF0YVRvTEMobGUuZGF0YSkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhsZS5uYW1lfHxgc2VyaWVzLSR7UX1gLHRlLGxlLmRhdGEsaWUpLHRoaXMueUF4aXNTY2FsaW5nIT09ImR5bmFtaWMiJiZ0ZS5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6dGhpcy55QXhpc01heH19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KSx0aGlzLnNlcmllc0FwaXMuc2V0KGxlLm5hbWV8fGBzZXJpZXMtJHtRfWAsdGUpfSksdGhpcy5jb21wdXRlU3RhdHMoRil9Y29tcHV0ZVN0YXRzKEYpe2xldCBqPSF0aGlzLmdvQnJpZ2h0LHVlPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKGopO3RoaXMuc2VyaWVzU3RhdHM9Ri5tYXAoKGxlLFEpPT57bGV0IGllPWxlLmRhdGEubWFwKFo9PloueSk7aWYoaWUubGVuZ3RoPT09MClyZXR1cm57bmFtZTpsZS5uYW1lfHxgc2VyaWVzLSR7UX1gLGxhdGVzdDowLG1pbjowLG1heDowLGF2ZzowLGNvbG9yOnVlW1EldWUubGVuZ3RoXX07bGV0IHRlPWllW2llLmxlbmd0aC0xXSxlZT1NYXRoLm1pbiguLi5pZSksa2U9TWF0aC5tYXgoLi4uaWUpLFg9TWF0aC5yb3VuZChpZS5yZWR1Y2UoKFoseWUpPT5aK3llLDApL2llLmxlbmd0aCoxMDApLzEwMDtyZXR1cm57bmFtZTpsZS5uYW1lfHxgc2VyaWVzLSR7UX1gLGxhdGVzdDp0ZSxtaW46ZWUsbWF4OmtlLGF2ZzpYLGNvbG9yOnVlW1EldWUubGVuZ3RoXX19KX11cGRhdGVQcmljZUxpbmVzKEYsaix1ZSxsZSl7bGV0IFE9dGhpcy5wcmljZUxpbmVzLmdldChGKTtpZihRKWZvcihsZXQgWCBvZiBRKWoucmVtb3ZlUHJpY2VMaW5lKFgpO2lmKHVlLmxlbmd0aD09PTApe3RoaXMucHJpY2VMaW5lcy5zZXQoRixbXSk7cmV0dXJufWxldCBpZT11ZS5tYXAoWD0+WC55KSx0ZT1pZS5yZWR1Y2UoKFgsWik9PlgrWiwwKS9pZS5sZW5ndGgsZWU9TWF0aC5tYXgoLi4uaWUpLGtlPVtdO2tlLnB1c2goai5jcmVhdGVQcmljZUxpbmUoe3ByaWNlOk1hdGgucm91bmQodGUqMTAwKS8xMDAsY29sb3I6dGhpcy5oc2xUb1JnYmEobGUsLjUpLGxpbmVXaWR0aDoxLGxpbmVTdHlsZToyLGF4aXNMYWJlbFZpc2libGU6ITAsdGl0bGU6ImF2ZyJ9KSksdGU+MCYmKGVlLXRlKS90ZT4uMSYma2UucHVzaChqLmNyZWF0ZVByaWNlTGluZSh7cHJpY2U6ZWUsY29sb3I6dGhpcy5oc2xUb1JnYmEobGUsLjgpLGxpbmVXaWR0aDoxLGxpbmVTdHlsZToxLGF4aXNMYWJlbFZpc2libGU6ITAsdGl0bGU6Im1heCJ9KSksdGhpcy5wcmljZUxpbmVzLnNldChGLGtlKX1zZXR1cFRvb2x0aXAoKXt0aGlzLmNoYXJ0JiYodGhpcy50b29sdGlwRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy50b29sdGlwRWwuY2xhc3NOYW1lPSJsdy10b29sdGlwIix0aGlzLnRvb2x0aXBFbC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik/LmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcEVsKSx0aGlzLmNoYXJ0LnN1YnNjcmliZUNyb3NzaGFpck1vdmUoRj0+e2lmKCF0aGlzLnRvb2x0aXBFbClyZXR1cm47aWYoIUYucG9pbnR8fCFGLnRpbWV8fEYucG9pbnQueDwwfHxGLnBvaW50Lnk8MCl7dGhpcy50b29sdGlwRWwuc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJufWxldCBqPSF0aGlzLmdvQnJpZ2h0LHVlPWo/ImhzbCgwIDAlIDklKSI6ImhzbCgwIDAlIDEwMCUpIixsZT1qPyJoc2woMCAwJSA5NSUpIjoiaHNsKDAgMCUgOSUpIixRPWo/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDg5LjglKSIsaWU9dGhpcy5nZXRTZXJpZXNDb2xvcnMoaiksdGU9IiIsZWU9MCxrZT0hMTtmb3IobGV0W3llLHFdb2YgdGhpcy5zZXJpZXNBcGlzKXtsZXQgQT1GLnNlcmllc0RhdGEuZ2V0KHEpO2lmKEEmJiJ2YWx1ZSJpbiBBJiZBLnZhbHVlIT09dm9pZCAwKXtrZT0hMDtsZXQgc2U9aWVbZWUlaWUubGVuZ3RoXSxvZT10aGlzLnlBeGlzRm9ybWF0dGVyKEEudmFsdWUpO3RlKz1gPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21hcmdpbjoke2VlPjA/IjZweCI6IjAifSAwOyI+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQ6JHtzZX07Ym9yZGVyLXJhZGl1czoycHg7Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo1MDA7Ij4ke3llfTo8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDphdXRvO2ZvbnQtd2VpZ2h0OjYwMDsiPiR7b2V9PC9zcGFuPgogICAgICAgICAgPC9kaXY+YH1lZSsrfWlmKCFrZSl7dGhpcy50b29sdGlwRWwuc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJufXRoaXMudG9vbHRpcEVsLmlubmVySFRNTD10ZSxPYmplY3QuYXNzaWduKHRoaXMudG9vbHRpcEVsLnN0eWxlLHtkaXNwbGF5OiJibG9jayIsYmFja2dyb3VuZDp1ZSxjb2xvcjpsZSxib3JkZXJDb2xvcjpRfSk7bGV0IFg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpLmNsaWVudFdpZHRoLFo9Ri5wb2ludC54KzE2O1orMjAwPlgmJihaPUYucG9pbnQueC0yMTYpLHRoaXMudG9vbHRpcEVsLnN0eWxlLmxlZnQ9YCR7Wn1weGAsdGhpcy50b29sdGlwRWwuc3R5bGUudG9wPWAke0YucG9pbnQueS0xNn1weGB9KSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsdGhpcy5sY0J1bmRsZT1hd2FpdCBRci5nZXRJbnN0YW5jZSgpLmxvYWRMaWdodHdlaWdodENoYXJ0cygpLGF3YWl0IG5ldyBQcm9taXNlKHVlPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodWUpKTtsZXQgRj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik7aWYoIUYpcmV0dXJuO2xldCBqPSF0aGlzLmdvQnJpZ2h0O3RyeXt0aGlzLmNoYXJ0PXRoaXMubGNCdW5kbGUuY3JlYXRlQ2hhcnQoRix7YXV0b1NpemU6ITAsbGF5b3V0OntiYWNrZ3JvdW5kOnt0eXBlOnRoaXMubGNCdW5kbGUuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOiJ0cmFuc3BhcmVudCJ9LHRleHRDb2xvcjpqPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRTaXplOjEyLGF0dHJpYnV0aW9uTG9nbzohMX0sZ3JpZDp7dmVydExpbmVzOntjb2xvcjpqPyJoc2woMCAwJSA4LjUlKSI6ImhzbCgwIDAlIDk1LjUlKSJ9LGhvcnpMaW5lczp7Y29sb3I6aj8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifX0scmlnaHRQcmljZVNjYWxlOntib3JkZXJWaXNpYmxlOiExLHNjYWxlTWFyZ2luczp7dG9wOi4xLGJvdHRvbTouMX19LHRpbWVTY2FsZTp7Ym9yZGVyVmlzaWJsZTohMSx0aW1lVmlzaWJsZTohMCxzZWNvbmRzVmlzaWJsZTohMH0sY3Jvc3NoYWlyOnttb2RlOnRoaXMubGNCdW5kbGUuQ3Jvc3NoYWlyTW9kZS5NYWduZXR9LGhhbmRsZVNjcm9sbDohMSxoYW5kbGVTY2FsZTohMX0pO2xldCB1ZT10aGlzLnNlcmllcy5sZW5ndGg+MD90aGlzLnNlcmllczpbe25hbWU6ImNwdSIsZGF0YTpbe3g6IjIwMjUtMDEtMTVUMDM6MDA6MDAiLHk6MjV9LHt4OiIyMDI1LTAxLTE1VDA3OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxMTowMDowMCIseToyMH0se3g6IjIwMjUtMDEtMTVUMTU6MDA6MDAiLHk6MzV9LHt4OiIyMDI1LTAxLTE1VDE5OjAwOjAwIix5OjI1fV19LHtuYW1lOiJtZW1vcnkiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseToxMn0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MTB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseTo0MH1dfV07dGhpcy5pbnRlcm5hbENoYXJ0RGF0YT11ZSx0aGlzLnJlY3JlYXRlU2VyaWVzKHVlKSx0aGlzLnNldHVwVG9vbHRpcCgpfWNhdGNoKHVlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjaGFydDoiLHVlKX19YXN5bmMgdXBkYXRlZChGKXtpZihzdXBlci51cGRhdGVkKEYpLEYuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLmNoYXJ0JiZ0aGlzLmFwcGx5VGhlbWUoKSxGLmhhcygic2VyaWVzIikmJnRoaXMuY2hhcnQmJnRoaXMuc2VyaWVzLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwZGF0ZVNlcmllcyh0aGlzLnNlcmllcyksRi5oYXMoInlBeGlzRm9ybWF0dGVyIikmJnRoaXMuY2hhcnQsRi5oYXMoInJlYWx0aW1lTW9kZSIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5yZWFsdGltZU1vZGUmJnRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbD4wP3RoaXMuc3RhcnRBdXRvU2Nyb2xsKCk6dGhpcy5zdG9wQXV0b1Njcm9sbCgpKSxGLmhhcygiYXV0b1Njcm9sbEludGVydmFsIikmJnRoaXMuY2hhcnQmJih0aGlzLnN0b3BBdXRvU2Nyb2xsKCksdGhpcy5yZWFsdGltZU1vZGUmJnRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbD4wJiZ0aGlzLnN0YXJ0QXV0b1Njcm9sbCgpKSwoRi5oYXMoInlBeGlzU2NhbGluZyIpfHxGLmhhcygieUF4aXNNYXgiKSkmJnRoaXMuY2hhcnQpZm9yKGxldFssal1vZiB0aGlzLnNlcmllc0FwaXMpdGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyI/ai5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjp2b2lkIDB9KTpqLmFwcGx5T3B0aW9ucyh7YXV0b3NjYWxlSW5mb1Byb3ZpZGVyOmkoKCk9Pih7cHJpY2VSYW5nZTp7bWluVmFsdWU6MCxtYXhWYWx1ZTp0aGlzLnlBeGlzTWF4fX0pLCJhdXRvc2NhbGVJbmZvUHJvdmlkZXIiKX0pfWFzeW5jIHVwZGF0ZVNlcmllcyhGLGo9ITApe2lmKHRoaXMuY2hhcnQpdHJ5e2lmKHRoaXMuaW50ZXJuYWxDaGFydERhdGE9Rix0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5yZWFsdGltZU1vZGUpe2xldCB1ZT1EYXRlLm5vdygpLGxlPXVlLXRoaXMucm9sbGluZ1dpbmRvdztpZihGLmxlbmd0aCE9PXRoaXMuc2VyaWVzQXBpcy5zaXplKXRoaXMucmVjcmVhdGVTZXJpZXMoRik7ZWxzZXtsZXQgUT10aGlzLmdldFNlcmllc0NvbG9ycyghdGhpcy5nb0JyaWdodCk7Ri5mb3JFYWNoKChpZSx0ZSk9PntsZXQgZWU9aWUubmFtZXx8YHNlcmllcy0ke3RlfWAsa2U9dGhpcy5zZXJpZXNBcGlzLmdldChlZSk7aWYoIWtlKXJldHVybjtsZXQgWD1pZS5kYXRhLmZpbHRlcihaPT4odHlwZW9mIFoueD09Im51bWJlciI/Wi54Om5ldyBEYXRlKFoueCkuZ2V0VGltZSgpKT5sZSk7a2Uuc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyhYKSksdGhpcy51cGRhdGVQcmljZUxpbmVzKGVlLGtlLFgsUVt0ZSVRLmxlbmd0aF0pfSksdGhpcy5jb21wdXRlU3RhdHMoRil9dHJ5e3RoaXMuY2hhcnQudGltZVNjYWxlKCkuc2V0VmlzaWJsZVJhbmdlKHtmcm9tOk1hdGguZmxvb3IobGUvMWUzKSx0bzpNYXRoLmZsb29yKHVlLzFlMyl9KX1jYXRjaHt9aWYodGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyIpe2xldCBRPUYuZmxhdE1hcChpZT0+aWUuZGF0YS5maWx0ZXIodGU9Pih0eXBlb2YgdGUueD09Im51bWJlciI/dGUueDpuZXcgRGF0ZSh0ZS54KS5nZXRUaW1lKCkpPmxlKS5tYXAodGU9PnRlLnkpKTtpZihRLmxlbmd0aD4wKXtsZXQgaWU9TWF0aC5jZWlsKE1hdGgubWF4KC4uLlEpKjEuMSk7Zm9yKGxldFssdGVdb2YgdGhpcy5zZXJpZXNBcGlzKXRlLmFwcGx5T3B0aW9ucyh7YXV0b3NjYWxlSW5mb1Byb3ZpZGVyOmkoKCk9Pih7cHJpY2VSYW5nZTp7bWluVmFsdWU6MCxtYXhWYWx1ZTppZX19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KX19fWVsc2UgaWYoRi5sZW5ndGghPT10aGlzLnNlcmllc0FwaXMuc2l6ZSl0aGlzLnJlY3JlYXRlU2VyaWVzKEYpO2Vsc2V7bGV0IHVlPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKCF0aGlzLmdvQnJpZ2h0KTtGLmZvckVhY2goKGxlLFEpPT57bGV0IGllPWxlLm5hbWV8fGBzZXJpZXMtJHtRfWAsdGU9dGhpcy5zZXJpZXNBcGlzLmdldChpZSk7dGUmJih0ZS5zZXREYXRhKHRoaXMuY29udmVydERhdGFUb0xDKGxlLmRhdGEpKSx0aGlzLnVwZGF0ZVByaWNlTGluZXMoaWUsdGUsbGUuZGF0YSx1ZVtRJXVlLmxlbmd0aF0pKX0pLHRoaXMuY29tcHV0ZVN0YXRzKEYpfX1jYXRjaCh1ZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBjaGFydCBzZXJpZXM6Iix1ZSl9fWFzeW5jIHVwZGF0ZVRpbWVXaW5kb3coKXtpZighdGhpcy5jaGFydHx8dGhpcy5yb2xsaW5nV2luZG93PD0wKXJldHVybjtsZXQgRj1EYXRlLm5vdygpLGo9Ri10aGlzLnJvbGxpbmdXaW5kb3c7dHJ5e3RoaXMuY2hhcnQudGltZVNjYWxlKCkuc2V0VmlzaWJsZVJhbmdlKHtmcm9tOk1hdGguZmxvb3Ioai8xZTMpLHRvOk1hdGguZmxvb3IoRi8xZTMpfSl9Y2F0Y2h7fX1hc3luYyBhcHBlbmREYXRhKEYpe3RoaXMuY2hhcnQmJkYuZm9yRWFjaCgoaix1ZSk9PntsZXQgbGU9ai5uYW1lfHxgc2VyaWVzLSR7dWV9YCxRPXRoaXMuc2VyaWVzQXBpcy5nZXQobGUpO2lmKCEoIVF8fGouZGF0YS5sZW5ndGg9PT0wKSlmb3IobGV0IGllIG9mIGouZGF0YSl7bGV0IHRlPXRoaXMuY29udmVydERhdGFUb0xDKFtpZV0pO3RlLmxlbmd0aD4wJiZRLnVwZGF0ZSh0ZVswXSl9fSl9YXN5bmMgdXBkYXRlT3B0aW9ucyhGKXt0aGlzLmNoYXJ0JiZ0aGlzLmNoYXJ0LmFwcGx5T3B0aW9ucyhGKX1hc3luYyByZXNpemVDaGFydCgpe3RoaXMuY2hhcnQmJnRoaXMuY2hhcnQudGltZVNjYWxlKCkuZml0Q29udGVudCgpfWFzeW5jIGZvcmNlUmVzaXplKCl7YXdhaXQgdGhpcy5yZXNpemVDaGFydCgpfXRvZ2dsZUZ1bGxQYWdlKCl7dGhpcy5pc0Z1bGxQYWdlPSF0aGlzLmlzRnVsbFBhZ2UsdGhpcy5pc0Z1bGxQYWdlPyh0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS5pbnNldD0iMCIsdGhpcy5zdHlsZS56SW5kZXg9IjEwMDAwIix0aGlzLnN0eWxlLmhlaWdodD0iMTAwdmgiLHRoaXMuc3R5bGUucGFkZGluZz0iMCIsZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIik6KHRoaXMuc3R5bGUucG9zaXRpb249IiIsdGhpcy5zdHlsZS5pbnNldD0iIix0aGlzLnN0eWxlLnpJbmRleD0iIix0aGlzLnN0eWxlLmhlaWdodD0iIix0aGlzLnN0eWxlLnBhZGRpbmc9IiIsZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jaGFydD8udGltZVNjYWxlKCkuZml0Q29udGVudCgpfSl9c3RhcnRBdXRvU2Nyb2xsKCl7dGhpcy5hdXRvU2Nyb2xsVGltZXJ8fCh0aGlzLmF1dG9TY3JvbGxUaW1lcj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnVwZGF0ZVRpbWVXaW5kb3coKX0sdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWwpKX1zdG9wQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2Nyb2xsVGltZXIpLHRoaXMuYXV0b1Njcm9sbFRpbWVyPW51bGwpfXN0YXRpY3tDaShhLHQpfX07cmV0dXJuIGhlPWF9KSgpfSk7dmFyICRmYT1nKCgpPT57TGl0KCl9KTtmdW5jdGlvbiBxaChzKXtyZXR1cm4gcz9FZmEubGlnaHQ6RWZhLmRhcmt9ZnVuY3Rpb24gamgocyxlKXtsZXQgdD1wYXJzZUludChzLnNsaWNlKDEsMyksMTYpLGE9cGFyc2VJbnQocy5zbGljZSgzLDUpLDE2KSxyPXBhcnNlSW50KHMuc2xpY2UoNSw3KSwxNik7cmV0dXJuYHJnYmEoJHt0fSwgJHthfSwgJHtyfSwgJHtlfSlgfWZ1bmN0aW9uIFBmYShzKXtsZXQgZT1zP0RmYTpMZmE7cmV0dXJue2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLHRleHRTdHlsZTp7Y29sb3I6ZS50ZXh0U2Vjb25kYXJ5LGZvbnRGYW1pbHk6Jy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZicsZm9udFNpemU6MTJ9LHRvb2x0aXA6e2JhY2tncm91bmRDb2xvcjplLmJnUHJpbWFyeSxib3JkZXJDb2xvcjplLmJvcmRlckRlZmF1bHQsdGV4dFN0eWxlOntjb2xvcjplLnRleHRQcmltYXJ5LGZvbnRTaXplOjEyfSxjb25maW5lOiEwfSxsZWdlbmQ6e3RleHRTdHlsZTp7Y29sb3I6ZS50ZXh0U2Vjb25kYXJ5LGZvbnRTaXplOjEyfX19fWZ1bmN0aW9uIFZoKHMpe3JldHVybiBzP0RmYTpMZmF9dmFyIERmYSxMZmEsRWZhLFp2PWcoKCk9PntwdCgpO0RmYT1XbC5jb2xvcnMubGlnaHQsTGZhPVdsLmNvbG9ycy5kYXJrLEVmYT17ZGFyazpbIiM2MGE1ZmEiLCIjMmRkNGJmIiwiI2E3OGJmYSIsIiNmYmJmMjQiLCIjMzRkMzk5IiwiI2ZiNzE4NSJdLGxpZ2h0OlsiIzNiODJmNiIsIiMxNGI4YTYiLCIjOGI1Y2Y2IiwiI2Y1OWUwYiIsIiMxMGI5ODEiLCIjZjQzZjVlIl19O2kocWgsImdldEVjaGFydHNTZXJpZXNDb2xvcnMiKTtpKGpoLCJoZXhUb1JnYmEiKTtpKFBmYSwiZ2V0RWNoYXJ0c1RoZW1lT3B0aW9ucyIpO2koVmgsImdldFRoZW1lQ29sb3JzIil9KTt2YXIgalhhLElmYSxidSxWWD1nKCgpPT57cGUoKTtrdCgpO2Z1KCk7WnYoKTtucigpO2pYYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSWZhPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxidT0oKCk9PntsZXQgcz13ZSxlLHQ9W10sYT1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydEVjaGFydHNCYXNlIil9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W0woKV0salhhKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobz0+ImxhYmVsImluIG8sImhhcyIpLGdldDppKG89Pm8ubGFiZWwsImdldCIpLHNldDppKChvLGwpPT57by5sYWJlbD1sfSwic2V0Iil9LG1ldGFkYXRhOm59LHQsYSksbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSl9I2U9SWZhKHRoaXMsdCwiVW50aXRsZWQgQ2hhcnQiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwobil7dGhpcy4jZT1ufWNoYXJ0SW5zdGFuY2U9KElmYSh0aGlzLGEpLG51bGwpO2VjaGFydHNCdW5kbGU9bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0YS5zZXR1cCgpLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMuY2hhcnRJbnN0YW5jZSl0cnl7dGhpcy5jaGFydEluc3RhbmNlLmRpc3Bvc2UoKSx0aGlzLmNoYXJ0SW5zdGFuY2U9bnVsbH1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJFcnJvciBkaXNwb3NpbmcgRUNoYXJ0cyBpbnN0YW5jZToiLG4pfX0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7dGhpcy5sYWJlbH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsdGhpcy5lY2hhcnRzQnVuZGxlPWF3YWl0IFFyLmdldEluc3RhbmNlKCkubG9hZEVjaGFydHMoKSxhd2FpdCBuZXcgUHJvbWlzZShvPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobykpO2xldCBuPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKTtpZihuKXRyeXt0aGlzLmNoYXJ0SW5zdGFuY2U9dGhpcy5lY2hhcnRzQnVuZGxlLmluaXQobixudWxsLHtyZW5kZXJlcjoic3ZnIn0pLHRoaXMudXBkYXRlQ2hhcnQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuY2hhcnRJbnN0YW5jZT8ucmVzaXplKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUobil9Y2F0Y2gobyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgRUNoYXJ0czoiLG8pfX1hc3luYyB1cGRhdGVkKG4pe3N1cGVyLnVwZGF0ZWQobiksbi5oYXMoImdvQnJpZ2h0IikmJnRoaXMuY2hhcnRJbnN0YW5jZSYmdGhpcy5hcHBseVRoZW1lKCl9dXBkYXRlQ2hhcnQoKXtpZighdGhpcy5jaGFydEluc3RhbmNlKXJldHVybjtsZXQgbj1QZmEodGhpcy5nb0JyaWdodCksbz10aGlzLmJ1aWxkT3B0aW9uKCksbD17Li4ubiwuLi5vLHRleHRTdHlsZTp7Li4ubi50ZXh0U3R5bGUsLi4uby50ZXh0U3R5bGV8fHt9fSx0b29sdGlwOnsuLi5uLnRvb2x0aXAsLi4uby50b29sdGlwfHx7fX0sbGVnZW5kOnsuLi5uLmxlZ2VuZCwuLi5vLmxlZ2VuZHx8e30sdGV4dFN0eWxlOnsuLi5uLmxlZ2VuZD8udGV4dFN0eWxlfHx7fSwuLi5vLmxlZ2VuZD8udGV4dFN0eWxlfHx7fX19fTt0aGlzLmNoYXJ0SW5zdGFuY2Uuc2V0T3B0aW9uKGwsITApfWFwcGx5VGhlbWUoKXt0aGlzLnVwZGF0ZUNoYXJ0KCl9YXN5bmMgZm9yY2VSZXNpemUoKXt0aGlzLmNoYXJ0SW5zdGFuY2U/LnJlc2l6ZSgpfX19KSgpfSk7dmFyIEFmYSxOZmE9ZygoKT0+e3BlKCk7SXQoKTtFaXQoKTtBZmE9aSgoKT0+e2xldCBzPVsiL2FwaS91c2VycyIsIi9hcGkvb3JkZXJzIiwiL2FwaS9wcm9kdWN0cyIsIi9hcGkvYXV0aCIsIi9hcGkvc2VhcmNoIl0sZT1be25hbWU6IkdFVCIsZGF0YTpbMTI0MCw4OTAsNzIwLDIxMDAsNTYwXX0se25hbWU6IlBPU1QiLGRhdGE6WzMyMCw0NTAsMTgwLDg5MCw0MF19LHtuYW1lOiJQVVQiLGRhdGE6WzkwLDIxMCwxNTAsMzAsMTBdfV0sdD1bIlVTLUVhc3QiLCJVUy1XZXN0IiwiRVUiLCJBc2lhIiwiT3RoZXIiXSxhPVt7bmFtZToiUmVxdWVzdHMiLGRhdGE6WzQ1MDAsMzIwMCwyODAwLDE5MDAsNjAwXX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcj0+e2xldCBuPXIucXVlcnlTZWxlY3RvcigiI3ZlcnQtY2hhcnQiKSxvPXIucXVlcnlTZWxlY3RvcigiI2hvcml6LWNoYXJ0IiksbD1yLnF1ZXJ5U2VsZWN0b3IoIiNzdGFjay1jaGFydCIpO3IucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGQ9PntkLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24uc2VyaWVzPWUubWFwKGM9Pih7Li4uYyxkYXRhOmMuZGF0YS5tYXAoYj0+TWF0aC5yb3VuZChiKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpLG8uc2VyaWVzPWEubWFwKGM9Pih7Li4uYyxkYXRhOmMuZGF0YS5tYXAoYj0+TWF0aC5yb3VuZChiKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpLGwuc2VyaWVzPWUubWFwKGM9Pih7Li4uYyxkYXRhOmMuZGF0YS5tYXAoYj0+TWF0aC5yb3VuZChiKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpfSl9KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY2hhcnRSb3cgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmFuZG9taXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Um93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0idmVydC1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVlc3RzIGJ5IEVuZHBvaW50In0KICAgICAgICAgICAgLmNhdGVnb3JpZXM9JHtzfQogICAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7cj0+YCR7cn0gcmVxYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0iaG9yaXotY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJUcmFmZmljIGJ5IFJlZ2lvbiJ9CiAgICAgICAgICAgIC5jYXRlZ29yaWVzPSR7dH0KICAgICAgICAgICAgLnNlcmllcz0ke2F9CiAgICAgICAgICAgIC5ob3Jpem9udGFsPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke3I9PmAkeyhyLzFlMykudG9GaXhlZCgxKX1rYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgIGlkPSJzdGFjay1jaGFydCIKICAgICAgICAgIC5sYWJlbD0keyJTdGFja2VkOiBSZXF1ZXN0cyBieSBFbmRwb2ludCJ9CiAgICAgICAgICAuY2F0ZWdvcmllcz0ke3N9CiAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgIC5zdGFja2VkPSR7ITB9CiAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHtyPT5gJHtyfSByZXFgfQogICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIEJhciBjaGFydCB3aXRoIHZlcnRpY2FsLCBob3Jpem9udGFsLCBhbmQgc3RhY2tlZCBtb2RlcyDigKIKICAgICAgICAgIENsaWNrICdSYW5kb21pemUnIHRvIHVwZGF0ZSBkYXRhIHdpdGggYW5pbWF0aW9uCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIFVoLFVYPWcoKCk9PntwZSgpO3B0KCk7VWg9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAgIGRlZXMtdGlsZSB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KICAgIC5jaGFydEhlYWRlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgfQogICAgLmNoYXJ0TGFiZWwgewogICAgICBmbGV4OiAxOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICB9CiAgICAuY2hhcnRDb250YWluZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAwOwogICAgfQogIGBdfSk7dmFyIFJmYSxPZmE9ZygoKT0+e3BlKCk7VVgoKTtSZmE9Wy4uLlVoLEpgYF19KTt2YXIgRmZhLEJmYT1nKCgpPT57cGUoKTtGZmE9aShzPT53YAogICAgPGRlZXMtdGlsZT4KICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICA8L2RlZXMtdGlsZT4KICBgLCJyZW5kZXJDaGFydEJhciIpfSk7dmFyIHZnLFFsLEhmYSxFaXQ9ZygoKT0+e3BlKCk7VlgoKTtOZmEoKTtPZmEoKTtCZmEoKTtadigpO3ZnPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxRbD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSGZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1jaGFydC1iYXIiKV0sZSx0PVtdLGEscj1idSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0QmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOkFycmF5fSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe2F0dHJpYnV0ZTohMX0pXSx2Zyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhdGVnb3JpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImNhdGVnb3JpZXMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5jYXRlZ29yaWVzLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UuY2F0ZWdvcmllcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksdmcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlcmllcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlcmllcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNlcmllcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGQsdSksdmcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJob3Jpem9udGFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJob3Jpem9udGFsImluIEUsImhhcyIpLGdldDppKEU9PkUuaG9yaXpvbnRhbCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmhvcml6b250YWw9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLHZnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhY2tlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic3RhY2tlZCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnN0YWNrZWQsImdldCIpLHNldDppKChFLEgpPT57RS5zdGFja2VkPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSx2Zyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dMZWdlbmQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc2hvd0xlZ2VuZD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksdmcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZUZvcm1hdHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWVGb3JtYXR0ZXIiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZUZvcm1hdHRlciwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZhbHVlRm9ybWF0dGVyPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sQyxfKSx2ZyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTokfSxudWxsLHQpLE89YT1lLnZhbHVlLCQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6JH0pfXN0YXRpYyBkZW1vPUFmYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9UWwodGhpcyxvLFtdKTtnZXQgY2F0ZWdvcmllcygpe3JldHVybiB0aGlzLiNlfXNldCBjYXRlZ29yaWVzKCQpe3RoaXMuI2U9JH0jdD0oUWwodGhpcyxsKSxRbCh0aGlzLGQsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllcygkKXt0aGlzLiN0PSR9I2E9KFFsKHRoaXMsdSksUWwodGhpcyxiLCExKSk7Z2V0IGhvcml6b250YWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaG9yaXpvbnRhbCgkKXt0aGlzLiNhPSR9I3M9KFFsKHRoaXMsdiksUWwodGhpcyxtLCExKSk7Z2V0IHN0YWNrZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgc3RhY2tlZCgkKXt0aGlzLiNzPSR9I2k9KFFsKHRoaXMsZiksUWwodGhpcyxNLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd0xlZ2VuZCgkKXt0aGlzLiNpPSR9I3I9KFFsKHRoaXMseiksUWwodGhpcyxDLCQ9PmAkeyR9YCkpO2dldCB2YWx1ZUZvcm1hdHRlcigpe3JldHVybiB0aGlzLiNyfXNldCB2YWx1ZUZvcm1hdHRlcigkKXt0aGlzLiNyPSR9c3RhdGljIHN0eWxlcz1SZmE7cmVuZGVyKCl7cmV0dXJuIEZmYSh0aGlzKX1hc3luYyB1cGRhdGVkKCQpe3N1cGVyLnVwZGF0ZWQoJCksdGhpcy5jaGFydEluc3RhbmNlJiYoJC5oYXMoImNhdGVnb3JpZXMiKXx8JC5oYXMoInNlcmllcyIpfHwkLmhhcygiaG9yaXpvbnRhbCIpfHwkLmhhcygic3RhY2tlZCIpfHwkLmhhcygic2hvd0xlZ2VuZCIpKSYmdGhpcy51cGRhdGVDaGFydCgpfWJ1aWxkT3B0aW9uKCl7bGV0ICQ9VmgodGhpcy5nb0JyaWdodCksRT1xaCh0aGlzLmdvQnJpZ2h0KSxIPXRoaXMudmFsdWVGb3JtYXR0ZXIsaz17dHlwZToiY2F0ZWdvcnkiLGRhdGE6dGhpcy5jYXRlZ29yaWVzLGF4aXNMaW5lOntsaW5lU3R5bGU6e2NvbG9yOiQuYm9yZGVyU3Ryb25nfX0sYXhpc0xhYmVsOntjb2xvcjokLnRleHRNdXRlZH19LFM9e3R5cGU6InZhbHVlIixheGlzTGluZTp7c2hvdzohMX0sYXhpc0xhYmVsOntjb2xvcjokLnRleHRNdXRlZCxmb3JtYXR0ZXI6aShXPT5IKFcpLCJmb3JtYXR0ZXIiKX0sc3BsaXRMaW5lOntsaW5lU3R5bGU6e2NvbG9yOiQuYm9yZGVyU3VidGxlfX19LEk9dGhpcy5nb0JyaWdodD8uMTU6LjI1LFA9dGhpcy5ob3Jpem9udGFsP1swLDQsNCwwXTpbNCw0LDAsMF0sUj1bMCwwLDAsMF0sSz1bXSxWPXRoaXMuc2VyaWVzLm1hcCgoVyxtZSk9PntsZXQgQj1XLmNvbG9yfHxFW21lJUUubGVuZ3RoXTtyZXR1cm4gSy5wdXNoKHtuYW1lOlcubmFtZSxpdGVtU3R5bGU6e2NvbG9yOkJ9fSkse25hbWU6Vy5uYW1lLHR5cGU6ImJhciIsZGF0YTpXLmRhdGEsc3RhY2s6dGhpcy5zdGFja2VkPyJ0b3RhbCI6dm9pZCAwLGl0ZW1TdHlsZTp7Y29sb3I6amgoQixJKSxib3JkZXJDb2xvcjpCLGJvcmRlcldpZHRoOjEsYm9yZGVyUmFkaXVzOnRoaXMuc3RhY2tlZD9SOlB9LGJhck1heFdpZHRoOjQwLGJhckdhcDoiMjAlIixlbXBoYXNpczp7aXRlbVN0eWxlOntjb2xvcjpqaChCLEkrLjE1KSxib3JkZXJDb2xvcjpCLGJvcmRlcldpZHRoOjEuNX19fX0pO2lmKHRoaXMuc3RhY2tlZCYmVi5sZW5ndGg+MCl7bGV0IFc9VltWLmxlbmd0aC0xXTtXLml0ZW1TdHlsZS5ib3JkZXJSYWRpdXM9UH1yZXR1cm57dG9vbHRpcDp7dHJpZ2dlcjoiYXhpcyIsYXhpc1BvaW50ZXI6e3R5cGU6InNoYWRvdyJ9LGZvcm1hdHRlcjppKFc9PntsZXQgbWU9QXJyYXkuaXNBcnJheShXKT9XOltXXSxCPWA8c3Ryb25nPiR7bWVbMF0uYXhpc1ZhbHVlTGFiZWx9PC9zdHJvbmc+PGJyLz5gO2ZvcihsZXQgVSBvZiBtZSl7bGV0IEY9YDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MTBweDt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6JHtVLmJvcmRlckNvbG9yfHxVLmNvbG9yfTsiPjwvc3Bhbj5gO0IrPWAke0Z9JHtVLnNlcmllc05hbWV9OiA8c3Ryb25nPiR7SChVLnZhbHVlKX08L3N0cm9uZz48YnIvPmB9cmV0dXJuIEJ9LCJmb3JtYXR0ZXIiKX0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/e2JvdHRvbTo4LGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwLGRhdGE6S306e3Nob3c6ITF9LGdyaWQ6e2xlZnQ6MTYscmlnaHQ6MTYsdG9wOjE2LGJvdHRvbTp0aGlzLnNob3dMZWdlbmQmJnRoaXMuc2VyaWVzLmxlbmd0aD4xPzQwOjE2LGNvbnRhaW5MYWJlbDohMH0seEF4aXM6dGhpcy5ob3Jpem9udGFsP1M6ayx5QXhpczp0aGlzLmhvcml6b250YWw/azpTLHNlcmllczpWfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUWwodGhpcyxfKX1zdGF0aWN7UWwoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIHFmYT1nKCgpPT57RWl0KCl9KTt2YXIgamZhLFZmYT1nKCgpPT57cGUoKTtJdCgpO1BpdCgpO2pmYT1pKCgpPT57bGV0IHM9W3tuYW1lOiJEb2N1bWVudHMiLHZhbHVlOjQyfSx7bmFtZToiTWVkaWEiLHZhbHVlOjI4fSx7bmFtZToiQXBwbGljYXRpb25zIix2YWx1ZToxNX0se25hbWU6IlN5c3RlbSIsdmFsdWU6MTB9LHtuYW1lOiJPdGhlciIsdmFsdWU6NX1dLGU9W3tuYW1lOiJIZWFsdGh5Iix2YWx1ZToxNTZ9LHtuYW1lOiJXYXJuaW5nIix2YWx1ZToyM30se25hbWU6IkNyaXRpY2FsIix2YWx1ZTo4fSx7bmFtZToiVW5rbm93biIsdmFsdWU6M31dLHQ9W3tuYW1lOiJBUEkiLHZhbHVlOjQ1MjAwfSx7bmFtZToiU3RhdGljIEFzc2V0cyIsdmFsdWU6MjMxMDB9LHtuYW1lOiJXZWJTb2NrZXQiLHZhbHVlOjEyODAwfSx7bmFtZToiR3JhcGhRTCIsdmFsdWU6ODkwMH1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCByPWEucXVlcnlTZWxlY3RvcigiI2Rpc2stY2hhcnQiKSxuPWEucXVlcnlTZWxlY3RvcigiI3N0YXR1cy1jaGFydCIpLG89YS5xdWVyeVNlbGVjdG9yKCIjdHJhZmZpYy1jaGFydCIpO2EucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHA9PntwLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZwLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IuZGF0YT1zLm1hcCh1PT4oey4uLnUsdmFsdWU6TWF0aC5yb3VuZCh1LnZhbHVlKiguNStNYXRoLnJhbmRvbSgpKSl9KSksbi5kYXRhPWUubWFwKHU9Pih7Li4udSx2YWx1ZTpNYXRoLnJvdW5kKHUudmFsdWUqKC4zK01hdGgucmFuZG9tKCkqMS40KSl9KSksby5kYXRhPXQubWFwKHU9Pih7Li4udSx2YWx1ZTpNYXRoLnJvdW5kKHUudmFsdWUqKC41K01hdGgucmFuZG9tKCkpKX0pKX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0iZGlzay1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2sgVXNhZ2UgKEdCKSJ9CiAgICAgICAgICAgIC5kYXRhPSR7c30KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7YT0+YCR7YX0gR0JgfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0ic3RhdHVzLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBTdGF0dXMifQogICAgICAgICAgICAuZGF0YT0ke2V9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2E9PmAke2F9IHNlcnZpY2VzYH0KICAgICAgICAgICAgLmlubmVyUmFkaXVzUGVyY2VudD0keyIwJSJ9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgaWQ9InRyYWZmaWMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiVHJhZmZpYyBEaXN0cmlidXRpb24ifQogICAgICAgICAgLmRhdGE9JHt0fQogICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7YT0+YCR7KGEvMWUzKS50b0ZpeGVkKDEpfWsgcmVxYH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIERvbnV0IGNoYXJ0IHdpdGggY29uZmlndXJhYmxlIGlubmVyIHJhZGl1cyAoc2V0IHRvIDAlIGZvciBmdWxsIHBpZSkg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YSB3aXRoIGFuaW1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBVZmEsV2ZhPWcoKCk9PntwZSgpO1VYKCk7VWZhPVsuLi5VaCxKYAogICAgOmhvc3QgewogICAgICBoZWlnaHQ6IDM2MHB4OwogICAgfQogICAgLmNoYXJ0Q29udGFpbmVyIHsKICAgICAgaW5zZXQ6IDEycHggMDsKICAgIH0KICBgXX0pO3ZhciBHZmEsS2ZhPWcoKCk9PntwZSgpO0dmYT1pKHM9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHtzLmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0RG9udXQiKX0pO3ZhciBYdixuMixZZmEsUGl0PWcoKCk9PntwZSgpO1ZYKCk7VmZhKCk7V2ZhKCk7S2ZhKCk7WnYoKTtYdj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbjI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFlmYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtZG9udXQiKV0sZSx0PVtdLGEscj1idSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0RG9udXQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7YXR0cmlidXRlOiExfSldLFh2KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iZGF0YSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmRhdGEsImdldCIpLHNldDppKChfLE8pPT57Xy5kYXRhPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxYdih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNob3dMZWdlbmQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2hvd0xlZ2VuZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksWHYodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGFiZWxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaG93TGFiZWxzImluIF8sImhhcyIpLGdldDppKF89Pl8uc2hvd0xhYmVscywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNob3dMYWJlbHM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLFh2KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5uZXJSYWRpdXNQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpbm5lclJhZGl1c1BlcmNlbnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pbm5lclJhZGl1c1BlcmNlbnQsImdldCIpLHNldDppKChfLE8pPT57Xy5pbm5lclJhZGl1c1BlcmNlbnQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLFh2KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWVGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InZhbHVlRm9ybWF0dGVyImluIF8sImhhcyIpLGdldDppKF89Pl8udmFsdWVGb3JtYXR0ZXIsImdldCIpLHNldDppKChfLE8pPT57Xy52YWx1ZUZvcm1hdHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksWHYobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1qZmE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPW4yKHRoaXMsbyxbXSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShDKXt0aGlzLiNlPUN9I3Q9KG4yKHRoaXMsbCksbjIodGhpcyxkLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0xlZ2VuZChDKXt0aGlzLiN0PUN9I2E9KG4yKHRoaXMsdSksbjIodGhpcyxiLCEwKSk7Z2V0IHNob3dMYWJlbHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0xhYmVscyhDKXt0aGlzLiNhPUN9I3M9KG4yKHRoaXMsdiksbjIodGhpcyxtLCI1NSUiKSk7Z2V0IGlubmVyUmFkaXVzUGVyY2VudCgpe3JldHVybiB0aGlzLiNzfXNldCBpbm5lclJhZGl1c1BlcmNlbnQoQyl7dGhpcy4jcz1DfSNpPShuMih0aGlzLGYpLG4yKHRoaXMsTSxDPT5gJHtDfWApKTtnZXQgdmFsdWVGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsdWVGb3JtYXR0ZXIoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9VWZhO3JlbmRlcigpe3JldHVybiBHZmEodGhpcyl9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpLHRoaXMuY2hhcnRJbnN0YW5jZSYmKEMuaGFzKCJkYXRhIil8fEMuaGFzKCJzaG93TGVnZW5kIil8fEMuaGFzKCJzaG93TGFiZWxzIil8fEMuaGFzKCJpbm5lclJhZGl1c1BlcmNlbnQiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCBDPVZoKHRoaXMuZ29CcmlnaHQpLF89cWgodGhpcy5nb0JyaWdodCksTz10aGlzLmdvQnJpZ2h0Py4xNTouMiwkPVtdLEU9dGhpcy5kYXRhLm1hcCgoayxTKT0+e2xldCBJPWsuY29sb3J8fF9bUyVfLmxlbmd0aF07cmV0dXJuICQucHVzaCh7bmFtZTprLm5hbWUsaXRlbVN0eWxlOntjb2xvcjpJfX0pLHtuYW1lOmsubmFtZSx2YWx1ZTprLnZhbHVlLGl0ZW1TdHlsZTp7Y29sb3I6amgoSSxPKSxib3JkZXJDb2xvcjpJLGJvcmRlcldpZHRoOjF9LGVtcGhhc2lzOntpdGVtU3R5bGU6e2NvbG9yOmpoKEksTysuMTUpLGJvcmRlckNvbG9yOkksYm9yZGVyV2lkdGg6MS41fX19fSksSD10aGlzLnZhbHVlRm9ybWF0dGVyO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIixmb3JtYXR0ZXI6aShrPT5gJHtgPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjoke2suZGF0YT8uaXRlbVN0eWxlPy5ib3JkZXJDb2xvcnx8ay5jb2xvcn07Ij48L3NwYW4+YH0ke2submFtZX06IDxzdHJvbmc+JHtIKGsudmFsdWUpfTwvc3Ryb25nPiAoJHtrLnBlcmNlbnR9JSlgLCJmb3JtYXR0ZXIiKX0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZD97b3JpZW50OiJ2ZXJ0aWNhbCIscmlnaHQ6MTYsdG9wOiJjZW50ZXIiLGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwLGl0ZW1HYXA6MTIsZGF0YTokLGZvcm1hdHRlcjppKGs9PntsZXQgUz10aGlzLmRhdGEuZmluZChJPT5JLm5hbWU9PT1rKTtyZXR1cm4gUz9gJHtrfSAgJHtIKFMudmFsdWUpfWA6a30sImZvcm1hdHRlciIpfTp7c2hvdzohMX0sc2VyaWVzOlt7dHlwZToicGllIixyYWRpdXM6W3RoaXMuaW5uZXJSYWRpdXNQZXJjZW50LCI4NSUiXSxjZW50ZXI6dGhpcy5zaG93TGVnZW5kP1siMzUlIiwiNTAlIl06WyI1MCUiLCI1MCUiXSxhdm9pZExhYmVsT3ZlcmxhcDohMCxwYWRBbmdsZToyLGl0ZW1TdHlsZTp7Ym9yZGVyUmFkaXVzOjR9LGxhYmVsOnRoaXMuc2hvd0xhYmVscz97c2hvdzohMCxmb3JtYXR0ZXI6IntifToge2R9JSIsZm9udFNpemU6MTEsY29sb3I6Qy50ZXh0U2Vjb25kYXJ5LHRleHRCb3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifTp7c2hvdzohMX0sZGF0YTpFfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxuMih0aGlzLHopfXN0YXRpY3tuMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgWmZhPWcoKCk9PntQaXQoKX0pO3ZhciBYZmEsUWZhPWcoKCk9PntwZSgpO0l0KCk7SWl0KCk7WGZhPWkoKCk9PntsZXQgcz1be3ZhbHVlOjYwLGNvbG9yOiJoc2woMTQyIDc2JSAzNiUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMzggOTIlIDUwJSkifSx7dmFsdWU6MTAwLGNvbG9yOiJoc2woMCA3MiUgNTAlKSJ9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNjcHUtZ2F1Z2UiKSxhPWUucXVlcnlTZWxlY3RvcigiI21lbS1nYXVnZSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjc2xhLWdhdWdlIiksbj1udWxsO2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGw9PntsZXQgcD1sLnRleHQ/LnRyaW0oKTtwPT09IkFuaW1hdGUiP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bnx8KG49d2luZG93LnNldEludGVydmFsKCgpPT57dC52YWx1ZT1NYXRoLnJvdW5kKDMwK01hdGgucmFuZG9tKCkqNjApLGEudmFsdWU9TWF0aC5yb3VuZCg0MCtNYXRoLnJhbmRvbSgpKjUwKSxyLnZhbHVlPU1hdGgucm91bmQoKDk1K01hdGgucmFuZG9tKCkqNSkqMTAwKS8xMDB9LDJlMykpfSk6cD09PSJTdG9wIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChuKSxuPW51bGwpfSk6cD09PSJTcGlrZSImJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC52YWx1ZT05NSxhLnZhbHVlPTg4LHIudmFsdWU9OTYuNX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmdhdWdlUm93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BbmltYXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3A8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U3Bpa2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2VSb3ciPgogICAgICAgICAgPGRlZXMtY2hhcnQtZ2F1Z2UKICAgICAgICAgICAgaWQ9ImNwdS1nYXVnZSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNQVSBVc2FnZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezQyfQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnRocmVzaG9sZHM9JHtzfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1nYXVnZQogICAgICAgICAgICBpZD0ibWVtLWdhdWdlIgogICAgICAgICAgICAubGFiZWw9JHsiTWVtb3J5IFVzYWdlIn0KICAgICAgICAgICAgLnZhbHVlPSR7Njd9CiAgICAgICAgICAgIC51bml0PSR7IiUifQogICAgICAgICAgICAudGhyZXNob2xkcz0ke3N9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWdhdWdlPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWdhdWdlCiAgICAgICAgICAgIGlkPSJzbGEtZ2F1Z2UiCiAgICAgICAgICAgIC5sYWJlbD0keyJTTEEgVXB0aW1lIn0KICAgICAgICAgICAgLnZhbHVlPSR7OTkuOH0KICAgICAgICAgICAgLm1pbj0kezk1fQogICAgICAgICAgICAubWF4PSR7MTAwfQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnNob3dUaWNrcz0keyEwfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBHYXVnZSBjaGFydCB3aXRoIGFuaW1hdGVkIHZhbHVlIHRyYW5zaXRpb25zIGFuZCB0aHJlc2hvbGQgY29sb3Jpbmcg4oCiCiAgICAgICAgICBDbGljayAnQW5pbWF0ZScgZm9yIGxpdmUgdXBkYXRlcywgJ1NwaWtlJyB0byBzaW11bGF0ZSBoaWdoIGxvYWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgSmZhLGVtYT1nKCgpPT57cGUoKTtVWCgpO0pmYT1bLi4uVWgsSmAKICAgIDpob3N0IHsKICAgICAgaGVpZ2h0OiAzMjBweDsKICAgIH0KICBgXX0pO3ZhciB0bWEsYW1hPWcoKCk9PntwZSgpO3RtYT1pKHM9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHtzLmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0R2F1Z2UiKX0pO3ZhciB4ZyxKbCxzbWEsSWl0PWcoKCk9PntwZSgpO1ZYKCk7UWZhKCk7ZW1hKCk7YW1hKCk7WnYoKTt4Zz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSmw9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHNtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtZ2F1Z2UiKV0sZSx0PVtdLGEscj1idSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0R2F1Z2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk51bWJlcn0pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSx4Zyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ2YWx1ZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnZhbHVlLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudmFsdWU9SH0sInNldCIpfSxtZXRhZGF0YTokfSxvLGwpLHhnKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJtaW4iaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5taW4sImdldCIpLHNldDppKChFLEgpPT57RS5taW49SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLHhnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJtYXgiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5tYXgsImdldCIpLHNldDppKChFLEgpPT57RS5tYXg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLHhnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidW5pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idW5pdCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnVuaXQsImdldCIpLHNldDppKChFLEgpPT57RS51bml0PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSx4Zyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRocmVzaG9sZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InRocmVzaG9sZHMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS50aHJlc2hvbGRzLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudGhyZXNob2xkcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seikseGcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGlja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dUaWNrcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNob3dUaWNrcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNob3dUaWNrcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXykseGcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1YZmE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPUpsKHRoaXMsbywwKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoJCl7dGhpcy4jZT0kfSN0PShKbCh0aGlzLGwpLEpsKHRoaXMsZCwwKSk7Z2V0IG1pbigpe3JldHVybiB0aGlzLiN0fXNldCBtaW4oJCl7dGhpcy4jdD0kfSNhPShKbCh0aGlzLHUpLEpsKHRoaXMsYiwxMDApKTtnZXQgbWF4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1heCgkKXt0aGlzLiNhPSR9I3M9KEpsKHRoaXMsdiksSmwodGhpcyxtLCIlIikpO2dldCB1bml0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHVuaXQoJCl7dGhpcy4jcz0kfSNpPShKbCh0aGlzLGYpLEpsKHRoaXMsTSxbXSkpO2dldCB0aHJlc2hvbGRzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRocmVzaG9sZHMoJCl7dGhpcy4jaT0kfSNyPShKbCh0aGlzLHopLEpsKHRoaXMsQywhMCkpO2dldCBzaG93VGlja3MoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1RpY2tzKCQpe3RoaXMuI3I9JH1zdGF0aWMgc3R5bGVzPUpmYTtyZW5kZXIoKXtyZXR1cm4gdG1hKHRoaXMpfWFzeW5jIHVwZGF0ZWQoJCl7c3VwZXIudXBkYXRlZCgkKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJigkLmhhcygidmFsdWUiKXx8JC5oYXMoIm1pbiIpfHwkLmhhcygibWF4Iil8fCQuaGFzKCJ1bml0Iil8fCQuaGFzKCJ0aHJlc2hvbGRzIil8fCQuaGFzKCJzaG93VGlja3MiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCAkPVZoKHRoaXMuZ29CcmlnaHQpLEg9cWgodGhpcy5nb0JyaWdodClbMF0saztpZih0aGlzLnRocmVzaG9sZHMubGVuZ3RoPjApe2xldCBTPVsuLi50aGlzLnRocmVzaG9sZHNdLnNvcnQoKEksUCk9PkkudmFsdWUtUC52YWx1ZSk7az1TLm1hcChJPT5bKEkudmFsdWUtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksSS5jb2xvcl0pLGtbay5sZW5ndGgtMV1bMF08MSYmay5wdXNoKFsxLFNbUy5sZW5ndGgtMV0uY29sb3JdKX1lbHNlIGs9W1sxLEhdXTtyZXR1cm57c2VyaWVzOlt7dHlwZToiZ2F1Z2UiLG1pbjp0aGlzLm1pbixtYXg6dGhpcy5tYXgsc3RhcnRBbmdsZToyMjAsZW5kQW5nbGU6LTQwLHByb2dyZXNzOntzaG93OiEwLHdpZHRoOjE0LHJvdW5kQ2FwOiEwfSxwb2ludGVyOntzaG93OiEwLGxlbmd0aDoiNjAlIix3aWR0aDo1LGl0ZW1TdHlsZTp7Y29sb3I6ImF1dG8ifX0sYXhpc0xpbmU6e2xpbmVTdHlsZTp7d2lkdGg6MTQsY29sb3I6ayxvcGFjaXR5Oi4zfX0sYXhpc1RpY2s6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6LTIwLGxlbmd0aDo2LGxpbmVTdHlsZTp7Y29sb3I6JC5ib3JkZXJTdHJvbmcsd2lkdGg6MX19LHNwbGl0TGluZTp7c2hvdzp0aGlzLnNob3dUaWNrcyxkaXN0YW5jZTotMjQsbGVuZ3RoOjEwLGxpbmVTdHlsZTp7Y29sb3I6JC50ZXh0TXV0ZWQsd2lkdGg6Mn19LGF4aXNMYWJlbDp7c2hvdzp0aGlzLnNob3dUaWNrcyxkaXN0YW5jZTozMCxjb2xvcjokLnRleHRNdXRlZCxmb250U2l6ZToxMX0sZGV0YWlsOnt2YWx1ZUFuaW1hdGlvbjohMCxmb250U2l6ZToyOCxmb250V2VpZ2h0OjYwMCxvZmZzZXRDZW50ZXI6WzAsIjY1JSJdLGNvbG9yOiQudGV4dFByaW1hcnksZm9ybWF0dGVyOmB7dmFsdWV9JHt0aGlzLnVuaXR9YH0sdGl0bGU6e3Nob3c6ITF9LGRhdGE6W3t2YWx1ZTp0aGlzLnZhbHVlfV19XX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEpsKHRoaXMsXyl9c3RhdGlje0psKGEsdCl9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBpbWE9ZygoKT0+e0lpdCgpfSk7dmFyIHJtYSxvbWE9ZygoKT0+e3BlKCk7SXQoKTtybWE9aSgoKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoIiNzdHJ1Y3R1cmVkLWxvZyIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIjcmF3LWxvZyIpLGEscixuPVsiU2VydmVyIiwiRGF0YWJhc2UiLCJBUEkiLCJBdXRoIiwiQ2FjaGUiLCJRdWV1ZSIsIldlYlNvY2tldCIsIlNjaGVkdWxlciJdLG89e2RlYnVnOlsiTG9hZGluZyBtb2R1bGU6IHt7bW9kdWxlfX0iLCJDYWNoZSBoaXQgZm9yIGtleToge3trZXl9fSIsIlNRTCBxdWVyeSBleGVjdXRlZCBpbiB7e3RpbWV9fW1zIiwiUmVxdWVzdCBoZWFkZXJzOiB7e2hlYWRlcnN9fSIsIkVudmlyb25tZW50IHZhcmlhYmxlIGxvYWRlZDoge3t2YXJ9fSJdLGluZm86WyJSZXF1ZXN0IHJlY2VpdmVkOiB7e21ldGhvZH19IHt7cGF0aH19IiwiVXNlciB7e3VzZXJJZH19IGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5IiwiUHJvY2Vzc2luZyBqb2Ige3tqb2JJZH19IGZyb20gcXVldWUiLCdTY2hlZHVsZWQgdGFzayAie3t0YXNrfX0iIHN0YXJ0ZWQnLCJXZWJTb2NrZXQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBmcm9tIHt7aXB9fSJdLHdhcm46WyJTbG93IHF1ZXJ5IGRldGVjdGVkOiB7e3F1ZXJ5fX0gKHt7dGltZX19bXMpIiwiTWVtb3J5IHVzYWdlIGF0IHt7cGVyY2VudH19JSIsIlJhdGUgbGltaXQgYXBwcm9hY2hpbmcgZm9yIElQIHt7aXB9fSIsIkRlcHJlY2F0ZWQgQVBJIGVuZHBvaW50IGNhbGxlZDoge3tlbmRwb2ludH19IiwiQ2VydGlmaWNhdGUgZXhwaXJlcyBpbiB7e2RheXN9fSBkYXlzIl0sZXJyb3I6WyJEYXRhYmFzZSBjb25uZWN0aW9uIGxvc3Q6IHt7ZXJyb3J9fSIsIkZhaWxlZCB0byBwcm9jZXNzIHJlcXVlc3Q6IHt7ZXJyb3J9fSIsIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciB7e3VzZXJ9fSIsIkZpbGUgbm90IGZvdW5kOiB7e3BhdGh9fSIsIlNlcnZpY2UgdW5hdmFpbGFibGU6IHt7c2VydmljZX19Il0sc3VjY2VzczpbIlNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0IHt7cG9ydH19IiwiRGF0YWJhc2UgbWlncmF0aW9uIGNvbXBsZXRlZCIsIkJhY2t1cCBjb21wbGV0ZWQ6IHt7c2l6ZX19IE1CIiwiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQiLCJIZWFsdGggY2hlY2sgcGFzc2VkOiBhbGwgc3lzdGVtcyBvcGVyYXRpb25hbCJdfSxsPVsiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ1LjEyM1pceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtuZ2lueF0gR0VUIC9hcGkvaGVhbHRoIDIwMCAtIDJtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS40NTZaXHgxQlswbSBceDFCWzMzbVdBUk5ceDFCWzBtICBbcmVkaXNdIENvbm5lY3Rpb24gcG9vbCBydW5uaW5nIGxvdzogMy8xMCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS43ODlaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbbW9uZ29kYl0gUXVlcnkgdGltZW91dCBhZnRlciAzMDAwMG1zIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjAxMlpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFthcHBdIFByb2Nlc3NpbmcgYmF0Y2ggam9iICN7e2pvYklkfX0iLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuMzQ1Wlx4MUJbMG0gXHgxQlszMm1PS1x4MUJbMG0gICAgW2hlYWx0aF0gQWxsIHNlcnZpY2VzIGhlYWx0aHkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuNjc4Wlx4MUJbMG0gXHgxQlszNm1JTkZPXHgxQlswbSAgW2thZmthXSBNZXNzYWdlIGNvbnN1bWVkIGZyb20gdG9waWM6IGV2ZW50cyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4wMDFaXHgxQlswbSBceDFCWzM1bURFQlVHXHgxQlswbSBbZ3JwY10gUmVxdWVzdCByZWNlaXZlZDogR2V0VXNlcihpZD17e3VzZXJJZH19KSIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4yMzRaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbYXV0aF0gVG9rZW4gdmFsaWRhdGlvbiBmYWlsZWQ6IGV4cGlyZWQiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuNTY3Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JhdGUtbGltaXRdIElQIHt7aXB9fSBhcHByb2FjaGluZyByYXRlIGxpbWl0IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3Ljg5MFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFt3ZWJzb2NrZXRdIENsaWVudCBjb25uZWN0ZWQ6IHNlc3Npb249e3tzZXNzaW9ufX0iLGBceDFCWzMxbUVycm9yOiBDb25uZWN0aW9uIHJlZnVzZWRceDFCWzBtCiAgICBhdCBUY3BDb25uZWN0aW9uLmNvbm5lY3QgKC9hcHAvbm9kZV9tb2R1bGVzL3BnL2xpYi9jb25uZWN0aW9uLmpzOjEyOjE1KQogICAgYXQgUG9vbC5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvcG9vbC5qczo0NToyMykKICAgIGF0IGFzeW5jIERhdGFiYXNlU2VydmljZS5xdWVyeSAoL2FwcC9zcmMvZGIvc2VydmljZS50czo4OToxMilgXSxwPWkoKCk9PntsZXQgbT1bImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsInN1Y2Nlc3MiXSxmPVsuMiwuNSwuMTUsLjEsLjA1XSx5PU1hdGgucmFuZG9tKCksTT0wLHo9ImluZm8iO2ZvcihsZXQgJD0wOyQ8Zi5sZW5ndGg7JCsrKWlmKE0rPWZbJF0seTxNKXt6PW1bJF07YnJlYWt9bGV0IE49bltNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqbi5sZW5ndGgpXSxDPW9bel0sTz1DW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpDLmxlbmd0aCldLnJlcGxhY2UoInt7bW9kdWxlfX0iLFsiZXhwcmVzcyIsIm1vbmdvb3NlIiwicmVkaXMiLCJzb2NrZXQuaW8iXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e2tleX19IiwidXNlcjoiK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3RpbWV9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo1MDApKzUwKSkucmVwbGFjZSgie3toZWFkZXJzfX0iLCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24sIEF1dGhvcml6YXRpb246IEJlYXJlciAuLi4iKS5yZXBsYWNlKCJ7e3Zhcn19IixbIk5PREVfRU5WIiwiREFUQUJBU0VfVVJMIiwiQVBJX0tFWSIsIlBPUlQiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e21ldGhvZH19IixbIkdFVCIsIlBPU1QiLCJQVVQiLCJERUxFVEUiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e3BhdGh9fSIsWyIvYXBpL3VzZXJzIiwiL2FwaS9hdXRoL2xvZ2luIiwiL2FwaS9wcm9kdWN0cyIsIi9oZWFsdGgiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e3VzZXJJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e2pvYklkfX0iLCJqb2JfIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwxMSkpLnJlcGxhY2UoInt7dGFza319IixbImNsZWFudXAiLCJiYWNrdXAiLCJyZXBvcnQtZ2VuZXJhdGlvbiIsImNhY2hlLXJlZnJlc2giXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e2lwfX0iLGAxOTIuMTY4LjEuJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU1KX1gKS5yZXBsYWNlKCJ7e3F1ZXJ5fX0iLCJTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIC4uLiIpLnJlcGxhY2UoInt7cGVyY2VudH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSs3MCkpLnJlcGxhY2UoInt7ZW5kcG9pbnR9fSIsIi9hcGkvdjEvbGVnYWN5IikucmVwbGFjZSgie3tkYXlzfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMzApKzEpKS5yZXBsYWNlKCJ7e2Vycm9yfX0iLFsiRUNPTk5SRUZVU0VEIiwiRVRJTUVET1VUIiwiRU5PVEZPVU5EIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3t1c2VyfX0iLCJ1c2VyXyIrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMykpLnJlcGxhY2UoInt7c2VydmljZX19IixbIlJlZGlzIiwiTW9uZ29EQiIsIkVsYXN0aWNTZWFyY2giXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyldKS5yZXBsYWNlKCJ7e3BvcnR9fSIsU3RyaW5nKDNlMytNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTApKSkucmVwbGFjZSgie3tzaXplfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSsxMDApKTtlLmFkZExvZyh6LE8sTil9LCJnZW5lcmF0ZVJhbmRvbUxvZyIpLGQ9aSgoKT0+e2xldCBtPWxbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmwubGVuZ3RoKV0sZj1uZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseT1tLnJlcGxhY2UoLzIwMjQtMDEtMTVUMTA6MjM6XGR7Mn1cLlxkezN9Wi9nLGYpLnJlcGxhY2UoInt7am9iSWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3tzZXNzaW9ufX0iLE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDExKSk7dC53cml0ZWxuUmF3KHkpfSwiZ2VuZXJhdGVEb2NrZXJMb2ciKSx1PWkoKCk9PntpZighYSl7bGV0IG09aSgoKT0+e3AoKTtsZXQgZj1NYXRoLnJhbmRvbSgpKjJlMys1MDA7YT13aW5kb3cuc2V0VGltZW91dCgoKT0+e2EmJm0oKX0sZil9LCJzY2hlZHVsZU5leHQiKTttKCl9fSwic3RhcnRTdHJ1Y3R1cmVkU2ltdWxhdGlvbiIpLGM9aSgoKT0+e2EmJih3aW5kb3cuY2xlYXJUaW1lb3V0KGEpLGE9bnVsbCl9LCJzdG9wU3RydWN0dXJlZFNpbXVsYXRpb24iKSxiPWkoKCk9PntpZighcil7bGV0IG09aSgoKT0+e2QoKTtsZXQgZj1NYXRoLnJhbmRvbSgpKjFlMysyMDA7cj13aW5kb3cuc2V0VGltZW91dCgoKT0+e3ImJm0oKX0sZil9LCJzY2hlZHVsZU5leHQiKTttKCl9fSwic3RhcnRSYXdTaW11bGF0aW9uIiksdj1pKCgpPT57ciYmKHdpbmRvdy5jbGVhclRpbWVvdXQocikscj1udWxsKX0sInN0b3BSYXdTaW11bGF0aW9uIik7cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gobT0+e3N3aXRjaChtLnRleHQ/LnRyaW0oKSl7Y2FzZSJBZGQgU3RydWN0dXJlZCBMb2ciOm0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5wKCkpO2JyZWFrO2Nhc2UiU3RhcnQgU3RydWN0dXJlZCI6bS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnUoKSk7YnJlYWs7Y2FzZSJTdG9wIFN0cnVjdHVyZWQiOm0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5jKCkpO2JyZWFrO2Nhc2UiQWRkIERvY2tlciBMb2ciOm0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5kKCkpO2JyZWFrO2Nhc2UiU3RhcnQgRG9ja2VyIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+YigpKTticmVhaztjYXNlIlN0b3AgRG9ja2VyIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+digpKTticmVha319KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KICAgICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgIDwhLS0gU3RydWN0dXJlZCBMb2dzIFNlY3Rpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0cnVjdHVyZWQgTG9ncyAoSUxvZ0VudHJ5KTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgU3RydWN0dXJlZCBsb2cgZW50cmllcyB3aXRoIGxldmVsLCBtZXNzYWdlLCBhbmQgc291cmNlLiBTdXBwb3J0cyBzZWFyY2ggYW5kIGtleXdvcmQgaGlnaGxpZ2h0aW5nLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgU3RydWN0dXJlZCBMb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgU3RydWN0dXJlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtY2hhcnQtbG9nCiAgICAgICAgICBpZD0ic3RydWN0dXJlZC1sb2ciCiAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdGlvbiBTZXJ2ZXIgTG9ncyJ9CiAgICAgICAgICAuaGlnaGxpZ2h0S2V5d29yZHM9JHtbImVycm9yIiwiZmFpbGVkIiwidGltZW91dCJdfQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBSYXcgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5SYXcgTG9ncyAoRG9ja2VyL0NvbnRhaW5lciBTdHlsZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFJhdyBsb2cgb3V0cHV0IHdpdGggQU5TSSBlc2NhcGUgc2VxdWVuY2VzIGZvciByZWFsIERvY2tlci9jb250YWluZXIgbG9ncy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIERvY2tlciBMb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IERvY2tlcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InJhdy1sb2ciCiAgICAgICAgICAubGFiZWw9JHsiRG9ja2VyIENvbnRhaW5lciBMb2dzIn0KICAgICAgICAgIC5tb2RlPSR7InJhdyJ9CiAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMX0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIEdjLFRpLG5tYSxsbWE9ZygoKT0+e3BlKCk7a3QoKTtvbWEoKTtwdCgpO2Z1KCk7bnIoKTtHYz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sVGk9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG5tYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtbG9nIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdO3ZhciBoZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0TG9nIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOkFycmF5fSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOk51bWJlcn0pXSxOPVtMKHt0eXBlOkFycmF5fSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtZKCldLEk9W1koKV0sSz1bWSgpXSxtZT1bWSgpXSxHYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJsYWJlbCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmxhYmVsLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmxhYmVsPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG8sbCksR2ModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJtb2RlImluIGosImhhcyIpLGdldDppKGo9PmoubW9kZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5tb2RlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGQsdSksR2ModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJsb2dFbnRyaWVzImluIGosImhhcyIpLGdldDppKGo9PmoubG9nRW50cmllcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5sb2dFbnRyaWVzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGIsdiksR2ModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJhdXRvU2Nyb2xsImluIGosImhhcyIpLGdldDppKGo9PmouYXV0b1Njcm9sbCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5hdXRvU2Nyb2xsPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG0sZiksR2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJtYXhFbnRyaWVzImluIGosImhhcyIpLGdldDppKGo9PmoubWF4RW50cmllcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5tYXhFbnRyaWVzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LE0seiksR2ModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRLZXl3b3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaGlnaGxpZ2h0S2V5d29yZHMiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5oaWdobGlnaHRLZXl3b3JkcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5oaWdobGlnaHRLZXl3b3Jkcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxDLF8pLEdjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InNob3dNZXRyaWNzImluIGosImhhcyIpLGdldDppKGo9Pmouc2hvd01ldHJpY3MsImdldCIpLHNldDppKChqLHVlKT0+e2ouc2hvd01ldHJpY3M9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sJCxFKSxHYyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJzZWFyY2hRdWVyeSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnNlYXJjaFF1ZXJ5PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGssUyksR2ModGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJmaWx0ZXJNb2RlImluIGosImhhcyIpLGdldDppKGo9PmouZmlsdGVyTW9kZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5maWx0ZXJNb2RlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFAsUiksR2ModGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJtZXRyaWNzImluIGosImhhcyIpLGdldDppKGo9PmoubWV0cmljcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5tZXRyaWNzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFYsVyksR2ModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxSZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4idGVybWluYWxSZWFkeSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnRlcm1pbmFsUmVhZHksImdldCIpLHNldDppKChqLHVlKT0+e2oudGVybWluYWxSZWFkeT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxCLFUpLEdjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkZ9LG51bGwsdCksaGU9YT1lLnZhbHVlLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pfXN0YXRpYyBkZW1vPXJtYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0IiwiV29ya3NwYWNlIl07I2U9VGkodGhpcyxvLCJTZXJ2ZXIgTG9ncyIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChGKXt0aGlzLiNlPUZ9I3Q9KFRpKHRoaXMsbCksVGkodGhpcyxkLCJzdHJ1Y3R1cmVkIikpO2dldCBtb2RlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGUoRil7dGhpcy4jdD1GfSNhPShUaSh0aGlzLHUpLFRpKHRoaXMsYixbXSkpO2dldCBsb2dFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxvZ0VudHJpZXMoRil7dGhpcy4jYT1GfSNzPShUaSh0aGlzLHYpLFRpKHRoaXMsbSwhMCkpO2dldCBhdXRvU2Nyb2xsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGF1dG9TY3JvbGwoRil7dGhpcy4jcz1GfSNpPShUaSh0aGlzLGYpLFRpKHRoaXMsTSwxZTQpKTtnZXQgbWF4RW50cmllcygpe3JldHVybiB0aGlzLiNpfXNldCBtYXhFbnRyaWVzKEYpe3RoaXMuI2k9Rn0jcj0oVGkodGhpcyx6KSxUaSh0aGlzLEMsW10pKTtnZXQgaGlnaGxpZ2h0S2V5d29yZHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaGlnaGxpZ2h0S2V5d29yZHMoRil7dGhpcy4jcj1GfSNvPShUaSh0aGlzLF8pLFRpKHRoaXMsJCwhMCkpO2dldCBzaG93TWV0cmljcygpe3JldHVybiB0aGlzLiNvfXNldCBzaG93TWV0cmljcyhGKXt0aGlzLiNvPUZ9I249KFRpKHRoaXMsRSksVGkodGhpcyxrLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI259c2V0IHNlYXJjaFF1ZXJ5KEYpe3RoaXMuI249Rn0jbD0oVGkodGhpcyxTKSxUaSh0aGlzLFAsITEpKTtnZXQgZmlsdGVyTW9kZSgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJNb2RlKEYpe3RoaXMuI2w9Rn0jYz0oVGkodGhpcyxSKSxUaSh0aGlzLFYse2RlYnVnOjAsaW5mbzowLHdhcm46MCxlcnJvcjowLHN1Y2Nlc3M6MCx0b3RhbDowLHJhdGU6MH0pKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNjfXNldCBtZXRyaWNzKEYpe3RoaXMuI2M9Rn0jZD0oVGkodGhpcyxXKSxUaSh0aGlzLEIsITEpKTtnZXQgdGVybWluYWxSZWFkeSgpe3JldHVybiB0aGlzLiNkfXNldCB0ZXJtaW5hbFJlYWR5KEYpe3RoaXMuI2Q9Rn1sb2dCdWZmZXI9KFRpKHRoaXMsVSksW10pO3RyYWlsaW5nSGlkZGVuQ291bnQ9MDt0ZXJtaW5hbD1udWxsO2ZpdEFkZG9uPW51bGw7c2VhcmNoQWRkb249bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtkb210b29sc0luc3RhbmNlPW51bGw7cmF0ZUJ1ZmZlcj1bXTtyYXRlSW50ZXJ2YWw9bnVsbDtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAxNTBweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1uYXYgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmZpbHRlci10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MyUgNDclKSIsImhzbCg0NSA5MyUgNDclKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDklKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2xzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciAueHRlcm0gewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLm1ldHJpY3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubWV0cmljOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAubWV0cmljLmVycm9yOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy53YXJuOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyNSA5NSUgNTMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5pbmZvOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyMjIuMiA0Ny40JSA1MS4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuc3VjY2Vzczo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAubWV0cmljLmRlYnVnOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDYzLjklKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlOjpiZWZvcmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0YS5zZXR1cCgpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7dGhpcy5sYWJlbH0+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggbG9ncy4uLiIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICAgIEBpbnB1dD0ke0Y9PnRoaXMuaGFuZGxlU2VhcmNoSW5wdXQoRil9CiAgICAgICAgICAgICAgQGtleWRvd249JHtGPT50aGlzLmhhbmRsZVNlYXJjaEtleWRvd24oRil9CiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1uYXYiPgogICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2VhcmNoUHJldmlvdXMoKX0gdGl0bGU9IlByZXZpb3VzIG1hdGNoIj7ihpE8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaE5leHQoKX0gdGl0bGU9Ik5leHQgbWF0Y2giPuKGkzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItdG9nZ2xlICR7dGhpcy5maWx0ZXJNb2RlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVGaWx0ZXJNb2RlKCl9CiAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5maWx0ZXJNb2RlPyJTd2l0Y2ggdG8gaGlnaGxpZ2h0IG1vZGUiOiJTd2l0Y2ggdG8gZmlsdGVyIG1vZGUifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5maWx0ZXJNb2RlPyJGaWx0ZXIiOiJIaWdobGlnaHQifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNvbnRyb2wtYnV0dG9uICR7dGhpcy5hdXRvU2Nyb2xsPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVBdXRvU2Nyb2xsKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBBdXRvIFNjcm9sbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29udHJvbC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNsZWFyTG9ncygpfT4KICAgICAgICAgICAgICBDbGVhcgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnRlcm1pbmFsUmVhZHk/IiI6d2A8ZGl2IGNsYXNzPSJsb2FkaW5nLXN0YXRlIj5Mb2FkaW5nIHRlcm1pbmFsLi4uPC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnNob3dNZXRyaWNzP3dgCiAgICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJtZXRyaWNzLWJhciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIGVycm9yIj5lcnJvcnM6ICR7dGhpcy5tZXRyaWNzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgd2FybiI+d2FybnM6ICR7dGhpcy5tZXRyaWNzLndhcm59PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBpbmZvIj5pbmZvOiAke3RoaXMubWV0cmljcy5pbmZvfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgc3VjY2VzcyI+c3VjY2VzczogJHt0aGlzLm1ldHJpY3Muc3VjY2Vzc308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIGRlYnVnIj5kZWJ1ZzogJHt0aGlzLm1ldHJpY3MuZGVidWd9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyByYXRlIj4ke3RoaXMubWV0cmljcy5yYXRlLnRvRml4ZWQoMSl9IGxvZ3Mvc2VjPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5kb210b29sc0luc3RhbmNlPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVRlcm1pbmFsKCksdGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg9PT0wKXt0aGlzLmxvZ0J1ZmZlcj1bLi4udGhpcy5sb2dFbnRyaWVzXTtmb3IobGV0IEYgb2YgdGhpcy5sb2dFbnRyaWVzKXRoaXMudXBkYXRlTWV0cmljcyhGLmxldmVsKSx0aGlzLndyaXRlTG9nRW50cnkoRil9ZWxzZSBpZih0aGlzLmxvZ0VudHJpZXMubGVuZ3RoPjAmJnRoaXMubG9nQnVmZmVyLmxlbmd0aD4wKXtsZXQgRj1uZXcgU2V0KHRoaXMubG9nQnVmZmVyLm1hcChqPT5gJHtqLnRpbWVzdGFtcH18JHtqLm1lc3NhZ2V9YCkpO2ZvcihsZXQgaiBvZiB0aGlzLmxvZ0VudHJpZXMpRi5oYXMoYCR7ai50aW1lc3RhbXB9fCR7ai5tZXNzYWdlfWApfHwodGhpcy5sb2dCdWZmZXIucHVzaChqKSx0aGlzLnVwZGF0ZU1ldHJpY3Moai5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KGopKX19YXN5bmMgaW5pdGlhbGl6ZVRlcm1pbmFsKCl7bGV0IEY9UXIuZ2V0SW5zdGFuY2UoKSxbaix1ZSxsZV09YXdhaXQgUHJvbWlzZS5hbGwoW0YubG9hZFh0ZXJtKCksRi5sb2FkWHRlcm1GaXRBZGRvbigpLEYubG9hZFh0ZXJtU2VhcmNoQWRkb24oKV0pO2F3YWl0IHRoaXMuaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCksdGhpcy50ZXJtaW5hbD1uZXcgai5UZXJtaW5hbCh7Y3Vyc29yQmxpbms6ITEsZGlzYWJsZVN0ZGluOiEwLGZvbnRTaXplOjEyLGZvbnRGYW1pbHk6IidTRiBNb25vJywgJ01vbmFjbycsICdDb25zb2xhcycsICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2UiLHRoZW1lOnRoaXMuZ2V0VGVybWluYWxUaGVtZSgpLHNjcm9sbGJhY2s6dGhpcy5tYXhFbnRyaWVzLGNvbnZlcnRFb2w6ITB9KSx0aGlzLmZpdEFkZG9uPW5ldyB1ZS5GaXRBZGRvbix0aGlzLnNlYXJjaEFkZG9uPW5ldyBsZS5TZWFyY2hBZGRvbix0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLmZpdEFkZG9uKSx0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLnNlYXJjaEFkZG9uKTtsZXQgUT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRlcm1pbmFsLWNvbnRhaW5lciIpO3RoaXMudGVybWluYWwub3BlbihRKSxhd2FpdCBuZXcgUHJvbWlzZShpZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGllKSksdGhpcy5maXRBZGRvbi5maXQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuZml0QWRkb24/LmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFEpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj10aGlzLmRvbXRvb2xzSW5zdGFuY2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZSgpKX0pLHRoaXMucmF0ZUludGVydmFsPXNldEludGVydmFsKCgpPT50aGlzLmNhbGN1bGF0ZVJhdGUoKSwxZTMpLHRoaXMudGVybWluYWxSZWFkeT0hMDtmb3IobGV0IGllIG9mIHRoaXMubG9nQnVmZmVyKXRoaXMud3JpdGVMb2dFbnRyeShpZSl9dXBkYXRlZChGKXtpZihzdXBlci51cGRhdGVkKEYpLEYuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZSgpKSxGLmhhcygibG9nRW50cmllcyIpJiZ0aGlzLnRlcm1pbmFsUmVhZHkmJnRoaXMubG9nRW50cmllcy5sZW5ndGg+MCl7bGV0IGo9Ri5nZXQoImxvZ0VudHJpZXMiKXx8W10sdWU9dGhpcy5sb2dFbnRyaWVzO2lmKGoubGVuZ3RoPT09dWUubGVuZ3RoJiZqLmxlbmd0aD4wJiZqW2oubGVuZ3RoLTFdLnRpbWVzdGFtcD09PXVlW3VlLmxlbmd0aC0xXS50aW1lc3RhbXAmJmpbai5sZW5ndGgtMV0ubWVzc2FnZT09PXVlW3VlLmxlbmd0aC0xXS5tZXNzYWdlKXJldHVybjtpZih1ZS5sZW5ndGg+ai5sZW5ndGgmJmoubGVuZ3RoPjAmJmpbai5sZW5ndGgtMV0udGltZXN0YW1wPT09dWVbai5sZW5ndGgtMV0udGltZXN0YW1wJiZqW2oubGVuZ3RoLTFdLm1lc3NhZ2U9PT11ZVtqLmxlbmd0aC0xXS5tZXNzYWdlKXtsZXQgbGU9dWUuc2xpY2Uoai5sZW5ndGgpO2ZvcihsZXQgUSBvZiBsZSl0aGlzLmxvZ0J1ZmZlci5wdXNoKFEpLHRoaXMudXBkYXRlTWV0cmljcyhRLmxldmVsKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCghdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeXx8dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoUSkpJiZ0aGlzLndyaXRlTG9nRW50cnkoUSk7cmV0dXJufXRoaXMubG9nQnVmZmVyPVsuLi51ZV0sdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfX1nZXRUZXJtaW5hbFRoZW1lKCl7cmV0dXJuIXRoaXMuZ29CcmlnaHQ/e2JhY2tncm91bmQ6IiMwYTBhMGEiLGZvcmVncm91bmQ6IiNlMGUwZTAiLGN1cnNvcjoiI2UwZTBlMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoiIzQwNDA0MCIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2ZmNTU1NSIsZ3JlZW46IiM1MGZhN2IiLHllbGxvdzoiI2YxZmE4YyIsYmx1ZToiIzYyNzJhNCIsbWFnZW50YToiI2ZmNzljNiIsY3lhbjoiIzhiZTlmZCIsd2hpdGU6IiNmOGY4ZjIiLGJyaWdodEJsYWNrOiIjNjI3MmE0IixicmlnaHRSZWQ6IiNmZjZlNmUiLGJyaWdodEdyZWVuOiIjNjlmZjk0IixicmlnaHRZZWxsb3c6IiNmZmZmYTUiLGJyaWdodEJsdWU6IiNkNmFjZmYiLGJyaWdodE1hZ2VudGE6IiNmZjkyZGYiLGJyaWdodEN5YW46IiNhNGZmZmYiLGJyaWdodFdoaXRlOiIjZmZmZmZmIn06e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsc2VsZWN0aW9uQmFja2dyb3VuZDoiI2FkZDZmZiIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In19YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCl7bGV0IEY9Inh0ZXJtLXNoYWRvdy1zdHlsZXMiO2lmKHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZChGKSlyZXR1cm47bGV0IGo9YCR7aTJ9L3h0ZXJtQCR7czIueHRlcm19L2Nzcy94dGVybS5jc3NgLGxlPWF3YWl0KGF3YWl0IGZldGNoKGopKS50ZXh0KCksUT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO1EuaWQ9RixRLnRleHRDb250ZW50PWxlLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChRKX1hZGRMb2coRixqLHVlKXtsZXQgbGU9e3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6RixtZXNzYWdlOmosc291cmNlOnVlfTt0aGlzLmxvZ0J1ZmZlci5wdXNoKGxlKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShsZSk6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIobGUpPyh0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLndyaXRlTG9nRW50cnkobGUpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MobGUubGV2ZWwpfXVwZGF0ZUxvZyhGKXtpZihGKWZvcihsZXQgaiBvZiBGKXRoaXMubG9nQnVmZmVyLnB1c2goaiksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwhdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeT90aGlzLndyaXRlTG9nRW50cnkoaik6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoaik/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeShqKSk6dGhpcy51cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCksdGhpcy51cGRhdGVNZXRyaWNzKGoubGV2ZWwpfXVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PjAmJnRoaXMudGVybWluYWwud3JpdGUoIlx4MUJbMUFceDFCWzJLXHIiKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQrKyx0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50KSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKSl9ZW50cnlNYXRjaGVzRmlsdGVyKEYpe2lmKCF0aGlzLnNlYXJjaFF1ZXJ5KXJldHVybiEwO2xldCBqPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtyZXR1cm4gRi5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoail8fEYubGV2ZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhqKXx8KEYuc291cmNlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGopPz8hMSl9d3JpdGVMb2dFbnRyeShGKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IGo9dGhpcy5mb3JtYXRMb2dFbnRyeShGKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oaiksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9Zm9ybWF0TG9nRW50cnkoRil7bGV0IGo9dGhpcy5mb3JtYXRUaW1lc3RhbXAoRi50aW1lc3RhbXApLHVlPXtkZWJ1ZzoiXHgxQls5MG0iLGluZm86Ilx4MUJbMzZtIix3YXJuOiJceDFCWzMzbSIsZXJyb3I6Ilx4MUJbMzFtIixzdWNjZXNzOiJceDFCWzMybSJ9LGxlPSJceDFCWzBtIixRPSJceDFCWzJtIixpZT1gJHt1ZVtGLmxldmVsXX1bJHtGLmxldmVsLnRvVXBwZXJDYXNlKCkucGFkRW5kKDcpfV0ke2xlfWAsdGU9Ri5zb3VyY2U/YCR7UX1bJHtGLnNvdXJjZX1dJHtsZX0gYDoiIixlZT10aGlzLmFwcGx5SGlnaGxpZ2h0cyhGLm1lc3NhZ2UpO3JldHVybmAke1F9JHtqfSR7bGV9ICR7aWV9ICR7dGV9JHtlZX1gfWZvcm1hdFRpbWVzdGFtcChGKXtyZXR1cm4gbmV3IERhdGUoRikudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXIxMjohMSxob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9YXBwbHlIaWdobGlnaHRzKEYpe2xldCBqPVsuLi50aGlzLmhpZ2hsaWdodEtleXdvcmRzXTtpZih0aGlzLmZpbHRlck1vZGUmJnRoaXMuc2VhcmNoUXVlcnkmJmoucHVzaCh0aGlzLnNlYXJjaFF1ZXJ5KSxqLmxlbmd0aD09PTApcmV0dXJuIEY7bGV0IHVlPUY7Zm9yKGxldCBsZSBvZiBqKXtsZXQgUT1sZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpLGllPW5ldyBSZWdFeHAoYCgke1F9KWAsImdpIik7dWU9dWUucmVwbGFjZShpZSwiXHgxQls0M21ceDFCWzMwbSQxXHgxQlswbSIpfXJldHVybiB1ZX13cml0ZVJhdyhGKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC53cml0ZShGKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfXdyaXRlbG5SYXcoRil7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGVsbihGKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfWhhbmRsZVNlYXJjaElucHV0KEYpe2xldCB1ZT1GLnRhcmdldC52YWx1ZSxsZT10aGlzLnNlYXJjaFF1ZXJ5IT09dWU7dGhpcy5zZWFyY2hRdWVyeT11ZSx0aGlzLmZpbHRlck1vZGUmJmxlP3RoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKTp0aGlzLnNlYXJjaFF1ZXJ5JiZ0aGlzLnNlYXJjaEFkZG9uPy5maW5kTmV4dCh0aGlzLnNlYXJjaFF1ZXJ5KX1oYW5kbGVTZWFyY2hLZXlkb3duKEYpe0Yua2V5PT09IkVudGVyIj9GLnNoaWZ0S2V5P3RoaXMuc2VhcmNoUHJldmlvdXMoKTp0aGlzLnNlYXJjaE5leHQoKTpGLmtleT09PSJFc2NhcGUiJiYodGhpcy5zZWFyY2hRdWVyeT0iIixGLnRhcmdldC52YWx1ZT0iIil9c2VhcmNoKEYpe3RoaXMuc2VhcmNoUXVlcnk9Rix0aGlzLnNlYXJjaEFkZG9uPy5maW5kTmV4dChGKX1zZWFyY2hOZXh0KCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9c2VhcmNoUHJldmlvdXMoKXt0aGlzLnNlYXJjaFF1ZXJ5JiZ0aGlzLnNlYXJjaEFkZG9uPy5maW5kUHJldmlvdXModGhpcy5zZWFyY2hRdWVyeSl9dG9nZ2xlQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbD0hdGhpcy5hdXRvU2Nyb2xsLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfXRvZ2dsZUZpbHRlck1vZGUoKXt0aGlzLmZpbHRlck1vZGU9IXRoaXMuZmlsdGVyTW9kZSx0aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCl9cmVSZW5kZXJGaWx0ZXJlZExvZ3MoKXtpZih0aGlzLnRlcm1pbmFsKXtpZih0aGlzLnRlcm1pbmFsLmNsZWFyKCksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnkpZm9yKGxldCBGIG9mIHRoaXMubG9nQnVmZmVyKXtsZXQgaj10aGlzLmZvcm1hdExvZ0VudHJ5KEYpO3RoaXMudGVybWluYWwud3JpdGVsbihqKX1lbHNle2xldCBGPTA7Zm9yKGxldCBqIG9mIHRoaXMubG9nQnVmZmVyKWlmKHRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKGopKXtGPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoRiksRj0wKTtsZXQgdWU9dGhpcy5mb3JtYXRMb2dFbnRyeShqKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4odWUpfWVsc2UgRisrO0Y+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihGKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9Ril9dGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9fXdyaXRlSGlkZGVuUGxhY2Vob2xkZXIoRil7bGV0IGo9Ilx4MUJbMm0iLHVlPSJceDFCWzBtIixsZT1GPT09MT8iWzEgbG9nIGxpbmUgaGlkZGVuIGJ5IGZpbHRlciAuLi5dIjpgWyR7Rn0gbG9nIGxpbmVzIGhpZGRlbiBieSBmaWx0ZXIgLi4uXWA7dGhpcy50ZXJtaW5hbD8ud3JpdGVsbihgJHtqfSR7bGV9JHt1ZX1gKX1jbGVhckxvZ3MoKXt0aGlzLnRlcm1pbmFsPy5jbGVhcigpLHRoaXMubG9nQnVmZmVyPVtdLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMucmVzZXRNZXRyaWNzKCl9c2Nyb2xsVG9Cb3R0b20oKXt0aGlzLnRlcm1pbmFsPy5zY3JvbGxUb0JvdHRvbSgpfXVwZGF0ZU1ldHJpY3MoRil7dGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MsW0ZdOnRoaXMubWV0cmljc1tGXSsxLHRvdGFsOnRoaXMubWV0cmljcy50b3RhbCsxfSx0aGlzLnJlY29yZExvZ0V2ZW50KCl9cmVjb3JkTG9nRXZlbnQoKXt0aGlzLnJhdGVCdWZmZXIucHVzaChEYXRlLm5vdygpKX1jYWxjdWxhdGVSYXRlKCl7bGV0IEY9RGF0ZS5ub3coKTt0aGlzLnJhdGVCdWZmZXI9dGhpcy5yYXRlQnVmZmVyLmZpbHRlcih1ZT0+Ri11ZTwxZTQpO2xldCBqPXRoaXMucmF0ZUJ1ZmZlci5sZW5ndGgvMTA7aiE9PXRoaXMubWV0cmljcy5yYXRlJiYodGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MscmF0ZTpqfSl9cmVzZXRNZXRyaWNzKCl7dGhpcy5tZXRyaWNzPXtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9LHRoaXMucmF0ZUJ1ZmZlcj1bXX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiZ0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnJhdGVJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLnJhdGVJbnRlcnZhbCksdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5kaXNwb3NlKCl9c3RhdGlje1RpKGEsdCl9fTtyZXR1cm4gaGU9YX0pKCl9KTt2YXIgY21hPWcoKCk9PntsbWEoKX0pO3ZhciBkbWEsdW1hPWcoKCk9PntwZSgpO0l0KCk7QWl0KCk7ZG1hPWkoKCk9PntsZXQgcz1be25hbWU6IkxhdGVuY3kiLG1heDoxMDB9LHtuYW1lOiJUaHJvdWdocHV0IixtYXg6MTAwfSx7bmFtZToiQXZhaWxhYmlsaXR5IixtYXg6MTAwfSx7bmFtZToiRXJyb3IgUmF0ZSIsbWF4OjEwMH0se25hbWU6IlNhdHVyYXRpb24iLG1heDoxMDB9LHtuYW1lOiJTZWN1cml0eSIsbWF4OjEwMH1dLGU9W3tuYW1lOiJTZXJ2aWNlIEEiLHZhbHVlczpbODUsOTAsOTksMTIsNDUsNzhdfSx7bmFtZToiU2VydmljZSBCIix2YWx1ZXM6WzcwLDY1LDk1LDI4LDYwLDkwXX1dLHQ9W3tuYW1lOiJTcGVlZCIsbWF4OjEwfSx7bmFtZToiUmVsaWFiaWxpdHkiLG1heDoxMH0se25hbWU6IkNvbWZvcnQiLG1heDoxMH0se25hbWU6IlNhZmV0eSIsbWF4OjEwfSx7bmFtZToiQ29zdCIsbWF4OjEwfV0sYT1be25hbWU6IlJhdGluZyIsdmFsdWVzOls4LjUsOS4yLDcsOS41LDZdfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyByPT57bGV0IG49ci5xdWVyeVNlbGVjdG9yKCIjY29tcGFyaXNvbi1jaGFydCIpLG89ci5xdWVyeVNlbGVjdG9yKCIjc2luZ2xlLWNoYXJ0Iik7ci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocD0+e3AudGV4dD8udHJpbSgpPT09IlJhbmRvbWl6ZSImJnAuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bi5zZXJpZXM9ZS5tYXAodT0+KHsuLi51LHZhbHVlczp1LnZhbHVlcy5tYXAoKCk9Pk1hdGgucm91bmQoMjArTWF0aC5yYW5kb20oKSo4MCkpfSkpLG8uc2VyaWVzPWEubWFwKHU9Pih7Li4udSx2YWx1ZXM6dS52YWx1ZXMubWFwKCgpPT5NYXRoLnJvdW5kKCgyK01hdGgucmFuZG9tKCkqOCkqMTApLzEwKX0pKX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1yYWRhcgogICAgICAgICAgICBpZD0iY29tcGFyaXNvbi1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgSGVhbHRoIENvbXBhcmlzb24ifQogICAgICAgICAgICAuaW5kaWNhdG9ycz0ke3N9CiAgICAgICAgICAgIC5zZXJpZXM9JHtlfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1yYWRhcj4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1yYWRhcgogICAgICAgICAgICBpZD0ic2luZ2xlLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBSYXRpbmcifQogICAgICAgICAgICAuaW5kaWNhdG9ycz0ke3R9CiAgICAgICAgICAgIC5zZXJpZXM9JHthfQogICAgICAgICAgICAuZmlsbEFyZWE9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtcmFkYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgUmFkYXIgY2hhcnQgZm9yIG11bHRpLWRpbWVuc2lvbmFsIGNvbXBhcmlzb24g4oCiCiAgICAgICAgICBTdXBwb3J0cyBtdWx0aXBsZSBvdmVybGF5IHNlcmllcyBhbmQgY29uZmlndXJhYmxlIGZpbGwg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBwbWEsaG1hPWcoKCk9PntwZSgpO1VYKCk7cG1hPVsuLi5VaCxKYGBdfSk7dmFyIGZtYSxtbWE9ZygoKT0+e3BlKCk7Zm1hPWkocz0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3MubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnRSYWRhciIpfSk7dmFyIFdYLHZ1LGdtYSxBaXQ9ZygoKT0+e3BlKCk7VlgoKTt1bWEoKTtobWEoKTttbWEoKTtadigpO1dYPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx2dT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZ21hPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1jaGFydC1yYWRhciIpXSxlLHQ9W10sYSxyPWJ1LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRSYWRhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLFdYKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kaWNhdG9ycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaW5kaWNhdG9ycyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmluZGljYXRvcnMsImdldCIpLHNldDppKCh6LE4pPT57ei5pbmRpY2F0b3JzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxXWCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2VyaWVzImluIHosImhhcyIpLGdldDppKHo9Pnouc2VyaWVzLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouc2VyaWVzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxXWCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNob3dMZWdlbmQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouc2hvd0xlZ2VuZD1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksV1godGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxsQXJlYSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZmlsbEFyZWEiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5maWxsQXJlYSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmZpbGxBcmVhPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxXWChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWRtYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9dnUodGhpcyxvLFtdKTtnZXQgaW5kaWNhdG9ycygpe3JldHVybiB0aGlzLiNlfXNldCBpbmRpY2F0b3JzKE0pe3RoaXMuI2U9TX0jdD0odnUodGhpcyxsKSx2dSh0aGlzLGQsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllcyhNKXt0aGlzLiN0PU19I2E9KHZ1KHRoaXMsdSksdnUodGhpcyxiLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0xlZ2VuZChNKXt0aGlzLiNhPU19I3M9KHZ1KHRoaXMsdiksdnUodGhpcyxtLCEwKSk7Z2V0IGZpbGxBcmVhKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGZpbGxBcmVhKE0pe3RoaXMuI3M9TX1zdGF0aWMgc3R5bGVzPXBtYTtyZW5kZXIoKXtyZXR1cm4gZm1hKHRoaXMpfWFzeW5jIHVwZGF0ZWQoTSl7c3VwZXIudXBkYXRlZChNKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihNLmhhcygiaW5kaWNhdG9ycyIpfHxNLmhhcygic2VyaWVzIil8fE0uaGFzKCJzaG93TGVnZW5kIil8fE0uaGFzKCJmaWxsQXJlYSIpKSYmdGhpcy51cGRhdGVDaGFydCgpfWJ1aWxkT3B0aW9uKCl7bGV0IE09VmgodGhpcy5nb0JyaWdodCksej1xaCh0aGlzLmdvQnJpZ2h0KSxOPXRoaXMuZ29CcmlnaHQ/LjE6LjE1LEM9dGhpcy5zZXJpZXMubWFwKChfLE8pPT57bGV0ICQ9Xy5jb2xvcnx8eltPJXoubGVuZ3RoXTtyZXR1cm57bmFtZTpfLm5hbWUsdmFsdWU6Xy52YWx1ZXMsaXRlbVN0eWxlOntjb2xvcjokLGJvcmRlckNvbG9yOiQsYm9yZGVyV2lkdGg6MX0sbGluZVN0eWxlOntjb2xvcjokLHdpZHRoOjEuNX0sYXJlYVN0eWxlOnRoaXMuZmlsbEFyZWE/e2NvbG9yOmpoKCQsTil9OnZvaWQgMCxzeW1ib2w6ImNpcmNsZSIsc3ltYm9sU2l6ZTo1fX0pO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIn0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/e2JvdHRvbTo4LGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwfTp7c2hvdzohMX0scmFkYXI6e2luZGljYXRvcjp0aGlzLmluZGljYXRvcnMubWFwKF89Pih7bmFtZTpfLm5hbWUsbWF4Ol8ubWF4fSkpLHNoYXBlOiJwb2x5Z29uIixzcGxpdE51bWJlcjo0LGF4aXNOYW1lOntjb2xvcjpNLnRleHRTZWNvbmRhcnksZm9udFNpemU6MTF9LHNwbGl0QXJlYTp7YXJlYVN0eWxlOntjb2xvcjpbTS5iZ1RlcnRpYXJ5LE0uYmdTZWNvbmRhcnldfX0sc3BsaXRMaW5lOntsaW5lU3R5bGU6e2NvbG9yOk0uYm9yZGVyRGVmYXVsdH19LGF4aXNMaW5lOntsaW5lU3R5bGU6e2NvbG9yOk0uYm9yZGVyRGVmYXVsdH19fSxzZXJpZXM6W3t0eXBlOiJyYWRhciIsZGF0YTpDLGVtcGhhc2lzOntsaW5lU3R5bGU6e3dpZHRoOjN9fX1dfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdnUodGhpcyxmKX1zdGF0aWN7dnUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIGJtYT1nKCgpPT57QWl0KCl9KTt2YXIgdm1hPWcoKCk9PnskZmEoKTtxZmEoKTtaZmEoKTtpbWEoKTtjbWEoKTtibWEoKX0pO3ZhciB4bWEseW1hPWcoKCk9PntwZSgpO3htYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vV3JhcHBlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InR5cGVzY3JpcHQiPgppbnRlcmZhY2UgVXNlciB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7CiAgZW1haWw6IHN0cmluZzsKICBpc0FjdGl2ZTogYm9vbGVhbjsKfQoKY2xhc3MgVXNlclNlcnZpY2UgewogIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdOwogIAogIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpVXJsOiBzdHJpbmcpIHsKICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpOwogIH0KICAKICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFwaVVybCk7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7CiAgICAgIHJldHVybiBkYXRhLnVzZXJzOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KICAKICBhZGRVc2VyKHVzZXI6IFVzZXIpOiB2b2lkIHsKICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTsKICB9Cn0KCi8vIFVzYWdlIGV4YW1wbGUKY29uc3Qgc2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMnKTsKY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7CmNvbnNvbGUubG9nKCdGb3VuZCB1c2VyczonLCB1c2Vycy5sZW5ndGgpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SmF2YVNjcmlwdCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBKYXZhU2NyaXB0IHdpdGggRVM2KyBmZWF0dXJlcy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iamF2YXNjcmlwdCI+Ci8vIEFycmF5IG1hbmlwdWxhdGlvbiBleGFtcGxlcwpjb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdOwpjb25zdCBkb3VibGVkID0gbnVtYmVycy5tYXAobiA9PiBuICogMik7CmNvbnN0IGZpbHRlcmVkID0gbnVtYmVycy5maWx0ZXIobiA9PiBuID4gMyk7CgovLyBPYmplY3QgZGVzdHJ1Y3R1cmluZwpjb25zdCB1c2VyID0geyBuYW1lOiAnSm9obicsIGFnZTogMzAsIGNpdHk6ICdOZXcgWW9yaycgfTsKY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7CgovLyBQcm9taXNlIGhhbmRsaW5nCmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7CiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKfTsKCi8vIE1vZGVybiBzeW50YXgKY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxgSGVsbG8sIFwke25hbWV9IVxgOwpjb25zb2xlLmxvZyhncmVldCgnU2hhZENOJykpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHl0aG9uIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+UHl0aG9uIGNvZGUgd2l0aCBjbGFzc2VzIGFuZCB0eXBlIGhpbnRzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJweXRob24iPgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKaW1wb3J0IGFzeW5jaW8KCmNsYXNzIERhdGFQcm9jZXNzb3I6CiAgICAiIiJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzcyIiIgogICAgCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZTogc3RyKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5kYXRhOiBMaXN0W2RpY3RdID0gW10KICAgIAogICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XToKICAgICAgICAiIiJQcm9jZXNzIGRhdGEgaXRlbXMgYXN5bmNocm9ub3VzbHkiIiIKICAgICAgICByZXN1bHRzID0gW10KICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKICAgICAgICAgICAgIyBTaW11bGF0ZSBhc3luYyBwcm9jZXNzaW5nCiAgICAgICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMC4xKQogICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAnaWQnOiBpdGVtLmdldCgnaWQnKSwKICAgICAgICAgICAgICAgICdwcm9jZXNzZWQnOiBUcnVlLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZQogICAgICAgICAgICB9KQogICAgICAgIHJldHVybiByZXN1bHRzCiAgICAKICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKSAtPiBkaWN0OgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsCiAgICAgICAgICAgICdpdGVtc19wcm9jZXNzZWQnOiBsZW4oc2VsZi5kYXRhKQogICAgICAgIH0KCiMgVXNhZ2UKcHJvY2Vzc29yID0gRGF0YVByb2Nlc3NvcigiTWFpbiIpCmRhdGEgPSBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc19kYXRhKFt7J2lkJzogMX0sIHsnaWQnOiAyfV0pCiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DU1MgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgYW5kIGFuaW1hdGlvbnMuIE5vdGUgdGhlIHNob3J0ZXIgbGFuZ3VhZ2UgbGFiZWwuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImNzcyI+Ci8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqLwo6cm9vdCB7CiAgLS1wcmltYXJ5LWNvbG9yOiAjM2I4MmY2OwogIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxOwogIC0tYmFja2dyb3VuZDogI2ZmZmZmZjsKICAtLXRleHQtY29sb3I6ICMwOTA5MGI7CiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7Cn0KCi5jYXJkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogIHBhZGRpbmc6IDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgouY2FyZDpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlNPTiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkpTT04gY29uZmlndXJhdGlvbiB3aXRoIHByb3BlciBmb3JtYXR0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqc29uIj4KewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMS4xMC43IiwKICAiZGVzY3JpcHRpb24iOiAiQSBjb21wcmVoZW5zaXZlIGNhdGFsb2cgb2Ygd2ViIGNvbXBvbmVudHMiLAogICJtYWluIjogImRpc3RfdHNfd2ViL2luZGV4LmpzIiwKICAidHlwZSI6ICJtb2R1bGUiLAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQgdHNmb2xkZXJzIC0tYWxsb3dpbXBsaWNpdGFueSAmJiB0c2J1bmRsZSBlbGVtZW50IC0tcHJvZHVjdGlvbiIsCiAgICAid2F0Y2giOiAidHN3YXRjaCBlbGVtZW50IiwKICAgICJ0ZXN0IjogInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2UiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjQ1IiwKICAgICJoaWdobGlnaHQuanMiOiAiXjExLjkuMCIKICB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBOaXQsR1gsd21hLFJpdD1nKCgpPT57eW1hKCk7cGUoKTtDcigpO3B0KCk7bzMoKTtrdCgpO29yKCk7ZnUoKTtucigpO05pdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sR1g9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHdtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtZGF0YXZpZXctY29kZWJveCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRGF0YXZpZXdDb2RlYm94Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLE5pdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJwcm9nTGFuZyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnByb2dMYW5nLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YucHJvZ0xhbmc9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLE5pdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvZGVUb0Rpc3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+ImNvZGVUb0Rpc3BsYXkiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5jb2RlVG9EaXNwbGF5LCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuY29kZVRvRGlzcGxheT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksTml0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89eG1hO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3IiwiV29ya3NwYWNlIl07I2U9R1godGhpcyxvLCJ0eXBlc2NyaXB0Iik7Z2V0IHByb2dMYW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb2dMYW5nKGIpe3RoaXMuI2U9Yn0jdD0oR1godGhpcyxsKSxHWCh0aGlzLGQsIiIpKTtnZXQgY29kZVRvRGlzcGxheSgpe3JldHVybiB0aGlzLiN0fXNldCBjb2RlVG9EaXNwbGF5KGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXNdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0YS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB9CgogICAgICAgIC5hcHBiYXIgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuYXBwYmFyIC5maWxlTmFtZSB7CiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuYm90dG9tQmFyIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VzTGFiZWwgewogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubGFuZ3VhZ2VMYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmhsanMta2V5d29yZCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmNvZGVncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggYXV0bzsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxNnB4IDBweCAwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVDb3VudGVyOmxhc3QtY2hpbGQgewogICAgICAgICAgb3BhY2l0eTogNTAlOwogICAgICAgIH0KCiAgICAgICAgcHJlIHsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMjRweDsKICAgICAgICB9CgogICAgICAgIGNvZGUgewogICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIH0KCiAgICAgICAgY29kZSwKICAgICAgICBjb2RlICosCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7CiAgICAgICAgICBmb250LWZhbWlseTogJHskOH07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1zdHJpbmcgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtcGFyYW1zIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA4OTFiMiIsIiMwNmI2ZDQiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1jb21tZW50IHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1udW1iZXIgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWxpdGVyYWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWF0dHIgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOGI1Y2Y2IiwiI2E3OGJmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXZhcmlhYmxlIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGVlcy10aWxlCiAgICAgICAgQGNvbnRleHRtZW51PSIke2I9PntrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhiLFt7bmFtZToiQWJvdXQiLGljb25OYW1lOiJjaXJjbGVJbmZvIixhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX1dKX19IgogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJhcHBiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZU5hbWUiPmluZGV4LnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZU51bWJlcnMiPgogICAgICAgICAgICAkeygoKT0+e2xldCBiPTA7cmV0dXJuIHRoaXMuY29kZVRvRGlzcGxheS5zcGxpdChgCmApLm1hcCh2PT4oYisrLHdgPGRpdiBjbGFzcz0ibGluZUNvdW50ZXIiPiR7Yn08L2Rpdj5gKSl9KSgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cHJlPjxjb2RlPjwvY29kZT48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KEdYKHRoaXMsdSksIiIpO2hpZ2hsaWdodEpzPW51bGw7YXN5bmMgdXBkYXRlZChiKXtzdXBlci51cGRhdGVkKGIpLGNvbnNvbGUubG9nKCJoaWdobGlnaHRpbmcgbm93IiksY29uc29sZS5sb2codGhpcy5jaGlsZE5vZGVzKTtsZXQgdj1bXTt0aGlzLmNoaWxkTm9kZXMuZm9yRWFjaChmPT57Zi5ub2RlTmFtZT09PSIjdGV4dCImJnYucHVzaChmKX0pLHRoaXMuY29kZVRvRGlzcGxheSYmdGhpcy5jb2RlVG9EaXNwbGF5IT09dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1uZC5ub3JtYWxpemUodGhpcy5jb2RlVG9EaXNwbGF5KS50cmltU3RhcnQoKSksdlswXSYmdlswXS53aG9sZVRleHQmJiF0aGlzLmNvZGVUb0Rpc3BsYXkmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1uZC5ub3JtYWxpemUodlswXS53aG9sZVRleHQpLnRyaW1TdGFydCgpLHRoaXMuY29kZVRvRGlzcGxheT10aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCBRci5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgeD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiY29kZSIpLG09dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUse2xhbmd1YWdlOnRoaXMucHJvZ0xhbmcsaWdub3JlSWxsZWdhbHM6ITB9KTt4LmlubmVySFRNTD1tLnZhbHVlfXN0YXRpY3tHWChhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIga21hPWcoKCk9PntSaXQoKX0pO3ZhciBTbWEsX21hPWcoKCk9PntwZSgpO1NuKCk7U21hPWkoKCk9PndgIDxzdHlsZT4KICAgIC5kZW1vIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICB9CiAgICAKICAgIC5kZW1vLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBnYXA6IDI0cHg7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxNnB4OwogICAgfQogICAgCiAgICAuZGVtby10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLmRlbW8tbm90ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtbyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLW5vdGUiPgogICAgICBSaWdodC1jbGljayBvbiBhbnkgZGV0YWlsIHJvdyB0byBjb3B5IHRoZSB2YWx1ZSwga2V5LCBvciBrZXk6dmFsdWUgY29tYmluYXRpb24KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5TZXJ2aWNlIEhlYWx0aCBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjEiLG5hbWU6IkFQSSBHYXRld2F5IFNlcnZpY2UiLGxhc3RVcGRhdGVkOkRhdGUubm93KCksY29tYmluZWRTdGF0dXM6Im9rIixjb21iaW5lZFN0YXR1c1RleHQ6IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixkZXRhaWxzOlt7bmFtZToiUmVzcG9uc2UgVGltZSIsdmFsdWU6IjQ1bXMgKGF2ZykiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IldpdGhpbiBub3JtYWwgcmFuZ2UifSx7bmFtZToiVXB0aW1lIix2YWx1ZToiOTkuOTklICgzMCBkYXlzKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiRXhjZWxsZW50IHVwdGltZSJ9LHtuYW1lOiJBY3RpdmUgQ29ubmVjdGlvbnMiLHZhbHVlOiIxLDIzNCAvIDEwLDAwMCIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiTm9ybWFsIGxvYWQifSx7bmFtZToiU1NMIENlcnRpZmljYXRlIix2YWx1ZToiVmFsaWQgdW50aWwgMjAyNC0xMi0zMSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiQ2VydGlmaWNhdGUgdmFsaWQifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+RGF0YWJhc2UgQ2x1c3RlciBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjIiLG5hbWU6IlBvc3RncmVTUUwgQ2x1c3RlciIsbGFzdFVwZGF0ZWQ6RGF0ZS5ub3coKS0zNmU1LGNvbWJpbmVkU3RhdHVzOiJwYXJ0bHlfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiTWlub3IgaXNzdWVzIGRldGVjdGVkIixkZXRhaWxzOlt7bmFtZToiUHJpbWFyeSBOb2RlIix2YWx1ZToiZGItcHJpbWFyeS0wMSAoaGVhbHRoeSkiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik9wZXJhdGluZyBub3JtYWxseSJ9LHtuYW1lOiJSZXBsaWNhIExhZyIsdmFsdWU6IjIuNSBzZWNvbmRzIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiU2xpZ2h0bHkgZWxldmF0ZWQifSx7bmFtZToiRGlzayBVc2FnZSIsdmFsdWU6Ijc4JSAoMzEyR0IgLyA0MDBHQikiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJBcHByb2FjaGluZyB0aHJlc2hvbGQifSx7bmFtZToiQ29ubmVjdGlvbiBQb29sIix2YWx1ZToiODkgLyAxMDAgY29ubmVjdGlvbnMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IldpdGhpbiBsaW1pdHMifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+QnVpbGQgUGlwZWxpbmUgU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIzIixuYW1lOiJDSS9DRCBQaXBlbGluZSIsbGFzdFVwZGF0ZWQ6RGF0ZS5ub3coKS04NjRlNSxjb21iaW5lZFN0YXR1czoibm90X29rIixjb21iaW5lZFN0YXR1c1RleHQ6IkJ1aWxkIGZhaWx1cmUiLGRldGFpbHM6W3tuYW1lOiJMYXN0IEJ1aWxkIix2YWx1ZToiQnVpbGQgIzEyMzQgLSBGYWlsZWQiLHN0YXR1czoibm90X29rIixzdGF0dXNUZXh0OiJUZXN0IGZhaWx1cmVzIn0se25hbWU6IkZhaWxlZCBUZXN0cyIsdmFsdWU6IjMgdGVzdHMgZmFpbGVkOiBhdXRoLnNwZWMudHMsIHVzZXIuc3BlYy50cywgYXBpLnNwZWMudHMiLHN0YXR1czoibm90X29rIixzdGF0dXNUZXh0OiJVbml0IHRlc3QgZmFpbHVyZXMifSx7bmFtZToiQ29kZSBDb3ZlcmFnZSIsdmFsdWU6IjgyLjUlICh0YXJnZXQ6IDg1JSkiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJCZWxvdyB0YXJnZXQifSx7bmFtZToiQnVpbGQgRHVyYXRpb24iLHZhbHVlOiIxMm0gMzRzIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgZHVyYXRpb24ifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PmAsImRlbW9GdW5jIil9KTt2YXIgTW1hLE9pdCx6bWEsQ21hPWcoKCk9PntHMSgpO3BvKCk7X21hKCk7cGUoKTtTbigpO29yKCk7cHQoKTtucigpO01tYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sT2l0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx6bWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRGF0YXZpZXdTdGF0dXNvYmplY3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxNbWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXNPYmplY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InN0YXR1c09iamVjdCJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LnN0YXR1c09iamVjdCwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnN0YXR1c09iamVjdD1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksTW1hKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89U21hO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9T2l0KHRoaXMsbyx2b2lkIDApO2dldCBzdGF0dXNPYmplY3QoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3RhdHVzT2JqZWN0KGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdCB7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklIC8gMC4yKSIsImhzbCgwIDAlIDQ1LjElIC8gMC4yKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3Qub2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMikiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm5vdF9vayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4yKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5wYXJ0bHlfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMikiLCJoc2woMjUgOTUlIDYzJSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMDQpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLnN0YXR1c2RvdCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC5sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYm90dG9tQmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQmFyIC5zdGF0dXNMYWJlbCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke3RoaXMuc3RhdHVzT2JqZWN0Py5jb21iaW5lZFN0YXR1c30iPjwvZGl2PgogICAgICAgICAgPGgxPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lm5hbWV8fCJObyBzdGF0dXMgb2JqZWN0IGFzc2lnbmVkIn08L2gxPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29weU1haW4iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29weUFzSnNvbn0+Q29weSBKU09OPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnN0YXR1c09iamVjdD8uZGV0YWlscz8ubWFwKGQ9PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZGV0YWlsIgogICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke3U9Pnt1LnByZXZlbnREZWZhdWx0KCksa2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModSxbe25hbWU6IkNvcHkgVmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQudmFsdWUsIlZhbHVlIil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5IixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQubmFtZSwiS2V5Iil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5OlZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHktcGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGAke2QubmFtZX06ICR7ZC52YWx1ZX1gLCJLZXk6VmFsdWUiKX0sImFjdGlvbiIpfV0pfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke2Quc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbHNUZXh0Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+JHtkLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZhbHVlIj4ke2QudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNMYWJlbCI+JHt0aGlzLnN0YXR1c09iamVjdD8ubGFzdFVwZGF0ZWQ/YExhc3QgdXBkYXRlZDogJHtuZXcgRGF0ZSh0aGlzLnN0YXR1c09iamVjdC5sYXN0VXBkYXRlZCkudG9Mb2NhbGVTdHJpbmcoKX1gOiIifTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIGNvcHlUb0NsaXBib2FyZChkLHU9IlRleHQiKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZCksY29uc29sZS5sb2coYCR7dX0gY29waWVkIHRvIGNsaXBib2FyZGApfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb3B5ICR7dX06YCxjKX19YXN5bmMgaGFuZGxlQ29weUFzSnNvbigpe2lmKHRoaXMuc3RhdHVzT2JqZWN0KXRyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXR1c09iamVjdCxudWxsLDIpKTtsZXQgZD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvcHlNYWluIiksdT1kLnRleHRDb250ZW50O2QudGV4dENvbnRlbnQ9IkNvcGllZCEiO2xldCBjPSF0aGlzLmdvQnJpZ2h0O2Quc3R5bGUuYmFja2dyb3VuZD1jPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsZC5zdHlsZS5ib3JkZXJDb2xvcj1jPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZC5zdHlsZS5jb2xvcj1jPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsc2V0VGltZW91dCgoKT0+e2QudGV4dENvbnRlbnQ9dSxkLnN0eWxlLmJhY2tncm91bmQ9IiIsZC5zdHlsZS5ib3JkZXJDb2xvcj0iIixkLnN0eWxlLmNvbG9yPSIifSwxNTAwKX1jYXRjaChkKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLGQpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksT2l0KHRoaXMsbCl9c3RhdGlje09pdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgVG1hPWcoKCk9PntDbWEoKX0pO3ZhciAkbWE9ZygoKT0+e1FjZSgpfSk7dmFyIEZpdCxEbWEsTG1hPWcoKCk9PntwZSgpO0JpdCgpO0ZpdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJNb2NrU3RvcmFnZURhdGFQcm92aWRlciIpfW9iamVjdHM9bmV3IE1hcDtjb25zdHJ1Y3Rvcigpe2xldCBlPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTt0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvcmVhZG1lLm1kIix7Y29udGVudDpidG9hKGAjIFdlbGNvbWUKClRoaXMgaXMgYSBkZW1vIFN0b3JhZ2UgYnJvd3Nlci4KYCksY29udGVudFR5cGU6InRleHQvbWFya2Rvd24iLHNpemU6NDIsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvY29uZmlnLmpzb24iLHtjb250ZW50OmJ0b2EoYHsKICAibmFtZSI6ICJkZW1vIiwKICAidmVyc2lvbiI6ICIxLjAuMCIKfWApLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixzaXplOjQ4LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL25vdGVzL3RvZG8udHh0Iix7Y29udGVudDpidG9hKGBCdXkgbWlsawpGaXggYnVnICM0MgpEZXBsb3kgdG8gcHJvZHVjdGlvbmApLGNvbnRlbnRUeXBlOiJ0ZXh0L3BsYWluIixzaXplOjQ1LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiaW1hZ2VzL2xvZ28ucG5nIix7Y29udGVudDpidG9hKCJmYWtlLXBuZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL3BuZyIsc2l6ZToyNDUwMCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImltYWdlcy9iYW5uZXIuanBnIix7Y29udGVudDpidG9hKCJmYWtlLWpwZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL2pwZWciLHNpemU6MTU2ZTMsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJzY3JpcHRzL2RlcGxveS5zaCIse2NvbnRlbnQ6YnRvYShgIyEvYmluL2Jhc2gKZWNobyAiRGVwbG95aW5nLi4uIgpgKSxjb250ZW50VHlwZToidGV4dC9wbGFpbiIsc2l6ZTozNCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImluZGV4Lmh0bWwiLHtjb250ZW50OmJ0b2EoYDwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPGJvZHk+CiAgPGgxPkhlbGxvIFdvcmxkPC9oMT4KPC9ib2R5Pgo8L2h0bWw+YCksY29udGVudFR5cGU6InRleHQvaHRtbCIsc2l6ZTo3MixsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoInN0eWxlcy5jc3MiLHtjb250ZW50OmJ0b2EoImJvZHkgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyB9IiksY29udGVudFR5cGU6InRleHQvY3NzIixzaXplOjQ0LGxhc3RNb2RpZmllZDplfSl9YXN5bmMgbGlzdE9iamVjdHMoZSx0LGEpe2xldCByPXR8fCIiLG49W10sbz1uZXcgU2V0O2ZvcihsZXRbbCxwXW9mIHRoaXMub2JqZWN0cyl7aWYoIWwuc3RhcnRzV2l0aChyKSljb250aW51ZTtsZXQgZD1sLnNsaWNlKHIubGVuZ3RoKTtpZihhKXtsZXQgdT1kLmluZGV4T2YoYSk7dT49MD9vLmFkZChyK2Quc2xpY2UoMCx1KzEpKTpuLnB1c2goe2tleTpsLHNpemU6cC5zaXplLGxhc3RNb2RpZmllZDpwLmxhc3RNb2RpZmllZH0pfWVsc2Ugbi5wdXNoKHtrZXk6bCxzaXplOnAuc2l6ZSxsYXN0TW9kaWZpZWQ6cC5sYXN0TW9kaWZpZWR9KX1yZXR1cm57b2JqZWN0czpuLHByZWZpeGVzOkFycmF5LmZyb20obykuc29ydCgpfX1hc3luYyBnZXRPYmplY3QoZSx0KXtsZXQgYT10aGlzLm9iamVjdHMuZ2V0KHQpO2lmKCFhKXRocm93IG5ldyBFcnJvcigiTm90IGZvdW5kIik7cmV0dXJuey4uLmF9fWFzeW5jIHB1dE9iamVjdChlLHQsYSxyKXtyZXR1cm4gdGhpcy5vYmplY3RzLnNldCh0LHtjb250ZW50OmEsY29udGVudFR5cGU6cixzaXplOmF0b2IoYSkubGVuZ3RoLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSwhMH1hc3luYyBkZWxldGVPYmplY3QoZSx0KXtyZXR1cm4gdGhpcy5vYmplY3RzLmRlbGV0ZSh0KX1hc3luYyBkZWxldGVQcmVmaXgoZSx0KXtmb3IobGV0IGEgb2YgdGhpcy5vYmplY3RzLmtleXMoKSlhLnN0YXJ0c1dpdGgodCkmJnRoaXMub2JqZWN0cy5kZWxldGUoYSk7cmV0dXJuITB9YXN5bmMgZ2V0T2JqZWN0VXJsKGUsdCl7bGV0IGE9dGhpcy5vYmplY3RzLmdldCh0KTtpZighYSlyZXR1cm4iIjtsZXQgcj1uZXcgQmxvYihbVWludDhBcnJheS5mcm9tKGF0b2IoYS5jb250ZW50KSxuPT5uLmNoYXJDb2RlQXQoMCkpXSx7dHlwZTphLmNvbnRlbnRUeXBlfSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwocil9YXN5bmMgbW92ZU9iamVjdChlLHQsYSl7bGV0IHI9dGhpcy5vYmplY3RzLmdldCh0KTtyZXR1cm4gcj8odGhpcy5vYmplY3RzLnNldChhLHsuLi5yLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSx0aGlzLm9iamVjdHMuZGVsZXRlKHQpLHtzdWNjZXNzOiEwfSk6e3N1Y2Nlc3M6ITEsZXJyb3I6IlNvdXJjZSBub3QgZm91bmQifX1hc3luYyBtb3ZlUHJlZml4KGUsdCxhKXtsZXQgcj0wLG49QXJyYXkuZnJvbSh0aGlzLm9iamVjdHMuZW50cmllcygpKS5maWx0ZXIoKFtvXSk9Pm8uc3RhcnRzV2l0aCh0KSk7Zm9yKGxldFtvLGxdb2Ygbil7bGV0IHA9YStvLnNsaWNlKHQubGVuZ3RoKTt0aGlzLm9iamVjdHMuc2V0KHAsey4uLmwsbGFzdE1vZGlmaWVkOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0pLHRoaXMub2JqZWN0cy5kZWxldGUobykscisrfXJldHVybntzdWNjZXNzOiEwLG1vdmVkQ291bnQ6cn19fSxEbWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc3RvcmFnZS1icm93c2VyCiAgICAgIC5kYXRhUHJvdmlkZXI9JHtuZXcgRml0fQogICAgICAuYnVja2V0TmFtZT0keyJkZW1vLWJ1Y2tldCJ9CiAgICA+PC9kZWVzLXN0b3JhZ2UtYnJvd3Nlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO2Z1bmN0aW9uIFF2KHMpe2lmKHM9PW51bGwpcmV0dXJuIi0iO2lmKHM9PT0wKXJldHVybiIwIEIiO2xldCBlPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIl0sdD1zLGE9MDtmb3IoO3Q+PTEwMjQmJmE8ZS5sZW5ndGgtMTspdC89MTAyNCxhKys7cmV0dXJuYCR7dC50b0ZpeGVkKGE+MD8xOjApfSAke2VbYV19YH1mdW5jdGlvbiBFbWEocyl7cmV0dXJuIHM9PW51bGw/IiI6cz49MWU2P2AkeyhzLzFlNikudG9GaXhlZCgxKX1NYDpzPj0xZTM/YCR7KHMvMWUzKS50b0ZpeGVkKDEpfUtgOnMudG9TdHJpbmcoKX1mdW5jdGlvbiBGYShzKXtsZXQgZT1zLnJlcGxhY2UoL1wvJC8sIiIpLnNwbGl0KCIvIik7cmV0dXJuIGVbZS5sZW5ndGgtMV18fHN9ZnVuY3Rpb24gSnYocyxlKXtyZXR1cm4gcy5lbmRzV2l0aCgiLyIpJiZlLnN0YXJ0c1dpdGgocyk/e3ZhbGlkOiExLGVycm9yOiJDYW5ub3QgbW92ZSBhIGZvbGRlciBpbnRvIGl0c2VsZiJ9OmwyKHMpPT09ZT97dmFsaWQ6ITEsZXJyb3I6Ikl0ZW0gaXMgYWxyZWFkeSBpbiB0aGlzIGxvY2F0aW9uIn06e3ZhbGlkOiEwfX1mdW5jdGlvbiBsMihzKXtsZXQgZT1zLmVuZHNXaXRoKCIvIik/cy5zbGljZSgwLC0xKTpzLHQ9ZS5sYXN0SW5kZXhPZigiLyIpO3JldHVybiB0Pj0wP2Uuc3Vic3RyaW5nKDAsdCsxKToiIn1mdW5jdGlvbiBXaChzKXtyZXR1cm57anNvbjoiYXBwbGljYXRpb24vanNvbiIsdHh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLGNzczoidGV4dC9jc3MiLGpzOiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iix0czoidGV4dC90eXBlc2NyaXB0IixtZDoidGV4dC9tYXJrZG93biIseG1sOiJhcHBsaWNhdGlvbi94bWwiLHlhbWw6InRleHQveWFtbCIseW1sOiJ0ZXh0L3lhbWwiLGNzdjoidGV4dC9jc3YifVtzXXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9ZnVuY3Rpb24gZXgocyl7cmV0dXJue2pzb246YHsKICAKfWAsaHRtbDpgPCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAKPC9ib2R5Pgo8L2h0bWw+YCxtZDpgIyBUaXRsZQoKYCx0eHQ6IiJ9W3NdfHwiIn1mdW5jdGlvbiB5ZyhzKXtpZighcylyZXR1cm5bXTtsZXQgZT1zLnNwbGl0KCIvIikuZmlsdGVyKHI9PnIpLHQ9W10sYT0iIjtmb3IobGV0IHIgb2YgZSlhKz1yKyIvIix0LnB1c2goYSk7cmV0dXJuIHR9dmFyIEtYPWcoKCk9PntpKFF2LCJmb3JtYXRTaXplIik7aShFbWEsImZvcm1hdENvdW50Iik7aShGYSwiZ2V0RmlsZU5hbWUiKTtpKEp2LCJ2YWxpZGF0ZU1vdmUiKTtpKGwyLCJnZXRQYXJlbnRQcmVmaXgiKTtpKFdoLCJnZXRDb250ZW50VHlwZSIpO2koZXgsImdldERlZmF1bHRDb250ZW50Iik7aSh5ZywiZ2V0UGF0aFNlZ21lbnRzIil9KTt2YXIgX3MsQXQsUG1hLEhpdD1nKCgpPT57cGUoKTtvcigpO3B0KCk7S1goKTtfcz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sQXQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtc3RvcmFnZS1jb2x1bW5zIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W10sc2Usb2U9W10sYWU9W10sVGUsUmU9W10sQmU9W10sR2UsRGU9W10sX2U9W10sQ2UsdmU9W10sYmU9W10sRWUsamU9W10sV2U9W10sc3QsTWU9W10sZ2U9W10sSWUsY2U9W10sZGU9W10sTGUsS2U9W10sWWU9W10sb3QsVXQ9W10sWnQ9W10samEsZXQ9W10sYnQ9W10seWEsZXM9W10scnM9W10scHMsbnM9W10sdGk9W10sYWksemU9W10seGU9W10sTmUseHQ9W10sTWE9W107dmFyIE5yPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3RvcmFnZUNvbHVtbnMiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpOdW1iZXJ9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sc2U9W1koKV0sVGU9W1koKV0sR2U9W1koKV0sQ2U9W1koKV0sRWU9W1koKV0sc3Q9W1koKV0sSWU9W1koKV0sTGU9W1koKV0sb3Q9W1koKV0samE9W1koKV0seWE9W1koKV0scHM9W1koKV0sYWk9W1koKV0sTmU9W1koKV0sX3ModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJkYXRhUHJvdmlkZXIiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5kYXRhUHJvdmlkZXI9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG8sbCksX3ModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iYnVja2V0TmFtZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmJ1Y2tldE5hbWUsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5idWNrZXROYW1lPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxkLHUpLF9zKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImN1cnJlbnRQcmVmaXgiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5jdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY3VycmVudFByZWZpeD1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sYix2KSxfcyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJyZWZyZXNoS2V5ImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUucmVmcmVzaEtleSwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnJlZnJlc2hLZXk9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG0sZiksX3ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iY29sdW1ucyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmNvbHVtbnMsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5jb2x1bW5zPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxNLHopLF9zKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImxvYWRpbmciaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubG9hZGluZz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sQyxfKSxfcyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDcmVhdGVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJzaG93Q3JlYXRlRGlhbG9nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuc2hvd0NyZWF0ZURpYWxvZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnNob3dDcmVhdGVEaWFsb2c9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LCQsRSksX3ModGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iY3JlYXRlRGlhbG9nVHlwZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmNyZWF0ZURpYWxvZ1R5cGUsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5jcmVhdGVEaWFsb2dUeXBlPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxrLFMpLF9zKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iY3JlYXRlRGlhbG9nUHJlZml4ImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuY3JlYXRlRGlhbG9nUHJlZml4LCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY3JlYXRlRGlhbG9nUHJlZml4PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxQLFIpLF9zKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImNyZWF0ZURpYWxvZ05hbWUiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5jcmVhdGVEaWFsb2dOYW1lLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY3JlYXRlRGlhbG9nTmFtZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sVixXKSxfcyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckNvbHVtbkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iZHJhZ092ZXJDb2x1bW5JbmRleCJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmRyYWdPdmVyQ29sdW1uSW5kZXgsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5kcmFnT3ZlckNvbHVtbkluZGV4PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxCLFUpLF9zKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyRm9sZGVyUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iZHJhZ092ZXJGb2xkZXJQcmVmaXgiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5kcmFnT3ZlckZvbGRlclByZWZpeCwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmRyYWdPdmVyRm9sZGVyUHJlZml4PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxGLGopLF9zKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwbG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InVwbG9hZGluZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnVwbG9hZGluZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnVwbG9hZGluZz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sbGUsUSksX3ModGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBsb2FkUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJ1cGxvYWRQcm9ncmVzcyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnVwbG9hZFByb2dyZXNzLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUudXBsb2FkUHJvZ3Jlc3M9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LHRlLGVlKSxfcyh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TW92ZURpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InNob3dNb3ZlRGlhbG9nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuc2hvd01vdmVEaWFsb2csImdldCIpLHNldDppKChyZSxTZSk9PntyZS5zaG93TW92ZURpYWxvZz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sWCxaKSxfcyh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZVNvdXJjZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVTb3VyY2UsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlU291cmNlPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxxLEEpLF9zKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVEZXN0aW5hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVEZXN0aW5hdGlvbiJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVEZXN0aW5hdGlvbiwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLm1vdmVEZXN0aW5hdGlvbj1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sb2UsYWUpLF9zKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZUluUHJvZ3Jlc3MiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLm1vdmVJblByb2dyZXNzPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxSZSxCZSksX3ModGhpcyxudWxsLEdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZUVycm9yImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubW92ZUVycm9yLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZUVycm9yPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxEZSxfZSksX3ModGhpcyxudWxsLENlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVQaWNrZXJEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJzaG93TW92ZVBpY2tlckRpYWxvZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnNob3dNb3ZlUGlja2VyRGlhbG9nLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuc2hvd01vdmVQaWNrZXJEaWFsb2c9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LHZlLGJlKSxfcyh0aGlzLG51bGwsRWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZVBpY2tlclNvdXJjZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVQaWNrZXJTb3VyY2UsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlUGlja2VyU291cmNlPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxqZSxXZSksX3ModGhpcyxudWxsLHN0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LE1lLGdlKSxfcyh0aGlzLG51bGwsSWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyUHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJtb3ZlUGlja2VyUHJlZml4ZXMiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlUGlja2VyUHJlZml4ZXMsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlUGlja2VyUHJlZml4ZXM9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGNlLGRlKSxfcyh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVQaWNrZXJMb2FkaW5nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubW92ZVBpY2tlckxvYWRpbmcsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlUGlja2VyTG9hZGluZz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sS2UsWWUpLF9zKHRoaXMsbnVsbCxvdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dSZW5hbWVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJzaG93UmVuYW1lRGlhbG9nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuc2hvd1JlbmFtZURpYWxvZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnNob3dSZW5hbWVEaWFsb2c9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LFV0LFp0KSxfcyh0aGlzLG51bGwsamEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJyZW5hbWVTb3VyY2UiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5yZW5hbWVTb3VyY2UsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5yZW5hbWVTb3VyY2U9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGV0LGJ0KSxfcyh0aGlzLG51bGwseWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4icmVuYW1lTmFtZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnJlbmFtZU5hbWUsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5yZW5hbWVOYW1lPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxlcyxycyksX3ModGhpcyxudWxsLHBzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InJlbmFtZUluUHJvZ3Jlc3MiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5yZW5hbWVJblByb2dyZXNzLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUucmVuYW1lSW5Qcm9ncmVzcz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sbnMsdGkpLF9zKHRoaXMsbnVsbCxhaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4icmVuYW1lRXJyb3IiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5yZW5hbWVFcnJvciwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnJlbmFtZUVycm9yPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx6ZSx4ZSksX3ModGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJkcmFnZ2VkSXRlbSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmRyYWdnZWRJdGVtLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuZHJhZ2dlZEl0ZW09U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LHh0LE1hKSxfcyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpmZX0sbnVsbCx0KSxOcj1hPWUudmFsdWUsZmUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZmV9KX0jZT1BdCh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoZmUpe3RoaXMuI2U9ZmV9I3Q9KEF0KHRoaXMsbCksQXQodGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZShmZSl7dGhpcy4jdD1mZX0jYT0oQXQodGhpcyx1KSxBdCh0aGlzLGIsIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNhfXNldCBjdXJyZW50UHJlZml4KGZlKXt0aGlzLiNhPWZlfSNzPShBdCh0aGlzLHYpLEF0KHRoaXMsbSwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVmcmVzaEtleShmZSl7dGhpcy4jcz1mZX0jaT0oQXQodGhpcyxmKSxBdCh0aGlzLE0sW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNpfXNldCBjb2x1bW5zKGZlKXt0aGlzLiNpPWZlfSNyPShBdCh0aGlzLHopLEF0KHRoaXMsQywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvYWRpbmcoZmUpe3RoaXMuI3I9ZmV9I289KEF0KHRoaXMsXyksQXQodGhpcywkLCExKSk7Z2V0IHNob3dDcmVhdGVEaWFsb2coKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd0NyZWF0ZURpYWxvZyhmZSl7dGhpcy4jbz1mZX0jbj0oQXQodGhpcyxFKSxBdCh0aGlzLGssImZvbGRlciIpKTtnZXQgY3JlYXRlRGlhbG9nVHlwZSgpe3JldHVybiB0aGlzLiNufXNldCBjcmVhdGVEaWFsb2dUeXBlKGZlKXt0aGlzLiNuPWZlfSNsPShBdCh0aGlzLFMpLEF0KHRoaXMsUCwiIikpO2dldCBjcmVhdGVEaWFsb2dQcmVmaXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3JlYXRlRGlhbG9nUHJlZml4KGZlKXt0aGlzLiNsPWZlfSNjPShBdCh0aGlzLFIpLEF0KHRoaXMsViwiIikpO2dldCBjcmVhdGVEaWFsb2dOYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNyZWF0ZURpYWxvZ05hbWUoZmUpe3RoaXMuI2M9ZmV9I2Q9KEF0KHRoaXMsVyksQXQodGhpcyxCLC0xKSk7Z2V0IGRyYWdPdmVyQ29sdW1uSW5kZXgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZHJhZ092ZXJDb2x1bW5JbmRleChmZSl7dGhpcy4jZD1mZX0jdT0oQXQodGhpcyxVKSxBdCh0aGlzLEYsbnVsbCkpO2dldCBkcmFnT3ZlckZvbGRlclByZWZpeCgpe3JldHVybiB0aGlzLiN1fXNldCBkcmFnT3ZlckZvbGRlclByZWZpeChmZSl7dGhpcy4jdT1mZX0jcD0oQXQodGhpcyxqKSxBdCh0aGlzLGxlLCExKSk7Z2V0IHVwbG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCB1cGxvYWRpbmcoZmUpe3RoaXMuI3A9ZmV9I2g9KEF0KHRoaXMsUSksQXQodGhpcyx0ZSxudWxsKSk7Z2V0IHVwbG9hZFByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHVwbG9hZFByb2dyZXNzKGZlKXt0aGlzLiNoPWZlfSNmPShBdCh0aGlzLGVlKSxBdCh0aGlzLFgsITEpKTtnZXQgc2hvd01vdmVEaWFsb2coKXtyZXR1cm4gdGhpcy4jZn1zZXQgc2hvd01vdmVEaWFsb2coZmUpe3RoaXMuI2Y9ZmV9I209KEF0KHRoaXMsWiksQXQodGhpcyxxLG51bGwpKTtnZXQgbW92ZVNvdXJjZSgpe3JldHVybiB0aGlzLiNtfXNldCBtb3ZlU291cmNlKGZlKXt0aGlzLiNtPWZlfSNnPShBdCh0aGlzLEEpLEF0KHRoaXMsb2UsIiIpKTtnZXQgbW92ZURlc3RpbmF0aW9uKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1vdmVEZXN0aW5hdGlvbihmZSl7dGhpcy4jZz1mZX0jYj0oQXQodGhpcyxhZSksQXQodGhpcyxSZSwhMSkpO2dldCBtb3ZlSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNifXNldCBtb3ZlSW5Qcm9ncmVzcyhmZSl7dGhpcy4jYj1mZX0jdj0oQXQodGhpcyxCZSksQXQodGhpcyxEZSxudWxsKSk7Z2V0IG1vdmVFcnJvcigpe3JldHVybiB0aGlzLiN2fXNldCBtb3ZlRXJyb3IoZmUpe3RoaXMuI3Y9ZmV9I3g9KEF0KHRoaXMsX2UpLEF0KHRoaXMsdmUsITEpKTtnZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coKXtyZXR1cm4gdGhpcy4jeH1zZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coZmUpe3RoaXMuI3g9ZmV9I3k9KEF0KHRoaXMsYmUpLEF0KHRoaXMsamUsbnVsbCkpO2dldCBtb3ZlUGlja2VyU291cmNlKCl7cmV0dXJuIHRoaXMuI3l9c2V0IG1vdmVQaWNrZXJTb3VyY2UoZmUpe3RoaXMuI3k9ZmV9I3c9KEF0KHRoaXMsV2UpLEF0KHRoaXMsTWUsIiIpKTtnZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jd31zZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoZmUpe3RoaXMuI3c9ZmV9I2s9KEF0KHRoaXMsZ2UpLEF0KHRoaXMsY2UsW10pKTtnZXQgbW92ZVBpY2tlclByZWZpeGVzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IG1vdmVQaWNrZXJQcmVmaXhlcyhmZSl7dGhpcy4jaz1mZX0jUz0oQXQodGhpcyxkZSksQXQodGhpcyxLZSwhMSkpO2dldCBtb3ZlUGlja2VyTG9hZGluZygpe3JldHVybiB0aGlzLiNTfXNldCBtb3ZlUGlja2VyTG9hZGluZyhmZSl7dGhpcy4jUz1mZX0jXz0oQXQodGhpcyxZZSksQXQodGhpcyxVdCwhMSkpO2dldCBzaG93UmVuYW1lRGlhbG9nKCl7cmV0dXJuIHRoaXMuI199c2V0IHNob3dSZW5hbWVEaWFsb2coZmUpe3RoaXMuI189ZmV9I009KEF0KHRoaXMsWnQpLEF0KHRoaXMsZXQsbnVsbCkpO2dldCByZW5hbWVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jTX1zZXQgcmVuYW1lU291cmNlKGZlKXt0aGlzLiNNPWZlfSN6PShBdCh0aGlzLGJ0KSxBdCh0aGlzLGVzLCIiKSk7Z2V0IHJlbmFtZU5hbWUoKXtyZXR1cm4gdGhpcy4jen1zZXQgcmVuYW1lTmFtZShmZSl7dGhpcy4jej1mZX0jQz0oQXQodGhpcyxycyksQXQodGhpcyxucywhMSkpO2dldCByZW5hbWVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHJlbmFtZUluUHJvZ3Jlc3MoZmUpe3RoaXMuI0M9ZmV9I1Q9KEF0KHRoaXMsdGkpLEF0KHRoaXMsemUsbnVsbCkpO2dldCByZW5hbWVFcnJvcigpe3JldHVybiB0aGlzLiNUfXNldCByZW5hbWVFcnJvcihmZSl7dGhpcy4jVD1mZX0jJD0oQXQodGhpcyx4ZSksQXQodGhpcyx4dCxudWxsKSk7Z2V0IGRyYWdnZWRJdGVtKCl7cmV0dXJuIHRoaXMuIyR9c2V0IGRyYWdnZWRJdGVtKGZlKXt0aGlzLiMkPWZlfXJlc2l6aW5nPShBdCh0aGlzLE1hKSxudWxsKTtERUZBVUxUX0NPTFVNTl9XSURUSD0yNTA7TUlOX0NPTFVNTl9XSURUSD0xNTA7TUFYX0NPTFVNTl9XSURUSD01MDA7ZHJhZ0NvdW50ZXJzPW5ldyBNYXA7Zm9sZGVySG92ZXJUaW1lcj1udWxsO2ZpbGVJbnB1dEVsZW1lbnQ9bnVsbDtmb2xkZXJJbnB1dEVsZW1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSGUsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmNvbHVtbnMtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtaW4td2lkdGg6IG1heC1jb250ZW50OwogICAgICB9CgogICAgICAuY29sdW1uLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuY29sdW1uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDVweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUuYWN0aXZlOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNDA0MDQwIil9OwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgbGVmdDogMXB4OwogICAgICB9CgogICAgICAuY29sdW1uLXdyYXBwZXI6bGFzdC1jaGlsZCAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM2NjYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbXMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFkNGVkOCIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5mb2xkZXIgewogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gLmljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIC5uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIC5jaGV2cm9uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxvYWRpbmcgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4uZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCk7CiAgICAgICAgb3V0bGluZTogMnB4IGRhc2hlZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC40KTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmZvbGRlci5kcmFnLXRhcmdldCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMikgIWltcG9ydGFudDsKICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAudXBsb2FkLW92ZXJsYXkgLnVwbG9hZC10ZXh0IHsKICAgICAgICBjb2xvcjogI2UwZTBlMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtb3ZlcmxheSAudXBsb2FkLXByb2dyZXNzIHsKICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhpbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjkpOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLmRpYWxvZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMWUxZTFlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtaW4td2lkdGg6IDQwMHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgfQoKICAgICAgLmRpYWxvZy10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWxvY2F0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxNDE0MTQiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1oaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGlhbG9nLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTA1MDUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBNb3ZlIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtc3VtbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLm1vdmUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICB9CgogICAgICAubW92ZS1wYXRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLm1vdmUtZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLyogTW92ZSBwaWNrZXIgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1waWNrZXItZGlhbG9nIHsKICAgICAgICBtaW4td2lkdGg6IDQ1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmRyYWdnaW5nIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5kcm9wLXRhcmdldCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpICFpbXBvcnRhbnQ7CiAgICAgICAgb3V0bGluZTogMXB4IGRhc2hlZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmRyb3AtaW52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKSAhaW1wb3J0YW50OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLmxvYWRJbml0aWFsQ29sdW1uKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZHJhZ0NvdW50ZXJzLmNsZWFyKCksdGhpcy5maWxlSW5wdXRFbGVtZW50JiYodGhpcy5maWxlSW5wdXRFbGVtZW50LnJlbW92ZSgpLHRoaXMuZmlsZUlucHV0RWxlbWVudD1udWxsKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudCYmKHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LnJlbW92ZSgpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50PW51bGwpfXVwZGF0ZWQoZmUpe2ZlLmhhcygiYnVja2V0TmFtZSIpfHxmZS5oYXMoImN1cnJlbnRQcmVmaXgiKT90aGlzLmxvYWRJbml0aWFsQ29sdW1uKCk6ZmUuaGFzKCJyZWZyZXNoS2V5IikmJnRoaXMucmVmcmVzaEFsbENvbHVtbnMoKX1hc3luYyBsb2FkSW5pdGlhbENvbHVtbigpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBmZT15Zyh0aGlzLmN1cnJlbnRQcmVmaXgpLHJlPVsiIiwuLi5mZV0sU2U9YXdhaXQgUHJvbWlzZS5hbGwocmUubWFwKE9lPT50aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsT2UsIi8iKSkpO3RoaXMuY29sdW1ucz1TZS5tYXAoKE9lLEplKT0+e2xldCB6YT1yZVtKZV0sZGE9SmU8ZmUubGVuZ3RoP2ZlW0plXTpudWxsO3JldHVybntwcmVmaXg6emEsb2JqZWN0czpPZS5vYmplY3RzLHByZWZpeGVzOk9lLnByZWZpeGVzLHNlbGVjdGVkSXRlbTpkYSx3aWR0aDp0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIfX0pLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5zY3JvbGxUb0VuZCgpKX1jYXRjaChmZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBvYmplY3RzOiIsZmUpLHRoaXMuY29sdW1ucz1bXX10aGlzLmxvYWRpbmc9ITF9fWFzeW5jIHJlZnJlc2hBbGxDb2x1bW5zKCl7aWYoIXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgZmU9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy5jb2x1bW5zLm1hcChhc3luYyByZT0+e3RyeXtsZXQgU2U9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLHJlLnByZWZpeCwiLyIpO3JldHVybnsuLi5yZSxvYmplY3RzOlNlLm9iamVjdHMscHJlZml4ZXM6U2UucHJlZml4ZXN9fWNhdGNoe3JldHVybiByZX19KSk7dGhpcy5jb2x1bW5zPWZlfWFzeW5jIHNlbGVjdEZvbGRlcihmZSxyZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChTZSxPZSk9Pk9lPT09ZmU/ey4uLlNlLHNlbGVjdGVkSXRlbTpyZX06U2UpLHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMuc2xpY2UoMCxmZSsxKTt0cnl7bGV0IFNlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxyZSwiLyIpO3RoaXMuY29sdW1ucz1bLi4udGhpcy5jb2x1bW5zLHtwcmVmaXg6cmUsb2JqZWN0czpTZS5vYmplY3RzLHByZWZpeGVzOlNlLnByZWZpeGVzLHNlbGVjdGVkSXRlbTpudWxsLHdpZHRoOnRoaXMuREVGQVVMVF9DT0xVTU5fV0lEVEh9XSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuc2Nyb2xsVG9FbmQoKSl9Y2F0Y2goU2Upe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgZm9sZGVyOiIsU2UpfX19c2Nyb2xsVG9FbmQoKXt0aGlzLnNjcm9sbExlZnQ9dGhpcy5zY3JvbGxXaWR0aC10aGlzLmNsaWVudFdpZHRofXN0YXJ0UmVzaXplKGZlLHJlKXtmZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVzaXppbmc9e2NvbHVtbkluZGV4OnJlLHN0YXJ0WDpmZS5jbGllbnRYLHN0YXJ0V2lkdGg6dGhpcy5jb2x1bW5zW3JlXS53aWR0aH0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5zdG9wUmVzaXplKSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iY29sLXJlc2l6ZSIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSJub25lIn1oYW5kbGVSZXNpemU9aShmZT0+e2lmKCF0aGlzLnJlc2l6aW5nKXJldHVybjtsZXQgcmU9ZmUuY2xpZW50WC10aGlzLnJlc2l6aW5nLnN0YXJ0WCxTZT1NYXRoLm1pbih0aGlzLk1BWF9DT0xVTU5fV0lEVEgsTWF0aC5tYXgodGhpcy5NSU5fQ09MVU1OX1dJRFRILHRoaXMucmVzaXppbmcuc3RhcnRXaWR0aCtyZSkpO3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChPZSxKZSk9PkplPT09dGhpcy5yZXNpemluZy5jb2x1bW5JbmRleD97Li4uT2Usd2lkdGg6U2V9Ok9lKX0sImhhbmRsZVJlc2l6ZSIpO3N0b3BSZXNpemU9aSgoKT0+e3RoaXMucmVzaXppbmc9bnVsbCxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUmVzaXplKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnN0b3BSZXNpemUpLGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSIiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0iIn0sInN0b3BSZXNpemUiKTtzZWxlY3RGaWxlKGZlLHJlKXt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoU2UsT2UpPT5PZT09PWZlP3suLi5TZSxzZWxlY3RlZEl0ZW06cmV9OlNlKSx0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLnNsaWNlKDAsZmUrMSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5LXNlbGVjdGVkIix7ZGV0YWlsOntrZXk6cmV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0RmlsZUljb24oZmUpe2xldCByZT1mZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIjtyZXR1cm57anNvbjoiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiIsdHh0OiJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Iixwbmc6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixqcGc6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixqcGVnOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIsZ2lmOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIscGRmOiJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6In1bcmVdfHwiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiJ9aGFuZGxlRm9sZGVyQ29udGV4dE1lbnUoZmUscmUsU2Upe3RoaXMuZGF0YVByb3ZpZGVyJiYoZmUucHJldmVudERlZmF1bHQoKSxrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhmZSxbe25hbWU6Ik9wZW4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyT3BlbiIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuc2VsZWN0Rm9sZGVyKHJlLFNlKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChTZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhTZSwhMCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coU2UsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJOZXcgRm9sZGVyIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZvbGRlciIsU2UpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIixTZSksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZpbGVzLi4uIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoU2UsImZpbGVzIiksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZvbGRlci4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJVcCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZChTZSwiZm9sZGVyIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZvbGRlciAiJHtGYShTZSl9IiBhbmQgYWxsIGl0cyBjb250ZW50cz9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlUHJlZml4KHRoaXMuYnVja2V0TmFtZSxTZSkmJih0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLnNsaWNlKDAscmUrMSksdGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKEplLHphKT0+emE9PT1yZT97Li4uSmUsc2VsZWN0ZWRJdGVtOm51bGx9OkplKSxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeCh0aGlzLmNvbHVtbnNbcmVdLnByZWZpeCkpfSwiYWN0aW9uIil9XSkpfWhhbmRsZUZpbGVDb250ZXh0TWVudShmZSxyZSxTZSl7dGhpcy5kYXRhUHJvdmlkZXImJihmZS5wcmV2ZW50RGVmYXVsdCgpLGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGZlLFt7bmFtZToiUHJldmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEZpbGUocmUsU2UpfSwiYWN0aW9uIil9LHtuYW1lOiJEb3dubG9hZCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBPZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRPYmplY3RVcmwodGhpcy5idWNrZXROYW1lLFNlKSxKZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7SmUuaHJlZj1PZSxKZS5kb3dubG9hZD1GYShTZSksSmUuY2xpY2soKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChTZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhTZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coU2UsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZpbGUgIiR7RmEoU2UpfSI/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsU2UpJiZhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeCh0aGlzLmNvbHVtbnNbcmVdLnByZWZpeCl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KGZlLHJlKXtpZihmZS50YXJnZXQhPT1mZS5jdXJyZW50VGFyZ2V0KXJldHVybjtmZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBTZT10aGlzLmNvbHVtbnNbcmVdLnByZWZpeDtrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhmZSxbe25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLFNlKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIixTZSksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZpbGVzLi4uIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoU2UsImZpbGVzIiksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZvbGRlci4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJVcCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZChTZSwiZm9sZGVyIiksImFjdGlvbiIpfV0pfW9wZW5DcmVhdGVEaWFsb2coZmUscmUpe3RoaXMuY3JlYXRlRGlhbG9nVHlwZT1mZSx0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeD1yZSx0aGlzLmNyZWF0ZURpYWxvZ05hbWU9IiIsdGhpcy5zaG93Q3JlYXRlRGlhbG9nPSEwfWVuc3VyZUZpbGVJbnB1dHMoKXt0aGlzLmZpbGVJbnB1dEVsZW1lbnR8fCh0aGlzLmZpbGVJbnB1dEVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLmZpbGVJbnB1dEVsZW1lbnQudHlwZT0iZmlsZSIsdGhpcy5maWxlSW5wdXRFbGVtZW50Lm11bHRpcGxlPSEwLHRoaXMuZmlsZUlucHV0RWxlbWVudC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGhpcy5maWxlSW5wdXRFbGVtZW50KSksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnR8fCh0aGlzLmZvbGRlcklucHV0RWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LnR5cGU9ImZpbGUiLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50Lm11bHRpcGxlPSEwLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LndlYmtpdGRpcmVjdG9yeT0hMCx0aGlzLmZvbGRlcklucHV0RWxlbWVudC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQpKX10cmlnZ2VyRmlsZVVwbG9hZChmZSxyZSl7dGhpcy5lbnN1cmVGaWxlSW5wdXRzKCk7bGV0IFNlPXJlPT09ImZvbGRlciI/dGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQ6dGhpcy5maWxlSW5wdXRFbGVtZW50O1NlLnZhbHVlPSIiO2xldCBPZT1pKGFzeW5jKCk9PntTZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLE9lKSxTZS5maWxlcyYmU2UuZmlsZXMubGVuZ3RoPjAmJmF3YWl0IHRoaXMudXBsb2FkRmlsZXMoQXJyYXkuZnJvbShTZS5maWxlcyksZmUpfSwiaGFuZGxlciIpO1NlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsT2UpLFNlLmNsaWNrKCl9YXN5bmMgdXBsb2FkRmlsZXMoZmUscmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLnVwbG9hZGluZz0hMCx0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OjAsdG90YWw6ZmUubGVuZ3RofTtmb3IobGV0IFNlPTA7U2U8ZmUubGVuZ3RoO1NlKyspe2xldCBPZT1mZVtTZV07dGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDpTZSsxLHRvdGFsOmZlLmxlbmd0aH07dHJ5e2xldCBKZT1hd2FpdCB0aGlzLnJlYWRGaWxlQXNCYXNlNjQoT2UpLHphPU9lLndlYmtpdFJlbGF0aXZlUGF0aHx8T2UubmFtZSxkYT1yZSt6YSx3cz1PZS50eXBlfHxXaChPZS5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiKTthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLGRhLEplLHdzKX1jYXRjaChKZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHVwbG9hZCAke09lLm5hbWV9OmAsSmUpfX10aGlzLnVwbG9hZGluZz0hMSx0aGlzLnVwbG9hZFByb2dyZXNzPW51bGwsYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgocmUpfX1hc3luYyB1cGxvYWRGaWxlc1dpdGhQYXRocyhmZSxyZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMudXBsb2FkaW5nPSEwLHRoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6MCx0b3RhbDpmZS5sZW5ndGh9O2ZvcihsZXQgU2U9MDtTZTxmZS5sZW5ndGg7U2UrKyl7bGV0e2ZpbGU6T2UscmVsYXRpdmVQYXRoOkplfT1mZVtTZV07dGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDpTZSsxLHRvdGFsOmZlLmxlbmd0aH07dHJ5e2xldCB6YT1hd2FpdCB0aGlzLnJlYWRGaWxlQXNCYXNlNjQoT2UpLGRhPXJlK0plLHdzPU9lLnR5cGV8fFdoKE9lLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIpO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsZGEsemEsd3MpfWNhdGNoKHphKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gdXBsb2FkICR7SmV9OmAsemEpfX10aGlzLnVwbG9hZGluZz0hMSx0aGlzLnVwbG9hZFByb2dyZXNzPW51bGwsYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgocmUpfX1yZWFkRmlsZUFzQmFzZTY0KGZlKXtyZXR1cm4gbmV3IFByb21pc2UoKHJlLFNlKT0+e2xldCBPZT1uZXcgRmlsZVJlYWRlcjtPZS5vbmxvYWQ9KCk9PntsZXQgSmU9T2UucmVzdWx0O3JlKEplLnNwbGl0KCIsIilbMV18fCIiKX0sT2Uub25lcnJvcj0oKT0+U2UoT2UuZXJyb3IpLE9lLnJlYWRBc0RhdGFVUkwoZmUpfSl9YXN5bmMgcmVmcmVzaENvbHVtbkJ5UHJlZml4KGZlKXtpZighdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCByZT10aGlzLmNvbHVtbnMuZmluZEluZGV4KFNlPT5TZS5wcmVmaXg9PT1mZSk7aWYocmU9PT0tMSl7YXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpO3JldHVybn10cnl7bGV0IFNlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxmZSwiLyIpO3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChPZSxKZSk9PkplPT09cmU/ey4uLk9lLG9iamVjdHM6U2Uub2JqZWN0cyxwcmVmaXhlczpTZS5wcmVmaXhlc306T2UpfWNhdGNoe2F3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKX19aGFuZGxlQ29sdW1uRHJhZ0VudGVyKGZlLHJlKXtmZS5wcmV2ZW50RGVmYXVsdCgpLGZlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBTZT0odGhpcy5kcmFnQ291bnRlcnMuZ2V0KHJlKXx8MCkrMTt0aGlzLmRyYWdDb3VudGVycy5zZXQocmUsU2UpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD1yZX1oYW5kbGVDb2x1bW5EcmFnT3ZlcihmZSl7ZmUucHJldmVudERlZmF1bHQoKSxmZS5zdG9wUHJvcGFnYXRpb24oKSxmZS5kYXRhVHJhbnNmZXImJihmZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD10aGlzLmRyYWdnZWRJdGVtPyJtb3ZlIjoiY29weSIpfWhhbmRsZUNvbHVtbkRyYWdMZWF2ZShmZSxyZSl7ZmUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFNlPSh0aGlzLmRyYWdDb3VudGVycy5nZXQocmUpfHwxKS0xO3RoaXMuZHJhZ0NvdW50ZXJzLnNldChyZSxTZSksU2U8PTAmJih0aGlzLmRyYWdDb3VudGVycy5kZWxldGUocmUpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD09PXJlJiYodGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PS0xKSx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSl9YXN5bmMgaGFuZGxlQ29sdW1uRHJvcChmZSxyZSl7ZmUucHJldmVudERlZmF1bHQoKSxmZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgU2U9dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD8/dGhpcy5jb2x1bW5zW3JlXS5wcmVmaXg7aWYodGhpcy5kcmFnZ2VkSXRlbSl7dGhpcy5pbml0aWF0ZU1vdmUodGhpcy5kcmFnZ2VkSXRlbS5rZXksdGhpcy5kcmFnZ2VkSXRlbS5pc0ZvbGRlcixTZSksdGhpcy5kcmFnZ2VkSXRlbT1udWxsLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZHJhZ0NvdW50ZXJzLmNsZWFyKCksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PS0xO3JldHVybn10aGlzLmRyYWdDb3VudGVycy5jbGVhcigpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD0tMTtsZXQgT2U9ZmUuZGF0YVRyYW5zZmVyPy5pdGVtcztpZighT2V8fE9lLmxlbmd0aD09PTApcmV0dXJuO3RoaXMuY2xlYXJGb2xkZXJIb3ZlcigpO2xldCBKZT1bXSx6YT1pKGFzeW5jKGRhLHdzKT0+e2lmKGRhLmlzRmlsZSl7bGV0IGtpPWRhLEppPWF3YWl0IG5ldyBQcm9taXNlKChScixTaSk9PntraS5maWxlKFJyLFNpKX0pO0plLnB1c2goe2ZpbGU6SmkscmVsYXRpdmVQYXRoOndzK0ppLm5hbWV9KX1lbHNlIGlmKGRhLmlzRGlyZWN0b3J5KXtsZXQgSmk9ZGEuY3JlYXRlUmVhZGVyKCksUnI9YXdhaXQgbmV3IFByb21pc2UoKFNpLHZuKT0+e0ppLnJlYWRFbnRyaWVzKFNpLHZuKX0pO2ZvcihsZXQgU2kgb2YgUnIpYXdhaXQgemEoU2ksd3MrZGEubmFtZSsiLyIpfX0sInByb2Nlc3NFbnRyeSIpO2ZvcihsZXQgZGE9MDtkYTxPZS5sZW5ndGg7ZGErKyl7bGV0IHdzPU9lW2RhXTtpZih3cy5raW5kPT09ImZpbGUiKXtsZXQga2k9d3Mud2Via2l0R2V0QXNFbnRyeSgpO2tpJiZhd2FpdCB6YShraSwiIil9fUplLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwbG9hZEZpbGVzV2l0aFBhdGhzKEplLFNlKX1oYW5kbGVGb2xkZXJEcmFnRW50ZXIoZmUscmUpe2ZlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZm9sZGVySG92ZXJUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD1yZX0sNTAwKX1oYW5kbGVGb2xkZXJEcmFnTGVhdmUoZmUscmUpe2ZlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBTZT1mZS5jdXJyZW50VGFyZ2V0LE9lPWZlLnJlbGF0ZWRUYXJnZXQ7T2UmJlNlLmNvbnRhaW5zKE9lKXx8KHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9PT1yZSYmKHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9bnVsbCksdGhpcy5mb2xkZXJIb3ZlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuZm9sZGVySG92ZXJUaW1lciksdGhpcy5mb2xkZXJIb3ZlclRpbWVyPW51bGwpKX1oYW5kbGVGb2xkZXJEcmFnT3ZlcihmZSl7ZmUucHJldmVudERlZmF1bHQoKSxmZS5zdG9wUHJvcGFnYXRpb24oKSxmZS5kYXRhVHJhbnNmZXImJihmZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD10aGlzLmRyYWdnZWRJdGVtPyJtb3ZlIjoiY29weSIpfWNsZWFyRm9sZGVySG92ZXIoKXt0aGlzLmZvbGRlckhvdmVyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5mb2xkZXJIb3ZlclRpbWVyKSx0aGlzLmZvbGRlckhvdmVyVGltZXI9bnVsbCksdGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD1udWxsfWhhbmRsZUl0ZW1EcmFnU3RhcnQoZmUscmUsU2Upe3RoaXMuZHJhZ2dlZEl0ZW09e2tleTpyZSxpc0ZvbGRlcjpTZX0sZmUuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCJ0ZXh0L3BsYWluIixyZSksZmUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9ImNvcHlNb3ZlIixmZS50YXJnZXQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX1oYW5kbGVJdGVtRHJhZ0VuZChmZSl7dGhpcy5kcmFnZ2VkSXRlbT1udWxsLGZlLnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpfWFzeW5jIG9wZW5Nb3ZlUGlja2VyRGlhbG9nKGZlLHJlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2U9e2tleTpmZSxpc0ZvbGRlcjpyZX0sdGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD0iIix0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSEwLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcygiIil9YXN5bmMgbmF2aWdhdGVNb3ZlUGlja2VyKGZlKXt0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PWZlLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcyhmZSl9YXN5bmMgbG9hZE1vdmVQaWNrZXJQcmVmaXhlcyhmZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubW92ZVBpY2tlckxvYWRpbmc9ITA7dHJ5e2xldCByZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsZmUsIi8iKTt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1yZS5wcmVmaXhlc31jYXRjaHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1bXX10aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSExfX1zZWxlY3RNb3ZlRGVzdGluYXRpb24oZmUpe3RoaXMubW92ZVBpY2tlclNvdXJjZSYmKHRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCksdGhpcy5pbml0aWF0ZU1vdmUodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSx0aGlzLm1vdmVQaWNrZXJTb3VyY2UuaXNGb2xkZXIsZmUpKX1jbG9zZU1vdmVQaWNrZXJEaWFsb2coKXt0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSExLHRoaXMubW92ZVBpY2tlclNvdXJjZT1udWxsLHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119aW5pdGlhdGVNb3ZlKGZlLHJlLFNlKXtsZXQgT2U9SnYoZmUsU2UpO2lmKCFPZS52YWxpZCl7dGhpcy5tb3ZlU291cmNlPXtrZXk6ZmUsaXNGb2xkZXI6cmV9LHRoaXMubW92ZURlc3RpbmF0aW9uPVNlLHRoaXMubW92ZUVycm9yPU9lLmVycm9yLHRoaXMuc2hvd01vdmVEaWFsb2c9ITA7cmV0dXJufXRoaXMubW92ZVNvdXJjZT17a2V5OmZlLGlzRm9sZGVyOnJlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1TZSx0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMuc2hvd01vdmVEaWFsb2c9ITB9YXN5bmMgZXhlY3V0ZU1vdmUoKXtpZighKCF0aGlzLm1vdmVTb3VyY2V8fCF0aGlzLmRhdGFQcm92aWRlcikpe3RoaXMubW92ZUluUHJvZ3Jlc3M9ITA7dHJ5e2xldCBmZT1GYSh0aGlzLm1vdmVTb3VyY2Uua2V5KSxyZT10aGlzLm1vdmVEZXN0aW5hdGlvbitmZSsodGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyPyIvIjoiIiksU2U7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyP1NlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXkscmUpOlNlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXkscmUpLFNlLnN1Y2Nlc3M/KHRoaXMuY2xvc2VNb3ZlRGlhbG9nKCksYXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpKTp0aGlzLm1vdmVFcnJvcj1TZS5lcnJvcnx8Ik1vdmUgb3BlcmF0aW9uIGZhaWxlZCJ9Y2F0Y2goZmUpe3RoaXMubW92ZUVycm9yPWBFcnJvcjogJHtmZX1gfXRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9fWNsb3NlTW92ZURpYWxvZygpe3RoaXMuc2hvd01vdmVEaWFsb2c9ITEsdGhpcy5tb3ZlU291cmNlPW51bGwsdGhpcy5tb3ZlRGVzdGluYXRpb249IiIsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLm1vdmVJblByb2dyZXNzPSExfW9wZW5SZW5hbWVEaWFsb2coZmUscmUpe3RoaXMucmVuYW1lU291cmNlPXtrZXk6ZmUsaXNGb2xkZXI6cmV9LHRoaXMucmVuYW1lTmFtZT1GYShmZSksdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMuc2hvd1JlbmFtZURpYWxvZz0hMCx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgU2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucmVuYW1lLWRpYWxvZy1pbnB1dCIpO2lmKFNlKWlmKFNlLmZvY3VzKCkscmUpU2Uuc2VsZWN0KCk7ZWxzZXtsZXQgT2U9dGhpcy5yZW5hbWVOYW1lLmxhc3RJbmRleE9mKCIuIik7T2U+MD9TZS5zZXRTZWxlY3Rpb25SYW5nZSgwLE9lKTpTZS5zZWxlY3QoKX19KX1hc3luYyBleGVjdXRlUmVuYW1lKCl7aWYoIXRoaXMucmVuYW1lU291cmNlfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgZmU9dGhpcy5yZW5hbWVOYW1lLnRyaW0oKSxyZT1GYSh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpO2lmKGZlPT09cmUpe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudCI7cmV0dXJufWlmKCFmZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBjYW5ub3QgYmUgZW1wdHkiO3JldHVybn1pZihmZS5pbmNsdWRlcygiLyIpKXt0aGlzLnJlbmFtZUVycm9yPSdOYW1lIGNhbm5vdCBjb250YWluICIvIic7cmV0dXJufXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMCx0aGlzLnJlbmFtZUVycm9yPW51bGw7dHJ5e2xldCBPZT1sMih0aGlzLnJlbmFtZVNvdXJjZS5rZXkpK2ZlKyh0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLEplO3RoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyP0plPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSxPZSk6SmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LE9lKSxKZS5zdWNjZXNzPyh0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCksYXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpKTp0aGlzLnJlbmFtZUVycm9yPUplLmVycm9yfHwiUmVuYW1lIGZhaWxlZCJ9Y2F0Y2goU2Upe3RoaXMucmVuYW1lRXJyb3I9YEVycm9yOiAke1NlfWB9dGhpcy5yZW5hbWVJblByb2dyZXNzPSExfWNsb3NlUmVuYW1lRGlhbG9nKCl7dGhpcy5zaG93UmVuYW1lRGlhbG9nPSExLHRoaXMucmVuYW1lU291cmNlPW51bGwsdGhpcy5yZW5hbWVOYW1lPSIiLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9cmVuZGVyUmVuYW1lRGlhbG9nKCl7aWYoIXRoaXMuc2hvd1JlbmFtZURpYWxvZ3x8IXRoaXMucmVuYW1lU291cmNlKXJldHVybiIiO2xldCBmZT10aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7U2U9PlNlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHtmZT8iUmVuYW1lIEZvbGRlciI6IlJlbmFtZSBGaWxlIn08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHtsMih0aGlzLnJlbmFtZVNvdXJjZS5rZXkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuYW1lRXJyb3I/d2A8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMucmVuYW1lRXJyb3J9PC9kaXY+YDoiIn0KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IHJlbmFtZS1kaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7ZmU/ImZvbGRlci1uYW1lIjoiZmlsZW5hbWUuZXh0In0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5yZW5hbWVOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtTZT0+e3RoaXMucmVuYW1lTmFtZT1TZS50YXJnZXQudmFsdWUsdGhpcy5yZW5hbWVFcnJvcj1udWxsfX0KICAgICAgICAgICAgQGtleWRvd249JHtTZT0+e1NlLmtleT09PSJFbnRlciImJnRoaXMuZXhlY3V0ZVJlbmFtZSgpLFNlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc30+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZVJlbmFtZSgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc3x8IXRoaXMucmVuYW1lTmFtZS50cmltKCl9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5hbWVJblByb2dyZXNzPyJSZW5hbWluZy4uLiI6IlJlbmFtZSJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVEaWFsb2d8fCF0aGlzLm1vdmVTb3VyY2UpcmV0dXJuIiI7bGV0IGZlPUZhKHRoaXMubW92ZVNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7cmU9PnJlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAke3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iRm9sZGVyIjoiRmlsZSJ9PC9kaXY+CgogICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMubW92ZUVycm9yfTwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLXN1bW1hcnkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+RnJvbTo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZVNvdXJjZS5rZXl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+VG86PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVEZXN0aW5hdGlvbn0ke2ZlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/IiI6d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZU1vdmUoKX0KICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgICAgJHt0aGlzLm1vdmVJblByb2dyZXNzPyJNb3ZpbmcuLi4iOiJNb3ZlIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZVBpY2tlckRpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nfHwhdGhpcy5tb3ZlUGlja2VyU291cmNlKXJldHVybiIiO2xldCBmZT1GYSh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KSxyZT1sMih0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2cgbW92ZS1waWNrZXItZGlhbG9nIiBAY2xpY2s9JHtTZT0+U2Uuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICIke2ZlfSIgdG8uLi48L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcigiIil9PgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7eWcodGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCkubWFwKFNlPT53YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihTZSl9PgogICAgICAgICAgICAgICAgJHtGYShTZSl9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nP3dgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5Mb2FkaW5nLi4uPC9kaXY+YDoiIn0KICAgICAgICAgICAgJHshdGhpcy5tb3ZlUGlja2VyTG9hZGluZyYmdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKFNlPT5TZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPk5vIHN1YmZvbGRlcnM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoU2U9PlNlIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubWFwKFNlPT53YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWl0ZW0iCiAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihTZSl9CiAgICAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbihTZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtGYShTZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9PT1yZX0+CiAgICAgICAgICAgICAgTW92ZSBIZXJlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVDcmVhdGUoKXtpZighdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgZmU9dGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKSxyZTt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIj9yZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCtmZSsiLy5rZWVwIjpyZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCtmZTtsZXQgU2U9ZmUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIsT2U9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP1doKFNlKToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixKZT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/ZXgoU2UpOiIiO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUscmUsYnRvYShKZSksT2UpJiYodGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHRoaXMuY3JlYXRlRGlhbG9nUHJlZml4KSl9cmVuZGVyQ3JlYXRlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd0NyZWF0ZURpYWxvZylyZXR1cm4iIjtsZXQgZmU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciIscmU9ZmU/IkNyZWF0ZSBOZXcgRm9sZGVyIjoiQ3JlYXRlIE5ldyBGaWxlIixTZT1mZT8iZm9sZGVyLW5hbWUgb3IgcGF0aC90by9mb2xkZXIiOiJmaWxlbmFtZS50eHQgb3IgcGF0aC90by9maWxlLnR4dCI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke09lPT5PZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7cmV9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXh9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke1NlfQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNyZWF0ZURpYWxvZ05hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke09lPT50aGlzLmNyZWF0ZURpYWxvZ05hbWU9T2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICBAa2V5ZG93bj0ke09lPT5PZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1oaW50Ij4KICAgICAgICAgICAgVXNlICIvIiB0byBjcmVhdGUgbmVzdGVkICR7ZmU/ImZvbGRlcnMiOiJwYXRoIn0gKGUuZy4sICR7ZmU/InBhcmVudC9jaGlsZCI6ImZvbGRlci9maWxlLnR4dCJ9KQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfQogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ3JlYXRlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXIoKXtyZXR1cm4gdGhpcy5sb2FkaW5nJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImxvYWRpbmciPkxvYWRpbmcuLi48L2Rpdj5gOndgCiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbnMtY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuY29sdW1ucy5tYXAoKGZlLHJlKT0+dGhpcy5yZW5kZXJDb2x1bW5XcmFwcGVyKGZlLHJlKSl9CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMucmVuZGVyQ3JlYXRlRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJNb3ZlRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJNb3ZlUGlja2VyRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJSZW5hbWVEaWFsb2coKX0KICAgIGB9cmVuZGVyQ29sdW1uV3JhcHBlcihmZSxyZSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi13cmFwcGVyIj4KICAgICAgICAke3RoaXMucmVuZGVyQ29sdW1uKGZlLHJlKX0KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSAke3RoaXMucmVzaXppbmc/LmNvbHVtbkluZGV4PT09cmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke1NlPT50aGlzLnN0YXJ0UmVzaXplKFNlLHJlKX0KICAgICAgICA+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJDb2x1bW4oZmUscmUpe2xldCBTZT1mZS5wcmVmaXg/RmEoZmUucHJlZml4KTp0aGlzLmJ1Y2tldE5hbWU7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iY29sdW1uICR7dGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PT09cmU/ImRyYWctb3ZlciI6IiJ9IgogICAgICAgIHN0eWxlPSJ3aWR0aDogJHtmZS53aWR0aH1weCIKICAgICAgICBAZHJhZ2VudGVyPSR7T2U9PnRoaXMuaGFuZGxlQ29sdW1uRHJhZ0VudGVyKE9lLHJlKX0KICAgICAgICBAZHJhZ292ZXI9JHtPZT0+dGhpcy5oYW5kbGVDb2x1bW5EcmFnT3ZlcihPZSl9CiAgICAgICAgQGRyYWdsZWF2ZT0ke09lPT50aGlzLmhhbmRsZUNvbHVtbkRyYWdMZWF2ZShPZSxyZSl9CiAgICAgICAgQGRyb3A9JHtPZT0+dGhpcy5oYW5kbGVDb2x1bW5Ecm9wKE9lLHJlKX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi1oZWFkZXIiIHRpdGxlPSR7ZmUucHJlZml4fHx0aGlzLmJ1Y2tldE5hbWV9PgogICAgICAgICAgJHtTZX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4taXRlbXMiIEBjb250ZXh0bWVudT0ke09lPT50aGlzLmhhbmRsZUVtcHR5U3BhY2VDb250ZXh0TWVudShPZSxyZSl9PgogICAgICAgICAgJHtmZS5wcmVmaXhlcy5sZW5ndGg9PT0wJiZmZS5vYmplY3RzLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+RW1wdHkgZm9sZGVyPC9kaXY+YDoiIn0KICAgICAgICAgICR7ZmUucHJlZml4ZXMubWFwKE9lPT53YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJjb2x1bW4taXRlbSBmb2xkZXIgJHtmZS5zZWxlY3RlZEl0ZW09PT1PZT8ic2VsZWN0ZWQiOiIifSAke3RoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9PT1PZT8iZHJhZy10YXJnZXQiOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEZvbGRlcihyZSxPZSl9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtKZT0+dGhpcy5oYW5kbGVGb2xkZXJDb250ZXh0TWVudShKZSxyZSxPZSl9CiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7SmU9PnRoaXMuaGFuZGxlSXRlbURyYWdTdGFydChKZSxPZSwhMCl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke0plPT50aGlzLmhhbmRsZUl0ZW1EcmFnRW5kKEplKX0KICAgICAgICAgICAgICAgIEBkcmFnZW50ZXI9JHtKZT0+dGhpcy5oYW5kbGVGb2xkZXJEcmFnRW50ZXIoSmUsT2UpfQogICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7SmU9PnRoaXMuaGFuZGxlRm9sZGVyRHJhZ092ZXIoSmUpfQogICAgICAgICAgICAgICAgQGRyYWdsZWF2ZT0ke0plPT50aGlzLmhhbmRsZUZvbGRlckRyYWdMZWF2ZShKZSxPZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiIC8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke0ZhKE9lKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJjaGV2cm9uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI5IDE4IDE1IDEyIDkgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgICR7ZmUub2JqZWN0cy5tYXAoT2U9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImNvbHVtbi1pdGVtICR7ZmUuc2VsZWN0ZWRJdGVtPT09T2Uua2V5PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0RmlsZShyZSxPZS5rZXkpfQogICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7SmU9PnRoaXMuaGFuZGxlRmlsZUNvbnRleHRNZW51KEplLHJlLE9lLmtleSl9CiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7SmU9PnRoaXMuaGFuZGxlSXRlbURyYWdTdGFydChKZSxPZS5rZXksITEpfQogICAgICAgICAgICAgICAgQGRyYWdlbmQ9JHtKZT0+dGhpcy5oYW5kbGVJdGVtRHJhZ0VuZChKZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBhdGggZD0iJHt0aGlzLmdldEZpbGVJY29uKE9lLmtleSl9IiAvPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtGYShPZS5rZXkpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9PT1yZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZHJhZy1oaW50Ij4KICAgICAgICAgICAgJHt0aGlzLmRyYWdnZWRJdGVtP3RoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg/YE1vdmUgdG8gJHtGYSh0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4KX1gOiJNb3ZlIGhlcmUiOnRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg/YERyb3AgdG8gdXBsb2FkIGludG8gJHtGYSh0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4KX1gOiJEcm9wIHRvIHVwbG9hZCBoZXJlIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgJHt0aGlzLnVwbG9hZGluZz93YAogICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtdGV4dCI+VXBsb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy51cGxvYWRQcm9ncmVzcz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1wcm9ncmVzcyI+JHt0aGlzLnVwbG9hZFByb2dyZXNzLmN1cnJlbnR9IC8gJHt0aGlzLnVwbG9hZFByb2dyZXNzLnRvdGFsfSBmaWxlczwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tBdChhLHQpfX07cmV0dXJuIE5yPWF9KSgpfSk7dmFyIEhzLHF0LEltYSxxaXQ9ZygoKT0+e3BlKCk7b3IoKTtwdCgpO0tYKCk7SHM9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHF0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxJbWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0b3JhZ2Uta2V5cyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdLEllLGNlPVtdLGRlPVtdLExlLEtlPVtdLFllPVtdLG90LFV0PVtdLFp0PVtdLGphLGV0PVtdLGJ0PVtdLHlhLGVzPVtdLHJzPVtdLHBzLG5zPVtdLHRpPVtdO3ZhciBhaT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VLZXlzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHplPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLENlPVtZKCldLEVlPVtZKCldLHN0PVtZKCldLEllPVtZKCldLExlPVtZKCldLG90PVtZKCldLGphPVtZKCldLHlhPVtZKCldLHBzPVtZKCldLEhzKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4iZGF0YVByb3ZpZGVyImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuZGF0YVByb3ZpZGVyLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuZGF0YVByb3ZpZGVyPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxvLGwpLEhzKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnVja2V0TmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImJ1Y2tldE5hbWUiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5idWNrZXROYW1lLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuYnVja2V0TmFtZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sZCx1KSxIcyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJjdXJyZW50UHJlZml4ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuY3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmN1cnJlbnRQcmVmaXg9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGIsdiksSHModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZyZXNoS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4icmVmcmVzaEtleSJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnJlZnJlc2hLZXksImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5yZWZyZXNoS2V5PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxtLGYpLEhzKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsS2V5cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImFsbEtleXMiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5hbGxLZXlzLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuYWxsS2V5cz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sTSx6KSxIcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZWZpeGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4icHJlZml4ZXMiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5wcmVmaXhlcywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnByZWZpeGVzPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxDLF8pLEhzKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImxvYWRpbmciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubG9hZGluZz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sJCxFKSxIcyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2VsZWN0ZWRLZXkiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5zZWxlY3RlZEtleSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnNlbGVjdGVkS2V5PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxrLFMpLEhzKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImZpbHRlclRleHQiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5maWx0ZXJUZXh0LCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuZmlsdGVyVGV4dD1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sUCxSKSxIcyh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDcmVhdGVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJzaG93Q3JlYXRlRGlhbG9nImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuc2hvd0NyZWF0ZURpYWxvZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnNob3dDcmVhdGVEaWFsb2c9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LFYsVyksSHModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImNyZWF0ZURpYWxvZ1R5cGUiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5jcmVhdGVEaWFsb2dUeXBlLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuY3JlYXRlRGlhbG9nVHlwZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sQixVKSxIcyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJjcmVhdGVEaWFsb2dQcmVmaXgiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5jcmVhdGVEaWFsb2dQcmVmaXgsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5jcmVhdGVEaWFsb2dQcmVmaXg9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LEYsaiksSHModGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImNyZWF0ZURpYWxvZ05hbWUiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5jcmVhdGVEaWFsb2dOYW1lLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuY3JlYXRlRGlhbG9nTmFtZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sbGUsUSksSHModGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJzaG93TW92ZURpYWxvZyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnNob3dNb3ZlRGlhbG9nLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuc2hvd01vdmVEaWFsb2c9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LHRlLGVlKSxIcyh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ibW92ZVNvdXJjZSJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVTb3VyY2UsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlU291cmNlPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxYLFopLEhzKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVEZXN0aW5hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVEZXN0aW5hdGlvbiJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVEZXN0aW5hdGlvbiwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVEZXN0aW5hdGlvbj1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0scSxBKSxIcyh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVJblByb2dyZXNzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubW92ZUluUHJvZ3Jlc3MsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlSW5Qcm9ncmVzcz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sb2UsYWUpLEhzKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVFcnJvciJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVFcnJvciwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVFcnJvcj1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sUmUsQmUpLEhzKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlUGlja2VyRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2hvd01vdmVQaWNrZXJEaWFsb2ciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5zaG93TW92ZVBpY2tlckRpYWxvZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnNob3dNb3ZlUGlja2VyRGlhbG9nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxEZSxfZSksSHModGhpcyxudWxsLENlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVQaWNrZXJTb3VyY2UiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlUGlja2VyU291cmNlLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZVBpY2tlclNvdXJjZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sdmUsYmUpLEhzKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJDdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxqZSxXZSksSHModGhpcyxudWxsLHN0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclByZWZpeGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ibW92ZVBpY2tlclByZWZpeGVzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubW92ZVBpY2tlclByZWZpeGVzLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZVBpY2tlclByZWZpeGVzPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxNZSxnZSksSHModGhpcyxudWxsLEllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlUGlja2VyTG9hZGluZyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVQaWNrZXJMb2FkaW5nLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZVBpY2tlckxvYWRpbmc9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGNlLGRlKSxIcyh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UmVuYW1lRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2hvd1JlbmFtZURpYWxvZyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnNob3dSZW5hbWVEaWFsb2csImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5zaG93UmVuYW1lRGlhbG9nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxLZSxZZSksSHModGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4icmVuYW1lU291cmNlImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucmVuYW1lU291cmNlLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUucmVuYW1lU291cmNlPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxVdCxadCksSHModGhpcyxudWxsLGphLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InJlbmFtZU5hbWUiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5yZW5hbWVOYW1lLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUucmVuYW1lTmFtZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sZXQsYnQpLEhzKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUluUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJyZW5hbWVJblByb2dyZXNzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucmVuYW1lSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnJlbmFtZUluUHJvZ3Jlc3M9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGVzLHJzKSxIcyh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InJlbmFtZUVycm9yImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucmVuYW1lRXJyb3IsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5yZW5hbWVFcnJvcj1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sbnMsdGkpLEhzKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnplfSxudWxsLHQpLGFpPWE9ZS52YWx1ZSx6ZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp6ZX0pfSNlPXF0KHRoaXMsbyxudWxsKTtnZXQgZGF0YVByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGFQcm92aWRlcih6ZSl7dGhpcy4jZT16ZX0jdD0ocXQodGhpcyxsKSxxdCh0aGlzLGQsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKHplKXt0aGlzLiN0PXplfSNhPShxdCh0aGlzLHUpLHF0KHRoaXMsYiwiIikpO2dldCBjdXJyZW50UHJlZml4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1cnJlbnRQcmVmaXgoemUpe3RoaXMuI2E9emV9I3M9KHF0KHRoaXMsdikscXQodGhpcyxtLDApKTtnZXQgcmVmcmVzaEtleSgpe3JldHVybiB0aGlzLiNzfXNldCByZWZyZXNoS2V5KHplKXt0aGlzLiNzPXplfSNpPShxdCh0aGlzLGYpLHF0KHRoaXMsTSxbXSkpO2dldCBhbGxLZXlzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbEtleXMoemUpe3RoaXMuI2k9emV9I3I9KHF0KHRoaXMseikscXQodGhpcyxDLFtdKSk7Z2V0IHByZWZpeGVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHByZWZpeGVzKHplKXt0aGlzLiNyPXplfSNvPShxdCh0aGlzLF8pLHF0KHRoaXMsJCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGxvYWRpbmcoemUpe3RoaXMuI289emV9I249KHF0KHRoaXMsRSkscXQodGhpcyxrLCIiKSk7Z2V0IHNlbGVjdGVkS2V5KCl7cmV0dXJuIHRoaXMuI259c2V0IHNlbGVjdGVkS2V5KHplKXt0aGlzLiNuPXplfSNsPShxdCh0aGlzLFMpLHF0KHRoaXMsUCwiIikpO2dldCBmaWx0ZXJUZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGZpbHRlclRleHQoemUpe3RoaXMuI2w9emV9I2M9KHF0KHRoaXMsUikscXQodGhpcyxWLCExKSk7Z2V0IHNob3dDcmVhdGVEaWFsb2coKXtyZXR1cm4gdGhpcy4jY31zZXQgc2hvd0NyZWF0ZURpYWxvZyh6ZSl7dGhpcy4jYz16ZX0jZD0ocXQodGhpcyxXKSxxdCh0aGlzLEIsImZvbGRlciIpKTtnZXQgY3JlYXRlRGlhbG9nVHlwZSgpe3JldHVybiB0aGlzLiNkfXNldCBjcmVhdGVEaWFsb2dUeXBlKHplKXt0aGlzLiNkPXplfSN1PShxdCh0aGlzLFUpLHF0KHRoaXMsRiwiIikpO2dldCBjcmVhdGVEaWFsb2dQcmVmaXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgY3JlYXRlRGlhbG9nUHJlZml4KHplKXt0aGlzLiN1PXplfSNwPShxdCh0aGlzLGopLHF0KHRoaXMsbGUsIiIpKTtnZXQgY3JlYXRlRGlhbG9nTmFtZSgpe3JldHVybiB0aGlzLiNwfXNldCBjcmVhdGVEaWFsb2dOYW1lKHplKXt0aGlzLiNwPXplfSNoPShxdCh0aGlzLFEpLHF0KHRoaXMsdGUsITEpKTtnZXQgc2hvd01vdmVEaWFsb2coKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2hvd01vdmVEaWFsb2coemUpe3RoaXMuI2g9emV9I2Y9KHF0KHRoaXMsZWUpLHF0KHRoaXMsWCxudWxsKSk7Z2V0IG1vdmVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jZn1zZXQgbW92ZVNvdXJjZSh6ZSl7dGhpcy4jZj16ZX0jbT0ocXQodGhpcyxaKSxxdCh0aGlzLHEsIiIpKTtnZXQgbW92ZURlc3RpbmF0aW9uKCl7cmV0dXJuIHRoaXMuI219c2V0IG1vdmVEZXN0aW5hdGlvbih6ZSl7dGhpcy4jbT16ZX0jZz0ocXQodGhpcyxBKSxxdCh0aGlzLG9lLCExKSk7Z2V0IG1vdmVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1vdmVJblByb2dyZXNzKHplKXt0aGlzLiNnPXplfSNiPShxdCh0aGlzLGFlKSxxdCh0aGlzLFJlLG51bGwpKTtnZXQgbW92ZUVycm9yKCl7cmV0dXJuIHRoaXMuI2J9c2V0IG1vdmVFcnJvcih6ZSl7dGhpcy4jYj16ZX0jdj0ocXQodGhpcyxCZSkscXQodGhpcyxEZSwhMSkpO2dldCBzaG93TW92ZVBpY2tlckRpYWxvZygpe3JldHVybiB0aGlzLiN2fXNldCBzaG93TW92ZVBpY2tlckRpYWxvZyh6ZSl7dGhpcy4jdj16ZX0jeD0ocXQodGhpcyxfZSkscXQodGhpcyx2ZSxudWxsKSk7Z2V0IG1vdmVQaWNrZXJTb3VyY2UoKXtyZXR1cm4gdGhpcy4jeH1zZXQgbW92ZVBpY2tlclNvdXJjZSh6ZSl7dGhpcy4jeD16ZX0jeT0ocXQodGhpcyxiZSkscXQodGhpcyxqZSwiIikpO2dldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeCh6ZSl7dGhpcy4jeT16ZX0jdz0ocXQodGhpcyxXZSkscXQodGhpcyxNZSxbXSkpO2dldCBtb3ZlUGlja2VyUHJlZml4ZXMoKXtyZXR1cm4gdGhpcy4jd31zZXQgbW92ZVBpY2tlclByZWZpeGVzKHplKXt0aGlzLiN3PXplfSNrPShxdCh0aGlzLGdlKSxxdCh0aGlzLGNlLCExKSk7Z2V0IG1vdmVQaWNrZXJMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2t9c2V0IG1vdmVQaWNrZXJMb2FkaW5nKHplKXt0aGlzLiNrPXplfSNTPShxdCh0aGlzLGRlKSxxdCh0aGlzLEtlLCExKSk7Z2V0IHNob3dSZW5hbWVEaWFsb2coKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd1JlbmFtZURpYWxvZyh6ZSl7dGhpcy4jUz16ZX0jXz0ocXQodGhpcyxZZSkscXQodGhpcyxVdCxudWxsKSk7Z2V0IHJlbmFtZVNvdXJjZSgpe3JldHVybiB0aGlzLiNffXNldCByZW5hbWVTb3VyY2UoemUpe3RoaXMuI189emV9I009KHF0KHRoaXMsWnQpLHF0KHRoaXMsZXQsIiIpKTtnZXQgcmVuYW1lTmFtZSgpe3JldHVybiB0aGlzLiNNfXNldCByZW5hbWVOYW1lKHplKXt0aGlzLiNNPXplfSN6PShxdCh0aGlzLGJ0KSxxdCh0aGlzLGVzLCExKSk7Z2V0IHJlbmFtZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jen1zZXQgcmVuYW1lSW5Qcm9ncmVzcyh6ZSl7dGhpcy4jej16ZX0jQz0ocXQodGhpcyxycykscXQodGhpcyxucyxudWxsKSk7Z2V0IHJlbmFtZUVycm9yKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHJlbmFtZUVycm9yKHplKXt0aGlzLiNDPXplfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxIZSxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5rZXlzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmZpbHRlci1iYXIgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNDQ0Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzQwNDA0MCIpfTsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgIH0KCiAgICAgIC5rZXlzLWxpc3QgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgIH0KCiAgICAgIHRoZWFkIHsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM2NjYiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICB9CgogICAgICB0ZCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyYTJhM2UiKX07CiAgICAgIH0KCiAgICAgIHRyOmhvdmVyIHRkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykiKX07CiAgICAgIH0KCiAgICAgIHRyLnNlbGVjdGVkIHRkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLmtleS1jZWxsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAua2V5LWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZvbGRlci1pY29uIHsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLmtleS1uYW1lIHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zaXplLWNlbGwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAuZGlhbG9nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAuZGlhbG9nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZTFlMWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1pbi13aWR0aDogNDAwcHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgICB9CgogICAgICAuZGlhbG9nLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctbG9jYXRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE0MTQxNCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlhbG9nLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWwgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYWFhIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1MDUwNTAiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIE1vdmUgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1zdW1tYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAubW92ZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAubW92ZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLXBhdGggewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNmM2Y0NiIsIiNlMGUwZTAiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAubW92ZS1lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAvKiBNb3ZlIHBpY2tlciBkaWFsb2cgc3R5bGVzICovCiAgICAgIC5tb3ZlLXBpY2tlci1kaWFsb2cgewogICAgICAgIG1pbi13aWR0aDogNDUwcHg7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItYnJlYWRjcnVtYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAucGlja2VyLXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAubmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItZW1wdHkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpfXVwZGF0ZWQoemUpeyh6ZS5oYXMoImJ1Y2tldE5hbWUiKXx8emUuaGFzKCJjdXJyZW50UHJlZml4Iil8fHplLmhhcygicmVmcmVzaEtleSIpKSYmdGhpcy5sb2FkT2JqZWN0cygpfWFzeW5jIGxvYWRPYmplY3RzKCl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubG9hZGluZz0hMDt0cnl7bGV0IHplPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSx0aGlzLmN1cnJlbnRQcmVmaXgsIi8iKTt0aGlzLmFsbEtleXM9emUub2JqZWN0cyx0aGlzLnByZWZpeGVzPXplLnByZWZpeGVzfWNhdGNoKHplKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIG9iamVjdHM6Iix6ZSksdGhpcy5hbGxLZXlzPVtdLHRoaXMucHJlZml4ZXM9W119dGhpcy5sb2FkaW5nPSExfX1oYW5kbGVGaWx0ZXJJbnB1dCh6ZSl7dGhpcy5maWx0ZXJUZXh0PXplLnRhcmdldC52YWx1ZX1zZWxlY3RLZXkoemUseGUpe3RoaXMuc2VsZWN0ZWRLZXk9emUseGU/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmF2aWdhdGUiLHtkZXRhaWw6e3ByZWZpeDp6ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKTp0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJrZXktc2VsZWN0ZWQiLHtkZXRhaWw6e2tleTp6ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXQgZmlsdGVyZWRJdGVtcygpe2xldCB6ZT10aGlzLmZpbHRlclRleHQudG9Mb3dlckNhc2UoKSx4ZT10aGlzLnByZWZpeGVzLmZpbHRlcih4dD0+IXplfHxGYSh4dCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6ZSkpLm1hcCh4dD0+KHtrZXk6eHQsaXNGb2xkZXI6ITAsc2l6ZTp2b2lkIDB9KSksTmU9dGhpcy5hbGxLZXlzLmZpbHRlcih4dD0+IXplfHxGYSh4dC5rZXkpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoemUpKS5tYXAoeHQ9Pih7a2V5Onh0LmtleSxpc0ZvbGRlcjohMSxzaXplOnh0LnNpemV9KSk7cmV0dXJuWy4uLnhlLC4uLk5lXX1oYW5kbGVJdGVtQ29udGV4dE1lbnUoemUseGUsTmUpe3RoaXMuZGF0YVByb3ZpZGVyJiYoemUucHJldmVudERlZmF1bHQoKSxOZT9rYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh6ZSxbe25hbWU6Ik9wZW4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyT3BlbiIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuc2VsZWN0S2V5KHhlLCEwKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh4ZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyh4ZSwhMCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coeGUsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJOZXcgRm9sZGVyIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZvbGRlciIseGUpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIix4ZSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZvbGRlciAiJHtGYSh4ZSl9IiBhbmQgYWxsIGl0cyBjb250ZW50cz9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlUHJlZml4KHRoaXMuYnVja2V0TmFtZSx4ZSkmJmF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX0sImFjdGlvbiIpfV0pOmthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHplLFt7bmFtZToiUHJldmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEtleSh4ZSwhMSl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57bGV0IHh0PWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmdldE9iamVjdFVybCh0aGlzLmJ1Y2tldE5hbWUseGUpLE1hPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtNYS5ocmVmPXh0LE1hLmRvd25sb2FkPUZhKHhlKSxNYS5jbGljaygpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IFBhdGgiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHhlKX0sImFjdGlvbiIpfSx7bmFtZToiUmVuYW1lIixpY29uTmFtZToibHVjaWRlOnBlbmNpbCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuUmVuYW1lRGlhbG9nKHhlLCExKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTW92ZSB0by4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJJbnB1dCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuTW92ZVBpY2tlckRpYWxvZyh4ZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25maXJtKGBEZWxldGUgZmlsZSAiJHtGYSh4ZSl9Ij9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx4ZSkmJmF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX0sImFjdGlvbiIpfV0pKX1oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoemUpe3plLnRhcmdldC5jbG9zZXN0KCJ0ciIpfHwoemUucHJldmVudERlZmF1bHQoKSxrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh6ZSxbe25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLHRoaXMuY3VycmVudFByZWZpeCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsdGhpcy5jdXJyZW50UHJlZml4KSwiYWN0aW9uIil9XSkpfW9wZW5DcmVhdGVEaWFsb2coemUseGUpe3RoaXMuY3JlYXRlRGlhbG9nVHlwZT16ZSx0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeD14ZSx0aGlzLmNyZWF0ZURpYWxvZ05hbWU9IiIsdGhpcy5zaG93Q3JlYXRlRGlhbG9nPSEwfWFzeW5jIGhhbmRsZUNyZWF0ZSgpe2lmKCF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCB6ZT10aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpLHhlO3RoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmb2xkZXIiP3hlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K3plKyIvLmtlZXAiOnhlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K3plO2xldCBOZT16ZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIix4dD10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/V2goTmUpOiJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLE1hPXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmaWxlIj9leChOZSk6IiI7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSx4ZSxidG9hKE1hKSx4dCkmJih0aGlzLnNob3dDcmVhdGVEaWFsb2c9ITEsYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKX1yZW5kZXJDcmVhdGVEaWFsb2coKXtpZighdGhpcy5zaG93Q3JlYXRlRGlhbG9nKXJldHVybiIiO2xldCB6ZT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIix4ZT16ZT8iQ3JlYXRlIE5ldyBGb2xkZXIiOiJDcmVhdGUgTmV3IEZpbGUiLE5lPXplPyJmb2xkZXItbmFtZSBvciBwYXRoL3RvL2ZvbGRlciI6ImZpbGVuYW1lLnR4dCBvciBwYXRoL3RvL2ZpbGUudHh0IjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7eHQ9Pnh0LnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHt4ZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHt0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7TmV9CiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuY3JlYXRlRGlhbG9nTmFtZX0KICAgICAgICAgICAgQGlucHV0PSR7eHQ9PnRoaXMuY3JlYXRlRGlhbG9nTmFtZT14dC50YXJnZXQudmFsdWV9CiAgICAgICAgICAgIEBrZXlkb3duPSR7eHQ9Pnh0LmtleT09PSJFbnRlciImJnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWhpbnQiPgogICAgICAgICAgICBVc2UgIi8iIHRvIGNyZWF0ZSBuZXN0ZWQgJHt6ZT8iZm9sZGVycyI6InBhdGgifSAoZS5nLiwgJHt6ZT8icGFyZW50L2NoaWxkIjoiZm9sZGVyL2ZpbGUudHh0In0pCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCl9CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBDcmVhdGUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIG9wZW5Nb3ZlUGlja2VyRGlhbG9nKHplLHhlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2U9e2tleTp6ZSxpc0ZvbGRlcjp4ZX0sdGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD0iIix0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSEwLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcygiIil9YXN5bmMgbmF2aWdhdGVNb3ZlUGlja2VyKHplKXt0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PXplLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcyh6ZSl9YXN5bmMgbG9hZE1vdmVQaWNrZXJQcmVmaXhlcyh6ZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubW92ZVBpY2tlckxvYWRpbmc9ITA7dHJ5e2xldCB4ZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsemUsIi8iKTt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz14ZS5wcmVmaXhlc31jYXRjaHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1bXX10aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSExfX1zZWxlY3RNb3ZlRGVzdGluYXRpb24oemUpe3RoaXMubW92ZVBpY2tlclNvdXJjZSYmKHRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCksdGhpcy5pbml0aWF0ZU1vdmUodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSx0aGlzLm1vdmVQaWNrZXJTb3VyY2UuaXNGb2xkZXIsemUpKX1jbG9zZU1vdmVQaWNrZXJEaWFsb2coKXt0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSExLHRoaXMubW92ZVBpY2tlclNvdXJjZT1udWxsLHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119aW5pdGlhdGVNb3ZlKHplLHhlLE5lKXtsZXQgeHQ9SnYoemUsTmUpO2lmKCF4dC52YWxpZCl7dGhpcy5tb3ZlU291cmNlPXtrZXk6emUsaXNGb2xkZXI6eGV9LHRoaXMubW92ZURlc3RpbmF0aW9uPU5lLHRoaXMubW92ZUVycm9yPXh0LmVycm9yLHRoaXMuc2hvd01vdmVEaWFsb2c9ITA7cmV0dXJufXRoaXMubW92ZVNvdXJjZT17a2V5OnplLGlzRm9sZGVyOnhlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1OZSx0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMuc2hvd01vdmVEaWFsb2c9ITB9YXN5bmMgZXhlY3V0ZU1vdmUoKXtpZighKCF0aGlzLm1vdmVTb3VyY2V8fCF0aGlzLmRhdGFQcm92aWRlcikpe3RoaXMubW92ZUluUHJvZ3Jlc3M9ITA7dHJ5e2xldCB6ZT1GYSh0aGlzLm1vdmVTb3VyY2Uua2V5KSx4ZT10aGlzLm1vdmVEZXN0aW5hdGlvbit6ZSxOZTt0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/TmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSx4ZSk6TmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSx4ZSksTmUuc3VjY2Vzcz8odGhpcy5jbG9zZU1vdmVEaWFsb2coKSxhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCkpOnRoaXMubW92ZUVycm9yPU5lLmVycm9yfHwiTW92ZSBvcGVyYXRpb24gZmFpbGVkIn1jYXRjaCh6ZSl7dGhpcy5tb3ZlRXJyb3I9YEVycm9yOiAke3plfWB9dGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMX19Y2xvc2VNb3ZlRGlhbG9nKCl7dGhpcy5zaG93TW92ZURpYWxvZz0hMSx0aGlzLm1vdmVTb3VyY2U9bnVsbCx0aGlzLm1vdmVEZXN0aW5hdGlvbj0iIix0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9b3BlblJlbmFtZURpYWxvZyh6ZSx4ZSl7dGhpcy5yZW5hbWVTb3VyY2U9e2tleTp6ZSxpc0ZvbGRlcjp4ZX0sdGhpcy5yZW5hbWVOYW1lPUZhKHplKSx0aGlzLnJlbmFtZUVycm9yPW51bGwsdGhpcy5zaG93UmVuYW1lRGlhbG9nPSEwLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBOZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5yZW5hbWUtZGlhbG9nLWlucHV0Iik7aWYoTmUpaWYoTmUuZm9jdXMoKSx4ZSlOZS5zZWxlY3QoKTtlbHNle2xldCB4dD10aGlzLnJlbmFtZU5hbWUubGFzdEluZGV4T2YoIi4iKTt4dD4wP05lLnNldFNlbGVjdGlvblJhbmdlKDAseHQpOk5lLnNlbGVjdCgpfX0pfWFzeW5jIGV4ZWN1dGVSZW5hbWUoKXtpZighdGhpcy5yZW5hbWVTb3VyY2V8fCF0aGlzLnJlbmFtZU5hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCB6ZT10aGlzLnJlbmFtZU5hbWUudHJpbSgpLHhlPUZhKHRoaXMucmVuYW1lU291cmNlLmtleSk7aWYoemU9PT14ZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBpcyB0aGUgc2FtZSBhcyBjdXJyZW50IjtyZXR1cm59aWYoIXplKXt0aGlzLnJlbmFtZUVycm9yPSJOYW1lIGNhbm5vdCBiZSBlbXB0eSI7cmV0dXJufWlmKHplLmluY2x1ZGVzKCIvIikpe3RoaXMucmVuYW1lRXJyb3I9J05hbWUgY2Fubm90IGNvbnRhaW4gIi8iJztyZXR1cm59dGhpcy5yZW5hbWVJblByb2dyZXNzPSEwLHRoaXMucmVuYW1lRXJyb3I9bnVsbDt0cnl7bGV0IHh0PWwyKHRoaXMucmVuYW1lU291cmNlLmtleSkremUrKHRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyPyIvIjoiIiksTWE7dGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI/TWE9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LHh0KTpNYT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLnJlbmFtZVNvdXJjZS5rZXkseHQpLE1hLnN1Y2Nlc3M/KHRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKSxhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCkpOnRoaXMucmVuYW1lRXJyb3I9TWEuZXJyb3J8fCJSZW5hbWUgZmFpbGVkIn1jYXRjaChOZSl7dGhpcy5yZW5hbWVFcnJvcj1gRXJyb3I6ICR7TmV9YH10aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9Y2xvc2VSZW5hbWVEaWFsb2coKXt0aGlzLnNob3dSZW5hbWVEaWFsb2c9ITEsdGhpcy5yZW5hbWVTb3VyY2U9bnVsbCx0aGlzLnJlbmFtZU5hbWU9IiIsdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMX1yZW5kZXJSZW5hbWVEaWFsb2coKXtpZighdGhpcy5zaG93UmVuYW1lRGlhbG9nfHwhdGhpcy5yZW5hbWVTb3VyY2UpcmV0dXJuIiI7bGV0IHplPXRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHtOZT0+TmUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj4ke3plPyJSZW5hbWUgRm9sZGVyIjoiUmVuYW1lIEZpbGUifTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWxvY2F0aW9uIj4KICAgICAgICAgICAgTG9jYXRpb246ICR7dGhpcy5idWNrZXROYW1lfS8ke2wyKHRoaXMucmVuYW1lU291cmNlLmtleSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5hbWVFcnJvcj93YDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5yZW5hbWVFcnJvcn08L2Rpdj5gOiIifQogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQgcmVuYW1lLWRpYWxvZy1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHt6ZT8iZm9sZGVyLW5hbWUiOiJmaWxlbmFtZS5leHQifQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnJlbmFtZU5hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke05lPT57dGhpcy5yZW5hbWVOYW1lPU5lLnRhcmdldC52YWx1ZSx0aGlzLnJlbmFtZUVycm9yPW51bGx9fQogICAgICAgICAgICBAa2V5ZG93bj0ke05lPT57TmUua2V5PT09IkVudGVyIiYmdGhpcy5leGVjdXRlUmVuYW1lKCksTmUua2V5PT09IkVzY2FwZSImJnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX19CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlUmVuYW1lKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKX0+CiAgICAgICAgICAgICAgJHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3M/IlJlbmFtaW5nLi4uIjoiUmVuYW1lIn0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1vdmVEaWFsb2coKXtpZighdGhpcy5zaG93TW92ZURpYWxvZ3x8IXRoaXMubW92ZVNvdXJjZSlyZXR1cm4iIjtsZXQgemU9RmEodGhpcy5tb3ZlU291cmNlLmtleSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHt4ZT0+eGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICR7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyPyJGb2xkZXIiOiJGaWxlIn08L2Rpdj4KCiAgICAgICAgICAke3RoaXMubW92ZUVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5tb3ZlRXJyb3J9PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtc3VtbWFyeSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Gcm9tOjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLXBhdGgiPiR7dGhpcy5tb3ZlU291cmNlLmtleX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Ubzo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZURlc3RpbmF0aW9ufSR7emV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj8iIjp3YAogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlTW92ZSgpfQogICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlSW5Qcm9ncmVzc30+CiAgICAgICAgICAgICAgICAke3RoaXMubW92ZUluUHJvZ3Jlc3M/Ik1vdmluZy4uLiI6Ik1vdmUifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlUGlja2VyRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2d8fCF0aGlzLm1vdmVQaWNrZXJTb3VyY2UpcmV0dXJuIiI7bGV0IHplPUZhKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLHhlPWwyKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyBtb3ZlLXBpY2tlci1kaWFsb2ciIEBjbGljaz0ke05lPT5OZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPk1vdmUgIiR7emV9IiB0by4uLjwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1icmVhZGNydW1iIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCIiKX0+CiAgICAgICAgICAgICAgJHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgJHt5Zyh0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4KS5tYXAoTmU9PndgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKE5lKX0+CiAgICAgICAgICAgICAgICAke0ZhKE5lKX0KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWxpc3QiPgogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlckxvYWRpbmc/d2A8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPkxvYWRpbmcuLi48L2Rpdj5gOiIifQogICAgICAgICAgICAkeyF0aGlzLm1vdmVQaWNrZXJMb2FkaW5nJiZ0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoTmU9Pk5lIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1lbXB0eSI+Tm8gc3ViZm9sZGVyczwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlclByZWZpeGVzLmZpbHRlcihOZT0+TmUhPT10aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KS5tYXAoTmU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItaXRlbSIKICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKE5lKX0KICAgICAgICAgICAgICAgICAgICAgQGRibGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKE5lKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke0ZhKE5lKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RNb3ZlRGVzdGluYXRpb24odGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD09PXhlfT4KICAgICAgICAgICAgICBNb3ZlIEhlcmUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJrZXlzLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWJhciI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9ImZpbHRlci1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkZpbHRlciBmaWxlcy4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5maWx0ZXJUZXh0fQogICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUZpbHRlcklucHV0fQogICAgICAgICAgLz4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ia2V5cy1saXN0IiBAY29udGV4dG1lbnU9JHt6ZT0+dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoemUpfT4KICAgICAgICAgICR7dGhpcy5sb2FkaW5nP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPkxvYWRpbmcuLi48L2Rpdj5gOnRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIG9iamVjdHMgZm91bmQ8L2Rpdj5gOndgCiAgICAgICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDogMTAwcHg7Ij5TaXplPC90aD4KICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyZWRJdGVtcy5tYXAoemU9PndgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLnNlbGVjdGVkS2V5PT09emUua2V5PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0S2V5KHplLmtleSx6ZS5pc0ZvbGRlcil9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHt4ZT0+dGhpcy5oYW5kbGVJdGVtQ29udGV4dE1lbnUoeGUsemUua2V5LHplLmlzRm9sZGVyKX0KICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtleS1jZWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3plLmlzRm9sZGVyP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ia2V5LWljb24gZm9sZGVyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImtleS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2V5LW5hbWUiPiR7RmEoemUua2V5KX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ic2l6ZS1jZWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt6ZS5pc0ZvbGRlcj8iLSI6UXYoemUuc2l6ZSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckNyZWF0ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZVBpY2tlckRpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyUmVuYW1lRGlhbG9nKCl9CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxxdCh0aGlzLHRpKX1zdGF0aWN7cXQoYSx0KX19O3JldHVybiBhaT1hfSkoKX0pO3ZhciAkbCxacyxBbWEsaml0PWcoKCk9PntwZSgpO3B0KCk7S1goKTskbD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sWnM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEFtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtc3RvcmFnZS1wcmV2aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdO3ZhciBpZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VQcmV2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHRlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W1koKV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0sJGwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJkYXRhUHJvdmlkZXIiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5kYXRhUHJvdmlkZXI9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LG8sbCksJGwodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iYnVja2V0TmFtZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmJ1Y2tldE5hbWUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5idWNrZXROYW1lPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxkLHUpLCRsKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib2JqZWN0S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ib2JqZWN0S2V5ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUub2JqZWN0S2V5LCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUub2JqZWN0S2V5PWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxiLHYpLCRsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImxvYWRpbmciaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUubG9hZGluZz1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sbSxmKSwkbCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNhdmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InNhdmluZyJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNhdmluZywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLnNhdmluZz1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sTSx6KSwkbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJjb250ZW50ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuY29udGVudCwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmNvbnRlbnQ9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEMsXyksJGwodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbFRleHRDb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ib3JpZ2luYWxUZXh0Q29udGVudCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm9yaWdpbmFsVGV4dENvbnRlbnQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5vcmlnaW5hbFRleHRDb250ZW50PWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSwkLEUpLCRsKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Imhhc0NoYW5nZXMiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5oYXNDaGFuZ2VzLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuaGFzQ2hhbmdlcz1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sayxTKSwkbCh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlZGl0aW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZWRpdGluZywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmVkaXRpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LFAsUiksJGwodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImNvbnRlbnRUeXBlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuY29udGVudFR5cGUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5jb250ZW50VHlwZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sVixXKSwkbCh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImZpbGVTaXplImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZmlsZVNpemUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5maWxlU2l6ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sQixVKSwkbCh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYXN0TW9kaWZpZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJsYXN0TW9kaWZpZWQiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5sYXN0TW9kaWZpZWQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5sYXN0TW9kaWZpZWQ9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEYsaiksJGwodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlcnJvciJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmVycm9yLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuZXJyb3I9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGxlLFEpLCRsKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnRlfSxudWxsLHQpLGllPWE9ZS52YWx1ZSx0ZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0ZX0pfSNlPVpzKHRoaXMsbyxudWxsKTtnZXQgZGF0YVByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGFQcm92aWRlcih0ZSl7dGhpcy4jZT10ZX0jdD0oWnModGhpcyxsKSxacyh0aGlzLGQsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKHRlKXt0aGlzLiN0PXRlfSNhPShacyh0aGlzLHUpLFpzKHRoaXMsYiwiIikpO2dldCBvYmplY3RLZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb2JqZWN0S2V5KHRlKXt0aGlzLiNhPXRlfSNzPShacyh0aGlzLHYpLFpzKHRoaXMsbSwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvYWRpbmcodGUpe3RoaXMuI3M9dGV9I2k9KFpzKHRoaXMsZiksWnModGhpcyxNLCExKSk7Z2V0IHNhdmluZygpe3JldHVybiB0aGlzLiNpfXNldCBzYXZpbmcodGUpe3RoaXMuI2k9dGV9I3I9KFpzKHRoaXMseiksWnModGhpcyxDLCIiKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGVudCh0ZSl7dGhpcy4jcj10ZX0jbz0oWnModGhpcyxfKSxacyh0aGlzLCQsIiIpKTtnZXQgb3JpZ2luYWxUZXh0Q29udGVudCgpe3JldHVybiB0aGlzLiNvfXNldCBvcmlnaW5hbFRleHRDb250ZW50KHRlKXt0aGlzLiNvPXRlfSNuPShacyh0aGlzLEUpLFpzKHRoaXMsaywhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI259c2V0IGhhc0NoYW5nZXModGUpe3RoaXMuI249dGV9I2w9KFpzKHRoaXMsUyksWnModGhpcyxQLCExKSk7Z2V0IGVkaXRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZWRpdGluZyh0ZSl7dGhpcy4jbD10ZX0jYz0oWnModGhpcyxSKSxacyh0aGlzLFYsIiIpKTtnZXQgY29udGVudFR5cGUoKXtyZXR1cm4gdGhpcy4jY31zZXQgY29udGVudFR5cGUodGUpe3RoaXMuI2M9dGV9I2Q9KFpzKHRoaXMsVyksWnModGhpcyxCLDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZmlsZVNpemUodGUpe3RoaXMuI2Q9dGV9I3U9KFpzKHRoaXMsVSksWnModGhpcyxGLCIiKSk7Z2V0IGxhc3RNb2RpZmllZCgpe3JldHVybiB0aGlzLiN1fXNldCBsYXN0TW9kaWZpZWQodGUpe3RoaXMuI3U9dGV9I3A9KFpzKHRoaXMsaiksWnModGhpcyxsZSwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNwfXNldCBlcnJvcih0ZSl7dGhpcy4jcD10ZX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSGUsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJldmlldy1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLm1ldGEtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQgZGVlcy1wcmV2aWV3IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQuY29kZS1lZGl0b3IgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGVudC5jb2RlLWVkaXRvciBkZWVzLWlucHV0LWNvZGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctYWN0aW9ucyB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQwNDA0MCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIpOwogICAgICAgIGJvcmRlci1jb2xvcjogI2VmNDQ0NDsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICBib3JkZXItY29sb3I6ICMzYjgyZjY7CiAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5OmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAudW5zYXZlZC1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MSwgMTkxLCAzNiwgMC4xKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1MSwgMTkxLCAzNiwgMC4zKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAudW5zYXZlZC1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBzdmcgewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLmVycm9yLXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQogICAgYF07dXBkYXRlZCh0ZSl7KHRlLmhhcygib2JqZWN0S2V5Iil8fHRlLmhhcygiYnVja2V0TmFtZSIpKSYmKHRoaXMub2JqZWN0S2V5P3RoaXMubG9hZE9iamVjdCgpOih0aGlzLmNvbnRlbnQ9IiIsdGhpcy5jb250ZW50VHlwZT0iIix0aGlzLmVycm9yPSIiLHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD0iIix0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExKSl9YXN5bmMgbG9hZE9iamVjdCgpe2lmKCEoIXRoaXMub2JqZWN0S2V5fHwhdGhpcy5idWNrZXROYW1lfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0iIix0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExO3RyeXtsZXQgdGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZ2V0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSk7aWYoIXRlKXt0aGlzLmVycm9yPSJPYmplY3Qgbm90IGZvdW5kIix0aGlzLmxvYWRpbmc9ITE7cmV0dXJufXRoaXMuY29udGVudD10ZS5jb250ZW50fHwiIix0aGlzLmNvbnRlbnRUeXBlPXRlLmNvbnRlbnRUeXBlfHwiIix0aGlzLmZpbGVTaXplPXRlLnNpemV8fDAsdGhpcy5sYXN0TW9kaWZpZWQ9dGUubGFzdE1vZGlmaWVkfHwiIix0aGlzLmlzVGV4dCgpJiYodGhpcy5vcmlnaW5hbFRleHRDb250ZW50PXRoaXMuZ2V0VGV4dENvbnRlbnQoKSl9Y2F0Y2godGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgb2JqZWN0OiIsdGUpLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIG9iamVjdCJ9dGhpcy5sb2FkaW5nPSExfX1mb3JtYXREYXRlKHRlKXtyZXR1cm4gdGU/bmV3IERhdGUodGUpLnRvTG9jYWxlU3RyaW5nKCk6Ii0ifWlzSW1hZ2UoKXtyZXR1cm4gdGhpcy5jb250ZW50VHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKX1pc1RleHQoKXtyZXR1cm4gdGhpcy5jb250ZW50VHlwZS5zdGFydHNXaXRoKCJ0ZXh0LyIpfHx0aGlzLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL2pzb24ifHx0aGlzLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL3htbCJ8fHRoaXMuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCJ9Z2V0VGV4dENvbnRlbnQoKXt0cnl7bGV0IHRlPWF0b2IodGhpcy5jb250ZW50KSxlZT1uZXcgVWludDhBcnJheSh0ZS5sZW5ndGgpO2ZvcihsZXQga2U9MDtrZTx0ZS5sZW5ndGg7a2UrKyllZVtrZV09dGUuY2hhckNvZGVBdChrZSk7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigidXRmLTgiKS5kZWNvZGUoZWUpfWNhdGNoe3JldHVybiJVbmFibGUgdG8gZGVjb2RlIGNvbnRlbnQifX1hc3luYyBoYW5kbGVEb3dubG9hZCgpe3RyeXtsZXQgdGU9bmV3IEJsb2IoW1VpbnQ4QXJyYXkuZnJvbShhdG9iKHRoaXMuY29udGVudCksWD0+WC5jaGFyQ29kZUF0KDApKV0se3R5cGU6dGhpcy5jb250ZW50VHlwZX0pLGVlPVVSTC5jcmVhdGVPYmplY3RVUkwodGUpLGtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtrZS5ocmVmPWVlLGtlLmRvd25sb2FkPUZhKHRoaXMub2JqZWN0S2V5KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGtlKSxrZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoa2UpLFVSTC5yZXZva2VPYmplY3RVUkwoZWUpfWNhdGNoKHRlKXtjb25zb2xlLmVycm9yKCJFcnJvciBkb3dubG9hZGluZzoiLHRlKX19YXN5bmMgaGFuZGxlRGVsZXRlKCl7aWYodGhpcy5kYXRhUHJvdmlkZXImJmNvbmZpcm0oYERlbGV0ZSAiJHtGYSh0aGlzLm9iamVjdEtleSl9Ij9gKSl0cnl7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JqZWN0LWRlbGV0ZWQiLHtkZXRhaWw6e2tleTp0aGlzLm9iamVjdEtleX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaCh0ZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVsZXRpbmcgb2JqZWN0OiIsdGUpfX1nZXRMYW5ndWFnZSgpe2xldCB0ZT10aGlzLm9iamVjdEtleS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIjtyZXR1cm57dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsbWpzOiJqYXZhc2NyaXB0IixjanM6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6Imh0bWwiLGh0bToiaHRtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLHNhc3M6InNjc3MiLGxlc3M6Imxlc3MiLG1kOiJtYXJrZG93biIsbWFya2Rvd246Im1hcmtkb3duIix4bWw6InhtbCIseWFtbDoieWFtbCIseW1sOiJ5YW1sIixweToicHl0aG9uIixyYjoicnVieSIsZ286ImdvIixyczoicnVzdCIsamF2YToiamF2YSIsYzoiYyIsY3BwOiJjcHAiLGg6ImMiLGhwcDoiY3BwIixjczoiY3NoYXJwIixwaHA6InBocCIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCIsenNoOiJzaGVsbCIsc3FsOiJzcWwiLGdyYXBocWw6ImdyYXBocWwiLGdxbDoiZ3JhcGhxbCIsZG9ja2VyZmlsZToiZG9ja2VyZmlsZSIsdHh0OiJwbGFpbnRleHQifVt0ZV18fCJwbGFpbnRleHQifWhhbmRsZUNvbnRlbnRDaGFuZ2UodGUpe2xldCBlZT10ZS5kZXRhaWw7dGhpcy5oYXNDaGFuZ2VzPWVlIT09dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fWhhbmRsZUVkaXQoKXt0aGlzLmVkaXRpbmc9ITB9aGFuZGxlRGlzY2FyZCgpe2xldCB0ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtY29kZSIpO3RlJiYodGUudmFsdWU9dGhpcy5vcmlnaW5hbFRleHRDb250ZW50KSx0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExfWFzeW5jIGhhbmRsZVNhdmUoKXtpZighKCF0aGlzLmhhc0NoYW5nZXN8fHRoaXMuc2F2aW5nfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLnNhdmluZz0hMDt0cnl7bGV0IGVlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1jb2RlIik/LnZhbHVlPz8iIixYPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlZSksWj1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4uWCkpO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5vYmplY3RLZXksWix0aGlzLmNvbnRlbnRUeXBlKSYmKHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD1lZSx0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExLHRoaXMuY29udGVudD1aKX1jYXRjaCh0ZSl7Y29uc29sZS5lcnJvcigiRXJyb3Igc2F2aW5nIG9iamVjdDoiLHRlKX10aGlzLnNhdmluZz0hMX19cmVuZGVyKCl7cmV0dXJuIHRoaXMub2JqZWN0S2V5P3RoaXMubG9hZGluZz93YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3RhdGUiPkxvYWRpbmcuLi48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDp0aGlzLmVycm9yP3dgCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itc3RhdGUiPiR7dGhpcy5lcnJvcn08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy10aXRsZSI+JHtGYSh0aGlzLm9iamVjdEtleSl9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LW1ldGEiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS1pdGVtIj4ke3RoaXMuY29udGVudFR5cGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS1pdGVtIj4ke1F2KHRoaXMuZmlsZVNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtaXRlbSI+JHt0aGlzLmZvcm1hdERhdGUodGhpcy5sYXN0TW9kaWZpZWQpfTwvc3Bhbj4KICAgICAgICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idW5zYXZlZC1pbmRpY2F0b3IiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVuc2F2ZWQtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICAgICBVbnNhdmVkIGNoYW5nZXMKICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250ZW50ICR7dGhpcy5lZGl0aW5nPyJjb2RlLWVkaXRvciI6IiJ9Ij4KICAgICAgICAgICR7dGhpcy5lZGl0aW5nP3dgCiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jb2RlCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMub3JpZ2luYWxUZXh0Q29udGVudH0KICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5nZXRMYW5ndWFnZSgpfQogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RlPT50aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2UodGUpfQogICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogICAgICAgICAgICAgIGA6dGhpcy5pc1RleHQoKT93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLnRleHRDb250ZW50PSR7dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5maWxlbmFtZT0ke0ZhKHRoaXMub2JqZWN0S2V5KX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlKCl9CiAgICAgICAgICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7ITB9CiAgICAgICAgICAgICAgICAgICAgLnNob3dGaWxlbmFtZT0keyExfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICAgICAgICAgICAgICAuYmFzZTY0PSR7dGhpcy5jb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5taW1lVHlwZT0ke3RoaXMuY29udGVudFR5cGV9CiAgICAgICAgICAgICAgICAgICAgLmZpbGVuYW1lPSR7RmEodGhpcy5vYmplY3RLZXkpfQogICAgICAgICAgICAgICAgICAgIC5zaG93VG9vbGJhcj0keyEwfQogICAgICAgICAgICAgICAgICAgIC5zaG93RmlsZW5hbWU9JHshMX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5lZGl0aW5nP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIHNlY29uZGFyeSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEaXNjYXJkfT4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/IkRpc2NhcmQiOiJDYW5jZWwifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24tYnRuIHByaW1hcnkiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2F2ZX0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5zYXZpbmd8fCF0aGlzLmhhc0NoYW5nZXN9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zYXZpbmc/IlNhdmluZy4uLiI6IlNhdmUifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgJHt0aGlzLmlzVGV4dCgpP3dgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biIgQGNsaWNrPSR7dGhpcy5oYW5kbGVFZGl0fT5FZGl0PC9idXR0b24+YDoiIn0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idG4iIEBjbGljaz0ke3RoaXMuaGFuZGxlRG93bmxvYWR9PkRvd25sb2FkPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIGRhbmdlciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEZWxldGV9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8cD5TZWxlY3QgYSBmaWxlIHRvIHByZXZpZXc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWnModGhpcyxRKX1zdGF0aWN7WnMoYSx0KX19O3JldHVybiBpZT1hfSkoKX0pO3ZhciBLYywkaSxObWEsQml0PWcoKCk9PntwZSgpO3B0KCk7TG1hKCk7SGl0KCk7cWl0KCk7aml0KCk7S2M9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LCRpPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxObWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0b3JhZ2UtYnJvd3NlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXTt2YXIgaGU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlQnJvd3NlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBGPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6T2JqZWN0fSldLHg9W1koKV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0sS2ModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImRhdGFQcm92aWRlciJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmRhdGFQcm92aWRlciwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5kYXRhUHJvdmlkZXI9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sbyxsKSxLYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1Y2tldE5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImJ1Y2tldE5hbWUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5idWNrZXROYW1lLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmJ1Y2tldE5hbWU9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sZCx1KSxLYyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9uQ2hhbmdlRXZlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+Im9uQ2hhbmdlRXZlbnQiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5vbkNoYW5nZUV2ZW50LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLm9uQ2hhbmdlRXZlbnQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sYix2KSxLYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJ2aWV3VHlwZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnZpZXdUeXBlLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnZpZXdUeXBlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG0sZiksS2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJjdXJyZW50UHJlZml4ImluIGosImhhcyIpLGdldDppKGo9PmouY3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5jdXJyZW50UHJlZml4PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LE0seiksS2ModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2VsZWN0ZWRLZXkiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zZWxlY3RlZEtleSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5zZWxlY3RlZEtleT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxDLF8pLEtjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVmcmVzaEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4icmVmcmVzaEtleSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnJlZnJlc2hLZXksImdldCIpLHNldDppKChqLHVlKT0+e2oucmVmcmVzaEtleT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSwkLEUpLEtjKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJldmlld1dpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJwcmV2aWV3V2lkdGgiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5wcmV2aWV3V2lkdGgsImdldCIpLHNldDppKChqLHVlKT0+e2oucHJldmlld1dpZHRoPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGssUyksS2ModGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Jlc2l6aW5nUHJldmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaXNSZXNpemluZ1ByZXZpZXciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5pc1Jlc2l6aW5nUHJldmlldywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5pc1Jlc2l6aW5nUHJldmlldz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxQLFIpLEtjKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVjZW50Q2hhbmdlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InJlY2VudENoYW5nZUNvdW50ImluIGosImhhcyIpLGdldDppKGo9PmoucmVjZW50Q2hhbmdlQ291bnQsImdldCIpLHNldDppKChqLHVlKT0+e2oucmVjZW50Q2hhbmdlQ291bnQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sVixXKSxLYyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1N0cmVhbUNvbm5lY3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaXNTdHJlYW1Db25uZWN0ZWQiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5pc1N0cmVhbUNvbm5lY3RlZCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5pc1N0cmVhbUNvbm5lY3RlZD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxCLFUpLEtjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkZ9LG51bGwsdCksaGU9YT1lLnZhbHVlLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pfXN0YXRpYyBkZW1vPURtYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPSRpKHRoaXMsbyxudWxsKTtnZXQgZGF0YVByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGFQcm92aWRlcihGKXt0aGlzLiNlPUZ9I3Q9KCRpKHRoaXMsbCksJGkodGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZShGKXt0aGlzLiN0PUZ9I2E9KCRpKHRoaXMsdSksJGkodGhpcyxiLG51bGwpKTtnZXQgb25DaGFuZ2VFdmVudCgpe3JldHVybiB0aGlzLiNhfXNldCBvbkNoYW5nZUV2ZW50KEYpe3RoaXMuI2E9Rn0jcz0oJGkodGhpcyx2KSwkaSh0aGlzLG0sImNvbHVtbnMiKSk7Z2V0IHZpZXdUeXBlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZpZXdUeXBlKEYpe3RoaXMuI3M9Rn0jaT0oJGkodGhpcyxmKSwkaSh0aGlzLE0sIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNpfXNldCBjdXJyZW50UHJlZml4KEYpe3RoaXMuI2k9Rn0jcj0oJGkodGhpcyx6KSwkaSh0aGlzLEMsIiIpKTtnZXQgc2VsZWN0ZWRLZXkoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0ZWRLZXkoRil7dGhpcy4jcj1GfSNvPSgkaSh0aGlzLF8pLCRpKHRoaXMsJCwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jb31zZXQgcmVmcmVzaEtleShGKXt0aGlzLiNvPUZ9I249KCRpKHRoaXMsRSksJGkodGhpcyxrLDcwMCkpO2dldCBwcmV2aWV3V2lkdGgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcHJldmlld1dpZHRoKEYpe3RoaXMuI249Rn0jbD0oJGkodGhpcyxTKSwkaSh0aGlzLFAsITEpKTtnZXQgaXNSZXNpemluZ1ByZXZpZXcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgaXNSZXNpemluZ1ByZXZpZXcoRil7dGhpcy4jbD1GfSNjPSgkaSh0aGlzLFIpLCRpKHRoaXMsViwwKSk7Z2V0IHJlY2VudENoYW5nZUNvdW50KCl7cmV0dXJuIHRoaXMuI2N9c2V0IHJlY2VudENoYW5nZUNvdW50KEYpe3RoaXMuI2M9Rn0jZD0oJGkodGhpcyxXKSwkaSh0aGlzLEIsITEpKTtnZXQgaXNTdHJlYW1Db25uZWN0ZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNTdHJlYW1Db25uZWN0ZWQoRil7dGhpcy4jZD1GfWNoYW5nZVVuc3Vic2NyaWJlPSgkaSh0aGlzLFUpLG51bGwpO3N0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxIZSxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuYnJvd3Nlci1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzk5OSIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnZpZXctdG9nZ2xlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAudmlldy1idG4gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLnZpZXctYnRuOmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjYWFhIil9OwogICAgICB9CgogICAgICAudmlldy1idG4uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzQwNDA0MCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY29udGVudC5oYXMtcHJldmlldyB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNHB4IHZhcigtLXByZXZpZXctd2lkdGgsIDcwMHB4KTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtZGl2aWRlcjpob3ZlciwKICAgICAgLnJlc2l6ZS1kaXZpZGVyLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLm1haW4tdmlldyB7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CgogICAgICAucHJldmlldy1wYW5lbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuY29udGVudCwKICAgICAgICAuY29udGVudC5oYXMtcHJldmlldyB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CgogICAgICAgIC5wcmV2aWV3LXBhbmVsLAogICAgICAgIC5yZXNpemUtZGl2aWRlciB7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnN0cmVhbS1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zdHJlYW0tZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5zdHJlYW0tZG90LmNvbm5lY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogIzIyYzU1ZTsKICAgICAgfQoKICAgICAgLmNoYW5nZS1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICNmNTllMGI7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAuY2hhbmdlLWluZGljYXRvci5wdWxzZSB7CiAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1vcmFuZ2UgMXMgZWFzZS1pbi1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2Utb3JhbmdlIHsKICAgICAgICAwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjQpOyB9CiAgICAgICAgMTAwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpOyB9CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnN1YnNjcmliZVRvQ2hhbmdlcygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnVuc3Vic2NyaWJlRnJvbUNoYW5nZXMoKX1yZWZyZXNoKCl7dGhpcy5yZWZyZXNoS2V5Kyt9c2V0Vmlld1R5cGUoRil7dGhpcy52aWV3VHlwZT1GfW5hdmlnYXRlVG9QcmVmaXgoRil7dGhpcy5jdXJyZW50UHJlZml4PUYsdGhpcy5zZWxlY3RlZEtleT0iIn1oYW5kbGVLZXlTZWxlY3RlZChGKXt0aGlzLnNlbGVjdGVkS2V5PUYuZGV0YWlsLmtleX1oYW5kbGVOYXZpZ2F0ZShGKXt0aGlzLm5hdmlnYXRlVG9QcmVmaXgoRi5kZXRhaWwucHJlZml4KX1oYW5kbGVPYmplY3REZWxldGVkKEYpe3RoaXMuc2VsZWN0ZWRLZXk9IiIsdGhpcy5yZWZyZXNoS2V5Kyt9dXBkYXRlZChGKXtGLmhhcygiYnVja2V0TmFtZSIpJiYodGhpcy5zZWxlY3RlZEtleT0iIix0aGlzLmN1cnJlbnRQcmVmaXg9IiIsdGhpcy5yZWNlbnRDaGFuZ2VDb3VudD0wLHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpLHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCkpLEYuaGFzKCJvbkNoYW5nZUV2ZW50IikmJih0aGlzLnVuc3Vic2NyaWJlRnJvbUNoYW5nZXMoKSx0aGlzLnN1YnNjcmliZVRvQ2hhbmdlcygpKX1zdWJzY3JpYmVUb0NoYW5nZXMoKXtpZighdGhpcy5vbkNoYW5nZUV2ZW50KXt0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSExO3JldHVybn10cnl7dGhpcy5jaGFuZ2VVbnN1YnNjcmliZT10aGlzLm9uQ2hhbmdlRXZlbnQoRj0+e3RoaXMuaGFuZGxlQ2hhbmdlKEYpfSksdGhpcy5pc1N0cmVhbUNvbm5lY3RlZD0hMH1jYXRjaChGKXtjb25zb2xlLndhcm4oIltTdG9yYWdlQnJvd3Nlcl0gRmFpbGVkIHRvIHN1YnNjcmliZSB0byBjaGFuZ2VzOiIsRiksdGhpcy5pc1N0cmVhbUNvbm5lY3RlZD0hMX19dW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpe3RoaXMuY2hhbmdlVW5zdWJzY3JpYmUmJih0aGlzLmNoYW5nZVVuc3Vic2NyaWJlKCksdGhpcy5jaGFuZ2VVbnN1YnNjcmliZT1udWxsKSx0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSExfWhhbmRsZUNoYW5nZShGKXt0aGlzLnJlY2VudENoYW5nZUNvdW50KyssdGhpcy5yZWZyZXNoS2V5Kyt9c3RhcnRQcmV2aWV3UmVzaXplPWkoRj0+e0YucHJldmVudERlZmF1bHQoKSx0aGlzLmlzUmVzaXppbmdQcmV2aWV3PSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVQcmV2aWV3UmVzaXplKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmVuZFByZXZpZXdSZXNpemUpfSwic3RhcnRQcmV2aWV3UmVzaXplIik7aGFuZGxlUHJldmlld1Jlc2l6ZT1pKEY9PntpZighdGhpcy5pc1Jlc2l6aW5nUHJldmlldylyZXR1cm47bGV0IGo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuY29udGVudCIpO2lmKCFqKXJldHVybjtsZXQgdWU9ai5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxsZT1NYXRoLm1pbihNYXRoLm1heCh1ZS5yaWdodC1GLmNsaWVudFgsMjUwKSwxZTMpO3RoaXMucHJldmlld1dpZHRoPWxlfSwiaGFuZGxlUHJldmlld1Jlc2l6ZSIpO2VuZFByZXZpZXdSZXNpemU9aSgoKT0+e3RoaXMuaXNSZXNpemluZ1ByZXZpZXc9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVByZXZpZXdSZXNpemUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuZW5kUHJldmlld1Jlc2l6ZSl9LCJlbmRQcmV2aWV3UmVzaXplIik7cmVuZGVyKCl7bGV0IEY9dGhpcy5jdXJyZW50UHJlZml4P3RoaXMuY3VycmVudFByZWZpeC5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKTpbXTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYnJvd3Nlci1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUHJlZml4KCIiKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7Ri5tYXAoKGosdWUpPT57bGV0IGxlPUYuc2xpY2UoMCx1ZSsxKS5qb2luKCIvIikrIi8iO3JldHVybiB3YAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJyZWFkY3J1bWItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICAgICAgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVUb1ByZWZpeChsZSl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7an0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMub25DaGFuZ2VFdmVudD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdHJlYW0tc3RhdHVzIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RyZWFtLWRvdCAke3RoaXMuaXNTdHJlYW1Db25uZWN0ZWQ/ImNvbm5lY3RlZCI6IiJ9Ij48L3NwYW4+CiAgICAgICAgICAgICAgJHt0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPyJMaXZlIjoiT2ZmbGluZSJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgICR7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFuZ2UtaW5kaWNhdG9yIHB1bHNlIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlY2VudENoYW5nZUNvdW50fSBjaGFuZ2Uke3RoaXMucmVjZW50Q2hhbmdlQ291bnQ+MT8icyI6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy10b2dnbGUiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9InZpZXctYnRuICR7dGhpcy52aWV3VHlwZT09PSJjb2x1bW5zIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2V0Vmlld1R5cGUoImNvbHVtbnMiKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIENvbHVtbnMKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idmlldy1idG4gJHt0aGlzLnZpZXdUeXBlPT09ImtleXMiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZXRWaWV3VHlwZSgia2V5cyIpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgTGlzdAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50ICR7dGhpcy5zZWxlY3RlZEtleT8iaGFzLXByZXZpZXciOiIifSIgc3R5bGU9Ii0tcHJldmlldy13aWR0aDogJHt0aGlzLnByZXZpZXdXaWR0aH1weCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLXZpZXciPgogICAgICAgICAgICAke3RoaXMudmlld1R5cGU9PT0iY29sdW1ucyI/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtc3RvcmFnZS1jb2x1bW5zCiAgICAgICAgICAgICAgICAgICAgLmRhdGFQcm92aWRlcj0ke3RoaXMuZGF0YVByb3ZpZGVyfQogICAgICAgICAgICAgICAgICAgIC5idWNrZXROYW1lPSR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICAgICAgICAgIC5jdXJyZW50UHJlZml4PSR7dGhpcy5jdXJyZW50UHJlZml4fQogICAgICAgICAgICAgICAgICAgIC5yZWZyZXNoS2V5PSR7dGhpcy5yZWZyZXNoS2V5fQogICAgICAgICAgICAgICAgICAgIEBrZXktc2VsZWN0ZWQ9JHt0aGlzLmhhbmRsZUtleVNlbGVjdGVkfQogICAgICAgICAgICAgICAgICAgIEBuYXZpZ2F0ZT0ke3RoaXMuaGFuZGxlTmF2aWdhdGV9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtc3RvcmFnZS1jb2x1bW5zPgogICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICA8ZGVlcy1zdG9yYWdlLWtleXMKICAgICAgICAgICAgICAgICAgICAuZGF0YVByb3ZpZGVyPSR7dGhpcy5kYXRhUHJvdmlkZXJ9CiAgICAgICAgICAgICAgICAgICAgLmJ1Y2tldE5hbWU9JHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgICAgICAgICAgLmN1cnJlbnRQcmVmaXg9JHt0aGlzLmN1cnJlbnRQcmVmaXh9CiAgICAgICAgICAgICAgICAgICAgLnJlZnJlc2hLZXk9JHt0aGlzLnJlZnJlc2hLZXl9CiAgICAgICAgICAgICAgICAgICAgQGtleS1zZWxlY3RlZD0ke3RoaXMuaGFuZGxlS2V5U2VsZWN0ZWR9CiAgICAgICAgICAgICAgICAgICAgQG5hdmlnYXRlPSR7dGhpcy5oYW5kbGVOYXZpZ2F0ZX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1zdG9yYWdlLWtleXM+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnNlbGVjdGVkS2V5P3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtZGl2aWRlciAke3RoaXMuaXNSZXNpemluZ1ByZXZpZXc/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5zdGFydFByZXZpZXdSZXNpemV9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXBhbmVsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtc3RvcmFnZS1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLmRhdGFQcm92aWRlcj0ke3RoaXMuZGF0YVByb3ZpZGVyfQogICAgICAgICAgICAgICAgICAgIC5idWNrZXROYW1lPSR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICAgICAgICAgIC5vYmplY3RLZXk9JHt0aGlzLnNlbGVjdGVkS2V5fQogICAgICAgICAgICAgICAgICAgIEBvYmplY3QtZGVsZXRlZD0ke3RoaXMuaGFuZGxlT2JqZWN0RGVsZXRlZH0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1zdG9yYWdlLXByZXZpZXc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljeyRpKGEsdCl9fTtyZXR1cm4gaGU9YX0pKCl9KTt2YXIgUm1hPWcoKCk9Pnt9KTt2YXIgT21hPWcoKCk9PntCaXQoKTtIaXQoKTtxaXQoKTtqaXQoKTtSbWEoKTtLWCgpfSk7dmFyIEZtYT1nKCgpPT57a21hKCk7VG1hKCk7a2l0KCk7JG1hKCk7T21hKCl9KTt2YXIgWVgseHUsQm1hLGUxZT1nKCgpPT57cGUoKTtwdCgpO1VhKCk7WVg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHh1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxCbWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFjdGlvbmJhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQWN0aW9uYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bWSgpXSxZWCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImN1cnJlbnRCYXIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jdXJyZW50QmFyLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouY3VycmVudEJhcj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksWVgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lUmVtYWluaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0aW1lUmVtYWluaW5nImluIHosImhhcyIpLGdldDppKHo9PnoudGltZVJlbWFpbmluZywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnRpbWVSZW1haW5pbmc9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLFlYKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3NQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJwcm9ncmVzc1BlcmNlbnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wcm9ncmVzc1BlcmNlbnQsImdldCIpLHNldDppKCh6LE4pPT57ei5wcm9ncmVzc1BlcmNlbnQ9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLFlYKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc1Zpc2libGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pc1Zpc2libGUsImdldCIpLHNldDppKCh6LE4pPT57ei5pc1Zpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLFlYKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgZGVtbz1pKCgpPT57bGV0IE09aShfPT5fLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmRlbW8tY29udGFpbmVyIik/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYWN0aW9uYmFyIiksImdldEFjdGlvbmJhciIpO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAzMDBweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAuZGVtby1jb250ZW50IHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250ZW50Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHtpKGFzeW5jIF89PntsZXQgTz1NKF8pO2lmKCFPKXJldHVybjtsZXQgJD1hd2FpdCBPLnNob3coe21lc3NhZ2U6IkZpbGUgY2hhbmdlZCBleHRlcm5hbGx5LiBSZWxvYWQ/Iix0eXBlOiJ3YXJuaW5nIixpY29uOiJsdWNpZGU6YWxlcnRUcmlhbmdsZSIsYWN0aW9uczpbe2lkOiJyZWxvYWQiLGxhYmVsOiJSZWxvYWQiLHByaW1hcnk6ITB9LHtpZDoiaWdub3JlIixsYWJlbDoiSWdub3JlIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjVlMyxkZWZhdWx0QWN0aW9uSWQ6InJlbG9hZCJ9LGRpc21pc3NpYmxlOiEwfSk7Y29uc29sZS5sb2coIkFjdGlvbiBiYXIgcmVzdWx0OiIsJCl9LCJzaG93QWN0aW9uQmFyIil9Pldhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2koYXN5bmMgXz0+e2xldCBPPU0oXyk7aWYoIU8pcmV0dXJuO2xldCAkPWF3YWl0IE8uc2hvdyh7bWVzc2FnZToiUHJvY2VzcyBmYWlsZWQgd2l0aCBleGl0IGNvZGUgMSIsdHlwZToiZXJyb3IiLGljb246Imx1Y2lkZTp4Q2lyY2xlIixhY3Rpb25zOlt7aWQ6InJldHJ5IixsYWJlbDoiUmV0cnkiLHByaW1hcnk6ITB9LHtpZDoiZGlzbWlzcyIsbGFiZWw6IkRpc21pc3MifV0sdGltZW91dDp7ZHVyYXRpb246MWU0LGRlZmF1bHRBY3Rpb25JZDoiZGlzbWlzcyJ9fSk7Y29uc29sZS5sb2coIkVycm9yIGJhciByZXN1bHQ6IiwkKX0sInNob3dFcnJvckJhciIpfT5FcnJvcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7aShhc3luYyBfPT57bGV0IE89TShfKTtpZighTylyZXR1cm47bGV0ICQ9YXdhaXQgTy5zaG93KHttZXNzYWdlOiJTYXZlIGNoYW5nZXMgYmVmb3JlIGNsb3Npbmc/Iix0eXBlOiJxdWVzdGlvbiIsaWNvbjoibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbnM6W3tpZDoic2F2ZSIsbGFiZWw6IlNhdmUiLHByaW1hcnk6ITB9LHtpZDoiZGlzY2FyZCIsbGFiZWw6IkRpc2NhcmQifSx7aWQ6ImNhbmNlbCIsbGFiZWw6IkNhbmNlbCJ9XX0pO2NvbnNvbGUubG9nKCJRdWVzdGlvbiBiYXIgcmVzdWx0OiIsJCl9LCJzaG93UXVlc3Rpb25CYXIiKX0+UXVlc3Rpb248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICA8L2Rpdj4KICAgIGB9LCJkZW1vIik7cXVldWU9W107I2U9eHUodGhpcyxvLG51bGwpO2dldCBjdXJyZW50QmFyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRCYXIoTSl7dGhpcy4jZT1NfSN0PSh4dSh0aGlzLGwpLHh1KHRoaXMsZCwwKSk7Z2V0IHRpbWVSZW1haW5pbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGltZVJlbWFpbmluZyhNKXt0aGlzLiN0PU19I2E9KHh1KHRoaXMsdSkseHUodGhpcyxiLDEwMCkpO2dldCBwcm9ncmVzc1BlcmNlbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcHJvZ3Jlc3NQZXJjZW50KE0pe3RoaXMuI2E9TX0jcz0oeHUodGhpcyx2KSx4dSh0aGlzLG0sITEpKTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzVmlzaWJsZShNKXt0aGlzLiNzPU19dGltZW91dEludGVydmFsPSh4dSh0aGlzLGYpLG51bGwpO2N1cnJlbnRSZXNvbHZlPW51bGw7c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjJzIGVhc2Utb3V0OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICB9CgogICAgICA6aG9zdCgudmlzaWJsZSkgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1jb250ZW50IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAubWVzc2FnZS1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uaW5mbyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ucXVlc3Rpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmFjdGlvbnMtc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAzMCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDU1JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQwJSkiLCJoc2woMzggOTIlIDQ1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNDUlKSIsImhzbCgyNzAgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb3VudGRvd24gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIyJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IE09dGhpcy5jdXJyZW50QmFyLHo9TT8udHlwZXx8ImluZm8iLE49TT8udGltZW91dCYmdGhpcy50aW1lUmVtYWluaW5nPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1pdGVtIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25iYXItY29udGVudCI+CiAgICAgICAgICAke00/d2AKICAgICAgICAgICAgJHtOP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2dyZXNzLWJhci1maWxsICR7en0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnByb2dyZXNzUGVyY2VudH0lIgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHtNLmljb24/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtZXNzYWdlLWljb24gJHt6fSIKICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke00uaWNvbn0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTYiCiAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVzc2FnZS10ZXh0Ij4ke00ubWVzc2FnZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICR7TS5hY3Rpb25zLm1hcChDPT50aGlzLnJlbmRlckFjdGlvbkJ1dHRvbihDLE0sTikpfQogICAgICAgICAgICAgICAgJHtNLmRpc21pc3NpYmxlP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzbWlzcy1idXR0b24iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGlzbWlzcygpfQogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJEaXNtaXNzIgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uQnV0dG9uKE0seixOKXtsZXQgQz1NLnByaW1hcnksXz16LnR5cGV8fCJpbmZvIixPPXoudGltZW91dD8uZGVmYXVsdEFjdGlvbklkPT09TS5pZCwkPU4mJk8sRT1NYXRoLmNlaWwodGhpcy50aW1lUmVtYWluaW5nLzFlMyk7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0iYWN0aW9uLWJ1dHRvbiAke0M/YHByaW1hcnkgJHtffWA6InNlY29uZGFyeSJ9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihNLmlkLCExKX0KICAgICAgPgogICAgICAgICR7TS5pY29uP3dgCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7TS5pY29ufSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4+JHtNLmxhYmVsfTwvc3Bhbj4KICAgICAgICAkeyQ/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudGRvd24iPigke0V9cyk8L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9idXR0b24+CiAgICBgfWFzeW5jIHNob3coTSl7cmV0dXJuIG5ldyBQcm9taXNlKHo9Pnt0aGlzLnF1ZXVlLnB1c2goe29wdGlvbnM6TSxyZXNvbHZlOnp9KSx0aGlzLmN1cnJlbnRCYXJ8fHRoaXMucHJvY2Vzc1F1ZXVlKCl9KX1kaXNtaXNzKCl7dGhpcy5oYW5kbGVEaXNtaXNzKCl9Y2xlYXJRdWV1ZSgpe2ZvcihsZXQgTSBvZiB0aGlzLnF1ZXVlKU0ucmVzb2x2ZSh7YWN0aW9uSWQ6ImRpc21pc3NlZCIsdGltZWRPdXQ6ITF9KTt0aGlzLnF1ZXVlPVtdfWFzeW5jIGhpZGVDdXJyZW50QmFyKCl7dGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIiksdGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2UoTT0+c2V0VGltZW91dChNLDIyMCkpLHRoaXMuY3VycmVudEJhcj1udWxsLHRoaXMuY3VycmVudFJlc29sdmU9bnVsbH1hc3luYyBwcm9jZXNzUXVldWUoKXtpZih0aGlzLnF1ZXVlLmxlbmd0aD09PTApe3RoaXMuaGlkZUN1cnJlbnRCYXIoKTtyZXR1cm59bGV0IE09dGhpcy5xdWV1ZS5zaGlmdCgpO3RoaXMuY3VycmVudEJhcj1NLm9wdGlvbnMsdGhpcy5jdXJyZW50UmVzb2x2ZT1NLnJlc29sdmUsdGhpcy5pc1Zpc2libGU9ITAsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pLE0ub3B0aW9ucy50aW1lb3V0JiZ0aGlzLnN0YXJ0VGltZW91dChNLm9wdGlvbnMudGltZW91dC5kdXJhdGlvbixNLm9wdGlvbnMudGltZW91dC5kZWZhdWx0QWN0aW9uSWQpfXN0YXJ0VGltZW91dChNLHope3RoaXMudGltZVJlbWFpbmluZz1NLHRoaXMucHJvZ3Jlc3NQZXJjZW50PTEwMDtsZXQgTj1EYXRlLm5vdygpLEM9NTA7dGhpcy50aW1lb3V0SW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgXz1EYXRlLm5vdygpLU47dGhpcy50aW1lUmVtYWluaW5nPU1hdGgubWF4KDAsTS1fKSx0aGlzLnByb2dyZXNzUGVyY2VudD10aGlzLnRpbWVSZW1haW5pbmcvTSoxMDAsdGhpcy50aW1lUmVtYWluaW5nPD0wJiYodGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuaGFuZGxlQWN0aW9uKHosITApKX0sQyl9Y2xlYXJUaW1lb3V0SW50ZXJ2YWwoKXt0aGlzLnRpbWVvdXRJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0SW50ZXJ2YWwpLHRoaXMudGltZW91dEludGVydmFsPW51bGwpfWhhbmRsZUFjdGlvbihNLHope3RoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKSx0aGlzLmN1cnJlbnRSZXNvbHZlJiZ0aGlzLmN1cnJlbnRSZXNvbHZlKHthY3Rpb25JZDpNLHRpbWVkT3V0Onp9KSx0aGlzLnByb2Nlc3NRdWV1ZSgpfWhhbmRsZURpc21pc3MoKXt0aGlzLmhhbmRsZUFjdGlvbigiZGlzbWlzc2VkIiwhMSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKX1zdGF0aWN7eHUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIEhtYT1nKCgpPT57fSk7dmFyIHFtYT1nKCgpPT57ZTFlKCk7SG1hKCl9KTt2YXIgam1hLFZtYT1nKCgpPT57cGUoKTtqbWE9aSgoKT0+d2AKICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsiPgogICAgPGRlZXMtYmFkZ2UgLnRleHQ9JHsiRGVmYXVsdCJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAudGV4dD0keyJQcmltYXJ5In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsic3VjY2VzcyJ9IC50ZXh0PSR7IlN1Y2Nlc3MifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJ3YXJuaW5nIn0gLnRleHQ9JHsiV2FybmluZyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7ImVycm9yIn0gLnRleHQ9JHsiRXJyb3IifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJwcmltYXJ5In0gLnJvdW5kZWQ9JHshMH0gLnRleHQ9JHsiUm91bmRlZCJ9PjwvZGVlcy1iYWRnZT4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB0MWUsd2csVW1hLFdtYT1nKCgpPT57cGUoKTtrdCgpO1ZtYSgpO3B0KCk7dDFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx3Zz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVW1hPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1iYWRnZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQmFkZ2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0sdDFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idHlwZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnR5cGUsImdldCIpLHNldDppKChmLHkpPT57Zi50eXBlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSx0MWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ0ZXh0ImluIGYsImhhcyIpLGdldDppKGY9PmYudGV4dCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRleHQ9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLHQxZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdW5kZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InJvdW5kZWQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5yb3VuZGVkLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yucm91bmRlZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksdDFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89am1hO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT13Zyh0aGlzLG8sImRlZmF1bHQiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKG0pe3RoaXMuI2U9bX0jdD0od2codGhpcyxsKSx3Zyh0aGlzLGQsIiIpKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KG0pe3RoaXMuI3Q9bX0jYT0od2codGhpcyx1KSx3Zyh0aGlzLGIsITEpKTtnZXQgcm91bmRlZCgpe3JldHVybiB0aGlzLiNhfXNldCByb3VuZGVkKG0pe3RoaXMuI2E9bX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksd2codGhpcyx2KSx0YS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYmFkZ2Uucm91bmRlZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjVmNWY1IiwiIzMzMyIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjY2NjIil9OwogICAgICB9CgogICAgICAuYmFkZ2UucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICMyZTdkMzI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZWQ2YzAyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJiYWRnZSAke3RoaXMudHlwZX0gJHt0aGlzLnJvdW5kZWQ/InJvdW5kZWQiOiIifSI+CiAgICAgICAgJHt0aGlzLnRleHR9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7d2coYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIEdtYT1nKCgpPT57V21hKCl9KTt2YXIgS21hLFltYT1nKCgpPT57cGUoKTtLbWE9aSgoKT0+d2AKICA8ZGVlcy1oaW50PjwvZGVlcy1oaW50PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFptYSxWaXQsWG1hLFFtYT1nKCgpPT57cGUoKTtrdCgpO1ltYSgpO3B0KCk7Wm1hPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxWaXQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFhtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaGludCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSGludCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLFptYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InR5cGUiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS50eXBlLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UudHlwZT1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksWm1hKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89S21hO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1WaXQodGhpcyxvLCJpbmZvIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShkKXt0aGlzLiNlPWR9Y29uc3RydWN0b3IoKXtzdXBlcigpLFZpdCh0aGlzLGwpLHRhLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AgPGRpdiBjbGFzcz0ibWFpbmJveCI+PC9kaXY+IGB9c3RhdGlje1ZpdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgSm1hPWcoKCk9PntRbWEoKX0pO3ZhciBlNmEsdDZhPWcoKCk9PntwZSgpO0l0KCk7ZTZhPWkoKCk9PntsZXQgcz1bWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIl0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiLCJWZXJpZnlpbmcgY2hlY2tzdW0iXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6IiwiVmVyaWZ5aW5nIGNoZWNrc3VtIiwiRXh0cmFjdGluZyByZWxlYXNlIGJ1bmRsZSJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiLCJWZXJpZnlpbmcgY2hlY2tzdW0iLCJFeHRyYWN0aW5nIHJlbGVhc2UgYnVuZGxlIiwiUmVzdGFydGluZyBhcHBsaWNhdGlvbiJdXSxlPWkodD0+dD49MTAwPyJVcGxvYWQgY29tcGxldGUuIEZpbmFsaXppbmcgcGFja2FnZSBtYW5pZmVzdC4uLiI6dD49ODI/IlZlcmlmeWluZyBjaGVja3N1bXMgYmVmb3JlIGhhbmRvZmYuLi4iOnQ+PTU1PyJVcGxvYWRpbmcgdGh1bWJuYWlscyB0byBlZGdlIGNhY2hlLi4uIjp0Pj0yNT8iU3RyZWFtaW5nIHNvdXJjZSBmaWxlcyB0byB0aGUgcmVtb3RlIHdvcmtlci4uLiI6IlByZXBhcmluZyBhcmNoaXZlIGFuZCBkZXBlbmRlbmN5IGdyYXBoLi4uIiwiZ2V0VXBsb2FkU3RhdHVzIik7cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjbGl2ZS1wcm9ncmVzcyIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjdGVybWluYWwtcHJvZ3Jlc3MiKSxuPXQ7aWYoIWF8fCFyKXJldHVybjtuLl9fcHJvZ3Jlc3NiYXJEZW1vSW50ZXJ2YWxJZCYmd2luZG93LmNsZWFySW50ZXJ2YWwobi5fX3Byb2dyZXNzYmFyRGVtb0ludGVydmFsSWQpO2xldCBvPTEyLGw9MCxwPWkoKCk9PnthLnBlcmNlbnRhZ2U9byxhLnN0YXR1c1RleHQ9ZShvKSxyLnRlcm1pbmFsTGluZXM9Wy4uLnNbbF1dLHIucGVyY2VudGFnZT1NYXRoLm1pbigxMDAsKGwrMSkqMjApLHIuaW5kZXRlcm1pbmF0ZT1sPHMubGVuZ3RoLTEsbz1vPj0xMDA/MTI6TWF0aC5taW4oMTAwLG8rMTEpLGw9bD49cy5sZW5ndGgtMT8wOmwrMX0sInVwZGF0ZURlbW8iKTtwKCksbi5fX3Byb2dyZXNzYmFyRGVtb0ludGVydmFsSWQ9d2luZG93LnNldEludGVydmFsKHAsMTQwMCl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vSW50cm8gewogICAgICAgICAgICBtYXgtd2lkdGg6IDcyMHB4OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAlIDMwJSkiLCJoc2woMjE1IDE4JSA3NiUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlR3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDAuNzgpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjA0KSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTAgMjIlIDg2JSkiLCJoc2woMjEwIDEwJSAxOCUpIil9OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQud2lkZSB7CiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCBoMyB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQgcCB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE0JSA0MCUpIiwiaHNsKDIxNSAxMCUgNjYlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICAgIH0KCiAgICAgICAgICAucHJvZ3Jlc3NTdGFjayB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuY29kZUxhYmVsIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE0JSA0NCUpIiwiaHNsKDIxNSAxMCUgNzAlKSIpfTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIH0KCiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5zaG93Y2FzZUNhcmQud2lkZSB7CiAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW9JbnRybyI+CiAgICAgICAgICA8Y29kZT5kZWVzLXByb2dyZXNzYmFyPC9jb2RlPiBjYW4gbm93IHBhaXIgYSBjbGFzc2ljIHByb2dyZXNzIGJhciB3aXRoIGEgZml4ZWQtaGVpZ2h0IHN0YXR1cyBhcmVhLiBVc2Ugc2ltcGxlIHN0YXR1cyB0ZXh0IGZvciBjbGVhciB1c2VyLWZhY2luZyB1cGRhdGVzIG9yIHN3aXRjaCB0byB0ZXJtaW5hbC1saWtlIGxpbmVzIHdoZW4geW91IHdhbnQgcmVjZW50IHN0ZXBzIHRvIHN0YXkgdmlzaWJsZSB3aXRob3V0IGNhdXNpbmcgbGF5b3V0IGp1bXBzLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNob3djYXNlR3JpZCI+CiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5EZXRlcm1pbmF0ZTwvZGl2PgogICAgICAgICAgICA8aDM+UGVyY2VudGFnZSBwbHVzIGN1cnJlbnQgdGFzazwvaDM+CiAgICAgICAgICAgIDxwPlVzZSBhIGxhYmVsLCBhIHBlcmNlbnRhZ2UsIGFuZCBvbmUgc2hvcnQgc3RhdHVzIGxpbmUgd2hlbiB0aGUgd29yayBpcyBtZWFzdXJhYmxlLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJNZWRpYSB1cGxvYWQiCiAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezY4fQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iVXBsb2FkaW5nIHRodW1ibmFpbHMgdG8gZWRnZSBjYWNoZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iQXNzZXQgc3luYyIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MTAwfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iQWxsIGZpbGVzIGFyZSBzeW5jZWQgYW5kIGF2YWlsYWJsZS4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+SW5kZXRlcm1pbmF0ZTwvZGl2PgogICAgICAgICAgICA8aDM+U3Bpbm5lci1zdHlsZSB0ZXh0IGluZGljYXRvcjwvaDM+CiAgICAgICAgICAgIDxwPldoZW4gdGhlcmUgaXMgbm8gdHJ1c3R3b3J0aHkgcGVyY2VudGFnZSB5ZXQsIGtlZXAgdGhlIGJhciBtb3ZpbmcgYW5kIGxldCB0aGUgdGV4dCBleHBsYWluIHdoYXQgaXMgaGFwcGVuaW5nLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJEZXBlbmRlbmN5IGluc3RhbGwiCiAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0keyEwfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iRG93bmxvYWRpbmcgcGFja2FnZSBtZXRhZGF0YS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iUXVldWVkIGpvYiIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MzJ9CiAgICAgICAgICAgICAgICAuc2hvd1BlcmNlbnRhZ2U9JHshMX0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IldhaXRpbmcgZm9yIGEgd29ya2VyIHNsb3QgdG8gYmVjb21lIGF2YWlsYWJsZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIHdpZGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPlRlcm1pbmFsIExpbmVzPC9kaXY+CiAgICAgICAgICAgIDxoMz5GaXhlZC1oZWlnaHQgdGVybWluYWwtc3R5bGUgc3RhdHVzIG91dHB1dDwvaDM+CiAgICAgICAgICAgIDxwPlRoZSBwYW5lbCBzdGF5cyB0aGUgc2FtZSBoZWlnaHQgd2hpbGUgdGhlIGxhdGVzdCBzdGVwIHN0YXlzIHZpc2libGUuIFRoaXMgaXMgdXNlZnVsIGZvciB1cGRhdGUgZmxvd3MsIGRvd25sb2FkcywgYW5kIHN0YWdlZCBiYWNrZ3JvdW5kIHdvcmsuPC9wPgogICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgIGlkPSJ0ZXJtaW5hbC1wcm9ncmVzcyIKICAgICAgICAgICAgICBsYWJlbD0iUmVsZWFzZSBidW5kbGUiCiAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHsyMH0KICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0keyEwfQogICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7NH0KICAgICAgICAgICAgICAudGVybWluYWxMaW5lcz0ke3NbMF19CiAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+TGl2ZSBEZW1vPC9kaXY+CiAgICAgICAgICAgIDxoMz5VcGRhdGluZyBwZXJjZW50YWdlIGFuZCB0ZXh0IHRvZ2V0aGVyPC9oMz4KICAgICAgICAgICAgPHA+QSBzaW5nbGUgY29tcG9uZW50IGNhbiBleHByZXNzIGJvdGggaG93IGZhciB0aGUgam9iIGlzIGFuZCB3aGljaCBwaGFzZSBpcyBjdXJyZW50bHkgYWN0aXZlLjwvcD4KICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICBpZD0ibGl2ZS1wcm9ncmVzcyIKICAgICAgICAgICAgICBsYWJlbD0iQ3VzdG9tZXIgZXhwb3J0IgogICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MTJ9CiAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iUHJlcGFyaW5nIGFyY2hpdmUgYW5kIGRlcGVuZGVuY3kgZ3JhcGguLi4iCiAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkNvbXBhdGliaWxpdHk8L2Rpdj4KICAgICAgICAgICAgPGgzPkxlZ2FjeSA8Y29kZT52YWx1ZTwvY29kZT4gYW5kIDxjb2RlPnByb2dyZXNzPC9jb2RlPiBpbnB1dHM8L2gzPgogICAgICAgICAgICA8cD5FeGlzdGluZyB1c2FnZXMgY2FuIGtlZXAgcGFzc2luZyBwZXJjZW50YWdlcyBkaXJlY3RseSBvciBub3JtYWxpemVkIHByb2dyZXNzIHZhbHVlcyBmcm9tIDAgdG8gMS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRnJvbSB2YWx1ZSIKICAgICAgICAgICAgICAgIC52YWx1ZT0kezc1fQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iTWlncmF0aW5nIGV4aXN0aW5nIHJlYWRtZS1zdHlsZSB1c2FnZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRnJvbSBwcm9ncmVzcyIKICAgICAgICAgICAgICAgIC5wcm9ncmVzcz0key40Mn0KICAgICAgICAgICAgICAgIC5zaG93UGVyY2VudGFnZT0keyExfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iUmVuZGVyaW5nIG5vcm1hbGl6ZWQgcHJvZ3Jlc3MgaW5wdXQuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIGMyLGhyLGE2YSxVaXQ9ZygoKT0+e0cxKCk7dDZhKCk7cGUoKTtwdCgpO2MyPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxocj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sYTZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1wcm9ncmVzc2JhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdO3ZhciBtZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1Byb2dyZXNzYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpBcnJheX0pXSxPPVtMKHt0eXBlOk51bWJlcn0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7dHlwZTpCb29sZWFufSldLEs9W1koKV0sYzIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZXJjZW50YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJwZXJjZW50YWdlImluIFUsImhhcyIpLGdldDppKFU9PlUucGVyY2VudGFnZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5wZXJjZW50YWdlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG8sbCksYzIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idmFsdWUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS52YWx1ZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS52YWx1ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxkLHUpLGMyKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InByb2dyZXNzImluIFUsImhhcyIpLGdldDppKFU9PlUucHJvZ3Jlc3MsImdldCIpLHNldDppKChVLGhlKT0+e1UucHJvZ3Jlc3M9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sYix2KSxjMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJsYWJlbCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmxhYmVsLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmxhYmVsPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG0sZiksYzIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXNUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJzdGF0dXNUZXh0ImluIFUsImhhcyIpLGdldDppKFU9PlUuc3RhdHVzVGV4dCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zdGF0dXNUZXh0PWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE0seiksYzIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbExpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0ZXJtaW5hbExpbmVzImluIFUsImhhcyIpLGdldDppKFU9PlUudGVybWluYWxMaW5lcywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50ZXJtaW5hbExpbmVzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LEMsXyksYzIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXNSb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJzdGF0dXNSb3dzImluIFUsImhhcyIpLGdldDppKFU9PlUuc3RhdHVzUm93cywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zdGF0dXNSb3dzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LCQsRSksYzIodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRldGVybWluYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJpbmRldGVybWluYXRlImluIFUsImhhcyIpLGdldDppKFU9PlUuaW5kZXRlcm1pbmF0ZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5pbmRldGVybWluYXRlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGssUyksYzIodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2hvd1BlcmNlbnRhZ2UiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zaG93UGVyY2VudGFnZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zaG93UGVyY2VudGFnZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLGMyKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlU3Bpbm5lckZyYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJhY3RpdmVTcGlubmVyRnJhbWUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5hY3RpdmVTcGlubmVyRnJhbWUsImdldCIpLHNldDppKChVLGhlKT0+e1UuYWN0aXZlU3Bpbm5lckZyYW1lPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LFYsVyksYzIobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Qn0sbnVsbCx0KSxtZT1hPWUudmFsdWUsQiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpCfSl9c3RhdGljIGRlbW89ZTZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1ocih0aGlzLG8sMCk7Z2V0IHBlcmNlbnRhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGVyY2VudGFnZShCKXt0aGlzLiNlPUJ9I3Q9KGhyKHRoaXMsbCksaHIodGhpcyxkLG51bGwpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdmFsdWUoQil7dGhpcy4jdD1CfSNhPShocih0aGlzLHUpLGhyKHRoaXMsYixudWxsKSk7Z2V0IHByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHByb2dyZXNzKEIpe3RoaXMuI2E9Qn0jcz0oaHIodGhpcyx2KSxocih0aGlzLG0sIiIpKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgbGFiZWwoQil7dGhpcy4jcz1CfSNpPShocih0aGlzLGYpLGhyKHRoaXMsTSwiIikpO2dldCBzdGF0dXNUZXh0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0YXR1c1RleHQoQil7dGhpcy4jaT1CfSNyPShocih0aGlzLHopLGhyKHRoaXMsQyxbXSkpO2dldCB0ZXJtaW5hbExpbmVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRlcm1pbmFsTGluZXMoQil7dGhpcy4jcj1CfSNvPShocih0aGlzLF8pLGhyKHRoaXMsJCwzKSk7Z2V0IHN0YXR1c1Jvd3MoKXtyZXR1cm4gdGhpcy4jb31zZXQgc3RhdHVzUm93cyhCKXt0aGlzLiNvPUJ9I249KGhyKHRoaXMsRSksaHIodGhpcyxrLCExKSk7Z2V0IGluZGV0ZXJtaW5hdGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaW5kZXRlcm1pbmF0ZShCKXt0aGlzLiNuPUJ9I2w9KGhyKHRoaXMsUyksaHIodGhpcyxQLCEwKSk7Z2V0IHNob3dQZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dQZXJjZW50YWdlKEIpe3RoaXMuI2w9Qn0jYz0oaHIodGhpcyxSKSxocih0aGlzLFYsMCkpO2dldCBhY3RpdmVTcGlubmVyRnJhbWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZlU3Bpbm5lckZyYW1lKEIpe3RoaXMuI2M9Qn1zcGlubmVySW50ZXJ2YWxJZD0oaHIodGhpcyxXKSxudWxsKTtzcGlubmVyRnJhbWVzPVsifCIsIi8iLCItIiwiXFwiXTtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSh2aC50ZXh0LGJoLnRleHQpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyQ29udGFpbmVyIHsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NMYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLnByb2dyZXNzVmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNSUgNDAlKSIsImhzbCgyMTUgMTUlIDcwJSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWVlZWIiLCIjNDQ0Iil9OwogICAgICAgIGJvcmRlci10b3A6IDAuNXB4IHNvbGlkICR7aC5iZFRoZW1lKCJ0cmFuc3BhcmVudCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhckZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKGJoLmJsdWVBY3RpdmUsdmguYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyRmlsbC5pbmRldGVybWluYXRlIHsKICAgICAgICB3aWR0aDogMzQlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBpbmRldGVybWluYXRlU2xpZGUgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnN0YXR1c1BhbmVsIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zdGF0dXMtcm93cywgMykgKiAxLjM1ZW0gKyAxNnB4KTsKICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXN0YXR1cy1yb3dzLCAzKSAqIDEuMzVlbSArIDE2cHgpOwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA4NiUpIiwiaHNsKDIxMCAxMCUgMjYlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAzMyUgOTglKSIsImhzbCgyMjAgMjAlIDEwJSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zdGF0dXNUZXh0Um93LAogICAgICAudGVybWluYWxMaW5lIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEuMzVlbTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsU2Nyb2xsZXIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsU2Nyb2xsZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE4JSA3OCUpIiwiaHNsKDIxNSAxMCUgMzQlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsU2Nyb2xsZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmxpbmVQcmVmaXggewogICAgICAgIHdpZHRoOiAxY2g7CiAgICAgICAgZmxleDogMCAwIDFjaDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoYmguYmx1ZUFjdGl2ZSx2aC5ibHVlQWN0aXZlKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAubGluZVRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCAxNSUgMjUlKSIsImhzbCgyMTAgMTUlIDg2JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbExpbmU6bm90KC5jdXJyZW50KSAubGluZVRleHQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxMiUgNDIlKSIsImhzbCgyMTUgMTIlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZVNsaWRlIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEyMCUpOwogICAgICAgIH0KCiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzIwJSk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zeW5jU3Bpbm5lclN0YXRlKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnN0b3BTcGlubmVyKCksYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX11cGRhdGVkKEIpe3N1cGVyLnVwZGF0ZWQoQiksdGhpcy5zeW5jU3Bpbm5lclN0YXRlKCksQi5oYXMoInRlcm1pbmFsTGluZXMiKSYmdGhpcy50ZXJtaW5hbExpbmVzLmxlbmd0aD4wJiZ0aGlzLnNjcm9sbFRlcm1pbmFsVG9Cb3R0b20oKX1yZW5kZXIoKXtsZXQgQj10aGlzLmdldEVmZmVjdGl2ZVBlcmNlbnRhZ2UoKSxVPSEhdGhpcy5sYWJlbHx8dGhpcy5zaG93UGVyY2VudGFnZSYmIXRoaXMuaW5kZXRlcm1pbmF0ZSxoZT10aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoPjAsRj1oZXx8dGhpcy5zdGF0dXNUZXh0LnRyaW0oKS5sZW5ndGg+MCxqPXRoaXMuZ2V0UmVuZGVyZWRTdGF0dXNSb3dzKCksdWU9dGhpcy5zcGlubmVyRnJhbWVzW3RoaXMuYWN0aXZlU3Bpbm5lckZyYW1lXT8/dGhpcy5zcGlubmVyRnJhbWVzWzBdO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0JhckNvbnRhaW5lciI+CiAgICAgICAgJHtVP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0hlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzTGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLnNob3dQZXJjZW50YWdlJiYhdGhpcy5pbmRldGVybWluYXRlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NWYWx1ZSI+JHt0aGlzLmZvcm1hdFBlcmNlbnRhZ2UoQil9JTwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0JhciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJwcm9ncmVzc0JhckZpbGwgJHt0aGlzLmluZGV0ZXJtaW5hdGU/ImluZGV0ZXJtaW5hdGUiOiIifSIKICAgICAgICAgICAgc3R5bGU9IiR7dGhpcy5pbmRldGVybWluYXRlPyIiOmB3aWR0aDogJHtCfSU7YH0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHtGP3dgCiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJzdGF0dXNQYW5lbCIKICAgICAgICAgICAgc3R5bGU9Ii0tc3RhdHVzLXJvd3M6ICR7an07IgogICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgYXJpYS1hdG9taWM9InRydWUiCiAgICAgICAgICA+CiAgICAgICAgICAgICR7aGU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbFNjcm9sbGVyIj4KICAgICAgICAgICAgICAgICR7dGhpcy50ZXJtaW5hbExpbmVzLm1hcCgobGUsUSk9PntsZXQgaWU9UT09PXRoaXMudGVybWluYWxMaW5lcy5sZW5ndGgtMSx0ZT10aGlzLmluZGV0ZXJtaW5hdGUmJmllP3VlOiI+IjtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbExpbmUgJHtpZT8iY3VycmVudCI6IiJ9Ij4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lUHJlZml4Ij4ke3RlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lVGV4dCI+JHtsZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c1RleHRSb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxpbmVQcmVmaXgiPiR7dGhpcy5pbmRldGVybWluYXRlP3VlOiI+In08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVRleHQiPiR7dGhpcy5zdGF0dXNUZXh0fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRFZmZlY3RpdmVQZXJjZW50YWdlKCl7aWYodHlwZW9mIHRoaXMudmFsdWU9PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUodGhpcy52YWx1ZSkpcmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKHRoaXMudmFsdWUpO2lmKHR5cGVvZiB0aGlzLnByb2dyZXNzPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHRoaXMucHJvZ3Jlc3MpKXtsZXQgQj10aGlzLnByb2dyZXNzPj0wJiZ0aGlzLnByb2dyZXNzPD0xP3RoaXMucHJvZ3Jlc3MqMTAwOnRoaXMucHJvZ3Jlc3M7cmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKEIpfXJldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZSh0aGlzLnBlcmNlbnRhZ2UpfWdldFJlbmRlcmVkU3RhdHVzUm93cygpe2xldCBCPU51bWJlci5pc0Zpbml0ZSh0aGlzLnN0YXR1c1Jvd3MpP01hdGguZmxvb3IodGhpcy5zdGF0dXNSb3dzKTozO3JldHVybiBNYXRoLm1heCgxLEIpfWNsYW1wUGVyY2VudGFnZShCKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsQikpfWZvcm1hdFBlcmNlbnRhZ2UoQil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoQik/YCR7Qn1gOkIudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIil9c3luY1NwaW5uZXJTdGF0ZSgpe2xldCBCPXRoaXMuaW5kZXRlcm1pbmF0ZSYmKHRoaXMuc3RhdHVzVGV4dC50cmltKCkubGVuZ3RoPjB8fHRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCk7aWYoQiYmdGhpcy5zcGlubmVySW50ZXJ2YWxJZD09PW51bGwpe3RoaXMuc3Bpbm5lckludGVydmFsSWQ9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy5hY3RpdmVTcGlubmVyRnJhbWU9KHRoaXMuYWN0aXZlU3Bpbm5lckZyYW1lKzEpJXRoaXMuc3Bpbm5lckZyYW1lcy5sZW5ndGh9LDEyMCk7cmV0dXJufUJ8fHRoaXMuc3RvcFNwaW5uZXIoKX1zdG9wU3Bpbm5lcigpe3RoaXMuc3Bpbm5lckludGVydmFsSWQhPT1udWxsJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5zcGlubmVySW50ZXJ2YWxJZCksdGhpcy5zcGlubmVySW50ZXJ2YWxJZD1udWxsKSx0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZT0wfXNjcm9sbFRlcm1pbmFsVG9Cb3R0b20oKXtsZXQgQj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbFNjcm9sbGVyIik7QiYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0Iuc2Nyb2xsVG9wPUIuc2Nyb2xsSGVpZ2h0fSl9c3RhdGlje2hyKGEsdCl9fTtyZXR1cm4gbWU9YX0pKCl9KTt2YXIgczZhPWcoKCk9PntVaXQoKX0pO3ZhciBhMWUsa2csaTZhLHI2YT1nKCgpPT57cGUoKTtrdCgpO3B0KCk7YTFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxrZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0saTZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zcGlubmVyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTcGlubmVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCgpXSxhMWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJzaXplImluIGYsImhhcyIpLGdldDppKGY9PmYuc2l6ZSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnNpemU9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLGExZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJudyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iYm53ImluIGYsImhhcyIpLGdldDppKGY9PmYuYm53LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuYm53PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxhMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InN0YXR1cyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnN0YXR1cywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnN0YXR1cz15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksYTFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdO3N0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1zcGlubmVyPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc2l6ZT0kezY0fSBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezY0fSBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICBgLCJkZW1vIik7I2U9a2codGhpcyxvLDIwKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKG0pe3RoaXMuI2U9bX0jdD0oa2codGhpcyxsKSxrZyh0aGlzLGQsITEpKTtnZXQgYm53KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJudyhtKXt0aGlzLiN0PW19I2E9KGtnKHRoaXMsdSksa2codGhpcyxiLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNhfXNldCBzdGF0dXMobSl7dGhpcy4jYT1tfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxrZyh0aGlzLHYpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAjOGJjMzRhMDA7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgI2xvYWRpbmcuc3VjY2VzcyB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgI2xvYWRpbmcgewogICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgICAgI2xvYWRpbmcuc3VjY2VzcyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUodGhpcy5ibnc/IiMzMzMiOiIjOGJjMzRhIix0aGlzLmJudz8iI2ZmZiI6IiM4YmMzNGEiKX07CiAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgI2xvYWRpbmcuZXJyb3IgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiI2U2NGExOSIsdGhpcy5ibnc/IiNmZmYiOiIjZTY0YTE5Iil9OwogICAgICAgIH0KICAgICAgICBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9IiR7dGhpcy5zdGF0dXN9IiBpZD0ibG9hZGluZyI+CiAgICAgICAgJHsoKCk9PntpZih0aGlzLnN0YXR1cz09PSJzdWNjZXNzIilyZXR1cm4gd2A8ZGVlcy1pY29uIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMSUpIHRyYW5zbGF0ZVkoMyUpOyIgLmljb249JHsiZmE6Y2lyY2xlLWNoZWNrIn0+PC9kZWVzLWljb24+YDtpZih0aGlzLnN0YXR1cz09PSJlcnJvciIpcmV0dXJuIHdgPGRlZXMtaWNvbiAuaWNvbj0keyJmYTpjaXJjbGUteG1hcmsifT48L2RlZXMtaWNvbj5gfSkoKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3trZyhhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgbzZhPWcoKCk9PntyNmEoKX0pO3ZhciBuNmEsbDZhPWcoKCk9PntwZSgpO1dpdCgpO0Q4KCk7bjZhPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICAgIH0KCiAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiI2FhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgIH0KCiAgICAgIC50aGVtZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDE2cHg7CiAgICAgICAgcmlnaHQ6IDE2cHg7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYnV0dG9uIGNsYXNzPSJ0aGVtZS10b2dnbGUiIEBjbGlja2VkPSR7KCk9Pntkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImJyaWdodCIpfX0+VG9nZ2xlIFRoZW1lPC9kZWVzLWJ1dHRvbj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Ub2FzdCBUeXBlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgRGlmZmVyZW50IHRvYXN0IHR5cGVzIGZvciB2YXJpb3VzIG5vdGlmaWNhdGlvbiBzY2VuYXJpb3MuIENsaWNrIGFueSBidXR0b24gdG8gc2hvdyBhIHRvYXN0LgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21zLmluZm8oIlRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBtZXNzYWdlIil9fT5JbmZvIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIiBAY2xpY2tlZD0keygpPT57bXMuc3VjY2VzcygiT3BlcmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhIil9fT5TdWNjZXNzIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy53YXJuaW5nKCJQbGVhc2UgcmV2aWV3IGJlZm9yZSBwcm9jZWVkaW5nIil9fT5XYXJuaW5nIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5lcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZyIpfX0+RXJyb3IgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Ub2FzdCBQb3NpdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFRvYXN0cyBjYW4gYXBwZWFyIGluIGRpZmZlcmVudCBwb3NpdGlvbnMgb24gdGhlIHNjcmVlbi4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5zaG93KHttZXNzYWdlOiJUb3AgUmlnaHQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtcmlnaHQifSl9fT5Ub3AgUmlnaHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21zLnNob3coe21lc3NhZ2U6IlRvcCBMZWZ0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLWxlZnQifSl9fT5Ub3AgTGVmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiQm90dG9tIFJpZ2h0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLXJpZ2h0In0pfX0+Qm90dG9tIFJpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5zaG93KHttZXNzYWdlOiJCb3R0b20gTGVmdCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1sZWZ0In0pfX0+Qm90dG9tIExlZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21zLnNob3coe21lc3NhZ2U6IlRvcCBDZW50ZXIgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtY2VudGVyIn0pfX0+VG9wIENlbnRlcjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiQm90dG9tIENlbnRlciBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1jZW50ZXIifSl9fT5Cb3R0b20gQ2VudGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RHVyYXRpb24gT3B0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ29udHJvbCBob3cgbG9uZyB0b2FzdHMgc3RheSB2aXNpYmxlLiBEdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiUXVpY2sgdG9hc3QgKDEgc2Vjb25kKSIsdHlwZToiaW5mbyIsZHVyYXRpb246MWUzfSl9fT4xIFNlY29uZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiU3RhbmRhcmQgdG9hc3QgKDMgc2Vjb25kcykiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjNlM30pfX0+MyBTZWNvbmRzIChEZWZhdWx0KTwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiTG9uZyB0b2FzdCAoNSBzZWNvbmRzKSIsdHlwZToiaW5mbyIsZHVyYXRpb246NWUzfSl9fT41IFNlY29uZHM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21zLnNob3coe21lc3NhZ2U6Ik1hbnVhbCBkaXNtaXNzIG9ubHkgKGNsaWNrIHRvIGNsb3NlKSIsdHlwZToid2FybmluZyIsZHVyYXRpb246MH0pfX0+Tm8gQXV0by1EaXNtaXNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TXVsdGlwbGUgVG9hc3RzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBNdWx0aXBsZSB0b2FzdHMgc3RhY2sgYXV0b21hdGljYWxseS4gVGhleSBtYWludGFpbiB0aGVpciBvcmRlciBhbmQgYW5pbWF0ZSBzbW9vdGhseS4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5pbmZvKCJGaXJzdCBub3RpZmljYXRpb24iKSxzZXRUaW1lb3V0KCgpPT5tcy5zdWNjZXNzKCJTZWNvbmQgbm90aWZpY2F0aW9uIiksMjAwKSxzZXRUaW1lb3V0KCgpPT5tcy53YXJuaW5nKCJUaGlyZCBub3RpZmljYXRpb24iKSw0MDApLHNldFRpbWVvdXQoKCk9Pm1zLmVycm9yKCJGb3VydGggbm90aWZpY2F0aW9uIiksNjAwKX19PlNob3cgTXVsdGlwbGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2ZvcihsZXQgcz0xO3M8PTU7cysrKXNldFRpbWVvdXQoKCk9Pnttcy5zaG93KHttZXNzYWdlOmBOb3RpZmljYXRpb24gIyR7c31gLHR5cGU6cyUyPT09MD8ic3VjY2VzcyI6ImluZm8iLGR1cmF0aW9uOjJlMytzKjUwMH0pfSxzKjEwMCl9fT5SYXBpZCBGaXJlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UmVhbC1Xb3JsZCBFeGFtcGxlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ29tbW9uIHVzZSBjYXNlcyBmb3IgdG9hc3Qgbm90aWZpY2F0aW9ucyBpbiBhcHBsaWNhdGlvbnMuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0ke2FzeW5jKCk9PntsZXQgcz1hd2FpdCBtcy5zaG93KHttZXNzYWdlOiJTYXZpbmcgY2hhbmdlcy4uLiIsdHlwZToiaW5mbyIsZHVyYXRpb246MH0pO3NldFRpbWVvdXQoKCk9PntzLmRpc21pc3MoKSxtcy5zdWNjZXNzKCJDaGFuZ2VzIHNhdmVkIHN1Y2Nlc3NmdWxseSEiKX0sMmUzKX19PlNhdmUgT3BlcmF0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5lcnJvcigiRmFpbGVkIHRvIGNvbm5lY3QgdG8gc2VydmVyLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uLiIpfX0+TmV0d29yayBFcnJvcjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMud2FybmluZygiWW91ciBzZXNzaW9uIHdpbGwgZXhwaXJlIGluIDUgbWludXRlcyIpfX0+U2Vzc2lvbiBXYXJuaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5zdWNjZXNzKCJGaWxlIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSEiKX19PlVwbG9hZCBDb21wbGV0ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlByb2dyYW1tYXRpYyBDb250cm9sPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBBZHZhbmNlZCBjb250cm9sIG92ZXIgdG9hc3QgYmVoYXZpb3IuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0ke2FzeW5jKCk9PntsZXQgcz1hd2FpdCBtcy5zaG93KHttZXNzYWdlOiJUaGlzIHRvYXN0IGNhbiBiZSBkaXNtaXNzZWQgcHJvZ3JhbW1hdGljYWxseSIsdHlwZToiaW5mbyIsZHVyYXRpb246MH0pO3NldFRpbWVvdXQoKCk9PntzLmRpc21pc3MoKSxtcy5zdWNjZXNzKCJUb2FzdCBkaXNtaXNzZWQgYWZ0ZXIgMiBzZWNvbmRzIil9LDJlMyl9fT5Qcm9ncmFtbWF0aWMgRGlzbWlzczwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuaW5mbygiSW5mbyBtZXNzYWdlIiwyZTMpLHNldFRpbWVvdXQoKCk9Pm1zLnN1Y2Nlc3MoIlN1Y2Nlc3MgbWVzc2FnZSIsMmUzKSw1MDApLHNldFRpbWVvdXQoKCk9Pm1zLndhcm5pbmcoIldhcm5pbmcgbWVzc2FnZSIsMmUzKSwxZTMpLHNldFRpbWVvdXQoKCk9Pm1zLmVycm9yKCJFcnJvciBtZXNzYWdlIiwyZTMpLDE1MDApfX0+Q29udmVuaWVuY2UgTWV0aG9kczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBaWCx5dSxtcyxXaXQ9ZygoKT0+e3BlKCk7a3QoKTt6bigpO2w2YSgpO0NyKCk7cHQoKTtaWD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0seXU9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG1zPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10b2FzdCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVG9hc3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxaWCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Im1lc3NhZ2UiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5tZXNzYWdlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubWVzc2FnZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksWlgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0eXBlImluIHosImhhcyIpLGdldDppKHo9PnoudHlwZSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnR5cGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLFpYKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImR1cmF0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZHVyYXRpb24sImdldCIpLHNldDppKCh6LE4pPT57ei5kdXJhdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksWlgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImlzVmlzaWJsZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzVmlzaWJsZSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmlzVmlzaWJsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksWlgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1uNmE7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgdG9hc3RDb250YWluZXJzPW5ldyBNYXA7c3RhdGljIGdldE9yQ3JlYXRlQ29udGFpbmVyKE0pe2lmKCF0aGlzLnRvYXN0Q29udGFpbmVycy5oYXMoTSkpe2xldCB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3N3aXRjaCh6LmNsYXNzTmFtZT1gdG9hc3QtY29udGFpbmVyIHRvYXN0LWNvbnRhaW5lci0ke019YCx6LnN0eWxlLmNzc1RleHQ9YAogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB6LWluZGV4OiAke1dyLm92ZXJsYXkudG9hc3R9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICBgLE0pe2Nhc2UidG9wLXJpZ2h0Ijp6LnN0eWxlLnRvcD0iMCIsei5zdHlsZS5yaWdodD0iMCI7YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6ei5zdHlsZS50b3A9IjAiLHouc3R5bGUubGVmdD0iMCI7YnJlYWs7Y2FzZSJib3R0b20tcmlnaHQiOnouc3R5bGUuYm90dG9tPSIwIix6LnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlImJvdHRvbS1sZWZ0Ijp6LnN0eWxlLmJvdHRvbT0iMCIsei5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlInRvcC1jZW50ZXIiOnouc3R5bGUudG9wPSIwIix6LnN0eWxlLmxlZnQ9IjUwJSIsei5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrO2Nhc2UiYm90dG9tLWNlbnRlciI6ei5zdHlsZS5ib3R0b209IjAiLHouc3R5bGUubGVmdD0iNTAlIix6LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWt9ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh6KSx0aGlzLnRvYXN0Q29udGFpbmVycy5zZXQoTSx6KX1yZXR1cm4gdGhpcy50b2FzdENvbnRhaW5lcnMuZ2V0KE0pfXN0YXRpYyBhc3luYyBzaG93KE0pe2xldCB6PXR5cGVvZiBNPT0ic3RyaW5nIj97bWVzc2FnZTpNfTpNLE49bmV3IHk7cmV0dXJuIE4ubWVzc2FnZT16Lm1lc3NhZ2UsTi50eXBlPXoudHlwZXx8ImluZm8iLE4uZHVyYXRpb249ei5kdXJhdGlvbnx8M2UzLHRoaXMuZ2V0T3JDcmVhdGVDb250YWluZXIoei5wb3NpdGlvbnx8InRvcC1yaWdodCIpLmFwcGVuZENoaWxkKE4pLGF3YWl0IE4udXBkYXRlQ29tcGxldGUscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ti5pc1Zpc2libGU9ITB9KSxOLmR1cmF0aW9uPjAmJnNldFRpbWVvdXQoKCk9PntOLmRpc21pc3MoKX0sTi5kdXJhdGlvbiksTn1zdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhNKXtyZXR1cm4gdGhpcy5zaG93KE0pfXN0YXRpYyBpbmZvKE0seil7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTpNLHR5cGU6ImluZm8iLGR1cmF0aW9uOnp9KX1zdGF0aWMgc3VjY2VzcyhNLHope3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6TSx0eXBlOiJzdWNjZXNzIixkdXJhdGlvbjp6fSl9c3RhdGljIHdhcm5pbmcoTSx6KXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToid2FybmluZyIsZHVyYXRpb246en0pfXN0YXRpYyBlcnJvcihNLHope3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6TSx0eXBlOiJlcnJvciIsZHVyYXRpb246en0pfSNlPXl1KHRoaXMsbywiIik7Z2V0IG1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVzc2FnZShNKXt0aGlzLiNlPU19I3Q9KHl1KHRoaXMsbCkseXUodGhpcyxkLCJpbmZvIikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHR5cGUoTSl7dGhpcy4jdD1NfSNhPSh5dSh0aGlzLHUpLHl1KHRoaXMsYiwzZTMpKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHVyYXRpb24oTSl7dGhpcy4jYT1NfSNzPSh5dSh0aGlzLHYpLHl1KHRoaXMsbSwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNWaXNpYmxlKE0pe3RoaXMuI3M9TX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCkseXUodGhpcyxmKSx0YS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICA6aG9zdChbaXN2aXNpYmxlXSkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB9CgogICAgICAudG9hc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZiIsIiMyMjIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHtoLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMCwwLDAsMC4zKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDMwMHB4OwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAudG9hc3Q6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNsb3NlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLyogVHlwZS1zcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3R5cGU9ImluZm8iXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMDA4NGZmOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0ic3VjY2VzcyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJ3YXJuaW5nIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9ImVycm9yIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2VmNDQ0NDsKICAgICAgfQoKICAgICAgLyogUHJvZ3Jlc3MgYmFyICovCiAgICAgIC5wcm9ncmVzcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsKICAgICAgICBhbmltYXRpb246IHByb2dyZXNzIGxpbmVhciBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgTT17aW5mbzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTFhMSAxIDAgMTAtMiAwdjJIN2ExIDEgMCAxMDAgMmgydjJhMSAxIDAgMTAyIDB2LTJoMmExIDEgMCAxMDAtMmgtMlY3eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsc3VjY2Vzczp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuNzA3LTkuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDkgMTAuNTg2IDcuNzA3IDkuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDIgMmExIDEgMCAwMDEuNDE0IDBsNC00eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsd2FybmluZzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTguMjU3IDMuMDk5Yy43NjUtMS4zNiAyLjcyMi0xLjM2IDMuNDg2IDBsNS41OCA5LjkyYy43NSAxLjMzNC0uMjEzIDIuOTgtMS43NDIgMi45OEg0LjQyYy0xLjUzIDAtMi40OTMtMS42NDYtMS43NDMtMi45OGw1LjU4LTkuOTJ6TTExIDEzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTEtOGExIDEgMCAwMC0xIDF2M2ExIDEgMCAwMDIgMFY2YTEgMSAwIDAwLTEtMXoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLGVycm9yOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNOC43MDcgNy4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRMOC41ODYgMTBsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTEuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTEuNDE0IDEwbDEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEwIDguNTg2IDguNzA3IDcuMjkzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmB9O3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0b2FzdCIgQGNsaWNrPSR7dGhpcy5kaXNtaXNzfT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uIj4KICAgICAgICAgICR7TVt0aGlzLnR5cGVdfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPiR7dGhpcy5tZXNzYWdlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIiBzdHlsZT0iYW5pbWF0aW9uLWR1cmF0aW9uOiAke3RoaXMuZHVyYXRpb259bXMiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc21pc3MoKXt0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZSh6PT5zZXRUaW1lb3V0KHosMzAwKSksdGhpcy5yZW1vdmUoKTtsZXQgTT10aGlzLnBhcmVudEVsZW1lbnQ7aWYoTSYmTS5jaGlsZHJlbi5sZW5ndGg9PT0wKXtNLnJlbW92ZSgpO2ZvcihsZXRbeixOXW9mIHkudG9hc3RDb250YWluZXJzLmVudHJpZXMoKSlpZihOPT09TSl7eS50b2FzdENvbnRhaW5lcnMuZGVsZXRlKHopO2JyZWFrfX19Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXRBdHRyaWJ1dGUoInR5cGUiLHRoaXMudHlwZSl9c3RhdGlje3l1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBjNmE9ZygoKT0+e1dpdCgpfSk7dmFyIGQ2YT1nKCgpPT57cW1hKCk7R21hKCk7Sm1hKCk7czZhKCk7bzZhKCk7YzZhKCl9KTt2YXIgdTZhPWcoKCk9Pnt1digpfSk7dmFyIHA2YT1nKCgpPT57QTgoKX0pO3ZhciBoNmE9ZygoKT0+e3U2YSgpO3A2YSgpfSk7dmFyIGY2YT1nKCgpPT57emkoKX0pO3ZhciBtNmE9ZygoKT0+e1JldCgpfSk7dmFyIGc2YT1nKCgpPT57WWV0KCl9KTt2YXIgYjZhPWcoKCk9PntzdHQoKX0pO3ZhciB2NmE9ZygoKT0+e1pldCgpfSk7dmFyIHg2YT1nKCgpPT57WGV0KCl9KTt2YXIgeTZhPWcoKCk9PntxZXQoKX0pO3ZhciB3NmE9ZygoKT0+e2JuZSgpfSk7dmFyIGs2YT1nKCgpPT57S2NlKCl9KTt2YXIgUzZhPWcoKCk9Pnt9KTt2YXIgXzZhPWcoKCk9PntTNmEoKX0pO3ZhciBNNmE9ZygoKT0+e0pldCgpfSk7dmFyIHo2YT1nKCgpPT57dHR0KCl9KTt2YXIgQzZhPWcoKCk9PntHY2UoKTttaXQoKX0pO3ZhciBzMWUsVDZhPWcoKCk9PntzMWU9Y2xhc3N7c3RhdGlje2kodGhpcywiSW1hZ2VDcm9wcGVyIil9b3B0aW9ucztjYW52YXM7Y3R4O2ltZztvdmVybGF5Q2FudmFzO292ZXJsYXlDdHg7Y3JvcFg9MDtjcm9wWT0wO2Nyb3BTaXplPTIwMDttaW5Dcm9wU2l6ZT01MDtpc0RyYWdnaW5nPSExO2lzUmVzaXppbmc9ITE7ZHJhZ1N0YXJ0WD0wO2RyYWdTdGFydFk9MDtyZXNpemVIYW5kbGU9IiI7aW1hZ2VTY2FsZT0xO2ltYWdlT2Zmc2V0WD0wO2ltYWdlT2Zmc2V0WT0wO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17bWluU2l6ZTo1MCxvdXRwdXRTaXplOjgwMCxvdXRwdXRRdWFsaXR5Oi45NSwuLi5lfSx0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMub3ZlcmxheUNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLm92ZXJsYXlDdHg9dGhpcy5vdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5pbWc9bmV3IEltYWdlfWFzeW5jIGluaXRpYWxpemUoKXthd2FpdCB0aGlzLmxvYWRJbWFnZSgpLHRoaXMuc2V0dXBDYW52YXNlcygpLHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpLHRoaXMucmVuZGVyKCl9YXN5bmMgbG9hZEltYWdlKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5pbWcub25sb2FkPSgpPT5lKCksdGhpcy5pbWcub25lcnJvcj10LHRoaXMuaW1nLnNyYz10aGlzLm9wdGlvbnMuaW1hZ2V9KX1zZXR1cENhbnZhc2VzKCl7bGV0IGU9dGhpcy5vcHRpb25zLmNvbnRhaW5lcix0PU1hdGgubWluKGUuY2xpZW50V2lkdGgsZS5jbGllbnRIZWlnaHQpO3RoaXMuY2FudmFzLndpZHRoPXQsdGhpcy5jYW52YXMuaGVpZ2h0PXQsdGhpcy5jYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5jYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMuY2FudmFzLnN0eWxlLmxlZnQ9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aD10LHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQ9dCx0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJtb3ZlIixlLmFwcGVuZENoaWxkKHRoaXMuY2FudmFzKSxlLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUNhbnZhcyk7bGV0IGE9TWF0aC5taW4odC90aGlzLmltZy53aWR0aCx0L3RoaXMuaW1nLmhlaWdodCk7dGhpcy5pbWFnZVNjYWxlPWEsdGhpcy5pbWFnZU9mZnNldFg9KHQtdGhpcy5pbWcud2lkdGgqYSkvMix0aGlzLmltYWdlT2Zmc2V0WT0odC10aGlzLmltZy5oZWlnaHQqYSkvMjtsZXQgcj10aGlzLmltZy53aWR0aCphLG49dGhpcy5pbWcuaGVpZ2h0KmEsbz1NYXRoLm1pbihyLG4sdCouOCk7dGhpcy5jcm9wU2l6ZT1vKi44LHRoaXMuY3JvcFg9KHQtdGhpcy5jcm9wU2l6ZSkvMix0aGlzLmNyb3BZPSh0LXRoaXMuY3JvcFNpemUpLzJ9c2V0dXBFdmVudExpc3RlbmVycygpe3RoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuaGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5oYW5kbGVUb3VjaEVuZC5iaW5kKHRoaXMpKX1oYW5kbGVNb3VzZURvd24oZSl7bGV0IHQ9dGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9KGUuY2xpZW50WC10LmxlZnQpKih0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgvdC53aWR0aCkscj0oZS5jbGllbnRZLXQudG9wKSoodGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodC90LmhlaWdodCksbj10aGlzLmdldFJlc2l6ZUhhbmRsZShhLHIpO24/KHRoaXMuaXNSZXNpemluZz0hMCx0aGlzLnJlc2l6ZUhhbmRsZT1uKTp0aGlzLmlzSW5zaWRlQ3JvcEFyZWEoYSxyKSYmKHRoaXMuaXNEcmFnZ2luZz0hMCksdGhpcy5kcmFnU3RhcnRYPWEsdGhpcy5kcmFnU3RhcnRZPXJ9aGFuZGxlTW91c2VNb3ZlKGUpe2xldCB0PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPShlLmNsaWVudFgtdC5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Qud2lkdGgpLHI9KGUuY2xpZW50WS10LnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvdC5oZWlnaHQpLG49dGhpcy5nZXRSZXNpemVIYW5kbGUoYSxyKTtpZihuP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9dGhpcy5nZXRSZXNpemVDdXJzb3Iobik6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGEscik/dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSI6dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0iZGVmYXVsdCIsdGhpcy5pc0RyYWdnaW5nKXtsZXQgbz1hLXRoaXMuZHJhZ1N0YXJ0WCxsPXItdGhpcy5kcmFnU3RhcnRZLHA9dGhpcy5pbWFnZU9mZnNldFgsZD10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZSx1PXRoaXMuaW1hZ2VPZmZzZXRZLGM9dGhpcy5pbWFnZU9mZnNldFkrdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZS10aGlzLmNyb3BTaXplO3RoaXMuY3JvcFg9TWF0aC5tYXgocCxNYXRoLm1pbihkLHRoaXMuY3JvcFgrbykpLHRoaXMuY3JvcFk9TWF0aC5tYXgodSxNYXRoLm1pbihjLHRoaXMuY3JvcFkrbCkpLHRoaXMuZHJhZ1N0YXJ0WD1hLHRoaXMuZHJhZ1N0YXJ0WT1yLHRoaXMucmVuZGVyKCl9dGhpcy5pc1Jlc2l6aW5nJiYodGhpcy5oYW5kbGVSZXNpemUoYSxyKSx0aGlzLmRyYWdTdGFydFg9YSx0aGlzLmRyYWdTdGFydFk9cix0aGlzLnJlbmRlcigpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuaXNSZXNpemluZz0hMSx0aGlzLnJlc2l6ZUhhbmRsZT0iIn1oYW5kbGVUb3VjaFN0YXJ0KGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdD1lLnRvdWNoZXNbMF0sYT1uZXcgTW91c2VFdmVudCgibW91c2Vkb3duIix7Y2xpZW50WDp0LmNsaWVudFgsY2xpZW50WTp0LmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlRG93bihhKX1oYW5kbGVUb3VjaE1vdmUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB0PWUudG91Y2hlc1swXSxhPW5ldyBNb3VzZUV2ZW50KCJtb3VzZW1vdmUiLHtjbGllbnRYOnQuY2xpZW50WCxjbGllbnRZOnQuY2xpZW50WX0pO3RoaXMuaGFuZGxlTW91c2VNb3ZlKGEpfWhhbmRsZVRvdWNoRW5kKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1vdXNlVXAoKX1nZXRSZXNpemVIYW5kbGUoZSx0KXtsZXQgcj17bnc6e3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LG5lOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHN3Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHNlOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX19O2ZvcihsZXRbbixvXW9mIE9iamVjdC5lbnRyaWVzKHIpKWlmKE1hdGguYWJzKGUtby54KTwyMCYmTWF0aC5hYnModC1vLnkpPDIwKXJldHVybiBuO3JldHVybiIifWdldFJlc2l6ZUN1cnNvcihlKXtyZXR1cm57bnc6Im53LXJlc2l6ZSIsbmU6Im5lLXJlc2l6ZSIsc3c6InN3LXJlc2l6ZSIsc2U6InNlLXJlc2l6ZSJ9W2VdfHwiZGVmYXVsdCJ9aXNJbnNpZGVDcm9wQXJlYShlLHQpe3JldHVybiBlPj10aGlzLmNyb3BYJiZlPD10aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUmJnQ+PXRoaXMuY3JvcFkmJnQ8PXRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1oYW5kbGVSZXNpemUoZSx0KXtsZXQgYT1lLXRoaXMuZHJhZ1N0YXJ0WCxyPXQtdGhpcy5kcmFnU3RhcnRZLG49dGhpcy5pbWFnZU9mZnNldFgsbz10aGlzLmltYWdlT2Zmc2V0WSxsPXRoaXMuaW1hZ2VPZmZzZXRYK3RoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSxwPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGU7c3dpdGNoKHRoaXMucmVzaXplSGFuZGxlKXtjYXNlInNlIjp0aGlzLmNyb3BTaXplPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsTWF0aC5taW4odGhpcy5jcm9wU2l6ZStNYXRoLm1heChhLHIpLE1hdGgubWluKGwtdGhpcy5jcm9wWCxwLXRoaXMuY3JvcFkpKSk7YnJlYWs7Y2FzZSJudyI6bGV0IGQ9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplLU1hdGgubWF4KGEscikpLHU9dGhpcy5jcm9wU2l6ZS1kLGM9dGhpcy5jcm9wWCt1LGI9dGhpcy5jcm9wWSt1O2M+PW4mJmI+PW8mJih0aGlzLmNyb3BYPWMsdGhpcy5jcm9wWT1iLHRoaXMuY3JvcFNpemU9ZCk7YnJlYWs7Y2FzZSJuZSI6bGV0IHY9TWF0aC5tYXgoYSwtcikseD1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUrdiksbT14LXRoaXMuY3JvcFNpemUsZj10aGlzLmNyb3BZLW07Zj49byYmdGhpcy5jcm9wWCt4PD1sJiYodGhpcy5jcm9wWT1mLHRoaXMuY3JvcFNpemU9eCk7YnJlYWs7Y2FzZSJzdyI6bGV0IHk9TWF0aC5tYXgoLWEsciksTT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUreSksej1NLXRoaXMuY3JvcFNpemUsTj10aGlzLmNyb3BYLXo7Tj49biYmdGhpcy5jcm9wWStNPD1wJiYodGhpcy5jcm9wWD1OLHRoaXMuY3JvcFNpemU9TSk7YnJlYWt9fXJlbmRlcigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5jdHguZmlsbFN0eWxlPSIjMDAwMDAwIix0aGlzLmN0eC5maWxsUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWcsdGhpcy5pbWFnZU9mZnNldFgsdGhpcy5pbWFnZU9mZnNldFksdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLHRoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUpLHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9InJnYmEoMCwgMCwgMCwgMC41KSIsdGhpcy5vdmVybGF5Q3R4LmZpbGxSZWN0KHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguc2F2ZSgpLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSk6KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHgucmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLm92ZXJsYXlDdHguY2xpcCgpKSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LnJlc3RvcmUoKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlU3R5bGU9IndoaXRlIix0aGlzLm92ZXJsYXlDdHgubGluZVdpZHRoPTIsdGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIj8odGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmModGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wU2l6ZS8yLDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlKCkpOnRoaXMub3ZlcmxheUN0eC5zdHJva2VSZWN0KHRoaXMuY3JvcFgsdGhpcy5jcm9wWSx0aGlzLmNyb3BTaXplLHRoaXMuY3JvcFNpemUpLHRoaXMuZHJhd1Jlc2l6ZUhhbmRsZXMoKX1kcmF3UmVzaXplSGFuZGxlcygpe2xldCB0PVt7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfV07dGhpcy5vdmVybGF5Q3R4LmZpbGxTdHlsZT0id2hpdGUiLHQuZm9yRWFjaChhPT57dGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmMoYS54LGEueSw4LDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguZmlsbCgpfSl9YXN5bmMgZ2V0Q3JvcHBlZEltYWdlKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdD1lLmdldENvbnRleHQoIjJkIiksYT0xL3RoaXMuaW1hZ2VTY2FsZSxyPXRoaXMuY3JvcFNpemUqYSxuPXRoaXMub3B0aW9ucy5vdXRwdXRTaXplO24+ciYmY29uc29sZS5pbmZvKGBQcm9maWxlIHBpY3R1cmU6IFVwc2NhbGluZyBmcm9tICR7TWF0aC5yb3VuZChyKX1weCB0byAke259cHhgKSxlLndpZHRoPW4sZS5oZWlnaHQ9bjtsZXQgbz0odGhpcy5jcm9wWC10aGlzLmltYWdlT2Zmc2V0WCkqYSxsPSh0aGlzLmNyb3BZLXRoaXMuaW1hZ2VPZmZzZXRZKSphLHA9dGhpcy5jcm9wU2l6ZSphO3RoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCImJih0LmJlZ2luUGF0aCgpLHQuYXJjKG4vMixuLzIsbi8yLDAsTWF0aC5QSSoyKSx0LmNsaXAoKSksdC5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsdC5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLHQuZHJhd0ltYWdlKHRoaXMuaW1nLG8sbCxwLHAsMCwwLG4sbik7bGV0IHU9dGhpcy5vcHRpb25zLmltYWdlLmluY2x1ZGVzKCJpbWFnZS9wbmciKT8iaW1hZ2UvcG5nIjoiaW1hZ2UvanBlZyI7cmV0dXJuIGUudG9EYXRhVVJMKHUsdGhpcy5vcHRpb25zLm91dHB1dFF1YWxpdHkpfWRlc3Ryb3koKXt0aGlzLmNhbnZhcy5yZW1vdmUoKSx0aGlzLm92ZXJsYXlDYW52YXMucmVtb3ZlKCl9fX0pO3ZhciBHaCxSbixHaXQsJDZhPWcoKCk9PntwZSgpO0cxKCk7Q3IoKTt6bigpO1VhKCk7RDgoKTtGMSgpO0YxKCk7VDZhKCk7cHQoKTtHaD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sUm49ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEdpdD0oKCk9PntsZXQgcz1bbmUoImRlZXMtcHJvZmlsZXBpY3R1cmUtbW9kYWwiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiUHJvZmlsZVBpY3R1cmVNb2RhbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEdoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpbml0aWFsSW1hZ2UiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pbml0aWFsSW1hZ2UsImdldCIpLHNldDppKChTLEkpPT57Uy5pbml0aWFsSW1hZ2U9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLEdoKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNoYXBlImluIFMsImhhcyIpLGdldDppKFM9PlMuc2hhcGUsImdldCIpLHNldDppKChTLEkpPT57Uy5zaGFwZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksR2godGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvdXRwdXRTaXplImluIFMsImhhcyIpLGdldDppKFM9PlMub3V0cHV0U2l6ZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm91dHB1dFNpemU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLEdoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ib3V0cHV0UXVhbGl0eSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm91dHB1dFF1YWxpdHksImdldCIpLHNldDppKChTLEkpPT57Uy5vdXRwdXRRdWFsaXR5PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxHaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXJyZW50U3RlcCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmN1cnJlbnRTdGVwLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3VycmVudFN0ZXA9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLEdoKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JvcHBlZEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjcm9wcGVkSW1hZ2UiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jcm9wcGVkSW1hZ2UsImdldCIpLHNldDppKChTLEkpPT57Uy5jcm9wcGVkSW1hZ2U9SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLEdoKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9jZXNzaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpc1Byb2Nlc3NpbmciaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pc1Byb2Nlc3NpbmcsImdldCIpLHNldDppKChTLEkpPT57Uy5pc1Byb2Nlc3Npbmc9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLEdoKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9I2U9Um4odGhpcyxvLCIiKTtnZXQgaW5pdGlhbEltYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGluaXRpYWxJbWFnZShrKXt0aGlzLiNlPWt9I3Q9KFJuKHRoaXMsbCksUm4odGhpcyxkLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUoayl7dGhpcy4jdD1rfSNhPShSbih0aGlzLHUpLFJuKHRoaXMsYiw4MDApKTtnZXQgb3V0cHV0U2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBvdXRwdXRTaXplKGspe3RoaXMuI2E9a30jcz0oUm4odGhpcyx2KSxSbih0aGlzLG0sLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jc31zZXQgb3V0cHV0UXVhbGl0eShrKXt0aGlzLiNzPWt9I2k9KFJuKHRoaXMsZiksUm4odGhpcyxNLCJjcm9wIikpO2dldCBjdXJyZW50U3RlcCgpe3JldHVybiB0aGlzLiNpfXNldCBjdXJyZW50U3RlcChrKXt0aGlzLiNpPWt9I3I9KFJuKHRoaXMseiksUm4odGhpcyxDLCIiKSk7Z2V0IGNyb3BwZWRJbWFnZSgpe3JldHVybiB0aGlzLiNyfXNldCBjcm9wcGVkSW1hZ2Uoayl7dGhpcy4jcj1rfSNvPShSbih0aGlzLF8pLFJuKHRoaXMsJCwhMSkpO2dldCBpc1Byb2Nlc3NpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQcm9jZXNzaW5nKGspe3RoaXMuI289a31jcm9wcGVyPShSbih0aGlzLEUpLG51bGwpO3dpbmRvd0xheWVyO3pJbmRleD0wO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogdmFyKC0tei1pbmRleCk7CiAgICAgIH0KCiAgICAgIC5tb2RhbC1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBhMGEwYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICB3aWR0aDogNDgwcHg7CiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlKDAuOTgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYW5pbWF0aW9uOiBtb2RhbFNob3cgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBtb2RhbFNob3cgewogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogNTJweDsKICAgICAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubW9kYWwtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTBweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsLWJvZHkgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLmNyb3BwZXItY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDM2MHB4OwogICAgICAgIGFzcGVjdC1yYXRpbzogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNikiLCJpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICB9CgogICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2UgewogICAgICAgIHdpZHRoOiAxODBweDsKICAgICAgICBoZWlnaHQ6IDE4MHB4OwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSkiLCIwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZS5zcXVhcmUgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zdWNjZXNzLW1lc3NhZ2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTBiOTgxIiwiIzEwYjk4MSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYW5pbWF0aW9uOiBzdWNjZXNzUHVsc2UgMC40cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzdWNjZXNzUHVsc2UgewogICAgICAgIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgfQogICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDIwcHggMjRweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5pbnN0cnVjdGlvbnMgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIG1heC13aWR0aDogMzIwcHg7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgICBtYXJnaW46IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgfQogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy53aW5kb3dMYXllcj1hd2FpdCBoby5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuY2xvc2UoKSksdGhpcy56SW5kZXg9eGEuZ2V0TmV4dFpJbmRleCgpLHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tei1pbmRleCIsdGhpcy56SW5kZXgudG9TdHJpbmcoKSkseGEucmVnaXN0ZXIodGhpcyx0aGlzLnpJbmRleCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY3JvcHBlciYmdGhpcy5jcm9wcGVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx4YS51bnJlZ2lzdGVyKHRoaXMpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1jb250YWluZXIiIEBjbGljaz0ke2s9Pmsuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgICA8aDMgY2xhc3M9Im1vZGFsLXRpdGxlIj4KICAgICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiPyJBZGp1c3QgSW1hZ2UiOiJTdWNjZXNzIn0KICAgICAgICAgIDwvaDM+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbG9zZS1idXR0b24iIEBjbGljaz0ke3RoaXMuY2xvc2V9IHRpdGxlPSJDbG9zZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOngiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPgogICAgICAgICAgICAgIFBvc2l0aW9uIGFuZCByZXNpemUgdGhlIHNxdWFyZSB0byBzZWxlY3QgeW91ciBwcm9maWxlIGFyZWEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyb3BwZXItY29udGFpbmVyIiBpZD0iY3JvcHBlckNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgICAgICAke3RoaXMuaXNQcm9jZXNzaW5nP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5TYXZpbmcuLi48L2Rpdj4KICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICA8aW1nIAogICAgICAgICAgICAgICAgICBjbGFzcz0icHJldmlldy1pbWFnZSAke3RoaXMuc2hhcGV9IiAKICAgICAgICAgICAgICAgICAgc3JjPSIke3RoaXMuY3JvcHBlZEltYWdlfSIgCiAgICAgICAgICAgICAgICAgIGFsdD0iQ3JvcHBlZCBwcmV2aWV3IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Y2Nlc3MtbWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZWNrIiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8c3Bhbj5Mb29raW5nIGdvb2QhPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzaXplPSJzbSIgQGNsaWNrPSR7dGhpcy5jbG9zZX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0IiBzaXplPSJzbSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDcm9wfT4KICAgICAgICAgICAgICBTYXZlCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIiYmYXdhaXQgdGhpcy5pbml0aWFsaXplQ3JvcHBlcigpfWFzeW5jIGluaXRpYWxpemVDcm9wcGVyKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgaz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNyb3BwZXJDb250YWluZXIiKTtrJiYodGhpcy5jcm9wcGVyPW5ldyBzMWUoe2NvbnRhaW5lcjprLGltYWdlOnRoaXMuaW5pdGlhbEltYWdlLHNoYXBlOnRoaXMuc2hhcGUsYXNwZWN0UmF0aW86MSxvdXRwdXRTaXplOnRoaXMub3V0cHV0U2l6ZSxvdXRwdXRRdWFsaXR5OnRoaXMub3V0cHV0UXVhbGl0eX0pLGF3YWl0IHRoaXMuY3JvcHBlci5pbml0aWFsaXplKCkpfWFzeW5jIGhhbmRsZUNyb3AoKXtpZih0aGlzLmNyb3BwZXIpdHJ5e3RoaXMuaXNQcm9jZXNzaW5nPSEwLHRoaXMuY3VycmVudFN0ZXA9InByZXZpZXciLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IGs9YXdhaXQgdGhpcy5jcm9wcGVyLmdldENyb3BwZWRJbWFnZSgpO3RoaXMuY3JvcHBlZEltYWdlPWssYXdhaXQgbmV3IFByb21pc2UoUz0+c2V0VGltZW91dChTLDgwMCkpLHRoaXMuaXNQcm9jZXNzaW5nPSExLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNhdmUiLHtkZXRhaWw6e2Nyb3BwZWRJbWFnZTp0aGlzLmNyb3BwZWRJbWFnZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5jbG9zZSgpfSwxNTAwKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKCJFcnJvciBjcm9wcGluZyBpbWFnZToiLGspLHRoaXMuaXNQcm9jZXNzaW5nPSExfX1jbG9zZSgpe3RoaXMucmVtb3ZlKCl9c3RhdGlje1JuKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBENmEsTDZhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTtLaXQoKTtENmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0OHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVbc2hhcGU9InJvdW5kIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHQ9PntsZXQgYT10LnRhcmdldDtjb25zb2xlLmxvZygiUm91bmQgcHJvZmlsZSBwaWN0dXJlIGNoYW5nZWQ6IixhLnZhbHVlPy5zdWJzdHJpbmcoMCw1MCkrIi4uLiIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9maWxlIFBpY3R1cmUgSW5wdXQifSAuc3VidGl0bGU9JHsiQmFzaWMgdXNhZ2Ugd2l0aCByb3VuZCBhbmQgc3F1YXJlIHNoYXBlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJQcm9maWxlIFBpY3R1cmUgKFJvdW5kKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRvIHVwbG9hZCBvciBkcmFnICYgZHJvcCBhbiBpbWFnZSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChTcXVhcmUpIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3VwcG9ydHMgSlBFRywgUE5HLCBhbmQgV2ViUCBmb3JtYXRzIgogICAgICAgICAgICBzaGFwZT0ic3F1YXJlIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZSIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCByPWEudGFyZ2V0O2NvbnNvbGUubG9nKGBQcm9maWxlIChzaXplICR7ci5zaXplfSkgY2hhbmdlZGApfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNpemUgVmFyaWF0aW9ucyJ9IC5zdWJ0aXRsZT0keyJQcm9maWxlIHBpY3R1cmVzIGluIGRpZmZlcmVudCBzaXplcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJTbWFsbCAoODBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iODAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTWVkaXVtICgxMjBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IkxhcmdlICgxNjBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTYwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajRLSUNBOFpHVm1jejRLSUNBZ0lEeHNhVzVsWVhKSGNtRmthV1Z1ZENCcFpEMGlaM0poWkdsbGJuUWlJSGd4UFNJd0pTSWdlVEU5SWpBbElpQjRNajBpTVRBd0pTSWdlVEk5SWpFd01DVWlQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpBbElpQnpkRzl3TFdOdmJHOXlQU0lqTmpZM1pXVmhJaUF2UGdvZ0lDQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTTNOalJpWVRJaUlDOCtDaUFnSUNBOEwyeHBibVZoY2tkeVlXUnBaVzUwUGdvZ0lEd3ZaR1ZtY3o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnWm1sc2JEMGlkWEpzS0NObmNtRmthV1Z1ZENraUlDOCtDaUFnUEhSbGVIUWdlRDBpTlRBbElpQjVQU0kxTUNVaUlHUnZiV2x1WVc1MExXSmhjMlZzYVc1bFBTSnRhV1JrYkdVaUlIUmxlSFF0WVc1amFHOXlQU0p0YVdSa2JHVWlJR1p2Ym5RdFptRnRhV3g1UFNKQmNtbGhiQ0lnWm05dWRDMXphWHBsUFNJNE1DSWdabWxzYkQwaWQyaHBkR1VpUGtwRVBDOTBaWGgwUGdvOEwzTjJaejQ9Iix0PXMucXVlcnlTZWxlY3RvcigiI3ByZWZpbGxlZC1wcm9maWxlIik7dCYmKHQudmFsdWU9ZSx0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldCxuPXMucXVlcnlTZWxlY3RvcigiI3ByZWZpbGxlZC1vdXRwdXQiKTtuJiYobi50ZXh0Q29udGVudD1yLnZhbHVlP2BJbWFnZSBkYXRhOiAke3IudmFsdWUuc3Vic3RyaW5nKDAsODApfS4uLmA6Ik5vIGltYWdlIHNlbGVjdGVkIil9KSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcmUtZmlsbGVkIGFuZCBWYWx1ZSBCaW5kaW5nIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZSB3aXRoIGluaXRpYWwgdmFsdWUgYW5kIGNoYW5nZSB0cmFja2luZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICBpZD0icHJlZmlsbGVkLXByb2ZpbGUiCiAgICAgICAgICBsYWJlbD0iRWRpdCBFeGlzdGluZyBQcm9maWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRoZSBlZGl0IGJ1dHRvbiB0byBjaGFuZ2Ugb3IgZGVsZXRlIHRvIHJlbW92ZSIKICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgIHNpemU9IjE1MCIKICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InByZWZpbGxlZC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICBJbWFnZSBkYXRhIHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBjaGFuZ2VkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZWQtcHJvZmlsZSIpO2UmJihlLnZhbHVlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpSTJOalkyTmpZeUlnTHo0S0lDQThkR1Y0ZENCNFBTSTFNQ1VpSUhrOUlqVXdKU0lnWkc5dGFXNWhiblF0WW1GelpXeHBibVU5SW0xcFpHUnNaU0lnZEdWNGRDMWhibU5vYjNJOUltMXBaR1JzWlNJZ1ptOXVkQzFtWVcxcGJIazlJa0Z5YVdGc0lpQm1iMjUwTFhOcGVtVTlJall3SWlCbWFXeHNQU0ozYUdsMFpTSStUa0U4TDNSbGVIUStDand2YzNablBnPT0iKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUmVxdWlyZWQgRmllbGQiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgaWQ9ImRpc2FibGVkLXByb2ZpbGUiCiAgICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBTdGF0ZSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlVwbG9hZCBPbmx5IgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iRGVsZXRlIG5vdCBhbGxvd2VkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5hbGxvd0RlbGV0ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZmVhdHVyZSBzZXQgb2YgdGhlIHByb2ZpbGUgcGljdHVyZSBpbnB1dCJ9PgogICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIFVwbG9hZDo8L3N0cm9uZz4gQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGltYWdlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDcm9wcGluZzo8L3N0cm9uZz4gSW50ZXJhY3RpdmUgY3JvcCB0b29sIHdpdGggcmVzaXplIGhhbmRsZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2hhcGUgU3VwcG9ydDo8L3N0cm9uZz4gUm91bmQgb3Igc3F1YXJlIHByb2ZpbGUgcGljdHVyZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2l6ZSBDdXN0b21pemF0aW9uOjwvc3Ryb25nPiBBZGp1c3RhYmxlIGRpbWVuc2lvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UHJldmlldyAmIEVkaXQ6PC9zdHJvbmc+IEhvdmVyIG92ZXJsYXkgd2l0aCBlZGl0IGFuZCBkZWxldGUgb3B0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5GaWxlIFZhbGlkYXRpb246PC9zdHJvbmc+IEZvcm1hdCBhbmQgc2l6ZSByZXN0cmljdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBEZXNpZ246PC9zdHJvbmc+IFdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZSBkZXZpY2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZvcm0gSW50ZWdyYXRpb246PC9zdHJvbmc+IFN0YW5kYXJkIGZvcm0gdmFsdWUgYmluZGluZyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5Ojwvc3Ryb25nPiBLZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBzY3JlZW4gcmVhZGVyIHN1cHBvcnQ8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Wi1JbmRleCBNYW5hZ2VtZW50Ojwvc3Ryb25nPiBQcm9wZXIgbW9kYWwgc3RhY2tpbmcgd2l0aCByZWdpc3RyeTwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8c3Ryb25nPlN1cHBvcnRlZCBGb3JtYXRzOjwvc3Ryb25nPiBKUEVHLCBQTkcsIFdlYlA8YnI+CiAgICAgICAgICA8c3Ryb25nPk1heCBGaWxlIFNpemU6PC9zdHJvbmc+IDVNQiAoY29uZmlndXJhYmxlKTxicj4KICAgICAgICAgIDxzdHJvbmc+T3V0cHV0IEZvcm1hdDo8L3N0cm9uZz4gQmFzZTY0IGVuY29kZWQgSlBFRwogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgRGwsWHMsRTZhLEtpdD1nKCgpPT57cGUoKTt6aSgpO1VhKCk7bHYoKTskNmEoKTtMNmEoKTtwdCgpO0RsPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxYcz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRTZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZSIpXSxlLHQ9W10sYSxyPU90LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXTt2YXIgaWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFByb2ZpbGVQaWN0dXJlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHRlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOkJvb2xlYW59KV0sTz1bTCh7dHlwZTpOdW1iZXJ9KV0sSD1bTCh7dHlwZTpBcnJheX0pXSxJPVtMKHt0eXBlOk51bWJlcn0pXSxLPVtMKHt0eXBlOk51bWJlcn0pXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxEbCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4idmFsdWUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS52YWx1ZSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLnZhbHVlPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxvLGwpLERsKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJzaGFwZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNoYXBlLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuc2hhcGU9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGQsdSksRGwodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ic2l6ZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNpemUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5zaXplPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxiLHYpLERsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJwbGFjZWhvbGRlciJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUucGxhY2Vob2xkZXI9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LG0sZiksRGwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd1VwbG9hZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImFsbG93VXBsb2FkImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuYWxsb3dVcGxvYWQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5hbGxvd1VwbG9hZD1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sTSx6KSxEbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iYWxsb3dEZWxldGUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5hbGxvd0RlbGV0ZSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmFsbG93RGVsZXRlPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxDLF8pLERsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJtYXhGaWxlU2l6ZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm1heEZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUubWF4RmlsZVNpemU9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LCQsRSksRGwodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY2NlcHRlZEZvcm1hdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJhY2NlcHRlZEZvcm1hdHMiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5hY2NlcHRlZEZvcm1hdHMsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5hY2NlcHRlZEZvcm1hdHM9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGssUyksRGwodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ib3V0cHV0U2l6ZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm91dHB1dFNpemUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5vdXRwdXRTaXplPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxQLFIpLERsKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im91dHB1dFF1YWxpdHkiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5vdXRwdXRRdWFsaXR5LCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUub3V0cHV0UXVhbGl0eT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sVixXKSxEbCh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJpc0hvdmVyZWQiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5pc0hvdmVyZWQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5pc0hvdmVyZWQ9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEIsVSksRGwodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImlzRHJhZ2dpbmciaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5pc0RyYWdnaW5nLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuaXNEcmFnZ2luZz1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sRixqKSxEbCh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJpc0xvYWRpbmciaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5pc0xvYWRpbmcsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5pc0xvYWRpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGxlLFEpLERsKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnRlfSxudWxsLHQpLGllPWE9ZS52YWx1ZSx0ZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0ZX0pfXN0YXRpYyBkZW1vPUQ2YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9WHModGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUodGUpe3RoaXMuI2U9dGV9I3Q9KFhzKHRoaXMsbCksWHModGhpcyxkLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUodGUpe3RoaXMuI3Q9dGV9I2E9KFhzKHRoaXMsdSksWHModGhpcyxiLDEyMCkpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNpemUodGUpe3RoaXMuI2E9dGV9I3M9KFhzKHRoaXMsdiksWHModGhpcyxtLCIiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBsYWNlaG9sZGVyKHRlKXt0aGlzLiNzPXRlfSNpPShYcyh0aGlzLGYpLFhzKHRoaXMsTSwhMCkpO2dldCBhbGxvd1VwbG9hZCgpe3JldHVybiB0aGlzLiNpfXNldCBhbGxvd1VwbG9hZCh0ZSl7dGhpcy4jaT10ZX0jcj0oWHModGhpcyx6KSxYcyh0aGlzLEMsITApKTtnZXQgYWxsb3dEZWxldGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYWxsb3dEZWxldGUodGUpe3RoaXMuI3I9dGV9I289KFhzKHRoaXMsXyksWHModGhpcywkLDUqMTAyNCoxMDI0KSk7Z2V0IG1heEZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heEZpbGVTaXplKHRlKXt0aGlzLiNvPXRlfSNuPShYcyh0aGlzLEUpLFhzKHRoaXMsayxbImltYWdlL2pwZWciLCJpbWFnZS9wbmciLCJpbWFnZS93ZWJwIl0pKTtnZXQgYWNjZXB0ZWRGb3JtYXRzKCl7cmV0dXJuIHRoaXMuI259c2V0IGFjY2VwdGVkRm9ybWF0cyh0ZSl7dGhpcy4jbj10ZX0jbD0oWHModGhpcyxTKSxYcyh0aGlzLFAsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb3V0cHV0U2l6ZSh0ZSl7dGhpcy4jbD10ZX0jYz0oWHModGhpcyxSKSxYcyh0aGlzLFYsLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jY31zZXQgb3V0cHV0UXVhbGl0eSh0ZSl7dGhpcy4jYz10ZX0jZD0oWHModGhpcyxXKSxYcyh0aGlzLEIsITEpKTtnZXQgaXNIb3ZlcmVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSG92ZXJlZCh0ZSl7dGhpcy4jZD10ZX0jdT0oWHModGhpcyxVKSxYcyh0aGlzLEYsITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiN1fXNldCBpc0RyYWdnaW5nKHRlKXt0aGlzLiN1PXRlfSNwPShYcyh0aGlzLGopLFhzKHRoaXMsbGUsITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGlzTG9hZGluZyh0ZSl7dGhpcy4jcD10ZX1tb2RhbEluc3RhbmNlPShYcyh0aGlzLFEpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLWNvbnRhaW5lcjpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmRyYWdnaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAucHJvZmlsZS1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgLm92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuOTUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC45KSIsInJnYmEoMjIwLCAzOCwgMzgsIDAuOSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2RjMjYyNiIpfTsKICAgICAgfQoKICAgICAgLmRyb3Atem9uZS10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmhpZGRlbi1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBhbmltYXRpb24gKi8KICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuY2xpY2tpbmcgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlLW91dDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICAKICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InByb2ZpbGUtY29udGFpbmVyIgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30KICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuaGFuZGxlRHJhZ092ZXJ9CiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5oYW5kbGVEcmFnTGVhdmV9CiAgICAgICAgICBAZHJvcD0ke3RoaXMuaGFuZGxlRHJvcH0KICAgICAgICAgIHN0eWxlPSItLXNpemU6ICR7dGhpcy5zaXplfXB4IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcGljdHVyZSAke3RoaXMuc2hhcGV9ICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9ICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlPyJjbGlja2luZyI6IiJ9Ij4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGltZyBjbGFzcz0icHJvZmlsZS1pbWFnZSIgc3JjPSIke3RoaXMudmFsdWV9IiBhbHQ9IlByb2ZpbGUgcGljdHVyZSIgLz4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InBsYWNlaG9sZGVyLWljb24iIGljb249Imx1Y2lkZTp1c2VyIiBpY29uU2l6ZT0iJHt0aGlzLnNpemUqLjV9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0RyYWdnaW5nP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgc3R5bGU9Im9wYWNpdHk6IDEiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcC16b25lLXRleHQiPgogICAgICAgICAgICAgICAgICBEcm9wIGltYWdlIGhlcmUKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLnZhbHVlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93VXBsb2FkP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24iIEBjbGljaz0ke3RlPT57dGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuTW9kYWwoKX19IHRpdGxlPSJDaGFuZ2UgcGljdHVyZSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpwZW5jaWwiIGljb25TaXplPSIyMCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICR7dGhpcy5hbGxvd0RlbGV0ZT93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im92ZXJsYXktYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7dGU9Pnt0ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRlbGV0ZVBpY3R1cmUoKX19IHRpdGxlPSJEZWxldGUgcGljdHVyZSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp0cmFzaDIiIGljb25TaXplPSIyMCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5IHNob3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxpbnB1dAogICAgICAgICAgdHlwZT0iZmlsZSIKICAgICAgICAgIGNsYXNzPSJoaWRkZW4taW5wdXQiCiAgICAgICAgICBhY2NlcHQ9IiR7dGhpcy5hY2NlcHRlZEZvcm1hdHMuam9pbigiLCIpfSIKICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgLz4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNsaWNrKCl7aWYoISh0aGlzLmRpc2FibGVkfHwhdGhpcy5hbGxvd1VwbG9hZCkmJiF0aGlzLnZhbHVlKXt0aGlzLmlzTG9hZGluZz0hMDtsZXQgdGU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5oaWRkZW4taW5wdXQiKSxlZT1pKCgpPT57c2V0VGltZW91dCgoKT0+eyghdGUuZmlsZXN8fHRlLmZpbGVzLmxlbmd0aD09PTApJiYodGhpcy5pc0xvYWRpbmc9ITEpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsZWUpfSwzMDApfSwiaGFuZGxlRm9jdXMiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGVlKSx0ZS5jbGljaygpfX1oYW5kbGVGaWxlU2VsZWN0KHRlKXtsZXQgZWU9dGUudGFyZ2V0LGtlPWVlLmZpbGVzPy5bMF07dGhpcy5pc0xvYWRpbmc9ITEsa2UmJnRoaXMucHJvY2Vzc0ZpbGUoa2UpLGVlLnZhbHVlPSIifWhhbmRsZURyYWdPdmVyKHRlKXt0ZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRpc2FibGVkJiZ0aGlzLmFsbG93VXBsb2FkJiYodGhpcy5pc0RyYWdnaW5nPSEwKX1oYW5kbGVEcmFnTGVhdmUoKXt0aGlzLmlzRHJhZ2dpbmc9ITF9aGFuZGxlRHJvcCh0ZSl7aWYodGUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmc9ITEsdGhpcy5kaXNhYmxlZHx8IXRoaXMuYWxsb3dVcGxvYWQpcmV0dXJuO2xldCBlZT10ZS5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO2VlJiZ0aGlzLnByb2Nlc3NGaWxlKGVlKX1hc3luYyBwcm9jZXNzRmlsZSh0ZSl7aWYoIXRoaXMuYWNjZXB0ZWRGb3JtYXRzLmluY2x1ZGVzKHRlLnR5cGUpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLHRlLnR5cGUpO3JldHVybn1pZih0ZS5zaXplPnRoaXMubWF4RmlsZVNpemUpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlOiIsdGUuc2l6ZSk7cmV0dXJufWxldCBlZT1uZXcgRmlsZVJlYWRlcjtlZS5vbmxvYWQ9YXN5bmMga2U9PntsZXQgWD1rZS50YXJnZXQ/LnJlc3VsdDthd2FpdCB0aGlzLm9wZW5Nb2RhbChYKX0sZWUucmVhZEFzRGF0YVVSTCh0ZSl9YXN5bmMgb3Blbk1vZGFsKHRlKXtsZXQgZWU9dGV8fHRoaXMudmFsdWU7aWYoIWVlKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmhpZGRlbi1pbnB1dCIpLmNsaWNrKCk7cmV0dXJufXRoaXMubW9kYWxJbnN0YW5jZT1uZXcgR2l0LHRoaXMubW9kYWxJbnN0YW5jZS5zaGFwZT10aGlzLnNoYXBlLHRoaXMubW9kYWxJbnN0YW5jZS5pbml0aWFsSW1hZ2U9ZWUsdGhpcy5tb2RhbEluc3RhbmNlLm91dHB1dFNpemU9dGhpcy5vdXRwdXRTaXplLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRRdWFsaXR5PXRoaXMub3V0cHV0UXVhbGl0eSx0aGlzLm1vZGFsSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigic2F2ZSIsKGtlPT57dGhpcy52YWx1ZT1rZS5kZXRhaWwuY3JvcHBlZEltYWdlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5tb2RhbEluc3RhbmNlKX1kZWxldGVQaWN0dXJlKCl7dGhpcy52YWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHRlKXt0aGlzLnZhbHVlPXRlfXN0YXRpY3tYcyhhLHQpfX07cmV0dXJuIGllPWF9KSgpfSk7dmFyIFA2YT1nKCgpPT57ZjZhKCk7dml0KCk7bTZhKCk7aG5lKCk7eGl0KCk7VWV0KCk7ZzZhKCk7YjZhKCk7djZhKCk7eDZhKCk7eTZhKCk7dzZhKCk7azZhKCk7XzZhKCk7eWl0KCk7Yml0KCk7TTZhKCk7ejZhKCk7QzZhKCk7S2l0KCl9KTt2YXIgSTZhLEE2YT1nKCgpPT57cGUoKTtJNmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtb0NvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ob24tU2VsZWN0YWJsZSBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5CYXNpYyBjaGlwcyB3aXRob3V0IHNlbGVjdGlvbiBjYXBhYmlsaXR5LiBVc2UgZm9yIGRpc3BsYXktb25seSB0YWdzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im5vbmUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJzdGF0dXMiLHZhbHVlOiJBY3RpdmUifSx7a2V5OiJ0aWVyIix2YWx1ZToiUHJlbWl1bSJ9LHtrZXk6InJlZ2lvbiIsdmFsdWU6IkVVLVdlc3QifSx7a2V5OiJ0eXBlIix2YWx1ZToiRW50ZXJwcmlzZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2luZ2xlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DbGljayB0byBzZWxlY3Qgb25lIGNoaXAgYXQgYSB0aW1lLiBVc2VmdWwgZm9yIGZpbHRlcnMgYW5kIG9wdGlvbnMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiYWxsIix2YWx1ZToiQWxsIFByb2plY3RzIn0se2tleToiYWN0aXZlIix2YWx1ZToiQWN0aXZlIn0se2tleToiYXJjaGl2ZWQiLHZhbHVlOiJBcmNoaXZlZCJ9LHtrZXk6ImRyYWZ0cyIsdmFsdWU6IkRyYWZ0cyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TXVsdGlwbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNlbGVjdCBtdWx0aXBsZSBjaGlwcyBzaW11bHRhbmVvdXNseS4gR3JlYXQgZm9yIHRhZyBzZWxlY3Rpb24uPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJqcyIsdmFsdWU6IkphdmFTY3JpcHQifSx7a2V5OiJ0cyIsdmFsdWU6IlR5cGVTY3JpcHQifSx7a2V5OiJyZWFjdCIsdmFsdWU6IlJlYWN0In0se2tleToidnVlIix2YWx1ZToiVnVlIn0se2tleToiYW5ndWxhciIsdmFsdWU6IkFuZ3VsYXIifSx7a2V5OiJub2RlIix2YWx1ZToiTm9kZS5qcyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmVtb3ZhYmxlIENoaXBzIHdpdGggS2V5czwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DaGlwcyB3aXRoIHJlbW92ZSBidXR0b25zIGFuZCBrZXktdmFsdWUgcGFpcnMuIFBlcmZlY3QgZm9yIGR5bmFtaWMgbGlzdHMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIGNoaXBzQXJlUmVtb3ZhYmxlCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJlbnYiLHZhbHVlOiJQcm9kdWN0aW9uIn0se2tleToidmVyc2lvbiIsdmFsdWU6IjIuNC4xIn0se2tleToiYnJhbmNoIix2YWx1ZToibWFpbiJ9LHtrZXk6ImF1dGhvciIsdmFsdWU6IkpvaG4gRG9lIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaXhlZCBDb250ZW50IEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29tYmluaW5nIGRpZmZlcmVudCBjaGlwIHR5cGVzIGZvciBjb21wbGV4IFVJcy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJtdWx0aXBsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToicHJpb3JpdHkiLHZhbHVlOiJIaWdoIn0se2tleToic3RhdHVzIix2YWx1ZToiSW4gUHJvZ3Jlc3MifSx7a2V5OiJidWciLHZhbHVlOiJCdWcifSx7a2V5OiJmZWF0dXJlIix2YWx1ZToiRmVhdHVyZSJ9LHtrZXk6InNwcmludCIsdmFsdWU6IlNwcmludCAyMyJ9LHtrZXk6ImFzc2lnbmVlIix2YWx1ZToiQWxpY2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB0eCxkMixONmEsUjZhPWcoKCk9PntwZSgpO2t0KCk7QTZhKCk7cHQoKTt0eD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZDI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LE42YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hpcHMiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoaXBzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sYz1bTCh7dHlwZTpBcnJheX0pXSx4PVtMKCldLHk9W0woe3R5cGU6QXJyYXl9KV0sdHgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25Nb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3Rpb25Nb2RlImluIF8sImhhcyIpLGdldDppKF89Pl8uc2VsZWN0aW9uTW9kZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGlvbk1vZGU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHR4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hpcHNBcmVSZW1vdmFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImNoaXBzQXJlUmVtb3ZhYmxlImluIF8sImhhcyIpLGdldDppKF89Pl8uY2hpcHNBcmVSZW1vdmFibGUsImdldCIpLHNldDppKChfLE8pPT57Xy5jaGlwc0FyZVJlbW92YWJsZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksdHgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RhYmxlQ2hpcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNlbGVjdGFibGVDaGlwcyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGFibGVDaGlwcywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGFibGVDaGlwcz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksdHgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZENoaXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNlbGVjdGVkQ2hpcCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkQ2hpcCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkQ2hpcD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksdHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZENoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZENoaXBzImluIF8sImhhcyIpLGdldDppKF89Pl8uc2VsZWN0ZWRDaGlwcywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkQ2hpcHM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLHR4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89STZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9ZDIodGhpcyxvLCJzaW5nbGUiKTtnZXQgc2VsZWN0aW9uTW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBzZWxlY3Rpb25Nb2RlKEMpe3RoaXMuI2U9Q30jdD0oZDIodGhpcyxsKSxkMih0aGlzLGQsITEpKTtnZXQgY2hpcHNBcmVSZW1vdmFibGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2hpcHNBcmVSZW1vdmFibGUoQyl7dGhpcy4jdD1DfSNhPShkMih0aGlzLHUpLGQyKHRoaXMsYixbXSkpO2dldCBzZWxlY3RhYmxlQ2hpcHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0YWJsZUNoaXBzKEMpe3RoaXMuI2E9Q30jcz0oZDIodGhpcyx2KSxkMih0aGlzLG0sbnVsbCkpO2dldCBzZWxlY3RlZENoaXAoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2VsZWN0ZWRDaGlwKEMpe3RoaXMuI3M9Q30jaT0oZDIodGhpcyxmKSxkMih0aGlzLE0sW10pKTtnZXQgc2VsZWN0ZWRDaGlwcygpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZENoaXBzKEMpe3RoaXMuI2k9Q31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksZDIodGhpcyx6KX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogICAgICB9CgogICAgICAuY2hpcDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY2hpcDphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tbGVmdDogLThweDsKICAgICAgICBwYWRkaW5nOiAwcHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCAuY2hpcEtleSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogICAgICB9CgogICAgICBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMuc2VsZWN0YWJsZUNoaXBzLm1hcChDPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0Q2hpcChDKX0KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuaXNTZWxlY3RlZChDKT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7Qy5rZXk/d2A8ZGl2IGNsYXNzPSJjaGlwS2V5Ij4ke0Mua2V5fTwvZGl2PmA6d2BgfSAke0MudmFsdWV9CiAgICAgICAgICAgICAgJHt0aGlzLmNoaXBzQXJlUmVtb3ZhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7Xz0+e18uc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVDaGlwKEMpfX0KICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7ImZhOnhtYXJrIn0KICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWlzU2VsZWN0ZWQoQyl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuc2VsZWN0ZWRDaGlwP3RoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCxDKTohMTp0aGlzLnNlbGVjdGVkQ2hpcHMuc29tZShfPT50aGlzLmlzU2FtZUNoaXAoXyxDKSl9aXNTYW1lQ2hpcChDLF8pe3JldHVybihDLmtleSYmXy5rZXl8fEMudmFsdWU9PT1fLnZhbHVlKSYmQy5rZXk9PT1fLmtleX1hc3luYyBzZWxlY3RDaGlwKEMpe3RoaXMuc2VsZWN0aW9uTW9kZSE9PSJub25lIiYmKHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuaXNTZWxlY3RlZChDKT8odGhpcy5zZWxlY3RlZENoaXA9bnVsbCx0aGlzLnNlbGVjdGVkQ2hpcHM9W10pOih0aGlzLnNlbGVjdGVkQ2hpcD1DLHRoaXMuc2VsZWN0ZWRDaGlwcz1bQ10pOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aXBsZSImJih0aGlzLmlzU2VsZWN0ZWQoQyk/dGhpcy5zZWxlY3RlZENoaXBzPXRoaXMuc2VsZWN0ZWRDaGlwcy5maWx0ZXIoXz0+IXRoaXMuaXNTYW1lQ2hpcChfLEMpKTp0aGlzLnNlbGVjdGVkQ2hpcHM9Wy4uLnRoaXMuc2VsZWN0ZWRDaGlwcyxDXSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksY29uc29sZS5sb2codGhpcy5zZWxlY3RlZENoaXBzKSl9cmVtb3ZlQ2hpcChDKXt0aGlzLnNlbGVjdGFibGVDaGlwcz10aGlzLnNlbGVjdGFibGVDaGlwcy5maWx0ZXIoXz0+IXRoaXMuaXNTYW1lQ2hpcChfLEMpKSx0aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcihfPT4hdGhpcy5pc1NhbWVDaGlwKF8sQykpLHRoaXMuc2VsZWN0ZWRDaGlwJiZ0aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsQykmJih0aGlzLnNlbGVjdGVkQ2hpcD1udWxsKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7ZDIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIE82YT1nKCgpPT57UjZhKCl9KTt2YXIgRjZhLEI2YT1nKCgpPT57cGUoKTtJdCgpO0Y2YT1pKCgpPT53YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI2Rhc2hib2FyZEdyaWQiKSx0PVt7aWQ6Im1ldHJpY3MxIix4OjAseTowLHc6MyxoOjIsdGl0bGU6IlJldmVudWUiLGljb246Imx1Y2lkZTpkb2xsYXJTaWduIixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4kMTI0LDU2MzwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjMjJjNTVlOyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSAxMi41JSBmcm9tIGxhc3QgbW9udGg8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6Im1ldHJpY3MyIix4OjMseTowLHc6MyxoOjIsdGl0bGU6IlVzZXJzIixpY29uOiJsdWNpZGU6dXNlcnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPjgsMjM0PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICMzYjgyZjY7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+4oaRIDUuMiUgZnJvbSBsYXN0IHdlZWs8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6ImNoYXJ0MSIseDo2LHk6MCx3OjYsaDo0LHRpdGxlOiJBbmFseXRpY3MiLGljb246Imx1Y2lkZTpsaW5lQ2hhcnQiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM3MTcxN2E7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxpbmVDaGFydCJ9IHN0eWxlPSJmb250LXNpemU6IDQ4cHg7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXY+Q2hhcnQgdmlzdWFsaXphdGlvbiBhcmVhPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH1dO2Uud2lkZ2V0cz10Lm1hcCh5PT4oey4uLnl9KSksZS5jZWxsSGVpZ2h0PTgwLGUubWFyZ2luPXt0b3A6MTAscmlnaHQ6MTAsYm90dG9tOjEwLGxlZnQ6MTB9LGUuZW5hYmxlQW5pbWF0aW9uPSEwLGUuc2hvd0dyaWRMaW5lcz0hMTtsZXQgYT1lLmdldExheW91dCgpLm1hcCh5PT4oey4uLnl9KSkscj1lLndpZGdldHMubWFwKCh5LE0pPT4oe2lkOnkuaWQseDowLHk6TT09PTA/MDplLndpZGdldHMuc2xpY2UoMCxNKS5yZWR1Y2UoKHosTik9PnorTi5oLDApLHc6ZS5jb2x1bW5zLGg6eS5ofSkpO2UubGF5b3V0cz17YmFzZTphLG1vYmlsZTpyfTtsZXQgbj1zLnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRMYXlvdXRTdGF0dXMiKSxvPWkoKCk9PntsZXQgeT1lLmdldExheW91dCgpO24udGV4dENvbnRlbnQ9YEFjdGl2ZSBicmVha3BvaW50OiAke2UuYWN0aXZlQnJlYWtwb2ludH0gXHUyMDIyIFRpbGVzOiAke3kubGVuZ3RofWB9LCJ1cGRhdGVTdGF0dXMiKSxsPXdpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3NjhweCkiKSxwPWkoKCk9PntsZXQgeT1sLm1hdGNoZXM/Im1vYmlsZSI6ImJhc2UiO2UuYXBwbHlCcmVha3BvaW50TGF5b3V0KHkpLG8oKX0sImhhbmRsZUJyZWFrcG9pbnQiKTt0eXBlb2YgbC5hZGRFdmVudExpc3RlbmVyPT0iZnVuY3Rpb24iP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixwKTpsLmFkZExpc3RlbmVyPy4ocCkscCgpO2xldCBkPTQ7cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goeT0+e3N3aXRjaCh5LnRleHQ/LnRyaW0oKSl7Y2FzZSJUb2dnbGUgQW5pbWF0aW9uIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZW5hYmxlQW5pbWF0aW9uPSFlLmVuYWJsZUFuaW1hdGlvbn0pO2JyZWFrO2Nhc2UiVG9nZ2xlIEdyaWQgTGluZXMiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5zaG93R3JpZExpbmVzPSFlLnNob3dHcmlkTGluZXN9KTticmVhaztjYXNlIkFkZCBXaWRnZXQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IHo9e2lkOmB3aWRnZXQke2QrK31gLHg6MCx5OjAsdzozLGg6MixhdXRvUG9zaXRpb246ITAsdGl0bGU6YFdpZGdldCAke2QtMX1gLGljb246Imx1Y2lkZTpwYWNrYWdlIixjb250ZW50OndgCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjNzE3MTdhOyI+TmV3IHdpZGdldCBjb250ZW50PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyBmb250LXNpemU6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpfTwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGB9O2UuYWRkV2lkZ2V0KHosITApfSk7YnJlYWs7Y2FzZSJDb21wYWN0IEdyaWQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5jb21wYWN0KCl9KTticmVhaztjYXNlIlRvZ2dsZSBFZGl0IE1vZGUiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5lZGl0YWJsZT0hZS5lZGl0YWJsZSx5LnRleHQ9ZS5lZGl0YWJsZT8iTG9jayBHcmlkIjoiVW5sb2NrIEdyaWQifSk7YnJlYWs7Y2FzZSJSZXNldCBMYXlvdXQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5hcHBseUJyZWFrcG9pbnRMYXlvdXQoZS5hY3RpdmVCcmVha3BvaW50KX0pO2JyZWFrO2RlZmF1bHQ6YnJlYWt9fSk7bGV0IGM9bnVsbCxiPTAsdj1pKCh5LE0pPT57bGV0IHo9ZS5nZXRMYXlvdXQoKTtjb25zb2xlLmdyb3VwKGBcdXsxRjUwNH0gJHt5fSBbRXZlbnQgIyR7KytifV1gKSxjb25zb2xlLmxvZygiVGltZXN0YW1wOiIsbmV3IERhdGUoKS50b0lTT1N0cmluZygpKSxjb25zb2xlLmxvZygiR3JpZCBDb25maWd1cmF0aW9uOiIse2NvbHVtbnM6ZS5jb2x1bW5zLGNlbGxIZWlnaHQ6ZS5jZWxsSGVpZ2h0LG1hcmdpbjplLm1hcmdpbixlZGl0YWJsZTplLmVkaXRhYmxlLGFjdGl2ZUJyZWFrcG9pbnQ6ZS5hY3RpdmVCcmVha3BvaW50fSksY29uc29sZS5sb2coIkN1cnJlbnQgTGF5b3V0OiIseiksY29uc29sZS5sb2coIldpZGdldCBDb3VudDoiLHoubGVuZ3RoKSxjb25zb2xlLmxvZygiR3JpZCBCb3VuZHM6Iix7dG90YWxXaWRnZXRzOmUud2lkZ2V0cy5sZW5ndGgsbWF4WTpNYXRoLm1heCguLi56Lm1hcChOPT5OLnkrTi5oKSksb2NjdXBpZWQ6ei5tYXAoTj0+YCR7Ti5pZH06ICgke04ueH0sJHtOLnl9KSAke04ud314JHtOLmh9YCkuam9pbigiLCAiKX0pLE0mJmNvbnNvbGUubG9nKCJFdmVudCBEZXRhaWxzOiIsTSksY29uc29sZS5ncm91cEVuZCgpfSwibG9nR3JpZFN0YXRlIikseD1uZXcgTXV0YXRpb25PYnNlcnZlcigoKT0+e2xldCB5PWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnBsYWNlaG9sZGVyIik7aWYoeSl7bGV0IE09e2xlZnQ6eS5zdHlsZS5sZWZ0LHRvcDp5LnN0eWxlLnRvcCx3aWR0aDp5LnN0eWxlLndpZHRoLGhlaWdodDp5LnN0eWxlLmhlaWdodH07aWYoSlNPTi5zdHJpbmdpZnkoTSkhPT1KU09OLnN0cmluZ2lmeShjKSl7Y29uc29sZS5ncm91cCgiXHV7MUY0Q0R9IFBsYWNlaG9sZGVyIFBvc2l0aW9uIENoYW5nZWQiKSxjb25zb2xlLmxvZygiUHJldmlvdXM6IixjKSxjb25zb2xlLmxvZygiQ3VycmVudDoiLE0pO2xldCB6PWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmdyaWQtY29udGFpbmVyIik7eiYmY29uc29sZS5sb2coIkdyaWQgQ29udGFpbmVyIERpbWVuc2lvbnM6Iix7d2lkdGg6ei5jbGllbnRXaWR0aCxoZWlnaHQ6ei5jbGllbnRIZWlnaHR9KSxjb25zb2xlLmdyb3VwRW5kKCksYz1NfX19KTtlLnNoYWRvd1Jvb3QmJngub2JzZXJ2ZShlLnNoYWRvd1Jvb3Qse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsic3R5bGUiXX0pLHYoIkluaXRpYWwgR3JpZCBTdGF0ZSIpLGUuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LW1vdmUiLHk9PntsZXQgTT15LmRldGFpbDt2KCJXaWRnZXQgTW92ZSIse3dpZGdldDpNLndpZGdldCxkaXNwbGFjZWQ6TS5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6TS5zd2FwcGVkV2l0aH0pfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtcmVzaXplIix5PT57bGV0IE09eS5kZXRhaWw7digiV2lkZ2V0IFJlc2l6ZSIse3dpZGdldDpNLndpZGdldCxkaXNwbGFjZWQ6TS5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6TS5zd2FwcGVkV2l0aH0pfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtcmVtb3ZlIix5PT57bGV0IE09eS5kZXRhaWw7digiV2lkZ2V0IFJlbW92ZSIse3JlbW92ZWRXaWRnZXQ6TS53aWRnZXR9KSxvKCl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImxheW91dC1jaGFuZ2UiLCgpPT57digiTGF5b3V0IENoYW5nZSIpLG8oKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHk9PntsZXQgTT15LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0LWhlYWRlciIpLHo9eS50YXJnZXQuY2xvc2VzdCgiLnJlc2l6ZS1oYW5kbGUiKTtpZihNfHx6KXtjb25zb2xlLmdyb3VwKGBcdXsxRjNBRn0gSW50ZXJhY3Rpb24gU3RhcnRlZDogJHtNPyJEcmFnIjoiUmVzaXplIn1gKSxjb25zb2xlLmxvZygiVGFyZ2V0IFdpZGdldDoiLHkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpKSxjb25zb2xlLmxvZygiUG9pbnRlciBQb3NpdGlvbjoiLHt4OnkuY2xpZW50WCx5OnkuY2xpZW50WX0pLGNvbnNvbGUuZ3JvdXBFbmQoKTtsZXQgTj1pKF89PntsZXQgTz15LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0Iik7TyYmY29uc29sZS5sb2coIlx1MjE5NFx1RkUwRiBQb2ludGVyIE1vdmU6Iix7d2lkZ2V0SWQ6Ty5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikscG9zaXRpb246e3g6Xy5jbGllbnRYLHk6Xy5jbGllbnRZfSxkZWx0YTp7eDpfLmNsaWVudFgteS5jbGllbnRYLHk6Xy5jbGllbnRZLXkuY2xpZW50WX19KX0sImhhbmRsZVBvaW50ZXJNb3ZlIiksQz1pKCgpPT57Y29uc29sZS5ncm91cCgiXHV7MUYzQzF9IEludGVyYWN0aW9uIEVuZGVkIiksdigiRmluYWwgU3RhdGUgQWZ0ZXIgSW50ZXJhY3Rpb24iKSxjb25zb2xlLmdyb3VwRW5kKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLE4pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsQyl9LCJoYW5kbGVQb2ludGVyVXAiKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsTiksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixDKX19KTtsZXQgbT1lLmFkZFdpZGdldC5iaW5kKGUpO2UuYWRkV2lkZ2V0PSh5LE0pPT57Y29uc29sZS5ncm91cCgiXHUyNzk1IEFkZGluZyBXaWRnZXQiKSxjb25zb2xlLmxvZygiTmV3IFdpZGdldDoiLHkpLGNvbnNvbGUubG9nKCJBdXRvIFBvc2l0aW9uOiIsTSk7bGV0IHo9bSh5LE0pO3JldHVybiB2KCJBZnRlciBXaWRnZXQgQWRkZWQiKSxjb25zb2xlLmdyb3VwRW5kKCksen07bGV0IGY9ZS5jb21wYWN0LmJpbmQoZSk7ZS5jb21wYWN0PXk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjVEQ31cdUZFMEYgQ29tcGFjdGluZyBHcmlkIiksY29uc29sZS5sb2coIkRpcmVjdGlvbjoiLHl8fCJ2ZXJ0aWNhbCIpLHYoIkJlZm9yZSBDb21wYWN0Iik7bGV0IE09Zih5KTtyZXR1cm4gdigiQWZ0ZXIgQ29tcGFjdCIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxNfSxvKCl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vLWNvbnRyb2xzIGRlZXMtYnV0dG9uIHsKICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICB9CgogICAgICAgICAgLmdyaWQtY29udGFpbmVyLXdyYXBwZXIgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBtaW4taGVpZ2h0OiA2MDBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQoKICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgfQoKICAgICAgICAgICNkYXNoYm9hcmRMYXlvdXRTdGF0dXMgewogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBbmltYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBBbmltYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRpc3BsYXk6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBHcmlkIExpbmVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgV2lkZ2V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNvbXBhY3QgR3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXNldCBMYXlvdXQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9Ik1vZGU6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBFZGl0IE1vZGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jb250YWluZXItd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1kYXNoYm9hcmRncmlkIGlkPSJkYXNoYm9hcmRHcmlkIj48L2RlZXMtZGFzaGJvYXJkZ3JpZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICA8ZGl2PkRyYWcgdG8gcmVwb3NpdGlvbiwgcmVzaXplIGZyb20gaGFuZGxlcywgb3IgcmlnaHQtY2xpY2sgYSBoZWFkZXIgdG8gZGVsZXRlIGEgdGlsZS48L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRhc2hib2FyZExheW91dFN0YXR1cyI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgSDZhLHE2YT1nKCgpPT57cGUoKTtINmE9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmdyaWQtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtlbmFibGVhbmltYXRpb25dKSAuZ3JpZC13aWRnZXQgewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyB7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC13aWRnZXQucGxhY2Vob2xkZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5yZXNpemluZyB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSIsIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldDpob3ZlciAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC40KSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LmRyYWdnaW5nIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC4yNSkiLCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuNikiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgICBjdXJzb3I6IGdyYWI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyOmFjdGl2ZSB7CiAgICAgICAgY3Vyc29yOiBncmFiYmluZzsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIubG9ja2VkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWJvZHkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5Lmhhcy1oZWFkZXIgewogICAgICAgIHRvcDogNDVweDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWUgewogICAgICAgIGN1cnNvcjogZXctcmVzaXplOwogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIHJpZ2h0OiAtNnB4OwogICAgICAgIHRvcDogMTAlOwogICAgICAgIGhlaWdodDogODAlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zIHsKICAgICAgICBjdXJzb3I6IG5zLXJlc2l6ZTsKICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICBib3R0b206IC02cHg7CiAgICAgICAgbGVmdDogMTAlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zZSB7CiAgICAgICAgY3Vyc29yOiBzZS1yZXNpemU7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIGJvdHRvbTogLTJweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAucmVzaXplLWhhbmRsZS1zZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogNHB4OwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldDpob3ZlciAucmVzaXplLWhhbmRsZS1zZSB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAucmVzaXplLWhhbmRsZS1zZTpob3Zlcjo6YWZ0ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuZ3JpZC1wbGFjZWhvbGRlciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBvcGFjaXR5OiAwLjE7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogLTE7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtdmVydGljYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZS1ob3Jpem9udGFsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgYF19KTt2YXIgVjhvLFlpdCxVNmEsVzZhLGo2YSxYWCxWNmEsVlhhLFVYYSxaaXQsS2gsRzZhLEs2YSxZNmE9ZygoKT0+e1Y4bz0xMCxZaXQ9aShzPT57aWYodHlwZW9mIHM9PSJudW1iZXIiKXJldHVybntob3Jpem9udGFsOnMsdmVydGljYWw6cyx0b3A6cyxyaWdodDpzLGJvdHRvbTpzLGxlZnQ6c307bGV0IGU9e3RvcDpzLnRvcD8/MTAscmlnaHQ6cy5yaWdodD8/MTAsYm90dG9tOnMuYm90dG9tPz8xMCxsZWZ0OnMubGVmdD8/MTB9O3JldHVybnsuLi5lLGhvcml6b250YWw6KGUubGVmdCtlLnJpZ2h0KS8yLHZlcnRpY2FsOihlLnRvcCtlLmJvdHRvbSkvMn19LCJyZXNvbHZlTWFyZ2lucyIpLFU2YT1pKChzLGUsdCxhLHIpPT57bGV0IG49dC5ob3Jpem9udGFsKihlKzEpLG89TWF0aC5tYXgocy1uLDApLGw9ZT4wP28vZTowLHA9cj09PSJhdXRvIj9sOmE7cmV0dXJue2NvbnRhaW5lcldpZHRoOnMsY2VsbFdpZHRoUHg6bCxtYXJnaW5Ib3Jpem9udGFsUHg6dC5ob3Jpem9udGFsLGNlbGxIZWlnaHRQeDpwLG1hcmdpblZlcnRpY2FsUHg6dC52ZXJ0aWNhbH19LCJjYWxjdWxhdGVDZWxsTWV0cmljcyIpLFc2YT1pKChzLGUsdCk9PntpZihzLmxlbmd0aD09PTApcmV0dXJuIDA7bGV0IGE9TWF0aC5tYXgoLi4ucy5tYXAocj0+ci55K3IuaCksMCk7cmV0dXJuIGEqdCsoYSsxKSplLnZlcnRpY2FsfSwiY2FsY3VsYXRlR3JpZEhlaWdodCIpLGo2YT1pKChzLGUsdCxhLHIpPT5lPHMueCtzLncmJmUrYT5zLngmJnQ8cy55K3MuaCYmdCtyPnMueSwib3ZlcmxhcHMiKSxYWD1pKChzLGUsdCxhLHI9ZS53LG49ZS5oKT0+cy5maWx0ZXIobz0+by5pZD09PWUuaWQ/ITE6ajZhKG8sdCxhLHIsbikpLCJjb2xsZWN0Q29sbGlzaW9ucyIpLFY2YT1pKChzLGUsdCxhKT0+WFgocyxlLHQsYSkubGVuZ3RoPjAsImNoZWNrQ29sbGlzaW9uIiksVlhhPWkocz0+KHsuLi5zfSksImNsb25lV2lkZ2V0IiksVVhhPWkocz0+cy5tYXAoVlhhKSwiY2xvbmVXaWRnZXRzIiksWml0PWkoKHMsZSx0LGEpPT57Zm9yKGxldCBuPTA7bjwyMDA7bisrKWZvcihsZXQgbz0wO288PWEtZTtvKyspaWYoIXMuc29tZShwPT5qNmEocCxvLG4sZSx0KSkpcmV0dXJue3g6byx5Om59O3JldHVybnt4OjAseTpzLnJlZHVjZSgobixvKT0+TWF0aC5tYXgobixvLnkrby5oKSwwKX19LCJmaW5kQXZhaWxhYmxlUG9zaXRpb24iKSxLaD1pKChzLGUsdCxhLHIpPT57bGV0IG49VVhhKHMpLG89bi5maW5kKGI9PmIuaWQ9PT1lKSxsPXMuZmluZChiPT5iLmlkPT09ZSk7aWYoIW98fCFsKXJldHVybiBudWxsO2xldCBwPXt4OnQueCx5OnQueSx3OnQudz8/by53LGg6dC5oPz9vLmh9O28ueD1wLngsby55PXAueSxvLnc9cC53LG8uaD1wLmg7bGV0IGQ9WFgobixvLHAueCxwLnkscC53LHAuaCk7aWYoZC5sZW5ndGg9PT0wKXJldHVybnt3aWRnZXRzOm4sbW92ZWRXaWRnZXRzOltvLmlkXX07aWYoZC5sZW5ndGg9PT0xKXtsZXQgYj1kWzBdO2lmKCFiLmxvY2tlZCYmIWIubm9Nb3ZlJiZiLnc9PT1vLncmJmIuaD09PW8uaCl7bGV0IHY9bi5maW5kKHg9PnguaWQ9PT1iLmlkKTtpZih2KXtsZXQgeD1sLG09e3g6di54LHk6di55fTtpZih2Lng9eC54LHYueT14LnksWFgobixvLG8ueCxvLnksby53LG8uaCkubGVuZ3RoPT09MCYmWFgobix2LHYueCx2Lnksdi53LHYuaCkubGVuZ3RoPT09MClyZXR1cm57d2lkZ2V0czpuLG1vdmVkV2lkZ2V0czpbby5pZCx2LmlkXSxzd2FwcGVkV2l0aDp2LmlkfTt2Lng9bS54LHYueT1tLnl9fX1sZXQgdT1uZXcgU2V0KFtvLmlkXSk7Zm9yKGxldCBiIG9mIGQpe2lmKGIubG9ja2VkfHxiLm5vTW92ZSlyZXR1cm4gbnVsbDtsZXQgdj1uLmZpbmQoZj0+Zi5pZD09PWIuaWQpO2lmKCF2KWNvbnRpbnVlO2xldCB4PW4uZmlsdGVyKGY9PmYuaWQhPT1iLmlkKSxtPVppdCh4LHYudyx2LmgsYSk7di54PW0ueCx2Lnk9bS55LHUuYWRkKHYuaWQpfXJldHVybiBYWChuLG8sby54LG8ueSxvLncsby5oKS5sZW5ndGg+MD9udWxsOnt3aWRnZXRzOm4sbW92ZWRXaWRnZXRzOkFycmF5LmZyb20odSl9fSwicmVzb2x2ZVdpZGdldFBsYWNlbWVudCIpLEc2YT1pKChzLGU9InZlcnRpY2FsIik9PntsZXQgdD1bLi4uc10uc29ydCgoYSxyKT0+ZT09PSJ2ZXJ0aWNhbCI/YS55IT09ci55P2EueS1yLnk6YS54LXIueDphLnghPT1yLng/YS54LXIueDphLnktci55KTtmb3IobGV0IGEgb2YgdClpZighKGEubG9ja2VkfHxhLm5vTW92ZSkpaWYoZT09PSJ2ZXJ0aWNhbCIpZm9yKDthLnk+MCYmIVY2YShzLGEsYS54LGEueS0xKTspYS55LT0xO2Vsc2UgZm9yKDthLng+MCYmIVY2YShzLGEsYS54LTEsYS55KTspYS54LT0xfSwiY29tcGFjdExheW91dCIpLEs2YT1pKChzLGUpPT5zLm1hcCh0PT57bGV0IGE9ZS5maW5kKHI9PnIuaWQ9PT10LmlkKTtyZXR1cm4gYT97Li4udCwuLi5hfTp0fSksImFwcGx5TGF5b3V0Iil9KTt2YXIgWjZhLFg2YSxRNmE9ZygoKT0+e1o2YT1pKCh7cG9pbnRlcjpzLGNvbnRhaW5lclJlY3Q6ZSxtZXRyaWNzOnQsY29sdW1uczphLHdpZGdldDpyLHJ0bDpuLGRyYWdPZmZzZXRYOm89MCxkcmFnT2Zmc2V0WTpsPTB9KT0+e2xldCBwPXMuY2xpZW50WC1lLmxlZnQtbyxkPXMuY2xpZW50WS1lLnRvcC1sLHU9dC5tYXJnaW5Ib3Jpem9udGFsUHgsYz10Lm1hcmdpblZlcnRpY2FsUHgsYj10LmNlbGxXaWR0aFB4LHY9dC5jZWxsSGVpZ2h0UHgseD1pKChDLF8sTyk9Pk1hdGgubWF4KF8sTWF0aC5taW4oTyxDKSksImNsYW1wIiksbT14KHAtdSwwLGUud2lkdGgtdSksZj14KGQtYywwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkseT1iK3UsTT12K2Msej1NYXRoLnJvdW5kKG0veSk7biYmKHo9YS1yLncteiksej14KHosMCxhLXIudyk7bGV0IE49eChNYXRoLnJvdW5kKGYvTSksMCxOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7cmV0dXJue3g6eix5Ok59fSwiY29tcHV0ZUdyaWRDb29yZGluYXRlcyIpLFg2YT1pKCh7cG9pbnRlcjpzLGNvbnRhaW5lclJlY3Q6ZSxtZXRyaWNzOnQsc3RhcnRXaWR0aDphLHN0YXJ0SGVpZ2h0OnIsc3RhcnRQb2ludGVyOm4saGFuZGxlcjpvLHdpZGdldDpsLGNvbHVtbnM6cH0pPT57bGV0IGQ9cy5jbGllbnRYLW4uY2xpZW50WCx1PXMuY2xpZW50WS1uLmNsaWVudFksYz1hLGI9cix2PXQuY2VsbFdpZHRoUHgrdC5tYXJnaW5Ib3Jpem9udGFsUHgseD10LmNlbGxIZWlnaHRQeCt0Lm1hcmdpblZlcnRpY2FsUHg7aWYoby5pbmNsdWRlcygiZSIpKXtsZXQgeT1NYXRoLnJvdW5kKGQvdik7Yz1hK3l9aWYoby5pbmNsdWRlcygicyIpKXtsZXQgeT1NYXRoLnJvdW5kKHUveCk7Yj1yK3l9bGV0IG09TWF0aC5tYXgobC5taW5XfHwxLE1hdGgubWluKGMsbC5tYXhXfHxwLWwueCkpLGY9TWF0aC5tYXgobC5taW5IfHwxLE1hdGgubWluKGIsbC5tYXhIfHxOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpO3JldHVybnt3aWR0aDptLGhlaWdodDpmfX0sImNvbXB1dGVSZXNpemVEaW1lbnNpb25zIil9KTt2YXIgSjZhLGU1YT1nKCgpPT57b3IoKTtwbygpO0o2YT1pKCh7d2lkZ2V0OnMsaG9zdDplLGV2ZW50OnR9KT0+e2xldCBhPVt7bmFtZToiRGVsZXRlIHRpbGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT4oZS5yZW1vdmVXaWRnZXQocy5pZCksbnVsbCksImFjdGlvbiIpfV07a2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxhKX0sIm9wZW5XaWRnZXRDb250ZXh0TWVudSIpfSk7dmFyIGRuLE1zLHQ1YSxhNWE9ZygoKT0+e3BlKCk7VWEoKTtvcigpO0I2YSgpO3E2YSgpO1k2YSgpO1E2YSgpO2U1YSgpO2RuPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxNcz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdDVhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1kYXNoYm9hcmRncmlkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXTt2YXIgeWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNEYXNoYm9hcmRncmlkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHE9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sTz1bTCh7dHlwZTpTdHJpbmd9KV0sSD1bTCh7dHlwZTpCb29sZWFufSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHthdHRyaWJ1dGU6ITF9KV0sbWU9W0woe3R5cGU6U3RyaW5nfSldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLGRuKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4id2lkZ2V0cyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLndpZGdldHMsImdldCIpLHNldDppKChBLHNlKT0+e0Eud2lkZ2V0cz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxvLGwpLGRuKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iY2VsbEhlaWdodCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmNlbGxIZWlnaHQsImdldCIpLHNldDppKChBLHNlKT0+e0EuY2VsbEhlaWdodD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxkLHUpLGRuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFyZ2luIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJtYXJnaW4iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5tYXJnaW4sImdldCIpLHNldDppKChBLHNlKT0+e0EubWFyZ2luPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGIsdiksZG4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJjb2x1bW5zImluIEEsImhhcyIpLGdldDppKEE9PkEuY29sdW1ucywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5jb2x1bW5zPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LG0sZiksZG4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZWRpdGFibGUiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5lZGl0YWJsZSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5lZGl0YWJsZT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxNLHopLGRuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlQW5pbWF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJlbmFibGVBbmltYXRpb24iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5lbmFibGVBbmltYXRpb24sImdldCIpLHNldDppKChBLHNlKT0+e0EuZW5hYmxlQW5pbWF0aW9uPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEMsXyksZG4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZWxsSGVpZ2h0VW5pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iY2VsbEhlaWdodFVuaXQiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5jZWxsSGVpZ2h0VW5pdCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5jZWxsSGVpZ2h0VW5pdD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSwkLEUpLGRuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnRsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJydGwiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5ydGwsImdldCIpLHNldDppKChBLHNlKT0+e0EucnRsPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGssUyksZG4odGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93R3JpZExpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJzaG93R3JpZExpbmVzImluIEEsImhhcyIpLGdldDppKEE9PkEuc2hvd0dyaWRMaW5lcywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93R3JpZExpbmVzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFAsUiksZG4odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYXlvdXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJsYXlvdXRzImluIEEsImhhcyIpLGdldDppKEE9PkEubGF5b3V0cywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5sYXlvdXRzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFYsVyksZG4odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlQnJlYWtwb2ludCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYWN0aXZlQnJlYWtwb2ludCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFjdGl2ZUJyZWFrcG9pbnQsImdldCIpLHNldDppKChBLHNlKT0+e0EuYWN0aXZlQnJlYWtwb2ludD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxCLFUpLGRuKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InBsYWNlaG9sZGVyUG9zaXRpb24iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5wbGFjZWhvbGRlclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnBsYWNlaG9sZGVyUG9zaXRpb249c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sRixqKSxkbih0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJtZXRyaWNzImluIEEsImhhcyIpLGdldDppKEE9PkEubWV0cmljcywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5tZXRyaWNzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGxlLFEpLGRuKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTWFyZ2lucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4icmVzb2x2ZWRNYXJnaW5zImluIEEsImhhcyIpLGdldDppKEE9PkEucmVzb2x2ZWRNYXJnaW5zLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnJlc29sdmVkTWFyZ2lucz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSx0ZSxlZSksZG4odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJldmlld1dpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InByZXZpZXdXaWRnZXRzImluIEEsImhhcyIpLGdldDppKEE9PkEucHJldmlld1dpZGdldHMsImdldCIpLHNldDppKChBLHNlKT0+e0EucHJldmlld1dpZGdldHM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sWCxaKSxkbihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpxfSxudWxsLHQpLHllPWE9ZS52YWx1ZSxxJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX1zdGF0aWMgZGVtbz1GNmE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTtzdGF0aWMgc3R5bGVzPUg2YTsjZT1Ncyh0aGlzLG8sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMocSl7dGhpcy4jZT1xfSN0PShNcyh0aGlzLGwpLE1zKHRoaXMsZCw4MCkpO2dldCBjZWxsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNlbGxIZWlnaHQocSl7dGhpcy4jdD1xfSNhPShNcyh0aGlzLHUpLE1zKHRoaXMsYiwxMCkpO2dldCBtYXJnaW4oKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWFyZ2luKHEpe3RoaXMuI2E9cX0jcz0oTXModGhpcyx2KSxNcyh0aGlzLG0sMTIpKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNzfXNldCBjb2x1bW5zKHEpe3RoaXMuI3M9cX0jaT0oTXModGhpcyxmKSxNcyh0aGlzLE0sITApKTtnZXQgZWRpdGFibGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZWRpdGFibGUocSl7dGhpcy4jaT1xfSNyPShNcyh0aGlzLHopLE1zKHRoaXMsQywhMCkpO2dldCBlbmFibGVBbmltYXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW5hYmxlQW5pbWF0aW9uKHEpe3RoaXMuI3I9cX0jbz0oTXModGhpcyxfKSxNcyh0aGlzLCQsInB4IikpO2dldCBjZWxsSGVpZ2h0VW5pdCgpe3JldHVybiB0aGlzLiNvfXNldCBjZWxsSGVpZ2h0VW5pdChxKXt0aGlzLiNvPXF9I249KE1zKHRoaXMsRSksTXModGhpcyxrLCExKSk7Z2V0IHJ0bCgpe3JldHVybiB0aGlzLiNufXNldCBydGwocSl7dGhpcy4jbj1xfSNsPShNcyh0aGlzLFMpLE1zKHRoaXMsUCwhMSkpO2dldCBzaG93R3JpZExpbmVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dHcmlkTGluZXMocSl7dGhpcy4jbD1xfSNjPShNcyh0aGlzLFIpLE1zKHRoaXMsVix2b2lkIDApKTtnZXQgbGF5b3V0cygpe3JldHVybiB0aGlzLiNjfXNldCBsYXlvdXRzKHEpe3RoaXMuI2M9cX0jZD0oTXModGhpcyxXKSxNcyh0aGlzLEIsImJhc2UiKSk7Z2V0IGFjdGl2ZUJyZWFrcG9pbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlQnJlYWtwb2ludChxKXt0aGlzLiNkPXF9I3U9KE1zKHRoaXMsVSksTXModGhpcyxGLG51bGwpKTtnZXQgcGxhY2Vob2xkZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiN1fXNldCBwbGFjZWhvbGRlclBvc2l0aW9uKHEpe3RoaXMuI3U9cX0jcD0oTXModGhpcyxqKSxNcyh0aGlzLGxlLG51bGwpKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNwfXNldCBtZXRyaWNzKHEpe3RoaXMuI3A9cX0jaD0oTXModGhpcyxRKSxNcyh0aGlzLHRlLG51bGwpKTtnZXQgcmVzb2x2ZWRNYXJnaW5zKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJlc29sdmVkTWFyZ2lucyhxKXt0aGlzLiNoPXF9I2Y9KE1zKHRoaXMsZWUpLE1zKHRoaXMsWCxudWxsKSk7Z2V0IHByZXZpZXdXaWRnZXRzKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHByZXZpZXdXaWRnZXRzKHEpe3RoaXMuI2Y9cX1jb250YWluZXJCb3VuZHM9KE1zKHRoaXMsWiksbnVsbCk7ZHJhZ1N0YXRlPW51bGw7cmVzaXplU3RhdGU9bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcmFjdGlvbkFjdGl2ZT0hMTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb21wdXRlTWV0cmljcygpLHRoaXMub2JzZXJ2ZVJlc2l6ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX11cGRhdGVkKHEpeyhxLmhhcygibWFyZ2luIil8fHEuaGFzKCJjb2x1bW5zIil8fHEuaGFzKCJjZWxsSGVpZ2h0Iil8fHEuaGFzKCJjZWxsSGVpZ2h0VW5pdCIpKSYmdGhpcy5jb21wdXRlTWV0cmljcygpLHEuaGFzKCJ3aWRnZXRzIikmJiF0aGlzLmludGVyYWN0aW9uQWN0aXZlJiZ0aGlzLm5vdGlmeUxheW91dENoYW5nZSgpfXJlbmRlcigpe2xldCBxPXRoaXMud2lkZ2V0cztpZihxLmxlbmd0aD09PTApcmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGF5b3V0R3JpZCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+QWRkIHdpZGdldHMgdG8gcG9wdWxhdGUgdGhlIGRhc2hib2FyZDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgO2xldCBBPXRoaXMuZW5zdXJlTWV0cmljcygpLHNlPXRoaXMucmVzb2x2ZWRNYXJnaW5zPz9ZaXQodGhpcy5tYXJnaW4pLG9lPUEuY2VsbEhlaWdodFB4LGFlPXRoaXMucHJldmlld1dpZGdldHM/P3RoaXMud2lkZ2V0cyxUZT1XNmEoYWUsc2Usb2UpLFJlPXRoaXMucHJldmlld1dpZGdldHM/bmV3IE1hcCh0aGlzLnByZXZpZXdXaWRnZXRzLm1hcChCZT0+W0JlLmlkLEJlXSkpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAke1RlfXB4OyI+CiAgICAgICAgJHt0aGlzLnNob3dHcmlkTGluZXM/dGhpcy5yZW5kZXJHcmlkTGluZXMoQSxUZSk6bnVsbH0KICAgICAgICAke3EubWFwKEJlPT50aGlzLnJlbmRlcldpZGdldChCZSxBLHNlLFJlKSl9CiAgICAgICAgJHt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihBLHNlKTpudWxsfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR3JpZExpbmVzKHEsQSl7bGV0IHNlPVtdLG9lPVtdLGFlPXEuY2VsbFdpZHRoUHgrcS5tYXJnaW5Ib3Jpem9udGFsUHgsVGU9cS5jZWxsSGVpZ2h0UHgrcS5tYXJnaW5WZXJ0aWNhbFB4O2ZvcihsZXQgQmU9MDtCZTw9dGhpcy5jb2x1bW5zO0JlKyspe2xldCBHZT1CZSphZStxLm1hcmdpbkhvcml6b250YWxQeCxEZT10aGlzLnB4VG9QZXJjZW50KEdlLHEuY29udGFpbmVyV2lkdGgpO3NlLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtdmVydGljYWwiIHN0eWxlPSJsZWZ0OiAke0RlfSU7Ij48L2Rpdj5gKX1sZXQgUmU9TWF0aC5jZWlsKEEvVGUpO2ZvcihsZXQgQmU9MDtCZTw9UmU7QmUrKyl7bGV0IEdlPUJlKlRlO29lLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtaG9yaXpvbnRhbCIgc3R5bGU9InRvcDogJHtHZX1weDsiPjwvZGl2PmApfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxpbmVzIj4KICAgICAgICAke3NlfQogICAgICAgICR7b2V9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQocSxBLHNlLG9lKXtsZXQgYWU9dGhpcy5kcmFnU3RhdGU/LndpZGdldElkPT09cS5pZCxUZT10aGlzLnJlc2l6ZVN0YXRlPy53aWRnZXRJZD09PXEuaWQsUmU9cS5sb2NrZWR8fCF0aGlzLmVkaXRhYmxlLEJlPW9lPy5nZXQocS5pZCk/P251bGwsR2U9YWU/cTpCZT8/cSxEZT10aGlzLmNvbXB1dGVXaWRnZXRSZWN0KEdlLEEsc2UpLF9lPXRoaXMucnRsPyJyaWdodCI6ImxlZnQiLENlPXRoaXMucHhUb1BlcmNlbnQoRGUubGVmdCxBLmNvbnRhaW5lcldpZHRoKSx2ZT10aGlzLnB4VG9QZXJjZW50KERlLndpZHRoLEEuY29udGFpbmVyV2lkdGgpLGJlPSIiO2lmKGFlJiZ0aGlzLmRyYWdTdGF0ZT8uY3VycmVudFBvaW50ZXIpe2xldCBFZT10aGlzLmRyYWdTdGF0ZS5jdXJyZW50UG9pbnRlcixqZT10aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxXZT1FZS5jbGllbnRYLWplLmxlZnQtdGhpcy5kcmFnU3RhdGUub2Zmc2V0WC1EZS5sZWZ0LHN0PUVlLmNsaWVudFktamUudG9wLXRoaXMuZHJhZ1N0YXRlLm9mZnNldFktRGUudG9wO2JlPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke1dlfXB4LCAke3N0fXB4KTtgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7YWU/ImRyYWdnaW5nIjoiIn0gJHtUZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke19lfTogJHtDZX0lOwogICAgICAgICAgdG9wOiAke0RlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke3ZlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7RGUuaGVpZ2h0fXB4OwogICAgICAgICAgJHtiZX0KICAgICAgICAiCiAgICAgICAgZGF0YS13aWRnZXQtaWQ9JHtxLmlkfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgJHtxLnRpdGxlP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ3aWRnZXQtaGVhZGVyICR7UmU/ImxvY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHshUmUmJiFxLm5vTW92ZT9FZT0+dGhpcy5zdGFydERyYWcoRWUscSk6bnVsbH0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7RWU9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoRWUscSl9CiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSR7IVJlJiYhcS5ub01vdmU/MDotMX0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHtFZT0+dGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKEVlLHEpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke3EuaWNvbj93YDxkZWVzLWljb24gLmljb249JHtxLmljb259PjwvZGVlcy1pY29uPmA6bnVsbH0KICAgICAgICAgICAgICAgICAgJHtxLnRpdGxlfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWJvZHkgJHtxLnRpdGxlPyJoYXMtaGVhZGVyIjoiIn0iPgogICAgICAgICAgICAke3EuY29udGVudH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHshUmUmJiFxLm5vUmVzaXplP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7RWU9PnRoaXMuc3RhcnRSZXNpemUoRWUscSwiZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXMiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke0VlPT50aGlzLnN0YXJ0UmVzaXplKEVlLHEsInMiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7RWU9PnRoaXMuc3RhcnRSZXNpemUoRWUscSwic2UiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihxLEEpe2lmKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pcmV0dXJuIHdgYDtsZXQgc2U9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdCh0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24scSxBKSxvZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0IixhZT10aGlzLnB4VG9QZXJjZW50KHNlLmxlZnQscS5jb250YWluZXJXaWR0aCksVGU9dGhpcy5weFRvUGVyY2VudChzZS53aWR0aCxxLmNvbnRhaW5lcldpZHRoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCBwbGFjZWhvbGRlciIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke29lfTogJHthZX0lOwogICAgICAgICAgdG9wOiAke3NlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke1RlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7c2UuaGVpZ2h0fXB4OwogICAgICAgICIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXJ0RHJhZyhxLEEpe2lmKCF0aGlzLmVkaXRhYmxlfHxBLm5vTW92ZXx8QS5sb2NrZWQpcmV0dXJuO3EucHJldmVudERlZmF1bHQoKSxxLnN0b3BQcm9wYWdhdGlvbigpO2xldCBzZT1xLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmdyaWQtd2lkZ2V0Iik7aWYoIXNlKXJldHVybjtsZXQgb2U9c2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLmRyYWdTdGF0ZT17d2lkZ2V0SWQ6QS5pZCxwb2ludGVySWQ6cS5wb2ludGVySWQsb2Zmc2V0WDpxLmNsaWVudFgtb2UubGVmdCxvZmZzZXRZOnEuY2xpZW50WS1vZS50b3Asc3RhcnQ6e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9LHByZXZpb3VzUG9zaXRpb246e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9LGN1cnJlbnRQb2ludGVyOntjbGllbnRYOnEuY2xpZW50WCxjbGllbnRZOnEuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLHEuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShxLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9fWhhbmRsZURyYWdNb3ZlPWkocT0+e2lmKCF0aGlzLmRyYWdTdGF0ZSlyZXR1cm47bGV0IEE9dGhpcy5lbnN1cmVNZXRyaWNzKCksc2U9dGhpcy53aWRnZXRzLG9lPXNlLmZpbmQoQmU9PkJlLmlkPT09dGhpcy5kcmFnU3RhdGUud2lkZ2V0SWQpO2lmKCFvZSlyZXR1cm47cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBhZT10aGlzLmRyYWdTdGF0ZS5wcmV2aW91c1Bvc2l0aW9uLFRlPVo2YSh7cG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpBLGNvbHVtbnM6dGhpcy5jb2x1bW5zLHdpZGdldDpvZSxydGw6dGhpcy5ydGwsZHJhZ09mZnNldFg6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WCxkcmFnT2Zmc2V0WTp0aGlzLmRyYWdTdGF0ZS5vZmZzZXRZfSksUmU9S2goc2Usb2UuaWQse3g6VGUueCx5OlRlLnl9LHRoaXMuY29sdW1ucyxhZSk7aWYoUmUpe2xldCBCZT1SZS53aWRnZXRzLmZpbmQoRGU9PkRlLmlkPT09b2UuaWQpO3RoaXMuZHJhZ1N0YXRlPXsuLi50aGlzLmRyYWdTdGF0ZSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6UmUscHJldmlvdXNQb3NpdGlvbjpCZT97aWQ6QmUuaWQseDpCZS54LHk6QmUueSx3OkJlLncsaDpCZS5ofTp7aWQ6b2UuaWQseDpUZS54LHk6VGUueSx3Om9lLncsaDpvZS5ofX0sdGhpcy5wcmV2aWV3V2lkZ2V0cz1SZS53aWRnZXRzO2xldCBHZT1SZS53aWRnZXRzLmZpbmQoRGU9PkRlLmlkPT09b2UuaWQpO0dlP3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6R2UuaWQseDpHZS54LHk6R2UueSx3OkdlLncsaDpHZS5ofTp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOm9lLmlkLHg6VGUueCx5OlRlLnksdzpvZS53LGg6b2UuaH19ZWxzZSB0aGlzLnByZXZpZXdXaWRnZXRzPW51bGwsdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGw7dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJoYW5kbGVEcmFnTW92ZSIpO2hhbmRsZURyYWdFbmQ9aShxPT57bGV0IEE9dGhpcy5kcmFnU3RhdGU7aWYoIUF8fHEucG9pbnRlcklkIT09QS5wb2ludGVySWQpcmV0dXJuO2xldCBzZT10aGlzLndpZGdldHM7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsO2xldCBvZT10aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/P0Euc3RhcnQsYWU9S2goc2UsQS53aWRnZXRJZCx7eDpvZS54LHk6b2UueX0sdGhpcy5jb2x1bW5zLEEucHJldmlvdXNQb3NpdGlvbik7aWYoYWUpe2xldCBUZT1hZS53aWRnZXRzLmZpbmQoUmU9PlJlLmlkPT09QS53aWRnZXRJZCk7VGUmJihhZS53aWRnZXRzLnNvbWUoQmU9PkJlLmlkPT09QS53aWRnZXRJZD8hMTpUZS54PEJlLngrQmUudyYmVGUueCtUZS53PkJlLngmJlRlLnk8QmUueStCZS5oJiZUZS55K1RlLmg+QmUueSk/dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoQmU9PkJlLmlkPT09QS53aWRnZXRJZD97Li4uQmUseDpBLnN0YXJ0LngseTpBLnN0YXJ0Lnl9OkJlKTp0aGlzLmNvbW1pdFBsYWNlbWVudChhZSxBLndpZGdldElkLCJ3aWRnZXQtbW92ZSIpKX1lbHNlIHRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKFRlPT5UZS5pZD09PUEud2lkZ2V0SWQ/ey4uLlRlLHg6QS5zdGFydC54LHk6QS5zdGFydC55fTpUZSk7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX0sImhhbmRsZURyYWdFbmQiKTtzdGFydFJlc2l6ZShxLEEsc2UpeyF0aGlzLmVkaXRhYmxlfHxBLm5vUmVzaXplfHxBLmxvY2tlZHx8KHEucHJldmVudERlZmF1bHQoKSxxLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW5zdXJlTWV0cmljcygpLHRoaXMucmVzaXplU3RhdGU9e3dpZGdldElkOkEuaWQscG9pbnRlcklkOnEucG9pbnRlcklkLGhhbmRsZXI6c2Usc3RhcnRQb2ludGVyOntjbGllbnRYOnEuY2xpZW50WCxjbGllbnRZOnEuY2xpZW50WX0sc3RhcnQ6e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9LHN0YXJ0V2lkdGg6QS53LHN0YXJ0SGVpZ2h0OkEuaCxsYXN0UGxhY2VtZW50Om51bGx9LHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITAscS5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKHEucG9pbnRlcklkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9KX1oYW5kbGVSZXNpemVNb3ZlPWkocT0+e2lmKCF0aGlzLnJlc2l6ZVN0YXRlKXJldHVybjtsZXQgQT10aGlzLmVuc3VyZU1ldHJpY3MoKSxzZT10aGlzLndpZGdldHMsb2U9c2UuZmluZChSZT0+UmUuaWQ9PT10aGlzLnJlc2l6ZVN0YXRlLndpZGdldElkKTtpZighb2UpcmV0dXJuO3EucHJldmVudERlZmF1bHQoKTtsZXQgYWU9WDZhKHtwb2ludGVyOntjbGllbnRYOnEuY2xpZW50WCxjbGllbnRZOnEuY2xpZW50WX0sY29udGFpbmVyUmVjdDp0aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtZXRyaWNzOkEsc3RhcnRXaWR0aDp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0V2lkdGgsc3RhcnRIZWlnaHQ6dGhpcy5yZXNpemVTdGF0ZS5zdGFydEhlaWdodCxzdGFydFBvaW50ZXI6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFBvaW50ZXIsaGFuZGxlcjp0aGlzLnJlc2l6ZVN0YXRlLmhhbmRsZXIsd2lkZ2V0Om9lLGNvbHVtbnM6dGhpcy5jb2x1bW5zfSksVGU9S2goc2Usb2UuaWQse3g6b2UueCx5Om9lLnksdzphZS53aWR0aCxoOmFlLmhlaWdodH0sdGhpcy5jb2x1bW5zLHRoaXMucmVzaXplU3RhdGUuc3RhcnQpO2lmKFRlKXt0aGlzLnJlc2l6ZVN0YXRlPXsuLi50aGlzLnJlc2l6ZVN0YXRlLGxhc3RQbGFjZW1lbnQ6VGV9LHRoaXMucHJldmlld1dpZGdldHM9VGUud2lkZ2V0cztsZXQgUmU9VGUud2lkZ2V0cy5maW5kKEJlPT5CZS5pZD09PW9lLmlkKTtSZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlJlLmlkLHg6UmUueCx5OlJlLnksdzpSZS53LGg6UmUuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpvZS5pZCx4Om9lLngseTpvZS55LHc6YWUud2lkdGgsaDphZS5oZWlnaHR9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwiaGFuZGxlUmVzaXplTW92ZSIpO2hhbmRsZVJlc2l6ZUVuZD1pKHE9PntsZXQgQT10aGlzLnJlc2l6ZVN0YXRlO2lmKCFBfHxxLnBvaW50ZXJJZCE9PUEucG9pbnRlcklkKXJldHVybjtsZXQgc2U9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgb2U9QS5sYXN0UGxhY2VtZW50Pz9LaChzZSxBLndpZGdldElkLHt4OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueD8/QS5zdGFydC54LHk6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy55Pz9BLnN0YXJ0Lnksdzp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lnc/P0Euc3RhcnQudyxoOnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaD8/QS5zdGFydC5ofSx0aGlzLmNvbHVtbnMsQS5zdGFydCk7b2U/dGhpcy5jb21taXRQbGFjZW1lbnQob2UsQS53aWRnZXRJZCwid2lkZ2V0LXJlc2l6ZSIpOnRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKGFlPT5hZS5pZD09PUEud2lkZ2V0SWQ/ey4uLmFlLHc6QS5zdGFydC53LGg6QS5zdGFydC5ofTphZSksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5yZXNpemVTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfSwiaGFuZGxlUmVzaXplRW5kIik7aGFuZGxlSGVhZGVyS2V5ZG93bihxLEEpe2lmKCF0aGlzLmVkaXRhYmxlfHxBLm5vTW92ZXx8QS5sb2NrZWQpcmV0dXJuO2xldCBzZT1xLmtleSxvZT1xLnNoaWZ0S2V5LGFlPW51bGw7aWYob2UmJlsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhzZSkpe3EucHJldmVudERlZmF1bHQoKTtsZXQgRGU9c2U9PT0iQXJyb3dSaWdodCJ8fHNlPT09IkFycm93RG93biI/MTotMTtpZihzZT09PSJBcnJvd0xlZnQifHxzZT09PSJBcnJvd1JpZ2h0Iil7bGV0IF9lPUEubWF4Vz8/dGhpcy5jb2x1bW5zLUEueCxDZT1NYXRoLm1heChBLm1pblc/PzEsTWF0aC5taW4oX2UsQS53K0RlKSk7YWU9S2godGhpcy53aWRnZXRzLEEuaWQse3g6QS54LHk6QS55LHc6Q2UsaDpBLmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgX2U9QS5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksQ2U9TWF0aC5tYXgoQS5taW5IPz8xLE1hdGgubWluKF9lLEEuaCtEZSkpO2FlPUtoKHRoaXMud2lkZ2V0cyxBLmlkLHt4OkEueCx5OkEueSx3OkEudyxoOkNlfSx0aGlzLmNvbHVtbnMpfWFlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudChhZSxBLmlkLCJ3aWRnZXQtcmVzaXplIik7cmV0dXJufWxldCBSZT17QXJyb3dMZWZ0OntkeDotMSxkeTowfSxBcnJvd1JpZ2h0OntkeDoxLGR5OjB9LEFycm93VXA6e2R4OjAsZHk6LTF9LEFycm93RG93bjp7ZHg6MCxkeToxfX1bc2VdO2lmKCFSZSlyZXR1cm47cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBCZT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuY29sdW1ucy1BLncsQS54K1JlLmR4KSksR2U9TWF0aC5tYXgoMCxBLnkrUmUuZHkpO2FlPUtoKHRoaXMud2lkZ2V0cyxBLmlkLHt4OkJlLHk6R2V9LHRoaXMuY29sdW1ucyksYWUmJnRoaXMuY29tbWl0UGxhY2VtZW50KGFlLEEuaWQsIndpZGdldC1tb3ZlIil9aGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUocSxBKXtxLnByZXZlbnREZWZhdWx0KCkscS5zdG9wUHJvcGFnYXRpb24oKSxKNmEoe3dpZGdldDpBLGhvc3Q6dGhpcyxldmVudDpxfSl9Y29tbWl0UGxhY2VtZW50KHEsQSxzZSl7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMud2lkZ2V0cz1xLndpZGdldHM7bGV0IG9lPXRoaXMud2lkZ2V0cy5maW5kKGFlPT5hZS5pZD09PUEpO29lJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KHNlLHtkZXRhaWw6e3dpZGdldDpvZSxkaXNwbGFjZWQ6cS5tb3ZlZFdpZGdldHMuZmlsdGVyKGFlPT5hZSE9PUEpLHN3YXBwZWRXaXRoOnEuc3dhcHBlZFdpdGh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9cmVtb3ZlV2lkZ2V0KHEpe2xldCBBPXRoaXMud2lkZ2V0cy5maW5kKHNlPT5zZS5pZD09PXEpO0EmJih0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihzZT0+c2UuaWQhPT1xKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ3aWRnZXQtcmVtb3ZlIix7ZGV0YWlsOnt3aWRnZXQ6QX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9dXBkYXRlV2lkZ2V0KHEsQSl7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoc2U9PnNlLmlkPT09cT97Li4uc2UsLi4uQX06c2UpfWdldExheW91dCgpe3JldHVybiB0aGlzLndpZGdldHMubWFwKCh7aWQ6cSx4OkEseTpzZSx3Om9lLGg6YWV9KT0+KHtpZDpxLHg6QSx5OnNlLHc6b2UsaDphZX0pKX1zZXRMYXlvdXQocSl7dGhpcy53aWRnZXRzPUs2YSh0aGlzLndpZGdldHMscSl9bG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSExfXVubG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSEwfWFkZFdpZGdldChxLEE9ITEpe2xldCBzZT17Li4ucX07aWYoQXx8c2UuYXV0b1Bvc2l0aW9uKXtsZXQgb2U9Wml0KHRoaXMud2lkZ2V0cyxzZS53LHNlLmgsdGhpcy5jb2x1bW5zKTtzZS54PW9lLngsc2UueT1vZS55fXRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLHNlXX1jb21wYWN0KHE9InZlcnRpY2FsIil7bGV0IEE9dGhpcy53aWRnZXRzLm1hcChzZT0+KHsuLi5zZX0pKTtHNmEoQSxxKSx0aGlzLndpZGdldHM9QX1hcHBseUJyZWFrcG9pbnRMYXlvdXQocSl7dGhpcy5hY3RpdmVCcmVha3BvaW50PXE7bGV0IEE9dGhpcy5sYXlvdXRzPy5bcV07QSYmdGhpcy5zZXRMYXlvdXQoQSl9bm90aWZ5TGF5b3V0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGF5b3V0LWNoYW5nZSIse2RldGFpbDp7bGF5b3V0OnRoaXMuZ2V0TGF5b3V0KCl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9ZW5zdXJlTWV0cmljcygpe3JldHVybiB0aGlzLm1ldHJpY3N8fHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm1ldHJpY3N9Y29tcHV0ZU1ldHJpY3MoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm47bGV0IHE9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmNvbnRhaW5lckJvdW5kcz1xO2xldCBBPVlpdCh0aGlzLm1hcmdpbik7dGhpcy5yZXNvbHZlZE1hcmdpbnM9QSx0aGlzLm1ldHJpY3M9VTZhKHEud2lkdGgsdGhpcy5jb2x1bW5zLEEsdGhpcy5jZWxsSGVpZ2h0LHRoaXMuY2VsbEhlaWdodFVuaXQpfW9ic2VydmVSZXNpemUoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNvbXB1dGVNZXRyaWNzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1yZWxlYXNlUG9pbnRlckV2ZW50cygpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCl9cHhUb1BlcmNlbnQocSxBKXtyZXR1cm4gQT9OdW1iZXIoKHEvQSoxMDApLnRvRml4ZWQoNCkpOjB9Y29tcHV0ZVdpZGdldFJlY3QocSxBLHNlKXtsZXQgb2U9QS5jZWxsV2lkdGhQeCxhZT1BLmNlbGxIZWlnaHRQeCxUZT1xLngqKG9lK3NlLmhvcml6b250YWwpK3NlLmhvcml6b250YWwsUmU9cS55KihhZStzZS52ZXJ0aWNhbCkrc2UudmVydGljYWwsQmU9cS53Km9lK01hdGgubWF4KDAscS53LTEpKnNlLmhvcml6b250YWwsR2U9cS5oKmFlK01hdGgubWF4KDAscS5oLTEpKnNlLnZlcnRpY2FsO3JldHVybntsZWZ0OlRlLHRvcDpSZSx3aWR0aDpCZSxoZWlnaHQ6R2V9fXN0YXRpY3tNcyhhLHQpfX07cmV0dXJuIHllPWF9KSgpfSk7dmFyIHM1YT1nKCgpPT57YTVhKCl9KTtmdW5jdGlvbiBpNWEoKXtyZXR1cm4gd2AKICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjEiPlRoaXMgaXMgYSBIMSBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIyIj5UaGlzIGlzIGEgSDIgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMyI+VGhpcyBpcyBhIEgzIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjQiPlRoaXMgaXMgYSBINCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI1Ij5UaGlzIGlzIGEgSDUgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNiI+VGhpcyBpcyBhIEg2IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyIj5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSJociIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI3Ij5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSI3Iik8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyLXNtYWxsIj5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSJoci1zbWFsbCIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI4Ij5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSI4Iik8L2RlZXMtaGVhZGluZz4KICBgfXZhciByNWE9ZygoKT0+e3BlKCk7aShpNWEsImRlbW9GdW5jIil9KTt2YXIgbzVhLFhpdCxuNWEsbDVhPWcoKCk9PntwZSgpO3I1YSgpO0NyKCk7cHQoKTtvNWE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFhpdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbjVhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1oZWFkaW5nIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNIZWFkaW5nIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxvNWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsZXZlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ibGV2ZWwiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5sZXZlbCwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LmxldmVsPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxvNWEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pNWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1YaXQodGhpcyxvLCIxIik7Z2V0IGxldmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxldmVsKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAvKiBIZWFkaW5nIHN0eWxlcy4KICAgICAgICogQ29sb3IgaGllcmFyY2h5OiBoMS1oMiBzdGF5IHByb21pbmVudCB3aXRoIHRleHQtcHJpbWFyeTsgaDMtaDYgc3RlcAogICAgICAgKiBkb3duIHRvIHRleHQtc2Vjb25kYXJ5IHNvIHRoZXkgcmVhZCBhcyBzdWJoZWFkaW5ncyBpbnN0ZWFkIG9mCiAgICAgICAqIG1pbmktaDFzLiBLZWVwcyB0aGUgdmlzdWFsIGxvdWRuZXNzIG91dCBvZiBzbWFsbGVyIGhlYWRpbmdzLiAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIGgxLCBoMiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAvKiBQZXItbGV2ZWwgdHlwb2dyYXBoeSArIHNwYWNpbmcuCiAgICAgICAqIE1hcmdpbiBzY2FsZXMgd2l0aCBpbXBvcnRhbmNlOiBoMSBnZXRzIHRoZSBtb3N0IGJyZWF0aGluZyByb29tLAogICAgICAgKiBoNiB0aGUgbGVhc3QuIFRvcCBtYXJnaW4gPiBib3R0b20gbWFyZ2luIHNvIGhlYWRpbmdzIGdyb3VwIHdpdGgKICAgICAgICogdGhlIGNvbnRlbnQgdGhhdCBmb2xsb3dzIHRoZW0uICovCiAgICAgIGgxIHsKICAgICAgICAvKiBoMSB1c2VzIHdlaWdodCA1MDAsIG5vdCA2MDA6IHRoZSBDYWwgU2FucyBkaXNwbGF5IGZvbnQgaXMKICAgICAgICAgKiBhbHJlYWR5IHN0eWxpemVkIGVub3VnaCB0aGF0IGJvbGQgKyBtYXggY29udHJhc3QgKyAzMnB4IHN0YWNrcwogICAgICAgICAqIHRvbyBtdWNoIGVtcGhhc2lzLiA1MDAga2VlcHMgdGhlIHR5cG9ncmFwaGljIGltcGFjdCB3aXRob3V0CiAgICAgICAgICogc2hvdXRpbmcuICovCiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7emRhfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMjVlbTsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsKICAgICAgfQogICAgICBoMiB7CiAgICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKSAwIHZhcigtLWRlZXMtc3BhY2luZy1tZCk7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy14bCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOwogICAgICB9CiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgICBoNSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKSAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1tZCkgMCB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOwogICAgICB9CgogICAgICAvKiBIb3Jpem9udGFsIHJ1bGUgc3R5bGUgaGVhZGluZyAqLwogICAgICAuaGVhZGluZy1ociB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1sZykgMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgICAvKiBGYWRlIGxpbmVzIHRvd2FyZCBhbmQgYXdheSBmcm9tIHRleHQgZm9yIGhyIHN0eWxlICovCiAgICAgIC5oZWFkaW5nLWhyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKSk7CiAgICAgICAgbWFyZ2luOiAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgLmhlYWRpbmctaHI6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKSwgdHJhbnNwYXJlbnQpOwogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIC8qIFNtYWxsIGhyIHZhcmlhbnQgd2l0aCByZWR1Y2VkIG1hcmdpbnMgKi8KICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbCB7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctc20pIDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmJlZm9yZSwKICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbDo6YWZ0ZXIgewogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSIxIjpyZXR1cm4gd2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YDtjYXNlIjIiOnJldHVybiB3YDxoMj48c2xvdD48L3Nsb3Q+PC9oMj5gO2Nhc2UiMyI6cmV0dXJuIHdgPGgzPjxzbG90Pjwvc2xvdD48L2gzPmA7Y2FzZSI0IjpyZXR1cm4gd2A8aDQ+PHNsb3Q+PC9zbG90PjwvaDQ+YDtjYXNlIjUiOnJldHVybiB3YDxoNT48c2xvdD48L3Nsb3Q+PC9oNT5gO2Nhc2UiNiI6cmV0dXJuIHdgPGg2PjxzbG90Pjwvc2xvdD48L2g2PmA7Y2FzZSI3IjpjYXNlImhyIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtjYXNlIjgiOmNhc2UiaHItc21hbGwiOnJldHVybiB3YDxkaXYgY2xhc3M9ImhlYWRpbmctaHIgaGVhZGluZy1oci1zbWFsbCI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7ZGVmYXVsdDpyZXR1cm4gd2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YH19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFhpdCh0aGlzLGwpfXN0YXRpY3tYaXQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGM1YT1nKCgpPT57bDVhKCl9KTt2YXIgZDVhPWcoKCk9PntsdigpfSk7dmFyIHU1YSxwNWE9ZygoKT0+e3BlKCk7dTVhPWkoKCk9PndgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNnB4OyI+CiAgICA8IS0tIFNtYWxsIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjUgcGFnZXMsIHN0YXJ0aW5nIGF0IDE6PC9zcGFuPgogICAgICA8ZGVlcy1wYWdpbmF0aW9uCiAgICAgICAgLnRvdGFsPSR7NX0KICAgICAgICAucGFnZT0kezF9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7cz0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIscy5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTGFyZ2VyIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjE1IHBhZ2VzLCBzdGFydGluZyBhdCA4Ojwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezE1fQogICAgICAgIC5wYWdlPSR7OH0KICAgICAgICBAcGFnZS1jaGFuZ2U9JHtzPT5jb25zb2xlLmxvZygiUGFnZSBjaGFuZ2VkIHRvIixzLmRldGFpbC5wYWdlKX0KICAgICAgPjwvZGVlcy1wYWdpbmF0aW9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgUWl0LFFYLGg1YSxmNWE9ZygoKT0+e3BlKCk7cDVhKCk7cHQoKTtRaXQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFFYPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxoNWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXBhZ2luYXRpb24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1BhZ2luYXRpb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sUWl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4icGFnZSJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnBhZ2UsImdldCIpLHNldDppKCh2LHgpPT57di5wYWdlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxRaXQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0b3RhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4idG90YWwiaW4gdiwiaGFzIiksZ2V0Omkodj0+di50b3RhbCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnRvdGFsPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxRaXQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz11NWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1RWCh0aGlzLG8sMSk7Z2V0IHBhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGFnZShiKXt0aGlzLiNlPWJ9I3Q9KFFYKHRoaXMsbCksUVgodGhpcyxkLDEpKTtnZXQgdG90YWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdG90YWwoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG1hcmdpbjogMCAycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZSIsIiM0NDQiKX07CiAgICAgIH0KICAgICAgYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYWFhIiwiIzY2NiIpfTsKICAgICAgfQogICAgICBidXR0b24uY3VycmVudCB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgc3Bhbi5lbGxpcHNpcyB7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICBgXTtnZXQgcGFnZXMoKXtsZXQgYj1bXSx2PXRoaXMudG90YWwseD10aGlzLnBhZ2U7aWYodjw9Nylmb3IobGV0IG09MTttPD12O20rKyliLnB1c2gobSk7ZWxzZXtiLnB1c2goMSkseD40JiZiLnB1c2goIi4uLiIpO2xldCBtPU1hdGgubWF4KDIseC0yKSxmPU1hdGgubWluKHYtMSx4KzIpO2ZvcihsZXQgeT1tO3k8PWY7eSsrKWIucHVzaCh5KTt4PHYtMyYmYi5wdXNoKCIuLi4iKSxiLnB1c2godil9cmV0dXJuIGJ9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZS0xKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U8PTF9CiAgICAgICAgYXJpYS1sYWJlbD0iUHJldmlvdXMgcGFnZSIKICAgICAgPgogICAgICAgIOKAuQogICAgICA8L2J1dHRvbj4KICAgICAgJHt0aGlzLnBhZ2VzLm1hcChiPT5iPT09Ii4uLiI/d2A8c3BhbiBjbGFzcz0iZWxsaXBzaXMiPuKApjwvc3Bhbj5gOndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9IiR7Yj09PXRoaXMucGFnZT8iY3VycmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZShiKX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke2I9PT10aGlzLnBhZ2V9CiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJQYWdlICR7Yn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgPGJ1dHRvbgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UodGhpcy5wYWdlKzEpfQogICAgICAgID9kaXNhYmxlZD0ke3RoaXMucGFnZT49dGhpcy50b3RhbH0KICAgICAgICBhcmlhLWxhYmVsPSJOZXh0IHBhZ2UiCiAgICAgID4KICAgICAgICDigLoKICAgICAgPC9idXR0b24+CiAgICBgfWNoYW5nZVBhZ2UoYil7YjwxfHxiPnRoaXMudG90YWx8fGI9PT10aGlzLnBhZ2V8fCh0aGlzLnBhZ2U9Yix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwYWdlLWNoYW5nZSIse2RldGFpbDp7cGFnZTp0aGlzLnBhZ2V9LGJ1YmJsZXM6ITB9KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxRWCh0aGlzLHUpfXN0YXRpY3tRWChhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgbTVhPWcoKCk9PntmNWEoKX0pO3ZhciBnNWE9ZygoKT0+e2ZvKCl9KTt2YXIgYjVhLHY1YT1nKCgpPT57cGUoKTtKaXQoKTtiNWE9aSgoKT0+e2xldCBzPVt7a2V5OiJlbWFpbCIsbGFiZWw6IkFjY291bnQgZW1haWwiLHZhbHVlOiJhZG1pbkBleGFtcGxlLmNvbSJ9LHtrZXk6InN0YXR1cyIsbGFiZWw6IlN0YXR1cyIsdmFsdWU6ImVuYWJsZWQifSx7a2V5OiJtb2RlIixsYWJlbDoiTW9kZSIsdmFsdWU6InByb2R1Y3Rpb24ifSx7a2V5OiJhdXRvUmVuZXciLGxhYmVsOiJBdXRvLXJlbmV3Iix2YWx1ZToib24ifSx7a2V5OiJ0aHJlc2hvbGQiLGxhYmVsOiJSZW5ld2FsIHRocmVzaG9sZCIsdmFsdWU6IjMwIGRheXMifV0sZT1be25hbWU6IkVkaXQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRWRpdCBjbGlja2VkIiksImFjdGlvbiIpfV0sdD1be25hbWU6IkNvbmZpZ3VyZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDb25maWd1cmUgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGE9W3tuYW1lOiJSZXNldCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXNldCBjbGlja2VkIiksImFjdGlvbiIpfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJFZGl0IGNsaWNrZWQiKSwiYWN0aW9uIil9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJBQ01FIFNldHRpbmdzIn0KICAgICAgICAgIC5zZXR0aW5nc0ZpZWxkcz0ke3N9CiAgICAgICAgICAuYWN0aW9ucz0ke2V9CiAgICAgICAgPjwvZGVlcy1zZXR0aW5ncz4KCiAgICAgICAgPGRlZXMtc2V0dGluZ3MKICAgICAgICAgIC5oZWFkaW5nPSR7IkFDTUUgU2V0dGluZ3MifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik5vIEFDTUUgY29uZmlndXJhdGlvbiB5ZXQuIENsaWNrIENvbmZpZ3VyZSB0byBzZXQgdXAgYXV0b21hdGVkIFRMUyBjZXJ0aWZpY2F0ZSBpc3N1YW5jZS4ifQogICAgICAgICAgLmFjdGlvbnM9JHt0fQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJTZXJ2ZXIgQ29uZmlnIn0KICAgICAgICAgIC5zZXR0aW5nc0ZpZWxkcz0ke1t7a2V5OiJob3N0IixsYWJlbDoiSG9zdG5hbWUiLHZhbHVlOiJwcm94eS5leGFtcGxlLmNvbSJ9LHtrZXk6InBvcnQiLGxhYmVsOiJQb3J0Iix2YWx1ZToiNDQzIn1dfQogICAgICAgICAgLmFjdGlvbnM9JHthfQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIEpYLHd1LHg1YSxKaXQ9ZygoKT0+e3BlKCk7djVhKCk7Q3IoKTtwdCgpO25yKCk7Slg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHd1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx4NWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXNldHRpbmdzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTZXR0aW5ncyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe2F0dHJpYnV0ZTohMX0pXSx4PVtMKHthdHRyaWJ1dGU6ITF9KV0sSlgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJoZWFkaW5nImluIHosImhhcyIpLGdldDppKHo9PnouaGVhZGluZywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmhlYWRpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLEpYKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImRlc2NyaXB0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZGVzY3JpcHRpb24sImdldCIpLHNldDppKCh6LE4pPT57ei5kZXNjcmlwdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGQsdSksSlgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR0aW5nc0ZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2V0dGluZ3NGaWVsZHMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZXR0aW5nc0ZpZWxkcywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnNldHRpbmdzRmllbGRzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxKWCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImFjdGlvbnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5hY3Rpb25zLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYWN0aW9ucz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksSlgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1iNWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT13dSh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoTSl7dGhpcy4jZT1NfSN0PSh3dSh0aGlzLGwpLHd1KHRoaXMsZCwiIikpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkZXNjcmlwdGlvbihNKXt0aGlzLiN0PU19I2E9KHd1KHRoaXMsdSksd3UodGhpcyxiLFtdKSk7Z2V0IHNldHRpbmdzRmllbGRzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNldHRpbmdzRmllbGRzKE0pe3RoaXMuI2E9TX0jcz0od3UodGhpcyx2KSx3dSh0aGlzLG0sW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBhY3Rpb25zKE0pe3RoaXMuI3M9TX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgfQoKICAgICAgLnNldHRpbmdzR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDEycHggMjRweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuc2V0dGluZ3NGaWVsZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZmllbGRMYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmZpZWxkVmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuc2V0dGluZ3NEZXNjcmlwdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBNPXRoaXMuc2V0dGluZ3NGaWVsZHMubGVuZ3RoPjAsej10aGlzLmFjdGlvbnMubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9JHt0aGlzLmhlYWRpbmd9PgogICAgICAgICR7TT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzR3JpZCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2V0dGluZ3NGaWVsZHMubWFwKE49PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3NGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGRMYWJlbCI+JHtOLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZFZhbHVlIj4ke04udmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzRGVzY3JpcHRpb24iPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAke3o/d2AKICAgICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICAgJHt0aGlzLmFjdGlvbnMubWFwKChOLEMpPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24gJHtDPT09dGhpcy5hY3Rpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+Ti5hY3Rpb24oKX0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAke04ubmFtZX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksd3UodGhpcyxmKX1zdGF0aWN7d3UoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIHk1YT1nKCgpPT57Sml0KCl9KTt2YXIgdzVhLGVRLGs1YSxTNWEsXzVhPWcoKCk9PntwZSgpO2kxZSgpO3c1YT1pKGFzeW5jKHMsZSk9Pm5ldyBQcm9taXNlKHQ9PntsZXQgYT0hMSxyPWkobD0+e2F8fChhPSEwLGUmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pLHQobCkpfSwiZmluaXNoIiksbj1pKCgpPT57d2luZG93LmNsZWFyVGltZW91dChvKSxyKCExKX0sImhhbmRsZUFib3J0Iiksbz13aW5kb3cuc2V0VGltZW91dCgoKT0+e3IoITApfSxzKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixuLHtvbmNlOiEwfSl9KSwid2FpdEZvclByb2dyZXNzVGljayIpLGVRPWkoKHM9IkNvbnRpbnVlIik9Plt7bmFtZTpzLGFjdGlvbjppKGFzeW5jIGU9PmU/LmdvTmV4dCgpLCJhY3Rpb24iKX1dLCJjcmVhdGVDb250aW51ZU1lbnVPcHRpb25zIiksazVhPWkoKCk9Plt7dGl0bGU6IkFjY291bnQgU2V0dXAiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iZW1haWwiIGxhYmVsPSJXb3JrIEVtYWlsIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0icGFzc3dvcmQiIGxhYmVsPSJDcmVhdGUgUGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICBgLG1lbnVPcHRpb25zOmVRKCl9LHt0aXRsZToiUHJvZmlsZSBEZXRhaWxzIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImZpcnN0TmFtZSIgbGFiZWw9IkZpcnN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJsYXN0TmFtZSIgbGFiZWw9Ikxhc3QgTmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczplUSgpfSx7dGl0bGU6IkNvbnRhY3QgSW5mb3JtYXRpb24iLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSBrZXk9InBob25lIiBsYWJlbD0iTW9iaWxlIE51bWJlciIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJjb21wYW55IiBsYWJlbD0iQ29tcGFueSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczplUSgpfSx7dGl0bGU6IlByb3Zpc2lvbiBXb3Jrc3BhY2UiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+CiAgICAgICAgICBXZSBhcmUgY3JlYXRpbmcgeW91ciBzdGFydGVyIHdvcmtzcGFjZSwgYXBwbHlpbmcgeW91ciBvbmJvYXJkaW5nIGNob2ljZXMsCiAgICAgICAgICBhbmQgcHJlcGFyaW5nIGEgbGl2ZSBwcmV2aWV3LiBUaGlzIHN0ZXAgbW92ZXMgZm9yd2FyZCBhdXRvbWF0aWNhbGx5IHdoZW4KICAgICAgICAgIHRoZSBlbnZpcm9ubWVudCBpcyByZWFkeS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIGAscHJvZ3Jlc3NTdGVwOntsYWJlbDoiV29ya3NwYWNlIHNldHVwIixwZXJjZW50YWdlOjgsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNSb3dzOjQsc3RhdHVzVGV4dDoiQWxsb2NhdGluZyBhIGNsZWFuIHdvcmtzcGFjZS4uLiIsdGVybWluYWxMaW5lczpbIkFsbG9jYXRpbmcgYSBjbGVhbiB3b3Jrc3BhY2UiXX0sdmFsaWRhdGlvbkZ1bmM6aShhc3luYyhzLGUsdCk9PntsZXQgYT1be2xpbmU6IkFsbG9jYXRpbmcgYSBjbGVhbiB3b3Jrc3BhY2UiLHBlcmNlbnRhZ2U6OCxkZWxheTo1MDB9LHtsaW5lOiJTeW5jaW5nIGFjY291bnQgcHJlZmVyZW5jZXMiLHBlcmNlbnRhZ2U6MjQsZGVsYXk6NjUwfSx7bGluZToiSW5zdGFsbGluZyBzZWxlY3RlZCBpbnRlZ3JhdGlvbnMiLHBlcmNlbnRhZ2U6NDcsZGVsYXk6NzAwfSx7bGluZToiR2VuZXJhdGluZyBzdGFydGVyIHByb2plY3QgZmlsZXMiLHBlcmNlbnRhZ2U6NzEsZGVsYXk6NjUwfSx7bGluZToiQm9vdGluZyB0aGUgbGl2ZSBwcmV2aWV3IGVudmlyb25tZW50IixwZXJjZW50YWdlOjkyLGRlbGF5OjcwMH1dO3MucmVzZXRQcm9ncmVzc1N0ZXAoKTtmb3IobGV0W3Isbl1vZiBhLmVudHJpZXMoKSlpZih0Py5hYm9ydGVkfHwocj09PTA/cy51cGRhdGVQcm9ncmVzc1N0ZXAoe3BlcmNlbnRhZ2U6bi5wZXJjZW50YWdlLGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDpgJHtuLmxpbmV9Li4uYCx0ZXJtaW5hbExpbmVzOltuLmxpbmVdfSk6KHMuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShuLmxpbmUpLHMudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOm4ucGVyY2VudGFnZSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6YCR7bi5saW5lfS4uLmB9KSksIWF3YWl0IHc1YShuLmRlbGF5LHQpKSlyZXR1cm47cy5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKCJXb3Jrc3BhY2UgcmVhZHkiKSxzLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OiJXb3Jrc3BhY2UgcmVhZHkuIn0pLGF3YWl0IHc1YSgzNTAsdCl9LCJ2YWxpZGF0aW9uRnVuYyIpfSx7dGl0bGU6IlRlYW0gU2l6ZSIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICBrZXk9InRlYW1TaXplIgogICAgICAgICAgbGFiZWw9IkhvdyBiaWcgaXMgeW91ciB0ZWFtPyIKICAgICAgICAgIC5vcHRpb25zPSR7W3tsYWJlbDoiMS01Iix2YWx1ZToiMS01In0se2xhYmVsOiI2LTIwIix2YWx1ZToiNi0yMCJ9LHtsYWJlbDoiMjEtNTAiLHZhbHVlOiIyMS01MCJ9LHtsYWJlbDoiNTErIix2YWx1ZToiNTErIn1dfQogICAgICAgICAgcmVxdWlyZWQKICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6ZVEoKX0se3RpdGxlOiJHb2FscyIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICBrZXk9ImdvYWwiCiAgICAgICAgICBsYWJlbD0iTWFpbiBvYmplY3RpdmUiCiAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6Ik9uYm9hcmRpbmciLHZhbHVlOiJvbmJvYXJkaW5nIn0se2xhYmVsOiJBbmFseXRpY3MiLHZhbHVlOiJhbmFseXRpY3MifSx7bGFiZWw6IkF1dG9tYXRpb24iLHZhbHVlOiJhdXRvbWF0aW9uIn1dfQogICAgICAgICAgcmVxdWlyZWQKICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6ZVEoKX0se3RpdGxlOiJSZXZpZXcgJiBMYXVuY2giLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+CiAgICAgICAgICBZb3VyIHdvcmtzcGFjZSBpcyByZWFkeS4gUmV2aWV3IHRoZSBjb2xsZWN0ZWQgZGV0YWlscyBhbmQgbGF1bmNoIHdoZW4KICAgICAgICAgIHlvdSBhcmUgcmVhZHkgdG8gc3RhcnQuCiAgICAgICAgPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiTGF1bmNoIixhY3Rpb246aShhc3luYyBzPT57cz8ub3ZlcmxheSYmYXdhaXQgcy5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfV0sImNyZWF0ZURlbW9TdGVwcyIpLFM1YT1pKCgpPT53YAogIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7Ij4KICAgIDxkaXYKICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgei1pbmRleDogMTA7IgogICAgPgogICAgICA8ZGVlcy1idXR0b24KICAgICAgICBAY2xpY2s9JHthc3luYygpPT57YXdhaXQgYXguY3JlYXRlQW5kU2hvdyh7c3RlcHM6azVhKCl9KX19CiAgICAgID5PcGVuIHN0ZXBwZXIgYXMgb3ZlcmxheTwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkZWVzLXN0ZXBwZXIgLnN0ZXBzPSR7azVhKCl9PjwvZGVlcy1zdGVwcGVyPgogIDwvZGl2PgpgLCJzdGVwcGVyRGVtbyIpfSk7dmFyIFloLE9uLGF4LGkxZT1nKCgpPT57cG8oKTtwZSgpO2t0KCk7XzVhKCk7cHQoKTtDcigpO3puKCk7RjEoKTtKMCgpO1VpdCgpO25yKCk7WWg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE9uPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxheD0oKCk9PntsZXQgcz1bbmUoImRlZXMtc3RlcHBlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3RlcHBlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpPYmplY3R9KV0sYz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seT1bTCh7dHlwZTpOdW1iZXIsYXR0cmlidXRlOiExfSldLE49W0woe3R5cGU6T2JqZWN0LGF0dHJpYnV0ZTohMX0pXSxPPVtMKHt0eXBlOkJvb2xlYW4sYXR0cmlidXRlOiExfSldLFloKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RlcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN0ZXBzImluIFMsImhhcyIpLGdldDppKFM9PlMuc3RlcHMsImdldCIpLHNldDppKChTLEkpPT57Uy5zdGVwcz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksWWgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFN0ZXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkU3RlcCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlbGVjdGVkU3RlcCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNlbGVjdGVkU3RlcD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksWWgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdmVybGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvdmVybGF5ImluIFMsImhhcyIpLGdldDppKFM9PlMub3ZlcmxheSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm92ZXJsYXk9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLFloKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuY2VsYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY2FuY2VsYWJsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNhbmNlbGFibGUsImdldCIpLHNldDppKChTLEkpPT57Uy5jYW5jZWxhYmxlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxZaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBwZXJaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN0ZXBwZXJaSW5kZXgiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdGVwcGVyWkluZGV4LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3RlcHBlclpJbmRleD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksWWgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJhY3RpdmVGb3JtImluIFMsImhhcyIpLGdldDppKFM9PlMuYWN0aXZlRm9ybSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmFjdGl2ZUZvcm09SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLFloKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRm9ybVZhbGlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJhY3RpdmVGb3JtVmFsaWQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5hY3RpdmVGb3JtVmFsaWQsImdldCIpLHNldDppKChTLEkpPT57Uy5hY3RpdmVGb3JtVmFsaWQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLFloKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89UzVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiRm9ybSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGspe2xldCBTPWRvY3VtZW50LmJvZHksST1uZXcgSDtyZXR1cm4gSS5zdGVwcz1rLnN0ZXBzLEkub3ZlcmxheT0hMCxrLmNhbmNlbGFibGUhPT12b2lkIDAmJihJLmNhbmNlbGFibGU9ay5jYW5jZWxhYmxlKSxJLndpbmRvd0xheWVyPWF3YWl0IGhvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSxTLmFwcGVuZChJLndpbmRvd0xheWVyKSxTLmFwcGVuZChJKSxJLnN0ZXBwZXJaSW5kZXg9eGEuZ2V0TmV4dFpJbmRleCgpLHhhLnJlZ2lzdGVyKEksSS5zdGVwcGVyWkluZGV4KSxJfSNlPU9uKHRoaXMsbyxbXSk7Z2V0IHN0ZXBzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0ZXBzKGspe3RoaXMuI2U9a30jdD0oT24odGhpcyxsKSxPbih0aGlzLGQsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkU3RlcCgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFN0ZXAoayl7dGhpcy4jdD1rfSNhPShPbih0aGlzLHUpLE9uKHRoaXMsYiwhMSkpO2dldCBvdmVybGF5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG92ZXJsYXkoayl7dGhpcy4jYT1rfSNzPShPbih0aGlzLHYpLE9uKHRoaXMsbSwhMCkpO2dldCBjYW5jZWxhYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNhbmNlbGFibGUoayl7dGhpcy4jcz1rfSNpPShPbih0aGlzLGYpLE9uKHRoaXMsTSwxZTMpKTtnZXQgc3RlcHBlclpJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBzdGVwcGVyWkluZGV4KGspe3RoaXMuI2k9a30jcj0oT24odGhpcyx6KSxPbih0aGlzLEMsbnVsbCkpO2dldCBhY3RpdmVGb3JtKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFjdGl2ZUZvcm0oayl7dGhpcy4jcj1rfSNvPShPbih0aGlzLF8pLE9uKHRoaXMsJCwhMCkpO2dldCBhY3RpdmVGb3JtVmFsaWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWN0aXZlRm9ybVZhbGlkKGspe3RoaXMuI289a31hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPU9uKHRoaXMsRSk7d2luZG93TGF5ZXI7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogSW4gb3ZlcmxheSBtb2RlIHRoZSBob3N0IGlzICJ0cmFuc3BhcmVudCIgdG8gbGF5b3V0IOKAlCB0aGUgaW5uZXIKICAgICAgICogLnN0ZXBwZXJDb250YWluZXIub3ZlcmxheSBpcyB3aGF0IHBpbnMgdG8gdGhlIHZpZXdwb3J0IGFuZCBjYXJyaWVzIHRoZQogICAgICAgKiB6LWluZGV4LiBLZWVwaW5nIDpob3N0IHVucG9zaXRpb25lZCBhdm9pZHMgbmVzdGluZyB0aGUgc3RhY2tpbmcgY29udGV4dAogICAgICAgKiB1bmRlciBhbiBhdXRvLXotaW5kZXggcGFyZW50ICh3aGljaCB3YXMgdHJhcHBpbmcgLnN0ZXBwZXJDb250YWluZXIKICAgICAgICogYmVsb3cgRGVlc1dpbmRvd0xheWVyJ3Mgc2libGluZyBsYXllcnMpLiBUaGlzIG1pcnJvcnMgaG93IGRlZXMtbW9kYWwKICAgICAgICoga2VlcHMgaXRzIG93biA6aG9zdCB1bnBvc2l0aW9uZWQgYW5kIGxldHMgLm1vZGFsQ29udGFpbmVyIGRyaXZlIGxheW91dC4KICAgICAgICovCiAgICAgIDpob3N0KFtvdmVybGF5XSkgewogICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc3RlcHBlckNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuc3RlcHBlckNvbnRhaW5lci5vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH0KCiAgICAgIC8qIEV4aXQgYW5pbWF0aW9uIOKAlCByZXZlcnNlIG9mIHRoZSBlbnRyeS4gVGlsZXMgc2xpZGUgRE9XTiArIGZhZGUgb3V0LAogICAgICAgICBtaXJyb3JpbmcgdGhlIC5lbnRyYW5jZSBzbGlkZS11cC4gVGhlIHRyYW5zaXRpb24gb3ZlcnJpZGUgaXMgbmVlZGVkCiAgICAgICAgIGJlY2F1c2UgZGVlcy10aWxlLnN0ZXAgaGFzIGl0cyBvd24gMC43cyB0cmFuc2l0aW9uIGZvciBzdGVwIHNlbGVjdGlvbgogICAgICAgICB3aGljaCB3b3VsZCBvdGhlcndpc2UgbWFrZSB0aGUgZXhpdCBzbHVnZ2lzaC4gKi8KICAgICAgLnN0ZXBwZXJDb250YWluZXIucHJlZGVzdHJveSBkZWVzLXRpbGUuc3RlcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMsIGZpbHRlciAwLjJzOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDAuNTUpIHNhdHVyYXRlKDAuODUpOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgZmlsdGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5zZWxlY3RlZCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMSkgc2F0dXJhdGUoMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IGF1dG87CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLmhpZGRlblN0ZXAgewogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuZW50cmFuY2UgewogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLCBmaWx0ZXIgMC4zNXMgZWFzZTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuZW50cmFuY2UuaGlkZGVuU3RlcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDB2aDsKICAgICAgfQoKICAgICAgLnN0ZXBwZXJDb250YWluZXIub3ZlcmxheSBkZWVzLXRpbGUuc3RlcDo6cGFydChvdXRlcikgewogICAgICAgIGJveC1zaGFkb3c6CiAgICAgICAgICAwIDAgMCAxcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAxMDAlIC8gMC4wMykiKX0sCiAgICAgICAgICAwIDhweCA0MHB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTIpIiwiaHNsKDAgMCUgMCUgLyAwLjUpIil9LAogICAgICAgICAgMCAycHggOHB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMCUgLyAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDEycHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZ29CYWNrLXNwYWNlciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2sgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2s6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjayBzcGFuIHsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2s6aG92ZXIgc3BhbiB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLnN0ZXBDb3VudGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgLnN0ZXAtYm9keSAudGl0bGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nLXRvcDogMzJweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAuc3RlcC1ib2R5IC5jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuc3RlcC1ib2R5IC5jb250ZW50LndpdGhQcm9ncmVzc1N0ZXAgewogICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NTdGVwIHsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBGb290ZXI6IG1vZGFsLXN0eWxlIGJvdHRvbSBidXR0b25zIC0tLSAqLwogICAgICAuYm90dG9tQnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci1sZWZ0IHNlcGFyYXRvciBvbiBldmVyeSBidXR0b24gRVhDRVBUIHRoZSBmaXJzdCBvbmUuCiAgICAgICAgIFVzZXMgZ2VuZXJhbCBzaWJsaW5nIHNvIHRoZSBzdGVwSGludCAoaWYgcmVuZGVyZWQgb24gdGhlIGxlZnQpIGRvZXMKICAgICAgICAgbm90IHNoaWZ0IHdoaWNoIGJ1dHRvbiBjb3VudHMgYXMgImZpcnN0IiBhbmQgY3JlYXRlIGEgcGhhbnRvbSBib3JkZXIuICovCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gfiAuYm90dG9tQnV0dG9uIHsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTIpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24uZGlzYWJsZWQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLmRpc2FibGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLyogSGludCBzaG93biBvbiB0aGUgbGVmdCBvZiB0aGUgZm9vdGVyIHdoZW4gdGhlIGFjdGl2ZSBzdGVwJ3MgZm9ybSBoYXMKICAgICAgICAgdW5maWxsZWQgcmVxdWlyZWQgZmllbGRzLiBVc2VzIG1hcmdpbi1yaWdodDogYXV0byB0byBwdXNoIHJpZ2h0LWFsaWduZWQKICAgICAgICAgYnV0dG9ucyB0byB0aGUgcmlnaHQgd2hpbGUga2VlcGluZyB0aGUgaGludCBmbHVzaC1sZWZ0LiAqLwogICAgICAuYm90dG9tQnV0dG9ucyAuc3RlcEhpbnQgewogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ic3RlcHBlckNvbnRhaW5lciAke3RoaXMub3ZlcmxheT8ib3ZlcmxheSI6IiJ9IgogICAgICAgIHN0eWxlPSR7dGhpcy5vdmVybGF5P2B6LWluZGV4OiAke3RoaXMuc3RlcHBlclpJbmRleH07YDoiIn0KICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZU91dHNpZGVDbGlja30KICAgICAgPgogICAgICAgICR7dGhpcy5zdGVwcy5tYXAoKGssUyk9PntsZXQgST1rPT09dGhpcy5zZWxlY3RlZFN0ZXAsUD10aGlzLmdldEluZGV4T2ZTdGVwKGspPnRoaXMuZ2V0SW5kZXhPZlN0ZXAodGhpcy5zZWxlY3RlZFN0ZXApLFI9Uz09PTAsSz1rLnByb2dyZXNzU3RlcD90aGlzLmdldFByb2dyZXNzU3RlcFN0YXRlKGspOm51bGw7cmV0dXJuIHdgPGRlZXMtdGlsZQogICAgICAgICAgICBjbGFzcz0ic3RlcCAke0k/InNlbGVjdGVkIjoiIn0gJHtQPyJoaWRkZW5TdGVwIjoiIn0gJHtSPyJlbnRyYW5jZSI6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InN0ZXAtaGVhZGVyIj4KICAgICAgICAgICAgICAke1I/d2A8ZGl2IGNsYXNzPSJnb0JhY2stc3BhY2VyIj48L2Rpdj5gOndgPGRpdiBjbGFzcz0iZ29CYWNrIiBAY2xpY2s9JHt0aGlzLmdvQmFja30+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBJbnRlciI+PC08L3NwYW4+IGdvIHRvIHByZXZpb3VzIHN0ZXAKICAgICAgICAgICAgICAgICAgPC9kaXY+YH0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwQ291bnRlciI+CiAgICAgICAgICAgICAgICBTdGVwICR7UysxfSBvZiAke3RoaXMuc3RlcHMubGVuZ3RofQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcC1ib2R5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+JHtrLnRpdGxlfTwvZGl2PgogICAgICAgICAgICAgICR7ay5wcm9ncmVzc1N0ZXAmJks/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RlcCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICAgICAgLmxhYmVsPSR7Sy5sYWJlbD8/ay50aXRsZX0KICAgICAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0ke0sucGVyY2VudGFnZT8/MH0KICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke0suaW5kZXRlcm1pbmF0ZT8/ITF9CiAgICAgICAgICAgICAgICAgICAgLnNob3dQZXJjZW50YWdlPSR7Sy5zaG93UGVyY2VudGFnZT8/ITB9CiAgICAgICAgICAgICAgICAgICAgLnN0YXR1c1RleHQ9JHtLLnN0YXR1c1RleHQ/PyIifQogICAgICAgICAgICAgICAgICAgIC50ZXJtaW5hbExpbmVzPSR7Sy50ZXJtaW5hbExpbmVzPz9bXX0KICAgICAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0ke0suc3RhdHVzUm93cz8/M30KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCAke2sucHJvZ3Jlc3NTdGVwPyJ3aXRoUHJvZ3Jlc3NTdGVwIjoiIn0iPiR7ay5jb250ZW50fTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CdXR0b25zIj4KICAgICAgICAgICAgICAke0kmJnRoaXMuYWN0aXZlRm9ybSE9PW51bGwmJiF0aGlzLmFjdGl2ZUZvcm1WYWxpZD93YDxkaXYgY2xhc3M9InN0ZXBIaW50Ij5Db21wbGV0ZSBmb3JtIHRvIGNvbnRpbnVlPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuY2FuY2VsYWJsZT93YDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYm90dG9tQnV0dG9uIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNhbmNlbFJlcXVlc3QoKX0KICAgICAgICAgICAgICAgICAgPkNhbmNlbDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtrLm1lbnVPcHRpb25zPy5tYXAoKFYsVyk9PntsZXQgbWU9Vz09PWsubWVudU9wdGlvbnMubGVuZ3RoLTEsQj1tZSYmdGhpcy5hY3RpdmVGb3JtIT09bnVsbCYmIXRoaXMuYWN0aXZlRm9ybVZhbGlkO3JldHVybiB3YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke21lPyJwcmltYXJ5IjoiIn0gJHtCPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVPcHRpb25DbGljayhWLG1lKX0KICAgICAgICAgICAgICAgICAgPiR7Vi5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgYH0pPz8iIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT5gfSl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbmRleE9mU3RlcD1pKGs9PnRoaXMuc3RlcHMuZmluZEluZGV4KFM9Pms9PT1TKSwiZ2V0SW5kZXhPZlN0ZXAiKTthc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5zdGVwcy5sZW5ndGgmJih0aGlzLnByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbih0aGlzLnN0ZXBzWzBdKSx0aGlzLnNlbGVjdGVkU3RlcD10aGlzLnN0ZXBzWzBdLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgdGhpcy5zZXRTY3JvbGxTdGF0dXMoKSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzUwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXAuZW50cmFuY2UiKT8uY2xhc3NMaXN0LnJlbW92ZSgiZW50cmFuY2UiKSl9YXN5bmMgdXBkYXRlZChrKXshay5oYXMoInNlbGVjdGVkU3RlcCIpJiYhay5oYXMoInN0ZXBzIil8fGF3YWl0IHRoaXMuc2V0U2Nyb2xsU3RhdHVzKCl9c2Nyb2xsZXI7YXN5bmMgc2V0U2Nyb2xsU3RhdHVzKCl7bGV0IGs9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIiksUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIik7aWYoIVMpcmV0dXJuO3RoaXMuc2NhbkFjdGl2ZUZvcm0oUyksay5zdHlsZS5wYWRkaW5nVG9wfHwoay5zdHlsZS5wYWRkaW5nVG9wPWAke2sub2Zmc2V0SGVpZ2h0LzItUy5vZmZzZXRIZWlnaHQvMn1weGApO2xldCBJPVMub2Zmc2V0VG9wLWsub2Zmc2V0SGVpZ2h0LzIrUy5vZmZzZXRIZWlnaHQvMjthd2FpdCBqaS5zZXR1cERvbVRvb2xzKCksdGhpcy5zY3JvbGxlcnx8KHRoaXMuc2Nyb2xsZXI9bmV3IHV0LlN3ZWV0U2Nyb2xsKHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGVhc2luZzoiZWFzZUluT3V0RXhwbyIsZHVyYXRpb246NzAwfSxrKSksIXRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkJiZ0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyYmKHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyLHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSEwLHRoaXMucnVuU3RlcFZhbGlkYXRpb24odGhpcy5zZWxlY3RlZFN0ZXAsUyx0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuc2lnbmFsKSksdGhpcy5zY3JvbGxlci50byhJKX1hc3luYyBnb0JhY2soKXtsZXQgaz10aGlzLnN0ZXBzLmZpbmRJbmRleChQPT5QPT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGs8PTApcmV0dXJuO3RoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7bGV0IFM9dGhpcy5zdGVwc1trXTtTLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExO2xldCBJPXRoaXMuc3RlcHNbay0xXTtJLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExLHRoaXMucHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKEkpLHRoaXMuc2VsZWN0ZWRTdGVwPUksYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5zZWxlY3RlZFN0ZXAub25SZXR1cm5Ub1N0ZXBGdW5jPy4odGhpcyx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIikpfWdvTmV4dCgpe2xldCBrPXRoaXMuc3RlcHMuZmluZEluZGV4KFA9PlA9PT10aGlzLnNlbGVjdGVkU3RlcCk7aWYoazwwfHxrPj10aGlzLnN0ZXBzLmxlbmd0aC0xKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBTPXRoaXMuc3RlcHNba107Uy52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgST10aGlzLnN0ZXBzW2srMV07SS52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbihJKSx0aGlzLnNlbGVjdGVkU3RlcD1JfXJlc2V0UHJvZ3Jlc3NTdGVwKGs9dGhpcy5zZWxlY3RlZFN0ZXApe2s/LnByb2dyZXNzU3RlcCYmKGsucHJvZ3Jlc3NTdGVwU3RhdGU9dGhpcy5jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoayksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfXVwZGF0ZVByb2dyZXNzU3RlcChrLFM9dGhpcy5zZWxlY3RlZFN0ZXApe2lmKCFTPy5wcm9ncmVzc1N0ZXApcmV0dXJuO2xldCBJPXRoaXMuZ2V0UHJvZ3Jlc3NTdGVwU3RhdGUoUyk7Uy5wcm9ncmVzc1N0ZXBTdGF0ZT17Li4uSSwuLi5rLHRlcm1pbmFsTGluZXM6ay50ZXJtaW5hbExpbmVzP1suLi5rLnRlcm1pbmFsTGluZXNdOlsuLi5JLnRlcm1pbmFsTGluZXM/P1tdXX0sdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShrLFM9dGhpcy5zZWxlY3RlZFN0ZXApe2lmKCFTPy5wcm9ncmVzc1N0ZXApcmV0dXJuO2xldCBJPXRoaXMuZ2V0UHJvZ3Jlc3NTdGVwU3RhdGUoUyk7dGhpcy51cGRhdGVQcm9ncmVzc1N0ZXAoe3Rlcm1pbmFsTGluZXM6Wy4uLkkudGVybWluYWxMaW5lcz8/W10sa119LFMpfXNjYW5BY3RpdmVGb3JtKGspe2xldCBTPWsucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7aWYoUz09PXRoaXMuYWN0aXZlRm9ybSl7dGhpcy5yZWNvbXB1dGVGb3JtVmFsaWQoKTtyZXR1cm59aWYodGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj12b2lkIDAsdGhpcy5hY3RpdmVGb3JtPVMsIVMpe3RoaXMuYWN0aXZlRm9ybVZhbGlkPSEwO3JldHVybn10aGlzLnJlY29tcHV0ZUZvcm1WYWxpZCgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj1TLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5yZWNvbXB1dGVGb3JtVmFsaWQoKX0pfXJlY29tcHV0ZUZvcm1WYWxpZCgpe2xldCBrPXRoaXMuYWN0aXZlRm9ybTtpZighayl7dGhpcy5hY3RpdmVGb3JtVmFsaWQ9ITA7cmV0dXJufWxldCBTPWsuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy5hY3RpdmVGb3JtVmFsaWQ9Uy5ldmVyeShJPT4hSS5yZXF1aXJlZHx8SS52YWx1ZSE9PW51bGwmJkkudmFsdWUhPT12b2lkIDAmJkkudmFsdWUhPT0iIil9YXN5bmMgaGFuZGxlTWVudU9wdGlvbkNsaWNrKGssUyl7bGV0IEk9dGhpcy5hY3RpdmVGb3JtO2lmKFMmJkkpe2lmKCF0aGlzLmFjdGl2ZUZvcm1WYWxpZClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoUD0+e0kuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5QKCkse29uY2U6ITB9KSxJLmdhdGhlckFuZERpc3BhdGNoKCl9KX1hd2FpdCBrLmFjdGlvbih0aGlzKX1nZXRQcm9ncmVzc1N0ZXBTdGF0ZShrKXtyZXR1cm4gay5wcm9ncmVzc1N0ZXA/KGsucHJvZ3Jlc3NTdGVwU3RhdGV8fChrLnByb2dyZXNzU3RlcFN0YXRlPXRoaXMuY3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKGspKSxrLnByb2dyZXNzU3RlcFN0YXRlKTp7fX1jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoayl7cmV0dXJue2xhYmVsOmsucHJvZ3Jlc3NTdGVwPy5sYWJlbD8/ay50aXRsZSxwZXJjZW50YWdlOmsucHJvZ3Jlc3NTdGVwPy5wZXJjZW50YWdlPz8wLGluZGV0ZXJtaW5hdGU6ay5wcm9ncmVzc1N0ZXA/LmluZGV0ZXJtaW5hdGU/PyExLHNob3dQZXJjZW50YWdlOmsucHJvZ3Jlc3NTdGVwPy5zaG93UGVyY2VudGFnZT8/ITAsc3RhdHVzVGV4dDprLnByb2dyZXNzU3RlcD8uc3RhdHVzVGV4dD8/IiIsdGVybWluYWxMaW5lczpbLi4uay5wcm9ncmVzc1N0ZXA/LnRlcm1pbmFsTGluZXM/P1tdXSxzdGF0dXNSb3dzOmsucHJvZ3Jlc3NTdGVwPy5zdGF0dXNSb3dzPz8zfX1wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24oayl7az8ucHJvZ3Jlc3NTdGVwJiYoay5wcm9ncmVzc1N0ZXBTdGF0ZT10aGlzLmNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShrKSl9YXN5bmMgcnVuU3RlcFZhbGlkYXRpb24oayxTLEkpe3RyeXtpZihhd2FpdCBrLnZhbGlkYXRpb25GdW5jPy4odGhpcyxTLEkpLEkuYWJvcnRlZClyZXR1cm47ay5wcm9ncmVzc1N0ZXAmJmsucHJvZ3Jlc3NTdGVwLmF1dG9BZHZhbmNlIT09ITEmJnRoaXMuc2VsZWN0ZWRTdGVwPT09ayYmdGhpcy5nb05leHQoKX1jYXRjaChQKXtpZihJLmFib3J0ZWQpcmV0dXJuO2lmKGsucHJvZ3Jlc3NTdGVwKXtsZXQgUj1QIGluc3RhbmNlb2YgRXJyb3I/UC5tZXNzYWdlOiJVbmV4cGVjdGVkIGVycm9yIjt0aGlzLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoYEVycm9yOiAke1J9YCxrKSx0aGlzLnVwZGF0ZVByb2dyZXNzU3RlcCh7aW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OlJ9LGspfWNvbnNvbGUuZXJyb3IoUCl9fWNhbmNlbENvbmZpcm1Nb2RhbDtoYW5kbGVPdXRzaWRlQ2xpY2soayl7aWYoIXRoaXMub3ZlcmxheXx8IXRoaXMuY2FuY2VsYWJsZSlyZXR1cm47ay5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKTtrLnRhcmdldD09PVMmJnRoaXMuaGFuZGxlQ2FuY2VsUmVxdWVzdCgpfWFzeW5jIGhhbmRsZUNhbmNlbFJlcXVlc3QoKXt0aGlzLmNhbmNlbGFibGUmJih0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbCYmdGhpcy5jYW5jZWxDb25maXJtTW9kYWwuaXNDb25uZWN0ZWR8fCh0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD12b2lkIDAsdGhpcy5jYW5jZWxDb25maXJtTW9kYWw9YXdhaXQgUWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2FuY2VsIHNldHVwPyIsd2lkdGg6InNtYWxsIixjb250ZW50OndgCiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsiPgogICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNhbmNlbD8gQW55IHByb2dyZXNzIG9uIHRoZSBjdXJyZW50IHN0ZXAgd2lsbCBiZSBsb3N0LgogICAgICAgIDwvcD4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNvbnRpbnVlIHNldHVwIixhY3Rpb246aShhc3luYyBrPT57dGhpcy5jYW5jZWxDb25maXJtTW9kYWw9dm9pZCAwLGF3YWl0IGsuZGVzdHJveSgpfSwiYWN0aW9uIil9LHtuYW1lOiJZZXMsIGNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgaz0+e3RoaXMuY2FuY2VsQ29uZmlybU1vZGFsPXZvaWQgMCxrLmRlc3Ryb3koKSxhd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigxMDApLGF3YWl0IHRoaXMuZGVzdHJveSgpfSwiYWN0aW9uIil9XX0pKSl9YXN5bmMgZGVzdHJveSgpe2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIik7dGhpcy5zZWxlY3RlZFN0ZXA/LmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCksUz8uY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IGsuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyNTApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJmF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb249dm9pZCAwLHRoaXMuYWN0aXZlRm9ybT1udWxsLHhhLnVucmVnaXN0ZXIodGhpcyl9c3RhdGlje09uKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBNNWE9ZygoKT0+e2kxZSgpfSk7dmFyIHo1YT1nKCgpPT57bnIoKX0pO3ZhciBDNWE9ZygoKT0+e082YSgpO3M1YSgpO2M1YSgpO2Q1YSgpO201YSgpO2c1YSgpO3k1YSgpO001YSgpO3o1YSgpfSk7dmFyIFQ1YSwkNWE9ZygoKT0+e3BlKCk7VDVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICBkZWVzLWltYWdlLXZpZXdlciB7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5jb21wYWN0IHsKICAgICAgaGVpZ2h0OiAyNTBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlBFRyBJbWFnZSB3aXRoIFRvb2xiYXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSBsYW5kc2NhcGUgcGhvdG8gd2l0aCB6b29tLCBwYW4sIGZpdCwgYW5kIGRvd25sb2FkIGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTA2NzQ0MDM4MTM2LTQ2MjczODM0YjNmYj93PTEyMDAiCiAgICAgICAgYWx0PSJNb3VudGFpbiBsYW5kc2NhcGUiCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBORyB3aXRoIFRyYW5zcGFyZW5jeTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5UcmFuc3BhcmVudCBQTkcgZGlzcGxheWVkIG9uIGEgY2hlY2tlcmJvYXJkIGJhY2tncm91bmQuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy80LzQ3L1BOR190cmFuc3BhcmVuY3lfZGVtb25zdHJhdGlvbl8xLnBuZyIKICAgICAgICBhbHQ9IlBORyB0cmFuc3BhcmVuY3kgZGVtbyIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U1ZHIEltYWdlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNjYWxhYmxlIHZlY3RvciBncmFwaGljLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvMC8wMi9TVkdfbG9nby5zdmciCiAgICAgICAgYWx0PSJTVkcgbG9nbyIKICAgICAgICBmaXQ9ImNvbnRhaW4iCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5vIFRvb2xiYXIgVmFyaWFudDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5JbWFnZSB2aWV3ZXIgd2l0aCB0aGUgdG9vbGJhciBoaWRkZW4uPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIGNsYXNzPSJjb21wYWN0IgogICAgICAgIHNyYz0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0Njk0NzQ5NjgwMjgtNTY2MjNmMDJlNDJlP3c9ODAwIgogICAgICAgIGFsdD0iTmF0dXJlIHNjZW5lIgogICAgICAgIC5zaG93VG9vbGJhcj0keyExfQogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgZWMsZmksRDVhLGVydD1nKCgpPT57cGUoKTtVYSgpOyQ1YSgpO2VjPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmaT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRDVhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbWFnZS12aWV3ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdO3ZhciB1ZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0ltYWdlVmlld2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGxlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCgpXSxjPVtMKCldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxIPVtZKCldLEk9W1koKV0sSz1bWSgpXSxtZT1bWSgpXSxoZT1bWSgpXSxlYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic3JjImluIFEsImhhcyIpLGdldDppKFE9PlEuc3JjLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnNyYz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sbyxsKSxlYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iYWx0ImluIFEsImhhcyIpLGdldDppKFE9PlEuYWx0LCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmFsdD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sZCx1KSxlYyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iZml0ImluIFEsImhhcyIpLGdldDppKFE9PlEuZml0LCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmZpdD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sYix2KSxlYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJzaG93VG9vbGJhciJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnNob3dUb29sYmFyPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxtLGYpLGVjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiem9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iem9vbSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnpvb20sImdldCIpLHNldDppKChRLGllKT0+e1Euem9vbT1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sTSx6KSxlYyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhblgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InBhblgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5wYW5YLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnBhblg9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LEMsXyksZWModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5ZIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJwYW5ZImluIFEsImhhcyIpLGdldDppKFE9PlEucGFuWSwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5wYW5ZPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSwkLEUpLGVjKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaXNEcmFnZ2luZyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmlzRHJhZ2dpbmcsImdldCIpLHNldDppKChRLGllKT0+e1EuaXNEcmFnZ2luZz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sayxTKSxlYyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImxvYWRpbmciaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmxvYWRpbmc9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LFAsUiksZWModGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iZXJyb3IiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5lcnJvciwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5lcnJvcj1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sVixXKSxlYyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaW1hZ2VOYXR1cmFsV2lkdGgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pbWFnZU5hdHVyYWxXaWR0aCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5pbWFnZU5hdHVyYWxXaWR0aD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sQixVKSxlYyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImltYWdlTmF0dXJhbEhlaWdodCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmltYWdlTmF0dXJhbEhlaWdodCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5pbWFnZU5hdHVyYWxIZWlnaHQ9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LEYsaiksZWMobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bGV9LG51bGwsdCksdWU9YT1lLnZhbHVlLGxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmxlfSl9c3RhdGljIGRlbW89VDVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1maSh0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKGxlKXt0aGlzLiNlPWxlfSN0PShmaSh0aGlzLGwpLGZpKHRoaXMsZCwiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KGxlKXt0aGlzLiN0PWxlfSNhPShmaSh0aGlzLHUpLGZpKHRoaXMsYiwiY29udGFpbiIpKTtnZXQgZml0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpdChsZSl7dGhpcy4jYT1sZX0jcz0oZmkodGhpcyx2KSxmaSh0aGlzLG0sITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1Rvb2xiYXIobGUpe3RoaXMuI3M9bGV9I2k9KGZpKHRoaXMsZiksZmkodGhpcyxNLDEpKTtnZXQgem9vbSgpe3JldHVybiB0aGlzLiNpfXNldCB6b29tKGxlKXt0aGlzLiNpPWxlfSNyPShmaSh0aGlzLHopLGZpKHRoaXMsQywwKSk7Z2V0IHBhblgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcGFuWChsZSl7dGhpcy4jcj1sZX0jbz0oZmkodGhpcyxfKSxmaSh0aGlzLCQsMCkpO2dldCBwYW5ZKCl7cmV0dXJuIHRoaXMuI299c2V0IHBhblkobGUpe3RoaXMuI289bGV9I249KGZpKHRoaXMsRSksZmkodGhpcyxrLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNEcmFnZ2luZyhsZSl7dGhpcy4jbj1sZX0jbD0oZmkodGhpcyxTKSxmaSh0aGlzLFAsITApKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNsfXNldCBsb2FkaW5nKGxlKXt0aGlzLiNsPWxlfSNjPShmaSh0aGlzLFIpLGZpKHRoaXMsViwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNjfXNldCBlcnJvcihsZSl7dGhpcy4jYz1sZX0jZD0oZmkodGhpcyxXKSxmaSh0aGlzLEIsMCkpO2dldCBpbWFnZU5hdHVyYWxXaWR0aCgpe3JldHVybiB0aGlzLiNkfXNldCBpbWFnZU5hdHVyYWxXaWR0aChsZSl7dGhpcy4jZD1sZX0jdT0oZmkodGhpcyxVKSxmaSh0aGlzLEYsMCkpO2dldCBpbWFnZU5hdHVyYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgaW1hZ2VOYXR1cmFsSGVpZ2h0KGxlKXt0aGlzLiN1PWxlfWRyYWdTdGFydFg9KGZpKHRoaXMsaiksMCk7ZHJhZ1N0YXJ0WT0wO2RyYWdTdGFydFBhblg9MDtkcmFnU3RhcnRQYW5ZPTA7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgfQoKICAgICAgICAuem9vbS1sZXZlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgbWluLXdpZHRoOiA0OHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgY3Vyc29yOiAke3RoaXMuem9vbT4xP3RoaXMuaXNEcmFnZ2luZz8iZ3JhYmJpbmciOiJncmFiIjoiZGVmYXVsdCJ9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrZXJib2FyZCB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6CiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgJHtoLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9IDI1JSwgdHJhbnNwYXJlbnQgMjUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgJHtoLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9IDI1JSwgdHJhbnNwYXJlbnQgMjUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB0cmFuc3BhcmVudCA3NSUsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSA3NSUpLAogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFuc3BhcmVudCA3NSUsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSA3NSUpOwogICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDAgOHB4LCA4cHggLThweCwgLThweCAwcHg7CiAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke3RoaXMucGFuWH1weCwgJHt0aGlzLnBhbll9cHgpIHNjYWxlKCR7dGhpcy56b29tfSk7CiAgICAgICAgICB0cmFuc2l0aW9uOiAke3RoaXMuaXNEcmFnZ2luZz8ibm9uZSI6InRyYW5zZm9ybSAwLjJzIGVhc2UifTsKICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcgewogICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICAgIG9iamVjdC1maXQ6ICR7dGhpcy5maXR9OwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS13cmFwcGVyIGltZy5hY3R1YWwgewogICAgICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICAgIG9iamVjdC1maXQ6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDAuOCkiLCJyZ2JhKDAsMCwwLDAuNikiKX07CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IC5lcnJvci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtaW5mbyB7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0idmlld2VyLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnNob3dUb29sYmFyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuem9vbU91dH0gdGl0bGU9Ilpvb20gb3V0Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnJlc2V0Wm9vbX0+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iem9vbS1sZXZlbCI+JHtNYXRoLnJvdW5kKHRoaXMuem9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuem9vbUlufSB0aXRsZT0iWm9vbSBpbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tSW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuZml0VG9TY3JlZW59IHRpdGxlPSJGaXQgdG8gc2NyZWVuIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOk1heGltaXplIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5hY3R1YWxTaXplfSB0aXRsZT0iQWN0dWFsIHNpemUgKDEwMCUpIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNjYW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuZG93bmxvYWR9IHRpdGxlPSJEb3dubG9hZCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpEb3dubG9hZCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGg+MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlLWluZm8iPiR7dGhpcy5pbWFnZU5hdHVyYWxXaWR0aH0geCAke3RoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJpbWFnZS1hcmVhIgogICAgICAgICAgQHdoZWVsPSR7dGhpcy5oYW5kbGVXaGVlbH0KICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZU1vdXNlRG93bn0KICAgICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLmhhbmRsZU1vdXNlTW92ZX0KICAgICAgICAgIEBtb3VzZXVwPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLmhhbmRsZU1vdXNlVXB9CiAgICAgICAgICBAZGJsY2xpY2s9JHt0aGlzLmhhbmRsZURvdWJsZUNsaWNrfQogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrZXJib2FyZCI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIj4KICAgICAgICAgICAgJHt0aGlzLnNyYz93YAogICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuZml0PT09ImFjdHVhbCI/ImFjdHVhbCI6IiJ9IgogICAgICAgICAgICAgICAgc3JjPSIke3RoaXMuc3JjfSIKICAgICAgICAgICAgICAgIGFsdD0iJHt0aGlzLmFsdH0iCiAgICAgICAgICAgICAgICBAbG9hZD0ke3RoaXMuaGFuZGxlSW1hZ2VMb2FkfQogICAgICAgICAgICAgICAgQGVycm9yPSR7dGhpcy5oYW5kbGVJbWFnZUVycm9yfQogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMubG9hZGluZyYmdGhpcy5zcmM/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0ibHVjaWRlOkltYWdlT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9em9vbUluKCl7dGhpcy56b29tPU1hdGgubWluKDEwLHRoaXMuem9vbSoxLjI1KX16b29tT3V0KCl7dGhpcy56b29tPU1hdGgubWF4KC4xLHRoaXMuem9vbS8xLjI1KSx0aGlzLnpvb208PTEmJih0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9cmVzZXRab29tKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTB9Zml0VG9TY3JlZW4oKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iY29udGFpbiJ9YWN0dWFsU2l6ZSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wLHRoaXMuZml0PSJhY3R1YWwifWRvd25sb2FkKCl7aWYoIXRoaXMuc3JjKXJldHVybjtsZXQgbGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2xlLmhyZWY9dGhpcy5zcmMsbGUuZG93bmxvYWQ9dGhpcy5zcmMuc3BsaXQoIi8iKS5wb3AoKXx8ImltYWdlIixsZS5jbGljaygpfWhhbmRsZUltYWdlTG9hZChsZSl7bGV0IFE9bGUudGFyZ2V0O3RoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSIiLHRoaXMuaW1hZ2VOYXR1cmFsV2lkdGg9US5uYXR1cmFsV2lkdGgsdGhpcy5pbWFnZU5hdHVyYWxIZWlnaHQ9US5uYXR1cmFsSGVpZ2h0fWhhbmRsZUltYWdlRXJyb3IoKXt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgaW1hZ2UifWhhbmRsZVdoZWVsKGxlKXtsZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBRPWxlLmRlbHRhWT4wPy45OjEuMSxpZT1NYXRoLm1pbigxMCxNYXRoLm1heCguMSx0aGlzLnpvb20qUSkpO3RoaXMuem9vbT1pZSx0aGlzLnpvb208PTEmJih0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9aGFuZGxlTW91c2VEb3duKGxlKXt0aGlzLnpvb208PTF8fCh0aGlzLmlzRHJhZ2dpbmc9ITAsdGhpcy5kcmFnU3RhcnRYPWxlLmNsaWVudFgsdGhpcy5kcmFnU3RhcnRZPWxlLmNsaWVudFksdGhpcy5kcmFnU3RhcnRQYW5YPXRoaXMucGFuWCx0aGlzLmRyYWdTdGFydFBhblk9dGhpcy5wYW5ZKX1oYW5kbGVNb3VzZU1vdmUobGUpe3RoaXMuaXNEcmFnZ2luZyYmKHRoaXMucGFuWD10aGlzLmRyYWdTdGFydFBhblgrKGxlLmNsaWVudFgtdGhpcy5kcmFnU3RhcnRYKSx0aGlzLnBhblk9dGhpcy5kcmFnU3RhcnRQYW5ZKyhsZS5jbGllbnRZLXRoaXMuZHJhZ1N0YXJ0WSkpfWhhbmRsZU1vdXNlVXAoKXt0aGlzLmlzRHJhZ2dpbmc9ITF9aGFuZGxlRG91YmxlQ2xpY2soKXt0aGlzLnpvb209PT0xP3RoaXMuem9vbT0yOih0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9dXBkYXRlZChsZSl7c3VwZXIudXBkYXRlZChsZSksbGUuaGFzKCJzcmMiKSYmKHRoaXMubG9hZGluZz0hMCx0aGlzLmVycm9yPSIiLHRoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wLHRoaXMuaW1hZ2VOYXR1cmFsV2lkdGg9MCx0aGlzLmltYWdlTmF0dXJhbEhlaWdodD0wKX1zdGF0aWN7ZmkoYSx0KX19O3JldHVybiB1ZT1hfSkoKX0pO3ZhciBMNWE9ZygoKT0+e2VydCgpfSk7dmFyIEU1YSxQNWE9ZygoKT0+e3BlKCk7RTVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICBkZWVzLWF1ZGlvLXZpZXdlciB7CiAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRoIFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1ZGlvIHBsYXllciB3aXRoIHdhdmVmb3JtIHZpc3VhbGl6YXRpb24gYW5kIGZ1bGwgdHJhbnNwb3J0IGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAxIgogICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRob3V0IFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBhdWRpbyBwbGF5ZXIgd2l0aCBhIHNlZWtiYXIgaW5zdGVhZCBvZiBhIHdhdmVmb3JtLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMi5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgIC5zaG93V2F2ZWZvcm09JHshMX0KICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWluaW1hbCBBdWRpbyBQbGF5ZXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Tm8gdGl0bGUgb3IgYXJ0aXN0IG1ldGFkYXRhIOKAlCBqdXN0IHRoZSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIHVuLHpzLEk1YSx0cnQ9ZygoKT0+e3BlKCk7VWEoKTtQNWEoKTt1bj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0senM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEk1YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtYXVkaW8tdmlld2VyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXTt2YXIgeWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBdWRpb1ZpZXdlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBxPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCgpXSxjPVtMKCldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0sdW4odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNyYyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNyYywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zcmM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbyxsKSx1bih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJ0aXRsZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnRpdGxlLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnRpdGxlPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGQsdSksdW4odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcnRpc3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImFydGlzdCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFydGlzdCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5hcnRpc3Q9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sYix2KSx1bih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dXYXZlZm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ic2hvd1dhdmVmb3JtImluIEEsImhhcyIpLGdldDppKEE9PkEuc2hvd1dhdmVmb3JtLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnNob3dXYXZlZm9ybT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxtLGYpLHVuKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImF1dG9wbGF5ImluIEEsImhhcyIpLGdldDppKEE9PkEuYXV0b3BsYXksImdldCIpLHNldDppKChBLHNlKT0+e0EuYXV0b3BsYXk9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sTSx6KSx1bih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxvb3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+Imxvb3AiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5sb29wLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmxvb3A9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sQyxfKSx1bih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iaXNQbGF5aW5nImluIEEsImhhcyIpLGdldDppKEE9PkEuaXNQbGF5aW5nLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmlzUGxheWluZz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSwkLEUpLHVuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImN1cnJlbnRUaW1lImluIEEsImhhcyIpLGdldDppKEE9PkEuY3VycmVudFRpbWUsImdldCIpLHNldDppKChBLHNlKT0+e0EuY3VycmVudFRpbWU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sayxTKSx1bih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJkdXJhdGlvbiJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmR1cmF0aW9uPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFAsUiksdW4odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InZvbHVtZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnZvbHVtZSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS52b2x1bWU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sVixXKSx1bih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc011dGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJpc011dGVkImluIEEsImhhcyIpLGdldDppKEE9PkEuaXNNdXRlZCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5pc011dGVkPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEIsVSksdW4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ibG9hZGluZyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmxvYWRpbmcsImdldCIpLHNldDppKChBLHNlKT0+e0EubG9hZGluZz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxGLGopLHVuKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJlcnJvciJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmVycm9yLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmVycm9yPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGxlLFEpLHVuKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4id2F2ZWZvcm1EYXRhImluIEEsImhhcyIpLGdldDppKEE9PkEud2F2ZWZvcm1EYXRhLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLndhdmVmb3JtRGF0YT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSx0ZSxlZSksdW4odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1SZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4id2F2ZWZvcm1SZWFkeSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLndhdmVmb3JtUmVhZHksImdldCIpLHNldDppKChBLHNlKT0+e0Eud2F2ZWZvcm1SZWFkeT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxYLFopLHVuKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnF9LG51bGwsdCkseWU9YT1lLnZhbHVlLHEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pfXN0YXRpYyBkZW1vPUU1YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07I2U9enModGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhxKXt0aGlzLiNlPXF9I3Q9KHpzKHRoaXMsbCksenModGhpcyxkLCIiKSk7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpdGxlKHEpe3RoaXMuI3Q9cX0jYT0oenModGhpcyx1KSx6cyh0aGlzLGIsIiIpKTtnZXQgYXJ0aXN0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFydGlzdChxKXt0aGlzLiNhPXF9I3M9KHpzKHRoaXMsdiksenModGhpcyxtLCEwKSk7Z2V0IHNob3dXYXZlZm9ybSgpe3JldHVybiB0aGlzLiNzfXNldCBzaG93V2F2ZWZvcm0ocSl7dGhpcy4jcz1xfSNpPSh6cyh0aGlzLGYpLHpzKHRoaXMsTSwhMSkpO2dldCBhdXRvcGxheSgpe3JldHVybiB0aGlzLiNpfXNldCBhdXRvcGxheShxKXt0aGlzLiNpPXF9I3I9KHpzKHRoaXMseiksenModGhpcyxDLCExKSk7Z2V0IGxvb3AoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbG9vcChxKXt0aGlzLiNyPXF9I289KHpzKHRoaXMsXyksenModGhpcywkLCExKSk7Z2V0IGlzUGxheWluZygpe3JldHVybiB0aGlzLiNvfXNldCBpc1BsYXlpbmcocSl7dGhpcy4jbz1xfSNuPSh6cyh0aGlzLEUpLHpzKHRoaXMsaywwKSk7Z2V0IGN1cnJlbnRUaW1lKCl7cmV0dXJuIHRoaXMuI259c2V0IGN1cnJlbnRUaW1lKHEpe3RoaXMuI249cX0jbD0oenModGhpcyxTKSx6cyh0aGlzLFAsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNsfXNldCBkdXJhdGlvbihxKXt0aGlzLiNsPXF9I2M9KHpzKHRoaXMsUiksenModGhpcyxWLDEpKTtnZXQgdm9sdW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZvbHVtZShxKXt0aGlzLiNjPXF9I2Q9KHpzKHRoaXMsVyksenModGhpcyxCLCExKSk7Z2V0IGlzTXV0ZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNNdXRlZChxKXt0aGlzLiNkPXF9I3U9KHpzKHRoaXMsVSksenModGhpcyxGLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbG9hZGluZyhxKXt0aGlzLiN1PXF9I3A9KHpzKHRoaXMsaiksenModGhpcyxsZSwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNwfXNldCBlcnJvcihxKXt0aGlzLiNwPXF9I2g9KHpzKHRoaXMsUSksenModGhpcyx0ZSxbXSkpO2dldCB3YXZlZm9ybURhdGEoKXtyZXR1cm4gdGhpcy4jaH1zZXQgd2F2ZWZvcm1EYXRhKHEpe3RoaXMuI2g9cX0jZj0oenModGhpcyxlZSksenModGhpcyxYLCExKSk7Z2V0IHdhdmVmb3JtUmVhZHkoKXtyZXR1cm4gdGhpcy4jZn1zZXQgd2F2ZWZvcm1SZWFkeShxKXt0aGlzLiNmPXF9YXVkaW9FbGVtZW50PSh6cyh0aGlzLFopLG51bGwpO2NhbnZhc0VsZW1lbnQ9bnVsbDthbmltRnJhbWVJZD0wO3ZvbHVtZUJlZm9yZU11dGU9MTtyZW5kZXIoKXtsZXQgcT10aGlzLnRpdGxlJiZ0aGlzLmFydGlzdD9gJHt0aGlzLnRpdGxlfSBcdTIwMTQgJHt0aGlzLmFydGlzdH1gOnRoaXMudGl0bGV8fHRoaXMuYXJ0aXN0fHwiIjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnZpZXdlci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgyMTUgMjAlIDEwJSkiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cC0tZW5kIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRpbWUtZGlzcGxheSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBtaW4td2lkdGg6IDkwcHg7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyIHsKICAgICAgICAgIHdpZHRoOiA3MHB4OwogICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotd2Via2l0LXNsaWRlci10aHVtYiB7CiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAud2F2ZWZvcm0tY29udGFpbmVyIHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1jb250YWluZXIgewogICAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1maWxsIHsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgbGluZWFyOwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IC5lcnJvci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0idmlld2VyLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlUGxheX0+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzUGxheWluZz8iUGF1c2UiOiJQbGF5In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWUtZGlzcGxheSI+CiAgICAgICAgICAgICAgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5jdXJyZW50VGltZSl9IC8gJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7cT93YAogICAgICAgICAgICA8c3BhbiBjbGFzcz0idG9vbGJhci10aXRsZSI+JHtxfTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cC0tZW5kIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMubG9vcD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMb29wfQogICAgICAgICAgICAgIHRpdGxlPSJMb29wIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UmVwZWF0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2b2x1bWUtZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZU11dGV9IHRpdGxlPSIke3RoaXMuaXNNdXRlZD8iVW5tdXRlIjoiTXV0ZSJ9Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc011dGVkfHx0aGlzLnZvbHVtZT09PTA/IlZvbHVtZVgiOnRoaXMudm9sdW1lPC41PyJWb2x1bWUxIjoiVm9sdW1lMiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIGNsYXNzPSJ2b2x1bWUtc2xpZGVyIgogICAgICAgICAgICAgICAgdHlwZT0icmFuZ2UiCiAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICBtYXg9IjEiCiAgICAgICAgICAgICAgICBzdGVwPSIwLjAxIgogICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMuaXNNdXRlZD8wOnRoaXMudm9sdW1lKX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlVm9sdW1lQ2hhbmdlfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0ibHVjaWRlOk11c2ljT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMubG9hZGluZz93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLnNob3dXYXZlZm9ybT93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YXZlZm9ybS1jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlV2F2ZWZvcm1DbGlja30+CiAgICAgICAgICAgICAgPGNhbnZhcz48L2NhbnZhcz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlZWtiYXJDbGlja30+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1maWxsIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5kdXJhdGlvbj90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb24qMTAwOjB9JSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNyYyYmdGhpcy5pbml0QXVkaW8oKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhbnVwKCl9YXN5bmMgdXBkYXRlZChxKXtzdXBlci51cGRhdGVkKHEpLHEuaGFzKCJzcmMiKSYmdGhpcy5zcmMmJih0aGlzLmNsZWFudXAoKSx0aGlzLmluaXRBdWRpbygpKSwocS5oYXMoIndhdmVmb3JtRGF0YSIpfHxxLmhhcygiY3VycmVudFRpbWUiKSkmJnRoaXMuZHJhd1dhdmVmb3JtKCl9cGxheSgpe3RoaXMuYXVkaW9FbGVtZW50Py5wbGF5KCl9cGF1c2UoKXt0aGlzLmF1ZGlvRWxlbWVudD8ucGF1c2UoKX10b2dnbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc/dGhpcy5wYXVzZSgpOnRoaXMucGxheSgpfXNlZWsocSl7dGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZT1xKX1zZXRWb2x1bWUocSl7dGhpcy52b2x1bWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHEpKSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLnZvbHVtZSksdGhpcy52b2x1bWU+MCYmKHRoaXMuaXNNdXRlZD0hMSl9dG9nZ2xlTXV0ZSgpe3RoaXMuaXNNdXRlZD8odGhpcy5pc011dGVkPSExLHRoaXMudm9sdW1lPXRoaXMudm9sdW1lQmVmb3JlTXV0ZXx8LjUsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpKToodGhpcy52b2x1bWVCZWZvcmVNdXRlPXRoaXMudm9sdW1lLHRoaXMuaXNNdXRlZD0hMCx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT0wKSl9dG9nZ2xlTG9vcCgpe3RoaXMubG9vcD0hdGhpcy5sb29wLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQubG9vcD10aGlzLmxvb3ApfWluaXRBdWRpbygpe3RoaXMuYXVkaW9FbGVtZW50PW5ldyBBdWRpbyx0aGlzLmF1ZGlvRWxlbWVudC5jcm9zc09yaWdpbj0iYW5vbnltb3VzIix0aGlzLmF1ZGlvRWxlbWVudC5zcmM9dGhpcy5zcmMsdGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMuaXNNdXRlZD8wOnRoaXMudm9sdW1lLHRoaXMuYXVkaW9FbGVtZW50Lmxvb3A9dGhpcy5sb29wLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249dGhpcy5hdWRpb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMCx0aGlzLnN0YXJ0VGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGF1c2UiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5zdG9wVGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZW5kZWQiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5zdG9wVGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT57dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgYXVkaW8iLHRoaXMubG9hZGluZz0hMX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRpbWV1cGRhdGUiLCgpPT57dGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZX0pLHRoaXMuYXV0b3BsYXkmJnRoaXMuYXVkaW9FbGVtZW50LnBsYXkoKS5jYXRjaCgoKT0+e30pLHRoaXMuc2hvd1dhdmVmb3JtJiZ0aGlzLmxvYWRXYXZlZm9ybSgpfWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXt0aGlzLmxvYWRpbmc9ITA7bGV0IEE9YXdhaXQoYXdhaXQgZmV0Y2godGhpcy5zcmMpKS5hcnJheUJ1ZmZlcigpLHNlPW5ldyBBdWRpb0NvbnRleHQsYWU9KGF3YWl0IHNlLmRlY29kZUF1ZGlvRGF0YShBKSkuZ2V0Q2hhbm5lbERhdGEoMCksVGU9MjAwLFJlPU1hdGguZmxvb3IoYWUubGVuZ3RoL1RlKSxCZT1bXTtmb3IobGV0IERlPTA7RGU8VGU7RGUrKyl7bGV0IF9lPTA7Zm9yKGxldCBDZT0wO0NlPFJlO0NlKyspX2UrPU1hdGguYWJzKGFlW0RlKlJlK0NlXSk7QmUucHVzaChfZS9SZSl9bGV0IEdlPU1hdGgubWF4KC4uLkJlKTt0aGlzLndhdmVmb3JtRGF0YT1CZS5tYXAoRGU9PkdlPjA/RGUvR2U6MCksdGhpcy53YXZlZm9ybVJlYWR5PSEwLHRoaXMubG9hZGluZz0hMSxhd2FpdCBzZS5jbG9zZSgpfWNhdGNoe3RoaXMud2F2ZWZvcm1SZWFkeT0hMSx0aGlzLmxvYWRpbmc9ITF9fWRyYXdXYXZlZm9ybSgpe2lmKCF0aGlzLnNob3dXYXZlZm9ybXx8IXRoaXMud2F2ZWZvcm1SZWFkeSlyZXR1cm47bGV0IHE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTtpZighcSlyZXR1cm47dGhpcy5jYW52YXNFbGVtZW50PXE7bGV0IEE9cS5wYXJlbnRFbGVtZW50LHNlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLG9lPUEuY2xpZW50V2lkdGgsYWU9QS5jbGllbnRIZWlnaHQ7cS53aWR0aD1vZSpzZSxxLmhlaWdodD1hZSpzZTtsZXQgVGU9cS5nZXRDb250ZXh0KCIyZCIpO2lmKCFUZSlyZXR1cm47VGUuc2NhbGUoc2Usc2UpLFRlLmNsZWFyUmVjdCgwLDAsb2UsYWUpO2xldCBSZT10aGlzLndhdmVmb3JtRGF0YS5sZW5ndGg7aWYoUmU9PT0wKXJldHVybjtsZXQgQmU9b2UvUmUsR2U9dGhpcy5kdXJhdGlvbj4wP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbjowLERlPU1hdGguZmxvb3IoR2UqUmUpLF9lPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aGVtZS1kYXJrIil8fHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyxDZT1fZT8iaHNsKDIxMyA5MyUgNjglKSI6ImhzbCgyMTcgOTElIDYwJSkiLHZlPV9lPyJoc2woMjE3IDI1JSAyMiUpIjoiaHNsKDIxNCAzMSUgODYlKSI7Zm9yKGxldCBiZT0wO2JlPFJlO2JlKyspe2xldCBFZT10aGlzLndhdmVmb3JtRGF0YVtiZV0samU9TWF0aC5tYXgoMixFZSooYWUtNCkpLFdlPWJlKkJlLHN0PShhZS1qZSkvMjtUZS5maWxsU3R5bGU9YmU8RGU/Q2U6dmUsVGUuZmlsbFJlY3QoV2UrLjUsc3QsQmUtMSxqZSl9fWhhbmRsZVdhdmVmb3JtQ2xpY2socSl7bGV0IEE9cS5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPShxLmNsaWVudFgtQS5sZWZ0KS9BLndpZHRoO3RoaXMuc2VlayhzZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVTZWVrYmFyQ2xpY2socSl7bGV0IEE9cS5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPShxLmNsaWVudFgtQS5sZWZ0KS9BLndpZHRoO3RoaXMuc2VlayhzZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVWb2x1bWVDaGFuZ2UocSl7bGV0IEE9cGFyc2VGbG9hdChxLnRhcmdldC52YWx1ZSk7dGhpcy5zZXRWb2x1bWUoQSl9c3RhcnRUaW1lVXBkYXRlKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpO2xldCBxPWkoKCk9Pnt0aGlzLmF1ZGlvRWxlbWVudCYmdGhpcy5pc1BsYXlpbmcmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lLHRoaXMuYW5pbUZyYW1lSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHEpKX0sInVwZGF0ZSIpO3RoaXMuYW5pbUZyYW1lSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHEpfXN0b3BUaW1lVXBkYXRlKCl7dGhpcy5hbmltRnJhbWVJZCYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbUZyYW1lSWQpLHRoaXMuYW5pbUZyYW1lSWQ9MCl9Zm9ybWF0VGltZShxKXtpZighaXNGaW5pdGUocSl8fHE8MClyZXR1cm4iMDowMCI7bGV0IEE9TWF0aC5mbG9vcihxLzYwKSxzZT1NYXRoLmZsb29yKHElNjApO3JldHVybmAke0F9OiR7c2UudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1jbGVhbnVwKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQucGF1c2UoKSx0aGlzLmF1ZGlvRWxlbWVudC5zcmM9IiIsdGhpcy5hdWRpb0VsZW1lbnQ9bnVsbCksdGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jdXJyZW50VGltZT0wLHRoaXMuZHVyYXRpb249MCx0aGlzLndhdmVmb3JtRGF0YT1bXSx0aGlzLndhdmVmb3JtUmVhZHk9ITF9c3RhdGlje3pzKGEsdCl9fTtyZXR1cm4geWU9YX0pKCl9KTt2YXIgQTVhPWcoKCk9Pnt0cnQoKX0pO3ZhciBONWEsUjVhPWcoKCk9PntwZSgpO041YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZpZGVvIHdpdGggQ3VzdG9tIENvbnRyb2xzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkEgdmlkZW8gcGxheWVyIHdpdGggb3ZlcmxheSBjb250cm9scywgc2Vla2luZywgYW5kIHZvbHVtZSBhZGp1c3RtZW50LjwvZGl2PgogICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0JpZ0J1Y2tCdW5ueS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9pbWFnZXMvQmlnQnVja0J1bm55LmpwZyIKICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXV0b3BsYXkgTXV0ZWQ8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gdGhhdCBhdXRvcGxheXMgbXV0ZWQsIGNvbW1vbmx5IHVzZWQgZm9yIHByZXZpZXdzLjwvZGl2PgogICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0VsZXBoYW50c0RyZWFtLm1wNCIKICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL2ltYWdlcy9FbGVwaGFudHNEcmVhbS5qcGciCiAgICAgICAgLmF1dG9wbGF5PSR7ITB9CiAgICAgICAgLm11dGVkPSR7ITB9CiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5hdGl2ZSBDb250cm9sczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyB1c2luZyBicm93c2VyLW5hdGl2ZSBjb250cm9scyBpbnN0ZWFkIG9mIGN1c3RvbSBvdmVybGF5LjwvZGl2PgogICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0ZvckJpZ2dlckJsYXplcy5tcDQiCiAgICAgICAgLnNob3dDb250cm9scz0keyExfQogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgRm4scXMsTzVhLGFydD1nKCgpPT57cGUoKTtVYSgpO1I1YSgpO0ZuPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxxcz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sTzVhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy12aWRlby12aWV3ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W107dmFyIGtlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVmlkZW9WaWV3ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgWD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sRm4odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InNyYyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnNyYywiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5zcmM9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbyxsKSxGbih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4icG9zdGVyImluIFosImhhcyIpLGdldDppKFo9PloucG9zdGVyLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnBvc3Rlcj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxkLHUpLEZuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzaG93Q29udHJvbHMiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zaG93Q29udHJvbHMsImdldCIpLHNldDppKChaLHllKT0+e1ouc2hvd0NvbnRyb2xzPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGIsdiksRm4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iYXV0b3BsYXkiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5hdXRvcGxheSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5hdXRvcGxheT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxtLGYpLEZuKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ibG9vcCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmxvb3AsImdldCIpLHNldDppKChaLHllKT0+e1oubG9vcD15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxNLHopLEZuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+Im11dGVkImluIFosImhhcyIpLGdldDppKFo9PloubXV0ZWQsImdldCIpLHNldDppKChaLHllKT0+e1oubXV0ZWQ9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sQyxfKSxGbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iaXNQbGF5aW5nImluIFosImhhcyIpLGdldDppKFo9PlouaXNQbGF5aW5nLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmlzUGxheWluZz15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSwkLEUpLEZuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImN1cnJlbnRUaW1lImluIFosImhhcyIpLGdldDppKFo9PlouY3VycmVudFRpbWUsImdldCIpLHNldDppKChaLHllKT0+e1ouY3VycmVudFRpbWU9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sayxTKSxGbih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJkdXJhdGlvbiJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmR1cmF0aW9uPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LFAsUiksRm4odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InZvbHVtZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnZvbHVtZSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi52b2x1bWU9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVixXKSxGbih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJsb2FkaW5nImluIFosImhhcyIpLGdldDppKFo9PloubG9hZGluZywiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5sb2FkaW5nPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEIsVSksRm4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImVycm9yImluIFosImhhcyIpLGdldDppKFo9PlouZXJyb3IsImdldCIpLHNldDppKChaLHllKT0+e1ouZXJyb3I9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sRixqKSxGbih0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0Z1bGxzY3JlZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImlzRnVsbHNjcmVlbiJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmlzRnVsbHNjcmVlbiwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5pc0Z1bGxzY3JlZW49eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbGUsUSksRm4odGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udHJvbHNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjb250cm9sc1Zpc2libGUiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5jb250cm9sc1Zpc2libGUsImdldCIpLHNldDppKChaLHllKT0+e1ouY29udHJvbHNWaXNpYmxlPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LHRlLGVlKSxGbihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpYfSxudWxsLHQpLGtlPWE9ZS52YWx1ZSxYJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlh9KX1zdGF0aWMgZGVtbz1ONWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPXFzKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoWCl7dGhpcy4jZT1YfSN0PShxcyh0aGlzLGwpLHFzKHRoaXMsZCwiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKFgpe3RoaXMuI3Q9WH0jYT0ocXModGhpcyx1KSxxcyh0aGlzLGIsITApKTtnZXQgc2hvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dDb250cm9scyhYKXt0aGlzLiNhPVh9I3M9KHFzKHRoaXMsdikscXModGhpcyxtLCExKSk7Z2V0IGF1dG9wbGF5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGF1dG9wbGF5KFgpe3RoaXMuI3M9WH0jaT0ocXModGhpcyxmKSxxcyh0aGlzLE0sITEpKTtnZXQgbG9vcCgpe3JldHVybiB0aGlzLiNpfXNldCBsb29wKFgpe3RoaXMuI2k9WH0jcj0ocXModGhpcyx6KSxxcyh0aGlzLEMsITEpKTtnZXQgbXV0ZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbXV0ZWQoWCl7dGhpcy4jcj1YfSNvPShxcyh0aGlzLF8pLHFzKHRoaXMsJCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQbGF5aW5nKFgpe3RoaXMuI289WH0jbj0ocXModGhpcyxFKSxxcyh0aGlzLGssMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNufXNldCBjdXJyZW50VGltZShYKXt0aGlzLiNuPVh9I2w9KHFzKHRoaXMsUykscXModGhpcyxQLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oWCl7dGhpcy4jbD1YfSNjPShxcyh0aGlzLFIpLHFzKHRoaXMsViwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoWCl7dGhpcy4jYz1YfSNkPShxcyh0aGlzLFcpLHFzKHRoaXMsQiwhMCkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGxvYWRpbmcoWCl7dGhpcy4jZD1YfSN1PShxcyh0aGlzLFUpLHFzKHRoaXMsRiwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiN1fXNldCBlcnJvcihYKXt0aGlzLiN1PVh9I3A9KHFzKHRoaXMsaikscXModGhpcyxsZSwhMSkpO2dldCBpc0Z1bGxzY3JlZW4oKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNGdWxsc2NyZWVuKFgpe3RoaXMuI3A9WH0jaD0ocXModGhpcyxRKSxxcyh0aGlzLHRlLCEwKSk7Z2V0IGNvbnRyb2xzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNofXNldCBjb250cm9sc1Zpc2libGUoWCl7dGhpcy4jaD1YfWhpZGVDb250cm9sc1RpbWVyPShxcyh0aGlzLGVlKSxudWxsKTt2aWRlb0VsZW1lbnQ9bnVsbDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnZpZGVvLWNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5OwogICAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICB2aWRlbyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC5vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICB3aWR0aDogNjRweDsKICAgICAgICAgIGhlaWdodDogNjRweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmlzUGxheWluZz8wOjF9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6ICR7dGhpcy5pc1BsYXlpbmc/Im5vbmUiOiJhdXRvIn07CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXkgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheTpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxLjEpOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRyb2xzLWJhciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC43KSk7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDEycHggMTJweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBvcGFjaXR5OiAke3RoaXMuY29udHJvbHNWaXNpYmxlfHwhdGhpcy5pc1BsYXlpbmc/MTowfTsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93IHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1yb3c6aG92ZXIgewogICAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1wcm9ncmVzcyB7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1yb3cgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jdHJsLWJ1dHRvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5jdHJsLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOwogICAgICAgIH0KCiAgICAgICAgLnRpbWUtZGlzcGxheSB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VyIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlciB7CiAgICAgICAgICB3aWR0aDogNjBweDsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWIgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InZpZGVvLWNvbnRhaW5lciIKICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLmhhbmRsZU1vdXNlTGVhdmV9CiAgICAgID4KICAgICAgICA8dmlkZW8KICAgICAgICAgIC5zcmM9JHt0aGlzLnNyY30KICAgICAgICAgIC5wb3N0ZXI9JHt0aGlzLnBvc3Rlcn0KICAgICAgICAgIC5tdXRlZD0ke3RoaXMubXV0ZWR9CiAgICAgICAgICAubG9vcD0ke3RoaXMubG9vcH0KICAgICAgICAgID9hdXRvcGxheT0ke3RoaXMuYXV0b3BsYXl9CiAgICAgICAgICA/Y29udHJvbHM9JHshdGhpcy5zaG93Q29udHJvbHN9CiAgICAgICAgICBwbGF5c2lubGluZQogICAgICAgICAgQGxvYWRlZG1ldGFkYXRhPSR7dGhpcy5oYW5kbGVMb2FkZWRNZXRhZGF0YX0KICAgICAgICAgIEBwbGF5PSR7dGhpcy5oYW5kbGVQbGF5fQogICAgICAgICAgQHBhdXNlPSR7dGhpcy5oYW5kbGVQYXVzZX0KICAgICAgICAgIEBlbmRlZD0ke3RoaXMuaGFuZGxlRW5kZWR9CiAgICAgICAgICBAdGltZXVwZGF0ZT0ke3RoaXMuaGFuZGxlVGltZVVwZGF0ZX0KICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlRXJyb3J9CiAgICAgICAgICBAd2FpdGluZz0keygpPT57dGhpcy5sb2FkaW5nPSEwfX0KICAgICAgICAgIEBjYW5wbGF5PSR7KCk9Pnt0aGlzLmxvYWRpbmc9ITF9fQogICAgICAgID48L3ZpZGVvPgoKICAgICAgICAke3RoaXMuc2hvd0NvbnRyb2xzP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5IiBAY2xpY2s9JHt0aGlzLmhhbmRsZU92ZXJsYXlDbGlja30+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlbnRlci1wbGF5Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scy1iYXIiIEBjbGljaz0ke1g9Plguc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcm93IiBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlZWt9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1wcm9ncmVzcyIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scy1yb3ciPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlUGxheX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3BhY2VyIj48L3NwYW4+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLm11dGVkfHx0aGlzLnZvbHVtZT09PTA/IlZvbHVtZVgiOnRoaXMudm9sdW1lPC41PyJWb2x1bWUxIjoiVm9sdW1lMiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2b2x1bWUtc2xpZGVyIgogICAgICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgICAgICBtYXg9IjEiCiAgICAgICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5tdXRlZD8wOnRoaXMudm9sdW1lKX0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZUZ1bGxzY3JlZW59IHRpdGxlPSJGdWxsc2NyZWVuIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzRnVsbHNjcmVlbj8iTWluaW1pemUiOiJNYXhpbWl6ZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlZpZGVvT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy52aWRlb0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpfHxudWxsLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSksdGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpfXBsYXkoKXt0aGlzLnZpZGVvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKFgpe3RoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQuY3VycmVudFRpbWU9WCl9c2V0Vm9sdW1lKFgpe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxYKSksdGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpfXRvZ2dsZUZ1bGxzY3JlZW4oKXtsZXQgWD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWRlby1jb250YWluZXIiKTtYJiYodGhpcy5pc0Z1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/LigpOlgucmVxdWVzdEZ1bGxzY3JlZW4/LigpKX1oYW5kbGVMb2FkZWRNZXRhZGF0YSgpe3RoaXMudmlkZW9FbGVtZW50JiYodGhpcy5kdXJhdGlvbj10aGlzLnZpZGVvRWxlbWVudC5kdXJhdGlvbix0aGlzLmxvYWRpbmc9ITEpfWhhbmRsZVBsYXkoKXt0aGlzLmlzUGxheWluZz0hMCx0aGlzLnNjaGVkdWxlSGlkZUNvbnRyb2xzKCl9aGFuZGxlUGF1c2UoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVFbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuY29udHJvbHNWaXNpYmxlPSEwfWhhbmRsZVRpbWVVcGRhdGUoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuY3VycmVudFRpbWU9dGhpcy52aWRlb0VsZW1lbnQuY3VycmVudFRpbWUpfWhhbmRsZUVycm9yKCl7dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgdmlkZW8iLHRoaXMubG9hZGluZz0hMX1oYW5kbGVPdmVybGF5Q2xpY2soKXt0aGlzLnRvZ2dsZVBsYXkoKX1oYW5kbGVTZWVrKFgpe2xldCBaPVguY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx5ZT0oWC5jbGllbnRYLVoubGVmdCkvWi53aWR0aDt0aGlzLnNlZWsoeWUqdGhpcy5kdXJhdGlvbil9aGFuZGxlVm9sdW1lQ2hhbmdlKFgpe2xldCBaPXBhcnNlRmxvYXQoWC50YXJnZXQudmFsdWUpO3RoaXMuc2V0Vm9sdW1lKFopLHRoaXMubXV0ZWQ9Wj09PTB9dG9nZ2xlTXV0ZSgpe3RoaXMubXV0ZWQ9IXRoaXMubXV0ZWQsdGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC5tdXRlZD10aGlzLm11dGVkKX1oYW5kbGVNb3VzZU1vdmUoKXt0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMCx0aGlzLnNjaGVkdWxlSGlkZUNvbnRyb2xzKCl9aGFuZGxlTW91c2VMZWF2ZSgpe3RoaXMuaXNQbGF5aW5nJiYodGhpcy5jb250cm9sc1Zpc2libGU9ITEpfXNjaGVkdWxlSGlkZUNvbnRyb2xzKCl7dGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpLHRoaXMuaXNQbGF5aW5nJiYodGhpcy5oaWRlQ29udHJvbHNUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb250cm9sc1Zpc2libGU9ITF9LDNlMykpfWhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2U9aSgoKT0+e3RoaXMuaXNGdWxsc2NyZWVuPSEhZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnR9LCJoYW5kbGVGdWxsc2NyZWVuQ2hhbmdlIik7Zm9ybWF0VGltZShYKXtpZighaXNGaW5pdGUoWCl8fFg8MClyZXR1cm4iMDowMCI7bGV0IFo9TWF0aC5mbG9vcihYLzYwKSx5ZT1NYXRoLmZsb29yKFglNjApO3JldHVybmAke1p9OiR7eWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7cXMoYSx0KX19O3JldHVybiBrZT1hfSkoKX0pO3ZhciBGNWE9ZygoKT0+e2FydCgpfSk7dmFyIEdkLHIxZT1nKCgpPT57cGUoKTtHZD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQZGZNYW5hZ2VyIil9c3RhdGljIHBkZmpzTGliO3N0YXRpYyBpbml0aWFsaXplZD0hMTtzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMuaW5pdGlhbGl6ZWR8fCh0aGlzLnBkZmpzTGliPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpLHRoaXMucGRmanNMaWIuR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5L2J1aWxkL3BkZi53b3JrZXIubWpzIix0aGlzLmluaXRpYWxpemVkPSEwKX1zdGF0aWMgYXN5bmMgbG9hZERvY3VtZW50KGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemUoKSxhd2FpdCB0aGlzLnBkZmpzTGliLmdldERvY3VtZW50KGUpLnByb21pc2V9c3RhdGljIHJlbGVhc2VEb2N1bWVudChlKXt9fX0pO3ZhciBCNWEsSDVhPWcoKCk9PntwZSgpO3B0KCk7QjVhPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgIGNvbnRhaW46IGxheW91dCBzdHlsZTsKICAgIH0KCiAgICBkZWVzLXRpbGUgewogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXI6OmJlZm9yZSwKICAgIC52aWV3ZXItY29udGFpbmVyOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBoZWlnaHQ6IDhweDsKICAgICAgei1pbmRleDogNTsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXI6OmJlZm9yZSB7CiAgICAgIHRvcDogMDsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIHRvIGJvdHRvbSwKICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDAlIC8gMC40KSIpfSwKICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgdHJhbnNwYXJlbnQKICAgICAgKTsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YWZ0ZXIgewogICAgICBib3R0b206IDA7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICB0byB0b3AsCiAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAwJSAvIDAuMTIpIil9LAogICAgICAgIHRyYW5zcGFyZW50CiAgICAgICk7CiAgICB9CgogICAgLnRvb2xiYXIgewogICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA0cHg7CiAgICB9CgogICAgLnRvb2xiYXItZ3JvdXAtLWVuZCB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b246ZGlzYWJsZWQgewogICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIH0KCiAgICAucGFnZS1pbmZvIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnBhZ2UtaW5wdXQgewogICAgICB3aWR0aDogNDhweDsKICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyIDQ3JSAxMSUpIiwiaHNsKDIxMCAyMCUgOTYlKSIpfTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICBvdXRsaW5lOiBub25lOwogICAgfQoKICAgIC5wYWdlLWlucHV0OmZvY3VzIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICB9CgogICAgLnBhZ2Utc2VwYXJhdG9yIHsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA2MCUpIiwiaHNsKDIxNSAxNiUgNTAlKSIpfTsKICAgIH0KCiAgICAuem9vbS1sZXZlbCB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbWluLXdpZHRoOiA0OHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5zaWRlYmFyIHsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIG9yZGVyOiAwOwogICAgfQoKICAgIC5zaWRlYmFyLXJpZ2h0IC5zaWRlYmFyIHsKICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgb3JkZXI6IDE7CiAgICB9CgogICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICB9CgogICAgLnNpZGViYXItY2xvc2U6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQoKICAgIC5zaWRlYmFyLWNvbnRlbnQgewogICAgICBmbGV4OiAxOwogICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgfQoKICAgIC50aHVtYm5haWwgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDIxNSAyMCUgMTglKSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAvKiBEZWZhdWx0IEE0IGFzcGVjdCByYXRpbyAoMjk3bW0gLyAyMTBtbSDiiYggMS40MTQpICovCiAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTc2cHggKiAxLjQxNCk7CiAgICB9CgogICAgLnRodW1ibmFpbDpsYXN0LWNoaWxkIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIH0KCiAgICAudGh1bWJuYWlsOmhvdmVyIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDM1JSkiKX07CiAgICB9CgogICAgLnRodW1ibmFpbC5hY3RpdmUgewogICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLnRodW1ibmFpbC1udW1iZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogNHB4OwogICAgICByaWdodDogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjcpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC52aWV3ZXItbWFpbiB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBnYXA6IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQoKICAgIC5sb2FkaW5nLXRleHQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnBhZ2VzLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMjBweDsKICAgIH0KCiAgICAucGFnZS13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIC5jYW52YXMtY29udGFpbmVyIHsKICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAucGFnZS1jYW52YXMgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogICAgfQoKICAgIC8qIFRleHQgbGF5ZXIgZm9yIHNlbGVjdGlvbiAqLwogICAgLnRleHQtbGF5ZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAwOwogICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7CiAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7CiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDsKICAgICAgei1pbmRleDogMTsKICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgc3BhbiwKICAgIC50ZXh0LWxheWVyIGJyIHsKICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7CiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0OwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogICAgfQoKICAgIC50ZXh0LWxheWVyIDo6c2VsZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDAsIDIwMCwgMC4zKTsKICAgIH0KCiAgICAudGV4dC1sYXllciBicjo6c2VsZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgLmVuZE9mQ29udGVudCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAxMDAlIDAgMDsKICAgICAgei1pbmRleDogMDsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAudGV4dC1sYXllci5zZWxlY3RpbmcgLmVuZE9mQ29udGVudCB7CiAgICAgIHRvcDogMDsKICAgIH0KCiAgICAucGRmLXZpZXdlci53aXRoLXNpZGViYXIgLnZpZXdlci1tYWluIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICB9CgogICAgLnBkZi1mb290ZXIgewogICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1sZWZ0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWxlZnQgLnBkZi1mb290ZXItaXRlbSArIC5wZGYtZm9vdGVyLWl0ZW0gewogICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICB9CgogICAgLnBkZi1mb290ZXItY2VudGVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBsZWZ0OiA1MCU7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1yaWdodCB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWl0ZW0gewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWZpbGVuYW1lIHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogIGBdfSk7dmFyIHE1YSxqNWE9ZygoKT0+e3BlKCk7cTVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgIH0KCiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgIH0KCiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICB9CgogICAgZGVlcy1wZGYtdmlld2VyIHsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC52aWV3ZXItdGFsbCB7CiAgICAgIGhlaWdodDogODAwcHg7CiAgICB9CgogICAgLnZpZXdlci1jb21wYWN0IHsKICAgICAgaGVpZ2h0OiA1MDBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RnVsbCBGZWF0dXJlZCBQREYgVmlld2VyIHdpdGggVG9vbGJhcjwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLXRhbGwiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9InRydWUiCiAgICAgICAgc2hvd1NpZGViYXI9ImZhbHNlIgogICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlBERiBWaWV3ZXIgd2l0aCBTaWRlYmFyIE5hdmlnYXRpb248L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci10YWxsIgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJ0cnVlIgogICAgICAgIHNob3dTaWRlYmFyPSJ0cnVlIgogICAgICAgIGluaXRpYWxab29tPSJwYWdlLXdpZHRoIgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+Q29tcGFjdCBWaWV3ZXIgd2l0aG91dCBDb250cm9sczwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLWNvbXBhY3QiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9ImZhbHNlIgogICAgICAgIHNob3dTaWRlYmFyPSJmYWxzZSIKICAgICAgICBpbml0aWFsWm9vbT0iYXV0byIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBCbixqcyxWNWEsc3J0PWcoKCk9PntwZSgpO3IxZSgpO0g1YSgpO2o1YSgpO1VhKCk7bnIoKTtCbj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sanM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFY1YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtcGRmLXZpZXdlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXTt2YXIga2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNQZGZWaWV3ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgWD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6U3RyaW5nfSldLE89W0woe3R5cGU6TnVtYmVyfSldLEg9W0woe3R5cGU6TnVtYmVyfSldLEk9W0woe3R5cGU6TnVtYmVyfSldLEs9W0woe3R5cGU6Qm9vbGVhbn0pXSxtZT1bTCh7dHlwZTpTdHJpbmd9KV0saGU9W0woe3R5cGU6QXJyYXl9KV0sdWU9W0woe3R5cGU6QXJyYXl9KV0saWU9W0woe3R5cGU6TnVtYmVyfSldLEJuKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJwZGZVcmwiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5wZGZVcmwsImdldCIpLHNldDppKChaLHllKT0+e1oucGRmVXJsPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LG8sbCksQm4odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsUGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iaW5pdGlhbFBhZ2UiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5pbml0aWFsUGFnZSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5pbml0aWFsUGFnZT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxkLHUpLEJuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImluaXRpYWxab29tImluIFosImhhcyIpLGdldDppKFo9PlouaW5pdGlhbFpvb20sImdldCIpLHNldDppKChaLHllKT0+e1ouaW5pdGlhbFpvb209eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sYix2KSxCbih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzaG93VG9vbGJhciJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnNob3dUb29sYmFyPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LG0sZiksQm4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2lkZWJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ic2hvd1NpZGViYXIiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zaG93U2lkZWJhciwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5zaG93U2lkZWJhcj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxNLHopLEJuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2lkZWJhclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzaWRlYmFyUG9zaXRpb24iaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zaWRlYmFyUG9zaXRpb24sImdldCIpLHNldDppKChaLHllKT0+e1ouc2lkZWJhclBvc2l0aW9uPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEMsXyksQm4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iY3VycmVudFBhZ2UiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5jdXJyZW50UGFnZSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5jdXJyZW50UGFnZT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSwkLEUpLEJuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToidG90YWxQYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4idG90YWxQYWdlcyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnRvdGFsUGFnZXMsImdldCIpLHNldDppKChaLHllKT0+e1oudG90YWxQYWdlcz15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxrLFMpLEJuKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImN1cnJlbnRab29tImluIFosImhhcyIpLGdldDppKFo9PlouY3VycmVudFpvb20sImdldCIpLHNldDppKChaLHllKT0+e1ouY3VycmVudFpvb209eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sUCxSKSxCbih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImxvYWRpbmciaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmxvYWRpbmc9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVixXKSxCbih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb2N1bWVudElkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJkb2N1bWVudElkImluIFosImhhcyIpLGdldDppKFo9PlouZG9jdW1lbnRJZCwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5kb2N1bWVudElkPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEIsVSksQm4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGh1bWJuYWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4idGh1bWJuYWlsRGF0YSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnRodW1ibmFpbERhdGEsImdldCIpLHNldDppKChaLHllKT0+e1oudGh1bWJuYWlsRGF0YT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxGLGopLEJuKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2VEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJwYWdlRGF0YSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnBhZ2VEYXRhLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnBhZ2VEYXRhPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGxlLFEpLEJuKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZkZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJwZGZGaWxlU2l6ZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnBkZkZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnBkZkZpbGVTaXplPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LHRlLGVlKSxCbihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpYfSxudWxsLHQpLGtlPWE9ZS52YWx1ZSxYJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlh9KX1zdGF0aWMgZGVtbz1xNWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdO3N0YXRpYyBzdHlsZXM9QjVhOyNlPWpzKHRoaXMsbywiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoWCl7dGhpcy4jZT1YfSN0PShqcyh0aGlzLGwpLGpzKHRoaXMsZCwxKSk7Z2V0IGluaXRpYWxQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxQYWdlKFgpe3RoaXMuI3Q9WH0jYT0oanModGhpcyx1KSxqcyh0aGlzLGIsImF1dG8iKSk7Z2V0IGluaXRpYWxab29tKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGluaXRpYWxab29tKFgpe3RoaXMuI2E9WH0jcz0oanModGhpcyx2KSxqcyh0aGlzLG0sITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1Rvb2xiYXIoWCl7dGhpcy4jcz1YfSNpPShqcyh0aGlzLGYpLGpzKHRoaXMsTSwhMSkpO2dldCBzaG93U2lkZWJhcigpe3JldHVybiB0aGlzLiNpfXNldCBzaG93U2lkZWJhcihYKXt0aGlzLiNpPVh9I3I9KGpzKHRoaXMseiksanModGhpcyxDLCJsZWZ0IikpO2dldCBzaWRlYmFyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2lkZWJhclBvc2l0aW9uKFgpe3RoaXMuI3I9WH0jbz0oanModGhpcyxfKSxqcyh0aGlzLCQsMSkpO2dldCBjdXJyZW50UGFnZSgpe3JldHVybiB0aGlzLiNvfXNldCBjdXJyZW50UGFnZShYKXt0aGlzLiNvPVh9I249KGpzKHRoaXMsRSksanModGhpcyxrLDEpKTtnZXQgdG90YWxQYWdlcygpe3JldHVybiB0aGlzLiNufXNldCB0b3RhbFBhZ2VzKFgpe3RoaXMuI249WH0jbD0oanModGhpcyxTKSxqcyh0aGlzLFAsMSkpO2dldCBjdXJyZW50Wm9vbSgpe3JldHVybiB0aGlzLiNsfXNldCBjdXJyZW50Wm9vbShYKXt0aGlzLiNsPVh9I2M9KGpzKHRoaXMsUiksanModGhpcyxWLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jY31zZXQgbG9hZGluZyhYKXt0aGlzLiNjPVh9I2Q9KGpzKHRoaXMsVyksanModGhpcyxCLCIiKSk7Z2V0IGRvY3VtZW50SWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZG9jdW1lbnRJZChYKXt0aGlzLiNkPVh9I3U9KGpzKHRoaXMsVSksanModGhpcyxGLFtdKSk7Z2V0IHRodW1ibmFpbERhdGEoKXtyZXR1cm4gdGhpcy4jdX1zZXQgdGh1bWJuYWlsRGF0YShYKXt0aGlzLiN1PVh9I3A9KGpzKHRoaXMsaiksanModGhpcyxsZSxbXSkpO2dldCBwYWdlRGF0YSgpe3JldHVybiB0aGlzLiNwfXNldCBwYWdlRGF0YShYKXt0aGlzLiNwPVh9I2g9KGpzKHRoaXMsUSksanModGhpcyx0ZSwwKSk7Z2V0IHBkZkZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHBkZkZpbGVTaXplKFgpe3RoaXMuI2g9WH1wZGZEb2N1bWVudD1qcyh0aGlzLGVlKTtyZW5kZXJTdGF0ZT0iaWRsZSI7cmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGw7cGFnZVJlbmRlcmluZz0hMTtwYWdlTnVtUGVuZGluZz1udWxsO2N1cnJlbnRSZW5kZXJUYXNrPW51bGw7Y3VycmVudFJlbmRlclByb21pc2U9bnVsbDt0aHVtYm5haWxSZW5kZXJUYXNrcz1bXTtwYWdlUmVuZGVyVGFza3M9bmV3IE1hcDt0ZXh0TGF5ZXJSZW5kZXJUYXNrcz1uZXcgTWFwO2NhbnZhcztjdHg7dmlld2VyTWFpbj1udWxsO3Jlc2l6ZU9ic2VydmVyO2ludGVyc2VjdGlvbk9ic2VydmVyO3Njcm9sbFRocm90dGxlVGltZW91dDt2aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOjAsaGVpZ2h0OjB9O3ZpZXdwb3J0TW9kZT0iYXV0byI7TUFOVUFMX01JTl9aT09NPS41O01BTlVBTF9NQVhfWk9PTT0zO0FCU09MVVRFX01JTl9aT09NPS4xO0FCU09MVVRFX01BWF9aT09NPTQ7UEFHRV9HQVA9MjA7UkVOREVSX0JVRkZFUj0zO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHt0aGlzLnNob3dTaWRlYmFyPyJ3aXRoLXNpZGViYXIiOiIifSBzaWRlYmFyLSR7dGhpcy5zaWRlYmFyUG9zaXRpb259Ij4KICAgICAgICAke3RoaXMuc2hvd1Rvb2xiYXI/d2AKICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJldmlvdXNQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZTw9MX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uTGVmdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgICAgICAgICAgIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudG90YWxQYWdlc30iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmN1cnJlbnRQYWdlKX0KICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlUGFnZUlucHV0fQogICAgICAgICAgICAgICAgICBjbGFzcz0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS10b3RhbCI+JHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMubmV4dFBhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPj10aGlzLnRvdGFsUGFnZXN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvblJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21PdXR9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tT3V0fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucmVzZXRab29tfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ6b29tLWxldmVsIj4ke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tSW59CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tSW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvUGFnZX0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gcGFnZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1dpZHRofQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byB3aWR0aCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcnJvd0xlZnRSaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCB0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSF0aGlzLnNob3dTaWRlYmFyfQogICAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5zaG93U2lkZWJhcj8iSGlkZSB0aHVtYm5haWxzIjoiU2hvdyB0aHVtYm5haWxzIn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke3RoaXMuc2hvd1NpZGViYXI/Imx1Y2lkZTpTaWRlYmFyQ2xvc2UiOiJsdWNpZGU6U2lkZWJhciJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmRvd25sb2FkUGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IkRvd25sb2FkIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByaW50UGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IlByaW50IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlByaW50ZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnNob3dTaWRlYmFyP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuPlBhZ2VzPC9zcGFuPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2lkZWJhci1jbG9zZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9ITF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7Vmkua2V5ZWQodGhpcy5kb2N1bWVudElkLHdgCiAgICAgICAgICAgICAgICAgICR7VmkucmVwZWF0KHRoaXMudGh1bWJuYWlsRGF0YSxYPT5YLnBhZ2UsWD0+d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRodW1ibmFpbCAke3RoaXMuY3VycmVudFBhZ2U9PT1YLnBhZ2U/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXBhZ2U9IiR7WC5wYWdlfSIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaHVtYm5haWxDbGlja30KICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0idGh1bWJuYWlsLWNhbnZhcyIgZGF0YS1wYWdlPSIke1gucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGh1bWJuYWlsLW51bWJlciI+JHtYLnBhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1tYWluIiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAke3RoaXMubG9hZGluZz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPkxvYWRpbmcgUERGLi4uPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgJHtWaS5yZXBlYXQodGhpcy5wYWdlRGF0YSxYPT5YLnBhZ2UsWD0+d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLXdyYXBwZXIiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbnZhcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJwYWdlLWNhbnZhcyIgZGF0YS1wYWdlPSIke1gucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWxheWVyIiBkYXRhLXBhZ2U9IiR7WC5wYWdlfSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InBkZi1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icGRmLWZvb3Rlci1sZWZ0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBkZi1mb290ZXItaXRlbSI+Wm9vbSAke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICR7dGhpcy5wZGZGaWxlU2l6ZT4wP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBkZi1mb290ZXItaXRlbSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMucGRmRmlsZVNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGRmLWZvb3Rlci1jZW50ZXIiIHN0eWxlPSJtYXJnaW4tbGVmdDogJHt0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNpZGViYXJQb3NpdGlvbj09PSJsZWZ0Ij8iMTAwcHgiOnRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2lkZWJhclBvc2l0aW9uPT09InJpZ2h0Ij8iLTEwMHB4IjoiMCJ9Ij4KICAgICAgICAgICAgPHNwYW4+UGFnZSAke3RoaXMuY3VycmVudFBhZ2V9IG9mICR7dGhpcy50b3RhbFBhZ2VzfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGRmLWZvb3Rlci1yaWdodCI+CiAgICAgICAgICAgICR7dGhpcy5wZGZVcmw/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGRmLWZvb3Rlci1maWxlbmFtZSI+JHt0aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5lbnN1cmVWaWV3ZXJSZWZzKCksdGhpcy5wZGZVcmwmJih0aGlzLmRvY3VtZW50SWQ9YCR7dGhpcy5wZGZVcmx9LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsYXdhaXQgdGhpcy5sb2FkUGRmKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDAsdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0KSx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dD12b2lkIDApLHRoaXMucmVuZGVyU3RhdGU9ImRpc3Bvc2VkIixhd2FpdCB0aGlzLmNsZWFudXBEb2N1bWVudCgpLHRoaXMuY2FudmFzPXZvaWQgMCx0aGlzLmN0eD12b2lkIDB9YXN5bmMgdXBkYXRlZChYKXtpZihzdXBlci51cGRhdGVkKFgpLFguaGFzKCJwZGZVcmwiKSYmdGhpcy5wZGZVcmwpe2xldCBaPVguZ2V0KCJwZGZVcmwiKTtaJiZHZC5yZWxlYXNlRG9jdW1lbnQoWiksdGhpcy5kb2N1bWVudElkPWAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLGF3YWl0IHRoaXMubG9hZFBkZigpfVguaGFzKCJzaG93U2lkZWJhciIpJiZ0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnBkZkRvY3VtZW50JiYoYXdhaXQgbmV3IFByb21pc2UoWj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFopKSx0aGlzLnRodW1ibmFpbERhdGEuZm9yRWFjaChaPT5aLnJlbmRlcmVkPSExKSxhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSx0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KHRoaXMuY3VycmVudFBhZ2UpKX1mb3JtYXRGaWxlU2l6ZShYKXtyZXR1cm4gWDwxMDI0P2Ake1h9IEJgOlg8MTAyNCoxMDI0P2AkeyhYLzEwMjQpLnRvRml4ZWQoMSl9IEtCYDpgJHsoWC8oMTAyNCoxMDI0KSkudG9GaXhlZCgxKX0gTUJgfWFzeW5jIGxvYWRQZGYoKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZW5kZXJTdGF0ZT0ibG9hZGluZyI7dHJ5e2F3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCksdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcjtsZXQgWD10aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5zaWduYWw7aWYodGhpcy5wZGZEb2N1bWVudD1hd2FpdCBHZC5sb2FkRG9jdW1lbnQodGhpcy5wZGZVcmwpLFguYWJvcnRlZClyZXR1cm47dGhpcy50b3RhbFBhZ2VzPXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UGFnZT10aGlzLmluaXRpYWxQYWdlLHRoaXMucmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKTt0cnl7bGV0IFo9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCk7dGhpcy5wZGZGaWxlU2l6ZT1aLmxlbmd0aH1jYXRjaHt0aGlzLnBkZkZpbGVTaXplPTB9aWYodGhpcy50aHVtYm5haWxEYXRhPUFycmF5LmZyb20oe2xlbmd0aDp0aGlzLnRvdGFsUGFnZXN9LChaLHllKT0+KHtwYWdlOnllKzEscmVuZGVyZWQ6ITF9KSksdGhpcy5wYWdlRGF0YT1BcnJheS5mcm9tKHtsZW5ndGg6dGhpcy50b3RhbFBhZ2VzfSwoWix5ZSk9Pih7cGFnZTp5ZSsxLHJlbmRlcmVkOiExLHJlbmRlcmluZzohMSx0ZXh0TGF5ZXJSZW5kZXJlZDohMX0pKSx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmVuc3VyZVZpZXdlclJlZnMoKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSxhd2FpdCBuZXcgUHJvbWlzZShaPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoWikpLFguYWJvcnRlZHx8KHRoaXMucmVuZGVyU3RhdGU9InJlbmRlcmluZy1tYWluIixhd2FpdCB0aGlzLnJlbmRlclZpc2libGVQYWdlcygpLFguYWJvcnRlZCl8fCh0aGlzLmluaXRpYWxQYWdlPjEmJmF3YWl0IHRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuaW5pdGlhbFBhZ2UsITEpLHRoaXMuc2hvd1NpZGViYXImJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKFo9PnJlcXVlc3RBbmltYXRpb25GcmFtZShaKSksWC5hYm9ydGVkfHwoYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksWC5hYm9ydGVkKSkpKXJldHVybjt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJlZCJ9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBQREY6IixYKSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5yZW5kZXJTdGF0ZT0iZXJyb3IifX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciYmdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoWj0+e2ZvcihsZXQgeWUgb2YgWil7bGV0IHE9eWUudGFyZ2V0LEE9cGFyc2VJbnQocS5kYXRhc2V0LnBhZ2V8fCIxIik7eWUuaXNJbnRlcnNlY3RpbmcmJnRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKEEpfX0se3Jvb3Q6dGhpcy52aWV3ZXJNYWluLHJvb3RNYXJnaW46YCR7dGhpcy5SRU5ERVJfQlVGRkVSKjEwMH1weCAwcHhgLHRocmVzaG9sZDouMDF9KTtsZXQgWD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wYWdlLXdyYXBwZXIiKTtYJiZYLmZvckVhY2goWj0+e3RoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/Lm9ic2VydmUoWil9KX1hc3luYyByZW5kZXJWaXNpYmxlUGFnZXMoKXtpZighdGhpcy52aWV3ZXJNYWluKXJldHVybjtsZXQgWD10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0O2ZvcihsZXQgWiBvZiB0aGlzLnBhZ2VEYXRhKXtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtaLnBhZ2V9Il1gKTtpZigheWUpY29udGludWU7bGV0IHE9eWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksc2U9cS50b3AtQS50b3Asb2U9c2UrcS5oZWlnaHQsYWU9dGhpcy5SRU5ERVJfQlVGRkVSKlg7b2U+PS1hZSYmc2U8PVgrYWUmJmF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKFoucGFnZSl9fWFzeW5jIHJlbmRlclBhZ2VJZk5lZWRlZChYKXtsZXQgWj10aGlzLnBhZ2VEYXRhLmZpbmQoeWU9PnllLnBhZ2U9PT1YKTtpZighKCFafHxaLnJlbmRlcmVkfHxaLnJlbmRlcmluZykpe1oucmVuZGVyaW5nPSEwO3RyeXtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS1jYW52YXNbZGF0YS1wYWdlPSIke1h9Il1gKTtpZigheWUpe1oucmVuZGVyaW5nPSExO3JldHVybn1sZXQgcT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoWCksQT10aGlzLmNvbXB1dGVWaWV3cG9ydChxKSxzZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt5ZS53aWR0aD1NYXRoLmZsb29yKEEud2lkdGgqc2UpLHllLmhlaWdodD1NYXRoLmZsb29yKEEuaGVpZ2h0KnNlKSx5ZS5zdHlsZS53aWR0aD1gJHtBLndpZHRofXB4YCx5ZS5zdHlsZS5oZWlnaHQ9YCR7QS5oZWlnaHR9cHhgO2xldCBvZT15ZS5nZXRDb250ZXh0KCIyZCIpO2lmKCFvZSl7cS5jbGVhbnVwPy4oKSxaLnJlbmRlcmluZz0hMTtyZXR1cm59b2Uuc2NhbGUoc2Usc2UpO2xldCBhZT17Y2FudmFzQ29udGV4dDpvZSx2aWV3cG9ydDpBfSxUZT1xLnJlbmRlcihhZSk7dGhpcy5wYWdlUmVuZGVyVGFza3Muc2V0KFgsVGUpLGF3YWl0IFRlLnByb21pc2UscS5jbGVhbnVwPy4oKSxaLnJlbmRlcmVkPSEwLFoucmVuZGVyaW5nPSExLHRoaXMucGFnZVJlbmRlclRhc2tzLmRlbGV0ZShYKSxhd2FpdCB0aGlzLnJlbmRlclRleHRMYXllcihYKSx0aGlzLnJlcXVlc3RVcGRhdGUoInBhZ2VEYXRhIil9Y2F0Y2goeWUpe3llPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyBwYWdlICR7WH06YCx5ZSksWi5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFgpfX19YXN5bmMgcmVuZGVyVGV4dExheWVyKFgpe2xldCBaPXRoaXMucGFnZURhdGEuZmluZCh5ZT0+eWUucGFnZT09PVgpO2lmKCEoIVp8fFoudGV4dExheWVyUmVuZGVyZWQpKXRyeXtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGV4dC1sYXllcltkYXRhLXBhZ2U9IiR7WH0iXWApO2lmKCF5ZSlyZXR1cm47eWUuaW5uZXJIVE1MPSIiO2xldCBxPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShYKSxBPWF3YWl0IHEuZ2V0VGV4dENvbnRlbnQoKSxzZT10aGlzLmNvbXB1dGVWaWV3cG9ydChxKSxvZT1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKTt5ZS5zdHlsZS53aWR0aD1gJHtzZS53aWR0aH1weGAseWUuc3R5bGUuaGVpZ2h0PWAke3NlLmhlaWdodH1weGAseWUuc3R5bGUuc2V0UHJvcGVydHkoIi0tc2NhbGUtZmFjdG9yIixTdHJpbmcoc2Uuc2NhbGUpKTtsZXQgYWU9b2UucmVuZGVyVGV4dExheWVyKHt0ZXh0Q29udGVudFNvdXJjZTpBLGNvbnRhaW5lcjp5ZSx2aWV3cG9ydDpzZX0pO3RoaXMudGV4dExheWVyUmVuZGVyVGFza3Muc2V0KFgsYWUpLGF3YWl0IGFlLnByb21pc2U7bGV0IFRlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1RlLmNsYXNzTmFtZT0iZW5kT2ZDb250ZW50Iix5ZS5hcHBlbmRDaGlsZChUZSk7bGV0IFJlPSExLEJlPW51bGwsR2U9MCxEZT1pKCh2ZSxiZSk9PntsZXQgRWU9QXJyYXkuZnJvbSh5ZS5xdWVyeVNlbGVjdG9yQWxsKCJzcGFuIikpO2ZvcihsZXQgamUgb2YgRWUpe2xldCBXZT1qZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih2ZT49V2UubGVmdCYmdmU8PVdlLnJpZ2h0JiZiZT49V2UudG9wJiZiZTw9V2UuYm90dG9tKXtsZXQgc3Q9amUuZmlyc3RDaGlsZDtpZihzdCYmc3Qubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSl7bGV0IE1lPXN0LnRleHRDb250ZW50fHwiIixnZT1XZS53aWR0aC9NZS5sZW5ndGgsSWU9dmUtV2UubGVmdCxjZT1NYXRoLm1pbihNYXRoLnJvdW5kKEllL2dlKSxNZS5sZW5ndGgpO3JldHVybntub2RlOnN0LG9mZnNldDpjZX19fX1yZXR1cm4gbnVsbH0sImdldFRleHRQb3NpdGlvbkZyb21Qb2ludCIpLF9lPWkoKCk9PntSZSYmKFJlPSExLEJlPW51bGwseWUuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0aW5nIikpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLF9lKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLENlKX0sImhhbmRsZU1vdXNlVXAiKSxDZT1pKHZlPT57aWYoIVJlfHwhQmUpcmV0dXJuO3ZlLnByZXZlbnREZWZhdWx0KCk7bGV0IGJlPURlKHZlLmNsaWVudFgsdmUuY2xpZW50WSk7aWYoYmUpe2xldCBFZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoRWUpdHJ5e0VlLnNldEJhc2VBbmRFeHRlbnQoQmUsR2UsYmUubm9kZSxiZS5vZmZzZXQpfWNhdGNoe319fSwiaGFuZGxlTW91c2VNb3ZlIik7eWUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix2ZT0+e2lmKHZlLmJ1dHRvbiE9PTApcmV0dXJuO2xldCBiZT1EZSh2ZS5jbGllbnRYLHZlLmNsaWVudFkpO2JlJiYodmUucHJldmVudERlZmF1bHQoKSxSZT0hMCxCZT1iZS5ub2RlLEdlPWJlLm9mZnNldCx5ZS5jbGFzc0xpc3QuYWRkKCJzZWxlY3RpbmciKSx3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsQ2UpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLF9lKSl9KSxaLnRleHRMYXllclJlbmRlcmVkPSEwLHEuY2xlYW51cD8uKCksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5kZWxldGUoWCl9Y2F0Y2goeWUpe3llPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyB0ZXh0IGxheWVyIGZvciBwYWdlICR7WH06YCx5ZSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5kZWxldGUoWCl9fWhhbmRsZVNjcm9sbD1pKCgpPT57dGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoKCk9Pnt0aGlzLnVwZGF0ZUN1cnJlbnRQYWdlKCksdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKX0sNTApfSwiaGFuZGxlU2Nyb2xsIik7dXBkYXRlQ3VycmVudFBhZ2UoKXtpZighdGhpcy52aWV3ZXJNYWluKXJldHVybjtsZXQgWD10aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wLFo9dGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodCx5ZT1YK1ovMjtmb3IobGV0IHE9MDtxPHRoaXMucGFnZURhdGEubGVuZ3RoO3ErKyl7bGV0IEE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtxKzF9Il1gKTtpZighQSljb250aW51ZTtsZXQgc2U9QS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvZT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYWU9c2UudG9wLW9lLnRvcCtYLFRlPWFlK3NlLmhlaWdodDtpZih5ZT49YWUmJnllPD1UZSl7dGhpcy5jdXJyZW50UGFnZSE9PXErMSYmKHRoaXMuY3VycmVudFBhZ2U9cSsxLHRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcocSsxKSk7YnJlYWt9fX1zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhYKXtsZXQgWj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50aHVtYm5haWxbZGF0YS1wYWdlPSIke1h9Il1gKSx5ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKTtpZihaJiZ5ZSl7bGV0IHE9Wi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBPXllLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPXEudG9wPEEudG9wLG9lPXEuYm90dG9tPkEuYm90dG9tO2lmKHNlfHxvZSl7bGV0IGFlPVoub2Zmc2V0VG9wLFRlPVoub2Zmc2V0SGVpZ2h0LFJlPXllLmNsaWVudEhlaWdodCxCZT1hZS1SZS8yK1RlLzI7eWUuc2Nyb2xsVG8oe3RvcDpNYXRoLm1heCgwLEJlKSxiZWhhdmlvcjoic21vb3RoIn0pfX19YXN5bmMgc2Nyb2xsVG9QYWdlKFgsWj0hMCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtYfSJdYCk7aWYoeWUmJnRoaXMudmlld2VyTWFpbil7bGV0IHE9eWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksb2U9dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCsocS50b3AtQS50b3ApLXRoaXMudmlld2VyTWFpbi5jbGllbnRUb3AtMTY7Wj90aGlzLnZpZXdlck1haW4uc2Nyb2xsVG8oe3RvcDpvZSxiZWhhdmlvcjoic21vb3RoIn0pOnRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3A9b2UsdGhpcy5jdXJyZW50UGFnZT1YLHRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoWCksYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoWCl9fWFzeW5jIHJlbmRlclRodW1ibmFpbHMoKXtpZighdGhpcy5wZGZEb2N1bWVudHx8dGhpcy50aHVtYm5haWxEYXRhLmxlbmd0aD4wJiZ0aGlzLnRodW1ibmFpbERhdGEuZXZlcnkoWj0+Wi5yZW5kZXJlZCl8fHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPy5zaWduYWwuYWJvcnRlZClyZXR1cm47bGV0IFg9dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI/LnNpZ25hbDt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJpbmctdGh1bWJzIjtmb3IobGV0IFogb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcyl0cnl7Wi5jYW5jZWwoKX1jYXRjaHt9dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXTt0cnl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgWj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi50aHVtYm5haWwiKSx5ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi50aHVtYm5haWwtY2FudmFzIikscT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKSxBPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHEpLG9lPTIwMC0ocGFyc2VGbG9hdChBLnBhZGRpbmdMZWZ0KStwYXJzZUZsb2F0KEEucGFkZGluZ1JpZ2h0KSktNDtmb3IobGV0IGFlIG9mIEFycmF5LmZyb20oeWUpKXtsZXQgVGU9YWUuZ2V0Q29udGV4dCgiMmQiKTtUZSYmVGUuY2xlYXJSZWN0KDAsMCxhZS53aWR0aCxhZS5oZWlnaHQpfWZvcihsZXQgYWU9MDthZTx5ZS5sZW5ndGg7YWUrKyl7aWYoWD8uYWJvcnRlZClyZXR1cm47bGV0IFRlPXllW2FlXSxSZT1aW2FlXSxCZT1wYXJzZUludChUZS5kYXRhc2V0LnBhZ2V8fCIxIiksR2U9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKEJlKSxEZT1HZS5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLF9lPW9lL0RlLndpZHRoLENlPUdlLmdldFZpZXdwb3J0KHtzY2FsZTpfZX0pLHZlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO1RlLndpZHRoPU1hdGguZmxvb3IoQ2Uud2lkdGgqdmUpLFRlLmhlaWdodD1NYXRoLmZsb29yKENlLmhlaWdodCp2ZSksVGUuc3R5bGUud2lkdGg9YCR7Q2Uud2lkdGh9cHhgLFRlLnN0eWxlLmhlaWdodD1gJHtDZS5oZWlnaHR9cHhgLFJlLnN0eWxlLmhlaWdodD1gJHtDZS5oZWlnaHR9cHhgLFJlLnN0eWxlLm1pbkhlaWdodD1gJHtDZS5oZWlnaHR9cHhgO2xldCBiZT1UZS5nZXRDb250ZXh0KCIyZCIpO2lmKCFiZSl7R2UuY2xlYW51cD8uKCk7Y29udGludWV9YmUuc2NhbGUodmUsdmUpO2xldCBFZT17Y2FudmFzQ29udGV4dDpiZSx2aWV3cG9ydDpDZX0samU9R2UucmVuZGVyKEVlKTt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzLnB1c2goamUpLGF3YWl0IGplLnByb21pc2UsR2UuY2xlYW51cD8uKCk7bGV0IFdlPXRoaXMudGh1bWJuYWlsRGF0YS5maW5kKHN0PT5zdC5wYWdlPT09QmUpO1dlJiYoV2UucmVuZGVyZWQ9ITApfXRoaXMucmVxdWVzdFVwZGF0ZSgidGh1bWJuYWlsRGF0YSIpfWNhdGNoKFope1o/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcigiRXJyb3IgcmVuZGVyaW5nIHRodW1ibmFpbHM6IixaKX1maW5hbGx5e3RoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W119fXByZXZpb3VzUGFnZSgpe3RoaXMuY3VycmVudFBhZ2U+MSYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZS0xKX1uZXh0UGFnZSgpe3RoaXMuY3VycmVudFBhZ2U8dGhpcy50b3RhbFBhZ2VzJiZ0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKzEpfWhhbmRsZVRodW1ibmFpbENsaWNrKFgpe2xldCBaPVguY3VycmVudFRhcmdldCx5ZT1wYXJzZUludChaLmRhdGFzZXQucGFnZXx8IjEiKTt0aGlzLnNjcm9sbFRvUGFnZSh5ZSl9aGFuZGxlUGFnZUlucHV0KFgpe2xldCBaPVgudGFyZ2V0LHllPXBhcnNlSW50KFoudmFsdWUpO3RoaXMuc2Nyb2xsVG9QYWdlKHllKX16b29tSW4oKXtsZXQgWD1NYXRoLm1pbih0aGlzLk1BTlVBTF9NQVhfWk9PTSx0aGlzLmN1cnJlbnRab29tKjEuMik7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsWCE9PXRoaXMuY3VycmVudFpvb20mJih0aGlzLmN1cnJlbnRab29tPVgsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCkpfXpvb21PdXQoKXtsZXQgWD1NYXRoLm1heCh0aGlzLk1BTlVBTF9NSU5fWk9PTSx0aGlzLmN1cnJlbnRab29tLzEuMik7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsWCE9PXRoaXMuY3VycmVudFpvb20mJih0aGlzLmN1cnJlbnRab29tPVgsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCkpfXJlc2V0Wm9vbSgpe3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLHRoaXMuY3VycmVudFpvb209MSx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1maXRUb1BhZ2UoKXt0aGlzLnZpZXdwb3J0TW9kZT0icGFnZS1maXQiLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvV2lkdGgoKXt0aGlzLnZpZXdwb3J0TW9kZT0icGFnZS13aWR0aCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9cmVSZW5kZXJBbGxQYWdlcygpe3RoaXMucGFnZURhdGEuZm9yRWFjaChYPT57WC5yZW5kZXJlZD0hMSxYLnJlbmRlcmluZz0hMSxYLnRleHRMYXllclJlbmRlcmVkPSExfSksdGhpcy5wYWdlUmVuZGVyVGFza3MuZm9yRWFjaChYPT57dHJ5e1guY2FuY2VsKCl9Y2F0Y2h7fX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWw/LigpfWNhdGNoe319KSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKX0pfWFzeW5jIGRvd25sb2FkUGRmKCl7aWYodGhpcy5wZGZEb2N1bWVudCl0cnl7bGV0IFg9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCksWj1uZXcgQmxvYihbWC5idWZmZXJdLHt0eXBlOiJhcHBsaWNhdGlvbi9wZGYifSkseWU9VVJMLmNyZWF0ZU9iamVjdFVSTChaKSxxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtxLmhyZWY9eWUscS5kb3dubG9hZD10aGlzLnBkZlVybCYmdGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIscS5jbGljaygpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoeWUpLDFlMyl9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgZG93bmxvYWRpbmcgUERGOiIsWCl9fWFzeW5jIHByaW50UGRmKCl7aWYodGhpcy5wZGZEb2N1bWVudCl0cnl7bGV0IFg9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCksWj1uZXcgQmxvYihbWC5idWZmZXJdLHt0eXBlOiJhcHBsaWNhdGlvbi9wZGYifSkseWU9VVJMLmNyZWF0ZU9iamVjdFVSTChaKSxxPWAKICAgICAgICA8IURPQ1RZUEUgaHRtbD4KICAgICAgICA8aHRtbD4KICAgICAgICA8aGVhZD4KICAgICAgICAgIDx0aXRsZT5QcmludCBQREY8L3RpdGxlPgogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAqIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAgICAgICAgICAgIGh0bWwsIGJvZHkgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyB9CiAgICAgICAgICAgIGlmcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJvcmRlcjogbm9uZTsgfQogICAgICAgICAgICBAbWVkaWEgcHJpbnQgewogICAgICAgICAgICAgIGh0bWwsIGJvZHksIGlmcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICA8L2hlYWQ+CiAgICAgICAgPGJvZHk+CiAgICAgICAgICA8aWZyYW1lIHNyYz0iJHt5ZX0iIHR5cGU9ImFwcGxpY2F0aW9uL3BkZiI+PC9pZnJhbWU+CiAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5mb2N1cygpOwogICAgICAgICAgICAgICAgd2luZG93LnByaW50KCk7CiAgICAgICAgICAgICAgfSwgNTAwKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93Lm9uYWZ0ZXJwcmludCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBTYWZldHkgY2xvc2UgYWZ0ZXIgMiBtaW51dGVzCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHdpbmRvdy5jbG9zZSgpOyB9LCAxMjAwMDApOwogICAgICAgICAgPFwvc2NyaXB0PgogICAgICAgIDwvYm9keT4KICAgICAgICA8L2h0bWw+CiAgICAgIGAsQT1uZXcgQmxvYihbcV0se3R5cGU6InRleHQvaHRtbCJ9KSxzZT1VUkwuY3JlYXRlT2JqZWN0VVJMKEEpLG9lPXdpbmRvdy5vcGVuKHNlLCJfYmxhbmsiLCJ3aWR0aD04MDAsaGVpZ2h0PTYwMCIpO2lmKG9lKXtsZXQgYWU9c2V0SW50ZXJ2YWwoKCk9PntvZS5jbG9zZWQmJihjbGVhckludGVydmFsKGFlKSxVUkwucmV2b2tlT2JqZWN0VVJMKHllKSxVUkwucmV2b2tlT2JqZWN0VVJMKHNlKSl9LDUwMCk7c2V0VGltZW91dCgoKT0+e2NsZWFySW50ZXJ2YWwoYWUpLFVSTC5yZXZva2VPYmplY3RVUkwoeWUpLFVSTC5yZXZva2VPYmplY3RVUkwoc2UpfSwxMmU0KX1lbHNlIHdpbmRvdy5vcGVuKHllLCJfYmxhbmsiKSxzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKHllKSw2ZTQpLFVSTC5yZXZva2VPYmplY3RVUkwoc2UpfWNhdGNoKFgpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHByaW50aW5nIFBERjoiLFgpfX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IFg9W10seWU9d2luZG93LmdldFNlbGVjdGlvbigpPy50b1N0cmluZygpfHwiIjtyZXR1cm4geWUmJihYLnB1c2goe25hbWU6IkNvcHkiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHllKX0sImFjdGlvbiIpfSksWC5wdXNoKHtkaXZpZGVyOiEwfSkpLFgucHVzaCh7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57YXdhaXQgdGhpcy5kb3dubG9hZFBkZigpfSwiYWN0aW9uIil9LHtuYW1lOiJQcmludCBQREYiLGljb25OYW1lOiJsdWNpZGU6UHJpbnRlciIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMucHJpbnRQZGYoKX0sImFjdGlvbiIpfSksWH1nZXQgY2FuWm9vbUluKCl7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSJ8fHRoaXMuY3VycmVudFpvb208dGhpcy5NQU5VQUxfTUFYX1pPT019Z2V0IGNhblpvb21PdXQoKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbT50aGlzLk1BTlVBTF9NSU5fWk9PTX1lbnN1cmVWaWV3ZXJSZWZzKCl7dGhpcy52aWV3ZXJNYWlufHwodGhpcy52aWV3ZXJNYWluPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXdlci1tYWluIikpLHRoaXMudmlld2VyTWFpbiYmIXRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpLHRoaXMucGRmRG9jdW1lbnQmJnRoaXMucmVSZW5kZXJBbGxQYWdlcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudmlld2VyTWFpbiksdGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy52aWV3ZXJNYWluLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixYPT57bGV0IFo9WC5jdXJyZW50VGFyZ2V0LHllPVouc2Nyb2xsVG9wLHE9Wi5zY3JvbGxIZWlnaHQsQT1aLmNsaWVudEhlaWdodCxzZT1YLmRlbHRhWSxvZT15ZT09PTAsYWU9TWF0aC5hYnMoeWUrQS1xKTwxO3NlPDAmJiFvZXx8c2U+MCYmIWFlP1guc3RvcFByb3BhZ2F0aW9uKCk6KHNlPDAmJm9lfHxzZT4wJiZhZSkmJihYLnByZXZlbnREZWZhdWx0KCksWC5zdG9wUHJvcGFnYXRpb24oKSl9LHtwYXNzaXZlOiExfSkpfW1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKXtpZighdGhpcy52aWV3ZXJNYWluKXt0aGlzLnZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07cmV0dXJufWxldCBYPWdldENvbXB1dGVkU3R5bGUodGhpcy52aWV3ZXJNYWluKSxaPXBhcnNlRmxvYXQoWC5wYWRkaW5nTGVmdHx8IjAiKStwYXJzZUZsb2F0KFgucGFkZGluZ1JpZ2h0fHwiMCIpLHllPXBhcnNlRmxvYXQoWC5wYWRkaW5nVG9wfHwiMCIpK3BhcnNlRmxvYXQoWC5wYWRkaW5nQm90dG9tfHwiMCIpLHE9TWF0aC5tYXgodGhpcy52aWV3ZXJNYWluLmNsaWVudFdpZHRoLVosMCksQT1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LXllLDApO3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDpxLGhlaWdodDpBfX1yZXNvbHZlSW5pdGlhbFZpZXdwb3J0TW9kZSgpe3R5cGVvZiB0aGlzLmluaXRpYWxab29tPT0ibnVtYmVyIj8odGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT10aGlzLm5vcm1hbGl6ZVpvb20odGhpcy5pbml0aWFsWm9vbSwhMCkpOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS13aWR0aCI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2Utd2lkdGgiOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS1maXQifHx0aGlzLmluaXRpYWxab29tPT09ImF1dG8iP3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCI6dGhpcy52aWV3cG9ydE1vZGU9ImF1dG8iLHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSImJih0aGlzLmN1cnJlbnRab29tPTEpfWNvbXB1dGVWaWV3cG9ydChYKXt0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKTtsZXQgWj1YLmdldFZpZXdwb3J0KHtzY2FsZToxfSkseWU7c3dpdGNoKHRoaXMudmlld3BvcnRNb2RlKXtjYXNlInBhZ2Utd2lkdGgiOnt5ZT0odGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fFoud2lkdGgpL1oud2lkdGg7YnJlYWt9Y2FzZSJwYWdlLWZpdCI6Y2FzZSJhdXRvIjp7bGV0IEE9dGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fFoud2lkdGgsc2U9dGhpcy52aWV3cG9ydERpbWVuc2lvbnMuaGVpZ2h0fHxaLmhlaWdodCxvZT1BL1oud2lkdGgsYWU9c2UvWi5oZWlnaHQ7eWU9TWF0aC5taW4ob2UsYWUpO2JyZWFrfWRlZmF1bHQ6e3llPXRoaXMubm9ybWFsaXplWm9vbSh0aGlzLmN1cnJlbnRab29tfHwxLCExKTticmVha319KCFOdW1iZXIuaXNGaW5pdGUoeWUpfHx5ZTw9MCkmJih5ZT0xKTtsZXQgcT10aGlzLnZpZXdwb3J0TW9kZT09PSJjdXN0b20iP3RoaXMubm9ybWFsaXplWm9vbSh5ZSwhMCk6dGhpcy5ub3JtYWxpemVab29tKHllLCExKTtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209cSksWC5nZXRWaWV3cG9ydCh7c2NhbGU6cX0pfW5vcm1hbGl6ZVpvb20oWCxaKXtsZXQgeWU9Wj90aGlzLk1BTlVBTF9NSU5fWk9PTTp0aGlzLkFCU09MVVRFX01JTl9aT09NLHE9Wj90aGlzLk1BTlVBTF9NQVhfWk9PTTp0aGlzLkFCU09MVVRFX01BWF9aT09NO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChYLHllKSxxKX1hc3luYyBjbGVhbnVwRG9jdW1lbnQoKXtpZih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlciYmKHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLmFib3J0KCksdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI9bnVsbCksdGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZSl7dHJ5e2F3YWl0IHRoaXMuY3VycmVudFJlbmRlclByb21pc2V9Y2F0Y2h7fXRoaXMuY3VycmVudFJlbmRlclByb21pc2U9bnVsbH10aGlzLmN1cnJlbnRSZW5kZXJUYXNrPW51bGwsdGhpcy5wYWdlUmVuZGVyVGFza3MuZm9yRWFjaChYPT57dHJ5e1guY2FuY2VsKCl9Y2F0Y2h7fX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWw/LigpfWNhdGNoe319KSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmNsZWFyKCk7Zm9yKGxldCBYIG9mIHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3N8fFtdKXRyeXtYLmNhbmNlbCgpfWNhdGNoe31pZih0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdLHRoaXMucmVuZGVyU3RhdGU9ImlkbGUiLHRoaXMucGFnZVJlbmRlcmluZz0hMSx0aGlzLnBhZ2VOdW1QZW5kaW5nPW51bGwsdGhpcy50aHVtYm5haWxEYXRhPVtdLHRoaXMucGFnZURhdGE9W10sdGhpcy5kb2N1bWVudElkPSIiLHRoaXMuY2FudmFzJiZ0aGlzLmN0eCYmdGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHQpLHRoaXMucGRmRG9jdW1lbnQpdHJ5e3RoaXMucGRmRG9jdW1lbnQuZGVzdHJveSgpfWNhdGNoKFgpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRlc3Ryb3lpbmcgUERGIGRvY3VtZW50OiIsWCl9dGhpcy5wZGZEb2N1bWVudD1udWxsLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXN0YXRpY3tqcyhhLHQpfX07cmV0dXJuIGtlPWF9KSgpfSk7dmFyIFU1YSxXNWE9ZygoKT0+e3BlKCk7VTVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDQwcHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICAucHJldmlldy1pbWFnZSB7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICB9CgogICAgLnByZXZpZXctcGRmIHsKICAgICAgaGVpZ2h0OiA2MDBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SW1hZ2UgUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdXRvLWRldGVjdHMgaW1hZ2UgZnJvbSBVUkwgZXh0ZW5zaW9uIGFuZCByZW5kZXJzIHdpdGggdGhlIGltYWdlIHZpZXdlci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LWltYWdlIgogICAgICAgIHVybD0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1MDY3NDQwMzgxMzYtNDYyNzM4MzRiM2ZiP3c9MTIwMCIKICAgICAgICBmaWxlbmFtZT0ibGFuZHNjYXBlLmpwZyIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBERiBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBQREYgYW5kIGRpc3BsYXlzIHdpdGggdGhlIFBERiB2aWV3ZXIgaW5jbHVkaW5nIHRvb2xiYXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBjbGFzcz0icHJldmlldy1wZGYiCiAgICAgICAgdXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgZmlsZW5hbWU9InJlc2VhcmNoLXBhcGVyLnBkZiIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvZGUgUHJldmlldyAoVGV4dCBDb250ZW50KTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5UeXBlU2NyaXB0IGNvZGUgZGlzcGxheWVkIHdpdGggc3ludGF4IGhpZ2hsaWdodGluZyB2aWEgdGhlIGNvZGVib3guPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBmaWxlbmFtZT0iZXhhbXBsZS50cyIKICAgICAgICBsYW5ndWFnZT0idHlwZXNjcmlwdCIKICAgICAgICAudGV4dENvbnRlbnQ9JHtgaW1wb3J0IHsgaHRtbCwgY3NzIH0gZnJvbSAnbGl0JzsKCmV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCBleHRlbmRzIExpdEVsZW1lbnQgewogIHN0YXRpYyBzdHlsZXMgPSBjc3NcYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KICBcYDsKCiAgcmVuZGVyKCkgewogICAgcmV0dXJuIGh0bWxcYDxoMT5IZWxsbyBXb3JsZDwvaDE+XGA7CiAgfQp9YH0KICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXVkaW8gZmlsZSBkZXRlY3RlZCBieSBleHRlbnNpb24sIHNob3duIHdpdGggd2F2ZWZvcm0gcGxheWVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgdXJsPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgIGZpbGVuYW1lPSJzb25nLm1wMyIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZpZGVvIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gZmlsZSBkZXRlY3RlZCBmcm9tIFVSTCwgcmVuZGVyZWQgd2l0aCBjdXN0b20gdmlkZW8gY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0JpZ0J1Y2tCdW5ueS5tcDQiCiAgICAgICAgZmlsZW5hbWU9ImJpZy1idWNrLWJ1bm55Lm1wNCIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkV4cGxpY2l0IFR5cGUgT3ZlcnJpZGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Rm9yY2UgY29udGVudCB0eXBlIHRvICd0ZXh0JyBldmVuIHRob3VnaCB0aGUgVVJMIGhhcyBubyBleHRlbnNpb24uPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBjb250ZW50VHlwZT0idGV4dCIKICAgICAgICAudGV4dENvbnRlbnQ9JHtgVGhpcyBpcyBwbGFpbiB0ZXh0IGNvbnRlbnQuCkl0IHByZXNlcnZlcyB3aGl0ZXNwYWNlIGFuZCBsaW5lIGJyZWFrcy4KClVzZWZ1bCBmb3IgbG9nIGZpbGVzLCBSRUFETUVzLCBldGMuYH0KICAgICAgICBmaWxlbmFtZT0ibm90ZXMudHh0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VW5rbm93biBUeXBlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPldoZW4gY29udGVudCB0eXBlIGNhbm5vdCBiZSBkZXRlY3RlZCwgc2hvd3MgYSBwbGFjZWhvbGRlci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJkYXRhLmJpbiIKICAgICAgICBjb250ZW50VHlwZT0idW5rbm93biIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgSW8sZ3MsRzVhLFdYYSxHWGEsS1hhLEs1YSxZNWE9ZygoKT0+e3BlKCk7ZXJ0KCk7dHJ0KCk7YXJ0KCk7Uml0KCk7c3J0KCk7VWEoKTtXNWEoKTtJbz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZ3M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEc1YT17anBnOiJpbWFnZSIsanBlZzoiaW1hZ2UiLHBuZzoiaW1hZ2UiLGdpZjoiaW1hZ2UiLHdlYnA6ImltYWdlIixzdmc6ImltYWdlIixibXA6ImltYWdlIixhdmlmOiJpbWFnZSIsaWNvOiJpbWFnZSIscGRmOiJwZGYiLG1wMzoiYXVkaW8iLHdhdjoiYXVkaW8iLG9nZzoiYXVkaW8iLGZsYWM6ImF1ZGlvIixhYWM6ImF1ZGlvIixtNGE6ImF1ZGlvIixvcHVzOiJhdWRpbyIsd2ViYToiYXVkaW8iLG1wNDoidmlkZW8iLHdlYm06InZpZGVvIixtb3Y6InZpZGVvIixhdmk6InZpZGVvIixta3Y6InZpZGVvIixvZ3Y6InZpZGVvIix0czoiY29kZSIsanM6ImNvZGUiLGpzeDoiY29kZSIsdHN4OiJjb2RlIixqc29uOiJjb2RlIixodG1sOiJjb2RlIixjc3M6ImNvZGUiLHNjc3M6ImNvZGUiLGxlc3M6ImNvZGUiLHB5OiJjb2RlIixqYXZhOiJjb2RlIixnbzoiY29kZSIscnM6ImNvZGUiLHlhbWw6ImNvZGUiLHltbDoiY29kZSIseG1sOiJjb2RlIixzcWw6ImNvZGUiLHNoOiJjb2RlIixiYXNoOiJjb2RlIix6c2g6ImNvZGUiLG1kOiJjb2RlIixjOiJjb2RlIixjcHA6ImNvZGUiLGg6ImNvZGUiLGhwcDoiY29kZSIscmI6ImNvZGUiLHBocDoiY29kZSIsc3dpZnQ6ImNvZGUiLGt0OiJjb2RlIix0eHQ6InRleHQiLGxvZzoidGV4dCIsY3N2OiJ0ZXh0IixlbnY6InRleHQifSxXWGE9eyJpbWFnZS8iOiJpbWFnZSIsImF1ZGlvLyI6ImF1ZGlvIiwidmlkZW8vIjoidmlkZW8iLCJhcHBsaWNhdGlvbi9wZGYiOiJwZGYifSxHWGE9e3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6InhtbCIseG1sOiJ4bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixsZXNzOiJsZXNzIixweToicHl0aG9uIixqYXZhOiJqYXZhIixnbzoiZ28iLHJzOiJydXN0Iix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHNxbDoic3FsIixzaDoiYmFzaCIsYmFzaDoiYmFzaCIsenNoOiJiYXNoIixjOiJjIixjcHA6ImNwcCIsaDoiYyIsaHBwOiJjcHAiLHJiOiJydWJ5IixwaHA6InBocCIsc3dpZnQ6InN3aWZ0IixrdDoia290bGluIixtZDoibWFya2Rvd24ifSxLWGE9e2ltYWdlOiJsdWNpZGU6SW1hZ2UiLHBkZjoibHVjaWRlOkZpbGVUZXh0IixhdWRpbzoibHVjaWRlOk11c2ljIix2aWRlbzoibHVjaWRlOlZpZGVvIixjb2RlOiJsdWNpZGU6Q29kZSIsdGV4dDoibHVjaWRlOkZpbGVUZXh0Iix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LEs1YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtcHJldmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdO3ZhciBzZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1ByZXZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgb2U9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKHthdHRyaWJ1dGU6ITF9KV0sYz1bTCgpXSx4PVtMKCldLHk9W0woKV0sTj1bTCgpXSxPPVtMKCldLEg9W0woKV0sST1bTCh7dHlwZTpCb29sZWFufSldLEs9W0woe3R5cGU6Qm9vbGVhbn0pXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSx5ZT1bWSgpXSxJbyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InVybCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnVybCwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnVybD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbyxsKSxJbyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJmaWxlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZmlsZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmZpbGU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LGQsdSksSW8odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYXNlNjQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJiYXNlNjQiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5iYXNlNjQsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5iYXNlNjQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LGIsdiksSW8odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InRleHRDb250ZW50ImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUudGV4dENvbnRlbnQsImdldCIpLHNldDppKChhZSxUZSk9PnthZS50ZXh0Q29udGVudD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbSxmKSxJbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iY29udGVudFR5cGUiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5jb250ZW50VHlwZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmNvbnRlbnRUeXBlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxNLHopLElvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJsYW5ndWFnZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUubGFuZ3VhZ2U9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LEMsXyksSW8odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW1lVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+Im1pbWVUeXBlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUubWltZVR5cGUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5taW1lVHlwZT1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sJCxFKSxJbyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iZmlsZW5hbWUiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5maWxlbmFtZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmZpbGVuYW1lPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxrLFMpLElvKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rvb2xiYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJzaG93VG9vbGJhciJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuc2hvd1Rvb2xiYXI9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LFAsUiksSW8odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZW5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJzaG93RmlsZW5hbWUiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5zaG93RmlsZW5hbWUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5zaG93RmlsZW5hbWU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LFYsVyksSW8odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4icmVzb2x2ZWRUeXBlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucmVzb2x2ZWRUeXBlLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUucmVzb2x2ZWRUeXBlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxCLFUpLElvKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkU3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4icmVzb2x2ZWRTcmMiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5yZXNvbHZlZFNyYywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlc29sdmVkU3JjPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxGLGopLElvKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InJlc29sdmVkVGV4dCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnJlc29sdmVkVGV4dCwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlc29sdmVkVGV4dD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbGUsUSksSW8odGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4icmVzb2x2ZWRMYW5nImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucmVzb2x2ZWRMYW5nLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUucmVzb2x2ZWRMYW5nPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSx0ZSxlZSksSW8odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImxvYWRpbmciaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUubG9hZGluZz1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sWCxaKSxJbyh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImVycm9yImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZXJyb3IsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5lcnJvcj1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0scSxBKSxJbyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvZX0sbnVsbCx0KSxzZT1hPWUudmFsdWUsb2UmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b2V9KX1zdGF0aWMgZGVtbz1VNWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIkRhdGEgVmlldyJdOyNlPWdzKHRoaXMsbywiIik7Z2V0IHVybCgpe3JldHVybiB0aGlzLiNlfXNldCB1cmwob2Upe3RoaXMuI2U9b2V9I3Q9KGdzKHRoaXMsbCksZ3ModGhpcyxkLHZvaWQgMCkpO2dldCBmaWxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGZpbGUob2Upe3RoaXMuI3Q9b2V9I2E9KGdzKHRoaXMsdSksZ3ModGhpcyxiLCIiKSk7Z2V0IGJhc2U2NCgpe3JldHVybiB0aGlzLiNhfXNldCBiYXNlNjQob2Upe3RoaXMuI2E9b2V9I3M9KGdzKHRoaXMsdiksZ3ModGhpcyxtLCIiKSk7Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRleHRDb250ZW50KG9lKXt0aGlzLiNzPW9lfSNpPShncyh0aGlzLGYpLGdzKHRoaXMsTSx2b2lkIDApKTtnZXQgY29udGVudFR5cGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29udGVudFR5cGUob2Upe3RoaXMuI2k9b2V9I3I9KGdzKHRoaXMseiksZ3ModGhpcyxDLCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhbmd1YWdlKG9lKXt0aGlzLiNyPW9lfSNvPShncyh0aGlzLF8pLGdzKHRoaXMsJCwiIikpO2dldCBtaW1lVHlwZSgpe3JldHVybiB0aGlzLiNvfXNldCBtaW1lVHlwZShvZSl7dGhpcy4jbz1vZX0jbj0oZ3ModGhpcyxFKSxncyh0aGlzLGssIiIpKTtnZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZmlsZW5hbWUob2Upe3RoaXMuI249b2V9I2w9KGdzKHRoaXMsUyksZ3ModGhpcyxQLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dUb29sYmFyKG9lKXt0aGlzLiNsPW9lfSNjPShncyh0aGlzLFIpLGdzKHRoaXMsViwhMCkpO2dldCBzaG93RmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgc2hvd0ZpbGVuYW1lKG9lKXt0aGlzLiNjPW9lfSNkPShncyh0aGlzLFcpLGdzKHRoaXMsQiwidW5rbm93biIpKTtnZXQgcmVzb2x2ZWRUeXBlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHJlc29sdmVkVHlwZShvZSl7dGhpcy4jZD1vZX0jdT0oZ3ModGhpcyxVKSxncyh0aGlzLEYsIiIpKTtnZXQgcmVzb2x2ZWRTcmMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcmVzb2x2ZWRTcmMob2Upe3RoaXMuI3U9b2V9I3A9KGdzKHRoaXMsaiksZ3ModGhpcyxsZSwiIikpO2dldCByZXNvbHZlZFRleHQoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcmVzb2x2ZWRUZXh0KG9lKXt0aGlzLiNwPW9lfSNoPShncyh0aGlzLFEpLGdzKHRoaXMsdGUsInRleHQiKSk7Z2V0IHJlc29sdmVkTGFuZygpe3JldHVybiB0aGlzLiNofXNldCByZXNvbHZlZExhbmcob2Upe3RoaXMuI2g9b2V9I2Y9KGdzKHRoaXMsZWUpLGdzKHRoaXMsWCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGxvYWRpbmcob2Upe3RoaXMuI2Y9b2V9I209KGdzKHRoaXMsWiksZ3ModGhpcyxxLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI219c2V0IGVycm9yKG9lKXt0aGlzLiNtPW9lfW9iamVjdFVybD0oZ3ModGhpcyxBKSwiIik7cmVuZGVyKCl7bGV0IG9lPXRoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8dGhpcy5nZXRGaWxlbmFtZUZyb21VcmwoKXx8IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWJhciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItZmlsZW5hbWUgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgZmxleDogMTsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItYmFkZ2UgewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSA+ICogewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWltYWdlLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGRmLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtdmlkZW8tdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1hdWRpby12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWRhdGF2aWV3LWNvZGVib3ggewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAudGV4dC12aWV3ZXIgewogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXIgZGVlcy1pY29uIHsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLWNvbnRhaW5lciBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuc2hvd0ZpbGVuYW1lJiZvZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJhciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImhlYWRlci1pY29uIiBpY29uPSIke0tYYVt0aGlzLnJlc29sdmVkVHlwZV19Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRlci1maWxlbmFtZSI+JHtvZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkZXItYmFkZ2UiPiR7dGhpcy5yZXNvbHZlZFR5cGV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1jb250YWluZXIiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFsZXJ0VHJpYW5nbGUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5yZW5kZXJDb250ZW50KCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJDb250ZW50KCl7c3dpdGNoKHRoaXMucmVzb2x2ZWRUeXBlKXtjYXNlImltYWdlIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7dGhpcy5zaG93VG9vbGJhcn0KICAgICAgICAgICAgYWx0PSIke3RoaXMuZmlsZW5hbWV8fCIifSIKICAgICAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgICAgIGA7Y2FzZSJwZGYiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgICAgICAucGRmVXJsPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7dGhpcy5zaG93VG9vbGJhcn0KICAgICAgICAgICAgaW5pdGlhbFpvb209InBhZ2UtZml0IgogICAgICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgICAgIGA7Y2FzZSJhdWRpbyI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC50aXRsZT0ke3RoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgICAgICBgO2Nhc2UidmlkZW8iOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICAgICAgYDtjYXNlImNvZGUiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveAogICAgICAgICAgICAucHJvZ0xhbmc9JHt0aGlzLnJlc29sdmVkTGFuZ30KICAgICAgICAgICAgLmNvZGVUb0Rpc3BsYXk9JHt0aGlzLnJlc29sdmVkVGV4dH0KICAgICAgICAgID48L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgICAgICBgO2Nhc2UidGV4dCI6cmV0dXJuIHdgPHByZSBjbGFzcz0idGV4dC12aWV3ZXIiPiR7dGhpcy5yZXNvbHZlZFRleHR9PC9wcmU+YDtkZWZhdWx0OnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGaWxlUXVlc3Rpb24iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYH19YXN5bmMgdXBkYXRlZChvZSl7c3VwZXIudXBkYXRlZChvZSksWyJ1cmwiLCJmaWxlIiwiYmFzZTY0IiwidGV4dENvbnRlbnQiLCJjb250ZW50VHlwZSIsImxhbmd1YWdlIiwibWltZVR5cGUiLCJmaWxlbmFtZSJdLnNvbWUoUmU9Pm9lLmhhcyhSZSkpJiZhd2FpdCB0aGlzLnJlc29sdmVDb250ZW50KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmV2b2tlT2JqZWN0VXJsKCl9YXN5bmMgcmVzb2x2ZUNvbnRlbnQoKXt0aGlzLmVycm9yPSIiLHRoaXMucmV2b2tlT2JqZWN0VXJsKCksdGhpcy5yZXNvbHZlZFR5cGU9dGhpcy5kZXRlY3RUeXBlKCk7dHJ5e2lmKHRoaXMudXJsKXtpZih0aGlzLnJlc29sdmVkU3JjPXRoaXMudXJsLHRoaXMucmVzb2x2ZWRUeXBlPT09ImNvZGUifHx0aGlzLnJlc29sdmVkVHlwZT09PSJ0ZXh0IilpZih0aGlzLnRleHRDb250ZW50KXRoaXMucmVzb2x2ZWRUZXh0PXRoaXMudGV4dENvbnRlbnQ7ZWxzZXt0aGlzLmxvYWRpbmc9ITA7bGV0IG9lPWF3YWl0IGZldGNoKHRoaXMudXJsKTt0aGlzLnJlc29sdmVkVGV4dD1hd2FpdCBvZS50ZXh0KCksdGhpcy5sb2FkaW5nPSExfX1lbHNlIGlmKHRoaXMuZmlsZSl0aGlzLm9iamVjdFVybD1VUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMuZmlsZSksdGhpcy5yZXNvbHZlZFNyYz10aGlzLm9iamVjdFVybCwodGhpcy5yZXNvbHZlZFR5cGU9PT0iY29kZSJ8fHRoaXMucmVzb2x2ZWRUeXBlPT09InRleHQiKSYmKHRoaXMubG9hZGluZz0hMCx0aGlzLnJlc29sdmVkVGV4dD1hd2FpdCB0aGlzLmZpbGUudGV4dCgpLHRoaXMubG9hZGluZz0hMSk7ZWxzZSBpZih0aGlzLmJhc2U2NCl7bGV0IG9lPXRoaXMubWltZVR5cGV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iO3RoaXMucmVzb2x2ZWRTcmM9YGRhdGE6JHtvZX07YmFzZTY0LCR7dGhpcy5iYXNlNjR9YH1lbHNlIHRoaXMudGV4dENvbnRlbnQmJih0aGlzLnJlc29sdmVkVGV4dD10aGlzLnRleHRDb250ZW50KX1jYXRjaHt0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBjb250ZW50Iix0aGlzLmxvYWRpbmc9ITF9dGhpcy5yZXNvbHZlZExhbmc9dGhpcy5yZXNvbHZlTGFuZ3VhZ2UoKX1kZXRlY3RUeXBlKCl7aWYodGhpcy5jb250ZW50VHlwZSlyZXR1cm4gdGhpcy5jb250ZW50VHlwZTtsZXQgb2U9dGhpcy5taW1lVHlwZXx8dGhpcy5maWxlPy50eXBlfHwiIjtpZihvZSl7aWYob2U9PT0iYXBwbGljYXRpb24vcGRmIilyZXR1cm4icGRmIjtmb3IobGV0W1RlLFJlXW9mIE9iamVjdC5lbnRyaWVzKFdYYSkpaWYob2Uuc3RhcnRzV2l0aChUZSkpcmV0dXJuIFJlO2lmKG9lLnN0YXJ0c1dpdGgoInRleHQvIikpcmV0dXJuInRleHQifWxldCBhZT10aGlzLmdldEV4dGVuc2lvbigpO3JldHVybiBhZSYmRzVhW2FlXT9HNWFbYWVdOnRoaXMudGV4dENvbnRlbnQ/dGhpcy5sYW5ndWFnZT8iY29kZSI6InRleHQiOiJ1bmtub3duIn1nZXRFeHRlbnNpb24oKXtsZXQgb2U9dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHwiIjtpZihvZSl7bGV0IGFlPW9lLnNwbGl0KCIuIik7aWYoYWUubGVuZ3RoPjEpcmV0dXJuIGFlLnBvcCgpLnRvTG93ZXJDYXNlKCl9aWYodGhpcy51cmwpdHJ5e2xldCBUZT1uZXcgVVJMKHRoaXMudXJsLCJodHRwczovL3BsYWNlaG9sZGVyLmNvbSIpLnBhdGhuYW1lLnNwbGl0KCIuIik7aWYoVGUubGVuZ3RoPjEpcmV0dXJuIFRlLnBvcCgpLnRvTG93ZXJDYXNlKCl9Y2F0Y2h7fXJldHVybiIifWdldEZpbGVuYW1lRnJvbVVybCgpe2lmKCF0aGlzLnVybClyZXR1cm4iIjt0cnl7cmV0dXJuIG5ldyBVUkwodGhpcy51cmwsImh0dHBzOi8vcGxhY2Vob2xkZXIuY29tIikucGF0aG5hbWUuc3BsaXQoIi8iKS5wb3AoKXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fXJlc29sdmVMYW5ndWFnZSgpe2lmKHRoaXMubGFuZ3VhZ2UpcmV0dXJuIHRoaXMubGFuZ3VhZ2U7bGV0IG9lPXRoaXMuZ2V0RXh0ZW5zaW9uKCk7cmV0dXJuIEdYYVtvZV18fCJ0ZXh0In1yZXZva2VPYmplY3RVcmwoKXt0aGlzLm9iamVjdFVybCYmKFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5vYmplY3RVcmwpLHRoaXMub2JqZWN0VXJsPSIiKX1zdGF0aWN7Z3MoYSx0KX19O3JldHVybiBzZT1hfSkoKX0pO3ZhciBaNWE9ZygoKT0+e1k1YSgpfSk7dmFyIHN4LGlydD1nKCgpPT57c3g9Y2xhc3N7c3RhdGlje2kodGhpcywiQ2FudmFzUG9vbCIpfXN0YXRpYyBwb29sPVtdO3N0YXRpYyBtYXhQb29sU2l6ZT0yMDtzdGF0aWMgTUlOX0NBTlZBU19TSVpFPTI1NjtzdGF0aWMgTUFYX0NBTlZBU19TSVpFPTQwOTY7c3RhdGljIGFjcXVpcmUoZSx0KXtsZXQgYT10aGlzLnBvb2wuZmluZChsPT4hbC5pblVzZSYmbC5jYW52YXMud2lkdGg+PWUmJmwuY2FudmFzLmhlaWdodD49dCYmbC5jYW52YXMud2lkdGg8PWUqMS41JiZsLmNhbnZhcy5oZWlnaHQ8PXQqMS41KTtpZihhKXJldHVybiBhLmluVXNlPSEwLGEubGFzdFVzZWQ9RGF0ZS5ub3coKSxhLmNhbnZhcy53aWR0aD1lLGEuY2FudmFzLmhlaWdodD10LGEuY3R4LmNsZWFyUmVjdCgwLDAsZSx0KSxhO2lmKHRoaXMucG9vbC5sZW5ndGg8dGhpcy5tYXhQb29sU2l6ZSl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikscD1sLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITAsZGVzeW5jaHJvbml6ZWQ6ITB9KTtsLndpZHRoPU1hdGgubWluKE1hdGgubWF4KGUsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKSxsLmhlaWdodD1NYXRoLm1pbihNYXRoLm1heCh0LHRoaXMuTUlOX0NBTlZBU19TSVpFKSx0aGlzLk1BWF9DQU5WQVNfU0laRSk7bGV0IGQ9e2NhbnZhczpsLGN0eDpwLGluVXNlOiEwLGxhc3RVc2VkOkRhdGUubm93KCl9O3JldHVybiB0aGlzLnBvb2wucHVzaChkKSxkfWxldCByPXRoaXMucG9vbC5maWx0ZXIobD0+IWwuaW5Vc2UpLnNvcnQoKGwscCk9PmwubGFzdFVzZWQtcC5sYXN0VXNlZClbMF07aWYocilyZXR1cm4gci5jYW52YXMud2lkdGg9ZSxyLmNhbnZhcy5oZWlnaHQ9dCxyLmN0eC5jbGVhclJlY3QoMCwwLGUsdCksci5pblVzZT0hMCxyLmxhc3RVc2VkPURhdGUubm93KCkscjtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxvPW4uZ2V0Q29udGV4dCgiMmQiKTtyZXR1cm4gbi53aWR0aD1lLG4uaGVpZ2h0PXQse2NhbnZhczpuLGN0eDpvLGluVXNlOiEwLGxhc3RVc2VkOkRhdGUubm93KCl9fXN0YXRpYyByZWxlYXNlKGUpe3RoaXMucG9vbC5pbmNsdWRlcyhlKSYmKGUuaW5Vc2U9ITEsZS5jdHguY2xlYXJSZWN0KDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpKX1zdGF0aWMgcmVsZWFzZUFsbCgpe2ZvcihsZXQgZSBvZiB0aGlzLnBvb2wpZS5pblVzZT0hMSxlLmN0eC5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCl9c3RhdGljIGRlc3Ryb3koKXtmb3IobGV0IGUgb2YgdGhpcy5wb29sKWUuY2FudmFzLndpZHRoPTAsZS5jYW52YXMuaGVpZ2h0PTA7dGhpcy5wb29sPVtdfXN0YXRpYyBnZXRTdGF0cygpe3JldHVybntwb29sU2l6ZTp0aGlzLnBvb2wubGVuZ3RoLG1heFBvb2xTaXplOnRoaXMubWF4UG9vbFNpemUsaW5Vc2U6dGhpcy5wb29sLmZpbHRlcihlPT5lLmluVXNlKS5sZW5ndGgsYXZhaWxhYmxlOnRoaXMucG9vbC5maWx0ZXIoZT0+IWUuaW5Vc2UpLmxlbmd0aH19c3RhdGljIGFkanVzdFBvb2xTaXplKGUpe2lmKGU8dGhpcy5wb29sLmxlbmd0aCl7bGV0IHQ9dGhpcy5wb29sLmxlbmd0aC1lLGE9dGhpcy5wb29sLmZpbHRlcihyPT4hci5pblVzZSkuc2xpY2UoMCx0KTtmb3IobGV0IHIgb2YgYSl7bGV0IG49dGhpcy5wb29sLmluZGV4T2Yocik7bj4tMSYmdGhpcy5wb29sLnNwbGljZShuLDEpfX10aGlzLm1heFBvb2xTaXplPWV9fX0pO2Z1bmN0aW9uIFlYYShzLGUpe2xldCB0O3JldHVybiBpKGZ1bmN0aW9uKC4uLnIpe2xldCBuPWkoKCk9PntjbGVhclRpbWVvdXQodCkscyguLi5yKX0sImxhdGVyIik7Y2xlYXJUaW1lb3V0KHQpLHQ9d2luZG93LnNldFRpbWVvdXQobixlKX0sImV4ZWN1dGVkRnVuY3Rpb24iKX1mdW5jdGlvbiBaWGEocyxlKXtsZXQgdDtyZXR1cm4oLi4uYSk9Pnt0fHwocyguLi5hKSx0PSEwLHNldFRpbWVvdXQoKCk9PnQ9ITEsZSkpfX1mdW5jdGlvbiBycnQocyl7aWYocz09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBlPTEwMjQsdD1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0sYT1NYXRoLmZsb29yKE1hdGgubG9nKHMpL01hdGgubG9nKGUpKTtyZXR1cm4gTWF0aC5yb3VuZChzL01hdGgucG93KGUsYSkqMTAwKS8xMDArIiAiK3RbYV19ZnVuY3Rpb24gWFhhKHMsZT0wKXtsZXQgdD1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LnRvcD49LWUmJnQubGVmdD49LWUmJnQuYm90dG9tPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KStlJiZ0LnJpZ2h0PD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkrZX12YXIgaXgsb3J0PWcoKCk9PntpKFlYYSwiZGVib3VuY2UiKTtpKFpYYSwidGhyb3R0bGUiKTtpKHJydCwiZm9ybWF0RmlsZVNpemUiKTtpKFhYYSwiaXNJblZpZXdwb3J0Iik7aXg9Y2xhc3N7c3RhdGlje2kodGhpcywiUGVyZm9ybWFuY2VNb25pdG9yIil9c3RhdGljIG1hcmtzPW5ldyBNYXA7c3RhdGljIG1lYXN1cmVzPVtdO3N0YXRpYyBtYXJrKGUpe3RoaXMubWFya3Muc2V0KGUscGVyZm9ybWFuY2Uubm93KCkpfXN0YXRpYyBtZWFzdXJlKGUsdCl7bGV0IGE9dGhpcy5tYXJrcy5nZXQodCk7aWYoYSl7bGV0IHI9cGVyZm9ybWFuY2Uubm93KCktYTtyZXR1cm4gdGhpcy5tZWFzdXJlcy5wdXNoKHtuYW1lOmUsZHVyYXRpb246cn0pLHRoaXMubWFya3MuZGVsZXRlKHQpLHJ9cmV0dXJuIDB9c3RhdGljIGdldFJlcG9ydCgpe2xldCBlPXttZWFzdXJlczpbLi4udGhpcy5tZWFzdXJlc10sYXZlcmFnZXM6e319LHQ9bmV3IE1hcDtmb3IobGV0IGEgb2YgdGhpcy5tZWFzdXJlcyl0LmhhcyhhLm5hbWUpfHx0LnNldChhLm5hbWUsW10pLHQuZ2V0KGEubmFtZSkucHVzaChhLmR1cmF0aW9uKTtmb3IobGV0W2Escl1vZiB0KWUuYXZlcmFnZXNbYV09ci5yZWR1Y2UoKG4sbyk9Pm4rbywwKS9yLmxlbmd0aDtyZXR1cm4gZX1zdGF0aWMgY2xlYXIoKXt0aGlzLm1hcmtzLmNsZWFyKCksdGhpcy5tZWFzdXJlcz1bXX19fSk7dmFyIFg1YT1nKCgpPT57aXJ0KCk7cjFlKCk7b3J0KCl9KTt2YXIgUTVhPWcoKCk9PntzcnQoKX0pO3ZhciBwbixrdT1nKCgpPT57cGUoKTtwbj1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBoZWlnaHQ6IDI2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4yNCkiKX07CgogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGUgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciB7CiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAudGlsZS1vdmVybGF5IHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAudGlsZS1jb250ZW50IHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIHotaW5kZXg6IDIwOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSBzcGFuIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtaW5mby1iYXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlIC8gMC45NSkiLCJoc2woMjE1IDIwJSAxMiUgLyAwLjk1KSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA2cHg7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgICB6LWluZGV4OiAyNTsKICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIH0KCiAgICAuaW5mby1sYWJlbCB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmluZm8tc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgIH0KCiAgICAuaW5mby1kZXRhaWwgewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcsCiAgICAudGlsZS1lcnJvciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTklKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICB9CgogICAgLnRpbGUtZXJyb3IgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDk4JSkiLCJoc2woMCA2MiUgMjAlKSIpfTsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgNDAlKSIsImhzbCgwIDcwJSA2OCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIH0KCiAgICAudGlsZS1zcGlubmVyIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmctdGV4dCwKICAgIC50aWxlLWVycm9yLXRleHQgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAvKiBTaXplIHZhcmlhbnRzICovCiAgICA6aG9zdChbc2l6ZT0ic21hbGwiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDE1MHB4OwogICAgICBoZWlnaHQ6IDE5NXB4OwogICAgfQoKICAgIDpob3N0KFtzaXplPSJsYXJnZSJdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWR0aDogMjUwcHg7CiAgICAgIGhlaWdodDogMzI1cHg7CiAgICB9CgogICAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgICA6aG9zdChbZ3JpZC1tb2RlXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICB9CiAgYF19KTt2YXIgdFEsS2QsSG4sWmg9ZygoKT0+e3BlKCk7a3UoKTtVYSgpO3RRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLZD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSG49KCgpPT57bGV0IHM9d2UsZSx0PVtdLGE9W10scixuPVtdLG89W10sbCxwPVtdLGQ9W10sdSxjPVtdLGI9W10sdix4PVtdLG09W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsQmFzZSIpfXN0YXRpY3tsZXQgeT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtMKHt0eXBlOkJvb2xlYW59KV0scj1bTCh7dHlwZTpCb29sZWFufSldLGw9W0woe3R5cGU6Qm9vbGVhbn0pXSx1PVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHY9W0woe3R5cGU6U3RyaW5nfSldLHRRKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2xpY2thYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJjbGlja2FibGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5jbGlja2FibGUsImdldCIpLHNldDppKChNLHopPT57TS5jbGlja2FibGU9en0sInNldCIpfSxtZXRhZGF0YTp5fSx0LGEpLHRRKHRoaXMsbnVsbCxyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ibG9hZGluZyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmxvYWRpbmcsImdldCIpLHNldDppKChNLHopPT57TS5sb2FkaW5nPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0sbixvKSx0USh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJlcnJvciJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmVycm9yLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00uZXJyb3I9en0sInNldCIpfSxtZXRhZGF0YTp5fSxwLGQpLHRRKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic2l6ZSJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnNpemUsImdldCIpLHNldDppKChNLHopPT57TS5zaXplPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0sYyxiKSx0USh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJsYWJlbCJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmxhYmVsLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00ubGFiZWw9en0sInNldCIpfSxtZXRhZGF0YTp5fSx4LG0pLHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eX0pfXN0YXRpYyBzdHlsZXM9cG47I2U9S2QodGhpcyx0LCEwKTtnZXQgY2xpY2thYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNsaWNrYWJsZSh5KXt0aGlzLiNlPXl9I3Q9KEtkKHRoaXMsYSksS2QodGhpcyxuLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9hZGluZyh5KXt0aGlzLiN0PXl9I2E9KEtkKHRoaXMsbyksS2QodGhpcyxwLCExKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVycm9yKHkpe3RoaXMuI2E9eX0jcz0oS2QodGhpcyxkKSxLZCh0aGlzLGMsImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2l6ZSh5KXt0aGlzLiNzPXl9I2k9KEtkKHRoaXMsYiksS2QodGhpcyx4LCIiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKHkpe3RoaXMuI2k9eX1vYnNlcnZlcj1LZCh0aGlzLG0pO192aXNpYmxlPSExO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy5fdmlzaWJsZX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0aWxlLWNvbnRhaW5lciAke3RoaXMuY2xpY2thYmxlPyJjbGlja2FibGUiOiIifSAke3RoaXMubG9hZGluZz8ibG9hZGluZyI6IiJ9ICR7dGhpcy5lcnJvcj8iZXJyb3IiOiIifSIKICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVRpbGVDbGlja30KICAgICAgICBAbW91c2VlbnRlcj0ke3RoaXMub25UaWxlTW91c2VFbnRlcn0KICAgICAgICBAbW91c2VsZWF2ZT0ke3RoaXMub25UaWxlTW91c2VMZWF2ZX0KICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5vblRpbGVNb3VzZU1vdmV9CiAgICAgID4KICAgICAgICAke3RoaXMubG9hZGluZz93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1sb2FkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1sb2FkaW5nLXRleHQiPkxvYWRpbmcuLi48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1lcnJvciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFsZXJ0VHJpYW5nbGUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWVycm9yLXRleHQiPkZhaWxlZCB0byBsb2FkPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAkeyF0aGlzLmxvYWRpbmcmJiF0aGlzLmVycm9yP3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoKToiIn0KCiAgICAgICAgJHt0aGlzLnJlbmRlckJvdHRvbUJhcigpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIiJ9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm9ic2VydmVyJiYodGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5vYnNlcnZlcj12b2lkIDApfXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLm9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih5PT57Zm9yKGxldCBNIG9mIHkpe2xldCB6PXRoaXMuX3Zpc2libGU7dGhpcy5fdmlzaWJsZT1NLmlzSW50ZXJzZWN0aW5nLHRoaXMuX3Zpc2libGUmJiF6JiZ0aGlzLm9uQmVjYW1lVmlzaWJsZSgpfX0se3Jvb3Q6bnVsbCxyb290TWFyZ2luOiIyMDBweCIsdGhyZXNob2xkOi4wMX0pLHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKX1vbkJlY2FtZVZpc2libGUoKXt9b25UaWxlTW91c2VFbnRlcigpe31vblRpbGVNb3VzZUxlYXZlKCl7fW9uVGlsZU1vdXNlTW92ZSh5KXt9aGFuZGxlVGlsZUNsaWNrKCl7dGhpcy5jbGlja2FibGUmJnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRpbGUtY2xpY2siLHtkZXRhaWw6dGhpcy5nZXRUaWxlQ2xpY2tEZXRhaWwoKSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybnt9fX19KSgpfSk7dmFyIEo1YT1nKCgpPT57WmgoKTtrdSgpfSk7dmFyIGU4YSx0OGE9ZygoKT0+e3BlKCk7ZThhPUpgCiAgLnByZXZpZXctc3RhY2sgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBwYWRkaW5nOiA4cHggOHB4IDI4cHggOHB4OwogIH0KCiAgLnByZXZpZXctc3RhY2subm9uLWE0IHsKICAgIHBhZGRpbmc6IDEycHggMTJweCAyOHB4IDEycHg7CiAgfQoKICAucHJldmlldy1jYW52YXMgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogYXV0bzsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogIH0KCiAgLm5vbi1hNCAucHJldmlldy1jYW52YXMgewogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyNCUpIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogIH0KCiAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgOmhvc3QoW2dyaWQtbW9kZV0pIC5wcmV2aWV3LWNhbnZhcyB7CiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogIH0KYH0pO3ZhciBhOGEsczhhPWcoKCk9PntwZSgpO2E4YT1pKCgpPT57bGV0IHM9WyJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiLCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiXSxlPWkodD0+e2xldCBhPVtdO2ZvcihsZXQgcj0wO3I8dDtyKyspe2xldCBuPXNbciVzLmxlbmd0aF07YS5wdXNoKHdgCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgcGRmVXJsPSIke259IgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgZ3JpZC1tb2RlCiAgICAgICAgICBAdGlsZS1jbGljaz0ke289Pntjb25zb2xlLmxvZygiUERGIFRpbGUgY2xpY2tlZDoiLG8uZGV0YWlsKSxhbGVydChgUERGIGNsaWNrZWQ6ICR7by5kZXRhaWwucGFnZUNvdW50fSBwYWdlc2ApfX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIGApfXJldHVybiBhfSwiZ2VuZXJhdGVHcmlkSXRlbXMiKTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjVmNWY1IiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAucHJldmlldy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpbmdsZSBQREYgVGlsZTwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkRpZmZlcmVudCBTaXplczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+U21hbGw6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5EZWZhdWx0OjwvZGl2PgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5MYXJnZTo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aCBMYWJlbDwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICBsYWJlbD0iUmVzZWFyY2ggUGFwZXIucGRmIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob24tQ2xpY2thYmxlPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0iZmFsc2UiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkdyaWQgLSAyMCBQREZzIHdpdGggTGF6eSBMb2FkaW5nPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWdyaWQiPgogICAgICAgICAgJHtlKDIwKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtbyIpfSk7dmFyIFhoLHFuLGk4YSxyOGE9ZygoKT0+e3BlKCk7WmgoKTtrdSgpO3IxZSgpO2lydCgpO29ydCgpO3Q4YSgpO3M4YSgpO1hoPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxxbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0saThhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aHVtYm5haWwtcGRmIildLGUsdD1bXSxhLHI9SG4sbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxQZGYiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPPVtZKCldLFhoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJwZGZVcmwiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5wZGZVcmwsImdldCIpLHNldDppKChTLEkpPT57Uy5wZGZVcmw9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLFhoKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZXZpZXdQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXJyZW50UHJldmlld1BhZ2UiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jdXJyZW50UHJldmlld1BhZ2UsImdldCIpLHNldDppKChTLEkpPT57Uy5jdXJyZW50UHJldmlld1BhZ2U9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLFhoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJwYWdlQ291bnQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5wYWdlQ291bnQsImdldCIpLHNldDppKChTLEkpPT57Uy5wYWdlQ291bnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLFhoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuZGVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InJlbmRlcmVkImluIFMsImhhcyIpLGdldDppKFM9PlMucmVuZGVyZWQsImdldCIpLHNldDppKChTLEkpPT57Uy5yZW5kZXJlZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksWGgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpc0hvdmVyaW5nImluIFMsImhhcyIpLGdldDppKFM9PlMuaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmlzSG92ZXJpbmc9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLFhoKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNBNEZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNBNEZvcm1hdCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzQTRGb3JtYXQsImdldCIpLHNldDppKChTLEkpPT57Uy5pc0E0Rm9ybWF0PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxYaCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJmaWxlU2l6ZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZmlsZVNpemU9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLFhoKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89YThhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPVsuLi5wbixlOGFdOyNlPXFuKHRoaXMsbywiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoayl7dGhpcy4jZT1rfSN0PShxbih0aGlzLGwpLHFuKHRoaXMsZCwxKSk7Z2V0IGN1cnJlbnRQcmV2aWV3UGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBjdXJyZW50UHJldmlld1BhZ2Uoayl7dGhpcy4jdD1rfSNhPShxbih0aGlzLHUpLHFuKHRoaXMsYiwwKSk7Z2V0IHBhZ2VDb3VudCgpe3JldHVybiB0aGlzLiNhfXNldCBwYWdlQ291bnQoayl7dGhpcy4jYT1rfSNzPShxbih0aGlzLHYpLHFuKHRoaXMsbSwhMSkpO2dldCByZW5kZXJlZCgpe3JldHVybiB0aGlzLiNzfXNldCByZW5kZXJlZChrKXt0aGlzLiNzPWt9I2k9KHFuKHRoaXMsZikscW4odGhpcyxNLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIb3ZlcmluZyhrKXt0aGlzLiNpPWt9I3I9KHFuKHRoaXMseikscW4odGhpcyxDLCEwKSk7Z2V0IGlzQTRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNBNEZvcm1hdChrKXt0aGlzLiNyPWt9I289KHFuKHRoaXMsXykscW4odGhpcywkLDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgZmlsZVNpemUoayl7dGhpcy4jbz1rfXJlbmRlclBhZ2VzVGFzaz0ocW4odGhpcyxFKSxudWxsKTtyZW5kZXJQYWdlc1F1ZXVlZD0hMTtwZGZEb2N1bWVudDtjYW52YXNlcz1bXTtyZXNpemVPYnNlcnZlcjtzdGFja0VsZW1lbnQ9bnVsbDtsb2FkZWRQZGZVcmw9bnVsbDtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXN0YWNrICR7dGhpcy5pc0E0Rm9ybWF0PyIiOiJub24tYTQifSI+CiAgICAgICAgPGNhbnZhcwogICAgICAgICAgY2xhc3M9InByZXZpZXctY2FudmFzIgogICAgICAgICAgZGF0YS1wYWdlPSIke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfSIKICAgICAgICA+PC9jYW52YXM+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBQREY8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLnBhZ2VDb3VudCYmIXRoaXMubGFiZWw/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLnBhZ2VDb3VudD4xJiZ0aGlzLmlzSG92ZXJpbmc/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9LyR7dGhpcy5wYWdlQ291bnR9PC9zcGFuPmA6dGhpcy5wYWdlQ291bnQ+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLnBhZ2VDb3VudH0gcGc8L3NwYW4+YDoiIn0KICAgICAgICAke3RoaXMuZmlsZVNpemU+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHtycnQodGhpcy5maWxlU2l6ZSl9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57cGRmVXJsOnRoaXMucGRmVXJsLHBhZ2VDb3VudDp0aGlzLnBhZ2VDb3VudH19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMucmVuZGVyZWQmJnRoaXMucGRmVXJsJiZ0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlIT09MSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfW9uVGlsZU1vdXNlTW92ZShrKXtpZighdGhpcy5pc0hvdmVyaW5nfHx0aGlzLnBhZ2VDb3VudDw9MSlyZXR1cm47bGV0IFM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJPWsuY2xpZW50WC1TLmxlZnQsUD1TLndpZHRoLFI9TWF0aC5tYXgoMCxNYXRoLm1pbigxLEkvUCkpLEs9TWF0aC5jZWlsKFIqdGhpcy5wYWdlQ291bnQpfHwxO0shPT10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPUssdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLHRoaXMuc2V0dXBSZXNpemVPYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9YXN5bmMgbG9hZEFuZFJlbmRlclByZXZpZXcoKXtpZighKHRoaXMucmVuZGVyZWR8fHRoaXMubG9hZGluZykpe3RoaXMubG9hZGluZz0hMCx0aGlzLmVycm9yPSExLGl4Lm1hcmsoYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO3RyeXt0aGlzLnBkZkRvY3VtZW50PWF3YWl0IEdkLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksdGhpcy5wYWdlQ291bnQ9dGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcyx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xO3RyeXtsZXQgUz1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERvd25sb2FkSW5mbygpO3RoaXMuZmlsZVNpemU9Uy5sZW5ndGh9Y2F0Y2h7fXRoaXMubG9hZGVkUGRmVXJsPXRoaXMucGRmVXJsLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLGF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpLHRoaXMucmVuZGVyZWQ9ITA7bGV0IGs9aXgubWVhc3VyZShgcHJldmlldy1yZW5kZXItJHt0aGlzLnBkZlVybH1gLGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTtjb25zb2xlLmxvZyhgUERGIHRpbGUgcmVuZGVyZWQgaW4gJHtrfW1zYCl9Y2F0Y2goayl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgUERGIHRpbGU6IixrKSx0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX19fXNjaGVkdWxlUmVuZGVyUGFnZXMoKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudD90aGlzLnJlbmRlclBhZ2VzVGFzaz8odGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMCx0aGlzLnJlbmRlclBhZ2VzVGFzayk6KHRoaXMucmVuZGVyUGFnZXNUYXNrPShhc3luYygpPT57dHJ5e2F3YWl0IHRoaXMucGVyZm9ybVJlbmRlclBhZ2VzKCl9Y2F0Y2goayl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmRlciBQREYgdGlsZSBwYWdlczoiLGspfX0pKCkuZmluYWxseSgoKT0+e3RoaXMucmVuZGVyUGFnZXNUYXNrPW51bGwsdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZCYmKHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfSksdGhpcy5yZW5kZXJQYWdlc1Rhc2spOlByb21pc2UucmVzb2x2ZSgpfWFzeW5jIHBlcmZvcm1SZW5kZXJQYWdlcygpe2lmKCF0aGlzLnBkZkRvY3VtZW50KXJldHVybjthd2FpdCBuZXcgUHJvbWlzZShQPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUCkpO2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctY2FudmFzIik7aWYoIWspcmV0dXJuO3RoaXMuY2xlYXJDYW52YXNlcygpLHRoaXMuY2FjaGVFbGVtZW50cygpO2xldHthdmFpbGFibGVXaWR0aDpTLGF2YWlsYWJsZUhlaWdodDpJfT10aGlzLmdldEF2YWlsYWJsZVNpemUoKTt0cnl7bGV0IFA9dGhpcy5jdXJyZW50UHJldmlld1BhZ2UsUj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoUCksSz1SLmdldFZpZXdwb3J0KHtzY2FsZToxfSksVj1LLmhlaWdodC9LLndpZHRoLFc9MS40MTQsbWU9LjcwNyxCPTEuMjk0LFU9Ljc3MyxoZT0uMDUsRj1NYXRoLmFicyhWLVcpPFcqaGUsaj1NYXRoLmFicyhWLW1lKTxtZSpoZSx1ZT1NYXRoLmFicyhWLUIpPEIqaGUsbGU9TWF0aC5hYnMoVi1VKTxVKmhlO3RoaXMuaXNBNEZvcm1hdD1GfHxqfHx1ZXx8bGU7bGV0IFE9dGhpcy5pc0E0Rm9ybWF0P1M6Uy0yNCxpZT10aGlzLmlzQTRGb3JtYXQ/STpJLTI0LHRlPVE+MD9RL0sud2lkdGg6MCxlZT1pZT4wP2llL0suaGVpZ2h0OjAsa2U9TWF0aC5taW4odGV8fC41LGVlfHx0ZXx8LjUpLFg9TWF0aC5taW4oa2UqMiwzKTtpZighTnVtYmVyLmlzRmluaXRlKFgpfHxYPD0wKXtSLmNsZWFudXA/LigpO3JldHVybn1sZXQgWj1SLmdldFZpZXdwb3J0KHtzY2FsZTpYfSkseWU9c3guYWNxdWlyZShaLndpZHRoLFouaGVpZ2h0KTt0aGlzLmNhbnZhc2VzLnB1c2goeWUpO2xldCBxPXtjYW52YXNDb250ZXh0OnllLmN0eCx2aWV3cG9ydDpafTthd2FpdCBSLnJlbmRlcihxKS5wcm9taXNlLGsud2lkdGg9Wi53aWR0aCxrLmhlaWdodD1aLmhlaWdodDtsZXQgQT1RLHNlPVouaGVpZ2h0L1oud2lkdGgqUTtpZihzZT5pZSl7bGV0IGFlPWllLFRlPVoud2lkdGgvWi5oZWlnaHQqaWU7ay5zdHlsZS53aWR0aD1gJHtUZX1weGAsay5zdHlsZS5oZWlnaHQ9YCR7YWV9cHhgfWVsc2Ugay5zdHlsZS53aWR0aD1gJHtBfXB4YCxrLnN0eWxlLmhlaWdodD1gJHtzZX1weGA7bGV0IG9lPWsuZ2V0Q29udGV4dCgiMmQiKTtvZSYmKG9lLmltYWdlU21vb3RoaW5nRW5hYmxlZD0hMCxvZS5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLG9lLmRyYXdJbWFnZSh5ZS5jYW52YXMsMCwwKSksUi5jbGVhbnVwKCl9Y2F0Y2goUCl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHJlbmRlciBwYWdlICR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9OmAsUCl9fWNsZWFyQ2FudmFzZXMoKXtmb3IobGV0IGsgb2YgdGhpcy5jYW52YXNlcylzeC5yZWxlYXNlKGspO3RoaXMuY2FudmFzZXM9W119Y2xlYW51cCgpe3RoaXMuY2xlYXJDYW52YXNlcygpLHRoaXMucGRmRG9jdW1lbnQmJihHZC5yZWxlYXNlRG9jdW1lbnQodGhpcy5sb2FkZWRQZGZVcmw/P3RoaXMucGRmVXJsKSx0aGlzLnBkZkRvY3VtZW50PW51bGwpLHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITEsdGhpcy5wYWdlQ291bnQ9MCx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xLHRoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLmlzQTRGb3JtYXQ9ITAsdGhpcy5zdGFja0VsZW1lbnQ9bnVsbCx0aGlzLmxvYWRlZFBkZlVybD1udWxsLHRoaXMucmVuZGVyZWQ9ITEsdGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9ITF9YXN5bmMgdXBkYXRlZChrKXtpZihzdXBlci51cGRhdGVkKGspLGsuaGFzKCJwZGZVcmwiKSYmdGhpcy5wZGZVcmwpe2xldCBTPWsuZ2V0KCJwZGZVcmwiKTtTJiZHZC5yZWxlYXNlRG9jdW1lbnQoUyksdGhpcy5jbGVhbnVwKCksdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xO2xldCBJPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7SS50b3A8d2luZG93LmlubmVySGVpZ2h0JiZJLmJvdHRvbT4wJiZ0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCl9ay5oYXMoImN1cnJlbnRQcmV2aWV3UGFnZSIpJiZ0aGlzLnJlbmRlcmVkJiZhd2FpdCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IGs9W107cmV0dXJuIHRoaXMuY2xpY2thYmxlJiYoay5wdXNoKHtuYW1lOiJWaWV3IFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpFeWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0sImFjdGlvbiIpfSksay5wdXNoKHtkaXZpZGVyOiEwfSkpLGsucHVzaCh7bmFtZToiT3BlbiBQREYgaW4gTmV3IFRhYiIsaWNvbk5hbWU6Imx1Y2lkZTpFeHRlcm5hbExpbmsiLGFjdGlvbjppKGFzeW5jKCk9Pnt3aW5kb3cub3Blbih0aGlzLnBkZlVybCwiX2JsYW5rIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDb3B5IFBERiBVUkwiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKX0sImFjdGlvbiIpfSx7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57bGV0IFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO1MuaHJlZj10aGlzLnBkZlVybCxTLmRvd25sb2FkPXRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLFMuY2xpY2soKX0sImFjdGlvbiIpfSksdGhpcy5wYWdlQ291bnQ+MCYmay5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZTpgJHt0aGlzLnBhZ2VDb3VudH0gcGFnZSR7dGhpcy5wYWdlQ291bnQ+MT8icyI6IiJ9YCxpY29uTmFtZToibHVjaWRlOkZpbGVUZXh0IixkaXNhYmxlZDohMCxhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIil9KSxrfWNhY2hlRWxlbWVudHMoKXt0aGlzLnN0YWNrRWxlbWVudHx8KHRoaXMuc3RhY2tFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctc3RhY2siKSl9c2V0dXBSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXJ8fCh0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMucmVuZGVyZWQmJnRoaXMucGRmRG9jdW1lbnQmJiF0aGlzLmxvYWRpbmcmJnRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpKX1nZXRBdmFpbGFibGVTaXplKCl7aWYodGhpcy5zdGFja0VsZW1lbnR8fCh0aGlzLnN0YWNrRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LXN0YWNrIikpLCF0aGlzLnN0YWNrRWxlbWVudClyZXR1cm57YXZhaWxhYmxlV2lkdGg6MjAwLGF2YWlsYWJsZUhlaWdodDoyNjB9O2xldCBrPXRoaXMuc3RhY2tFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFM9TWF0aC5tYXgoay53aWR0aCwwKXx8MjAwLEk9TWF0aC5tYXgoay5oZWlnaHQsMCl8fDI2MDtyZXR1cm57YXZhaWxhYmxlV2lkdGg6UyxhdmFpbGFibGVIZWlnaHQ6SX19c3RhdGlje3FuKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBvOGE9ZygoKT0+e3I4YSgpfSk7dmFyIG44YSxsOGE9ZygoKT0+e3BlKCk7bjhhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkltYWdlIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvODAwLzYwMCIKICAgICAgICAgIGFsdD0iTGFuZHNjYXBlIHBob3RvIgogICAgICAgICAgbGFiZWw9ImxhbmRzY2FwZS5qcGciCiAgICAgICAgICBAdGlsZS1jbGljaz0ke3M9PmNvbnNvbGUubG9nKCJJbWFnZSBjbGlja2VkOiIscy5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC80MDAiCiAgICAgICAgICBhbHQ9IlNxdWFyZSBwaG90byIKICAgICAgICAgIGxhYmVsPSJzcXVhcmUucG5nIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzMwMC85MDAiCiAgICAgICAgICBhbHQ9IlBvcnRyYWl0IHBob3RvIgogICAgICAgICAgbGFiZWw9InBvcnRyYWl0LndlYnAiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDAiCiAgICAgICAgICBhbHQ9IlNtYWxsIgogICAgICAgICAgbGFiZWw9InNtYWxsLmpwZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy82MDAvNDAwIgogICAgICAgICAgYWx0PSJEZWZhdWx0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQuanBnIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvMTIwMC84MDAiCiAgICAgICAgICBhbHQ9IkxhcmdlIgogICAgICAgICAgbGFiZWw9ImxhcmdlLmpwZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RXJyb3IgU3RhdGUgKGJyb2tlbiBVUkwpPC9oMz4KICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgc3JjPSJodHRwczovL2ludmFsaWQtdXJsLXRoYXQtZG9lcy1ub3QtZXhpc3QuZXhhbXBsZS9pbWFnZS5wbmciCiAgICAgICAgYWx0PSJCcm9rZW4iCiAgICAgICAgbGFiZWw9ImJyb2tlbi5wbmciCiAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciByeCx1MixjOGEsZDhhPWcoKCk9PntwZSgpO1poKCk7a3UoKTtsOGEoKTtyeD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sdTI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGM4YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLWltYWdlIildLGUsdD1bXSxhLHI9SG4sbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxJbWFnZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W1koKV0seD1bWSgpXSx5PVtZKCldLHJ4KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzcmMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zcmMsImdldCIpLHNldDppKChfLE8pPT57Xy5zcmM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHJ4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWx0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJhbHQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5hbHQsImdldCIpLHNldDppKChfLE8pPT57Xy5hbHQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLHJ4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VMb2FkZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImltYWdlTG9hZGVkImluIF8sImhhcyIpLGdldDppKF89Pl8uaW1hZ2VMb2FkZWQsImdldCIpLHNldDppKChfLE8pPT57Xy5pbWFnZUxvYWRlZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdikscngodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpbWFnZVdpZHRoImluIF8sImhhcyIpLGdldDppKF89Pl8uaW1hZ2VXaWR0aCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmltYWdlV2lkdGg9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLHJ4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImltYWdlSGVpZ2h0ImluIF8sImhhcyIpLGdldDppKF89Pl8uaW1hZ2VIZWlnaHQsImdldCIpLHNldDppKChfLE8pPT57Xy5pbWFnZUhlaWdodD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seikscngobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1uOGE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLnBuLEpgCiAgICAgIC5pbWFnZS13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoI2U4ZThlOCAwJSAyNSUsIHdoaXRlIDAlIDUwJSkgNTAlIC8gMTZweCAxNnB4IiwicmVwZWF0aW5nLWNvbmljLWdyYWRpZW50KGhzbCgyMTUgMjAlIDE4JSkgMCUgMjUlLCBoc2woMjE1IDIwJSAxNCUpIDAlIDUwJSkgNTAlIC8gMTZweCAxNnB4Iil9OwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLmltYWdlLXdyYXBwZXIgaW1nLmxvYWRlZCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmltYWdlLXdyYXBwZXIgaW1nLmxvYWRpbmcgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICBgXTsjZT11Mih0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKEMpe3RoaXMuI2U9Q30jdD0odTIodGhpcyxsKSx1Mih0aGlzLGQsIiIpKTtnZXQgYWx0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFsdChDKXt0aGlzLiN0PUN9I2E9KHUyKHRoaXMsdSksdTIodGhpcyxiLCExKSk7Z2V0IGltYWdlTG9hZGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGltYWdlTG9hZGVkKEMpe3RoaXMuI2E9Q30jcz0odTIodGhpcyx2KSx1Mih0aGlzLG0sMCkpO2dldCBpbWFnZVdpZHRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGltYWdlV2lkdGgoQyl7dGhpcy4jcz1DfSNpPSh1Mih0aGlzLGYpLHUyKHRoaXMsTSwwKSk7Z2V0IGltYWdlSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGltYWdlSGVpZ2h0KEMpe3RoaXMuI2k9Q31oYXNTdGFydGVkTG9hZGluZz0odTIodGhpcyx6KSwhMSk7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nP3dgCiAgICAgICAgICA8aW1nCiAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuaW1hZ2VMb2FkZWQ/ImxvYWRlZCI6ImxvYWRpbmcifSIKICAgICAgICAgICAgc3JjPSIke3RoaXMuc3JjfSIKICAgICAgICAgICAgYWx0PSIke3RoaXMuYWx0fSIKICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgQGVycm9yPSR7dGhpcy5oYW5kbGVJbWFnZUVycm9yfQogICAgICAgICAgLz4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RXllIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlZpZXcgSW1hZ2U8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLmxhYmVsJiYhKHRoaXMuaW1hZ2VXaWR0aD4wKT8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMuaW1hZ2VXaWR0aD4wJiZ0aGlzLmltYWdlSGVpZ2h0PjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5pbWFnZVdpZHRofSDDlyAke3RoaXMuaW1hZ2VIZWlnaHR9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLGFsdDp0aGlzLmFsdCx3aWR0aDp0aGlzLmltYWdlV2lkdGgsaGVpZ2h0OnRoaXMuaW1hZ2VIZWlnaHR9fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5sb2FkaW5nPSEwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1oYW5kbGVJbWFnZUxvYWQoQyl7bGV0IF89Qy50YXJnZXQ7dGhpcy5pbWFnZVdpZHRoPV8ubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VIZWlnaHQ9Xy5uYXR1cmFsSGVpZ2h0LHRoaXMuaW1hZ2VMb2FkZWQ9ITAsdGhpcy5sb2FkaW5nPSExfWhhbmRsZUltYWdlRXJyb3IoKXt0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX1hc3luYyB1cGRhdGVkKEMpe3N1cGVyLnVwZGF0ZWQoQyksQy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMuaW1hZ2VMb2FkZWQ9ITEsdGhpcy5sb2FkaW5nPSEwKX1zdGF0aWN7dTIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIHU4YT1nKCgpPT57ZDhhKCl9KTt2YXIgcDhhLGg4YT1nKCgpPT57cGUoKTtwOGE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICB9CiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIC50aWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QXVkaW8gVGlsZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDEiCiAgICAgICAgICBhcnRpc3Q9IlQuIFNjaHVlcmdlciIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTEubXAzIgogICAgICAgICAgQHRpbGUtY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiQXVkaW8gY2xpY2tlZDoiLHMuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMi5tcDMiCiAgICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDIiCiAgICAgICAgICBhcnRpc3Q9IlQuIFNjaHVlcmdlciIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTIubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMyIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTMubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iU21hbGwiCiAgICAgICAgICBsYWJlbD0ic21hbGwubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJEZWZhdWx0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkxhcmdlIgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIFFoLGpuLGY4YSxtOGE9ZygoKT0+e3BlKCk7WmgoKTtrdSgpO2g4YSgpO1FoPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxqbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZjhhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aHVtYm5haWwtYXVkaW8iKV0sZSx0PVtdLGEscj1IbixuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbEF1ZGlvIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxRaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3JjImluIFMsImhhcyIpLGdldDppKFM9PlMuc3JjLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3JjPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxRaCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0aXRsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRpdGxlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGl0bGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLFFoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJhcnRpc3QiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5hcnRpc3QsImdldCIpLHNldDppKChTLEkpPT57Uy5hcnRpc3Q9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLFFoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImR1cmF0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuZHVyYXRpb24sImdldCIpLHNldDppKChTLEkpPT57Uy5kdXJhdGlvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksUWgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+IndhdmVmb3JtRGF0YSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLndhdmVmb3JtRGF0YSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLndhdmVmb3JtRGF0YT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksUWgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybVJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ3YXZlZm9ybVJlYWR5ImluIFMsImhhcyIpLGdldDppKFM9PlMud2F2ZWZvcm1SZWFkeSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLndhdmVmb3JtUmVhZHk9SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLFFoKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcmV2aWV3UGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNQcmV2aWV3UGxheWluZyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzUHJldmlld1BsYXlpbmcsImdldCIpLHNldDppKChTLEkpPT57Uy5pc1ByZXZpZXdQbGF5aW5nPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxRaChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXA4YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4ucG4sSmAKICAgICAgLmF1ZGlvLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDQwJSA5NiUpLCBoc2woMjgwIDMwJSA5NCUpKSIsImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyNTAgMzAlIDE2JSksIGhzbCgyODAgMjUlIDE0JSkpIil9OwogICAgICB9CgogICAgICAubXVzaWMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1MCA2MCUgNjUlKSIsImhzbCgyNTAgNjAlIDcwJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAuYXVkaW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1MCAyMCUgMzUlKSIsImhzbCgyNTAgMjAlIDgwJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYXVkaW8tYXJ0aXN0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNTAgMTUlIDUwJSkiLCJoc2woMjUwIDE1JSA2NSUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogLTEycHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMycHgpOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKCiAgICAgIC5wbGF5LW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnBsYXktY2lyY2xlIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIGBdOyNlPWpuKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoayl7dGhpcy4jZT1rfSN0PShqbih0aGlzLGwpLGpuKHRoaXMsZCwiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShrKXt0aGlzLiN0PWt9I2E9KGpuKHRoaXMsdSksam4odGhpcyxiLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNhfXNldCBhcnRpc3Qoayl7dGhpcy4jYT1rfSNzPShqbih0aGlzLHYpLGpuKHRoaXMsbSwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGR1cmF0aW9uKGspe3RoaXMuI3M9a30jaT0oam4odGhpcyxmKSxqbih0aGlzLE0sW10pKTtnZXQgd2F2ZWZvcm1EYXRhKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHdhdmVmb3JtRGF0YShrKXt0aGlzLiNpPWt9I3I9KGpuKHRoaXMseiksam4odGhpcyxDLCExKSk7Z2V0IHdhdmVmb3JtUmVhZHkoKXtyZXR1cm4gdGhpcy4jcn1zZXQgd2F2ZWZvcm1SZWFkeShrKXt0aGlzLiNyPWt9I289KGpuKHRoaXMsXyksam4odGhpcywkLCExKSk7Z2V0IGlzUHJldmlld1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQcmV2aWV3UGxheWluZyhrKXt0aGlzLiNvPWt9YXVkaW9FbGVtZW50PShqbih0aGlzLEUpLG51bGwpO3ByZXZpZXdUaW1lb3V0PW51bGw7aGFzTG9hZGVkV2F2ZWZvcm09ITE7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYXVkaW8tY29udGVudCI+CiAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0ibXVzaWMtaWNvbiIgaWNvbj0ibHVjaWRlOk11c2ljIj48L2RlZXMtaWNvbj4KCiAgICAgICAgJHt0aGlzLnRpdGxlP3dgPGRpdiBjbGFzcz0iYXVkaW8tdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj5gOiIifQogICAgICAgICR7dGhpcy5hcnRpc3Q/d2A8ZGl2IGNsYXNzPSJhdWRpby1hcnRpc3QiPiR7dGhpcy5hcnRpc3R9PC9kaXY+YDoiIn0KCiAgICAgICAgJHt0aGlzLndhdmVmb3JtUmVhZHk/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9IndhdmVmb3JtLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InBsYXktb3ZlcmxheSI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxheS1jaXJjbGUiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpIZWFkcGhvbmVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlBsYXkgQXVkaW88L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLmxhYmVsJiYhdGhpcy5kdXJhdGlvbj8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMuZHVyYXRpb24+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLHRpdGxlOnRoaXMudGl0bGUsYXJ0aXN0OnRoaXMuYXJ0aXN0LGR1cmF0aW9uOnRoaXMuZHVyYXRpb259fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc0xvYWRlZFdhdmVmb3JtJiZ0aGlzLnNyYyYmKHRoaXMuaGFzTG9hZGVkV2F2ZWZvcm09ITAsdGhpcy5sb2FkQXVkaW9NZXRhKCkpfWFzeW5jIGxvYWRBdWRpb01ldGEoKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBrPW5ldyBBdWRpbztrLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGsucHJlbG9hZD0ibWV0YWRhdGEiLGF3YWl0IG5ldyBQcm9taXNlKChTLEkpPT57ay5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPWsuZHVyYXRpb24sUygpfSx7b25jZTohMH0pLGsuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT5JKG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvYWQgYXVkaW8iKSkse29uY2U6ITB9KSxrLnNyYz10aGlzLnNyY30pLGF3YWl0IHRoaXMubG9hZFdhdmVmb3JtKCksdGhpcy5sb2FkaW5nPSExfWNhdGNoe3RoaXMubG9hZGluZz0hMX19YXN5bmMgbG9hZFdhdmVmb3JtKCl7dHJ5e2xldCBTPWF3YWl0KGF3YWl0IGZldGNoKHRoaXMuc3JjKSkuYXJyYXlCdWZmZXIoKSxJPW5ldyBBdWRpb0NvbnRleHQsUj0oYXdhaXQgSS5kZWNvZGVBdWRpb0RhdGEoUykpLmdldENoYW5uZWxEYXRhKDApLEs9ODAsVj1NYXRoLmZsb29yKFIubGVuZ3RoL0spLFc9W107Zm9yKGxldCBCPTA7QjxLO0IrKyl7bGV0IFU9MDtmb3IobGV0IGhlPTA7aGU8VjtoZSsrKVUrPU1hdGguYWJzKFJbQipWK2hlXSk7Vy5wdXNoKFUvVil9bGV0IG1lPU1hdGgubWF4KC4uLlcpO3RoaXMud2F2ZWZvcm1EYXRhPVcubWFwKEI9Pm1lPjA/Qi9tZTowKSx0aGlzLndhdmVmb3JtUmVhZHk9ITAsYXdhaXQgSS5jbG9zZSgpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5kcmF3V2F2ZWZvcm0oKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITF9fWRyYXdXYXZlZm9ybSgpe2lmKCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMiKTtpZighaylyZXR1cm47bGV0IFM9ay5wYXJlbnRFbGVtZW50LEk9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsUD1TLmNsaWVudFdpZHRoLFI9Uy5jbGllbnRIZWlnaHQ7ay53aWR0aD1QKkksay5oZWlnaHQ9UipJO2xldCBLPWsuZ2V0Q29udGV4dCgiMmQiKTtpZighSylyZXR1cm47Sy5zY2FsZShJLEkpLEsuY2xlYXJSZWN0KDAsMCxQLFIpO2xldCBWPXRoaXMud2F2ZWZvcm1EYXRhLmxlbmd0aDtpZihWPT09MClyZXR1cm47bGV0IFc9UC9WLEI9ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInRoZW1lLWRhcmsiKXx8d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzPyJoc2woMjUwIDUwJSA2MCUpIjoiaHNsKDI1MCA1MCUgNzAlKSI7Sy5maWxsU3R5bGU9Qjtmb3IobGV0IFU9MDtVPFY7VSsrKXtsZXQgaGU9dGhpcy53YXZlZm9ybURhdGFbVV0sRj1NYXRoLm1heCgyLGhlKihSLTQpKSxqPVUqVyx1ZT0oUi1GKS8yO0suZmlsbFJlY3QoaisuNSx1ZSxXLTEsRil9fWFzeW5jIHVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSxrLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzTG9hZGVkV2F2ZWZvcm09ITAsdGhpcy53YXZlZm9ybVJlYWR5PSExLHRoaXMuZHVyYXRpb249MCx0aGlzLmxvYWRBdWRpb01ldGEoKSksay5oYXMoIndhdmVmb3JtUmVhZHkiKSYmdGhpcy53YXZlZm9ybVJlYWR5JiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmRyYXdXYXZlZm9ybSgpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5wcmV2aWV3VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucHJldmlld1RpbWVvdXQpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQucGF1c2UoKSx0aGlzLmF1ZGlvRWxlbWVudC5zcmM9IiIsdGhpcy5hdWRpb0VsZW1lbnQ9bnVsbCl9Zm9ybWF0VGltZShrKXtpZighaXNGaW5pdGUoayl8fGs8MClyZXR1cm4iMDowMCI7bGV0IFM9TWF0aC5mbG9vcihrLzYwKSxJPU1hdGguZmxvb3IoayU2MCk7cmV0dXJuYCR7U306JHtJLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje2puKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBnOGE9ZygoKT0+e204YSgpfSk7dmFyIGI4YSx2OGE9ZygoKT0+e3BlKCk7YjhhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlZpZGVvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iYnVubnkubXA0IgogICAgICAgICAgQHRpbGUtY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiVmlkZW8gY2xpY2tlZDoiLHMuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvMzAwIgogICAgICAgICAgbGFiZWw9Im1vdmllLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJhbm90aGVyLXZpZGVvLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0ic21hbGwubXA0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQubXA0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0ibGFyZ2UubXA0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5XaXRoIFBvc3RlciBJbWFnZTwvaDM+CiAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdmllLm1wNCIKICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy82MDAvNDAwIgogICAgICAgIGxhYmVsPSJwb3N0ZXItdmlkZW8ubXA0IgogICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgb3gscDIseDhhLHk4YT1nKCgpPT57cGUoKTtaaCgpO2t1KCk7djhhKCk7b3g9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHAyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx4OGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXRodW1ibmFpbC12aWRlbyIpXSxlLHQ9W10sYSxyPUhuLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsVmlkZW8iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSxveCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic3JjImluIF8sImhhcyIpLGdldDppKF89Pl8uc3JjLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3JjPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxveCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icG9zdGVyImluIF8sImhhcyIpLGdldDppKF89Pl8ucG9zdGVyLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucG9zdGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxveCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJkdXJhdGlvbiJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZHVyYXRpb249T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLG94KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGh1bWJuYWlsQ2FwdHVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InRodW1ibmFpbENhcHR1cmVkImluIF8sImhhcyIpLGdldDppKF89Pl8udGh1bWJuYWlsQ2FwdHVyZWQsImdldCIpLHNldDppKChfLE8pPT57Xy50aHVtYm5haWxDYXB0dXJlZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksb3godGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpc0hvdmVyaW5nImluIF8sImhhcyIpLGdldDppKF89Pl8uaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmlzSG92ZXJpbmc9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLG94KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89YjhhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5wbixKYAogICAgICAudmlkZW8td3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIHZpZGVvIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIGNhbnZhcyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAucG9zdGVyLWltYWdlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnBsYXktb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZpZGVvLWhvdmVyLXByZXZpZXcgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAudmlkZW8taG92ZXItcHJldmlldy5hY3RpdmUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIGBdOyNlPXAyKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoQyl7dGhpcy4jZT1DfSN0PShwMih0aGlzLGwpLHAyKHRoaXMsZCwiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKEMpe3RoaXMuI3Q9Q30jYT0ocDIodGhpcyx1KSxwMih0aGlzLGIsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkdXJhdGlvbihDKXt0aGlzLiNhPUN9I3M9KHAyKHRoaXMsdikscDIodGhpcyxtLCExKSk7Z2V0IHRodW1ibmFpbENhcHR1cmVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRodW1ibmFpbENhcHR1cmVkKEMpe3RoaXMuI3M9Q30jaT0ocDIodGhpcyxmKSxwMih0aGlzLE0sITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNpfXNldCBpc0hvdmVyaW5nKEMpe3RoaXMuI2k9Q310aHVtYm5haWxDYW52YXM9KHAyKHRoaXMseiksbnVsbCk7aG92ZXJWaWRlbz1udWxsO2hhc1N0YXJ0ZWRMb2FkaW5nPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5wb3N0ZXI/d2AKICAgICAgICAgIDxpbWcgY2xhc3M9InBvc3Rlci1pbWFnZSIgc3JjPSIke3RoaXMucG9zdGVyfSIgYWx0PSIiIC8+CiAgICAgICAgYDp0aGlzLnRodW1ibmFpbENhcHR1cmVkP3dgCiAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgIGA6d2AKICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6ICMwMDA7Ij48L2Rpdj4KICAgICAgICBgfQoKICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmdGhpcy5zcmM/d2AKICAgICAgICAgIDx2aWRlbwogICAgICAgICAgICBjbGFzcz0idmlkZW8taG92ZXItcHJldmlldyAke3RoaXMuaXNIb3ZlcmluZz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnNyY30KICAgICAgICAgICAgbXV0ZWQKICAgICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgICAgQGxvYWRlZGRhdGE9JHt0aGlzLmhhbmRsZUhvdmVyVmlkZW9Mb2FkZWR9CiAgICAgICAgICA+PC92aWRlbz4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5pc0hvdmVyaW5nPyIiOndgCiAgICAgICAgPGRpdiBjbGFzcz0icGxheS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICBgfQoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlBsYXkgVmlkZW88L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLmxhYmVsJiYhdGhpcy5kdXJhdGlvbj8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMuZHVyYXRpb24+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLHBvc3Rlcjp0aGlzLnBvc3RlcixkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNTdGFydGVkTG9hZGluZyYmdGhpcy5zcmMmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMuY2FwdHVyZUZpcnN0RnJhbWUoKSl9YXN5bmMgY2FwdHVyZUZpcnN0RnJhbWUoKXtpZih0aGlzLnBvc3Rlcil7dGhpcy5sb2FkRHVyYXRpb24oKTtyZXR1cm59dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgQz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO0MuY3Jvc3NPcmlnaW49ImFub255bW91cyIsQy5tdXRlZD0hMCxDLnByZWxvYWQ9Im1ldGFkYXRhIixhd2FpdCBuZXcgUHJvbWlzZSgoXyxPKT0+e0MuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPUMuZHVyYXRpb24sQy5jdXJyZW50VGltZT0uMSxDLmFkZEV2ZW50TGlzdGVuZXIoInNlZWtlZCIsKCk9PntsZXQgJD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTskLndpZHRoPUMudmlkZW9XaWR0aCwkLmhlaWdodD1DLnZpZGVvSGVpZ2h0O2xldCBFPSQuZ2V0Q29udGV4dCgiMmQiKTtFJiYoRS5kcmF3SW1hZ2UoQywwLDApLHRoaXMudGh1bWJuYWlsQ2FudmFzPSQsdGhpcy50aHVtYm5haWxDYXB0dXJlZD0hMCksQy5zcmM9IiIsQy5sb2FkKCksXygpfSx7b25jZTohMH0pfSx7b25jZTohMH0pLEMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT5PKG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvYWQgdmlkZW8iKSkse29uY2U6ITB9KSxDLnNyYz10aGlzLnNyY30pLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY29weVRodW1ibmFpbFRvQ2FudmFzKCl9Y2F0Y2h7dGhpcy5sb2FkaW5nPSExLHRoaXMubG9hZER1cmF0aW9uKCl9fWxvYWREdXJhdGlvbigpe2xldCBDPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7Qy5wcmVsb2FkPSJtZXRhZGF0YSIsQy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPUMuZHVyYXRpb24sQy5zcmM9IiIsQy5sb2FkKCl9KSxDLnNyYz10aGlzLnNyY31jb3B5VGh1bWJuYWlsVG9DYW52YXMoKXtpZighdGhpcy50aHVtYm5haWxDYW52YXMpcmV0dXJuO2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZGVvLXdyYXBwZXIgY2FudmFzIik7aWYoIUMpcmV0dXJuO0Mud2lkdGg9dGhpcy50aHVtYm5haWxDYW52YXMud2lkdGgsQy5oZWlnaHQ9dGhpcy50aHVtYm5haWxDYW52YXMuaGVpZ2h0O2xldCBfPUMuZ2V0Q29udGV4dCgiMmQiKTtfJiZfLmRyYXdJbWFnZSh0aGlzLnRodW1ibmFpbENhbnZhcywwLDApfW9uVGlsZU1vdXNlRW50ZXIoKXt0aGlzLmlzSG92ZXJpbmc9ITB9b25UaWxlTW91c2VMZWF2ZSgpe3RoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLmhvdmVyVmlkZW89bnVsbH1oYW5kbGVIb3ZlclZpZGVvTG9hZGVkKEMpe3RoaXMuaG92ZXJWaWRlbz1DLnRhcmdldCx0aGlzLmhvdmVyVmlkZW8ucGxheSgpLmNhdGNoKCgpPT57fSl9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpLEMuaGFzKCJzcmMiKSYmdGhpcy5zcmMmJnRoaXMuaXNWaXNpYmxlJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLnRodW1ibmFpbENhcHR1cmVkPSExLHRoaXMuZHVyYXRpb249MCx0aGlzLmNhcHR1cmVGaXJzdEZyYW1lKCkpLEMuaGFzKCJ0aHVtYm5haWxDYXB0dXJlZCIpJiZ0aGlzLnRodW1ibmFpbENhcHR1cmVkJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNvcHlUaHVtYm5haWxUb0NhbnZhcygpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5ob3ZlclZpZGVvJiYodGhpcy5ob3ZlclZpZGVvLnBhdXNlKCksdGhpcy5ob3ZlclZpZGVvLnNyYz0iIix0aGlzLmhvdmVyVmlkZW89bnVsbCksdGhpcy50aHVtYm5haWxDYW52YXM9bnVsbH1mb3JtYXRUaW1lKEMpe2lmKCFpc0Zpbml0ZShDKXx8QzwwKXJldHVybiIwOjAwIjtsZXQgXz1NYXRoLmZsb29yKEMvNjApLE89TWF0aC5mbG9vcihDJTYwKTtyZXR1cm5gJHtffToke08udG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7cDIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIHc4YT1nKCgpPT57eThhKCl9KTt2YXIgazhhLFM4YT1nKCgpPT57cGUoKTtrOGE9aSgoKT0+e2xldCBzPWBpbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0JzsKCmV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7CiAgcHJpdmF0ZSBpdGVtczogc3RyaW5nW10gPSBbXTsKCiAgcmVuZGVyKCkgewogICAgcmV0dXJuIGh0bWxcYAogICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIFwke3RoaXMuaXRlbXMubWFwKGl0ZW0gPT4gaHRtbFxgCiAgICAgICAgICA8c3Bhbj5cJHtpdGVtfTwvc3Bhbj4KICAgICAgICBcYCl9CiAgICAgIDwvZGl2PgogICAgXGA7CiAgfQp9YCxlPWBNZWV0aW5nIE5vdGVzIC0gUTQgUGxhbm5pbmcKRGF0ZTogSmFudWFyeSAxNSwgMjAyNgpBdHRlbmRlZXM6IEFsaWNlLCBCb2IsIENoYXJsaWUKCktleSBEZWNpc2lvbnM6CjEuIExhdW5jaCBuZXcgZmVhdHVyZSBieSBNYXJjaAoyLiBIaXJlIDIgbW9yZSBlbmdpbmVlcnMKMy4gTWlncmF0ZSB0byBuZXcgQ0kvQ0QgcGlwZWxpbmUKNC4gVXBkYXRlIGRlc2lnbiBzeXN0ZW0gdG8gdjMKCkFjdGlvbiBJdGVtczoKLSBBbGljZTogRHJhZnQgUFJEIGJ5IG5leHQgd2VlawotIEJvYjogU2V0IHVwIGludGVydmlldyBwaXBlbGluZQotIENoYXJsaWU6IEV2YWx1YXRlIEplbmtpbnMgdnMgR2l0SHViIEFjdGlvbnNgO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIC50aWxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Tm90ZSBUaWxlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtzfQogICAgICAgICAgICBsYW5ndWFnZT0idHlwZXNjcmlwdCIKICAgICAgICAgICAgbGFiZWw9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgQHRpbGUtY2xpY2s9JHthPT5jb25zb2xlLmxvZygiTm90ZSBjbGlja2VkOiIsYS5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0iTWVldGluZyBOb3RlcyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtlfQogICAgICAgICAgICBsYWJlbD0ibWVldGluZy1ub3Rlcy50eHQiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJwYWNrYWdlLmpzb24iCiAgICAgICAgICAgIC5jb250ZW50PSR7YHsKICAibmFtZSI6ICJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLAogICJ2ZXJzaW9uIjogIjMuMzguMCIsCiAgImRlc2NyaXB0aW9uIjogIkRlc2lnbiBjb21wb25lbnQgY2F0YWxvZyIsCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiOiAiXjIuMC4wIiwKICAgICJsaXQiOiAiXjMuMS4wIgogIH0sCiAgInNjcmlwdHMiOiB7CiAgICAiYnVpbGQiOiAidHNidWlsZCIsCiAgICAidGVzdCI6ICJ0c3Rlc3QiCiAgfQp9YH0KICAgICAgICAgICAgbGFuZ3VhZ2U9Impzb24iCiAgICAgICAgICAgIGxhYmVsPSJwYWNrYWdlLmpzb24iCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICB0aXRsZT0ic21hbGwudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7c30KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0ic21hbGwudHMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJkZWZhdWx0LnRzIgogICAgICAgICAgICAuY29udGVudD0ke3N9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9ImRlZmF1bHQudHMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICB0aXRsZT0ibGFyZ2UudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7c30KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0ibGFyZ2UudHMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPldpdGhvdXQgVGl0bGU8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICBsYWJlbD0idW50aXRsZWQudHh0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0sImRlbW8iKX0pO3ZhciBhUSxTdSxfOGEsTThhPWcoKCk9PntwZSgpO1poKCk7a3UoKTtTOGEoKTthUT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sU3U9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LF84YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLW5vdGUiKV0sZSx0PVtdLGEscj1IbixuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbE5vdGUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtZKCldLGFRKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRpdGxlImluIHosImhhcyIpLGdldDppKHo9PnoudGl0bGUsImdldCIpLHNldDppKCh6LE4pPT57ei50aXRsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksYVEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjb250ZW50ImluIHosImhhcyIpLGdldDppKHo9PnouY29udGVudCwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmNvbnRlbnQ9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLGFRKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Imxhbmd1YWdlImluIHosImhhcyIpLGdldDppKHo9PnoubGFuZ3VhZ2UsImdldCIpLHNldDppKCh6LE4pPT57ei5sYW5ndWFnZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksYVEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc0hvdmVyaW5nImluIHosImhhcyIpLGdldDppKHo9PnouaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmlzSG92ZXJpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLGFRKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89azhhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5wbixKYAogICAgICAubm90ZS1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCg2MCA1JSA5NiUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ub3RlLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm5vdGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMCUgMjAlKSIsImhzbCgyMTUgMjAlIDIwJSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5ub3RlLWJvZHkgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogMCAxNHB4IDE0cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ub3RlLXRleHQgewogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxMCUgNDAlKSIsImhzbCgyMTUgMTAlIDM1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLm5vdGUtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogNjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgICB0cmFuc3BhcmVudCwKICAgICAgICAgICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDYwIDUlIDk2JSkiKX0KICAgICAgICApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubm90ZS1saW5lcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMzRweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDg1JSkiLCJoc2woMCA1MCUgODAlKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgIH0KCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7IC8qIG1hdGNoZXMgMTBweCAqIDEuNSBsaW5lLWhlaWdodCAqLwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxMCUgNzUlKSIsImhzbCgyMTUgMTAlIDcwJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4OwogICAgICB9CgogICAgYF07I2U9U3UodGhpcyxvLCIiKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGl0bGUoTSl7dGhpcy4jZT1NfSN0PShTdSh0aGlzLGwpLFN1KHRoaXMsZCwiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQoTSl7dGhpcy4jdD1NfSNhPShTdSh0aGlzLHUpLFN1KHRoaXMsYiwiIikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNhfXNldCBsYW5ndWFnZShNKXt0aGlzLiNhPU19I3M9KFN1KHRoaXMsdiksU3UodGhpcyxtLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNIb3ZlcmluZyhNKXt0aGlzLiNzPU19bm90ZUJvZHlFbGVtZW50PShTdSh0aGlzLGYpLG51bGwpO3JlbmRlclRpbGVDb250ZW50KCl7bGV0IE09dGhpcy5jb250ZW50LnNwbGl0KGAKYCk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUtY29udGVudCI+CiAgICAgICAgJHt0aGlzLnRpdGxlP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtYm9keSI+CiAgICAgICAgICA8cHJlIGNsYXNzPSJub3RlLXRleHQiPiR7TS5qb2luKGAKYCl9PC9wcmU+CiAgICAgICAgICAke3RoaXMuaXNIb3ZlcmluZz8iIjp3YDxkaXYgY2xhc3M9Im5vdGUtZmFkZSI+PC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGaWxlVGV4dCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5PcGVuIE5vdGU8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe2xldCBNPXRoaXMuY29udGVudC5zcGxpdChgCmApO3JldHVybiF0aGlzLmxhYmVsJiYhdGhpcy5sYW5ndWFnZSYmIU0ubGVuZ3RoPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5sYW5ndWFnZT93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmxhbmd1YWdlLnRvVXBwZXJDYXNlKCl9PC9zcGFuPmA6IiJ9CiAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmcmJk0ubGVuZ3RoPjEyP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj5MaW5lICR7dGhpcy5nZXRWaXNpYmxlTGluZVJhbmdlKE0ubGVuZ3RoKX08L3NwYW4+YDp3YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHtNLmxlbmd0aH0gbGluZXM8L3NwYW4+YH0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybnt0aXRsZTp0aGlzLnRpdGxlLGNvbnRlbnQ6dGhpcy5jb250ZW50LGxhbmd1YWdlOnRoaXMubGFuZ3VhZ2V9fW9uVGlsZU1vdXNlRW50ZXIoKXt0aGlzLmlzSG92ZXJpbmc9ITAsdGhpcy5ub3RlQm9keUVsZW1lbnR8fCh0aGlzLm5vdGVCb2R5RWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ub3RlLWJvZHkiKSl9b25UaWxlTW91c2VMZWF2ZSgpe3RoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLm5vdGVCb2R5RWxlbWVudCYmKHRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcD0wKX1vblRpbGVNb3VzZU1vdmUoTSl7aWYoIXRoaXMuaXNIb3ZlcmluZ3x8IXRoaXMubm90ZUJvZHlFbGVtZW50fHx0aGlzLmNvbnRlbnQuc3BsaXQoYApgKS5sZW5ndGg8PTEyKXJldHVybjtsZXQgTj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEM9TS5jbGllbnRYLU4ubGVmdCxfPU1hdGgubWF4KDAsTWF0aC5taW4oMSxDL04ud2lkdGgpKSxPPXRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbEhlaWdodC10aGlzLm5vdGVCb2R5RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wPV8qT31nZXRWaXNpYmxlTGluZVJhbmdlKE0pe2lmKCF0aGlzLm5vdGVCb2R5RWxlbWVudClyZXR1cm5gMVx1MjAxMzEyIG9mICR7TX1gO2xldCB6PTE1LE49TWF0aC5mbG9vcih0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3AveikrMSxDPU1hdGguZmxvb3IodGhpcy5ub3RlQm9keUVsZW1lbnQuY2xpZW50SGVpZ2h0L3opLF89TWF0aC5taW4oTitDLTEsTSk7cmV0dXJuYCR7Tn1cdTIwMTMke199IG9mICR7TX1gfXN0YXRpY3tTdShhLHQpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgejhhPWcoKCk9PntNOGEoKX0pO3ZhciBDOGEsVDhhPWcoKCk9PntwZSgpO0M4YT1pKCgpPT57bGV0IHM9W3t0eXBlOiJpbWFnZSIsbmFtZToic3Vuc2V0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MSJ9LHt0eXBlOiJpbWFnZSIsbmFtZToibW91bnRhaW4uanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0yIn0se3R5cGU6ImltYWdlIixuYW1lOiJvY2Vhbi5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTMifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImZvcmVzdC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTQifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImNpdHkuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT01In0se3R5cGU6ImltYWdlIixuYW1lOiJkZXNlcnQuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT02In1dO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIC50aWxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Rm9sZGVyIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IlBob3RvcyIKICAgICAgICAgICAgLml0ZW1zPSR7c30KICAgICAgICAgICAgbGFiZWw9IjYgcGhvdG9zIgogICAgICAgICAgICBAdGlsZS1jbGljaz0ke249PmNvbnNvbGUubG9nKCJGb2xkZXIgY2xpY2tlZDoiLG4uZGV0YWlsKX0KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9Im15LXByb2plY3QiCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToibm90ZSIsbmFtZToiUkVBRE1FLm1kIn0se3R5cGU6Im5vdGUiLG5hbWU6InBhY2thZ2UuanNvbiJ9LHt0eXBlOiJmb2xkZXIiLG5hbWU6InNyYyJ9LHt0eXBlOiJmb2xkZXIiLG5hbWU6InRlc3QifSx7dHlwZToibm90ZSIsbmFtZToidHNjb25maWcuanNvbiJ9LHt0eXBlOiJwZGYiLG5hbWU6ImRvY3MucGRmIn0se3R5cGU6ImltYWdlIixuYW1lOiJsb2dvLnBuZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMTAwLzEwMD9yYW5kb209MTAifV19CiAgICAgICAgICAgIGxhYmVsPSJQcm9qZWN0IGZpbGVzIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iTWVkaWEgQXNzZXRzIgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6InZpZGVvIixuYW1lOiJpbnRyby5tcDQifSx7dHlwZToiYXVkaW8iLG5hbWU6ImJhY2tncm91bmQubXAzIn0se3R5cGU6ImltYWdlIixuYW1lOiJ0aHVtYm5haWwuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0yMCJ9LHt0eXBlOiJwZGYiLG5hbWU6InN0b3J5Ym9hcmQucGRmIn1dfQogICAgICAgICAgICBsYWJlbD0iTWl4ZWQgbWVkaWEiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+RWRnZSBDYXNlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJFbXB0eSBGb2xkZXIiCiAgICAgICAgICAgIC5pdGVtcz0ke1tdfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iU2luZ2xlIEl0ZW0iCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToicGRmIixuYW1lOiJyZXBvcnQucGRmIn1dfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIG5hbWU9IlNtYWxsIgogICAgICAgICAgICAuaXRlbXM9JHtzfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iRGVmYXVsdCIKICAgICAgICAgICAgLml0ZW1zPSR7c30KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICBuYW1lPSJMYXJnZSIKICAgICAgICAgICAgLml0ZW1zPSR7c30KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtbyIpfSk7dmFyIG5ydCxzUSwkOGEsRDhhLEw4YT1nKCgpPT57cGUoKTtaaCgpO2t1KCk7VDhhKCk7bnJ0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxzUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sJDhhPXtwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsaW1hZ2U6Imx1Y2lkZTpJbWFnZSIsYXVkaW86Imx1Y2lkZTpNdXNpYyIsdmlkZW86Imx1Y2lkZTpWaWRlbyIsbm90ZToibHVjaWRlOkZpbGVDb2RlIixmb2xkZXI6Imx1Y2lkZTpGb2xkZXIiLHVua25vd246Imx1Y2lkZTpGaWxlIn0sRDhhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aHVtYm5haWwtZm9sZGVyIildLGUsdD1bXSxhLHI9SG4sbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxGb2xkZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHthdHRyaWJ1dGU6ITF9KV0sbnJ0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ibmFtZSJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52Lm5hbWUsImdldCIpLHNldDppKCh2LHgpPT57di5uYW1lPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxucnQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaXRlbXMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5pdGVtcywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2Lml0ZW1zPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxucnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1DOGE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLnBuLEpgCiAgICAgIC5mb2xkZXItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0MCAzMCUgOTclKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZvbGRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZm9sZGVyLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0MCA4MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmZvbGRlci1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAlIDIwJSkiLCJoc2woMjE1IDE2JSA4MCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDE0cHggMTRweDsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAlIDk0JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1NSUpIil9OwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsLWVtcHR5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNSUgOTYlKSIsImhzbCgyMTUgMjAlIDE2JSkiKX07CiAgICAgIH0KCiAgICBgXTsjZT1zUSh0aGlzLG8sIiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoYil7dGhpcy4jZT1ifSN0PShzUSh0aGlzLGwpLHNRKHRoaXMsZCxbXSkpO2dldCBpdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBpdGVtcyhiKXt0aGlzLiN0PWJ9cmVuZGVyVGlsZUNvbnRlbnQoKXtsZXQgYj10aGlzLml0ZW1zLnNsaWNlKDAsNCksdj00LWIubGVuZ3RoO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWhlYWRlciI+CiAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJmb2xkZXItaWNvbiIgaWNvbj0ibHVjaWRlOkZvbGRlciI+PC9kZWVzLWljb24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItbmFtZSI+JHt0aGlzLm5hbWV8fCJVbnRpdGxlZCBGb2xkZXIifTwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWdyaWQiPgogICAgICAgICAgJHtiLm1hcCh4PT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNlbGwiPgogICAgICAgICAgICAgICR7eC50aHVtYm5haWxTcmM/d2AKICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIke3gudGh1bWJuYWlsU3JjfSIgYWx0PSIke3gubmFtZX0iIC8+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIkeyQ4YVt4LnR5cGVdfHwkOGEudW5rbm93bn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDp2fSkubWFwKCgpPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNlbGwgZ3JpZC1jZWxsLWVtcHR5Ij48L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Rm9sZGVyT3BlbiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5PcGVuIEZvbGRlcjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLml0ZW1zLmxlbmd0aD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5pdGVtcy5sZW5ndGh9IGl0ZW0ke3RoaXMuaXRlbXMubGVuZ3RoIT09MT8icyI6IiJ9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue25hbWU6dGhpcy5uYW1lLGl0ZW1Db3VudDp0aGlzLml0ZW1zLmxlbmd0aCxpdGVtczp0aGlzLml0ZW1zfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksc1EodGhpcyx1KX1zdGF0aWN7c1EoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIEU4YT1nKCgpPT57TDhhKCl9KTt2YXIgUDhhPWcoKCk9PntMNWEoKTtBNWEoKTtGNWEoKTtaNWEoKTtYNWEoKTtRNWEoKTtKNWEoKTtvOGEoKTt1OGEoKTtnOGEoKTt3OGEoKTt6OGEoKTtFOGEoKX0pO3ZhciBJOGE9ZygoKT0+e29yKCl9KTt2YXIgQThhPWcoKCk9PntKMCgpfSk7dmFyIE44YSxSOGE9ZygoKT0+e3BlKCk7TjhhPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5yZWYxIHsKICAgICAgICBtYXJnaW46IDIwcHg7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9InJlZjEiPjwvZGl2PgogICAgPGRlZXMtc3BlZWNoYnViYmxlIC50ZXh0PSR7YAogICAgICAqKlRoaXMgaXMgYSBsb25nZXIgbWFya2Rvd24gdGV4dCB0aGF0ICBjYW4gYmUgdXNlZCB0aGUgd3JpdGUqKiAgCiAgICAgIGEgbG9uZ2VyIGRlc2NyaXB0aW9uIGFib3V0IHdoYXRzIGdvaW5nIG9uIHRoZSBhcHAgIAogIAogICAgICAqKlRoaXMgaXMgYSBzdWJoZWFkZXIqKgogICAgICBhbmQgYW5vdGhlciB0ZXh0CiAgICAKICAgIGB9PjwvZGVlcy1zcGVlY2hidWJibGU+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBueCxoMixPOGEsRjhhPWcoKCk9PntHMSgpO3BvKCk7UjhhKCk7cGUoKTtGMSgpO3B0KCk7bng9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGgyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxPOGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXNwZWVjaGJ1YmJsZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3BlZWNoYnViYmxlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6U3RyaW5nfSldLG54KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVmZmVkRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icmVmZmVkRWxlbWVudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnJlZmZlZEVsZW1lbnQsImdldCIpLHNldDppKChfLE8pPT57Xy5yZWZmZWRFbGVtZW50PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxueCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InRleHQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy50ZXh0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udGV4dD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksbngodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ3YXZlImluIF8sImhhcyIpLGdldDppKF89Pl8ud2F2ZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLndhdmU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLG54KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFuaWZlc3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ibWFuaWZlc3RlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLm1hbmlmZXN0ZWQsImdldCIpLHNldDppKChfLE8pPT57Xy5tYW5pZmVzdGVkPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxueCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic3RhdHVzImluIF8sImhhcyIpLGdldDppKF89Pl8uc3RhdHVzLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3RhdHVzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxueChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPU44YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhDLF8pe2xldCBPPWF3YWl0IGhvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITF9KSwkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtc3BlZWNoYnViYmxlIik7cmV0dXJuICQud2luZG93TGF5ZXI9TywkLnJlZmZlZEVsZW1lbnQ9QywkLnRleHQ9XywkLm1hbmlmZXN0ZWQ9ITAsTy5hcHBlbmRDaGlsZCgkKSxPLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLE8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIud2luZG93T3ZlcmxheSIpLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLCR9I2U9aDIodGhpcyxvLHZvaWQgMCk7Z2V0IHJlZmZlZEVsZW1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVmZmVkRWxlbWVudChDKXt0aGlzLiNlPUN9I3Q9KGgyKHRoaXMsbCksaDIodGhpcyxkLHZvaWQgMCkpO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRleHQoQyl7dGhpcy4jdD1DfSNhPShoMih0aGlzLHUpLGgyKHRoaXMsYiwhMSkpO2dldCB3YXZlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHdhdmUoQyl7dGhpcy4jYT1DfSNzPShoMih0aGlzLHYpLGgyKHRoaXMsbSwhMSkpO2dldCBtYW5pZmVzdGVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1hbmlmZXN0ZWQoQyl7dGhpcy4jcz1DfSNpPShoMih0aGlzLGYpLGgyKHRoaXMsTSwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3RhdHVzKEMpe3RoaXMuI2k9Q313aW5kb3dMYXllcj1oMih0aGlzLHopO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7CiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMikpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgIH0KCiAgICAgIC5hcnJvdyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZiIsIiMzMzMiKX07CiAgICAgICAgaGVpZ2h0OiAxNXB4OwogICAgICAgIHdpZHRoOiAxNXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuc3BlZWNoYnViYmxlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZiIsIiMzMzMiKX07CiAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBtaW4td2lkdGg6IDI0MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC53YXZlIHsKICAgICAgICBhbmltYXRpb24tbmFtZTogd2F2ZS1hbmltYXRpb247IC8qIFJlZmVycyB0byB0aGUgbmFtZSBvZiB5b3VyIEBrZXlmcmFtZXMgZWxlbWVudCBiZWxvdyAqLwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMi41czsgLyogQ2hhbmdlIHRvIHNwZWVkIHVwIG9yIHNsb3cgZG93biAqLwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyAvKiBOZXZlciBzdG9wIHdhdmluZyA6KSAqLwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDcwJSA3MCU7IC8qIFBpdm90IGFyb3VuZCB0aGUgYm90dG9tLWxlZnQgcGFsbSAqLwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB3YXZlLWFuaW1hdGlvbiB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfQogICAgICAgIDEwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfSAvKiBUaGUgZm9sbG93aW5nIGZpdmUgdmFsdWVzIGNhbiBiZSBwbGF5ZWQgd2l0aCB0byBtYWtlIHRoZSB3YXZpbmcgbW9yZSBvciBsZXNzIGV4dHJlbWUgKi8KICAgICAgICAyMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLThkZWcpOwogICAgICAgIH0KICAgICAgICAzMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTRkZWcpOwogICAgICAgIH0KICAgICAgICA0MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTRkZWcpOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpOwogICAgICAgIH0KICAgICAgICA2MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfSAvKiBSZXNldCBmb3IgdGhlIGxhc3QgaGFsZiB0byBwYXVzZSAqLwogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLm1hbmlmZXN0ZWQ/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJyb3ciPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwZWVjaGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAke3RoaXMud2F2ZT93YDxzcGFuIGNsYXNzPSJ3YXZlIj7wn5GLPC9zcGFuPmA6d2BgfQogICAgICAgICAgICAgICAgJHtWaS5yZXNvbHZlKHRoaXMuZ2V0SHRtbCgpKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9YXN5bmMgaGFuZGxlQ2xpY2soKXtjb25zb2xlLmxvZygic3BlZWNoYnViYmxlIGdvdCBjbGlja2VkLiIpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMucmVmZmVkRWxlbWVudHx8KHRoaXMucmVmZmVkRWxlbWVudD10aGlzLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpLHRoaXMubWFuaWZlc3RlZClhd2FpdCB0aGlzLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikuc3R5bGUub3BhY2l0eT0iMSI7ZWxzZXtsZXQgQzt0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsYXN5bmMoKT0+e0M9YXdhaXQgTi5jcmVhdGVBbmRTaG93KHRoaXMucmVmZmVkRWxlbWVudCx0aGlzLnRleHQpfSksdGhpcy5yZWZmZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57Qy5kZXN0cm95KCl9KX19YXN5bmMgdXBkYXRlUG9zaXRpb24oKXtsZXQgQz10aGlzLnJlZmZlZEVsZW1lbnQsXz1DLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN0eWxlLnRvcD1gJHtfLnRvcC0xM31weGAsdGhpcy5zdHlsZS5sZWZ0PWAke18ubGVmdCtDLmNsaWVudFdpZHRoKzR9cHhgLF8ucmlnaHQ+MjUwJiYodGhpcy5zdHlsZS53aWR0aD0iMjUwcHgiKX1hc3luYyBnZXRIdG1sKCl7aWYoIXRoaXMudGV4dClyZXR1cm4iIjtsZXQgQz1sdC5wbHVnaW5zLnNtYXJ0c3RyaW5nLm5vcm1hbGl6ZS5zdGFuZGFyZCh0aGlzLnRleHQpLF89YXdhaXQgbHQucGx1Z2lucy5zbWFydG1hcmtkb3duLlNtYXJ0TWFya2Rvd24uZWFzeU1hcmtkb3duVG9IdG1sKEMpO3JldHVybiBWMyhfKX1hc3luYyBzaG93KCl7fWFzeW5jIGRlc3Ryb3koKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7aDIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIEI4YT1nKCgpPT57RjhhKCl9KTt2YXIgSDhhPWcoKCk9PntGMSgpfSk7dmFyIHE4YT1nKCgpPT57SThhKCk7QThhKCk7QjhhKCk7SDhhKCl9KTt2YXIgajhhPWcoKCk9Pnt9KTt2YXIgVjhhPWcoKCk9PntqOGEoKX0pO3ZhciBVOGEsbzFlLG4xZSxscnQsVzhhLGwxZSxjMWUsZDFlLHUxZT1nKCgpPT57VThhPSJodHRwczovL3N0YWNrYmxpdHouY29tIixvMWU9ImNvZGUiLG4xZT0iZXJyb3IiLGxydD0iZXJyb3JfZGVzY3JpcHRpb24iLFc4YT0iX193Y19hcGlfYmNfXyIsbDFlPSJfX3djX2FwaV90b2tlbnNfXyIsYzFlPSJfX3djX2FwaV92ZXJpZmllcl9fIixkMWU9Il9fd2NfYXBpX3BvcHVwX18ifSk7dmFyIFNnLGNydD1nKCgpPT57U2c9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRFdmVudFRhcmdldCIpfV9idXM9bmV3IEV2ZW50VGFyZ2V0O2xpc3RlbihlKXtmdW5jdGlvbiB0KGEpe2UoYS5kYXRhKX1yZXR1cm4gaSh0LCJ3cmFwcGVkTGlzdGVuZXIiKSx0aGlzLl9idXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdCksKCk9PnRoaXMuX2J1cy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0KX1maXJlRXZlbnQoZSl7dGhpcy5fYnVzLmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgibWVzc2FnZSIse2RhdGE6ZX0pKX19fSk7ZnVuY3Rpb24gcDFlKCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0obDFlKX1mdW5jdGlvbiBYOGEocyl7cmV0dXJuIEs4YS5saXN0ZW4ocyl9ZnVuY3Rpb24gUVhhKCl7bGV0IHM9bG9jYWxTdG9yYWdlLmdldEl0ZW0obDFlKTtpZighcylyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2Uocyl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIEpYYShzKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShsMWUsSlNPTi5zdHJpbmdpZnkocykpfWZ1bmN0aW9uIFk4YSh7Y3JlYXRlZF9hdDpzLGV4cGlyZXNfaW46ZX0pe3JldHVybihzK2UpKjFlM31mdW5jdGlvbiBaOGEocyl7aWYodHlwZW9mIHMhPSJvYmplY3QifHwhcyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVG9rZW4gUmVzcG9uc2UiKTtpZih0eXBlb2Ygcy5hY2Nlc3NfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2Ygcy5yZWZyZXNoX3Rva2VuIT0ic3RyaW5nInx8dHlwZW9mIHMuY3JlYXRlZF9hdCE9Im51bWJlciJ8fHR5cGVvZiBzLmV4cGlyZXNfaW4hPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpfWZ1bmN0aW9uIGVRYShzKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+c2V0VGltZW91dChlLHMpKX1mdW5jdGlvbiB0UWEocyl7SzhhLmZpcmVFdmVudChzKX12YXIgRzhhLEs4YSxseCxkcnQ9ZygoKT0+e3UxZSgpO2NydCgpO0c4YT1uZXcgRXJyb3I7RzhhLnN0YWNrPSIiO0s4YT1uZXcgU2csbHg9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJUb2tlbnMiKX1vcmlnaW47cmVmcmVzaDthY2Nlc3M7ZXhwaXJlcztfcmV2b2tlZD1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0cnVjdG9yKGUsdCxhLHIpe3RoaXMub3JpZ2luPWUsdGhpcy5yZWZyZXNoPXQsdGhpcy5hY2Nlc3M9YSx0aGlzLmV4cGlyZXM9cn1hc3luYyBhY3RpdmF0ZShlKXtpZih0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiVG9rZW4gcmV2b2tlZCIpO3JldHVybiB0aGlzLmV4cGlyZXM8RGF0ZS5ub3coKSYmIWF3YWl0IHRoaXMuX2ZldGNoTmV3QWNjZXNzVG9rZW4oKT8hMToodGhpcy5fc3luYygpLHRoaXMuX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3AoZSksITApfWFzeW5jIHJldm9rZShlLHQpe3RoaXMuX3Jldm9rZWQuYWJvcnQoKTt0cnl7aWYoIShhd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvcmV2b2tlYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHt0b2tlbjp0aGlzLnJlZnJlc2gsdG9rZW5fdHlwZV9oaW50OiJyZWZyZXNoX3Rva2VuIixjbGllbnRfaWQ6ZX0pLG1vZGU6ImNvcnMifSkpLm9rKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvZ291dCIpfWNhdGNoKGEpe2lmKCF0KXRocm93IGF9cDFlKCl9c3RhdGljIGZyb21TdG9yYWdlKCl7bGV0IGU9UVhhKCk7cmV0dXJuIGU/bmV3IHMoZS5vcmlnaW4sZS5yZWZyZXNoLGUuYWNjZXNzLGUuZXhwaXJlcyk6bnVsbH1zdGF0aWMgYXN5bmMgZnJvbUF1dGhDb2RlKHtlZGl0b3JPcmlnaW46ZSxjbGllbnRJZDp0LGNvZGVWZXJpZmllcjphLGF1dGhDb2RlOnIscmVkaXJlY3RVcmk6bn0pe2xldCBvPWF3YWl0IGZldGNoKGAke2V9L29hdXRoL3Rva2VuYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHtjbGllbnRfaWQ6dCxjb2RlOnIsY29kZV92ZXJpZmllcjphLGdyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIscmVkaXJlY3RfdXJpOm59KSxtb2RlOiJjb3JzIn0pO2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHRva2VuOiAke28uc3RhdHVzfWApO2xldCBsPWF3YWl0IG8uanNvbigpO1o4YShsKTtsZXR7YWNjZXNzX3Rva2VuOnAscmVmcmVzaF90b2tlbjpkfT1sLHU9WThhKGwpO3JldHVybiBuZXcgcyhlLGQscCx1KX1hc3luYyBfZmV0Y2hOZXdBY2Nlc3NUb2tlbigpe3RyeXtsZXQgZT1hd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6InJlZnJlc2hfdG9rZW4iLHJlZnJlc2hfdG9rZW46dGhpcy5yZWZyZXNofSksbW9kZToiY29ycyIsc2lnbmFsOnRoaXMuX3Jldm9rZWQuc2lnbmFsfSk7aWYoIWUub2spdGhyb3cgRzhhO2xldCB0PWF3YWl0IGUuanNvbigpO1o4YSh0KTtsZXR7YWNjZXNzX3Rva2VuOmEscmVmcmVzaF90b2tlbjpyfT10LG49WThhKHQpO3JldHVybiB0aGlzLmFjY2Vzcz1hLHRoaXMuZXhwaXJlcz1uLHRoaXMucmVmcmVzaD1yLCEwfWNhdGNoe3JldHVybiBwMWUoKSwhMX19X3N5bmMoKXtKWGEodGhpcyksdFFhKHRoaXMuYWNjZXNzKX1hc3luYyBfc3RhcnRSZWZyZXNoVG9rZW5zTG9vcChlKXtmb3IoOzspe2xldCB0PXRoaXMuZXhwaXJlcy1EYXRlLm5vdygpLTFlMztpZihhd2FpdCBlUWEoTWF0aC5tYXgodCwxZTMpKSx0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXJldHVybjtpZighdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpKXtlKCk7cmV0dXJufXRoaXMuX3N5bmMoKX19fTtpKHAxZSwiY2xlYXJUb2tlbnNJblN0b3JhZ2UiKTtpKFg4YSwiYWRkQWNjZXNzVG9rZW5DaGFuZ2VkTGlzdGVuZXIiKTtpKFFYYSwicmVhZFRva2Vuc0Zyb21TdG9yYWdlIik7aShKWGEsInBlcnNpc3RUb2tlbnNJblN0b3JhZ2UiKTtpKFk4YSwiZ2V0RXhwaXJlc0Zyb21Ub2tlblJlc3BvbnNlIik7aShaOGEsImFzc2VydFRva2VuUmVzcG9uc2UiKTtpKGVRYSwid2FpdCIpO2kodFFhLCJmaXJlQWNjZXNzVG9rZW5DaGFuZ2VkIil9KTt2YXIgdXJ0LGgxZSxfdSxwcnQ9ZygoKT0+e3UxZSgpO3VydD17fSxoMWU9bnVsbCxfdT17Z2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBoMWU9PW51bGwmJihoMWU9bmV3IFVSTChnbG9iYWxUaGlzLldFQkNPTlRBSU5FUl9BUElfSUZSQU1FX1VSTD8/VThhKS5vcmlnaW4pLGgxZX0sc2V0IGVkaXRvck9yaWdpbihzKXtoMWU9bmV3IFVSTChzKS5vcmlnaW59LHNldFF1ZXJ5UGFyYW0ocyxlKXt1cnRbc109ZX0sZ2V0IHVybCgpe2xldCBzPW5ldyBVUkwodGhpcy5lZGl0b3JPcmlnaW4pO3MucGF0aG5hbWU9Ii9oZWFkbGVzcyI7Zm9yKGxldCBlIGluIHVydClzLnNlYXJjaFBhcmFtcy5zZXQoZSx1cnRbZV0pO3JldHVybiBzLnNlYXJjaFBhcmFtcy5zZXQoInZlcnNpb24iLCIxLjYuMSIpLHN9fX0pO2FzeW5jIGZ1bmN0aW9uIFE4YShzKXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocyksdD1uZXcgVWludDhBcnJheShhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSkpO3JldHVybiBidG9hKHQucmVkdWNlKChhLHIpPT5hK1N0cmluZy5mcm9tQ29kZVBvaW50KHIpLCIiKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBKOGEoKXtsZXQgcz1uZXcgVWludDhBcnJheSg5Nik7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhzKTtsZXQgZT0iIjtmb3IobGV0IHQ9MDt0PDMyOysrdCllKz1hUWEoc1szKnQrMF0sc1szKnQrMV0sc1szKnQrMl0pO3JldHVybiBlfWZ1bmN0aW9uIGFRYShzLGUsdCl7bGV0IGE9cz4+MixyPShzJjMpPDw0fGU+PjQsbj1lJjE1fCh0JjE5Mik+PjIsbz10JjYzO3JldHVyblthLHIsbixvXS5tYXAoc1FhKS5qb2luKCIiKX1mdW5jdGlvbiBzUWEocyl7bGV0IGU7cmV0dXJuIHM8MjY/ZT1zKzY1OnM8NTI/ZT1zLTI2Kzk3OnM8NjI/ZT1zLTUyKzQ4OmU9cz09PTYyPzMwOjQ1LFN0cmluZy5mcm9tQ2hhckNvZGUoZSl9dmFyIGVnYT1nKCgpPT57aShROGEsIlMyNTYiKTtpKEo4YSwibmV3Q29kZVZlcmlmaWVyIik7aShhUWEsIm5leHRGb3VyQ2hhcnMiKTtpKHNRYSwidW5yZXNlcnZlZENoYXJhY3RlcnMiKX0pO2Z1bmN0aW9uIHRnYSgpe2xldCBzLGU7ZnVuY3Rpb24gdCgpe2U9bmV3IFByb21pc2UoYT0+cz1hKX1yZXR1cm4gaSh0LCJyZXNldCIpLHQoKSx7Z2V0IHByb21pc2UoKXtyZXR1cm4gZX0scmVzb2x2ZShhKXtyZXR1cm4gcyhhKX0scmVzZXQ6dH19dmFyIGFnYT1nKCgpPT57aSh0Z2EsInJlc2V0dGFibGVQcm9taXNlIil9KTtmdW5jdGlvbiBpUShzKXtiYS5icm9hZGNhc3RDaGFubmVsJiYoYmEuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShzKSxsb2NhbFN0b3JhZ2UuZ2V0SXRlbShkMWUpPT09InRydWUiJiZzLnR5cGUhPT0iYXV0aC1sb2dvdXQiJiYobG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZDFlKSxzZXRUaW1lb3V0KCgpPT57d2luZG93LmNsb3NlKCl9KSkpfWZ1bmN0aW9uIGhydCgpe19nLmZpcmVFdmVudCgpLGlRKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX1mdW5jdGlvbiBpZ2EoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWZ9YXN5bmMgZnVuY3Rpb24gcmdhKCl7bGV0IHM9SjhhKCk7bG9jYWxTdG9yYWdlLnNldEl0ZW0oYzFlLHMpO2xldCBlPWF3YWl0IFE4YShzKSx0PW5ldyBVUkwoIi9vYXV0aC9hdXRob3JpemUiLGJhLmVkaXRvck9yaWdpbikse3NlYXJjaFBhcmFtczphfT10O3JldHVybiBhLmFwcGVuZCgicmVzcG9uc2VfdHlwZSIsImNvZGUiKSxhLmFwcGVuZCgiY2xpZW50X2lkIixiYS5jbGllbnRJZCksYS5hcHBlbmQoInJlZGlyZWN0X3VyaSIsaWdhKCkpLGEuYXBwZW5kKCJzY29wZSIsYmEub2F1dGhTY29wZSksYS5hcHBlbmQoImNvZGVfY2hhbGxlbmdlIixlKSxhLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIiwiUzI1NiIpLHQudG9TdHJpbmcoKX1mdW5jdGlvbiBmcnQocyl7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJPb3BzISBUb2tlbnMgaXMgbm90IGRlZmluZWQgd2hlbiBpdCBhbHdheXMgc2hvdWxkIGJlLiIpfXZhciBiYSxzZ2EsX2csb2dhLG1ydD1nKCgpPT57ZHJ0KCk7dTFlKCk7cHJ0KCk7ZWdhKCk7YWdhKCk7Y3J0KCk7YmE9e2luaXRpYWxpemVkOiExLGJvb3RDYWxsZWQ6ITEsYXV0aENvbXBsZXRlOnRnYSgpLGNsaWVudElkOiIiLG9hdXRoU2NvcGU6IiIsYnJvYWRjYXN0Q2hhbm5lbDpudWxsLGdldCBlZGl0b3JPcmlnaW4oKXtyZXR1cm4gX3UuZWRpdG9yT3JpZ2lufSx0b2tlbnM6bnVsbH0sc2dhPW5ldyBTZyxfZz1uZXcgU2c7aShpUSwiYnJvYWRjYXN0TWVzc2FnZSIpO29nYT17aW5pdCh7ZWRpdG9yT3JpZ2luOnMsY2xpZW50SWQ6ZSxzY29wZTp0fSl7aWYoYmEuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJJbml0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIik7aWYoITAmJmJhLmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgYXV0aC5pbml0YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO2JhLmluaXRpYWxpemVkPSEwLGJhLnRva2Vucz1seC5mcm9tU3RvcmFnZSgpLGJhLmNsaWVudElkPWUsYmEub2F1dGhTY29wZT10LGJhLmJyb2FkY2FzdENoYW5uZWw9bmV3IEJyb2FkY2FzdENoYW5uZWwoVzhhKSxfdS5zZXRRdWVyeVBhcmFtKCJjbGllbnRfaWQiLGUpLHMmJihfdS5lZGl0b3JPcmlnaW49bmV3IFVSTChzKS5vcmlnaW4pLF9nLmxpc3RlbigoKT0+YmEuYXV0aENvbXBsZXRlLnJlc2V0KCkpLGJhLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscik7YXN5bmMgZnVuY3Rpb24gcihwKXtsZXQgZD1wLmRhdGE7aWYoZC50eXBlPT09ImF1dGgtY29tcGxldGUiKXtiYS50b2tlbnM9bHguZnJvbVN0b3JhZ2UoKSxhd2FpdCBiYS50b2tlbnMuYWN0aXZhdGUoaHJ0KSxiYS5hdXRoQ29tcGxldGUucmVzb2x2ZSgpO3JldHVybn1pZihkLnR5cGU9PT0iYXV0aC1mYWlsZWQiKXtzZ2EuZmlyZUV2ZW50KGQpO3JldHVybn1pZihkLnR5cGU9PT0iYXV0aC1sb2dvdXQiKXtfZy5maXJlRXZlbnQoKTtyZXR1cm59fWlmKGkociwib25DaGFubmVsTWVzc2FnZSIpLGJhLnRva2Vucyl7bGV0IHA9YmEudG9rZW5zO2lmKHAub3JpZ2luPT09YmEuZWRpdG9yT3JpZ2luKXJldHVybihhc3luYygpPT57aWYoIWF3YWl0IHAuYWN0aXZhdGUoaHJ0KSl7aWYoYmEudG9rZW5zIT09cClyZXR1cm47X2cuZmlyZUV2ZW50KCk7cmV0dXJufWJhLmF1dGhDb21wbGV0ZS5yZXNvbHZlKCl9KSgpLHtzdGF0dXM6ImF1dGhvcml6ZWQifTtwMWUoKSxiYS50b2tlbnM9bnVsbH1sZXQgbj1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx7c2VhcmNoUGFyYW1zOm99PW4sbD1pKCgpPT53aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsbiksInVwZGF0ZVVSTCIpO2lmKG8uaGFzKG4xZSkpe2xldCBwPW8uZ2V0KG4xZSksZD1vLmdldChscnQpO3JldHVybiBvLmRlbGV0ZShuMWUpLG8uZGVsZXRlKGxydCksbCgpLGlRKHt0eXBlOiJhdXRoLWZhaWxlZCIsZXJyb3I6cCxkZXNjcmlwdGlvbjpkfSkse3N0YXR1czoiYXV0aC1mYWlsZWQiLGVycm9yOnAsZGVzY3JpcHRpb246ZH19aWYoby5oYXMobzFlKSl7bGV0IHA9by5nZXQobzFlKSxkPWJhLmVkaXRvck9yaWdpbjtvLmRlbGV0ZShvMWUpLGwoKTtsZXQgdT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShjMWUpO3JldHVybiB1Pyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShjMWUpLGx4LmZyb21BdXRoQ29kZSh7ZWRpdG9yT3JpZ2luOmQsY2xpZW50SWQ6YmEuY2xpZW50SWQsYXV0aENvZGU6cCxjb2RlVmVyaWZpZXI6dSxyZWRpcmVjdFVyaTppZ2EoKX0pLnRoZW4oYXN5bmMgYz0+e2lmKGJhLnRva2Vucz1jLGZydChiYS50b2tlbnMpLCFhd2FpdCBiYS50b2tlbnMuYWN0aXZhdGUoaHJ0KSl0aHJvdyBuZXcgRXJyb3I7YmEuYXV0aENvbXBsZXRlLnJlc29sdmUoKSxpUSh7dHlwZToiYXV0aC1jb21wbGV0ZSJ9KX0pLmNhdGNoKGM9Pntjb25zb2xlLmVycm9yKGMpLF9nLmZpcmVFdmVudCgpLGlRKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0pLHtzdGF0dXM6ImF1dGhvcml6ZWQifSk6e3N0YXR1czoibmVlZC1hdXRoIn19cmV0dXJue3N0YXR1czoibmVlZC1hdXRoIn19LGFzeW5jIHN0YXJ0QXV0aEZsb3coe3BvcHVwOnN9PXt9KXtpZighYmEuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJhdXRoLmluaXQgbXVzdCBiZSBjYWxsZWQgZmlyc3QiKTtpZihzKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShkMWUsInRydWUiKTtsZXQgZT01MDAsdD02MjAsYT13aW5kb3cuc2NyZWVuTGVmdCsod2luZG93Lm91dGVyV2lkdGgtdCkvMixyPXdpbmRvdy5zY3JlZW5Ub3ArKHdpbmRvdy5vdXRlckhlaWdodC1lKS8yO3dpbmRvdy5vcGVuKGF3YWl0IHJnYSgpLCJfYmxhbmsiLGBwb3B1cCx3aWR0aD0ke3R9LGhlaWdodD0ke2V9LGxlZnQ9JHthfSx0b3A9JHtyfWApfWVsc2Ugd2luZG93LmxvY2F0aW9uLmhyZWY9YXdhaXQgcmdhKCl9LGFzeW5jIGxvZ291dCh7aWdub3JlUmV2b2tlRXJyb3I6c309e30pe2F3YWl0IGJhLnRva2Vucz8ucmV2b2tlKGJhLmNsaWVudElkLHM/PyExKSxfZy5maXJlRXZlbnQoKSxpUSh7dHlwZToiYXV0aC1sb2dvdXQifSl9LGxvZ2dlZEluKCl7cmV0dXJuIGJhLmF1dGhDb21wbGV0ZS5wcm9taXNlfSxvbihzLGUpe3N3aXRjaChzKXtjYXNlImF1dGgtZmFpbGVkIjpyZXR1cm4gc2dhLmxpc3RlbihlKTtjYXNlImxvZ2dlZC1vdXQiOnJldHVybiBfZy5saXN0ZW4oZSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgJyR7c30nLmApfX19O2koaHJ0LCJvbkZhaWxlZFRva2VuUmVmcmVzaCIpO2koaWdhLCJkZWZhdWx0UmVkaXJlY3RVcmkiKTtpKHJnYSwiZ2VuZXJhdGVPQXV0aFJlcXVlc3QiKTtpKGZydCwiYXNzZXJ0QXV0aFRva2VucyIpfSk7dmFyIE11LGYxZT1nKCgpPT57KGZ1bmN0aW9uKHMpe3MuVW5jYXVnaHRFeGNlcHRpb249IlBSRVZJRVdfVU5DQVVHSFRfRVhDRVBUSU9OIixzLlVuaGFuZGxlZFJlamVjdGlvbj0iUFJFVklFV19VTkhBTkRMRURfUkVKRUNUSU9OIixzLkNvbnNvbGVFcnJvcj0iUFJFVklFV19DT05TT0xFX0VSUk9SIn0pKE11fHwoTXU9e30pKX0pO2Z1bmN0aW9uIHhydChzLGU9c2VsZil7ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKGZ1bmN0aW9uIHQoYSl7aWYoIWF8fCFhLmRhdGEpcmV0dXJuO2xldHtpZDpyLHR5cGU6bixwYXRoOm99PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LGEuZGF0YSksbD0oYS5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChNZykscDt0cnl7bGV0IGQ9by5zbGljZSgwLC0xKS5yZWR1Y2UoKGMsYik9PmNbYl0scyksdT1vLnJlZHVjZSgoYyxiKT0+Y1tiXSxzKTtzd2l0Y2gobil7Y2FzZSAwOnA9dTticmVhaztjYXNlIDE6ZFtvLnNsaWNlKC0xKVswXV09TWcoYS5kYXRhLnZhbHVlKSxwPSEwO2JyZWFrO2Nhc2UgMjpwPXUuYXBwbHkoZCxsKTticmVhaztjYXNlIDM6e2xldCBjPW5ldyB1KC4uLmwpO3A9bWdhKGMpfWJyZWFrO2Nhc2UgNDp7bGV0e3BvcnQxOmMscG9ydDI6Yn09bmV3IE1lc3NhZ2VDaGFubmVsO3hydChzLGIpLHA9ZmdhKGMsW2NdKX1icmVhaztjYXNlIDU6cD12b2lkIDA7YnJlYWt9fWNhdGNoKGQpe3A9e3ZhbHVlOmQsW2JydF06MH19UHJvbWlzZS5yZXNvbHZlKHApLmNhdGNoKGQ9Pih7dmFsdWU6ZCxbYnJ0XTowfSkpLnRoZW4oZD0+e2xldFt1LGNdPXdydChkKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx1KSx7aWQ6cn0pLGMpLG49PT01JiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0KSxkZ2EoZSkpfSl9LCJjYWxsYmFjayIpKSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gbFFhKHMpe3JldHVybiBzLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGRnYShzKXtsUWEocykmJnMuY2xvc2UoKX1mdW5jdGlvbiB1Z2EocyxlKXtyZXR1cm4geXJ0KHMsW10sZSl9ZnVuY3Rpb24gbTFlKHMpe2lmKHMpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiB5cnQocyxlPVtdLHQ9ZnVuY3Rpb24oKXt9KXtsZXQgYT0hMSxyPW5ldyBQcm94eSh0LHtnZXQobixvKXtpZihtMWUoYSksbz09PWxnYSlyZXR1cm4oKT0+Y3gocyx7dHlwZTo1LHBhdGg6ZS5tYXAobD0+bC50b1N0cmluZygpKX0pLnRoZW4oKCk9PntkZ2EocyksYT0hMH0pO2lmKG89PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjppKCgpPT5yLCJ0aGVuIil9O2xldCBsPWN4KHMse3R5cGU6MCxwYXRoOmUubWFwKHA9PnAudG9TdHJpbmcoKSl9KS50aGVuKE1nKTtyZXR1cm4gbC50aGVuLmJpbmQobCl9cmV0dXJuIHlydChzLFsuLi5lLG9dKX0sc2V0KG4sbyxsKXttMWUoYSk7bGV0W3AsZF09d3J0KGwpO3JldHVybiBjeChzLHt0eXBlOjEscGF0aDpbLi4uZSxvXS5tYXAodT0+dS50b1N0cmluZygpKSx2YWx1ZTpwfSxkKS50aGVuKE1nKX0sYXBwbHkobixvLGwpe20xZShhKTtsZXQgcD1lW2UubGVuZ3RoLTFdO2lmKHA9PT1uZ2EpcmV0dXJuIGN4KHMse3R5cGU6NH0pLnRoZW4oTWcpO2lmKHA9PT0iYmluZCIpcmV0dXJuIHlydChzLGUuc2xpY2UoMCwtMSkpO2xldFtkLHVdPXBnYShsKTtyZXR1cm4gY3gocyx7dHlwZToyLHBhdGg6ZS5tYXAoYz0+Yy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6ZH0sdSkudGhlbihNZyl9LGNvbnN0cnVjdChuLG8pe20xZShhKTtsZXRbbCxwXT1wZ2Eobyk7cmV0dXJuIGN4KHMse3R5cGU6MyxwYXRoOmUubWFwKGQ9PmQudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Omx9LHApLnRoZW4oTWcpfX0pO3JldHVybiByfWZ1bmN0aW9uIGNRYShzKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxzKX1mdW5jdGlvbiBwZ2Eocyl7bGV0IGU9cy5tYXAod3J0KTtyZXR1cm5bZS5tYXAodD0+dFswXSksY1FhKGUubWFwKHQ9PnRbMV0pKV19ZnVuY3Rpb24gZmdhKHMsZSl7cmV0dXJuIGhnYS5zZXQocyxlKSxzfWZ1bmN0aW9uIG1nYShzKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihzLHtbZ3J0XTohMH0pfWZ1bmN0aW9uIGRRYShzLGU9c2VsZix0PSIqIil7cmV0dXJue3Bvc3RNZXNzYWdlOmkoKGEscik9PnMucG9zdE1lc3NhZ2UoYSx0LHIpLCJwb3N0TWVzc2FnZSIpLGFkZEV2ZW50TGlzdGVuZXI6ZS5hZGRFdmVudExpc3RlbmVyLmJpbmQoZSkscmVtb3ZlRXZlbnRMaXN0ZW5lcjplLnJlbW92ZUV2ZW50TGlzdGVuZXIuYmluZChlKX19ZnVuY3Rpb24gd3J0KHMpe2ZvcihsZXRbZSx0XW9mIHZydClpZih0LmNhbkhhbmRsZShzKSl7bGV0W2Escl09dC5zZXJpYWxpemUocyk7cmV0dXJuW3t0eXBlOjMsbmFtZTplLHZhbHVlOmF9LHJdfXJldHVyblt7dHlwZTowLHZhbHVlOnN9LGhnYS5nZXQocyl8fFtdXX1mdW5jdGlvbiBNZyhzKXtzd2l0Y2gocy50eXBlKXtjYXNlIDM6cmV0dXJuIHZydC5nZXQocy5uYW1lKS5kZXNlcmlhbGl6ZShzLnZhbHVlKTtjYXNlIDA6cmV0dXJuIHMudmFsdWV9fWZ1bmN0aW9uIGN4KHMsZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoYT0+e2xldCByPXVRYSgpO3MuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaShmdW5jdGlvbiBuKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PXJ8fChzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG4pLGEoby5kYXRhKSl9LCJsIikpLHMuc3RhcnQmJnMuc3RhcnQoKSxzLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LGUpLHQpfSl9ZnVuY3Rpb24gdVFhKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX12YXIgaVFhLHJRYSxZYyxncnQsbmdhLGxnYSxicnQsY2dhLG9RYSxuUWEsdnJ0LGhnYSxnZ2E9ZygoKT0+e2lRYT1PYmplY3QuZGVmaW5lUHJvcGVydHksclFhPWkoKHMsZSk9Pntmb3IodmFyIHQgaW4gZSlpUWEocyx0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LCJfX2V4cG9ydCIpLFljPXt9O3JRYShZYyx7Y3JlYXRlRW5kcG9pbnQ6aSgoKT0+bmdhLCJjcmVhdGVFbmRwb2ludCIpLGV4cG9zZTppKCgpPT54cnQsImV4cG9zZSIpLHByb3h5OmkoKCk9Pm1nYSwicHJveHkiKSxwcm94eU1hcmtlcjppKCgpPT5ncnQsInByb3h5TWFya2VyIikscmVsZWFzZVByb3h5OmkoKCk9PmxnYSwicmVsZWFzZVByb3h5IiksdHJhbnNmZXI6aSgoKT0+ZmdhLCJ0cmFuc2ZlciIpLHRyYW5zZmVySGFuZGxlcnM6aSgoKT0+dnJ0LCJ0cmFuc2ZlckhhbmRsZXJzIiksd2luZG93RW5kcG9pbnQ6aSgoKT0+ZFFhLCJ3aW5kb3dFbmRwb2ludCIpLHdyYXA6aSgoKT0+dWdhLCJ3cmFwIil9KTtncnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksbmdhPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLGxnYT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksYnJ0PVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxjZ2E9aShzPT50eXBlb2Ygcz09Im9iamVjdCImJnMhPT1udWxsfHx0eXBlb2Ygcz09ImZ1bmN0aW9uIiwiaXNPYmplY3QiKSxvUWE9e2NhbkhhbmRsZTppKHM9PmNnYShzKSYmc1tncnRdLCJjYW5IYW5kbGUiKSxzZXJpYWxpemUocyl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiB4cnQocyxlKSxbdCxbdF1dfSxkZXNlcmlhbGl6ZShzKXtyZXR1cm4gcy5zdGFydCgpLHVnYShzKX19LG5RYT17Y2FuSGFuZGxlOmkocz0+Y2dhKHMpJiZicnQgaW4gcywiY2FuSGFuZGxlIiksc2VyaWFsaXplKHt2YWx1ZTpzfSl7bGV0IGU7cmV0dXJuIHMgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOnMubWVzc2FnZSxuYW1lOnMubmFtZSxzdGFjazpzLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpzfSxbZSxbXV19LGRlc2VyaWFsaXplKHMpe3Rocm93IHMuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihzLnZhbHVlLm1lc3NhZ2UpLHMudmFsdWUpOnMudmFsdWV9fSx2cnQ9bmV3IE1hcChbWyJwcm94eSIsb1FhXSxbInRocm93IixuUWFdXSk7aSh4cnQsImV4cG9zZSIpO2kobFFhLCJpc01lc3NhZ2VQb3J0Iik7aShkZ2EsImNsb3NlRW5kUG9pbnQiKTtpKHVnYSwid3JhcCIpO2kobTFlLCJ0aHJvd0lmUHJveHlSZWxlYXNlZCIpO2koeXJ0LCJjcmVhdGVQcm94eSIpO2koY1FhLCJteUZsYXQiKTtpKHBnYSwicHJvY2Vzc0FyZ3VtZW50cyIpO2hnYT1uZXcgV2Vha01hcDtpKGZnYSwidHJhbnNmZXIiKTtpKG1nYSwicHJveHkiKTtpKGRRYSwid2luZG93RW5kcG9pbnQiKTtpKHdydCwidG9XaXJlVmFsdWUiKTtpKE1nLCJmcm9tV2lyZVZhbHVlIik7aShjeCwicmVxdWVzdFJlc3BvbnNlTWVzc2FnZSIpO2kodVFhLCJnZW5lcmF0ZVVVSUQiKX0pO3ZhciBiZ2E9ZygoKT0+e30pO2Z1bmN0aW9uIGtydChzKXtyZXR1cm4hKHM9PW51bGx8fHR5cGVvZiBzIT0ib2JqZWN0Inx8ISgidHlwZSJpbiBzKXx8IXBRYS5pbmNsdWRlcyhzLnR5cGUpKX12YXIgcFFhLHZnYT1nKCgpPT57ZjFlKCk7cFFhPVtNdS5Db25zb2xlRXJyb3IsTXUuVW5jYXVnaHRFeGNlcHRpb24sTXUuVW5oYW5kbGVkUmVqZWN0aW9uXTtpKGtydCwiaXNQcmV2aWV3TWVzc2FnZSIpfSk7dmFyIFNydD1nKCgpPT57YmdhKCk7ZjFlKCk7dmdhKCl9KTtmdW5jdGlvbiB6ZyhzKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBzP09iamVjdC5hc3NpZ24oZSxzKTplfXZhciB4Z2E9ZygoKT0+e2koemcsIm51bGxQcm90b3R5cGUiKX0pO2Z1bmN0aW9uIF9ydChzKXtsZXQgZT17ZDp7fX07Zm9yKGxldCB0IG9mIE9iamVjdC5rZXlzKHMpKXtsZXQgYT1zW3RdO2lmKCJmaWxlImluIGEpe2lmKCJzeW1saW5rImluIGEuZmlsZSl7ZS5kW3RdPXtmOntsOmEuZmlsZS5zeW1saW5rfX07Y29udGludWV9bGV0IG49YS5maWxlLmNvbnRlbnRzLG89dHlwZW9mIG49PSJzdHJpbmciP246aFFhLmRlY29kZShuKSxsPXR5cGVvZiBuPT0ic3RyaW5nIj97fTp7YjohMH07ZS5kW3RdPXtmOntjOm8sLi4ubH19O2NvbnRpbnVlfWxldCByPV9ydChhLmRpcmVjdG9yeSk7ZS5kW3RdPXJ9cmV0dXJuIGV9ZnVuY3Rpb24gTXJ0KHMpe2xldCBlPXpnKCk7aWYoImYiaW4gcyl0aHJvdyBuZXcgRXJyb3IoIkl0IGlzIG5vdCBwb3NzaWJsZSB0byBleHBvcnQgYSBzaW5nbGUgZmlsZSBpbiB0aGUgSlNPTiBmb3JtYXQuIik7aWYoImQiaW4gcylmb3IobGV0IHQgb2YgT2JqZWN0LmtleXMocy5kKSl7bGV0IGE9cy5kW3RdOyJkImluIGE/ZVt0XT16Zyh7ZGlyZWN0b3J5Ok1ydChhKX0pOiJmImluIGEmJigiYyJpbiBhLmY/ZVt0XT16Zyh7ZmlsZTp6Zyh7Y29udGVudHM6YS5mLmI/ZlFhKGEuZi5jKTphLmYuY30pfSk6ImwiaW4gYS5mJiYoZVt0XT16Zyh7ZmlsZTp6Zyh7c3ltbGluazphLmYubH0pfSkpKX1yZXR1cm4gZX1mdW5jdGlvbiBmUWEocyl7bGV0IGU9bmV3IFVpbnQ4QXJyYXkocy5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKWVbdF09c1t0XS5jaGFyQ29kZUF0KDApO3JldHVybiBlfXZhciBoUWEseWdhPWcoKCk9Pnt4Z2EoKTtoUWE9bmV3IFRleHREZWNvZGVyKCJsYXRpbjEiKTtpKF9ydCwidG9JbnRlcm5hbEZpbGVTeXN0ZW1UcmVlIik7aShNcnQsInRvRXh0ZXJuYWxGaWxlU3lzdGVtVHJlZSIpO2koZlFhLCJmcm9tQmluYXJ5U3RyaW5nIil9KTtmdW5jdGlvbiB4eW8ocyl7aWYoYmEuYm9vdENhbGxlZCl0aHJvdyBuZXcgRXJyb3IoImBjb25maWd1cmVBUElLZXlgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgIik7X3Uuc2V0UXVlcnlQYXJhbSgiY2xpZW50X2lkIixzKX1hc3luYyBmdW5jdGlvbiB2UWEocyl7bGV0e3NlcnZlclByb21pc2U6ZX09eFFhKHMpLGE9YXdhaXQoYXdhaXQgZSkuYnVpbGQoe2hvc3Q6d2luZG93LmxvY2F0aW9uLmhvc3QsdmVyc2lvbjoiMS42LjEiLHdvcmtkaXJOYW1lOnMud29ya2Rpck5hbWUsZm9yd2FyZFByZXZpZXdFcnJvcnM6cy5mb3J3YXJkUHJldmlld0Vycm9yc30pLFtyLG4sb109YXdhaXQgUHJvbWlzZS5hbGwoW2EuZnMoKSxhLnByZXZpZXdTY3JpcHQoKSxhLnJ1bnRpbWVJbmZvKCldKTtyZXR1cm4gbmV3IENnKGEscixuLG8pfWZ1bmN0aW9uIExydChzKXtpZihzIT1udWxsKXJldHVybiBlPT57ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/cyh3Z2EuZGVjb2RlKGUpKTplPT1udWxsJiZzKG51bGwpfX1mdW5jdGlvbiB2MWUocyl7aWYocyE9bnVsbClyZXR1cm4gWWMucHJveHkocyl9ZnVuY3Rpb24geFFhKHMpe2lmKGIxZSE9bnVsbClyZXR1cm4gcy5jb2VwIT09enJ0LmNvZXAmJihjb25zb2xlLndhcm4oYEF0dGVtcHRpbmcgdG8gYm9vdCBXZWJDb250YWluZXIgd2l0aCAnY29lcDogJHtzLmNvZXB9J2ApLGNvbnNvbGUud2FybihgRmlyc3QgYm9vdCBoYWQgJ2NvZXA6ICR7enJ0LmNvZXB9JywgbmV3IHNldHRpbmdzIHdpbGwgbm90IHRha2UgZWZmZWN0IWApKSx7c2VydmVyUHJvbWlzZTpiMWV9O3MuY29lcCYmX3Uuc2V0UXVlcnlQYXJhbSgiY29lcCIscy5jb2VwKSxzLmV4cGVyaW1lbnRhbE5vZGUmJl91LnNldFF1ZXJ5UGFyYW0oImV4cGVyaW1lbnRhbF9ub2RlIiwiMSIpO2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2Uuc3R5bGUuZGlzcGxheT0ibm9uZSIsZS5zZXRBdHRyaWJ1dGUoImFsbG93IiwiY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIik7bGV0IHQ9X3UudXJsO2Uuc3JjPXQudG9TdHJpbmcoKTtsZXR7b3JpZ2luOmF9PXQ7cmV0dXJuIHpydD17Li4uc30sYjFlPW5ldyBQcm9taXNlKHI9PntsZXQgbj1pKG89PntpZihvLm9yaWdpbiE9PWEpcmV0dXJuO2xldHtkYXRhOmx9PW87aWYobC50eXBlPT09ImluaXQiKXtyKFljLndyYXAoby5wb3J0c1swXSkpO3JldHVybn1pZihsLnR5cGU9PT0id2FybmluZyIpe2NvbnNvbGVbbC5sZXZlbF0uY2FsbChjb25zb2xlLGwubWVzc2FnZSk7cmV0dXJufX0sIm9uTWVzc2FnZSIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKX0pLGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGUsbnVsbCkse3NlcnZlclByb21pc2U6YjFlfX1mdW5jdGlvbiB5UWEocyl7cmV0dXJuIHR5cGVvZiBzWzBdPT0ic3RyaW5nIn1mdW5jdGlvbiB3UWEocyl7cmV0dXJuIHNbMF1pbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24ga1FhKCl7bGV0IHM9bnVsbDtyZXR1cm57c3RyZWFtOm5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQoYSl7cz1hfX0pLHB1c2g6aShhPT57YSE9bnVsbD9zPy5lbnF1ZXVlKGEpOihzPy5jbG9zZSgpLHM9bnVsbCl9LCJwdXNoIil9fWZ1bmN0aW9uIFNRYShzKXtsZXQgZT0hMSx0PWkoKCk9Pnt9LCJ1bnN1YnNjcmliZSIpO3JldHVybntzdWJzY3JpYmUocil7cmV0dXJuIHIudGhlbihuPT57dD1uLGUmJnQoKX0pLCgpPT57ZT0hMCx0KCl9fSxsaXN0ZW5lcjppKCgoLi4ucik9PntlfHxzKC4uLnIpfSksIndyYXBwZWQiKX19dmFyIHZ5byxnMWUsYjFlLHpydCx3Z2EsbVFhLENnLGdRYSxiUWEsQ3J0LFRydCwkcnQsRHJ0LEVydD1nKCgpPT57bXJ0KCk7ZjFlKCk7Z2dhKCk7bXJ0KCk7ZHJ0KCk7cHJ0KCk7U3J0KCk7eWdhKCk7U3J0KCk7dnlvPW9nYSxnMWU9bnVsbCxiMWU9bnVsbCx6cnQ9e30sd2dhPW5ldyBUZXh0RGVjb2RlcixtUWE9bmV3IFRleHRFbmNvZGVyLENnPWNsYXNzIHN7c3RhdGlje2kodGhpcywiV2ViQ29udGFpbmVyIil9X2luc3RhbmNlO19ydW50aW1lSW5mbztmcztzdGF0aWMgX2luc3RhbmNlPW51bGw7c3RhdGljIF90ZWFyZG93blByb21pc2U9bnVsbDtfdG9ybkRvd249ITE7X3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyPWkoKCk9Pnt9LCJfdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXIiKTtjb25zdHJ1Y3RvcihlLHQsYSxyKXt0aGlzLl9pbnN0YW5jZT1lLHRoaXMuX3J1bnRpbWVJbmZvPXIsdGhpcy5mcz1uZXcgRHJ0KHQpLGJhLmluaXRpYWxpemVkJiYodGhpcy5fdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXI9WDhhKG49Pnt0aGlzLl9pbnN0YW5jZS5zZXRDcmVkZW50aWFscyh7YWNjZXNzVG9rZW46bixlZGl0b3JPcmlnaW46YmEuZWRpdG9yT3JpZ2lufSl9KSwoYXN5bmMoKT0+e2F3YWl0IGJhLmF1dGhDb21wbGV0ZS5wcm9taXNlLCF0aGlzLl90b3JuRG93biYmKGZydChiYS50b2tlbnMpLGF3YWl0IHRoaXMuX2luc3RhbmNlLnNldENyZWRlbnRpYWxzKHthY2Nlc3NUb2tlbjpiYS50b2tlbnMuYWNjZXNzLGVkaXRvck9yaWdpbjpiYS5lZGl0b3JPcmlnaW59KSl9KSgpLmNhdGNoKG49Pntjb25zb2xlLmVycm9yKG4pfSkpfWFzeW5jIHNwYXduKGUsdCxhKXtsZXQgcj1bXTtBcnJheS5pc0FycmF5KHQpP3I9dDphPXQ7bGV0IG4sbz1uZXcgUmVhZGFibGVTdHJlYW07aWYoYT8ub3V0cHV0IT09ITEpe2xldCBtPWtRYSgpO249bS5wdXNoLG89bS5zdHJlYW19bGV0IGwscCxkLHUsYz12MWUoTHJ0KG4pKSxiPXYxZShMcnQobCkpLHY9djFlKExydChkKSkseD1hd2FpdCB0aGlzLl9pbnN0YW5jZS5ydW4oe2NvbW1hbmQ6ZSxhcmdzOnIsY3dkOmE/LmN3ZCxlbnY6YT8uZW52LHRlcm1pbmFsOmE/LnRlcm1pbmFsfSxiLHYsYyk7cmV0dXJuIG5ldyAkcnQoeCxvLHAsdSl9YXN5bmMgZXhwb3J0KGUsdCl7bGV0IGE9e2Zvcm1hdDp0Py5mb3JtYXQ/PyJqc29uIixpbmNsdWRlczp0Py5pbmNsdWRlcyxleGNsdWRlczp0Py5leGNsdWRlcyxleHRlcm5hbDohMH0scj1hd2FpdCB0aGlzLl9pbnN0YW5jZS5zZXJpYWxpemUoZSxhKTtpZihhLmZvcm1hdD09PSJqc29uIil7bGV0IG49SlNPTi5wYXJzZSh3Z2EuZGVjb2RlKHIpKTtyZXR1cm4gTXJ0KG4pfXJldHVybiByfW9uKGUsdCl7aWYoZT09PSJwcmV2aWV3LW1lc3NhZ2UiKXtsZXQgbj10O3Q9aSgobz0+e2tydChvKSYmbihvKX0pLCJsaXN0ZW5lciIpfWxldHtsaXN0ZW5lcjphLHN1YnNjcmliZTpyfT1TUWEodCk7cmV0dXJuIHIodGhpcy5faW5zdGFuY2Uub24oZSxZYy5wcm94eShhKSkpfW1vdW50KGUsdCl7bGV0IGE9ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/ZTplIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IFVpbnQ4QXJyYXkoZSk6bVFhLmVuY29kZShKU09OLnN0cmluZ2lmeShfcnQoZSkpKTtyZXR1cm4gdGhpcy5faW5zdGFuY2UubG9hZEZpbGVzKFljLnRyYW5zZmVyKGEsW2EuYnVmZmVyXSkse21vdW50UG9pbnRzOnQ/Lm1vdW50UG9pbnR9KX1zZXRQcmV2aWV3U2NyaXB0KGUsdCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlLnNldFByZXZpZXdTY3JpcHQoZSx0KX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLl9ydW50aW1lSW5mby5wYXRofWdldCB3b3JrZGlyKCl7cmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmN3ZH10ZWFyZG93bigpe2lmKHRoaXMuX3Rvcm5Eb3duKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyIGFscmVhZHkgdG9ybiBkb3duIik7dGhpcy5fdG9ybkRvd249ITAsdGhpcy5fdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXIoKTtsZXQgZT1pKGFzeW5jKCk9Pnt0cnl7YXdhaXQgdGhpcy5mcy5fdGVhcmRvd24oKSxhd2FpdCB0aGlzLl9pbnN0YW5jZS50ZWFyZG93bigpfWZpbmFsbHl7dGhpcy5faW5zdGFuY2VbWWMucmVsZWFzZVByb3h5XSgpLHMuX2luc3RhbmNlPT09dGhpcyYmKHMuX2luc3RhbmNlPW51bGwpfX0sInRlYXJkb3duRm4iKTtzLl90ZWFyZG93blByb21pc2U9ZSgpfXN0YXRpYyBhc3luYyBib290KGU9e30pe2F3YWl0IHRoaXMuX3RlYXJkb3duUHJvbWlzZSxzLl90ZWFyZG93blByb21pc2U9bnVsbDtsZXR7d29ya2Rpck5hbWU6dH09ZTtpZih3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCYmZS5jb2VwPT09Im5vbmUiJiZjb25zb2xlLndhcm4oYEEgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBoZWFkZXIgaXMgcmVxdWlyZWQgaW4gY3Jvc3Mgb3JpZ2luIGlzb2xhdGVkIGVudmlyb25tZW50cy4KU2V0IHRoZSAnY29lcCcgb3B0aW9uIHRvICdyZXF1aXJlLWNvcnAnLmApLHQ/LmluY2x1ZGVzKCIvIil8fHQ9PT0iLi4ifHx0PT09Ii4iKXRocm93IG5ldyBFcnJvcigid29ya2Rpck5hbWUgc2hvdWxkIGJlIGEgdmFsaWQgZm9sZGVyIG5hbWUiKTtmb3IoYmEuYm9vdENhbGxlZD0hMDtnMWU7KWF3YWl0IGcxZTtpZihzLl9pbnN0YW5jZSl0aHJvdyBuZXcgRXJyb3IoIk9ubHkgYSBzaW5nbGUgV2ViQ29udGFpbmVyIGluc3RhbmNlIGNhbiBiZSBib290ZWQiKTtsZXQgYT12UWEoZSk7ZzFlPWEuY2F0Y2goKCk9Pnt9KTt0cnl7bGV0IHI9YXdhaXQgYTtyZXR1cm4gcy5faW5zdGFuY2U9cixyfWZpbmFsbHl7ZzFlPW51bGx9fX07aSh4eW8sImNvbmZpZ3VyZUFQSUtleSIpO2dRYT0xLGJRYT0yLENydD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEaXJFbnRJbXBsIil9bmFtZTtfdHlwZTtjb25zdHJ1Y3RvcihlLHQpe3RoaXMubmFtZT1lLHRoaXMuX3R5cGU9dH1pc0ZpbGUoKXtyZXR1cm4gdGhpcy5fdHlwZT09PWdRYX1pc0RpcmVjdG9yeSgpe3JldHVybiB0aGlzLl90eXBlPT09YlFhfX0sVHJ0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkZTV2F0Y2hlciIpfV9hcGlDbGllbnQ7X3BhdGg7X29wdGlvbnM7X2xpc3RlbmVyO193cmFwcGVkTGlzdGVuZXI7X3dhdGNoZXI7X2Nsb3NlZD0hMTtjb25zdHJ1Y3RvcihlLHQsYSxyKXt0aGlzLl9hcGlDbGllbnQ9ZSx0aGlzLl9wYXRoPXQsdGhpcy5fb3B0aW9ucz1hLHRoaXMuX2xpc3RlbmVyPXIsdGhpcy5fYXBpQ2xpZW50Ll93YXRjaGVycy5hZGQodGhpcyksdGhpcy5fd3JhcHBlZExpc3RlbmVyPShuLG8pPT57dGhpcy5fbGlzdGVuZXImJiF0aGlzLl9jbG9zZWQmJnRoaXMuX2xpc3RlbmVyKG4sbyl9LHRoaXMuX2FwaUNsaWVudC5fZnMud2F0Y2godGhpcy5fcGF0aCx0aGlzLl9vcHRpb25zLHYxZSh0aGlzLl93cmFwcGVkTGlzdGVuZXIpKS50aGVuKG49PntpZih0aGlzLl93YXRjaGVyPW4sdGhpcy5fY2xvc2VkKXJldHVybiB0aGlzLl90ZWFyZG93bigpfSkuY2F0Y2goY29uc29sZS5lcnJvcil9YXN5bmMgY2xvc2UoKXt0aGlzLl9jbG9zZWR8fCh0aGlzLl9jbG9zZWQ9ITAsdGhpcy5fYXBpQ2xpZW50Ll93YXRjaGVycy5kZWxldGUodGhpcyksYXdhaXQgdGhpcy5fdGVhcmRvd24oKSl9YXN5bmMgX3RlYXJkb3duKCl7YXdhaXQgdGhpcy5fd2F0Y2hlcj8uY2xvc2UoKS5maW5hbGx5KCgpPT57dGhpcy5fd2F0Y2hlcj8uW1ljLnJlbGVhc2VQcm94eV0oKX0pfX0sJHJ0PWNsYXNze3N0YXRpY3tpKHRoaXMsIldlYkNvbnRhaW5lclByb2Nlc3NJbXBsIil9b3V0cHV0O2lucHV0O2V4aXQ7X3Byb2Nlc3M7c3Rkb3V0O3N0ZGVycjtjb25zdHJ1Y3RvcihlLHQsYSxyKXt0aGlzLm91dHB1dD10LHRoaXMuX3Byb2Nlc3M9ZSx0aGlzLmlucHV0PW5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6aShuPT57dGhpcy5fZ2V0UHJvY2VzcygpPy53cml0ZShuKS5jYXRjaCgoKT0+e30pfSwid3JpdGUiKX0pLHRoaXMuZXhpdD10aGlzLl9vbkV4aXQoKSx0aGlzLnN0ZG91dD1hLHRoaXMuc3RkZXJyPXJ9a2lsbCgpe3RoaXMuX3Byb2Nlc3M/LmtpbGwoKX1yZXNpemUoZSl7dGhpcy5fZ2V0UHJvY2VzcygpPy5yZXNpemUoZSl9YXN5bmMgX29uRXhpdCgpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcHJvY2Vzcy5vbkV4aXR9ZmluYWxseXt0aGlzLl9wcm9jZXNzPy5bWWMucmVsZWFzZVByb3h5XSgpLHRoaXMuX3Byb2Nlc3M9bnVsbH19X2dldFByb2Nlc3MoKXtyZXR1cm4gdGhpcy5fcHJvY2Vzcz09bnVsbCYmY29uc29sZS53YXJuKCJUaGlzIHByb2Nlc3MgYWxyZWFkeSBleGl0ZWQiKSx0aGlzLl9wcm9jZXNzfX0sRHJ0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkZpbGVTeXN0ZW1BUElDbGllbnQiKX1fZnM7X3dhdGNoZXJzPW5ldyBTZXQoW10pO2NvbnN0cnVjdG9yKGUpe3RoaXMuX2ZzPWV9cm0oLi4uZSl7cmV0dXJuIHRoaXMuX2ZzLnJtKC4uLmUpfWFzeW5jIHJlYWRGaWxlKGUsdCl7cmV0dXJuIGF3YWl0IHRoaXMuX2ZzLnJlYWRGaWxlKGUsdCl9YXN5bmMgcmVuYW1lKGUsdCl7cmV0dXJuIGF3YWl0IHRoaXMuX2ZzLnJlbmFtZShlLHQpfWFzeW5jIHdyaXRlRmlsZShlLHQsYSl7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2xldCByPXQuYnVmZmVyLnNsaWNlKHQuYnl0ZU9mZnNldCx0LmJ5dGVPZmZzZXQrdC5ieXRlTGVuZ3RoKTt0PVljLnRyYW5zZmVyKG5ldyBVaW50OEFycmF5KHIpLFtyXSl9YXdhaXQgdGhpcy5fZnMud3JpdGVGaWxlKGUsdCxhKX1hc3luYyByZWFkZGlyKGUsdCl7bGV0IGE9YXdhaXQgdGhpcy5fZnMucmVhZGRpcihlLHQpO3JldHVybiB5UWEoYSl8fHdRYShhKT9hOmEubWFwKG49Pm5ldyBDcnQobi5uYW1lLG5bIlN5bWJvbCh0eXBlKSJdKSl9YXN5bmMgbWtkaXIoZSx0KXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMubWtkaXIoZSx0KX13YXRjaChlLHQsYSl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iJiYoYT10LHQ9bnVsbCksbmV3IFRydCh0aGlzLGUsdCxhKX1hc3luYyBfdGVhcmRvd24oKXt0aGlzLl9mc1tZYy5yZWxlYXNlUHJveHldKCksYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnRoaXMuX3dhdGNoZXJzXS5tYXAoZT0+ZS5jbG9zZSgpKSl9fTtpKHZRYSwidW5zeW5jaHJvbml6ZWRCb290Iik7aShMcnQsImJpbmFyeUxpc3RlbmVyIik7aSh2MWUsInByb3h5TGlzdGVuZXIiKTtpKHhRYSwic2VydmVyRmFjdG9yeSIpO2koeVFhLCJpc1N0cmluZ0FycmF5Iik7aSh3UWEsImlzVHlwZWRBcnJheUNvbGxlY3Rpb24iKTtpKGtRYSwic3RyZWFtV2l0aFB1c2giKTtpKFNRYSwic3luY1N1YnNjcmlwdGlvbiIpfSk7dmFyIFRnLFNnYT1nKCgpPT57RXJ0KCk7VGc9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJXZWJDb250YWluZXJFbnZpcm9ubWVudCIpfXN0YXRpYyBzaGFyZWRDb250YWluZXI9bnVsbDtzdGF0aWMgYm9vdFByb21pc2U9bnVsbDtfcmVhZHk9ITE7dHlwZT0id2ViY29udGFpbmVyIjtnZXQgcmVhZHkoKXtyZXR1cm4gdGhpcy5fcmVhZHl9Z2V0IGNvbnRhaW5lcigpe3JldHVybiBzLnNoYXJlZENvbnRhaW5lcn1hc3luYyBpbml0KCl7aWYoISh0aGlzLl9yZWFkeSYmcy5zaGFyZWRDb250YWluZXIpKXtpZihzLmJvb3RQcm9taXNlKXthd2FpdCBzLmJvb3RQcm9taXNlLHRoaXMuX3JlYWR5PSEwO3JldHVybn1pZihzLnNoYXJlZENvbnRhaW5lcil7dGhpcy5fcmVhZHk9ITA7cmV0dXJufWlmKHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcj4idSIpdGhyb3cgbmV3IEVycm9yKGBXZWJDb250YWluZXIgcmVxdWlyZXMgU2hhcmVkQXJyYXlCdWZmZXIgd2hpY2ggaXMgbm90IGF2YWlsYWJsZS4gRW5zdXJlIHlvdXIgc2VydmVyIHNlbmRzIHRoZXNlIGhlYWRlcnM6CiAgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3k6IHNhbWUtb3JpZ2luCiAgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeTogcmVxdWlyZS1jb3JwYCk7cy5ib290UHJvbWlzZT1DZy5ib290KCk7dHJ5e3Muc2hhcmVkQ29udGFpbmVyPWF3YWl0IHMuYm9vdFByb21pc2UsdGhpcy5fcmVhZHk9ITB9Y2F0Y2goZSl7dGhyb3cgcy5ib290UHJvbWlzZT1udWxsLGV9fX1hc3luYyBkZXN0cm95KCl7cy5zaGFyZWRDb250YWluZXImJihzLnNoYXJlZENvbnRhaW5lci50ZWFyZG93bigpLHMuc2hhcmVkQ29udGFpbmVyPW51bGwscy5ib290UHJvbWlzZT1udWxsLHRoaXMuX3JlYWR5PSExKX1hc3luYyByZWFkRmlsZShlKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRGaWxlKGUsInV0Zi04Iil9YXN5bmMgd3JpdGVGaWxlKGUsdCl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLndyaXRlRmlsZShlLHQsInV0Zi04Iil9YXN5bmMgcmVhZERpcihlKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLChhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkZGlyKGUse3dpdGhGaWxlVHlwZXM6ITB9KSkubWFwKGE9Pih7dHlwZTphLmlzRGlyZWN0b3J5KCk/ImRpcmVjdG9yeSI6ImZpbGUiLG5hbWU6YS5uYW1lLHBhdGg6ZT09PSIvIj9gLyR7YS5uYW1lfWA6YCR7ZX0vJHthLm5hbWV9YH0pKX1hc3luYyBta2RpcihlKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMubWtkaXIoZSx7cmVjdXJzaXZlOiEwfSl9YXN5bmMgcm0oZSx0KXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucm0oZSx7cmVjdXJzaXZlOnQ/LnJlY3Vyc2l2ZT8/ITF9KX1hc3luYyBleGlzdHMoZSl7dGhpcy5lbnN1cmVSZWFkeSgpO3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSksITB9Y2F0Y2h7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkZGlyKGUpLCEwfWNhdGNoe3JldHVybiExfX19d2F0Y2goZSx0LGEpe3RoaXMuZW5zdXJlUmVhZHkoKTtsZXQgcj10aGlzLmNvbnRhaW5lci5mcy53YXRjaChlLHtyZWN1cnNpdmU6YT8ucmVjdXJzaXZlPz8hMX0sdCk7cmV0dXJue3N0b3A6aSgoKT0+ci5jbG9zZSgpLCJzdG9wIil9fWFzeW5jIHNwYXduKGUsdD1bXSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCBhPWF3YWl0IHRoaXMuY29udGFpbmVyLnNwYXduKGUsdCk7cmV0dXJue291dHB1dDphLm91dHB1dCxpbnB1dDphLmlucHV0LGV4aXQ6YS5leGl0LGtpbGw6aSgoKT0+YS5raWxsKCksImtpbGwiKX19Z2V0U2hlbGxDb21tYW5kKCl7cmV0dXJue2NvbW1hbmQ6ImpzaCIsbGFiZWw6ImpzaCIscHJvbXB0OiJ+LyJ9fWFzeW5jIG1vdW50KGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5tb3VudChlKX1nZXRDb250YWluZXIoKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLHRoaXMuY29udGFpbmVyfWVuc3VyZVJlYWR5KCl7aWYoIXRoaXMuX3JlYWR5fHwhdGhpcy5jb250YWluZXIpdGhyb3cgbmV3IEVycm9yKCJXZWJDb250YWluZXJFbnZpcm9ubWVudCBub3QgaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCgpIGZpcnN0LiIpfX19KTt2YXIgX2dhPWcoKCk9PntTZ2EoKX0pO3ZhciB4MWU9ZygoKT0+e1Y4YSgpO19nYSgpfSk7dmFyIE1nYT1nKCgpPT57QmV0KCl9KTt2YXIgclEsUHJ0PWcoKCk9PntyUT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUZXJtaW5hbFRhYk1hbmFnZXIiKX10YWJzPW5ldyBNYXA7dGFiQ291bnRlcj0wO3h0ZXJtQnVuZGxlPW51bGw7eHRlcm1GaXRBZGRvbkJ1bmRsZT1udWxsO3NldFh0ZXJtTW9kdWxlcyhlLHQpe3RoaXMueHRlcm1CdW5kbGU9ZSx0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGU9dH1nZW5lcmF0ZVRhYklkKCl7cmV0dXJuIHRoaXMudGFiQ291bnRlcisrLGB0ZXJtaW5hbC0ke3RoaXMudGFiQ291bnRlcn0tJHtEYXRlLm5vdygpfWB9Z2V0RGVmYXVsdExhYmVsKGUsdCl7c3dpdGNoKGUpe2Nhc2Uic2hlbGwiOnJldHVybiJiYXNoIjtjYXNlInNjcmlwdCI6cmV0dXJuIHQ/LnNjcmlwdE5hbWV8fCJzY3JpcHQiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiB0Py5wYWNrYWdlTmFtZT9gdXBkYXRlICR7dC5wYWNrYWdlTmFtZX1gOiJ1cGRhdGUiO2Nhc2UiY3VzdG9tIjpyZXR1cm4gdD8uY29tbWFuZHx8InByb2Nlc3MiO2RlZmF1bHQ6cmV0dXJuInRlcm1pbmFsIn19Z2V0RGVmYXVsdEljb24oZSl7c3dpdGNoKGUpe2Nhc2Uic2hlbGwiOnJldHVybiJsdWNpZGU6dGVybWluYWwiO2Nhc2Uic2NyaXB0IjpyZXR1cm4ibHVjaWRlOnBsYXkiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiJsdWNpZGU6cGFja2FnZUNoZWNrIjtjYXNlImN1c3RvbSI6cmV0dXJuImx1Y2lkZTpjb2RlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6dGVybWluYWwifX1nZXRUZXJtaW5hbFRoZW1lKGUpe3JldHVybiBlP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uOiJyZ2JhKDAsIDAsIDAsIDAuMikiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9OntiYWNrZ3JvdW5kOiIjMDAwMDAwIixmb3JlZ3JvdW5kOiIjZmZmZmZmIixjdXJzb3I6IiNmZmZmZmYiLGN1cnNvckFjY2VudDoiIzAwMDAwMCIsc2VsZWN0aW9uOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1jcmVhdGVUYWIoZSx0KXtpZighdGhpcy54dGVybUJ1bmRsZXx8IXRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZSl0aHJvdyBuZXcgRXJyb3IoIlRlcm1pbmFsVGFiTWFuYWdlcjogeHRlcm0gbW9kdWxlcyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgc2V0WHRlcm1Nb2R1bGVzKCkgZmlyc3QuIik7bGV0IGE9dGhpcy5nZW5lcmF0ZVRhYklkKCkscj1lLnR5cGUsbj1uZXcgdGhpcy54dGVybUJ1bmRsZS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMCx0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUodCksZm9udEZhbWlseTonTWVubG8sIE1vbmFjbywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlJyxmb250U2l6ZToxMyxsaW5lSGVpZ2h0OjEuMn0pLG89bmV3IHRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZS5GaXRBZGRvbjtuLmxvYWRBZGRvbihvKTtsZXQgbD17aWQ6YSxsYWJlbDplLmxhYmVsfHx0aGlzLmdldERlZmF1bHRMYWJlbChyLGUubWV0YWRhdGEpLGljb25OYW1lOmUuaWNvbk5hbWV8fHRoaXMuZ2V0RGVmYXVsdEljb24ociksdHlwZTpyLGNsb3NlYWJsZTplLmNsb3NlYWJsZT8/ciE9PSJzaGVsbCIsdGVybWluYWw6bixmaXRBZGRvbjpvLHByb2Nlc3M6bnVsbCxpbnB1dFdyaXRlcjpudWxsLGV4aXRlZDohMSxleGl0Q29kZTpudWxsLGNyZWF0ZWRBdDpEYXRlLm5vdygpLG1ldGFkYXRhOmUubWV0YWRhdGF9O3JldHVybiB0aGlzLnRhYnMuc2V0KGEsbCksbH1nZXRUYWIoZSl7cmV0dXJuIHRoaXMudGFicy5nZXQoZSl9Z2V0QWxsVGFicygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudGFicy52YWx1ZXMoKSkuc29ydCgoZSx0KT0+ZS5jcmVhdGVkQXQtdC5jcmVhdGVkQXQpfWdldFRhYkNvdW50KCl7cmV0dXJuIHRoaXMudGFicy5zaXplfWhhc1RhYihlKXtyZXR1cm4gdGhpcy50YWJzLmhhcyhlKX1jbG9zZVRhYihlKXtsZXQgdD10aGlzLnRhYnMuZ2V0KGUpO2lmKCF0KXJldHVybiExO2lmKHQucHJvY2VzcyYmIXQuZXhpdGVkKXRyeXt0LnByb2Nlc3Mua2lsbCgpfWNhdGNoKGEpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGtpbGwgcHJvY2VzczoiLGEpfXRyeXt0LnRlcm1pbmFsLmRpc3Bvc2UoKX1jYXRjaChhKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBkaXNwb3NlIHRlcm1pbmFsOiIsYSl9cmV0dXJuIHRoaXMudGFicy5kZWxldGUoZSksITB9cmVuYW1lVGFiKGUsdCl7bGV0IGE9dGhpcy50YWJzLmdldChlKTtyZXR1cm4gYT8oYS5sYWJlbD10LCEwKTohMX1tYXJrVGFiRXhpdGVkKGUsdCl7bGV0IGE9dGhpcy50YWJzLmdldChlKTthJiYoYS5leGl0ZWQ9ITAsYS5leGl0Q29kZT10KX1zZXRUYWJQcm9jZXNzKGUsdCxhKXtsZXQgcj10aGlzLnRhYnMuZ2V0KGUpO3ImJihyLnByb2Nlc3M9dCxyLmlucHV0V3JpdGVyPWEpfXVwZGF0ZUFsbFRoZW1lcyhlKXtsZXQgdD10aGlzLmdldFRlcm1pbmFsVGhlbWUoZSk7Zm9yKGxldCBhIG9mIHRoaXMudGFicy52YWx1ZXMoKSlhLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dH1kaXNwb3NlQWxsKCl7Zm9yKGxldFtlXW9mIHRoaXMudGFicyl0aGlzLmNsb3NlVGFiKGUpO3RoaXMudGFicy5jbGVhcigpfX19KTt2YXIgemdhPXt9O3l0KHpnYSx7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOigpPT5JcnR9KTt2YXIgSmgsVm4sSXJ0LG9RPWcoKCk9PntwZSgpO2t0KCk7cHQoKTt4MWUoKTtVYSgpO2UxZSgpO1BydCgpO2Z1KCk7Smg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFZuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxJcnQ9KCgpPT57bGV0IHM9W25lKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlVGVybWluYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKCldLGM9W0woKV0seD1bTCh7dHlwZTpOdW1iZXJ9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W1koKV0sTz1bWSgpXSxKaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZXhlY3V0aW9uRW52aXJvbm1lbnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLEpoKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZXR1cENvbW1hbmQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZXR1cENvbW1hbmQsImdldCIpLHNldDppKChTLEkpPT57Uy5zZXR1cENvbW1hbmQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLEpoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW52aXJvbm1lbnRWYXJpYWJsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImVudmlyb25tZW50VmFyaWFibGVzImluIFMsImhhcyIpLGdldDppKFM9PlMuZW52aXJvbm1lbnRWYXJpYWJsZXMsImdldCIpLHNldDppKChTLEkpPT57Uy5lbnZpcm9ubWVudFZhcmlhYmxlcz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsdiksSmgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJCYXJXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGFiQmFyV2lkdGgiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJCYXJXaWR0aCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYkJhcldpZHRoPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxKaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNob3dUYWJCYXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaG93VGFiQmFyLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hvd1RhYkJhcj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksSmgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzImluIFMsImhhcyIpLGdldDppKFM9PlMudGFicywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLEpoKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlVGFiSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImFjdGl2ZVRhYklkImluIFMsImhhcyIpLGdldDppKFM9PlMuYWN0aXZlVGFiSWQsImdldCIpLHNldDppKChTLEkpPT57Uy5hY3RpdmVUYWJJZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksSmgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT57bGV0IGs9bmV3IFRnO3JldHVybiB3YDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHtrfT48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPmB9LCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtyZXNpemVPYnNlcnZlcjt0YWJNYW5hZ2VyOyNlPVZuKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoayl7dGhpcy4jZT1rfSN0PShWbih0aGlzLGwpLFZuKHRoaXMsZCwiIikpO2dldCBzZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2V0dXBDb21tYW5kKGspe3RoaXMuI3Q9a30jYT0oVm4odGhpcyx1KSxWbih0aGlzLGIse30pKTtnZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoayl7dGhpcy4jYT1rfSNzPShWbih0aGlzLHYpLFZuKHRoaXMsbSwxNjApKTtnZXQgdGFiQmFyV2lkdGgoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFiQmFyV2lkdGgoayl7dGhpcy4jcz1rfSNpPShWbih0aGlzLGYpLFZuKHRoaXMsTSwhMCkpO2dldCBzaG93VGFiQmFyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dUYWJCYXIoayl7dGhpcy4jaT1rfSNyPShWbih0aGlzLHopLFZuKHRoaXMsQyxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRhYnMoayl7dGhpcy4jcj1rfSNvPShWbih0aGlzLF8pLFZuKHRoaXMsJCxudWxsKSk7Z2V0IGFjdGl2ZVRhYklkKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZVRhYklkKGspe3RoaXMuI289a310ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPShWbih0aGlzLEUpLG51bGwpO2lzQnJpZ2h0PSExO3Rlcm1pbmFsQWN0aW9uYmFyPW51bGw7ZW52aXJvbm1lbnREZWZlcnJlZD1uZXcgdXQuc21hcnRwcm9taXNlLkRlZmVycmVkO2Vudmlyb25tZW50UHJvbWlzZT10aGlzLmVudmlyb25tZW50RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWJNYW5hZ2VyPW5ldyByUSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuaGFuZGxlUmVzaXplKCl9KX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgI2FjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCBkZWVzLWFjdGlvbmJhciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBiYXIgb24gdGhlIHJpZ2h0IHNpZGUgKi8KICAgICAgLnRhYi1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFiLWJhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWJhci10aXRsZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudGFiLWJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAudGFiLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCAzMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIuZXhpdGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbi5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTAlKSIsImhzbCgxNDIgMzAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgOTMlKSIsImhzbCgwIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGs9dGhpcy5hY3RpdmVUYWJJZD90aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBNYWluIHRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCI+CiAgICAgICAgICAke2s/d2AKICAgICAgICAgICAgPGRpdiBpZD0iYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIzMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+Tm8gdGVybWluYWwgb3Blbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gVmVydGljYWwgdGFiIGJhciBvbiB0aGUgcmlnaHQgLS0+CiAgICAgICAgJHt0aGlzLnNob3dUYWJCYXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXIiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnRhYkJhcldpZHRofXB4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItYmFyLXRpdGxlIj5UZXJtaW5hbHM8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQWRkVGFifSB0aXRsZT0iTmV3IFRlcm1pbmFsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKFM9PndgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC10YWIgJHtTLmlkPT09dGhpcy5hY3RpdmVUYWJJZD8iYWN0aXZlIjoiIn0gJHtTLmV4aXRlZD8iZXhpdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnN3aXRjaFRvVGFiKFMuaWQpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgLmljb249JHtTLmljb25OYW1lfQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiLWljb24gJHtTLnByb2Nlc3MmJiFTLmV4aXRlZD8icnVubmluZyI6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbGFiZWwiPiR7Uy5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICR7Uy5leGl0ZWQ/d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhpdC1iYWRnZSAke1MuZXhpdENvZGU9PT0wPyJzdWNjZXNzIjoiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICAgICAke1MuZXhpdENvZGV9CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke1MuY2xvc2VhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7ST0+dGhpcy5oYW5kbGVUYWJDbG9zZShJLFMuaWQpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmlzQnJpZ2h0PWsudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249ay50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShSPT57dGhpcy5pc0JyaWdodD1SLHRoaXMudGFiTWFuYWdlci51cGRhdGVBbGxUaGVtZXMoUil9KTtsZXQgUz1Rci5nZXRJbnN0YW5jZSgpLFtJLFBdPWF3YWl0IFByb21pc2UuYWxsKFtTLmxvYWRYdGVybSgpLFMubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGFiTWFuYWdlci5zZXRYdGVybU1vZHVsZXMoSSxQKSxhd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7bGV0IGs9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO2smJnRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGspLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRhYk1hbmFnZXIuZGlzcG9zZUFsbCgpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgaGFuZGxlQWRkVGFiKCl7YXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWhhbmRsZVRhYkNsb3NlKGssUyl7ay5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsb3NlVGFiKFMpfXN3aXRjaFRvVGFiKGspe2lmKGs9PT10aGlzLmFjdGl2ZVRhYklkKXJldHVybjtsZXQgUz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKGspO2lmKCFTKXJldHVybjtsZXQgST10aGlzLmFjdGl2ZVRhYklkO3RoaXMuYWN0aXZlVGFiSWQmJnRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSx0aGlzLmFjdGl2ZVRhYklkPWssdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zd2l0Y2hlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDprLHByZXZpb3VzVGFiSWQ6SX19KSl9KX1kZXRhY2hBY3RpdmVUZXJtaW5hbCgpe2xldCBrPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtrJiYoay5pbm5lckhUTUw9IiIpfWF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIoayl7bGV0IFM9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO1MmJih0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoUyksUy5pbm5lckhUTUw9IiIsay50ZXJtaW5hbC5vcGVuKFMpLGsuZml0QWRkb24uZml0KCksay50ZXJtaW5hbC5mb2N1cygpKX1oYW5kbGVSZXNpemUoKXtpZih0aGlzLmFjdGl2ZVRhYklkKXtsZXQgaz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpO2smJmsuZml0QWRkb24uZml0KCl9fWFzeW5jIHNwYXduUHJvY2Vzc0ZvclRhYihrLFMsST1bXSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe2sudGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksay50ZXJtaW5hbC53cml0ZShgXHUyNzRDIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUuXHIKYCksay50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpO3JldHVybn10cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8KGsudGVybWluYWwud3JpdGUoYEluaXRpYWxpemluZyBlbnZpcm9ubWVudC4uLlxyCmApLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpKTtsZXQgUD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKFMsSSk7UC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6aShLPT57ay50ZXJtaW5hbC53cml0ZShLKX0sIndyaXRlIil9KSk7bGV0IFI9UC5pbnB1dC5nZXRXcml0ZXIoKTtrLnRlcm1pbmFsLm9uRGF0YShLPT57Ui53cml0ZShLKX0pLHRoaXMudGFiTWFuYWdlci5zZXRUYWJQcm9jZXNzKGsuaWQsUCxSKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSxQLmV4aXQudGhlbihLPT57dGhpcy5oYW5kbGVQcm9jZXNzRXhpdChrLmlkLEspfSl9Y2F0Y2goUCl7ay50ZXJtaW5hbC53cml0ZSgiXHgxQlszMW0iKSxrLnRlcm1pbmFsLndyaXRlKGBcdTI3NEMgRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6ICR7UH1ccgpgKSxrLnRlcm1pbmFsLndyaXRlKCJceDFCWzBtIiksY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6IixQKX19YXN5bmMgZ2V0U2hlbGxDb21tYW5kKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJiF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5JiZhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Py5nZXRTaGVsbENvbW1hbmQ/YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5nZXRTaGVsbENvbW1hbmQoKTp7Y29tbWFuZDoianNoIixsYWJlbDoianNoIixwcm9tcHQ6In4vIn19aGFuZGxlUHJvY2Vzc0V4aXQoayxTKXtsZXQgST10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKGspO2lmKCFJKXJldHVybjt0aGlzLnRhYk1hbmFnZXIubWFya1RhYkV4aXRlZChrLFMpO2xldCBQPVM9PT0wP2BccgpceDFCWzMybVtQcm9jZXNzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHldXHgxQlswbVxyCmA6YFxyClx4MUJbMzFtW1Byb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAke1N9XVx4MUJbMG1ccgpgO0kudGVybWluYWwud3JpdGUoUCksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvY2Vzcy1jb21wbGV0ZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDprLGV4aXRDb2RlOlN9fSkpLEkuY2xvc2VhYmxlJiZ0aGlzLnNob3dFeGl0ZWRUYWJBY3Rpb25iYXIoayxJLmxhYmVsLFMpfWFzeW5jIHNob3dFeGl0ZWRUYWJBY3Rpb25iYXIoayxTLEkpe2xldCBQPUk9PT0wOyhhd2FpdCB0aGlzLnNob3dBY3Rpb25iYXIoe21lc3NhZ2U6UD9gIiR7U30iIGNvbXBsZXRlZC4gQ2xvc2UgdGFiP2A6YCIke1N9IiBleGl0ZWQgKGNvZGUgJHtJfSkuIENsb3NlIHRhYj9gLHR5cGU6UD8iaW5mbyI6Indhcm5pbmciLGljb246UD8ibHVjaWRlOmNoZWNrQ2lyY2xlIjoibHVjaWRlOmFsZXJ0VHJpYW5nbGUiLGFjdGlvbnM6W3tpZDoiY2xvc2UiLGxhYmVsOiJDbG9zZSBUYWIiLHByaW1hcnk6ITB9LHtpZDoia2VlcCIsbGFiZWw6IktlZXAgT3BlbiJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJjbG9zZSJ9LGRpc21pc3NpYmxlOiEwfSkpLmFjdGlvbklkPT09ImNsb3NlIiYmdGhpcy5jbG9zZVRhYihrKX1hc3luYyBjcmVhdGVTaGVsbFRhYihrKXtsZXQgUz1hd2FpdCB0aGlzLmdldFNoZWxsQ29tbWFuZCgpLEk9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOmt8fGAke1MubGFiZWx8fFMuY29tbWFuZH0gJHt0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKSsxfWAsY2xvc2VhYmxlOnRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPjB9LHRoaXMuaXNCcmlnaHQpO3JldHVybiB0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLnN3aXRjaFRvVGFiKEkuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgdGhpcy5zcGF3blByb2Nlc3NGb3JUYWIoSSxTLmNvbW1hbmQsUy5hcmdzfHxbXSksdGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCk9PT0xJiZ0aGlzLnNldHVwQ29tbWFuZCYmKGF3YWl0IHRoaXMud2FpdEZvclByb21wdChJLnRlcm1pbmFsLFMucHJvbXB0fHwifi8iKSxJLmlucHV0V3JpdGVyJiZJLmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6SS5pZH19KSksSS5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKGspe2xldCBTPXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoayx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksay5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKFMuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsay5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYihTLGsuY29tbWFuZCxrLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOlMuaWR9fSkpLFMuaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihrKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihrKT8odGhpcy5zd2l0Y2hUb1RhYihrKSwhMCk6ITF9Y2xvc2VUYWIoayl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtpZighU3x8IVMuY2xvc2VhYmxlKXJldHVybiExO2lmKGs9PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgST10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFA9SS5maW5kSW5kZXgoSz0+Sy5pZD09PWspLFI9SVtQKzFdfHxJW1AtMV07Uj90aGlzLnN3aXRjaFRvVGFiKFIuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKGspLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6a319KSksITB9d3JpdGVUb1RhYihrLFMpe2xldCBJPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoayk7cmV0dXJuIEk/KEkudGVybWluYWwud3JpdGUoUyksITApOiExfXNlbmRJbnB1dFRvVGFiKGssUyl7bGV0IEk9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtyZXR1cm4hSXx8IUkuaW5wdXRXcml0ZXI/ITE6KEkuaW5wdXRXcml0ZXIud3JpdGUoUyksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoayl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhrKX1hc3luYyB3YWl0Rm9yUHJvbXB0KGssUyl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgUD1pKCgpPT57bGV0IFI9ay5idWZmZXIuYWN0aXZlO2ZvcihsZXQgSz0wO0s8Ui5sZW5ndGg7SysrKXtsZXQgVj1SLmdldExpbmUoSyk7aWYoViYmVi50cmFuc2xhdGVUb1N0cmluZygpLmluY2x1ZGVzKFMpKXtzZXRUaW1lb3V0KCgpPT57SSgpfSwxMDApO3JldHVybn19c2V0VGltZW91dChQLDEwMCl9LCJjaGVja1Byb21wdCIpO1AoKX0pfWFzeW5jIHNldEVudmlyb25tZW50VmFyaWFibGVzKGspe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRocm93IG5ldyBFcnJvcigiTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IGF2YWlsYWJsZSIpO2xldCBTPSIiO2ZvcihsZXQgSSBpbiBrKVMrPWBleHBvcnQgJHtJfT0iJHtrW0ldfSIKYDthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSgiL3NvdXJjZS5lbnYiLFMpfWdldEV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9c3RhdGlje1ZuKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBBcnQsTnJ0LENnYSxUZ2EsJGdhLERnYSxMZ2E9ZygoKT0+e3BlKCk7dXYoKTt4aCgpO29uZSgpO3duZSgpO2JuZSgpO0E4KCk7UWNlKCk7QXJ0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxOcnQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LENnYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1kYXNoYm9hcmQiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdEYXNoYm9hcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtBcnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CiAgICBgXTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoiZmFVc2VycyIsZGVzY3JpcHRpb246IisxNSUgZnJvbSBsYXN0IHdlZWsiLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJwYWdldmlld3MiLHRpdGxlOiJQYWdlIFZpZXdzIix2YWx1ZTo1NjcwMCx0eXBlOiJudW1iZXIiLGljb246ImZhRXllIixkZXNjcmlwdGlvbjoiNTYuN2sgdG90YWwgdmlld3MiLGNvbG9yOiIjM2I4MmY2In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZTo4OSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoiZmFTZXJ2ZXIiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjkwLGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UgVGltZSIsdmFsdWU6My4yLHVuaXQ6InMiLHR5cGU6Im51bWJlciIsaWNvbjoiZmFDbG9jayIsZGVzY3JpcHRpb246Ii0wLjVzIGltcHJvdmVtZW50Iixjb2xvcjoiI2Y1OWUwYiJ9LHtpZDoicmV2ZW51ZSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6NDg1MjAsdW5pdDoiJCIsdHlwZToidHJlbmQiLGljb246ImZhRG9sbGFyU2lnbiIsZGVzY3JpcHRpb246Iis4LjIlIGdyb3d0aCIsY29sb3I6IiMyMmM1NWUiLHRyZW5kRGF0YTpbMzVlMywzOGUzLDM3NTAwLDQxZTMsMzk4MDAsNDJlMyw0NDEwMCw0MzIwMCw0NTYwMCw0NzEwMCw0NjgwMCw0ODUyMF19LHtpZDoidHJhZmZpYyIsdGl0bGU6IlRyYWZmaWMgVHJlbmQiLHZhbHVlOjE2ODAsdHlwZToidHJlbmQiLGljb246ImZhQ2hhcnRMaW5lIixkZXNjcmlwdGlvbjoiTGFzdCA3IGRheXMiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzEyMDAsMTM1MCwxMTAwLDE0NTAsMTYwMCwxNTUwLDE2ODBdfV07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIHRvIHlvdXIgYXBwbGljYXRpb24gZGFzaGJvYXJkLiBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBtZXRyaWNzOjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke289Pntjb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixvLmRldGFpbCl9fQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgIDxoMiBzdHlsZT0ibWFyZ2luLXRvcDogNDBweDsiPlJlY2VudCBBY3Rpdml0eTwvaDI+CiAgICAgIDxwPkJlbG93IGlzIGEgbG9nIG9mIHJlY2VudCBzeXN0ZW0gZXZlbnRzIGFuZCB1c2VyIGFjdGl2aXR5IHRvIGRlbW9uc3RyYXRlIHNjcm9sbGFibGUgY29udGVudC48L3A+CgogICAgICAke1t7dGltZToiMiBtaW4gYWdvIixldmVudDoiVXNlciBqb2huQGV4YW1wbGUuY29tIGxvZ2dlZCBpbiBmcm9tIDE5Mi4xNjguMS40MiIsdHlwZToiaW5mbyJ9LHt0aW1lOiI1IG1pbiBhZ28iLGV2ZW50OiJEZXBsb3ltZW50IHYzLjUyLjEgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBvbiBwcm9kdWN0aW9uIix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjEyIG1pbiBhZ28iLGV2ZW50OiJEYXRhYmFzZSBiYWNrdXAgZmluaXNoZWQgXHUyMDE0IDIuNCBHQiBjb21wcmVzc2VkIix0eXBlOiJpbmZvIn0se3RpbWU6IjE4IG1pbiBhZ28iLGV2ZW50OiJTU0wgY2VydGlmaWNhdGUgcmVuZXdlZCBmb3IgYXBpLmV4YW1wbGUuY29tIChleHBpcmVzIDIwMjctMDQtMDMpIix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjI1IG1pbiBhZ28iLGV2ZW50OiJNZW1vcnkgdXNhZ2Ugc3Bpa2Ugb24gd29ya2VyLTAzICg5MiUpIFx1MjAxNCBhdXRvLXNjYWxlZCB0byA0IGluc3RhbmNlcyIsdHlwZToid2FybmluZyJ9LHt0aW1lOiIzMSBtaW4gYWdvIixldmVudDoiTmV3IHVzZXIgcmVnaXN0cmF0aW9uOiBzYXJhaEBjb21wYW55LmlvIix0eXBlOiJpbmZvIn0se3RpbWU6IjQ1IG1pbiBhZ28iLGV2ZW50OidTY2hlZHVsZWQgam9iICJjbGVhbnVwLXRlbXAtZmlsZXMiIGNvbXBsZXRlZCBcdTIwMTQgcmVtb3ZlZCAxLDI0NyBmaWxlcycsdHlwZToiaW5mbyJ9LHt0aW1lOiIxIGhvdXIgYWdvIixldmVudDoiQVBJIHJhdGUgbGltaXQgcmVhY2hlZCBmb3IgY2xpZW50IGFwcC1tb2JpbGUtaW9zICg0MjkgcmVzcG9uc2VzKSIsdHlwZToid2FybmluZyJ9LHt0aW1lOiIxLjUgaG91cnMgYWdvIixldmVudDoiQ0ROIGNhY2hlIHB1cmdlZCBmb3IgL2Fzc2V0cy8qIFx1MjAxNCAzNDAgb2JqZWN0cyBpbnZhbGlkYXRlZCIsdHlwZToiaW5mbyJ9LHt0aW1lOiIyIGhvdXJzIGFnbyIsZXZlbnQ6IkZhaWxlZCBsb2dpbiBhdHRlbXB0IGZvciBhZG1pbkBleGFtcGxlLmNvbSBmcm9tIDIwMy4wLjExMy41MCAoYmxvY2tlZCkiLHR5cGU6ImVycm9yIn0se3RpbWU6IjIuNSBob3VycyBhZ28iLGV2ZW50OiJXZWJob29rIGRlbGl2ZXJ5IHRvIGh0dHBzOi8vaG9va3Muc2xhY2suY29tIHN1Y2NlZWRlZCAoMjAwIE9LKSIsdHlwZToiaW5mbyJ9LHt0aW1lOiIzIGhvdXJzIGFnbyIsZXZlbnQ6J0Nyb24gam9iICJnZW5lcmF0ZS1yZXBvcnRzIiBzdGFydGVkIFx1MjAxNCBwcm9jZXNzaW5nIFExIDIwMjYgZGF0YScsdHlwZToiaW5mbyJ9LHt0aW1lOiIzLjUgaG91cnMgYWdvIixldmVudDoiTG9hZCBiYWxhbmNlciBoZWFsdGggY2hlY2s6IGFsbCA4IG5vZGVzIGhlYWx0aHkiLHR5cGU6InN1Y2Nlc3MifSx7dGltZToiNCBob3VycyBhZ28iLGV2ZW50OiJETlMgcHJvcGFnYXRpb24gY29tcGxldGUgZm9yIG5ldyBzdWJkb21haW4gc3RhZ2luZy5leGFtcGxlLmNvbSIsdHlwZToic3VjY2VzcyJ9XS5tYXAobz0+d2AKICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICI+CiAgICAgICAgICA8c3BhbiBzdHlsZT0iCiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1NSUpIiwiaHNsKDAgMCUgNDUlKSIpfTsKICAgICAgICAgICI+JHtvLnRpbWV9PC9zcGFuPgogICAgICAgICAgPHNwYW4gc3R5bGU9IgogICAgICAgICAgICBjb2xvcjogJHtvLnR5cGU9PT0iZXJyb3IiP2guYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSkiLCJoc2woMCA3MiUgNjUlKSIpOm8udHlwZT09PSJ3YXJuaW5nIj9oLmJkVGhlbWUoImhzbCgyNSA5NSUgNTAlKSIsImhzbCgyNSA5NSUgNjMlKSIpOm8udHlwZT09PSJzdWNjZXNzIj9oLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIik6aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICAgICI+JHtvLmV2ZW50fTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXN0YXRpY3tOcnQoYSx0KX19O3JldHVybiBuPWF9KSgpLFRnYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1hbmFseXRpY3MiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdBbmFseXRpY3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtBcnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPkFuYWx5dGljczwvaDE+CiAgICAgIDxwPlRoaXMgaXMgdGhlIGFuYWx5dGljcyB2aWV3LiBZb3UgY2FuIGFkZCBjaGFydHMgYW5kIG1ldHJpY3MgaGVyZS48L3A+CiAgICBgfXN0YXRpY3tOcnQoYSx0KX19O3JldHVybiBuPWF9KSgpLCRnYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vVmlld1NldHRpbmdzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7QXJ0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICAgIC5ob3Jpem9udGFsLWZvcm0tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMWExYTFhIil9OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbjogMTVweCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+Q29uZmlndXJlIHlvdXIgYXBwbGljYXRpb24gc2V0dGluZ3MgYmVsb3c6PC9wPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkdlbmVyYWwgU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBwTmFtZSIgbGFiZWw9IkFwcGxpY2F0aW9uIE5hbWUiIHZhbHVlPSJNeSBBcHAiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwaUVuZHBvaW50IiBsYWJlbD0iQVBJIEVuZHBvaW50IiB2YWx1ZT0iaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJlbnZpcm9ubWVudCIKICAgICAgICAgICAgbGFiZWw9IkVudmlyb25tZW50IgogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJEZXZlbG9wbWVudCIsa2V5OiJkZXYifSx7b3B0aW9uOiJTdGFnaW5nIixrZXk6InN0YWdpbmcifSx7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVBbmFseXRpY3MiIGxhYmVsPSJFbmFibGUgQW5hbHl0aWNzIiB2YWx1ZT0iZmFsc2UiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNhdmUgR2VuZXJhbCBTZXR0aW5nczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+RGlzcGxheSBQcmVmZXJlbmNlczwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24iPgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij5RdWljayBkaXNwbGF5IHNldHRpbmdzIHVzaW5nIGhvcml6b250YWwgbGF5b3V0OjwvcD4KICAgICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJ0aGVtZSIKICAgICAgICAgICAgICBsYWJlbD0iVGhlbWUiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IixrZXk6ImxpZ2h0In0se29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn0se29wdGlvbjoiQXV0byIsa2V5OiJhdXRvIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkRhcmsiLGtleToiZGFyayJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0ibGFuZ3VhZ2UiCiAgICAgICAgICAgICAgbGFiZWw9Ikxhbmd1YWdlIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn0se29wdGlvbjoiR2VybWFuIixrZXk6ImRlIn0se29wdGlvbjoiU3BhbmlzaCIsa2V5OiJlcyJ9LHtvcHRpb246IkZyZW5jaCIsa2V5OiJmciJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iY29tcGFjdE1vZGUiIGxhYmVsPSJDb21wYWN0IE1vZGUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siUmVhbC10aW1lIiwiRGFpbHkgRGlnZXN0IiwiV2Vla2x5IFN1bW1hcnkiLCJOZXZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUmVhbC10aW1lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbEZyZXF1ZW5jeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InB1c2hOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIFB1c2ggTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0ic291bmRBbGVydHMiIGxhYmVsPSJQbGF5IFNvdW5kIGZvciBBbGVydHMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5VcGRhdGUgTm90aWZpY2F0aW9uczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tOcnQoYSx0KX19O3JldHVybiBuPWF9KSgpLERnYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICB0ZXJtaW5hbFNldHVwQ29tbWFuZD0iZWNobyAnV2VsY29tZSB0byB0aGUgdGVybWluYWwhJyIKICAgICAgLmdsb2JhbE1lc3NhZ2VzPSR7W3tpZDoidXBkYXRlIix0eXBlOiJpbmZvIixtZXNzYWdlOiJBIG5ldyB2ZXJzaW9uICh2My41MC4wKSBpcyBhdmFpbGFibGUgd2l0aCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcy4iLGRpc21pc3NpYmxlOiEwLGFjdGlvbnM6W3tuYW1lOiJVcGRhdGUgTm93IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIlVwZGF0aW5nLi4uIiksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJPcGVuaW5nIHJlbGVhc2Ugbm90ZXMuLi4iKSwiYWN0aW9uIil9XX0se2lkOiJtYWludGVuYW5jZSIsdHlwZToid2FybmluZyIsbWVzc2FnZToiU2NoZWR1bGVkIG1haW50ZW5hbmNlIHdpbmRvdzogQXByaWwgNSwgMjAyNiAwMjowMFx1MjAxMzA2OjAwIFVUQy4gU29tZSBzZXJ2aWNlcyBtYXkgYmUgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuIixkaXNtaXNzaWJsZTohMH0se2lkOiJjcml0aWNhbCIsdHlwZToiZXJyb3IiLG1lc3NhZ2U6IllvdXIgU1NMIGNlcnRpZmljYXRlIGV4cGlyZXMgaW4gMyBkYXlzLiBSZW5ldyBub3cgdG8gYXZvaWQgc2VydmljZSBkaXNydXB0aW9uLiIsZGlzbWlzc2libGU6ITEsYWN0aW9uczpbe25hbWU6IlJlbmV3IENlcnRpZmljYXRlIixpY29uTmFtZToibHVjaWRlOnNoaWVsZENoZWNrIixhY3Rpb246aSgoKT0+YWxlcnQoIlJlbmV3aW5nIGNlcnRpZmljYXRlLi4uIiksImFjdGlvbiIpfV19XX0KICAgICAgLnZpZXdUYWJzPSR7W3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsZWxlbWVudDpDZ2F9LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixlbGVtZW50OlRnYSxzdWJWaWV3czpbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixlbGVtZW50OlRnYX0se25hbWU6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGVsZW1lbnQ6Q2dhfV19LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsc3ViVmlld3M6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGVsZW1lbnQ6JGdhfSx7bmFtZToiQmlsbGluZyIsaWNvbk5hbWU6Imx1Y2lkZTpjcmVkaXRDYXJkIixlbGVtZW50OiRnYX1dfV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7cz0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIscy5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyICRnLHRjLEVnYSxQZ2E9ZygoKT0+e0xnYSgpO3BlKCk7VWEoKTtwdCgpOyRnPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx0Yz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRWdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaW1wbGUtYXBwZGFzaCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2ltcGxlQXBwRGFzaCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCAkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W1koKV0sTj1bWSgpXSwkZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im5hbWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5uYW1lLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubmFtZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksJGcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmlld1RhYnMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52aWV3VGFicywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZpZXdUYWJzPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSwkZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsU2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0ZXJtaW5hbFNldHVwQ29tbWFuZCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnRlcm1pbmFsU2V0dXBDb21tYW5kLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudGVybWluYWxTZXR1cENvbW1hbmQ9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLCRnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2xvYmFsTWVzc2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Imdsb2JhbE1lc3NhZ2VzImluIEUsImhhcyIpLGdldDppKEU9PkUuZ2xvYmFsTWVzc2FnZXMsImdldCIpLHNldDppKChFLEgpPT57RS5nbG9iYWxNZXNzYWdlcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksJGcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlbGVjdGVkVmlldyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlbGVjdGVkVmlldywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNlbGVjdGVkVmlldz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksJGcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfYWN0aXZlTWVzc2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Il9hY3RpdmVNZXNzYWdlcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLl9hY3RpdmVNZXNzYWdlcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLl9hY3RpdmVNZXNzYWdlcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksJGcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1EZ2E7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT10Yyh0aGlzLG8sIkFwcGxpY2F0aW9uIERhc2hib2FyZCIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoJCl7dGhpcy4jZT0kfSN0PSh0Yyh0aGlzLGwpLHRjKHRoaXMsZCxbXSkpO2dldCB2aWV3VGFicygpe3JldHVybiB0aGlzLiN0fXNldCB2aWV3VGFicygkKXt0aGlzLiN0PSR9I2E9KHRjKHRoaXMsdSksdGModGhpcyxiLCdlY2hvICJUZXJtaW5hbCByZWFkeSInKSk7Z2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCQpe3RoaXMuI2E9JH0jcz0odGModGhpcyx2KSx0Yyh0aGlzLG0sW10pKTtnZXQgZ2xvYmFsTWVzc2FnZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgZ2xvYmFsTWVzc2FnZXMoJCl7dGhpcy4jcz0kfSNpPSh0Yyh0aGlzLGYpLHRjKHRoaXMsTSx2b2lkIDApKTtnZXQgc2VsZWN0ZWRWaWV3KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkVmlldygkKXt0aGlzLiNpPSR9I3I9KHRjKHRoaXMseiksdGModGhpcyxDLFtdKSk7Z2V0IF9hY3RpdmVNZXNzYWdlcygpe3JldHVybiB0aGlzLiNyfXNldCBfYWN0aXZlTWVzc2FnZXMoJCl7dGhpcy4jcj0kfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmFwcGJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgbWluLWNvbnRlbnQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSIsIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24td3JhcHBlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYXBwTmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI2MjYyNiIsIiNlNWU1ZTUiKX07CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgc3BhbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiIC5jaGV2cm9uIHsKICAgICAgICBmbGV4OiAwIDAgYXV0bzsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzOmhvdmVyIC5jaGV2cm9uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzLmdyb3VwQWN0aXZlIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjoKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93cyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLXRvcCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLWJvdHRvbSAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuc3ViVmlld3MuZXhwYW5kZWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3czo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cy5leHBhbmRlZDo6YmVmb3JlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc3ViVmlld3MtaW5uZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc3ViIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIuc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTEycHg7CiAgICAgIH0KCiAgICAgIC5hcHBBY3Rpb25zIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDYwJSAvIDAuMDgpIiwiaHNsKDAgODQlIDYwJSAvIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NCUgNDUlKSIsImhzbCgwIDg0JSA2NSUpIil9OwogICAgICB9CgogICAgICAuYXBwY29udGVudCB7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIGJvdHRvbTogMjRweDsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjQwcHgpOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuYXBwY29udGVudDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gYm90dG9tLAogICAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC04cHg7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gdG9wLAogICAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgei1pbmRleDogMTE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwoKICAgICAgfQoKICAgICAgLmNvbnRyb2w6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuY29udHJvbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY29udHJvbC5zdGF0dXMtdGVybWluYWwgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogR2xvYmFsIE1lc3NhZ2UgQmFubmVycyAqLwogICAgICAubWVzc2FnZUJhbm5lckFyZWEgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlRG93biAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci5kaXNtaXNzaW5nIHsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlVXAgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGJhbm5lclNsaWRlRG93biB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgYmFubmVyU2xpZGVVcCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTUpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMTgpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3MgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGluZm8gKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NyUpIiwiaHNsKDIxMCA1MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgNzAlIDMwJSkiLCJoc2woMjEwIDcwJSA4MCUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzAwODRmZjsKICAgICAgfQogICAgICAubWVzc2FnZUJhbm5lci1pbmZvIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDg0ZmY7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogc3VjY2VzcyAqLwogICAgICAubWVzc2FnZUJhbm5lci1zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTclKSIsImhzbCgxNDIgMzAlIDEwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDUwJSAyNSUpIiwiaHNsKDE0MiA1MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMyMmM1NWU7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItc3VjY2VzcyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IHdhcm5pbmcgKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MCUgOTclKSIsImhzbCgzOCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA2MCUgMjUlKSIsImhzbCgzOCA2MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmNTllMGI7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGVycm9yICovCiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDk3JSkiLCJoc2woMCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDYwJSAzMCUpIiwiaHNsKDAgNjAlIDgwJSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZWY0NDQ0OwogICAgICB9CiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50IHsKICAgICAgICB0b3A6IHZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHggLSB2YXIoLS1iYW5uZXItYXJlYS1oZWlnaHQsIDBweCkpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWljb24td3JhcHBlciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmxheW91dEdyaWQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBOYW1lIj4ke3RoaXMubmFtZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TmF2aWdhdGlvbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3VGFicyI+CiAgICAgICAgICAgICAgJHt0aGlzLnZpZXdUYWJzLm1hcCgkPT57bGV0IEU9ISEkLnN1YlZpZXdzPy5sZW5ndGgsSD1FJiZ0aGlzLmlzR3JvdXBBY3RpdmUoJCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiAke3RoaXMuc2VsZWN0ZWRWaWV3PT09JD8ic2VsZWN0ZWQiOiIifSAke0U/Imhhc1N1YnMiOiIifSAke0g/Imdyb3VwQWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubG9hZFZpZXcoJCl9CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAkeyQuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7JC5pY29uTmFtZS5pbmNsdWRlcygiOiIpPyQuaWNvbk5hbWU6YGx1Y2lkZTokeyQuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpmaWxlIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHskLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICR7RT93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgJHtFP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InN1YlZpZXdzICR7SD8iZXhwYW5kZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID9pbmVydD0keyFIfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YlZpZXdzLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgJHskLnN1YlZpZXdzLm1hcChrPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiBzdWIgJHt0aGlzLnNlbGVjdGVkVmlldz09PWs/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke1M9PntTLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubG9hZFZpZXcoayl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2suaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke2suaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9rLmljb25OYW1lOmBsdWNpZGU6JHtrLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpkb3QifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7ay5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBBY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ291dCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bG9nT3V0In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPlNpZ24gb3V0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5fYWN0aXZlTWVzc2FnZXMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlQmFubmVyQXJlYSI+CiAgICAgICAgICAke3RoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcCgkPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2VCYW5uZXIgbWVzc2FnZUJhbm5lci0keyQudHlwZX0iCiAgICAgICAgICAgICAgZGF0YS1tZXNzYWdlLWlkPSIkeyQuaWR9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmdldE1lc3NhZ2VJY29uKCQpfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2VCYW5uZXItdGV4dCI+JHskLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICR7JC5hY3Rpb25zPy5sZW5ndGg/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7JC5hY3Rpb25zLm1hcChFPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9uIiBAY2xpY2s9JHsoKT0+RS5hY3Rpb24oKX0+CiAgICAgICAgICAgICAgICAgICAgICAke0UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke0UuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9FLmljb25OYW1lOmBsdWNpZGU6JHtFLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtFLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHskLmRpc21pc3NpYmxlIT09ITE/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItZGlzbWlzcyIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTWVzc2FnZSgkLmlkKX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp4In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBjb250ZW50Ij4KICAgICAgICAgIDwhLS0gQ29udGVudCBnb2VzIGhlcmUgLS0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy1jb25uZWN0ZWQiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6d2lmaSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+Q29ubmVjdGVkPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy10ZXJtaW5hbCIgQGNsaWNrPSR7dGhpcy5sYXVuY2hUZXJtaW5hbH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp0ZXJtaW5hbCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+VGVybWluYWw8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgkKXtsZXQgRT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtpZihzdXBlci5maXJzdFVwZGF0ZWQoJCksdGhpcy52aWV3VGFicyYmdGhpcy52aWV3VGFicy5sZW5ndGg+MCl7bGV0IEg9dGhpcy5zZWxlY3RlZFZpZXd8fHRoaXMudmlld1RhYnNbMF07YXdhaXQgdGhpcy5sb2FkVmlldyhIKX19d2lsbFVwZGF0ZSgkKXtpZigkLmhhcygiZ2xvYmFsTWVzc2FnZXMiKSl7bGV0IEU9bmV3IFNldCh0aGlzLmdsb2JhbE1lc3NhZ2VzLm1hcChSPT5SLmlkKSksSD1uZXcgU2V0KHRoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcChSPT5SLmlkKSksaz10aGlzLmdsb2JhbE1lc3NhZ2VzLmZpbHRlcihSPT4hSC5oYXMoUi5pZCkpLFM9JC5nZXQoImdsb2JhbE1lc3NhZ2VzIil8fFtdLEk9bmV3IFNldChTLm1hcChSPT5SLmlkKSksUD1uZXcgU2V0KFsuLi5JXS5maWx0ZXIoUj0+IUUuaGFzKFIpKSk7dGhpcy5fYWN0aXZlTWVzc2FnZXM9Wy4uLnRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihSPT4hUC5oYXMoUi5pZCkpLC4uLmtdfX11cGRhdGVkKCQpe3N1cGVyLnVwZGF0ZWQoJCksdGhpcy51cGRhdGVCYW5uZXJPZmZzZXQoKX11cGRhdGVCYW5uZXJPZmZzZXQoKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tZXNzYWdlQmFubmVyQXJlYSIpLEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLEg9JD8kLm9mZnNldEhlaWdodDowO0U/LnN0eWxlLnNldFByb3BlcnR5KCItLWJhbm5lci1hcmVhLWhlaWdodCIsYCR7SH1weGApfSl9Z2V0TWVzc2FnZUljb24oJCl7cmV0dXJuICQuaWNvbj8kLmljb246e2luZm86Imx1Y2lkZTppbmZvIixzdWNjZXNzOiJsdWNpZGU6Y2lyY2xlQ2hlY2siLHdhcm5pbmc6Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0IixlcnJvcjoibHVjaWRlOmNpcmNsZVgifVskLnR5cGVdfWFkZE1lc3NhZ2UoJCl7bGV0IEU9JC5pZHx8YG1zZy0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YCxIPXtkaXNtaXNzaWJsZTohMCwuLi4kLGlkOkV9O3JldHVybiB0aGlzLl9hY3RpdmVNZXNzYWdlcz1bLi4udGhpcy5fYWN0aXZlTWVzc2FnZXMsSF0sRX1yZW1vdmVNZXNzYWdlKCQpe2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtbWVzc2FnZS1pZD0iJHskfSJdYCk7RT8oRS5jbGFzc0xpc3QuYWRkKCJkaXNtaXNzaW5nIiksRS5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLCgpPT57dGhpcy5fYWN0aXZlTWVzc2FnZXM9dGhpcy5fYWN0aXZlTWVzc2FnZXMuZmlsdGVyKEg9PkguaWQhPT0kKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZXNzYWdlLWRpc21pc3MiLHtkZXRhaWw6e2lkOiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LHtvbmNlOiEwfSkpOnRoaXMuX2FjdGl2ZU1lc3NhZ2VzPXRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihIPT5ILmlkIT09JCl9Y2xlYXJNZXNzYWdlcygpe3RoaXMuX2FjdGl2ZU1lc3NhZ2VzPVtdfWN1cnJlbnRUZXJtaW5hbD0odGModGhpcyxfKSxudWxsKTthc3luYyBsYXVuY2hUZXJtaW5hbCgpe2xldCAkPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHRoaXMuY3VycmVudFRlcm1pbmFsKXthd2FpdCB0aGlzLmNsb3NlVGVybWluYWwoKTtyZXR1cm59bGV0IEU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDpIfT1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4ob1EoKSx6Z2EpKSxrPW5ldyBIO3JldHVybiBrLnNldHVwQ29tbWFuZD10aGlzLnRlcm1pbmFsU2V0dXBDb21tYW5kLHRoaXMuY3VycmVudFRlcm1pbmFsPWssRS5hcHBlbmRDaGlsZChrKSxrLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsay5zdHlsZS56SW5kZXg9IjEwIixrLnN0eWxlLnRvcD0idmFyKC0tYmFubmVyLWFyZWEtaGVpZ2h0LCAwcHgpIixrLnN0eWxlLmxlZnQ9IjI0MHB4IixrLnN0eWxlLnJpZ2h0PSIwcHgiLGsuc3R5bGUuaGVpZ2h0PSJhdXRvIixrLnN0eWxlLmJvdHRvbT0iMjRweCIsay5zdHlsZS5vcGFjaXR5PSIwIixrLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixrLnN0eWxlLnRyYW5zaXRpb249ImFsbCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIixrLnN0eWxlLmJveFNoYWRvdz0iMCAyNXB4IDUwcHggLTEycHggcmdiKDAgMCAwIC8gMC41KSwgMCAwIDAgMXB4IHJnYigyNTUgMjU1IDI1NSAvIDAuMDUpIixrLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+dGhpcy5jbG9zZVRlcm1pbmFsKCkpLGF3YWl0ICQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxrLnN0eWxlLm9wYWNpdHk9IjEiLGsuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIHNjYWxlKDEpIixrfWFzeW5jIGNsb3NlVGVybWluYWwoKXtsZXQgJD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmN1cnJlbnRUZXJtaW5hbCYmKHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixhd2FpdCAkLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLmN1cnJlbnRUZXJtaW5hbC5yZW1vdmUoKSx0aGlzLmN1cnJlbnRUZXJtaW5hbD1udWxsKX1pc0dyb3VwQWN0aXZlKCQpe3JldHVybiB0aGlzLnNlbGVjdGVkVmlldz09PSQ/ITA6JC5zdWJWaWV3cz8uc29tZShFPT5FPT09dGhpcy5zZWxlY3RlZFZpZXcpPz8hMX1jdXJyZW50Vmlldzthc3luYyBsb2FkVmlldygkKXtpZighJC5lbGVtZW50JiYkLnN1YlZpZXdzPy5sZW5ndGgpe2xldCBrPSQuc3ViVmlld3MuZmluZChTPT5TLmVsZW1lbnQpO3JldHVybiBrP3RoaXMubG9hZFZpZXcoayk6dm9pZCAwfWlmKCEkLmVsZW1lbnQpcmV0dXJuO2xldCBFPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYXBwY29udGVudCIpLEg9bmV3ICQuZWxlbWVudDt0aGlzLmN1cnJlbnRWaWV3JiZ0aGlzLmN1cnJlbnRWaWV3LnJlbW92ZSgpLEUuYXBwZW5kQ2hpbGQoSCksdGhpcy5jdXJyZW50Vmlldz1ILHRoaXMuc2VsZWN0ZWRWaWV3PSQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1zZWxlY3QiLHtkZXRhaWw6e3ZpZXc6JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7dGMoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIElnYT1nKCgpPT57UGdhKCl9KTt2YXIgQWdhLE5nYT1nKCgpPT57cGUoKTtBZ2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1zaW1wbGUtbG9naW4gCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICBAbG9naW49JHtzPT57Y29uc29sZS5sb2coIkxvZ2luIGV2ZW50IHJlY2VpdmVkOiIscy5kZXRhaWwpO2xldCBlPXMuZGV0YWlsPy5kYXRhfHxzLmRldGFpbDtlPy51c2VybmFtZSYmZT8ucGFzc3dvcmQ/YWxlcnQoYExvZ2luIGF0dGVtcHRlZCB3aXRoOgpVc2VybmFtZTogJHtlLnVzZXJuYW1lfQpQYXNzd29yZDogJHtlLnBhc3N3b3JkfWApOmNvbnNvbGUuZXJyb3IoIkludmFsaWQgbG9naW4gZGF0YSBzdHJ1Y3R1cmU6IixzLmRldGFpbCl9fQogICAgPgogICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICA8aDE+V2VsY29tZSE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgdGhlIHNsb3R0ZWQgY29udGVudCB0aGF0IGFwcGVhcnMgYWZ0ZXIgbG9naW4uPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgUmdhLFJydCxPZ2EsRmdhPWcoKCk9PntOZ2EoKTtwZSgpO3B0KCk7bnIoKTtSZ2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFJydD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sT2dhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaW1wbGUtbG9naW4iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NpbXBsZUxvZ2luIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxSZ2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJuYW1lImluIHUsImhhcyIpLGdldDppKHU9PnUubmFtZSwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1Lm5hbWU9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLFJnYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPUFnYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPVJydCh0aGlzLG8sIkFwcGxpY2F0aW9uIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubG9naW5Db250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5zbG90Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5sb2dpbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAubG9naW4taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnN1YmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6OnBhcnQoY29udGVudCkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWZvcm0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgZGVlcy1mb3JtLXN1Ym1pdCB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW5Db250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+U2lnbiBpbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJoZWFkZXIiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7IkNyZWRlbnRpYWxzIn0+CiAgICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InVzZXJuYW1lIiBsYWJlbD0iVXNlcm5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IlBhc3N3b3JkIiBpc1Bhc3N3b3JkQm9vbCByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TaWduIGluPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRhaW5lciI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKGQpe3N1cGVyLmZpcnN0VXBkYXRlZChkKTtsZXQgdT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7dSYmdS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGM9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2dpbiIse2RldGFpbDpjLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSkpfWFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKXtsZXQgZD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW4iKSxjPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW5Db250YWluZXIiKSxiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2xvdENvbnRhaW5lciIpO3Uuc3R5bGUub3BhY2l0eT0iMCIsdS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGMuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGF3YWl0IGQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGIuc3R5bGUub3BhY2l0eT0iMSIsYi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMHB4KSIsYXdhaXQgZC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksYi5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxScnQodGhpcyxsKX1zdGF0aWN7UnJ0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBCZ2E9ZygoKT0+e0ZnYSgpfSk7dmFyIEhnYT1nKCgpPT57TWdhKCk7SWdhKCk7QmdhKCl9KTt2YXIgcWdhPWcoKCk9PntVYSgpfSk7dmFyIGpnYSxWZ2E9ZygoKT0+e3BlKCk7amdhPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vV3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIAogICAgICAgIGJhY2tncm91bmQ6ICM4ODg4ODg7CiAgICAgIH0KICAgICAgLmxvZ3MgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgd2lkdGg6IDYwMHB4OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgLmxvZ3MgZGl2IHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgICA8ZGVlcy1zZWFyY2hiYXIKICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtpKHQ9PntsZXQgcj10LnRhcmdldC5jbG9zZXN0KCIuZGVtb1dyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiI2NoYW5nZWQiKTtyJiYoci50ZXh0Q29udGVudD1gc2VhcmNoLWNoYW5nZWQ6ICR7dC5kZXRhaWwudmFsdWV9YCl9LCJvbkNoYW5nZWQiKX0KICAgICAgICBAc2VhcmNoLXN1Ym1pdD0ke2kodD0+e2xldCByPXQudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjc3VibWl0dGVkIik7ciYmKHIudGV4dENvbnRlbnQ9YHNlYXJjaC1zdWJtaXQ6ICR7dC5kZXRhaWwudmFsdWV9YCl9LCJvblN1Ym1pdCIpfQogICAgICA+PC9kZWVzLXNlYXJjaGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibG9ncyI+CiAgICAgICAgPGRpdiBpZD0iY2hhbmdlZCI+c2VhcmNoLWNoYW5nZWQ6PC9kaXY+CiAgICAgICAgPGRpdiBpZD0ic3VibWl0dGVkIj5zZWFyY2gtc3VibWl0OjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsImRlbW9GdW5jIil9KTt2YXIgVWdhLE9ydCxXZ2EsR2dhPWcoKCk9PntwZSgpO0cxKCk7VmdhKCk7cHQoKTtVZ2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE9ydD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sV2dhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zZWFyY2hiYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NlYXJjaGJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0sVWdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZmlsdGVycyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmZpbHRlcnMsImdldCIpLHNldDppKCh1LGMpPT57dS5maWx0ZXJzPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxVZ2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1qZ2E7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSh2aC5ibHVlLGJoLmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKHZoLmJsdWVBY3RpdmUsYmguYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9T3J0KHRoaXMsbyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhkKXt0aGlzLiNlPWR9c2VhcmNoSW5wdXQ9T3J0KHRoaXMsbCk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDp3YGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntkLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje09ydChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgS2dhPWcoKCk9PntHZ2EoKX0pO3ZhciBZZ2EsWmdhPWcoKCk9PntwZSgpO1lnYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICB9CgogICAgLnRva2VuLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgIGdhcDogMTZweDsKICAgIH0KCiAgICAudG9rZW4taXRlbSB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQoKICAgIC50b2tlbi1uYW1lIHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CgogICAgLnRva2VuLXZhbHVlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zcGFjaW5nLWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNwYWNpbmctYm94IHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnJhZGl1cy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnJhZGl1cy1ib3ggewogICAgICB3aWR0aDogNjBweDsKICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAuc2hhZG93LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc2hhZG93LWJveCB7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICB9CgogICAgLmhlaWdodC1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuaGVpZ2h0LWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgd2lkdGg6IDEyMHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXRoZW1lPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TcGFjaW5nIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc3BhY2luZy14cyB0aHJvdWdoIC0tZGVlcy1zcGFjaW5nLTN4bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eHMgKDRweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctc20pOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnNtICg4cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZCAoMTJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPmxnICgxNnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eGwgKDI0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjJ4bCAoMzJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+M3hsICg0OHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9yZGVyIFJhZGl1cyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXJhZGl1cy14cyB0aHJvdWdoIC0tZGVlcy1yYWRpdXMtZnVsbAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7Ij54czwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4ycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjRweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj44cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjEycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOyI+ZnVsbDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj45OTlweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2hhZG93IEVsZXZhdGlvbiBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNoYWRvdy14cyB0aHJvdWdoIC0tZGVlcy1zaGFkb3ctbGcKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3cteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWluaW1hbDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+c3VidGxlPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZWRpdW08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnByb21pbmVudDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29udHJvbCBIZWlnaHQgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSB0aHJvdWdoIC0tZGVlcy1jb250cm9sLWhlaWdodC14bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MzJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjM2cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40MHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQteGwpOyI+eGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDhweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHJhbnNpdGlvbiBEdXJhdGlvbnM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy10cmFuc2l0aW9uLWZhc3QgdGhyb3VnaCAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXIKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1mYXN0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjFzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjE1czwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvdzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4yczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjNzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtdGhlbWU+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgZHgsZjIsWGdhLFFnYT1nKCgpPT57cGUoKTtwdCgpO1pnYSgpO2R4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sWGdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aGVtZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGhlbWUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtMKHt0eXBlOk9iamVjdH0pXSx5PVtMKHt0eXBlOk9iamVjdH0pXSxkeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNwYWNpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVNwYWNpbmciaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jdXN0b21TcGFjaW5nLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY3VzdG9tU3BhY2luZz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksZHgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21SYWRpdXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVJhZGl1cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmN1c3RvbVJhZGl1cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbVJhZGl1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksZHgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21TaGFkb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjdXN0b21TaGFkb3dzImluIF8sImhhcyIpLGdldDppKF89Pl8uY3VzdG9tU2hhZG93cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbVNoYWRvd3M9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLGR4KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tVHJhbnNpdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVRyYW5zaXRpb25zImluIF8sImhhcyIpLGdldDppKF89Pl8uY3VzdG9tVHJhbnNpdGlvbnMsImdldCIpLHNldDppKChfLE8pPT57Xy5jdXN0b21UcmFuc2l0aW9ucz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksZHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21Db250cm9sSGVpZ2h0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jdXN0b21Db250cm9sSGVpZ2h0cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbUNvbnRyb2xIZWlnaHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxkeChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPVlnYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1mMih0aGlzLG8sbnVsbCk7Z2V0IGN1c3RvbVNwYWNpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VzdG9tU3BhY2luZyhDKXt0aGlzLiNlPUN9I3Q9KGYyKHRoaXMsbCksZjIodGhpcyxkLG51bGwpKTtnZXQgY3VzdG9tUmFkaXVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1c3RvbVJhZGl1cyhDKXt0aGlzLiN0PUN9I2E9KGYyKHRoaXMsdSksZjIodGhpcyxiLG51bGwpKTtnZXQgY3VzdG9tU2hhZG93cygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21TaGFkb3dzKEMpe3RoaXMuI2E9Q30jcz0oZjIodGhpcyx2KSxmMih0aGlzLG0sbnVsbCkpO2dldCBjdXN0b21UcmFuc2l0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBjdXN0b21UcmFuc2l0aW9ucyhDKXt0aGlzLiNzPUN9I2k9KGYyKHRoaXMsZiksZjIodGhpcyxNLG51bGwpKTtnZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgJHt0aGlzLmdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9Z2VuZXJhdGVDdXN0b21TdHlsZXMoKXtsZXQgQz1bIjpob3N0IHsiXTtpZih0aGlzLmN1c3RvbVNwYWNpbmcpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TcGFjaW5nKSlPJiZDLnB1c2goYCAgLS1kZWVzLXNwYWNpbmctJHtffTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVJhZGl1cylmb3IobGV0W18sT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVJhZGl1cykpTyYmQy5wdXNoKGAgIC0tZGVlcy1yYWRpdXMtJHtffTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVNoYWRvd3MpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TaGFkb3dzKSlPJiZDLnB1c2goYCAgLS1kZWVzLXNoYWRvdy0ke199OiAke099O2ApO2lmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpe2ZvcihsZXRbXyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpKWlmKE8pe2xldCAkPV89PT0iZGVmYXVsdCI/ImRlZmF1bHQiOl87Qy5wdXNoKGAgIC0tZGVlcy10cmFuc2l0aW9uLSR7JH06ICR7T307YCl9fWlmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cykpTyYmQy5wdXNoKGAgIC0tZGVlcy1jb250cm9sLWhlaWdodC0ke199OiAke099O2ApO3JldHVybiBDLnB1c2goIn0iKSxDLmpvaW4oYApgKX1zZXRTcGFjaW5nKEMsXyl7dGhpcy5jdXN0b21TcGFjaW5nPXsuLi50aGlzLmN1c3RvbVNwYWNpbmcsW0NdOl99fXNldFJhZGl1cyhDLF8pe3RoaXMuY3VzdG9tUmFkaXVzPXsuLi50aGlzLmN1c3RvbVJhZGl1cyxbQ106X319c2V0U2hhZG93KEMsXyl7dGhpcy5jdXN0b21TaGFkb3dzPXsuLi50aGlzLmN1c3RvbVNoYWRvd3MsW0NdOl99fXNldFRyYW5zaXRpb24oQyxfKXt0aGlzLmN1c3RvbVRyYW5zaXRpb25zPXsuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zLFtDXTpffX1zZXRDb250cm9sSGVpZ2h0KEMsXyl7dGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz17Li4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cyxbQ106X319Z2V0VGhlbWUoKXtyZXR1cm57Y29sb3JzOldsLmNvbG9ycyxzcGFjaW5nOnsuLi5XbC5zcGFjaW5nLC4uLnRoaXMuY3VzdG9tU3BhY2luZ30scmFkaXVzOnsuLi5XbC5yYWRpdXMsLi4udGhpcy5jdXN0b21SYWRpdXN9LHNoYWRvd3M6ey4uLldsLnNoYWRvd3MsLi4udGhpcy5jdXN0b21TaGFkb3dzfSx0cmFuc2l0aW9uczp7Li4uV2wudHJhbnNpdGlvbnMsLi4udGhpcy5jdXN0b21UcmFuc2l0aW9uc30sY29udHJvbEhlaWdodHM6ey4uLldsLmNvbnRyb2xIZWlnaHRzLC4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHN9fX1yZXNldFRvRGVmYXVsdHMoKXt0aGlzLmN1c3RvbVNwYWNpbmc9bnVsbCx0aGlzLmN1c3RvbVJhZGl1cz1udWxsLHRoaXMuY3VzdG9tU2hhZG93cz1udWxsLHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9bnVsbCx0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPW51bGx9YXBwbHlUaGVtZShDKXtDLnNwYWNpbmcmJih0aGlzLmN1c3RvbVNwYWNpbmc9Qy5zcGFjaW5nKSxDLnJhZGl1cyYmKHRoaXMuY3VzdG9tUmFkaXVzPUMucmFkaXVzKSxDLnNoYWRvd3MmJih0aGlzLmN1c3RvbVNoYWRvd3M9Qy5zaGFkb3dzKSxDLnRyYW5zaXRpb25zJiYodGhpcy5jdXN0b21UcmFuc2l0aW9ucz1DLnRyYW5zaXRpb25zKSxDLmNvbnRyb2xIZWlnaHRzJiYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz1DLmNvbnRyb2xIZWlnaHRzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZjIodGhpcyx6KX1zdGF0aWN7ZjIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIEpnYT1nKCgpPT57UWdhKCl9KTt2YXIgZTdhLHQ3YSxhN2E9ZygoKT0+e3BlKCk7RnJ0KCk7ZTdhPWkoYXN5bmMgcz0+e2F3YWl0IG5ldyBQcm9taXNlKGU9Pnt3aW5kb3cuc2V0VGltZW91dCgoKT0+ZSgpLHMpfSl9LCJ3YWl0Rm9yRGVtb1N0ZXAiKSx0N2E9aSgoKT0+e2xldCBzPSExO3JldHVybiB3YAogICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiAxNnB4OyBwbGFjZS1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAzMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgbWF4LXdpZHRoOiA1NDBweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgTGF1bmNoZXMgdGhlIHVwZGF0ZXIgYXMgYSBzdGVwcGVyIGZsb3cuIFRoZSBmaXJzdCBzdGVwIHN0cmVhbXMgdGVybWluYWwtc3R5bGUKICAgICAgICBwcm9ncmVzcyB1cGRhdGVzIGFuZCB0aGVuIG1vdmVzIGF1dG9tYXRpY2FsbHkgdG8gdGhlIHJlYWR5IHN0ZXAuCiAgICAgIDwvcD4KICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2lmKCFzKXtzPSEwO3RyeXtsZXQgZT1hd2FpdCB5MWUuY3JlYXRlQW5kU2hvdyh7Y3VycmVudFZlcnNpb246IjMuNzkuMCIsdXBkYXRlZFZlcnNpb246IjMuODAuMCIsbW9yZUluZm9Vcmw6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9kZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsY2hhbmdlbG9nVXJsOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvLS9ibG9iL21haW4vY2hhbmdlbG9nLm1kIixzdWNjZXNzQWN0aW9uOiJjbG9zZSIsc3VjY2Vzc0RlbGF5TXM6MWU0fSksdD1be2xpbmU6IkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QiLHBlcmNlbnRhZ2U6MTIsZGVsYXk6NTUwfSx7bGluZToiRG93bmxvYWRpbmcgc2lnbmVkIGJ1bmRsZSIscGVyY2VudGFnZTozMyxkZWxheTo3MDB9LHtsaW5lOiJWZXJpZnlpbmcgY2hlY2tzdW0iLHBlcmNlbnRhZ2U6NTEsZGVsYXk6NjUwfSx7bGluZToiQXBwbHlpbmcgdXBkYXRlIGZpbGVzIixwZXJjZW50YWdlOjc0LGRlbGF5OjgwMH0se2xpbmU6IkNsZWFuaW5nIHVwIHByZXZpb3VzIHJlbGVhc2UiLHBlcmNlbnRhZ2U6OTEsZGVsYXk6NjAwfV07ZS51cGRhdGVQcm9ncmVzcyh7c3RhdHVzVGV4dDoiQ2hlY2tpbmcgcmVsZWFzZSBtYW5pZmVzdC4uLiIsdGVybWluYWxMaW5lczpbIkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QiXSxwZXJjZW50YWdlOjEyLGluZGV0ZXJtaW5hdGU6ITB9KTtmb3IobGV0W2Escl1vZiB0LmVudHJpZXMoKSlhPjAmJihlLmFwcGVuZFByb2dyZXNzTGluZShyLmxpbmUpLGUudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6ci5wZXJjZW50YWdlLHN0YXR1c1RleHQ6YCR7ci5saW5lfS4uLmB9KSksYXdhaXQgZTdhKHIuZGVsYXkpO2F3YWl0IGUubWFya1VwZGF0ZVJlYWR5KCksYXdhaXQgZTdhKDEwNTAwKX1maW5hbGx5e3M9ITF9fX19CiAgICAgID5TaG93IHVwZGF0ZXIgZmxvdzwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBlNCxVbix5MWUsRnJ0PWcoKCk9PntwZSgpO2E3YSgpO2kxZSgpO0NyKCk7ZTQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFVuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx5MWU9KCgpPT57bGV0IHM9W25lKCJkZWVzLXVwZGF0ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1VwZGF0ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxOPVtMKHt0eXBlOk51bWJlcn0pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxlNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXJyZW50VmVyc2lvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmN1cnJlbnRWZXJzaW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3VycmVudFZlcnNpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLGU0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBkYXRlZFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InVwZGF0ZWRWZXJzaW9uImluIFMsImhhcyIpLGdldDppKFM9PlMudXBkYXRlZFZlcnNpb24sImdldCIpLHNldDppKChTLEkpPT57Uy51cGRhdGVkVmVyc2lvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksZTQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3JlSW5mb1VybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibW9yZUluZm9VcmwiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5tb3JlSW5mb1VybCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm1vcmVJbmZvVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxlNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYW5nZWxvZ1VybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY2hhbmdlbG9nVXJsImluIFMsImhhcyIpLGdldDppKFM9PlMuY2hhbmdlbG9nVXJsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY2hhbmdlbG9nVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxlNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NBY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN1Y2Nlc3NBY3Rpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdWNjZXNzQWN0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3VjY2Vzc0FjdGlvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksZTQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWNjZXNzRGVsYXlNcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3VjY2Vzc0RlbGF5TXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdWNjZXNzRGVsYXlNcywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnN1Y2Nlc3NEZWxheU1zPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxlNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NBY3Rpb25MYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3VjY2Vzc0FjdGlvbkxhYmVsImluIFMsImhhcyIpLGdldDppKFM9PlMuc3VjY2Vzc0FjdGlvbkxhYmVsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3VjY2Vzc0FjdGlvbkxhYmVsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxlNChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXQ3YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhrPXt9KXtsZXQgUz1uZXcgSDtyZXR1cm4gUy5jdXJyZW50VmVyc2lvbj1rLmN1cnJlbnRWZXJzaW9uPz8iIixTLnVwZGF0ZWRWZXJzaW9uPWsudXBkYXRlZFZlcnNpb24/PyIiLFMubW9yZUluZm9Vcmw9ay5tb3JlSW5mb1VybD8/IiIsUy5jaGFuZ2Vsb2dVcmw9ay5jaGFuZ2Vsb2dVcmw/PyIiLFMuc3VjY2Vzc0FjdGlvbj1rLnN1Y2Nlc3NBY3Rpb24/PyJjbG9zZSIsUy5zdWNjZXNzRGVsYXlNcz1rLnN1Y2Nlc3NEZWxheU1zPz8xZTQsUy5zdWNjZXNzQWN0aW9uTGFiZWw9ay5zdWNjZXNzQWN0aW9uTGFiZWw/PyIiLFMub25TdWNjZXNzQWN0aW9uPWsub25TdWNjZXNzQWN0aW9uPz9udWxsLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUyksYXdhaXQgUy5zaG93KCksU30jZT1Vbih0aGlzLG8sIiIpO2dldCBjdXJyZW50VmVyc2lvbigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmVyc2lvbihrKXt0aGlzLiNlPWt9I3Q9KFVuKHRoaXMsbCksVW4odGhpcyxkLCIiKSk7Z2V0IHVwZGF0ZWRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHVwZGF0ZWRWZXJzaW9uKGspe3RoaXMuI3Q9a30jYT0oVW4odGhpcyx1KSxVbih0aGlzLGIsIiIpKTtnZXQgbW9yZUluZm9VcmwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbW9yZUluZm9Vcmwoayl7dGhpcy4jYT1rfSNzPShVbih0aGlzLHYpLFVuKHRoaXMsbSwiIikpO2dldCBjaGFuZ2Vsb2dVcmwoKXtyZXR1cm4gdGhpcy4jc31zZXQgY2hhbmdlbG9nVXJsKGspe3RoaXMuI3M9a30jaT0oVW4odGhpcyxmKSxVbih0aGlzLE0sImNsb3NlIikpO2dldCBzdWNjZXNzQWN0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN1Y2Nlc3NBY3Rpb24oayl7dGhpcy4jaT1rfSNyPShVbih0aGlzLHopLFVuKHRoaXMsQywxZTQpKTtnZXQgc3VjY2Vzc0RlbGF5TXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc3VjY2Vzc0RlbGF5TXMoayl7dGhpcy4jcj1rfSNvPShVbih0aGlzLF8pLFVuKHRoaXMsJCwiIikpO2dldCBzdWNjZXNzQWN0aW9uTGFiZWwoKXtyZXR1cm4gdGhpcy4jb31zZXQgc3VjY2Vzc0FjdGlvbkxhYmVsKGspe3RoaXMuI289a31zdGVwcGVyPShVbih0aGlzLEUpLG51bGwpO3Byb2dyZXNzU3RlcD1udWxsO3Nob3dQcm9taXNlPW51bGw7b25TdWNjZXNzQWN0aW9uPW51bGw7c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc2hvdygpfWFzeW5jIHNob3coKXtpZighdGhpcy5zdGVwcGVyPy5pc0Nvbm5lY3RlZCl7aWYodGhpcy5zaG93UHJvbWlzZSlyZXR1cm4gdGhpcy5zaG93UHJvbWlzZTt0aGlzLnNob3dQcm9taXNlPXRoaXMub3BlblN0ZXBwZXJGbG93KCk7dHJ5e2F3YWl0IHRoaXMuc2hvd1Byb21pc2V9ZmluYWxseXt0aGlzLnNob3dQcm9taXNlPW51bGx9fX11cGRhdGVQcm9ncmVzcyhrKXshdGhpcy5zdGVwcGVyfHwhdGhpcy5wcm9ncmVzc1N0ZXB8fHRoaXMuc3RlcHBlci51cGRhdGVQcm9ncmVzc1N0ZXAoayx0aGlzLnByb2dyZXNzU3RlcCl9YXBwZW5kUHJvZ3Jlc3NMaW5lKGspeyF0aGlzLnN0ZXBwZXJ8fCF0aGlzLnByb2dyZXNzU3RlcHx8dGhpcy5zdGVwcGVyLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoayx0aGlzLnByb2dyZXNzU3RlcCl9bWFya1VwZGF0ZUVycm9yKGspe3RoaXMuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBFcnJvcjogJHtrfWApLHRoaXMudXBkYXRlUHJvZ3Jlc3Moe2luZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDprfSl9YXN5bmMgbWFya1VwZGF0ZVJlYWR5KCl7IXRoaXMuc3RlcHBlcnx8IXRoaXMucHJvZ3Jlc3NTdGVwfHwodGhpcy5zdGVwcGVyLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OiJVcGRhdGUgcmVhZHkuIn0sdGhpcy5wcm9ncmVzc1N0ZXApLHRoaXMuc3RlcHBlci5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKCJVcGRhdGUgcmVhZHkiLHRoaXMucHJvZ3Jlc3NTdGVwKSx0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRTdGVwPT09dGhpcy5wcm9ncmVzc1N0ZXAmJnRoaXMuc3RlcHBlci5nb05leHQoKSl9YXN5bmMgZGVzdHJveSgpe2xldCBrPXRoaXMuc3RlcHBlcjt0aGlzLnN0ZXBwZXI9bnVsbCx0aGlzLnByb2dyZXNzU3RlcD1udWxsLGs/LmlzQ29ubmVjdGVkJiZhd2FpdCBrLmRlc3Ryb3koKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKX1hc3luYyBvcGVuU3RlcHBlckZsb3coKXtsZXR7c3RlcHM6ayxwcm9ncmVzc1N0ZXA6U309dGhpcy5jcmVhdGVVcGRhdGVyU3RlcHMoKTt0aGlzLnByb2dyZXNzU3RlcD1TLHRoaXMuc3RlcHBlcj1hd2FpdCBheC5jcmVhdGVBbmRTaG93KHtzdGVwczprLGNhbmNlbGFibGU6ITF9KX1jcmVhdGVVcGRhdGVyU3RlcHMoKXtsZXQgaz10aGlzLmdldExpbmtNZW51T3B0aW9ucygpLFM9e3RpdGxlOiJVcGRhdGluZyB0aGUgYXBwbGljYXRpb24iLGNvbnRlbnQ6dGhpcy5yZW5kZXJQcm9ncmVzc0NvbnRlbnQoKSxwcm9ncmVzc1N0ZXA6e2xhYmVsOnRoaXMuZ2V0UHJvZ3Jlc3NMYWJlbCgpLHBlcmNlbnRhZ2U6NSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1Jvd3M6NCxzdGF0dXNUZXh0OiJQcmVwYXJpbmcgdXBkYXRlLi4uIix0ZXJtaW5hbExpbmVzOlsiUHJlcGFyaW5nIHVwZGF0ZSJdfSxtZW51T3B0aW9uczprLmxlbmd0aD4wP2s6dm9pZCAwfSxJPXt0aXRsZTp0aGlzLnVwZGF0ZWRWZXJzaW9uP2BWZXJzaW9uICR7dGhpcy51cGRhdGVkVmVyc2lvbn0gcmVhZHlgOiJVcGRhdGUgcmVhZHkiLGNvbnRlbnQ6dGhpcy5yZW5kZXJSZWFkeUNvbnRlbnQoKSxwcm9ncmVzc1N0ZXA6e2xhYmVsOnRoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93bkxhYmVsKHRoaXMuZ2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpKSxwZXJjZW50YWdlOjAsaW5kZXRlcm1pbmF0ZTohMSxzaG93UGVyY2VudGFnZTohMSxzdGF0dXNSb3dzOjIsc3RhdHVzVGV4dDp0aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25TdGF0dXModGhpcy5nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCkpfSx2YWxpZGF0aW9uRnVuYzppKGFzeW5jKFAsUixLKT0+e2F3YWl0IHRoaXMucnVuU3VjY2Vzc0NvdW50ZG93bihQLEksSyl9LCJ2YWxpZGF0aW9uRnVuYyIpfTtyZXR1cm57c3RlcHM6W1MsSV0scHJvZ3Jlc3NTdGVwOlN9fWdldFByb2dyZXNzTGFiZWwoKXtyZXR1cm4gdGhpcy5jdXJyZW50VmVyc2lvbiYmdGhpcy51cGRhdGVkVmVyc2lvbj9gJHt0aGlzLmN1cnJlbnRWZXJzaW9ufSAtPiAke3RoaXMudXBkYXRlZFZlcnNpb259YDp0aGlzLnVwZGF0ZWRWZXJzaW9uP2BQcmVwYXJpbmcgJHt0aGlzLnVwZGF0ZWRWZXJzaW9ufWA6IkFwcGxpY2F0aW9uIHVwZGF0ZSJ9Z2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpe3JldHVybiBNYXRoLm1heCgxLE1hdGguY2VpbCh0aGlzLnN1Y2Nlc3NEZWxheU1zLzFlMykpfWdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKXtyZXR1cm4gdGhpcy5zdWNjZXNzQWN0aW9uTGFiZWw/dGhpcy5zdWNjZXNzQWN0aW9uTGFiZWw6dGhpcy5vblN1Y2Nlc3NBY3Rpb24/IkNvbnRpbnVpbmcgYXV0b21hdGljYWxseSI6dGhpcy5zdWNjZXNzQWN0aW9uPT09InJlbG9hZCI/IlJlbG9hZGluZyBhcHBsaWNhdGlvbiI6IkNsb3NpbmcgdXBkYXRlciJ9Z2V0U3VjY2Vzc0NvdW50ZG93bkxhYmVsKGspe3JldHVybmAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfSBpbiAke2t9c2B9Z2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyhrKXtsZXQgUz1rPT09MT8ic2Vjb25kIjoic2Vjb25kcyI7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IGluICR7a30gJHtTfS5gfWdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpe3JldHVybmAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfSBub3cuLi5gfWdldExpbmtNZW51T3B0aW9ucygpe2xldCBrPVtdO3JldHVybiB0aGlzLm1vcmVJbmZvVXJsJiZrLnB1c2goe25hbWU6Ik1vcmUgaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMub3BlbkV4dGVybmFsVXJsKHRoaXMubW9yZUluZm9VcmwpfSwiYWN0aW9uIil9KSx0aGlzLmNoYW5nZWxvZ1VybCYmay5wdXNoKHtuYW1lOiJDaGFuZ2Vsb2ciLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLm9wZW5FeHRlcm5hbFVybCh0aGlzLmNoYW5nZWxvZ1VybCl9LCJhY3Rpb24iKX0pLGt9cmVuZGVyVmVyc2lvbk1ldGEoayxTKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDRweDsgbWluLXdpZHRoOiAxMzJweDsgcGFkZGluZzogMTJweCAxNHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOyBib3JkZXItcmFkaXVzOiA4cHg7IGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOyIKICAgICAgPgogICAgICAgIDxkaXYKICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA1ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICA+CiAgICAgICAgICAke2t9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9JHtgZm9udC1mYW1pbHk6ICR7aW5lfTsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTtgfQogICAgICAgID4KICAgICAgICAgICR7U30KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclByb2dyZXNzQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDE4cHg7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNnB4OyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICAgID4KICAgICAgICAgICAgQXBwbGljYXRpb24gdXBkYXRlCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzU7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyIKICAgICAgICAgID4KICAgICAgICAgICAgRG93bmxvYWRpbmcgYW5kIGFwcGx5aW5nIHRoZSBsYXRlc3QgcmVsZWFzZS4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42NTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbiYmdGhpcy51cGRhdGVkVmVyc2lvbj93YE1vdmluZyBmcm9tIDxzdHJvbmc+JHt0aGlzLmN1cnJlbnRWZXJzaW9ufTwvc3Ryb25nPiB0byA8c3Ryb25nPiR7dGhpcy51cGRhdGVkVmVyc2lvbn08L3N0cm9uZz4uYDp0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgUHJlcGFyaW5nIDxzdHJvbmc+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Ryb25nPiBmb3IgaW5zdGFsbGF0aW9uLmA6IlRoZSB1cGRhdGVyIGlzIGZldGNoaW5nIHRoZSBuZXdlc3QgYnVpbGQgYW5kIHByZXBhcmluZyBpdCBmb3IgaW5zdGFsbGF0aW9uLiJ9CiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbnx8dGhpcy51cGRhdGVkVmVyc2lvbj93YAogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAke3RoaXMuY3VycmVudFZlcnNpb24/dGhpcy5yZW5kZXJWZXJzaW9uTWV0YSgiQ3VycmVudCB2ZXJzaW9uIix0aGlzLmN1cnJlbnRWZXJzaW9uKToiIn0KICAgICAgICAgICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj90aGlzLnJlbmRlclZlcnNpb25NZXRhKCJJbmNvbWluZyB2ZXJzaW9uIix0aGlzLnVwZGF0ZWRWZXJzaW9uKToiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICAgID4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICBBdXRvbWF0aWMgZmxvdwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyI+CiAgICAgICAgICAgIFRoZSB1cGRhdGVyIGNvbnRpbnVlcyBvbiBpdHMgb3duIG9uY2UgdGhlIG5ldyBidWlsZCBpcyBpbnN0YWxsZWQgYW5kIHZlcmlmaWVkLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJSZWFkeUNvbnRlbnQoKXtsZXQgaz10aGlzLmdldFN1Y2Nlc3NEZWxheVNlY29uZHMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiAxOHB4OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDZweDsiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsiCiAgICAgICAgICA+CiAgICAgICAgICAgIFVwZGF0ZSBjb21wbGV0ZQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAxLjM1OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj93YFZlcnNpb24gPHNwYW4gc3R5bGU9JHtgZm9udC1mYW1pbHk6ICR7aW5lfTsgZm9udC1zaXplOiAwLjk1ZW07YH0+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Bhbj4gaXMgcmVhZHkgdG8gdXNlLmA6IlRoZSBuZXcgdmVyc2lvbiBpcyByZWFkeSB0byB1c2UuIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42NTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgICAgIFRoZSBuZXcgYnVpbGQgaGFzIGJlZW4gaW5zdGFsbGVkIGFuZCB2ZXJpZmllZC4gWW91IGNhbiByZXZpZXcgcmVsZWFzZSBkZXRhaWxzIGJlbG93IHdoaWxlIHRoZSBuZXh0IGFjdGlvbiBydW5zIGF1dG9tYXRpY2FsbHkuCiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj93YAogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVmVyc2lvbk1ldGEoIkluc3RhbGxlZCB2ZXJzaW9uIix0aGlzLnVwZGF0ZWRWZXJzaW9uKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICAgID4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICBOZXh0IGFjdGlvbgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7Ij4KICAgICAgICAgICAgJHt0aGlzLmdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsiPgogICAgICAgICAgICBSdW5zIGF1dG9tYXRpY2FsbHkgaW4gJHtrfSBzZWNvbmRzLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBydW5TdWNjZXNzQ291bnRkb3duKGssUyxJKXtsZXQgUD1NYXRoLm1heCgxZTMsdGhpcy5zdWNjZXNzRGVsYXlNcyksUj1EYXRlLm5vdygpO2Zvcig7IUk/LmFib3J0ZWQ7KXtsZXQgSz1NYXRoLm1pbihQLERhdGUubm93KCktUiksVj1NYXRoLm1heCgwLFAtSyksVz1NYXRoLm1heCgwLE1hdGguY2VpbChWLzFlMykpO2lmKGsudXBkYXRlUHJvZ3Jlc3NTdGVwKHtsYWJlbDpWPjA/dGhpcy5nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwoVyk6dGhpcy5nZXRTdWNjZXNzQWN0aW9uTm93TGFiZWwoKSxwZXJjZW50YWdlOksvUCoxMDAsaW5kZXRlcm1pbmF0ZTohMSxzaG93UGVyY2VudGFnZTohMSxzdGF0dXNUZXh0OlY+MD90aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25TdGF0dXMoVyk6dGhpcy5nZXRTdWNjZXNzQWN0aW9uTm93TGFiZWwoKX0sUyksVjw9MClicmVhaztpZighYXdhaXQgdGhpcy53YWl0Rm9yQ291bnRkb3duVGljaygxMDAsSSkpcmV0dXJufWF3YWl0IHRoaXMucnVuQ29uZmlndXJlZFN1Y2Nlc3NBY3Rpb24oKX1hc3luYyB3YWl0Rm9yQ291bnRkb3duVGljayhrLFMpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IFA9ITEsUj1pKFc9PntQfHwoUD0hMCxTJiZTLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixLKSxJKFcpKX0sImZpbmlzaCIpLEs9aSgoKT0+e3dpbmRvdy5jbGVhclRpbWVvdXQoViksUighMSl9LCJoYW5kbGVBYm9ydCIpLFY9d2luZG93LnNldFRpbWVvdXQoKCk9PntSKCEwKX0sayk7UyYmUy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSyx7b25jZTohMH0pfSl9YXN5bmMgcnVuQ29uZmlndXJlZFN1Y2Nlc3NBY3Rpb24oKXtpZih0aGlzLm9uU3VjY2Vzc0FjdGlvbil7YXdhaXQgdGhpcy5vblN1Y2Nlc3NBY3Rpb24oKTtyZXR1cm59aWYodGhpcy5zdWNjZXNzQWN0aW9uPT09InJlbG9hZCIpe2F3YWl0IHRoaXMuZGVzdHJveSgpLHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59YXdhaXQgdGhpcy5kZXN0cm95KCl9b3BlbkV4dGVybmFsVXJsKGspe3dpbmRvdy5vcGVuKGssIl9ibGFuayIsIm5vb3BlbmVyLG5vcmVmZXJyZXIiKX1zdGF0aWN7VW4oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIHM3YT1nKCgpPT57RnJ0KCl9KTt2YXIgaTdhPWcoKCk9PntUZXQoKX0pO3ZhciByN2E9ZygoKT0+e3FnYSgpO0tnYSgpO0pnYSgpO3M3YSgpO2k3YSgpfSk7dmFyIERnLGFjLG83YSx3MWU9ZygoKT0+e3BlKCk7a3QoKTtwdCgpO1VhKCk7b3IoKTtvcigpO0owKCk7eGgoKTt4aCgpO0RnPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxhYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbzdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZUZpbGV0cmVlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sRGcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5leGVjdXRpb25FbnZpcm9ubWVudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmV4ZWN1dGlvbkVudmlyb25tZW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxEZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvb3RQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJyb290UGF0aCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnJvb3RQYXRoLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uucm9vdFBhdGg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLERnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzZWxlY3RlZFBhdGgiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zZWxlY3RlZFBhdGgsImdldCIpLHNldDppKChFLEgpPT57RS5zZWxlY3RlZFBhdGg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLERnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJlZURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InRyZWVEYXRhImluIEUsImhhcyIpLGdldDppKEU9PkUudHJlZURhdGEsImdldCIpLHNldDppKChFLEgpPT57RS50cmVlRGF0YT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksRGcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImlzTG9hZGluZyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmlzTG9hZGluZz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksRGcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvck1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImVycm9yTWVzc2FnZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmVycm9yTWVzc2FnZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmVycm9yTWVzc2FnZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksRGcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTsjZT1hYyh0aGlzLG8sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCQpe3RoaXMuI2U9JH0jdD0oYWModGhpcyxsKSxhYyh0aGlzLGQsIi8iKSk7Z2V0IHJvb3RQYXRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJvb3RQYXRoKCQpe3RoaXMuI3Q9JH0jYT0oYWModGhpcyx1KSxhYyh0aGlzLGIsIiIpKTtnZXQgc2VsZWN0ZWRQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkUGF0aCgkKXt0aGlzLiNhPSR9I3M9KGFjKHRoaXMsdiksYWModGhpcyxtLFtdKSk7Z2V0IHRyZWVEYXRhKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRyZWVEYXRhKCQpe3RoaXMuI3M9JH0jaT0oYWModGhpcyxmKSxhYyh0aGlzLE0sITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzTG9hZGluZygkKXt0aGlzLiNpPSR9I3I9KGFjKHRoaXMseiksYWModGhpcyxDLCIiKSk7Z2V0IGVycm9yTWVzc2FnZSgpe3JldHVybiB0aGlzLiNyfXNldCBlcnJvck1lc3NhZ2UoJCl7dGhpcy4jcj0kfWV4cGFuZGVkUGF0aHM9KGFjKHRoaXMsXyksbmV3IFNldCk7bG9hZFRyZWVTdGFydGVkPSExO2NsaXBib2FyZFBhdGg9bnVsbDtjbGlwYm9hcmRPcGVyYXRpb249bnVsbDtmaWxlV2F0Y2hlcj1udWxsO3JlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbDtsYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnRyZWUtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDFweCA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MyUpIiwiaHNsKDAgMCUgMTQlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCA1MCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0uc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTIlKSIsImhzbCgyMTAgNTAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pbmRlbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5leHBhbmRlZCB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24uaGlkZGVuIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uZm9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0NSA4MCUgNDUlKSIsImhzbCg0NSA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5maWxlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLnR5cGVzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woMjExIDYwJSA0OCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmphdmFzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woNTMgOTMlIDU0JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uanNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA4MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5odG1sIHsKICAgICAgICBjb2xvcjogaHNsKDE0IDc3JSA1MiUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmNzcyB7CiAgICAgICAgY29sb3I6IGhzbCgyMjggNzclIDU5JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24ubWFya2Rvd24gewogICAgICAgIGNvbG9yOiBoc2woMCAwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogaHNsKDAgNzAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50P3RoaXMuaXNMb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZyI+CiAgICAgICAgICBMb2FkaW5nIGZpbGVzLi4uCiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvck1lc3NhZ2U/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciI+CiAgICAgICAgICAke3RoaXMuZXJyb3JNZXNzYWdlfQogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGV0cmVlLXRvb2xiYXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj5FeHBsb3Jlcjwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWFjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0gdGl0bGU9Ik5ldyBGaWxlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZVBsdXMifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKCIvIil9IHRpdGxlPSJOZXcgRm9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Zm9sZGVyUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy50cmVlRGF0YS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGZpbGVzIGZvdW5kLjwvZGl2PmA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJlZS1jb250YWluZXIiIEBjb250ZXh0bWVudT0ke3RoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51fT4KICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVHJlZSh0aGlzLnRyZWVEYXRhKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5Ij4KICAgICAgICAgIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBwcm92aWRlZC4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZW5kZXJUcmVlKCQpe3JldHVybiAkLm1hcChFPT50aGlzLnJlbmRlck5vZGUoRSkpfXJlbmRlck5vZGUoJCl7bGV0IEU9JC50eXBlPT09ImRpcmVjdG9yeSIsSD10aGlzLmV4cGFuZGVkUGF0aHMuaGFzKCQucGF0aCksaz0kLnBhdGg9PT10aGlzLnNlbGVjdGVkUGF0aCxTPXRoaXMuZ2V0RmlsZUljb25DbGFzcygkKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0cmVlLWl0ZW0gJHtrPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7OCskLmxldmVsKjE2fXB4IgogICAgICAgIEBjbGljaz0ke0k9PnRoaXMuaGFuZGxlSXRlbUNsaWNrKEksJCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7ST0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShJLCQpfQogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZC1pY29uICR7SD8iZXhwYW5kZWQiOiIifSAke0U/IiI6ImhpZGRlbiJ9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25SaWdodCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWljb24gJHtTfSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5nZXRGaWxlSWNvbigkKX0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtbmFtZSI+JHskLm5hbWV9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHtFJiZIJiYkLmNoaWxkcmVuP3RoaXMucmVuZGVyVHJlZSgkLmNoaWxkcmVuKToiIn0KICAgIGB9Z2V0RmlsZUljb24oJCl7aWYoJC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXRocy5oYXMoJC5wYXRoKT8ibHVjaWRlOmZvbGRlck9wZW4iOiJsdWNpZGU6Zm9sZGVyIjtzd2l0Y2goJC5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJqc29uIjpyZXR1cm4ibHVjaWRlOmZpbGVKc29uIjtjYXNlImh0bWwiOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJtZCI6cmV0dXJuImx1Y2lkZTpmaWxlVGV4dCI7Y2FzZSJwbmciOmNhc2UianBnIjpjYXNlImpwZWciOmNhc2UiZ2lmIjpjYXNlInN2ZyI6cmV0dXJuImx1Y2lkZTppbWFnZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOmZpbGUifX1nZXRGaWxlSWNvbkNsYXNzKCQpe2lmKCQudHlwZT09PSJkaXJlY3RvcnkiKXJldHVybiJmb2xkZXIiO3N3aXRjaCgkLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImh0bWwiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImNzcyI7Y2FzZSJtZCI6cmV0dXJuIm1hcmtkb3duIjtkZWZhdWx0OnJldHVybiJmaWxlIn19YXN5bmMgaGFuZGxlSXRlbUNsaWNrKCQsRSl7JC5zdG9wUHJvcGFnYXRpb24oKSxFLnR5cGU9PT0iZGlyZWN0b3J5Ij9hd2FpdCB0aGlzLnRvZ2dsZURpcmVjdG9yeShFKToodGhpcy5zZWxlY3RlZFBhdGg9RS5wYXRoLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtc2VsZWN0Iix7ZGV0YWlsOntwYXRoOkUucGF0aCxuYW1lOkUubmFtZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9YXN5bmMgdG9nZ2xlRGlyZWN0b3J5KCQpe3RoaXMuZXhwYW5kZWRQYXRocy5oYXMoJC5wYXRoKT90aGlzLmV4cGFuZGVkUGF0aHMuZGVsZXRlKCQucGF0aCk6KHRoaXMuZXhwYW5kZWRQYXRocy5hZGQoJC5wYXRoKSwoISQuY2hpbGRyZW58fCQuY2hpbGRyZW4ubGVuZ3RoPT09MCkmJmF3YWl0IHRoaXMubG9hZERpcmVjdG9yeUNvbnRlbnRzKCQpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBsb2FkRGlyZWN0b3J5Q29udGVudHMoJCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IEU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKCQucGF0aCk7JC5jaGlsZHJlbj10aGlzLnNvcnRFbnRyaWVzKEUpLm1hcChIPT4oey4uLkgsbGV2ZWw6JC5sZXZlbCsxLGV4cGFuZGVkOiExLGNoaWxkcmVuOkgudHlwZT09PSJkaXJlY3RvcnkiP1tdOnZvaWQgMH0pKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkgJHskLnBhdGh9OmAsRSl9fWFzeW5jIGhhbmRsZUNvbnRleHRNZW51KCQsRSl7JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEg9W107RS50eXBlPT09ImRpcmVjdG9yeSImJkgucHVzaCh7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKEUucGF0aCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKEUucGF0aCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0pLEgucHVzaCh7bmFtZToiUmVuYW1lIixpY29uTmFtZToicGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oRSksImFjdGlvbiIpfSx7bmFtZToiRHVwbGljYXRlIixpY29uTmFtZToiZmlsZXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShFKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jb3B5SXRlbShFKSwiYWN0aW9uIil9KSxFLnR5cGU9PT0iZGlyZWN0b3J5IiYmdGhpcy5jbGlwYm9hcmRQYXRoJiZILnB1c2goe25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbShFLnBhdGgpLCJhY3Rpb24iKX0pLEgucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKEUpLCJhY3Rpb24iKX0pLGF3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKCQsSCl9YXN5bmMgaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KCQpe2lmKCQudGFyZ2V0LmNsb3Nlc3QoIi50cmVlLWl0ZW0iKSlyZXR1cm47JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEg9W3tuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKSwiYWN0aW9uIil9XTt0aGlzLmNsaXBib2FyZFBhdGgmJkgucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpLCJhY3Rpb24iKX0pLGF3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKCQsSCl9YXN5bmMgc2hvd0lucHV0TW9kYWwoJCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIEU9PntsZXQgSD1hd2FpdCBRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiQuaGVhZGluZyx3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7JC5sYWJlbH0KICAgICAgICAgICAgLnZhbHVlPSR7JC52YWx1ZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgUz0+e2F3YWl0IFMuZGVzdHJveSgpLEUobnVsbCl9LCJhY3Rpb24iKX0se25hbWU6JC5idXR0b25OYW1lfHwiQ3JlYXRlIixhY3Rpb246aShhc3luYyBTPT57bGV0IFI9Uy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IFMuZGVzdHJveSgpLEUoUnx8bnVsbCl9LCJhY3Rpb24iKX1dfSk7YXdhaXQgSC51cGRhdGVDb21wbGV0ZTtsZXQgaz1ILnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpO2lmKGspe2xldCBTPWsucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7UyYmKGF3YWl0IFMudXBkYXRlQ29tcGxldGUsUy5mb2N1cygpKX19KX1hc3luYyBjcmVhdGVOZXdGaWxlKCQpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGaWxlIixsYWJlbDoiRmlsZSBuYW1lIn0pO2lmKCFFfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEg9JD09PSIvIj9gLyR7RX1gOmAkeyR9LyR7RX1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShILCIiKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWxlLWNyZWF0ZWQiLHtkZXRhaWw6e3BhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGZpbGU6IixrKX19YXN5bmMgY3JlYXRlTmV3Rm9sZGVyKCQpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGb2xkZXIiLGxhYmVsOiJGb2xkZXIgbmFtZSJ9KTtpZighRXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBIPSQ9PT0iLyI/YC8ke0V9YDpgJHskfS8ke0V9YDt0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcihIKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmb2xkZXItY3JlYXRlZCIse2RldGFpbDp7cGF0aDpIfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyOiIsayl9fWFzeW5jIGRlbGV0ZUl0ZW0oJCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWNvbmZpcm0oYERlbGV0ZSAkeyQubmFtZX0/YCkpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKCQucGF0aCx7cmVjdXJzaXZlOiQudHlwZT09PSJkaXJlY3RvcnkifSksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kZWxldGVkIix7ZGV0YWlsOntwYXRoOiQucGF0aCx0eXBlOiQudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChIKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGl0ZW06IixIKX19YXN5bmMgcmVuYW1lSXRlbSgkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEU9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiUmVuYW1lIixsYWJlbDoiTmV3IG5hbWUiLHZhbHVlOiQubmFtZSxidXR0b25OYW1lOiJSZW5hbWUifSk7aWYoIUV8fEU9PT0kLm5hbWUpcmV0dXJuO2xldCBIPSQucGF0aC5zdWJzdHJpbmcoMCwkLnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixrPUg9PT0iLyI/YC8ke0V9YDpgJHtIfS8ke0V9YDt0cnl7aWYoJC50eXBlPT09ImZpbGUiKXtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCQucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoayxTKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKCQucGF0aCl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cygkLnBhdGgsayksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybSgkLnBhdGgse3JlY3Vyc2l2ZTohMH0pO2F3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tcmVuYW1lZCIse2RldGFpbDp7b2xkUGF0aDokLnBhdGgsbmV3UGF0aDprLHR5cGU6JC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKFMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5hbWUgaXRlbToiLFMpfX1hc3luYyBkdXBsaWNhdGVJdGVtKCQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgRT0kLnBhdGguc3Vic3RyaW5nKDAsJC5wYXRoLmxhc3RJbmRleE9mKCIvIikpfHwiLyIsSDtpZigkLnR5cGU9PT0iZmlsZSIpe2xldCBTPSQubmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKFM+MCl7bGV0IEk9JC5uYW1lLnN1YnN0cmluZygwLFMpLFA9JC5uYW1lLnN1YnN0cmluZyhTKTtIPWAke0l9X2NvcHkke1B9YH1lbHNlIEg9YCR7JC5uYW1lfV9jb3B5YH1lbHNlIEg9YCR7JC5uYW1lfV9jb3B5YDtsZXQgaz1FPT09Ii8iP2AvJHtIfWA6YCR7RX0vJHtIfWA7dHJ5e2lmKCQudHlwZT09PSJmaWxlIil7bGV0IFM9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgkLnBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGssUyl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cygkLnBhdGgsayk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kdXBsaWNhdGVkIix7ZGV0YWlsOntzb3VyY2VQYXRoOiQucGF0aCxuZXdQYXRoOmssdHlwZTokLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goUyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGR1cGxpY2F0ZSBpdGVtOiIsUyl9fWFzeW5jIGNvcHlJdGVtKCQpe3RoaXMuY2xpcGJvYXJkUGF0aD0kLnBhdGgsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249ImNvcHkifWFzeW5jIHBhc3RlSXRlbSgkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXRoaXMuY2xpcGJvYXJkUGF0aClyZXR1cm47bGV0IEU9dGhpcy5jbGlwYm9hcmRQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJwYXN0ZWQiLEg9JD09PSIvIj9gLyR7RX1gOmAkeyR9LyR7RX1gO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHModGhpcy5jbGlwYm9hcmRQYXRoKSl7Y29uc29sZS5lcnJvcigiU291cmNlIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cyIpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7cmV0dXJufXRyeXtsZXQgaz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHRoaXMuY2xpcGJvYXJkUGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSCxrKX1jYXRjaHthd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh0aGlzLmNsaXBib2FyZFBhdGgsSCl9YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1wYXN0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6dGhpcy5jbGlwYm9hcmRQYXRoLHRhcmdldFBhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNsaXBib2FyZFBhdGg9bnVsbCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj1udWxsfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBwYXN0ZSBpdGVtOiIsayl9fWFzeW5jIGNvcHlEaXJlY3RvcnlDb250ZW50cygkLEUpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKEUpO2xldCBIPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcigkKTtmb3IobGV0IGsgb2YgSCl7bGV0IFM9JD09PSIvIj9gLyR7ay5uYW1lfWA6YCR7JH0vJHtrLm5hbWV9YCxJPUU9PT0iLyI/YC8ke2submFtZX1gOmAke0V9LyR7ay5uYW1lfWA7aWYoay50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoUyxJKTtlbHNle2xldCBQPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoUyk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSSxQKX19fWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFRyZWUoKX1hc3luYyB1cGRhdGVkKCQpeyQuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiYodGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQhPT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYodGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudD10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkVHJlZSgpLHRoaXMuc3RhcnRGaWxlV2F0Y2hlcigpKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3RvcEZpbGVXYXRjaGVyKCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0RmlsZVdhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmZpbGVXYXRjaGVyKSl0cnl7dGhpcy5maWxlV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvIiwoJCxFKT0+e3RoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnJlZnJlc2goKX0sMzAwKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKCQpe2NvbnNvbGUud2FybigiRmlsZSB3YXRjaGluZyBub3Qgc3VwcG9ydGVkOiIsJCl9fXN0b3BGaWxlV2F0Y2hlcigpe3RoaXMuZmlsZVdhdGNoZXImJih0aGlzLmZpbGVXYXRjaGVyLnN0b3AoKSx0aGlzLmZpbGVXYXRjaGVyPW51bGwpfWFzeW5jIGxvYWRUcmVlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMubG9hZFRyZWVTdGFydGVkKXt0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMCx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmVycm9yTWVzc2FnZT0iIjt0cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCk7bGV0ICQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHRoaXMucm9vdFBhdGgpO3RoaXMudHJlZURhdGE9dGhpcy5zb3J0RW50cmllcygkKS5tYXAoRT0+KHsuLi5FLGxldmVsOjAsZXhwYW5kZWQ6ITEsY2hpbGRyZW46RS50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKCQpe3RoaXMuZXJyb3JNZXNzYWdlPWBGYWlsZWQgdG8gbG9hZCBmaWxlczogJHskfWAsY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgZmlsZSB0cmVlOiIsJCksdGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITF9ZmluYWxseXt0aGlzLmlzTG9hZGluZz0hMX19fXNvcnRFbnRyaWVzKCQpe3JldHVybiAkLnNvcnQoKEUsSCk9PkUudHlwZSE9PUgudHlwZT9FLnR5cGU9PT0iZGlyZWN0b3J5Ij8tMToxOkUubmFtZS5sb2NhbGVDb21wYXJlKEgubmFtZSkpfWFzeW5jIHJlZnJlc2goKXt0aGlzLmV4cGFuZGVkUGF0aHMuY2xlYXIoKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMSxhd2FpdCB0aGlzLmxvYWRUcmVlKCl9c2VsZWN0RmlsZSgkKXt0aGlzLnNlbGVjdGVkUGF0aD0kfXN0YXRpY3thYyhhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgQnJ0LG5RLG43YSxIcnQ9ZygoKT0+e3BlKCk7cHQoKTtmdSgpO25yKCk7QnJ0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxuUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbjdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlVGVybWluYWxQcmV2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxCcnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjb21tYW5kImluIHYsImhhcyIpLGdldDppKHY9PnYuY29tbWFuZCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmNvbW1hbmQ9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLEJydCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJsaW5lcyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmxpbmVzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YubGluZXM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLEJydChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAuY29tbWFuZD0keyJwbnBtIGluc3RhbGwifQogICAgICAubGluZXM9JHtbIlBhY2thZ2VzOiArNDIiLCJQcm9ncmVzczogcmVzb2x2ZWQgMTQyLCByZXVzZWQgMTQwLCBkb3dubG9hZGVkIDIsIGFkZGVkIDQyLCBkb25lIiwiIiwiZGVwZW5kZW5jaWVzOiIsIisgQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlIDQuMi4zIiwiKyB0eXBlc2NyaXB0IDUuMy4zIiwiIiwiRG9uZSBpbiAyLjNzIl19CiAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPW5RKHRoaXMsbywiIik7Z2V0IGNvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29tbWFuZChiKXt0aGlzLiNlPWJ9I3Q9KG5RKHRoaXMsbCksblEodGhpcyxkLFtdKSk7Z2V0IGxpbmVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxpbmVzKGIpe3RoaXMuI3Q9Yn10ZXJtaW5hbD0oblEodGhpcyx1KSxudWxsKTtmaXRBZGRvbj1udWxsO2xhc3RMaW5lQ291bnQ9MDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItY29tbWFuZCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgICN4dGVybS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogQ3VzdG9tIHNjcm9sbGJhciBmb3IgeHRlcm0gdmlld3BvcnQgKi8KICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGVybWluYWwtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItaWNvbiI+JDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItY29tbWFuZCI+JHt0aGlzLmNvbW1hbmR8fCJXYWl0aW5nLi4uIn08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgaWQ9Inh0ZXJtLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1nZXRUZXJtaW5hbFRoZW1lKGIpe3JldHVybiBiP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgwLCAwLCAwLCAwLjIpIn06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNjY2NjY2MiLGN1cnNvcjoiI2NjY2NjYyIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1hc3luYyBmaXJzdFVwZGF0ZWQoYil7c3VwZXIuZmlyc3RVcGRhdGVkKGIpO2xldCB2PXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInh0ZXJtLWNvbnRhaW5lciIpO2lmKCF2KXJldHVybjtsZXQgeD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxtPXgudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbixmPVFyLmdldEluc3RhbmNlKCksW3ksTV09YXdhaXQgUHJvbWlzZS5hbGwoW2YubG9hZFh0ZXJtKCksZi5sb2FkWHRlcm1GaXRBZGRvbigpXSk7dGhpcy50ZXJtaW5hbD1uZXcgeS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKG0pLHNjcm9sbGJhY2s6MWUzfSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXgudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoej0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHopKX0pLHRoaXMuZml0QWRkb249bmV3IE0uRml0QWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5vcGVuKHYpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uJiZ0aGlzLmZpdEFkZG9uLmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHYpLHRoaXMud3JpdGVOZXdMaW5lcygpfWFzeW5jIHVwZGF0ZWQoYil7c3VwZXIudXBkYXRlZChiKSxiLmhhcygibGluZXMiKSYmdGhpcy53cml0ZU5ld0xpbmVzKCl9d3JpdGVOZXdMaW5lcygpe2lmKCF0aGlzLnRlcm1pbmFsKXJldHVybjtsZXQgYj10aGlzLmxpbmVzLnNsaWNlKHRoaXMubGFzdExpbmVDb3VudCk7Zm9yKGxldCB2IG9mIGIpdGhpcy50ZXJtaW5hbC53cml0ZWxuKHYpO3RoaXMubGFzdExpbmVDb3VudD10aGlzLmxpbmVzLmxlbmd0aH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5kaXNwb3NlKCksdGhpcy50ZXJtaW5hbD1udWxsKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFkZExpbmUoYil7dGhpcy5saW5lcz1bLi4udGhpcy5saW5lcyxiXX1jbGVhcigpe3RoaXMubGluZXM9W10sdGhpcy5sYXN0TGluZUNvdW50PTAsdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5jbGVhcigpfXN0YXRpY3tuUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgdXgsbTIsbDdhLHFydD1nKCgpPT57cGUoKTtwdCgpO1VhKCk7b3IoKTt1eD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbTI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGw3YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLWJvdHRvbWJhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlQm90dG9tYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bWSgpXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSx1eCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZXhlY3V0aW9uRW52aXJvbm1lbnQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHV4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2NyaXB0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2NyaXB0cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNjcmlwdHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zY3JpcHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSx1eCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhY2thZ2VTdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InBhY2thZ2VTdGF0dXMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5wYWNrYWdlU3RhdHVzLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucGFja2FnZVN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksdXgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRkYXRlZFBhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJvdXRkYXRlZFBhY2thZ2VzImluIF8sImhhcyIpLGdldDppKF89Pl8ub3V0ZGF0ZWRQYWNrYWdlcywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLm91dGRhdGVkUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLHV4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNDaGVja2luZ1BhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpc0NoZWNraW5nUGFja2FnZXMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pc0NoZWNraW5nUGFja2FnZXMsImdldCIpLHNldDppKChfLE8pPT57Xy5pc0NoZWNraW5nUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLHV4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9I2U9bTIodGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChDKXt0aGlzLiNlPUN9I3Q9KG0yKHRoaXMsbCksbTIodGhpcyxkLHt9KSk7Z2V0IHNjcmlwdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2NyaXB0cyhDKXt0aGlzLiN0PUN9I2E9KG0yKHRoaXMsdSksbTIodGhpcyxiLCJpZGxlIikpO2dldCBwYWNrYWdlU3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHBhY2thZ2VTdGF0dXMoQyl7dGhpcy4jYT1DfSNzPShtMih0aGlzLHYpLG0yKHRoaXMsbSxbXSkpO2dldCBvdXRkYXRlZFBhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG91dGRhdGVkUGFja2FnZXMoQyl7dGhpcy4jcz1DfSNpPShtMih0aGlzLGYpLG0yKHRoaXMsTSwhMSkpO2dldCBpc0NoZWNraW5nUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNDaGVja2luZ1BhY2thZ2VzKEMpe3RoaXMuI2k9Q31wZW5kaW5nUGFja2FnZVVwZGF0ZT0obTIodGhpcyx6KSwhMSk7aGFuZGxlUHJvY2Vzc0NvbXBsZXRlPWkoQz0+e3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGUmJih0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDUwMCkpfSwiaGFuZGxlUHJvY2Vzc0NvbXBsZXRlIik7c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b20tYmFyIHsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgNiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLndpZGdldC5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQudXAtdG8tZGF0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cGRhdGVzLWF2YWlsYWJsZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLnNwaW5uaW5nIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYm90dG9tLWJhciI+CiAgICAgICAgPCEtLSBTY3JpcHQgUnVubmVyIFdpZGdldCAtLT4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0id2lkZ2V0IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTY3JpcHRDbGlja30KICAgICAgICAgIHRpdGxlPSJSdW4gc2NyaXB0IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHsibHVjaWRlOnBsYXkifQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5TY3JpcHRzPC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj4KCiAgICAgICAgPCEtLSBQYWNrYWdlIENoZWNrZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQgJHt0aGlzLmdldFBhY2thZ2VTdGF0dXNDbGFzcygpfSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlUGFja2FnZUNsaWNrfQogICAgICAgICAgdGl0bGU9IiR7dGhpcy5nZXRQYWNrYWdlVG9vbHRpcCgpfSIKICAgICAgICA+CiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7dGhpcy5nZXRQYWNrYWdlSWNvbigpfQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+JHt0aGlzLmdldFBhY2thZ2VTdGF0dXNUZXh0KCl9PC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoKICAgICAgICA8IS0tIEZ1dHVyZSB3aWRnZXRzIGNhbiBiZSBhZGRlZCBoZXJlIC0tPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpLGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHVwZGF0ZWQoQyl7Qy5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCkpfWFzeW5jIGxvYWRTY3JpcHRzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMuc2NyaXB0cz17fTtyZXR1cm59bGV0IF89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL3BhY2thZ2UuanNvbiIpLE89SlNPTi5wYXJzZShfKTt0aGlzLnNjcmlwdHM9Ty5zY3JpcHRzfHx7fX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBsb2FkIHNjcmlwdHMgZnJvbSBwYWNrYWdlLmpzb246IixDKSx0aGlzLnNjcmlwdHM9e319fWFzeW5jIGhhbmRsZVNjcmlwdENsaWNrKEMpe0Muc3RvcFByb3BhZ2F0aW9uKCk7bGV0IF89T2JqZWN0LmtleXModGhpcy5zY3JpcHRzKTtpZihfLmxlbmd0aD09PTApcmV0dXJuO2xldCBPPV8ubWFwKCQ9Pih7bmFtZTokLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnJ1blNjcmlwdCgkKX0sImFjdGlvbiIpfSkpO2F3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEMsTyl9YXN5bmMgcnVuU2NyaXB0KEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgXz17dHlwZToic2NyaXB0IixsYWJlbDpDLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJydW4iLENdLG1ldGFkYXRhOntzY3JpcHROYW1lOkN9fTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOl99KSl9YXN5bmMgY2hlY2tQYWNrYWdlcygpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnBhY2thZ2VTdGF0dXM9ImlkbGUiO3JldHVybn10cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRoaXMucGFja2FnZVN0YXR1cz0iY2hlY2tpbmciLHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPSEwO2xldCBfPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oInBucG0iLFsib3V0ZGF0ZWQiLCItLWpzb24iXSksTz0iIiwkPV8ub3V0cHV0LmdldFJlYWRlcigpO2koYXN5bmMoKT0+e3RyeXtmb3IoOzspe2xldHtkb25lOmssdmFsdWU6U309YXdhaXQgJC5yZWFkKCk7aWYoaylicmVhaztPKz1TfX1jYXRjaHt9fSwicmVhZE91dHB1dCIpKCk7bGV0IEg9YXdhaXQgUHJvbWlzZS5yYWNlKFtfLmV4aXQsbmV3IFByb21pc2Uoaz0+c2V0VGltZW91dCgoKT0+aygtMSksMWU0KSldKTt0cnl7YXdhaXQgJC5jYW5jZWwoKX1jYXRjaHt9aWYoSD09PS0xKXtjb25zb2xlLndhcm4oIlBhY2thZ2UgY2hlY2sgdGltZWQgb3V0IiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciI7cmV0dXJufWlmKEg9PT0wKXRoaXMucGFja2FnZVN0YXR1cz0idXAtdG8tZGF0ZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdO2Vsc2UgdHJ5e2xldCBrPUpTT04ucGFyc2UoTyk7dGhpcy5vdXRkYXRlZFBhY2thZ2VzPXRoaXMucGFyc2VPdXRkYXRlZFBhY2thZ2VzKGspLHRoaXMucGFja2FnZVN0YXR1cz10aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjA/InVwZGF0ZXMtYXZhaWxhYmxlIjoidXAtdG8tZGF0ZSJ9Y2F0Y2h7dGhpcy5wYWNrYWdlU3RhdHVzPSJ1cGRhdGVzLWF2YWlsYWJsZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdfX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzOiIsQyksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciJ9ZmluYWxseXt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMX19cGFyc2VPdXRkYXRlZFBhY2thZ2VzKEMpe2xldCBfPVtdO2lmKHR5cGVvZiBDPT0ib2JqZWN0IiYmQyE9PW51bGwpZm9yKGxldFtPLCRdb2YgT2JqZWN0LmVudHJpZXMoQykpe2xldCBFPSQ7Xy5wdXNoKHtuYW1lOk8sY3VycmVudDpFLmN1cnJlbnR8fCJ1bmtub3duIix3YW50ZWQ6RS53YW50ZWR8fEUuY3VycmVudHx8InVua25vd24iLGxhdGVzdDpFLmxhdGVzdHx8RS53YW50ZWR8fCJ1bmtub3duIix0eXBlOkUuZGVwZW5kZW5jeVR5cGU9PT0iZGV2RGVwZW5kZW5jaWVzIj8iZGV2RGVwZW5kZW5jaWVzIjoiZGVwZW5kZW5jaWVzIn0pfXJldHVybiBffWFzeW5jIGhhbmRsZVBhY2thZ2VDbGljayhDKXtDLnN0b3BQcm9wYWdhdGlvbigpO2xldCBfPVtdO2lmKF8ucHVzaCh7bmFtZTp0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iQ2hlY2tpbmcuLi4iOiJDaGVjayBmb3IgdXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjppKGFzeW5jKCk9PntpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm47bGV0IE89e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoiY2hlY2sgcGFja2FnZXMiLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJvdXRkYXRlZCJdfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOk99KSksc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksM2UzKX0sImFjdGlvbiIpfSksdGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wKXtfLnB1c2goe2RpdmlkZXI6ITB9KTtsZXQgTz10aGlzLm91dGRhdGVkUGFja2FnZXMuc2xpY2UoMCwxMCk7Zm9yKGxldCAkIG9mIE8pXy5wdXNoKHtuYW1lOmAkeyQubmFtZX06ICR7JC5jdXJyZW50fSBcdTIxOTIgJHskLmxhdGVzdH1gLGljb25OYW1lOiJsdWNpZGU6cGFja2FnZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlUGFja2FnZSgkLm5hbWUpfSwiYWN0aW9uIil9KTt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjEwJiZfLnB1c2goe25hbWU6YC4uLiBhbmQgJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoLTEwfSBtb3JlYCxpY29uTmFtZToibHVjaWRlOm1vcmVIb3Jpem9udGFsIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIil9KSxfLnB1c2goe2RpdmlkZXI6ITB9KSxfLnB1c2goe25hbWU6IlVwZGF0ZSBhbGwgcGFja2FnZXMiLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlQWxsUGFja2FnZXMoKX0sImFjdGlvbiIpfSl9YXdhaXQga2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoQyxfKX1hc3luYyB1cGRhdGVQYWNrYWdlKEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBfPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6YHVwZGF0ZSAke0N9YCxjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiLENdLG1ldGFkYXRhOntwYWNrYWdlTmFtZTpDfX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpffSkpfWFzeW5jIHVwZGF0ZUFsbFBhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IEM9e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoidXBkYXRlIGFsbCIsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0Il19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6Q30pKX1nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKXtyZXR1cm4gdGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IiI6dGhpcy5wYWNrYWdlU3RhdHVzfWdldFBhY2thZ2VJY29uKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuImx1Y2lkZTpsb2FkZXIyIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJsdWNpZGU6Y2hlY2tDaXJjbGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybiJsdWNpZGU6YWxlcnRDaXJjbGUiO2Nhc2UiZXJyb3IiOnJldHVybiJsdWNpZGU6eENpcmNsZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnBhY2thZ2UifX1nZXRQYWNrYWdlU3RhdHVzVGV4dCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iVXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9YDtjYXNlImVycm9yIjpyZXR1cm4iQ2hlY2sgZmFpbGVkIjtkZWZhdWx0OnJldHVybiJQYWNrYWdlcyJ9fWdldFBhY2thZ2VUb29sdGlwKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nIGZvciBwYWNrYWdlIHVwZGF0ZXMuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIkFsbCBwYWNrYWdlcyBhcmUgdXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXZhaWxhYmxlYDtjYXNlImVycm9yIjpyZXR1cm4iRmFpbGVkIHRvIGNoZWNrIGZvciB1cGRhdGVzLiBDbGljayB0byByZXRyeS4iO2RlZmF1bHQ6cmV0dXJuIkNsaWNrIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXMifX1hc3luYyByZWZyZXNoUGFja2FnZVN0YXR1cygpe2F3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHJlZnJlc2hTY3JpcHRzKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpfXN0YXRpY3ttMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgbFEsanJ0PWcoKCk9PntsUT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlU2NyaXB0SW50ZWxsaVNlbnNlTWFuYWdlciIpfWxvYWRlZExpYnM9bmV3IFNldDtub3RGb3VuZFBhY2thZ2VzPW5ldyBTZXQ7bW9uYWNvSW5zdGFuY2U9bnVsbDtleGVjdXRpb25FbnZpcm9ubWVudD1udWxsO2ZpbGVDYWNoZT1uZXcgTWFwO2FkZGVkRXh0cmFMaWJzPW5ldyBNYXA7Z2V0IHRzQXBpKCl7cmV0dXJuIHRoaXMubW9uYWNvSW5zdGFuY2U/dGhpcy5tb25hY29JbnN0YW5jZS5sYW5ndWFnZXMudHlwZXNjcmlwdDpudWxsfWFzeW5jIGluaXQoZSx0KXt0aGlzLm1vbmFjb0luc3RhbmNlPWUsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudD10LHRoaXMuY29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCksYXdhaXQgdGhpcy5sb2FkQWxsUHJvamVjdEZpbGVzKCl9YXN5bmMgbG9hZEFsbFByb2plY3RGaWxlcygpe3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeSgiLyIpfWFzeW5jIGxvYWRGaWxlc0Zyb21EaXJlY3RvcnkoZSl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IHQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgYSBvZiB0KXtsZXQgcj1lPT09Ii8iP2AvJHthLm5hbWV9YDpgJHtlfS8ke2EubmFtZX1gO2lmKGEubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihhLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWRGaWxlc0Zyb21EaXJlY3Rvcnkocik7ZWxzZSBpZihhLnR5cGU9PT0iZmlsZSIpe2xldCBuPWEubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO2lmKG49PT0idHMifHxuPT09InRzeCJ8fG49PT0ianMifHxuPT09ImpzeCIpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUocik7dGhpcy5hZGRGaWxlTW9kZWwocixvKX1jYXRjaHt9fX19fWNhdGNoe319Y29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCl7bGV0IGU9dGhpcy50c0FwaTtlJiYoZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0Q29tcGlsZXJPcHRpb25zKHt0YXJnZXQ6ZS5TY3JpcHRUYXJnZXQuRVMyMDIwLG1vZHVsZTplLk1vZHVsZUtpbmQuRVNOZXh0LG1vZHVsZVJlc29sdXRpb246ZS5Nb2R1bGVSZXNvbHV0aW9uS2luZC5CdW5kbGVyPz9lLk1vZHVsZVJlc29sdXRpb25LaW5kLk5vZGVKcyxhbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzOiEwLGVzTW9kdWxlSW50ZXJvcDohMCxzdHJpY3Q6ITAsbm9FbWl0OiEwLGFsbG93SnM6ITAsY2hlY2tKczohMSxhbGxvd05vblRzRXh0ZW5zaW9uczohMCxsaWI6WyJlczIwMjAiLCJkb20iLCJkb20uaXRlcmFibGUiXSxiYXNlVXJsOiIvIixhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczohMCxyZXNvbHZlSnNvbk1vZHVsZTohMH0pLGUudHlwZXNjcmlwdERlZmF1bHRzLnNldERpYWdub3N0aWNzT3B0aW9ucyh7bm9TZW1hbnRpY1ZhbGlkYXRpb246ITEsbm9TeW50YXhWYWxpZGF0aW9uOiExfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RWFnZXJNb2RlbFN5bmMoITApKX1wYXJzZUltcG9ydHMoZSl7bGV0IHQ9W10sYT0vaW1wb3J0XHMrKD86W1x3Knt9XHMsXStmcm9tXHMrKT9bJyJdKFteJyJdKylbJyJdL2cscjtmb3IoOyhyPWEuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89clsxXTtpZighby5zdGFydHNXaXRoKCIuIikmJiFvLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IGw9by5zdGFydHNXaXRoKCJAIik/by5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm8uc3BsaXQoIi8iKVswXTt0LnB1c2gobCl9fWxldCBuPS9yZXF1aXJlXHMqXChccypbJyJdKFteJyJdKylbJyJdXHMqXCkvZztmb3IoOyhyPW4uZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89clsxXTtpZighby5zdGFydHNXaXRoKCIuIikmJiFvLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IGw9by5zdGFydHNXaXRoKCJAIik/by5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm8uc3BsaXQoIi8iKVswXTt0LnB1c2gobCl9fXJldHVyblsuLi5uZXcgU2V0KHQpXX1hc3luYyBsb2FkVHlwZXNGb3JQYWNrYWdlKGUpe2lmKCEoIXRoaXMubW9uYWNvSW5zdGFuY2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSYmIXRoaXMubG9hZGVkTGlicy5oYXMoZSkmJiF0aGlzLm5vdEZvdW5kUGFja2FnZXMuaGFzKGUpKXRyeXtsZXQgdD1hd2FpdCB0aGlzLnRyeUxvYWRQYWNrYWdlVHlwZXMoZSk7dHx8KHQ9YXdhaXQgdGhpcy50cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSkpLHQ/dGhpcy5sb2FkZWRMaWJzLmFkZChlKTp0aGlzLm5vdEZvdW5kUGFja2FnZXMuYWRkKGUpfWNhdGNoKHQpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgdHlwZXMgZm9yICR7ZX06YCx0KX19YXN5bmMgdHJ5TG9hZFBhY2thZ2VUeXBlcyhlKXtsZXQgdD10aGlzLnRzQXBpO2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdClyZXR1cm4hMTtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke2V9YDt0cnl7bGV0IHI9YCR7YX0vcGFja2FnZS5qc29uYDtpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhyKSl7bGV0IGw9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShyKSxwPUpTT04ucGFyc2UobCk7aWYodC50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobCxgZmlsZTovLyR7cn1gKSxwLnR5cGVzfHxwLnR5cGluZ3MpcmV0dXJuIGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoYSksITB9bGV0IG89W2Ake2F9L2luZGV4LmQudHNgLGAke2F9L2Rpc3QvaW5kZXguZC50c2AsYCR7YX0vbGliL2luZGV4LmQudHNgXTtmb3IobGV0IGwgb2YgbylpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhsKSlyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShhKSwhMDtyZXR1cm4hMX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgcGFja2FnZSB0eXBlcyBmb3IgJHtlfTpgLHIpLCExfX1hc3luYyBsb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShlKXtsZXQgdD10aGlzLnRzQXBpOyF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdHx8YXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KGUpfWFzeW5jIGxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl7bGV0IHQ9dGhpcy50c0FwaTtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdCkpdHJ5e2xldCBhPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihlKTtmb3IobGV0IHIgb2YgYSl7bGV0IG49ZT09PSIvIj9gLyR7ci5uYW1lfWA6YCR7ZX0vJHtyLm5hbWV9YDtpZihyLm5hbWUhPT0ibm9kZV9tb2R1bGVzIil7aWYoci50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KG4pO2Vsc2UgaWYoci50eXBlPT09ImZpbGUiJiZyLm5hbWUuZW5kc1dpdGgoIi5kLnRzIikpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUobik7dC50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobyxgZmlsZTovLyR7bn1gKX1jYXRjaHt9fX19Y2F0Y2h7fX1hc3luYyB0cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuITE7bGV0IGE9YC9ub2RlX21vZHVsZXMvJHtlLnN0YXJ0c1dpdGgoIkAiKT9gQHR5cGVzLyR7ZS5zbGljZSgxKS5yZXBsYWNlKCIvIiwiX18iKX1gOmBAdHlwZXMvJHtlfWB9YDt0cnl7bGV0IHI9YCR7YX0vaW5kZXguZC50c2A7cmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHIpPyhhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGEpLCEwKTohMX1jYXRjaHtyZXR1cm4hMX19YXN5bmMgcHJvY2Vzc0NvbnRlbnRDaGFuZ2UoZSl7bGV0IHQ9dGhpcy5wYXJzZUltcG9ydHMoZSk7Zm9yKGxldCBhIG9mIHQpdGhpcy5sb2FkZWRMaWJzLmhhcyhhKXx8YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKGEpfWFzeW5jIHNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5ub3RGb3VuZFBhY2thZ2VzLmNsZWFyKCk7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL25vZGVfbW9kdWxlcyIpKXJldHVybjtsZXQgZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoIi9ub2RlX21vZHVsZXMiKTtmb3IobGV0IHQgb2YgZSlpZih0LnR5cGU9PT0iZGlyZWN0b3J5IilpZih0Lm5hbWUuc3RhcnRzV2l0aCgiQCIpKXRyeXtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke3QubmFtZX1gLHI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGEpO2ZvcihsZXQgbiBvZiByKWlmKG4udHlwZT09PSJkaXJlY3RvcnkiKXtsZXQgbz1gJHt0Lm5hbWV9LyR7bi5uYW1lfWA7YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKG8pfX1jYXRjaHt9ZWxzZSB0Lm5hbWUuc3RhcnRzV2l0aCgiLiIpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2UodC5uYW1lKX1jYXRjaChlKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBzY2FuIG5vZGVfbW9kdWxlczoiLGUpfX19YWRkRmlsZU1vZGVsKGUsdCl7aWYoIXRoaXMubW9uYWNvSW5zdGFuY2UpcmV0dXJuO3RoaXMuZmlsZUNhY2hlLnNldChlLHQpO2xldCBhPXRoaXMubW9uYWNvSW5zdGFuY2UuVXJpLnBhcnNlKGBmaWxlOi8vJHtlfWApLHI9dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuZ2V0TW9kZWwoYSk7aWYocilyLmdldFZhbHVlKCkhPT10JiZyLnNldFZhbHVlKHQpO2Vsc2V7bGV0IG49dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGUpO3RoaXMubW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZU1vZGVsKHQsbixhKX10aGlzLmFkZEZpbGVBc0V4dHJhTGliKGUsdCl9YWRkRmlsZUFzRXh0cmFMaWIoZSx0KXtsZXQgYT10aGlzLnRzQXBpO2lmKCFhKXJldHVybjtsZXQgcj10aGlzLmFkZGVkRXh0cmFMaWJzLmdldChlKTtyJiZyLmRpc3Bvc2UoKTtsZXQgbj1gZmlsZTovLyR7ZX1gLG89YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIodCxuKTtpZih0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChlLG8pLGUuZW5kc1dpdGgoIi50cyIpJiYhZS5lbmRzV2l0aCgiLmQudHMiKSl7bGV0IGw9ZS5yZXBsYWNlKC9cLnRzJC8sIi5qcyIpLHA9YGZpbGU6Ly8ke2x9YCxkPWEudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHQscCk7dGhpcy5hZGRlZEV4dHJhTGlicy5zZXQobCxkKSx0aGlzLmZpbGVDYWNoZS5zZXQobCx0KX1lbHNlIGlmKGUuZW5kc1dpdGgoIi50c3giKSl7bGV0IGw9ZS5yZXBsYWNlKC9cLnRzeCQvLCIuanN4IikscD1gZmlsZTovLyR7bH1gLGQ9YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIodCxwKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChsLGQpLHRoaXMuZmlsZUNhY2hlLnNldChsLHQpfX1nZXRGaWxlQ29udGVudChlKXtyZXR1cm4gdGhpcy5maWxlQ2FjaGUuZ2V0KGUpfWdldExhbmd1YWdlRnJvbVBhdGgoZSl7c3dpdGNoKGUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2RlZmF1bHQ6cmV0dXJuInBsYWludGV4dCJ9fX19KTt2YXIgTGcsc2MsYzdhLFZydD1nKCgpPT57cGUoKTtrdCgpO05ldCgpO3B0KCk7RDgoKTtMZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sc2M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGM3YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpTdHJpbmd9KV0sTGcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im9yaWdpbmFsQ29udGVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm9yaWdpbmFsQ29udGVudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm9yaWdpbmFsQ29udGVudD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksTGcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im1vZGlmaWVkQ29udGVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1vZGlmaWVkQ29udGVudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm1vZGlmaWVkQ29udGVudD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGQsdSksTGcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJvcmlnaW5hbExhYmVsImluIEUsImhhcyIpLGdldDppKEU9PkUub3JpZ2luYWxMYWJlbCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm9yaWdpbmFsTGFiZWw9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLExnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kaWZpZWRMYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibW9kaWZpZWRMYWJlbCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1vZGlmaWVkTGFiZWwsImdldCIpLHNldDppKChFLEgpPT57RS5tb2RpZmllZExhYmVsPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSxMZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJsYW5ndWFnZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubGFuZ3VhZ2U9SH0sInNldCIpfSxtZXRhZGF0YTokfSxNLHopLExnKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImZpbGVQYXRoImluIEUsImhhcyIpLGdldDppKEU9PkUuZmlsZVBhdGgsImdldCIpLHNldDppKChFLEgpPT57RS5maWxlUGF0aD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksTGcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yCiAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIik7Cn1gfQogICAgICAubW9kaWZpZWRDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyBXb3JsZCEiKTsKICByZXR1cm4gdHJ1ZTsKfWB9CiAgICAgIC5sYW5ndWFnZT0keyJ0eXBlc2NyaXB0In0KICAgICAgLmZpbGVQYXRoPSR7Ii9kZW1vL2V4YW1wbGUudHMifQogICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07ZGlmZkVkaXRvckRlZmVycmVkPXV0LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPXNjKHRoaXMsbywiIik7Z2V0IG9yaWdpbmFsQ29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBvcmlnaW5hbENvbnRlbnQoJCl7dGhpcy4jZT0kfSN0PShzYyh0aGlzLGwpLHNjKHRoaXMsZCwiIikpO2dldCBtb2RpZmllZENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbW9kaWZpZWRDb250ZW50KCQpe3RoaXMuI3Q9JH0jYT0oc2ModGhpcyx1KSxzYyh0aGlzLGIsIkRpc2sgVmVyc2lvbiIpKTtnZXQgb3JpZ2luYWxMYWJlbCgpe3JldHVybiB0aGlzLiNhfXNldCBvcmlnaW5hbExhYmVsKCQpe3RoaXMuI2E9JH0jcz0oc2ModGhpcyx2KSxzYyh0aGlzLG0sIkxvY2FsIFZlcnNpb24iKSk7Z2V0IG1vZGlmaWVkTGFiZWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgbW9kaWZpZWRMYWJlbCgkKXt0aGlzLiNzPSR9I2k9KHNjKHRoaXMsZiksc2ModGhpcyxNLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNpfXNldCBsYW5ndWFnZSgkKXt0aGlzLiNpPSR9I3I9KHNjKHRoaXMseiksc2ModGhpcyxDLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGZpbGVQYXRoKCQpe3RoaXMuI3I9JH1kaWZmRWRpdG9yPShzYyh0aGlzLF8pLG51bGwpO21vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGw7b3JpZ2luYWxNb2RlbD1udWxsO21vZGlmaWVkTW9kZWw9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksamkuc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpZmYtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRpZmYtdG9vbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGlmZi1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1maWxlbmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1sYWJlbHMgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kaWZmLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tbGVmdDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0ICQ9dGhpcy5maWxlUGF0aC5zcGxpdCgiLyIpLnBvcCgpfHwiZmlsZSI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpZmYtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtaW5mbyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWZpbGVuYW1lIj4keyR9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlmZi1sYWJlbHMiPiR7dGhpcy5vcmlnaW5hbExhYmVsfSDihpQgJHt0aGlzLm1vZGlmaWVkTGFiZWx9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvUHJldmlvdXNEaWZmfQogICAgICAgICAgICAgID5QcmV2aW91czwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvTmV4dERpZmZ9CiAgICAgICAgICAgICAgPk5leHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uLWJ1dHRvbnMiPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0iaGlnaGxpZ2h0ZWQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFjY2VwdExvY2FsfQogICAgICAgICAgICAgID5Vc2UgTG9jYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0RGlza30KICAgICAgICAgICAgICA+VXNlIERpc2s8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuY2xvc2V9CiAgICAgICAgICAgICAgPkNsb3NlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobmV3IE1hcCksYXdhaXQgdGhpcy5pbml0RGlmZkVkaXRvcigpfWFzeW5jIGluaXREaWZmRWRpdG9yKCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGlmZi1jb250YWluZXIiKTtpZighJClyZXR1cm47bGV0IEU9YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke2NuZX1gLEg9d2luZG93Lm1vbmFjbztIfHwoYXdhaXQgbmV3IFByb21pc2UoVz0+e2xldCBtZT1zZXRJbnRlcnZhbCgoKT0+e3dpbmRvdy5tb25hY28mJihjbGVhckludGVydmFsKG1lKSxXKCkpfSwxMDApfSksSD13aW5kb3cubW9uYWNvKTtsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxJPWsudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj8idnMiOiJ2cy1kYXJrIixQPURhdGUubm93KCksUj1ILlVyaS5wYXJzZShgZGlmZjovL29yaWdpbmFsLyR7UH0ke3RoaXMuZmlsZVBhdGh9YCksSz1ILlVyaS5wYXJzZShgZGlmZjovL21vZGlmaWVkLyR7UH0ke3RoaXMuZmlsZVBhdGh9YCk7dGhpcy5vcmlnaW5hbE1vZGVsPUguZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMub3JpZ2luYWxDb250ZW50LHRoaXMubGFuZ3VhZ2UsUiksdGhpcy5tb2RpZmllZE1vZGVsPUguZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMubW9kaWZpZWRDb250ZW50LHRoaXMubGFuZ3VhZ2UsSyksdGhpcy5kaWZmRWRpdG9yPUguZWRpdG9yLmNyZWF0ZURpZmZFZGl0b3IoJCx7YXV0b21hdGljTGF5b3V0OiEwLHJlYWRPbmx5OiExLG9yaWdpbmFsRWRpdGFibGU6ITEscmVuZGVyU2lkZUJ5U2lkZTohMCxpZ25vcmVUcmltV2hpdGVzcGFjZTohMSxmb250U2l6ZToxNCxtaW5pbWFwOntlbmFibGVkOiExfX0pLEguZWRpdG9yLnNldFRoZW1lKEkpLHRoaXMuZGlmZkVkaXRvci5zZXRNb2RlbCh7b3JpZ2luYWw6dGhpcy5vcmlnaW5hbE1vZGVsLG1vZGlmaWVkOnRoaXMubW9kaWZpZWRNb2RlbH0pLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249ay50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShXPT57bGV0IG1lPVc/InZzIjoidnMtZGFyayI7SC5lZGl0b3Iuc2V0VGhlbWUobWUpfSk7bGV0IFY9Im1vbmFjby1kaWZmLWVkaXRvci1jc3MiO2lmKCF0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKFYpKXtsZXQgbWU9YXdhaXQoYXdhaXQgZmV0Y2goYCR7RX0vbWluL3ZzL2VkaXRvci9lZGl0b3IubWFpbi5jc3NgKSkudGV4dCgpLEI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtCLmlkPVYsQi50ZXh0Q29udGVudD1tZSx0aGlzLnNoYWRvd1Jvb3Q/LmFwcGVuZChCKX1zZXRUaW1lb3V0KCgpPT57dHJ5e3RoaXMuZGlmZkVkaXRvcj8ucmV2ZWFsRmlyc3REaWZmKCl9Y2F0Y2h7fX0sMTAwKSx0aGlzLmRpZmZFZGl0b3JEZWZlcnJlZC5yZXNvbHZlKHRoaXMuZGlmZkVkaXRvcil9Z29Ub05leHREaWZmKCl7dHJ5e3RoaXMuZGlmZkVkaXRvcj8uZ29Ub0RpZmYoIm5leHQiKX1jYXRjaHt9fWdvVG9QcmV2aW91c0RpZmYoKXt0cnl7dGhpcy5kaWZmRWRpdG9yPy5nb1RvRGlmZigicHJldmlvdXMiKX1jYXRjaHt9fWFjY2VwdExvY2FsKCl7bGV0ICQ9dGhpcy5kaWZmRWRpdG9yPy5nZXRNb2RpZmllZEVkaXRvcigpLmdldFZhbHVlKCl8fHRoaXMubW9kaWZpZWRDb250ZW50O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtcmVzb2x2ZWQiLHtkZXRhaWw6e2FjdGlvbjoidXNlLWxvY2FsIixjb250ZW50OiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YWNjZXB0RGlzaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtcmVzb2x2ZWQiLHtkZXRhaWw6e2FjdGlvbjoidXNlLWRpc2siLGNvbnRlbnQ6dGhpcy5vcmlnaW5hbENvbnRlbnR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLWNsb3NlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLm9yaWdpbmFsTW9kZWwmJih0aGlzLm9yaWdpbmFsTW9kZWwuZGlzcG9zZSgpLHRoaXMub3JpZ2luYWxNb2RlbD1udWxsKSx0aGlzLm1vZGlmaWVkTW9kZWwmJih0aGlzLm1vZGlmaWVkTW9kZWwuZGlzcG9zZSgpLHRoaXMubW9kaWZpZWRNb2RlbD1udWxsKSx0aGlzLmRpZmZFZGl0b3ImJih0aGlzLmRpZmZFZGl0b3IuZGlzcG9zZSgpLHRoaXMuZGlmZkVkaXRvcj1udWxsKX1zdGF0aWN7c2MoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIERpLG9hLGQ3YSx1N2E9ZygoKT0+e3BlKCk7a3QoKTtwdCgpO3gxZSgpO1A4KCk7dzFlKCk7dzFlKCk7b1EoKTtvUSgpO0hydCgpO3FydCgpO1VhKCk7UDgoKTtqcnQoKTtvcigpO0l0KCk7ZTFlKCk7VnJ0KCk7RGk9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LG9hPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxkN2E9KCgpPT57bGV0IHM9W25lKCJkZWVzLXdvcmtzcGFjZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdO3ZhciBJZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBjZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHthdHRyaWJ1dGU6ITF9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOk51bWJlcn0pXSxOPVtMKHt0eXBlOk51bWJlcn0pXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLENlPVtZKCldLEVlPVtZKCldLHN0PVtZKCldLERpKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuZXhlY3V0aW9uRW52aXJvbm1lbnQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LG8sbCksRGkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsaXphdGlvblByb21pc2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpbml0aWFsaXphdGlvblByb21pc2UiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pbml0aWFsaXphdGlvblByb21pc2UsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5pbml0aWFsaXphdGlvblByb21pc2U9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LGQsdSksRGkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJzaG93RmlsZVRyZWUiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5zaG93RmlsZVRyZWUsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5zaG93RmlsZVRyZWU9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LGIsdiksRGkodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJzaG93VGVybWluYWwiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5zaG93VGVybWluYWwsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5zaG93VGVybWluYWw9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LG0sZiksRGkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlVHJlZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iZmlsZVRyZWVXaWR0aCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmZpbGVUcmVlV2lkdGgsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5maWxlVHJlZVdpZHRoPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxNLHopLERpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJ0ZXJtaW5hbEhlaWdodCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLnRlcm1pbmFsSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUudGVybWluYWxIZWlnaHQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LEMsXyksRGkodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuRmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJvcGVuRmlsZXMiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5vcGVuRmlsZXMsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5vcGVuRmlsZXM9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LCQsRSksRGkodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImFjdGl2ZUZpbGVQYXRoImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuYWN0aXZlRmlsZVBhdGgsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5hY3RpdmVGaWxlUGF0aD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sayxTKSxEaSh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVGVybWluYWxDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc1Rlcm1pbmFsQ29sbGFwc2VkImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuaXNUZXJtaW5hbENvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzVGVybWluYWxDb2xsYXBzZWQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LFAsUiksRGkodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0ZpbGVUcmVlQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iaXNGaWxlVHJlZUNvbGxhcHNlZCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmlzRmlsZVRyZWVDb2xsYXBzZWQsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5pc0ZpbGVUcmVlQ29sbGFwc2VkPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxWLFcpLERpKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSW5pdGlhbGl6aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iaXNJbml0aWFsaXppbmciaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pc0luaXRpYWxpemluZywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzSW5pdGlhbGl6aW5nPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxCLFUpLERpKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJvdHRvbVBhbmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5hY3RpdmVCb3R0b21QYW5lbCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmFjdGl2ZUJvdHRvbVBhbmVsPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxGLGopLERpKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iZGlhZ25vc3RpY01hcmtlcnMiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5kaWFnbm9zdGljTWFya2VycywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmRpYWdub3N0aWNNYXJrZXJzPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxsZSxRKSxEaSh0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImF1dG9TYXZlImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuYXV0b1NhdmUsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5hdXRvU2F2ZT1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sdGUsZWUpLERpKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iaW5pdENvbW1hbmQiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pbml0Q29tbWFuZCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmluaXRDb21tYW5kPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxYLFopLERpKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRPdXRwdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpbml0T3V0cHV0ImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuaW5pdE91dHB1dCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmluaXRPdXRwdXQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LHEsQSksRGkodGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJjdXJyZW50RmlsZVRyZWVXaWR0aCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmN1cnJlbnRGaWxlVHJlZVdpZHRoLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuY3VycmVudEZpbGVUcmVlV2lkdGg9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LG9lLGFlKSxEaSh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJjdXJyZW50VGVybWluYWxIZWlnaHQiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5jdXJyZW50VGVybWluYWxIZWlnaHQsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5jdXJyZW50VGVybWluYWxIZWlnaHQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LFJlLEJlKSxEaSh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nRmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc0RyYWdnaW5nRmlsZVRyZWUiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pc0RyYWdnaW5nRmlsZVRyZWUsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5pc0RyYWdnaW5nRmlsZVRyZWU9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LERlLF9lKSxEaSh0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nVGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc0RyYWdnaW5nVGVybWluYWwiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pc0RyYWdnaW5nVGVybWluYWwsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5pc0RyYWdnaW5nVGVybWluYWw9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LHZlLGJlKSxEaSh0aGlzLG51bGwsRWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RGlmZlZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJzaG93RGlmZlZpZXciaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5zaG93RGlmZlZpZXcsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5zaG93RGlmZlZpZXc9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LGplLFdlKSxEaSh0aGlzLG51bGwsc3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaWZmVmlld0NvbmZpZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImRpZmZWaWV3Q29uZmlnImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuZGlmZlZpZXdDb25maWcsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5kaWZmVmlld0NvbmZpZz1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sTWUsZ2UpLERpKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmNlfSxudWxsLHQpLEllPWE9ZS52YWx1ZSxjZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjZX0pfXN0YXRpYyBkZW1vPWkoKCk9PntsZXQgY2U9bmV3IFRnLGRlPShhc3luYygpPT57YXdhaXQgY2UuaW5pdCgpO2xldCBZZT17InBhY2thZ2UuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtuYW1lOiJkZW1vLXByb2plY3QiLHZlcnNpb246IjEuMC4wIix0eXBlOiJtb2R1bGUiLHNjcmlwdHM6e2J1aWxkOiJ0c2MiLGRldjoidHNjIC0td2F0Y2gifSxkZXBlbmRlbmNpZXM6eyJAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UiOiJeNC4yLjMifSxkZXZEZXBlbmRlbmNpZXM6eyJAdHlwZXMvbm9kZSI6Il4yMi4wLjAiLHR5cGVzY3JpcHQ6Il41LjAuMCJ9fSxudWxsLDIpfX0sIm5wbWV4dHJhLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7ZGVlc0VkaXRvcldvcmtzcGFjZTp7b25Jbml0OiJwbnBtIGluc3RhbGwifX0sbnVsbCwyKX19LCJ0c2NvbmZpZy5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe2NvbXBpbGVyT3B0aW9uczp7dGFyZ2V0OiJFUzIwMjIiLG1vZHVsZToiTm9kZU5leHQiLG1vZHVsZVJlc29sdXRpb246Ik5vZGVOZXh0IixzdHJpY3Q6ITAsb3V0RGlyOiIuL2Rpc3QiLHJvb3REaXI6Ii4vc3JjIixkZWNsYXJhdGlvbjohMH0saW5jbHVkZTpbInNyYy8qKi8qIl19LG51bGwsMil9fSxzcmM6e2RpcmVjdG9yeTp7ImluZGV4LnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIE1haW4gZW50cnkgcG9pbnQKaW1wb3J0IHsgZ3JlZXQsIGZvcm1hdE5hbWUgfSBmcm9tICcuL3V0aWxzLmpzJzsKCmNvbnN0IG5hbWUgPSBmb3JtYXROYW1lKCdXb3JsZCcpOwpjb25zb2xlLmxvZyhncmVldChuYW1lKSk7CgovLyBFeGFtcGxlIGFzeW5jIGZ1bmN0aW9uCmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7CiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCdIZWxsbyBmcm9tIGFzeW5jIScpOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCm1haW4oKTsKYH19LCJ1dGlscy50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBVdGlsaXR5IGZ1bmN0aW9ucwoKZXhwb3J0IGludGVyZmFjZSBJVXNlciB7CiAgZmlyc3ROYW1lOiBzdHJpbmc7CiAgbGFzdE5hbWU6IHN0cmluZzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIFxgSGVsbG8sIFwke25hbWV9IVxgOwp9CgpleHBvcnQgZnVuY3Rpb24gZm9ybWF0TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogIHJldHVybiBuYW1lLnRyaW0oKS50b1VwcGVyQ2FzZSgpOwp9CgpleHBvcnQgZnVuY3Rpb24gY3JlYXRlVXNlcihmaXJzdE5hbWU6IHN0cmluZywgbGFzdE5hbWU6IHN0cmluZyk6IElVc2VyIHsKICByZXR1cm4geyBmaXJzdE5hbWUsIGxhc3ROYW1lIH07Cn0KYH19LCJpbXBvcnR0ZXN0LnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFRlc3QgbnBtIHBhY2thZ2UgaW1wb3J0cwppbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJzsKCi8vIFRoaXMgc2hvdWxkIGhhdmUgSW50ZWxsaVNlbnNlIHNob3dpbmcgZGVmZXIoKSBtZXRob2QKY29uc3QgZGVmZXJyZWQgPSBzbWFydHByb21pc2UuZGVmZXI8c3RyaW5nPigpOwoKLy8gVGVzdCB1c2luZyB0aGUgZGVmZXJyZWQgcHJvbWlzZQphc3luYyBmdW5jdGlvbiB0ZXN0U21hcnRQcm9taXNlKCkgewogIHNldFRpbWVvdXQoKCkgPT4gewogICAgZGVmZXJyZWQucmVzb2x2ZSgnSGVsbG8gZnJvbSBzbWFydHByb21pc2UhJyk7CiAgfSwgMTAwKTsKCiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVmZXJyZWQucHJvbWlzZTsKICBjb25zb2xlLmxvZyhyZXN1bHQpOwp9Cgp0ZXN0U21hcnRQcm9taXNlKCk7CmB9fX19fTthd2FpdCBjZS5tb3VudChZZSl9KSgpLExlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0xlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IEtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtd29ya3NwYWNlIik7cmV0dXJuIEtlLmV4ZWN1dGlvbkVudmlyb25tZW50PWNlLEtlLmluaXRpYWxpemF0aW9uUHJvbWlzZT1kZSxMZS5hcHBlbmRDaGlsZChLZSksd2AKICAgICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgICAgJHtMZX0KICAgICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgYH0sImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPW9hKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoY2Upe3RoaXMuI2U9Y2V9I3Q9KG9hKHRoaXMsbCksb2EodGhpcyxkLG51bGwpKTtnZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxpemF0aW9uUHJvbWlzZShjZSl7dGhpcy4jdD1jZX0jYT0ob2EodGhpcyx1KSxvYSh0aGlzLGIsITApKTtnZXQgc2hvd0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dGaWxlVHJlZShjZSl7dGhpcy4jYT1jZX0jcz0ob2EodGhpcyx2KSxvYSh0aGlzLG0sITApKTtnZXQgc2hvd1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dUZXJtaW5hbChjZSl7dGhpcy4jcz1jZX0jaT0ob2EodGhpcyxmKSxvYSh0aGlzLE0sMjUwKSk7Z2V0IGZpbGVUcmVlV2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZmlsZVRyZWVXaWR0aChjZSl7dGhpcy4jaT1jZX0jcj0ob2EodGhpcyx6KSxvYSh0aGlzLEMsMjAwKSk7Z2V0IHRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRlcm1pbmFsSGVpZ2h0KGNlKXt0aGlzLiNyPWNlfSNvPShvYSh0aGlzLF8pLG9hKHRoaXMsJCxbXSkpO2dldCBvcGVuRmlsZXMoKXtyZXR1cm4gdGhpcy4jb31zZXQgb3BlbkZpbGVzKGNlKXt0aGlzLiNvPWNlfSNuPShvYSh0aGlzLEUpLG9hKHRoaXMsaywiIikpO2dldCBhY3RpdmVGaWxlUGF0aCgpe3JldHVybiB0aGlzLiNufXNldCBhY3RpdmVGaWxlUGF0aChjZSl7dGhpcy4jbj1jZX0jbD0ob2EodGhpcyxTKSxvYSh0aGlzLFAsITEpKTtnZXQgaXNUZXJtaW5hbENvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNsfXNldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKGNlKXt0aGlzLiNsPWNlfSNjPShvYSh0aGlzLFIpLG9hKHRoaXMsViwhMSkpO2dldCBpc0ZpbGVUcmVlQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoY2Upe3RoaXMuI2M9Y2V9I2Q9KG9hKHRoaXMsVyksb2EodGhpcyxCLCEwKSk7Z2V0IGlzSW5pdGlhbGl6aW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSW5pdGlhbGl6aW5nKGNlKXt0aGlzLiNkPWNlfSN1PShvYSh0aGlzLFUpLG9hKHRoaXMsRiwidGVybWluYWwiKSk7Z2V0IGFjdGl2ZUJvdHRvbVBhbmVsKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGFjdGl2ZUJvdHRvbVBhbmVsKGNlKXt0aGlzLiN1PWNlfSNwPShvYSh0aGlzLGopLG9hKHRoaXMsbGUsW10pKTtnZXQgZGlhZ25vc3RpY01hcmtlcnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZGlhZ25vc3RpY01hcmtlcnMoY2Upe3RoaXMuI3A9Y2V9ZWRpdG9yRWxlbWVudD0ob2EodGhpcyxRKSxudWxsKTtpbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITE7aW50ZWxsaVNlbnNlTWFuYWdlcj1udWxsO2ludGVsbGlTZW5zZUluaXRpYWxpemVkPSExO25vZGVNb2R1bGVzV2F0Y2hlcj1udWxsO25vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGw7aW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PW51bGw7b3BlbkZpbGVXYXRjaGVycz1uZXcgTWFwO2ZpbGVDaGFuZ2VEZWJvdW5jZT1uZXcgTWFwO2FjdGlvbmJhckVsZW1lbnQ9bnVsbDsjaD1vYSh0aGlzLHRlLCExKTtnZXQgYXV0b1NhdmUoKXtyZXR1cm4gdGhpcy4jaH1zZXQgYXV0b1NhdmUoY2Upe3RoaXMuI2g9Y2V9YXV0b1NhdmVJbnRlcnZhbD0ob2EodGhpcyxlZSksbnVsbCk7I2Y9b2EodGhpcyxYLCIiKTtnZXQgaW5pdENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZn1zZXQgaW5pdENvbW1hbmQoY2Upe3RoaXMuI2Y9Y2V9I209KG9hKHRoaXMsWiksb2EodGhpcyxxLFtdKSk7Z2V0IGluaXRPdXRwdXQoKXtyZXR1cm4gdGhpcy4jbX1zZXQgaW5pdE91dHB1dChjZSl7dGhpcy4jbT1jZX0jZz0ob2EodGhpcyxBKSxvYSh0aGlzLG9lLDI1MCkpO2dldCBjdXJyZW50RmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNnfXNldCBjdXJyZW50RmlsZVRyZWVXaWR0aChjZSl7dGhpcy4jZz1jZX0jYj0ob2EodGhpcyxhZSksb2EodGhpcyxSZSwyMDApKTtnZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2J9c2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodChjZSl7dGhpcy4jYj1jZX0jdj0ob2EodGhpcyxCZSksb2EodGhpcyxEZSwhMSkpO2dldCBpc0RyYWdnaW5nRmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKGNlKXt0aGlzLiN2PWNlfSN4PShvYSh0aGlzLF9lKSxvYSh0aGlzLHZlLCExKSk7Z2V0IGlzRHJhZ2dpbmdUZXJtaW5hbCgpe3JldHVybiB0aGlzLiN4fXNldCBpc0RyYWdnaW5nVGVybWluYWwoY2Upe3RoaXMuI3g9Y2V9I3k9KG9hKHRoaXMsYmUpLG9hKHRoaXMsamUsITEpKTtnZXQgc2hvd0RpZmZWaWV3KCl7cmV0dXJuIHRoaXMuI3l9c2V0IHNob3dEaWZmVmlldyhjZSl7dGhpcy4jeT1jZX0jdz0ob2EodGhpcyxXZSksb2EodGhpcyxNZSxudWxsKSk7Z2V0IGRpZmZWaWV3Q29uZmlnKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGRpZmZWaWV3Q29uZmlnKGNlKXt0aGlzLiN3PWNlfWtleWRvd25IYW5kbGVyPShvYSh0aGlzLGdlKSxjZT0+eyhjZS5tZXRhS2V5fHxjZS5jdHJsS2V5KSYmY2Uua2V5PT09InMiJiYhY2Uuc2hpZnRLZXkmJihjZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSksKGNlLm1ldGFLZXl8fGNlLmN0cmxLZXkpJiZjZS5zaGlmdEtleSYmY2Uua2V5LnRvTG93ZXJDYXNlKCk9PT0icyImJihjZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUFsbEZpbGVzKCkpfSk7aGFuZGxlRmlsZVRyZWVNb3VzZURvd249aShjZT0+e2NlLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCl9LCJoYW5kbGVGaWxlVHJlZU1vdXNlRG93biIpO2hhbmRsZUZpbGVUcmVlTW91c2VNb3ZlPWkoY2U9PntpZighdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWUpcmV0dXJuO2xldCBkZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLExlPWNlLmNsaWVudFgtZGUubGVmdCxLZT0xNTAsWWU9ZGUud2lkdGgqLjUsb3Q9TWF0aC5tYXgoS2UsTWF0aC5taW4oWWUsTGUpKTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPW90fSwiaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUiKTtoYW5kbGVGaWxlVHJlZU1vdXNlVXA9aSgoKT0+e3RoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfSwiaGFuZGxlRmlsZVRyZWVNb3VzZVVwIik7aGFuZGxlVGVybWluYWxNb3VzZURvd249aShjZT0+e2NlLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCl9LCJoYW5kbGVUZXJtaW5hbE1vdXNlRG93biIpO2hhbmRsZVRlcm1pbmFsTW91c2VNb3ZlPWkoY2U9PntpZighdGhpcy5pc0RyYWdnaW5nVGVybWluYWwpcmV0dXJuO2xldCBkZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLExlPWNlLmNsaWVudFktZGUudG9wLEtlPWRlLmhlaWdodC1MZSxZZT0xMDAsb3Q9ZGUuaGVpZ2h0Ki43LFV0PU1hdGgubWF4KFllLE1hdGgubWluKG90LEtlKSk7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9VXR9LCJoYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSIpO2hhbmRsZVRlcm1pbmFsTW91c2VVcD1pKCgpPT57dGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVUZXJtaW5hbE1vdXNlVXAiKTtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAud29ya3NwYWNlLW91dGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1hcmVhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmVkaXRvci1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIG1heC13aWR0aDogMjAwcHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDEwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbW9kaWZpZWQgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnByb2JsZW1zLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDMycHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICAucGFuZWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDc1JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNDUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWItYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS5ub25lIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAucHJvYmxlbXMtbGlzdCB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDAgNzAlIDUwJSkiLCJoc2woNDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbS1tZXNzYWdlIHsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAucHJvYmxlbS1sb2NhdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbXMtZW1wdHkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDU1JSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy1pY29uIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuaW5pdGlhbGl6aW5nIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY28gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBSZXNpemUgaGFuZGxlcyAqLwogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2ZTc2ODEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGN1cnNvcjogcm93LXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsOmhvdmVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAuZmlsZXRyZWUtcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3ItcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtsZXQgY2U9WyJ3b3Jrc3BhY2UtY29udGFpbmVyIix0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZXx8dGhpcy5pc0RyYWdnaW5nVGVybWluYWw/ImRyYWdnaW5nIjoiIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtyZXR1cm4gdGhpcy5pc0luaXRpYWxpemluZz93YAogICAgICAgIDxkaXYgY2xhc3M9ImluaXRpYWxpemluZyI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpsb2FkZXIyIn0gaWNvblNpemU9IjMyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPkluaXRpYWxpemluZyB3b3Jrc3BhY2UuLi48L3NwYW4+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAgICAgICAuY29tbWFuZD0ke3RoaXMuaW5pdENvbW1hbmR8fCIifQogICAgICAgICAgICAubGluZXM9JHt0aGlzLmluaXRPdXRwdXR9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS1vdXRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iJHtjZX0iPgogICAgICAgICAgPCEtLSBGaWxldHJlZSBwYW5lbCAoZnVsbCBoZWlnaHQpIC0tPgogICAgICAgICAgJHt0aGlzLnNob3dGaWxlVHJlZT93YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9ImZpbGV0cmVlLXBhbmVsICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPzA6dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aH1weCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1maWxldHJlZQogICAgICAgICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgICAgICAgIC5zZWxlY3RlZFBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgQGZpbGUtc2VsZWN0PSR7dGhpcy5oYW5kbGVGaWxlU2VsZWN0fQogICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLWZpbGV0cmVlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/IiI6d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZS12ZXJ0aWNhbCAke3RoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8IS0tIEVkaXRvciArIFRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItYXJlYSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1wYW5lbCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFicy1iYXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAke3RoaXMub3BlbkZpbGVzLm1hcChkZT0+d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiICR7ZGUucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGg/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZhdGVGaWxlKGRlLnBhdGgpfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICR7ZGUubW9kaWZpZWQ/d2A8c3BhbiBjbGFzcz0idGFiLW1vZGlmaWVkIj48L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbmFtZSI+JHtkZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY2xvc2UiIEBjbGljaz0ke0xlPT50aGlzLmNsb3NlRmlsZShMZSxkZS5wYXRoKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLW1lbnUtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnNob3dFZGl0b3JNZW51fSB0aXRsZT0iRWRpdG9yIG9wdGlvbnMiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTptb3JlVmVydGljYWwifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNob3dEaWZmVmlldyYmdGhpcy5kaWZmVmlld0NvbmZpZz93YAogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IKICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm9yaWdpbmFsQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubW9kaWZpZWRDb250ZW50PSR7dGhpcy5kaWZmVmlld0NvbmZpZy5tb2RpZmllZENvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5kaWZmVmlld0NvbmZpZy5sYW5ndWFnZX0KICAgICAgICAgICAgICAgICAgICBAZGlmZi1yZXNvbHZlZD0ke3RoaXMuaGFuZGxlRGlmZlJlc29sdmVkfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLWNsb3NlZD0keygpPT57dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsfX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgICAgICAgICAgICAgICBgOnRoaXMub3BlbkZpbGVzLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmZpbGVDb2RlIn0gaWNvblNpemU9IjQ4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZWxlY3QgYSBmaWxlIHRvIGVkaXQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgICAgICAgICAgLmZpbGVQYXRoPSR7dGhpcy5hY3RpdmVGaWxlUGF0aH0KICAgICAgICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMuZ2V0QWN0aXZlRmlsZUNvbnRlbnQoKX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCl9CiAgICAgICAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gSG9yaXpvbnRhbCByZXNpemUgaGFuZGxlIGZvciB0ZXJtaW5hbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbCYmIXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLWhvcml6b250YWwgJHt0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VEb3dufQogICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgIDwhLS0gVGVybWluYWwgcGFuZWwgLS0+CiAgICAgICAgICAgICR7dGhpcy5zaG93VGVybWluYWw/d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0idGVybWluYWwtcGFuZWwgJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/MzI6dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHR9cHgiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtdGFicyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InBhbmVsLXRhYiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0idGVybWluYWwiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJ0ZXJtaW5hbCJ9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dGVybWluYWwifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgVGVybWluYWwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJwcm9ibGVtcyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InByb2JsZW1zIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaXJjbGVBbGVydCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBQcm9ibGVtcwogICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYW5lbC10YWItYmFkZ2UgJHt0aGlzLmdldEVycm9yQ291bnQoKT09PTA/Indhcm5pbmciOiIifSI+JHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGVyLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWFjdGlvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVUZXJtaW5hbH0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblVwIjoibHVjaWRlOmNoZXZyb25Eb3duIn0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCIgc3R5bGU9ImRpc3BsYXk6ICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImJsb2NrIjoibm9uZSJ9Ij4KICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsCiAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgICAgICAgICAgICAuc2V0dXBDb21tYW5kPSR7IiJ9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyUHJvYmxlbXNQYW5lbCgpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBCb3R0b20gQmFyIChmdWxsIHdpZHRoKSAtLT4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyCiAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgQHJ1bi1wcm9jZXNzPSR7dGhpcy5oYW5kbGVSdW5Qcm9jZXNzfQogICAgICAgID48L2RlZXMtd29ya3NwYWNlLWJvdHRvbWJhcj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5rZXlkb3duSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksdGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKSx0aGlzLnN0b3BOb2RlTW9kdWxlc1dhdGNoZXIoKSx0aGlzLnN0b3BBbGxGaWxlV2F0Y2hlcnMoKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZVdvcmtzcGFjZSgpfWFzeW5jIHVwZGF0ZWQoY2Upe2NlLmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCksdGhpcy5hY3Rpb25iYXJFbGVtZW50fHwodGhpcy5hY3Rpb25iYXJFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmVkaXRvci1wYW5lbCBkZWVzLWFjdGlvbmJhciIpKX1hc3luYyBpbml0aWFsaXplV29ya3NwYWNlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkKXt0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMCx0aGlzLmlzSW5pdGlhbGl6aW5nPSEwO3RyeXt0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZT9hd2FpdCB0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZTp0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSxhd2FpdCB0aGlzLmV4ZWN1dGVPbkluaXRDb21tYW5kKCl9Y2F0Y2goY2Upe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIHdvcmtzcGFjZToiLGNlKSx0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNJbml0aWFsaXppbmc9ITF9fX1hc3luYyBleGVjdXRlT25Jbml0Q29tbWFuZCgpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbnBtZXh0cmEuanNvbiIpKXtsZXQgY2U9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL25wbWV4dHJhLmpzb24iKSxMZT1KU09OLnBhcnNlKGNlKT8uZGVlc0VkaXRvcldvcmtzcGFjZT8ub25Jbml0O2lmKExlJiZ0eXBlb2YgTGU9PSJzdHJpbmciKXtjb25zb2xlLmxvZygiRXhlY3V0aW5nIG9uSW5pdCBjb21tYW5kOiIsTGUpLHRoaXMuaW5pdENvbW1hbmQ9TGUsdGhpcy5pbml0T3V0cHV0PVtdO2xldFtLZSwuLi5ZZV09TGUuc3BsaXQoIiAiKSxvdD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKEtlLFllKTtvdC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6aShadD0+e2xldCBqYT1adC5zcGxpdChgCmApO2ZvcihsZXQgZXQgb2YgamEpZXQmJih0aGlzLmluaXRPdXRwdXQ9Wy4uLnRoaXMuaW5pdE91dHB1dCxldF0pfSwid3JpdGUiKX0pKTtsZXQgVXQ9YXdhaXQgb3QuZXhpdDtjb25zb2xlLmxvZygib25Jbml0IGNvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiIsVXQpLHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LCIiLGBDb21tYW5kIGNvbXBsZXRlZCB3aXRoIGV4aXQgY29kZTogJHtVdH1gXX19fWNhdGNoKGNlKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBleGVjdXRlIG9uSW5pdCBjb21tYW5kOiIsY2UpfX1hc3luYyBpbml0aWFsaXplSW50ZWxsaVNlbnNlKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpcmV0dXJuO2xldCBjZT13aW5kb3cubW9uYWNvO2lmKGNlfHwoYXdhaXQgbmV3IFByb21pc2UoZGU9PnNldFRpbWVvdXQoZGUsMTAwKSksY2U9d2luZG93Lm1vbmFjbyksIWNlKXtjb25zb2xlLndhcm4oIk1vbmFjbyBub3QgeWV0IGxvYWRlZCwgSW50ZWxsaVNlbnNlIHdpbGwgYmUgaW5pdGlhbGl6ZWQgbGF0ZXIiKTtyZXR1cm59dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZD0hMCx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI9bmV3IGxRLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KGNlLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuc2V0dXBNYXJrZXJMaXN0ZW5lcigpLHRoaXMuc3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKSxhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX1zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyKSl0cnl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaCgiL25vZGVfbW9kdWxlcyIsKGNlLGRlKT0+e3RoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9LDJlMyl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChjZSl7Y29uc29sZS53YXJuKCJDb3VsZCBub3Qgd2F0Y2ggbm9kZV9tb2R1bGVzOiIsY2UpfX1zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXImJih0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlci5zdG9wKCksdGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9bnVsbCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0V2F0Y2hpbmdGaWxlKGNlKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKGNlKSkpdHJ5e2xldCBkZT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKGNlLChMZSxLZSk9PntsZXQgWWU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGNlKTtZZSYmY2xlYXJUaW1lb3V0KFllKTtsZXQgb3Q9c2V0VGltZW91dCgoKT0+e3RoaXMuaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGNlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoY2UpfSwzMDApO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChjZSxvdCl9KTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuc2V0KGNlLGRlKX1jYXRjaChkZSl7Y29uc29sZS53YXJuKGBDb3VsZCBub3Qgd2F0Y2ggZmlsZSAke2NlfTpgLGRlKX19c3RvcFdhdGNoaW5nRmlsZShjZSl7bGV0IGRlPXRoaXMub3BlbkZpbGVXYXRjaGVycy5nZXQoY2UpO2RlJiYoZGUuc3RvcCgpLHRoaXMub3BlbkZpbGVXYXRjaGVycy5kZWxldGUoY2UpKTtsZXQgTGU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGNlKTtMZSYmKGNsZWFyVGltZW91dChMZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGNlKSl9c3RvcEFsbEZpbGVXYXRjaGVycygpe2ZvcihsZXQgY2Ugb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKWNlLnN0b3AoKTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuY2xlYXIoKTtmb3IobGV0IGNlIG9mIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLnZhbHVlcygpKWNsZWFyVGltZW91dChjZSk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKX1hc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoY2Upe2xldCBkZT10aGlzLm9wZW5GaWxlcy5maW5kKExlPT5MZS5wYXRoPT09Y2UpO2lmKCEoIWRlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2xldCBMZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGNlKTtpZihMZT09PWRlLmNvbnRlbnQpcmV0dXJuO2lmKGRlLm1vZGlmaWVkKXtsZXQgS2U9YXdhaXQgdGhpcy5hY3Rpb25iYXJFbGVtZW50Py5zaG93KHttZXNzYWdlOmAiJHtkZS5uYW1lfSIgY2hhbmdlZCBvbiBkaXNrLiBXaGF0IGRvIHlvdSB3YW50IHRvIGRvP2AsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpnaXRNZXJnZSIsYWN0aW9uczpbe2lkOiJsb2FkLWRpc2siLGxhYmVsOiJMb2FkIGZyb20gRGlzayIscHJpbWFyeTohMH0se2lkOiJzYXZlLWxvY2FsIixsYWJlbDoiU2F2ZSBMb2NhbCB0byBEaXNrIn0se2lkOiJjb21wYXJlIixsYWJlbDoiQ29tcGFyZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxNWUzLGRlZmF1bHRBY3Rpb25JZDoibG9hZC1kaXNrIn0sZGlzbWlzc2libGU6ITB9KTtLZT8uYWN0aW9uSWQ9PT0ibG9hZC1kaXNrIj9hd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGNlLExlLCExKTpLZT8uYWN0aW9uSWQ9PT0ic2F2ZS1sb2NhbCI/KGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGNlLGRlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChZZT0+WWUucGF0aD09PWNlP3suLi5ZZSxtb2RpZmllZDohMX06WWUpKTpLZT8uYWN0aW9uSWQ9PT0iY29tcGFyZSImJnRoaXMub3BlbkRpZmZWaWV3KGNlLGRlLmNvbnRlbnQsTGUpfWVsc2UgYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChjZSxMZSwhMCl9Y2F0Y2goTGUpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGhhbmRsZSBleHRlcm5hbCBjaGFuZ2UgZm9yICR7Y2V9OmAsTGUpfX1hc3luYyB1cGRhdGVGaWxlQ29udGVudChjZSxkZSxMZSl7aWYodGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKEtlPT5LZS5wYXRoPT09Y2U/ey4uLktlLGNvbnRlbnQ6ZGUsbW9kaWZpZWQ6ITF9OktlKSxjZT09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCBLZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO0tlJiZhd2FpdCBLZS5zZXRDb250ZW50RXh0ZXJuYWwoZGUsTGUpfX1vcGVuRGlmZlZpZXcoY2UsZGUsTGUpe3RoaXMuZGlmZlZpZXdDb25maWc9e2ZpbGVQYXRoOmNlLG9yaWdpbmFsQ29udGVudDpMZSxtb2RpZmllZENvbnRlbnQ6ZGUsbGFuZ3VhZ2U6dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGNlKX0sdGhpcy5zaG93RGlmZlZpZXc9ITB9YXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKGNlKXtsZXR7YWN0aW9uOmRlLGNvbnRlbnQ6TGV9PWNlLmRldGFpbCxLZT10aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtpZighS2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGw7cmV0dXJufWlmKGRlPT09InVzZS1sb2NhbCIpe2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEtlLExlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoWWU9PlllLnBhdGg9PT1LZT97Li4uWWUsY29udGVudDpMZSxtb2RpZmllZDohMX06WWUpLEtlPT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IFllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7WWUmJmF3YWl0IFllLnNldENvbnRlbnRFeHRlcm5hbChMZSwhMSl9fWVsc2UgZGU9PT0idXNlLWRpc2siJiZhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KEtlLExlLCExKTt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9YXN5bmMgaGFuZGxlRmlsZVNlbGVjdChjZSl7bGV0e3BhdGg6ZGUsbmFtZTpMZX09Y2UuZGV0YWlsO2F3YWl0IHRoaXMub3BlbkZpbGUoZGUsTGUpfWFzeW5jIG9wZW5GaWxlKGNlLGRlKXtpZih0aGlzLm9wZW5GaWxlcy5maW5kKEtlPT5LZS5wYXRoPT09Y2UpKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWNlO3JldHVybn1pZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgS2U9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShjZSk7aWYodGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLHtwYXRoOmNlLG5hbWU6ZGUsY29udGVudDpLZSxtb2RpZmllZDohMX1dLHRoaXMuYWN0aXZlRmlsZVBhdGg9Y2UsdGhpcy5zdGFydFdhdGNoaW5nRmlsZShjZSksIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2Uob3Q9PnNldFRpbWVvdXQob3QsNTAwKSksYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7bGV0IFllPXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChjZSk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoWWU9PT0idHlwZXNjcmlwdCJ8fFllPT09ImphdmFzY3JpcHQiKSYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnByb2Nlc3NDb250ZW50Q2hhbmdlKEtlKX19Y2F0Y2goS2Upe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGZpbGUgJHtjZX06YCxLZSl9fWFjdGl2YXRlRmlsZShjZSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1jZX1jbG9zZUZpbGUoY2UsZGUpe2NlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBMZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgoWWU9PlllLnBhdGg9PT1kZSk7aWYoTGU9PT0tMSlyZXR1cm47bGV0IEtlPXRoaXMub3BlbkZpbGVzW0xlXTtpZighKEtlLm1vZGlmaWVkJiYhY29uZmlybShgJHtLZS5uYW1lfSBoYXMgdW5zYXZlZCBjaGFuZ2VzLiBDbG9zZSBhbnl3YXk/YCkpJiYodGhpcy5zdG9wV2F0Y2hpbmdGaWxlKGRlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5maWx0ZXIoWWU9PlllLnBhdGghPT1kZSksdGhpcy5hY3RpdmVGaWxlUGF0aD09PWRlKSlpZih0aGlzLm9wZW5GaWxlcy5sZW5ndGg+MCl7bGV0IFllPU1hdGgubWluKExlLHRoaXMub3BlbkZpbGVzLmxlbmd0aC0xKTt0aGlzLmFjdGl2ZUZpbGVQYXRoPXRoaXMub3BlbkZpbGVzW1llXS5wYXRofWVsc2UgdGhpcy5hY3RpdmVGaWxlUGF0aD0iIn1nZXRBY3RpdmVGaWxlQ29udGVudCgpe3JldHVybiB0aGlzLm9wZW5GaWxlcy5maW5kKGRlPT5kZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk/LmNvbnRlbnR8fCIifWhhbmRsZUNvbnRlbnRDaGFuZ2UoY2Upe2xldCBkZT1jZS5kZXRhaWwsTGU9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KFllPT5ZZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoTGU9PT0tMSlyZXR1cm47bGV0IEtlPXRoaXMub3BlbkZpbGVzW0xlXTtpZihLZS5jb250ZW50IT09ZGUpe3RoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcy5zbGljZSgwLExlKSx7Li4uS2UsY29udGVudDpkZSxtb2RpZmllZDohMH0sLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoTGUrMSldO2xldCBZZT10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoWWU9PT0idHlwZXNjcmlwdCJ8fFllPT09ImphdmFzY3JpcHQiKSYmKHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQpLHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKGRlKX0sNTAwKSl9fWdldExhbmd1YWdlRnJvbVBhdGgoY2Upe2xldCBkZT1jZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO3JldHVybnt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIsbWQ6Im1hcmtkb3duIix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHhtbDoieG1sIixzcWw6InNxbCIscHk6InB5dGhvbiIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCJ9W2RlfHwiIl18fCJwbGFpbnRleHQifXRvZ2dsZVRlcm1pbmFsKCl7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWR9YXN5bmMgc2F2ZUFjdGl2ZUZpbGUoKXtsZXQgY2U9dGhpcy5vcGVuRmlsZXMuZmluZChkZT0+ZGUucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKCEoIWNlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGNlLnBhdGgsY2UuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGRlPT5kZS5wYXRoPT09Y2UucGF0aD97Li4uZGUsbW9kaWZpZWQ6ITF9OmRlKSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoY2UucGF0aCxjZS5jb250ZW50KX1jYXRjaChkZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNhdmUgZmlsZToiLGRlKX19YXN5bmMgc2F2ZUFsbEZpbGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7Zm9yKGxldCBjZSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoZGU9PmRlLm1vZGlmaWVkKSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoY2UucGF0aCxjZS5jb250ZW50KSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoY2UucGF0aCxjZS5jb250ZW50KX1jYXRjaChkZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHNhdmUgJHtjZS5wYXRofTpgLGRlKX10aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoY2U9Pih7Li4uY2UsbW9kaWZpZWQ6ITF9KSl9fWFzeW5jIHNob3dFZGl0b3JNZW51KGNlKXtjZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgZGU9W3tuYW1lOnRoaXMuYXV0b1NhdmU/Ilx1MjcxMyBBdXRvIFNhdmUiOiJBdXRvIFNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50b2dnbGVBdXRvU2F2ZSgpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246aShhc3luYygpPT50aGlzLnNhdmVBbGxGaWxlcygpLCJhY3Rpb24iKX1dO2F3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGNlLGRlKX10b2dnbGVBdXRvU2F2ZSgpe3RoaXMuYXV0b1NhdmU9IXRoaXMuYXV0b1NhdmUsdGhpcy5hdXRvU2F2ZT90aGlzLmF1dG9TYXZlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLm9wZW5GaWxlcy5zb21lKGRlPT5kZS5tb2RpZmllZCkmJnRoaXMuc2F2ZUFsbEZpbGVzKCl9LDJlMyk6dGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKX1nZXRFcnJvckNvdW50KCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMuZmlsdGVyKGNlPT5jZS5zZXZlcml0eT09PTgpLmxlbmd0aH1yZW5kZXJQcm9ibGVtc1BhbmVsKCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPT09MD93YAogICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrQ2lyY2xlIn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIHByb2JsZW1zIGRldGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWxpc3QiPgogICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5tYXAoY2U9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWl0ZW0iIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9Qcm9ibGVtKGNlKX0+CiAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICBjbGFzcz0icHJvYmxlbS1pY29uICR7Y2Uuc2V2ZXJpdHk9PT04PyJlcnJvciI6Indhcm5pbmcifSIKICAgICAgICAgICAgICAuaWNvbj0ke2NlLnNldmVyaXR5PT09OD8ibHVjaWRlOmNpcmNsZVgiOiJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9CiAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tZGV0YWlscyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1tZXNzYWdlIj4ke2NlLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1sb2NhdGlvbiI+CiAgICAgICAgICAgICAgICAke2NlLnJlc291cmNlLnBhdGguc3BsaXQoIi8iKS5wb3AoKX0gKCR7Y2Uuc3RhcnRMaW5lTnVtYmVyfSwgJHtjZS5zdGFydENvbHVtbn0pCiAgICAgICAgICAgICAgICAke2NlLnNvdXJjZT9gWyR7Y2Uuc291cmNlfV1gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0oY2Upe2xldCBkZT1jZS5yZXNvdXJjZS5wYXRoLExlPWRlLnNwbGl0KCIvIikucG9wKCl8fCIiO3RoaXMub3BlbkZpbGVzLmZpbmQob3Q9Pm90LnBhdGg9PT1kZSk/dGhpcy5hY3RpdmVGaWxlUGF0aD1kZTphd2FpdCB0aGlzLm9wZW5GaWxlKGRlLExlKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBZZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2lmKFllKXtsZXQgb3Q9YXdhaXQgWWUuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtvdC5yZXZlYWxMaW5lSW5DZW50ZXIoY2Uuc3RhcnRMaW5lTnVtYmVyKSxvdC5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpjZS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmNlLnN0YXJ0Q29sdW1ufSksb3QuZm9jdXMoKX19c2V0dXBNYXJrZXJMaXN0ZW5lcigpe2xldCBjZT13aW5kb3cubW9uYWNvO2NlJiYoY2UuZWRpdG9yLm9uRGlkQ2hhbmdlTWFya2VycyhkZT0+e3RoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKX0pLHRoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKSl9dXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKXtsZXQgY2U9d2luZG93Lm1vbmFjbztpZighY2UpcmV0dXJuO2xldCBkZT1jZS5lZGl0b3IuZ2V0TW9kZWxNYXJrZXJzKHt9KTt0aGlzLmRpYWdub3N0aWNNYXJrZXJzPWRlLm1hcChMZT0+KHttZXNzYWdlOkxlLm1lc3NhZ2Usc2V2ZXJpdHk6TGUuc2V2ZXJpdHksc3RhcnRMaW5lTnVtYmVyOkxlLnN0YXJ0TGluZU51bWJlcixzdGFydENvbHVtbjpMZS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOkxlLmVuZExpbmVOdW1iZXIsZW5kQ29sdW1uOkxlLmVuZENvbHVtbixzb3VyY2U6TGUuc291cmNlLHJlc291cmNlOntwYXRoOkxlLnJlc291cmNlLnBhdGh9fSkpfWFzeW5jIGhhbmRsZVJ1blByb2Nlc3MoY2Upe2xldCBkZT1jZS5kZXRhaWwsTGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpO2lmKCFMZSl7Y29uc29sZS53YXJuKCJUZXJtaW5hbCBjb21wb25lbnQgbm90IGZvdW5kIik7cmV0dXJufXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCYmKHRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hMSksdGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwiLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgTGUuY3JlYXRlUHJvY2Vzc1RhYih7dHlwZTpkZS50eXBlLGxhYmVsOmRlLmxhYmVsLGNvbW1hbmQ6ZGUuY29tbWFuZCxhcmdzOmRlLmFyZ3MsbWV0YWRhdGE6ZGUubWV0YWRhdGEsc3dpdGNoVG9UYWI6ITB9KX1zZXRGaWxlVHJlZVdpZHRoKGNlKXtsZXQgTGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCouNTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPU1hdGgubWF4KDE1MCxNYXRoLm1pbihMZSxjZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXNldFRlcm1pbmFsSGVpZ2h0KGNlKXtsZXQgTGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqLjc7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9TWF0aC5tYXgoMTAwLE1hdGgubWluKExlLGNlKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9cmVzZXRMYXlvdXQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXN0YXRpY3tvYShhLHQpfX07cmV0dXJuIEllPWF9KSgpfSk7dmFyIHA3YT1nKCgpPT57dTdhKCk7anJ0KCl9KTt2YXIgaDdhPWcoKCk9PntQOCgpfSk7dmFyIGY3YT1nKCgpPT57dzFlKCl9KTt2YXIgbTdhPWcoKCk9Pnt9KTt2YXIgZzdhPWcoKCk9PntvUSgpO203YSgpO1BydCgpfSk7dmFyIGI3YT1nKCgpPT57SHJ0KCl9KTt2YXIgY1EsenUsV1NvLHY3YSx4N2E9ZygoKT0+e3BlKCk7cHQoKTtQOCgpO2NRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6dT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sV1NvPWx0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCksdjdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZU1hcmtkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bWSgpXSx4PVtZKCldLGNRKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3BsaXRSYXRpbyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNwbGl0UmF0aW8sImdldCIpLHNldDppKCh6LE4pPT57ei5zcGxpdFJhdGlvPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxjUSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblBhbmVsU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibWluUGFuZWxTaXplImluIHosImhhcyIpLGdldDppKHo9PnoubWluUGFuZWxTaXplLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubWluUGFuZWxTaXplPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxjUSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50U3BsaXRSYXRpbyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmN1cnJlbnRTcGxpdFJhdGlvLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouY3VycmVudFNwbGl0UmF0aW89Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGNRKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNEcmFnZ2luZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzRHJhZ2dpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5pc0RyYWdnaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxjUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3duPjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAuZWRpdG9yQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzAzNjNkIil9OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3JDb250YWluZXIsCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07I2U9enUodGhpcyxvLDUwKTtnZXQgc3BsaXRSYXRpbygpe3JldHVybiB0aGlzLiNlfXNldCBzcGxpdFJhdGlvKE0pe3RoaXMuI2U9TX0jdD0oenUodGhpcyxsKSx6dSh0aGlzLGQsMTApKTtnZXQgbWluUGFuZWxTaXplKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblBhbmVsU2l6ZShNKXt0aGlzLiN0PU19I2E9KHp1KHRoaXMsdSksenUodGhpcyxiLDUwKSk7Z2V0IGN1cnJlbnRTcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1cnJlbnRTcGxpdFJhdGlvKE0pe3RoaXMuI2E9TX0jcz0oenUodGhpcyx2KSx6dSh0aGlzLG0sITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiNzfXNldCBpc0RyYWdnaW5nKE0pe3RoaXMuI3M9TX1yZXNpemVIYW5kbGVFbGVtZW50PXp1KHRoaXMsZik7Y29udGFpbmVyRWxlbWVudDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic3BsaXRDb250YWluZXIgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvckNvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAke3RoaXMuY3VycmVudFNwbGl0UmF0aW99JSI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5sYW5ndWFnZT0keyJtYXJrZG93biJ9CiAgICAgICAgICAgIC5jb250ZW50PSR7YCMgYSB0ZXN0IGNvbnRlbnQKClRoaXMgaXMgdGVzdCBjb250ZW50IHRoYXQgaXMgb2YgbG9uZ2VyIGZvcm0gYW4gaG9wZWZ1bGx5IHN0YXJ0cyB0byB3cmFwIHdoZW4gSSBuZWVkIGl0LiBBbmQgeWVzLCBpdCBkb2VzIHBlcmZlY3RseS4gbmljZS4KClRlc3QgfCBIZWxsbwotLS0gfCAtLS0KWWVhaCB8IFNvIGdvb2QKClRoaXMgaXMgcmVhbCBhc3NldCBJIHRoaW5rLiBXaHkgd291bGQgd2Ugd2FudCB0byBsZWF2ZSB0aGF0IG9uIHRoZSB0YWJsZT8gQ2FuIHlvdSB0ZWxsIG15IHRoYXQ/CgpXaHkgYXJlIHdlIGhlcmU/CgpEbyB5b3Uga25vdz8KCj4gbm90ZToKVGhlcmUgaXMgc29tZXRoaW5nIGdvaW5nIG9uLgoKXGBcYFxgdHlwZXNjcmlwdApjb25zdCBoZWxsbyA9ICd5ZXMnClxgXGBcYApgfQogICAgICAgICAgICB3b3JkV3JhcD0iYm91bmRlZCIKICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplSGFuZGxlICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufQogICAgICAgID48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvdXRsZXRDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJHsxMDAtdGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKE0pe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChNKSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpbyx0aGlzLmNvbnRhaW5lckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zcGxpdENvbnRhaW5lciIpLHRoaXMucmVzaXplSGFuZGxlRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnJlc2l6ZUhhbmRsZSIpO2xldCB6PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxOPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpLF89YXdhaXQgbmV3IGx0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duKCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oImxvYWRpbmcuLi4iKTt6LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShhc3luYyBPPT57YXdhaXQgXy51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoTyk7bGV0ICQ9Xy5odG1sO04udXBkYXRlSHRtbFRleHQoJCl9KX1oYW5kbGVNb3VzZURvd249aShNPT57TS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZz0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApfSwiaGFuZGxlTW91c2VEb3duIik7aGFuZGxlTW91c2VNb3ZlPWkoTT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmd8fCF0aGlzLmNvbnRhaW5lckVsZW1lbnQpcmV0dXJuO2xldCB6PXRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxOPXoud2lkdGgsXz0oTS5jbGllbnRYLXoubGVmdCkvTioxMDA7Xz1NYXRoLm1heCh0aGlzLm1pblBhbmVsU2l6ZSxNYXRoLm1pbigxMDAtdGhpcy5taW5QYW5lbFNpemUsXykpLHRoaXMuY3VycmVudFNwbGl0UmF0aW89X30sImhhbmRsZU1vdXNlTW92ZSIpO2hhbmRsZU1vdXNlVXA9aSgoKT0+e3RoaXMuaXNEcmFnZ2luZz0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSYmd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVNb3VzZVVwIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9c2V0U3BsaXRSYXRpbyhNKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSxNKSl9cmVzZXRTcGxpdFJhdGlvKCl7dGhpcy5jdXJyZW50U3BsaXRSYXRpbz10aGlzLnNwbGl0UmF0aW99c3RhdGlje3p1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciB5N2E9ZygoKT0+e3g3YSgpfSk7dmFyIHc3YSxrN2E9ZygoKT0+e3BlKCk7SXQoKTtmbygpO3c3YT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPCEtLSBEZW1vIDE6IEhlYWRpbmdzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJIZWFkaW5ncyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkFsbCBoZWFkaW5nIGxldmVscyBmcm9tIEgxIHRvIEg2In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5IZWFkaW5nIExldmVsIDE8L2gxPgogICAgICAgICAgICA8aDI+SGVhZGluZyBMZXZlbCAyPC9oMj4KICAgICAgICAgICAgPGgzPkhlYWRpbmcgTGV2ZWwgMzwvaDM+CiAgICAgICAgICAgIDxoND5IZWFkaW5nIExldmVsIDQ8L2g0PgogICAgICAgICAgICA8aDU+SGVhZGluZyBMZXZlbCA1PC9oNT4KICAgICAgICAgICAgPGg2PkhlYWRpbmcgTGV2ZWwgNjwvaDY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDI6IFRleHQgRm9ybWF0dGluZyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGV4dCBGb3JtYXR0aW5nIn0KICAgICAgICAuc3VidGl0bGU9JHsiQm9sZCwgaXRhbGljLCBsaW5rcywgY29kZSwgYW5kIGtleWJvYXJkIGlucHV0In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBwYXJhZ3JhcGggd2l0aCA8c3Ryb25nPmJvbGQgdGV4dDwvc3Ryb25nPiBhbmQgPGVtPml0YWxpYyB0ZXh0PC9lbT4uPC9wPgogICAgICAgICAgICA8cD5Zb3UgY2FuIGFsc28gdXNlIDxzdHJvbmc+PGVtPmJvbGQgaXRhbGljPC9lbT48L3N0cm9uZz4gZm9yIGVtcGhhc2lzLjwvcD4KICAgICAgICAgICAgPHA+SGVyZSdzIGEgPGEgaHJlZj0iIyI+bGluayBleGFtcGxlPC9hPiBhbmQgc29tZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4uPC9wPgogICAgICAgICAgICA8cD5QcmVzcyA8a2JkPkN0cmw8L2tiZD4gKyA8a2JkPkM8L2tiZD4gdG8gY29weSB0ZXh0LjwvcD4KICAgICAgICAgICAgPGhyPgogICAgICAgICAgICA8cD5BYm92ZSBpcyBhIGhvcml6b250YWwgcnVsZSBzZXBhcmF0b3IuPC9wPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAzOiBMaXN0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiTGlzdHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJPcmRlcmVkLCB1bm9yZGVyZWQsIGFuZCB0YXNrIGxpc3RzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMz5Vbm9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+Rmlyc3QgaXRlbTwvbGk+CiAgICAgICAgICAgICAgPGxpPlNlY29uZCBpdGVtCiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAxPC9saT4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDI8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UaGlyZCBpdGVtPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxoMz5PcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgb25lPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0d288L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHRocmVlPC9saT4KICAgICAgICAgICAgPC9vbD4KCiAgICAgICAgICAgIDxoMz5UYXNrIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkIGRpc2FibGVkPiBDb21wbGV0ZWQgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gUGVuZGluZyB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBBbm90aGVyIHRhc2s8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA0OiBDb2RlIEJsb2NrcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQ29kZSBCbG9ja3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJTeW50YXggaGlnaGxpZ2h0ZWQgY29kZSBleGFtcGxlcyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IHMucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5JbmxpbmUgY29kZTogPGNvZGU+Y29uc3QgZ3JlZXRpbmcgPSAiSGVsbG8sIFdvcmxkISI7PC9jb2RlPjwvcD4KCiAgICAgICAgICAgIDxoMz5UeXBlU2NyaXB0IEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBodG1sLCBjc3MgfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmludGVyZmFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPklVc2VyPC9zcGFuPiB7CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+bmFtZTwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmVtYWlsPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+YWdlPC9zcGFuPj86IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5udW1iZXI8L3NwYW4+Owp9Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPmdldFVzZXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXN5bmM8L3NwYW4+ICg8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5pZDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+KTogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPlByb21pc2U8L3NwYW4+Jmx0O0lVc2VyJmd0OyA9Jmd0OyB7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IHJlc3BvbnNlID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXdhaXQ8L3NwYW4+IGZldGNoKFxgL2FwaS91c2Vycy9cJHtpZH1cYCk7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+cmV0dXJuPC9zcGFuPiByZXNwb25zZS5qc29uKCk7Cn07PC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgzPkpTT04gRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+ewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJuYW1lIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+ImRlZXMtY2F0YWxvZyI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJ2ZXJzaW9uIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+IjMuMC4wIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ImRlcGVuZGVuY2llcyI8L3NwYW4+OiB7CiAgICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Ijwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+Il4yLjAuMCI8L3NwYW4+CiAgfQp9PC9jb2RlPjwvcHJlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA1OiBUYWJsZXMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRhYmxlcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN0eWxlZCB0YWJsZXMgd2l0aCBhbHRlcm5hdGluZyByb3dzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5GZWF0dXJlPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5Qcmlvcml0eTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RGFyayBtb2RlIHN1cHBvcnQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+Q29tcGxldGVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPlJlc3BvbnNpdmUgZGVzaWduPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1lZGl1bTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+QWNjZXNzaWJpbGl0eTwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QbGFubmVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRvY3VtZW50YXRpb248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TG93PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNjogQmxvY2txdW90ZXMgJiBBbGVydHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkJsb2NrcXVvdGVzICYgQWxlcnRzIn0KICAgICAgICAuc3VidGl0bGU9JHsiUXVvdGVzIGFuZCBHaXRIdWItc3R5bGUgYWxlcnRzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzdGFuZGFyZCBibG9ja3F1b3RlLiBJdCdzIGdyZWF0IGZvciBoaWdobGlnaHRpbmcgaW1wb3J0YW50IGluZm9ybWF0aW9uIG9yIHF1b3RlcyBmcm9tIG90aGVyIHNvdXJjZXMuPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1ub3RlIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBub3RlIHRvIGRyYXcgYXR0ZW50aW9uIHRvIGltcG9ydGFudCBkZXRhaWxzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBIZXJlJ3MgYSBoZWxwZnVsIHRpcCB0byBpbXByb3ZlIHlvdXIgd29ya2Zsb3cuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5JbXBvcnRhbnQ6PC9zdHJvbmc+IFRoaXMgaW5mb3JtYXRpb24gaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgdG9waWMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXdhcm5pbmciPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gQmUgY2FyZWZ1bCB3aGVuIHBlcmZvcm1pbmcgdGhpcyBhY3Rpb24uPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWNhdXRpb24iPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Q2F1dGlvbjo8L3N0cm9uZz4gVGhpcyBhY3Rpb24gbWF5IGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNzogRnVsbCBEb2N1bWVudCAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiRnVsbCBEb2N1bWVudCJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkEgY29tcGxldGUgbWFya2Rvd24gZG9jdW1lbnQgZXhhbXBsZSJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IHMucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+R2V0dGluZyBTdGFydGVkIEd1aWRlPC9oMT4KICAgICAgICAgICAgPHA+V2VsY29tZSB0byB0aGUgPHN0cm9uZz5kZWVzLWNhdGFsb2c8L3N0cm9uZz4gY29tcG9uZW50IGxpYnJhcnkuIFRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBnZXQgdXAgYW5kIHJ1bm5pbmcgcXVpY2tseS48L3A+CgogICAgICAgICAgICA8aDI+SW5zdGFsbGF0aW9uPC9oMj4KICAgICAgICAgICAgPHA+SW5zdGFsbCB0aGUgcGFja2FnZSB1c2luZyB5b3VyIHByZWZlcnJlZCBwYWNrYWdlIG1hbmFnZXI6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgcG5wbSAocmVjb21tZW5kZWQpPC9zcGFuPgpwbnBtIGFkZCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgbnBtPC9zcGFuPgpucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDI+QmFzaWMgVXNhZ2U8L2gyPgogICAgICAgICAgICA8cD5JbXBvcnQgYW5kIHVzZSBjb21wb25lbnRzIGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlczo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IERlZXNCdXR0b24gfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPi8vIFVzZSBpbiB5b3VyIHRlbXBsYXRlczwvc3Bhbj4KaHRtbFxgJmx0O2RlZXMtYnV0dG9uJmd0O0NsaWNrIG1lJmx0Oy9kZWVzLWJ1dHRvbiZndDtcYDwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IENoZWNrIHRoZSBkZW1vIHNob3djYXNlIGZvciBsaXZlIGV4YW1wbGVzIG9mIGFsbCBjb21wb25lbnRzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8aDI+QXZhaWxhYmxlIENvbXBvbmVudHM8L2gyPgogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+Q29tcG9uZW50PC90aD4KICAgICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWJ1dHRvbjwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UHJpbWFyeSBidXR0b24gY29tcG9uZW50PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWlucHV0LXRleHQ8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlRleHQgaW5wdXQgZmllbGQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtdGFibGU8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkRhdGEgdGFibGUgd2l0aCBzb3J0aW5nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLW1vZGFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Nb2RhbCBkaWFsb2c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgPGgyPk5leHQgU3RlcHM8L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkV4cGxvcmUgdGhlIDxhIGhyZWY9IiMiPmNvbXBvbmVudCBkb2N1bWVudGF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkNoZWNrIG91dCB0aGUgPGEgaHJlZj0iIyI+dGhlbWluZyBndWlkZTwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5Kb2luIG91ciA8YSBocmVmPSIjIj5jb21tdW5pdHkgRGlzY29yZDwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+IlRoZSBiZXN0IGNvbXBvbmVudCBsaWJyYXJ5IGlzIG9uZSB0aGF0IGdldHMgb3V0IG9mIHlvdXIgd2F5LiIgXHUyMDE0IERlc2lnbiBTeXN0ZW1zIFRlYW08L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgX1FhLE1RYSxTN2EsXzdhPWcoKCk9PntwZSgpO3B0KCk7azdhKCk7X1FhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxNUWE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFM3YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IildLGUsdD1bXSxhLHI9d2U7dmFyIG49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO19RYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHQpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfXN0YXRpYyBkZW1vPXc3YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgLm91dGxldCB7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBIZWFkaW5ncyAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgIH0KCiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgfQoKICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsKICAgICAgfQoKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi8KICAgICAgcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBMaW5rcyAqLwogICAgICBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi8KICAgICAgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIExpc3RzICovCiAgICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMmVtOwogICAgICB9CgogICAgICBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICBsaSArIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIHVsIHVsLCB1bCBvbCwgb2wgdWwsIG9sIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrcXVvdGVzICovCiAgICAgIGJsb2NrcXVvdGUgewogICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDsKICAgICAgICBwYWRkaW5nOiAwIDFlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIElubGluZSBjb2RlICovCiAgICAgIGNvZGUgewogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTc1LCAxODQsIDE5MywgMC4yKSIsInJnYmEoMTEwLCAxMTgsIDEyOSwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9ja3MgKi8KICAgICAgcHJlIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgfQoKICAgICAgcHJlIGNvZGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgfQoKICAgICAgLyogVGFibGVzICovCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMjEyNjJkIil9OwogICAgICB9CgogICAgICB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi8KICAgICAgaHIgewogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIEltYWdlcyAqLwogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLyogVGFzayBsaXN0cyAqLwogICAgICAudGFzay1saXN0LWl0ZW0gewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhc2stbGlzdC1pdGVtIGlucHV0IHsKICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAvKiBEZWZpbml0aW9uIGxpc3RzICovCiAgICAgIGRsIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICBkbCBkdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBkbCBkZCB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIEtleWJvYXJkIGlucHV0ICovCiAgICAgIGtiZCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDNweCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBsaW5lLWhlaWdodDogMTBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICAvKiBGb290bm90ZXMgKi8KICAgICAgLmZvb3Rub3RlcyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICB9CgogICAgICAvKiBBbGVydHMvQWRtb25pdGlvbnMgKi8KICAgICAgLm1hcmtkb3duLWFsZXJ0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoOSwgMTA1LCAyMTgsIDAuMSkiLCJyZ2JhKDU2LCAxMzksIDI1MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNiZjg3MDAiLCIjZDI5OTIyIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDE5MSwgMTM1LCAwLCAwLjEpIiwicmdiYSgxODcsIDEyOCwgOSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzgyNTBkZiIsIiNhMzcxZjciKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTMwLCA4MCwgMjIzLCAwLjEpIiwicmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2NmMjIyZSIsIiNmODUxNDkiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMjA3LCAzNCwgNDYsIDAuMSkiLCJyZ2JhKDI0OCwgODEsIDczLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtdGlwIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMWE3ZjM3IiwiIzNmYjk1MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgyNiwgMTI3LCA1NSwgMC4xKSIsInJnYmEoNDYsIDE2MCwgNjcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFN5bnRheCBoaWdobGlnaHRpbmcgZm9yIGNvZGUgYmxvY2tzICovCiAgICAgIC5obGpzLWNvbW1lbnQsCiAgICAgIC5obGpzLXF1b3RlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YTczN2QiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci10YWcsCiAgICAgIC5obGpzLWFkZGl0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkNzNhNDkiLCIjZmY3YjcyIil9OwogICAgICB9CgogICAgICAuaGxqcy1udW1iZXIsCiAgICAgIC5obGpzLXN0cmluZywKICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZywKICAgICAgLmhsanMtbGl0ZXJhbCwKICAgICAgLmhsanMtZG9jdGFnLAogICAgICAuaGxqcy1yZWdleHAgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAzMmY2MiIsIiNhNWQ2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy1zZWN0aW9uLAogICAgICAuaGxqcy1uYW1lLAogICAgICAuaGxqcy1zZWxlY3Rvci1pZCwKICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZmNDJjMSIsIiNkMmE4ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWF0dHJpYnV0ZSwKICAgICAgLmhsanMtYXR0ciwKICAgICAgLmhsanMtdmFyaWFibGUsCiAgICAgIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLAogICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtdHlwZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA1Y2M1IiwiIzc5YzBmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtc3ltYm9sLAogICAgICAuaGxqcy1idWxsZXQsCiAgICAgIC5obGpzLXN1YnN0LAogICAgICAuaGxqcy1tZXRhLAogICAgICAuaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWF0dHIsCiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbywKICAgICAgLmhsanMtbGluayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZTM2MjA5IiwiI2ZmYTY1NyIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYnVpbHRfaW4sCiAgICAgIC5obGpzLWRlbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNiMzFkMjgiLCIjZmZhMTk4Iil9OwogICAgICB9CgogICAgICAuaGxqcy1mb3JtdWxhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWVtcGhhc2lzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5obGpzLXN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgIGBdO291dGxldDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Ij4KICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+CiAgICAgICAgPHA+Q29udGVudCB3aWxsIGFwcGVhciBoZXJlIHdoZW4gbWFya2Rvd24gaXMgcGFyc2VkLjwvcD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChvKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobyksdGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKX1hc3luYyB1cGRhdGVIdG1sVGV4dChvKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMub3V0bGV0fHwodGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKSksdGhpcy5vdXRsZXQuaW5uZXJIVE1MPW99c3RhdGlje01RYShhLHQpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgTTdhPWcoKCk9PntfN2EoKX0pO3ZhciB6N2E9ZygoKT0+e3FydCgpfSk7dmFyIEM3YT1nKCgpPT57VnJ0KCl9KTt2YXIgVDdhPWcoKCk9PntwN2EoKTtoN2EoKTtmN2EoKTtnN2EoKTtiN2EoKTt5N2EoKTtNN2EoKTt6N2EoKTtDN2EoKX0pO3ZhciAkN2E9ZygoKT0+e30pO3ZhciBEN2E9ZygoKT0+eyQ3YSgpfSk7dmFyIEw3YT1nKCgpPT57cGUoKX0pO3ZhciBFN2E9ZygoKT0+e0w3YSgpfSk7dmFyIFA3YT1nKCgpPT57em4oKTtwdCgpO2RmYSgpO3dmYSgpO3ZtYSgpO0ZtYSgpO2Q2YSgpO2g2YSgpO1A2YSgpO0M1YSgpO1A4YSgpO3E4YSgpO3gxZSgpO0hnYSgpO3I3YSgpO1Q3YSgpO0Q3YSgpO0U3YSgpfSk7dmFyIEk3YSxBN2E9ZygoKT0+e0k3YT17bmFtZToiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIix2ZXJzaW9uOiIzLjgyLjAiLGRlc2NyaXB0aW9uOiJBIGNvbXByZWhlbnNpdmUgbGlicmFyeSB0aGF0IHByb3ZpZGVzIGR5bmFtaWMgd2ViIGNvbXBvbmVudHMgZm9yIGJ1aWxkaW5nIHNvcGhpc3RpY2F0ZWQgYW5kIG1vZGVybiB3ZWIgYXBwbGljYXRpb25zIHVzaW5nIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQuIn19KTt2YXIgZFE9e307eXQoZFEse0NhbnZhc1Bvb2w6KCk9PnN4LERlZXNBY3Rpb25iYXI6KCk9PkJtYSxEZWVzQXBwdWk6KCk9PkozYSxEZWVzQXBwdWlBY3Rpdml0eWxvZzooKT0+c2RhLERlZXNBcHB1aUJhcjooKT0+dmRhLERlZXNBcHB1aUJvdHRvbWJhcjooKT0+a2RhLERlZXNBcHB1aU1haW5jb250ZW50OigpPT5RM2EsRGVlc0FwcHVpTWFpbm1lbnU6KCk9PlUzYSxEZWVzQXBwdWlQcm9maWxlRHJvcGRvd246KCk9PmJkYSxEZWVzQXBwdWlTZWNvbmRhcnltZW51OigpPT5LM2EsRGVlc0FwcHVpVGFiczooKT0+WDNhLERlZXNBdWRpb1ZpZXdlcjooKT0+STVhLERlZXNCYWRnZTooKT0+VW1hLERlZXNCdXR0b246KCk9PkYzYSxEZWVzQnV0dG9uRXhpdDooKT0+aGZhLERlZXNCdXR0b25Hcm91cDooKT0+dmZhLERlZXNDaGFydEFyZWE6KCk9PlRmYSxEZWVzQ2hhcnRCYXI6KCk9PkhmYSxEZWVzQ2hhcnREb251dDooKT0+WWZhLERlZXNDaGFydEdhdWdlOigpPT5zbWEsRGVlc0NoYXJ0TG9nOigpPT5ubWEsRGVlc0NoYXJ0UmFkYXI6KCk9PmdtYSxEZWVzQ2hpcHM6KCk9Pk42YSxEZWVzQ29udGV4dG1lbnU6KCk9PmthLERlZXNEYXNoYm9hcmRncmlkOigpPT50NWEsRGVlc0RhdGF2aWV3Q29kZWJveDooKT0+d21hLERlZXNEYXRhdmlld1N0YXR1c29iamVjdDooKT0+em1hLERlZXNGb3JtOigpPT5OM2EsRGVlc0Zvcm1TdWJtaXQ6KCk9PnZuZSxEZWVzRm9ybWF0dGluZ01lbnU6KCk9PkFuZSxEZWVzSGVhZGluZzooKT0+bjVhLERlZXNIaW50OigpPT5YbWEsRGVlc0ljb246KCk9PlgyYSxEZWVzSW1hZ2VWaWV3ZXI6KCk9PkQ1YSxEZWVzSW5wdXRCYXNlOigpPT5PdCxEZWVzSW5wdXRDaGVja2JveDooKT0+cm5lLERlZXNJbnB1dENvZGU6KCk9PmRuZSxEZWVzSW5wdXREYXRlcGlja2VyOigpPT5wbmUsRGVlc0lucHV0RGF0ZXBpY2tlclBvcHVwOigpPT51bmUsRGVlc0lucHV0RHJvcGRvd246KCk9PnluZSxEZWVzSW5wdXREcm9wZG93blBvcHVwOigpPT54bmUsRGVlc0lucHV0RmlsZXVwbG9hZDooKT0+a25lLERlZXNJbnB1dEliYW46KCk9Pk1uZSxEZWVzSW5wdXRMaXN0OigpPT5FbmUsRGVlc0lucHV0TXVsdGl0b2dnbGU6KCk9PnpuZSxEZWVzSW5wdXRQaG9uZTooKT0+VG5lLERlZXNJbnB1dFByb2ZpbGVQaWN0dXJlOigpPT5FNmEsRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvcjooKT0+bW5lLERlZXNJbnB1dFJhZGlvZ3JvdXA6KCk9PmduZSxEZWVzSW5wdXRSaWNodGV4dDooKT0+WWNlLERlZXNJbnB1dFRhZ3M6KCk9PkxuZSxEZWVzSW5wdXRUZXh0OigpPT5mbmUsRGVlc0lucHV0VG9nZ2xlOigpPT4kbmUsRGVlc0lucHV0VHlwZWxpc3Q6KCk9PkRuZSxEZWVzSW5wdXRXeXNpd3lnOigpPT5IWCxEZWVzTGFiZWw6KCk9PkJkYSxEZWVzTW9iaWxlbmF2aWdhdGlvbjooKT0+bmZhLERlZXNNb2RhbDooKT0+UWEsRGVlc1BhZ2luYXRpb246KCk9Pmg1YSxEZWVzUGFuZWw6KCk9PkNkYSxEZWVzUGRmVmlld2VyOigpPT5WNWEsRGVlc1ByZXZpZXc6KCk9Pks1YSxEZWVzUHJvZ3Jlc3NiYXI6KCk9PmE2YSxEZWVzU2VhcmNoYmFyOigpPT5XZ2EsRGVlc1NldHRpbmdzOigpPT54NWEsRGVlc1Nob3BwaW5nUHJvZHVjdGNhcmQ6KCk9PlFkYSxEZWVzU2ltcGxlQXBwRGFzaDooKT0+RWdhLERlZXNTaW1wbGVMb2dpbjooKT0+T2dhLERlZXNTbGFzaE1lbnU6KCk9PlBuZSxEZWVzU3BlZWNoYnViYmxlOigpPT5POGEsRGVlc1NwaW5uZXI6KCk9Pmk2YSxEZWVzU3RhdHNHcmlkOigpPT5CM2EsRGVlc1N0ZXBwZXI6KCk9PmF4LERlZXNTdG9yYWdlQnJvd3NlcjooKT0+Tm1hLERlZXNTdG9yYWdlQ29sdW1uczooKT0+UG1hLERlZXNTdG9yYWdlS2V5czooKT0+SW1hLERlZXNTdG9yYWdlUHJldmlldzooKT0+QW1hLERlZXNUYWJsZTooKT0+WGNlLERlZXNUaGVtZTooKT0+WGdhLERlZXNUaHVtYm5haWxBdWRpbzooKT0+ZjhhLERlZXNUaHVtYm5haWxCYXNlOigpPT5IbixEZWVzVGh1bWJuYWlsRm9sZGVyOigpPT5EOGEsRGVlc1RodW1ibmFpbEltYWdlOigpPT5jOGEsRGVlc1RodW1ibmFpbE5vdGU6KCk9Pl84YSxEZWVzVGh1bWJuYWlsUGRmOigpPT5pOGEsRGVlc1RodW1ibmFpbFZpZGVvOigpPT54OGEsRGVlc1RpbGU6KCk9PlJkYSxEZWVzVG9hc3Q6KCk9Pm1zLERlZXNVcGRhdGVyOigpPT55MWUsRGVlc1ZpZGVvVmlld2VyOigpPT5PNWEsRGVlc1dpbmRvd0NvbnRyb2xzOigpPT5nZGEsRGVlc1dpbmRvd0xheWVyOigpPT5obyxEZWVzV29ya3NwYWNlOigpPT5kN2EsRGVlc1dvcmtzcGFjZUJvdHRvbWJhcjooKT0+bDdhLERlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yOigpPT5jN2EsRGVlc1dvcmtzcGFjZUZpbGV0cmVlOigpPT5vN2EsRGVlc1dvcmtzcGFjZU1hcmtkb3duOigpPT52N2EsRGVlc1dvcmtzcGFjZU1hcmtkb3dub3V0bGV0OigpPT5TN2EsRGVlc1dvcmtzcGFjZU1vbmFjbzooKT0+SGRhLERlZXNXb3Jrc3BhY2VUZXJtaW5hbDooKT0+SXJ0LERlZXNXb3Jrc3BhY2VUZXJtaW5hbFByZXZpZXc6KCk9Pm43YSxEZWVzV3lzaXd5Z0Jsb2NrOigpPT5tM2EsUFJPR1JBTU1JTkdfTEFOR1VBR0VTOigpPT5MWixQZGZNYW5hZ2VyOigpPT5HZCxQZXJmb3JtYW5jZU1vbml0b3I6KCk9Pml4LFRlcm1pbmFsVGFiTWFuYWdlcjooKT0+clEsVHlwZVNjcmlwdEludGVsbGlTZW5zZU1hbmFnZXI6KCk9PmxRLFZpZXdSZWdpc3RyeTooKT0+cVgsV2ViQ29udGFpbmVyRW52aXJvbm1lbnQ6KCk9PlRnLFd5c2l3eWdCbG9ja09wZXJhdGlvbnM6KCk9PkVaLFd5c2l3eWdCbG9ja3M6KCk9PkNvLFd5c2l3eWdDb252ZXJ0ZXJzOigpPT5SYyxXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyOigpPT5PWCxXeXNpd3lnRm9ybWF0dGluZzooKT0+c3UsV3lzaXd5Z0hpc3Rvcnk6KCk9PkZYLFd5c2l3eWdJbnB1dEhhbmRsZXI6KCk9Pk5YLFd5c2l3eWdLZXlib2FyZEhhbmRsZXI6KCk9PlJYLFd5c2l3eWdNb2RhbE1hbmFnZXI6KCk9PkFYLFd5c2l3eWdTZWxlY3Rpb246KCk9PlN0LFd5c2l3eWdTaG9ydGN1dHM6KCk9PmNyLFpJbmRleFJlZ2lzdHJ5OigpPT5JcmUsY29sb3JzOigpPT5udixjb21taXRpbmZvOigpPT5JN2EsY29tcG9uZW50WkluZGV4OigpPT5OcWEsZGVib3VuY2U6KCk9PllYYSxmb3JtYXRDb3VudDooKT0+RW1hLGZvcm1hdEZpbGVTaXplOigpPT5ycnQsZm9ybWF0U2l6ZTooKT0+UXYsZ2V0Q29udGVudFR5cGU6KCk9PldoLGdldERlZmF1bHRDb250ZW50OigpPT5leCxnZXRGaWxlTmFtZTooKT0+RmEsZ2V0UGFyZW50UHJlZml4OigpPT5sMixnZXRQYXRoU2VnbWVudHM6KCk9PnlnLGdldFpJbmRleDooKT0+QXFhLGljb25zOigpPT5hbmUsaXNJblZpZXdwb3J0OigpPT5YWGEscmVnaXN0ZXJBbGxCbG9ja0hhbmRsZXJzOigpPT5kM2EsdGhlbWVEZWZhdWx0U3R5bGVzOigpPT5IZSx0aGVtZURlZmF1bHRzOigpPT5XbCx0aHJvdHRsZTooKT0+WlhhLHRodW1ibmFpbEJhc2VTdHlsZXM6KCk9PnBuLHZhbGlkYXRlTW92ZTooKT0+SnYsd3lzaXd5Z1N0eWxlczooKT0+bnR0LHpJbmRleExheWVyczooKT0+V3IsekluZGV4UmVnaXN0cnk6KCk9PnhhfSk7dmFyIE43YT1nKCgpPT57UDdhKCk7RzEoKTtBN2EoKX0pO3ZhciBVcnQsdVEselFhLFdydD1nKCgpPT57cGUoKTtVcnQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHVRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx6UWE9KCgpPT57bGV0IHM9W25lKCJzei1yZXNvdXJjZS11c2FnZS1jYXJkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6UmVzb3VyY2VVc2FnZUNhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxVcnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJkYXRhImluIHYsImhhcyIpLGdldDppKHY9PnYuZGF0YSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmRhdGE9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLFVydCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2VDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2VydmljZUNvdW50ImluIHYsImhhcyIpLGdldDppKHY9PnYuc2VydmljZUNvdW50LCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yuc2VydmljZUNvdW50PXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxVcnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA4MDBweDsiPgogICAgICA8c3otcmVzb3VyY2UtdXNhZ2UtY2FyZAogICAgICAgIC5kYXRhPSR7e2NwdTouNSxtZW1vcnlVc2VkOiIxOTEgTUIiLG1lbW9yeVRvdGFsOiI0MjkuMiBHQiIsbmV0d29ya0luOiIzOC45IEtCL3MiLG5ldHdvcmtPdXQ6IjEuNyBLQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJ0ZXN0LW5naW54IixtZW1vcnk6IjMyLjEgTUIifSx7bmFtZToidGVzdC12MiIsbWVtb3J5OiIzMS43IE1CIn1dfX0KICAgICAgICBzZXJ2aWNlQ291bnQ9IjciCiAgICAgID48L3N6LXJlc291cmNlLXVzYWdlLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT11USh0aGlzLG8se2NwdTowLG1lbW9yeVVzZWQ6IjAgTUIiLG1lbW9yeVRvdGFsOiIwIEdCIixuZXR3b3JrSW46IjAgS0IvcyIsbmV0d29ya091dDoiMCBLQi9zIix0b3BDb25zdW1lcnM6W119KTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhKGIpe3RoaXMuI2U9Yn0jdD0odVEodGhpcyxsKSx1USh0aGlzLGQsIjAiKSk7Z2V0IHNlcnZpY2VDb3VudCgpe3JldHVybiB0aGlzLiN0fXNldCBzZXJ2aWNlQ291bnQoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXctYWxsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAudmlldy1hbGw6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAubWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubWV0cmljLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLm5ldHdvcmstcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAubmV0d29yay1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5uZXR3b3JrLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLm5ldHdvcmstaWNvbi5kb3duIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAubmV0d29yay1pY29uLnVwIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAudG9wLWNvbnN1bWVycyB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5jb25zdW1lcnMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgfQoKICAgICAgLmNvbnN1bWVycy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5jb25zdW1lci1pdGVtIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNvbnN1bWVyLW5hbWUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlJlc291cmNlIFVzYWdlPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5BZ2dyZWdhdGVkIGFjcm9zcyAke3RoaXMuc2VydmljZUNvdW50fSBzZXJ2aWNlczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YSBjbGFzcz0idmlldy1hbGwiPlZpZXcgQWxsPC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWNzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5DUFU8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEuY3B1LnRvRml4ZWQoMSl9JTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZmlsbCIgc3R5bGU9IndpZHRoOiAke01hdGgubWluKHRoaXMuZGF0YS5jcHUsMTAwKX0lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWhlYWRlciI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+TWVtb3J5PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5kYXRhLm1lbW9yeVVzZWR9IC8gJHt0aGlzLmRhdGEubWVtb3J5VG90YWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5jYWxjdWxhdGVNZW1vcnlQZXJjZW50KCl9JSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPk5ldHdvcms8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV0d29yay1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ldHdvcmstaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Im5ldHdvcmstaWNvbiBkb3duIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiA1djE0TTE5IDEybC03IDctNy03Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAke3RoaXMuZGF0YS5uZXR3b3JrSW59CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV0d29yay1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibmV0d29yay1pY29uIHVwIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxOVY1TTUgMTJsNy03IDcgNyIvPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmRhdGEubmV0d29ya091dH0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmRhdGEudG9wQ29uc3VtZXJzLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3AtY29uc3VtZXJzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc3VtZXJzLWxhYmVsIj5Ub3AgY29uc3VtZXJzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnN1bWVycy1saXN0Ij4KICAgICAgICAgICAgICAke3RoaXMuZGF0YS50b3BDb25zdW1lcnMubWFwKGI9PndgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb25zdW1lci1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29uc3VtZXItbmFtZSI+JHtiLm5hbWV9Ojwvc3Bhbj4gJHtiLm1lbW9yeX0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWNhbGN1bGF0ZU1lbW9yeVBlcmNlbnQoKXtsZXQgYj1wYXJzZUZsb2F0KHRoaXMuZGF0YS5tZW1vcnlVc2VkKSx2PXBhcnNlRmxvYXQodGhpcy5kYXRhLm1lbW9yeVRvdGFsKTtyZXR1cm4gdj09PTA/MDpNYXRoLm1pbihiL3YqMTAwLDEwMCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHVRKHRoaXMsdSl9c3RhdGlje3VRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBSN2EsR3J0LENRYSxLcnQ9ZygoKT0+e3BlKCk7UjdhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxHcnQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LENRYT0oKCk9PntsZXQgcz1bbmUoInN6LXRyYWZmaWMtY2FyZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelRyYWZmaWNDYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0sUjdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZGF0YSJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmRhdGEsImdldCIpLHNldDppKCh1LGMpPT57dS5kYXRhPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxSN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA1MDBweDsiPgogICAgICA8c3otdHJhZmZpYy1jYXJkCiAgICAgICAgLmRhdGE9JHt7cmVxdWVzdHM6MTI1MCxlcnJvcnM6MTUsZXJyb3JQZXJjZW50OjEuMixhdmdSZXNwb25zZToxNDUscmVxUGVyTWluOjIxLHN0YXR1czJ4eDo4NSxzdGF0dXMzeHg6NSxzdGF0dXM0eHg6OCxzdGF0dXM1eHg6Mn19CiAgICAgID48L3N6LXRyYWZmaWMtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCJdOyNlPUdydCh0aGlzLG8se3JlcXVlc3RzOjAsZXJyb3JzOjAsZXJyb3JQZXJjZW50OjAsYXZnUmVzcG9uc2U6MCxyZXFQZXJNaW46MCxzdGF0dXMyeHg6MCxzdGF0dXMzeHg6MCxzdGF0dXM0eHg6MCxzdGF0dXM1eHg6MH0pO2dldCBkYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGEoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLm1ldHJpY3MgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAubWV0cmljLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYXItY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuc3RhdHVzLXNlZ21lbnQgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc3RhdHVzLTJ4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLTN4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLTR4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWNjMTUiLCIjZmFjYzE1Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLTV4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWxlZ2VuZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC5sZWdlbmQtaXRlbSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBkPXRoaXMuZGF0YS5zdGF0dXMyeHgrdGhpcy5kYXRhLnN0YXR1czN4eCt0aGlzLmRhdGEuc3RhdHVzNHh4K3RoaXMuZGF0YS5zdGF0dXM1eHgsdT1kPjA/dGhpcy5kYXRhLnN0YXR1czJ4eC9kKjEwMDowLGM9ZD4wP3RoaXMuZGF0YS5zdGF0dXMzeHgvZCoxMDA6MCxiPWQ+MD90aGlzLmRhdGEuc3RhdHVzNHh4L2QqMTAwOjAsdj1kPjA/dGhpcy5kYXRhLnN0YXR1czV4eC9kKjEwMDowO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlRyYWZmaWMgKExhc3QgSG91cik8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5SZXF1ZXN0IG1ldHJpY3MgZnJvbSBhY2Nlc3MgbG9nczwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWNzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPlJlcXVlc3RzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZm9ybWF0TnVtYmVyKHRoaXMuZGF0YS5yZXF1ZXN0cyl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5FcnJvcnM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5kYXRhLmVycm9yc30gKCR7dGhpcy5kYXRhLmVycm9yUGVyY2VudH0lKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+QXZnIFJlc3BvbnNlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZGF0YS5hdmdSZXNwb25zZX1tczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+UmVxL21pbjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEucmVxUGVyTWlufTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtYmFyLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLXNlZ21lbnQgc3RhdHVzLTJ4eCIgc3R5bGU9IndpZHRoOiAke3V9JSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1zZWdtZW50IHN0YXR1cy0zeHgiIHN0eWxlPSJ3aWR0aDogJHtjfSUiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtc2VnbWVudCBzdGF0dXMtNHh4IiBzdHlsZT0id2lkdGg6ICR7Yn0lIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLXNlZ21lbnQgc3RhdHVzLTV4eCIgc3R5bGU9IndpZHRoOiAke3Z9JSI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1sZWdlbmQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjJ4eDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxlZ2VuZC1pdGVtIj4zeHg8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmQtaXRlbSI+NHh4PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjV4eDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zm9ybWF0TnVtYmVyKGQpe3JldHVybiBkPj0xZTY/KGQvMWU2KS50b0ZpeGVkKDEpKyJNIjpkPj0xZTM/KGQvMWUzKS50b0ZpeGVkKDEpKyJLIjpkLnRvU3RyaW5nKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEdydCh0aGlzLGwpfXN0YXRpY3tHcnQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIE83YSxZcnQsVFFhLFpydD1nKCgpPT57cGUoKTtPN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFlydD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVFFhPSgoKT0+e2xldCBzPVtuZSgic3otcGxhdGZvcm0tc2VydmljZXMtY2FyZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelBsYXRmb3JtU2VydmljZXNDYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxPN2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ic2VydmljZXMiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5zZXJ2aWNlcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnNlcnZpY2VzPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxPN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA1MDBweDsiPgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgIC5zZXJ2aWNlcz0ke1t7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiIxIERCIixydW5uaW5nOiEwfSx7bmFtZToiUzMgU3RvcmFnZSAoTWluSU8pIixzdGF0dXM6IjEgYnVja2V0IixydW5uaW5nOiEwfSx7bmFtZToiU21hcnRQcm94eSBSZXZlcnNlIFByb3h5IixzdGF0dXM6IlJ1bm5pbmciLHJ1bm5pbmc6ITB9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9XX0KICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlBsYXRmb3JtIl07I2U9WXJ0KHRoaXMsbyxbXSk7Z2V0IHNlcnZpY2VzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlcnZpY2VzKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VydmljZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWl0ZW06aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAke2guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC40KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90LnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2Utc3RhdHVzIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UGxhdGZvcm0gU2VydmljZXM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5JbmZyYXN0cnVjdHVyZSBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZXMtbGlzdCI+CiAgICAgICAgICAke3RoaXMuc2VydmljZXMubWFwKGQ9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZXJ2aWNlQ2xpY2soZCl9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWRvdCAke2QucnVubmluZz8icnVubmluZyI6InN0b3BwZWQifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZXJ2aWNlLW5hbWUiPiR7ZC5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlcnZpY2Utc3RhdHVzIj4ke2Quc3RhdHVzfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTZXJ2aWNlQ2xpY2soZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1jbGljayIse2RldGFpbDpkLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFlydCh0aGlzLGwpfXN0YXRpY3tZcnQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGsxZSxFZywkUWEsWHJ0PWcoKCk9PntwZSgpO2sxZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRWc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LCRRYT0oKCk9PntsZXQgcz1bbmUoInN6LWNlcnRpZmljYXRlcy1jYXJkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6Q2VydGlmaWNhdGVzQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6TnVtYmVyfSldLHA9W0woe3R5cGU6TnVtYmVyfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLGsxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZhbGlkQ291bnQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi52YWxpZENvdW50LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YudmFsaWRDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksazFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhwaXJpbmdDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iZXhwaXJpbmdDb3VudCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmV4cGlyaW5nQ291bnQsImdldCIpLHNldDppKChmLHkpPT57Zi5leHBpcmluZ0NvdW50PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxrMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleHBpcmVkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImV4cGlyZWRDb3VudCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmV4cGlyZWRDb3VudCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmV4cGlyZWRDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksazFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgIDxzei1jZXJ0aWZpY2F0ZXMtY2FyZCB2YWxpZENvdW50PSIyIj48L3N6LWNlcnRpZmljYXRlcy1jYXJkPgogICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQgdmFsaWRDb3VudD0iNSIgZXhwaXJpbmdDb3VudD0iMiI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgICAgPHN6LWNlcnRpZmljYXRlcy1jYXJkIHZhbGlkQ291bnQ9IjAiIGV4cGlyZWRDb3VudD0iMSI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1FZyh0aGlzLG8sMCk7Z2V0IHZhbGlkQ291bnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsaWRDb3VudChtKXt0aGlzLiNlPW19I3Q9KEVnKHRoaXMsbCksRWcodGhpcyxkLDApKTtnZXQgZXhwaXJpbmdDb3VudCgpe3JldHVybiB0aGlzLiN0fXNldCBleHBpcmluZ0NvdW50KG0pe3RoaXMuI3Q9bX0jYT0oRWcodGhpcyx1KSxFZyh0aGlzLGIsMCkpO2dldCBleHBpcmVkQ291bnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZXhwaXJlZENvdW50KG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLnN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuc3RhdHVzLWljb24gewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uLnZhbGlkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFjYzE1IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+Q2VydGlmaWNhdGVzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+U1NML1RMUyBjZXJ0aWZpY2F0ZSBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWxpc3QiPgogICAgICAgICAgJHt0aGlzLnZhbGlkQ291bnQ+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9InN0YXR1cy1pY29uIHZhbGlkIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjAgNiA5IDE3IDQgMTIiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij4ke3RoaXMudmFsaWRDb3VudH0gdmFsaWQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICAke3RoaXMuZXhwaXJpbmdDb3VudD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ic3RhdHVzLWljb24gd2FybmluZyIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yOSAzLjg2TDEuODIgMThhMiAyIDAgMCAwIDEuNzEgM2gxNi45NGEyIDIgMCAwIDAgMS43MS0zTDEzLjcxIDMuODZhMiAyIDAgMCAwLTMuNDIgMHoiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjkiIHgyPSIxMiIgeTI9IjEzIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyLjAxIiB5Mj0iMTciPjwvbGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXRleHQiPiR7dGhpcy5leHBpcmluZ0NvdW50fSBleHBpcmluZyBzb29uPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLmV4cGlyZWRDb3VudD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ic3RhdHVzLWljb24gZXJyb3IiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTUiIHkxPSI5IiB4Mj0iOSIgeTI9IjE1Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iOSIgeTE9IjkiIHgyPSIxNSIgeTI9IjE1Ij48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij4ke3RoaXMuZXhwaXJlZENvdW50fSBleHBpcmVkPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLnZhbGlkQ291bnQ9PT0wJiZ0aGlzLmV4cGlyaW5nQ291bnQ9PT0wJiZ0aGlzLmV4cGlyZWRDb3VudD09PTA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXRleHQiPk5vIGNlcnRpZmljYXRlczwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEVnKHRoaXMsdil9c3RhdGlje0VnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBweCxnMixEUWEsUXJ0PWcoKCk9PntwZSgpO3B4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxnMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRFFhPSgoKT0+e2xldCBzPVtuZSgic3otcmV2ZXJzZS1wcm94eS1jYXJkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6UmV2ZXJzZVByb3h5Q2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0scHgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwUG9ydCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaHR0cFBvcnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5odHRwUG9ydCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmh0dHBQb3J0PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxweCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imh0dHBzUG9ydCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaHR0cHNQb3J0ImluIF8sImhhcyIpLGdldDppKF89Pl8uaHR0cHNQb3J0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaHR0cHNQb3J0PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxweCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imh0dHBBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imh0dHBBY3RpdmUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5odHRwQWN0aXZlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaHR0cEFjdGl2ZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdikscHgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwc0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaHR0cHNBY3RpdmUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5odHRwc0FjdGl2ZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmh0dHBzQWN0aXZlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxweCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdXRlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InJvdXRlQ291bnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5yb3V0ZUNvdW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucm91dGVDb3VudD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seikscHgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA0MDBweDsiPgogICAgICA8c3otcmV2ZXJzZS1wcm94eS1jYXJkCiAgICAgICAgaHR0cFBvcnQ9IjgwODAiCiAgICAgICAgaHR0cHNQb3J0PSI4NDQzIgogICAgICAgIGh0dHBBY3RpdmUKICAgICAgICBodHRwc0FjdGl2ZQogICAgICAgIHJvdXRlQ291bnQ9IjMiCiAgICAgID48L3N6LXJldmVyc2UtcHJveHktY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1nMih0aGlzLG8sIjgwIik7Z2V0IGh0dHBQb3J0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGh0dHBQb3J0KEMpe3RoaXMuI2U9Q30jdD0oZzIodGhpcyxsKSxnMih0aGlzLGQsIjQ0MyIpKTtnZXQgaHR0cHNQb3J0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGh0dHBzUG9ydChDKXt0aGlzLiN0PUN9I2E9KGcyKHRoaXMsdSksZzIodGhpcyxiLCExKSk7Z2V0IGh0dHBBY3RpdmUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaHR0cEFjdGl2ZShDKXt0aGlzLiNhPUN9I3M9KGcyKHRoaXMsdiksZzIodGhpcyxtLCExKSk7Z2V0IGh0dHBzQWN0aXZlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGh0dHBzQWN0aXZlKEMpe3RoaXMuI3M9Q30jaT0oZzIodGhpcyxmKSxnMih0aGlzLE0sIjAiKSk7Z2V0IHJvdXRlQ291bnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcm91dGVDb3VudChDKXt0aGlzLiNpPUN9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuaXRlbS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5pdGVtLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmJhZGdlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5pbmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlJldmVyc2UgUHJveHk8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5IVFRQL0hUVFBTIHByb3h5IHN0YXR1czwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtcyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPkhUVFAgKCR7dGhpcy5odHRwUG9ydH0pPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt0aGlzLmh0dHBBY3RpdmU/ImFjdGl2ZSI6ImluYWN0aXZlIn0iPgogICAgICAgICAgICAgICR7dGhpcy5odHRwQWN0aXZlPyJBY3RpdmUiOiJJbmFjdGl2ZSJ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLWxhYmVsIj5IVFRQUyAoJHt0aGlzLmh0dHBzUG9ydH0pPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt0aGlzLmh0dHBzQWN0aXZlPyJhY3RpdmUiOiJpbmFjdGl2ZSJ9Ij4KICAgICAgICAgICAgICAke3RoaXMuaHR0cHNBY3RpdmU/IkFjdGl2ZSI6IkluYWN0aXZlIn0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPlJvdXRlczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdmFsdWUiPiR7dGhpcy5yb3V0ZUNvdW50fTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGcyKHRoaXMseil9c3RhdGlje2cyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBKcnQscFEsTFFhLGVvdD1nKCgpPT57cGUoKTtKcnQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHBRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxMUWE9KCgpPT57bGV0IHM9W25lKCJzei1kbnMtc3NsLWNhcmQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEbnNTc2xDYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFufSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxKcnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkbnNDb25maWd1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJkbnNDb25maWd1cmVkImluIHYsImhhcyIpLGdldDppKHY9PnYuZG5zQ29uZmlndXJlZCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmRuc0NvbmZpZ3VyZWQ9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLEpydCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjbWVDb25maWd1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJhY21lQ29uZmlndXJlZCJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmFjbWVDb25maWd1cmVkLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuYWNtZUNvbmZpZ3VyZWQ9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLEpydChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDQwMHB4OyI+CiAgICAgIDxzei1kbnMtc3NsLWNhcmQKICAgICAgICBkbnNDb25maWd1cmVkCiAgICAgICAgYWNtZUNvbmZpZ3VyZWQKICAgICAgPjwvc3otZG5zLXNzbC1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTmV0d29yayJdOyNlPXBRKHRoaXMsbywhMSk7Z2V0IGRuc0NvbmZpZ3VyZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG5zQ29uZmlndXJlZChiKXt0aGlzLiNlPWJ9I3Q9KHBRKHRoaXMsbCkscFEodGhpcyxkLCExKSk7Z2V0IGFjbWVDb25maWd1cmVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFjbWVDb25maWd1cmVkKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5pdGVtcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLml0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5pdGVtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmJhZGdlLmNvbmZpZ3VyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLm5vdC1jb25maWd1cmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+RE5TICYgU1NMPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+Q29uZmlndXJhdGlvbiBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaXRlbXMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLWxhYmVsIj5DbG91ZGZsYXJlIEROUzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7dGhpcy5kbnNDb25maWd1cmVkPyJjb25maWd1cmVkIjoibm90LWNvbmZpZ3VyZWQifSI+CiAgICAgICAgICAgICAgJHt0aGlzLmRuc0NvbmZpZ3VyZWQ/IkNvbmZpZ3VyZWQiOiJOb3QgY29uZmlndXJlZCJ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLWxhYmVsIj5BQ01FIChMZXQncyBFbmNyeXB0KTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7dGhpcy5hY21lQ29uZmlndXJlZD8iY29uZmlndXJlZCI6Im5vdC1jb25maWd1cmVkIn0iPgogICAgICAgICAgICAgICR7dGhpcy5hY21lQ29uZmlndXJlZD8iQ29uZmlndXJlZCI6Ik5vdCBjb25maWd1cmVkIn0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscFEodGhpcyx1KX1zdGF0aWN7cFEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIEY3YSx0b3QsRVFhLGFvdD1nKCgpPT57cGUoKTtGN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHRvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRVFhPSgoKT0+e2xldCBzPVtuZSgic3otcXVpY2stYWN0aW9ucy1jYXJkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6UXVpY2tBY3Rpb25zQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0sRjdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iYWN0aW9ucyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmFjdGlvbnMsImdldCIpLHNldDppKCh1LGMpPT57dS5hY3Rpb25zPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxGN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA4MDBweDsiPgogICAgICA8c3otcXVpY2stYWN0aW9ucy1jYXJkCiAgICAgICAgLmFjdGlvbnM9JHtbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoicGx1cyIscHJpbWFyeTohMH0se2xhYmVsOiJWaWV3IEFsbCBTZXJ2aWNlcyJ9LHtsYWJlbDoiUGxhdGZvcm0gU2VydmljZXMifSx7bGFiZWw6Ik1hbmFnZSBEb21haW5zIn1dfQogICAgICA+PC9zei1xdWljay1hY3Rpb25zLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT10b3QodGhpcyxvLFtdKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBhY3Rpb25zKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMzYjgyZjYiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzFkNGVkOCIsIiMyNTYzZWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlF1aWNrIEFjdGlvbnM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5Db21tb24gdGFza3MgYW5kIHNob3J0Y3V0czwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5hY3Rpb25zLm1hcChkPT53YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7ZC5wcmltYXJ5PyJwcmltYXJ5Ijoic2Vjb25kYXJ5In0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb25DbGljayhkKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2QuaWNvbj09PSJwbHVzIj93YAogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJhY3Rpb24taWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7ZC5sYWJlbH0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVBY3Rpb25DbGljayhkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpb24tY2xpY2siLHtkZXRhaWw6ZCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0b3QodGhpcyxsKX1zdGF0aWN7dG90KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBCN2Esc290LFBRYSxpb3Q9ZygoKT0+e3BlKCk7QjdhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxzb3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBRYT0oKCk9PntsZXQgcz1bbmUoInN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pTdGF0dXNHcmlkQ2x1c3RlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLEI3YSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJzdGF0cyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LnN0YXRzLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3Uuc3RhdHM9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEI3YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDkwMHB4OyI+CiAgICAgIDxzei1zdGF0dXMtZ3JpZC1jbHVzdGVyCiAgICAgICAgLnN0YXRzPSR7e3RvdGFsU2VydmljZXM6NyxydW5uaW5nOjcsc3RvcHBlZDowLGRvY2tlclN0YXR1czoicnVubmluZyJ9fQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1jbHVzdGVyPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIEdyaWRzIl07I2U9c290KHRoaXMsbyx7dG90YWxTZXJ2aWNlczowLHJ1bm5pbmc6MCxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJzdG9wcGVkIn0pO2dldCBzdGF0cygpe3JldHVybiB0aGlzLiNlfXNldCBzdGF0cyhkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoidG90YWwiLHRpdGxlOiJUb3RhbCBTZXJ2aWNlcyIsdmFsdWU6dGhpcy5zdGF0cy50b3RhbFNlcnZpY2VzLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9LHtpZDoicnVubmluZyIsdGl0bGU6IlJ1bm5pbmciLHZhbHVlOnRoaXMuc3RhdHMucnVubmluZyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjaGVjayIsY29sb3I6IiMyMmM1NWUifSx7aWQ6InN0b3BwZWQiLHRpdGxlOiJTdG9wcGVkIix2YWx1ZTp0aGlzLnN0YXRzLnN0b3BwZWQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2lyY2xlU3RvcCIsY29sb3I6dGhpcy5zdGF0cy5zdG9wcGVkPjA/IiNmNTllMGIiOnZvaWQgMH0se2lkOiJkb2NrZXIiLHRpdGxlOiJEb2NrZXIiLHZhbHVlOnRoaXMuc3RhdHMuZG9ja2VyU3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjoiU3RvcHBlZCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmNvbnRhaW5lciIsY29sb3I6dGhpcy5zdGF0cy5kb2NrZXJTdGF0dXM9PT0icnVubmluZyI/IiMyMmM1NWUiOiIjZWY0NDQ0In1dfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnRpbGVzfQogICAgICAgIC5taW5UaWxlV2lkdGg9JHsyMDB9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksc290KHRoaXMsbCl9c3RhdGlje3NvdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgcm90LGhRLElRYSxvb3Q9ZygoKT0+e3BlKCk7V3J0KCk7WnJ0KCk7cm90PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxoUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSVFhPSgoKT0+e2xldCBzPVtuZSgic3otc3RhdHVzLWdyaWQtc2VydmljZXMiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pTdGF0dXNHcmlkU2VydmljZXMiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOkFycmF5fSldLHJvdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc291cmNlVXNhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InJlc291cmNlVXNhZ2UiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5yZXNvdXJjZVVzYWdlLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YucmVzb3VyY2VVc2FnZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCkscm90KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhdGZvcm1TZXJ2aWNlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4icGxhdGZvcm1TZXJ2aWNlcyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnBsYXRmb3JtU2VydmljZXMsImdldCIpLHNldDppKCh2LHgpPT57di5wbGF0Zm9ybVNlcnZpY2VzPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxyb3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLXNlcnZpY2VzCiAgICAgICAgLnJlc291cmNlVXNhZ2U9JHt7Y3B1OjQ1LG1lbW9yeVVzZWQ6IjQuOTYgR0IiLG1lbW9yeVRvdGFsOiI4IEdCIixuZXR3b3JrSW46IjEuMiBNQi9zIixuZXR3b3JrT3V0OiIwLjggTUIvcyIsdG9wQ29uc3VtZXJzOlt7bmFtZToiYXBpLXNlcnZpY2UiLG1lbW9yeToiNTEyIE1CIn0se25hbWU6IndlYi1mcm9udGVuZCIsbWVtb3J5OiIyNTYgTUIifSx7bmFtZToid29ya2VyIixtZW1vcnk6IjEyOCBNQiJ9XX19CiAgICAgICAgLnBsYXRmb3JtU2VydmljZXM9JHtbe25hbWU6Ik1vbmdvREIiLHN0YXR1czoiMSBEQiIscnVubmluZzohMH0se25hbWU6IlMzIFN0b3JhZ2UiLHN0YXR1czoiMSBidWNrZXQiLHJ1bm5pbmc6ITB9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6IlN0b3BwZWQiLHJ1bm5pbmc6ITF9LHtuYW1lOiJSZWRpcyBDYWNoZSIsc3RhdHVzOiJSdW5uaW5nIixydW5uaW5nOiEwfV19CiAgICAgID48L3N6LXN0YXR1cy1ncmlkLXNlcnZpY2VzPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIEdyaWRzIl07I2U9aFEodGhpcyxvLHtjcHU6MCxtZW1vcnlVc2VkOiIwIEdCIixtZW1vcnlUb3RhbDoiMCBHQiIsbmV0d29ya0luOiIwIE1CL3MiLG5ldHdvcmtPdXQ6IjAgTUIvcyIsdG9wQ29uc3VtZXJzOltdfSk7Z2V0IHJlc291cmNlVXNhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVzb3VyY2VVc2FnZShiKXt0aGlzLiNlPWJ9I3Q9KGhRKHRoaXMsbCksaFEodGhpcyxkLFtdKSk7Z2V0IHBsYXRmb3JtU2VydmljZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhdGZvcm1TZXJ2aWNlcyhiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxzei1yZXNvdXJjZS11c2FnZS1jYXJkCiAgICAgICAgICAuZGF0YT0ke3RoaXMucmVzb3VyY2VVc2FnZX0KICAgICAgICA+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkCiAgICAgICAgICAuc2VydmljZXM9JHt0aGlzLnBsYXRmb3JtU2VydmljZXN9CiAgICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxoUSh0aGlzLHUpfXN0YXRpY3toUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgUzFlLFBnLEFRYSxub3Q9ZygoKT0+e3BlKCk7S3J0KCk7UXJ0KCk7WHJ0KCk7UzFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxQZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQVFhPSgoKT0+e2xldCBzPVtuZSgic3otc3RhdHVzLWdyaWQtbmV0d29yayIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelN0YXR1c0dyaWROZXR3b3JrIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpPYmplY3R9KV0sYz1bTCh7dHlwZTpPYmplY3R9KV0sUzFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJhZmZpYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idHJhZmZpYyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnRyYWZmaWMsImdldCIpLHNldDppKChmLHkpPT57Zi50cmFmZmljPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxTMWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm94eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4icHJveHkiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5wcm94eSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnByb3h5PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxTMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZXJ0aWZpY2F0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImNlcnRpZmljYXRlcyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmNlcnRpZmljYXRlcywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmNlcnRpZmljYXRlcz15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksUzFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTQwMHB4OyI+CiAgICAgIDxzei1zdGF0dXMtZ3JpZC1uZXR3b3JrCiAgICAgICAgLnRyYWZmaWM9JHt7cmVxdWVzdHM6MTI1NDIwLGVycm9yczoxNTAsZXJyb3JQZXJjZW50Oi4xMixhdmdSZXNwb25zZTo0NSxyZXFQZXJNaW46ODQ3LHN0YXR1czJ4eDo5NS4yLHN0YXR1czN4eDoyLjEsc3RhdHVzNHh4OjIuMyxzdGF0dXM1eHg6LjR9fQogICAgICAgIC5wcm94eT0ke3todHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiEwLGh0dHBzQWN0aXZlOiEwLHJvdXRlQ291bnQ6IjEyIn19CiAgICAgICAgLmNlcnRpZmljYXRlcz0ke3t2YWxpZDo4LGV4cGlyaW5nOjIsZXhwaXJlZDowfX0KICAgICAgPjwvc3otc3RhdHVzLWdyaWQtbmV0d29yaz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCBHcmlkcyJdOyNlPVBnKHRoaXMsbyx7cmVxdWVzdHM6MCxlcnJvcnM6MCxlcnJvclBlcmNlbnQ6MCxhdmdSZXNwb25zZTowLHJlcVBlck1pbjowLHN0YXR1czJ4eDowLHN0YXR1czN4eDowLHN0YXR1czR4eDowLHN0YXR1czV4eDowfSk7Z2V0IHRyYWZmaWMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHJhZmZpYyhtKXt0aGlzLiNlPW19I3Q9KFBnKHRoaXMsbCksUGcodGhpcyxkLHtodHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiExLGh0dHBzQWN0aXZlOiExLHJvdXRlQ291bnQ6IjAifSkpO2dldCBwcm94eSgpe3JldHVybiB0aGlzLiN0fXNldCBwcm94eShtKXt0aGlzLiN0PW19I2E9KFBnKHRoaXMsdSksUGcodGhpcyxiLHt2YWxpZDowLGV4cGlyaW5nOjAsZXhwaXJlZDowfSkpO2dldCBjZXJ0aWZpY2F0ZXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY2VydGlmaWNhdGVzKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5ncmlkID4gKiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8c3otdHJhZmZpYy1jYXJkCiAgICAgICAgICAuZGF0YT0ke3RoaXMudHJhZmZpY30KICAgICAgICA+PC9zei10cmFmZmljLWNhcmQ+CiAgICAgICAgPHN6LXJldmVyc2UtcHJveHktY2FyZAogICAgICAgICAgaHR0cFBvcnQ9IiR7dGhpcy5wcm94eS5odHRwUG9ydH0iCiAgICAgICAgICBodHRwc1BvcnQ9IiR7dGhpcy5wcm94eS5odHRwc1BvcnR9IgogICAgICAgICAgP2h0dHBBY3RpdmU9JHt0aGlzLnByb3h5Lmh0dHBBY3RpdmV9CiAgICAgICAgICA/aHR0cHNBY3RpdmU9JHt0aGlzLnByb3h5Lmh0dHBzQWN0aXZlfQogICAgICAgICAgcm91dGVDb3VudD0iJHt0aGlzLnByb3h5LnJvdXRlQ291bnR9IgogICAgICAgID48L3N6LXJldmVyc2UtcHJveHktY2FyZD4KICAgICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQKICAgICAgICAgIHZhbGlkPSIke3RoaXMuY2VydGlmaWNhdGVzLnZhbGlkfSIKICAgICAgICAgIGV4cGlyaW5nPSIke3RoaXMuY2VydGlmaWNhdGVzLmV4cGlyaW5nfSIKICAgICAgICAgIGV4cGlyZWQ9IiR7dGhpcy5jZXJ0aWZpY2F0ZXMuZXhwaXJlZH0iCiAgICAgICAgPjwvc3otY2VydGlmaWNhdGVzLWNhcmQ+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUGcodGhpcyx2KX1zdGF0aWN7UGcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIF8xZSxJZyxOUWEsbG90PWcoKCk9PntwZSgpO2VvdCgpO2FvdCgpO18xZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSWc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LE5RYT0oKCk9PntsZXQgcz1bbmUoInN6LXN0YXR1cy1ncmlkLWluZnJhIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6U3RhdHVzR3JpZEluZnJhIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFufSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOkFycmF5fSldLF8xZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRuc0NvbmZpZ3VyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImRuc0NvbmZpZ3VyZWQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5kbnNDb25maWd1cmVkLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZG5zQ29uZmlndXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksXzFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNtZUNvbmZpZ3VyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImFjbWVDb25maWd1cmVkImluIGYsImhhcyIpLGdldDppKGY9PmYuYWNtZUNvbmZpZ3VyZWQsImdldCIpLHNldDppKChmLHkpPT57Zi5hY21lQ29uZmlndXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksXzFlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iYWN0aW9ucyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmFjdGlvbnMsImdldCIpLHNldDppKChmLHkpPT57Zi5hY3Rpb25zPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxfMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLWluZnJhCiAgICAgICAgZG5zQ29uZmlndXJlZAogICAgICAgIGFjbWVDb25maWd1cmVkCiAgICAgICAgLmFjdGlvbnM9JHtbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoicGx1cyIscHJpbWFyeTohMH0se2xhYmVsOiJWaWV3IEFsbCBTZXJ2aWNlcyJ9LHtsYWJlbDoiUGxhdGZvcm0gU2VydmljZXMifSx7bGFiZWw6Ik1hbmFnZSBEb21haW5zIn1dfQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCBHcmlkcyJdOyNlPUlnKHRoaXMsbywhMSk7Z2V0IGRuc0NvbmZpZ3VyZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG5zQ29uZmlndXJlZChtKXt0aGlzLiNlPW19I3Q9KElnKHRoaXMsbCksSWcodGhpcyxkLCExKSk7Z2V0IGFjbWVDb25maWd1cmVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFjbWVDb25maWd1cmVkKG0pe3RoaXMuI3Q9bX0jYT0oSWcodGhpcyx1KSxJZyh0aGlzLGIsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBhY3Rpb25zKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5ncmlkID4gKiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgICAgPHN6LWRucy1zc2wtY2FyZAogICAgICAgICAgP2Ruc0NvbmZpZ3VyZWQ9JHt0aGlzLmRuc0NvbmZpZ3VyZWR9CiAgICAgICAgICA/YWNtZUNvbmZpZ3VyZWQ9JHt0aGlzLmFjbWVDb25maWd1cmVkfQogICAgICAgID48L3N6LWRucy1zc2wtY2FyZD4KICAgICAgICA8c3otcXVpY2stYWN0aW9ucy1jYXJkCiAgICAgICAgICAuYWN0aW9ucz0ke3RoaXMuYWN0aW9uc30KICAgICAgICAgIEBhY3Rpb24tY2xpY2s9JHttPT50aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpb24tY2xpY2siLHtkZXRhaWw6bS5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0KICAgICAgICA+PC9zei1xdWljay1hY3Rpb25zLWNhcmQ+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksSWcodGhpcyx2KX1zdGF0aWN7SWcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIEg3YSxjb3QsUlFhLHE3YT1nKCgpPT57cGUoKTtpb3QoKTtvb3QoKTtub3QoKTtsb3QoKTtIN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGNvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sUlFhPSgoKT0+e2xldCBzPVtuZSgic3otZGFzaGJvYXJkLXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEYXNoYm9hcmRWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0sSDdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZGF0YSJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmRhdGEsImdldCIpLHNldDppKCh1LGMpPT57dS5kYXRhPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxIN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxNDAwcHg7Ij4KICAgICAgPHN6LWRhc2hib2FyZC12aWV3CiAgICAgICAgLmRhdGE9JHt7Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczo3LHJ1bm5pbmc6NyxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJydW5uaW5nIn0scmVzb3VyY2VVc2FnZTp7Y3B1Oi41LG1lbW9yeVVzZWQ6IjE5MSBNQiIsbWVtb3J5VG90YWw6IjQyOS4yIEdCIixuZXR3b3JrSW46IjM4LjkgS0IvcyIsbmV0d29ya091dDoiMS43IEtCL3MiLHRvcENvbnN1bWVyczpbe25hbWU6InRlc3QtbmdpbngiLG1lbW9yeToiMzIuMSBNQiJ9LHtuYW1lOiJ0ZXN0LXYyIixtZW1vcnk6IjMxLjcgTUIifV19LHBsYXRmb3JtU2VydmljZXM6W3tuYW1lOiJNb25nb0RCIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTMyBTdG9yYWdlIChNaW5JTykiLHN0YXR1czoiMSBidWNrZXQiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTbWFydFByb3h5IFJldmVyc2UgUHJveHkiLHN0YXR1czoiUnVubmluZyIscnVubmluZzohMH0se25hbWU6IkNsaWNrSG91c2UiLHN0YXR1czoiMSBEQiIscnVubmluZzohMH1dLHRyYWZmaWM6e3JlcXVlc3RzOjEyNTAsZXJyb3JzOjE1LGVycm9yUGVyY2VudDoxLjIsYXZnUmVzcG9uc2U6MTQ1LHJlcVBlck1pbjoyMSxzdGF0dXMyeHg6ODUsc3RhdHVzM3h4OjUsc3RhdHVzNHh4Ojgsc3RhdHVzNXh4OjJ9LHByb3h5OntodHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiEwLGh0dHBzQWN0aXZlOiEwLHJvdXRlQ291bnQ6IjEyIn0sY2VydGlmaWNhdGVzOnt2YWxpZDo4LGV4cGlyaW5nOjIsZXhwaXJlZDowfSxkbnNDb25maWd1cmVkOiEwLGFjbWVDb25maWd1cmVkOiEwLHF1aWNrQWN0aW9uczpbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoicGx1cyIscHJpbWFyeTohMH0se2xhYmVsOiJWaWV3IEFsbCBTZXJ2aWNlcyJ9LHtsYWJlbDoiUGxhdGZvcm0gU2VydmljZXMifSx7bGFiZWw6Ik1hbmFnZSBEb21haW5zIn1dfX0KICAgICAgPjwvc3otZGFzaGJvYXJkLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT1jb3QodGhpcyxvLHtjbHVzdGVyOnt0b3RhbFNlcnZpY2VzOjAscnVubmluZzowLHN0b3BwZWQ6MCxkb2NrZXJTdGF0dXM6InN0b3BwZWQifSxyZXNvdXJjZVVzYWdlOntjcHU6MCxtZW1vcnlVc2VkOiIwIE1CIixtZW1vcnlUb3RhbDoiMCBHQiIsbmV0d29ya0luOiIwIEtCL3MiLG5ldHdvcmtPdXQ6IjAgS0IvcyIsdG9wQ29uc3VtZXJzOltdfSxwbGF0Zm9ybVNlcnZpY2VzOltdLHRyYWZmaWM6e3JlcXVlc3RzOjAsZXJyb3JzOjAsZXJyb3JQZXJjZW50OjAsYXZnUmVzcG9uc2U6MCxyZXFQZXJNaW46MCxzdGF0dXMyeHg6MCxzdGF0dXMzeHg6MCxzdGF0dXM0eHg6MCxzdGF0dXM1eHg6MH0scHJveHk6e2h0dHBQb3J0OiI4MCIsaHR0cHNQb3J0OiI0NDMiLGh0dHBBY3RpdmU6ITEsaHR0cHNBY3RpdmU6ITEscm91dGVDb3VudDoiMCJ9LGNlcnRpZmljYXRlczp7dmFsaWQ6MCxleHBpcmluZzowLGV4cGlyZWQ6MH0sZG5zQ29uZmlndXJlZDohMSxhY21lQ29uZmlndXJlZDohMSxxdWlja0FjdGlvbnM6W119KTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZGFzaGJvYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsdXN0ZXIgT3ZlcnZpZXc8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIKICAgICAgICAgICAgLnN0YXRzPSR7dGhpcy5kYXRhLmNsdXN0ZXJ9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1jbHVzdGVyPgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TZXJ2aWNlcyAmIFJlc291cmNlczwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtc2VydmljZXMKICAgICAgICAgICAgLnJlc291cmNlVXNhZ2U9JHt0aGlzLmRhdGEucmVzb3VyY2VVc2FnZX0KICAgICAgICAgICAgLnBsYXRmb3JtU2VydmljZXM9JHt0aGlzLmRhdGEucGxhdGZvcm1TZXJ2aWNlc30KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLXNlcnZpY2VzPgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OZXR3b3JrICYgVHJhZmZpYzwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtbmV0d29yawogICAgICAgICAgICAudHJhZmZpYz0ke3RoaXMuZGF0YS50cmFmZmljfQogICAgICAgICAgICAucHJveHk9JHt0aGlzLmRhdGEucHJveHl9CiAgICAgICAgICAgIC5jZXJ0aWZpY2F0ZXM9JHt0aGlzLmRhdGEuY2VydGlmaWNhdGVzfQogICAgICAgICAgPjwvc3otc3RhdHVzLWdyaWQtbmV0d29yaz4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SW5mcmFzdHJ1Y3R1cmU8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWluZnJhCiAgICAgICAgICAgID9kbnNDb25maWd1cmVkPSR7dGhpcy5kYXRhLmRuc0NvbmZpZ3VyZWR9CiAgICAgICAgICAgID9hY21lQ29uZmlndXJlZD0ke3RoaXMuZGF0YS5hY21lQ29uZmlndXJlZH0KICAgICAgICAgICAgLmFjdGlvbnM9JHt0aGlzLmRhdGEucXVpY2tBY3Rpb25zfQogICAgICAgICAgICBAYWN0aW9uLWNsaWNrPSR7ZD0+dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOmQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksY290KHRoaXMsbCl9c3RhdGlje2NvdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgdDQsV24sT1FhLGo3YT1nKCgpPT57cGUoKTt0ND1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sV249ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LE9RYT0oKCk9PntsZXQgcz1bbmUoInN6LW5ldHdvcmstcHJveHktdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtQcm94eVZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpCb29sZWFufSldLHQ0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJveHlTdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InByb3h5U3RhdHVzImluIFMsImhhcyIpLGdldDppKFM9PlMucHJveHlTdGF0dXMsImdldCIpLHNldDppKChTLEkpPT57Uy5wcm94eVN0YXR1cz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksdDQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJyb3V0ZUNvdW50ImluIFMsImhhcyIpLGdldDppKFM9PlMucm91dGVDb3VudCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnJvdXRlQ291bnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHQ0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VydGlmaWNhdGVDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY2VydGlmaWNhdGVDb3VudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNlcnRpZmljYXRlQ291bnQsImdldCIpLHNldDppKChTLEkpPT57Uy5jZXJ0aWZpY2F0ZUNvdW50PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSx0NCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhcmdldENvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YXJnZXRDb3VudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRhcmdldENvdW50LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGFyZ2V0Q291bnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLHQ0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFyZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGFyZ2V0cyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRhcmdldHMsImdldCIpLHNldDppKChTLEkpPT57Uy50YXJnZXRzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sTSx6KSx0NCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImxvZ3MiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5sb2dzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MubG9ncz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksdDQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdHJlYW1pbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN0cmVhbWluZyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN0cmVhbWluZywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnN0cmVhbWluZz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksdDQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxNDAwcHg7Ij4KICAgICAgPHN6LW5ldHdvcmstcHJveHktdmlldwogICAgICAgIHByb3h5U3RhdHVzPSJydW5uaW5nIgogICAgICAgIHJvdXRlQ291bnQ9IjMiCiAgICAgICAgY2VydGlmaWNhdGVDb3VudD0iMiIKICAgICAgICB0YXJnZXRDb3VudD0iMTEiCiAgICAgICAgLnRhcmdldHM9JHtbe3R5cGU6InNlcnZpY2UiLG5hbWU6InRlc3QtbmdpbngiLGRvbWFpbjoiYXBwLmJsZXUuZGUiLHRhcmdldDoibG9jYWxob3N0OjgwODAiLHN0YXR1czoicnVubmluZyJ9LHt0eXBlOiJzZXJ2aWNlIixuYW1lOiJoZWxsby13b3JsZCIsZG9tYWluOiJoZWxsby50YXNrLnZjIix0YXJnZXQ6ImxvY2FsaG9zdDo4MDgxIixzdGF0dXM6InJ1bm5pbmcifSx7dHlwZToicmVnaXN0cnkiLG5hbWU6Im9uZWJveC1yZWdpc3RyeSIsZG9tYWluOm51bGwsdGFyZ2V0OiJsb2NhbGhvc3Q6NDAwMCIsc3RhdHVzOiJydW5uaW5nIn0se3R5cGU6InBsYXRmb3JtIixuYW1lOiJNb25nb0RCIixkb21haW46bnVsbCx0YXJnZXQ6ImxvY2FsaG9zdDoyNzAxNyIsc3RhdHVzOiJydW5uaW5nIn0se3R5cGU6InBsYXRmb3JtIixuYW1lOiJDbGlja0hvdXNlIixkb21haW46bnVsbCx0YXJnZXQ6ImxvY2FsaG9zdDo4MTIzIixzdGF0dXM6InJ1bm5pbmcifV19CiAgICAgICAgLmxvZ3M9JHtbe3RpbWVzdGFtcDoiMjAyNC0wMS0wMiAxMDoxNTozMiIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9hcGkvc2VydmljZXMiLHN0YXR1czoyMDAsZHVyYXRpb246NDUsaXA6IjE5Mi4xNjguMS4xMDAifSx7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMwIixtZXRob2Q6IlBPU1QiLHBhdGg6Ii9hcGkvYXV0aC9sb2dpbiIsc3RhdHVzOjIwMCxkdXJhdGlvbjoxMjAsaXA6IjE5Mi4xNjguMS4xMDEifSx7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjI4IixtZXRob2Q6IkdFVCIscGF0aDoiL3N0YXRpYy9idW5kbGUuanMiLHN0YXR1czozMDQsZHVyYXRpb246NSxpcDoiMTkyLjE2OC4xLjEwMCJ9XX0KICAgICAgPjwvc3otbmV0d29yay1wcm94eS12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTmV0d29yayJdOyNlPVduKHRoaXMsbywic3RvcHBlZCIpO2dldCBwcm94eVN0YXR1cygpe3JldHVybiB0aGlzLiNlfXNldCBwcm94eVN0YXR1cyhrKXt0aGlzLiNlPWt9I3Q9KFduKHRoaXMsbCksV24odGhpcyxkLCIwIikpO2dldCByb3V0ZUNvdW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJvdXRlQ291bnQoayl7dGhpcy4jdD1rfSNhPShXbih0aGlzLHUpLFduKHRoaXMsYiwiMCIpKTtnZXQgY2VydGlmaWNhdGVDb3VudCgpe3JldHVybiB0aGlzLiNhfXNldCBjZXJ0aWZpY2F0ZUNvdW50KGspe3RoaXMuI2E9a30jcz0oV24odGhpcyx2KSxXbih0aGlzLG0sIjAiKSk7Z2V0IHRhcmdldENvdW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRhcmdldENvdW50KGspe3RoaXMuI3M9a30jaT0oV24odGhpcyxmKSxXbih0aGlzLE0sW10pKTtnZXQgdGFyZ2V0cygpe3JldHVybiB0aGlzLiNpfXNldCB0YXJnZXRzKGspe3RoaXMuI2k9a30jcj0oV24odGhpcyx6KSxXbih0aGlzLEMsW10pKTtnZXQgbG9ncygpe3JldHVybiB0aGlzLiNyfXNldCBsb2dzKGspe3RoaXMuI3I9a30jbz0oV24odGhpcyxfKSxXbih0aGlzLCQsITEpKTtnZXQgc3RyZWFtaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IHN0cmVhbWluZyhrKXt0aGlzLiNvPWt9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAucmVmcmVzaC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZWZyZXNoLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICB9CgogICAgICAudGFibGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxLjVmciAxLjVmciAxLjVmciA4MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDEuNWZyIDEuNWZyIDEuNWZyIDgwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAudHlwZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CgogICAgICAudHlwZS1iYWRnZS5zZXJ2aWNlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC50eXBlLWJhZGdlLnJlZ2lzdHJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZThmZiIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzkzMzNlYSIsIiNhODU1ZjciKX07CiAgICAgIH0KCiAgICAgIC50eXBlLWJhZGdlLnBsYXRmb3JtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC50YXJnZXQtdmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmxvZ3MtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAubG9nLWVudHJ5IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubG9nLXRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmxvZy1tZXRob2QgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtMnh4IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAubG9nLXN0YXR1cy0zeHggewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5sb2ctc3RhdHVzLTR4eCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtNXh4IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuZW1wdHktbG9ncyB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoicHJveHktc3RhdHVzIix0aXRsZToiUHJveHkgU3RhdHVzIix2YWx1ZTp0aGlzLnByb3h5U3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjoiU3RvcHBlZCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sb3I6dGhpcy5wcm94eVN0YXR1cz09PSJydW5uaW5nIj8iIzIyYzU1ZSI6IiNlZjQ0NDQifSx7aWQ6InJvdXRlcyIsdGl0bGU6IlJvdXRlcyIsdmFsdWU6dGhpcy5yb3V0ZUNvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9LHtpZDoiY2VydGlmaWNhdGVzIix0aXRsZToiQ2VydGlmaWNhdGVzIix2YWx1ZTp0aGlzLmNlcnRpZmljYXRlQ291bnQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2hlY2sifSx7aWQ6InRhcmdldHMiLHRpdGxlOiJUYXJnZXRzIix2YWx1ZTp0aGlzLnRhcmdldENvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9XX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVmcmVzaC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlZnJlc2goKX0+UmVmcmVzaDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMudGlsZXN9CiAgICAgICAgLm1pblRpbGVXaWR0aD0kezIwMH0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPlRyYWZmaWMgVGFyZ2V0czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlNlcnZpY2VzLCByZWdpc3RyeSwgYW5kIHBsYXRmb3JtIHNlcnZpY2VzIHdpdGggdGhlaXIgcm91dGluZyBpbmZvPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPlR5cGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5OYW1lPC9zcGFuPgogICAgICAgICAgPHNwYW4+RG9tYWluPC9zcGFuPgogICAgICAgICAgPHNwYW4+VGFyZ2V0PC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy50YXJnZXRzLm1hcChrPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVUYXJnZXRDbGljayhrKX0+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLWJhZGdlICR7ay50eXBlfSI+JHtrLnR5cGV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+JHtrLm5hbWV9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4ke2suZG9tYWlufHwiLSJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0LXZhbHVlIj4ke2sudGFyZ2V0fTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke2suc3RhdHVzfSI+JHtrLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BY2Nlc3MgTG9nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlJlYWwtdGltZSBwcm94eSBhY2Nlc3MgbG9nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ3MtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5sb2dzLmxlbmd0aD4wP3RoaXMubG9ncy5tYXAoaz0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nLWVudHJ5Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9nLXRpbWVzdGFtcCI+JHtrLnRpbWVzdGFtcH08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxvZy1tZXRob2QiPiR7ay5tZXRob2R9PC9zcGFuPgogICAgICAgICAgICAgICR7ay5wYXRofQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke3RoaXMuZ2V0U3RhdHVzQ2xhc3Moay5zdGF0dXMpfSI+JHtrLnN0YXR1c308L3NwYW4+CiAgICAgICAgICAgICAgJHtrLmR1cmF0aW9ufW1zCiAgICAgICAgICAgICAgJHtrLmlwfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LWxvZ3MiPkNsaWNrICJTdHJlYW0iIHRvIHN0YXJ0IGxpdmUgYWNjZXNzIGxvZyBzdHJlYW1pbmc8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiAke3RoaXMuc3RyZWFtaW5nPyJkYW5nZXIiOiJwcmltYXJ5In0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZVN0cmVhbWluZygpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAke3RoaXMuc3RyZWFtaW5nP3dgPHJlY3QgeD0iNiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMSIvPmA6d2A8cG9seWdvbiBwb2ludHM9IjUsMyAxOSwxMiA1LDIxIi8+YH0KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICR7dGhpcy5zdHJlYW1pbmc/IlN0b3AiOiJTdHJlYW0ifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2xlYXJMb2dzKCl9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENsZWFyIGxvZ3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Z2V0U3RhdHVzQ2xhc3Moayl7cmV0dXJuIGs+PTUwMD8ibG9nLXN0YXR1cy01eHgiOms+PTQwMD8ibG9nLXN0YXR1cy00eHgiOms+PTMwMD8ibG9nLXN0YXR1cy0zeHgiOiJsb2ctc3RhdHVzLTJ4eCJ9aGFuZGxlUmVmcmVzaCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlZnJlc2giLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhcmdldENsaWNrKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhcmdldC1jbGljayIse2RldGFpbDprLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9dG9nZ2xlU3RyZWFtaW5nKCl7dGhpcy5zdHJlYW1pbmc9IXRoaXMuc3RyZWFtaW5nLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS10b2dnbGUiLHtkZXRhaWw6e3N0cmVhbWluZzp0aGlzLnN0cmVhbWluZ30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDbGVhckxvZ3MoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGVhci1sb2dzIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksV24odGhpcyxFKX1zdGF0aWN7V24oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIFY3YSxkb3QsRlFhLFU3YT1nKCgpPT57cGUoKTtWN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGRvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRlFhPSgoKT0+e2xldCBzPVtuZSgic3otbmV0d29yay1kbnMtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtEbnNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxWN2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWNvcmRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJyZWNvcmRzImluIHUsImhhcyIpLGdldDppKHU9PnUucmVjb3JkcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnJlY29yZHM9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLFY3YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEwMDBweDsiPgogICAgICA8c3otbmV0d29yay1kbnMtdmlldwogICAgICAgIC5yZWNvcmRzPSR7W3tkb21haW46InByLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIxOTUuMjAxLjk4LjIzMiJ9LHtkb21haW46Im91dGxpbmUudGFzay52YyIsdHlwZToiQSIsdmFsdWU6IjE5NS4yMDEuOTguMjMyIn0se2RvbWFpbjoibnMxLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIyMTIuOTUuOTkuMTMwIn0se2RvbWFpbjoiYmxldS5kZSIsdHlwZToiQSIsdmFsdWU6IjIxMi45NS45OS4xMzAifSx7ZG9tYWluOiJtYWlsLmJsZXUuZGUiLHR5cGU6Ik1YIix2YWx1ZToiMTAgbWFpbC5ibGV1LmRlIn1dfQogICAgICA+PC9zei1uZXR3b3JrLWRucy12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTmV0d29yayJdOyNlPWRvdCh0aGlzLG8sW10pO2dldCByZWNvcmRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlY29yZHMoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN5bmMtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc3luYy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciA4MHB4IDJmciAxMDBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDgwcHggMmZyIDEwMHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZG9tYWluIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudHlwZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC52YWx1ZSB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZGVsZXRlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kZWxldGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZGVzY3JpcHRpb24iPk1hbmFnZSBETlMgcmVjb3JkcyBzeW5jZWQgd2l0aCBDbG91ZGZsYXJlPC9zcGFuPgogICAgICAgIDxidXR0b24gY2xhc3M9InN5bmMtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTeW5jKCl9PgogICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5bTktOWE5IDkgMCAwIDAtOS05bTkgOUgzbTkgOWE5IDkgMCAwIDEtOS05bTkgOWMxLjY2IDAgMy00LjAzIDMtOXMtMS4zNC05LTMtOW0wIDE4Yy0xLjY2IDAtMy00LjAzLTMtOXMxLjM0LTkgMy05Ii8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIFN5bmMgQ2xvdWRmbGFyZQogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlR5cGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5WYWx1ZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnJlY29yZHMubGVuZ3RoPjA/dGhpcy5yZWNvcmRzLm1hcChkPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvbWFpbiI+JHtkLmRvbWFpbn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLWJhZGdlIj4ke2QudHlwZX08L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idmFsdWUiPiR7ZC52YWx1ZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlbGV0ZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZShkKX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gRE5TIHJlY29yZHMgZm91bmQ8L2Rpdj4KICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU3luYygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN5bmMiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZShkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUiLHtkZXRhaWw6ZCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxkb3QodGhpcyxsKX1zdGF0aWN7ZG90KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciB1b3QsZlEsQlFhLFc3YT1nKCgpPT57cGUoKTt1b3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGZRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxCUWE9KCgpPT57bGV0IHM9W25lKCJzei1uZXR3b3JrLWRvbWFpbnMtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtEb21haW5zVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpPYmplY3R9KV0sdW90KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tYWlucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iZG9tYWlucyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmRvbWFpbnMsImdldCIpLHNldDppKCh2LHgpPT57di5kb21haW5zPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx1b3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic3RhdHMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5zdGF0cywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnN0YXRzPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSx1b3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LW5ldHdvcmstZG9tYWlucy12aWV3CiAgICAgICAgLmRvbWFpbnM9JHtbe2RvbWFpbjoiYmxldS5kZSIscHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDoyLGNlcnRpZmljYXRlU3RhdHVzOiJ2YWxpZCIsZXhwaXJlc0luOiI1MiBkYXlzIn0se2RvbWFpbjoidGFzay52YyIscHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDoxLGNlcnRpZmljYXRlU3RhdHVzOiJ2YWxpZCIsZXhwaXJlc0luOiI1MiBkYXlzIn0se2RvbWFpbjoiZXhhbXBsZS5jb20iLHByb3ZpZGVyOiJjbG91ZGZsYXJlIixzZXJ2aWNlQ291bnQ6MCxjZXJ0aWZpY2F0ZVN0YXR1czoiZXhwaXJpbmciLGV4cGlyZXNJbjoiNyBkYXlzIn1dfQogICAgICAgIC5zdGF0cz0ke3t0b3RhbDozLHZhbGlkOjIsZXhwaXJpbmc6MSxleHBpcmVkOjB9fQogICAgICA+PC9zei1uZXR3b3JrLWRvbWFpbnMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1mUSh0aGlzLG8sW10pO2dldCBkb21haW5zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRvbWFpbnMoYil7dGhpcy4jZT1ifSN0PShmUSh0aGlzLGwpLGZRKHRoaXMsZCx7dG90YWw6MCx2YWxpZDowLGV4cGlyaW5nOjAsZXhwaXJlZDowfSkpO2dldCBzdGF0cygpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0cyhiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc3luYy1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zeW5jLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnIgODBweCAxMDBweCAxMDBweCA4MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDgwcHggMTAwcHggMTAwcHggODBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZG9tYWluLW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5wcm92aWRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXhwaXJpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5leHBpcmVkLAogICAgICAuc3RhdHVzLWJhZGdlLnBlbmRpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuZXhwaXJlcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnZpZXctYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC52aWV3LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoidG90YWwiLHRpdGxlOiJUb3RhbCBEb21haW5zIix2YWx1ZTp0aGlzLnN0YXRzLnRvdGFsLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmdsb2JlIn0se2lkOiJ2YWxpZCIsdGl0bGU6IlZhbGlkIENlcnRpZmljYXRlcyIsdmFsdWU6dGhpcy5zdGF0cy52YWxpZCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzaGllbGRDaGVjayIsY29sb3I6IiMyMmM1NWUifSx7aWQ6ImV4cGlyaW5nIix0aXRsZToiRXhwaXJpbmcgU29vbiIsdmFsdWU6dGhpcy5zdGF0cy5leHBpcmluZyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzaGllbGRBbGVydCIsY29sb3I6dGhpcy5zdGF0cy5leHBpcmluZz4wPyIjZjU5ZTBiIjp2b2lkIDB9LHtpZDoiZXhwaXJlZCIsdGl0bGU6IkV4cGlyZWQvUGVuZGluZyIsdmFsdWU6dGhpcy5zdGF0cy5leHBpcmVkLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmNpcmNsZU9mZiIsY29sb3I6dGhpcy5zdGF0cy5leHBpcmVkPjA/IiNlZjQ0NDQiOnZvaWQgMH1dfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJkZXNjcmlwdGlvbiI+TWFuYWdlIGRvbWFpbnMgYW5kIFNTTCBjZXJ0aWZpY2F0ZXM8L3NwYW4+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic3luYy1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVN5bmMoKX0+U3luYyBDbG91ZGZsYXJlPC9idXR0b24+CiAgICAgIDwvZGl2PgoKICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy50aWxlc30KICAgICAgICAubWluVGlsZVdpZHRoPSR7MjAwfQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlByb3ZpZGVyPC9zcGFuPgogICAgICAgICAgPHNwYW4+U2VydmljZXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5DZXJ0aWZpY2F0ZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkV4cGlyZXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kb21haW5zLmxlbmd0aD4wP3RoaXMuZG9tYWlucy5tYXAoYj0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb21haW4tbmFtZSI+JHtiLmRvbWFpbn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm92aWRlciI+JHtiLnByb3ZpZGVyfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+JHtiLnNlcnZpY2VDb3VudH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtiLmNlcnRpZmljYXRlU3RhdHVzfSI+JHtiLmNlcnRpZmljYXRlU3RhdHVzfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJleHBpcmVzIj4ke2IuZXhwaXJlc0lufHwiLSJ9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ2aWV3LWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVmlldyhiKX0+VmlldzwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKTp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGRvbWFpbnMgY29uZmlndXJlZDwvZGl2PgogICAgICAgIGB9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTeW5jKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic3luYyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVmlldyhiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2aWV3Iix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZlEodGhpcyx1KX1zdGF0aWN7ZlEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIHBvdCxtUSxIUWEsRzdhPWcoKCk9PntwZSgpO3BvdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbVE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEhRYT0oKCk9PntsZXQgcz1bbmUoInN6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pSZWdpc3RyeUFkdmVydGlzZW1lbnQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxwb3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InN0YXR1cyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnN0YXR1cywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnN0YXR1cz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCkscG90KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVnaXN0cnlVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InJlZ2lzdHJ5VXJsImluIHYsImhhcyIpLGdldDppKHY9PnYucmVnaXN0cnlVcmwsImdldCIpLHNldDppKCh2LHgpPT57di5yZWdpc3RyeVVybD14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSkscG90KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQKICAgICAgICBzdGF0dXM9InJ1bm5pbmciCiAgICAgICAgcmVnaXN0cnlVcmw9ImxvY2FsaG9zdDozMDAwL3YyIgogICAgICA+PC9zei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9bVEodGhpcyxvLCJzdG9wcGVkIik7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNlfXNldCBzdGF0dXMoYil7dGhpcy4jZT1ifSN0PShtUSh0aGlzLGwpLG1RKHRoaXMsZCwiIikpO2dldCByZWdpc3RyeVVybCgpe3JldHVybiB0aGlzLiN0fXNldCByZWdpc3RyeVVybChiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1pY29uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5kZWZhdWx0LWJhZGdlIHsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmNhcmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmluZm8taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaW5mby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgIH0KCiAgICAgIC5pbmZvLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLm1hbmFnZS1saW5rIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5tYW5hZ2UtbGluazpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5xdWljay1zdGFydCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQtZGVzYyB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLmNvZGUtYmxvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiIzBhMGEwYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuY29kZS1saW5lIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLmNvZGUtbGluZTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuY29kZS1jb21tZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY29kZS1jb21tYW5kIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjZTRlNGU3Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktaWNvbiI+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj4KICAgICAgICAgICAgICBSZWdpc3RyeSBBZHZlcnRpc2VtZW50CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRlZmF1bHQtYmFkZ2UiPkRlZmF1bHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkNvbnRhaW5lciByZWdpc3RyeSBmb3IgeW91ciBzZXJ2aWNlczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWdyaWQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5TdGF0dXM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc3RhdHVzfSI+JHt0aGlzLnN0YXR1cz09PSJydW5uaW5nIj8iUnVubmluZyI6IlN0b3BwZWQifTwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5SZWdpc3RyeSBVUkw8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPiR7dGhpcy5yZWdpc3RyeVVybH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5BdXRoZW50aWNhdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibWFuYWdlLWxpbmsiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1hbmFnZVRva2VucygpfT5NYW5hZ2UgVG9rZW5zPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrLXN0YXJ0LXRpdGxlIj5RdWljayBTdGFydDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydC1kZXNjIj5UbyBwdXNoIGltYWdlcyB0byB0aGUgcmVnaXN0cnksIHVzZSBhIENJIG9yIEdsb2JhbCB0b2tlbjo8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWVudCI+IyBMb2dpbiB0byB0aGUgcmVnaXN0cnk8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tYW5kIj5kb2NrZXIgbG9naW4gJHt0aGlzLnJlZ2lzdHJ5VXJsLnNwbGl0KCIvIilbMF19IC11IHJlZ2lzdHJ5IC1wIFlPVVJfVE9LRU48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tZW50Ij4jIFRhZyBhbmQgcHVzaCB5b3VyIGltYWdlPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWFuZCI+ZG9ja2VyIHRhZyBteWFwcCAke3RoaXMucmVnaXN0cnlVcmwuc3BsaXQoIi8iKVswXX0vbXlzZXJ2aWNlOmxhdGVzdDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGluZSBjb2RlLWNvbW1hbmQiPmRvY2tlciBwdXNoICR7dGhpcy5yZWdpc3RyeVVybC5zcGxpdCgiLyIpWzBdfS9teXNlcnZpY2U6bGF0ZXN0PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVNYW5hZ2VUb2tlbnMoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYW5hZ2UtdG9rZW5zIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbVEodGhpcyx1KX1zdGF0aWN7bVEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIEs3YSxob3QscVFhLFk3YT1nKCgpPT57cGUoKTtLN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGhvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scVFhPSgoKT0+e2xldCBzPVtuZSgic3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelJlZ2lzdHJ5RXh0ZXJuYWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxLN2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWdpc3RyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJyZWdpc3RyaWVzImluIHUsImhhcyIpLGdldDppKHU9PnUucmVnaXN0cmllcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnJlZ2lzdHJpZXM9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEs3YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDgwMHB4OyI+CiAgICAgIDxzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3CiAgICAgICAgLnJlZ2lzdHJpZXM9JHtbe2lkOiIxIixuYW1lOiJEb2NrZXIgSHViIix1cmw6ImRvY2tlci5pbyIsdXNlcm5hbWU6Im15dXNlciIsdHlwZToiZG9ja2VyaHViIn0se2lkOiIyIixuYW1lOiJHaXRIdWIgQ29udGFpbmVyIFJlZ2lzdHJ5Iix1cmw6ImdoY3IuaW8iLHVzZXJuYW1lOiJteW9yZyIsdHlwZToiZ2hjciJ9XX0KICAgICAgPjwvc3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkF1dGggJiBTZXR0aW5ncyJdOyNlPWhvdCh0aGlzLG8sW10pO2dldCByZWdpc3RyaWVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZ2lzdHJpZXMoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWljb24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAucmVnaXN0cnktZGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LXVybCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1pY29uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuZW1wdHktdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj5FeHRlcm5hbCBSZWdpc3RyaWVzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkFkZCBjcmVkZW50aWFscyBmb3IgcHJpdmF0ZSBEb2NrZXIgcmVnaXN0cmllczwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFkZCgpfT5BZGQgUmVnaXN0cnk8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMucmVnaXN0cmllcy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWxpc3QiPgogICAgICAgICAgJHt0aGlzLnJlZ2lzdHJpZXMubWFwKGQ9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWl0ZW0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWluZm8iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktaWNvbiI+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1uYW1lIj4ke2QubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktdXJsIj4ke2QudXJsfSAoJHtkLnVzZXJuYW1lfSk8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWFjdGlvbnMiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRWRpdChkKX0+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZShkKX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJlbXB0eS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMy4yNyA2Ljk2IDEyIDEyLjAxIDIwLjczIDYuOTYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjIyLjA4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10aXRsZSI+Tm8gZXh0ZXJuYWwgcmVnaXN0cmllczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktZGVzY3JpcHRpb24iPkFkZCBjcmVkZW50aWFscyBmb3IgRG9ja2VyIEh1YiwgR2l0SHViIENvbnRhaW5lciBSZWdpc3RyeSwgb3Igb3RoZXIgcHJpdmF0ZSByZWdpc3RyaWVzLjwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZW1wdHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBZGQoKX0+QWRkIEV4dGVybmFsIFJlZ2lzdHJ5PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CiAgICBgfWhhbmRsZUFkZCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFkZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRWRpdChkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlZGl0Iix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUoZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlIix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaG90KHRoaXMsbCl9c3RhdGlje2hvdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgWjdhLGZvdCxqUWEsWDdhPWcoKCk9PntwZSgpO1o3YT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZm90PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxqUWE9KCgpPT57bGV0IHM9W25lKCJzei1zZXJ2aWNlcy1saXN0LXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pTZXJ2aWNlc0xpc3RWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxaN2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ic2VydmljZXMiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5zZXJ2aWNlcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnNlcnZpY2VzPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxaN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2VzLWxpc3QtdmlldwogICAgICAgIC5zZXJ2aWNlcz0ke1t7bmFtZToidGVzdC1uZ2lueCIsaW1hZ2U6Im5naW54OmFscGluZSIsZG9tYWluOiJhcHAuYmxldS5kZSIsc3RhdHVzOiJydW5uaW5nIn0se25hbWU6ImhlbGxvLXdvcmxkIixpbWFnZToibG9jYWxob3N0OjMwMDAvaGVsbG8td29ybGQ6bGF0ZXN0Iixkb21haW46ImhlbGxvLnRhc2sudmMiLHN0YXR1czoicnVubmluZyJ9LHtuYW1lOiJ0ZXN0LXYyIixpbWFnZToibG9jYWxob3N0OjMwMDAvdGVzdC1yZWdpc3RyeTp2MSIsZG9tYWluOm51bGwsc3RhdHVzOiJydW5uaW5nIn0se25hbWU6ImFwaS1zZXJ2aWNlIixpbWFnZToibm9kZToxOC1hbHBpbmUiLGRvbWFpbjoiYXBpLmV4YW1wbGUuY29tIixzdGF0dXM6InN0b3BwZWQifV19CiAgICAgID48L3N6LXNlcnZpY2VzLWxpc3Qtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9Zm90KHRoaXMsbyxbXSk7Z2V0IHNlcnZpY2VzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlcnZpY2VzKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudGFibGUtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFibGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMmZyIDEuNWZyIDEwMHB4IDIwMHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjVmciAyZnIgMS41ZnIgMTAwcHggMjAwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5pbWFnZSB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5kb21haW4tbGluayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kb21haW4tbGluazpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RhcnRpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zdG9wIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNjYThhMDQiLCIjZmFjYzE1Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWY5YzMiLCJyZ2JhKDI1MCwgMjA0LCAyMSwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc3RhcnQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnJlc3RhcnQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFibGUtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+TmFtZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkltYWdlPC9zcGFuPgogICAgICAgICAgPHNwYW4+RG9tYWluPC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+QWN0aW9uczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2VydmljZXMubGVuZ3RoPjA/dGhpcy5zZXJ2aWNlcy5tYXAoZD0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZXJ2aWNlLW5hbWUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVNlcnZpY2VDbGljayhkKX0+JHtkLm5hbWV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW1hZ2UiIHRpdGxlPSIke2QuaW1hZ2V9Ij4ke2QuaW1hZ2V9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAke2QuZG9tYWluP3dgPGEgY2xhc3M9ImRvbWFpbi1saW5rIiBocmVmPSJodHRwczovLyR7ZC5kb21haW59IiB0YXJnZXQ9Il9ibGFuayI+JHtkLmRvbWFpbn08L2E+YDoiLSJ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke2Quc3RhdHVzfSI+JHtkLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgICAgICAgJHtkLnN0YXR1cz09PSJydW5uaW5nIj93YDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gc3RvcCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGQsInN0b3AiKX0+U3RvcDwvYnV0dG9uPmA6d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHN0YXJ0IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oZCwic3RhcnQiKX0+U3RhcnQ8L2J1dHRvbj5gfQogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gcmVzdGFydCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGQsInJlc3RhcnQiKX0+UmVzdGFydDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oZCwiZGVsZXRlIil9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKTp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIHNlcnZpY2VzIGRlcGxveWVkPC9kaXY+CiAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVNlcnZpY2VDbGljayhkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXJ2aWNlLWNsaWNrIix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBY3Rpb24oZCx1KXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXJ2aWNlLWFjdGlvbiIse2RldGFpbDp7c2VydmljZTpkLGFjdGlvbjp1fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmb3QodGhpcyxsKX1zdGF0aWN7Zm90KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBtb3QsZ1EsVlFhLFE3YT1nKCgpPT57cGUoKTttb3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGdRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxWUWE9KCgpPT57bGV0IHM9W25lKCJzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pTZXJ2aWNlc0JhY2t1cHNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOkFycmF5fSldLG1vdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNjaGVkdWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2NoZWR1bGVzImluIHYsImhhcyIpLGdldDppKHY9PnYuc2NoZWR1bGVzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yuc2NoZWR1bGVzPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxtb3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJiYWNrdXBzImluIHYsImhhcyIpLGdldDppKHY9PnYuYmFja3VwcywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmJhY2t1cHM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLG1vdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otc2VydmljZXMtYmFja3Vwcy12aWV3CiAgICAgICAgLnNjaGVkdWxlcz0ke1t7aWQ6IjEiLHNjb3BlOiJBbGwgU2VydmljZXMiLHJldGVudGlvbjoiRDo3LCBXOjQsIE06MTIiLHNjaGVkdWxlOiIwIDIgKiAqICoiLGxhc3RSdW46IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixuZXh0UnVuOiIxLzMvMjAyNiwgMjowMDowMCBBTSIsc3RhdHVzOiJhY3RpdmUifV19CiAgICAgICAgLmJhY2t1cHM9JHtbe2lkOiIxIixzZXJ2aWNlOiJ0ZXN0LW5naW54IixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIl19LHtpZDoiMiIsc2VydmljZToiaGVsbG8td29ybGQiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDIgQU0iLHNpemU6IjIxLjUgTUIiLGluY2x1ZGVzOlsiSW1hZ2UiXX0se2lkOiIzIixzZXJ2aWNlOiJ0ZXN0LWNoLWZpbmFsIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAwIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIiwiY2xpY2tob3VzZSJdfV19CiAgICAgID48L3N6LXNlcnZpY2VzLWJhY2t1cHMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9Z1EodGhpcyxvLFtdKTtnZXQgc2NoZWR1bGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNjaGVkdWxlcyhiKXt0aGlzLiNlPWJ9I3Q9KGdRKHRoaXMsbCksZ1EodGhpcyxkLFtdKSk7Z2V0IGJhY2t1cHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja3VwcyhiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc2NoZWR1bGVzLWhlYWRlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxLjVmciAxLjVmciA4MHB4IDEyMHB4OwogICAgICB9CgogICAgICAuYmFja3Vwcy1oZWFkZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMS41ZnIgMTAwcHggMWZyIDEyMHB4OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuc2NoZWR1bGVzLXJvdyB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxLjVmciAxLjVmciA4MHB4IDEyMHB4OwogICAgICB9CgogICAgICAuYmFja3Vwcy1yb3cgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMS41ZnIgMTAwcHggMWZyIDEyMHB4OwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmZhaWxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubWV0YS10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmluY2x1ZGVzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaW5jbHVkZS1iYWRnZSB7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAucm93LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5CYWNrdXAgU2NoZWR1bGVzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q29uZmlndXJlIGF1dG9tYXRlZCBiYWNrdXAgc2NoZWR1bGVzIGZvciB5b3VyIHNlcnZpY2VzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIHNjaGVkdWxlcy1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+U2NvcGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5SZXRlbnRpb248L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TY2hlZHVsZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkxhc3QgUnVuPC9zcGFuPgogICAgICAgICAgPHNwYW4+TmV4dCBSdW48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TdGF0dXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5zY2hlZHVsZXMubWFwKGI9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3cgc2NoZWR1bGVzLXJvdyI+CiAgICAgICAgICAgIDxzcGFuPiR7Yi5zY29wZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLXRleHQiIHRpdGxlPSJLZWVwOiAke2IucmV0ZW50aW9ufSI+JHtiLnJldGVudGlvbn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLXRleHQiPiR7Yi5zY2hlZHVsZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLXRleHQiPiR7Yi5sYXN0UnVufHwiLSJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2IubmV4dFJ1bnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke2Iuc3RhdHVzfSIgdGl0bGU9IiR7Yi5lcnJvcnx8IiJ9Ij4KICAgICAgICAgICAgICAgICR7Yi5zdGF0dXM9PT0iYWN0aXZlIj8iQWN0aXZlIjpiLnN0YXR1cz09PSJmYWlsZWQiPyJGYWlsZWQiOiJEaXNhYmxlZCJ9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyb3ctYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJSdW4gYmFja3VwIG5vdyIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUnVuTm93KGIpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBvbHlnb24gcG9pbnRzPSI1LDMgMTksMTIgNSwyMSIvPjwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iJHtiLnN0YXR1cz09PSJkaXNhYmxlZCI/IkVuYWJsZSI6IkRpc2FibGUifSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVG9nZ2xlKGIpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAke2Iuc3RhdHVzPT09ImRpc2FibGVkIj93YDxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPmA6d2A8cmVjdCB4PSI2IiB5PSI2IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+YH0KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIGRhbmdlciIgdGl0bGU9IkRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlU2NoZWR1bGUoYil9PgogICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMsNiA1LDYgMjEsNiIvPjxwYXRoIGQ9Ik0xOSw2djE0YTIsMiwwLDAsMS0yLDJIN2EyLDIsMCwwLDEtMi0yVjZtMywwVjRhMiwyLDAsMCwxLDItMmg0YTIsMiwwLDAsMSwyLDJ2MiIvPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUltcG9ydCgpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNyA4IDEyIDMgNyA4Ii8+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMyIgeDI9IjEyIiB5Mj0iMTUiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEltcG9ydCBCYWNrdXAKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlU2NoZWR1bGUoKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENyZWF0ZSBTY2hlZHVsZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BbGwgQmFja3Vwczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkJyb3dzZSBhbmQgbWFuYWdlIGFsbCBiYWNrdXBzIGFjcm9zcyBzZXJ2aWNlczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciBiYWNrdXBzLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5TZXJ2aWNlPC9zcGFuPgogICAgICAgICAgPHNwYW4+Q3JlYXRlZDwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlNpemU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5JbmNsdWRlczwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmJhY2t1cHMubWFwKGI9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3cgYmFja3Vwcy1yb3ciPgogICAgICAgICAgICA8c3Bhbj4ke2Iuc2VydmljZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLXRleHQiPiR7Yi5jcmVhdGVkQXR9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2Iuc2l6ZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmNsdWRlcy1saXN0Ij4KICAgICAgICAgICAgICAke2IuaW5jbHVkZXMubWFwKHY9PndgPHNwYW4gY2xhc3M9ImluY2x1ZGUtYmFkZ2UiPiR7dn08L3NwYW4+YCl9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJvdy1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IkRvd25sb2FkIGJhY2t1cCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRG93bmxvYWQoYil9PgogICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+CiAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjcgMTAgMTIgMTUgMTcgMTAiLz4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTUiIHgyPSIxMiIgeTI9IjMiLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIGRhbmdlciIgdGl0bGU9IkRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlQmFja3VwKGIpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWhhbmRsZUltcG9ydCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImltcG9ydCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ3JlYXRlU2NoZWR1bGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjcmVhdGUtc2NoZWR1bGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJ1bk5vdyhiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tbm93Iix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVUb2dnbGUoYil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidG9nZ2xlLXNjaGVkdWxlIix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGVTY2hlZHVsZShiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUtc2NoZWR1bGUiLHtkZXRhaWw6YixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURvd25sb2FkKGIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRvd25sb2FkIix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGVCYWNrdXAoYil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLWJhY2t1cCIse2RldGFpbDpiLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGdRKHRoaXMsdSl9c3RhdGlje2dRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBDdSxBbyxVUWEsSjdhPWcoKCk9PntwZSgpO0N1PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxBbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVVFhPSgoKT0+e2xldCBzPVtuZSgic3otc2VydmljZS1kZXRhaWwtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdO3ZhciBJPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelNlcnZpY2VEZXRhaWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFA9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpPYmplY3R9KV0sYz1bTCh7dHlwZTpBcnJheX0pXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOk9iamVjdH0pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxIPVtZKCldLEN1KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VydmljZSJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNlcnZpY2UsImdldCIpLHNldDppKChSLEspPT57Ui5zZXJ2aWNlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbyxsKSxDdSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJzdGF0cyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnN0YXRzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc3RhdHM9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLEN1KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFja3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iYmFja3VwcyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmJhY2t1cHMsImdldCIpLHNldDppKChSLEspPT57Ui5iYWNrdXBzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxDdSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+ImxvZ3MiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5sb2dzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IubG9ncz1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LG0sZiksQ3UodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdHJlYW1pbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InN0cmVhbWluZyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnN0cmVhbWluZywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnN0cmVhbWluZz1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LE0seiksQ3UodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3Jrc3BhY2VFbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4id29ya3NwYWNlRW52aXJvbm1lbnQiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui53b3Jrc3BhY2VFbnZpcm9ubWVudCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLndvcmtzcGFjZUVudmlyb25tZW50PUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxDdSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmtzcGFjZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+IndvcmtzcGFjZVBhdGgiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui53b3Jrc3BhY2VQYXRoLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iud29ya3NwYWNlUGF0aD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LCQsRSksQ3UodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY3VycmVudFZpZXciaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5jdXJyZW50VmlldywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmN1cnJlbnRWaWV3PUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sayxTKSxDdShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpQfSxudWxsLHQpLEk9YT1lLnZhbHVlLFAmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7e25hbWU6InRlc3QtbmdpbngiLHN0YXR1czoicnVubmluZyIsaW1hZ2U6Im5naW54OmFscGluZSIscG9ydDo4MCxkb21haW46ImFwcC5ibGV1LmRlIixjb250YWluZXJJZDoicGNoYmJyOWZqcjRnIixjcmVhdGVkOiIxMS8xOC8yMDI1LCAyOjA2OjU1IFBNIix1cGRhdGVkOiIxMS8yNi8yMDI1LCA0OjA1OjQ2IFBNIixyZWdpc3RyeToiRG9ja2VyIEh1YiIscmVwb3NpdG9yeToibmdpbngiLHRhZzoiYWxwaW5lIn19CiAgICAgICAgLnN0YXRzPSR7e2NwdTouNSxtZW1vcnk6IjMyLjEgTUIiLG1lbW9yeUxpbWl0OiI2MS4zIEdCIixuZXR3b3JrSW46IjYuNCBLQiIsbmV0d29ya091dDoiMjUyIEIifX0KICAgICAgICAuYmFja3Vwcz0ke1t7aWQ6IjEiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDMgQU0iLHNpemU6IjIxLjk2IE1CIix0eXBlOiJEb2NrZXIgSW1hZ2UifSx7aWQ6IjIiLGNyZWF0ZWRBdDoiMTEvMjcvMjAyNSwgMTo0MjoyNiBQTSIsc2l6ZToiNTEuNzYgTUIiLHR5cGU6IkRvY2tlciBJbWFnZSJ9XX0KICAgICAgICAubG9ncz0ke1t7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMyIixtZXNzYWdlOicxOTIuMTY4LjEuMTAwIC0gLSBbMDIvSmFuLzIwMjQ6MTA6MTU6MzIgKzAwMDBdICJHRVQgLyBIVFRQLzEuMSIgMjAwIDYxMid9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMDIgMTA6MTU6MzAiLG1lc3NhZ2U6JzE5Mi4xNjguMS4xMDAgLSAtIFswMi9KYW4vMjAyNDoxMDoxNTozMCArMDAwMF0gIkdFVCAvZmF2aWNvbi5pY28gSFRUUC8xLjEiIDQwNCAxNTMnfV19CiAgICAgID48L3N6LXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJTZXJ2aWNlcyJdOyNlPUFvKHRoaXMsbyx7bmFtZToiIixzdGF0dXM6InN0b3BwZWQiLGltYWdlOiIiLHBvcnQ6MCxkb21haW46bnVsbCxjb250YWluZXJJZDoiIixjcmVhdGVkOiIiLHVwZGF0ZWQ6IiIscmVnaXN0cnk6IiIscmVwb3NpdG9yeToiIix0YWc6IiJ9KTtnZXQgc2VydmljZSgpe3JldHVybiB0aGlzLiNlfXNldCBzZXJ2aWNlKFApe3RoaXMuI2U9UH0jdD0oQW8odGhpcyxsKSxBbyh0aGlzLGQse2NwdTowLG1lbW9yeToiMCBNQiIsbWVtb3J5TGltaXQ6IjAgR0IiLG5ldHdvcmtJbjoiMCBCIixuZXR3b3JrT3V0OiIwIEIifSkpO2dldCBzdGF0cygpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0cyhQKXt0aGlzLiN0PVB9I2E9KEFvKHRoaXMsdSksQW8odGhpcyxiLFtdKSk7Z2V0IGJhY2t1cHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYmFja3VwcyhQKXt0aGlzLiNhPVB9I3M9KEFvKHRoaXMsdiksQW8odGhpcyxtLFtdKSk7Z2V0IGxvZ3MoKXtyZXR1cm4gdGhpcy4jc31zZXQgbG9ncyhQKXt0aGlzLiNzPVB9I2k9KEFvKHRoaXMsZiksQW8odGhpcyxNLCExKSk7Z2V0IHN0cmVhbWluZygpe3JldHVybiB0aGlzLiNpfXNldCBzdHJlYW1pbmcoUCl7dGhpcy4jaT1QfSNyPShBbyh0aGlzLHopLEFvKHRoaXMsQyxudWxsKSk7Z2V0IHdvcmtzcGFjZUVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHdvcmtzcGFjZUVudmlyb25tZW50KFApe3RoaXMuI3I9UH0jbz0oQW8odGhpcyxfKSxBbyh0aGlzLCQsIi8iKSk7Z2V0IHdvcmtzcGFjZVBhdGgoKXtyZXR1cm4gdGhpcy4jb31zZXQgd29ya3NwYWNlUGF0aChQKXt0aGlzLiNvPVB9I249KEFvKHRoaXMsRSksQW8odGhpcyxrLCJkZXRhaWxzIikpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNufXNldCBjdXJyZW50VmlldyhQKXt0aGlzLiNuPVB9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuYmFjay1saW5rIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYmFjay1saW5rOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2VydmljZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnJ1bm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuc2lkZWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmNhcmQtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuY2FyZC1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmNhcmQtdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jYXJkLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY2FyZC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5kYW5nZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAuZGV0YWlsLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRldGFpbC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdmFsdWUgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdmFsdWUgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc3RhdC1pdGVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0LWxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuc3RhdC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXQtc3VidmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuYWN0aW9ucy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYmFja3VwLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAuYmFja3VwLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmJhY2t1cC1kYXRlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmJhY2t1cC1tZXRhIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmJhY2t1cC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuaWNvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFnLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIDpob3N0KC53b3Jrc3BhY2UtbW9kZSkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWJhY2stbGluayB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWJhY2stbGluazpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzkzYzVmZCIpfTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1zZXJ2aWNlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLXN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utc3RhdHVzLWJhZGdlLnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3PT09IndvcmtzcGFjZSI/dGhpcy5yZW5kZXJXb3Jrc3BhY2VWaWV3KCk6dGhpcy5yZW5kZXJEZXRhaWxzVmlldygpfXJlbmRlcldvcmtzcGFjZVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLWJhY2stbGluayIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2xvc2VXb3Jrc3BhY2UoKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEJhY2sgdG8gRGV0YWlscwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0id29ya3NwYWNlLXNlcnZpY2UtbmFtZSI+JHt0aGlzLnNlcnZpY2UubmFtZX08L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0id29ya3NwYWNlLXN0YXR1cy1iYWRnZSAke3RoaXMuc2VydmljZS5zdGF0dXN9Ij48L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy53b3Jrc3BhY2VFbnZpcm9ubWVudH0+PC9kZWVzLXdvcmtzcGFjZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRldGFpbHNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmFjay1saW5rIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVCYWNrKCl9PgogICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiI+PC9wb2x5bGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQmFjayB0byBTZXJ2aWNlcwogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaGVhZGVyIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMjRweDsiPgogICAgICAgIDxoMSBjbGFzcz0ic2VydmljZS1uYW1lIj4ke3RoaXMuc2VydmljZS5uYW1lfTwvaDE+CiAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc2VydmljZS5zdGF0dXN9Ij4ke3RoaXMuc2VydmljZS5zdGF0dXN9PC9zcGFuPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW4tY29udGVudCI+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPlNlcnZpY2UgRGV0YWlsczwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5JbWFnZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UuaW1hZ2V9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlBvcnQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLnBvcnR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuZG9tYWluP3dgPGEgaHJlZj0iaHR0cHM6Ly8ke3RoaXMuc2VydmljZS5kb21haW59IiB0YXJnZXQ9Il9ibGFuayI+JHt0aGlzLnNlcnZpY2UuZG9tYWlufTwvYT5gOiItIn0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkNvbnRhaW5lciBJRDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UuY29udGFpbmVySWR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkNyZWF0ZWQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLmNyZWF0ZWR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlVwZGF0ZWQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLnVwZGF0ZWR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVFZGl0KCl9PkVkaXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgTG9ncyJ9CiAgICAgICAgICAgIC5sb2dFbnRyaWVzPSR7dGhpcy5sb2dzLm1hcChQPT4oe3RpbWVzdGFtcDpQLnRpbWVzdGFtcD8uaW5jbHVkZXM/LigiVCIpP1AudGltZXN0YW1wOm5ldyBEYXRlKFAudGltZXN0YW1wfHxEYXRlLm5vdygpKS50b0lTT1N0cmluZygpLGxldmVsOlAubGV2ZWx8fCJpbmZvIixtZXNzYWdlOlAubWVzc2FnZX0pKX0KICAgICAgICAgICAgLmF1dG9TY3JvbGw9JHshMH0KICAgICAgICAgICAgLm1heEVudHJpZXM9JHsyZTN9CiAgICAgICAgICAgIC5zaG93TWV0cmljcz0keyEwfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5MaXZlIHN0YXRzPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0cy1ncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPkNQVTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIj4ke3RoaXMuc3RhdHMuY3B1LnRvRml4ZWQoMSl9JTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5NZW1vcnk8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+JHt0aGlzLnN0YXRzLm1lbW9yeX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1zdWJ2YWx1ZSI+b2YgJHt0aGlzLnN0YXRzLm1lbW9yeUxpbWl0fTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5OZXR3b3JrIEluPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPiR7dGhpcy5zdGF0cy5uZXR3b3JrSW59PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPk5ldHdvcmsgT3V0PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPiR7dGhpcy5zdGF0cy5uZXR3b3JrT3V0fTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5BY3Rpb25zPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtc3VidGl0bGUiPk1hbmFnZSBzZXJ2aWNlIHN0YXRlPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLWdyaWQiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2Uuc3RhdHVzPT09InJ1bm5pbmciP3dgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKCJzdG9wIil9PlN0b3AgU2VydmljZTwvYnV0dG9uPmA6d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oInN0YXJ0Iil9PlN0YXJ0IFNlcnZpY2U8L2J1dHRvbj5gfQogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKCJyZXN0YXJ0Iil9PlJlc3RhcnQgU2VydmljZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlT3BlbldvcmtzcGFjZSgpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgbWFyZ2luLXJpZ2h0OiA0cHg7Ij4KICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI0IDE3IDEwIDExIDQgNSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjIwIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIE9wZW4gV29ya3NwYWNlCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oImRlbGV0ZSIpfT5EZWxldGUgU2VydmljZTwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+SW1hZ2UgU291cmNlPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtc3VidGl0bGUiPiR7dGhpcy5zZXJ2aWNlLnJlZ2lzdHJ5PT09IkRvY2tlciBIdWIiPyJFeHRlcm5hbCBjb250YWluZXIgcmVnaXN0cnkiOiJPbmVib3ggcmVnaXN0cnkifTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5SZWdpc3RyeTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UucmVnaXN0cnl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlJlcG9zaXRvcnk8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLnJlcG9zaXRvcnl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlRhZzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+PHNwYW4gY2xhc3M9InRhZy1iYWRnZSI+JHt0aGlzLnNlcnZpY2UudGFnfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkJhY2t1cHM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+Q3JlYXRlIGFuZCBtYW5hZ2Ugc2VydmljZSBiYWNrdXBzPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtbGlzdCI+CiAgICAgICAgICAgICAgICAke3RoaXMuYmFja3Vwcy5tYXAoUD0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1pbmZvIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1kYXRlIj4ke1AuY3JlYXRlZEF0fTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLW1ldGEiPiR7UC5zaXplfSDCtyAke1AudHlwZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IkRvd25sb2FkIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEb3dubG9hZEJhY2t1cChQKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iNyAxMCAxMiAxNSAxNyAxMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE1IiB4Mj0iMTIiIHkyPSIzIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IlJlc3RvcmUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlc3RvcmVCYWNrdXAoUCl9PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxIDQgMSAxMCA3IDEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTMuNTEgMTVhOSA5IDAgMSAwIDIuMTMtOS4zNkwxIDEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IkRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlQmFja3VwKFApfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyw2IDUsNiAyMSw2Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5LDZ2MTRhMiwyLDAsMCwxLTIsMkg3YTIsMiwwLDAsMS0yLTJWNm0zLDBWNGEyLDIsMCwwLDEsMi0yaDRhMiwyLDAsMCwxLDIsMnYyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGVCYWNrdXAoKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgQ3JlYXRlIEJhY2t1cAogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQmFjaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJhY2siLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUVkaXQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlZGl0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFjdGlvbihQKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXJ2aWNlLWFjdGlvbiIse2RldGFpbDp7c2VydmljZTp0aGlzLnNlcnZpY2UsYWN0aW9uOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9dG9nZ2xlU3RyZWFtaW5nKCl7dGhpcy5zdHJlYW1pbmc9IXRoaXMuc3RyZWFtaW5nLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS10b2dnbGUiLHtkZXRhaWw6e3N0cmVhbWluZzp0aGlzLnN0cmVhbWluZ30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDbGVhckxvZ3MoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGVhci1sb2dzIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDcmVhdGVCYWNrdXAoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjcmVhdGUtYmFja3VwIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEb3dubG9hZEJhY2t1cChQKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb3dubG9hZC1iYWNrdXAiLHtkZXRhaWw6UCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlc3RvcmVCYWNrdXAoUCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVzdG9yZS1iYWNrdXAiLHtkZXRhaWw6UCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZUJhY2t1cChQKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUtYmFja3VwIix7ZGV0YWlsOlAsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVPcGVuV29ya3NwYWNlKCl7dGhpcy53b3Jrc3BhY2VFbnZpcm9ubWVudD8odGhpcy5jdXJyZW50Vmlldz0id29ya3NwYWNlIix0aGlzLmNsYXNzTGlzdC5hZGQoIndvcmtzcGFjZS1tb2RlIikpOnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcXVlc3Qtd29ya3NwYWNlIix7ZGV0YWlsOntzZXJ2aWNlOnRoaXMuc2VydmljZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDbG9zZVdvcmtzcGFjZSgpe3RoaXMuY3VycmVudFZpZXc9ImRldGFpbHMiLHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgid29ya3NwYWNlLW1vZGUiKX11cGRhdGVkKFApe3N1cGVyLnVwZGF0ZWQoUCksUC5oYXMoIndvcmtzcGFjZUVudmlyb25tZW50IikmJnRoaXMud29ya3NwYWNlRW52aXJvbm1lbnQmJnRoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlscyImJih0aGlzLmN1cnJlbnRWaWV3PSJ3b3Jrc3BhY2UiLHRoaXMuY2xhc3NMaXN0LmFkZCgid29ya3NwYWNlLW1vZGUiKSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEFvKHRoaXMsUyl9c3RhdGlje0FvKGEsdCl9fTtyZXR1cm4gST1hfSkoKX0pO3ZhciBNMWUsQWcsV1FhLGU5YT1nKCgpPT57cGUoKTtNMWU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEFnPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxXUWE9KCgpPT57bGV0IHM9W25lKCJzei1hcHAtc3RvcmUtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekFwcFN0b3JlVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bWSgpXSxjPVtZKCldLE0xZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImFwcHMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5hcHBzLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuYXBwcz15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksTTFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDYXRlZ29yeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VsZWN0ZWRDYXRlZ29yeSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnNlbGVjdGVkQ2F0ZWdvcnksImdldCIpLHNldDppKChmLHkpPT57Zi5zZWxlY3RlZENhdGVnb3J5PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxNMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hRdWVyeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VhcmNoUXVlcnkiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZWFyY2hRdWVyeSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnNlYXJjaFF1ZXJ5PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxNMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LWFwcC1zdG9yZS12aWV3CiAgICAgICAgLmFwcHM9JHtbe2lkOiJ3b3JkcHJlc3MiLG5hbWU6IldvcmRQcmVzcyIsZGVzY3JpcHRpb246IlRoZSB3b3JsZCdzIG1vc3QgcG9wdWxhciBvcGVuLXNvdXJjZSBjb250ZW50IG1hbmFnZW1lbnQgc3lzdGVtIGZvciBidWlsZGluZyB3ZWJzaXRlcyBhbmQgYmxvZ3MuIixjYXRlZ29yeToiQ01TIixpY29uTmFtZToiZmlsZS10ZXh0IixpbWFnZToid29yZHByZXNzOmxhdGVzdCIscG9ydDo4MCxlbnZWYXJzOlt7a2V5OiJXT1JEUFJFU1NfREJfSE9TVCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IkRhdGFiYXNlIGhvc3QgYWRkcmVzcyIscmVxdWlyZWQ6ITB9LHtrZXk6IldPUkRQUkVTU19EQl9VU0VSIix2YWx1ZToid29yZHByZXNzIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgdXNlcm5hbWUiLHJlcXVpcmVkOiEwfSx7a2V5OiJXT1JEUFJFU1NfREJfUEFTU1dPUkQiLHZhbHVlOiIiLGRlc2NyaXB0aW9uOiJEYXRhYmFzZSBwYXNzd29yZCIscmVxdWlyZWQ6ITB9LHtrZXk6IldPUkRQUkVTU19EQl9OQU1FIix2YWx1ZToid29yZHByZXNzIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgbmFtZSIscmVxdWlyZWQ6ITB9XSx2b2x1bWVzOlsiL3Zhci93d3cvaHRtbCJdLGVuYWJsZU1vbmdvREI6ITEsZW5hYmxlUzM6ITF9LHtpZDoiZ2l0ZWEiLG5hbWU6IkdpdGVhIixkZXNjcmlwdGlvbjoiQSBsaWdodHdlaWdodCwgc2VsZi1ob3N0ZWQgR2l0IHNlcnZpY2UuIFBhaW5sZXNzIHNldHVwIGZvciB5b3VyIG93biBjb2RlIGhvc3RpbmcgcGxhdGZvcm0uIixjYXRlZ29yeToiRGV2ZWxvcG1lbnQiLGljb25OYW1lOiJnaXQtYnJhbmNoIixpbWFnZToiZ2l0ZWEvZ2l0ZWE6bGF0ZXN0Iixwb3J0OjNlMyxlbnZWYXJzOlt7a2V5OiJHSVRFQV9fZGF0YWJhc2VfX0RCX1RZUEUiLHZhbHVlOiJzcWxpdGUzIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgdHlwZSIscmVxdWlyZWQ6ITB9LHtrZXk6IkdJVEVBX19zZXJ2ZXJfX1JPT1RfVVJMIix2YWx1ZToiIixkZXNjcmlwdGlvbjoiUHVibGljIFVSTCBvZiB0aGUgR2l0ZWEgaW5zdGFuY2UiLHJlcXVpcmVkOiExfV0sdm9sdW1lczpbIi9kYXRhIl19LHtpZDoiZ2hvc3QiLG5hbWU6Ikdob3N0IixkZXNjcmlwdGlvbjoiQSBwb3dlcmZ1bCBvcGVuLXNvdXJjZSBwdWJsaXNoaW5nIHBsYXRmb3JtIGZvciBwcm9mZXNzaW9uYWwgYmxvZ2dlcnMgYW5kIGNvbnRlbnQgY3JlYXRvcnMuIixjYXRlZ29yeToiQ01TIixpY29uTmFtZToiYm9vay1vcGVuIixpbWFnZToiZ2hvc3Q6bGF0ZXN0Iixwb3J0OjIzNjgsZW52VmFyczpbe2tleToidXJsIix2YWx1ZToiIixkZXNjcmlwdGlvbjoiUHVibGljIFVSTCBmb3IgdGhlIEdob3N0IHNpdGUiLHJlcXVpcmVkOiEwfSx7a2V5OiJkYXRhYmFzZV9fY2xpZW50Iix2YWx1ZToic3FsaXRlMyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIGNsaWVudCB0eXBlIixyZXF1aXJlZDohMX1dLHZvbHVtZXM6WyIvdmFyL2xpYi9naG9zdC9jb250ZW50Il19LHtpZDoibmdpbngiLG5hbWU6Ik5naW54IixkZXNjcmlwdGlvbjoiSGlnaC1wZXJmb3JtYW5jZSBIVFRQIHNlcnZlciBhbmQgcmV2ZXJzZSBwcm94eSB3aXRoIGxvdyByZXNvdXJjZSBjb25zdW1wdGlvbi4iLGNhdGVnb3J5OiJXZWIgU2VydmVyIixpY29uTmFtZToiZ2xvYmUiLGltYWdlOiJuZ2lueDphbHBpbmUiLHBvcnQ6ODAsdm9sdW1lczpbIi91c3Ivc2hhcmUvbmdpbngvaHRtbCIsIi9ldGMvbmdpbngvY29uZi5kIl19LHtpZDoicmVkaXMiLG5hbWU6IlJlZGlzIixkZXNjcmlwdGlvbjoiSW4tbWVtb3J5IGRhdGEgc3RvcmUgdXNlZCBhcyBhIGRhdGFiYXNlLCBjYWNoZSwgc3RyZWFtaW5nIGVuZ2luZSwgYW5kIG1lc3NhZ2UgYnJva2VyLiIsY2F0ZWdvcnk6IkRhdGFiYXNlIixpY29uTmFtZToiZGF0YWJhc2UiLGltYWdlOiJyZWRpczphbHBpbmUiLHBvcnQ6NjM3OX0se2lkOiJwb3N0Z3JlcyIsbmFtZToiUG9zdGdyZVNRTCIsZGVzY3JpcHRpb246IkFkdmFuY2VkIG9wZW4tc291cmNlIHJlbGF0aW9uYWwgZGF0YWJhc2Ugd2l0aCBzdHJvbmcgcmVsaWFiaWxpdHkgYW5kIGZlYXR1cmUgc2V0LiIsY2F0ZWdvcnk6IkRhdGFiYXNlIixpY29uTmFtZToiZGF0YWJhc2UiLGltYWdlOiJwb3N0Z3JlczoxNi1hbHBpbmUiLHBvcnQ6NTQzMixlbnZWYXJzOlt7a2V5OiJQT1NUR1JFU19VU0VSIix2YWx1ZToicG9zdGdyZXMiLGRlc2NyaXB0aW9uOiJTdXBlcnVzZXIgdXNlcm5hbWUiLHJlcXVpcmVkOiEwfSx7a2V5OiJQT1NUR1JFU19QQVNTV09SRCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IlN1cGVydXNlciBwYXNzd29yZCIscmVxdWlyZWQ6ITB9LHtrZXk6IlBPU1RHUkVTX0RCIix2YWx1ZToicG9zdGdyZXMiLGRlc2NyaXB0aW9uOiJEZWZhdWx0IGRhdGFiYXNlIG5hbWUiLHJlcXVpcmVkOiExfV0sdm9sdW1lczpbIi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YSJdfV19CiAgICAgID48L3N6LWFwcC1zdG9yZS12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1BZyh0aGlzLG8sW10pO2dldCBhcHBzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFwcHMobSl7dGhpcy4jZT1tfSN0PShBZyh0aGlzLGwpLEFnKHRoaXMsZCwiQWxsIikpO2dldCBzZWxlY3RlZENhdGVnb3J5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkQ2F0ZWdvcnkobSl7dGhpcy4jdD1tfSNhPShBZyh0aGlzLHUpLEFnKHRoaXMsYiwiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiNhfXNldCBzZWFyY2hRdWVyeShtKXt0aGlzLiNhPW19c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlci1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LXBpbGxzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LXBpbGwgewogICAgICAgIHBhZGRpbmc6IDZweCAxNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5jYXRlZ29yeS1waWxsOmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2F0ZWdvcnktcGlsbC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICB3aWR0aDogMjQwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggOHB4IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmFwcC1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmFwcC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHsKICAgICAgICAuYXBwLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQoKICAgICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgfQoKICAgICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmFwcC1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuYXBwLWNhcmQ6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHtoLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4wNSkiLCJyZ2JhKDAsMCwwLDAuMikiKX07CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICB9CgogICAgICAuY2FyZC10b3AgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxNHB4OwogICAgICB9CgogICAgICAuYXBwLWljb24gewogICAgICAgIHdpZHRoOiA0NHB4OwogICAgICAgIGhlaWdodDogNDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmFwcC1pY29uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hcHAtaWNvbiBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLmFwcC1pY29uIC5sZXR0ZXItZmFsbGJhY2sgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5jYXJkLWluZm8gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuYXBwLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuYXBwLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjsKICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmNhcmQtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxYTFhMWUiKX07CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLmltYWdlLXRhZyB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgbWF4LXdpZHRoOiAxNjBweDsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogN3B4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDAuODU7CiAgICAgIH0KCiAgICAgIC5kZXBsb3ktYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuZGV0YWlscy1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogN3B4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlscy1idXR0b246aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICAgIHBhZGRpbmc6IDY0cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1pY29uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBtYXJnaW46IDAgYXV0byAxNnB4OwogICAgICB9CgogICAgICAuZW1wdHktdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuZW1wdHktZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtnZXQgY2F0ZWdvcmllcygpe2xldCBtPW5ldyBTZXQodGhpcy5hcHBzLm1hcChmPT5mLmNhdGVnb3J5KSk7cmV0dXJuWyJBbGwiLC4uLkFycmF5LmZyb20obSkuc29ydCgpXX1nZXQgZmlsdGVyZWRBcHBzKCl7bGV0IG09dGhpcy5hcHBzO2lmKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSE9PSJBbGwiJiYobT1tLmZpbHRlcihmPT5mLmNhdGVnb3J5PT09dGhpcy5zZWxlY3RlZENhdGVnb3J5KSksdGhpcy5zZWFyY2hRdWVyeS50cmltKCkpe2xldCBmPXRoaXMuc2VhcmNoUXVlcnkudHJpbSgpLnRvTG93ZXJDYXNlKCk7bT1tLmZpbHRlcih5PT55Lm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmKXx8eS5kZXNjcmlwdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGYpfHx5LmNhdGVnb3J5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZikpfXJldHVybiBtfXJlbmRlcigpe2xldCBtPXRoaXMuZmlsdGVyZWRBcHBzO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10aXRsZSI+QXBwIFN0b3JlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXN1YnRpdGxlIj5EZXBsb3kgcG9wdWxhciBhcHBsaWNhdGlvbnMgd2l0aCBvbmUgY2xpY2s8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXItYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yeS1waWxscyI+CiAgICAgICAgICAke3RoaXMuY2F0ZWdvcmllcy5tYXAoZj0+d2AKICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iY2F0ZWdvcnktcGlsbCAke3RoaXMuc2VsZWN0ZWRDYXRlZ29yeT09PWY/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk9Zn19CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtmfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtd3JhcHBlciI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJzZWFyY2gtaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iOCI+PC9jaXJjbGU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyMSIgeTE9IjIxIiB4Mj0iMTYuNjUiIHkyPSIxNi42NSI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9InNlYXJjaC1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBhcHBzLi4uIgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICBAaW5wdXQ9JHtmPT57dGhpcy5zZWFyY2hRdWVyeT1mLnRhcmdldC52YWx1ZX19CiAgICAgICAgICA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iYXBwLWdyaWQiPgogICAgICAgICR7bS5sZW5ndGg+MD9tLm1hcChmPT50aGlzLnJlbmRlckFwcENhcmQoZikpOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iZW1wdHktaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4Ij48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjIxIiB5MT0iMjEiIHgyPSIxNi42NSIgeTI9IjE2LjY1Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI4IiB5MT0iMTEiIHgyPSIxNCIgeTI9IjExIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXRpdGxlIj5ObyBhcHBzIGZvdW5kPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgICAgIFRyeSBhZGp1c3RpbmcgeW91ciBzZWFyY2ggb3IgZmlsdGVyIHRvIGZpbmQgd2hhdCB5b3UncmUgbG9va2luZyBmb3IuCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFwcENhcmQobSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImFwcC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLXRvcCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHAtaWNvbiI+CiAgICAgICAgICAgICR7bS5pY29uVXJsP3dgPGltZyBzcmM9IiR7bS5pY29uVXJsfSIgYWx0PSIke20ubmFtZX0iPmA6bS5pY29uTmFtZT90aGlzLnJlbmRlckljb25CeU5hbWUobS5pY29uTmFtZSk6d2A8c3BhbiBjbGFzcz0ibGV0dGVyLWZhbGxiYWNrIj4ke20ubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX08L3NwYW4+YH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXBwLW5hbWUiPiR7bS5uYW1lfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yeS1iYWRnZSI+JHttLmNhdGVnb3J5fTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwLWRlc2NyaXB0aW9uIj4ke20uZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlLXRhZyIgdGl0bGU9IiR7bS5pbWFnZX0iPiR7bS5pbWFnZX08L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXRhaWxzLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVmlld0RldGFpbHMobSl9PgogICAgICAgICAgICAgIFZpZXcgRGV0YWlscwogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGVwbG95LWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVwbG95KG0pfT4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMCAxMiAyMCAyMiA0IDIyIDQgMTIiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMjAiIGhlaWdodD0iNSI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMjIiIHgyPSIxMiIgeTI9IjciPjwvbGluZT4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiA3SDcuNWEyLjUgMi41IDAgMCAxIDAtNUMxMSAyIDEyIDcgMTIgN3oiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiA3aDQuNWEyLjUgMi41IDAgMCAwIDAtNUMxMyAyIDEyIDcgMTIgN3oiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBEZXBsb3kKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckljb25CeU5hbWUobSl7cmV0dXJueyJmaWxlLXRleHQiOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiPjwvcGF0aD48cG9seWxpbmUgcG9pbnRzPSIxNCAyIDE0IDggMjAgOCI+PC9wb2x5bGluZT48bGluZSB4MT0iMTYiIHkxPSIxMyIgeDI9IjgiIHkyPSIxMyI+PC9saW5lPjxsaW5lIHgxPSIxNiIgeTE9IjE3IiB4Mj0iOCIgeTI9IjE3Ij48L2xpbmU+PHBvbHlsaW5lIHBvaW50cz0iMTAgOSA5IDkgOCA5Ij48L3BvbHlsaW5lPjwvc3ZnPmAsImdpdC1icmFuY2giOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSI2IiB5MT0iMyIgeDI9IjYiIHkyPSIxNSI+PC9saW5lPjxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMyI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIj48L2NpcmNsZT48cGF0aCBkPSJNMTggOWE5IDkgMCAwIDEtOSA5Ij48L3BhdGg+PC9zdmc+YCwiYm9vay1vcGVuIjp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMiAzaDZhNCA0IDAgMCAxIDQgNHYxNGEzIDMgMCAwIDAtMy0zSDJ6Ij48L3BhdGg+PHBhdGggZD0iTTIyIDNoLTZhNCA0IDAgMCAwLTQgNHYxNGEzIDMgMCAwIDEgMy0zaDd6Ij48L3BhdGg+PC9zdmc+YCxnbG9iZTp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+PGxpbmUgeDE9IjIiIHkxPSIxMiIgeDI9IjIyIiB5Mj0iMTIiPjwvbGluZT48cGF0aCBkPSJNMTIgMmExNS4zIDE1LjMgMCAwIDEgNCAxMCAxNS4zIDE1LjMgMCAwIDEtNCAxMCAxNS4zIDE1LjMgMCAwIDEtNC0xMCAxNS4zIDE1LjMgMCAwIDEgNC0xMHoiPjwvcGF0aD48L3N2Zz5gLGRhdGFiYXNlOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxlbGxpcHNlIGN4PSIxMiIgY3k9IjUiIHJ4PSI5IiByeT0iMyI+PC9lbGxpcHNlPjxwYXRoIGQ9Ik0yMSAxMmMwIDEuNjYtNCAzLTkgM3MtOS0xLjM0LTktMyI+PC9wYXRoPjxwYXRoIGQ9Ik0zIDV2MTRjMCAxLjY2IDQgMyA5IDNzOS0xLjM0IDktM1Y1Ij48L3BhdGg+PC9zdmc+YCxzZXJ2ZXI6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PjxyZWN0IHg9IjIiIHk9IjE0IiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iNi4wMSIgeTI9IjYiPjwvbGluZT48bGluZSB4MT0iNiIgeTE9IjE4IiB4Mj0iNi4wMSIgeTI9IjE4Ij48L2xpbmU+PC9zdmc+YCxwYWNrYWdlOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSIxNi41IiB5MT0iOS40IiB4Mj0iNy41IiB5Mj0iNC4yMSI+PC9saW5lPjxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD48cG9seWxpbmUgcG9pbnRzPSIzLjI3IDYuOTYgMTIgMTIuMDEgMjAuNzMgNi45NiI+PC9wb2x5bGluZT48bGluZSB4MT0iMTIiIHkxPSIyMi4wOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT48L3N2Zz5gLG1haWw6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTQgNGgxNmMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJ6Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iMjIsNiAxMiwxMyAyLDYiPjwvcG9seWxpbmU+PC9zdmc+YCxzaGllbGQ6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiI+PC9wYXRoPjwvc3ZnPmAsbW9uaXRvcjp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PjxsaW5lIHgxPSI4IiB5MT0iMjEiIHgyPSIxNiIgeTI9IjIxIj48L2xpbmU+PGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIxMiIgeTI9IjIxIj48L2xpbmU+PC9zdmc+YH1bbV18fHdgPHNwYW4gY2xhc3M9ImxldHRlci1mYWxsYmFjayI+Pzwvc3Bhbj5gfWhhbmRsZVZpZXdEZXRhaWxzKG0pe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctYXBwIix7ZGV0YWlsOnthcHA6bX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZXBsb3kobSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVwbG95LWFwcCIse2RldGFpbDp7YXBwOm19LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEFnKHRoaXMsdil9c3RhdGlje0FnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBnb3QsYlEsR1FhLHQ5YT1nKCgpPT57cGUoKTtnb3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGJRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxHUWE9KCgpPT57bGV0IHM9W25lKCJzei10b2tlbnMtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelRva2Vuc1ZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6QXJyYXl9KV0sZ290KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2xvYmFsVG9rZW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJnbG9iYWxUb2tlbnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5nbG9iYWxUb2tlbnMsImdldCIpLHNldDppKCh2LHgpPT57di5nbG9iYWxUb2tlbnM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLGdvdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNpVG9rZW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjaVRva2VucyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmNpVG9rZW5zLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuY2lUb2tlbnM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGdvdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEwMDBweDsiPgogICAgICA8c3otdG9rZW5zLXZpZXcKICAgICAgICAuZ2xvYmFsVG9rZW5zPSR7W3tpZDoiMSIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OiIyMDI0LTAxLTE1IixsYXN0VXNlZDoiMjAyNC0wMS0yMCJ9LHtpZDoiMiIsbmFtZToiRGV2ZWxvcG1lbnQiLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OiIyMDI0LTAxLTEwIn1dfQogICAgICAgIC5jaVRva2Vucz0ke1t7aWQ6IjMiLG5hbWU6ImhlbGxvLXdvcmxkLWNpIix0eXBlOiJjaSIsc2VydmljZToiaGVsbG8td29ybGQiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xOCJ9LHtpZDoiNCIsbmFtZToiYXBpLXNlcnZpY2UtY2kiLHR5cGU6ImNpIixzZXJ2aWNlOiJhcGktc2VydmljZSIsY3JlYXRlZEF0OiIyMDI0LTAxLTEyIixsYXN0VXNlZDoiMjAyNC0wMS0xOSJ9XX0KICAgICAgPjwvc3otdG9rZW5zLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1iUSh0aGlzLG8sW10pO2dldCBnbG9iYWxUb2tlbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZ2xvYmFsVG9rZW5zKGIpe3RoaXMuI2U9Yn0jdD0oYlEodGhpcyxsKSxiUSh0aGlzLGQsW10pKTtnZXQgY2lUb2tlbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2lUb2tlbnMoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2tlbi1saXN0IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAudG9rZW4taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC50b2tlbi1pdGVtOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC50b2tlbi1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC50b2tlbi1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudG9rZW4tbWV0YSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50b2tlbi1zZXJ2aWNlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgfQoKICAgICAgLnRva2VuLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDMycHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+R2xvYmFsIFRva2Vuczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlRva2VucyB0aGF0IGNhbiBwdXNoIGltYWdlcyB0byBtdWx0aXBsZSBzZXJ2aWNlczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5nbG9iYWxUb2tlbnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWxpc3QiPgogICAgICAgICAgICAke3RoaXMuZ2xvYmFsVG9rZW5zLm1hcChiPT50aGlzLnJlbmRlclRva2VuKGIpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktdGV4dCI+Tm8gZ2xvYmFsIHRva2VucyBjcmVhdGVkPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgfQogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCJnbG9iYWwiKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENyZWF0ZSBUb2tlbgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DSSBUb2tlbnMgKFNlcnZpY2Utc3BlY2lmaWMpPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+VG9rZW5zIHRpZWQgdG8gaW5kaXZpZHVhbCBzZXJ2aWNlcyBmb3IgQ0kvQ0QgcGlwZWxpbmVzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmNpVG9rZW5zLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLmNpVG9rZW5zLm1hcChiPT50aGlzLnJlbmRlclRva2VuKGIpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktdGV4dCI+Tm8gQ0kgdG9rZW5zIGNyZWF0ZWQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGUoImNpIil9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDcmVhdGUgVG9rZW4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyVG9rZW4oYil7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+JHtiLm5hbWV9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1tZXRhIj4KICAgICAgICAgICAgJHtiLnNlcnZpY2U/d2A8c3BhbiBjbGFzcz0idG9rZW4tc2VydmljZSI+JHtiLnNlcnZpY2V9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgIENyZWF0ZWQgJHtiLmNyZWF0ZWRBdH0KICAgICAgICAgICAgJHtiLmxhc3RVc2VkP3dgIMK3IExhc3QgdXNlZCAke2IubGFzdFVzZWR9YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWFjdGlvbnMiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ29weShiKX0+Q29weTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVnZW5lcmF0ZShiKX0+UmVnZW5lcmF0ZTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZShiKX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVDcmVhdGUoYil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY3JlYXRlIix7ZGV0YWlsOnt0eXBlOmJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29weShiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb3B5Iix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZWdlbmVyYXRlKGIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlZ2VuZXJhdGUiLHtkZXRhaWw6YixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZShiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUiLHtkZXRhaWw6YixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxiUSh0aGlzLHUpfXN0YXRpY3tiUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgYm90LHZRLEtRYSxhOWE9ZygoKT0+e3BlKCk7Ym90PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx2UT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sS1FhPSgoKT0+e2xldCBzPVtuZSgic3otc2V0dGluZ3MtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelNldHRpbmdzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGJvdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNldHRpbmdzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJzZXR0aW5ncyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnNldHRpbmdzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yuc2V0dGluZ3M9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLGJvdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRVc2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjdXJyZW50VXNlciJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmN1cnJlbnRVc2VyLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuY3VycmVudFVzZXI9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGJvdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDgwMHB4OyI+CiAgICAgIDxzei1zZXR0aW5ncy12aWV3CiAgICAgICAgLnNldHRpbmdzPSR7e2RhcmtNb2RlOiEwLGNsb3VkZmxhcmVUb2tlbjoiIixjbG91ZGZsYXJlWm9uZUlkOiIiLGF1dG9SZW5ld0NlcnRzOiEwLHJlbmV3YWxUaHJlc2hvbGQ6MzAsYWNtZUVtYWlsOiJjZXJ0c0BleGFtcGxlLmNvbSIsaHR0cFBvcnQ6ODAsaHR0cHNQb3J0OjQ0Myxmb3JjZUh0dHBzOiEwfX0KICAgICAgICBjdXJyZW50VXNlcj0iYWRtaW4iCiAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT12USh0aGlzLG8se2RhcmtNb2RlOiExLGNsb3VkZmxhcmVUb2tlbjoiIixjbG91ZGZsYXJlWm9uZUlkOiIiLGF1dG9SZW5ld0NlcnRzOiEwLHJlbmV3YWxUaHJlc2hvbGQ6MzAsYWNtZUVtYWlsOiIiLGh0dHBQb3J0OjgwLGh0dHBzUG9ydDo0NDMsZm9yY2VIdHRwczohMH0pO2dldCBzZXR0aW5ncygpe3JldHVybiB0aGlzLiNlfXNldCBzZXR0aW5ncyhiKXt0aGlzLiNlPWJ9I3Q9KHZRKHRoaXMsbCksdlEodGhpcyxkLCIiKSk7Z2V0IGN1cnJlbnRVc2VyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1cnJlbnRVc2VyKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmZvcm0tZ3JvdXA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmZvcm0tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuZm9ybS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmlucHV0LXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0sCiAgICAgIGlucHV0W3R5cGU9InBhc3N3b3JkIl0sCiAgICAgIGlucHV0W3R5cGU9ImVtYWlsIl0sCiAgICAgIGlucHV0W3R5cGU9Im51bWJlciJdIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiA0NHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICBsZWZ0OiAycHg7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2guYWN0aXZlOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICB9CgogICAgICAucGFzc3dvcmQtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAucGFzc3dvcmQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLnBhc3N3b3JkLWZpZWxkcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmZpZWxkLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BcHBlYXJhbmNlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1sYWJlbC1ncm91cCI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0tbGFiZWwiPkRhcmsgTW9kZTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1oaW50Ij5Ub2dnbGUgZGFyayBtb2RlIG9uIG9yIG9mZjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2ggJHt0aGlzLnNldHRpbmdzLmRhcmtNb2RlPyJhY3RpdmUiOiIifSIgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlRGFya01vZGUoKX0+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsb3VkZmxhcmUgSW50ZWdyYXRpb248L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Db25maWd1cmUgQ2xvdWRmbGFyZSBBUEkgZm9yIEROUyBtYW5hZ2VtZW50PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkFQSSBUb2tlbjwvZGl2PgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IkVudGVyIENsb3VkZmxhcmUgQVBJIHRva2VuIiAudmFsdWU9JHt0aGlzLnNldHRpbmdzLmNsb3VkZmxhcmVUb2tlbn0gQGlucHV0PSR7Yj0+dGhpcy51cGRhdGVTZXR0aW5nKCJjbG91ZGZsYXJlVG9rZW4iLGIudGFyZ2V0LnZhbHVlKX0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+Wm9uZSBJRCAoT3B0aW9uYWwpPC9kaXY+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJEZWZhdWx0IHpvbmUgSUQiIC52YWx1ZT0ke3RoaXMuc2V0dGluZ3MuY2xvdWRmbGFyZVpvbmVJZH0gQGlucHV0PSR7Yj0+dGhpcy51cGRhdGVTZXR0aW5nKCJjbG91ZGZsYXJlWm9uZUlkIixiLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5HZXQgeW91ciBBUEkgdG9rZW4gZnJvbSB0aGUgQ2xvdWRmbGFyZSBkYXNoYm9hcmQgd2l0aCBETlMgZWRpdCBwZXJtaXNzaW9ucy48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U1NML1RMUyBTZXR0aW5nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkNvbmZpZ3VyZSBjZXJ0aWZpY2F0ZSBtYW5hZ2VtZW50PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1sYWJlbC1ncm91cCI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0tbGFiZWwiPkF1dG8tUmVuZXcgQ2VydGlmaWNhdGVzPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWhpbnQiPkF1dG9tYXRpY2FsbHkgcmVuZXcgY2VydGlmaWNhdGVzIGJlZm9yZSBleHBpcnk8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoICR7dGhpcy5zZXR0aW5ncy5hdXRvUmVuZXdDZXJ0cz8iYWN0aXZlIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZVNldHRpbmcoImF1dG9SZW5ld0NlcnRzIil9PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+UmVuZXdhbCBUaHJlc2hvbGQgKGRheXMpPC9kaXY+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIC52YWx1ZT0ke1N0cmluZyh0aGlzLnNldHRpbmdzLnJlbmV3YWxUaHJlc2hvbGQpfSBAaW5wdXQ9JHtiPT50aGlzLnVwZGF0ZVNldHRpbmcoInJlbmV3YWxUaHJlc2hvbGQiLHBhcnNlSW50KGIudGFyZ2V0LnZhbHVlKSl9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPlJlbmV3IGNlcnRpZmljYXRlcyB3aGVuIHRoZXkgaGF2ZSBmZXdlciB0aGFuIHRoaXMgbWFueSBkYXlzIHJlbWFpbmluZy48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5BQ01FIEVtYWlsPC9kaXY+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgcGxhY2Vob2xkZXI9ImFkbWluQGV4YW1wbGUuY29tIiAudmFsdWU9JHt0aGlzLnNldHRpbmdzLmFjbWVFbWFpbH0gQGlucHV0PSR7Yj0+dGhpcy51cGRhdGVTZXR0aW5nKCJhY21lRW1haWwiLGIudGFyZ2V0LnZhbHVlKX0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+RW1haWwgYWRkcmVzcyBmb3IgTGV0J3MgRW5jcnlwdCBub3RpZmljYXRpb25zLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OZXR3b3JrIFNldHRpbmdzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q29uZmlndXJlIG5ldHdvcmsgYW5kIHByb3h5IHNldHRpbmdzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5IVFRQIFBvcnQ8L2Rpdj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiAudmFsdWU9JHtTdHJpbmcodGhpcy5zZXR0aW5ncy5odHRwUG9ydCl9IEBpbnB1dD0ke2I9PnRoaXMudXBkYXRlU2V0dGluZygiaHR0cFBvcnQiLHBhcnNlSW50KGIudGFyZ2V0LnZhbHVlKSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkhUVFBTIFBvcnQ8L2Rpdj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiAudmFsdWU9JHtTdHJpbmcodGhpcy5zZXR0aW5ncy5odHRwc1BvcnQpfSBAaW5wdXQ9JHtiPT50aGlzLnVwZGF0ZVNldHRpbmcoImh0dHBzUG9ydCIscGFyc2VJbnQoYi50YXJnZXQudmFsdWUpKX0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbGFiZWwtZ3JvdXAiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWxhYmVsIj5Gb3JjZSBIVFRQUzwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1oaW50Ij5SZWRpcmVjdCBhbGwgSFRUUCB0cmFmZmljIHRvIEhUVFBTPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCAke3RoaXMuc2V0dGluZ3MuZm9yY2VIdHRwcz8iYWN0aXZlIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZVNldHRpbmcoImZvcmNlSHR0cHMiKX0+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPkFjY291bnQ8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5NYW5hZ2UgeW91ciBhY2NvdW50IHNldHRpbmdzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+Q3VycmVudCBVc2VyPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsiPiR7dGhpcy5jdXJyZW50VXNlcnx8IlVua25vd24ifTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXNzd29yZC1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtdGl0bGUiPkNoYW5nZSBQYXNzd29yZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXNzd29yZC1maWVsZHMiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+Q3VycmVudCBQYXNzd29yZDwvZGl2PgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iY3VycmVudFBhc3N3b3JkIj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPk5ldyBQYXNzd29yZDwvZGl2PgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0ibmV3UGFzc3dvcmQiPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+Q29uZmlybSBQYXNzd29yZDwvZGl2PgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iY29uZmlybVBhc3N3b3JkIj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDaGFuZ2VQYXNzd29yZCgpfT5VcGRhdGUgUGFzc3dvcmQ8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDEycHggMTZweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsgZm9udC1zaXplOiAxMnB4OyI+CiAgICAgICAgICBTYXZlIHlvdXIgY2hhbmdlcyBvciByZXNldCB0byBkZWZhdWx0cy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSZXNldCgpfT5SZXNldDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU2F2ZSgpfT5TYXZlIFNldHRpbmdzPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH10b2dnbGVEYXJrTW9kZSgpe3RoaXMuc2V0dGluZ3M9ey4uLnRoaXMuc2V0dGluZ3MsZGFya01vZGU6IXRoaXMuc2V0dGluZ3MuZGFya01vZGV9LHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNldHRpbmctY2hhbmdlIix7ZGV0YWlsOntrZXk6ImRhcmtNb2RlIix2YWx1ZTp0aGlzLnNldHRpbmdzLmRhcmtNb2RlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXRvZ2dsZVNldHRpbmcoYil7dGhpcy5zZXR0aW5nc1tiXT0hdGhpcy5zZXR0aW5nc1tiXSx0aGlzLnNldHRpbmdzPXsuLi50aGlzLnNldHRpbmdzfX11cGRhdGVTZXR0aW5nKGIsdil7dGhpcy5zZXR0aW5nc1tiXT12LHRoaXMuc2V0dGluZ3M9ey4uLnRoaXMuc2V0dGluZ3N9fWhhbmRsZUNoYW5nZVBhc3N3b3JkKCl7bGV0IGI9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiY3VycmVudFBhc3N3b3JkIik/LnZhbHVlLHY9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgibmV3UGFzc3dvcmQiKT8udmFsdWUseD10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJjb25maXJtUGFzc3dvcmQiKT8udmFsdWU7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlLXBhc3N3b3JkIix7ZGV0YWlsOntjdXJyZW50UGFzc3dvcmQ6YixuZXdQYXNzd29yZDp2LGNvbmZpcm1QYXNzd29yZDp4fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlc2V0KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVzZXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNhdmUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOnRoaXMuc2V0dGluZ3MsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdlEodGhpcyx1KX1zdGF0aWN7dlEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIHhRLFR1LFlRYSxzOWE9ZygoKT0+e3BlKCk7eFE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFR1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxZUWE9KCgpPT57bGV0IHM9W25lKCJzei1sb2dpbi12aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6TG9naW5WaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFufSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHhRKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibG9hZGluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmxvYWRpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5sb2FkaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSx4USh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJlcnJvciJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmVycm9yLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZXJyb3I9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLHhRKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRpdGxlImluIHosImhhcyIpLGdldDppKHo9PnoudGl0bGUsImdldCIpLHNldDppKCh6LE4pPT57ei50aXRsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdikseFEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3VidGl0bGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zdWJ0aXRsZSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnN1YnRpdGxlPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSx4UShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDYwMHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYmFja2dyb3VuZDogIzA5MDkwYjsiPgogICAgICA8c3otbG9naW4tdmlldz48L3N6LWxvZ2luLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1UdSh0aGlzLG8sITEpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxvYWRpbmcoTSl7dGhpcy4jZT1NfSN0PShUdSh0aGlzLGwpLFR1KHRoaXMsZCwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiN0fXNldCBlcnJvcihNKXt0aGlzLiN0PU19I2E9KFR1KHRoaXMsdSksVHUodGhpcyxiLCJzZXJ2ZS56b25lIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNhfXNldCB0aXRsZShNKXt0aGlzLiNhPU19I3M9KFR1KHRoaXMsdiksVHUodGhpcyxtLCJTaWduIGluIHRvIHlvdXIgb25lYm94IikpO2dldCBzdWJ0aXRsZSgpe3JldHVybiB0aGlzLiNzfXNldCBzdWJ0aXRsZShNKXt0aGlzLiNzPU19c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICB9CgogICAgICAubG9naW4tY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgIH0KCiAgICAgIC5sb2dvLXNlY3Rpb24gewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CgogICAgICAubG9nbyB7CiAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgaGVpZ2h0OiA2NHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtYXJnaW46IDAgYXV0byAxNnB4OwogICAgICB9CgogICAgICAubG9nbyBzdmcgewogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLmZvcm0tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZSwgYm94LXNoYWRvdyAyMDBtcyBlYXNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg5NiwgMTY1LCAyNTAsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQuZXJyb3IgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuZXJyb3ItbWVzc2FnZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjJmMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmZWNhY2EiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yLW1lc3NhZ2Ugc3ZnIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5zdWJtaXQtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdWJtaXQtYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5zdWJtaXQtYnV0dG9uOmFjdGl2ZTpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLnN1Ym1pdC1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6IGN1cnJlbnRDb2xvcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZm9vdGVyIHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZvb3RlciBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLmZvb3RlciBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4tY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMjIuMDgiIHgyPSIxMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+JHt0aGlzLnN1YnRpdGxlfTwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGZvcm0gY2xhc3M9ImZvcm0iIEBzdWJtaXQ9JHt0aGlzLmhhbmRsZVN1Ym1pdH0+CiAgICAgICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW1lc3NhZ2UiPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIuMDEiIHkyPSIxNiI+PC9saW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAke3RoaXMuZXJyb3J9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiIGZvcj0idXNlcm5hbWUiPlVzZXJuYW1lPC9sYWJlbD4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBpZD0idXNlcm5hbWUiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgeW91ciB1c2VybmFtZSIKICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiCiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmxvYWRpbmd9CiAgICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiIGZvcj0icGFzc3dvcmQiPlBhc3N3b3JkPC9sYWJlbD4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InBhc3N3b3JkIgogICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkIgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQgJHt0aGlzLmVycm9yPyJlcnJvciI6IiJ9IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIHlvdXIgcGFzc3dvcmQiCiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9ImN1cnJlbnQtcGFzc3dvcmQiCiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmxvYWRpbmd9CiAgICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdC1idXR0b24iID9kaXNhYmxlZD0ke3RoaXMubG9hZGluZ30+CiAgICAgICAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgU2lnbmluZyBpbi4uLgogICAgICAgICAgICAgIGA6IlNpZ24gaW4ifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZm9ybT4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgICBQb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vc2VydmUuem9uZSIgdGFyZ2V0PSJfYmxhbmsiPnNlcnZlLnpvbmU8L2E+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVN1Ym1pdChNKXtNLnByZXZlbnREZWZhdWx0KCk7bGV0IHo9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgidXNlcm5hbWUiKSxOPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIik7aWYoIXp8fCFOKXJldHVybjtsZXQgQz16LnZhbHVlLnRyaW0oKSxfPU4udmFsdWU7aWYoIUN8fCFfKXt0aGlzLmVycm9yPSJQbGVhc2UgZW50ZXIgYm90aCB1c2VybmFtZSBhbmQgcGFzc3dvcmQiO3JldHVybn10aGlzLmVycm9yPSIiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ2luIix7ZGV0YWlsOnt1c2VybmFtZTpDLHBhc3N3b3JkOl99LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xlYXJGb3JtKCl7bGV0IE09dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgidXNlcm5hbWUiKSx6PXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIik7TSYmKE0udmFsdWU9IiIpLHomJih6LnZhbHVlPSIiKSx0aGlzLmVycm9yPSIifWZvY3VzVXNlcm5hbWUoKXtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJ1c2VybmFtZSIpO00mJk0uZm9jdXMoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVHUodGhpcyxmKX1zdGF0aWN7VHUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIE5vLGJzLFpRYSxpOWE9ZygoKT0+e3BlKCk7Tm89ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGJzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxaUWE9KCgpPT57bGV0IHM9W25lKCJzei1zZXJ2aWNlLWNyZWF0ZS12aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W107dmFyIHNlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelNlcnZpY2VDcmVhdGVWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG9lPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpCb29sZWFufSldLGM9W1koKV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxIPVtZKCldLEk9W1koKV0sSz1bWSgpXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSx5ZT1bWSgpXSxObyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZ2lzdHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJyZWdpc3RyaWVzImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucmVnaXN0cmllcywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlZ2lzdHJpZXM9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LG8sbCksTm8odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ibG9hZGluZyJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmxvYWRpbmcsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5sb2FkaW5nPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxkLHUpLE5vKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJzZXJ2aWNlTmFtZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnNlcnZpY2VOYW1lLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuc2VydmljZU5hbWU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LGIsdiksTm8odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZVVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImltYWdlVXJsImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuaW1hZ2VVcmwsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5pbWFnZVVybD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbSxmKSxObyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkUmVnaXN0cnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJzZWxlY3RlZFJlZ2lzdHJ5ImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuc2VsZWN0ZWRSZWdpc3RyeSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnNlbGVjdGVkUmVnaXN0cnk9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LE0seiksTm8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3J0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InBvcnRzImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucG9ydHMsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5wb3J0cz1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sQyxfKSxObyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudlZhcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJlbnZWYXJzImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZW52VmFycywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmVudlZhcnM9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LCQsRSksTm8odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4idm9sdW1lcyJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnZvbHVtZXMsImdldCIpLHNldDppKChhZSxUZSk9PnthZS52b2x1bWVzPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxrLFMpLE5vKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3B1TGltaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJjcHVMaW1pdCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmNwdUxpbWl0LCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuY3B1TGltaXQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LFAsUiksTm8odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW1vcnlMaW1pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+Im1lbW9yeUxpbWl0ImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUubWVtb3J5TGltaXQsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5tZW1vcnlMaW1pdD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sVixXKSxObyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXN0YXJ0UG9saWN5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4icmVzdGFydFBvbGljeSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnJlc3RhcnRQb2xpY3ksImdldCIpLHNldDppKChhZSxUZSk9PnthZS5yZXN0YXJ0UG9saWN5PVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxCLFUpLE5vKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5ldHdvcmtNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ibmV0d29ya01vZGUiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5uZXR3b3JrTW9kZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLm5ldHdvcmtNb2RlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxGLGopLE5vKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBZHZhbmNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InNob3dBZHZhbmNlZCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnNob3dBZHZhbmNlZCwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnNob3dBZHZhbmNlZD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbGUsUSksTm8odGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlTW9uZ29EQiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImVuYWJsZU1vbmdvREIiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5lbmFibGVNb25nb0RCLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuZW5hYmxlTW9uZ29EQj1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sdGUsZWUpLE5vKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVMzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iZW5hYmxlUzMiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5lbmFibGVTMywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmVuYWJsZVMzPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxYLFopLE5vKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUNsaWNrSG91c2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJlbmFibGVDbGlja0hvdXNlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZW5hYmxlQ2xpY2tIb3VzZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmVuYWJsZUNsaWNrSG91c2U9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LHEsQSksTm8obnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b2V9LG51bGwsdCksc2U9YT1lLnZhbHVlLG9lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm9lfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2UtY3JlYXRlLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6Ik9uZWJveCBSZWdpc3RyeSIsdXJsOiJyZWdpc3RyeS5vbmVib3gubG9jYWwifSx7aWQ6IjIiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIn1dfQogICAgICA+PC9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1icyh0aGlzLG8sW10pO2dldCByZWdpc3RyaWVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZ2lzdHJpZXMob2Upe3RoaXMuI2U9b2V9I3Q9KGJzKHRoaXMsbCksYnModGhpcyxkLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9hZGluZyhvZSl7dGhpcy4jdD1vZX0jYT0oYnModGhpcyx1KSxicyh0aGlzLGIsIiIpKTtnZXQgc2VydmljZU5hbWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VydmljZU5hbWUob2Upe3RoaXMuI2E9b2V9I3M9KGJzKHRoaXMsdiksYnModGhpcyxtLCIiKSk7Z2V0IGltYWdlVXJsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGltYWdlVXJsKG9lKXt0aGlzLiNzPW9lfSNpPShicyh0aGlzLGYpLGJzKHRoaXMsTSwiIikpO2dldCBzZWxlY3RlZFJlZ2lzdHJ5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkUmVnaXN0cnkob2Upe3RoaXMuI2k9b2V9I3I9KGJzKHRoaXMseiksYnModGhpcyxDLFt7aG9zdFBvcnQ6IiIsY29udGFpbmVyUG9ydDoiIixwcm90b2NvbDoidGNwIn1dKSk7Z2V0IHBvcnRzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBvcnRzKG9lKXt0aGlzLiNyPW9lfSNvPShicyh0aGlzLF8pLGJzKHRoaXMsJCxbe2tleToiIix2YWx1ZToiIn1dKSk7Z2V0IGVudlZhcnMoKXtyZXR1cm4gdGhpcy4jb31zZXQgZW52VmFycyhvZSl7dGhpcy4jbz1vZX0jbj0oYnModGhpcyxFKSxicyh0aGlzLGssW10pKTtnZXQgdm9sdW1lcygpe3JldHVybiB0aGlzLiNufXNldCB2b2x1bWVzKG9lKXt0aGlzLiNuPW9lfSNsPShicyh0aGlzLFMpLGJzKHRoaXMsUCwiIikpO2dldCBjcHVMaW1pdCgpe3JldHVybiB0aGlzLiNsfXNldCBjcHVMaW1pdChvZSl7dGhpcy4jbD1vZX0jYz0oYnModGhpcyxSKSxicyh0aGlzLFYsIiIpKTtnZXQgbWVtb3J5TGltaXQoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWVtb3J5TGltaXQob2Upe3RoaXMuI2M9b2V9I2Q9KGJzKHRoaXMsVyksYnModGhpcyxCLCJhbHdheXMiKSk7Z2V0IHJlc3RhcnRQb2xpY3koKXtyZXR1cm4gdGhpcy4jZH1zZXQgcmVzdGFydFBvbGljeShvZSl7dGhpcy4jZD1vZX0jdT0oYnModGhpcyxVKSxicyh0aGlzLEYsImJyaWRnZSIpKTtnZXQgbmV0d29ya01vZGUoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbmV0d29ya01vZGUob2Upe3RoaXMuI3U9b2V9I3A9KGJzKHRoaXMsaiksYnModGhpcyxsZSwhMSkpO2dldCBzaG93QWR2YW5jZWQoKXtyZXR1cm4gdGhpcy4jcH1zZXQgc2hvd0FkdmFuY2VkKG9lKXt0aGlzLiNwPW9lfSNoPShicyh0aGlzLFEpLGJzKHRoaXMsdGUsITEpKTtnZXQgZW5hYmxlTW9uZ29EQigpe3JldHVybiB0aGlzLiNofXNldCBlbmFibGVNb25nb0RCKG9lKXt0aGlzLiNoPW9lfSNmPShicyh0aGlzLGVlKSxicyh0aGlzLFgsITEpKTtnZXQgZW5hYmxlUzMoKXtyZXR1cm4gdGhpcy4jZn1zZXQgZW5hYmxlUzMob2Upe3RoaXMuI2Y9b2V9I209KGJzKHRoaXMsWiksYnModGhpcyxxLCExKSk7Z2V0IGVuYWJsZUNsaWNrSG91c2UoKXtyZXR1cm4gdGhpcy4jbX1zZXQgZW5hYmxlQ2xpY2tIb3VzZShvZSl7dGhpcy4jbT1vZX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLXJvdy5zaW5nbGUgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICB9CgogICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZm9ybS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwgLnJlcXVpcmVkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuZm9ybS1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQsCiAgICAgIC5mb3JtLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQ6Zm9jdXMsCiAgICAgIC5mb3JtLXNlbGVjdDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tc2VsZWN0IHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5keW5hbWljLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmR5bmFtaWMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAuZHluYW1pYy1yb3cgLmZvcm0taW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5keW5hbWljLXJvdyAuZm9ybS1zZWxlY3QgewogICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucmVtb3ZlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucmVtb3ZlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWNhY2EiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYWR2YW5jZWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYWR2YW5jZWQgc3ZnIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYWR2YW5jZWQub3BlbiBzdmcgewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7CiAgICAgIH0KCiAgICAgIC5jaGVja2JveC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgYWNjZW50LWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pdGVtOmhhcyhpbnB1dDpjaGVja2VkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZmY2ZmYiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWljb24gewogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pY29uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1kZXNjIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDQ0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaCBpbnB1dCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc2xpZGVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc2xpZGVyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgbGVmdDogM3B4OwogICAgICAgIGJvdHRvbTogM3B4OwogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggaW5wdXQ6Y2hlY2tlZCArIC50b2dnbGUtc2xpZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoIGlucHV0OmNoZWNrZWQgKyAudG9nZ2xlLXNsaWRlcjo6YmVmb3JlIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAuYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5idXR0b24ucHJpbWFyeTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5zcGlubmVyIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogY3VycmVudENvbG9yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdGl0bGUiPkRlcGxveSBOZXcgU2VydmljZTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXN1YnRpdGxlIj5Db25maWd1cmUgYW5kIGRlcGxveSBhIG5ldyBEb2NrZXIgY29udGFpbmVyPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBCYXNpYyBJbmZvIFNlY3Rpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICA8bGluZSB4MT0iOSIgeTE9IjkiIHgyPSIxNSIgeTI9IjkiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjkiIHkxPSIxNSIgeDI9IjE1IiB5Mj0iMTUiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQmFzaWMgSW5mb3JtYXRpb24KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5TZXJ2aWNlIE5hbWUgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Im15LXNlcnZpY2UiCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZXJ2aWNlTmFtZX0KICAgICAgICAgICAgICBAaW5wdXQ9JHtvZT0+dGhpcy5zZXJ2aWNlTmFtZT1vZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5VbmlxdWUgbmFtZSBmb3IgdGhlIHNlcnZpY2UgKGFscGhhbnVtZXJpYyBhbmQgaHlwaGVucyk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+UmVnaXN0cnk8L2xhYmVsPgogICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgY2xhc3M9ImZvcm0tc2VsZWN0IgogICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VsZWN0ZWRSZWdpc3RyeX0KICAgICAgICAgICAgICBAY2hhbmdlPSR7b2U9PnRoaXMuc2VsZWN0ZWRSZWdpc3RyeT1vZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPkN1c3RvbSBJbWFnZSBVUkw8L29wdGlvbj4KICAgICAgICAgICAgICAke3RoaXMucmVnaXN0cmllcy5tYXAob2U9PndgCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSR7b2UuaWR9PiR7b2UubmFtZX08L29wdGlvbj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyBzaW5nbGUiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+SW1hZ2UgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Im5naW54OmxhdGVzdCBvciByZWdpc3RyeS5leGFtcGxlLmNvbS9pbWFnZTp0YWciCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbWFnZVVybH0KICAgICAgICAgICAgICBAaW5wdXQ9JHtvZT0+dGhpcy5pbWFnZVVybD1vZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5Eb2NrZXIgaW1hZ2UgdG8gZGVwbG95IChpbmNsdWRlIHRhZyk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUG9ydCBDb25maWd1cmF0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICA8bGluZSB4MT0iMiIgeTE9IjEyIiB4Mj0iMjIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICA8cGF0aCBkPSJNMTIgMmExNS4zIDE1LjMgMCAwIDEgNCAxMCAxNS4zIDE1LjMgMCAwIDEtNCAxMCAxNS4zIDE1LjMgMCAwIDEtNC0xMCAxNS4zIDE1LjMgMCAwIDEgNC0xMHoiPjwvcGF0aD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgUG9ydCBDb25maWd1cmF0aW9uCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1saXN0Ij4KICAgICAgICAgICR7dGhpcy5wb3J0cy5tYXAoKG9lLGFlKT0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1yb3ciPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Ikhvc3QgUG9ydCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke29lLmhvc3RQb3J0fQogICAgICAgICAgICAgICAgQGlucHV0PSR7VGU9PnRoaXMudXBkYXRlUG9ydChhZSwiaG9zdFBvcnQiLFRlLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkNvbnRhaW5lciBQb3J0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7b2UuY29udGFpbmVyUG9ydH0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke1RlPT50aGlzLnVwZGF0ZVBvcnQoYWUsImNvbnRhaW5lclBvcnQiLFRlLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzZWxlY3QKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLXNlbGVjdCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke29lLnByb3RvY29sfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke1RlPT50aGlzLnVwZGF0ZVBvcnQoYWUsInByb3RvY29sIixUZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InRjcCI+VENQPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ1ZHAiPlVEUDwvb3B0aW9uPgogICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICR7dGhpcy5wb3J0cy5sZW5ndGg+MT93YAogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlUG9ydChhZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRkLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkUG9ydCgpfT4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQWRkIFBvcnQgTWFwcGluZwogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gRW52aXJvbm1lbnQgVmFyaWFibGVzIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iNCAxNyAxMCAxMSA0IDUiPjwvcG9seWxpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE5IiB4Mj0iMjAiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBFbnZpcm9ubWVudCBWYXJpYWJsZXMKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLWxpc3QiPgogICAgICAgICAgJHt0aGlzLmVudlZhcnMubWFwKChvZSxhZSk9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtcm93Ij4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJLRVkiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtvZS5rZXl9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHtUZT0+dGhpcy51cGRhdGVFbnZWYXIoYWUsImtleSIsVGUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0idmFsdWUiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtvZS52YWx1ZX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke1RlPT50aGlzLnVwZGF0ZUVudlZhcihhZSwidmFsdWUiLFRlLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5lbnZWYXJzLmxlbmd0aD4xP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVFbnZWYXIoYWUpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmFkZEVudlZhcigpfT4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQWRkIEVudmlyb25tZW50IFZhcmlhYmxlCiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBQbGF0Zm9ybSBTZXJ2aWNlcyAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iMTQiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iNi4wMSIgeTI9IjYiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSIxOCIgeDI9IjYuMDEiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBQbGF0Zm9ybSBTZXJ2aWNlcwogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEycHg7Ij4KICAgICAgICAgIEVuYWJsZSBtYW5hZ2VkIGluZnJhc3RydWN0dXJlIHNlcnZpY2VzIGZvciB0aGlzIGRlcGxveW1lbnQuIFJlc291cmNlcyBhcmUgYXV0b21hdGljYWxseSBwcm92aXNpb25lZCBhbmQgY29ubmVjdGlvbiBkZXRhaWxzIGluamVjdGVkIGFzIGVudmlyb25tZW50IHZhcmlhYmxlcy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtbGlzdCI+CiAgICAgICAgICA8bGFiZWwgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pY29uIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NS0uNDktNy0zLjg1LTctNy45MyAwLS42Mi4wOC0xLjIxLjIxLTEuNzlMOSAxNXYxYzAgMS4xLjkgMiAyIDJ2MS45M3ptNi45LTIuNTRjLS4yNi0uODEtMS0xLjM5LTEuOS0xLjM5aC0xdi0zYzAtLjU1LS40NS0xLTEtMUg4di0yaDJjLjU1IDAgMS0uNDUgMS0xVjdoMmMxLjEgMCAyLS45IDItMnYtLjQxYzIuOTMgMS4xOSA1IDQuMDYgNSA3LjQxIDAgMi4wOC0uOCAzLjk3LTIuMSA1LjM5eiIvPjwvc3ZnPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtbmFtZSI+TW9uZ29EQjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWRlc2MiPkRvY3VtZW50IGRhdGFiYXNlIHdpdGggYXV0by1wcm92aXNpb25lZCBjcmVkZW50aWFsczwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKICAgICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5lbmFibGVNb25nb0RCfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke29lPT50aGlzLmVuYWJsZU1vbmdvREI9b2UudGFyZ2V0LmNoZWNrZWR9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2dnbGUtc2xpZGVyIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxsYWJlbCBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWljb24iPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTIxIDE2LjVjMCAuMzgtLjIxLjcxLS41My44OGwtNy45IDQuNDRjLS4xNi4xMi0uMzYuMTgtLjU3LjE4LS4yMSAwLS40MS0uMDYtLjU3LS4xOGwtNy45LTQuNDRBLjk5MS45OTEgMCAwIDEgMyAxNi41di05YzAtLjM4LjIxLS43MS41My0uODhsNy45LTQuNDRjLjE2LS4xMi4zNi0uMTguNTctLjE4LjIxIDAgLjQxLjA2LjU3LjE4bDcuOSA0LjQ0Yy4zMi4xNy41My41LjUzLjg4djl6Ii8+PC9zdmc+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1uYW1lIj5TMyBTdG9yYWdlIChNaW5JTyk8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1kZXNjIj5PYmplY3Qgc3RvcmFnZSBidWNrZXQgd2l0aCBhdXRvLXByb3Zpc2lvbmVkIGFjY2VzcyBrZXlzPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoIj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLmVuYWJsZVMzfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke29lPT50aGlzLmVuYWJsZVMzPW9lLnRhcmdldC5jaGVja2VkfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idG9nZ2xlLXNsaWRlciI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICA8bGFiZWwgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pY29uIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIi8+PHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjYiIGhlaWdodD0iMTUiLz48cmVjdCB4PSIxNiIgeT0iMTIiIHdpZHRoPSI2IiBoZWlnaHQ9IjEwIi8+PC9zdmc+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1uYW1lIj5DbGlja0hvdXNlPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtZGVzYyI+QW5hbHl0aWNzIGRhdGFiYXNlIHdpdGggYXV0by1wcm92aXNpb25lZCBjcmVkZW50aWFsczwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKICAgICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5lbmFibGVDbGlja0hvdXNlfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke29lPT50aGlzLmVuYWJsZUNsaWNrSG91c2U9b2UudGFyZ2V0LmNoZWNrZWR9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2dnbGUtc2xpZGVyIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEFkdmFuY2VkIE9wdGlvbnMgVG9nZ2xlIC0tPgogICAgICA8YnV0dG9uCiAgICAgICAgY2xhc3M9InRvZ2dsZS1hZHZhbmNlZCAke3RoaXMuc2hvd0FkdmFuY2VkPyJvcGVuIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0FkdmFuY2VkPSF0aGlzLnNob3dBZHZhbmNlZH0KICAgICAgPgogICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ij48L3BvbHlsaW5lPgogICAgICAgIDwvc3ZnPgogICAgICAgIEFkdmFuY2VkIE9wdGlvbnMKICAgICAgPC9idXR0b24+CgogICAgICAke3RoaXMuc2hvd0FkdmFuY2VkP3dgCiAgICAgICAgPCEtLSBWb2x1bWVzIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIFZvbHVtZSBNb3VudHMKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLnZvbHVtZXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+Tm8gdm9sdW1lcyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICAgIGA6dGhpcy52b2x1bWVzLm1hcCgob2UsYWUpPT53YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtcm93Ij4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Ii9ob3N0L3BhdGgiCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke29lLmhvc3RQYXRofQogICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtUZT0+dGhpcy51cGRhdGVWb2x1bWUoYWUsImhvc3RQYXRoIixUZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iL2NvbnRhaW5lci9wYXRoIgogICAgICAgICAgICAgICAgICAudmFsdWU9JHtvZS5jb250YWluZXJQYXRofQogICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtUZT0+dGhpcy51cGRhdGVWb2x1bWUoYWUsImNvbnRhaW5lclBhdGgiLFRlLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1yb3ciPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2hlY2tib3giCiAgICAgICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHtvZS5yZWFkT25seX0KICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPSR7VGU9PnRoaXMudXBkYXRlVm9sdW1lKGFlLCJyZWFkT25seSIsVGUudGFyZ2V0LmNoZWNrZWQpfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWhpbnQiPlJPPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVWb2x1bWUoYWUpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmFkZFZvbHVtZSgpfT4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEFkZCBWb2x1bWUgTW91bnQKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFJlc291cmNlIExpbWl0cyAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHJlY3QgeD0iMSIgeT0iNCIgd2lkdGg9IjIyIiBoZWlnaHQ9IjE2IiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICA8bGluZSB4MT0iMSIgeTE9IjEwIiB4Mj0iMjMiIHkyPSIxMCI+PC9saW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgUmVzb3VyY2UgTGltaXRzCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5DUFUgTGltaXQ8L2xhYmVsPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9ImUuZy4sIDEuMCBvciAwLjUiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNwdUxpbWl0fQogICAgICAgICAgICAgICAgQGlucHV0PSR7b2U9PnRoaXMuY3B1TGltaXQ9b2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPk51bWJlciBvZiBDUFVzIChsZWF2ZSBlbXB0eSBmb3IgdW5saW1pdGVkKTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5NZW1vcnkgTGltaXQ8L2xhYmVsPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9ImUuZy4sIDUxMm0gb3IgMWciCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLm1lbW9yeUxpbWl0fQogICAgICAgICAgICAgICAgQGlucHV0PSR7b2U9PnRoaXMubWVtb3J5TGltaXQ9b2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPk1lbW9yeSBsaW1pdCAobGVhdmUgZW1wdHkgZm9yIHVubGltaXRlZCk8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBSZXN0YXJ0IFBvbGljeSAmIE5ldHdvcmsgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiPjwvY2lyY2xlPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS40IDE1YTEuNjUgMS42NSAwIDAgMCAuMzMgMS44MmwuMDYuMDZhMiAyIDAgMCAxIDAgMi44MyAyIDIgMCAwIDEtMi44MyAwbC0uMDYtLjA2YTEuNjUgMS42NSAwIDAgMC0xLjgyLS4zMyAxLjY1IDEuNjUgMCAwIDAtMSAxLjUxVjIxYTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxLTItMnYtLjA5QTEuNjUgMS42NSAwIDAgMCA5IDE5LjRhMS42NSAxLjY1IDAgMCAwLTEuODIuMzNsLS4wNi4wNmEyIDIgMCAwIDEtMi44MyAwIDIgMiAwIDAgMSAwLTIuODNsLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAgLjMzLTEuODIgMS42NSAxLjY1IDAgMCAwLTEuNTEtMUgzYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxIDItMmguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAwIDEgMC0yLjgzIDIgMiAwIDAgMSAyLjgzIDBsLjA2LjA2YTEuNjUgMS42NSAwIDAgMCAxLjgyLjMzSDlhMS42NSAxLjY1IDAgMCAwIDEtMS41MVYzYTIgMiAwIDAgMSAyLTIgMiAyIDAgMCAxIDIgMnYuMDlhMS42NSAxLjY1IDAgMCAwIDEgMS41MSAxLjY1IDEuNjUgMCAwIDAgMS44Mi0uMzNsLjA2LS4wNmEyIDIgMCAwIDEgMi44MyAwIDIgMiAwIDAgMSAwIDIuODNsLS4wNi4wNmExLjY1IDEuNjUgMCAwIDAtLjMzIDEuODJWOWExLjY1IDEuNjUgMCAwIDAgMS41MSAxSDIxYTIgMiAwIDAgMSAyIDIgMiAyIDAgMCAxLTIgMmgtLjA5YTEuNjUgMS42NSAwIDAgMC0xLjUxIDF6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDb250YWluZXIgU2V0dGluZ3MKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPlJlc3RhcnQgUG9saWN5PC9sYWJlbD4KICAgICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1zZWxlY3QiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnJlc3RhcnRQb2xpY3l9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7b2U9PnRoaXMucmVzdGFydFBvbGljeT1vZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYWx3YXlzIj5BbHdheXM8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im9uLWZhaWx1cmUiPk9uIEZhaWx1cmU8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im5ldmVyIj5OZXZlcjwvb3B0aW9uPgogICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5OZXR3b3JrIE1vZGU8L2xhYmVsPgogICAgICAgICAgICAgIDxzZWxlY3QKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLXNlbGVjdCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMubmV0d29ya01vZGV9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7b2U9PnRoaXMubmV0d29ya01vZGU9b2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJyaWRnZSI+QnJpZGdlPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJob3N0Ij5Ib3N0PC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJub25lIj5Ob25lPC9vcHRpb24+CiAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidXR0b24gc2Vjb25kYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDYW5jZWwoKX0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbgogICAgICAgICAgY2xhc3M9ImJ1dHRvbiBwcmltYXJ5IgogICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5sb2FkaW5nfHwhdGhpcy5pc1ZhbGlkKCl9CiAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGUoKX0KICAgICAgICA+CiAgICAgICAgICAke3RoaXMubG9hZGluZz93YDxkaXYgY2xhc3M9InNwaW5uZXIiPjwvZGl2PmA6IiJ9CiAgICAgICAgICAke3RoaXMubG9hZGluZz8iRGVwbG95aW5nLi4uIjoiRGVwbG95IFNlcnZpY2UifQogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGB9aXNWYWxpZCgpe3JldHVybiB0aGlzLnNlcnZpY2VOYW1lLnRyaW0oKSE9PSIiJiZ0aGlzLmltYWdlVXJsLnRyaW0oKSE9PSIifWFkZFBvcnQoKXt0aGlzLnBvcnRzPVsuLi50aGlzLnBvcnRzLHtob3N0UG9ydDoiIixjb250YWluZXJQb3J0OiIiLHByb3RvY29sOiJ0Y3AifV19cmVtb3ZlUG9ydChvZSl7dGhpcy5wb3J0cz10aGlzLnBvcnRzLmZpbHRlcigoYWUsVGUpPT5UZSE9PW9lKX11cGRhdGVQb3J0KG9lLGFlLFRlKXtsZXQgUmU9Wy4uLnRoaXMucG9ydHNdO1JlW29lXVthZV09VGUsdGhpcy5wb3J0cz1SZX1hZGRFbnZWYXIoKXt0aGlzLmVudlZhcnM9Wy4uLnRoaXMuZW52VmFycyx7a2V5OiIiLHZhbHVlOiIifV19cmVtb3ZlRW52VmFyKG9lKXt0aGlzLmVudlZhcnM9dGhpcy5lbnZWYXJzLmZpbHRlcigoYWUsVGUpPT5UZSE9PW9lKX11cGRhdGVFbnZWYXIob2UsYWUsVGUpe2xldCBSZT1bLi4udGhpcy5lbnZWYXJzXTtSZVtvZV1bYWVdPVRlLHRoaXMuZW52VmFycz1SZX1hZGRWb2x1bWUoKXt0aGlzLnZvbHVtZXM9Wy4uLnRoaXMudm9sdW1lcyx7aG9zdFBhdGg6IiIsY29udGFpbmVyUGF0aDoiIixyZWFkT25seTohMX1dfXJlbW92ZVZvbHVtZShvZSl7dGhpcy52b2x1bWVzPXRoaXMudm9sdW1lcy5maWx0ZXIoKGFlLFRlKT0+VGUhPT1vZSl9dXBkYXRlVm9sdW1lKG9lLGFlLFRlKXtsZXQgUmU9Wy4uLnRoaXMudm9sdW1lc107UmVbb2VdW2FlXT1UZSx0aGlzLnZvbHVtZXM9UmV9aGFuZGxlQ2FuY2VsKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2FuY2VsIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDcmVhdGUoKXtsZXQgb2U9e25hbWU6dGhpcy5zZXJ2aWNlTmFtZS50cmltKCksaW1hZ2U6dGhpcy5pbWFnZVVybC50cmltKCkscG9ydHM6dGhpcy5wb3J0cy5maWx0ZXIoYWU9PmFlLmhvc3RQb3J0JiZhZS5jb250YWluZXJQb3J0KSxlbnZWYXJzOnRoaXMuZW52VmFycy5maWx0ZXIoYWU9PmFlLmtleSksdm9sdW1lczp0aGlzLnZvbHVtZXMuZmlsdGVyKGFlPT5hZS5ob3N0UGF0aCYmYWUuY29udGFpbmVyUGF0aCksY3B1TGltaXQ6dGhpcy5jcHVMaW1pdCxtZW1vcnlMaW1pdDp0aGlzLm1lbW9yeUxpbWl0LHJlc3RhcnRQb2xpY3k6dGhpcy5yZXN0YXJ0UG9saWN5LG5ldHdvcmtNb2RlOnRoaXMubmV0d29ya01vZGUsZW5hYmxlTW9uZ29EQjp0aGlzLmVuYWJsZU1vbmdvREIsZW5hYmxlUzM6dGhpcy5lbmFibGVTMyxlbmFibGVDbGlja0hvdXNlOnRoaXMuZW5hYmxlQ2xpY2tIb3VzZX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY3JlYXRlLXNlcnZpY2UiLHtkZXRhaWw6b2UsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1yZXNldCgpe3RoaXMuc2VydmljZU5hbWU9IiIsdGhpcy5pbWFnZVVybD0iIix0aGlzLnNlbGVjdGVkUmVnaXN0cnk9IiIsdGhpcy5wb3J0cz1be2hvc3RQb3J0OiIiLGNvbnRhaW5lclBvcnQ6IiIscHJvdG9jb2w6InRjcCJ9XSx0aGlzLmVudlZhcnM9W3trZXk6IiIsdmFsdWU6IiJ9XSx0aGlzLnZvbHVtZXM9W10sdGhpcy5jcHVMaW1pdD0iIix0aGlzLm1lbW9yeUxpbWl0PSIiLHRoaXMucmVzdGFydFBvbGljeT0iYWx3YXlzIix0aGlzLm5ldHdvcmtNb2RlPSJicmlkZ2UiLHRoaXMuc2hvd0FkdmFuY2VkPSExLHRoaXMuZW5hYmxlTW9uZ29EQj0hMSx0aGlzLmVuYWJsZVMzPSExLHRoaXMuZW5hYmxlQ2xpY2tIb3VzZT0hMX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYnModGhpcyxBKX1zdGF0aWN7YnMoYSx0KX19O3JldHVybiBzZT1hfSkoKX0pO3ZhciB6MWUsTmcsWFFhLHI5YT1nKCgpPT57cGUoKTt6MWU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE5nPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxYUWE9KCgpPT57bGV0IHM9W25lKCJzei1wbGF0Zm9ybS1zZXJ2aWNlLWRldGFpbC12aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6UGxhdGZvcm1TZXJ2aWNlRGV0YWlsVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6QXJyYXl9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHoxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InNlcnZpY2UiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZXJ2aWNlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yuc2VydmljZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksejFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9ncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibG9ncyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmxvZ3MsImdldCIpLHNldDppKChmLHkpPT57Zi5sb2dzPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSx6MWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25Mb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJhY3Rpb25Mb2FkaW5nImluIGYsImhhcyIpLGdldDppKGY9PmYuYWN0aW9uTG9hZGluZywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmFjdGlvbkxvYWRpbmc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLHoxZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEwMDBweDsiPgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7e2lkOiIxIixuYW1lOiJNb25nb0RCIix0eXBlOiJtb25nb2RiIixzdGF0dXM6InJ1bm5pbmciLHZlcnNpb246IjcuMC40Iixob3N0OiJsb2NhbGhvc3QiLHBvcnQ6MjcwMTcsY3JlZGVudGlhbHM6e3VzZXJuYW1lOiJhZG1pbiIscGFzc3dvcmQ6Ilx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMiJ9LGNvbmZpZzp7cmVwbGljYVNldDoicnMwIixhdXRoRW5hYmxlZDohMH0sbWV0cmljczp7Y3B1OjEyLG1lbW9yeTo0NSxzdG9yYWdlOjIzLGNvbm5lY3Rpb25zOjh9fX0KICAgICAgICAubG9ncz0ke1t7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIyIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiQ29ubmVjdGlvbiBhY2NlcHRlZCBmcm9tIDEyNy4wLjAuMTo1NDMyMSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjAiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJJbmRleCBidWlsZCBjb21wbGV0ZWQgb24gY29sbGVjdGlvbiB1c2VycyJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTUiLGxldmVsOiJ3YXJuIixtZXNzYWdlOiJTbG93IHF1ZXJ5IGRldGVjdGVkOiAxLjJzIG9uIGNvbGxlY3Rpb24gb3JkZXJzIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoxMCIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkNoZWNrcG9pbnQgY29tcGxldGUifV19CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJQbGF0Zm9ybSJdOyNlPU5nKHRoaXMsbyxudWxsKTtnZXQgc2VydmljZSgpe3JldHVybiB0aGlzLiNlfXNldCBzZXJ2aWNlKG0pe3RoaXMuI2U9bX0jdD0oTmcodGhpcyxsKSxOZyh0aGlzLGQsW10pKTtnZXQgbG9ncygpe3JldHVybiB0aGlzLiN0fXNldCBsb2dzKG0pe3RoaXMuI3Q9bX0jYT0oTmcodGhpcyx1KSxOZyh0aGlzLGIsITEpKTtnZXQgYWN0aW9uTG9hZGluZygpe3JldHVybiB0aGlzLiNhfXNldCBhY3Rpb25Mb2FkaW5nKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWljb24gewogICAgICAgIHdpZHRoOiA1NnB4OwogICAgICAgIGhlaWdodDogNTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtZGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuc2VydmljZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2VydmljZS1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuZnVsbC13aWR0aCB7CiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5pbmZvLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jb3B5LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgIC5tZXRyaWNzLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtY2FyZCB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbC5sb3cgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWZpbGwubWVkaXVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VhYjMwOCIsIiNlYWIzMDgiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1maWxsLmhpZ2ggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1rZXkgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlLnRydWUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jb25maWctdmFsdWUuZmFsc2UgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5zZXJ2aWNlP3dgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uIj4KICAgICAgICAgICAgJHt0aGlzLnJlbmRlclNlcnZpY2VJY29uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtZGV0YWlscyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtbmFtZSI+JHt0aGlzLnNlcnZpY2UubmFtZX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1tZXRhIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7dGhpcy5zZXJ2aWNlLnN0YXR1c30iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0aGlzLnNlcnZpY2Uuc3RhdHVzLnNsaWNlKDEpfQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj5WZXJzaW9uICR7dGhpcy5zZXJ2aWNlLnZlcnNpb259PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cz09PSJydW5uaW5nIj93YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlc3RhcnQoKX0+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjMgNCAyMyAxMCAxNyAxMCI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjEgMjAgMSAxNCA3IDE0Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMuNTEgOWE5IDkgMCAwIDEgMTQuODUtMy4zNkwyMyAxME0xIDE0bDQuNjQgNC4zNkE5IDkgMCAwIDAgMjAuNDkgMTUiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBSZXN0YXJ0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRhbmdlciIgP2Rpc2FibGVkPSR7dGhpcy5hY3Rpb25Mb2FkaW5nfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTdG9wKCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxyZWN0IHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjEiPjwvcmVjdD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBTdG9wCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVN0YXJ0KCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI1LDMgMTksMTIgNSwyMSI+PC9wb2x5Z29uPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFN0YXJ0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8IS0tIENvbm5lY3Rpb24gSW5mbyAtLT4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBDb25uZWN0aW9uCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkhvc3Q8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuaG9zdH0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmhvc3QpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Qb3J0PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4ke3RoaXMuc2VydmljZS5wb3J0fTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzPy51c2VybmFtZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Vc2VybmFtZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHMudXNlcm5hbWV9CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLnVzZXJuYW1lKX0+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+UGFzc3dvcmQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCiPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMuc2VydmljZS5jcmVkZW50aWFscz8uYWNjZXNzS2V5P3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkFjY2VzcyBLZXk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLmFjY2Vzc0tleX0KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29weS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNvcHlUb0NsaXBib2FyZCh0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHMuYWNjZXNzS2V5KX0+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+U2VjcmV0IEtleTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj7igKLigKLigKLigKLigKLigKLigKLigKI8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPCEtLSBDb25maWd1cmF0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkuNCAxNWExLjY1IDEuNjUgMCAwIDAgLjMzIDEuODJsLjA2LjA2YTIgMiAwIDAgMSAwIDIuODMgMiAyIDAgMCAxLTIuODMgMGwtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMS0yLTJ2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMgMCAyIDIgMCAwIDEgMC0yLjgzbC4wNi0uMDZhMS42NSAxLjY1IDAgMCAwIC4zMy0xLjgyIDEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMSAyLTJoLjA5QTEuNjUgMS42NSAwIDAgMCA0LjYgOWExLjY1IDEuNjUgMCAwIDAtLjMzLTEuODJsLS4wNi0uMDZhMiAyIDAgMCAxIDAtMi44MyAyIDIgMCAwIDEgMi44MyAwbC4wNi4wNmExLjY1IDEuNjUgMCAwIDAgMS44Mi4zM0g5YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgMi0yIDIgMiAwIDAgMSAyIDJ2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMCAyIDIgMCAwIDEgMCAyLjgzbC0uMDYuMDZhMS42NSAxLjY1IDAgMCAwLS4zMyAxLjgyVjlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMS0yIDJoLS4wOWExLjY1IDEuNjUgMCAwIDAtMS41MSAxeiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXModGhpcy5zZXJ2aWNlLmNvbmZpZykubWFwKChbbSxmXSk9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbmZpZy1rZXkiPiR7dGhpcy5mb3JtYXRDb25maWdLZXkobSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbmZpZy12YWx1ZSAke3R5cGVvZiBmPT0iYm9vbGVhbiI/Zj8idHJ1ZSI6ImZhbHNlIjoiIn0iPiR7dGhpcy5mb3JtYXRDb25maWdWYWx1ZShmKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gTWV0cmljcyAtLT4KICAgICAgICAke3RoaXMuc2VydmljZS5tZXRyaWNzP3dgCiAgICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSJmdWxsLXdpZHRoIj4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxOCIgeTE9IjIwIiB4Mj0iMTgiIHkyPSIxMCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMCIgeDI9IjEyIiB5Mj0iNCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjIwIiB4Mj0iNiIgeTI9IjE0Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIFJlc291cmNlIFVzYWdlCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5jcHV9JTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPkNQVTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3MuY3B1KX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5jcHV9JSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5tZW1vcnl9JTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPk1lbW9yeTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3MubWVtb3J5KX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5tZW1vcnl9JSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlfSU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWxhYmVsIj5TdG9yYWdlPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZmlsbCAke3RoaXMuZ2V0UHJvZ3Jlc3NDbGFzcyh0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlKX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlfSUiPjwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UubWV0cmljcy5jb25uZWN0aW9ucyE9PXZvaWQgMD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuc2VydmljZS5tZXRyaWNzLmNvbm5lY3Rpb25zfTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1sYWJlbCI+Q29ubmVjdGlvbnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIGA6IiJ9CgogICAgICAgIDwhLS0gTG9ncyAtLT4KICAgICAgICA8ZGl2IHN0eWxlPSJncmlkLWNvbHVtbjogMSAvIC0xOyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgTG9ncyJ9CiAgICAgICAgICAgIC5sb2dFbnRyaWVzPSR7dGhpcy5sb2dzLm1hcChtPT4oe3RpbWVzdGFtcDptLnRpbWVzdGFtcC5pbmNsdWRlcygiVCIpP20udGltZXN0YW1wOm5ldyBEYXRlKG0udGltZXN0YW1wKS50b0lTT1N0cmluZygpLGxldmVsOm0ubGV2ZWwsbWVzc2FnZTptLm1lc3NhZ2V9KSl9CiAgICAgICAgICAgIC5hdXRvU2Nyb2xsPSR7ITB9CiAgICAgICAgICAgIC5tYXhFbnRyaWVzPSR7MmUzfQogICAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGA6d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gc2VydmljZSBzZWxlY3RlZDwvZGl2PmB9cmVuZGVyU2VydmljZUljb24oKXtzd2l0Y2godGhpcy5zZXJ2aWNlPy50eXBlKXtjYXNlIm1vbmdvZGIiOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NS0uNDktNy0zLjg1LTctNy45MyAwLS42Mi4wOC0xLjIxLjIxLTEuNzlMOSAxNXYxYzAgMS4xLjkgMiAyIDJ2MS45M3ptNi45LTIuNTRjLS4yNi0uODEtMS0xLjM5LTEuOS0xLjM5aC0xdi0zYzAtLjU1LS40NS0xLTEtMUg4di0yaDJjLjU1IDAgMS0uNDUgMS0xVjdoMmMxLjEgMCAyLS45IDItMnYtLjQxYzIuOTMgMS4xOSA1IDQuMDYgNSA3LjQxIDAgMi4wOC0uOCAzLjk3LTIuMSA1LjM5eiIvPjwvc3ZnPmA7Y2FzZSJtaW5pbyI6cmV0dXJuIHdgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTIxIDE2LjVjMCAuMzgtLjIxLjcxLS41My44OGwtNy45IDQuNDRjLS4xNi4xMi0uMzYuMTgtLjU3LjE4LS4yMSAwLS40MS0uMDYtLjU3LS4xOGwtNy45LTQuNDRBLjk5MS45OTEgMCAwIDEgMyAxNi41di05YzAtLjM4LjIxLS43MS41My0uODhsNy45LTQuNDRjLjE2LS4xMi4zNi0uMTguNTctLjE4LjIxIDAgLjQxLjA2LjU3LjE4bDcuOSA0LjQ0Yy4zMi4xNy41My41LjUzLjg4djl6Ii8+PC9zdmc+YDtjYXNlImNsaWNraG91c2UiOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIi8+PHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjYiIGhlaWdodD0iMTUiLz48cmVjdCB4PSIxNiIgeT0iMTIiIHdpZHRoPSI2IiBoZWlnaHQ9IjEwIi8+PC9zdmc+YDtjYXNlInJlZGlzIjpyZXR1cm4gd2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTIgMkwyIDdsMTAgNSAxMC01LTEwLTV6TTIgMTdsMTAgNSAxMC01TTIgMTJsMTAgNSAxMC01Ii8+PC9zdmc+YDtkZWZhdWx0OnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHJlY3QgeD0iMiIgeT0iMTQiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSI2LjAxIiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSI2LjAxIiB5Mj0iMTgiPjwvbGluZT48L3N2Zz5gfX1nZXRQcm9ncmVzc0NsYXNzKG0pe3JldHVybiBtPDUwPyJsb3ciOm08ODA/Im1lZGl1bSI6ImhpZ2gifWZvcm1hdENvbmZpZ0tleShtKXtyZXR1cm4gbS5yZXBsYWNlKC8oW0EtWl0pL2csIiAkMSIpLnJlcGxhY2UoL14uLyxmPT5mLnRvVXBwZXJDYXNlKCkpfWZvcm1hdENvbmZpZ1ZhbHVlKG0pe3JldHVybiB0eXBlb2YgbT09ImJvb2xlYW4iP20/IkVuYWJsZWQiOiJEaXNhYmxlZCI6U3RyaW5nKG0pfWNvcHlUb0NsaXBib2FyZChtKXtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChtKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb3B5Iix7ZGV0YWlsOm0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTdGFydCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0YXJ0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVN0b3AoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdG9wIix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlc3RhcnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXN0YXJ0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxOZyh0aGlzLHYpfXN0YXRpY3tOZyhhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgeVEsJHUsUVFhLG85YT1nKCgpPT57cGUoKTt5UT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sJHU9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFFRYT0oKCk9PntsZXQgcz1bbmUoInN6LWRvbWFpbi1kZXRhaWwtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekRvbWFpbkRldGFpbFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkFycmF5fSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5USh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRvbWFpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZG9tYWluImluIHosImhhcyIpLGdldDppKHo9PnouZG9tYWluLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZG9tYWluPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSx5USh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlcnRpZmljYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjZXJ0aWZpY2F0ZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNlcnRpZmljYXRlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouY2VydGlmaWNhdGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLHlRKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG5zUmVjb3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZG5zUmVjb3JkcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmRuc1JlY29yZHMsImdldCIpLHNldDppKCh6LE4pPT57ei5kbnNSZWNvcmRzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSx5USh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbkxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImFjdGlvbkxvYWRpbmciaW4geiwiaGFzIiksZ2V0Omkoej0+ei5hY3Rpb25Mb2FkaW5nLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYWN0aW9uTG9hZGluZz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZikseVEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMDAwcHg7Ij4KICAgICAgPHN6LWRvbWFpbi1kZXRhaWwtdmlldwogICAgICAgIC5kb21haW49JHt7aWQ6IjEiLG5hbWU6ImV4YW1wbGUuY29tIixzdGF0dXM6ImFjdGl2ZSIsdmVyaWZpZWQ6ITAsY3JlYXRlZEF0OiIyMDI0LTAxLTEwIixwcm94eVJvdXRlczpbIi9hcGkvKiIsIi9hcHAvKiJdfX0KICAgICAgICAuY2VydGlmaWNhdGU9JHt7aWQ6IjEiLGRvbWFpbjoiZXhhbXBsZS5jb20iLGlzc3VlcjoiTGV0J3MgRW5jcnlwdCIsdmFsaWRGcm9tOiIyMDI0LTAxLTEwIix2YWxpZFVudGlsOiIyMDI0LTA0LTEwIixkYXlzUmVtYWluaW5nOjQ1LHN0YXR1czoidmFsaWQiLGF1dG9SZW5ldzohMCxjaGFpbjpbIlIzIiwiSVNSRyBSb290IFgxIl19fQogICAgICAgIC5kbnNSZWNvcmRzPSR7W3tpZDoiMSIsdHlwZToiQSIsbmFtZToiQCIsdmFsdWU6IjE5Mi4xNjguMS4xMDAiLHR0bDozNjAwfSx7aWQ6IjIiLHR5cGU6IkNOQU1FIixuYW1lOiJ3d3ciLHZhbHVlOiJleGFtcGxlLmNvbSIsdHRsOjM2MDB9LHtpZDoiMyIsdHlwZToiTVgiLG5hbWU6IkAiLHZhbHVlOiJtYWlsLmV4YW1wbGUuY29tIix0dGw6MzYwMCxwcmlvcml0eToxMH0se2lkOiI0Iix0eXBlOiJUWFQiLG5hbWU6IkAiLHZhbHVlOiJ2PXNwZjEgaW5jbHVkZTpfc3BmLmV4YW1wbGUuY29tIH5hbGwiLHR0bDozNjAwfV19CiAgICAgID48L3N6LWRvbWFpbi1kZXRhaWwtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT0kdSh0aGlzLG8sbnVsbCk7Z2V0IGRvbWFpbigpe3JldHVybiB0aGlzLiNlfXNldCBkb21haW4oTSl7dGhpcy4jZT1NfSN0PSgkdSh0aGlzLGwpLCR1KHRoaXMsZCxudWxsKSk7Z2V0IGNlcnRpZmljYXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNlcnRpZmljYXRlKE0pe3RoaXMuI3Q9TX0jYT0oJHUodGhpcyx1KSwkdSh0aGlzLGIsW10pKTtnZXQgZG5zUmVjb3Jkcygpe3JldHVybiB0aGlzLiNhfXNldCBkbnNSZWNvcmRzKE0pe3RoaXMuI2E9TX0jcz0oJHUodGhpcyx2KSwkdSh0aGlzLG0sITEpKTtnZXQgYWN0aW9uTG9hZGluZygpe3JldHVybiB0aGlzLiNzfXNldCBhY3Rpb25Mb2FkaW5nKE0pe3RoaXMuI3M9TX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRvbWFpbi1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWYzYzciLCJyZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkOTc3MDYiLCIjZjU5ZTBiIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLmRvbWFpbi1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudmVyaWZpZWQtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnZlcmlmaWVkLWJhZGdlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kYW5nZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlcjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy10aWxlLmZ1bGwtd2lkdGggewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCgogICAgICAuc2VjdGlvbi1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuY2VydC1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZmRmNCIsInJnYmEoMzQsIDE5NywgOTQsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5jZXJ0LXN0YXR1cy5leHBpcmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZiZWIiLCJyZ2JhKDI0NSwgMTU4LCAxMSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtc3RhdHVzLmV4cGlyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmMmYyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24udmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuY2VydC1pY29uLmV4cGlyaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24uZXhwaXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5jZXJ0LWluZm8gewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5jZXJ0LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2VydC1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuY2VydC1kYXlzIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMudmFsaWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMuZXhwaXJpbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMuZXhwaXJlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmluZm8tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEwcHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuaW5mby1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmluZm8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuaW5mby12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tdmFsdWUuZW5hYmxlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmNoYWluLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY2hhaW4tYmFkZ2UgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRucy10YWJsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5kbnMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxZnIgMmZyIDgwcHggNjBweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5kbnMtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxZnIgMmZyIDgwcHggNjBweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmRucy1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmRucy1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBtYXJnaW46IDAgLTE2cHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kbnMtdHlwZSB7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmRucy1uYW1lIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZG5zLXZhbHVlIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZG5zLXR0bCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRucy1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuaWNvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmljb24tYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAucm91dGVzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucm91dGUtYmFkZ2UgewogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuZG9tYWluP3dgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluLW5hbWUiPgogICAgICAgICAgICAke3RoaXMuZG9tYWluLm5hbWV9CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHt0aGlzLmRvbWFpbi5zdGF0dXN9Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWRvdCI+PC9zcGFuPgogICAgICAgICAgICAgICR7dGhpcy5kb21haW4uc3RhdHVzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3RoaXMuZG9tYWluLnN0YXR1cy5zbGljZSgxKX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkb21haW4tbWV0YSI+CiAgICAgICAgICAgICR7dGhpcy5kb21haW4udmVyaWZpZWQ/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmVyaWZpZWQtYmFkZ2UiPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTEuMDhWMTJhMTAgMTAgMCAxIDEtNS45My05LjE0Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIyIDQgMTIgMTQuMDEgOSAxMS4wMSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgVmVyaWZpZWQKICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGA6d2A8c3Bhbj5Ob3QgdmVyaWZpZWQ8L3NwYW4+YH0KICAgICAgICAgICAgPHNwYW4+QWRkZWQgJHt0aGlzLmRvbWFpbi5jcmVhdGVkQXR9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWFjdGlvbnMiPgogICAgICAgICAgJHt0aGlzLmRvbWFpbi52ZXJpZmllZD8iIjp3YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVZlcmlmeSgpfT4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMCA2IDkgMTcgNCAxMiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBWZXJpZnkgRG9tYWluCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYH0KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGFuZ2VyIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZSgpfT4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2bTMgMFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgICAgPCEtLSBDZXJ0aWZpY2F0ZSBTZWN0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMTEiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMSIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNyAxMVY3YTUgNSAwIDAgMSAxMCAwdjQiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBTU0wgQ2VydGlmaWNhdGUKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7dGhpcy5jZXJ0aWZpY2F0ZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtc3RhdHVzICR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXN9Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtaWNvbiAke3RoaXMuY2VydGlmaWNhdGUuc3RhdHVzfSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXM9PT0idmFsaWQiP3dgCiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDExLjA4VjEyYTEwIDEwIDAgMSAxLTUuOTMtOS4xNCI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjIgNCAxMiAxNC4wMSA5IDExLjAxIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICBgOnRoaXMuY2VydGlmaWNhdGUuc3RhdHVzPT09ImV4cGlyaW5nIj93YAogICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyLjAxIiB5Mj0iMTYiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxNSIgeTE9IjkiIHgyPSI5IiB5Mj0iMTUiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI5IiB5MT0iOSIgeDI9IjE1IiB5Mj0iMTUiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1pbmZvIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC10aXRsZSI+JHt0aGlzLmNlcnRpZmljYXRlLnN0YXR1cz09PSJ2YWxpZCI/IkNlcnRpZmljYXRlIFZhbGlkIjp0aGlzLmNlcnRpZmljYXRlLnN0YXR1cz09PSJleHBpcmluZyI/IkNlcnRpZmljYXRlIEV4cGlyaW5nIFNvb24iOiJDZXJ0aWZpY2F0ZSBFeHBpcmVkIn08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1zdWJ0aXRsZSI+SXNzdWVkIGJ5ICR7dGhpcy5jZXJ0aWZpY2F0ZS5pc3N1ZXJ9PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtZGF5cyAke3RoaXMuY2VydGlmaWNhdGUuc3RhdHVzfSI+JHtNYXRoLmFicyh0aGlzLmNlcnRpZmljYXRlLmRheXNSZW1haW5pbmcpfTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LWRheXMtbGFiZWwiPiR7dGhpcy5jZXJ0aWZpY2F0ZS5kYXlzUmVtYWluaW5nPj0wPyJkYXlzIGxlZnQiOiJkYXlzIGFnbyJ9PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPlZhbGlkIEZyb208L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+JHt0aGlzLmNlcnRpZmljYXRlLnZhbGlkRnJvbX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPlZhbGlkIFVudGlsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPiR7dGhpcy5jZXJ0aWZpY2F0ZS52YWxpZFVudGlsfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+QXV0by1SZW5ldzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlICR7dGhpcy5jZXJ0aWZpY2F0ZS5hdXRvUmVuZXc/ImVuYWJsZWQiOiIifSI+JHt0aGlzLmNlcnRpZmljYXRlLmF1dG9SZW5ldz8iRW5hYmxlZCI6IkRpc2FibGVkIn08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlLmNoYWluJiZ0aGlzLmNlcnRpZmljYXRlLmNoYWluLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5DZXJ0aWZpY2F0ZSBDaGFpbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhaW4tbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlLmNoYWluLm1hcChNPT53YDxzcGFuIGNsYXNzPSJjaGFpbi1iYWRnZSI+JHtNfTwvc3Bhbj5gKX0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGNlcnRpZmljYXRlIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlbmV3Q2VydGlmaWNhdGUoKX0+UmVuZXc8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8IS0tIFByb3h5IFJvdXRlcyBTZWN0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTYgMyAyMSAzIDIxIDgiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iNCIgeTE9IjIwIiB4Mj0iMjEiIHkyPSIzIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMSAxNiAyMSAyMSAxNiAyMSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxNSIgeTE9IjE1IiB4Mj0iMjEiIHkyPSIyMSI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjQiIHkxPSI0IiB4Mj0iOSIgeTI9IjkiPjwvbGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBQcm94eSBSb3V0ZXMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7dGhpcy5kb21haW4ucHJveHlSb3V0ZXMmJnRoaXMuZG9tYWluLnByb3h5Um91dGVzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm91dGVzLWxpc3QiPgogICAgICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi5wcm94eVJvdXRlcy5tYXAoTT0+d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJvdXRlLWJhZGdlIj4ke019PC9zcGFuPgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gcHJveHkgcm91dGVzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8IS0tIEROUyBSZWNvcmRzIFNlY3Rpb24gLS0+CiAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iZnVsbC13aWR0aCI+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjIiIHkxPSIxMiIgeDI9IjIyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAyYTE1LjMgMTUuMyAwIDAgMSA0IDEwIDE1LjMgMTUuMyAwIDAgMS00IDEwIDE1LjMgMTUuMyAwIDAgMS00LTEwIDE1LjMgMTUuMyAwIDAgMSA0LTEweiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIEROUyBSZWNvcmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAke3RoaXMuZG5zUmVjb3Jkcy5sZW5ndGg+MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRucy10YWJsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkbnMtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPHNwYW4+VHlwZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+TmFtZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+VmFsdWU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPlRUTDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAke3RoaXMuZG5zUmVjb3Jkcy5tYXAoTT0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG5zLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy10eXBlIj4ke00udHlwZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy1uYW1lIj4ke00ubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy12YWx1ZSIgdGl0bGU9IiR7TS52YWx1ZX0iPiR7TS5wcmlvcml0eT9gJHtNLnByaW9yaXR5fSBgOiIifSR7TS52YWx1ZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy10dGwiPiR7TS50dGx9czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJFZGl0IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVFZGl0RG5zUmVjb3JkKE0pfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSA0SDRhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTciPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTguNSAyLjVhMi4xMjEgMi4xMjEgMCAwIDEgMyAzTDEyIDE1bC00IDEgMS00IDkuNS05LjV6Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiBkYW5nZXIiIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZURuc1JlY29yZChNKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzIDYgNSA2IDIxIDYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNm0zIDBWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIEROUyByZWNvcmRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFkZERuc1JlY29yZCgpfT4KICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIEFkZCBSZWNvcmQKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgPC9kaXY+CiAgICBgOndgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGRvbWFpbiBzZWxlY3RlZDwvZGl2PmB9aGFuZGxlVmVyaWZ5KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmVyaWZ5LWRvbWFpbiIse2RldGFpbDp0aGlzLmRvbWFpbixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1kb21haW4iLHtkZXRhaWw6dGhpcy5kb21haW4sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZW5ld0NlcnRpZmljYXRlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVuZXctY2VydGlmaWNhdGUiLHtkZXRhaWw6dGhpcy5jZXJ0aWZpY2F0ZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFkZERuc1JlY29yZCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFkZC1kbnMtcmVjb3JkIix7ZGV0YWlsOnRoaXMuZG9tYWluLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRWRpdERuc1JlY29yZChNKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlZGl0LWRucy1yZWNvcmQiLHtkZXRhaWw6TSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZURuc1JlY29yZChNKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUtZG5zLXJlY29yZCIse2RldGFpbDpNLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLCR1KHRoaXMsZil9c3RhdGljeyR1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciB3USxEdSxKUWEsbjlhPWcoKCk9PntwZSgpO3dRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxEdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSlFhPSgoKT0+e2xldCBzPVtuZSgic3otbXRhLWxpc3QtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek10YUxpc3RWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtZKCldLGM9W1koKV0seD1bWSgpXSx3USh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVtYWlscyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZW1haWxzImluIHosImhhcyIpLGdldDppKHo9PnouZW1haWxzLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZW1haWxzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSx3USh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWFyY2hRdWVyeSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouc2VhcmNoUXVlcnk9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLHdRKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzdGF0dXNGaWx0ZXIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zdGF0dXNGaWx0ZXIsImdldCIpLHNldDppKCh6LE4pPT57ei5zdGF0dXNGaWx0ZXI9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLHdRKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkaXJlY3Rpb25GaWx0ZXIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5kaXJlY3Rpb25GaWx0ZXIsImdldCIpLHNldDppKCh6LE4pPT57ei5kaXJlY3Rpb25GaWx0ZXI9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLHdRKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1tdGEtbGlzdC12aWV3CiAgICAgICAgLmVtYWlscz0ke1t7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIixzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIn0se2lkOiIyIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImJvdW5jZWQiLGZyb206ImFsZXJ0c0BzZXJ2ZS56b25lIix0bzoiaW52YWxpZEBub3doZXJlLnRlc3QiLHN1YmplY3Q6IlNlcnZpY2UgQWxlcnQ6IENQVSBVc2FnZSBIaWdoIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6Mjg6MTAiLG1lc3NhZ2VJZDoiPGRlZjQ1NkBzZXJ2ZS56b25lPiIsc2l6ZToiOC4yIEtCIn0se2lkOiIzIixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsdG86ImFkbWluQHNlcnZlLnpvbmUiLHN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyNTowMCIsbWVzc2FnZUlkOiI8Z2hpNzg5QGN1c3RvbWVyLmNvbT4iLHNpemU6IjI0LjEgS0IifSx7aWQ6IjQiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoicmVqZWN0ZWQiLGZyb206ImJpbGxpbmdAc2VydmUuem9uZSIsdG86ImJsb2NrZWRAc3BhbS1kb21haW4udGVzdCIsc3ViamVjdDoiSW52b2ljZSAjMjAyNC0wMDEiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyMDo0NSIsbWVzc2FnZUlkOiI8amtsMDEyQHNlcnZlLnpvbmU+IixzaXplOiI0NS42IEtCIn0se2lkOiI1IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlZmVycmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJzbG93QHJlbW90ZS1zZXJ2ZXIudGVzdCIsc3ViamVjdDoiUGFzc3dvcmQgUmVzZXQgUmVxdWVzdCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjE1OjMwIixtZXNzYWdlSWQ6Ijxtbm8zNDVAc2VydmUuem9uZT4iLHNpemU6IjYuOCBLQiJ9LHtpZDoiNiIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToiY2lAZ2l0aHViLmNvbSIsdG86ImRldm9wc0BzZXJ2ZS56b25lIixzdWJqZWN0OiJCdWlsZCAjNDUyMSBwYXNzZWQiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoxMDowMCIsbWVzc2FnZUlkOiI8cHFyNjc4QGdpdGh1Yi5jb20+IixzaXplOiIxNS4zIEtCIn0se2lkOiI3IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6InBlbmRpbmciLGZyb206InJlcG9ydHNAc2VydmUuem9uZSIsdG86InRlYW1Ac2VydmUuem9uZSIsc3ViamVjdDoiV2Vla2x5IEluZnJhc3RydWN0dXJlIFJlcG9ydCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjA1OjAwIixtZXNzYWdlSWQ6IjxzdHU5MDFAc2VydmUuem9uZT4iLHNpemU6IjEwMi43IEtCIn1dfQogICAgICA+PC9zei1tdGEtbGlzdC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTVRBIl07I2U9RHUodGhpcyxvLFtdKTtnZXQgZW1haWxzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGVtYWlscyhNKXt0aGlzLiNlPU19I3Q9KER1KHRoaXMsbCksRHUodGhpcyxkLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KE0pe3RoaXMuI3Q9TX0jYT0oRHUodGhpcyx1KSxEdSh0aGlzLGIsImFsbCIpKTtnZXQgc3RhdHVzRmlsdGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1c0ZpbHRlcihNKXt0aGlzLiNhPU19I3M9KER1KHRoaXMsdiksRHUodGhpcyxtLCJhbGwiKSk7Z2V0IGRpcmVjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNzfXNldCBkaXJlY3Rpb25GaWx0ZXIoTSl7dGhpcy4jcz1NfWdldCBmaWx0ZXJlZEVtYWlscygpe3JldHVybiB0aGlzLmVtYWlscy5maWx0ZXIoTT0+e2lmKHRoaXMuc3RhdHVzRmlsdGVyIT09ImFsbCImJk0uc3RhdHVzIT09dGhpcy5zdGF0dXNGaWx0ZXJ8fHRoaXMuZGlyZWN0aW9uRmlsdGVyIT09ImFsbCImJk0uZGlyZWN0aW9uIT09dGhpcy5kaXJlY3Rpb25GaWx0ZXIpcmV0dXJuITE7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IHo9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiBNLmZyb20udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KXx8TS50by50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHopfHxNLnN1YmplY3QudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KXx8TS5tZXNzYWdlSWQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KX1yZXR1cm4hMH0pfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuY2hpcC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmNoaXA6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2hpcC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucmVzdWx0cy1jb3VudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHggOTBweCAxLjVmciAxLjVmciAyZnIgMTQwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHggOTBweCAxLjVmciAxLjVmciAyZnIgMTQwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAudGFibGUtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24taWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWljb24uaW5ib3VuZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1pY29uLm91dGJvdW5kIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlbGl2ZXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYm91bmNlZCwKICAgICAgLnN0YXR1cy1iYWRnZS5yZWplY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGVmZXJyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5lbWFpbC1mcm9tLAogICAgICAuZW1haWwtdG8gewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmVtYWlsLXN1YmplY3QgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZW1haWwtdGltZXN0YW1wIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IE09dGhpcy5maWx0ZXJlZEVtYWlscztyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWJhciI+CiAgICAgICAgPGlucHV0CiAgICAgICAgICBjbGFzcz0ic2VhcmNoLWlucHV0IgogICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYnkgZnJvbSwgdG8sIHN1YmplY3QsIG9yIG1lc3NhZ2UgSUQuLi4iCiAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgQGlucHV0PSR7ej0+e3RoaXMuc2VhcmNoUXVlcnk9ei50YXJnZXQudmFsdWV9fQogICAgICAgIC8+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiaW5ib3VuZCIsIm91dGJvdW5kIl0ubWFwKHo9PndgCiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuZGlyZWN0aW9uRmlsdGVyPT09ej8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmRpcmVjdGlvbkZpbHRlcj16fX0KICAgICAgICAgICAgPiR7ej09PSJhbGwiPyJBbGwiOno9PT0iaW5ib3VuZCI/IkluYm91bmQiOiJPdXRib3VuZCJ9PC9idXR0b24+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlwLWdyb3VwIj4KICAgICAgICAgICR7WyJhbGwiLCJkZWxpdmVyZWQiLCJib3VuY2VkIiwicmVqZWN0ZWQiLCJkZWZlcnJlZCIsInBlbmRpbmciXS5tYXAoej0+d2AKICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5zdGF0dXNGaWx0ZXI9PT16PyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e3RoaXMuc3RhdHVzRmlsdGVyPXp9fQogICAgICAgICAgICA+JHt6PT09ImFsbCI/IkFsbCI6ei5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt6LnNsaWNlKDEpfTwvYnV0dG9uPgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0icmVzdWx0cy1jb3VudCI+U2hvd2luZyAke00ubGVuZ3RofSBvZiAke3RoaXMuZW1haWxzLmxlbmd0aH0gZW1haWxzPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TdGF0dXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5Gcm9tPC9zcGFuPgogICAgICAgICAgPHNwYW4+VG88L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TdWJqZWN0PC9zcGFuPgogICAgICAgICAgPHNwYW4+VGltZXN0YW1wPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7TS5sZW5ndGg+MD9NLm1hcCh6PT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVFbWFpbENsaWNrKHopfT4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpcmVjdGlvbi1pY29uICR7ei5kaXJlY3Rpb259Ij4KICAgICAgICAgICAgICAke3ouZGlyZWN0aW9uPT09ImluYm91bmQiP3dgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz48cG9seWxpbmUgcG9pbnRzPSIxOSAxMiAxMiAxOSA1IDEyIi8+PC9zdmc+YDp3YDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSIxMiIgeTE9IjE5IiB4Mj0iMTIiIHkyPSI1Ii8+PHBvbHlsaW5lIHBvaW50cz0iNSAxMiAxMiA1IDE5IDEyIi8+PC9zdmc+YH0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7ei5zdGF0dXN9Ij4ke3ouc3RhdHVzfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbWFpbC1mcm9tIiB0aXRsZT0iJHt6LmZyb219Ij4ke3ouZnJvbX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbWFpbC10byIgdGl0bGU9IiR7ei50b30iPiR7ei50b308L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbWFpbC1zdWJqZWN0IiB0aXRsZT0iJHt6LnN1YmplY3R9Ij4ke3ouc3ViamVjdH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbWFpbC10aW1lc3RhbXAiPiR7ei50aW1lc3RhbXB9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCk6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBlbWFpbHMgZm91bmQ8L2Rpdj4KICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlRW1haWxDbGljayhNKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlbWFpbC1jbGljayIse2RldGFpbDpNLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLER1KHRoaXMsZil9c3RhdGlje0R1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBsOWEsdm90LGVKYSxjOWE9ZygoKT0+e3BlKCk7bDlhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx2b3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGVKYT0oKCk9PntsZXQgcz1bbmUoInN6LW10YS1kZXRhaWwtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek10YURldGFpbFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxsOWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbWFpbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZW1haWwiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5lbWFpbCwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LmVtYWlsPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxsOWEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LW10YS1kZXRhaWwtdmlldwogICAgICAgIC5lbWFpbD0ke3tpZDoiMSIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206Im5vcmVwbHlAc2VydmUuem9uZSIsdG86InVzZXJAZXhhbXBsZS5jb20iLHRvTGlzdDpbInVzZXJAZXhhbXBsZS5jb20iXSxzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIixzbXRwTG9nOlt7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtU1RBUlRUTFMiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIFNJWkUgNTI0Mjg4MDAiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiU1RBUlRUTFMifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMCBSZWFkeSB0byBzdGFydCBUTFMiLHJlc3BvbnNlQ29kZToyMjB9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLnNlcnZlLnpvbmUifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLmV4YW1wbGUuY29tIEhlbGxvIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1BVVRIIFBMQUlOIExPR0lOIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkFVVEggUExBSU4gQUhWelpYSUFjR0Z6YzNkdmNtUT0ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIzNSAyLjcuMCBBdXRoZW50aWNhdGlvbiBzdWNjZXNzZnVsIixyZXNwb25zZUNvZGU6MjM1fSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ik1BSUwgRlJPTTo8bm9yZXBseUBzZXJ2ZS56b25lPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlJDUFQgVE86PHVzZXJAZXhhbXBsZS5jb20+In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgQWNjZXB0ZWQiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiREFUQSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDonMzU0IEVudGVyIG1lc3NhZ2UsIGVuZGluZyB3aXRoICIuIiBvbiBhIGxpbmUgYnkgaXRzZWxmJyxyZXNwb25zZUNvZGU6MzU0fSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ii4ifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyBpZD0xcFEyclMtMDAwM0FiLUM0IixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlFVSVQifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMSBtYWlsLmV4YW1wbGUuY29tIGNsb3NpbmcgY29ubmVjdGlvbiIscmVzcG9uc2VDb2RlOjIyMX1dLGNvbm5lY3Rpb25JbmZvOntzb3VyY2VJcDoiMTAuMC4xLjUwIixzb3VyY2VIb3N0bmFtZToibWFpbC5zZXJ2ZS56b25lIixkZXN0aW5hdGlvbklwOiI5My4xODQuMjE2LjM0IixkZXN0aW5hdGlvblBvcnQ6MjUsdGxzVmVyc2lvbjoiVExTdjEuMyIsdGxzQ2lwaGVyOiJUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IixhdXRoZW50aWNhdGVkOiEwLGF1dGhNZXRob2Q6IlBMQUlOIixhdXRoVXNlcjoibm9yZXBseUBzZXJ2ZS56b25lIn0sYXV0aGVudGljYXRpb25SZXN1bHRzOntzcGY6InBhc3MiLHNwZkRvbWFpbjoic2VydmUuem9uZSIsZGtpbToicGFzcyIsZGtpbURvbWFpbjoic2VydmUuem9uZSIsZG1hcmM6InBhc3MiLGRtYXJjUG9saWN5OiJyZWplY3QifSxoZWFkZXJzOntGcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLFRvOiJ1c2VyQGV4YW1wbGUuY29tIixTdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLERhdGU6Ik1vbiwgMTUgSmFuIDIwMjQgMTQ6MzA6MjIgKzAwMDAiLCJNSU1FLVZlcnNpb24iOiIxLjAiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgifSxib2R5Oic8aHRtbD5cXG48aGVhZD48dGl0bGU+V2VsY29tZTwvdGl0bGU+PC9oZWFkPlxcbjxib2R5PlxcbiAgPGgxPldlbGNvbWUgdG8gc2VydmUuem9uZSE8L2gxPlxcbiAgPHA+WW91ciBhY2NvdW50IGhhcyBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LjwvcD5cXG4gIDxhIGhyZWY9Imh0dHBzOi8vc2VydmUuem9uZS9kYXNoYm9hcmQiPkdvIHRvIERhc2hib2FyZDwvYT5cXG48L2JvZHk+XFxuPC9odG1sPid9fQogICAgICA+PC9zei1tdGEtZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJNVEEiXTsjZT12b3QodGhpcyxvLG51bGwpO2dldCBlbWFpbCgpe3JldHVybiB0aGlzLiNlfXNldCBlbWFpbChkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuYmFjay1saW5rIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYmFjay1saW5rOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZW1haWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5lbWFpbC1zdWJqZWN0IHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmJhZGdlLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5kZWxpdmVyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmJvdW5jZWQsCiAgICAgIC5zdGF0dXMtYmFkZ2UucmVqZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlZmVycmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1iYWRnZS5pbmJvdW5kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1iYWRnZS5vdXRib3VuZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuc2lkZWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmNhcmQtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuY2FyZC1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmNhcmQtdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jYXJkLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY2FyZC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmRldGFpbC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLnNtdHAtbG9nLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zbXRwLWxvZy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAuc210cC1sb2ctY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zbXRwLWxvZy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAvKiBQaGFzZSBzZXBhcmF0b3JzICovCiAgICAgIC5zbXRwLXBoYXNlLXNlcGFyYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuc210cC1waGFzZS1saW5lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnNtdHAtcGhhc2UtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLyogQ2hhdCBidWJibGVzICovCiAgICAgIC5zbXRwLWJ1YmJsZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgICAgICBtYXgtd2lkdGg6IDcwJTsKICAgICAgfQoKICAgICAgLnNtdHAtYnViYmxlLmNsaWVudCB7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgfQoKICAgICAgLnNtdHAtYnViYmxlLnNlcnZlciB7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMDYpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4xMCkiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjNGFkZTgwIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICB9CgogICAgICAuc210cC1idWJibGUtY29tbWFuZCB7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc210cC1idWJibGUtbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnNtdHAtYnViYmxlLnNlcnZlciAuc210cC1idWJibGUtbWV0YSB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLXRhZyB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi10YWcuY2xpZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tdGFnLnNlcnZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzRhZGU4MCIpfTsKICAgICAgfQoKICAgICAgLyogUmVzcG9uc2UgY29kZSBiYWRnZXMgKi8KICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAxcHggN3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UuY29kZS0yeHggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjE1KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuMjUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5yZXNwb25zZS1jb2RlLWJhZGdlLmNvZGUtM3h4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMjUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5yZXNwb25zZS1jb2RlLWJhZGdlLmNvZGUtNHh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTAsIDIwNCwgMjEsIDAuMTUpIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMjUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5yZXNwb25zZS1jb2RlLWJhZGdlLmNvZGUtNXh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xNSkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjI1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAvKiBTTVRQIG1ldGFkYXRhIGJhbm5lciDigJQgc2l0cyBpbnNpZGUgY29udGVudCwgYWJvdmUgdGhlIGxvZyAqLwogICAgICAuc210cC1oZWFkZXItc3VidGl0bGUgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4OwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tYmFkZ2UuaW5ib3VuZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMTIpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tYmFkZ2Uub3V0Ym91bmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuZW1haWwtYm9keS1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGxzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYXV0aC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmF1dGgtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5hdXRoLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYXV0aC1kb21haW4gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5hdXRoLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuYXV0aC1iYWRnZS5wYXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmF1dGgtYmFkZ2UuZmFpbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5hdXRoLWJhZGdlLnNvZnRmYWlsLAogICAgICAuYXV0aC1iYWRnZS5uZXV0cmFsLAogICAgICAuYXV0aC1iYWRnZS5ub25lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5yZWplY3Rpb24tY2FyZDo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWNhY2EiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAucmVqZWN0aW9uLWNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAucmVqZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5yZWplY3Rpb24tdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWYyZjIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5MWIxYiIsIiNmY2E1YTUiKX07CiAgICAgIH0KCiAgICAgIC5yZWplY3Rpb24tdGV4dDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAubm8tZW1haWwgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMuZW1haWwpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibm8tZW1haWwiPk5vIGVtYWlsIHNlbGVjdGVkPC9kaXY+YDtsZXQgZD10aGlzLmVtYWlsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImJhY2stbGluayIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQmFjaygpfT4KICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiPjwvcG9seWxpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEJhY2sgdG8gRW1haWxzCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZW1haWwtaGVhZGVyIj4KICAgICAgICA8aDEgY2xhc3M9ImVtYWlsLXN1YmplY3QiPiR7ZC5zdWJqZWN0fTwvaDE+CiAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtZ3JvdXAiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke2Quc3RhdHVzfSI+JHtkLnN0YXR1c308L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlyZWN0aW9uLWJhZGdlICR7ZC5kaXJlY3Rpb259Ij4ke2QuZGlyZWN0aW9ufTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPgogICAgICAgICAgPCEtLSBFbWFpbCBNZXRhZGF0YSAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+RW1haWwgTWV0YWRhdGE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1saXN0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+RnJvbTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmZyb219PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlRvPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QudG9MaXN0LmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAke2QuY2MmJmQuY2MubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkNDPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jYy5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5TdWJqZWN0PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2Quc3ViamVjdH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+RGF0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLnRpbWVzdGFtcH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+TWVzc2FnZSBJRDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLm1lc3NhZ2VJZH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+U2l6ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLnNpemV9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPCEtLSBTTVRQIFRyYW5zYWN0aW9uIExvZyAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+U01UUCBUcmFuc2FjdGlvbiBMb2c8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic210cC1kaXJlY3Rpb24tYmFkZ2UgJHtkLmRpcmVjdGlvbn0iPiR7ZC5kaXJlY3Rpb259PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1oZWFkZXItc3VidGl0bGUiPgogICAgICAgICAgICAgICR7ZC5kaXJlY3Rpb249PT0ib3V0Ym91bmQiP2Ake2QuY29ubmVjdGlvbkluZm8uc291cmNlSG9zdG5hbWV9IFx1MjE5MiAke2QuY29ubmVjdGlvbkluZm8uZGVzdGluYXRpb25JcH06JHtkLmNvbm5lY3Rpb25JbmZvLmRlc3RpbmF0aW9uUG9ydH1gOmAke2QuY29ubmVjdGlvbkluZm8uc291cmNlSXB9IFx1MjE5MiAke2QuY29ubmVjdGlvbkluZm8uc291cmNlSG9zdG5hbWV9OiR7ZC5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvblBvcnR9YH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJTbXRwTG9nKGQpfQogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY29weVNtdHBMb2coKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIENvcHkgTG9nCiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPCEtLSBFbWFpbCBCb2R5IC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5FbWFpbCBCb2R5IChFc2NhcGVkKTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5SYXcgY29udGVudCDigJQgSFRNTCBpcyBub3QgcmVuZGVyZWQ8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cHJlIGNsYXNzPSJlbWFpbC1ib2R5LWNvbnRhaW5lciI+JHtkLmJvZHl9PC9wcmU+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciI+CiAgICAgICAgICA8IS0tIENvbm5lY3Rpb24gSW5mbyAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+Q29ubmVjdGlvbiBJbmZvPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtbGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlNvdXJjZSBJUDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLnNvdXJjZUlwfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Tb3VyY2UgSG9zdG5hbWU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby5zb3VyY2VIb3N0bmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+RGVzdGluYXRpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvbklwfToke2QuY29ubmVjdGlvbkluZm8uZGVzdGluYXRpb25Qb3J0fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5UTFM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPgogICAgICAgICAgICAgICAgICAgICR7ZC5jb25uZWN0aW9uSW5mby50bHNWZXJzaW9uP3dgPHNwYW4gY2xhc3M9InRscy1iYWRnZSI+JHtkLmNvbm5lY3Rpb25JbmZvLnRsc1ZlcnNpb259PC9zcGFuPmA6Ik5vbmUifQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7ZC5jb25uZWN0aW9uSW5mby50bHNDaXBoZXI/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkNpcGhlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuY29ubmVjdGlvbkluZm8udGxzQ2lwaGVyfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5BdXRoZW50aWNhdGVkPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuY29ubmVjdGlvbkluZm8uYXV0aGVudGljYXRlZD8iWWVzIjoiTm8ifTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtkLmNvbm5lY3Rpb25JbmZvLmF1dGhlbnRpY2F0ZWQ/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkF1dGggTWV0aG9kPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby5hdXRoTWV0aG9kfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5BdXRoIFVzZXI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLmF1dGhVc2VyfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDwhLS0gQXV0aGVudGljYXRpb24gUmVzdWx0cyAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+QXV0aGVudGljYXRpb24gUmVzdWx0czwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0aC1yb3ciPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtbGFiZWwiPlNQRjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtZG9tYWluIj4ke2QuYXV0aGVudGljYXRpb25SZXN1bHRzLnNwZkRvbWFpbn08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWJhZGdlICR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuc3BmfSI+JHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5zcGZ9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dGgtcm93Ij4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWxhYmVsIj5ES0lNPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1kb21haW4iPiR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZGtpbURvbWFpbn08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWJhZGdlICR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZGtpbX0iPiR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZGtpbX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0aC1yb3ciPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtbGFiZWwiPkRNQVJDPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1kb21haW4iPnBvbGljeTogJHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5kbWFyY1BvbGljeX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWJhZGdlICR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZG1hcmN9Ij4ke2QuYXV0aGVudGljYXRpb25SZXN1bHRzLmRtYXJjfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8IS0tIFJlamVjdGlvbiBEZXRhaWxzIChjb25kaXRpb25hbCkgLS0+CiAgICAgICAgICAke2Quc3RhdHVzPT09InJlamVjdGVkInx8ZC5zdGF0dXM9PT0iYm91bmNlZCI/d2AKICAgICAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0icmVqZWN0aW9uLWNhcmQiPgogICAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPlJlamVjdGlvbiBEZXRhaWxzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7ZC5yZWplY3Rpb25SZWFzb24/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVqZWN0aW9uLWxhYmVsIj5SZWplY3Rpb24gUmVhc29uPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlamVjdGlvbi10ZXh0Ij4ke2QucmVqZWN0aW9uUmVhc29ufTwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7ZC5ib3VuY2VNZXNzYWdlP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlamVjdGlvbi1sYWJlbCI+Qm91bmNlIE1lc3NhZ2U8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVqZWN0aW9uLXRleHQiPiR7ZC5ib3VuY2VNZXNzYWdlfTwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Z2V0UmVzcG9uc2VDb2RlQmFkZ2VDbGFzcyhkKXtyZXR1cm4gZD49NTAwPyJjb2RlLTV4eCI6ZD49NDAwPyJjb2RlLTR4eCI6ZD49MzAwPyJjb2RlLTN4eCI6ImNvZGUtMnh4In1nZXRTbXRwUGhhc2VzKGQpe2xldCB1PVtdLGM9IiIsYj0wO2ZvcihsZXQgdiBvZiBkKXtsZXQgeD12LmNvbW1hbmQudG9VcHBlckNhc2UoKSxtPWM7aWYodi5kaXJlY3Rpb249PT0iY2xpZW50IiYmKHguc3RhcnRzV2l0aCgiRUhMTyIpfHx4LnN0YXJ0c1dpdGgoIkhFTE8iKT8oYisrLGI9PT0xP209ImNvbm5lY3Rpb24iOm09InBvc3QtdGxzIik6eD09PSJTVEFSVFRMUyI/bT0idGxzIjp4LnN0YXJ0c1dpdGgoIkFVVEgiKT9tPSJhdXRoIjp4LnN0YXJ0c1dpdGgoIk1BSUwgRlJPTSIpfHx4LnN0YXJ0c1dpdGgoIlJDUFQgVE8iKXx8eD09PSJEQVRBInx8eD09PSIuIj9tPSJ0cmFuc2ZlciI6eD09PSJRVUlUIiYmKG09ImNsb3NpbmciKSksdi5kaXJlY3Rpb249PT0ic2VydmVyIiYmbT09PSIiJiYobT1jfHwiY29ubmVjdGlvbiIpLG09PT0iIiYmKG09ImNvbm5lY3Rpb24iKSxtIT09Yyl7Yz1tO2xldCBmPXtjb25uZWN0aW9uOiJDb25uZWN0aW9uIix0bHM6IlRMUyBOZWdvdGlhdGlvbiIsInBvc3QtdGxzIjoiUG9zdC1UTFMgSGFuZHNoYWtlIixhdXRoOiJBdXRoZW50aWNhdGlvbiIsdHJhbnNmZXI6Ik1haWwgVHJhbnNmZXIiLGNsb3Npbmc6IkNsb3NpbmcifTt1LnB1c2goe3BoYXNlOm0sbGFiZWw6ZlttXXx8bSxlbnRyaWVzOltdfSl9dS5sZW5ndGg9PT0wJiZ1LnB1c2goe3BoYXNlOiJjb25uZWN0aW9uIixsYWJlbDoiQ29ubmVjdGlvbiIsZW50cmllczpbXX0pLHVbdS5sZW5ndGgtMV0uZW50cmllcy5wdXNoKHYpfXJldHVybiB1fXJlbmRlclNtdHBMb2coZCl7bGV0IHU9dGhpcy5nZXRTbXRwUGhhc2VzKGQuc210cExvZyk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InNtdHAtbG9nLWNvbnRhaW5lciI+CiAgICAgICAgJHt1Lm1hcChjPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1waGFzZS1zZXBhcmF0b3IiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLXBoYXNlLWxpbmUiPjwvZGl2PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic210cC1waGFzZS1sYWJlbCI+JHtjLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1waGFzZS1saW5lIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtjLmVudHJpZXMubWFwKGI9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtYnViYmxlICR7Yi5kaXJlY3Rpb259Ij4KICAgICAgICAgICAgICAke2IuZGlyZWN0aW9uPT09InNlcnZlciImJmIucmVzcG9uc2VDb2RlP3dgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVzcG9uc2UtY29kZS1iYWRnZSAke3RoaXMuZ2V0UmVzcG9uc2VDb2RlQmFkZ2VDbGFzcyhiLnJlc3BvbnNlQ29kZSl9Ij4ke2IucmVzcG9uc2VDb2RlfTwvc3Bhbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtYnViYmxlLWNvbW1hbmQiPiR7Yi5jb21tYW5kfTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtYnViYmxlLW1ldGEiPgogICAgICAgICAgICAgICAgPHNwYW4+JHtiLnRpbWVzdGFtcH08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj7Ctzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbXRwLWRpcmVjdGlvbi10YWcgJHtiLmRpcmVjdGlvbn0iPiR7Yi5kaXJlY3Rpb249PT0iY2xpZW50Ij8iQ2xpZW50IjoiU2VydmVyIn08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1jb3B5U210cExvZygpe2lmKCF0aGlzLmVtYWlsKXJldHVybjtsZXQgZD10aGlzLmVtYWlsLnNtdHBMb2cubWFwKHU9PmBbJHt1LnRpbWVzdGFtcH1dICR7dS5kaXJlY3Rpb249PT0iY2xpZW50Ij8iQzoiOiJTOiJ9ICR7dS5jb21tYW5kfWApLmpvaW4oYApgKTtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChkKX1oYW5kbGVCYWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmFjayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHZvdCh0aGlzLGwpfXN0YXRpY3t2b3QoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7ZnVuY3Rpb24gdEphKHMpe3JldHVybiB0eXBlb2Ygcz09Im51bWJlciI/U3RyaW5nKHMpOkFycmF5LmlzQXJyYXkocyk/cy5tYXAoZT0+dHlwZW9mIGU9PSJudW1iZXIiP1N0cmluZyhlKTpgJHtlLmZyb219XHUyMDEzJHtlLnRvfWApLmpvaW4oIiwgIik6U3RyaW5nKHMpfWZ1bmN0aW9uIGFKYShzKXtsZXQgZT1bXTtmb3IobGV0IHQgb2Ygcyl7bGV0IGE9QXJyYXkuaXNBcnJheSh0Lmhvc3QpP3QuaG9zdDpbdC5ob3N0XSxyPXQucG9ydD09PSJwcmVzZXJ2ZSI/IihwcmVzZXJ2ZSkiOlN0cmluZyh0LnBvcnQpO2ZvcihsZXQgbiBvZiBhKWUucHVzaChgJHtufToke3J9YCl9cmV0dXJuIGV9dmFyIHhvdCxrUSxzSmEsZDlhPWcoKCk9PntwZSgpO3hvdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sa1E9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9O2kodEphLCJmb3JtYXRQb3J0cyIpO2koYUphLCJmb3JtYXRUYXJnZXRzIik7c0phPSgoKT0+e2xldCBzPVtuZSgic3otcm91dGUtY2FyZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelJvdXRlQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSx4b3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4icm91dGUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5yb3V0ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnJvdXRlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx4b3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2hvd0FjdGlvbnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5zaG93QWN0aW9ucywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnNob3dBY3Rpb25zPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSx4b3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA1MjBweDsiPgogICAgICA8c3otcm91dGUtY2FyZAogICAgICAgIC5yb3V0ZT0ke3tuYW1lOiJBUEkgR2F0ZXdheSIsZGVzY3JpcHRpb246Ik1haW4gQVBJIGdhdGV3YXkgd2l0aCBUTFMgdGVybWluYXRpb24gYW5kIGxvYWQgYmFsYW5jaW5nIixlbmFibGVkOiEwLHByaW9yaXR5OjEwLHRhZ3M6WyJ3ZWIiLCJhcGkiLCJwcm9kdWN0aW9uIl0sbWF0Y2g6e3BvcnRzOls0NDMsODQ0M10sZG9tYWluczpbImFwaS5leGFtcGxlLmNvbSIsIiouYXBpLnNlcnZlLnpvbmUiXSxwYXRoOiIvYXBpLyoiLHByb3RvY29sOiJodHRwIixjbGllbnRJcDpbIjEwLjAuMC4wLzgiXX0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDpbIjEwLjAuMC4xIiwiMTAuMC4wLjIiXSxwb3J0OjgwODB9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifSx3ZWJzb2NrZXQ6e2VuYWJsZWQ6ITB9LGxvYWRCYWxhbmNpbmc6e2FsZ29yaXRobToicm91bmQtcm9iaW4ifSxmb3J3YXJkaW5nRW5naW5lOiJuZnRhYmxlcyJ9LHNlY3VyaXR5OntpcEFsbG93TGlzdDpbIjEwLjAuMC4wLzgiXSxpcEJsb2NrTGlzdDpbIjE5Mi4xNjguMTAwLjAvMjQiXSxyYXRlTGltaXQ6e2VuYWJsZWQ6ITAsbWF4UmVxdWVzdHM6MTAwLHdpbmRvdzo2MH0sbWF4Q29ubmVjdGlvbnM6MWUzfSx2cG5Pbmx5OiEwLG1ldGFkYXRhOntzb3VyY2VQcm9maWxlTmFtZToiU1RBTkRBUkQiLG5ldHdvcmtUYXJnZXROYW1lOiJMT1NTTEVTU19JTkZSQSJ9fX0KICAgICAgPjwvc3otcm91dGUtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlJvdXRlcyJdOyNlPWtRKHRoaXMsbyxudWxsKTtnZXQgcm91dGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcm91dGUoYil7dGhpcy4jZT1ifSN0PShrUSh0aGlzLGwpLGtRKHRoaXMsZCwhMSkpO2dldCBzaG93QWN0aW9ucygpe3JldHVybiB0aGlzLiN0fXNldCBzaG93QWN0aW9ucyhiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjA2KSIsInJnYmEoMCwwLDAsMC4yKSIpfTsKICAgICAgfQoKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlci1sZWZ0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QuZW5hYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggJHtoLmJkVGhlbWUoInJnYmEoMzQsMTk3LDk0LDAuNCkiLCJyZ2JhKDM0LDE5Nyw5NCwwLjMpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAucm91dGUtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmhlYWRlci1iYWRnZXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYmFkZ2UuZm9yd2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uuc29ja2V0LWhhbmRsZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWRlOWZlIiwicmdiYSgxMzksIDkyLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVuYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYmFkZ2UuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwicmdiYSgxMTMsIDExMywgMTIyLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWJvZHkgewogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgLm1ldGEtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGFncyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM1MjUyNWIiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAucHJpb3JpdHkgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC8qIFNlY3Rpb25zICovCiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNnB4IDZweCAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzEwMTAxMCIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb246bGFzdC1vZi10eXBlIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi5tYXRjaCB7CiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24uYWN0aW9uIHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi5zZWN1cml0eSB7CiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZjU5ZTBiIiwiI2Y1OWUwYiIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24ubGlua2VkIHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHtoLmJkVGhlbWUoIiM4YjVjZjYiLCIjOGI1Y2Y2Iil9OwogICAgICB9CgogICAgICAubGlua2VkLW5hbWUgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZGU5ZmUiLCJyZ2JhKDEzOSwgOTIsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmQyOGQ5IiwiI2E3OGJmYSIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLmZpZWxkLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC5maWVsZC1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmZpZWxkLWtleSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtaW4td2lkdGg6IDY0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmZpZWxkLXZhbHVlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZTRlNGU3Iil9OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLmRvbWFpbi1jaGlwIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWZmNmZmIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmRvbWFpbi1jaGlwLmdsb2IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmM2M3IiwicmdiYSgyNDUsIDE1OCwgMTEsIDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzkyNDAwZSIsIiNmYmJmMjQiKX07CiAgICAgIH0KCiAgICAgIC5tb25vIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLnByb3RvY29sLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnByb3RvY29sLWJhZGdlLmh0dHAgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnByb3RvY29sLWJhZGdlLnRjcCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC50bHMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudGxzLWJhZGdlLmF1dG8gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAudGxzLWJhZGdlLmN1c3RvbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmVkZDUiLCJyZ2JhKDI0OSwgMTE1LCAyMiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNjMjQxMGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAuZW5naW5lLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZThmZiIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdlMjJjZSIsIiNjMDg0ZmMiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItcGFpciB7CiAgICAgICAgZGlzcGxheTogaW5saW5lOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICAvKiBGZWF0dXJlIGljb25zICovCiAgICAgIC5mZWF0dXJlcy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNHB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxYTFhMWEiKX07CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAubm8tcm91dGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuc2VjdGlvbi52cG4gewogICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAke2guYmRUaGVtZSgiIzA4OTFiMiIsIiMwNmI2ZDQiKX07CiAgICAgIH0KCiAgICAgIC52cG4tYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnZwbi1iYWRnZS5tYW5kYXRvcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmN2VkIiwicmdiYSgyNDksIDExNSwgMjIsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYzI0MTBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQoKICAgICAgLnZwbi1iYWRnZS5vcHRpb25hbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlY2ZkZjUiLCJyZ2JhKDE2LCAxODUsIDEyOSwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwNDc4NTciLCIjMzRkMzk5Iil9OwogICAgICB9CgogICAgICAudnBuLXRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlY2ZlZmYiLCJyZ2JhKDYsIDE4MiwgMjEyLCAwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwZTc0OTAiLCIjMjJkM2VlIil9OwogICAgICB9CgogICAgICAuY2FyZC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5lZGl0OmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMucm91dGUpcmV0dXJuIHdgCiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+PGRpdiBjbGFzcz0ibm8tcm91dGUiPk5vIHJvdXRlIGRhdGE8L2Rpdj48L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgYDtsZXQgYj10aGlzLnJvdXRlLHY9Yi5lbmFibGVkIT09ITEseD1iLm1hdGNoLG09Yi5hY3Rpb24sZj1iLnNlY3VyaXR5O3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDwhLS0gSGVhZGVyIC0tPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1sZWZ0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QgJHt2PyJlbmFibGVkIjoiZGlzYWJsZWQifSI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icm91dGUtbmFtZSI+JHtiLm5hbWV8fGIuaWR8fCJVbm5hbWVkIFJvdXRlIn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1iYWRnZXMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHttLnR5cGV9Ij4ke20udHlwZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke3Y/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9Ij4ke3Y/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+CiAgICAgICAgICAke2IuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JHtiLmRlc2NyaXB0aW9ufTwvZGl2PmA6IiJ9CgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0YS1yb3ciPgogICAgICAgICAgICAke2IudGFncyYmYi50YWdzLmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0idGFncyI+JHtiLnRhZ3MubWFwKHk9PndgPHNwYW4gY2xhc3M9InRhZyI+JHt5fTwvc3Bhbj5gKX08L2Rpdj5gOndgPGRpdj48L2Rpdj5gfQogICAgICAgICAgICAke2IucHJpb3JpdHkhPW51bGw/d2A8c3BhbiBjbGFzcz0icHJpb3JpdHkiPlByaW9yaXR5OiAke2IucHJpb3JpdHl9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8IS0tIE1hdGNoIFNlY3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiBtYXRjaCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5NYXRjaDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UG9ydHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke3RKYSh4LnBvcnRzKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7eC5kb21haW5zP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5Eb21haW5zPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7dGhpcy5yZW5kZXJEb21haW5zKHguZG9tYWlucyl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7eC5wYXRoP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5QYXRoPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHt4LnBhdGh9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7eC5wcm90b2NvbD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UHJvdG9jb2w8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByb3RvY29sLWJhZGdlICR7eC5wcm90b2NvbH0iPiR7eC5wcm90b2NvbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3guY2xpZW50SXAmJnguY2xpZW50SXAubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkNsaWVudDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7eC5jbGllbnRJcC5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3gudGxzVmVyc2lvbiYmeC50bHNWZXJzaW9uLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5UTFMgVmVyPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7eC50bHNWZXJzaW9uLmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7eC5oZWFkZXJzP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5IZWFkZXJzPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPgogICAgICAgICAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXMoeC5oZWFkZXJzKS5tYXAoKFt5LE1dKT0+d2A8c3BhbiBjbGFzcz0iaGVhZGVyLXBhaXIiPiR7eX09JHtNfTwvc3Bhbj4gYCl9CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gQWN0aW9uIFNlY3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiBhY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+QWN0aW9uPC9kaXY+CiAgICAgICAgICAke20udGFyZ2V0cyYmbS50YXJnZXRzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5UYXJnZXRzPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHthSmEobS50YXJnZXRzKS5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke20udGxzP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5UTFM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgJHttLnRscy5tb2RlfQogICAgICAgICAgICAgICAgICAgICR7bS50bHMuY2VydGlmaWNhdGU/bS50bHMuY2VydGlmaWNhdGU9PT0iYXV0byI/d2AgPHNwYW4gY2xhc3M9InRscy1iYWRnZSBhdXRvIj5hdXRvIGNlcnQ8L3NwYW4+YDp3YCA8c3BhbiBjbGFzcz0idGxzLWJhZGdlIGN1c3RvbSI+Y3VzdG9tIGNlcnQ8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7bS5mb3J3YXJkaW5nRW5naW5lP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5FbmdpbmU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+PHNwYW4gY2xhc3M9ImVuZ2luZS1iYWRnZSI+JHttLmZvcndhcmRpbmdFbmdpbmV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke20ubG9hZEJhbGFuY2luZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+TEI8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHttLmxvYWRCYWxhbmNpbmcuYWxnb3JpdGhtfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke20ud2Vic29ja2V0Py5lbmFibGVkP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5XUzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj48c3BhbiBjbGFzcz0iYmFkZ2UgZW5hYmxlZCI+ZW5hYmxlZDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFNlY3VyaXR5IFNlY3Rpb24gLS0+CiAgICAgICAgJHtmP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiBzZWN1cml0eSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5TZWN1cml0eTwvZGl2PgogICAgICAgICAgICAgICAgJHtmLmlwQWxsb3dMaXN0JiZmLmlwQWxsb3dMaXN0Lmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5BbGxvdzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7Zi5pcEFsbG93TGlzdC5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAke2YuaXBCbG9ja0xpc3QmJmYuaXBCbG9ja0xpc3QubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkJsb2NrPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHtmLmlwQmxvY2tMaXN0LmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7Zi5yYXRlTGltaXQ/LmVuYWJsZWQ/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlJhdGU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHtmLnJhdGVMaW1pdC5tYXhSZXF1ZXN0c30gcmVxIC8gJHtmLnJhdGVMaW1pdC53aW5kb3d9czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAke2YubWF4Q29ubmVjdGlvbnM/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPk1heCBDb25uPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7Zi5tYXhDb25uZWN0aW9uc308L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgIDwhLS0gVlBOIFNlY3Rpb24gLS0+CiAgICAgICAgICAke3RoaXMucmVuZGVyVnBuKCl9CgogICAgICAgICAgPCEtLSBMaW5rZWQgUmVmZXJlbmNlcyBTZWN0aW9uIC0tPgogICAgICAgICAgJHt0aGlzLnJlbmRlckxpbmtlZCgpfQoKICAgICAgICAgIDwhLS0gRmVhdHVyZSBJY29ucyBSb3cgLS0+CiAgICAgICAgICAke3RoaXMucmVuZGVyRmVhdHVyZXMoKX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBBY3Rpb24gQnV0dG9ucyAtLT4KICAgICAgICAke3RoaXMuc2hvd0FjdGlvbnM/d2AKICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBlZGl0IiBAY2xpY2s9JHt5PT57eS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3V0ZS1lZGl0Iix7ZGV0YWlsOnRoaXMucm91dGUsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PkVkaXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHt5PT57eS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3V0ZS1kZWxldGUiLHtkZXRhaWw6dGhpcy5yb3V0ZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyRG9tYWlucyhiKXtsZXQgdj1BcnJheS5pc0FycmF5KGIpP2I6W2JdO3JldHVybiB3YCR7di5tYXAoeD0+d2A8c3BhbiBjbGFzcz0iZG9tYWluLWNoaXAgJHt4LmluY2x1ZGVzKCIqIik/Imdsb2IiOiIifSI+JHt4fTwvc3Bhbj5gKX1gfXJlbmRlclZwbigpe3JldHVybiB0aGlzLnJvdXRlPy52cG5Pbmx5P3dgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24gdnBuIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5WUE4gQWNjZXNzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPk1vZGU8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idnBuLWJhZGdlIG1hbmRhdG9yeSI+VlBOIE9ubHk8L3NwYW4+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYDp3YGB9cmVuZGVyTGlua2VkKCl7bGV0IGI9dGhpcy5yb3V0ZT8ubWV0YWRhdGE7aWYoIWIpcmV0dXJuIHdgYDtsZXQgdj0hIWIuc291cmNlUHJvZmlsZU5hbWUseD0hIWIubmV0d29ya1RhcmdldE5hbWU7cmV0dXJuIXYmJiF4P3dgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIGxpbmtlZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TGlua2VkPC9kaXY+CiAgICAgICAgJHt2P3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlByb2ZpbGU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPjxzcGFuIGNsYXNzPSJsaW5rZWQtbmFtZSI+JHtiLnNvdXJjZVByb2ZpbGVOYW1lfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgJHt4P3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlRhcmdldDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+PHNwYW4gY2xhc3M9ImxpbmtlZC1uYW1lIj4ke2IubmV0d29ya1RhcmdldE5hbWV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZlYXR1cmVzKCl7aWYoIXRoaXMucm91dGUpcmV0dXJuIHdgYDtsZXQgYj1bXSx2PXRoaXMucm91dGUuYWN0aW9uLHg9dGhpcy5yb3V0ZS5zZWN1cml0eSxtPXRoaXMucm91dGUuaGVhZGVycyxmPXRoaXMucm91dGUubWV0YWRhdGE7cmV0dXJuIHYudGxzJiZiLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MWY1MTI7PC9zcGFuPlRMUzwvc3Bhbj5gKSx2LndlYnNvY2tldD8uZW5hYmxlZCYmYi5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDIxOTQ7PC9zcGFuPldTPC9zcGFuPmApLHYubG9hZEJhbGFuY2luZyYmYi5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDI2OTY7PC9zcGFuPkxCPC9zcGFuPmApLHgmJmIucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gxZjZlMTs8L3NwYW4+U2VjdXJpdHk8L3NwYW4+YCksbSYmYi5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDI2OTk7PC9zcGFuPkhlYWRlcnM8L3NwYW4+YCksdGhpcy5yb3V0ZT8udnBuT25seSYmYi5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDFmNTEwOzwvc3Bhbj5WUE48L3NwYW4+YCksKGY/LnNvdXJjZVByb2ZpbGVOYW1lfHxmPy5uZXR3b3JrVGFyZ2V0TmFtZSkmJmIucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gxZjUxNzs8L3NwYW4+TGlua2VkPC9zcGFuPmApLGIubGVuZ3RoPT09MD93YGA6d2A8ZGl2IGNsYXNzPSJmZWF0dXJlcy1yb3ciPiR7Yn08L2Rpdj5gfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxrUSh0aGlzLHUpfXN0YXRpY3trUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgaHgsYjIsaUphLHU5YT1nKCgpPT57cGUoKTtoeD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sYjI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGlKYT0oKCk9PntsZXQgcz1bbmUoInN6LXJvdXRlLWxpc3QtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelJvdXRlTGlzdFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe2F0dHJpYnV0ZTohMX0pXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSxoeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icm91dGVzImluIF8sImhhcyIpLGdldDppKF89Pl8ucm91dGVzLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucm91dGVzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxoeCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBY3Rpb25zRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaG93QWN0aW9uc0ZpbHRlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNob3dBY3Rpb25zRmlsdGVyLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2hvd0FjdGlvbnNGaWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLGh4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNlYXJjaFF1ZXJ5ImluIF8sImhhcyIpLGdldDppKF89Pl8uc2VhcmNoUXVlcnksImdldCIpLHNldDppKChfLE8pPT57Xy5zZWFyY2hRdWVyeT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksaHgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25GaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImFjdGlvbkZpbHRlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmFjdGlvbkZpbHRlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmFjdGlvbkZpbHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksaHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVkRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJlbmFibGVkRmlsdGVyImluIF8sImhhcyIpLGdldDppKF89Pl8uZW5hYmxlZEZpbHRlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmVuYWJsZWRGaWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLGh4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1yb3V0ZS1saXN0LXZpZXcKICAgICAgICAucm91dGVzPSR7W3tuYW1lOiJIVFRQUyBHYXRld2F5IixkZXNjcmlwdGlvbjoiTWFpbiB3ZWIgZ2F0ZXdheSB3aXRoIFRMUyB0ZXJtaW5hdGlvbiIsZW5hYmxlZDohMCx0YWdzOlsid2ViIiwiaHR0cHMiLCJwcm9kdWN0aW9uIl0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOlsiKi5leGFtcGxlLmNvbSIsInNlcnZlLnpvbmUiXSxwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4xIixwb3J0OjgwODB9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtuYW1lOiJTTVRQIEluYm91bmQiLGRlc2NyaXB0aW9uOiJFbWFpbCByZWxheSBmb3IgaW5jb21pbmcgbWFpbCIsZW5hYmxlZDohMCx0YWdzOlsiZW1haWwiLCJzbXRwIl0sbWF0Y2g6e3BvcnRzOjI1LGRvbWFpbnM6Im1haWwuc2VydmUuem9uZSJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMS41Iixwb3J0OjI1fV19fSx7bmFtZToiV2ViU29ja2V0IEFQSSIsZGVzY3JpcHRpb246IlJlYWwtdGltZSBXZWJTb2NrZXQgY29ubmVjdGlvbnMiLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImFwaSJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoid3MuZXhhbXBsZS5jb20iLHBhdGg6Ii93cy8qIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC4wLjMiLHBvcnQ6OTA5MH1dLHdlYnNvY2tldDp7ZW5hYmxlZDohMH0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19fSx7bmFtZToiTWFpbnRlbmFuY2UgUGFnZSIsZW5hYmxlZDohMSx0YWdzOlsid2ViIl0sbWF0Y2g6e3BvcnRzOls4MCw0NDNdLGRvbWFpbnM6Im9sZC5leGFtcGxlLmNvbSJ9LGFjdGlvbjp7dHlwZToic29ja2V0LWhhbmRsZXIifX1dfQogICAgICA+PC9zei1yb3V0ZS1saXN0LXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJSb3V0ZXMiXTsjZT1iMih0aGlzLG8sW10pO2dldCByb3V0ZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcm91dGVzKEMpe3RoaXMuI2U9Q30jdD0oYjIodGhpcyxsKSxiMih0aGlzLGQsbnVsbCkpO2dldCBzaG93QWN0aW9uc0ZpbHRlcigpe3JldHVybiB0aGlzLiN0fXNldCBzaG93QWN0aW9uc0ZpbHRlcihDKXt0aGlzLiN0PUN9I2E9KGIyKHRoaXMsdSksYjIodGhpcyxiLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlYXJjaFF1ZXJ5KEMpe3RoaXMuI2E9Q30jcz0oYjIodGhpcyx2KSxiMih0aGlzLG0sImFsbCIpKTtnZXQgYWN0aW9uRmlsdGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFjdGlvbkZpbHRlcihDKXt0aGlzLiNzPUN9I2k9KGIyKHRoaXMsZiksYjIodGhpcyxNLCJhbGwiKSk7Z2V0IGVuYWJsZWRGaWx0ZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZW5hYmxlZEZpbHRlcihDKXt0aGlzLiNpPUN9Z2V0IGZpbHRlcmVkUm91dGVzKCl7cmV0dXJuIHRoaXMucm91dGVzLmZpbHRlcihDPT57aWYodGhpcy5hY3Rpb25GaWx0ZXIhPT0iYWxsIiYmQy5hY3Rpb24udHlwZSE9PXRoaXMuYWN0aW9uRmlsdGVyfHx0aGlzLmVuYWJsZWRGaWx0ZXI9PT0iZW5hYmxlZCImJkMuZW5hYmxlZD09PSExfHx0aGlzLmVuYWJsZWRGaWx0ZXI9PT0iZGlzYWJsZWQiJiZDLmVuYWJsZWQhPT0hMSlyZXR1cm4hMTtpZih0aGlzLnNlYXJjaFF1ZXJ5KXtsZXQgXz10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRoaXMucm91dGVNYXRjaGVzU2VhcmNoKEMsXyl9cmV0dXJuITB9KX1yb3V0ZU1hdGNoZXNTZWFyY2goQyxfKXtpZihDLm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXyl8fEMuZGVzY3JpcHRpb24/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXyl8fEMubWF0Y2guZG9tYWlucyYmKEFycmF5LmlzQXJyYXkoQy5tYXRjaC5kb21haW5zKT9DLm1hdGNoLmRvbWFpbnM6W0MubWF0Y2guZG9tYWluc10pLnNvbWUoRT0+RS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKF8pKXx8dGhpcy5mb3JtYXRQb3J0c0ZvclNlYXJjaChDLm1hdGNoLnBvcnRzKS5pbmNsdWRlcyhfKXx8Qy5tYXRjaC5wYXRoPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKF8pfHxDLm1hdGNoLmNsaWVudElwPy5zb21lKCQ9PiQuaW5jbHVkZXMoXykpKXJldHVybiEwO2lmKEMuYWN0aW9uLnRhcmdldHMpe2ZvcihsZXQgJCBvZiBDLmFjdGlvbi50YXJnZXRzKWlmKChBcnJheS5pc0FycmF5KCQuaG9zdCk/JC5ob3N0OlskLmhvc3RdKS5zb21lKEg9PkgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhfKSkpcmV0dXJuITB9cmV0dXJuISFDLnRhZ3M/LnNvbWUoJD0+JC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKF8pKX1mb3JtYXRQb3J0c0ZvclNlYXJjaChDKXtyZXR1cm4gdHlwZW9mIEM9PSJudW1iZXIiP1N0cmluZyhDKTpBcnJheS5pc0FycmF5KEMpP0MubWFwKF89PnR5cGVvZiBfPT0ibnVtYmVyIj9TdHJpbmcoXyk6YCR7Xy5mcm9tfS0ke18udG99YCkuam9pbigiICIpOlN0cmluZyhDKX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmNoaXAtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jaGlwIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlc3VsdHMtY291bnQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDQyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5ncmlkIHN6LXJvdXRlLWNhcmQgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgQz10aGlzLmZpbHRlcmVkUm91dGVzO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXItYmFyIj4KICAgICAgICA8aW5wdXQKICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaW5wdXQiCiAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCByb3V0ZXMgYnkgZG9tYWluLCBJUCwgcG9ydCwgcGF0aCwgb3IgdGFnLi4uIgogICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgIEBpbnB1dD0ke189Pnt0aGlzLnNlYXJjaFF1ZXJ5PV8udGFyZ2V0LnZhbHVlfX0KICAgICAgICAvPgogICAgICAgIDxkaXYgY2xhc3M9ImNoaXAtZ3JvdXAiPgogICAgICAgICAgJHtbImFsbCIsImZvcndhcmQiLCJzb2NrZXQtaGFuZGxlciJdLm1hcChfPT53YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5hY3Rpb25GaWx0ZXI9PT1fPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5hY3Rpb25GaWx0ZXI9X319CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtfPT09ImFsbCI/IkFsbCI6Xz09PSJmb3J3YXJkIj8iRm9yd2FyZCI6IlNvY2tldCBIYW5kbGVyIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiZW5hYmxlZCIsImRpc2FibGVkIl0ubWFwKF89PndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmVuYWJsZWRGaWx0ZXI9PT1fPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5lbmFibGVkRmlsdGVyPV99fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7Xy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStfLnNsaWNlKDEpfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJyZXN1bHRzLWNvdW50Ij4KICAgICAgICBTaG93aW5nICR7Qy5sZW5ndGh9IG9mICR7dGhpcy5yb3V0ZXMubGVuZ3RofSByb3V0ZXMKICAgICAgPC9kaXY+CgogICAgICAke0MubGVuZ3RoPjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgICAgICAgICAgJHtDLm1hcChfPT53YAogICAgICAgICAgICAgICAgICA8c3otcm91dGUtY2FyZAogICAgICAgICAgICAgICAgICAgIC5yb3V0ZT0ke199CiAgICAgICAgICAgICAgICAgICAgLnNob3dBY3Rpb25zPSR7dGhpcy5zaG93QWN0aW9uc0ZpbHRlcj8uKF8pPz8hMX0KICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSb3V0ZUNsaWNrKF8pfQogICAgICAgICAgICAgICAgICA+PC9zei1yb3V0ZS1jYXJkPgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUtaWNvbiI+JiN4MWY1MGQ7PC9kaXY+CiAgICAgICAgICAgICAgPGRpdj5ObyByb3V0ZXMgbWF0Y2ggeW91ciBmaWx0ZXJzPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgIGB9aGFuZGxlUm91dGVDbGljayhDKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3V0ZS1jbGljayIse2RldGFpbDpDLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGIyKHRoaXMseil9c3RhdGlje2IyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBaYyxMaSxySmEscDlhPWcoKCk9PntwZSgpO1pjPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxMaT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sckphPSgoKT0+e2xldCBzPVtuZSgic3otY29uZmlnLXNlY3Rpb24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W107dmFyIGhlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekNvbmZpZ1NlY3Rpb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgRj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpBcnJheX0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7dHlwZTpCb29sZWFufSldLEs9W1koKV0sbWU9W1koKV0sWmModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4idGl0bGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai50aXRsZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai50aXRsZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxvLGwpLFpjKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InN1YnRpdGxlImluIGosImhhcyIpLGdldDppKGo9Pmouc3VidGl0bGUsImdldCIpLHNldDppKChqLHVlKT0+e2ouc3VidGl0bGU9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sZCx1KSxaYyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+Imljb24iaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5pY29uLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmljb249dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sYix2KSxaYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic3RhdHVzImluIGosImhhcyIpLGdldDppKGo9Pmouc3RhdHVzLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnN0YXR1cz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxtLGYpLFpjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmllbGRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJmaWVsZHMiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5maWVsZHMsImdldCIpLHNldDppKChqLHVlKT0+e2ouZmllbGRzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LE0seiksWmModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJhY3Rpb25zImluIGosImhhcyIpLGdldDppKGo9PmouYWN0aW9ucywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5hY3Rpb25zPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LEMsXyksWmModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsaW5rcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibGlua3MiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5saW5rcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5saW5rcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSwkLEUpLFpjKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImNvbGxhcHNpYmxlImluIGosImhhcyIpLGdldDppKGo9PmouY29sbGFwc2libGUsImdldCIpLHNldDppKChqLHVlKT0+e2ouY29sbGFwc2libGU9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sayxTKSxaYyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iY29sbGFwc2VkImluIGosImhhcyIpLGdldDppKGo9PmouY29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmNvbGxhcHNlZD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxQLFIpLFpjKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzQ29sbGFwc2VkImluIGosImhhcyIpLGdldDppKGo9PmouaXNDb2xsYXBzZWQsImdldCIpLHNldDppKChqLHVlKT0+e2ouaXNDb2xsYXBzZWQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sVixXKSxaYyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYXNTbG90dGVkQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaGFzU2xvdHRlZENvbnRlbnQiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5oYXNTbG90dGVkQ29udGVudCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5oYXNTbG90dGVkQ29udGVudD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxCLFUpLFpjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkZ9LG51bGwsdCksaGU9YT1lLnZhbHVlLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgdGl0bGU9IlNtYXJ0UHJveHkiCiAgICAgIHN1YnRpdGxlPSJIVFRQL0hUVFBTIGFuZCBUQ1AvU05JIHJldmVyc2UgcHJveHkiCiAgICAgIGljb249Imx1Y2lkZTpuZXR3b3JrIgogICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgIC5maWVsZHM9JHtbe2tleToiUm91dGUgQ291bnQiLHZhbHVlOjEyfSx7a2V5OiJBQ01FIEVuYWJsZWQiLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBY2NvdW50IEVtYWlsIix2YWx1ZToiYWRtaW5AZXhhbXBsZS5jb20ifSx7a2V5OiJVc2UgUHJvZHVjdGlvbiIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9LHtrZXk6IkF1dG8gUmVuZXciLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJSZW5ldyBUaHJlc2hvbGQiLHZhbHVlOiIzMCBkYXlzIn1dfQogICAgICAubGlua3M9JHtbe2xhYmVsOiJEb2NzIixocmVmOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvc2VydmUuem9uZS9zbWFydHByb3h5IixpY29uOiJsdWNpZGU6Ym9va09wZW4iLGV4dGVybmFsOiEwfV19CiAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiQ29uZmlndXJlIixpY29uOiJsdWNpZGU6c2V0dGluZ3MiLGV2ZW50OiJjb25maWd1cmUifV19CiAgICA+PC9zei1jb25maWctc2VjdGlvbj4KICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICB0aXRsZT0iRW1haWwgU2VydmVyIgogICAgICBzdWJ0aXRsZT0iU01UUCBlbWFpbCBoYW5kbGluZyB3aXRoIHNtYXJ0bXRhIgogICAgICBpY29uPSJsdWNpZGU6bWFpbCIKICAgICAgc3RhdHVzPSJkaXNhYmxlZCIKICAgICAgLmZpZWxkcz0ke1t7a2V5OiJQb3J0cyIsdmFsdWU6WyIyNSIsIjQ2NSIsIjU4NyJdLHR5cGU6InBpbGxzIn0se2tleToiSG9zdG5hbWUiLHZhbHVlOm51bGx9LHtrZXk6IkRvbWFpbnMiLHZhbHVlOlsiZXhhbXBsZS5jb20iLCJtYWlsLmV4YW1wbGUuY29tIl0sdHlwZToicGlsbHMifV19CiAgICAgIC5saW5rcz0ke1t7bGFiZWw6IkRvY3MiLGhyZWY6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9zZXJ2ZS56b25lL3NtYXJ0bXRhIixpY29uOiJsdWNpZGU6Ym9va09wZW4iLGV4dGVybmFsOiEwfSx7bGFiZWw6IlNvdXJjZSIsaHJlZjoiaHR0cHM6Ly9jb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvc21hcnRtdGEiLGljb246Imx1Y2lkZTpnaXRodWIiLGV4dGVybmFsOiEwfV19CiAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiRW5hYmxlIixpY29uOiJsdWNpZGU6cG93ZXIiLGV2ZW50OiJlbmFibGUifV19CiAgICA+PC9zei1jb25maWctc2VjdGlvbj4KICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICB0aXRsZT0iRE5TIFNlcnZlciIKICAgICAgc3VidGl0bGU9IkF1dGhvcml0YXRpdmUgRE5TIHdpdGggc21hcnRkbnMiCiAgICAgIGljb249Imx1Y2lkZTpnbG9iZSIKICAgICAgc3RhdHVzPSJub3QtY29uZmlndXJlZCIKICAgICAgY29sbGFwc2libGUKICAgICAgLmZpZWxkcz0ke1t7a2V5OiJQb3J0Iix2YWx1ZTo1M30se2tleToiTlMgRG9tYWlucyIsdmFsdWU6WyJuczEuZXhhbXBsZS5jb20iLCJuczIuZXhhbXBsZS5jb20iXSx0eXBlOiJwaWxscyJ9XX0KICAgICAgLmxpbmtzPSR7W3tsYWJlbDoiR2V0dGluZyBTdGFydGVkIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZG5zIixpY29uOiJsdWNpZGU6Ym9va09wZW4iLGV4dGVybmFsOiEwfV19CiAgICA+PC9zei1jb25maWctc2VjdGlvbj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJDb25maWd1cmF0aW9uIl07I2U9TGkodGhpcyxvLCIiKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGl0bGUoRil7dGhpcy4jZT1GfSN0PShMaSh0aGlzLGwpLExpKHRoaXMsZCwiIikpO2dldCBzdWJ0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCBzdWJ0aXRsZShGKXt0aGlzLiN0PUZ9I2E9KExpKHRoaXMsdSksTGkodGhpcyxiLCIiKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgaWNvbihGKXt0aGlzLiNhPUZ9I3M9KExpKHRoaXMsdiksTGkodGhpcyxtLCJlbmFibGVkIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgc3RhdHVzKEYpe3RoaXMuI3M9Rn0jaT0oTGkodGhpcyxmKSxMaSh0aGlzLE0sW10pKTtnZXQgZmllbGRzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGZpZWxkcyhGKXt0aGlzLiNpPUZ9I3I9KExpKHRoaXMseiksTGkodGhpcyxDLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYWN0aW9ucyhGKXt0aGlzLiNyPUZ9I289KExpKHRoaXMsXyksTGkodGhpcywkLFtdKSk7Z2V0IGxpbmtzKCl7cmV0dXJuIHRoaXMuI299c2V0IGxpbmtzKEYpe3RoaXMuI289Rn0jbj0oTGkodGhpcyxFKSxMaSh0aGlzLGssITEpKTtnZXQgY29sbGFwc2libGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29sbGFwc2libGUoRil7dGhpcy4jbj1GfSNsPShMaSh0aGlzLFMpLExpKHRoaXMsUCwhMSkpO2dldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY29sbGFwc2VkKEYpe3RoaXMuI2w9Rn0jYz0oTGkodGhpcyxSKSxMaSh0aGlzLFYsITEpKTtnZXQgaXNDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgaXNDb2xsYXBzZWQoRil7dGhpcy4jYz1GfSNkPShMaSh0aGlzLFcpLExpKHRoaXMsQiwhMSkpO2dldCBoYXNTbG90dGVkQ29udGVudCgpe3JldHVybiB0aGlzLiNkfXNldCBoYXNTbG90dGVkQ29udGVudChGKXt0aGlzLiNkPUZ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgZGVlcy10aWxlOjpwYXJ0KGNvbnRlbnQpIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgZGVlcy10aWxlOjpwYXJ0KGZvb3RlcikgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzaWJsZV0pIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2libGVdKSAuc2VjdGlvbi1oZWFkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CgogICAgICAuaGVhZGVyLWxlZnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmhlYWRlci10ZXh0IHsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBiYWRnZSAqLwogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDNweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmVuYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwxOTcsOTQsMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LDY4LDY4LDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ub3QtY29uZmlndXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCJyZ2JhKDExMywxMTMsMTIyLDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LDE1OCwxMSwwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5MjQwMGUiLCIjZmJiZjI0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdCB7CiAgICAgICAgd2lkdGg6IDdweDsKICAgICAgICBoZWlnaHQ6IDdweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZW5hYmxlZCAuc3RhdHVzLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRpc2FibGVkIC5zdGF0dXMtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uubm90LWNvbmZpZ3VyZWQgLnN0YXR1cy1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS53YXJuaW5nIC5zdGF0dXMtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1OWUwYiIsIiNmYmJmMjQiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvb3RlciBhY3Rpb24gYnV0dG9ucyDigJQgY2Fub25pY2FsIGRlZXMtbW9kYWwgLyBkZWVzLXRpbGUgcGF0dGVybiAqLwogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIC8qIENoZXZyb24gKi8KICAgICAgLmNoZXZyb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmNoZXZyb24uY29sbGFwc2VkIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAuY2hldnJvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLyogQ29udGVudCAqLwogICAgICAuc2VjdGlvbi1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuZmllbGRzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLyogRmllbGQgcm93cyAqLwogICAgICAuZmllbGQtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzFhMWExZSIpfTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWVsZHMtbGlzdCAuZmllbGQtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5maWVsZC1rZXkgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgICBwYWRkaW5nLXRvcDogMXB4OwogICAgICB9CgogICAgICAuZmllbGQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuZmllbGQtdmFsdWUubnVsbC12YWx1ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC8qIEJvb2xlYW4gZGlzcGxheSAqLwogICAgICAuYm9vbC12YWx1ZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDVweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmJvb2wtdmFsdWUudHJ1ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmJvb2wtdmFsdWUuZmFsc2UgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5ib29sLWRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5ib29sLXZhbHVlLnRydWUgLmJvb2wtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5ib29sLXZhbHVlLmZhbHNlIC5ib29sLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAvKiBQaWxscyAqLwogICAgICAucGlsbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNXB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5waWxsIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA5cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZmY2ZmYiLCJyZ2JhKDU5LDEzMCwyNDYsMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAvKiBDb2RlIHZhbHVlICovCiAgICAgIC5jb2RlLXZhbHVlIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLyogTGluayB2YWx1ZSAqLwogICAgICAubGluay12YWx1ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxpbmstdmFsdWU6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAvKiBEZXNjcmlwdGlvbiBoaW50ICovCiAgICAgIC5maWVsZC1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgbWFyZ2luLXRvcDogM3B4OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICB9CgogICAgICAvKiBTbG90IGZvciBjdXN0b20gY29udGVudCAqLwogICAgICAuc2xvdC1jb250ZW50IHsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMWExYTFlIil9OwogICAgICB9CgogICAgICAuc2xvdC1jb250ZW50LmVtcHR5IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBCYWRnZSB0eXBlICovCiAgICAgIC5iYWRnZS12YWx1ZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTI1MjViIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaXNDb2xsYXBzZWQ9dGhpcy5jb2xsYXBzZWQsdGhpcy5jb2xsYXBzaWJsZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNvbGxhcHNpYmxlIiwiIil9dXBkYXRlZChGKXtzdXBlci51cGRhdGVkKEYpLEYuaGFzKCJpc0NvbGxhcHNlZCIpJiZ0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgiY29sbGFwc2VkIix0aGlzLmlzQ29sbGFwc2VkKX1vblNsb3RDaGFuZ2UoRil7bGV0IGo9Ri50YXJnZXQ7dGhpcy5oYXNTbG90dGVkQ29udGVudD1qLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KS5sZW5ndGg+MH1yZW5kZXIoKXtsZXQgRj17ZW5hYmxlZDoiRW5hYmxlZCIsZGlzYWJsZWQ6IkRpc2FibGVkIiwibm90LWNvbmZpZ3VyZWQiOiJOb3QgQ29uZmlndXJlZCIsd2FybmluZzoiV2FybmluZyJ9O3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYKICAgICAgICAgIHNsb3Q9ImhlYWRlciIKICAgICAgICAgIGNsYXNzPSJzZWN0aW9uLWhlYWRlciIKICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5jb2xsYXBzaWJsZSYmKHRoaXMuaXNDb2xsYXBzZWQ9IXRoaXMuaXNDb2xsYXBzZWQpfX0KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItbGVmdCI+CiAgICAgICAgICAgICR7dGhpcy5pY29uP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWljb24iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10ZXh0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj4KICAgICAgICAgICAgICAke3RoaXMuc3VidGl0bGU/d2A8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPiR7dGhpcy5zdWJ0aXRsZX08L2Rpdj5gOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXJpZ2h0Ij4KICAgICAgICAgICAgJHt0aGlzLnN0YXR1cz93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHt0aGlzLnN0YXR1c30iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICR7Rlt0aGlzLnN0YXR1c118fHRoaXMuc3RhdHVzfQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLmNvbGxhcHNpYmxlP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoZXZyb24gJHt0aGlzLmlzQ29sbGFwc2VkPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAke3RoaXMuZmllbGRzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkcy1saXN0Ij4KICAgICAgICAgICAgICAke3RoaXMuZmllbGRzLm1hcChqPT50aGlzLnJlbmRlckZpZWxkKGopKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0ic2xvdC1jb250ZW50ICR7dGhpcy5oYXNTbG90dGVkQ29udGVudD8iIjoiZW1wdHkifSI+CiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5vblNsb3RDaGFuZ2V9Pjwvc2xvdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5saW5rcy5sZW5ndGg+MHx8dGhpcy5hY3Rpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgICAgJHt0aGlzLmxpbmtzLm1hcChqPT53YAogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBjbGFzcz0idGlsZS1idXR0b24iCiAgICAgICAgICAgICAgICBocmVmPSR7ai5ocmVmfQogICAgICAgICAgICAgICAgdGFyZ2V0PSR7ai5leHRlcm5hbD8iX2JsYW5rIjoiX3NlbGYifQogICAgICAgICAgICAgICAgcmVsPSR7ai5leHRlcm5hbD8ibm9vcGVuZXIgbm9yZWZlcnJlciI6IiJ9CiAgICAgICAgICAgICAgICBAY2xpY2s9JHt1ZT0+dWUuc3RvcFByb3BhZ2F0aW9uKCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtqLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7ai5pY29ufT48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgJHtqLmxhYmVsfQogICAgICAgICAgICAgICAgJHtqLmV4dGVybmFsP3dgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZXh0ZXJuYWxMaW5rIn0+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIGApfQogICAgICAgICAgICAke3RoaXMuYWN0aW9ucy5tYXAoaj0+d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHt1ZT0+e3VlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoai5ldmVudHx8ImFjdGlvbiIse2RldGFpbDpqLmRldGFpbHx8e2xhYmVsOmoubGFiZWx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICAgICR7ai5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke2ouaWNvbn0+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICAgICR7ai5sYWJlbH0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyRmllbGQoRil7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQta2V5Ij4ke0Yua2V5fTwvZGl2PgogICAgICAgIDxkaXY+CiAgICAgICAgICAke3RoaXMucmVuZGVyRmllbGRWYWx1ZShGKX0KICAgICAgICAgICR7Ri5kZXNjcmlwdGlvbj93YDxkaXYgY2xhc3M9ImZpZWxkLWRlc2NyaXB0aW9uIj4ke0YuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpZWxkVmFsdWUoRil7bGV0IGo9Ri52YWx1ZSx1ZT1GLnR5cGV8fHRoaXMuaW5mZXJUeXBlKGopO2lmKGo9PW51bGwpcmV0dXJuIHdgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG51bGwtdmFsdWUiPk5vdCBjb25maWd1cmVkPC9zcGFuPmA7c3dpdGNoKHVlKXtjYXNlImJvb2xlYW4iOnJldHVybiB3YAogICAgICAgICAgPHNwYW4gY2xhc3M9ImJvb2wtdmFsdWUgJHtqPyJ0cnVlIjoiZmFsc2UifSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib29sLWRvdCI+PC9zcGFuPgogICAgICAgICAgICAke2o/IkVuYWJsZWQiOiJEaXNhYmxlZCJ9CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgYDtjYXNlInBpbGxzIjpyZXR1cm4gQXJyYXkuaXNBcnJheShqKSYmai5sZW5ndGg9PT0wP3dgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG51bGwtdmFsdWUiPk5vbmU8L3NwYW4+YDp3YAogICAgICAgICAgPGRpdiBjbGFzcz0icGlsbHMiPgogICAgICAgICAgICAke2oubWFwKGxlPT53YDxzcGFuIGNsYXNzPSJwaWxsIj4ke2xlfTwvc3Bhbj5gKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7Y2FzZSJjb2RlIjpyZXR1cm4gd2A8c3BhbiBjbGFzcz0iY29kZS12YWx1ZSI+JHtTdHJpbmcoail9PC9zcGFuPmA7Y2FzZSJiYWRnZSI6cmV0dXJuIHdgPHNwYW4gY2xhc3M9ImJhZGdlLXZhbHVlIj4ke1N0cmluZyhqKX08L3NwYW4+YDtjYXNlImxpbmsiOnJldHVybiB3YAogICAgICAgICAgPHNwYW4KICAgICAgICAgICAgY2xhc3M9ImxpbmstdmFsdWUiCiAgICAgICAgICAgIEBjbGljaz0keygpPT57Ri5saW5rVG8mJnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5hdmlnYXRlIix7ZGV0YWlsOnt0YXJnZXQ6Ri5saW5rVG99LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fQogICAgICAgICAgPiR7U3RyaW5nKGopfTwvc3Bhbj4KICAgICAgICBgO2RlZmF1bHQ6cmV0dXJuIHdgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke1N0cmluZyhqKX08L3NwYW4+YH19aW5mZXJUeXBlKEYpe3JldHVybiB0eXBlb2YgRj09ImJvb2xlYW4iPyJib29sZWFuIjpBcnJheS5pc0FycmF5KEYpPyJwaWxscyI6InRleHQifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxMaSh0aGlzLFUpfXN0YXRpY3tMaShhLHQpfX07cmV0dXJuIGhlPWF9KSgpfSk7dmFyIHlvdCxTUSxvSmEsaDlhPWcoKCk9PntwZSgpO3lvdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sU1E9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG9KYT0oKCk9PntsZXQgcz1bbmUoInN6LWNvbmZpZy1vdmVydmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekNvbmZpZ092ZXJ2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0seW90KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaGVhZGluZyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmhlYWRpbmcsImdldCIpLHNldDppKCh2LHgpPT57di5oZWFkaW5nPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx5b3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmZvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaW5mb1RleHQiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5pbmZvVGV4dCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmluZm9UZXh0PXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSx5b3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxzei1jb25maWctb3ZlcnZpZXcKICAgIGhlYWRpbmc9IkNvbmZpZ3VyYXRpb24iCiAgICBpbmZvVGV4dD0iVGhpcyBpcyBhIHJlYWQtb25seSB2aWV3IG9mIHRoZSBjdXJyZW50IHJ1bm5pbmcgY29uZmlndXJhdGlvbi4iCiAgPgogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzcxNzE3YTsgZm9udC1zaXplOiAxNHB4OyI+CiAgICAgIFBsYWNlICZsdDtzei1jb25maWctc2VjdGlvbiZndDsgZWxlbWVudHMgaGVyZQogICAgPC9kaXY+CiAgPC9zei1jb25maWctb3ZlcnZpZXc+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ29uZmlndXJhdGlvbiJdOyNlPVNRKHRoaXMsbywiIik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhiKXt0aGlzLiNlPWJ9I3Q9KFNRKHRoaXMsbCksU1EodGhpcyxkLCIiKSk7Z2V0IGluZm9UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZm9UZXh0KGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuaW5mby1iYW5uZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDE0cHggMThweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksMTMwLDI0NiwwLjA4KSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2JmZGJmZSIsInJnYmEoNTksMTMwLDI0NiwwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFlNDBhZiIsIiM5M2M1ZmQiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC5pbmZvLWJhbm5lciBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChzei1jb25maWctc2VjdGlvbikgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChzei1jb25maWctc2VjdGlvbjpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5oZWFkaW5nP3dgPGRpdiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9kaXY+YDoiIn0KICAgICAgJHt0aGlzLmluZm9UZXh0P3dgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1iYW5uZXIiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6aW5mbyJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+JHt0aGlzLmluZm9UZXh0fTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgPHNsb3Q+PC9zbG90PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksU1EodGhpcyx1KX1zdGF0aWN7U1EoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIG5KYSxsSmEsY0phLGY5YT1nKCgpPT57cGUoKTtpYygpO25KYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbEphPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxjSmE9KCgpPT57bGV0IHM9W25lKCJzei1kZW1vLXZpZXctZGFzaGJvYXJkIildLGUsdD1bXSxhLHI9d2U7dmFyIG49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdEYXNoYm9hcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuSmEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1hcHB1aT1udWxsO2FzeW5jIG9uQWN0aXZhdGUobyl7dGhpcy5hcHB1aT1vLmFwcHVpLHRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRGFzaGJvYXJkIixncm91cHM6W3tuYW1lOiJRdWljayBBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJEZXBsb3kgU2VydmljZSIsaWNvbk5hbWU6Imx1Y2lkZTpSb2NrZXQiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkRlcGxveSBzZXJ2aWNlIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgRG9tYWluIixpY29uTmFtZToibHVjaWRlOkdsb2JlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgZG9tYWluIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJDcmVhdGUgVG9rZW4iLGljb25OYW1lOiJsdWNpZGU6S2V5IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJDcmVhdGUgdG9rZW4iKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTeXN0ZW0iLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2ggU3RhdHMiLGljb25OYW1lOiJsdWNpZGU6UmVmcmVzaEN3IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6VGVybWluYWwiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlZpZXcgbG9ncyIpfSwiYWN0aW9uIil9XX1dfSl9b25EZWFjdGl2YXRlKCl7fXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wYWdlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICB9CgogICAgICAucGFnZS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+RGFzaGJvYXJkPC9oMT4KICAgICAgICA8cCBjbGFzcz0icGFnZS1zdWJ0aXRsZSI+T3ZlcnZpZXcgb2YgeW91ciBvbmVib3ggaW5mcmFzdHJ1Y3R1cmU8L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPHN6LWRhc2hib2FyZC12aWV3CiAgICAgICAgLmNsdXN0ZXJTdGF0cz0ke3t0b3RhbFNlcnZpY2VzOjEyLHJ1bm5pbmc6OSxzdG9wcGVkOjMsZG9ja2VyU3RhdHVzOiJydW5uaW5nIn19CiAgICAgICAgLnJlc291cmNlVXNhZ2U9JHt7Y3B1OjQ1LG1lbW9yeVVzZWQ6IjYuMiBHQiIsbWVtb3J5VG90YWw6IjE2IEdCIixuZXR3b3JrSW46IjIuNSBNQi9zIixuZXR3b3JrT3V0OiIxLjIgTUIvcyIsdG9wQ29uc3VtZXJzOlt7bmFtZToibW9uZ29kYiIsbWVtb3J5OiIxLjIgR0IifSx7bmFtZToiY2xpY2tob3VzZSIsbWVtb3J5OiI5ODAgTUIifSx7bmFtZToibmdpbngtcHJveHkiLG1lbW9yeToiMjU2IE1CIn1dfX0KICAgICAgICAucGxhdGZvcm1TZXJ2aWNlcz0ke1t7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiJydW5uaW5nIixpY29uOiJkYXRhYmFzZSJ9LHtuYW1lOiJTMyBTdG9yYWdlIixzdGF0dXM6InJ1bm5pbmciLGljb246InN0b3JhZ2UifSx7bmFtZToiQ2xpY2tIb3VzZSIsc3RhdHVzOiJzdG9wcGVkIixpY29uOiJhbmFseXRpY3MifSx7bmFtZToiUmVkaXMgQ2FjaGUiLHN0YXR1czoicnVubmluZyIsaWNvbjoiY2FjaGUifV19CiAgICAgICAgLnRyYWZmaWM9JHt7cmVxdWVzdHM6MTU0MjAsZXJyb3JzOjIzLGVycm9yUGVyY2VudDouMTUsYXZnUmVzcG9uc2U6MTQ1LHJlcVBlck1pbjo4NTYsc3RhdHVzMnh4OjE0ODUwLHN0YXR1czN4eDozMjAsc3RhdHVzNHh4OjIyNyxzdGF0dXM1eHg6MjN9fQogICAgICAgIC5wcm94eT0ke3todHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiEwLGh0dHBzQWN0aXZlOiEwLHJvdXRlQ291bnQ6IjI0In19CiAgICAgICAgLmNlcnRpZmljYXRlcz0ke3t2YWxpZDoxOCxleHBpcmluZzoyLGV4cGlyZWQ6MH19CiAgICAgICAgLmRucz0ke3tyZWNvcmRzOjQ1LHpvbmVzOjgscGVuZGluZ0NoYW5nZXM6MH19CiAgICAgICAgLnNzbD0ke3thY3RpdmVDZXJ0czoyMCxhdXRvUmVuZXc6ITAscHJvdmlkZXI6IkxldCdzIEVuY3J5cHQifX0KICAgICAgICBAcXVpY2stYWN0aW9uPSR7bz0+Y29uc29sZS5sb2coIlF1aWNrIGFjdGlvbjoiLG8uZGV0YWlsKX0KICAgICAgPjwvc3otZGFzaGJvYXJkLXZpZXc+CiAgICBgfXN0YXRpY3tsSmEoYSx0KX19O3JldHVybiBuPWF9KSgpfSk7dmFyIEMxZSxSZyxkSmEsbTlhPWcoKCk9PntwZSgpO2ljKCk7QzFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxSZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZEphPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LXNlcnZpY2VzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdTZXJ2aWNlcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLEMxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJjdXJyZW50VmlldyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuY3VycmVudFZpZXc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLEMxZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkU2VydmljZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VsZWN0ZWRTZXJ2aWNlImluIGYsImhhcyIpLGdldDppKGY9PmYuc2VsZWN0ZWRTZXJ2aWNlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yuc2VsZWN0ZWRTZXJ2aWNlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxDMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFBsYXRmb3JtU2VydmljZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2UiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZWxlY3RlZFBsYXRmb3JtU2VydmljZSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxDMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1hcHB1aT1udWxsOyNlPVJnKHRoaXMsbywibGlzdCIpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmlldyhtKXt0aGlzLiNlPW19I3Q9KFJnKHRoaXMsbCksUmcodGhpcyxkLG51bGwpKTtnZXQgc2VsZWN0ZWRTZXJ2aWNlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkU2VydmljZShtKXt0aGlzLiN0PW19I2E9KFJnKHRoaXMsdSksUmcodGhpcyxiLG51bGwpKTtnZXQgc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2UoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2UobSl7dGhpcy4jYT1tfWRlbW9TZXJ2aWNlcz0oUmcodGhpcyx2KSxbe2lkOiIxIixuYW1lOiJuZ2lueC1wcm94eSIsaW1hZ2U6Im5naW54OmxhdGVzdCIsc3RhdHVzOiJydW5uaW5nIixjcHU6IjIuNSUiLG1lbW9yeToiMjU2IE1CIixwb3J0czoiODAsIDQ0MyIsdXB0aW1lOiI1ZCAxMmgifSx7aWQ6IjIiLG5hbWU6ImFwaS1nYXRld2F5IixpbWFnZToiYXBpLWdhdGV3YXk6djIuMS4wIixzdGF0dXM6InJ1bm5pbmciLGNwdToiOC4yJSIsbWVtb3J5OiI1MTIgTUIiLHBvcnRzOiIzMDAwIix1cHRpbWU6IjNkIDhoIn0se2lkOiIzIixuYW1lOiJ3b3JrZXItc2VydmljZSIsaW1hZ2U6IndvcmtlcjpsYXRlc3QiLHN0YXR1czoic3RvcHBlZCIsY3B1OiIwJSIsbWVtb3J5OiIwIE1CIixwb3J0czoiLSIsdXB0aW1lOiItIn0se2lkOiI0IixuYW1lOiJyZWRpcy1jYWNoZSIsaW1hZ2U6InJlZGlzOjctYWxwaW5lIixzdGF0dXM6InJ1bm5pbmciLGNwdToiMS4yJSIsbWVtb3J5OiIxMjggTUIiLHBvcnRzOiI2Mzc5Iix1cHRpbWU6IjEwZCA0aCJ9XSk7ZGVtb1BsYXRmb3JtU2VydmljZT17aWQ6IjEiLG5hbWU6Ik1vbmdvREIiLHR5cGU6Im1vbmdvZGIiLHN0YXR1czoicnVubmluZyIsdmVyc2lvbjoiNy4wLjQiLGhvc3Q6ImxvY2FsaG9zdCIscG9ydDoyNzAxNyxjcmVkZW50aWFsczp7dXNlcm5hbWU6ImFkbWluIixwYXNzd29yZDoiXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyIn0sY29uZmlnOntyZXBsaWNhU2V0OiJyczAiLGF1dGhFbmFibGVkOiEwLGpvdXJuYWxpbmc6ITB9LG1ldHJpY3M6e2NwdToxMixtZW1vcnk6NDUsc3RvcmFnZToyMyxjb25uZWN0aW9uczo4fX07ZGVtb1BsYXRmb3JtTG9ncz1be3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMiIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkNvbm5lY3Rpb24gYWNjZXB0ZWQgZnJvbSAxMjcuMC4wLjE6NTQzMjEifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIwIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiSW5kZXggYnVpbGQgY29tcGxldGVkIG9uIGNvbGxlY3Rpb24gdXNlcnMifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjE1IixsZXZlbDoid2FybiIsbWVzc2FnZToiU2xvdyBxdWVyeSBkZXRlY3RlZDogMS4ycyBvbiBjb2xsZWN0aW9uIG9yZGVycyJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTAiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJDaGVja3BvaW50IGNvbXBsZXRlIn1dO2RlbW9CYWNrdXBTY2hlZHVsZXM9W3tpZDoiMSIsc2NvcGU6IkFsbCBTZXJ2aWNlcyIscmV0ZW50aW9uOiJEOjcsIFc6NCwgTToxMiIsc2NoZWR1bGU6IjAgMiAqICogKiIsbGFzdFJ1bjoiMS8yLzIwMjYsIDI6MDA6MDMgQU0iLG5leHRSdW46IjEvMy8yMDI2LCAyOjAwOjAwIEFNIixzdGF0dXM6ImFjdGl2ZSJ9XTtkZW1vQmFja3Vwcz1be2lkOiIxIixzZXJ2aWNlOiJuZ2lueC1wcm94eSIsY3JlYXRlZEF0OiIxLzIvMjAyNiwgMjowMDowMyBBTSIsc2l6ZToiMjIuMCBNQiIsaW5jbHVkZXM6WyJJbWFnZSJdfSx7aWQ6IjIiLHNlcnZpY2U6ImFwaS1nYXRld2F5IixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAyIEFNIixzaXplOiIxNTYuNSBNQiIsaW5jbHVkZXM6WyJJbWFnZSIsIlZvbHVtZXMiXX0se2lkOiIzIixzZXJ2aWNlOiJyZWRpcy1jYWNoZSIsY3JlYXRlZEF0OiIxLzIvMjAyNiwgMjowMDowMCBBTSIsc2l6ZToiNDguMCBNQiIsaW5jbHVkZXM6WyJJbWFnZSIsIkRhdGEiXX1dO3N0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMXB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwOwogICAgICB9CgogICAgICAuYmFjay1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJsaXN0Ij90aGlzLnJlbmRlckxpc3RWaWV3KCk6IiJ9CiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJjcmVhdGUiP3RoaXMucmVuZGVyQ3JlYXRlVmlldygpOiIifQogICAgICAke3RoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlsIj90aGlzLnJlbmRlckRldGFpbFZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09ImJhY2t1cHMiP3RoaXMucmVuZGVyQmFja3Vwc1ZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09InBsYXRmb3JtLWRldGFpbCI/dGhpcy5yZW5kZXJQbGF0Zm9ybURldGFpbFZpZXcoKToiIn0KICAgIGB9cmVuZGVyTGlzdFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+U2VydmljZXM8L2gxPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPk1hbmFnZSB5b3VyIERvY2tlciBjb250YWluZXJzIGFuZCBwbGF0Zm9ybSBzZXJ2aWNlczwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHNlY29uZGFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9ImJhY2t1cHMifT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNyA4IDEyIDMgNyA4Ii8+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMyIgeDI9IjEyIiB5Mj0iMTUiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEJhY2t1cHMKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9ImNyZWF0ZSJ9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBEZXBsb3kgU2VydmljZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0idGFicyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGFiIGFjdGl2ZSI+RG9ja2VyIFNlcnZpY2VzPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGFiIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2U9dGhpcy5kZW1vUGxhdGZvcm1TZXJ2aWNlLHRoaXMuY3VycmVudFZpZXc9InBsYXRmb3JtLWRldGFpbCJ9fT5QbGF0Zm9ybSBTZXJ2aWNlczwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxzei1zZXJ2aWNlcy1saXN0LXZpZXcKICAgICAgICAuc2VydmljZXM9JHt0aGlzLmRlbW9TZXJ2aWNlc30KICAgICAgICBAdmlldy1zZXJ2aWNlPSR7bT0+e3RoaXMuc2VsZWN0ZWRTZXJ2aWNlPW0uZGV0YWlsLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCJ9fQogICAgICAgIEBzdGFydC1zZXJ2aWNlPSR7bT0+Y29uc29sZS5sb2coIlN0YXJ0IHNlcnZpY2U6IixtLmRldGFpbCl9CiAgICAgICAgQHN0b3Atc2VydmljZT0ke209PmNvbnNvbGUubG9nKCJTdG9wIHNlcnZpY2U6IixtLmRldGFpbCl9CiAgICAgICAgQHJlc3RhcnQtc2VydmljZT0ke209PmNvbnNvbGUubG9nKCJSZXN0YXJ0IHNlcnZpY2U6IixtLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1zZXJ2aWNlPSR7bT0+Y29uc29sZS5sb2coIkRlbGV0ZSBzZXJ2aWNlOiIsbS5kZXRhaWwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1saXN0LXZpZXc+CiAgICBgfXJlbmRlckNyZWF0ZVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXNlcnZpY2UtY3JlYXRlLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6Ik9uZWJveCBSZWdpc3RyeSIsdXJsOiJyZWdpc3RyeS5vbmVib3gubG9jYWwifSx7aWQ6IjIiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIn1dfQogICAgICAgIEBjcmVhdGUtc2VydmljZT0ke209Pntjb25zb2xlLmxvZygiQ3JlYXRlIHNlcnZpY2U6IixtLmRldGFpbCksdGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBjYW5jZWw9JHsoKT0+dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9CiAgICAgID48L3N6LXNlcnZpY2UtY3JlYXRlLXZpZXc+CiAgICBgfXJlbmRlckRldGFpbFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3tpZDp0aGlzLnNlbGVjdGVkU2VydmljZT8uaWR8fCIxIixuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5uYW1lfHwibmdpbngtcHJveHkiLGltYWdlOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5pbWFnZXx8Im5naW54OmxhdGVzdCIsc3RhdHVzOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5zdGF0dXN8fCJydW5uaW5nIixwb3J0czpbe2hvc3Q6IjgwIixjb250YWluZXI6IjgwIn0se2hvc3Q6IjQ0MyIsY29udGFpbmVyOiI0NDMifV0sZW52VmFyczpbe2tleToiTkdJTlhfSE9TVCIsdmFsdWU6ImxvY2FsaG9zdCJ9LHtrZXk6Ik5HSU5YX1BPUlQiLHZhbHVlOiI4MCJ9XSx2b2x1bWVzOlt7aG9zdDoiL2RhdGEvbmdpbngvY29uZiIsY29udGFpbmVyOiIvZXRjL25naW54L2NvbmYuZCJ9XSxjcmVhdGVkQXQ6IjIwMjQtMDEtMTUgMTA6MzA6MDAiLHJlc3RhcnRQb2xpY3k6ImFsd2F5cyJ9fQogICAgICAgIC5sb2dzPSR7W3t0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjIiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoyMiArMDAwMF0gIkdFVCAvIEhUVFAvMS4xIiAyMDAgNjEyJ30se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMSIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6JzEyNy4wLjAuMSAtIC0gWzIwL0phbi8yMDI0OjE0OjMwOjIxICswMDAwXSAiR0VUIC9hcGkvaGVhbHRoIEhUVFAvMS4xIiAyMDAgMTUnfSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIwIixsZXZlbDoid2FybiIsbWVzc2FnZToidXBzdHJlYW0gdGltZWQgb3V0ICgxMTA6IENvbm5lY3Rpb24gdGltZWQgb3V0KSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTkiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoxOSArMDAwMF0gIlBPU1QgL2FwaS9kYXRhIEhUVFAvMS4xIiAyMDEgODknfV19CiAgICAgICAgQHN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJTdGFydCIpfQogICAgICAgIEBzdG9wPSR7KCk9PmNvbnNvbGUubG9nKCJTdG9wIil9CiAgICAgICAgQHJlc3RhcnQ9JHsoKT0+Y29uc29sZS5sb2coIlJlc3RhcnQiKX0KICAgICAgICBAcmVxdWVzdC13b3Jrc3BhY2U9JHttPT5jb25zb2xlLmxvZygiV29ya3NwYWNlIHJlcXVlc3RlZCBmb3I6IixtLmRldGFpbC5zZXJ2aWNlLm5hbWUpfQogICAgICA+PC9zei1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgYH1yZW5kZXJCYWNrdXBzVmlldygpe3JldHVybiB3YAogICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgPC9idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5CYWNrdXBzPC9oMT4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5NYW5hZ2UgYmFja3VwIHNjaGVkdWxlcyBhbmQgcmVzdG9yZSBwb2ludHM8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPHN6LXNlcnZpY2VzLWJhY2t1cHMtdmlldwogICAgICAgIC5zY2hlZHVsZXM9JHt0aGlzLmRlbW9CYWNrdXBTY2hlZHVsZXN9CiAgICAgICAgLmJhY2t1cHM9JHt0aGlzLmRlbW9CYWNrdXBzfQogICAgICAgIEBjcmVhdGUtc2NoZWR1bGU9JHsoKT0+Y29uc29sZS5sb2coIkNyZWF0ZSBzY2hlZHVsZSIpfQogICAgICAgIEBydW4tbm93PSR7bT0+Y29uc29sZS5sb2coIlJ1biBub3c6IixtLmRldGFpbCl9CiAgICAgICAgQGRvd25sb2FkPSR7bT0+Y29uc29sZS5sb2coIkRvd25sb2FkOiIsbS5kZXRhaWwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXc+CiAgICBgfXJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpe3JldHVybiB3YAogICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgPC9idXR0b24+CgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7dGhpcy5kZW1vUGxhdGZvcm1TZXJ2aWNlfQogICAgICAgIC5sb2dzPSR7dGhpcy5kZW1vUGxhdGZvcm1Mb2dzfQogICAgICAgIEBzdGFydD0keygpPT5jb25zb2xlLmxvZygiU3RhcnQiKX0KICAgICAgICBAc3RvcD0keygpPT5jb25zb2xlLmxvZygiU3RvcCIpfQogICAgICAgIEByZXN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJSZXN0YXJ0Iil9CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICBgfWFzeW5jIG9uQWN0aXZhdGUobSl7dGhpcy5hcHB1aT1tLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkRvY2tlciBTZXJ2aWNlcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJQbGF0Zm9ybSBTZXJ2aWNlcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJwbGF0Zm9ybS1kZXRhaWwiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkJhY2t1cHMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50Vmlldz0iYmFja3VwcyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXJ2aWNlcyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRGVwbG95IFNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJjcmVhdGUifSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpSZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlJlZnJlc2giKX0sImFjdGlvbiIpfV19LHtuYW1lOiJRdWljayBGaWx0ZXJzIixpdGVtczpbe2tleToiUnVubmluZyIsaWNvbk5hbWU6Imx1Y2lkZTpQbGF5IixiYWRnZToiMyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgcnVubmluZyIpfSwiYWN0aW9uIil9LHtrZXk6IlN0b3BwZWQiLGljb25OYW1lOiJsdWNpZGU6U3F1YXJlIixiYWRnZToiMSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHN0b3BwZWQiKX0sImFjdGlvbiIpfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWN7UmcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIHdvdCxfUSx1SmEsZzlhPWcoKCk9PntwZSgpO2ljKCk7d290PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxfUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdUphPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LW5ldHdvcmsiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld05ldHdvcmsiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W1koKV0sd290KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iY3VycmVudFRhYiJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmN1cnJlbnRUYWIsImdldCIpLHNldDppKCh2LHgpPT57di5jdXJyZW50VGFiPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx3b3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERvbWFpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2VsZWN0ZWREb21haW4iaW4gdiwiaGFzIiksZ2V0Omkodj0+di5zZWxlY3RlZERvbWFpbiwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnNlbGVjdGVkRG9tYWluPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSx3b3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1hcHB1aT1udWxsOyNlPV9RKHRoaXMsbywicHJveHkiKTtnZXQgY3VycmVudFRhYigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VGFiKGIpe3RoaXMuI2U9Yn1hc3luYyBvbkFjdGl2YXRlKGIpe3RoaXMuYXBwdWk9Yi5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJSZXZlcnNlIFByb3h5IixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0icHJveHkiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkROUyBSZWNvcmRzIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iZG5zIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJEb21haW5zIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iZG9tYWlucyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmKHRoaXMuY3VycmVudFRhYj09PSJwcm94eSI/dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJSZXZlcnNlIFByb3h5Iixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgUm91dGUiLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQWRkIHJvdXRlIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXRpc3RpY3MiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiNDIgQWN0aXZlIENvbm5lY3Rpb25zIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6IjE1LDQyMCBSZXF1ZXN0cyBUb2RheSJ9XX1dfSk6dGhpcy5jdXJyZW50VGFiPT09ImRucyI/dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJETlMgUmVjb3JkcyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFJlY29yZCIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgcmVjb3JkIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQgWm9uZSIsaWNvbk5hbWU6Imx1Y2lkZTpVcGxvYWQiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkltcG9ydCB6b25lIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiWm9uZXMiLGl0ZW1zOlt7a2V5OiJleGFtcGxlLmNvbSIsaWNvbk5hbWU6Imx1Y2lkZTpHbG9iZSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiU2VsZWN0IGV4YW1wbGUuY29tIil9LCJhY3Rpb24iKX0se2tleToiZXhhbXBsZS5uZXQiLGljb25OYW1lOiJsdWNpZGU6R2xvYmUiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlNlbGVjdCBleGFtcGxlLm5ldCIpfSwiYWN0aW9uIil9LHtrZXk6Im15YXBwLmlvIixpY29uTmFtZToibHVjaWRlOkdsb2JlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJTZWxlY3QgbXlhcHAuaW8iKX0sImFjdGlvbiIpfV19XX0pOih0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWlucyJ8fHRoaXMuY3VycmVudFRhYj09PSJkb21haW4tZGV0YWlsIikmJnRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRG9tYWlucyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIERvbWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgZG9tYWluIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJWZXJpZnkgQWxsIixpY29uTmFtZToibHVjaWRlOkNoZWNrQ2lyY2xlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJWZXJpZnkgYWxsIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiQ2VydGlmaWNhdGVzIixpdGVtczpbe2tleToiVmFsaWQiLGljb25OYW1lOiJsdWNpZGU6U2hpZWxkQ2hlY2siLGJhZGdlOiIzIixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciB2YWxpZCIpfSwiYWN0aW9uIil9LHtrZXk6IkV4cGlyaW5nIFNvb24iLGljb25OYW1lOiJsdWNpZGU6QWxlcnRUcmlhbmdsZSIsYmFkZ2U6IjEiLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIGV4cGlyaW5nIil9LCJhY3Rpb24iKX1dfV19KSl9b25EZWFjdGl2YXRlKCl7fSN0PShfUSh0aGlzLGwpLF9RKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkRG9tYWluKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkRG9tYWluKGIpe3RoaXMuI3Q9Yn1kZW1vUHJveHlSb3V0ZXM9KF9RKHRoaXMsdSksW3tpZDoiMSIsZG9tYWluOiJhcGkuZXhhbXBsZS5jb20iLHRhcmdldDoiaHR0cDovL2FwaS1nYXRld2F5OjMwMDAiLHNzbDohMCxzdGF0dXM6ImFjdGl2ZSJ9LHtpZDoiMiIsZG9tYWluOiJhcHAuZXhhbXBsZS5jb20iLHRhcmdldDoiaHR0cDovL2Zyb250ZW5kOjgwODAiLHNzbDohMCxzdGF0dXM6ImFjdGl2ZSJ9LHtpZDoiMyIsZG9tYWluOiJhZG1pbi5leGFtcGxlLmNvbSIsdGFyZ2V0OiJodHRwOi8vYWRtaW4tcGFuZWw6NDAwMCIsc3NsOiEwLHN0YXR1czoiYWN0aXZlIn0se2lkOiI0Iixkb21haW46ImxlZ2FjeS5leGFtcGxlLmNvbSIsdGFyZ2V0OiJodHRwOi8vbGVnYWN5OjUwMDAiLHNzbDohMSxzdGF0dXM6ImluYWN0aXZlIn1dKTtkZW1vQWNjZXNzTG9ncz1be3RpbWVzdGFtcDoiMTQ6MzA6MjIiLG1ldGhvZDoiR0VUIixwYXRoOiIvYXBpL3VzZXJzIixzdGF0dXM6MjAwLGR1cmF0aW9uOiI0NW1zIixpcDoiMTkyLjE2OC4xLjEwMCJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixtZXRob2Q6IlBPU1QiLHBhdGg6Ii9hcGkvb3JkZXJzIixzdGF0dXM6MjAxLGR1cmF0aW9uOiIxMjBtcyIsaXA6IjE5Mi4xNjguMS4xMDUifSx7dGltZXN0YW1wOiIxNDozMDoyMCIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9hcGkvcHJvZHVjdHMiLHN0YXR1czoyMDAsZHVyYXRpb246Ijg5bXMiLGlwOiIxOTIuMTY4LjEuMTAwIn0se3RpbWVzdGFtcDoiMTQ6MzA6MTkiLG1ldGhvZDoiREVMRVRFIixwYXRoOiIvYXBpL2NhY2hlIixzdGF0dXM6MjA0LGR1cmF0aW9uOiIxMm1zIixpcDoiMTkyLjE2OC4xLjUwIn0se3RpbWVzdGFtcDoiMTQ6MzA6MTgiLG1ldGhvZDoiR0VUIixwYXRoOiIvaGVhbHRoIixzdGF0dXM6MjAwLGR1cmF0aW9uOiI1bXMiLGlwOiIxMC4wLjAuMSJ9XTtkZW1vRG5zUmVjb3Jkcz1be2lkOiIxIix0eXBlOiJBIixuYW1lOiJAIix2YWx1ZToiMTkyLjE2OC4xLjEwMCIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20ifSx7aWQ6IjIiLHR5cGU6IkEiLG5hbWU6ImFwaSIsdmFsdWU6IjE5Mi4xNjguMS4xMDAiLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIn0se2lkOiIzIix0eXBlOiJDTkFNRSIsbmFtZToid3d3Iix2YWx1ZToiZXhhbXBsZS5jb20iLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIn0se2lkOiI0Iix0eXBlOiJNWCIsbmFtZToiQCIsdmFsdWU6Im1haWwuZXhhbXBsZS5jb20iLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIixwcmlvcml0eToxMH0se2lkOiI1Iix0eXBlOiJUWFQiLG5hbWU6IkAiLHZhbHVlOiJ2PXNwZjEgaW5jbHVkZTpfc3BmLmV4YW1wbGUuY29tIH5hbGwiLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIn1dO2RlbW9Eb21haW5zPVt7aWQ6IjEiLG5hbWU6ImV4YW1wbGUuY29tIixzdGF0dXM6ImFjdGl2ZSIsc3NsOiEwLHNzbEV4cGlyeToiMjAyNC0wNC0xNSIsZG5zUHJvdmlkZXI6IkNsb3VkZmxhcmUiLHJlY29yZENvdW50OjEyfSx7aWQ6IjIiLG5hbWU6ImFwaS5leGFtcGxlLmNvbSIsc3RhdHVzOiJhY3RpdmUiLHNzbDohMCxzc2xFeHBpcnk6IjIwMjQtMDUtMjAiLGRuc1Byb3ZpZGVyOiJDbG91ZGZsYXJlIixyZWNvcmRDb3VudDozfSx7aWQ6IjMiLG5hbWU6InN0YWdpbmcuZXhhbXBsZS5jb20iLHN0YXR1czoicGVuZGluZyIsc3NsOiExLHNzbEV4cGlyeTpudWxsLGRuc1Byb3ZpZGVyOiJDbG91ZGZsYXJlIixyZWNvcmRDb3VudDoyfSx7aWQ6IjQiLG5hbWU6ImxlZ2FjeS5leGFtcGxlLm5ldCIsc3RhdHVzOiJhY3RpdmUiLHNzbDohMCxzc2xFeHBpcnk6IjIwMjQtMDItMTAiLGRuc1Byb3ZpZGVyOiJNYW51YWwiLHJlY29yZENvdW50OjV9XTtkZW1vRG9tYWluRGV0YWlsPXtpZDoiMSIsbmFtZToiZXhhbXBsZS5jb20iLHN0YXR1czoiYWN0aXZlIix2ZXJpZmllZDohMCxjcmVhdGVkQXQ6IjIwMjQtMDEtMTAiLHByb3h5Um91dGVzOlsiL2FwaS8qIiwiL2FwcC8qIiwiL2FkbWluLyoiXX07ZGVtb0NlcnRpZmljYXRlPXtpZDoiMSIsZG9tYWluOiJleGFtcGxlLmNvbSIsaXNzdWVyOiJMZXQncyBFbmNyeXB0Iix2YWxpZEZyb206IjIwMjQtMDEtMTAiLHZhbGlkVW50aWw6IjIwMjQtMDQtMTAiLGRheXNSZW1haW5pbmc6NDUsc3RhdHVzOiJ2YWxpZCIsYXV0b1JlbmV3OiEwLGNoYWluOlsiUjMiLCJJU1JHIFJvb3QgWDEiXX07ZGVtb0RvbWFpbkRuc1JlY29yZHM9W3tpZDoiMSIsdHlwZToiQSIsbmFtZToiQCIsdmFsdWU6IjE5Mi4xNjguMS4xMDAiLHR0bDozNjAwfSx7aWQ6IjIiLHR5cGU6IkNOQU1FIixuYW1lOiJ3d3ciLHZhbHVlOiJleGFtcGxlLmNvbSIsdHRsOjM2MDB9LHtpZDoiMyIsdHlwZToiTVgiLG5hbWU6IkAiLHZhbHVlOiJtYWlsLmV4YW1wbGUuY29tIix0dGw6MzYwMCxwcmlvcml0eToxMH0se2lkOiI0Iix0eXBlOiJUWFQiLG5hbWU6IkAiLHZhbHVlOiJ2PXNwZjEgaW5jbHVkZTpfc3BmLmV4YW1wbGUuY29tIH5hbGwiLHR0bDozNjAwfV07c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC50YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuYWN0aXZlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogLTFweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHggMXB4IDAgMDsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWluLWRldGFpbCI/dGhpcy5yZW5kZXJEb21haW5EZXRhaWwoKTp3YAogICAgICAke3RoaXMuY3VycmVudFRhYj09PSJwcm94eSI/dGhpcy5yZW5kZXJQcm94eVZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0iZG5zIj90aGlzLnJlbmRlckRuc1ZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWlucyI/dGhpcy5yZW5kZXJEb21haW5zVmlldygpOiIifQogICAgYH1yZW5kZXJQcm94eVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPHN6LW5ldHdvcmstcHJveHktdmlldwogICAgICAgIC5yb3V0ZXM9JHt0aGlzLmRlbW9Qcm94eVJvdXRlc30KICAgICAgICAuYWNjZXNzTG9ncz0ke3RoaXMuZGVtb0FjY2Vzc0xvZ3N9CiAgICAgICAgLnN0YXRzPSR7e2FjdGl2ZUNvbm5lY3Rpb25zOjQyLHJlcXVlc3RzVG9kYXk6MTU0MjAsYnl0ZXNUcmFuc2ZlcnJlZDoiMi40IEdCIn19CiAgICAgICAgQGFkZC1yb3V0ZT0keygpPT5jb25zb2xlLmxvZygiQWRkIHJvdXRlIil9CiAgICAgICAgQGVkaXQtcm91dGU9JHtiPT5jb25zb2xlLmxvZygiRWRpdCByb3V0ZToiLGIuZGV0YWlsKX0KICAgICAgICBAZGVsZXRlLXJvdXRlPSR7Yj0+Y29uc29sZS5sb2coIkRlbGV0ZSByb3V0ZToiLGIuZGV0YWlsKX0KICAgICAgPjwvc3otbmV0d29yay1wcm94eS12aWV3PgogICAgYH1yZW5kZXJEbnNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLWRucy12aWV3CiAgICAgICAgLnJlY29yZHM9JHt0aGlzLmRlbW9EbnNSZWNvcmRzfQogICAgICAgIC56b25lcz0ke1siZXhhbXBsZS5jb20iLCJleGFtcGxlLm5ldCIsIm15YXBwLmlvIl19CiAgICAgICAgLnNlbGVjdGVkWm9uZT0keyJleGFtcGxlLmNvbSJ9CiAgICAgICAgQGFkZC1yZWNvcmQ9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByZWNvcmQiKX0KICAgICAgICBAZWRpdC1yZWNvcmQ9JHtiPT5jb25zb2xlLmxvZygiRWRpdCByZWNvcmQ6IixiLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1yZWNvcmQ9JHtiPT5jb25zb2xlLmxvZygiRGVsZXRlIHJlY29yZDoiLGIuZGV0YWlsKX0KICAgICAgICBAY2hhbmdlLXpvbmU9JHtiPT5jb25zb2xlLmxvZygiQ2hhbmdlIHpvbmU6IixiLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstZG5zLXZpZXc+CiAgICBgfXJlbmRlckRvbWFpbnNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLWRvbWFpbnMtdmlldwogICAgICAgIC5kb21haW5zPSR7dGhpcy5kZW1vRG9tYWluc30KICAgICAgICBAYWRkLWRvbWFpbj0keygpPT5jb25zb2xlLmxvZygiQWRkIGRvbWFpbiIpfQogICAgICAgIEB2aWV3LWRvbWFpbj0ke2I9Pnt0aGlzLnNlbGVjdGVkRG9tYWluPWIuZGV0YWlsLHRoaXMuY3VycmVudFRhYj0iZG9tYWluLWRldGFpbCJ9fQogICAgICAgIEByZW5ldy1zc2w9JHtiPT5jb25zb2xlLmxvZygiUmVuZXcgU1NMOiIsYi5kZXRhaWwpfQogICAgICAgIEBkZWxldGUtZG9tYWluPSR7Yj0+Y29uc29sZS5sb2coIkRlbGV0ZSBkb21haW46IixiLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstZG9tYWlucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5EZXRhaWwoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRUYWI9ImRvbWFpbnMifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gRG9tYWlucwogICAgICA8L2J1dHRvbj4KCiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7dGhpcy5kZW1vRG9tYWluRGV0YWlsfQogICAgICAgIC5jZXJ0aWZpY2F0ZT0ke3RoaXMuZGVtb0NlcnRpZmljYXRlfQogICAgICAgIC5kbnNSZWNvcmRzPSR7dGhpcy5kZW1vRG9tYWluRG5zUmVjb3Jkc30KICAgICAgICBAdmVyaWZ5LWRvbWFpbj0keygpPT5jb25zb2xlLmxvZygiVmVyaWZ5IGRvbWFpbiIpfQogICAgICAgIEBkZWxldGUtZG9tYWluPSR7KCk9Pntjb25zb2xlLmxvZygiRGVsZXRlIGRvbWFpbiIpLHRoaXMuY3VycmVudFRhYj0iZG9tYWlucyJ9fQogICAgICAgIEByZW5ldy1jZXJ0aWZpY2F0ZT0keygpPT5jb25zb2xlLmxvZygiUmVuZXcgY2VydGlmaWNhdGUiKX0KICAgICAgICBAYWRkLWRucy1yZWNvcmQ9JHsoKT0+Y29uc29sZS5sb2coIkFkZCBETlMgcmVjb3JkIil9CiAgICAgICAgQGVkaXQtZG5zLXJlY29yZD0ke2I9PmNvbnNvbGUubG9nKCJFZGl0IEROUyByZWNvcmQ6IixiLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1kbnMtcmVjb3JkPSR7Yj0+Y29uc29sZS5sb2coIkRlbGV0ZSBETlMgcmVjb3JkOiIsYi5kZXRhaWwpfQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICBgfXN0YXRpY3tfUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgYjlhLGtvdCxwSmEsdjlhPWcoKCk9PntwZSgpO2ljKCk7YjlhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxrb3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHBKYT0oKCk9PntsZXQgcz1bbmUoInN6LWRlbW8tdmlldy1yZWdpc3RyaWVzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdSZWdpc3RyaWVzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxiOWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJjdXJyZW50VGFiImluIHUsImhhcyIpLGdldDppKHU9PnUuY3VycmVudFRhYiwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LmN1cnJlbnRUYWI9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLGI5YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfWFwcHVpPW51bGw7I2U9a290KHRoaXMsbywib25lYm94Iik7Z2V0IGN1cnJlbnRUYWIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFRhYihkKXt0aGlzLiNlPWR9YXN5bmMgb25BY3RpdmF0ZShkKXt0aGlzLmFwcHVpPWQuYXBwdWksdGhpcy5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiUmVnaXN0cnkgQWR2ZXJ0aXNlbWVudCIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9Im9uZWJveCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRXh0ZXJuYWwgUmVnaXN0cmllcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9ImV4dGVybmFsIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXt0aGlzLmFwcHVpJiYodGhpcy5jdXJyZW50VGFiPT09Im9uZWJveCI/dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJSZWdpc3RyeSBBZHZlcnRpc2VtZW50Iixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJQdXNoIEltYWdlIixpY29uTmFtZToibHVjaWRlOlVwbG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUHVzaCBpbWFnZSIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLHZhcmlhbnQ6ImRhbmdlciIsa2V5OiJHYXJiYWdlIENvbGxlY3QiLGljb25OYW1lOiJsdWNpZGU6VHJhc2gyIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJHQyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXRpc3RpY3MiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiNCBJbWFnZXMifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiNjQwIE1CIFRvdGFsIn1dfV19KTp0aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkV4dGVybmFsIFJlZ2lzdHJpZXMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBSZWdpc3RyeSIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgcmVnaXN0cnkiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IlRlc3QgQWxsIixpY29uTmFtZToibHVjaWRlOkNoZWNrQ2lyY2xlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJUZXN0IGFsbCIpfSwiYWN0aW9uIil9XX0se25hbWU6IkNvbm5lY3RlZCIsaXRlbXM6W3trZXk6IkRvY2tlciBIdWIiLGljb25OYW1lOiJsdWNpZGU6Qm94IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJEb2NrZXIgSHViIil9LCJhY3Rpb24iKX0se2tleToiR0hDUiIsaWNvbk5hbWU6Imx1Y2lkZTpHaXRodWIiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkdIQ1IiKX0sImFjdGlvbiIpfV19XX0pKX1vbkRlYWN0aXZhdGUoKXt9ZGVtb09uZWJveEltYWdlcz0oa290KHRoaXMsbCksW3tpZDoiMSIsbmFtZToiYXBpLWdhdGV3YXkiLHRhZ3M6WyJsYXRlc3QiLCJ2Mi4xLjAiLCJ2Mi4wLjAiXSxzaXplOiIyNTYgTUIiLHVwZGF0ZWQ6IjIwMjQtMDEtMjAiLHB1bGxzOjE0Mn0se2lkOiIyIixuYW1lOiJmcm9udGVuZCIsdGFnczpbImxhdGVzdCIsInYxLjUuMCJdLHNpemU6IjEyOCBNQiIsdXBkYXRlZDoiMjAyNC0wMS0xOSIscHVsbHM6ODl9LHtpZDoiMyIsbmFtZToid29ya2VyLXNlcnZpY2UiLHRhZ3M6WyJsYXRlc3QiXSxzaXplOiI2NCBNQiIsdXBkYXRlZDoiMjAyNC0wMS0xOCIscHVsbHM6NTZ9LHtpZDoiNCIsbmFtZToiYWRtaW4tcGFuZWwiLHRhZ3M6WyJsYXRlc3QiLCJ2My4wLjAiLCJ2Mi45LjAiXSxzaXplOiIxOTIgTUIiLHVwZGF0ZWQ6IjIwMjQtMDEtMTciLHB1bGxzOjM0fV0pO2RlbW9FeHRlcm5hbFJlZ2lzdHJpZXM9W3tpZDoiMSIsbmFtZToiRG9ja2VyIEh1YiIsdXJsOiJkb2NrZXIuaW8iLHN0YXR1czoiY29ubmVjdGVkIixpbWFnZXM6MTJ9LHtpZDoiMiIsbmFtZToiR2l0SHViIENvbnRhaW5lciBSZWdpc3RyeSIsdXJsOiJnaGNyLmlvIixzdGF0dXM6ImNvbm5lY3RlZCIsaW1hZ2VzOjh9LHtpZDoiMyIsbmFtZToiQVdTIEVDUiIsdXJsOiIxMjM0NTY3ODkuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsc3RhdHVzOiJlcnJvciIsaW1hZ2VzOjB9XTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMXB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0ib25lYm94Ij93YAogICAgICAgIDxzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50CiAgICAgICAgICAuaW1hZ2VzPSR7dGhpcy5kZW1vT25lYm94SW1hZ2VzfQogICAgICAgICAgLnN0YXRzPSR7e3RvdGFsSW1hZ2VzOjQsdG90YWxTaXplOiI2NDAgTUIiLHRvdGFsUHVsbHM6MzIxfX0KICAgICAgICAgIEB2aWV3LWltYWdlPSR7ZD0+Y29uc29sZS5sb2coIlZpZXcgaW1hZ2U6IixkLmRldGFpbCl9CiAgICAgICAgICBAZGVsZXRlLWltYWdlPSR7ZD0+Y29uc29sZS5sb2coIkRlbGV0ZSBpbWFnZToiLGQuZGV0YWlsKX0KICAgICAgICAgIEBkZWxldGUtdGFnPSR7ZD0+Y29uc29sZS5sb2coIkRlbGV0ZSB0YWc6IixkLmRldGFpbCl9CiAgICAgICAgPjwvc3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudD4KICAgICAgYDp3YAogICAgICAgIDxzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3CiAgICAgICAgICAucmVnaXN0cmllcz0ke3RoaXMuZGVtb0V4dGVybmFsUmVnaXN0cmllc30KICAgICAgICAgIEBhZGQtcmVnaXN0cnk9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByZWdpc3RyeSIpfQogICAgICAgICAgQGVkaXQtcmVnaXN0cnk9JHtkPT5jb25zb2xlLmxvZygiRWRpdCByZWdpc3RyeToiLGQuZGV0YWlsKX0KICAgICAgICAgIEBkZWxldGUtcmVnaXN0cnk9JHtkPT5jb25zb2xlLmxvZygiRGVsZXRlIHJlZ2lzdHJ5OiIsZC5kZXRhaWwpfQogICAgICAgICAgQHRlc3QtY29ubmVjdGlvbj0ke2Q9PmNvbnNvbGUubG9nKCJUZXN0IGNvbm5lY3Rpb246IixkLmRldGFpbCl9CiAgICAgICAgPjwvc3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldz4KICAgICAgYH0KICAgIGB9c3RhdGlje2tvdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgaEphLGZKYSxtSmEseDlhPWcoKCk9PntwZSgpO2ljKCk7aEphPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmSmE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG1KYT0oKCk9PntsZXQgcz1bbmUoInN6LWRlbW8tdmlldy10b2tlbnMiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld1Rva2VucyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2hKYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHQpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfWFwcHVpPW51bGw7YXN5bmMgb25BY3RpdmF0ZShvKXt0aGlzLmFwcHVpPW8uYXBwdWksdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUb2tlbnMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkNyZWF0ZSBHbG9iYWwgVG9rZW4iLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIGdsb2JhbCB0b2tlbiIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIENJIFRva2VuIixpY29uTmFtZToibHVjaWRlOkdpdEJyYW5jaCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIENJIHRva2VuIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiVG9rZW4gVHlwZXMiLGl0ZW1zOlt7a2V5OiJHbG9iYWwgVG9rZW5zIixpY29uTmFtZToibHVjaWRlOktleSIsYmFkZ2U6IjMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBnbG9iYWwiKX0sImFjdGlvbiIpfSx7a2V5OiJDSSBUb2tlbnMiLGljb25OYW1lOiJsdWNpZGU6Q3B1IixiYWRnZToiMyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIENJIil9LCJhY3Rpb24iKX1dfV19KX1vbkRlYWN0aXZhdGUoKXt9ZGVtb0dsb2JhbFRva2Vucz1be2lkOiIxIixuYW1lOiJDSS9DRCBQaXBlbGluZSIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTUiLGxhc3RVc2VkOiIyMDI0LTAxLTIwIn0se2lkOiIyIixuYW1lOiJEZXZlbG9wbWVudCIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTAifSx7aWQ6IjMiLG5hbWU6IlByb2R1Y3Rpb24gRGVwbG95Iix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wNSIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifV07ZGVtb0NpVG9rZW5zPVt7aWQ6IjQiLG5hbWU6ImFwaS1nYXRld2F5LWNpIix0eXBlOiJjaSIsc2VydmljZToiYXBpLWdhdGV3YXkiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xOCIsbGFzdFVzZWQ6IjIwMjQtMDEtMjAifSx7aWQ6IjUiLG5hbWU6ImZyb250ZW5kLWNpIix0eXBlOiJjaSIsc2VydmljZToiZnJvbnRlbmQiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMiIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifSx7aWQ6IjYiLG5hbWU6Indvcmtlci1zZXJ2aWNlLWNpIix0eXBlOiJjaSIsc2VydmljZToid29ya2VyLXNlcnZpY2UiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wOCJ9XTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4KICAgICAgICA8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPlRva2VuczwvaDE+CiAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPk1hbmFnZSByZWdpc3RyeSBhY2Nlc3MgdG9rZW5zIGZvciBDSS9DRCBwaXBlbGluZXM8L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPHN6LXRva2Vucy12aWV3CiAgICAgICAgLmdsb2JhbFRva2Vucz0ke3RoaXMuZGVtb0dsb2JhbFRva2Vuc30KICAgICAgICAuY2lUb2tlbnM9JHt0aGlzLmRlbW9DaVRva2Vuc30KICAgICAgICBAY3JlYXRlPSR7bz0+Y29uc29sZS5sb2coIkNyZWF0ZSB0b2tlbjoiLG8uZGV0YWlsKX0KICAgICAgICBAY29weT0ke289PmNvbnNvbGUubG9nKCJDb3B5IHRva2VuOiIsby5kZXRhaWwpfQogICAgICAgIEByZWdlbmVyYXRlPSR7bz0+Y29uc29sZS5sb2coIlJlZ2VuZXJhdGUgdG9rZW46IixvLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZT0ke289PmNvbnNvbGUubG9nKCJEZWxldGUgdG9rZW46IixvLmRldGFpbCl9CiAgICAgID48L3N6LXRva2Vucy12aWV3PgogICAgYH1zdGF0aWN7ZkphKGEsdCl9fTtyZXR1cm4gbj1hfSkoKX0pO3ZhciBnSmEsYkphLHZKYSx5OWE9ZygoKT0+e3BlKCk7aWMoKTtnSmE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGJKYT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdkphPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LXNldHRpbmdzIildLGUsdD1bXSxhLHI9d2U7dmFyIG49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdTZXR0aW5ncyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2dKYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHQpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfWFwcHVpPW51bGw7YXN5bmMgb25BY3RpdmF0ZShvKXt0aGlzLmFwcHVpPW8uYXBwdWksdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXR0aW5ncyIsZ3JvdXBzOlt7bmFtZToiQ2F0ZWdvcmllcyIsaXRlbXM6W3trZXk6IkdlbmVyYWwiLGljb25OYW1lOiJsdWNpZGU6U2V0dGluZ3MiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkdlbmVyYWwgc2V0dGluZ3MiKX0sImFjdGlvbiIpfSx7a2V5OiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOk5ldHdvcmsiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIk5ldHdvcmsgc2V0dGluZ3MiKX0sImFjdGlvbiIpfSx7a2V5OiJTZWN1cml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpTaGllbGQiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlNlY3VyaXR5IHNldHRpbmdzIil9LCJhY3Rpb24iKX0se2tleToiQ2VydGlmaWNhdGVzIixpY29uTmFtZToibHVjaWRlOkZpbGVCYWRnZSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ2VydGlmaWNhdGUgc2V0dGluZ3MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJFeHBvcnQgQ29uZmlnIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJFeHBvcnQgY29uZmlnIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQgQ29uZmlnIixpY29uTmFtZToibHVjaWRlOlVwbG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiSW1wb3J0IGNvbmZpZyIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLHZhcmlhbnQ6ImRhbmdlciIsa2V5OiJSZXNldCB0byBEZWZhdWx0IixpY29uTmFtZToibHVjaWRlOlJvdGF0ZUNjdyIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXNldCBhbGwgc2V0dGluZ3MgdG8gZGVmYXVsdD8iLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlJlc2V0IHNldHRpbmdzIil9LCJhY3Rpb24iKX1dfV19KX1vbkRlYWN0aXZhdGUoKXt9ZGVtb1NldHRpbmdzPXtkYXJrTW9kZTohMCxjbG91ZGZsYXJlVG9rZW46IiIsY2xvdWRmbGFyZVpvbmVJZDoiIixhdXRvUmVuZXdDZXJ0czohMCxyZW5ld2FsVGhyZXNob2xkOjMwLGFjbWVFbWFpbDoiYWRtaW5Ac2VydmUuem9uZSIsaHR0cFBvcnQ6ODAsaHR0cHNQb3J0OjQ0Myxmb3JjZUh0dHBzOiEwfTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLnNldHRpbmdzLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4KICAgICAgICA8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPlNldHRpbmdzPC9oMT4KICAgICAgICA8cCBjbGFzcz0icGFnZS1zdWJ0aXRsZSI+Q29uZmlndXJlIHlvdXIgb25lYm94IGluc3RhbmNlPC9wPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgPHN6LXNldHRpbmdzLXZpZXcKICAgICAgICAgIC5zZXR0aW5ncz0ke3RoaXMuZGVtb1NldHRpbmdzfQogICAgICAgICAgY3VycmVudFVzZXI9ImFkbWluIgogICAgICAgICAgQHNldHRpbmctY2hhbmdlPSR7bz0+Y29uc29sZS5sb2coIlNldHRpbmcgY2hhbmdlOiIsby5kZXRhaWwpfQogICAgICAgICAgQGNoYW5nZS1wYXNzd29yZD0ke289PmNvbnNvbGUubG9nKCJDaGFuZ2UgcGFzc3dvcmQ6IixvLmRldGFpbCl9CiAgICAgICAgICBAcmVzZXQ9JHsoKT0+Y29uc29sZS5sb2coIlJlc2V0IHNldHRpbmdzIil9CiAgICAgICAgICBAc2F2ZT0ke289PmNvbnNvbGUubG9nKCJTYXZlIHNldHRpbmdzOiIsby5kZXRhaWwpfQogICAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7YkphKGEsdCl9fTtyZXR1cm4gbj1hfSkoKX0pO3ZhciBUMWUsT2cseEphLHc5YT1nKCgpPT57cGUoKTtpYygpO1QxZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sT2c9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHhKYT0oKCk9PntsZXQgcz1bbmUoInN6LWRlbW8tdmlldy1tdGEiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld010YSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLFQxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJjdXJyZW50VmlldyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuY3VycmVudFZpZXc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLFQxZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRW1haWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InNlbGVjdGVkRW1haWwiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZWxlY3RlZEVtYWlsLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yuc2VsZWN0ZWRFbWFpbD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksVDFlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudERpcmVjdGlvbkZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iY3VycmVudERpcmVjdGlvbkZpbHRlciJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXIsImdldCIpLHNldDppKChmLHkpPT57Zi5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxUMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1hcHB1aT1udWxsOyNlPU9nKHRoaXMsbywibGlzdCIpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmlldyhtKXt0aGlzLiNlPW19I3Q9KE9nKHRoaXMsbCksT2codGhpcyxkLG51bGwpKTtnZXQgc2VsZWN0ZWRFbWFpbCgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZEVtYWlsKG0pe3RoaXMuI3Q9bX0jYT0oT2codGhpcyx1KSxPZyh0aGlzLGIsImFsbCIpKTtnZXQgY3VycmVudERpcmVjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNhfXNldCBjdXJyZW50RGlyZWN0aW9uRmlsdGVyKG0pe3RoaXMuI2E9bX1kZW1vRW1haWxzPShPZyh0aGlzLHYpLFt7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIixzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIn0se2lkOiIyIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImJvdW5jZWQiLGZyb206ImFsZXJ0c0BzZXJ2ZS56b25lIix0bzoiaW52YWxpZEBub3doZXJlLnRlc3QiLHN1YmplY3Q6IlNlcnZpY2UgQWxlcnQ6IENQVSBVc2FnZSBIaWdoIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6Mjg6MTAiLG1lc3NhZ2VJZDoiPGRlZjQ1NkBzZXJ2ZS56b25lPiIsc2l6ZToiOC4yIEtCIn0se2lkOiIzIixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsdG86ImFkbWluQHNlcnZlLnpvbmUiLHN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyNTowMCIsbWVzc2FnZUlkOiI8Z2hpNzg5QGN1c3RvbWVyLmNvbT4iLHNpemU6IjI0LjEgS0IifSx7aWQ6IjQiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoicmVqZWN0ZWQiLGZyb206ImJpbGxpbmdAc2VydmUuem9uZSIsdG86ImJsb2NrZWRAc3BhbS1kb21haW4udGVzdCIsc3ViamVjdDoiSW52b2ljZSAjMjAyNC0wMDEiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyMDo0NSIsbWVzc2FnZUlkOiI8amtsMDEyQHNlcnZlLnpvbmU+IixzaXplOiI0NS42IEtCIn0se2lkOiI1IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlZmVycmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJzbG93QHJlbW90ZS1zZXJ2ZXIudGVzdCIsc3ViamVjdDoiUGFzc3dvcmQgUmVzZXQgUmVxdWVzdCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjE1OjMwIixtZXNzYWdlSWQ6Ijxtbm8zNDVAc2VydmUuem9uZT4iLHNpemU6IjYuOCBLQiJ9LHtpZDoiNiIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToiY2lAZ2l0aHViLmNvbSIsdG86ImRldm9wc0BzZXJ2ZS56b25lIixzdWJqZWN0OiJCdWlsZCAjNDUyMSBwYXNzZWQiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoxMDowMCIsbWVzc2FnZUlkOiI8cHFyNjc4QGdpdGh1Yi5jb20+IixzaXplOiIxNS4zIEtCIn0se2lkOiI3IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6InBlbmRpbmciLGZyb206InJlcG9ydHNAc2VydmUuem9uZSIsdG86InRlYW1Ac2VydmUuem9uZSIsc3ViamVjdDoiV2Vla2x5IEluZnJhc3RydWN0dXJlIFJlcG9ydCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjA1OjAwIixtZXNzYWdlSWQ6IjxzdHU5MDFAc2VydmUuem9uZT4iLHNpemU6IjEwMi43IEtCIn0se2lkOiI4IixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJtb25pdG9yaW5nQHVwdGltZS5pbyIsdG86Im9wc0BzZXJ2ZS56b25lIixzdWJqZWN0OiJVcHRpbWUgUmVwb3J0OiA5OS45OCUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxMzo1NTowMCIsbWVzc2FnZUlkOiI8dnd4MjM0QHVwdGltZS5pbz4iLHNpemU6IjkuMSBLQiJ9XSk7ZGVtb0VtYWlsRGV0YWlscz17MTp7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIix0b0xpc3Q6WyJ1c2VyQGV4YW1wbGUuY29tIl0sc3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MzA6MjIiLG1lc3NhZ2VJZDoiPGFiYzEyM0BzZXJ2ZS56b25lPiIsc2l6ZToiMTIuNCBLQiIsc210cExvZzpbe3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuc2VydmUuem9uZSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwuZXhhbXBsZS5jb20gSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLVNUQVJUVExTIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlNUQVJUVExTIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjAgUmVhZHkgdG8gc3RhcnQgVExTIixyZXNwb25zZUNvZGU6MjIwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtQVVUSCBQTEFJTiBMT0dJTiIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgU0laRSA1MjQyODgwMCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJBVVRIIFBMQUlOIEFIVnpaWElBY0dGemMzZHZjbVE9In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMzUgMi43LjAgQXV0aGVudGljYXRpb24gc3VjY2Vzc2Z1bCIscmVzcG9uc2VDb2RlOjIzNX0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJNQUlMIEZST006PG5vcmVwbHlAc2VydmUuem9uZT4ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJSQ1BUIFRPOjx1c2VyQGV4YW1wbGUuY29tPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIEFjY2VwdGVkIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkRBVEEifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6JzM1NCBFbnRlciBtZXNzYWdlLCBlbmRpbmcgd2l0aCAiLiIgb24gYSBsaW5lIGJ5IGl0c2VsZicscmVzcG9uc2VDb2RlOjM1NH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiIuIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0sgaWQ9MXBRMnJTLTAwMDNBYi1DNCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJRVUlUIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjEgbWFpbC5leGFtcGxlLmNvbSBjbG9zaW5nIGNvbm5lY3Rpb24iLHJlc3BvbnNlQ29kZToyMjF9XSxjb25uZWN0aW9uSW5mbzp7c291cmNlSXA6IjEwLjAuMS41MCIsc291cmNlSG9zdG5hbWU6Im1haWwuc2VydmUuem9uZSIsZGVzdGluYXRpb25JcDoiOTMuMTg0LjIxNi4zNCIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjMiLHRsc0NpcGhlcjoiVExTX0FFU18yNTZfR0NNX1NIQTM4NCIsYXV0aGVudGljYXRlZDohMCxhdXRoTWV0aG9kOiJQTEFJTiIsYXV0aFVzZXI6Im5vcmVwbHlAc2VydmUuem9uZSJ9LGF1dGhlbnRpY2F0aW9uUmVzdWx0czp7c3BmOiJwYXNzIixzcGZEb21haW46InNlcnZlLnpvbmUiLGRraW06InBhc3MiLGRraW1Eb21haW46InNlcnZlLnpvbmUiLGRtYXJjOiJwYXNzIixkbWFyY1BvbGljeToicmVqZWN0In0saGVhZGVyczp7RnJvbToibm9yZXBseUBzZXJ2ZS56b25lIixUbzoidXNlckBleGFtcGxlLmNvbSIsU3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIixEYXRlOiJNb24sIDE1IEphbiAyMDI0IDE0OjMwOjIyICswMDAwIiwiTUlNRS1WZXJzaW9uIjoiMS4wIiwiQ29udGVudC1UeXBlIjoidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sYm9keTpgPGh0bWw+CjxoZWFkPjx0aXRsZT5XZWxjb21lPC90aXRsZT48L2hlYWQ+Cjxib2R5PgogIDxoMT5XZWxjb21lIHRvIHNlcnZlLnpvbmUhPC9oMT4KICA8cD5Zb3VyIGFjY291bnQgaGFzIGJlZW4gY3JlYXRlZCBzdWNjZXNzZnVsbHkuPC9wPgogIDxwPkdldCBzdGFydGVkIGJ5IHZpc2l0aW5nIHlvdXIgPGEgaHJlZj0iaHR0cHM6Ly9zZXJ2ZS56b25lL2Rhc2hib2FyZCI+ZGFzaGJvYXJkPC9hPi48L3A+CjwvYm9keT4KPC9odG1sPmB9LDI6e2lkOiIyIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImJvdW5jZWQiLGZyb206ImFsZXJ0c0BzZXJ2ZS56b25lIix0bzoiaW52YWxpZEBub3doZXJlLnRlc3QiLHRvTGlzdDpbImludmFsaWRAbm93aGVyZS50ZXN0Il0sc3ViamVjdDoiU2VydmljZSBBbGVydDogQ1BVIFVzYWdlIEhpZ2giLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyODoxMCIsbWVzc2FnZUlkOiI8ZGVmNDU2QHNlcnZlLnpvbmU+IixzaXplOiI4LjIgS0IiLHJlamVjdGlvblJlYXNvbjoiNTUwIDUuMS4xIFRoZSBlbWFpbCBhY2NvdW50IHRoYXQgeW91IHRyaWVkIHRvIHJlYWNoIGRvZXMgbm90IGV4aXN0LiIsYm91bmNlTWVzc2FnZTpgRGVsaXZlcnkgdG8gdGhlIGZvbGxvd2luZyByZWNpcGllbnQgZmFpbGVkIHBlcm1hbmVudGx5OgoKICAgIGludmFsaWRAbm93aGVyZS50ZXN0CgpUZWNobmljYWwgZGV0YWlscyBvZiBwZXJtYW5lbnQgZmFpbHVyZToKR29vZ2xlIHRyaWVkIHRvIGRlbGl2ZXIgeW91ciBtZXNzYWdlLCBidXQgaXQgd2FzIHJlamVjdGVkIGJ5IHRoZSBzZXJ2ZXIgZm9yIHRoZSByZWNpcGllbnQgZG9tYWluIG5vd2hlcmUudGVzdC5gLHNtdHBMb2c6W3t0aW1lc3RhbXA6IjE0OjI4OjA4IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLnNlcnZlLnpvbmUifSx7dGltZXN0YW1wOiIxNDoyODowOCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLm5vd2hlcmUudGVzdCBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6Mjg6MDgiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJNQUlMIEZST006PGFsZXJ0c0BzZXJ2ZS56b25lPiJ9LHt0aW1lc3RhbXA6IjE0OjI4OjA5IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyODowOSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlJDUFQgVE86PGludmFsaWRAbm93aGVyZS50ZXN0PiJ9LHt0aW1lc3RhbXA6IjE0OjI4OjEwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiNTUwIDUuMS4xIFRoZSBlbWFpbCBhY2NvdW50IHRoYXQgeW91IHRyaWVkIHRvIHJlYWNoIGRvZXMgbm90IGV4aXN0LiIscmVzcG9uc2VDb2RlOjU1MH0se3RpbWVzdGFtcDoiMTQ6Mjg6MTAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJRVUlUIn0se3RpbWVzdGFtcDoiMTQ6Mjg6MTAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjEgQnllIixyZXNwb25zZUNvZGU6MjIxfV0sY29ubmVjdGlvbkluZm86e3NvdXJjZUlwOiIxMC4wLjEuNTAiLHNvdXJjZUhvc3RuYW1lOiJtYWlsLnNlcnZlLnpvbmUiLGRlc3RpbmF0aW9uSXA6IjE5OC41MS4xMDAuMjUiLGRlc3RpbmF0aW9uUG9ydDoyNSx0bHNWZXJzaW9uOiJUTFN2MS4yIix0bHNDaXBoZXI6IkVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiIsYXV0aGVudGljYXRlZDohMCxhdXRoTWV0aG9kOiJQTEFJTiIsYXV0aFVzZXI6ImFsZXJ0c0BzZXJ2ZS56b25lIn0sYXV0aGVudGljYXRpb25SZXN1bHRzOntzcGY6InBhc3MiLHNwZkRvbWFpbjoic2VydmUuem9uZSIsZGtpbToicGFzcyIsZGtpbURvbWFpbjoic2VydmUuem9uZSIsZG1hcmM6InBhc3MiLGRtYXJjUG9saWN5OiJxdWFyYW50aW5lIn0saGVhZGVyczp7RnJvbToiYWxlcnRzQHNlcnZlLnpvbmUiLFRvOiJpbnZhbGlkQG5vd2hlcmUudGVzdCIsU3ViamVjdDoiU2VydmljZSBBbGVydDogQ1BVIFVzYWdlIEhpZ2giLERhdGU6Ik1vbiwgMTUgSmFuIDIwMjQgMTQ6Mjg6MTAgKzAwMDAiLCJNSU1FLVZlcnNpb24iOiIxLjAiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04In0sYm9keTpgQUxFUlQ6IENQVSBVc2FnZSBIaWdoCgpTZXJ2aWNlOiBhcGktZ2F0ZXdheQpDdXJyZW50IFVzYWdlOiA5NC4yJQpUaHJlc2hvbGQ6IDkwJQpUaW1lc3RhbXA6IDIwMjQtMDEtMTUgMTQ6Mjg6MDAgVVRDCgpQbGVhc2UgaW52ZXN0aWdhdGUgaW1tZWRpYXRlbHkuYH0sMzp7aWQ6IjMiLGRpcmVjdGlvbjoiaW5ib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206InN1cHBvcnRAY3VzdG9tZXIuY29tIix0bzoiYWRtaW5Ac2VydmUuem9uZSIsdG9MaXN0OlsiYWRtaW5Ac2VydmUuem9uZSJdLGNjOlsib3BzQHNlcnZlLnpvbmUiXSxzdWJqZWN0OiJSZTogSW5mcmFzdHJ1Y3R1cmUgUmV2aWV3Iix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MjU6MDAiLG1lc3NhZ2VJZDoiPGdoaTc4OUBjdXN0b21lci5jb20+IixzaXplOiIyNC4xIEtCIixzbXRwTG9nOlt7dGltZXN0YW1wOiIxNDoyNDo1OCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5jdXN0b21lci5jb20ifSx7dGltZXN0YW1wOiIxNDoyNDo1OCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLnNlcnZlLnpvbmUgSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI0OjU4IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLVNUQVJUVExTIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyNDo1OCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlNUQVJUVExTIn0se3RpbWVzdGFtcDoiMTQ6MjQ6NTkiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjAgUmVhZHkgdG8gc3RhcnQgVExTIixyZXNwb25zZUNvZGU6MjIwfSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ik1BSUwgRlJPTTo8c3VwcG9ydEBjdXN0b21lci5jb20+In0se3RpbWVzdGFtcDoiMTQ6MjQ6NTkiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0siLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI0OjU5IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiUkNQVCBUTzo8YWRtaW5Ac2VydmUuem9uZT4ifSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBBY2NlcHRlZCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJEQVRBIn0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIzNTQgRW50ZXIgbWVzc2FnZSIscmVzcG9uc2VDb2RlOjM1NH0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiIuIn0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0sgaWQ9MmJSM3NULTAwMDRDZC1FNSIscmVzcG9uc2VDb2RlOjI1MH1dLGNvbm5lY3Rpb25JbmZvOntzb3VyY2VJcDoiMjAzLjAuMTEzLjQ1Iixzb3VyY2VIb3N0bmFtZToibWFpbC5jdXN0b21lci5jb20iLGRlc3RpbmF0aW9uSXA6IjEwLjAuMS41MCIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjMiLHRsc0NpcGhlcjoiVExTX0FFU18xMjhfR0NNX1NIQTI1NiIsYXV0aGVudGljYXRlZDohMSxhdXRoTWV0aG9kOiIiLGF1dGhVc2VyOiIifSxhdXRoZW50aWNhdGlvblJlc3VsdHM6e3NwZjoicGFzcyIsc3BmRG9tYWluOiJjdXN0b21lci5jb20iLGRraW06InBhc3MiLGRraW1Eb21haW46ImN1c3RvbWVyLmNvbSIsZG1hcmM6InBhc3MiLGRtYXJjUG9saWN5OiJub25lIn0saGVhZGVyczp7RnJvbToic3VwcG9ydEBjdXN0b21lci5jb20iLFRvOiJhZG1pbkBzZXJ2ZS56b25lIixDQzoib3BzQHNlcnZlLnpvbmUiLFN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLERhdGU6Ik1vbiwgMTUgSmFuIDIwMjQgMTQ6MjU6MDAgKzAwMDAiLCJNSU1FLVZlcnNpb24iOiIxLjAiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04IiwiSW4tUmVwbHktVG8iOiI8cHJldjEyM0BzZXJ2ZS56b25lPiJ9LGJvZHk6YEhpIEFkbWluLAoKVGhhbmsgeW91IGZvciB0aGUgZGV0YWlsZWQgaW5mcmFzdHJ1Y3R1cmUgcmV2aWV3IHJlcG9ydC4KCldlIGhhdmUgcmV2aWV3ZWQgdGhlIHJlY29tbWVuZGF0aW9ucyBhbmQgd291bGQgbGlrZSB0bwpwcm9jZWVkIHdpdGggdGhlIGZvbGxvd2luZzoKCjEuIFVwZ3JhZGUgdG8gdGhlIFBybyB0aWVyCjIuIEVuYWJsZSBhdXRvbWF0aWMgYmFja3VwcwozLiBTZXQgdXAgbW9uaXRvcmluZyBhbGVydHMKClBsZWFzZSBsZXQgdXMga25vdyB0aGUgdGltZWxpbmUgZm9yIHRoZXNlIGNoYW5nZXMuCgpCZXN0IHJlZ2FyZHMsCkN1c3RvbWVyIFN1cHBvcnQgVGVhbWB9fTthc3luYyBvbkFjdGl2YXRlKG0pe3RoaXMuYXBwdWk9bS5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJBbGwgRW1haWxzIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudERpcmVjdGlvbkZpbHRlcj0iYWxsIix0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJJbmJvdW5kIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudERpcmVjdGlvbkZpbHRlcj0iaW5ib3VuZCIsdGhpcy5jdXJyZW50Vmlldz0ibGlzdCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiT3V0Ym91bmQiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPSJvdXRib3VuZCIsdGhpcy5jdXJyZW50Vmlldz0ibGlzdCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJFbWFpbCAvIE1UQSIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpSZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlJlZnJlc2ggZW1haWxzIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJFeHBvcnQgTG9ncyIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRXhwb3J0IGxvZ3MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0dXMgRmlsdGVycyIsaXRlbXM6W3trZXk6IkRlbGl2ZXJlZCIsaWNvbk5hbWU6Imx1Y2lkZTpDaGVja0NpcmNsZSIsYmFkZ2U6IjUiLGJhZGdlVmFyaWFudDoic3VjY2VzcyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIGRlbGl2ZXJlZCIpfSwiYWN0aW9uIil9LHtrZXk6IkJvdW5jZWQiLGljb25OYW1lOiJsdWNpZGU6WENpcmNsZSIsYmFkZ2U6IjEiLGJhZGdlVmFyaWFudDoiZXJyb3IiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBib3VuY2VkIil9LCJhY3Rpb24iKX0se2tleToiRGVmZXJyZWQiLGljb25OYW1lOiJsdWNpZGU6Q2xvY2siLGJhZGdlOiIxIixiYWRnZVZhcmlhbnQ6Indhcm5pbmciLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBkZWZlcnJlZCIpfSwiYWN0aW9uIil9LHtrZXk6IlBlbmRpbmciLGljb25OYW1lOiJsdWNpZGU6TG9hZGVyIixiYWRnZToiMSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHBlbmRpbmciKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0aXN0aWNzIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IjggVG90YWwgRW1haWxzIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6IjYyLjUlIERlbGl2ZXJ5IFJhdGUifV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlsIiYmdGhpcy5zZWxlY3RlZEVtYWlsP3dgCiAgICAgICAgPHN6LW10YS1kZXRhaWwtdmlldwogICAgICAgICAgLmVtYWlsPSR7dGhpcy5zZWxlY3RlZEVtYWlsfQogICAgICAgICAgQGJhY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMuc2VsZWN0ZWRFbWFpbD1udWxsfX0KICAgICAgICA+PC9zei1tdGEtZGV0YWlsLXZpZXc+CiAgICAgIGA6d2AKICAgICAgPHN6LW10YS1saXN0LXZpZXcKICAgICAgICAuZW1haWxzPSR7dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPT09ImFsbCI/dGhpcy5kZW1vRW1haWxzOnRoaXMuZGVtb0VtYWlscy5maWx0ZXIobT0+bS5kaXJlY3Rpb249PT10aGlzLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXIpfQogICAgICAgIEBlbWFpbC1jbGljaz0ke209PnRoaXMuaGFuZGxlRW1haWxDbGljayhtLmRldGFpbCl9CiAgICAgID48L3N6LW10YS1saXN0LXZpZXc+CiAgICBgfWhhbmRsZUVtYWlsQ2xpY2sobSl7bGV0IGY9dGhpcy5kZW1vRW1haWxEZXRhaWxzW20uaWRdO2Y/KHRoaXMuc2VsZWN0ZWRFbWFpbD1mLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIpOmNvbnNvbGUubG9nKCJObyBkZXRhaWwgZGF0YSBhdmFpbGFibGUgZm9yIGVtYWlsOiIsbS5pZCl9c3RhdGlje09nKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBrOWEsU290LHlKYSxTOWE9ZygoKT0+e3BlKCk7aWMoKTtrOWE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFNvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0seUphPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LXJvdXRlcyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3Um91dGVzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxrOWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJjdXJyZW50VGFiImluIHUsImhhcyIpLGdldDppKHU9PnUuY3VycmVudFRhYiwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LmN1cnJlbnRUYWI9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLGs5YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfWFwcHVpPW51bGw7I2U9U290KHRoaXMsbywiYWxsIik7Z2V0IGN1cnJlbnRUYWIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFRhYihkKXt0aGlzLiNlPWR9ZGVtb1JvdXRlcz0oU290KHRoaXMsbCksW3tpZDoicm91dGUtMSIsbmFtZToiV2ViIEZyb250ZW5kIixkZXNjcmlwdGlvbjoiTWFpbiB3ZWJzaXRlIHdpdGggVExTIHRlcm1pbmF0aW9uIGFuZCBhdXRvbWF0aWMgY2VydGlmaWNhdGVzIixlbmFibGVkOiEwLHByaW9yaXR5OjEwLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6WyJzZXJ2ZS56b25lIiwid3d3LnNlcnZlLnpvbmUiXSxwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4xMCIscG9ydDozZTN9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtpZDoicm91dGUtMiIsbmFtZToiSFRUUCBSZWRpcmVjdCIsZGVzY3JpcHRpb246IlJlZGlyZWN0cyBhbGwgSFRUUCB0cmFmZmljIHRvIEhUVFBTIixlbmFibGVkOiEwLHByaW9yaXR5OjEwMCx0YWdzOlsid2ViIiwiaHR0cCIsInJlZGlyZWN0Il0sbWF0Y2g6e3BvcnRzOjgwLGRvbWFpbnM6WyJzZXJ2ZS56b25lIiwid3d3LnNlcnZlLnpvbmUiXSxwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToic29ja2V0LWhhbmRsZXIifX0se2lkOiJyb3V0ZS0zIixuYW1lOiJTTVRQIEluYm91bmQiLGRlc2NyaXB0aW9uOiJJbmJvdW5kIGVtYWlsIHJlbGF5IGZvciBzZXJ2ZS56b25lIGRvbWFpbiIsZW5hYmxlZDohMCx0YWdzOlsiZW1haWwiLCJzbXRwIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czoyNSxkb21haW5zOiJtYWlsLnNlcnZlLnpvbmUifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjEuNSIscG9ydDoyNX1dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fX0se2lkOiJyb3V0ZS00IixuYW1lOiJBUEkgR2F0ZXdheSIsZGVzY3JpcHRpb246IkFQSSBnYXRld2F5IHdpdGggcmF0ZSBsaW1pdGluZywgQ09SUyBoZWFkZXJzLCBhbmQgbG9hZCBiYWxhbmNpbmciLGVuYWJsZWQ6ITAscHJpb3JpdHk6MjAsdGFnczpbIndlYiIsImFwaSIsImh0dHBzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoiYXBpLnNlcnZlLnpvbmUiLHBhdGg6Ii92Mi8qIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6WyIxMC4wLjAuMjAiLCIxMC4wLjAuMjEiLCIxMC4wLjAuMjIiXSxwb3J0OjgwODB9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifSxsb2FkQmFsYW5jaW5nOnthbGdvcml0aG06InJvdW5kLXJvYmluIn19LHNlY3VyaXR5OntyYXRlTGltaXQ6e2VuYWJsZWQ6ITAsbWF4UmVxdWVzdHM6MjAwLHdpbmRvdzo2MH0sbWF4Q29ubmVjdGlvbnM6NWUzfSxoZWFkZXJzOntyZXNwb25zZTp7IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiI6IioiLCJYLVJlcXVlc3QtSWQiOiJ7e3JlcXVlc3RJZH19In19fSx7aWQ6InJvdXRlLTUiLG5hbWU6IldlYlNvY2tldCBSZWFsdGltZSIsZGVzY3JpcHRpb246IlJlYWwtdGltZSBXZWJTb2NrZXQgY29ubmVjdGlvbnMgZm9yIGxpdmUgdXBkYXRlcyIsZW5hYmxlZDohMCx0YWdzOlsid2ViIiwiaHR0cHMiLCJ3ZWJzb2NrZXQiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6IndzLnNlcnZlLnpvbmUiLHBhdGg6Ii93cy8qIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4zMCIscG9ydDo5MDkwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn0sd2Vic29ja2V0OntlbmFibGVkOiEwfX19LHtpZDoicm91dGUtNiIsbmFtZToiVGVuYW50IFdpbGRjYXJkIixkZXNjcmlwdGlvbjoiTXVsdGktdGVuYW50IHdpbGRjYXJkIHJvdXRpbmcgZm9yIGN1c3RvbWVyIHN1YmRvbWFpbnMiLGVuYWJsZWQ6ITAscHJpb3JpdHk6NTAsdGFnczpbIndlYiIsImh0dHBzIiwibXVsdGktdGVuYW50Il0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOiIqLmN1c3RvbWVycy5zZXJ2ZS56b25lIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC40MCIscG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19LHNlY3VyaXR5OntpcEFsbG93TGlzdDpbIjEwLjAuMC4wLzgiLCIxNzIuMTYuMC4wLzEyIl19fSx7aWQ6InJvdXRlLTciLG5hbWU6Ik1pY3Jvc2VydmljZXMgTEIiLGRlc2NyaXB0aW9uOiJMb2FkLWJhbGFuY2VkIG1pY3Jvc2VydmljZXMgYmFja2VuZCB3aXRoIElQLWhhc2ggYWZmaW5pdHkiLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImh0dHBzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czpbNDQzLDg0NDNdLGRvbWFpbnM6InNlcnZpY2VzLnNlcnZlLnpvbmUiLHByb3RvY29sOiJodHRwIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDpbIjEwLjAuMi4xIiwiMTAuMC4yLjIiLCIxMC4wLjIuMyIsIjEwLjAuMi40Il0scG9ydDozZTN9XSx0bHM6e21vZGU6InRlcm1pbmF0ZS1hbmQtcmVlbmNyeXB0IixjZXJ0aWZpY2F0ZToiYXV0byJ9LGxvYWRCYWxhbmNpbmc6e2FsZ29yaXRobToiaXAtaGFzaCJ9fX0se2lkOiJyb3V0ZS04IixuYW1lOiJETlMgb3ZlciBIVFRQUyIsZGVzY3JpcHRpb246IkROUy1vdmVyLUhUVFBTIHJlc29sdmVyIGVuZHBvaW50IixlbmFibGVkOiEwLHRhZ3M6WyJkbnMiLCJodHRwcyJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoiZG5zLnNlcnZlLnpvbmUiLHBhdGg6Ii9kbnMtcXVlcnkiLHByb3RvY29sOiJodHRwIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC4zLjEiLHBvcnQ6ODA1M31dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fX0se2lkOiJyb3V0ZS05IixuYW1lOiJIaWdoLVBlcmYgVENQIFByb3h5IixkZXNjcmlwdGlvbjoiTkZUYWJsZXMtYWNjZWxlcmF0ZWQgVENQIHByb3h5IGZvciBnYW1lIHNlcnZlcnMiLGVuYWJsZWQ6ITAsdGFnczpbInRjcCIsIm5mdGFibGVzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czpbe2Zyb206MjdlMyx0bzoyNzA1MH1dLHByb3RvY29sOiJ0Y3AifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjQuMSIscG9ydDoicHJlc2VydmUifV0sZm9yd2FyZGluZ0VuZ2luZToibmZ0YWJsZXMifX0se2lkOiJyb3V0ZS0xMCIsbmFtZToiTGVnYWN5IEFkbWluIFBhbmVsIixkZXNjcmlwdGlvbjoiRGVwcmVjYXRlZCBhZG1pbiBwYW5lbCBcdTIwMTQgZGlzYWJsZWQgZm9yIG1haW50ZW5hbmNlIixlbmFibGVkOiExLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsImRlcHJlY2F0ZWQiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6ImFkbWluLW9sZC5zZXJ2ZS56b25lIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToic29ja2V0LWhhbmRsZXIifSxzZWN1cml0eTp7aXBCbG9ja0xpc3Q6WyIwLjAuMC4wLzAiXX19XSk7Z2V0IGZpbHRlcmVkUm91dGVzKCl7cmV0dXJuIHRoaXMuY3VycmVudFRhYj09PSJhbGwiP3RoaXMuZGVtb1JvdXRlczp0aGlzLmN1cnJlbnRUYWI9PT0iaHR0cHMiP3RoaXMuZGVtb1JvdXRlcy5maWx0ZXIoZD0+ZC50YWdzPy5zb21lKHU9Plsid2ViIiwiaHR0cHMiLCJodHRwIl0uaW5jbHVkZXModSkpKTp0aGlzLmN1cnJlbnRUYWI9PT0iZW1haWwiP3RoaXMuZGVtb1JvdXRlcy5maWx0ZXIoZD0+ZC50YWdzPy5zb21lKHU9PlsiZW1haWwiLCJzbXRwIl0uaW5jbHVkZXModSkpKTp0aGlzLmN1cnJlbnRUYWI9PT0iZG5zIj90aGlzLmRlbW9Sb3V0ZXMuZmlsdGVyKGQ9PmQudGFncz8uc29tZSh1PT5bImRucyJdLmluY2x1ZGVzKHUpKSk6dGhpcy5kZW1vUm91dGVzfWFzeW5jIG9uQWN0aXZhdGUoZCl7dGhpcy5hcHB1aT1kLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkFsbCBSb3V0ZXMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJhbGwiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkhUVFAvUyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9Imh0dHBzIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJFbWFpbCIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9ImVtYWlsIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJETlMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJkbnMiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9XSksdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9dXBkYXRlU2Vjb25kYXJ5TWVudSgpe2lmKCF0aGlzLmFwcHVpKXJldHVybjtsZXQgZD10aGlzLmRlbW9Sb3V0ZXMubGVuZ3RoLHU9dGhpcy5kZW1vUm91dGVzLmZpbHRlcihiPT5iLmVuYWJsZWQhPT0hMSkubGVuZ3RoLGM9dGhpcy5kZW1vUm91dGVzLmZpbHRlcihiPT5iLmFjdGlvbi50eXBlPT09ImZvcndhcmQiKS5sZW5ndGg7dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJSb3V0ZXMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6UmVmcmVzaEN3IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoIHJvdXRlcyIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQWRkIFJvdXRlIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkFkZCByb3V0ZSIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXRpc3RpY3MiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDpgJHtkfSBUb3RhbCBSb3V0ZXNgfSx7dHlwZToiaGVhZGVyIixsYWJlbDpgJHt1fSBBY3RpdmVgfSx7dHlwZToiaGVhZGVyIixsYWJlbDpgJHtjfSBGb3J3YXJkYH0se3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7ZC1jfSBTb2NrZXQgSGFuZGxlcmB9XX1dfSl9b25EZWFjdGl2YXRlKCl7fXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN6LXJvdXRlLWxpc3QtdmlldwogICAgICAgIC5yb3V0ZXM9JHt0aGlzLmZpbHRlcmVkUm91dGVzfQogICAgICAgIEByb3V0ZS1jbGljaz0ke2Q9Pntjb25zb2xlLmxvZygiUm91dGUgY2xpY2tlZDoiLGQuZGV0YWlsLm5hbWUpfX0KICAgICAgPjwvc3otcm91dGUtbGlzdC12aWV3PgogICAgYH1zdGF0aWN7U290KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciB3SmEsa0phLFNKYSxfOWE9ZygoKT0+e3BlKCk7aWMoKTt3SmE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGtKYT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sU0phPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LWNvbmZpZyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3Q29uZmlnIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7d0phKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3otY29uZmlnLW92ZXJ2aWV3CiAgICAgICAgaW5mb1RleHQ9IlRoaXMgdmlldyBkaXNwbGF5cyB0aGUgY3VycmVudCBydW5uaW5nIGNvbmZpZ3VyYXRpb24uIERjUm91dGVyIGlzIGNvbmZpZ3VyZWQgdGhyb3VnaCBjb2RlIG9yIHJlbW90ZSBtYW5hZ2VtZW50LiIKICAgICAgPgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlN5c3RlbSIKICAgICAgICAgIHN1YnRpdGxlPSJCYXNlIHBhdGhzIGFuZCBpbmZyYXN0cnVjdHVyZSIKICAgICAgICAgIGljb249Imx1Y2lkZTpzZXJ2ZXIiCiAgICAgICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgICAgICAuZmllbGRzPSR7W3trZXk6IkJhc2UgRGlyZWN0b3J5Iix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlciJ9LHtrZXk6IkRhdGEgRGlyZWN0b3J5Iix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlci9kYXRhIn0se2tleToiUHVibGljIElQIix2YWx1ZToiMjAzLjAuMTEzLjUwIn0se2tleToiUHJveHkgSVBzIix2YWx1ZTpbIjIwMy4wLjExMy4xMCIsIjIwMy4wLjExMy4xMSJdLHR5cGU6InBpbGxzIn0se2tleToiVXB0aW1lIix2YWx1ZToiM2QgMTRoIDIybSJ9LHtrZXk6IlN0b3JhZ2UgQmFja2VuZCIsdmFsdWU6ImZpbGVzeXN0ZW0iLHR5cGU6ImJhZGdlIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJTbWFydFByb3h5IgogICAgICAgICAgc3VidGl0bGU9IkhUVFAvSFRUUFMgYW5kIFRDUC9TTkkgcmV2ZXJzZSBwcm94eSIKICAgICAgICAgIGljb249Imx1Y2lkZTpuZXR3b3JrIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJSb3V0ZSBDb3VudCIsdmFsdWU6MTJ9LHtrZXk6IkFDTUUgRW5hYmxlZCIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9LHtrZXk6IkFjY291bnQgRW1haWwiLHZhbHVlOiJhZG1pbkBzZXJ2ZS56b25lIn0se2tleToiVXNlIFByb2R1Y3Rpb24iLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBdXRvIFJlbmV3Iix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiUmVuZXcgVGhyZXNob2xkIix2YWx1ZToiMzAgZGF5cyJ9XX0KICAgICAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiVmlldyBSb3V0ZXMiLGljb246Imx1Y2lkZTphcnJvdy1yaWdodCIsZXZlbnQ6Im5hdmlnYXRlIixkZXRhaWw6e3ZpZXc6InJvdXRlcyJ9fV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkVtYWlsIFNlcnZlciIKICAgICAgICAgIHN1YnRpdGxlPSJTTVRQIGVtYWlsIGhhbmRsaW5nIHdpdGggc21hcnRtdGEiCiAgICAgICAgICBpY29uPSJsdWNpZGU6bWFpbCIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydHMiLHZhbHVlOlsiMjUiLCI0NjUiLCI1ODciXSx0eXBlOiJwaWxscyJ9LHtrZXk6Ikhvc3RuYW1lIix2YWx1ZToibWFpbC5zZXJ2ZS56b25lIn0se2tleToiRG9tYWlucyIsdmFsdWU6WyJzZXJ2ZS56b25lIiwibWFpbC5zZXJ2ZS56b25lIl0sdHlwZToicGlsbHMifSx7a2V5OiJFbWFpbCBSb3V0ZXMiLHZhbHVlOjV9LHtrZXk6IlJlY2VpdmVkIFBhdGgiLHZhbHVlOiIvZGF0YS9lbWFpbHMifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkROUyBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iQXV0aG9yaXRhdGl2ZSBETlMgd2l0aCBzbWFydGRucyIKICAgICAgICAgIGljb249Imx1Y2lkZTpnbG9iZSIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydCIsdmFsdWU6NTN9LHtrZXk6Ik5TIERvbWFpbnMiLHZhbHVlOlsibnMxLnNlcnZlLnpvbmUiLCJuczIuc2VydmUuem9uZSJdLHR5cGU6InBpbGxzIn0se2tleToiU2NvcGVzIix2YWx1ZTpbInNlcnZlLnpvbmUiLCJleGFtcGxlLmNvbSJdLHR5cGU6InBpbGxzIn0se2tleToiUmVjb3JkIENvdW50Iix2YWx1ZToyNH0se2tleToiRE5TIENoYWxsZW5nZSIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9XX0KICAgICAgICA+PC9zei1jb25maWctc2VjdGlvbj4KCiAgICAgICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgICAgICB0aXRsZT0iVExTIC8gQ2VydGlmaWNhdGVzIgogICAgICAgICAgc3VidGl0bGU9IkNlcnRpZmljYXRlIG1hbmFnZW1lbnQgYW5kIEFDTUUiCiAgICAgICAgICBpY29uPSJsdWNpZGU6c2hpZWxkLWNoZWNrIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJDb250YWN0IEVtYWlsIix2YWx1ZToiYWRtaW5Ac2VydmUuem9uZSJ9LHtrZXk6IkRvbWFpbiIsdmFsdWU6InNlcnZlLnpvbmUifSx7a2V5OiJTb3VyY2UiLHZhbHVlOiJhY21lIix0eXBlOiJiYWRnZSJ9LHtrZXk6IkNlcnRpZmljYXRlIFBhdGgiLHZhbHVlOm51bGx9LHtrZXk6IktleSBQYXRoIix2YWx1ZTpudWxsfV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkNhY2hlIERhdGFiYXNlIgogICAgICAgICAgc3VidGl0bGU9IlBlcnNpc3RlbnQgY2FjaGluZyB3aXRoIHNtYXJ0ZGF0YSIKICAgICAgICAgIGljb249Imx1Y2lkZTpkYXRhYmFzZSIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiU3RvcmFnZSBQYXRoIix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlci90c21kYiJ9LHtrZXk6IkRCIE5hbWUiLHZhbHVlOiJkY3JvdXRlciJ9LHtrZXk6IkRlZmF1bHQgVFRMIix2YWx1ZToiMzAgZGF5cyJ9LHtrZXk6IkNsZWFudXAgSW50ZXJ2YWwiLHZhbHVlOiIxIGhvdXIifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlJBRElVUyBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iTmV0d29yayBhdXRoZW50aWNhdGlvbiBhbmQgVkxBTiBhc3NpZ25tZW50IgogICAgICAgICAgaWNvbj0ibHVjaWRlOndpZmkiCiAgICAgICAgICBzdGF0dXM9Im5vdC1jb25maWd1cmVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJBdXRoIFBvcnQiLHZhbHVlOm51bGx9LHtrZXk6IkFjY291bnRpbmcgUG9ydCIsdmFsdWU6bnVsbH1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJSZW1vdGUgSW5ncmVzcyIKICAgICAgICAgIHN1YnRpdGxlPSJFZGdlIHR1bm5lbCBub2RlcyIKICAgICAgICAgIGljb249Imx1Y2lkZTpjbG91ZCIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiVHVubmVsIFBvcnQiLHZhbHVlOjg0NDN9LHtrZXk6Ikh1YiBEb21haW4iLHZhbHVlOiJodWIuc2VydmUuem9uZSJ9LHtrZXk6IlRMUyBDb25maWd1cmVkIix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgogICAgICA8L3N6LWNvbmZpZy1vdmVydmlldz4KICAgIGB9c3RhdGlje2tKYShhLHQpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgaWM9ZygoKT0+e1dydCgpO0tydCgpO1pydCgpO1hydCgpO1FydCgpO2VvdCgpO2FvdCgpO2lvdCgpO29vdCgpO25vdCgpO2xvdCgpO3E3YSgpO2o3YSgpO1U3YSgpO1c3YSgpO0c3YSgpO1k3YSgpO1g3YSgpO1E3YSgpO0o3YSgpO2U5YSgpO3Q5YSgpO2E5YSgpO3M5YSgpO2k5YSgpO3I5YSgpO285YSgpO245YSgpO2M5YSgpO2Q5YSgpO3U5YSgpO3A5YSgpO2g5YSgpO2Y5YSgpO205YSgpO2c5YSgpO3Y5YSgpO3g5YSgpO3k5YSgpO3c5YSgpO1M5YSgpO185YSgpfSk7dmFyIGgkbyxNOWE9ZygoKT0+e3BlKCk7aCRvPWkoKCk9PndgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjRweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgaDEgewogICAgICBtYXJnaW46IDAgMCAzMnB4IDA7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICBjb2xvcjogIzFhMWExYTsKICAgIH0KICAgIC5jb21wb25lbnQtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMT5TZXJ2ZS5ab25lIENhdGFsb2c8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJjb21wb25lbnQtZGVtbyI+CiAgICAgICAgPHN6LWhlbGxvPjwvc3otaGVsbG8+CiAgICAgICAgPHN6LWhlbGxvIHRleHQ9IldlbGNvbWUgdG8gU2VydmUuWm9uZSEiPjwvc3otaGVsbG8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsIm1haW5wYWdlIil9KTt2YXIgdiRvLHo5YT1nKCgpPT57cGUoKTtpYygpO3Ykbz1pKCgpPT53YAogIDxzdHlsZT4KICAgIGh0bWwsIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgICBzei1kZW1vLWFwcC1zaGVsbCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB3aWR0aDogMTAwdnc7CiAgICB9CiAgPC9zdHlsZT4KICA8c3otZGVtby1hcHAtc2hlbGw+PC9zei1kZW1vLWFwcC1zaGVsbD4KYCwic3pEZW1vQXBwIil9KTtmdW5jdGlvbiB3JG8ocyxlKXtsZXQgdD1ib1tzXTtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZlP3RbZV18fCJhdXRvIjp0eXBlb2YgdD09Im51bWJlciI/dDoiYXV0byJ9dmFyIGJvLGskbyxfb3QsX2EsR249ZygoKT0+e2JvPXtiYXNlOntjb250ZW50OiJhdXRvIixpbnB1dEVsZW1lbnRzOjF9LGZpeGVkOnthcHBCYXI6MTAsc2lkZU1lbnU6MTAsbW9iaWxlTmF2OjI1MH0sYmFja2Ryb3A6e2Ryb3Bkb3duOjE5OTksbW9kYWw6Mjk5OSxjb250ZXh0TWVudTozOTk5fSxvdmVybGF5Ontkcm9wZG93bjoyZTMsbW9kYWw6M2UzLGNvbnRleHRNZW51OjRlMyx0b2FzdDo1ZTN9LG1vZGFsRHJvcGRvd246MzUwMCx3eXNpd3lnTWVudXM6NDUwMH07aSh3JG8sImdldFpJbmRleCIpO2skbz17ImRlZXMtbW9kYWwiOmJvLm92ZXJsYXkubW9kYWwsImRlZXMtd2luZG93bGF5ZXIiOmJvLm92ZXJsYXkuZHJvcGRvd24sImRlZXMtY29udGV4dG1lbnUiOmJvLm92ZXJsYXkuY29udGV4dE1lbnUsImRlZXMtdG9hc3QiOmJvLm92ZXJsYXkudG9hc3QsImRlZXMtYXBwdWktbWFpbm1lbnUiOmJvLmZpeGVkLmFwcEJhciwiZGVlcy1tb2JpbGVuYXZpZ2F0aW9uIjpiby5maXhlZC5tb2JpbGVOYXYsImRlZXMtc2xhc2gtbWVudSI6Ym8ud3lzaXd5Z01lbnVzLCJkZWVzLWZvcm1hdHRpbmctbWVudSI6Ym8ud3lzaXd5Z01lbnVzfSxfb3Q9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJaSW5kZXhSZWdpc3RyeSIpfXN0YXRpYyBpbnN0YW5jZTthY3RpdmVFbGVtZW50cz1uZXcgU2V0O2VsZW1lbnRaSW5kZXhNYXA9bmV3IFdlYWtNYXA7Y3VycmVudFpJbmRleD0xZTM7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHMuaW5zdGFuY2V8fChzLmluc3RhbmNlPW5ldyBzKSxzLmluc3RhbmNlfWdldE5leHRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4Kz0xMCx0aGlzLmN1cnJlbnRaSW5kZXh9cmVnaXN0ZXIoZSx0KXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmFkZChlKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXAuc2V0KGUsdCl9dW5yZWdpc3RlcihlKXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmRlbGV0ZShlKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZGVsZXRlKGUpLHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZT09PTAmJih0aGlzLmN1cnJlbnRaSW5kZXg9MWUzKX1nZXRFbGVtZW50WkluZGV4KGUpe3JldHVybiB0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KGUpfWdldEFjdGl2ZUNvdW50KCl7cmV0dXJuIHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZX1nZXRDdXJyZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY3VycmVudFpJbmRleH1jbGVhcigpe3RoaXMuYWN0aXZlRWxlbWVudHMuY2xlYXIoKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXA9bmV3IFdlYWtNYXAsdGhpcy5jdXJyZW50WkluZGV4PTFlM31nZXRBY3RpdmVFbGVtZW50c0luT3JkZXIoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFjdGl2ZUVsZW1lbnRzKS5zb3J0KChlLHQpPT57bGV0IGE9dGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlKXx8MCxyPXRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQodCl8fDA7cmV0dXJuIGEtcn0pfX0sX2E9X290LmdldEluc3RhbmNlKCl9KTt2YXIgWGMsWWksWmkscWUsaHQ9ZygoKT0+e3BlKCk7WGM9e2NvbG9yczp7bGlnaHQ6e2JnUHJpbWFyeToiaHNsKDAgMCUgMTAwJSkiLGJnU2Vjb25kYXJ5OiJoc2woMCAwJSA5OCUpIixiZ1RlcnRpYXJ5OiJoc2woMCAwJSA5NiUpIix0ZXh0UHJpbWFyeToiaHNsKDAgMCUgMy45JSkiLHRleHRTZWNvbmRhcnk6ImhzbCgwIDAlIDIwJSkiLHRleHRNdXRlZDoiaHNsKDAgMCUgNDUlKSIsdGV4dFdhcm06IiM3ODcxNmMiLGJvcmRlckRlZmF1bHQ6ImhzbCgwIDAlIDg5LjglKSIsYm9yZGVyU3VidGxlOiJoc2woMCAwJSA5MyUpIixib3JkZXJTdHJvbmc6ImhzbCgwIDAlIDgwJSkiLGFjY2VudFByaW1hcnk6IiMzYjgyZjYiLGFjY2VudFN1Y2Nlc3M6IiMyMmM1NWUiLGFjY2VudFdhcm5pbmc6IiNmNTllMGIiLGFjY2VudEVycm9yOiIjZWY0NDQ0IixiYWRnZURlZmF1bHRCZzoiI2Y0ZjRmNSIsYmFkZ2VEZWZhdWx0Rmc6IiMzZjNmNDYiLGJhZGdlU3VjY2Vzc0JnOiIjZGNmY2U3IixiYWRnZVN1Y2Nlc3NGZzoiIzE2NjUzNCIsYmFkZ2VXYXJuaW5nQmc6IiNmZWYzYzciLGJhZGdlV2FybmluZ0ZnOiIjOTI0MDBlIixiYWRnZUVycm9yQmc6IiNmZWUyZTIiLGJhZGdlRXJyb3JGZzoiIzk5MWIxYiJ9LGRhcms6e2JnUHJpbWFyeToiaHNsKDAgMCUgMy45JSkiLGJnU2Vjb25kYXJ5OiJoc2woMCAwJSAzLjklKSIsYmdUZXJ0aWFyeToiaHNsKDAgMCUgNyUpIix0ZXh0UHJpbWFyeToiaHNsKDAgMCUgOTglKSIsdGV4dFNlY29uZGFyeToiaHNsKDAgMCUgNjMuOSUpIix0ZXh0TXV0ZWQ6ImhzbCgwIDAlIDU1JSkiLHRleHRXYXJtOiIjYjVhOTlhIixib3JkZXJEZWZhdWx0OiJoc2woMCAwJSAxNC45JSkiLGJvcmRlclN1YnRsZToiaHNsKDAgMCUgMTElKSIsYm9yZGVyU3Ryb25nOiJoc2woMCAwJSAyMCUpIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCIsYmFkZ2VEZWZhdWx0Qmc6IiMyNzI3MmEiLGJhZGdlRGVmYXVsdEZnOiIjYTFhMWFhIixiYWRnZVN1Y2Nlc3NCZzoiIzE0NTMyZCIsYmFkZ2VTdWNjZXNzRmc6IiM0YWRlODAiLGJhZGdlV2FybmluZ0JnOiIjNDUxYTAzIixiYWRnZVdhcm5pbmdGZzoiI2ZiYmYyNCIsYmFkZ2VFcnJvckJnOiIjNDUwYTBhIixiYWRnZUVycm9yRmc6IiNmODcxNzEifX0sc3BhY2luZzp7eHM6IjRweCIsc206IjhweCIsbWQ6IjEycHgiLGxnOiIxNnB4Iix4bDoiMjRweCIsIjJ4bCI6IjMycHgiLCIzeGwiOiI0OHB4In0scmFkaXVzOnt4czoiMnB4IixzbToiNHB4IixtZDoiNnB4IixsZzoiOHB4Iix4bDoiMTJweCIsZnVsbDoiOTk5cHgifSxzaGFkb3dzOnt4czoiMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSkiLHNtOiIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIixtZDoiMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLGxnOiIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkifSx0cmFuc2l0aW9uczp7ZmFzdDoiMC4xcyIsZGVmYXVsdDoiMC4xNXMiLHNsb3c6IjAuMnMiLHNsb3dlcjoiMC4zcyJ9LGNvbnRyb2xIZWlnaHRzOntzbToiMzJweCIsbWQ6IjM2cHgiLGxnOiI0MHB4Iix4bDoiNDhweCJ9fSxZaT1YYy5jb2xvcnMubGlnaHQsWmk9WGMuY29sb3JzLmRhcmsscWU9SmAKICA6aG9zdCB7CiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJhY2tncm91bmQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5OiAke2guYmRUaGVtZShZaS5iZ1ByaW1hcnksWmkuYmdQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5OiAke2guYmRUaGVtZShZaS5iZ1NlY29uZGFyeSxaaS5iZ1NlY29uZGFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5OiAke2guYmRUaGVtZShZaS5iZ1RlcnRpYXJ5LFppLmJnVGVydGlhcnkpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFRleHQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnk6ICR7aC5iZFRoZW1lKFlpLnRleHRQcmltYXJ5LFppLnRleHRQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnk6ICR7aC5iZFRoZW1lKFlpLnRleHRTZWNvbmRhcnksWmkudGV4dFNlY29uZGFyeSl9OwogICAgLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQ6ICR7aC5iZFRoZW1lKFlpLnRleHRNdXRlZCxaaS50ZXh0TXV0ZWQpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJvcmRlciAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0OiAke2guYmRUaGVtZShZaS5ib3JkZXJEZWZhdWx0LFppLmJvcmRlckRlZmF1bHQpfTsKICAgIC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlOiAke2guYmRUaGVtZShZaS5ib3JkZXJTdWJ0bGUsWmkuYm9yZGVyU3VidGxlKX07CiAgICAtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZzogJHtoLmJkVGhlbWUoWWkuYm9yZGVyU3Ryb25nLFppLmJvcmRlclN0cm9uZyl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgV2FybSBUZXh0IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdGV4dC13YXJtOiAke2guYmRUaGVtZShZaS50ZXh0V2FybSxaaS50ZXh0V2FybSl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQWNjZW50IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnk6ICR7aC5iZFRoZW1lKFlpLmFjY2VudFByaW1hcnksWmkuYWNjZW50UHJpbWFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzOiAke2guYmRUaGVtZShZaS5hY2NlbnRTdWNjZXNzLFppLmFjY2VudFN1Y2Nlc3MpfTsKICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZzogJHtoLmJkVGhlbWUoWWkuYWNjZW50V2FybmluZyxaaS5hY2NlbnRXYXJuaW5nKX07CiAgICAtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yOiAke2guYmRUaGVtZShZaS5hY2NlbnRFcnJvcixaaS5hY2NlbnRFcnJvcil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQmFkZ2UgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWJnOiAke2guYmRUaGVtZShZaS5iYWRnZURlZmF1bHRCZyxaaS5iYWRnZURlZmF1bHRCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmc6ICR7aC5iZFRoZW1lKFlpLmJhZGdlRGVmYXVsdEZnLFppLmJhZGdlRGVmYXVsdEZnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utc3VjY2Vzcy1iZzogJHtoLmJkVGhlbWUoWWkuYmFkZ2VTdWNjZXNzQmcsWmkuYmFkZ2VTdWNjZXNzQmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnOiAke2guYmRUaGVtZShZaS5iYWRnZVN1Y2Nlc3NGZyxaaS5iYWRnZVN1Y2Nlc3NGZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctYmc6ICR7aC5iZFRoZW1lKFlpLmJhZGdlV2FybmluZ0JnLFppLmJhZGdlV2FybmluZ0JnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZzogJHtoLmJkVGhlbWUoWWkuYmFkZ2VXYXJuaW5nRmcsWmkuYmFkZ2VXYXJuaW5nRmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZzogJHtoLmJkVGhlbWUoWWkuYmFkZ2VFcnJvckJnLFppLmJhZGdlRXJyb3JCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWZnOiAke2guYmRUaGVtZShZaS5iYWRnZUVycm9yRmcsWmkuYmFkZ2VFcnJvckZnKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBJbnRlcmFjdGl2ZSBTdGF0ZXMKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1ob3ZlcjogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgLS1kZWVzLWNvbG9yLWFjdGl2ZTogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgLS1kZWVzLWNvbG9yLXByZXNzZWQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgIC0tZGVlcy1jb2xvci1yb3ctaG92ZXI6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgRm9jdXMgUmluZwogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWZvY3VzLXJpbmc6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC40KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgVG9vbHRpcCAoaW52ZXJ0ZWQgY29udHJhc3QpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdG9vbHRpcC1iZzogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgLS1kZWVzLWNvbG9yLXRvb2x0aXAtZmc6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIExpbmsKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1saW5rOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAtLWRlZXMtY29sb3ItbGluay1ob3ZlcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjOTNiYmZkIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQ29kZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWNvZGUtYmc6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgLS1kZWVzLWNvbG9yLWNvZGUtYmxvY2stYmc6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFNlbGVjdGlvbgogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXNlbGVjdGlvbjogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBTY3JvbGxiYXIKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgIC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWItaG92ZXI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTcGFjaW5nIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc3BhY2luZy14czogNHB4OwogICAgLS1kZWVzLXNwYWNpbmctc206IDhweDsKICAgIC0tZGVlcy1zcGFjaW5nLW1kOiAxMnB4OwogICAgLS1kZWVzLXNwYWNpbmctbGc6IDE2cHg7CiAgICAtLWRlZXMtc3BhY2luZy14bDogMjRweDsKICAgIC0tZGVlcy1zcGFjaW5nLTJ4bDogMzJweDsKICAgIC0tZGVlcy1zcGFjaW5nLTN4bDogNDhweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBCb3JkZXIgUmFkaXVzIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtcmFkaXVzLXhzOiAycHg7CiAgICAtLWRlZXMtcmFkaXVzLXNtOiA0cHg7CiAgICAtLWRlZXMtcmFkaXVzLW1kOiA2cHg7CiAgICAtLWRlZXMtcmFkaXVzLWxnOiA4cHg7CiAgICAtLWRlZXMtcmFkaXVzLXhsOiAxMnB4OwogICAgLS1kZWVzLXJhZGl1cy1mdWxsOiA5OTlweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTaGFkb3cgRWxldmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgIC0tZGVlcy1zaGFkb3ctc206IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAtLWRlZXMtc2hhZG93LW1kOiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgIC0tZGVlcy1zaGFkb3ctbGc6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBUcmFuc2l0aW9uIER1cmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0OiAwLjFzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDogMC4xNXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93OiAwLjJzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyOiAwLjNzOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbnRyb2wgSGVpZ2h0IFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtc206IDMycHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbWQ6IDM2cHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbGc6IDQwcHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQteGw6IDQ4cHg7CiAgfQpgfSk7dmFyIHZvPWcoKCk9PntpbygpO1NuKCl9KTt2YXIgQzlhLFQ5YT1nKCgpPT57cGUoKTt2bygpO2ZyKCk7QzlhPWkoKCk9PndgCjxzdHlsZT4KICAud2l0aE1hcmdpbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMjBweDsKICB9CiAgLmRlbW8tY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAyMHB4OwogICAgcGFkZGluZzogMjBweDsKICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogIH0KICAuZGVtby1hcmVhIHsKICAgIHBhZGRpbmc6IDQwcHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IGNvbnRleHQtbWVudTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICB9CiAgLmRlbW8tYXJlYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDIpOwogIH0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkJhc2ljIENvbnRleHQgTWVudSB3aXRoIE5lc3RlZCBTdWJtZW51cyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke3M9PnskYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhzLFt7bmFtZToiRmlsZSIsaWNvbk5hbWU6ImZpbGVUZXh0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyIsaWNvbk5hbWU6ImZpbGVQbHVzIixzaG9ydGN1dDoiQ21kK04iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4iLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK08iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIixpY29uTmFtZToic2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHBvcnQgYXMgUERGIixpY29uTmFtZToiZG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHBvcnQgUERGIiksImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IGFzIEhUTUwiLGljb25OYW1lOiJjb2RlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IEhUTUwiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJlZGl0MyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsaWNvbk5hbWU6ImNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsaWNvbk5hbWU6InNlYXJjaCIsc2hvcnRjdXQ6IkNtZCtGIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpLCJhY3Rpb24iKX0se25hbWU6IlJlcGxhY2UiLGljb25OYW1lOiJyZXBlYXQiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGljb25OYW1lOiJleWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiWm9vbSBJbiIsaWNvbk5hbWU6Inpvb21JbiIsc2hvcnRjdXQ6IkNtZCsrIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBpbiIpLCJhY3Rpb24iKX0se25hbWU6Ilpvb20gT3V0IixpY29uTmFtZToiem9vbU91dCIsc2hvcnRjdXQ6IkNtZCstIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBvdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXNldCBab29tIixpY29uTmFtZToibWF4aW1pemUyIixzaG9ydGN1dDoiQ21kKzAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXNldCB6b29tIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZ1bGwgU2NyZWVuIixpY29uTmFtZToibWF4aW1pemUiLHNob3J0Y3V0OiJGMTEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsIHNjcmVlbiIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se25hbWU6IkhlbHAiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRhdGlvbiIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2hvcnRjdXRzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0IiksImFjdGlvbiIpfV19XSl9fT4KICAgICAgPGgzPlJpZ2h0LWNsaWNrIGFueXdoZXJlIGluIHRoaXMgYXJlYTwvaDM+CiAgICAgIDxwPkEgY29udGV4dCBtZW51IHdpdGggbmVzdGVkIHN1Ym1lbnVzIHdpbGwgYXBwZWFyPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkNvbXBvbmVudC1TcGVjaWZpYyBDb250ZXh0IE1lbnUiPgogICAgPGRlZXMtYnV0dG9uIHN0eWxlPSJtYXJnaW46IDIwcHg7IiBAY29udGV4dG1lbnU9JHtzPT57JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMocyxbe25hbWU6IkJ1dHRvbiBBY3Rpb25zIixpY29uTmFtZToibW91c2VQb2ludGVyIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkNsaWNrIixpY29uTmFtZToibW91c2UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDbGljayBhY3Rpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJEb3VibGUgQ2xpY2siLGljb25OYW1lOiJ6YXAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb3VibGUgY2xpY2siKSwiYWN0aW9uIil9LHtuYW1lOiJMb25nIFByZXNzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb25nIHByZXNzIiksImFjdGlvbiIpfV19LHtuYW1lOiJCdXR0b24gU3RhdGUiLGljb25OYW1lOiJ0b2dnbGVMZWZ0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkVuYWJsZSIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRW5hYmxlIiksImFjdGlvbiIpfSx7bmFtZToiRGlzYWJsZSIsaWNvbk5hbWU6InhDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEaXNhYmxlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNob3ciLGljb25OYW1lOiJleWUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG93IiksImFjdGlvbiIpfSx7bmFtZToiSGlkZSIsaWNvbk5hbWU6ImV5ZU9mZiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkhpZGUiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEaXNhYmxlZCBBY3Rpb24iLGljb25OYW1lOiJiYW4iLGRpc2FibGVkOiEwLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUaGlzIHNob3VsZCBub3QgcnVuIiksImFjdGlvbiIpfSx7bmFtZToiUHJvcGVydGllcyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQnV0dG9uIHByb3BlcnRpZXMiKSwiYWN0aW9uIil9XSl9fT5SaWdodC1jbGljayBvbiB0aGlzIGJ1dHRvbjwvZGVlcy1idXR0b24+CiAgPC9kZWVzLXBhbmVsPgoKICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJBZHZhbmNlZCBDb250ZXh0IE1lbnUgRXhhbXBsZSI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke3M9PnskYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhzLFt7bmFtZToiRm9ybWF0IixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJCb2xkIixpY29uTmFtZToiYm9sZCIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQm9sZCIpLCJhY3Rpb24iKX0se25hbWU6Ikl0YWxpYyIsaWNvbk5hbWU6Iml0YWxpYyIsc2hvcnRjdXQ6IkNtZCtJIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiSXRhbGljIiksImFjdGlvbiIpfSx7bmFtZToiVW5kZXJsaW5lIixpY29uTmFtZToidW5kZXJsaW5lIixzaG9ydGN1dDoiQ21kK1UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRlcmxpbmUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRm9udCBTaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZvbnQgc2l6ZSBtZW51IiksImFjdGlvbiIpfSx7bmFtZToiRm9udCBDb2xvciIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IGNvbG9yIG1lbnUiKSwiYWN0aW9uIil9XX0se25hbWU6IlRyYW5zZm9ybSIsaWNvbk5hbWU6InNodWZmbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG8gVXBwZXJjYXNlIixpY29uTmFtZToiYXJyb3dVcCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVwcGVyY2FzZSIpLCJhY3Rpb24iKX0se25hbWU6IlRvIExvd2VyY2FzZSIsaWNvbk5hbWU6ImFycm93RG93biIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkxvd2VyY2FzZSIpLCJhY3Rpb24iKX0se25hbWU6IkNhcGl0YWxpemUiLGljb25OYW1lOiJ0eXBlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ2FwaXRhbGl6ZSIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRlbGV0ZSIpLCJhY3Rpb24iKX1dKX19PgogICAgICA8aDM+QWR2YW5jZWQgTmVzdGVkIE1lbnUgRXhhbXBsZTwvaDM+CiAgICAgIDxwPlRoaXMgc2hvd3MgZGVlcGx5IG5lc3RlZCBzdWJtZW51cyBhbmQgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnM8L3A+CiAgICA8L2Rpdj4KICA8L2RlZXMtcGFuZWw+CiAgCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iU3RhdGljIENvbnRleHQgTWVudSAoQWx3YXlzIFZpc2libGUpIj4KICAgIDxkZWVzLWNvbnRleHRtZW51CiAgICAgIGNsYXNzPSJ3aXRoTWFyZ2luIgogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyUGx1cyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtOIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IHByb2plY3QiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIFByb2plY3QiLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK1NoaWZ0K08iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHByb2plY3QiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiUHJvamVjdCBBbHBoYSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gQWxwaGEiKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9qZWN0IEJldGEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEJldGEiKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9qZWN0IEdhbW1hIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBHYW1tYSIpLCJhY3Rpb24iKX1dfV19LHtuYW1lOiJUb29scyIsaWNvbk5hbWU6InRvb2wiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVGVybWluYWwiLGljb25OYW1lOiJ0ZXJtaW5hbCIsc2hvcnRjdXQ6IkNtZCtUIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVGVybWluYWwiKSwiYWN0aW9uIil9LHtuYW1lOiJDb25zb2xlIixpY29uTmFtZToibW9uaXRvciIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29uc29sZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHRlbnNpb25zIixpY29uTmFtZToicGFja2FnZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4dGVuc2lvbnMiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6InNsaWRlcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcmVmZXJlbmNlcyIpLCJhY3Rpb24iKX1dfQogICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICA8L2RlZXMtcGFuZWw+CjwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE1RLEx1LFJvLHYyPWcoKCk9PntwZSgpO0duKCk7TVE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEx1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxSbz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd2luZG93bGF5ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dpbmRvd0xheWVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bTCh7dHlwZTpCb29sZWFufSldLE1RKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3B0aW9ucyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm9wdGlvbnMsImdldCIpLHNldDppKCh6LE4pPT57ei5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxNUSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJhY2tkcm9wWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJiYWNrZHJvcFpJbmRleCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmJhY2tkcm9wWkluZGV4LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYmFja2Ryb3BaSW5kZXg9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLE1RKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY29udGVudFpJbmRleCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNvbnRlbnRaSW5kZXgsImdldCIpLHNldDppKCh6LE4pPT57ei5jb250ZW50WkluZGV4PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxNUSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InZpc2libGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudmlzaWJsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksTVEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxkZWVzLXdpbmRvd2xheWVyPjwvZGVlcy13aW5kb3dsYXllcj5gLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coTSl7bGV0IHo9bHQuRG9tVG9vbHMuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCksTj1uZXcgeTtyZXR1cm4gTi5vcHRpb25zPXsuLi5OLm9wdGlvbnMsLi4uTX0sZG9jdW1lbnQuYm9keS5hcHBlbmQoTiksYXdhaXQgei5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLE4uc2hvdygpLE59I2U9THUodGhpcyxvLHtibHVyOiExfSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhNKXt0aGlzLiNlPU19I3Q9KEx1KHRoaXMsbCksTHUodGhpcyxkLDFlMykpO2dldCBiYWNrZHJvcFpJbmRleCgpe3JldHVybiB0aGlzLiN0fXNldCBiYWNrZHJvcFpJbmRleChNKXt0aGlzLiN0PU19I2E9KEx1KHRoaXMsdSksTHUodGhpcyxiLDEwMDEpKTtnZXQgY29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBjb250ZW50WkluZGV4KE0pe3RoaXMuI2E9TX0jcz0oTHUodGhpcyx2KSxMdSh0aGlzLG0sITEpKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCB2aXNpYmxlKE0pe3RoaXMuI3M9TX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksTHUodGhpcyxmKSxsdC5lbGVtZW50QmFzaWMuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtsdC5lbGVtZW50QmFzaWMuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgLndpbmRvd092ZXJsYXkgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxKSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDBweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmJhY2tkcm9wWkluZGV4fTsKICAgICAgICB9CiAgICAgICAgLnNsb3RDb250ZW50IHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmNvbnRlbnRaSW5kZXh9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zbG90Q29udGVudCA+ICogewogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aXNpYmxlIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygwLjkpICR7dGhpcy5vcHRpb25zLmJsdXI/ImJsdXIoMnB4KSI6IiJ9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5kaXNwYXRjaENsaWNrZWR9IGNsYXNzPSJ3aW5kb3dPdmVybGF5ICR7dGhpcy52aXNpYmxlPyJ2aXNpYmxlIjpudWxsfSI+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGVudCI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7c2V0VGltZW91dCgoKT0+e3RoaXMudmlzaWJsZT0hMH0sMTAwKX1kaXNwYXRjaENsaWNrZWQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIikpfXRvZ2dsZVZpc2liaWxpdHkoKXt0aGlzLnZpc2libGU9IXRoaXMudmlzaWJsZX1nZXRDb250ZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY29udGVudFpJbmRleH1hc3luYyBzaG93KCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5iYWNrZHJvcFpJbmRleD1fYS5nZXROZXh0WkluZGV4KCksdGhpcy5jb250ZW50WkluZGV4PV9hLmdldE5leHRaSW5kZXgoKSxfYS5yZWdpc3Rlcih0aGlzLHRoaXMuYmFja2Ryb3BaSW5kZXgpLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITB9YXN5bmMgaGlkZSgpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMX1hc3luYyBkZXN0cm95KCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7YXdhaXQgdGhpcy5oaWRlKCksYXdhaXQgTS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksX2EudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnJlbW92ZSgpfXN0YXRpY3tMdShhLHQpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgJDlhLEQ5YT1nKCgpPT57cGUoKTtHYSgpO0M4KCk7JDlhPWkoKCk9PntsZXQgcz1PYmplY3Qua2V5cyhNb3QuZmEpO2NvbnNvbGUubG9nKCJGaXJzdCBmZXcgTHVjaWRlIGtleXM6IixPYmplY3Qua2V5cyhHcikuc2xpY2UoMCw1KSk7bGV0IGU9T2JqZWN0LmtleXMoR3IpLmZpbHRlcihuPT57bGV0IG89blswXT09PW5bMF0udG9VcHBlckNhc2UoKSYmblswXSE9PW5bMF0udG9Mb3dlckNhc2UoKSxsPXR5cGVvZiBHcltuXT09ImZ1bmN0aW9uIixwPSFbImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVJY29ucyIsImRlZmF1bHQiXS5pbmNsdWRlcyhuKTtyZXR1cm4gbCYmbyYmcH0pLm1hcChuPT5uLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpK24uc2xpY2UoMSkpO2lmKGNvbnNvbGUubG9nKGBGb3VuZCAke2UubGVuZ3RofSBMdWNpZGUgaWNvbnNgKSxlLmxlbmd0aD09PTAmJihjb25zb2xlLmxvZygiVHJ5aW5nIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGZpbmQgTHVjaWRlIGljb25zIiksQ2QpKXtsZXQgbj1DZHx8e307ZS5wdXNoKC4uLk9iamVjdC5rZXlzKG4pKSxjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gaWNvbnMgdmlhIGFsdGVybmF0aXZlIG1ldGhvZGApfWxldCB0PWkoKCk9PntsZXQgbj1zLm1hcChkPT5gZmE6JHtkfWApLG89ZS5tYXAoZD0+YGx1Y2lkZToke2R9YCksbD1bLi4ubiwuLi5vXSxwPWwuam9pbihgCmApO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHApLnRoZW4oKCk9PntsZXQgdT13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldCxjPXUudGV4dENvbnRlbnQ7dS50ZXh0Q29udGVudD1gXHUyNzEzIENvcGllZCAke2wubGVuZ3RofSBpY29uIG5hbWVzIWAsc2V0VGltZW91dCgoKT0+e3UudGV4dENvbnRlbnQ9Y30sMmUzKX0pfSwiY29weUFsbEljb25OYW1lcyIpLGE9aShuPT57bGV0IG89bi50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksbD1uLnRhcmdldC5jbG9zZXN0KCIuZGVtb0NvbnRhaW5lciIpO2wucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXIiKS5mb3JFYWNoKGQ9PntsZXQgdT1kLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIik7bz09PSIifHx1JiZ1LmluY2x1ZGVzKG8pP2QuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6ZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLGwucXVlcnlTZWxlY3RvckFsbCgiLnNlY3Rpb24tY29udGFpbmVyIikuZm9yRWFjaChkPT57bGV0IHU9ZC5xdWVyeVNlbGVjdG9yQWxsKCIuaWNvbkNvbnRhaW5lcjpub3QoLmhpZGRlbikiKS5sZW5ndGgsYz1kLnF1ZXJ5U2VsZWN0b3IoIi5pY29uLWNvdW50Iik7aWYoYyl7bGV0IGI9ZC5jbGFzc0xpc3QuY29udGFpbnMoImZhLXNlY3Rpb24iKT9zLmxlbmd0aDplLmxlbmd0aDtjLnRleHRDb250ZW50PXU9PT1iP2Ake2J9IGljb25zYDpgJHt1fSBvZiAke2J9IGljb25zYH19KX0sInNlYXJjaEljb25zIikscj1pKChuLG8pPT57bGV0IGw9YCR7b306JHtufWA7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQobCkudGhlbigoKT0+e2xldCB1PXdpbmRvdy5ldmVudC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRvb2x0aXAiKTt1JiYodS50ZXh0Q29udGVudD0iQ29waWVkISIsc2V0VGltZW91dCgoKT0+e3UudGV4dENvbnRlbnQ9IkNsaWNrIHRvIGNvcHkifSwyZTMpKX0pfSwiY29weUljb25OYW1lIik7cmV0dXJuIHdgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBiYWNrZ3JvdW5kOiAjMTExMTExOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuc2VhcmNoLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoIHsKICAgICAgZmxleDogMTsKICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIAogICAgI2ljb25TZWFyY2g6Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgICBib3JkZXItY29sb3I6ICNlNDAwMmI7CiAgICB9CiAgICAKICAgIC5jb3B5LWFsbC1idXR0b24gewogICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogI2M0MDAxYjsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICAgIAogICAgZGVlcy1pY29uIHsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICB9CgogICAgLmljb25Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMHB4IDE2cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgICB9CgogICAgLmljb25OYW1lIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiAjY2NjOwogICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWF4LXdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzMzMzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAuYXBpLW5vdGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjZTQwMDJiOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBwYWRkaW5nOiAxMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQwMDJiOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI4LCAwLCA0MywgMC4xKTsKICAgIH0KICAgIAogICAgLmljb24tY291bnQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjODg4OwogICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIH0KICAgIAogICAgLmljb25zLWdyaWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgIAogICAgLmNvcHktdG9vbHRpcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHRvcDogLTMwcHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIC5jb3B5LXRvb2x0aXAgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KICAgIAogICAgLmhpZGRlbiB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaWNvblNlYXJjaCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBpY29ucy4uLiIgQGlucHV0PSR7YX0+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYWxsLWJ1dHRvbiIgQGNsaWNrPSR7dH0+8J+TiyBDb3B5IEFsbCBJY29uIE5hbWVzPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iYXBpLW5vdGUiPgogICAgICBOZXcgQVBJOiBVc2UgPGNvZGU+aWNvbj0iZmE6aWNvbk5hbWUiPC9jb2RlPiBvciA8Y29kZT5pY29uPSJsdWNpZGU6aWNvbk5hbWUiPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmljb25GQTwvY29kZT4uIAogICAgICBDbGljayBhbnkgaWNvbiB0byBjb3B5IGl0cyBuZXcgZm9ybWF0IHRvIGNsaXBib2FyZC4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBmYS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgRm9udEF3ZXNvbWUgSWNvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1jb3VudCI+JHtzLmxlbmd0aH0gaWNvbnM8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpY29ucy1ncmlkIj4KICAgICAgICAke3MubWFwKG49PntsZXQgbz1gZmE6JHtufWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBmYS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5yKG4sImZhIil9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke299IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uTmFtZSI+ZmE6JHtufTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGFpbmVyIGx1Y2lkZS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgTHVjaWRlIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7ZS5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHtlLm1hcChuPT57bGV0IG89YGx1Y2lkZToke259YDtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uQ29udGFpbmVyIGx1Y2lkZS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5yKG4sImx1Y2lkZSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtvfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmx1Y2lkZToke259PC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10b29sdGlwIj5DbGljayB0byBjb3B5PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgYH0sImRlbW9GdW5jIil9KTtmdW5jdGlvbiB6SmEoKXtteC5zaXplPkw5YSYmQXJyYXkuZnJvbShteC5rZXlzKCkpLnNsaWNlKDAsTDlhLzUpLmZvckVhY2goZT0+bXguZGVsZXRlKGUpKX12YXIgZngseDIsTUphLE1vdCxteCxMOWEsQ0phLEdhPWcoKCk9PntwZSgpO2t0KCk7aHQoKTtrOGUoKTtzZ2UoKTt6N2UoKTtSa2UoKTtEOWEoKTtDOCgpO0M4KCk7Zng9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHgyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxNSmE9e2Fycm93UmlnaHQ6WGIsYXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTpnZixiZWxsOkZiLGJ1ZzpldixidWlsZGluZzpLYixjYXJldExlZnQ6cWIsY2FyZXRSaWdodDpPYixjaGVjazpaYixjaXJjbGVJbmZvOnZmLGNpcmNsZUNoZWNrOnRmLGNpcmNsZUNoZWNrU29saWQ6cGYsY2lyY2xlWG1hcms6dWgsY2lyY2xlWG1hcmtTb2xpZDpwaCxjbG9ja1JvdGF0ZUxlZnQ6aGYsY29weTpQYixjb3B5U29saWQ6dHYsZGVza3RvcDpiZixleWU6SGIsZXllU2xhc2g6YXYsZmlsZUludm9pY2U6UWIsZmlsZUludm9pY2VEb2xsZXI6SmIsZ2VhcjpkZixncmlwOmhoLG1hZ25pZnlpbmdHbGFzczpuZixtZXNzYWdlOkozLG1lc3NhZ2VTb2xpZDpyZixtb25leUNoZWNrRG9sbGFyOm1mLG11Z0hvdDpzdixtaW51czpzZixuZXR3b3JrV2lyZWQ6V2IscGFwZXJjbGlwOlliLHBhc3RlOlEzLHBhc3RlU29saWQ6YWYscGVuVG9TcXVhcmU6bGYscGx1czpmZixyZWNlaXB0OmpiLHJzczpvZixzaGFyZTpjZixzdW46RWIsc3VuU29saWQ6VWIsdGVybWluYWw6R2IsdHJhc2g6ZmgsdHJhc2hTb2xpZDpmaCx0cmFzaENhbjplZix0cmFzaENhblNvbGlkOnVmLHVzZXJzOlZiLHdhbGxldDpCYix4bWFyazp6ZCxmYWNlYm9vazpDYixnb29nbGU6TWIsaW5zdGFncmFtOkRiLGxpbmtlZGluOnpiLG1lZGl1bTpYMyxzbGFjazpUYix0aWt0b2s6JGIsdHdpdHRlcjpMYn0sTW90PXtmYTpNSmF9LG14PW5ldyBNYXAsTDlhPTUwMDtpKHpKYSwibGltaXRDYWNoZVNpemUiKTtDSmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWljb24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0ljb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxjb252ZXJ0ZXI6e2Zyb21BdHRyaWJ1dGU6aShfPT5fLCJmcm9tQXR0cmlidXRlIiksdG9BdHRyaWJ1dGU6aShfPT5fLCJ0b0F0dHJpYnV0ZSIpfX0pXSxwPVtMKHt0eXBlOlN0cmluZyxjb252ZXJ0ZXI6e2Zyb21BdHRyaWJ1dGU6aShfPT5fLCJmcm9tQXR0cmlidXRlIiksdG9BdHRyaWJ1dGU6aShfPT5fLCJ0b0F0dHJpYnV0ZSIpfX0pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOk51bWJlcn0pXSxmeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25GQSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaWNvbkZBImluIF8sImhhcyIpLGdldDppKF89Pl8uaWNvbkZBLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaWNvbkZBPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxmeCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imljb24iaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pY29uLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaWNvbj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksZngodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaWNvblNpemUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pY29uU2l6ZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmljb25TaXplPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxmeCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjb2xvciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmNvbG9yLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY29sb3I9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLGZ4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3Ryb2tlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InN0cm9rZVdpZHRoImluIF8sImhhcyIpLGdldDppKF89Pl8uc3Ryb2tlV2lkdGgsImdldCIpLHNldDppKChfLE8pPT57Xy5zdHJva2VXaWR0aD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksZngobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz0kOWE7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07I2U9eDIodGhpcyxvLHZvaWQgMCk7Z2V0IGljb25GQSgpe3JldHVybiB0aGlzLiNlfXNldCBpY29uRkEoQyl7dGhpcy4jZT1DfSN0PSh4Mih0aGlzLGwpLHgyKHRoaXMsZCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiN0fXNldCBpY29uKEMpe3RoaXMuI3Q9Q30jYT0oeDIodGhpcyx1KSx4Mih0aGlzLGIsdm9pZCAwKSk7Z2V0IGljb25TaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGljb25TaXplKEMpe3RoaXMuI2E9Q30jcz0oeDIodGhpcyx2KSx4Mih0aGlzLG0sImN1cnJlbnRDb2xvciIpKTtnZXQgY29sb3IoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29sb3IoQyl7dGhpcy4jcz1DfSNpPSh4Mih0aGlzLGYpLHgyKHRoaXMsTSwyKSk7Z2V0IHN0cm9rZVdpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0cm9rZVdpZHRoKEMpe3RoaXMuI2k9Q31sYXN0SWNvbj0oeDIodGhpcyx6KSxudWxsKTtsYXN0SWNvblNpemU9bnVsbDtsYXN0Q29sb3I9bnVsbDtsYXN0U3Ryb2tlV2lkdGg9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGEuc2V0dXAoKX1nZXRFZmZlY3RpdmVJY29uKCl7cmV0dXJuIHRoaXMuaWNvbj90aGlzLmljb246dGhpcy5pY29uRkE/dGhpcy5pY29uRkEuc3RhcnRzV2l0aCgibHVjaWRlOiIpP3RoaXMuaWNvbkZBOmBmYToke3RoaXMuaWNvbkZBfWA6bnVsbH1wYXJzZUljb25TdHJpbmcoQyl7bGV0IF89Qy50b0xvd2VyQ2FzZSgpO3JldHVybiBfLnN0YXJ0c1dpdGgoImZhOiIpP3t0eXBlOiJmYSIsbmFtZTpDLnN1YnN0cmluZygzKX06Xy5zdGFydHNXaXRoKCJsdWNpZGU6Iik/e3R5cGU6Imx1Y2lkZSIsbmFtZTpDLnN1YnN0cmluZyg3KX06e3R5cGU6Imx1Y2lkZSIsbmFtZTpDfX1yZW5kZXJMdWNpZGVJY29uKEMpe2xldCBfPWBsdWNpZGU6JHtDfToke3RoaXMuaWNvblNpemV9OiR7dGhpcy5jb2xvcn06JHt0aGlzLnN0cm9rZVdpZHRofWA7aWYobXguaGFzKF8pKXJldHVybiBteC5nZXQoXyl8fCIiO3RyeXtsZXQgTz1DLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK0Muc2xpY2UoMSk7aWYoIUdyW09dKXJldHVybiBjb25zb2xlLndhcm4oYEx1Y2lkZSBpY29uICcke099JyBub3QgZm91bmQgaW4gbHVjaWRlSWNvbnMgb2JqZWN0YCksIiI7bGV0ICQ9ajEoR3JbT10se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZighJClyZXR1cm4gY29uc29sZS53YXJuKGBjcmVhdGVFbGVtZW50IHJldHVybmVkIGVtcHR5IHJlc3VsdCBmb3IgJHtPfWApLCIiO2xldCBFPSQub3V0ZXJIVE1MO3JldHVybiBteC5zZXQoXyxFKSx6SmEoKSxFfWNhdGNoKE8pe3JldHVybiBjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb24gJHtDfTpgLE8pLGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IiR7dGhpcy5pY29uU2l6ZX0iIGhlaWdodD0iJHt0aGlzLmljb25TaXplfSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiR7dGhpcy5jb2xvcn0iIHN0cm9rZS13aWR0aD0iJHt0aGlzLnN0cm9rZVdpZHRofSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICA8dGV4dCB4PSI1MCUiIHk9IjUwJSIgZm9udC1zaXplPSI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiBmaWxsPSIke3RoaXMuY29sb3J9Ij4ke0N9PC90ZXh0PgogICAgICA8L3N2Zz5gfX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogSW1wcm92ZSByZW5kZXJpbmcgcGVyZm9ybWFuY2UgKi8KICAgICAgI2ljb25Db250YWluZXIgc3ZnIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogSGVscHMgd2l0aCBhbmltYXRpb25zICovCiAgICAgICAgY29udGFpbjogc3RyaWN0OyAvKiBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gKi8KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGEuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgI2ljb25Db250YWluZXIgewogICAgICAgICAgd2lkdGg6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmljb25TaXplfXB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBpZD0iaWNvbkNvbnRhaW5lciI+PC9kaXY+CiAgICBgfXVwZGF0ZWQoKXt0aGlzLmljb25TaXplfHwodGhpcy5pY29uU2l6ZT1wYXJzZUludChnbG9iYWxUaGlzLmdldENvbXB1dGVkU3R5bGUodGhpcykuZm9udFNpemUucmVwbGFjZSgvXEQvZywiIikpKTtsZXQgQz10aGlzLmdldEVmZmVjdGl2ZUljb24oKTtpZih0aGlzLmxhc3RJY29uPT09QyYmdGhpcy5sYXN0SWNvblNpemU9PT10aGlzLmljb25TaXplJiZ0aGlzLmxhc3RDb2xvcj09PXRoaXMuY29sb3ImJnRoaXMubGFzdFN0cm9rZVdpZHRoPT09dGhpcy5zdHJva2VXaWR0aClyZXR1cm47dGhpcy5sYXN0SWNvbj1DLHRoaXMubGFzdEljb25TaXplPXRoaXMuaWNvblNpemUsdGhpcy5sYXN0Q29sb3I9dGhpcy5jb2xvcix0aGlzLmxhc3RTdHJva2VXaWR0aD10aGlzLnN0cm9rZVdpZHRoO2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiI2ljb25Db250YWluZXIiKTtpZighKCFffHwhQykpdHJ5e2xldHt0eXBlOk8sbmFtZTokfT10aGlzLnBhcnNlSWNvblN0cmluZyhDKTtpZihPPT09Imx1Y2lkZSIpe18uaW5uZXJIVE1MPSIiO3RyeXtsZXQgRT0kLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpKyQuc2xpY2UoMSk7aWYoR3JbRV0pe2xldCBIPWoxKEdyW0VdLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoSCl7Xy5hcHBlbmRDaGlsZChIKTtyZXR1cm59fXRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGNyZWF0ZSBlbGVtZW50IGZvciAke0V9YCl9Y2F0Y2goRSl7Y29uc29sZS5lcnJvcigiRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uOiIsRSk7bGV0IEg9dGhpcy5yZW5kZXJMdWNpZGVJY29uKCQpO0gmJihfLmlubmVySFRNTD1IKX19ZWxzZXtsZXQgRT1Nb3QuZmFbJF07aWYoRSl7bGV0IEg9R2soRSkuaHRtbFswXTtfLmlubmVySFRNTD1IfWVsc2UgY29uc29sZS53YXJuKGBGb250QXdlc29tZSBpY29uIG5vdCBmb3VuZDogJHskfWApfX1jYXRjaChPKXtjb25zb2xlLmVycm9yKGBFcnJvciB1cGRhdGluZyBpY29uICR7Q306YCxPKX19YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubGFzdEljb249bnVsbCx0aGlzLmxhc3RJY29uU2l6ZT1udWxsLHRoaXMubGFzdENvbG9yPW51bGwsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9bnVsbH1zdGF0aWN7eDIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIEU5YSx6b3QsJGEsZnI9ZygoKT0+e3ZvKCk7VDlhKCk7cGUoKTtrdCgpO3YyKCk7R24oKTtHYSgpO2h0KCk7RTlhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6b3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LCRhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1jb250ZXh0bWVudSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQ29udGV4dG1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLEU5YSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ibWVudUl0ZW1zImluIHUsImhhcyIpLGdldDppKHU9PnUubWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UubWVudUl0ZW1zPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxFOWEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1DOWE7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGNvbnRleHRNZW51RGVhY3RpdmF0ZWQ9ITE7c3RhdGljIGFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO3N0YXRpYyBpbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZD0+e2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47ZC5wcmV2ZW50RGVmYXVsdCgpLHAuYWNjdW11bGF0ZWRNZW51SXRlbXM9W107bGV0IHU9ZC5jb21wb3NlZFBhdGgoKTtmb3IobGV0IGMgb2YgdSlpZihjLmdldENvbnRleHRNZW51SXRlbXMpe2xldCBiPWMuZ2V0Q29udGV4dE1lbnVJdGVtcygpO2ImJmIubGVuZ3RoPjAmJihwLmFjY3VtdWxhdGVkTWVudUl0ZW1zLmxlbmd0aD4wJiZwLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goe2RpdmlkZXI6ITB9KSxwLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goLi4uYikpfXAub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZCxwLmFjY3VtdWxhdGVkTWVudUl0ZW1zKX0pfXN0YXRpYyBhc3luYyBvcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhkLHUpe2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGM9bmV3IHA7Yy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGMuc3R5bGUuekluZGV4PVN0cmluZyhiby5vdmVybGF5LmNvbnRleHRNZW51KSxjLnN0eWxlLm9wYWNpdHk9IjAiLGMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsYy5tZW51SXRlbXM9dSxjLndpbmRvd0xheWVyPWF3YWl0IFJvLmNyZWF0ZUFuZFNob3coKSxjLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYyB5PT57eS50YXJnZXQuY2xvc2VzdCgiZGVlcy1jb250ZXh0bWVudSIpfHxhd2FpdCBjLmRlc3Ryb3koKX0pLGRvY3VtZW50LmJvZHkuYXBwZW5kKGMpLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGI9Yy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PXdpbmRvdy5pbm5lcldpZHRoLHg9d2luZG93LmlubmVySGVpZ2h0LG09ZC5jbGllbnRZLGY9ZC5jbGllbnRYO2YrYi53aWR0aD52JiYoZj12LWIud2lkdGgtMTApLG0rYi5oZWlnaHQ+eCYmKG09eC1iLmhlaWdodC0xMCksZjwxMCYmKGY9MTApLG08MTAmJihtPTEwKSxjLnN0eWxlLnRvcD1gJHttfXB4YCxjLnN0eWxlLmxlZnQ9YCR7Zn1weGAsYy5zdHlsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iixhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLGMuc3R5bGUub3BhY2l0eT0iMSIsYy5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkifSNlPXpvdCh0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKGQpe3RoaXMuI2U9ZH13aW5kb3dMYXllcj16b3QodGhpcyxsKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIG1heC13aWR0aDogMjgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CgogICAgICAubWVudWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5oYXMtc3VibWVudTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICfigLonOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTphY3RpdmU6bm90KC5oYXMtc3VibWVudSkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1lbnVpdGVtLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS1zaG9ydGN1dCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKGQ9PntpZigiZGl2aWRlciJpbiBkJiZkLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudS1kaXZpZGVyIj48L2Rpdj5gO2xldCB1PWQsYz11LnN1Ym1lbnUmJnUuc3VibWVudS5sZW5ndGg+MDtyZXR1cm4gd2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibWVudWl0ZW0gJHt1LmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9ICR7Yz8iaGFzLXN1Ym1lbnUiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiF1LmRpc2FibGVkJiYhYyYmdGhpcy5oYW5kbGVDbGljayh1KX0KICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhhbmRsZU1lbnVJdGVtSG92ZXIodSxjKX0KICAgICAgICAgICAgICBAbW91c2VsZWF2ZT0keygpPT50aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dS5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt1Lmljb25OYW1lfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+JHt1Lm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICR7dS5zaG9ydGN1dCYmIWM/d2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS1zaG9ydGN1dCI+JHt1LnNob3J0Y3V0fTwvc3Bhbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9KX0KICAgICAgICAke3RoaXMubWVudUl0ZW1zLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudWl0ZW0iIEBjbGljaz0keygpPT57cC5jb250ZXh0TWVudURlYWN0aXZhdGVkPSEwLHRoaXMuZGVzdHJveSgpfX0+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ibHVjaWRlOngiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS10ZXh0Ij5BbGxvdyBuYXRpdmUgY29udGV4dDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgYDp3YGB9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmZvY3VzKCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleWRvd24pfWhhbmRsZUtleWRvd249aShkPT57bGV0IHU9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVpdGVtOm5vdCguZGlzYWJsZWQpIikpLGM9dS5maW5kSW5kZXgoYj0+Yi5tYXRjaGVzKCI6aG92ZXIiKSk7c3dpdGNoKGQua2V5KXtjYXNlIkFycm93RG93biI6ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCBiPWMrMTx1Lmxlbmd0aD9jKzE6MDt1W2JdLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlZW50ZXIiKSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjpkLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9Yy0xPj0wP2MtMTp1Lmxlbmd0aC0xO3Vbdl0uZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgibW91c2VlbnRlciIpKTticmVhaztjYXNlIkVudGVyIjpkLnByZXZlbnREZWZhdWx0KCksYz49MCYmdVtjXS5jbGljaygpO2JyZWFrO2Nhc2UiRXNjYXBlIjpkLnByZXZlbnREZWZhdWx0KCksdGhpcy5kZXN0cm95KCk7YnJlYWt9fSwiaGFuZGxlS2V5ZG93biIpO2FzeW5jIGhhbmRsZUNsaWNrKGQpe2QuYWN0aW9uKCksYXdhaXQgdGhpcy5kZXN0cm95QWxsKCl9YXN5bmMgaGFuZGxlTWVudUl0ZW1Ib3ZlcihkLHUpe3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJmF3YWl0IHRoaXMuaGlkZVN1Ym1lbnUoKSx1JiZkLnN1Ym1lbnUmJih0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnNob3dTdWJtZW51KGQpfSwyMDApKX1oYW5kbGVNZW51SXRlbUxlYXZlKCl7dGhpcy5zdWJtZW51VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3VibWVudSYmIXRoaXMuc3VibWVudS5tYXRjaGVzKCI6aG92ZXIiKSYmdGhpcy5oaWRlU3VibWVudSgpfSwzMDApfWFzeW5jIHNob3dTdWJtZW51KGQpe2lmKCFkLnN1Ym1lbnV8fGQuc3VibWVudS5sZW5ndGg9PT0wKXJldHVybjtsZXQgYz1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW0iKSkuZmluZChNPT5NLnF1ZXJ5U2VsZWN0b3IoIi5tZW51aXRlbS10ZXh0Iik/LnRleHRDb250ZW50PT09ZC5uYW1lKTtpZighYylyZXR1cm47dGhpcy5zdWJtZW51PW5ldyBwLHRoaXMuc3VibWVudS5tZW51SXRlbXM9ZC5zdWJtZW51LHRoaXMuc3VibWVudS5wYXJlbnRNZW51PXRoaXMsdGhpcy5zdWJtZW51LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdWJtZW51LnN0eWxlLnpJbmRleD1TdHJpbmcocGFyc2VJbnQodGhpcy5zdHlsZS56SW5kZXgpKzEpLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSIsZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zdWJtZW51KSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBiPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHg9dGhpcy5zdWJtZW51LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG09d2luZG93LmlubmVyV2lkdGgsZj12LnJpZ2h0LTQseT1iLnRvcDtmK3gud2lkdGg+bS0xMCYmKGY9di5sZWZ0LXgud2lkdGgrNCkseSt4LmhlaWdodD53aW5kb3cuaW5uZXJIZWlnaHQtMTAmJih5PXdpbmRvdy5pbm5lckhlaWdodC14LmhlaWdodC0xMCksdGhpcy5zdWJtZW51LnN0eWxlLmxlZnQ9YCR7Zn1weGAsdGhpcy5zdWJtZW51LnN0eWxlLnRvcD1gJHt5fXB4YCxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIxIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgxKSIsdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCgpPT57dGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpfSksdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9KX1hc3luYyBoaWRlU3VibWVudSgpe3RoaXMuc3VibWVudSYmKGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCksdGhpcy5zdWJtZW51PW51bGwpfWFzeW5jIGRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHRoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKSx0aGlzLndpbmRvd0xheWVyJiYhdGhpcy5wYXJlbnRNZW51JiZ0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpKX1hc3luYyBkZXN0cm95QWxsKCl7bGV0IGQ9dGhpcztmb3IoO2QucGFyZW50TWVudTspZD1kLnBhcmVudE1lbnU7YXdhaXQgZC5kZXN0cm95KCl9c3RhdGlje3pvdChhLHQpfX07cmV0dXJuIHA9YX0pKCk7JGEuaW5pdGlhbGl6ZUdsb2JhbExpc3RlbmVyKCl9KTt2YXIgUDlhLEk5YT1nKCgpPT57cGUoKTtJdCgpO1A5YT1pKCgpPT57bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpO3JldHVybiBzZXRUaW1lb3V0KCgpPT57cy5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZTonY3JlYXRlZCBhIG5ldyBwcm9qZWN0ICJGcm9udGVuZCBBcHAiJ30se3R5cGU6InVwZGF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidmlld2VkIGRhc2hib2FyZCBhbmFseXRpY3MifSx7dHlwZToiZGVsZXRlIix1c2VyOiJBZG1pbiIsbWVzc2FnZToicmVtb3ZlZCBkZXByZWNhdGVkIGVuZHBvaW50In0se3R5cGU6ImN1c3RvbSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSJ9LHt0eXBlOiJsb2dvdXQiLHVzZXI6IkFsaWNlIEJyb3duIixtZXNzYWdlOiJsb2dnZWQgb3V0In0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToiY3JlYXRlZCBpbnZvaWNlICMxMjM0In1dKSxzLmVudHJpZXMkLnN1YnNjcmliZShlPT57Y29uc29sZS5sb2coIkFjdGl2aXR5IGxvZyB1cGRhdGVkOiIsZS5sZW5ndGgsImVudHJpZXMiKX0pfSwxMDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzA5MDkwYiIpfTsKICAgICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgJHtzfQogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciAkMWUsRmcsVEphLENvdD1nKCgpPT57cGUoKTtrdCgpO2ZyKCk7R2EoKTtJOWEoKTtodCgpOyQxZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRmc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFRKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQWN0aXZpdHlsb2ciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W1koKV0sYz1bWSgpXSwkMWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJlbnRyaWVzImluIGYsImhhcyIpLGdldDppKGY9PmYuZW50cmllcywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmVudHJpZXM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLCQxZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJzZWFyY2hRdWVyeSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yuc2VhcmNoUXVlcnk9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLCQxZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlckNyaXRlcmlhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJmaWx0ZXJDcml0ZXJpYSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmZpbHRlckNyaXRlcmlhLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZmlsdGVyQ3JpdGVyaWE9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLCQxZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPVA5YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUZnKHRoaXMsbyxbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyhtKXt0aGlzLiNlPW19I3Q9KEZnKHRoaXMsbCksRmcodGhpcyxkLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KG0pe3RoaXMuI3Q9bX0jYT0oRmcodGhpcyx1KSxGZyh0aGlzLGIse30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsdGVyQ3JpdGVyaWEobSl7dGhpcy4jYT1tfWVudHJpZXMkPShGZyh0aGlzLHYpLG5ldyB1dC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGFsaWduZWQgd2l0aCBzZWNvbmRhcnkgbWVudSAqLwogICAgICAgIC0tYWN0aXZpdHlsb2ctYmc6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnOiAke2guYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZy1tdXRlZDogJHtoLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlOiAke2guYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ib3JkZXI6ICR7aC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWhvdmVyOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1hY2NlbnQ6ICR7aC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKCiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgd2l0aCBzdHJlYW1pbmcgaW5kaWNhdG9yICovCiAgICAgIC50b3BiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRvcGJhciAuaGVhZGluZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5saXZlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgLmRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41OyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH0KICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH0KICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgY29udGFpbmVyICovCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDhweDsKICAgICAgICBib3R0b206IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTNhM2EzIiwiIzUyNTI1MiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBEYXRlIHNlcGFyYXRvciAtIHdhcm0gdGF1cGUgc3R5bGluZyAqLwogICAgICAuZGF0ZS1zZXBhcmF0b3IgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWFjY2VudCk7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGVudHJ5IC0gbW9kZXJuIHN0YWNrZWQgbGF5b3V0ICovCiAgICAgIC5hY3Rpdml0eWVudHJ5IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmFjdGl2aXR5ZW50cnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmxvZ2luIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4wOCkiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dvdXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnZpZXcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxNjgsIDg1LCAyNDcsIDAuMDgpIiwicmdiYSgxNjgsIDg1LCAyNDcsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzkzMzNlYSIsIiNjMDg0ZmMiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnVwZGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjUxLCAxNDYsIDYwLCAwLjA4KSIsInJnYmEoMjUxLCAxNDYsIDYwLCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5kZWxldGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmN1c3RvbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMTAwLCAxMTYsIDEzOSwgMC4wOCkiLCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzQ3NTU2OSIsIiM5NGEzYjgiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXVzZXIgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAuYWN0aXZpdHktc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgfQoKICAgICAgLnRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLyogU2VhcmNoIGJveCAtIHJlZmluZWQgc3R5bGluZyAqLwogICAgICAuc2VhcmNoYm94IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIpfTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCAzNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlcjpoYXMoaW5wdXQ6Zm9jdXMpIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IG09dGhpcy5nZXRGaWx0ZXJlZEVudHJpZXMoKSxmPXRoaXMuZ3JvdXBFbnRyaWVzQnlEYXRlKG0pO3JldHVybiB3YAogICAgICAke3RhLnN0eWxlc30KICAgICAgPHN0eWxlPjwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj5BY3Rpdml0eSBMb2c8L2Rpdj4KICAgICAgICAgICR7bS5sZW5ndGg+MD93YDxkaXYgY2xhc3M9ImxpdmUtaW5kaWNhdG9yIj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+TGl2ZTwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHlDb250YWluZXIiPgogICAgICAgICAgJHttLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gYWN0aXZpdHkgZW50cmllczwvZGl2PmA6Zi5tYXAoeT0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1zZXBhcmF0b3IiPiR7eS5sYWJlbH08L2Rpdj4KICAgICAgICAgICAgICAgICAgJHt5LmVudHJpZXMubWFwKE09PnRoaXMucmVuZGVyQWN0aXZpdHlFbnRyeShNKSl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJzZWFyY2gtaWNvbiIgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYWN0aXZpdGllcywgdXNlcnMuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVNlYXJjaElucHV0fQogICAgICAgICAgICAvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpdml0eUVudHJ5KG0pe2xldCBmPW0udGltZXN0YW1wfHxuZXcgRGF0ZSx5PXRoaXMuZm9ybWF0VGltZShmKSxNPW0uaWNvbk5hbWV8fHRoaXMuZ2V0SWNvbkZvclR5cGUobS50eXBlKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpdml0eWVudHJ5IgogICAgICAgIEBjb250ZXh0bWVudT0ke3o9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoeixtKX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWljb24gJHttLnR5cGV9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtNfT48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWhlYWRlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS11c2VyIj4ke20udXNlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1zZXBhcmF0b3IiPsK3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZXN0YW1wIj4ke3l9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1tZXNzYWdlIj4ke20ubWVzc2FnZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFkZChtKXtsZXQgZj17Li4ubSxpZDptLmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6bS50aW1lc3RhbXB8fG5ldyBEYXRlfTt0aGlzLmVudHJpZXM9W2YsLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1hZGRNYW55KG0pe2xldCBmPW0ubWFwKHk9Pih7Li4ueSxpZDp5LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6eS50aW1lc3RhbXB8fG5ldyBEYXRlfSkpO3RoaXMuZW50cmllcz1bLi4uZi5yZXZlcnNlKCksLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1jbGVhcigpe3RoaXMuZW50cmllcz1bXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1nZXRFbnRyaWVzKCl7cmV0dXJuWy4uLnRoaXMuZW50cmllc119ZmlsdGVyKG0pe3JldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKGY9PiEobS51c2VyJiZmLnVzZXIhPT1tLnVzZXJ8fG0udHlwZSYmZi50eXBlIT09bS50eXBlKSl9c2VhcmNoKG0pe2xldCBmPW0udG9Mb3dlckNhc2UoKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcih5PT55Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmKXx8eS51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZikpfWdlbmVyYXRlSWQoKXtyZXR1cm5gYWN0aXZpdHktJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9Z2V0RmlsdGVyZWRFbnRyaWVzKCl7bGV0IG09dGhpcy5lbnRyaWVzO2lmKHRoaXMuc2VhcmNoUXVlcnkpe2xldCBmPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTttPW0uZmlsdGVyKHk9PnkubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGYpfHx5LnVzZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmKSl9cmV0dXJuKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSYmKG09bS5maWx0ZXIoZj0+ISh0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXImJmYudXNlciE9PXRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlJiZmLnR5cGUhPT10aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpKSksbX1ncm91cEVudHJpZXNCeURhdGUobSl7bGV0IGY9bmV3IE1hcCx5PW5ldyBEYXRlLE09bmV3IERhdGUoeSk7TS5zZXREYXRlKE0uZ2V0RGF0ZSgpLTEpO2ZvcihsZXQgeiBvZiBtKXtsZXQgTj16LnRpbWVzdGFtcHx8bmV3IERhdGUsQzt0aGlzLmlzU2FtZURheShOLHkpP0M9IlRvZGF5Ijp0aGlzLmlzU2FtZURheShOLE0pP0M9Illlc3RlcmRheSI6Qz1OLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHttb250aDoic2hvcnQiLGRheToibnVtZXJpYyIseWVhcjpOLmdldEZ1bGxZZWFyKCkhPT15LmdldEZ1bGxZZWFyKCk/Im51bWVyaWMiOnZvaWQgMH0pLGYuaGFzKEMpfHxmLnNldChDLFtdKSxmLmdldChDKS5wdXNoKHopfXJldHVybiBBcnJheS5mcm9tKGYuZW50cmllcygpKS5tYXAoKFt6LE5dKT0+KHtsYWJlbDp6LGVudHJpZXM6Tn0pKX1pc1NhbWVEYXkobSxmKXtyZXR1cm4gbS5nZXRGdWxsWWVhcigpPT09Zi5nZXRGdWxsWWVhcigpJiZtLmdldE1vbnRoKCk9PT1mLmdldE1vbnRoKCkmJm0uZ2V0RGF0ZSgpPT09Zi5nZXREYXRlKCl9Zm9ybWF0VGltZShtKXtyZXR1cm4gbS50b0xvY2FsZVRpbWVTdHJpbmcoImVuLVVTIix7aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0Iixob3VyMTI6ITF9KX1nZXRJY29uRm9yVHlwZShtKXtsZXQgZj17bG9naW46Imx1Y2lkZTpsb2dJbiIsbG9nb3V0OiJsdWNpZGU6bG9nT3V0Iix2aWV3OiJsdWNpZGU6ZXllIixjcmVhdGU6Imx1Y2lkZTpwbHVzIix1cGRhdGU6Imx1Y2lkZTplZGl0IixkZWxldGU6Imx1Y2lkZTp0cmFzaDIiLGN1c3RvbToibHVjaWRlOmFjdGl2aXR5In07cmV0dXJuIGZbbV18fGYuY3VzdG9tfWhhbmRsZVNlYXJjaElucHV0KG0pe2xldCBmPW0udGFyZ2V0O3RoaXMuc2VhcmNoUXVlcnk9Zi52YWx1ZX1oYW5kbGVDb250ZXh0TWVudShtLGYpe20ucHJldmVudERlZmF1bHQoKSwkYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhtLFt7bmFtZToiQ29weSBhY3Rpdml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYCR7Zi51c2VyfSAke2YubWVzc2FnZX1gKX0sImFjdGlvbiIpfSx7bmFtZToiRmlsdGVyIGJ5IHVzZXIiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e3VzZXI6Zi51c2VyfX0sImFjdGlvbiIpfSx7bmFtZToiRmlsdGVyIGJ5IHR5cGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixhY3Rpb246aShhc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17dHlwZTpmLnR5cGV9fSwiYWN0aW9uIil9LHtuYW1lOiJDbGVhciBmaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt9LHRoaXMuc2VhcmNoUXVlcnk9IiJ9LCJhY3Rpb24iKX1dKX1zdGF0aWN7RmcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIEE5YT1nKCgpPT57Q290KCl9KTt2YXIgTjlhPWcoKCk9Pnt9KTt2YXIgUjlhPWcoKCk9Pnt2bygpfSk7dmFyIE85YT1nKCgpPT57fSk7dmFyIEY5YT1nKCgpPT57fSk7dmFyIEI5YT1nKCgpPT57fSk7dmFyIGE0PWcoKCk9PntOOWEoKTtSOWEoKTtPOWEoKTtGOWEoKTtCOWEoKX0pO3ZhciBIOWEscTlhPWcoKCk9PntwZSgpO0l0KCk7VG90KCk7SDlhPWkoKCk9PntsZXQgcz1be25hbWU6IkZpbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiTmV3IEZpbGUiLHNob3J0Y3V0OiJDbWQrTiIsaWNvbk5hbWU6ImZpbGUtcGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIiksImFjdGlvbiIpfSx7bmFtZToiT3Blbi4uLiIsc2hvcnRjdXQ6IkNtZCtPIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIiksImFjdGlvbiIpfSx7bmFtZToiT3BlbiBSZWNlbnQiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToicHJvamVjdC1hbHBoYS50cyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDEiKSwiYWN0aW9uIil9LHtuYW1lOiJjb25maWcuanNvbiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDIiKSwiYWN0aW9uIil9LHtuYW1lOiJyZWFkbWUubWQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAzIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiU2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixpY29uTmFtZToic2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFzLi4uIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIGFzIiksImFjdGlvbiIpLGRpc2FibGVkOiEwfSx7ZGl2aWRlcjohMH0se25hbWU6IkV4aXQiLHNob3J0Y3V0OiJDbWQrUSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4aXQiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVW5kbyIsc2hvcnRjdXQ6IkNtZCtaIixpY29uTmFtZToidW5kbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWRvIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1oiLGljb25OYW1lOiJyZWRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLHNob3J0Y3V0OiJDbWQrWCIsaWNvbk5hbWU6InNjaXNzb3JzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsc2hvcnRjdXQ6IkNtZCtDIixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsc2hvcnRjdXQ6IkNtZCtGIixpY29uTmFtZToic2VhcmNoIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpLCJhY3Rpb24iKX0se25hbWU6IlJlcGxhY2UiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG9nZ2xlIEZ1bGxzY3JlZW4iLHNob3J0Y3V0OiJGMTEiLGljb25OYW1lOiJleHBhbmQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsc2NyZWVuIiksImFjdGlvbiIpfSx7bmFtZToiWm9vbSBJbiIsc2hvcnRjdXQ6IkNtZCsrIixpY29uTmFtZToiem9vbS1pbiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKSwiYWN0aW9uIil9LHtuYW1lOiJab29tIE91dCIsc2hvcnRjdXQ6IkNtZCstIixpY29uTmFtZToiem9vbS1vdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpLCJhY3Rpb24iKX0se25hbWU6IlJlc2V0IFpvb20iLHNob3J0Y3V0OiJDbWQrMCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIiksImFjdGlvbiIpfSx7bmFtZToiVG9nZ2xlIFRlcm1pbmFsIixzaG9ydGN1dDoiQ21kK0oiLGljb25OYW1lOiJ0ZXJtaW5hbCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSB0ZXJtaW5hbCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiSGVscCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWxlYXNlIE5vdGVzIixpY29uTmFtZToiZmlsZS10ZXh0IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJSZXBvcnQgSXNzdWUiLGljb25OYW1lOiJidWciLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBvcnQgaXNzdWUiKSwiYWN0aW9uIil9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjYXBwYmFyIiksYT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGF0dXMtdG9nZ2xlIGRlZXMtYnV0dG9uIik7YVswXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LnVzZXI9ey4uLnQudXNlcixzdGF0dXM6Im9ubGluZSJ9fSksYVsxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LnVzZXI9ey4uLnQudXNlcixzdGF0dXM6ImJ1c3kifX0pLGFbMl0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC51c2VyPXsuLi50LnVzZXIsc3RhdHVzOiJhd2F5In19KSxhWzNdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudXNlcj17Li4udC51c2VyLHN0YXR1czoib2ZmbGluZSJ9fSksZS5xdWVyeVNlbGVjdG9yKCIud2luZG93LWNvbnRyb2xzLXRvZ2dsZSBkZWVzLWJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3Quc2hvd1dpbmRvd0NvbnRyb2xzPSF0LnNob3dXaW5kb3dDb250cm9sc30pO2xldCBuPWUucXVlcnlTZWxlY3RvckFsbCgiLmJyZWFkY3J1bWItdG9nZ2xlIGRlZXMtYnV0dG9uIik7blswXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmJyZWFkY3J1bWJzPSJIb21lID4gRG9jdW1lbnRzID4gUHJvamVjdHMgPiBNeUFwcCA+IHNyYyA+IGluZGV4LnRzIn0pLG5bMV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5icmVhZGNydW1icz0iRGFzaGJvYXJkIn0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCBsYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIGlkPSJhcHBiYXIiCiAgICAgICAgLm1lbnVJdGVtcz0ke3N9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7IlByb2plY3QgPiBzcmMgPiBjb21wb25lbnRzID4gQXBwQmFyLnRzIn0KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0keyIgPiAifQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHshMH0KICAgICAgICAuc2hvd1NlYXJjaD0keyEwfQogICAgICAgIC50aGVtZT0keyJkYXJrIn0KICAgICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgICBAbWVudS1zZWxlY3Q9JHtlPT5jb25zb2xlLmxvZygiTWVudSBzZWxlY3RlZDoiLGUuZGV0YWlsLml0ZW0pfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7ZT0+Y29uc29sZS5sb2coIkJyZWFkY3J1bWIgY2xpY2tlZDoiLGUuZGV0YWlsKX0KICAgICAgICBAc2VhcmNoLWNsaWNrPSR7KCk9PmNvbnNvbGUubG9nKCJTZWFyY2ggY2xpY2tlZCIpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT5jb25zb2xlLmxvZygiVXNlciBtZW51IGNsaWNrZWQiKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8aDI+QXBwIEJhciBEZW1vPC9oMj4KICAgICAgICA8cD5UaGlzIGRlbW8gc2hvd3MgdmFyaW91cyBmZWF0dXJlcyBvZiB0aGUgYXBwIGJhciBjb21wb25lbnQ6PC9wPgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5EeW5hbWljIG1lbnUgaXRlbXMgd2l0aCBpY29ucywgc2hvcnRjdXRzLCBhbmQgc3VibWVudXM8L2xpPgogICAgICAgICAgPGxpPkJyZWFkY3J1bWIgbmF2aWdhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+VXNlciBhY2NvdW50IHNlY3Rpb24gd2l0aCBzdGF0dXMgaW5kaWNhdG9yPC9saT4KICAgICAgICAgIDxsaT5TZWFyY2ggaWNvbjwvbGk+CiAgICAgICAgICA8bGk+V2luZG93IGNvbnRyb2xzIChwbGF0Zm9ybS1zcGVjaWZpYyk8L2xpPgogICAgICAgICAgPGxpPkRhcmsvbGlnaHQgdGhlbWUgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+S2V5Ym9hcmQgbmF2aWdhdGlvbiAoVGFiLCBFbnRlciwgRXNjYXBlKTwvbGk+CiAgICAgICAgICA8bGk+Q3VzdG9tIGV2ZW50cyBmb3IgYWxsIGludGVyYWN0aW9uczwvbGk+CiAgICAgICAgPC91bD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VGhlbWU8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ0aGVtZS10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGFyazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPlVzZXIgU3RhdHVzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0ic3RhdHVzLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PbmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QnVzeTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Bd2F5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9mZmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5XaW5kb3cgQ29udHJvbHM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ3aW5kb3ctY29udHJvbHMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPkJyZWFkY3J1bWJzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0iYnJlYWRjcnVtYi10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TG9uZyBQYXRoPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNob3J0IFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBqOWEsVjlhPWcoKCk9PntwZSgpO2o5YT1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciB0aGVtaW5nICovCiAgICAgICAgLS1hcHBiYXItaGVpZ2h0OiA0MHB4OwogICAgICAgIC0tYXBwYmFyLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1hcHBiYXItaGVpZ2h0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLWFwcGJhci1mb250LXNpemUpOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvOwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogZHJhZzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogT3B0aW9uYWw6IFN0eWxlIGZvciBtZW51IGl0ZW1zIHdpdGggaWNvbnMgKG5vdCB0eXBpY2FsbHkgdXNlZCBmb3IgdG9wLWxldmVsIGl0ZW1zKSAqLwogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW1bZGlzYWJsZWRdIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmZvY3VzLXZpc2libGUgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICB9CgoKICAgICAgLyogRHJvcGRvd24gc3R5bGVzICovCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24ub3BlbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW06aG92ZXIsCiAgICAgIC5kcm9wZG93bi1pdGVtLmZvY3VzZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSAuc2hvcnRjdXQgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC8qIEJyZWFkY3J1bWJzICovCiAgICAgIC5icmVhZGNydW1icyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogQWNjb3VudCBzZWN0aW9uICovCiAgICAgIC5hY2NvdW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAudXNlci1pbmZvOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGxvZyB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5hY3Rpdml0eS10b2dnbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwNjAiLCIjZmZmZmZmNjAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYxNSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGUuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDE1IiwiI2ZmZmZmZjIwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWJhZGdlIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjNTI1MjUyIiwiIzUyNTI1MiIpfTsKICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CiAgICBgXX0pO3ZhciBVOWEsVzlhPWcoKCk9PntwZSgpO1U5YT1pKHM9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudXMiPgogICAgICAgICAgJHtzLnNob3dXaW5kb3dDb250cm9scz93YDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gOiIifQogICAgICAgICAgJHtzLnJlbmRlck1lbnVJdGVtcygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4KICAgICAgICAgICR7cy5yZW5kZXJCcmVhZGNydW1icygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjY291bnQiPgogICAgICAgICAgJHtzLnJlbmRlckFjY291bnRTZWN0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlckFwcHVpQXBwYmFyIil9KTt2YXIgJG90LHpRLCRKYSxEb3Q9ZygoKT0+e3BlKCk7aHQoKTskb3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHpRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSwkSmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXdpbmRvd2NvbnRyb2xzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXaW5kb3dDb250cm9scyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3JlZmxlY3Q6ITB9KV0scD1bTCh7cmVmbGVjdDohMH0pXSwkb3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJ0eXBlImluIHYsImhhcyIpLGdldDppKHY9PnYudHlwZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnR5cGU9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLCRvdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJwb3NpdGlvbiJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YucG9zaXRpb249eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLCRvdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgPGRlZXMtd2luZG93Y29udHJvbHM+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT16USh0aGlzLG8sIm1hYyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoYil7dGhpcy4jZT1ifSN0PSh6USh0aGlzLGwpLHpRKHRoaXMsZCwibGVmdCIpKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHpRKHRoaXMsdSl9c3RhdGlje3pRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBDUSxFdSxESmEsTG90PWcoKCk9Pnt2bygpO0duKCk7cGUoKTtodCgpO0NRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxFdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sREphPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpUHJvZmlsZURyb3Bkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSxDUSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InVzZXIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei51c2VyLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudXNlcj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksQ1EodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Im1lbnVJdGVtcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6Lm1lbnVJdGVtcz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGQsdSksQ1EodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImlzT3BlbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzT3BlbiwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmlzT3Blbj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksQ1EodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4icG9zaXRpb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnBvc2l0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxDUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgLnVzZXI9JHt7bmFtZToiSm9obiBEb2UiLGVtYWlsOiJqb2huLmRvZUBleGFtcGxlLmNvbSIsYXZhdGFyOiJodHRwczovL3JhbmRvbXVzZXIubWUvYXBpL3BvcnRyYWl0cy9tZW4vMS5qcGciLHN0YXR1czoib25saW5lIn19CiAgICAgIC5tZW51SXRlbXM9JHtbe25hbWU6IlByb2ZpbGUgU2V0dGluZ3MiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFjY291bnQiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCAmIFN1cHBvcnQiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kK0siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfQogICAgICAuaXNPcGVuPSR7ITB9CiAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1FdSh0aGlzLG8sdm9pZCAwKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNlfXNldCB1c2VyKE0pe3RoaXMuI2U9TX0jdD0oRXUodGhpcyxsKSxFdSh0aGlzLGQsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyhNKXt0aGlzLiN0PU19I2E9KEV1KHRoaXMsdSksRXUodGhpcyxiLCExKSk7Z2V0IGlzT3Blbigpe3JldHVybiB0aGlzLiNhfXNldCBpc09wZW4oTSl7dGhpcy4jYT1NfSNzPShFdSh0aGlzLHYpLEV1KHRoaXMsbSwidG9wLXJpZ2h0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBwb3NpdGlvbihNKXt0aGlzLiNzPU19c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHotaW5kZXg6ICR7Ym8ub3ZlcmxheS5kcm9wZG93bn07CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpc29wZW5dKSAuZHJvcGRvd24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuYmFja2Ryb3AgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFBvc2l0aW9uIHZhcmlhbnRzICovCiAgICAgIC5kcm9wZG93bi50b3AtcmlnaHQgewogICAgICAgIHRvcDogMTAwJTsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi50b3AtbGVmdCB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24uYm90dG9tLXJpZ2h0IHsKICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24uYm90dG9tLWxlZnQgewogICAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogVXNlciBzZWN0aW9uICovCiAgICAgIC51c2VyLXNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC51c2VyLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudXNlci1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnVzZXItZW1haWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgc2VjdGlvbiAqLwogICAgICAubWVudS1zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm1lbnUtc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC8qIEJhY2tkcm9wIGZvciBtb2JpbGUgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmJhY2tkcm9wIHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMDsKICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICByaWdodDogMDsKICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICAgIHotaW5kZXg6ICR7Ym8uYmFja2Ryb3AuZHJvcGRvd259OwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmJhY2tkcm9wIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRyb3Bkb3duIHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgcmlnaHQ6IGF1dG87CiAgICAgICAgICBib3R0b206IGF1dG87CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjk1KTsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpOwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJhY2tkcm9wIiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZSgpfT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24gJHt0aGlzLnBvc2l0aW9ufSI+CiAgICAgICAgJHt0aGlzLnVzZXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyP3dgPGltZyBzcmM9IiR7dGhpcy51c2VyLmF2YXRhcn0iIGFsdD0iJHt0aGlzLnVzZXIubmFtZX0iPmA6dGhpcy5nZXRJbml0aWFscyh0aGlzLnVzZXIubmFtZSl9CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5zdGF0dXM/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItZGV0YWlscyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLW5hbWUiPiR7dGhpcy51c2VyLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5lbWFpbD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWVtYWlsIj4ke3RoaXMudXNlci5lbWFpbH08L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LXNlY3Rpb24iPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoTT0+dGhpcy5yZW5kZXJNZW51SXRlbShNKSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNZW51SXRlbShNKXtpZigiZGl2aWRlciJpbiBNJiZNLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudS1kaXZpZGVyIj48L2Rpdj5gO2xldCB6PU07cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1lbnUtaXRlbSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlTWVudUNsaWNrKHopfT4KICAgICAgICAke3ouaWNvbk5hbWU/d2AKICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke3ouaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnUtaXRlbS10ZXh0Ij4ke3oubmFtZX08L3NwYW4+CiAgICAgICAgJHt6LnNob3J0Y3V0P3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS1zaG9ydGN1dCI+JHt6LnNob3J0Y3V0fTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0SW5pdGlhbHMoTSl7cmV0dXJuIE0uc3BsaXQoIiAiKS5tYXAoej0+elswXSkuam9pbigiIikudG9VcHBlckNhc2UoKS5zbGljZSgwLDIpfWFzeW5jIGhhbmRsZU1lbnVDbGljayhNKXthd2FpdCBNLmFjdGlvbigpLHRoaXMuY2xvc2UoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpNfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfW9wZW4oKXt0aGlzLmlzT3Blbj0hMH1jbG9zZSgpe3RoaXMuaXNPcGVuPSExfXRvZ2dsZSgpe3RoaXMuaXNPcGVuPSF0aGlzLmlzT3Blbn1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2s9dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2suYmluZCh0aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spfWhhbmRsZU91dHNpZGVDbGljayhNKXtpZih0aGlzLmlzT3BlbiYmIXRoaXMuY29udGFpbnMoTS50YXJnZXQpKXtsZXQgej10aGlzLnBhcmVudEVsZW1lbnQ7aWYoeiYmei5jb250YWlucyhNLnRhcmdldCkpcmV0dXJuO3RoaXMuY2xvc2UoKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEV1KHRoaXMsZil9c3RhdGlje0V1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBobixDcyxMSmEsVG90PWcoKCk9PntwZSgpO2t0KCk7YTQoKTt2bygpO3E5YSgpO1Y5YSgpO1c5YSgpO0dhKCk7RG90KCk7TG90KCk7aG49ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LENzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxMSmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFwcHVpLWFwcGJhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W107dmFyIHllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlCYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgcT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOk9iamVjdH0pXSxOPVtMKHt0eXBlOkFycmF5fSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7dHlwZTpOdW1iZXJ9KV0sSz1bTCh7dHlwZTpCb29sZWFufSldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLGhuKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJtZW51SXRlbXMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5tZW51SXRlbXMsImdldCIpLHNldDppKChBLHNlKT0+e0EubWVudUl0ZW1zPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LG8sbCksaG4odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1icyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYnJlYWRjcnVtYnMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5icmVhZGNydW1icywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5icmVhZGNydW1icz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxkLHUpLGhuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnJlYWRjcnVtYlNlcGFyYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYnJlYWRjcnVtYlNlcGFyYXRvciJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmJyZWFkY3J1bWJTZXBhcmF0b3IsImdldCIpLHNldDppKChBLHNlKT0+e0EuYnJlYWRjcnVtYlNlcGFyYXRvcj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxiLHYpLGhuKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJzaG93V2luZG93Q29udHJvbHMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5zaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDppKChBLHNlKT0+e0Euc2hvd1dpbmRvd0NvbnRyb2xzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LG0sZiksaG4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1c2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJ1c2VyImluIEEsImhhcyIpLGdldDppKEE9PkEudXNlciwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS51c2VyPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LE0seiksaG4odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9maWxlTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJwcm9maWxlTWVudUl0ZW1zImluIEEsImhhcyIpLGdldDppKEE9PkEucHJvZmlsZU1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5wcm9maWxlTWVudUl0ZW1zPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEMsXyksaG4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJzaG93U2VhcmNoImluIEEsImhhcyIpLGdldDppKEE9PkEuc2hvd1NlYXJjaCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93U2VhcmNoPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LCQsRSksaG4odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aXZpdHlMb2dUb2dnbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNob3dBY3Rpdml0eUxvZ1RvZ2dsZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93QWN0aXZpdHlMb2dUb2dnbGU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sayxTKSxobih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImFjdGl2aXR5TG9nQ291bnQiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5hY3Rpdml0eUxvZ0NvdW50LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmFjdGl2aXR5TG9nQ291bnQ9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sUCxSKSxobih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nQWN0aXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJhY3Rpdml0eUxvZ0FjdGl2ZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFjdGl2aXR5TG9nQWN0aXZlLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmFjdGl2aXR5TG9nQWN0aXZlPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFYsVyksaG4odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlTWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYWN0aXZlTWVudSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFjdGl2ZU1lbnUsImdldCIpLHNldDppKChBLHNlKT0+e0EuYWN0aXZlTWVudT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxCLFUpLGhuKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5Ecm9wZG93bnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+Im9wZW5Ecm9wZG93bnMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5vcGVuRHJvcGRvd25zLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLm9wZW5Ecm9wZG93bnM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sRixqKSxobih0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZm9jdXNlZEl0ZW0iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5mb2N1c2VkSXRlbSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5mb2N1c2VkSXRlbT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxsZSxRKSxobih0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkRHJvcGRvd25JdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJmb2N1c2VkRHJvcGRvd25JdGVtImluIEEsImhhcyIpLGdldDppKEE9PkEuZm9jdXNlZERyb3Bkb3duSXRlbSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5mb2N1c2VkRHJvcGRvd25JdGVtPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LHRlLGVlKSxobih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Byb2ZpbGVEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImlzUHJvZmlsZURyb3Bkb3duT3BlbiJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmlzUHJvZmlsZURyb3Bkb3duT3BlbiwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5pc1Byb2ZpbGVEcm9wZG93bk9wZW49c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sWCxaKSxobihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpxfSxudWxsLHQpLHllPWE9ZS52YWx1ZSxxJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX1zdGF0aWMgZGVtbz1IOWE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Dcyh0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKHEpe3RoaXMuI2U9cX0jdD0oQ3ModGhpcyxsKSxDcyh0aGlzLGQsIiIpKTtnZXQgYnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnJlYWRjcnVtYnMocSl7dGhpcy4jdD1xfSNhPShDcyh0aGlzLHUpLENzKHRoaXMsYiwiID4gIikpO2dldCBicmVhZGNydW1iU2VwYXJhdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IocSl7dGhpcy4jYT1xfSNzPShDcyh0aGlzLHYpLENzKHRoaXMsbSwhMCkpO2dldCBzaG93V2luZG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1dpbmRvd0NvbnRyb2xzKHEpe3RoaXMuI3M9cX0jaT0oQ3ModGhpcyxmKSxDcyh0aGlzLE0sdm9pZCAwKSk7Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdXNlcihxKXt0aGlzLiNpPXF9I3I9KENzKHRoaXMseiksQ3ModGhpcyxDLFtdKSk7Z2V0IHByb2ZpbGVNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcHJvZmlsZU1lbnVJdGVtcyhxKXt0aGlzLiNyPXF9I289KENzKHRoaXMsXyksQ3ModGhpcywkLCExKSk7Z2V0IHNob3dTZWFyY2goKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd1NlYXJjaChxKXt0aGlzLiNvPXF9I249KENzKHRoaXMsRSksQ3ModGhpcyxrLCExKSk7Z2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZSgpe3JldHVybiB0aGlzLiNufXNldCBzaG93QWN0aXZpdHlMb2dUb2dnbGUocSl7dGhpcy4jbj1xfSNsPShDcyh0aGlzLFMpLENzKHRoaXMsUCwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgYWN0aXZpdHlMb2dDb3VudChxKXt0aGlzLiNsPXF9I2M9KENzKHRoaXMsUiksQ3ModGhpcyxWLCExKSk7Z2V0IGFjdGl2aXR5TG9nQWN0aXZlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2aXR5TG9nQWN0aXZlKHEpe3RoaXMuI2M9cX0jZD0oQ3ModGhpcyxXKSxDcyh0aGlzLEIsbnVsbCkpO2dldCBhY3RpdmVNZW51KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGFjdGl2ZU1lbnUocSl7dGhpcy4jZD1xfSN1PShDcyh0aGlzLFUpLENzKHRoaXMsRixuZXcgU2V0KSk7Z2V0IG9wZW5Ecm9wZG93bnMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgb3BlbkRyb3Bkb3ducyhxKXt0aGlzLiN1PXF9I3A9KENzKHRoaXMsaiksQ3ModGhpcyxsZSxudWxsKSk7Z2V0IGZvY3VzZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGZvY3VzZWRJdGVtKHEpe3RoaXMuI3A9cX0jaD0oQ3ModGhpcyxRKSxDcyh0aGlzLHRlLC0xKSk7Z2V0IGZvY3VzZWREcm9wZG93bkl0ZW0oKXtyZXR1cm4gdGhpcy4jaH1zZXQgZm9jdXNlZERyb3Bkb3duSXRlbShxKXt0aGlzLiNoPXF9I2Y9KENzKHRoaXMsZWUpLENzKHRoaXMsWCwhMSkpO2dldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oKXtyZXR1cm4gdGhpcy4jZn1zZXQgaXNQcm9maWxlRHJvcGRvd25PcGVuKHEpe3RoaXMuI2Y9cX1zdGF0aWMgc3R5bGVzPWo5YTtyZW5kZXIoKXtyZXR1cm4gVTlhKHRoaXMpfXJlbmRlck1lbnVJdGVtcygpe3JldHVybiB3YAogICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgocSxBKT0+dGhpcy5yZW5kZXJNZW51SXRlbShxLGBtZW51LSR7QX1gKSl9CiAgICBgfXJlbmRlck1lbnVJdGVtKHEsQSl7aWYoImRpdmlkZXIiaW4gcSYmcS5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IHNlPXEsb2U9dGhpcy5hY3RpdmVNZW51PT09QSxhZT1zZS5zdWJtZW51JiZzZS5zdWJtZW51Lmxlbmd0aD4wO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtICR7b2U/ImFjdGl2ZSI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke3NlLmRpc2FibGVkfQogICAgICAgIHRhYmluZGV4PSIke3NlLmRpc2FibGVkPy0xOjB9IgogICAgICAgIGRhdGEtaXRlbS1pZD0iJHtBfSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2soc2UsQSl9CiAgICAgICAgQGtleWRvd249JHtUZT0+dGhpcy5oYW5kbGVNZW51S2V5ZG93bihUZSxzZSxBKX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICBhcmlhLWhhc3BvcHVwPSIke2FlfSIKICAgICAgICBhcmlhLWV4cGFuZGVkPSIke29lfSIKICAgICAgPgogICAgICAgICR7c2UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtzZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAke3NlLm5hbWV9CiAgICAgICAgJHthZT90aGlzLnJlbmRlckRyb3Bkb3duKHNlLnN1Ym1lbnUsQSxvZSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bihxLEEsc2Upe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJkcm9wZG93biAke3NlPyJvcGVuIjoiIn0iIAogICAgICAgIEBjbGljaz0ke29lPT5vZS5zdG9wUHJvcGFnYXRpb24oKX0KICAgICAgICBAa2V5ZG93bj0ke29lPT50aGlzLmhhbmRsZURyb3Bkb3duS2V5ZG93bihvZSxxLEEpfQogICAgICAgIHRhYmluZGV4PSIke3NlPzA6LTF9IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgID4KICAgICAgICAke3EubWFwKChvZSxhZSk9PnRoaXMucmVuZGVyRHJvcGRvd25JdGVtKG9lLGAke0F9LSR7YWV9YCkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRHJvcGRvd25JdGVtKHEsQSl7aWYoImRpdmlkZXIiaW4gcSYmcS5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IHNlPXEsb2U9cGFyc2VJbnQoQS5zcGxpdCgiLSIpLnBvcCgpfHwiMCIpLGFlPXRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT09PW9lO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0gJHthZT8iZm9jdXNlZCI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke3NlLmRpc2FibGVkfQogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURyb3Bkb3duSXRlbUNsaWNrKHNlKX0KICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09b2V9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgdGFiaW5kZXg9IiR7c2UuZGlzYWJsZWQ/LTE6MH0iCiAgICAgID4KICAgICAgICAke3NlLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7c2UuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4+JHtzZS5uYW1lfTwvc3Bhbj4KICAgICAgICAke3NlLnNob3J0Y3V0P3dgPHNwYW4gY2xhc3M9InNob3J0Y3V0Ij4ke3NlLnNob3J0Y3V0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQnJlYWRjcnVtYnMoKXtpZighdGhpcy5icmVhZGNydW1icylyZXR1cm4gd2BgO2xldCBxPXRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtyZXR1cm4gd2AKICAgICAgJHtxLm1hcCgoQSxzZSk9PndgCiAgICAgICAgJHtzZT4wP3dgPHNwYW4gY2xhc3M9ImJyZWFkY3J1bWItc2VwYXJhdG9yIj4ke3RoaXMuYnJlYWRjcnVtYlNlcGFyYXRvcn08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiAKICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iIAogICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQnJlYWRjcnVtYkNsaWNrKEEsc2UpfQogICAgICAgID4KICAgICAgICAgICR7QX0KICAgICAgICA8L3NwYW4+CiAgICAgIGApfQogICAgYH1yZW5kZXJBY2NvdW50U2VjdGlvbigpe3JldHVybiB3YAogICAgICAke3RoaXMuc2hvd1NlYXJjaD93YAogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaWNvbiIKICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWFyY2hDbGlja30KICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIGA6IiJ9CiAgICAgICR7dGhpcy51c2VyP3dgCiAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj93YDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOndgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gfQogICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9CiAgICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLnByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgICAgIC5pc09wZW49JHt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbn0KICAgICAgICAgICAgLnBvc2l0aW9uPSR7InRvcC1yaWdodCJ9CiAgICAgICAgICAgIEBtZW51LXNlbGVjdD0ke3E9PnRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QocSl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT93YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJhY3Rpdml0eS10b2dnbGUgJHt0aGlzLmFjdGl2aXR5TG9nQWN0aXZlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQWN0aXZpdHlUb2dnbGV9CiAgICAgICAgICB0aXRsZT0iQWN0aXZpdHkgTG9nIgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFjdGl2aXR5In0+PC9kZWVzLWljb24+CiAgICAgICAgICAke3RoaXMuYWN0aXZpdHlMb2dDb3VudD4wP3dgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1iYWRnZSI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQ+OTk/Ijk5KyI6dGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWhhbmRsZU1lbnVDbGljayhxLEEpe3EuZGlzYWJsZWR8fChxLnN1Ym1lbnUmJnEuc3VibWVudS5sZW5ndGg+MD90aGlzLmFjdGl2ZU1lbnU9PT1BP3RoaXMuYWN0aXZlTWVudT1udWxsOnRoaXMuYWN0aXZlTWVudT1BOih0aGlzLmFjdGl2ZU1lbnU9bnVsbCxxLmFjdGlvbiYmcS5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpxfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSl9aGFuZGxlRHJvcGRvd25JdGVtQ2xpY2socSl7cS5kaXNhYmxlZHx8KHRoaXMuYWN0aXZlTWVudT1udWxsLHEuYWN0aW9uJiZxLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOnF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZU1lbnVLZXlkb3duKHEsQSxzZSl7c3dpdGNoKHEua2V5KXtjYXNlIkVudGVyIjpjYXNlIiAiOnEucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1lbnVDbGljayhBLHNlKTticmVhaztjYXNlIkFycm93RG93biI6aWYoQS5zdWJtZW51JiZ0aGlzLmFjdGl2ZU1lbnU9PT1zZSl7cS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0wO2xldCBvZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEuc3VibWVudSwtMSwxKTtvZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPW9lLHNldFRpbWVvdXQoKCk9PntsZXQgYWU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wZG93bi5vcGVuIik7YWUmJmFlLmZvY3VzKCl9LDApKX1icmVhaztjYXNlIkVzY2FwZSI6dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2JyZWFrO2Nhc2UiVGFiIjp0aGlzLmFjdGl2ZU1lbnU9PT1zZSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0IjpxLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbShzZSwxKTticmVhaztjYXNlIkFycm93TGVmdCI6cS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNOZXh0TWVudUl0ZW0oc2UsLTEpO2JyZWFrfX1oYW5kbGVCcmVhZGNydW1iQ2xpY2socSxBKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJicmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOnticmVhZGNydW1iOnEsaW5kZXg6QX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aXZpdHlUb2dnbGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpdml0eS10b2dnbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVVzZXJDbGljaygpe3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuPSF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QocSl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUdsb2JhbENsaWNrKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlRG9jdW1lbnRDbGljayl9aGFuZGxlR2xvYmFsQ2xpY2s9KENzKHRoaXMsWikscT0+e3Euc3RvcFByb3BhZ2F0aW9uKCl9KTtoYW5kbGVEb2N1bWVudENsaWNrPWkoKCk9Pnt0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTF9LCJoYW5kbGVEb2N1bWVudENsaWNrIik7aGFuZGxlRHJvcGRvd25LZXlkb3duKHEsQSxzZSl7bGV0IG9lPUEuZmlsdGVyKGFlPT4hKCJkaXZpZGVyImluIGFlJiZhZS5kaXZpZGVyKSk7c3dpdGNoKHEua2V5KXtjYXNlIkFycm93RG93biI6cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBhZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLDEpO2FlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09YWUpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBUZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLC0xKTtUZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPVRlKTticmVhaztjYXNlIkVudGVyIjppZihxLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtIT09LTEpe2xldCBEZT1vZVt0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW1dO0RlJiYiYWN0aW9uImluIERlJiYhRGUuZGlzYWJsZWQmJnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soRGUpfWJyZWFrO2Nhc2UiSG9tZSI6cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBSZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEsLTEsMSk7UmUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1SZSk7YnJlYWs7Y2FzZSJFbmQiOnEucHJldmVudERlZmF1bHQoKTtsZXQgQmU9dGhpcy5maW5kTmV4dFZhbGlkSXRlbShBLEEubGVuZ3RoLC0xKTtCZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPUJlKTticmVhaztjYXNlIkVzY2FwZSI6cS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMTtsZXQgR2U9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5tZW51SXRlbS5hY3RpdmUiKTtHZSYmR2UuZm9jdXMoKTticmVha319ZmluZE5leHRWYWxpZEl0ZW0ocSxBLHNlKXtsZXQgb2U9QStzZTtmb3IoO29lPj0wJiZvZTxxLmxlbmd0aDspe2xldCBhZT1xW29lXTtpZighKCJkaXZpZGVyImluIGFlJiZhZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gYWUmJmFlLmRpc2FibGVkKSlyZXR1cm4gb2U7b2UrPXNlfXJldHVybi0xfWZvY3VzTmV4dE1lbnVJdGVtKHEsQSl7bGV0IHNlPUFycmF5LmZyb20odGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51SXRlbSIpKSxvZT1zZS5maW5kSW5kZXgoUmU9PlJlLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1xKTtpZihvZT09PS0xKXJldHVybjtsZXQgYWU9b2UrQTthZTwwP2FlPXNlLmxlbmd0aC0xOmFlPj1zZS5sZW5ndGgmJihhZT0wKTtsZXQgVGU9MDtmb3IoO1RlPHNlLmxlbmd0aDspe2xldCBSZT1zZVthZV07aWYoIVJlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7UmUuZm9jdXMoKSx0aGlzLmFjdGl2ZU1lbnUmJih0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTEpO2JyZWFrfWFlPShhZStBK3NlLmxlbmd0aCklc2UubGVuZ3RoLFRlKyt9fXN0YXRpY3tDcyhhLHQpfX07cmV0dXJuIHllPWF9KSgpfSk7dmFyIEVvdD1nKCgpPT57VG90KCl9KTt2YXIgRzlhLEs5YSxZOWE9ZygoKT0+e3BlKCk7SXQoKTtLOWE9aSgoKT0+dyhHOWF8fChHOWE9YmMoW2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1sYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzczNzM3MzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ib3R0b21iYXItd3JhcHBlciB7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCAwJSAyMCUpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Qm90dG9tIGJhciB3aXRoIHN0YXR1cyB3aWRnZXRzIGFuZCBhY3Rpb25zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWJvdHRvbWJhci13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyCiAgICAgICAgICAgICAgaWQ9ImRlbW8tYm90dG9tYmFyIgogICAgICAgICAgICA+PC9kZWVzLWFwcHVpLWJvdHRvbWJhcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Q29udHJvbHM8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7Ij4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRTdWNjZXNzV2lkZ2V0KCkiPkFkZCBTdWNjZXNzIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFdhcm5pbmdXaWRnZXQoKSI+QWRkIFdhcm5pbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkRXJyb3JXaWRnZXQoKSI+QWRkIEVycm9yIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZExvYWRpbmdXaWRnZXQoKSI+QWRkIExvYWRpbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkUmlnaHRXaWRnZXQoKSI+QWRkIFJpZ2h0IFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZEFjdGlvbigpIj5BZGQgQWN0aW9uPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iY2xlYXJBbGwoKSI+Q2xlYXIgQWxsPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KICAgICAgICBjb25zdCBib3R0b21iYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVtby1ib3R0b21iYXInKTsKCiAgICAgICAgLy8gV2FpdCBmb3IgY29tcG9uZW50IHRvIGluaXRpYWxpemUKICAgICAgICBhd2FpdCBib3R0b21iYXIudXBkYXRlQ29tcGxldGU7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIHdpZGdldHMKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnc3RhdHVzJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFjdGl2aXR5JywKICAgICAgICAgIGxhYmVsOiAnU3lzdGVtIE9ubGluZScsCiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgIHRvb2x0aXA6ICdBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnU3RhdHVzIGNsaWNrZWQnKSwKICAgICAgICAgIGNvbnRleHRNZW51SXRlbXM6IFsKICAgICAgICAgICAgeyBuYW1lOiAnVmlldyBEZXRhaWxzJywgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ1N5c3RlbSBkZXRhaWxzJykgfSwKICAgICAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgbmFtZTogJ1JlZnJlc2ggU3RhdHVzJywgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaEN3JywgYWN0aW9uOiAoKSA9PiBhbGVydCgnUmVmcmVzaGluZy4uLicpIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpiZWxsJywKICAgICAgICAgIGxhYmVsOiAnMyBub3RpZmljYXRpb25zJywKICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLAogICAgICAgICAgdG9vbHRpcDogJ1lvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdOb3RpZmljYXRpb25zIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ3ZlcnNpb24nLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0QnJhbmNoJywKICAgICAgICAgIGxhYmVsOiAndjEuMi4zJywKICAgICAgICAgIHRvb2x0aXA6ICdDdXJyZW50IHZlcnNpb24nLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnVmVyc2lvbiBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIGFjdGlvbnMKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLAogICAgICAgICAgdG9vbHRpcDogJ1NldHRpbmdzJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ1NldHRpbmdzIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICBpZDogJ2hlbHAnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aGVscENpcmNsZScsCiAgICAgICAgICB0b29sdGlwOiAnSGVscCcsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdIZWxwIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gRGVtbyBjb250cm9sIGZ1bmN0aW9ucwogICAgICAgIGxldCB3aWRnZXRDb3VudGVyID0gMDsKICAgICAgICBsZXQgYWN0aW9uQ291bnRlciA9IDA7CgogICAgICAgIHdpbmRvdy5hZGRTdWNjZXNzV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnc3VjY2Vzcy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2tDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ1N1Y2Nlc3MgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICB0b29sdGlwOiAnU3VjY2VzcyB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRXYXJuaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWxlcnRUcmlhbmdsZScsCiAgICAgICAgICAgIGxhYmVsOiAnV2FybmluZyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdXYXJuaW5nIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEVycm9yV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnZXJyb3ItJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnhDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ0Vycm9yICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsCiAgICAgICAgICAgIHRvb2x0aXA6ICdFcnJvciB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdlcnJvci0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkTG9hZGluZ1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGNvbnN0IGlkID0gJ2xvYWRpbmctJyArIHdpZGdldENvdW50ZXI7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsb2FkZXIyJywKICAgICAgICAgICAgbGFiZWw6ICdMb2FkaW5nLi4uJywKICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJywKICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgICAgICAgdG9vbHRpcDogJ0xvYWRpbmcgaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgfSk7CgogICAgICAgICAgLy8gU2ltdWxhdGUgY29tcGxldGlvbiBhZnRlciAzIHNlY29uZHMKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICBib3R0b21iYXIudXBkYXRlV2lkZ2V0KGlkLCB7CiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2snLAogICAgICAgICAgICAgIGxhYmVsOiAnRG9uZSEnLAogICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIDMwMDApOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRSaWdodFdpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywKICAgICAgICAgICAgbGFiZWw6ICdSaWdodCAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRBY3Rpb24gPSAoKSA9PiB7CiAgICAgICAgICBhY3Rpb25Db3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgICAgaWQ6ICdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsCiAgICAgICAgICAgIHRvb2x0aXA6ICdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHsKICAgICAgICAgICAgICBhbGVydCgnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyICsgJyBjbGlja2VkJyk7CiAgICAgICAgICAgICAgYm90dG9tYmFyLnJlbW92ZUFjdGlvbignYWN0aW9uLScgKyBhY3Rpb25Db3VudGVyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5jbGVhckFsbCA9ICgpID0+IHsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhcldpZGdldHMoKTsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhckFjdGlvbnMoKTsKICAgICAgICAgIHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgICAgYWN0aW9uQ291bnRlciA9IDA7CiAgICAgICAgfTsKICAgICAgPFwvc2NyaXB0PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSkpLCJkZW1vRnVuYyIpfSk7dmFyIFBvdCxUUSxFSmEsSW90PWcoKCk9PntwZSgpO2h0KCk7R2EoKTtmcigpO1k5YSgpO1BvdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sVFE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEVKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtYXBwdWktYm90dG9tYmFyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aUJvdHRvbWJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxQb3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3aWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJ3aWRnZXRzImluIHYsImhhcyIpLGdldDppKHY9PnYud2lkZ2V0cywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LndpZGdldHM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLFBvdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+ImFjdGlvbnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5hY3Rpb25zLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuYWN0aW9ucz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksUG90KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89SzlhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9VFEodGhpcyxvLFtdKTtnZXQgd2lkZ2V0cygpe3JldHVybiB0aGlzLiNlfXNldCB3aWRnZXRzKGIpe3RoaXMuI2U9Yn0jdD0oVFEodGhpcyxsKSxUUSh0aGlzLGQsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiN0fXNldCBhY3Rpb25zKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBjb2xvcnMgbWF0Y2hpbmcgZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyICovCiAgICAgIC53aWRnZXQuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuc3VjY2VzcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGI9dGhpcy53aWRnZXRzLmZpbHRlcihmPT5mLnBvc2l0aW9uIT09InJpZ2h0Iikuc29ydCgoZix5KT0+KGYub3JkZXJ8fDApLSh5Lm9yZGVyfHwwKSksdj10aGlzLndpZGdldHMuZmlsdGVyKGY9PmYucG9zaXRpb249PT0icmlnaHQiKS5zb3J0KChmLHkpPT4oZi5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSx4PXRoaXMuYWN0aW9ucy5maWx0ZXIoZj0+Zi5wb3NpdGlvbj09PSJsZWZ0IiksbT10aGlzLmFjdGlvbnMuZmlsdGVyKGY9PmYucG9zaXRpb24hPT0ibGVmdCIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIExlZnQgYWN0aW9ucyAtLT4KICAgICAgICAke3gubWFwKGY9PnRoaXMucmVuZGVyQWN0aW9uKGYpKX0KCiAgICAgICAgPCEtLSBMZWZ0IHdpZGdldHMgLS0+CiAgICAgICAgJHtiLm1hcCgoZix5KT0+d2AKICAgICAgICAgICR7eT4wfHx4Lmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5yZW5kZXJXaWRnZXQoZil9CiAgICAgICAgYCl9CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gUmlnaHQgd2lkZ2V0cyAtLT4KICAgICAgICAke3YubWFwKChmLHkpPT53YAogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChmKX0KICAgICAgICAgICR7eTx2Lmxlbmd0aC0xfHxtLmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICBgKX0KCiAgICAgICAgPCEtLSBSaWdodCBhY3Rpb25zIC0tPgogICAgICAgICR7bS5tYXAoZj0+dGhpcy5yZW5kZXJBY3Rpb24oZikpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KGIpe2xldCB2PWIuc3RhdHVzJiZiLnN0YXR1cyE9PSJpZGxlIj9iLnN0YXR1czoiIix4PWIuaWNvbk5hbWU/Yi5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/Yi5pY29uTmFtZTpgbHVjaWRlOiR7Yi5pY29uTmFtZX1gOiIiO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IndpZGdldCAke3Z9IgogICAgICAgIHRpdGxlPSIke2IudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT5iLm9uQ2xpY2s/LigpfQogICAgICAgIEBjb250ZXh0bWVudT0ke209PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUobSxiKX0KICAgICAgPgogICAgICAgICR7eD93YAogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke3h9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7Yi5sb2FkaW5nPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtiLmxhYmVsP3dgPHNwYW4+JHtiLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uKGIpe2xldCB2PWIuaWNvbk5hbWUuc3RhcnRzV2l0aCgibHVjaWRlOiIpP2IuaWNvbk5hbWU6YGx1Y2lkZToke2IuaWNvbk5hbWV9YDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7Yi5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICB0aXRsZT0iJHtiLnRvb2x0aXB8fCIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+IWIuZGlzYWJsZWQmJmIub25DbGljaz8uKCl9CiAgICAgID4KICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAuaWNvbj0ke3Z9CiAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoYix2KXtpZighdi5jb250ZXh0TWVudUl0ZW1zfHx2LmNvbnRleHRNZW51SXRlbXMubGVuZ3RoPT09MClyZXR1cm47Yi5wcmV2ZW50RGVmYXVsdCgpO2xldCB4PVtdO2ZvcihsZXQgbSBvZiB2LmNvbnRleHRNZW51SXRlbXMpbS5kaXZpZGVyP3gucHVzaCh7ZGl2aWRlcjohMH0pOngucHVzaCh7bmFtZTptLm5hbWUsaWNvbk5hbWU6bS5pY29uTmFtZSxhY3Rpb246aShhc3luYygpPT57YXdhaXQgbS5hY3Rpb24oKX0sImFjdGlvbiIpLGRpc2FibGVkOm0uZGlzYWJsZWR9KTthd2FpdCAkYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhiLHgpfWFkZFdpZGdldChiKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcih2PT52LmlkIT09Yi5pZCksdGhpcy53aWRnZXRzPVsuLi50aGlzLndpZGdldHMsYl19dXBkYXRlV2lkZ2V0KGIsdil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoeD0+eC5pZD09PWI/ey4uLngsLi4udn06eCl9cmVtb3ZlV2lkZ2V0KGIpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKHY9PnYuaWQhPT1iKX1nZXRXaWRnZXQoYil7cmV0dXJuIHRoaXMud2lkZ2V0cy5maW5kKHY9PnYuaWQ9PT1iKX1jbGVhcldpZGdldHMoKXt0aGlzLndpZGdldHM9W119YWRkQWN0aW9uKGIpe3RoaXMuYWN0aW9ucz10aGlzLmFjdGlvbnMuZmlsdGVyKHY9PnYuaWQhPT1iLmlkKSx0aGlzLmFjdGlvbnM9Wy4uLnRoaXMuYWN0aW9ucyxiXX1yZW1vdmVBY3Rpb24oYil7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIodj0+di5pZCE9PWIpfWNsZWFyQWN0aW9ucygpe3RoaXMuYWN0aW9ucz1bXX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVFEodGhpcyx1KX1zdGF0aWN7VFEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIFo5YT1nKCgpPT57SW90KCl9KTt2YXIgWDlhLFE5YT1nKCgpPT57cGUoKTtYOWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWJhY2tncm91bmQgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIG1hcmdpbjogMzJweCAwIDE2cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZTpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLTNjb2wgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NjhweCkgewogICAgICAgIC5ncmlkLTNjb2wgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tYmFja2dyb3VuZCI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RGVmYXVsdCBQYW5lbHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBhbmVsIENvbXBvbmVudCJ9IC5zdWJ0aXRsZT0keyJUaGUgZGVmYXVsdCBwYW5lbCB2YXJpYW50IHdpdGggc2hhZGNuLWluc3BpcmVkIHN0eWxpbmcifT4KICAgICAgICA8cD5UaGUgcGFuZWwgY29tcG9uZW50IGF1dG9tYXRpY2FsbHkgZm9sbG93cyB0aGUgdGhlbWUgYW5kIHByb3ZpZGVzIGNvbnNpc3RlbnQgc3R5bGluZyBmb3IgZ3JvdXBlZCBjb250ZW50LjwvcD4KICAgICAgICA8cD5JdCdzIHBlcmZlY3QgZm9yIGNyZWF0aW5nIHNlY3Rpb25zIGluIHlvdXIgYXBwbGljYXRpb24gd2l0aCBwcm9wZXIgc3BhY2luZyBhbmQgYm9yZGVycy48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBPdmVydmlldyJ9IC5zdWJ0aXRsZT0keyJLZXkgY2FwYWJpbGl0aWVzIn0+CiAgICAgICAgICA8cD5HcmlkIGxheW91dHMgd29yayBncmVhdCB3aXRoIHBhbmVscyBmb3IgY3JlYXRpbmcgZGFzaGJvYXJkcyBhbmQgZmVhdHVyZSBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGVhcm4gTW9yZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJRdWljayBBY3Rpb25zIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiB0YXNrcyJ9PgogICAgICAgICAgPHA+RWFjaCBwYW5lbCBtYWludGFpbnMgY29uc2lzdGVudCBzcGFjaW5nIGFuZCBzdHlsaW5nIGFjcm9zcyB5b3VyIGFwcGxpY2F0aW9uLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5HZXQgU3RhcnRlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFuZWwgVmFyaWFudHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRlZmF1bHQgVmFyaWFudCJ9IC52YXJpYW50PSR7ImRlZmF1bHQifT4KICAgICAgICA8cD5UaGUgZGVmYXVsdCB2YXJpYW50IGhhcyBhIHdoaXRlIGJhY2tncm91bmQsIHN1YnRsZSBib3JkZXIsIGFuZCBtaW5pbWFsIHNoYWRvdy4gSXQncyB0aGUgc3RhbmRhcmQgY2hvaWNlIGZvciBtb3N0IGNvbnRlbnQuPC9wPgogICAgICAgIDxwPlVzZSA8Y29kZT52YXJpYW50PSJkZWZhdWx0IjwvY29kZT4gb3Igb21pdCB0aGUgdmFyaWFudCBwcm9wZXJ0eS48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJPdXRsaW5lIFZhcmlhbnQifSAuc3VidGl0bGU9JHsiVHJhbnNwYXJlbnQgYmFja2dyb3VuZCB3aXRoIGJvcmRlciJ9IC52YXJpYW50PSR7Im91dGxpbmUifT4KICAgICAgICA8cD5UaGUgb3V0bGluZSB2YXJpYW50IHJlbW92ZXMgdGhlIGJhY2tncm91bmQgY29sb3IgYW5kIHNoYWRvdywga2VlcGluZyBvbmx5IHRoZSBib3JkZXIuPC9wPgogICAgICAgIDxwPlVzZSA8Y29kZT52YXJpYW50PSJvdXRsaW5lIjwvY29kZT4gZm9yIGEgbGlnaHRlciB2aXN1YWwgd2VpZ2h0LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikdob3N0IFZhcmlhbnQifSAuc3VidGl0bGU9JHsiTWluaW1hbCBzdHlsaW5nIGZvciBzdWJ0bGUgc2VjdGlvbnMifSAudmFyaWFudD0keyJnaG9zdCJ9PgogICAgICAgIDxwPlRoZSBnaG9zdCB2YXJpYW50IGhhcyBubyBib3JkZXIgb3IgYmFja2dyb3VuZCBieSBkZWZhdWx0LCBvbmx5IHNob3dpbmcgYSBzdWJ0bGUgYmFja2dyb3VuZCBvbiBob3Zlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Imdob3N0IjwvY29kZT4gZm9yIHRoZSBtb3N0IG1pbmltYWwgYXBwZWFyYW5jZS48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFuZWwgU2l6ZXM8L2gyPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC0zY29sIj4KICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU21hbGwgUGFuZWwifSAuc2l6ZT0keyJzbSJ9PgogICAgICAgICAgPHA+Q29tcGFjdCBwYWRkaW5nIGZvciBkZW5zZSBsYXlvdXRzLjwvcD4KICAgICAgICAgIDxwPlVzZSA8Y29kZT5zaXplPSJzbSI8L2NvZGU+PC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTWVkaXVtIFBhbmVsIn0gLnNpemU9JHsibWQifT4KICAgICAgICAgIDxwPkRlZmF1bHQgc2l6ZSB3aXRoIGJhbGFuY2VkIHNwYWNpbmcuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9Im1kIjwvY29kZT4gb3Igb21pdC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJMYXJnZSBQYW5lbCJ9IC5zaXplPSR7ImxnIn0+CiAgICAgICAgICA8cD5HZW5lcm91cyBwYWRkaW5nIGZvciBwcm9taW5lbnQgc2VjdGlvbnMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9ImxnIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29tcGxleCBFeGFtcGxlczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlBhbmVscyB3b3JrIGdyZWF0IGZvciBvcmdhbml6aW5nIGZvcm0gc2VjdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRGVzY3JpcHRpb24ifSAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93biAKICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3J5In0gCiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IldlYiBEZXZlbG9wbWVudCIsa2V5OiJ3ZWIifSx7b3B0aW9uOiJNb2JpbGUgQXBwIixrZXk6Im1vYmlsZSJ9LHtvcHRpb246IkRlc2t0b3AgU29mdHdhcmUiLGtleToiZGVza3RvcCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgUHJvamVjdDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbHMifSAuc3VidGl0bGU9JHsiUGFuZWxzIGNhbiBiZSBuZXN0ZWQgZm9yIGhpZXJhcmNoaWNhbCBvcmdhbml6YXRpb24ifT4KICAgICAgICA8cD5Zb3UgY2FuIG5lc3QgcGFuZWxzIHRvIGNyZWF0ZSBtb3JlIGNvbXBsZXggbGF5b3V0czo8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbCAxIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGEgbmVzdGVkIHBhbmVsIHdpdGggb3V0bGluZSB2YXJpYW50IGFuZCBzbWFsbCBzaXplLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbCAyIn0gLnZhcmlhbnQ9JHsiZ2hvc3QifSAuc2l6ZT0keyJzbSJ9PgogICAgICAgICAgPHA+VGhpcyBpcyBhbm90aGVyIG5lc3RlZCBwYW5lbCB3aXRoIGdob3N0IHZhcmlhbnQuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5VbnRpdGxlZCBQYW5lbHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+UGFuZWxzIHdvcmsgZ3JlYXQgZXZlbiB3aXRob3V0IGEgdGl0bGUgZm9yIHNpbXBsZSBjb250ZW50IGdyb3VwaW5nLjwvcD4KICAgICAgICA8cD5UaGV5IHByb3ZpZGUgdmlzdWFsIHNlcGFyYXRpb24gYW5kIGNvbnNpc3RlbnQgcGFkZGluZyB0aHJvdWdob3V0IHlvdXIgaW50ZXJmYWNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC52YXJpYW50PSR7Im91dGxpbmUifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPkN1c3RvbSBDb250ZW50PC9oND4KICAgICAgICAgIDxwPllvdSBjYW4gYWRkIHlvdXIgb3duIGhlYWRpbmdzIGFuZCBzdHJ1Y3R1cmUgd2l0aGluIHVudGl0bGVkIHBhbmVscy48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij5NaW5pbWFsIFN0eWxlPC9oND4KICAgICAgICAgIDxwPkdob3N0IHBhbmVscyB3aXRob3V0IHRpdGxlcyBjcmVhdGUgdmVyeSBzdWJ0bGUgY29udGVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFBKYSxJSmEsQW90LEQxZSxCYSxCZyxBSmEsTkphLEo5YSxSSmEsT0phLE5MbyxSTG8sRXI9ZygoKT0+e3BlKCk7UEphPSJHZWlzdCBTYW5zIixJSmE9IkludGVsIE9uZSBNb25vIixBb3Q9YCcke1BKYX0nLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCAnT3h5Z2VuJywgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmYCxEMWU9YCcke0lKYX0nLCAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgJ0ZpcmEgTW9ubycsICdEcm9pZCBTYW5zIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2VgLEJhPWFhKEFvdCksQmc9YWEoRDFlKSxBSmE9IkNhbCBTYW5zIixOSmE9YCcke0FKYX0nLCAke0FvdH1gLEo5YT1hYShOSmEpLFJKYT0iUm9ib3RvIFNsYWIiLE9KYT1gJyR7UkphfScsIEdlb3JnaWEsIHNlcmlmYCxOTG89YWEoT0phKSxSTG89YWEoYAogIGZvbnQtZmFtaWx5OiAke0FvdH07CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdjdjExJywgJ3RudW0nLCAnY3YwNScgMTsKYCl9KTt2YXIgZ3gseTIsRkphLHhvPWcoKCk9PntwZSgpO1E5YSgpO0VyKCk7aHQoKTtneD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0seTI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEZKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtcGFuZWwiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1BhbmVsIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7YXR0cmlidXRlOiExfSldLGd4KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InRpdGxlImluIF8sImhhcyIpLGdldDppKF89Pl8udGl0bGUsImdldCIpLHNldDppKChfLE8pPT57Xy50aXRsZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksZ3godGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic3VidGl0bGUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zdWJ0aXRsZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnN1YnRpdGxlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxneCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhcmlhbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InZhcmlhbnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy52YXJpYW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udmFyaWFudD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksZ3godGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaXplImluIF8sImhhcyIpLGdldDppKF89Pl8uc2l6ZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNpemU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLGd4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InJ1bkFmdGVyUmVuZGVyImluIF8sImhhcyIpLGdldDppKF89Pl8ucnVuQWZ0ZXJSZW5kZXIsImdldCIpLHNldDppKChfLE8pPT57Xy5ydW5BZnRlclJlbmRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksZ3gobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1YOWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT15Mih0aGlzLG8sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShDKXt0aGlzLiNlPUN9I3Q9KHkyKHRoaXMsbCkseTIodGhpcyxkLCIiKSk7Z2V0IHN1YnRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHN1YnRpdGxlKEMpe3RoaXMuI3Q9Q30jYT0oeTIodGhpcyx1KSx5Mih0aGlzLGIsImRlZmF1bHQiKSk7Z2V0IHZhcmlhbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFyaWFudChDKXt0aGlzLiNhPUN9I3M9KHkyKHRoaXMsdikseTIodGhpcyxtLCJtZCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNzfXNldCBzaXplKEMpe3RoaXMuI3M9Q30jaT0oeTIodGhpcyxmKSx5Mih0aGlzLE0sdm9pZCAwKSk7Z2V0IHJ1bkFmdGVyUmVuZGVyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHJ1bkFmdGVyUmVuZGVyKEMpe3RoaXMuI2k9Q31zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXSkgewogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIGhzbCgwIDAlIDAlIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IG91dGxpbmUgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBUaXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgbWFyZ2luOiA0cHggMCAwIDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA4NC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgfQoKICAgICAgLyogUmVtb3ZlIG1hcmdpbnMgZnJvbSBmaXJzdCBhbmQgbGFzdCBjaGlsZHJlbiAqLwogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGRlZmF1bHQgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIG91dGxpbmUgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgNy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZ2hvc3QgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlcyAqLwogICAgICA6aG9zdCg6Zm9jdXMtd2l0aGluKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBOZXN0ZWQgcGFuZWxzIHNwYWNpbmcgKi8KICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWwpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICR7dGhpcy50aXRsZT93YDxoMyBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2gzPmA6IiJ9CiAgICAgICAgJHt0aGlzLnN1YnRpdGxlP3dgPHAgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9wPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJ1bkFmdGVyUmVuZGVyJiZhd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx5Mih0aGlzLHopfXN0YXRpY3t5MihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgZWJhLE5vdCx0YmEsYWJhPWcoKCk9PntwZSgpO0l0KCk7eG8oKTtOb3Q9aShzPT5BcnJheS5mcm9tKHtsZW5ndGg6c30sKGUsdCk9Pih7aWQ6dCx1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKSxsYWJlbDpgJHt0fWB9KSksImdlbmVyYXRlQ3B1Q29yZXMiKSx0YmE9aSgoKT0+dyhlYmF8fChlYmE9YmMoW2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgYCxgCiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImFjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiBgLCI7IGJvcmRlci1yYWRpdXM6IDZweDsgZm9udC1zaXplOiAxNHB4OyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogIixgOyI+CiAgICAgICAgICA8ZW0+Q2xpY2sgb24gdGlsZSBhY3Rpb25zIG9yIGdyaWQgYWN0aW9ucyB0byBzZWUgdGhlIHJlc3VsdC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5Db25maWd1cmF0aW9uIE9wdGlvbnM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICBFYWNoIHRpbGUgdHlwZSBzdXBwb3J0cyBkaWZmZXJlbnQgcHJvcGVydGllczoKICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TnVtYmVyOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkdhdWdlOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgZ2F1Z2VPcHRpb25zIChtaW4sIG1heCwgdGhyZXNob2xkcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+UGVyY2VudGFnZTo8L3N0cm9uZz4gdmFsdWUgKDAtMTAwKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRyZW5kOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgdHJlbmREYXRhIGFycmF5LCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UZXh0Ojwvc3Ryb25nPiB2YWx1ZSAoc3RyaW5nKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPkNvbXBhY3QgTGF5b3V0ICgxODBweCB0aWxlcyk8L2g0PgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDI0cHggMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPlNwYWNpb3VzIExheW91dCAoMzIwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICBpZD0iY3B1LWNvcmVzLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPmAsYDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb25maWciPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPlBhcnRpdGlvbiBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS51c2VkOjwvc3Ryb25nPiBVc2VkIHNwYWNlIGluIGJ5dGVzIChhdXRvLWZvcm1hdHRlZCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS50b3RhbDo8L3N0cm9uZz4gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5maWxlc3lzdGVtOjwvc3Ryb25nPiBGaWxlc3lzdGVtIHR5cGUgKGV4dDQsIHhmcywgbnRmcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5tb3VudFBvaW50Ojwvc3Ryb25nPiBNb3VudCBwb2ludCBwYXRoIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgQ29sb3IgdGhyZXNob2xkczogTm9ybWFsICgmbHQ7NzUlKSwgV2FybmluZyAoNzUtOTAlKSwgQ3JpdGljYWwgKCZndDs5MCUpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+RGlzayBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuY2FwYWNpdHk6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLm1vZGVsOjwvc3Ryb25nPiBEaXNrIG1vZGVsIG5hbWUgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS50eXBlOjwvc3Ryb25nPiBEaXNrIHR5cGU6ICdzc2QnLCAnaGRkJywgb3IgJ252bWUnPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmlvcHM6PC9zdHJvbmc+IFJlYWQvd3JpdGUgSU9QUyAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmhlYWx0aDo8L3N0cm9uZz4gSGVhbHRoIHBlcmNlbnRhZ2UgMC0xMDAgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICBIZWFsdGggdGhyZXNob2xkczogR29vZCAoNzAtMTAwJSksIFdhcm5pbmcgKDMwLTcwJSksIENyaXRpY2FsICgmbHQ7MzAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAvLyBDbGVhbnVwIGxpdmUgdXBkYXRlcyBvbiBwYWdlIHVubG9hZAogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgKCkgPT4gewogICAgICAgIGlmICgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKSB7CiAgICAgICAgICBjbGVhckludGVydmFsKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpOwogICAgICAgIH0KICAgICAgfSk7CiAgICA8XC9zY3JpcHQ+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSksSmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpbGUtY29uZmlnIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctc2VjdGlvbiB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29kZS1ibG9jayB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgICB9CiAgICAgIGAsIjEuIENvbXByZWhlbnNpdmUgRGFzaGJvYXJkIiwiRnVsbC1mZWF0dXJlZCBzdGF0cyBncmlkIHdpdGggdmFyaW91cyB0aWxlIHR5cGVzLCBhY3Rpb25zLCBhbmQgTHVjaWRlIGljb25zIixbe2lkOiJyZXZlbnVlIix0aXRsZToiVG90YWwgUmV2ZW51ZSIsdmFsdWU6MTI1NDIwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmRvbGxhci1zaWduIixkZXNjcmlwdGlvbjoiKzEyLjUlIGZyb20gbGFzdCBtb250aCIsYWN0aW9uczpbe25hbWU6IlZpZXcgRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTp0cmVuZGluZy11cCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9IlZpZXdpbmcgcmV2ZW51ZSBkZXRhaWxzOiAkMTI1LDQyMCAoKzEyLjUlKSIpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQgRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9IkV4cG9ydGluZyByZXZlbnVlIGRhdGEgdG8gQ1NWLi4uIil9LCJhY3Rpb24iKX1dfSx7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZTozODQ3LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIixkZXNjcmlwdGlvbjoiMzI0IG5ldyB0aGlzIHdlZWsiLGFjdGlvbnM6W3tuYW1lOiJWaWV3IFVzZXIgTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD0iT3BlbmluZyB1c2VyIGxpc3QuLi4iKX0sImFjdGlvbiIpfV19LHtpZDoiY3B1Iix0aXRsZToiQ1BVIFVzYWdlIix2YWx1ZTo3Myx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoic3RvcmFnZSIsdGl0bGU6IlN0b3JhZ2UgVXNlZCIsdmFsdWU6NjUsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRlc2NyaXB0aW9uOiI2NTAgR0Igb2YgMSBUQiJ9LHtpZDoibGF0ZW5jeSIsdGl0bGU6IlJlc3BvbnNlIFRpbWUiLHZhbHVlOjE0Mix1bml0OiJtcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsdHJlbmREYXRhOlsxNTAsMTQ1LDE0OCwxNDIsMTM4LDE0MCwxMzUsMTQ1LDE0Ml0sZGVzY3JpcHRpb246IlA5NSJ9LHtpZDoidXB0aW1lIix0aXRsZToiU3lzdGVtIFVwdGltZSIsdmFsdWU6Ijk5Ljk1JSIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmNoZWNrLWNpcmNsZSIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMifV0sW3tuYW1lOiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLXN0YXRzZ3JpZCIpO3MmJihzLnN0eWxlLm9wYWNpdHk9IjAuNSIsc2V0VGltZW91dCgoKT0+e3Muc3R5bGUub3BhY2l0eT0iMSJ9LDMwMCkpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQiLGljb25OYW1lOiJsdWNpZGU6c2hhcmUiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3MmJihzLnRleHRDb250ZW50PSJFeHBvcnRpbmcgZGFzaGJvYXJkIHJlcG9ydC4uLiIpfSwiYWN0aW9uIil9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9Ik9wZW5pbmcgZGFzaGJvYXJkIHNldHRpbmdzLi4uIil9LCJhY3Rpb24iKX1dLDI1MCwxNixoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIiksaC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpLCIyLiBUaWxlIFR5cGVzIiwiRGlmZmVyZW50IHZpc3VhbGl6YXRpb24gdHlwZXMgYXZhaWxhYmxlIGluIHRoZSBzdGF0cyBncmlkIixbe2lkOiJudW1iZXItZXhhbXBsZSIsdGl0bGU6Ik51bWJlciBUaWxlIix2YWx1ZTo0MjE5NSx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpoYXNoIixkZXNjcmlwdGlvbjoiU2ltcGxlIG51bWVyaWMgZGlzcGxheSJ9LHtpZDoiZ2F1Z2UtZXhhbXBsZSIsdGl0bGU6IkdhdWdlIFRpbGUiLHZhbHVlOjY4LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Z2F1Z2UiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo1MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6InBlcmNlbnRhZ2UtZXhhbXBsZSIsdGl0bGU6IlBlcmNlbnRhZ2UgVGlsZSIsdmFsdWU6NzgsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnBlcmNlbnQiLGRlc2NyaXB0aW9uOiJQcm9ncmVzcyBiYXIgdmlzdWFsaXphdGlvbiJ9LHtpZDoidHJlbmQtZXhhbXBsZSIsdGl0bGU6IlRyZW5kIFRpbGUiLHZhbHVlOjg5Mix1bml0OiJvcHMvcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTp0cmVuZGluZy11cCIsdHJlbmREYXRhOls3MjAsNzUwLDc4MCw3OTUsODEwLDgzNSw4NTAsODY1LDg4MCw4OTJdLGRlc2NyaXB0aW9uOiJhdmcifSx7aWQ6InRleHQtZXhhbXBsZSIsdGl0bGU6IlRleHQgVGlsZSIsdmFsdWU6Ik9wZXJhdGlvbmFsIix0eXBlOiJ0ZXh0IixpY29uOiJsdWNpZGU6aW5mbyIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGRlc2NyaXB0aW9uOiJTdGF0dXMgZGlzcGxheSJ9XSwyODAsMTYsIjMuIEdyaWQgQ29uZmlndXJhdGlvbnMiLCJEaWZmZXJlbnQgbGF5b3V0IG9wdGlvbnMgYW5kIHJlc3BvbnNpdmUgYmVoYXZpb3IiLFt7aWQ6IjEiLHRpdGxlOiJPcmRlcnMiLHZhbHVlOjE1Nix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzaG9wcGluZy1jYXJ0In0se2lkOiIyIix0aXRsZToiUmV2ZW51ZSIsdmFsdWU6ODQyMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpkb2xsYXItc2lnbiJ9LHtpZDoiMyIsdGl0bGU6IlVzZXJzIix2YWx1ZTo0MjMsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMifSx7aWQ6IjQiLHRpdGxlOiJHcm93dGgiLHZhbHVlOjEyLjUsdW5pdDoiJSIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dHJlbmRpbmctdXAiLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn1dLDE4MCwxMixbe2lkOiJzcGFjaW91czEiLHRpdGxlOiJNb250aGx5IFJldmVudWUiLHZhbHVlOjE4NDUwMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjcmVkaXQtY2FyZCIsZGVzY3JpcHRpb246IlRvdGFsIHJldmVudWUgdGhpcyBtb250aCJ9LHtpZDoic3BhY2lvdXMyIix0aXRsZToiQ3VzdG9tZXIgU2F0aXNmYWN0aW9uIix2YWx1ZTo5NCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6c21pbGUiLGRlc2NyaXB0aW9uOiJCYXNlZCBvbiAxLDIzNCByZXZpZXdzIn0se2lkOiJzcGFjaW91czMiLHRpdGxlOiJTZXJ2ZXIgUmVzcG9uc2UiLHZhbHVlOjk4LHVuaXQ6Im1zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnNlcnZlciIsdHJlbmREYXRhOlsxMDUsMTAyLDEwMCw5OSw5OCw5OCw5Nyw5OF0sZGVzY3JpcHRpb246ImF2ZyByZXNwb25zZSB0aW1lIn1dLDMyMCwyMCwiNC4gQ1BVIENvcmVzIFZpc3VhbGl6YXRpb24iLCJWZXJ0aWNhbCBiYXIgdmlzdWFsaXphdGlvbiBmb3IgbXVsdGktY29yZSBDUFUgdXNhZ2Ugd2l0aCBjb2x1bW4gc3Bhbm5pbmciLFt7aWQ6ImNwdS1jb3Jlcy04Iix0aXRsZToiQ1BVIENvcmVzICg4LWNvcmUpIix2YWx1ZTowLHR5cGU6ImNwdUNvcmVzIixpY29uOiJsdWNpZGU6Y3B1Iixjb2x1bW5TcGFuOjIsY29yZXNEYXRhOk5vdCg4KSxkZXNjcmlwdGlvbjoiSW50ZWwgaTcgLSA4IGNvcmVzIn0se2lkOiJtZW1vcnkiLHRpdGxlOiJNZW1vcnkgVXNhZ2UiLHZhbHVlOjY4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpkYXRhYmFzZSIsZGVzY3JpcHRpb246IjEzLjYgR0Igb2YgMjAgR0IifSx7aWQ6ImNwdS1jb3Jlcy0xNiIsdGl0bGU6IkNQVSBDb3JlcyAoMTYtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6Tm90KDE2KSxkZXNjcmlwdGlvbjoiQU1EIFJ5emVuIDkgLSAxNiBjb3JlcyJ9LHtpZDoibmV0d29yayIsdGl0bGU6Ik5ldHdvcmsgSS9PIix2YWx1ZToyNDUsdW5pdDoiTUIvcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTpuZXR3b3JrIix0cmVuZERhdGE6WzIwMCwyMjAsMjM1LDI0MCwyMzgsMjQ1XSxkZXNjcmlwdGlvbjoidGhyb3VnaHB1dCJ9LHtpZDoiY3B1LWNvcmVzLTMyIix0aXRsZToiU2VydmVyIENQVSAoMzItY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLGNvbHVtblNwYW46Myxjb3Jlc0RhdGE6Tm90KDMyKSxkZXNjcmlwdGlvbjoiQU1EIEVQWUMgLSAzMiBjb3JlcyJ9LHtpZDoiZGlzayIsdGl0bGU6IkRpc2sgVXNhZ2UiLHZhbHVlOjQyLHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkZXNjcmlwdGlvbjoiNDIwIEdCIG9mIDEgVEIifV0sW3tuYW1lOiJSYW5kb21pemUiLGljb25OYW1lOiJsdWNpZGU6c2h1ZmZsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjcHUtY29yZXMtZ3JpZCIpO2lmKCFzKXJldHVybjtsZXQgZT1zLnRpbGVzLm1hcCh0PT50LnR5cGU9PT0iY3B1Q29yZXMiJiZ0LmNvcmVzRGF0YT97Li4udCxjb3Jlc0RhdGE6dC5jb3Jlc0RhdGEubWFwKGE9Pih7Li4uYSx1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKX0pKX06dCk7cy50aWxlcz1lfSwiYWN0aW9uIil9XSwyNTAsMTYsIjUuIEludGVyYWN0aXZlIEZlYXR1cmVzIiwiVGlsZXMgd2l0aCBhY3Rpb25zIGFuZCByZWFsLXRpbWUgdXBkYXRlcyIsW3tpZDoibGl2ZS1jcHUiLHRpdGxlOiJMaXZlIENQVSIsdmFsdWU6NDUsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpjcHUiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo2MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6ImxpdmUtcmVxdWVzdHMiLHRpdGxlOiJSZXF1ZXN0cy9zZWMiLHZhbHVlOjg5Mix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5Iix0cmVuZERhdGE6Wzg1MCw4NjAsODcwLDg4MCw4ODUsODkwLDg5Ml19LHtpZDoibGl2ZS1tZW1vcnkiLHRpdGxlOiJNZW1vcnkgVXNhZ2UiLHZhbHVlOjYyLHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpkYXRhYmFzZSJ9LHtpZDoiY291bnRlciIsdGl0bGU6IkV2ZW50IENvdW50ZXIiLHZhbHVlOjAsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6emFwIixhY3Rpb25zOlt7bmFtZToiSW5jcmVtZW50IixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFzKXJldHVybjtsZXQgZT1zLnRpbGVzLmZpbmQodD0+dC5pZD09PSJjb3VudGVyIik7ZS52YWx1ZT10eXBlb2YgZS52YWx1ZT09Im51bWJlciI/ZS52YWx1ZSsxOjEscy50aWxlcz1bLi4ucy50aWxlc119LCJhY3Rpb24iKX0se25hbWU6IlJlc2V0IixpY29uTmFtZToibHVjaWRlOnJvdGF0ZS1jY3ciLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFzKXJldHVybjtsZXQgZT1zLnRpbGVzLmZpbmQodD0+dC5pZD09PSJjb3VudGVyIik7ZS52YWx1ZT0wLHMudGlsZXM9Wy4uLnMudGlsZXNdfSwiYWN0aW9uIil9XX1dLFt7bmFtZToiU3RhcnQgTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnBsYXkiLGFjdGlvbjppKGFzeW5jIGZ1bmN0aW9uKCl7d2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD8oY2xlYXJJbnRlcnZhbCh3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsKSx3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPW51bGwsdGhpcy5uYW1lPSJTdGFydCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwbGF5Iik6KHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKHMpe2xldCBlPVsuLi5zLnRpbGVzXSx0PWUuZmluZChvPT5vLmlkPT09ImxpdmUtY3B1Iik7dC52YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCx0LnZhbHVlKyhNYXRoLnJhbmRvbSgpKjIwLTEwKSkpO2xldCBhPWUuZmluZChvPT5vLmlkPT09ImxpdmUtcmVxdWVzdHMiKSxyPWEudmFsdWUrTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjUwLTI1KTthLnZhbHVlPU1hdGgubWF4KDgwMCxyKSxhLnRyZW5kRGF0YT1bLi4uYS50cmVuZERhdGEuc2xpY2UoMSksYS52YWx1ZV07bGV0IG49ZS5maW5kKG89Pm8uaWQ9PT0ibGl2ZS1tZW1vcnkiKTtuLnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLG4udmFsdWUrKE1hdGgucmFuZG9tKCkqMTAtNSkpKSxzLnRpbGVzPWV9fSwxZTMpLHRoaXMubmFtZT0iU3RvcCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwYXVzZSIpfSwiYWN0aW9uIil9XSwyNTAsMTYsIjYuIENvZGUgRXhhbXBsZSIsIkhvdyB0byBpbXBsZW1lbnQgYSBzdGF0cyBncmlkIHdpdGggVHlwZVNjcmlwdCIsYGNvbnN0IHRpbGVzOiBJU3RhdHNUaWxlW10gPSBbCiAgewogICAgaWQ6ICdyZXZlbnVlJywKICAgIHRpdGxlOiAnVG90YWwgUmV2ZW51ZScsCiAgICB2YWx1ZTogMTI1NDIwLAogICAgdW5pdDogJyQnLAogICAgdHlwZTogJ251bWJlcicsCiAgICBpY29uOiAnbHVjaWRlOmRvbGxhci1zaWduJywKICAgIGRlc2NyaXB0aW9uOiAnKzEyLjUlIGZyb20gbGFzdCBtb250aCcsCiAgICBhY3Rpb25zOiBbCiAgICAgIHsKICAgICAgICBuYW1lOiAnVmlldyBEZXRhaWxzJywKICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp0cmVuZGluZy11cCcsCiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7CiAgICAgICAgICBjb25zb2xlLmxvZygnVmlldyByZXZlbnVlIGRldGFpbHMnKTsKICAgICAgICB9CiAgICAgIH0KICAgIF0KICB9LAogIHsKICAgIGlkOiAnY3B1JywKICAgIHRpdGxlOiAnQ1BVIFVzYWdlJywKICAgIHZhbHVlOiA3MywKICAgIHVuaXQ6ICclJywKICAgIHR5cGU6ICdnYXVnZScsCiAgICBpY29uOiAnbHVjaWRlOmNwdScsCiAgICBnYXVnZU9wdGlvbnM6IHsKICAgICAgbWluOiAwLAogICAgICBtYXg6IDEwMCwKICAgICAgdGhyZXNob2xkczogWwogICAgICAgIHsgdmFsdWU6IDAsIGNvbG9yOiAnaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKScgfSwKICAgICAgICB7IHZhbHVlOiA2MCwgY29sb3I6ICdoc2woNDUuNCA5My40JSA0Ny41JSknIH0sCiAgICAgICAgeyB2YWx1ZTogODAsIGNvbG9yOiAnaHNsKDAgODQuMiUgNjAuMiUpJyB9CiAgICAgIF0KICAgIH0KICB9Cl07CgovLyBSZW5kZXIgdGhlIHN0YXRzIGdyaWQKaHRtbFxgCiAgPGRlZXMtc3RhdHNncmlkCiAgICAudGlsZXM9XCR7dGlsZXN9CiAgICAubWluVGlsZVdpZHRoPVwkezI1MH0KICAgIC5nYXA9XCR7MTZ9CiAgICAuZ3JpZEFjdGlvbnM9XCR7WwogICAgICB7CiAgICAgICAgbmFtZTogJ1JlZnJlc2gnLAogICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnJlZnJlc2gtY3cnLAogICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1JlZnJlc2gnKQogICAgICB9CiAgICBdfQogID48L2RlZXMtc3RhdHNncmlkPgpcYDtgLCI3LiBEaXNrICYgU3RvcmFnZSBUaWxlcyIsIlBhcnRpdGlvbiBhbmQgcGh5c2ljYWwgZGlzayB2aXN1YWxpemF0aW9uIHRpbGVzIixbe2lkOiJyb290LXBhcnRpdGlvbiIsdGl0bGU6IlJvb3QgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmZvbGRlci1yb290IixwYXJ0aXRpb25EYXRhOnt1c2VkOjY5ODM0MTQyNTE1Mix0b3RhbDoxMDczNzQxODI0ZTMsZmlsZXN5c3RlbToiZXh0NCIsbW91bnRQb2ludDoiLyJ9fSx7aWQ6ImhvbWUtcGFydGl0aW9uIix0aXRsZToiSG9tZSBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6aG9tZSIscGFydGl0aW9uRGF0YTp7dXNlZDoyMTQ3NDgzNjQ4MDAsdG90YWw6NTM2ODcwOTEyZTMsZmlsZXN5c3RlbToiZXh0NCIsbW91bnRQb2ludDoiL2hvbWUifX0se2lkOiJkYXRhLXBhcnRpdGlvbiIsdGl0bGU6IkRhdGEgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIixwYXJ0aXRpb25EYXRhOnt1c2VkOjE5MzI3MzUyODMyMDAsdG90YWw6MjE0NzQ4MzY0OGUzLGZpbGVzeXN0ZW06InhmcyIsbW91bnRQb2ludDoiL2RhdGEifX0se2lkOiJudm1lLXNzZCIsdGl0bGU6IlByaW1hcnkgTlZNZSIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsY29sdW1uU3BhbjoyLGRpc2tEYXRhOntjYXBhY2l0eToyZTEyLG1vZGVsOiJTYW1zdW5nIDk5MCBQcm8iLHR5cGU6Im52bWUiLGlvcHM6e3JlYWQ6NzQ1MCx3cml0ZTo2OTAwfSxoZWFsdGg6OTh9fSx7aWQ6InNhdGEtc3NkIix0aXRsZToiU2Vjb25kYXJ5IFNTRCIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGlza0RhdGE6e2NhcGFjaXR5OjFlMTIsbW9kZWw6IkNydWNpYWwgTVg1MDAiLHR5cGU6InNzZCIsaW9wczp7cmVhZDo1NjAsd3JpdGU6NTEwfSxoZWFsdGg6ODV9fSx7aWQ6ImhkZC1zdG9yYWdlIix0aXRsZToiQmFja3VwIEhERCIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6YXJjaGl2ZSIsZGlza0RhdGE6e2NhcGFjaXR5OjhlMTIsbW9kZWw6IlNlYWdhdGUgSXJvbldvbGYiLHR5cGU6ImhkZCIsaW9wczp7cmVhZDoyMTAsd3JpdGU6MTk1fSxoZWFsdGg6NDJ9fV0sMjgwLDE2KSwiZGVtb0Z1bmMiKX0pO3ZhciBzNCxmbixCdCxFaT1nKCgpPT57cGUoKTtrdCgpO3M0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQnQ9KCgpPT57bGV0IHM9d2UsZSx0PVtdLGE9W10scixuPVtdLG89W10sbCxwPVtdLGQ9W10sdSxjPVtdLGI9W10sdix4PVtdLG09W10sZix5PVtdLE09W10seixOPVtdLEM9W10sXyxPPVtdLCQ9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRCYXNlIil9c3RhdGlje2xldCBIPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W0woe3R5cGU6U3RyaW5nfSldLHI9W0woe3R5cGU6U3RyaW5nfSldLGw9W0woe3R5cGU6U3RyaW5nfSldLHU9W0woe3R5cGU6U3RyaW5nfSldLHY9W0woe3R5cGU6Qm9vbGVhbn0pXSxmPVtMKHt0eXBlOkJvb2xlYW59KV0sej1bTCh7dHlwZTpTdHJpbmd9KV0sXz1bTCh7dHlwZTpTdHJpbmd9KV0sczQodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYXlvdXRNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJsYXlvdXRNb2RlImluIGssImhhcyIpLGdldDppKGs9PmsubGF5b3V0TW9kZSwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLmxheW91dE1vZGU9U30sInNldCIpfSxtZXRhZGF0YTpIfSx0LGEpLHM0KHRoaXMsbnVsbCxyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWxQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4ibGFiZWxQb3NpdGlvbiJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLmxhYmVsUG9zaXRpb24sImdldCIpLHNldDppKChrLFMpPT57ay5sYWJlbFBvc2l0aW9uPVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0sbixvKSxzNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4ia2V5ImluIGssImhhcyIpLGdldDppKGs9Pmsua2V5LCJnZXQiKSxzZXQ6aSgoayxTKT0+e2sua2V5PVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0scCxkKSxzNCh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJsYWJlbCJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLmxhYmVsLCJnZXQiKSxzZXQ6aSgoayxTKT0+e2subGFiZWw9U30sInNldCIpfSxtZXRhZGF0YTpIfSxjLGIpLHM0KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+InJlcXVpcmVkImluIGssImhhcyIpLGdldDppKGs9PmsucmVxdWlyZWQsImdldCIpLHNldDppKChrLFMpPT57ay5yZXF1aXJlZD1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LHgsbSksczQodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4iZGlzYWJsZWQiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5kaXNhYmxlZCwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLmRpc2FibGVkPVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0seSxNKSxzNCh0aGlzLG51bGwseix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluZm9UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJpbmZvVGV4dCJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLmluZm9UZXh0LCJnZXQiKSxzZXQ6aSgoayxTKT0+e2suaW5mb1RleHQ9U30sInNldCIpfSxtZXRhZGF0YTpIfSxOLEMpLHM0KHRoaXMsbnVsbCxfLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImRlc2NyaXB0aW9uImluIGssImhhcyIpLGdldDppKGs9PmsuZGVzY3JpcHRpb24sImdldCIpLHNldDppKChrLFMpPT57ay5kZXNjcmlwdGlvbj1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LE8sJCksSCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpIfSl9I2U9Zm4odGhpcyx0LCJhdXRvIik7Z2V0IGxheW91dE1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGF5b3V0TW9kZShIKXt0aGlzLiNlPUh9I3Q9KGZuKHRoaXMsYSksZm4odGhpcyxuLCJ0b3AiKSk7Z2V0IGxhYmVsUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFiZWxQb3NpdGlvbihIKXt0aGlzLiN0PUh9I2E9KGZuKHRoaXMsbyksZm4odGhpcyxwLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQga2V5KEgpe3RoaXMuI2E9SH0jcz0oZm4odGhpcyxkKSxmbih0aGlzLGMsdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxhYmVsKEgpe3RoaXMuI3M9SH0jaT0oZm4odGhpcyxiKSxmbih0aGlzLHgsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcmVxdWlyZWQoSCl7dGhpcy4jaT1IfSNyPShmbih0aGlzLG0pLGZuKHRoaXMseSwhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNyfXNldCBkaXNhYmxlZChIKXt0aGlzLiNyPUh9I289KGZuKHRoaXMsTSksZm4odGhpcyxOLHZvaWQgMCkpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiNvfXNldCBpbmZvVGV4dChIKXt0aGlzLiNvPUh9I249KGZuKHRoaXMsQyksZm4odGhpcyxPLHZvaWQgMCkpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiNufXNldCBkZXNjcmlwdGlvbihIKXt0aGlzLiNuPUh9c3RhdGljIGdldCBiYXNlU3R5bGVzKCl7cmV0dXJuW0pgCiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBmb3IgY29uc2lzdGVudCBzcGFjaW5nICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdDogOHB4OwogICAgICAgICAgLS1kZWVzLWlucHV0LWxhYmVsLWdhcDogdmFyKC0tZGVlcy1pbnB1dC1zcGFjaW5nLXVuaXQpOyAvKiA4cHggKi8KICAgICAgICB9CgogICAgICAgIC8qIERlZmF1bHQgYmxvY2sgZGlzcGxheSB3aXRoIG5vIG1hcmdpbnMgLSBzcGFjaW5nIGlzIGNvbnRhaW5lci1kcml2ZW4gKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICB9CgogICAgICAgIC8qIEhvcml6b250YWwgbGF5b3V0IG1vZGUgLSBhY3RpdmF0ZWQgYnkgYXR0cmlidXRlICovCiAgICAgICAgOmhvc3QoW2xheW91dC1tb2RlPSJob3Jpem9udGFsIl0pIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB9CgogICAgICAgIC8qIExhYmVsIHBvc2l0aW9uIHZhcmlhdGlvbnMgKi8KICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249ImxlZnQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InJpZ2h0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvOwogICAgICAgICAgZ2FwOiB2YXIoLS1kZWVzLWlucHV0LWxhYmVsLWdhcCk7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249Im5vbmUiXSkgZGVlcy1sYWJlbCB7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLyogRGVzY3JpcHRpb24gdGV4dCBiZWxvdyBpbnB1dCAqLwogICAgICAgIC5kZXNjcmlwdGlvblRleHQgewogICAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIH0KICAgICAgYF19Y2hhbmdlU3ViamVjdD0oZm4odGhpcywkKSxuZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3QpO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRldGVjdExheW91dE1vZGUoKX1kZXRlY3RMYXlvdXRNb2RlKCl7aWYodGhpcy5sYXlvdXRNb2RlIT09ImF1dG8iKXt0aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLHRoaXMubGF5b3V0TW9kZSk7cmV0dXJufWxldCBIPXRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIik7SCYmSC5oYXNBdHRyaWJ1dGUoImhvcml6b250YWwtbGF5b3V0Iik/dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwiaG9yaXpvbnRhbCIpOnRoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsInZlcnRpY2FsIil9dXBkYXRlZChIKXtzdXBlci51cGRhdGVkKEgpLEguaGFzKCJsYXlvdXRNb2RlIikmJnRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpLEguaGFzKCJsYWJlbFBvc2l0aW9uIikmJnRoaXMuc2V0QXR0cmlidXRlKCJsYWJlbC1wb3NpdGlvbiIsdGhpcy5sYWJlbFBvc2l0aW9uKX1hc3luYyBmcmVlemUoKXt0aGlzLmRpc2FibGVkPSEwfWFzeW5jIHVuZnJlZXplKCl7dGhpcy5kaXNhYmxlZD0hMX1yZW5kZXJEZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmRlc2NyaXB0aW9uP3dgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb25UZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn19fSkoKX0pO3ZhciBzYmEsaWJhPWcoKCk9PntwZSgpO0l0KCk7eG8oKTtIZygpO3NiYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtY2hlY2tib3giKSx0PXMucXVlcnlTZWxlY3RvcigiI3NlbGVjdC1hbGwtYnRuIiksYT1zLnF1ZXJ5U2VsZWN0b3IoIiNjbGVhci1hbGwtYnRuIik7dCYmYSYmKHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKHI9Pnshci5kaXNhYmxlZCYmci5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKHIudmFsdWU9ITApfSl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZm9yRWFjaChyPT57IXIuZGlzYWJsZWQmJnIua2V5Py5zdGFydHNXaXRoKCJmZWF0dXJlIikmJihyLnZhbHVlPSExKX0pfSkpfX0+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsidGVybXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJuZXdzbGV0dGVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIGVtYWlsIHVwZGF0ZXMgYWJvdXQgeW91ciBhY2NvdW50In0KICAgICAgICAgICAgLmtleT0keyJub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDaGVja2JveCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGNoZWNrYm94IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkNoZWNrZWQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIHVuY2hlY2tlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGNoZWNrZWQifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBjaGVja2JveCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7InJlcXVpcmVkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJDaGVja2JveGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWNoZWNrYm94ZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25BIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBCIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkIifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gRCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25EIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBTZWxlY3Rpb24gRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDb21tb24gdXNlIGNhc2UgZm9yIGZlYXR1cmUgdG9nZ2xlcyB3aXRoIGJhdGNoIG9wZXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJzZWxlY3QtYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5TZWxlY3QgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0iY2xlYXItYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5DbGVhciBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbGlzdCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJEYXJrIE1vZGUgU3VwcG9ydCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiQVBJIEFjY2VzcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlNCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcml2YWN5IFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2hlY2tib3hlcyBpbiBhIHR5cGljYWwgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHJpdmFjeSBQcmVmZXJlbmNlczwvaDQ+CgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiU2hhcmUgYW5hbHl0aWNzIGRhdGEifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJQZXJzb25hbGl6ZWQgcmVjb21tZW5kYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiR2V0IHN1Z2dlc3Rpb25zIGJhc2VkIG9uIHlvdXIgYWN0aXZpdHkifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwcm9tb3Rpb25hbCBlbWFpbHMgYW5kIHNwZWNpYWwgb2ZmZXJzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRoaXJkLXBhcnR5IGludGVncmF0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGVja2JveC1vdXRwdXQiKTtpZihlJiZzLmRldGFpbCl7bGV0IHQ9cy5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBGZWF0dXJlIGlzICR7dD8iZW5hYmxlZCI6ImRpc2FibGVkIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkZWJ1Zy1vdXRwdXQiKTtpZihlJiZzLmRldGFpbCl7bGV0IHQ9cy5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBEZWJ1ZyBtb2RlOiAke3Q/Ik9OIjoiT0ZGIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgUm90LCRRLE9vdCxMMWU9ZygoKT0+e3BlKCk7RWkoKTtpYmEoKTtFcigpO2h0KCk7Um90PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSwkUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sT290PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1jaGVja2JveCIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRDaGVja2JveCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6Qm9vbGVhbn0pXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sUm90KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InZhbHVlImluIHYsImhhcyIpLGdldDppKHY9PnYudmFsdWUsImdldCIpLHNldDppKCh2LHgpPT57di52YWx1ZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksUm90KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kZXRlcm1pbmF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaW5kZXRlcm1pbmF0ZSJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmluZGV0ZXJtaW5hdGUsImdldCIpLHNldDppKCh2LHgpPT57di5pbmRldGVybWluYXRlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxSb3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1zYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPSRRKHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGIpe3RoaXMuI2U9Yn0jdD0oJFEodGhpcyxsKSwkUSh0aGlzLGQsITEpKTtnZXQgaW5kZXRlcm1pbmF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbmRldGVybWluYXRlKGIpe3RoaXMuI3Q9Yn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksJFEodGhpcyx1KSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgKiB7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3ggewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94OmZvY3VzLXZpc2libGUgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBDaGVja21hcmsgdXNpbmcgTHVjaWRlIGljb24gc3R5bGUgKi8KICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCAuY2hlY2ttYXJrIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayBzdmcgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBzdHJva2U6IHdoaXRlOwogICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgIH0KCiAgICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCAqLwogICAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDJweDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiBAY2xpY2s9IiR7dGhpcy50b2dnbGVTZWxlY3RlZH0iPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9ImNoZWNrYm94ICR7dGhpcy52YWx1ZT8ic2VsZWN0ZWQiOiIifSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIAogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIwIDZMOSAxN0w0IDEyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGA6dGhpcy5pbmRldGVybWluYXRlP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoZWNrbWFyayI+CiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTJIMTkiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICR7dGhpcy5sYWJlbD93YDxkaXYgY2xhc3M9ImNoZWNrYm94LWxhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIHRvZ2dsZVNlbGVjdGVkKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMudmFsdWU9IXRoaXMudmFsdWUsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGIpe3RoaXMudmFsdWU9Yn1mb2N1cygpe2xldCBiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hlY2tib3giKTtiJiZiLmZvY3VzKCl9aGFuZGxlS2V5ZG93bihiKXsoYi5rZXk9PT0iICJ8fGIua2V5PT09IkVudGVyIikmJihiLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3RlZCgpKX1zdGF0aWN7JFEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIERRPXt9O3l0KERRLHticmlnaHQ6KCk9PnI0LGRhcms6KCk9Pmk0fSk7dmFyIGk0LHI0LHcyPWcoKCk9PntpND17Ymx1ZToiIzAwNTBiOSIsYmx1ZUFjdGl2ZToiIzAwNjlmMiIsYmx1ZU11dGVkOiIjMDEyNDUyIix0ZXh0OiIjZmZmZmZmIn0scjQ9e2JsdWU6IiMwMDUwYjkiLGJsdWVBY3RpdmU6IiMwMDY5ZjIiLGJsdWVNdXRlZDoiIzAwNjlmMiIsdGV4dDoiIzMzMzMzMyJ9fSk7dmFyIHJiYSxvYmE9ZygoKT0+e3BlKCk7UHUoKTtyYmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgb3B0aW9uYWwgaGVhZGVyIGJ1dHRvbnMgZm9yIGhlbHAgYW5kIGNsb3NpbmcuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBIZWxwIEJ1dHRvbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmkoYXN5bmMoKT0+e2F3YWl0IGlzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkhlbHAiLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLHNob3dIZWxwQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgaGVscCBjb250ZW50IGZvciB0aGUgbW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHByb3ZpZGUgY29udGV4dC1zcGVjaWZpYyBoZWxwIGhlcmUuPC9wPgogICAgICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX0sIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGhlbHAgYnV0dG9uIGluIHRoZSBoZWFkZXIuIENsaWNrIGl0IHRvIHNlZSBoZWxwIGNvbnRlbnQuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5XaXRoIEhlbHAgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBDbG9zZSBCdXR0b24iLHNob3dDbG9zZUJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIuPC9wPgogICAgICAgICAgICAgIDxwPllvdSBtdXN0IHVzZSB0aGUgYWN0aW9uIGJ1dHRvbnMgb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBpdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQm90aCBCdXR0b25zIixzaG93SGVscEJ1dHRvbjohMCxzaG93Q2xvc2VCdXR0b246ITAsb25IZWxwOmkoKCk9PmFsZXJ0KCJIZWxwIGNsaWNrZWQhIiksIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkJvdGggQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2xlYW4gSGVhZGVyIixzaG93Q2xvc2VCdXR0b246ITEsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY2xlYW4gaGVhZGVyIHdpdGggbm8gYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkNsZWFuIEhlYWRlcjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHM6IHNtYWxsLCBtZWRpdW0sIGxhcmdlLCBmdWxsc2NyZWVuLCBvciBjdXN0b20gcGl4ZWwgdmFsdWVzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNtYWxsIE1vZGFsIix3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6Ik9LIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+U21hbGwgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik1lZGl1bSBNb2RhbCAoRGVmYXVsdCkiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUGFzc3dvcmQifSAuaW5wdXRUeXBlPSR7InBhc3N3b3JkIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IlNpZ24gVXAiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5NZWRpdW0gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxhcmdlIE1vZGFsIix3aWR0aDoibGFyZ2UiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+V2lkZSBDb250ZW50IEFyZWE8L2g0PgogICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZpcnN0IE5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7Ikxhc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ29tcGFueSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUG9zaXRpb24ifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkxhcmdlIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJGdWxsc2NyZWVuIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDppKGFzeW5jKCk9PnthbGVydCgiSW4gYSByZWFsIGFwcCwgdGhpcyB3b3VsZCBzaG93IGVkaXRvciBkb2N1bWVudGF0aW9uIil9LCJvbkhlbHAiKSxjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0PkZ1bGxzY3JlZW4gRXhwZXJpZW5jZSB3aXRoIEhlYWRlciBDb250cm9sczwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB0YWtlcyB1cCBhbG1vc3QgdGhlIGVudGlyZSB2aWV3cG9ydCB3aXRoIGEgMjBweCBtYXJnaW4gb24gYWxsIHNpZGVzLiBUaGUgaGVhZGVyIGJ1dHRvbnMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZnVsbHNjcmVlbiBtb2RlLjwvcD4KICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMyYTJhMmEiKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9Ij5MYXJnZSBjb250ZW50IGFyZWE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJTYXZlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5GdWxsc2NyZWVuIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz4KICAgICAgPHA+WW91IGNhbiBhbHNvIHNldCBjdXN0b20gcGl4ZWwgd2lkdGhzIGFuZCBtaW4vbWF4IGNvbnN0cmFpbnRzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkN1c3RvbSBXaWR0aCAoNzAwcHgpIix3aWR0aDo3MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkN1c3RvbSA3MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNYXggV2lkdGgiLHdpZHRoOiJsYXJnZSIsbWF4V2lkdGg6NjAwLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGlzIHNldCB0byAnbGFyZ2UnIGJ1dCBjb25zdHJhaW5lZCBieSBhIG1heFdpZHRoIG9mIDYwMHB4LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk1heCBXaWR0aCA2MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNaW4gV2lkdGgiLHdpZHRoOjMwMCxtaW5XaWR0aDo0MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgd2lkdGggaXMgc2V0IHRvIDMwMHB4IGJ1dCBoYXMgYSBtaW5XaWR0aCBvZiA0MDBweCwgc28gaXQgd2lsbCBiZSA0MDBweCB3aWRlLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6Ik9LIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCBidXR0b24gY29uZmlndXJhdGlvbnMgd2l0aCBwcm9wZXIgc3BhY2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJNdWx0aXBsZSBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBkZW1vbnN0cmF0ZXMgbXVsdGlwbGUgYnV0dG9ucyB3aXRoIHByb3BlciBzcGFjaW5nIGJldHdlZW4gdGhlbS48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEZWxldGUiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSBDaGFuZ2VzIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGhyZWUgQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2luZ2xlIEFjdGlvbiIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNvbWV0aW1lcyB5b3UganVzdCBuZWVkIG9uZSBidXR0b24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQWNrbm93bGVkZ2UiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5TaW5nbGUgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gYm90dG9tIGJ1dHRvbnMuIFVzZSB0aGUgWCBidXR0b24gb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZS48L3A+CiAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07Ij5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbXX0pfX0+Tm8gQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBCdXR0b24gTGFiZWxzIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGVzdGluZyBidXR0b24gbGF5b3V0IHdpdGggbG9uZ2VyIGxhYmVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEaXNjYXJkIEFsbCBDaGFuZ2VzIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVzcG9uc2l2ZSBCZWhhdmlvcjwvaDM+CiAgICAgIDxwPkFsbCBtb2RhbHMgYXV0b21hdGljYWxseSBiZWNvbWUgZnVsbC13aWR0aCBvbiBtb2JpbGUgZGV2aWNlcyAoPCA3NjhweCB2aWV3cG9ydCB3aWR0aCkgZm9yIGJldHRlciB1c2FiaWxpdHkuPC9wPgogICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXNwb25zaXZlIE1vZGFsIix3aWR0aDoibGFyZ2UiLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDppKCgpPT5jb25zb2xlLmxvZygiSGVscCByZXF1ZXN0ZWQgZm9yIHJlc3BvbnNpdmUgbW9kYWwiKSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICA8cD5SZXNpemUgeW91ciBicm93c2VyIHdpbmRvdyB0byBzZWUgaG93IHRoaXMgbW9kYWwgYWRhcHRzLiBPbiBtb2JpbGUgdmlld3BvcnRzLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgZnVsbCB3aWR0aCBtaW51cyBtYXJnaW5zLjwvcD4KICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+CiAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UZXN0IFJlc3BvbnNpdmU8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNjcm9sbGFibGUgQ29udGVudDwvaDM+CiAgICAgIDxwPldoZW4gY29udGVudCBleGNlZWRzIHRoZSBtb2RhbCdzIG1heC1oZWlnaHQgKDxjb2RlPmNhbGMoMTAwdmggLSA4MHB4KTwvY29kZT4pLCB0aGUgdGlsZSBjYXBzIGF0IHRoYXQgaGVpZ2h0IGFuZCB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgaW5zaWRlLiBUaGUgaGVhZGluZyBhbmQgYm90dG9tIGJ1dHRvbnMgc3RheSBwaW5uZWQuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBBcnRpY2xlIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2g0PgogICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjQwfSwocyxlKT0+d2AKICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICA8c3Ryb25nPsKnICR7ZSsxfS48L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gU2VkIGRvCiAgICAgICAgICAgICAgICAgIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0CiAgICAgICAgICAgICAgICAgIGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcwogICAgICAgICAgICAgICAgICBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvcgogICAgICAgICAgICAgICAgICBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0CiAgICAgICAgICAgICAgICAgIG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LAogICAgICAgICAgICAgICAgICBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJBY2NlcHQiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIEFydGljbGU8L2RlZXMtYnV0dG9uPgoKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIExpc3QiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNlbGVjdGVkIGl0ZW1zOjwvcD4KICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmctbGVmdDogMjBweDsgbWFyZ2luOiAwOyI+CiAgICAgICAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDo4MH0sKHMsZSk9PndgCiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0icGFkZGluZzogNHB4IDA7Ij5JdGVtICR7ZSsxfSDigJQgb3B0aW9uIGxhYmVsPC9saT4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMaXN0PC9kZWVzLWJ1dHRvbj4KCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiVGFsbCBGb3JtIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjI1fSwocyxlKT0+d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHtgRmllbGQgJHtlKzF9YH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU3VibWl0IixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGFsbCBGb3JtPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBuYmEsbGJhPWcoKCk9PntwZSgpO21yKCk7bmJhPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC50aWxlLWRlbW8tY29udGVudCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICB9CiAgICAgICAgICAuZm9vdGVyLXN0YXRzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgfQogICAgICAgICAgLmZvb3Rlci1zdGF0cyAuc3RhdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgfQogICAgICAgICAgLmZvb3Rlci1zdGF0cyAuc3RhdCBzdHJvbmcgewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkZWVzLXRpbGUgaGVhZGluZz0iU2ltcGxlIFRpbGUiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlbW8tY29udGVudCI+Q29udGVudCBhcmVhIHdpdGggcm91bmRlZCBjb3JuZXJzPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDxkZWVzLXRpbGUgaGVhZGluZz0iVGlsZSB3aXRoIEZvb3RlciIgc3R5bGU9ImhlaWdodDogMjAwcHg7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZGVtby1jb250ZW50Ij5Db250ZW50IGdvZXMgaGVyZTwvZGl2PgogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJmb290ZXItc3RhdHMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+bGF0ZXN0IDxzdHJvbmc+NDI8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5taW4gPHN0cm9uZz4xMjwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPm1heCA8c3Ryb25nPjg3PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+YXZnIDxzdHJvbmc+NDUuMzwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8ZGVlcy10aWxlIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyI+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7d2lkdGg6MTAwJTsiPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NTAwOyI+Q3VzdG9tIEhlYWRlcjwvc3Bhbj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2guLi4iIHN0eWxlPSJmbGV4OjE7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmc6MnB4IDhweDtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXItY29sb3I6aW5oZXJpdDsiPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlbW8tY29udGVudCI+Q3VzdG9tIGhlYWRlciBzbG90IHdpdGggc2VhcmNoIGlucHV0PC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgRTFlLHFnLEJKYSxtcj1nKCgpPT57cGUoKTtsYmEoKTtFcigpO2h0KCk7RTFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxxZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQkphPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aWxlIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaWxlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxjPVtZKCldLEUxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImhlYWRpbmciaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5oZWFkaW5nLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuaGVhZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksRTFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3ZlcnNjcm9sbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ib3ZlcnNjcm9sbCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLm92ZXJzY3JvbGwsImdldCIpLHNldDppKChmLHkpPT57Zi5vdmVyc2Nyb2xsPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxFMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYXNGb290ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+Imhhc0Zvb3RlciJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmhhc0Zvb3RlciwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmhhc0Zvb3Rlcj15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksRTFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89bmJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9cWcodGhpcyxvLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKG0pe3RoaXMuI2U9bX0jdD0ocWcodGhpcyxsKSxxZyh0aGlzLGQsImF1dG8iKSk7Z2V0IG92ZXJzY3JvbGwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3ZlcnNjcm9sbChtKXt0aGlzLiN0PW19I2E9KHFnKHRoaXMsdSkscWcodGhpcyxiLCExKSk7Z2V0IGhhc0Zvb3Rlcigpe3JldHVybiB0aGlzLiNhfXNldCBoYXNGb290ZXIobSl7dGhpcy4jYT1tfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAvKiAtLS0gVGhlIGZyYW1lIC0tLSAqLwogICAgICAudGlsZS1vdXRlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLyogLS0tIEhlYWRlcjogYmFyZSBjb250YWluZXIsIG9ubHkgdGhlIGRlZmF1bHQgaGVhZGluZyBnZXRzIHN0eWxlZCAtLS0gKi8KICAgICAgLnRpbGUtaGVhZGVyIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtaGVhZGluZyB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBDb250ZW50OiB0aGUgcm91bmRlZCBpbnNldCAtLS0KICAgICAgICAgVXNlcyBvdmVyZmxvdy15OiBhdXRvIHNvIHRoYXQgd2hlbiBhIGNvbnN1bWVyIChlLmcuIGRlZXMtbW9kYWwpIGNhcHMKICAgICAgICAgdGhlIHRpbGUgd2l0aCBtYXgtaGVpZ2h0LCBsb25nIGNvbnRlbnQgc2Nyb2xscyBpbnNpZGUgdGhlIHRpbGUKICAgICAgICAgaW5zdGVhZCBvZiBiZWluZyBjbGlwcGVkLiBGb3IgY29uc3VtZXJzIHdpdGhvdXQgbWF4LWhlaWdodAogICAgICAgICAoZS5nLiBkZWVzLXN0ZXBwZXIpLCB0aGUgdGlsZSBncm93cyB3aXRoIGNvbnRlbnQgYW5kIHRoZSBzY3JvbGwKICAgICAgICAgbmV2ZXIgYWN0aXZhdGVzLiBIb3Jpem9udGFsIG92ZXJmbG93IHN0YXlzIGNsaXBwZWQgdG8gcHJlc2VydmUgdGhlCiAgICAgICAgIHJvdW5kZWQgY29ybmVycy4gKi8KICAgICAgLnRpbGUtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgOmhvc3QoW292ZXJzY3JvbGw9ImNvbnRhaW4iXSkgLnRpbGUtY29udGVudCB7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGVudC5uby1mb290ZXIgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsKICAgICAgfQoKICAgICAgLyogLS0tIEZvb3RlcjogYmFyZSBjb250YWluZXIsIGNvbnN1bWVyIHN0eWxlcyB0aGUgc2xvdHRlZCBjb250ZW50IC0tLSAqLwogICAgICAudGlsZS1mb290ZXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS1mb290ZXIuaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdXRlciIgcGFydD0ib3V0ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaGVhZGVyIiBwYXJ0PSJoZWFkZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1oZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgIDwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbnRlbnQgJHt0aGlzLmhhc0Zvb3Rlcj8iIjoibm8tZm9vdGVyIn0iIHBhcnQ9ImNvbnRlbnQiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZm9vdGVyICR7dGhpcy5oYXNGb290ZXI/IiI6ImhpZGRlbiJ9IiBwYXJ0PSJmb290ZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iZm9vdGVyIiBAc2xvdGNoYW5nZT0ke3RoaXMub25Gb290ZXJTbG90Q2hhbmdlfT48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1vbkZvb3RlclNsb3RDaGFuZ2UobSl7bGV0IGY9bS50YXJnZXQ7dGhpcy5oYXNGb290ZXI9Zi5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSkubGVuZ3RoPjB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHFnKHRoaXMsdil9c3RhdGlje3FnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciByYyxtaSxpcyxQdT1nKCgpPT57dzIoKTt2bygpO0duKCk7RXIoKTtvYmEoKTtwZSgpO2t0KCk7djIoKTtHYSgpO21yKCk7aHQoKTtyYz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbWk9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGlzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1tb2RhbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W107dmFyIHVlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzTW9kYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbGU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bWSh7fSldLGM9W1koe30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOk51bWJlcn0pXSxOPVtMKHt0eXBlOk51bWJlcn0pXSxPPVtMKHt0eXBlOkJvb2xlYW59KV0sSD1bTCh7dHlwZTpCb29sZWFufSldLEk9W0woe2F0dHJpYnV0ZTohMX0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W0woe3R5cGU6TnVtYmVyfSldLGhlPVtZKCldLHJjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaGVhZGluZyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmhlYWRpbmcsImdldCIpLHNldDppKChRLGllKT0+e1EuaGVhZGluZz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sbyxsKSxyYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImNvbnRlbnQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5jb250ZW50LCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmNvbnRlbnQ9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGQsdSkscmModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51T3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibWVudU9wdGlvbnMiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5tZW51T3B0aW9ucywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5tZW51T3B0aW9ucz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sYix2KSxyYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJ3aWR0aCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLndpZHRoLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLndpZHRoPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxtLGYpLHJjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4V2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Im1heFdpZHRoImluIFEsImhhcyIpLGdldDppKFE9PlEubWF4V2lkdGgsImdldCIpLHNldDppKChRLGllKT0+e1EubWF4V2lkdGg9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LE0seikscmModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5XaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibWluV2lkdGgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5taW5XaWR0aCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5taW5XaWR0aD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sQyxfKSxyYyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDbG9zZUJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic2hvd0Nsb3NlQnV0dG9uImluIFEsImhhcyIpLGdldDppKFE9PlEuc2hvd0Nsb3NlQnV0dG9uLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnNob3dDbG9zZUJ1dHRvbj1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sJCxFKSxyYyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIZWxwQnV0dG9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJzaG93SGVscEJ1dHRvbiJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnNob3dIZWxwQnV0dG9uLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnNob3dIZWxwQnV0dG9uPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxrLFMpLHJjKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib25IZWxwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJvbkhlbHAiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5vbkhlbHAsImdldCIpLHNldDppKChRLGllKT0+e1Eub25IZWxwPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxQLFIpLHJjKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibW9iaWxlRnVsbHNjcmVlbiJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1vYmlsZUZ1bGxzY3JlZW4sImdldCIpLHNldDppKChRLGllKT0+e1EubW9iaWxlRnVsbHNjcmVlbj1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sVixXKSxyYyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50UGFkZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iY29udGVudFBhZGRpbmciaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5jb250ZW50UGFkZGluZywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5jb250ZW50UGFkZGluZz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sQixVKSxyYyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RhbFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibW9kYWxaSW5kZXgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5tb2RhbFpJbmRleCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5tb2RhbFpJbmRleD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sRixqKSxyYyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpsZX0sbnVsbCx0KSx1ZT1hPWUudmFsdWUsbGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bGV9KX1zdGF0aWMgZGVtbz1yYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3cobGUpe2xldCBRPWRvY3VtZW50LmJvZHksaWU9bmV3IHVlO3JldHVybiBpZS5oZWFkaW5nPWxlLmhlYWRpbmcsaWUuY29udGVudD1sZS5jb250ZW50LGllLm1lbnVPcHRpb25zPWxlLm1lbnVPcHRpb25zLGxlLndpZHRoJiYoaWUud2lkdGg9bGUud2lkdGgpLGxlLm1heFdpZHRoJiYoaWUubWF4V2lkdGg9bGUubWF4V2lkdGgpLGxlLm1pbldpZHRoJiYoaWUubWluV2lkdGg9bGUubWluV2lkdGgpLGxlLnNob3dDbG9zZUJ1dHRvbiE9PXZvaWQgMCYmKGllLnNob3dDbG9zZUJ1dHRvbj1sZS5zaG93Q2xvc2VCdXR0b24pLGxlLnNob3dIZWxwQnV0dG9uIT09dm9pZCAwJiYoaWUuc2hvd0hlbHBCdXR0b249bGUuc2hvd0hlbHBCdXR0b24pLGxlLm9uSGVscCYmKGllLm9uSGVscD1sZS5vbkhlbHApLGxlLm1vYmlsZUZ1bGxzY3JlZW4hPT12b2lkIDAmJihpZS5tb2JpbGVGdWxsc2NyZWVuPWxlLm1vYmlsZUZ1bGxzY3JlZW4pLGxlLmNvbnRlbnRQYWRkaW5nIT09dm9pZCAwJiYoaWUuY29udGVudFBhZGRpbmc9bGUuY29udGVudFBhZGRpbmcpLGllLndpbmRvd0xheWVyPWF3YWl0IFJvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSxpZS53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2F3YWl0IGllLmRlc3Ryb3koKX0pLFEuYXBwZW5kKGllLndpbmRvd0xheWVyKSxRLmFwcGVuZChpZSksaWUubW9kYWxaSW5kZXg9X2EuZ2V0TmV4dFpJbmRleCgpLF9hLnJlZ2lzdGVyKGllLGllLm1vZGFsWkluZGV4KSxpZX0jZT1taSh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobGUpe3RoaXMuI2U9bGV9I3Q9KG1pKHRoaXMsbCksbWkodGhpcyxkLHZvaWQgMCkpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQobGUpe3RoaXMuI3Q9bGV9I2E9KG1pKHRoaXMsdSksbWkodGhpcyxiLFtdKSk7Z2V0IG1lbnVPcHRpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1lbnVPcHRpb25zKGxlKXt0aGlzLiNhPWxlfSNzPShtaSh0aGlzLHYpLG1pKHRoaXMsbSwibWVkaXVtIikpO2dldCB3aWR0aCgpe3JldHVybiB0aGlzLiNzfXNldCB3aWR0aChsZSl7dGhpcy4jcz1sZX0jaT0obWkodGhpcyxmKSxtaSh0aGlzLE0sdm9pZCAwKSk7Z2V0IG1heFdpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1heFdpZHRoKGxlKXt0aGlzLiNpPWxlfSNyPShtaSh0aGlzLHopLG1pKHRoaXMsQyx2b2lkIDApKTtnZXQgbWluV2lkdGgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWluV2lkdGgobGUpe3RoaXMuI3I9bGV9I289KG1pKHRoaXMsXyksbWkodGhpcywkLCEwKSk7Z2V0IHNob3dDbG9zZUJ1dHRvbigpe3JldHVybiB0aGlzLiNvfXNldCBzaG93Q2xvc2VCdXR0b24obGUpe3RoaXMuI289bGV9I249KG1pKHRoaXMsRSksbWkodGhpcyxrLCExKSk7Z2V0IHNob3dIZWxwQnV0dG9uKCl7cmV0dXJuIHRoaXMuI259c2V0IHNob3dIZWxwQnV0dG9uKGxlKXt0aGlzLiNuPWxlfSNsPShtaSh0aGlzLFMpLG1pKHRoaXMsUCx2b2lkIDApKTtnZXQgb25IZWxwKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG9uSGVscChsZSl7dGhpcy4jbD1sZX0jYz0obWkodGhpcyxSKSxtaSh0aGlzLFYsITEpKTtnZXQgbW9iaWxlRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNjfXNldCBtb2JpbGVGdWxsc2NyZWVuKGxlKXt0aGlzLiNjPWxlfSNkPShtaSh0aGlzLFcpLG1pKHRoaXMsQiwxNikpO2dldCBjb250ZW50UGFkZGluZygpe3JldHVybiB0aGlzLiNkfXNldCBjb250ZW50UGFkZGluZyhsZSl7dGhpcy4jZD1sZX0jdT0obWkodGhpcyxVKSxtaSh0aGlzLEYsMWUzKSk7Z2V0IG1vZGFsWkluZGV4KCl7cmV0dXJuIHRoaXMuI3V9c2V0IG1vZGFsWkluZGV4KGxlKXt0aGlzLiN1PWxlfWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICBkZWVzLXRpbGUgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpLCBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICBtYXJnaW46IDQwcHg7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm94LXNoYWRvdzoKICAgICAgICAgIDAgMCAwIDFweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDEwMCUgLyAwLjAzKSIpfSwKICAgICAgICAgIDAgOHB4IDQwcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4xMikiLCJoc2woMCAwJSAwJSAvIDAuNSkiKX0sCiAgICAgICAgICAwIDJweCA4cHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNikiLCJoc2woMCAwJSAwJSAvIDAuMjUpIil9OwogICAgICB9CgogICAgICAvKiBXaWR0aCB2YXJpYXRpb25zICovCiAgICAgIGRlZXMtdGlsZS53aWR0aC1zbWFsbCB7CiAgICAgICAgd2lkdGg6IDM4MHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUud2lkdGgtbWVkaXVtIHsKICAgICAgICB3aWR0aDogNTYwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS53aWR0aC1sYXJnZSB7CiAgICAgICAgd2lkdGg6IDgwMHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUud2lkdGgtZnVsbHNjcmVlbiB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB9CgogICAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIH0KCiAgICAgICAgZGVlcy10aWxlIHsKICAgICAgICAgIG1hcmdpbjogMTBweDsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMHB4KTsKICAgICAgICB9CgogICAgICAgIGRlZXMtdGlsZS5tb2JpbGUtZnVsbHNjcmVlbiB7CiAgICAgICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDsKICAgICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXRpbGUubW9iaWxlLWZ1bGxzY3JlZW46OnBhcnQob3V0ZXIpIHsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zaG93LnByZWRlc3Ryb3kgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgc2NhbGUoMC45OCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UtaW4sIG9wYWNpdHkgMC4xNXMgZWFzZS1pbjsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRpbmctdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEyKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMTIpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgbGU9dHlwZW9mIHRoaXMud2lkdGg9PSJzdHJpbmciP2B3aWR0aC0ke3RoaXMud2lkdGh9YDoiIixRPXR5cGVvZiB0aGlzLndpZHRoPT0ibnVtYmVyIj9gJHt0aGlzLndpZHRofXB4YDoiIixpZT10aGlzLm1heFdpZHRoP2Ake3RoaXMubWF4V2lkdGh9cHhgOiIiLHRlPXRoaXMubWluV2lkdGg/YCR7dGhpcy5taW5XaWR0aH1weGA6IiIsZWU9dGhpcy5tb2JpbGVGdWxsc2NyZWVuPyJtb2JpbGUtZnVsbHNjcmVlbiI6IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAke1E/YGRlZXMtdGlsZSB7IHdpZHRoOiAke1F9OyB9YDoiIn0KICAgICAgICAke2llP2BkZWVzLXRpbGUgeyBtYXgtd2lkdGg6ICR7aWV9OyB9YDoiIn0KICAgICAgICAke3RlP2BkZWVzLXRpbGUgeyBtaW4td2lkdGg6ICR7dGV9OyB9YDoiIn0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWxDb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlT3V0c2lkZUNsaWNrfSBzdHlsZT0iei1pbmRleDogJHt0aGlzLm1vZGFsWkluZGV4fSI+CiAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHtsZX0gJHtlZX0iIC5vdmVyc2Nyb2xsPSR7ImNvbnRhaW4ifT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctdGV4dCI+JHt0aGlzLmhlYWRpbmd9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b25zIj4KICAgICAgICAgICAgICAke3RoaXMuc2hvd0hlbHBCdXR0b24/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlSGVscH0gdGl0bGU9IkhlbHAiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpoZWxwQ2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICR7dGhpcy5zaG93Q2xvc2VCdXR0b24/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmRlc3Ryb3koKX0gdGl0bGU9IkNsb3NlIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiAke3RoaXMuY29udGVudFBhZGRpbmd9cHg7Ij4ke3RoaXMuY29udGVudH08L2Rpdj4KICAgICAgICAgICR7dGhpcy5tZW51T3B0aW9ucy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5tZW51T3B0aW9ucy5tYXAoKGtlLFgpPT53YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21CdXR0b24gJHtYPT09dGhpcy5tZW51T3B0aW9ucy5sZW5ndGgtMT8icHJpbWFyeSI6IiJ9ICR7a2UubmFtZT09PSJPSyI/Im9rIjoiIn0iIEBjbGljaz0keygpPT57a2UuYWN0aW9uKHRoaXMpfX0+JHtrZS5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyPW1pKHRoaXMsaik7YXN5bmMgZmlyc3RVcGRhdGVkKGxlKXtzdXBlci5maXJzdFVwZGF0ZWQobGUpLGF3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy10aWxlIikuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhhbmRsZU91dHNpZGVDbGljayhsZSl7bGUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbENvbnRhaW5lciIpO2xlLnRhcmdldD09PVEmJmF3YWl0IHRoaXMuZGVzdHJveSgpfWFzeW5jIGRlc3Ryb3koKXtsZXQgbGU9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtdGlsZSIpLmNsYXNzTGlzdC5hZGQoInByZWRlc3Ryb3kiKSxhd2FpdCBsZS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDIwMCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzKSxhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSxfYS51bnJlZ2lzdGVyKHRoaXMpfWFzeW5jIGhhbmRsZUhlbHAoKXt0aGlzLm9uSGVscCYmYXdhaXQgdGhpcy5vbkhlbHAoKX1zdGF0aWN7bWkoYSx0KX19O3JldHVybiB1ZT1hfSkoKX0pO3ZhciBjYmEsZGJhPWcoKCk9PntwZSgpO2NiYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gcCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxhYmVsLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sYWJlbC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxhYmVsLXJvdyAuYW5ub3RhdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjODg4IiwiIzY2NiIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CYXNpYyBMYWJlbDwvaDM+CiAgICAgIDxwPkEgc2ltcGxlIHRleHQgbGFiZWwgd2l0aCBubyBhZGRpdGlvbmFsIGluZGljYXRvcnMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSJVc2VybmFtZSI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5sYWJlbD0iRW1haWwgQWRkcmVzcyI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVxdWlyZWQgSW5kaWNhdG9yPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5yZXF1aXJlZDwvY29kZT4gaXMgc2V0LCBhIHJlZCBhc3RlcmlzayBhcHBlYXJzIGFmdGVyIHRoZSBsYWJlbCB0ZXh0LjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZD0keyJ7dHJ1ZX0ifTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQ9JHsie2ZhbHNlfSJ9IChkZWZhdWx0KTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJOaWNrbmFtZSJ9IC5yZXF1aXJlZD0keyExfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkluZm8gVGV4dCAoSW5mbyBJY29uKTwvaDM+CiAgICAgIDxwPldoZW4gPGNvZGU+aW5mb1RleHQ8L2NvZGU+IGlzIHNldCwgYW4gaW5mbyBpY29uIGFwcGVhcnMgbmV4dCB0byB0aGUgbGFiZWwuIEhvdmVyIG92ZXIgaXQgdG8gc2VlIHRoZSB0b29sdGlwLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5pbmZvVGV4dD0iLi4uIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJBUEkgS2V5In0gLmluZm9UZXh0PSR7IllvdXIgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIGRldmVsb3BlciBzZXR0aW5ncyBkYXNoYm9hcmQuIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+c2hvcnQgaW5mb1RleHQ8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiUmVnaW9uIn0gLmluZm9UZXh0PSR7IlNlbGVjdCB5b3VyIG5lYXJlc3QgZGF0YWNlbnRlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlJlcXVpcmVkICsgSW5mbyBUZXh0PC9oMz4KICAgICAgPHA+Qm90aCBpbmRpY2F0b3JzIGNhbiBiZSBjb21iaW5lZC4gVGhlIGFzdGVyaXNrIGFwcGVhcnMgZmlyc3QsIHRoZW4gdGhlIGluZm8gaWNvbi48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQgKyBpbmZvVGV4dDwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJQYXNzd29yZCJ9IC5yZXF1aXJlZD0keyEwfSAuaW5mb1RleHQ9JHsiTXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgd2l0aCBvbmUgdXBwZXJjYXNlIGxldHRlciBhbmQgb25lIG51bWJlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZCArIGluZm9UZXh0PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkVtYWlsIEFkZHJlc3MifSAucmVxdWlyZWQ9JHshMH0gLmluZm9UZXh0PSR7IldlIHdpbGwgc2VuZCBhIHZlcmlmaWNhdGlvbiBsaW5rIHRvIHRoaXMgYWRkcmVzcy4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVtcHR5IExhYmVsPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5sYWJlbDwvY29kZT4gaXMgZW1wdHkgb3Igbm90IHNldCwgbm90aGluZyBpcyByZW5kZXJlZC4gVGhlIGVsZW1lbnQgYmVsb3cgaGFzIG5vIGxhYmVsIHRleHQ6PC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSIiIChlbXB0eSk8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFAxZSxqZyxISmEsYng9ZygoKT0+e3ZvKCk7dzIoKTtwZSgpO2RiYSgpO2h0KCk7UDFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxqZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSEphPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1sYWJlbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzTGFiZWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sYz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sUDFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImxhYmVsImluIGYsImhhcyIpLGdldDppKGY9PmYubGFiZWwsImdldCIpLHNldDppKChmLHkpPT57Zi5sYWJlbD15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksUDFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImluZm9UZXh0ImluIGYsImhhcyIpLGdldDppKGY9PmYuaW5mb1RleHQsImdldCIpLHNldDppKChmLHkpPT57Zi5pbmZvVGV4dD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksUDFlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InJlcXVpcmVkImluIGYsImhhcyIpLGdldDppKGY9PmYucmVxdWlyZWQsImdldCIpLHNldDppKChmLHkpPT57Zi5yZXF1aXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksUDFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89Y2JhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiSW5wdXQiXTsjZT1qZyh0aGlzLG8sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChtKXt0aGlzLiNlPW19I3Q9KGpnKHRoaXMsbCksamcodGhpcyxkLHZvaWQgMCkpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBpbmZvVGV4dChtKXt0aGlzLiN0PW19I2E9KGpnKHRoaXMsdSksamcodGhpcyxiLCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJlcXVpcmVkKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5yZXF1aXJlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uLWljb24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIG1hcmdpbjogLTZweCAwIC02cHggMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24taWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNikiLCJoc2woMCAwJSAxMDAlIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyNSUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uLWljb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubGFiZWw/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPgogICAgICAgICAgICAgICR7dGhpcy5sYWJlbH0KICAgICAgICAgICAgICAke3RoaXMucmVxdWlyZWQ/d2A8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuaW5mb1RleHQ/d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi1pY29uIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmluZm8ifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1zcGVlY2hidWJibGUgLnRleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtc3BlZWNoYnViYmxlPgogICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGpnKHRoaXMsdil9c3RhdGlje2pnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBJMWUsRm90PWcoKCk9PntJMWU9IjAuNTUuMSJ9KTt2YXIgdngsazIscUphLFZnPWcoKCk9PntwZSgpO2t0KCk7Rm90KCk7aHQoKTt2eD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sazI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHFKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlTW9uYWNvIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpPYmplY3R9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLHZ4KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY29udGVudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmNvbnRlbnQsImdldCIpLHNldDppKChfLE8pPT57Xy5jb250ZW50PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSx2eCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJsYW5ndWFnZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ubGFuZ3VhZ2U9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLHZ4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImZpbGVQYXRoImluIF8sImhhcyIpLGdldDppKF89Pl8uZmlsZVBhdGgsImdldCIpLHNldDppKChfLE8pPT57Xy5maWxlUGF0aD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksdngodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50U3ViamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY29udGVudFN1YmplY3QiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jb250ZW50U3ViamVjdCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmNvbnRlbnRTdWJqZWN0PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSx2eCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ3b3JkV3JhcCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLndvcmRXcmFwLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ud29yZFdyYXA9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLHZ4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89aSgoKT0+d2A8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBtb25hY29EZWZlcnJlZDtlZGl0b3JEZWZlcnJlZD11dC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1rMih0aGlzLG8sYGZ1bmN0aW9uIGhlbGxvKCkgewoJYWxlcnQoJ0hlbGxvIHdvcmxkIScpOwp9YCk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29udGVudChDKXt0aGlzLiNlPUN9I3Q9KGsyKHRoaXMsbCksazIodGhpcyxkLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBsYW5ndWFnZShDKXt0aGlzLiN0PUN9I2E9KGsyKHRoaXMsdSksazIodGhpcyxiLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbGVQYXRoKEMpe3RoaXMuI2E9Q30jcz0oazIodGhpcyx2KSxrMih0aGlzLG0sbmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0KSk7Z2V0IGNvbnRlbnRTdWJqZWN0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbnRlbnRTdWJqZWN0KEMpe3RoaXMuI3M9Q30jaT0oazIodGhpcyxmKSxrMih0aGlzLE0sIm9mZiIpKTtnZXQgd29yZFdyYXAoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd29yZFdyYXAoQyl7dGhpcy4jaT1DfW1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPShrMih0aGlzLHopLG51bGwpO2lzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITE7Y29uc3RydWN0b3IoKXtzdXBlcigpLGppLnNldHVwRG9tVG9vbHMoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAjY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChDKXtzdXBlci5maXJzdFVwZGF0ZWQoQyk7bGV0IF89dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKSxPPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21vbmFjby1lZGl0b3JAJHtJMWV9YDtpZighTi5tb25hY29EZWZlcnJlZCl7Ti5tb25hY29EZWZlcnJlZD11dC5zbWFydHByb21pc2UuZGVmZXIoKTtsZXQgaz1gJHtPfS9taW4vdnMvbG9hZGVyLmpzYCxTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1Muc3JjPWssUy5vbmxvYWQ9KCk9PntOLm1vbmFjb0RlZmVycmVkLnJlc29sdmUoKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChTKX1hd2FpdCBOLm1vbmFjb0RlZmVycmVkLnByb21pc2Usd2luZG93LnJlcXVpcmUuY29uZmlnKHtwYXRoczp7dnM6YCR7T30vbWluL3ZzYH19KSx3aW5kb3cucmVxdWlyZShbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdLGFzeW5jKCk9PntsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxJPWsudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj8idnMiOiJ2cy1kYXJrIixQPXdpbmRvdy5tb25hY28sUj1udWxsO2lmKHRoaXMuZmlsZVBhdGgpe2xldCBWPVAuVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApO1I9UC5lZGl0b3IuZ2V0TW9kZWwoViksUj9SLnNldFZhbHVlKHRoaXMuY29udGVudCk6Uj1QLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSxWKX1sZXQgSz1QLmVkaXRvci5jcmVhdGUoXyx7bW9kZWw6Unx8dm9pZCAwLHZhbHVlOlI/dm9pZCAwOnRoaXMuY29udGVudCxsYW5ndWFnZTpSP3ZvaWQgMDp0aGlzLmxhbmd1YWdlLHRoZW1lOkksdXNlU2hhZG93RE9NOiEwLGZvbnRTaXplOjE2LGF1dG9tYXRpY0xheW91dDohMCx3b3JkV3JhcDp0aGlzLndvcmRXcmFwLGhvdmVyOntlbmFibGVkOiEwLGRlbGF5OjMwMCxzdGlja3k6ITAsYWJvdmU6ITF9fSk7dGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1rLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKFY9PntsZXQgVz1WPyJ2cyI6InZzLWRhcmsiO0sudXBkYXRlT3B0aW9ucyh7dGhlbWU6V30pfSksdGhpcy5lZGl0b3JEZWZlcnJlZC5yZXNvbHZlKEspfSk7bGV0ICQ9YXdhaXQoYXdhaXQgZmV0Y2goYCR7T30vbWluL3ZzL2VkaXRvci9lZGl0b3IubWFpbi5jc3NgKSkudGV4dCgpLEU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtFLnRleHRDb250ZW50PSQsdGhpcy5zaGFkb3dSb290LmFwcGVuZChFKTtsZXQgSD1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7SC5vbkRpZENoYW5nZU1vZGVsQ29udGVudChhc3luYyBrPT57aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsKXJldHVybjtsZXQgUz1ILmdldFZhbHVlKCk7dGhpcy5jb250ZW50U3ViamVjdC5uZXh0KFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtY2hhbmdlIix7ZGV0YWlsOlMsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pLHRoaXMuY29udGVudFN1YmplY3QubmV4dChILmdldFZhbHVlKCkpfWFzeW5jIHVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKTtsZXQgXz13aW5kb3cubW9uYWNvO2lmKF8pe2lmKEMuaGFzKCJmaWxlUGF0aCIpJiZ0aGlzLmZpbGVQYXRoKXtsZXQgTz1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2UsJD1fLlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKSxFPV8uZWRpdG9yLmdldE1vZGVsKCQpO0U/RS5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLEUuc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpOkU9Xy5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5jb250ZW50LHRoaXMubGFuZ3VhZ2UsJCksTy5nZXRNb2RlbCgpPy51cmkudG9TdHJpbmcoKSE9PSQudG9TdHJpbmcoKSYmTy5zZXRNb2RlbChFKTtyZXR1cm59aWYoQy5oYXMoImNvbnRlbnQiKSl7bGV0IE89YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO08uZ2V0VmFsdWUoKSE9PXRoaXMuY29udGVudCYmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxPLnNldFZhbHVlKHRoaXMuY29udGVudCksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExKX1pZihDLmhhcygibGFuZ3VhZ2UiKSl7bGV0ICQ9KGF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTskJiZfLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKCQsdGhpcy5sYW5ndWFnZSl9fX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpfWFzeW5jIHNldENvbnRlbnRFeHRlcm5hbChDLF89ITApe2xldCBPPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtpZihPLmdldFZhbHVlKCk9PT1DKXJldHVybjtsZXQgRT1fP08uZ2V0UG9zaXRpb24oKTpudWxsLEg9Xz9PLmdldFNlbGVjdGlvbnMoKTpudWxsLGs9Xz9PLmdldFNjcm9sbFRvcCgpOjAsUz1fP08uZ2V0U2Nyb2xsTGVmdCgpOjA7aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE8uc2V0VmFsdWUoQyksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExLF8pe2lmKEUpe2xldCBJPU8uZ2V0TW9kZWwoKSxQPUk/LmdldExpbmVDb3VudCgpfHwxLFI9TWF0aC5taW4oRS5saW5lTnVtYmVyLFApLEs9ST8uZ2V0TGluZU1heENvbHVtbihSKXx8MSxWPU1hdGgubWluKEUuY29sdW1uLEspO08uc2V0UG9zaXRpb24oe2xpbmVOdW1iZXI6Uixjb2x1bW46Vn0pfWlmKEgmJkgubGVuZ3RoPjApdHJ5e08uc2V0U2VsZWN0aW9ucyhIKX1jYXRjaHt9Ty5zZXRTY3JvbGxQb3NpdGlvbih7c2Nyb2xsVG9wOmssc2Nyb2xsTGVmdDpTfSl9fXN0YXRpY3trMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgWWQsSnIsVWcsQm90LEhvdD1nKCgpPT57RWkoKTtwZSgpO2h0KCk7UHUoKTtHYSgpO2J4KCk7bXIoKTtWZygpO1ZnKCk7WWQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEpyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxVZz1be2tleToidHlwZXNjcmlwdCIsbGFiZWw6IlR5cGVTY3JpcHQifSx7a2V5OiJqYXZhc2NyaXB0IixsYWJlbDoiSmF2YVNjcmlwdCJ9LHtrZXk6Impzb24iLGxhYmVsOiJKU09OIn0se2tleToiaHRtbCIsbGFiZWw6IkhUTUwifSx7a2V5OiJjc3MiLGxhYmVsOiJDU1MifSx7a2V5OiJzY3NzIixsYWJlbDoiU0NTUyJ9LHtrZXk6Im1hcmtkb3duIixsYWJlbDoiTWFya2Rvd24ifSx7a2V5OiJ5YW1sIixsYWJlbDoiWUFNTCJ9LHtrZXk6InhtbCIsbGFiZWw6IlhNTCJ9LHtrZXk6InNxbCIsbGFiZWw6IlNRTCJ9LHtrZXk6InB5dGhvbiIsbGFiZWw6IlB5dGhvbiJ9LHtrZXk6ImphdmEiLGxhYmVsOiJKYXZhIn0se2tleToiY3NoYXJwIixsYWJlbDoiQyMifSx7a2V5OiJjcHAiLGxhYmVsOiJDKysifSx7a2V5OiJnbyIsbGFiZWw6IkdvIn0se2tleToicnVzdCIsbGFiZWw6IlJ1c3QifSx7a2V5OiJzaGVsbCIsbGFiZWw6IlNoZWxsIn0se2tleToicGxhaW50ZXh0IixsYWJlbDoiUGxhaW4gVGV4dCJ9XSxCb3Q9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWNvZGUiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXTt2YXIgSz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0Q29kZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBWPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLFlkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InZhbHVlImluIFcsImhhcyIpLGdldDppKFc9PlcudmFsdWUsImdldCIpLHNldDppKChXLG1lKT0+e1cudmFsdWU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbyxsKSxZZCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJsYW5ndWFnZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmxhbmd1YWdlPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGQsdSksWWQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImhlaWdodCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmhlaWdodCwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5oZWlnaHQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sYix2KSxZZCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJ3b3JkV3JhcCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLndvcmRXcmFwLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLndvcmRXcmFwPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LG0sZiksWWQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGluZU51bWJlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InNob3dMaW5lTnVtYmVycyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnNob3dMaW5lTnVtYmVycywiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5zaG93TGluZU51bWJlcnM9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sTSx6KSxZZCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sQyxfKSxZZCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvcHlTdWNjZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJjb3B5U3VjY2VzcyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmNvcHlTdWNjZXNzLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmNvcHlTdWNjZXNzPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LCQsRSksWWQodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsaW5lQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImxpbmVDb3VudCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmxpbmVDb3VudCwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5saW5lQ291bnQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sayxTKSxZZCh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnNvclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJjdXJzb3JQb3NpdGlvbiJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmN1cnNvclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmN1cnNvclBvc2l0aW9uPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LFAsUiksWWQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Vn0sbnVsbCx0KSxLPWE9ZS52YWx1ZSxWJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlZ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtaW5wdXQtY29kZQogICAgICBsYWJlbD0iVHlwZVNjcmlwdCBDb2RlIgogICAgICBrZXk9ImNvZGUiCiAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICBoZWlnaHQ9IjMwMHB4IgogICAgICAudmFsdWU9JHtgY29uc3QgZ3JlZXRpbmc6IHN0cmluZyA9ICJIZWxsbyBXb3JsZCI7CmNvbnNvbGUubG9nKGdyZWV0aW5nKTtgfQogICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0IiwiV29ya3NwYWNlIl07I2U9SnIodGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoVil7dGhpcy4jZT1WfSN0PShKcih0aGlzLGwpLEpyKHRoaXMsZCwidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2UoVil7dGhpcy4jdD1WfSNhPShKcih0aGlzLHUpLEpyKHRoaXMsYiwiMjAwcHgiKSk7Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLiNhfXNldCBoZWlnaHQoVil7dGhpcy4jYT1WfSNzPShKcih0aGlzLHYpLEpyKHRoaXMsbSwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNzfXNldCB3b3JkV3JhcChWKXt0aGlzLiNzPVZ9I2k9KEpyKHRoaXMsZiksSnIodGhpcyxNLCEwKSk7Z2V0IHNob3dMaW5lTnVtYmVycygpe3JldHVybiB0aGlzLiNpfXNldCBzaG93TGluZU51bWJlcnMoVil7dGhpcy4jaT1WfSNyPShKcih0aGlzLHopLEpyKHRoaXMsQywhMSkpO2dldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oVil7dGhpcy4jcj1WfSNvPShKcih0aGlzLF8pLEpyKHRoaXMsJCwhMSkpO2dldCBjb3B5U3VjY2Vzcygpe3JldHVybiB0aGlzLiNvfXNldCBjb3B5U3VjY2VzcyhWKXt0aGlzLiNvPVZ9I249KEpyKHRoaXMsRSksSnIodGhpcyxrLDApKTtnZXQgbGluZUNvdW50KCl7cmV0dXJuIHRoaXMuI259c2V0IGxpbmVDb3VudChWKXt0aGlzLiNuPVZ9I2w9KEpyKHRoaXMsUyksSnIodGhpcyxQLHtsaW5lOjEsY29sdW1uOjF9KSk7Z2V0IGN1cnNvclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGN1cnNvclBvc2l0aW9uKFYpe3RoaXMuI2w9Vn1lZGl0b3JFbGVtZW50PShKcih0aGlzLFIpLG51bGwpO3N0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0idG9wIl0pIC5pbnB1dC13cmFwcGVyLAogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249ImxlZnQiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24gewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGNvbG9yOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAuZWRpdG9yLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIE1hdGNoIE1vbmFjbyBiYWNrZ3JvdW5kIHRvIHRpbGUgKi8KICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvOjpwYXJ0KGNvbnRhaW5lcikgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIEZvb3RlciAqLwogICAgICAuZWRpdG9yLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZm9vdGVyLWxlZnQsCiAgICAgIC5mb290ZXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5mb290ZXItc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmNvZGUtY29udGFpbmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBWPVVnLmZpbmQoVz0+Vy5rZXk9PT10aGlzLmxhbmd1YWdlKXx8VWdbMF07cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5oZWlnaHR9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWxlZnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMYW5ndWFnZURyb3Bkb3dufQogICAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlTGFuZ3VhZ2VCbHVyfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke1YubGFiZWx9CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZXZyb25Eb3duIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgJHt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICR7VWcubWFwKFc9PndgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1vcHRpb24gJHtXLmtleT09PXRoaXMubGFuZ3VhZ2U/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHttZT0+dGhpcy5zZWxlY3RMYW5ndWFnZShtZSxXLmtleSl9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7Vy5sYWJlbH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLndvcmRXcmFwPT09Im9uIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iV29yZCBXcmFwIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5zaG93TGluZU51bWJlcnM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkxpbmUgTnVtYmVycyIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGluZU51bWJlcnN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmNvcHlTdWNjZXNzPyJzdWNjZXNzIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iQ29weSBDb2RlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jb3B5Q29kZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2Vzcz8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIHRpdGxlPSJFeHBhbmQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOk1heGltaXplMiJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5sYW5ndWFnZX0KICAgICAgICAgICAgICAud29yZFdyYXA9JHt0aGlzLndvcmRXcmFwfQogICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImVkaXRvci1mb290ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItbGVmdCI+CiAgICAgICAgICAgICAgPHNwYW4+TG4gJHt0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmV9LCBDb2wgJHt0aGlzLmN1cnNvclBvc2l0aW9uLmNvbHVtbn08L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXNlcGFyYXRvciI+PC9kaXY+CiAgICAgICAgICAgICAgPHNwYW4+JHt0aGlzLmxpbmVDb3VudH0gbGluZSR7dGhpcy5saW5lQ291bnQhPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItcmlnaHQiPgogICAgICAgICAgICAgIDxzcGFuPiR7KFVnLmZpbmQoVz0+Vy5rZXk9PT10aGlzLmxhbmd1YWdlKXx8VWdbMF0pLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLHRoaXMuZWRpdG9yRWxlbWVudCl7dGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShVPT57dGhpcy52YWx1ZSE9PVUmJih0aGlzLnZhbHVlPVUsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfSk7bGV0IFY9YXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UsVz1WLmdldE1vZGVsKCk7VyYmKHRoaXMubGluZUNvdW50PVcuZ2V0TGluZUNvdW50KCksVy5vbkRpZENoYW5nZUNvbnRlbnQoKCk9Pnt0aGlzLmxpbmVDb3VudD1XLmdldExpbmVDb3VudCgpfSkpLFYub25EaWRDaGFuZ2VDdXJzb3JQb3NpdGlvbihVPT57dGhpcy5jdXJzb3JQb3NpdGlvbj17bGluZTpVLnBvc2l0aW9uLmxpbmVOdW1iZXIsY29sdW1uOlUucG9zaXRpb24uY29sdW1ufX0pO2xldCBtZT1hd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZG9tdG9vbHNQcm9taXNlLEI9aShVPT57bGV0IGhlPVU/IiNmZmZmZmYiOiIjMGEwYTBhIjtWLnVwZGF0ZU9wdGlvbnMoe30pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1saWdodCIse2Jhc2U6InZzIixpbmhlcml0OiEwLHJ1bGVzOltdLGNvbG9yczp7ImVkaXRvci5iYWNrZ3JvdW5kIjpoZX19KSx3aW5kb3cubW9uYWNvPy5lZGl0b3I/LmRlZmluZVRoZW1lPy4oImRlZXMtZGFyayIse2Jhc2U6InZzLWRhcmsiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOmhlfX0pLFYudXBkYXRlT3B0aW9ucyh7dGhlbWU6VT8iZGVlcy1saWdodCI6ImRlZXMtZGFyayJ9KX0sInVwZGF0ZUVkaXRvckJnIik7QihtZS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuKSxtZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShVPT57QihVKX0pfX10b2dnbGVMYW5ndWFnZURyb3Bkb3duKCl7dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSF0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW59aGFuZGxlTGFuZ3VhZ2VCbHVyKCl7c2V0VGltZW91dCgoKT0+e3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0hMX0sMTUwKX1hc3luYyBzZWxlY3RMYW5ndWFnZShWLFcpe2lmKFYucHJldmVudERlZmF1bHQoKSx0aGlzLmxhbmd1YWdlPVcsdGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExLHRoaXMuZWRpdG9yRWxlbWVudCl7dGhpcy5lZGl0b3JFbGVtZW50Lmxhbmd1YWdlPVc7bGV0IEI9KGF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpO0ImJndpbmRvdy5tb25hY28uZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoQixXKX19dG9nZ2xlV29yZFdyYXAoKXt0aGlzLndvcmRXcmFwPXRoaXMud29yZFdyYXA9PT0ib24iPyJvZmYiOiJvbiIsdGhpcy51cGRhdGVFZGl0b3JPcHRpb24oIndvcmRXcmFwIix0aGlzLndvcmRXcmFwKX10b2dnbGVMaW5lTnVtYmVycygpe3RoaXMuc2hvd0xpbmVOdW1iZXJzPSF0aGlzLnNob3dMaW5lTnVtYmVycyx0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigibGluZU51bWJlcnMiLHRoaXMuc2hvd0xpbmVOdW1iZXJzPyJvbiI6Im9mZiIpfWFzeW5jIHVwZGF0ZUVkaXRvck9wdGlvbihWLFcpe3RoaXMuZWRpdG9yRWxlbWVudCYmKGF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHtbVl06V30pfWFzeW5jIGNvcHlDb2RlKCl7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMudmFsdWUpLHRoaXMuY29weVN1Y2Nlc3M9ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuY29weVN1Y2Nlc3M9ITF9LDJlMyl9Y2F0Y2goVil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHkgY29kZToiLFYpfX1oYW5kbGVDb250ZW50Q2hhbmdlKFYpe2xldCBXPVYuZGV0YWlsO3RoaXMudmFsdWUhPT1XJiYodGhpcy52YWx1ZT1XLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1hc3luYyBvcGVuRnVsbHNjcmVlbigpe2xldCBWPXRoaXMudmFsdWUsVz1udWxsLG1lPXRoaXMubGFuZ3VhZ2UsQj10aGlzLndvcmRXcmFwLFU9dGhpcy5zaG93TGluZU51bWJlcnMsaGU9ITEsRj0hMSxqPWkoKCk9PntsZXQgWD1VZy5maW5kKFo9Ploua2V5PT09bWUpO3JldHVybiBYP1gubGFiZWw6IlR5cGVTY3JpcHQifSwiZ2V0TGFuZ3VhZ2VMYWJlbCIpLHVlPWkoWD0+e2xldCBaPVguc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsLXRvb2xiYXIiKTtpZighWilyZXR1cm47bGV0IHllPVoucXVlcnlTZWxlY3RvcigiLmxhbmd1YWdlLWJ1dHRvbiBzcGFuIik7eWUmJih5ZS50ZXh0Q29udGVudD1qKCkpO2xldCBxPVoucXVlcnlTZWxlY3RvcigiLndyYXAtYnRuIik7cSYmcS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLEI9PT0ib24iKTtsZXQgQT1aLnF1ZXJ5U2VsZWN0b3IoIi5saW5lcy1idG4iKTtBJiZBLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsVSk7bGV0IHNlPVoucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIiksb2U9c2U/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpO3NlJiZvZSYmKHNlLmNsYXNzTGlzdC50b2dnbGUoInN1Y2Nlc3MiLEYpLG9lLmljb249Rj8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkiKTtsZXQgYWU9Wi5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtZHJvcGRvd24iKTthZSYmKGFlLnN0eWxlLmRpc3BsYXk9aGU/ImJsb2NrIjoibm9uZSIpfSwidXBkYXRlVG9vbGJhclVJIiksbGU9aShYPT57bGV0IFo9WC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwtZm9vdGVyIik7aWYoIVopcmV0dXJuO2xldCB5ZT1aLnF1ZXJ5U2VsZWN0b3IoIi5mb290ZXItY3Vyc29yIikscT1aLnF1ZXJ5U2VsZWN0b3IoIi5mb290ZXItbGluZXMiKSxBPVoucXVlcnlTZWxlY3RvcigiLmZvb3Rlci1sYW5nIik7eWUmJih5ZS50ZXh0Q29udGVudD1gTG4gJHtRfSwgQ29sICR7aWV9YCkscSYmKHEudGV4dENvbnRlbnQ9YCR7dGV9IGxpbmUke3RlIT09MT8icyI6IiJ9YCksQSYmKEEudGV4dENvbnRlbnQ9aigpKX0sInVwZGF0ZUZvb3RlclVJIiksUT0xLGllPTEsdGU9Vi5zcGxpdChgCmApLmxlbmd0aCxlZT1hd2FpdCBpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOnRoaXMubGFiZWx8fCJDb2RlIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLGNvbnRlbnRQYWRkaW5nOjAsY29udGVudDp3YAogICAgICAgIDxzdHlsZT4KICAgICAgICAgIC5tb2RhbC10b29sYmFyIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1sZWZ0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMDAlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZm9vdGVyIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1mb290ZXIgLmZvb3Rlci1sZWZ0LAogICAgICAgICAgLm1vZGFsLWZvb3RlciAuZm9vdGVyLXJpZ2h0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWZvb3RlciAuZm9vdGVyLXNlcGFyYXRvciB7CiAgICAgICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtdG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWxlZnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIj4KICAgICAgICAgICAgICAgIDxzcGFuPiR7aigpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZXZyb25Eb3duIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAke1VnLm1hcChYPT53YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke1gua2V5PT09bWU/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke1gua2V5fSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7WC5sYWJlbH0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItcmlnaHQiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiB3cmFwLWJ0biAke0I9PT0ib24iPyJhY3RpdmUiOiIifSIgdGl0bGU9IldvcmQgV3JhcCI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6V3JhcFRleHQifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24gbGluZXMtYnRuICR7VT8iYWN0aXZlIjoiIn0iIHRpdGxlPSJMaW5lIE51bWJlcnMiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkhhc2gifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24gY29weS1idG4iIHRpdGxlPSJDb3B5IENvZGUiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWVkaXRvci13cmFwcGVyIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgLmNvbnRlbnQ9JHtWfQogICAgICAgICAgICAubGFuZ3VhZ2U9JHttZX0KICAgICAgICAgICAgLndvcmRXcmFwPSR7Qn0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxlZnQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWN1cnNvciI+TG4gJHtRfSwgQ29sICR7aWV9PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItc2VwYXJhdG9yIj48L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1saW5lcyI+JHt0ZX0gbGluZSR7dGUhPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1yaWdodCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290ZXItbGFuZyI+JHtqKCl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIFg9Pnthd2FpdCBYLmRlc3Ryb3koKX0sImFjdGlvbiIpfSx7bmFtZToiU2F2ZSAmIENsb3NlIixhY3Rpb246aShhc3luYyBYPT57aWYoVz1YLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLFcpe2xldCB5ZT0oYXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRWYWx1ZSgpO3RoaXMuc2V0VmFsdWUoeWUpfWF3YWl0IFguZGVzdHJveSgpfSwiYWN0aW9uIil9XX0pO2lmKGF3YWl0IG5ldyBQcm9taXNlKFg9PnNldFRpbWVvdXQoWCwxMDApKSxXPWVlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLFcpe2xldCBYPWF3YWl0IFcuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxaPWF3YWl0IFcuZG9tdG9vbHNQcm9taXNlLHllPWkoQT0+e2xldCBzZT1BPyIjZmZmZmZmIjoiIzBhMGEwYSI7d2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWxpZ2h0Iix7YmFzZToidnMiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOnNlfX0pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1kYXJrIix7YmFzZToidnMtZGFyayIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6c2V9fSksWC51cGRhdGVPcHRpb25zKHt0aGVtZTpBPyJkZWVzLWxpZ2h0IjoiZGVlcy1kYXJrIn0pfSwiYXBwbHlNb2RhbFRoZW1lIik7eWUoWi50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuKSxaLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEE9Pnt5ZShBKX0pLFgub25EaWRDaGFuZ2VDdXJzb3JQb3NpdGlvbihBPT57UT1BLnBvc2l0aW9uLmxpbmVOdW1iZXIsaWU9QS5wb3NpdGlvbi5jb2x1bW4sbGUoZWUpfSk7bGV0IHE9WC5nZXRNb2RlbCgpO3EmJih0ZT1xLmdldExpbmVDb3VudCgpLGxlKGVlKSxxLm9uRGlkQ2hhbmdlQ29udGVudCgoKT0+e3RlPXEuZ2V0TGluZUNvdW50KCksbGUoZWUpfSkpfWxldCBrZT1lZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwtdG9vbGJhciIpO2lmKGtlKXtsZXQgWD1rZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIik7WD8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57aGU9IWhlLHVlKGVlKX0pO2xldCBaPWtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5sYW5ndWFnZS1vcHRpb24iKTtaLmZvckVhY2goc2U9PntzZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2xldCBvZT1zZS5kYXRhc2V0Lmxhbmc7aWYob2UmJlcpe21lPW9lLGhlPSExO2xldCBUZT0oYXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpO1RlJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKFRlLG9lKSxaLmZvckVhY2goUmU9PlJlLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVkIikpLHNlLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIiksdWUoZWUpLGxlKGVlKX19KX0pLGtlLnF1ZXJ5U2VsZWN0b3IoIi53cmFwLWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e0I9Qj09PSJvbiI/Im9mZiI6Im9uIixXJiYoYXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHt3b3JkV3JhcDpCfSksdWUoZWUpfSksa2UucXVlcnlTZWxlY3RvcigiLmxpbmVzLWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e1U9IVUsVyYmKGF3YWl0IFcuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7bGluZU51bWJlcnM6VT8ib24iOiJvZmYifSksdWUoZWUpfSksa2UucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57aWYoVyl7bGV0IG9lPShhd2FpdCBXLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG9lKSxGPSEwLHVlKGVlKSxzZXRUaW1lb3V0KCgpPT57Rj0hMSx1ZShlZSl9LDJlMyl9Y2F0Y2goYWUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5IGNvZGU6IixhZSl9fX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzZT0+e2hlJiYhWD8uY29udGFpbnMoc2UudGFyZ2V0KSYmKGhlPSExLHVlKGVlKSl9LHtvbmNlOiEwfSl9fWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoVil7dGhpcy52YWx1ZT1WLHRoaXMuZWRpdG9yRWxlbWVudCYmKHRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50PVYsdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UudGhlbihXPT57Vy5nZXRWYWx1ZSgpIT09ViYmVy5zZXRWYWx1ZShWKX0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1zdGF0aWN7SnIoYSx0KX19O3JldHVybiBLPWF9KSgpfSk7dmFyIHViYSxwYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO3FvdCgpO3ViYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tb3V0cHV0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kYXRlLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHQ9Pntjb25zb2xlLmxvZygiQmFzaWMgZGF0ZSBzZWxlY3RlZDoiLHQudGFyZ2V0LnZhbHVlKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgRGF0ZSBQaWNrZXIifSAuc3VidGl0bGU9JHsiU2ltcGxlIGRhdGUgc2VsZWN0aW9uIHdpdGhvdXQgdGltZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJTZWxlY3QgRGF0ZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDaG9vc2UgYSBkYXRlIGZyb20gdGhlIGNhbGVuZGFyIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iRXZlbnQgRGF0ZSAmIFRpbWUiXScpLHQ9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkFwcG9pbnRtZW50Il0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldC52YWx1ZTtjb25zb2xlLmxvZygiMjRoIGZvcm1hdCBkYXRldGltZToiLHIpfSkpLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCByPWEudGFyZ2V0LnZhbHVlO2NvbnNvbGUubG9nKCIxMmggZm9ybWF0IGRhdGV0aW1lOiIscil9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgYW5kIFRpbWUgU2VsZWN0aW9uIn0gLnN1YnRpdGxlPSR7IkRhdGUgcGlja2VycyB3aXRoIHRpbWUgc2VsZWN0aW9uIGluIGRpZmZlcmVudCBmb3JtYXRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkV2ZW50IERhdGUgJiBUaW1lIgogICAgICAgICAgZGVzY3JpcHRpb249IlNlbGVjdCBib3RoIGRhdGUgYW5kIHRpbWUgKDI0LWhvdXIgZm9ybWF0KSIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJBcHBvaW50bWVudCIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJEYXRlIGFuZCB0aW1lIHdpdGggQU0vUE0gc2VsZWN0b3IgKDE1LW1pbnV0ZSBpbmNyZW1lbnRzKSIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIxMmgiCiAgICAgICAgICAubWludXRlSW5jcmVtZW50PSR7MTV9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHI9YS50YXJnZXQ7Y29uc29sZS5sb2coYCR7ci5sYWJlbH0gdmFsdWU6YCxyLnZhbHVlKTtsZXQgbj1yLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik7biYmY29uc29sZS5sb2coYCR7ci5sYWJlbH0gZm9ybWF0dGVkOmAsbi52YWx1ZSl9KSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVGltZXpvbmUgU3VwcG9ydCJ9IC5zdWJ0aXRsZT0keyJEYXRlIGFuZCB0aW1lIHNlbGVjdGlvbiB3aXRoIHRpbWV6b25lIGF3YXJlbmVzcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIFRpbWUgKHdpdGggVGltZXpvbmUpIgogICAgICAgICAgZGVzY3JpcHRpb249IlNlbGVjdCBhIGRhdGUvdGltZSBhbmQgdGltZXpvbmUgZm9yIHRoZSBtZWV0aW5nIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIC5lbmFibGVUaW1lem9uZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMjRoIgogICAgICAgICAgdGltZXpvbmU9IkFtZXJpY2EvTmV3X1lvcmsiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJHbG9iYWwgRXZlbnQgU2NoZWR1bGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2NoZWR1bGUgYW4gZXZlbnQgYWNyb3NzIGRpZmZlcmVudCB0aW1lem9uZXMiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIxMmgiCiAgICAgICAgICB0aW1lem9uZT0iRXVyb3BlL0xvbmRvbiIKICAgICAgICAgIC5taW51dGVJbmNyZW1lbnQ9JHszMH0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHQ9PntsZXQgYT10LnRhcmdldC52YWx1ZTtpZihhKXtsZXQgcj1uZXcgRGF0ZShhKSxuPW5ldyBEYXRlLG89TWF0aC5mbG9vcigoci5nZXRUaW1lKCktbi5nZXRUaW1lKCkpLygxZTMqNjAqNjAqMjQpKTtjb25zb2xlLmxvZyhgU2VsZWN0ZWQgZGF0ZSBpcyAke299IGRheXMgZnJvbSB0b2RheWApfX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBSYW5nZSBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaW1pdCBzZWxlY3RhYmxlIGRhdGVzIHdpdGggbWluIGFuZCBtYXggdmFsdWVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkZ1dHVyZSBEYXRlIE9ubHkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2FuIG9ubHkgc2VsZWN0IGRhdGVzIGZyb20gdG9kYXkgdG8gOTAgZGF5cyBpbiB0aGUgZnV0dXJlIgogICAgICAgICAgLm1pbkRhdGU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICAubWF4RGF0ZT0ke25ldyBEYXRlKERhdGUubm93KCkrMjE2MCo2MCo2MCoxZTMpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXsiREQvTU0vWVlZWSI6IkV1cm9wZWFuIiwiTU0vREQvWVlZWSI6IlVTIiwiWVlZWS1NTS1ERCI6IklTTyJ9O3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChyPT57bGV0IG49ci50YXJnZXQsbz1uLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik7byYmY29uc29sZS5sb2coYCR7bi5sYWJlbH0gZm9ybWF0OmAsby52YWx1ZSl9KSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBGb3JtYXRzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBkYXRlIGRpc3BsYXkgZm9ybWF0cyBmb3IgdmFyaW91cyByZWdpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJFdXJvcGVhbiBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9IkREL01NL1lZWVkiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iVVMgRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJNTS9ERC9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IklTTyBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9IllZWVktTU0tREQiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlcltyZXF1aXJlZF0iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57ZS5nZXRWYWx1ZSgpfHxjb25zb2xlLmxvZygiUmVxdWlyZWQgZGF0ZSBmaWVsZCBpcyBlbXB0eSIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGFuZCBkaXNhYmxlZCBzdGF0ZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQmlydGggRGF0ZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VsZWN0IHlvdXIgYmlydGggZGF0ZSIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkRpc2FibGVkIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBjYW5ub3QgYmUgZWRpdGVkIgogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJVUyBDYWxlbmRhciJdJyksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iRVUgQ2FsZW5kYXIiXScpO2UmJmNvbnNvbGUubG9nKCJVUyBDYWxlbmRhciBzdGFydHMgb24gU3VuZGF5ICgwKSIpLHQmJmNvbnNvbGUubG9nKCJFVSBDYWxlbmRhciBzdGFydHMgb24gTW9uZGF5ICgxKSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciBDdXN0b21pemF0aW9uIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB3ZWVrIHN0YXJ0IGRheXMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iVVMgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBTdW5kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHswfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJFVSBDYWxlbmRhciIKICAgICAgICAgICAgZGVzY3JpcHRpb249IldlZWsgc3RhcnRzIG9uIE1vbmRheSIKICAgICAgICAgICAgLndlZWtTdGFydHNPbj0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9aSgoKT0+e2xldCBhPVtdLHI9bmV3IERhdGUsbj1yLmdldEZ1bGxZZWFyKCksbz1yLmdldE1vbnRoKCksbD1uZXcgRGF0ZShuLG8sMSk7Zm9yKDtsLmdldE1vbnRoKCk9PT1vOykobC5nZXREYXkoKT09PTB8fGwuZ2V0RGF5KCk9PT02KSYmYS5wdXNoKG5ldyBEYXRlKGwpLnRvSVNPU3RyaW5nKCkpLGwuc2V0RGF0ZShsLmdldERhdGUoKSsxKTtyZXR1cm4gYX0sImdlbmVyYXRlV2Vla2VuZHMiKSx0PXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7dCYmKHQuZGlzYWJsZWREYXRlcz1lKCksY29uc29sZS5sb2coIkRpc2FibGVkIHdlZWtlbmQgZGF0ZXMgZm9yIGN1cnJlbnQgbW9udGgiKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRpc2FibGVkIERhdGVzIn0gLnN1YnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggc3BlY2lmaWMgZGF0ZXMgZGlzYWJsZWQgKHdlZWtlbmRzIGluIGN1cnJlbnQgbW9udGgpIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkF2YWlsYWJpbGl0eSBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrZW5kcyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBjdXJyZW50IG1vbnRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1uZXcgRGF0ZSx0PWUuZ2V0TW9udGgoKSxhPWUuZ2V0RnVsbFllYXIoKSxyPVt7ZGF0ZTpgJHthfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2UuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlRlYW0gTWVldGluZyIsdHlwZToiaW5mbyIsY291bnQ6Mn0se2RhdGU6YCR7YX0tJHsodCsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUHJvamVjdCBEZWFkbGluZSIsdHlwZToid2FybmluZyJ9LHtkYXRlOmAke2F9LSR7KHQrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlJlbGVhc2UgRGF5Iix0eXBlOiJzdWNjZXNzIn0se2RhdGU6YCR7YX0tJHsodCsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrNSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVXJnZW50IEZpeCBSZXF1aXJlZCIsdHlwZToiZXJyb3IifSx7ZGF0ZTpgJHthfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSs3KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJNdWx0aXBsZSBFdmVudHMgVG9kYXkiLHR5cGU6ImluZm8iLGNvdW50OjV9LHtkYXRlOmAke2F9LSR7KHQrMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LTE1YCx0aXRsZToiRnV0dXJlIFBsYW5uaW5nIFNlc3Npb24iLHR5cGU6ImluZm8ifV0sbj1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO24mJihuLmV2ZW50cz1yLGNvbnNvbGUubG9nKCJDYWxlbmRhciBldmVudHMgbG9hZGVkOiIscikpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciB3aXRoIEV2ZW50cyJ9IC5zdWJ0aXRsZT0keyJWaXN1YWwgZmVlZGJhY2sgZm9yIHNjaGVkdWxlZCBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgQ2FsZW5kYXIiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF5cyB3aXRoIGNvbG9yZWQgZG90cyBoYXZlIGV2ZW50cy4gSG92ZXIgdG8gc2VlIGRldGFpbHMuIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+RXZlbnQgTGVnZW5kOjwvc3Ryb25nPjxicj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzA5NjlkYTsiPuKXjyBJbmZvPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjZDI5OTIyOyI+4pePIFdhcm5pbmc8L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICMyZWEwNDM7Ij7il48gU3VjY2Vzczwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2NmMjIyZTsiPuKXjyBFcnJvcjwvc3Bhbj48YnI+CiAgICAgICAgICA8ZW0+RGF5cyB3aXRoIG1vcmUgdGhhbiAzIGV2ZW50cyBzaG93IGEgY291bnQgYmFkZ2U8L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIiksdD1zLnF1ZXJ5U2VsZWN0b3IoIiNldmVudC1vdXRwdXQiKTtlJiZ0JiYoZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHI9YS50YXJnZXQsbj1yLnZhbHVlO2lmKG4pe2xldCBvPW5ldyBEYXRlKG4pLHA9ci5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGF0ZS1pbnB1dCIpPy52YWx1ZXx8Ik4vQSI7dC5pbm5lckhUTUw9YAogICAgICAgICAgICAgIDxzdHJvbmc+RXZlbnQgdHJpZ2dlcmVkITwvc3Ryb25nPjxicj4KICAgICAgICAgICAgICBJU08gVmFsdWU6ICR7bn08YnI+CiAgICAgICAgICAgICAgRm9ybWF0dGVkOiAke3B9PGJyPgogICAgICAgICAgICAgIERhdGUgb2JqZWN0OiAke28udG9Mb2NhbGVTdHJpbmcoKX0KICAgICAgICAgICAgYH1lbHNlIHQuaW5uZXJIVE1MPSI8ZW0+RGF0ZSBjbGVhcmVkPC9lbT4ifSkpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiRGF0ZXBpY2tlciBsb3N0IGZvY3VzIil9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkV2ZW50IEhhbmRsaW5nIn0gLnN1YnRpdGxlPSR7IkludGVyYWN0aXZlIGRlbW9uc3RyYXRpb24gb2YgY2hhbmdlIGV2ZW50cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEZW1vIgogICAgICAgICAgZGVzY3JpcHRpb249IlNlbGVjdCBhIGRhdGUgdG8gc2VlIHRoZSBldmVudCBkZXRhaWxzIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJldmVudC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICA8ZW0+U2VsZWN0IGEgZGF0ZSB0byBzZWUgZXZlbnQgZGV0YWlscy4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBoYmEsZmJhPWcoKCk9PntwZSgpO0VpKCk7aGJhPVsuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpmb2N1cywKICAgICAgLmRhdGUtaW5wdXQub3BlbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX0sCiAgICAgICAgICAgICAgICAgICAgMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5pY29uLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyID4gKiB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b24gewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQogICAgYF19KTt2YXIgbWJhLGdiYT1nKCgpPT57cGUoKTttYmE9aShzPT53YAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7cy5sYWJlbH0gLmluZm9UZXh0PSR7cy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7cy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtY29udGFpbmVyIj4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBjbGFzcz0iZGF0ZS1pbnB1dCAke3MuaXNPcGVuZWQ/Im9wZW4iOiIifSIKICAgICAgICAgICAgICAudmFsdWU9JHtzLmZvcm1hdERhdGUocy52YWx1ZSl9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7cy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtzLmRpc2FibGVkfQogICAgICAgICAgICAgIEBjbGljaz0ke3MudG9nZ2xlQ2FsZW5kYXJ9CiAgICAgICAgICAgICAgQGtleWRvd249JHtzLmhhbmRsZUtleWRvd259CiAgICAgICAgICAgICAgQGlucHV0PSR7cy5oYW5kbGVNYW51YWxJbnB1dH0KICAgICAgICAgICAgICBAYmx1cj0ke3MuaGFuZGxlSW5wdXRCbHVyfQogICAgICAgICAgICAgIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAke3MudmFsdWU/IjY0cHgiOiI0MHB4In0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tY29udGFpbmVyIj4KICAgICAgICAgICAgICAke3MudmFsdWUmJiFzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbGVhci1idXR0b24iIEBjbGljaz0ke3MuY2xlYXJWYWx1ZX0gdGl0bGU9IkNsZWFyIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6eCIgaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FsZW5kYXItaWNvbiIgaWNvbj0ibHVjaWRlOmNhbGVuZGFyIiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlckRhdGVwaWNrZXIiKX0pO3ZhciBQcixEYSxqb3QsVm90PWcoKCk9PntwZSgpO2t0KCk7R24oKTtodCgpO3YyKCk7R2EoKTtQcj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRGE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGpvdD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtZGF0ZXBpY2tlci1wb3B1cCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdO3ZhciBDZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0RGF0ZXBpY2tlclBvcHVwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHZlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe2F0dHJpYnV0ZTohMX0pXSxwPVtMKHthdHRyaWJ1dGU6ITF9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W0woe3R5cGU6U3RyaW5nfSldLEg9W0woe3R5cGU6U3RyaW5nfSldLEk9W0woe3R5cGU6QXJyYXl9KV0sSz1bTCh7dHlwZTpCb29sZWFufSldLG1lPVtMKHt0eXBlOlN0cmluZ30pXSxoZT1bTCh7dHlwZTpBcnJheX0pXSx1ZT1bTCh7dHlwZTpCb29sZWFufSldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLFByKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJpZ2dlclJlY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ0cmlnZ2VyUmVjdCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnRyaWdnZXJSZWN0LCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUudHJpZ2dlclJlY3Q9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LG8sbCksUHIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvd25lckNvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im93bmVyQ29tcG9uZW50ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUub3duZXJDb21wb25lbnQsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5vd25lckNvbXBvbmVudD1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sZCx1KSxQcih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJlbmFibGVUaW1lImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZW5hYmxlVGltZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLmVuYWJsZVRpbWU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LGIsdiksUHIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4idGltZUZvcm1hdCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnRpbWVGb3JtYXQsImdldCIpLHNldDppKChiZSxFZSk9PntiZS50aW1lRm9ybWF0PUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxtLGYpLFByKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWludXRlSW5jcmVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ibWludXRlSW5jcmVtZW50ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUubWludXRlSW5jcmVtZW50LCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUubWludXRlSW5jcmVtZW50PUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxNLHopLFByKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2Vla1N0YXJ0c09uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4id2Vla1N0YXJ0c09uImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUud2Vla1N0YXJ0c09uLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUud2Vla1N0YXJ0c09uPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxDLF8pLFByKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im1pbkRhdGUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5taW5EYXRlLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUubWluRGF0ZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sJCxFKSxQcih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJtYXhEYXRlImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUubWF4RGF0ZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLm1heERhdGU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LGssUyksUHIodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZERhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iZGlzYWJsZWREYXRlcyJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmRpc2FibGVkRGF0ZXMsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5kaXNhYmxlZERhdGVzPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxQLFIpLFByKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJlbmFibGVUaW1lem9uZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmVuYWJsZVRpbWV6b25lLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuZW5hYmxlVGltZXpvbmU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LFYsVyksUHIodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ0aW1lem9uZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnRpbWV6b25lLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUudGltZXpvbmU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LEIsVSksUHIodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iZXZlbnRzImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZXZlbnRzLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuZXZlbnRzPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxGLGopLFByKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJvcGVuc1RvVG9wImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUub3BlbnNUb1RvcCwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLm9wZW5zVG9Ub3A9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LGxlLFEpLFByKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InNlbGVjdGVkRGF0ZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnNlbGVjdGVkRGF0ZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnNlbGVjdGVkRGF0ZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sdGUsZWUpLFByKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4idmlld0RhdGUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS52aWV3RGF0ZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnZpZXdEYXRlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxYLFopLFByKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSG91ciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InNlbGVjdGVkSG91ciJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnNlbGVjdGVkSG91ciwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnNlbGVjdGVkSG91cj1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0scSxBKSxQcih0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE1pbnV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InNlbGVjdGVkTWludXRlImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuc2VsZWN0ZWRNaW51dGUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5zZWxlY3RlZE1pbnV0ZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sb2UsYWUpLFByKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJtZW51WkluZGV4ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUubWVudVpJbmRleCwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLm1lbnVaSW5kZXg9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LFJlLEJlKSxQcih0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4idmlzaWJsZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnZpc2libGUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS52aXNpYmxlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxEZSxfZSksUHIobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6dmV9LG51bGwsdCksQ2U9YT1lLnZhbHVlLHZlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZlfSl9I2U9RGEodGhpcyxvLG51bGwpO2dldCB0cmlnZ2VyUmVjdCgpe3JldHVybiB0aGlzLiNlfXNldCB0cmlnZ2VyUmVjdCh2ZSl7dGhpcy4jZT12ZX0jdD0oRGEodGhpcyxsKSxEYSh0aGlzLGQsbnVsbCkpO2dldCBvd25lckNvbXBvbmVudCgpe3JldHVybiB0aGlzLiN0fXNldCBvd25lckNvbXBvbmVudCh2ZSl7dGhpcy4jdD12ZX0jYT0oRGEodGhpcyx1KSxEYSh0aGlzLGIsITEpKTtnZXQgZW5hYmxlVGltZSgpe3JldHVybiB0aGlzLiNhfXNldCBlbmFibGVUaW1lKHZlKXt0aGlzLiNhPXZlfSNzPShEYSh0aGlzLHYpLERhKHRoaXMsbSwiMjRoIikpO2dldCB0aW1lRm9ybWF0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRpbWVGb3JtYXQodmUpe3RoaXMuI3M9dmV9I2k9KERhKHRoaXMsZiksRGEodGhpcyxNLDEpKTtnZXQgbWludXRlSW5jcmVtZW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1pbnV0ZUluY3JlbWVudCh2ZSl7dGhpcy4jaT12ZX0jcj0oRGEodGhpcyx6KSxEYSh0aGlzLEMsMSkpO2dldCB3ZWVrU3RhcnRzT24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgd2Vla1N0YXJ0c09uKHZlKXt0aGlzLiNyPXZlfSNvPShEYSh0aGlzLF8pLERhKHRoaXMsJCwiIikpO2dldCBtaW5EYXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IG1pbkRhdGUodmUpe3RoaXMuI289dmV9I249KERhKHRoaXMsRSksRGEodGhpcyxrLCIiKSk7Z2V0IG1heERhdGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWF4RGF0ZSh2ZSl7dGhpcy4jbj12ZX0jbD0oRGEodGhpcyxTKSxEYSh0aGlzLFAsW10pKTtnZXQgZGlzYWJsZWREYXRlcygpe3JldHVybiB0aGlzLiNsfXNldCBkaXNhYmxlZERhdGVzKHZlKXt0aGlzLiNsPXZlfSNjPShEYSh0aGlzLFIpLERhKHRoaXMsViwhMSkpO2dldCBlbmFibGVUaW1lem9uZSgpe3JldHVybiB0aGlzLiNjfXNldCBlbmFibGVUaW1lem9uZSh2ZSl7dGhpcy4jYz12ZX0jZD0oRGEodGhpcyxXKSxEYSh0aGlzLEIsSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lKSk7Z2V0IHRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHRpbWV6b25lKHZlKXt0aGlzLiNkPXZlfSN1PShEYSh0aGlzLFUpLERhKHRoaXMsRixbXSkpO2dldCBldmVudHMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZXZlbnRzKHZlKXt0aGlzLiN1PXZlfSNwPShEYSh0aGlzLGopLERhKHRoaXMsbGUsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNwfXNldCBvcGVuc1RvVG9wKHZlKXt0aGlzLiNwPXZlfSNoPShEYSh0aGlzLFEpLERhKHRoaXMsdGUsbnVsbCkpO2dldCBzZWxlY3RlZERhdGUoKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2VsZWN0ZWREYXRlKHZlKXt0aGlzLiNoPXZlfSNmPShEYSh0aGlzLGVlKSxEYSh0aGlzLFgsbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jZn1zZXQgdmlld0RhdGUodmUpe3RoaXMuI2Y9dmV9I209KERhKHRoaXMsWiksRGEodGhpcyxxLDApKTtnZXQgc2VsZWN0ZWRIb3VyKCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkSG91cih2ZSl7dGhpcy4jbT12ZX0jZz0oRGEodGhpcyxBKSxEYSh0aGlzLG9lLDApKTtnZXQgc2VsZWN0ZWRNaW51dGUoKXtyZXR1cm4gdGhpcy4jZ31zZXQgc2VsZWN0ZWRNaW51dGUodmUpe3RoaXMuI2c9dmV9I2I9KERhKHRoaXMsYWUpLERhKHRoaXMsUmUsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYn1zZXQgbWVudVpJbmRleCh2ZSl7dGhpcy4jYj12ZX0jdj0oRGEodGhpcyxCZSksRGEodGhpcyxEZSwhMSkpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHZpc2libGUodmUpe3RoaXMuI3Y9dmV9d2luZG93TGF5ZXI9KERhKHRoaXMsX2UpLG51bGwpO2lzRGVzdHJveWluZz0hMTtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMSkiLCIwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4yKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogMjgwcHg7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC50b3AgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAuc2hvdyB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIENhbGVuZGFyIEhlYWRlciAqLwogICAgICAuY2FsZW5kYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb250aC15ZWFyLWRpc3BsYXkgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgZmxleDogMTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdlZWtkYXkgaGVhZGVycyAqLwogICAgICAud2Vla2RheXMgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC53ZWVrZGF5IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgcGFkZGluZzogMCAwIDhweCAwOwogICAgICB9CgogICAgICAvKiBEYXlzIGdyaWQgKi8KICAgICAgLmRheXMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZGF5IHsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmRheTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmRheS5vdGhlci1tb250aCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuZGF5LnRvZGF5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuZGlzYWJsZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAvKiBFdmVudCBpbmRpY2F0b3JzICovCiAgICAgIC5ldmVudC1pbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QuaW5mbyB7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjExIDcwJSA1MiUpIiwiaHNsKDIxMSA3MCUgNjIlKSIpfTsgfQogICAgICAuZXZlbnQtZG90Lndhcm5pbmcgeyBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkwJSA0NSUpIiwiaHNsKDQ1IDkwJSA1NSUpIil9OyB9CiAgICAgIC5ldmVudC1kb3Quc3VjY2VzcyB7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDY5JSA0NSUpIiwiaHNsKDE0MiA2OSUgNTUlKSIpfTsgfQogICAgICAuZXZlbnQtZG90LmVycm9yIHsgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA1MSUpIiwiaHNsKDAgNzIlIDYxJSkiKX07IH0KCiAgICAgIC5ldmVudC1jb3VudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMnB4OwogICAgICAgIHJpZ2h0OiAycHg7CiAgICAgICAgbWluLXdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmV2ZW50LXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLmRheS5oYXMtZXZlbnQ6aG92ZXIgLmV2ZW50LXRvb2x0aXAgeyBvcGFjaXR5OiAxOyB9CgogICAgICAvKiBUaW1lIHNlbGVjdG9yICovCiAgICAgIC50aW1lLXNlbGVjdG9yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAudGltZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDY1cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKSIsImhzbCgyMTAgMjAlIDk4JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlcGFyYXRvciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1zZWxlY3RvciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNHB4OyBtYXJnaW4tbGVmdDogOHB4OyB9CgogICAgICAuYW0tcG0tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tYnV0dG9uOmhvdmVyOm5vdCguc2VsZWN0ZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAvKiBUaW1lem9uZSBzZWxlY3RvciAqLwogICAgICAudGltZXpvbmUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLyogQWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLmNhbGVuZGFyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1hY3Rpb24tYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSAzMC42JSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KICAgIGBdO3N0YXRpYyBNT05USF9OQU1FUz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07c3RhdGljIFRJTUVaT05FUz1be3ZhbHVlOiJVVEMiLGxhYmVsOiJVVEMgKENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lKSJ9LHt2YWx1ZToiQW1lcmljYS9OZXdfWW9yayIsbGFiZWw6IkVhc3Rlcm4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0NoaWNhZ28iLGxhYmVsOiJDZW50cmFsIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9EZW52ZXIiLGxhYmVsOiJNb3VudGFpbiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLGxhYmVsOiJQYWNpZmljIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiRXVyb3BlL0xvbmRvbiIsbGFiZWw6IkxvbmRvbiJ9LHt2YWx1ZToiRXVyb3BlL1BhcmlzIixsYWJlbDoiUGFyaXMifSx7dmFsdWU6IkV1cm9wZS9CZXJsaW4iLGxhYmVsOiJCZXJsaW4ifSx7dmFsdWU6IkV1cm9wZS9Nb3Njb3ciLGxhYmVsOiJNb3Njb3cifSx7dmFsdWU6IkFzaWEvRHViYWkiLGxhYmVsOiJEdWJhaSJ9LHt2YWx1ZToiQXNpYS9Lb2xrYXRhIixsYWJlbDoiSW5kaWEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9TaGFuZ2hhaSIsbGFiZWw6IkNoaW5hIFN0YW5kYXJkIFRpbWUifSx7dmFsdWU6IkFzaWEvVG9reW8iLGxhYmVsOiJUb2t5byJ9LHt2YWx1ZToiQXVzdHJhbGlhL1N5ZG5leSIsbGFiZWw6IlN5ZG5leSJ9LHt2YWx1ZToiUGFjaWZpYy9BdWNrbGFuZCIsbGFiZWw6IkF1Y2tsYW5kIn1dO3JlbmRlcigpe2lmKCF0aGlzLnRyaWdnZXJSZWN0KXJldHVybiB3YGA7bGV0IHZlPXRoaXMuY29tcHV0ZVBvc2l0aW9uU3R5bGUoKSxiZT10aGlzLndlZWtTdGFydHNPbj09PTE/WyJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiLCJTdSJdOlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxFZT10aGlzLmdldERheXNJbk1vbnRoKCksamU9dGhpcy5zZWxlY3RlZEhvdXI8MTI7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iY2FsZW5kYXItcG9wdXAgJHt0aGlzLnZpc2libGU/InNob3ciOiIifSAke3RoaXMub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iCiAgICAgICAgc3R5bGU9IiR7dmV9OyB6LWluZGV4OiAke3RoaXMubWVudVpJbmRleH07IgogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItaGVhZGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3RoaXMucHJldmlvdXNNb250aH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25MZWZ0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtb250aC15ZWFyLWRpc3BsYXkiPgogICAgICAgICAgICAke0NlLk1PTlRIX05BTUVTW3RoaXMudmlld0RhdGUuZ2V0TW9udGgoKV19ICR7dGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLm5leHRNb250aH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25SaWdodCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3ZWVrZGF5cyI+CiAgICAgICAgICAke2JlLm1hcChXZT0+d2A8ZGl2IGNsYXNzPSJ3ZWVrZGF5Ij4ke1dlfTwvZGl2PmApfQogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkYXlzLWdyaWQiPgogICAgICAgICAgJHtFZS5tYXAoV2U9PntsZXQgc3Q9dGhpcy5pc1RvZGF5KFdlKSxNZT10aGlzLmlzU2VsZWN0ZWQoV2UpLGdlPVdlLmdldE1vbnRoKCkhPT10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksSWU9dGhpcy5pc0RheURpc2FibGVkKFdlKSxjZT10aGlzLmdldEV2ZW50c0ZvckRhdGUoV2UpLGRlPWNlLmxlbmd0aD4wLExlPWNlLnJlZHVjZSgoS2UsWWUpPT5LZSsoWWUuY291bnR8fDEpLDApO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJkYXkgJHtnZT8ib3RoZXItbW9udGgiOiIifSAke3N0PyJ0b2RheSI6IiJ9ICR7TWU/InNlbGVjdGVkIjoiIn0gJHtJZT8iZGlzYWJsZWQiOiIifSAke2RlPyJoYXMtZXZlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT4hSWUmJnRoaXMuaGFuZGxlU2VsZWN0RGF0ZShXZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtXZS5nZXREYXRlKCl9CiAgICAgICAgICAgICAgICAke2RlP3dgCiAgICAgICAgICAgICAgICAgICR7TGU+Mz93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWNvdW50Ij4ke0xlfTwvZGl2PgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtaW5kaWNhdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICR7Y2Uuc2xpY2UoMCwzKS5tYXAoS2U9PndgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWRvdCAke0tlLnR5cGV8fCJpbmZvIn0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICR7Y2VbMF0udGl0bGU/d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC10b29sdGlwIj4KICAgICAgICAgICAgICAgICAgICAgICR7Y2VbMF0udGl0bGV9CiAgICAgICAgICAgICAgICAgICAgICAke0xlPjE/d2AgKCske0xlLTF9IG1vcmUpYDoiIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmVuYWJsZVRpbWU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3IiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNlbGVjdG9yLXRpdGxlIj5UaW1lPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtaW5wdXRzIj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0idGltZS1pbnB1dCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyh0aGlzLnNlbGVjdGVkSG91cj09PTA/MTI6dGhpcy5zZWxlY3RlZEhvdXI+MTI/dGhpcy5zZWxlY3RlZEhvdXItMTI6dGhpcy5zZWxlY3RlZEhvdXIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpOnRoaXMuc2VsZWN0ZWRIb3VyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVIb3VySW5wdXR9CiAgICAgICAgICAgICAgICBtaW49IiR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/MTowfSIKICAgICAgICAgICAgICAgIG1heD0iJHt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj8xMjoyM30iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1zZXBhcmF0b3IiPjo8L3NwYW4+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9InRpbWUtaW5wdXQiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlbGVjdGVkTWludXRlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVNaW51dGVJbnB1dH0KICAgICAgICAgICAgICAgIG1pbj0iMCIgbWF4PSI1OSIgc3RlcD0iJHt0aGlzLm1pbnV0ZUluY3JlbWVudHx8MX0iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAke3RoaXMudGltZUZvcm1hdD09PSIxMmgiP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbS1wbS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFtLXBtLWJ1dHRvbiAke2plPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5zZXRBTVBNKCJhbSIpfT5BTTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhbS1wbS1idXR0b24gJHtqZT8iIjoic2VsZWN0ZWQifSIgQGNsaWNrPSR7KCk9PnRoaXMuc2V0QU1QTSgicG0iKX0+UE08L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVuYWJsZVRpbWV6b25lP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3RvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIj5UaW1lem9uZTwvZGl2PgogICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3QiIC52YWx1ZT0ke3RoaXMudGltZXpvbmV9IEBjaGFuZ2U9JHt0aGlzLmhhbmRsZVRpbWV6b25lQ2hhbmdlfT4KICAgICAgICAgICAgICAke0NlLlRJTUVaT05FUy5tYXAoV2U9PndgCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIke1dlLnZhbHVlfSIgP3NlbGVjdGVkPSR7V2UudmFsdWU9PT10aGlzLnRpbWV6b25lfT4ke1dlLmxhYmVsfTwvb3B0aW9uPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWFjdGlvbnMiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiB0b2RheS1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlU2VsZWN0VG9kYXl9PlRvZGF5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNsZWFyLWFjdGlvbi1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xlYXJ9PkNsZWFyPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb21wdXRlUG9zaXRpb25TdHlsZSgpe2xldCB2ZT10aGlzLnRyaWdnZXJSZWN0LGJlPXZlLmxlZnQ7aWYodGhpcy5vcGVuc1RvVG9wKXtsZXQgRWU9d2luZG93LmlubmVySGVpZ2h0LXZlLnRvcCs0O3JldHVybmBsZWZ0OiAke2JlfXB4OyBib3R0b206ICR7RWV9cHg7IHRvcDogYXV0b2B9ZWxzZXtsZXQgRWU9dmUuYm90dG9tKzQ7cmV0dXJuYGxlZnQ6ICR7YmV9cHg7IHRvcDogJHtFZX1weGB9fWdldERheXNJbk1vbnRoKCl7bGV0IHZlPXRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSxiZT10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksRWU9bmV3IERhdGUodmUsYmUsMSksamU9bmV3IERhdGUodmUsYmUrMSwwKSxXZT1bXSxzdD10aGlzLndlZWtTdGFydHNPbj09PTE/RWUuZ2V0RGF5KCk9PT0wPzY6RWUuZ2V0RGF5KCktMTpFZS5nZXREYXkoKTtmb3IobGV0IGdlPXN0O2dlPjA7Z2UtLSlXZS5wdXNoKG5ldyBEYXRlKHZlLGJlLDEtZ2UpKTtmb3IobGV0IGdlPTE7Z2U8PWplLmdldERhdGUoKTtnZSsrKVdlLnB1c2gobmV3IERhdGUodmUsYmUsZ2UpKTtsZXQgTWU9NDItV2UubGVuZ3RoO2ZvcihsZXQgZ2U9MTtnZTw9TWU7Z2UrKylXZS5wdXNoKG5ldyBEYXRlKHZlLGJlKzEsZ2UpKTtyZXR1cm4gV2V9aXNUb2RheSh2ZSl7bGV0IGJlPW5ldyBEYXRlO3JldHVybiB2ZS5nZXREYXRlKCk9PT1iZS5nZXREYXRlKCkmJnZlLmdldE1vbnRoKCk9PT1iZS5nZXRNb250aCgpJiZ2ZS5nZXRGdWxsWWVhcigpPT09YmUuZ2V0RnVsbFllYXIoKX1pc1NlbGVjdGVkKHZlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZERhdGU/dmUuZ2V0RGF0ZSgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpJiZ2ZS5nZXRNb250aCgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSYmdmUuZ2V0RnVsbFllYXIoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCk6ITF9aXNEYXlEaXNhYmxlZCh2ZSl7aWYodGhpcy5taW5EYXRlKXtsZXQgYmU9bmV3IERhdGUodGhpcy5taW5EYXRlKTtpZih2ZTxiZSlyZXR1cm4hMH1pZih0aGlzLm1heERhdGUpe2xldCBiZT1uZXcgRGF0ZSh0aGlzLm1heERhdGUpO2lmKHZlPmJlKXJldHVybiEwfXJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXM/Lmxlbmd0aD90aGlzLmRpc2FibGVkRGF0ZXMuc29tZShiZT0+e3RyeXtsZXQgRWU9bmV3IERhdGUoYmUpO3JldHVybiB2ZS5nZXREYXRlKCk9PT1FZS5nZXREYXRlKCkmJnZlLmdldE1vbnRoKCk9PT1FZS5nZXRNb250aCgpJiZ2ZS5nZXRGdWxsWWVhcigpPT09RWUuZ2V0RnVsbFllYXIoKX1jYXRjaHtyZXR1cm4hMX19KTohMX1nZXRFdmVudHNGb3JEYXRlKHZlKXtpZighdGhpcy5ldmVudHM/Lmxlbmd0aClyZXR1cm5bXTtsZXQgYmU9YCR7dmUuZ2V0RnVsbFllYXIoKX0tJHsodmUuZ2V0TW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHt2ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YDtyZXR1cm4gdGhpcy5ldmVudHMuZmlsdGVyKEVlPT5FZS5kYXRlPT09YmUpfXByZXZpb3VzTW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCktMSwxKX1uZXh0TW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCkrMSwxKX1oYW5kbGVTZWxlY3REYXRlKHZlKXt0aGlzLnNlbGVjdGVkRGF0ZT1uZXcgRGF0ZSh2ZS5nZXRGdWxsWWVhcigpLHZlLmdldE1vbnRoKCksdmUuZ2V0RGF0ZSgpLHRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMuc2VsZWN0ZWRNaW51dGUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRhdGUtc2VsZWN0ZWQiLHtkZXRhaWw6dGhpcy5zZWxlY3RlZERhdGV9KSksdGhpcy5lbmFibGVUaW1lfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfWhhbmRsZVNlbGVjdFRvZGF5KCl7bGV0IHZlPW5ldyBEYXRlO3RoaXMuc2VsZWN0ZWREYXRlPXZlLHRoaXMudmlld0RhdGU9bmV3IERhdGUodmUpLHRoaXMuc2VsZWN0ZWRIb3VyPXZlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT12ZS5nZXRNaW51dGVzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSx0aGlzLmVuYWJsZVRpbWV8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9aGFuZGxlQ2xlYXIoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLWNsZWFyZWQiKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX1oYW5kbGVIb3VySW5wdXQ9aSh2ZT0+e2xldCBiZT12ZS50YXJnZXQsRWU9cGFyc2VJbnQoYmUudmFsdWUpfHwwO3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyhFZT1NYXRoLm1heCgxLE1hdGgubWluKDEyLEVlKSksdGhpcy5zZWxlY3RlZEhvdXI+PTEyJiZFZSE9PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPUVlKzEyOnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiZFZT09PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPTA6dGhpcy5zZWxlY3RlZEhvdXI9RWUpOnRoaXMuc2VsZWN0ZWRIb3VyPU1hdGgubWF4KDAsTWF0aC5taW4oMjMsRWUpKSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9LCJoYW5kbGVIb3VySW5wdXQiKTtoYW5kbGVNaW51dGVJbnB1dD1pKHZlPT57bGV0IGJlPXZlLnRhcmdldCxFZT1wYXJzZUludChiZS52YWx1ZSl8fDA7RWU9TWF0aC5tYXgoMCxNYXRoLm1pbig1OSxFZSkpLHRoaXMubWludXRlSW5jcmVtZW50PjEmJihFZT1NYXRoLnJvdW5kKEVlL3RoaXMubWludXRlSW5jcmVtZW50KSp0aGlzLm1pbnV0ZUluY3JlbWVudCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1FZSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9LCJoYW5kbGVNaW51dGVJbnB1dCIpO3NldEFNUE0odmUpe3ZlPT09ImFtIiYmdGhpcy5zZWxlY3RlZEhvdXI+PTEyP3RoaXMuc2VsZWN0ZWRIb3VyLT0xMjp2ZT09PSJwbSImJnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiYodGhpcy5zZWxlY3RlZEhvdXIrPTEyKSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9aGFuZGxlVGltZXpvbmVDaGFuZ2U9aSh2ZT0+e3RoaXMudGltZXpvbmU9dmUudGFyZ2V0LnZhbHVlLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZVRpbWV6b25lQ2hhbmdlIik7ZW1pdFRpbWVVcGRhdGUoKXt0aGlzLnNlbGVjdGVkRGF0ZSYmKHRoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSl9YXN5bmMgc2hvdygpe3RoaXMud2luZG93TGF5ZXI9YXdhaXQgUm8uY3JlYXRlQW5kU2hvdygpLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX0pLHRoaXMubWVudVpJbmRleD1fYS5nZXROZXh0WkluZGV4KCksX2EucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcyksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7cGFzc2l2ZTohMH0pfWFzeW5jIGhpZGUoKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSxfYS51bnJlZ2lzdGVyKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJih0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyPW51bGwpLHRoaXMudmlzaWJsZT0hMSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy5pc0Rlc3Ryb3lpbmc9ITEpfWhhbmRsZVNjcm9sbE9yUmVzaXplPWkoKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBvc2l0aW9uLXJlcXVlc3QiKSl9LCJoYW5kbGVTY3JvbGxPclJlc2l6ZSIpO2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSksX2EudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7RGEoYSx0KX19O3JldHVybiBDZT1hfSkoKX0pO3ZhciBlbyxLYSxVb3QscW90PWcoKCk9PntwZSgpO0VpKCk7cGJhKCk7ZmJhKCk7Z2JhKCk7Vm90KCk7R2EoKTtieCgpO2VvPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLYT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVW90PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W10sc2Usb2U9W10sYWU9W10sVGUsUmU9W10sQmU9W107dmFyIEdlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREYXRlcGlja2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IERlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxOPVtMKHt0eXBlOlN0cmluZ30pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxIPVtMKHt0eXBlOkFycmF5fSldLEk9W0woe3R5cGU6TnVtYmVyfSldLEs9W0woe3R5cGU6U3RyaW5nfSldLG1lPVtMKHt0eXBlOkJvb2xlYW59KV0saGU9W0woe3R5cGU6U3RyaW5nfSldLHVlPVtMKHt0eXBlOkFycmF5fSldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLGVvKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ2YWx1ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnZhbHVlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UudmFsdWU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LG8sbCksZW8odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZW5hYmxlVGltZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmVuYWJsZVRpbWUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5lbmFibGVUaW1lPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxkLHUpLGVvKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZUZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InRpbWVGb3JtYXQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS50aW1lRm9ybWF0LCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UudGltZUZvcm1hdD1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sYix2KSxlbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbnV0ZUluY3JlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+Im1pbnV0ZUluY3JlbWVudCJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLm1pbnV0ZUluY3JlbWVudCwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLm1pbnV0ZUluY3JlbWVudD1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sbSxmKSxlbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJkYXRlRm9ybWF0ImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZGF0ZUZvcm1hdCwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmRhdGVGb3JtYXQ9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LE0seiksZW8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5EYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ibWluRGF0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLm1pbkRhdGUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5taW5EYXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxDLF8pLGVvKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+Im1heERhdGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5tYXhEYXRlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UubWF4RGF0ZT1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sJCxFKSxlbyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkRGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJkaXNhYmxlZERhdGVzImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZGlzYWJsZWREYXRlcywiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmRpc2FibGVkRGF0ZXM9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGssUyksZW8odGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3ZWVrU3RhcnRzT24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ3ZWVrU3RhcnRzT24iaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS53ZWVrU3RhcnRzT24sImdldCIpLHNldDppKChfZSxDZSk9PntfZS53ZWVrU3RhcnRzT249Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LFAsUiksZW8odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InBsYWNlaG9sZGVyImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UucGxhY2Vob2xkZXIsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5wbGFjZWhvbGRlcj1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sVixXKSxlbyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImVuYWJsZVRpbWV6b25lImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZW5hYmxlVGltZXpvbmUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5lbmFibGVUaW1lem9uZT1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sQixVKSxlbyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InRpbWV6b25lImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UudGltZXpvbmUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS50aW1lem9uZT1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sRixqKSxlbyh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJldmVudHMiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5ldmVudHMsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5ldmVudHM9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGxlLFEpLGVvKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iaXNPcGVuZWQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5pc09wZW5lZCwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmlzT3BlbmVkPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSx0ZSxlZSksZW8odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ic2VsZWN0ZWREYXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uuc2VsZWN0ZWREYXRlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2Uuc2VsZWN0ZWREYXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxYLFopLGVvKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4idmlld0RhdGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS52aWV3RGF0ZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnZpZXdEYXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxxLEEpLGVvKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSG91ciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InNlbGVjdGVkSG91ciJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnNlbGVjdGVkSG91ciwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnNlbGVjdGVkSG91cj1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sb2UsYWUpLGVvKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkTWludXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ic2VsZWN0ZWRNaW51dGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5zZWxlY3RlZE1pbnV0ZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnNlbGVjdGVkTWludXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxSZSxCZSksZW8obnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RGV9LG51bGwsdCksR2U9YT1lLnZhbHVlLERlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkRlfSl9c3RhdGljIGRlbW89dWJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1LYSh0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShEZSl7dGhpcy4jZT1EZX0jdD0oS2EodGhpcyxsKSxLYSh0aGlzLGQsITEpKTtnZXQgZW5hYmxlVGltZSgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVUaW1lKERlKXt0aGlzLiN0PURlfSNhPShLYSh0aGlzLHUpLEthKHRoaXMsYiwiMjRoIikpO2dldCB0aW1lRm9ybWF0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRpbWVGb3JtYXQoRGUpe3RoaXMuI2E9RGV9I3M9KEthKHRoaXMsdiksS2EodGhpcyxtLDEpKTtnZXQgbWludXRlSW5jcmVtZW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1pbnV0ZUluY3JlbWVudChEZSl7dGhpcy4jcz1EZX0jaT0oS2EodGhpcyxmKSxLYSh0aGlzLE0sIllZWVktTU0tREQiKSk7Z2V0IGRhdGVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZGF0ZUZvcm1hdChEZSl7dGhpcy4jaT1EZX0jcj0oS2EodGhpcyx6KSxLYSh0aGlzLEMsIiIpKTtnZXQgbWluRGF0ZSgpe3JldHVybiB0aGlzLiNyfXNldCBtaW5EYXRlKERlKXt0aGlzLiNyPURlfSNvPShLYSh0aGlzLF8pLEthKHRoaXMsJCwiIikpO2dldCBtYXhEYXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heERhdGUoRGUpe3RoaXMuI289RGV9I249KEthKHRoaXMsRSksS2EodGhpcyxrLFtdKSk7Z2V0IGRpc2FibGVkRGF0ZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGlzYWJsZWREYXRlcyhEZSl7dGhpcy4jbj1EZX0jbD0oS2EodGhpcyxTKSxLYSh0aGlzLFAsMSkpO2dldCB3ZWVrU3RhcnRzT24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgd2Vla1N0YXJ0c09uKERlKXt0aGlzLiNsPURlfSNjPShLYSh0aGlzLFIpLEthKHRoaXMsViwiWVlZWS1NTS1ERCIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jY31zZXQgcGxhY2Vob2xkZXIoRGUpe3RoaXMuI2M9RGV9I2Q9KEthKHRoaXMsVyksS2EodGhpcyxCLCExKSk7Z2V0IGVuYWJsZVRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGVuYWJsZVRpbWV6b25lKERlKXt0aGlzLiNkPURlfSN1PShLYSh0aGlzLFUpLEthKHRoaXMsRixJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUpKTtnZXQgdGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jdX1zZXQgdGltZXpvbmUoRGUpe3RoaXMuI3U9RGV9I3A9KEthKHRoaXMsaiksS2EodGhpcyxsZSxbXSkpO2dldCBldmVudHMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXZlbnRzKERlKXt0aGlzLiNwPURlfSNoPShLYSh0aGlzLFEpLEthKHRoaXMsdGUsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jaH1zZXQgaXNPcGVuZWQoRGUpe3RoaXMuI2g9RGV9I2Y9KEthKHRoaXMsZWUpLEthKHRoaXMsWCxudWxsKSk7Z2V0IHNlbGVjdGVkRGF0ZSgpe3JldHVybiB0aGlzLiNmfXNldCBzZWxlY3RlZERhdGUoRGUpe3RoaXMuI2Y9RGV9I209KEthKHRoaXMsWiksS2EodGhpcyxxLG5ldyBEYXRlKSk7Z2V0IHZpZXdEYXRlKCl7cmV0dXJuIHRoaXMuI219c2V0IHZpZXdEYXRlKERlKXt0aGlzLiNtPURlfSNnPShLYSh0aGlzLEEpLEthKHRoaXMsb2UsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jZ31zZXQgc2VsZWN0ZWRIb3VyKERlKXt0aGlzLiNnPURlfSNiPShLYSh0aGlzLGFlKSxLYSh0aGlzLFJlLDApKTtnZXQgc2VsZWN0ZWRNaW51dGUoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2VsZWN0ZWRNaW51dGUoRGUpe3RoaXMuI2I9RGV9cG9wdXBJbnN0YW5jZT0oS2EodGhpcyxCZSksbnVsbCk7c3RhdGljIHN0eWxlcz1oYmE7cmVuZGVyKCl7cmV0dXJuIG1iYSh0aGlzKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbHVlfHwodGhpcy52YWx1ZT0iIiksdGhpcy52YWx1ZSl0cnl7bGV0IERlPW5ldyBEYXRlKHRoaXMudmFsdWUpO2lzTmFOKERlLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1EZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKERlKSx0aGlzLnNlbGVjdGVkSG91cj1EZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9RGUuZ2V0TWludXRlcygpKX1jYXRjaHt9ZWxzZXtsZXQgRGU9bmV3IERhdGU7dGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShEZSksdGhpcy5zZWxlY3RlZEhvdXI9RGUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPTB9fWZvcm1hdERhdGUoRGUpe2lmKCFEZSlyZXR1cm4iIjt0cnl7bGV0IF9lPW5ldyBEYXRlKERlKTtpZihpc05hTihfZS5nZXRUaW1lKCkpKXJldHVybiIiO2xldCBDZT10aGlzLmRhdGVGb3JtYXQsdmU9X2UuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLGJlPShfZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLEVlPV9lLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtpZihDZT1DZS5yZXBsYWNlKCJZWVlZIixFZSksQ2U9Q2UucmVwbGFjZSgiWVkiLEVlLnNsaWNlKC0yKSksQ2U9Q2UucmVwbGFjZSgiTU0iLGJlKSxDZT1DZS5yZXBsYWNlKCJERCIsdmUpLHRoaXMuZW5hYmxlVGltZSl7bGV0IGplPV9lLmdldEhvdXJzKCksV2U9amU9PT0wPzEyOmplPjEyP2plLTEyOmplLHN0PV9lLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxNZT1qZT49MTI/IlBNIjoiQU0iO3RoaXMudGltZUZvcm1hdD09PSIxMmgiP0NlKz1gICR7V2V9OiR7c3R9ICR7TWV9YDpDZSs9YCAke2plLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke3N0fWB9aWYodGhpcy5lbmFibGVUaW1lem9uZSl7bGV0IHN0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIse3RpbWVab25lTmFtZToic2hvcnQiLHRpbWVab25lOnRoaXMudGltZXpvbmV9KS5mb3JtYXRUb1BhcnRzKF9lKS5maW5kKE1lPT5NZS50eXBlPT09InRpbWVab25lTmFtZSIpO3N0JiYoQ2UrPWAgJHtzdC52YWx1ZX1gKX1yZXR1cm4gQ2V9Y2F0Y2h7cmV0dXJuIiJ9fWFzeW5jIHRvZ2dsZUNhbGVuZGFyKCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47aWYodGhpcy5pc09wZW5lZCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufXRoaXMuaXNPcGVuZWQ9ITA7bGV0IF9lPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQ2U9d2luZG93LmlubmVySGVpZ2h0LV9lLmJvdHRvbSx2ZT1fZS50b3AsYmU9Q2U8NDAwJiZ2ZT5DZTt0aGlzLnBvcHVwSW5zdGFuY2V8fCh0aGlzLnBvcHVwSW5zdGFuY2U9bmV3IGpvdCksdGhpcy5wb3B1cEluc3RhbmNlLnRyaWdnZXJSZWN0PV9lLHRoaXMucG9wdXBJbnN0YW5jZS5vd25lckNvbXBvbmVudD10aGlzLHRoaXMucG9wdXBJbnN0YW5jZS5vcGVuc1RvVG9wPWJlLHRoaXMucG9wdXBJbnN0YW5jZS5lbmFibGVUaW1lPXRoaXMuZW5hYmxlVGltZSx0aGlzLnBvcHVwSW5zdGFuY2UudGltZUZvcm1hdD10aGlzLnRpbWVGb3JtYXQsdGhpcy5wb3B1cEluc3RhbmNlLm1pbnV0ZUluY3JlbWVudD10aGlzLm1pbnV0ZUluY3JlbWVudCx0aGlzLnBvcHVwSW5zdGFuY2Uud2Vla1N0YXJ0c09uPXRoaXMud2Vla1N0YXJ0c09uLHRoaXMucG9wdXBJbnN0YW5jZS5taW5EYXRlPXRoaXMubWluRGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2UubWF4RGF0ZT10aGlzLm1heERhdGUsdGhpcy5wb3B1cEluc3RhbmNlLmRpc2FibGVkRGF0ZXM9dGhpcy5kaXNhYmxlZERhdGVzLHRoaXMucG9wdXBJbnN0YW5jZS5lbmFibGVUaW1lem9uZT10aGlzLmVuYWJsZVRpbWV6b25lLHRoaXMucG9wdXBJbnN0YW5jZS50aW1lem9uZT10aGlzLnRpbWV6b25lLHRoaXMucG9wdXBJbnN0YW5jZS5ldmVudHM9dGhpcy5ldmVudHMsdGhpcy5wb3B1cEluc3RhbmNlLnNlbGVjdGVkRGF0ZT10aGlzLnNlbGVjdGVkRGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2Uudmlld0RhdGU9bmV3IERhdGUodGhpcy52aWV3RGF0ZSksdGhpcy5wb3B1cEluc3RhbmNlLnNlbGVjdGVkSG91cj10aGlzLnNlbGVjdGVkSG91cix0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWRNaW51dGU9dGhpcy5zZWxlY3RlZE1pbnV0ZSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLnNob3coKX1jbG9zZVBvcHVwKCl7dGhpcy5pc09wZW5lZD0hMSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSl9aGFuZGxlRGF0ZVNlbGVjdGVkPWkoRGU9PntsZXQgX2U9RGUuZGV0YWlsO3RoaXMuc2VsZWN0ZWREYXRlPV9lLHRoaXMuc2VsZWN0ZWRIb3VyPV9lLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1fZS5nZXRNaW51dGVzKCksdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShfZSksdGhpcy52YWx1ZT10aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKF9lKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImhhbmRsZURhdGVTZWxlY3RlZCIpO2hhbmRsZURhdGVDbGVhcmVkPWkoKCk9Pnt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJoYW5kbGVEYXRlQ2xlYXJlZCIpO2hhbmRsZUNsb3NlUmVxdWVzdD1pKCgpPT57dGhpcy5jbG9zZVBvcHVwKCl9LCJoYW5kbGVDbG9zZVJlcXVlc3QiKTtoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdD1pKCgpPT57aWYoIXRoaXMucG9wdXBJbnN0YW5jZXx8IXRoaXMuaXNPcGVuZWQpcmV0dXJuO2xldCBEZT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbnRhaW5lciIpO2lmKCFEZSlyZXR1cm47bGV0IF9lPURlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKF9lLmJvdHRvbTwwfHxfZS50b3A+d2luZG93LmlubmVySGVpZ2h0KXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59bGV0IENlPXdpbmRvdy5pbm5lckhlaWdodC1fZS5ib3R0b20sdmU9X2UudG9wO3RoaXMucG9wdXBJbnN0YW5jZS5vcGVuc1RvVG9wPUNlPDQwMCYmdmU+Q2UsdGhpcy5wb3B1cEluc3RhbmNlLnRyaWdnZXJSZWN0PV9lfSwiaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QiKTtoYW5kbGVLZXlkb3duKERlKXtEZS5rZXk9PT0iRW50ZXIifHxEZS5rZXk9PT0iICI/KERlLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVDYWxlbmRhcigpKTpEZS5rZXk9PT0iRXNjYXBlIiYmdGhpcy5pc09wZW5lZCYmKERlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZVBvcHVwKCkpfWNsZWFyVmFsdWUoRGUpe0RlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1oYW5kbGVNYW51YWxJbnB1dChEZSl7bGV0IENlPURlLnRhcmdldC52YWx1ZS50cmltKCk7aWYoIUNlKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGw7cmV0dXJufWxldCB2ZT10aGlzLnBhcnNlTWFudWFsRGF0ZShDZSk7dmUmJiFpc05hTih2ZS5nZXRUaW1lKCkpJiYodGhpcy52YWx1ZT12ZS50b0lTT1N0cmluZygpLHRoaXMuc2VsZWN0ZWREYXRlPXZlLHRoaXMudmlld0RhdGU9bmV3IERhdGUodmUpLHRoaXMuc2VsZWN0ZWRIb3VyPXZlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT12ZS5nZXRNaW51dGVzKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWhhbmRsZUlucHV0Qmx1cihEZSl7bGV0IF9lPURlLnRhcmdldCxDZT1fZS52YWx1ZS50cmltKCk7aWYoIUNlKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7cmV0dXJufWxldCB2ZT10aGlzLnBhcnNlTWFudWFsRGF0ZShDZSk7dmUmJiFpc05hTih2ZS5nZXRUaW1lKCkpPyh0aGlzLnZhbHVlPXZlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9dmUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh2ZSksdGhpcy5zZWxlY3RlZEhvdXI9dmUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPXZlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxfZS52YWx1ZT10aGlzLmZvcm1hdERhdGUodGhpcy52YWx1ZSkpOl9lLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKX1wYXJzZU1hbnVhbERhdGUoRGUpe2lmKCFEZSlyZXR1cm4gbnVsbDtsZXQgX2U9RGUuc3BsaXQoIiAiKSxDZT1fZVswXSx2ZT1fZVsxXXx8IiIsYmU9bnVsbCxFZT1DZS5tYXRjaCgvXihcZHs0fSktKFxkezEsMn0pLShcZHsxLDJ9KSQvKTtpZihFZSl7bGV0W2plLFdlLHN0LE1lXT1FZTtiZT1uZXcgRGF0ZShwYXJzZUludChXZSkscGFyc2VJbnQoc3QpLTEscGFyc2VJbnQoTWUpKX1pZighYmUpe2xldCBqZT1DZS5tYXRjaCgvXihcZHsxLDJ9KVwuKFxkezEsMn0pXC4oXGR7NH0pJC8pO2lmKGplKXtsZXRbV2Usc3QsTWUsZ2VdPWplO2JlPW5ldyBEYXRlKHBhcnNlSW50KGdlKSxwYXJzZUludChNZSktMSxwYXJzZUludChzdCkpfX1pZighYmUpe2xldCBqZT1DZS5tYXRjaCgvXihcZHsxLDJ9KVwvKFxkezEsMn0pXC8oXGR7NH0pJC8pO2lmKGplKXtsZXRbV2Usc3QsTWUsZ2VdPWplO2JlPW5ldyBEYXRlKHBhcnNlSW50KGdlKSxwYXJzZUludChzdCktMSxwYXJzZUludChNZSkpfX1pZighYmV8fGlzTmFOKGJlLmdldFRpbWUoKSkpcmV0dXJuIG51bGw7aWYodmUpe2xldCBqZT12ZS5tYXRjaCgvXihcZHsxLDJ9KTooXGR7Mn0pJC8pO2lmKGplKXtsZXRbV2Usc3QsTWVdPWplO2JlLnNldEhvdXJzKHBhcnNlSW50KHN0KSksYmUuc2V0TWludXRlcyhwYXJzZUludChNZSkpfX1lbHNlIGlmKCF0aGlzLmVuYWJsZVRpbWUpe2xldCBqZT1uZXcgRGF0ZTtiZS5zZXRIb3VycyhqZS5nZXRIb3VycygpKSxiZS5zZXRNaW51dGVzKGplLmdldE1pbnV0ZXMoKSksYmUuc2V0U2Vjb25kcygwKSxiZS5zZXRNaWxsaXNlY29uZHMoMCl9cmV0dXJuIGJlfWZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKERlKXtpZighdGhpcy5lbmFibGVUaW1lem9uZSlyZXR1cm4gRGUudG9JU09TdHJpbmcoKTtsZXQgQ2U9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7eWVhcjoibnVtZXJpYyIsbW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQiLGhvdXIxMjohMSx0aW1lWm9uZTp0aGlzLnRpbWV6b25lLHRpbWVab25lTmFtZToic2hvcnQifSkuZm9ybWF0VG9QYXJ0cyhEZSksdmU9e307Q2UuZm9yRWFjaChqZT0+e3ZlW2plLnR5cGVdPWplLnZhbHVlfSk7bGV0IGJlPWAke3ZlLnllYXJ9LSR7dmUubW9udGh9LSR7dmUuZGF5fVQke3ZlLmhvdXJ9OiR7dmUubWludXRlfToke3ZlLnNlY29uZH1gLEVlPXRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoRGUsdGhpcy50aW1lem9uZSk7cmV0dXJuYCR7YmV9JHtFZX1gfWdldFRpbWV6b25lT2Zmc2V0KERlLF9lKXtsZXQgQ2U9bmV3IERhdGUoRGUudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7dGltZVpvbmU6X2V9KSksdmU9bmV3IERhdGUoRGUudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7dGltZVpvbmU6IlVUQyJ9KSksYmU9KENlLmdldFRpbWUoKS12ZS5nZXRUaW1lKCkpLygxZTMqNjApLEVlPU1hdGguZmxvb3IoTWF0aC5hYnMoYmUpLzYwKSxqZT1NYXRoLmFicyhiZSklNjA7cmV0dXJuYCR7YmU+PTA/IisiOiItIn0ke0VlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke2plLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShEZSl7aWYodGhpcy52YWx1ZT1EZSxEZSl0cnl7bGV0IF9lPW5ldyBEYXRlKERlKTtpc05hTihfZS5nZXRUaW1lKCkpfHwodGhpcy5zZWxlY3RlZERhdGU9X2UsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShfZSksdGhpcy5zZWxlY3RlZEhvdXI9X2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPV9lLmdldE1pbnV0ZXMoKSl9Y2F0Y2h7fX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5wb3B1cEluc3RhbmNlJiYodGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRhdGUtc2VsZWN0ZWQiLHRoaXMuaGFuZGxlRGF0ZVNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1jbGVhcmVkIix0aGlzLmhhbmRsZURhdGVDbGVhcmVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCksdGhpcy5wb3B1cEluc3RhbmNlPW51bGwpfXN0YXRpY3tLYShhLHQpfX07cmV0dXJuIEdlPWF9KSgpfSk7dmFyIEExZT1nKCgpPT57cW90KCk7Vm90KCl9KTt2YXIgYmJhLHZiYT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7YmJhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuaW50ZXJhY3RpdmUtc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLChyPT57Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBjaGFuZ2VkIHRvOmAsYS5nZXRWYWx1ZSgpKX0pKSxhLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBsb3N0IGZvY3VzYCl9KX0pLHMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0icGFzc3dvcmQiXScpJiZjb25zb2xlLmxvZygiUGFzc3dvcmQgaW5wdXQgaW5jbHVkZXMgdmlzaWJpbGl0eSB0b2dnbGUiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVGV4dCBJbnB1dHMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgdGV4dCBpbnB1dHMgd2l0aCBsYWJlbHMgYW5kIGRlc2NyaXB0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJVc2VybmFtZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJqb2huZG9lIn0KICAgICAgICAgICAgLmtleT0keyJ1c2VybmFtZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJZb3VyIHVzZXJuYW1lIHdpbGwgYmUgdmlzaWJsZSB0byBvdGhlciB1c2VycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJqb2huQGV4YW1wbGUuY29tIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IldlIHdpbGwgbmV2ZXIgc2hhcmUgeW91ciBlbWFpbCB3aXRoIGFueW9uZSJ9CiAgICAgICAgICAgIC5rZXk9JHsiZW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlBhc3N3b3JkIn0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzZWNyZXQxMjMifQogICAgICAgICAgICAua2V5PSR7InBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKHI9PntsZXQgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyKTtjb25zb2xlLmxvZyhgSG9yaXpvbnRhbCBpbnB1dCAiJHtyLmxhYmVsfSIgZGlzcGxheTpgLG4uZGlzcGxheSl9KTtsZXQgdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtrZXk9ImZpcnN0TmFtZSJdJyksYT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtrZXk9Imxhc3ROYW1lIl0nKTtpZih0JiZhKXtsZXQgcj1pKCgpPT57bGV0IG49dC5nZXRWYWx1ZSgpLG89YS5nZXRWYWx1ZSgpO2NvbnNvbGUubG9nKGBGdWxsIG5hbWU6ICR7bn0gJHtvfWApfSwidXBkYXRlRnVsbE5hbWUiKTt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLHIpLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIscil9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkZpcnN0IE5hbWUifQogICAgICAgICAgICAgIC52YWx1ZT0keyJKb2huIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7ImZpcnN0TmFtZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAubGFiZWw9JHsiTGFzdCBOYW1lIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiRG9lIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Imxhc3ROYW1lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZ2UifQogICAgICAgICAgICAgIC52YWx1ZT0keyIyOCJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJhZ2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKGE9PntsZXQgcj1hLmxhYmVsUG9zaXRpb247Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBoYXMgbGFiZWwgcG9zaXRpb246ICR7cn1gKX0pO2xldCB0PXMucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1pbnB1dC10ZXh0W2xhYmVsUG9zaXRpb249ImxlZnQiXScpO3QubGVuZ3RoPjAmJmNvbnNvbGUubG9nKGAke3QubGVuZ3RofSBpbnB1dHMgaGF2ZSBsZWZ0LWFsaWduZWQgbGFiZWxzIGZvciBpbmxpbmUgbGF5b3V0YCl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhYmVsIFBvc2l0aW9ucyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgbGFiZWwgcG9zaXRpb25pbmcgb3B0aW9ucyBmb3IgdmFyaW91cyBsYXlvdXRzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIFRvcCAoRGVmYXVsdCkifQogICAgICAgICAgICAudmFsdWU9JHsiU3RhbmRhcmQgbGF5b3V0In0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsidG9wIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJMYWJlbCBvbiBMZWZ0In0KICAgICAgICAgICAgLnZhbHVlPSR7IklubGluZSBsYWJlbCJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkNpdHkifQogICAgICAgICAgICAudmFsdWU9JHsiTmV3IFlvcmsifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJaSVAgQ29kZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyIxMDAwMSJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmFsaWRhdGlvbiBzdGF0ZXMgYW5kIGlucHV0IGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWRGaWVsZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRmllbGQifQogICAgICAgICAgICAudmFsdWU9JHsiQ2Fubm90IGVkaXQgdGhpcyJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIHdpdGggVmFsaWRhdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJpbnZhbGlkQCJ9CiAgICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHtzPT4vXlteXHNAXStAW15cc0BdK1wuW15cc0BdKyQvLnRlc3Qocyk/e3ZhbGlkOiEwLG1lc3NhZ2U6IkVtYWlsIGFkZHJlc3MgaXMgdmFsaWQifTp7dmFsaWQ6ITEsbWVzc2FnZToiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dFtpc1Bhc3N3b3JkQm9vbF0iKS5mb3JFYWNoKHQ9PntsZXQgYT10LHI9aSgoKT0+e2xldCBuPWEuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgUGFzc3dvcmQgZmllbGQgIiR7YS5sYWJlbH0iIHR5cGU6YCxuLnR5cGUpfSwiY2hlY2tUb2dnbGUiKTtpZihhLnNoYWRvd1Jvb3Qpe2xldCBuPW5ldyBNdXRhdGlvbk9ic2VydmVyKHIpLG89YS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7byYmbi5vYnNlcnZlKG8se2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsidHlwZSJdfSl9fSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkFkdmFuY2VkIEZlYXR1cmVzIn0gLnN1YnRpdGxlPSR7IlBhc3N3b3JkIHZpc2liaWxpdHkgdG9nZ2xlIGFuZCBvdGhlciBhZHZhbmNlZCBmZWF0dXJlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQYXNzd29yZCB3aXRoIFRvZ2dsZSJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsibXlTZWN1cmVQYXNzd29yZDEyMyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJDbGljayB0aGUgZXllIGljb24gdG8gc2hvdy9oaWRlIHBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJBUEkgS2V5In0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzay0xMjM0NTY3ODkwYWJjZGVmIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IktlZXAgdGhpcyBrZXkgc2VjdXJlIGFuZCBuZXZlciBzaGFyZSBpdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0IiksdD1zLnF1ZXJ5U2VsZWN0b3IoIiN0ZXh0LWlucHV0LW91dHB1dCIpO2UmJnQmJmUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0LnRleHRDb250ZW50PWBDdXJyZW50IHZhbHVlOiAiJHtlLmdldFZhbHVlKCl9ImB9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUcnkgdHlwaW5nIGluIHRoZSBpbnB1dCB0byBzZWUgcmVhbC10aW1lIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAubGFiZWw9JHsiRHluYW1pYyBJbnB1dCJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9InRleHQtaW5wdXQtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkN1cnJlbnQgdmFsdWU6ICIiPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBJdSxPbyxXb3QsbzQ9ZygoKT0+e3cyKCk7RWkoKTt2YmEoKTtFcigpO3BlKCk7aHQoKTtmcigpO0l1PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxPbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sV290PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC10ZXh0IildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W107dmFyIEk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRleHQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGM9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHg9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0seT1bTCh7cmVmbGVjdDohMH0pXSxOPVtMKHthdHRyaWJ1dGU6ITF9KV0sTz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sSD1bTCh7YXR0cmlidXRlOiExfSldLEl1KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbHVlImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsdWUsImdldCIpLHNldDppKChSLEspPT57Ui52YWx1ZT1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LG8sbCksSXUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iaXNQYXNzd29yZEJvb2wiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5pc1Bhc3N3b3JkQm9vbCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmlzUGFzc3dvcmRCb29sPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sZCx1KSxJdSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InNob3dQYXNzd29yZEJvb2wiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5zaG93UGFzc3dvcmRCb29sLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc2hvd1Bhc3N3b3JkQm9vbD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGIsdiksSXUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbGlkYXRpb25TdGF0ZSJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnZhbGlkYXRpb25TdGF0ZSwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbGlkYXRpb25TdGF0ZT1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LG0sZiksSXUodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsaWRhdGlvblRleHQiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWxpZGF0aW9uVGV4dCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbGlkYXRpb25UZXh0PUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sTSx6KSxJdSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25GdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsaWRhdGlvbkZ1bmN0aW9uImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsaWRhdGlvbkZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmFsaWRhdGlvbkZ1bmN0aW9uPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxJdSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpbnRlZ3JhdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJ2aW50ZWdyYXRlZCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnZpbnRlZ3JhdGVkLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmludGVncmF0ZWQ9S30sInNldCIpfSxtZXRhZGF0YTpQfSwkLEUpLEl1KHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRDb25maXJtZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbGlkQ29uZmlybWVkImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsaWRDb25maXJtZWQsImdldCIpLHNldDppKChSLEspPT57Ui52YWxpZENvbmZpcm1lZD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGssUyksSXUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6UH0sbnVsbCx0KSxJPWE9ZS52YWx1ZSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX1zdGF0aWMgZGVtbz1iYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPU9vKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFApe3RoaXMuI2U9UH0jdD0oT28odGhpcyxsKSxPbyh0aGlzLGQsITEpKTtnZXQgaXNQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNQYXNzd29yZEJvb2woUCl7dGhpcy4jdD1QfSNhPShPbyh0aGlzLHUpLE9vKHRoaXMsYiwhMSkpO2dldCBzaG93UGFzc3dvcmRCb29sKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dQYXNzd29yZEJvb2woUCl7dGhpcy4jYT1QfSNzPShPbyh0aGlzLHYpLE9vKHRoaXMsbSx2b2lkIDApKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25TdGF0ZShQKXt0aGlzLiNzPVB9I2k9KE9vKHRoaXMsZiksT28odGhpcyxNLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbGlkYXRpb25UZXh0KFApe3RoaXMuI2k9UH0jcj0oT28odGhpcyx6KSxPbyh0aGlzLEMsdm9pZCAwKSk7Z2V0IHZhbGlkYXRpb25GdW5jdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCB2YWxpZGF0aW9uRnVuY3Rpb24oUCl7dGhpcy4jcj1QfSNvPShPbyh0aGlzLF8pLE9vKHRoaXMsJCwhMSkpO2dldCB2aW50ZWdyYXRlZCgpe3JldHVybiB0aGlzLiNvfXNldCB2aW50ZWdyYXRlZChQKXt0aGlzLiNvPVB9I249KE9vKHRoaXMsRSksT28odGhpcyxrLCExKSk7Z2V0IHZhbGlkQ29uZmlybWVkKCl7cmV0dXJuIHRoaXMuI259c2V0IHZhbGlkQ29uZmlybWVkKFApe3RoaXMuI249UH12YWxpZFRpbWVvdXQ9T28odGhpcyxTKTtzdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoOmZvY3VzKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIFBhc3N3b3JkIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLnNob3dQYXNzd29yZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxcHg7CiAgICAgICAgdG9wOiAyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM4cHg7CiAgICAgICAgaGVpZ2h0OiAzOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDVweCA1cHggMDsKICAgICAgfQoKICAgICAgLnNob3dQYXNzd29yZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkIGNoZWNrbWFyayBpY29uICovCiAgICAgIC52YWxpZEljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTBweDsKICAgICAgICB0b3A6IDIwcHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC52YWxpZEljb24uc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnZhbGlkSWNvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLmludmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLndhcm4gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMSkiLCJoc2woMjUgOTUlIDYzJSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLnZhbGlkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLyogRXJyb3Igc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9ImludmFsaWQiXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjA1KSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdhcm5pbmcgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9Indhcm4iXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0id2FybiJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjA1KSIsImhzbCgyNSA5NSUgNjMlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ2YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9InZhbGlkIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMDUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZpc3VhbGx5IGludGVncmF0ZWQgbW9kZTogc2hlZCBjaHJvbWUgdG8gYmxlbmQgaW50byBhIGhvc3QgY29tcG9uZW50CiAgICAgICAgIChlLmcuIGEgZGVlcy10YWJsZSBjZWxsIGluIGVkaXQgbW9kZSkuICovCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGRlZXMtbGFiZWwsCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5tYWluY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgaW5wdXQgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBpbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoOmZvY3VzKSwKICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5zaG93UGFzc3dvcmQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgaW5wdXQgewogICAgICAgICAgZm9udC1mYW1pbHk6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD9CZzoiaW5oZXJpdCJ9OwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD8iMC41cHgiOiJub3JtYWwifTsKICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD8iNDhweCI6dGhpcy52YWxpZENvbmZpcm1lZD8iNDBweCI6IjEycHgifTsKICAgICAgICB9CiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0JiYhdGhpcy52YWxpZENvbmZpcm1lZD9KYAogICAgICAgICAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBgOkpgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSIke3RoaXMuaXNQYXNzd29yZEJvb2wmJiF0aGlzLnNob3dQYXNzd29yZEJvb2w/InBhc3N3b3JkIjoidGV4dCJ9IgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy51cGRhdGVWYWx1ZX0iCiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIke3RoaXMubGFiZWw/IiI6IkVudGVyIHRleHQuLi4ifSIKICAgICAgICAgIC8+CiAgICAgICAgICAke3RoaXMuaXNQYXNzd29yZEJvb2w/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3dQYXNzd29yZCIgQGNsaWNrPSR7dGhpcy50b2dnbGVQYXNzd29yZFZpZXd9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5zaG93UGFzc3dvcmRCb29sPyJsdWNpZGU6RXllIjoibHVjaWRlOkV5ZU9mZiJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZEljb24gJHt0aGlzLnZhbGlkQ29uZmlybWVkPyJzaG93IjoiIn0iPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIgJHt0aGlzLnZhbGlkYXRpb25TdGF0ZXx8ImludmFsaWQifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyIj48L2Rpdj5gfQogICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbGlkYXRpb25GdW5jdGlvbiYmdGhpcy52YWx1ZSl7bGV0IFA9dGhpcy52YWxpZGF0aW9uRnVuY3Rpb24odGhpcy52YWx1ZSk7dGhpcy52YWxpZGF0aW9uU3RhdGU9UC52YWxpZD8idmFsaWQiOiJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25UZXh0PVAubWVzc2FnZXx8IiIsUC52YWxpZCYmKHRoaXMudmFsaWRDb25maXJtZWQ9ITEsdGhpcy52YWxpZFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudmFsaWRDb25maXJtZWQ9ITAsdGhpcy52YWxpZGF0aW9uU3RhdGU9dm9pZCAwfSw1MDApKX19YXN5bmMgdXBkYXRlVmFsdWUoUCl7bGV0IFI9UC50YXJnZXQ7aWYodGhpcy52YWx1ZT1SLnZhbHVlLHRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uKXtsZXQgSz10aGlzLnZhbGlkYXRpb25GdW5jdGlvbih0aGlzLnZhbHVlKTt0aGlzLnZhbGlkYXRpb25TdGF0ZT1LLnZhbGlkPyJ2YWxpZCI6ImludmFsaWQiLHRoaXMudmFsaWRhdGlvblRleHQ9Sy5tZXNzYWdlfHwiIixLLnZhbGlkPyh0aGlzLnZhbGlkQ29uZmlybWVkPSExLGNsZWFyVGltZW91dCh0aGlzLnZhbGlkVGltZW91dCksdGhpcy52YWxpZFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudmFsaWRDb25maXJtZWQ9ITAsdGhpcy52YWxpZGF0aW9uU3RhdGU9dm9pZCAwfSw1MDApKTooY2xlYXJUaW1lb3V0KHRoaXMudmFsaWRUaW1lb3V0KSx0aGlzLnZhbGlkQ29uZmlybWVkPSExKX10aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IFA9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IiksUj1QLnNlbGVjdGlvblN0YXJ0IT09UC5zZWxlY3Rpb25FbmQ7cmV0dXJuW3tuYW1lOiJDdXQiLGljb25OYW1lOiJsdWNpZGU6U2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsZGlzYWJsZWQ6IVIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBLPXRoaXMudmFsdWUuc3Vic3RyaW5nKFAuc2VsZWN0aW9uU3RhcnQsUC5zZWxlY3Rpb25FbmQpO2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEspO2xldCBWPVAuc2VsZWN0aW9uU3RhcnQ7dGhpcy52YWx1ZT10aGlzLnZhbHVlLnN1YnN0cmluZygwLFYpK3RoaXMudmFsdWUuc3Vic3RyaW5nKFAuc2VsZWN0aW9uRW5kKSxQLnZhbHVlPXRoaXMudmFsdWUsUC5zZXRTZWxlY3Rpb25SYW5nZShWLFYpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsZGlzYWJsZWQ6IVIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBLPXRoaXMudmFsdWUuc3Vic3RyaW5nKFAuc2VsZWN0aW9uU3RhcnQsUC5zZWxlY3Rpb25FbmQpO2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEspfSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpDbGlwYm9hcmRQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT57bGV0IEs9YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgpLFY9UC5zZWxlY3Rpb25TdGFydCxXPVAuc2VsZWN0aW9uRW5kO3RoaXMudmFsdWU9dGhpcy52YWx1ZS5zdWJzdHJpbmcoMCxWKStLK3RoaXMudmFsdWUuc3Vic3RyaW5nKFcpLFAudmFsdWU9dGhpcy52YWx1ZSxQLnNldFNlbGVjdGlvblJhbmdlKFYrSy5sZW5ndGgsVitLLmxlbmd0aCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZWxlY3QgQWxsIixpY29uTmFtZToibHVjaWRlOlRleHRDdXJzb3JJbnB1dCIsc2hvcnRjdXQ6IkNtZCtBIixhY3Rpb246aShhc3luYygpPT57UC5zZWxlY3QoKX0sImFjdGlvbiIpfV19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShQKXt0aGlzLnZhbHVlPVB9YXN5bmMgdG9nZ2xlUGFzc3dvcmRWaWV3KCl7dGhpcy5zaG93UGFzc3dvcmRCb29sPSF0aGlzLnNob3dQYXNzd29yZEJvb2x9YXN5bmMgZm9jdXMoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpfWFzeW5jIGJsdXIoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5ibHVyKCl9c3RhdGlje09vKGEsdCl9fTtyZXR1cm4gST1hfSkoKX0pO3ZhciB4YmEseWJhPWcoKCk9PntwZSgpO0l0KCk7eG8oKTt4YmE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJvZHVjdC1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnktdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXRvdGFsIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdGVkLXByb2R1Y3RzIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQcm9kdWN0IENhcmRzIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBwcm9kdWN0IGRpc3BsYXkgd2l0aCB2YXJpb3VzIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJXaXJlbGVzcyBCbHVldG9vdGggSGVhZHBob25lcyIsY2F0ZWdvcnk6IkF1ZGlvIixkZXNjcmlwdGlvbjoiUHJlbWl1bSBzb3VuZCBxdWFsaXR5IHdpdGggYWN0aXZlIG5vaXNlIGNhbmNlbGxhdGlvbiIscHJpY2U6MTQ5Ljk5LG9yaWdpbmFsUHJpY2U6MTk5Ljk5LGljb25OYW1lOiJsdWNpZGU6aGVhZHBob25lcyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU21hcnQgV2F0Y2ggU2VyaWVzIDciLGNhdGVnb3J5OiJXZWFyYWJsZXMiLGRlc2NyaXB0aW9uOiJUcmFjayB5b3VyIGZpdG5lc3MgYW5kIHN0YXkgY29ubmVjdGVkIG9uIHRoZSBnbyIscHJpY2U6Mzk5LGljb25OYW1lOiJsdWNpZGU6d2F0Y2gifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlVTQi1DIEh1YiIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixwcmljZTo0OS45OSxpY29uTmFtZToibHVjaWRlOnVzYiIsaW5TdG9jazohMX19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJQcm9kdWN0IGNhcmRzIHdpdGggZHluYW1pYyBjYXJ0IGNhbGN1bGF0aW9uIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPVt7aWQ6ImxhcHRvcCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6J01hY0Jvb2sgUHJvIDE0IicsY2F0ZWdvcnk6IkNvbXB1dGVycyIsZGVzY3JpcHRpb246Ik0zIFBybyBjaGlwIHdpdGggMThHQiBSQU0iLHByaWNlOjE5OTksb3JpZ2luYWxQcmljZToyMTk5LGljb25OYW1lOiJsdWNpZGU6bGFwdG9wIn19LHtpZDoiaXBhZCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6ImlQYWQgQWlyIixjYXRlZ29yeToiVGFibGV0cyIsZGVzY3JpcHRpb246JzEwLjkiIExpcXVpZCBSZXRpbmEgZGlzcGxheScscHJpY2U6NTk5LGljb25OYW1lOiJsdWNpZGU6dGFibGV0In19LHtpZDoia2V5Ym9hcmQiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOiJNYWdpYyBLZXlib2FyZCIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiV2lyZWxlc3Mga2V5Ym9hcmQgd2l0aCBUb3VjaCBJRCIscHJpY2U6MTQ5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX1dLHQ9aSgoKT0+e2xldCBhPTAscj1bXTtlLmZvckVhY2gobz0+e2xldCBsPXMucXVlcnlTZWxlY3RvcihgIyR7by5pZH1gKTtpZihsJiZsLnF1YW50aXR5PjApe2xldCBwPW8uZGF0YS5wcmljZSpsLnF1YW50aXR5O2ErPXAsci5wdXNoKGAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7by5kYXRhLm5hbWV9ICgke2wucXVhbnRpdHl9KTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JCR7cC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfX0pO2xldCBuPXMucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSIpO24mJihuLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgJHtyLmpvaW4oIiIpfQogICAgICAgICAgICAgICR7ci5sZW5ndGg9PT0wPyc8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjOTk5OyI+WW91ciBjYXJ0IGlzIGVtcHR5PC9kaXY+JzoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXRvdGFsIj4KICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7YS50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9LCJ1cGRhdGVDYXJ0U3VtbWFyeSIpO3NldFRpbWVvdXQodCwxMDApLHMucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigicXVhbnRpdHlDaGFuZ2UiLHQpfSl9fT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImxhcHRvcCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6J01hY0Jvb2sgUHJvIDE0IicsY2F0ZWdvcnk6IkNvbXB1dGVycyIsZGVzY3JpcHRpb246Ik0zIFBybyBjaGlwIHdpdGggMThHQiBSQU0iLHByaWNlOjE5OTksb3JpZ2luYWxQcmljZToyMTk5LGljb25OYW1lOiJsdWNpZGU6bGFwdG9wIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJpcGFkIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImtleWJvYXJkIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWFnaWMgS2V5Ym9hcmQiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IldpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQiLHByaWNlOjE0OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXN1bW1hcnkiPgogICAgICAgICAgPGgzIGNsYXNzPSJjYXJ0LXN1bW1hcnktdGl0bGUiPlNob3BwaW5nIENhcnQ8L2gzPgogICAgICAgICAgPGRpdiBpZD0iaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgICAgPCEtLSBEeW5hbWljYWxseSB1cGRhdGVkIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZWxlY3RhYmxlIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiQ2xpY2sgY2FyZHMgb3IgY2hlY2tib3hlcyB0byBzZWxlY3QgcHJvZHVjdHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNvbnkgQWxwaGEgNyBJViIsY2F0ZWdvcnk6IkNhbWVyYXMiLGRlc2NyaXB0aW9uOiJGdWxsLWZyYW1lIG1pcnJvcmxlc3MgY2FtZXJhIixwcmljZToyNDk4LGljb25OYW1lOiJsdWNpZGU6Y2FtZXJhIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGE9W107dC5mb3JFYWNoKHI9PntyLnNlbGVjdGVkJiZhLnB1c2goci5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9YS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7YS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiREpJIE1pbmkgMyBQcm8iLGNhdGVnb3J5OiJEcm9uZXMiLGRlc2NyaXB0aW9uOiJMaWdodHdlaWdodCBkcm9uZSB3aXRoIDRLIGNhbWVyYSIscHJpY2U6NzU5LGljb25OYW1lOiJsdWNpZGU6cGxhbmUifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksYT1bXTt0LmZvckVhY2gocj0+e3Iuc2VsZWN0ZWQmJmEucHVzaChyLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1hLmxlbmd0aD4wP2BTZWxlY3RlZDogJHthLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJHb1BybyBIRVJPMTIiLGNhdGVnb3J5OiJBY3Rpb24gQ2FtZXJhcyIsZGVzY3JpcHRpb246IjUuM0sgdmlkZW8gd2l0aCBIeXBlclNtb290aCA2LjAiLHByaWNlOjM5OSxvcmlnaW5hbFByaWNlOjQ0OSxpY29uTmFtZToibHVjaWRlOnZpZGVvIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGE9W107dC5mb3JFYWNoKHI9PntyLnNlbGVjdGVkJiZhLnB1c2goci5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9YS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7YS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3RlZC1wcm9kdWN0cyIgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICBObyBwcm9kdWN0cyBzZWxlY3RlZAogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZHVjdCBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJMaW1pdGVkIEVkaXRpb24gU25lYWtlcnMiLGNhdGVnb3J5OiJGb290d2VhciIsZGVzY3JpcHRpb246IkV4Y2x1c2l2ZSBjb2xvcndheSAtIE9ubHkgNTAwIHBhaXJzIixwcmljZToyOTksaWNvbk5hbWU6Imx1Y2lkZTpmb290cHJpbnRzIixpblN0b2NrOiExLHN0b2NrVGV4dDoiU29sZCBPdXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6Ik1pbmltYWxpc3QgV2FsbGV0IixwcmljZTozOS45OSxpY29uTmFtZToibHVjaWRlOndhbGxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiUHJlbWl1bSBDb2ZmZWUgQmVhbnMiLGNhdGVnb3J5OiJGb29kICYgQmV2ZXJhZ2UiLGRlc2NyaXB0aW9uOiJTaW5nbGUgb3JpZ2luLCBtZWRpdW0gcm9hc3QiLHByaWNlOjE4LjUsaWNvbk5hbWU6Imx1Y2lkZTpjb2ZmZWUiLGN1cnJlbmN5OiJcdTIwQUMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB4eCxTMixqSmEsR290PWcoKCk9PntwZSgpO3liYSgpO2h0KCk7bXIoKTt4eD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sUzI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGpKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1Nob3BwaW5nUHJvZHVjdGNhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSx4eCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2R1Y3REYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJwcm9kdWN0RGF0YSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnByb2R1Y3REYXRhLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucHJvZHVjdERhdGE9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHh4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicXVhbnRpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InF1YW50aXR5ImluIF8sImhhcyIpLGdldDppKF89Pl8ucXVhbnRpdHksImdldCIpLHNldDppKChfLE8pPT57Xy5xdWFudGl0eT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSkseHgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UXVhbnRpdHlTZWxlY3RvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2hvd1F1YW50aXR5U2VsZWN0b3IiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zaG93UXVhbnRpdHlTZWxlY3RvciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNob3dRdWFudGl0eVNlbGVjdG9yPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSx4eCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNlbGVjdGFibGUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RhYmxlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2VsZWN0YWJsZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZikseHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0ZWQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RlZCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSx4eChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPXhiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPVMyKHRoaXMsbyx7bmFtZToiUHJvZHVjdCBOYW1lIixwcmljZTowfSk7Z2V0IHByb2R1Y3REYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb2R1Y3REYXRhKEMpe3RoaXMuI2U9Q30jdD0oUzIodGhpcyxsKSxTMih0aGlzLGQsMCkpO2dldCBxdWFudGl0eSgpe3JldHVybiB0aGlzLiN0fXNldCBxdWFudGl0eShDKXt0aGlzLiN0PUN9I2E9KFMyKHRoaXMsdSksUzIodGhpcyxiLCEwKSk7Z2V0IHNob3dRdWFudGl0eVNlbGVjdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dRdWFudGl0eVNlbGVjdG9yKEMpe3RoaXMuI2E9Q30jcz0oUzIodGhpcyx2KSxTMih0aGlzLG0sITEpKTtnZXQgc2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RhYmxlKEMpe3RoaXMuI3M9Q30jaT0oUzIodGhpcyxmKSxTMih0aGlzLE0sITEpKTtnZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWQoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zZWxlY3RhYmxlIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zZWxlY3RlZDo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDE4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucHJvZHVjdC1pbWFnZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94IGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICB9CgogICAgICAucHJvZHVjdC1oZWFkZXItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhdGVnb3J5IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtYm9keSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgZmxleDogMTsKICAgICAgfQogICAgICAKICAgICAgLnByb2R1Y3QtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtcHJpY2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnByaWNlLWN1cnJlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5wcmljZS1vcmlnaW5hbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMuaW4tc3RvY2sgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMub3V0LW9mLXN0b2NrIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cyBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0e25hbWU6QyxjYXRlZ29yeTpfLGRlc2NyaXB0aW9uOk8scHJpY2U6JCxvcmlnaW5hbFByaWNlOkUsY3VycmVuY3k6SD0iJCIsaW5TdG9jazprPSEwLHN0b2NrVGV4dDpTPWs/IkluIFN0b2NrIjoiT3V0IG9mIFN0b2NrIixpbWFnZVVybDpJLGljb25OYW1lOlA9Imx1Y2lkZTpwYWNrYWdlIn09dGhpcy5wcm9kdWN0RGF0YSxSPWkoSz0+YCR7SH0ke0sudG9GaXhlZCgyKX1gLCJmb3JtYXRQcmljZSIpO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlCiAgICAgICAgY2xhc3M9IiR7dGhpcy5zZWxlY3RhYmxlPyJzZWxlY3RhYmxlIjoiIn0gJHt0aGlzLnNlbGVjdGVkPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2FyZENsaWNrfQogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJwcm9kdWN0LWhlYWRlci1iYXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtbmFtZSI+JHtDfTwvc3Bhbj4KICAgICAgICAgICR7Xz93YDxzcGFuIGNsYXNzPSJwcm9kdWN0LWNhdGVnb3J5Ij4ke199PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ib2R5Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtaW1hZ2UiPgogICAgICAgICAgICAke0k/d2AKICAgICAgICAgICAgICA8aW1nIHNyYz0iJHtJfSIgYWx0PSIke0N9Ij4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtQfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGFibGU/d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ic2VsZWN0aW9uLWNoZWNrYm94ICR7dGhpcy5zZWxlY3RlZD8iY2hlY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7Sz0+e0suc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5oYW5kbGVTZWxlY3Rpb25Ub2dnbGUoKX19CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50Ij4KICAgICAgICAgICAgJHtPP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1kZXNjcmlwdGlvbiI+JHtPfTwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdG9jay1zdGF0dXMgJHtrPyJpbi1zdG9jayI6Im91dC1vZi1zdG9jayJ9Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7az8ibHVjaWRlOmNoZWNrLWNpcmNsZSI6Imx1Y2lkZTp4LWNpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICR7U30KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InByb2R1Y3QtZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcHJpY2UiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtY3VycmVudCI+JHtSKCQpfTwvc3Bhbj4KICAgICAgICAgICAgJHtFJiZFPiQ/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2Utb3JpZ2luYWwiPiR7UihFKX08L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5zaG93UXVhbnRpdHlTZWxlY3Rvcj93YAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5xdWFudGl0eX0KICAgICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke0s9Pnt0aGlzLnF1YW50aXR5PUsuZGV0YWlsLmdldFZhbHVlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicXVhbnRpdHlDaGFuZ2UiLHtkZXRhaWw6e3F1YW50aXR5OnRoaXMucXVhbnRpdHkscHJvZHVjdERhdGE6dGhpcy5wcm9kdWN0RGF0YX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1oYW5kbGVDYXJkQ2xpY2soKXt0aGlzLnNlbGVjdGFibGUmJih0aGlzLnNlbGVjdGVkPSF0aGlzLnNlbGVjdGVkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGlvbkNoYW5nZSIse2RldGFpbDp7c2VsZWN0ZWQ6dGhpcy5zZWxlY3RlZCxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1oYW5kbGVTZWxlY3Rpb25Ub2dnbGUoKXt0aGlzLnNlbGVjdGVkPSF0aGlzLnNlbGVjdGVkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGlvbkNoYW5nZSIse2RldGFpbDp7c2VsZWN0ZWQ6dGhpcy5zZWxlY3RlZCxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxTMih0aGlzLHopfXN0YXRpY3tTMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgd2JhLGtiYT1nKCgpPT57cGUoKTtHb3QoKTt3YmE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hvcHBpbmctZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBRdWFudGl0eSBTZWxlY3RvciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcXVhbnRpdHkgaW5wdXQgd2l0aCBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik1pbmltdW0gb3JkZXIgcXVhbnRpdHkgaXMgMSBpdGVtIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJJdGVtcyBpbiBDYXJ0In0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkanVzdCB0aGUgcXVhbnRpdHkgb2YgaXRlbXMifQogICAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJNb2Rlcm4gZS1jb21tZXJjZSBwcm9kdWN0IGNhcmRzIHdpdGggaW50ZXJhY3RpdmUgcXVhbnRpdHkgc2VsZWN0b3JzIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPWkoKCk9PntsZXQgdD1zLnF1ZXJ5U2VsZWN0b3IoIiNoZWFkcGhvbmVzLXF0eSIpLGE9cy5xdWVyeVNlbGVjdG9yKCIjbW91c2UtcXR5Iikscj1zLnF1ZXJ5U2VsZWN0b3IoIiNrZXlib2FyZC1xdHkiKSxuPXQ/LnF1YW50aXR5fHwwLG89YT8ucXVhbnRpdHl8fDAsbD1yPy5xdWFudGl0eXx8MCxwPTM0OS45OSpuLGQ9OTkuOTkqbyx1PTc5Ljk5KmwsYz1wK2QrdSxiPXMucXVlcnlTZWxlY3RvcigiI2NhcnQtc3VtbWFyeS1jb250ZW50Iik7YiYmKGIuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke24+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPlNvbnkgV0gtMTAwMFhNNSAoJHtufSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtwLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtvPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Mb2dpdGVjaCBNWCBNYXN0ZXIgM1MgKCR7b30pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7bD4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+S2V5Y2hyb24gSzIgKCR7bH0pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7dS50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7Yz09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtjLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0sInVwZGF0ZUNhcnRTdW1tYXJ5Iik7c2V0VGltZW91dChlLDEwMCkscy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIsZSl9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InNob3BwaW5nLWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImhlYWRwaG9uZXMtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBXSC0xMDAwWE01IFdpcmVsZXNzIEhlYWRwaG9uZXMiLGNhdGVnb3J5OiJBdWRpbyIsZGVzY3JpcHRpb246IkluZHVzdHJ5LWxlYWRpbmcgbm9pc2UgY2FuY2VsaW5nIHdpdGggQXV0byBOQyBPcHRpbWl6ZXIiLHByaWNlOjM0OS45OSxvcmlnaW5hbFByaWNlOjM5OS45OSxpY29uTmFtZToibHVjaWRlOmhlYWRwaG9uZXMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJtb3VzZS1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJMb2dpdGVjaCBNWCBNYXN0ZXIgM1MiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IlBlcmZvcm1hbmNlIHdpcmVsZXNzIG1vdXNlIHdpdGggdWx0cmEtZmFzdCBzY3JvbGxpbmciLHByaWNlOjk5Ljk5LGljb25OYW1lOiJsdWNpZGU6bW91c2UtcG9pbnRlciJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImtleWJvYXJkLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IktleWNocm9uIEsyIFdpcmVsZXNzIE1lY2hhbmljYWwgS2V5Ym9hcmQiLGNhdGVnb3J5OiJLZXlib2FyZHMiLGRlc2NyaXB0aW9uOiJDb21wYWN0IDc1JSBsYXlvdXQgd2l0aCBob3Qtc3dhcHBhYmxlIHN3aXRjaGVzIixwcmljZTo3OS45OSxvcmlnaW5hbFByaWNlOjk0Ljk5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+T3JkZXIgU3VtbWFyeTwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJjYXJ0LXN1bW1hcnktY29udGVudCI+CiAgICAgICAgICAgIDwhLS0gQ29udGVudCB3aWxsIGJlIGR5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24gYW5kIHJlc3RyaWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJOdW1iZXIgb2YgTGljZW5zZXMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiRml4ZWQgUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiVGhpcyBxdWFudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHs1fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3JkZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkN1c3RvbWVyIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyBQbGFuIiwiUHJvIFBsYW4iLCJFbnRlcnByaXNlIFBsYW4iXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiTnVtYmVyIG9mIGxpY2Vuc2VzIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWNpYWwgSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBTYmEsS290LFlvdCxab3Q9ZygoKT0+e3BlKCk7a3QoKTtFaSgpO2tiYSgpO2h0KCk7U2JhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLb3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFlvdD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvciIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0sU2JhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InZhbHVlImluIHUsImhhcyIpLGdldDppKHU9PnUudmFsdWUsImdldCIpLHNldDppKCh1LGMpPT57dS52YWx1ZT1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksU2JhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89d2JhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1Lb3QodGhpcyxvLDEpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyIHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yIHsKICAgICAgICAgIGZsZXg6IDAgMCA0MHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTElKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLnBsdXMgewogICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5IHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICB9CgogICAgICAgIC8qIEtleWJvYXJkIG5hdmlnYXRpb24gZm9jdXMgc3R5bGVzICovCiAgICAgICAgLnNlbGVjdG9yOmZvY3VzIHsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLyogTWluIHZhbHVlIHN0YXRlICovCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51czpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJxdWFudGl0eS1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgZGF0YS1taW49IiR7dGhpcy52YWx1ZTw9MH0iCiAgICAgICAgPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIG1pbnVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5kZWNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtkPT57KGQua2V5PT09IkVudGVyInx8ZC5rZXk9PT0iICIpJiYoZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVjcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJEZWNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID7iiJI8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InF1YW50aXR5IiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1hdG9taWM9InRydWUiPiR7dGhpcy52YWx1ZX08L2Rpdj4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RvciBwbHVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5pbmNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtkPT57KGQua2V5PT09IkVudGVyInx8ZC5rZXk9PT0iICIpJiYoZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJJbmNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID4rPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1pbmNyZWFzZSgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlKyssdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWRlY3JlYXNlKCl7IXRoaXMuZGlzYWJsZWQmJnRoaXMudmFsdWU+MCYmKHRoaXMudmFsdWUtLSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShkKXt0aGlzLnZhbHVlPWR9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEtvdCh0aGlzLGwpfXN0YXRpY3tLb3QoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIF9iYSxNYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO19iYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kZW1vLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmVzdWx0LWRpc3BsYXkgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBSYWRpbyBHcm91cHMifSAuc3VidGl0bGU9JHsiU2ltcGxlIHN0cmluZyBvcHRpb25zIGZvciBjb21tb24gdXNlIGNhc2VzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaXB0aW9uIFBsYW4ifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyAtICQ5L21vbnRoIiwiUHJvIC0gJDI5L21vbnRoIiwiRW50ZXJwcmlzZSAtICQ5OS9tb250aCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm8gLSAkMjkvbW9udGgifQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgeW91ciBzdWJzY3JpcHRpb24gdGllciJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiUHJpb3JpdHkgTGV2ZWwifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJIaWdoIiwiTWVkaXVtIiwiTG93Il19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik1lZGl1bSJ9CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiUmFkaW8gZ3JvdXBzIHdpdGggaG9yaXpvbnRhbCBhcnJhbmdlbWVudCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJEbyB5b3UgYWdyZWUgd2l0aCB0aGUgdGVybXM/In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlllcyIsIk5vIiwiTWF5YmUiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlllcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiRXhwZXJpZW5jZSBMZXZlbCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCZWdpbm5lciIsIkludGVybWVkaWF0ZSIsIkV4cGVydCJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSW50ZXJtZWRpYXRlIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNlbGVjdCB5b3VyIGV4cGVyaWVuY2UgbGV2ZWwgd2l0aCB3ZWIgZGV2ZWxvcG1lbnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gQWR2YW5jZWQgT3B0aW9ucyJ9IC5zdWJ0aXRsZT0keyJVc2luZyBvYmplY3QgZm9ybWF0IHdpdGgga2V5cyBhbmQgcGF5bG9hZHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICBpZD0iYWR2YW5jZWQtcmFkaW8iCiAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFJlZ2lvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIChVUyBFYXN0KSIsa2V5OiJ1cy1lYXN0IixwYXlsb2FkOntyZWdpb246InVzLWVhc3QtMSIsbGF0ZW5jeToyMH19LHtvcHRpb246IkV1cm9wZSAoRnJhbmtmdXJ0KSIsa2V5OiJldS1jZW50cmFsIixwYXlsb2FkOntyZWdpb246ImV1LWNlbnRyYWwtMSIsbGF0ZW5jeTo1MH19LHtvcHRpb246IkFzaWEgUGFjaWZpYyAoU2luZ2Fwb3JlKSIsa2V5OiJhcC1zb3V0aGVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoiYXAtc291dGhlYXN0LTEiLGxhdGVuY3k6MTIwfX1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ImV1LWNlbnRyYWwifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB0aGUgY2xvc2VzdCByZWdpb24gZm9yIG9wdGltYWwgcGVyZm9ybWFuY2UifQogICAgICAgICAgQGNoYW5nZT0ke3M9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVnaW9uLXJlc3VsdCIpO2UmJihlLnRleHRDb250ZW50PSJTZWxlY3RlZDogIitKU09OLnN0cmluZ2lmeShzLmRldGFpbC52YWx1ZSxudWxsLDIpKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDxkaXYgaWQ9InJlZ2lvbi1yZXN1bHQiIGNsYXNzPSJyZXN1bHQtZGlzcGxheSI+U2VsZWN0ZWQ6IHsgInJlZ2lvbiI6ICJldS1jZW50cmFsLTEiLCAibGF0ZW5jeSI6IDUwIH08L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFN1cnZleSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIHJhZGlvIGdyb3VwcyBmb3Igc3VydmV5cyBhbmQgZm9ybXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJIb3cgc2F0aXNmaWVkIGFyZSB5b3U/In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siVmVyeSBTYXRpc2ZpZWQiLCJTYXRpc2ZpZWQiLCJOZXV0cmFsIiwiRGlzc2F0aXNmaWVkIiwiVmVyeSBEaXNzYXRpc2ZpZWQiXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiU2F0aXNmaWVkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJXb3VsZCB5b3UgcmVjb21tZW5kIHVzPyJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRlZmluaXRlbHkiLCJQcm9iYWJseSIsIk5vdCBTdXJlIiwiUHJvYmFibHkgTm90IiwiRGVmaW5pdGVseSBOb3QiXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJvYmFibHkifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIFN0YXRlcyAmIFZhbGlkYXRpb24ifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgdmFsaWRhdGlvbiBleGFtcGxlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIFNlbGVjdGlvbiJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk9wdGlvbiBBIiwiT3B0aW9uIEIiLCJPcHRpb24gQyJdfQogICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBTdGF0ZSJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRpc2FibGVkIE9wdGlvbiAxIiwiRGlzYWJsZWQgT3B0aW9uIDIiLCJEaXNhYmxlZCBPcHRpb24gMyJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJEaXNhYmxlZCBPcHRpb24gMiJ9CiAgICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gU2V0dGluZ3MgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDb21tb24gcGF0dGVybnMgaW4gYXBwbGljYXRpb24gc2V0dGluZ3MifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgUHJlZmVyZW5jZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IFRoZW1lIixrZXk6ImxpZ2h0IixwYXlsb2FkOiJsaWdodCJ9LHtvcHRpb246IkRhcmsgVGhlbWUiLGtleToiZGFyayIscGF5bG9hZDoiZGFyayJ9LHtvcHRpb246IlN5c3RlbSBEZWZhdWx0IixrZXk6InN5c3RlbSIscGF5bG9hZDoiYXV0byJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ImRhcmsifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIGhvdyB0aGUgYXBwbGljYXRpb24gc2hvdWxkIGFwcGVhciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIEZyZXF1ZW5jeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJBbGwgTm90aWZpY2F0aW9ucyIsIkltcG9ydGFudCBPbmx5IiwiTm9uZSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSW1wb3J0YW50IE9ubHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ29udHJvbCBob3cgb2Z0ZW4geW91IHJlY2VpdmUgbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiTGFuZ3VhZ2UifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRW5nbGlzaCIsIkdlcm1hbiIsIkZyZW5jaCIsIlNwYW5pc2giLCJKYXBhbmVzZSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5nbGlzaCJ9CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IldvcmtzIHNlYW1sZXNzbHkgd2l0aCBkZWVzLWZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBOYW1lIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicHJvZHVjdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IENhdGVnb3J5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVsZWN0cm9uaWNzIiwiQ2xvdGhpbmciLCJCb29rcyIsIkhvbWUgJiBHYXJkZW4iLCJTcG9ydHMiXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiY2F0ZWdvcnkifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJDb25kaXRpb24ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTmV3IiwiTGlrZSBOZXciLCJHb29kIiwiRmFpciIsIlBvb3IiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJjb25kaXRpb24ifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTmV3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiU2hpcHBpbmcgU3BlZWQifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJTdGFuZGFyZCAoNS03IGRheXMpIixrZXk6InN0YW5kYXJkIixwYXlsb2FkOntkYXlzOjcscHJpY2U6MH19LHtvcHRpb246IkV4cHJlc3MgKDItMyBkYXlzKSIsa2V5OiJleHByZXNzIixwYXlsb2FkOntkYXlzOjMscHJpY2U6MTB9fSx7b3B0aW9uOiJPdmVybmlnaHQiLGtleToib3Zlcm5pZ2h0IixwYXlsb2FkOntkYXlzOjEscHJpY2U6MjV9fV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJzdGFuZGFyZCJ9CiAgICAgICAgICAgIC5rZXk9JHsic2hpcHBpbmcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTdWJtaXQgUHJvZHVjdCJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIExRLEF1LFhvdCxOMWU9ZygoKT0+e3BlKCk7RWkoKTtNYmEoKTtodCgpO0xRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxBdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sWG90PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1yYWRpb2dyb3VwIildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFJhZGlvZ3JvdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woKV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxMUSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Im9wdGlvbnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5vcHRpb25zLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oub3B0aW9ucz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksTFEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2VsZWN0ZWRPcHRpb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZWxlY3RlZE9wdGlvbiwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnNlbGVjdGVkT3B0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxMUSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZGlyZWN0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZGlyZWN0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZGlyZWN0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxMUSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idmFsaWRhdGlvblN0YXRlImluIHosImhhcyIpLGdldDppKHo9PnoudmFsaWRhdGlvblN0YXRlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudmFsaWRhdGlvblN0YXRlPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxMUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPV9iYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9QXUodGhpcyxvLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKE0pe3RoaXMuI2U9TX0jdD0oQXUodGhpcyxsKSxBdSh0aGlzLGQsIiIpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oTSl7dGhpcy4jdD1NfSNhPShBdSh0aGlzLHUpLEF1KHRoaXMsYiwidmVydGljYWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkaXJlY3Rpb24oTSl7dGhpcy4jYT1NfSNzPShBdSh0aGlzLHYpLEF1KHRoaXMsbSxudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNzfXNldCB2YWxpZGF0aW9uU3RhdGUoTSl7dGhpcy4jcz1NfWdldCB2YWx1ZSgpe2xldCBNPXRoaXMuZ2V0T3B0aW9uQnlLZXkodGhpcy5zZWxlY3RlZE9wdGlvbik7cmV0dXJuIHR5cGVvZiBNPT0ib2JqZWN0IiYmTS5wYXlsb2FkIT09dm9pZCAwP00ucGF5bG9hZDp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShNKXtpZih0eXBlb2YgTT09InN0cmluZyIpdGhpcy5zZWxlY3RlZE9wdGlvbj1NO2Vsc2V7bGV0IHo9dGhpcy5vcHRpb25zLmZpbmQoTj0+dHlwZW9mIE49PSJvYmplY3QiJiZOLnBheWxvYWQ9PT1NKTt6JiZ0eXBlb2Ygej09Im9iamVjdCImJih0aGlzLnNlbGVjdGVkT3B0aW9uPXoua2V5KX19c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmhvcml6b250YWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIC5yYWRpby1vcHRpb24gewogICAgICAgIHBhZGRpbmc6IDZweCAyMHB4IDZweCAwOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGU6OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICB9CgogICAgICAucmFkaW8tY2lyY2xlOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDMuOSUpIil9LAogICAgICAgICAgICAgICAgICAgIDAgMCAwIDRweCAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgfQoKICAgICAgLmxhYmVsLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9InZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJ3YXJuIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE92ZXJyaWRlIGJhc2UgZ3JpZCBsYXlvdXQgZm9yIHJhZGlvZ3JvdXAgdG8gcHJldmVudCBsYXJnZSBnYXBzICovCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRpdiBjbGFzcz0ibGFiZWwtdGV4dCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAoTT0+e2xldCB6PXRoaXMuZ2V0T3B0aW9uS2V5KE0pLE49dGhpcy5nZXRPcHRpb25MYWJlbChNKSxDPXRoaXMuc2VsZWN0ZWRPcHRpb249PT16O3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICBjbGFzcz0icmFkaW8tb3B0aW9uICR7Qz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oeil9IgogICAgICAgICAgICAgICAgQGtleWRvd249IiR7Xz0+dGhpcy5oYW5kbGVLZXlkb3duKF8seil9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1jaXJjbGUiIAogICAgICAgICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgICAgICAgcm9sZT0icmFkaW8iCiAgICAgICAgICAgICAgICAgIGFyaWEtY2hlY2tlZD0iJHtDfSIKICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iJHtOfSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGlvLWxhYmVsIj4ke059PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWdldE9wdGlvbktleShNKXtyZXR1cm4gdHlwZW9mIE09PSJzdHJpbmciP006TS5rZXl9Z2V0T3B0aW9uTGFiZWwoTSl7cmV0dXJuIHR5cGVvZiBNPT0ic3RyaW5nIj9NOk0ub3B0aW9ufWdldE9wdGlvbkJ5S2V5KE0pe3JldHVybiB0aGlzLm9wdGlvbnMuZmluZCh6PT50aGlzLmdldE9wdGlvbktleSh6KT09PU0pfXNlbGVjdE9wdGlvbihNKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgej10aGlzLnNlbGVjdGVkT3B0aW9uO3RoaXMuc2VsZWN0ZWRPcHRpb249TSx6IT09TSYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShNKXt0aGlzLnZhbHVlPU19YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmIXRoaXMuc2VsZWN0ZWRPcHRpb24/KHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMSk6KHRoaXMudmFsaWRhdGlvblN0YXRlPSJ2YWxpZCIsITApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJiF0aGlzLnJlcXVpcmVkKXtsZXQgTT10aGlzLm9wdGlvbnNbMF07dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmdldE9wdGlvbktleShNKX19aGFuZGxlS2V5ZG93bihNLHope3RoaXMuZGlzYWJsZWR8fChNLmtleT09PSIgInx8TS5rZXk9PT0iRW50ZXIiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RPcHRpb24oeikpOk0ua2V5PT09IkFycm93RG93biJ8fE0ua2V5PT09IkFycm93UmlnaHQiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRPcHRpb24oKSk6KE0ua2V5PT09IkFycm93VXAifHxNLmtleT09PSJBcnJvd0xlZnQiKSYmKE0ucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzUHJldmlvdXNPcHRpb24oKSkpfWZvY3VzTmV4dE9wdGlvbigpe2xldCBNPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksTj0oTS5maW5kSW5kZXgoQz0+Qz09PXRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSsxKSVNLmxlbmd0aDtNW05dLmZvY3VzKCl9Zm9jdXNQcmV2aW91c09wdGlvbigpe2xldCBNPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksej1NLmZpbmRJbmRleChDPT5DPT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpLE49ejw9MD9NLmxlbmd0aC0xOnotMTtNW05dLmZvY3VzKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEF1KHRoaXMsZil9c3RhdGlje0F1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciB6YmEsQ2JhPWcoKCk9PntwZSgpO3piYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMjRweDsKICAgICAgcGFkZGluZzogMjRweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICM4ODg7CiAgICB9CiAgICAuZGVtby1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEycHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CYXNpYyBVc2FnZTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0ZXh0PSJXaXRoIFRleHQgUHJvcGVydHkiPjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+V2l0aCBJY29ucyAoaW5oZXJpdGVkIGZyb20gRGVlc0J1dHRvbik8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNlbmQiPlN1Ym1pdDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6c2F2ZSIgaWNvblBvc2l0aW9uPSJsZWZ0Ij5TYXZlIEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOmFycm93LXJpZ2h0IiBpY29uUG9zaXRpb249InJpZ2h0Ij5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QnV0dG9uIFR5cGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9ImhpZ2hsaWdodGVkIiBpY29uPSJsdWNpZGU6c2VuZCI+SGlnaGxpZ2h0ZWQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdHlwZT0ibm9ybWFsIiBpY29uPSJsdWNpZGU6c2VuZCI+Tm9ybWFsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9ImRpc2NyZWV0IiBpY29uPSJsdWNpZGU6c2VuZCI+RGlzY3JlZXQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9InNtYWxsIiBpY29uPSJsdWNpZGU6c2VuZCI+U21hbGw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc2l6ZT0ibm9ybWFsIiBpY29uPSJsdWNpZGU6c2VuZCI+Tm9ybWFsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9ImxhcmdlIiBpY29uPSJsdWNpZGU6c2VuZCI+TGFyZ2U8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlN0YXRlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9InBlbmRpbmciIGljb249Imx1Y2lkZTpzZW5kIj5QZW5kaW5nPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0ic3VjY2VzcyIgaWNvbj0ibHVjaWRlOmNoZWNrIj5TdWNjZXNzPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0iZXJyb3IiIGljb249Imx1Y2lkZTp4Ij5FcnJvcjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBkaXNhYmxlZCBpY29uPSJsdWNpZGU6c2VuZCI+RGlzYWJsZWQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkluIGEgRm9ybSBDb250ZXh0PC9oMz4KICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJOYW1lIiBrZXk9Im5hbWUiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9IkVtYWlsIiBrZXk9ImVtYWlsIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6c2VuZCIgdHlwZT0iaGlnaGxpZ2h0ZWQiPlN1Ym1pdCBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIG40LEtuLFFvdCxXZz1nKCgpPT57Q2JhKCk7cGUoKTtodCgpO240PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sUW90PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1mb3JtLXN1Ym1pdCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRm9ybVN1Ym1pdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0seT1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxOPVtMKHt0eXBlOlN0cmluZ30pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxuNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJkaXNhYmxlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmRpc2FibGVkLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZGlzYWJsZWQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLG40KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGV4dCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRleHQsImdldCIpLHNldDppKChTLEkpPT57Uy50ZXh0PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxuNCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3RhdHVzImluIFMsImhhcyIpLGdldDppKFM9PlMuc3RhdHVzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3RhdHVzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxuNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InR5cGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50eXBlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudHlwZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksbjQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaXplImluIFMsImhhcyIpLGdldDppKFM9PlMuc2l6ZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNpemU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLG40KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaWNvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmljb24sImdldCIpLHNldDppKChTLEkpPT57Uy5pY29uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxuNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaWNvblBvc2l0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuaWNvblBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaWNvblBvc2l0aW9uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxuNChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXpiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZvcm0iLCJCdXR0b24iXTsjZT1Lbih0aGlzLG8sITEpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNlfXNldCBkaXNhYmxlZChrKXt0aGlzLiNlPWt9I3Q9KEtuKHRoaXMsbCksS24odGhpcyxkLHZvaWQgMCkpO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRleHQoayl7dGhpcy4jdD1rfSNhPShLbih0aGlzLHUpLEtuKHRoaXMsYiwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3RhdHVzKGspe3RoaXMuI2E9a30jcz0oS24odGhpcyx2KSxLbih0aGlzLG0sImRlZmF1bHQiKSk7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgdHlwZShrKXt0aGlzLiNzPWt9I2k9KEtuKHRoaXMsZiksS24odGhpcyxNLCJkZWZhdWx0IikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNpemUoayl7dGhpcy4jaT1rfSNyPShLbih0aGlzLHopLEtuKHRoaXMsQyx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNyfXNldCBpY29uKGspe3RoaXMuI3I9a30jbz0oS24odGhpcyxfKSxLbih0aGlzLCQsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNvfXNldCBpY29uUG9zaXRpb24oayl7dGhpcy4jbz1rfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxLbih0aGlzLEUpfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CiAgICAgIGRlZXMtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgIC5zdGF0dXM9JHt0aGlzLnN0YXR1c30KICAgICAgICAudHlwZT0ke3RoaXMudHlwZX0KICAgICAgICAuc2l6ZT0ke3RoaXMuc2l6ZX0KICAgICAgICAuaWNvbj0ke3RoaXMuaWNvbn0KICAgICAgICAuaWNvblBvc2l0aW9uPSR7dGhpcy5pY29uUG9zaXRpb259CiAgICAgICAgLnRleHQ9JHt0aGlzLnRleHR9CiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICBAY2xpY2tlZD0ke3RoaXMuc3VibWl0fQogICAgICA+PC9kZWVzLWJ1dHRvbj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoIXRoaXMudGV4dCl7bGV0IGs9dGhpcy50ZXh0Q29udGVudD8udHJpbSgpO2smJih0aGlzLnRleHQ9ayl9fWFzeW5jIHN1Ym1pdCgpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBrPXRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIik7ayYmay5nYXRoZXJBbmREaXNwYXRjaCYmay5nYXRoZXJBbmREaXNwYXRjaCgpfWFzeW5jIGZvY3VzKCl7bGV0IGs9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5kaXNhYmxlZHx8KGF3YWl0IGsuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN1Ym1pdCgpKX1zdGF0aWN7S24oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIFRiYSwkYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO3l4KCk7V2coKTtUYmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnNwYWNlciB7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltsYWJlbD0iU2VsZWN0IENvdW50cnkiXScpLHQ9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgUm9sZSJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKGE9Pntjb25zb2xlLmxvZygiQ291bnRyeSBzZWxlY3RlZDoiLGEuZGV0YWlsKX0pKSx0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2NvbnNvbGUubG9nKCJSb2xlIHNlbGVjdGVkOiIsYS5kZXRhaWwpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBEcm9wZG93bnMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgZHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBhbmQgdmFyaW91cyBvcHRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgQ291bnRyeSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgdGhlIGNvdW50cnkgd2hlcmUgeW91ciBidXNpbmVzcyBpcyByZWdpc3RlcmVkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9LHtvcHRpb246IkNhbmFkYSIsa2V5OiJjYSJ9LHtvcHRpb246Ikdlcm1hbnkiLGtleToiZGUifSx7b3B0aW9uOiJGcmFuY2UiLGtleToiZnIifSx7b3B0aW9uOiJVbml0ZWQgS2luZ2RvbSIsa2V5OiJ1ayJ9LHtvcHRpb246IkF1c3RyYWxpYSIsa2V5OiJhdSJ9LHtvcHRpb246IkphcGFuIixrZXk6ImpwIn0se29wdGlvbjoiQnJhemlsIixrZXk6ImJyIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUm9sZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFkbWluaXN0cmF0b3IiLGtleToiYWRtaW4ifSx7b3B0aW9uOiJFZGl0b3IiLGtleToiZWRpdG9yIn0se29wdGlvbjoiVmlld2VyIixrZXk6InZpZXdlciJ9LHtvcHRpb246Ikd1ZXN0IixrZXk6Imd1ZXN0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHQ9Pntjb25zb2xlLmxvZyhgUHJpb3JpdHkgY2hhbmdlZCB0bzogJHt0LmRldGFpbC5vcHRpb259YCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFdpdGhvdXQgU2VhcmNoIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgZGlzYWJsZWQgZm9yIHNpbXBsZXIgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJIaWdoIixrZXk6ImhpZ2gifSx7b3B0aW9uOiJNZWRpdW0iLGtleToibWVkaXVtIn0se29wdGlvbjoiTG93IixrZXk6ImxvdyJ9XX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZHJvcGRvd24iKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2xldCByPXQuZ2V0QXR0cmlidXRlKCJsYWJlbCIpO2NvbnNvbGUubG9nKGAke3J9OiAke2EuZGV0YWlsLm9wdGlvbn1gKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBkcm9wZG93bnMgaW4gYSBob3Jpem9udGFsIGxheW91dCBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiRGVwYXJ0bWVudCJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5naW5lZXJpbmciLGtleToiZW5nIn0se29wdGlvbjoiRGVzaWduIixrZXk6ImRlc2lnbiJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gU2l6ZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IjEtNSIsa2V5OiJzbWFsbCJ9LHtvcHRpb246IjYtMjAiLGtleToibWVkaXVtIn0se29wdGlvbjoiMjEtNTAiLGtleToibGFyZ2UifSx7b3B0aW9uOiI1MCsiLGtleToieGxhcmdlIn1dfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiTG9jYXRpb24ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlJlbW90ZSIsa2V5OiJyZW1vdGUifSx7b3B0aW9uOiJPbi1zaXRlIixrZXk6Im9uc2l0ZSJ9LHtvcHRpb246Ikh5YnJpZCIsa2V5OiJoeWJyaWQifV19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiUmVxdWlyZWQgZHJvcGRvd24gbG9zdCBmb2N1cyIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiT3B0aW9uIEEiLGtleToiYSJ9LHtvcHRpb246Ik9wdGlvbiBCIixrZXk6ImIifSx7b3B0aW9uOiJPcHRpb24gQyIsa2V5OiJjIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRHJvcGRvd24ifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQ2Fubm90IFNlbGVjdCIsa2V5OiJkaXNhYmxlZCJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiQ2Fubm90IFNlbGVjdCIsa2V5OiJkaXNhYmxlZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICAoU3BhY2VyIHRvIHRlc3QgZHJvcGRvd24gcG9zaXRpb25pbmcpCiAgICA8L2Rpdj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLCh0PT57Y29uc29sZS5sb2coIkJvdHRvbSBkcm9wZG93biBzZWxlY3RlZDoiLHQuZGV0YWlsKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gQm90dG9tIFBvc2l0aW9uaW5nIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHRoYXQgb3BlbnMgdXB3YXJkIHdoZW4gbmVhciBib3R0b20gb2Ygdmlld3BvcnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7Ik9wZW5zIFVwd2FyZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJGaXJzdCBPcHRpb24iLGtleToiZmlyc3QifSx7b3B0aW9uOiJTZWNvbmQgT3B0aW9uIixrZXk6InNlY29uZCJ9LHtvcHRpb246IlRoaXJkIE9wdGlvbiIsa2V5OiJ0aGlyZCJ9LHtvcHRpb246IkZvdXJ0aCBPcHRpb24iLGtleToiZm91cnRoIn0se29wdGlvbjoiRmlmdGggT3B0aW9uIixrZXk6ImZpZnRoIn1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIiksdD1zLnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7ZSYmdCYmKHQuaW5uZXJIVE1MPSI8ZW0+U2VsZWN0IGEgcHJvZHVjdCB0byBzZWUgZGV0YWlscy4uLjwvZW0+IixlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PnthLmRldGFpbC52YWx1ZSYmKHQuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICA8c3Ryb25nPlNlbGVjdGVkOjwvc3Ryb25nPiAke2EuZGV0YWlsLnZhbHVlLm9wdGlvbn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5LZXk6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUua2V5fTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPlByaWNlOjwvc3Ryb25nPiAkJHthLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5wcmljZXx8Ik4vQSJ9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+RmVhdHVyZXM6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUucGF5bG9hZD8uZmVhdHVyZXM/LmpvaW4oIiwgIil8fCJOL0EifQogICAgICAgICAgICBgKX0pKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEV2ZW50IEhhbmRsaW5nICYgUGF5bG9hZCJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3aXRoIHBheWxvYWQgZGF0YSBhbmQgY2hhbmdlIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUHJvZHVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJCYXNpYyBQbGFuIixrZXk6ImJhc2ljIixwYXlsb2FkOntwcmljZTo5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIl19fSx7b3B0aW9uOiJQcm8gUGxhbiIsa2V5OiJwcm8iLHBheWxvYWQ6e3ByaWNlOjE5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIiwiRmVhdHVyZSBCIl19fSx7b3B0aW9uOiJFbnRlcnByaXNlIFBsYW4iLGtleToiZW50ZXJwcmlzZSIscGF5bG9hZDp7cHJpY2U6NDkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiLCJGZWF0dXJlIEMiXX19XX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOyBib3JkZXItcmFkaXVzOiA0cHg7IGZvbnQtc2l6ZTogMTRweDsiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIiksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJwcm9qZWN0VHlwZSJdJyksYT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJmcmFtZXdvcmsiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChyPT57Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLHIuZGV0YWlsLmRhdGEpfSkpLHQmJmEmJnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChyPT57bGV0IG49ci5kZXRhaWwua2V5O2NvbnNvbGUubG9nKGBQcm9qZWN0IHR5cGUgY2hhbmdlZCB0bzogJHtufWApfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdvcmtpbmcgd2l0aGluIGEgZm9ybSB3aXRoIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgVHlwZSJ9CiAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdFR5cGUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIEFwcGxpY2F0aW9uIixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHBsaWNhdGlvbiIsa2V5OiJtb2JpbGUifSx7b3B0aW9uOiJEZXNrdG9wIEFwcGxpY2F0aW9uIixrZXk6ImRlc2t0b3AifSx7b3B0aW9uOiJBUEkgU2VydmljZSIsa2V5OiJhcGkifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGV2ZWxvcG1lbnQgRnJhbWV3b3JrIn0KICAgICAgICAgICAgLmtleT0keyJmcmFtZXdvcmsifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVhY3QiLGtleToicmVhY3QiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJWdWUuanMiLGtleToidnVlIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiQW5ndWxhciIsa2V5OiJhbmd1bGFyIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiUmVhY3QgTmF0aXZlIixrZXk6InJlYWN0LW5hdGl2ZSIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkZsdXR0ZXIiLGtleToiZmx1dHRlciIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkVsZWN0cm9uIixrZXk6ImVsZWN0cm9uIixwYXlsb2FkOnt0eXBlOiJkZXNrdG9wIn19XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IkNyZWF0ZSBQcm9qZWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgXzIsZ3IsSm90LGVudD1nKCgpPT57cGUoKTtrdCgpO0duKCk7RXIoKTtodCgpO3YyKCk7XzI9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGdyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxKb3Q9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWRyb3Bkb3duLXBvcHVwIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W107dmFyIG1lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREcm9wZG93blBvcHVwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe2F0dHJpYnV0ZTohMX0pXSx5PVtMKHthdHRyaWJ1dGU6ITF9KV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLF8yKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ib3B0aW9ucyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLm9wdGlvbnMsImdldCIpLHNldDppKChVLGhlKT0+e1Uub3B0aW9ucz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxvLGwpLF8yKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlU2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJlbmFibGVTZWFyY2giaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5lbmFibGVTZWFyY2gsImdldCIpLHNldDppKChVLGhlKT0+e1UuZW5hYmxlU2VhcmNoPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGQsdSksXzIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJvcGVuc1RvVG9wImluIFUsImhhcyIpLGdldDppKFU9PlUub3BlbnNUb1RvcCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5vcGVuc1RvVG9wPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGIsdiksXzIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmlnZ2VyUmVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idHJpZ2dlclJlY3QiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS50cmlnZ2VyUmVjdCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50cmlnZ2VyUmVjdD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxtLGYpLF8yKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3duZXJDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Im93bmVyQ29tcG9uZW50ImluIFUsImhhcyIpLGdldDppKFU9PlUub3duZXJDb21wb25lbnQsImdldCIpLHNldDppKChVLGhlKT0+e1Uub3duZXJDb21wb25lbnQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sTSx6KSxfMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlcmVkT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iZmlsdGVyZWRPcHRpb25zImluIFUsImhhcyIpLGdldDppKFU9PlUuZmlsdGVyZWRPcHRpb25zLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmZpbHRlcmVkT3B0aW9ucz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxDLF8pLF8yKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaGlnaGxpZ2h0ZWRJbmRleCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmhpZ2hsaWdodGVkSW5kZXgsImdldCIpLHNldDppKChVLGhlKT0+e1UuaGlnaGxpZ2h0ZWRJbmRleD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSwkLEUpLF8yKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InNlYXJjaFZhbHVlImluIFUsImhhcyIpLGdldDppKFU9PlUuc2VhcmNoVmFsdWUsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc2VhcmNoVmFsdWU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sayxTKSxfMih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Im1lbnVaSW5kZXgiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5tZW51WkluZGV4LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLm1lbnVaSW5kZXg9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sUCxSKSxfMih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InZpc2libGUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnZpc2libGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sVixXKSxfMihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpCfSxudWxsLHQpLG1lPWE9ZS52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX0jZT1ncih0aGlzLG8sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoQil7dGhpcy4jZT1CfSN0PShncih0aGlzLGwpLGdyKHRoaXMsZCwhMCkpO2dldCBlbmFibGVTZWFyY2goKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW5hYmxlU2VhcmNoKEIpe3RoaXMuI3Q9Qn0jYT0oZ3IodGhpcyx1KSxncih0aGlzLGIsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNhfXNldCBvcGVuc1RvVG9wKEIpe3RoaXMuI2E9Qn0jcz0oZ3IodGhpcyx2KSxncih0aGlzLG0sbnVsbCkpO2dldCB0cmlnZ2VyUmVjdCgpe3JldHVybiB0aGlzLiNzfXNldCB0cmlnZ2VyUmVjdChCKXt0aGlzLiNzPUJ9I2k9KGdyKHRoaXMsZiksZ3IodGhpcyxNLG51bGwpKTtnZXQgb3duZXJDb21wb25lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgb3duZXJDb21wb25lbnQoQil7dGhpcy4jaT1CfSNyPShncih0aGlzLHopLGdyKHRoaXMsQyxbXSkpO2dldCBmaWx0ZXJlZE9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyZWRPcHRpb25zKEIpe3RoaXMuI3I9Qn0jbz0oZ3IodGhpcyxfKSxncih0aGlzLCQsMCkpO2dldCBoaWdobGlnaHRlZEluZGV4KCl7cmV0dXJuIHRoaXMuI299c2V0IGhpZ2hsaWdodGVkSW5kZXgoQil7dGhpcy4jbz1CfSNuPShncih0aGlzLEUpLGdyKHRoaXMsaywiIikpO2dldCBzZWFyY2hWYWx1ZSgpe3JldHVybiB0aGlzLiNufXNldCBzZWFyY2hWYWx1ZShCKXt0aGlzLiNuPUJ9I2w9KGdyKHRoaXMsUyksZ3IodGhpcyxQLDFlMykpO2dldCBtZW51WkluZGV4KCl7cmV0dXJuIHRoaXMuI2x9c2V0IG1lbnVaSW5kZXgoQil7dGhpcy4jbD1CfSNjPShncih0aGlzLFIpLGdyKHRoaXMsViwhMSkpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZpc2libGUoQil7dGhpcy4jYz1CfXdpbmRvd0xheWVyPShncih0aGlzLFcpLG51bGwpO2lzRGVzdHJveWluZz0hMTtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3ggewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveC50b3AgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAub3B0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luOiAycHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb24uaGlnaGxpZ2h0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAubm8tb3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuc2VhcmNoIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMudHJpZ2dlclJlY3QpcmV0dXJuIHdgYDtsZXQgQj10aGlzLmNvbXB1dGVQb3NpdGlvblN0eWxlKCk7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ic2VsZWN0aW9uQm94ICR7dGhpcy52aXNpYmxlPyJzaG93IjoiIn0gJHt0aGlzLm9wZW5zVG9Ub3A/InRvcCI6ImJvdHRvbSJ9IgogICAgICAgIHN0eWxlPSIke0J9OyB6LWluZGV4OiAke3RoaXMubWVudVpJbmRleH07IgogICAgICA+CiAgICAgICAgJHt0aGlzLmVuYWJsZVNlYXJjaD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaCI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBvcHRpb25zLi4uIgogICAgICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5zZWFyY2hWYWx1ZX0iCiAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLmhhbmRsZVNlYXJjaH0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHtVPT5VLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3dufSIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJuby1vcHRpb25zIj5ObyBvcHRpb25zIGZvdW5kPC9kaXY+YDp0aGlzLmZpbHRlcmVkT3B0aW9ucy5tYXAoKFUsaGUpPT57bGV0IEY9dGhpcy5oaWdobGlnaHRlZEluZGV4PT09aGU7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3B0aW9uICR7Rj8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0T3B0aW9uKFUpfSIKICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0iJHsoKT0+dGhpcy5oaWdobGlnaHRlZEluZGV4PWhlfSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7VS5vcHRpb259CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29tcHV0ZVBvc2l0aW9uU3R5bGUoKXtsZXQgQj10aGlzLnRyaWdnZXJSZWN0LFU9Qi5sZWZ0LGhlPUIud2lkdGg7aWYodGhpcy5vcGVuc1RvVG9wKXtsZXQgRj13aW5kb3cuaW5uZXJIZWlnaHQtQi50b3ArNDtyZXR1cm5gbGVmdDogJHtVfXB4OyB3aWR0aDogJHtoZX1weDsgYm90dG9tOiAke0Z9cHg7IHRvcDogYXV0b2B9ZWxzZXtsZXQgRj1CLmJvdHRvbSs0O3JldHVybmBsZWZ0OiAke1V9cHg7IHdpZHRoOiAke2hlfXB4OyB0b3A6ICR7Rn1weGB9fWFzeW5jIHNob3coKXt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5oaWdobGlnaHRlZEluZGV4PTAsdGhpcy5zZWFyY2hWYWx1ZT0iIix0aGlzLndpbmRvd0xheWVyPWF3YWl0IFJvLmNyZWF0ZUFuZFNob3coKSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9KSx0aGlzLm1lbnVaSW5kZXg9X2EuZ2V0TmV4dFpJbmRleCgpLF9hLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMpLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse3Bhc3NpdmU6ITB9KX1hc3luYyBoaWRlKCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fCh0aGlzLmlzRGVzdHJveWluZz0hMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSksX2EudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLndpbmRvd0xheWVyJiYodGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllcj1udWxsKSx0aGlzLnZpc2libGU9ITEsYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigxNTApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMuaXNEZXN0cm95aW5nPSExKX1hc3luYyBmb2N1c1NlYXJjaElucHV0KCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgQj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaCBpbnB1dCIpO0ImJkIuZm9jdXMoKX11cGRhdGVPcHRpb25zKEIpe2lmKHRoaXMub3B0aW9ucz1CLHRoaXMuc2VhcmNoVmFsdWUpe2xldCBVPXRoaXMuc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKGhlPT5oZS5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhVKSl9ZWxzZSB0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnM7dGhpcy5oaWdobGlnaHRlZEluZGV4PTB9c2VsZWN0T3B0aW9uKEIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm9wdGlvbi1zZWxlY3RlZCIse2RldGFpbDpCfSkpfWhhbmRsZVNlYXJjaD1pKEI9PntsZXQgVT1CLnRhcmdldC52YWx1ZTt0aGlzLnNlYXJjaFZhbHVlPVU7bGV0IGhlPVUudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKEY9PkYub3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoaGUpKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH0sImhhbmRsZVNlYXJjaCIpO2hhbmRsZVNlYXJjaEtleWRvd249aShCPT57bGV0IFU9Qi5rZXksaGU9dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoLTE7VT09PSJBcnJvd0Rvd24iPyhCLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZEluZGV4PXRoaXMuaGlnaGxpZ2h0ZWRJbmRleCsxPmhlPzA6dGhpcy5oaWdobGlnaHRlZEluZGV4KzEpOlU9PT0iQXJyb3dVcCI/KEIucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4LTE8MD9oZTp0aGlzLmhpZ2hsaWdodGVkSW5kZXgtMSk6VT09PSJFbnRlciI/KEIucHJldmVudERlZmF1bHQoKSx0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdJiZ0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdKSk6VT09PSJFc2NhcGUiJiYoQi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSkpfSwiaGFuZGxlU2VhcmNoS2V5ZG93biIpO2hhbmRsZVNjcm9sbE9yUmVzaXplPWkoKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBvc2l0aW9uLXJlcXVlc3QiKSl9LCJoYW5kbGVTY3JvbGxPclJlc2l6ZSIpO2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSksX2EudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7Z3IoYSx0KX19O3JldHVybiBtZT1hfSkoKX0pO3ZhciB3eCxNMix0bnQsUjFlPWcoKCk9PntwZSgpOyRiYSgpO0VpKCk7RXIoKTtodCgpO2VudCgpO3d4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxNMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdG50PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1kcm9wZG93biIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREcm9wZG93biIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCgpXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seT1bWSgpXSx3eCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Im9wdGlvbnMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5vcHRpb25zLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ub3B0aW9ucz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksd3godGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0ZWRPcHRpb24iaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RlZE9wdGlvbiwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkT3B0aW9uPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSx3eCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVNlYXJjaCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iZW5hYmxlU2VhcmNoImluIF8sImhhcyIpLGdldDppKF89Pl8uZW5hYmxlU2VhcmNoLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZW5hYmxlU2VhcmNoPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSx3eCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpbnRlZ3JhdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ2aW50ZWdyYXRlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnZpbnRlZ3JhdGVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udmludGVncmF0ZWQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLHd4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImlzT3BlbmVkImluIF8sImhhcyIpLGdldDppKF89Pl8uaXNPcGVuZWQsImdldCIpLHNldDppKChfLE8pPT57Xy5pc09wZW5lZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksd3gobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1UYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPU0yKHRoaXMsbyxbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhDKXt0aGlzLiNlPUN9I3Q9KE0yKHRoaXMsbCksTTIodGhpcyxkLG51bGwpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oQyl7dGhpcy4jdD1DfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShDKXt0aGlzLnNlbGVjdGVkT3B0aW9uPUN9I2E9KE0yKHRoaXMsdSksTTIodGhpcyxiLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiNhfXNldCBlbmFibGVTZWFyY2goQyl7dGhpcy4jYT1DfSNzPShNMih0aGlzLHYpLE0yKHRoaXMsbSwhMSkpO2dldCB2aW50ZWdyYXRlZCgpe3JldHVybiB0aGlzLiNzfXNldCB2aW50ZWdyYXRlZChDKXt0aGlzLiNzPUN9I2k9KE0yKHRoaXMsZiksTTIodGhpcyxNLCExKSk7Z2V0IGlzT3BlbmVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzT3BlbmVkKEMpe3RoaXMuI2k9Q31wb3B1cEluc3RhbmNlPShNMih0aGlzLHopLG51bGwpO3N0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveCB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzhweDsKICAgICAgICBwYWRkaW5nOiAwIDQwcHggMCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveDpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveC5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIERyb3Bkb3duIGFycm93ICovCiAgICAgIC5zZWxlY3RlZEJveDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveC5vcGVuOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpOwogICAgICB9CgogICAgICAvKiBWaXN1YWxseSBpbnRlZ3JhdGVkIG1vZGU6IHNoZWQgY2hyb21lIHRvIGJsZW5kIGludG8gYSBob3N0IGNvbXBvbmVudAogICAgICAgICAoZS5nLiBhIGRlZXMtdGFibGUgY2VsbCBpbiBlZGl0IG1vZGUpLiAqLwogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBkZWVzLWxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5tYWluY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94IHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgICAgcGFkZGluZzogMCAzMnB4IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5zZWxlY3RlZEJveDpob3Zlcjpub3QoLmRpc2FibGVkKSwKICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5zZWxlY3RlZEJveDo6YWZ0ZXIgewogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InNlbGVjdGVkQm94ICR7dGhpcy5pc09wZW5lZD8ib3BlbiI6IiJ9ICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZVNlbGVjdGVkQm94S2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy5zZWxlY3RlZE9wdGlvbj8ub3B0aW9ufHwiU2VsZWN0IGFuIG9wdGlvbiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5zZWxlY3RlZE9wdGlvbnx8bnVsbH11cGRhdGVkKEMpe3N1cGVyLnVwZGF0ZWQoQyksQy5oYXMoIm9wdGlvbnMiKSYmdGhpcy5wb3B1cEluc3RhbmNlJiZ0aGlzLmlzT3BlbmVkJiZ0aGlzLnBvcHVwSW5zdGFuY2UudXBkYXRlT3B0aW9ucyh0aGlzLm9wdGlvbnMpfWFzeW5jIHVwZGF0ZVNlbGVjdGlvbihDKXt0aGlzLnNlbGVjdGVkT3B0aW9uPUMsdGhpcy5jbG9zZVBvcHVwKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0ZWRPcHRpb24iLHtkZXRhaWw6QyxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWFzeW5jIHRvZ2dsZVNlbGVjdGlvbkJveCgpe2lmKHRoaXMuaXNPcGVuZWQpe3RoaXMuY2xvc2VQb3B1cCgpO3JldHVybn10aGlzLmlzT3BlbmVkPSEwO2xldCBfPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWRCb3giKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxPPXdpbmRvdy5pbm5lckhlaWdodC1fLmJvdHRvbSwkPV8udG9wLEU9TzwzMDAmJiQ+Tzt0aGlzLnBvcHVwSW5zdGFuY2V8fCh0aGlzLnBvcHVwSW5zdGFuY2U9bmV3IEpvdCksdGhpcy5wb3B1cEluc3RhbmNlLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMucG9wdXBJbnN0YW5jZS5lbmFibGVTZWFyY2g9dGhpcy5lbmFibGVTZWFyY2gsdGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9RSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9Xyx0aGlzLnBvcHVwSW5zdGFuY2Uub3duZXJDb21wb25lbnQ9dGhpcyx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLGF3YWl0IHRoaXMucG9wdXBJbnN0YW5jZS5zaG93KCksdGhpcy5lbmFibGVTZWFyY2gmJmF3YWl0IHRoaXMucG9wdXBJbnN0YW5jZS5mb2N1c1NlYXJjaElucHV0KCl9Y2xvc2VQb3B1cCgpe3RoaXMuaXNPcGVuZWQ9ITEsdGhpcy5wb3B1cEluc3RhbmNlJiYodGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9wdGlvbi1zZWxlY3RlZCIsdGhpcy5oYW5kbGVPcHRpb25TZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuaGlkZSgpKX1oYW5kbGVPcHRpb25TZWxlY3RlZD1pKEM9PntsZXQgXz1DLmRldGFpbDt0aGlzLnVwZGF0ZVNlbGVjdGlvbihfKX0sImhhbmRsZU9wdGlvblNlbGVjdGVkIik7aGFuZGxlQ2xvc2VSZXF1ZXN0PWkoKCk9Pnt0aGlzLmNsb3NlUG9wdXAoKX0sImhhbmRsZUNsb3NlUmVxdWVzdCIpO2hhbmRsZVJlcG9zaXRpb25SZXF1ZXN0PWkoKCk9PntpZighdGhpcy5wb3B1cEluc3RhbmNlfHwhdGhpcy5pc09wZW5lZClyZXR1cm47bGV0IEM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpO2lmKCFDKXJldHVybjtsZXQgXz1DLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKF8uYm90dG9tPDB8fF8udG9wPndpbmRvdy5pbm5lckhlaWdodCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufWxldCBPPXdpbmRvdy5pbm5lckhlaWdodC1fLmJvdHRvbSwkPV8udG9wO3RoaXMucG9wdXBJbnN0YW5jZS5vcGVuc1RvVG9wPU88MzAwJiYkPk8sdGhpcy5wb3B1cEluc3RhbmNlLnRyaWdnZXJSZWN0PV99LCJoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCIpO2hhbmRsZVNlbGVjdGVkQm94S2V5ZG93bihDKXt0aGlzLmRpc2FibGVkfHwoQy5rZXk9PT0iRW50ZXIifHxDLmtleT09PSIgIj8oQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCkpOkMua2V5PT09IkFycm93RG93biJ8fEMua2V5PT09IkFycm93VXAiPyhDLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZHx8dGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6Qy5rZXk9PT0iRXNjYXBlIiYmKEMucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkJiZ0aGlzLmNsb3NlUG9wdXAoKSkpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoQyl7dGhpcy5zZWxlY3RlZE9wdGlvbj1DfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCksdGhpcy5wb3B1cEluc3RhbmNlPW51bGwpfXN0YXRpY3tNMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgRGJhLExiYT1nKCgpPT57cGUoKTthbnQoKTt4bygpO0RiYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tc2hlbGwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMTYwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgewogICAgICAgICAgLmRlbW8tZ3JpZC0tdHdvIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc3RhY2sgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxNSAyMCUgMjYlKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEzIDEwMCUgOTclKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjUlIDMyJSkiLCJoc2woMjE1IDIwJSA4MiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHN0cm9uZyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDQ1JSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2hlbGwiPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJNb2Rlcm4gZmlsZSB1cGxvYWRlciJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlNoYWRjbi1pbnNwaXJlZCBsYXlvdXQgd2l0aCBkcmFnICYgZHJvcCwgcHJldmlld3MgYW5kIHZhbGlkYXRpb24ifQogICAgICA+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCBkZW1vLWdyaWQtLXR3byI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJBdHRhY2htZW50cyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIHN1cHBvcnRpbmcgZG9jdW1lbnRzIGZvciB5b3VyIHJlcXVlc3QifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFjY2VwdGVkIGZvcm1hdHM6IGltYWdlcywgUERGLCBhbmQgWklQIGFyY2hpdmVzIHVwIHRvIDEwTUIifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qLC5wZGYsLnppcCJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezEwKjEwMjQqMTAyNH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJCcmFuZCBhc3NldHMifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IlVwbG9hZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VyeSAoSlBHL1BORykifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS9qcGVnLGltYWdlL3BuZyJ9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7NSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAuYnV0dG9uVGV4dD0keyJTZWxlY3QgY292ZXIgaW1hZ2UifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQXVkaW8gdXBsb2FkcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2hhcmUgcG9kY2FzdCBkcmFmdHMgKE1QMy9XQVYsIG1heCAyNU1CIGVhY2gpIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXVkaW8vKiJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezI1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBleGFtcGxlIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWRlciBpcyBkaXNhYmxlZCB3aGlsZSBtb2RlcmF0aW9uIGlzIHBlbmRpbmcifQogICAgICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJGb3JtIGludGVncmF0aW9uIn0KICAgICAgICAuc3VidGl0bGU9JHsiQ29tYmluZSBmaWxlIHVwbG9hZHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgREVFUyBmb3JtIGVjb3N5c3RlbSJ9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBuYW1lIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJIb3cgc2hvdWxkIHdlIHJlZmVyIHRvIHRoaXMgcHJvamVjdCBpbnRlcm5hbGx5PyJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdE5hbWUifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkNvbnRhY3QgZW1haWwifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJlbWFpbCJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsiY29udGFjdEVtYWlsIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJTdGF0ZW1lbnQgb2Ygd29yayJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIGEgc2lnbmVkIHN0YXRlbWVudCBvZiB3b3JrIChQREYsIG1heCAxNU1CKSJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXBwbGljYXRpb24vcGRmIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTUqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLm11bHRpcGxlPSR7ITF9CiAgICAgICAgICAgICAgICAua2V5PSR7InNvdyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ3JlYXRpdmUgcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiT3B0aW9uYWwuIFVwbG9hZCB1cCB0byBmaXZlIHZpc3VhbCByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvKiJ9CiAgICAgICAgICAgICAgICAubWF4RmlsZXM9JHs1fQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs4KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiTm90ZXMifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBvcHRpb25hbCBjb250ZXh0IGZvciByZXZpZXdlcnMifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgICAgICAua2V5PSR7Im5vdGVzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBicmllZmluZyJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbm90ZSI+CiAgICAgICAgICAgIDxzdHJvbmc+R29vZCB0byBrbm93Ojwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkRyYWcgJiBkcm9wIGhpZ2hsaWdodHMgdGhlIGRyb3B6b25lIGFuZCBzdXBwb3J0cyBrZXlib2FyZCBhY3RpdmF0aW9uLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkFjY2VwdGVkIGZpbGUgdHlwZXMgYXJlIHN1bW1hcmlzZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSA8Y29kZT5hY2NlcHQ8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgogICAgICAgICAgICAgIDxsaT5JbWFnZSB1cGxvYWRzIHNob3cgbGl2ZSBwcmV2aWV3cyBnZW5lcmF0ZWQgdmlhIDxjb2RlPlVSTC5jcmVhdGVPYmplY3RVUkw8L2NvZGU+LjwvbGk+CiAgICAgICAgICAgICAgPGxpPkZpbGUgc2l6ZSBhbmQgZmlsZS1jb3VudCBsaW1pdHMgc3VyZmFjZSBpbmxpbmUgdmFsaWRhdGlvbiBtZXNzYWdlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UaGUgY29tcG9uZW50IHN0YXlzIGNvbXBhdGlibGUgd2l0aCA8Y29kZT5kZWVzLWZvcm08L2NvZGU+IHZhbHVlIGFjY2Vzc29ycy48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBFYmEsUGJhPWcoKCk9PntwZSgpO0VpKCk7aHQoKTtFYmE9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICA6aG9zdCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CgogICAgLmlucHV0LXdyYXBwZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLyog4pSA4pSAIFRpbGUgaW50ZWdyYXRpb24g4pSA4pSAICovCiAgICBkZWVzLXRpbGUgewogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CgogICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgIH0KCiAgICBkZWVzLXRpbGUuZHJhZ292ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5KTsKICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUgLyAwLjE1KSIsImhzbCgyMTMgOTMlIDY4JSAvIDAuMTUpIil9OwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF0pIGRlZXMtdGlsZSB7CiAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CgogICAgLyog4pSA4pSAIEhlYWRlciBzbG90OiBzbGVlayB0b29sYmFyIOKUgOKUgCAqLwogICAgLmRyb3B6b25lLWhlYWRlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgIH0KCiAgICAuZHJvcHpvbmUtaGVhZGVyIGRlZXMtaWNvbiB7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5kcm9wem9uZS1sb2FkZXIgewogICAgICB3aWR0aDogMTRweDsKICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsKICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMTUsIDIzLCA0MiwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5KTsKICAgICAgYW5pbWF0aW9uOiBsb2FkZXItc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICAuZHJvcHpvbmUtdGl0bGUgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5kcm9wem9uZS1icm93c2UgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5KTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIC5kcm9wem9uZS1icm93c2U6aG92ZXIgewogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIH0KCiAgICAuZHJvcHpvbmUtYnJvd3NlOmRpc2FibGVkIHsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgb3BhY2l0eTogMC41OwogICAgfQoKICAgIC8qIOKUgOKUgCBDb250ZW50IHNsb3Q6IGZpbGUgbGlzdCBpbiByb3VuZGVkIGluc2V0IOKUgOKUgCAqLwogICAgLmZpbGUtbGlzdC1lbXB0eSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgcGFkZGluZzogMjRweCAxNnB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgfQoKICAgIC5maWxlLWxpc3QtZW1wdHkgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICBvcGFjaXR5OiAwLjQ7CiAgICB9CgogICAgLmZpbGUtbGlzdCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB9CgogICAgLmZpbGUtbGlzdC1oZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5maWxlLWxpc3QtY2xlYXIgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5KTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgfQoKICAgIC5maWxlLWxpc3QtY2xlYXI6aG92ZXIgewogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIH0KCiAgICAuZmlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWRlZXMtdHJhbnNpdGlvbi1mYXN0KSBlYXNlOwogICAgfQoKICAgIC5maWxlLXJvdzpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itcm93LWhvdmVyKTsKICAgIH0KCiAgICAuZmlsZS10aHVtYiB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXNtKTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZmlsZS10aHVtYiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE2cHg7CiAgICAgIGhlaWdodDogMTZweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC50aHVtYi1pbWFnZSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgfQoKICAgIC5maWxlLW1ldGEgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDJweDsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5maWxlLW5hbWUgewogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIC5maWxlLWRldGFpbHMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5maWxlLXNpemUgewogICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgfQoKICAgIC5maWxlLXR5cGUgewogICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQoKICAgIC5maWxlLWFjdGlvbnMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbiB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhzKTsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kZWVzLXRyYW5zaXRpb24tZmFzdCkgZWFzZSwKICAgICAgICAgICAgICAgICAgY29sb3IgdmFyKC0tZGVlcy10cmFuc2l0aW9uLWZhc3QpIGVhc2U7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA1MCUgLyAwLjA4KSIsImhzbCgwIDYyJSAzMiUgLyAwLjE1KSIpfTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbjphY3RpdmUgewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTYpOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTRweDsKICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAvKiDilIDilIAgRm9vdGVyIHNsb3Q6IG1ldGEgY2hpcHMg4pSA4pSAICovCiAgICAuZHJvcHpvbmUtZm9vdGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBnYXA6IDZweDsKICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CgogICAgLm1ldGEtY2hpcCB7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgIH0KCiAgICAvKiDilIDilIAgVmFsaWRhdGlvbiDilIDilIAgKi8KICAgIC52YWxpZGF0aW9uLW1lc3NhZ2UgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICB9CgogICAgQGtleWZyYW1lcyBsb2FkZXItc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CiAgYF19KTt2YXIgWmQsdG8sc250LGFudD1nKCgpPT57RWkoKTtMYmEoKTtQYmEoKTtHYSgpO2J4KCk7bXIoKTtwZSgpO1pkPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx0bz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sc250PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1maWxldXBsb2FkIildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W107dmFyIEs9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dEZpbGV1cGxvYWQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgVj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHthdHRyaWJ1dGU6ITF9KV0scD1bWSgpXSxjPVtZKCldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6U3RyaW5nfSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPPVtMKHt0eXBlOk51bWJlcn0pXSxIPVtMKHt0eXBlOk51bWJlcn0pXSxJPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLFpkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InZhbHVlImluIFcsImhhcyIpLGdldDppKFc9PlcudmFsdWUsImdldCIpLHNldDppKChXLG1lKT0+e1cudmFsdWU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbyxsKSxaZCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJzdGF0ZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnN0YXRlLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLnN0YXRlPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGQsdSksWmQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImlzTG9hZGluZyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5pc0xvYWRpbmc9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sYix2KSxaZCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1dHRvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImJ1dHRvblRleHQiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5idXR0b25UZXh0LCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmJ1dHRvblRleHQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbSxmKSxaZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iYWNjZXB0ImluIFcsImhhcyIpLGdldDppKFc9PlcuYWNjZXB0LCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmFjY2VwdD1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxNLHopLFpkKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXVsdGlwbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Im11bHRpcGxlImluIFcsImhhcyIpLGdldDppKFc9PlcubXVsdGlwbGUsImdldCIpLHNldDppKChXLG1lKT0+e1cubXVsdGlwbGU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sQyxfKSxaZCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Im1heFNpemUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5tYXhTaXplLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLm1heFNpemU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sJCxFKSxaZCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJtYXhGaWxlcyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLm1heEZpbGVzLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLm1heEZpbGVzPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGssUyksWmQodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InZhbGlkYXRpb25TdGF0ZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnZhbGlkYXRpb25TdGF0ZSwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy52YWxpZGF0aW9uU3RhdGU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sUCxSKSxaZChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpWfSxudWxsLHQpLEs9YT1lLnZhbHVlLFYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Vn0pfXN0YXRpYyBkZW1vPURiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9dG8odGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoVil7dGhpcy4jZT1WfSN0PSh0byh0aGlzLGwpLHRvKHRoaXMsZCwiaWRsZSIpKTtnZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdGUoVil7dGhpcy4jdD1WfSNhPSh0byh0aGlzLHUpLHRvKHRoaXMsYiwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaXNMb2FkaW5nKFYpe3RoaXMuI2E9Vn0jcz0odG8odGhpcyx2KSx0byh0aGlzLG0sIlNlbGVjdCBmaWxlcyIpKTtnZXQgYnV0dG9uVGV4dCgpe3JldHVybiB0aGlzLiNzfXNldCBidXR0b25UZXh0KFYpe3RoaXMuI3M9Vn0jaT0odG8odGhpcyxmKSx0byh0aGlzLE0sIiIpKTtnZXQgYWNjZXB0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFjY2VwdChWKXt0aGlzLiNpPVZ9I3I9KHRvKHRoaXMseiksdG8odGhpcyxDLCEwKSk7Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG11bHRpcGxlKFYpe3RoaXMuI3I9Vn0jbz0odG8odGhpcyxfKSx0byh0aGlzLCQsMCkpO2dldCBtYXhTaXplKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heFNpemUoVil7dGhpcy4jbz1WfSNuPSh0byh0aGlzLEUpLHRvKHRoaXMsaywwKSk7Z2V0IG1heEZpbGVzKCl7cmV0dXJuIHRoaXMuI259c2V0IG1heEZpbGVzKFYpe3RoaXMuI249Vn0jbD0odG8odGhpcyxTKSx0byh0aGlzLFAsbnVsbCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgdmFsaWRhdGlvblN0YXRlKFYpe3RoaXMuI2w9Vn0jYz0odG8odGhpcyxSKSwiIik7Z2V0IHZhbGlkYXRpb25NZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25NZXNzYWdlKFYpe3RoaXMuI2M9Vn1wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwO2Ryb3BBcmVhPW51bGw7c3RhdGljIHN0eWxlcz1FYmE7cmVuZGVyKCl7bGV0IFY9dGhpcy5nZXRBY2NlcHRlZFN1bW1hcnkoKSxXPVt0aGlzLm11bHRpcGxlPyJNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQiOiJTaW5nbGUgZmlsZSBvbmx5Iix0aGlzLm1heFNpemU+MD9gTWF4ICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWA6Ik5vIHNpemUgbGltaXQiXTtyZXR1cm4gViYmVy5wdXNoKGBBY2NlcHRzICR7Vn1gKSx3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbAogICAgICAgICAgLmxhYmVsPSR7dGhpcy5sYWJlbH0KICAgICAgICAgIC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgID48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtdGlsZQogICAgICAgICAgY2xhc3M9IiR7dGhpcy5zdGF0ZT09PSJkcmFnT3ZlciI/ImRyYWdvdmVyIjoiIn0iCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZURyb3B6b25lQ2xpY2t9CiAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlRHJvcHpvbmVLZXlkb3dufQogICAgICAgICAgdGFiaW5kZXg9JHt0aGlzLmRpc2FibGVkPy0xOjB9CiAgICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIGFyaWEtbGFiZWw9JHtgU2VsZWN0IGZpbGVzJHtWP2AgKCR7Vn0pYDoiIn1gfQogICAgICAgID4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0iZmlsZS1pbnB1dCIKICAgICAgICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyB0b3A6IDA7IGxlZnQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IgogICAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgICA/bXVsdGlwbGU9JHt0aGlzLm11bHRpcGxlfQogICAgICAgICAgICBhY2NlcHQ9JHt0aGlzLmFjY2VwdHx8IiJ9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVJbnB1dENoYW5nZX0KICAgICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iZHJvcHpvbmUtaGVhZGVyIj4KICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZz93YDxzcGFuIGNsYXNzPSJkcm9wem9uZS1sb2FkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+YDp3YDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlVwbG9hZCI+PC9kZWVzLWljb24+YH0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRyb3B6b25lLXRpdGxlIj5Ecm9wIGZpbGVzIGhlcmUgb3I8L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICB0eXBlPSJidXR0b24iCiAgICAgICAgICAgICAgY2xhc3M9ImRyb3B6b25lLWJyb3dzZSIKICAgICAgICAgICAgICBAY2xpY2s9JHttZT0+e21lLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpfX0KICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICA+YnJvd3NlPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGaWxlTGlzdCgpfQogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJkcm9wem9uZS1mb290ZXIiPgogICAgICAgICAgICAke1cubWFwKG1lPT53YDxzcGFuIGNsYXNzPSJtZXRhLWNoaXAiPiR7bWV9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlP3dgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIiBhcmlhLWxpdmU9InBvbGl0ZSI+JHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlfTwvZGl2PmA6d2BgfQogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZUxpc3QoKXtyZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGg9PT0wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0LWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVTdGFjayI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5ObyBmaWxlcyBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+JHt0aGlzLnZhbHVlLmxlbmd0aH0gZmlsZSR7dGhpcy52YWx1ZS5sZW5ndGg9PT0xPyIiOiJzIn0gc2VsZWN0ZWQ8L3NwYW4+CiAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtbGlzdC1jbGVhciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhckFsbH0+Q2xlYXIgJHt0aGlzLnZhbHVlLmxlbmd0aD4xPyJhbGwiOiIifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy52YWx1ZS5tYXAoVj0+dGhpcy5yZW5kZXJGaWxlUm93KFYpKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVSb3coVil7bGV0IFc9dGhpcy5nZXRGaWxlVHlwZShWKSxtZT10aGlzLmNhblNob3dQcmV2aWV3KFYpP3RoaXMuZ2V0UHJldmlld1VybChWKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLXJvdyAke1d9LWZpbGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtdGh1bWIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICR7bWU/d2A8aW1nIGNsYXNzPSJ0aHVtYi1pbWFnZSIgc3JjPSR7bWV9IGFsdD0ke2BQcmV2aWV3IG9mICR7Vi5uYW1lfWB9PmA6d2A8ZGVlcy1pY29uIGljb249JHt0aGlzLmdldEZpbGVJY29uKFYpfT48L2RlZXMtaWNvbj5gfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbWV0YSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW5hbWUiIHRpdGxlPSR7Vi5uYW1lfT4ke1YubmFtZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtZGV0YWlscyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLXNpemUiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShWLnNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgJHtXIT09ImZpbGUiP3dgPHNwYW4gY2xhc3M9ImZpbGUtdHlwZSI+JHtXfTwvc3Bhbj5gOndgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgY2xhc3M9InJlbW92ZS1idXR0b24iCiAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUZpbGUoVil9CiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgUmVtb3ZlICR7Vi5uYW1lfWB9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVGaWxlSW5wdXRDaGFuZ2U9aShhc3luYyBWPT57dGhpcy5pc0xvYWRpbmc9ITE7bGV0IFc9Vi50YXJnZXQsbWU9QXJyYXkuZnJvbShXLmZpbGVzPz9bXSk7bWUubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMobWUpLFcudmFsdWU9IiJ9LCJoYW5kbGVGaWxlSW5wdXRDaGFuZ2UiKTtoYW5kbGVEcm9wem9uZUNsaWNrPWkoVj0+e3RoaXMuZGlzYWJsZWR8fFYudGFyZ2V0LmNsb3Nlc3QoIi5maWxlLWxpc3QsIC5kcm9wem9uZS1oZWFkZXIsIC5kcm9wem9uZS1mb290ZXIiKXx8dGhpcy5vcGVuRmlsZVNlbGVjdG9yKCl9LCJoYW5kbGVEcm9wem9uZUNsaWNrIik7aGFuZGxlRHJvcHpvbmVLZXlkb3duPWkoVj0+e3RoaXMuZGlzYWJsZWR8fChWLmtleT09PSJFbnRlciJ8fFYua2V5PT09IiAiKSYmKFYucHJldmVudERlZmF1bHQoKSx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKSl9LCJoYW5kbGVEcm9wem9uZUtleWRvd24iKTtoYW5kbGVDbGVhckFsbD1pKFY9PntWLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbGVhckFsbCgpfSwiaGFuZGxlQ2xlYXJBbGwiKTtoYW5kbGVEcmFnRXZlbnQ9aShhc3luYyBWPT57aWYoVi5wcmV2ZW50RGVmYXVsdCgpLFYuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuZGlzYWJsZWQpe2lmKFYudHlwZT09PSJkcmFnZW50ZXIifHxWLnR5cGU9PT0iZHJhZ292ZXIiKXtWLmRhdGFUcmFuc2ZlciYmKFYuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9ImNvcHkiKSx0aGlzLnN0YXRlPSJkcmFnT3ZlciI7cmV0dXJufWlmKFYudHlwZT09PSJkcmFnbGVhdmUiKXtpZighdGhpcy5kcm9wQXJlYSl7dGhpcy5zdGF0ZT0iaWRsZSI7cmV0dXJufWxldCBXPXRoaXMuZHJvcEFyZWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2NsaWVudFg6bWU9MCxjbGllbnRZOkI9MH09VjsobWU8PVcubGVmdHx8bWU+PVcucmlnaHR8fEI8PVcudG9wfHxCPj1XLmJvdHRvbSkmJih0aGlzLnN0YXRlPSJpZGxlIik7cmV0dXJufWlmKFYudHlwZT09PSJkcm9wIil7dGhpcy5zdGF0ZT0iaWRsZSI7bGV0IFc9QXJyYXkuZnJvbShWLmRhdGFUcmFuc2Zlcj8uZmlsZXM/P1tdKTtXLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmFkZEZpbGVzKFcpfX19LCJoYW5kbGVEcmFnRXZlbnQiKTthdHRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKFY9Pnt0aGlzLmRyb3BBcmVhLmFkZEV2ZW50TGlzdGVuZXIoVix0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1kZXRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKFY9Pnt0aGlzLmRyb3BBcmVhLnJlbW92ZUV2ZW50TGlzdGVuZXIoVix0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl7bGV0IFY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXRpbGUiKTtWIT09dGhpcy5kcm9wQXJlYSYmKHRoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpLHRoaXMuZHJvcEFyZWE9Vix0aGlzLmF0dGFjaERyb3BMaXN0ZW5lcnMoKSl9Zm9ybWF0RmlsZVNpemUoVil7bGV0IFc9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdO2lmKFY9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgbWU9TWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZyhWKS9NYXRoLmxvZygxMDI0KSksVy5sZW5ndGgtMSksQj1WL01hdGgucG93KDEwMjQsbWUpO3JldHVybmAke01hdGgucm91bmQoQioxMDApLzEwMH0gJHtXW21lXX1gfWdldEZpbGVUeXBlKFYpe2xldCBXPVYudHlwZS50b0xvd2VyQ2FzZSgpO3JldHVybiBXLnN0YXJ0c1dpdGgoImltYWdlLyIpPyJpbWFnZSI6Vz09PSJhcHBsaWNhdGlvbi9wZGYiPyJwZGYiOlcuaW5jbHVkZXMoIndvcmQiKXx8Vy5pbmNsdWRlcygiZG9jdW1lbnQiKT8iZG9jIjpXLmluY2x1ZGVzKCJzaGVldCIpfHxXLmluY2x1ZGVzKCJleGNlbCIpPyJzcHJlYWRzaGVldCI6Vy5pbmNsdWRlcygicHJlc2VudGF0aW9uIil8fFcuaW5jbHVkZXMoInBvd2VycG9pbnQiKT8icHJlc2VudGF0aW9uIjpXLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJ2aWRlbyI6Vy5zdGFydHNXaXRoKCJhdWRpby8iKT8iYXVkaW8iOlcuaW5jbHVkZXMoInppcCIpfHxXLmluY2x1ZGVzKCJjb21wcmVzc2VkIik/ImFyY2hpdmUiOiJmaWxlIn1nZXRGaWxlSWNvbihWKXtsZXQgVz10aGlzLmdldEZpbGVUeXBlKFYpO3JldHVybntpbWFnZToibHVjaWRlOkZpbGVJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGRvYzoibHVjaWRlOkZpbGVUZXh0IixzcHJlYWRzaGVldDoibHVjaWRlOkZpbGVTcHJlYWRzaGVldCIscHJlc2VudGF0aW9uOiJsdWNpZGU6RmlsZUJhckNoYXJ0Iix2aWRlbzoibHVjaWRlOkZpbGVWaWRlbyIsYXVkaW86Imx1Y2lkZTpGaWxlQXVkaW8iLGFyY2hpdmU6Imx1Y2lkZTpGaWxlQXJjaGl2ZSIsZmlsZToibHVjaWRlOkZpbGUifVtXXT8/Imx1Y2lkZTpGaWxlIn1jYW5TaG93UHJldmlldyhWKXtyZXR1cm4gVi50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiZWLnNpemU8NSoxMDI0KjEwMjR9dmFsaWRhdGVGaWxlKFYpe2lmKHRoaXMubWF4U2l6ZT4wJiZWLnNpemU+dGhpcy5tYXhTaXplKXJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBGaWxlICIke1YubmFtZX0iIGV4Y2VlZHMgdGhlIG1heGltdW0gc2l6ZSBvZiAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMTtpZih0aGlzLmFjY2VwdCl7bGV0IFc9dGhpcy5hY2NlcHQuc3BsaXQoIiwiKS5tYXAobWU9Pm1lLnRyaW0oKSkuZmlsdGVyKG1lPT5tZS5sZW5ndGg+MCk7aWYoVy5sZW5ndGg+MCl7bGV0IG1lPSExO2ZvcihsZXQgQiBvZiBXKWlmKEIuc3RhcnRzV2l0aCgiLiIpKXtpZihWLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChCLnRvTG93ZXJDYXNlKCkpKXttZT0hMDticmVha319ZWxzZSBpZihCLmVuZHNXaXRoKCIvKiIpKXtsZXQgVT1CLnNsaWNlKDAsLTIpO2lmKFYudHlwZS5zdGFydHNXaXRoKFUpKXttZT0hMDticmVha319ZWxzZSBpZihWLnR5cGU9PT1CKXttZT0hMDticmVha31pZighbWUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgdHlwZSBub3QgYWNjZXB0ZWQuIEFsbG93ZWQ6ICR7Vy5qb2luKCIsICIpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExfX1yZXR1cm4hMH1nZXRQcmV2aWV3VXJsKFYpe2xldCBXPXRoaXMucHJldmlld1VybE1hcC5nZXQoVik7cmV0dXJuIFd8fChXPVVSTC5jcmVhdGVPYmplY3RVUkwoViksdGhpcy5wcmV2aWV3VXJsTWFwLnNldChWLFcpKSxXfXJlbGVhc2VQcmV2aWV3KFYpe2xldCBXPXRoaXMucHJldmlld1VybE1hcC5nZXQoVik7VyYmKFVSTC5yZXZva2VPYmplY3RVUkwoVyksdGhpcy5wcmV2aWV3VXJsTWFwLmRlbGV0ZShWKSl9Z2V0QWNjZXB0ZWRTdW1tYXJ5KCl7aWYoIXRoaXMuYWNjZXB0KXJldHVybiBudWxsO2xldCBWPUFycmF5LmZyb20obmV3IFNldCh0aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChXPT5XLnRyaW0oKSkuZmlsdGVyKFc9PlcubGVuZ3RoPjApLm1hcChXPT50aGlzLmZvcm1hdEFjY2VwdFRva2VuKFcpKSkpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gVi5sZW5ndGg9PT0wP251bGw6Vi5sZW5ndGg9PT0xP1ZbMF06Vi5sZW5ndGg9PT0yP2Ake1ZbMF19LCAke1ZbMV19YDpgJHtWLnNsaWNlKDAsMikuam9pbigiLCAiKX1cdTIwMjZgfWZvcm1hdEFjY2VwdFRva2VuKFYpe2lmKFY9PT0iKi8qIilyZXR1cm4iQWxsIGZpbGVzIjtpZihWLmVuZHNXaXRoKCIvKiIpKXtsZXQgQj1WLnNwbGl0KCIvIilbMF07cmV0dXJuIEI/YCR7Qi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke0Iuc2xpY2UoMSl9IGZpbGVzYDoiQWxsIGZpbGVzIn1yZXR1cm4gVi5zdGFydHNXaXRoKCIuIik/Vi5zbGljZSgxKS50b1VwcGVyQ2FzZSgpOlYuaW5jbHVkZXMoInBkZiIpPyJQREYiOlYuaW5jbHVkZXMoInppcCIpPyJaSVAiOlYuaW5jbHVkZXMoImpzb24iKT8iSlNPTiI6Vi5pbmNsdWRlcygibXN3b3JkIik/IkRPQyI6Vi5pbmNsdWRlcygid29yZHByb2Nlc3NpbmdtbCIpPyJET0NYIjpWLmluY2x1ZGVzKCJleGNlbCIpPyJYTFMiOlYuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJQUFQiOihWLnNwbGl0KCIvIikucG9wKCk/P1YpLnRvVXBwZXJDYXNlKCl9YXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl7dGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9Zmlyc3RVcGRhdGVkKFYpe3N1cGVyLmZpcnN0VXBkYXRlZChWKSx0aGlzLmF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpfXVwZGF0ZWQoVil7c3VwZXIudXBkYXRlZChWKSxWLmhhcygidmFsdWUiKSYmdGhpcy52YWxpZGF0ZSgpLHRoaXMucmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy52YWx1ZS5mb3JFYWNoKFY9PnRoaXMucmVsZWFzZVByZXZpZXcoVikpLHRoaXMucHJldmlld1VybE1hcD1uZXcgV2Vha01hcCxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIG9wZW5GaWxlU2VsZWN0b3IoKXtpZih0aGlzLmRpc2FibGVkfHx0aGlzLmlzTG9hZGluZylyZXR1cm47dGhpcy5pc0xvYWRpbmc9ITA7bGV0IFY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmlsZS1pbnB1dCIpO2lmKCFWKXt0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59bGV0IFc9aSgoKT0+e3NldFRpbWVvdXQoKCk9PnsoIVYuZmlsZXN8fFYuZmlsZXMubGVuZ3RoPT09MCkmJih0aGlzLmlzTG9hZGluZz0hMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixXKX0sMzAwKX0sImhhbmRsZUZvY3VzIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixXKSxWLmNsaWNrKCl9cmVtb3ZlRmlsZShWKXtsZXQgVz10aGlzLnZhbHVlLmluZGV4T2YoVik7Vz4tMSYmKHRoaXMucmVsZWFzZVByZXZpZXcoViksdGhpcy52YWx1ZS5zcGxpY2UoVywxKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1jbGVhckFsbCgpe2xldCBWPVsuLi50aGlzLnZhbHVlXTt0aGlzLnZhbHVlPVtdLFYuZm9yRWFjaChXPT50aGlzLnJlbGVhc2VQcmV2aWV3KFcpKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIn1hc3luYyB1cGRhdGVWYWx1ZShWKXtsZXQgVz1WLnRhcmdldDt0aGlzLnZhbHVlPUFycmF5LmZyb20oVy5maWxlcz8/W10pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXNldFZhbHVlKFYpe3RoaXMudmFsdWUuZm9yRWFjaChXPT50aGlzLnJlbGVhc2VQcmV2aWV3KFcpKSx0aGlzLnZhbHVlPVYsVi5sZW5ndGg+MD90aGlzLmJ1dHRvblRleHQ9dGhpcy5tdWx0aXBsZT8iQWRkIG1vcmUgZmlsZXMiOiJSZXBsYWNlIGZpbGUiOnRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIix0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9YXN5bmMgYWRkRmlsZXMoVil7bGV0IFc9W107Zm9yKGxldCBtZSBvZiBWKXRoaXMudmFsaWRhdGVGaWxlKG1lKSYmVy5wdXNoKG1lKTtpZihXLmxlbmd0aD09PTApe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1pZih0aGlzLm1heEZpbGVzPjAmJnRoaXMudmFsdWUubGVuZ3RoK1cubGVuZ3RoPnRoaXMubWF4RmlsZXMpe2xldCBCPXRoaXMubWF4RmlsZXMtdGhpcy52YWx1ZS5sZW5ndGg7aWYoQjw9MCl7dGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59Vy5zcGxpY2UoQiksdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gT25seSAke0J9IG1vcmUgZmlsZShzKSBjYW4gYmUgYWRkZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJ3YXJuIn0hdGhpcy5tdWx0aXBsZSYmVy5sZW5ndGg+MD8odGhpcy52YWx1ZS5mb3JFYWNoKG1lPT50aGlzLnJlbGVhc2VQcmV2aWV3KG1lKSksdGhpcy52YWx1ZT1bV1swXV0pOnRoaXMudmFsdWUucHVzaCguLi5XKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMudmFsaWRhdGlvblN0YXRlPW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLGF3YWl0IHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHZhbGlkYXRlKCl7aWYodGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iIix0aGlzLnJlcXVpcmVkJiZ0aGlzLnZhbHVlLmxlbmd0aD09PTApcmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSJQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBmaWxlIiwhMTtmb3IobGV0IFYgb2YgdGhpcy52YWx1ZSlpZighdGhpcy52YWxpZGF0ZUZpbGUoVikpcmV0dXJuITE7cmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPXRoaXMudmFsdWUubGVuZ3RoPjA/InZhbGlkIjpudWxsLCEwfXN0YXRpY3t0byhhLHQpfX07cmV0dXJuIEs9YX0pKCl9KTt2YXIgaW50PWcoKCk9PnthbnQoKX0pO3ZhciBJYmEsQWJhPWcoKCk9PntwZSgpO0liYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXltZW50LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIElCQU4gSW5wdXQifSAuc3VidGl0bGU9JHsiSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIHdpdGggYXV0b21hdGljIGZvcm1hdHRpbmcifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiQmFuayBBY2NvdW50IElCQU4ifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW50ZXIgeW91ciBJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBJQkFOIGNhbiBiZSBmb3VuZCBvbiB5b3VyIGJhbmsgc3RhdGVtZW50In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJWZXJpZmllZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBoYXMgYmVlbiB2ZXJpZmllZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJERTg5MzcwNDAwNDQwNTMyMDEzMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBheW1lbnQgSW5mb3JtYXRpb24ifSAuc3VidGl0bGU9JHsiSUJBTiBpbnB1dCB3aXRoIGhvcml6b250YWwgbGF5b3V0IGZvciBwYXltZW50IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgSG9sZGVyIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiSm9obiBEb2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgICAgLmxhYmVsPSR7IklCQU4ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC52YWx1ZT0keyJHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGZpZWxkcyBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IlBheW1lbnQgQWNjb3VudCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJSZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBwYXltZW50cyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkxvY2tlZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJGUjE0MjAwNDEwMTAwNTA1MDAwMTNNMDI2MDYifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhbmsgVHJhbnNmZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIGV4YW1wbGUgd2l0aCBJQkFOIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUmVjaXBpZW50IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIC5sYWJlbD0keyJSZWNpcGllbnQgSUJBTiJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlRyYW5zZmVyIFJlZmVyZW5jZSJ9IC5pbmZvVGV4dD0keyJPcHRpb25hbCByZWZlcmVuY2UgZm9yIHRoZSB0cmFuc2ZlciJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQW1vdW50In0gLmlucHV0VHlwZT0keyJudW1iZXIifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBPMWUsR2cscm50LG9udD1nKCgpPT57cGUoKTtrdCgpO0VpKCk7S2V0KCk7QWJhKCk7aHQoKTtPMWU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEdnPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxybnQ9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWliYW4iKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0SWJhbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtMKHt0eXBlOlN0cmluZ30pXSxPMWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRlcmVkU3RyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJlbnRlcmVkU3RyaW5nImluIGYsImhhcyIpLGdldDppKGY9PmYuZW50ZXJlZFN0cmluZywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmVudGVyZWRTdHJpbmc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLE8xZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRJYmFuSXNWYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iZW50ZXJlZEliYW5Jc1ZhbGlkImluIGYsImhhcyIpLGdldDppKGY9PmYuZW50ZXJlZEliYW5Jc1ZhbGlkLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZW50ZXJlZEliYW5Jc1ZhbGlkPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxPMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idmFsdWUiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi52YWx1ZSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnZhbHVlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxPMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1JYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUdnKHRoaXMsbywiIik7Z2V0IGVudGVyZWRTdHJpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50ZXJlZFN0cmluZyhtKXt0aGlzLiNlPW19I3Q9KEdnKHRoaXMsbCksR2codGhpcyxkLCExKSk7Z2V0IGVudGVyZWRJYmFuSXNWYWxpZCgpe3JldHVybiB0aGlzLiN0fXNldCBlbnRlcmVkSWJhbklzVmFsaWQobSl7dGhpcy4jdD1tfSNhPShHZyh0aGlzLHUpLEdnKHRoaXMsYiwiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNhfXNldCB2YWx1ZShtKXt0aGlzLiNhPW19c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSUJBTiBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfHwiSUJBTiJ9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwIn0KICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHttPT57bGV0IGY9bS5yZXBsYWNlKC8gL2csIiIpO3JldHVybiBmLmxlbmd0aD09PTA/e3ZhbGlkOiEwLG1lc3NhZ2U6IiJ9Ok44KGYpP3t2YWxpZDohMCxtZXNzYWdlOiJJQkFOIGlzIHZhbGlkIn06e3ZhbGlkOiExLG1lc3NhZ2U6IlBsZWFzZSBlbnRlciBhIHZhbGlkIElCQU4ifX19CiAgICAgICAgICBAaW5wdXQ9JHttPT57dGhpcy52YWxpZGF0ZUliYW4obSl9fQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZChtKXtzdXBlci5maXJzdFVwZGF0ZWQobSk7bGV0IGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO2YmJmYuY2hhbmdlU3ViamVjdCYmZi5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSl9YXN5bmMgdmFsaWRhdGVJYmFuKG0pe2xldCBmPW0udGFyZ2V0LHk9Zj8udmFsdWU7eT15fHwiIix0aGlzLmVudGVyZWRTdHJpbmchPT15JiYodGhpcy5lbnRlcmVkU3RyaW5nPWZ2KHkpfHwiIixmJiYoZi52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpKSx0aGlzLmVudGVyZWRJYmFuSXNWYWxpZD1OOCh0aGlzLmVudGVyZWRTdHJpbmcucmVwbGFjZSgvIC9nLCIiKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShtKXt0aGlzLnZhbHVlPW0sdGhpcy5lbnRlcmVkU3RyaW5nPWZ2KG0pfHwiIn1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksR2codGhpcyx2KX1zdGF0aWN7R2coYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIE5iYSxSYmE9ZygoKT0+e3BlKCk7TmJhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLnNldHRpbmdzLWdyaWQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpLU9wdGlvbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgZnJvbSBtdWx0aXBsZSBvcHRpb25zIHdpdGggYSBzbW9vdGggc2xpZGluZyBpbmRpY2F0b3IgYW5pbWF0aW9uLjwvZGl2PgoKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc3BsYXkgTW9kZSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJDaG9vc2UgaG93IGNvbnRlbnQgaXMgZGlzcGxheWVkIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgc2V0dGluZyBhZmZlY3RzIGhvdyBpdGVtcyBhcHBlYXIgb24geW91ciBkYXNoYm9hcmQifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTGlzdCBWaWV3IiwiR3JpZCBWaWV3IiwiQ29tcGFjdCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiR3JpZCBWaWV3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlQtU2hpcnQgU2l6ZSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTZWxlY3QgeW91ciBwcmVmZXJyZWQgc2l6ZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJYUyIsIlMiLCJNIiwiTCIsIlhMIiwiWFhMIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJNIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9vbGVhbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TaW1wbGUgb24vb2ZmIHN3aXRjaGVzIHdpdGggY3VzdG9taXphYmxlIGxhYmVscyBmb3IgY2xlYXJlciBjb250ZXh0LjwvZGl2PgoKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW5hYmxlIG9yIGRpc2FibGUgcHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0cnVlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlRoZW1lIE1vZGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU3dpdGNoIGJldHdlZW4gbGlnaHQgYW5kIGRhcmsgdGhlbWUifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJEYXJrIn0KICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiTGlnaHQifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRGFyayJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNldHRpbmdzIEdyaWQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Db25maWd1cmF0aW9uIG9wdGlvbnMgYXJyYW5nZWQgaW4gYSByZXNwb25zaXZlIGdyaWQgbGF5b3V0LjwvZGl2PgoKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tU2F2ZSJ9CiAgICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJFbmFibGVkIn0KICAgICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJEaXNhYmxlZCJ9CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuYWJsZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiTGFuZ3VhZ2UifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbmdsaXNoIiwiR2VybWFuIiwiRnJlbmNoIiwiU3BhbmlzaCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlF1YWxpdHkifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJMb3ciLCJNZWRpdW0iLCJIaWdoIiwiVWx0cmEiXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSGlnaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJQcml2YWN5In0KICAgICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IlByaXZhdGUifQogICAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IlB1YmxpYyJ9CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U3RhdGVzICYgRm9ybSBJbnRlZ3JhdGlvbjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkV4YW1wbGVzIG9mIGRpc2FibGVkIHN0YXRlcyBhbmQgaW50ZWdyYXRpb24gd2l0aGluIGZvcm1zLjwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiQWNjb3VudCBUeXBlIn0KICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIHNldHRpbmcgaXMgbG9ja2VkIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJGcmVlIiwiUHJvIiwiRW50ZXJwcmlzZSJdfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVudGVycHJpc2UifQogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAKICAgICAgICA8YnI+PGJyPgogICAgICAgIAogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiVmlzaWJpbGl0eSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IlB1YmxpYyJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IlByaXZhdGUifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJpdmF0ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkxpY2Vuc2UifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTUlUIiwiQXBhY2hlIDIuMCIsIkdQTCB2MyIsIlByb3ByaWV0YXJ5Il19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJNSVQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgS2csb2Msbm50LGxudD1nKCgpPT57cGUoKTtFaSgpO3cyKCk7UmJhKCk7aHQoKTtLZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sb2M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG5udD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0TXVsdGl0b2dnbGUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sYz1bTCgpXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W0woKV0sTj1bTCh7dHlwZTpCb29sZWFufSldLEtnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idHlwZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnR5cGUsImdldCIpLHNldDppKChFLEgpPT57RS50eXBlPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxLZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xlYW5UcnVlTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iYm9vbGVhblRydWVOYW1lImluIEUsImhhcyIpLGdldDppKEU9PkUuYm9vbGVhblRydWVOYW1lLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UuYm9vbGVhblRydWVOYW1lPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSxLZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xlYW5GYWxzZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImJvb2xlYW5GYWxzZU5hbWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5ib29sZWFuRmFsc2VOYW1lLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UuYm9vbGVhbkZhbHNlTmFtZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGIsdiksS2codGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJvcHRpb25zImluIEUsImhhcyIpLGdldDppKEU9PkUub3B0aW9ucywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm9wdGlvbnM9SH0sInNldCIpfSxtZXRhZGF0YTokfSxtLGYpLEtnKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlbGVjdGVkT3B0aW9uImluIEUsImhhcyIpLGdldDppKEU9PkUuc2VsZWN0ZWRPcHRpb24sImdldCIpLHNldDppKChFLEgpPT57RS5zZWxlY3RlZE9wdGlvbj1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksS2codGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImJvb2xWYWx1ZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmJvb2xWYWx1ZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmJvb2xWYWx1ZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksS2cobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1OYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPW9jKHRoaXMsbywibXVsdGkiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKCQpe3RoaXMuI2U9JH0jdD0ob2ModGhpcyxsKSxvYyh0aGlzLGQsInRydWUiKSk7Z2V0IGJvb2xlYW5UcnVlTmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBib29sZWFuVHJ1ZU5hbWUoJCl7dGhpcy4jdD0kfSNhPShvYyh0aGlzLHUpLG9jKHRoaXMsYiwiZmFsc2UiKSk7Z2V0IGJvb2xlYW5GYWxzZU5hbWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYm9vbGVhbkZhbHNlTmFtZSgkKXt0aGlzLiNhPSR9I3M9KG9jKHRoaXMsdiksb2ModGhpcyxtLFtdKSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgb3B0aW9ucygkKXt0aGlzLiNzPSR9I2k9KG9jKHRoaXMsZiksb2ModGhpcyxNLCIiKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkT3B0aW9uKCQpe3RoaXMuI2k9JH0jcj0ob2ModGhpcyx6KSxvYyh0aGlzLEMsITEpKTtnZXQgYm9vbFZhbHVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJvb2xWYWx1ZSgkKXt0aGlzLiNyPSR9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMudHlwZT09PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPT09dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoJCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgJD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249JD90aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLmJvb2xlYW5GYWxzZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbj0kLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuaGFzVXBkYXRlZCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zZXRJbmRpY2F0b3IoKX0pfXN0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9ucyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2U0ZTRlNyIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmluZGljYXRvciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuc2VsZWN0aW9ucyB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5pbmRpY2F0b3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIiwicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5kaWNhdG9yIj48L2Rpdj4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcCgkPT53YDxkaXYgY2xhc3M9Im9wdGlvbiAkeyQ9PT10aGlzLnNlbGVjdGVkT3B0aW9uPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZWxlY3Rpb24oJCl9PgogICAgICAgICAgICAgICAgJHskfQogICAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudHlwZT09PSJib29sZWFuIiYmdGhpcy5vcHRpb25zLmxlbmd0aD09PTAmJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSx0aGlzLnNlbGVjdGVkT3B0aW9ufHwodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSIpKSwhdGhpcy5zZWxlY3RlZE9wdGlvbiYmdGhpcy5vcHRpb25zLmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLm9wdGlvbnNbMF0pfWFzeW5jIGZpcnN0VXBkYXRlZCgkKXtzdXBlci5maXJzdFVwZGF0ZWQoJCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0pLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LGF3YWl0IG5ldyBQcm9taXNlKEU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShFKSksdGhpcy5zZXRJbmRpY2F0b3IoKX1hc3luYyBoYW5kbGVTZWxlY3Rpb24oJCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRPcHRpb249JCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuc2V0SW5kaWNhdG9yKCkpfWluZGljYXRvckluaXRpYWxpemVkPShvYyh0aGlzLF8pLCExKTthc3luYyBzZXRJbmRpY2F0b3IoKXtsZXQgJD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmluZGljYXRvciIpLEU9dGhpcy5vcHRpb25zLmluZGV4T2YodGhpcy5zZWxlY3RlZE9wdGlvbik7aWYoRT09PS0xfHwhJCl7JCYmKCQuc3R5bGUub3BhY2l0eT0iMCIpO3JldHVybn1sZXQgSD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgLm9wdGlvbjpudGgtY2hpbGQoJHtFKzJ9KWApOyQmJkgmJih0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoJC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57JC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSksJC5zdHlsZS53aWR0aD1gJHtILmNsaWVudFdpZHRofXB4YCwkLnN0eWxlLmxlZnQ9YCR7SC5vZmZzZXRMZWZ0fXB4YCwkLnN0eWxlLm9wYWNpdHk9IjEiKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoJCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgJD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249JD90aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiOnRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIjp0aGlzLnNlbGVjdGVkT3B0aW9uPSQsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5oYXNVcGRhdGVkJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNldEluZGljYXRvcigpfSl9c3RhdGlje29jKGEsdCl9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBPYmEsRmJhPWcoKCk9PntwZSgpO09iYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFBob25lIElucHV0In0gLnN1YnRpdGxlPSR7IkF1dG9tYXRpYyBmb3JtYXR0aW5nIGZvciBwaG9uZSBudW1iZXJzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJQaG9uZSBOdW1iZXIifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW50ZXIgeW91ciBwaG9uZSBudW1iZXIgd2l0aCBjb3VudHJ5IGNvZGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiSW5jbHVkZSBjb3VudHJ5IGNvZGUgZm9yIGludGVybmF0aW9uYWwgbnVtYmVycyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyI1NTUxMjM0NTY3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkNvbnRhY3QgUGhvbmUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiUmVxdWlyZWQgZm9yIGFjY291bnQgdmVyaWZpY2F0aW9uIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyIrMSAoNTU1KSAwMDAtMDAwMCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXRzIGFycmFuZ2VkIGhvcml6b250YWxseSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgICAubGFiZWw9JHsiTW9iaWxlIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiNDE1NTU1MTIzNCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAgIC5sYWJlbD0keyJPZmZpY2UifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyIrMSAoODAwKSA1NTUtMDAwMCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVybmF0aW9uYWwgTnVtYmVycyJ9IC5zdWJ0aXRsZT0keyJTdXBwb3J0cyBmb3JtYXR0aW5nIGZvciBudW1iZXJzIHdpdGggY291bnRyeSBjb2RlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiSW50ZXJuYXRpb25hbCBDb250YWN0In0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkF1dG9tYXRpY2FsbHkgZm9ybWF0cyBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNDQxMjM0NTY3ODkwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkVtZXJnZW5jeSBDb250YWN0In0KICAgICAgICAgICAgLnZhbHVlPSR7IjkxMSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXQgYXMgcGFydCBvZiBhIGNvbnRhY3QgZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgRjFlLFlnLGNudCxkbnQ9ZygoKT0+e3BlKCk7a3QoKTtFaSgpO0ZiYSgpO2h0KCk7RjFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxZZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sY250PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1waG9uZSIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRQaG9uZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0sRjFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9ybWF0dGVkUGhvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImZvcm1hdHRlZFBob25lImluIGYsImhhcyIpLGdldDppKGY9PmYuZm9ybWF0dGVkUGhvbmUsImdldCIpLHNldDppKChmLHkpPT57Zi5mb3JtYXR0ZWRQaG9uZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksRjFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZhbHVlImluIGYsImhhcyIpLGdldDppKGY9PmYudmFsdWUsImdldCIpLHNldDppKChmLHkpPT57Zi52YWx1ZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksRjFlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InBsYWNlaG9sZGVyImluIGYsImhhcyIpLGdldDppKGY9PmYucGxhY2Vob2xkZXIsImdldCIpLHNldDppKChmLHkpPT57Zi5wbGFjZWhvbGRlcj15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksRjFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89T2JhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1ZZyh0aGlzLG8sIiIpO2dldCBmb3JtYXR0ZWRQaG9uZSgpe3JldHVybiB0aGlzLiNlfXNldCBmb3JtYXR0ZWRQaG9uZShtKXt0aGlzLiNlPW19I3Q9KFlnKHRoaXMsbCksWWcodGhpcyxkLCIiKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZhbHVlKG0pe3RoaXMuI3Q9bX0jYT0oWWcodGhpcyx1KSxZZyh0aGlzLGIsIisxICg1NTUpIDEyMy00NTY3IikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNhfXNldCBwbGFjZWhvbGRlcihtKXt0aGlzLiNhPW19c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogUGhvbmUgaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZm9ybWF0dGVkUGhvbmV9CiAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICBAaW5wdXQ9JHttPT50aGlzLmhhbmRsZVBob25lSW5wdXQobSl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKG0pe3N1cGVyLmZpcnN0VXBkYXRlZChtKSx0aGlzLnZhbHVlJiYodGhpcy5mb3JtYXR0ZWRQaG9uZT10aGlzLmZvcm1hdFBob25lTnVtYmVyKHRoaXMudmFsdWUpKTtsZXQgZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7ZiYmZi5jaGFuZ2VTdWJqZWN0JiZmLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9KX1oYW5kbGVQaG9uZUlucHV0KG0pe2xldCBmPW0udGFyZ2V0LHk9dGhpcy5jbGVhblBob25lTnVtYmVyKGYudmFsdWUpLE09dGhpcy5mb3JtYXRQaG9uZU51bWJlcih5KTtpZihmLnZhbHVlIT09TSl7bGV0IHo9Zi5zZWxlY3Rpb25TdGFydHx8MDtmLnZhbHVlPU07bGV0IE49dGhpcy5jYWxjdWxhdGVDdXJzb3JQb3NpdGlvbih5LE0seik7Zi5zZXRTZWxlY3Rpb25SYW5nZShOLE4pfXRoaXMuZm9ybWF0dGVkUGhvbmU9TSx0aGlzLnZhbHVlPXksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Y2xlYW5QaG9uZU51bWJlcihtKXtyZXR1cm4gbS5yZXBsYWNlKC9cRC9nLCIiKX1mb3JtYXRQaG9uZU51bWJlcihtKXtsZXQgZj10aGlzLmNsZWFuUGhvbmVOdW1iZXIobSk7cmV0dXJuIGYubGVuZ3RoPT09MD8iIjpmLmxlbmd0aDw9Mz9mOmYubGVuZ3RoPD02P2AoJHtmLnNsaWNlKDAsMyl9KSAke2Yuc2xpY2UoMyl9YDpmLmxlbmd0aDw9MTA/YCgke2Yuc2xpY2UoMCwzKX0pICR7Zi5zbGljZSgzLDYpfS0ke2Yuc2xpY2UoNil9YDpgKyR7Zi5zbGljZSgwLGYubGVuZ3RoLTEwKX0gKCR7Zi5zbGljZSgtMTAsLTcpfSkgJHtmLnNsaWNlKC03LC00KX0tJHtmLnNsaWNlKC00KX1gfWNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKG0sZix5KXtsZXQgTT0wO2ZvcihsZXQgej0wO3o8eSYmejxmLmxlbmd0aDt6KyspL1xkLy50ZXN0KGZbel0pfHxNKys7cmV0dXJuIE1hdGgubWluKHkrTSxmLmxlbmd0aCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShtKXt0aGlzLnZhbHVlPW0sdGhpcy5mb3JtYXR0ZWRQaG9uZT10aGlzLmZvcm1hdFBob25lTnVtYmVyKG0pfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxZZyh0aGlzLHYpfXN0YXRpY3tZZyhhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgQmJhLEhiYT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7QmJhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb24iKSx0PXMucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb2ZmIiksYT1zLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mZWF0dXJlLXRvZ2dsZXMgZGVlcy1pbnB1dC10b2dnbGUiKTtlJiZ0JiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLmZvckVhY2gocj0+e2xldCBuPXI7IW4uZGlzYWJsZWQmJiFuLnJlcXVpcmVkJiYobi52YWx1ZT0hMCl9KX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5mb3JFYWNoKHI9PntsZXQgbj1yOyFuLmRpc2FibGVkJiYhbi5yZXF1aXJlZCYmKG4udmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQoKICAgICAgICAudG9nZ2xlLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmhvcml6b250YWwtdG9nZ2xlcyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KCiAgICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQoKICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmUtdG9nZ2xlcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICB9CgogICAgICAgIC5kcmFnLWhpbnQgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUb2dnbGUifSAuc3VidGl0bGU9JHsiU2ltcGxlIG9uL29mZiB0b2dnbGUgc3dpdGNoIHdpdGggZHJhZyBzdXBwb3J0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlIGZlYXR1cmUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJiYXNpYyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSB0b2dnbGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmtleT0keyJhY3RpdmUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJXaXRoIGRlc2NyaXB0aW9uIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHRvZ2dsZSBoYXMgYWRkaXRpb25hbCBoZWxwZXIgdGV4dCBleHBsYWluaW5nIGl0cyBwdXJwb3NlIn0KICAgICAgICAgICAgLmtleT0keyJ3aXRoRGVzYyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8cCBjbGFzcz0iZHJhZy1oaW50Ij5UaXA6IFlvdSBjYW4gZHJhZyB0aGUgdG9nZ2xlIGtub2IgdG8gc3dpdGNoIHN0YXRlczwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlRvZ2dsZSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHRvZ2dsZSBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGVmYXVsdCAob2ZmKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJFbmFibGVkIChvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIChhbHdheXMgb24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgY2Fubm90IGJlIHR1cm5lZCBvZmYifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJUb2dnbGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBpbnRlcmZhY2VzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtdG9nZ2xlcyI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJXaUZpIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmx1ZXRvb3RoIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiR1BTIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiTkZDIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlcyBpbiBhIHR5cGljYWwgc2V0dGluZ3MgY29udGV4dCJ9PgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgICAgPGg0IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2g0PgoKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJQdXNoIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIHB1c2ggbm90aWZpY2F0aW9ucyBvbiB5b3VyIGRldmljZSJ9CiAgICAgICAgICAgICAgLmtleT0keyJwdXNoIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkdldCBpbXBvcnRhbnQgdXBkYXRlcyB2aWEgZW1haWwifQogICAgICAgICAgICAgIC5rZXk9JHsiZW1haWwifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJTb3VuZCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlBsYXkgYSBzb3VuZCBmb3Igbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgICAgLmtleT0keyJzb3VuZCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlZpYnJhdGlvbiJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlZpYnJhdGUgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsidmlicmF0aW9uIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmUgVG9nZ2xlcyJ9IC5zdWJ0aXRsZT0keyJCYXRjaCBvcGVyYXRpb25zIG9uIG11bHRpcGxlIHRvZ2dsZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJ0b2dnbGUtYWxsLW9uIiB0eXBlPSJzZWNvbmRhcnkiPkVuYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJ0b2dnbGUtYWxsLW9mZiIgdHlwZT0ic2Vjb25kYXJ5Ij5EaXNhYmxlIEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtdG9nZ2xlcyI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiRGFyayBNb2RlIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImRhcmtNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQXV0by1zYXZlIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImF1dG9TYXZlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU3BlbGwgY2hlY2sifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsic3BlbGxDaGVjayJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRldmVsb3BlciBtb2RlIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7ImRldk1vZGUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJCZXRhIGZlYXR1cmVzIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7ImJldGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUb2dnbGUgdG8gc2VlIHZhbHVlIGNoYW5nZXMgaW4gcmVhbC10aW1lIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQWlycGxhbmUgbW9kZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAbmV3VmFsdWU9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpcnBsYW5lLW91dHB1dCIpO2UmJihlLnRleHRDb250ZW50PWBBaXJwbGFuZSBtb2RlOiAke3MuZGV0YWlsPyJPTiI6Ik9GRiJ9YCl9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEbyBub3QgZGlzdHVyYiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAbmV3VmFsdWU9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2RuZC1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gRG8gbm90IGRpc3R1cmI6ICR7cy5kZXRhaWw/IkVOQUJMRUQiOiJESVNBQkxFRCJ9YCl9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CgogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0iYWlycGxhbmUtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkFpcnBsYW5lIG1vZGU6IE9GRjwvZGl2PgogICAgICAgICAgPGRpdiBpZD0iZG5kLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0IiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyI+RG8gbm90IGRpc3R1cmI6IERJU0FCTEVEPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBxYmEsdW50LHBudCxobnQ9ZygoKT0+e3BlKCk7a3QoKTtFaSgpO0hiYSgpO0VyKCk7aHQoKTtxYmE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHVudD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scG50PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC10b2dnbGUiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0VG9nZ2xlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0scWJhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InZhbHVlImluIHUsImhhcyIpLGdldDppKHU9PnUudmFsdWUsImdldCIpLHNldDppKCh1LGMpPT57dS52YWx1ZT1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCkscWJhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89QmJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT11bnQodGhpcyxvLCExKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoZCl7dGhpcy4jZT1kfWN1cnJlbnRYPSh1bnQodGhpcyxsKSwwKTtpc0RyYWdnaW5nPSExO2hhc0RyYWdnZWQ9ITE7c3RhcnRYPTA7dHJhY2tXaWR0aD0zNjt0cmFja0hlaWdodD0yMDtrbm9iU2l6ZT0xNDtwYWRkaW5nPTI7bWF4VHJhdmVsPTE2O2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2sgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWx1ZV0pIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjazpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUta25vYiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMnB4OwogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICB0b3VjaC1hY3Rpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b2dnbGUta25vYi5kcmFnZ2luZyB7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbdmFsdWVdKSAudG9nZ2xlLWtub2IgewogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICB9CgogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2suZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBSZXF1aXJlZCBzdGF0ZSAobG9ja2VkIG9uKSAqLwogICAgICA6aG9zdChbcmVxdWlyZWRdW3ZhbHVlXSkgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA2MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNDkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA2MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNDkuOCUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtyZXF1aXJlZF1bdmFsdWVdKSAudG9nZ2xlLWtub2IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLyogTGFiZWwgKi8KICAgICAgLmxhYmVsLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiBAY2xpY2s9IiR7dGhpcy5oYW5kbGVDbGlja30iPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLXRyYWNrICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0idG9nZ2xlLWtub2IiCiAgICAgICAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wYWRkaW5nK3RoaXMuY3VycmVudFh9cHg7IgogICAgICAgICAgICAgIEBwb2ludGVyZG93bj0iJHt0aGlzLm9uUG9pbnRlckRvd259IgogICAgICAgICAgICAgIEBwb2ludGVybW92ZT0iJHt0aGlzLm9uUG9pbnRlck1vdmV9IgogICAgICAgICAgICAgIEBwb2ludGVydXA9IiR7dGhpcy5vblBvaW50ZXJVcH0iCiAgICAgICAgICAgICAgQHBvaW50ZXJjYW5jZWw9IiR7dGhpcy5vblBvaW50ZXJVcH0iCiAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRpdiBjbGFzcz0idG9nZ2xlLWxhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChkKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoZCksdGhpcy5yZXF1aXJlZCYmIXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPSEwKSx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBoYW5kbGVDbGljayhkKXtpZih0aGlzLmlzRHJhZ2dpbmd8fHRoaXMuaGFzRHJhZ2dlZCl7ZC5zdG9wUHJvcGFnYXRpb24oKSxkLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCF0aGlzLmRpc2FibGVkKXtpZih0aGlzLnJlcXVpcmVkKXt0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IG5ldyBQcm9taXNlKHU9PnNldFRpbWVvdXQodSwxMCkpLHRoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwtMyx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbCx0aGlzLnJlcXVlc3RVcGRhdGUoKTtyZXR1cm59ZC5zdG9wUHJvcGFnYXRpb24oKSxkLnByZXZlbnREZWZhdWx0KCksdGhpcy52YWx1ZT0hdGhpcy52YWx1ZSx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdXQuc21hcnRkZWxheS5kZWxheUZvcigwKS50aGVuKCgpPT57dGhpcy5oYXNEcmFnZ2VkPSExfSl9fW9uUG9pbnRlckRvd24oZCl7dGhpcy5yZXF1aXJlZHx8dGhpcy5kaXNhYmxlZHx8KHRoaXMuaXNEcmFnZ2luZz0hMCx0aGlzLnN0YXJ0WD1kLmNsaWVudFgtdGhpcy5jdXJyZW50WCxkLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShkLnBvaW50ZXJJZCkpfW9uUG9pbnRlck1vdmUoZCl7aWYoIXRoaXMuaXNEcmFnZ2luZylyZXR1cm47bGV0IHU9ZC5jbGllbnRYLXRoaXMuc3RhcnRYO3RoaXMuaGFzRHJhZ2dlZD0hMDtsZXQgYz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUta25vYiIpO2MmJmMuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSx0aGlzLmN1cnJlbnRYPU1hdGgubWF4KDAsTWF0aC5taW4odSx0aGlzLm1heFRyYXZlbCkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfW9uUG9pbnRlclVwKGQpe2lmKCF0aGlzLmlzRHJhZ2dpbmd8fChkLnRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoZC5wb2ludGVySWQpLHRoaXMuaXNEcmFnZ2luZz0hMSwhdGhpcy5oYXNEcmFnZ2VkKSlyZXR1cm47bGV0IHU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLWtub2IiKTt1JiZ1LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7bGV0IGM9dGhpcy5tYXhUcmF2ZWwvMjt0aGlzLnZhbHVlPXRoaXMuY3VycmVudFg+Yyx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdXQuc21hcnRkZWxheS5kZWxheUZvcigwKS50aGVuKCgpPT57dGhpcy5oYXNEcmFnZ2VkPSExfSl9dXBkYXRlZChkKXtzdXBlci51cGRhdGVkKGQpLGQuaGFzKCJ2YWx1ZSIpJiYhdGhpcy5pc0RyYWdnaW5nJiYhdGhpcy5oYXNEcmFnZ2VkJiYodGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfWhhbmRsZUtleWRvd24oZCl7KGQua2V5PT09IiAifHxkLmtleT09PSJFbnRlciIpJiYoZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQ2xpY2soZCkpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoZCl7dGhpcy52YWx1ZT1kfWZvY3VzKCl7bGV0IGQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLXRyYWNrIik7ZCYmZC5mb2N1cygpfXN0YXRpY3t1bnQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGpiYSxWYmE9ZygoKT0+e3BlKCk7amJhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5mby1ib3ggewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTNmMmZkOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICMxOTc2ZDI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5pbmZvLWJveCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTBjYWY5OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFR5cGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJBZGQgYW5kIHJlbW92ZSBpdGVtcyBmcm9tIGEgbGlzdCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgdGFncyBieSB0eXBpbmcgYW5kIHByZXNzaW5nIEVudGVyIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRhZ3MgaGVscCBjYXRlZ29yaXplIGFuZCBmaWx0ZXIgeW91ciBjb250ZW50In0KICAgICAgICAgICAgLnZhbHVlPSR7WyJqYXZhc2NyaXB0IiwidHlwZXNjcmlwdCIsIndlYi1jb21wb25lbnRzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIE1lbWJlcnMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHtbImFsaWNlQGV4YW1wbGUuY29tIiwiYm9iQGV4YW1wbGUuY29tIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2tpbGxzICYgS2V5d29yZHMifSAuc3VidGl0bGU9JHsiTWFuYWdlIGxpc3RzIG9mIHNraWxscyBhbmQga2V5d29yZHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IllvdXIgU2tpbGxzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJIVE1MIiwiQ1NTIiwiSmF2YVNjcmlwdCIsIk5vZGUuanMiLCJSZWFjdCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcmllcyJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJUZWNobm9sb2d5IiwiRGVzaWduIiwiQnVzaW5lc3MiXX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IktleXdvcmRzIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHtbImlubm92YXRpb24iLCJzdGFydHVwIiwiZ3Jvd3RoIl19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgRGVwZW5kZW5jaWVzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7Ikxpc3QgYWxsIHJlcXVpcmVkIG5wbSBwYWNrYWdlcyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHtbIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCIsIkBkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlN5c3RlbSBUYWdzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoZXNlIHRhZ3MgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHtbInN5c3RlbSIsInByb3RlY3RlZCIsInJlYWRvbmx5Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQXJ0aWNsZSBQdWJsaXNoaW5nIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSB3aXRoIHRhZyBtYW5hZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFydGljbGUgVGl0bGUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiU3VtbWFyeSJ9IAogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBhcnRpY2xlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUYWdzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCByZWxldmFudCB0YWdzIGZvciBiZXR0ZXIgZGlzY292ZXJhYmlsaXR5In0KICAgICAgICAgICAgLnZhbHVlPSR7WyJ0dXRvcmlhbCIsIndlYi1kZXZlbG9wbWVudCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJDby1BdXRob3JzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgY28tYXV0aG9ycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICAgIDxzdHJvbmc+VGlwOjwvc3Ryb25nPiBUeXBlIGEgdmFsdWUgYW5kIHByZXNzIEVudGVyIHRvIGFkZCBpdCB0byB0aGUgbGlzdC4gQ2xpY2sgb24gYW55IGl0ZW0gdG8gcmVtb3ZlIGl0LgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgZm50LEVRLG1udCxnbnQ9ZygoKT0+e3BlKCk7a3QoKTtFaSgpO1ZiYSgpO2h0KCk7Zm50PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxFUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbW50PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC10eXBlbGlzdCIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRUeXBlbGlzdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bWSgpXSxmbnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4idmFsdWUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di52YWx1ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnZhbHVlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxmbnQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJpbnB1dFZhbHVlImluIHYsImhhcyIpLGdldDppKHY9PnYuaW5wdXRWYWx1ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmlucHV0VmFsdWU9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGZudChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWpiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9RVEodGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoYil7dGhpcy4jZT1ifSN0PShFUSh0aGlzLGwpLEVRKHRoaXMsZCwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlucHV0VmFsdWUoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CiAgICAgIC5tYWluYm94IHsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMjIyMjIyIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm9yZGVyLXRvcDogJHtoLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICNmZmZmZmYxMCIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgIzIyMiIpfTsKICAgICAgICBib3JkZXItcmlnaHQ6ICR7aC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6ICR7aC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjBweCAxcHggNHB4IHJnYmEoMCwwLDAsMC4zKSIsIm5vbmUiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpob3ZlciB7CiAgICAgICAgZmlsdGVyOiAke2guYmRUaGVtZSgiYnJpZ2h0bmVzcygwLjk4KSIsImJyaWdodG5lc3MoMS4wNSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYWluYm94OmZvY3VzLXdpdGhpbiB7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDA2OWYyIiwiIzAwODRmZiIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQoKICAgICAgLnRhZ3MgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAubm90YWdzIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MTgiKX07CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICBoZWlnaHQ6IDBweDsKICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yczsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzFhMWExYSIpfTsKICAgICAgfQogICAgICAKICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAudGFnIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlOGY1ZTkiLCIjMmQzYTJkIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzJlN2QzMiIsIiM4MWM3ODQiKX07CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbjogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjYzhlNmM5IiwiIzFiNWUyMCIpfTsKICAgICAgfQogICAgICAKICAgICAgLnRhZzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNjOGU2YzkiLCIjM2Q0ZjNkIil9OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlIHsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAudGFnIC5yZW1vdmU6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYzYyODI4IiwiI2VmNTM1MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLm1haW5ib3ggewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudGFncyB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIGlucHV0IHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRhZ3MiIEBjbGljaz0keygpPT57dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKX19PgogICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9Im5vdGFncyI+Tm8gdGFncyB5ZXQ8L2Rpdj5gOnRoaXMudmFsdWUubWFwKGI9PndgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhZyI+CiAgICAgICAgICAgICAgICAgICAgICAke2J9CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVtb3ZlIiBAY2xpY2s9JHt2PT57di5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnJlbW92ZVRhZyhiKX19PsOXPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0iVHlwZSwgcHJlc3MgRW50ZXIgdG8gYWRkIGl0Li4uIgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgIEBpbnB1dD0ke2I9Pnt0aGlzLmlucHV0VmFsdWU9Yi50YXJnZXQudmFsdWV9fQogICAgICAgICAgICBAa2V5ZG93bj0ke2I9PntiLmtleT09PSJFbnRlciImJnRoaXMuaW5wdXRWYWx1ZS50cmltKCkmJihiLnByZXZlbnREZWZhdWx0KCksdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlLnRyaW0oKSkpfX0KICAgICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1hZGRUYWcoYil7dGhpcy52YWx1ZS5pbmNsdWRlcyhiKXx8KHRoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsYl0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1yZW1vdmVUYWcoYil7dGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcih2PT52IT09YiksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShiKXt0aGlzLnZhbHVlPWJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEVRKHRoaXMsdSl9c3RhdGlje0VRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBVYmEsV2JhLEdiYT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7V2JhPWkoKCk9PncoVWJhfHwoVWJhPWJjKFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRpc2FibGVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAuaW5wdXRUeXBlPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PWAsYD48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtdGFncyIKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIEBjaGFuZ2U9YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRhZy1wcmV2aWV3IiBpZD0idGFncy1wcmV2aWV3Ij4KICAgICAgICAgIDxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJ0YWdzLWpzb24iPgogICAgICAgICAgPGVtPkpTT04gb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAvLyBVcGRhdGUgSlNPTiBwcmV2aWV3CiAgICAgICAgICBjb25zdCB0YWdzSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaW50ZXJhY3RpdmUtdGFncycpOwogICAgICAgICAgdGFnc0lucHV0Py5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4gewogICAgICAgICAgICBjb25zdCBqc29uUHJldmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YWdzLWpzb24nKTsKICAgICAgICAgICAgaWYgKGpzb25QcmV2aWV3KSB7CiAgICAgICAgICAgICAganNvblByZXZpZXcudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShlLmRldGFpbC52YWx1ZSwgbnVsbCwgMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIDxcL3NjcmlwdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgXSkpLEpgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGFnLXByZXZpZXcgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmOWZhZmI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFmMjkzNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTBlN2ZmOwogICAgICAgICAgY29sb3I6ICM0MzM4Y2E7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAudGFnLXByZXZpZXctaXRlbSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzMTJlODE7CiAgICAgICAgICAgIGNvbG9yOiAjYzdkMmZlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYCwiMS4gQmFzaWMgVGFncyBJbnB1dCIsIlNpbXBsZSB0YWcgaW5wdXQgd2l0aCBjb21tb24gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIiwiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzIiwiQWRkIGEgbGFuZ3VhZ2UuLi4iLFsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJHbyJdLCJQcmVzcyBFbnRlciBvciBjb21tYSB0byBhZGQgdGFncyIsIjIuIFRhZ3Mgd2l0aCBTdWdnZXN0aW9ucyIsIkF1dG8tY29tcGxldGUgc3VnZ2VzdGlvbnMgZm9yIGZhc3RlciBpbnB1dCIsIlRlY2ggU3RhY2siLCJUeXBlIHRvIHNlZSBzdWdnZXN0aW9ucy4uLiIsWyJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJMaXQiLCJOZXh0LmpzIiwiTnV4dCIsIlN2ZWx0ZUtpdCIsIk5vZGUuanMiLCJEZW5vIiwiQnVuIiwiRXhwcmVzcyIsIkZhc3RpZnkiLCJOZXN0LmpzIiwiS29hIiwiTW9uZ29EQiIsIlBvc3RncmVTUUwiLCJSZWRpcyIsIk15U1FMIiwiU1FMaXRlIiwiQ2Fzc2FuZHJhIiwiRG9ja2VyIiwiS3ViZXJuZXRlcyIsIkFXUyIsIkF6dXJlIiwiR0NQIiwiVmVyY2VsIiwiTmV0bGlmeSJdLFsiUmVhY3QiLCJOb2RlLmpzIiwiUG9zdGdyZVNRTCIsIkRvY2tlciJdLCJTdGFydCB0eXBpbmcgdG8gc2VlIHN1Z2dlc3Rpb25zIGZyb20gcG9wdWxhciB0ZWNobm9sb2dpZXMiLCIzLiBMaW1pdGVkIFRhZ3MiLCJSZXN0cmljdCB0aGUgbnVtYmVyIG9mIHRhZ3MgdXNlcnMgY2FuIGFkZCIsIlRvcCAzIFNraWxscyIsIkFkZCB1cCB0byAzIHNraWxscy4uLiIsMyxbIkRlc2lnbiIsIkRldmVsb3BtZW50Il0sIk1heGltdW0gMyB0YWdzIGFsbG93ZWQiLCJDYXRlZ29yaWVzIChNYXggNSkiLCJTZWxlY3QgY2F0ZWdvcmllcy4uLiIsNSxbIkJsb2ciLCJUdXRvcmlhbCIsIk5ld3MiLCJSZXZpZXciLCJHdWlkZSIsIkNhc2UgU3R1ZHkiLCJJbnRlcnZpZXciXSxbIlR1dG9yaWFsIiwiR3VpZGUiXSwiQ2hvb3NlIHVwIHRvIDUgY2F0ZWdvcmllcyIsIjQuIFJlcXVpcmVkICYgVmFsaWRhdGlvbiIsIlRhZ3MgaW5wdXQgd2l0aCB2YWxpZGF0aW9uIHJlcXVpcmVtZW50cyIsIlByb2plY3QgVGFncyIsIkFkZCBhdCBsZWFzdCBvbmUgdGFnLi4uIiwhMCwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCAtIGFkZCBhdCBsZWFzdCBvbmUgdGFnIiwiNS4gRGlzYWJsZWQgU3RhdGUiLCJSZWFkLW9ubHkgdGFncyBkaXNwbGF5IiwiU3lzdGVtIFRhZ3MiLFsiU3lzdGVtIiwiUHJvdGVjdGVkIiwiUmVhZC1Pbmx5IiwiQXJjaGl2ZSJdLCEwLCJUaGVzZSB0YWdzIGNhbm5vdCBiZSBtb2RpZmllZCIsIjYuIEZvcm0gSW50ZWdyYXRpb24iLCJUYWdzIGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0IiwiUHJvamVjdCBOYW1lIiwiTXkgQXdlc29tZSBQcm9qZWN0IiwhMCwibmFtZSIsIlRlY2hub2xvZ2llcyBVc2VkIiwiQWRkIHRlY2hub2xvZ2llcy4uLiIsITAsInRlY2hub2xvZ2llcyIsWyJUeXBlU2NyaXB0IiwiSmF2YVNjcmlwdCIsIlB5dGhvbiIsIkdvIiwiUnVzdCIsIlJlYWN0IiwiVnVlIiwiQW5ndWxhciIsIlN2ZWx0ZSIsIk5vZGUuanMiLCJEZW5vIiwiRXhwcmVzcyIsIkZhc3RBUEkiXSwiUHJvamVjdCBUYWdzIiwiQWRkIGRlc2NyaXB0aXZlIHRhZ3MuLi4iLCJ0YWdzIiwxMCxbImZyb250ZW5kIiwiYmFja2VuZCIsImZ1bGxzdGFjayIsIm1vYmlsZSIsImRlc2t0b3AiLCJ3ZWIiLCJhcGkiLCJkYXRhYmFzZSIsImRldm9wcyIsInVpL3V4Iiwib3BlbnNvdXJjZSIsInNhYXMiLCJlbnRlcnByaXNlIiwic3RhcnR1cCJdLCJEZXNjcmlwdGlvbiIsInRleHRhcmVhIiwiRGVzY3JpYmUgeW91ciBwcm9qZWN0Li4uIiwiZGVzY3JpcHRpb24iLCJDcmVhdGUgUHJvamVjdCIsIjcuIEludGVyYWN0aXZlIERlbW8iLCJBZGQgdGFncyBhbmQgc2VlIHRoZW0gY29sbGVjdGVkIGluIHJlYWwtdGltZSIsIllvdXIgSW50ZXJlc3RzIiwiVHlwZSB5b3VyIGludGVyZXN0cy4uLiIsWyJNdXNpYyIsIk1vdmllcyIsIkJvb2tzIiwiVHJhdmVsIiwiUGhvdG9ncmFwaHkiLCJDb29raW5nIiwiR2FtaW5nIiwiU3BvcnRzIiwiQXJ0IiwiVGVjaG5vbG9neSIsIkZhc2hpb24iLCJGaXRuZXNzIiwiTmF0dXJlIiwiU2NpZW5jZSIsIkhpc3RvcnkiXSxzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3RhZ3MtcHJldmlldyIpLHQ9cy5kZXRhaWwudmFsdWU7ZSYmKHQubGVuZ3RoPT09MD9lLmlubmVySFRNTD0nPGVtIHN0eWxlPSJjb2xvcjogIzk5OTsiPk5vIHRhZ3MgYWRkZWQgeWV0Li4uPC9lbT4nOmUuaW5uZXJIVE1MPXQubWFwKGE9PmA8c3BhbiBjbGFzcz0idGFnLXByZXZpZXctaXRlbSI+JHthfTwvc3Bhbj5gKS5qb2luKCIiKSl9KSwiZGVtb0Z1bmMiKX0pO3ZhciBOdSxGbyxibnQsdm50PWcoKCk9PntwZSgpO0VpKCk7R2EoKTtHYmEoKTtodCgpO051PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxGbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sYm50PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC10YWdzIildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W107dmFyIEk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRhZ3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6QXJyYXl9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bTCh7dHlwZTpTdHJpbmd9KV0sTnUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsdWUiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWx1ZSwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbHVlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbyxsKSxOdSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJwbGFjZWhvbGRlciJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IucGxhY2Vob2xkZXI9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLE51KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4VGFncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ibWF4VGFncyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLm1heFRhZ3MsImdldCIpLHNldDppKChSLEspPT57Ui5tYXhUYWdzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxOdSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Z2dlc3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJzdWdnZXN0aW9ucyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnN1Z2dlc3Rpb25zLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc3VnZ2VzdGlvbnM9S30sInNldCIpfSxtZXRhZGF0YTpQfSxtLGYpLE51KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iaW5wdXRWYWx1ZSJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmlucHV0VmFsdWUsImdldCIpLHNldDppKChSLEspPT57Ui5pbnB1dFZhbHVlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sTSx6KSxOdSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2hvd1N1Z2dlc3Rpb25zImluIFIsImhhcyIpLGdldDppKFI9PlIuc2hvd1N1Z2dlc3Rpb25zLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc2hvd1N1Z2dlc3Rpb25zPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxOdSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4LCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9S30sInNldCIpfSxtZXRhZGF0YTpQfSwkLEUpLE51KHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbGlkYXRpb25UZXh0ImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsaWRhdGlvblRleHQsImdldCIpLHNldDppKChSLEspPT57Ui52YWxpZGF0aW9uVGV4dD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGssUyksTnUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6UH0sbnVsbCx0KSxJPWE9ZS52YWx1ZSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX1zdGF0aWMgZGVtbz1XYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUZvKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFApe3RoaXMuI2U9UH0jdD0oRm8odGhpcyxsKSxGbyh0aGlzLGQsIkFkZCB0YWdzLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihQKXt0aGlzLiN0PVB9I2E9KEZvKHRoaXMsdSksRm8odGhpcyxiLDApKTtnZXQgbWF4VGFncygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhUYWdzKFApe3RoaXMuI2E9UH0jcz0oRm8odGhpcyx2KSxGbyh0aGlzLG0sW10pKTtnZXQgc3VnZ2VzdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgc3VnZ2VzdGlvbnMoUCl7dGhpcy4jcz1QfSNpPShGbyh0aGlzLGYpLEZvKHRoaXMsTSwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlucHV0VmFsdWUoUCl7dGhpcy4jaT1QfSNyPShGbyh0aGlzLHopLEZvKHRoaXMsQywhMSkpO2dldCBzaG93U3VnZ2VzdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1N1Z2dlc3Rpb25zKFApe3RoaXMuI3I9UH0jbz0oRm8odGhpcyxfKSxGbyh0aGlzLCQsLTEpKTtnZXQgaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgoKXtyZXR1cm4gdGhpcy4jb31zZXQgaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgoUCl7dGhpcy4jbz1QfSNuPShGbyh0aGlzLEUpLEZvKHRoaXMsaywiIikpO2dldCB2YWxpZGF0aW9uVGV4dCgpe3JldHVybiB0aGlzLiNufXNldCB2YWxpZGF0aW9uVGV4dChQKXt0aGlzLiNuPVB9c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMikiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMykiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiB0YWdBcHBlYXIgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB0YWdBcHBlYXIgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA0Ni43JSkiLCJoc2woMjE3LjkgMTAuNiUgNTQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIFN1Z2dlc3Rpb25zIGRyb3Bkb3duICovCiAgICAgIC5zdWdnZXN0aW9ucy1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uLmhpZ2hsaWdodGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IFA9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoUj0+IXRoaXMudmFsdWUuaW5jbHVkZXMoUikmJlIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy1jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0idGFncy1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZUNvbnRhaW5lckNsaWNrfQogICAgICAgICAgPgogICAgICAgICAgICAke3RoaXMudmFsdWUubWFwKFI9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFnIj4KICAgICAgICAgICAgICAgIDxzcGFuPiR7Un08L3NwYW4+CiAgICAgICAgICAgICAgICAke3RoaXMuZGlzYWJsZWQ/IiI6d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFnLXJlbW92ZSIgQGNsaWNrPSR7Sz0+dGhpcy5yZW1vdmVUYWcoSyxSKX0+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgICAKICAgICAgICAgICAgJHshdGhpcy5kaXNhYmxlZCYmKCF0aGlzLm1heFRhZ3N8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4VGFncyk/d2AKICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0idGFnLWlucHV0IgogICAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlSW5wdXR9CiAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlS2V5RG93bn0KICAgICAgICAgICAgICAgIEBmb2N1cz0ke3RoaXMuaGFuZGxlRm9jdXN9CiAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlQmx1cn0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5zaG93U3VnZ2VzdGlvbnMmJlAubGVuZ3RoPjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtZHJvcGRvd24iPgogICAgICAgICAgICAgICR7UC5tYXAoKFIsSyk9PndgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJzdWdnZXN0aW9uICR7Sz09PXRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg/ImhpZ2hsaWdodGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHtWPT57Vi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKFIpfX0KICAgICAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1LfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke1J9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb24tbWVzc2FnZSI+JHt0aGlzLnZhbGlkYXRpb25UZXh0fTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVDb250YWluZXJDbGljayhQKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWctaW5wdXQiKTtSJiZQLnRhcmdldCE9PVImJlIuZm9jdXMoKX1oYW5kbGVJbnB1dChQKXtsZXQgUj1QLnRhcmdldDtpZih0aGlzLmlucHV0VmFsdWU9Ui52YWx1ZSx0aGlzLmlucHV0VmFsdWUuaW5jbHVkZXMoIiwiKXx8dGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCI7Iikpe2xldCBLPXRoaXMuaW5wdXRWYWx1ZS5yZXBsYWNlKC9bLDtdL2csIiIpLnRyaW0oKTtLJiZ0aGlzLmFkZFRhZyhLKX19aGFuZGxlS2V5RG93bihQKXtsZXQgUj1QLnRhcmdldDtpZihQLmtleT09PSJFbnRlciIpaWYoUC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg+PTAmJnRoaXMuc2hvd1N1Z2dlc3Rpb25zKXtsZXQgSz10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihWPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhWKSYmVi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7S1t0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4XSYmdGhpcy5hZGRUYWcoS1t0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4XSl9ZWxzZSB0aGlzLmlucHV0VmFsdWUudHJpbSgpJiZ0aGlzLmFkZFRhZyh0aGlzLmlucHV0VmFsdWUudHJpbSgpKTtlbHNlIGlmKFAua2V5PT09IkJhY2tzcGFjZSImJiF0aGlzLmlucHV0VmFsdWUmJnRoaXMudmFsdWUubGVuZ3RoPjApdGhpcy5yZW1vdmVUYWcoUCx0aGlzLnZhbHVlW3RoaXMudmFsdWUubGVuZ3RoLTFdKTtlbHNlIGlmKFAua2V5PT09IkFycm93RG93biImJnRoaXMuc2hvd1N1Z2dlc3Rpb25zKXtQLnByZXZlbnREZWZhdWx0KCk7bGV0IEs9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoVj0+IXRoaXMudmFsdWUuaW5jbHVkZXMoVikmJlYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpLmxlbmd0aDt0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PU1hdGgubWluKHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgrMSxLLTEpfWVsc2UgUC5rZXk9PT0iQXJyb3dVcCImJnRoaXMuc2hvd1N1Z2dlc3Rpb25zPyhQLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1NYXRoLm1heCh0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4LTEsMCkpOlAua2V5PT09IkVzY2FwZSImJih0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xKX1oYW5kbGVGb2N1cygpe3RoaXMuc3VnZ2VzdGlvbnMubGVuZ3RoPjAmJih0aGlzLnNob3dTdWdnZXN0aW9ucz0hMCl9aGFuZGxlQmx1cigpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xfSwyMDApfWFkZFRhZyhQKXtpZighUHx8dGhpcy52YWx1ZS5pbmNsdWRlcyhQKXx8dGhpcy5tYXhUYWdzJiZ0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5tYXhUYWdzKXJldHVybjt0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLFBdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xO2xldCBSPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhZy1pbnB1dCIpO1ImJihSLnZhbHVlPSIiKSx0aGlzLmVtaXRDaGFuZ2UoKX1yZW1vdmVUYWcoUCxSKXtQLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIoSz0+SyE9PVIpLHRoaXMuZW1pdENoYW5nZSgpfWVtaXRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShQKXt0aGlzLnZhbHVlPVB8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIHRhZyBpcyByZXF1aXJlZCIsITEpOih0aGlzLnZhbGlkYXRpb25UZXh0PSIiLCEwKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRm8odGhpcyxTKX1zdGF0aWN7Rm8oYSx0KX19O3JldHVybiBJPWF9KSgpfSk7dmFyIEtiYSxZYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO3l4KCk7bzQoKTtXZygpO0tiYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2VmZjZmZjsKICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzNiODJmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAjMWU0MGFmOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5M2M1ZmQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgTGlzdCBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgbGlzdCBtYW5hZ2VtZW50IHdpdGggYWRkLCBlZGl0LCBhbmQgZGVsZXRlIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlNob3BwaW5nIExpc3QifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpdGVtIHRvIHlvdXIgbGlzdC4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbIk1pbGsiLCJCcmVhZCIsIkVnZ3MiLCJDaGVlc2UiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEb3VibGUtY2xpY2sgdG8gZWRpdCBpdGVtcywgb3IgdXNlIHRoZSBlZGl0IGJ1dHRvbiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5KhIERvdWJsZS1jbGljayBhbnkgaXRlbSB0byBxdWlja2x5IGVkaXQgaXQgaW5saW5lCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBTb3J0YWJsZSBMaXN0In0gLnN1YnRpdGxlPSR7IkRyYWcgYW5kIGRyb3AgdG8gcmVvcmRlciBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJUYXNrIFByaW9yaXR5In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgYSB0YXNrLi4uIn0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJSZXZpZXcgcHVsbCByZXF1ZXN0cyIsIkZpeCBjcml0aWNhbCBidWciLCJVcGRhdGUgZG9jdW1lbnRhdGlvbiIsIkRlcGxveSB0byBwcm9kdWN0aW9uIiwiVGVhbSBzdGFuZHVwIG1lZXRpbmciXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEcmFnIGl0ZW1zIHVzaW5nIHRoZSBoYW5kbGUgdG8gcmVvcmRlciB0aGVtIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgIPCflIQgRHJhZyB0aGUgZ3JpcCBoYW5kbGUgdG8gcmVvcmRlciB0YXNrcyBieSBwcmlvcml0eQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gVmFsaWRhdGlvbiAmIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7Ikxpc3RzIHdpdGggbWluaW11bS9tYXhpbXVtIGl0ZW1zIGFuZCBkdXBsaWNhdGUgcHJldmVudGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIChNaW4gMiwgTWF4IDUpIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHRlYW0gbWVtYmVyLi4uIn0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5tYXhJdGVtcz0kezV9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSIsIkJvYiJdfQogICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJBZGQgMi01IHRlYW0gbWVtYmVycyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHVuaXF1ZSB0YWcuLi4ifQogICAgICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHshMX0KICAgICAgICAgICAgICAudmFsdWU9JHtbImZyb250ZW5kIiwiYmFja2VuZCIsImRhdGFiYXNlIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkR1cGxpY2F0ZSBpdGVtcyBhcmUgbm90IGFsbG93ZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIERlbGV0ZSBDb25maXJtYXRpb24ifSAuc3VidGl0bGU9JHsiUmVxdWlyZSBjb25maXJtYXRpb24gYmVmb3JlIGRlbGV0aW5nIGl0ZW1zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IkltcG9ydGFudCBEb2N1bWVudHMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBkb2N1bWVudCBuYW1lLi4uIn0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtbIkNvbnRyYWN0XzIwMjQucGRmIiwiRmluYW5jaWFsX1JlcG9ydF9RMy54bHN4IiwiUHJvamVjdF9Qcm9wb3NhbC5kb2N4IiwiTWVldGluZ19Ob3Rlcy50eHQiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IGxpc3QgZGlzcGxheSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gRGVmYXVsdHMifQogICAgICAgICAgLnZhbHVlPSR7WyJEZWZhdWx0IFNldHRpbmcgMSIsIkRlZmF1bHQgU2V0dGluZyAyIiwiRGVmYXVsdCBTZXR0aW5nIDMiXX0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoZXNlIGl0ZW1zIGNhbm5vdCBiZSBtb2RpZmllZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJMaXN0IGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlY2lwZSBOYW1lIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7Ik15IEFtYXppbmcgUmVjaXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsibmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbmdyZWRpZW50Li4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siMiBjdXBzIGZsb3VyIiwiMSBjdXAgc3VnYXIiLCIzIGVnZ3MiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGF0IGxlYXN0IDMgaW5ncmVkaWVudHMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbnN0cnVjdGlvbiBzdGVwLi4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIlByZWhlYXQgb3ZlbiB0byAzNTBceEIwRiIsIk1peCBkcnkgaW5ncmVkaWVudHMiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGNvb2tpbmcgaW5zdHJ1Y3Rpb25zIGluIG9yZGVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uIn0KICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlNhdmUgUmVjaXBlIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJCdWlsZCB5b3VyIG93biBmZWF0dXJlIGxpc3QgYW5kIHNlZSB0aGUgZGF0YSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1saXN0IgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgRmVhdHVyZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBhIGZlYXR1cmUuLi4ifQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyExfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTB9CiAgICAgICAgICBAY2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNsaXN0LWpzb24iKTtpZihlKXtsZXQgdD17aXRlbXM6cy5kZXRhaWwudmFsdWUsY291bnQ6cy5kZXRhaWwudmFsdWUubGVuZ3RoLHRpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9O2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ibGlzdC1qc29uIj4KICAgICAgICAgIHsKICAgICAgICAgICAgIml0ZW1zIjogW10sCiAgICAgICAgICAgICJjb3VudCI6IDAsCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9IgogICAgICAgICAgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDinKggQWRkLCBlZGl0LCByZW1vdmUsIGFuZCByZW9yZGVyIGl0ZW1zIHRvIHNlZSB0aGUgSlNPTiBvdXRwdXQgdXBkYXRlIGluIHJlYWwtdGltZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQWR2YW5jZWQgQ29uZmlndXJhdGlvbiJ9IC5zdWJ0aXRsZT0keyJDb21iaW5lIGFsbCBmZWF0dXJlcyBmb3IgY29tcGxleCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBNaWxlc3RvbmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgbWlsZXN0b25lLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1siUHJvamVjdCBLaWNrb2ZmIC0gV2VlayAxIiwiUmVxdWlyZW1lbnRzIEdhdGhlcmluZyAtIFdlZWsgMi0zIiwiRGVzaWduIFBoYXNlIC0gV2VlayA0LTYiLCJEZXZlbG9wbWVudCBTcHJpbnQgMSAtIFdlZWsgNy05IiwiVGVzdGluZyAmIFFBIC0gV2VlayAxMC0xMSIsIkRlcGxveW1lbnQgLSBXZWVrIDEyIl19CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNYW5hZ2UgcHJvamVjdCBtaWxlc3RvbmVzICgzLTEyIGl0ZW1zLCBzb3J0YWJsZSwgbm8gZHVwbGljYXRlcykifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIENhbmRpZGF0ZXMgd2l0aCBUYWIgQ29tcGxldGlvbiJ9IC5zdWJ0aXRsZT0keyJUZXJtaW5hbC1zdHlsZSBhdXRvY29tcGxldGUgXHUyMDE0IFRhYiBhY2NlcHRzLCBTaGlmdCtUYWIgY3ljbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICBpZD0iY2FuZGlkYXRlLWxpc3QiCiAgICAgICAgICAgIC5sYWJlbD0keyJBc3NpZ24gVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgYSBuYW1lLi4uIChUYWIgdG8gY29tcGxldGUpIn0KICAgICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6IkFsaWNlIFNtaXRoIixwYXlsb2FkOntpZDoxLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJGcm9udGVuZCJ9fSx7dmlld0tleToiQm9iIEpvaG5zb24iLHBheWxvYWQ6e2lkOjIscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IlVYIn19LHt2aWV3S2V5OiJDYXJvbCBXaWxsaWFtcyIscGF5bG9hZDp7aWQ6Myxyb2xlOiJQcm9kdWN0IE1hbmFnZXIiLGRlcGFydG1lbnQ6IlByb2R1Y3QifX0se3ZpZXdLZXk6IkRhdmlkIEJyb3duIixwYXlsb2FkOntpZDo0LHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJCYWNrZW5kIn19LHt2aWV3S2V5OiJFdmUgRGF2aXMiLHBheWxvYWQ6e2lkOjUscm9sZToiUUEgRW5naW5lZXIiLGRlcGFydG1lbnQ6IlF1YWxpdHkifX0se3ZpZXdLZXk6IkZyYW5rIE1pbGxlciIscGF5bG9hZDp7aWQ6Nixyb2xlOiJEZXZPcHMiLGRlcGFydG1lbnQ6IkluZnJhc3RydWN0dXJlIn19LHt2aWV3S2V5OiJHcmFjZSBXaWxzb24iLHBheWxvYWQ6e2lkOjcscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IlVYIn19LHt2aWV3S2V5OiJIZW5yeSBNb29yZSIscGF5bG9hZDp7aWQ6OCxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiRnJvbnRlbmQifX1dfQogICAgICAgICAgICAudmFsdWU9JHtbIkFsaWNlIFNtaXRoIiwiQ2Fyb2wgV2lsbGlhbXMiXX0KICAgICAgICAgICAgLm1heEl0ZW1zPSR7NX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlR5cGUgdG8gc2VlIGdob3N0IGNvbXBsZXRpb24uIFRhYiB0byBhY2NlcHQsIFNoaWZ0K1RhYiB0byBjeWNsZSwgRW50ZXIgdG8gYWRkLiJ9CiAgICAgICAgICAgIEBjaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NhbmRpZGF0ZS1qc29uIik7aWYoZSl7bGV0IGE9cy50YXJnZXQuZ2V0QWRkZWRDYW5kaWRhdGVzKCk7ZS50ZXh0Q29udGVudD1KU09OLnN0cmluZ2lmeShhLG51bGwsMil9fX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KCiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IG1hcmdpbi1ib3R0b206IDhweDsgY29sb3I6IGluaGVyaXQ7Ij5TZWxlY3RlZCBDYW5kaWRhdGVzICh3aXRoIHBheWxvYWRzKTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9ImNhbmRpZGF0ZS1qc29uIj5bXTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAgICAgIFRyeSB0eXBpbmcgIkQiIOKAlCBnaG9zdCB0ZXh0IHNob3dzICJhdmlkIEJyb3duIi4gUHJlc3MgU2hpZnQrVGFiIHRvIGN5Y2xlIHRvIG90aGVyIEQtbWF0Y2hlcy4gVGFiIGFjY2VwdHMsIEVudGVyIGFkZHMuCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxMC4gVGVjaG5vbG9neSBTdGFjayJ9IC5zdWJ0aXRsZT0keyJMYXJnZXIgY2FuZGlkYXRlIHBvb2wgd2l0aCBTaGlmdCtUYWIgY3ljbGluZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgVGVjaG5vbG9naWVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHRvIGF1dG9jb21wbGV0ZS4uLiJ9CiAgICAgICAgICAuY2FuZGlkYXRlcz0ke1t7dmlld0tleToiVHlwZVNjcmlwdCIscGF5bG9hZDp7Y2F0ZWdvcnk6Imxhbmd1YWdlIn19LHt2aWV3S2V5OiJSZWFjdCIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiVnVlLmpzIixwYXlsb2FkOntjYXRlZ29yeToiZnJhbWV3b3JrIn19LHt2aWV3S2V5OiJBbmd1bGFyIixwYXlsb2FkOntjYXRlZ29yeToiZnJhbWV3b3JrIn19LHt2aWV3S2V5OiJOb2RlLmpzIixwYXlsb2FkOntjYXRlZ29yeToicnVudGltZSJ9fSx7dmlld0tleToiRGVubyIscGF5bG9hZDp7Y2F0ZWdvcnk6InJ1bnRpbWUifX0se3ZpZXdLZXk6IkRvY2tlciIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRldm9wcyJ9fSx7dmlld0tleToiUG9zdGdyZVNRTCIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJNb25nb0RCIixwYXlsb2FkOntjYXRlZ29yeToiZGF0YWJhc2UifX0se3ZpZXdLZXk6IlJlZGlzIixwYXlsb2FkOntjYXRlZ29yeToiZGF0YWJhc2UifX0se3ZpZXdLZXk6Ikt1YmVybmV0ZXMiLHBheWxvYWQ6e2NhdGVnb3J5OiJkZXZvcHMifX1dfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1RyeSAiRCIgXHUyMDE0IGN5Y2xlcyB0aHJvdWdoIERlbm8vRG9ja2VyLiAiUiIgXHUyMDE0IGN5Y2xlcyB0aHJvdWdoIFJlYWN0L1JlZGlzLid9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTEuIEZyZWVmb3JtICsgQ2FuZGlkYXRlcyJ9IC5zdWJ0aXRsZT0keyJBbGxvdyBhZGRpbmcgaXRlbXMgbm90IGluIHRoZSBjYW5kaWRhdGUgbGlzdCAoc2hvd24gd2l0aCBhIHF1ZXN0aW9uIG1hcmspIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgYSB0YWcuLi4gKGZyZWVmb3JtIGFsbG93ZWQpIn0KICAgICAgICAgIC5hbGxvd0ZyZWVmb3JtPSR7ITB9CiAgICAgICAgICAuY2FuZGlkYXRlcz0ke1t7dmlld0tleToiYnVnIixwYXlsb2FkOntjb2xvcjoicmVkIn19LHt2aWV3S2V5OiJmZWF0dXJlIixwYXlsb2FkOntjb2xvcjoiYmx1ZSJ9fSx7dmlld0tleToiZG9jcyIscGF5bG9hZDp7Y29sb3I6ImdyZWVuIn19LHt2aWV3S2V5OiJyZWZhY3RvciIscGF5bG9hZDp7Y29sb3I6InB1cnBsZSJ9fSx7dmlld0tleToicGVyZm9ybWFuY2UiLHBheWxvYWQ6e2NvbG9yOiJvcmFuZ2UifX0se3ZpZXdLZXk6InNlY3VyaXR5IixwYXlsb2FkOntjb2xvcjoicmVkIn19XX0KICAgICAgICAgIC52YWx1ZT0ke1siYnVnIiwibXktY3VzdG9tLXRhZyIsImZlYXR1cmUiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJLbm93biB0YWdzIGdldCBhIGNoZWNrbWFyaywgY3VzdG9tIHRhZ3MgZ2V0IGEgcXVlc3Rpb24gbWFyay4gVGFiIHRvIGNvbXBsZXRlLCBFbnRlciB0byBhZGQgZnJlZWZvcm0uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxMi4gRW1wdHkgU3RhdGUifSAuc3VidGl0bGU9JHsiSG93IHRoZSBjb21wb25lbnQgbG9va3Mgd2l0aCBubyBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJZb3VyIElkZWFzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTaGFyZSB5b3VyIGlkZWFzLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1tdfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlN0YXJ0IGFkZGluZyBpdGVtcyB0byBidWlsZCB5b3VyIGxpc3QifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIFhpLG1hLHhudCx5bnQ9ZygoKT0+e3BlKCk7RWkoKTtHYSgpO21yKCk7WWJhKCk7aHQoKTtYaT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbWE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHhudD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtbGlzdCIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdO3ZhciBzdD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0TGlzdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOkJvb2xlYW59KV0sTz1bTCh7dHlwZTpCb29sZWFufSldLEg9W0woe3R5cGU6QXJyYXl9KV0sST1bTCh7dHlwZTpCb29sZWFufSldLEs9W0woe3R5cGU6U3RyaW5nfSldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLENlPVtZKCldLEVlPVtZKCldLFhpKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJ2YWx1ZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLnZhbHVlLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UudmFsdWU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LG8sbCksWGkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+InBsYWNlaG9sZGVyImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UucGxhY2Vob2xkZXIsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5wbGFjZWhvbGRlcj1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sZCx1KSxYaSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4ibWF4SXRlbXMiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5tYXhJdGVtcywiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLm1heEl0ZW1zPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxiLHYpLFhpKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluSXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJtaW5JdGVtcyJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLm1pbkl0ZW1zLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UubWluSXRlbXM9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LG0sZiksWGkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0R1cGxpY2F0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJhbGxvd0R1cGxpY2F0ZXMiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5hbGxvd0R1cGxpY2F0ZXMsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5hbGxvd0R1cGxpY2F0ZXM9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LE0seiksWGkodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzb3J0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+InNvcnRhYmxlImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2Uuc29ydGFibGUsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5zb3J0YWJsZT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sQyxfKSxYaSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbmZpcm1EZWxldGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJjb25maXJtRGVsZXRlImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuY29uZmlybURlbGV0ZSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmNvbmZpcm1EZWxldGU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LCQsRSksWGkodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYW5kaWRhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iY2FuZGlkYXRlcyJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmNhbmRpZGF0ZXMsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5jYW5kaWRhdGVzPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxrLFMpLFhpKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dGcmVlZm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImFsbG93RnJlZWZvcm0iaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5hbGxvd0ZyZWVmb3JtLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuYWxsb3dGcmVlZm9ybT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sUCxSKSxYaSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4idmFsaWRhdGlvblRleHQiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS52YWxpZGF0aW9uVGV4dCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLnZhbGlkYXRpb25UZXh0PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxWLFcpLFhpKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlucHV0VmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJpbnB1dFZhbHVlImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuaW5wdXRWYWx1ZSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmlucHV0VmFsdWU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LEIsVSksWGkodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2hvc3RUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iZ2hvc3RUZXh0ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuZ2hvc3RUZXh0LCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZ2hvc3RUZXh0PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxGLGopLFhpKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRDYW5kaWRhdGVJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImN1cnJlbnRDYW5kaWRhdGVJbmRleCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmN1cnJlbnRDYW5kaWRhdGVJbmRleCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmN1cnJlbnRDYW5kaWRhdGVJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sbGUsUSksWGkodGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZ0luZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iZWRpdGluZ0luZGV4ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuZWRpdGluZ0luZGV4LCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZWRpdGluZ0luZGV4PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSx0ZSxlZSksWGkodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZ1ZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iZWRpdGluZ1ZhbHVlImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuZWRpdGluZ1ZhbHVlLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZWRpdGluZ1ZhbHVlPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxYLFopLFhpKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdnZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImRyYWdnZWRJbmRleCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmRyYWdnZWRJbmRleCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmRyYWdnZWRJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0scSxBKSxYaSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iZHJhZ092ZXJJbmRleCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmRyYWdPdmVySW5kZXgsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5kcmFnT3ZlckluZGV4PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxvZSxhZSksWGkodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ1N0YXJ0WSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImRyYWdTdGFydFkiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5kcmFnU3RhcnRZLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZHJhZ1N0YXJ0WT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sUmUsQmUpLFhpKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdDdXJyZW50WSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImRyYWdDdXJyZW50WSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmRyYWdDdXJyZW50WSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmRyYWdDdXJyZW50WT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sRGUsX2UpLFhpKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhcmdldEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4idGFyZ2V0SW5kZXgiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS50YXJnZXRJbmRleCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLnRhcmdldEluZGV4PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSx2ZSxiZSksWGkodGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXRlbUhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+Iml0ZW1IZWlnaHQiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5pdGVtSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuaXRlbUhlaWdodD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0samUsV2UpLFhpKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk1lfSxudWxsLHQpLHN0PWE9ZS52YWx1ZSxNZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNZX0pfXN0YXRpYyBkZW1vPUtiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9bWEodGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoTWUpe3RoaXMuI2U9TWV9I3Q9KG1hKHRoaXMsbCksbWEodGhpcyxkLCJBZGQgbmV3IGl0ZW0uLi4iKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBsYWNlaG9sZGVyKE1lKXt0aGlzLiN0PU1lfSNhPShtYSh0aGlzLHUpLG1hKHRoaXMsYiwwKSk7Z2V0IG1heEl0ZW1zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1heEl0ZW1zKE1lKXt0aGlzLiNhPU1lfSNzPShtYSh0aGlzLHYpLG1hKHRoaXMsbSwwKSk7Z2V0IG1pbkl0ZW1zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1pbkl0ZW1zKE1lKXt0aGlzLiNzPU1lfSNpPShtYSh0aGlzLGYpLG1hKHRoaXMsTSwhMSkpO2dldCBhbGxvd0R1cGxpY2F0ZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWxsb3dEdXBsaWNhdGVzKE1lKXt0aGlzLiNpPU1lfSNyPShtYSh0aGlzLHopLG1hKHRoaXMsQywhMSkpO2dldCBzb3J0YWJsZSgpe3JldHVybiB0aGlzLiNyfXNldCBzb3J0YWJsZShNZSl7dGhpcy4jcj1NZX0jbz0obWEodGhpcyxfKSxtYSh0aGlzLCQsITEpKTtnZXQgY29uZmlybURlbGV0ZSgpe3JldHVybiB0aGlzLiNvfXNldCBjb25maXJtRGVsZXRlKE1lKXt0aGlzLiNvPU1lfSNuPShtYSh0aGlzLEUpLG1hKHRoaXMsayxbXSkpO2dldCBjYW5kaWRhdGVzKCl7cmV0dXJuIHRoaXMuI259c2V0IGNhbmRpZGF0ZXMoTWUpe3RoaXMuI249TWV9I2w9KG1hKHRoaXMsUyksbWEodGhpcyxQLCExKSk7Z2V0IGFsbG93RnJlZWZvcm0oKXtyZXR1cm4gdGhpcy4jbH1zZXQgYWxsb3dGcmVlZm9ybShNZSl7dGhpcy4jbD1NZX0jYz0obWEodGhpcyxSKSxtYSh0aGlzLFYsIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmFsaWRhdGlvblRleHQoTWUpe3RoaXMuI2M9TWV9YWRkZWRDYW5kaWRhdGVzTWFwPShtYSh0aGlzLFcpLG5ldyBNYXApO21hdGNoaW5nQ2FuZGlkYXRlcz1bXTsjZD1tYSh0aGlzLEIsIiIpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlucHV0VmFsdWUoTWUpe3RoaXMuI2Q9TWV9I3U9KG1hKHRoaXMsVSksbWEodGhpcyxGLCIiKSk7Z2V0IGdob3N0VGV4dCgpe3JldHVybiB0aGlzLiN1fXNldCBnaG9zdFRleHQoTWUpe3RoaXMuI3U9TWV9I3A9KG1hKHRoaXMsaiksbWEodGhpcyxsZSwtMSkpO2dldCBjdXJyZW50Q2FuZGlkYXRlSW5kZXgoKXtyZXR1cm4gdGhpcy4jcH1zZXQgY3VycmVudENhbmRpZGF0ZUluZGV4KE1lKXt0aGlzLiNwPU1lfSNoPShtYSh0aGlzLFEpLG1hKHRoaXMsdGUsLTEpKTtnZXQgZWRpdGluZ0luZGV4KCl7cmV0dXJuIHRoaXMuI2h9c2V0IGVkaXRpbmdJbmRleChNZSl7dGhpcy4jaD1NZX0jZj0obWEodGhpcyxlZSksbWEodGhpcyxYLCIiKSk7Z2V0IGVkaXRpbmdWYWx1ZSgpe3JldHVybiB0aGlzLiNmfXNldCBlZGl0aW5nVmFsdWUoTWUpe3RoaXMuI2Y9TWV9I209KG1hKHRoaXMsWiksbWEodGhpcyxxLC0xKSk7Z2V0IGRyYWdnZWRJbmRleCgpe3JldHVybiB0aGlzLiNtfXNldCBkcmFnZ2VkSW5kZXgoTWUpe3RoaXMuI209TWV9I2c9KG1hKHRoaXMsQSksbWEodGhpcyxvZSwtMSkpO2dldCBkcmFnT3ZlckluZGV4KCl7cmV0dXJuIHRoaXMuI2d9c2V0IGRyYWdPdmVySW5kZXgoTWUpe3RoaXMuI2c9TWV9I2I9KG1hKHRoaXMsYWUpLG1hKHRoaXMsUmUsMCkpO2dldCBkcmFnU3RhcnRZKCl7cmV0dXJuIHRoaXMuI2J9c2V0IGRyYWdTdGFydFkoTWUpe3RoaXMuI2I9TWV9I3Y9KG1hKHRoaXMsQmUpLG1hKHRoaXMsRGUsMCkpO2dldCBkcmFnQ3VycmVudFkoKXtyZXR1cm4gdGhpcy4jdn1zZXQgZHJhZ0N1cnJlbnRZKE1lKXt0aGlzLiN2PU1lfSN4PShtYSh0aGlzLF9lKSxtYSh0aGlzLHZlLC0xKSk7Z2V0IHRhcmdldEluZGV4KCl7cmV0dXJuIHRoaXMuI3h9c2V0IHRhcmdldEluZGV4KE1lKXt0aGlzLiN4PU1lfSN5PShtYSh0aGlzLGJlKSxtYSh0aGlzLGplLDApKTtnZXQgaXRlbUhlaWdodCgpe3JldHVybiB0aGlzLiN5fXNldCBpdGVtSGVpZ2h0KE1lKXt0aGlzLiN5PU1lfWJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9KG1hKHRoaXMsV2UpLG51bGwpO2JvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD1udWxsO29yaWdpbmFsSXRlbVJlY3RzPVtdO3N0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpmb2N1cy13aXRoaW46OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSBkZWVzLXRpbGUgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubGlzdC1pdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6bm90KC5pcy1kcmFnZ2luZykgLmxpc3QtaXRlbTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1yb3ctaG92ZXIpOwogICAgICB9CgogICAgICAvKiBEcmFnZ2luZyBpdGVtIC0gZm9sbG93cyBjdXJzb3IgKi8KICAgICAgLmxpc3QtaXRlbS5kcmFnZ2luZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTIlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogSXRlbXMgdGhhdCBuZWVkIHRvIG1vdmUgdXAgdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtdXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0taXRlbS1oZWlnaHQsIDQ4cHgpKSk7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIGRvd24gdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSk7CiAgICAgIH0KCgogICAgICAuY2FuZGlkYXRlLWNoZWNrIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNhbmRpZGF0ZS11bmtub3duIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDU4JSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5pdGVtLWJ1bGxldCB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBtb3ZlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLml0ZW0tY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLml0ZW0tZWRpdC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAzcHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLml0ZW0tYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxM3B4OwogICAgICAgIGhlaWdodDogMTNweDsKICAgICAgfQoKICAgICAgLmFkZC1pdGVtLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDE2cHggMTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMzQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlIHRyYW5zaXRpb25zIGR1cmluZyBkcm9wIHRvIHByZXZlbnQgZmxhc2ggKi8KICAgICAgLmxpc3QtaXRlbXMuZHJvcHBpbmcgLmxpc3QtaXRlbSB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiDilIDilIAgVGVybWluYWwtc3R5bGUgaW5saW5lIGF1dG9jb21wbGV0ZSDilIDilIAgKi8KICAgICAgLmF1dG9jb21wbGV0ZS13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LXRleHQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZ2hvc3QtdHlwZWQgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LWNvbXBsZXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9IiR7dGhpcy52YWx1ZS5sZW5ndGh9IGl0ZW0ke3RoaXMudmFsdWUubGVuZ3RoIT09MT8icyI6IiJ9Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Imxpc3QtaXRlbXMiPgogICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy52YWx1ZS5tYXAoKE1lLGdlKT0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibGlzdC1pdGVtICR7dGhpcy5kcmFnZ2VkSW5kZXg9PT1nZT8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZH0iCiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7SWU9PnRoaXMuaGFuZGxlRHJhZ1N0YXJ0KEllLGdlKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7dGhpcy5oYW5kbGVEcmFnRW5kfQogICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7SWU9PnRoaXMuaGFuZGxlRHJhZ092ZXIoSWUsZ2UpfQogICAgICAgICAgICAgICAgQGRyb3A9JHtJZT0+dGhpcy5oYW5kbGVEcm9wKEllLGdlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke3RoaXMuc29ydGFibGUmJiF0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYWctaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpncmlwVmVydGljYWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICAgICR7dGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICR7dGhpcy5jYW5kaWRhdGVzLnNvbWUoSWU9PkllLnZpZXdLZXk9PT1NZSk/d2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYW5kaWRhdGUtY2hlY2siIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FuZGlkYXRlLXVua25vd24iIC5pY29uPSR7Imx1Y2lkZTpoZWxwQ2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICBgOiF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9Iml0ZW0tYnVsbGV0IiAuaWNvbj0keyJsdWNpZGU6ZG90In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT1nZT93YAogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpdGVtLWVkaXQtaW5wdXQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmVkaXRpbmdWYWx1ZX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke0llPT50aGlzLmVkaXRpbmdWYWx1ZT1JZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke0llPT50aGlzLmhhbmRsZUVkaXRLZXlEb3duKEllLGdlKX0KICAgICAgICAgICAgICAgICAgICAgIEBibHVyPSR7KCk9PnRoaXMuc2F2ZUVkaXQoZ2UpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXRleHQiIEBkYmxjbGljaz0keygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy5zdGFydEVkaXQoZ2UpfT4KICAgICAgICAgICAgICAgICAgICAgICR7TWV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmVkaXRpbmdJbmRleD09PWdlP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzYXZlIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRWRpdChnZSl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2FuY2VsRWRpdCgpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjp3YAogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc3RhcnRFZGl0KGdlKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBlbmNpbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlSXRlbShnZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmFzaDIifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCk6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICBObyBpdGVtcyBhZGRlZCB5ZXQKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4SXRlbXN8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4SXRlbXMpP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYWRkLWl0ZW0tY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRvY29tcGxldGUtd3JhcHBlciI+CiAgICAgICAgICAgICAgICAke3RoaXMuZ2hvc3RUZXh0P3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnaG9zdC10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2hvc3QtdHlwZWQiPiR7dGhpcy5pbnB1dFZhbHVlfTwvc3Bhbj48c3BhbiBjbGFzcz0iZ2hvc3QtY29tcGxldGlvbiI+JHt0aGlzLmdob3N0VGV4dH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1pbnB1dCIKICAgICAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlQWRkS2V5RG93bn0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFkZEl0ZW19CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5pbnB1dFZhbHVlLnRyaW0oKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwbHVzIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlSW5wdXQoTWUpe3RoaXMuaW5wdXRWYWx1ZT1NZS50YXJnZXQudmFsdWUsdGhpcy51cGRhdGVHaG9zdFRleHQoKX11cGRhdGVHaG9zdFRleHQoKXtpZih0aGlzLmNhbmRpZGF0ZXMubGVuZ3RoPT09MHx8IXRoaXMuaW5wdXRWYWx1ZSl7dGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W107cmV0dXJufWxldCBNZT10aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKTt0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz10aGlzLmNhbmRpZGF0ZXMuZmlsdGVyKGdlPT50aGlzLnZhbHVlLmluY2x1ZGVzKGdlLnZpZXdLZXkpPyExOmdlLnZpZXdLZXkudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKE1lKSkuc29ydCgoZ2UsSWUpPT5nZS52aWV3S2V5Lmxlbmd0aC1JZS52aWV3S2V5Lmxlbmd0aCksdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXMubGVuZ3RoPjA/KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PTAsdGhpcy5naG9zdFRleHQ9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbMF0udmlld0tleS5zbGljZSh0aGlzLmlucHV0VmFsdWUubGVuZ3RoKSk6KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMuZ2hvc3RUZXh0PSIiKX1oYW5kbGVBZGRLZXlEb3duKE1lKXtpZihNZS5rZXk9PT0iVGFiIiYmdGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wJiZ0aGlzLmlucHV0VmFsdWUpe2lmKE1lLnByZXZlbnREZWZhdWx0KCksTWUuc2hpZnRLZXkmJnRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wKXt0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0odGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXgrMSkldGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXMubGVuZ3RoO2xldCBnZT10aGlzLm1hdGNoaW5nQ2FuZGlkYXRlc1t0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleF07dGhpcy5naG9zdFRleHQ9Z2Uudmlld0tleS5zbGljZSh0aGlzLmlucHV0VmFsdWUubGVuZ3RoKX1lbHNlIGlmKCFNZS5zaGlmdEtleSYmdGhpcy5naG9zdFRleHQmJnRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wKXtsZXQgZ2U9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXhdO3RoaXMuaW5wdXRWYWx1ZT1nZS52aWV3S2V5LHRoaXMuZ2hvc3RUZXh0PSIiO2xldCBJZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTtJZSYmKEllLnZhbHVlPWdlLnZpZXdLZXkpfXJldHVybn1pZihNZS5rZXk9PT0iRXNjYXBlIiYmdGhpcy5naG9zdFRleHQpe01lLnByZXZlbnREZWZhdWx0KCksdGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W107cmV0dXJufWlmKE1lLmtleT09PSJFbnRlciImJnRoaXMuaW5wdXRWYWx1ZS50cmltKCkpe2lmKE1lLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wKXtsZXQgZ2U9dGhpcy5jYW5kaWRhdGVzLmZpbmQoSWU9PkllLnZpZXdLZXkudG9Mb3dlckNhc2UoKT09PXRoaXMuaW5wdXRWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSk7Z2U/dGhpcy5zZWxlY3RDYW5kaWRhdGUoZ2UpOnRoaXMuYWxsb3dGcmVlZm9ybSYmKHRoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdLHRoaXMuYWRkSXRlbSgpKTtyZXR1cm59dGhpcy5hZGRJdGVtKCl9fWhhbmRsZUVkaXRLZXlEb3duKE1lLGdlKXtNZS5rZXk9PT0iRW50ZXIiPyhNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUVkaXQoZ2UpKTpNZS5rZXk9PT0iRXNjYXBlIiYmKE1lLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5jZWxFZGl0KCkpfXNlbGVjdENhbmRpZGF0ZShNZSl7aWYodGhpcy5tYXhJdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4SXRlbXMpe3RoaXMudmFsaWRhdGlvblRleHQ9YE1heGltdW0gJHt0aGlzLm1heEl0ZW1zfSBpdGVtcyBhbGxvd2VkYCxzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhNZS52aWV3S2V5KSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufXRoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLnNldChNZS52aWV3S2V5LE1lKSx0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLE1lLnZpZXdLZXldLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmdob3N0VGV4dD0iIix0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz1bXSx0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTtnZSYmKGdlLnZhbHVlPSIiLGdlLmZvY3VzKCkpfSl9Z2V0Q2FuZGlkYXRlRm9ySXRlbShNZSl7cmV0dXJuIHRoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLmdldChNZSl9Z2V0QWRkZWRDYW5kaWRhdGVzKCl7cmV0dXJuIHRoaXMudmFsdWUubWFwKE1lPT50aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5nZXQoTWUpKS5maWx0ZXIoTWU9Pk1lIT09dm9pZCAwKX1hZGRJdGVtKCl7bGV0IE1lPXRoaXMuaW5wdXRWYWx1ZS50cmltKCk7aWYoTWUpe2lmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhNZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1pZih0aGlzLm1heEl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5tYXhJdGVtcyl7dGhpcy52YWxpZGF0aW9uVGV4dD1gTWF4aW11bSAke3RoaXMubWF4SXRlbXN9IGl0ZW1zIGFsbG93ZWRgLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxNZV0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IGdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmFkZC1pbnB1dCIpO2dlJiYoZ2UudmFsdWU9IiIsZ2UuZm9jdXMoKSl9KX19c3RhcnRFZGl0KE1lKXt0aGlzLmVkaXRpbmdJbmRleD1NZSx0aGlzLmVkaXRpbmdWYWx1ZT10aGlzLnZhbHVlW01lXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgZ2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuaXRlbS1lZGl0LWlucHV0Iik7Z2UmJihnZS5mb2N1cygpLGdlLnNlbGVjdCgpKX0pfXNhdmVFZGl0KE1lKXtsZXQgZ2U9dGhpcy5lZGl0aW5nVmFsdWUudHJpbSgpO2lmKCFnZSl7dGhpcy5jYW5jZWxFZGl0KCk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmZ2UhPT10aGlzLnZhbHVlW01lXSYmdGhpcy52YWx1ZS5pbmNsdWRlcyhnZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1sZXQgSWU9Wy4uLnRoaXMudmFsdWVdO0llW01lXT1nZSx0aGlzLnZhbHVlPUllLHRoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCl9Y2FuY2VsRWRpdCgpe3RoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIifWFzeW5jIHJlbW92ZUl0ZW0oTWUpe2lmKHRoaXMuY29uZmlybURlbGV0ZSYmIWF3YWl0IHRoaXMuc2hvd0NvbmZpcm1EaWFsb2coYERlbGV0ZSAiJHt0aGlzLnZhbHVlW01lXX0iP2ApKXJldHVybjtsZXQgZ2U9dGhpcy52YWx1ZVtNZV07dGhpcy5hZGRlZENhbmRpZGF0ZXNNYXAuZGVsZXRlKGdlKSx0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKChJZSxjZSk9PmNlIT09TWUpLHRoaXMuZW1pdENoYW5nZSgpfWFzeW5jIHNob3dDb25maXJtRGlhbG9nKE1lKXtyZXR1cm4gY29uZmlybShNZSl9aGFuZGxlRHJhZ1N0YXJ0KE1lLGdlKXtpZighdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZClyZXR1cm47dGhpcy5kcmFnZ2VkSW5kZXg9Z2UsdGhpcy50YXJnZXRJbmRleD1nZSxNZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZD0ibW92ZSIsTWUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLGdlLnRvU3RyaW5nKCkpO2xldCBJZT1uZXcgSW1hZ2U7SWUuc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBVUVCQUFBQUN3QUFBQUFBUUFCQUFBQ0FrUUJBRHM9IixNZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKEllLDAsMCksdGhpcy5kcmFnU3RhcnRZPU1lLmNsaWVudFksdGhpcy5kcmFnQ3VycmVudFk9TWUuY2xpZW50WTtsZXQgY2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLGRlPUFycmF5LmZyb20oY2U/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKXx8W10pO2RlW2dlXSYmKHRoaXMuaXRlbUhlaWdodD1kZVtnZV0ub2Zmc2V0SGVpZ2h0KSx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPWRlLm1hcChMZT0+TGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLGNlPy5jbGFzc0xpc3QuYWRkKCJpcy1kcmFnZ2luZyIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj10aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyLmJpbmQodGhpcyksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpfWhhbmRsZUdsb2JhbERyYWdPdmVyKE1lKXtpZihNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZHJhZ2dlZEluZGV4PT09LTEpcmV0dXJuO3RoaXMuZHJhZ0N1cnJlbnRZPU1lLmNsaWVudFk7bGV0IGdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtpZighZ2UpcmV0dXJuO2xldCBJZT1BcnJheS5mcm9tKGdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKSksY2U9SWVbdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKCFjZSlyZXR1cm47bGV0IGRlPXRoaXMuZHJhZ0N1cnJlbnRZLXRoaXMuZHJhZ1N0YXJ0WTtjZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtkZX1weClgO2xldCBMZT10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW3RoaXMuZHJhZ2dlZEluZGV4XTtpZighTGUpcmV0dXJuO2xldCBLZT1MZS50b3ArTGUuaGVpZ2h0LzIrZGUsWWU9dGhpcy5kcmFnZ2VkSW5kZXg7Zm9yKGxldCBvdD0wO290PEllLmxlbmd0aDtvdCsrKXtpZihvdD09PXRoaXMuZHJhZ2dlZEluZGV4KWNvbnRpbnVlO2xldCBVdD10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW290XTtpZighVXQpY29udGludWU7bGV0IFp0PVV0LnRvcCtVdC5oZWlnaHQvMjtpZihJZVtvdF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLXVwIik/WnQtPXRoaXMuaXRlbUhlaWdodDpJZVtvdF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLWRvd24iKSYmKFp0Kz10aGlzLml0ZW1IZWlnaHQpLEtlPFp0JiZvdDx0aGlzLmRyYWdnZWRJbmRleCl7WWU9b3Q7YnJlYWt9ZWxzZSBLZT5adCYmb3Q+dGhpcy5kcmFnZ2VkSW5kZXgmJihZZT1vdCl9WWUhPT10aGlzLnRhcmdldEluZGV4JiYodGhpcy50YXJnZXRJbmRleD1ZZSx0aGlzLnVwZGF0ZUl0ZW1Qb3NpdGlvbnMoSWUpKX11cGRhdGVJdGVtUG9zaXRpb25zKE1lKXtsZXQgZ2U9dGhpcy5kcmFnZ2VkSW5kZXgsSWU9dGhpcy50YXJnZXRJbmRleCxjZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7Y2UmJmNlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxNZS5mb3JFYWNoKChkZSxMZSk9PntMZSE9PWdlJiYoZGUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLGRlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxnZTxJZT9MZT5nZSYmTGU8PUllJiZkZS5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIik6Z2U+SWUmJkxlPj1JZSYmTGU8Z2UmJmRlLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQoKXt0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9bnVsbCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbCk7bGV0IE1lPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSxnZT1NZT8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpLEllPWdlPy5bdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKHRoaXMuZHJhZ2dlZEluZGV4PT09LTF8fHRoaXMudGFyZ2V0SW5kZXg9PT0tMXx8dGhpcy5kcmFnZ2VkSW5kZXg9PT10aGlzLnRhcmdldEluZGV4KXtpZihJZSYmdGhpcy5kcmFnZ2VkSW5kZXghPT0tMSl7SWUuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLEllLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwKSI7bGV0IG90PSExLFV0PWkoKCk9PntvdHx8KG90PSEwLEllLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFV0KSx0aGlzLmNsZWFudXBEcmFnU3RhdGUoTWUsZ2UpKX0sIm9uUmV0dXJuIik7SWUuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsVXQse29uY2U6ITB9KSxzZXRUaW1lb3V0KFV0LDIwMCl9ZWxzZSB0aGlzLmNsZWFudXBEcmFnU3RhdGUoTWUsZ2UpO3JldHVybn1sZXQgY2U9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF0sZGU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLnRhcmdldEluZGV4XTtpZighY2V8fCFkZXx8IUllKXt0aGlzLmNsZWFudXBEcmFnU3RhdGUoTWUsZ2UpO3JldHVybn1sZXQgTGU7dGhpcy50YXJnZXRJbmRleD50aGlzLmRyYWdnZWRJbmRleD9MZT1kZS5ib3R0b20tY2UuYm90dG9tOkxlPWRlLnRvcC1jZS50b3AsSWUuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLEllLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke0xlfXB4KWA7bGV0IEtlPSExLFllPWkoKCk9PntpZihLZSlyZXR1cm47S2U9ITAsSWUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsWWUpLE1lPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLE1lPy5vZmZzZXRIZWlnaHQsZ2U/LmZvckVhY2goWnQ9PntadC5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSxadC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksWnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pO2xldCBvdD1bLi4udGhpcy52YWx1ZV0sW1V0XT1vdC5zcGxpY2UodGhpcy5kcmFnZ2VkSW5kZXgsMSk7b3Quc3BsaWNlKHRoaXMudGFyZ2V0SW5kZXgsMCxVdCksdGhpcy52YWx1ZT1vdCx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFp0PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO1p0Py5mb3JFYWNoKGphPT57amEuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntadD8uZm9yRWFjaChqYT0+e2phLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxNZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX0sIm9uVHJhbnNpdGlvbkVuZCIpO0llLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFllLHtvbmNlOiEwfSksc2V0VGltZW91dChZZSwyMDApfWNsZWFudXBEcmFnU3RhdGUoTWUsZ2Upe01lPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLE1lPy5vZmZzZXRIZWlnaHQsZ2U/LmZvckVhY2goSWU9PntJZS5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSxJZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksSWUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLHRoaXMuZHJhZ2dlZEluZGV4PS0xLHRoaXMuZHJhZ092ZXJJbmRleD0tMSx0aGlzLnRhcmdldEluZGV4PS0xLHRoaXMuZHJhZ1N0YXJ0WT0wLHRoaXMuZHJhZ0N1cnJlbnRZPTAsdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1bXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgSWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIik7SWU/LmZvckVhY2goY2U9PntjZS5zdHlsZS50cmFuc2l0aW9uPSJub25lIn0pLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKT8ub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0llPy5mb3JFYWNoKGNlPT57Y2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLE1lPy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wcGluZyIsImlzLWRyYWdnaW5nIil9KX0pfWhhbmRsZURyYWdFbmQoKXt0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQoKX1oYW5kbGVEcmFnT3ZlcihNZSxnZSl7IXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWR8fChNZS5wcmV2ZW50RGVmYXVsdCgpLE1lLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIil9aGFuZGxlRHJhZ0xlYXZlKCl7fWhhbmRsZURyb3AoTWUsZ2UpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHxNZS5wcmV2ZW50RGVmYXVsdCgpfWVtaXRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShNZSl7dGhpcy52YWx1ZT1NZXx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgaXRlbSBpcyByZXF1aXJlZCIsITEpOnRoaXMubWluSXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWluSXRlbXM/KHRoaXMudmFsaWRhdGlvblRleHQ9YEF0IGxlYXN0ICR7dGhpcy5taW5JdGVtc30gaXRlbXMgcmVxdWlyZWRgLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9c3RhdGlje21hKGEsdCl9fTtyZXR1cm4gc3Q9YX0pKCl9KTt2YXIgVkphLFVKYSxXSmEsR0phLEtKYSxZSmEsWkphLFpiYSxYYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO1ZKYT1pKCgpPT57bGV0IHM9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmB0aXRsZS0ke3N9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IlN5c3RlbSBQZXJmb3JtYW5jZSBSZXBvcnQifSx7aWQ6YGRhdGUtJHtzKzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6YEdlbmVyYXRlZCBvbjogJHtuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCl9YH0se2lkOmBzdW1tYXJ5LWhlYWRpbmctJHtzKzJ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkV4ZWN1dGl2ZSBTdW1tYXJ5In0se2lkOmBzdW1tYXJ5LSR7cyszfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIHJlcG9ydCBwcm92aWRlcyBhbiBhbmFseXNpcyBvZiBzeXN0ZW0gcGVyZm9ybWFuY2UgbWV0cmljcyBvdmVyIHRoZSBsYXN0IDMwIGRheXMuIn0se2lkOmBtZXRyaWNzLWhlYWRpbmctJHtzKzR9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IktleSBNZXRyaWNzIn0se2lkOmBtZXRyaWNzLWxpc3QtJHtzKzV9YCx0eXBlOiJsaXN0Iixjb250ZW50OmBBdmVyYWdlIHJlc3BvbnNlIHRpbWU6IDEyNG1zClVwdGltZTogOTkuOTclCkNQVSB1dGlsaXphdGlvbjogNDUlCk1lbW9yeSB1c2FnZTogMi4zR0IgLyA4R0JgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgYW5hbHlzaXMtaGVhZGluZy0ke3MrNn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiUGVyZm9ybWFuY2UgQW5hbHlzaXMifSx7aWQ6YGFuYWx5c2lzLXF1b3RlLSR7cys3fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlN5c3RlbSBwZXJmb3JtYW5jZSByZW1haW5zIHdpdGhpbiBhY2NlcHRhYmxlIHBhcmFtZXRlcnMgd2l0aCByb29tIGZvciBvcHRpbWl6YXRpb24gaW4gbWVtb3J5IG1hbmFnZW1lbnQuIn0se2lkOmBjb2RlLWhlYWRpbmctJHtzKzh9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IlNhbXBsZSBRdWVyeSBQZXJmb3JtYW5jZSJ9LHtpZDpgY29kZS1ibG9jay0ke3MrOX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YFNFTEVDVCBBVkcocmVzcG9uc2VfdGltZSkgYXMgYXZnX3RpbWUsCiAgICAgICBDT1VOVCgqKSBhcyB0b3RhbF9yZXF1ZXN0cywKICAgICAgIERBVEUoY3JlYXRlZF9hdCkgYXMgZGF0ZQpGUk9NIHBlcmZvcm1hbmNlX2xvZ3MKV0hFUkUgY3JlYXRlZF9hdCA+PSBOT1coKSAtIElOVEVSVkFMIDMwIERBWQpHUk9VUCBCWSBEQVRFKGNyZWF0ZWRfYXQpCk9SREVSIEJZIGRhdGUgREVTQztgLG1ldGFkYXRhOntsYW5ndWFnZToic3FsIn19LHtpZDpgZGl2aWRlci0ke3MrMTB9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6YGZvb3Rlci0ke3MrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlJlcG9ydCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBTeXN0ZW0gTW9uaXRvciB2Mi41LjAifV19LCJnZW5lcmF0ZVJlcG9ydEJsb2NrcyIpLFVKYT1pKCgpPT57bGV0IHM9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmByZWNpcGUtdGl0bGUtJHtzfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJDbGFzc2ljIE1hcmdoZXJpdGEgUGl6emEifSx7aWQ6YHJlY2lwZS1pbnRyby0ke3MrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiQSB0cmFkaXRpb25hbCBJdGFsaWFuIHBpenphIHdpdGggZnJlc2ggYmFzaWwsIG1venphcmVsbGEsIGFuZCB0b21hdG8gc2F1Y2UuIn0se2lkOmBpbmdyZWRpZW50cy1oZWFkaW5nLSR7cysyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjM1NX0gSW5ncmVkaWVudHMifSx7aWQ6YGRvdWdoLWhlYWRpbmctJHtzKzN9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgRG91Z2g6In0se2lkOmBkb3VnaC1saXN0LSR7cys0fWAsdHlwZToibGlzdCIsY29udGVudDpgNTAwZyB0aXBvICIwMCIgZmxvdXIKMzI1bWwgd2FybSB3YXRlcgoxMGcgc2FsdAo3ZyBhY3RpdmUgZHJ5IHllYXN0CjIgdGJzcCBvbGl2ZSBvaWxgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgdG9wcGluZ3MtaGVhZGluZy0ke3MrNX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiRm9yIHRoZSBUb3BwaW5nczoifSx7aWQ6YHRvcHBpbmdzLWxpc3QtJHtzKzZ9YCx0eXBlOiJsaXN0Iixjb250ZW50OmA0MDBnIGNhbm5lZCBTYW4gTWFyemFubyB0b21hdG9lcwoyNTBnIGZyZXNoIG1venphcmVsbGEKRnJlc2ggYmFzaWwgbGVhdmVzCkV4dHJhIHZpcmdpbiBvbGl2ZSBvaWwKU2FsdCBhbmQgcGVwcGVyIHRvIHRhc3RlYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGluc3RydWN0aW9ucy1oZWFkaW5nLSR7cys3fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjQ2OH1cdTIwMERcdXsxRjM3M30gSW5zdHJ1Y3Rpb25zIn0se2lkOmBzdGVwcy1saXN0LSR7cys4fWAsdHlwZToibGlzdCIsY29udGVudDpgRGlzc29sdmUgeWVhc3QgaW4gd2FybSB3YXRlciBhbmQgbGV0IHN0YW5kIGZvciA1IG1pbnV0ZXMKTWl4IGZsb3VyIGFuZCBzYWx0LCBjcmVhdGUgYSB3ZWxsIGluIGNlbnRlcgpBZGQgeWVhc3QgbWl4dHVyZSBhbmQgb2xpdmUgb2lsCktuZWFkIGZvciAxMCBtaW51dGVzIHVudGlsIHNtb290aApMZXQgcmlzZSBmb3IgMS0yIGhvdXJzIHVudGlsIGRvdWJsZWQKUHVuY2ggZG93biBhbmQgZGl2aWRlIGludG8gcG9ydGlvbnMKUm9sbCBvdXQgZWFjaCBwb3J0aW9uIHRvIDEyLWluY2ggY2lyY2xlcwpUb3Agd2l0aCBjcnVzaGVkIHRvbWF0b2VzLCBtb3p6YXJlbGxhLCBhbmQgYmFzaWwKQmFrZSBhdCA0NzVceEIwRiAoMjQ1XHhCMEMpIGZvciAxMC0xMiBtaW51dGVzYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOmB0aXAtJHtzKzl9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiUHJvIHRpcDogRm9yIGFuIGF1dGhlbnRpYyB0YXN0ZSwgdXNlIGEgcGl6emEgc3RvbmUgYW5kIHByZWhlYXQgaXQgaW4gdGhlIG92ZW4gZm9yIGF0IGxlYXN0IDMwIG1pbnV0ZXMgYmVmb3JlIGJha2luZy4ifSx7aWQ6YGRpdmlkZXItJHtzKzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBzZXJ2aW5ncy0ke3MrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlNlcnZpbmdzOiA0IHBpenphcyB8IFByZXAgdGltZTogMiBob3VycyB8IENvb2sgdGltZTogMTIgbWludXRlcyJ9XX0sImdlbmVyYXRlUmVjaXBlQmxvY2tzIiksV0phPWkocz0+e2xldCBlPXt9O3JldHVybiBlLmJhc2ljPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1iYXNpYyIpLGUuYXJ0aWNsZT1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYXJ0aWNsZSIpLGUuZHJhZ0Ryb3A9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWRyYWdkcm9wIiksZS50dXRvcmlhbD1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItdHV0b3JpYWwiKSxlLm1lZXRpbmc9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLW1lZXRpbmciKSxlLnJlY2lwZT1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItcmVjaXBlIiksZS50ZWNobmljYWw9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXRlY2huaWNhbCIpLGUuZm9ybUludGVncmF0aW9uPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1mb3JtLWludGVncmF0aW9uIiksZS5wcm9ncmFtbWF0aWM9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXByb2dyYW1tYXRpYyIpLGUuZXhwb3J0RGVtbz1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZXhwb3J0IiksZX0sImluaXRpYWxpemVFZGl0b3JzIiksR0phPWkoKHMsZSk9PntsZXQgdD1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVwb3J0IiksYT1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVjaXBlIikscj1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tY2xlYXItZWRpdG9yIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhWSmEoKSl9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKFVKYSgpKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoW10pfSl9LCJzZXR1cFByb2dyYW1tYXRpY0RlbW8iKSxLSmE9aSgocyxlKT0+e2xldCB0PXMucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtYmxvY2tzIiksYT1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWh0bWwiKSxyPXMucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtbWFya2Rvd24iKSxuPXMucXVlcnlTZWxlY3RvcigiI2J0bi1zYXZlLXN0YXRlIiksbz1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tcmVzdG9yZS1zdGF0ZSIpLGw9bnVsbDt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBwPWUuZXhwb3J0QmxvY2tzKCk7Y29uc29sZS5sb2coIkV4cG9ydGVkIGJsb2NrczoiLHApLGFsZXJ0KGBFeHBvcnRlZCAke3AubGVuZ3RofSBibG9ja3MgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLmApfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgcD1lLmV4cG9ydEFzSHRtbCgpO2NvbnNvbGUubG9nKCJIVE1MIEV4cG9ydDoiLHApLGFsZXJ0KCJIVE1MIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4iKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IHA9ZS5leHBvcnRBc01hcmtkb3duKCk7Y29uc29sZS5sb2coIk1hcmtkb3duIEV4cG9ydDoiLHApLGFsZXJ0KCJNYXJrZG93biBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2w9ZS5leHBvcnRTdGF0ZSgpLGNvbnNvbGUubG9nKCJTYXZlZCBzdGF0ZToiLGwpLGFsZXJ0KCJFZGl0b3Igc3RhdGUgc2F2ZWQhIil9KSxvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2w/KGUuaW1wb3J0U3RhdGUobCksYWxlcnQoIkVkaXRvciBzdGF0ZSByZXN0b3JlZCEiKSk6YWxlcnQoIk5vIHNhdmVkIHN0YXRlIGZvdW5kLiBTYXZlIHN0YXRlIGZpcnN0ISIpfSl9LCJzZXR1cEV4cG9ydERlbW8iKSxZSmE9aSgocyxlLHQpPT57bGV0IGE9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctaHRtbC1vdXRwdXQiKSxyPXMucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3LWh0bWwiKTthJiZyJiZlJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudGV4dENvbnRlbnQ9ZS5nZXRWYWx1ZSgpLHIuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSk7bGV0IG49cy5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctbWFya2Rvd24tb3V0cHV0Iiksbz1zLnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1tYXJrZG93biIpO24mJm8mJnQmJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57by50ZXh0Q29udGVudD10LmdldFZhbHVlKCksby5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KX0sInNldHVwT3V0cHV0Rm9ybWF0RGVtbyIpLFpKYT1pKHM9PntzLmFydGljbGUmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJpbnRyby1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkludHJvZHVjdGlvbiB0byBNb2Rlcm4gV2ViIERldmVsb3BtZW50In0se2lkOiJpbnRyby1wYXJhLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik1vZGVybiB3ZWIgZGV2ZWxvcG1lbnQgaGFzIGV2b2x2ZWQgc2lnbmlmaWNhbnRseSBvdmVyIHRoZSBwYXN0IGRlY2FkZS4gSW4gdGhpcyBhcnRpY2xlLCB3ZSdsbCBleHBsb3JlIHRoZSBrZXkgdGVjaG5vbG9naWVzIGFuZCBiZXN0IHByYWN0aWNlcyB0aGF0IGRlZmluZSB3ZWIgZGV2ZWxvcG1lbnQgaW4gMjAyNC4ifSx7aWQ6InRlY2gtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJLZXkgVGVjaG5vbG9naWVzIn0se2lkOiJ0ZWNoLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YFR5cGVTY3JpcHQgLSBUeXBlLXNhZmUgSmF2YVNjcmlwdCBkZXZlbG9wbWVudApXZWIgQ29tcG9uZW50cyAtIE5hdGl2ZSBjb21wb25lbnQgbW9kZWwKRVMgTW9kdWxlcyAtIE1vZGVybiBtb2R1bGUgc3lzdGVtCldlYkFzc2VtYmx5IC0gSGlnaC1wZXJmb3JtYW5jZSBjb21wdXRpbmdgLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6InF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGJlc3Qgd2F5IHRvIHByZWRpY3QgdGhlIGZ1dHVyZSBpcyB0byBpbnZlbnQgaXQuIC0gQWxhbiBLYXkifSx7aWQ6ImV4YW1wbGUtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJDb2RlIEV4YW1wbGUifSx7aWQ6ImNvZGUtZXhhbXBsZS0iK0RhdGUubm93KCksdHlwZToiY29kZSIsY29udGVudDpgY2xhc3MgTW9kZXJuV2ViQXBwIGV4dGVuZHMgSFRNTEVsZW1lbnQgewogIGNvbnN0cnVjdG9yKCkgewogICAgc3VwZXIoKTsKICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pOwogIH0KICAKICBjb25uZWN0ZWRDYWxsYmFjaygpIHsKICAgIHRoaXMucmVuZGVyKCk7CiAgfQp9YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6ImphdmFzY3JpcHQifX1dO3MuYXJ0aWNsZS5pbXBvcnRCbG9ja3MoZSl9LDUwMCkscy5kcmFnRHJvcCYmc2V0VGltZW91dCgoKT0+e2xldCBlPVt7aWQ6ImRyYWctdGl0bGUtIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiRHJhZyAmIERyb3AgRGVtbyJ9LHtpZDoiZHJhZy1pbnRyby0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIGVkaXRvciBkZW1vbnN0cmF0ZXMgZHJhZyBhbmQgZHJvcCBmdW5jdGlvbmFsaXR5LiBUcnkgZHJhZ2dpbmcgdGhlc2UgYmxvY2tzIGFyb3VuZCEifSx7aWQ6ImRyYWctaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJIb3cgSXQgV29ya3MifSx7aWQ6ImRyYWctbGlzdC0iK0RhdGUubm93KCksdHlwZToibGlzdCIsY29udGVudDpgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZQpDbGljayBhbmQgaG9sZCB0aGUgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nCkRyYWcgdG8gcmVvcmRlciBibG9ja3MKUmVsZWFzZSB0byBkcm9wIGluIHRoZSBuZXcgcG9zaXRpb25gLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6ImRyYWctcXVvdGUtIitEYXRlLm5vdygpLHR5cGU6InF1b3RlIixjb250ZW50OiJUaGUgZHJhZyBhbmQgZHJvcCBmZWF0dXJlIG1ha2VzIGl0IGVhc3kgdG8gcmVvcmdhbml6ZSB5b3VyIGNvbnRlbnQgd2l0aG91dCBjdXR0aW5nIGFuZCBwYXN0aW5nLiJ9LHtpZDoiZHJhZy1kaXZpZGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6ImRyYWctZm9vdGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik5vdGU6IERpdmlkZXIgYmxvY2tzIGNhbm5vdCBiZSBkcmFnZ2VkLCBidXQgb3RoZXIgYmxvY2tzIGNhbiBiZSBtb3ZlZCBhcm91bmQgdGhlbS4ifV07cy5kcmFnRHJvcC5pbXBvcnRCbG9ja3MoZSl9LDYwMCl9LCJwb3B1bGF0ZUluaXRpYWxDb250ZW50IiksWmJhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IG5ldyBQcm9taXNlKHQ9PnNldFRpbWVvdXQodCw1MDApKTtsZXQgZT1XSmEocyk7ZS5wcm9ncmFtbWF0aWMmJkdKYShzLGUucHJvZ3JhbW1hdGljKSxlLmV4cG9ydERlbW8mJktKYShzLGUuZXhwb3J0RGVtbyksWUphKHMsZS5tZWV0aW5nLGUucmVjaXBlKSxaSmEoZSksY29uc29sZS5sb2coIldZU0lXWUcgRGVtbyBpbml0aWFsaXplZCB3aXRoIGVkaXRvcnM6IixPYmplY3Qua2V5cyhlKSl9fT4KICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMzJweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CiAgICAgIAogICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5wYW5lbC1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjb2xvcjogIzU1NTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlLWljb24gewogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYWFhOwogICAgICAgIH0KICAgICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ib3ggewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMTAyLCAyMDQsIDAuMik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4zKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtdGl0bGUgewogICAgICAgIG1hcmdpbjogMCAwIDEycHggMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dHMtdGl0bGUgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTgwcHgsIDFmcikpOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuc2hvcnRjdXQtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogIzU1NTsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWtleSB7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgICAgY29sb3I6ICNiYmI7CiAgICAgICAgfQogICAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgICAgIGNvbG9yOiAjZGRkOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzIwcHgsIDFmcikpOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICB9CgogICAgICAub3V0cHV0LWNhcmQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjA0KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LCAjMGYxNzJhKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1heC1oZWlnaHQ6IDI4MHB4OwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbdGhlbWU9J2RhcmsnXSkgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMDYpOwogICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjE1KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LCAjZjRmNGY1KTsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3LnZpc2libGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAub3V0cHV0LWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmOGZmOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnRpcHMtYm94IHN0cm9uZyB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgewogICAgICAgIG1hcmdpbjogOHB4IDAgMCAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLnRpcHMtbGlzdCBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZThlOGU4OwogICAgICAgIGJvcmRlci1jb2xvcjogI2NjYzsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuZGVtby1idXR0b24gewogICAgICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgICAgIGJvcmRlci1jb2xvcjogIzU1NTsKICAgICAgICAgIGNvbG9yOiAjZGRkOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZGVtby1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogIzQ0NDsKICAgICAgICAgIGJvcmRlci1jb2xvcjogIzY2NjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmJsb2NrcyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDIsIDIwNCwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NiwgMTc1LCA4MCwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQubWFya2Rvd24gewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxNTIsIDAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLnN0YXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1NiwgMzksIDE3NiwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgc3Ryb25nIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmJsb2NrcyBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5odG1sIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICM0Q0FGNTA7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICNGRjk4MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLnN0YXRlIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICM5QzI3QjA7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHAgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gXHV7MUY2ODB9IE1vZGVybiBXWVNJV1lHIEVkaXRvciJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBBIHBvd2VyZnVsIGJsb2NrLWJhc2VkIGVkaXRvciB3aXRoIHNsYXNoIGNvbW1hbmRzLCBrZXlib2FyZCBzaG9ydGN1dHMsIGFuZCBtdWx0aXBsZSBvdXRwdXQgZm9ybWF0cy4gCiAgICAgICAgICBQZXJmZWN0IGZvciBjb250ZW50IGNyZWF0aW9uLCBibG9nIHBvc3RzLCBkb2N1bWVudGF0aW9uLCBhbmQgbW9yZS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+U2xhc2ggY29tbWFuZHMgKC8pPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPktleWJvYXJkIHNob3J0Y3V0czwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5CbG9jay1iYXNlZCBlZGl0aW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkRyYWcgJiBkcm9wIHJlb3JkZXJpbmc8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+SFRNTCAmIE1hcmtkb3duIG91dHB1dDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EYXJrIG1vZGUgc3VwcG9ydDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5Nb2JpbGUgcmVzcG9uc2l2ZTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLWJhc2ljIgogICAgICAgICAgbGFiZWw9IlJpY2ggVGV4dCBFZGl0b3IiIAogICAgICAgICAgZGVzY3JpcHRpb249IlN0YXJ0IHR5cGluZyBvciB1c2UgJy8nIHRvIGluc2VydCBkaWZmZXJlbnQgYmxvY2sgdHlwZXMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgoKICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtYm94Ij4KICAgICAgICAgIDxoNCBjbGFzcz0ic2hvcnRjdXRzLXRpdGxlIj7ijKjvuI8gS2V5Ym9hcmQgU2hvcnRjdXRzPC9oND4KICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0cy1ncmlkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Lzwvc3Bhbj4gU2xhc2ggY29tbWFuZHMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiM8L3NwYW4+IEhlYWRpbmcgMQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+IyM8L3NwYW4+IEhlYWRpbmcgMgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+IyMjPC9zcGFuPiBIZWFkaW5nIDMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPj48L3NwYW4+IFF1b3RlCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij5cYFxgXGA8L3NwYW4+IENvZGUgYmxvY2sKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPio8L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi08L3NwYW4+IEJ1bGxldCBsaXN0CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4xLjwvc3Bhbj4gTnVtYmVyZWQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+LS0tPC9zcGFuPiBEaXZpZGVyCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBcdXsxRjRERH0gQmxvZyBQb3N0IEV4YW1wbGUifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgUGVyZmVjdCBmb3IgY3JlYXRpbmcgcmljaCBjb250ZW50IHdpdGggbXVsdGlwbGUgYmxvY2sgdHlwZXMuIAogICAgICAgICAgVGhlIGVkaXRvciBwcmVzZXJ2ZXMgZm9ybWF0dGluZyBhbmQgcHJvdmlkZXMgYSBjbGVhbiBlZGl0aW5nIGV4cGVyaWVuY2UuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLWFydGljbGUiCiAgICAgICAgICBsYWJlbD0iQmxvZyBQb3N0IENvbnRlbnQiIAogICAgICAgICAgZGVzY3JpcHRpb249IldyaXRlIHlvdXIgYXJ0aWNsZSB1c2luZyB2YXJpb3VzIGZvcm1hdHRpbmcgb3B0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBcdXsxRjUwMH0gRHJhZyAmIERyb3AgUmVvcmRlcmluZyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBFYXNpbHkgcmVhcnJhbmdlIHlvdXIgY29udGVudCBibG9ja3MgYnkgZHJhZ2dpbmcgdGhlbS4gCiAgICAgICAgICBIb3ZlciBvdmVyIGFueSBibG9jayB0byByZXZlYWwgdGhlIGRyYWcgaGFuZGxlIG9uIHRoZSBsZWZ0IHNpZGUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLWRyYWdkcm9wIgogICAgICAgICAgbGFiZWw9IkRyYWcgJiBEcm9wIERlbW8iIAogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSBkcmFnZ2luZyBibG9ja3MgdG8gcmVvcmRlciB0aGVtIC0gaG92ZXIgdG8gc2VlIGRyYWcgaGFuZGxlcyIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0idGlwcy1ib3giPgogICAgICAgICAgPHN0cm9uZz7wn5KhIFRpcHM6PC9zdHJvbmc+CiAgICAgICAgICA8dWwgY2xhc3M9InRpcHMtbGlzdCI+CiAgICAgICAgICAgIDxsaT5Ib3ZlciBvdmVyIGFueSBibG9jayB0byBzZWUgdGhlIGRyYWcgaGFuZGxlICjii67ii64pIG9uIHRoZSBsZWZ0PC9saT4KICAgICAgICAgICAgPGxpPkNsaWNrIGFuZCBob2xkIHRoZSBkcmFnIGhhbmRsZSB0byBzdGFydCBkcmFnZ2luZzwvbGk+CiAgICAgICAgICAgIDxsaT5CbHVlIGluZGljYXRvcnMgc2hvdyB3aGVyZSB0aGUgYmxvY2sgd2lsbCBiZSBkcm9wcGVkPC9saT4KICAgICAgICAgICAgPGxpPkRpdmlkZXIgYmxvY2tzIGNhbm5vdCBiZSBkcmFnZ2VkPC9saT4KICAgICAgICAgICAgPGxpPlRoZSBlZGl0b3IgbWFpbnRhaW5zIGZvY3VzIG9uIHRoZSBtb3ZlZCBibG9jayBhZnRlciBkcm9wcGluZzwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gXHV7MUY0REF9IFR1dG9yaWFsICYgRG9jdW1lbnRhdGlvbiJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDcmVhdGUgY29tcHJlaGVuc2l2ZSB0dXRvcmlhbHMgYW5kIGRvY3VtZW50YXRpb24gd2l0aCBjb2RlIGV4YW1wbGVzLCBsaXN0cywgYW5kIHN0cnVjdHVyZWQgY29udGVudC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItdHV0b3JpYWwiCiAgICAgICAgICBsYWJlbD0iR2l0IFR1dG9yaWFsIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGVwLWJ5LXN0ZXAgZ3VpZGUgd2l0aCBjb21tYW5kcyBhbmQgZXhwbGFuYXRpb25zIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgIHZhbHVlPSIjIEdpdCBUdXRvcmlhbCBmb3IgQmVnaW5uZXJzCgpHaXQgaXMgYSBkaXN0cmlidXRlZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIHRoYXQgaGVscHMgeW91IHRyYWNrIGNoYW5nZXMgaW4geW91ciBjb2RlIG92ZXIgdGltZS4gVGhpcyB0dXRvcmlhbCB3aWxsIGd1aWRlIHlvdSB0aHJvdWdoIHRoZSBiYXNpY3MuCgojIyBQcmVyZXF1aXNpdGVzCgpCZWZvcmUgc3RhcnRpbmcsIGVuc3VyZSB5b3UgaGF2ZToKCi0gR2l0IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbQotIEEgdGV4dCBlZGl0b3Igb3IgSURFCi0gQmFzaWMgY29tbWFuZCBsaW5lIGtub3dsZWRnZQoKIyMgR2V0dGluZyBTdGFydGVkCgojIyMgMS4gQ29uZmlndXJlIEdpdAoKRmlyc3QsIHNldCB1cCB5b3VyIGlkZW50aXR5OgoKXGBcYFxgYmFzaApnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAmcXVvdDtZb3VyIE5hbWUmcXVvdDsKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsICZxdW90O3lvdXIuZW1haWxAZXhhbXBsZS5jb20mcXVvdDsKXGBcYFxgCgojIyMgMi4gSW5pdGlhbGl6ZSBhIFJlcG9zaXRvcnkKCkNyZWF0ZSBhIG5ldyBHaXQgcmVwb3NpdG9yeToKClxgXGBcYGJhc2gKbWtkaXIgbXktcHJvamVjdApjZCBteS1wcm9qZWN0CmdpdCBpbml0ClxgXGBcYAoKIyMjIDMuIEJhc2ljIEdpdCBXb3JrZmxvdwoKIyMjIyBBZGRpbmcgRmlsZXMKCkNyZWF0ZSBhIGZpbGUgYW5kIGFkZCBpdCB0byBzdGFnaW5nOgoKXGBcYFxgYmFzaAplY2hvICZxdW90OyMgTXkgUHJvamVjdCZxdW90OyA+IFJFQURNRS5tZApnaXQgYWRkIFJFQURNRS5tZApcYFxgXGAKCiMjIyMgQ29tbWl0dGluZyBDaGFuZ2VzCgpcYFxgXGBiYXNoCmdpdCBjb21taXQgLW0gJnF1b3Q7SW5pdGlhbCBjb21taXQmcXVvdDsKXGBcYFxgCgo+ICoqQmVzdCBQcmFjdGljZToqKiBXcml0ZSBjbGVhciwgZGVzY3JpcHRpdmUgY29tbWl0IG1lc3NhZ2VzIHRoYXQgZXhwbGFpbiB3aGF0IGNoYW5nZXMgd2VyZSBtYWRlIGFuZCB3aHkuCgojIyMgNC4gV29ya2luZyB3aXRoIEJyYW5jaGVzCgpCcmFuY2hlcyBhbGxvdyB5b3UgdG8gd29yayBvbiBmZWF0dXJlcyBpbmRlcGVuZGVudGx5OgoKXGBcYFxgYmFzaAojIENyZWF0ZSBhbmQgc3dpdGNoIHRvIGEgbmV3IGJyYW5jaApnaXQgY2hlY2tvdXQgLWIgZmVhdHVyZS1icmFuY2gKCiMgTWFrZSBjaGFuZ2VzIGFuZCBjb21taXQKZ2l0IGFkZCAuCmdpdCBjb21taXQgLW0gJnF1b3Q7QWRkIG5ldyBmZWF0dXJlJnF1b3Q7CgojIFN3aXRjaCBiYWNrIHRvIG1haW4KZ2l0IGNoZWNrb3V0IG1haW4KCiMgTWVyZ2UgdGhlIGZlYXR1cmUKZ2l0IG1lcmdlIGZlYXR1cmUtYnJhbmNoClxgXGBcYAoKLS0tCgojIyBDb21tb24gQ29tbWFuZHMgUmVmZXJlbmNlCgp8IENvbW1hbmQgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKfCBcYGdpdCBzdGF0dXNcYCB8IENoZWNrIHJlcG9zaXRvcnkgc3RhdHVzIHwKfCBcYGdpdCBsb2dcYCB8IFZpZXcgY29tbWl0IGhpc3RvcnkgfAp8IFxgZ2l0IGRpZmZcYCB8IFNob3cgY2hhbmdlcyB8CnwgXGBnaXQgcHVsbFxgIHwgRmV0Y2ggYW5kIG1lcmdlIGNoYW5nZXMgfAp8IFxgZ2l0IHB1c2hcYCB8IFVwbG9hZCBjaGFuZ2VzIHRvIHJlbW90ZSB8CgojIyBOZXh0IFN0ZXBzCgoxLiBMZWFybiBhYm91dCByZW1vdGUgcmVwb3NpdG9yaWVzCjIuIEV4cGxvcmUgYWR2YW5jZWQgR2l0IGZlYXR1cmVzCjMuIFByYWN0aWNlIHdpdGggcmVhbCBwcm9qZWN0cwo0LiBDb250cmlidXRlIHRvIG9wZW4gc291cmNlCgoqKkhhcHB5IGNvZGluZyEqKiDwn5qAIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIFx1ezFGNTA0fSBPdXRwdXQgRm9ybWF0cyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDaG9vc2UgYmV0d2VlbiBIVE1MIGFuZCBNYXJrZG93biBvdXRwdXQgZm9ybWF0cyBkZXBlbmRpbmcgb24geW91ciBuZWVkcy4gCiAgICAgICAgICBQZXJmZWN0IGZvciBzdGF0aWMgc2l0ZSBnZW5lcmF0b3JzLCBkb2N1bWVudGF0aW9uIHN5c3RlbXMsIG9yIGFueSBjb250ZW50IG1hbmFnZW1lbnQgd29ya2Zsb3cuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgICAgICBpZD0iZWRpdG9yLW1lZXRpbmciCiAgICAgICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgTm90ZXMiIAogICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdHJ1Y3R1cmVkIG1lZXRpbmcgZG9jdW1lbnRhdGlvbiIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgICAgICAgdmFsdWU9IjxoMj5RNCBQbGFubmluZyBNZWV0aW5nPC9oMj48cD48c3Ryb25nPkRhdGU6PC9zdHJvbmc+IERlY2VtYmVyIDE1LCAyMDI0PGJyPjxzdHJvbmc+QXR0ZW5kZWVzOjwvc3Ryb25nPiBQcm9kdWN0IFRlYW0sIEVuZ2luZWVyaW5nLCBEZXNpZ248L3A+PGgzPkFnZW5kYSBJdGVtczwvaDM+PG9sPjxsaT5SZXZpZXcgUTMgYWNoaWV2ZW1lbnRzPC9saT48bGk+U2V0IFE0IG9iamVjdGl2ZXM8L2xpPjxsaT5SZXNvdXJjZSBhbGxvY2F0aW9uPC9saT48bGk+VGltZWxpbmUgZGlzY3Vzc2lvbjwvbGk+PC9vbD48aDM+S2V5IERlY2lzaW9uczwvaDM+PHVsPjxsaT5MYXVuY2ggbmV3IGRhc2hib2FyZCBmZWF0dXJlIGJ5IGVuZCBvZiBKYW51YXJ5PC9saT48bGk+SW5jcmVhc2UgZW5naW5lZXJpbmcgdGVhbSBieSAyIGRldmVsb3BlcnM8L2xpPjxsaT5JbXBsZW1lbnQgd2Vla2x5IGRlc2lnbiByZXZpZXdzPC9saT48L3VsPjxibG9ja3F1b3RlPiZxdW90O0ZvY3VzIG9uIHVzZXIgZXhwZXJpZW5jZSBpbXByb3ZlbWVudHMgYmFzZWQgb24gUTMgZmVlZGJhY2smcXVvdDsgLSBQcm9kdWN0IE1hbmFnZXI8L2Jsb2NrcXVvdGU+PGgzPkFjdGlvbiBJdGVtczwvaDM+PHVsPjxsaT5TYXJhaDogQ3JlYXRlIGRldGFpbGVkIHByb2plY3QgdGltZWxpbmU8L2xpPjxsaT5NaWtlOiBEcmFmdCB0ZWNobmljYWwgcmVxdWlyZW1lbnRzPC9saT48bGk+TGlzYTogU2NoZWR1bGUgdXNlciByZXNlYXJjaCBzZXNzaW9uczwvbGk+PC91bD48aHI+PHA+TmV4dCBtZWV0aW5nOiBKYW51YXJ5IDUsIDIwMjU8L3A+IgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1odG1sLW91dHB1dCIgY2xhc3M9ImRlbW8tYnV0dG9uIj5TaG93IEhUTUwgT3V0cHV0PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cHJlIGlkPSJvdXRwdXQtcHJldmlldy1odG1sIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1yZWNpcGUiCiAgICAgICAgICAgICAgbGFiZWw9IlJlY2lwZSBCbG9nIFBvc3QiIAogICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJGb29kIGJsb2cgd2l0aCBtaXhlZCBjb250ZW50IgogICAgICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICAgICAgdmFsdWU9IiMgVWx0aW1hdGUgQ2hvY29sYXRlIENoaXAgQ29va2llcwoKVGhlcmUncyBub3RoaW5nIHF1aXRlIGxpa2UgdGhlIHNtZWxsIG9mIGZyZXNobHkgYmFrZWQgY2hvY29sYXRlIGNoaXAgY29va2llcy4gVGhpcyByZWNpcGUgaGFzIGJlZW4gcGVyZmVjdGVkIG92ZXIgeWVhcnMgb2YgdGVzdGluZyEKCiMjIEluZ3JlZGllbnRzCgotIDLCvCBjdXBzIGFsbC1wdXJwb3NlIGZsb3VyCi0gMSB0c3AgYmFraW5nIHNvZGEKLSAxIHRzcCBzYWx0Ci0gMSBjdXAgYnV0dGVyLCBzb2Z0ZW5lZAotIMK+IGN1cCBncmFudWxhdGVkIHN1Z2FyCi0gwr4gY3VwIHBhY2tlZCBicm93biBzdWdhcgotIDIgbGFyZ2UgZWdncwotIDIgdHNwIHZhbmlsbGEgZXh0cmFjdAotIDIgY3VwcyBjaG9jb2xhdGUgY2hpcHMKCiMjIEluc3RydWN0aW9ucwoKIyMjIFN0ZXAgMTogUHJlcGFyYXRpb24KClByZWhlYXQgeW91ciBvdmVuIHRvICoqMzc1wrBGICgxOTDCsEMpKiouIFRoaXMgdGVtcGVyYXR1cmUgaXMgY3J1Y2lhbCBmb3IgYWNoaWV2aW5nIHRoZSBwZXJmZWN0IHRleHR1cmUuCgojIyMgU3RlcCAyOiBNaXggRHJ5IEluZ3JlZGllbnRzCgpJbiBhIG1lZGl1bSBib3dsLCB3aGlzayB0b2dldGhlcjoKCjEuIEZsb3VyCjIuIEJha2luZyBzb2RhCjMuIFNhbHQKCiMjIyBTdGVwIDM6IENyZWFtIEJ1dHRlciBhbmQgU3VnYXJzCgpcYFxgXGAKQ3JlYW0gYnV0dGVyIGFuZCBzdWdhcnMgZm9yIDMtNCBtaW51dGVzCnVudGlsIGxpZ2h0IGFuZCBmbHVmZnkKXGBcYFxgCgo+ICoqUHJvIHRpcDoqKiBSb29tIHRlbXBlcmF0dXJlIGluZ3JlZGllbnRzIG1peCBiZXR0ZXIgYW5kIGNyZWF0ZSBhIG1vcmUgdW5pZm9ybSBkb3VnaC4KCiMjIyBTdGVwIDQ6IEFkZCBXZXQgSW5ncmVkaWVudHMKCkJlYXQgaW4gZWdncyBvbmUgYXQgYSB0aW1lLCB0aGVuIGFkZCB2YW5pbGxhIGV4dHJhY3QuCgojIyMgU3RlcCA1OiBDb21iaW5lIGFuZCBCYWtlCgpHcmFkdWFsbHkgYmxlbmQgaW4gZmxvdXIgbWl4dHVyZSwgdGhlbiBzdGlyIGluIGNob2NvbGF0ZSBjaGlwcy4gRHJvcCByb3VuZGVkIHRhYmxlc3Bvb25zIG9udG8gdW5ncmVhc2VkIGNvb2tpZSBzaGVldHMuCgotLS0KCioqQmFraW5nIHRpbWU6KiogOS0xMSBtaW51dGVzIG9yIHVudGlsIGdvbGRlbiBicm93bgoKKipZaWVsZDoqKiBBYm91dCA1IGRvemVuIGNvb2tpZXMiCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zaG93LW1hcmtkb3duLW91dHB1dCIgY2xhc3M9ImRlbW8tYnV0dG9uIj5TaG93IE1hcmtkb3duIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctbWFya2Rvd24iIGNsYXNzPSJvdXRwdXQtcHJldmlldyIgYXJpYS1saXZlPSJwb2xpdGUiPjwvcHJlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBcdXsxRjNBOH0gQWR2YW5jZWQgRWRpdGluZyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDcmVhdGUgY29tcGxleCBkb2N1bWVudHMgd2l0aCBtaXhlZCBjb250ZW50IHR5cGVzLiBUaGUgZWRpdG9yIGhhbmRsZXMgYWxsIGZvcm1hdHRpbmcgc2VhbWxlc3NseS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItdGVjaG5pY2FsIgogICAgICAgICAgbGFiZWw9IlRlY2huaWNhbCBEb2N1bWVudGF0aW9uIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDcmVhdGUgdGVjaG5pY2FsIGRvY3Mgd2l0aCBjb2RlIGV4YW1wbGVzIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQiCiAgICAgICAgICB2YWx1ZT0iPGgxPkFQSSBEb2N1bWVudGF0aW9uPC9oMT48cD5XZWxjb21lIHRvIG91ciBBUEkgZG9jdW1lbnRhdGlvbi4gQmVsb3cgeW91J2xsIGZpbmQgZXhhbXBsZXMgb2YgaG93IHRvIHVzZSBvdXIgZW5kcG9pbnRzLjwvcD48aDI+QXV0aGVudGljYXRpb248L2gyPjxwPkFsbCBBUEkgcmVxdWVzdHMgcmVxdWlyZSBhdXRoZW50aWNhdGlvbiB1c2luZyBhbiBBUEkga2V5OjwvcD48cHJlPjxjb2RlPkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVk8L2NvZGU+PC9wcmU+PGgyPkVuZHBvaW50czwvaDI+PGgzPkdFVCAvdXNlcnM8L2gzPjxwPlJldHJpZXZlIGEgbGlzdCBvZiB1c2VycyBmcm9tIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+Y3VybCAtWCBHRVQgaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMgXFwKICAtSCAmcXVvdDtBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJnF1b3Q7PC9jb2RlPjwvcHJlPjxibG9ja3F1b3RlPk5vdGU6IFJhdGUgbGltaXRpbmcgYXBwbGllcyB0byBhbGwgZW5kcG9pbnRzLiBZb3UgY2FuIG1ha2UgdXAgdG8gMTAwIHJlcXVlc3RzIHBlciBtaW51dGUuPC9ibG9ja3F1b3RlPjxoMz5QT1NUIC91c2VyczwvaDM+PHA+Q3JlYXRlIGEgbmV3IHVzZXIgaW4gdGhlIHN5c3RlbS48L3A+PHByZT48Y29kZT57CiAgJnF1b3Q7bmFtZSZxdW90OzogJnF1b3Q7Sm9obiBEb2UmcXVvdDssCiAgJnF1b3Q7ZW1haWwmcXVvdDs6ICZxdW90O2pvaG5AZXhhbXBsZS5jb20mcXVvdDssCiAgJnF1b3Q7cm9sZSZxdW90OzogJnF1b3Q7dXNlciZxdW90Owp9PC9jb2RlPjwvcHJlPjxocj48cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHJlZmVyIHRvIG91ciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLjwvcD4iCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gXHUyNjk5XHVGRTBGIEZvcm0gSW50ZWdyYXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgU2VhbWxlc3NseSBpbnRlZ3JhdGVzIHdpdGggZGVlcy1mb3JtIGZvciBjb21wbGV0ZSBmb3JtIHNvbHV0aW9ucy4gCiAgICAgICAgICBBbGwgc3RhbmRhcmQgZm9ybSBmZWF0dXJlcyBsaWtlIHZhbGlkYXRpb24sIHJlcXVpcmVkIGZpZWxkcywgYW5kIGRhdGEgYmluZGluZyB3b3JrIG91dCBvZiB0aGUgYm94LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgVGl0bGUiIAogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgdmFsdWU9IkhvdyB0byBCdWlsZCBNb2Rlcm4gV2ViIEFwcGxpY2F0aW9ucyIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgICAgaWQ9ImVkaXRvci1mb3JtLWludGVncmF0aW9uIgogICAgICAgICAgICBsYWJlbD0iQXJ0aWNsZSBDb250ZW50IiAKICAgICAgICAgICAgZGVzY3JpcHRpb249IldyaXRlIHlvdXIgYXJ0aWNsZSBjb250ZW50IGhlcmUiCiAgICAgICAgICAgIHJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgIGxhYmVsPSJUYWdzIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iQWRkIHJlbGV2YW50IHRhZ3MgZm9yIHlvdXIgYXJ0aWNsZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjguIFx1ezFGOUU5fSBQcm9ncmFtbWF0aWMgQmxvY2sgQ3JlYXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbnRlbnQgcHJvZ3JhbW1hdGljYWxseSB1c2luZyB0aGUgYmxvY2sgQVBJIGZvciBkeW5hbWljIGRvY3VtZW50IGdlbmVyYXRpb24uCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcKICAgICAgICAgIGlkPSJlZGl0b3ItcHJvZ3JhbW1hdGljIgogICAgICAgICAgbGFiZWw9IlByb2dyYW1tYXRpY2FsbHkgR2VuZXJhdGVkIENvbnRlbnQiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBjb250ZW50IHdhcyBjcmVhdGVkIHVzaW5nIHRoZSBpbXBvcnRCbG9ja3MgQVBJIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWdlbmVyYXRlLXJlcG9ydCIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgR2VuZXJhdGUgUmVwb3J0CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWdlbmVyYXRlLXJlY2lwZSIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgR2VuZXJhdGUgUmVjaXBlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWNsZWFyLWVkaXRvciIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgQ2xlYXIgRWRpdG9yCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIFx1ezFGNEU0fSBFeHBvcnQvSW1wb3J0IEZlYXR1cmVzIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFRoZSBXWVNJV1lHIGVkaXRvciBwcm92aWRlcyBtdWx0aXBsZSBleHBvcnQgZm9ybWF0cyBhbmQgbG9zc2xlc3Mgc2F2ZS9yZXN0b3JlIGNhcGFiaWxpdGllcyBmb3IgbWF4aW11bSBmbGV4aWJpbGl0eS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIGJsb2NrcyI+CiAgICAgICAgICAgIDxzdHJvbmc+TG9zc2xlc3MgQmxvY2tzPC9zdHJvbmc+CiAgICAgICAgICAgIDxwPkV4cG9ydCBhbmQgaW1wb3J0IHJhdyBibG9jayBzdHJ1Y3R1cmUgZm9yIHBlcmZlY3Qgcm91bmQtdHJpcCBlZGl0aW5nPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIGh0bWwiPgogICAgICAgICAgICA8c3Ryb25nPkhUTUwgRXhwb3J0PC9zdHJvbmc+CiAgICAgICAgICAgIDxwPkdldCBjbGVhbiwgc2VtYW50aWMgSFRNTCByZWdhcmRsZXNzIG9mIG91dHB1dCBmb3JtYXQgc2V0dGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBtYXJrZG93biI+CiAgICAgICAgICAgIDxzdHJvbmc+TWFya2Rvd24gRXhwb3J0PC9zdHJvbmc+CiAgICAgICAgICAgIDxwPkV4cG9ydCBhcyBNYXJrZG93biBmb3IgZG9jcywgUkVBRE1FcywgYW5kIHN0YXRpYyBzaXRlczwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBzdGF0ZSI+CiAgICAgICAgICAgIDxzdHJvbmc+U3RhdGUgTWFuYWdlbWVudDwvc3Ryb25nPgogICAgICAgICAgICA8cD5TYXZlIGFuZCByZXN0b3JlIGNvbXBsZXRlIGVkaXRvciBzdGF0ZSBpbmNsdWRpbmcgc2V0dGluZ3M8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLWV4cG9ydCIKICAgICAgICAgIGxhYmVsPSJFeHBvcnQgRGVtbyBFZGl0b3IiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVHJ5IHRoZSBleHBvcnQgYnV0dG9ucyBiZWxvdyB0byBzZWUgZGlmZmVyZW50IG91dHB1dCBmb3JtYXRzIgogICAgICAgICAgdmFsdWU9IjxoMT5Tb2Z0d2FyZSBSZWxlYXNlIE5vdGVzPC9oMT48cD48c3Ryb25nPlZlcnNpb24gMi41LjA8L3N0cm9uZz4gLSBSZWxlYXNlZCBEZWNlbWJlciAxNSwgMjAyNDwvcD48aDI+8J+OiSBOZXcgRmVhdHVyZXM8L2gyPjx1bD48bGk+QWRkZWQgZGFyayBtb2RlIHN1cHBvcnQgYWNyb3NzIGFsbCBjb21wb25lbnRzPC9saT48bGk+SW1wbGVtZW50ZWQgcmVhbC10aW1lIGNvbGxhYm9yYXRpb24gZmVhdHVyZXM8L2xpPjxsaT5OZXcgZGFzaGJvYXJkIGFuYWx5dGljcyB3aWRnZXRzPC9saT48bGk+RXhwb3J0IGZ1bmN0aW9uYWxpdHkgZm9yIGFsbCByZXBvcnQgdHlwZXM8L2xpPjwvdWw+PGgyPvCfkJsgQnVnIEZpeGVzPC9oMj48dWw+PGxpPkZpeGVkIG1lbW9yeSBsZWFrIGluIGRhdGEgcHJvY2Vzc2luZyBtb2R1bGU8L2xpPjxsaT5SZXNvbHZlZCBhdXRoZW50aWNhdGlvbiB0aW1lb3V0IGlzc3VlczwvbGk+PGxpPkNvcnJlY3RlZCB0aW1lem9uZSBoYW5kbGluZyBpbiBzY2hlZHVsZWQgdGFza3M8L2xpPjwvdWw+PGgyPuKaoSBQZXJmb3JtYW5jZSBJbXByb3ZlbWVudHM8L2gyPjxibG9ja3F1b3RlPlBhZ2UgbG9hZCB0aW1lcyByZWR1Y2VkIGJ5IDQwJSB0aHJvdWdoIGxhenkgbG9hZGluZyBhbmQgY29kZSBzcGxpdHRpbmc8L2Jsb2NrcXVvdGU+PGgyPvCflKcgVGVjaG5pY2FsIERldGFpbHM8L2gyPjxwcmU+PGNvZGU+Ly8gTmV3IEFQSSBlbmRwb2ludCBmb3IgYmF0Y2ggb3BlcmF0aW9ucwpQT1NUIC9hcGkvdjIvYmF0Y2gKewogICZxdW90O29wZXJhdGlvbnMmcXVvdDs6IFsKICAgIHsgJnF1b3Q7bWV0aG9kJnF1b3Q7OiAmcXVvdDtHRVQmcXVvdDssICZxdW90O3BhdGgmcXVvdDs6ICZxdW90Oy91c2Vycy8xMjMmcXVvdDsgfSwKICAgIHsgJnF1b3Q7bWV0aG9kJnF1b3Q7OiAmcXVvdDtQVVQmcXVvdDssICZxdW90O3BhdGgmcXVvdDs6ICZxdW90Oy9zZXR0aW5ncyZxdW90OywgJnF1b3Q7Ym9keSZxdW90Ozogey4uLn0gfQogIF0KfTwvY29kZT48L3ByZT48aDI+8J+SoSBNaWdyYXRpb24gR3VpZGU8L2gyPjxvbD48bGk+VXBkYXRlIHlvdXIgZGVwZW5kZW5jaWVzIHRvIHRoZSBsYXRlc3QgdmVyc2lvbnM8L2xpPjxsaT5SdW4gZGF0YWJhc2UgbWlncmF0aW9uczogPGNvZGU+bnBtIHJ1biBtaWdyYXRlPC9jb2RlPjwvbGk+PGxpPkNsZWFyIGNhY2hlOiA8Y29kZT5ucG0gcnVuIGNhY2hlOmNsZWFyPC9jb2RlPjwvbGk+PGxpPlJlc3RhcnQgYWxsIHNlcnZpY2VzPC9saT48L29sPjxocj48cD5Gb3IgcXVlc3Rpb25zIG9yIGlzc3VlcywgcGxlYXNlIGNvbnRhY3QgdGhlIGRldmVsb3BtZW50IHRlYW0gb3IgZmlsZSBhIHRpY2tldCBpbiBvdXIgaXNzdWUgdHJhY2tlci48L3A+IgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1ibG9ja3MiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBCbG9ja3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhwb3J0LWh0bWwiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBIVE1MCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1tYXJrZG93biIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgRXhwb3J0IGFzIE1hcmtkb3duCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNhdmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFNhdmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tcmVzdG9yZS1zdGF0ZSIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgUmVzdG9yZSBTdGF0ZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBMbD1nKCgpPT57fSk7dmFyIElyLFpnPWcoKCk9PntMbCgpO0lyPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdTaG9ydGN1dHMiKX1zdGF0aWMgSEVBRElOR19QQVRURVJOUz1be3BhdHRlcm46L14jW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMSJ9LHtwYXR0ZXJuOi9eIyNbXHNcdTAwQTBdJC8sdHlwZToiaGVhZGluZy0yIn0se3BhdHRlcm46L14jIyNbXHNcdTAwQTBdJC8sdHlwZToiaGVhZGluZy0zIn1dO3N0YXRpYyBMSVNUX1BBVFRFUk5TPVt7cGF0dGVybjovXlsqLV1bXHNcdTAwQTBdJC8sdHlwZToiYnVsbGV0In0se3BhdHRlcm46L14oXGQrKVwuW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifSx7cGF0dGVybjovXihcZCspXClbXHNcdTAwQTBdJC8sdHlwZToib3JkZXJlZCJ9XTtzdGF0aWMgUVVPVEVfUEFUVEVSTj0vXj5bXHNcdTAwQTBdJC87c3RhdGljIENPREVfUEFUVEVSTj0vXmBgYCQvO3N0YXRpYyBESVZJREVSX1BBVFRFUk5TPVsiLS0tIiwiKioqIiwiX19fIl07c3RhdGljIGNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpe2ZvcihsZXR7cGF0dGVybjp0LHR5cGU6YX1vZiB0aGlzLkhFQURJTkdfUEFUVEVSTlMpaWYodC50ZXN0KGUpKXJldHVybnt0eXBlOmF9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja0xpc3RTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46dCx0eXBlOmF9b2YgdGhpcy5MSVNUX1BBVFRFUk5TKWlmKHQudGVzdChlKSlyZXR1cm57dHlwZToibGlzdCIsbGlzdFR5cGU6YX07cmV0dXJuIG51bGx9c3RhdGljIGNoZWNrUXVvdGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5RVU9URV9QQVRURVJOLnRlc3QoZSl9c3RhdGljIGNoZWNrQ29kZVNob3J0Y3V0KGUpe3JldHVybiB0aGlzLkNPREVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0RpdmlkZXJTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5ESVZJREVSX1BBVFRFUk5TLmluY2x1ZGVzKGUpfXN0YXRpYyBnZXRTbGFzaE1lbnVJdGVtcygpe3JldHVyblt7dHlwZToicGFyYWdyYXBoIixsYWJlbDoiUGFyYWdyYXBoIixpY29uOiJsdWNpZGU6cGlsY3JvdyJ9LHt0eXBlOiJoZWFkaW5nLTEiLGxhYmVsOiJIZWFkaW5nIDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSJ9LHt0eXBlOiJoZWFkaW5nLTIiLGxhYmVsOiJIZWFkaW5nIDIiLGljb246Imx1Y2lkZTpoZWFkaW5nMiJ9LHt0eXBlOiJoZWFkaW5nLTMiLGxhYmVsOiJIZWFkaW5nIDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyJ9LHt0eXBlOiJxdW90ZSIsbGFiZWw6IlF1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUifSx7dHlwZToiY29kZSIsbGFiZWw6IkNvZGUgQmxvY2siLGljb246Imx1Y2lkZTpmaWxlQ29kZSJ9LHt0eXBlOiJsaXN0IixsYWJlbDoiQnVsbGV0IExpc3QiLGljb246Imx1Y2lkZTpsaXN0In0se3R5cGU6ImltYWdlIixsYWJlbDoiSW1hZ2UiLGljb246Imx1Y2lkZTppbWFnZSJ9LHt0eXBlOiJkaXZpZGVyIixsYWJlbDoiRGl2aWRlciIsaWNvbjoibHVjaWRlOm1pbnVzIn0se3R5cGU6InlvdXR1YmUiLGxhYmVsOiJZb3VUdWJlIixpY29uOiJsdWNpZGU6eW91dHViZSJ9LHt0eXBlOiJtYXJrZG93biIsbGFiZWw6Ik1hcmtkb3duIixpY29uOiJsdWNpZGU6ZmlsZVRleHQifSx7dHlwZToiaHRtbCIsbGFiZWw6IkhUTUwiLGljb246Imx1Y2lkZTpjb2RlIn0se3R5cGU6ImF0dGFjaG1lbnQiLGxhYmVsOiJGaWxlIEF0dGFjaG1lbnQiLGljb246Imx1Y2lkZTpwYXBlcmNsaXAifV19c3RhdGljIGdlbmVyYXRlQmxvY2tJZCgpe3JldHVybmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YH19fSk7dmFyIGt4LHoyLHdudCxrbnQ9ZygoKT0+e3BlKCk7R24oKTtHYSgpO0xsKCk7WmcoKTtodCgpO2t4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6Mj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sd250PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zbGFzaC1tZW51IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTbGFzaE1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W1koKV0sYz1bWSgpXSx4PVtZKCldLHk9W1koKV0sa3godGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ2aXNpYmxlImluIF8sImhhcyIpLGdldDppKF89Pl8udmlzaWJsZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnZpc2libGU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGt4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InBvc2l0aW9uImluIF8sImhhcyIpLGdldDppKF89Pl8ucG9zaXRpb24sImdldCIpLHNldDppKChfLE8pPT57Xy5wb3NpdGlvbj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksa3godGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImZpbHRlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmZpbHRlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmZpbHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksa3godGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZEluZGV4ImluIF8sImhhcyIpLGdldDppKF89Pl8uc2VsZWN0ZWRJbmRleCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkSW5kZXg9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLGt4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ibWVudVpJbmRleCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChfLE8pPT57Xy5tZW51WkluZGV4PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxreChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBpbnN0YW5jZTtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gTi5pbnN0YW5jZXx8KE4uaW5zdGFuY2U9bmV3IE4sZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChOLmluc3RhbmNlKSksTi5pbnN0YW5jZX0jZT16Mih0aGlzLG8sITEpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZpc2libGUoQyl7dGhpcy4jZT1DfSN0PSh6Mih0aGlzLGwpLHoyKHRoaXMsZCx7eDowLHk6MH0pKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oQyl7dGhpcy4jdD1DfSNhPSh6Mih0aGlzLHUpLHoyKHRoaXMsYiwiIikpO2dldCBmaWx0ZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsdGVyKEMpe3RoaXMuI2E9Q30jcz0oejIodGhpcyx2KSx6Mih0aGlzLG0sMCkpO2dldCBzZWxlY3RlZEluZGV4KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkSW5kZXgoQyl7dGhpcy4jcz1DfSNpPSh6Mih0aGlzLGYpLHoyKHRoaXMsTSwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBtZW51WkluZGV4KEMpe3RoaXMuI2k9Q31jYWxsYmFjaz0oejIodGhpcyx6KSxudWxsKTtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIsCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIgLmljb24sCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2lmKCF0aGlzLnZpc2libGUpcmV0dXJuIHdgYDt0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKTtsZXQgQz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUiIAogICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucG9zaXRpb24ueH1weDsgdG9wOiAke3RoaXMucG9zaXRpb24ueX1weDsiCiAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgIGRhdGEtbWVudS10eXBlPSJzbGFzaCIKICAgICAgPgogICAgICAgICR7Qy5tYXAoKF8sTyk9PndgCiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2xhc2gtbWVudS1pdGVtICR7Tz09PXRoaXMuc2VsZWN0ZWRJbmRleD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgZGF0YS1pdGVtLXR5cGU9IiR7Xy50eXBlfSIKICAgICAgICAgICAgZGF0YS1pdGVtLWluZGV4PSIke099IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJpY29uIiAuaWNvbj0iJHtfLmljb259IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3Bhbj4ke18ubGFiZWx9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRGaWx0ZXJlZE1lbnVJdGVtcygpe3JldHVybiBJci5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihfPT50aGlzLmZpbHRlcj09PSIifHxfLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSkpfXNlbGVjdEl0ZW0oQyl7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayhDKSx0aGlzLmhpZGUoKX1zaG93KEMsXyl7dGhpcy5wb3NpdGlvbj1DLHRoaXMuY2FsbGJhY2s9Xyx0aGlzLmZpbHRlcj0iIix0aGlzLnNlbGVjdGVkSW5kZXg9MCx0aGlzLm1lbnVaSW5kZXg9X2EuZ2V0TmV4dFpJbmRleCgpLF9hLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx0aGlzLnZpc2libGU9ITB9aGlkZSgpe3RoaXMudmlzaWJsZT0hMSx0aGlzLmNhbGxiYWNrPW51bGwsdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsX2EudW5yZWdpc3Rlcih0aGlzKX11cGRhdGVGaWx0ZXIoQyl7dGhpcy5maWx0ZXI9Qyx0aGlzLnNlbGVjdGVkSW5kZXg9MH1uYXZpZ2F0ZShDKXtsZXQgXz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7Qz09PSJkb3duIj90aGlzLnNlbGVjdGVkSW5kZXg9KHRoaXMuc2VsZWN0ZWRJbmRleCsxKSVfLmxlbmd0aDp0aGlzLnNlbGVjdGVkSW5kZXg9dGhpcy5zZWxlY3RlZEluZGV4PT09MD9fLmxlbmd0aC0xOnRoaXMuc2VsZWN0ZWRJbmRleC0xfXNlbGVjdEN1cnJlbnQoKXtsZXQgQz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7Q1t0aGlzLnNlbGVjdGVkSW5kZXhdJiZ0aGlzLnNlbGVjdEl0ZW0oQ1t0aGlzLnNlbGVjdGVkSW5kZXhdLnR5cGUpfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLEM9PntsZXQgXz1DLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO08mJk8uY29udGFpbnMoXy50YXJnZXQpJiYoXy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixDPT57bGV0IF89QywkPV8udGFyZ2V0LmNsb3Nlc3QoIi5zbGFzaC1tZW51LWl0ZW0iKTtpZigkKXtfLnByZXZlbnREZWZhdWx0KCksXy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgRT0kLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLXR5cGUiKTtFJiZ0aGlzLnNlbGVjdEl0ZW0oRSl9fSksdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLEM9PntsZXQgJD1DLnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoJCl7bGV0IEU9cGFyc2VJbnQoJC5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS1pbmRleCIpfHwiMCIsMTApO3RoaXMuc2VsZWN0ZWRJbmRleD1FfX0sITApLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsQz0+e2xldCBfPUMsTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zbGFzaC1tZW51Iik7TyYmTy5jb250YWlucyhfLnRhcmdldCkmJihfLnByZXZlbnREZWZhdWx0KCksXy5zdG9wUHJvcGFnYXRpb24oKSl9LCEwKX1zdGF0aWN7ejIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyICR0LFhkPWcoKCk9PnskdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnU2VsZWN0aW9uIil9c3RhdGljIGdldFNlbGVjdGlvbkluZm8oLi4uZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGNvbnNvbGUubG9nKCJXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8gLSBzZWxlY3Rpb246Iix0LCJyYW5nZUNvdW50OiIsdD8ucmFuZ2VDb3VudCksIXQpcmV0dXJuIG51bGw7aWYoImdldENvbXBvc2VkUmFuZ2VzImluIHQmJnR5cGVvZiB0LmdldENvbXBvc2VkUmFuZ2VzPT0iZnVuY3Rpb24iKXtjb25zb2xlLmxvZygiVXNpbmcgZ2V0Q29tcG9zZWRSYW5nZXMgd2l0aCIsZS5sZW5ndGgsInNoYWRvdyByb290cyIpO3RyeXtsZXQgYT10LmdldENvbXBvc2VkUmFuZ2VzKHtzaGFkb3dSb290czplfSk7aWYoY29uc29sZS5sb2coImdldENvbXBvc2VkUmFuZ2VzIHJldHVybmVkIixhLmxlbmd0aCwicmFuZ2VzIiksYS5sZW5ndGg+MCl7bGV0IHI9YVswXTtyZXR1cm57c3RhcnRDb250YWluZXI6ci5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpyLnN0YXJ0T2Zmc2V0LGVuZENvbnRhaW5lcjpyLmVuZENvbnRhaW5lcixlbmRPZmZzZXQ6ci5lbmRPZmZzZXQsY29sbGFwc2VkOnIuY29sbGFwc2VkfX19Y2F0Y2goYSl7Y29uc29sZS53YXJuKCJnZXRDb21wb3NlZFJhbmdlcyBmYWlsZWQsIGZhbGxpbmcgYmFjayB0byBnZXRSYW5nZUF0OiIsYSl9fWVsc2UgY29uc29sZS5sb2coImdldENvbXBvc2VkUmFuZ2VzIG5vdCBhdmFpbGFibGUsIHVzaW5nIGZhbGxiYWNrIik7aWYodC5yYW5nZUNvdW50PjApe2xldCBhPXQuZ2V0UmFuZ2VBdCgwKTtyZXR1cm57c3RhcnRDb250YWluZXI6YS5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDphLnN0YXJ0T2Zmc2V0LGVuZENvbnRhaW5lcjphLmVuZENvbnRhaW5lcixlbmRPZmZzZXQ6YS5lbmRPZmZzZXQsY29sbGFwc2VkOmEuY29sbGFwc2VkfX1yZXR1cm4gbnVsbH1zdGF0aWMgaXNTZWxlY3Rpb25JbkVsZW1lbnQoZSx0KXtsZXQgYT10P3RoaXMuZ2V0U2VsZWN0aW9uSW5mbyh0KTp0aGlzLmdldFNlbGVjdGlvbkluZm8oKTtyZXR1cm4gYT9lLmNvbnRhaW5zKGEuc3RhcnRDb250YWluZXIpfHxlLmNvbnRhaW5zKGEuZW5kQ29udGFpbmVyKTohMX1zdGF0aWMgZ2V0U2VsZWN0ZWRUZXh0KCl7bGV0IGU9d2luZG93LmdldFNlbGVjdGlvbigpO3JldHVybiBlP2UudG9TdHJpbmcoKToiIn1zdGF0aWMgY3JlYXRlUmFuZ2VGcm9tSW5mbyhlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB0LnNldFN0YXJ0KGUuc3RhcnRDb250YWluZXIsZS5zdGFydE9mZnNldCksdC5zZXRFbmQoZS5lbmRDb250YWluZXIsZS5lbmRPZmZzZXQpLHR9c3RhdGljIHNldFNlbGVjdGlvbkZyb21SYW5nZShlKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7dCYmKHQucmVtb3ZlQWxsUmFuZ2VzKCksdC5hZGRSYW5nZShlKSl9c3RhdGljIGdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGUsLi4udCl7bGV0IGE9dC5sZW5ndGg+MD90aGlzLmdldFNlbGVjdGlvbkluZm8oLi4udCk6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7aWYoIWF8fCFhLmNvbGxhcHNlZClyZXR1cm4gbnVsbDt0cnl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihyLnNlbGVjdE5vZGVDb250ZW50cyhlKSx0aGlzLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUsYS5zdGFydENvbnRhaW5lcikpcmV0dXJuIHIuc2V0RW5kKGEuc3RhcnRDb250YWluZXIsYS5zdGFydE9mZnNldCksci50b1N0cmluZygpLmxlbmd0aDt7bGV0IG89ZS50ZXh0Q29udGVudHx8IiIsbD1hLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50fHwiIjtyZXR1cm4gYS5zdGFydE9mZnNldD09PTA/MDphLnN0YXJ0T2Zmc2V0PT09bC5sZW5ndGg/by5sZW5ndGg6KGNvbnNvbGUud2FybigiU2VsZWN0aW9uIGNvbnRhaW5lciBub3Qgd2l0aGluIGVsZW1lbnQsIHVzaW5nIHRleHQgbWF0Y2hpbmcgZmFsbGJhY2siKSxhLnN0YXJ0T2Zmc2V0KX19Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUud2FybigiRmFpbGVkIHRvIGdldCBjdXJzb3IgcG9zaXRpb246IixyKSxudWxsfX1zdGF0aWMgZ2V0Q3Vyc29yUG9zaXRpb25Gcm9tUG9pbnQoZSx0LGEsLi4ucil7aWYoImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQmJmRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpe2xldCBuPW51bGw7dHJ5e249ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHQsLi4ucil9Y2F0Y2h7bj1kb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KGUsdCl9aWYobiYmYS5jb250YWlucyhuLm9mZnNldE5vZGUpKXJldHVybiB0aGlzLmdldE9mZnNldEluRWxlbWVudChuLm9mZnNldE5vZGUsbi5vZmZzZXQsYSl9aWYoImNhcmV0UmFuZ2VGcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBuPWRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoZSx0KTtpZihuJiZhLmNvbnRhaW5zKG4uc3RhcnRDb250YWluZXIpKXJldHVybiB0aGlzLmdldE9mZnNldEluRWxlbWVudChuLnN0YXJ0Q29udGFpbmVyLG4uc3RhcnRPZmZzZXQsYSl9cmV0dXJuIG51bGx9c3RhdGljIGdldE9mZnNldEluRWxlbWVudChlLHQsYSl7bGV0IHI9MCxuPSExLG89ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihhLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLGw7Zm9yKDtsPW8ubmV4dE5vZGUoKTspaWYobD09PWUpe3IrPXQsbj0hMDticmVha31lbHNlIHIrPWwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gbj9yOjB9c3RhdGljIHNldEN1cnNvclBvc2l0aW9uKGUsdCl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLHI9MCxuPW51bGwsbz0wO2Zvcig7YS5uZXh0Tm9kZSgpOyl7bGV0IGw9YS5jdXJyZW50Tm9kZSxwPWwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihyK3A+PXQpe249bCxvPXQtcjticmVha31yKz1wfWlmKG4pe2xldCBsPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bC5zZXRTdGFydChuLG8pLGwuY29sbGFwc2UoITApLHRoaXMuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKGwpfX1zdGF0aWMgY29udGFpbnNBY3Jvc3NTaGFkb3dET00oZSx0KXtpZighZXx8IXQpcmV0dXJuITE7bGV0IGE9dDtmb3IoO2E7KXtpZihhPT09ZSlyZXR1cm4hMDtpZihhLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiZhLmhvc3Qpe2xldCByPWE7aWYoci5jb250YWlucyhlKSlyZXR1cm4hMTthPXIuaG9zdH1lbHNlIGE9YS5wYXJlbnROb2RlfXJldHVybiExfX19KTt2YXIgbDQsU250PWcoKCk9PntwZSgpO1hkKCk7bDQ9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Zvcm1hdHRpbmciKX1zdGF0aWMgZm9ybWF0QnV0dG9ucz1be2NvbW1hbmQ6ImJvbGQiLGljb246IkIiLGxhYmVsOiJCb2xkIixzaG9ydGN1dDoiXHUyMzE4QiJ9LHtjb21tYW5kOiJpdGFsaWMiLGljb246IkkiLGxhYmVsOiJJdGFsaWMiLHNob3J0Y3V0OiJcdTIzMThJIn0se2NvbW1hbmQ6InVuZGVybGluZSIsaWNvbjoiVSIsbGFiZWw6IlVuZGVybGluZSIsc2hvcnRjdXQ6Ilx1MjMxOFUifSx7Y29tbWFuZDoic3RyaWtlVGhyb3VnaCIsaWNvbjoiU1x1MDMzNiIsbGFiZWw6IlN0cmlrZXRocm91Z2gifSx7Y29tbWFuZDoiY29kZSIsaWNvbjoieyB9IixsYWJlbDoiSW5saW5lIENvZGUifSx7Y29tbWFuZDoibGluayIsaWNvbjoiXHV7MUY1MTd9IixsYWJlbDoiTGluayIsc2hvcnRjdXQ6Ilx1MjMxOEsifV07c3RhdGljIHJlbmRlckZvcm1hdHRpbmdNZW51KGUsdCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9InRvcDogJHtlLnl9cHg7IGxlZnQ6ICR7ZS54fXB4OyIKICAgICAgICBAbW91c2Vkb3duPSIke2E9PnthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX19IgogICAgICAgIEBjbGljaz0iJHthPT5hLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgPgogICAgICAgICR7dGhpcy5mb3JtYXRCdXR0b25zLm1hcChhPT53YAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHthLmNvbW1hbmR9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnQoYS5jb21tYW5kKX0iCiAgICAgICAgICAgIHRpdGxlPSIke2EubGFiZWx9JHthLnNob3J0Y3V0P2AgKCR7YS5zaG9ydGN1dH0pYDoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke2EuY29tbWFuZD09PSJjb2RlIj8iY29kZS1pY29uIjoiIn0iPiR7YS5pY29ufTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljIGFwcGx5Rm9ybWF0KGUsdCxhLHIpe2xldCBuO2lmKGEpbj1hO2Vsc2V7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybiExO249by5nZXRSYW5nZUF0KDApfXN3aXRjaChlKXtjYXNlImJvbGQiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJzdHJvbmciKTticmVhaztjYXNlIml0YWxpYyI6dGhpcy53cmFwU2VsZWN0aW9uKG4sImVtIik7YnJlYWs7Y2FzZSJ1bmRlcmxpbmUiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJ1Iik7YnJlYWs7Y2FzZSJzdHJpa2VUaHJvdWdoIjp0aGlzLndyYXBTZWxlY3Rpb24obiwicyIpO2JyZWFrO2Nhc2UiY29kZSI6dGhpcy53cmFwU2VsZWN0aW9uKG4sImNvZGUiKTticmVhaztjYXNlImxpbmsiOmlmKCF0KXJldHVybiExO3RoaXMud3JhcFNlbGVjdGlvbldpdGhMaW5rKG4sdCk7YnJlYWt9aWYociYmci5sZW5ndGg+MCkkdC5zZXRTZWxlY3Rpb25Gcm9tUmFuZ2Uobik7ZWxzZXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7byYmKG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShuKSl9cmV0dXJuITB9c3RhdGljIHdyYXBTZWxlY3Rpb24oZSx0KXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWEpcmV0dXJuO2lmKHRoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcoZSx0KSl0aGlzLnJlbW92ZVRhZ0Zyb21TZWxlY3Rpb24oZSx0KTtlbHNle2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7dHJ5e2xldCBvPWUuZXh0cmFjdENvbnRlbnRzKCk7bi5hcHBlbmRDaGlsZChvKSxlLmluc2VydE5vZGUobiksZS5zZWxlY3ROb2RlQ29udGVudHMobiksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGUpfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB3cmFwIHNlbGVjdGlvbjoiLG8pfX19c3RhdGljIHNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsdCl7bGV0IGE9ZS5zdGFydENvbnRhaW5lcjtmb3IoO2EmJmEhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihhLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmEudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dClyZXR1cm4hMDthPWEucGFyZW50Tm9kZX1mb3IoYT1lLmVuZENvbnRhaW5lcjthJiZhIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZhLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXQpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj1lLmNsb25lQ29udGVudHMoKTtyZXR1cm4gci5hcHBlbmRDaGlsZChuKSxyLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpLmxlbmd0aD4wfXN0YXRpYyByZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsdCl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtsZXQgcj1lLmNsb25lUmFuZ2UoKSxuPWUuc3RhcnRDb250YWluZXIsbz1udWxsO2Zvcig7biYmbiE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKG4ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbi50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10KXtvPW47YnJlYWt9bj1uLnBhcmVudE5vZGV9bGV0IGw9ZS5lbmRDb250YWluZXIscD1udWxsO2Zvcig7bCYmbCE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKGwubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10KXtwPWw7YnJlYWt9bD1sLnBhcmVudE5vZGV9byYmci5zZXRTdGFydEJlZm9yZShvKSxwJiZyLnNldEVuZEFmdGVyKHApO2xldCBkPXIuZXh0cmFjdENvbnRlbnRzKCksdT10aGlzLnJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoZCx0KTtyLmluc2VydE5vZGUodSk7bGV0IGM9W10sYj1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHUsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCksdjtmb3IoO3Y9Yi5uZXh0Tm9kZSgpOyljLnB1c2godik7aWYoYy5sZW5ndGg+MCl7bGV0IHg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt4LnNldFN0YXJ0KGNbMF0sMCkseC5zZXRFbmQoY1tjLmxlbmd0aC0xXSxjW2MubGVuZ3RoLTFdLnRleHRDb250ZW50Py5sZW5ndGh8fDApLGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZSh4KX19c3RhdGljIHJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoZSx0KXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmFwcGVuZENoaWxkKGUpO2xldCByPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCk7QXJyYXkuZnJvbShyKS5mb3JFYWNoKGw9PntsZXQgcD1sLnBhcmVudE5vZGU7aWYocCl7Zm9yKDtsLmZpcnN0Q2hpbGQ7KXAuaW5zZXJ0QmVmb3JlKGwuZmlyc3RDaGlsZCxsKTtwLnJlbW92ZUNoaWxkKGwpfX0pO2xldCBvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IoO2EuZmlyc3RDaGlsZDspby5hcHBlbmRDaGlsZChhLmZpcnN0Q2hpbGQpO3JldHVybiBvfXN0YXRpYyB3cmFwU2VsZWN0aW9uV2l0aExpbmsoZSx0KXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWEpcmV0dXJuO3RoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcoZSwiYSIpJiYodGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsImEiKSxhLnJhbmdlQ291bnQ+MCYmKGU9YS5nZXRSYW5nZUF0KDApKSk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3IuaHJlZj10LHIudGFyZ2V0PSJfYmxhbmsiLHIucmVsPSJub29wZW5lciBub3JlZmVycmVyIjt0cnl7bGV0IG49ZS5leHRyYWN0Q29udGVudHMoKTtyLmFwcGVuZENoaWxkKG4pLGUuaW5zZXJ0Tm9kZShyKSxlLnNlbGVjdE5vZGVDb250ZW50cyhyKSxhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2UoZSl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBsaW5rOiIsbil9fXN0YXRpYyBnZXRTZWxlY3Rpb25Db29yZGluYXRlcyguLi5lKXtsZXQgdD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLmUpO2lmKGNvbnNvbGUubG9nKCJnZXRTZWxlY3Rpb25Db29yZGluYXRlcyAtIHNlbGVjdGlvbkluZm86Iix0KSwhdClyZXR1cm4gY29uc29sZS5sb2coIk5vIHNlbGVjdGlvbiBpbmZvIGF2YWlsYWJsZSIpLG51bGw7bGV0IHI9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyh0KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihjb25zb2xlLmxvZygiUmFuZ2UgcmVjdDoiLHIpLHIud2lkdGg9PT0wJiZyLmhlaWdodD09PTApe2lmKGNvbnNvbGUubG9nKCJSZWN0IHdpZHRoIGFuZCBoZWlnaHQgYXJlIDAsIHRyeWluZyBkaWZmZXJlbnQgYXBwcm9hY2giKSwiY2FyZXRQb3NpdGlvbkZyb21Qb2ludCJpbiBkb2N1bWVudCl7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKG8mJm8ucmFuZ2VDb3VudD4wKXtsZXQgbD1vLmdldFJhbmdlQXQoMCkscD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cC50ZXh0Q29udGVudD0iXHUyMDBCIixsLmluc2VydE5vZGUocCk7bGV0IGQ9cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihwLnJlbW92ZSgpLGQud2lkdGg+MHx8ZC5oZWlnaHQ+MCl7bGV0IHU9e3g6ZC5sZWZ0LHk6TWF0aC5tYXgoNDUsZC50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlVzZWQgc3BhbiB0cmljayBmb3IgY29vcmRzOiIsdSksdX19fXJldHVybiBudWxsfWxldCBuPXt4OnIubGVmdCtyLndpZHRoLzIseTpNYXRoLm1heCg0NSxyLnRvcC00NSl9O3JldHVybiBjb25zb2xlLmxvZygiUmV0dXJuaW5nIGNvb3JkczoiLG4pLG59fX0pO3ZhciBCMWUsWGcsX250LE1udD1nKCgpPT57cGUoKTtHbigpO1NudCgpO2h0KCk7QjFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxYZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sX250PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1mb3JtYXR0aW5nLW1lbnUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0Zvcm1hdHRpbmdNZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0sQjFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idmlzaWJsZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnZpc2libGUsImdldCIpLHNldDppKChmLHkpPT57Zi52aXNpYmxlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxCMWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4icG9zaXRpb24iaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5wb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnBvc2l0aW9uPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxCMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJtZW51WkluZGV4ImluIGYsImhhcyIpLGdldDppKGY9PmYubWVudVpJbmRleCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLm1lbnVaSW5kZXg9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLEIxZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBpbnN0YW5jZTtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4geC5pbnN0YW5jZXx8KHguaW5zdGFuY2U9bmV3IHgsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh4Lmluc3RhbmNlKSkseC5pbnN0YW5jZX0jZT1YZyh0aGlzLG8sITEpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZpc2libGUobSl7dGhpcy4jZT1tfSN0PShYZyh0aGlzLGwpLFhnKHRoaXMsZCx7eDowLHk6MH0pKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24obSl7dGhpcy4jdD1tfSNhPShYZyh0aGlzLHUpLFhnKHRoaXMsYiwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBtZW51WkluZGV4KG0pe3RoaXMuI2E9bX1jYWxsYmFjaz0oWGcodGhpcyx2KSxudWxsKTtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXR0aW5nLW1lbnUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNjI2MjYiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjNDA0MDQwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKDVweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzMzMzMzMyIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLnZpc2libGU/KHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wb3NpdGlvbi54fXB4OyB0b3A6ICR7dGhpcy5wb3NpdGlvbi55fXB4OyIKICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgZGF0YS1tZW51LXR5cGU9ImZvcm1hdHRpbmciCiAgICAgID4KICAgICAgICAke2w0LmZvcm1hdEJ1dHRvbnMubWFwKG09PndgCiAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICBjbGFzcz0iZm9ybWF0LWJ1dHRvbiAke20uY29tbWFuZH0iCiAgICAgICAgICAgIGRhdGEtY29tbWFuZD0iJHttLmNvbW1hbmR9IgogICAgICAgICAgICB0aXRsZT0iJHttLmxhYmVsfSR7bS5zaG9ydGN1dD9gICgke20uc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHttLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke20uaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgKTp3YGB9YXBwbHlGb3JtYXQobSl7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayhtKSxtPT09ImxpbmsiJiZ0aGlzLmhpZGUoKX1zaG93KG0sZil7Y29uc29sZS5sb2coIkZvcm1hdHRpbmdNZW51LnNob3cgY2FsbGVkOiIse3Bvc2l0aW9uOm0sdmlzaWJsZTp0aGlzLnZpc2libGV9KSx0aGlzLnBvc2l0aW9uPW0sdGhpcy5jYWxsYmFjaz1mLHRoaXMubWVudVpJbmRleD1fYS5nZXROZXh0WkluZGV4KCksX2EucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHRoaXMudmlzaWJsZT0hMH1oaWRlKCl7dGhpcy52aXNpYmxlPSExLHRoaXMuY2FsbGJhY2s9bnVsbCxfYS51bnJlZ2lzdGVyKHRoaXMpfXVwZGF0ZVBvc2l0aW9uKG0pe3RoaXMucG9zaXRpb249bX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixtPT57bGV0IGY9bSx5PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO3kmJnkuY29udGFpbnMoZi50YXJnZXQpJiYoZi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixtPT57bGV0IGY9bSxNPWYudGFyZ2V0LmNsb3Nlc3QoIi5mb3JtYXQtYnV0dG9uIik7aWYoTSl7Zi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHo9TS5nZXRBdHRyaWJ1dGUoImRhdGEtY29tbWFuZCIpO3omJnRoaXMuYXBwbHlGb3JtYXQoeil9fSksdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixtPT57bGV0IGY9bSx5PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO3kmJnkuY29udGFpbnMoZi50YXJnZXQpJiYoZi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje1hnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBTeD1nKCgpPT57cGUoKTtMbCgpO2tudCgpO01udCgpfSk7dmFyIEgxZSxxMWU9ZygoKT0+e0gxZT1bIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiSmF2YSIsIkMrKyIsIkMjIiwiR28iLCJSdXN0IiwiSFRNTCIsIkNTUyIsIlNRTCIsIlNoZWxsIiwiSlNPTiIsIllBTUwiLCJNYXJrZG93biIsIlBsYWluIFRleHQiXX0pO3ZhciBRYmEsSmJhPWcoKCk9PntwZSgpO1FiYT1KYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgcGFkZGluZzogMjRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfSwgMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIil9OwogICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBWaXN1YWwgaGludCBmb3IgdGV4dCBzZWxlY3Rpb24gKi8KICAuZWRpdG9yLWNvbnRlbnQ6aG92ZXIgewogICAgY3Vyc29yOiB0ZXh0OwogIH0KCiAgLmVkaXRvci1jb250ZW50IHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBtaW4taGVpZ2h0OiAxNjBweDsKICAgIG1hcmdpbjogMCAtOHB4OwogICAgcGFkZGluZzogMCA4cHg7CiAgfQoKICAuYmxvY2sgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogNHB4IDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC8qIEZpcnN0IGFuZCBsYXN0IGJsb2NrcyBkb24ndCBuZWVkIGV4dHJhIHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CgogIC5ibG9jay5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBtYXJnaW4tbGVmdDogLThweDsKICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgcGFkZGluZy1yaWdodDogOHB4OwogIH0KCiAgLmJsb2NrW2NvbnRlbnRlZGl0YWJsZV0gewogICAgb3V0bGluZTogbm9uZTsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGggewogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2sucGFyYWdyYXBoOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIlR5cGUgJy8nIGZvciBjb21tYW5kcy4uLiI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTEgewogICAgZm9udC1zaXplOiAzMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDEiOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAzMnB4OwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0yIHsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTI6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAyIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0zOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMyI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5ibG9jay5xdW90ZSB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi1yaWdodDogMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2sucXVvdGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiUXVvdGUiOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luOiAyMHB4IDA7CiAgfQoKICAuY29kZS1sYW5ndWFnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDAgNHB4OwogICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKICAgIHotaW5kZXg6IDE7CiAgfQoKICAuYmxvY2suY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiAxNnB4OwogICAgcGFkZGluZy10b3A6IDMycHg7IC8qIE1ha2Ugcm9vbSBmb3IgbGFuZ3VhZ2UgaW5kaWNhdG9yICovCiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgb3ZlcmZsb3cteDogYXV0bzsKICB9CgogIC5ibG9jay5jb2RlOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIi8vIENvZGUgYmxvY2siOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5saXN0IHsKICAgIHBhZGRpbmctbGVmdDogMDsKICB9CgogIC5ibG9jay5saXN0IHVsLAogIC5ibG9jay5saXN0IG9sIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDAgMCAwIDI0cHg7CiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwgewogICAgbGlzdC1zdHlsZTogZGlzYzsKICB9CgogIC5ibG9jay5saXN0IG9sIHsKICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7CiAgfQoKICAuYmxvY2subGlzdCBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmJsb2NrLmxpc3QgbGk6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLmRpdmlkZXIgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMjBweCAwOwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYmxvY2suZGl2aWRlciBociB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgbWFyZ2luOiAwOwogIH0KCiAgLnNsYXNoLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogICAgbWluLXdpZHRoOiAyMjBweDsKICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtIHsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBmb250LXNpemU6IDE0cHg7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gLmljb24gewogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC50b29sYmFyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTQwcHg7CiAgICBsZWZ0OiAwOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZ2FwOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogIH0KCiAgLnRvb2xiYXIudmlzaWJsZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBEcmFnIGFuZCBEcm9wIFN0eWxlcyAqLwogIC5ibG9jay13cmFwcGVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogIH0KCiAgLyogRW5zdXJlIHByb3BlciBzcGFjaW5nIGNvbnRleHQgZm9yIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrIHsKICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgfQoKICAvKiBPdmVycmlkZSBmb3IgaGVhZGluZ3MgZm9sbG93aW5nIG90aGVyIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMSwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTIsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0zIHsKICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgfQoKICAvKiBDb2RlIGFuZCBxdW90ZSBibG9ja3MgbmVlZCBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5jb2RlLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLnF1b3RlIHsKICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgfQoKICAuZHJhZy1oYW5kbGUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogLTI4cHg7CiAgICB0b3A6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgY3Vyc29yOiBncmFiOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAuZHJhZy1oYW5kbGU6OmJlZm9yZSB7CiAgICBjb250ZW50OiAi4ouu4ouuIjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxldHRlci1zcGFjaW5nOiAtMnB4OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6aG92ZXIgLmRyYWctaGFuZGxlIHsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICB9CgogIC5kcmFnLWhhbmRsZTphY3RpdmUgewogICAgY3Vyc29yOiBncmFiYmluZzsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICB9CgogIC5ibG9jay13cmFwcGVyLmRyYWdnaW5nIHsKICAgIG9wYWNpdHk6IDAuODsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMjAwMTsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9CgoKICAvKiBCbG9ja3MgdGhhdCBzaG91bGQgbW92ZSBvdXQgb2YgdGhlIHdheSAqLwogIC5ibG9jay13cmFwcGVyLm1vdmUtZG93biB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpOwogIH0KCiAgLmJsb2NrLXdyYXBwZXIubW92ZS11cCB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWRyYWctb2Zmc2V0LCAwcHgpKSk7CiAgfQoKICAvKiBEcm9wIGluZGljYXRvciAqLwogIC5kcm9wLWluZGljYXRvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgYm9yZGVyOiAycHggZGFzaGVkICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGVhc2UsIGhlaWdodCAwLjJzIGVhc2U7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHotaW5kZXg6IDE5OTk7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogUmVtb3ZlIG9sZCBkcmFnLW92ZXIgc3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWJlZm9yZSwKICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYWZ0ZXIgewogICAgLyogTm8gbG9uZ2VyIG5lZWRlZCwgdXNpbmcgZHJvcCBpbmRpY2F0b3IgaW5zdGVhZCAqLwogIH0KCiAgLmVkaXRvci1jb250ZW50LmRyYWdnaW5nICogewogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAvKiBCbG9jayBTZXR0aW5ncyBCdXR0b24gLSBSZW1vdmVkIGluIGZhdm9yIG9mIGNvbnRleHQgbWVudSAqLwoKICAvKiBUZXh0IFNlbGVjdGlvbiBTdHlsZXMgKi8KICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBjb2xvcjogaW5oZXJpdDsKICB9CgogIC8qIEZvcm1hdHRpbmcgTWVudSAqLwogIC5mb3JtYXR0aW5nLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAycHg7CiAgICB6LWluZGV4OiAxMDAxOwogICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICB9CgogIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgZnJvbSB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgdHJhbnNsYXRlWSgycHgpOwogICAgfQogICAgdG8gewogICAgICBvcGFjaXR5OiAxOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICB9CgogIC8qIEFwcGxpZWQgZm9ybWF0IHN0eWxlcyBpbiBjb250ZW50ICovCiAgLmJsb2NrIHN0cm9uZywKICAuYmxvY2sgYiB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBlbSwKICAuYmxvY2sgaSB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuYmxvY2sgdSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIC5ibG9jayBzdHJpa2UsCiAgLmJsb2NrIHMgewogICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICBvcGFjaXR5OiAwLjc7CiAgfQoKICAuYmxvY2sgY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBwYWRkaW5nOiAycHggNnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDAuOWVtOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBhIHsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICB9CgogIC5ibG9jayBhOmhvdmVyIHsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CmB9KTt2YXIgQzIsem50PWcoKCk9PntMbCgpO0MyPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdDb252ZXJ0ZXJzIil9c3RhdGljIGVzY2FwZUh0bWwoZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSx0LmlubmVySFRNTH1zdGF0aWMgZm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCB0PTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scj1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHQpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyh0LHIpKS50b0ZpeGVkKDIpKSsiICIrYVtyXX1zdGF0aWMgZ2V0SHRtbE91dHB1dChlKXtyZXR1cm4gZS5tYXAodD0+e2xldCBhPXQuY29udGVudC5pbmNsdWRlcygiPCIpJiZ0LmNvbnRlbnQuaW5jbHVkZXMoIj4iKT90LmNvbnRlbnQ6dGhpcy5lc2NhcGVIdG1sKHQuY29udGVudCk7c3dpdGNoKHQudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiB0LmNvbnRlbnQ/YDxwPiR7YX08L3A+YDoiIjtjYXNlImhlYWRpbmctMSI6cmV0dXJuYDxoMT4ke2F9PC9oMT5gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gPGgyPiR7YX08L2gyPmA7Y2FzZSJoZWFkaW5nLTMiOnJldHVybmA8aDM+JHthfTwvaDM+YDtjYXNlInF1b3RlIjpyZXR1cm5gPGJsb2NrcXVvdGU+JHthfTwvYmxvY2txdW90ZT5gO2Nhc2UiY29kZSI6cmV0dXJuYDxwcmU+PGNvZGU+JHt0aGlzLmVzY2FwZUh0bWwodC5jb250ZW50KX08L2NvZGU+PC9wcmU+YDtjYXNlImxpc3QiOmxldCByPXQuY29udGVudC5zcGxpdChgCmApLmZpbHRlcihwPT5wLnRyaW0oKSk7aWYoci5sZW5ndGg+MCl7bGV0IHA9dC5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO3JldHVybmA8JHtwfT4ke3IubWFwKGQ9PmA8bGk+JHtkfTwvbGk+YCkuam9pbigiIil9PC8ke3B9PmB9cmV0dXJuIiI7Y2FzZSJkaXZpZGVyIjpyZXR1cm4iPGhyPiI7Y2FzZSJpbWFnZSI6bGV0IG49dC5tZXRhZGF0YT8udXJsO2lmKG4pe2xldCBwPXRoaXMuZXNjYXBlSHRtbCh0LmNvbnRlbnR8fCJJbWFnZSIpO3JldHVybmA8aW1nIHNyYz0iJHtufSIgYWx0PSIke3B9IiAvPmB9cmV0dXJuIiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbz10Lm1ldGFkYXRhPy52aWRlb0lkO3JldHVybiBvP2A8aWZyYW1lIHdpZHRoPSI1NjAiIGhlaWdodD0iMzE1IiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7b30iIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPmA6IiI7Y2FzZSJtYXJrZG93biI6cmV0dXJuYDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPiR7dGhpcy5lc2NhcGVIdG1sKHQuY29udGVudCl9PC9kaXY+YDtjYXNlImh0bWwiOnJldHVybiB0LmNvbnRlbnQ7Y2FzZSJhdHRhY2htZW50IjpsZXQgbD10Lm1ldGFkYXRhPy5maWxlc3x8W107cmV0dXJuIGwubGVuZ3RoPjA/YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnRzIj4ke2wubWFwKHA9PmA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIGRhdGEtZmlsZS1pZD0iJHtwLmlkfSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIke3AuZGF0YX0iIGRvd25sb2FkPSIke3AubmFtZX0iPiR7dGhpcy5lc2NhcGVIdG1sKHAubmFtZSl9PC9hPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+KCR7dGhpcy5mb3JtYXRGaWxlU2l6ZShwLnNpemUpfSk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YCkuam9pbigiIil9PC9kaXY+YDoiIjtkZWZhdWx0OnJldHVybmA8cD4ke2F9PC9wPmB9fSkuZmlsdGVyKHQ9PnQhPT0iIikuam9pbihgCmApfXN0YXRpYyBnZXRNYXJrZG93bk91dHB1dChlKXtyZXR1cm4gZS5tYXAodD0+e3N3aXRjaCh0LnR5cGUpe2Nhc2UicGFyYWdyYXBoIjpyZXR1cm4gdC5jb250ZW50O2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gIyAke3QuY29udGVudH1gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gIyMgJHt0LmNvbnRlbnR9YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYCMjIyAke3QuY29udGVudH1gO2Nhc2UicXVvdGUiOnJldHVybmA+ICR7dC5jb250ZW50fWA7Y2FzZSJjb2RlIjpyZXR1cm5gXGBcYFxgCiR7dC5jb250ZW50fQpcYFxgXGBgO2Nhc2UibGlzdCI6bGV0IGE9dC5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGQ9PmQudHJpbSgpKTtyZXR1cm4gdC5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/YS5tYXAoKGQsdSk9PmAke3UrMX0uICR7ZH1gKS5qb2luKGAKYCk6YS5tYXAoZD0+YC0gJHtkfWApLmpvaW4oYApgKTtjYXNlImRpdmlkZXIiOnJldHVybiItLS0iO2Nhc2UiaW1hZ2UiOmxldCByPXQubWV0YWRhdGE/LnVybCxuPXQuY29udGVudHx8IkltYWdlIjtyZXR1cm4gcj9gIVske259XSgke3J9KWA6IiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbz10Lm1ldGFkYXRhPy52aWRlb0lkLGw9dC5tZXRhZGF0YT8udXJsfHwobz9gaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PSR7b31gOiIiKTtyZXR1cm4gbD9gW1lvdVR1YmUgVmlkZW9dKCR7bH0pYDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm4gdC5jb250ZW50O2Nhc2UiaHRtbCI6cmV0dXJuYDwhLS0gSFRNTCBCbG9jawoke3QuY29udGVudH0KLS0+YDtjYXNlImF0dGFjaG1lbnQiOmxldCBwPXQubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gcC5sZW5ndGg+MD9wLm1hcChkPT5gLSBbJHtkLm5hbWV9XSgke2QuZGF0YX0pYCkuam9pbihgCmApOiIiO2RlZmF1bHQ6cmV0dXJuIHQuY29udGVudH19KS5maWx0ZXIodD0+dCE9PSIiKS5qb2luKGAKCmApfXN0YXRpYyBwYXJzZUh0bWxUb0Jsb2NrcyhlKXtsZXQgYT1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsInRleHQvaHRtbCIpLHI9W10sbj1pKG89PntpZihvLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJm8udGV4dENvbnRlbnQ/LnRyaW0oKSlyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6by50ZXh0Q29udGVudC50cmltKCl9KTtlbHNlIGlmKG8ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7bGV0IGw9byxwPWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChwKXtjYXNlInAiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgxIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMiI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDMiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImJsb2NrcXVvdGUiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UicHJlIjpjYXNlImNvZGUiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6bC50ZXh0Q29udGVudHx8IiJ9KTticmVhaztjYXNlInVsIjpjYXNlIm9sIjpsZXQgdT1BcnJheS5mcm9tKGwucXVlcnlTZWxlY3RvckFsbCgibGkiKSkubWFwKGI9PmIuaW5uZXJIVE1MfHwiIikuam9pbihgCmApO3IucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6dSxtZXRhZGF0YTp7bGlzdFR5cGU6cD09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifX0pO2JyZWFrO2Nhc2UiaHIiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7YnJlYWs7Y2FzZSJpbWciOmxldCBjPWw7ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6Yy5hbHR8fCIiLG1ldGFkYXRhOnt1cmw6Yy5zcmN9fSk7YnJlYWs7ZGVmYXVsdDpsLmNoaWxkTm9kZXMuZm9yRWFjaChiPT5uKGIpKX19fSwicHJvY2Vzc05vZGUiKTtyZXR1cm4gYS5ib2R5LmNoaWxkTm9kZXMuZm9yRWFjaChvPT5uKG8pKSxyfXN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3MoZSl7bGV0IHQ9ZS5zcGxpdChgCmApLGE9W10scj1bXTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IG89dFtuXTtpZihvLnN0YXJ0c1dpdGgoIiMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50Om8uc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIiMjICIpKWEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpvLnN1YnN0cmluZygzKX0pO2Vsc2UgaWYoby5zdGFydHNXaXRoKCIjIyMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50Om8uc3Vic3RyaW5nKDQpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIj4gIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6by5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiYGBgIikpe2xldCBsPVtdO2ZvcihuKys7bjx0Lmxlbmd0aCYmIXRbbl0uc3RhcnRzV2l0aCgiYGBgIik7KWwucHVzaCh0W25dKSxuKys7YS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpsLmpvaW4oYApgKX0pfWVsc2UgaWYoby5tYXRjaCgvXihcKnwtKSAvKSlyLnB1c2goby5zdWJzdHJpbmcoMikpLChuPT09dC5sZW5ndGgtMXx8IXRbbisxXS5tYXRjaCgvXihcKnwtKSAvKSkmJihhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OnIuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19KSxyPVtdKTtlbHNlIGlmKG8ubWF0Y2goL15cZCtcLiAvKSlyLnB1c2goby5yZXBsYWNlKC9eXGQrXC4gLywiIikpLChuPT09dC5sZW5ndGgtMXx8IXRbbisxXS5tYXRjaCgvXlxkK1wuIC8pKSYmKGEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6ci5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19KSxyPVtdKTtlbHNlIGlmKG89PT0iLS0tInx8bz09PSIqKioifHxvPT09Il9fXyIpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTtlbHNlIGlmKG8ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pKXtsZXQgbD1vLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKTtsJiZhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpsWzFdfHwiIixtZXRhZGF0YTp7dXJsOmxbMl19fSl9ZWxzZSBvLnRyaW0oKSYmYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50Om99KX1yZXR1cm4gYX19fSk7dmFyIG1uLFJ1PWcoKCk9PntwZSgpO0xsKCk7em50KCk7bW49Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrcyIpfXN0YXRpYyByZW5kZXJMaXN0Q29udGVudChlLHQpe2xldCBhPWUuc3BsaXQoYApgKS5maWx0ZXIobj0+bi50cmltKCkpO2lmKGEubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgcj10Py5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke3J9PiR7YS5tYXAobj0+YDxsaT4ke259PC9saT5gKS5qb2luKCIiKX08LyR7cn0+YH1zdGF0aWMgcmVuZGVyQmxvY2soZSx0LGEpe2lmKGUudHlwZT09PSJkaXZpZGVyIilyZXR1cm4gd2AKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgZGl2aWRlciIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgPgogICAgICAgICAgPGhyPgogICAgICAgIDwvZGl2PgogICAgICBgO2lmKGUudHlwZT09PSJsaXN0IilyZXR1cm4gd2AKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgbGlzdCAke3Q/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgQGlucHV0PSIke2Eub25JbnB1dH0iCiAgICAgICAgICBAa2V5ZG93bj0iJHthLm9uS2V5RG93bn0iCiAgICAgICAgICBAZm9jdXM9IiR7YS5vbkZvY3VzfSIKICAgICAgICAgIEBibHVyPSIke2Eub25CbHVyfSIKICAgICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2Eub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHthLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgQG1vdXNldXA9IiR7bj0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksYS5vbk1vdXNlVXAmJmEub25Nb3VzZVVwKG4pfX0iCiAgICAgICAgICAuaW5uZXJIVE1MPSIke3RoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpfSIKICAgICAgICA+PC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09ImNvZGUiKXtsZXQgbj1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8InBsYWluIHRleHQiO3JldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGFuZ3VhZ2UiPiR7bn08L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke3Q/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgQGlucHV0PSIke2Eub25JbnB1dH0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2Eub25LZXlEb3dufSIKICAgICAgICAgICAgQGZvY3VzPSIke2Eub25Gb2N1c30iCiAgICAgICAgICAgIEBibHVyPSIke2Eub25CbHVyfSIKICAgICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7YS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7YS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICAgICAgQG1vdXNldXA9IiR7bz0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksYS5vbk1vdXNlVXAmJmEub25Nb3VzZVVwKG8pfX0iCiAgICAgICAgICAgIC50ZXh0Q29udGVudD0iJHtlLmNvbnRlbnR8fCIifSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke2UudHlwZX0gJHt0PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBAaW5wdXQ9IiR7YS5vbklucHV0fSIKICAgICAgICBAa2V5ZG93bj0iJHthLm9uS2V5RG93bn0iCiAgICAgICAgQGZvY3VzPSIke2Eub25Gb2N1c30iCiAgICAgICAgQGJsdXI9IiR7YS5vbkJsdXJ9IgogICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2Eub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7YS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxhLm9uTW91c2VVcCYmYS5vbk1vdXNlVXAobil9fSIKICAgICAgICAuaW5uZXJIVE1MPSIke2UuY29udGVudHx8IiJ9IgogICAgICA+PC9kaXY+CiAgICBgfXN0YXRpYyBzZXRDdXJzb3JUb0VuZChlKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXQpcmV0dXJuO2xldCBhPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApe2xldCByPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKTtlLmFwcGVuZENoaWxkKHIpLGEuc2V0U3RhcnQociwxKSxhLmNvbGxhcHNlKCEwKX1lbHNle2xldCByPXRoaXMuZ2V0TGFzdE5vZGUoZSk7ci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2Euc2V0U3RhcnQocixyLnRleHRDb250ZW50Py5sZW5ndGh8fDApOmEuc2V0U3RhcnRBZnRlcihyKSxhLmNvbGxhcHNlKCEwKX10LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoYSksZS50ZXh0Q29udGVudD09PSJcdTIwMEIiJiYoZS50ZXh0Q29udGVudD0iIil9c3RhdGljIHNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCF0KXJldHVybjtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKWEuc2V0U3RhcnQoZSwwKSxhLmNvbGxhcHNlKCEwKTtlbHNle2xldCByPXRoaXMuZ2V0Rmlyc3ROb2RlKGUpO3Iubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT9hLnNldFN0YXJ0KHIsMCk6YS5zZXRTdGFydEJlZm9yZShyKSxhLmNvbGxhcHNlKCEwKX10LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoYSl9c3RhdGljIGdldExhc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCB0PWUuY2hpbGROb2Rlc1tlLmNoaWxkTm9kZXMubGVuZ3RoLTFdO3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHQuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3Q6dGhpcy5nZXRMYXN0Tm9kZSh0KX1zdGF0aWMgZ2V0Rmlyc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCB0PWUuY2hpbGROb2Rlc1swXTtyZXR1cm4gdC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFfHx0LmNoaWxkTm9kZXMubGVuZ3RoPT09MD90OnRoaXMuZ2V0Rmlyc3ROb2RlKHQpfXN0YXRpYyBmb2N1c0xpc3RJdGVtKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigibGkiKTtpZih0KXt0LmZvY3VzKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxyPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTthLnNlbGVjdE5vZGVDb250ZW50cyh0KSxhLmNvbGxhcHNlKCEwKSxyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoYSl9fX19KTt2YXIgajFlLENudD1nKCgpPT57TGwoKTtTeCgpO1pnKCk7UnUoKTtqMWU9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyIpfWNvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIsdD0iIixhKXtyZXR1cm57aWQ6SXIuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6dCwuLi5hJiZ7bWV0YWRhdGE6YX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSx0LGE9ITApe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrcyxuPXIuZmluZEluZGV4KG89Pm8uaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLnIuc2xpY2UoMCxuKzEpLHQsLi4uci5zbGljZShuKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgbz10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihvKXtsZXQgbD10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQodCk7by5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixsKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxhJiZ0LnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayh0LmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcih0PT50LmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IHQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7dCYmdC5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQodD0+dC5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgodD0+dC5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSx0PSJzdGFydCIpe2xldCBhPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKGEpe2xldCByPWEucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7ciYmKGF3YWl0IG5ldyBQcm9taXNlKG49PnJlcXVlc3RBbmltYXRpb25GcmFtZShuKSksci5mb2N1c1dpdGhDdXJzb3IodCkpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSx0KXtsZXQgYT10aGlzLmZpbmRCbG9jayhlKTthJiYoYS5jb250ZW50PXQsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSx0LGEpe2xldCByPXRoaXMuZmluZEJsb2NrKGUpO3ImJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxyLnR5cGU9dCxyLmNvbnRlbnQ9IiIsYSYmKHIubWV0YWRhdGE9YSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLHQpe2xldCBhPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLHI9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKHI9PT0tMXx8dDwwfHx0Pj1hLmxlbmd0aClyZXR1cm47bGV0W25dPWEuc3BsaWNlKHIsMSk7YS5zcGxpY2UodCwwLG4pLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1hLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ+MD90aGlzLmNvbXBvbmVudC5ibG9ja3NbdC0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1t0KzFdOm51bGx9fX0pO3ZhciBnaSxuYz1nKCgpPT57Z2k9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFzZUJsb2NrSGFuZGxlciIpfXNldHVwKGUsdCxhKXt9Z2V0U3R5bGVzKCl7cmV0dXJuIiJ9fX0pO3ZhciBBcyxldmE9ZygoKT0+e0FzPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJsb2NrUmVnaXN0cnkiKX1zdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIoZSx0KXt0aGlzLmhhbmRsZXJzLnNldChlLHQpfXN0YXRpYyBnZXRIYW5kbGVyKGUpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldChlKX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciB0dmE9ZygoKT0+e30pO3ZhciBQUSxhdmE9ZygoKT0+e25jKCk7cGUoKTtSdSgpO1hkKCk7UFE9Y2xhc3MgZXh0ZW5kcyBnaXtzdGF0aWN7aSh0aGlzLCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIiKX10eXBlPSJwYXJhZ3JhcGgiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcGFyYWdyYXBoJHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighcil7Y29uc29sZS5lcnJvcigiUGFyYWdyYXBoQmxvY2tIYW5kbGVyLnNldHVwOiBObyBwYXJhZ3JhcGggYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn10LmNvbnRlbnQmJiFyLmlubmVySFRNTCYmKHIuaW5uZXJIVE1MPXQuY29udGVudCksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25LZXlEb3duKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnthLm9uRm9jdXMoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnthLm9uQmx1cigpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2Eub25Db21wb3NpdGlvblN0YXJ0KCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2Eub25Db21wb3NpdGlvbkVuZCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbk1vdXNlVXA/LihuKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxyLHQpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHQsYSl7bGV0IHI9aSgoKT0+e2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGw9by50b1N0cmluZygpO2lmKGwubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBwPXQuZ2V0Um9vdE5vZGUoKS5ob3N0LHU9cD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsYz1wPy5zaGFkb3dSb290LGI9W107dSYmYi5wdXNoKHUpLGMmJmIucHVzaChjKTtsZXQgdj0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLmIpO2lmKCF2KXJldHVybjtsZXQgeD0kdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuc3RhcnRDb250YWluZXIpLG09JHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCx2LmVuZENvbnRhaW5lcik7aWYoeHx8bSl7aWYobCE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWw7bGV0IGY9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyh2KSx5PWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6bC50cmltKCksYmxvY2tJZDphLmlkLHJhbmdlOmYscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1yO2xldCBuPWUuY2xvc2VzdCgiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBQYXJhZ3JhcGggc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5wYXJhZ3JhcGggewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIn1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPXQsbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiZtbi5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7YSYmbW4uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxwPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO3Aubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChwLHAudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQocCxwLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMocCksbC5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShsKX19ci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiYkdC5zZXRDdXJzb3JQb3NpdGlvbihyLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPSR0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9aWYoISR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgYz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtjLnNldFN0YXJ0KGEsMCksYy5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksYi5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj1jLmNsb25lQ29udGVudHMoKSx4PWIuY2xvbmVDb250ZW50cygpLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5hcHBlbmRDaGlsZCh2KTtsZXQgZj1tLmlubmVySFRNTDttLmlubmVySFRNTD0iIixtLmFwcGVuZENoaWxkKHgpO2xldCB5PW0uaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZixhZnRlcjp5fX19fSk7dmFyIFFnLHN2YT1nKCgpPT57bmMoKTtwZSgpO1J1KCk7WGQoKTtRZz1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIkhlYWRpbmdCbG9ja0hhbmRsZXIiKX10eXBlO2xldmVsO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnR5cGU9ZSx0aGlzLmxldmVsPXBhcnNlSW50KGUuc3BsaXQoIi0iKVsxXSl9cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgaGVhZGluZy0ke3RoaXMubGV2ZWx9JHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcil7Y29uc29sZS5lcnJvcigiSGVhZGluZ0Jsb2NrSGFuZGxlci5zZXR1cDogTm8gaGVhZGluZyBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dC5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PSR0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PSR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT0kdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj0kdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suaGVhZGluZy0xIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMjRweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgbWFyZ2luOiAyMHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBtYXJnaW46IDE2cHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UgMTpyZXR1cm4iSGVhZGluZyAxIjtjYXNlIDI6cmV0dXJuIkhlYWRpbmcgMiI7Y2FzZSAzOnJldHVybiJIZWFkaW5nIDMiO2RlZmF1bHQ6cmV0dXJuIkhlYWRpbmcifX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPXQsbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiZtbi5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7YSYmbW4uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxwPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO3Aubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChwLHAudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQocCxwLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMocCksbC5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShsKX19ci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiYkdC5zZXRDdXJzb3JQb3NpdGlvbihyLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPSR0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9aWYoISR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgYz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtjLnNldFN0YXJ0KGEsMCksYy5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksYi5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj1jLmNsb25lQ29udGVudHMoKSx4PWIuY2xvbmVDb250ZW50cygpLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5hcHBlbmRDaGlsZCh2KTtsZXQgZj1tLmlubmVySFRNTDttLmlubmVySFRNTD0iIixtLmFwcGVuZENoaWxkKHgpO2xldCB5PW0uaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZixhZnRlcjp5fX19fSk7dmFyIElRLGl2YT1nKCgpPT57bmMoKTtwZSgpO1J1KCk7WGQoKTtJUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIlF1b3RlQmxvY2tIYW5kbGVyIil9dHlwZT0icXVvdGUiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcXVvdGUke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3J9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIlF1b3RlQmxvY2tIYW5kbGVyLnNldHVwOiBObyBxdW90ZSBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dC5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PSR0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PSR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT0kdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj0kdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnF1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTU1IiwiI2IwYjBiMCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJBZGQgYSBxdW90ZS4uLiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7cmV0dXJuIGEmJmEuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybjtsZXQgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cjtyLmlubmVySFRNTD10LG4mJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTthJiZtbi5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTthJiZtbi5zZXRDdXJzb3JUb0VuZChhKX1mb2N1cyhlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7YSYmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWEmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIixhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybjtyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlLGEpOnR5cGVvZiB0PT0ibnVtYmVyIiYmJHQuc2V0Q3Vyc29yUG9zaXRpb24ocix0KX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz10Py5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9dD8uc2hhZG93Um9vdCxwPVtdO28mJnAucHVzaChvKSxsJiZwLnB1c2gobCk7bGV0IGQ9JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZCl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWEudGV4dENvbnRlbnR8fCIiLHo9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLHopLGFmdGVyOk0uc3Vic3RyaW5nKHopfX1yZXR1cm4gbnVsbH1pZighJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWEudGV4dENvbnRlbnR8fCIiLHo9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLHopLGFmdGVyOk0uc3Vic3RyaW5nKHopfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUsdCk7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6YS5pbm5lckhUTUx9O2xldCBjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksYj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Muc2V0U3RhcnQoYSwwKSxjLnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLGIuc2V0U3RhcnQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldEVuZChhLGEuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCB2PWMuY2xvbmVDb250ZW50cygpLHg9Yi5jbG9uZUNvbnRlbnRzKCksbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTttLmFwcGVuZENoaWxkKHYpO2xldCBmPW0uaW5uZXJIVE1MO20uaW5uZXJIVE1MPSIiLG0uYXBwZW5kQ2hpbGQoeCk7bGV0IHk9bS5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpmLGFmdGVyOnl9fX19KTt2YXIgVDIsJDIsVG50PWcoKCk9PntUMj17eHRlcm06IjUuMy4wIix4dGVybUFkZG9uRml0OiIwLjguMCIseHRlcm1BZGRvblNlYXJjaDoiMC4xMy4wIixoaWdobGlnaHRKczoiMTEuMTEuMSIsZWNoYXJ0czoiNS42LjAiLGxpZ2h0d2VpZ2h0Q2hhcnRzOiI1LjEuMCIsdGlwdGFwOiIyLjI3LjIiLGZvbnRhd2Vzb21lOiI3LjIuMCJ9LCQyPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtIn0pO3ZhciBhbyxydmE9ZygoKT0+e1RudCgpO2FvPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRGVlc1NlcnZpY2VMaWJMb2FkZXIiKX1zdGF0aWMgaW5zdGFuY2U7eHRlcm1MaWI9bnVsbDt4dGVybUZpdEFkZG9uTGliPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxpYj1udWxsO2hpZ2hsaWdodEpzTGliPW51bGw7bGlnaHR3ZWlnaHRDaGFydHNMaWI9bnVsbDtlY2hhcnRzTGliPW51bGw7dGlwdGFwTGliPW51bGw7eHRlcm1Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO2hpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9bnVsbDtsaWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7ZWNoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7dGlwdGFwTG9hZGluZ1Byb21pc2U9bnVsbDtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gcy5pbnN0YW5jZXx8KHMuaW5zdGFuY2U9bmV3IHMpLHMuaW5zdGFuY2V9YXN5bmMgbG9hZFh0ZXJtKCl7cmV0dXJuIHRoaXMueHRlcm1MaWI/dGhpcy54dGVybUxpYjp0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybUxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7JDJ9L3h0ZXJtQCR7VDIueHRlcm19Lytlc21gKTtyZXR1cm4gYXdhaXQgdGhpcy5pbmplY3RYdGVybVN0eWxlcygpLHRoaXMueHRlcm1MaWI9e1Rlcm1pbmFsOnQuVGVybWluYWx9LHRoaXMueHRlcm1MaWJ9KSgpLHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFh0ZXJtRml0QWRkb24oKXtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliP3RoaXMueHRlcm1GaXRBZGRvbkxpYjp0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZToodGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7JDJ9L3h0ZXJtLWFkZG9uLWZpdEAke1QyLnh0ZXJtQWRkb25GaXR9Lytlc21gKTtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliPXtGaXRBZGRvbjp0LkZpdEFkZG9ufSx0aGlzLnh0ZXJtRml0QWRkb25MaWJ9KSgpLHRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1TZWFyY2hBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI/dGhpcy54dGVybVNlYXJjaEFkZG9uTGliOnRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCB0PWF3YWl0IGltcG9ydChgJHskMn0veHRlcm0tYWRkb24tc2VhcmNoQCR7VDIueHRlcm1BZGRvblNlYXJjaH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI9e1NlYXJjaEFkZG9uOnQuU2VhcmNoQWRkb259LHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYn0pKCksdGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzKCl7bGV0IGU9Inh0ZXJtLWNkbi1zdHlsZXMiO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKXJldHVybjtsZXQgdD1gJHskMn0veHRlcm1AJHtUMi54dGVybX0vY3NzL3h0ZXJtLmNzc2Ascj1hd2FpdChhd2FpdCBmZXRjaCh0KSkudGV4dCgpLG49YAovKiBGaXggeHRlcm0uanMgV2lkdGhDYWNoZSBtZWFzdXJlbWVudCBjb250YWluZXIgY2F1c2luZyBob3Jpem9udGFsIHNjcm9sbGJhciAqLwovKiB4dGVybSBjcmVhdGVzIHRoaXMgb24gZG9jdW1lbnQuYm9keSAtIG1vdmUgaXQgb2ZmLXNjcmVlbiBob3Jpem9udGFsbHkgdG9vICovCmJvZHkgPiBkaXZbc3R5bGUqPSJ0b3A6IC01MDAwMHB4Il1bc3R5bGUqPSJ3aWR0aDogNTAwMDBweCJdIHsKICBsZWZ0OiAtNTAwMDBweCAhaW1wb3J0YW50Owp9CmAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO28uaWQ9ZSxvLnRleHRDb250ZW50PXIrbixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pfWFzeW5jIGxvYWRIaWdobGlnaHRKcygpe3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliP3RoaXMuaGlnaGxpZ2h0SnNMaWI6dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlP3RoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZToodGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAkeyQyfS9oaWdobGlnaHQuanNAJHtUMi5oaWdobGlnaHRKc30vK2VzbWApO3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliPXQuZGVmYXVsdCx0aGlzLmhpZ2hsaWdodEpzTGlifSkoKSx0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRMaWdodHdlaWdodENoYXJ0cygpe3JldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliP3RoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI6dGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlP3RoaXMubGlnaHR3ZWlnaHRDaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAkeyQyfS9saWdodHdlaWdodC1jaGFydHNAJHtUMi5saWdodHdlaWdodENoYXJ0c30vK2VzbWApO3JldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliPXtjcmVhdGVDaGFydDp0LmNyZWF0ZUNoYXJ0LEFyZWFTZXJpZXM6dC5BcmVhU2VyaWVzLExpbmVTZXJpZXM6dC5MaW5lU2VyaWVzLENvbG9yVHlwZTp0LkNvbG9yVHlwZSxMaW5lVHlwZTp0LkxpbmVUeXBlLENyb3NzaGFpck1vZGU6dC5Dcm9zc2hhaXJNb2RlfSx0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGlifSkoKSx0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRFY2hhcnRzKCl7cmV0dXJuIHRoaXMuZWNoYXJ0c0xpYj90aGlzLmVjaGFydHNMaWI6dGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U6KHRoaXMuZWNoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAkeyQyfS9lY2hhcnRzQCR7VDIuZWNoYXJ0c30vZGlzdC9lY2hhcnRzLmVzbS5taW4uanNgKTtyZXR1cm4gdGhpcy5lY2hhcnRzTGliPXtpbml0OnQuaW5pdCxkaXNwb3NlOnQuZGlzcG9zZSxnZXRJbnN0YW5jZUJ5RG9tOnQuZ2V0SW5zdGFuY2VCeURvbX0sdGhpcy5lY2hhcnRzTGlifSkoKSx0aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFRpcHRhcCgpe3JldHVybiB0aGlzLnRpcHRhcExpYj90aGlzLnRpcHRhcExpYjp0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlP3RoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U6KHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXRbZSx0LGEscixuLG9dPWF3YWl0IFByb21pc2UuYWxsKFtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oaWkoKSxLYXQpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4obnN0KCksb3N0KSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGRzdCgpLGNzdCkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pihoc3QoKSxwc3QpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oRnN0KCksT3N0KSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGRpdCgpLGNpdCkpXSk7cmV0dXJuIHRoaXMudGlwdGFwTGliPXtFZGl0b3I6ZS5FZGl0b3IsU3RhcnRlcktpdDp0LmRlZmF1bHR8fHQuU3RhcnRlcktpdCxVbmRlcmxpbmU6YS5kZWZhdWx0fHxhLlVuZGVybGluZSxUZXh0QWxpZ246ci5kZWZhdWx0fHxyLlRleHRBbGlnbixMaW5rOm4uZGVmYXVsdHx8bi5MaW5rLFR5cG9ncmFwaHk6by5kZWZhdWx0fHxvLlR5cG9ncmFwaHl9LHRoaXMudGlwdGFwTGlifSkoKSx0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlKX1hc3luYyBwcmVsb2FkQWxsKCl7YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZFh0ZXJtKCksdGhpcy5sb2FkWHRlcm1GaXRBZGRvbigpLHRoaXMubG9hZFh0ZXJtU2VhcmNoQWRkb24oKSx0aGlzLmxvYWRIaWdobGlnaHRKcygpLHRoaXMubG9hZExpZ2h0d2VpZ2h0Q2hhcnRzKCksdGhpcy5sb2FkRWNoYXJ0cygpLHRoaXMubG9hZFRpcHRhcCgpXSl9aXNMb2FkZWQoZSl7c3dpdGNoKGUpe2Nhc2UieHRlcm0iOnJldHVybiB0aGlzLnh0ZXJtTGliIT09bnVsbDtjYXNlInh0ZXJtRml0QWRkb24iOnJldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWIhPT1udWxsO2Nhc2UieHRlcm1TZWFyY2hBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYiE9PW51bGw7Y2FzZSJoaWdobGlnaHRKcyI6cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWIhPT1udWxsO2Nhc2UibGlnaHR3ZWlnaHRDaGFydHMiOnJldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliIT09bnVsbDtjYXNlImVjaGFydHMiOnJldHVybiB0aGlzLmVjaGFydHNMaWIhPT1udWxsO2Nhc2UidGlwdGFwIjpyZXR1cm4gdGhpcy50aXB0YXBMaWIhPT1udWxsO2RlZmF1bHQ6cmV0dXJuITF9fX19KTt2YXIgT3U9ZygoKT0+e3J2YSgpO1RudCgpfSk7dmFyIEFRLG92YT1nKCgpPT57bmMoKTtwZSgpO1hkKCk7RXIoKTtxMWUoKTtPdSgpO0FRPWNsYXNzIGV4dGVuZHMgZ2l7c3RhdGlje2kodGhpcywiQ29kZUJsb2NrSGFuZGxlciIpfXR5cGU9ImNvZGUiO2hpZ2hsaWdodFRpbWVyPW51bGw7aGlnaGxpZ2h0SnM9bnVsbDtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiLHI9ZS5jb250ZW50fHwiIixuPXIuc3BsaXQoYApgKS5sZW5ndGgsbz0iIjtmb3IobGV0IHA9MTtwPD1uO3ArKylvKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7cH08L2Rpdj5gO2xldCBsPUgxZS5tYXAocD0+e2xldCBkPXAudG9Mb3dlckNhc2UoKTtyZXR1cm5gPG9wdGlvbiB2YWx1ZT0iJHtkfSIgJHtkPT09YT8ic2VsZWN0ZWQiOiIifT4ke3B9PC9vcHRpb24+YH0pLmpvaW4oIiIpO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiBkYXRhLWxhbmd1YWdlPSIke2F9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWhlYWRlciI+CiAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJsYW5ndWFnZS1zZWxlY3RvciIgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSI+CiAgICAgICAgICAgICR7bH0KICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29weS1idXR0b24iIHRpdGxlPSJDb3B5IGNvZGUiPgogICAgICAgICAgICA8c3ZnIGNsYXNzPSJjb3B5LWljb24iIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wIDYuNzVDMCA1Ljc4NC43ODQgNSAxLjc1IDVoMS41YS43NS43NSAwIDAxMCAxLjVoLTEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2Ny41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNy41YS4yNS4yNSAwIDAwLjI1LS4yNXYtMS41YS43NS43NSAwIDAxMS41IDB2MS41QTEuNzUgMS43NSAwIDAxOS4yNSAxNmgtNy41QTEuNzUgMS43NSAwIDAxMCAxNC4yNXYtNy41eiI+PC9wYXRoPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEuNzVDNSAuNzg0IDUuNzg0IDAgNi43NSAwaDcuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2Ny41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTFoLTcuNUExLjc1IDEuNzUgMCAwMTUgOS4yNXYtNy41em0xLjc1LS4yNWEuMjUuMjUgMCAwMC0uMjUuMjV2Ny41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNy41YS4yNS4yNSAwIDAwLjI1LS4yNXYtNy41YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTcuNXoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5LXRleHQiPkNvcHk8L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZS1udW1iZXJzIj4ke299PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWNvbnRlbnQiPgogICAgICAgICAgICA8cHJlIGNsYXNzPSJjb2RlLXByZSI+PGNvZGUgY2xhc3M9ImNvZGUtZWRpdG9yIiAKICAgICAgICAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwocil9PC9jb2RlPjwvcHJlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKSxuPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtYmxvY2stY29udGFpbmVyIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LWJ1dHRvbiIpLGw9ZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2Utc2VsZWN0b3IiKTtpZighcnx8IW4pcmV0dXJuO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixkPT57bGV0IHU9ZC50YXJnZXQudmFsdWU7dC5tZXRhZGF0YT17Li4udC5tZXRhZGF0YSxsYW5ndWFnZTp1fSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1sYW5ndWFnZSIsdSksdC5jb250ZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ciYmdGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHQpLGEub25JbnB1dCYmYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKX0pLG8mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntsZXQgZD1yLnRleHRDb250ZW50fHwiIjt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZCk7bGV0IHU9by5xdWVyeVNlbGVjdG9yKCIuY29weS10ZXh0IiksYz11LnRleHRDb250ZW50O3UudGV4dENvbnRlbnQ9IkNvcGllZCEiLG8uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dCgoKT0+e3UudGV4dENvbnRlbnQ9YyxvLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfWNhdGNoKHUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5OiIsdSk7bGV0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtjLnZhbHVlPWQsYy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGMuc3R5bGUub3BhY2l0eT0iMCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKSxjLnNlbGVjdCgpO3RyeXtkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpO2xldCBiPW8ucXVlcnlTZWxlY3RvcigiLmNvcHktdGV4dCIpLHY9Yi50ZXh0Q29udGVudDtiLnRleHRDb250ZW50PSJDb3BpZWQhIixvLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoKCk9PntiLnRleHRDb250ZW50PXYsby5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX1jYXRjaChiKXtjb25zb2xlLmVycm9yKCJGYWxsYmFjayBjb3B5IGZhaWxlZDoiLGIpfWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYyl9fSk7bGV0IHA9ITE7ci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntwPSEwLG4uY2xhc3NMaXN0LmFkZCgiZWRpdGluZyIpO2xldCBkPXIudGV4dENvbnRlbnR8fCIiO3IudGV4dENvbnRlbnQ9ZCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9d2luZG93LmdldFNlbGVjdGlvbigpO3IuZmlyc3RDaGlsZCYmKHUuc2V0U3RhcnQoci5maXJzdENoaWxkLDApLHUuY29sbGFwc2UoITApLGM/LnJlbW92ZUFsbFJhbmdlcygpLGM/LmFkZFJhbmdlKHUpKX0pLGEub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3A9ITEsbi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksdGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHQpLGEub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixkPT57YS5vbklucHV0KGQpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSksY2xlYXJUaW1lb3V0KHRoaXMuaGlnaGxpZ2h0VGltZXIpfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixkPT57aWYoZC5rZXk9PT0iVGFiIil7ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZih1JiZ1LnJhbmdlQ291bnQ+MCl7bGV0IGM9dS5nZXRSYW5nZUF0KDApLGI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAgIik7Yy5pbnNlcnROb2RlKGIpLGMuc2V0U3RhcnRBZnRlcihiKSxjLnNldEVuZEFmdGVyKGIpLHUucmVtb3ZlQWxsUmFuZ2VzKCksdS5hZGRSYW5nZShjKSxhLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSl9cmV0dXJufWlmKFsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhkLmtleSkpe2xldCB1PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSksYz1yLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoZC5rZXk9PT0iQXJyb3dMZWZ0IiYmdT09PTB8fGQua2V5PT09IkFycm93UmlnaHQiJiZ1PT09Yyl7YS5vbktleURvd24oZCk7cmV0dXJufWlmKGQua2V5PT09IkFycm93VXAifHxkLmtleT09PSJBcnJvd0Rvd24iKXtsZXQgYj0oci50ZXh0Q29udGVudHx8IiIpLnNwbGl0KGAKYCksdj10aGlzLmdldEN1cnJlbnRMaW5lSW5kZXgocik7aWYoZC5rZXk9PT0iQXJyb3dVcCImJnY9PT0wfHxkLmtleT09PSJBcnJvd0Rvd24iJiZ2PT09Yi5sZW5ndGgtMSl7YS5vbktleURvd24oZCk7cmV0dXJufX19YS5vbktleURvd24oZCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIixkPT57ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PWQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgidGV4dC9wbGFpbiIpO2lmKHUpe2xldCBjPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihjJiZjLnJhbmdlQ291bnQ+MCl7bGV0IGI9Yy5nZXRSYW5nZUF0KDApO2IuZGVsZXRlQ29udGVudHMoKTtsZXQgdj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh1KTtiLmluc2VydE5vZGUodiksYi5zZXRTdGFydEFmdGVyKHYpLGIuc2V0RW5kQWZ0ZXIodiksYy5yZW1vdmVBbGxSYW5nZXMoKSxjLmFkZFJhbmdlKGIpLGEub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKX19fSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+YS5vbkNvbXBvc2l0aW9uU3RhcnQoKSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PmEub25Db21wb3NpdGlvbkVuZCgpKSx0LmNvbnRlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1yJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsdCl9KX11cGRhdGVMaW5lTnVtYmVycyhlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIubGluZS1udW1iZXJzIik7aWYoIXR8fCFhKXJldHVybjtsZXQgbz0odC50ZXh0Q29udGVudHx8IiIpLnNwbGl0KGAKYCkubGVuZ3RofHwxLGw9IiI7Zm9yKGxldCBwPTE7cDw9bztwKyspbCs9YDxkaXYgY2xhc3M9ImxpbmUtbnVtYmVyIj4ke3B9PC9kaXY+YDthLmlubmVySFRNTD1sfWdldEN1cnJlbnRMaW5lSW5kZXgoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCF0fHx0LnJhbmdlQ291bnQ9PT0wKXJldHVybiAwO2xldCBhPXQuZ2V0UmFuZ2VBdCgwKSxyPWEuY2xvbmVSYW5nZSgpO3JldHVybiByLnNlbGVjdE5vZGVDb250ZW50cyhlKSxyLnNldEVuZChhLnN0YXJ0Q29udGFpbmVyLGEuc3RhcnRPZmZzZXQpLHIudG9TdHJpbmcoKS5zcGxpdChgCmApLmxlbmd0aC0xfWFzeW5jIGFwcGx5SGlnaGxpZ2h0aW5nKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZighYSlyZXR1cm47dGhpcy5oaWdobGlnaHRKc3x8KHRoaXMuaGlnaGxpZ2h0SnM9YXdhaXQgYW8uZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKSk7bGV0IHI9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKSxuPWEudGV4dENvbnRlbnR8fCIiLG89dC5tZXRhZGF0YT8ubGFuZ3VhZ2V8fCJ0eXBlc2NyaXB0Ijt0cnl7bGV0IGw9dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQobix7bGFuZ3VhZ2U6byxpZ25vcmVJbGxlZ2FsczohMH0pO2wudmFsdWUmJihhLmlubmVySFRNTD1sLnZhbHVlLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiZyIT09bnVsbCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57JHQuc2V0Q3Vyc29yUG9zaXRpb24oYSxyKX0pKX1jYXRjaChsKXtjb25zb2xlLndhcm4oIlN5bnRheCBoaWdobGlnaHRpbmcgZmFpbGVkOiIsbCl9fWVzY2FwZUh0bWwoZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSx0LmlubmVySFRNTH1nZXRDb250ZW50KGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpPy50ZXh0Q29udGVudHx8IiJ9c2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoYSYmKGEudGV4dENvbnRlbnQ9dCx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hKSl7bGV0IHI9e2lkOmEuZGF0YXNldC5ibG9ja0lkfHwiIix0eXBlOiJjb2RlIixjb250ZW50OnQsbWV0YWRhdGE6e2xhbmd1YWdlOmUucXVlcnlTZWxlY3RvcigiLmNvZGUtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1sYW5ndWFnZSIpfHwidHlwZXNjcmlwdCJ9fTt0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUscil9fWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhfHxhLnJhbmdlQ291bnQ9PT0wKXJldHVybiBudWxsO2xldCByPWEuZ2V0UmFuZ2VBdCgwKTtpZighdC5jb250YWlucyhyLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgbj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBuLnNlbGVjdE5vZGVDb250ZW50cyh0KSxuLnNldEVuZChyLnN0YXJ0Q29udGFpbmVyLHIuc3RhcnRPZmZzZXQpLG4udG9TdHJpbmcoKS5sZW5ndGh9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO3QmJiR0LnNldEN1cnNvclBvc2l0aW9uKHQsMCl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZih0KXtsZXQgYT10LnRleHRDb250ZW50Py5sZW5ndGh8fDA7JHQuc2V0Q3Vyc29yUG9zaXRpb24odCxhKX19Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2EmJihhLmZvY3VzKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiB0PT0ibnVtYmVyIiYmJHQuc2V0Q3Vyc29yUG9zaXRpb24oYSx0KX0pKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IHQ9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtpZih0PT09bnVsbClyZXR1cm4gbnVsbDtsZXQgYT10aGlzLmdldENvbnRlbnQoZSk7cmV0dXJue2JlZm9yZTphLnN1YnN0cmluZygwLHQpLGFmdGVyOmEuc3Vic3RyaW5nKHQpfX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIENvZGUgQmxvY2sgQ29udGFpbmVyIC0gTWluaW1hbGlzdCBzaGFkY24gc3R5bGUgKi8KICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgLSBTaW1wbGlmaWVkICovCiAgICAgIC5jb2RlLWhlYWRlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yOmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29weSBCdXR0b24gLSBNaW5pbWFsICovCiAgICAgIC5jb3B5LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uLmNvcGllZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246aG92ZXIgLmNvcHktaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktdGV4dCB7CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLyogQ29kZSBCb2R5ICovCiAgICAgIC5jb2RlLWJvZHkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogTGluZSBOdW1iZXJzIC0gU3VidGxlICovCiAgICAgIC5saW5lLW51bWJlcnMgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICB9CiAgICAgIAogICAgICAubGluZS1udW1iZXIgewogICAgICAgIHBhZGRpbmc6IDAgMTJweCAwIDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JnfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2RlIENvbnRlbnQgKi8KICAgICAgLmNvZGUtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtcHJlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JnfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFBsYWNlaG9sZGVyICovCiAgICAgIC5jb2RlLWVkaXRvcjplbXB0eTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAiLy8gVHlwZSBvciBwYXN0ZSBjb2RlIGhlcmUuLi4iOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFdoZW4gZWRpdGluZyAoZm9jdXNlZCksIHNob3cgZ3JleSB0ZXh0IHdpdGhvdXQgaGlnaGxpZ2h0aW5nICovCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfSAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyAuY29kZS1lZGl0b3IgKiB7CiAgICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLyogU3ludGF4IEhpZ2hsaWdodGluZyAtIE11dGVkIGNvbG9ycyAqLwogICAgICAuY29kZS1lZGl0b3IgLmhsanMta2V5d29yZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc3RyaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbnVtYmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtZnVuY3Rpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1jb21tZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXZhcmlhYmxlLAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0ciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWNsYXNzLAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdGl0bGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXBhcmFtcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbGl0ZXJhbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLW1ldGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1wdW5jdHVhdGlvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2QxZDVkYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXRhZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWF0dHJpYnV0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLXRhZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLWNsYXNzIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItaWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNlbGVjdGlvbiAqLwogICAgICAuY29kZS1lZGl0b3I6OnNlbGVjdGlvbiwKICAgICAgLmNvZGUtZWRpdG9yICo6OnNlbGVjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoOTksIDEwMiwgMjQxLCAwLjIpIiwicmdiYSg5OSwgMTAyLCAyNDEsIDAuMykiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nIC0gTWluaW1hbCAqLwogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgIGB9fX0pO3ZhciBOUSxudmE9ZygoKT0+e25jKCk7cGUoKTtSdSgpO1hkKCk7TlE9Y2xhc3MgZXh0ZW5kcyBnaXtzdGF0aWN7aSh0aGlzLCJMaXN0QmxvY2tIYW5kbGVyIil9dHlwZT0ibGlzdCI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSx0KXtsZXQgYT10PyIgc2VsZWN0ZWQiOiIiLG49KGUubWV0YWRhdGE/Lmxpc3RUeXBlfHwidW5vcmRlcmVkIik9PT0ib3JkZXJlZCI/Im9sIjoidWwiLG89dGhpcy5yZW5kZXJMaXN0Q29udGVudChlLmNvbnRlbnQsZS5tZXRhZGF0YSk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIGxpc3Qke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+JHtvfTwvZGl2PgogICAgYH1yZW5kZXJMaXN0Q29udGVudChlLHQpe2lmKCFlKXJldHVybiI8dWw+PGxpPjwvbGk+PC91bD4iO2xldCByPSh0Py5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixuPWUuc3BsaXQoYApgKS5maWx0ZXIobD0+bC50cmltKCkpO2lmKG4ubGVuZ3RoPT09MClyZXR1cm5gPCR7cn0+PGxpPjwvbGk+PC8ke3J9PmA7bGV0IG89bi5tYXAobD0+YDxsaT4ke2x9PC9saT5gKS5qb2luKCIiKTtyZXR1cm5gPCR7cn0+JHtvfTwvJHtyfT5gfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkxpc3RCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIGxpc3QgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn10LmNvbnRlbnQmJiFyLmlubmVySFRNTCYmKHIuaW5uZXJIVE1MPXRoaXMucmVuZGVyTGlzdENvbnRlbnQodC5jb250ZW50LHQubWV0YWRhdGEpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtpZihvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksbi5rZXk9PT0iRW50ZXIiJiYhbi5zaGlmdEtleSl7bGV0IGw9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGwmJmwucmFuZ2VDb3VudD4wKXtsZXQgZD1sLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIucGFyZW50RWxlbWVudD8uY2xvc2VzdCgibGkiKTtpZihkJiZkLnRleHRDb250ZW50PT09IiIpe24ucHJldmVudERlZmF1bHQoKSxhLm9uS2V5RG93bihuKTtyZXR1cm59fX1hLm9uS2V5RG93bihuKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57YS5vbkZvY3VzKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57YS5vbkJsdXIoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PnthLm9uQ29tcG9zaXRpb25TdGFydCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PnthLm9uQ29tcG9zaXRpb25FbmQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25Nb3VzZVVwPy4obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuPT57c2V0VGltZW91dCgoKT0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSwwKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscix0KX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSx0LGEpe2xldCByPWkoKCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBsPW8udG9TdHJpbmcoKTtpZihsLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgcD10LmdldFJvb3ROb2RlKCkuaG9zdCx1PXA/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGM9cD8uc2hhZG93Um9vdCxiPVtdO3UmJmIucHVzaCh1KSxjJiZiLnB1c2goYyk7bGV0IHY9JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5iKTtpZighdilyZXR1cm47bGV0IHg9JHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCx2LnN0YXJ0Q29udGFpbmVyKSxtPSR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5lbmRDb250YWluZXIpO2lmKHh8fG0pe2lmKGwhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1sO2xldCBmPSR0LmNyZWF0ZVJhbmdlRnJvbUluZm8odikseT1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OmwudHJpbSgpLGJsb2NrSWQ6YS5pZCxyYW5nZTpmLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9cjtsZXQgbj10LmdldFJvb3ROb2RlKCkuaG9zdDtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrLGw9dGhpcztuLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7bC5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixsLnNlbGVjdGlvbkhhbmRsZXIpLGwuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxvJiZhd2FpdCBvLmNhbGwobil9fX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUsdCl7bGV0IGE9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnQsYnViYmxlczohMCxjb21wb3NlZDohMH0pO2UuZGlzcGF0Y2hFdmVudChhKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIExpc3Qgc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5saXN0IHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCB1bCwKICAgICAgLmJsb2NrLmxpc3Qgb2wgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IGxpOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iIn1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz10Py5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9dD8uc2hhZG93Um9vdCxwPVtdO28mJnAucHVzaChvKSxsJiZwLnB1c2gobCk7bGV0IGQ9JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZHx8ISR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdS5zZWxlY3ROb2RlQ29udGVudHMoYSksdS5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSx1LnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWEpcmV0dXJuIiI7bGV0IHI9YS5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO3JldHVybiBBcnJheS5mcm9tKHIpLm1hcChvPT5vLnRleHRDb250ZW50fHwiIikuam9pbihgCmApfXNldENvbnRlbnQoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighcilyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXIsbD1yLnF1ZXJ5U2VsZWN0b3IoInVsLCBvbCIpPy50YWdOYW1lPT09Ik9MIjtyLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHQse2xpc3RUeXBlOmw/Im9yZGVyZWQiOiJ1bm9yZGVyZWQifSksbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWEpcmV0dXJuO2xldCByPWEucXVlcnlTZWxlY3RvcigibGkiKTtpZihyKXtsZXQgbj10aGlzLmdldEZpcnN0VGV4dE5vZGUocik7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtvLnNldFN0YXJ0KG4sMCksby5zZXRFbmQobiwwKSxsPy5yZW1vdmVBbGxSYW5nZXMoKSxsPy5hZGRSYW5nZShvKX19fXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybjtsZXQgcj1hLnF1ZXJ5U2VsZWN0b3IoImxpOmxhc3QtY2hpbGQiKTtpZihyKXtsZXQgbj10aGlzLmdldExhc3RUZXh0Tm9kZShyKTtpZihuKXtsZXQgbz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGw9d2luZG93LmdldFNlbGVjdGlvbigpLHA9bi50ZXh0Q29udGVudD8ubGVuZ3RofHwwO28uc2V0U3RhcnQobixwKSxvLnNldEVuZChuLHApLGw/LnJlbW92ZUFsbFJhbmdlcygpLGw/LmFkZFJhbmdlKG8pfX19Z2V0Rmlyc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCB0PTA7dDxlLmNoaWxkTm9kZXMubGVuZ3RoO3QrKyl7bGV0IGE9dGhpcy5nZXRGaXJzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1mb2N1cyhlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighcilyZXR1cm47ci5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxyLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHIuZm9jdXMoKTtsZXQgbj1pKCgpPT57dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUsYSk6dD09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKTp0eXBlb2YgdD09Im51bWJlciImJnRoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7cmV0dXJuIGUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKSxudWxsfX19KTt2YXIgUlEsbHZhPWcoKCk9PntuYygpO3BlKCk7UlE9Y2xhc3MgZXh0ZW5kcyBnaXtzdGF0aWN7aSh0aGlzLCJJbWFnZUJsb2NrSGFuZGxlciIpfXR5cGU9ImltYWdlIjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy51cmwscj1lLmNvbnRlbnR8fCJJbWFnZSIsbj1lLm1ldGFkYXRhPy5sb2FkaW5nO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtYmxvY2stY29udGFpbmVyJHt0PyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWhhcy1pbWFnZT0iJHshIWF9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAke24/dGhpcy5yZW5kZXJMb2FkaW5nKCk6YT90aGlzLnJlbmRlckltYWdlKGEscik6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpfQogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiAKICAgICAgICAgICAgICAgY2xhc3M9ImltYWdlLWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBhY2NlcHQ9ImltYWdlLyoiIAogICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLWljb24iIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iOC41IiBjeT0iOC41IiByPSIxLjUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjEgMTUgMTYgMTAgNSAyMSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXRleHQiIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPkNsaWNrIHRvIHVwbG9hZCBhbiBpbWFnZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1oaW50IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJJbWFnZShlLHQpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtY29udGFpbmVyIj4KICAgICAgICA8aW1nIHNyYz0iJHtlfSIgYWx0PSIke3RoaXMuZXNjYXBlSHRtbCh0KX0iIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJMb2FkaW5nKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS1sb2FkaW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGV4dCI+VXBsb2FkaW5nIGltYWdlLi4uPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1maWxlLWlucHV0Iik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBjb250YWluZXIiKTtyZXR1cm59aWYoIW4pe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBmaWxlIGlucHV0Iik7cmV0dXJufWxldCBvPXIucXVlcnlTZWxlY3RvcigiLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFBsYWNlaG9sZGVyIGNsaWNrZWQsIG9wZW5pbmcgZmlsZSBzZWxlY3RvciIpLG4uY2xpY2soKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5vbkZvY3VzKCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgbD0+e2xldCBkPWwudGFyZ2V0LmZpbGVzPy5bMF07ZCYmKGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogRmlsZSBzZWxlY3RlZDoiLGQubmFtZSksYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGQsdCxhKSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksdC5tZXRhZGF0YT8udXJsfHxyLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixhc3luYyBsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTtsZXQgcD1sLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07cCYmcC50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiYhdC5tZXRhZGF0YT8udXJsJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVVcGxvYWQocCx0LGEpfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntpZigobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJnQubWV0YWRhdGE/LnVybCl7dC5tZXRhZGF0YS51cmw9dm9pZCAwLHQubWV0YWRhdGEubG9hZGluZz0hMSx0LmNvbnRlbnQ9IiIsYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKTtyZXR1cm59YS5vbktleURvd24obCl9KX1hc3luYyBoYW5kbGVGaWxlVXBsb2FkKGUsdCxhKXtpZihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFN0YXJ0aW5nIGZpbGUgdXBsb2FkIix7ZmlsZU5hbWU6ZS5uYW1lLGZpbGVTaXplOmUuc2l6ZSxibG9ja0lkOnQuaWR9KSwhZS50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLGUudHlwZSk7cmV0dXJufWxldCByPTEwKjEwMjQqMTAyNDtpZihlLnNpemU+cil7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2UuIE1heGltdW0gc2l6ZSBpcyAxME1CIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmxvYWRpbmc9ITAsdC5tZXRhZGF0YS5maWxlTmFtZT1lLm5hbWUsdC5tZXRhZGF0YS5maWxlU2l6ZT1lLnNpemUsdC5tZXRhZGF0YS5taW1lVHlwZT1lLnR5cGUsY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTZXQgbG9hZGluZyBzdGF0ZSwgcmVxdWVzdGluZyB1cGRhdGUiKSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7dHJ5e2xldCBuPWF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChlKTt0Lm1ldGFkYXRhLnVybD1uLHQubWV0YWRhdGEubG9hZGluZz0hMTtsZXQgbz1lLm5hbWUucmVwbGFjZSgvXC5bXi8uXSskLywiIik7dC5jb250ZW50PW8sY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBVcGxvYWQgY29tcGxldGUsIHJlcXVlc3RpbmcgdXBkYXRlIix7aGFzVXJsOiEhdC5tZXRhZGF0YS51cmwsdXJsTGVuZ3RoOm4ubGVuZ3RoLGFsdFRleHQ6dC5jb250ZW50fSksYS5vblJlcXVlc3RVcGRhdGU/LigpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGxvYWQgaW1hZ2U6IixuKSx0Lm1ldGFkYXRhLmxvYWRpbmc9ITEsYS5vblJlcXVlc3RVcGRhdGU/LigpfX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgodCxhKT0+e2xldCByPW5ldyBGaWxlUmVhZGVyO3Iub25sb2FkPW49PntsZXQgbz1uLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBvPT0ic3RyaW5nIj90KG8pOmEobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxyLm9uZXJyb3I9YSxyLnJlYWRBc0RhdGFVUkwoZSl9KX1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2EmJihhLmNvbnRlbnQ9dCl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXt0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe3RoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBJbWFnZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBVcGxvYWQgUGxhY2Vob2xkZXIgKi8KICAgICAgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lcjpob3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWZmNmZmIiwiIzFlMWI0YiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnVwbG9hZC1pY29uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEltYWdlIENvbnRhaW5lciAqLwogICAgICAuaW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtY29udGFpbmVyIGltZyB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExvYWRpbmcgU3RhdGUgKi8KICAgICAgLmltYWdlLWxvYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQogICAgICAKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQogICAgICAKICAgICAgLmxvYWRpbmctdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgaW5wdXQgaGlkZGVuICovCiAgICAgIC5pbWFnZS1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBPUSxjdmE9ZygoKT0+e25jKCk7cGUoKTtPUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIllvdVR1YmVCbG9ja0hhbmRsZXIiKX10eXBlPSJ5b3V0dWJlIjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy52aWRlb0lkLHI9ZS5tZXRhZGF0YT8udXJsfHwiIjtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtYmxvY2stY29udGFpbmVyJHt0PyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWhhcy12aWRlbz0iJHshIWF9Ij4KICAgICAgICAke2E/dGhpcy5yZW5kZXJWaWRlbyhhKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKHIpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLXBsYWNlaG9sZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIj4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MTUgMy4xODRjLTMuNjA0LS4yNDYtMTEuNjMxLS4yNDUtMTUuMjMgMC0zLjg5Ny4yNjYtNC4zNTYgMi42Mi00LjM4NSA4LjgxNi4wMjkgNi4xODUuNDg0IDguNTQ5IDQuMzg1IDguODE2IDMuNi4yNDUgMTEuNjI2LjI0NiAxNS4yMyAwIDMuODk3LS4yNjYgNC4zNTYtMi42MiA0LjM4NS04LjgxNi0uMDI5LTYuMTg1LS40ODQtOC41NDktNC4zODUtOC44MTZ6bS0xMC42MTUgMTIuODE2di04bDggMy45OTMtOCA0LjAwN3oiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPkVudGVyIFlvdVR1YmUgVVJMPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9InVybCIgCiAgICAgICAgICAgICAgIGNsYXNzPSJ5b3V0dWJlLXVybC1pbnB1dCIgCiAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9Li4uIiAKICAgICAgICAgICAgICAgdmFsdWU9IiR7dGhpcy5lc2NhcGVIdG1sKGUpfSIgLz4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJ5b3V0dWJlLWVtYmVkLWJ0biI+RW1iZWQgVmlkZW88L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclZpZGVvKGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1jb250YWluZXIiPgogICAgICAgIDxpZnJhbWUgCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7ZX0iCiAgICAgICAgICBmcmFtZWJvcmRlcj0iMCIKICAgICAgICAgIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIgogICAgICAgICAgYWxsb3dmdWxsc2NyZWVuCiAgICAgICAgPjwvaWZyYW1lPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIik7aWYoIXIpcmV0dXJuO2lmKHQubWV0YWRhdGE/LnZpZGVvSWQpe3Iuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbD0+eyhsLmtleT09PSJEZWxldGUifHxsLmtleT09PSJCYWNrc3BhY2UiKSYmbC5wcmV2ZW50RGVmYXVsdCgpLGEub25LZXlEb3duKGwpfSk7cmV0dXJufWxldCBuPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtdXJsLWlucHV0Iiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWVtYmVkLWJ0biIpOyFufHwhb3x8KG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmVtYmVkVmlkZW8obi52YWx1ZSx0LGEpfSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsPT57bC5rZXk9PT0iRW50ZXIiPyhsLnByZXZlbnREZWZhdWx0KCksdGhpcy5lbWJlZFZpZGVvKG4udmFsdWUsdCxhKSk6bC5rZXk9PT0iRXNjYXBlIiYmKGwucHJldmVudERlZmF1bHQoKSxuLmJsdXIoKSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIixsPT57c2V0VGltZW91dCgoKT0+e2xldCBwPW4udmFsdWU7dGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQocCkmJnRoaXMuZW1iZWRWaWRlbyhwLHQsYSl9LDApfSksbi5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS51cmw9bi52YWx1ZX0pKX1lbWJlZFZpZGVvKGUsdCxhKXtsZXQgcj10aGlzLmV4dHJhY3RZb3VUdWJlVmlkZW9JZChlKTtpZighcil7Y29uc29sZS5lcnJvcigiSW52YWxpZCBZb3VUdWJlIFVSTCIpO3JldHVybn10Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS52aWRlb0lkPXIsdC5tZXRhZGF0YS51cmw9ZSx0LmNvbnRlbnQ9YFlvdVR1YmUgVmlkZW86ICR7cn1gLGEub25SZXF1ZXN0VXBkYXRlPy4oKX1leHRyYWN0WW91VHViZVZpZGVvSWQoZSl7bGV0IHQ9Wy8oPzp5b3V0dWJlXC5jb21cLyg/OlteXC9dK1wvLitcL3woPzp2fGUoPzptYmVkKT8pXC98LipbPyZddj0pfHlvdXR1XC5iZVwvKShbXiImP1wvIF17MTF9KS8sL3lvdXR1YmVcLmNvbVwvZW1iZWRcLyhbXiImP1wvIF17MTF9KS8sL3lvdXR1YmVcLmNvbVwvd2F0Y2hcP3Y9KFteIiY/XC8gXXsxMX0pLywveW91dHVcLmJlXC8oW14iJj9cLyBdezExfSkvXTtmb3IobGV0IGEgb2YgdCl7bGV0IHI9ZS5tYXRjaChhKTtpZihyKXJldHVybiByWzFdfXJldHVybiBudWxsfWVzY2FwZUh0bWwoZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSx0LmlubmVySFRNTH1nZXRDb250ZW50KGUpe3JldHVybiB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQoZSk/LmNvbnRlbnR8fCIifXNldENvbnRlbnQoZSx0KXtsZXQgYT10aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQoZSk7YSYmKGEuY29udGVudD10KX1nZXRCbG9ja0Zyb21FbGVtZW50KGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBhP3tpZDphLHR5cGU6InlvdXR1YmUiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXt0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe3RoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKSxhPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtdXJsLWlucHV0Iik7YT9hLmZvY3VzKCk6dCYmdC5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogWW91VHViZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBZb3VUdWJlIFBsYWNlaG9sZGVyICovCiAgICAgIC55b3V0dWJlLXBsYWNlaG9sZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogNDAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzFmMjkzNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0bjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFlvdVR1YmUgQ29udGFpbmVyICovCiAgICAgIC55b3V0dWJlLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IC8qIDE2OjkgYXNwZWN0IHJhdGlvICovCiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjMDAwMDAwIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1jb250YWluZXIgaWZyYW1lIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBGUSxkdmE9ZygoKT0+e25jKCk7cGUoKTtGUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIkF0dGFjaG1lbnRCbG9ja0hhbmRsZXIiKX10eXBlPSJhdHRhY2htZW50IjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5maWxlc3x8W107cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaWNvbiI+XHV7MUY0Q0V9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LXRpdGxlIj5GaWxlIEF0dGFjaG1lbnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1saXN0Ij4KICAgICAgICAgICR7YS5sZW5ndGg+MD90aGlzLnJlbmRlckZpbGVzKGEpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgCiAgICAgICAgICAgICAgIGNsYXNzPSJhdHRhY2htZW50LWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBtdWx0aXBsZSAKICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgogICAgICAgICR7YS5sZW5ndGg+MD8nPGJ1dHRvbiBjbGFzcz0iYWRkLW1vcmUtZmlsZXMiPkFkZCBNb3JlIEZpbGVzPC9idXR0b24+JzoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LXBsYWNlaG9sZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5DbGljayB0byBhZGQgZmlsZXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci1oaW50Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlcyhlKXtyZXR1cm4gZS5tYXAodD0+YAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIGRhdGEtZmlsZS1pZD0iJHt0LmlkfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pY29uIj4ke3RoaXMuZ2V0RmlsZUljb24odC50eXBlKX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1uYW1lIj4ke3RoaXMuZXNjYXBlSHRtbCh0Lm5hbWUpfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1zaXplIj4ke3RoaXMuZm9ybWF0RmlsZVNpemUodC5zaXplKX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtZmlsZSIgZGF0YS1maWxlLWlkPSIke3QuaWR9Ij5ceEQ3PC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYCkuam9pbigiIil9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWZpbGUtaW5wdXQiKTtpZighcnx8IW4pe2NvbnNvbGUuZXJyb3IoIkF0dGFjaG1lbnRCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmZpbGVzfHwodC5tZXRhZGF0YS5maWxlcz1bXSk7bGV0IG89ci5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1wbGFjZWhvbGRlciIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHA9PntwLnByZXZlbnREZWZhdWx0KCkscC5zdG9wUHJvcGFnYXRpb24oKSxuLmNsaWNrKCl9KTtsZXQgbD1yLnF1ZXJ5U2VsZWN0b3IoIi5hZGQtbW9yZS1maWxlcyIpO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHA9PntwLnByZXZlbnREZWZhdWx0KCkscC5zdG9wUHJvcGFnYXRpb24oKSxuLmNsaWNrKCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgcD0+e2xldCBkPXAudGFyZ2V0LHU9ZC5maWxlczt1JiZ1Lmxlbmd0aD4wJiYoYXdhaXQgdGhpcy5oYW5kbGVGaWxlQXR0YWNobWVudHModSx0LGEpLGQudmFsdWU9IiIpfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscD0+e2xldCBkPXAudGFyZ2V0O2lmKGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZW1vdmUtZmlsZSIpKXtwLnByZXZlbnREZWZhdWx0KCkscC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgdT1kLmdldEF0dHJpYnV0ZSgiZGF0YS1maWxlLWlkIik7dSYmdGhpcy5yZW1vdmVGaWxlKHUsdCxhKX19KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixwPT57cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixwPT57cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsYXN5bmMgcD0+e3AucHJldmVudERlZmF1bHQoKSxwLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7bGV0IGQ9cC5kYXRhVHJhbnNmZXI/LmZpbGVzO2QmJmQubGVuZ3RoPjAmJmF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGQsdCxhKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixwPT57aWYoKHAua2V5PT09IkRlbGV0ZSJ8fHAua2V5PT09IkJhY2tzcGFjZSIpJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ciYmdC5tZXRhZGF0YT8uZmlsZXM/Lmxlbmd0aD4wKXtwLnByZXZlbnREZWZhdWx0KCksdC5tZXRhZGF0YS5maWxlcz1bXSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWEub25LZXlEb3duKHApfSl9YXN5bmMgaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGUsdCxhKXt0Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS5maWxlc3x8KHQubWV0YWRhdGEuZmlsZXM9W10pO2ZvcihsZXQgciBvZiBBcnJheS5mcm9tKGUpKXRyeXtsZXQgbj1hd2FpdCB0aGlzLmZpbGVUb0RhdGFVcmwociksbz17aWQ6dGhpcy5nZW5lcmF0ZUlkKCksbmFtZTpyLm5hbWUsc2l6ZTpyLnNpemUsdHlwZTpyLnR5cGUsZGF0YTpufTt0Lm1ldGFkYXRhLmZpbGVzLnB1c2gobyl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGF0dGFjaCBmaWxlOiIsci5uYW1lLG4pfXQuY29udGVudD1gJHt0Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7dC5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgLGEub25SZXF1ZXN0VXBkYXRlPy4oKX1yZW1vdmVGaWxlKGUsdCxhKXt0Lm1ldGFkYXRhPy5maWxlcyYmKHQubWV0YWRhdGEuZmlsZXM9dC5tZXRhZGF0YS5maWxlcy5maWx0ZXIocj0+ci5pZCE9PWUpLHQuY29udGVudD10Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aD4wP2Ake3QubWV0YWRhdGEuZmlsZXMubGVuZ3RofSBmaWxlJHt0Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aCE9PTE/InMiOiIifSBhdHRhY2hlZGA6IiIsYS5vblJlcXVlc3RVcGRhdGU/LigpKX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgodCxhKT0+e2xldCByPW5ldyBGaWxlUmVhZGVyO3Iub25sb2FkPW49PntsZXQgbz1uLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBvPT0ic3RyaW5nIj90KG8pOmEobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxyLm9uZXJyb3I9YSxyLnJlYWRBc0RhdGFVUkwoZSl9KX1nZXRGaWxlSWNvbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCJpbWFnZS8iKT8iXHV7MUY1QkN9XHVGRTBGIjplLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJcdXsxRjNBNX0iOmUuc3RhcnRzV2l0aCgiYXVkaW8vIik/Ilx1ezFGM0I1fSI6ZS5pbmNsdWRlcygicGRmIik/Ilx1ezFGNEM0fSI6ZS5pbmNsdWRlcygiemlwIil8fGUuaW5jbHVkZXMoInJhciIpfHxlLmluY2x1ZGVzKCJ0YXIiKT8iXHV7MUY1QzR9XHVGRTBGIjplLmluY2x1ZGVzKCJzaGVldCIpPyJcdXsxRjRDQX0iOmUuaW5jbHVkZXMoImRvY3VtZW50Iil8fGUuaW5jbHVkZXMoIm1zd29yZCIpPyJcdXsxRjRERH0iOmUuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJcdXsxRjRDQn0iOmUuaW5jbHVkZXMoInRleHQiKT8iXHV7MUY0QzN9IjoiXHV7MUY0QzF9In1mb3JtYXRGaWxlU2l6ZShlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHQ9MTAyNCxhPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxyPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2codCkpO3JldHVybiBwYXJzZUZsb2F0KChlL01hdGgucG93KHQscikpLnRvRml4ZWQoMikpKyIgIithW3JdfWdlbmVyYXRlSWQoKXtyZXR1cm5gZmlsZS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YH1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2EmJihhLmNvbnRlbnQ9dCl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4gYT97aWQ6YSx0eXBlOiJhdHRhY2htZW50Iixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBBdHRhY2htZW50IEJsb2NrIENvbnRhaW5lciAqLwogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lci5kcmFnLW92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5hdHRhY2htZW50LWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgTGlzdCAqLwogICAgICAuYXR0YWNobWVudC1saXN0IHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgbWluLWhlaWdodDogODBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFBsYWNlaG9sZGVyICovCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIEl0ZW1zICovCiAgICAgIC5hdHRhY2htZW50LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1pbmZvIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLXNpemUgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQogICAgICAKICAgICAgLnJlbW92ZS1maWxlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLnJlbW92ZS1maWxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsIiM5OTFiMWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZjYTVhNSIsIiNkYzI2MjYiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2ZjYTVhNSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQWRkIE1vcmUgRmlsZXMgQnV0dG9uICovCiAgICAgIC5hZGQtbW9yZS1maWxlcyB7CiAgICAgICAgbWFyZ2luOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgfQogICAgICAKICAgICAgLmFkZC1tb3JlLWZpbGVzOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhpZGRlbiBmaWxlIGlucHV0ICovCiAgICAgIC5hdHRhY2htZW50LWZpbGUtaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgYH19fSk7dmFyIEJRLHV2YT1nKCgpPT57bmMoKTtwZSgpO0JRPWNsYXNzIGV4dGVuZHMgZ2l7c3RhdGlje2kodGhpcywiRGl2aWRlckJsb2NrSGFuZGxlciIpfXR5cGU9ImRpdmlkZXIiO3JlbmRlcihlLHQpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYmxvY2sgZGl2aWRlciR7dD8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IiB0YWJpbmRleD0iMCI+CiAgICAgICAgPGhyPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmRpdmlkZXIiKTtyJiYoci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e24uc3RvcFByb3BhZ2F0aW9uKCksci5mb2N1cygpLGEub25Gb2N1cz8uKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cz8uKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57YS5vbkJsdXI/LigpfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57KG4ua2V5PT09IkJhY2tzcGFjZSJ8fG4ua2V5PT09IkRlbGV0ZSIpJiZuLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24/LihuKX0pKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5kaXZpZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJsb2NrLmRpdmlkZXI6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBIUSxwdmE9ZygoKT0+e25jKCk7cGUoKTtIUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIk1hcmtkb3duQmxvY2tIYW5kbGVyIil9dHlwZT0ibWFya2Rvd24iO3JlbmRlcihlLHQpe2xldCBhPWUubWV0YWRhdGE/LmlzRWRpdE1vZGU/PyEwLHI9ZS5jb250ZW50fHwiIjtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9IiR7YX0iPgogICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1pY29uIj5NXHUyMTkzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi10aXRsZSI+TWFya2Rvd248L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im1hcmtkb3duLXRvZ2dsZS1tb2RlIiB0aXRsZT0iJHthPyJQcmV2aWV3IjoiRWRpdCJ9Ij4KICAgICAgICAgICAgJHthPyJcdXsxRjQ0MX1cdUZFMEYiOiJcdTI3MEZcdUZFMEYifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+CiAgICAgICAgICAke2E/dGhpcy5yZW5kZXJFZGl0b3Iocik6dGhpcy5yZW5kZXJQcmV2aWV3KHIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKGUpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJtYXJrZG93bi1lZGl0b3IiIAogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIG1hcmtkb3duIGNvbnRlbnQuLi4iCiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwoZSl9PC90ZXh0YXJlYT4KICAgIGB9cmVuZGVyUHJldmlldyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLXByZXZpZXciPgogICAgICAgICR7dGhpcy5wYXJzZU1hcmtkb3duKGUpfHwnPGRpdiBjbGFzcz0icHJldmlldy1lbXB0eSI+Tm8gY29udGVudCB0byBwcmV2aWV3PC9kaXY+J30KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXRvZ2dsZS1tb2RlIik7aWYoIXJ8fCFuKXtjb25zb2xlLmVycm9yKCJNYXJrZG93bkJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEuaXNFZGl0TW9kZT09PXZvaWQgMCYmKHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e2lmKG8ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpLHQubWV0YWRhdGEuaXNFZGl0TW9kZSl7bGV0IGw9ci5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7bCYmKHQuY29udGVudD1sLnZhbHVlKX10Lm1ldGFkYXRhLmlzRWRpdE1vZGU9IXQubWV0YWRhdGEuaXNFZGl0TW9kZSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcihlLHQsYSk6dGhpcy5zZXR1cFByZXZpZXcoZSx0LGEpfXNldHVwRWRpdG9yKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyJiYoci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e3QuY29udGVudD1yLnZhbHVlfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57aWYobi5rZXk9PT0iVGFiIil7bi5wcmV2ZW50RGVmYXVsdCgpO2xldCBvPXIuc2VsZWN0aW9uU3RhcnQsbD1yLnNlbGVjdGlvbkVuZCxwPXIudmFsdWU7aWYobi5zaGlmdEtleSl7bGV0IGM9cC5zdWJzdHJpbmcoMCxvKS5sYXN0SW5kZXhPZihgCmApKzEsYj1wLnN1YnN0cmluZyhjLG8pO2Iuc3RhcnRzV2l0aCgiICAiKSYmKHIudmFsdWU9cC5zdWJzdHJpbmcoMCxjKStiLnN1YnN0cmluZygyKStwLnN1YnN0cmluZyhvKSxyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPW8tMil9ZWxzZSByLnZhbHVlPXAuc3Vic3RyaW5nKDAsbykrIiAgIitwLnN1YnN0cmluZyhsKSxyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPW8rMjt0LmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKG4uY3RybEtleXx8bi5tZXRhS2V5KSYmbi5rZXk9PT0iYiIpe24ucHJldmVudERlZmF1bHQoKSx0aGlzLndyYXBTZWxlY3Rpb24ociwiKioiLCIqKiIpLHQuY29udGVudD1yLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSJpIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMud3JhcFNlbGVjdGlvbihyLCJfIiwiXyIpLHQuY29udGVudD1yLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSJrIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5zZXJ0TGluayhyKSx0LmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59YS5vbktleURvd24obil9KSx0aGlzLmF1dG9SZXNpemUociksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PnRoaXMuYXV0b1Jlc2l6ZShyKSkpfXNldHVwUHJldmlldyhlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1wcmV2aWV3Iik7IXJ8fCFufHwobi5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57aWYoby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7by5wcmV2ZW50RGVmYXVsdCgpLHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWEub25LZXlEb3duKG8pfSkpfXdyYXBTZWxlY3Rpb24oZSx0LGEpe2xldCByPWUuc2VsZWN0aW9uU3RhcnQsbj1lLnNlbGVjdGlvbkVuZCxvPWUudmFsdWUuc3Vic3RyaW5nKHIsbiksbD10KyhvfHwidGV4dCIpK2E7ZS52YWx1ZT1lLnZhbHVlLnN1YnN0cmluZygwLHIpK2wrZS52YWx1ZS5zdWJzdHJpbmcobiksbz8oZS5zZWxlY3Rpb25TdGFydD1yLGUuc2VsZWN0aW9uRW5kPXIrbC5sZW5ndGgpOihlLnNlbGVjdGlvblN0YXJ0PXIrdC5sZW5ndGgsZS5zZWxlY3Rpb25FbmQ9cit0Lmxlbmd0aCs0KSxlLmZvY3VzKCl9aW5zZXJ0TGluayhlKXtsZXQgdD1lLnNlbGVjdGlvblN0YXJ0LGE9ZS5zZWxlY3Rpb25FbmQsbj1lLnZhbHVlLnN1YnN0cmluZyh0LGEpfHwibGluayB0ZXh0IixvPWBbJHtufV0odXJsKWA7ZS52YWx1ZT1lLnZhbHVlLnN1YnN0cmluZygwLHQpK28rZS52YWx1ZS5zdWJzdHJpbmcoYSksZS5zZWxlY3Rpb25TdGFydD10K24ubGVuZ3RoKzMsZS5zZWxlY3Rpb25FbmQ9dCtuLmxlbmd0aCs2LGUuZm9jdXMoKX1hdXRvUmVzaXplKGUpe2Uuc3R5bGUuaGVpZ2h0PSJhdXRvIixlLnN0eWxlLmhlaWdodD1lLnNjcm9sbEhlaWdodCsicHgifXBhcnNlTWFya2Rvd24oZSl7bGV0IHQ9dGhpcy5lc2NhcGVIdG1sKGUpO3JldHVybiB0PXQucmVwbGFjZSgvXiMjIyAoLispJC9nbSwiPGgzPiQxPC9oMz4iKSx0PXQucmVwbGFjZSgvXiMjICguKykkL2dtLCI8aDI+JDE8L2gyPiIpLHQ9dC5yZXBsYWNlKC9eIyAoLispJC9nbSwiPGgxPiQxPC9oMT4iKSx0PXQucmVwbGFjZSgvXCpcKiguKz8pXCpcKi9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL19fKC4rPylfXy9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL1wqKC4rPylcKi9nLCI8ZW0+JDE8L2VtPiIpLHQ9dC5yZXBsYWNlKC9fKC4rPylfL2csIjxlbT4kMTwvZW0+IiksdD10LnJlcGxhY2UoL2BgYChbXHNcU10qPylgYGAvZywiPHByZT48Y29kZT4kMTwvY29kZT48L3ByZT4iKSx0PXQucmVwbGFjZSgvYCguKz8pYC9nLCI8Y29kZT4kMTwvY29kZT4iKSx0PXQucmVwbGFjZSgvXFsoW15cXV0rKVxdXCgoW14pXSspXCkvZywnPGEgaHJlZj0iJDIiPiQxPC9hPicpLHQ9dC5yZXBsYWNlKC9eXCogKC4rKSQvZ20sIjxsaT4kMTwvbGk+IiksdD10LnJlcGxhY2UoL14tICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC9eXGQrXC4gKC4rKSQvZ20sIjxsaT4kMTwvbGk+IiksdD10LnJlcGxhY2UoLyg8bGk+Lio8XC9saT5cbj8pKy9nLGE9PiI8dWw+IithKyI8L3VsPiIpLHQ9dC5yZXBsYWNlKC9cblxuL2csIjwvcD48cD4iKSx0PSI8cD4iK3QrIjwvcD4iLHQ9dC5yZXBsYWNlKC88cD48XC9wPi9nLCIiKSx0PXQucmVwbGFjZSgvPHA+KDxoWzEtM10+KS9nLCIkMSIpLHQ9dC5yZXBsYWNlKC8oPFwvaFsxLTNdPik8XC9wPi9nLCIkMSIpLHQ9dC5yZXBsYWNlKC88cD4oPHVsPikvZywiJDEiKSx0PXQucmVwbGFjZSgvKDxcL3VsPik8XC9wPi9nLCIkMSIpLHQ9dC5yZXBsYWNlKC88cD4oPHByZT4pL2csIiQxIiksdD10LnJlcGxhY2UoLyg8XC9wcmU+KTxcL3A+L2csIiQxIiksdH1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZih0KXJldHVybiB0LnZhbHVlO2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4iIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7YSYmKGEudmFsdWU9dCx0aGlzLmF1dG9SZXNpemUoYSkpfWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3JldHVybiB0P3Quc2VsZWN0aW9uU3RhcnQ6bnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3Q/KHQuc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9MCx0LmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYodCl7bGV0IGE9dC52YWx1ZS5sZW5ndGg7dC5zZWxlY3Rpb25TdGFydD10LnNlbGVjdGlvbkVuZD1hLHQuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7dD90LmZvY3VzKCk6ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tcHJldmlldyIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2E/dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiB0PT0ibnVtYmVyIiYmKGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9dCxhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKCF0KXJldHVybiBudWxsO2xldCBhPXQuc2VsZWN0aW9uU3RhcnQ7cmV0dXJue2JlZm9yZTp0LnZhbHVlLnN1YnN0cmluZygwLGEpLGFmdGVyOnQudmFsdWUuc3Vic3RyaW5nKGEpfX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIE1hcmtkb3duIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAubWFya2Rvd24tYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAubWFya2Rvd24taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdG9nZ2xlLW1vZGUgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAubWFya2Rvd24tY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBFZGl0b3IgKi8KICAgICAgLm1hcmtkb3duLWVkaXRvciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAubWFya2Rvd24tcHJldmlldyB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiA5NnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnByZXZpZXctZW1wdHkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAvKiBNYXJrZG93biBwcmV2aWV3IHN0eWxlcyAqLwogICAgICAubWFya2Rvd24tcHJldmlldyBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxNnB4IDAgOHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTRweCAwIDZweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgzIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDEycHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyB1bCwKICAgICAgLm1hcmtkb3duLXByZXZpZXcgb2wgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBlbSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGJsb2NrcXVvdGUgewogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgIGB9fX0pO3ZhciBxUSxodmE9ZygoKT0+e25jKCk7cGUoKTtxUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIkh0bWxCbG9ja0hhbmRsZXIiKX10eXBlPSJodG1sIjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxyPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9IiR7YX0iPgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtaWNvbiI+Jmx0Oy8mZ3Q7PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLXRpdGxlIj5IVE1MPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJodG1sLXRvZ2dsZS1tb2RlIiB0aXRsZT0iJHthPyJQcmV2aWV3IjoiRWRpdCJ9Ij4KICAgICAgICAgICAgJHthPyJcdXsxRjQ0MX1cdUZFMEYiOiJcdTI3MEZcdUZFMEYifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC1jb250ZW50Ij4KICAgICAgICAgICR7YT90aGlzLnJlbmRlckVkaXRvcihyKTp0aGlzLnJlbmRlclByZXZpZXcocil9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJFZGl0b3IoZSl7cmV0dXJuYAogICAgICA8dGV4dGFyZWEgY2xhc3M9Imh0bWwtZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBIVE1MIGNvbnRlbnQuLi4iCiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwoZSl9PC90ZXh0YXJlYT4KICAgIGB9cmVuZGVyUHJldmlldyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Imh0bWwtcHJldmlldyI+CiAgICAgICAgJHtlfHwnPGRpdiBjbGFzcz0icHJldmlldy1lbXB0eSI+Tm8gY29udGVudCB0byBwcmV2aWV3PC9kaXY+J30KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC10b2dnbGUtbW9kZSIpO2lmKCFyfHwhbil7Y29uc29sZS5lcnJvcigiSHRtbEJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEuaXNFZGl0TW9kZT09PXZvaWQgMCYmKHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e2lmKG8ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpLHQubWV0YWRhdGEuaXNFZGl0TW9kZSl7bGV0IGw9ci5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtsJiYodC5jb250ZW50PWwudmFsdWUpfXQubWV0YWRhdGEuaXNFZGl0TW9kZT0hdC5tZXRhZGF0YS5pc0VkaXRNb2RlLGEub25SZXF1ZXN0VXBkYXRlPy4oKX0pLHQubWV0YWRhdGEuaXNFZGl0TW9kZT90aGlzLnNldHVwRWRpdG9yKGUsdCxhKTp0aGlzLnNldHVwUHJldmlldyhlLHQsYSl9c2V0dXBFZGl0b3IoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7ciYmKHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0LmNvbnRlbnQ9ci52YWx1ZSx0aGlzLnZhbGlkYXRlSHRtbChyLnZhbHVlKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2lmKG4ua2V5PT09IlRhYiIpe24ucHJldmVudERlZmF1bHQoKTtsZXQgbz1yLnNlbGVjdGlvblN0YXJ0LGw9ci5zZWxlY3Rpb25FbmQscD1yLnZhbHVlO2lmKG4uc2hpZnRLZXkpe2xldCBjPXAuc3Vic3RyaW5nKDAsbykubGFzdEluZGV4T2YoYApgKSsxLGI9cC5zdWJzdHJpbmcoYyxvKTtiLnN0YXJ0c1dpdGgoIiAgIikmJihyLnZhbHVlPXAuc3Vic3RyaW5nKDAsYykrYi5zdWJzdHJpbmcoMikrcC5zdWJzdHJpbmcobyksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1vLTIpfWVsc2Ugci52YWx1ZT1wLnN1YnN0cmluZygwLG8pKyIgICIrcC5zdWJzdHJpbmcobCksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1vKzI7dC5jb250ZW50PXIudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09Ii8iKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy5hdXRvQ2xvc2VUYWcociksdC5jb250ZW50PXIudmFsdWU7cmV0dXJufWEub25LZXlEb3duKG4pfSksdGhpcy5hdXRvUmVzaXplKHIpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUocikpKX1zZXR1cFByZXZpZXcoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKTshcnx8IW58fChuLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksbi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntpZihvLmtleT09PSJFbnRlciImJiFvLnNoaWZ0S2V5KXtvLnByZXZlbnREZWZhdWx0KCksdC5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwLGEub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59YS5vbktleURvd24obyl9KSx0aGlzLnNhbmRib3hDb250ZW50KG4pKX1hdXRvQ2xvc2VUYWcoZSl7bGV0IHQ9ZS5zZWxlY3Rpb25TdGFydCxhPWUudmFsdWUscj10O2Zvcig7cj4wJiZhW3ItMV0hPT0iPCI7KXItLTtpZihyPjApe2xldCBvPWEuc3Vic3RyaW5nKHIsdCkubWF0Y2goL14oXHcrKS8pO2lmKG8pe2xldCBwPWA8LyR7b1sxXX0+YDtlLnZhbHVlPWEuc3Vic3RyaW5nKDAsdCkrIj4iK3ArYS5zdWJzdHJpbmcodCksZS5zZWxlY3Rpb25TdGFydD1lLnNlbGVjdGlvbkVuZD10KzF9fX1hdXRvUmVzaXplKGUpe2Uuc3R5bGUuaGVpZ2h0PSJhdXRvIixlLnN0eWxlLmhlaWdodD1lLnNjcm9sbEhlaWdodCsicHgifXZhbGlkYXRlSHRtbChlKXtsZXQgdD1bXSxhPS88XC8/KFthLXpBLVpdW2EtekEtWjAtOV0qKVxiW14+XSo+L2cscjtmb3IoOyhyPWEuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG49clswXS5zdGFydHNXaXRoKCI8LyIpLG89clsxXS50b0xvd2VyQ2FzZSgpO2lmKG4pe2lmKHQubGVuZ3RoPT09MHx8dFt0Lmxlbmd0aC0xXSE9PW8pcmV0dXJuIGNvbnNvbGUud2FybihgTWlzbWF0Y2hlZCBjbG9zaW5nIHRhZzogJHtvfWApLCExO3QucG9wKCl9ZWxzZSByWzBdLmVuZHNXaXRoKCIvPiIpfHx0LnB1c2gobyl9cmV0dXJuIHQubGVuZ3RoPjA/KGNvbnNvbGUud2FybihgVW5jbG9zZWQgdGFnczogJHt0LmpvaW4oIiwgIil9YCksITEpOiEwfXNhbmRib3hDb250ZW50KGUpe2UucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikuZm9yRWFjaChuPT5uLnJlbW92ZSgpKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5mb3JFYWNoKG49PntBcnJheS5mcm9tKG4uYXR0cmlidXRlcykuZm9yRWFjaChvPT57by5uYW1lLnN0YXJ0c1dpdGgoIm9uIikmJm4ucmVtb3ZlQXR0cmlidXRlKG8ubmFtZSl9KX0pLGUucXVlcnlTZWxlY3RvckFsbCgiZm9ybSIpLmZvckVhY2gobj0+e24uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixvPT57by5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCl9KX0pfWVzY2FwZUh0bWwoZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSx0LmlubmVySFRNTH1nZXRDb250ZW50KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYodClyZXR1cm4gdC52YWx1ZTtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4iIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTthJiYoYS52YWx1ZT10LHRoaXMuYXV0b1Jlc2l6ZShhKSl9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyZXR1cm4gdD90LnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3Q/KHQuc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9MCx0LmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZih0KXtsZXQgYT10LnZhbHVlLmxlbmd0aDt0LnNlbGVjdGlvblN0YXJ0PXQuc2VsZWN0aW9uRW5kPWEsdC5mb2N1cygpfWVsc2UgdGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3Q/dC5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLmh0bWwtcHJldmlldyIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7YT90PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6dD09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIHQ9PSJudW1iZXIiJiYoYS5zZWxlY3Rpb25TdGFydD1hLnNlbGVjdGlvbkVuZD10LGEuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZighdClyZXR1cm4gbnVsbDtsZXQgYT10LnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6dC52YWx1ZS5zdWJzdHJpbmcoMCxhKSxhZnRlcjp0LnZhbHVlLnN1YnN0cmluZyhhKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBIVE1MIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAuaHRtbC1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLmh0bWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGUgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC10b2dnbGUtbW9kZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5odG1sLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5odG1sLWVkaXRvciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1lZGl0b3I6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBQcmV2aWV3ICovCiAgICAgIC5odG1sLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogU2FuZGJveGVkIEhUTUwgcHJldmlldyBzdHlsZXMgKi8KICAgICAgLmh0bWwtcHJldmlldyAqIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgaW1nIHsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGFibGUgewogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCwKICAgICAgLmh0bWwtcHJldmlldyB0ZCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgIGB9fX0pO3ZhciAkbnQ9ZygoKT0+e25jKCk7ZXZhKCk7dHZhKCk7YXZhKCk7c3ZhKCk7aXZhKCk7b3ZhKCk7bnZhKCk7bHZhKCk7Y3ZhKCk7ZHZhKCk7dXZhKCk7cHZhKCk7aHZhKCl9KTtmdW5jdGlvbiBYSmEoKXtBcy5yZWdpc3RlcigiZGl2aWRlciIsbmV3IEJRKSxBcy5yZWdpc3RlcigicGFyYWdyYXBoIixuZXcgUFEpLEFzLnJlZ2lzdGVyKCJoZWFkaW5nLTEiLG5ldyBRZygiaGVhZGluZy0xIikpLEFzLnJlZ2lzdGVyKCJoZWFkaW5nLTIiLG5ldyBRZygiaGVhZGluZy0yIikpLEFzLnJlZ2lzdGVyKCJoZWFkaW5nLTMiLG5ldyBRZygiaGVhZGluZy0zIikpLEFzLnJlZ2lzdGVyKCJxdW90ZSIsbmV3IElRKSxBcy5yZWdpc3RlcigiY29kZSIsbmV3IEFRKSxBcy5yZWdpc3RlcigibGlzdCIsbmV3IE5RKSxBcy5yZWdpc3RlcigiaW1hZ2UiLG5ldyBSUSksQXMucmVnaXN0ZXIoInlvdXR1YmUiLG5ldyBPUSksQXMucmVnaXN0ZXIoImF0dGFjaG1lbnQiLG5ldyBGUSksQXMucmVnaXN0ZXIoIm1hcmtkb3duIixuZXcgSFEpLEFzLnJlZ2lzdGVyKCJodG1sIixuZXcgcVEpfXZhciBEbnQ9ZygoKT0+eyRudCgpO2koWEphLCJyZWdpc3RlckFsbEJsb2NrSGFuZGxlcnMiKSxYSmEoKX0pO3ZhciBWMWUsTG50PWcoKCk9PntwZSgpO1B1KCk7TGwoKTtaZygpO3ExZSgpO1YxZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnTW9kYWxNYW5hZ2VyIil9c3RhdGljIGFzeW5jIHNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntsZXQgdD1udWxsO2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNlbGVjdCBQcm9ncmFtbWluZyBMYW5ndWFnZSIsY29udGVudDp3YAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGFuZ3VhZ2UtY29udGFpbmVyIHsKICAgICAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTIwcHgsIDFmcikpOwogICAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWdyaWQiPgogICAgICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAoYT0+d2AKICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1idXR0b24gJHt0PT09YS50b0xvd2VyQ2FzZSgpPyJzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dD1hLnRvTG93ZXJDYXNlKCk7bGV0IHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO3ImJnR5cGVvZiByLmRlc3Ryb3k9PSJmdW5jdGlvbiImJnIuZGVzdHJveSgpLGUodCl9fSI+CiAgICAgICAgICAgICAgICAgICR7YX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIGE9PnthLmRlc3Ryb3koKSxlKG51bGwpfSwiYWN0aW9uIil9XX0pfSl9c3RhdGljIGFzeW5jIHNob3dCbG9ja1NldHRpbmdzTW9kYWwoZSx0KXtsZXQgYT13YAogICAgICA8c3R5bGU+CiAgICAgICAgLnNldHRpbmdzLWNvbnRhaW5lciB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIH0KICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbjpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1sYWJlbCB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNjBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWljb24gewogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5nZXRCbG9ja1R5cGVTZWxlY3RvcihlLHQpfQogICAgICAgICR7ZS50eXBlPT09ImNvZGUiP3RoaXMuZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSx0KToiIn0KICAgICAgPC9kaXY+CiAgICBgO2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkJsb2NrIFNldHRpbmdzIixjb250ZW50OmEsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246aShhc3luYyByPT57ci5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfSl9c3RhdGljIGdldENvZGVCbG9ja1NldHRpbmdzKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8ubGFuZ3VhZ2V8fCJqYXZhc2NyaXB0IjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5sYW5ndWFnZS1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDZweDsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgfQogICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlByb2dyYW1taW5nIExhbmd1YWdlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAke3RoaXMuZ2V0TGFuZ3VhZ2VzKCkubWFwKHI9PndgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke2E9PT1yLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e2UubWV0YWRhdGF8fChlLm1ldGFkYXRhPXt9KSxlLm1ldGFkYXRhLmxhbmd1YWdlPXIudG9Mb3dlckNhc2UoKSx0KGUpO2xldCBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwiKTtuJiZ0eXBlb2Ygbi5kZXN0cm95PT0iZnVuY3Rpb24iJiZuLmRlc3Ryb3koKX19IgogICAgICAgICAgICAgIGRhdGEtbGFuZz0iJHtyfSIKICAgICAgICAgICAgPiR7cn08L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljIGdldExhbmd1YWdlcygpe3JldHVyblsuLi5IMWVdfXN0YXRpYyBnZXRCbG9ja1R5cGVTZWxlY3RvcihlLHQpe2xldCBhPUlyLmdldFNsYXNoTWVudUl0ZW1zKCkuZmlsdGVyKHI9PnIudHlwZSE9PSJkaXZpZGVyIik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWxhYmVsIj5CbG9jayBUeXBlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2stdHlwZS1ncmlkIj4KICAgICAgICAgICR7YS5tYXAocj0+d2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0iYmxvY2stdHlwZS1idXR0b24gJHtlLnR5cGU9PT1yLnR5cGU/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSIke2FzeW5jIG49PntsZXQgbz1uLmN1cnJlbnRUYXJnZXQsbD1lLnR5cGU7aWYoZS50eXBlPXIudHlwZSxsPT09ImNvZGUiJiZlLnR5cGUhPT0iY29kZSIpZGVsZXRlIGUubWV0YWRhdGE/Lmxhbmd1YWdlO2Vsc2UgaWYobD09PSJsaXN0IiYmZS50eXBlIT09Imxpc3QiKWRlbGV0ZSBlLm1ldGFkYXRhPy5saXN0VHlwZTtlbHNlIGlmKGUudHlwZT09PSJsaXN0IiYmIWUubWV0YWRhdGE/Lmxpc3RUeXBlKWUubWV0YWRhdGE9e2xpc3RUeXBlOiJidWxsZXQifTtlbHNlIGlmKGUudHlwZT09PSJjb2RlIiYmIWUubWV0YWRhdGE/Lmxhbmd1YWdlKXtsZXQgZD1hd2FpdCB0aGlzLnNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCk7aWYoZCllLm1ldGFkYXRhPXtsYW5ndWFnZTpkfTtlbHNle2UudHlwZT1sO3JldHVybn19dChlKTtsZXQgcD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7cCYmdHlwZW9mIHAuZGVzdHJveT09ImZ1bmN0aW9uIiYmcC5kZXN0cm95KCl9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJibG9jay10eXBlLWljb24iPiR7ci5pY29ufTwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj4ke3IubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fX0pO3ZhciBVMWUsZnZhPWcoKCk9PntMbCgpO1N4KCk7WmcoKTtSdSgpO0NudCgpO0xudCgpO1UxZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnSW5wdXRIYW5kbGVyIil9Y29tcG9uZW50O3NhdmVUaW1lb3V0PW51bGw7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1oYW5kbGVCbG9ja0lucHV0KGUsdCl7aWYodGhpcy5jb21wb25lbnQuaXNDb21wb3NpbmcpcmV0dXJuO2xldCBhPWUudGFyZ2V0LHI9YS50ZXh0Q29udGVudHx8IiIsbj10aGlzLmRldGVjdEJsb2NrVHlwZUludGVudChyKTtpZihuJiZuLnR5cGUhPT10LnR5cGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24odCxuLGEpO3JldHVybn10aGlzLmhhbmRsZVNsYXNoQ29tbWFuZChyLGEpLHRoaXMuc2NoZWR1bGVBdXRvU2F2ZSgpfXVwZGF0ZUJsb2NrQ29udGVudChlLHQpe2xldCByPXQuY2xvc2VzdCgiLmJsb2NrLXdyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYocil7bGV0IG49ci5nZXRDb250ZW50KCk7aWYoZS5jb250ZW50IT09biYmKGUuY29udGVudD1uKSxlLnR5cGU9PT0ibGlzdCIpe2xldCBvPXQucXVlcnlTZWxlY3Rvcigib2wsIHVsIik7byYmKGUubWV0YWRhdGE9e2xpc3RUeXBlOm8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9KX19ZWxzZSBpZihlLnR5cGU9PT0ibGlzdCIpe2xldCBuPXQucXVlcnlTZWxlY3RvckFsbCgibGkiKTtlLmNvbnRlbnQ9QXJyYXkuZnJvbShuKS5tYXAobD0+bC5pbm5lckhUTUx8fCIiKS5qb2luKGAKYCk7bGV0IG89dC5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtvJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6by50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfWVsc2UgZS50eXBlPT09ImNvZGUiP2UuY29udGVudD10LnRleHRDb250ZW50fHwiIjplLmNvbnRlbnQ9dC5pbm5lckhUTUx8fCIifWRldGVjdEJsb2NrVHlwZUludGVudChlKXtsZXQgdD1Jci5jaGVja0hlYWRpbmdTaG9ydGN1dChlKTtpZih0KXJldHVybiB0O2xldCBhPUlyLmNoZWNrTGlzdFNob3J0Y3V0KGUpO3JldHVybiBhfHwoSXIuY2hlY2tRdW90ZVNob3J0Y3V0KGUpP3t0eXBlOiJxdW90ZSJ9OklyLmNoZWNrQ29kZVNob3J0Y3V0KGUpP3t0eXBlOiJjb2RlIn06SXIuY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSk/e3R5cGU6ImRpdmlkZXIifTpudWxsKX1hc3luYyBoYW5kbGVCbG9ja1RyYW5zZm9ybWF0aW9uKGUsdCxhKXtsZXQgcj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYodC50eXBlPT09Imxpc3QiKXtlLnR5cGU9Imxpc3QiLGUuY29udGVudD0iIixlLm1ldGFkYXRhPXtsaXN0VHlwZTp0Lmxpc3RUeXBlfTtsZXQgbj10Lmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjthLmlubmVySFRNTD1gPCR7bn0+PGxpPjwvbGk+PC8ke259PmAsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dCgoKT0+e21uLmZvY3VzTGlzdEl0ZW0oYSl9LDApfWVsc2UgaWYodC50eXBlPT09ImRpdmlkZXIiKXtlLnR5cGU9ImRpdmlkZXIiLGUuY29udGVudD0iICIsdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpO2xldCBuPXIuY3JlYXRlQmxvY2soKTtyLmluc2VydEJsb2NrQWZ0ZXIoZSxuKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWVsc2UgaWYodC50eXBlPT09ImNvZGUiKXtsZXQgbj1hd2FpdCBWMWUuc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKTtuJiYoZS50eXBlPSJjb2RlIixlLmNvbnRlbnQ9IiIsZS5tZXRhZGF0YT17bGFuZ3VhZ2U6bn0sYS50ZXh0Q29udGVudD0iIix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCByLmZvY3VzQmxvY2soZS5pZCwic3RhcnQiKX0sNTApKX1lbHNlIGUudHlwZT10LnR5cGUsZS5jb250ZW50PSIiLGEudGV4dENvbnRlbnQ9IiIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgci5mb2N1c0Jsb2NrKGUuaWQsInN0YXJ0Iil9LDUwKX1oYW5kbGVTbGFzaENvbW1hbmQoZSx0KXtsZXQgYT10aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUscj1hJiZhLnZpc2libGU7aWYoZT09PSIvInx8ZS5zdGFydHNXaXRoKCIvIikmJnIpe2lmKCFyJiZlPT09Ii8iKXtsZXQgbj10aGlzLmdldENhcmV0Q29vcmRpbmF0ZXModCk7YS5zaG93KHt4Om4ubGVmdCx5Om4uYm90dG9tKzR9LG89Pnt0aGlzLmNvbXBvbmVudC5pbnNlcnRCbG9jayhvKX0pLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10JiZ0LmZvY3VzKCl9KX1hJiZhLnVwZGF0ZUZpbHRlcihlLnNsaWNlKDEpKX1lbHNlIGUuc3RhcnRzV2l0aCgiLyIpfHx0aGlzLmNvbXBvbmVudC5jbG9zZVNsYXNoTWVudSgpfWdldENhcmV0Q29vcmRpbmF0ZXMoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHQmJnQucmFuZ2VDb3VudD4wKXtsZXQgcj10LmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoci53aWR0aD4wfHxyLmhlaWdodD4wKXJldHVybiByfXJldHVybiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfXNjaGVkdWxlQXV0b1NhdmUoKXt0aGlzLnNhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCksISh0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUmJnRoaXMuY29tcG9uZW50LnNsYXNoTWVudS52aXNpYmxlKSYmKHRoaXMuc2F2ZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3luY0FsbEJsb2NrQ29udGVudCgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9LDJlMykpfXN5bmNBbGxCbG9ja0NvbnRlbnQoKXt0aGlzLmNvbXBvbmVudC5ibG9ja3MuZm9yRWFjaChlPT57bGV0IGE9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZS5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihhJiZhLmdldENvbnRlbnQpe2xldCByPWEuZ2V0Q29udGVudCgpO2UuY29udGVudCE9PXImJihlLmNvbnRlbnQ9cil9fSl9ZGVzdHJveSgpe3RoaXMuc2F2ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNhdmVUaW1lb3V0KX19fSk7dmFyIFcxZSxtdmE9ZygoKT0+e0xsKCk7U3goKTtYZCgpO1cxZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnS2V5Ym9hcmRIYW5kbGVyIil9Y29tcG9uZW50O2NvbnN0cnVjdG9yKGUpe3RoaXMuY29tcG9uZW50PWV9YXN5bmMgaGFuZGxlQmxvY2tLZXlEb3duKGUsdCl7aWYodGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUmJnRoaXMuaXNTbGFzaE1lbnVLZXkoZS5rZXkpKXt0aGlzLmNvbXBvbmVudC5oYW5kbGVTbGFzaE1lbnVLZXlib2FyZChlKTtyZXR1cm59aWYoIXRoaXMuaGFuZGxlRm9ybWF0dGluZ1Nob3J0Y3V0cyhlKSlzd2l0Y2goZS5rZXkpe2Nhc2UiVGFiIjp0aGlzLmhhbmRsZVRhYihlLHQpO2JyZWFrO2Nhc2UiRW50ZXIiOmF3YWl0IHRoaXMuaGFuZGxlRW50ZXIoZSx0KTticmVhaztjYXNlIkJhY2tzcGFjZSI6YXdhaXQgdGhpcy5oYW5kbGVCYWNrc3BhY2UoZSx0KTticmVhaztjYXNlIkRlbGV0ZSI6YXdhaXQgdGhpcy5oYW5kbGVEZWxldGUoZSx0KTticmVhaztjYXNlIkFycm93VXAiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dVcChlLHQpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjphd2FpdCB0aGlzLmhhbmRsZUFycm93RG93bihlLHQpO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93TGVmdChlLHQpO2JyZWFrO2Nhc2UiQXJyb3dSaWdodCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1JpZ2h0KGUsdCk7YnJlYWt9fWlzU2xhc2hNZW51S2V5KGUpe3JldHVyblsiQXJyb3dEb3duIiwiQXJyb3dVcCIsIkVudGVyIiwiRXNjYXBlIl0uaW5jbHVkZXMoZSl9aGFuZGxlRm9ybWF0dGluZ1Nob3J0Y3V0cyhlKXtpZighKGUubWV0YUtleXx8ZS5jdHJsS2V5KSlyZXR1cm4hMTtzd2l0Y2goZS5rZXkudG9Mb3dlckNhc2UoKSl7Y2FzZSJiIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJib2xkIikpLCEwO2Nhc2UiaSI6cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgiaXRhbGljIikpLCEwO2Nhc2UidSI6cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgidW5kZXJsaW5lIikpLCEwO2Nhc2UiayI6cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgibGluayIpKSwhMH1yZXR1cm4hMX1oYW5kbGVUYWIoZSx0KXt0LnR5cGUhPT0iY29kZSImJnQudHlwZT09PSJsaXN0IiYmZS5wcmV2ZW50RGVmYXVsdCgpfWFzeW5jIGhhbmRsZUVudGVyKGUsdCl7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0LnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG49YS5jcmVhdGVCbG9jaygpO2F3YWl0IGEuaW5zZXJ0QmxvY2tBZnRlcih0LG4pO3JldHVybn1pZih0LnR5cGU9PT0iY29kZSIpe2lmKGUuc2hpZnRLZXkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbj1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQsbil9cmV0dXJufWlmKCFlLnNoaWZ0S2V5KWlmKHQudHlwZT09PSJsaXN0Iilhd2FpdCB0aGlzLmhhbmRsZUVudGVySW5MaXN0KGUsdCk7ZWxzZXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihvJiZvLmdldFNwbGl0Q29udGVudCl7bGV0IGw9by5nZXRTcGxpdENvbnRlbnQoKTtpZihsKXtvLnNldENvbnRlbnQobC5iZWZvcmUpLHQuY29udGVudD1sLmJlZm9yZTtsZXQgcD1hLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLGwuYWZ0ZXIpO2F3YWl0IGEuaW5zZXJ0QmxvY2tBZnRlcih0LHApLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZXtsZXQgcD1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQscCl9fWVsc2V7bGV0IGw9YS5jcmVhdGVCbG9jaygpO2F3YWl0IGEuaW5zZXJ0QmxvY2tBZnRlcih0LGwpfX19YXN5bmMgaGFuZGxlRW50ZXJJbkxpc3QoZSx0KXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoYSYmYS5yYW5nZUNvdW50PjApe2xldCBuPWEuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KCJsaSIpO2lmKG4mJm4udGV4dENvbnRlbnQ9PT0iIil7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBvPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxsPW8uY3JlYXRlQmxvY2soKTthd2FpdCBvLmluc2VydEJsb2NrQWZ0ZXIodCxsKX19fWFzeW5jIGhhbmRsZUJhY2tzcGFjZShlLHQpe2xldCBhPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxhLnJlbW92ZUJsb2NrKHQuaWQpO2xldCB4PWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1beF0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGEuZm9jdXNCbG9jayh4LmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBiPWEuZ2V0UHJldmlvdXNCbG9jayh0LmlkKSx2PWEuZ2V0TmV4dEJsb2NrKHQuaWQpO2EucmVtb3ZlQmxvY2sodC5pZCksYiYmYi50eXBlIT09ImRpdmlkZXIiJiZiLnR5cGUhPT0iaW1hZ2UiP2F3YWl0IGEuZm9jdXNCbG9jayhiLmlkLCJlbmQiKTp2JiZ2LnR5cGUhPT0iZGl2aWRlciImJnYudHlwZSE9PSJpbWFnZSI/YXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQsInN0YXJ0Iik6Yj9hd2FpdCBhLmZvY3VzQmxvY2soYi5pZCk6diYmYXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgbD10LnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbClyZXR1cm47bGV0IHA9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO3A/LnNoYWRvd1Jvb3QmJmQucHVzaChwLnNoYWRvd1Jvb3QpLGQucHVzaChvLnNoYWRvd1Jvb3QpO2xldCB1PSR0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGwsLi4uZCksYz1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6bC50ZXh0Q29udGVudDtpZih1PT09MCl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBiPWEuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihiKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYi50eXBlKSl7YXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQpO3JldHVybn1pZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxiLnR5cGU9PT0iY29kZSImJnQudHlwZSE9PSJjb2RlIil7dC5jb250ZW50PT09IiImJihhLnJlbW92ZUJsb2NrKHQuaWQpLGF3YWl0IGEuZm9jdXNCbG9jayhiLmlkLCJlbmQiKSk7cmV0dXJufWlmKHQudHlwZT09PSJjb2RlIiYmYi50eXBlIT09ImNvZGUiKXtsZXQgTj1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6dC5jb250ZW50OyhOPT09IiJ8fE4udHJpbSgpPT09IiIpJiYoYS5yZW1vdmVCbG9jayh0LmlkKSxhd2FpdCBhLmZvY3VzQmxvY2soYi5pZCwiZW5kIikpO3JldHVybn1sZXQgbT10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtiLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpLGY9bT8uZ2V0Q29udGVudCgpfHxiLmNvbnRlbnR8fCIiLHk9by5nZXRDb250ZW50KCl8fHQuY29udGVudHx8IiIsTT0iIjtiLnR5cGU9PT0iY29kZSImJnQudHlwZT09PSJjb2RlInx8Yi50eXBlPT09Imxpc3QiJiZ0LnR5cGU9PT0ibGlzdCI/TT1mKyhmJiZ5P2AKYDoiIikreTpNPWYrKGYmJnk/IiAiOiIiKSt5O2xldCB6PWYubGVuZ3RoO2EudXBkYXRlQmxvY2tDb250ZW50KGIuaWQsTSksbSYmbS5zZXRDb250ZW50KE0pLGEucmVtb3ZlQmxvY2sodC5pZCksYXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQseil9fWVsc2UgaWYodGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD4xKXtsZXQgYj1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6dC5jb250ZW50O2lmKGI9PT0iInx8Yi50cmltKCk9PT0iIil7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB2PWEuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTt2JiYoYS5yZW1vdmVCbG9jayh0LmlkKSx2LnR5cGUhPT0iZGl2aWRlciImJmF3YWl0IGEuZm9jdXNCbG9jayh2LmlkLCJlbmQiKSl9fX1hc3luYyBoYW5kbGVEZWxldGUoZSx0KXtsZXQgYT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2lmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPT09MSl7dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksYS5yZW1vdmVCbG9jayh0LmlkKTtsZXQgbT1hLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLCIiKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9W21dLHRoaXMuY29tcG9uZW50LnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSxhd2FpdCBhLmZvY3VzQmxvY2sobS5pZCwic3RhcnQiKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO3JldHVybn10aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKTtsZXQgYj1hLmdldFByZXZpb3VzQmxvY2sodC5pZCksdj1hLmdldE5leHRCbG9jayh0LmlkKTthLnJlbW92ZUJsb2NrKHQuaWQpO2xldCB4PVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTt2JiYheC5pbmNsdWRlcyh2LnR5cGUpP2F3YWl0IGEuZm9jdXNCbG9jayh2LmlkLCJzdGFydCIpOmImJiF4LmluY2x1ZGVzKGIudHlwZSk/YXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQsImVuZCIpOnY/YXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQpOmImJmF3YWl0IGEuZm9jdXNCbG9jayhiLmlkKTtyZXR1cm59bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighb3x8IW8uc2hhZG93Um9vdClyZXR1cm47bGV0IGw9dC50eXBlPT09ImNvZGUiP28uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpvLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIWwpcmV0dXJuO2xldCBwPW8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksZD1bXTtwPy5zaGFkb3dSb290JiZkLnB1c2gocC5zaGFkb3dSb290KSxkLnB1c2goby5zaGFkb3dSb290KTtsZXQgdT0kdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChsLC4uLmQpLGM9bC50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKHU9PT1jKXtsZXQgYj1hLmdldE5leHRCbG9jayh0LmlkKTtpZihiJiZbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYi50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGF3YWl0IGEuZm9jdXNCbG9jayhiLmlkKTtyZXR1cm59fX1hc3luYyBoYW5kbGVBcnJvd1VwKGUsdCl7bGV0IGE9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2lmKGEuaW5jbHVkZXModC50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxjPXUuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtjJiZhd2FpdCB1LmZvY3VzQmxvY2soYy5pZCxhLmluY2x1ZGVzKGMudHlwZSk/dm9pZCAwOiJlbmQiKTtyZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89dC50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBsPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIikscD1bXTtsPy5zaGFkb3dSb290JiZwLnB1c2gobC5zaGFkb3dSb290KSxwLnB1c2gobi5zaGFkb3dSb290KTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCEoIWR8fCFkLmNvbGxhcHNlZCkmJnRoaXMuaXNPbkZpcnN0TGluZShkLG8sLi4ucCkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsYz11LmdldFByZXZpb3VzQmxvY2sodC5pZCk7aWYoYyl7bGV0IGI9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHUuZm9jdXNCbG9jayhjLmlkLGIuaW5jbHVkZXMoYy50eXBlKT92b2lkIDA6ImVuZCIpfX19YXN5bmMgaGFuZGxlQXJyb3dEb3duKGUsdCl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsYz11LmdldE5leHRCbG9jayh0LmlkKTtpZihjKXtsZXQgYj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgdS5mb2N1c0Jsb2NrKGMuaWQsYi5pbmNsdWRlcyhjLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89dC50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBsPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIikscD1bXTtsPy5zaGFkb3dSb290JiZwLnB1c2gobC5zaGFkb3dSb290KSxwLnB1c2gobi5zaGFkb3dSb290KTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCEoIWR8fCFkLmNvbGxhcHNlZCkmJnRoaXMuaXNPbkxhc3RMaW5lKGQsbywuLi5wKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxjPXUuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKGMpe2xldCBiPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCB1LmZvY3VzQmxvY2soYy5pZCxiLmluY2x1ZGVzKGMudHlwZSk/dm9pZCAwOiJzdGFydCIpfX19Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IHQ9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO3Q+PTA7dC0tKXtsZXQgYT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbdF0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9YXN5bmMgaGFuZGxlQXJyb3dMZWZ0KGUsdCl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgYz10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsYj1jLmdldFByZXZpb3VzQmxvY2sodC5pZCk7aWYoYil7bGV0IHY9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGMuZm9jdXNCbG9jayhiLmlkLHYuaW5jbHVkZXMoYi50eXBlKT92b2lkIDA6ImVuZCIpfXJldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz10LnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxwPVtdO2w/LnNoYWRvd1Jvb3QmJnAucHVzaChsLnNoYWRvd1Jvb3QpLHAucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPSR0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWR8fCFkLmNvbGxhcHNlZClyZXR1cm47aWYoJHQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobywuLi5wKT09PTApe2xldCBjPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxiPWMuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGIudHlwZSk/dm9pZCAwOiJlbmQiO2F3YWl0IGMuZm9jdXNCbG9jayhiLmlkLHgpfX19YXN5bmMgaGFuZGxlQXJyb3dSaWdodChlLHQpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0LnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGI9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLHY9Yi5nZXROZXh0QmxvY2sodC5pZCk7aWYodil7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGIuZm9jdXNCbG9jayh2LmlkLHguaW5jbHVkZXModi50eXBlKT92b2lkIDA6InN0YXJ0Iil9cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3QuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPXQudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgbD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLHA9W107bD8uc2hhZG93Um9vdCYmcC5wdXNoKGwuc2hhZG93Um9vdCkscC5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGQ9JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZHx8IWQuY29sbGFwc2VkKXJldHVybjtsZXQgdT0kdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLnApLGM9by50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKHU9PT1jKXtsZXQgYj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsdj1iLmdldE5leHRCbG9jayh0LmlkKTtpZih2KXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGIuZm9jdXNCbG9jayh2LmlkLHguaW5jbHVkZXModi50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1pc09uRmlyc3RMaW5lKGUsdCwuLi5hKXt0cnl7bGV0IHI9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhlKSxuPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO28ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKG89by5wYXJlbnRFbGVtZW50KTtsZXQgbD1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHA9bi50b3AtbC50b3A8NTtyZXR1cm4gby50ZXh0Q29udGVudCYmIW8udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKT8kdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmEpPT09MDpwfWNhdGNoKHIpe3JldHVybiBjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGZpcnN0IGxpbmU6IixyKSxlLnN0YXJ0T2Zmc2V0PT09MH19aXNPbkxhc3RMaW5lKGUsdCwuLi5hKXt0cnl7bGV0IHI9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhlKSxuPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO28ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKG89by5wYXJlbnRFbGVtZW50KTtsZXQgcD1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbS1uLmJvdHRvbTw1O2lmKG8udGV4dENvbnRlbnQmJiFvLnRleHRDb250ZW50LmluY2x1ZGVzKGAKYCkpe2xldCBkPXQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gJHQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQodCwuLi5hKT09PWR9cmV0dXJuIHB9Y2F0Y2gocil7Y29uc29sZS53YXJuKCJFcnJvciBjaGVja2luZyBsYXN0IGxpbmU6IixyKTtsZXQgbj10LnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuICR0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KHQsLi4uYSk9PT1ufX19fSk7dmFyIEcxZSxndmE9ZygoKT0+e0xsKCk7U3goKTtHMWU9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0RyYWdEcm9wSGFuZGxlciIpfWNvbXBvbmVudDtkcmFnZ2VkQmxvY2tJZD1udWxsO2RyYWdPdmVyQmxvY2tJZD1udWxsO2RyYWdPdmVyUG9zaXRpb249bnVsbDtkcm9wSW5kaWNhdG9yPW51bGw7aW5pdGlhbE1vdXNlWT0wO2luaXRpYWxCbG9ja1k9MDtkcmFnZ2VkQmxvY2tFbGVtZW50PW51bGw7ZHJhZ2dlZEJsb2NrSGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wO2RyYWdnZWRCbG9ja01hcmdpblRvcD0wO2xhc3RVcGRhdGVUaW1lPTA7dXBkYXRlVGhyb3R0bGU9ODA7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1nZXQgZHJhZ1N0YXRlKCl7cmV0dXJue2RyYWdnZWRCbG9ja0lkOnRoaXMuZHJhZ2dlZEJsb2NrSWQsZHJhZ092ZXJCbG9ja0lkOnRoaXMuZHJhZ092ZXJCbG9ja0lkLGRyYWdPdmVyUG9zaXRpb246dGhpcy5kcmFnT3ZlclBvc2l0aW9ufX1oYW5kbGVEcmFnU3RhcnQoZSx0KXtpZighZS5kYXRhVHJhbnNmZXIpcmV0dXJuO3RoaXMuZHJhZ2dlZEJsb2NrSWQ9dC5pZCxlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJtb3ZlIixlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIix0LmlkKTtsZXQgYT1uZXcgSW1hZ2U7aWYoYS5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iLGUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShhLDAsMCksdGhpcy5pbml0aWFsTW91c2VZPWUuY2xpZW50WSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCksdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgcj10aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5pbml0aWFsQmxvY2tZPXIudG9wO2xldCBuPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihuKXtsZXQgbz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9d2luZG93LmdldENvbXB1dGVkU3R5bGUobik7dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9cGFyc2VJbnQobC5tYXJnaW5Ub3ApfHwwLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD1vLmhlaWdodH10aGlzLmRyYWdnZWRCbG9ja0hlaWdodD1yLmhlaWdodCxjb25zb2xlLmxvZygiRHJhZyBtZWFzdXJlbWVudHM6Iix7d3JhcHBlckhlaWdodDpyLmhlaWdodCxtYXJnaW5Ub3A6dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3AsZHJvcEluZGljYXRvckhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxjb250ZW50SGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCxibG9ja0lkOnQuaWR9KSx0aGlzLmNyZWF0ZURyb3BJbmRpY2F0b3IoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKX10aGlzLmNvbXBvbmVudC5kcmFnZ2VkQmxvY2tJZD10aGlzLmRyYWdnZWRCbG9ja0lkLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQmJnRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX0sMTApfWhhbmRsZURyYWdFbmQoKXt0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikuZm9yRWFjaCh0PT57dC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIsIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSx0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IiksdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIil9KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50PW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD0wLHRoaXMuaW5pdGlhbEJsb2NrWT0wLHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyYWdPdmVyKGUsdCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCFlLmRhdGFUcmFuc2Zlcnx8IXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT10LmlkKXJldHVybjtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIjtsZXQgYT1lLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1hLnRvcCthLmhlaWdodC8yO3RoaXMuZHJhZ092ZXJCbG9ja0lkPXQuaWQsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPWUuY2xpZW50WTxyPyJiZWZvcmUiOiJhZnRlciIsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPXRoaXMuZHJhZ092ZXJCbG9ja0lkLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249dGhpcy5kcmFnT3ZlclBvc2l0aW9ufWhhbmRsZURyYWdMZWF2ZShlKXt0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWUuaWQmJih0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249bnVsbCl9aGFuZGxlRHJvcChlLHQpe2UucHJldmVudERlZmF1bHQoKSwhKCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09dC5pZCkmJnRoaXMuY29tcG9uZW50LmhhbmRsZURyb3AoZSx0KX1pc0RyYWdnaW5nKGUpe3JldHVybiB0aGlzLmRyYWdnZWRCbG9ja0lkPT09ZX1pc0RyYWdPdmVyKGUpe3JldHVybiB0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWV9Z2V0RHJhZ092ZXJDbGFzc2VzKGUpe3JldHVybiB0aGlzLmlzRHJhZ092ZXIoZSk/dGhpcy5kcmFnT3ZlclBvc2l0aW9uPT09ImJlZm9yZSI/ImRyYWctb3Zlci1iZWZvcmUiOiJkcmFnLW92ZXItYWZ0ZXIiOiIifWNyZWF0ZURyb3BJbmRpY2F0b3IoKXt0aGlzLmRyb3BJbmRpY2F0b3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5kcm9wSW5kaWNhdG9yLmNsYXNzTmFtZT0iZHJvcC1pbmRpY2F0b3IiLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKHRoaXMuZHJvcEluZGljYXRvcil9aGFuZGxlR2xvYmFsRHJhZ092ZXI9aShlPT57aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO2xldCB0PWUuY2xpZW50WS10aGlzLmluaXRpYWxNb3VzZVk7dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke3R9cHgpYDtsZXQgYT1EYXRlLm5vdygpO2EtdGhpcy5sYXN0VXBkYXRlVGltZTx0aGlzLnVwZGF0ZVRocm90dGxlfHwodGhpcy5sYXN0VXBkYXRlVGltZT1hLHRoaXMudXBkYXRlQmxvY2tQb3NpdGlvbnMoZS5jbGllbnRZKSl9LCJoYW5kbGVHbG9iYWxEcmFnT3ZlciIpO3VwZGF0ZUJsb2NrUG9zaXRpb25zKGUpe2xldCB0PUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKSxhPXQuZmluZEluZGV4KG49Pm4uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihhPT09LTEpcmV0dXJuO3QuZm9yRWFjaChuPT57bi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKSE9PXRoaXMuZHJhZ2dlZEJsb2NrSWQmJihuLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxuLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IikpfSk7bGV0IHI9dC5sZW5ndGg7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKG49PT1hKWNvbnRpbnVlO2xldCBsPXRbbl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1sLnRvcDtpZihlPHArbC5oZWlnaHQqLjUpe3I9bjticmVha319Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKG49PT1hKWNvbnRpbnVlO2xldCBvPXRbbl07YTxyP24+YSYmbjxyJiYoby5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIiksby5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSk6YT5yJiZuPj1yJiZuPGEmJihvLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpLG8uc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpfXRoaXMudXBkYXRlRHJvcEluZGljYXRvcih0LHIsYSl9dXBkYXRlRHJvcEluZGljYXRvcihlLHQsYSl7aWYoIXRoaXMuZHJvcEluZGljYXRvcnx8IXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtsZXQgcj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49MCxvPVtdO2ZvcihsZXQgZD0wO2Q8ZS5sZW5ndGg7ZCsrKXtpZihkPT09YSljb250aW51ZTtsZXQgdT1lW2RdLGM9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPWMudG9wLXIudG9wLHY9Yy5ib3R0b20tci50b3AseD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh1KS50cmFuc2Zvcm07aWYoeCYmeCE9PSJub25lIil7bGV0IGY9bmV3IERPTU1hdHJpeCh4KS5tNDI7Yis9Zix2Kz1mfW8ucHVzaCh7aW5kZXg6ZCx0b3A6Yixib3R0b206dn0pfW8uc29ydCgoZCx1KT0+ZC50b3AtdS50b3ApO2xldCBsPXQ7dD5hJiZsLS07bGV0IHA9MTY7aWYodGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgZD10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoZCl7bGV0IHU9ZC50eXBlO3U9PT0iaGVhZGluZy0xInx8dT09PSJoZWFkaW5nLTIifHx1PT09ImhlYWRpbmctMyI/cD0yNDoodT09PSJjb2RlInx8dT09PSJxdW90ZSIpJiYocD0yMCl9fWlmKGw9PT0wKW49MDtlbHNlIGlmKGw+PW8ubGVuZ3RoKXtsZXQgZD1vW28ubGVuZ3RoLTFdO2QmJihuPWQuYm90dG9tLG4rPXApfWVsc2V7bGV0IGQ9b1tsLTFdO2QmJihuPWQuYm90dG9tLG4rPXApfXRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5oZWlnaHQ9YCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS50b3A9YCR7TWF0aC5tYXgoMCxuKX1weGAsY29uc29sZS5sb2coIkRyb3AgaW5kaWNhdG9yIHVwZGF0ZToiLHt0YXJnZXRJbmRleDp0LGFkanVzdGVkVGFyZ2V0SW5kZXg6bCxkcmFnZ2VkSW5kZXg6YSx0b3BQb3NpdGlvbjpuLGhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxibG9ja01hcmdpbjpwLHZpc3VhbEJsb2NrczpvLm1hcChkPT4oe2luZGV4OmQuaW5kZXgsdG9wOmQudG9wLGJvdHRvbTpkLmJvdHRvbX0pKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQ9aSgoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuZHJvcEluZGljYXRvciYmKHRoaXMuZHJvcEluZGljYXRvci5yZW1vdmUoKSx0aGlzLmRyb3BJbmRpY2F0b3I9bnVsbCksdGhpcy5kcmFnZ2VkQmxvY2tJZD9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnBlcmZvcm1Ecm9wKCksdGhpcy5oYW5kbGVEcmFnRW5kKCl9KTp0aGlzLmhhbmRsZURyYWdFbmQoKX0sImhhbmRsZUdsb2JhbERyYWdFbmQiKTtwZXJmb3JtRHJvcCgpe2lmKCF0aGlzLmRyYWdnZWRCbG9ja0lkKXJldHVybjtsZXQgZT1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSk7aWYoIWUuZmluZCh1PT51LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCkpcmV0dXJuO2xldCBhPWUubWFwKHU9PntsZXQgYz11LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpLGI9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PWIudG9wK2IuaGVpZ2h0LzI7cmV0dXJue2lkOmMsY2VudGVyWTp2LGVsZW1lbnQ6dX19KTthLnNvcnQoKHUsYyk9PnUuY2VudGVyWS1jLmNlbnRlclkpO2xldCByPWEubWFwKHU9PnUuaWQpLmZpbHRlcih1PT51IT09bnVsbCksbj1bLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXSxvPW4uZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoIW8pcmV0dXJuO2xldCBsPW4ubWFwKHU9PnUuaWQpO2lmKCEhci5ldmVyeSgodSxjKT0+dT09PWxbY10pKXJldHVybjtsZXQgZD1yLm1hcCh1PT5uLmZpbmQoYz0+Yy5pZD09PXUpKS5maWx0ZXIoQm9vbGVhbik7dGhpcy5jb21wb25lbnQuYmxvY2tzPWQsdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksc2V0VGltZW91dCgoKT0+e28udHlwZSE9PSJkaXZpZGVyIiYmdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soby5pZCl9LDEwMCl9fX0pO3ZhciBLMWUsYnZhPWcoKCk9PntMbCgpO0sxZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnSGlzdG9yeSIpfWhpc3Rvcnk9W107Y3VycmVudEluZGV4PS0xO21heEhpc3RvcnlTaXplPTUwO2xhc3RTYXZlVGltZT0wO3NhdmVEZWJvdW5jZU1zPTUwMDtjb25zdHJ1Y3Rvcigpe3RoaXMuaGlzdG9yeT1bXSx0aGlzLmN1cnJlbnRJbmRleD0tMX1zYXZlU3RhdGUoZSx0LGEpe2xldCByPURhdGUubm93KCk7aWYoci10aGlzLmxhc3RTYXZlVGltZTx0aGlzLnNhdmVEZWJvdW5jZU1zJiZ0aGlzLmN1cnJlbnRJbmRleD49MCl7dGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XT17YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZSksc2VsZWN0ZWRCbG9ja0lkOnQsY3Vyc29yUG9zaXRpb246YT97Li4uYX06dm9pZCAwLHRpbWVzdGFtcDpyfTtyZXR1cm59dGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aC0xJiYodGhpcy5oaXN0b3J5PXRoaXMuaGlzdG9yeS5zbGljZSgwLHRoaXMuY3VycmVudEluZGV4KzEpKTtsZXQgbj17YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZSksc2VsZWN0ZWRCbG9ja0lkOnQsY3Vyc29yUG9zaXRpb246YT97Li4uYX06dm9pZCAwLHRpbWVzdGFtcDpyfTt0aGlzLmhpc3RvcnkucHVzaChuKSx0aGlzLmN1cnJlbnRJbmRleCsrLHRoaXMuaGlzdG9yeS5sZW5ndGg+dGhpcy5tYXhIaXN0b3J5U2l6ZSYmKHRoaXMuaGlzdG9yeS5zaGlmdCgpLHRoaXMuY3VycmVudEluZGV4LS0pLHRoaXMubGFzdFNhdmVUaW1lPXJ9c2F2ZUNoZWNrcG9pbnQoZSx0LGEpe3RoaXMubGFzdFNhdmVUaW1lPTAsdGhpcy5zYXZlU3RhdGUoZSx0LGEpfXVuZG8oKXtyZXR1cm4gdGhpcy5jYW5VbmRvKCk/KHRoaXMuY3VycmVudEluZGV4LS0sdGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pKTpudWxsfXJlZG8oKXtyZXR1cm4gdGhpcy5jYW5SZWRvKCk/KHRoaXMuY3VycmVudEluZGV4KyssdGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pKTpudWxsfWNhblVuZG8oKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg+MH1jYW5SZWRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGgtMX1nZXRDdXJyZW50U3RhdGUoKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg+PTAmJnRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGg/dGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pOm51bGx9Y2xlYXIoKXt0aGlzLmhpc3Rvcnk9W10sdGhpcy5jdXJyZW50SW5kZXg9LTEsdGhpcy5sYXN0U2F2ZVRpbWU9MH1jbG9uZUJsb2NrcyhlKXtyZXR1cm4gZS5tYXAodD0+KHsuLi50LG1ldGFkYXRhOnQubWV0YWRhdGE/ey4uLnQubWV0YWRhdGF9OnZvaWQgMH0pKX1jbG9uZVN0YXRlKGUpe3JldHVybntibG9ja3M6dGhpcy5jbG9uZUJsb2NrcyhlLmJsb2Nrcyksc2VsZWN0ZWRCbG9ja0lkOmUuc2VsZWN0ZWRCbG9ja0lkLGN1cnNvclBvc2l0aW9uOmUuY3Vyc29yUG9zaXRpb24/ey4uLmUuY3Vyc29yUG9zaXRpb259OnZvaWQgMCx0aW1lc3RhbXA6ZS50aW1lc3RhbXB9fWdldEhpc3RvcnlJbmZvKCl7cmV0dXJue3NpemU6dGhpcy5oaXN0b3J5Lmxlbmd0aCxjdXJyZW50SW5kZXg6dGhpcy5jdXJyZW50SW5kZXgsY2FuVW5kbzp0aGlzLmNhblVuZG8oKSxjYW5SZWRvOnRoaXMuY2FuUmVkbygpfX19fSk7dmFyIGpRLEZ1LFFKYSx2dmE9ZygoKT0+e3BlKCk7TGwoKTtSdSgpO1hkKCk7JG50KCk7RG50KCk7WmcoKTtmcigpO2h0KCk7alE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEZ1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxRSmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXd5c2l3eWctYmxvY2siKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1d5c2l3eWdCbG9jayIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtMKHt0eXBlOk9iamVjdH0pXSxqUSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJsb2NrIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJibG9jayJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmJsb2NrLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYmxvY2s9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLGpRKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNTZWxlY3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNTZWxlY3RlZCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzU2VsZWN0ZWQsImdldCIpLHNldDppKCh6LE4pPT57ei5pc1NlbGVjdGVkPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxqUSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhhbmRsZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJoYW5kbGVycyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmhhbmRsZXJzLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaGFuZGxlcnM9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGpRKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid3lzaXd5Z0NvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4id3lzaXd5Z0NvbXBvbmVudCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lnd5c2l3eWdDb21wb25lbnQsImdldCIpLHNldDppKCh6LE4pPT57ei53eXNpd3lnQ29tcG9uZW50PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxqUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXIpfSNlPUZ1KHRoaXMsbyx2b2lkIDApO2dldCBibG9jaygpe3JldHVybiB0aGlzLiNlfXNldCBibG9jayhNKXt0aGlzLiNlPU19I3Q9KEZ1KHRoaXMsbCksRnUodGhpcyxkLCExKSk7Z2V0IGlzU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNTZWxlY3RlZChNKXt0aGlzLiN0PU19I2E9KEZ1KHRoaXMsdSksRnUodGhpcyxiLHZvaWQgMCkpO2dldCBoYW5kbGVycygpe3JldHVybiB0aGlzLiNhfXNldCBoYW5kbGVycyhNKXt0aGlzLiNhPU19I3M9KEZ1KHRoaXMsdiksRnUodGhpcyxtLHZvaWQgMCkpO2dldCB3eXNpd3lnQ29tcG9uZW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHd5c2l3eWdDb21wb25lbnQoTSl7dGhpcy4jcz1NfWJsb2NrRWxlbWVudD0oRnUodGhpcyxmKSxudWxsKTtjb250ZW50SW5pdGlhbGl6ZWQ9ITE7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO2hhbmRsZXJTdHlsZXNJbmplY3RlZD0hMTtzdGF0aWMgTk9OX0VESVRBQkxFX1RZUEVTPVsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSJdO2luamVjdEhhbmRsZXJTdHlsZXMoKXtpZih0aGlzLmhhbmRsZXJTdHlsZXNJbmplY3RlZClyZXR1cm47dGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITA7bGV0IE09IiIsej1Bcy5nZXRBbGxUeXBlcygpO2ZvcihsZXQgTiBvZiB6KXtsZXQgQz1Bcy5nZXRIYW5kbGVyKE4pO0MmJihNKz1DLmdldFN0eWxlcygpKX1pZihNKXtsZXQgTj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO04udGV4dENvbnRlbnQ9TSx0aGlzLnNoYWRvd1Jvb3Q/LmFwcGVuZENoaWxkKE4pfX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuYmxvY2sgewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuYmxvY2s6ZW1wdHk6bm90KDpmb2N1cyk6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXBsYWNlaG9sZGVyKTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogQmxvY2stc3BlY2lmaWMgc3R5bGVzIG1vdmVkIHRvIGhhbmRsZXJzICovCgoKICAgICAgLyogRm9ybWF0dGluZyBzdHlsZXMgKi8KICAgICAgLmJsb2NrIDppcyhiLCBzdHJvbmcpIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jayA6aXMoaSwgZW0pIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5ibG9jayB1IHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmJsb2NrIHMgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICB9CgogICAgICAuYmxvY2sgY29kZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkMTQiLCIjZmY2YjZiIil9OwogICAgICB9CgogICAgICAuYmxvY2sgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmJsb2NrIGE6aG92ZXIgewogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9jayBjb250YWluZXIgYW5kIGxhbmd1YWdlIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVyICovCgogICAgICAvKiBTZWxlY3Rpb24gc3R5bGVzICovCiAgICAgIC5ibG9jayA6OnNlbGVjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMykiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgfQoKCiAgICAgIC8qIFN0cmlrZSB0aHJvdWdoICovCiAgICAgIC5ibG9jayA6aXMocywgc3RyaWtlKSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgoKICAgICAgLyogQmxvY2sgbWFyZ2luIGFkanVzdG1lbnRzIGJhc2VkIG9uIHR5cGUgKi8KICAgICAgOmhvc3QtY29udGV4dCguYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCkgLmJsb2NrIHsKICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCkgLmJsb2NrIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBTZWxlY3RlZCBzdGF0ZSAqLwogICAgICAuYmxvY2suc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMikiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKICAgICAgfQoKCgoKICAgIGBdO3Nob3VsZFVwZGF0ZShNKXtpZihNLmhhcygiaXNTZWxlY3RlZCIpJiZ0aGlzLmJsb2NrKXtsZXQgej1udWxsLEM9YC5ibG9jay4ke3RoaXMuYmxvY2sudHlwZX1gO3JldHVybiB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihDKSx6JiYodGhpcy5pc1NlbGVjdGVkP3ouY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTp6LmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVkIikpLCExfWlmKE0uaGFzKCJibG9jayIpJiZ0aGlzLmJsb2NrKXtsZXQgej1NLmdldCgiYmxvY2siKTtpZih6JiZ6LmlkJiZ6LnR5cGUmJnouaWQ9PT10aGlzLmJsb2NrLmlkJiZ6LnR5cGU9PT10aGlzLmJsb2NrLnR5cGUpcmV0dXJuITF9cmV0dXJuIXRoaXMuYmxvY2tFbGVtZW50fHx0aGlzLmJsb2NrPy50eXBlIT09dGhpcy5ibG9ja0VsZW1lbnQuZGF0YXNldC5ibG9ja1R5cGV9Zmlyc3RVcGRhdGVkKCl7dGhpcy5jb250ZW50SW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbmplY3RIYW5kbGVyU3R5bGVzKCk7bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKTtpZihNJiZ0aGlzLmJsb2NrJiYoTS5pbm5lckhUTUw9dGhpcy5yZW5kZXJCbG9ja0NvbnRlbnQoKSksdGhpcy5ibG9jayl7bGV0IE49QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE4pe2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7QyYmTi5zZXR1cChDLHRoaXMuYmxvY2ssdGhpcy5oYW5kbGVycyk7cmV0dXJufX1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKHope3ouc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIix0aGlzLmJsb2NrLmlkKSx6LnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay10eXBlIix0aGlzLmJsb2NrLnR5cGUpLHouYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLEM9Pnt0aGlzLmhhbmRsZXJzPy5vbklucHV0Py4oQyk7bGV0IF89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih6KTtfIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249Xyl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEM9PntsZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHopO18hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1fKSx0aGlzLmhhbmRsZXJzPy5vbktleURvd24/LihDKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Gb2N1cz8uKCl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57dGhpcy5oYW5kbGVycz8ub25CbHVyPy4oKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkNvbXBvc2l0aW9uU3RhcnQ/LigpfSksei5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkNvbXBvc2l0aW9uRW5kPy4oKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsQz0+e2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oeik7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pLHRoaXMuaGFuZGxlcnM/Lm9uTW91c2VVcD8uKEMpfSksei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntzZXRUaW1lb3V0KCgpPT57bGV0IEM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih6KTtDIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249Qyl9LDApfSk7bGV0IE49aSgoKT0+e2xldCBDPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighQ3x8Qy5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IF89Qy50b1N0cmluZygpO2lmKF8ubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6IiIsYmxvY2tJZDp0aGlzLmJsb2NrLmlkLGhhc1NlbGVjdGlvbjohMX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSk7cmV0dXJufWxldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU8pcmV0dXJuO2xldCBFPXRoaXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsSD1bXTtFJiZILnB1c2goRSksdGhpcy5zaGFkb3dSb290JiZILnB1c2godGhpcy5zaGFkb3dSb290KTtsZXQgaz0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLkgpO2lmKCFrKXJldHVybjtsZXQgUz0kdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShPLGsuc3RhcnRDb250YWluZXIpLEk9JHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oTyxrLmVuZENvbnRhaW5lcik7aWYoU3x8SSl7aWYoXyE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PV87bGV0IFA9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhrKSxSPVAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDpfLnRyaW0oKSxibG9ja0lkOnRoaXMuYmxvY2suaWQscmFuZ2U6UCxyZWN0OlIsaGFzU2VsZWN0aW9uOiEwfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLE4pLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXI9Tix6LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwoKT0+e2xldCBDPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oeik7QyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPUMpfSksdGhpcy5ibG9jay5jb250ZW50JiYoei5pbm5lckhUTUw9dGhpcy5ibG9jay5jb250ZW50KX10aGlzLmJsb2NrRWxlbWVudD16fXJlbmRlcigpe3JldHVybiB0aGlzLmJsb2NrP01uYDxkaXYgY2xhc3M9Ind5c2l3eWctYmxvY2stY29udGFpbmVyIj48L2Rpdj5gOk1uYGB9cmVuZGVyQmxvY2tDb250ZW50KCl7aWYoIXRoaXMuYmxvY2spcmV0dXJuIiI7bGV0IE09QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0pcmV0dXJuIE0ucmVuZGVyKHRoaXMuYmxvY2ssdGhpcy5pc1NlbGVjdGVkKTtsZXQgej10aGlzLmlzU2VsZWN0ZWQ/IiBzZWxlY3RlZCI6IiI7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7dGhpcy5ibG9jay50eXBlfSR7en0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICA+PC9kaXY+CiAgICBgfWZvY3VzKCl7bGV0IE09QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uZm9jdXMpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksQz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmZvY3VzKE4sQyl9aWYodGhpcy5ibG9jayYmeS5OT05fRURJVEFCTEVfVFlQRVMuaW5jbHVkZXModGhpcy5ibG9jay50eXBlKSl7bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YCk7TiYmTi5mb2N1cygpO3JldHVybn1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3omJih6Lmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHouc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksei5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT16JiZ0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT16JiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57ei5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihNPSJlbmQiKXtsZXQgej1Bcy5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoeiYmei5mb2N1c1dpdGhDdXJzb3Ipe2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB6LmZvY3VzV2l0aEN1cnNvcihfLE0sTyl9aWYodGhpcy5ibG9jayYmeS5OT05fRURJVEFCTEVfVFlQRVMuaW5jbHVkZXModGhpcy5ibG9jay50eXBlKSl7dGhpcy5mb2N1cygpO3JldHVybn1sZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFOKXJldHVybjtOLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fE4uc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksTi5mb2N1cygpO2xldCBDPWkoKCk9PntNPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoKTpNPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZCgpOnR5cGVvZiBNPT0ibnVtYmVyIiYmJHQuc2V0Q3Vyc29yUG9zaXRpb24oTixNKX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OP0MoKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OKSYmQygpfSl9Z2V0Q3Vyc29yUG9zaXRpb24oTSl7bGV0IHo9QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHomJnouZ2V0Q3Vyc29yUG9zaXRpb24pe2xldCBIPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHouZ2V0Q3Vyc29yUG9zaXRpb24oTSxIKX1sZXQgQz10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LF89W107QyYmXy5wdXNoKEMpLHRoaXMuc2hhZG93Um9vdCYmXy5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IE89JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5fKTtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFNlbGVjdGlvbiBpbmZvIGZyb20gc2hhZG93IERPTXM6Iix7c2VsZWN0aW9uSW5mbzpPLHNoYWRvd1Jvb3RzQ291bnQ6Xy5sZW5ndGh9KSwhTylyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBObyBzZWxlY3Rpb24gZm91bmQiKSxudWxsO2lmKGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2UgaW5mbzoiLHtzdGFydENvbnRhaW5lcjpPLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0Ok8uc3RhcnRPZmZzZXQsY29sbGFwc2VkOk8uY29sbGFwc2VkLHN0YXJ0Q29udGFpbmVyVGV4dDpPLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50fSksIU0uY29udGFpbnMoTy5zdGFydENvbnRhaW5lcikpcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2Ugbm90IGluIGVsZW1lbnQiKSxudWxsO2xldCAkPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7JC5zZWxlY3ROb2RlQ29udGVudHMoTSksJC5zZXRFbmQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KTtsZXQgRT0kLnRvU3RyaW5nKCkubGVuZ3RoO3JldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IENhbGN1bGF0ZWQgcG9zaXRpb246Iix7cG9zaXRpb246RSxwcmVDYXJldFRleHQ6JC50b1N0cmluZygpLGVsZW1lbnRUZXh0Ok0udGV4dENvbnRlbnQsZWxlbWVudFRleHRMZW5ndGg6TS50ZXh0Q29udGVudD8ubGVuZ3RofSksRX1nZXRDb250ZW50KCl7bGV0IE09QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uZ2V0Q29udGVudCl7bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxfPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uZ2V0Q29udGVudChDLF8pfWxldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIXopcmV0dXJuIiI7bGV0IE49ei5pbm5lckhUTUx8fCIiO3JldHVybiBjb25zb2xlLmxvZygiR2V0dGluZyBjb250ZW50IGZyb20gYmxvY2s6IixOKSxOfXNldENvbnRlbnQoTSl7bGV0IHo9QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHomJnouc2V0Q29udGVudCl7bGV0IF89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxPPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHouc2V0Q29udGVudChfLE0sTyl9bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTilyZXR1cm47bGV0IEM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PU58fHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PU47Ti5pbm5lckhUTUw9TSxDJiZOLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydCgpe2xldCBNPUFzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLnNldEN1cnNvclRvU3RhcnQpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksQz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLnNldEN1cnNvclRvU3RhcnQoTixDKX1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3omJm1uLnNldEN1cnNvclRvU3RhcnQoeil9c2V0Q3Vyc29yVG9FbmQoKXtsZXQgTT1Bcy5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoTSYmTS5zZXRDdXJzb3JUb0VuZCl7bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxDPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uc2V0Q3Vyc29yVG9FbmQoTixDKX1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3omJm1uLnNldEN1cnNvclRvRW5kKHopfWdldENvbnRleHRNZW51SXRlbXMoKXtpZighdGhpcy5ibG9ja3x8dGhpcy5ibG9jay50eXBlPT09ImRpdmlkZXIiKXJldHVybltdO2xldCBNPUlyLmdldFNsYXNoTWVudUl0ZW1zKCksej10aGlzLmJsb2NrLnR5cGUsTj10aGlzLnd5c2l3eWdDb21wb25lbnQsQz10aGlzLmJsb2NrLmlkLE89W3tuYW1lOiJDaGFuZ2UgVHlwZSIsaWNvbk5hbWU6InR5cGUiLHN1Ym1lbnU6TS5maWx0ZXIoJD0+JC50eXBlIT09eiYmJC50eXBlIT09ImRpdmlkZXIiKS5tYXAoJD0+KHtuYW1lOiQubGFiZWwsaWNvbk5hbWU6JC5pY29uLnJlcGxhY2UoImx1Y2lkZToiLCIiKSxhY3Rpb246aShhc3luYygpPT57aWYoTiYmTi5ibG9ja09wZXJhdGlvbnMpe2xldCBFPU4uYmxvY2tzLmZpbmQoSD0+SC5pZD09PUMpO0UmJihFLnR5cGU9JC50eXBlLEUuY29udGVudD1FLmNvbnRlbnR8fCIiLCQudHlwZT09PSJjb2RlIj9FLm1ldGFkYXRhPXtsYW5ndWFnZToidHlwZXNjcmlwdCJ9OiQudHlwZT09PSJsaXN0Ij9FLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In06JC50eXBlPT09ImltYWdlIj8oRS5jb250ZW50PSIiLEUubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6JC50eXBlPT09InlvdXR1YmUiPyhFLmNvbnRlbnQ9IiIsRS5tZXRhZGF0YT17dmlkZW9JZDoiIix1cmw6IiJ9KTokLnR5cGU9PT0ibWFya2Rvd24iP0UubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTokLnR5cGU9PT0iaHRtbCI/RS5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OiQudHlwZT09PSJhdHRhY2htZW50IiYmKEUuY29udGVudD0iIixFLm1ldGFkYXRhPXtmaWxlczpbXX0pLE4udXBkYXRlQmxvY2tFbGVtZW50KEMpLE4udXBkYXRlVmFsdWUoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntOLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEMpfSkpfX0sImFjdGlvbiIpfSkpfV07cmV0dXJuWyJpbWFnZSIsImRpdmlkZXIiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSl8fE8ucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsaWNvbk5hbWU6InNjaXNzb3JzIixzaG9ydGN1dDoiQ21kK1giLGFjdGlvbjppKGFzeW5jKCk9Pntkb2N1bWVudC5leGVjQ29tbWFuZCgiY3V0Iil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjppKGFzeW5jKCk9Pntkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpfSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoInBhc3RlIil9LCJhY3Rpb24iKX0pLE8ucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBCbG9jayIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e04mJk4uYmxvY2tPcGVyYXRpb25zJiZOLmJsb2NrT3BlcmF0aW9ucy5kZWxldGVCbG9jayhDKX0sImFjdGlvbiIpfSksT31nZXRTcGxpdENvbnRlbnQoKXtjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTdGFydGluZy4uLiIpO2xldCBNPUFzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDaGVja2luZyBmb3IgaGFuZGxlciIse2Jsb2NrVHlwZTp0aGlzLmJsb2NrLnR5cGUsaGFzSGFuZGxlcjohIU0saGFzU3BsaXRNZXRob2Q6ISEoTSYmTS5nZXRTcGxpdENvbnRlbnQpfSksTSYmTS5nZXRTcGxpdENvbnRlbnQpe2xldCBLPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRm91bmQgY29udGFpbmVyIix7Y29udGFpbmVyOiEhSyxjb250YWluZXJIVE1MOks/LmlubmVySFRNTD8uc3Vic3RyaW5nKDAsMTAwKX0pO2xldCBWPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uZ2V0U3BsaXRDb250ZW50KEssVil9bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZigheilyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogTm8gZWRpdGFibGUgZWxlbWVudCBmb3VuZCIpLG51bGw7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRWxlbWVudCBpbmZvOiIse2Jsb2NrVHlwZTp0aGlzLmJsb2NrLnR5cGUsaW5uZXJIVE1MOnouaW5uZXJIVE1MLHRleHRDb250ZW50OnoudGV4dENvbnRlbnQsdGV4dExlbmd0aDp6LnRleHRDb250ZW50Py5sZW5ndGh9KTtsZXQgQz10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LF89W107QyYmXy5wdXNoKEMpLHRoaXMuc2hhZG93Um9vdCYmXy5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IE89JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5fKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86TyxzaGFkb3dSb290c0NvdW50Ol8ubGVuZ3RofSksIU8pe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIHNlbGVjdGlvbiwgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgSz16LnRleHRDb250ZW50fHwiIixWPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sSy5sZW5ndGgpO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTcGxpdHRpbmcgd2l0aCBsYXN0IGtub3duIHBvc2l0aW9uOiIse3BvczpWLGZ1bGxUZXh0TGVuZ3RoOksubGVuZ3RoLGJlZm9yZTpLLnN1YnN0cmluZygwLFYpLGFmdGVyOksuc3Vic3RyaW5nKFYpfSkse2JlZm9yZTpLLnN1YnN0cmluZygwLFYpLGFmdGVyOksuc3Vic3RyaW5nKFYpfX1yZXR1cm4gbnVsbH1pZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gcmFuZ2U6Iix7c3RhcnRDb250YWluZXI6Ty5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpPLnN0YXJ0T2Zmc2V0LHN0YXJ0Q29udGFpbmVySW5FbGVtZW50OnouY29udGFpbnMoTy5zdGFydENvbnRhaW5lcil9KSwhJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oeixPLnN0YXJ0Q29udGFpbmVyKSl7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIG5vdCBpbiB0aGlzIGJsb2NrLCB1c2luZyBsYXN0IGtub3duIHBvc2l0aW9uOiIsdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiksdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBLPXoudGV4dENvbnRlbnR8fCIiLFY9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixLLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpLLnN1YnN0cmluZygwLFYpLGFmdGVyOksuc3Vic3RyaW5nKFYpfX1yZXR1cm4gbnVsbH1sZXQgJD10aGlzLmdldEN1cnNvclBvc2l0aW9uKHopO2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBwb3NpdGlvbiBmb3IgSFRNTCBzcGxpdDoiLCQpLCQ9PT1udWxsfHwkPT09MClyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ3Vyc29yIGF0IHN0YXJ0IG9yIG51bGwsIG1vdmluZyBhbGwgY29udGVudCIpLHtiZWZvcmU6IiIsYWZ0ZXI6ei5pbm5lckhUTUx9O2xldCBFPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksSD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO0Uuc2V0U3RhcnQoeiwwKSxFLnNldEVuZChPLnN0YXJ0Q29udGFpbmVyLE8uc3RhcnRPZmZzZXQpLEguc2V0U3RhcnQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KSxILnNldEVuZCh6LHouY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBrPUUuY2xvbmVDb250ZW50cygpLFM9SC5jbG9uZUNvbnRlbnRzKCksST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtJLmFwcGVuZENoaWxkKGspO2xldCBQPUkuaW5uZXJIVE1MO0kuaW5uZXJIVE1MPSIiLEkuYXBwZW5kQ2hpbGQoUyk7bGV0IFI9SS5pbm5lckhUTUw7cmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZpbmFsIHNwbGl0IHJlc3VsdDoiLHtjdXJzb3JQb3M6JCxiZWZvcmVIdG1sOlAsYmVmb3JlTGVuZ3RoOlAubGVuZ3RoLGJlZm9yZUh0bWxQcmV2aWV3OlAuc3Vic3RyaW5nKDAsMTAwKSsoUC5sZW5ndGg+MTAwPyIuLi4iOiIiKSxhZnRlckh0bWw6UixhZnRlckxlbmd0aDpSLmxlbmd0aCxhZnRlckh0bWxQcmV2aWV3OlIuc3Vic3RyaW5nKDAsMTAwKSsoUi5sZW5ndGg+MTAwPyIuLi4iOiIiKX0pLHtiZWZvcmU6UCxhZnRlcjpSfX1zdGF0aWN7RnUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIEVudD1nKCgpPT57WTFlKCk7TGwoKTtTeCgpO3ExZSgpO0piYSgpO3pudCgpO1pnKCk7U250KCk7WGQoKTtSdSgpO0NudCgpO0RudCgpO2Z2YSgpO212YSgpO2d2YSgpO0xudCgpO2J2YSgpO2tudCgpO01udCgpO3Z2YSgpfSk7dmFyIGM0LFluLFoxZSxZMWU9ZygoKT0+e0VpKCk7WGJhKCk7UHUoKTtwZSgpO0VudCgpO2h0KCk7YzQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFluPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxaMWU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LXd5c2l3eWciKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0V3lzaXd5ZyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W1koKV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxjNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ2YWx1ZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnZhbHVlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudmFsdWU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLGM0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0Rm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvdXRwdXRGb3JtYXQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5vdXRwdXRGb3JtYXQsImdldCIpLHNldDppKChTLEkpPT57Uy5vdXRwdXRGb3JtYXQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLGM0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJibG9ja3MiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5ibG9ja3MsImdldCIpLHNldDppKChTLEkpPT57Uy5ibG9ja3M9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLGM0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImRyYWdnZWRCbG9ja0lkImluIFMsImhhcyIpLGdldDppKFM9PlMuZHJhZ2dlZEJsb2NrSWQsImdldCIpLHNldDppKChTLEkpPT57Uy5kcmFnZ2VkQmxvY2tJZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksYzQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImRyYWdPdmVyQmxvY2tJZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmRyYWdPdmVyQmxvY2tJZCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmRyYWdPdmVyQmxvY2tJZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksYzQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJkcmFnT3ZlclBvc2l0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuZHJhZ092ZXJQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmRyYWdPdmVyUG9zaXRpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLGM0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RlZFRleHQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZFRleHQsImdldCIpLHNldDppKChTLEkpPT57Uy5zZWxlY3RlZFRleHQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLGM0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89WmJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiLCJXb3Jrc3BhY2UiXTsjZT1Zbih0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShrKXt0aGlzLiNlPWt9I3Q9KFluKHRoaXMsbCksWW4odGhpcyxkLCJodG1sIikpO2dldCBvdXRwdXRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3V0cHV0Rm9ybWF0KGspe3RoaXMuI3Q9a30jYT0oWW4odGhpcyx1KSxZbih0aGlzLGIsW3tpZDpJci5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IiJ9XSkpO2dldCBibG9ja3MoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYmxvY2tzKGspe3RoaXMuI2E9a31zZWxlY3RlZEJsb2NrSWQ9KFluKHRoaXMsdiksbnVsbCk7c2xhc2hNZW51PXdudC5nZXRJbnN0YW5jZSgpOyNzPVluKHRoaXMsbSxudWxsKTtnZXQgZHJhZ2dlZEJsb2NrSWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgZHJhZ2dlZEJsb2NrSWQoayl7dGhpcy4jcz1rfSNpPShZbih0aGlzLGYpLFluKHRoaXMsTSxudWxsKSk7Z2V0IGRyYWdPdmVyQmxvY2tJZCgpe3JldHVybiB0aGlzLiNpfXNldCBkcmFnT3ZlckJsb2NrSWQoayl7dGhpcy4jaT1rfSNyPShZbih0aGlzLHopLFluKHRoaXMsQyxudWxsKSk7Z2V0IGRyYWdPdmVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgZHJhZ092ZXJQb3NpdGlvbihrKXt0aGlzLiNyPWt9Zm9ybWF0dGluZ01lbnU9KFluKHRoaXMsXyksX250LmdldEluc3RhbmNlKCkpOyNvPVluKHRoaXMsJCwiIik7Z2V0IHNlbGVjdGVkVGV4dCgpe3JldHVybiB0aGlzLiNvfXNldCBzZWxlY3RlZFRleHQoayl7dGhpcy4jbz1rfWVkaXRvckNvbnRlbnRSZWY9WW4odGhpcyxFKTtpc0NvbXBvc2luZz0hMTtibG9ja09wZXJhdGlvbnM7aW5wdXRIYW5kbGVyO2tleWJvYXJkSGFuZGxlcjtkcmFnRHJvcEhhbmRsZXI7aGlzdG9yeTtzdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxRYmFdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmJsb2NrT3BlcmF0aW9ucz1uZXcgajFlKHRoaXMpLHRoaXMuaW5wdXRIYW5kbGVyPW5ldyBVMWUodGhpcyksdGhpcy5rZXlib2FyZEhhbmRsZXI9bmV3IFcxZSh0aGlzKSx0aGlzLmRyYWdEcm9wSGFuZGxlcj1uZXcgRzFlKHRoaXMpLHRoaXMuaGlzdG9yeT1uZXcgSzFlfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pbnB1dEhhbmRsZXI/LmRlc3Ryb3koKSx0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy52YWx1ZSYmdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjApe2xldCBrPXRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP0MyLnBhcnNlSHRtbFRvQmxvY2tzKHRoaXMudmFsdWUpOkMyLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtrLmxlbmd0aD4wJiYodGhpcy5ibG9ja3M9ayl9dGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmVkaXRvckNvbnRlbnRSZWYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGs9PnRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soaykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2stdGV4dC1zZWxlY3RlZCIsKGs9PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmay5kZXRhaWwuaGFzU2VsZWN0aW9uJiZrLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9ay5kZXRhaWwudGV4dCxrLmRldGFpbC5yZWN0KSl7bGV0IFM9e3g6ay5kZXRhaWwucmVjdC5sZWZ0K2suZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LGsuZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KFMsYXN5bmMgST0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChJKSl9fSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaz0+e2xldCBTPXRoaXMuZm9ybWF0dGluZ01lbnUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2lmKFMmJlMuY29udGFpbnMoay50YXJnZXQpKXJldHVybjtsZXQgST13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7SSYmSS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGg+MHx8dGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlJiZ0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixrPT57bGV0IFM9ay50YXJnZXQ7IXRoaXMuY29udGFpbnMoUykmJiF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKFMpfHwoKGsubWV0YUtleXx8ay5jdHJsS2V5KSYmIWsuc2hpZnRLZXkmJmsua2V5PT09InoiPyhrLnByZXZlbnREZWZhdWx0KCksdGhpcy51bmRvKCkpOihrLm1ldGFLZXl8fGsuY3RybEtleSkmJmsuc2hpZnRLZXkmJmsua2V5PT09InoiJiYoay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVkbygpKSl9KSx0aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl7dGhpcy5lZGl0b3JDb250ZW50UmVmJiYodGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTD0iIix0aGlzLmJsb2Nrcy5mb3JFYWNoKGs9PntsZXQgUz10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChrKTt0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoUyl9KSl9Y3JlYXRlQmxvY2tFbGVtZW50KGspe2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKFMuY2xhc3NOYW1lPSJibG9jay13cmFwcGVyIixTLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsay5pZCksay50eXBlIT09ImRpdmlkZXIiKXtsZXQgUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtQLmNsYXNzTmFtZT0iZHJhZy1oYW5kbGUiLFAuZHJhZ2dhYmxlPSEwLFAuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixSPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoUixrKSksUy5hcHBlbmRDaGlsZChQKX1sZXQgST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXd5c2l3eWctYmxvY2siKTtyZXR1cm4gSS5ibG9jaz1rLEkuaXNTZWxlY3RlZD10aGlzLnNlbGVjdGVkQmxvY2tJZD09PWsuaWQsSS53eXNpd3lnQ29tcG9uZW50PXRoaXMsSS5oYW5kbGVycz17b25JbnB1dDppKFA9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoUCxrKSwib25JbnB1dCIpLG9uS2V5RG93bjppKFA9PnRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bihQLGspLCJvbktleURvd24iKSxvbkZvY3VzOmkoKCk9PnRoaXMuaGFuZGxlQmxvY2tGb2N1cyhrKSwib25Gb2N1cyIpLG9uQmx1cjppKCgpPT50aGlzLmhhbmRsZUJsb2NrQmx1cihrKSwib25CbHVyIiksb25Db21wb3NpdGlvblN0YXJ0OmkoKCk9PnRoaXMuaXNDb21wb3Npbmc9ITAsIm9uQ29tcG9zaXRpb25TdGFydCIpLG9uQ29tcG9zaXRpb25FbmQ6aSgoKT0+dGhpcy5pc0NvbXBvc2luZz0hMSwib25Db21wb3NpdGlvbkVuZCIpLG9uTW91c2VVcDppKFA9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbihQKSwib25Nb3VzZVVwIiksb25SZXF1ZXN0VXBkYXRlOmkoKCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KGsuaWQpLCJvblJlcXVlc3RVcGRhdGUiKX0sUy5hcHBlbmRDaGlsZChJKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixQPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnT3ZlcihQLGspKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLFA9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoUCxrKSksUy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgpPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnTGVhdmUoaykpLFN9dXBkYXRlQmxvY2tFbGVtZW50KGspe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoUj0+Ui5pZD09PWspO2lmKCFTKXJldHVybjtsZXQgST10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7a30iXWApO2lmKCFJKXJldHVybjtsZXQgUD10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChTKTtJLnJlcGxhY2VXaXRoKFApfXJlbmRlcigpe3JldHVybiBNbmAKICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAubGFiZWw9IiR7dGhpcy5sYWJlbH0iCiAgICAgICAgLmluZm9UZXh0PSIke3RoaXMuaW5mb1RleHR9IgogICAgICAgIC5yZXF1aXJlZD0iJHt0aGlzLnJlcXVpcmVkfSIKICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0id3lzaXd5Zy1jb250YWluZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICBgfWhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGspe3N3aXRjaChrLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmsucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgiZG93biIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6ay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJ1cCIpO2JyZWFrO2Nhc2UiRW50ZXIiOmsucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7YnJlYWs7Y2FzZSJFc2NhcGUiOmsucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlU2xhc2hNZW51KCEwKTticmVha319Y2xvc2VTbGFzaE1lbnUoaz0hMSl7aWYoayYmdGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoST0+SS5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZihTKXtsZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQKXtsZXQgUj1QLmdldENvbnRlbnQoKTtpZihSLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IEs9Ui5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7UC5zZXRDb250ZW50KEspLFMuY29udGVudD1LLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1AuZm9jdXNXaXRoQ3Vyc29yKDApfSl9fX19dGhpcy5zbGFzaE1lbnUuaGlkZSgpfWhhbmRsZUJsb2NrRm9jdXMoayl7dGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpO2xldCBTPXRoaXMuc2VsZWN0ZWRCbG9ja0lkO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkPWsuaWQsUyE9PWsuaWQpe2lmKFMpe2xldCBLPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7U30iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtLJiYoSy5pc1NlbGVjdGVkPSExKX1sZXQgUD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7UCYmKFAuaXNTZWxlY3RlZD0hMCl9fWJsdXJUaW1lb3V0PW51bGw7aGFuZGxlQmxvY2tCbHVyKGspe2lmKHRoaXMuYmx1clRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLnNsYXNoTWVudS52aXNpYmxlKXJldHVybjtsZXQgST10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoSSYmSS5nZXRDb250ZW50KXtsZXQgUD1JLmdldENvbnRlbnQoKTtrLmNvbnRlbnQhPT1QJiYoay5jb250ZW50PVApfXRoaXMuYmx1clRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCJibG9jayIpfHx0aGlzLnVwZGF0ZVZhbHVlKCl9LDEwMCl9aGFuZGxlRWRpdG9yQ2xpY2soayl7bGV0IFM9ay50YXJnZXQ7aWYodGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5jbG9zZVNsYXNoTWVudSghMCksUy5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1jb250ZW50Iikpe2xldCBJPXRoaXMuYmxvY2tzW3RoaXMuYmxvY2tzLmxlbmd0aC0xXTt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEkuaWQsSS50eXBlPT09ImRpdmlkZXIifHxJLnR5cGU9PT0iaW1hZ2UiP3ZvaWQgMDoiZW5kIil9fWNyZWF0ZU5ld0Jsb2NrKGs9InBhcmFncmFwaCIsUz0iIixJKXtyZXR1cm57aWQ6SXIuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTprLGNvbnRlbnQ6UywuLi5JJiZ7bWV0YWRhdGE6SX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoayxTLEk9ITApe2xldCBQPXRoaXMuYmxvY2tzLmZpbmRJbmRleChLPT5LLmlkPT09ay5pZCk7dGhpcy5ibG9ja3M9Wy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsUCsxKSxTLC4uLnRoaXMuYmxvY2tzLnNsaWNlKFArMSldO2xldCBSPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtrLmlkfSJdYCk7aWYoUil7bGV0IEs9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoUyk7Ui5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixLKX10aGlzLnVwZGF0ZVZhbHVlKCksSSYmUy50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2UoSz0+c2V0VGltZW91dChLLDApKSxhd2FpdCB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKFMuaWQsInN0YXJ0IikpfWFzeW5jIGluc2VydEJsb2NrKGspe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoUj0+Ui5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZighUyl7dGhpcy5jbG9zZVNsYXNoTWVudSgpO3JldHVybn1sZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQKXtsZXQgUj1QLmdldENvbnRlbnQoKTtpZihSLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IEs9Ui5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7UC5zZXRDb250ZW50KEspLFMuY29udGVudD1LfX1pZih0aGlzLmNsb3NlU2xhc2hNZW51KCExKSxrPT09ImNvZGUiJiYoUy5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifSksUy50eXBlPWssUy5jb250ZW50PVMuY29udGVudHx8IiIsaz09PSJkaXZpZGVyIil7Uy5jb250ZW50PSIgIjtsZXQgUj10aGlzLmNyZWF0ZU5ld0Jsb2NrKCk7dGhpcy5pbnNlcnRCbG9ja0FmdGVyKFMsUil9ZWxzZSBrPT09Imxpc3QiPyhTLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In0sUy5jb250ZW50PSIiKTprPT09ImltYWdlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6az09PSJ5b3V0dWJlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6az09PSJtYXJrZG93biI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Oms9PT0iaHRtbCI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Oms9PT0iYXR0YWNobWVudCI/KFMuY29udGVudD0iIixTLm1ldGFkYXRhPXtmaWxlczpbXX0pOlMuY29udGVudD1TLmNvbnRlbnR8fCIiO3RoaXMudXBkYXRlQmxvY2tFbGVtZW50KFMuaWQpLHRoaXMudXBkYXRlVmFsdWUoKSxhd2FpdCBuZXcgUHJvbWlzZShSPT5zZXRUaW1lb3V0KFIsMCkpLGs9PT0ibGlzdCI/KHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgSz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke1MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7SyYmSy5mb2N1c0xpc3RJdGVtKCl9KSk6ayE9PSJkaXZpZGVyIiYmayE9PSJpbWFnZSImJmshPT0ieW91dHViZSImJmshPT0ibWFya2Rvd24iJiZrIT09Imh0bWwiJiZrIT09ImF0dGFjaG1lbnQiP3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKTooaz09PSJpbWFnZSJ8fGs9PT0ieW91dHViZSJ8fGs9PT0ibWFya2Rvd24ifHxrPT09Imh0bWwifHxrPT09ImF0dGFjaG1lbnQiKSYmdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkKX11cGRhdGVWYWx1ZSgpe3RoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMudmFsdWU9QzIuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk6dGhpcy52YWx1ZT1DMi5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2NrcyksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5zYXZlVG9IaXN0b3J5KCEwKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGspe3RoaXMudmFsdWU9ayx0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLmJsb2Nrcz1DMi5wYXJzZUh0bWxUb0Jsb2NrcyhrKTp0aGlzLmJsb2Nrcz1DMi5wYXJzZU1hcmtkb3duVG9CbG9ja3MoayksdGhpcy5ibG9ja3MubGVuZ3RoPT09MCYmKHRoaXMuYmxvY2tzPVt7aWQ6SXIuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QmxvY2tzKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ibG9ja3MpKX1pbXBvcnRCbG9ja3Moayl7dGhpcy5ibG9ja3M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShrKSksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QXNIdG1sKCl7cmV0dXJuIEMyLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydEFzTWFya2Rvd24oKXtyZXR1cm4gQzIuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydFN0YXRlKCl7cmV0dXJue2Jsb2Nrczp0aGlzLmV4cG9ydEJsb2NrcygpLG91dHB1dEZvcm1hdDp0aGlzLm91dHB1dEZvcm1hdH19aW1wb3J0U3RhdGUoayl7ay5vdXRwdXRGb3JtYXQmJih0aGlzLm91dHB1dEZvcm1hdD1rLm91dHB1dEZvcm1hdCksdGhpcy5pbXBvcnRCbG9ja3Moay5ibG9ja3MpfWhhbmRsZURyYWdFbmQoKXtpZih0aGlzLmRyYWdnZWRCbG9ja0lkKXtsZXQgUz10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH0iXWApO1MmJlMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKFM9PntTLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3Zlci1iZWZvcmUiLCJkcmFnLW92ZXItYWZ0ZXIiKX0pLHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyb3AoayxTKXtpZihrLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1TLmlkKXJldHVybjtsZXQgST10aGlzLmJsb2Nrcy5maW5kSW5kZXgoVj0+Vi5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpLFA9dGhpcy5ibG9ja3MuZmluZEluZGV4KFY9PlYuaWQ9PT1TLmlkKTtpZihJPT09LTF8fFA9PT0tMSlyZXR1cm47bGV0W1JdPXRoaXMuYmxvY2tzLnNwbGljZShJLDEpLEs9UDt0aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYWZ0ZXIiP0s9STxQP1A6UCsxOks9STxQP1AtMTpQLHRoaXMuYmxvY2tzLnNwbGljZShLLDAsUiksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgVj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Ui5pZH0iXSAuYmxvY2tgKTtWJiZSLnR5cGUhPT0iZGl2aWRlciImJlYuZm9jdXMoKX0sMTAwKX1oYW5kbGVUZXh0U2VsZWN0aW9uKGspe3RoaXMuc2xhc2hNZW51LnZpc2libGV9dXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpe2xldCBrPVtdO3RoaXMuc2hhZG93Um9vdCYmay5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKFA9PntsZXQgUj1QLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1I/LnNoYWRvd1Jvb3QmJmsucHVzaChSLnNoYWRvd1Jvb3QpfSk7bGV0IEk9bDQuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uayk7SSYmdGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHt4OkkueCx5OkkueX0sYXN5bmMgUD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChQKSl9aGlkZUZvcm1hdHRpbmdNZW51KCl7dGhpcy5mb3JtYXR0aW5nTWVudS5oaWRlKCksdGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgYXBwbHlGb3JtYXQoayl7bGV0IFM9W107dGhpcy5zaGFkb3dSb290JiZTLnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2gobWU9PntsZXQgQj1tZS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtCPy5zaGFkb3dSb290JiZTLnB1c2goQi5zaGFkb3dSb290KX0pO2xldCBQPSR0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoIVApcmV0dXJuO2xldCBSLEssVj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKTtmb3IobGV0IG1lPTA7bWU8Vi5sZW5ndGg7bWUrKyl7bGV0IEI9VlttZV0sVT1CLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFU/LnNoYWRvd1Jvb3Qpe2xldCBoZT1VLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoaGUmJihoZS5jb250YWlucyhQLnN0YXJ0Q29udGFpbmVyKXx8aGUuY29udGFpbnMoUC5lbmRDb250YWluZXIpKSl7bGV0IEY9Qi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtSPXRoaXMuYmxvY2tzLmZpbmQoaj0+ai5pZD09PUYpLEs9VTticmVha319fWlmKCFSfHwhSylyZXR1cm47bGV0IFc9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhQKTtpZihrPT09ImxpbmsiKXtsZXQgbWU9YXdhaXQgdGhpcy5zaG93TGlua0RpYWxvZygpO2lmKCFtZSl7Sy5mb2N1cygpO3JldHVybn1sNC5hcHBseUZvcm1hdChrLG1lLFcsUyl9ZWxzZSBsNC5hcHBseUZvcm1hdChrLHZvaWQgMCxXLFMpO2F3YWl0IG5ldyBQcm9taXNlKG1lPT5zZXRUaW1lb3V0KG1lLDEwKSksUi5jb250ZW50PUsuZ2V0Q29udGVudCgpLHRoaXMudXBkYXRlVmFsdWUoKSxLLmZvY3VzKCksaz09PSJsaW5rIj90aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpOnRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIHNob3dMaW5rRGlhbG9nKCl7cmV0dXJuIG5ldyBQcm9taXNlKGs9PntsZXQgUz1udWxsO2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBMaW5rIixjb250ZW50Ok1uYAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGluay1pbnB1dCB7CiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaW5wdXQpOwogICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpOwogICAgICAgICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1wcmltYXJ5KTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgY2xhc3M9ImxpbmstaW5wdXQiIAogICAgICAgICAgICB0eXBlPSJ1cmwiIAogICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9leGFtcGxlLmNvbSIgCiAgICAgICAgICAgIEBrZXlkb3duPSIke0k9PntpZihJLmtleT09PSJFbnRlciIpe2xldCBQPUkudGFyZ2V0O1M9UC52YWx1ZTtsZXQgUj1QLmNsb3Nlc3QoImRlZXMtbW9kYWwiKTtpZihSKXtsZXQgSz1SLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ib3R0b21CdXR0b246bGFzdC1jaGlsZCIpO0smJksuY2xpY2soKX19fX0iCiAgICAgICAgICAgIEBpbnB1dD0iJHtJPT57Uz1JLnRhcmdldC52YWx1ZX19IgogICAgICAgICAgLz4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBJPT57SS5kZXN0cm95KCksayhudWxsKX0sImFjdGlvbiIpfSx7bmFtZToiQWRkIExpbmsiLGFjdGlvbjppKGFzeW5jIEk9PntJLmRlc3Ryb3koKSxrKFMpfSwiYWN0aW9uIil9XX0pLHNldFRpbWVvdXQoKCk9PntsZXQgST1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIC5saW5rLWlucHV0Iik7SSYmSS5mb2N1cygpfSwxMDApfSl9dW5kbygpe2xldCBrPXRoaXMuaGlzdG9yeS51bmRvKCk7ayYmdGhpcy5yZXN0b3JlU3RhdGUoayl9cmVkbygpe2xldCBrPXRoaXMuaGlzdG9yeS5yZWRvKCk7ayYmdGhpcy5yZXN0b3JlU3RhdGUoayl9cmVzdG9yZVN0YXRlKGspe3RoaXMuYmxvY2tzPWsuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkPWsuc2VsZWN0ZWRCbG9ja0lkLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGsuY3Vyc29yUG9zaXRpb24/c2V0VGltZW91dCgoKT0+e2xldCBJPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ay5jdXJzb3JQb3NpdGlvbi5ibG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0kmJkkuZm9jdXNXaXRoQ3Vyc29yKGsuY3Vyc29yUG9zaXRpb24ub2Zmc2V0KX0sNTApOmsuc2VsZWN0ZWRCbG9ja0lkJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhrLnNlbGVjdGVkQmxvY2tJZCl9LDUwKSx0aGlzLnVwZGF0ZVZhbHVlKCl9c2F2ZVRvSGlzdG9yeShrPSEwKXtsZXQgUztpZih0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IFA9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLnNlbGVjdGVkQmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQJiZ0eXBlb2YgUC5nZXRDdXJzb3JQb3NpdGlvbj09ImZ1bmN0aW9uIil7bGV0IFI9UC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihSKXtsZXQgSz1QLmdldEN1cnNvclBvc2l0aW9uKFIpO0shPT1udWxsJiYoUz17YmxvY2tJZDp0aGlzLnNlbGVjdGVkQmxvY2tJZCxvZmZzZXQ6S30pfX19az90aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLFMpOnRoaXMuaGlzdG9yeS5zYXZlQ2hlY2twb2ludCh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCxTKX1zdGF0aWN7WW4oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIHh2YSx5dmE9ZygoKT0+e3BlKCk7SXQoKTtYMWUoKTt4bygpO3h2YT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJpY2ggVGV4dCBFZGl0b3IifSAuc3VidGl0bGU9JHsiQSBmdWxsLWZlYXR1cmVkIHJpY2ggdGV4dCBlZGl0b3Igd2l0aCBmb3JtYXR0aW5nIHRvb2xiYXIifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJBcnRpY2xlIENvbnRlbnQifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDE+V2VsY29tZSB0byB0aGUgUmljaCBUZXh0IEVkaXRvciE8L2gxPjxwPlRoaXMgaXMgYSBmZWF0dXJlLXJpY2ggZWRpdG9yIGJ1aWx0IHdpdGggVGlwVGFwLiBZb3UgY2FuOjwvcD48dWw+PGxpPjxzdHJvbmc+Rm9ybWF0IHRleHQ8L3N0cm9uZz4gd2l0aCA8ZW0+dmFyaW91czwvZW0+IDx1PnN0eWxlczwvdT48L2xpPjxsaT5DcmVhdGUgZGlmZmVyZW50IGhlYWRpbmcgbGV2ZWxzPC9saT48bGk+QWRkIDxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS5jb20iPmxpbmtzPC9hPiB0byBleHRlcm5hbCByZXNvdXJjZXM8L2xpPjxsaT5Xcml0ZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4gb3IgY29kZSBibG9ja3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+PHA+VXNlIHRoZSB0b29sYmFyIGFib3ZlIHRvIGV4cGxvcmUgYWxsIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnMgYXZhaWxhYmxlITwvcD48L2Jsb2NrcXVvdGU+PHA+U3RhcnQgdHlwaW5nIHRvIHNlZSB0aGUgbWFnaWMgaGFwcGVuLi4uPC9wPid9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXNlIHRoZSB0b29sYmFyIHRvIGZvcm1hdCB5b3VyIGNvbnRlbnQgd2l0aCBoZWFkaW5ncywgbGlzdHMsIGxpbmtzLCBhbmQgbW9yZSJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRoIFBsYWNlaG9sZGVyIn0gLnN1YnRpdGxlPSR7IkVtcHR5IGVkaXRvciB3aXRoIHBsYWNlaG9sZGVyIHRleHQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJCbG9nIFBvc3QifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTdGFydCB3cml0aW5nIHlvdXIgYmxvZyBwb3N0IGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gRGlmZmVyZW50IEhlaWdodHMifSAuc3VidGl0bGU9JHsiRWRpdG9ycyB3aXRoIGRpZmZlcmVudCBtaW5pbXVtIGhlaWdodHMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTaG9ydCBOb3RlIn0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHsxNTB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJRdWljayBub3RlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRXh0ZW5kZWQgQ29udGVudCJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MzAwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiV3JpdGUgeW91ciBleHRlbmRlZCBjb250ZW50IGhlcmUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIENvZGUgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiRWRpdG9yIHByZS1maWxsZWQgd2l0aCBjb2RlIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiVGVjaG5pY2FsIERvY3VtZW50YXRpb24ifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+SW5zdGFsbGF0aW9uIEd1aWRlPC9oMj48cD5UbyBpbnN0YWxsIHRoZSBwYWNrYWdlLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOjwvcD48cHJlPjxjb2RlPm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT48cD5UaGVuIGltcG9ydCB0aGUgY29tcG9uZW50IGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlOjwvcD48cHJlPjxjb2RlPmltcG9ydCB7IERlZXNJbnB1dFJpY2h0ZXh0IH0gZnJvbSAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIjs8L2NvZGU+PC9wcmU+PHA+WW91IGNhbiBub3cgdXNlIHRoZSA8Y29kZT4mbHQ7ZGVlcy1pbnB1dC1yaWNodGV4dCZndDs8L2NvZGU+IGVsZW1lbnQgaW4geW91ciB0ZW1wbGF0ZXMuPC9wPid9CiAgICAgICAgICAubWluSGVpZ2h0PSR7MjUwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IHJpY2ggdGV4dCBjb250ZW50In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiUHVibGlzaGVkIEFydGljbGUgKFJlYWQgT25seSkifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+VGhlIEZ1dHVyZSBvZiBXZWIgQ29tcG9uZW50czwvaDI+PHA+V2ViIENvbXBvbmVudHMgaGF2ZSByZXZvbHV0aW9uaXplZCBob3cgd2UgYnVpbGQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMuLi48L3A+PGJsb2NrcXVvdGU+PHA+IlRoZSBmdXR1cmUgb2Ygd2ViIGRldmVsb3BtZW50IGxpZXMgaW4gcmV1c2FibGUsIGVuY2Fwc3VsYXRlZCBjb21wb25lbnRzLiI8L3A+PC9ibG9ja3F1b3RlPid9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiVHlwZSBpbiB0aGUgZWRpdG9yIGJlbG93IGFuZCBzZWUgdGhlIEhUTUwgb3V0cHV0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZWRpdG9yIgogICAgICAgICAgLmxhYmVsPSR7IlRyeSBpdCB5b3Vyc2VsZiJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgc29tZXRoaW5nIGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgIEBjaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3Iik7ZSYmKGUudGV4dENvbnRlbnQ9cy5kZXRhaWwudmFsdWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ib3V0cHV0LXByZXZpZXciPgogICAgICAgICAgPGVtPkhUTUwgb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgd3ZhLGt2YT1nKCgpPT57cGUoKTtFaSgpO2h0KCk7d3ZhPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLmZvY3VzZWQ6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHAgewogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHVsLAogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIG9sIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtOwogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBsaSB7CiAgICAgICAgbWFyZ2luOiAwLjI1ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTsKICAgICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0ZpcmEgQ29kZScsICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsICdSb2JvdG8gTW9ubycsIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMWVtOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNDEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDY5LjglKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLndvcmQtY291bnQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIGRlZXMtdGlsZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50b29sYmFyLWJ1dHRvbiwKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF19KTt2YXIgU3ZhLF92YT1nKCgpPT57cGUoKTtTdmE9aShzPT53YAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgJHtzLmxhYmVsP3dgPGxhYmVsIGNsYXNzPSJsYWJlbCI+JHtzLmxhYmVsfTwvbGFiZWw+YDoiIn0KICAgICAgICAgIDxkZWVzLXRpbGUgY2xhc3M9IiR7cy5lZGl0b3I/LmlzRm9jdXNlZD8iZm9jdXNlZCI6IiJ9IiBzdHlsZT0iLS1taW4taGVpZ2h0OiAke3MubWluSGVpZ2h0fXB4Ij4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJlZGl0b3ItdG9vbGJhciI+CiAgICAgICAgICAgICAgJHtzLnJlbmRlclRvb2xiYXIoKX0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0ICR7cy5zaG93TGlua0lucHV0PyJzaG93IjoiIn0iPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InVybCIgcGxhY2Vob2xkZXI9IkVudGVyIFVSTC4uLiIgQGtleWRvd249JHtzLmhhbmRsZUxpbmtJbnB1dEtleWRvd259IC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0LWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcmltYXJ5IiBAY2xpY2s9JHtzLnNhdmVMaW5rfT5TYXZlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7cy5yZW1vdmVMaW5rfT5SZW1vdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHtzLmhpZGVMaW5rSW5wdXR9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+PC9kaXY+CiAgICAgICAgICAgICR7cy5zaG93V29yZENvdW50P3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQtY291bnQiPiR7cy53b3JkQ291bnR9IHdvcmQke3Mud29yZENvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAgICR7cy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgIDwvZGl2PgogICAgICBgLCJyZW5kZXJSaWNodGV4dCIpfSk7dmFyIEpnLGxjLFBudCxYMWU9ZygoKT0+e0VpKCk7eXZhKCk7a3ZhKCk7X3ZhKCk7R2EoKTtwZSgpO091KCk7bXIoKTtKZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbGM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBudD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcmljaHRleHQiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UmljaHRleHQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtZKCldLE49W1koKV0sSmcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZhbHVlPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxKZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJwbGFjZWhvbGRlciJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UucGxhY2Vob2xkZXI9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLEpnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2hvd1dvcmRDb3VudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNob3dXb3JkQ291bnQsImdldCIpLHNldDppKChFLEgpPT57RS5zaG93V29yZENvdW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYix2KSxKZyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWluSGVpZ2h0ImluIEUsImhhcyIpLGdldDppKEU9PkUubWluSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubWluSGVpZ2h0PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSxKZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dMaW5rSW5wdXQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93TGlua0lucHV0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc2hvd0xpbmtJbnB1dD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksSmcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+IndvcmRDb3VudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLndvcmRDb3VudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLndvcmRDb3VudD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksSmcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz14dmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPWxjKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCQpe3RoaXMuI2U9JH0jdD0obGModGhpcyxsKSxsYyh0aGlzLGQsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoJCl7dGhpcy4jdD0kfSNhPShsYyh0aGlzLHUpLGxjKHRoaXMsYiwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dXb3JkQ291bnQoJCl7dGhpcy4jYT0kfSNzPShsYyh0aGlzLHYpLGxjKHRoaXMsbSwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1pbkhlaWdodCgkKXt0aGlzLiNzPSR9I2k9KGxjKHRoaXMsZiksbGModGhpcyxNLCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd0xpbmtJbnB1dCgkKXt0aGlzLiNpPSR9I3I9KGxjKHRoaXMseiksbGModGhpcyxDLDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHdvcmRDb3VudCgkKXt0aGlzLiNyPSR9ZWRpdG9yRWxlbWVudD1sYyh0aGlzLF8pO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9d3ZhO3JlbmRlcigpe3JldHVybiBTdmEodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCAkPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gd2AKICAgICAgJHskLm1hcChFPT5FLmlzRGl2aWRlcj93YDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHtFLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke0UuYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0ke0UudGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke0UuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQm9sZCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYm9sZCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiaXRhbGljIixpY29uOiJsdWNpZGU6aXRhbGljIix0aXRsZToiSXRhbGljIChDdHJsK0kpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUl0YWxpYygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaXRhbGljIiksImlzQWN0aXZlIil9LHtuYW1lOiJ1bmRlcmxpbmUiLGljb246Imx1Y2lkZTp1bmRlcmxpbmUiLHRpdGxlOiJVbmRlcmxpbmUgKEN0cmwrVSkiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKSwiaXNBY3RpdmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVN0cmlrZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgic3RyaWtlIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMSIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToiaDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSIsdGl0bGU6IkhlYWRpbmcgMSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoxfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6MX0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDIiLGljb246Imx1Y2lkZTpoZWFkaW5nMiIsdGl0bGU6IkhlYWRpbmcgMiIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDozfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6M30pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjIiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImJ1bGxldExpc3QiLGljb246Imx1Y2lkZTpsaXN0Iix0aXRsZToiQnVsbGV0IExpc3QiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQnVsbGV0TGlzdCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYnVsbGV0TGlzdCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToib3JkZXJlZExpc3QiLGljb246Imx1Y2lkZTpsaXN0T3JkZXJlZCIsdGl0bGU6Ik51bWJlcmVkIExpc3QiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0IiksImlzQWN0aXZlIil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCbG9ja3F1b3RlKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJibG9ja3F1b3RlIiksImlzQWN0aXZlIil9LHtuYW1lOiJjb2RlIixpY29uOiJsdWNpZGU6Y29kZSIsdGl0bGU6IkNvZGUiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQ29kZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiY29kZUJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUiLHRpdGxlOiJDb2RlIEJsb2NrIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOmkoKCk9PnRoaXMudG9nZ2xlTGluaygpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25MZWZ0IixpY29uOiJsdWNpZGU6YWxpZ25MZWZ0Iix0aXRsZToiQWxpZ24gTGVmdCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oImxlZnQiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoibGVmdCJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduQ2VudGVyIixpY29uOiJsdWNpZGU6YWxpZ25DZW50ZXIiLHRpdGxlOiJBbGlnbiBDZW50ZXIiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oInJpZ2h0IikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246InJpZ2h0In0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjQiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6InVuZG8iLGljb246Imx1Y2lkZTp1bmRvIix0aXRsZToiVW5kbyAoQ3RybCtaKSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bmRvKCkucnVuKCksImFjdGlvbiIpfSx7bmFtZToicmVkbyIsaWNvbjoibHVjaWRlOnJlZG8iLHRpdGxlOiJSZWRvIChDdHJsK1kpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnJlZG8oKS5ydW4oKSwiYWN0aW9uIil9XTpbXX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMudGlwdGFwQnVuZGxlPWF3YWl0IGFvLmdldEluc3RhbmNlKCkubG9hZFRpcHRhcCgpLHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5saW5rSW5wdXRFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubGluay1pbnB1dCBpbnB1dCIpLHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWluaXRpYWxpemVFZGl0b3IoKXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy50aXB0YXBCdW5kbGUpcmV0dXJuO2xldHtFZGl0b3I6JCxTdGFydGVyS2l0OkUsVW5kZXJsaW5lOkgsVGV4dEFsaWduOmssTGluazpTLFR5cG9ncmFwaHk6SX09dGhpcy50aXB0YXBCdW5kbGU7dGhpcy5lZGl0b3I9bmV3ICQoe2VsZW1lbnQ6dGhpcy5lZGl0b3JFbGVtZW50LGV4dGVuc2lvbnM6W0UuY29uZmlndXJlKHtoZWFkaW5nOntsZXZlbHM6WzEsMiwzXX19KSxILmNvbmZpZ3VyZSh7fSksay5jb25maWd1cmUoe3R5cGVzOlsiaGVhZGluZyIsInBhcmFncmFwaCJdfSksUy5jb25maWd1cmUoe29wZW5PbkNsaWNrOiExLEhUTUxBdHRyaWJ1dGVzOntjbGFzczoiZWRpdG9yLWxpbmsifX0pLEkuY29uZmlndXJlKHt9KV0sY29udGVudDp0aGlzLnZhbHVlfHwodGhpcy5wbGFjZWhvbGRlcj9gPHA+JHt0aGlzLnBsYWNlaG9sZGVyfTwvcD5gOiIiKSxvblVwZGF0ZTppKCh7ZWRpdG9yOlB9KT0+e3RoaXMudmFsdWU9UC5nZXRIVE1MKCksdGhpcy51cGRhdGVXb3JkQ291bnQoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJvblVwZGF0ZSIpLG9uU2VsZWN0aW9uVXBkYXRlOmkoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uU2VsZWN0aW9uVXBkYXRlIiksb25Gb2N1czppKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvbkZvY3VzIiksb25CbHVyOmkoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uQmx1ciIpfSksdGhpcy51cGRhdGVXb3JkQ291bnQoKX11cGRhdGVXb3JkQ291bnQoKXtpZighdGhpcy5lZGl0b3IpcmV0dXJuO2xldCAkPXRoaXMuZWRpdG9yLmdldFRleHQoKTt0aGlzLndvcmRDb3VudD0kLnRyaW0oKT8kLnRyaW0oKS5zcGxpdCgvXHMrLykubGVuZ3RoOjB9dG9nZ2xlTGluaygpe2lmKHRoaXMuZWRpdG9yKWlmKHRoaXMuZWRpdG9yLmlzQWN0aXZlKCJsaW5rIikpe2xldCAkPXRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoImxpbmsiKS5ocmVmO3RoaXMuc2hvd0xpbmtJbnB1dD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmxpbmtJbnB1dEVsZW1lbnQmJih0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU9JHx8IiIsdGhpcy5saW5rSW5wdXRFbGVtZW50LmZvY3VzKCksdGhpcy5saW5rSW5wdXRFbGVtZW50LnNlbGVjdCgpKX0pfWVsc2UgdGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT0iIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSl9KX1zYXZlTGluaygpe2lmKCF0aGlzLmVkaXRvcnx8IXRoaXMubGlua0lucHV0RWxlbWVudClyZXR1cm47bGV0ICQ9dGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlOyQmJnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRMaW5rKHtocmVmOiR9KS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKX1yZW1vdmVMaW5rKCl7dGhpcy5lZGl0b3ImJih0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5zZXRMaW5rKCkucnVuKCksdGhpcy5oaWRlTGlua0lucHV0KCkpfWhpZGVMaW5rSW5wdXQoKXt0aGlzLnNob3dMaW5rSW5wdXQ9ITEsdGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCl9aGFuZGxlTGlua0lucHV0S2V5ZG93bigkKXskLmtleT09PSJFbnRlciI/KCQucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVMaW5rKCkpOiQua2V5PT09IkVzY2FwZSImJigkLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWRlTGlua0lucHV0KCkpfXNldFZhbHVlKCQpe3RoaXMudmFsdWU9JCx0aGlzLmVkaXRvciYmJCE9PXRoaXMuZWRpdG9yLmdldEhUTUwoKSYmdGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0Q29udGVudCgkKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfWNsZWFyKCl7dGhpcy5zZXRWYWx1ZSgiIil9Zm9jdXMoKXt0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmRlc3Ryb3koKX1zdGF0aWN7bGMoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIE12YSx6dmE9ZygoKT0+e0ludCgpO3ZvKCk7cGUoKTtJdCgpO012YT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgPGRlZXMtYnV0dG9uIGNsYXNzPSJ0aGVtZS10b2dnbGUiIEBjbGljaz0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImRhcmsiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIFRhYmxlIHdpdGggQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgc3RhbmRhcmQgdGFibGUgd2l0aCByb3cgYWN0aW9ucywgZWRpdGFibGUgY2VsbHMsIGFuZCBjb250ZXh0IG1lbnUgc3VwcG9ydC4gRG91YmxlLWNsaWNrIGFueSBjZWxsIHRvIGVkaXQuIFRhYiBtb3ZlcyB0byB0aGUgbmV4dCBlZGl0YWJsZSBjZWxsLCBFbnRlciB0byB0aGUgcm93IGJlbG93LCBFc2MgY2FuY2Vscy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50IgogICAgICAgICAgaGVhZGluZzI9IkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjEiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJkYXRlIixoZWFkZXI6IkRhdGUiLHNvcnRhYmxlOiEwLGVkaXRhYmxlOiEwLGVkaXRvcjoiZGF0ZSJ9LHtrZXk6ImFtb3VudCIsaGVhZGVyOiJBbW91bnQiLGVkaXRhYmxlOiEwLGVkaXRvcjoidGV4dCJ9LHtrZXk6ImNhdGVnb3J5IixoZWFkZXI6IkNhdGVnb3J5IixlZGl0YWJsZTohMCxlZGl0b3I6ImRyb3Bkb3duIixlZGl0b3JPcHRpb25zOntvcHRpb25zOlt7b3B0aW9uOiJPZmZpY2UgU3VwcGxpZXMiLGtleToib2ZmaWNlIn0se29wdGlvbjoiSGFyZHdhcmUiLGtleToiaGFyZHdhcmUifSx7b3B0aW9uOiJTb2Z0d2FyZSIsa2V5OiJzb2Z0d2FyZSJ9LHtvcHRpb246IlRyYXZlbCIsa2V5OiJ0cmF2ZWwifV19fSx7a2V5OiJkZXNjcmlwdGlvbiIsaGVhZGVyOiJEZXNjcmlwdGlvbiIsZWRpdGFibGU6ITB9LHtrZXk6InJlY29uY2lsZWQiLGhlYWRlcjoiT0siLGVkaXRhYmxlOiEwLGVkaXRvcjoiY2hlY2tib3gifV19CiAgICAgICAgICBAY2VsbEVkaXQ9JHtzPT5jb25zb2xlLmxvZygiY2VsbEVkaXQiLHMuZGV0YWlsKX0KICAgICAgICAgIC5kYXRhPSR7W3tkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixjYXRlZ29yeToib2ZmaWNlIixkZXNjcmlwdGlvbjoiUHJpbnRpbmcgUGFwZXIgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDIiLGFtb3VudDoiMTY1LjY1IFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTG9naXRlY2ggTW91c2UgLSBsb2dpLmNvbSBPbmxpbmVTaG9wIixyZWNvbmNpbGVkOiExfSx7ZGF0ZToiMjAyMS0wNC0wMyIsYW1vdW50OiIyOTk5LDAwIFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTWFjYm9vayBQcm8gMTZpbmNoIC0gQXBwbGUuZGUgT25saW5lU2hvcCIscmVjb25jaWxlZDohMX0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH1dfQogICAgICAgICAgZGF0YU5hbWU9InRyYW5zYWN0aW9ucyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6InVwbG9hZCIsaWNvbk5hbWU6ImJlbGwiLHVzZVRhYmxlQmVoYXZpb3VyOiJ1cGxvYWQiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57YWxlcnQocy5pdGVtLmFtb3VudCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJ2aXNpYmlsaXR5IixpY29uTmFtZToiY29weSIsdHlwZTpbImluUm93Il0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY3JlYXRlIG5ldyIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsdHlwZTpbImhlYWRlciJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmkoYXN5bmMgcz0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6InRvIGdhbGxlcnkiLGljb25OYW1lOiJtZXNzYWdlIix0eXBlOlsiZm9vdGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY29weSIsaWNvbk5hbWU6ImNvcHlTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51IiwiaW5Sb3ciXSxhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX0se25hbWU6ImVkaXQgKGZyb20gZGVtbykiLGljb25OYW1lOiJwZW5Ub1NxdWFyZSIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOmkoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9LHtuYW1lOiJwYXN0ZSIsaWNvbk5hbWU6InBhc3RlU29saWQiLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbjppKGFzeW5jKCk9Pm51bGwsImFjdGlvbiIpfSx7bmFtZToicHJldmlldyIsdHlwZTpbImRvdWJsZUNsaWNrIiwiY29udGV4dG1lbnUiXSxpY29uTmFtZToiZXllIixhY3Rpb25GdW5jOmkoYXN5bmMgcz0+KGFsZXJ0KHMuaXRlbS5hbW91bnQpLG51bGwpLCJhY3Rpb25GdW5jIil9XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBWZXJ0aWNhbCBMaW5lczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVuaGFuY2VkIGNvbHVtbiBzZXBhcmF0aW9uIGZvciBiZXR0ZXIgZGF0YSB0cmFja2luZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQcm9kdWN0IEludmVudG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJDdXJyZW50IHN0b2NrIGxldmVscyBhY3Jvc3Mgd2FyZWhvdXNlcyIKICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6J01hY0Jvb2sgUHJvIDE2Iicsd2FyZWhvdXNlX2E6IjQ1Iix3YXJlaG91c2VfYjoiMzIiLHdhcmVob3VzZV9jOiIyOCIsdG90YWw6IjEwNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiaVBob25lIDE1IFBybyIsd2FyZWhvdXNlX2E6IjEyMCIsd2FyZWhvdXNlX2I6Ijg5Iix3YXJlaG91c2VfYzoiMTU2Iix0b3RhbDoiMzY1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJBaXJQb2RzIFBybyIsd2FyZWhvdXNlX2E6IjAiLHdhcmVob3VzZV9iOiIxMiIsd2FyZWhvdXNlX2M6IjUiLHRvdGFsOiIxNyIsc3RhdHVzOiJcdTI2QTAgTG93IFN0b2NrIn0se3Byb2R1Y3Q6ImlQYWQgQWlyIix3YXJlaG91c2VfYToiMjMiLHdhcmVob3VzZV9iOiI0NSIsd2FyZWhvdXNlX2M6IjY3Iix0b3RhbDoiMTM1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmQiCiAgICAgICAgICBoZWFkaW5nMj0iUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnMiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tzZXJ2ZXI6IkFQSS0xIixyZWdpb246IlVTLUVhc3QiLGNwdToiNDUlIixtZW1vcnk6IjYyJSIsZGlzazoiNzglIixsYXRlbmN5OiIxMm1zIix1cHRpbWU6Ijk5LjklIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQVBJLTIiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIzOCUiLG1lbW9yeToiNTUlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjI1bXMiLHVwdGltZToiOTkuOCUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJEQi1NYXN0ZXIiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI3MiUiLG1lbW9yeToiODElIixkaXNrOiI5MiUiLGxhdGVuY3k6IjhtcyIsdXB0aW1lOiIxMDAlIixzdGF0dXM6Ilx1ezFGN0UxfSBXYXJuaW5nIn0se3NlcnZlcjoiREItUmVwbGljYSIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjIzJSIsbWVtb3J5OiIzNCUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMTVtcyIsdXB0aW1lOiI5OS43JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkNhY2hlLTEiLHJlZ2lvbjoiQVAtU291dGgiLGNwdToiODklIixtZW1vcnk6IjkyJSIsZGlzazoiMTIlIixsYXRlbmN5OiIxMjBtcyIsdXB0aW1lOiI5OC41JSIsc3RhdHVzOiJcdXsxRjUzNH0gQ3JpdGljYWwifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2VydmVycyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6IlNTSCBDb25uZWN0IixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMgcz0+e2NvbnNvbGUubG9nKCJDb25uZWN0aW5nIHRvOiIscy5pdGVtLnNlcnZlcil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6ZmlsZS10ZXh0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57Y29uc29sZS5sb2coIlZpZXdpbmcgbG9ncyBmb3I6IixzLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IlJlc3RhcnQgU2VydmVyIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57Y29uc29sZS5sb2coIlJlc3RhcnRpbmc6IixzLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEhvcml6b250YWwgTGluZXMgT25seTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVtcGhhc2lzIG9uIHJvdyBzZXBhcmF0aW9uIHdpdGhvdXQgY29sdW1uIGRpdmlkZXJzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFBlcmZvcm1hbmNlIgogICAgICAgICAgaGVhZGluZzI9IlRvcCBwZXJmb3JtZXJzIHRoaXMgcXVhcnRlciIKICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7ITB9CiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tzYWxlc3BlcnNvbjoiRW1pbHkgSm9obnNvbiIscmVnaW9uOiJOb3J0aCBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjQyIixyZXZlbnVlOiIkMS4yTSIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEyOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJNaWNoYWVsIENoZW4iLHJlZ2lvbjoiQXNpYSBQYWNpZmljIixkZWFsc19jbG9zZWQ6IjM4IixyZXZlbnVlOiIkOTgwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjExNSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJTYXJhaCBXaWxsaWFtcyIscmVnaW9uOiJFdXJvcGUiLGRlYWxzX2Nsb3NlZDoiMzUiLHJldmVudWU6IiQ4NzVLIixxdW90YV9hY2hpZXZlbWVudDoiMTA4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IkRhdmlkIEdhcmNpYSIscmVnaW9uOiJMYXRpbiBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjMxIixyZXZlbnVlOiIkNzUwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6Ijk1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2FsZXMgcmVwcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TaW1wbGUgVGFibGUgKE5vIEdyaWQpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q2xlYW4sIG1pbmltYWwgZGVzaWduIHdpdGhvdXQgZ3JpZCBsaW5lcy4gU2V0IHNob3dHcmlkIHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgZ3JpZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJUZWFtIE1lbWJlcnMiCiAgICAgICAgICBoZWFkaW5nMj0iRW5naW5lZXJpbmcgRGVwYXJ0bWVudCIKICAgICAgICAgIC5zaG93R3JpZD0keyExfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkxlYWQgRW5naW5lZXIiLGVtYWlsOiJhbGljZUBjb21wYW55LmNvbSIsbG9jYXRpb246IlNhbiBGcmFuY2lzY28iLGpvaW5lZDoiMjAyMC0wMy0xNSJ9LHtuYW1lOiJCb2IgU21pdGgiLHJvbGU6IlNlbmlvciBEZXZlbG9wZXIiLGVtYWlsOiJib2JAY29tcGFueS5jb20iLGxvY2F0aW9uOiJOZXcgWW9yayIsam9pbmVkOiIyMDE5LTA3LTIyIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6IkRldk9wcyBFbmdpbmVlciIsZW1haWw6ImNoYXJsaWVAY29tcGFueS5jb20iLGxvY2F0aW9uOiJMb25kb24iLGpvaW5lZDoiMjAyMS0wMS0xMCJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRnJvbnRlbmQgRGV2ZWxvcGVyIixlbWFpbDoiZGlhbmFAY29tcGFueS5jb20iLGxvY2F0aW9uOiJCYXJjZWxvbmEiLGpvaW5lZDoiMjAyMi0wNS0xOCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJ0ZWFtIG1lbWJlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBDdXN0b20gRGlzcGxheSBGdW5jdGlvbjwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlRyYW5zZm9ybSBkYXRhIGZvciBkaXNwbGF5IHVzaW5nIGN1c3RvbSBmb3JtYXR0aW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFJlcG9ydCIKICAgICAgICAgIGhlYWRpbmcyPSJRNCAyMDIzIFBlcmZvcm1hbmNlIgogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6IkVudGVycHJpc2UgTGljZW5zZSIsdW5pdHM6NDUscmV2ZW51ZToyMjVlMyxncm93dGg6LjIzLGZvcmVjYXN0OjI4ZTR9LHtwcm9kdWN0OiJQcm9mZXNzaW9uYWwgTGljZW5zZSIsdW5pdHM6MTI4LHJldmVudWU6MTI4ZTMsZ3Jvd3RoOi4xNSxmb3JlY2FzdDoxNDdlM30se3Byb2R1Y3Q6IlN0YXJ0ZXIgTGljZW5zZSIsdW5pdHM6MzQyLHJldmVudWU6Njg0MDAsZ3Jvd3RoOi40Mixmb3JlY2FzdDo5N2UzfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7cz0+KHtQcm9kdWN0OnMucHJvZHVjdCwiVW5pdHMgU29sZCI6cy51bml0cy50b0xvY2FsZVN0cmluZygpLFJldmVudWU6IiQiK3MucmV2ZW51ZS50b0xvY2FsZVN0cmluZygpLEdyb3d0aDoocy5ncm93dGgqMTAwKS50b0ZpeGVkKDEpKyIlIiwiUTEgMjAyNCBGb3JlY2FzdCI6IiQiK3MuZm9yZWNhc3QudG9Mb2NhbGVTdHJpbmcoKX0pfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkVtcHR5IFRhYmxlIFN0YXRlPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+SG93IHRoZSB0YWJsZSBsb29rcyB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9Ik5vIERhdGEgQXZhaWxhYmxlIgogICAgICAgICAgaGVhZGluZzI9IlRoaXMgdGFibGUgaXMgY3VycmVudGx5IGVtcHR5IgogICAgICAgICAgLmRhdGE9JHtbXX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFNjaGVtYS1GaXJzdCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlciIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixyZW5kZXJlcjppKHM9PndgPGRlZXMtYmFkZ2U+JHtzfTwvZGVlcy1iYWRnZT5gLCJyZW5kZXJlciIpfSx7a2V5OiJqb2luZWRBdCIsaGVhZGVyOiJKb2luZWQiLHJlbmRlcmVyOmkocz0+bmV3IERhdGUocykudG9Mb2NhbGVEYXRlU3RyaW5nKCksInJlbmRlcmVyIil9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSIsZW1haWw6ImFsaWNlQGV4YW1wbGUuY29tIixqb2luZWRBdDoiMjAyMi0wOC0wMSJ9LHtuYW1lOiJCb2IiLGVtYWlsOiJib2JAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIxLTEyLTExIn0se25hbWU6IkNhcm9sIixlbWFpbDoiY2Fyb2xAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIzLTAzLTIyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlBhcnRpYWwgU2NoZW1hICsgQXVnbWVudCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlByb3ZpZGVzIG9ubHkgdGhlIGltcG9ydGFudCBjb2x1bW5zOyB0aGUgcmVzdCBhcmUgbWVyZ2VkIGluIGZyb20gZGlzcGxheUZ1bmN0aW9uLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChQYXJ0aWFsICsgQXVnbWVudCkiCiAgICAgICAgICBoZWFkaW5nMj0iTWlzc2luZyBjb2x1bW5zIGFyZSBkZXJpdmVkIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke3M9Pih7bmFtZTpzLm5hbWUsZW1haWw6cy5lbWFpbCxyb2xlOnMucm9sZX0pfQogICAgICAgICAgLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiRXJpbiIsZW1haWw6ImVyaW5AZXhhbXBsZS5jb20iLHJvbGU6IkFkbWluIn0se25hbWU6IkZpbm4iLGVtYWlsOiJmaW5uQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn0se25hbWU6IkdpbmEiLGVtYWlsOiJnaW5hQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIiAKICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7cz0+e2NvbnNvbGUubG9nKCJTZWxlY3Rpb24gY2hhbmdlZCIscy5kZXRhaWwpfX0KICAgICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtzPT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dChzLmRldGFpbC52YWx1ZSl9fQogICAgICAgICAgIEBzZWFyY2gtc3VibWl0PSR7cz0+e2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZUZpbHRlclNlbGVjdERlbW8iKTtlJiZlLnNldEZpbHRlclRleHQocy5kZXRhaWwudmFsdWUpfX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RmlsdGVyaW5nICsgTXVsdGktU2VsZWN0aW9uIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VXNlIHRoZSBzZWFyY2ggYmFyIHRvIGZpbHRlciByb3dzOyB0b2dnbGUgc2VsZWN0aW9uIHZpYSBjaGVja2JveGVzLiBDbGljayBoZWFkZXJzIHRvIHNvcnQuPC9wPgogICAgICAgIDxkZWVzLXNlYXJjaGJhcj48L2RlZXMtc2VhcmNoYmFyPgogICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTJweCI+PC9kaXY+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJ0YWJsZUZpbHRlclNlbGVjdERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iSW52ZW50b3J5IChGaWx0ZXIgKyBTZWxlY3QpIgogICAgICAgICAgaGVhZGluZzI9IlRyeSB0eXBpbmcgdG8gZmlsdGVyIGFuZCBzZWxlY3RpbmcgbXVsdGlwbGUgcm93cyIKICAgICAgICAgIC5zZWxlY3Rpb25Nb2RlPSR7Im11bHRpIn0KICAgICAgICAgIC5yb3dLZXk9JHsic2t1In0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InNrdSIsaGVhZGVyOiJTS1UiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJzdG9jayIsaGVhZGVyOiJTdG9jayIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tza3U6IkEtMTAwIixuYW1lOiJVU0ItQyBDYWJsZSIsc3RvY2s6MTIwfSx7c2t1OiJBLTEwMSIsbmFtZToiV2lyZWxlc3MgTW91c2UiLHN0b2NrOjU1fSx7c2t1OiJBLTEwMiIsbmFtZToiTGFwdG9wIFN0YW5kIixzdG9jazoxOH0se3NrdToiQi0yMDAiLG5hbWU6IktleWJvYXJkIChJU08pIixzdG9jazo4OX0se3NrdToiQi0yMDEiLG5hbWU6IkhETUkgQWRhcHRlciIsc3RvY2s6MH0se3NrdToiQy0zMDAiLG5hbWU6IldlYmNhbSAxMDgwcCIsc3RvY2s6NDJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Db2x1bW4gRmlsdGVycyArIFN0aWNreSBIZWFkZXIgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5QZXItY29sdW1uIHF1aWNrIGZpbHRlcnMgYW5kIHN0aWNreSBoZWFkZXIgd2l0aCBpbnRlcm5hbCBzY3JvbGwuIFRyeSBmaWx0ZXJpbmcgdGhlIE5hbWUgY29sdW1uLiBVc2VzIC0tdGFibGUtbWF4LWhlaWdodCB2YXIuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgIGRlZXMtdGFibGVbZml4ZWQtaGVpZ2h0XSB7IC0tdGFibGUtbWF4LWhlaWdodDogMjIwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iRW1wbG95ZWVzIgogICAgICAgICAgaGVhZGluZzI9IlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlciIKICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgLmZpeGVkSGVpZ2h0PSR7ITB9CiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSBKb2huc29uIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkJvYiBTbWl0aCIsZW1haWw6ImJvYkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiQ2hhcmxpZSBEYXZpcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkhSIn0se25hbWU6IkRpYW5hIE1hcnRpbmV6IixlbWFpbDoiZGlhbmFAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkV0aGFuIEJyb3duIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiRmlvbmEgQ2xhcmsiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiR3JhY2UgTGVlIixlbWFpbDoiZ3JhY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkhlbnJ5IFdpbHNvbiIsZW1haWw6ImhlbnJ5QGNvcnAuY29tIixkZXBhcnRtZW50OiJNYXJrZXRpbmcifSx7bmFtZToiSXJlbmUgV2Fsa2VyIixlbWFpbDoiaXJlbmVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiSmFjayBUdXJuZXIiLGVtYWlsOiJqYWNrQGNvcnAuY29tIixkZXBhcnRtZW50OiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9ImVtcGxveWVlcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiIKICAgICAgICBAc2VhcmNoUmVxdWVzdD0ke2FzeW5jIHM9PntsZXR7cXVlcnk6ZX09cy5kZXRhaWx8fHtxdWVyeToiIn0sdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VydmVyU2VhcmNoRGVtbyIpLGE9W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV07YXdhaXQgbmV3IFByb21pc2Uobz0+c2V0VGltZW91dChvLDMwMCkpO2xldCByPVN0cmluZyhlfHwiIikudG9Mb3dlckNhc2UoKSxuPXI/YS5maWx0ZXIobz0+T2JqZWN0LnZhbHVlcyhvKS5zb21lKGw9PlN0cmluZyhsKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHIpKSk6YTt0LmRhdGE9bn19CiAgICAgID4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNlcnZlciBTZWFyY2ggKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5TZWxlY3QgU2VydmVyIG1vZGUsIHR5cGUgYSBxdWVyeSwgYW5kIHdhdGNoIHRoZSB0YWJsZSBmZXRjaCBzaW11bGF0ZWQgcmVzdWx0cy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzZXJ2ZXJTZWFyY2hEZW1vIgogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSAoU2VydmVyIFNlYXJjaCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ2xpY2sgU2VhcmNoLCBjaG9vc2UgU2VydmVyIG1vZGUsIGFuZCB0eXBlIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIn0se2tleToiY2l0eSIsaGVhZGVyOiJDaXR5In0se2tleToidGl0bGUiLGhlYWRlcjoiVGl0bGUifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSIsY2l0eToiQmVybGluIix0aXRsZToiRW5naW5lZXIifSx7aWQ6MixuYW1lOiJCb2IiLGNpdHk6IlBhcmlzIix0aXRsZToiRGVzaWduZXIifSx7aWQ6MyxuYW1lOiJDaGFybGllIixjaXR5OiJMb25kb24iLHRpdGxlOiJNYW5hZ2VyIn0se2lkOjQsbmFtZToiRGlhbmEiLGNpdHk6Ik1hZHJpZCIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjUsbmFtZToiRXRoYW4iLGNpdHk6IlJvbWUiLHRpdGxlOiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9InBlb3BsZSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aS1Db2x1bW4gU29ydDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2xpY2sgYW55IGNvbHVtbiBoZWFkZXIgZm9yIGEgc2luZ2xlLWNvbHVtbiBzb3J0LiBIb2xkIFNoaWZ0IHdoaWxlIGNsaWNraW5nIHRvIGFkZCB0aGUKICAgICAgICAgIGNvbHVtbiB0byBhIG11bHRpLXNvcnQgY2FzY2FkZSAob3IgY3ljbGUgaXRzIGRpcmVjdGlvbikuIFJpZ2h0LWNsaWNrIGFueSBzb3J0YWJsZSBoZWFkZXIKICAgICAgICAgIHRvIG9wZW4gYSBtZW51IHdoZXJlIHlvdSBjYW4gcGluIGEgY29sdW1uIHRvIGEgc3BlY2lmaWMgcHJpb3JpdHkgc2xvdCwgcmVtb3ZlIGl0LCBvcgogICAgICAgICAgY2xlYXIgdGhlIGNhc2NhZGUuCiAgICAgICAgPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJQcmUtc2VlZGVkIHdpdGggZGVwYXJ0bWVudCDilrIgMSwgbmFtZSDilrIgMiIKICAgICAgICAgIC5zb3J0Qnk9JHtbe2tleToiZGVwYXJ0bWVudCIsZGlyOiJhc2MifSx7a2V5OiJuYW1lIixkaXI6ImFzYyJ9XX0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe2RlcGFydG1lbnQ6IlImRCIsbmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMC0wNi0zMCIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJNYXJrIExlZSIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyNC0wMy0wNCIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJTYXJhIEtpbSIscm9sZToiRGVzaWduZXIiLGNyZWF0ZWRBdDoiMjAyMS0wOC0xOSIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiSGVsZW5hIFZvc3MiLHJvbGU6IlNSRSIsY3JlYXRlZEF0OiIyMDIzLTA3LTIyIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJRQSIsbmFtZToiRmlvbmEgQ2xhcmsiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IlFBIixuYW1lOiJUb21ceEUxcyBSaXZlcmEiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjQtMDEtMDkiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IkNTIixuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsY3JlYXRlZEF0OiIyMDE5LTA5LTE4Iixsb2NhdGlvbjoiUm9tZSIsc3RhdHVzOiJJbmFjdGl2ZSJ9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5XaWRlIFByb3BlcnRpZXMgKyBNYW55IEFjdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5BIHRhYmxlIHdpdGggbWFueSBjb2x1bW5zIGFuZCByaWNoIGFjdGlvbnMgdG8gc3RyZXNzIHRlc3QgbGF5b3V0IGFuZCBzdGlja3kgQWN0aW9ucy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IgogICAgICAgICAgaGVhZGluZzI9Ik1hbnkgcHJvcGVydGllcyBhbmQgYWN0aW9ucyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiUiZEIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTEiLGxvY2F0aW9uOiJCZXJsaW4iLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjMtMDEtMTIiLHVwZGF0ZWRBdDoiMjAyNC0wNS0wMyIsbGFzdExvZ2luOiIyMDI0LTEwLTAxIixwcm9qZWN0czo1LHRhZ3M6InR5cGVzY3JpcHQsIHVpIixub3RlczoiTWVudG9yIn0se2lkOjIsbmFtZToiQm9iIFNtaXRoIixyb2xlOiJEZXNpZ25lciIsZGVwYXJ0bWVudDoiRGVzaWduIixlbWFpbDoiYm9iQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTEyIixsb2NhdGlvbjoiUGFyaXMiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLHVwZGF0ZWRBdDoiMjAyNC0wNC0xMCIsbGFzdExvZ2luOiIyMDI0LTA5LTI4Iixwcm9qZWN0czo4LHRhZ3M6ImZpZ21hLCBicmFuZCIsbm90ZXM6IlBhcnQtdGltZSJ9LHtpZDozLG5hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6Ik1hbmFnZXIiLGRlcGFydG1lbnQ6Ik9wcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTMiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiT24gTGVhdmUiLGNyZWF0ZWRBdDoiMjAyMS0wNC0yMSIsdXBkYXRlZEF0OiIyMDI0LTAyLTE1IixsYXN0TG9naW46IjIwMjQtMDgtMTIiLHByb2plY3RzOjMsdGFnczoic3JlLCBsZWFkZXJzaGlwIixub3RlczoiIn0se2lkOjQsbmFtZToiRGlhbmEgTWFydGluZXoiLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJQbGF0Zm9ybSIsZW1haWw6ImRpYW5hQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE0Iixsb2NhdGlvbjoiTWFkcmlkIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIwLTA2LTMwIix1cGRhdGVkQXQ6IjIwMjQtMDYtMjUiLGxhc3RMb2dpbjoiMjAyNC0xMC0wMiIscHJvamVjdHM6Nix0YWdzOiJub2RlLCBhcGkiLG5vdGVzOiJPbi1jYWxsIn0se2lkOjUsbmFtZToiRXRoYW4gQnJvd24iLHJvbGU6IlN1cHBvcnQiLGRlcGFydG1lbnQ6IkNTIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTUiLGxvY2F0aW9uOiJSb21lIixzdGF0dXM6IkluYWN0aXZlIixjcmVhdGVkQXQ6IjIwMTktMDktMTgiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wOSIsbGFzdExvZ2luOiIyMDI0LTA2LTE5Iixwcm9qZWN0czoyLHRhZ3M6InplbmRlc2siLG5vdGVzOiJSZWhpcmUifSx7aWQ6NixuYW1lOiJGaW9uYSBDbGFyayIscm9sZToiUUEiLGRlcGFydG1lbnQ6IlFBIixlbWFpbDoiZmlvbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTYiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wMSIsbGFzdExvZ2luOiIyMDI0LTA5LTA3Iixwcm9qZWN0czo3LHRhZ3M6InBsYXl3cmlnaHQiLG5vdGVzOiIifV19CiAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyh7aXRlbTpzfSk9Pntjb25zb2xlLmxvZygidmlldyIscyl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e2NvbnNvbGUubG9nKCJlZGl0IixzKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06c30pPT57Y29uc29sZS5sb2coImRlbGV0ZSIscyl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNZXNzYWdlIixpY29uTmFtZToibHVjaWRlOm1lc3NhZ2Utc3F1YXJlIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06c30pPT57Y29uc29sZS5sb2coIm1lc3NhZ2UiLHMpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiSGlzdG9yeSIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e2NvbnNvbGUubG9nKCJoaXN0b3J5IixzKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkFkZCBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImFkZCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRXhwb3J0IENTViIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImV4cG9ydCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiQnVsayBEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gtMiIsdHlwZTpbImZvb3RlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImJ1bGsgZGVsZXRlIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY3JvbGxhYmxlIFNtYWxsIEhlaWdodDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIG1hbnkgaXRlbXMgYW5kIGEgc21hbGwgZml4ZWQgaGVpZ2h0IHRvIGZvcmNlIHZlcnRpY2FsIHNjcm9sbGluZyBpbnNpZGUgdGhlIHRhYmxlLiBBY3Rpb25zIHJlbWFpbiB2aXNpYmxlIG9uIHRoZSByaWdodDsgaG9yaXpvbnRhbCBzY3JvbGwgYXBwZWFycyBpZiBuZWVkZWQuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICNzY3JvbGxTbWFsbEhlaWdodCB7IC0tdGFibGUtbWF4LWhlaWdodDogMjQwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2Nyb2xsU21hbGxIZWlnaHQiCiAgICAgICAgICAuZml4ZWRIZWlnaHQ9JHshMH0KICAgICAgICAgIC52aXJ0dWFsaXplZD0keyEwfQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkgKFNjcm9sbGFibGUsIFZpcnR1YWxpemVkKSIKICAgICAgICAgIGhlYWRpbmcyPSJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtcyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oe2xlbmd0aDoxMDB9LChzLGUpPT4oe2lkOmUrMSxuYW1lOmBVc2VyICR7ZSsxfWAscm9sZTpbIkVuZ2luZWVyIiwiRGVzaWduZXIiLCJNYW5hZ2VyIiwiUUEiLCJTdXBwb3J0Il1bZSU1XSxkZXBhcnRtZW50OlsiUiZEIiwiRGVzaWduIiwiT3BzIiwiUUEiLCJDUyJdW2UlNV0sZW1haWw6YHVzZXIke2UrMX1AY29ycC5jb21gLHBob25lOmArMSAyMDIgNTU1ICR7U3RyaW5nKDFlMytlKS5zbGljZSgtNCl9YCxsb2NhdGlvbjpbIkJlcmxpbiIsIlBhcmlzIiwiTG9uZG9uIiwiTWFkcmlkIiwiUm9tZSJdW2UlNV0sc3RhdHVzOlsiQWN0aXZlIiwiSW5hY3RpdmUiLCJPbiBMZWF2ZSJdW2UlM10sY3JlYXRlZEF0OmAyMDIzLSR7U3RyaW5nKGUlMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZyhlJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHVwZGF0ZWRBdDpgMjAyNC0ke1N0cmluZygoZSszKSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzcpJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLGxhc3RMb2dpbjpgMjAyNC0ke1N0cmluZygoZSs2KSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzEwKSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxwcm9qZWN0czplJTEyLHRhZ3M6ZSUyPyJ0eXBlc2NyaXB0IjoiZGVzaWduIixub3RlczplJTM/IiI6Ik5vdGUifSkpfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI2RlbW9MaXZlRmxhc2giKTtpZighZSlyZXR1cm47ZS5fX2xpdmVGbGFzaFRpbWVySWQmJndpbmRvdy5jbGVhckludGVydmFsKGUuX19saXZlRmxhc2hUaW1lcklkKTtsZXQgdD1pKCgpPT57aWYoIUFycmF5LmlzQXJyYXkoZS5kYXRhKXx8ZS5kYXRhLmxlbmd0aD09PTApcmV0dXJuO2xldCBhPWUuZGF0YS5tYXAobj0+KHsuLi5ufSkpLHI9MStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyk7Zm9yKGxldCBuPTA7bjxyO24rKyl7bGV0IG89TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmEubGVuZ3RoKSxsPSsoKE1hdGgucmFuZG9tKCkqMi0xKSozKS50b0ZpeGVkKDIpLHA9TWF0aC5tYXgoMSwrKGFbb10ucHJpY2UrbCkudG9GaXhlZCgyKSk7YVtvXT17Li4uYVtvXSxwcmljZTpwLGNoYW5nZTpsLHVwZGF0ZWRBdDpuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfX1lLmRhdGE9YX0sInRpY2siKTtlLl9fbGl2ZUZsYXNoVGltZXJJZD13aW5kb3cuc2V0SW50ZXJ2YWwodCwxNTAwKX19PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxpdmUgVXBkYXRlcyB3aXRoIEZsYXNoIEhpZ2hsaWdodGluZzwvaDI+CiAgICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgIE9wdC1pbiBjZWxsLWZsYXNoIHZpYSA8Y29kZT5oaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giPC9jb2RlPi4gVGhlIHRpY2tlciBiZWxvdyBtdXRhdGVzCiAgICAgICAgICAgIHJhbmRvbSByb3dzIGV2ZXJ5IDEuNXMgYW5kIHJlYXNzaWducyA8Y29kZT4uZGF0YTwvY29kZT4uIFVwZGF0ZWQgY2VsbHMgYnJpZWZseSBmbGFzaAogICAgICAgICAgICBhbWJlciBhbmQgZmFkZSBvdXQuIFJlcXVpcmVzIDxjb2RlPnJvd0tleTwvY29kZT4gKGhlcmUgPGNvZGU+InN5bWJvbCI8L2NvZGU+KS4gSG9ub3JzCiAgICAgICAgICAgIDxjb2RlPnByZWZlcnMtcmVkdWNlZC1tb3Rpb248L2NvZGU+LiBSb3cgc2VsZWN0aW9uIHBlcnNpc3RzIGFjcm9zcyB1cGRhdGVzIOKAlCBjbGljayBhCiAgICAgICAgICAgIHJvdywgdGhlbiB3YXRjaCBpdCBzdGF5IHNlbGVjdGVkIGFzIHRoZSBkYXRhIGNodXJucy4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICAgIGlkPSJkZW1vTGl2ZUZsYXNoIgogICAgICAgICAgICAucm93S2V5PSR7InN5bWJvbCJ9CiAgICAgICAgICAgIGhpZ2hsaWdodC11cGRhdGVzPSJmbGFzaCIKICAgICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgICBoZWFkaW5nMT0iTGl2ZSBNYXJrZXQgRmVlZCIKICAgICAgICAgICAgaGVhZGluZzI9IkZsYXNoaW5nIGNlbGxzIGluZGljYXRlIHVwZGF0ZWQgdmFsdWVzIgogICAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJzeW1ib2wiLGhlYWRlcjoiU3ltYm9sIixzb3J0YWJsZTohMH0se2tleToicHJpY2UiLGhlYWRlcjoiUHJpY2UiLHNvcnRhYmxlOiEwfSx7a2V5OiJjaGFuZ2UiLGhlYWRlcjoiXHUwMzk0Iixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQifV19CiAgICAgICAgICAgIC5kYXRhPSR7W3tzeW1ib2w6IkFBUEwiLHByaWNlOjE4Mi41MixjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6Ik1TRlQiLHByaWNlOjQxNC4xOCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkdPT0ciLHByaWNlOjE2OC43NCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkFNWk4iLHByaWNlOjE4Ni4xMyxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IlRTTEEiLHByaWNlOjI0OC41LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTlZEQSIscHJpY2U6ODc3LjM1LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTUVUQSIscHJpY2U6NDkyLjk2LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTkZMWCIscHJpY2U6NjA1Ljg4LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiQU1EIixwcmljZToxNjUuMjQsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJJTlRDIixwcmljZTo0Mi4xNSxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9XX0KICAgICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEN2YSxUdmE9ZygoKT0+e3BlKCk7RXIoKTtodCgpO0N2YT1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBtb2RlIChNb2RlIEIsIHBhZ2Ugc3RpY2t5KTogaG9yaXpvbnRhbCBzY3JvbGwgbGl2ZXMgb24KICAgICAgICAgLnRhYmxlU2Nyb2xsIChzbyB3aWRlIHRhYmxlcyBkb24ndCBnZXQgY2xpcHBlZCBieSBhbiBhbmNlc3RvcgogICAgICAgICBvdmVyZmxvdzpoaWRkZW4gc3VjaCBhcyBkZWVzLXRpbGUpLiBWZXJ0aWNhbCBzdGlja3kgaXMgaGFuZGxlZCBieQogICAgICAgICBhIEpTLW1hbmFnZWQgZmxvYXRpbmcgaGVhZGVyICguZmxvYXRpbmdIZWFkZXIsIHBvc2l0aW9uOmZpeGVkKSwKICAgICAgICAgd2hpY2ggaXMgdW5hZmZlY3RlZCBieSBhbmNlc3RvciBvdmVyZmxvdy4gKi8KICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlOwogICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICAgICAgfQogICAgICAvKiBNb2RlIEEsIGludGVybmFsIHNjcm9sbDogb3B0LWluIHZpYSBmaXhlZC1oZWlnaHQgYXR0cmlidXRlLgogICAgICAgICBUaGUgdGFibGUgc2Nyb2xscyBpbnNpZGUgaXRzIG93biBib3ggYW5kIHRoZSBoZWFkZXIgc3RpY2tzIHZpYSBwbGFpbiBDU1Mgc3RpY2t5LiAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGhlYWRlciBvdmVybGF5IChNb2RlIEIpLiBQb3NpdGlvbiBpcyBtYW5hZ2VkIGJ5IEpTIHNvIGl0CiAgICAgICAgIGVzY2FwZXMgYW55IGFuY2VzdG9yIG92ZXJmbG93OmhpZGRlbiAocG9zaXRpb246Zml4ZWQgaXMgbm90IGNsaXBwZWQKICAgICAgICAgYnkgb3ZlcmZsb3cgYW5jZXN0b3JzKS4gKi8KICAgICAgLmZsb2F0aW5nSGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIC5mbG9hdGluZ0hlYWRlci5hY3RpdmUgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRhYmxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRoIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KICAgICAgLyogdGggbmVlZHMgaXRzIG93biBiYWNrZ3JvdW5kIHNvIHN0aWNreSBjZWxscyBwYWludCBvdmVyIHNjcm9sbGVkIHJvd3MKICAgICAgICAgKGJyb3dzZXJzIGRvbid0IHBhaW50IHRoZSA8dGhlYWQ+IGJveCBiZWhpbmQgYSBzdGlja3kgPHRoPikuICovCiAgICAgIHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CiAgICAgIC8qIE1vZGUgQSDigJQgaW50ZXJuYWwgc2Nyb2xsIHN0aWNreSAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHRvcDogMzZweDsgLyogbWF0Y2hlcyB0aCB7IGhlaWdodDogMzZweCB9IGJlbG93ICovCiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogRnVsbCBob3Jpem9udGFsIGxpbmVzIHdoZW4gZW5hYmxlZCAqLwogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4wNCkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA1KSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRkIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBlZGdlIGJvcmRlcnMgdGhhdCB3b3VsZCBkb3VibGUgd2l0aCB0aWxlIGZyYW1lICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICB0aFtyb2xlPSdjb2x1bW5oZWFkZXInXTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgdGggLnNvcnRBcnJvdyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICB0aCAuc29ydEJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDMwJSkiLCJoc2woMjE3LjIgOTEuMiUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIAogICAgICB0aDpmaXJzdC1jaGlsZCwKICAgICAgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgdGg6bGFzdC1jaGlsZCwKICAgICAgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRkOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBib3R0b20gYm9yZGVyIG9uIGxhc3Qgcm93IHJlbW92ZWQg4oCUIHRpbGUgZnJhbWUgaGFuZGxlcyBpdCAqLwogICAgICA6aG9zdCg6bm90KFtzaG93LWhvcml6b250YWwtbGluZXNdKSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLS0gQ2VsbCBmbGFzaCBoaWdobGlnaHRpbmcgKG9wdC1pbiB2aWEgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIikgLS0tLQogICAgICAgICBCbG9vbWJlcmcvVHJhZGluZ1ZpZXctc3R5bGU6IHRoZSB0ZXh0IGl0c2VsZiBicmllZmx5IHRha2VzIGFuIGFjY2VudAogICAgICAgICBjb2xvciB0aGVuIGZhZGVzIGJhY2sgdG8gdGhlIGRlZmF1bHQuIE5vIGJhY2tncm91bmQgdGludCwgbm8gbGF5b3V0CiAgICAgICAgIHNoaWZ0LCBubyB3ZWlnaHQgY2hhbmdlLiBSZWFkYWJsZSwgbW9kZXJuLCBzdWJ0bGUuCiAgICAgICAgIENvbnN1bWVycyBjYW4gb3ZlcnJpZGUgcGVyIGluc3RhbmNlOgogICAgICAgICAgIGRlZXMtdGFibGUjbXlUYWJsZSB7IC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcjogaHNsKDE0MiA3NiUgNDAlKTsgfQogICAgICAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDMyIDk1JSA0NCUpIiwiaHNsKDQ1IDkzJSA2MiUpIil9OwogICAgICAgIC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmc6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsKICAgICAgfQoKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBkZWVzLXRhYmxlLWNlbGwtZmxhc2gKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICB9CgogICAgICAvKiBIb2xkIHRoZSBhY2NlbnQgY29sb3IgYnJpZWZseSwgdGhlbiBmYWRlIGJhY2sgdG8gdGhlIHRoZW1lJ3MgZGVmYXVsdAogICAgICAgICB0ZXh0IGNvbG9yLiBJbmhlcml0cyB0byBjaGlsZCB0ZXh0IGFuZCB0byBTVkcgaWNvbnMgdGhhdCB1c2UKICAgICAgICAgY3VycmVudENvbG9yLiBDZWxscyB3aXRoIGV4cGxpY2l0IGNvbG9yIG92ZXJyaWRlcyBpbiByZW5kZXJlcnMgYXJlCiAgICAgICAgIGludGVudGlvbmFsbHkgdW5hZmZlY3RlZC4gKi8KICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2ggewogICAgICAgIDAlLAogICAgICAgIDM1JSB7IGNvbG9yOiB2YXIoLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yKTsgfQogICAgICAgIDEwMCUgeyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyB9CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci9iYWNrZ3JvdW5kIGZsYXNoIHZhcmlhbnQgZm9yIGNlbGxzIHdpdGggc3R5bGVkIGNvbnRlbnQKICAgICAgICAgKGJhZGdlcywgaWNvbnMsIGN1c3RvbSBjb21wb25lbnRzKSB3aGVyZSBhIHRleHQtY29sb3IgYW5pbWF0aW9uCiAgICAgICAgIHdvdWxkIGJlIGludmlzaWJsZS4gQWN0aXZhdGVkIHZpYSBmbGFzaEJvcmRlciBvbiBDb2x1bW4uICovCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICBhbmltYXRpb246IGRlZXMtdGFibGUtY2VsbC1mbGFzaC1ib3JkZXIKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2gtYm9yZGVyIHsKICAgICAgICAwJSwKICAgICAgICAzNSUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA2MiUgLyAwLjEwKSIsImhzbCg0NSA5MyUgNjIlIC8gMC4wOCkiKX07CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdHJhbnNwYXJlbnQ7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgfQogICAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWRlZXMtdGFibGUtZmxhc2gtY29sb3IpOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MyUgNjIlIC8gMC4xMCkiLCJoc2woNDUgOTMlIDYyJSAvIDAuMDgpIil9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogRGV2LXRpbWUgd2FybmluZyBiYW5uZXIgc2hvd24gd2hlbiBoaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giIGJ1dAogICAgICAgICByb3dLZXkgaXMgbWlzc2luZy4gQ29uc3VtZXJzIHNob3VsZCBuZXZlciBzaGlwIHRoaXMgdG8gcHJvZHVjdGlvbi4gKi8KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbjogOHB4IDE2cHggMDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woNDggOTYlIDYzJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0OCA5NiUgODklIC8gMC42KSIsImhzbCg0OCA5NiUgMzAlIC8gMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzIgODElIDI5JSkiLCJoc2woNDggOTYlIDgwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIC5mbGFzaENvbmZpZ1dhcm5pbmcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAxcHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuNikiLCJoc2woMCAwJSAwJSAvIDAuMykiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogRWRpdGFibGUgY2VsbCBhZmZvcmRhbmNlcyAqLwogICAgICB0ZC5lZGl0YWJsZSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CiAgICAgIHRkLmZvY3VzZWQgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC42KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuNikiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC42KSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQogICAgICB0ZC5lZGl0aW5nQ2VsbCAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRyb3Bkb3duLAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsCiAgICAgIHRkLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIGZpbHRlciByb3cgKi8KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggMTJweCAxMnB4OwogICAgICB9CiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggaW5wdXRbdHlwZT0ndGV4dCddIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAuYWN0aW9uc0NvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDExLjglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGFibGVTdGF0aXN0aWNzIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICBgXX0pO3ZhciBBbnQ9ZygoKT0+e280KCl9KTt2YXIgTm50PWcoKCk9PntMMWUoKX0pO3ZhciBSbnQ9ZygoKT0+e1IxZSgpO2VudCgpfSk7dmFyIE9udD1nKCgpPT57dm50KCl9KTtmdW5jdGlvbiBGbnQocyxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCB0PXMoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcChyPT4oe2tleTpyLGhlYWRlcjpyLHZhbHVlOmkobj0+cyhuKVtyXSwidmFsdWUiKX0pKX1mdW5jdGlvbiAkdmEocyxlLHQsYSl7bGV0IHI9KHN8fFtdKS5zbGljZSgpO2lmKCFlKXJldHVybiByO2xldCBuPUZudCh0LGEpLG89bmV3IFNldChyLm1hcChsPT5TdHJpbmcobC5rZXkpKSk7Zm9yKGxldCBsIG9mIG4pby5oYXMoU3RyaW5nKGwua2V5KSl8fHIucHVzaChsKTtyZXR1cm4gcn1mdW5jdGlvbiBkNChzLGUsdCl7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZShzKTpzW2Uua2V5XX1mdW5jdGlvbiBKSmEocyxlKXtpZihzPT1udWxsJiZlPT1udWxsKXJldHVybiAwO2lmKHM9PW51bGwpcmV0dXJuLTE7aWYoZT09bnVsbClyZXR1cm4gMTtpZih0eXBlb2Ygcz09Im51bWJlciImJnR5cGVvZiBlPT0ibnVtYmVyIilyZXR1cm4gczxlPy0xOnM+ZT8xOjA7bGV0IHQ9U3RyaW5nKHMpLnRvTG93ZXJDYXNlKCksYT1TdHJpbmcoZSkudG9Mb3dlckNhc2UoKTtyZXR1cm4gdDxhPy0xOnQ+YT8xOjB9ZnVuY3Rpb24gRHZhKHMsZSx0LGEscixuPSJ0YWJsZSIsbyl7bGV0IGw9cy5zbGljZSgpLHA9KGF8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxkPXJ8fHt9LHU9T2JqZWN0LmtleXMoZCkuZmlsdGVyKGI9PihkW2JdPz8iIikudHJpbSgpLmxlbmd0aD4wKTtpZigocHx8dS5sZW5ndGg+MCkmJihsPWwuZmlsdGVyKGI9Pntmb3IobGV0IHYgb2YgdSlpZihuPT09ImRhdGEiKXtsZXQgeD1iW3ZdLG09U3RyaW5nKHg/PyIiKS50b0xvd2VyQ2FzZSgpLGY9U3RyaW5nKGRbdl0pLnRvTG93ZXJDYXNlKCk7aWYoIW0uaW5jbHVkZXMoZikpcmV0dXJuITF9ZWxzZXtsZXQgeD1lLmZpbmQoTT0+U3RyaW5nKE0ua2V5KT09PXYpO2lmKCF4fHx4LmhpZGRlbnx8eC5maWx0ZXJhYmxlPT09ITEpY29udGludWU7bGV0IG09ZDQoYix4KSxmPVN0cmluZyhtPz8iIikudG9Mb3dlckNhc2UoKSx5PVN0cmluZyhkW3ZdKS50b0xvd2VyQ2FzZSgpO2lmKCFmLmluY2x1ZGVzKHkpKXJldHVybiExfWlmKHApe2lmKG8pcmV0dXJuISFvKGIpO2xldCB2PSExO2lmKG49PT0iZGF0YSIpe2ZvcihsZXQgeCBvZiBPYmplY3QudmFsdWVzKGIpKWlmKFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwKSl7dj0hMDticmVha319ZWxzZSBmb3IobGV0IHggb2YgZSl7aWYoeC5oaWRkZW4pY29udGludWU7bGV0IG09ZDQoYix4KTtpZihTdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocCkpe3Y9ITA7YnJlYWt9fWlmKCF2KXJldHVybiExfXJldHVybiEwfSkpLCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIGw7bGV0IGM9dC5tYXAoYj0+KHtkZXNjOmIsY29sOmUuZmluZCh2PT5TdHJpbmcodi5rZXkpPT09Yi5rZXkpfSkpLmZpbHRlcihiPT4hIWIuY29sKTtyZXR1cm4gYy5sZW5ndGg9PT0wfHxsLnNvcnQoKGIsdik9Pntmb3IobGV0e2Rlc2M6eCxjb2w6bX1vZiBjKXtsZXQgZj1KSmEoZDQoYixtKSxkNCh2LG0pKTtpZihmIT09MClyZXR1cm4geC5kaXI9PT0iYXNjIj9mOi1mfXJldHVybiAwfSksbH12YXIgTHZhPWcoKCk9PntpKEZudCwiY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIik7aSgkdmEsImNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zIik7aShkNCwiZ2V0Q2VsbFZhbHVlIik7aShKSmEsImNvbXBhcmVDZWxsVmFsdWVzIik7aShEdmEsImdldFZpZXdEYXRhIil9KTtmdW5jdGlvbiBRMWUocyl7cmV0dXJuIHMuc3RhcnRzV2l0aCgnIicpJiZzLmVuZHNXaXRoKCciJyl8fHMuc3RhcnRzV2l0aCgiJyIpJiZzLmVuZHNXaXRoKCInIik/cy5zbGljZSgxLC0xKTpzfWZ1bmN0aW9uIGVlcyhzKXtyZXR1cm4gcy5zcGxpdCgvXHMrT1JccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gdGVzKHMpe3JldHVybiBzLnNwbGl0KC9ccytBTkRccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gYWVzKHMpe2lmKCFzKXJldHVybiBudWxsO2xldCBlPSExLHQ9cy5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTt0JiYoZT0hMCxzPXRbMl0pO2xldCBhPXMubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYoYSlyZXR1cm57ZmllbGQ6YVsxXSxuZWdhdGU6ZSxyYW5nZTp7bG93ZXI6UTFlKGFbMl0pLnRvTG93ZXJDYXNlKCksdXBwZXI6UTFlKGFbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IHI9cy5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gcj97ZmllbGQ6clsxXSx2YWx1ZTpRMWUoclsyXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6ZX06cy5sZW5ndGg+MD97dmFsdWU6UTFlKHMpLnRvTG93ZXJDYXNlKCksbmVnYXRlOmV9Om51bGx9ZnVuY3Rpb24gc2VzKHMpe2lmKCFzKXJldHVybiBudWxsO2xldCBlPWVlcyhzKS5tYXAodD0+KHt0ZXJtczp0ZXModCkubWFwKGFlcykuZmlsdGVyKHI9PiEhciYmISFyLnZhbHVlKX0pKS5maWx0ZXIodD0+dC50ZXJtcy5sZW5ndGg+MCk7cmV0dXJuIGUubGVuZ3RoPT09MD9udWxsOntjbGF1c2VzOmV9fWZ1bmN0aW9uIEV2YShzLGUsdCl7bGV0IGE9c2VzKHMpO2lmKCFhKXJldHVybiBudWxsO2xldCByPW5ldyBNYXAodC5tYXAocD0+W1N0cmluZyhwLmtleSkscF0pKSxuPWkoKHAsZCk9PnA8ZD8tMTpwPmQ/MTowLCJjbXAiKSxvPWkocD0+e2xldCBkPVN0cmluZyhwPz8iIikudG9Mb3dlckNhc2UoKSx1PU51bWJlcihkKSxjPURhdGUucGFyc2UoZCk7cmV0dXJuIU51bWJlci5pc05hTih1KSYmZC50cmltKCkhPT0iIj97dDoibiIsdjp1fTpOdW1iZXIuaXNOYU4oYyk/e3Q6InMiLHY6ZH06e3Q6ImQiLHY6Y319LCJjb2VyY2UiKSxsPWkoKHAsZCx1KT0+e2xldCBjPW8ocCksYj1vKGQpLHY9byh1KTtpZihjLnQ9PT0icyImJmIudD09PSJzIiYmdi50PT09InMiKXtsZXQgbT1jLnY7cmV0dXJuIG4obSxiLnYpPj0wJiZuKG0sdi52KTw9MH1pZihjLnQ9PT0ibiImJmIudD09PSJuIiYmdi50PT09Im4iKXtsZXQgbT1jLnY7cmV0dXJuIG0+PWIudiYmbTw9di52fWlmKGMudD09PSJkIiYmYi50PT09ImQiJiZ2LnQ9PT0iZCIpe2xldCBtPWMudjtyZXR1cm4gbT49Yi52JiZtPD12LnZ9bGV0IHg9U3RyaW5nKHA/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBuKHgsZCk+PTAmJm4oeCx1KTw9MH0sImluUmFuZ2UiKTtyZXR1cm4gcD0+e2ZvcihsZXQgZCBvZiBhLmNsYXVzZXMpe2xldCB1PSEwO2ZvcihsZXQgYyBvZiBkLnRlcm1zKXtsZXQgYj0hMTtpZihjLnJhbmdlJiZjLmZpZWxkKWlmKGU9PT0iZGF0YSIpYj1sKHBbYy5maWVsZF0sYy5yYW5nZS5sb3dlcixjLnJhbmdlLnVwcGVyKTtlbHNle2xldCB2PXIuZ2V0KGMuZmllbGQpO2lmKCF2fHx2LmhpZGRlbiliPSExO2Vsc2V7bGV0IHg9di52YWx1ZT92LnZhbHVlKHApOnBbdi5rZXldO2I9bCh4LGMucmFuZ2UubG93ZXIsYy5yYW5nZS51cHBlcil9fWVsc2UgaWYoYy5maWVsZCYmYy52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWI9U3RyaW5nKHBbYy5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMudmFsdWUpO2Vsc2V7bGV0IHY9ci5nZXQoYy5maWVsZCk7aWYoIXZ8fHYuaGlkZGVuPT09ITApYj0hMTtlbHNle2xldCB4PXYudmFsdWU/di52YWx1ZShwKTpwW3Yua2V5XTtiPVN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjLnZhbHVlKX19ZWxzZSBjLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9iPU9iamVjdC52YWx1ZXMocCkuc29tZSh2PT5TdHJpbmcodj8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYy52YWx1ZSkpOmI9dC5zb21lKHY9PntpZih2LmhpZGRlbilyZXR1cm4hMTtsZXQgeD12LnZhbHVlP3YudmFsdWUocCk6cFt2LmtleV07cmV0dXJuIFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjLnZhbHVlKX0pKTtpZihjLm5lZ2F0ZSYmKGI9IWIpLCFiKXt1PSExO2JyZWFrfX1pZih1KXJldHVybiEwfXJldHVybiExfX12YXIgUHZhPWcoKCk9PntpKFExZSwic3RyaXBRdW90ZXMiKTtpKGVlcywic3BsaXRCeU9yIik7aSh0ZXMsInNwbGl0QnlBbmQiKTtpKGFlcywicGFyc2VUZXJtIik7aShzZXMsInBhcnNlTHVjZW5lIik7aShFdmEsImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiKX0pO2Z1bmN0aW9uIGllcyhzKXtsZXQgZT1bInRoIiwic3QiLCJuZCIsInJkIl0sdD1zJTEwMDtyZXR1cm4gcysoZVsodC0yMCklMTBdfHxlW3RdfHxlWzBdKX12YXIgSGEsQ3QsQm50LEludD1nKCgpPT57dm8oKTt6dmEoKTtwZSgpO2ZyKCk7UHUoKTtrdCgpO0dhKCk7VHZhKCk7QW50KCk7Tm50KCk7Um50KCk7QTFlKCk7T250KCk7THZhKCk7UHZhKCk7aHQoKTttcigpO0hhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxDdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH07aShpZXMsIm9yZGluYWxMYWJlbCIpO0JudD0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGFibGUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXSxHZSxEZT1bXSxfZT1bXSxDZSx2ZT1bXSxiZT1bXSxFZSxqZT1bXSxXZT1bXSxzdCxNZT1bXSxnZT1bXSxJZSxjZT1bXSxkZT1bXSxMZSxLZT1bXSxZZT1bXSxvdCxVdD1bXSxadD1bXSxqYSxldD1bXSxidD1bXSx5YSxlcz1bXSxycz1bXSxwcyxucz1bXSx0aT1bXSxhaSx6ZT1bXSx4ZT1bXSxOZSx4dD1bXSxNYT1bXSxOcixmZT1bXSxyZT1bXSxTZSxPZT1bXSxKZT1bXSx6YSxkYT1bXSx3cz1bXSxraSxKaT1bXSxScj1bXSxTaSx2bj1bXSxyMT1bXSxvMSxuMT1bXSxsMT1bXSxjMSxkMT1bXSx1MT1bXTt2YXIgcDE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUYWJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBEPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHt0eXBlOkFycmF5fSldLG1lPVtMKHthdHRyaWJ1dGU6ITF9KV0saGU9W0woe2F0dHJpYnV0ZTohMX0pXSx1ZT1bTCh7dHlwZTpCb29sZWFufSldLGllPVtMKHthdHRyaWJ1dGU6ITF9KV0sa2U9W0woe2F0dHJpYnV0ZTohMX0pXSx5ZT1bTCh7dHlwZTpPYmplY3R9KV0sc2U9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy12ZXJ0aWNhbC1saW5lcyJ9KV0sVGU9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ob3Jpem9udGFsLWxpbmVzIn0pXSxHZT1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWdyaWQifSldLENlPVtMKHthdHRyaWJ1dGU6ITF9KV0sRWU9W0woe3R5cGU6U3RyaW5nfSldLHN0PVtMKHthdHRyaWJ1dGU6ITF9KV0sSWU9W0woe3R5cGU6Qm9vbGVhbixhdHRyaWJ1dGU6InNob3ctY29sdW1uLWZpbHRlcnMifSldLExlPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InNob3ctc2VsZWN0aW9uLWNoZWNrYm94In0pXSxvdD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJ2aXJ0dWFsaXplZCJ9KV0samE9W0woe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZToidmlydHVhbC1vdmVyc2NhbiJ9KV0seWE9W0woe3R5cGU6U3RyaW5nLGF0dHJpYnV0ZToiaGlnaGxpZ2h0LXVwZGF0ZXMifSldLHBzPVtMKHt0eXBlOk51bWJlcixhdHRyaWJ1dGU6ImhpZ2hsaWdodC1kdXJhdGlvbiJ9KV0sYWk9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiZml4ZWQtaGVpZ2h0In0pXSxOZT1bTCh7dHlwZTpTdHJpbmd9KV0sTnI9W0woe3R5cGU6U3RyaW5nfSldLFNlPVtMKHthdHRyaWJ1dGU6ITF9KV0semE9W1koKV0sa2k9W1koKV0sU2k9W1koKV0sbzE9W1koKV0sYzE9W1koKV0sSGEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nMSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iaGVhZGluZzEiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oZWFkaW5nMSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmhlYWRpbmcxPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbyxsKSxIYSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJoZWFkaW5nMiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmhlYWRpbmcyLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuaGVhZGluZzI9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkLHUpLEhhKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iZGF0YSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGEsImdldCIpLHNldDppKChULEcpPT57VC5kYXRhPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sYix2KSxIYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ia2V5ImluIFQsImhhcyIpLGdldDppKFQ9PlQua2V5LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Qua2V5PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbSxmKSxIYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJsYWJlbCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmxhYmVsLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubGFiZWw9R30sInNldCIpfSxtZXRhZGF0YTpEfSxNLHopLEhhKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImRpc2FibGVkImluIFQsImhhcyIpLGdldDppKFQ9PlQuZGlzYWJsZWQsImdldCIpLHNldDppKChULEcpPT57VC5kaXNhYmxlZD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEMsXyksSGEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4icmVxdWlyZWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5yZXF1aXJlZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnJlcXVpcmVkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxFKSxIYSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJkYXRhTmFtZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGFOYW1lLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZGF0YU5hbWU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxrLFMpLEhhKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VhcmNoYWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlYXJjaGFibGUsImdldCIpLHNldDppKChULEcpPT57VC5zZWFyY2hhYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUCxSKSxIYSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJkYXRhQWN0aW9ucyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGFBY3Rpb25zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZGF0YUFjdGlvbnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxWLFcpLEhhKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbHVtbnMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY29sdW1ucz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEIsVSksSGEodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm93S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJyb3dLZXkiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5yb3dLZXksImdldCIpLHNldDppKChULEcpPT57VC5yb3dLZXk9R30sInNldCIpfSxtZXRhZGF0YTpEfSxGLGopLEhhKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249R30sInNldCIpfSxtZXRhZGF0YTpEfSxsZSxRKSxIYSh0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImRpc3BsYXlGdW5jdGlvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmRpc3BsYXlGdW5jdGlvbj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LHRlLGVlKSxIYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXZlcnNlRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJyZXZlcnNlRGlzcGxheUZ1bmN0aW9uImluIFQsImhhcyIpLGdldDppKFQ9PlQucmV2ZXJzZURpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnJldmVyc2VEaXNwbGF5RnVuY3Rpb249R30sInNldCIpfSxtZXRhZGF0YTpEfSxYLFopLEhhKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0YVJvdyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VsZWN0ZWREYXRhUm93ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2VsZWN0ZWREYXRhUm93LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2VsZWN0ZWREYXRhUm93PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0scSxBKSxIYSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2hvd1ZlcnRpY2FsTGluZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93VmVydGljYWxMaW5lcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dWZXJ0aWNhbExpbmVzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sb2UsYWUpLEhhKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIb3Jpem9udGFsTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dIb3Jpem9udGFsTGluZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93SG9yaXpvbnRhbExpbmVzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2hvd0hvcml6b250YWxMaW5lcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LFJlLEJlKSxIYSh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93R3JpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2hvd0dyaWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93R3JpZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dHcmlkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sRGUsX2UpLEhhKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRCeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic29ydEJ5ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc29ydEJ5LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc29ydEJ5PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdmUsYmUpLEhhKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlclRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImZpbHRlclRleHQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5maWx0ZXJUZXh0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZmlsdGVyVGV4dD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGplLFdlKSxIYSh0aGlzLG51bGwsc3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5GaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb2x1bW5GaWx0ZXJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29sdW1uRmlsdGVycywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbHVtbkZpbHRlcnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxNZSxnZSksSGEodGhpcyxudWxsLEllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbHVtbkZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dDb2x1bW5GaWx0ZXJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2hvd0NvbHVtbkZpbHRlcnMsImdldCIpLHNldDppKChULEcpPT57VC5zaG93Q29sdW1uRmlsdGVycz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGNlLGRlKSxIYSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2VsZWN0aW9uQ2hlY2tib3giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dTZWxlY3Rpb25DaGVja2JveCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNob3dTZWxlY3Rpb25DaGVja2JveCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dTZWxlY3Rpb25DaGVja2JveD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEtlLFllKSxIYSh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXJ0dWFsaXplZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4idmlydHVhbGl6ZWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC52aXJ0dWFsaXplZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnZpcnR1YWxpemVkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVXQsWnQpLEhhKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpcnR1YWxPdmVyc2NhbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4idmlydHVhbE92ZXJzY2FuImluIFQsImhhcyIpLGdldDppKFQ9PlQudmlydHVhbE92ZXJzY2FuLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QudmlydHVhbE92ZXJzY2FuPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZXQsYnQpLEhhKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodFVwZGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImhpZ2hsaWdodFVwZGF0ZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oaWdobGlnaHRVcGRhdGVzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuaGlnaGxpZ2h0VXBkYXRlcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGVzLHJzKSxIYSh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHREdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iaGlnaGxpZ2h0RHVyYXRpb24iaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oaWdobGlnaHREdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmhpZ2hsaWdodER1cmF0aW9uPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbnMsdGkpLEhhKHRoaXMsbnVsbCxhaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpeGVkSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJmaXhlZEhlaWdodCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmZpeGVkSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZml4ZWRIZWlnaHQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx6ZSx4ZSksSGEodGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VhcmNoTW9kZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlYXJjaE1vZGUsImdldCIpLHNldDppKChULEcpPT57VC5zZWFyY2hNb2RlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0seHQsTWEpLEhhKHRoaXMsbnVsbCxOcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNlbGVjdGlvbk1vZGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zZWxlY3Rpb25Nb2RlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2VsZWN0aW9uTW9kZT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZlLHJlKSxIYSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VsZWN0ZWRJZHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zZWxlY3RlZElkcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlbGVjdGVkSWRzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sT2UsSmUpLEhhKHRoaXMsbnVsbCx6YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fZm9jdXNlZENlbGwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Il9fZm9jdXNlZENlbGwiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5fX2ZvY3VzZWRDZWxsLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX19mb2N1c2VkQ2VsbD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRhLHdzKSxIYSh0aGlzLG51bGwsa2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX2VkaXRpbmdDZWxsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJfX2VkaXRpbmdDZWxsImluIFQsImhhcyIpLGdldDppKFQ9PlQuX19lZGl0aW5nQ2VsbCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULl9fZWRpdGluZ0NlbGw9R30sInNldCIpfSxtZXRhZGF0YTpEfSxKaSxSciksSGEodGhpcyxudWxsLFNpLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mbG9hdGluZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iX19mbG9hdGluZ0FjdGl2ZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULl9fZmxvYXRpbmdBY3RpdmUsImdldCIpLHNldDppKChULEcpPT57VC5fX2Zsb2F0aW5nQWN0aXZlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdm4scjEpLEhhKHRoaXMsbnVsbCxvMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fZmxhc2hpbmdDZWxscyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iX19mbGFzaGluZ0NlbGxzImluIFQsImhhcyIpLGdldDppKFQ9PlQuX19mbGFzaGluZ0NlbGxzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX19mbGFzaGluZ0NlbGxzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbjEsbDEpLEhhKHRoaXMsbnVsbCxjMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fdmlydHVhbFJhbmdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJfX3ZpcnR1YWxSYW5nZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULl9fdmlydHVhbFJhbmdlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX192aXJ0dWFsUmFuZ2U9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkMSx1MSksSGEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCx0KSxwMT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89TXZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9Q3QodGhpcyxvLCJoZWFkaW5nIDEiKTtnZXQgaGVhZGluZzEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZzEoRCl7dGhpcy4jZT1EfSN0PShDdCh0aGlzLGwpLEN0KHRoaXMsZCwiaGVhZGluZyAyIikpO2dldCBoZWFkaW5nMigpe3JldHVybiB0aGlzLiN0fXNldCBoZWFkaW5nMihEKXt0aGlzLiN0PUR9I2E9KEN0KHRoaXMsdSksQ3QodGhpcyxiLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGF0YShEKXt0aGlzLiNhPUR9I3M9KEN0KHRoaXMsdiksQ3QodGhpcyxtLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jc31zZXQga2V5KEQpe3RoaXMuI3M9RH0jaT0oQ3QodGhpcyxmKSxDdCh0aGlzLE0sdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKEQpe3RoaXMuI2k9RH0jcj0oQ3QodGhpcyx6KSxDdCh0aGlzLEMsITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGlzYWJsZWQoRCl7dGhpcy4jcj1EfSNvPShDdCh0aGlzLF8pLEN0KHRoaXMsJCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNvfXNldCByZXF1aXJlZChEKXt0aGlzLiNvPUR9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGF0YX1zZXQgdmFsdWUoRCl7fWNoYW5nZVN1YmplY3Q9KEN0KHRoaXMsRSksbmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTsjbj1DdCh0aGlzLGssdm9pZCAwKTtnZXQgZGF0YU5hbWUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGF0YU5hbWUoRCl7dGhpcy4jbj1EfSNsPShDdCh0aGlzLFMpLEN0KHRoaXMsUCwhMCkpO2dldCBzZWFyY2hhYmxlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNlYXJjaGFibGUoRCl7dGhpcy4jbD1EfSNjPShDdCh0aGlzLFIpLEN0KHRoaXMsVixbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhEKXt0aGlzLiNjPUR9I2Q9KEN0KHRoaXMsVyksQ3QodGhpcyxCLFtdKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29sdW1ucyhEKXt0aGlzLiNkPUR9I3U9KEN0KHRoaXMsVSksQ3QodGhpcyxGLHZvaWQgMCkpO2dldCByb3dLZXkoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcm93S2V5KEQpe3RoaXMuI3U9RH0jcD0oQ3QodGhpcyxqKSxDdCh0aGlzLGxlLCExKSk7Z2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKEQpe3RoaXMuI3A9RH0jaD0oQ3QodGhpcyxRKSxDdCh0aGlzLHRlLEQ9PkQpKTtnZXQgZGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGRpc3BsYXlGdW5jdGlvbihEKXt0aGlzLiNoPUR9I2Y9KEN0KHRoaXMsZWUpLEN0KHRoaXMsWCxEPT5EKSk7Z2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4jZn1zZXQgcmV2ZXJzZURpc3BsYXlGdW5jdGlvbihEKXt0aGlzLiNmPUR9I209KEN0KHRoaXMsWiksQ3QodGhpcyxxLHZvaWQgMCkpO2dldCBzZWxlY3RlZERhdGFSb3coKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWREYXRhUm93KEQpe3RoaXMuI209RH0jZz0oQ3QodGhpcyxBKSxDdCh0aGlzLG9lLCExKSk7Z2V0IHNob3dWZXJ0aWNhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IHNob3dWZXJ0aWNhbExpbmVzKEQpe3RoaXMuI2c9RH0jYj0oQ3QodGhpcyxhZSksQ3QodGhpcyxSZSwhMSkpO2dldCBzaG93SG9yaXpvbnRhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNob3dIb3Jpem9udGFsTGluZXMoRCl7dGhpcy4jYj1EfSN2PShDdCh0aGlzLEJlKSxDdCh0aGlzLERlLCEwKSk7Z2V0IHNob3dHcmlkKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNob3dHcmlkKEQpe3RoaXMuI3Y9RH1maWxlcz0oQ3QodGhpcyxfZSksW10pO2ZpbGVXZWFrTWFwPW5ldyBXZWFrTWFwO2RhdGFDaGFuZ2VTdWJqZWN0PW5ldyB1dC5zbWFydHJ4LnJ4anMuU3ViamVjdDsjeD1DdCh0aGlzLHZlLFtdKTtnZXQgc29ydEJ5KCl7cmV0dXJuIHRoaXMuI3h9c2V0IHNvcnRCeShEKXt0aGlzLiN4PUR9I3k9KEN0KHRoaXMsYmUpLEN0KHRoaXMsamUsIiIpKTtnZXQgZmlsdGVyVGV4dCgpe3JldHVybiB0aGlzLiN5fXNldCBmaWx0ZXJUZXh0KEQpe3RoaXMuI3k9RH0jdz0oQ3QodGhpcyxXZSksQ3QodGhpcyxNZSx7fSkpO2dldCBjb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbHVtbkZpbHRlcnMoRCl7dGhpcy4jdz1EfSNrPShDdCh0aGlzLGdlKSxDdCh0aGlzLGNlLCExKSk7Z2V0IHNob3dDb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IHNob3dDb2x1bW5GaWx0ZXJzKEQpe3RoaXMuI2s9RH0jUz0oQ3QodGhpcyxkZSksQ3QodGhpcyxLZSwhMSkpO2dldCBzaG93U2VsZWN0aW9uQ2hlY2tib3goKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd1NlbGVjdGlvbkNoZWNrYm94KEQpe3RoaXMuI1M9RH0jXz0oQ3QodGhpcyxZZSksQ3QodGhpcyxVdCwhMSkpO2dldCB2aXJ0dWFsaXplZCgpe3JldHVybiB0aGlzLiNffXNldCB2aXJ0dWFsaXplZChEKXt0aGlzLiNfPUR9I009KEN0KHRoaXMsWnQpLEN0KHRoaXMsZXQsOCkpO2dldCB2aXJ0dWFsT3ZlcnNjYW4oKXtyZXR1cm4gdGhpcy4jTX1zZXQgdmlydHVhbE92ZXJzY2FuKEQpe3RoaXMuI009RH0jej0oQ3QodGhpcyxidCksQ3QodGhpcyxlcywibm9uZSIpKTtnZXQgaGlnaGxpZ2h0VXBkYXRlcygpe3JldHVybiB0aGlzLiN6fXNldCBoaWdobGlnaHRVcGRhdGVzKEQpe3RoaXMuI3o9RH0jQz0oQ3QodGhpcyxycyksQ3QodGhpcyxucyw5MDApKTtnZXQgaGlnaGxpZ2h0RHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jQ31zZXQgaGlnaGxpZ2h0RHVyYXRpb24oRCl7dGhpcy4jQz1EfSNUPShDdCh0aGlzLHRpKSxDdCh0aGlzLHplLCExKSk7Z2V0IGZpeGVkSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI1R9c2V0IGZpeGVkSGVpZ2h0KEQpe3RoaXMuI1Q9RH0jJD0oQ3QodGhpcyx4ZSksQ3QodGhpcyx4dCwidGFibGUiKSk7Z2V0IHNlYXJjaE1vZGUoKXtyZXR1cm4gdGhpcy4jJH1zZXQgc2VhcmNoTW9kZShEKXt0aGlzLiMkPUR9X19zZWFyY2hUZXh0U3ViPUN0KHRoaXMsTWEpO19fc2VhcmNoTW9kZVN1YjsjRD1DdCh0aGlzLGZlLCJub25lIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jRH1zZXQgc2VsZWN0aW9uTW9kZShEKXt0aGlzLiNEPUR9I0w9KEN0KHRoaXMscmUpLEN0KHRoaXMsT2UsbmV3IFNldCkpO2dldCBzZWxlY3RlZElkcygpe3JldHVybiB0aGlzLiNMfXNldCBzZWxlY3RlZElkcyhEKXt0aGlzLiNMPUR9X3Jvd0lkTWFwPShDdCh0aGlzLEplKSxuZXcgV2Vha01hcCk7X3Jvd0lkQ291bnRlcj0wO19fc2VsZWN0aW9uQW5jaG9ySWQ7I0U9Q3QodGhpcyxkYSx2b2lkIDApO2dldCBfX2ZvY3VzZWRDZWxsKCl7cmV0dXJuIHRoaXMuI0V9c2V0IF9fZm9jdXNlZENlbGwoRCl7dGhpcy4jRT1EfSNQPShDdCh0aGlzLHdzKSxDdCh0aGlzLEppLHZvaWQgMCkpO2dldCBfX2VkaXRpbmdDZWxsKCl7cmV0dXJuIHRoaXMuI1B9c2V0IF9fZWRpdGluZ0NlbGwoRCl7dGhpcy4jUD1EfSNJPShDdCh0aGlzLFJyKSxDdCh0aGlzLHZuLCExKSk7Z2V0IF9fZmxvYXRpbmdBY3RpdmUoKXtyZXR1cm4gdGhpcy4jSX1zZXQgX19mbG9hdGluZ0FjdGl2ZShEKXt0aGlzLiNJPUR9I0E9KEN0KHRoaXMscjEpLEN0KHRoaXMsbjEsbmV3IE1hcCkpO2dldCBfX2ZsYXNoaW5nQ2VsbHMoKXtyZXR1cm4gdGhpcy4jQX1zZXQgX19mbGFzaGluZ0NlbGxzKEQpe3RoaXMuI0E9RH1fX3ByZXZTbmFwc2hvdD1DdCh0aGlzLGwxKTtfX2ZsYXNoQ2xlYXJUaW1lcjtfX2ZsYXNoVGljaz0wO19fZmxhc2hXYXJuZWROb1Jvd0tleT0hMTtfX21lbW9FZmZlY3RpdmVDb2xzO19fbWVtb1ZpZXdEYXRhO19fY29sdW1uc1NpemVkRm9yO19fcm93SGVpZ2h0PTM2O19fcm93SGVpZ2h0TWVhc3VyZWQ9ITE7I049Q3QodGhpcyxkMSx7c3RhcnQ6MCxlbmQ6MH0pO2dldCBfX3ZpcnR1YWxSYW5nZSgpe3JldHVybiB0aGlzLiNOfXNldCBfX3ZpcnR1YWxSYW5nZShEKXt0aGlzLiNOPUR9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9faGFuZGxlSG9zdEtleWRvd24pfV9faGFuZGxlSG9zdEtleWRvd249KEN0KHRoaXMsdTEpLEQ9PntsZXQgVD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdLEc9ITE7Zm9yKGxldCBQZSBvZiBUKXtsZXQgRmU9UGU/LnRhZ05hbWU7aWYoRmU9PT0iSU5QVVQifHxGZT09PSJURVhUQVJFQSJ8fFBlPy5pc0NvbnRlbnRFZGl0YWJsZSl7Rz0hMDticmVha319aWYoKEQubWV0YUtleXx8RC5jdHJsS2V5KSYmKEQua2V5PT09ImMifHxELmtleT09PSJDIikpe2lmKEcpcmV0dXJuO2xldCBQZT1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IEZlIG9mIHRoaXMuZGF0YSl0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEZlKSkmJlBlLnB1c2goRmUpO2Vsc2UgdGhpcy5zZWxlY3RlZERhdGFSb3cmJlBlLnB1c2godGhpcy5zZWxlY3RlZERhdGFSb3cpO2lmKFBlLmxlbmd0aD09PTApcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLl9fd3JpdGVSb3dzQXNKc29uKFBlKTtyZXR1cm59aWYoIShHfHx0aGlzLl9fZWRpdGluZ0NlbGwpKXN3aXRjaChELmtleSl7Y2FzZSJBcnJvd0xlZnQiOkQucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgtMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1JpZ2h0IjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1VwIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwtMSwhMSk7cmV0dXJuO2Nhc2UiQXJyb3dEb3duIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwxLCExKTtyZXR1cm47Y2FzZSJFbnRlciI6Y2FzZSJGMiI6e2lmKCF0aGlzLl9fZm9jdXNlZENlbGwpcmV0dXJuO2xldCBGZT0odGhpcy5fbGFzdFZpZXdEYXRhPz9bXSkuZmluZChYZT0+dGhpcy5nZXRSb3dJZChYZSk9PT10aGlzLl9fZm9jdXNlZENlbGwucm93SWQpO2lmKCFGZSlyZXR1cm47bGV0IFVlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmluZChYZT0+U3RyaW5nKFhlLmtleSk9PT10aGlzLl9fZm9jdXNlZENlbGwuY29sS2V5KTtpZighVWV8fCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShVZSkpcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLnN0YXJ0RWRpdGluZyhGZSxVZSk7cmV0dXJufWNhc2UiRXNjYXBlIjp0aGlzLl9fZm9jdXNlZENlbGwmJih0aGlzLl9fZm9jdXNlZENlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtyZXR1cm47ZGVmYXVsdDpyZXR1cm59fSk7Y29weVNlbGVjdGlvbkFzSnNvbihEKXtsZXQgVD1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IEcgb2YgdGhpcy5kYXRhKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoRykpJiZULnB1c2goRyk7ZWxzZSBEP1QucHVzaChEKTp0aGlzLnNlbGVjdGVkRGF0YVJvdyYmVC5wdXNoKHRoaXMuc2VsZWN0ZWREYXRhUm93KTtULmxlbmd0aCE9PTAmJnRoaXMuX193cml0ZVJvd3NBc0pzb24oVCl9X193cml0ZVJvd3NBc0pzb24oRCl7dHJ5e2xldCBUPUpTT04uc3RyaW5naWZ5KEQsbnVsbCwyKTtuYXZpZ2F0b3IuY2xpcGJvYXJkPy53cml0ZVRleHQoVCl9Y2F0Y2h7fX1zdGF0aWMgc3R5bGVzPUN2YTtfX2dldERpc3BsYXlGdW5jdGlvblNoYXBlS2V5KCl7aWYoIXRoaXMuZGF0YXx8dGhpcy5kYXRhLmxlbmd0aD09PTApcmV0dXJuIiI7bGV0IEQ9dGhpcy5kaXNwbGF5RnVuY3Rpb24odGhpcy5kYXRhWzBdKT8/e307cmV0dXJuIE9iamVjdC5rZXlzKEQpLmpvaW4oIlwwIil9X19nZXRFZmZlY3RpdmVDb2x1bW5zKCl7bGV0IEQ9QXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPjAsVD0hRHx8dGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj90aGlzLl9fZ2V0RGlzcGxheUZ1bmN0aW9uU2hhcGVLZXkoKToiIixHPXRoaXMuX19tZW1vRWZmZWN0aXZlQ29scztpZihHJiZHLmNvbHVtbnM9PT10aGlzLmNvbHVtbnMmJkcuYXVnbWVudD09PXRoaXMuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24mJkcuZGlzcGxheUZ1bmN0aW9uPT09dGhpcy5kaXNwbGF5RnVuY3Rpb24mJkcuZGlzcGxheVNoYXBlS2V5PT09VClyZXR1cm4gRy5vdXQ7bGV0ICRlPUQ/JHZhKHRoaXMuY29sdW1ucyx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk6Rm50KHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk7cmV0dXJuIHRoaXMuX19tZW1vRWZmZWN0aXZlQ29scz17Y29sdW1uczp0aGlzLmNvbHVtbnMsYXVnbWVudDp0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLGRpc3BsYXlGdW5jdGlvbjp0aGlzLmRpc3BsYXlGdW5jdGlvbixkaXNwbGF5U2hhcGVLZXk6VCxvdXQ6JGV9LCRlfV9fZ2V0Vmlld0RhdGEoRCl7bGV0IFQ9dGhpcy5zZWFyY2hNb2RlPT09ImRhdGEiPyJkYXRhIjoidGFibGUiLEc9dGhpcy5fX21lbW9WaWV3RGF0YTtpZihHJiZHLmRhdGE9PT10aGlzLmRhdGEmJkcuc29ydEJ5PT09dGhpcy5zb3J0QnkmJkcuZmlsdGVyVGV4dD09PXRoaXMuZmlsdGVyVGV4dCYmRy5jb2x1bW5GaWx0ZXJzPT09dGhpcy5jb2x1bW5GaWx0ZXJzJiZHLnNlYXJjaE1vZGU9PT1UJiZHLmVmZmVjdGl2ZUNvbHVtbnM9PT1EKXJldHVybiBHLm91dDtsZXQgJGU9RXZhKHRoaXMuZmlsdGVyVGV4dCxULEQpLFBlPUR2YSh0aGlzLmRhdGEsRCx0aGlzLnNvcnRCeSx0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLFQsJGV8fHZvaWQgMCk7cmV0dXJuIHRoaXMuX19tZW1vVmlld0RhdGE9e2RhdGE6dGhpcy5kYXRhLHNvcnRCeTp0aGlzLnNvcnRCeSxmaWx0ZXJUZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5GaWx0ZXJzOnRoaXMuY29sdW1uRmlsdGVycyxzZWFyY2hNb2RlOlQsZWZmZWN0aXZlQ29sdW1uczpELG91dDpQZX0sUGV9cmVuZGVyKCl7bGV0IEQ9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSxUPXRoaXMuX19nZXRWaWV3RGF0YShEKSxHPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImhlYWRlciIpLCRlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImZvb3RlciIpLFBlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93Iik7dGhpcy5fbGFzdFZpZXdEYXRhPVQ7bGV0IEZlPXRoaXMudmlydHVhbGl6ZWQmJlQubGVuZ3RoPjAsVmU9VCxVZT0wLFhlPTAsd3Q9MDtpZihGZSl7bGV0IFFlPXRoaXMuX192aXJ0dWFsUmFuZ2UsdmE9TWF0aC5tYXgoMCxRZS5zdGFydCksTnM9TWF0aC5taW4oVC5sZW5ndGgsUWUuZW5kfHwwKSx1YT1Ocz4wP05zOk1hdGgubWluKFQubGVuZ3RoLHRoaXMudmlydHVhbE92ZXJzY2FuKjIrMTYpO1VlPXZhLFZlPVQuc2xpY2UodmEsdWEpLFhlPXZhKnRoaXMuX19yb3dIZWlnaHQsd3Q9TWF0aC5tYXgoMCxULmxlbmd0aC11YSkqdGhpcy5fX3Jvd0hlaWdodH1yZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMSI+JHt0aGlzLmxhYmVsfHx0aGlzLmhlYWRpbmcxfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIGhlYWRpbmcyIj4ke3RoaXMuaGVhZGluZzJ9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlckFjdGlvbnMiPgogICAgICAgICAgICAke0cubWFwKFFlPT53YDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJoZWFkZXJBY3Rpb24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e1FlLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1FlLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvblNpemU9JHsxNH0gLmljb249JHtRZS5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAke1FlLm5hbWV9YDpRZS5uYW1lfQogICAgICAgICAgICAgIDwvZGl2PmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ1NlcGFyYXRpb24iPjwvZGl2PgogICAgICAgICR7dGhpcy5oaWdobGlnaHRVcGRhdGVzPT09ImZsYXNoIiYmIXRoaXMucm93S2V5P3dgPGRpdiBjbGFzcz0iZmxhc2hDb25maWdXYXJuaW5nIiByb2xlPSJhbGVydCI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgPGNvZGU+aGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIjwvY29kZT4gcmVxdWlyZXMKICAgICAgICAgICAgICAgIDxjb2RlPnJvd0tleTwvY29kZT4gdG8gYmUgc2V0LiBGbGFzaCBpcyBkaXNhYmxlZC4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PmA6d2BgfQogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaEdyaWQgaGlkZGVuIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Imx1Y2VuZSBzeW50YXggc2VhcmNoIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7YAogICAgICAgICAgICAgIFlvdSBjYW4gdXNlIHRoZSBsdWNlbmUgc3ludGF4IHRvIHNlYXJjaCBmb3IgZGF0YSwgZS5nLjoKCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7InNlYXJjaCBtb2RlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbInRhYmxlIiwiZGF0YSIsInNlcnZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidGFibGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHtgCiAgICAgICAgICAgICAgVGhlcmUgYXJlIHRocmVlIGJhc2ljIG1vZGVzOgoKICAgICAgICAgICAgICAqIHRhYmxlOiBvbmx5IHNlYXJjaGVzIGRhdGEgYWxyZWFkeSBpbiB0aGUgdGFibGUKICAgICAgICAgICAgICAqIGRhdGE6IHNlYXJjaGVzIG9yaWdpbmFsIGRhdGEsIGlnbm9yaW5nIHRhYmxlIHRyYW5zZm9ybXMKICAgICAgICAgICAgICAqIHNlcnZlcjogc2VhcmNoZXMgZGF0YSBvbiB0aGUgc2VydmVyCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgPHRib2R5CiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuX19vblRib2R5Q2xpY2t9CiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0ke3RoaXMuX19vblRib2R5RGJsY2xpY2t9CiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLl9fb25UYm9keU1vdXNlZG93bn0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7dGhpcy5fX29uVGJvZHlDb250ZXh0bWVudX0KICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke3RoaXMuX19vblRib2R5RHJhZ2VudGVyfQogICAgICAgICAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fX29uVGJvZHlEcmFnbGVhdmV9CiAgICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuX19vblRib2R5RHJhZ292ZXJ9CiAgICAgICAgICAgICAgICAgIEBkcm9wPSR7dGhpcy5fX29uVGJvZHlEcm9wfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke0ZlJiZYZT4wP3dgPHRyIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iaGVpZ2h0OiR7WGV9cHgiPjx0ZD48L3RkPjwvdHI+YDp3YGB9CiAgICAgICAgICAgICAgICAgICR7VmkucmVwZWF0KFZlLFFlPT50aGlzLmdldFJvd0lkKFFlKSwoUWUsdmEpPT57bGV0IE5zPVVlK3ZhLHVhPXRoaXMuZ2V0Um93SWQoUWUpLEdzPXRoaXMuX19mbGFzaGluZ0NlbGxzLmdldCh1YSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yb3ctaWR4PSR7TnN9CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSIke1FlPT09dGhpcy5zZWxlY3RlZERhdGFSb3d8fHRoaXMuaXNSb3dTZWxlY3RlZChRZSk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3g/d2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKFFlKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtmdD0+e2Z0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQoUWUsZnQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDp3YGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7RC5maWx0ZXIoZnQ9PiFmdC5oaWRkZW4pLm1hcCgoZnQsZXIpPT57bGV0IGtzPWQ0KFFlLGZ0LHRoaXMuZGlzcGxheUZ1bmN0aW9uKSxocz1mdC5yZW5kZXJlcj9mdC5yZW5kZXJlcihrcyxRZSx7cm93SW5kZXg6TnMsY29sSW5kZXg6ZXIsY29sdW1uOmZ0fSk6a3MsX2k9U3RyaW5nKGZ0LmtleSksQTJlPSEhKGZ0LmVkaXRhYmxlfHxmdC5lZGl0b3IpLE4yZT10aGlzLl9fZm9jdXNlZENlbGw/LnJvd0lkPT09dWEmJnRoaXMuX19mb2N1c2VkQ2VsbD8uY29sS2V5PT09X2ksRDQ9dGhpcy5fX2VkaXRpbmdDZWxsPy5yb3dJZD09PXVhJiZ0aGlzLl9fZWRpdGluZ0NlbGw/LmNvbEtleT09PV9pLFd4PUdzPy5nZXQoX2kpLEw0PVd4IT09dm9pZCAwLFIyZT1MNCYmISFmdC5mbGFzaEJvcmRlcixPMmU9W0EyZT8iZWRpdGFibGUiOiIiLE4yZSYmIUQ0PyJmb2N1c2VkIjoiIixEND8iZWRpdGluZ0NlbGwiOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpLEd4PXdgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ke0w0P1IyZT8iaW5uZXJDZWxsQ29udGFpbmVyIGZsYXNoaW5nLWJvcmRlciI6ImlubmVyQ2VsbENvbnRhaW5lciBmbGFzaGluZyI6ImlubmVyQ2VsbENvbnRhaW5lciJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7RDQ/dGhpcy5yZW5kZXJDZWxsRWRpdG9yKFFlLGZ0KTpoc30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSR7TzJlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtY29sLWtleT0ke19pfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtMND9WaS5rZXllZChgJHt1YX06JHtfaX06JHtXeH1gLEd4KTpHeH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZihQZS5sZW5ndGg+MClyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJhY3Rpb25zQ29sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7UGUubWFwKGZ0PT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+ZnQuYWN0aW9uRnVuYyh7aXRlbTpRZSx0YWJsZTp0aGlzfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtmdC5pY29uTmFtZT93YCA8ZGVlcy1pY29uIC5pY29uPSR7ZnQuaWNvbk5hbWV9PjwvZGVlcy1pY29uPiBgOmZ0Lm5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmB9KX0KICAgICAgICAgICAgICAgICAgJHtGZSYmd3Q+MD93YDx0ciBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9ImhlaWdodDoke3d0fXB4Ij48dGQ+PC90ZD48L3RyPmA6d2BgfQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nSGVhZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICAke3RoaXMuX19mbG9hdGluZ0FjdGl2ZT93YDx0YWJsZT4KICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+YDp3YGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AgPGRpdiBjbGFzcz0ibm9EYXRhU2V0Ij5ObyBkYXRhIHNldCE8L2Rpdj4gYH0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVN0YXRpc3RpY3MiPgogICAgICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGh9ICR7dGhpcy5kYXRhTmFtZXx8ImRhdGEgcm93cyJ9ICh0b3RhbCkgfAogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWREYXRhUm93P2AjICR7dGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZERhdGFSb3cpKzF9YDoiTm8ifQogICAgICAgICAgICBzZWxlY3RlZAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHskZS5tYXAoUWU9PndgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImZvb3RlckFjdGlvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57UWUuYWN0aW9uRnVuYyh7aXRlbTp0aGlzLnNlbGVjdGVkRGF0YVJvdyx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7UWUuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke1FlLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICR7UWUubmFtZX1gOlFlLm5hbWV9CiAgICAgICAgICAgICAgPC9kaXY+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlckhlYWRlclJvd3MoRCl7cmV0dXJuIHdgCiAgICAgIDx0cj4KICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgCiAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtUPT57VC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnNldFNlbGVjdFZpc2libGUoVC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICBgOndgYH0KICAgICAgICAke0QuZmlsdGVyKFQ9PiFULmhpZGRlbikubWFwKFQ9PntsZXQgRz1ULnNvcnRhYmxlIT09ITEsJGU9dGhpcy5nZXRBcmlhU29ydChUKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8dGgKICAgICAgICAgICAgICAgIHJvbGU9ImNvbHVtbmhlYWRlciIKICAgICAgICAgICAgICAgIGFyaWEtc29ydD0keyRlfQogICAgICAgICAgICAgICAgc3R5bGU9IiR7Rz8iY3Vyc29yOiBwb2ludGVyOyI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7UGU9Pkc/dGhpcy5oYW5kbGVIZWFkZXJDbGljayhQZSxULEQpOm51bGx9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtQZT0+Rz90aGlzLm9wZW5IZWFkZXJDb250ZXh0TWVudShQZSxULEQpOm51bGx9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtULmhlYWRlcj8/VC5rZXl9CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcihUKX0KICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAke3RoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjA/d2A8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPmA6d2BgfQogICAgICA8L3RyPgogICAgICAke3RoaXMuc2hvd0NvbHVtbkZpbHRlcnM/d2A8dHIgY2xhc3M9ImZpbHRlcnNSb3ciPgogICAgICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyI+PC90aD5gOndgYH0KICAgICAgICAgICAgJHtELmZpbHRlcihUPT4hVC5oaWRkZW4pLm1hcChUPT57bGV0IEc9U3RyaW5nKFQua2V5KTtyZXR1cm4gVC5maWx0ZXJhYmxlPT09ITE/d2A8dGg+PC90aD5gOndgPHRoPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgZGF0YS1jb2wta2V5PSR7R30gLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW0ddfHwiIn0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHskZT0+dGhpcy5zZXRDb2x1bW5GaWx0ZXIoRywkZS50YXJnZXQudmFsdWUpfSAvPgogICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICR7dGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MD93YDx0aD48L3RoPmA6d2BgfQogICAgICAgICAgPC90cj5gOndgYH0KICAgIGB9X19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyO19fZmxvYXRpbmdTY3JvbGxIYW5kbGVyO19fc2Nyb2xsQW5jZXN0b3JzPVtdO2dldCBfX2Zsb2F0aW5nSGVhZGVyRWwoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmxvYXRpbmdIZWFkZXIiKT8/bnVsbH1nZXQgX19yZWFsVGFibGVFbCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJsZVNjcm9sbCA+IHRhYmxlIik/P251bGx9Z2V0IF9fZmxvYXRpbmdUYWJsZUVsKCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZsb2F0aW5nSGVhZGVyID4gdGFibGUiKT8/bnVsbH1fX2NvbGxlY3RTY3JvbGxBbmNlc3RvcnMoKXtsZXQgRD1bXSxUPXRoaXMsRz1pKCRlPT4kZT09PSJhdXRvInx8JGU9PT0ic2Nyb2xsInx8JGU9PT0ib3ZlcmxheSIsInNjcm9sbGlzaCIpO2Zvcig7VDspe2lmKFQgaW5zdGFuY2VvZiBFbGVtZW50KXtsZXQgUGU9Z2V0Q29tcHV0ZWRTdHlsZShUKSxGZT1HKFBlLm92ZXJmbG93WSksVmU9RyhQZS5vdmVyZmxvd1gpOyhGZXx8VmUpJiZELnB1c2goe3RhcmdldDpULHNjcm9sbHNZOkZlLHNjcm9sbHNYOlZlfSl9bGV0ICRlPVQuYXNzaWduZWRTbG90P1QuYXNzaWduZWRTbG90OlQucGFyZW50Tm9kZTskZT9UPSRlOlQuaG9zdD9UPVQuaG9zdDpUPW51bGx9cmV0dXJuIEQucHVzaCh7dGFyZ2V0OndpbmRvdyxzY3JvbGxzWTohMCxzY3JvbGxzWDohMH0pLER9X19nZXRTdGlja0NvbnRleHQoKXtsZXQgRD0wLFQ9MCxHPXdpbmRvdy5pbm5lcldpZHRoO2ZvcihsZXQgJGUgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYoJGUudGFyZ2V0PT09d2luZG93KWNvbnRpbnVlO2xldCBQZT0kZS50YXJnZXQsRmU9UGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVmU9Z2V0Q29tcHV0ZWRTdHlsZShQZSk7aWYoJGUuc2Nyb2xsc1kpe2xldCBVZT1wYXJzZUZsb2F0KFZlLmJvcmRlclRvcFdpZHRoKXx8MDtEPU1hdGgubWF4KEQsRmUudG9wK1VlKX1pZigkZS5zY3JvbGxzWCl7bGV0IFVlPXBhcnNlRmxvYXQoVmUuYm9yZGVyTGVmdFdpZHRoKXx8MCxYZT1wYXJzZUZsb2F0KFZlLmJvcmRlclJpZ2h0V2lkdGgpfHwwO1Q9TWF0aC5tYXgoVCxGZS5sZWZ0K1VlKSxHPU1hdGgubWluKEcsRmUucmlnaHQtWGUpfX1yZXR1cm57dG9wOkQsbGVmdDpULHJpZ2h0Okd9fXNldHVwRmxvYXRpbmdIZWFkZXIoKXtpZih0aGlzLnRlYXJkb3duRmxvYXRpbmdIZWFkZXIoKSx0aGlzLmZpeGVkSGVpZ2h0JiYhdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IEQ9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCFEKXJldHVybjt0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzPXRoaXMuX19jb2xsZWN0U2Nyb2xsQW5jZXN0b3JzKCk7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwiKTtUJiZ0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzLnVuc2hpZnQoe3RhcmdldDpULHNjcm9sbHNZOnRoaXMuZml4ZWRIZWlnaHQsc2Nyb2xsc1g6ITB9KSx0aGlzLl9fZmxvYXRpbmdSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy52aXJ0dWFsaXplZCYmdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKX0pLHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoRCksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj0oKT0+e3RoaXMuZml4ZWRIZWlnaHR8fHRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnZpcnR1YWxpemVkJiZ0aGlzLl9fY29tcHV0ZVZpcnR1YWxSYW5nZSgpfTtmb3IobGV0IEcgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycylHLnRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksdGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9dGVhcmRvd25GbG9hdGluZ0hlYWRlcigpe2lmKHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpe2ZvcihsZXQgVCBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKVQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlciksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj12b2lkIDB9dGhpcy5fX3Njcm9sbEFuY2VzdG9ycz1bXSx0aGlzLl9fZmxvYXRpbmdBY3RpdmU9ITE7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7RCYmRC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1fX3RyYW5zZmVyRm9jdXNUb1JlYWxIZWFkZXIoKXtsZXQgRD10aGlzLl9fZmxvYXRpbmdIZWFkZXJFbDtpZighRClyZXR1cm47bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50O2lmKCFUfHwhRC5jb250YWlucyhUKSlyZXR1cm47bGV0IEc9VC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCFHKXJldHVybjtsZXQgJGU9VCxQZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50YWJsZVNjcm9sbCA+IHRhYmxlID4gdGhlYWQgaW5wdXRbZGF0YS1jb2wta2V5PSIke0NTUy5lc2NhcGUoRyl9Il1gKTtpZighUGV8fFBlPT09JGUpcmV0dXJuO2xldCBGZT0kZS5zZWxlY3Rpb25TdGFydCxWZT0kZS5zZWxlY3Rpb25FbmQsVWU9JGUuc2VsZWN0aW9uRGlyZWN0aW9uO1BlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e0ZlIT1udWxsJiZWZSE9bnVsbCYmUGUuc2V0U2VsZWN0aW9uUmFuZ2UoRmUsVmUsVWV8fHZvaWQgMCl9Y2F0Y2h7fX1fX3RyYW5zZmVyRm9jdXNUb0Zsb2F0aW5nSGVhZGVyKCl7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7aWYoIUR8fCF0aGlzLl9fZmxvYXRpbmdBY3RpdmUpcmV0dXJuO2xldCBUPXRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudDtpZighVClyZXR1cm47bGV0IEc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwgPiB0YWJsZSA+IHRoZWFkIik7aWYoIUd8fCFHLmNvbnRhaW5zKFQpKXJldHVybjtsZXQgJGU9VC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCEkZSlyZXR1cm47bGV0IFBlPVQsRmU9RC5xdWVyeVNlbGVjdG9yKGBpbnB1dFtkYXRhLWNvbC1rZXk9IiR7Q1NTLmVzY2FwZSgkZSl9Il1gKTtpZighRmV8fEZlPT09UGUpcmV0dXJuO2xldCBWZT1QZS5zZWxlY3Rpb25TdGFydCxVZT1QZS5zZWxlY3Rpb25FbmQsWGU9UGUuc2VsZWN0aW9uRGlyZWN0aW9uO0ZlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e1ZlIT1udWxsJiZVZSE9bnVsbCYmRmUuc2V0U2VsZWN0aW9uUmFuZ2UoVmUsVWUsWGV8fHZvaWQgMCl9Y2F0Y2h7fX1fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKXtpZighdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IFQ9KHRoaXMuX2xhc3RWaWV3RGF0YT8/W10pLmxlbmd0aDtpZihUPT09MCl7KHRoaXMuX192aXJ0dWFsUmFuZ2Uuc3RhcnQhPT0wfHx0aGlzLl9fdmlydHVhbFJhbmdlLmVuZCE9PTApJiYodGhpcy5fX3ZpcnR1YWxSYW5nZT17c3RhcnQ6MCxlbmQ6MH0pO3JldHVybn1sZXQgRz10aGlzLl9fcmVhbFRhYmxlRWw7aWYoIUcpcmV0dXJuO2xldCAkZT1HLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFBlPTAsRmU9d2luZG93LmlubmVySGVpZ2h0O2ZvcihsZXQgZnQgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYoZnQudGFyZ2V0PT09d2luZG93fHwhZnQuc2Nyb2xsc1kpY29udGludWU7bGV0IGVyPWZ0LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxrcz1nZXRDb21wdXRlZFN0eWxlKGZ0LnRhcmdldCksaHM9cGFyc2VGbG9hdChrcy5ib3JkZXJUb3BXaWR0aCl8fDAsX2k9cGFyc2VGbG9hdChrcy5ib3JkZXJCb3R0b21XaWR0aCl8fDA7UGU9TWF0aC5tYXgoUGUsZXIudG9wK2hzKSxGZT1NYXRoLm1pbihGZSxlci5ib3R0b20tX2kpfWxldCBWZT1NYXRoLm1heCgxLHRoaXMuX19yb3dIZWlnaHQpLFVlPUcudEhlYWQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodD8/MCxYZT0kZS50b3ArVWUsd3Q9TWF0aC5tYXgoMCxQZS1YZSksUWU9TWF0aC5tYXgoMCxGZS1NYXRoLm1heChQZSxYZSkpLHZhPU1hdGguZmxvb3Iod3QvVmUpLE5zPU1hdGguY2VpbChRZS9WZSkrMSx1YT1NYXRoLm1heCgwLHZhLXRoaXMudmlydHVhbE92ZXJzY2FuKSxHcz1NYXRoLm1pbihULHZhK05zK3RoaXMudmlydHVhbE92ZXJzY2FuKTsodWEhPT10aGlzLl9fdmlydHVhbFJhbmdlLnN0YXJ0fHxHcyE9PXRoaXMuX192aXJ0dWFsUmFuZ2UuZW5kKSYmKHRoaXMuX192aXJ0dWFsUmFuZ2U9e3N0YXJ0OnVhLGVuZDpHc30pfV9fbWVhc3VyZVJvd0hlaWdodCgpe2lmKCF0aGlzLnZpcnR1YWxpemVkfHx0aGlzLl9fcm93SGVpZ2h0TWVhc3VyZWQpcmV0dXJuO2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidGJvZHkiKTtpZighRClyZXR1cm47bGV0IFQ9QXJyYXkuZnJvbShELnJvd3MpLmZpbmQoJGU9PiRlLmhhc0F0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4IikpO2lmKCFUKXJldHVybjtsZXQgRz1ULmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtHPjAmJih0aGlzLl9fcm93SGVpZ2h0PUcsdGhpcy5fX3Jvd0hlaWdodE1lYXN1cmVkPSEwKX1fX3N5bmNGbG9hdGluZ0hlYWRlcigpe2xldCBEPXRoaXMuX19mbG9hdGluZ0hlYWRlckVsLFQ9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCFEfHwhVClyZXR1cm47bGV0IEc9VC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwkZT10aGlzLl9fZ2V0U3RpY2tDb250ZXh0KCksUGU9VC50SGVhZD8ucm93cyxGZT0wO2lmKFBlKWZvcihsZXQgZnQ9MDtmdDxQZS5sZW5ndGg7ZnQrKylGZSs9UGVbZnRdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtsZXQgVmU9Ry5ib3R0b20tJGUudG9wLFVlPUcudG9wPCRlLnRvcCYmVmU+MDtpZihVZSE9PXRoaXMuX19mbG9hdGluZ0FjdGl2ZSl7aWYoVWV8fHRoaXMuX190cmFuc2ZlckZvY3VzVG9SZWFsSGVhZGVyKCksdGhpcy5fX2Zsb2F0aW5nQWN0aXZlPVVlLEQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixVZSksIVVlKXtELnN0eWxlLmhlaWdodD0iIjtsZXQgZnQ9dGhpcy5fX2Zsb2F0aW5nVGFibGVFbDtmdCYmKGZ0LnN0eWxlLnRyYW5zZm9ybT0iIil9aWYoVWUpe3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLl9fdHJhbnNmZXJGb2N1c1RvRmxvYXRpbmdIZWFkZXIoKX0pO3JldHVybn19aWYoIVVlKXJldHVybjtsZXQgWGU9dGhpcy5fX2Zsb2F0aW5nVGFibGVFbDtpZighWGUpcmV0dXJuO1hlLnN0eWxlLnRhYmxlTGF5b3V0PVQuc3R5bGUudGFibGVMYXlvdXR8fCJhdXRvIjtsZXQgd3Q9WGUudEhlYWQ/LnJvd3M7aWYoUGUmJnd0KWZvcihsZXQgZnQ9MDtmdDxQZS5sZW5ndGgmJmZ0PHd0Lmxlbmd0aDtmdCsrKXtsZXQgZXI9UGVbZnRdLmNlbGxzLGtzPXd0W2Z0XS5jZWxscztmb3IobGV0IGhzPTA7aHM8ZXIubGVuZ3RoJiZoczxrcy5sZW5ndGg7aHMrKyl7bGV0IF9pPWVyW2hzXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtrc1toc10uc3R5bGUud2lkdGg9YCR7X2l9cHhgLGtzW2hzXS5zdHlsZS5taW5XaWR0aD1gJHtfaX1weGAsa3NbaHNdLnN0eWxlLm1heFdpZHRoPWAke19pfXB4YH19bGV0IFFlPU1hdGgubWF4KEcubGVmdCwkZS5sZWZ0KSx2YT1NYXRoLm1pbihHLnJpZ2h0LCRlLnJpZ2h0KSxOcz1NYXRoLm1heCgwLHZhLVFlKTtELnN0eWxlLnRvcD1gJHskZS50b3B9cHhgLEQuc3R5bGUubGVmdD1gJHtRZX1weGAsRC5zdHlsZS53aWR0aD1gJHtOc31weGA7bGV0IHVhPU1hdGgubWluKEZlLFZlKSxHcz1GZS11YTtELnN0eWxlLmhlaWdodD1gJHt1YX1weGAsWGUuc3R5bGUud2lkdGg9YCR7Ry53aWR0aH1weGAsWGUuc3R5bGUubWFyZ2luTGVmdD1gJHtHLmxlZnQtUWV9cHhgLFhlLnN0eWxlLnRyYW5zZm9ybT1Hcz4wP2B0cmFuc2xhdGVZKC0ke0dzfXB4KWA6IiJ9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpLHRoaXMuX19mbGFzaENsZWFyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj12b2lkIDApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe313aWxsVXBkYXRlKEQpe2lmKEQuaGFzKCJkYXRhIikmJnRoaXMuc2VsZWN0ZWREYXRhUm93JiZ0aGlzLnJvd0tleSl7bGV0IHd0PXRoaXMuZ2V0Um93SWQodGhpcy5zZWxlY3RlZERhdGFSb3cpLFFlO2ZvcihsZXQgdmEgb2YgdGhpcy5kYXRhKWlmKHRoaXMuZ2V0Um93SWQodmEpPT09d3Qpe1FlPXZhO2JyZWFrfVFlP1FlIT09dGhpcy5zZWxlY3RlZERhdGFSb3cmJih0aGlzLnNlbGVjdGVkRGF0YVJvdz1RZSk6dGhpcy5zZWxlY3RlZERhdGFSb3c9dm9pZCAwfWlmKHRoaXMuaGlnaGxpZ2h0VXBkYXRlcyE9PSJmbGFzaCIpeyh0aGlzLl9fcHJldlNuYXBzaG90fHx0aGlzLl9fZmxhc2hpbmdDZWxscy5zaXplPjApJiYodGhpcy5fX3ByZXZTbmFwc2hvdD12b2lkIDAsdGhpcy5fX2ZsYXNoaW5nQ2VsbHMuc2l6ZT4wJiYodGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMCkpO3JldHVybn1pZighdGhpcy5yb3dLZXkpe3RoaXMuX19mbGFzaFdhcm5lZE5vUm93S2V5fHwodGhpcy5fX2ZsYXNoV2FybmVkTm9Sb3dLZXk9ITAsY29uc29sZS53YXJuKCdbZGVlcy10YWJsZV0gaGlnaGxpZ2h0VXBkYXRlcz0iZmxhc2giIHJlcXVpcmVzIGByb3dLZXlgIHRvIGJlIHNldC4gRmxhc2ggaXMgZGlzYWJsZWQuIFNldCB0aGUgcm93S2V5IHByb3BlcnR5L2F0dHJpYnV0ZSB0byBhIHN0YWJsZSBpZGVudGlmaWVyIG9uIHlvdXIgcm93IGRhdGEgKGUuZy4gYHJvd0tleT0iaWQiYCkuJykpO3JldHVybn1pZighRC5oYXMoImRhdGEiKSlyZXR1cm47bGV0IEc9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maWx0ZXIod3Q9PiF3dC5oaWRkZW4pLCRlPW5ldyBNYXAoRy5tYXAod3Q9PltTdHJpbmcod3Qua2V5KSx3dF0pKSxQZT1uZXcgTWFwLEZlPW5ldyBNYXA7Zm9yKGxldCB3dCBvZiB0aGlzLmRhdGEpe2xldCBRZT10aGlzLmdldFJvd0lkKHd0KSx2YT1uZXcgTWFwO2ZvcihsZXQgdWEgb2YgRyl2YS5zZXQoU3RyaW5nKHVhLmtleSksZDQod3QsdWEsdGhpcy5kaXNwbGF5RnVuY3Rpb24pKTtQZS5zZXQoUWUsdmEpO2xldCBOcz10aGlzLl9fcHJldlNuYXBzaG90Py5nZXQoUWUpO2lmKE5zKWZvcihsZXRbdWEsR3Ndb2YgdmEpe2xldCBmdD1Ocy5nZXQodWEpLGVyPSRlLmdldCh1YSksa3M7aWYoZXI/LmZsYXNoQ29tcGFyZT9rcz1lci5mbGFzaENvbXBhcmUoZnQsR3MpOkdzIT1udWxsJiZ0eXBlb2YgR3M9PSJvYmplY3QiP2tzPSExOmtzPWZ0IT09R3Msa3Mpe2lmKHRoaXMuX19lZGl0aW5nQ2VsbCYmdGhpcy5fX2VkaXRpbmdDZWxsLnJvd0lkPT09UWUmJnRoaXMuX19lZGl0aW5nQ2VsbC5jb2xLZXk9PT11YSljb250aW51ZTtsZXQgaHM9RmUuZ2V0KFFlKTtoc3x8KGhzPW5ldyBTZXQsRmUuc2V0KFFlLGhzKSksaHMuYWRkKHVhKX19fWxldCBWZT0hIXRoaXMuX19wcmV2U25hcHNob3Q7aWYodGhpcy5fX3ByZXZTbmFwc2hvdD1QZSwhVmV8fEZlLnNpemU9PT0wKXJldHVybjtsZXQgVWU9Kyt0aGlzLl9fZmxhc2hUaWNrLFhlPW5ldyBNYXAodGhpcy5fX2ZsYXNoaW5nQ2VsbHMpO2ZvcihsZXRbd3QsUWVdb2YgRmUpe2xldCB2YT1uZXcgTWFwKFhlLmdldCh3dCk/P1tdKTtmb3IobGV0IE5zIG9mIFFlKXZhLnNldChOcyxVZSk7WGUuc2V0KHd0LHZhKX10aGlzLl9fZmxhc2hpbmdDZWxscz1YZSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMH0sTWF0aC5tYXgoMCx0aGlzLmhpZ2hsaWdodER1cmF0aW9uKSl9YXN5bmMgdXBkYXRlZChEKXtzdXBlci51cGRhdGVkKEQpO2xldCBUPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksRz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik/P251bGwsJGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaW5Sb3ciKS5sZW5ndGg7RC5oYXMoImhpZ2hsaWdodER1cmF0aW9uIikmJnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tZGVlcy10YWJsZS1mbGFzaC1kdXJhdGlvbiIsYCR7dGhpcy5oaWdobGlnaHREdXJhdGlvbn1tc2ApO2xldCBQZT0hIUcmJighdGhpcy5fX2NvbHVtbnNTaXplZEZvcnx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5lZmZlY3RpdmVDb2x1bW5zIT09VHx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5zaG93U2VsZWN0aW9uQ2hlY2tib3ghPT10aGlzLnNob3dTZWxlY3Rpb25DaGVja2JveHx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5pblJvd0FjdGlvbkNvdW50IT09JGV8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3IudGFibGUhPT1HKTtHJiZQZSYmKHRoaXMuX19jb2x1bW5zU2l6ZWRGb3I9e2VmZmVjdGl2ZUNvbHVtbnM6VCxzaG93U2VsZWN0aW9uQ2hlY2tib3g6dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3gsaW5Sb3dBY3Rpb25Db3VudDokZSx0YWJsZTpHfSx0aGlzLmRldGVybWluZUNvbHVtbldpZHRocygpLHRoaXMuX19yb3dIZWlnaHRNZWFzdXJlZD0hMSksdGhpcy52aXJ0dWFsaXplZCYmKHRoaXMuX19tZWFzdXJlUm93SGVpZ2h0KCksdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKSksKEQuaGFzKCJmaXhlZEhlaWdodCIpfHxELmhhcygidmlydHVhbGl6ZWQiKXx8RC5oYXMoImRhdGEiKXx8RC5oYXMoImNvbHVtbnMiKXx8IXRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpJiYoKCF0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLnZpcnR1YWxpemVkKSYmdGhpcy5kYXRhLmxlbmd0aD4wP3RoaXMuc2V0dXBGbG9hdGluZ0hlYWRlcigpOnRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpKSwhdGhpcy5maXhlZEhlaWdodCYmdGhpcy5kYXRhLmxlbmd0aD4wJiYodGhpcy5fX2Zsb2F0aW5nQWN0aXZlfHxQZSkmJnRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnNlYXJjaGFibGUmJih0aGlzLmRhdGFBY3Rpb25zLmZpbmQoVmU9PlZlLnR5cGU/LmluY2x1ZGVzKCJoZWFkZXIiKSYmVmUubmFtZT09PSJTZWFyY2giKXx8KHRoaXMuZGF0YUFjdGlvbnMudW5zaGlmdCh7bmFtZToiU2VhcmNoIixpY29uTmFtZToibHVjaWRlOlNlYXJjaCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57Y29uc29sZS5sb2coIm9wZW4gc2VhcmNoIiksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIikuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIil9LCJhY3Rpb25GdW5jIil9KSxjb25zb2xlLmxvZyh0aGlzLmRhdGFBY3Rpb25zKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksdGhpcy53aXJlU2VhcmNoSW5wdXRzKCkpfV9fZGVib3VuY2VUaW1lcjtkZWJvdW5jZVJ1bihELFQ9MjAwKXt0aGlzLl9fZGVib3VuY2VUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuX19kZWJvdW5jZVRpbWVyKSx0aGlzLl9fZGVib3VuY2VUaW1lcj1zZXRUaW1lb3V0KEQsVCl9d2lyZVNlYXJjaElucHV0cygpe2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQgZGVlcy1pbnB1dC10ZXh0IiksVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKTtEJiYhdGhpcy5fX3NlYXJjaFRleHRTdWImJih0aGlzLl9fc2VhcmNoVGV4dFN1Yj1ELmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEc9PntsZXQgJGU9Rz8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTokZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dCgkZSl9KX0pKSxUJiYhdGhpcy5fX3NlYXJjaE1vZGVTdWImJih0aGlzLl9fc2VhcmNoTW9kZVN1Yj1ULmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEc9PntsZXQgJGU9Rz8uc2VsZWN0ZWRPcHRpb258fEc/LnZhbHVlfHwidGFibGUiO2lmKCRlPT09InRhYmxlInx8JGU9PT0iZGF0YSJ8fCRlPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT0kZTtsZXQgUGU9RD8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpQZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChQZSl9KX19KSl9YXN5bmMgZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IFQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik7aWYoIVQpcmV0dXJuO2xldCBHPVQucm93c1swXS5jZWxscywkZT1pKGFzeW5jKFBlLEZlPSExKT0+e2xldCBWZT1tdC5kZWZlcigpLFVlPUdbUGVdLFhlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKFVlKS53aWR0aDtpZihVZS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpKXtsZXQgd3Q9dGhpcy5kYXRhQWN0aW9ucy5maWx0ZXIoUWU9PlFlLnR5cGU/LmluY2x1ZGVzKCJpblJvdyIpKS5sZW5ndGgqMzY7VWUuc3R5bGUud2lkdGg9YCR7TWF0aC5tYXgod3QsNjgpfXB4YH1lbHNlIFVlLnN0eWxlLndpZHRoPVhlO0ZlJiYocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VmUucmVzb2x2ZSgpfSksYXdhaXQgVmUucHJvbWlzZSl9LCJoYW5kbGVDb2x1bW5CeUluZGV4Iik7R1tHLmxlbmd0aC0xXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpJiZhd2FpdCAkZShHLmxlbmd0aC0xLCEwKTtmb3IobGV0IFBlPTA7UGU8Ry5sZW5ndGg7UGUrKylHW1BlXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpfHxhd2FpdCAkZShQZSk7VC5zdHlsZS50YWJsZUxheW91dD0iZml4ZWQifWdldFNvcnREZXNjcmlwdG9yKEQpe3JldHVybiB0aGlzLnNvcnRCeS5maW5kKFQ9PlQua2V5PT09RCl9Z2V0U29ydFByaW9yaXR5KEQpe3JldHVybiB0aGlzLnNvcnRCeS5maW5kSW5kZXgoVD0+VC5rZXk9PT1EKX1zZXRTb3J0KEQsVCl7dGhpcy5zb3J0Qnk9W3trZXk6RCxkaXI6VH1dLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hZGRTb3J0QXQoRCxULEcpe2xldCAkZT10aGlzLnNvcnRCeS5maWx0ZXIoRmU9PkZlLmtleSE9PUQpLFBlPU1hdGgubWF4KDAsTWF0aC5taW4oVCwkZS5sZW5ndGgpKTskZS5zcGxpY2UoUGUsMCx7a2V5OkQsZGlyOkd9KSx0aGlzLnNvcnRCeT0kZSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kU29ydChELFQpe2xldCBHPXRoaXMuc29ydEJ5LmZpbHRlcigkZT0+JGUua2V5IT09RCk7Ry5wdXNoKHtrZXk6RCxkaXI6VH0pLHRoaXMuc29ydEJ5PUcsdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXJlbW92ZVNvcnQoRCl7dGhpcy5zb3J0Qnkuc29tZShUPT5ULmtleT09PUQpJiYodGhpcy5zb3J0Qnk9dGhpcy5zb3J0QnkuZmlsdGVyKFQ9PlQua2V5IT09RCksdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1jbGVhclNvcnRzKCl7dGhpcy5zb3J0QnkubGVuZ3RoIT09MCYmKHRoaXMuc29ydEJ5PVtdLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9ZW1pdFNvcnRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzb3J0Q2hhbmdlIix7ZGV0YWlsOntzb3J0Qnk6dGhpcy5zb3J0QnkubWFwKEQ9Pih7Li4uRH0pKX0sYnViYmxlczohMH0pKX1hc3luYyBoYW5kbGVIZWFkZXJDbGljayhELFQsRyl7aWYoRC5zaGlmdEtleSl7dGhpcy5oYW5kbGVIZWFkZXJTaGlmdENsaWNrKFQpO3JldHVybn1hd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShUKSYmdGhpcy5jeWNsZVNpbmdsZVNvcnQoVCl9Y3ljbGVTaW5nbGVTb3J0KEQpe2xldCBUPVN0cmluZyhELmtleSksRz10aGlzLnNvcnRCeS5sZW5ndGg9PT0xJiZ0aGlzLnNvcnRCeVswXS5rZXk9PT1UP3RoaXMuc29ydEJ5WzBdLmRpcjpudWxsO0c9PT0iYXNjIj90aGlzLnNldFNvcnQoVCwiZGVzYyIpOkc9PT0iZGVzYyI/dGhpcy5jbGVhclNvcnRzKCk6dGhpcy5zZXRTb3J0KFQsImFzYyIpfWhhbmRsZUhlYWRlclNoaWZ0Q2xpY2soRCl7bGV0IFQ9U3RyaW5nKEQua2V5KSxHPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoVCk7Rz9HLmRpcj09PSJhc2MiPyh0aGlzLnNvcnRCeT10aGlzLnNvcnRCeS5tYXAoJGU9PiRlLmtleT09PVQ/e2tleTpULGRpcjoiZGVzYyJ9OiRlKSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpOnRoaXMucmVtb3ZlU29ydChUKTp0aGlzLmFwcGVuZFNvcnQoVCwiYXNjIil9Y29uZmlybVJlcGxhY2VDYXNjYWRlKEQpe3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg8PTE/UHJvbWlzZS5yZXNvbHZlKCEwKTpuZXcgUHJvbWlzZShUPT57bGV0IEc9ITEsJGU9aShGZT0+e0d8fChHPSEwLFQoRmUpKX0sInNldHRsZSIpLFBlPXRoaXMuc29ydEJ5Lm1hcCgoRmUsVmUpPT57bGV0IFhlPXRoaXMuX2xvb2t1cENvbHVtbkJ5S2V5Py4oRmUua2V5KT8uaGVhZGVyPz9GZS5rZXk7cmV0dXJuIHdgPGxpPiR7VmUrMX0uICR7WGV9ICR7RmUuZGlyPT09ImFzYyI/Ilx1MjVCMiI6Ilx1MjVCQyJ9PC9saT5gfSk7aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiUmVwbGFjZSBtdWx0aS1jb2x1bW4gc29ydD8iLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4OyBsaW5lLWhlaWdodDoxLjU1OyI+CiAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46MCAwIDhweDsiPgogICAgICAgICAgICAgIFlvdSBjdXJyZW50bHkgaGF2ZSBhICR7dGhpcy5zb3J0QnkubGVuZ3RofS1jb2x1bW4gc29ydCBhY3RpdmU6CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7IHBhZGRpbmctbGVmdDoxOHB4OyI+JHtQZX08L3VsPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOjA7Ij4KICAgICAgICAgICAgICBDb250aW51aW5nIHdpbGwgZGlzY2FyZCB0aGUgY2FzY2FkZSBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgc2luZ2xlIHNvcnQgb24KICAgICAgICAgICAgICA8c3Ryb25nPiR7RC5oZWFkZXI/P1N0cmluZyhELmtleSl9PC9zdHJvbmc+LgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjppKGFzeW5jIEZlPT4oJGUoITEpLGF3YWl0IEZlLmRlc3Ryb3koKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToibHVjaWRlOmNoZWNrIixhY3Rpb246aShhc3luYyBGZT0+KCRlKCEwKSxhd2FpdCBGZS5kZXN0cm95KCksbnVsbCksImFjdGlvbiIpfV19KX0pfV9sb29rdXBDb2x1bW5CeUtleShEKXtyZXR1cm4gdGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKEc9PlN0cmluZyhHLmtleSk9PT1EKX1vcGVuSGVhZGVyQ29udGV4dE1lbnUoRCxULEcpe2xldCAkZT10aGlzLmJ1aWxkSGVhZGVyTWVudUl0ZW1zKFQsRyk7JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCwkZSl9YnVpbGRIZWFkZXJNZW51SXRlbXMoRCxUKXtsZXQgRz1TdHJpbmcoRC5rZXkpLCRlPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoRyksUGU9dGhpcy5zb3J0QnkubGVuZ3RoLEZlPVQuZmlsdGVyKFhlPT5YZS5zb3J0YWJsZSE9PSExKS5sZW5ndGgsVmU9TWF0aC5taW4oTWF0aC5tYXgoUGUrKCRlPzA6MSksMSksTWF0aC5tYXgoRmUsMSkpLFVlPVtdO1VlLnB1c2goe25hbWU6IlNvcnQgQXNjZW5kaW5nIixpY29uTmFtZTpQZT09PTEmJiRlPy5kaXI9PT0iYXNjIj8ibHVjaWRlOmNoZWNrIjoibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShEKSYmdGhpcy5zZXRTb3J0KEcsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0pLFVlLnB1c2goe25hbWU6IlNvcnQgRGVzY2VuZGluZyIsaWNvbk5hbWU6UGU9PT0xJiYkZT8uZGlyPT09ImRlc2MiPyJsdWNpZGU6Y2hlY2siOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246aShhc3luYygpPT4oYXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoRCkmJnRoaXMuc2V0U29ydChHLCJkZXNjIiksbnVsbCksImFjdGlvbiIpfSksVWUucHVzaCh7ZGl2aWRlcjohMH0pO2ZvcihsZXQgWGU9MTtYZTw9VmU7WGUrKyl7bGV0IHd0PWllcyhYZSksUWU9JGUmJnRoaXMuZ2V0U29ydFByaW9yaXR5KEcpPT09WGUtMTtVZS5wdXNoKHtuYW1lOmBTZXQgYXMgJHt3dH0gc29ydGAsaWNvbk5hbWU6UWU/Imx1Y2lkZTpjaGVjayI6Imx1Y2lkZTpsaXN0T3JkZXJlZCIsc3VibWVudTpbe25hbWU6IkFzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd1VwIixhY3Rpb246aShhc3luYygpPT4odGhpcy5hZGRTb3J0QXQoRyxYZS0xLCJhc2MiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJEZXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93RG93biIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuYWRkU29ydEF0KEcsWGUtMSwiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSl9cmV0dXJuIFVlLnB1c2goe2RpdmlkZXI6ITB9KSxVZS5wdXNoKHtuYW1lOiJBcHBlbmQgdG8gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixzdWJtZW51Olt7bmFtZToiQXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQoRywiYXNjIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiRGVzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd0Rvd24iLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQoRywiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSksJGUmJihVZS5wdXNoKHtkaXZpZGVyOiEwfSksVWUucHVzaCh7bmFtZToiUmVtb3ZlIGZyb20gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTptaW51cyIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMucmVtb3ZlU29ydChHKSxudWxsKSwiYWN0aW9uIil9KSksUGU+MCYmKCRlfHxVZS5wdXNoKHtkaXZpZGVyOiEwfSksVWUucHVzaCh7bmFtZToiQ2xlYXIgYWxsIHNvcnRzIixpY29uTmFtZToibHVjaWRlOnRyYXNoIixhY3Rpb246aShhc3luYygpPT4odGhpcy5jbGVhclNvcnRzKCksbnVsbCksImFjdGlvbiIpfSkpLFVlLnB1c2goe2RpdmlkZXI6ITB9KSxVZS5wdXNoKHtuYW1lOnRoaXMuc2hvd0NvbHVtbkZpbHRlcnM/IkhpZGUgY29sdW1uIGZpbHRlcnMiOiJTaG93IGNvbHVtbiBmaWx0ZXJzIixpY29uTmFtZTp0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPyJsdWNpZGU6ZmlsdGVyWCI6Imx1Y2lkZTpmaWx0ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPSF0aGlzLnNob3dDb2x1bW5GaWx0ZXJzLHRoaXMucmVxdWVzdFVwZGF0ZSgpLG51bGwpLCJhY3Rpb24iKX0pLFVlfWdldEFyaWFTb3J0KEQpe2xldCBUPXRoaXMuc29ydEJ5WzBdO3JldHVybiFUfHxULmtleSE9PVN0cmluZyhELmtleSk/Im5vbmUiOlQuZGlyPT09ImFzYyI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmcifXJlbmRlclNvcnRJbmRpY2F0b3IoRCl7bGV0IFQ9dGhpcy5nZXRTb3J0UHJpb3JpdHkoU3RyaW5nKEQua2V5KSk7aWYoVDwwKXJldHVybiB3YGA7bGV0ICRlPXRoaXMuc29ydEJ5W1RdLmRpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMiO3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg9PT0xP3dgPHNwYW4gY2xhc3M9InNvcnRBcnJvdyI+JHskZX08L3NwYW4+YDp3YDxzcGFuIGNsYXNzPSJzb3J0QXJyb3ciPiR7JGV9PC9zcGFuPjxzcGFuIGNsYXNzPSJzb3J0QmFkZ2UiPiR7VCsxfTwvc3Bhbj5gfXNldEZpbHRlclRleHQoRCl7bGV0IFQ9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1EPz8iIixUIT09dGhpcy5maWx0ZXJUZXh0JiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1zZXRDb2x1bW5GaWx0ZXIoRCxUKXt0aGlzLmNvbHVtbkZpbHRlcnM9ey4uLnRoaXMuY29sdW1uRmlsdGVycyxbRF06VH0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKEQpe2lmKHRoaXMucm93S2V5KXJldHVybiB0eXBlb2YgdGhpcy5yb3dLZXk9PSJmdW5jdGlvbiI/dGhpcy5yb3dLZXkoRCk6U3RyaW5nKERbdGhpcy5yb3dLZXldKTtsZXQgVD1EO3JldHVybiB0aGlzLl9yb3dJZE1hcC5oYXMoVCl8fHRoaXMuX3Jvd0lkTWFwLnNldChULFN0cmluZygrK3RoaXMuX3Jvd0lkQ291bnRlcikpLHRoaXMuX3Jvd0lkTWFwLmdldChUKX1pc1Jvd1NlbGVjdGVkKEQpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEQpKX10b2dnbGVSb3dTZWxlY3RlZChEKXtsZXQgVD10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoVCkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJih0aGlzLnNlbGVjdGVkSWRzLmhhcyhUKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShUKTp0aGlzLnNlbGVjdGVkSWRzLmFkZChUKSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9X19yZXNvbHZlUm93KEQpe2xldCBUPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sRz1udWxsO2ZvcihsZXQgVmUgb2YgVCl7bGV0IFVlPVZlO2lmKFVlPy50YWdOYW1lPT09IlRSIiYmVWUuaGFzQXR0cmlidXRlKCJkYXRhLXJvdy1pZHgiKSl7Rz1VZTticmVha319aWYoIUcpcmV0dXJuIG51bGw7bGV0ICRlPU51bWJlcihHLmdldEF0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4IikpLEZlPSh0aGlzLl9sYXN0Vmlld0RhdGE/P1tdKVskZV07cmV0dXJuIEZlP3tpdGVtOkZlLHJvd0lkeDokZX06bnVsbH1fX3Jlc29sdmVDZWxsKEQpe2xldCBUPXRoaXMuX19yZXNvbHZlUm93KEQpO2lmKCFUKXJldHVybiBudWxsO2xldCBHPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sJGU9bnVsbDtmb3IobGV0IFVlIG9mIEcpe2xldCBYZT1VZTtpZihYZT8udGFnTmFtZT09PSJURCImJlhlLmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IikpeyRlPVhlO2JyZWFrfX1pZighJGUpcmV0dXJuIG51bGw7bGV0IFBlPSRlLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IiksVmU9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKFVlPT5TdHJpbmcoVWUua2V5KT09PVBlKTtyZXR1cm4gVmU/e2l0ZW06VC5pdGVtLHJvd0lkeDpULnJvd0lkeCxjb2w6VmV9Om51bGx9X19pc0luQWN0aW9uc0NvbChEKXtsZXQgVD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdO2ZvcihsZXQgRyBvZiBUKWlmKEc/LmNsYXNzTGlzdD8uY29udGFpbnMoImFjdGlvbnNDb2wiKSlyZXR1cm4hMDtyZXR1cm4hMX1fX2lzSW5FZGl0b3IoRCl7bGV0IFQ9RC5jb21wb3NlZFBhdGg/LigpfHxbXTtmb3IobGV0IEcgb2YgVCl7bGV0ICRlPUcsUGU9JGU/LnRhZ05hbWU7aWYoUGU9PT0iSU5QVVQifHxQZT09PSJURVhUQVJFQSJ8fCRlPy5pc0NvbnRlbnRFZGl0YWJsZXx8UGUmJlBlLnN0YXJ0c1dpdGgoIkRFRVMtSU5QVVQtIikpcmV0dXJuITB9cmV0dXJuITF9X19vblRib2R5Q2xpY2s9aShEPT57aWYodGhpcy5fX2lzSW5FZGl0b3IoRCl8fHRoaXMuX19pc0luQWN0aW9uc0NvbChEKSlyZXR1cm47bGV0IFQ9dGhpcy5fX3Jlc29sdmVDZWxsKEQpO2lmKCFUKXJldHVybjtsZXQgRz10aGlzLl9sYXN0Vmlld0RhdGE/P1tdOyhULmNvbC5lZGl0YWJsZXx8VC5jb2wuZWRpdG9yKSYmKHRoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChULml0ZW0pLGNvbEtleTpTdHJpbmcoVC5jb2wua2V5KX0pLHRoaXMuaGFuZGxlUm93Q2xpY2soRCxULml0ZW0sVC5yb3dJZHgsRyl9LCJfX29uVGJvZHlDbGljayIpO19fb25UYm9keURibGNsaWNrPWkoRD0+e2lmKHRoaXMuX19pc0luRWRpdG9yKEQpfHx0aGlzLl9faXNJbkFjdGlvbnNDb2woRCkpcmV0dXJuO2xldCBUPXRoaXMuX19yZXNvbHZlQ2VsbChEKTtpZighVClyZXR1cm47aWYoISEoVC5jb2wuZWRpdGFibGV8fFQuY29sLmVkaXRvcikpe0Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zdGFydEVkaXRpbmcoVC5pdGVtLFQuY29sKTtyZXR1cm59bGV0ICRlPXRoaXMuZGF0YUFjdGlvbnMuZmluZChQZT0+UGUudHlwZT8uaW5jbHVkZXMoImRvdWJsZUNsaWNrIikpOyRlJiYkZS5hY3Rpb25GdW5jKHtpdGVtOlQuaXRlbSx0YWJsZTp0aGlzfSl9LCJfX29uVGJvZHlEYmxjbGljayIpO19fb25UYm9keU1vdXNlZG93bj1pKEQ9PntELnNoaWZ0S2V5JiZ0aGlzLnNlbGVjdGlvbk1vZGUhPT0ic2luZ2xlIiYmRC5wcmV2ZW50RGVmYXVsdCgpfSwiX19vblRib2R5TW91c2Vkb3duIik7X19vblRib2R5Q29udGV4dG1lbnU9aShEPT57aWYodGhpcy5fX2lzSW5BY3Rpb25zQ29sKEQpKXJldHVybjtsZXQgVD10aGlzLl9fcmVzb2x2ZVJvdyhEKTtpZighVClyZXR1cm47bGV0IEc9VC5pdGVtO3RoaXMuaXNSb3dTZWxlY3RlZChHKXx8KHRoaXMuc2VsZWN0ZWREYXRhUm93PUcsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRykpLHRoaXMuX19zZWxlY3Rpb25BbmNob3JJZD10aGlzLmdldFJvd0lkKEcpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtsZXQgJGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoRmU9Pih7bmFtZTpGZS5uYW1lLGljb25OYW1lOkZlLmljb25OYW1lLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCBGZS5hY3Rpb25GdW5jKHtpdGVtOkcsdGFibGU6dGhpc30pLG51bGwpLCJhY3Rpb24iKX0pKSxQZT1be25hbWU6dGhpcy5zZWxlY3RlZElkcy5zaXplPjE/YENvcHkgJHt0aGlzLnNlbGVjdGVkSWRzLnNpemV9IHJvd3MgYXMgSlNPTmA6IkNvcHkgcm93IGFzIEpTT04iLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuY29weVNlbGVjdGlvbkFzSnNvbihHKSxudWxsKSwiYWN0aW9uIil9XTskYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhELFsuLi4kZSwuLi5QZV0pfSwiX19vblRib2R5Q29udGV4dG1lbnUiKTtfX29uVGJvZHlEcmFnZW50ZXI9aShEPT57aWYoRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuX19yZXNvbHZlUm93KEQpKXJldHVybjtsZXQgRz0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZCgkZT0+JGU/LnRhZ05hbWU9PT0iVFIiKTtHJiZzZXRUaW1lb3V0KCgpPT5HLmNsYXNzTGlzdC5hZGQoImhhc0F0dGFjaG1lbnQiKSwwKX0sIl9fb25UYm9keURyYWdlbnRlciIpO19fb25UYm9keURyYWdsZWF2ZT1pKEQ9PntELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgVD0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZChHPT5HPy50YWdOYW1lPT09IlRSIik7VCYmVC5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9LCJfX29uVGJvZHlEcmFnbGVhdmUiKTtfX29uVGJvZHlEcmFnb3Zlcj1pKEQ9PntELnByZXZlbnREZWZhdWx0KCl9LCJfX29uVGJvZHlEcmFnb3ZlciIpO19fb25UYm9keURyb3A9aShhc3luYyBEPT57RC5wcmV2ZW50RGVmYXVsdCgpO2xldCBUPXRoaXMuX19yZXNvbHZlUm93KEQpO2lmKCFUKXJldHVybjtsZXQgRz1ULml0ZW0sJGU9W107Zm9yKGxldCBGZSBvZiBBcnJheS5mcm9tKEQuZGF0YVRyYW5zZmVyLmZpbGVzKSl0aGlzLmZpbGVzLnB1c2goRmUpLCRlLnB1c2goRmUpLHRoaXMucmVxdWVzdFVwZGF0ZSgpO2xldCBQZT10aGlzLmZpbGVXZWFrTWFwLmdldChHKTtQZT9QZS5wdXNoKC4uLiRlKTp0aGlzLmZpbGVXZWFrTWFwLnNldChHLCRlKX0sIl9fb25UYm9keURyb3AiKTtoYW5kbGVSb3dDbGljayhELFQsRywkZSl7bGV0IFBlPXRoaXMuZ2V0Um93SWQoVCk7aWYodGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSIpe3RoaXMuc2VsZWN0ZWREYXRhUm93PVQsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGUsdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCk7cmV0dXJufWxldCBGZT1ELm1ldGFLZXl8fEQuY3RybEtleTtpZihELnNoaWZ0S2V5JiZ0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQhPT12b2lkIDApe3dpbmRvdy5nZXRTZWxlY3Rpb24/LigpPy5yZW1vdmVBbGxSYW5nZXMoKTtsZXQgVWU9JGUuZmluZEluZGV4KFhlPT50aGlzLmdldFJvd0lkKFhlKT09PXRoaXMuX19zZWxlY3Rpb25BbmNob3JJZCk7aWYoVWU+PTApe2xldFtYZSx3dF09VWU8PUc/W1VlLEddOltHLFVlXTt0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCk7Zm9yKGxldCBRZT1YZTtRZTw9d3Q7UWUrKyl0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKCRlW1FlXSkpfWVsc2UgdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGU7dGhpcy5zZWxlY3RlZERhdGFSb3c9VH1lbHNlIGlmKEZlKXtpZih0aGlzLnNlbGVjdGVkSWRzLmhhcyhQZSkpe2lmKHRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKFBlKSx0aGlzLnNlbGVjdGVkRGF0YVJvdz09PVQpe2xldCBYZT0kZS5maW5kKHd0PT50aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKHd0KSkpO3RoaXMuc2VsZWN0ZWREYXRhUm93PVhlfX1lbHNlIHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLnNlbGVjdGVkRGF0YVJvdz1UO3RoaXMuX19zZWxlY3Rpb25BbmNob3JJZD1QZX1lbHNlIHRoaXMuc2VsZWN0ZWREYXRhUm93PVQsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGU7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c2V0Um93U2VsZWN0ZWQoRCxUKXtsZXQgRz10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksVCYmdGhpcy5zZWxlY3RlZElkcy5hZGQoRykpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJihUP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKEcpOnRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKEcpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKXtsZXQgRD10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKEQubGVuZ3RoPT09MClyZXR1cm4hMTtmb3IobGV0IFQgb2YgRClpZighdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChUKSkpcmV0dXJuITE7cmV0dXJuITB9aXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpe2xldCBEPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoRC5sZW5ndGg9PT0wKXJldHVybiExO2xldCBUPTA7Zm9yKGxldCBHIG9mIEQpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChHKSkmJlQrKztyZXR1cm4gVD4wJiZUPEQubGVuZ3RofXNldFNlbGVjdFZpc2libGUoRCl7bGV0IFQ9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihEKWZvcihsZXQgRyBvZiBUKXRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRykpO2Vsc2UgZm9yKGxldCBHIG9mIFQpdGhpcy5zZWxlY3RlZElkcy5kZWxldGUodGhpcy5nZXRSb3dJZChHKSk7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9ZW1pdFNlbGVjdGlvbkNoYW5nZSgpe2xldCBEPUFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcyksVD10aGlzLmRhdGEuZmlsdGVyKEc9PnRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoRykpKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkSWRzOkQsc2VsZWN0ZWRSb3dzOlR9LGJ1YmJsZXM6ITB9KSl9Z2V0QWN0aW9uc0ZvclR5cGUoRCl7bGV0IFQ9W107Zm9yKGxldCBHIG9mIHRoaXMuZGF0YUFjdGlvbnMpRy50eXBlPy5pbmNsdWRlcyhEKSYmVC5wdXNoKEcpO3JldHVybiBUfV9faXNDb2x1bW5FZGl0YWJsZShEKXtyZXR1cm4hIShELmVkaXRhYmxlfHxELmVkaXRvcil9X19lZGl0YWJsZUNvbHVtbnMoRCl7cmV0dXJuIEQuZmlsdGVyKFQ9PiFULmhpZGRlbiYmdGhpcy5fX2lzQ29sdW1uRWRpdGFibGUoVCkpfXN0YXJ0RWRpdGluZyhELFQpe2lmKCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShUKSlyZXR1cm47bGV0IEc9dGhpcy5nZXRSb3dJZChEKSwkZT1TdHJpbmcoVC5rZXkpO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6Ryxjb2xLZXk6JGV9LHRoaXMuX19lZGl0aW5nQ2VsbD17cm93SWQ6Ryxjb2xLZXk6JGV9LHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBQZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LXRleHQsIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LCAuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC1kcm9wZG93biwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtZGF0ZXBpY2tlciwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyIpO1BlPy5mb2N1cz8uKCksUGU/LnRhZ05hbWU9PT0iREVFUy1JTlBVVC1EUk9QRE9XTiImJlBlLnVwZGF0ZUNvbXBsZXRlPy50aGVuKCgpPT5QZS50b2dnbGVTZWxlY3Rpb25Cb3g/LigpKX0pfWNhbmNlbENlbGxFZGl0KCl7dGhpcy5fX2VkaXRpbmdDZWxsPXZvaWQgMCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1jb21taXRDZWxsRWRpdChELFQsRyl7bGV0ICRlPVN0cmluZyhULmtleSksUGU9RFtULmtleV0sRmU9VC5wYXJzZT9ULnBhcnNlKEcsRCk6RztpZihULnZhbGlkYXRlKXtsZXQgVmU9VC52YWxpZGF0ZShGZSxEKTtpZih0eXBlb2YgVmU9PSJzdHJpbmciKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsRWRpdEVycm9yIix7ZGV0YWlsOntyb3c6RCxrZXk6JGUsdmFsdWU6RmUsbWVzc2FnZTpWZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKTtyZXR1cm59fUZlIT09UGUmJihEW1Qua2V5XT1GZSx0aGlzLl9fcmVjb3JkQ2VsbEluU25hcHNob3QoRCxUKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsRWRpdCIse2RldGFpbDp7cm93OkQsa2V5OiRlLG9sZFZhbHVlOlBlLG5ld1ZhbHVlOkZlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKSx0aGlzLl9fZWRpdGluZ0NlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpfV9fcmVjb3JkQ2VsbEluU25hcHNob3QoRCxUKXtpZih0aGlzLmhpZ2hsaWdodFVwZGF0ZXMhPT0iZmxhc2gifHwhdGhpcy5fX3ByZXZTbmFwc2hvdHx8IXRoaXMucm93S2V5KXJldHVybjtsZXQgRz10aGlzLmdldFJvd0lkKEQpLCRlPXRoaXMuX19wcmV2U25hcHNob3QuZ2V0KEcpOyRlfHwoJGU9bmV3IE1hcCx0aGlzLl9fcHJldlNuYXBzaG90LnNldChHLCRlKSksJGUuc2V0KFN0cmluZyhULmtleSksZDQoRCxULHRoaXMuZGlzcGxheUZ1bmN0aW9uKSl9cmVuZGVyQ2VsbEVkaXRvcihELFQpe2xldCBHPURbVC5rZXldLCRlPVQuZm9ybWF0P1QuZm9ybWF0KEcsRCk6RyxQZT1ULmVkaXRvcj8/InRleHQiLEZlPWkoVmU9PnRoaXMuY29tbWl0Q2VsbEVkaXQoRCxULFZlLnZhbHVlKSwib25UZXh0Q29tbWl0Iik7c3dpdGNoKFBlKXtjYXNlImNoZWNrYm94IjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgLnZhbHVlPSR7ISEkZX0KICAgICAgICAgIEBuZXdWYWx1ZT0ke1ZlPT57VmUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jb21taXRDZWxsRWRpdChELFQsVmUuZGV0YWlsKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5gO2Nhc2UiZHJvcGRvd24iOntsZXQgVmU9VC5lZGl0b3JPcHRpb25zPy5vcHRpb25zPz9bXSxVZT1WZS5maW5kKFhlPT5YZT09bnVsbD8hMTp0eXBlb2YgWGU9PSJzdHJpbmciP1hlPT09RzpYZS5rZXk9PT1HfHxYZS5vcHRpb249PT1HKT8/bnVsbDtyZXR1cm4gd2A8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLnZpbnRlZ3JhdGVkPSR7ITB9CiAgICAgICAgICAub3B0aW9ucz0ke1ZlfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7VWV9CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtYZT0+e1hlLnN0b3BQcm9wYWdhdGlvbigpO2xldCB3dD1YZS5kZXRhaWwsUWU9d3Q/Lm9wdGlvbj8/d3Q/LmtleT8/d3Q7dGhpcy5jb21taXRDZWxsRWRpdChELFQsUWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPmB9Y2FzZSJkYXRlIjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAudmFsdWU9JHskZX0KICAgICAgICAgIEBmb2N1c291dD0ke1ZlPT5GZShWZS50YXJnZXQpfQogICAgICAgICAgQGtleWRvd249JHtWZT0+dGhpcy5fX2hhbmRsZUVkaXRvcktleShWZSxELFQpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5gO2Nhc2UidGFncyI6cmV0dXJuIHdgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLnZhbHVlPSR7JGU/P1tdfQogICAgICAgICAgQGZvY3Vzb3V0PSR7VmU9PkZlKFZlLnRhcmdldCl9CiAgICAgICAgICBAa2V5ZG93bj0ke1ZlPT50aGlzLl9faGFuZGxlRWRpdG9yS2V5KFZlLEQsVCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPmA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmludGVncmF0ZWQ9JHshMH0KICAgICAgICAgIC52YWx1ZT0keyRlPT1udWxsPyIiOlN0cmluZygkZSl9CiAgICAgICAgICBAZm9jdXNvdXQ9JHtWZT0+RmUoVmUudGFyZ2V0KX0KICAgICAgICAgIEBrZXlkb3duPSR7VmU9PnRoaXMuX19oYW5kbGVFZGl0b3JLZXkoVmUsRCxUKX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+YH19X19oYW5kbGVFZGl0b3JLZXkoRCxULEcpe2lmKEQua2V5PT09IkVzY2FwZSIpRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jYW5jZWxDZWxsRWRpdCgpLHRoaXMuZm9jdXMoKTtlbHNlIGlmKEQua2V5PT09IkVudGVyIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoVCxHLCRlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLDEsITApfWVsc2UgaWYoRC5rZXk9PT0iVGFiIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoVCxHLCRlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbChELnNoaWZ0S2V5Py0xOjEsMCwhMCl9fW1vdmVGb2N1c2VkQ2VsbChELFQsRyl7bGV0ICRlPXRoaXMuX2xhc3RWaWV3RGF0YT8/W107aWYoJGUubGVuZ3RoPT09MClyZXR1cm47bGV0IFBlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksRmU9dGhpcy5fX2VkaXRhYmxlQ29sdW1ucyhQZSk7aWYoRmUubGVuZ3RoPT09MClyZXR1cm47bGV0IFZlPTAsVWU9MDtpZih0aGlzLl9fZm9jdXNlZENlbGwmJihWZT0kZS5maW5kSW5kZXgoUWU9PnRoaXMuZ2V0Um93SWQoUWUpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLnJvd0lkKSxVZT1GZS5maW5kSW5kZXgoUWU9PlN0cmluZyhRZS5rZXkpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLmNvbEtleSksVmU8MCYmKFZlPTApLFVlPDAmJihVZT0wKSksRCE9PTApe2ZvcihVZSs9RDtVZT49RmUubGVuZ3RoOylVZS09RmUubGVuZ3RoLFZlKz0xO2Zvcig7VWU8MDspVWUrPUZlLmxlbmd0aCxWZS09MX1pZihUIT09MCYmKFZlKz1UKSxWZTwwfHxWZT49JGUubGVuZ3RoKXt0aGlzLmNhbmNlbENlbGxFZGl0KCk7cmV0dXJufWxldCBYZT0kZVtWZV0sd3Q9RmVbVWVdO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChYZSksY29sS2V5OlN0cmluZyh3dC5rZXkpfSxHP3RoaXMuc3RhcnRFZGl0aW5nKFhlLHd0KTp0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7Q3QoYSx0KX19O3JldHVybiBwMT1hfSkoKX0pO3ZhciBIbnQ9ZygoKT0+e0ludCgpfSk7dmFyIEl2YSxBdmE9ZygoKT0+e3BlKCk7SXQoKTtJdmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5mb3JtLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDM1LjMlKSIsImhzbCgxNDIuMSA3MC42JSA2NS4zJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDQwLjYlKSIsImhzbCgwIDcyLjIlIDYwLjYlKSIpfTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIuZm9ybS1vdXRwdXQiKTtlJiZ0JiYoZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGFzeW5jIHI9PntsZXQgbj1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJGb3JtIHN1Ym1pdHRlZCB3aXRoIGRhdGE6IixuKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlByb2Nlc3NpbmcgeW91ciByZWdpc3RyYXRpb24uLi4iKSx0LmlubmVySFRNTD1gPHN0cm9uZz5TdWJtaXR0ZWQgRGF0YTo8L3N0cm9uZz4KJHtKU09OLnN0cmluZ2lmeShuLG51bGwsMil9YCxhd2FpdCBsdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnNldFN0YXR1cygic3VjY2VzcyIsIlJlZ2lzdHJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUucmVzZXQoKSx0LmlubmVySFRNTD0iPGVtPkZvcm0gaGFzIGJlZW4gcmVzZXQ8L2VtPiJ9KSksZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQsIGRlZXMtaW5wdXQtZHJvcGRvd24sIGRlZXMtaW5wdXQtY2hlY2tib3giKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLCgpPT57Y29uc29sZS5sb2coIkZpZWxkIGNoYW5nZWQ6IixyLmdldEF0dHJpYnV0ZSgia2V5IikpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkNvbXBsZXRlIEZvcm0gRXhhbXBsZSIgLmRlc2NyaXB0aW9uPSJBIGNvbXByZWhlbnNpdmUgZm9ybSB3aXRoIHZhcmlvdXMgaW5wdXQgdHlwZXMsIHZhbGlkYXRpb24sIGFuZCBmb3JtIHN1Ym1pc3Npb24gaGFuZGxpbmciPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZmlyc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9IkZpcnN0IE5hbWUiCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJZb3VyIGdpdmVuIG5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0ibGFzdE5hbWUiIAogICAgICAgICAgICBsYWJlbD0iTGFzdCBOYW1lIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZW1haWwiIAogICAgICAgICAgICBsYWJlbD0iRW1haWwgQWRkcmVzcyIKICAgICAgICAgICAgLmluZm9UZXh0PSR7IldlIHdpbGwgdXNlIHRoaXMgdG8gY29udGFjdCB5b3UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJjb3VudHJ5IgogICAgICAgICAgICAubGFiZWw9JHsiQ291bnRyeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifSx7b3B0aW9uOiJDYW5hZGEiLGtleToiY2EifSx7b3B0aW9uOiJHZXJtYW55IixrZXk6ImRlIn0se29wdGlvbjoiRnJhbmNlIixrZXk6ImZyIn0se29wdGlvbjoiVW5pdGVkIEtpbmdkb20iLGtleToidWsifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InBhc3N3b3JkIgogICAgICAgICAgICBsYWJlbD0iUGFzc3dvcmQiCiAgICAgICAgICAgIGlzUGFzc3dvcmRCb29sCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJNaW5pbXVtIDggY2hhcmFjdGVycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InRlcm1zIgogICAgICAgICAgICBsYWJlbD0iSSBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9Im5ld3NsZXR0ZXIiCiAgICAgICAgICAgIGxhYmVsPSJTZW5kIG1lIHByb21vdGlvbmFsIGVtYWlscyIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgQWNjb3VudDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLW91dHB1dCI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgY29sbGVjdGVkIGRhdGEuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpO2UmJihjb25zb2xlLmxvZygiSG9yaXpvbnRhbCBmb3JtIGxheW91dCBhY3RpdmUiKSxlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoYT0+e2xldCByPWEuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZpbHRlciBhcHBsaWVkOiIscik7bGV0IG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMTtjb25zb2xlLmxvZyhgRm91bmQgJHtufSByZXN1bHRzIHdpdGggZmlsdGVyczpgLHIpfSkpLGUucXVlcnlTZWxlY3RvckFsbCgiW2tleV0iKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGFzeW5jKCk9PntsZXQgcj1hd2FpdCBlLmNvbGxlY3RGb3JtRGF0YSgpO2NvbnNvbGUubG9nKCJMaXZlIGZpbHRlciB1cGRhdGU6IixyKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJIb3Jpem9udGFsIEZvcm0gTGF5b3V0IiAuZGVzY3JpcHRpb249IkNvbXBhY3QgZm9ybSB3aXRoIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgLSBwZXJmZWN0IGZvciBmaWx0ZXJzIGFuZCBxdWljayBmb3JtcyI+CiAgICAgICAgPGRlZXMtZm9ybSBob3Jpem9udGFsLWxheW91dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGtleT0ic2VhcmNoIiAKICAgICAgICAgICAgbGFiZWw9IlNlYXJjaCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIGtleXdvcmRzLi4uIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9ImNhdGVnb3J5IgogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFsbCIsa2V5OiJhbGwifSx7b3B0aW9uOiJQcm9kdWN0cyIsa2V5OiJwcm9kdWN0cyJ9LHtvcHRpb246IlNlcnZpY2VzIixrZXk6InNlcnZpY2VzIn0se29wdGlvbjoiU3VwcG9ydCIsa2V5OiJzdXBwb3J0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJzb3J0IgogICAgICAgICAgICAubGFiZWw9JHsiU29ydCBCeSJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTmV3ZXN0IixrZXk6Im5ld2VzdCJ9LHtvcHRpb246IlBvcHVsYXIiLGtleToicG9wdWxhciJ9LHtvcHRpb246IlByaWNlOiBMb3cgdG8gSGlnaCIsa2V5OiJwcmljZV9hc2MifSx7b3B0aW9uOiJQcmljZTogSGlnaCB0byBMb3ciLGtleToicHJpY2VfZGVzYyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIGtleT0iaW5TdG9jayIKICAgICAgICAgICAgbGFiZWw9IkluIFN0b2NrIE9ubHkiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PXMucXVlcnlTZWxlY3RvcigiI3N0YXR1cy1kaXNwbGF5Iik7aWYoZSl7ZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGFzeW5jIHI9PntsZXQgbj1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJBZHZhbmNlZCBmb3JtIGRhdGE6IixuKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlZhbGlkYXRpbmcgeW91ciBpbmZvcm1hdGlvbi4uLiIpLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigxNTAwKSxuLmliYW4mJm4uaWJhbi5sZW5ndGg+MTU/KGUuc2V0U3RhdHVzKCJzdWNjZXNzIiwiQXBwbGljYXRpb24gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseSEiKSx0JiYodC5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIHN1Y2Nlc3MiLHQudGV4dENvbnRlbnQ9Ilx1MjcxMyBZb3VyIGFwcGxpY2F0aW9uIGhhcyBiZWVuIHN1Ym1pdHRlZC4gV2Ugd2lsbCBjb250YWN0IHlvdSBzb29uLiIpKTooZS5zZXRTdGF0dXMoImVycm9yIiwiUGxlYXNlIGNoZWNrIHlvdXIgSUJBTiIpLHQmJih0LmNsYXNzTmFtZT0ic3RhdHVzLW1lc3NhZ2UgZXJyb3IiLHQudGV4dENvbnRlbnQ9Ilx1MjcxNyBJbnZhbGlkIElCQU4gZm9ybWF0LiBQbGVhc2UgY2hlY2sgYW5kIHRyeSBhZ2Fpbi4iKSksY29uc29sZS5sb2coIkZvcm0gZGF0YSBsb2dnZWQ6IixuKX0pKTtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57bGV0IG49ci5kZXRhaWw/LmZpbGVzfHxbXTtjb25zb2xlLmxvZyhgJHtuLmxlbmd0aH0gZmlsZShzKSBzZWxlY3RlZCBmb3IgdXBsb2FkYCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkFkdmFuY2VkIEZvcm0gRmVhdHVyZXMiIC5kZXNjcmlwdGlvbj0iRm9ybSB3aXRoIHNwZWNpYWxpemVkIGlucHV0IHR5cGVzIGFuZCBjb21wbGV4IHZhbGlkYXRpb24iPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICBrZXk9ImliYW4iCiAgICAgICAgICAgIGxhYmVsPSJJQkFOIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAga2V5PSJwaG9uZSIKICAgICAgICAgICAgbGFiZWw9IlBob25lIE51bWJlciIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICBrZXk9InByZWZlcmVuY2VzIgogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVtYWlsIiwiU01TIiwiUHVzaCIsIkluLUFwcCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGlzZWxlY3QKICAgICAgICAgICAga2V5PSJpbnRlcmVzdHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJBcmVhcyBvZiBJbnRlcmVzdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlRlY2hub2xvZ3kiLGtleToidGVjaCJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJCdXNpbmVzcyIsa2V5OiJidXNpbmVzcyJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGlzZWxlY3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAga2V5PSJkb2N1bWVudHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJVcGxvYWQgRG9jdW1lbnRzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlBERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic3RhdHVzLWRpc3BsYXkiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgTnZhLHFudCxSdmEscmVzLHl4PWcoKCk9PntwZSgpO2t0KCk7TDFlKCk7SG90KCk7QTFlKCk7bzQoKTtab3QoKTtOMWUoKTtSMWUoKTtpbnQoKTtvbnQoKTtsbnQoKTtkbnQoKTtobnQoKTtnbnQoKTt2bnQoKTt5bnQoKTtZMWUoKTtYMWUoKTtXZygpO0hudCgpO0F2YSgpO052YT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0scW50PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxSdmE9W09vdCxCb3QsVW90LHRudCxzbnQscm50LG5udCxjbnQsWW90LFhvdCxXb3QscG50LG1udCxibnQseG50LFoxZSxQbnQsQm50XSxyZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWZvcm0iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0Zvcm0iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6Imhvcml6b250YWwtbGF5b3V0In0pXSxOdmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJob3Jpem9udGFsTGF5b3V0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJob3Jpem9udGFsTGF5b3V0ImluIHUsImhhcyIpLGdldDppKHU9PnUuaG9yaXpvbnRhbExheW91dCwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1Lmhvcml6b250YWxMYXlvdXQ9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLE52YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPUl2YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZvcm0iXTtuYW1lPSJteWZvcm0iO2NoYW5nZVN1YmplY3Q9bmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0O3JlYWR5RGVmZXJyZWQ9dXQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9cW50KHRoaXMsbywhMSk7Z2V0IGhvcml6b250YWxMYXlvdXQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaG9yaXpvbnRhbExheW91dChkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtob3Jpem9udGFsLWxheW91dF0pIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpLHRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCk7Zm9yKGxldCB1IG9mIGQpdS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShhc3luYygpPT57bGV0IGM9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKTt0aGlzLmNoYW5nZVN1YmplY3QubmV4dChjKSxjb25zb2xlLmxvZyhjKSx0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl9KTthd2FpdCB0aGlzLmFkZEJlaGF2aW91cnMoKSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWdldEZvcm1FbGVtZW50cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maWx0ZXIoZD0+UnZhLmluY2x1ZGVzKGQuY29uc3RydWN0b3IpKX1nZXRTdWJtaXRCdXR0b24oKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSkuZmluZChkPT5kIGluc3RhbmNlb2YgUW90KX1hc3luYyB1cGRhdGVSZXF1aXJlZFN0YXR1cygpe2NvbnNvbGUubG9nKCJjaGVja2luZyB0aGUgcmVxdWlyZWQgc3RhdHVzLiIpO2xldCBkPSEwO2ZvcihsZXQgYyBvZiB0aGlzLmdldEZvcm1FbGVtZW50cygpKWMucmVxdWlyZWQmJiFjLnZhbHVlJiYoZD0hMSk7bGV0IHU9dGhpcy5nZXRTdWJtaXRCdXR0b24oKTt1JiYodS5kaXNhYmxlZD0hZCl9YXN5bmMgY29sbGVjdEZvcm1EYXRhKCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSx1PXt9O2ZvcihsZXQgYyBvZiBkKXtpZighYy5rZXkpe2NvbnNvbGUubG9nKGBmb3JtIGVsZW1lbnQgd2l0aCBsYWJlbCAiJHtjLmxhYmVsfSIgaGFzIG5vIGtleS4gc2tpcHBpbmcuYCk7Y29udGludWV9dVtjLmtleV09Yy52YWx1ZX1yZXR1cm4gdX1hc3luYyBnYXRoZXJBbmREaXNwYXRjaCgpe2xldCBkPWF3YWl0IHRoaXMuY29sbGVjdEZvcm1EYXRhKCksdT1uZXcgQ3VzdG9tRXZlbnQoImZvcm1EYXRhIix7ZGV0YWlsOntkYXRhOmR9LGJ1YmJsZXM6ITB9KTt0aGlzLmRpc3BhdGNoRXZlbnQodSksY29uc29sZS5sb2coImRpc3BhdGNoZWQgZGF0YToiKSxjb25zb2xlLmxvZyhkKX1zZXRTdGF0dXMoZCx1KXtsZXQgYz10aGlzLmdldEZvcm1FbGVtZW50cygpLGI9dGhpcy5nZXRTdWJtaXRCdXR0b24oKTtpZihiKXtzd2l0Y2goZCl7Y2FzZSJub3JtYWwiOmIuZGlzYWJsZWQ9ITEsYi5zdGF0dXM9Im5vcm1hbCI7Zm9yKGxldCB2IG9mIGMpdi5kaXNhYmxlZD0hMTticmVhaztjYXNlInBlbmRpbmciOmIuZGlzYWJsZWQ9ITAsYi5zdGF0dXM9InBlbmRpbmciO2ZvcihsZXQgdiBvZiBjKXYuZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJzdWNjZXNzIjpiLmRpc2FibGVkPSEwLGIuc3RhdHVzPSJzdWNjZXNzIjtmb3IobGV0IHYgb2YgYyl2LmRpc2FibGVkPSEwO2JyZWFrO2Nhc2UiZXJyb3IiOmIuZGlzYWJsZWQ9ITAsYi5zdGF0dXM9ImVycm9yIjtmb3IobGV0IHYgb2YgYyl2LmRpc2FibGVkPSEwO2JyZWFrfWIudGV4dD11fX1yZXNldCgpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCB1IG9mIGQpdS52YWx1ZT1udWxsO3RoaXMuc2V0U3RhdHVzKCJub3JtYWwiLCJTdWJtaXQiKX1hc3luYyBhZGRCZWhhdmlvdXJzKCl7dGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixkPT57bGV0IHU9ZC50YXJnZXQ7aWYoUnZhLmluY2x1ZGVzKHUuY29uc3RydWN0b3IpJiZkLmtleT09PSJFbnRlciIpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksYj1jLmluZGV4T2YodSk7YjxjLmxlbmd0aC0xP2NbYisxXS5mb2N1cygpOih1LmJsdXIoKSx0aGlzLmdldFN1Ym1pdEJ1dHRvbigpPy5mb2N1cygpKX19KX11cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKXtsZXQgZD10aGlzLmdldEZvcm1FbGVtZW50cygpO2ZvcihsZXQgdSBvZiBkKSJsYXlvdXRNb2RlImluIHUmJih1LmxheW91dE1vZGU9ImF1dG8iKX11cGRhdGVkKGQpe3N1cGVyLnVwZGF0ZWQoZCksZC5oYXMoImhvcml6b250YWxMYXlvdXQiKSYmdGhpcy51cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscW50KHRoaXMsbCl9c3RhdGlje3FudChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgT3ZhLEZ2YT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7eXgoKTtXZygpO280KCk7R2EoKTtPdmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAudmVydGljYWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmljb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXNuaXBwZXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgYT10LmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiB2YXJpYW50IGNsaWNrZWQ6ICR7YX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJ1dHRvbiBWYXJpYW50cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPk91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5HaG9zdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibGluayI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXQuZ2V0QXR0cmlidXRlKCJzaXplIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7YX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIEJ1dHRvbiBTaXplcyJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBzaXplcyBmb3IgZGlmZmVyZW50IGNvbnRleHRzIGFuZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIj5TbWFsbCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiPkRlZmF1bHQgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciPkxhcmdlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgLnRleHQ9JHsiXHV7MUY2ODB9In0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iIHR5cGU9InNlY29uZGFyeSI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0IiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVmYXVsdCBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciIHR5cGU9Im91dGxpbmUiPkxhcmdlIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7aWYoYSl7bGV0IHI9YS5nZXRBdHRyaWJ1dGUoImljb25GQSIpfHwidW5rbm93biI7Y29uc29sZS5sb2coYEljb24gYnV0dG9uIGNsaWNrZWQ6ICR7cn1gKX19KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBCdXR0b25zIHdpdGggSWNvbnMifSAuc3VidGl0bGU9JHsiQ29tYmluaW5nIGljb25zIHdpdGggdGV4dCBmb3IgZW5oYW5jZWQgdmlzdWFsIGNvbW11bmljYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEFkZCBJdGVtCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBTZXR0aW5ncwogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRMZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQmFjawogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIE5leHQKICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgYT10LmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwibm9uZSIscj10LmdldEF0dHJpYnV0ZSgiaWNvblBvc2l0aW9uIil8fCJsZWZ0Ijtjb25zb2xlLmxvZyhgSWNvbiBwcm9wZXJ0eSBidXR0b246IGljb249JHthfSwgcG9zaXRpb249JHtyfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gSWNvbnMgdmlhIFByb3BlcnR5In0gLnN1YnRpdGxlPSR7IlNpbXBsaWZpZWQgaWNvbiBzeW50YXggdXNpbmcgdGhlIGljb24gcHJvcGVydHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyI+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+RGVsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPkRvd25sb2FkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iIGljb249ImZhOmdlYXIiPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRMZWZ0Ij5CYWNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0IiBpY29uPSJmYTpwbHVzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSIgaWNvbj0ibHVjaWRlOlNldHRpbmdzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyImZ3Q7QWRkIEl0ZW0mbHQ7L2RlZXMtYnV0dG9uJmd0Ozxicj4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiJmd0O05leHQmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InBlbmRpbmciXScpLHQ9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InN1Y2Nlc3MiXScpLGE9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9ImVycm9yIl0nKTtlJiZzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlBlbmRpbmcgYnV0dG9uIGlzIHNob3dpbmcgbG9hZGluZyBzdGF0ZSIpfSwxZTMpLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU3VjY2VzcyBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJ1dHRvbiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyB0byBpbmRpY2F0ZSBidXR0b24gc3RhdHVzIGFuZCBsb2FkaW5nIGNvbmRpdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ibm9ybWFsIj5Ob3JtYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0icGVuZGluZyI+UHJvY2Vzc2luZy4uLjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJzdWNjZXNzIj5TdWNjZXNzITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJlcnJvciI+RXJyb3IhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBkaXNhYmxlZD5EaXNhYmxlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJzbSI+U21hbGwgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc3RhdHVzPSJwZW5kaW5nIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzdGF0dXM9InBlbmRpbmciIHNpemU9ImxnIj5MYXJnZSBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCIjY2xpY2stb3V0cHV0IiksdD1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUiKSxhPXMucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxyPXMucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZGVzdHJ1Y3RpdmUiXScpO3QmJmUmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntlLnRleHRDb250ZW50PWBDbGlja2VkOiBEZWZhdWx0IGJ1dHRvbiBhdCAke25ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9YH0pLGEmJmUmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsbj0+e2UudGV4dENvbnRlbnQ9YENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke24uZGV0YWlsLmRhdGF9YH0pLHImJmUmJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsYXN5bmMoKT0+e2UudGV4dENvbnRlbnQ9IlByb2Nlc3NpbmcuLi4iLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUudGV4dENvbnRlbnQ9IkFjdGlvbiBjb21wbGV0ZWQhIn0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBleGFtcGxlcyB3aXRoIGNsaWNrIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiAuZXZlbnREZXRhaWxEYXRhPSR7ImN1c3RvbS1kYXRhLTEyMyJ9PgogICAgICAgICAgICBDbGljayB3aXRoIERhdGEKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkFzeW5jIEFjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iY2xpY2stb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPkNsaWNrIGEgYnV0dG9uIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PXMucXVlcnlTZWxlY3RvcigiI2Zvcm0tb3V0cHV0Iik7ZSYmdCYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsbj0+e3QuaW5uZXJIVE1MPSI8c3Ryb25nPkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YTo8L3N0cm9uZz48YnI+IitKU09OLnN0cmluZ2lmeShuLmRldGFpbC5kYXRhLG51bGwsMil9KTtsZXQgYT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJykscj1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9Imdob3N0Il0nKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlNhdmUgRHJhZnQgY2xpY2tlZCIpfSksciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJDYW5jZWwgY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTWVzc2FnZSIga2V5PSJtZXNzYWdlIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2F2ZSBEcmFmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkNhbmNlbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJmb3JtLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHQ9PntsZXQgYT10LmdldEF0dHJpYnV0ZSgidHlwZSIpO2EmJmNvbnNvbGUubG9nKGBMZWdhY3kgdHlwZSAiJHthfSIgaXMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSJ9IC5zdWJ0aXRsZT0keyJPbGQgYnV0dG9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byBuZXcgdmFyaWFudHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im5vcm1hbCI+Tm9ybWFsIOKGkiBEZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+SGlnaGxpZ2h0ZWQg4oaSIERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkaXNjcmVldCI+RGlzY3JlZXQg4oaSIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImJpZyI+QmlnIOKGkiBMYXJnZSBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsiPgogICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMF0sdD1zLnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzFdO2UmJmUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChyLG4pPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBvPVsiU2F2ZSBDaGFuZ2VzIiwiRGlzY2FyZCIsIkhlbHAiXVtuXTtjb25zb2xlLmxvZyhgQWN0aW9uIGdyb3VwOiAke299IGNsaWNrZWRgKX0pfSksdCYmdC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKHIsbik9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG89WyJEZWxldGUgQWNjb3VudCIsIkFyY2hpdmUgRGF0YSIsIk5vdCBBdmFpbGFibGUiXVtuXTtuIT09MiYmY29uc29sZS5sb2coYERhbmdlciB6b25lOiAke299IGNsaWNrZWRgKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEFkdmFuY2VkIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5BY3Rpb24gR3JvdXA8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNhdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIFNhdmUgQ2hhbmdlcwogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VW5kbzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVscENpcmNsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgSGVscAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5EYW5nZXIgWm9uZTwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIGljb249Imx1Y2lkZTpTYXZlIiBAY2xpY2tlZD0iXCR7aGFuZGxlQ2xpY2t9IiZndDs8YnI+CiAgICAgICAgICAgICZuYnNwOyZuYnNwO1NhdmUgQ2hhbmdlczxicj4KICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgRDIsYnIsb2VzLEhnPWcoKCk9PntwZSgpO2t0KCk7RnZhKCk7aHQoKTtEMj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sYnI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG9lcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtYnV0dG9uIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W107dmFyIG1lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7cmVmbGVjdDohMCxoYXNDaGFuZ2VkKCl7cmV0dXJuITB9fSldLHA9W0woKV0sYz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6U3RyaW5nfSldLE49W0woe3R5cGU6U3RyaW5nfSldLE89W0woe3R5cGU6U3RyaW5nfSldLEg9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLEk9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sSz1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxEMih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InRleHQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS50ZXh0LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnRleHQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbyxsKSxEMih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50RGV0YWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iZXZlbnREZXRhaWxEYXRhImluIFUsImhhcyIpLGdldDppKFU9PlUuZXZlbnREZXRhaWxEYXRhLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmV2ZW50RGV0YWlsRGF0YT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxkLHUpLEQyKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImRpc2FibGVkImluIFUsImhhcyIpLGdldDppKFU9PlUuZGlzYWJsZWQsImdldCIpLHNldDppKChVLGhlKT0+e1UuZGlzYWJsZWQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sYix2KSxEMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSGlkZGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJpc0hpZGRlbiJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmlzSGlkZGVuLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmlzSGlkZGVuPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG0sZiksRDIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0eXBlImluIFUsImhhcyIpLGdldDppKFU9PlUudHlwZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50eXBlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE0seiksRDIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJzaXplImluIFUsImhhcyIpLGdldDppKFU9PlUuc2l6ZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zaXplPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LEMsXyksRDIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InN0YXR1cyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnN0YXR1cywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zdGF0dXM9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sJCxFKSxEMih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imluc2lkZUZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Imluc2lkZUZvcm0iaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5pbnNpZGVGb3JtLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmluc2lkZUZvcm09aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sayxTKSxEMih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Imljb24iaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5pY29uLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmljb249aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sUCxSKSxEMih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaWNvblBvc2l0aW9uImluIFUsImhhcyIpLGdldDppKFU9PlUuaWNvblBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmljb25Qb3NpdGlvbj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxWLFcpLEQyKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsdCksbWU9YT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfXN0YXRpYyBkZW1vPU92YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPWJyKHRoaXMsbyx2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoQil7dGhpcy4jZT1CfSN0PShicih0aGlzLGwpLGJyKHRoaXMsZCx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShCKXt0aGlzLiN0PUJ9I2E9KGJyKHRoaXMsdSksYnIodGhpcyxiLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpc2FibGVkKEIpe3RoaXMuI2E9Qn0jcz0oYnIodGhpcyx2KSxicih0aGlzLG0sITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNIaWRkZW4oQil7dGhpcy4jcz1CfSNpPShicih0aGlzLGYpLGJyKHRoaXMsTSwiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNpfXNldCB0eXBlKEIpe3RoaXMuI2k9Qn0jcj0oYnIodGhpcyx6KSxicih0aGlzLEMsImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2l6ZShCKXt0aGlzLiNyPUJ9I289KGJyKHRoaXMsXyksYnIodGhpcywkLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNvfXNldCBzdGF0dXMoQil7dGhpcy4jbz1CfSNuPShicih0aGlzLEUpLGJyKHRoaXMsaywhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI259c2V0IGluc2lkZUZvcm0oQil7dGhpcy4jbj1CfSNsPShicih0aGlzLFMpLGJyKHRoaXMsUCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNsfXNldCBpY29uKEIpe3RoaXMuI2w9Qn0jYz0oYnIodGhpcyxSKSxicih0aGlzLFYsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNjfXNldCBpY29uUG9zaXRpb24oQil7dGhpcy4jYz1CfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxicih0aGlzLFcpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogRm9ybSBzcGFjaW5nIHN0eWxlcyAqLwogICAgICA6aG9zdChbaW5zaWRlLWZvcm1dKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXTpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dKSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1yaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLWZvcm1baG9yaXpvbnRhbC1sYXlvdXRdIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgICAgfQoKICAgICAgLmJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogU2l6ZSB2YXJpYW50cyAqLwogICAgICAuYnV0dG9uLnNpemUtZGVmYXVsdCB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1zbSB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1sZyB7CiAgICAgICAgaGVpZ2h0OiA0NHB4OwogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1pY29uIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgICB9CgogICAgICAuYnV0dG9uLmRlZmF1bHQ6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDEwLjIlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDklKSIpfTsKICAgICAgfQoKICAgICAgLyogRGVzdHJ1Y3RpdmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDk4JSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDU2LjIlKTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDUyLjIlKTsKICAgICAgfQoKICAgICAgLyogT3V0bGluZSB2YXJpYW50ICovCiAgICAgIC5idXR0b24ub3V0bGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLm91dGxpbmU6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMjYuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLm91dGxpbmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBTZWNvbmRhcnkgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICB9CgogICAgICAvKiBHaG9zdCB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZ2hvc3QgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5naG9zdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxMy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExpbmsgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmxpbmsgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24ubGluazpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBzdGF0ZXMgKi8KICAgICAgLmJ1dHRvbi5wZW5kaW5nLAogICAgICAuYnV0dG9uLnN1Y2Nlc3MsCiAgICAgIC5idXR0b24uZXJyb3IgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmctbGVmdDogMzZweDsgLyogU3BhY2UgZm9yIHNwaW5uZXIgKi8KICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc2l6ZS1zbS5zdWNjZXNzLAogICAgICAuYnV0dG9uLnNpemUtc20uZXJyb3IgewogICAgICAgIHBhZGRpbmctbGVmdDogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLWxnLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc2l6ZS1sZy5zdWNjZXNzLAogICAgICAuYnV0dG9uLnNpemUtbGcuZXJyb3IgewogICAgICAgIHBhZGRpbmctbGVmdDogNDRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNjIuOCUgNzAuNiUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCA2Mi44JSA3MC42JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIC5idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBIaWRkZW4gc3RhdGUgKi8KICAgICAgLmJ1dHRvbi5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlICovCiAgICAgIC5idXR0b246Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgICB9CgogICAgICAvKiBMb2FkaW5nIHNwaW5uZXIgKi8KICAgICAgZGVlcy1zcGlubmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTBweDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbSBkZWVzLXNwaW5uZXIgewogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZyBkZWVzLXNwaW5uZXIgewogICAgICAgIGxlZnQ6IDE0cHg7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBJY29uIHNpemluZyB3aXRoaW4gYnV0dG9ucyAqLwogICAgICAuYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZyBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQoKICAgICAgLyogVGV4dCBhbGlnbm1lbnQgKi8KICAgICAgLnRleHRib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgIGBdO2V4dHJhY3RMaWdodERvbSgpe2xldCBCPXRoaXMucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIiksVT1BcnJheS5mcm9tKHRoaXMuY2hpbGROb2RlcykuZmlsdGVyKGhlPT5oZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKS5tYXAoaGU9PmhlLnRleHRDb250ZW50Py50cmltKCkpLmZpbHRlcihCb29sZWFuKS5qb2luKCIgIik7aWYoVSYmIXRoaXMudGV4dCYmKHRoaXMudGV4dD1VKSxCKXtsZXQgaGU9Qi5pY29ufHxCLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwoQi5pY29uRkE/YGZhOiR7Qi5pY29uRkF9YDpudWxsKTtpZihoZSl7bGV0IEY9QXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMpLGo9Ri5pbmRleE9mKEIpLHVlPUYuZmlsdGVyKGxlPT5sZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZsZS50ZXh0Q29udGVudD8udHJpbSgpKTtpZih1ZS5sZW5ndGg+MCl7bGV0IGxlPUYuaW5kZXhPZih1ZVswXSk7dGhpcy5pY29uUG9zaXRpb249ajxsZT8ibGVmdCI6InJpZ2h0In10aGlzLmljb249aGV9Qi5yZW1vdmUoKX10aGlzLmlubmVySFRNTD0iIn1yZW5kZXIoKXtsZXQgVT17bm9ybWFsOiJkZWZhdWx0IixoaWdobGlnaHRlZDoiZGVzdHJ1Y3RpdmUiLGRpc2NyZWV0OiJvdXRsaW5lIixiaWc6ImRlZmF1bHQifVt0aGlzLnR5cGVdfHx0aGlzLnR5cGUsaGU9dGhpcy50eXBlPT09ImJpZyI/ImxnIjp0aGlzLnNpemUsRj10aGlzLmljb25Qb3NpdGlvbj09PSJsZWZ0IiYmdGhpcy5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIixqPXRoaXMuaWNvblBvc2l0aW9uPT09InJpZ2h0IiYmdGhpcy5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIix1ZT1oZT09PSJpY29uIiYmdGhpcy5pY29uO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJ1dHRvbiAke3RoaXMuaXNIaWRkZW4/ImhpZGRlbiI6IiJ9ICR7VX0gc2l6ZS0ke2hlfSAke3RoaXMuc3RhdHVzfSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIke3RoaXMuZGlzcGF0Y2hDbGlja30iCiAgICAgID4KICAgICAgICAke3RoaXMuc3RhdHVzPT09Im5vcm1hbCI/d2BgOndgCiAgICAgICAgICA8ZGVlcy1zcGlubmVyCiAgICAgICAgICAgIC5ibnc9JHshMH0KICAgICAgICAgICAgc3RhdHVzPSIke3RoaXMuc3RhdHVzfSIKICAgICAgICAgICAgc2l6ZT0iJHtoZT09PSJzbSI/MTQ6aGU9PT0ibGciPzE4OjE2fSIKICAgICAgICAgID48L2RlZXMtc3Bpbm5lcj4KICAgICAgICBgfQogICAgICAgICR7Rn0KICAgICAgICAke3VlPyIiOndgPGRpdiBjbGFzcz0idGV4dGJveCI+JHt0aGlzLnRleHR8fCJCdXR0b24ifTwvZGl2PmB9CiAgICAgICAgJHtqfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZGlzcGF0Y2hDbGljaygpe3RoaXMuZGlzYWJsZWR8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrZWQiLHtkZXRhaWw6e2RhdGE6dGhpcy5ldmVudERldGFpbERhdGF9LGJ1YmJsZXM6ITB9KSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5leHRyYWN0TGlnaHREb20oKX1zdGF0aWN7YnIoYSx0KX19O3JldHVybiBtZT1hfSkoKX0pO3ZhciB1NCxabixuZXMsSjFlPWcoKCk9PnthYmEoKTt2bygpO0VyKCk7cGUoKTtHYSgpO2ZyKCk7SGcoKTtodCgpO21yKCk7dTQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFpuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxuZXM9KCgpPT57bGV0IHM9W3ZiKCksbmUoImRlZXMtc3RhdHNncmlkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTdGF0c0dyaWQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6TnVtYmVyfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6QXJyYXl9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sdTQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGlsZXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50aWxlcywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRpbGVzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSx1NCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblRpbGVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibWluVGlsZVdpZHRoImluIFMsImhhcyIpLGdldDppKFM9PlMubWluVGlsZVdpZHRoLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MubWluVGlsZVdpZHRoPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSx1NCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZ2FwImluIFMsImhhcyIpLGdldDppKFM9PlMuZ2FwLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZ2FwPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSx1NCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdyaWRBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJncmlkQWN0aW9ucyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmdyaWRBY3Rpb25zLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZ3JpZEFjdGlvbnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLHU0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjb250ZXh0TWVudVZpc2libGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jb250ZXh0TWVudVZpc2libGUsImdldCIpLHNldDppKChTLEkpPT57Uy5jb250ZXh0TWVudVZpc2libGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLHU0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY29udGV4dE1lbnVQb3NpdGlvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNvbnRleHRNZW51UG9zaXRpb24sImdldCIpLHNldDppKChTLEkpPT57Uy5jb250ZXh0TWVudVBvc2l0aW9uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSx1NCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRleHRNZW51QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY29udGV4dE1lbnVBY3Rpb25zImluIFMsImhhcyIpLGdldDppKFM9PlMuY29udGV4dE1lbnVBY3Rpb25zLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY29udGV4dE1lbnVBY3Rpb25zPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSx1NChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXRiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPVpuKHRoaXMsbyxbXSk7Z2V0IHRpbGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpbGVzKGspe3RoaXMuI2U9a30jdD0oWm4odGhpcyxsKSxabih0aGlzLGQsMjUwKSk7Z2V0IG1pblRpbGVXaWR0aCgpe3JldHVybiB0aGlzLiN0fXNldCBtaW5UaWxlV2lkdGgoayl7dGhpcy4jdD1rfSNhPShabih0aGlzLHUpLFpuKHRoaXMsYiwxNikpO2dldCBnYXAoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZ2FwKGspe3RoaXMuI2E9a30jcz0oWm4odGhpcyx2KSxabih0aGlzLG0sW10pKTtnZXQgZ3JpZEFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgZ3JpZEFjdGlvbnMoayl7dGhpcy4jcz1rfSNpPShabih0aGlzLGYpLFpuKHRoaXMsTSwhMSkpO2dldCBjb250ZXh0TWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29udGV4dE1lbnVWaXNpYmxlKGspe3RoaXMuI2k9a30jcj0oWm4odGhpcyx6KSxabih0aGlzLEMse3g6MCx5OjB9KSk7Z2V0IGNvbnRleHRNZW51UG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGV4dE1lbnVQb3NpdGlvbihrKXt0aGlzLiNyPWt9I289KFpuKHRoaXMsXyksWm4odGhpcywkLFtdKSk7Z2V0IGNvbnRleHRNZW51QWN0aW9ucygpe3JldHVybiB0aGlzLiNvfXNldCBjb250ZXh0TWVudUFjdGlvbnMoayl7dGhpcy4jbz1rfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICB9CgogICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHNpemluZyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1ncmlkLWdhcDogMTJweDsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTZweDsKICAgICAgICAtLWhlYWRlci1zcGFjaW5nOiAxMnB4OwogICAgICAgIC0tY29udGVudC1taW4taGVpZ2h0OiA0MHB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyNnB4OwogICAgICAgIC0tdW5pdC1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1sYWJlbC1mb250LXNpemU6IDEycHg7CiAgICAgICAgLS10aXRsZS1mb250LXNpemU6IDEzcHg7CiAgICAgICAgLS1kZXNjcmlwdGlvbi1zcGFjaW5nOiA4cHg7CiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsKICAgICAgfQoKICAgICAgLyogR3JpZCBMYXlvdXQgKi8KICAgICAgLmdyaWQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ3JpZC1nYXApICogMS41KTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JpZC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICB9CgogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7YWEoMjUwKX1weCwgMWZyKSk7CiAgICAgICAgZ2FwOiAke2FhKDE2KX1weDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogVGlsZSBCYXNlIFN0eWxlcyDigJQgZnJhbWUgcHJvdmlkZWQgYnkgZGVlcy10aWxlLCBob3ZlciB2aWEgOjpwYXJ0ICovCiAgICAgIC5zdGF0cy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAzKSIsInJnYmEoMCwwLDAsMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgSGVhZGVyIOKAlCBzbG90dGVkIGludG8gZGVlcy10aWxlIGhlYWRlciAqLwogICAgICAudGlsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGl0bGUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAudGlsZS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUaWxlIENvbnRlbnQg4oCUIHNsb3R0ZWQgaW50byBkZWVzLXRpbGUgY29udGVudCBhcmVhICovCiAgICAgIC50aWxlLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRlbnQtbWluLWhlaWdodCk7CiAgICAgIH0KCiAgICAgIC50aWxlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudGlsZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudGlsZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIEdhdWdlIFN0eWxlcyAqLwogICAgICAuZ2F1Z2Utd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuZ2F1Z2UtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTIwcHg7CiAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4OwogICAgICB9CgogICAgICAuZ2F1Z2Utc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1iYWNrZ3JvdW5kIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2OwogICAgICB9CgogICAgICAuZ2F1Z2UtZmlsbCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdhdWdlLXRleHQgewogICAgICAgIGZpbGw6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbmNob3I6IG1pZGRsZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5nYXVnZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmaWxsOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICB9CgogICAgICAvKiBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAucGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAvKiBNdWx0aSBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAubXVsdGktcGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLyogQ1BVIENvcmVzIFN0eWxlcyAqLwogICAgICAuY3B1LWNvcmVzLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGdhcDogM3B4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1iYXJzLmNlbnRlcmVkIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiA2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci13cmFwcGVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubG93IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLm1lZGl1bSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZyk7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5oaWdoIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogUGFydGl0aW9uIFN0eWxlcyAqLwogICAgICAucGFydGl0aW9uLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tcGVyY2VudGFnZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXdhcm5pbmcpOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1maWxlc3lzdGVtIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbW91bnRwb2ludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNrIFN0eWxlcyAqLwogICAgICAuZGlzay13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpc2stY2FwYWNpdHkgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5kaXNrLW1vZGVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZGlzay10eXBlLWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmRpc2stbWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC5nb29kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgODQuMiUgNjAuMiUpIil9OwogICAgICB9CgogICAgICAvKiBUcmVuZCBTdHlsZXMgKi8KICAgICAgLnRyZW5kLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50cmVuZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudHJlbmQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudHJlbmQtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtZ3JhcGggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnRyZW5kLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudHJlbmQtbGluZSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgIH0KCiAgICAgIC50cmVuZC1hcmVhIHsKICAgICAgICBmaWxsOiAke2guYmRUaGVtZSgicmdiYSgxNTAsIDE1MCwgMTUwLCAwLjA4KSIsInJnYmEoMTAwLCAxMDAsIDEwMCwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRleHQgVmFsdWUgU3R5bGVzICovCiAgICAgIC50ZXh0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAvKiBDb250ZXh0IE1lbnUgKi8KICAgICAgZGVlcy1jb250ZXh0bWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGAsaC5jc3NGb3JUYWJsZXQoSmAKICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICAgIH0KICAgIGAsYSksaC5jc3NGb3JQaGFibGV0KEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTJweDsKICAgICAgICAtLXZhbHVlLWZvbnQtc2l6ZTogMjJweDsKICAgICAgICAtLXRpdGxlLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAtLWdyaWQtZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CiAgICAgIC5zdGF0cy10aWxlIHsKICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGAsYSksaC5jc3NGb3JQaG9uZShKYAogICAgICA6aG9zdCB7CiAgICAgICAgLS10aWxlLXBhZGRpbmc6IDEwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDIwcHg7CiAgICAgICAgLS1oZWFkZXItc3BhY2luZzogOHB4OwogICAgICB9CiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQogICAgYCxhKV07Y29uc3RydWN0b3IoKXtzdXBlcigpLFpuKHRoaXMsRSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtdGl0bGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1hY3Rpb25zIj4KICAgICAgICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLm1hcChrPT53YAogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiAKICAgICAgICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuaGFuZGxlR3JpZEFjdGlvbihrKX0KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBzaXplPSJzbSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2suaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSR7ay5pY29uTmFtZX0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke2submFtZX0KICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHt0aGlzLm1pblRpbGVXaWR0aH1weCwgMWZyKSk7IGdhcDogJHt0aGlzLmdhcH1weDsiPgogICAgICAgICR7dGhpcy50aWxlcy5tYXAoaz0+dGhpcy5yZW5kZXJUaWxlKGspKX0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY29udGV4dE1lbnVWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtY29udGV4dG1lbnUKICAgICAgICAgIC54PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnh9CiAgICAgICAgICAueT0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55fQogICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuY29udGV4dE1lbnVBY3Rpb25zfQogICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITF9CiAgICAgICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyVGlsZShrKXtsZXQgUz1rLmFjdGlvbnMmJmsuYWN0aW9ucy5sZW5ndGg+MCxJPVMmJmsuYWN0aW9ucy5sZW5ndGg9PT0xLFA9ay5jb2x1bW5TcGFuJiZrLmNvbHVtblNwYW4+MT9rLmNvbHVtblNwYW46dm9pZCAwO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlCiAgICAgICAgY2xhc3M9InN0YXRzLXRpbGUgJHtJPyJjbGlja2FibGUiOiIifSIKICAgICAgICBzdHlsZT0iJHtQP2BncmlkLWNvbHVtbjogc3BhbiAke1B9YDoiIn0iCiAgICAgICAgQGNsaWNrPSR7ST8oKT0+dGhpcy5oYW5kbGVUaWxlQWN0aW9uKGsuYWN0aW9uc1swXSxrKTp2b2lkIDB9CiAgICAgICAgQGNvbnRleHRtZW51PSR7Uz9SPT50aGlzLnNob3dDb250ZXh0TWVudShSLGspOnZvaWQgMH0KICAgICAgPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGlsZS1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJ0aWxlLXRpdGxlIj4ke2sudGl0bGV9PC9oMz4KICAgICAgICAgICR7ay5pY29uP3dgCiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InRpbGUtaWNvbiIgLmljb249JHtrLmljb259IHNpemU9InNtYWxsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoayl9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7ay5kZXNjcmlwdGlvbiYmay50eXBlIT09InRyZW5kIj93YAogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJ0aWxlLWRlc2NyaXB0aW9uIj4ke2suZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlclRpbGVDb250ZW50KGspe3N3aXRjaChrLnR5cGUpe2Nhc2UibnVtYmVyIjpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiIHN0eWxlPSIke2suY29sb3I/YGNvbG9yOiAke2suY29sb3J9YDoiIn0iPgogICAgICAgICAgICA8c3Bhbj4ke2sudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAke2sudW5pdD93YDxzcGFuIGNsYXNzPSJ0aWxlLXVuaXQiPiR7ay51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImdhdWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJHYXVnZShrKTtjYXNlInBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlclBlcmNlbnRhZ2Uoayk7Y2FzZSJ0cmVuZCI6cmV0dXJuIHRoaXMucmVuZGVyVHJlbmQoayk7Y2FzZSJtdWx0aVBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlck11bHRpUGVyY2VudGFnZShrKTtjYXNlImNwdUNvcmVzIjpyZXR1cm4gdGhpcy5yZW5kZXJDcHVDb3JlcyhrKTtjYXNlInBhcnRpdGlvbiI6cmV0dXJuIHRoaXMucmVuZGVyUGFydGl0aW9uKGspO2Nhc2UiZGlzayI6cmV0dXJuIHRoaXMucmVuZGVyRGlzayhrKTtjYXNlInRleHQiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC12YWx1ZSIgc3R5bGU9IiR7ay5jb2xvcj9gY29sb3I6ICR7ay5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgICR7ay52YWx1ZX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YH19cmVuZGVyR2F1Z2Uoayl7bGV0IFM9dHlwZW9mIGsudmFsdWU9PSJudW1iZXIiP2sudmFsdWU6cGFyc2VGbG9hdChrLnZhbHVlKSxJPWsuZ2F1Z2VPcHRpb25zfHx7bWluOjAsbWF4OjEwMH0sUD0oUy1JLm1pbikvKEkubWF4LUkubWluKSoxMDAsUj0xMjAsSz03MCxXPTYvMisyLG1lPTQwLEI9Ui8yLFU9Sy1XLGhlPUItbWUsRj1VLGo9QittZSxsZT1gTSAke2hlfSAke0Z9IEEgJHttZX0gJHttZX0gMCAwIDEgJHtqfSAke1V9YCxRPU1hdGguUEkqbWUsaWU9US1RKlAvMTAwLHRlPWsuY29sb3J8fGguYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyOC44JSkiLCJoc2woMjEwIDQwJSA3OCUpIik7aWYoSS50aHJlc2hvbGRzKXtsZXQgZWU9Wy4uLkkudGhyZXNob2xkc10uc29ydCgoa2UsWCk9PlgudmFsdWUta2UudmFsdWUpO2ZvcihsZXQga2Ugb2YgZWUpaWYoUz49a2UudmFsdWUpe3RlPWtlLmNvbG9yO2JyZWFrfX1yZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2UtY29udGFpbmVyIj4KICAgICAgICAgIDxzdmcgY2xhc3M9ImdhdWdlLXN2ZyIgdmlld0JveD0iMCAwICR7Un0gJHtLfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CiAgICAgICAgICAgIDwhLS0gQmFja2dyb3VuZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWJhY2tncm91bmQiCiAgICAgICAgICAgICAgZD0iJHtsZX0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gRmlsbGVkIGFyYyAtLT4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICBjbGFzcz0iZ2F1Z2UtZmlsbCIKICAgICAgICAgICAgICBkPSIke2xlfSIKICAgICAgICAgICAgICBzdHJva2U9IiR7dGV9IgogICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IiR7UX0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9IiR7aWV9IgogICAgICAgICAgICAvPgogICAgICAgICAgICA8IS0tIFZhbHVlIHRleHQgLS0+CiAgICAgICAgICAgIDx0ZXh0IGNsYXNzPSJnYXVnZS10ZXh0IiB4PSIke0J9IiB5PSIke1UtOH0iIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiPgogICAgICAgICAgICAgIDx0c3Bhbj4ke1N9PC90c3Bhbj4ke2sudW5pdD93YDx0c3BhbiBjbGFzcz0iZ2F1Z2UtdW5pdCIgZHg9IjIiIGR5PSIwIj4ke2sudW5pdH08L3RzcGFuPmA6IiJ9CiAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGVyY2VudGFnZShrKXtsZXQgUz10eXBlb2Ygay52YWx1ZT09Im51bWJlciI/ay52YWx1ZTpwYXJzZUZsb2F0KGsudmFsdWUpLEk9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsUykpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2UtdmFsdWUiPiR7SX0lPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InBlcmNlbnRhZ2UtZmlsbCIgCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtJfSU7ICR7ay5jb2xvcj9gYmFja2dyb3VuZDogJHtrLmNvbG9yfWA6IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVHJlbmQoayl7aWYoIWsudHJlbmREYXRhfHxrLnRyZW5kRGF0YS5sZW5ndGg8MilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YDtsZXQgUz1rLnRyZW5kRGF0YSxJPU1hdGgubWF4KC4uLlMpLFA9TWF0aC5taW4oLi4uUyksUj1JLVB8fDEsSz0zMDAsVj0zMixXPTIsbWU9Uy5tYXAoKFUsaGUpPT57bGV0IEY9aGUvKFMubGVuZ3RoLTEpKkssaj1XKyhWLTIqVyktKFUtUCkvUiooVi0yKlcpO3JldHVybmAke0Z9LCR7an1gfSkuam9pbigiICIpLEI9YDAsJHtWfSAke21lfSAke0t9LCR7Vn1gO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idHJlbmQtdmFsdWUiPiR7ay52YWx1ZX08L3NwYW4+CiAgICAgICAgICAke2sudW5pdD93YDxzcGFuIGNsYXNzPSJ0cmVuZC11bml0Ij4ke2sudW5pdH08L3NwYW4+YDoiIn0KICAgICAgICAgICR7ay5kZXNjcmlwdGlvbj93YDxzcGFuIGNsYXNzPSJ0cmVuZC1sYWJlbCI+JHtrLmRlc2NyaXB0aW9ufTwvc3Bhbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWdyYXBoIj4KICAgICAgICAgIDxzdmcgY2xhc3M9InRyZW5kLXN2ZyIgdmlld0JveD0iMCAwICR7S30gJHtWfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJ0cmVuZC1hcmVhIiBwb2ludHM9IiR7Qn0iIC8+CiAgICAgICAgICAgIDxwb2x5bGluZSBjbGFzcz0idHJlbmQtbGluZSIgcG9pbnRzPSIke21lfSIgLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlQZXJjZW50YWdlKGspe2lmKCFrLnBlcmNlbnRhZ2VzfHxrLnBlcmNlbnRhZ2VzLmxlbmd0aD09PTApcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtrLnZhbHVlfTwvZGl2PmA7bGV0IFM9ay5wZXJjZW50YWdlcy5zbGljZSgwLDMpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaXRlbXMiPgogICAgICAgICAgJHtTLm1hcChJPT57bGV0IFA9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsSS52YWx1ZSkpO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaXRlbSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWxhYmVsIj4ke0kubGFiZWx9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS12YWx1ZSI+JHtQfSU8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtYmFyIj4KICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWZpbGwiCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke1B9JTsgJHtJLmNvbG9yP2BiYWNrZ3JvdW5kOiAke0kuY29sb3J9YDoiIn0iCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJDcHVDb3JlcyhrKXtpZighay5jb3Jlc0RhdGF8fGsuY29yZXNEYXRhLmxlbmd0aD09PTApcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtrLnZhbHVlfTwvZGl2PmA7bGV0IFM9ay5jb3Jlc0RhdGEsST1NYXRoLnJvdW5kKFMucmVkdWNlKChtZSxCKT0+bWUrQi51c2FnZSwwKS9TLmxlbmd0aCksUD1pKG1lPT5tZTw1MD8ibG93IjptZTw4MD8ibWVkaXVtIjoiaGlnaCIsImdldENvbG9yQ2xhc3MiKSxSPVMubGVuZ3RoKjI0KyhTLmxlbmd0aC0xKSozLEs9ay5jb2x1bW5TcGFufHwxLFY9dGhpcy5taW5UaWxlV2lkdGgqSysoSy0xKSp0aGlzLmdhcC0zMixXPVI8ViouNjY2O3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXZhbHVlIj4ke0l9PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy11bml0Ij4lPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy1sYWJlbCI+JHtTLmxlbmd0aH0gY29yZXM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWJhcnMgJHtXPyJjZW50ZXJlZCI6IiJ9Ij4KICAgICAgICAgICR7Uy5tYXAobWU9PntsZXQgQj1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxtZS51c2FnZSkpLFU9UChCKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZS1iYXItY29udGFpbmVyIiB0aXRsZT0iQ29yZSAke21lLmxhYmVsfHxtZS5pZH06ICR7Qn0lIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3JlLWJhci13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjcHUtY29yZS1iYXItZmlsbCAke1V9IgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSJoZWlnaHQ6ICR7Qn0lIgogICAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7Uy5sZW5ndGg8PTE2P3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZS1sYWJlbCI+JHttZS5sYWJlbHx8bWUuaWR9PC9zcGFuPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zm9ybWF0Qnl0ZXMoayl7aWYoaz09PTApcmV0dXJuIjAgQiI7bGV0IFM9MTAyNCxJPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIiwiUEIiXSxQPU1hdGguZmxvb3IoTWF0aC5sb2coaykvTWF0aC5sb2coUykpO3JldHVybiBwYXJzZUZsb2F0KChrL01hdGgucG93KFMsUCkpLnRvRml4ZWQoMSkpKyIgIitJW1BdfXJlbmRlclBhcnRpdGlvbihrKXtpZighay5wYXJ0aXRpb25EYXRhKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7ay52YWx1ZX08L2Rpdj5gO2xldHt1c2VkOlMsdG90YWw6SSxmaWxlc3lzdGVtOlAsbW91bnRQb2ludDpSfT1rLnBhcnRpdGlvbkRhdGEsSz1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxTL0kqMTAwKSksVj1JLVMsVz1pKCgpPT5LPj05MD8iY3JpdGljYWwiOks+PTc1PyJ3YXJuaW5nIjoiIiwiZ2V0Q29sb3JDbGFzcyIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24td3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXBlcmNlbnRhZ2UiPiR7TWF0aC5yb3VuZChLKX0lPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1iYXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icGFydGl0aW9uLWJhci1maWxsICR7VygpfSIKICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke0t9JSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdHMiPgogICAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXN0YXQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtbGFiZWwiPlVzZWQ8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC12YWx1ZSI+JHt0aGlzLmZvcm1hdEJ5dGVzKFMpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXN0YXQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtbGFiZWwiPkZyZWU8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC12YWx1ZSI+JHt0aGlzLmZvcm1hdEJ5dGVzKFYpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1tZXRhIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tZmlsZXN5c3RlbSI+JHtQfTwvc3Bhbj4KICAgICAgICAgICR7Uj93YDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tbW91bnRwb2ludCI+JHtSfTwvc3Bhbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGlzayhrKXtpZighay5kaXNrRGF0YSlyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YDtsZXR7Y2FwYWNpdHk6Uyxtb2RlbDpJLHR5cGU6UCxpb3BzOlIsaGVhbHRoOkt9PWsuZGlza0RhdGEsVj1pKFc9Plc+PTcwPyJnb29kIjpXPj0zMD8id2FybmluZyI6ImNyaXRpY2FsIiwiZ2V0SGVhbHRoQ2xhc3MiKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlzay13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWNhcGFjaXR5Ij4ke3RoaXMuZm9ybWF0Qnl0ZXMoUyl9PC9kaXY+CiAgICAgICAgJHtJfHxQP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLW1vZGVsIj4KICAgICAgICAgICAgJHtJP3dgPHNwYW4+JHtJfTwvc3Bhbj5gOiIifQogICAgICAgICAgICAke1A/d2A8c3BhbiBjbGFzcz0iZGlzay10eXBlLWJhZGdlIj4ke1B9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbWV0cmljcyI+CiAgICAgICAgICAke1I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1pb3BzIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5SZWFkPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staW9wcy12YWx1ZSI+JHtSLnJlYWQudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1pb3BzLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staW9wcy1sYWJlbCI+V3JpdGU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4ke1Iud3JpdGUudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgICR7SyE9PXZvaWQgMD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1oZWFsdGgtaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWhlYWx0aC1sYWJlbCI+SGVhbHRoPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLXZhbHVlIj4ke0t9JTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1iYXIiPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzay1oZWFsdGgtZmlsbCAke1YoSyl9IgogICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7S30lIgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVHcmlkQWN0aW9uKGspe2suYWN0aW9uJiZhd2FpdCBrLmFjdGlvbigpfWFzeW5jIGhhbmRsZVRpbGVBY3Rpb24oayxTKXtrLmFjdGlvbiYmYXdhaXQgay5hY3Rpb24oKX1zaG93Q29udGV4dE1lbnUoayxTKXtpZighUy5hY3Rpb25zfHxTLmFjdGlvbnMubGVuZ3RoPT09MClyZXR1cm47ay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbj17eDprLmNsaWVudFgseTprLmNsaWVudFl9LHRoaXMuY29udGV4dE1lbnVBY3Rpb25zPVMuYWN0aW9ucyx0aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMDtsZXQgST1pKCgpPT57dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLEkpfSwiY2xvc2VIYW5kbGVyIik7c2V0VGltZW91dCgoKT0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixJKX0sMTAwKX1zdGF0aWN7Wm4oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIGU3LFFkLGxWbyxjVm8sZFZvLHVWbyxCdmEsSHZhPWcoKCk9PntwZSgpO0l0KCk7SjFlKCk7ZTc9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFFkPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxsVm89KCgpPT57bGV0IHM9W25lKCJkZW1vLWRhc2hib2FyZC12aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlbW9EYXNoYm9hcmRWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxlNyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2YXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iYWN0aXZhdGVkImluIHUsImhhcyIpLGdldDppKHU9PnUuYWN0aXZhdGVkLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UuYWN0aXZhdGVkPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxlNyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pLFFkKGEsdCl9I2U9UWQodGhpcyxvLCExKTtnZXQgYWN0aXZhdGVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFjdGl2YXRlZChkKXt0aGlzLiNlPWR9Y3R4PVFkKHRoaXMsbCk7c3RhdHNUaWxlcz1be2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6MTIzNCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246Ik9ubGluZSBub3ciLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJhcGktY2FsbHMiLHRpdGxlOiJBUEkgQ2FsbHMiLHZhbHVlOjQ1MjAwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLGRlc2NyaXB0aW9uOiIrMTIlIGZyb20gbGFzdCBob3VyIixjb2xvcjoiIzNiODJmNiIsdHJlbmREYXRhOlszMmUzLDM1ZTMsMzhlMyw0MWUzLDM5ZTMsNDJlMyw0NTIwMF19LHtpZDoiaGVhbHRoIix0aXRsZToiU3lzdGVtIEhlYWx0aCIsdmFsdWU6OTkuOSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmhlYXJ0LXB1bHNlIixkZXNjcmlwdGlvbjoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjk1LGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UiLHZhbHVlOjEyNyx1bml0OiJtcyIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dGltZXIiLGRlc2NyaXB0aW9uOiItMTVtcyBmcm9tIHllc3RlcmRheSIsY29sb3I6IiM4YjVjZjYifSx7aWQ6InJlc291cmNlcyIsdGl0bGU6IlJlc291cmNlIFVzYWdlIix2YWx1ZToiIix0eXBlOiJtdWx0aVBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHBlcmNlbnRhZ2VzOlt7bGFiZWw6IkNQVSIsdmFsdWU6NjcsY29sb3I6IiMzYjgyZjYifSx7bGFiZWw6Ik1lbW9yeSIsdmFsdWU6ODQsY29sb3I6IiM4YjVjZjYifSx7bGFiZWw6IkRpc2siLHZhbHVlOjQ1LGNvbG9yOiIjMTBiOTgxIn1dfSx7aWQ6InJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZToxODUwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6emFwIixkZXNjcmlwdGlvbjoiQ3VycmVudCB0aHJvdWdocHV0Iixjb2xvcjoiIzA2YjZkNCIsdHJlbmREYXRhOlsxMjAwLDE0MDAsMTM1MCwxNjAwLDE3NTAsMTY4MCwxODUwXX1dO29uQWN0aXZhdGUoZCl7dGhpcy5jdHg9ZCx0aGlzLmFjdGl2YXRlZD0hMCxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGFjdGl2YXRlZCB3aXRoIGNvbnRleHQ6IixkKSxkLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWNjZXNzIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibGF5b3V0RGFzaGJvYXJkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJSZWNlbnQiLGljb25OYW1lOiJjbG9jayIsYmFkZ2U6NSxhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlY2VudCIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2ggRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT5hbGVydCgiUmVmcmVzaGluZyBkYXNoYm9hcmQgZGF0YS4uLiIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiVGltZSBSYW5nZSJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnJhZGlvIixhY3RpdmU6ITAsb25Ub2dnbGU6aSh1PT5jb25zb2xlLmxvZygiTGl2ZSB1cGRhdGVzOiIsdSksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aSh1PT5jb25zb2xlLmxvZygiU2hvdyBhcmNoaXZlZDoiLHUpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJEYXRhIFNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UiLG9wdGlvbnM6W3trZXk6ImFwaSIsbGFiZWw6IkFQSSBTZXJ2ZXIiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJ3ZWIiLGxhYmVsOiJXZWIgVHJhZmZpYyIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmdsb2JlIn0se2tleToibW9iaWxlIixsYWJlbDoiTW9iaWxlIEFwcCIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnNtYXJ0cGhvbmUifV0sb25DaGFuZ2U6aSh1PT5jb25zb2xlLmxvZygiRGF0YSBzb3VyY2VzOiIsdSksIm9uQ2hhbmdlIil9XX0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydDMiLGl0ZW1zOlt7a2V5OiJNZXRyaWNzIixpY29uTmFtZToiYWN0aXZpdHkiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWV0cmljcyIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6ImZpbGVUZXh0IixiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVwb3J0cyIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibGluayIsa2V5OiJBbmFseXRpY3MgRG9jcyIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLGhyZWY6Imh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbS9hbmFseXRpY3MifV19XX0pLGQuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyB0YWIiKSwiYWN0aW9uIil9LHtrZXk6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgdGFiIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMgdGFiIiksImFjdGlvbiIpfV0pfW9uRGVhY3RpdmF0ZSgpe3RoaXMuYWN0aXZhdGVkPSExLGNvbnNvbGUubG9nKCJEYXNoYm9hcmQgZGVhY3RpdmF0ZWQiKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDMycHg7IH0KICAgICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmN0eC1hY3Rpb25zIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAyKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQogICAgICAgIC5jdHgtYWN0aW9ucyBoMiB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ib3R0b206IDE2cHg7IH0KICAgICAgICAuYnV0dG9uLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0biB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5zdWNjZXNzIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7CiAgICAgICAgICBjb2xvcjogIzRhZGU4MDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2Vzczpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjUpOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPkRhc2hib2FyZDwvaDE+CiAgICAgIDxwPldlbGNvbWUgYmFjayEgSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgc3lzdGVtLjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke2Q9PmNvbnNvbGUubG9nKCJUaWxlIGFjdGlvbjoiLGQuZGV0YWlsKX0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGl2IGNsYXNzPSJjdHgtYWN0aW9ucyI+CiAgICAgICAgPGgyPkNvbnRleHQgQWN0aW9ucyAoY3R4LmFwcHVpKTwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITEpfT5IaWRlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSghMCl9PlNob3cgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCExKX0+SGlkZSBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCEwKX0+U2hvdyBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITEpfT5IaWRlIENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSghMCl9PlNob3cgQ29udGVudCBUYWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCEwKX0+Q29sbGFwc2UgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVDb2xsYXBzZWQoITEpfT5FeHBhbmQgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldEJyZWFkY3J1bWJzKFsiRGFzaGJvYXJkIiwiT3ZlcnZpZXciLCJTdGF0cyJdKX0+U2V0IEJyZWFkY3J1bWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLm5hdmlnYXRlVG9WaWV3KCJwcm9qZWN0cyIpfT5HbyB0byBQcm9qZWN0czwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygic2V0dGluZ3MiLHtzZWN0aW9uOiJzZWN1cml0eSJ9KX0+R28gdG8gU2V0dGluZ3MvU2VjdXJpdHk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJjdXN0b20iLHVzZXI6IkRlbW8gVXNlciIsbWVzc2FnZToiQnV0dG9uIGNsaWNrZWQgZnJvbSBjdHghIixpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXItY2xpY2sifSl9PkFkZCBBY3Rpdml0eSBFbnRyeTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsOTkpfT5TZXQgVGFza3MgQmFkZ2UgdG8gOTk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmNsZWFyTWFpbk1lbnVCYWRnZSgidGFza3MiKX0+Q2xlYXIgVGFza3MgQmFkZ2U8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMCwxKX0+QXV0by1oaWRlIFRhYnMgKOKJpDEpPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKCExKX0+RGlzYWJsZSBBdXRvLWhpZGU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ2xvc2VhYmxlVGFiKCl9PkFkZCBDbG9zZWFibGUgVGFiPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH10YWJDb3VudGVyPTA7YWRkQ2xvc2VhYmxlVGFiKCl7aWYoIXRoaXMuY3R4KXJldHVybjt0aGlzLnRhYkNvdW50ZXIrKztsZXQgZD1gVGFiICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy5jdHguYXBwdWkuYWRkQ29udGVudFRhYih7a2V5OmQsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYFNlbGVjdGVkICR7ZH1gKSwiYWN0aW9uIiksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6aSgoKT0+e3RoaXMuY3R4Py5hcHB1aS5yZW1vdmVDb250ZW50VGFiKGQpfSwib25DbG9zZSIpfSl9fTtyZXR1cm4gcD1hfSkoKSxjVm89KCgpPT57bGV0IHM9W25lKCJkZW1vLXNldHRpbmdzLXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1NldHRpbmdzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxlNyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InNlY3Rpb24iaW4gdiwiaGFzIiksZ2V0Omkodj0+di5zZWN0aW9uLCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yuc2VjdGlvbj14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZTcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYXNDaGFuZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJoYXNDaGFuZ2VzImluIHYsImhhcyIpLGdldDppKHY9PnYuaGFzQ2hhbmdlcywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2Lmhhc0NoYW5nZXM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGU3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSksUWQoYSx0KX0jZT1RZCh0aGlzLG8sImdlbmVyYWwiKTtnZXQgc2VjdGlvbigpe3JldHVybiB0aGlzLiNlfXNldCBzZWN0aW9uKGIpe3RoaXMuI2U9Yn0jdD0oUWQodGhpcyxsKSxRZCh0aGlzLGQsITEpKTtnZXQgaGFzQ2hhbmdlcygpe3JldHVybiB0aGlzLiN0fXNldCBoYXNDaGFuZ2VzKGIpe3RoaXMuI3Q9Yn1hcHB1aT1RZCh0aGlzLHUpO29uQWN0aXZhdGUoYil7dGhpcy5hcHB1aT1iLmFwcHVpLGNvbnNvbGUubG9nKCJTZXR0aW5ncyBhY3RpdmF0ZWQgd2l0aCBwYXJhbXM6IixiLnBhcmFtcyksYi5wYXJhbXM/LnNlY3Rpb24mJih0aGlzLnNlY3Rpb249Yi5wYXJhbXMuc2VjdGlvbiksYi5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXR0aW5ncyIsZ3JvdXBzOlt7bmFtZToiQWNjb3VudCIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixpdGVtczpbe2tleToiZ2VuZXJhbCIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigiZ2VuZXJhbCIpLCJhY3Rpb24iKX0se2tleToicHJvZmlsZSIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJwcm9maWxlIiksImFjdGlvbiIpfSx7a2V5OiJzZWN1cml0eSIsaWNvbk5hbWU6InNoaWVsZCIsYWN0aW9uOmkoKCk9PnRoaXMuc2hvd1NlY3Rpb24oInNlY3VyaXR5IiksImFjdGlvbiIpfV19LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpzbGlkZXJzIixpdGVtczpbe2tleToibm90aWZpY2F0aW9ucyIsaWNvbk5hbWU6ImJlbGwiLGJhZGdlOjMsYWN0aW9uOmkoKCk9PnRoaXMuc2hvd1NlY3Rpb24oIm5vdGlmaWNhdGlvbnMiKSwiYWN0aW9uIil9LHtrZXk6ImFwcGVhcmFuY2UiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigiYXBwZWFyYW5jZSIpLCJhY3Rpb24iKX1dfV19KSxiLmFwcHVpLnNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24odGhpcy5zZWN0aW9uKSxiLmFwcHVpLnNldENvbnRlbnRUYWJzKFtdKX1vbkRlYWN0aXZhdGUoKXtjb25zb2xlLmxvZygiU2V0dGluZ3MgZGVhY3RpdmF0ZWQiKSx0aGlzLmhhc0NoYW5nZXM9ITF9Y2FuRGVhY3RpdmF0ZSgpe3JldHVybiB0aGlzLmhhc0NoYW5nZXM/IllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcy4gTGVhdmUgYW55d2F5PyI6ITB9c2hvd1NlY3Rpb24oYil7dGhpcy5zZWN0aW9uPWIsdGhpcy5hcHB1aT8uc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihiKX1zaW11bGF0ZUNoYW5nZSgpe3RoaXMuaGFzQ2hhbmdlcz0hMH1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAuc2VjdGlvbi1uYW1lIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KICAgICAgICAuYWN0aW9ucyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICBidXR0b24gewogICAgICAgICAgYmFja2dyb3VuZDogIzNiODJmNjsKICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgICBidXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogIzI1NjNlYjsKICAgICAgICB9CiAgICAgICAgLndhcm5pbmcgewogICAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+TWFuYWdlIHlvdXIgYWNjb3VudCBhbmQgYXBwbGljYXRpb24gcHJlZmVyZW5jZXMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLW5hbWUiPgogICAgICAgIEN1cnJlbnQgc2VjdGlvbjogPHN0cm9uZz4ke3RoaXMuc2VjdGlvbn08L3N0cm9uZz4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2ltdWxhdGVDaGFuZ2UoKX0+TWFrZSBDaGFuZ2VzPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuaGFzQ2hhbmdlcz93YDxwIGNsYXNzPSJ3YXJuaW5nIj5Zb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIE5hdmlnYXRpb24gd2lsbCBwcm9tcHQgZm9yIGNvbmZpcm1hdGlvbi48L3A+YDoiIn0KICAgIGB9fTtyZXR1cm4gYz1hfSkoKSxkVm89KCgpPT57bGV0IHM9W25lKCJkZW1vLXByb2plY3RzLXZpZXciKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1Byb2plY3RzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSksUWQoYSx0KX1vbkFjdGl2YXRlKG8pe28uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUHJvamVjdHMiLGdyb3Vwczpbe25hbWU6Ik15IFByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsaXRlbXM6W3trZXk6IkFjdGl2ZSIsaWNvbk5hbWU6ImZvbGRlciIsYmFkZ2U6MyxhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFjdGl2ZSIpLCJhY3Rpb24iKX0se2tleToiQXJjaGl2ZWQiLGljb25OYW1lOiJhcmNoaXZlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFyY2hpdmVkIiksImFjdGlvbiIpfSx7a2V5OiJTaGFyZWQiLGljb25OYW1lOiJ1c2VycyIsYmFkZ2U6MixiYWRnZVZhcmlhbnQ6Indhcm5pbmciLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2hhcmVkIiksImFjdGlvbiIpfV19LHtuYW1lOiJRdWljayBBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiTmV3IFByb2plY3QiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJDcmVhdGUgbmV3IHByb2plY3QiKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIkltcG9ydCBwcm9qZWN0IiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJsaW5rIixrZXk6IlRlbXBsYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXRUZW1wbGF0ZSIsaHJlZjoiaHR0cHM6Ly90ZW1wbGF0ZXMuZXhhbXBsZS5jb20ifV19XX0pLG8uYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkdyaWQiLGljb25OYW1lOiJsdWNpZGU6Z3JpZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJHcmlkIHZpZXciKSwiYWN0aW9uIil9LHtrZXk6Ikxpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJMaXN0IHZpZXciKSwiYWN0aW9uIil9LHtrZXk6IkJvYXJkIixpY29uTmFtZToibHVjaWRlOmthbmJhbiIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJCb2FyZCB2aWV3IiksImFjdGlvbiIpfV0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAucHJvamVjdHMgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzOwogICAgICAgIH0KICAgICAgICAucHJvamVjdDpob3ZlciB7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgaDMgeyBjb2xvcjogI2ZhZmFmYTsgbWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICAgIC5wcm9qZWN0IHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEzcHg7IH0KICAgICAgICAuYmFkZ2UgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgYmFja2dyb3VuZDogIzE0NTMyZDsKICAgICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+UHJvamVjdHM8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0cyI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RnJvbnRlbmQgQXBwIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5SZWFjdC1iYXNlZCBkYXNoYm9hcmQgYXBwbGljYXRpb248L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+QVBJIFNlcnZlciA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+Tm9kZS5qcyBSRVNUIEFQSSBiYWNrZW5kPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPk1vYmlsZSBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0IE5hdGl2ZSBpT1MvQW5kcm9pZCBhcHA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RG9jdW1lbnRhdGlvbjwvaDM+CiAgICAgICAgICA8cD5UZWNobmljYWwgZG9jdW1lbnRhdGlvbiBzaXRlPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtyZXR1cm4gbj1hfSkoKSx1Vm89KCgpPT57bGV0IHM9W25lKCJkZW1vLXRhc2tzLXZpZXciKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1Rhc2tzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSksUWQoYSx0KX1vbkFjdGl2YXRlKG8pe28uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiVGFza3MiLGdyb3Vwczpbe25hbWU6IlZpZXdzIixpY29uTmFtZToibHVjaWRlOmV5ZSIsaXRlbXM6W3trZXk6IkFsbCBUYXNrcyIsaWNvbk5hbWU6Imxpc3QiLGJhZGdlOjEyLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWxsIiksImFjdGlvbiIpfSx7a2V5OiJUb2RheSIsaWNvbk5hbWU6ImNhbGVuZGFyIixiYWRnZTozLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVG9kYXkiKSwiYWN0aW9uIil9LHtrZXk6IlVwY29taW5nIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVXBjb21pbmciKSwiYWN0aW9uIil9LHtrZXk6IkNvbXBsZXRlZCIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiUHJpb3JpdHkifSx7dHlwZToibXVsdGlGaWx0ZXIiLGtleToiUHJpb3JpdHkiLGljb25OYW1lOiJsdWNpZGU6ZmxhZyIsb3B0aW9uczpbe2tleToiaGlnaCIsbGFiZWw6IkhpZ2giLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTphbGVydENpcmNsZSJ9LHtrZXk6Im1lZGl1bSIsbGFiZWw6Ik1lZGl1bSIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOm1pbnVzQ2lyY2xlIn0se2tleToibG93IixsYWJlbDoiTG93IixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6Y2lyY2xlIn1dLG9uQ2hhbmdlOmkobD0+Y29uc29sZS5sb2coIlByaW9yaXR5IGZpbHRlcjoiLGwpLCJvbkNoYW5nZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJPcHRpb25zIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IFN1YnRhc2tzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixhY3RpdmU6ITAsb25Ub2dnbGU6aShsPT5jb25zb2xlLmxvZygiU2hvdyBzdWJ0YXNrczoiLGwpLCJvblRvZ2dsZSIpfSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQ29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixhY3RpdmU6ITEsb25Ub2dnbGU6aShsPT5jb25zb2xlLmxvZygiU2hvdyBjb21wbGV0ZWQ6IixsKSwib25Ub2dnbGUiKX1dfSx7bmFtZToiQWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBUYXNrIixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjppKCgpPT5hbGVydCgiQWRkIG5ldyB0YXNrIiksImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCBUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTp1cGxvYWQiLGFjdGlvbjppKCgpPT5hbGVydCgiSW1wb3J0IHRhc2tzIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiQ2xlYXIgQ29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsdmFyaWFudDoiZGFuZ2VyIixjb25maXJtTWVzc2FnZToiRGVsZXRlIGFsbCBjb21wbGV0ZWQgdGFza3M/IixhY3Rpb246aSgoKT0+YWxlcnQoIkNsZWFyZWQgY29tcGxldGVkIHRhc2tzIiksImFjdGlvbiIpfV19XX0pLG8uYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ikxpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJMaXN0IiksImFjdGlvbiIpfSx7a2V5OiJDYWxlbmRhciIsaWNvbk5hbWU6Imx1Y2lkZTpjYWxlbmRhciIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDYWxlbmRhciIpLCJhY3Rpb24iKX1dKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnRhc2stbGlzdCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAudGFzayB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIH0KICAgICAgICAuY2hlY2tib3ggewogICAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjNTI1MjUyOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KICAgICAgICAudGFzay10ZXh0IHsgY29sb3I6ICNmYWZhZmE7IGZsZXg6IDE7IH0KICAgICAgICAuZHVlLWRhdGUgeyBjb2xvcjogIzczNzM3MzsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgICAgLnByaW9yaXR5IHsKICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgfQogICAgICAgIC5wcmlvcml0eS5oaWdoIHsgYmFja2dyb3VuZDogIzQ1MGEwYTsgY29sb3I6ICNmODcxNzE7IH0KICAgICAgICAucHJpb3JpdHkubWVkaXVtIHsgYmFja2dyb3VuZDogIzQ1MWEwMzsgY29sb3I6ICNmYmJmMjQ7IH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPlRhc2tzPC9oMT4KICAgICAgPGRpdiBjbGFzcz0idGFzay1saXN0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YXNrIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94Ij48L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXNrLXRleHQiPlJldmlldyBwdWxsIHJlcXVlc3QgIzQyPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5Ub2RheTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmlvcml0eSBoaWdoIj5IaWdoPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+VXBkYXRlIGRvY3VtZW50YXRpb248L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvbW9ycm93PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IG1lZGl1bSI+TWVkaXVtPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+V3JpdGUgdW5pdCB0ZXN0czwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+RGVjIDIwPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtyZXR1cm4gbj1hfSkoKSxCdmE9aSgoKT0+e2xldCBzPXticmFuZGluZzp7bG9nb0ljb246Imx1Y2lkZTpib3giLGxvZ29UZXh0OiJBY21lIEFwcCJ9LGFwcEJhcjp7bWVudUl0ZW1zOlt7bmFtZToiRmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXciKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXJPcGVuIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiIpLCJhY3Rpb24iKX0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJteS1hcHAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIG15LWFwcCIpLCJhY3Rpb24iKX0se25hbWU6ImNvbXBvbmVudC1saWIiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIGNvbXBvbmVudC1saWIiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIEFsbCIsc2hvcnRjdXQ6IkNtZCtTIixpY29uTmFtZToic2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVW5kbyIsc2hvcnRjdXQ6IkNtZCtaIixpY29uTmFtZToidW5kbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWRvIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1oiLGljb25OYW1lOiJyZWRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLHNob3J0Y3V0OiJDbWQrWCIsaWNvbk5hbWU6InNjaXNzb3JzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsc2hvcnRjdXQ6IkNtZCtDIixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIiksImFjdGlvbiIpfSx7bmFtZToiVG9nZ2xlIEFjdGl2aXR5IExvZyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtBIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIGFjdGl2aXR5IiksImFjdGlvbiIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG9jcyIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kKy8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQWJvdXQiLGljb25OYW1lOiJpbmZvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQWJvdXQiKSwiYWN0aW9uIil9XX1dLGJyZWFkY3J1bWJzOiJEYXNoYm9hcmQiLHNob3dXaW5kb3dDb250cm9sczohMCxzaG93U2VhcmNoOiEwLHVzZXI6e25hbWU6IkphbmUgU21pdGgiLGVtYWlsOiJqYW5lLnNtaXRoQGV4YW1wbGUuY29tIixzdGF0dXM6Im9ubGluZSJ9LHByb2ZpbGVNZW51SXRlbXM6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlByb2ZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJBY2NvdW50IFNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJIZWxwIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibG9nT3V0IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2lnbiBvdXQiKSwiYWN0aW9uIil9XX0sdmlld3M6W3tpZDoiZGFzaGJvYXJkIixuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsY29udGVudDoiZGVtby1kYXNoYm9hcmQtdmlldyIscm91dGU6ImRhc2hib2FyZCJ9LHtpZDoicHJvamVjdHMiLG5hbWU6IlByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsY29udGVudDoiZGVtby1wcm9qZWN0cy12aWV3Iixyb3V0ZToicHJvamVjdHMiLGJhZGdlOjN9LHtpZDoidGFza3MiLG5hbWU6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixjb250ZW50OiJkZW1vLXRhc2tzLXZpZXciLHJvdXRlOiJ0YXNrcyIsYmFkZ2U6MTJ9LHtpZDoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixjb250ZW50OiJkZW1vLXNldHRpbmdzLXZpZXciLHJvdXRlOiJzZXR0aW5ncy86c2VjdGlvbj8ifV0sbWFpbk1lbnU6e3NlY3Rpb25zOlt7bmFtZToiTWFpbiIsdmlld3M6WyJkYXNoYm9hcmQiXX0se25hbWU6IldvcmtzcGFjZSIsdmlld3M6WyJwcm9qZWN0cyIsInRhc2tzIl19XSxib3R0b21JdGVtczpbInNldHRpbmdzIl19LGRlZmF1bHRWaWV3OiJkYXNoYm9hcmQiLGJvdHRvbUJhcjp7dmlzaWJsZTohMCx3aWRnZXRzOlt7aWQ6InN0YXR1cyIsaWNvbk5hbWU6Imx1Y2lkZTphY3Rpdml0eSIsbGFiZWw6IlN5c3RlbSBPbmxpbmUiLHN0YXR1czoic3VjY2VzcyIsdG9vbHRpcDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLG9uQ2xpY2s6aSgoKT0+Y29uc29sZS5sb2coIlN0YXR1cyBjbGlja2VkIiksIm9uQ2xpY2siKX0se2lkOiJub3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGxhYmVsOiIzIG5vdGlmaWNhdGlvbnMiLHN0YXR1czoid2FybmluZyIsdG9vbHRpcDoiWW91IGhhdmUgdW5yZWFkIG5vdGlmaWNhdGlvbnMiLG9uQ2xpY2s6aSgoKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpLCJvbkNsaWNrIil9LHtpZDoidmVyc2lvbiIsaWNvbk5hbWU6Imx1Y2lkZTpnaXRCcmFuY2giLGxhYmVsOiJ2MS4yLjMiLHBvc2l0aW9uOiJyaWdodCIsdG9vbHRpcDoiQ3VycmVudCB2ZXJzaW9uIn1dLGFjdGlvbnM6W3tpZDoidGVybWluYWwiLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLHRvb2x0aXA6Ik9wZW4gVGVybWluYWwiLHBvc2l0aW9uOiJyaWdodCIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiVGVybWluYWwgY2xpY2tlZCIpLCJvbkNsaWNrIil9XX0sb25WaWV3Q2hhbmdlOmkoKGEscik9Pntjb25zb2xlLmxvZyhgVmlldyBjaGFuZ2VkIHRvOiAke2F9ICgke3IubmFtZX0pYCl9LCJvblZpZXdDaGFuZ2UiKSxvblNlYXJjaDppKGE9Pntjb25zb2xlLmxvZygiU2VhcmNoIHF1ZXJ5OiIsYSl9LCJvblNlYXJjaCIpfSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NOYW1lPSJkZW1vLWNvbnRhaW5lciIsZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsiO2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtYXBwdWkiKTtyZXR1cm4gZS5hcHBlbmRDaGlsZCh0KSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCB0LnVwZGF0ZUNvbXBsZXRlLHQuY29uZmlndXJlKHMpLHNldFRpbWVvdXQoKCk9Pnt0LmFjdGl2aXR5TG9nLmFkZE1hbnkoW3t0eXBlOiJsb2dpbiIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToibG9nZ2VkIGluIGZyb20gQ2hyb21lIG9uIG1hY09TIn0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZTonY3JlYXRlZCBwcm9qZWN0ICJGcm9udGVuZCBBcHAiJ30se3R5cGU6InVwZGF0ZSIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6InVwZGF0ZWQgQVBJIGRvY3VtZW50YXRpb24ifSx7dHlwZToidmlldyIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToidmlld2VkIGRhc2hib2FyZCBhbmFseXRpY3MifSx7dHlwZToiZGVsZXRlIix1c2VyOiJBZG1pbiIsbWVzc2FnZToicmVtb3ZlZCBkZXByZWNhdGVkIGVuZHBvaW50In0se3R5cGU6ImN1c3RvbSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSJ9XSl9LDUwMCksdC52aWV3Q2hhbmdlZCQuc3Vic2NyaWJlKGE9Pntjb25zb2xlLmxvZygiVmlldyBjaGFuZ2VkIGV2ZW50OiIsYSksdC5zZXRCcmVhZGNydW1icyhhLnZpZXcubmFtZSl9KSx0LnZpZXdMaWZlY3ljbGUkLnN1YnNjcmliZShhPT57Y29uc29sZS5sb2coIkxpZmVjeWNsZSBldmVudDoiLGEudHlwZSxhLnZpZXdJZCl9KSxzZXRUaW1lb3V0KCgpPT57dC5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsMTUpLHQuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJ1cGRhdGUiLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToibmV3IHRhc2tzIGFkZGVkIn0pfSw1ZTMpfSwwKSx3YAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgICR7ZX0KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBlMmUsam50PWcoKCk9PntwZSgpO2UyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaWV3UmVnaXN0cnkiKX12aWV3cz1uZXcgTWFwO2luc3RhbmNlcz1uZXcgTWFwO2N1cnJlbnRWaWV3SWQ9bnVsbDthcHB1aT1udWxsO3NldEFwcHVpUmVmKGUpe3RoaXMuYXBwdWk9ZX1yZWdpc3RlcihlKXt0aGlzLnZpZXdzLmhhcyhlLmlkKSYmY29uc29sZS53YXJuKGBWaWV3IHdpdGggaWQgIiR7ZS5pZH0iIGFscmVhZHkgcmVnaXN0ZXJlZC4gT3ZlcndyaXRpbmcuYCksdGhpcy52aWV3cy5zZXQoZS5pZCxlKX1yZWdpc3RlckFsbChlKXtlLmZvckVhY2godD0+dGhpcy5yZWdpc3Rlcih0KSl9Z2V0KGUpe3JldHVybiB0aGlzLnZpZXdzLmdldChlKX1nZXRWaWV3SWRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy5rZXlzKCkpfWdldEFsbCgpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudmlld3MudmFsdWVzKCkpfWdldFJvdXRlKGUpe2xldCB0PXRoaXMudmlld3MuZ2V0KGUpO3JldHVybiB0Py5yb3V0ZXx8dD8uaWR8fCIifWZpbmRCeVJvdXRlKGUpe2ZvcihsZXQgdCBvZiB0aGlzLnZpZXdzLnZhbHVlcygpKXtsZXQgYT10LnJvdXRlfHx0LmlkLHI9dGhpcy5tYXRjaFJvdXRlKGEsZSk7aWYociE9PW51bGwpcmV0dXJue3ZpZXc6dCxwYXJhbXM6cn19fW1hdGNoUm91dGUoZSx0KXtsZXQgYT1lLnNwbGl0KCIvIikscj10LnNwbGl0KCIvIik7aWYoYS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXS5lbmRzV2l0aCgiPyIpKXtpZihyLmxlbmd0aDxhLmxlbmd0aC0xfHxyLmxlbmd0aD5hLmxlbmd0aClyZXR1cm4gbnVsbH1lbHNlIGlmKGEubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IG89e307Zm9yKGxldCBsPTA7bDxhLmxlbmd0aDtsKyspe2xldCBwPWFbbF0sZD1wLmVuZHNXaXRoKCI/Iik7aWYoZCYmKHA9cC5zbGljZSgwLC0xKSkscC5zdGFydHNXaXRoKCI6Iikpe2xldCB1PXAuc2xpY2UoMSk7aWYocltsXSE9PXZvaWQgMClvW3VdPXJbbF07ZWxzZSBpZighZClyZXR1cm4gbnVsbH1lbHNlIGlmKHJbbF0hPT1wKXJldHVybiBudWxsfXJldHVybiBvfWFzeW5jIGNhbkxlYXZlQ3VycmVudFZpZXcoKXtpZighdGhpcy5jdXJyZW50Vmlld0lkKXJldHVybiEwO2xldCBlPXRoaXMuaW5zdGFuY2VzLmdldCh0aGlzLmN1cnJlbnRWaWV3SWQpO2lmKCFlKXJldHVybiEwO2xldCB0PWU7cmV0dXJuIHR5cGVvZiB0LmNhbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiI/YXdhaXQgdC5jYW5EZWFjdGl2YXRlKCk6ITB9YXN5bmMgYWN0aXZhdGVWaWV3KGUsdCxhKXtsZXQgcj10aGlzLnZpZXdzLmdldChlKTtpZighcilyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDtsZXQgbj1yLmNhY2hlIT09ITE7dGhpcy5jdXJyZW50Vmlld0lkJiZ0aGlzLmN1cnJlbnRWaWV3SWQhPT1lJiZhd2FpdCB0aGlzLmRlYWN0aXZhdGVWaWV3KHRoaXMuY3VycmVudFZpZXdJZCk7bGV0IG89bj90aGlzLmluc3RhbmNlcy5nZXQoZSk6dm9pZCAwO2lmKG8pby5zdHlsZS5kaXNwbGF5PSIiO2Vsc2V7aWYobz1hd2FpdCB0aGlzLmNyZWF0ZVZpZXdFbGVtZW50KHIpLCFvKXJldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGVsZW1lbnQgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDt0LmFwcGVuZENoaWxkKG8pLG4mJnRoaXMuaW5zdGFuY2VzLnNldChlLG8pfXJldHVybiB0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxhd2FpdCB0aGlzLmNhbGxPbkFjdGl2YXRlKG8sZSxhKSxvfWFzeW5jIGRlYWN0aXZhdGVWaWV3KGUpe2xldCB0PXRoaXMuaW5zdGFuY2VzLmdldChlKTtpZighdClyZXR1cm47bGV0IGE9dDt0eXBlb2YgYS5vbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiImJmF3YWl0IGEub25EZWFjdGl2YXRlKCksdC5zdHlsZS5kaXNwbGF5PSJub25lIn1hc3luYyBjcmVhdGVWaWV3RWxlbWVudChlKXtsZXQgdD1lLmNvbnRlbnQ7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiImJiEodC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkmJnQuY29uc3RydWN0b3IubmFtZT09PSJBc3luY0Z1bmN0aW9uIil0cnl7dD1hd2FpdCB0KCl9Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGFzeW5jIGNvbnRlbnQgZm9yIHZpZXcgIiR7ZS5pZH0iOmAsciksbnVsbH1sZXQgYTtpZih0eXBlb2YgdD09InN0cmluZyIpYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpaWYodC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClhPW5ldyB0O2Vsc2V7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixyLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IG49dCgpO2gxKG4sciksYT1yfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2UuaWR9ImApLG51bGw7cmV0dXJuIGEuZGF0YXNldC52aWV3SWQ9ZS5pZCxhfWFzeW5jIGNhbGxPbkFjdGl2YXRlKGUsdCxhKXtsZXQgcj1lO2lmKHR5cGVvZiByLm9uQWN0aXZhdGU9PSJmdW5jdGlvbiIpe2xldCBuPXthcHB1aTp0aGlzLmFwcHVpLHZpZXdJZDp0LHBhcmFtczphfTthd2FpdCByLm9uQWN0aXZhdGUobil9fXJlbmRlclZpZXcoZSx0KXtsZXQgYT10aGlzLnZpZXdzLmdldChlKTtpZighYSlyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDt0LmlubmVySFRNTD0iIjtsZXQgcixuPWEuY29udGVudDtpZih0eXBlb2Ygbj09InN0cmluZyIpcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KG4pO2Vsc2UgaWYodHlwZW9mIG49PSJmdW5jdGlvbiIpaWYobi5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClyPW5ldyBuO2Vsc2V7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixvLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IGw9bigpO2gxKGwsbykscj1vfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2V9ImApLG51bGw7cmV0dXJuIHQuYXBwZW5kQ2hpbGQociksdGhpcy5pbnN0YW5jZXMuc2V0KGUsciksdGhpcy5jdXJyZW50Vmlld0lkPWUscn1nZXRDdXJyZW50Vmlld0lkKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZH1nZXRJbnN0YW5jZShlKXtyZXR1cm4gdGhpcy5pbnN0YW5jZXMuZ2V0KGUpfWNsZWFySW5zdGFuY2UoZSl7bGV0IHQ9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHRoaXMuaW5zdGFuY2VzLmRlbGV0ZShlKSx0aGlzLmN1cnJlbnRWaWV3SWQ9PT1lJiYodGhpcy5jdXJyZW50Vmlld0lkPW51bGwpfWNsZWFySW5zdGFuY2VzKCl7Zm9yKGxldFtlLHRdb2YgdGhpcy5pbnN0YW5jZXMpdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk7dGhpcy5pbnN0YW5jZXMuY2xlYXIoKSx0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbH11bnJlZ2lzdGVyKGUpe3JldHVybiB0aGlzLmNsZWFySW5zdGFuY2UoZSksdGhpcy52aWV3cy5kZWxldGUoZSl9Y2xlYXIoKXt0aGlzLnZpZXdzLmNsZWFyKCksdGhpcy5jbGVhckluc3RhbmNlcygpfWhhcyhlKXtyZXR1cm4gdGhpcy52aWV3cy5oYXMoZSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy52aWV3cy5zaXplfX19KTt2YXIgcXZhLGp2YT1nKCgpPT57cGUoKTtxdmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1tYWlubWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tbWFpbm1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgIC5sb2dvSWNvbj0keyJsdWNpZGU6Ym94In0KICAgICAgLmxvZ29UZXh0PSR7IkFjbWUgQXBwIn0KICAgICAgLm1lbnVHcm91cHM9JHtbe3RhYnM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRhc2hib2FyZCIpLCJhY3Rpb24iKX0se2tleToiSW5ib3giLGljb25OYW1lOiJsdWNpZGU6aW5ib3giLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSW5ib3giKSwiYWN0aW9uIil9XX0se25hbWU6IldvcmtzcGFjZSIsdGFiczpbe2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlByb2plY3RzIiksImFjdGlvbiIpfSx7a2V5OiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJUYXNrcyIpLCJhY3Rpb24iKX0se2tleToiRG9jdW1lbnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50cyIpLCJhY3Rpb24iKX1dfSx7bmFtZToiQW5hbHl0aWNzIix0YWJzOlt7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIiksImFjdGlvbiIpfSx7a2V5OiJJbnNpZ2h0cyIsaWNvbk5hbWU6Imx1Y2lkZTpsaWdodGJ1bGIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSW5zaWdodHMiKSwiYWN0aW9uIil9XX1dfQogICAgICAuYm90dG9tVGFicz0ke1t7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkhlbHAiKSwiYWN0aW9uIil9XX0KICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIHA0LFhuLGxlcyxWbnQ9ZygoKT0+e3ZvKCk7YTQoKTtHbigpO3BlKCk7ZnIoKTtqdmEoKTtodCgpO3A0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxYbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1tYWlubWVudSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlNYWlubWVudSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpBcnJheX0pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woKV0sTz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0scDQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibG9nb0ljb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5sb2dvSWNvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmxvZ29JY29uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxwNCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJsb2dvVGV4dCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmxvZ29UZXh0LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MubG9nb1RleHQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHA0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibWVudUdyb3VwcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm1lbnVHcm91cHMsImdldCIpLHNldDppKChTLEkpPT57Uy5tZW51R3JvdXBzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxwNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImJvdHRvbVRhYnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5ib3R0b21UYWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuYm90dG9tVGFicz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZikscDQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzImluIFMsImhhcyIpLGdldDppKFM9PlMudGFicywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLHA0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkVGFiImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWRUYWIsImdldCIpLHNldDppKChTLEkpPT57Uy5zZWxlY3RlZFRhYj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXykscDQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbGxhcHNlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmNvbGxhcHNlZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSkscDQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1xdmE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Ybih0aGlzLG8sIiIpO2dldCBsb2dvSWNvbigpe3JldHVybiB0aGlzLiNlfXNldCBsb2dvSWNvbihrKXt0aGlzLiNlPWt9I3Q9KFhuKHRoaXMsbCksWG4odGhpcyxkLCIiKSk7Z2V0IGxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ29UZXh0KGspe3RoaXMuI3Q9a30jYT0oWG4odGhpcyx1KSxYbih0aGlzLGIsW10pKTtnZXQgbWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNhfXNldCBtZW51R3JvdXBzKGspe3RoaXMuI2E9a30jcz0oWG4odGhpcyx2KSxYbih0aGlzLG0sW10pKTtnZXQgYm90dG9tVGFicygpe3JldHVybiB0aGlzLiNzfXNldCBib3R0b21UYWJzKGspe3RoaXMuI3M9a30jaT0oWG4odGhpcyxmKSxYbih0aGlzLE0sW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzKGspe3RoaXMuI2k9a30jcj0oWG4odGhpcyx6KSxYbih0aGlzLEMsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGVkVGFiKGspe3RoaXMuI3I9a30jbz0oWG4odGhpcyxfKSxYbih0aGlzLCQsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNlZChrKXt0aGlzLiNvPWt9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtYmcpOwogICAgICAgIC0tdG9vbHRpcC1mZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHotaW5kZXg6ICR7Ym8uZml4ZWQuYXBwQmFyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAubG9nb1NlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29JY29uIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBNaWRkbGUgU2VjdGlvbiAoc2Nyb2xsYWJsZSkgKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAubWVudUdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnRhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYiAudGFiTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiLnNlbGVjdGVkVGFiOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAudGFiLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLnRhYi10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBCb3R0b20gU2VjdGlvbiAqLwogICAgICAuYm90dG9tU2VjdGlvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7Uz0+eyRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKFMsW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP3dgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/d2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChrPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke2submFtZT93YDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke2submFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtrLml0ZW1zLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKGs9PnRoaXMucmVuZGVyVGFiKGspKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihrKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtrPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihrKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtrLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtrLmtleX08L3NwYW4+CiAgICAgICAgJHtrLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtrLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtrLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtrLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoUz0+Uy5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKGspe3RoaXMuc2VsZWN0ZWRUYWI9ayx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjprfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBrPXRoaXMuZ2V0QWxsVGFicygpO2subGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKGtbMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxYbih0aGlzLEUpfXN0YXRpY3tYbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgVnZhLFV2YT1nKCgpPT57cGUoKTtWdmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGJhY2tncm91bmQ6ICMwZjBmMGY7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBoMyB7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICBtYXJnaW4tdG9wOiAwOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBjb2RlIHsKICAgICAgYmFja2dyb3VuZDogIzI3MjcyYTsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHVsIHsKICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAuaGVhZGluZz0keyJQcm9qZWN0cyJ9CiAgICAgIC5ncm91cHM9JHtbe25hbWU6Ik5hdmlnYXRpb24iLGljb25OYW1lOiJsdWNpZGU6Y29tcGFzcyIsaXRlbXM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIGNsaWNrZWQiKSwiYWN0aW9uIiksYmFkZ2U6MyxiYWRnZVZhcmlhbnQ6Indhcm5pbmcifSx7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMgY2xpY2tlZCIpLCJhY3Rpb24iKSxiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MifSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBOZXcgY2xpY2tlZCEiKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIkltcG9ydCBEYXRhIGNsaWNrZWQhIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiRGVsZXRlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIGl0ZW1zPyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJEZWxldGVkISIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiU3RhdHVzIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFjdGl2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja0NpcmNsZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOmkocz0+Y29uc29sZS5sb2coIlNob3cgQWN0aXZlOiIscyksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aShzPT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLHMpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6aShzPT5jb25zb2xlLmxvZygiU2VsZWN0ZWQgY2F0ZWdvcmllczoiLHMpLCJvbkNoYW5nZSIpfV19LHtuYW1lOiJSZXNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6Ym9va09wZW4iLGNvbGxhcHNlZDohMCxpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IkRvY3VtZW50YXRpb24ifSx7dHlwZToibGluayIsa2V5OiJBUEkgUmVmZXJlbmNlIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixocmVmOiJodHRwczovL2FwaS5leGFtcGxlLmNvbS9kb2NzIn0se3R5cGU6ImxpbmsiLGtleToiVXNlciBHdWlkZSIsaWNvbk5hbWU6Imx1Y2lkZTpib29rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZ3VpZGUifSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdXBwb3J0In0se3R5cGU6ImxpbmsiLGtleToiSGVscCBDZW50ZXIiLGljb25OYW1lOiJsdWNpZGU6aGVscENpcmNsZSIsaHJlZjoiL2hlbHAiLGV4dGVybmFsOiExfSx7dHlwZToibGluayIsa2V5OiJHaXRIdWIgSXNzdWVzIixpY29uTmFtZToibHVjaWRlOmdpdGh1YiIsaHJlZjoiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvaXNzdWVzIn1dfV19CiAgICAgIEBpdGVtLXNlbGVjdD0ke3M9PmNvbnNvbGUubG9nKCJUYWIgc2VsZWN0ZWQ6IixzLmRldGFpbCl9CiAgICAgIEBhY3Rpb24tY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiQWN0aW9uIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgIEBmaWx0ZXItdG9nZ2xlPSR7cz0+Y29uc29sZS5sb2coIkZpbHRlciB0b2dnbGVkOiIscy5kZXRhaWwpfQogICAgICBAbXVsdGlmaWx0ZXItY2hhbmdlPSR7cz0+Y29uc29sZS5sb2coIk11bHRpLWZpbHRlciBjaGFuZ2VkOiIscy5kZXRhaWwpfQogICAgICBAbGluay1jbGljaz0ke3M9PmNvbnNvbGUubG9nKCJMaW5rIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICA8aDM+U2Vjb25kYXJ5IE1lbnUgRGVtbzwvaDM+CiAgICAgIDxwPlRoaXMgZGVtbyBzaG93Y2FzZXMgYWxsIDggaXRlbSB0eXBlczo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+PGNvZGU+dGFiPC9jb2RlPiAtIFNlbGVjdGFibGUgaXRlbXMgKE5hdmlnYXRpb24gZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiAtIEJsdWUgYWN0aW9ucyAoQWN0aW9ucyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IHdpdGggPGNvZGU+dmFyaWFudDogJ2Rhbmdlcic8L2NvZGU+IC0gUmVkIGRhbmdlciBhY3Rpb248L2xpPgogICAgICAgIDxsaT48Y29kZT5maWx0ZXI8L2NvZGU+IC0gQ2hlY2tib3ggdG9nZ2xlcyAoRmlsdGVycyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5tdWx0aUZpbHRlcjwvY29kZT4gLSBDb2xsYXBzaWJsZSBtdWx0aS1zZWxlY3QgKENhdGVnb3JpZXMpPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZGl2aWRlcjwvY29kZT4gLSBWaXN1YWwgc2VwYXJhdG9yczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmhlYWRlcjwvY29kZT4gLSBTZWN0aW9uIGxhYmVsczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmxpbms8L2NvZGU+IC0gRXh0ZXJuYWwvaW50ZXJuYWwgbGlua3MgKFJlc291cmNlcyBncm91cCk8L2xpPgogICAgICA8L3VsPgogICAgICA8cD5UcnkgdGhlIGNvbGxhcHNlIHRvZ2dsZSBvbiB0aGUgbGVmdCBlZGdlITwvcD4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEJ1LEJvLGNlcyxVbnQ9ZygoKT0+e3ZvKCk7YTQoKTtmcigpO0dhKCk7cGUoKTtVdmEoKTtodCgpO0J1PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxCbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sY2VzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W107dmFyIEk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVNlY29uZGFyeW1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOkFycmF5fSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpPYmplY3R9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sQnUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJoZWFkaW5nImluIFIsImhhcyIpLGdldDppKFI9PlIuaGVhZGluZywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmhlYWRpbmc9S30sInNldCIpfSxtZXRhZGF0YTpQfSxvLGwpLEJ1KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJncm91cHMiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5ncm91cHMsImdldCIpLHNldDppKChSLEspPT57Ui5ncm91cHM9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLEJ1KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VsZWN0aW9uT3B0aW9ucyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNlbGVjdGlvbk9wdGlvbnMsImdldCIpLHNldDppKChSLEspPT57Ui5zZWxlY3Rpb25PcHRpb25zPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxCdSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VsZWN0ZWRJdGVtImluIFIsImhhcyIpLGdldDppKFI9PlIuc2VsZWN0ZWRJdGVtLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc2VsZWN0ZWRJdGVtPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbSxmKSxCdSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZEdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY29sbGFwc2VkR3JvdXBzImluIFIsImhhcyIpLGdldDppKFI9PlIuY29sbGFwc2VkR3JvdXBzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuY29sbGFwc2VkR3JvdXBzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sTSx6KSxCdSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZE11bHRpRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY29sbGFwc2VkTXVsdGlGaWx0ZXJzImluIFIsImhhcyIpLGdldDppKFI9PlIuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxCdSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlckNvdW50ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InJlbmRlckNvdW50ZXIiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5yZW5kZXJDb3VudGVyLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IucmVuZGVyQ291bnRlcj1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LCQsRSksQnUodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+ImNvbGxhcHNlZCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmNvbGxhcHNlZD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGssUyksQnUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6UH0sbnVsbCx0KSxJPWE9ZS52YWx1ZSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX1zdGF0aWMgZGVtbz1WdmE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Cbyh0aGlzLG8sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKFApe3RoaXMuI2U9UH0jdD0oQm8odGhpcyxsKSxCbyh0aGlzLGQsW10pKTtnZXQgZ3JvdXBzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGdyb3VwcyhQKXt0aGlzLiN0PVB9I2E9KEJvKHRoaXMsdSksQm8odGhpcyxiLFtdKSk7Z2V0IHNlbGVjdGlvbk9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0aW9uT3B0aW9ucyhQKXt0aGlzLiNhPVB9I3M9KEJvKHRoaXMsdiksQm8odGhpcyxtLG51bGwpKTtnZXQgc2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkSXRlbShQKXt0aGlzLiNzPVB9I2k9KEJvKHRoaXMsZiksQm8odGhpcyxNLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkR3JvdXBzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbGxhcHNlZEdyb3VwcyhQKXt0aGlzLiNpPVB9I3I9KEJvKHRoaXMseiksQm8odGhpcyxDLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkTXVsdGlGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycyhQKXt0aGlzLiNyPVB9I289KEJvKHRoaXMsXyksQm8odGhpcywkLDApKTtnZXQgcmVuZGVyQ291bnRlcigpe3JldHVybiB0aGlzLiNvfXNldCByZW5kZXJDb3VudGVyKFApe3RoaXMuI289UH0jbj0oQm8odGhpcyxFKSxCbyh0aGlzLGssITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbGxhcHNlZChQKXt0aGlzLiNuPVB9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQ6IDI0MHB4OwogICAgICAgIC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS1zaWRlYmFyLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgLS1zaWRlYmFyLWZnOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICAtLXNpZGViYXItZmctbXV0ZWQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgLS1zaWRlYmFyLWZnLWFjdGl2ZTogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIC0tc2lkZWJhci1ib3JkZXI6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgLS1zaWRlYmFyLWhvdmVyOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICAtLXNpZGViYXItYWN0aXZlOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgLS1zaWRlYmFyLWFjY2VudDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIC0tdG9vbHRpcC1iZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWJnKTsKICAgICAgICAtLXRvb2x0aXAtZmc6IHZhcigtLWRlZXMtY29sb3ItdG9vbHRpcC1mZyk7CgogICAgICAgIC8qIEJhZGdlIGNvbG9ycyAqLwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1iZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICAtLWJhZGdlLWRlZmF1bHQtZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1mZyk7CiAgICAgICAgLS1iYWRnZS1zdWNjZXNzLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtYmcpOwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1mZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgICAtLWJhZGdlLXdhcm5pbmctYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgLS1iYWRnZS13YXJuaW5nLWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICAgIC0tYmFkZ2UtZXJyb3ItYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItYmcpOwogICAgICAgIC0tYmFkZ2UtZXJyb3ItZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwoKICAgICAgICAvKiBBY3Rpb24gY29sb3JzICovCiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeTogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICAgIC0tYWN0aW9uLXByaW1hcnktaG92ZXI6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzYwYTVmYSIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXI6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXItaG92ZXI6ICR7aC5iZFRoZW1lKCIjYjkxYzFjIiwiI2Y4NzE3MSIpfTsKCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1leHBhbmRlZCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iZyk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZCk7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTEycHg7CiAgICAgICAgdG9wOiAyNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGxhYmxlIE1lbnUgU2VjdGlvbiAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpob3ZlciB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIHBhZGRpbmc6IDdweCAxMXB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6bm90KC5jb2xsYXBzZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXdhcm0pOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtd2FybSk7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC13YXJtKTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLyogSGlkZSBncm91cCBoZWFkZXJzIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEdyb3VwIEl0ZW1zIENvbnRhaW5lciAqLwogICAgICAuZ3JvdXBJdGVtcyB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXJnaW4gMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBJdGVtcy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBBbHdheXMgc2hvdyBpdGVtcyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKHJlZ2FyZGxlc3Mgb2YgZ3JvdXAgY29sbGFwc2Ugc3RhdGUpICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBJdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBNZW51IEl0ZW0gQmFzZSAqLwogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5LWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNywgOTksIDIzNSwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlcik7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlci1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjIwLCAzOCwgMzgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogRmlsdGVyIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAvKiBNdWx0aS1GaWx0ZXIgQ29udGFpbmVyICovCiAgICAgIC5tdWx0aUZpbHRlciB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLWNvdW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucyB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiBkZWVzLWljb24ub3B0aW9uLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKi8KICAgICAgLm1lbnVEaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51RGl2aWRlciB7CiAgICAgICAgbWFyZ2luOiA4cHggNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIvTGFiZWwgKi8KICAgICAgLm1lbnVIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA0cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUhlYWRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGluayBJdGVtICovCiAgICAgIC5tZW51SXRlbS5saW5rIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgbWVudSBpdGVtIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmZpbHRlci1jaGVja2JveCwKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tdWx0aUZpbHRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC5pdGVtLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLml0ZW0tdG9vbHRpcDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbTpob3ZlciAuaXRlbS10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOwogICAgICB9CgogICAgICAvKiBCYWRnZSBTdHlsZXMgKi8KICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMZWdhY3kgb3B0aW9ucyBjb250YWluZXIgKi8KICAgICAgLmxlZ2FjeU9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyIChsZWdhY3kpICovCiAgICAgIC5kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5ncm91cHMubGVuZ3RoPjA/dGhpcy5yZW5kZXJHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeU9wdGlvbnMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyR3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncm91cHMubWFwKFA9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9Imdyb3VwSGVhZGVyICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKFAubmFtZSk/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlR3JvdXAoUC5uYW1lKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJncm91cFRpdGxlIj4KICAgICAgICAgICAgICAke1AuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihQLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgJHtQLm5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBJdGVtcyAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhQLm5hbWUpPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICR7UC5pdGVtcy5tYXAoUj0+dGhpcy5yZW5kZXJJdGVtKFIsUCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJJdGVtKFAsUil7aWYoImhpZGRlbiJpbiBQJiZQLmhpZGRlbilyZXR1cm4gd2BgO3N3aXRjaCgidHlwZSJpbiBQP1AudHlwZToidGFiIil7Y2FzZSJhY3Rpb24iOnJldHVybiB0aGlzLnJlbmRlckFjdGlvbkl0ZW0oUCk7Y2FzZSJmaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlckZpbHRlckl0ZW0oUCk7Y2FzZSJtdWx0aUZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIHRoaXMucmVuZGVyRGl2aWRlcigpO2Nhc2UiaGVhZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJIZWFkZXIoUCk7Y2FzZSJsaW5rIjpyZXR1cm4gdGhpcy5yZW5kZXJMaW5rSXRlbShQKTtkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oUCxSKX19cmVuZGVyVGFiSXRlbShQLFIpe2xldCBLPXRoaXMuc2VsZWN0ZWRJdGVtPy5rZXk9PT1QLmtleSxWPVAuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSAke0s/InNlbGVjdGVkIjoiIn0gJHtWPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IVYmJnRoaXMuc2VsZWN0VGFiSXRlbShQLFIpfSIKICAgICAgICBAY29udGV4dG1lbnU9IiR7Vz0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShXLFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICAke1AuYmFkZ2UhPT12b2lkIDA/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke1AuYmFkZ2VWYXJpYW50fHwiZGVmYXVsdCJ9Ij4ke1AuYmFkZ2V9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtQLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25JdGVtKFApe2xldCBSPVAudmFyaWFudHx8InByaW1hcnkiLEs9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGFjdGlvbi0ke1J9ICR7Sz8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFLJiZ0aGlzLmhhbmRsZUFjdGlvbkNsaWNrKFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbHRlckl0ZW0oUCl7bGV0IFI9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGZpbHRlciAke1AuYWN0aXZlPyJhY3RpdmUiOiIifSAke1I/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hUiYmdGhpcy5oYW5kbGVGaWx0ZXJUb2dnbGUoUCl9IgogICAgICA+CiAgICAgICAgJHtQLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7UC5rZXl9PC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1jaGVja2JveCAke1AuYWN0aXZlPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgJHtQLmFjdGl2ZT93YDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7UC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFApe2xldCBSPXRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLmhhcyhQLmtleSksSz1QLm9wdGlvbnMuZmlsdGVyKFY9PlYuY2hlY2tlZCkubGVuZ3RoO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlciI+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLWhlYWRlciAke1I/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZU11bHRpRmlsdGVyKFAua2V5KX0iCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLXRpdGxlIj4KICAgICAgICAgICAgJHtQLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke1Aua2V5fQogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgJHtLPjA/d2A8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItY291bnQiPiR7S308L3NwYW4+YDoiIn0KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9ucyAke1I/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICR7UC5vcHRpb25zLm1hcChWPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbiIKICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuaGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoUCxWLmtleSl9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWNoZWNrYm94ICR7Vi5jaGVja2VkPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgICAgICAgJHtWLmNoZWNrZWQ/d2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke1YuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIGNsYXNzPSJvcHRpb24taWNvbiIgLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFYuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8c3Bhbj4ke1YubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGl2aWRlcigpe3JldHVybiB3YDxkaXYgY2xhc3M9Im1lbnVEaXZpZGVyIj48L2Rpdj5gfXJlbmRlckhlYWRlcihQKXtyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51SGVhZGVyIj4ke1AubGFiZWx9PC9kaXY+YH1yZW5kZXJMaW5rSXRlbShQKXtsZXQgUj1QLmV4dGVybmFsPz9QLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpLEs9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGxpbmsgJHtLPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUsmJnRoaXMuaGFuZGxlTGlua0NsaWNrKFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICAke1I/d2A8ZGVlcy1pY29uIGNsYXNzPSJleHRlcm5hbC1pY29uIiAuaWNvbj0iJHsibHVjaWRlOmV4dGVybmFsTGluayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7UC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGVnYWN5T3B0aW9ucygpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsZWdhY3lPcHRpb25zIj4KICAgICAgICAke3RoaXMuc2VsZWN0aW9uT3B0aW9ucy5tYXAoUD0+e2lmKCJkaXZpZGVyImluIFAmJlAuZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj5gO2xldCBSPVAsSz17a2V5OlIua2V5LGljb25OYW1lOlIuaWNvbk5hbWUsYWN0aW9uOlIuYWN0aW9uLGJhZGdlOlIuYmFkZ2UsYmFkZ2VWYXJpYW50OlIuYmFkZ2VWYXJpYW50fTtyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKEspfSl9CiAgICAgIDwvZGl2PgogICAgYH1ub3JtYWxpemVJY29uKFApe3JldHVybiBQLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9QOmBsdWNpZGU6JHtQfWB9dG9nZ2xlR3JvdXAoUCl7bGV0IFI9bmV3IFNldCh0aGlzLmNvbGxhcHNlZEdyb3Vwcyk7Ui5oYXMoUCk/Ui5kZWxldGUoUCk6Ui5hZGQoUCksdGhpcy5jb2xsYXBzZWRHcm91cHM9Un10b2dnbGVNdWx0aUZpbHRlcihQKXtsZXQgUj1uZXcgU2V0KHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzKTtSLmhhcyhQKT9SLmRlbGV0ZShQKTpSLmFkZChQKSx0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1SfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXNlbGVjdFRhYkl0ZW0oUCxSKXt0aGlzLnNlbGVjdGVkSXRlbT1QLFAuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06UCxncm91cDpSfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGhhbmRsZUFjdGlvbkNsaWNrKFApe1AuY29uZmlybU1lc3NhZ2UmJiF3aW5kb3cuY29uZmlybShQLmNvbmZpcm1NZXNzYWdlKXx8KGF3YWl0IFAuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOntpdGVtOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZUZpbHRlclRvZ2dsZShQKXtsZXQgUj0hUC5hY3RpdmU7UC5hY3RpdmU9UixQLm9uVG9nZ2xlKFIpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlci10b2dnbGUiLHtkZXRhaWw6e2l0ZW06UCxhY3RpdmU6Un0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShQLFIpe2xldCBLPVAub3B0aW9ucy5maW5kKFc9Plcua2V5PT09Uik7SyYmKEsuY2hlY2tlZD0hSy5jaGVja2VkKTtsZXQgVj1QLm9wdGlvbnMuZmlsdGVyKFc9PlcuY2hlY2tlZCkubWFwKFc9Plcua2V5KTtQLm9uQ2hhbmdlKFYpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm11bHRpZmlsdGVyLWNoYW5nZSIse2RldGFpbDp7aXRlbTpQLHNlbGVjdGVkS2V5czpWfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUxpbmtDbGljayhQKXtQLmV4dGVybmFsPz9QLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpP3dpbmRvdy5vcGVuKFAuaHJlZiwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpOndpbmRvdy5sb2NhdGlvbi5ocmVmPVAuaHJlZix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsaW5rLWNsaWNrIix7ZGV0YWlsOntpdGVtOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGV4dE1lbnUoUCxSKXskYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhQLFt7bmFtZToiVmlldyBkZXRhaWxzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksaWNvbk5hbWU6Imx1Y2lkZTpleWUifSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIn1dKX1hc3luYyBmaXJzdFVwZGF0ZWQoUCl7aWYoYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKFApLHRoaXMuZ3JvdXBzLmxlbmd0aD4wKXtsZXQgUj1uZXcgU2V0LEs9bmV3IFNldDtpZih0aGlzLmdyb3Vwcy5mb3JFYWNoKFY9PntWLmNvbGxhcHNlZCYmUi5hZGQoVi5uYW1lKSxWLml0ZW1zLmZvckVhY2goVz0+e2lmKCJ0eXBlImluIFcmJlcudHlwZT09PSJtdWx0aUZpbHRlciIpe2xldCBtZT1XO21lLmNvbGxhcHNlZCYmSy5hZGQobWUua2V5KX19KX0pLHRoaXMuY29sbGFwc2VkR3JvdXBzPVIsdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9SywhdGhpcy5zZWxlY3RlZEl0ZW0pZm9yKGxldCBWIG9mIHRoaXMuZ3JvdXBzKWZvcihsZXQgVyBvZiBWLml0ZW1zKXtsZXQgbWU9InR5cGUiaW4gVz9XLnR5cGU6InRhYiI7aWYobWU9PT0idGFiInx8bWU9PT12b2lkIDApe2xldCBCPVc7aWYoIUIuZGlzYWJsZWQpe3RoaXMuc2VsZWN0VGFiSXRlbShCLFYpO3JldHVybn19fX1lbHNlIGlmKHRoaXMuc2VsZWN0aW9uT3B0aW9ucy5sZW5ndGg+MCl7bGV0IFI9dGhpcy5zZWxlY3Rpb25PcHRpb25zLmZpbmQoSz0+ISgiZGl2aWRlciJpbiBLKSk7aWYoUiYmIXRoaXMuc2VsZWN0ZWRJdGVtKXtsZXQgSz17a2V5OlIua2V5LGljb25OYW1lOlIuaWNvbk5hbWUsYWN0aW9uOlIuYWN0aW9ufTt0aGlzLnNlbGVjdFRhYkl0ZW0oSyl9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQm8odGhpcyxTKX1zdGF0aWN7Qm8oYSx0KX19O3JldHVybiBJPWF9KSgpfSk7dmFyIHQ3LFFjLFpWbyxYVm8sV3ZhLEd2YT1nKCgpPT57cGUoKTthNCgpO3Q3PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxRYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sWlZvPSgoKT0+e2xldCBzPVtuZSgiZGVtby1jbG9zZWFibGUtdGFicyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vQ2xvc2VhYmxlVGFicyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSx0Nyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InRhYnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di50YWJzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YudGFicz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksdDcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJ0YWJDb3VudGVyImluIHYsImhhcyIpLGdldDppKHY9PnYudGFiQ291bnRlciwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnRhYkNvdW50ZXI9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLHQ3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9I2U9UWModGhpcyxvLFt7a2V5OiJNYWluIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWFpbiBjbGlja2VkIiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoYil7dGhpcy4jZT1ifSN0PShRYyh0aGlzLGwpLFFjKHRoaXMsZCwwKSk7Z2V0IHRhYkNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGFiQ291bnRlcihiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTthZGRUYWIoKXt0aGlzLnRhYkNvdW50ZXIrKztsZXQgYj1gRG9jdW1lbnQgJHt0aGlzLnRhYkNvdW50ZXJ9YDt0aGlzLnRhYnM9Wy4uLnRoaXMudGFicyx7a2V5OmIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYCR7Yn0gY2xpY2tlZGApLCJhY3Rpb24iKSxjbG9zZWFibGU6ITAsb25DbG9zZTppKCgpPT50aGlzLnJlbW92ZVRhYihiKSwib25DbG9zZSIpfV19cmVtb3ZlVGFiKGIpe3RoaXMudGFicz10aGlzLnRhYnMuZmlsdGVyKHY9PnYua2V5IT09Yil9Y2xlYXJBbGwoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS10YWJzIik/LmNsZWFyKCksdGhpcy50YWJzPVtdLHRoaXMudGFiQ291bnRlcj0wfXJlbmRlcigpe2xldCBiPVt7aWQ6ImFkZCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+dGhpcy5hZGRUYWIoKSwiYWN0aW9uIiksdG9vbHRpcDoiTmV3IFRhYiJ9LHtpZDoiY2xlYXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aSgoKT0+dGhpcy5jbGVhckFsbCgpLCJhY3Rpb24iKSx0b29sdGlwOiJDbGVhciBBbGwgVGFicyJ9XTtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgIC5hY3Rpb25zUmlnaHQ9JHtifQogICAgICAgIEB0YWItY2xvc2U9JHt2PT50aGlzLnJlbW92ZVRhYih2LmRldGFpbC50YWIua2V5KX0KICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBDbGljayB0aGUgWCBidXR0b24gb24gdGFicyB0byBjbG9zZSB0aGVtLiBVc2UgdGhlICsgYnV0dG9uIHRvIGFkZCB0YWJzIGFuZCB0aGUgdHJhc2ggYnV0dG9uIHRvIGNsZWFyIGFsbC4KICAgICAgICA8YnI+Q3VycmVudCB0YWJzOiAke3RoaXMudGFicy5sZW5ndGh9CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUWModGhpcyx1KX1zdGF0aWN7UWMoYSx0KX19O3JldHVybiBjPWF9KSgpLFhWbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tYXV0b2hpZGUtdGFicyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vQXV0b0hpZGVUYWJzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0sdDcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ0YWJzImluIGYsImhhcyIpLGdldDppKGY9PmYudGFicywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRhYnM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLHQ3KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImF1dG9IaWRlImluIGYsImhhcyIpLGdldDppKGY9PmYuYXV0b0hpZGUsImdldCIpLHNldDppKChmLHkpPT57Zi5hdXRvSGlkZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksdDcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InRocmVzaG9sZCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRocmVzaG9sZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksdDcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX0jZT1RYyh0aGlzLG8sW3trZXk6IlRhYiAxIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVGFiIDEiKSwiYWN0aW9uIil9LHtrZXk6IlRhYiAyIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVGFiIDIiKSwiYWN0aW9uIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhtKXt0aGlzLiNlPW19I3Q9KFFjKHRoaXMsbCksUWModGhpcyxkLCEwKSk7Z2V0IGF1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGF1dG9IaWRlKG0pe3RoaXMuI3Q9bX0jYT0oUWModGhpcyx1KSxRYyh0aGlzLGIsMSkpO2dldCB0aHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGhyZXNob2xkKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgZGVlcy1hcHB1aS10YWJzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAucGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAuY29udHJvbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTt0YWJDb3VudGVyPShRYyh0aGlzLHYpLDIpO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrLHRoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6YFRhYiAke3RoaXMudGFiQ291bnRlcn1gLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCksImFjdGlvbiIpfV19cmVtb3ZlTGFzdFRhYigpe3RoaXMudGFicy5sZW5ndGg+MCYmKHRoaXMudGFicz10aGlzLnRhYnMuc2xpY2UoMCwtMSkpfWNsZWFyVGFicygpe3RoaXMudGFicz1bXX1yZW5kZXIoKXtsZXQgbT10aGlzLmF1dG9IaWRlJiZ0aGlzLnRhYnMubGVuZ3RoPD10aGlzLnRocmVzaG9sZDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICR7bT93YDxzcGFuIGNsYXNzPSJwbGFjZWhvbGRlciI+VGFicyBoaWRkZW4gKCR7dGhpcy50YWJzLmxlbmd0aH0gdGFicyDiiaQgdGhyZXNob2xkICR7dGhpcy50aHJlc2hvbGR9KTwvc3Bhbj5gOndgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgICAgICAgIC5hdXRvSGlkZT0ke3RoaXMuYXV0b0hpZGV9CiAgICAgICAgICAgICAgLmF1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy50aHJlc2hvbGR9CiAgICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz5gfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkVGFiKCl9PisgQWRkIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTGFzdFRhYigpfT4tIFJlbW92ZSBUYWI8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmNsZWFyVGFicygpfT5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9MH19PlRocmVzaG9sZDogMDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0xfX0+VGhyZXNob2xkOiAxPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTJ9fT5UaHJlc2hvbGQ6IDI8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIEF1dG8taGlkZTogJHt0aGlzLmF1dG9IaWRlPyJPTiI6Ik9GRiJ9IHwgVGhyZXNob2xkOiAke3RoaXMudGhyZXNob2xkfSB8IFRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgICA8YnI+VGFicyB3aWxsIGhpZGUgd2hlbiBjb3VudCDiiaQgdGhyZXNob2xkLgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1FjKGEsdCl9fTtyZXR1cm4geD1hfSkoKSxXdmE9aSgoKT0+e2xldCBzPVt7a2V5OiJIb21lIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSG9tZSBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBbmFseXRpY3MgRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IlVzZXIgU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkhlbHAgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGU9W3trZXk6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IlNlY3VyaXR5IixpY29uTmFtZToibHVjaWRlOnNoaWVsZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZWN1cml0eSBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJOb3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJJbnRlZ3JhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6bGluayIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJJbnRlZ3JhdGlvbnMgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQWR2YW5jZWQiLGljb25OYW1lOiJsdWNpZGU6Y29kZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBZHZhbmNlZCBjbGlja2VkIiksImFjdGlvbiIpfV0sdD1be2tleToiQWxsIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFsbCBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBY3RpdmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWN0aXZlIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkNvbXBsZXRlZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDb21wbGV0ZWQgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQXJjaGl2ZWQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGE9W3tpZDoiYmFjayIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd0xlZnQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQmFjayIpLCJhY3Rpb24iKSx0b29sdGlwOiJHbyBCYWNrIn1dLHI9W3tpZDoiYWRkIixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWRkIHRhYiIpLCJhY3Rpb24iKSx0b29sdGlwOiJOZXcgVGFiIn0se2lkOiJzZWFyY2giLGljb25OYW1lOiJsdWNpZGU6c2VhcmNoIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNlYXJjaCIpLCJhY3Rpb24iKSx0b29sdGlwOiJTZWFyY2ggVGFicyJ9LHtpZDoiZGlzYWJsZWQiLGljb25OYW1lOiJsdWNpZGU6bG9jayIsYWN0aW9uOmkoKCk9Pnt9LCJhY3Rpb24iKSx0b29sdGlwOiJEaXNhYmxlZCBBY3Rpb24iLGRpc2FibGVkOiEwfV0sbj1pKG89PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OyI+CiAgICAgICR7b30KICAgIDwvZGl2PgogIGAsImRlbW9Db250ZW50Iik7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnR3by1jb2x1bW4gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMDBweCAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SG9yaXpvbnRhbCBUYWJzIHdpdGggQW5pbWF0ZWQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFicz0ke3N9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7bigiU2VsZWN0IGEgdGFiIHRvIHNlZSB0aGUgc21vb3RoIHNsaWRpbmcgYW5pbWF0aW9uIG9mIHRoZSBpbmRpY2F0b3IuIFRoZSBpbmRpY2F0b3IgYXV0b21hdGljYWxseSBhZGp1c3RzIGl0cyB3aWR0aCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgd2l0aCBtaW5pbWFsIHBhZGRpbmcuIil9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VGFicyB3aXRoIEFjdGlvbiBCdXR0b25zPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgLnRhYnM9JHtzfQogICAgICAgICAgLmFjdGlvbnNMZWZ0PSR7YX0KICAgICAgICAgIC5hY3Rpb25zUmlnaHQ9JHtyfQogICAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAke24oIkFjdGlvbiBidXR0b25zIGNhbiBiZSBwbGFjZWQgb24gZWl0aGVyIHNpZGUgb2YgdGhlIHRhYiBiYXIuIFRoZXkgcmVtYWluIGZpeGVkIHdoaWxlIHRhYnMgc2Nyb2xsLiBUaGUgbG9jayBpY29uIHNob3dzIGEgZGlzYWJsZWQgYWN0aW9uLiIpfQogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsb3NlYWJsZSBUYWJzIHdpdGggQWN0aW9uczwvZGl2PgogICAgICAgIDxkZW1vLWNsb3NlYWJsZS10YWJzPjwvZGVtby1jbG9zZWFibGUtdGFicz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdXRvLWhpZGUgVGFiczwvZGl2PgogICAgICAgIDxkZW1vLWF1dG9oaWRlLXRhYnM+PC9kZW1vLWF1dG9oaWRlLXRhYnM+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmVydGljYWwgVGFicyBMYXlvdXQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0d28tY29sdW1uIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnRhYlN0eWxlPSR7InZlcnRpY2FsIn0gLnRhYnM9JHtlfT48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAgICR7bigiVmVydGljYWwgdGFicyB3b3JrIGdyZWF0IGZvciBzZXR0aW5ncyBwYWdlcyBhbmQgbmF2aWdhdGlvbiBtZW51cy4gVGhlIGFuaW1hdGVkIGluZGljYXRvciBzbW9vdGhseSB0cmFuc2l0aW9ucyBiZXR3ZWVuIHNlbGVjdGlvbnMuIil9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+V2l0aG91dCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC5zaG93VGFiSW5kaWNhdG9yPSR7ITF9IC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtuKCJUYWJzIGNhbiBhbHNvIGJlIHVzZWQgd2l0aG91dCB0aGUgYW5pbWF0ZWQgaW5kaWNhdG9yIGJ5IHNldHRpbmcgc2hvd1RhYkluZGljYXRvciB0byBmYWxzZS4iKX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBMMix2cixkZXMsV250PWcoKCk9PnthNCgpO3BlKCk7a3QoKTtHdmEoKTtodCgpO0wyPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx2cj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS10YWJzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W107dmFyIG1lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlUYWJzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W0woe3R5cGU6QXJyYXl9KV0sSD1bTCh7dHlwZTpBcnJheX0pXSxJPVtZKCldLEs9W1koKV0sTDIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0YWJzImluIFUsImhhcyIpLGdldDppKFU9PlUudGFicywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50YWJzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG8sbCksTDIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2VsZWN0ZWRUYWIiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zZWxlY3RlZFRhYj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxkLHUpLEwyKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkluZGljYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2hvd1RhYkluZGljYXRvciJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnNob3dUYWJJbmRpY2F0b3IsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc2hvd1RhYkluZGljYXRvcj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxiLHYpLEwyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiU3R5bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InRhYlN0eWxlImluIFUsImhhcyIpLGdldDppKFU9PlUudGFiU3R5bGUsImdldCIpLHNldDppKChVLGhlKT0+e1UudGFiU3R5bGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbSxmKSxMMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJhdXRvSGlkZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmF1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmF1dG9IaWRlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE0seiksTDIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYXV0b0hpZGVUaHJlc2hvbGQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5hdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5hdXRvSGlkZVRocmVzaG9sZD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxDLF8pLEwyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImFjdGlvbnNMZWZ0ImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aW9uc0xlZnQsImdldCIpLHNldDppKChVLGhlKT0+e1UuYWN0aW9uc0xlZnQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sJCxFKSxMMih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnNSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYWN0aW9uc1JpZ2h0ImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmFjdGlvbnNSaWdodD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLEwyKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iY2FuU2Nyb2xsTGVmdCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmNhblNjcm9sbExlZnQsImdldCIpLHNldDppKChVLGhlKT0+e1UuY2FuU2Nyb2xsTGVmdD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLEwyKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImNhblNjcm9sbFJpZ2h0ImluIFUsImhhcyIpLGdldDppKFU9PlUuY2FuU2Nyb2xsUmlnaHQsImdldCIpLHNldDppKChVLGhlKT0+e1UuY2FuU2Nyb2xsUmlnaHQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sVixXKSxMMihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpCfSxudWxsLHQpLG1lPWE9ZS52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX1zdGF0aWMgZGVtbz1XdmE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT12cih0aGlzLG8sW10pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoQil7dGhpcy4jZT1CfSN0PSh2cih0aGlzLGwpLHZyKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKEIpe3RoaXMuI3Q9Qn0jYT0odnIodGhpcyx1KSx2cih0aGlzLGIsITApKTtnZXQgc2hvd1RhYkluZGljYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBzaG93VGFiSW5kaWNhdG9yKEIpe3RoaXMuI2E9Qn0jcz0odnIodGhpcyx2KSx2cih0aGlzLG0sImhvcml6b250YWwiKSk7Z2V0IHRhYlN0eWxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRhYlN0eWxlKEIpe3RoaXMuI3M9Qn0jaT0odnIodGhpcyxmKSx2cih0aGlzLE0sITEpKTtnZXQgYXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b0hpZGUoQil7dGhpcy4jaT1CfSNyPSh2cih0aGlzLHopLHZyKHRoaXMsQywwKSk7Z2V0IGF1dG9IaWRlVGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGF1dG9IaWRlVGhyZXNob2xkKEIpe3RoaXMuI3I9Qn0jbz0odnIodGhpcyxfKSx2cih0aGlzLCQsW10pKTtnZXQgYWN0aW9uc0xlZnQoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWN0aW9uc0xlZnQoQil7dGhpcy4jbz1CfSNuPSh2cih0aGlzLEUpLHZyKHRoaXMsayxbXSkpO2dldCBhY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYWN0aW9uc1JpZ2h0KEIpe3RoaXMuI249Qn0jbD0odnIodGhpcyxTKSx2cih0aGlzLFAsITEpKTtnZXQgY2FuU2Nyb2xsTGVmdCgpe3JldHVybiB0aGlzLiNsfXNldCBjYW5TY3JvbGxMZWZ0KEIpe3RoaXMuI2w9Qn0jYz0odnIodGhpcyxSKSx2cih0aGlzLFYsITEpKTtnZXQgY2FuU2Nyb2xsUmlnaHQoKXtyZXR1cm4gdGhpcy4jY31zZXQgY2FuU2Nyb2xsUmlnaHQoQil7dGhpcy4jYz1CfXJlc2l6ZU9ic2VydmVyPSh2cih0aGlzLFcpLG51bGwpO3N0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyLmhvcml6b250YWwtd3JhcHBlciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsIGZhZGUgaW5kaWNhdG9ycyAqLwogICAgICAuc2Nyb2xsLWZhZGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAxcHg7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnNjcm9sbC1mYWRlLWxlZnQgewogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9IDAlLAogICAgICAgICAgJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMCkiLCJyZ2JhKDIyLDIyLDIyLDApIil9IDEwMCUpOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtcmlnaHQgewogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9IDAlLAogICAgICAgICAgJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMCkiLCJyZ2JhKDIyLDIyLDIyLDApIil9IDEwMCUpOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUudmlzaWJsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnNjcm9sbC1hcmVhIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAvKiBUYWIgYWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLnRhYi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9ucy5sZWZ0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbnMucmlnaHQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXByZXNzZWQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogU2hvdyBzY3JvbGxiYXIgb24gaG92ZXIgKi8KICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwKICAgICAgLnNjcm9sbC1hcmVhOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9OwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMzUpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjM1KSIpfTsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIudmVydGljYWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLmhvcml6b250YWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiIC50YWItY29udGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI0NCwgMjQ0LCAyNDUsIDAuNSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuNSkiKX07CiAgICAgIH0KCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAudGFiSW5kaWNhdG9yIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CiAgICAgIAogICAgICAudGFiSW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwOwogICAgICAgIHotaW5kZXg6IDM7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbC13cmFwcGVyIC50YWJJbmRpY2F0b3IgewogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wOCk7CiAgICAgIH0KCiAgICAgIC8qIENsb3NlIGJ1dHRvbiAqLwogICAgICAudGFiLWNsb3NlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1wcmVzc2VkKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMuYXV0b0hpZGVUaHJlc2hvbGQ/d2BgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJzV3JhcHBlcigpfQogICAgYH1yZW5kZXJUYWJzV3JhcHBlcigpe2xldCBCPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCIsVT1CPyJ0YWJzLXdyYXBwZXIgaG9yaXpvbnRhbC13cmFwcGVyIjoidmVydGljYWwtd3JhcHBlciIsaGU9YHRhYnNDb250YWluZXIgJHt0aGlzLnRhYlN0eWxlfWA7aWYoQil7bGV0IEY9dGhpcy5hY3Rpb25zTGVmdCYmdGhpcy5hY3Rpb25zTGVmdC5sZW5ndGg+MCxqPXRoaXMuYWN0aW9uc1JpZ2h0JiZ0aGlzLmFjdGlvbnNSaWdodC5sZW5ndGg+MDtyZXR1cm4gd2AKICAgICAgICA8ZGl2IGNsYXNzPSIke1V9Ij4KICAgICAgICAgICR7Rj90aGlzLnJlbmRlckFjdGlvbnModGhpcy5hY3Rpb25zTGVmdCwibGVmdCIpOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWFyZWEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1sZWZ0ICR7dGhpcy5jYW5TY3JvbGxMZWZ0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSIke2hlfSIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgICAke3RoaXMudGFicy5tYXAodWU9PnRoaXMucmVuZGVyVGFiKHVlLEIpKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC1mYWRlIHNjcm9sbC1mYWRlLXJpZ2h0ICR7dGhpcy5jYW5TY3JvbGxSaWdodD8idmlzaWJsZSI6IiJ9Ij48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtqP3RoaXMucmVuZGVyQWN0aW9ucyh0aGlzLmFjdGlvbnNSaWdodCwicmlnaHQiKToiIn0KICAgICAgICAgICR7dGhpcy5zaG93VGFiSW5kaWNhdG9yP3dgPGRpdiBjbGFzcz0idGFiSW5kaWNhdG9yIj48L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSIke1V9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSIke2hlfSI+CiAgICAgICAgICAke3RoaXMudGFicy5tYXAoRj0+dGhpcy5yZW5kZXJUYWIoRixCKSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25zKEIsVSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb25zICR7VX0iPgogICAgICAgICR7Qi5tYXAoaGU9PndgCiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWItYWN0aW9uLWJ1dHRvbiAke2hlLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICB0aXRsZT0iJHtoZS50b29sdGlwfHxoZS5pZH0iCiAgICAgICAgICAgIEBjbGljaz0keygpPT4haGUuZGlzYWJsZWQmJmhlLmFjdGlvbigpfQogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7aGUuaWNvbk5hbWV9PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoQixVKXtsZXQgRj1gdGFiICR7Qj09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn1gLGo9Qi5jbG9zZWFibGU/d2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSIke2xlPT50aGlzLmNsb3NlVGFiKGxlLEIpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij48L2RlZXMtaWNvbj4KICAgICAgPC9zcGFuPgogICAgYDoiIix1ZT1VP3dgCiAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY29udGVudCI+CiAgICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oQil9CiAgICAgICAgJHtCLmtleX0KICAgICAgPC9zcGFuPgogICAgICAke2p9CiAgICBgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKEIpfQogICAgICAke0Iua2V5fQogICAgICAke2p9CiAgICBgO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IiR7Rn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdFRhYihCKX0iCiAgICAgID4KICAgICAgICAke3VlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVGFiSWNvbihCKXtyZXR1cm4gQi5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249JHtCLmljb25OYW1lfT48L2RlZXMtaWNvbj5gOiIifXNlbGVjdFRhYihCKXt0aGlzLnNlbGVjdGVkVGFiPUIsQi5hY3Rpb24oKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNjcm9sbFRhYkludG9WaWV3KEIpfSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOkJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xlYXIoKXt0aGlzLnRhYnM9W10sdGhpcy5zZWxlY3RlZFRhYj1udWxsfWNsb3NlVGFiKEIsVSl7Qi5zdG9wUHJvcGFnYXRpb24oKSxVLm9uQ2xvc2UmJlUub25DbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDp7dGFiOlV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjt0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pO2xldCBCPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpO0ImJnRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShCKX1oYW5kbGVTY3JvbGw9aSgoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0sImhhbmRsZVNjcm9sbCIpO3VwZGF0ZVNjcm9sbFN0YXRlKCl7bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7aWYoIUIpcmV0dXJuO2xldCBVPUIuc2Nyb2xsTGVmdCxoZT1CLnNjcm9sbFdpZHRoLEY9Qi5jbGllbnRXaWR0aCxqPTI7dGhpcy5jYW5TY3JvbGxMZWZ0PVU+aix0aGlzLmNhblNjcm9sbFJpZ2h0PVU8aGUtRi1qfXNjcm9sbFRhYkludG9WaWV3KEIpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO2xldCBVPXRoaXMudGFicy5pbmRleE9mKEIpO2lmKFU9PT0tMSlyZXR1cm47bGV0IGhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpLEY9aGU/LnF1ZXJ5U2VsZWN0b3IoYC50YWI6bnRoLWNoaWxkKCR7VSsxfSlgKTtpZihGJiZoZSl7bGV0IGo9aGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdWU9Ri5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt1ZS5sZWZ0Pj1qLmxlZnQmJnVlLnJpZ2h0PD1qLnJpZ2h0fHxGLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pfX1hc3luYyB1cGRhdGVkKEIpe3N1cGVyLnVwZGF0ZWQoQiksQi5oYXMoInRhYnMiKSYmKCF0aGlzLnRhYnN8fHRoaXMudGFicy5sZW5ndGg9PT0wP3RoaXMuc2VsZWN0ZWRUYWIhPT1udWxsJiYodGhpcy5zZWxlY3RlZFRhYj1udWxsLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpudWxsfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKTp0aGlzLnNlbGVjdGVkVGFiJiYhdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpP3RoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSk6dGhpcy5zZWxlY3RlZFRhYnx8dGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKSksKEIuaGFzKCJzZWxlY3RlZFRhYiIpfHxCLmhhcygidGFicyIpKSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsIXRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQmJmRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVRhYkluZGljYXRvcigpLHRoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pKX1pbmRpY2F0b3JJbml0aWFsaXplZD0hMTt1cGRhdGVUYWJJbmRpY2F0b3IoKXtpZighdGhpcy5zaG91bGRTaG93SW5kaWNhdG9yKCkpcmV0dXJuO2xldCBCPXRoaXMuZ2V0U2VsZWN0ZWRUYWJFbGVtZW50KCk7aWYoIUIpcmV0dXJuO2xldCBVPXRoaXMuZ2V0SW5kaWNhdG9yRWxlbWVudCgpO1UmJih0aGlzLmhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKFUpLHRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/dGhpcy51cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKFUsQik6dGhpcy51cGRhdGVWZXJ0aWNhbEluZGljYXRvcihVLEIpLFUuc3R5bGUub3BhY2l0eT0iMSIpfXNob3VsZFNob3dJbmRpY2F0b3IoKXtyZXR1cm4hIXRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2hvd1RhYkluZGljYXRvciYmdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpfWdldFNlbGVjdGVkVGFiRWxlbWVudCgpe2xldCBCPXRoaXMudGFicy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRUYWIpLGhlPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/YC50YWJzLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtCKzF9KWA6YC52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIC50YWI6bnRoLWNoaWxkKCR7QisxfSlgO3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihoZSl9Z2V0SW5kaWNhdG9yRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRhYkluZGljYXRvciIpfWhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKEIpe3RoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChCLmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntCLmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKX11cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKEIsVSl7bGV0IGhlPVUucXVlcnlTZWxlY3RvcigiLnRhYi1jb250ZW50Iik7aWYoIWhlKXJldHVybjtsZXQgRj1CLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaj1oZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1ZT1qLmxlZnQtRi5sZWZ0LGxlPWoud2lkdGgrOCxRPXVlLTQ7Qi5zdHlsZS53aWR0aD1gJHtsZX1weGAsQi5zdHlsZS5sZWZ0PWAke1F9cHhgfXVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKEIsVSl7bGV0IGhlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciIpO2hlJiYoQi5zdHlsZS50b3A9YCR7VS5vZmZzZXRUb3AraGUub2Zmc2V0VG9wfXB4YCxCLnN0eWxlLmhlaWdodD1gJHtVLmNsaWVudEhlaWdodH1weGApfXN0YXRpY3t2cihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIGg0LFFuLHVlcyxHbnQ9ZygoKT0+e2E0KCk7cGUoKTtrdCgpO1dudCgpO2h0KCk7aDQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFFuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx1ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFwcHVpLW1haW5jb250ZW50IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aU1haW5jb250ZW50Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpBcnJheX0pXSxoNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGFicz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksaDQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2VsZWN0ZWRUYWIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNlbGVjdGVkVGFiPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxoNCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaG93VGFicyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNob3dUYWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hvd1RhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLGg0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFic0F1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzQXV0b0hpZGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzQXV0b0hpZGUsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJzQXV0b0hpZGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLGg0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzQXV0b0hpZGVUaHJlc2hvbGQsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJzQXV0b0hpZGVUaHJlc2hvbGQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLGg0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYkFjdGlvbnNMZWZ0ImluIFMsImhhcyIpLGdldDppKFM9PlMudGFiQWN0aW9uc0xlZnQsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJBY3Rpb25zTGVmdD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksaDQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJBY3Rpb25zUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYkFjdGlvbnNSaWdodCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRhYkFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYkFjdGlvbnNSaWdodD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksaDQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgLnRhYnM9JHtbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyIpLCJhY3Rpb24iKX0se2tleToiRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRldGFpbHMiKSwiYWN0aW9uIil9LHtrZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfV19CiAgICA+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDQwcHg7IGNvbG9yOiAjY2NjOyI+CiAgICAgICAgPGgxPk1haW4gQ29udGVudCBBcmVhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gY29udGVudCBnb2VzLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9UW4odGhpcyxvLFt7a2V5OiJcdTI2QTBcdUZFMEYgUGxlYXNlIHNldCB0YWJzIixhY3Rpb246aSgoKT0+Y29uc29sZS53YXJuKCJObyB0YWJzIGNvbmZpZ3VyZWQgZm9yIG1haW5jb250ZW50IiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoayl7dGhpcy4jZT1rfSN0PShRbih0aGlzLGwpLFFuKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKGspe3RoaXMuI3Q9a30jYT0oUW4odGhpcyx1KSxRbih0aGlzLGIsITApKTtnZXQgc2hvd1RhYnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1RhYnMoayl7dGhpcy4jYT1rfSNzPShRbih0aGlzLHYpLFFuKHRoaXMsbSwhMSkpO2dldCB0YWJzQXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFic0F1dG9IaWRlKGspe3RoaXMuI3M9a30jaT0oUW4odGhpcyxmKSxRbih0aGlzLE0sMCkpO2dldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFic0F1dG9IaWRlVGhyZXNob2xkKGspe3RoaXMuI2k9a30jcj0oUW4odGhpcyx6KSxRbih0aGlzLEMsW10pKTtnZXQgdGFiQWN0aW9uc0xlZnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGFiQWN0aW9uc0xlZnQoayl7dGhpcy4jcj1rfSNvPShRbih0aGlzLF8pLFFuKHRoaXMsJCxbXSkpO2dldCB0YWJBY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgdGFiQWN0aW9uc1JpZ2h0KGspe3RoaXMuI289a31zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHt0aGlzLnRhYkFjdGlvbnNMZWZ0fQogICAgICAgICAgICAuYWN0aW9uc1JpZ2h0PSR7dGhpcy50YWJBY3Rpb25zUmlnaHR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7az0+dGhpcy5oYW5kbGVUYWJTZWxlY3Qoayl9CiAgICAgICAgICAgIEB0YWItY2xvc2U9JHtrPT50aGlzLmhhbmRsZVRhYkNsb3NlKGspfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVUYWJTZWxlY3Qoayl7dGhpcy5zZWxlY3RlZFRhYj1rLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDprLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhYkNsb3NlKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDprLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSxrLmhhcygic2hvd1RhYnMiKSYmKHRoaXMuc2hvd1RhYnM/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm5vdGFicyIpOnRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKSl9YXN5bmMgZmlyc3RVcGRhdGVkKGspe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChrKSx0aGlzLnNob3dUYWJzfHx0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIik7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpO1MmJmF3YWl0IFMudXBkYXRlQ29tcGxldGV9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFFuKHRoaXMsRSl9c3RhdGlje1FuKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBxYSxUdCxwZXMsS3ZhPWcoKCk9PntwZSgpO2t0KCk7YTQoKTtIdmEoKTtodCgpO2pudCgpO0VvdCgpO0lvdCgpO1ZudCgpO1VudCgpO0dudCgpO0NvdCgpO3FhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxUdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdLEllLGNlPVtdLGRlPVtdLExlLEtlPVtdLFllPVtdLG90LFV0PVtdLFp0PVtdLGphLGV0PVtdLGJ0PVtdLHlhLGVzPVtdLHJzPVtdLHBzLG5zPVtdLHRpPVtdLGFpLHplPVtdLHhlPVtdLE5lLHh0PVtdLE1hPVtdLE5yLGZlPVtdLHJlPVtdLFNlLE9lPVtdLEplPVtdLHphLGRhPVtdLHdzPVtdLGtpLEppPVtdLFJyPVtdLFNpLHZuPVtdLHIxPVtdLG8xLG4xPVtdLGwxPVtdLGMxLGQxPVtdLHUxPVtdO3ZhciBwMT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpPYmplY3R9KV0sTj1bTCh7dHlwZTpBcnJheX0pXSxPPVtMKHt0eXBlOkJvb2xlYW59KV0sSD1bTCh7dHlwZTpTdHJpbmd9KV0sST1bTCh7dHlwZTpTdHJpbmd9KV0sSz1bTCh7dHlwZTpBcnJheX0pXSxtZT1bTCh7dHlwZTpBcnJheX0pXSxoZT1bTCh7dHlwZTpBcnJheX0pXSx1ZT1bTCh7dHlwZTpPYmplY3R9KV0saWU9W0woe3R5cGU6U3RyaW5nfSldLGtlPVtMKHt0eXBlOkFycmF5fSldLHllPVtMKHt0eXBlOk9iamVjdH0pXSxzZT1bTCh7dHlwZTpCb29sZWFufSldLFRlPVtMKHt0eXBlOkJvb2xlYW59KV0sR2U9W0woe3R5cGU6Qm9vbGVhbn0pXSxDZT1bTCh7dHlwZTpCb29sZWFufSldLEVlPVtMKHt0eXBlOkJvb2xlYW59KV0sc3Q9W0woe3R5cGU6Qm9vbGVhbn0pXSxJZT1bTCh7dHlwZTpOdW1iZXJ9KV0sTGU9W1koKV0sb3Q9W1koKV0samE9W0woe3R5cGU6QXJyYXl9KV0seWE9W0woe3R5cGU6T2JqZWN0fSldLHBzPVtMKHt0eXBlOkFycmF5fSldLGFpPVtMKHt0eXBlOkFycmF5fSldLE5lPVtZKCldLE5yPVtZKCldLFNlPVtZKCldLHphPVtZKCldLGtpPVtZKCldLFNpPVtZKCldLG8xPVtZKCldLGMxPVtZKCldLHFhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJNZW51SXRlbXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJNZW51SXRlbXMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJNZW51SXRlbXM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxvLGwpLHFhKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFwcGJhckJyZWFkY3J1bWJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyQnJlYWRjcnVtYnMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJCcmVhZGNydW1icz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGQsdSkscWEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3I9R30sInNldCIpfSxtZXRhZGF0YTpEfSxiLHYpLHFhKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJTaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxtLGYpLHFhKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyVXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYXBwYmFyVXNlciJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFwcGJhclVzZXIsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJVc2VyPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sTSx6KSxxYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJQcm9maWxlTWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEMsXykscWEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJTaG93U2VhcmNoImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyU2hvd1NlYXJjaCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFwcGJhclNob3dTZWFyY2g9R30sInNldCIpfSxtZXRhZGF0YTpEfSwkLEUpLHFhKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVMb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVMb2dvSWNvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51TG9nb0ljb24sImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudUxvZ29JY29uPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sayxTKSxxYSh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51TG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51TG9nb1RleHQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudUxvZ29UZXh0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVMb2dvVGV4dD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LFAsUikscWEodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVHcm91cHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudUdyb3VwcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULm1haW5tZW51R3JvdXBzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVixXKSxxYSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51Qm90dG9tVGFicyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51Qm90dG9tVGFicywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULm1haW5tZW51Qm90dG9tVGFicz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEIsVSkscWEodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJtYWlubWVudVRhYnMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudVRhYnMsImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudVRhYnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxGLGopLHFhKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudVNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVTZWxlY3RlZFRhYj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGxlLFEpLHFhKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVIZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51SGVhZGluZyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVIZWFkaW5nLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2Vjb25kYXJ5bWVudUhlYWRpbmc9R30sInNldCIpfSxtZXRhZGF0YTpEfSx0ZSxlZSkscWEodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2Vjb25kYXJ5bWVudUdyb3VwcyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVHcm91cHMsImdldCIpLHNldDppKChULEcpPT57VC5zZWNvbmRhcnltZW51R3JvdXBzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sWCxaKSxxYSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09R30sInNldCIpfSxtZXRhZGF0YTpEfSxxLEEpLHFhKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJtYWlubWVudUNvbGxhcHNlZCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51Q29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVDb2xsYXBzZWQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSxvZSxhZSkscWEodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVDb2xsYXBzZWQsImdldCIpLHNldDppKChULEcpPT57VC5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUmUsQmUpLHFhKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVWaXNpYmxlImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbm1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sRGUsX2UpLHFhKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51VmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2Vjb25kYXJ5bWVudVZpc2libGU9R30sInNldCIpfSxtZXRhZGF0YTpEfSx2ZSxiZSkscWEodGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5jb250ZW50VGFic1Zpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5tYWluY29udGVudFRhYnNWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0samUsV2UpLHFhKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5jb250ZW50VGFic0F1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY29udGVudFRhYnNBdXRvSGlkZT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LE1lLGdlKSxxYSh0aGlzLG51bGwsSWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSxjZSxkZSkscWEodGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhY3Rpdml0eUxvZ1Zpc2libGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hY3Rpdml0eUxvZ1Zpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5hY3Rpdml0eUxvZ1Zpc2libGU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxLZSxZZSkscWEodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChULEcpPT57VC5hY3Rpdml0eUxvZ0NvdW50PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVXQsWnQpLHFhKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbmNvbnRlbnRUYWJzImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbmNvbnRlbnRUYWJzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbmNvbnRlbnRUYWJzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZXQsYnQpLHFhKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWluY29udGVudFNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGVzLHJzKSxxYSh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbnRlbnRUYWJBY3Rpb25zTGVmdCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmNvbnRlbnRUYWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJBY3Rpb25zTGVmdD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LG5zLHRpKSxxYSh0aGlzLG51bGwsYWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc1JpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb250ZW50VGFiQWN0aW9uc1JpZ2h0ImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29udGVudFRhYkFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx6ZSx4ZSkscWEodGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXIsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXI9R30sInNldCIpfSxtZXRhZGF0YTpEfSx4dCxNYSkscWEodGhpcyxudWxsLE5yLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51ImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbm1lbnUsImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZlLHJlKSxxYSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2Vjb25kYXJ5bWVudSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlY29uZGFyeW1lbnU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxPZSxKZSkscWEodGhpcyxudWxsLHphLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5jb250ZW50ImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbmNvbnRlbnQsImdldCIpLHNldDppKChULEcpPT57VC5tYWluY29udGVudD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRhLHdzKSxxYSh0aGlzLG51bGwsa2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eWxvZ0VsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFjdGl2aXR5bG9nRWxlbWVudCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFjdGl2aXR5bG9nRWxlbWVudCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFjdGl2aXR5bG9nRWxlbWVudD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEppLFJyKSxxYSh0aGlzLG51bGwsU2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21iYXJFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJib3R0b21iYXJFbGVtZW50ImluIFQsImhhcyIpLGdldDppKFQ9PlQuYm90dG9tYmFyRWxlbWVudCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmJvdHRvbWJhckVsZW1lbnQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx2bixyMSkscWEodGhpcyxudWxsLG8xLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYm90dG9tYmFyVmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmJvdHRvbWJhclZpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5ib3R0b21iYXJWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbjEsbDEpLHFhKHRoaXMsbnVsbCxjMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjdXJyZW50VmlldyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY3VycmVudFZpZXc9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkMSx1MSkscWEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCx0KSxwMT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89QnZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07dmlld0xpZmVjeWNsZSQ9bmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0O3ZpZXdDaGFuZ2VkJD1uZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7I2U9VHQodGhpcyxvLFtdKTtnZXQgYXBwYmFyTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFwcGJhck1lbnVJdGVtcyhEKXt0aGlzLiNlPUR9I3Q9KFR0KHRoaXMsbCksVHQodGhpcyxkLCIiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFwcGJhckJyZWFkY3J1bWJzKEQpe3RoaXMuI3Q9RH0jYT0oVHQodGhpcyx1KSxUdCh0aGlzLGIsIiA+ICIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKEQpe3RoaXMuI2E9RH0jcz0oVHQodGhpcyx2KSxUdCh0aGlzLG0sITApKTtnZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scyhEKXt0aGlzLiNzPUR9I2k9KFR0KHRoaXMsZiksVHQodGhpcyxNLHZvaWQgMCkpO2dldCBhcHBiYXJVc2VyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFwcGJhclVzZXIoRCl7dGhpcy4jaT1EfSNyPShUdCh0aGlzLHopLFR0KHRoaXMsQyxbXSkpO2dldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMoRCl7dGhpcy4jcj1EfSNvPShUdCh0aGlzLF8pLFR0KHRoaXMsJCwhMSkpO2dldCBhcHBiYXJTaG93U2VhcmNoKCl7cmV0dXJuIHRoaXMuI299c2V0IGFwcGJhclNob3dTZWFyY2goRCl7dGhpcy4jbz1EfSNuPShUdCh0aGlzLEUpLFR0KHRoaXMsaywiIikpO2dldCBtYWlubWVudUxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI259c2V0IG1haW5tZW51TG9nb0ljb24oRCl7dGhpcy4jbj1EfSNsPShUdCh0aGlzLFMpLFR0KHRoaXMsUCwiIikpO2dldCBtYWlubWVudUxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IG1haW5tZW51TG9nb1RleHQoRCl7dGhpcy4jbD1EfSNjPShUdCh0aGlzLFIpLFR0KHRoaXMsVixbXSkpO2dldCBtYWlubWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNjfXNldCBtYWlubWVudUdyb3VwcyhEKXt0aGlzLiNjPUR9I2Q9KFR0KHRoaXMsVyksVHQodGhpcyxCLFtdKSk7Z2V0IG1haW5tZW51Qm90dG9tVGFicygpe3JldHVybiB0aGlzLiNkfXNldCBtYWlubWVudUJvdHRvbVRhYnMoRCl7dGhpcy4jZD1EfSN1PShUdCh0aGlzLFUpLFR0KHRoaXMsRixbXSkpO2dldCBtYWlubWVudVRhYnMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbWFpbm1lbnVUYWJzKEQpe3RoaXMuI3U9RH0jcD0oVHQodGhpcyxqKSxUdCh0aGlzLGxlLHZvaWQgMCkpO2dldCBtYWlubWVudVNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoRCl7dGhpcy4jcD1EfSNoPShUdCh0aGlzLFEpLFR0KHRoaXMsdGUsIiIpKTtnZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoRCl7dGhpcy4jaD1EfSNmPShUdCh0aGlzLGVlKSxUdCh0aGlzLFgsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNmfXNldCBzZWNvbmRhcnltZW51R3JvdXBzKEQpe3RoaXMuI2Y9RH0jbT0oVHQodGhpcyxaKSxUdCh0aGlzLHEsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbShEKXt0aGlzLiNtPUR9I2c9KFR0KHRoaXMsQSksVHQodGhpcyxvZSwhMSkpO2dldCBtYWlubWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNnfXNldCBtYWlubWVudUNvbGxhcHNlZChEKXt0aGlzLiNnPUR9I2I9KFR0KHRoaXMsYWUpLFR0KHRoaXMsUmUsITEpKTtnZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNifXNldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKEQpe3RoaXMuI2I9RH0jdj0oVHQodGhpcyxCZSksVHQodGhpcyxEZSwhMCkpO2dldCBtYWlubWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbWFpbm1lbnVWaXNpYmxlKEQpe3RoaXMuI3Y9RH0jeD0oVHQodGhpcyxfZSksVHQodGhpcyx2ZSwhMCkpO2dldCBzZWNvbmRhcnltZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN4fXNldCBzZWNvbmRhcnltZW51VmlzaWJsZShEKXt0aGlzLiN4PUR9I3k9KFR0KHRoaXMsYmUpLFR0KHRoaXMsamUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKEQpe3RoaXMuI3k9RH0jdz0oVHQodGhpcyxXZSksVHQodGhpcyxNZSwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoRCl7dGhpcy4jdz1EfSNrPShUdCh0aGlzLGdlKSxUdCh0aGlzLGNlLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNrfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKEQpe3RoaXMuI2s9RH0jUz0oVHQodGhpcyxkZSksVHQodGhpcyxLZSwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jU31zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKEQpe3RoaXMuI1M9RH0jXz0oVHQodGhpcyxZZSksVHQodGhpcyxVdCwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jX31zZXQgYWN0aXZpdHlMb2dDb3VudChEKXt0aGlzLiNfPUR9I009KFR0KHRoaXMsWnQpLFR0KHRoaXMsZXQsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI019c2V0IG1haW5jb250ZW50VGFicyhEKXt0aGlzLiNNPUR9I3o9KFR0KHRoaXMsYnQpLFR0KHRoaXMsZXMsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jen1zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihEKXt0aGlzLiN6PUR9I0M9KFR0KHRoaXMscnMpLFR0KHRoaXMsbnMsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNMZWZ0KCl7cmV0dXJuIHRoaXMuI0N9c2V0IGNvbnRlbnRUYWJBY3Rpb25zTGVmdChEKXt0aGlzLiNDPUR9I1Q9KFR0KHRoaXMsdGkpLFR0KHRoaXMsemUsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNUfXNldCBjb250ZW50VGFiQWN0aW9uc1JpZ2h0KEQpe3RoaXMuI1Q9RH0jJD0oVHQodGhpcyx4ZSksVHQodGhpcyx4dCx2b2lkIDApKTtnZXQgYXBwYmFyKCl7cmV0dXJuIHRoaXMuIyR9c2V0IGFwcGJhcihEKXt0aGlzLiMkPUR9I0Q9KFR0KHRoaXMsTWEpLFR0KHRoaXMsZmUsdm9pZCAwKSk7Z2V0IG1haW5tZW51KCl7cmV0dXJuIHRoaXMuI0R9c2V0IG1haW5tZW51KEQpe3RoaXMuI0Q9RH0jTD0oVHQodGhpcyxyZSksVHQodGhpcyxPZSx2b2lkIDApKTtnZXQgc2Vjb25kYXJ5bWVudSgpe3JldHVybiB0aGlzLiNMfXNldCBzZWNvbmRhcnltZW51KEQpe3RoaXMuI0w9RH0jRT0oVHQodGhpcyxKZSksVHQodGhpcyxkYSx2b2lkIDApKTtnZXQgbWFpbmNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgbWFpbmNvbnRlbnQoRCl7dGhpcy4jRT1EfSNQPShUdCh0aGlzLHdzKSxUdCh0aGlzLEppLHZvaWQgMCkpO2dldCBhY3Rpdml0eWxvZ0VsZW1lbnQoKXtyZXR1cm4gdGhpcy4jUH1zZXQgYWN0aXZpdHlsb2dFbGVtZW50KEQpe3RoaXMuI1A9RH0jST0oVHQodGhpcyxSciksVHQodGhpcyx2bix2b2lkIDApKTtnZXQgYm90dG9tYmFyRWxlbWVudCgpe3JldHVybiB0aGlzLiNJfXNldCBib3R0b21iYXJFbGVtZW50KEQpe3RoaXMuI0k9RH0jQT0oVHQodGhpcyxyMSksVHQodGhpcyxuMSwhMCkpO2dldCBib3R0b21iYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI0F9c2V0IGJvdHRvbWJhclZpc2libGUoRCl7dGhpcy4jQT1EfSNOPShUdCh0aGlzLGwxKSxUdCh0aGlzLGQxLHZvaWQgMCkpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNOfXNldCBjdXJyZW50VmlldyhEKXt0aGlzLiNOPUR9dmlld1JlZ2lzdHJ5PShUdCh0aGlzLHUxKSxuZXcgZTJlKTtyb3V0ZXJDbGVhbnVwPW51bGw7c2VhcmNoQ2FsbGJhY2s9bnVsbDtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgIH0KICAgICAgLm1haW5ncmlkIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0MHB4OwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgLyogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHNldCBkeW5hbWljYWxseSBpbiB0ZW1wbGF0ZSAqLwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtY29sdW1ucyAwLjNzIGVhc2UsIGhlaWdodCAwLjNzIGVhc2U7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2JvdHRvbWJhci1oaWRkZW5dKSAubWFpbmdyaWQgewogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7CiAgICAgIH0KCiAgICAgIGRlZXMtYXBwdWktYm90dG9tYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogNDsKICAgICAgfQoKICAgICAgLyogWi1pbmRleCBsYXllcmluZyBmb3IgcHJvcGVyIHN0YWNraW5nICovCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktbWFpbm1lbnUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAzOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWluY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5oaWRkZW4gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICB9CgogICAgICAvKiBWaWV3IGNvbnRhaW5lciBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIHZpZXdzICovCiAgICAgIC52aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC52aWV3LWNvbnRhaW5lcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmFwcGJhck1lbnVJdGVtc30KICAgICAgICAuYnJlYWRjcnVtYnM9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJzfQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yfQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9sc30KICAgICAgICAudXNlcj0ke3RoaXMuYXBwYmFyVXNlcn0KICAgICAgICAucHJvZmlsZU1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAuc2hvd1NlYXJjaD0ke3RoaXMuYXBwYmFyU2hvd1NlYXJjaH0KICAgICAgICAuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlPSR7ITB9CiAgICAgICAgLmFjdGl2aXR5TG9nQ291bnQ9JHt0aGlzLmFjdGl2aXR5TG9nQ291bnR9CiAgICAgICAgLmFjdGl2aXR5TG9nQWN0aXZlPSR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9CiAgICAgICAgQG1lbnUtc2VsZWN0PSR7RD0+dGhpcy5oYW5kbGVBcHBiYXJNZW51U2VsZWN0KEQpfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7RD0+dGhpcy5oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoRCl9CiAgICAgICAgQHNlYXJjaC1jbGljaz0keygpPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl9CiAgICAgICAgQHNlYXJjaC1xdWVyeT0ke0Q9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoRCl9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl9CiAgICAgICAgQHByb2ZpbGUtbWVudS1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KEQpfQogICAgICAgIEBhY3Rpdml0eS10b2dnbGU9JHsoKT0+dGhpcy50b2dnbGVBY3Rpdml0eUxvZygpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnIgJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8iMjgwcHgiOiIwcHgifTsiPgogICAgICAgICR7dGhpcy5tYWlubWVudVZpc2libGU/d2AKICAgICAgICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgICAgICAgIC5sb2dvSWNvbj0ke3RoaXMubWFpbm1lbnVMb2dvSWNvbn0KICAgICAgICAgICAgLmxvZ29UZXh0PSR7dGhpcy5tYWlubWVudUxvZ29UZXh0fQogICAgICAgICAgICAubWVudUdyb3Vwcz0ke3RoaXMubWFpbm1lbnVHcm91cHN9CiAgICAgICAgICAgIC5ib3R0b21UYWJzPSR7dGhpcy5tYWlubWVudUJvdHRvbVRhYnN9CiAgICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWlubWVudVRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYn0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMubWFpbm1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7RD0+dGhpcy5oYW5kbGVNYWlubWVudVRhYlNlbGVjdChEKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke0Q9PnRoaXMuaGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShEKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU/d2AKICAgICAgICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgICAgICAgLmhlYWRpbmc9JHt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nfQogICAgICAgICAgICAuZ3JvdXBzPSR7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzfQogICAgICAgICAgICAuc2VsZWN0ZWRJdGVtPSR7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtfQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAaXRlbS1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KEQpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7RD0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoRCl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic30KICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn0KICAgICAgICAgIC5zaG93VGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGU9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgLnRhYkFjdGlvbnNMZWZ0PSR7dGhpcy5jb250ZW50VGFiQWN0aW9uc0xlZnR9CiAgICAgICAgICAudGFiQWN0aW9uc1JpZ2h0PSR7dGhpcy5jb250ZW50VGFiQWN0aW9uc1JpZ2h0fQogICAgICAgICAgQHRhYi1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoRCl9CiAgICAgICAgICBAdGFiLWNsb3NlPSR7RD0+dGhpcy5oYW5kbGVDb250ZW50VGFiQ2xvc2UoRCl9CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgPHNsb3QgbmFtZT0ibWFpbmNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgICAgICAgPGRlZXMtYXBwdWktYWN0aXZpdHlsb2cKICAgICAgICAgIGNsYXNzPSIke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyJ2aXNpYmxlIjoiaGlkZGVuIn0iCiAgICAgICAgPjwvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZz4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5ib3R0b21iYXJWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgIGA6IiJ9CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuYXBwYmFyPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFwcGJhciIpLHRoaXMubWFpbm1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbm1lbnUiKSx0aGlzLnNlY29uZGFyeW1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSIpLHRoaXMubWFpbmNvbnRlbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpLHRoaXMuYm90dG9tYmFyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1ib3R0b21iYXIiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCYmdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZW50cmllcyQuc3Vic2NyaWJlKEQ9Pnt0aGlzLmFjdGl2aXR5TG9nQ291bnQ9RC5sZW5ndGh9KSx0aGlzLnZpZXdSZWdpc3RyeS5zZXRBcHB1aVJlZih0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yb3V0ZXJDbGVhbnVwJiYodGhpcy5yb3V0ZXJDbGVhbnVwKCksdGhpcy5yb3V0ZXJDbGVhbnVwPW51bGwpLHRoaXMudmlld0xpZmVjeWNsZSQuY29tcGxldGUoKSx0aGlzLnZpZXdDaGFuZ2VkJC5jb21wbGV0ZSgpfXNldEFwcEJhck1lbnVzKEQpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPVsuLi5EXX11cGRhdGVBcHBCYXJNZW51KEQsVCl7dGhpcy5hcHBiYXJNZW51SXRlbXM9dGhpcy5hcHBiYXJNZW51SXRlbXMubWFwKEc9PiJuYW1lImluIEcmJkcubmFtZT09PUQ/ey4uLkcsLi4uVH06Ryl9c2V0QnJlYWRjcnVtYnMoRCl7QXJyYXkuaXNBcnJheShEKT90aGlzLmFwcGJhckJyZWFkY3J1bWJzPUQuam9pbih0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IpOnRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9RH1zZXRVc2VyKEQpe3RoaXMuYXBwYmFyVXNlcj1EfXNldFByb2ZpbGVNZW51SXRlbXMoRCl7dGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPVsuLi5EXX1zZXRTZWFyY2hWaXNpYmxlKEQpe3RoaXMuYXBwYmFyU2hvd1NlYXJjaD1EfXNldFdpbmRvd0NvbnRyb2xzVmlzaWJsZShEKXt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1EfW9uU2VhcmNoKEQpe3RoaXMuc2VhcmNoQ2FsbGJhY2s9RH1zZXRNYWluTWVudShEKXtELmxvZ29JY29uIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUQubG9nb0ljb24pLEQubG9nb1RleHQhPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9RC5sb2dvVGV4dCksRC5ncm91cHMhPT12b2lkIDAmJih0aGlzLm1haW5tZW51R3JvdXBzPVsuLi5ELmdyb3Vwc10pLEQuYm90dG9tVGFicyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPVsuLi5ELmJvdHRvbVRhYnNdKX11cGRhdGVNYWluTWVudUdyb3VwKEQsVCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLC4uLlR9OkcpfWFkZE1haW5NZW51SXRlbShELFQpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoRz0+Ry5uYW1lPT09RD97Li4uRyxpdGVtczpbLi4uRy5pdGVtc3x8W10sVF19OkcpfXJlbW92ZU1haW5NZW51SXRlbShELFQpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoRz0+Ry5uYW1lPT09RD97Li4uRyxpdGVtczooRy5pdGVtc3x8W10pLmZpbHRlcigkZT0+JGUua2V5IT09VCl9OkcpfXNldE1haW5NZW51U2VsZWN0aW9uKEQpe2ZvcihsZXQgRyBvZiB0aGlzLm1haW5tZW51R3JvdXBzKXtsZXQgJGU9Ry5pdGVtcz8uZmluZChQZT0+UGUua2V5PT09RCk7aWYoJGUpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj0kZTtyZXR1cm59fWxldCBUPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLmZpbmQoRz0+Ry5rZXk9PT1EKTtUJiYodGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPVQpfXNldE1haW5NZW51Q29sbGFwc2VkKEQpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9RH1zZXRNYWluTWVudVZpc2libGUoRCl7dGhpcy5tYWlubWVudVZpc2libGU9RH1zZXRTZWNvbmRhcnlNZW51Q29sbGFwc2VkKEQpe3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1EfXNldFNlY29uZGFyeU1lbnVWaXNpYmxlKEQpe3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU9RH1zZXRDb250ZW50VGFic1Zpc2libGUoRCl7dGhpcy5tYWluY29udGVudFRhYnNWaXNpYmxlPUR9c2V0Q29udGVudFRhYnNBdXRvSGlkZShELFQ9MCl7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlPUQsdGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkPVR9c2V0TWFpbk1lbnVCYWRnZShELFQpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoRz0+KHsuLi5HLGl0ZW1zOihHLml0ZW1zfHxbXSkubWFwKCRlPT4kZS5rZXk9PT1EP3suLi4kZSxiYWRnZTpUfTokZSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKEc9Pkcua2V5PT09RD97Li4uRyxiYWRnZTpUfTpHKX1jbGVhck1haW5NZW51QmFkZ2UoRCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChUPT4oey4uLlQsaXRlbXM6KFQuaXRlbXN8fFtdKS5tYXAoRz0+e2lmKEcua2V5PT09RCl7bGV0e2JhZGdlOiRlLC4uLlBlfT1HO3JldHVybiBQZX1yZXR1cm4gR30pfSkpLHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLm1hcChUPT57aWYoVC5rZXk9PT1EKXtsZXR7YmFkZ2U6RywuLi4kZX09VDtyZXR1cm4gJGV9cmV0dXJuIFR9KX1zZXRTZWNvbmRhcnlNZW51KEQpe0QuaGVhZGluZyE9PXZvaWQgMCYmKHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9RC5oZWFkaW5nKSx0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9Wy4uLkQuZ3JvdXBzXX11cGRhdGVTZWNvbmRhcnlNZW51R3JvdXAoRCxUKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLC4uLlR9OkcpfWFkZFNlY29uZGFyeU1lbnVJdGVtKEQsVCl7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPXRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcy5tYXAoRz0+Ry5uYW1lPT09RD97Li4uRyxpdGVtczpbLi4uRy5pdGVtcyxUXX06Ryl9c2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihEKXtmb3IobGV0IFQgb2YgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzKXtsZXQgRz1ULml0ZW1zLmZpbmQoJGU9PiJrZXkiaW4gJGUmJiRlLmtleT09PUQpO2lmKEcmJighKCJ0eXBlImluIEcpfHxHLnR5cGU9PT0idGFiInx8Ry50eXBlPT09dm9pZCAwKSl7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPUc7cmV0dXJufX19Y2xlYXJTZWNvbmRhcnlNZW51KCl7dGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz0iIix0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9W10sdGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPXZvaWQgMH1zZXRDb250ZW50VGFicyhEKXt0aGlzLm1haW5jb250ZW50VGFicz1bLi4uRF0sRC5sZW5ndGg+MCYmIXRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYiYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1EWzBdKX1hZGRDb250ZW50VGFiKEQpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi50aGlzLm1haW5jb250ZW50VGFicyxEXX1yZW1vdmVDb250ZW50VGFiKEQpe3RoaXMubWFpbmNvbnRlbnRUYWJzPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbHRlcihUPT5ULmtleSE9PUQpLHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj8ua2V5PT09RCYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj10aGlzLm1haW5jb250ZW50VGFic1swXSl9c2VsZWN0Q29udGVudFRhYihEKXtsZXQgVD10aGlzLm1haW5jb250ZW50VGFicy5maW5kKEc9Pkcua2V5PT09RCk7VCYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1UKX1nZXRTZWxlY3RlZENvbnRlbnRUYWIoKXtyZXR1cm4gdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFifXNldENvbnRlbnRUYWJBY3Rpb25zTGVmdChEKXt0aGlzLmNvbnRlbnRUYWJBY3Rpb25zTGVmdD1bLi4uRF19c2V0Q29udGVudFRhYkFjdGlvbnNSaWdodChEKXt0aGlzLmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQ9Wy4uLkRdfWdldCBhY3Rpdml0eUxvZygpe3JldHVybiB0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD97YWRkOmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkKEQpLCJhZGQiKSxhZGRNYW55OmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkTWFueShEKSwiYWRkTWFueSIpLGNsZWFyOmkoKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmNsZWFyKCksImNsZWFyIiksZ2V0RW50cmllczppKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5nZXRFbnRyaWVzKCksImdldEVudHJpZXMiKSxmaWx0ZXI6aShEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5maWx0ZXIoRCksImZpbHRlciIpLHNlYXJjaDppKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LnNlYXJjaChEKSwic2VhcmNoIil9OnthZGQ6aShEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uYWRkKEQpKX0sImFkZCIpLGFkZE1hbnk6aShEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uYWRkTWFueShEKSl9LCJhZGRNYW55IiksY2xlYXI6aSgoKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmNsZWFyKCkpfSwiY2xlYXIiKSxnZXRFbnRyaWVzOmkoKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5nZXRFbnRyaWVzKCl8fFtdLCJnZXRFbnRyaWVzIiksZmlsdGVyOmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmZpbHRlcihEKXx8W10sImZpbHRlciIpLHNlYXJjaDppKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5zZWFyY2goRCl8fFtdLCJzZWFyY2giKX19c2V0QWN0aXZpdHlMb2dWaXNpYmxlKEQpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPUR9dG9nZ2xlQWN0aXZpdHlMb2coKXt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT0hdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0QWN0aXZpdHlMb2dWaXNpYmxlKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfWdldCBib3R0b21CYXIoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJFbGVtZW50P3thZGRXaWRnZXQ6aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkV2lkZ2V0KEQpLCJhZGRXaWRnZXQiKSx1cGRhdGVXaWRnZXQ6aSgoRCxUKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LnVwZGF0ZVdpZGdldChELFQpLCJ1cGRhdGVXaWRnZXQiKSxyZW1vdmVXaWRnZXQ6aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlV2lkZ2V0KEQpLCJyZW1vdmVXaWRnZXQiKSxnZXRXaWRnZXQ6aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuZ2V0V2lkZ2V0KEQpLCJnZXRXaWRnZXQiKSxjbGVhcldpZGdldHM6aSgoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyV2lkZ2V0cygpLCJjbGVhcldpZGdldHMiKSxhZGRBY3Rpb246aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkQWN0aW9uKEQpLCJhZGRBY3Rpb24iKSxyZW1vdmVBY3Rpb246aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlQWN0aW9uKEQpLCJyZW1vdmVBY3Rpb24iKSxjbGVhckFjdGlvbnM6aSgoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyQWN0aW9ucygpLCJjbGVhckFjdGlvbnMiKX06e2FkZFdpZGdldDppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkV2lkZ2V0KEQpKX0sImFkZFdpZGdldCIpLHVwZGF0ZVdpZGdldDppKChELFQpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnVwZGF0ZVdpZGdldChELFQpKX0sInVwZGF0ZVdpZGdldCIpLHJlbW92ZVdpZGdldDppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlV2lkZ2V0KEQpKX0sInJlbW92ZVdpZGdldCIpLGdldFdpZGdldDppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uZ2V0V2lkZ2V0KEQpLCJnZXRXaWRnZXQiKSxjbGVhcldpZGdldHM6aSgoKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhcldpZGdldHMoKSl9LCJjbGVhcldpZGdldHMiKSxhZGRBY3Rpb246aShEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmFkZEFjdGlvbihEKSl9LCJhZGRBY3Rpb24iKSxyZW1vdmVBY3Rpb246aShEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnJlbW92ZUFjdGlvbihEKSl9LCJyZW1vdmVBY3Rpb24iKSxjbGVhckFjdGlvbnM6aSgoKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhckFjdGlvbnMoKSl9LCJjbGVhckFjdGlvbnMiKX19c2V0Qm90dG9tQmFyVmlzaWJsZShEKXt0aGlzLmJvdHRvbWJhclZpc2libGU9RCxEP3RoaXMucmVtb3ZlQXR0cmlidXRlKCJib3R0b21iYXItaGlkZGVuIik6dGhpcy5zZXRBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iLCIiKX1nZXRCb3R0b21CYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuYm90dG9tYmFyVmlzaWJsZX1hc3luYyBuYXZpZ2F0ZVRvVmlldyhELFQpe2xldCBHPXRoaXMudmlld1JlZ2lzdHJ5LmdldChEKTtpZighRylyZXR1cm4gY29uc29sZS53YXJuKGBDYW5ub3QgbmF2aWdhdGUgdG8gdW5rbm93biB2aWV3OiAke0R9YCksITE7bGV0ICRlPWF3YWl0IHRoaXMudmlld1JlZ2lzdHJ5LmNhbkxlYXZlQ3VycmVudFZpZXcoKTtpZigkZSE9PSEwKWlmKHR5cGVvZiAkZT09InN0cmluZyIpe2lmKCF3aW5kb3cuY29uZmlybSgkZSkpcmV0dXJuITF9ZWxzZSByZXR1cm4hMTt0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImxvYWRpbmciLHZpZXdJZDpEfSk7dHJ5e2F3YWl0IHRoaXMubG9hZFZpZXcoRyxUKTtsZXQgUGU9Ry5yb3V0ZXx8RDtpZihUKWZvcihsZXRbVmUsVWVdb2YgT2JqZWN0LmVudHJpZXMoVCkpUGU9UGUucmVwbGFjZShgOiR7VmV9YCxVZSk7bGV0IEZlPWAjJHtQZX1gO3JldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaCE9PUZlJiZ3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe3ZpZXdJZDpEfSwiIixGZSksITB9Y2F0Y2goUGUpe3JldHVybiB0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImxvYWRFcnJvciIsdmlld0lkOkQsZXJyb3I6UGV9KSwhMX19Z2V0Q3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld31nZXRWaWV3UmVnaXN0cnkoKXtyZXR1cm4gdGhpcy52aWV3UmVnaXN0cnl9Y29uZmlndXJlKEQpe0Qudmlld3MmJih0aGlzLnZpZXdSZWdpc3RyeS5jbGVhcigpLHRoaXMudmlld1JlZ2lzdHJ5LnJlZ2lzdGVyQWxsKEQudmlld3MpKSxELmJyYW5kaW5nJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUQuYnJhbmRpbmcubG9nb0ljb258fCIiLHRoaXMubWFpbm1lbnVMb2dvVGV4dD1ELmJyYW5kaW5nLmxvZ29UZXh0fHwiIiksRC5hcHBCYXImJih0aGlzLmFwcGJhck1lbnVJdGVtcz1ELmFwcEJhci5tZW51SXRlbXN8fFtdLHRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9RC5hcHBCYXIuYnJlYWRjcnVtYnN8fCIiLHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj1ELmFwcEJhci5icmVhZGNydW1iU2VwYXJhdG9yfHwiID4gIix0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1ELmFwcEJhci5zaG93V2luZG93Q29udHJvbHM/PyEwLHRoaXMuYXBwYmFyU2hvd1NlYXJjaD1ELmFwcEJhci5zaG93U2VhcmNoPz8hMSx0aGlzLmFwcGJhclVzZXI9RC5hcHBCYXIudXNlcix0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9RC5hcHBCYXIucHJvZmlsZU1lbnVJdGVtc3x8W10pLEQubWFpbk1lbnUmJihELm1haW5NZW51LnNlY3Rpb25zP3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5idWlsZE1haW5NZW51RnJvbVNlY3Rpb25zKEQpOkQubWFpbk1lbnUuZ3JvdXBzJiYodGhpcy5tYWlubWVudUdyb3Vwcz1ELm1haW5NZW51Lmdyb3VwcyksRC5tYWluTWVudS5sb2dvSWNvbiYmKHRoaXMubWFpbm1lbnVMb2dvSWNvbj1ELm1haW5NZW51LmxvZ29JY29uKSxELm1haW5NZW51LmxvZ29UZXh0JiYodGhpcy5tYWlubWVudUxvZ29UZXh0PUQubWFpbk1lbnUubG9nb1RleHQpLEQubWFpbk1lbnUuYm90dG9tVGFicz90aGlzLm1haW5tZW51Qm90dG9tVGFicz1ELm1haW5NZW51LmJvdHRvbVRhYnM6RC5tYWluTWVudS5ib3R0b21JdGVtcyYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPXRoaXMuYnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKEQubWFpbk1lbnUuYm90dG9tSXRlbXMpKSksRC5ib3R0b21CYXImJih0aGlzLnNldEJvdHRvbUJhclZpc2libGUoRC5ib3R0b21CYXIudmlzaWJsZT8/ITApLEQuYm90dG9tQmFyLndpZGdldHMmJkQuYm90dG9tQmFyLndpZGdldHMuZm9yRWFjaChUPT57dGhpcy5ib3R0b21CYXIuYWRkV2lkZ2V0KFQpfSksRC5ib3R0b21CYXIuYWN0aW9ucyYmRC5ib3R0b21CYXIuYWN0aW9ucy5mb3JFYWNoKFQ9Pnt0aGlzLmJvdHRvbUJhci5hZGRBY3Rpb24oVCl9KSksdGhpcy5zZXR1cFJvdXRlckludGVncmF0aW9uKEQpLEQub25WaWV3Q2hhbmdlJiZ0aGlzLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoVD0+e0Qub25WaWV3Q2hhbmdlKFQudmlld0lkLFQudmlldyl9KSxELm9uU2VhcmNoJiYodGhpcy5zZWFyY2hDYWxsYmFjaz1ELm9uU2VhcmNoKSxELmRlZmF1bHRWaWV3JiZ0aGlzLm5hdmlnYXRlVG9WaWV3KEQuZGVmYXVsdFZpZXcpfXNldHVwUm91dGVySW50ZWdyYXRpb24oRCl7bGV0IFQ9aSgoKT0+e2xldCAkZT13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZighJGUpcmV0dXJuO2xldCBQZT10aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZSgkZSk7UGUmJnRoaXMubmF2aWdhdGVUb1ZpZXcoUGUudmlldy5pZCxQZS5wYXJhbXMpfSwiaGFuZGxlSGFzaENoYW5nZSIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixUKSx0aGlzLnJvdXRlckNsZWFudXA9KCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsVCl9O2xldCBHPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKEcpe2xldCAkZT10aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZShHKTskZSYmc2V0VGltZW91dCgoKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldygkZS52aWV3LmlkLCRlLnBhcmFtcyksMCl9fWJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoRCl7cmV0dXJuIEQubWFpbk1lbnU/LnNlY3Rpb25zP0QubWFpbk1lbnUuc2VjdGlvbnMubWFwKFQ9Pih7bmFtZTpULm5hbWV8fCIiLGl0ZW1zOlQudmlld3MubWFwKEc9PntsZXQgJGU9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KEcpO3JldHVybiAkZT97a2V5OiRlLmlkLGljb25OYW1lOiRlLmljb25OYW1lLGFjdGlvbjppKCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KEcpLCJhY3Rpb24iKSxiYWRnZTokZS5iYWRnZX06KGNvbnNvbGUud2FybihgVmlldyAiJHtHfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbCl9KS5maWx0ZXIoQm9vbGVhbil9KSk6W119YnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKEQpe3JldHVybiBELm1hcChUPT57bGV0IEc9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KFQpO3JldHVybiBHP3trZXk6Ry5pZCxpY29uTmFtZTpHLmljb25OYW1lLGFjdGlvbjppKCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KFQpLCJhY3Rpb24iKX06KGNvbnNvbGUud2FybihgVmlldyAiJHtUfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbCl9KS5maWx0ZXIoQm9vbGVhbil9YXN5bmMgbG9hZFZpZXcoRCxUKXtsZXQgRz10aGlzLmN1cnJlbnRWaWV3O3RoaXMuY3VycmVudFZpZXc9RDtsZXQgJGU9dGhpcy5tYWluY29udGVudD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIil8fHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIik7aWYoJGUpe2xldCBGZT1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5hY3RpdmF0ZVZpZXcoRC5pZCwkZSxUKTtGZSYmdGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJhY3RpdmF0ZWQiLHZpZXdJZDpELmlkLGVsZW1lbnQ6RmUscGFyYW1zOlR9KX1ELnNlY29uZGFyeU1lbnUmJih0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9RC5zZWNvbmRhcnlNZW51LHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9RC5uYW1lKSxELmNvbnRlbnRUYWJzJiYodGhpcy5tYWluY29udGVudFRhYnM9RC5jb250ZW50VGFicyksdGhpcy5zZXRNYWluTWVudVNlbGVjdGlvbihELmlkKTtsZXQgUGU9e3ZpZXdJZDpELmlkLHZpZXc6RCxwcmV2aW91c1ZpZXc6RyxwYXJhbXM6VH07dGhpcy52aWV3Q2hhbmdlZCQubmV4dChQZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1jaGFuZ2UiLHtkZXRhaWw6UGUsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJNZW51U2VsZWN0KEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1tZW51LXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItYnJlYWRjcnVtYi1uYXZpZ2F0ZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoRCl7dGhpcy5zZWFyY2hDYWxsYmFjayYmdGhpcy5zZWFyY2hDYWxsYmFjayhELmRldGFpbC5xdWVyeSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLXF1ZXJ5Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJQcm9maWxlTWVudVNlbGVjdChEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItcHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU1haW5tZW51VGFiU2VsZWN0KEQpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj1ELmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWFpbm1lbnUtdGFiLXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KEQpe3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1ELmRldGFpbC5pdGVtLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtaXRlbS1zZWxlY3QiLHtkZXRhaWw6RC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKEQpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9RC5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVDb2xsYXBzZUNoYW5nZShEKXt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9RC5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGVudFRhYlNlbGVjdChEKXt0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9RC5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtdGFiLXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJDbG9zZShEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1jbG9zZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXN0YXRpY3tUdChhLHQpfX07cmV0dXJuIHAxPWF9KSgpfSk7dmFyIFl2YT1nKCgpPT57S3ZhKCk7am50KCl9KTt2YXIgWnZhPWcoKCk9PntHbnQoKX0pO3ZhciBYdmE9ZygoKT0+e1ZudCgpfSk7dmFyIFF2YT1nKCgpPT57VW50KCl9KTt2YXIgSnZhPWcoKCk9PntMb3QoKX0pO3ZhciBleGE9ZygoKT0+e1dudCgpfSk7dmFyIHQyZSxhNyxoZXMsdHhhPWcoKCk9Pnt2bygpO0duKCk7RXIoKTtwZSgpO3YyKCk7R2EoKTtodCgpO3QyZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sYTc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGhlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtbW9iaWxlbmF2aWdhdGlvbiIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzTW9iaWxlbmF2aWdhdGlvbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6QXJyYXl9KV0sYz1bWSgpXSx0MmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJoZWFkaW5nImluIGYsImhhcyIpLGdldDppKGY9PmYuaGVhZGluZywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmhlYWRpbmc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLHQyZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibWVudUl0ZW1zImluIGYsImhhcyIpLGdldDppKGY9PmYubWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YubWVudUl0ZW1zPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSx0MmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVOYXZaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+Im1vYmlsZU5hdlpJbmRleCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLm1vYmlsZU5hdlpJbmRleCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLm1vYmlsZU5hdlpJbmRleD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksdDJlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTtzdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57eC5jcmVhdGVBbmRTaG93KFt7bmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dC1kYXNoYm9hcmQiLGFjdGlvbjppKGFzeW5jIG09Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gZGFzaGJvYXJkIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246aShhc3luYyBtPT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHByb2ZpbGUiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMgbT0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBzZXR0aW5ncyIpLG51bGwpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHAtY2lyY2xlIixhY3Rpb246aShhc3luYyBtPT4oY29uc29sZS5sb2coIlNob3cgaGVscCIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibHVjaWRlOmxvZy1vdXQiLGFjdGlvbjppKGFzeW5jIG09Pihjb25zb2xlLmxvZygiU2lnbiBvdXQiKSxudWxsKSwiYWN0aW9uIil9XSl9fT5PcGVuIE1vYmlsZSBOYXZpZ2F0aW9uPC9kZWVzLWJ1dHRvbj4KICBgLCJkZW1vIik7c3RhdGljIHNpbmdsZXRvblJlZjtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhtKXtyZXR1cm4gdGhpcy5zaW5nbGV0b25SZWZ8fCh0aGlzLnNpbmdsZXRvblJlZj1uZXcgeCxkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLnNpbmdsZXRvblJlZiksYXdhaXQgdGhpcy5zaW5nbGV0b25SZWYuaW5pdCgpKSx0aGlzLnNpbmdsZXRvblJlZi5tZW51SXRlbXM9bSxhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5yZWFkeURlZmVycmVkLnByb21pc2UsdGhpcy5zaW5nbGV0b25SZWYuc2hvdygpLHRoaXMuc2luZ2xldG9uUmVmfSNlPWE3KHRoaXMsbywiTWVudSIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobSl7dGhpcy4jZT1tfSN0PShhNyh0aGlzLGwpLGE3KHRoaXMsZCxbXSkpO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWVudUl0ZW1zKG0pe3RoaXMuI3Q9bX0jYT0oYTcodGhpcyx1KSxhNyh0aGlzLGIsMWUzKSk7Z2V0IG1vYmlsZU5hdlpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBtb2JpbGVOYXZaSW5kZXgobSl7dGhpcy4jYT1tfXJlYWR5RGVmZXJyZWQ9KGE3KHRoaXMsdiksbHQucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKSk7Y29uc3RydWN0b3IoKXtzdXBlcigpfWFzeW5jIGluaXQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgIH0KCiAgICAgIC5tYWluIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5tYWluLnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luOiA4cHggMTZweDsKICAgICAgfQoKICAgICAgLyogTW9iaWxlIHJlc3BvbnNpdmVuZXNzICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkgewogICAgICAgIC5tYWluIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7CiAgICAgICAgICB3aWR0aDogODV2dzsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIEFuaW1hdGlvbiBmb3IgbWVudSBpdGVtcyAqLwogICAgICBAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1haW4uc2hvdyAubWVudUl0ZW0gewogICAgICAgIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IDAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWl0ZW0taW5kZXgsIDApICogMC4wNXMpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW4gewogICAgICAgICAgLS16LWluZGV4OiAke3RoaXMubW9iaWxlTmF2WkluZGV4fTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8aDIgY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoKG0sZik9PiJkaXZpZGVyImluIG0mJm0uZGl2aWRlcj93YDxkaXYgY2xhc3M9Im1lbnVJdGVtLWRpdmlkZXIiPjwvZGl2PmA6d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibWVudUl0ZW0iCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1pdGVtLWluZGV4OiAke2Z9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5oaWRlKCksbS5hY3Rpb24odGhpcyl9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke20uaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke20uaWNvbk5hbWV9IHNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudUl0ZW0tdGV4dCI+JHttLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyO2FzeW5jIHNob3coKXtsZXQgbT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbiIpO3RoaXMud2luZG93TGF5ZXI/KGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMud2luZG93TGF5ZXIpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuc2hvdygpKToodGhpcy53aW5kb3dMYXllcj1hd2FpdCBSby5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmhpZGUoKX0pKSx0aGlzLm1vYmlsZU5hdlpJbmRleD1fYS5nZXROZXh0WkluZGV4KCksX2EucmVnaXN0ZXIodGhpcyx0aGlzLm1vYmlsZU5hdlpJbmRleCksYXdhaXQgbS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwKSxmLmNsYXNzTGlzdC5hZGQoInNob3ciKX1hc3luYyBoaWRlKCl7bGV0IG09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIikuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLF9hLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLF9hLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9c3RhdGlje2E3KGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBheGE9ZygoKT0+e3R4YSgpfSk7dmFyIHN4YT1nKCgpPT57QTlhKCk7RW90KCk7WjlhKCk7WXZhKCk7WnZhKCk7WHZhKCk7UXZhKCk7SnZhKCk7ZXhhKCk7YXhhKCl9KTt2YXIgaXhhPWcoKCk9PntIZygpfSk7dmFyIHJ4YSxLbnQsZmVzLG94YT1nKCgpPT57cGUoKTtyeGE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEtudD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZmVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1idXR0b24tZXhpdCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uRXhpdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6TnVtYmVyfSldLHJ4YSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InNpemUiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5zaXplLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3Uuc2l6ZT1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCkscnhhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkZWVzLWJ1dHRvbi1leGl0PjwvZGVlcy1idXR0b24tZXhpdD4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1LbnQodGhpcyxvLDI0KTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGQpe3RoaXMuI2U9ZH1zdHlsZXM9KEtudCh0aGlzLGwpLFtoLmRlZmF1bHRTdHlsZXMsSmAKCiAgICBgXSk7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5zaXplfXB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RMaW5lIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWNvbmRMaW5lIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tLbnQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIG54YT1nKCgpPT57b3hhKCl9KTt2YXIgbHhhLGN4YT1nKCgpPT57cGUoKTtseGE9aSgoKT0+d2AKICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGhvdXQgbGFiZWxzIGZvciBzaW1wbGUgZ3JvdXBpbmc8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAxPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxhYmVsZWQgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCBkZXNjcmlwdGl2ZSBsYWJlbHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJWaWV3IE1vZGU6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+R3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGlzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+Q2FyZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPk11bHRpcGxlIGJ1dHRvbiBncm91cHMgdXNlZCB0b2dldGhlcjwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+U3lzdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcms8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJUaW1lIFJhbmdlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj4xSDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+MjRIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjdEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjMwRDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RXhwb3J0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlZlcnRpY2FsIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGggdmVydGljYWwgbGF5b3V0PC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMjRweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiIGxhYmVsPSJOYXZpZ2F0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXNoYm9hcmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkFuYWx5dGljczwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXBvcnRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249InZlcnRpY2FsIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkVkaXQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EZWxldGUgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NaXhlZCBCdXR0b24gVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5EaWZmZXJlbnQgYnV0dG9uIHR5cGVzIHdpdGhpbiBncm91cHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJTdGF0dXM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzdWNjZXNzIj5BY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlBlbmRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRhbmdlciI+SW5hY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBZbnQsVlEsbWVzLGR4YT1nKCgpPT57cGUoKTtrdCgpO2N4YSgpO2h0KCk7WW50PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxWUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbWVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1idXR0b24tZ3JvdXAiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0J1dHRvbkdyb3VwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKCldLFludCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJsYWJlbCJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmxhYmVsLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YubGFiZWw9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLFludCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iZGlyZWN0aW9uImluIHYsImhhcyIpLGdldDppKHY9PnYuZGlyZWN0aW9uLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuZGlyZWN0aW9uPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxZbnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1seGE7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1WUSh0aGlzLG8sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChiKXt0aGlzLiNlPWJ9I3Q9KFZRKHRoaXMsbCksVlEodGhpcyxkLCJob3Jpem9udGFsIikpO2dldCBkaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgZGlyZWN0aW9uKGIpe3RoaXMuI3Q9Yn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksVlEodGhpcyx1KSx0YS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwLnZlcnRpY2FsIC5sYWJlbCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKCopIHsKICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImxhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1ZRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciB1eGE9ZygoKT0+e2R4YSgpfSk7dmFyIHB4YT1nKCgpPT57aXhhKCk7bnhhKCk7dXhhKCl9KTt2YXIgaHhhLGZ4YT1nKCgpPT57cGUoKTtJdCgpO1pudCgpO2h4YT1pKCgpPT57bGV0IHM9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseToyNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6MzB9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjI4fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTozNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTozMn0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6Mzh9XX0se25hbWU6Ik1lbW9yeSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseTo0NX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6NDh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjQ2fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTo1Mn0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTo1MH0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6NTV9XX1dfX0sZT17c3lzdGVtOmkodD0+YCR7dH0lYCwic3lzdGVtIil9O3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiI21haW4tY2hhcnQiKSxyPXQucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3Rpb25zLWNoYXJ0IiksbixvLGw9InN5c3RlbSIscD17c3lzdGVtOmkoSD0+YCR7SH0lYCwic3lzdGVtIiksbmV0d29yazppKEg9PmAke0h9IE1icHNgLCJuZXR3b3JrIiksc2FsZXM6aShIPT5gJCR7SC50b0xvY2FsZVN0cmluZygpfWAsInNhbGVzIil9LGQ9MTIwKjFlMyx1PTFlMyxjPTVlMyxiPXtjcHU6MzAsbWVtb3J5OjUwLGRvd25sb2FkOjE1MCx1cGxvYWQ6MzAsY29ubmVjdGlvbnM6MTUwfSx2PWkoKEgsayxTPWMpPT57bGV0IEk9W10sUD1EYXRlLm5vdygpLFI9TWF0aC5mbG9vcihkL1MpO2ZvcihsZXQgSz1SO0s+PTA7Sy0tKXtsZXQgVj1uZXcgRGF0ZShQLUsqUykudG9JU09TdHJpbmcoKSxXPUgrKE1hdGgucmFuZG9tKCktLjUpKms7SS5wdXNoKHt4OlYseTpNYXRoLnJvdW5kKFcpfSl9cmV0dXJuIEl9LCJnZW5lcmF0ZUluaXRpYWxEYXRhIikseD17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOnYoYi5jcHUsMTApfSx7bmFtZToiTWVtb3J5IixkYXRhOnYoYi5tZW1vcnksOCl9XX0sbmV0d29yazp7bGFiZWw6Ik5ldHdvcmsgVHJhZmZpYyAoTWJwcykiLHNlcmllczpbe25hbWU6IkRvd25sb2FkIixkYXRhOnYoYi5kb3dubG9hZCwzMCl9LHtuYW1lOiJVcGxvYWQiLGRhdGE6dihiLnVwbG9hZCwxMCl9XX0sc2FsZXM6e2xhYmVsOiJTYWxlcyBBbmFseXRpY3MiLHNlcmllczpbe25hbWU6IlJldmVudWUiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjQ1ZTN9LHt4OiIyMDI1LTAxLTAyIix5OjUyZTN9LHt4OiIyMDI1LTAxLTAzIix5OjQ4ZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjYxZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjU4ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjY1ZTN9XX0se25hbWU6IlByb2ZpdCIsZGF0YTpbe3g6IjIwMjUtMDEtMDEiLHk6MTJlM30se3g6IjIwMjUtMDEtMDIiLHk6MTRlM30se3g6IjIwMjUtMDEtMDMiLHk6MTFlM30se3g6IjIwMjUtMDEtMDQiLHk6MThlM30se3g6IjIwMjUtMDEtMDUiLHk6MTZlM30se3g6IjIwMjUtMDEtMDYiLHk6MmU0fV19XX19LG09aSgoSCxrLFMsST01KT0+e2xldCBQPShNYXRoLnJhbmRvbSgpLS41KSpJKjIsUj1IK1AsVj0oKGsrUykvMi1SKSouMTtyZXR1cm4gUis9VixSPU1hdGgubWF4KGssTWF0aC5taW4oUyxSKSksTWF0aC5yb3VuZChSKX0sImdldE5leHRWYWx1ZSIpLGY9RGF0ZS5ub3coKSx5PURhdGUubm93KCksTT1pKCgpPT57aWYoIWEpcmV0dXJuO2xldCBIPURhdGUubm93KCk7aWYoSC1mPj1jKXtmPUg7bGV0IFM9bmV3IERhdGUoSCkudG9JU09TdHJpbmcoKTtpZihsPT09InN5c3RlbSIpe2IuY3B1PW0oYi5jcHUsMjAsNTAsMyksYi5tZW1vcnk9bShiLm1lbW9yeSw0MCw3MCwyKTtsZXQgST1hLmNoYXJ0U2VyaWVzLm1hcCgoUCxSKT0+KHtuYW1lOlAubmFtZSxkYXRhOlsuLi5QLmRhdGEsUj09PTA/e3g6Uyx5OmIuY3B1fTp7eDpTLHk6Yi5tZW1vcnl9XX0pKTthLnVwZGF0ZVNlcmllcyhJLCExKX1lbHNlIGlmKGw9PT0ibmV0d29yayIpe2IuZG93bmxvYWQ9bShiLmRvd25sb2FkLDEwMCwyMDAsMTApLGIudXBsb2FkPW0oYi51cGxvYWQsMjAsNTAsNSk7bGV0IEk9YS5jaGFydFNlcmllcy5tYXAoKFAsUik9Pih7bmFtZTpQLm5hbWUsZGF0YTpbLi4uUC5kYXRhLFI9PT0wP3t4OlMseTpiLmRvd25sb2FkfTp7eDpTLHk6Yi51cGxvYWR9XX0pKTthLnVwZGF0ZVNlcmllcyhJLCExKX19fSwiYWRkUmVhbHRpbWVEYXRhIiksej1pKCgpPT57aWYoIXIpcmV0dXJuO2xldCBIPURhdGUubm93KCksaz1uZXcgRGF0ZShIKS50b0lTT1N0cmluZygpLFM9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIxKS0xMDtiLmNvbm5lY3Rpb25zPU1hdGgubWF4KDUwLE1hdGgubWluKDMwMCxiLmNvbm5lY3Rpb25zK1MpKTtsZXQgST1yLmNoYXJ0U2VyaWVzLFA9W3tuYW1lOklbMF0/Lm5hbWV8fCJDb25uZWN0aW9ucyIsZGF0YTpbLi4uSVswXT8uZGF0YXx8W10se3g6ayx5OmIuY29ubmVjdGlvbnN9XX1dO3IudXBkYXRlU2VyaWVzKFAsITEpfSwidXBkYXRlQ29ubmVjdGlvbnMiKSxOPWkoSD0+e2w9SDtsZXQgaz14W0hdO2EubGFiZWw9ay5sYWJlbCxhLnNlcmllcz1rLnNlcmllcyxhLnlBeGlzRm9ybWF0dGVyPXBbSF0sSD09PSJzeXN0ZW0iPyhhLnlBeGlzU2NhbGluZz0icGVyY2VudGFnZSIsYS55QXhpc01heD0xMDApOmEueUF4aXNTY2FsaW5nPSJkeW5hbWljIixmPURhdGUubm93KCktY30sInN3aXRjaERhdGFzZXQiKSxDPWkoKCk9PnshbiYmKGw9PT0ic3lzdGVtInx8bD09PSJuZXR3b3JrIikmJihhLnJlYWx0aW1lTW9kZT0hMCxuPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+TSgpLGMpKSxvfHwoci5yZWFsdGltZU1vZGU9ITAsbz13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PnooKSx1KSl9LCJzdGFydFJlYWx0aW1lIiksXz1pKCgpPT57biYmKHdpbmRvdy5jbGVhckludGVydmFsKG4pLG49bnVsbCxhLnJlYWx0aW1lTW9kZT0hMSksbyYmKHdpbmRvdy5jbGVhckludGVydmFsKG8pLG89bnVsbCxyLnJlYWx0aW1lTW9kZT0hMSl9LCJzdG9wUmVhbHRpbWUiKSxPPWkoKCk9PntsPT09InN5c3RlbSI/KGIuY3B1PU1hdGgucmFuZG9tKCk+LjU/ODU6MjUsYi5tZW1vcnk9TWF0aC5yYW5kb20oKT4uNT84MDo0NSk6bD09PSJuZXR3b3JrIiYmKGIuZG93bmxvYWQ9TWF0aC5yYW5kb20oKT4uNT8yNTA6MTAwLGIudXBsb2FkPU1hdGgucmFuZG9tKCk+LjU/ODA6MjApLGIuY29ubmVjdGlvbnM9TWF0aC5yYW5kb20oKT4uNT8yODA6ODAsZj0wLHk9MH0sInJhbmRvbWl6ZURhdGEiKSwkPWkoKCk9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChrPT57bGV0IFM9ay50ZXh0Py50cmltKCk7Uz09PSJTeXN0ZW0gVXNhZ2UiP2sudHlwZT1sPT09InN5c3RlbSI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpTPT09Ik5ldHdvcmsgVHJhZmZpYyI/ay50eXBlPWw9PT0ibmV0d29yayI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpTPT09IlNhbGVzIERhdGEiJiYoay50eXBlPWw9PT0ic2FsZXMiPyJoaWdobGlnaHRlZCI6Im5vcm1hbCIpfSl9LCJ1cGRhdGVCdXR0b25TdGF0ZXMiKTtpZih0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChIPT57bGV0IGs9SC50ZXh0Py50cmltKCk7az09PSJTeXN0ZW0gVXNhZ2UiP0guYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57Tigic3lzdGVtIiksJCgpfSk6az09PSJOZXR3b3JrIFRyYWZmaWMiP0guYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57TigibmV0d29yayIpLCQoKX0pOms9PT0iU2FsZXMgRGF0YSI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntOKCJzYWxlcyIpLCQoKX0pOms9PT0iU3RhcnQgTGl2ZSI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkMoKSk6az09PSJTdG9wIExpdmUiP0guYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5fKCkpOms9PT0iU3Bpa2UgVmFsdWVzIiYmSC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oKSl9KSxhLnJvbGxpbmdXaW5kb3c9ZCxhLnJlYWx0aW1lTW9kZT0hMSxhLnlBeGlzU2NhbGluZz0icGVyY2VudGFnZSIsYS55QXhpc01heD0xMDAsYS5hdXRvU2Nyb2xsSW50ZXJ2YWw9MWUzLHNldFRpbWVvdXQoKCk9PnthLnVwZGF0ZVRpbWVXaW5kb3coKX0sMTAwKSxyKXtsZXQgSD12KGIuY29ubmVjdGlvbnMsMzAsdSk7ci5zZXJpZXM9W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpIfV0sci5yb2xsaW5nV2luZG93PWQsci5yZWFsdGltZU1vZGU9ITEsci55QXhpc1NjYWxpbmc9ImZpeGVkIixyLnlBeGlzTWF4PTM1MCxyLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e3IudXBkYXRlVGltZVdpbmRvdygpfSwxMDApfX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGF0YXNldDoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW0gVXNhZ2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcmsgVHJhZmZpYzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXMgRGF0YTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlJlYWwtdGltZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IExpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TcGlrZSBWYWx1ZXM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0ibWFpbi1jaGFydCIKICAgICAgICAgIC5sYWJlbD0ke3Muc3lzdGVtLmxhYmVsfQogICAgICAgICAgLnNlcmllcz0ke3Muc3lzdGVtLnNlcmllc30KICAgICAgICAgIC55QXhpc0Zvcm1hdHRlcj0ke2Uuc3lzdGVtfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiIHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyI+CiAgICAgICAgPGRlZXMtY2hhcnQtYXJlYQogICAgICAgICAgaWQ9ImNvbm5lY3Rpb25zLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSBDb25uZWN0aW9ucyJ9CiAgICAgICAgICAuc2VyaWVzPSR7W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpbXX1dfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7dD0+YCR7dH1gfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBSZWFsLXRpbWUgbW9uaXRvcmluZyB3aXRoIDItbWludXRlIHJvbGxpbmcgd2luZG93IOKAoiAKICAgICAgICBVcGRhdGVzIGV2ZXJ5IHNlY29uZCB3aXRoIHNtb290aCB2YWx1ZSB0cmFuc2l0aW9ucyDigKIgCiAgICAgICAgQ2xpY2sgJ1NwaWtlIFZhbHVlcycgdG8gc2ltdWxhdGUgbG9hZCBzcGlrZXMKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBteGEsZ3hhPWcoKCk9PntwZSgpO2h0KCk7bXhhPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmNoYXJ0SGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgfQogICAgICAuY2hhcnRMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KICAgICAgLmV4cGFuZEJ0biB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIC5leHBhbmRCdG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMCAwIDRweCAwOwogICAgICB9CiAgICAgIC5zdGF0c0JhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzICsgLnN0YXRzU2VyaWVzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAuc3RhdHNDb2xvciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgLnN0YXRzTmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICB9CiAgICAgIC5zdGF0c0l0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgICAuc3RhdHNJdGVtIHN0cm9uZyB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAubHctdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgIH0KICAgIGBdfSk7dmFyIGJ4YSx2eGE9ZygoKT0+e3BlKCk7R2EoKTtieGE9aShzPT53YAogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImV4cGFuZEJ0biIgQGNsaWNrPSR7KCk9PnMudG9nZ2xlRnVsbFBhZ2UoKX0gdGl0bGU9IiR7cy5pc0Z1bGxQYWdlPyJFeGl0IGZ1bGwgcGFnZSI6IkZ1bGwgcGFnZSJ9Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7cy5pc0Z1bGxQYWdlPyJsdWNpZGU6TWluaW1pemUyIjoibHVjaWRlOk1heGltaXplMiJ9IC5pY29uU2l6ZT0kezE0fT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICR7cy5zZXJpZXNTdGF0cy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InN0YXRzQmFyIj4KICAgICAgICAgICAgICAke3Muc2VyaWVzU3RhdHMubWFwKGU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0c1NlcmllcyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0NvbG9yIiBzdHlsZT0iYmFja2dyb3VuZDoke2UuY29sb3J9Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c05hbWUiPiR7ZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+bGF0ZXN0IDxzdHJvbmc+JHtzLnlBeGlzRm9ybWF0dGVyKGUubGF0ZXN0KX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0l0ZW0iPm1pbiA8c3Ryb25nPiR7cy55QXhpc0Zvcm1hdHRlcihlLm1pbil9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5tYXggPHN0cm9uZz4ke3MueUF4aXNGb3JtYXR0ZXIoZS5tYXgpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+YXZnIDxzdHJvbmc+JHtzLnlBeGlzRm9ybWF0dGVyKGUuYXZnKX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICBgLCJyZW5kZXJDaGFydEFyZWEiKX0pO3ZhciBKYyxQaSxnZXMsWm50PWcoKCk9PntwZSgpO2t0KCk7ZnhhKCk7Z3hhKCk7dnhhKCk7T3UoKTttcigpO0pjPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxQaT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZ2VzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1jaGFydC1hcmVhIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdO3ZhciBoZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0QXJlYSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBGPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLHg9W0woKV0seT1bTCh7dHlwZTpBcnJheX0pXSxOPVtMKHthdHRyaWJ1dGU6ITF9KV0sTz1bTCh7dHlwZTpOdW1iZXJ9KV0sSD1bTCh7dHlwZTpCb29sZWFufSldLEk9W0woe3R5cGU6U3RyaW5nfSldLEs9W0woe3R5cGU6TnVtYmVyfSldLG1lPVtMKHt0eXBlOk51bWJlcn0pXSxKYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYXJ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJjaGFydCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmNoYXJ0LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmNoYXJ0PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG8sbCksSmModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXNTdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2VyaWVzU3RhdHMiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zZXJpZXNTdGF0cywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5zZXJpZXNTdGF0cz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxkLHUpLEpjKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsUGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaXNGdWxsUGFnZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmlzRnVsbFBhZ2UsImdldCIpLHNldDppKChqLHVlKT0+e2ouaXNGdWxsUGFnZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxiLHYpLEpjKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImxhYmVsImluIGosImhhcyIpLGdldDppKGo9PmoubGFiZWwsImdldCIpLHNldDppKChqLHVlKT0+e2oubGFiZWw9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sbSxmKSxKYyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2VyaWVzImluIGosImhhcyIpLGdldDppKGo9Pmouc2VyaWVzLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnNlcmllcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxNLHopLEpjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InlBeGlzRm9ybWF0dGVyImluIGosImhhcyIpLGdldDppKGo9PmoueUF4aXNGb3JtYXR0ZXIsImdldCIpLHNldDppKChqLHVlKT0+e2oueUF4aXNGb3JtYXR0ZXI9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQyxfKSxKYyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvbGxpbmdXaW5kb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InJvbGxpbmdXaW5kb3ciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5yb2xsaW5nV2luZG93LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnJvbGxpbmdXaW5kb3c9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sJCxFKSxKYyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlYWx0aW1lTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4icmVhbHRpbWVNb2RlImluIGosImhhcyIpLGdldDppKGo9PmoucmVhbHRpbWVNb2RlLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnJlYWx0aW1lTW9kZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxrLFMpLEpjKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNTY2FsaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJ5QXhpc1NjYWxpbmciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai55QXhpc1NjYWxpbmcsImdldCIpLHNldDppKChqLHVlKT0+e2oueUF4aXNTY2FsaW5nPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFAsUiksSmModGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc01heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ieUF4aXNNYXgiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai55QXhpc01heCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai55QXhpc01heD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxWLFcpLEpjKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGxJbnRlcnZhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iYXV0b1Njcm9sbEludGVydmFsImluIGosImhhcyIpLGdldDppKGo9PmouYXV0b1Njcm9sbEludGVydmFsLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmF1dG9TY3JvbGxJbnRlcnZhbD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxCLFUpLEpjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkZ9LG51bGwsdCksaGU9YT1lLnZhbHVlLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pfXN0YXRpYyBkZW1vPWh4YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9UGkodGhpcyxvLG51bGwpO2dldCBjaGFydCgpe3JldHVybiB0aGlzLiNlfXNldCBjaGFydChGKXt0aGlzLiNlPUZ9I3Q9KFBpKHRoaXMsbCksUGkodGhpcyxkLFtdKSk7Z2V0IHNlcmllc1N0YXRzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllc1N0YXRzKEYpe3RoaXMuI3Q9Rn0jYT0oUGkodGhpcyx1KSxQaSh0aGlzLGIsITEpKTtnZXQgaXNGdWxsUGFnZSgpe3JldHVybiB0aGlzLiNhfXNldCBpc0Z1bGxQYWdlKEYpe3RoaXMuI2E9Rn0jcz0oUGkodGhpcyx2KSxQaSh0aGlzLG0sIlVudGl0bGVkIENoYXJ0IikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNzfXNldCBsYWJlbChGKXt0aGlzLiNzPUZ9I2k9KFBpKHRoaXMsZiksUGkodGhpcyxNLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiNpfXNldCBzZXJpZXMoRil7dGhpcy4jaT1GfWdldCBjaGFydFNlcmllcygpe3JldHVybiB0aGlzLmludGVybmFsQ2hhcnREYXRhLmxlbmd0aD4wP3RoaXMuaW50ZXJuYWxDaGFydERhdGE6dGhpcy5zZXJpZXN9I3I9KFBpKHRoaXMseiksUGkodGhpcyxDLEY9PmAke0Z9IE1icHNgKSk7Z2V0IHlBeGlzRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHlBeGlzRm9ybWF0dGVyKEYpe3RoaXMuI3I9Rn0jbz0oUGkodGhpcyxfKSxQaSh0aGlzLCQsMCkpO2dldCByb2xsaW5nV2luZG93KCl7cmV0dXJuIHRoaXMuI299c2V0IHJvbGxpbmdXaW5kb3coRil7dGhpcy4jbz1GfSNuPShQaSh0aGlzLEUpLFBpKHRoaXMsaywhMSkpO2dldCByZWFsdGltZU1vZGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcmVhbHRpbWVNb2RlKEYpe3RoaXMuI249Rn0jbD0oUGkodGhpcyxTKSxQaSh0aGlzLFAsImR5bmFtaWMiKSk7Z2V0IHlBeGlzU2NhbGluZygpe3JldHVybiB0aGlzLiNsfXNldCB5QXhpc1NjYWxpbmcoRil7dGhpcy4jbD1GfSNjPShQaSh0aGlzLFIpLFBpKHRoaXMsViwxMDApKTtnZXQgeUF4aXNNYXgoKXtyZXR1cm4gdGhpcy4jY31zZXQgeUF4aXNNYXgoRil7dGhpcy4jYz1GfSNkPShQaSh0aGlzLFcpLFBpKHRoaXMsQiwxZTMpKTtnZXQgYXV0b1Njcm9sbEludGVydmFsKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGF1dG9TY3JvbGxJbnRlcnZhbChGKXt0aGlzLiNkPUZ9aW50ZXJuYWxDaGFydERhdGE9KFBpKHRoaXMsVSksW10pO2F1dG9TY3JvbGxUaW1lcj1udWxsO2xjQnVuZGxlPW51bGw7c2VyaWVzQXBpcz1uZXcgTWFwO3ByaWNlTGluZXM9bmV3IE1hcDt0b29sdGlwRWw9bnVsbDtDSEFSVF9DT0xPUlM9e2Rhcms6WyJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDE3My40IDgwLjQlIDQwJSkiLCJoc2woMjgwLjMgODcuNCUgNjYuNyUpIiwiaHNsKDI0LjYgOTUlIDUzLjElKSJdLGxpZ2h0OlsiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMjgwLjMgNDcuNyUgNTAuMiUpIiwiaHNsKDIwLjUgOTAuMiUgNDguMiUpIl19O2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0YS5zZXR1cCgpLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLmNoYXJ0KXRyeXt0aGlzLmNoYXJ0LnJlbW92ZSgpLHRoaXMuY2hhcnQ9bnVsbCx0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKX1jYXRjaChGKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIGNoYXJ0OiIsRil9fSl9c3RhdGljIHN0eWxlcz1teGE7cmVuZGVyKCl7cmV0dXJuIGJ4YSh0aGlzKX1jb252ZXJ0RGF0YVRvTEMoRil7cmV0dXJuIEYubWFwKGo9PntsZXQgdWU9dHlwZW9mIGoueD09Im51bWJlciI/ai54Om5ldyBEYXRlKGoueCkuZ2V0VGltZSgpO3JldHVybnt0aW1lOk1hdGguZmxvb3IodWUvMWUzKSx2YWx1ZTpqLnl9fSkuc29ydCgoaix1ZSk9PmoudGltZS11ZS50aW1lKX1oc2xUb1JnYmEoRixqKXtsZXQgdWU9Ri5tYXRjaCgvaHNsXCgoW14pXSspXCkvKTtpZighdWUpcmV0dXJuIEY7bGV0IGxlPXVlWzFdLnRyaW0oKS5zcGxpdCgvXHMrLyk7aWYobGUubGVuZ3RoPDMpcmV0dXJuIEY7bGV0IFE9cGFyc2VGbG9hdChsZVswXSkvMzYwLGllPXBhcnNlRmxvYXQobGVbMV0pLzEwMCx0ZT1wYXJzZUZsb2F0KGxlWzJdKS8xMDAsZWUsa2UsWDtpZihpZT09PTApZWU9a2U9WD10ZTtlbHNle2xldCBaPWkoKEEsc2Usb2UpPT4ob2U8MCYmKG9lKz0xKSxvZT4xJiYob2UtPTEpLG9lPC4xNjY2NjY2NjY2NjY2NjY2Nj9BKyhzZS1BKSo2Km9lOm9lPC41P3NlOm9lPC42NjY2NjY2NjY2NjY2NjY2P0ErKHNlLUEpKiguNjY2NjY2NjY2NjY2NjY2Ni1vZSkqNjpBKSwiaHVlMnJnYiIpLHllPXRlPC41P3RlKigxK2llKTp0ZStpZS10ZSppZSxxPTIqdGUteWU7ZWU9WihxLHllLFErMS8zKSxrZT1aKHEseWUsUSksWD1aKHEseWUsUS0xLzMpfXJldHVybmByZ2JhKCR7TWF0aC5yb3VuZChlZSoyNTUpfSwgJHtNYXRoLnJvdW5kKGtlKjI1NSl9LCAke01hdGgucm91bmQoWCoyNTUpfSwgJHtqfSlgfWdldFNlcmllc0NvbG9ycyhGKXtyZXR1cm4gRj90aGlzLkNIQVJUX0NPTE9SUy5kYXJrOnRoaXMuQ0hBUlRfQ09MT1JTLmxpZ2h0fWFwcGx5VGhlbWUoKXtpZighdGhpcy5jaGFydHx8IXRoaXMubGNCdW5kbGUpcmV0dXJuO2xldCBGPSF0aGlzLmdvQnJpZ2h0LGo9dGhpcy5nZXRTZXJpZXNDb2xvcnMoRik7dGhpcy5jaGFydC5hcHBseU9wdGlvbnMoe2xheW91dDp7YmFja2dyb3VuZDp7dHlwZTp0aGlzLmxjQnVuZGxlLkNvbG9yVHlwZS5Tb2xpZCxjb2xvcjoidHJhbnNwYXJlbnQifSx0ZXh0Q29sb3I6Rj8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSIsYXR0cmlidXRpb25Mb2dvOiExfSxncmlkOnt2ZXJ0TGluZXM6e2NvbG9yOkY/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn0saG9yekxpbmVzOntjb2xvcjpGPyJoc2woMCAwJSA4LjUlKSI6ImhzbCgwIDAlIDk1LjUlKSJ9fX0pO2xldCB1ZT0wO2ZvcihsZXRbLGxlXW9mIHRoaXMuc2VyaWVzQXBpcyl7bGV0IFE9alt1ZSVqLmxlbmd0aF07bGUuYXBwbHlPcHRpb25zKHt0b3BDb2xvcjp0aGlzLmhzbFRvUmdiYShRLEY/LjQ6LjUpLGJvdHRvbUNvbG9yOnRoaXMuaHNsVG9SZ2JhKFEsMCksbGluZUNvbG9yOlF9KSx1ZSsrfX1yZWNyZWF0ZVNlcmllcyhGKXtpZighdGhpcy5jaGFydHx8IXRoaXMubGNCdW5kbGUpcmV0dXJuO2xldCBqPSF0aGlzLmdvQnJpZ2h0LHVlPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKGopO2ZvcihsZXRbLGxlXW9mIHRoaXMuc2VyaWVzQXBpcyl0aGlzLmNoYXJ0LnJlbW92ZVNlcmllcyhsZSk7dGhpcy5zZXJpZXNBcGlzLmNsZWFyKCksdGhpcy5wcmljZUxpbmVzLmNsZWFyKCksRi5mb3JFYWNoKChsZSxRKT0+e2xldCBpZT11ZVtRJXVlLmxlbmd0aF0sdGU9dGhpcy5jaGFydC5hZGRTZXJpZXModGhpcy5sY0J1bmRsZS5BcmVhU2VyaWVzLHt0b3BDb2xvcjp0aGlzLmhzbFRvUmdiYShpZSxqPy40Oi41KSxib3R0b21Db2xvcjp0aGlzLmhzbFRvUmdiYShpZSwwKSxsaW5lQ29sb3I6aWUsbGluZVdpZHRoOjIsbGluZVR5cGU6dGhpcy5sY0J1bmRsZS5MaW5lVHlwZS5DdXJ2ZWQsbGFzdFZhbHVlVmlzaWJsZTohMSxwcmljZUxpbmVWaXNpYmxlOiExLGNyb3NzaGFpck1hcmtlclZpc2libGU6ITAsY3Jvc3NoYWlyTWFya2VyUmFkaXVzOjR9KTt0ZS5zZXREYXRhKHRoaXMuY29udmVydERhdGFUb0xDKGxlLmRhdGEpKSx0aGlzLnVwZGF0ZVByaWNlTGluZXMobGUubmFtZXx8YHNlcmllcy0ke1F9YCx0ZSxsZS5kYXRhLGllKSx0aGlzLnlBeGlzU2NhbGluZyE9PSJkeW5hbWljIiYmdGUuYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6aSgoKT0+KHtwcmljZVJhbmdlOnttaW5WYWx1ZTowLG1heFZhbHVlOnRoaXMueUF4aXNNYXh9fSksImF1dG9zY2FsZUluZm9Qcm92aWRlciIpfSksdGhpcy5zZXJpZXNBcGlzLnNldChsZS5uYW1lfHxgc2VyaWVzLSR7UX1gLHRlKX0pLHRoaXMuY29tcHV0ZVN0YXRzKEYpfWNvbXB1dGVTdGF0cyhGKXtsZXQgaj0hdGhpcy5nb0JyaWdodCx1ZT10aGlzLmdldFNlcmllc0NvbG9ycyhqKTt0aGlzLnNlcmllc1N0YXRzPUYubWFwKChsZSxRKT0+e2xldCBpZT1sZS5kYXRhLm1hcChaPT5aLnkpO2lmKGllLmxlbmd0aD09PTApcmV0dXJue25hbWU6bGUubmFtZXx8YHNlcmllcy0ke1F9YCxsYXRlc3Q6MCxtaW46MCxtYXg6MCxhdmc6MCxjb2xvcjp1ZVtRJXVlLmxlbmd0aF19O2xldCB0ZT1pZVtpZS5sZW5ndGgtMV0sZWU9TWF0aC5taW4oLi4uaWUpLGtlPU1hdGgubWF4KC4uLmllKSxYPU1hdGgucm91bmQoaWUucmVkdWNlKChaLHllKT0+Wit5ZSwwKS9pZS5sZW5ndGgqMTAwKS8xMDA7cmV0dXJue25hbWU6bGUubmFtZXx8YHNlcmllcy0ke1F9YCxsYXRlc3Q6dGUsbWluOmVlLG1heDprZSxhdmc6WCxjb2xvcjp1ZVtRJXVlLmxlbmd0aF19fSl9dXBkYXRlUHJpY2VMaW5lcyhGLGosdWUsbGUpe2xldCBRPXRoaXMucHJpY2VMaW5lcy5nZXQoRik7aWYoUSlmb3IobGV0IFggb2YgUSlqLnJlbW92ZVByaWNlTGluZShYKTtpZih1ZS5sZW5ndGg9PT0wKXt0aGlzLnByaWNlTGluZXMuc2V0KEYsW10pO3JldHVybn1sZXQgaWU9dWUubWFwKFg9PlgueSksdGU9aWUucmVkdWNlKChYLFopPT5YK1osMCkvaWUubGVuZ3RoLGVlPU1hdGgubWF4KC4uLmllKSxrZT1bXTtrZS5wdXNoKGouY3JlYXRlUHJpY2VMaW5lKHtwcmljZTpNYXRoLnJvdW5kKHRlKjEwMCkvMTAwLGNvbG9yOnRoaXMuaHNsVG9SZ2JhKGxlLC41KSxsaW5lV2lkdGg6MSxsaW5lU3R5bGU6MixheGlzTGFiZWxWaXNpYmxlOiEwLHRpdGxlOiJhdmcifSkpLHRlPjAmJihlZS10ZSkvdGU+LjEmJmtlLnB1c2goai5jcmVhdGVQcmljZUxpbmUoe3ByaWNlOmVlLGNvbG9yOnRoaXMuaHNsVG9SZ2JhKGxlLC44KSxsaW5lV2lkdGg6MSxsaW5lU3R5bGU6MSxheGlzTGFiZWxWaXNpYmxlOiEwLHRpdGxlOiJtYXgifSkpLHRoaXMucHJpY2VMaW5lcy5zZXQoRixrZSl9c2V0dXBUb29sdGlwKCl7dGhpcy5jaGFydCYmKHRoaXMudG9vbHRpcEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMudG9vbHRpcEVsLmNsYXNzTmFtZT0ibHctdG9vbHRpcCIsdGhpcy50b29sdGlwRWwuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpPy5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBFbCksdGhpcy5jaGFydC5zdWJzY3JpYmVDcm9zc2hhaXJNb3ZlKEY9PntpZighdGhpcy50b29sdGlwRWwpcmV0dXJuO2lmKCFGLnBvaW50fHwhRi50aW1lfHxGLnBvaW50Lng8MHx8Ri5wb2ludC55PDApe3RoaXMudG9vbHRpcEVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3JldHVybn1sZXQgaj0hdGhpcy5nb0JyaWdodCx1ZT1qPyJoc2woMCAwJSA5JSkiOiJoc2woMCAwJSAxMDAlKSIsbGU9aj8iaHNsKDAgMCUgOTUlKSI6ImhzbCgwIDAlIDklKSIsUT1qPyJoc2woMCAwJSAxNC45JSkiOiJoc2woMCAwJSA4OS44JSkiLGllPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKGopLHRlPSIiLGVlPTAsa2U9ITE7Zm9yKGxldFt5ZSxxXW9mIHRoaXMuc2VyaWVzQXBpcyl7bGV0IEE9Ri5zZXJpZXNEYXRhLmdldChxKTtpZihBJiYidmFsdWUiaW4gQSYmQS52YWx1ZSE9PXZvaWQgMCl7a2U9ITA7bGV0IHNlPWllW2VlJWllLmxlbmd0aF0sb2U9dGhpcy55QXhpc0Zvcm1hdHRlcihBLnZhbHVlKTt0ZSs9YDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttYXJnaW46JHtlZT4wPyI2cHgiOiIwIn0gMDsiPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtiYWNrZ3JvdW5kOiR7c2V9O2JvcmRlci1yYWRpdXM6MnB4OyI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NTAwOyI+JHt5ZX06PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0ibWFyZ2luLWxlZnQ6YXV0bztmb250LXdlaWdodDo2MDA7Ij4ke29lfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PmB9ZWUrK31pZigha2Upe3RoaXMudG9vbHRpcEVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3JldHVybn10aGlzLnRvb2x0aXBFbC5pbm5lckhUTUw9dGUsT2JqZWN0LmFzc2lnbih0aGlzLnRvb2x0aXBFbC5zdHlsZSx7ZGlzcGxheToiYmxvY2siLGJhY2tncm91bmQ6dWUsY29sb3I6bGUsYm9yZGVyQ29sb3I6UX0pO2xldCBYPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKS5jbGllbnRXaWR0aCxaPUYucG9pbnQueCsxNjtaKzIwMD5YJiYoWj1GLnBvaW50LngtMjE2KSx0aGlzLnRvb2x0aXBFbC5zdHlsZS5sZWZ0PWAke1p9cHhgLHRoaXMudG9vbHRpcEVsLnN0eWxlLnRvcD1gJHtGLnBvaW50LnktMTZ9cHhgfSkpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHRoaXMubGNCdW5kbGU9YXdhaXQgYW8uZ2V0SW5zdGFuY2UoKS5sb2FkTGlnaHR3ZWlnaHRDaGFydHMoKSxhd2FpdCBuZXcgUHJvbWlzZSh1ZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHVlKSk7bGV0IEY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFGKXJldHVybjtsZXQgaj0hdGhpcy5nb0JyaWdodDt0cnl7dGhpcy5jaGFydD10aGlzLmxjQnVuZGxlLmNyZWF0ZUNoYXJ0KEYse2F1dG9TaXplOiEwLGxheW91dDp7YmFja2dyb3VuZDp7dHlwZTp0aGlzLmxjQnVuZGxlLkNvbG9yVHlwZS5Tb2xpZCxjb2xvcjoidHJhbnNwYXJlbnQifSx0ZXh0Q29sb3I6aj8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSIsZm9udEZhbWlseTonLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBzYW5zLXNlcmlmJyxmb250U2l6ZToxMixhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6e3ZlcnRMaW5lczp7Y29sb3I6aj8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifSxob3J6TGluZXM6e2NvbG9yOmo/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn19LHJpZ2h0UHJpY2VTY2FsZTp7Ym9yZGVyVmlzaWJsZTohMSxzY2FsZU1hcmdpbnM6e3RvcDouMSxib3R0b206LjF9fSx0aW1lU2NhbGU6e2JvcmRlclZpc2libGU6ITEsdGltZVZpc2libGU6ITAsc2Vjb25kc1Zpc2libGU6ITB9LGNyb3NzaGFpcjp7bW9kZTp0aGlzLmxjQnVuZGxlLkNyb3NzaGFpck1vZGUuTWFnbmV0fSxoYW5kbGVTY3JvbGw6ITEsaGFuZGxlU2NhbGU6ITF9KTtsZXQgdWU9dGhpcy5zZXJpZXMubGVuZ3RoPjA/dGhpcy5zZXJpZXM6W3tuYW1lOiJjcHUiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjI1fSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MjB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjM1fSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseToyNX1dfSx7bmFtZToibWVtb3J5IixkYXRhOlt7eDoiMjAyNS0wMS0xNVQwMzowMDowMCIseToxMH0se3g6IjIwMjUtMDEtMTVUMDc6MDA6MDAiLHk6MTJ9LHt4OiIyMDI1LTAxLTE1VDExOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQxNTowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTk6MDA6MDAiLHk6NDB9XX1dO3RoaXMuaW50ZXJuYWxDaGFydERhdGE9dWUsdGhpcy5yZWNyZWF0ZVNlcmllcyh1ZSksdGhpcy5zZXR1cFRvb2x0aXAoKX1jYXRjaCh1ZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhcnQ6Iix1ZSl9fWFzeW5jIHVwZGF0ZWQoRil7aWYoc3VwZXIudXBkYXRlZChGKSxGLmhhcygiZ29CcmlnaHQiKSYmdGhpcy5jaGFydCYmdGhpcy5hcHBseVRoZW1lKCksRi5oYXMoInNlcmllcyIpJiZ0aGlzLmNoYXJ0JiZ0aGlzLnNlcmllcy5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGRhdGVTZXJpZXModGhpcy5zZXJpZXMpLEYuaGFzKCJ5QXhpc0Zvcm1hdHRlciIpJiZ0aGlzLmNoYXJ0LEYuaGFzKCJyZWFsdGltZU1vZGUiKSYmdGhpcy5jaGFydCYmKHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MD90aGlzLnN0YXJ0QXV0b1Njcm9sbCgpOnRoaXMuc3RvcEF1dG9TY3JvbGwoKSksRi5oYXMoImF1dG9TY3JvbGxJbnRlcnZhbCIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MCYmdGhpcy5zdGFydEF1dG9TY3JvbGwoKSksKEYuaGFzKCJ5QXhpc1NjYWxpbmciKXx8Ri5oYXMoInlBeGlzTWF4IikpJiZ0aGlzLmNoYXJ0KWZvcihsZXRbLGpdb2YgdGhpcy5zZXJpZXNBcGlzKXRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP2ouYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6dm9pZCAwfSk6ai5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6dGhpcy55QXhpc01heH19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KX1hc3luYyB1cGRhdGVTZXJpZXMoRixqPSEwKXtpZih0aGlzLmNoYXJ0KXRyeXtpZih0aGlzLmludGVybmFsQ2hhcnREYXRhPUYsdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMucmVhbHRpbWVNb2RlKXtsZXQgdWU9RGF0ZS5ub3coKSxsZT11ZS10aGlzLnJvbGxpbmdXaW5kb3c7aWYoRi5sZW5ndGghPT10aGlzLnNlcmllc0FwaXMuc2l6ZSl0aGlzLnJlY3JlYXRlU2VyaWVzKEYpO2Vsc2V7bGV0IFE9dGhpcy5nZXRTZXJpZXNDb2xvcnMoIXRoaXMuZ29CcmlnaHQpO0YuZm9yRWFjaCgoaWUsdGUpPT57bGV0IGVlPWllLm5hbWV8fGBzZXJpZXMtJHt0ZX1gLGtlPXRoaXMuc2VyaWVzQXBpcy5nZXQoZWUpO2lmKCFrZSlyZXR1cm47bGV0IFg9aWUuZGF0YS5maWx0ZXIoWj0+KHR5cGVvZiBaLng9PSJudW1iZXIiP1oueDpuZXcgRGF0ZShaLngpLmdldFRpbWUoKSk+bGUpO2tlLnNldERhdGEodGhpcy5jb252ZXJ0RGF0YVRvTEMoWCkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhlZSxrZSxYLFFbdGUlUS5sZW5ndGhdKX0pLHRoaXMuY29tcHV0ZVN0YXRzKEYpfXRyeXt0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLnNldFZpc2libGVSYW5nZSh7ZnJvbTpNYXRoLmZsb29yKGxlLzFlMyksdG86TWF0aC5mbG9vcih1ZS8xZTMpfSl9Y2F0Y2h7fWlmKHRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiKXtsZXQgUT1GLmZsYXRNYXAoaWU9PmllLmRhdGEuZmlsdGVyKHRlPT4odHlwZW9mIHRlLng9PSJudW1iZXIiP3RlLng6bmV3IERhdGUodGUueCkuZ2V0VGltZSgpKT5sZSkubWFwKHRlPT50ZS55KSk7aWYoUS5sZW5ndGg+MCl7bGV0IGllPU1hdGguY2VpbChNYXRoLm1heCguLi5RKSoxLjEpO2ZvcihsZXRbLHRlXW9mIHRoaXMuc2VyaWVzQXBpcyl0ZS5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6aWV9fSksImF1dG9zY2FsZUluZm9Qcm92aWRlciIpfSl9fX1lbHNlIGlmKEYubGVuZ3RoIT09dGhpcy5zZXJpZXNBcGlzLnNpemUpdGhpcy5yZWNyZWF0ZVNlcmllcyhGKTtlbHNle2xldCB1ZT10aGlzLmdldFNlcmllc0NvbG9ycyghdGhpcy5nb0JyaWdodCk7Ri5mb3JFYWNoKChsZSxRKT0+e2xldCBpZT1sZS5uYW1lfHxgc2VyaWVzLSR7UX1gLHRlPXRoaXMuc2VyaWVzQXBpcy5nZXQoaWUpO3RlJiYodGUuc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyhsZS5kYXRhKSksdGhpcy51cGRhdGVQcmljZUxpbmVzKGllLHRlLGxlLmRhdGEsdWVbUSV1ZS5sZW5ndGhdKSl9KSx0aGlzLmNvbXB1dGVTdGF0cyhGKX19Y2F0Y2godWUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGRhdGUgY2hhcnQgc2VyaWVzOiIsdWUpfX1hc3luYyB1cGRhdGVUaW1lV2luZG93KCl7aWYoIXRoaXMuY2hhcnR8fHRoaXMucm9sbGluZ1dpbmRvdzw9MClyZXR1cm47bGV0IEY9RGF0ZS5ub3coKSxqPUYtdGhpcy5yb2xsaW5nV2luZG93O3RyeXt0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLnNldFZpc2libGVSYW5nZSh7ZnJvbTpNYXRoLmZsb29yKGovMWUzKSx0bzpNYXRoLmZsb29yKEYvMWUzKX0pfWNhdGNoe319YXN5bmMgYXBwZW5kRGF0YShGKXt0aGlzLmNoYXJ0JiZGLmZvckVhY2goKGosdWUpPT57bGV0IGxlPWoubmFtZXx8YHNlcmllcy0ke3VlfWAsUT10aGlzLnNlcmllc0FwaXMuZ2V0KGxlKTtpZighKCFRfHxqLmRhdGEubGVuZ3RoPT09MCkpZm9yKGxldCBpZSBvZiBqLmRhdGEpe2xldCB0ZT10aGlzLmNvbnZlcnREYXRhVG9MQyhbaWVdKTt0ZS5sZW5ndGg+MCYmUS51cGRhdGUodGVbMF0pfX0pfWFzeW5jIHVwZGF0ZU9wdGlvbnMoRil7dGhpcy5jaGFydCYmdGhpcy5jaGFydC5hcHBseU9wdGlvbnMoRil9YXN5bmMgcmVzaXplQ2hhcnQoKXt0aGlzLmNoYXJ0JiZ0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLmZpdENvbnRlbnQoKX1hc3luYyBmb3JjZVJlc2l6ZSgpe2F3YWl0IHRoaXMucmVzaXplQ2hhcnQoKX10b2dnbGVGdWxsUGFnZSgpe3RoaXMuaXNGdWxsUGFnZT0hdGhpcy5pc0Z1bGxQYWdlLHRoaXMuaXNGdWxsUGFnZT8odGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUuaW5zZXQ9IjAiLHRoaXMuc3R5bGUuekluZGV4PSIxMDAwMCIsdGhpcy5zdHlsZS5oZWlnaHQ9IjEwMHZoIix0aGlzLnN0eWxlLnBhZGRpbmc9IjAiLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpOih0aGlzLnN0eWxlLnBvc2l0aW9uPSIiLHRoaXMuc3R5bGUuaW5zZXQ9IiIsdGhpcy5zdHlsZS56SW5kZXg9IiIsdGhpcy5zdHlsZS5oZWlnaHQ9IiIsdGhpcy5zdHlsZS5wYWRkaW5nPSIiLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9IiIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY2hhcnQ/LnRpbWVTY2FsZSgpLmZpdENvbnRlbnQoKX0pfXN0YXJ0QXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyfHwodGhpcy5hdXRvU2Nyb2xsVGltZXI9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy51cGRhdGVUaW1lV2luZG93KCl9LHRoaXMuYXV0b1Njcm9sbEludGVydmFsKSl9c3RvcEF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGxUaW1lciYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuYXV0b1Njcm9sbFRpbWVyKSx0aGlzLmF1dG9TY3JvbGxUaW1lcj1udWxsKX1zdGF0aWN7UGkoYSx0KX19O3JldHVybiBoZT1hfSkoKX0pO3ZhciB4eGE9ZygoKT0+e1pudCgpfSk7ZnVuY3Rpb24gZjQocyl7cmV0dXJuIHM/a3hhLmxpZ2h0Omt4YS5kYXJrfWZ1bmN0aW9uIG00KHMsZSl7bGV0IHQ9cGFyc2VJbnQocy5zbGljZSgxLDMpLDE2KSxhPXBhcnNlSW50KHMuc2xpY2UoMyw1KSwxNikscj1wYXJzZUludChzLnNsaWNlKDUsNyksMTYpO3JldHVybmByZ2JhKCR7dH0sICR7YX0sICR7cn0sICR7ZX0pYH1mdW5jdGlvbiBTeGEocyl7bGV0IGU9cz95eGE6d3hhO3JldHVybntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iix0ZXh0U3R5bGU6e2NvbG9yOmUudGV4dFNlY29uZGFyeSxmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRTaXplOjEyfSx0b29sdGlwOntiYWNrZ3JvdW5kQ29sb3I6ZS5iZ1ByaW1hcnksYm9yZGVyQ29sb3I6ZS5ib3JkZXJEZWZhdWx0LHRleHRTdHlsZTp7Y29sb3I6ZS50ZXh0UHJpbWFyeSxmb250U2l6ZToxMn0sY29uZmluZTohMH0sbGVnZW5kOnt0ZXh0U3R5bGU6e2NvbG9yOmUudGV4dFNlY29uZGFyeSxmb250U2l6ZToxMn19fX1mdW5jdGlvbiBnNChzKXtyZXR1cm4gcz95eGE6d3hhfXZhciB5eGEsd3hhLGt4YSxfeD1nKCgpPT57aHQoKTt5eGE9WGMuY29sb3JzLmxpZ2h0LHd4YT1YYy5jb2xvcnMuZGFyayxreGE9e2Rhcms6WyIjNjBhNWZhIiwiIzJkZDRiZiIsIiNhNzhiZmEiLCIjZmJiZjI0IiwiIzM0ZDM5OSIsIiNmYjcxODUiXSxsaWdodDpbIiMzYjgyZjYiLCIjMTRiOGE2IiwiIzhiNWNmNiIsIiNmNTllMGIiLCIjMTBiOTgxIiwiI2Y0M2Y1ZSJdfTtpKGY0LCJnZXRFY2hhcnRzU2VyaWVzQ29sb3JzIik7aShtNCwiaGV4VG9SZ2JhIik7aShTeGEsImdldEVjaGFydHNUaGVtZU9wdGlvbnMiKTtpKGc0LCJnZXRUaGVtZUNvbG9ycyIpfSk7dmFyIGJlcyxfeGEsSHUsVVE9ZygoKT0+e3BlKCk7a3QoKTtPdSgpO194KCk7bXIoKTtiZXM9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LF94YT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSHU9KCgpPT57bGV0IHM9d2UsZSx0PVtdLGE9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRFY2hhcnRzQmFzZSIpfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtMKCldLGJlcyh0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG89PiJsYWJlbCJpbiBvLCJoYXMiKSxnZXQ6aShvPT5vLmxhYmVsLCJnZXQiKSxzZXQ6aSgobyxsKT0+e28ubGFiZWw9bH0sInNldCIpfSxtZXRhZGF0YTpufSx0LGEpLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfSNlPV94YSh0aGlzLHQsIlVudGl0bGVkIENoYXJ0Iik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKG4pe3RoaXMuI2U9bn1jaGFydEluc3RhbmNlPShfeGEodGhpcyxhKSxudWxsKTtlY2hhcnRzQnVuZGxlPW51bGw7cmVzaXplT2JzZXJ2ZXI9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGEuc2V0dXAoKSx0aGlzLnJlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGFzeW5jKCk9PntpZih0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1udWxsKSx0aGlzLmNoYXJ0SW5zdGFuY2UpdHJ5e3RoaXMuY2hhcnRJbnN0YW5jZS5kaXNwb3NlKCksdGhpcy5jaGFydEluc3RhbmNlPW51bGx9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRXJyb3IgZGlzcG9zaW5nIEVDaGFydHMgaW5zdGFuY2U6IixuKX19KX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHRoaXMuZWNoYXJ0c0J1bmRsZT1hd2FpdCBhby5nZXRJbnN0YW5jZSgpLmxvYWRFY2hhcnRzKCksYXdhaXQgbmV3IFByb21pc2Uobz0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG8pKTtsZXQgbj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik7aWYobil0cnl7dGhpcy5jaGFydEluc3RhbmNlPXRoaXMuZWNoYXJ0c0J1bmRsZS5pbml0KG4sbnVsbCx7cmVuZGVyZXI6InN2ZyJ9KSx0aGlzLnVwZGF0ZUNoYXJ0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNoYXJ0SW5zdGFuY2U/LnJlc2l6ZSgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKG4pfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIEVDaGFydHM6IixvKX19YXN5bmMgdXBkYXRlZChuKXtzdXBlci51cGRhdGVkKG4pLG4uaGFzKCJnb0JyaWdodCIpJiZ0aGlzLmNoYXJ0SW5zdGFuY2UmJnRoaXMuYXBwbHlUaGVtZSgpfXVwZGF0ZUNoYXJ0KCl7aWYoIXRoaXMuY2hhcnRJbnN0YW5jZSlyZXR1cm47bGV0IG49U3hhKHRoaXMuZ29CcmlnaHQpLG89dGhpcy5idWlsZE9wdGlvbigpLGw9ey4uLm4sLi4ubyx0ZXh0U3R5bGU6ey4uLm4udGV4dFN0eWxlLC4uLm8udGV4dFN0eWxlfHx7fX0sdG9vbHRpcDp7Li4ubi50b29sdGlwLC4uLm8udG9vbHRpcHx8e319LGxlZ2VuZDp7Li4ubi5sZWdlbmQsLi4uby5sZWdlbmR8fHt9LHRleHRTdHlsZTp7Li4ubi5sZWdlbmQ/LnRleHRTdHlsZXx8e30sLi4uby5sZWdlbmQ/LnRleHRTdHlsZXx8e319fX07dGhpcy5jaGFydEluc3RhbmNlLnNldE9wdGlvbihsLCEwKX1hcHBseVRoZW1lKCl7dGhpcy51cGRhdGVDaGFydCgpfWFzeW5jIGZvcmNlUmVzaXplKCl7dGhpcy5jaGFydEluc3RhbmNlPy5yZXNpemUoKX19fSkoKX0pO3ZhciBNeGEsenhhPWcoKCk9PntwZSgpO0l0KCk7WG50KCk7TXhhPWkoKCk9PntsZXQgcz1bIi9hcGkvdXNlcnMiLCIvYXBpL29yZGVycyIsIi9hcGkvcHJvZHVjdHMiLCIvYXBpL2F1dGgiLCIvYXBpL3NlYXJjaCJdLGU9W3tuYW1lOiJHRVQiLGRhdGE6WzEyNDAsODkwLDcyMCwyMTAwLDU2MF19LHtuYW1lOiJQT1NUIixkYXRhOlszMjAsNDUwLDE4MCw4OTAsNDBdfSx7bmFtZToiUFVUIixkYXRhOls5MCwyMTAsMTUwLDMwLDEwXX1dLHQ9WyJVUy1FYXN0IiwiVVMtV2VzdCIsIkVVIiwiQXNpYSIsIk90aGVyIl0sYT1be25hbWU6IlJlcXVlc3RzIixkYXRhOls0NTAwLDMyMDAsMjgwMCwxOTAwLDYwMF19XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHI9PntsZXQgbj1yLnF1ZXJ5U2VsZWN0b3IoIiN2ZXJ0LWNoYXJ0Iiksbz1yLnF1ZXJ5U2VsZWN0b3IoIiNob3Jpei1jaGFydCIpLGw9ci5xdWVyeVNlbGVjdG9yKCIjc3RhY2stY2hhcnQiKTtyLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChkPT57ZC50ZXh0Py50cmltKCk9PT0iUmFuZG9taXplIiYmZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntuLnNlcmllcz1lLm1hcChjPT4oey4uLmMsZGF0YTpjLmRhdGEubWFwKGI9Pk1hdGgucm91bmQoYiooLjUrTWF0aC5yYW5kb20oKSkpKX0pKSxvLnNlcmllcz1hLm1hcChjPT4oey4uLmMsZGF0YTpjLmRhdGEubWFwKGI9Pk1hdGgucm91bmQoYiooLjUrTWF0aC5yYW5kb20oKSkpKX0pKSxsLnNlcmllcz1lLm1hcChjPT4oey4uLmMsZGF0YTpjLmRhdGEubWFwKGI9Pk1hdGgucm91bmQoYiooLjUrTWF0aC5yYW5kb20oKSkpKX0pKX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgICAgaWQ9InZlcnQtY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1ZXN0cyBieSBFbmRwb2ludCJ9CiAgICAgICAgICAgIC5jYXRlZ29yaWVzPSR7c30KICAgICAgICAgICAgLnNlcmllcz0ke2V9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke3I9PmAke3J9IHJlcWB9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWJhcj4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgICAgaWQ9Imhvcml6LWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiVHJhZmZpYyBieSBSZWdpb24ifQogICAgICAgICAgICAuY2F0ZWdvcmllcz0ke3R9CiAgICAgICAgICAgIC5zZXJpZXM9JHthfQogICAgICAgICAgICAuaG9yaXpvbnRhbD0keyEwfQogICAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHtyPT5gJHsoci8xZTMpLnRvRml4ZWQoMSl9a2B9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWJhcj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRlZXMtY2hhcnQtYmFyCiAgICAgICAgICBpZD0ic3RhY2stY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiU3RhY2tlZDogUmVxdWVzdHMgYnkgRW5kcG9pbnQifQogICAgICAgICAgLmNhdGVnb3JpZXM9JHtzfQogICAgICAgICAgLnNlcmllcz0ke2V9CiAgICAgICAgICAuc3RhY2tlZD0keyEwfQogICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7cj0+YCR7cn0gcmVxYH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWJhcj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBCYXIgY2hhcnQgd2l0aCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCwgYW5kIHN0YWNrZWQgbW9kZXMg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YSB3aXRoIGFuaW1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBiNCxXUT1nKCgpPT57cGUoKTtodCgpO2I0PVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICB9CiAgICBkZWVzLXRpbGUgewogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CiAgICAuY2hhcnRIZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgIH0KICAgIC5jaGFydExhYmVsIHsKICAgICAgZmxleDogMTsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgfQogICAgLmNoYXJ0Q29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMDsKICAgIH0KICBgXX0pO3ZhciBDeGEsVHhhPWcoKCk9PntwZSgpO1dRKCk7Q3hhPVsuLi5iNCxKYGBdfSk7dmFyICR4YSxEeGE9ZygoKT0+e3BlKCk7JHhhPWkocz0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3MubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnRCYXIiKX0pO3ZhciBzNyxjYyx2ZXMsWG50PWcoKCk9PntwZSgpO1VRKCk7enhhKCk7VHhhKCk7RHhhKCk7X3goKTtzNz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sY2M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHZlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtYmFyIildLGUsdD1bXSxhLHI9SHUsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydEJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCAkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHthdHRyaWJ1dGU6ITF9KV0sczcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYXRlZ29yaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJjYXRlZ29yaWVzImluIEUsImhhcyIpLGdldDppKEU9PkUuY2F0ZWdvcmllcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmNhdGVnb3JpZXM9SH0sInNldCIpfSxtZXRhZGF0YTokfSxvLGwpLHM3KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzZXJpZXMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zZXJpZXMsImdldCIpLHNldDppKChFLEgpPT57RS5zZXJpZXM9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLHM3KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaG9yaXpvbnRhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iaG9yaXpvbnRhbCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmhvcml6b250YWwsImdldCIpLHNldDppKChFLEgpPT57RS5ob3Jpem9udGFsPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYix2KSxzNyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YWNrZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InN0YWNrZWQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zdGFja2VkLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc3RhY2tlZD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksczcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGVnZW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzaG93TGVnZW5kImluIEUsImhhcyIpLGdldDppKEU9PkUuc2hvd0xlZ2VuZCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNob3dMZWdlbmQ9SH0sInNldCIpfSxtZXRhZGF0YTokfSxNLHopLHM3KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWVGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InZhbHVlRm9ybWF0dGVyImluIEUsImhhcyIpLGdldDppKEU9PkUudmFsdWVGb3JtYXR0ZXIsImdldCIpLHNldDppKChFLEgpPT57RS52YWx1ZUZvcm1hdHRlcj1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksczcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1NeGE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPWNjKHRoaXMsbyxbXSk7Z2V0IGNhdGVnb3JpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY2F0ZWdvcmllcygkKXt0aGlzLiNlPSR9I3Q9KGNjKHRoaXMsbCksY2ModGhpcyxkLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiN0fXNldCBzZXJpZXMoJCl7dGhpcy4jdD0kfSNhPShjYyh0aGlzLHUpLGNjKHRoaXMsYiwhMSkpO2dldCBob3Jpem9udGFsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGhvcml6b250YWwoJCl7dGhpcy4jYT0kfSNzPShjYyh0aGlzLHYpLGNjKHRoaXMsbSwhMSkpO2dldCBzdGFja2VkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHN0YWNrZWQoJCl7dGhpcy4jcz0kfSNpPShjYyh0aGlzLGYpLGNjKHRoaXMsTSwhMCkpO2dldCBzaG93TGVnZW5kKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dMZWdlbmQoJCl7dGhpcy4jaT0kfSNyPShjYyh0aGlzLHopLGNjKHRoaXMsQywkPT5gJHskfWApKTtnZXQgdmFsdWVGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmFsdWVGb3JtYXR0ZXIoJCl7dGhpcy4jcj0kfXN0YXRpYyBzdHlsZXM9Q3hhO3JlbmRlcigpe3JldHVybiAkeGEodGhpcyl9YXN5bmMgdXBkYXRlZCgkKXtzdXBlci51cGRhdGVkKCQpLHRoaXMuY2hhcnRJbnN0YW5jZSYmKCQuaGFzKCJjYXRlZ29yaWVzIil8fCQuaGFzKCJzZXJpZXMiKXx8JC5oYXMoImhvcml6b250YWwiKXx8JC5oYXMoInN0YWNrZWQiKXx8JC5oYXMoInNob3dMZWdlbmQiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCAkPWc0KHRoaXMuZ29CcmlnaHQpLEU9ZjQodGhpcy5nb0JyaWdodCksSD10aGlzLnZhbHVlRm9ybWF0dGVyLGs9e3R5cGU6ImNhdGVnb3J5IixkYXRhOnRoaXMuY2F0ZWdvcmllcyxheGlzTGluZTp7bGluZVN0eWxlOntjb2xvcjokLmJvcmRlclN0cm9uZ319LGF4aXNMYWJlbDp7Y29sb3I6JC50ZXh0TXV0ZWR9fSxTPXt0eXBlOiJ2YWx1ZSIsYXhpc0xpbmU6e3Nob3c6ITF9LGF4aXNMYWJlbDp7Y29sb3I6JC50ZXh0TXV0ZWQsZm9ybWF0dGVyOmkoVz0+SChXKSwiZm9ybWF0dGVyIil9LHNwbGl0TGluZTp7bGluZVN0eWxlOntjb2xvcjokLmJvcmRlclN1YnRsZX19fSxJPXRoaXMuZ29CcmlnaHQ/LjE1Oi4yNSxQPXRoaXMuaG9yaXpvbnRhbD9bMCw0LDQsMF06WzQsNCwwLDBdLFI9WzAsMCwwLDBdLEs9W10sVj10aGlzLnNlcmllcy5tYXAoKFcsbWUpPT57bGV0IEI9Vy5jb2xvcnx8RVttZSVFLmxlbmd0aF07cmV0dXJuIEsucHVzaCh7bmFtZTpXLm5hbWUsaXRlbVN0eWxlOntjb2xvcjpCfX0pLHtuYW1lOlcubmFtZSx0eXBlOiJiYXIiLGRhdGE6Vy5kYXRhLHN0YWNrOnRoaXMuc3RhY2tlZD8idG90YWwiOnZvaWQgMCxpdGVtU3R5bGU6e2NvbG9yOm00KEIsSSksYm9yZGVyQ29sb3I6Qixib3JkZXJXaWR0aDoxLGJvcmRlclJhZGl1czp0aGlzLnN0YWNrZWQ/UjpQfSxiYXJNYXhXaWR0aDo0MCxiYXJHYXA6IjIwJSIsZW1waGFzaXM6e2l0ZW1TdHlsZTp7Y29sb3I6bTQoQixJKy4xNSksYm9yZGVyQ29sb3I6Qixib3JkZXJXaWR0aDoxLjV9fX19KTtpZih0aGlzLnN0YWNrZWQmJlYubGVuZ3RoPjApe2xldCBXPVZbVi5sZW5ndGgtMV07Vy5pdGVtU3R5bGUuYm9yZGVyUmFkaXVzPVB9cmV0dXJue3Rvb2x0aXA6e3RyaWdnZXI6ImF4aXMiLGF4aXNQb2ludGVyOnt0eXBlOiJzaGFkb3cifSxmb3JtYXR0ZXI6aShXPT57bGV0IG1lPUFycmF5LmlzQXJyYXkoVyk/VzpbV10sQj1gPHN0cm9uZz4ke21lWzBdLmF4aXNWYWx1ZUxhYmVsfTwvc3Ryb25nPjxici8+YDtmb3IobGV0IFUgb2YgbWUpe2xldCBGPWA8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjRweDtib3JkZXItcmFkaXVzOjEwcHg7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiR7VS5ib3JkZXJDb2xvcnx8VS5jb2xvcn07Ij48L3NwYW4+YDtCKz1gJHtGfSR7VS5zZXJpZXNOYW1lfTogPHN0cm9uZz4ke0goVS52YWx1ZSl9PC9zdHJvbmc+PGJyLz5gfXJldHVybiBCfSwiZm9ybWF0dGVyIil9LGxlZ2VuZDp0aGlzLnNob3dMZWdlbmQmJnRoaXMuc2VyaWVzLmxlbmd0aD4xP3tib3R0b206OCxpdGVtV2lkdGg6MTAsaXRlbUhlaWdodDoxMCxkYXRhOkt9OntzaG93OiExfSxncmlkOntsZWZ0OjE2LHJpZ2h0OjE2LHRvcDoxNixib3R0b206dGhpcy5zaG93TGVnZW5kJiZ0aGlzLnNlcmllcy5sZW5ndGg+MT80MDoxNixjb250YWluTGFiZWw6ITB9LHhBeGlzOnRoaXMuaG9yaXpvbnRhbD9TOmsseUF4aXM6dGhpcy5ob3Jpem9udGFsP2s6UyxzZXJpZXM6Vn19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGNjKHRoaXMsXyl9c3RhdGlje2NjKGEsdCl9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBMeGE9ZygoKT0+e1hudCgpfSk7dmFyIEV4YSxQeGE9ZygoKT0+e3BlKCk7SXQoKTtRbnQoKTtFeGE9aSgoKT0+e2xldCBzPVt7bmFtZToiRG9jdW1lbnRzIix2YWx1ZTo0Mn0se25hbWU6Ik1lZGlhIix2YWx1ZToyOH0se25hbWU6IkFwcGxpY2F0aW9ucyIsdmFsdWU6MTV9LHtuYW1lOiJTeXN0ZW0iLHZhbHVlOjEwfSx7bmFtZToiT3RoZXIiLHZhbHVlOjV9XSxlPVt7bmFtZToiSGVhbHRoeSIsdmFsdWU6MTU2fSx7bmFtZToiV2FybmluZyIsdmFsdWU6MjN9LHtuYW1lOiJDcml0aWNhbCIsdmFsdWU6OH0se25hbWU6IlVua25vd24iLHZhbHVlOjN9XSx0PVt7bmFtZToiQVBJIix2YWx1ZTo0NTIwMH0se25hbWU6IlN0YXRpYyBBc3NldHMiLHZhbHVlOjIzMTAwfSx7bmFtZToiV2ViU29ja2V0Iix2YWx1ZToxMjgwMH0se25hbWU6IkdyYXBoUUwiLHZhbHVlOjg5MDB9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgcj1hLnF1ZXJ5U2VsZWN0b3IoIiNkaXNrLWNoYXJ0Iiksbj1hLnF1ZXJ5U2VsZWN0b3IoIiNzdGF0dXMtY2hhcnQiKSxvPWEucXVlcnlTZWxlY3RvcigiI3RyYWZmaWMtY2hhcnQiKTthLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChwPT57cC50ZXh0Py50cmltKCk9PT0iUmFuZG9taXplIiYmcC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLmRhdGE9cy5tYXAodT0+KHsuLi51LHZhbHVlOk1hdGgucm91bmQodS52YWx1ZSooLjUrTWF0aC5yYW5kb20oKSkpfSkpLG4uZGF0YT1lLm1hcCh1PT4oey4uLnUsdmFsdWU6TWF0aC5yb3VuZCh1LnZhbHVlKiguMytNYXRoLnJhbmRvbSgpKjEuNCkpfSkpLG8uZGF0YT10Lm1hcCh1PT4oey4uLnUsdmFsdWU6TWF0aC5yb3VuZCh1LnZhbHVlKiguNStNYXRoLnJhbmRvbSgpKSl9KSl9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jaGFydFJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SYW5kb21pemU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRSb3ciPgogICAgICAgICAgPGRlZXMtY2hhcnQtZG9udXQKICAgICAgICAgICAgaWQ9ImRpc2stY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNrIFVzYWdlIChHQikifQogICAgICAgICAgICAuZGF0YT0ke3N9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2E9PmAke2F9IEdCYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtZG9udXQ+CgogICAgICAgICAgPGRlZXMtY2hhcnQtZG9udXQKICAgICAgICAgICAgaWQ9InN0YXR1cy1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgU3RhdHVzIn0KICAgICAgICAgICAgLmRhdGE9JHtlfQogICAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHthPT5gJHthfSBzZXJ2aWNlc2B9CiAgICAgICAgICAgIC5pbm5lclJhZGl1c1BlcmNlbnQ9JHsiMCUifQogICAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRlZXMtY2hhcnQtZG9udXQKICAgICAgICAgIGlkPSJ0cmFmZmljLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7IlRyYWZmaWMgRGlzdHJpYnV0aW9uIn0KICAgICAgICAgIC5kYXRhPSR7dH0KICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2E9PmAkeyhhLzFlMykudG9GaXhlZCgxKX1rIHJlcWB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBEb251dCBjaGFydCB3aXRoIGNvbmZpZ3VyYWJsZSBpbm5lciByYWRpdXMgKHNldCB0byAwJSBmb3IgZnVsbCBwaWUpIOKAogogICAgICAgICAgQ2xpY2sgJ1JhbmRvbWl6ZScgdG8gdXBkYXRlIGRhdGEgd2l0aCBhbmltYXRpb24KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgSXhhLEF4YT1nKCgpPT57cGUoKTtXUSgpO0l4YT1bLi4uYjQsSmAKICAgIDpob3N0IHsKICAgICAgaGVpZ2h0OiAzNjBweDsKICAgIH0KICAgIC5jaGFydENvbnRhaW5lciB7CiAgICAgIGluc2V0OiAxMnB4IDA7CiAgICB9CiAgYF19KTt2YXIgTnhhLFJ4YT1nKCgpPT57cGUoKTtOeGE9aShzPT53YAogICAgPGRlZXMtdGlsZT4KICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICA8L2RlZXMtdGlsZT4KICBgLCJyZW5kZXJDaGFydERvbnV0Iil9KTt2YXIgTXgsRTIseGVzLFFudD1nKCgpPT57cGUoKTtVUSgpO1B4YSgpO0F4YSgpO1J4YSgpO194KCk7TXg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEUyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx4ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoYXJ0LWRvbnV0IildLGUsdD1bXSxhLHI9SHUsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydERvbnV0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe2F0dHJpYnV0ZTohMX0pXSxNeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImRhdGEiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5kYXRhLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZGF0YT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksTXgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGVnZW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaG93TGVnZW5kImluIF8sImhhcyIpLGdldDppKF89Pl8uc2hvd0xlZ2VuZCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNob3dMZWdlbmQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLE14KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0xhYmVscyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2hvd0xhYmVscyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNob3dMYWJlbHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zaG93TGFiZWxzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxNeCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlubmVyUmFkaXVzUGVyY2VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaW5uZXJSYWRpdXNQZXJjZW50ImluIF8sImhhcyIpLGdldDppKF89Pl8uaW5uZXJSYWRpdXNQZXJjZW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaW5uZXJSYWRpdXNQZXJjZW50PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxNeCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlRm9ybWF0dGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ2YWx1ZUZvcm1hdHRlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnZhbHVlRm9ybWF0dGVyLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udmFsdWVGb3JtYXR0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLE14KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89RXhhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1FMih0aGlzLG8sW10pO2dldCBkYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGEoQyl7dGhpcy4jZT1DfSN0PShFMih0aGlzLGwpLEUyKHRoaXMsZCwhMCkpO2dldCBzaG93TGVnZW5kKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNob3dMZWdlbmQoQyl7dGhpcy4jdD1DfSNhPShFMih0aGlzLHUpLEUyKHRoaXMsYiwhMCkpO2dldCBzaG93TGFiZWxzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dMYWJlbHMoQyl7dGhpcy4jYT1DfSNzPShFMih0aGlzLHYpLEUyKHRoaXMsbSwiNTUlIikpO2dldCBpbm5lclJhZGl1c1BlcmNlbnQoKXtyZXR1cm4gdGhpcy4jc31zZXQgaW5uZXJSYWRpdXNQZXJjZW50KEMpe3RoaXMuI3M9Q30jaT0oRTIodGhpcyxmKSxFMih0aGlzLE0sQz0+YCR7Q31gKSk7Z2V0IHZhbHVlRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbHVlRm9ybWF0dGVyKEMpe3RoaXMuI2k9Q31zdGF0aWMgc3R5bGVzPUl4YTtyZW5kZXIoKXtyZXR1cm4gTnhhKHRoaXMpfWFzeW5jIHVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihDLmhhcygiZGF0YSIpfHxDLmhhcygic2hvd0xlZ2VuZCIpfHxDLmhhcygic2hvd0xhYmVscyIpfHxDLmhhcygiaW5uZXJSYWRpdXNQZXJjZW50IikpJiZ0aGlzLnVwZGF0ZUNoYXJ0KCl9YnVpbGRPcHRpb24oKXtsZXQgQz1nNCh0aGlzLmdvQnJpZ2h0KSxfPWY0KHRoaXMuZ29CcmlnaHQpLE89dGhpcy5nb0JyaWdodD8uMTU6LjIsJD1bXSxFPXRoaXMuZGF0YS5tYXAoKGssUyk9PntsZXQgST1rLmNvbG9yfHxfW1MlXy5sZW5ndGhdO3JldHVybiAkLnB1c2goe25hbWU6ay5uYW1lLGl0ZW1TdHlsZTp7Y29sb3I6SX19KSx7bmFtZTprLm5hbWUsdmFsdWU6ay52YWx1ZSxpdGVtU3R5bGU6e2NvbG9yOm00KEksTyksYm9yZGVyQ29sb3I6SSxib3JkZXJXaWR0aDoxfSxlbXBoYXNpczp7aXRlbVN0eWxlOntjb2xvcjptNChJLE8rLjE1KSxib3JkZXJDb2xvcjpJLGJvcmRlcldpZHRoOjEuNX19fX0pLEg9dGhpcy52YWx1ZUZvcm1hdHRlcjtyZXR1cm57dG9vbHRpcDp7dHJpZ2dlcjoiaXRlbSIsZm9ybWF0dGVyOmkoaz0+YCR7YDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MTBweDt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6JHtrLmRhdGE/Lml0ZW1TdHlsZT8uYm9yZGVyQ29sb3J8fGsuY29sb3J9OyI+PC9zcGFuPmB9JHtrLm5hbWV9OiA8c3Ryb25nPiR7SChrLnZhbHVlKX08L3N0cm9uZz4gKCR7ay5wZXJjZW50fSUpYCwiZm9ybWF0dGVyIil9LGxlZ2VuZDp0aGlzLnNob3dMZWdlbmQ/e29yaWVudDoidmVydGljYWwiLHJpZ2h0OjE2LHRvcDoiY2VudGVyIixpdGVtV2lkdGg6MTAsaXRlbUhlaWdodDoxMCxpdGVtR2FwOjEyLGRhdGE6JCxmb3JtYXR0ZXI6aShrPT57bGV0IFM9dGhpcy5kYXRhLmZpbmQoST0+SS5uYW1lPT09ayk7cmV0dXJuIFM/YCR7a30gICR7SChTLnZhbHVlKX1gOmt9LCJmb3JtYXR0ZXIiKX06e3Nob3c6ITF9LHNlcmllczpbe3R5cGU6InBpZSIscmFkaXVzOlt0aGlzLmlubmVyUmFkaXVzUGVyY2VudCwiODUlIl0sY2VudGVyOnRoaXMuc2hvd0xlZ2VuZD9bIjM1JSIsIjUwJSJdOlsiNTAlIiwiNTAlIl0sYXZvaWRMYWJlbE92ZXJsYXA6ITAscGFkQW5nbGU6MixpdGVtU3R5bGU6e2JvcmRlclJhZGl1czo0fSxsYWJlbDp0aGlzLnNob3dMYWJlbHM/e3Nob3c6ITAsZm9ybWF0dGVyOiJ7Yn06IHtkfSUiLGZvbnRTaXplOjExLGNvbG9yOkMudGV4dFNlY29uZGFyeSx0ZXh0Qm9yZGVyQ29sb3I6InRyYW5zcGFyZW50In06e3Nob3c6ITF9LGRhdGE6RX1dfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRTIodGhpcyx6KX1zdGF0aWN7RTIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIE94YT1nKCgpPT57UW50KCl9KTt2YXIgRnhhLEJ4YT1nKCgpPT57cGUoKTtJdCgpO0pudCgpO0Z4YT1pKCgpPT57bGV0IHM9W3t2YWx1ZTo2MCxjb2xvcjoiaHNsKDE0MiA3NiUgMzYlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDM4IDkyJSA1MCUpIn0se3ZhbHVlOjEwMCxjb2xvcjoiaHNsKDAgNzIlIDUwJSkifV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY3B1LWdhdWdlIiksYT1lLnF1ZXJ5U2VsZWN0b3IoIiNtZW0tZ2F1Z2UiKSxyPWUucXVlcnlTZWxlY3RvcigiI3NsYS1nYXVnZSIpLG49bnVsbDtlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChsPT57bGV0IHA9bC50ZXh0Py50cmltKCk7cD09PSJBbmltYXRlIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e258fChuPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+e3QudmFsdWU9TWF0aC5yb3VuZCgzMCtNYXRoLnJhbmRvbSgpKjYwKSxhLnZhbHVlPU1hdGgucm91bmQoNDArTWF0aC5yYW5kb20oKSo1MCksci52YWx1ZT1NYXRoLnJvdW5kKCg5NStNYXRoLnJhbmRvbSgpKjUpKjEwMCkvMTAwfSwyZTMpKX0pOnA9PT0iU3RvcCI/bC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntuJiYod2luZG93LmNsZWFySW50ZXJ2YWwobiksbj1udWxsKX0pOnA9PT0iU3Bpa2UiJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudmFsdWU9OTUsYS52YWx1ZT04OCxyLnZhbHVlPTk2LjV9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5nYXVnZVJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QW5pbWF0ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdhdWdlUm93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWdhdWdlCiAgICAgICAgICAgIGlkPSJjcHUtZ2F1Z2UiCiAgICAgICAgICAgIC5sYWJlbD0keyJDUFUgVXNhZ2UifQogICAgICAgICAgICAudmFsdWU9JHs0Mn0KICAgICAgICAgICAgLnVuaXQ9JHsiJSJ9CiAgICAgICAgICAgIC50aHJlc2hvbGRzPSR7c30KICAgICAgICAgID48L2RlZXMtY2hhcnQtZ2F1Z2U+CgogICAgICAgICAgPGRlZXMtY2hhcnQtZ2F1Z2UKICAgICAgICAgICAgaWQ9Im1lbS1nYXVnZSIKICAgICAgICAgICAgLmxhYmVsPSR7Ik1lbW9yeSBVc2FnZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezY3fQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnRocmVzaG9sZHM9JHtzfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1nYXVnZQogICAgICAgICAgICBpZD0ic2xhLWdhdWdlIgogICAgICAgICAgICAubGFiZWw9JHsiU0xBIFVwdGltZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezk5Ljh9CiAgICAgICAgICAgIC5taW49JHs5NX0KICAgICAgICAgICAgLm1heD0kezEwMH0KICAgICAgICAgICAgLnVuaXQ9JHsiJSJ9CiAgICAgICAgICAgIC5zaG93VGlja3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtZ2F1Z2U+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgR2F1Z2UgY2hhcnQgd2l0aCBhbmltYXRlZCB2YWx1ZSB0cmFuc2l0aW9ucyBhbmQgdGhyZXNob2xkIGNvbG9yaW5nIOKAogogICAgICAgICAgQ2xpY2sgJ0FuaW1hdGUnIGZvciBsaXZlIHVwZGF0ZXMsICdTcGlrZScgdG8gc2ltdWxhdGUgaGlnaCBsb2FkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIEh4YSxxeGE9ZygoKT0+e3BlKCk7V1EoKTtIeGE9Wy4uLmI0LEpgCiAgICA6aG9zdCB7CiAgICAgIGhlaWdodDogMzIwcHg7CiAgICB9CiAgYF19KTt2YXIganhhLFZ4YT1nKCgpPT57cGUoKTtqeGE9aShzPT53YAogICAgPGRlZXMtdGlsZT4KICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICA8L2RlZXMtdGlsZT4KICBgLCJyZW5kZXJDaGFydEdhdWdlIil9KTt2YXIgaTcsZGMseWVzLEpudD1nKCgpPT57cGUoKTtVUSgpO0J4YSgpO3F4YSgpO1Z4YSgpO194KCk7aTc9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGRjPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx5ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoYXJ0LWdhdWdlIildLGUsdD1bXSxhLHI9SHUsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydEdhdWdlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpBcnJheX0pXSxOPVtMKHt0eXBlOkJvb2xlYW59KV0saTcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZhbHVlPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxpNyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWluImluIEUsImhhcyIpLGdldDppKEU9PkUubWluLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubWluPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSxpNyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWF4ImluIEUsImhhcyIpLGdldDppKEU9PkUubWF4LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubWF4PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYix2KSxpNyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InVuaXQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS51bml0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudW5pdD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksaTcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0aHJlc2hvbGRzImluIEUsImhhcyIpLGdldDppKEU9PkUudGhyZXNob2xkcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnRocmVzaG9sZHM9SH0sInNldCIpfSxtZXRhZGF0YTokfSxNLHopLGk3KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RpY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzaG93VGlja3MiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93VGlja3MsImdldCIpLHNldDppKChFLEgpPT57RS5zaG93VGlja3M9SH0sInNldCIpfSxtZXRhZGF0YTokfSxDLF8pLGk3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOiR9LG51bGwsdCksTz1hPWUudmFsdWUsJCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTokfSl9c3RhdGljIGRlbW89RnhhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1kYyh0aGlzLG8sMCk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCQpe3RoaXMuI2U9JH0jdD0oZGModGhpcyxsKSxkYyh0aGlzLGQsMCkpO2dldCBtaW4oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluKCQpe3RoaXMuI3Q9JH0jYT0oZGModGhpcyx1KSxkYyh0aGlzLGIsMTAwKSk7Z2V0IG1heCgpe3JldHVybiB0aGlzLiNhfXNldCBtYXgoJCl7dGhpcy4jYT0kfSNzPShkYyh0aGlzLHYpLGRjKHRoaXMsbSwiJSIpKTtnZXQgdW5pdCgpe3JldHVybiB0aGlzLiNzfXNldCB1bml0KCQpe3RoaXMuI3M9JH0jaT0oZGModGhpcyxmKSxkYyh0aGlzLE0sW10pKTtnZXQgdGhyZXNob2xkcygpe3JldHVybiB0aGlzLiNpfXNldCB0aHJlc2hvbGRzKCQpe3RoaXMuI2k9JH0jcj0oZGModGhpcyx6KSxkYyh0aGlzLEMsITApKTtnZXQgc2hvd1RpY2tzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dUaWNrcygkKXt0aGlzLiNyPSR9c3RhdGljIHN0eWxlcz1IeGE7cmVuZGVyKCl7cmV0dXJuIGp4YSh0aGlzKX1hc3luYyB1cGRhdGVkKCQpe3N1cGVyLnVwZGF0ZWQoJCksdGhpcy5jaGFydEluc3RhbmNlJiYoJC5oYXMoInZhbHVlIil8fCQuaGFzKCJtaW4iKXx8JC5oYXMoIm1heCIpfHwkLmhhcygidW5pdCIpfHwkLmhhcygidGhyZXNob2xkcyIpfHwkLmhhcygic2hvd1RpY2tzIikpJiZ0aGlzLnVwZGF0ZUNoYXJ0KCl9YnVpbGRPcHRpb24oKXtsZXQgJD1nNCh0aGlzLmdvQnJpZ2h0KSxIPWY0KHRoaXMuZ29CcmlnaHQpWzBdLGs7aWYodGhpcy50aHJlc2hvbGRzLmxlbmd0aD4wKXtsZXQgUz1bLi4udGhpcy50aHJlc2hvbGRzXS5zb3J0KChJLFApPT5JLnZhbHVlLVAudmFsdWUpO2s9Uy5tYXAoST0+WyhJLnZhbHVlLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLEkuY29sb3JdKSxrW2subGVuZ3RoLTFdWzBdPDEmJmsucHVzaChbMSxTW1MubGVuZ3RoLTFdLmNvbG9yXSl9ZWxzZSBrPVtbMSxIXV07cmV0dXJue3Nlcmllczpbe3R5cGU6ImdhdWdlIixtaW46dGhpcy5taW4sbWF4OnRoaXMubWF4LHN0YXJ0QW5nbGU6MjIwLGVuZEFuZ2xlOi00MCxwcm9ncmVzczp7c2hvdzohMCx3aWR0aDoxNCxyb3VuZENhcDohMH0scG9pbnRlcjp7c2hvdzohMCxsZW5ndGg6IjYwJSIsd2lkdGg6NSxpdGVtU3R5bGU6e2NvbG9yOiJhdXRvIn19LGF4aXNMaW5lOntsaW5lU3R5bGU6e3dpZHRoOjE0LGNvbG9yOmssb3BhY2l0eTouM319LGF4aXNUaWNrOntzaG93OnRoaXMuc2hvd1RpY2tzLGRpc3RhbmNlOi0yMCxsZW5ndGg6NixsaW5lU3R5bGU6e2NvbG9yOiQuYm9yZGVyU3Ryb25nLHdpZHRoOjF9fSxzcGxpdExpbmU6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6LTI0LGxlbmd0aDoxMCxsaW5lU3R5bGU6e2NvbG9yOiQudGV4dE11dGVkLHdpZHRoOjJ9fSxheGlzTGFiZWw6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6MzAsY29sb3I6JC50ZXh0TXV0ZWQsZm9udFNpemU6MTF9LGRldGFpbDp7dmFsdWVBbmltYXRpb246ITAsZm9udFNpemU6MjgsZm9udFdlaWdodDo2MDAsb2Zmc2V0Q2VudGVyOlswLCI2NSUiXSxjb2xvcjokLnRleHRQcmltYXJ5LGZvcm1hdHRlcjpge3ZhbHVlfSR7dGhpcy51bml0fWB9LHRpdGxlOntzaG93OiExfSxkYXRhOlt7dmFsdWU6dGhpcy52YWx1ZX1dfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxkYyh0aGlzLF8pfXN0YXRpY3tkYyhhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgVXhhPWcoKCk9PntKbnQoKX0pO3ZhciBXeGEsR3hhPWcoKCk9PntwZSgpO0l0KCk7V3hhPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCIjc3RydWN0dXJlZC1sb2ciKSx0PXMucXVlcnlTZWxlY3RvcigiI3Jhdy1sb2ciKSxhLHIsbj1bIlNlcnZlciIsIkRhdGFiYXNlIiwiQVBJIiwiQXV0aCIsIkNhY2hlIiwiUXVldWUiLCJXZWJTb2NrZXQiLCJTY2hlZHVsZXIiXSxvPXtkZWJ1ZzpbIkxvYWRpbmcgbW9kdWxlOiB7e21vZHVsZX19IiwiQ2FjaGUgaGl0IGZvciBrZXk6IHt7a2V5fX0iLCJTUUwgcXVlcnkgZXhlY3V0ZWQgaW4ge3t0aW1lfX1tcyIsIlJlcXVlc3QgaGVhZGVyczoge3toZWFkZXJzfX0iLCJFbnZpcm9ubWVudCB2YXJpYWJsZSBsb2FkZWQ6IHt7dmFyfX0iXSxpbmZvOlsiUmVxdWVzdCByZWNlaXZlZDoge3ttZXRob2R9fSB7e3BhdGh9fSIsIlVzZXIge3t1c2VySWR9fSBhdXRoZW50aWNhdGVkIHN1Y2Nlc3NmdWxseSIsIlByb2Nlc3Npbmcgam9iIHt7am9iSWR9fSBmcm9tIHF1ZXVlIiwnU2NoZWR1bGVkIHRhc2sgInt7dGFza319IiBzdGFydGVkJywiV2ViU29ja2V0IGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgZnJvbSB7e2lwfX0iXSx3YXJuOlsiU2xvdyBxdWVyeSBkZXRlY3RlZDoge3txdWVyeX19ICh7e3RpbWV9fW1zKSIsIk1lbW9yeSB1c2FnZSBhdCB7e3BlcmNlbnR9fSUiLCJSYXRlIGxpbWl0IGFwcHJvYWNoaW5nIGZvciBJUCB7e2lwfX0iLCJEZXByZWNhdGVkIEFQSSBlbmRwb2ludCBjYWxsZWQ6IHt7ZW5kcG9pbnR9fSIsIkNlcnRpZmljYXRlIGV4cGlyZXMgaW4ge3tkYXlzfX0gZGF5cyJdLGVycm9yOlsiRGF0YWJhc2UgY29ubmVjdGlvbiBsb3N0OiB7e2Vycm9yfX0iLCJGYWlsZWQgdG8gcHJvY2VzcyByZXF1ZXN0OiB7e2Vycm9yfX0iLCJBdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIge3t1c2VyfX0iLCJGaWxlIG5vdCBmb3VuZDoge3twYXRofX0iLCJTZXJ2aWNlIHVuYXZhaWxhYmxlOiB7e3NlcnZpY2V9fSJdLHN1Y2Nlc3M6WyJTZXJ2ZXIgc3RhcnRlZCBzdWNjZXNzZnVsbHkgb24gcG9ydCB7e3BvcnR9fSIsIkRhdGFiYXNlIG1pZ3JhdGlvbiBjb21wbGV0ZWQiLCJCYWNrdXAgY29tcGxldGVkOiB7e3NpemV9fSBNQiIsIlNTTCBjZXJ0aWZpY2F0ZSByZW5ld2VkIiwiSGVhbHRoIGNoZWNrIHBhc3NlZDogYWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiXX0sbD1bIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS4xMjNaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbbmdpbnhdIEdFVCAvYXBpL2hlYWx0aCAyMDAgLSAybXMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNDU2Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JlZGlzXSBDb25uZWN0aW9uIHBvb2wgcnVubmluZyBsb3c6IDMvMTAiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNzg5Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW21vbmdvZGJdIFF1ZXJ5IHRpbWVvdXQgYWZ0ZXIgMzAwMDBtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ni4wMTJaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbYXBwXSBQcm9jZXNzaW5nIGJhdGNoIGpvYiAje3tqb2JJZH19IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjM0NVpceDFCWzBtIFx4MUJbMzJtT0tceDFCWzBtICAgIFtoZWFsdGhdIEFsbCBzZXJ2aWNlcyBoZWFsdGh5IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjY3OFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtrYWZrYV0gTWVzc2FnZSBjb25zdW1lZCBmcm9tIHRvcGljOiBldmVudHMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMDAxWlx4MUJbMG0gXHgxQlszNW1ERUJVR1x4MUJbMG0gW2dycGNdIFJlcXVlc3QgcmVjZWl2ZWQ6IEdldFVzZXIoaWQ9e3t1c2VySWR9fSkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMjM0Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW2F1dGhdIFRva2VuIHZhbGlkYXRpb24gZmFpbGVkOiBleHBpcmVkIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3LjU2N1pceDFCWzBtIFx4MUJbMzNtV0FSTlx4MUJbMG0gIFtyYXRlLWxpbWl0XSBJUCB7e2lwfX0gYXBwcm9hY2hpbmcgcmF0ZSBsaW1pdCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny44OTBaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbd2Vic29ja2V0XSBDbGllbnQgY29ubmVjdGVkOiBzZXNzaW9uPXt7c2Vzc2lvbn19IixgXHgxQlszMW1FcnJvcjogQ29ubmVjdGlvbiByZWZ1c2VkXHgxQlswbQogICAgYXQgVGNwQ29ubmVjdGlvbi5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvY29ubmVjdGlvbi5qczoxMjoxNSkKICAgIGF0IFBvb2wuY29ubmVjdCAoL2FwcC9ub2RlX21vZHVsZXMvcGcvbGliL3Bvb2wuanM6NDU6MjMpCiAgICBhdCBhc3luYyBEYXRhYmFzZVNlcnZpY2UucXVlcnkgKC9hcHAvc3JjL2RiL3NlcnZpY2UudHM6ODk6MTIpYF0scD1pKCgpPT57bGV0IG09WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJzdWNjZXNzIl0sZj1bLjIsLjUsLjE1LC4xLC4wNV0seT1NYXRoLnJhbmRvbSgpLE09MCx6PSJpbmZvIjtmb3IobGV0ICQ9MDskPGYubGVuZ3RoOyQrKylpZihNKz1mWyRdLHk8TSl7ej1tWyRdO2JyZWFrfWxldCBOPW5bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm4ubGVuZ3RoKV0sQz1vW3pdLE89Q1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqQy5sZW5ndGgpXS5yZXBsYWNlKCJ7e21vZHVsZX19IixbImV4cHJlc3MiLCJtb25nb29zZSIsInJlZGlzIiwic29ja2V0LmlvIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3trZXl9fSIsInVzZXI6IitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3t0aW1lfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSs1MCkpLnJlcGxhY2UoInt7aGVhZGVyc319IiwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uIikucmVwbGFjZSgie3t2YXJ9fSIsWyJOT0RFX0VOViIsIkRBVEFCQVNFX1VSTCIsIkFQSV9LRVkiLCJQT1JUIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3ttZXRob2R9fSIsWyJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3twYXRofX0iLFsiL2FwaS91c2VycyIsIi9hcGkvYXV0aC9sb2dpbiIsIi9hcGkvcHJvZHVjdHMiLCIvaGVhbHRoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tqb2JJZH19Iiwiam9iXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKS5yZXBsYWNlKCJ7e3Rhc2t9fSIsWyJjbGVhbnVwIiwiYmFja3VwIiwicmVwb3J0LWdlbmVyYXRpb24iLCJjYWNoZS1yZWZyZXNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3txdWVyeX19IiwiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSAuLi4iKS5yZXBsYWNlKCJ7e3BlcmNlbnR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrNzApKS5yZXBsYWNlKCJ7e2VuZHBvaW50fX0iLCIvYXBpL3YxL2xlZ2FjeSIpLnJlcGxhY2UoInt7ZGF5c319IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSsxKSkucmVwbGFjZSgie3tlcnJvcn19IixbIkVDT05OUkVGVVNFRCIsIkVUSU1FRE9VVCIsIkVOT1RGT1VORCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7dXNlcn19IiwidXNlcl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3NlcnZpY2V9fSIsWyJSZWRpcyIsIk1vbmdvREIiLCJFbGFzdGljU2VhcmNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3twb3J0fX0iLFN0cmluZygzZTMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwKSkpLnJlcGxhY2UoInt7c2l6ZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrMTAwKSk7ZS5hZGRMb2coeixPLE4pfSwiZ2VuZXJhdGVSYW5kb21Mb2ciKSxkPWkoKCk9PntsZXQgbT1sW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpsLmxlbmd0aCldLGY9bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk9bS5yZXBsYWNlKC8yMDI0LTAxLTE1VDEwOjIzOlxkezJ9XC5cZHszfVovZyxmKS5yZXBsYWNlKCJ7e2pvYklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7dXNlcklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7aXB9fSIsYDE5Mi4xNjguMS4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTUpfWApLnJlcGxhY2UoInt7c2Vzc2lvbn19IixNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwxMSkpO3Qud3JpdGVsblJhdyh5KX0sImdlbmVyYXRlRG9ja2VyTG9nIiksdT1pKCgpPT57aWYoIWEpe2xldCBtPWkoKCk9PntwKCk7bGV0IGY9TWF0aC5yYW5kb20oKSoyZTMrNTAwO2E9d2luZG93LnNldFRpbWVvdXQoKCk9PnthJiZtKCl9LGYpfSwic2NoZWR1bGVOZXh0Iik7bSgpfX0sInN0YXJ0U3RydWN0dXJlZFNpbXVsYXRpb24iKSxjPWkoKCk9PnthJiYod2luZG93LmNsZWFyVGltZW91dChhKSxhPW51bGwpfSwic3RvcFN0cnVjdHVyZWRTaW11bGF0aW9uIiksYj1pKCgpPT57aWYoIXIpe2xldCBtPWkoKCk9PntkKCk7bGV0IGY9TWF0aC5yYW5kb20oKSoxZTMrMjAwO3I9d2luZG93LnNldFRpbWVvdXQoKCk9PntyJiZtKCl9LGYpfSwic2NoZWR1bGVOZXh0Iik7bSgpfX0sInN0YXJ0UmF3U2ltdWxhdGlvbiIpLHY9aSgoKT0+e3ImJih3aW5kb3cuY2xlYXJUaW1lb3V0KHIpLHI9bnVsbCl9LCJzdG9wUmF3U2ltdWxhdGlvbiIpO3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKG09Pntzd2l0Y2gobS50ZXh0Py50cmltKCkpe2Nhc2UiQWRkIFN0cnVjdHVyZWQgTG9nIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+cCgpKTticmVhaztjYXNlIlN0YXJ0IFN0cnVjdHVyZWQiOm0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT51KCkpO2JyZWFrO2Nhc2UiU3RvcCBTdHJ1Y3R1cmVkIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+YygpKTticmVhaztjYXNlIkFkZCBEb2NrZXIgTG9nIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZCgpKTticmVhaztjYXNlIlN0YXJ0IERvY2tlciI6bS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PmIoKSk7YnJlYWs7Y2FzZSJTdG9wIERvY2tlciI6bS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnYoKSk7YnJlYWt9fSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8IS0tIFN0cnVjdHVyZWQgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdHJ1Y3R1cmVkIExvZ3MgKElMb2dFbnRyeSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFN0cnVjdHVyZWQgbG9nIGVudHJpZXMgd2l0aCBsZXZlbCwgbWVzc2FnZSwgYW5kIHNvdXJjZS4gU3VwcG9ydHMgc2VhcmNoIGFuZCBrZXl3b3JkIGhpZ2hsaWdodGluZy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFN0cnVjdHVyZWQgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBTdHJ1Y3R1cmVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InN0cnVjdHVyZWQtbG9nIgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3Rpb24gU2VydmVyIExvZ3MifQogICAgICAgICAgLmhpZ2hsaWdodEtleXdvcmRzPSR7WyJlcnJvciIsImZhaWxlZCIsInRpbWVvdXQiXX0KICAgICAgICAgIC5zaG93TWV0cmljcz0keyEwfQogICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUmF3IExvZ3MgU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmF3IExvZ3MgKERvY2tlci9Db250YWluZXIgU3R5bGUpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBSYXcgbG9nIG91dHB1dCB3aXRoIEFOU0kgZXNjYXBlIHNlcXVlbmNlcyBmb3IgcmVhbCBEb2NrZXIvY29udGFpbmVyIGxvZ3MuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBEb2NrZXIgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgRG9ja2VyPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgIGlkPSJyYXctbG9nIgogICAgICAgICAgLmxhYmVsPSR7IkRvY2tlciBDb250YWluZXIgTG9ncyJ9CiAgICAgICAgICAubW9kZT0keyJyYXcifQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITF9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBlMSxJaSx3ZXMsS3hhPWcoKCk9PntwZSgpO2t0KCk7R3hhKCk7aHQoKTtPdSgpO21yKCk7ZTE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LElpPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx3ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoYXJ0LWxvZyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXTt2YXIgaGU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydExvZyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBGPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpBcnJheX0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpOdW1iZXJ9KV0sTj1bTCh7dHlwZTpBcnJheX0pXSxPPVtMKHt0eXBlOkJvb2xlYW59KV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0sZTEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibGFiZWwiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5sYWJlbCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5sYWJlbD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxvLGwpLGUxKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibW9kZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm1vZGUsImdldCIpLHNldDppKChqLHVlKT0+e2oubW9kZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxkLHUpLGUxKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nRW50cmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibG9nRW50cmllcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmxvZ0VudHJpZXMsImdldCIpLHNldDppKChqLHVlKT0+e2oubG9nRW50cmllcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxiLHYpLGUxKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1Njcm9sbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iYXV0b1Njcm9sbCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmF1dG9TY3JvbGwsImdldCIpLHNldDppKChqLHVlKT0+e2ouYXV0b1Njcm9sbD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxtLGYpLGUxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RW50cmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibWF4RW50cmllcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm1heEVudHJpZXMsImdldCIpLHNldDppKChqLHVlKT0+e2oubWF4RW50cmllcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxNLHopLGUxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0S2V5d29yZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImhpZ2hsaWdodEtleXdvcmRzImluIGosImhhcyIpLGdldDppKGo9PmouaGlnaGxpZ2h0S2V5d29yZHMsImdldCIpLHNldDppKChqLHVlKT0+e2ouaGlnaGxpZ2h0S2V5d29yZHM9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQyxfKSxlMSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJzaG93TWV0cmljcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnNob3dNZXRyaWNzLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnNob3dNZXRyaWNzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LCQsRSksZTEodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hRdWVyeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2VhcmNoUXVlcnkiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zZWFyY2hRdWVyeSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5zZWFyY2hRdWVyeT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxrLFMpLGUxKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iZmlsdGVyTW9kZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmZpbHRlck1vZGUsImdldCIpLHNldDppKChqLHVlKT0+e2ouZmlsdGVyTW9kZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxQLFIpLGUxKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibWV0cmljcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm1ldHJpY3MsImdldCIpLHNldDppKChqLHVlKT0+e2oubWV0cmljcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxWLFcpLGUxKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InRlcm1pbmFsUmVhZHkiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai50ZXJtaW5hbFJlYWR5LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnRlcm1pbmFsUmVhZHk9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQixVKSxlMShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpGfSxudWxsLHQpLGhlPWE9ZS52YWx1ZSxGJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkZ9KX1zdGF0aWMgZGVtbz1XeGE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCIsIldvcmtzcGFjZSJdOyNlPUlpKHRoaXMsbywiU2VydmVyIExvZ3MiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwoRil7dGhpcy4jZT1GfSN0PShJaSh0aGlzLGwpLElpKHRoaXMsZCwic3RydWN0dXJlZCIpKTtnZXQgbW9kZSgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RlKEYpe3RoaXMuI3Q9Rn0jYT0oSWkodGhpcyx1KSxJaSh0aGlzLGIsW10pKTtnZXQgbG9nRW50cmllcygpe3JldHVybiB0aGlzLiNhfXNldCBsb2dFbnRyaWVzKEYpe3RoaXMuI2E9Rn0jcz0oSWkodGhpcyx2KSxJaSh0aGlzLG0sITApKTtnZXQgYXV0b1Njcm9sbCgpe3JldHVybiB0aGlzLiNzfXNldCBhdXRvU2Nyb2xsKEYpe3RoaXMuI3M9Rn0jaT0oSWkodGhpcyxmKSxJaSh0aGlzLE0sMWU0KSk7Z2V0IG1heEVudHJpZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWF4RW50cmllcyhGKXt0aGlzLiNpPUZ9I3I9KElpKHRoaXMseiksSWkodGhpcyxDLFtdKSk7Z2V0IGhpZ2hsaWdodEtleXdvcmRzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGhpZ2hsaWdodEtleXdvcmRzKEYpe3RoaXMuI3I9Rn0jbz0oSWkodGhpcyxfKSxJaSh0aGlzLCQsITApKTtnZXQgc2hvd01ldHJpY3MoKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd01ldHJpY3MoRil7dGhpcy4jbz1GfSNuPShJaSh0aGlzLEUpLElpKHRoaXMsaywiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiNufXNldCBzZWFyY2hRdWVyeShGKXt0aGlzLiNuPUZ9I2w9KElpKHRoaXMsUyksSWkodGhpcyxQLCExKSk7Z2V0IGZpbHRlck1vZGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZmlsdGVyTW9kZShGKXt0aGlzLiNsPUZ9I2M9KElpKHRoaXMsUiksSWkodGhpcyxWLHtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9KSk7Z2V0IG1ldHJpY3MoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWV0cmljcyhGKXt0aGlzLiNjPUZ9I2Q9KElpKHRoaXMsVyksSWkodGhpcyxCLCExKSk7Z2V0IHRlcm1pbmFsUmVhZHkoKXtyZXR1cm4gdGhpcy4jZH1zZXQgdGVybWluYWxSZWFkeShGKXt0aGlzLiNkPUZ9bG9nQnVmZmVyPShJaSh0aGlzLFUpLFtdKTt0cmFpbGluZ0hpZGRlbkNvdW50PTA7dGVybWluYWw9bnVsbDtmaXRBZGRvbj1udWxsO3NlYXJjaEFkZG9uPW51bGw7cmVzaXplT2JzZXJ2ZXI9bnVsbDt0ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGw7ZG9tdG9vbHNJbnN0YW5jZT1udWxsO3JhdGVCdWZmZXI9W107cmF0ZUludGVydmFsPW51bGw7c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1uYXYgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA0NyUpIil9OwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5JSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgLnh0ZXJtIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLm1ldHJpYzo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5lcnJvcjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMud2Fybjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjUgOTUlIDUzJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuaW5mbzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjIyLjIgNDcuNCUgNTEuMiUpOwogICAgICB9CgogICAgICAubWV0cmljLnN1Y2Nlc3M6OmJlZm9yZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5kZWJ1Zzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCAwJSA2My45JSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZTo6YmVmb3JlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGEuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZSAuaGVhZGluZz0ke3RoaXMubGFiZWx9PgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke3RoaXMubGFiZWx9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtYm94Ij4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGxvZ3MuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHtGPT50aGlzLmhhbmRsZVNlYXJjaElucHV0KEYpfQogICAgICAgICAgICAgIEBrZXlkb3duPSR7Rj0+dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3duKEYpfQogICAgICAgICAgICAvPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtbmF2Ij4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaFByZXZpb3VzKCl9IHRpdGxlPSJQcmV2aW91cyBtYXRjaCI+4oaRPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zZWFyY2hOZXh0KCl9IHRpdGxlPSJOZXh0IG1hdGNoIj7ihpM8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iZmlsdGVyLXRvZ2dsZSAke3RoaXMuZmlsdGVyTW9kZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlRmlsdGVyTW9kZSgpfQogICAgICAgICAgICAgIHRpdGxlPSIke3RoaXMuZmlsdGVyTW9kZT8iU3dpdGNoIHRvIGhpZ2hsaWdodCBtb2RlIjoiU3dpdGNoIHRvIGZpbHRlciBtb2RlIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyTW9kZT8iRmlsdGVyIjoiSGlnaGxpZ2h0In0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLWJ1dHRvbiAke3RoaXMuYXV0b1Njcm9sbD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlQXV0b1Njcm9sbCgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQXV0byBTY3JvbGwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvbnRyb2wtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jbGVhckxvZ3MoKX0+CiAgICAgICAgICAgICAgQ2xlYXIKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy50ZXJtaW5hbFJlYWR5PyIiOndgPGRpdiBjbGFzcz0ibG9hZGluZy1zdGF0ZSI+TG9hZGluZyB0ZXJtaW5hbC4uLjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5zaG93TWV0cmljcz93YAogICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ibWV0cmljcy1iYXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBlcnJvciI+ZXJyb3JzOiAke3RoaXMubWV0cmljcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHdhcm4iPndhcm5zOiAke3RoaXMubWV0cmljcy53YXJufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgaW5mbyI+aW5mbzogJHt0aGlzLm1ldHJpY3MuaW5mb308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHN1Y2Nlc3MiPnN1Y2Nlc3M6ICR7dGhpcy5tZXRyaWNzLnN1Y2Nlc3N9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBkZWJ1ZyI+ZGVidWc6ICR7dGhpcy5tZXRyaWNzLmRlYnVnfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgcmF0ZSI+JHt0aGlzLm1ldHJpY3MucmF0ZS50b0ZpeGVkKDEpfSBsb2dzL3NlYzwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZG9tdG9vbHNJbnN0YW5jZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmluaXRpYWxpemVUZXJtaW5hbCgpLHRoaXMubG9nRW50cmllcy5sZW5ndGg+MCYmdGhpcy5sb2dCdWZmZXIubGVuZ3RoPT09MCl7dGhpcy5sb2dCdWZmZXI9Wy4uLnRoaXMubG9nRW50cmllc107Zm9yKGxldCBGIG9mIHRoaXMubG9nRW50cmllcyl0aGlzLnVwZGF0ZU1ldHJpY3MoRi5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KEYpfWVsc2UgaWYodGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+MCl7bGV0IEY9bmV3IFNldCh0aGlzLmxvZ0J1ZmZlci5tYXAoaj0+YCR7ai50aW1lc3RhbXB9fCR7ai5tZXNzYWdlfWApKTtmb3IobGV0IGogb2YgdGhpcy5sb2dFbnRyaWVzKUYuaGFzKGAke2oudGltZXN0YW1wfXwke2oubWVzc2FnZX1gKXx8KHRoaXMubG9nQnVmZmVyLnB1c2goaiksdGhpcy51cGRhdGVNZXRyaWNzKGoubGV2ZWwpLHRoaXMud3JpdGVMb2dFbnRyeShqKSl9fWFzeW5jIGluaXRpYWxpemVUZXJtaW5hbCgpe2xldCBGPWFvLmdldEluc3RhbmNlKCksW2osdWUsbGVdPWF3YWl0IFByb21pc2UuYWxsKFtGLmxvYWRYdGVybSgpLEYubG9hZFh0ZXJtRml0QWRkb24oKSxGLmxvYWRYdGVybVNlYXJjaEFkZG9uKCldKTthd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpLHRoaXMudGVybWluYWw9bmV3IGouVGVybWluYWwoe2N1cnNvckJsaW5rOiExLGRpc2FibGVTdGRpbjohMCxmb250U2l6ZToxMixmb250RmFtaWx5OiInU0YgTW9ubycsICdNb25hY28nLCAnQ29uc29sYXMnLCAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlIix0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUoKSxzY3JvbGxiYWNrOnRoaXMubWF4RW50cmllcyxjb252ZXJ0RW9sOiEwfSksdGhpcy5maXRBZGRvbj1uZXcgdWUuRml0QWRkb24sdGhpcy5zZWFyY2hBZGRvbj1uZXcgbGUuU2VhcmNoQWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5zZWFyY2hBZGRvbik7bGV0IFE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbC1jb250YWluZXIiKTt0aGlzLnRlcm1pbmFsLm9wZW4oUSksYXdhaXQgbmV3IFByb21pc2UoaWU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShpZSkpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uPy5maXQoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShRKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249dGhpcy5kb210b29sc0luc3RhbmNlLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKCgpPT57dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZT10aGlzLmdldFRlcm1pbmFsVGhlbWUoKSl9KSx0aGlzLnJhdGVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+dGhpcy5jYWxjdWxhdGVSYXRlKCksMWUzKSx0aGlzLnRlcm1pbmFsUmVhZHk9ITA7Zm9yKGxldCBpZSBvZiB0aGlzLmxvZ0J1ZmZlcil0aGlzLndyaXRlTG9nRW50cnkoaWUpfXVwZGF0ZWQoRil7aWYoc3VwZXIudXBkYXRlZChGKSxGLmhhcygiZ29CcmlnaHQiKSYmdGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZT10aGlzLmdldFRlcm1pbmFsVGhlbWUoKSksRi5oYXMoImxvZ0VudHJpZXMiKSYmdGhpcy50ZXJtaW5hbFJlYWR5JiZ0aGlzLmxvZ0VudHJpZXMubGVuZ3RoPjApe2xldCBqPUYuZ2V0KCJsb2dFbnRyaWVzIil8fFtdLHVlPXRoaXMubG9nRW50cmllcztpZihqLmxlbmd0aD09PXVlLmxlbmd0aCYmai5sZW5ndGg+MCYmaltqLmxlbmd0aC0xXS50aW1lc3RhbXA9PT11ZVt1ZS5sZW5ndGgtMV0udGltZXN0YW1wJiZqW2oubGVuZ3RoLTFdLm1lc3NhZ2U9PT11ZVt1ZS5sZW5ndGgtMV0ubWVzc2FnZSlyZXR1cm47aWYodWUubGVuZ3RoPmoubGVuZ3RoJiZqLmxlbmd0aD4wJiZqW2oubGVuZ3RoLTFdLnRpbWVzdGFtcD09PXVlW2oubGVuZ3RoLTFdLnRpbWVzdGFtcCYmaltqLmxlbmd0aC0xXS5tZXNzYWdlPT09dWVbai5sZW5ndGgtMV0ubWVzc2FnZSl7bGV0IGxlPXVlLnNsaWNlKGoubGVuZ3RoKTtmb3IobGV0IFEgb2YgbGUpdGhpcy5sb2dCdWZmZXIucHVzaChRKSx0aGlzLnVwZGF0ZU1ldHJpY3MoUS5sZXZlbCksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwoIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnl8fHRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKFEpKSYmdGhpcy53cml0ZUxvZ0VudHJ5KFEpO3JldHVybn10aGlzLmxvZ0J1ZmZlcj1bLi4udWVdLHRoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKX19Z2V0VGVybWluYWxUaGVtZSgpe3JldHVybiF0aGlzLmdvQnJpZ2h0P3tiYWNrZ3JvdW5kOiIjMGEwYTBhIixmb3JlZ3JvdW5kOiIjZTBlMGUwIixjdXJzb3I6IiNlMGUwZTAiLHNlbGVjdGlvbkJhY2tncm91bmQ6IiM0MDQwNDAiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNmZjU1NTUiLGdyZWVuOiIjNTBmYTdiIix5ZWxsb3c6IiNmMWZhOGMiLGJsdWU6IiM2MjcyYTQiLG1hZ2VudGE6IiNmZjc5YzYiLGN5YW46IiM4YmU5ZmQiLHdoaXRlOiIjZjhmOGYyIixicmlnaHRCbGFjazoiIzYyNzJhNCIsYnJpZ2h0UmVkOiIjZmY2ZTZlIixicmlnaHRHcmVlbjoiIzY5ZmY5NCIsYnJpZ2h0WWVsbG93OiIjZmZmZmE1IixicmlnaHRCbHVlOiIjZDZhY2ZmIixicmlnaHRNYWdlbnRhOiIjZmY5MmRmIixicmlnaHRDeWFuOiIjYTRmZmZmIixicmlnaHRXaGl0ZToiI2ZmZmZmZiJ9OntiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLHNlbGVjdGlvbkJhY2tncm91bmQ6IiNhZGQ2ZmYiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9fWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpe2xldCBGPSJ4dGVybS1zaGFkb3ctc3R5bGVzIjtpZih0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoRikpcmV0dXJuO2xldCBqPWAkeyQyfS94dGVybUAke1QyLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxsZT1hd2FpdChhd2FpdCBmZXRjaChqKSkudGV4dCgpLFE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtRLmlkPUYsUS50ZXh0Q29udGVudD1sZSx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoUSl9YWRkTG9nKEYsaix1ZSl7bGV0IGxlPXt0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGxldmVsOkYsbWVzc2FnZTpqLHNvdXJjZTp1ZX07dGhpcy5sb2dCdWZmZXIucHVzaChsZSksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwhdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeT90aGlzLndyaXRlTG9nRW50cnkobGUpOnRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKGxlKT8odGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsdGhpcy53cml0ZUxvZ0VudHJ5KGxlKSk6dGhpcy51cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCksdGhpcy51cGRhdGVNZXRyaWNzKGxlLmxldmVsKX11cGRhdGVMb2coRil7aWYoRilmb3IobGV0IGogb2YgRil0aGlzLmxvZ0J1ZmZlci5wdXNoKGopLHRoaXMubG9nQnVmZmVyLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJnRoaXMubG9nQnVmZmVyLnNoaWZ0KCksIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnk/dGhpcy53cml0ZUxvZ0VudHJ5KGopOnRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKGopPyh0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLndyaXRlTG9nRW50cnkoaikpOnRoaXMudXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpLHRoaXMudXBkYXRlTWV0cmljcyhqLmxldmVsKX11cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD4wJiZ0aGlzLnRlcm1pbmFsLndyaXRlKCJceDFCWzFBXHgxQlsyS1xyIiksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50KyssdGhpcy53cml0ZUhpZGRlblBsYWNlaG9sZGVyKHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfWVudHJ5TWF0Y2hlc0ZpbHRlcihGKXtpZighdGhpcy5zZWFyY2hRdWVyeSlyZXR1cm4hMDtsZXQgaj10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7cmV0dXJuIEYubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGopfHxGLmxldmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoail8fChGLnNvdXJjZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhqKT8/ITEpfXdyaXRlTG9nRW50cnkoRil7aWYoIXRoaXMudGVybWluYWwpcmV0dXJuO2xldCBqPXRoaXMuZm9ybWF0TG9nRW50cnkoRik7dGhpcy50ZXJtaW5hbC53cml0ZWxuKGopLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfWZvcm1hdExvZ0VudHJ5KEYpe2xldCBqPXRoaXMuZm9ybWF0VGltZXN0YW1wKEYudGltZXN0YW1wKSx1ZT17ZGVidWc6Ilx4MUJbOTBtIixpbmZvOiJceDFCWzM2bSIsd2FybjoiXHgxQlszM20iLGVycm9yOiJceDFCWzMxbSIsc3VjY2VzczoiXHgxQlszMm0ifSxsZT0iXHgxQlswbSIsUT0iXHgxQlsybSIsaWU9YCR7dWVbRi5sZXZlbF19WyR7Ri5sZXZlbC50b1VwcGVyQ2FzZSgpLnBhZEVuZCg3KX1dJHtsZX1gLHRlPUYuc291cmNlP2Ake1F9WyR7Ri5zb3VyY2V9XSR7bGV9IGA6IiIsZWU9dGhpcy5hcHBseUhpZ2hsaWdodHMoRi5tZXNzYWdlKTtyZXR1cm5gJHtRfSR7an0ke2xlfSAke2llfSAke3RlfSR7ZWV9YH1mb3JtYXRUaW1lc3RhbXAoRil7cmV0dXJuIG5ldyBEYXRlKEYpLnRvTG9jYWxlVGltZVN0cmluZygiZW4tVVMiLHtob3VyMTI6ITEsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQiLGZyYWN0aW9uYWxTZWNvbmREaWdpdHM6M30pfWFwcGx5SGlnaGxpZ2h0cyhGKXtsZXQgaj1bLi4udGhpcy5oaWdobGlnaHRLZXl3b3Jkc107aWYodGhpcy5maWx0ZXJNb2RlJiZ0aGlzLnNlYXJjaFF1ZXJ5JiZqLnB1c2godGhpcy5zZWFyY2hRdWVyeSksai5sZW5ndGg9PT0wKXJldHVybiBGO2xldCB1ZT1GO2ZvcihsZXQgbGUgb2Ygail7bGV0IFE9bGUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csIlxcJCYiKSxpZT1uZXcgUmVnRXhwKGAoJHtRfSlgLCJnaSIpO3VlPXVlLnJlcGxhY2UoaWUsIlx4MUJbNDNtXHgxQlszMG0kMVx4MUJbMG0iKX1yZXR1cm4gdWV9d3JpdGVSYXcoRil7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGUoRiksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX13cml0ZWxuUmF3KEYpe3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLndyaXRlbG4oRiksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1oYW5kbGVTZWFyY2hJbnB1dChGKXtsZXQgdWU9Ri50YXJnZXQudmFsdWUsbGU9dGhpcy5zZWFyY2hRdWVyeSE9PXVlO3RoaXMuc2VhcmNoUXVlcnk9dWUsdGhpcy5maWx0ZXJNb2RlJiZsZT90aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCk6dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9aGFuZGxlU2VhcmNoS2V5ZG93bihGKXtGLmtleT09PSJFbnRlciI/Ri5zaGlmdEtleT90aGlzLnNlYXJjaFByZXZpb3VzKCk6dGhpcy5zZWFyY2hOZXh0KCk6Ri5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2VhcmNoUXVlcnk9IiIsRi50YXJnZXQudmFsdWU9IiIpfXNlYXJjaChGKXt0aGlzLnNlYXJjaFF1ZXJ5PUYsdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQoRil9c2VhcmNoTmV4dCgpe3RoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KHRoaXMuc2VhcmNoUXVlcnkpfXNlYXJjaFByZXZpb3VzKCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZFByZXZpb3VzKHRoaXMuc2VhcmNoUXVlcnkpfXRvZ2dsZUF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGw9IXRoaXMuYXV0b1Njcm9sbCx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX10b2dnbGVGaWx0ZXJNb2RlKCl7dGhpcy5maWx0ZXJNb2RlPSF0aGlzLmZpbHRlck1vZGUsdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfXJlUmVuZGVyRmlsdGVyZWRMb2dzKCl7aWYodGhpcy50ZXJtaW5hbCl7aWYodGhpcy50ZXJtaW5hbC5jbGVhcigpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5KWZvcihsZXQgRiBvZiB0aGlzLmxvZ0J1ZmZlcil7bGV0IGo9dGhpcy5mb3JtYXRMb2dFbnRyeShGKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oail9ZWxzZXtsZXQgRj0wO2ZvcihsZXQgaiBvZiB0aGlzLmxvZ0J1ZmZlcilpZih0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihqKSl7Rj4wJiYodGhpcy53cml0ZUhpZGRlblBsYWNlaG9sZGVyKEYpLEY9MCk7bGV0IHVlPXRoaXMuZm9ybWF0TG9nRW50cnkoaik7dGhpcy50ZXJtaW5hbC53cml0ZWxuKHVlKX1lbHNlIEYrKztGPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoRiksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PUYpfXRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfX13cml0ZUhpZGRlblBsYWNlaG9sZGVyKEYpe2xldCBqPSJceDFCWzJtIix1ZT0iXHgxQlswbSIsbGU9Rj09PTE/IlsxIGxvZyBsaW5lIGhpZGRlbiBieSBmaWx0ZXIgLi4uXSI6YFske0Z9IGxvZyBsaW5lcyBoaWRkZW4gYnkgZmlsdGVyIC4uLl1gO3RoaXMudGVybWluYWw/LndyaXRlbG4oYCR7an0ke2xlfSR7dWV9YCl9Y2xlYXJMb2dzKCl7dGhpcy50ZXJtaW5hbD8uY2xlYXIoKSx0aGlzLmxvZ0J1ZmZlcj1bXSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLnJlc2V0TWV0cmljcygpfXNjcm9sbFRvQm90dG9tKCl7dGhpcy50ZXJtaW5hbD8uc2Nyb2xsVG9Cb3R0b20oKX11cGRhdGVNZXRyaWNzKEYpe3RoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLFtGXTp0aGlzLm1ldHJpY3NbRl0rMSx0b3RhbDp0aGlzLm1ldHJpY3MudG90YWwrMX0sdGhpcy5yZWNvcmRMb2dFdmVudCgpfXJlY29yZExvZ0V2ZW50KCl7dGhpcy5yYXRlQnVmZmVyLnB1c2goRGF0ZS5ub3coKSl9Y2FsY3VsYXRlUmF0ZSgpe2xldCBGPURhdGUubm93KCk7dGhpcy5yYXRlQnVmZmVyPXRoaXMucmF0ZUJ1ZmZlci5maWx0ZXIodWU9PkYtdWU8MWU0KTtsZXQgaj10aGlzLnJhdGVCdWZmZXIubGVuZ3RoLzEwO2ohPT10aGlzLm1ldHJpY3MucmF0ZSYmKHRoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLHJhdGU6an0pfXJlc2V0TWV0cmljcygpe3RoaXMubWV0cmljcz17ZGVidWc6MCxpbmZvOjAsd2FybjowLGVycm9yOjAsc3VjY2VzczowLHRvdGFsOjAscmF0ZTowfSx0aGlzLnJhdGVCdWZmZXI9W119YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJnRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5yYXRlSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5yYXRlSW50ZXJ2YWwpLHRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuZGlzcG9zZSgpfXN0YXRpY3tJaShhLHQpfX07cmV0dXJuIGhlPWF9KSgpfSk7dmFyIFl4YT1nKCgpPT57S3hhKCl9KTt2YXIgWnhhLFh4YT1nKCgpPT57cGUoKTtJdCgpO2VsdCgpO1p4YT1pKCgpPT57bGV0IHM9W3tuYW1lOiJMYXRlbmN5IixtYXg6MTAwfSx7bmFtZToiVGhyb3VnaHB1dCIsbWF4OjEwMH0se25hbWU6IkF2YWlsYWJpbGl0eSIsbWF4OjEwMH0se25hbWU6IkVycm9yIFJhdGUiLG1heDoxMDB9LHtuYW1lOiJTYXR1cmF0aW9uIixtYXg6MTAwfSx7bmFtZToiU2VjdXJpdHkiLG1heDoxMDB9XSxlPVt7bmFtZToiU2VydmljZSBBIix2YWx1ZXM6Wzg1LDkwLDk5LDEyLDQ1LDc4XX0se25hbWU6IlNlcnZpY2UgQiIsdmFsdWVzOls3MCw2NSw5NSwyOCw2MCw5MF19XSx0PVt7bmFtZToiU3BlZWQiLG1heDoxMH0se25hbWU6IlJlbGlhYmlsaXR5IixtYXg6MTB9LHtuYW1lOiJDb21mb3J0IixtYXg6MTB9LHtuYW1lOiJTYWZldHkiLG1heDoxMH0se25hbWU6IkNvc3QiLG1heDoxMH1dLGE9W3tuYW1lOiJSYXRpbmciLHZhbHVlczpbOC41LDkuMiw3LDkuNSw2XX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcj0+e2xldCBuPXIucXVlcnlTZWxlY3RvcigiI2NvbXBhcmlzb24tY2hhcnQiKSxvPXIucXVlcnlTZWxlY3RvcigiI3NpbmdsZS1jaGFydCIpO3IucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHA9PntwLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZwLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24uc2VyaWVzPWUubWFwKHU9Pih7Li4udSx2YWx1ZXM6dS52YWx1ZXMubWFwKCgpPT5NYXRoLnJvdW5kKDIwK01hdGgucmFuZG9tKCkqODApKX0pKSxvLnNlcmllcz1hLm1hcCh1PT4oey4uLnUsdmFsdWVzOnUudmFsdWVzLm1hcCgoKT0+TWF0aC5yb3VuZCgoMitNYXRoLnJhbmRvbSgpKjgpKjEwKS8xMCl9KSl9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jaGFydFJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SYW5kb21pemU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRSb3ciPgogICAgICAgICAgPGRlZXMtY2hhcnQtcmFkYXIKICAgICAgICAgICAgaWQ9ImNvbXBhcmlzb24tY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJTZXJ2aWNlIEhlYWx0aCBDb21wYXJpc29uIn0KICAgICAgICAgICAgLmluZGljYXRvcnM9JHtzfQogICAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgID48L2RlZXMtY2hhcnQtcmFkYXI+CgogICAgICAgICAgPGRlZXMtY2hhcnQtcmFkYXIKICAgICAgICAgICAgaWQ9InNpbmdsZS1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgUmF0aW5nIn0KICAgICAgICAgICAgLmluZGljYXRvcnM9JHt0fQogICAgICAgICAgICAuc2VyaWVzPSR7YX0KICAgICAgICAgICAgLmZpbGxBcmVhPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LXJhZGFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIFJhZGFyIGNoYXJ0IGZvciBtdWx0aS1kaW1lbnNpb25hbCBjb21wYXJpc29uIOKAogogICAgICAgICAgU3VwcG9ydHMgbXVsdGlwbGUgb3ZlcmxheSBzZXJpZXMgYW5kIGNvbmZpZ3VyYWJsZSBmaWxsIOKAogogICAgICAgICAgQ2xpY2sgJ1JhbmRvbWl6ZScgdG8gdXBkYXRlIGRhdGEKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgUXhhLEp4YT1nKCgpPT57cGUoKTtXUSgpO1F4YT1bLi4uYjQsSmBgXX0pO3ZhciBleWEsdHlhPWcoKCk9PntwZSgpO2V5YT1pKHM9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHtzLmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0UmFkYXIiKX0pO3ZhciBHUSxxdSxrZXMsZWx0PWcoKCk9PntwZSgpO1VRKCk7WHhhKCk7SnhhKCk7dHlhKCk7X3goKTtHUT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0scXU9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGtlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtcmFkYXIiKV0sZSx0PVtdLGEscj1IdSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0UmFkYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6QXJyYXl9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSxHUSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluZGljYXRvcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImluZGljYXRvcnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pbmRpY2F0b3JzLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaW5kaWNhdG9ycz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksR1EodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNlcmllcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNlcmllcywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnNlcmllcz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGQsdSksR1EodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGVnZW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzaG93TGVnZW5kImluIHosImhhcyIpLGdldDppKHo9Pnouc2hvd0xlZ2VuZCwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnNob3dMZWdlbmQ9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLEdRKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsbEFyZWEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImZpbGxBcmVhImluIHosImhhcyIpLGdldDppKHo9PnouZmlsbEFyZWEsImdldCIpLHNldDppKCh6LE4pPT57ei5maWxsQXJlYT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksR1EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1aeGE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPXF1KHRoaXMsbyxbXSk7Z2V0IGluZGljYXRvcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaW5kaWNhdG9ycyhNKXt0aGlzLiNlPU19I3Q9KHF1KHRoaXMsbCkscXUodGhpcyxkLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiN0fXNldCBzZXJpZXMoTSl7dGhpcy4jdD1NfSNhPShxdSh0aGlzLHUpLHF1KHRoaXMsYiwhMCkpO2dldCBzaG93TGVnZW5kKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dMZWdlbmQoTSl7dGhpcy4jYT1NfSNzPShxdSh0aGlzLHYpLHF1KHRoaXMsbSwhMCkpO2dldCBmaWxsQXJlYSgpe3JldHVybiB0aGlzLiNzfXNldCBmaWxsQXJlYShNKXt0aGlzLiNzPU19c3RhdGljIHN0eWxlcz1ReGE7cmVuZGVyKCl7cmV0dXJuIGV5YSh0aGlzKX1hc3luYyB1cGRhdGVkKE0pe3N1cGVyLnVwZGF0ZWQoTSksdGhpcy5jaGFydEluc3RhbmNlJiYoTS5oYXMoImluZGljYXRvcnMiKXx8TS5oYXMoInNlcmllcyIpfHxNLmhhcygic2hvd0xlZ2VuZCIpfHxNLmhhcygiZmlsbEFyZWEiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCBNPWc0KHRoaXMuZ29CcmlnaHQpLHo9ZjQodGhpcy5nb0JyaWdodCksTj10aGlzLmdvQnJpZ2h0Py4xOi4xNSxDPXRoaXMuc2VyaWVzLm1hcCgoXyxPKT0+e2xldCAkPV8uY29sb3J8fHpbTyV6Lmxlbmd0aF07cmV0dXJue25hbWU6Xy5uYW1lLHZhbHVlOl8udmFsdWVzLGl0ZW1TdHlsZTp7Y29sb3I6JCxib3JkZXJDb2xvcjokLGJvcmRlcldpZHRoOjF9LGxpbmVTdHlsZTp7Y29sb3I6JCx3aWR0aDoxLjV9LGFyZWFTdHlsZTp0aGlzLmZpbGxBcmVhP3tjb2xvcjptNCgkLE4pfTp2b2lkIDAsc3ltYm9sOiJjaXJjbGUiLHN5bWJvbFNpemU6NX19KTtyZXR1cm57dG9vbHRpcDp7dHJpZ2dlcjoiaXRlbSJ9LGxlZ2VuZDp0aGlzLnNob3dMZWdlbmQmJnRoaXMuc2VyaWVzLmxlbmd0aD4xP3tib3R0b206OCxpdGVtV2lkdGg6MTAsaXRlbUhlaWdodDoxMH06e3Nob3c6ITF9LHJhZGFyOntpbmRpY2F0b3I6dGhpcy5pbmRpY2F0b3JzLm1hcChfPT4oe25hbWU6Xy5uYW1lLG1heDpfLm1heH0pKSxzaGFwZToicG9seWdvbiIsc3BsaXROdW1iZXI6NCxheGlzTmFtZTp7Y29sb3I6TS50ZXh0U2Vjb25kYXJ5LGZvbnRTaXplOjExfSxzcGxpdEFyZWE6e2FyZWFTdHlsZTp7Y29sb3I6W00uYmdUZXJ0aWFyeSxNLmJnU2Vjb25kYXJ5XX19LHNwbGl0TGluZTp7bGluZVN0eWxlOntjb2xvcjpNLmJvcmRlckRlZmF1bHR9fSxheGlzTGluZTp7bGluZVN0eWxlOntjb2xvcjpNLmJvcmRlckRlZmF1bHR9fX0sc2VyaWVzOlt7dHlwZToicmFkYXIiLGRhdGE6QyxlbXBoYXNpczp7bGluZVN0eWxlOnt3aWR0aDozfX19XX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHF1KHRoaXMsZil9c3RhdGlje3F1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBheWE9ZygoKT0+e2VsdCgpfSk7dmFyIHN5YT1nKCgpPT57eHhhKCk7THhhKCk7T3hhKCk7VXhhKCk7WXhhKCk7YXlhKCl9KTt2YXIgaXlhLHJ5YT1nKCgpPT57cGUoKTtpeWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtb1dyYXBwZXIgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHlwZVNjcmlwdCBDb2RlIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSBjb21wcmVoZW5zaXZlIFR5cGVTY3JpcHQgY29kZSBleGFtcGxlIHdpdGggdmFyaW91cyBzeW50YXggaGlnaGxpZ2h0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJ0eXBlc2NyaXB0Ij4KaW50ZXJmYWNlIFVzZXIgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwogIGVtYWlsOiBzdHJpbmc7CiAgaXNBY3RpdmU6IGJvb2xlYW47Cn0KCmNsYXNzIFVzZXJTZXJ2aWNlIHsKICBwcml2YXRlIHVzZXJzOiBVc2VyW10gPSBbXTsKICAKICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVVybDogc3RyaW5nKSB7CiAgICBjb25zb2xlLmxvZygnVXNlclNlcnZpY2UgaW5pdGlhbGl6ZWQnKTsKICB9CiAgCiAgYXN5bmMgZ2V0VXNlcnMoKTogUHJvbWlzZTxVc2VyW10+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy5hcGlVcmwpOwogICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpOwogICAgICByZXR1cm4gZGF0YS51c2VyczsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCB1c2VyczonLCBlcnJvcik7CiAgICAgIHJldHVybiBbXTsKICAgIH0KICB9CiAgCiAgYWRkVXNlcih1c2VyOiBVc2VyKTogdm9pZCB7CiAgICB0aGlzLnVzZXJzLnB1c2godXNlcik7CiAgfQp9CgovLyBVc2FnZSBleGFtcGxlCmNvbnN0IHNlcnZpY2UgPSBuZXcgVXNlclNlcnZpY2UoJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzJyk7CmNvbnN0IHVzZXJzID0gYXdhaXQgc2VydmljZS5nZXRVc2VycygpOwpjb25zb2xlLmxvZygnRm91bmQgdXNlcnM6JywgdXNlcnMubGVuZ3RoKTsKICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkphdmFTY3JpcHQgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gSmF2YVNjcmlwdCB3aXRoIEVTNisgZmVhdHVyZXMuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImphdmFzY3JpcHQiPgovLyBBcnJheSBtYW5pcHVsYXRpb24gZXhhbXBsZXMKY29uc3QgbnVtYmVycyA9IFsxLCAyLCAzLCA0LCA1XTsKY29uc3QgZG91YmxlZCA9IG51bWJlcnMubWFwKG4gPT4gbiAqIDIpOwpjb25zdCBmaWx0ZXJlZCA9IG51bWJlcnMuZmlsdGVyKG4gPT4gbiA+IDMpOwoKLy8gT2JqZWN0IGRlc3RydWN0dXJpbmcKY29uc3QgdXNlciA9IHsgbmFtZTogJ0pvaG4nLCBhZ2U6IDMwLCBjaXR5OiAnTmV3IFlvcmsnIH07CmNvbnN0IHsgbmFtZSwgYWdlIH0gPSB1c2VyOwoKLy8gUHJvbWlzZSBoYW5kbGluZwpjb25zdCBmZXRjaERhdGEgPSBhc3luYyAodXJsKSA9PiB7CiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpOwogIHJldHVybiByZXNwb25zZS5qc29uKCk7Cn07CgovLyBNb2Rlcm4gc3ludGF4CmNvbnN0IGdyZWV0ID0gKG5hbWUgPSAnV29ybGQnKSA9PiBcYEhlbGxvLCBcJHtuYW1lfSFcYDsKY29uc29sZS5sb2coZ3JlZXQoJ1NoYWRDTicpKTsKICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlB5dGhvbiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlB5dGhvbiBjb2RlIHdpdGggY2xhc3NlcyBhbmQgdHlwZSBoaW50cy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0icHl0aG9uIj4KZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QsIE9wdGlvbmFsCmltcG9ydCBhc3luY2lvCgpjbGFzcyBEYXRhUHJvY2Vzc29yOgogICAgIiIiQSBzaW1wbGUgZGF0YSBwcm9jZXNzb3IgY2xhc3MiIiIKICAgIAogICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWU6IHN0cik6CiAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgIHNlbGYuZGF0YTogTGlzdFtkaWN0XSA9IFtdCiAgICAKICAgIGFzeW5jIGRlZiBwcm9jZXNzX2RhdGEoc2VsZiwgaXRlbXM6IExpc3RbZGljdF0pIC0+IExpc3RbZGljdF06CiAgICAgICAgIiIiUHJvY2VzcyBkYXRhIGl0ZW1zIGFzeW5jaHJvbm91c2x5IiIiCiAgICAgICAgcmVzdWx0cyA9IFtdCiAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CiAgICAgICAgICAgICMgU2ltdWxhdGUgYXN5bmMgcHJvY2Vzc2luZwogICAgICAgICAgICBhd2FpdCBhc3luY2lvLnNsZWVwKDAuMSkKICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoewogICAgICAgICAgICAgICAgJ2lkJzogaXRlbS5nZXQoJ2lkJyksCiAgICAgICAgICAgICAgICAncHJvY2Vzc2VkJzogVHJ1ZSwKICAgICAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUKICAgICAgICAgICAgfSkKICAgICAgICByZXR1cm4gcmVzdWx0cwogICAgCiAgICBkZWYgZ2V0X3N1bW1hcnkoc2VsZikgLT4gZGljdDoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAncHJvY2Vzc29yJzogc2VsZi5uYW1lLAogICAgICAgICAgICAnaXRlbXNfcHJvY2Vzc2VkJzogbGVuKHNlbGYuZGF0YSkKICAgICAgICB9CgojIFVzYWdlCnByb2Nlc3NvciA9IERhdGFQcm9jZXNzb3IoIk1haW4iKQpkYXRhID0gYXdhaXQgcHJvY2Vzc29yLnByb2Nlc3NfZGF0YShbeydpZCc6IDF9LCB7J2lkJzogMn1dKQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q1NTIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+TW9kZXJuIENTUyB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzIGFuZCBhbmltYXRpb25zLiBOb3RlIHRoZSBzaG9ydGVyIGxhbmd1YWdlIGxhYmVsLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJjc3MiPgovKiBNb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgKi8KOnJvb3QgewogIC0tcHJpbWFyeS1jb2xvcjogIzNiODJmNjsKICAtLXNlY29uZGFyeS1jb2xvcjogIzEwYjk4MTsKICAtLWJhY2tncm91bmQ6ICNmZmZmZmY7CiAgLS10ZXh0LWNvbG9yOiAjMDkwOTBiOwogIC0tYm9yZGVyLXJhZGl1czogNnB4Owp9CgouY2FyZCB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7CiAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTsKICBwYWRkaW5nOiAyNHB4OwogIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKfQoKLmNhcmQ6aG92ZXIgewogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpOwp9CgpAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfQogIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkpTT04gRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5KU09OIGNvbmZpZ3VyYXRpb24gd2l0aCBwcm9wZXIgZm9ybWF0dGluZy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0ianNvbiI+CnsKICAibmFtZSI6ICJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLAogICJ2ZXJzaW9uIjogIjEuMTAuNyIsCiAgImRlc2NyaXB0aW9uIjogIkEgY29tcHJlaGVuc2l2ZSBjYXRhbG9nIG9mIHdlYiBjb21wb25lbnRzIiwKICAibWFpbiI6ICJkaXN0X3RzX3dlYi9pbmRleC5qcyIsCiAgInR5cGUiOiAibW9kdWxlIiwKICAic2NyaXB0cyI6IHsKICAgICJidWlsZCI6ICJ0c2J1aWxkIHRzZm9sZGVycyAtLWFsbG93aW1wbGljaXRhbnkgJiYgdHNidW5kbGUgZWxlbWVudCAtLXByb2R1Y3Rpb24iLAogICAgIndhdGNoIjogInRzd2F0Y2ggZWxlbWVudCIsCiAgICAidGVzdCI6ICJ0c3Rlc3QgdGVzdC8gLS13ZWIgLS12ZXJib3NlIgogIH0sCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiOiAiXjIuMC40NSIsCiAgICAiaGlnaGxpZ2h0LmpzIjogIl4xMS45LjAiCiAgfQp9CiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgdGx0LEtRLFNlcyxhbHQ9ZygoKT0+e3J5YSgpO3BlKCk7RXIoKTtodCgpO28zKCk7a3QoKTtmcigpO091KCk7bXIoKTt0bHQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEtRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxTZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWRhdGF2aWV3LWNvZGVib3giKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0RhdGF2aWV3Q29kZWJveCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx0bHQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9nTGFuZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4icHJvZ0xhbmciaW4gdiwiaGFzIiksZ2V0Omkodj0+di5wcm9nTGFuZywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnByb2dMYW5nPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx0bHQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2RlVG9EaXNwbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjb2RlVG9EaXNwbGF5ImluIHYsImhhcyIpLGdldDppKHY9PnYuY29kZVRvRGlzcGxheSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmNvZGVUb0Rpc3BsYXk9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLHRsdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWl5YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyIsIldvcmtzcGFjZSJdOyNlPUtRKHRoaXMsbywidHlwZXNjcmlwdCIpO2dldCBwcm9nTGFuZygpe3JldHVybiB0aGlzLiNlfXNldCBwcm9nTGFuZyhiKXt0aGlzLiNlPWJ9I3Q9KEtRKHRoaXMsbCksS1EodGhpcyxkLCIiKSk7Z2V0IGNvZGVUb0Rpc3BsYXkoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29kZVRvRGlzcGxheShiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGEuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgZGVlcy10aWxlIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgfQoKICAgICAgICAuYXBwYmFyIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciAuZmlsZU5hbWUgewogICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmJvdHRvbUJhciB7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlc0xhYmVsIHsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmxhbmd1YWdlTGFiZWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5obGpzLWtleXdvcmQgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5jb2RlZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IGF1dG87CiAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICB9CgogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAwcHggMHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB9CgogICAgICAgIC5saW5lQ291bnRlcjpsYXN0LWNoaWxkIHsKICAgICAgICAgIG9wYWNpdHk6IDUwJTsKICAgICAgICB9CgogICAgICAgIHByZSB7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDI0cHg7CiAgICAgICAgfQoKICAgICAgICBjb2RlIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICB9CgogICAgICAgIGNvZGUsCiAgICAgICAgY29kZSAqLAogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgICBmb250LXdlaWdodDogMjAwOwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7Qmd9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtc3RyaW5nIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM4YjVjZjYiLCIjYTc4YmZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtZnVuY3Rpb24gewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXBhcmFtcyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwODkxYjIiLCIjMDZiNmQ0Iil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtY29tbWVudCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtbnVtYmVyIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1saXRlcmFsIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1hdHRyIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy12YXJpYWJsZSB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRlZXMtdGlsZQogICAgICAgIEBjb250ZXh0bWVudT0iJHtiPT57JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYixbe25hbWU6IkFib3V0IixpY29uTmFtZToiY2lyY2xlSW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9XSl9fSIKICAgICAgPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGVOYW1lIj5pbmRleC50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGVncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmVOdW1iZXJzIj4KICAgICAgICAgICAgJHsoKCk9PntsZXQgYj0wO3JldHVybiB0aGlzLmNvZGVUb0Rpc3BsYXkuc3BsaXQoYApgKS5tYXAodj0+KGIrKyx3YDxkaXYgY2xhc3M9ImxpbmVDb3VudGVyIj4ke2J9PC9kaXY+YCkpfSkoKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHByZT48Y29kZT48L2NvZGU+PC9wcmU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VzTGFiZWwiPlNwYWNlczogMjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2VMYWJlbCI+JHt0aGlzLnByb2dMYW5nfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Y29kZVRvRGlzcGxheVN0b3JlPShLUSh0aGlzLHUpLCIiKTtoaWdobGlnaHRKcz1udWxsO2FzeW5jIHVwZGF0ZWQoYil7c3VwZXIudXBkYXRlZChiKSxjb25zb2xlLmxvZygiaGlnaGxpZ2h0aW5nIG5vdyIpLGNvbnNvbGUubG9nKHRoaXMuY2hpbGROb2Rlcyk7bGV0IHY9W107dGhpcy5jaGlsZE5vZGVzLmZvckVhY2goZj0+e2Yubm9kZU5hbWU9PT0iI3RleHQiJiZ2LnB1c2goZil9KSx0aGlzLmNvZGVUb0Rpc3BsYXkmJnRoaXMuY29kZVRvRGlzcGxheSE9PXRoaXMuY29kZVRvRGlzcGxheVN0b3JlJiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9bmQubm9ybWFsaXplKHRoaXMuY29kZVRvRGlzcGxheSkudHJpbVN0YXJ0KCkpLHZbMF0mJnZbMF0ud2hvbGVUZXh0JiYhdGhpcy5jb2RlVG9EaXNwbGF5JiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9bmQubm9ybWFsaXplKHZbMF0ud2hvbGVUZXh0KS50cmltU3RhcnQoKSx0aGlzLmNvZGVUb0Rpc3BsYXk9dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUpLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5oaWdobGlnaHRKc3x8KHRoaXMuaGlnaGxpZ2h0SnM9YXdhaXQgYW8uZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKSk7bGV0IHg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImNvZGUiKSxtPXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KHRoaXMuY29kZVRvRGlzcGxheVN0b3JlLHtsYW5ndWFnZTp0aGlzLnByb2dMYW5nLGlnbm9yZUlsbGVnYWxzOiEwfSk7eC5pbm5lckhUTUw9bS52YWx1ZX1zdGF0aWN7S1EoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIG95YT1nKCgpPT57YWx0KCl9KTt2YXIgbnlhLGx5YT1nKCgpPT57cGUoKTtTbigpO255YT1pKCgpPT53YCA8c3R5bGU+CiAgICAuZGVtbyB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjVmNWY1IiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwYWRkaW5nOiA0MHB4OwogICAgfQogICAgCiAgICAuZGVtby1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICAgIAogICAgLmRlbW8tdGl0bGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICB9CiAgICAKICAgIC5kZW1vLW5vdGUgewogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8iPgogICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgUmlnaHQtY2xpY2sgb24gYW55IGRldGFpbCByb3cgdG8gY29weSB0aGUgdmFsdWUsIGtleSwgb3Iga2V5OnZhbHVlIGNvbWJpbmF0aW9uCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmljZSBIZWFsdGggU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIxIixuYW1lOiJBUEkgR2F0ZXdheSBTZXJ2aWNlIixsYXN0VXBkYXRlZDpEYXRlLm5vdygpLGNvbWJpbmVkU3RhdHVzOiJvayIsY29tYmluZWRTdGF0dXNUZXh0OiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsZGV0YWlsczpbe25hbWU6IlJlc3BvbnNlIFRpbWUiLHZhbHVlOiI0NW1zIChhdmcpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbm9ybWFsIHJhbmdlIn0se25hbWU6IlVwdGltZSIsdmFsdWU6Ijk5Ljk5JSAoMzAgZGF5cykiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IkV4Y2VsbGVudCB1cHRpbWUifSx7bmFtZToiQWN0aXZlIENvbm5lY3Rpb25zIix2YWx1ZToiMSwyMzQgLyAxMCwwMDAiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBsb2FkIn0se25hbWU6IlNTTCBDZXJ0aWZpY2F0ZSIsdmFsdWU6IlZhbGlkIHVudGlsIDIwMjQtMTItMzEiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IkNlcnRpZmljYXRlIHZhbGlkIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkRhdGFiYXNlIENsdXN0ZXIgU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIyIixuYW1lOiJQb3N0Z3JlU1FMIENsdXN0ZXIiLGxhc3RVcGRhdGVkOkRhdGUubm93KCktMzZlNSxjb21iaW5lZFN0YXR1czoicGFydGx5X29rIixjb21iaW5lZFN0YXR1c1RleHQ6Ik1pbm9yIGlzc3VlcyBkZXRlY3RlZCIsZGV0YWlsczpbe25hbWU6IlByaW1hcnkgTm9kZSIsdmFsdWU6ImRiLXByaW1hcnktMDEgKGhlYWx0aHkpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJPcGVyYXRpbmcgbm9ybWFsbHkifSx7bmFtZToiUmVwbGljYSBMYWciLHZhbHVlOiIyLjUgc2Vjb25kcyIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IlNsaWdodGx5IGVsZXZhdGVkIn0se25hbWU6IkRpc2sgVXNhZ2UiLHZhbHVlOiI3OCUgKDMxMkdCIC8gNDAwR0IpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQXBwcm9hY2hpbmcgdGhyZXNob2xkIn0se25hbWU6IkNvbm5lY3Rpb24gUG9vbCIsdmFsdWU6Ijg5IC8gMTAwIGNvbm5lY3Rpb25zIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbGltaXRzIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkJ1aWxkIFBpcGVsaW5lIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMyIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLGxhc3RVcGRhdGVkOkRhdGUubm93KCktODY0ZTUsY29tYmluZWRTdGF0dXM6Im5vdF9vayIsY29tYmluZWRTdGF0dXNUZXh0OiJCdWlsZCBmYWlsdXJlIixkZXRhaWxzOlt7bmFtZToiTGFzdCBCdWlsZCIsdmFsdWU6IkJ1aWxkICMxMjM0IC0gRmFpbGVkIixzdGF0dXM6Im5vdF9vayIsc3RhdHVzVGV4dDoiVGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJGYWlsZWQgVGVzdHMiLHZhbHVlOiIzIHRlc3RzIGZhaWxlZDogYXV0aC5zcGVjLnRzLCB1c2VyLnNwZWMudHMsIGFwaS5zcGVjLnRzIixzdGF0dXM6Im5vdF9vayIsc3RhdHVzVGV4dDoiVW5pdCB0ZXN0IGZhaWx1cmVzIn0se25hbWU6IkNvZGUgQ292ZXJhZ2UiLHZhbHVlOiI4Mi41JSAodGFyZ2V0OiA4NSUpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQmVsb3cgdGFyZ2V0In0se25hbWU6IkJ1aWxkIER1cmF0aW9uIix2YWx1ZToiMTJtIDM0cyIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiTm9ybWFsIGR1cmF0aW9uIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj5gLCJkZW1vRnVuYyIpfSk7dmFyIGN5YSxzbHQsX2VzLGR5YT1nKCgpPT57dzIoKTt2bygpO2x5YSgpO3BlKCk7U24oKTtmcigpO2h0KCk7bXIoKTtjeWE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHNsdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sX2VzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0RhdGF2aWV3U3RhdHVzb2JqZWN0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0sY3lhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzT2JqZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJzdGF0dXNPYmplY3QiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5zdGF0dXNPYmplY3QsImdldCIpLHNldDppKCh1LGMpPT57dS5zdGF0dXNPYmplY3Q9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLGN5YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPW55YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPXNsdCh0aGlzLG8sdm9pZCAwKTtnZXQgc3RhdHVzT2JqZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0YXR1c09iamVjdChkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3QgewogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSAvIDAuMikiLCJoc2woMCAwJSA0NS4xJSAvIDAuMikiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLmNvcHlNYWluIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuY29weU1haW46YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm9rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjIpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5ub3Rfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMikiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3QucGFydGx5X29rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjIpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogY29udGV4dC1tZW51OwogICAgICB9CgogICAgICAuZGV0YWlsOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA0KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDYpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsIC5zdGF0dXNkb3QgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCAubGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC52YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmJvdHRvbUJhciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJhciAuc3RhdHVzTGFiZWwgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNkb3QgJHt0aGlzLnN0YXR1c09iamVjdD8uY29tYmluZWRTdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgIDxoMT4ke3RoaXMuc3RhdHVzT2JqZWN0Py5uYW1lfHwiTm8gc3RhdHVzIG9iamVjdCBhc3NpZ25lZCJ9PC9oMT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvcHlNYWluIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNvcHlBc0pzb259PkNvcHkgSlNPTjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5zdGF0dXNPYmplY3Q/LmRldGFpbHM/Lm1hcChkPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9ImRldGFpbCIKICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHt1PT57dS5wcmV2ZW50RGVmYXVsdCgpLCRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHUsW3tuYW1lOiJDb3B5IFZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChkLnZhbHVlLCJWYWx1ZSIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IEtleSIsaWNvbk5hbWU6Imx1Y2lkZTprZXkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChkLm5hbWUsIktleSIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IEtleTpWYWx1ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5LXBsdXMiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChgJHtkLm5hbWV9OiAke2QudmFsdWV9YCwiS2V5OlZhbHVlIil9LCJhY3Rpb24iKX1dKX19CiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNkb3QgJHtkLnN0YXR1c30iPjwvZGl2PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWxzVGV4dCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFiZWwiPiR7ZC5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2YWx1ZSI+JHtkLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzTGFiZWwiPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lmxhc3RVcGRhdGVkP2BMYXN0IHVwZGF0ZWQ6ICR7bmV3IERhdGUodGhpcy5zdGF0dXNPYmplY3QubGFzdFVwZGF0ZWQpLnRvTG9jYWxlU3RyaW5nKCl9YDoiIn08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31hc3luYyBjb3B5VG9DbGlwYm9hcmQoZCx1PSJUZXh0Iil7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGQpLGNvbnNvbGUubG9nKGAke3V9IGNvcGllZCB0byBjbGlwYm9hcmRgKX1jYXRjaChjKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY29weSAke3V9OmAsYyl9fWFzeW5jIGhhbmRsZUNvcHlBc0pzb24oKXtpZih0aGlzLnN0YXR1c09iamVjdCl0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0dXNPYmplY3QsbnVsbCwyKSk7bGV0IGQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5TWFpbiIpLHU9ZC50ZXh0Q29udGVudDtkLnRleHRDb250ZW50PSJDb3BpZWQhIjtsZXQgYz0hdGhpcy5nb0JyaWdodDtkLnN0eWxlLmJhY2tncm91bmQ9Yz8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLGQuc3R5bGUuYm9yZGVyQ29sb3I9Yz8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGQuc3R5bGUuY29sb3I9Yz8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLHNldFRpbWVvdXQoKCk9PntkLnRleHRDb250ZW50PXUsZC5zdHlsZS5iYWNrZ3JvdW5kPSIiLGQuc3R5bGUuYm9yZGVyQ29sb3I9IiIsZC5zdHlsZS5jb2xvcj0iIn0sMTUwMCl9Y2F0Y2goZCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6IixkKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHNsdCh0aGlzLGwpfXN0YXRpY3tzbHQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIHV5YT1nKCgpPT57ZHlhKCl9KTt2YXIgcHlhPWcoKCk9PntKMWUoKX0pO3ZhciBpbHQsaHlhLGZ5YT1nKCgpPT57cGUoKTtybHQoKTtpbHQ9Y2xhc3N7c3RhdGlje2kodGhpcywiTW9ja1N0b3JhZ2VEYXRhUHJvdmlkZXIiKX1vYmplY3RzPW5ldyBNYXA7Y29uc3RydWN0b3IoKXtsZXQgZT1uZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7dGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL3JlYWRtZS5tZCIse2NvbnRlbnQ6YnRvYShgIyBXZWxjb21lCgpUaGlzIGlzIGEgZGVtbyBTdG9yYWdlIGJyb3dzZXIuCmApLGNvbnRlbnRUeXBlOiJ0ZXh0L21hcmtkb3duIixzaXplOjQyLGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL2NvbmZpZy5qc29uIix7Y29udGVudDpidG9hKGB7CiAgIm5hbWUiOiAiZGVtbyIsCiAgInZlcnNpb24iOiAiMS4wLjAiCn1gKSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsc2l6ZTo0OCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImRvY3VtZW50cy9ub3Rlcy90b2RvLnR4dCIse2NvbnRlbnQ6YnRvYShgQnV5IG1pbGsKRml4IGJ1ZyAjNDIKRGVwbG95IHRvIHByb2R1Y3Rpb25gKSxjb250ZW50VHlwZToidGV4dC9wbGFpbiIsc2l6ZTo0NSxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImltYWdlcy9sb2dvLnBuZyIse2NvbnRlbnQ6YnRvYSgiZmFrZS1wbmctZGF0YSIpLGNvbnRlbnRUeXBlOiJpbWFnZS9wbmciLHNpemU6MjQ1MDAsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJpbWFnZXMvYmFubmVyLmpwZyIse2NvbnRlbnQ6YnRvYSgiZmFrZS1qcGctZGF0YSIpLGNvbnRlbnRUeXBlOiJpbWFnZS9qcGVnIixzaXplOjE1NmUzLGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgic2NyaXB0cy9kZXBsb3kuc2giLHtjb250ZW50OmJ0b2EoYCMhL2Jpbi9iYXNoCmVjaG8gIkRlcGxveWluZy4uLiIKYCksY29udGVudFR5cGU6InRleHQvcGxhaW4iLHNpemU6MzQsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJpbmRleC5odG1sIix7Y29udGVudDpidG9hKGA8IURPQ1RZUEUgaHRtbD4KPGh0bWw+Cjxib2R5PgogIDxoMT5IZWxsbyBXb3JsZDwvaDE+CjwvYm9keT4KPC9odG1sPmApLGNvbnRlbnRUeXBlOiJ0ZXh0L2h0bWwiLHNpemU6NzIsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJzdHlsZXMuY3NzIix7Y29udGVudDpidG9hKCJib2R5IHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgfSIpLGNvbnRlbnRUeXBlOiJ0ZXh0L2NzcyIsc2l6ZTo0NCxsYXN0TW9kaWZpZWQ6ZX0pfWFzeW5jIGxpc3RPYmplY3RzKGUsdCxhKXtsZXQgcj10fHwiIixuPVtdLG89bmV3IFNldDtmb3IobGV0W2wscF1vZiB0aGlzLm9iamVjdHMpe2lmKCFsLnN0YXJ0c1dpdGgocikpY29udGludWU7bGV0IGQ9bC5zbGljZShyLmxlbmd0aCk7aWYoYSl7bGV0IHU9ZC5pbmRleE9mKGEpO3U+PTA/by5hZGQocitkLnNsaWNlKDAsdSsxKSk6bi5wdXNoKHtrZXk6bCxzaXplOnAuc2l6ZSxsYXN0TW9kaWZpZWQ6cC5sYXN0TW9kaWZpZWR9KX1lbHNlIG4ucHVzaCh7a2V5Omwsc2l6ZTpwLnNpemUsbGFzdE1vZGlmaWVkOnAubGFzdE1vZGlmaWVkfSl9cmV0dXJue29iamVjdHM6bixwcmVmaXhlczpBcnJheS5mcm9tKG8pLnNvcnQoKX19YXN5bmMgZ2V0T2JqZWN0KGUsdCl7bGV0IGE9dGhpcy5vYmplY3RzLmdldCh0KTtpZighYSl0aHJvdyBuZXcgRXJyb3IoIk5vdCBmb3VuZCIpO3JldHVybnsuLi5hfX1hc3luYyBwdXRPYmplY3QoZSx0LGEscil7cmV0dXJuIHRoaXMub2JqZWN0cy5zZXQodCx7Y29udGVudDphLGNvbnRlbnRUeXBlOnIsc2l6ZTphdG9iKGEpLmxlbmd0aCxsYXN0TW9kaWZpZWQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSksITB9YXN5bmMgZGVsZXRlT2JqZWN0KGUsdCl7cmV0dXJuIHRoaXMub2JqZWN0cy5kZWxldGUodCl9YXN5bmMgZGVsZXRlUHJlZml4KGUsdCl7Zm9yKGxldCBhIG9mIHRoaXMub2JqZWN0cy5rZXlzKCkpYS5zdGFydHNXaXRoKHQpJiZ0aGlzLm9iamVjdHMuZGVsZXRlKGEpO3JldHVybiEwfWFzeW5jIGdldE9iamVjdFVybChlLHQpe2xldCBhPXRoaXMub2JqZWN0cy5nZXQodCk7aWYoIWEpcmV0dXJuIiI7bGV0IHI9bmV3IEJsb2IoW1VpbnQ4QXJyYXkuZnJvbShhdG9iKGEuY29udGVudCksbj0+bi5jaGFyQ29kZUF0KDApKV0se3R5cGU6YS5jb250ZW50VHlwZX0pO3JldHVybiBVUkwuY3JlYXRlT2JqZWN0VVJMKHIpfWFzeW5jIG1vdmVPYmplY3QoZSx0LGEpe2xldCByPXRoaXMub2JqZWN0cy5nZXQodCk7cmV0dXJuIHI/KHRoaXMub2JqZWN0cy5zZXQoYSx7Li4ucixsYXN0TW9kaWZpZWQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSksdGhpcy5vYmplY3RzLmRlbGV0ZSh0KSx7c3VjY2VzczohMH0pOntzdWNjZXNzOiExLGVycm9yOiJTb3VyY2Ugbm90IGZvdW5kIn19YXN5bmMgbW92ZVByZWZpeChlLHQsYSl7bGV0IHI9MCxuPUFycmF5LmZyb20odGhpcy5vYmplY3RzLmVudHJpZXMoKSkuZmlsdGVyKChbb10pPT5vLnN0YXJ0c1dpdGgodCkpO2ZvcihsZXRbbyxsXW9mIG4pe2xldCBwPWErby5zbGljZSh0Lmxlbmd0aCk7dGhpcy5vYmplY3RzLnNldChwLHsuLi5sLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSx0aGlzLm9iamVjdHMuZGVsZXRlKG8pLHIrK31yZXR1cm57c3VjY2VzczohMCxtb3ZlZENvdW50OnJ9fX0saHlhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXN0b3JhZ2UtYnJvd3NlcgogICAgICAuZGF0YVByb3ZpZGVyPSR7bmV3IGlsdH0KICAgICAgLmJ1Y2tldE5hbWU9JHsiZGVtby1idWNrZXQifQogICAgPjwvZGVlcy1zdG9yYWdlLWJyb3dzZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTtmdW5jdGlvbiBZUShzKXtpZihzPT1udWxsKXJldHVybiItIjtpZihzPT09MClyZXR1cm4iMCBCIjtsZXQgZT1bIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiJdLHQ9cyxhPTA7Zm9yKDt0Pj0xMDI0JiZhPGUubGVuZ3RoLTE7KXQvPTEwMjQsYSsrO3JldHVybmAke3QudG9GaXhlZChhPjA/MTowKX0gJHtlW2FdfWB9ZnVuY3Rpb24gTWVzKHMpe3JldHVybiBzPT1udWxsPyIiOnM+PTFlNj9gJHsocy8xZTYpLnRvRml4ZWQoMSl9TWA6cz49MWUzP2AkeyhzLzFlMykudG9GaXhlZCgxKX1LYDpzLnRvU3RyaW5nKCl9ZnVuY3Rpb24gWWEocyl7bGV0IGU9cy5yZXBsYWNlKC9cLyQvLCIiKS5zcGxpdCgiLyIpO3JldHVybiBlW2UubGVuZ3RoLTFdfHxzfWZ1bmN0aW9uIFpRKHMsZSl7cmV0dXJuIHMuZW5kc1dpdGgoIi8iKSYmZS5zdGFydHNXaXRoKHMpP3t2YWxpZDohMSxlcnJvcjoiQ2Fubm90IG1vdmUgYSBmb2xkZXIgaW50byBpdHNlbGYifTpKZChzKT09PWU/e3ZhbGlkOiExLGVycm9yOiJJdGVtIGlzIGFscmVhZHkgaW4gdGhpcyBsb2NhdGlvbiJ9Ont2YWxpZDohMH19ZnVuY3Rpb24gSmQocyl7bGV0IGU9cy5lbmRzV2l0aCgiLyIpP3Muc2xpY2UoMCwtMSk6cyx0PWUubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gdD49MD9lLnN1YnN0cmluZygwLHQrMSk6IiJ9ZnVuY3Rpb24gcjcocyl7cmV0dXJue2pzb246ImFwcGxpY2F0aW9uL2pzb24iLHR4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIixjc3M6InRleHQvY3NzIixqczoiYXBwbGljYXRpb24vamF2YXNjcmlwdCIsdHM6InRleHQvdHlwZXNjcmlwdCIsbWQ6InRleHQvbWFya2Rvd24iLHhtbDoiYXBwbGljYXRpb24veG1sIix5YW1sOiJ0ZXh0L3lhbWwiLHltbDoidGV4dC95YW1sIixjc3Y6InRleHQvY3N2In1bc118fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0ifWZ1bmN0aW9uIFhRKHMpe3JldHVybntqc29uOmB7CiAgCn1gLGh0bWw6YDwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPGhlYWQ+CiAgPHRpdGxlPjwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+CiAgCjwvYm9keT4KPC9odG1sPmAsbWQ6YCMgVGl0bGUKCmAsdHh0OiIifVtzXXx8IiJ9ZnVuY3Rpb24gengocyl7aWYoIXMpcmV0dXJuW107bGV0IGU9cy5zcGxpdCgiLyIpLmZpbHRlcihyPT5yKSx0PVtdLGE9IiI7Zm9yKGxldCByIG9mIGUpYSs9cisiLyIsdC5wdXNoKGEpO3JldHVybiB0fXZhciBRUT1nKCgpPT57aShZUSwiZm9ybWF0U2l6ZSIpO2koTWVzLCJmb3JtYXRDb3VudCIpO2koWWEsImdldEZpbGVOYW1lIik7aShaUSwidmFsaWRhdGVNb3ZlIik7aShKZCwiZ2V0UGFyZW50UHJlZml4Iik7aShyNywiZ2V0Q29udGVudFR5cGUiKTtpKFhRLCJnZXREZWZhdWx0Q29udGVudCIpO2koengsImdldFBhdGhTZWdtZW50cyIpfSk7dmFyIFRzLE50LHplcyxvbHQ9ZygoKT0+e3BlKCk7ZnIoKTtodCgpO1FRKCk7VHM9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE50PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx6ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0b3JhZ2UtY29sdW1ucyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdLEllLGNlPVtdLGRlPVtdLExlLEtlPVtdLFllPVtdLG90LFV0PVtdLFp0PVtdLGphLGV0PVtdLGJ0PVtdLHlhLGVzPVtdLHJzPVtdLHBzLG5zPVtdLHRpPVtdLGFpLHplPVtdLHhlPVtdLE5lLHh0PVtdLE1hPVtdO3ZhciBOcj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VDb2x1bW5zIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGZlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLENlPVtZKCldLEVlPVtZKCldLHN0PVtZKCldLEllPVtZKCldLExlPVtZKCldLG90PVtZKCldLGphPVtZKCldLHlhPVtZKCldLHBzPVtZKCldLGFpPVtZKCldLE5lPVtZKCldLFRzKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iZGF0YVByb3ZpZGVyImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuZGF0YVByb3ZpZGVyLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuZGF0YVByb3ZpZGVyPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxvLGwpLFRzKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnVja2V0TmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImJ1Y2tldE5hbWUiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5idWNrZXROYW1lLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuYnVja2V0TmFtZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sZCx1KSxUcyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJjdXJyZW50UHJlZml4ImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuY3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmN1cnJlbnRQcmVmaXg9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGIsdiksVHModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZyZXNoS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4icmVmcmVzaEtleSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnJlZnJlc2hLZXksImdldCIpLHNldDppKChyZSxTZSk9PntyZS5yZWZyZXNoS2V5PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxtLGYpLFRzKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImNvbHVtbnMiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY29sdW1ucz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sTSx6KSxUcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJsb2FkaW5nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubG9hZGluZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmxvYWRpbmc9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LEMsXyksVHModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q3JlYXRlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ic2hvd0NyZWF0ZURpYWxvZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnNob3dDcmVhdGVEaWFsb2csImdldCIpLHNldDppKChyZSxTZSk9PntyZS5zaG93Q3JlYXRlRGlhbG9nPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSwkLEUpLFRzKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImNyZWF0ZURpYWxvZ1R5cGUiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5jcmVhdGVEaWFsb2dUeXBlLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY3JlYXRlRGlhbG9nVHlwZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sayxTKSxUcyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ1ByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImNyZWF0ZURpYWxvZ1ByZWZpeCJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmNyZWF0ZURpYWxvZ1ByZWZpeCwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmNyZWF0ZURpYWxvZ1ByZWZpeD1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sUCxSKSxUcyh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ05hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJjcmVhdGVEaWFsb2dOYW1lImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuY3JlYXRlRGlhbG9nTmFtZSwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmNyZWF0ZURpYWxvZ05hbWU9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LFYsVyksVHModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJDb2x1bW5JbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImRyYWdPdmVyQ29sdW1uSW5kZXgiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5kcmFnT3ZlckNvbHVtbkluZGV4LCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuZHJhZ092ZXJDb2x1bW5JbmRleD1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sQixVKSxUcyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckZvbGRlclByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImRyYWdPdmVyRm9sZGVyUHJlZml4ImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuZHJhZ092ZXJGb2xkZXJQcmVmaXgsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5kcmFnT3ZlckZvbGRlclByZWZpeD1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sRixqKSxUcyh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cGxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJ1cGxvYWRpbmciaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS51cGxvYWRpbmcsImdldCIpLHNldDppKChyZSxTZSk9PntyZS51cGxvYWRpbmc9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGxlLFEpLFRzKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwbG9hZFByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4idXBsb2FkUHJvZ3Jlc3MiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS51cGxvYWRQcm9ncmVzcywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnVwbG9hZFByb2dyZXNzPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx0ZSxlZSksVHModGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJzaG93TW92ZURpYWxvZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnNob3dNb3ZlRGlhbG9nLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuc2hvd01vdmVEaWFsb2c9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LFgsWiksVHModGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVTb3VyY2UiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlU291cmNlLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVNvdXJjZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0scSxBKSxUcyh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlRGVzdGluYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJtb3ZlRGVzdGluYXRpb24iaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlRGVzdGluYXRpb24sImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlRGVzdGluYXRpb249U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG9lLGFlKSxUcyh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVJblByb2dyZXNzImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubW92ZUluUHJvZ3Jlc3MsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlSW5Qcm9ncmVzcz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sUmUsQmUpLFRzKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVFcnJvciJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVFcnJvciwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLm1vdmVFcnJvcj1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sRGUsX2UpLFRzKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlUGlja2VyRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ic2hvd01vdmVQaWNrZXJEaWFsb2ciaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5zaG93TW92ZVBpY2tlckRpYWxvZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnNob3dNb3ZlUGlja2VyRGlhbG9nPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx2ZSxiZSksVHModGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVQaWNrZXJTb3VyY2UiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlUGlja2VyU291cmNlLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVBpY2tlclNvdXJjZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0samUsV2UpLFRzKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJDdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxNZSxnZSksVHModGhpcyxudWxsLEllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclByZWZpeGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZVBpY2tlclByZWZpeGVzImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubW92ZVBpY2tlclByZWZpeGVzLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVBpY2tlclByZWZpeGVzPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxjZSxkZSksVHModGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJtb3ZlUGlja2VyTG9hZGluZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVQaWNrZXJMb2FkaW5nLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVBpY2tlckxvYWRpbmc9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LEtlLFllKSxUcyh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UmVuYW1lRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ic2hvd1JlbmFtZURpYWxvZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnNob3dSZW5hbWVEaWFsb2csImdldCIpLHNldDppKChyZSxTZSk9PntyZS5zaG93UmVuYW1lRGlhbG9nPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxVdCxadCksVHModGhpcyxudWxsLGphLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4icmVuYW1lU291cmNlImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUucmVuYW1lU291cmNlLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUucmVuYW1lU291cmNlPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxldCxidCksVHModGhpcyxudWxsLHlhLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InJlbmFtZU5hbWUiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5yZW5hbWVOYW1lLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUucmVuYW1lTmFtZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sZXMscnMpLFRzKHRoaXMsbnVsbCxwcyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUluUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJyZW5hbWVJblByb2dyZXNzImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUucmVuYW1lSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnJlbmFtZUluUHJvZ3Jlc3M9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG5zLHRpKSxUcyh0aGlzLG51bGwsYWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InJlbmFtZUVycm9yImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUucmVuYW1lRXJyb3IsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5yZW5hbWVFcnJvcj1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0semUseGUpLFRzKHRoaXMsbnVsbCxOZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdnZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iZHJhZ2dlZEl0ZW0iaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5kcmFnZ2VkSXRlbSwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmRyYWdnZWRJdGVtPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx4dCxNYSksVHMobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZmV9LG51bGwsdCksTnI9YT1lLnZhbHVlLGZlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZlfSl9I2U9TnQodGhpcyxvLG51bGwpO2dldCBkYXRhUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YVByb3ZpZGVyKGZlKXt0aGlzLiNlPWZlfSN0PShOdCh0aGlzLGwpLE50KHRoaXMsZCwiIikpO2dldCBidWNrZXROYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJ1Y2tldE5hbWUoZmUpe3RoaXMuI3Q9ZmV9I2E9KE50KHRoaXMsdSksTnQodGhpcyxiLCIiKSk7Z2V0IGN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY3VycmVudFByZWZpeChmZSl7dGhpcy4jYT1mZX0jcz0oTnQodGhpcyx2KSxOdCh0aGlzLG0sMCkpO2dldCByZWZyZXNoS2V5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHJlZnJlc2hLZXkoZmUpe3RoaXMuI3M9ZmV9I2k9KE50KHRoaXMsZiksTnQodGhpcyxNLFtdKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29sdW1ucyhmZSl7dGhpcy4jaT1mZX0jcj0oTnQodGhpcyx6KSxOdCh0aGlzLEMsITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNyfXNldCBsb2FkaW5nKGZlKXt0aGlzLiNyPWZlfSNvPShOdCh0aGlzLF8pLE50KHRoaXMsJCwhMSkpO2dldCBzaG93Q3JlYXRlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dDcmVhdGVEaWFsb2coZmUpe3RoaXMuI289ZmV9I249KE50KHRoaXMsRSksTnQodGhpcyxrLCJmb2xkZXIiKSk7Z2V0IGNyZWF0ZURpYWxvZ1R5cGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3JlYXRlRGlhbG9nVHlwZShmZSl7dGhpcy4jbj1mZX0jbD0oTnQodGhpcyxTKSxOdCh0aGlzLFAsIiIpKTtnZXQgY3JlYXRlRGlhbG9nUHJlZml4KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGNyZWF0ZURpYWxvZ1ByZWZpeChmZSl7dGhpcy4jbD1mZX0jYz0oTnQodGhpcyxSKSxOdCh0aGlzLFYsIiIpKTtnZXQgY3JlYXRlRGlhbG9nTmFtZSgpe3JldHVybiB0aGlzLiNjfXNldCBjcmVhdGVEaWFsb2dOYW1lKGZlKXt0aGlzLiNjPWZlfSNkPShOdCh0aGlzLFcpLE50KHRoaXMsQiwtMSkpO2dldCBkcmFnT3ZlckNvbHVtbkluZGV4KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGRyYWdPdmVyQ29sdW1uSW5kZXgoZmUpe3RoaXMuI2Q9ZmV9I3U9KE50KHRoaXMsVSksTnQodGhpcyxGLG51bGwpKTtnZXQgZHJhZ092ZXJGb2xkZXJQcmVmaXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZHJhZ092ZXJGb2xkZXJQcmVmaXgoZmUpe3RoaXMuI3U9ZmV9I3A9KE50KHRoaXMsaiksTnQodGhpcyxsZSwhMSkpO2dldCB1cGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcH1zZXQgdXBsb2FkaW5nKGZlKXt0aGlzLiNwPWZlfSNoPShOdCh0aGlzLFEpLE50KHRoaXMsdGUsbnVsbCkpO2dldCB1cGxvYWRQcm9ncmVzcygpe3JldHVybiB0aGlzLiNofXNldCB1cGxvYWRQcm9ncmVzcyhmZSl7dGhpcy4jaD1mZX0jZj0oTnQodGhpcyxlZSksTnQodGhpcyxYLCExKSk7Z2V0IHNob3dNb3ZlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNob3dNb3ZlRGlhbG9nKGZlKXt0aGlzLiNmPWZlfSNtPShOdCh0aGlzLFopLE50KHRoaXMscSxudWxsKSk7Z2V0IG1vdmVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jbX1zZXQgbW92ZVNvdXJjZShmZSl7dGhpcy4jbT1mZX0jZz0oTnQodGhpcyxBKSxOdCh0aGlzLG9lLCIiKSk7Z2V0IG1vdmVEZXN0aW5hdGlvbigpe3JldHVybiB0aGlzLiNnfXNldCBtb3ZlRGVzdGluYXRpb24oZmUpe3RoaXMuI2c9ZmV9I2I9KE50KHRoaXMsYWUpLE50KHRoaXMsUmUsITEpKTtnZXQgbW92ZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jYn1zZXQgbW92ZUluUHJvZ3Jlc3MoZmUpe3RoaXMuI2I9ZmV9I3Y9KE50KHRoaXMsQmUpLE50KHRoaXMsRGUsbnVsbCkpO2dldCBtb3ZlRXJyb3IoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbW92ZUVycm9yKGZlKXt0aGlzLiN2PWZlfSN4PShOdCh0aGlzLF9lKSxOdCh0aGlzLHZlLCExKSk7Z2V0IHNob3dNb3ZlUGlja2VyRGlhbG9nKCl7cmV0dXJuIHRoaXMuI3h9c2V0IHNob3dNb3ZlUGlja2VyRGlhbG9nKGZlKXt0aGlzLiN4PWZlfSN5PShOdCh0aGlzLGJlKSxOdCh0aGlzLGplLG51bGwpKTtnZXQgbW92ZVBpY2tlclNvdXJjZSgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyU291cmNlKGZlKXt0aGlzLiN5PWZlfSN3PShOdCh0aGlzLFdlKSxOdCh0aGlzLE1lLCIiKSk7Z2V0IG1vdmVQaWNrZXJDdXJyZW50UHJlZml4KCl7cmV0dXJuIHRoaXMuI3d9c2V0IG1vdmVQaWNrZXJDdXJyZW50UHJlZml4KGZlKXt0aGlzLiN3PWZlfSNrPShOdCh0aGlzLGdlKSxOdCh0aGlzLGNlLFtdKSk7Z2V0IG1vdmVQaWNrZXJQcmVmaXhlcygpe3JldHVybiB0aGlzLiNrfXNldCBtb3ZlUGlja2VyUHJlZml4ZXMoZmUpe3RoaXMuI2s9ZmV9I1M9KE50KHRoaXMsZGUpLE50KHRoaXMsS2UsITEpKTtnZXQgbW92ZVBpY2tlckxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jU31zZXQgbW92ZVBpY2tlckxvYWRpbmcoZmUpe3RoaXMuI1M9ZmV9I189KE50KHRoaXMsWWUpLE50KHRoaXMsVXQsITEpKTtnZXQgc2hvd1JlbmFtZURpYWxvZygpe3JldHVybiB0aGlzLiNffXNldCBzaG93UmVuYW1lRGlhbG9nKGZlKXt0aGlzLiNfPWZlfSNNPShOdCh0aGlzLFp0KSxOdCh0aGlzLGV0LG51bGwpKTtnZXQgcmVuYW1lU291cmNlKCl7cmV0dXJuIHRoaXMuI019c2V0IHJlbmFtZVNvdXJjZShmZSl7dGhpcy4jTT1mZX0jej0oTnQodGhpcyxidCksTnQodGhpcyxlcywiIikpO2dldCByZW5hbWVOYW1lKCl7cmV0dXJuIHRoaXMuI3p9c2V0IHJlbmFtZU5hbWUoZmUpe3RoaXMuI3o9ZmV9I0M9KE50KHRoaXMscnMpLE50KHRoaXMsbnMsITEpKTtnZXQgcmVuYW1lSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNDfXNldCByZW5hbWVJblByb2dyZXNzKGZlKXt0aGlzLiNDPWZlfSNUPShOdCh0aGlzLHRpKSxOdCh0aGlzLHplLG51bGwpKTtnZXQgcmVuYW1lRXJyb3IoKXtyZXR1cm4gdGhpcy4jVH1zZXQgcmVuYW1lRXJyb3IoZmUpe3RoaXMuI1Q9ZmV9IyQ9KE50KHRoaXMseGUpLE50KHRoaXMseHQsbnVsbCkpO2dldCBkcmFnZ2VkSXRlbSgpe3JldHVybiB0aGlzLiMkfXNldCBkcmFnZ2VkSXRlbShmZSl7dGhpcy4jJD1mZX1yZXNpemluZz0oTnQodGhpcyxNYSksbnVsbCk7REVGQVVMVF9DT0xVTU5fV0lEVEg9MjUwO01JTl9DT0xVTU5fV0lEVEg9MTUwO01BWF9DT0xVTU5fV0lEVEg9NTAwO2RyYWdDb3VudGVycz1uZXcgTWFwO2ZvbGRlckhvdmVyVGltZXI9bnVsbDtmaWxlSW5wdXRFbGVtZW50PW51bGw7Zm9sZGVySW5wdXRFbGVtZW50PW51bGw7c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLHFlLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jb2x1bW5zLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiBtYXgtY29udGVudDsKICAgICAgfQoKICAgICAgLmNvbHVtbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUgewogICAgICAgIHdpZHRoOiA1cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAycHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZTpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLmFjdGl2ZTo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzQwNDA0MCIpfTsKICAgICAgICB3aWR0aDogMnB4OwogICAgICAgIGxlZnQ6IDFweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi13cmFwcGVyOmxhc3QtY2hpbGQgLnJlc2l6ZS1oYW5kbGUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNjY2Iil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW1zIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZDRlZDgiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZm9sZGVyIHsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSAubmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSAuY2hldnJvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAuY29sdW1uLmRyYWctb3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpOwogICAgICAgIG91dGxpbmU6IDJweCBkYXNoZWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNCk7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5mb2xkZXIuZHJhZy10YXJnZXQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpICFpbXBvcnRhbnQ7CiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICB9CgogICAgICAudXBsb2FkLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLnVwbG9hZC1vdmVybGF5IC51cGxvYWQtdGV4dCB7CiAgICAgICAgY29sb3I6ICNlMGUwZTA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudXBsb2FkLW92ZXJsYXkgLnVwbG9hZC1wcm9ncmVzcyB7CiAgICAgICAgY29sb3I6ICM4ODg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICB9CgogICAgICAuZHJhZy1oaW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiA4cHg7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC45KTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5kaWFsb2cgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzFlMWUxZSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWluLXdpZHRoOiA0MDBweDsKICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuNSk7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1sb2NhdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZGlhbG9nLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTQxNDE0Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0biB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNhbmNlbCB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNDQ0Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNhbmNlbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjNDA0MDQwIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzUwNTA1MCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLyogTW92ZSBkaWFsb2cgc3R5bGVzICovCiAgICAgIC5tb3ZlLXN1bW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAubW92ZS1pdGVtOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgfQoKICAgICAgLm1vdmUtcGF0aCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2UwZTBlMCIpfTsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC8qIE1vdmUgcGlja2VyIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtcGlja2VyLWRpYWxvZyB7CiAgICAgICAgbWluLXdpZHRoOiA0NTBweDsKICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgfQoKICAgICAgLnBpY2tlci1icmVhZGNydW1iIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5waWNrZXItY3J1bWIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItY3J1bWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAucGlja2VyLWxpc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDI4MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLmljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIC5uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5kcmFnZ2luZyB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZHJvcC10YXJnZXQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSAhaW1wb3J0YW50OwogICAgICAgIG91dGxpbmU6IDFweCBkYXNoZWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5kcm9wLWludmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSkgIWltcG9ydGFudDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy5sb2FkSW5pdGlhbENvbHVtbigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSx0aGlzLmRyYWdDb3VudGVycy5jbGVhcigpLHRoaXMuZmlsZUlucHV0RWxlbWVudCYmKHRoaXMuZmlsZUlucHV0RWxlbWVudC5yZW1vdmUoKSx0aGlzLmZpbGVJbnB1dEVsZW1lbnQ9bnVsbCksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQmJih0aGlzLmZvbGRlcklucHV0RWxlbWVudC5yZW1vdmUoKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudD1udWxsKX11cGRhdGVkKGZlKXtmZS5oYXMoImJ1Y2tldE5hbWUiKXx8ZmUuaGFzKCJjdXJyZW50UHJlZml4Iik/dGhpcy5sb2FkSW5pdGlhbENvbHVtbigpOmZlLmhhcygicmVmcmVzaEtleSIpJiZ0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCl9YXN5bmMgbG9hZEluaXRpYWxDb2x1bW4oKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgZmU9engodGhpcy5jdXJyZW50UHJlZml4KSxyZT1bIiIsLi4uZmVdLFNlPWF3YWl0IFByb21pc2UuYWxsKHJlLm1hcChPZT0+dGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLE9lLCIvIikpKTt0aGlzLmNvbHVtbnM9U2UubWFwKChPZSxKZSk9PntsZXQgemE9cmVbSmVdLGRhPUplPGZlLmxlbmd0aD9mZVtKZV06bnVsbDtyZXR1cm57cHJlZml4OnphLG9iamVjdHM6T2Uub2JqZWN0cyxwcmVmaXhlczpPZS5wcmVmaXhlcyxzZWxlY3RlZEl0ZW06ZGEsd2lkdGg6dGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSH19KSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuc2Nyb2xsVG9FbmQoKSl9Y2F0Y2goZmUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgb2JqZWN0czoiLGZlKSx0aGlzLmNvbHVtbnM9W119dGhpcy5sb2FkaW5nPSExfX1hc3luYyByZWZyZXNoQWxsQ29sdW1ucygpe2lmKCF0aGlzLmRhdGFQcm92aWRlcilyZXR1cm47bGV0IGZlPWF3YWl0IFByb21pc2UuYWxsKHRoaXMuY29sdW1ucy5tYXAoYXN5bmMgcmU9Pnt0cnl7bGV0IFNlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxyZS5wcmVmaXgsIi8iKTtyZXR1cm57Li4ucmUsb2JqZWN0czpTZS5vYmplY3RzLHByZWZpeGVzOlNlLnByZWZpeGVzfX1jYXRjaHtyZXR1cm4gcmV9fSkpO3RoaXMuY29sdW1ucz1mZX1hc3luYyBzZWxlY3RGb2xkZXIoZmUscmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoU2UsT2UpPT5PZT09PWZlP3suLi5TZSxzZWxlY3RlZEl0ZW06cmV9OlNlKSx0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLnNsaWNlKDAsZmUrMSk7dHJ5e2xldCBTZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUscmUsIi8iKTt0aGlzLmNvbHVtbnM9Wy4uLnRoaXMuY29sdW1ucyx7cHJlZml4OnJlLG9iamVjdHM6U2Uub2JqZWN0cyxwcmVmaXhlczpTZS5wcmVmaXhlcyxzZWxlY3RlZEl0ZW06bnVsbCx3aWR0aDp0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIfV0sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLnNjcm9sbFRvRW5kKCkpfWNhdGNoKFNlKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIGZvbGRlcjoiLFNlKX19fXNjcm9sbFRvRW5kKCl7dGhpcy5zY3JvbGxMZWZ0PXRoaXMuc2Nyb2xsV2lkdGgtdGhpcy5jbGllbnRXaWR0aH1zdGFydFJlc2l6ZShmZSxyZSl7ZmUucHJldmVudERlZmF1bHQoKSx0aGlzLnJlc2l6aW5nPXtjb2x1bW5JbmRleDpyZSxzdGFydFg6ZmUuY2xpZW50WCxzdGFydFdpZHRoOnRoaXMuY29sdW1uc1tyZV0ud2lkdGh9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVSZXNpemUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuc3RvcFJlc2l6ZSksZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9ImNvbC1yZXNpemUiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0ibm9uZSJ9aGFuZGxlUmVzaXplPWkoZmU9PntpZighdGhpcy5yZXNpemluZylyZXR1cm47bGV0IHJlPWZlLmNsaWVudFgtdGhpcy5yZXNpemluZy5zdGFydFgsU2U9TWF0aC5taW4odGhpcy5NQVhfQ09MVU1OX1dJRFRILE1hdGgubWF4KHRoaXMuTUlOX0NPTFVNTl9XSURUSCx0aGlzLnJlc2l6aW5nLnN0YXJ0V2lkdGgrcmUpKTt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoT2UsSmUpPT5KZT09PXRoaXMucmVzaXppbmcuY29sdW1uSW5kZXg/ey4uLk9lLHdpZHRoOlNlfTpPZSl9LCJoYW5kbGVSZXNpemUiKTtzdG9wUmVzaXplPWkoKCk9Pnt0aGlzLnJlc2l6aW5nPW51bGwsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5zdG9wUmVzaXplKSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9IiJ9LCJzdG9wUmVzaXplIik7c2VsZWN0RmlsZShmZSxyZSl7dGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKFNlLE9lKT0+T2U9PT1mZT97Li4uU2Usc2VsZWN0ZWRJdGVtOnJlfTpTZSksdGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5zbGljZSgwLGZlKzEpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImtleS1zZWxlY3RlZCIse2RldGFpbDp7a2V5OnJlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWdldEZpbGVJY29uKGZlKXtsZXQgcmU9ZmUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiI7cmV0dXJue2pzb246Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiLHR4dDoiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiIscG5nOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIsanBnOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIsanBlZzoiTTUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoiLGdpZjoiTTUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoiLHBkZjoiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiJ9W3JlXXx8Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoifWhhbmRsZUZvbGRlckNvbnRleHRNZW51KGZlLHJlLFNlKXt0aGlzLmRhdGFQcm92aWRlciYmKGZlLnByZXZlbnREZWZhdWx0KCksJGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZmUsW3tuYW1lOiJPcGVuIixpY29uTmFtZToibHVjaWRlOmZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEZvbGRlcihyZSxTZSl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgUGF0aCIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoU2UpfSwiYWN0aW9uIil9LHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5SZW5hbWVEaWFsb2coU2UsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJNb3ZlIHRvLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlcklucHV0IixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5Nb3ZlUGlja2VyRGlhbG9nKFNlLCEwKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTmV3IEZvbGRlciBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLFNlKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsU2UpLCJhY3Rpb24iKX0se25hbWU6IlVwbG9hZCBGaWxlcy4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aShhc3luYygpPT50aGlzLnRyaWdnZXJGaWxlVXBsb2FkKFNlLCJmaWxlcyIpLCJhY3Rpb24iKX0se25hbWU6IlVwbG9hZCBGb2xkZXIuLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyVXAiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoU2UsImZvbGRlciIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbmZpcm0oYERlbGV0ZSBmb2xkZXIgIiR7WWEoU2UpfSIgYW5kIGFsbCBpdHMgY29udGVudHM/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsU2UpJiYodGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5zbGljZSgwLHJlKzEpLHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChKZSx6YSk9PnphPT09cmU/ey4uLkplLHNlbGVjdGVkSXRlbTpudWxsfTpKZSksYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgodGhpcy5jb2x1bW5zW3JlXS5wcmVmaXgpKX0sImFjdGlvbiIpfV0pKX1oYW5kbGVGaWxlQ29udGV4dE1lbnUoZmUscmUsU2Upe3RoaXMuZGF0YVByb3ZpZGVyJiYoZmUucHJldmVudERlZmF1bHQoKSwkYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhmZSxbe25hbWU6IlByZXZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5zZWxlY3RGaWxlKHJlLFNlKX0sImFjdGlvbiIpfSx7bmFtZToiRG93bmxvYWQiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgT2U9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZ2V0T2JqZWN0VXJsKHRoaXMuYnVja2V0TmFtZSxTZSksSmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO0plLmhyZWY9T2UsSmUuZG93bmxvYWQ9WWEoU2UpLEplLmNsaWNrKCl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgUGF0aCIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoU2UpfSwiYWN0aW9uIil9LHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5SZW5hbWVEaWFsb2coU2UsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJNb3ZlIHRvLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlcklucHV0IixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5Nb3ZlUGlja2VyRGlhbG9nKFNlLCExKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbmZpcm0oYERlbGV0ZSBmaWxlICIke1lhKFNlKX0iP2ApJiZhd2FpdCB0aGlzLmRhdGFQcm92aWRlci5kZWxldGVPYmplY3QodGhpcy5idWNrZXROYW1lLFNlKSYmYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgodGhpcy5jb2x1bW5zW3JlXS5wcmVmaXgpfSwiYWN0aW9uIil9XSkpfWhhbmRsZUVtcHR5U3BhY2VDb250ZXh0TWVudShmZSxyZSl7aWYoZmUudGFyZ2V0IT09ZmUuY3VycmVudFRhcmdldClyZXR1cm47ZmUucHJldmVudERlZmF1bHQoKTtsZXQgU2U9dGhpcy5jb2x1bW5zW3JlXS5wcmVmaXg7JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZmUsW3tuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZm9sZGVyIixTZSksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsU2UpLCJhY3Rpb24iKX0se25hbWU6IlVwbG9hZCBGaWxlcy4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aShhc3luYygpPT50aGlzLnRyaWdnZXJGaWxlVXBsb2FkKFNlLCJmaWxlcyIpLCJhY3Rpb24iKX0se25hbWU6IlVwbG9hZCBGb2xkZXIuLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyVXAiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoU2UsImZvbGRlciIpLCJhY3Rpb24iKX1dKX1vcGVuQ3JlYXRlRGlhbG9nKGZlLHJlKXt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9ZmUsdGhpcy5jcmVhdGVEaWFsb2dQcmVmaXg9cmUsdGhpcy5jcmVhdGVEaWFsb2dOYW1lPSIiLHRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMH1lbnN1cmVGaWxlSW5wdXRzKCl7dGhpcy5maWxlSW5wdXRFbGVtZW50fHwodGhpcy5maWxlSW5wdXRFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy5maWxlSW5wdXRFbGVtZW50LnR5cGU9ImZpbGUiLHRoaXMuZmlsZUlucHV0RWxlbWVudC5tdWx0aXBsZT0hMCx0aGlzLmZpbGVJbnB1dEVsZW1lbnQuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMuZmlsZUlucHV0RWxlbWVudCkpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50fHwodGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudC50eXBlPSJmaWxlIix0aGlzLmZvbGRlcklucHV0RWxlbWVudC5tdWx0aXBsZT0hMCx0aGlzLmZvbGRlcklucHV0RWxlbWVudC53ZWJraXRkaXJlY3Rvcnk9ITAsdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMuZm9sZGVySW5wdXRFbGVtZW50KSl9dHJpZ2dlckZpbGVVcGxvYWQoZmUscmUpe3RoaXMuZW5zdXJlRmlsZUlucHV0cygpO2xldCBTZT1yZT09PSJmb2xkZXIiP3RoaXMuZm9sZGVySW5wdXRFbGVtZW50OnRoaXMuZmlsZUlucHV0RWxlbWVudDtTZS52YWx1ZT0iIjtsZXQgT2U9aShhc3luYygpPT57U2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixPZSksU2UuZmlsZXMmJlNlLmZpbGVzLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwbG9hZEZpbGVzKEFycmF5LmZyb20oU2UuZmlsZXMpLGZlKX0sImhhbmRsZXIiKTtTZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLE9lKSxTZS5jbGljaygpfWFzeW5jIHVwbG9hZEZpbGVzKGZlLHJlKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy51cGxvYWRpbmc9ITAsdGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDowLHRvdGFsOmZlLmxlbmd0aH07Zm9yKGxldCBTZT0wO1NlPGZlLmxlbmd0aDtTZSsrKXtsZXQgT2U9ZmVbU2VdO3RoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6U2UrMSx0b3RhbDpmZS5sZW5ndGh9O3RyeXtsZXQgSmU9YXdhaXQgdGhpcy5yZWFkRmlsZUFzQmFzZTY0KE9lKSx6YT1PZS53ZWJraXRSZWxhdGl2ZVBhdGh8fE9lLm5hbWUsZGE9cmUremEsd3M9T2UudHlwZXx8cjcoT2UubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIik7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSxkYSxKZSx3cyl9Y2F0Y2goSmUpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byB1cGxvYWQgJHtPZS5uYW1lfTpgLEplKX19dGhpcy51cGxvYWRpbmc9ITEsdGhpcy51cGxvYWRQcm9ncmVzcz1udWxsLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHJlKX19YXN5bmMgdXBsb2FkRmlsZXNXaXRoUGF0aHMoZmUscmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLnVwbG9hZGluZz0hMCx0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OjAsdG90YWw6ZmUubGVuZ3RofTtmb3IobGV0IFNlPTA7U2U8ZmUubGVuZ3RoO1NlKyspe2xldHtmaWxlOk9lLHJlbGF0aXZlUGF0aDpKZX09ZmVbU2VdO3RoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6U2UrMSx0b3RhbDpmZS5sZW5ndGh9O3RyeXtsZXQgemE9YXdhaXQgdGhpcy5yZWFkRmlsZUFzQmFzZTY0KE9lKSxkYT1yZStKZSx3cz1PZS50eXBlfHxyNyhPZS5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiKTthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLGRhLHphLHdzKX1jYXRjaCh6YSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHVwbG9hZCAke0plfTpgLHphKX19dGhpcy51cGxvYWRpbmc9ITEsdGhpcy51cGxvYWRQcm9ncmVzcz1udWxsLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHJlKX19cmVhZEZpbGVBc0Jhc2U2NChmZSl7cmV0dXJuIG5ldyBQcm9taXNlKChyZSxTZSk9PntsZXQgT2U9bmV3IEZpbGVSZWFkZXI7T2Uub25sb2FkPSgpPT57bGV0IEplPU9lLnJlc3VsdDtyZShKZS5zcGxpdCgiLCIpWzFdfHwiIil9LE9lLm9uZXJyb3I9KCk9PlNlKE9lLmVycm9yKSxPZS5yZWFkQXNEYXRhVVJMKGZlKX0pfWFzeW5jIHJlZnJlc2hDb2x1bW5CeVByZWZpeChmZSl7aWYoIXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgcmU9dGhpcy5jb2x1bW5zLmZpbmRJbmRleChTZT0+U2UucHJlZml4PT09ZmUpO2lmKHJlPT09LTEpe2F3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKTtyZXR1cm59dHJ5e2xldCBTZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsZmUsIi8iKTt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoT2UsSmUpPT5KZT09PXJlP3suLi5PZSxvYmplY3RzOlNlLm9iamVjdHMscHJlZml4ZXM6U2UucHJlZml4ZXN9Ok9lKX1jYXRjaHthd2FpdCB0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCl9fWhhbmRsZUNvbHVtbkRyYWdFbnRlcihmZSxyZSl7ZmUucHJldmVudERlZmF1bHQoKSxmZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgU2U9KHRoaXMuZHJhZ0NvdW50ZXJzLmdldChyZSl8fDApKzE7dGhpcy5kcmFnQ291bnRlcnMuc2V0KHJlLFNlKSx0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9cmV9aGFuZGxlQ29sdW1uRHJhZ092ZXIoZmUpe2ZlLnByZXZlbnREZWZhdWx0KCksZmUuc3RvcFByb3BhZ2F0aW9uKCksZmUuZGF0YVRyYW5zZmVyJiYoZmUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9dGhpcy5kcmFnZ2VkSXRlbT8ibW92ZSI6ImNvcHkiKX1oYW5kbGVDb2x1bW5EcmFnTGVhdmUoZmUscmUpe2ZlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBTZT0odGhpcy5kcmFnQ291bnRlcnMuZ2V0KHJlKXx8MSktMTt0aGlzLmRyYWdDb3VudGVycy5zZXQocmUsU2UpLFNlPD0wJiYodGhpcy5kcmFnQ291bnRlcnMuZGVsZXRlKHJlKSx0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9PT1yZSYmKHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD0tMSksdGhpcy5jbGVhckZvbGRlckhvdmVyKCkpfWFzeW5jIGhhbmRsZUNvbHVtbkRyb3AoZmUscmUpe2ZlLnByZXZlbnREZWZhdWx0KCksZmUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFNlPXRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg/P3RoaXMuY29sdW1uc1tyZV0ucHJlZml4O2lmKHRoaXMuZHJhZ2dlZEl0ZW0pe3RoaXMuaW5pdGlhdGVNb3ZlKHRoaXMuZHJhZ2dlZEl0ZW0ua2V5LHRoaXMuZHJhZ2dlZEl0ZW0uaXNGb2xkZXIsU2UpLHRoaXMuZHJhZ2dlZEl0ZW09bnVsbCx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSx0aGlzLmRyYWdDb3VudGVycy5jbGVhcigpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD0tMTtyZXR1cm59dGhpcy5kcmFnQ291bnRlcnMuY2xlYXIoKSx0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9LTE7bGV0IE9lPWZlLmRhdGFUcmFuc2Zlcj8uaXRlbXM7aWYoIU9lfHxPZS5sZW5ndGg9PT0wKXJldHVybjt0aGlzLmNsZWFyRm9sZGVySG92ZXIoKTtsZXQgSmU9W10semE9aShhc3luYyhkYSx3cyk9PntpZihkYS5pc0ZpbGUpe2xldCBraT1kYSxKaT1hd2FpdCBuZXcgUHJvbWlzZSgoUnIsU2kpPT57a2kuZmlsZShScixTaSl9KTtKZS5wdXNoKHtmaWxlOkppLHJlbGF0aXZlUGF0aDp3cytKaS5uYW1lfSl9ZWxzZSBpZihkYS5pc0RpcmVjdG9yeSl7bGV0IEppPWRhLmNyZWF0ZVJlYWRlcigpLFJyPWF3YWl0IG5ldyBQcm9taXNlKChTaSx2bik9PntKaS5yZWFkRW50cmllcyhTaSx2bil9KTtmb3IobGV0IFNpIG9mIFJyKWF3YWl0IHphKFNpLHdzK2RhLm5hbWUrIi8iKX19LCJwcm9jZXNzRW50cnkiKTtmb3IobGV0IGRhPTA7ZGE8T2UubGVuZ3RoO2RhKyspe2xldCB3cz1PZVtkYV07aWYod3Mua2luZD09PSJmaWxlIil7bGV0IGtpPXdzLndlYmtpdEdldEFzRW50cnkoKTtraSYmYXdhaXQgemEoa2ksIiIpfX1KZS5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGxvYWRGaWxlc1dpdGhQYXRocyhKZSxTZSl9aGFuZGxlRm9sZGVyRHJhZ0VudGVyKGZlLHJlKXtmZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSx0aGlzLmZvbGRlckhvdmVyVGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9cmV9LDUwMCl9aGFuZGxlRm9sZGVyRHJhZ0xlYXZlKGZlLHJlKXtmZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgU2U9ZmUuY3VycmVudFRhcmdldCxPZT1mZS5yZWxhdGVkVGFyZ2V0O09lJiZTZS5jb250YWlucyhPZSl8fCh0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PT09cmUmJih0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PW51bGwpLHRoaXMuZm9sZGVySG92ZXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLmZvbGRlckhvdmVyVGltZXIpLHRoaXMuZm9sZGVySG92ZXJUaW1lcj1udWxsKSl9aGFuZGxlRm9sZGVyRHJhZ092ZXIoZmUpe2ZlLnByZXZlbnREZWZhdWx0KCksZmUuc3RvcFByb3BhZ2F0aW9uKCksZmUuZGF0YVRyYW5zZmVyJiYoZmUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9dGhpcy5kcmFnZ2VkSXRlbT8ibW92ZSI6ImNvcHkiKX1jbGVhckZvbGRlckhvdmVyKCl7dGhpcy5mb2xkZXJIb3ZlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuZm9sZGVySG92ZXJUaW1lciksdGhpcy5mb2xkZXJIb3ZlclRpbWVyPW51bGwpLHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9bnVsbH1oYW5kbGVJdGVtRHJhZ1N0YXJ0KGZlLHJlLFNlKXt0aGlzLmRyYWdnZWRJdGVtPXtrZXk6cmUsaXNGb2xkZXI6U2V9LGZlLmRhdGFUcmFuc2Zlcj8uc2V0RGF0YSgidGV4dC9wbGFpbiIscmUpLGZlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJjb3B5TW92ZSIsZmUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIil9aGFuZGxlSXRlbURyYWdFbmQoZmUpe3RoaXMuZHJhZ2dlZEl0ZW09bnVsbCxmZS50YXJnZXQuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX1hc3luYyBvcGVuTW92ZVBpY2tlckRpYWxvZyhmZSxyZSl7dGhpcy5tb3ZlUGlja2VyU291cmNlPXtrZXk6ZmUsaXNGb2xkZXI6cmV9LHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMCxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoIiIpfWFzeW5jIG5hdmlnYXRlTW92ZVBpY2tlcihmZSl7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD1mZSxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoZmUpfWFzeW5jIGxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoZmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSEwO3RyeXtsZXQgcmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLGZlLCIvIik7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9cmUucHJlZml4ZXN9Y2F0Y2h7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119dGhpcy5tb3ZlUGlja2VyTG9hZGluZz0hMX19c2VsZWN0TW92ZURlc3RpbmF0aW9uKGZlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2UmJih0aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpLHRoaXMuaW5pdGlhdGVNb3ZlKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXksdGhpcy5tb3ZlUGlja2VyU291cmNlLmlzRm9sZGVyLGZlKSl9Y2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl7dGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMSx0aGlzLm1vdmVQaWNrZXJTb3VyY2U9bnVsbCx0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PSIiLHRoaXMubW92ZVBpY2tlclByZWZpeGVzPVtdfWluaXRpYXRlTW92ZShmZSxyZSxTZSl7bGV0IE9lPVpRKGZlLFNlKTtpZighT2UudmFsaWQpe3RoaXMubW92ZVNvdXJjZT17a2V5OmZlLGlzRm9sZGVyOnJlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1TZSx0aGlzLm1vdmVFcnJvcj1PZS5lcnJvcix0aGlzLnNob3dNb3ZlRGlhbG9nPSEwO3JldHVybn10aGlzLm1vdmVTb3VyY2U9e2tleTpmZSxpc0ZvbGRlcjpyZX0sdGhpcy5tb3ZlRGVzdGluYXRpb249U2UsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLnNob3dNb3ZlRGlhbG9nPSEwfWFzeW5jIGV4ZWN1dGVNb3ZlKCl7aWYoISghdGhpcy5tb3ZlU291cmNlfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLm1vdmVJblByb2dyZXNzPSEwO3RyeXtsZXQgZmU9WWEodGhpcy5tb3ZlU291cmNlLmtleSkscmU9dGhpcy5tb3ZlRGVzdGluYXRpb24rZmUrKHRoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLFNlO3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj9TZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlUHJlZml4KHRoaXMuYnVja2V0TmFtZSx0aGlzLm1vdmVTb3VyY2Uua2V5LHJlKTpTZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm1vdmVTb3VyY2Uua2V5LHJlKSxTZS5zdWNjZXNzPyh0aGlzLmNsb3NlTW92ZURpYWxvZygpLGF3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKSk6dGhpcy5tb3ZlRXJyb3I9U2UuZXJyb3J8fCJNb3ZlIG9wZXJhdGlvbiBmYWlsZWQifWNhdGNoKGZlKXt0aGlzLm1vdmVFcnJvcj1gRXJyb3I6ICR7ZmV9YH10aGlzLm1vdmVJblByb2dyZXNzPSExfX1jbG9zZU1vdmVEaWFsb2coKXt0aGlzLnNob3dNb3ZlRGlhbG9nPSExLHRoaXMubW92ZVNvdXJjZT1udWxsLHRoaXMubW92ZURlc3RpbmF0aW9uPSIiLHRoaXMubW92ZUVycm9yPW51bGwsdGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMX1vcGVuUmVuYW1lRGlhbG9nKGZlLHJlKXt0aGlzLnJlbmFtZVNvdXJjZT17a2V5OmZlLGlzRm9sZGVyOnJlfSx0aGlzLnJlbmFtZU5hbWU9WWEoZmUpLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnNob3dSZW5hbWVEaWFsb2c9ITAsdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFNlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnJlbmFtZS1kaWFsb2ctaW5wdXQiKTtpZihTZSlpZihTZS5mb2N1cygpLHJlKVNlLnNlbGVjdCgpO2Vsc2V7bGV0IE9lPXRoaXMucmVuYW1lTmFtZS5sYXN0SW5kZXhPZigiLiIpO09lPjA/U2Uuc2V0U2VsZWN0aW9uUmFuZ2UoMCxPZSk6U2Uuc2VsZWN0KCl9fSl9YXN5bmMgZXhlY3V0ZVJlbmFtZSgpe2lmKCF0aGlzLnJlbmFtZVNvdXJjZXx8IXRoaXMucmVuYW1lTmFtZS50cmltKCl8fCF0aGlzLmRhdGFQcm92aWRlcilyZXR1cm47bGV0IGZlPXRoaXMucmVuYW1lTmFtZS50cmltKCkscmU9WWEodGhpcy5yZW5hbWVTb3VyY2Uua2V5KTtpZihmZT09PXJlKXt0aGlzLnJlbmFtZUVycm9yPSJOYW1lIGlzIHRoZSBzYW1lIGFzIGN1cnJlbnQiO3JldHVybn1pZighZmUpe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgY2Fubm90IGJlIGVtcHR5IjtyZXR1cm59aWYoZmUuaW5jbHVkZXMoIi8iKSl7dGhpcy5yZW5hbWVFcnJvcj0nTmFtZSBjYW5ub3QgY29udGFpbiAiLyInO3JldHVybn10aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITAsdGhpcy5yZW5hbWVFcnJvcj1udWxsO3RyeXtsZXQgT2U9SmQodGhpcy5yZW5hbWVTb3VyY2Uua2V5KStmZSsodGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI/Ii8iOiIiKSxKZTt0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj9KZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlUHJlZml4KHRoaXMuYnVja2V0TmFtZSx0aGlzLnJlbmFtZVNvdXJjZS5rZXksT2UpOkplPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSxPZSksSmUuc3VjY2Vzcz8odGhpcy5jbG9zZVJlbmFtZURpYWxvZygpLGF3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKSk6dGhpcy5yZW5hbWVFcnJvcj1KZS5lcnJvcnx8IlJlbmFtZSBmYWlsZWQifWNhdGNoKFNlKXt0aGlzLnJlbmFtZUVycm9yPWBFcnJvcjogJHtTZX1gfXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMX1jbG9zZVJlbmFtZURpYWxvZygpe3RoaXMuc2hvd1JlbmFtZURpYWxvZz0hMSx0aGlzLnJlbmFtZVNvdXJjZT1udWxsLHRoaXMucmVuYW1lTmFtZT0iIix0aGlzLnJlbmFtZUVycm9yPW51bGwsdGhpcy5yZW5hbWVJblByb2dyZXNzPSExfXJlbmRlclJlbmFtZURpYWxvZygpe2lmKCF0aGlzLnNob3dSZW5hbWVEaWFsb2d8fCF0aGlzLnJlbmFtZVNvdXJjZSlyZXR1cm4iIjtsZXQgZmU9dGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke1NlPT5TZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7ZmU/IlJlbmFtZSBGb2xkZXIiOiJSZW5hbWUgRmlsZSJ9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7SmQodGhpcy5yZW5hbWVTb3VyY2Uua2V5KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnJlbmFtZUVycm9yP3dgPGRpdiBjbGFzcz0ibW92ZS1lcnJvciI+JHt0aGlzLnJlbmFtZUVycm9yfTwvZGl2PmA6IiJ9CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1pbnB1dCByZW5hbWUtZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke2ZlPyJmb2xkZXItbmFtZSI6ImZpbGVuYW1lLmV4dCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMucmVuYW1lTmFtZX0KICAgICAgICAgICAgQGlucHV0PSR7U2U9Pnt0aGlzLnJlbmFtZU5hbWU9U2UudGFyZ2V0LnZhbHVlLHRoaXMucmVuYW1lRXJyb3I9bnVsbH19CiAgICAgICAgICAgIEBrZXlkb3duPSR7U2U9PntTZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmV4ZWN1dGVSZW5hbWUoKSxTZS5rZXk9PT0iRXNjYXBlIiYmdGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfX0KICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3N9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmV4ZWN1dGVSZW5hbWUoKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3N8fCF0aGlzLnJlbmFtZU5hbWUudHJpbSgpfT4KICAgICAgICAgICAgICAke3RoaXMucmVuYW1lSW5Qcm9ncmVzcz8iUmVuYW1pbmcuLi4iOiJSZW5hbWUifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZURpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlRGlhbG9nfHwhdGhpcy5tb3ZlU291cmNlKXJldHVybiIiO2xldCBmZT1ZYSh0aGlzLm1vdmVTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZURpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke3JlPT5yZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPk1vdmUgJHt0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/IkZvbGRlciI6IkZpbGUifTwvZGl2PgoKICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1lcnJvciI+JHt0aGlzLm1vdmVFcnJvcn08L2Rpdj4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1zdW1tYXJ5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtbGFiZWwiPkZyb206PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVTb3VyY2Uua2V5fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtbGFiZWwiPlRvOjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLXBhdGgiPiR7dGhpcy5tb3ZlRGVzdGluYXRpb259JHtmZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlSW5Qcm9ncmVzc30+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAke3RoaXMubW92ZUVycm9yPyIiOndgCiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmV4ZWN1dGVNb3ZlKCl9CiAgICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICAgICR7dGhpcy5tb3ZlSW5Qcm9ncmVzcz8iTW92aW5nLi4uIjoiTW92ZSJ9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1vdmVQaWNrZXJEaWFsb2coKXtpZighdGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZ3x8IXRoaXMubW92ZVBpY2tlclNvdXJjZSlyZXR1cm4iIjtsZXQgZmU9WWEodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkscmU9SmQodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVQaWNrZXJEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIG1vdmUtcGlja2VyLWRpYWxvZyIgQGNsaWNrPSR7U2U9PlNlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAiJHtmZX0iIHRvLi4uPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWJyZWFkY3J1bWIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlja2VyLWNydW1iIiBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZU1vdmVQaWNrZXIoIiIpfT4KICAgICAgICAgICAgICAke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAke3p4KHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpLm1hcChTZT0+d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlja2VyLXNlcGFyYXRvciI+Lzwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlja2VyLWNydW1iIiBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZU1vdmVQaWNrZXIoU2UpfT4KICAgICAgICAgICAgICAgICR7WWEoU2UpfQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItbGlzdCI+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlUGlja2VyTG9hZGluZz93YDxkaXYgY2xhc3M9InBpY2tlci1lbXB0eSI+TG9hZGluZy4uLjwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7IXRoaXMubW92ZVBpY2tlckxvYWRpbmcmJnRoaXMubW92ZVBpY2tlclByZWZpeGVzLmZpbHRlcihTZT0+U2UhPT10aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KS5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5ObyBzdWJmb2xkZXJzPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKFNlPT5TZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLm1hcChTZT0+d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1pdGVtIgogICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZU1vdmVQaWNrZXIoU2UpfQogICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RNb3ZlRGVzdGluYXRpb24oU2UpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hbWUiPiR7WWEoU2UpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVQaWNrZXJEaWFsb2coKX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbih0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4KX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PT09cmV9PgogICAgICAgICAgICAgIE1vdmUgSGVyZQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlQ3JlYXRlKCl7aWYoIXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCl8fCF0aGlzLmRhdGFQcm92aWRlcilyZXR1cm47bGV0IGZlPXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCkscmU7dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciI/cmU9dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXgrZmUrIi8ua2VlcCI6cmU9dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXgrZmU7bGV0IFNlPWZlLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiLE9lPXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmaWxlIj9yNyhTZSk6ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsSmU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP1hRKFNlKToiIjthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLHJlLGJ0b2EoSmUpLE9lKSYmKHRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMSxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeCh0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCkpfXJlbmRlckNyZWF0ZURpYWxvZygpe2lmKCF0aGlzLnNob3dDcmVhdGVEaWFsb2cpcmV0dXJuIiI7bGV0IGZlPXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmb2xkZXIiLHJlPWZlPyJDcmVhdGUgTmV3IEZvbGRlciI6IkNyZWF0ZSBOZXcgRmlsZSIsU2U9ZmU/ImZvbGRlci1uYW1lIG9yIHBhdGgvdG8vZm9sZGVyIjoiZmlsZW5hbWUudHh0IG9yIHBhdGgvdG8vZmlsZS50eHQiO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHtPZT0+T2Uuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj4ke3JlfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWxvY2F0aW9uIj4KICAgICAgICAgICAgTG9jYXRpb246ICR7dGhpcy5idWNrZXROYW1lfS8ke3RoaXMuY3JlYXRlRGlhbG9nUHJlZml4fQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHtTZX0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5jcmVhdGVEaWFsb2dOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtPZT0+dGhpcy5jcmVhdGVEaWFsb2dOYW1lPU9lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgQGtleWRvd249JHtPZT0+T2Uua2V5PT09IkVudGVyIiYmdGhpcy5oYW5kbGVDcmVhdGUoKX0KICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctaGludCI+CiAgICAgICAgICAgIFVzZSAiLyIgdG8gY3JlYXRlIG5lc3RlZCAke2ZlPyJmb2xkZXJzIjoicGF0aCJ9IChlLmcuLCAke2ZlPyJwYXJlbnQvY2hpbGQiOiJmb2xkZXIvZmlsZS50eHQifSkKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKX0KICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGUoKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIENyZWF0ZQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyKCl7cmV0dXJuIHRoaXMubG9hZGluZyYmdGhpcy5jb2x1bW5zLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJsb2FkaW5nIj5Mb2FkaW5nLi4uPC9kaXY+YDp3YAogICAgICA8ZGl2IGNsYXNzPSJjb2x1bW5zLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmNvbHVtbnMubWFwKChmZSxyZSk9PnRoaXMucmVuZGVyQ29sdW1uV3JhcHBlcihmZSxyZSkpfQogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckNyZWF0ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZVBpY2tlckRpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyUmVuYW1lRGlhbG9nKCl9CiAgICBgfXJlbmRlckNvbHVtbldyYXBwZXIoZmUscmUpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4td3JhcHBlciI+CiAgICAgICAgJHt0aGlzLnJlbmRlckNvbHVtbihmZSxyZSl9CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgJHt0aGlzLnJlc2l6aW5nPy5jb2x1bW5JbmRleD09PXJlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBtb3VzZWRvd249JHtTZT0+dGhpcy5zdGFydFJlc2l6ZShTZSxyZSl9CiAgICAgICAgPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ29sdW1uKGZlLHJlKXtsZXQgU2U9ZmUucHJlZml4P1lhKGZlLnByZWZpeCk6dGhpcy5idWNrZXROYW1lO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImNvbHVtbiAke3RoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD09PXJlPyJkcmFnLW92ZXIiOiIifSIKICAgICAgICBzdHlsZT0id2lkdGg6ICR7ZmUud2lkdGh9cHgiCiAgICAgICAgQGRyYWdlbnRlcj0ke09lPT50aGlzLmhhbmRsZUNvbHVtbkRyYWdFbnRlcihPZSxyZSl9CiAgICAgICAgQGRyYWdvdmVyPSR7T2U9PnRoaXMuaGFuZGxlQ29sdW1uRHJhZ092ZXIoT2UpfQogICAgICAgIEBkcmFnbGVhdmU9JHtPZT0+dGhpcy5oYW5kbGVDb2x1bW5EcmFnTGVhdmUoT2UscmUpfQogICAgICAgIEBkcm9wPSR7T2U9PnRoaXMuaGFuZGxlQ29sdW1uRHJvcChPZSxyZSl9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4taGVhZGVyIiB0aXRsZT0ke2ZlLnByZWZpeHx8dGhpcy5idWNrZXROYW1lfT4KICAgICAgICAgICR7U2V9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uLWl0ZW1zIiBAY29udGV4dG1lbnU9JHtPZT0+dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoT2UscmUpfT4KICAgICAgICAgICR7ZmUucHJlZml4ZXMubGVuZ3RoPT09MCYmZmUub2JqZWN0cy5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPkVtcHR5IGZvbGRlcjwvZGl2PmA6IiJ9CiAgICAgICAgICAke2ZlLnByZWZpeGVzLm1hcChPZT0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iY29sdW1uLWl0ZW0gZm9sZGVyICR7ZmUuc2VsZWN0ZWRJdGVtPT09T2U/InNlbGVjdGVkIjoiIn0gJHt0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PT09T2U/ImRyYWctdGFyZ2V0IjoiIn0iCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9InRydWUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RGb2xkZXIocmUsT2UpfQogICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7SmU9PnRoaXMuaGFuZGxlRm9sZGVyQ29udGV4dE1lbnUoSmUscmUsT2UpfQogICAgICAgICAgICAgICAgQGRyYWdzdGFydD0ke0plPT50aGlzLmhhbmRsZUl0ZW1EcmFnU3RhcnQoSmUsT2UsITApfQogICAgICAgICAgICAgICAgQGRyYWdlbmQ9JHtKZT0+dGhpcy5oYW5kbGVJdGVtRHJhZ0VuZChKZSl9CiAgICAgICAgICAgICAgICBAZHJhZ2VudGVyPSR7SmU9PnRoaXMuaGFuZGxlRm9sZGVyRHJhZ0VudGVyKEplLE9lKX0KICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke0plPT50aGlzLmhhbmRsZUZvbGRlckRyYWdPdmVyKEplKX0KICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHtKZT0+dGhpcy5oYW5kbGVGb2xkZXJEcmFnTGVhdmUoSmUsT2UpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6IiAvPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtZYShPZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY2hldnJvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iOSAxOCAxNSAxMiA5IDYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAke2ZlLm9iamVjdHMubWFwKE9lPT53YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJjb2x1bW4taXRlbSAke2ZlLnNlbGVjdGVkSXRlbT09PU9lLmtleT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEZpbGUocmUsT2Uua2V5KX0KICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke0plPT50aGlzLmhhbmRsZUZpbGVDb250ZXh0TWVudShKZSxyZSxPZS5rZXkpfQogICAgICAgICAgICAgICAgQGRyYWdzdGFydD0ke0plPT50aGlzLmhhbmRsZUl0ZW1EcmFnU3RhcnQoSmUsT2Uua2V5LCExKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7SmU9PnRoaXMuaGFuZGxlSXRlbURyYWdFbmQoSmUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9IiR7dGhpcy5nZXRGaWxlSWNvbihPZS5rZXkpfSIgLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hbWUiPiR7WWEoT2Uua2V5KX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PT09cmU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYWctaGludCI+CiAgICAgICAgICAgICR7dGhpcy5kcmFnZ2VkSXRlbT90aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4P2BNb3ZlIHRvICR7WWEodGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeCl9YDoiTW92ZSBoZXJlIjp0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4P2BEcm9wIHRvIHVwbG9hZCBpbnRvICR7WWEodGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeCl9YDoiRHJvcCB0byB1cGxvYWQgaGVyZSJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgICR7dGhpcy51cGxvYWRpbmc/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1vdmVybGF5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXRleHQiPlVwbG9hZGluZy4uLjwvZGl2PgogICAgICAgICAgICAke3RoaXMudXBsb2FkUHJvZ3Jlc3M/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtcHJvZ3Jlc3MiPiR7dGhpcy51cGxvYWRQcm9ncmVzcy5jdXJyZW50fSAvICR7dGhpcy51cGxvYWRQcm9ncmVzcy50b3RhbH0gZmlsZXM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7TnQoYSx0KX19O3JldHVybiBOcj1hfSkoKX0pO3ZhciBWcyxqdCxDZXMsbmx0PWcoKCk9PntwZSgpO2ZyKCk7aHQoKTtRUSgpO1ZzPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxqdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQ2VzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zdG9yYWdlLWtleXMiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXSxHZSxEZT1bXSxfZT1bXSxDZSx2ZT1bXSxiZT1bXSxFZSxqZT1bXSxXZT1bXSxzdCxNZT1bXSxnZT1bXSxJZSxjZT1bXSxkZT1bXSxMZSxLZT1bXSxZZT1bXSxvdCxVdD1bXSxadD1bXSxqYSxldD1bXSxidD1bXSx5YSxlcz1bXSxycz1bXSxwcyxucz1bXSx0aT1bXTt2YXIgYWk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlS2V5cyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCB6ZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxIPVtZKCldLEk9W1koKV0sSz1bWSgpXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSx5ZT1bWSgpXSxzZT1bWSgpXSxUZT1bWSgpXSxHZT1bWSgpXSxDZT1bWSgpXSxFZT1bWSgpXSxzdD1bWSgpXSxJZT1bWSgpXSxMZT1bWSgpXSxvdD1bWSgpXSxqYT1bWSgpXSx5YT1bWSgpXSxwcz1bWSgpXSxWcyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFQcm92aWRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImRhdGFQcm92aWRlciJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLmRhdGFQcm92aWRlciwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmRhdGFQcm92aWRlcj1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sbyxsKSxWcyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1Y2tldE5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJidWNrZXROYW1lImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuYnVja2V0TmFtZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmJ1Y2tldE5hbWU9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGQsdSksVnModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4iY3VycmVudFByZWZpeCJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLmN1cnJlbnRQcmVmaXgsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5jdXJyZW50UHJlZml4PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxiLHYpLFZzKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVmcmVzaEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InJlZnJlc2hLZXkiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5yZWZyZXNoS2V5LCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUucmVmcmVzaEtleT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sbSxmKSxWcyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbEtleXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJhbGxLZXlzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuYWxsS2V5cywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmFsbEtleXM9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LE0seiksVnModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcmVmaXhlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InByZWZpeGVzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucHJlZml4ZXMsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5wcmVmaXhlcz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sQyxfKSxWcyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJsb2FkaW5nImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubG9hZGluZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmxvYWRpbmc9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LCQsRSksVnModGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InNlbGVjdGVkS2V5ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuc2VsZWN0ZWRLZXksImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5zZWxlY3RlZEtleT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sayxTKSxWcyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlclRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJmaWx0ZXJUZXh0ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuZmlsdGVyVGV4dCwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmZpbHRlclRleHQ9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LFAsUiksVnModGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q3JlYXRlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2hvd0NyZWF0ZURpYWxvZyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnNob3dDcmVhdGVEaWFsb2csImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5zaG93Q3JlYXRlRGlhbG9nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxWLFcpLFZzKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ1R5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJjcmVhdGVEaWFsb2dUeXBlImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuY3JlYXRlRGlhbG9nVHlwZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmNyZWF0ZURpYWxvZ1R5cGU9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LEIsVSksVnModGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4iY3JlYXRlRGlhbG9nUHJlZml4ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuY3JlYXRlRGlhbG9nUHJlZml4LCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuY3JlYXRlRGlhbG9nUHJlZml4PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxGLGopLFZzKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ05hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJjcmVhdGVEaWFsb2dOYW1lImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuY3JlYXRlRGlhbG9nTmFtZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmNyZWF0ZURpYWxvZ05hbWU9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGxlLFEpLFZzKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2hvd01vdmVEaWFsb2ciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5zaG93TW92ZURpYWxvZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnNob3dNb3ZlRGlhbG9nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSx0ZSxlZSksVnModGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVTb3VyY2UiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlU291cmNlLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZVNvdXJjZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sWCxaKSxWcyh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlRGVzdGluYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlRGVzdGluYXRpb24iaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlRGVzdGluYXRpb24sImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlRGVzdGluYXRpb249TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LHEsQSksVnModGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUluUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlSW5Qcm9ncmVzcyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVJblByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZUluUHJvZ3Jlc3M9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LG9lLGFlKSxWcyh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlRXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlRXJyb3IiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlRXJyb3IsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlRXJyb3I9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LFJlLEJlKSxWcyh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TW92ZVBpY2tlckRpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InNob3dNb3ZlUGlja2VyRGlhbG9nImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuc2hvd01vdmVQaWNrZXJEaWFsb2csImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5zaG93TW92ZVBpY2tlckRpYWxvZz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sRGUsX2UpLFZzKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlUGlja2VyU291cmNlImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubW92ZVBpY2tlclNvdXJjZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVQaWNrZXJTb3VyY2U9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LHZlLGJlKSxWcyh0aGlzLG51bGwsRWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVQaWNrZXJDdXJyZW50UHJlZml4ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0samUsV2UpLFZzKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJQcmVmaXhlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVQaWNrZXJQcmVmaXhlcyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVQaWNrZXJQcmVmaXhlcywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVQaWNrZXJQcmVmaXhlcz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sTWUsZ2UpLFZzKHRoaXMsbnVsbCxJZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ibW92ZVBpY2tlckxvYWRpbmciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlUGlja2VyTG9hZGluZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVQaWNrZXJMb2FkaW5nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxjZSxkZSksVnModGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1JlbmFtZURpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InNob3dSZW5hbWVEaWFsb2ciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5zaG93UmVuYW1lRGlhbG9nLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuc2hvd1JlbmFtZURpYWxvZz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sS2UsWWUpLFZzKHRoaXMsbnVsbCxvdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZVNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InJlbmFtZVNvdXJjZSJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnJlbmFtZVNvdXJjZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnJlbmFtZVNvdXJjZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sVXQsWnQpLFZzKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJyZW5hbWVOYW1lImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucmVuYW1lTmFtZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnJlbmFtZU5hbWU9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGV0LGJ0KSxWcyh0aGlzLG51bGwseWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4icmVuYW1lSW5Qcm9ncmVzcyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnJlbmFtZUluUHJvZ3Jlc3MsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5yZW5hbWVJblByb2dyZXNzPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxlcyxycyksVnModGhpcyxudWxsLHBzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lRXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJyZW5hbWVFcnJvciJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnJlbmFtZUVycm9yLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUucmVuYW1lRXJyb3I9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LG5zLHRpKSxWcyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTp6ZX0sbnVsbCx0KSxhaT1hPWUudmFsdWUsemUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6emV9KX0jZT1qdCh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoemUpe3RoaXMuI2U9emV9I3Q9KGp0KHRoaXMsbCksanQodGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZSh6ZSl7dGhpcy4jdD16ZX0jYT0oanQodGhpcyx1KSxqdCh0aGlzLGIsIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNhfXNldCBjdXJyZW50UHJlZml4KHplKXt0aGlzLiNhPXplfSNzPShqdCh0aGlzLHYpLGp0KHRoaXMsbSwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVmcmVzaEtleSh6ZSl7dGhpcy4jcz16ZX0jaT0oanQodGhpcyxmKSxqdCh0aGlzLE0sW10pKTtnZXQgYWxsS2V5cygpe3JldHVybiB0aGlzLiNpfXNldCBhbGxLZXlzKHplKXt0aGlzLiNpPXplfSNyPShqdCh0aGlzLHopLGp0KHRoaXMsQyxbXSkpO2dldCBwcmVmaXhlcygpe3JldHVybiB0aGlzLiNyfXNldCBwcmVmaXhlcyh6ZSl7dGhpcy4jcj16ZX0jbz0oanQodGhpcyxfKSxqdCh0aGlzLCQsITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNvfXNldCBsb2FkaW5nKHplKXt0aGlzLiNvPXplfSNuPShqdCh0aGlzLEUpLGp0KHRoaXMsaywiIikpO2dldCBzZWxlY3RlZEtleSgpe3JldHVybiB0aGlzLiNufXNldCBzZWxlY3RlZEtleSh6ZSl7dGhpcy4jbj16ZX0jbD0oanQodGhpcyxTKSxqdCh0aGlzLFAsIiIpKTtnZXQgZmlsdGVyVGV4dCgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJUZXh0KHplKXt0aGlzLiNsPXplfSNjPShqdCh0aGlzLFIpLGp0KHRoaXMsViwhMSkpO2dldCBzaG93Q3JlYXRlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHNob3dDcmVhdGVEaWFsb2coemUpe3RoaXMuI2M9emV9I2Q9KGp0KHRoaXMsVyksanQodGhpcyxCLCJmb2xkZXIiKSk7Z2V0IGNyZWF0ZURpYWxvZ1R5cGUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY3JlYXRlRGlhbG9nVHlwZSh6ZSl7dGhpcy4jZD16ZX0jdT0oanQodGhpcyxVKSxqdCh0aGlzLEYsIiIpKTtnZXQgY3JlYXRlRGlhbG9nUHJlZml4KCl7cmV0dXJuIHRoaXMuI3V9c2V0IGNyZWF0ZURpYWxvZ1ByZWZpeCh6ZSl7dGhpcy4jdT16ZX0jcD0oanQodGhpcyxqKSxqdCh0aGlzLGxlLCIiKSk7Z2V0IGNyZWF0ZURpYWxvZ05hbWUoKXtyZXR1cm4gdGhpcy4jcH1zZXQgY3JlYXRlRGlhbG9nTmFtZSh6ZSl7dGhpcy4jcD16ZX0jaD0oanQodGhpcyxRKSxqdCh0aGlzLHRlLCExKSk7Z2V0IHNob3dNb3ZlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHNob3dNb3ZlRGlhbG9nKHplKXt0aGlzLiNoPXplfSNmPShqdCh0aGlzLGVlKSxqdCh0aGlzLFgsbnVsbCkpO2dldCBtb3ZlU291cmNlKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IG1vdmVTb3VyY2UoemUpe3RoaXMuI2Y9emV9I209KGp0KHRoaXMsWiksanQodGhpcyxxLCIiKSk7Z2V0IG1vdmVEZXN0aW5hdGlvbigpe3JldHVybiB0aGlzLiNtfXNldCBtb3ZlRGVzdGluYXRpb24oemUpe3RoaXMuI209emV9I2c9KGp0KHRoaXMsQSksanQodGhpcyxvZSwhMSkpO2dldCBtb3ZlSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNnfXNldCBtb3ZlSW5Qcm9ncmVzcyh6ZSl7dGhpcy4jZz16ZX0jYj0oanQodGhpcyxhZSksanQodGhpcyxSZSxudWxsKSk7Z2V0IG1vdmVFcnJvcigpe3JldHVybiB0aGlzLiNifXNldCBtb3ZlRXJyb3IoemUpe3RoaXMuI2I9emV9I3Y9KGp0KHRoaXMsQmUpLGp0KHRoaXMsRGUsITEpKTtnZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coKXtyZXR1cm4gdGhpcy4jdn1zZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coemUpe3RoaXMuI3Y9emV9I3g9KGp0KHRoaXMsX2UpLGp0KHRoaXMsdmUsbnVsbCkpO2dldCBtb3ZlUGlja2VyU291cmNlKCl7cmV0dXJuIHRoaXMuI3h9c2V0IG1vdmVQaWNrZXJTb3VyY2UoemUpe3RoaXMuI3g9emV9I3k9KGp0KHRoaXMsYmUpLGp0KHRoaXMsamUsIiIpKTtnZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jeX1zZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoemUpe3RoaXMuI3k9emV9I3c9KGp0KHRoaXMsV2UpLGp0KHRoaXMsTWUsW10pKTtnZXQgbW92ZVBpY2tlclByZWZpeGVzKCl7cmV0dXJuIHRoaXMuI3d9c2V0IG1vdmVQaWNrZXJQcmVmaXhlcyh6ZSl7dGhpcy4jdz16ZX0jaz0oanQodGhpcyxnZSksanQodGhpcyxjZSwhMSkpO2dldCBtb3ZlUGlja2VyTG9hZGluZygpe3JldHVybiB0aGlzLiNrfXNldCBtb3ZlUGlja2VyTG9hZGluZyh6ZSl7dGhpcy4jaz16ZX0jUz0oanQodGhpcyxkZSksanQodGhpcyxLZSwhMSkpO2dldCBzaG93UmVuYW1lRGlhbG9nKCl7cmV0dXJuIHRoaXMuI1N9c2V0IHNob3dSZW5hbWVEaWFsb2coemUpe3RoaXMuI1M9emV9I189KGp0KHRoaXMsWWUpLGp0KHRoaXMsVXQsbnVsbCkpO2dldCByZW5hbWVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jX31zZXQgcmVuYW1lU291cmNlKHplKXt0aGlzLiNfPXplfSNNPShqdCh0aGlzLFp0KSxqdCh0aGlzLGV0LCIiKSk7Z2V0IHJlbmFtZU5hbWUoKXtyZXR1cm4gdGhpcy4jTX1zZXQgcmVuYW1lTmFtZSh6ZSl7dGhpcy4jTT16ZX0jej0oanQodGhpcyxidCksanQodGhpcyxlcywhMSkpO2dldCByZW5hbWVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI3p9c2V0IHJlbmFtZUluUHJvZ3Jlc3MoemUpe3RoaXMuI3o9emV9I0M9KGp0KHRoaXMscnMpLGp0KHRoaXMsbnMsbnVsbCkpO2dldCByZW5hbWVFcnJvcigpe3JldHVybiB0aGlzLiNDfXNldCByZW5hbWVFcnJvcih6ZSl7dGhpcy4jQz16ZX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMscWUsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAua2V5cy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM0MDQwNDAiKX07CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAua2V5cy1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICB9CgogICAgICB0aGVhZCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMWExYTFhIil9OwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIHRoIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNjY2Iil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMmEyYTNlIil9OwogICAgICB9CgogICAgICB0cjpob3ZlciB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpIil9OwogICAgICB9CgogICAgICB0ci5zZWxlY3RlZCB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5rZXktY2VsbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmtleS1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5rZXktbmFtZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2l6ZS1jZWxsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLmRpYWxvZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMWUxZTFlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtaW4td2lkdGg6IDQwMHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgfQoKICAgICAgLmRpYWxvZy10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWxvY2F0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxNDE0MTQiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1oaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGlhbG9nLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTA1MDUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBNb3ZlIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtc3VtbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLm1vdmUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICB9CgogICAgICAubW92ZS1wYXRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLm1vdmUtZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLyogTW92ZSBwaWNrZXIgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1waWNrZXItZGlhbG9nIHsKICAgICAgICBtaW4td2lkdGg6IDQ1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX11cGRhdGVkKHplKXsoemUuaGFzKCJidWNrZXROYW1lIil8fHplLmhhcygiY3VycmVudFByZWZpeCIpfHx6ZS5oYXMoInJlZnJlc2hLZXkiKSkmJnRoaXMubG9hZE9iamVjdHMoKX1hc3luYyBsb2FkT2JqZWN0cygpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCB6ZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5jdXJyZW50UHJlZml4LCIvIik7dGhpcy5hbGxLZXlzPXplLm9iamVjdHMsdGhpcy5wcmVmaXhlcz16ZS5wcmVmaXhlc31jYXRjaCh6ZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBvYmplY3RzOiIsemUpLHRoaXMuYWxsS2V5cz1bXSx0aGlzLnByZWZpeGVzPVtdfXRoaXMubG9hZGluZz0hMX19aGFuZGxlRmlsdGVySW5wdXQoemUpe3RoaXMuZmlsdGVyVGV4dD16ZS50YXJnZXQudmFsdWV9c2VsZWN0S2V5KHplLHhlKXt0aGlzLnNlbGVjdGVkS2V5PXplLHhlP3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5hdmlnYXRlIix7ZGV0YWlsOntwcmVmaXg6emV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSk6dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5LXNlbGVjdGVkIix7ZGV0YWlsOntrZXk6emV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0IGZpbHRlcmVkSXRlbXMoKXtsZXQgemU9dGhpcy5maWx0ZXJUZXh0LnRvTG93ZXJDYXNlKCkseGU9dGhpcy5wcmVmaXhlcy5maWx0ZXIoeHQ9PiF6ZXx8WWEoeHQpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoemUpKS5tYXAoeHQ9Pih7a2V5Onh0LGlzRm9sZGVyOiEwLHNpemU6dm9pZCAwfSkpLE5lPXRoaXMuYWxsS2V5cy5maWx0ZXIoeHQ9PiF6ZXx8WWEoeHQua2V5KS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHplKSkubWFwKHh0PT4oe2tleTp4dC5rZXksaXNGb2xkZXI6ITEsc2l6ZTp4dC5zaXplfSkpO3JldHVyblsuLi54ZSwuLi5OZV19aGFuZGxlSXRlbUNvbnRleHRNZW51KHplLHhlLE5lKXt0aGlzLmRhdGFQcm92aWRlciYmKHplLnByZXZlbnREZWZhdWx0KCksTmU/JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoemUsW3tuYW1lOiJPcGVuIixpY29uTmFtZToibHVjaWRlOmZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEtleSh4ZSwhMCl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgUGF0aCIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoeGUpfSwiYWN0aW9uIil9LHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5SZW5hbWVEaWFsb2coeGUsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJNb3ZlIHRvLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlcklucHV0IixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5Nb3ZlUGlja2VyRGlhbG9nKHhlLCEwKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTmV3IEZvbGRlciBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLHhlKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIseGUpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbmZpcm0oYERlbGV0ZSBmb2xkZXIgIiR7WWEoeGUpfSIgYW5kIGFsbCBpdHMgY29udGVudHM/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUseGUpJiZhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCl9LCJhY3Rpb24iKX1dKTokYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh6ZSxbe25hbWU6IlByZXZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5zZWxlY3RLZXkoeGUsITEpfSwiYWN0aW9uIil9LHtuYW1lOiJEb3dubG9hZCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCB4dD1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRPYmplY3RVcmwodGhpcy5idWNrZXROYW1lLHhlKSxNYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7TWEuaHJlZj14dCxNYS5kb3dubG9hZD1ZYSh4ZSksTWEuY2xpY2soKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh4ZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyh4ZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coeGUsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZpbGUgIiR7WWEoeGUpfSI/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUseGUpJiZhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KHplKXt6ZS50YXJnZXQuY2xvc2VzdCgidHIiKXx8KHplLnByZXZlbnREZWZhdWx0KCksJGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoemUsW3tuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZm9sZGVyIix0aGlzLmN1cnJlbnRQcmVmaXgpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToibHVjaWRlOmZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZpbGUiLHRoaXMuY3VycmVudFByZWZpeCksImFjdGlvbiIpfV0pKX1vcGVuQ3JlYXRlRGlhbG9nKHplLHhlKXt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9emUsdGhpcy5jcmVhdGVEaWFsb2dQcmVmaXg9eGUsdGhpcy5jcmVhdGVEaWFsb2dOYW1lPSIiLHRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMH1hc3luYyBoYW5kbGVDcmVhdGUoKXtpZighdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgemU9dGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKSx4ZTt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIj94ZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCt6ZSsiLy5rZWVwIjp4ZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCt6ZTtsZXQgTmU9emUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIseHQ9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP3I3KE5lKToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixNYT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/WFEoTmUpOiIiO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUseGUsYnRvYShNYSkseHQpJiYodGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExLGF3YWl0IHRoaXMubG9hZE9iamVjdHMoKSl9cmVuZGVyQ3JlYXRlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd0NyZWF0ZURpYWxvZylyZXR1cm4iIjtsZXQgemU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciIseGU9emU/IkNyZWF0ZSBOZXcgRm9sZGVyIjoiQ3JlYXRlIE5ldyBGaWxlIixOZT16ZT8iZm9sZGVyLW5hbWUgb3IgcGF0aC90by9mb2xkZXIiOiJmaWxlbmFtZS50eHQgb3IgcGF0aC90by9maWxlLnR4dCI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke3h0PT54dC5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7eGV9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXh9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke05lfQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNyZWF0ZURpYWxvZ05hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke3h0PT50aGlzLmNyZWF0ZURpYWxvZ05hbWU9eHQudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICBAa2V5ZG93bj0ke3h0PT54dC5rZXk9PT0iRW50ZXIiJiZ0aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1oaW50Ij4KICAgICAgICAgICAgVXNlICIvIiB0byBjcmVhdGUgbmVzdGVkICR7emU/ImZvbGRlcnMiOiJwYXRoIn0gKGUuZy4sICR7emU/InBhcmVudC9jaGlsZCI6ImZvbGRlci9maWxlLnR4dCJ9KQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfQogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ3JlYXRlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBvcGVuTW92ZVBpY2tlckRpYWxvZyh6ZSx4ZSl7dGhpcy5tb3ZlUGlja2VyU291cmNlPXtrZXk6emUsaXNGb2xkZXI6eGV9LHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMCxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoIiIpfWFzeW5jIG5hdmlnYXRlTW92ZVBpY2tlcih6ZSl7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD16ZSxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoemUpfWFzeW5jIGxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoemUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSEwO3RyeXtsZXQgeGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLHplLCIvIik7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9eGUucHJlZml4ZXN9Y2F0Y2h7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119dGhpcy5tb3ZlUGlja2VyTG9hZGluZz0hMX19c2VsZWN0TW92ZURlc3RpbmF0aW9uKHplKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2UmJih0aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpLHRoaXMuaW5pdGlhdGVNb3ZlKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXksdGhpcy5tb3ZlUGlja2VyU291cmNlLmlzRm9sZGVyLHplKSl9Y2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl7dGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMSx0aGlzLm1vdmVQaWNrZXJTb3VyY2U9bnVsbCx0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PSIiLHRoaXMubW92ZVBpY2tlclByZWZpeGVzPVtdfWluaXRpYXRlTW92ZSh6ZSx4ZSxOZSl7bGV0IHh0PVpRKHplLE5lKTtpZigheHQudmFsaWQpe3RoaXMubW92ZVNvdXJjZT17a2V5OnplLGlzRm9sZGVyOnhlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1OZSx0aGlzLm1vdmVFcnJvcj14dC5lcnJvcix0aGlzLnNob3dNb3ZlRGlhbG9nPSEwO3JldHVybn10aGlzLm1vdmVTb3VyY2U9e2tleTp6ZSxpc0ZvbGRlcjp4ZX0sdGhpcy5tb3ZlRGVzdGluYXRpb249TmUsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLnNob3dNb3ZlRGlhbG9nPSEwfWFzeW5jIGV4ZWN1dGVNb3ZlKCl7aWYoISghdGhpcy5tb3ZlU291cmNlfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLm1vdmVJblByb2dyZXNzPSEwO3RyeXtsZXQgemU9WWEodGhpcy5tb3ZlU291cmNlLmtleSkseGU9dGhpcy5tb3ZlRGVzdGluYXRpb24remUsTmU7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyP05lPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXkseGUpOk5lPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXkseGUpLE5lLnN1Y2Nlc3M/KHRoaXMuY2xvc2VNb3ZlRGlhbG9nKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKTp0aGlzLm1vdmVFcnJvcj1OZS5lcnJvcnx8Ik1vdmUgb3BlcmF0aW9uIGZhaWxlZCJ9Y2F0Y2goemUpe3RoaXMubW92ZUVycm9yPWBFcnJvcjogJHt6ZX1gfXRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9fWNsb3NlTW92ZURpYWxvZygpe3RoaXMuc2hvd01vdmVEaWFsb2c9ITEsdGhpcy5tb3ZlU291cmNlPW51bGwsdGhpcy5tb3ZlRGVzdGluYXRpb249IiIsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLm1vdmVJblByb2dyZXNzPSExfW9wZW5SZW5hbWVEaWFsb2coemUseGUpe3RoaXMucmVuYW1lU291cmNlPXtrZXk6emUsaXNGb2xkZXI6eGV9LHRoaXMucmVuYW1lTmFtZT1ZYSh6ZSksdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMuc2hvd1JlbmFtZURpYWxvZz0hMCx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgTmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucmVuYW1lLWRpYWxvZy1pbnB1dCIpO2lmKE5lKWlmKE5lLmZvY3VzKCkseGUpTmUuc2VsZWN0KCk7ZWxzZXtsZXQgeHQ9dGhpcy5yZW5hbWVOYW1lLmxhc3RJbmRleE9mKCIuIik7eHQ+MD9OZS5zZXRTZWxlY3Rpb25SYW5nZSgwLHh0KTpOZS5zZWxlY3QoKX19KX1hc3luYyBleGVjdXRlUmVuYW1lKCl7aWYoIXRoaXMucmVuYW1lU291cmNlfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgemU9dGhpcy5yZW5hbWVOYW1lLnRyaW0oKSx4ZT1ZYSh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpO2lmKHplPT09eGUpe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudCI7cmV0dXJufWlmKCF6ZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBjYW5ub3QgYmUgZW1wdHkiO3JldHVybn1pZih6ZS5pbmNsdWRlcygiLyIpKXt0aGlzLnJlbmFtZUVycm9yPSdOYW1lIGNhbm5vdCBjb250YWluICIvIic7cmV0dXJufXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMCx0aGlzLnJlbmFtZUVycm9yPW51bGw7dHJ5e2xldCB4dD1KZCh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpK3plKyh0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLE1hO3RoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyP01hPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSx4dCk6TWE9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LHh0KSxNYS5zdWNjZXNzPyh0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKTp0aGlzLnJlbmFtZUVycm9yPU1hLmVycm9yfHwiUmVuYW1lIGZhaWxlZCJ9Y2F0Y2goTmUpe3RoaXMucmVuYW1lRXJyb3I9YEVycm9yOiAke05lfWB9dGhpcy5yZW5hbWVJblByb2dyZXNzPSExfWNsb3NlUmVuYW1lRGlhbG9nKCl7dGhpcy5zaG93UmVuYW1lRGlhbG9nPSExLHRoaXMucmVuYW1lU291cmNlPW51bGwsdGhpcy5yZW5hbWVOYW1lPSIiLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9cmVuZGVyUmVuYW1lRGlhbG9nKCl7aWYoIXRoaXMuc2hvd1JlbmFtZURpYWxvZ3x8IXRoaXMucmVuYW1lU291cmNlKXJldHVybiIiO2xldCB6ZT10aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7TmU9Pk5lLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHt6ZT8iUmVuYW1lIEZvbGRlciI6IlJlbmFtZSBGaWxlIn08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHtKZCh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuYW1lRXJyb3I/d2A8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMucmVuYW1lRXJyb3J9PC9kaXY+YDoiIn0KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IHJlbmFtZS1kaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7emU/ImZvbGRlci1uYW1lIjoiZmlsZW5hbWUuZXh0In0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5yZW5hbWVOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtOZT0+e3RoaXMucmVuYW1lTmFtZT1OZS50YXJnZXQudmFsdWUsdGhpcy5yZW5hbWVFcnJvcj1udWxsfX0KICAgICAgICAgICAgQGtleWRvd249JHtOZT0+e05lLmtleT09PSJFbnRlciImJnRoaXMuZXhlY3V0ZVJlbmFtZSgpLE5lLmtleT09PSJFc2NhcGUiJiZ0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc30+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZVJlbmFtZSgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc3x8IXRoaXMucmVuYW1lTmFtZS50cmltKCl9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5hbWVJblByb2dyZXNzPyJSZW5hbWluZy4uLiI6IlJlbmFtZSJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVEaWFsb2d8fCF0aGlzLm1vdmVTb3VyY2UpcmV0dXJuIiI7bGV0IHplPVlhKHRoaXMubW92ZVNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7eGU9PnhlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAke3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iRm9sZGVyIjoiRmlsZSJ9PC9kaXY+CgogICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMubW92ZUVycm9yfTwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLXN1bW1hcnkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+RnJvbTo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZVNvdXJjZS5rZXl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+VG86PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVEZXN0aW5hdGlvbn0ke3plfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/IiI6d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZU1vdmUoKX0KICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgICAgJHt0aGlzLm1vdmVJblByb2dyZXNzPyJNb3ZpbmcuLi4iOiJNb3ZlIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZVBpY2tlckRpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nfHwhdGhpcy5tb3ZlUGlja2VyU291cmNlKXJldHVybiIiO2xldCB6ZT1ZYSh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KSx4ZT1KZCh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2cgbW92ZS1waWNrZXItZGlhbG9nIiBAY2xpY2s9JHtOZT0+TmUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICIke3plfSIgdG8uLi48L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcigiIil9PgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7engodGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCkubWFwKE5lPT53YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihOZSl9PgogICAgICAgICAgICAgICAgJHtZYShOZSl9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nP3dgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5Mb2FkaW5nLi4uPC9kaXY+YDoiIn0KICAgICAgICAgICAgJHshdGhpcy5tb3ZlUGlja2VyTG9hZGluZyYmdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKE5lPT5OZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPk5vIHN1YmZvbGRlcnM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoTmU9Pk5lIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubWFwKE5lPT53YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWl0ZW0iCiAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihOZSl9CiAgICAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbihOZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtZYShOZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9PT14ZX0+CiAgICAgICAgICAgICAgTW92ZSBIZXJlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ia2V5cy1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJGaWx0ZXIgZmlsZXMuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZmlsdGVyVGV4dH0KICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVGaWx0ZXJJbnB1dH0KICAgICAgICAgIC8+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImtleXMtbGlzdCIgQGNvbnRleHRtZW51PSR7emU9PnRoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KHplKX0+CiAgICAgICAgICAke3RoaXMubG9hZGluZz93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5Mb2FkaW5nLi4uPC9kaXY+YDp0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBvYmplY3RzIGZvdW5kPC9kaXY+YDp3YAogICAgICAgICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDEwMHB4OyI+U2l6ZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmZpbHRlcmVkSXRlbXMubWFwKHplPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgIDx0cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5zZWxlY3RlZEtleT09PXplLmtleT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEtleSh6ZS5rZXksemUuaXNGb2xkZXIpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7eGU9PnRoaXMuaGFuZGxlSXRlbUNvbnRleHRNZW51KHhlLHplLmtleSx6ZS5pc0ZvbGRlcil9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZXktY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt6ZS5pc0ZvbGRlcj93YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImtleS1pY29uIGZvbGRlci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJrZXktaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleS1uYW1lIj4ke1lhKHplLmtleSl9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InNpemUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7emUuaXNGb2xkZXI/Ii0iOllRKHplLnNpemUpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5yZW5kZXJDcmVhdGVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVQaWNrZXJEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlclJlbmFtZURpYWxvZygpfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksanQodGhpcyx0aSl9c3RhdGlje2p0KGEsdCl9fTtyZXR1cm4gYWk9YX0pKCl9KTt2YXIgRWwsUXMsVGVzLGxsdD1nKCgpPT57cGUoKTtodCgpO1FRKCk7RWw9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFFzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxUZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0b3JhZ2UtcHJldmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXTt2YXIgaWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlUHJldmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCB0ZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtZKCldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLEVsKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZGF0YVByb3ZpZGVyImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZGF0YVByb3ZpZGVyLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuZGF0YVByb3ZpZGVyPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxvLGwpLEVsKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnVja2V0TmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImJ1Y2tldE5hbWUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5idWNrZXROYW1lLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuYnVja2V0TmFtZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sZCx1KSxFbCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9iamVjdEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im9iamVjdEtleSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm9iamVjdEtleSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLm9iamVjdEtleT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sYix2KSxFbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJsb2FkaW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUubG9hZGluZywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmxvYWRpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LG0sZiksRWwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzYXZpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJzYXZpbmciaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5zYXZpbmcsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5zYXZpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LE0seiksRWwodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iY29udGVudCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmNvbnRlbnQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5jb250ZW50PWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxDLF8pLEVsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3JpZ2luYWxUZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im9yaWdpbmFsVGV4dENvbnRlbnQiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5vcmlnaW5hbFRleHRDb250ZW50LCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUub3JpZ2luYWxUZXh0Q29udGVudD1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sJCxFKSxFbCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0NoYW5nZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJoYXNDaGFuZ2VzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaGFzQ2hhbmdlcywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmhhc0NoYW5nZXM9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGssUyksRWwodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZWRpdGluZyJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmVkaXRpbmcsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5lZGl0aW5nPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxQLFIpLEVsKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJjb250ZW50VHlwZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmNvbnRlbnRUeXBlLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuY29udGVudFR5cGU9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LFYsVyksRWwodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJmaWxlU2l6ZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuZmlsZVNpemU9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEIsVSksRWwodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFzdE1vZGlmaWVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibGFzdE1vZGlmaWVkImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUubGFzdE1vZGlmaWVkLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUubGFzdE1vZGlmaWVkPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxGLGopLEVsKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZXJyb3IiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5lcnJvciwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmVycm9yPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxsZSxRKSxFbChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTp0ZX0sbnVsbCx0KSxpZT1hPWUudmFsdWUsdGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dGV9KX0jZT1Rcyh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIodGUpe3RoaXMuI2U9dGV9I3Q9KFFzKHRoaXMsbCksUXModGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZSh0ZSl7dGhpcy4jdD10ZX0jYT0oUXModGhpcyx1KSxRcyh0aGlzLGIsIiIpKTtnZXQgb2JqZWN0S2V5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9iamVjdEtleSh0ZSl7dGhpcy4jYT10ZX0jcz0oUXModGhpcyx2KSxRcyh0aGlzLG0sITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNzfXNldCBsb2FkaW5nKHRlKXt0aGlzLiNzPXRlfSNpPShRcyh0aGlzLGYpLFFzKHRoaXMsTSwhMSkpO2dldCBzYXZpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2F2aW5nKHRlKXt0aGlzLiNpPXRlfSNyPShRcyh0aGlzLHopLFFzKHRoaXMsQywiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbnRlbnQodGUpe3RoaXMuI3I9dGV9I289KFFzKHRoaXMsXyksUXModGhpcywkLCIiKSk7Z2V0IG9yaWdpbmFsVGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jb31zZXQgb3JpZ2luYWxUZXh0Q29udGVudCh0ZSl7dGhpcy4jbz10ZX0jbj0oUXModGhpcyxFKSxRcyh0aGlzLGssITEpKTtnZXQgaGFzQ2hhbmdlcygpe3JldHVybiB0aGlzLiNufXNldCBoYXNDaGFuZ2VzKHRlKXt0aGlzLiNuPXRlfSNsPShRcyh0aGlzLFMpLFFzKHRoaXMsUCwhMSkpO2dldCBlZGl0aW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGVkaXRpbmcodGUpe3RoaXMuI2w9dGV9I2M9KFFzKHRoaXMsUiksUXModGhpcyxWLCIiKSk7Z2V0IGNvbnRlbnRUeXBlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNvbnRlbnRUeXBlKHRlKXt0aGlzLiNjPXRlfSNkPShRcyh0aGlzLFcpLFFzKHRoaXMsQiwwKSk7Z2V0IGZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGZpbGVTaXplKHRlKXt0aGlzLiNkPXRlfSN1PShRcyh0aGlzLFUpLFFzKHRoaXMsRiwiIikpO2dldCBsYXN0TW9kaWZpZWQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbGFzdE1vZGlmaWVkKHRlKXt0aGlzLiN1PXRlfSNwPShRcyh0aGlzLGopLFFzKHRoaXMsbGUsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXJyb3IodGUpe3RoaXMuI3A9dGV9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLHFlLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAucHJldmlldy1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5tZXRhLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50IGRlZXMtcHJldmlldyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50LmNvZGUtZWRpdG9yIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQuY29kZS1lZGl0b3IgZGVlcy1pbnB1dC1jb2RlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0biB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0MDQwNDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2UwZTBlMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICBib3JkZXItY29sb3I6ICNlZjQ0NDQ7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2I4MmY2OwogICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC40KTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4ucHJpbWFyeTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnVuc2F2ZWQtaW5kaWNhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTEsIDE5MSwgMzYsIDAuMyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnVuc2F2ZWQtZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmJiZjI0OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgc3ZnIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5lcnJvci1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgIGBdO3VwZGF0ZWQodGUpeyh0ZS5oYXMoIm9iamVjdEtleSIpfHx0ZS5oYXMoImJ1Y2tldE5hbWUiKSkmJih0aGlzLm9iamVjdEtleT90aGlzLmxvYWRPYmplY3QoKToodGhpcy5jb250ZW50PSIiLHRoaXMuY29udGVudFR5cGU9IiIsdGhpcy5lcnJvcj0iIix0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnQ9IiIsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMSkpfWFzeW5jIGxvYWRPYmplY3QoKXtpZighKCF0aGlzLm9iamVjdEtleXx8IXRoaXMuYnVja2V0TmFtZXx8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMTt0cnl7bGV0IHRlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmdldE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5vYmplY3RLZXkpO2lmKCF0ZSl7dGhpcy5lcnJvcj0iT2JqZWN0IG5vdCBmb3VuZCIsdGhpcy5sb2FkaW5nPSExO3JldHVybn10aGlzLmNvbnRlbnQ9dGUuY29udGVudHx8IiIsdGhpcy5jb250ZW50VHlwZT10ZS5jb250ZW50VHlwZXx8IiIsdGhpcy5maWxlU2l6ZT10ZS5zaXplfHwwLHRoaXMubGFzdE1vZGlmaWVkPXRlLmxhc3RNb2RpZmllZHx8IiIsdGhpcy5pc1RleHQoKSYmKHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD10aGlzLmdldFRleHRDb250ZW50KCkpfWNhdGNoKHRlKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIG9iamVjdDoiLHRlKSx0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBvYmplY3QifXRoaXMubG9hZGluZz0hMX19Zm9ybWF0RGF0ZSh0ZSl7cmV0dXJuIHRlP25ldyBEYXRlKHRlKS50b0xvY2FsZVN0cmluZygpOiItIn1pc0ltYWdlKCl7cmV0dXJuIHRoaXMuY29udGVudFR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIil9aXNUZXh0KCl7cmV0dXJuIHRoaXMuY29udGVudFR5cGUuc3RhcnRzV2l0aCgidGV4dC8iKXx8dGhpcy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi9qc29uInx8dGhpcy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94bWwifHx0aGlzLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifWdldFRleHRDb250ZW50KCl7dHJ5e2xldCB0ZT1hdG9iKHRoaXMuY29udGVudCksZWU9bmV3IFVpbnQ4QXJyYXkodGUubGVuZ3RoKTtmb3IobGV0IGtlPTA7a2U8dGUubGVuZ3RoO2tlKyspZWVba2VdPXRlLmNoYXJDb2RlQXQoa2UpO3JldHVybiBuZXcgVGV4dERlY29kZXIoInV0Zi04IikuZGVjb2RlKGVlKX1jYXRjaHtyZXR1cm4iVW5hYmxlIHRvIGRlY29kZSBjb250ZW50In19YXN5bmMgaGFuZGxlRG93bmxvYWQoKXt0cnl7bGV0IHRlPW5ldyBCbG9iKFtVaW50OEFycmF5LmZyb20oYXRvYih0aGlzLmNvbnRlbnQpLFg9PlguY2hhckNvZGVBdCgwKSldLHt0eXBlOnRoaXMuY29udGVudFR5cGV9KSxlZT1VUkwuY3JlYXRlT2JqZWN0VVJMKHRlKSxrZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7a2UuaHJlZj1lZSxrZS5kb3dubG9hZD1ZYSh0aGlzLm9iamVjdEtleSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChrZSksa2UuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGtlKSxVUkwucmV2b2tlT2JqZWN0VVJMKGVlKX1jYXRjaCh0ZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgZG93bmxvYWRpbmc6Iix0ZSl9fWFzeW5jIGhhbmRsZURlbGV0ZSgpe2lmKHRoaXMuZGF0YVByb3ZpZGVyJiZjb25maXJtKGBEZWxldGUgIiR7WWEodGhpcy5vYmplY3RLZXkpfSI/YCkpdHJ5e2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5vYmplY3RLZXkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm9iamVjdC1kZWxldGVkIix7ZGV0YWlsOntrZXk6dGhpcy5vYmplY3RLZXl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2godGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRlbGV0aW5nIG9iamVjdDoiLHRlKX19Z2V0TGFuZ3VhZ2UoKXtsZXQgdGU9dGhpcy5vYmplY3RLZXkuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiI7cmV0dXJue3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLG1qczoiamF2YXNjcmlwdCIsY2pzOiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixodG06Imh0bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixzYXNzOiJzY3NzIixsZXNzOiJsZXNzIixtZDoibWFya2Rvd24iLG1hcmtkb3duOiJtYXJrZG93biIseG1sOiJ4bWwiLHlhbWw6InlhbWwiLHltbDoieWFtbCIscHk6InB5dGhvbiIscmI6InJ1YnkiLGdvOiJnbyIscnM6InJ1c3QiLGphdmE6ImphdmEiLGM6ImMiLGNwcDoiY3BwIixoOiJjIixocHA6ImNwcCIsY3M6ImNzaGFycCIscGhwOiJwaHAiLHNoOiJzaGVsbCIsYmFzaDoic2hlbGwiLHpzaDoic2hlbGwiLHNxbDoic3FsIixncmFwaHFsOiJncmFwaHFsIixncWw6ImdyYXBocWwiLGRvY2tlcmZpbGU6ImRvY2tlcmZpbGUiLHR4dDoicGxhaW50ZXh0In1bdGVdfHwicGxhaW50ZXh0In1oYW5kbGVDb250ZW50Q2hhbmdlKHRlKXtsZXQgZWU9dGUuZGV0YWlsO3RoaXMuaGFzQ2hhbmdlcz1lZSE9PXRoaXMub3JpZ2luYWxUZXh0Q29udGVudH1oYW5kbGVFZGl0KCl7dGhpcy5lZGl0aW5nPSEwfWhhbmRsZURpc2NhcmQoKXtsZXQgdGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWNvZGUiKTt0ZSYmKHRlLnZhbHVlPXRoaXMub3JpZ2luYWxUZXh0Q29udGVudCksdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMX1hc3luYyBoYW5kbGVTYXZlKCl7aWYoISghdGhpcy5oYXNDaGFuZ2VzfHx0aGlzLnNhdmluZ3x8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5zYXZpbmc9ITA7dHJ5e2xldCBlZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtY29kZSIpPy52YWx1ZT8/IiIsWD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZWUpLFo9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLlgpKTthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMub2JqZWN0S2V5LFosdGhpcy5jb250ZW50VHlwZSkmJih0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnQ9ZWUsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMSx0aGlzLmNvbnRlbnQ9Wil9Y2F0Y2godGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHNhdmluZyBvYmplY3Q6Iix0ZSl9dGhpcy5zYXZpbmc9ITF9fXJlbmRlcigpe3JldHVybiB0aGlzLm9iamVjdEtleT90aGlzLmxvYWRpbmc/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXN0YXRlIj5Mb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvcj93YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLXN0YXRlIj4ke3RoaXMuZXJyb3J9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctdGl0bGUiPiR7WWEodGhpcy5vYmplY3RLZXkpfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1tZXRhIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtaXRlbSI+JHt0aGlzLmNvbnRlbnRUeXBlfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtaXRlbSI+JHtZUSh0aGlzLmZpbGVTaXplKX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLWl0ZW0iPiR7dGhpcy5mb3JtYXREYXRlKHRoaXMubGFzdE1vZGlmaWVkKX08L3NwYW4+CiAgICAgICAgICAgICR7dGhpcy5oYXNDaGFuZ2VzP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVuc2F2ZWQtaW5kaWNhdG9yIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1bnNhdmVkLWRvdCI+PC9zcGFuPgogICAgICAgICAgICAgICAgVW5zYXZlZCBjaGFuZ2VzCiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGVudCAke3RoaXMuZWRpdGluZz8iY29kZS1lZGl0b3IiOiIifSI+CiAgICAgICAgICAke3RoaXMuZWRpdGluZz93YAogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtY29kZQogICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnR9CiAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZ2V0TGFuZ3VhZ2UoKX0KICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0ZT0+dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlKHRlKX0KICAgICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY29kZT4KICAgICAgICAgICAgICBgOnRoaXMuaXNUZXh0KCk/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtcHJldmlldwogICAgICAgICAgICAgICAgICAgIC50ZXh0Q29udGVudD0ke3RoaXMub3JpZ2luYWxUZXh0Q29udGVudH0KICAgICAgICAgICAgICAgICAgICAuZmlsZW5hbWU9JHtZYSh0aGlzLm9iamVjdEtleSl9CiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5nZXRMYW5ndWFnZSgpfQogICAgICAgICAgICAgICAgICAgIC5zaG93VG9vbGJhcj0keyEwfQogICAgICAgICAgICAgICAgICAgIC5zaG93RmlsZW5hbWU9JHshMX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLmJhc2U2ND0ke3RoaXMuY29udGVudH0KICAgICAgICAgICAgICAgICAgICAubWltZVR5cGU9JHt0aGlzLmNvbnRlbnRUeXBlfQogICAgICAgICAgICAgICAgICAgIC5maWxlbmFtZT0ke1lhKHRoaXMub2JqZWN0S2V5KX0KICAgICAgICAgICAgICAgICAgICAuc2hvd1Rvb2xiYXI9JHshMH0KICAgICAgICAgICAgICAgICAgICAuc2hvd0ZpbGVuYW1lPSR7ITF9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtcHJldmlldz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctYWN0aW9ucyI+CiAgICAgICAgICAke3RoaXMuZWRpdGluZz93YAogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biBzZWNvbmRhcnkiIEBjbGljaz0ke3RoaXMuaGFuZGxlRGlzY2FyZH0+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5oYXNDaGFuZ2VzPyJEaXNjYXJkIjoiQ2FuY2VsIn0KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0iYWN0aW9uLWJ0biBwcmltYXJ5IgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNhdmV9CiAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuc2F2aW5nfHwhdGhpcy5oYXNDaGFuZ2VzfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke3RoaXMuc2F2aW5nPyJTYXZpbmcuLi4iOiJTYXZlIn0KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICR7dGhpcy5pc1RleHQoKT93YDxidXR0b24gY2xhc3M9ImFjdGlvbi1idG4iIEBjbGljaz0ke3RoaXMuaGFuZGxlRWRpdH0+RWRpdDwvYnV0dG9uPmA6IiJ9CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIiBAY2xpY2s9JHt0aGlzLmhhbmRsZURvd25sb2FkfT5Eb3dubG9hZDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biBkYW5nZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlRGVsZXRlfT5EZWxldGU8L2J1dHRvbj4KICAgICAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGA6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6IiAvPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE0IDIgMTQgOCAyMCA4IiAvPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPHA+U2VsZWN0IGEgZmlsZSB0byBwcmV2aWV3PC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFFzKHRoaXMsUSl9c3RhdGlje1FzKGEsdCl9fTtyZXR1cm4gaWU9YX0pKCl9KTt2YXIgdDEsQWksJGVzLHJsdD1nKCgpPT57cGUoKTtodCgpO2Z5YSgpO29sdCgpO25sdCgpO2xsdCgpO3QxPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxBaT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sJGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zdG9yYWdlLWJyb3dzZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W107dmFyIGhlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3RvcmFnZUJyb3dzZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgRj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtZKCldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLHQxKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJkYXRhUHJvdmlkZXIiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChqLHVlKT0+e2ouZGF0YVByb3ZpZGVyPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG8sbCksdDEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJidWNrZXROYW1lImluIGosImhhcyIpLGdldDppKGo9PmouYnVja2V0TmFtZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5idWNrZXROYW1lPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGQsdSksdDEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkNoYW5nZUV2ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJvbkNoYW5nZUV2ZW50ImluIGosImhhcyIpLGdldDppKGo9Pmoub25DaGFuZ2VFdmVudCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5vbkNoYW5nZUV2ZW50PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGIsdiksdDEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4idmlld1R5cGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai52aWV3VHlwZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai52aWV3VHlwZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxtLGYpLHQxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iY3VycmVudFByZWZpeCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmN1cnJlbnRQcmVmaXgsImdldCIpLHNldDppKChqLHVlKT0+e2ouY3VycmVudFByZWZpeD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxNLHopLHQxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InNlbGVjdGVkS2V5ImluIGosImhhcyIpLGdldDppKGo9Pmouc2VsZWN0ZWRLZXksImdldCIpLHNldDppKChqLHVlKT0+e2ouc2VsZWN0ZWRLZXk9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQyxfKSx0MSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InJlZnJlc2hLZXkiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5yZWZyZXNoS2V5LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnJlZnJlc2hLZXk9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sJCxFKSx0MSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4icHJldmlld1dpZHRoImluIGosImhhcyIpLGdldDppKGo9PmoucHJldmlld1dpZHRoLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnByZXZpZXdXaWR0aD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxrLFMpLHQxKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNSZXNpemluZ1ByZXZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzUmVzaXppbmdQcmV2aWV3ImluIGosImhhcyIpLGdldDppKGo9PmouaXNSZXNpemluZ1ByZXZpZXcsImdldCIpLHNldDppKChqLHVlKT0+e2ouaXNSZXNpemluZ1ByZXZpZXc9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sUCxSKSx0MSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlY2VudENoYW5nZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJyZWNlbnRDaGFuZ2VDb3VudCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnJlY2VudENoYW5nZUNvdW50LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnJlY2VudENoYW5nZUNvdW50PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFYsVyksdDEodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNTdHJlYW1Db25uZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzU3RyZWFtQ29ubmVjdGVkImluIGosImhhcyIpLGdldDppKGo9PmouaXNTdHJlYW1Db25uZWN0ZWQsImdldCIpLHNldDppKChqLHVlKT0+e2ouaXNTdHJlYW1Db25uZWN0ZWQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQixVKSx0MShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpGfSxudWxsLHQpLGhlPWE9ZS52YWx1ZSxGJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkZ9KX1zdGF0aWMgZGVtbz1oeWE7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1BaSh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoRil7dGhpcy4jZT1GfSN0PShBaSh0aGlzLGwpLEFpKHRoaXMsZCwiIikpO2dldCBidWNrZXROYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJ1Y2tldE5hbWUoRil7dGhpcy4jdD1GfSNhPShBaSh0aGlzLHUpLEFpKHRoaXMsYixudWxsKSk7Z2V0IG9uQ2hhbmdlRXZlbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb25DaGFuZ2VFdmVudChGKXt0aGlzLiNhPUZ9I3M9KEFpKHRoaXMsdiksQWkodGhpcyxtLCJjb2x1bW5zIikpO2dldCB2aWV3VHlwZSgpe3JldHVybiB0aGlzLiNzfXNldCB2aWV3VHlwZShGKXt0aGlzLiNzPUZ9I2k9KEFpKHRoaXMsZiksQWkodGhpcyxNLCIiKSk7Z2V0IGN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VycmVudFByZWZpeChGKXt0aGlzLiNpPUZ9I3I9KEFpKHRoaXMseiksQWkodGhpcyxDLCIiKSk7Z2V0IHNlbGVjdGVkS2V5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGVkS2V5KEYpe3RoaXMuI3I9Rn0jbz0oQWkodGhpcyxfKSxBaSh0aGlzLCQsMCkpO2dldCByZWZyZXNoS2V5KCl7cmV0dXJuIHRoaXMuI299c2V0IHJlZnJlc2hLZXkoRil7dGhpcy4jbz1GfSNuPShBaSh0aGlzLEUpLEFpKHRoaXMsayw3MDApKTtnZXQgcHJldmlld1dpZHRoKCl7cmV0dXJuIHRoaXMuI259c2V0IHByZXZpZXdXaWR0aChGKXt0aGlzLiNuPUZ9I2w9KEFpKHRoaXMsUyksQWkodGhpcyxQLCExKSk7Z2V0IGlzUmVzaXppbmdQcmV2aWV3KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzUmVzaXppbmdQcmV2aWV3KEYpe3RoaXMuI2w9Rn0jYz0oQWkodGhpcyxSKSxBaSh0aGlzLFYsMCkpO2dldCByZWNlbnRDaGFuZ2VDb3VudCgpe3JldHVybiB0aGlzLiNjfXNldCByZWNlbnRDaGFuZ2VDb3VudChGKXt0aGlzLiNjPUZ9I2Q9KEFpKHRoaXMsVyksQWkodGhpcyxCLCExKSk7Z2V0IGlzU3RyZWFtQ29ubmVjdGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzU3RyZWFtQ29ubmVjdGVkKEYpe3RoaXMuI2Q9Rn1jaGFuZ2VVbnN1YnNjcmliZT0oQWkodGhpcyxVKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMscWUsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmJyb3dzZXItY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM5OTkiKX07CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLWl0ZW0gewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC52aWV3LXRvZ2dsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnZpZXctYnRuIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC52aWV3LWJ0bjpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLnZpZXctYnRuLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM0MDQwNDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmNvbnRlbnQuaGFzLXByZXZpZXcgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDRweCB2YXIoLS1wcmV2aWV3LXdpZHRoLCA3MDBweCk7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtZGl2aWRlciB7CiAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAucmVzaXplLWRpdmlkZXI6aG92ZXIsCiAgICAgIC5yZXNpemUtZGl2aWRlci5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5tYWluLXZpZXcgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctcGFuZWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmNvbnRlbnQsCiAgICAgICAgLmNvbnRlbnQuaGFzLXByZXZpZXcgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQoKICAgICAgICAucHJldmlldy1wYW5lbCwKICAgICAgICAucmVzaXplLWRpdmlkZXIgewogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zdHJlYW0tc3RhdHVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAuc3RyZWFtLWRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjODg4Iil9OwogICAgICB9CgogICAgICAuc3RyZWFtLWRvdC5jb25uZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIC5jaGFuZ2UtaW5kaWNhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLmNoYW5nZS1pbmRpY2F0b3IucHVsc2UgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2Utb3JhbmdlIDFzIGVhc2UtaW4tb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlLW9yYW5nZSB7CiAgICAgICAgMCUgeyBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC40KTsgfQogICAgICAgIDEwMCUgeyBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKTsgfQogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy51bnN1YnNjcmliZUZyb21DaGFuZ2VzKCl9cmVmcmVzaCgpe3RoaXMucmVmcmVzaEtleSsrfXNldFZpZXdUeXBlKEYpe3RoaXMudmlld1R5cGU9Rn1uYXZpZ2F0ZVRvUHJlZml4KEYpe3RoaXMuY3VycmVudFByZWZpeD1GLHRoaXMuc2VsZWN0ZWRLZXk9IiJ9aGFuZGxlS2V5U2VsZWN0ZWQoRil7dGhpcy5zZWxlY3RlZEtleT1GLmRldGFpbC5rZXl9aGFuZGxlTmF2aWdhdGUoRil7dGhpcy5uYXZpZ2F0ZVRvUHJlZml4KEYuZGV0YWlsLnByZWZpeCl9aGFuZGxlT2JqZWN0RGVsZXRlZChGKXt0aGlzLnNlbGVjdGVkS2V5PSIiLHRoaXMucmVmcmVzaEtleSsrfXVwZGF0ZWQoRil7Ri5oYXMoImJ1Y2tldE5hbWUiKSYmKHRoaXMuc2VsZWN0ZWRLZXk9IiIsdGhpcy5jdXJyZW50UHJlZml4PSIiLHRoaXMucmVjZW50Q2hhbmdlQ291bnQ9MCx0aGlzLnVuc3Vic2NyaWJlRnJvbUNoYW5nZXMoKSx0aGlzLnN1YnNjcmliZVRvQ2hhbmdlcygpKSxGLmhhcygib25DaGFuZ2VFdmVudCIpJiYodGhpcy51bnN1YnNjcmliZUZyb21DaGFuZ2VzKCksdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKSl9c3Vic2NyaWJlVG9DaGFuZ2VzKCl7aWYoIXRoaXMub25DaGFuZ2VFdmVudCl7dGhpcy5pc1N0cmVhbUNvbm5lY3RlZD0hMTtyZXR1cm59dHJ5e3RoaXMuY2hhbmdlVW5zdWJzY3JpYmU9dGhpcy5vbkNoYW5nZUV2ZW50KEY9Pnt0aGlzLmhhbmRsZUNoYW5nZShGKX0pLHRoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITB9Y2F0Y2goRil7Y29uc29sZS53YXJuKCJbU3RvcmFnZUJyb3dzZXJdIEZhaWxlZCB0byBzdWJzY3JpYmUgdG8gY2hhbmdlczoiLEYpLHRoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITF9fXVuc3Vic2NyaWJlRnJvbUNoYW5nZXMoKXt0aGlzLmNoYW5nZVVuc3Vic2NyaWJlJiYodGhpcy5jaGFuZ2VVbnN1YnNjcmliZSgpLHRoaXMuY2hhbmdlVW5zdWJzY3JpYmU9bnVsbCksdGhpcy5pc1N0cmVhbUNvbm5lY3RlZD0hMX1oYW5kbGVDaGFuZ2UoRil7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudCsrLHRoaXMucmVmcmVzaEtleSsrfXN0YXJ0UHJldmlld1Jlc2l6ZT1pKEY9PntGLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc1Jlc2l6aW5nUHJldmlldz0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUHJldmlld1Jlc2l6ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5lbmRQcmV2aWV3UmVzaXplKX0sInN0YXJ0UHJldmlld1Jlc2l6ZSIpO2hhbmRsZVByZXZpZXdSZXNpemU9aShGPT57aWYoIXRoaXMuaXNSZXNpemluZ1ByZXZpZXcpcmV0dXJuO2xldCBqPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmNvbnRlbnQiKTtpZighailyZXR1cm47bGV0IHVlPWouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGU9TWF0aC5taW4oTWF0aC5tYXgodWUucmlnaHQtRi5jbGllbnRYLDI1MCksMWUzKTt0aGlzLnByZXZpZXdXaWR0aD1sZX0sImhhbmRsZVByZXZpZXdSZXNpemUiKTtlbmRQcmV2aWV3UmVzaXplPWkoKCk9Pnt0aGlzLmlzUmVzaXppbmdQcmV2aWV3PSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVQcmV2aWV3UmVzaXplKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmVuZFByZXZpZXdSZXNpemUpfSwiZW5kUHJldmlld1Jlc2l6ZSIpO3JlbmRlcigpe2xldCBGPXRoaXMuY3VycmVudFByZWZpeD90aGlzLmN1cnJlbnRQcmVmaXguc3BsaXQoIi8iKS5maWx0ZXIoQm9vbGVhbik6W107cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJyb3dzZXItY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWIiPgogICAgICAgICAgICA8c3BhbgogICAgICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVUb1ByZWZpeCgiIil9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAke0YubWFwKChqLHVlKT0+e2xldCBsZT1GLnNsaWNlKDAsdWUrMSkuam9pbigiLyIpKyIvIjtyZXR1cm4gd2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJicmVhZGNydW1iLXNlcGFyYXRvciI+Lzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9QcmVmaXgobGUpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke2p9CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLm9uQ2hhbmdlRXZlbnQ/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RyZWFtLXN0YXR1cyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0cmVhbS1kb3QgJHt0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPyJjb25uZWN0ZWQiOiIifSI+PC9zcGFuPgogICAgICAgICAgICAgICR7dGhpcy5pc1N0cmVhbUNvbm5lY3RlZD8iTGl2ZSI6Ik9mZmxpbmUifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3RoaXMucmVjZW50Q2hhbmdlQ291bnQ+MD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhbmdlLWluZGljYXRvciBwdWxzZSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudH0gY2hhbmdlJHt0aGlzLnJlY2VudENoYW5nZUNvdW50PjE/InMiOiIifQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXctdG9nZ2xlIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJ2aWV3LWJ0biAke3RoaXMudmlld1R5cGU9PT0iY29sdW1ucyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNldFZpZXdUeXBlKCJjb2x1bW5zIil9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBDb2x1bW5zCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9InZpZXctYnRuICR7dGhpcy52aWV3VHlwZT09PSJrZXlzIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2V0Vmlld1R5cGUoImtleXMiKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIExpc3QKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCAke3RoaXMuc2VsZWN0ZWRLZXk/Imhhcy1wcmV2aWV3IjoiIn0iIHN0eWxlPSItLXByZXZpZXctd2lkdGg6ICR7dGhpcy5wcmV2aWV3V2lkdGh9cHgiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi12aWV3Ij4KICAgICAgICAgICAgJHt0aGlzLnZpZXdUeXBlPT09ImNvbHVtbnMiP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXN0b3JhZ2UtY29sdW1ucwogICAgICAgICAgICAgICAgICAgIC5kYXRhUHJvdmlkZXI9JHt0aGlzLmRhdGFQcm92aWRlcn0KICAgICAgICAgICAgICAgICAgICAuYnVja2V0TmFtZT0ke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgICAgICAgICAuY3VycmVudFByZWZpeD0ke3RoaXMuY3VycmVudFByZWZpeH0KICAgICAgICAgICAgICAgICAgICAucmVmcmVzaEtleT0ke3RoaXMucmVmcmVzaEtleX0KICAgICAgICAgICAgICAgICAgICBAa2V5LXNlbGVjdGVkPSR7dGhpcy5oYW5kbGVLZXlTZWxlY3RlZH0KICAgICAgICAgICAgICAgICAgICBAbmF2aWdhdGU9JHt0aGlzLmhhbmRsZU5hdmlnYXRlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXN0b3JhZ2UtY29sdW1ucz4KICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtc3RvcmFnZS1rZXlzCiAgICAgICAgICAgICAgICAgICAgLmRhdGFQcm92aWRlcj0ke3RoaXMuZGF0YVByb3ZpZGVyfQogICAgICAgICAgICAgICAgICAgIC5idWNrZXROYW1lPSR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICAgICAgICAgIC5jdXJyZW50UHJlZml4PSR7dGhpcy5jdXJyZW50UHJlZml4fQogICAgICAgICAgICAgICAgICAgIC5yZWZyZXNoS2V5PSR7dGhpcy5yZWZyZXNoS2V5fQogICAgICAgICAgICAgICAgICAgIEBrZXktc2VsZWN0ZWQ9JHt0aGlzLmhhbmRsZUtleVNlbGVjdGVkfQogICAgICAgICAgICAgICAgICAgIEBuYXZpZ2F0ZT0ke3RoaXMuaGFuZGxlTmF2aWdhdGV9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtc3RvcmFnZS1rZXlzPgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5zZWxlY3RlZEtleT93YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWRpdmlkZXIgJHt0aGlzLmlzUmVzaXppbmdQcmV2aWV3PyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuc3RhcnRQcmV2aWV3UmVzaXplfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1wYW5lbCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLXN0b3JhZ2UtcHJldmlldwogICAgICAgICAgICAgICAgICAgIC5kYXRhUHJvdmlkZXI9JHt0aGlzLmRhdGFQcm92aWRlcn0KICAgICAgICAgICAgICAgICAgICAuYnVja2V0TmFtZT0ke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgICAgICAgICAub2JqZWN0S2V5PSR7dGhpcy5zZWxlY3RlZEtleX0KICAgICAgICAgICAgICAgICAgICBAb2JqZWN0LWRlbGV0ZWQ9JHt0aGlzLmhhbmRsZU9iamVjdERlbGV0ZWR9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtc3RvcmFnZS1wcmV2aWV3PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tBaShhLHQpfX07cmV0dXJuIGhlPWF9KSgpfSk7dmFyIG15YT1nKCgpPT57fSk7dmFyIGd5YT1nKCgpPT57cmx0KCk7b2x0KCk7bmx0KCk7bGx0KCk7bXlhKCk7UVEoKX0pO3ZhciBieWE9ZygoKT0+e295YSgpO3V5YSgpO0hudCgpO3B5YSgpO2d5YSgpfSk7dmFyIEpRLGp1LERlcyxhMmU9ZygoKT0+e3BlKCk7aHQoKTtHYSgpO0pRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxqdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hY3Rpb25iYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FjdGlvbmJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLHg9W1koKV0sSlEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50QmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50QmFyImluIHosImhhcyIpLGdldDppKHo9PnouY3VycmVudEJhciwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmN1cnJlbnRCYXI9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLEpRKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZVJlbWFpbmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGltZVJlbWFpbmluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRpbWVSZW1haW5pbmcsImdldCIpLHNldDppKCh6LE4pPT57ei50aW1lUmVtYWluaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxKUSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dyZXNzUGVyY2VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4icHJvZ3Jlc3NQZXJjZW50ImluIHosImhhcyIpLGdldDppKHo9PnoucHJvZ3Jlc3NQZXJjZW50LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oucHJvZ3Jlc3NQZXJjZW50PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxKUSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNWaXNpYmxlImluIHosImhhcyIpLGdldDppKHo9PnouaXNWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaXNWaXNpYmxlPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxKUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siLCJPdmVybGF5Il07c3RhdGljIGRlbW89aSgoKT0+e2xldCBNPWkoXz0+Xy5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoIi5kZW1vLWNvbnRhaW5lciIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWFjdGlvbmJhciIpLCJnZXRBY3Rpb25iYXIiKTtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmRlbW8tY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGVudCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7aShhc3luYyBfPT57bGV0IE89TShfKTtpZighTylyZXR1cm47bGV0ICQ9YXdhaXQgTy5zaG93KHttZXNzYWdlOiJGaWxlIGNoYW5nZWQgZXh0ZXJuYWxseS4gUmVsb2FkPyIsdHlwZToid2FybmluZyIsaWNvbjoibHVjaWRlOmFsZXJ0VHJpYW5nbGUiLGFjdGlvbnM6W3tpZDoicmVsb2FkIixsYWJlbDoiUmVsb2FkIixwcmltYXJ5OiEwfSx7aWQ6Imlnbm9yZSIsbGFiZWw6Iklnbm9yZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjo1ZTMsZGVmYXVsdEFjdGlvbklkOiJyZWxvYWQifSxkaXNtaXNzaWJsZTohMH0pO2NvbnNvbGUubG9nKCJBY3Rpb24gYmFyIHJlc3VsdDoiLCQpfSwic2hvd0FjdGlvbkJhciIpfT5XYXJuaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHtpKGFzeW5jIF89PntsZXQgTz1NKF8pO2lmKCFPKXJldHVybjtsZXQgJD1hd2FpdCBPLnNob3coe21lc3NhZ2U6IlByb2Nlc3MgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEiLHR5cGU6ImVycm9yIixpY29uOiJsdWNpZGU6eENpcmNsZSIsYWN0aW9uczpbe2lkOiJyZXRyeSIsbGFiZWw6IlJldHJ5IixwcmltYXJ5OiEwfSx7aWQ6ImRpc21pc3MiLGxhYmVsOiJEaXNtaXNzIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjFlNCxkZWZhdWx0QWN0aW9uSWQ6ImRpc21pc3MifX0pO2NvbnNvbGUubG9nKCJFcnJvciBiYXIgcmVzdWx0OiIsJCl9LCJzaG93RXJyb3JCYXIiKX0+RXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2koYXN5bmMgXz0+e2xldCBPPU0oXyk7aWYoIU8pcmV0dXJuO2xldCAkPWF3YWl0IE8uc2hvdyh7bWVzc2FnZToiU2F2ZSBjaGFuZ2VzIGJlZm9yZSBjbG9zaW5nPyIsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb25zOlt7aWQ6InNhdmUiLGxhYmVsOiJTYXZlIixwcmltYXJ5OiEwfSx7aWQ6ImRpc2NhcmQiLGxhYmVsOiJEaXNjYXJkIn0se2lkOiJjYW5jZWwiLGxhYmVsOiJDYW5jZWwifV19KTtjb25zb2xlLmxvZygiUXVlc3Rpb24gYmFyIHJlc3VsdDoiLCQpfSwic2hvd1F1ZXN0aW9uQmFyIil9PlF1ZXN0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1hY3Rpb25iYXI+PC9kZWVzLWFjdGlvbmJhcj4KICAgICAgPC9kaXY+CiAgICBgfSwiZGVtbyIpO3F1ZXVlPVtdOyNlPWp1KHRoaXMsbyxudWxsKTtnZXQgY3VycmVudEJhcigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50QmFyKE0pe3RoaXMuI2U9TX0jdD0oanUodGhpcyxsKSxqdSh0aGlzLGQsMCkpO2dldCB0aW1lUmVtYWluaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpbWVSZW1haW5pbmcoTSl7dGhpcy4jdD1NfSNhPShqdSh0aGlzLHUpLGp1KHRoaXMsYiwxMDApKTtnZXQgcHJvZ3Jlc3NQZXJjZW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHByb2dyZXNzUGVyY2VudChNKXt0aGlzLiNhPU19I3M9KGp1KHRoaXMsdiksanUodGhpcyxtLCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCBpc1Zpc2libGUoTSl7dGhpcy4jcz1NfXRpbWVvdXRJbnRlcnZhbD0oanUodGhpcyxmKSxudWxsKTtjdXJyZW50UmVzb2x2ZT1udWxsO3N0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25iYXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4ycyBlYXNlLW91dDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoLnZpc2libGUpIC5hY3Rpb25iYXItaXRlbSB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25iYXItY29udGVudCB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICA6aG9zdCgudmlzaWJsZSkgLmFjdGlvbmJhci1jb250ZW50IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE4JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBsaW5lYXI7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA1MCUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwucXVlc3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogMzJweDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2Utc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLmluZm8gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLnF1ZXN0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODUlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zLXNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMzAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDE4JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA1NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0MCUpIiwiaHNsKDM4IDkyJSA0NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5lcnJvcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA0NSUpIiwiaHNsKDAgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkucXVlc3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDQ1JSkiLCJoc2woMjcwIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY291bnRkb3duIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIC5kaXNtaXNzLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNtaXNzLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAyMiUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBNPXRoaXMuY3VycmVudEJhcix6PU0/LnR5cGV8fCJpbmZvIixOPU0/LnRpbWVvdXQmJnRoaXMudGltZVJlbWFpbmluZz4wO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25iYXItaXRlbSI+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uYmFyLWNvbnRlbnQiPgogICAgICAgICAgJHtNP3dgCiAgICAgICAgICAgICR7Tj93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9ncmVzcy1iYXItZmlsbCAke3p9IgogICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7dGhpcy5wcm9ncmVzc1BlcmNlbnR9JSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZS1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICR7TS5pY29uP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibWVzc2FnZS1pY29uICR7en0iCiAgICAgICAgICAgICAgICAgICAgLmljb249JHtNLmljb259CiAgICAgICAgICAgICAgICAgICAgaWNvblNpemU9IjE2IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2UtdGV4dCI+JHtNLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMtc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAke00uYWN0aW9ucy5tYXAoQz0+dGhpcy5yZW5kZXJBY3Rpb25CdXR0b24oQyxNLE4pKX0KICAgICAgICAgICAgICAgICR7TS5kaXNtaXNzaWJsZT93YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImRpc21pc3MtYnV0dG9uIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURpc21pc3MoKX0KICAgICAgICAgICAgICAgICAgICB0aXRsZT0iRGlzbWlzcyIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbkJ1dHRvbihNLHosTil7bGV0IEM9TS5wcmltYXJ5LF89ei50eXBlfHwiaW5mbyIsTz16LnRpbWVvdXQ/LmRlZmF1bHRBY3Rpb25JZD09PU0uaWQsJD1OJiZPLEU9TWF0aC5jZWlsKHRoaXMudGltZVJlbWFpbmluZy8xZTMpO3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtDP2BwcmltYXJ5ICR7X31gOiJzZWNvbmRhcnkifSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oTS5pZCwhMSl9CiAgICAgID4KICAgICAgICAke00uaWNvbj93YAogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke00uaWNvbn0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuPiR7TS5sYWJlbH08L3NwYW4+CiAgICAgICAgJHskP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iY291bnRkb3duIj4oJHtFfXMpPC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgIDwvYnV0dG9uPgogICAgYH1hc3luYyBzaG93KE0pe3JldHVybiBuZXcgUHJvbWlzZSh6PT57dGhpcy5xdWV1ZS5wdXNoKHtvcHRpb25zOk0scmVzb2x2ZTp6fSksdGhpcy5jdXJyZW50QmFyfHx0aGlzLnByb2Nlc3NRdWV1ZSgpfSl9ZGlzbWlzcygpe3RoaXMuaGFuZGxlRGlzbWlzcygpfWNsZWFyUXVldWUoKXtmb3IobGV0IE0gb2YgdGhpcy5xdWV1ZSlNLnJlc29sdmUoe2FjdGlvbklkOiJkaXNtaXNzZWQiLHRpbWVkT3V0OiExfSk7dGhpcy5xdWV1ZT1bXX1hc3luYyBoaWRlQ3VycmVudEJhcigpe3RoaXMuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpLHRoaXMuaXNWaXNpYmxlPSExLGF3YWl0IG5ldyBQcm9taXNlKE09PnNldFRpbWVvdXQoTSwyMjApKSx0aGlzLmN1cnJlbnRCYXI9bnVsbCx0aGlzLmN1cnJlbnRSZXNvbHZlPW51bGx9YXN5bmMgcHJvY2Vzc1F1ZXVlKCl7aWYodGhpcy5xdWV1ZS5sZW5ndGg9PT0wKXt0aGlzLmhpZGVDdXJyZW50QmFyKCk7cmV0dXJufWxldCBNPXRoaXMucXVldWUuc2hpZnQoKTt0aGlzLmN1cnJlbnRCYXI9TS5vcHRpb25zLHRoaXMuY3VycmVudFJlc29sdmU9TS5yZXNvbHZlLHRoaXMuaXNWaXNpYmxlPSEwLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KSxNLm9wdGlvbnMudGltZW91dCYmdGhpcy5zdGFydFRpbWVvdXQoTS5vcHRpb25zLnRpbWVvdXQuZHVyYXRpb24sTS5vcHRpb25zLnRpbWVvdXQuZGVmYXVsdEFjdGlvbklkKX1zdGFydFRpbWVvdXQoTSx6KXt0aGlzLnRpbWVSZW1haW5pbmc9TSx0aGlzLnByb2dyZXNzUGVyY2VudD0xMDA7bGV0IE49RGF0ZS5ub3coKSxDPTUwO3RoaXMudGltZW91dEludGVydmFsPXNldEludGVydmFsKCgpPT57bGV0IF89RGF0ZS5ub3coKS1OO3RoaXMudGltZVJlbWFpbmluZz1NYXRoLm1heCgwLE0tXyksdGhpcy5wcm9ncmVzc1BlcmNlbnQ9dGhpcy50aW1lUmVtYWluaW5nL00qMTAwLHRoaXMudGltZVJlbWFpbmluZzw9MCYmKHRoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKSx0aGlzLmhhbmRsZUFjdGlvbih6LCEwKSl9LEMpfWNsZWFyVGltZW91dEludGVydmFsKCl7dGhpcy50aW1lb3V0SW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMudGltZW91dEludGVydmFsKSx0aGlzLnRpbWVvdXRJbnRlcnZhbD1udWxsKX1oYW5kbGVBY3Rpb24oTSx6KXt0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCksdGhpcy5jdXJyZW50UmVzb2x2ZSYmdGhpcy5jdXJyZW50UmVzb2x2ZSh7YWN0aW9uSWQ6TSx0aW1lZE91dDp6fSksdGhpcy5wcm9jZXNzUXVldWUoKX1oYW5kbGVEaXNtaXNzKCl7dGhpcy5oYW5kbGVBY3Rpb24oImRpc21pc3NlZCIsITEpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCl9c3RhdGlje2p1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciB2eWE9ZygoKT0+e30pO3ZhciB4eWE9ZygoKT0+e2EyZSgpO3Z5YSgpfSk7dmFyIHl5YSx3eWE9ZygoKT0+e3BlKCk7eXlhPWkoKCk9PndgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Ij4KICAgIDxkZWVzLWJhZGdlIC50ZXh0PSR7IkRlZmF1bHQifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJwcmltYXJ5In0gLnRleHQ9JHsiUHJpbWFyeSJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InN1Y2Nlc3MifSAudGV4dD0keyJTdWNjZXNzIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsid2FybmluZyJ9IC50ZXh0PSR7Ildhcm5pbmcifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJlcnJvciJ9IC50ZXh0PSR7IkVycm9yIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsicHJpbWFyeSJ9IC5yb3VuZGVkPSR7ITB9IC50ZXh0PSR7IlJvdW5kZWQifT48L2RlZXMtYmFkZ2U+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgczJlLG83LExlcyxreWE9ZygoKT0+e3BlKCk7a3QoKTt3eWEoKTtodCgpO3MyZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbzc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LExlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtYmFkZ2UiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0JhZGdlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHMyZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InR5cGUiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi50eXBlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YudHlwZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksczJlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idGV4dCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnRleHQsImdldCIpLHNldDppKChmLHkpPT57Zi50ZXh0PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxzMmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3VuZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJyb3VuZGVkImluIGYsImhhcyIpLGdldDppKGY9PmYucm91bmRlZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnJvdW5kZWQ9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLHMyZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPXl5YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9bzcodGhpcyxvLCJkZWZhdWx0Iik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShtKXt0aGlzLiNlPW19I3Q9KG83KHRoaXMsbCksbzcodGhpcyxkLCIiKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dChtKXt0aGlzLiN0PW19I2E9KG83KHRoaXMsdSksbzcodGhpcyxiLCExKSk7Z2V0IHJvdW5kZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcm91bmRlZChtKXt0aGlzLiNhPW19Y29uc3RydWN0b3IoKXtzdXBlcigpLG83KHRoaXMsdiksdGEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmJhZGdlLnJvdW5kZWQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMmU3ZDMyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogI2VkNmMwMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UgJHt0aGlzLnR5cGV9ICR7dGhpcy5yb3VuZGVkPyJyb3VuZGVkIjoiIn0iPgogICAgICAgICR7dGhpcy50ZXh0fQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje283KGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBTeWE9ZygoKT0+e2t5YSgpfSk7dmFyIF95YSxNeWE9ZygoKT0+e3BlKCk7X3lhPWkoKCk9PndgCiAgPGRlZXMtaGludD48L2RlZXMtaGludD4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB6eWEsY2x0LEVlcyxDeWE9ZygoKT0+e3BlKCk7a3QoKTtNeWEoKTtodCgpO3p5YT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sY2x0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxFZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWhpbnQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0hpbnQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSx6eWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJ0eXBlImluIHUsImhhcyIpLGdldDppKHU9PnUudHlwZSwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnR5cGU9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLHp5YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPV95YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9Y2x0KHRoaXMsbywiaW5mbyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoZCl7dGhpcy4jZT1kfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxjbHQodGhpcyxsKSx0YS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgIDxkaXYgY2xhc3M9Im1haW5ib3giPjwvZGl2PiBgfXN0YXRpY3tjbHQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIFR5YT1nKCgpPT57Q3lhKCl9KTt2YXIgJHlhLER5YT1nKCgpPT57cGUoKTtJdCgpOyR5YT1pKCgpPT57bGV0IHM9W1siUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6IiwiVmVyaWZ5aW5nIGNoZWNrc3VtIl0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiIsIlZlcmlmeWluZyBjaGVja3N1bSIsIkV4dHJhY3RpbmcgcmVsZWFzZSBidW5kbGUiXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6IiwiVmVyaWZ5aW5nIGNoZWNrc3VtIiwiRXh0cmFjdGluZyByZWxlYXNlIGJ1bmRsZSIsIlJlc3RhcnRpbmcgYXBwbGljYXRpb24iXV0sZT1pKHQ9PnQ+PTEwMD8iVXBsb2FkIGNvbXBsZXRlLiBGaW5hbGl6aW5nIHBhY2thZ2UgbWFuaWZlc3QuLi4iOnQ+PTgyPyJWZXJpZnlpbmcgY2hlY2tzdW1zIGJlZm9yZSBoYW5kb2ZmLi4uIjp0Pj01NT8iVXBsb2FkaW5nIHRodW1ibmFpbHMgdG8gZWRnZSBjYWNoZS4uLiI6dD49MjU/IlN0cmVhbWluZyBzb3VyY2UgZmlsZXMgdG8gdGhlIHJlbW90ZSB3b3JrZXIuLi4iOiJQcmVwYXJpbmcgYXJjaGl2ZSBhbmQgZGVwZW5kZW5jeSBncmFwaC4uLiIsImdldFVwbG9hZFN0YXR1cyIpO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiI2xpdmUtcHJvZ3Jlc3MiKSxyPXQucXVlcnlTZWxlY3RvcigiI3Rlcm1pbmFsLXByb2dyZXNzIiksbj10O2lmKCFhfHwhcilyZXR1cm47bi5fX3Byb2dyZXNzYmFyRGVtb0ludGVydmFsSWQmJndpbmRvdy5jbGVhckludGVydmFsKG4uX19wcm9ncmVzc2JhckRlbW9JbnRlcnZhbElkKTtsZXQgbz0xMixsPTAscD1pKCgpPT57YS5wZXJjZW50YWdlPW8sYS5zdGF0dXNUZXh0PWUobyksci50ZXJtaW5hbExpbmVzPVsuLi5zW2xdXSxyLnBlcmNlbnRhZ2U9TWF0aC5taW4oMTAwLChsKzEpKjIwKSxyLmluZGV0ZXJtaW5hdGU9bDxzLmxlbmd0aC0xLG89bz49MTAwPzEyOk1hdGgubWluKDEwMCxvKzExKSxsPWw+PXMubGVuZ3RoLTE/MDpsKzF9LCJ1cGRhdGVEZW1vIik7cCgpLG4uX19wcm9ncmVzc2JhckRlbW9JbnRlcnZhbElkPXdpbmRvdy5zZXRJbnRlcnZhbChwLDE0MDApfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtb0ludHJvIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA3MjBweDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSAzMCUpIiwiaHNsKDIxNSAxOCUgNzYlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUdyaWQgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgICAgZ2FwOiAxOHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjc4KSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wNCkiKX07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjEwIDIyJSA4NiUpIiwiaHNsKDIxMCAxMCUgMTglKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgICAgIH0KCiAgICAgICAgICAuc2hvd2Nhc2VDYXJkLndpZGUgewogICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAyOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQgaDMgewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIH0KCiAgICAgICAgICAuc2hvd2Nhc2VDYXJkIHAgewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNCUgNDAlKSIsImhzbCgyMTUgMTAlIDY2JSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7CiAgICAgICAgICB9CgogICAgICAgICAgLnByb2dyZXNzU3RhY2sgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDE0cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmNvZGVMYWJlbCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNCUgNDQlKSIsImhzbCgyMTUgMTAlIDcwJSkiKX07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICB9CgogICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgICB9CgogICAgICAgICAgICAuc2hvd2Nhc2VDYXJkLndpZGUgewogICAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vSW50cm8iPgogICAgICAgICAgPGNvZGU+ZGVlcy1wcm9ncmVzc2JhcjwvY29kZT4gY2FuIG5vdyBwYWlyIGEgY2xhc3NpYyBwcm9ncmVzcyBiYXIgd2l0aCBhIGZpeGVkLWhlaWdodCBzdGF0dXMgYXJlYS4gVXNlIHNpbXBsZSBzdGF0dXMgdGV4dCBmb3IgY2xlYXIgdXNlci1mYWNpbmcgdXBkYXRlcyBvciBzd2l0Y2ggdG8gdGVybWluYWwtbGlrZSBsaW5lcyB3aGVuIHlvdSB3YW50IHJlY2VudCBzdGVwcyB0byBzdGF5IHZpc2libGUgd2l0aG91dCBjYXVzaW5nIGxheW91dCBqdW1wcy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaG93Y2FzZUdyaWQiPgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+RGV0ZXJtaW5hdGU8L2Rpdj4KICAgICAgICAgICAgPGgzPlBlcmNlbnRhZ2UgcGx1cyBjdXJyZW50IHRhc2s8L2gzPgogICAgICAgICAgICA8cD5Vc2UgYSBsYWJlbCwgYSBwZXJjZW50YWdlLCBhbmQgb25lIHNob3J0IHN0YXR1cyBsaW5lIHdoZW4gdGhlIHdvcmsgaXMgbWVhc3VyYWJsZS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iTWVkaWEgdXBsb2FkIgogICAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHs2OH0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IlVwbG9hZGluZyB0aHVtYm5haWxzIHRvIGVkZ2UgY2FjaGUuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IkFzc2V0IHN5bmMiCiAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezEwMH0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IkFsbCBmaWxlcyBhcmUgc3luY2VkIGFuZCBhdmFpbGFibGUuIgogICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkluZGV0ZXJtaW5hdGU8L2Rpdj4KICAgICAgICAgICAgPGgzPlNwaW5uZXItc3R5bGUgdGV4dCBpbmRpY2F0b3I8L2gzPgogICAgICAgICAgICA8cD5XaGVuIHRoZXJlIGlzIG5vIHRydXN0d29ydGh5IHBlcmNlbnRhZ2UgeWV0LCBrZWVwIHRoZSBiYXIgbW92aW5nIGFuZCBsZXQgdGhlIHRleHQgZXhwbGFpbiB3aGF0IGlzIGhhcHBlbmluZy48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRGVwZW5kZW5jeSBpbnN0YWxsIgogICAgICAgICAgICAgICAgLmluZGV0ZXJtaW5hdGU9JHshMH0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IkRvd25sb2FkaW5nIHBhY2thZ2UgbWV0YWRhdGEuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IlF1ZXVlZCBqb2IiCiAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezMyfQogICAgICAgICAgICAgICAgLnNob3dQZXJjZW50YWdlPSR7ITF9CiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0PSJXYWl0aW5nIGZvciBhIHdvcmtlciBzbG90IHRvIGJlY29tZSBhdmFpbGFibGUuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCB3aWRlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5UZXJtaW5hbCBMaW5lczwvZGl2PgogICAgICAgICAgICA8aDM+Rml4ZWQtaGVpZ2h0IHRlcm1pbmFsLXN0eWxlIHN0YXR1cyBvdXRwdXQ8L2gzPgogICAgICAgICAgICA8cD5UaGUgcGFuZWwgc3RheXMgdGhlIHNhbWUgaGVpZ2h0IHdoaWxlIHRoZSBsYXRlc3Qgc3RlcCBzdGF5cyB2aXNpYmxlLiBUaGlzIGlzIHVzZWZ1bCBmb3IgdXBkYXRlIGZsb3dzLCBkb3dubG9hZHMsIGFuZCBzdGFnZWQgYmFja2dyb3VuZCB3b3JrLjwvcD4KICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICBpZD0idGVybWluYWwtcHJvZ3Jlc3MiCiAgICAgICAgICAgICAgbGFiZWw9IlJlbGVhc2UgYnVuZGxlIgogICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MjB9CiAgICAgICAgICAgICAgLmluZGV0ZXJtaW5hdGU9JHshMH0KICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezR9CiAgICAgICAgICAgICAgLnRlcm1pbmFsTGluZXM9JHtzWzBdfQogICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkxpdmUgRGVtbzwvZGl2PgogICAgICAgICAgICA8aDM+VXBkYXRpbmcgcGVyY2VudGFnZSBhbmQgdGV4dCB0b2dldGhlcjwvaDM+CiAgICAgICAgICAgIDxwPkEgc2luZ2xlIGNvbXBvbmVudCBjYW4gZXhwcmVzcyBib3RoIGhvdyBmYXIgdGhlIGpvYiBpcyBhbmQgd2hpY2ggcGhhc2UgaXMgY3VycmVudGx5IGFjdGl2ZS48L3A+CiAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgaWQ9ImxpdmUtcHJvZ3Jlc3MiCiAgICAgICAgICAgICAgbGFiZWw9IkN1c3RvbWVyIGV4cG9ydCIKICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezEyfQogICAgICAgICAgICAgIHN0YXR1c1RleHQ9IlByZXBhcmluZyBhcmNoaXZlIGFuZCBkZXBlbmRlbmN5IGdyYXBoLi4uIgogICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5Db21wYXRpYmlsaXR5PC9kaXY+CiAgICAgICAgICAgIDxoMz5MZWdhY3kgPGNvZGU+dmFsdWU8L2NvZGU+IGFuZCA8Y29kZT5wcm9ncmVzczwvY29kZT4gaW5wdXRzPC9oMz4KICAgICAgICAgICAgPHA+RXhpc3RpbmcgdXNhZ2VzIGNhbiBrZWVwIHBhc3NpbmcgcGVyY2VudGFnZXMgZGlyZWN0bHkgb3Igbm9ybWFsaXplZCBwcm9ncmVzcyB2YWx1ZXMgZnJvbSAwIHRvIDEuPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1N0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IkZyb20gdmFsdWUiCiAgICAgICAgICAgICAgICAudmFsdWU9JHs3NX0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9Ik1pZ3JhdGluZyBleGlzdGluZyByZWFkbWUtc3R5bGUgdXNhZ2UuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IkZyb20gcHJvZ3Jlc3MiCiAgICAgICAgICAgICAgICAucHJvZ3Jlc3M9JHsuNDJ9CiAgICAgICAgICAgICAgICAuc2hvd1BlcmNlbnRhZ2U9JHshMX0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IlJlbmRlcmluZyBub3JtYWxpemVkIHByb2dyZXNzIGlucHV0Li4uIgogICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBQMix4cixQZXMsZGx0PWcoKCk9Pnt3MigpO0R5YSgpO3BlKCk7aHQoKTtQMj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0seHI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtcHJvZ3Jlc3NiYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXTt2YXIgbWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNQcm9ncmVzc2JhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBCPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6TnVtYmVyfSldLHA9W0woe3R5cGU6TnVtYmVyfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6U3RyaW5nfSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpOdW1iZXJ9KV0sSD1bTCh7dHlwZTpCb29sZWFufSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtZKCldLFAyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4icGVyY2VudGFnZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnBlcmNlbnRhZ2UsImdldCIpLHNldDppKChVLGhlKT0+e1UucGVyY2VudGFnZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxvLGwpLFAyKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InZhbHVlImluIFUsImhhcyIpLGdldDppKFU9PlUudmFsdWUsImdldCIpLHNldDppKChVLGhlKT0+e1UudmFsdWU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sZCx1KSxQMih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJwcm9ncmVzcyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnByb2dyZXNzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGIsdiksUDIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ibGFiZWwiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5sYWJlbCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5sYWJlbD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxtLGYpLFAyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic3RhdHVzVGV4dCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnN0YXR1c1RleHQsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc3RhdHVzVGV4dD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxNLHopLFAyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idGVybWluYWxMaW5lcyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnRlcm1pbmFsTGluZXMsImdldCIpLHNldDppKChVLGhlKT0+e1UudGVybWluYWxMaW5lcz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxDLF8pLFAyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzUm93cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic3RhdHVzUm93cyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnN0YXR1c1Jvd3MsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc3RhdHVzUm93cz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSwkLEUpLFAyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kZXRlcm1pbmF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaW5kZXRlcm1pbmF0ZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmluZGV0ZXJtaW5hdGUsImdldCIpLHNldDppKChVLGhlKT0+e1UuaW5kZXRlcm1pbmF0ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLFAyKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1BlcmNlbnRhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InNob3dQZXJjZW50YWdlImluIFUsImhhcyIpLGdldDppKFU9PlUuc2hvd1BlcmNlbnRhZ2UsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc2hvd1BlcmNlbnRhZ2U9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sUCxSKSxQMih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZVNwaW5uZXJGcmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYWN0aXZlU3Bpbm5lckZyYW1lImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aXZlU3Bpbm5lckZyYW1lLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmFjdGl2ZVNwaW5uZXJGcmFtZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxWLFcpLFAyKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsdCksbWU9YT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfXN0YXRpYyBkZW1vPSR5YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9eHIodGhpcyxvLDApO2dldCBwZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBlcmNlbnRhZ2UoQil7dGhpcy4jZT1CfSN0PSh4cih0aGlzLGwpLHhyKHRoaXMsZCxudWxsKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZhbHVlKEIpe3RoaXMuI3Q9Qn0jYT0oeHIodGhpcyx1KSx4cih0aGlzLGIsbnVsbCkpO2dldCBwcm9ncmVzcygpe3JldHVybiB0aGlzLiNhfXNldCBwcm9ncmVzcyhCKXt0aGlzLiNhPUJ9I3M9KHhyKHRoaXMsdikseHIodGhpcyxtLCIiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxhYmVsKEIpe3RoaXMuI3M9Qn0jaT0oeHIodGhpcyxmKSx4cih0aGlzLE0sIiIpKTtnZXQgc3RhdHVzVGV4dCgpe3JldHVybiB0aGlzLiNpfXNldCBzdGF0dXNUZXh0KEIpe3RoaXMuI2k9Qn0jcj0oeHIodGhpcyx6KSx4cih0aGlzLEMsW10pKTtnZXQgdGVybWluYWxMaW5lcygpe3JldHVybiB0aGlzLiNyfXNldCB0ZXJtaW5hbExpbmVzKEIpe3RoaXMuI3I9Qn0jbz0oeHIodGhpcyxfKSx4cih0aGlzLCQsMykpO2dldCBzdGF0dXNSb3dzKCl7cmV0dXJuIHRoaXMuI299c2V0IHN0YXR1c1Jvd3MoQil7dGhpcy4jbz1CfSNuPSh4cih0aGlzLEUpLHhyKHRoaXMsaywhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI259c2V0IGluZGV0ZXJtaW5hdGUoQil7dGhpcy4jbj1CfSNsPSh4cih0aGlzLFMpLHhyKHRoaXMsUCwhMCkpO2dldCBzaG93UGVyY2VudGFnZSgpe3JldHVybiB0aGlzLiNsfXNldCBzaG93UGVyY2VudGFnZShCKXt0aGlzLiNsPUJ9I2M9KHhyKHRoaXMsUikseHIodGhpcyxWLDApKTtnZXQgYWN0aXZlU3Bpbm5lckZyYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2ZVNwaW5uZXJGcmFtZShCKXt0aGlzLiNjPUJ9c3Bpbm5lckludGVydmFsSWQ9KHhyKHRoaXMsVyksbnVsbCk7c3Bpbm5lckZyYW1lcz1bInwiLCIvIiwiLSIsIlxcIl07c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUocjQudGV4dCxpNC50ZXh0KX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhckNvbnRhaW5lciB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzTGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc1ZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTUlIDQwJSkiLCJoc2woMjE1IDE1JSA3MCUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWVlZWViIiwiIzQ0NCIpfTsKICAgICAgICBib3JkZXItdG9wOiAwLjVweCBzb2xpZCAke2guYmRUaGVtZSgidHJhbnNwYXJlbnQiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJGaWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZShpNC5ibHVlQWN0aXZlLHI0LmJsdWVBY3RpdmUpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhckZpbGwuaW5kZXRlcm1pbmF0ZSB7CiAgICAgICAgd2lkdGg6IDM0JTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICAgIGFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZVNsaWRlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNQYW5lbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3RhdHVzLXJvd3MsIDMpICogMS4zNWVtICsgMTZweCk7CiAgICAgICAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1zdGF0dXMtcm93cywgMykgKiAxLjM1ZW0gKyAxNnB4KTsKICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgODYlKSIsImhzbCgyMTAgMTAlIDI2JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMzMlIDk4JSkiLCJoc2woMjIwIDIwJSAxMCUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zNTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuc3RhdHVzVGV4dFJvdywKICAgICAgLnRlcm1pbmFsTGluZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4taGVpZ2h0OiAxLjM1ZW07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsU2Nyb2xsZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxOCUgNzglKSIsImhzbCgyMTUgMTAlIDM0JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5saW5lUHJlZml4IHsKICAgICAgICB3aWR0aDogMWNoOwogICAgICAgIGZsZXg6IDAgMCAxY2g7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKGk0LmJsdWVBY3RpdmUscjQuYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxpbmVUZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgMTUlIDI1JSkiLCJoc2woMjEwIDE1JSA4NiUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAudGVybWluYWxMaW5lOm5vdCguY3VycmVudCkgLmxpbmVUZXh0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTIlIDQyJSkiLCJoc2woMjE1IDEyJSA2MyUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGVTbGlkZSB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMjAlKTsKICAgICAgICB9CgogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMyMCUpOwogICAgICAgIH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3luY1NwaW5uZXJTdGF0ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5zdG9wU3Bpbm5lcigpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9dXBkYXRlZChCKXtzdXBlci51cGRhdGVkKEIpLHRoaXMuc3luY1NwaW5uZXJTdGF0ZSgpLEIuaGFzKCJ0ZXJtaW5hbExpbmVzIikmJnRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCYmdGhpcy5zY3JvbGxUZXJtaW5hbFRvQm90dG9tKCl9cmVuZGVyKCl7bGV0IEI9dGhpcy5nZXRFZmZlY3RpdmVQZXJjZW50YWdlKCksVT0hIXRoaXMubGFiZWx8fHRoaXMuc2hvd1BlcmNlbnRhZ2UmJiF0aGlzLmluZGV0ZXJtaW5hdGUsaGU9dGhpcy50ZXJtaW5hbExpbmVzLmxlbmd0aD4wLEY9aGV8fHRoaXMuc3RhdHVzVGV4dC50cmltKCkubGVuZ3RoPjAsaj10aGlzLmdldFJlbmRlcmVkU3RhdHVzUm93cygpLHVlPXRoaXMuc3Bpbm5lckZyYW1lc1t0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZV0/P3RoaXMuc3Bpbm5lckZyYW1lc1swXTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXJDb250YWluZXIiPgogICAgICAgICR7VT93YAogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NIZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0xhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5zaG93UGVyY2VudGFnZSYmIXRoaXMuaW5kZXRlcm1pbmF0ZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzVmFsdWUiPiR7dGhpcy5mb3JtYXRQZXJjZW50YWdlKEIpfSU8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icHJvZ3Jlc3NCYXJGaWxsICR7dGhpcy5pbmRldGVybWluYXRlPyJpbmRldGVybWluYXRlIjoiIn0iCiAgICAgICAgICAgIHN0eWxlPSIke3RoaXMuaW5kZXRlcm1pbmF0ZT8iIjpgd2lkdGg6ICR7Qn0lO2B9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7Rj93YAogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic3RhdHVzUGFuZWwiCiAgICAgICAgICAgIHN0eWxlPSItLXN0YXR1cy1yb3dzOiAke2p9OyIKICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgIGFyaWEtYXRvbWljPSJ0cnVlIgogICAgICAgICAgPgogICAgICAgICAgICAke2hlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWxTY3JvbGxlciI+CiAgICAgICAgICAgICAgICAke3RoaXMudGVybWluYWxMaW5lcy5tYXAoKGxlLFEpPT57bGV0IGllPVE9PT10aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoLTEsdGU9dGhpcy5pbmRldGVybWluYXRlJiZpZT91ZToiPiI7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWxMaW5lICR7aWU/ImN1cnJlbnQiOiIifSI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVByZWZpeCI+JHt0ZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVRleHQiPiR7bGV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNUZXh0Um93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lUHJlZml4Ij4ke3RoaXMuaW5kZXRlcm1pbmF0ZT91ZToiPiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxpbmVUZXh0Ij4ke3RoaXMuc3RhdHVzVGV4dH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0RWZmZWN0aXZlUGVyY2VudGFnZSgpe2lmKHR5cGVvZiB0aGlzLnZhbHVlPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHRoaXMudmFsdWUpKXJldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZSh0aGlzLnZhbHVlKTtpZih0eXBlb2YgdGhpcy5wcm9ncmVzcz09Im51bWJlciImJk51bWJlci5pc0Zpbml0ZSh0aGlzLnByb2dyZXNzKSl7bGV0IEI9dGhpcy5wcm9ncmVzcz49MCYmdGhpcy5wcm9ncmVzczw9MT90aGlzLnByb2dyZXNzKjEwMDp0aGlzLnByb2dyZXNzO3JldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZShCKX1yZXR1cm4gdGhpcy5jbGFtcFBlcmNlbnRhZ2UodGhpcy5wZXJjZW50YWdlKX1nZXRSZW5kZXJlZFN0YXR1c1Jvd3MoKXtsZXQgQj1OdW1iZXIuaXNGaW5pdGUodGhpcy5zdGF0dXNSb3dzKT9NYXRoLmZsb29yKHRoaXMuc3RhdHVzUm93cyk6MztyZXR1cm4gTWF0aC5tYXgoMSxCKX1jbGFtcFBlcmNlbnRhZ2UoQil7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oMTAwLEIpKX1mb3JtYXRQZXJjZW50YWdlKEIpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEIpP2Ake0J9YDpCLnRvRml4ZWQoMSkucmVwbGFjZSgvXC4wJC8sIiIpfXN5bmNTcGlubmVyU3RhdGUoKXtsZXQgQj10aGlzLmluZGV0ZXJtaW5hdGUmJih0aGlzLnN0YXR1c1RleHQudHJpbSgpLmxlbmd0aD4wfHx0aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoPjApO2lmKEImJnRoaXMuc3Bpbm5lckludGVydmFsSWQ9PT1udWxsKXt0aGlzLnNwaW5uZXJJbnRlcnZhbElkPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+e3RoaXMuYWN0aXZlU3Bpbm5lckZyYW1lPSh0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZSsxKSV0aGlzLnNwaW5uZXJGcmFtZXMubGVuZ3RofSwxMjApO3JldHVybn1CfHx0aGlzLnN0b3BTcGlubmVyKCl9c3RvcFNwaW5uZXIoKXt0aGlzLnNwaW5uZXJJbnRlcnZhbElkIT09bnVsbCYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuc3Bpbm5lckludGVydmFsSWQpLHRoaXMuc3Bpbm5lckludGVydmFsSWQ9bnVsbCksdGhpcy5hY3RpdmVTcGlubmVyRnJhbWU9MH1zY3JvbGxUZXJtaW5hbFRvQm90dG9tKCl7bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGVybWluYWxTY3JvbGxlciIpO0ImJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntCLnNjcm9sbFRvcD1CLnNjcm9sbEhlaWdodH0pfXN0YXRpY3t4cihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIEx5YT1nKCgpPT57ZGx0KCl9KTt2YXIgaTJlLG43LEllcyxFeWE9ZygoKT0+e3BlKCk7a3QoKTtodCgpO2kyZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbjc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEllcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtc3Bpbm5lciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3Bpbm5lciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6TnVtYmVyfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woKV0saTJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2l6ZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnNpemUsImdldCIpLHNldDppKChmLHkpPT57Zi5zaXplPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxpMmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibnciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImJudyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmJudywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmJudz15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksaTJlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJzdGF0dXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zdGF0dXMsImdldCIpLHNldDppKChmLHkpPT57Zi5zdGF0dXM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLGkyZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTtzdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtc3Bpbm5lcj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc3RhdHVzPSJzdWNjZXNzIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc3RhdHVzPSJlcnJvciI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHNpemU9JHs2NH0gc3RhdHVzPSJzdWNjZXNzIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgLnNpemU9JHs2NH0gc3RhdHVzPSJlcnJvciI+PC9kZWVzLXNwaW5uZXI+CiAgYCwiZGVtbyIpOyNlPW43KHRoaXMsbywyMCk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2l6ZShtKXt0aGlzLiNlPW19I3Q9KG43KHRoaXMsbCksbjcodGhpcyxkLCExKSk7Z2V0IGJudygpe3JldHVybiB0aGlzLiN0fXNldCBibncobSl7dGhpcy4jdD1tfSNhPShuNyh0aGlzLHUpLG43KHRoaXMsYiwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3RhdHVzKG0pe3RoaXMuI2E9bX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksbjcodGhpcyx2KX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAjbG9hZGluZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogIzhiYzM0YTAwOwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICNsb2FkaW5nIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiIzhiYzM0YSIsdGhpcy5ibnc/IiNmZmYiOiIjOGJjMzRhIil9OwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiNlNjRhMTkiLHRoaXMuYm53PyIjZmZmIjoiI2U2NGExOSIpfTsKICAgICAgICB9CiAgICAgICAgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSIke3RoaXMuc3RhdHVzfSIgaWQ9ImxvYWRpbmciPgogICAgICAgICR7KCgpPT57aWYodGhpcy5zdGF0dXM9PT0ic3VjY2VzcyIpcmV0dXJuIHdgPGRlZXMtaWNvbiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTsiIC5pY29uPSR7ImZhOmNpcmNsZS1jaGVjayJ9PjwvZGVlcy1pY29uPmA7aWYodGhpcy5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiB3YDxkZWVzLWljb24gLmljb249JHsiZmE6Y2lyY2xlLXhtYXJrIn0+PC9kZWVzLWljb24+YH0pKCl9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7bjcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIFB5YT1nKCgpPT57RXlhKCl9KTt2YXIgSXlhLEF5YT1nKCgpPT57cGUoKTt1bHQoKTtIZygpO0l5YT1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CgogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiNhYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CgogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWJ1dHRvbiBjbGFzcz0idGhlbWUtdG9nZ2xlIiBAY2xpY2tlZD0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIERpZmZlcmVudCB0b2FzdCB0eXBlcyBmb3IgdmFyaW91cyBub3RpZmljYXRpb24gc2NlbmFyaW9zLiBDbGljayBhbnkgYnV0dG9uIHRvIHNob3cgYSB0b2FzdC4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnt5cy5pbmZvKCJUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZSIpfX0+SW5mbyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCIgQGNsaWNrZWQ9JHsoKT0+e3lzLnN1Y2Nlc3MoIk9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+U3VjY2VzcyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMud2FybmluZygiUGxlYXNlIHJldmlldyBiZWZvcmUgcHJvY2VlZGluZyIpfX0+V2FybmluZyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuZXJyb3IoIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmciKX19PkVycm9yIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgUG9zaXRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUb2FzdHMgY2FuIGFwcGVhciBpbiBkaWZmZXJlbnQgcG9zaXRpb25zIG9uIHRoZSBzY3JlZW4uCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuc2hvdyh7bWVzc2FnZToiVG9wIFJpZ2h0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLXJpZ2h0In0pfX0+VG9wIFJpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnt5cy5zaG93KHttZXNzYWdlOiJUb3AgTGVmdCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1sZWZ0In0pfX0+VG9wIExlZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IkJvdHRvbSBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1yaWdodCJ9KX19PkJvdHRvbSBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuc2hvdyh7bWVzc2FnZToiQm90dG9tIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tbGVmdCJ9KX19PkJvdHRvbSBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnt5cy5zaG93KHttZXNzYWdlOiJUb3AgQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLWNlbnRlciJ9KX19PlRvcCBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IkJvdHRvbSBDZW50ZXIgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tY2VudGVyIn0pfX0+Qm90dG9tIENlbnRlcjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkR1cmF0aW9uIE9wdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbnRyb2wgaG93IGxvbmcgdG9hc3RzIHN0YXkgdmlzaWJsZS4gRHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IlF1aWNrIHRvYXN0ICgxIHNlY29uZCkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjFlM30pfX0+MSBTZWNvbmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IlN0YW5kYXJkIHRvYXN0ICgzIHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjozZTN9KX19PjMgU2Vjb25kcyAoRGVmYXVsdCk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IkxvbmcgdG9hc3QgKDUgc2Vjb25kcykiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjVlM30pfX0+NSBTZWNvbmRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnt5cy5zaG93KHttZXNzYWdlOiJNYW51YWwgZGlzbWlzcyBvbmx5IChjbGljayB0byBjbG9zZSkiLHR5cGU6Indhcm5pbmciLGR1cmF0aW9uOjB9KX19Pk5vIEF1dG8tRGlzbWlzczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIFRvYXN0czwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgTXVsdGlwbGUgdG9hc3RzIHN0YWNrIGF1dG9tYXRpY2FsbHkuIFRoZXkgbWFpbnRhaW4gdGhlaXIgb3JkZXIgYW5kIGFuaW1hdGUgc21vb3RobHkuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuaW5mbygiRmlyc3Qgbm90aWZpY2F0aW9uIiksc2V0VGltZW91dCgoKT0+eXMuc3VjY2VzcygiU2Vjb25kIG5vdGlmaWNhdGlvbiIpLDIwMCksc2V0VGltZW91dCgoKT0+eXMud2FybmluZygiVGhpcmQgbm90aWZpY2F0aW9uIiksNDAwKSxzZXRUaW1lb3V0KCgpPT55cy5lcnJvcigiRm91cnRoIG5vdGlmaWNhdGlvbiIpLDYwMCl9fT5TaG93IE11bHRpcGxlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntmb3IobGV0IHM9MTtzPD01O3MrKylzZXRUaW1lb3V0KCgpPT57eXMuc2hvdyh7bWVzc2FnZTpgTm90aWZpY2F0aW9uICMke3N9YCx0eXBlOnMlMj09PTA/InN1Y2Nlc3MiOiJpbmZvIixkdXJhdGlvbjoyZTMrcyo1MDB9KX0scyoxMDApfX0+UmFwaWQgRmlyZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlJlYWwtV29ybGQgRXhhbXBsZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbW1vbiB1c2UgY2FzZXMgZm9yIHRvYXN0IG5vdGlmaWNhdGlvbnMgaW4gYXBwbGljYXRpb25zLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHM9YXdhaXQgeXMuc2hvdyh7bWVzc2FnZToiU2F2aW5nIGNoYW5nZXMuLi4iLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57cy5kaXNtaXNzKCkseXMuc3VjY2VzcygiQ2hhbmdlcyBzYXZlZCBzdWNjZXNzZnVsbHkhIil9LDJlMyl9fT5TYXZlIE9wZXJhdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuZXJyb3IoIkZhaWxlZCB0byBjb25uZWN0IHRvIHNlcnZlci4gUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbi4iKX19Pk5ldHdvcmsgRXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLndhcm5pbmcoIllvdXIgc2Vzc2lvbiB3aWxsIGV4cGlyZSBpbiA1IG1pbnV0ZXMiKX19PlNlc3Npb24gV2FybmluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuc3VjY2VzcygiRmlsZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkhIil9fT5VcGxvYWQgQ29tcGxldGU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Qcm9ncmFtbWF0aWMgQ29udHJvbDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQWR2YW5jZWQgY29udHJvbCBvdmVyIHRvYXN0IGJlaGF2aW9yLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHM9YXdhaXQgeXMuc2hvdyh7bWVzc2FnZToiVGhpcyB0b2FzdCBjYW4gYmUgZGlzbWlzc2VkIHByb2dyYW1tYXRpY2FsbHkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57cy5kaXNtaXNzKCkseXMuc3VjY2VzcygiVG9hc3QgZGlzbWlzc2VkIGFmdGVyIDIgc2Vjb25kcyIpfSwyZTMpfX0+UHJvZ3JhbW1hdGljIERpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLmluZm8oIkluZm8gbWVzc2FnZSIsMmUzKSxzZXRUaW1lb3V0KCgpPT55cy5zdWNjZXNzKCJTdWNjZXNzIG1lc3NhZ2UiLDJlMyksNTAwKSxzZXRUaW1lb3V0KCgpPT55cy53YXJuaW5nKCJXYXJuaW5nIG1lc3NhZ2UiLDJlMyksMWUzKSxzZXRUaW1lb3V0KCgpPT55cy5lcnJvcigiRXJyb3IgbWVzc2FnZSIsMmUzKSwxNTAwKX19PkNvbnZlbmllbmNlIE1ldGhvZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsImRlbW9GdW5jIil9KTt2YXIgZUosVnUseXMsdWx0PWcoKCk9PntwZSgpO2t0KCk7R24oKTtBeWEoKTtFcigpO2h0KCk7ZUo9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFZ1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx5cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdG9hc3QiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RvYXN0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sZUoodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXNzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJtZXNzYWdlImluIHosImhhcyIpLGdldDppKHo9PnoubWVzc2FnZSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6Lm1lc3NhZ2U9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLGVKKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idHlwZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnR5cGUsImdldCIpLHNldDppKCh6LE4pPT57ei50eXBlPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxlSih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkdXJhdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZHVyYXRpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGVKKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc1Zpc2libGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pc1Zpc2libGUsImdldCIpLHNldDppKCh6LE4pPT57ei5pc1Zpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLGVKKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89SXlhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siLCJPdmVybGF5Il07c3RhdGljIHRvYXN0Q29udGFpbmVycz1uZXcgTWFwO3N0YXRpYyBnZXRPckNyZWF0ZUNvbnRhaW5lcihNKXtpZighdGhpcy50b2FzdENvbnRhaW5lcnMuaGFzKE0pKXtsZXQgej1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzd2l0Y2goei5jbGFzc05hbWU9YHRvYXN0LWNvbnRhaW5lciB0b2FzdC1jb250YWluZXItJHtNfWAsei5zdHlsZS5jc3NUZXh0PWAKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgei1pbmRleDogJHtiby5vdmVybGF5LnRvYXN0fTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgYCxNKXtjYXNlInRvcC1yaWdodCI6ei5zdHlsZS50b3A9IjAiLHouc3R5bGUucmlnaHQ9IjAiO2JyZWFrO2Nhc2UidG9wLWxlZnQiOnouc3R5bGUudG9wPSIwIix6LnN0eWxlLmxlZnQ9IjAiO2JyZWFrO2Nhc2UiYm90dG9tLXJpZ2h0Ijp6LnN0eWxlLmJvdHRvbT0iMCIsei5zdHlsZS5yaWdodD0iMCI7YnJlYWs7Y2FzZSJib3R0b20tbGVmdCI6ei5zdHlsZS5ib3R0b209IjAiLHouc3R5bGUubGVmdD0iMCI7YnJlYWs7Y2FzZSJ0b3AtY2VudGVyIjp6LnN0eWxlLnRvcD0iMCIsei5zdHlsZS5sZWZ0PSI1MCUiLHouc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKC01MCUpIjticmVhaztjYXNlImJvdHRvbS1jZW50ZXIiOnouc3R5bGUuYm90dG9tPSIwIix6LnN0eWxlLmxlZnQ9IjUwJSIsei5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrfWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoeiksdGhpcy50b2FzdENvbnRhaW5lcnMuc2V0KE0seil9cmV0dXJuIHRoaXMudG9hc3RDb250YWluZXJzLmdldChNKX1zdGF0aWMgYXN5bmMgc2hvdyhNKXtsZXQgej10eXBlb2YgTT09InN0cmluZyI/e21lc3NhZ2U6TX06TSxOPW5ldyB5O3JldHVybiBOLm1lc3NhZ2U9ei5tZXNzYWdlLE4udHlwZT16LnR5cGV8fCJpbmZvIixOLmR1cmF0aW9uPXouZHVyYXRpb258fDNlMyx0aGlzLmdldE9yQ3JlYXRlQ29udGFpbmVyKHoucG9zaXRpb258fCJ0b3AtcmlnaHQiKS5hcHBlbmRDaGlsZChOKSxhd2FpdCBOLnVwZGF0ZUNvbXBsZXRlLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e04uaXNWaXNpYmxlPSEwfSksTi5kdXJhdGlvbj4wJiZzZXRUaW1lb3V0KCgpPT57Ti5kaXNtaXNzKCl9LE4uZHVyYXRpb24pLE59c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coTSl7cmV0dXJuIHRoaXMuc2hvdyhNKX1zdGF0aWMgaW5mbyhNLHope3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6TSx0eXBlOiJpbmZvIixkdXJhdGlvbjp6fSl9c3RhdGljIHN1Y2Nlc3MoTSx6KXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToic3VjY2VzcyIsZHVyYXRpb246en0pfXN0YXRpYyB3YXJuaW5nKE0seil7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTpNLHR5cGU6Indhcm5pbmciLGR1cmF0aW9uOnp9KX1zdGF0aWMgZXJyb3IoTSx6KXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToiZXJyb3IiLGR1cmF0aW9uOnp9KX0jZT1WdSh0aGlzLG8sIiIpO2dldCBtZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG1lc3NhZ2UoTSl7dGhpcy4jZT1NfSN0PShWdSh0aGlzLGwpLFZ1KHRoaXMsZCwiaW5mbyIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiN0fXNldCB0eXBlKE0pe3RoaXMuI3Q9TX0jYT0oVnUodGhpcyx1KSxWdSh0aGlzLGIsM2UzKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGR1cmF0aW9uKE0pe3RoaXMuI2E9TX0jcz0oVnUodGhpcyx2KSxWdSh0aGlzLG0sITEpKTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzVmlzaWJsZShNKXt0aGlzLiNzPU19Y29uc3RydWN0b3IoKXtzdXBlcigpLFZ1KHRoaXMsZiksdGEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzdmlzaWJsZV0pIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgfQoKICAgICAgLnRvYXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmYiLCIjMjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMSkiLCJyZ2JhKDAsMCwwLDAuMykiKX07CiAgICAgICAgbWluLXdpZHRoOiAzMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnRvYXN0OmhvdmVyIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpOwogICAgICB9CgogICAgICAuaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jbG9zZSBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFR5cGUtc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIDpob3N0KFt0eXBlPSJpbmZvIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogIzAwODRmZjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9InN1Y2Nlc3MiXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0id2FybmluZyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNmNTllMGI7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJlcnJvciJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC8qIFByb2dyZXNzIGJhciAqLwogICAgICAucHJvZ3Jlc3MgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7CiAgICAgICAgYW5pbWF0aW9uOiBwcm9ncmVzcyBsaW5lYXIgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHJvZ3Jlc3MgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IE09e2luZm86d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTExYTEgMSAwIDEwLTIgMHYySDdhMSAxIDAgMTAwIDJoMnYyYTEgMSAwIDEwMiAwdi0yaDJhMSAxIDAgMTAwLTJoLTJWN3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHN1Y2Nlc3M6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy05LjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEwLjU4NiA3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHdhcm5pbmc6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjI1NyAzLjA5OWMuNzY1LTEuMzYgMi43MjItMS4zNiAzLjQ4NiAwbDUuNTggOS45MmMuNzUgMS4zMzQtLjIxMyAyLjk4LTEuNzQyIDIuOThINC40MmMtMS41MyAwLTIuNDkzLTEuNjQ2LTEuNzQzLTIuOThsNS41OC05Ljkyek0xMSAxM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0xLThhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMDAyIDBWNmExIDEgMCAwMC0xLTF6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgICAgPC9zdmc+YCxlcnJvcjp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTguNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0TDguNTg2IDEwbC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDExLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDExLjQxNCAxMGwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA4LjU4NiA4LjcwNyA3LjI5M3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gfTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idG9hc3QiIEBjbGljaz0ke3RoaXMuZGlzbWlzc30+CiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbiI+CiAgICAgICAgICAke01bdGhpcy50eXBlXX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlIj4ke3RoaXMubWVzc2FnZX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTQuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNy4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDIuNjQ3IDIuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtMi42NDYgMi42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA0LjY0NiA1LjM1NGEuNS41IDAgMCAxIDAtLjcwOHoiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciIgc3R5bGU9ImFuaW1hdGlvbi1kdXJhdGlvbjogJHt0aGlzLmR1cmF0aW9ufW1zIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNtaXNzKCl7dGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2Uoej0+c2V0VGltZW91dCh6LDMwMCkpLHRoaXMucmVtb3ZlKCk7bGV0IE09dGhpcy5wYXJlbnRFbGVtZW50O2lmKE0mJk0uY2hpbGRyZW4ubGVuZ3RoPT09MCl7TS5yZW1vdmUoKTtmb3IobGV0W3osTl1vZiB5LnRvYXN0Q29udGFpbmVycy5lbnRyaWVzKCkpaWYoTj09PU0pe3kudG9hc3RDb250YWluZXJzLmRlbGV0ZSh6KTticmVha319fWZpcnN0VXBkYXRlZCgpe3RoaXMuc2V0QXR0cmlidXRlKCJ0eXBlIix0aGlzLnR5cGUpfXN0YXRpY3tWdShhLHQpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgTnlhPWcoKCk9Pnt1bHQoKX0pO3ZhciBSeWE9ZygoKT0+e3h5YSgpO1N5YSgpO1R5YSgpO0x5YSgpO1B5YSgpO055YSgpfSk7dmFyIE95YT1nKCgpPT57eXgoKX0pO3ZhciBGeWE9ZygoKT0+e1dnKCl9KTt2YXIgQnlhPWcoKCk9PntPeWEoKTtGeWEoKX0pO3ZhciBIeWE9ZygoKT0+e0VpKCl9KTt2YXIgcXlhPWcoKCk9PntIb3QoKX0pO3ZhciBqeWE9ZygoKT0+e29udCgpfSk7dmFyIFZ5YT1nKCgpPT57eW50KCl9KTt2YXIgVXlhPWcoKCk9PntsbnQoKX0pO3ZhciBXeWE9ZygoKT0+e2RudCgpfSk7dmFyIEd5YT1nKCgpPT57Wm90KCl9KTt2YXIgS3lhPWcoKCk9PntOMWUoKX0pO3ZhciBZeWE9ZygoKT0+e1gxZSgpfSk7dmFyIFp5YT1nKCgpPT57fSk7dmFyIFh5YT1nKCgpPT57WnlhKCl9KTt2YXIgUXlhPWcoKCk9PntobnQoKX0pO3ZhciBKeWE9ZygoKT0+e2dudCgpfSk7dmFyIGV3YT1nKCgpPT57WTFlKCk7RW50KCl9KTt2YXIgcjJlLHR3YT1nKCgpPT57cjJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkltYWdlQ3JvcHBlciIpfW9wdGlvbnM7Y2FudmFzO2N0eDtpbWc7b3ZlcmxheUNhbnZhcztvdmVybGF5Q3R4O2Nyb3BYPTA7Y3JvcFk9MDtjcm9wU2l6ZT0yMDA7bWluQ3JvcFNpemU9NTA7aXNEcmFnZ2luZz0hMTtpc1Jlc2l6aW5nPSExO2RyYWdTdGFydFg9MDtkcmFnU3RhcnRZPTA7cmVzaXplSGFuZGxlPSIiO2ltYWdlU2NhbGU9MTtpbWFnZU9mZnNldFg9MDtpbWFnZU9mZnNldFk9MDtjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9e21pblNpemU6NTAsb3V0cHV0U2l6ZTo4MDAsb3V0cHV0UXVhbGl0eTouOTUsLi4uZX0sdGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLm92ZXJsYXlDYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5vdmVybGF5Q3R4PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMuaW1nPW5ldyBJbWFnZX1hc3luYyBpbml0aWFsaXplKCl7YXdhaXQgdGhpcy5sb2FkSW1hZ2UoKSx0aGlzLnNldHVwQ2FudmFzZXMoKSx0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLnJlbmRlcigpfWFzeW5jIGxvYWRJbWFnZSgpe3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e3RoaXMuaW1nLm9ubG9hZD0oKT0+ZSgpLHRoaXMuaW1nLm9uZXJyb3I9dCx0aGlzLmltZy5zcmM9dGhpcy5vcHRpb25zLmltYWdlfSl9c2V0dXBDYW52YXNlcygpe2xldCBlPXRoaXMub3B0aW9ucy5jb250YWluZXIsdD1NYXRoLm1pbihlLmNsaWVudFdpZHRoLGUuY2xpZW50SGVpZ2h0KTt0aGlzLmNhbnZhcy53aWR0aD10LHRoaXMuY2FudmFzLmhlaWdodD10LHRoaXMuY2FudmFzLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLmNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5jYW52YXMuc3R5bGUudG9wPSIwIix0aGlzLmNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMud2lkdGg9dCx0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0PXQsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUudG9wPSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUubGVmdD0iMCIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSIsZS5hcHBlbmRDaGlsZCh0aGlzLmNhbnZhcyksZS5hcHBlbmRDaGlsZCh0aGlzLm92ZXJsYXlDYW52YXMpO2xldCBhPU1hdGgubWluKHQvdGhpcy5pbWcud2lkdGgsdC90aGlzLmltZy5oZWlnaHQpO3RoaXMuaW1hZ2VTY2FsZT1hLHRoaXMuaW1hZ2VPZmZzZXRYPSh0LXRoaXMuaW1nLndpZHRoKmEpLzIsdGhpcy5pbWFnZU9mZnNldFk9KHQtdGhpcy5pbWcuaGVpZ2h0KmEpLzI7bGV0IHI9dGhpcy5pbWcud2lkdGgqYSxuPXRoaXMuaW1nLmhlaWdodCphLG89TWF0aC5taW4ocixuLHQqLjgpO3RoaXMuY3JvcFNpemU9byouOCx0aGlzLmNyb3BYPSh0LXRoaXMuY3JvcFNpemUpLzIsdGhpcy5jcm9wWT0odC10aGlzLmNyb3BTaXplKS8yfXNldHVwRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmhhbmRsZU1vdXNlRG93bi5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZS5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuaGFuZGxlVG91Y2hTdGFydC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLmhhbmRsZVRvdWNoTW92ZS5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuaGFuZGxlVG91Y2hFbmQuYmluZCh0aGlzKSl9aGFuZGxlTW91c2VEb3duKGUpe2xldCB0PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPShlLmNsaWVudFgtdC5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Qud2lkdGgpLHI9KGUuY2xpZW50WS10LnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvdC5oZWlnaHQpLG49dGhpcy5nZXRSZXNpemVIYW5kbGUoYSxyKTtuPyh0aGlzLmlzUmVzaXppbmc9ITAsdGhpcy5yZXNpemVIYW5kbGU9bik6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGEscikmJih0aGlzLmlzRHJhZ2dpbmc9ITApLHRoaXMuZHJhZ1N0YXJ0WD1hLHRoaXMuZHJhZ1N0YXJ0WT1yfWhhbmRsZU1vdXNlTW92ZShlKXtsZXQgdD10aGlzLm92ZXJsYXlDYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT0oZS5jbGllbnRYLXQubGVmdCkqKHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aC90LndpZHRoKSxyPShlLmNsaWVudFktdC50b3ApKih0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0L3QuaGVpZ2h0KSxuPXRoaXMuZ2V0UmVzaXplSGFuZGxlKGEscik7aWYobj90aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPXRoaXMuZ2V0UmVzaXplQ3Vyc29yKG4pOnRoaXMuaXNJbnNpZGVDcm9wQXJlYShhLHIpP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9Im1vdmUiOnRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9ImRlZmF1bHQiLHRoaXMuaXNEcmFnZ2luZyl7bGV0IG89YS10aGlzLmRyYWdTdGFydFgsbD1yLXRoaXMuZHJhZ1N0YXJ0WSxwPXRoaXMuaW1hZ2VPZmZzZXRYLGQ9dGhpcy5pbWFnZU9mZnNldFgrdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLXRoaXMuY3JvcFNpemUsdT10aGlzLmltYWdlT2Zmc2V0WSxjPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZTt0aGlzLmNyb3BYPU1hdGgubWF4KHAsTWF0aC5taW4oZCx0aGlzLmNyb3BYK28pKSx0aGlzLmNyb3BZPU1hdGgubWF4KHUsTWF0aC5taW4oYyx0aGlzLmNyb3BZK2wpKSx0aGlzLmRyYWdTdGFydFg9YSx0aGlzLmRyYWdTdGFydFk9cix0aGlzLnJlbmRlcigpfXRoaXMuaXNSZXNpemluZyYmKHRoaXMuaGFuZGxlUmVzaXplKGEsciksdGhpcy5kcmFnU3RhcnRYPWEsdGhpcy5kcmFnU3RhcnRZPXIsdGhpcy5yZW5kZXIoKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmlzUmVzaXppbmc9ITEsdGhpcy5yZXNpemVIYW5kbGU9IiJ9aGFuZGxlVG91Y2hTdGFydChlKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHQ9ZS50b3VjaGVzWzBdLGE9bmV3IE1vdXNlRXZlbnQoIm1vdXNlZG93biIse2NsaWVudFg6dC5jbGllbnRYLGNsaWVudFk6dC5jbGllbnRZfSk7dGhpcy5oYW5kbGVNb3VzZURvd24oYSl9aGFuZGxlVG91Y2hNb3ZlKGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdD1lLnRvdWNoZXNbMF0sYT1uZXcgTW91c2VFdmVudCgibW91c2Vtb3ZlIix7Y2xpZW50WDp0LmNsaWVudFgsY2xpZW50WTp0LmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlTW92ZShhKX1oYW5kbGVUb3VjaEVuZChlKXtlLnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVNb3VzZVVwKCl9Z2V0UmVzaXplSGFuZGxlKGUsdCl7bGV0IHI9e253Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZfSxuZTp7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZfSxzdzp7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfSxzZTp7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9fTtmb3IobGV0W24sb11vZiBPYmplY3QuZW50cmllcyhyKSlpZihNYXRoLmFicyhlLW8ueCk8MjAmJk1hdGguYWJzKHQtby55KTwyMClyZXR1cm4gbjtyZXR1cm4iIn1nZXRSZXNpemVDdXJzb3IoZSl7cmV0dXJue253OiJudy1yZXNpemUiLG5lOiJuZS1yZXNpemUiLHN3OiJzdy1yZXNpemUiLHNlOiJzZS1yZXNpemUifVtlXXx8ImRlZmF1bHQifWlzSW5zaWRlQ3JvcEFyZWEoZSx0KXtyZXR1cm4gZT49dGhpcy5jcm9wWCYmZTw9dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplJiZ0Pj10aGlzLmNyb3BZJiZ0PD10aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9aGFuZGxlUmVzaXplKGUsdCl7bGV0IGE9ZS10aGlzLmRyYWdTdGFydFgscj10LXRoaXMuZHJhZ1N0YXJ0WSxuPXRoaXMuaW1hZ2VPZmZzZXRYLG89dGhpcy5pbWFnZU9mZnNldFksbD10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUscD10aGlzLmltYWdlT2Zmc2V0WSt0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlO3N3aXRjaCh0aGlzLnJlc2l6ZUhhbmRsZSl7Y2FzZSJzZSI6dGhpcy5jcm9wU2l6ZT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLE1hdGgubWluKHRoaXMuY3JvcFNpemUrTWF0aC5tYXgoYSxyKSxNYXRoLm1pbihsLXRoaXMuY3JvcFgscC10aGlzLmNyb3BZKSkpO2JyZWFrO2Nhc2UibnciOmxldCBkPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsdGhpcy5jcm9wU2l6ZS1NYXRoLm1heChhLHIpKSx1PXRoaXMuY3JvcFNpemUtZCxjPXRoaXMuY3JvcFgrdSxiPXRoaXMuY3JvcFkrdTtjPj1uJiZiPj1vJiYodGhpcy5jcm9wWD1jLHRoaXMuY3JvcFk9Yix0aGlzLmNyb3BTaXplPWQpO2JyZWFrO2Nhc2UibmUiOmxldCB2PU1hdGgubWF4KGEsLXIpLHg9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplK3YpLG09eC10aGlzLmNyb3BTaXplLGY9dGhpcy5jcm9wWS1tO2Y+PW8mJnRoaXMuY3JvcFgreDw9bCYmKHRoaXMuY3JvcFk9Zix0aGlzLmNyb3BTaXplPXgpO2JyZWFrO2Nhc2Uic3ciOmxldCB5PU1hdGgubWF4KC1hLHIpLE09TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplK3kpLHo9TS10aGlzLmNyb3BTaXplLE49dGhpcy5jcm9wWC16O04+PW4mJnRoaXMuY3JvcFkrTTw9cCYmKHRoaXMuY3JvcFg9Tix0aGlzLmNyb3BTaXplPU0pO2JyZWFrfX1yZW5kZXIoKXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpLHRoaXMuY3R4LmZpbGxTdHlsZT0iIzAwMDAwMCIsdGhpcy5jdHguZmlsbFJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5jdHguZHJhd0ltYWdlKHRoaXMuaW1nLHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguZmlsbFN0eWxlPSJyZ2JhKDAsIDAsIDAsIDAuNSkiLHRoaXMub3ZlcmxheUN0eC5maWxsUmVjdCh0aGlzLmltYWdlT2Zmc2V0WCx0aGlzLmltYWdlT2Zmc2V0WSx0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUsdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZSksdGhpcy5vdmVybGF5Q3R4LnNhdmUoKSx0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiPyh0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LmFyYyh0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BTaXplLzIsMCxNYXRoLlBJKjIpLHRoaXMub3ZlcmxheUN0eC5jbGlwKCkpOih0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LnJlY3QodGhpcy5jcm9wWCx0aGlzLmNyb3BZLHRoaXMuY3JvcFNpemUsdGhpcy5jcm9wU2l6ZSksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSksdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpLHRoaXMub3ZlcmxheUN0eC5yZXN0b3JlKCksdGhpcy5vdmVybGF5Q3R4LnN0cm9rZVN0eWxlPSJ3aGl0ZSIsdGhpcy5vdmVybGF5Q3R4LmxpbmVXaWR0aD0yLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LnN0cm9rZSgpKTp0aGlzLm92ZXJsYXlDdHguc3Ryb2tlUmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLmRyYXdSZXNpemVIYW5kbGVzKCl9ZHJhd1Jlc2l6ZUhhbmRsZXMoKXtsZXQgdD1be3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LHt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHt4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1dO3RoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9IndoaXRlIix0LmZvckVhY2goYT0+e3RoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKGEueCxhLnksOCwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmZpbGwoKX0pfWFzeW5jIGdldENyb3BwZWRJbWFnZSgpe2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQ9ZS5nZXRDb250ZXh0KCIyZCIpLGE9MS90aGlzLmltYWdlU2NhbGUscj10aGlzLmNyb3BTaXplKmEsbj10aGlzLm9wdGlvbnMub3V0cHV0U2l6ZTtuPnImJmNvbnNvbGUuaW5mbyhgUHJvZmlsZSBwaWN0dXJlOiBVcHNjYWxpbmcgZnJvbSAke01hdGgucm91bmQocil9cHggdG8gJHtufXB4YCksZS53aWR0aD1uLGUuaGVpZ2h0PW47bGV0IG89KHRoaXMuY3JvcFgtdGhpcy5pbWFnZU9mZnNldFgpKmEsbD0odGhpcy5jcm9wWS10aGlzLmltYWdlT2Zmc2V0WSkqYSxwPXRoaXMuY3JvcFNpemUqYTt0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiJiYodC5iZWdpblBhdGgoKSx0LmFyYyhuLzIsbi8yLG4vMiwwLE1hdGguUEkqMiksdC5jbGlwKCkpLHQuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSEwLHQuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIix0LmRyYXdJbWFnZSh0aGlzLmltZyxvLGwscCxwLDAsMCxuLG4pO2xldCB1PXRoaXMub3B0aW9ucy5pbWFnZS5pbmNsdWRlcygiaW1hZ2UvcG5nIik/ImltYWdlL3BuZyI6ImltYWdlL2pwZWciO3JldHVybiBlLnRvRGF0YVVSTCh1LHRoaXMub3B0aW9ucy5vdXRwdXRRdWFsaXR5KX1kZXN0cm95KCl7dGhpcy5jYW52YXMucmVtb3ZlKCksdGhpcy5vdmVybGF5Q2FudmFzLnJlbW92ZSgpfX19KTt2YXIgdjQsSm4scGx0LGF3YT1nKCgpPT57cGUoKTt3MigpO0VyKCk7R24oKTtHYSgpO0hnKCk7djIoKTt2MigpO3R3YSgpO2h0KCk7djQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEpuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxwbHQ9KCgpPT57bGV0IHM9W25lKCJkZWVzLXByb2ZpbGVwaWN0dXJlLW1vZGFsIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlByb2ZpbGVQaWN0dXJlTW9kYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSx2NCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaW5pdGlhbEltYWdlImluIFMsImhhcyIpLGdldDppKFM9PlMuaW5pdGlhbEltYWdlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaW5pdGlhbEltYWdlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSx2NCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaGFwZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNoYXBlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hhcGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHY0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ib3V0cHV0U2l6ZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm91dHB1dFNpemUsImdldCIpLHNldDppKChTLEkpPT57Uy5vdXRwdXRTaXplPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSx2NCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Im91dHB1dFF1YWxpdHkiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5vdXRwdXRRdWFsaXR5LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Mub3V0cHV0UXVhbGl0eT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksdjQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50U3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY3VycmVudFN0ZXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jdXJyZW50U3RlcCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmN1cnJlbnRTdGVwPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sTSx6KSx2NCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyb3BwZWRJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY3JvcHBlZEltYWdlImluIFMsImhhcyIpLGdldDppKFM9PlMuY3JvcHBlZEltYWdlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3JvcHBlZEltYWdlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSx2NCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvY2Vzc2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNQcm9jZXNzaW5nImluIFMsImhhcyIpLGdldDppKFM9PlMuaXNQcm9jZXNzaW5nLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaXNQcm9jZXNzaW5nPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSx2NChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfSNlPUpuKHRoaXMsbywiIik7Z2V0IGluaXRpYWxJbWFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBpbml0aWFsSW1hZ2Uoayl7dGhpcy4jZT1rfSN0PShKbih0aGlzLGwpLEpuKHRoaXMsZCwicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKGspe3RoaXMuI3Q9a30jYT0oSm4odGhpcyx1KSxKbih0aGlzLGIsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb3V0cHV0U2l6ZShrKXt0aGlzLiNhPWt9I3M9KEpuKHRoaXMsdiksSm4odGhpcyxtLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IG91dHB1dFF1YWxpdHkoayl7dGhpcy4jcz1rfSNpPShKbih0aGlzLGYpLEpuKHRoaXMsTSwiY3JvcCIpKTtnZXQgY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VycmVudFN0ZXAoayl7dGhpcy4jaT1rfSNyPShKbih0aGlzLHopLEpuKHRoaXMsQywiIikpO2dldCBjcm9wcGVkSW1hZ2UoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY3JvcHBlZEltYWdlKGspe3RoaXMuI3I9a30jbz0oSm4odGhpcyxfKSxKbih0aGlzLCQsITEpKTtnZXQgaXNQcm9jZXNzaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUHJvY2Vzc2luZyhrKXt0aGlzLiNvPWt9Y3JvcHBlcj0oSm4odGhpcyxFKSxudWxsKTt3aW5kb3dMYXllcjt6SW5kZXg9MDtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICB9CgogICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwYTBhMGEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCIwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgd2lkdGg6IDQ4MHB4OwogICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGFuaW1hdGlvbjogbW9kYWxTaG93IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgbW9kYWxTaG93IHsKICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubW9kYWwtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDUycHg7CiAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5jcm9wcGVyLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoImluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDYpIiwiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgICB3aWR0aDogMTgwcHg7CiAgICAgICAgaGVpZ2h0OiAxODBweDsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpIiwiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uucm91bmQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICB9CgogICAgICAuc3VjY2Vzcy1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzEwYjk4MSIsIiMxMGI5ODEiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGFuaW1hdGlvbjogc3VjY2Vzc1B1bHNlIDAuNHMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3VjY2Vzc1B1bHNlIHsKICAgICAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgb3BhY2l0eTogMDsgfQogICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wMik7IH0KICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfQogICAgICB9CgogICAgICAubW9kYWwtZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDI0cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuaW5zdHJ1Y3Rpb25zIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICB9CgogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWFyZ2luOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwtYm9keSB7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMud2luZG93TGF5ZXI9YXdhaXQgUm8uY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT50aGlzLmNsb3NlKCkpLHRoaXMuekluZGV4PV9hLmdldE5leHRaSW5kZXgoKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLXotaW5kZXgiLHRoaXMuekluZGV4LnRvU3RyaW5nKCkpLF9hLnJlZ2lzdGVyKHRoaXMsdGhpcy56SW5kZXgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNyb3BwZXImJnRoaXMuY3JvcHBlci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksX2EudW5yZWdpc3Rlcih0aGlzKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGFpbmVyIiBAY2xpY2s9JHtrPT5rLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJtb2RhbC10aXRsZSI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj8iQWRqdXN0IEltYWdlIjoiU3VjY2VzcyJ9CiAgICAgICAgICA8L2gzPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2xvc2UtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmNsb3NlfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj4KICAgICAgICAgICAgICBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBzcXVhcmUgdG8gc2VsZWN0IHlvdXIgcHJvZmlsZSBhcmVhCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcm9wcGVyLWNvbnRhaW5lciIgaWQ9ImNyb3BwZXJDb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgJHt0aGlzLmlzUHJvY2Vzc2luZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucyI+U2F2aW5nLi4uPC9kaXY+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgPGltZyAKICAgICAgICAgICAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UgJHt0aGlzLnNoYXBlfSIgCiAgICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLmNyb3BwZWRJbWFnZX0iIAogICAgICAgICAgICAgICAgICBhbHQ9IkNyb3BwZWQgcHJldmlldyIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWNjZXNzLW1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpjaGVjayIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+TG9va2luZyBnb29kITwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiP3dgCiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuY2xvc2V9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ3JvcH0+CiAgICAgICAgICAgICAgU2F2ZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCImJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZUNyb3BwZXIoKX1hc3luYyBpbml0aWFsaXplQ3JvcHBlcigpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IGs9dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjcm9wcGVyQ29udGFpbmVyIik7ayYmKHRoaXMuY3JvcHBlcj1uZXcgcjJlKHtjb250YWluZXI6ayxpbWFnZTp0aGlzLmluaXRpYWxJbWFnZSxzaGFwZTp0aGlzLnNoYXBlLGFzcGVjdFJhdGlvOjEsb3V0cHV0U2l6ZTp0aGlzLm91dHB1dFNpemUsb3V0cHV0UXVhbGl0eTp0aGlzLm91dHB1dFF1YWxpdHl9KSxhd2FpdCB0aGlzLmNyb3BwZXIuaW5pdGlhbGl6ZSgpKX1hc3luYyBoYW5kbGVDcm9wKCl7aWYodGhpcy5jcm9wcGVyKXRyeXt0aGlzLmlzUHJvY2Vzc2luZz0hMCx0aGlzLmN1cnJlbnRTdGVwPSJwcmV2aWV3Iixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBrPWF3YWl0IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkSW1hZ2UoKTt0aGlzLmNyb3BwZWRJbWFnZT1rLGF3YWl0IG5ldyBQcm9taXNlKFM9PnNldFRpbWVvdXQoUyw4MDApKSx0aGlzLmlzUHJvY2Vzc2luZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOntjcm9wcGVkSW1hZ2U6dGhpcy5jcm9wcGVkSW1hZ2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksc2V0VGltZW91dCgoKT0+e3RoaXMuY2xvc2UoKX0sMTUwMCl9Y2F0Y2goayl7Y29uc29sZS5lcnJvcigiRXJyb3IgY3JvcHBpbmcgaW1hZ2U6IixrKSx0aGlzLmlzUHJvY2Vzc2luZz0hMX19Y2xvc2UoKXt0aGlzLnJlbW92ZSgpfXN0YXRpY3tKbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgc3dhLGl3YT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7aGx0KCk7c3dhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNDhweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tb3V0cHV0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgIG1heC1oZWlnaHQ6IDEwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgICB9CiAgICAgIAogICAgICAuZmVhdHVyZS1saXN0IGxpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlW3NoYXBlPSJyb3VuZCJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCh0PT57bGV0IGE9dC50YXJnZXQ7Y29uc29sZS5sb2coIlJvdW5kIHByb2ZpbGUgcGljdHVyZSBjaGFuZ2VkOiIsYS52YWx1ZT8uc3Vic3RyaW5nKDAsNTApKyIuLi4iKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZmlsZSBQaWN0dXJlIElucHV0In0gLnN1YnRpdGxlPSR7IkJhc2ljIHVzYWdlIHdpdGggcm91bmQgYW5kIHNxdWFyZSBzaGFwZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChSb3VuZCkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgYW4gaW1hZ2UiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlByb2ZpbGUgUGljdHVyZSAoU3F1YXJlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1cHBvcnRzIEpQRUcsIFBORywgYW5kIFdlYlAgZm9ybWF0cyIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldDtjb25zb2xlLmxvZyhgUHJvZmlsZSAoc2l6ZSAke3Iuc2l6ZX0pIGNoYW5nZWRgKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTaXplIFZhcmlhdGlvbnMifSAuc3VidGl0bGU9JHsiUHJvZmlsZSBwaWN0dXJlcyBpbiBkaWZmZXJlbnQgc2l6ZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iU21hbGwgKDgwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjgwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9Ik1lZGl1bSAoMTIwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjEyMCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJMYXJnZSAoMTYwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjE2MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S0lDQThaR1ZtY3o0S0lDQWdJRHhzYVc1bFlYSkhjbUZrYVdWdWRDQnBaRDBpWjNKaFpHbGxiblFpSUhneFBTSXdKU0lnZVRFOUlqQWxJaUI0TWowaU1UQXdKU0lnZVRJOUlqRXdNQ1VpUGdvZ0lDQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqQWxJaUJ6ZEc5d0xXTnZiRzl5UFNJak5qWTNaV1ZoSWlBdlBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU0zTmpSaVlUSWlJQzgrQ2lBZ0lDQThMMnhwYm1WaGNrZHlZV1JwWlc1MFBnb2dJRHd2WkdWbWN6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrYVdWdWRDa2lJQzgrQ2lBZ1BIUmxlSFFnZUQwaU5UQWxJaUI1UFNJMU1DVWlJR1J2YldsdVlXNTBMV0poYzJWc2FXNWxQU0p0YVdSa2JHVWlJSFJsZUhRdFlXNWphRzl5UFNKdGFXUmtiR1VpSUdadmJuUXRabUZ0YVd4NVBTSkJjbWxoYkNJZ1ptOXVkQzF6YVhwbFBTSTRNQ0lnWm1sc2JEMGlkMmhwZEdVaVBrcEVQQzkwWlhoMFBnbzhMM04yWno0PSIsdD1zLnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtcHJvZmlsZSIpO3QmJih0LnZhbHVlPWUsdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHI9YS50YXJnZXQsbj1zLnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtb3V0cHV0Iik7biYmKG4udGV4dENvbnRlbnQ9ci52YWx1ZT9gSW1hZ2UgZGF0YTogJHtyLnZhbHVlLnN1YnN0cmluZygwLDgwKX0uLi5gOiJObyBpbWFnZSBzZWxlY3RlZCIpfSkpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJlLWZpbGxlZCBhbmQgVmFsdWUgQmluZGluZyJ9IC5zdWJ0aXRsZT0keyJQcm9maWxlIHBpY3R1cmUgd2l0aCBpbml0aWFsIHZhbHVlIGFuZCBjaGFuZ2UgdHJhY2tpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgaWQ9InByZWZpbGxlZC1wcm9maWxlIgogICAgICAgICAgbGFiZWw9IkVkaXQgRXhpc3RpbmcgUHJvZmlsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayB0aGUgZWRpdCBidXR0b24gdG8gY2hhbmdlIG9yIGRlbGV0ZSB0byByZW1vdmUiCiAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICBzaXplPSIxNTAiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJwcmVmaWxsZWQtb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgSW1hZ2UgZGF0YSB3aWxsIGFwcGVhciBoZXJlIHdoZW4gY2hhbmdlZAogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI2Rpc2FibGVkLXByb2ZpbGUiKTtlJiYoZS52YWx1ZT0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaUkyTmpZMk5qWXlJZ0x6NEtJQ0E4ZEdWNGRDQjRQU0kxTUNVaUlIazlJalV3SlNJZ1pHOXRhVzVoYm5RdFltRnpaV3hwYm1VOUltMXBaR1JzWlNJZ2RHVjRkQzFoYm1Ob2IzSTlJbTFwWkdSc1pTSWdabTl1ZEMxbVlXMXBiSGs5SWtGeWFXRnNJaUJtYjI1MExYTnBlbVU5SWpZd0lpQm1hV3hzUFNKM2FHbDBaU0krVGtFOEwzUmxlSFErQ2p3dmMzWm5QZz09Iil9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlJlcXVpcmVkIEZpZWxkIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGlkPSJkaXNhYmxlZC1wcm9maWxlIgogICAgICAgICAgICBsYWJlbD0iRGlzYWJsZWQgU3RhdGUiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDYW5ub3QgYmUgZWRpdGVkIgogICAgICAgICAgICBzaGFwZT0ic3F1YXJlIgogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJVcGxvYWQgT25seSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkRlbGV0ZSBub3QgYWxsb3dlZCIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICAuYWxsb3dEZWxldGU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIGZlYXR1cmUgc2V0IG9mIHRoZSBwcm9maWxlIHBpY3R1cmUgaW5wdXQifT4KICAgICAgICA8dWwgY2xhc3M9ImZlYXR1cmUtbGlzdCI+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBVcGxvYWQ6PC9zdHJvbmc+IENsaWNrIHRvIHVwbG9hZCBvciBkcmFnICYgZHJvcCBpbWFnZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+SW1hZ2UgQ3JvcHBpbmc6PC9zdHJvbmc+IEludGVyYWN0aXZlIGNyb3AgdG9vbCB3aXRoIHJlc2l6ZSBoYW5kbGVzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlNoYXBlIFN1cHBvcnQ6PC9zdHJvbmc+IFJvdW5kIG9yIHNxdWFyZSBwcm9maWxlIHBpY3R1cmVzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlNpemUgQ3VzdG9taXphdGlvbjo8L3N0cm9uZz4gQWRqdXN0YWJsZSBkaW1lbnNpb25zPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlByZXZpZXcgJiBFZGl0Ojwvc3Ryb25nPiBIb3ZlciBvdmVybGF5IHdpdGggZWRpdCBhbmQgZGVsZXRlIG9wdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+RmlsZSBWYWxpZGF0aW9uOjwvc3Ryb25nPiBGb3JtYXQgYW5kIHNpemUgcmVzdHJpY3Rpb25zPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlJlc3BvbnNpdmUgRGVzaWduOjwvc3Ryb25nPiBXb3JrcyBvbiBkZXNrdG9wIGFuZCBtb2JpbGUgZGV2aWNlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5Gb3JtIEludGVncmF0aW9uOjwvc3Ryb25nPiBTdGFuZGFyZCBmb3JtIHZhbHVlIGJpbmRpbmcgYW5kIHZhbGlkYXRpb248L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+QWNjZXNzaWJpbGl0eTo8L3N0cm9uZz4gS2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgc2NyZWVuIHJlYWRlciBzdXBwb3J0PC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlotSW5kZXggTWFuYWdlbWVudDo8L3N0cm9uZz4gUHJvcGVyIG1vZGFsIHN0YWNraW5nIHdpdGggcmVnaXN0cnk8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPHN0cm9uZz5TdXBwb3J0ZWQgRm9ybWF0czo8L3N0cm9uZz4gSlBFRywgUE5HLCBXZWJQPGJyPgogICAgICAgICAgPHN0cm9uZz5NYXggRmlsZSBTaXplOjwvc3Ryb25nPiA1TUIgKGNvbmZpZ3VyYWJsZSk8YnI+CiAgICAgICAgICA8c3Ryb25nPk91dHB1dCBGb3JtYXQ6PC9zdHJvbmc+IEJhc2U2NCBlbmNvZGVkIEpQRUcKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFBsLEpzLEFlcyxobHQ9ZygoKT0+e3BlKCk7RWkoKTtHYSgpO2J4KCk7YXdhKCk7aXdhKCk7aHQoKTtQbD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSnM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEFlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W107dmFyIGllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRQcm9maWxlUGljdHVyZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCB0ZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6TnVtYmVyfSldLEg9W0woe3R5cGU6QXJyYXl9KV0sST1bTCh7dHlwZTpOdW1iZXJ9KV0sSz1bTCh7dHlwZTpOdW1iZXJ9KV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0sUGwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InZhbHVlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUudmFsdWUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS52YWx1ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sbyxsKSxQbCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ic2hhcGUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5zaGFwZSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLnNoYXBlPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxkLHUpLFBsKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InNpemUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5zaXplLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuc2l6ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sYix2KSxQbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4icGxhY2Vob2xkZXIiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLnBsYWNlaG9sZGVyPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxtLGYpLFBsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dVcGxvYWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJhbGxvd1VwbG9hZCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmFsbG93VXBsb2FkLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuYWxsb3dVcGxvYWQ9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LE0seiksUGwodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0RlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImFsbG93RGVsZXRlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuYWxsb3dEZWxldGUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5hbGxvd0RlbGV0ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sQyxfKSxQbCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibWF4RmlsZVNpemUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5tYXhGaWxlU2l6ZSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLm1heEZpbGVTaXplPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSwkLEUpLFBsKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0ZWRGb3JtYXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iYWNjZXB0ZWRGb3JtYXRzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuYWNjZXB0ZWRGb3JtYXRzLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuYWNjZXB0ZWRGb3JtYXRzPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxrLFMpLFBsKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im91dHB1dFNpemUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5vdXRwdXRTaXplLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUub3V0cHV0U2l6ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sUCxSKSxQbCh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJvdXRwdXRRdWFsaXR5ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUub3V0cHV0UXVhbGl0eSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLm91dHB1dFF1YWxpdHk9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LFYsVyksUGwodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iaXNIb3ZlcmVkImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaXNIb3ZlcmVkLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuaXNIb3ZlcmVkPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxCLFUpLFBsKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJpc0RyYWdnaW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaXNEcmFnZ2luZywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmlzRHJhZ2dpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEYsaiksUGwodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iaXNMb2FkaW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaXNMb2FkaW5nLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuaXNMb2FkaW5nPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxsZSxRKSxQbChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTp0ZX0sbnVsbCx0KSxpZT1hPWUudmFsdWUsdGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dGV9KX1zdGF0aWMgZGVtbz1zd2E7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUpzKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKHRlKXt0aGlzLiNlPXRlfSN0PShKcyh0aGlzLGwpLEpzKHRoaXMsZCwicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKHRlKXt0aGlzLiN0PXRlfSNhPShKcyh0aGlzLHUpLEpzKHRoaXMsYiwxMjApKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBzaXplKHRlKXt0aGlzLiNhPXRlfSNzPShKcyh0aGlzLHYpLEpzKHRoaXMsbSwiIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNzfXNldCBwbGFjZWhvbGRlcih0ZSl7dGhpcy4jcz10ZX0jaT0oSnModGhpcyxmKSxKcyh0aGlzLE0sITApKTtnZXQgYWxsb3dVcGxvYWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWxsb3dVcGxvYWQodGUpe3RoaXMuI2k9dGV9I3I9KEpzKHRoaXMseiksSnModGhpcyxDLCEwKSk7Z2V0IGFsbG93RGVsZXRlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFsbG93RGVsZXRlKHRlKXt0aGlzLiNyPXRlfSNvPShKcyh0aGlzLF8pLEpzKHRoaXMsJCw1KjEwMjQqMTAyNCkpO2dldCBtYXhGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNvfXNldCBtYXhGaWxlU2l6ZSh0ZSl7dGhpcy4jbz10ZX0jbj0oSnModGhpcyxFKSxKcyh0aGlzLGssWyJpbWFnZS9qcGVnIiwiaW1hZ2UvcG5nIiwiaW1hZ2Uvd2VicCJdKSk7Z2V0IGFjY2VwdGVkRm9ybWF0cygpe3JldHVybiB0aGlzLiNufXNldCBhY2NlcHRlZEZvcm1hdHModGUpe3RoaXMuI249dGV9I2w9KEpzKHRoaXMsUyksSnModGhpcyxQLDgwMCkpO2dldCBvdXRwdXRTaXplKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG91dHB1dFNpemUodGUpe3RoaXMuI2w9dGV9I2M9KEpzKHRoaXMsUiksSnModGhpcyxWLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2N9c2V0IG91dHB1dFF1YWxpdHkodGUpe3RoaXMuI2M9dGV9I2Q9KEpzKHRoaXMsVyksSnModGhpcyxCLCExKSk7Z2V0IGlzSG92ZXJlZCgpe3JldHVybiB0aGlzLiNkfXNldCBpc0hvdmVyZWQodGUpe3RoaXMuI2Q9dGV9I3U9KEpzKHRoaXMsVSksSnModGhpcyxGLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jdX1zZXQgaXNEcmFnZ2luZyh0ZSl7dGhpcy4jdT10ZX0jcD0oSnModGhpcyxqKSxKcyh0aGlzLGxlLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCBpc0xvYWRpbmcodGUpe3RoaXMuI3A9dGV9bW9kYWxJbnN0YW5jZT0oSnModGhpcyxRKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnNxdWFyZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5kcmFnZ2luZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyOmhvdmVyIC5vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3ZlcmxheS1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpIiwicmdiYSgzOSwgMzksIDQyLCAwLjk1KSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuOSkiLCJyZ2JhKDIyMCwgMzgsIDM4LCAwLjkpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNkYzI2MjYiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wLXpvbmUtdGV4dCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oaWRkZW4taW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExvYWRpbmcgYW5pbWF0aW9uICovCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAubG9hZGluZy1vdmVybGF5LnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmNsaWNraW5nIHsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDAuM3MgZWFzZS1vdXQ7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgCiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJwcm9maWxlLWNvbnRhaW5lciIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgICAgICBAZHJhZ292ZXI9JHt0aGlzLmhhbmRsZURyYWdPdmVyfQogICAgICAgICAgQGRyYWdsZWF2ZT0ke3RoaXMuaGFuZGxlRHJhZ0xlYXZlfQogICAgICAgICAgQGRyb3A9JHt0aGlzLmhhbmRsZURyb3B9CiAgICAgICAgICBzdHlsZT0iLS1zaXplOiAke3RoaXMuc2l6ZX1weCIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLXBpY3R1cmUgJHt0aGlzLnNoYXBlfSAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSAke3RoaXMuaXNMb2FkaW5nJiYhdGhpcy52YWx1ZT8iY2xpY2tpbmciOiIifSI+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT93YAogICAgICAgICAgICAgIDxpbWcgY2xhc3M9InByb2ZpbGUtaW1hZ2UiIHNyYz0iJHt0aGlzLnZhbHVlfSIgYWx0PSJQcm9maWxlIHBpY3R1cmUiIC8+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6dXNlciIgaWNvblNpemU9IiR7dGhpcy5zaXplKi41fSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIGB9CiAgICAgICAgICAgIAogICAgICAgICAgICAke3RoaXMuaXNEcmFnZ2luZz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiIHN0eWxlPSJvcGFjaXR5OiAxIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Atem9uZS10ZXh0Ij4KICAgICAgICAgICAgICAgICAgRHJvcCBpbWFnZSBoZXJlCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy52YWx1ZSYmIXRoaXMuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5hbGxvd1VwbG9hZD93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im92ZXJsYXktYnV0dG9uIiBAY2xpY2s9JHt0ZT0+e3RlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1vZGFsKCl9fSB0aXRsZT0iQ2hhbmdlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6cGVuY2lsIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dEZWxldGU/d2AKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJvdmVybGF5LWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke3RlPT57dGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kZWxldGVQaWN0dXJlKCl9fSB0aXRsZT0iRGVsZXRlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6dHJhc2gyIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIAogICAgICAgICAgICAke3RoaXMuaXNMb2FkaW5nJiYhdGhpcy52YWx1ZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSBzaG93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8aW5wdXQKICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICBjbGFzcz0iaGlkZGVuLWlucHV0IgogICAgICAgICAgYWNjZXB0PSIke3RoaXMuYWNjZXB0ZWRGb3JtYXRzLmpvaW4oIiwiKX0iCiAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5oYW5kbGVGaWxlU2VsZWN0fQogICAgICAgIC8+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVDbGljaygpe2lmKCEodGhpcy5kaXNhYmxlZHx8IXRoaXMuYWxsb3dVcGxvYWQpJiYhdGhpcy52YWx1ZSl7dGhpcy5pc0xvYWRpbmc9ITA7bGV0IHRlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0IiksZWU9aSgoKT0+e3NldFRpbWVvdXQoKCk9PnsoIXRlLmZpbGVzfHx0ZS5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGVlKX0sMzAwKX0sImhhbmRsZUZvY3VzIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixlZSksdGUuY2xpY2soKX19aGFuZGxlRmlsZVNlbGVjdCh0ZSl7bGV0IGVlPXRlLnRhcmdldCxrZT1lZS5maWxlcz8uWzBdO3RoaXMuaXNMb2FkaW5nPSExLGtlJiZ0aGlzLnByb2Nlc3NGaWxlKGtlKSxlZS52YWx1ZT0iIn1oYW5kbGVEcmFnT3Zlcih0ZSl7dGUucHJldmVudERlZmF1bHQoKSwhdGhpcy5kaXNhYmxlZCYmdGhpcy5hbGxvd1VwbG9hZCYmKHRoaXMuaXNEcmFnZ2luZz0hMCl9aGFuZGxlRHJhZ0xlYXZlKCl7dGhpcy5pc0RyYWdnaW5nPSExfWhhbmRsZURyb3AodGUpe2lmKHRlLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKXJldHVybjtsZXQgZWU9dGUuZGF0YVRyYW5zZmVyPy5maWxlc1swXTtlZSYmdGhpcy5wcm9jZXNzRmlsZShlZSl9YXN5bmMgcHJvY2Vzc0ZpbGUodGUpe2lmKCF0aGlzLmFjY2VwdGVkRm9ybWF0cy5pbmNsdWRlcyh0ZS50eXBlKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6Iix0ZS50eXBlKTtyZXR1cm59aWYodGUuc2l6ZT50aGlzLm1heEZpbGVTaXplKXtjb25zb2xlLmVycm9yKCJGaWxlIHRvbyBsYXJnZToiLHRlLnNpemUpO3JldHVybn1sZXQgZWU9bmV3IEZpbGVSZWFkZXI7ZWUub25sb2FkPWFzeW5jIGtlPT57bGV0IFg9a2UudGFyZ2V0Py5yZXN1bHQ7YXdhaXQgdGhpcy5vcGVuTW9kYWwoWCl9LGVlLnJlYWRBc0RhdGFVUkwodGUpfWFzeW5jIG9wZW5Nb2RhbCh0ZSl7bGV0IGVlPXRlfHx0aGlzLnZhbHVlO2lmKCFlZSl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5oaWRkZW4taW5wdXQiKS5jbGljaygpO3JldHVybn10aGlzLm1vZGFsSW5zdGFuY2U9bmV3IHBsdCx0aGlzLm1vZGFsSW5zdGFuY2Uuc2hhcGU9dGhpcy5zaGFwZSx0aGlzLm1vZGFsSW5zdGFuY2UuaW5pdGlhbEltYWdlPWVlLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRTaXplPXRoaXMub3V0cHV0U2l6ZSx0aGlzLm1vZGFsSW5zdGFuY2Uub3V0cHV0UXVhbGl0eT10aGlzLm91dHB1dFF1YWxpdHksdGhpcy5tb2RhbEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInNhdmUiLChrZT0+e3RoaXMudmFsdWU9a2UuZGV0YWlsLmNyb3BwZWRJbWFnZSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubW9kYWxJbnN0YW5jZSl9ZGVsZXRlUGljdHVyZSgpe3RoaXMudmFsdWU9IiIsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSh0ZSl7dGhpcy52YWx1ZT10ZX1zdGF0aWN7SnMoYSx0KX19O3JldHVybiBpZT1hfSkoKX0pO3ZhciByd2E9ZygoKT0+e0h5YSgpO05udCgpO3F5YSgpO0ExZSgpO1JudCgpO2ludCgpO2p5YSgpO1Z5YSgpO1V5YSgpO1d5YSgpO0d5YSgpO0t5YSgpO1l5YSgpO1h5YSgpO09udCgpO0FudCgpO1F5YSgpO0p5YSgpO2V3YSgpO2hsdCgpfSk7dmFyIG93YSxud2E9ZygoKT0+e3BlKCk7b3dhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgcGFkZGluZzogMjRweDsKICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb0NvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm9uLVNlbGVjdGFibGUgQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QmFzaWMgY2hpcHMgd2l0aG91dCBzZWxlY3Rpb24gY2FwYWJpbGl0eS4gVXNlIGZvciBkaXNwbGF5LW9ubHkgdGFncy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJub25lIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToic3RhdHVzIix2YWx1ZToiQWN0aXZlIn0se2tleToidGllciIsdmFsdWU6IlByZW1pdW0ifSx7a2V5OiJyZWdpb24iLHZhbHVlOiJFVS1XZXN0In0se2tleToidHlwZSIsdmFsdWU6IkVudGVycHJpc2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNpbmdsZSBTZWxlY3Rpb24gQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q2xpY2sgdG8gc2VsZWN0IG9uZSBjaGlwIGF0IGEgdGltZS4gVXNlZnVsIGZvciBmaWx0ZXJzIGFuZCBvcHRpb25zLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9InNpbmdsZSIKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6ImFsbCIsdmFsdWU6IkFsbCBQcm9qZWN0cyJ9LHtrZXk6ImFjdGl2ZSIsdmFsdWU6IkFjdGl2ZSJ9LHtrZXk6ImFyY2hpdmVkIix2YWx1ZToiQXJjaGl2ZWQifSx7a2V5OiJkcmFmdHMiLHZhbHVlOiJEcmFmdHMifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpcGxlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgbXVsdGlwbGUgY2hpcHMgc2ltdWx0YW5lb3VzbHkuIEdyZWF0IGZvciB0YWcgc2VsZWN0aW9uLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im11bHRpcGxlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToianMiLHZhbHVlOiJKYXZhU2NyaXB0In0se2tleToidHMiLHZhbHVlOiJUeXBlU2NyaXB0In0se2tleToicmVhY3QiLHZhbHVlOiJSZWFjdCJ9LHtrZXk6InZ1ZSIsdmFsdWU6IlZ1ZSJ9LHtrZXk6ImFuZ3VsYXIiLHZhbHVlOiJBbmd1bGFyIn0se2tleToibm9kZSIsdmFsdWU6Ik5vZGUuanMifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlJlbW92YWJsZSBDaGlwcyB3aXRoIEtleXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q2hpcHMgd2l0aCByZW1vdmUgYnV0dG9ucyBhbmQga2V5LXZhbHVlIHBhaXJzLiBQZXJmZWN0IGZvciBkeW5hbWljIGxpc3RzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9InNpbmdsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiZW52Iix2YWx1ZToiUHJvZHVjdGlvbiJ9LHtrZXk6InZlcnNpb24iLHZhbHVlOiIyLjQuMSJ9LHtrZXk6ImJyYW5jaCIsdmFsdWU6Im1haW4ifSx7a2V5OiJhdXRob3IiLHZhbHVlOiJKb2huIERvZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWl4ZWQgQ29udGVudCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbWJpbmluZyBkaWZmZXJlbnQgY2hpcCB0eXBlcyBmb3IgY29tcGxleCBVSXMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgY2hpcHNBcmVSZW1vdmFibGUKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6InByaW9yaXR5Iix2YWx1ZToiSGlnaCJ9LHtrZXk6InN0YXR1cyIsdmFsdWU6IkluIFByb2dyZXNzIn0se2tleToiYnVnIix2YWx1ZToiQnVnIn0se2tleToiZmVhdHVyZSIsdmFsdWU6IkZlYXR1cmUifSx7a2V5OiJzcHJpbnQiLHZhbHVlOiJTcHJpbnQgMjMifSx7a2V5OiJhc3NpZ25lZSIsdmFsdWU6IkFsaWNlIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgQ3gsSTIsTmVzLGx3YT1nKCgpPT57cGUoKTtrdCgpO253YSgpO2h0KCk7Q3g9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEkyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxOZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoaXBzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGlwcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpCb29sZWFufSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCgpXSx5PVtMKHt0eXBlOkFycmF5fSldLEN4KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0aW9uTW9kZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGlvbk1vZGUsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3Rpb25Nb2RlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxDeCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoaXBzQXJlUmVtb3ZhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjaGlwc0FyZVJlbW92YWJsZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmNoaXBzQXJlUmVtb3ZhYmxlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY2hpcHNBcmVSZW1vdmFibGU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLEN4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZUNoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RhYmxlQ2hpcHMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RhYmxlQ2hpcHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RhYmxlQ2hpcHM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLEN4KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZENoaXAiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RlZENoaXAsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RlZENoaXA9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLEN4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0ZWRDaGlwcyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkQ2hpcHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RlZENoaXBzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxDeChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPW93YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPUkyKHRoaXMsbywic2luZ2xlIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VsZWN0aW9uTW9kZShDKXt0aGlzLiNlPUN9I3Q9KEkyKHRoaXMsbCksSTIodGhpcyxkLCExKSk7Z2V0IGNoaXBzQXJlUmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNoaXBzQXJlUmVtb3ZhYmxlKEMpe3RoaXMuI3Q9Q30jYT0oSTIodGhpcyx1KSxJMih0aGlzLGIsW10pKTtnZXQgc2VsZWN0YWJsZUNoaXBzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGFibGVDaGlwcyhDKXt0aGlzLiNhPUN9I3M9KEkyKHRoaXMsdiksSTIodGhpcyxtLG51bGwpKTtnZXQgc2VsZWN0ZWRDaGlwKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkQ2hpcChDKXt0aGlzLiNzPUN9I2k9KEkyKHRoaXMsZiksSTIodGhpcyxNLFtdKSk7Z2V0IHNlbGVjdGVkQ2hpcHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRDaGlwcyhDKXt0aGlzLiNpPUN9Y29uc3RydWN0b3IoKXtzdXBlcigpLEkyKHRoaXMseil9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jaGlwIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTsKICAgICAgfQoKICAgICAgLmNoaXA6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmNoaXA6YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjMjU2M2ViIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjMjU2M2ViIil9OwogICAgICB9CgogICAgICAuY2hpcEtleSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICAgICAgcGFkZGluZzogMHB4IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgLmNoaXBLZXkgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsKICAgICAgfQoKICAgICAgZGVlcy1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIGRlZXMtaWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgJHt0aGlzLnNlbGVjdGFibGVDaGlwcy5tYXAoQz0+d2AKICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdENoaXAoQyl9CiAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmlzU2VsZWN0ZWQoQyk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke0Mua2V5P3dgPGRpdiBjbGFzcz0iY2hpcEtleSI+JHtDLmtleX08L2Rpdj5gOndgYH0gJHtDLnZhbHVlfQogICAgICAgICAgICAgICR7dGhpcy5jaGlwc0FyZVJlbW92YWJsZT93YAogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke189PntfLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMucmVtb3ZlQ2hpcChDKX19CiAgICAgICAgICAgICAgICAgICAgICAuaWNvbj0keyJmYTp4bWFyayJ9CiAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31pc1NlbGVjdGVkKEMpe3JldHVybiB0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj90aGlzLnNlbGVjdGVkQ2hpcD90aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsQyk6ITE6dGhpcy5zZWxlY3RlZENoaXBzLnNvbWUoXz0+dGhpcy5pc1NhbWVDaGlwKF8sQykpfWlzU2FtZUNoaXAoQyxfKXtyZXR1cm4oQy5rZXkmJl8ua2V5fHxDLnZhbHVlPT09Xy52YWx1ZSkmJkMua2V5PT09Xy5rZXl9YXN5bmMgc2VsZWN0Q2hpcChDKXt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSImJih0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj90aGlzLmlzU2VsZWN0ZWQoQyk/KHRoaXMuc2VsZWN0ZWRDaGlwPW51bGwsdGhpcy5zZWxlY3RlZENoaXBzPVtdKToodGhpcy5zZWxlY3RlZENoaXA9Qyx0aGlzLnNlbGVjdGVkQ2hpcHM9W0NdKTp0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGlwbGUiJiYodGhpcy5pc1NlbGVjdGVkKEMpP3RoaXMuc2VsZWN0ZWRDaGlwcz10aGlzLnNlbGVjdGVkQ2hpcHMuZmlsdGVyKF89PiF0aGlzLmlzU2FtZUNoaXAoXyxDKSk6dGhpcy5zZWxlY3RlZENoaXBzPVsuLi50aGlzLnNlbGVjdGVkQ2hpcHMsQ10sdGhpcy5yZXF1ZXN0VXBkYXRlKCkpLGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRDaGlwcykpfXJlbW92ZUNoaXAoQyl7dGhpcy5zZWxlY3RhYmxlQ2hpcHM9dGhpcy5zZWxlY3RhYmxlQ2hpcHMuZmlsdGVyKF89PiF0aGlzLmlzU2FtZUNoaXAoXyxDKSksdGhpcy5zZWxlY3RlZENoaXBzPXRoaXMuc2VsZWN0ZWRDaGlwcy5maWx0ZXIoXz0+IXRoaXMuaXNTYW1lQ2hpcChfLEMpKSx0aGlzLnNlbGVjdGVkQ2hpcCYmdGhpcy5pc1NhbWVDaGlwKHRoaXMuc2VsZWN0ZWRDaGlwLEMpJiYodGhpcy5zZWxlY3RlZENoaXA9bnVsbCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c3RhdGlje0kyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBjd2E9ZygoKT0+e2x3YSgpfSk7dmFyIGR3YSx1d2E9ZygoKT0+e3BlKCk7SXQoKTtkd2E9aSgoKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRHcmlkIiksdD1be2lkOiJtZXRyaWNzMSIseDowLHk6MCx3OjMsaDoyLHRpdGxlOiJSZXZlbnVlIixpY29uOiJsdWNpZGU6ZG9sbGFyU2lnbiIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+JDEyNCw1NjM8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzIyYzU1ZTsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tdG9wOiA4cHg7Ij7ihpEgMTIuNSUgZnJvbSBsYXN0IG1vbnRoPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0se2lkOiJtZXRyaWNzMiIseDozLHk6MCx3OjMsaDoyLHRpdGxlOiJVc2VycyIsaWNvbjoibHVjaWRlOnVzZXJzIixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij44LDIzNDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjM2I4MmY2OyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSA1LjIlIGZyb20gbGFzdCB3ZWVrPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0se2lkOiJjaGFydDEiLHg6Nix5OjAsdzo2LGg6NCx0aXRsZToiQW5hbHl0aWNzIixpY29uOiJsdWNpZGU6bGluZUNoYXJ0Iixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IGhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjNzE3MTdhOyI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpsaW5lQ2hhcnQifSBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAxNnB4OyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2PkNoYXJ0IHZpc3VhbGl6YXRpb24gYXJlYTwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9XTtlLndpZGdldHM9dC5tYXAoeT0+KHsuLi55fSkpLGUuY2VsbEhlaWdodD04MCxlLm1hcmdpbj17dG9wOjEwLHJpZ2h0OjEwLGJvdHRvbToxMCxsZWZ0OjEwfSxlLmVuYWJsZUFuaW1hdGlvbj0hMCxlLnNob3dHcmlkTGluZXM9ITE7bGV0IGE9ZS5nZXRMYXlvdXQoKS5tYXAoeT0+KHsuLi55fSkpLHI9ZS53aWRnZXRzLm1hcCgoeSxNKT0+KHtpZDp5LmlkLHg6MCx5Ok09PT0wPzA6ZS53aWRnZXRzLnNsaWNlKDAsTSkucmVkdWNlKCh6LE4pPT56K04uaCwwKSx3OmUuY29sdW1ucyxoOnkuaH0pKTtlLmxheW91dHM9e2Jhc2U6YSxtb2JpbGU6cn07bGV0IG49cy5xdWVyeVNlbGVjdG9yKCIjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIiksbz1pKCgpPT57bGV0IHk9ZS5nZXRMYXlvdXQoKTtuLnRleHRDb250ZW50PWBBY3RpdmUgYnJlYWtwb2ludDogJHtlLmFjdGl2ZUJyZWFrcG9pbnR9IFx1MjAyMiBUaWxlczogJHt5Lmxlbmd0aH1gfSwidXBkYXRlU3RhdHVzIiksbD13aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzY4cHgpIikscD1pKCgpPT57bGV0IHk9bC5tYXRjaGVzPyJtb2JpbGUiOiJiYXNlIjtlLmFwcGx5QnJlYWtwb2ludExheW91dCh5KSxvKCl9LCJoYW5kbGVCcmVha3BvaW50Iik7dHlwZW9mIGwuYWRkRXZlbnRMaXN0ZW5lcj09ImZ1bmN0aW9uIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscCk6bC5hZGRMaXN0ZW5lcj8uKHApLHAoKTtsZXQgZD00O3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHk9Pntzd2l0Y2goeS50ZXh0Py50cmltKCkpe2Nhc2UiVG9nZ2xlIEFuaW1hdGlvbiI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmVuYWJsZUFuaW1hdGlvbj0hZS5lbmFibGVBbmltYXRpb259KTticmVhaztjYXNlIlRvZ2dsZSBHcmlkIExpbmVzIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2Uuc2hvd0dyaWRMaW5lcz0hZS5zaG93R3JpZExpbmVzfSk7YnJlYWs7Y2FzZSJBZGQgV2lkZ2V0Ijp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCB6PXtpZDpgd2lkZ2V0JHtkKyt9YCx4OjAseTowLHc6MyxoOjIsYXV0b1Bvc2l0aW9uOiEwLHRpdGxlOmBXaWRnZXQgJHtkLTF9YCxpY29uOiJsdWNpZGU6cGFja2FnZSIsY29udGVudDp3YAogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzcxNzE3YTsiPk5ldyB3aWRnZXQgY29udGVudDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsgZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfTtlLmFkZFdpZGdldCh6LCEwKX0pO2JyZWFrO2Nhc2UiQ29tcGFjdCBHcmlkIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuY29tcGFjdCgpfSk7YnJlYWs7Y2FzZSJUb2dnbGUgRWRpdCBNb2RlIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZWRpdGFibGU9IWUuZWRpdGFibGUseS50ZXh0PWUuZWRpdGFibGU/IkxvY2sgR3JpZCI6IlVubG9jayBHcmlkIn0pO2JyZWFrO2Nhc2UiUmVzZXQgTGF5b3V0Ijp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuYXBwbHlCcmVha3BvaW50TGF5b3V0KGUuYWN0aXZlQnJlYWtwb2ludCl9KTticmVhaztkZWZhdWx0OmJyZWFrfX0pO2xldCBjPW51bGwsYj0wLHY9aSgoeSxNKT0+e2xldCB6PWUuZ2V0TGF5b3V0KCk7Y29uc29sZS5ncm91cChgXHV7MUY1MDR9ICR7eX0gW0V2ZW50ICMkeysrYn1dYCksY29uc29sZS5sb2coIlRpbWVzdGFtcDoiLG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSksY29uc29sZS5sb2coIkdyaWQgQ29uZmlndXJhdGlvbjoiLHtjb2x1bW5zOmUuY29sdW1ucyxjZWxsSGVpZ2h0OmUuY2VsbEhlaWdodCxtYXJnaW46ZS5tYXJnaW4sZWRpdGFibGU6ZS5lZGl0YWJsZSxhY3RpdmVCcmVha3BvaW50OmUuYWN0aXZlQnJlYWtwb2ludH0pLGNvbnNvbGUubG9nKCJDdXJyZW50IExheW91dDoiLHopLGNvbnNvbGUubG9nKCJXaWRnZXQgQ291bnQ6Iix6Lmxlbmd0aCksY29uc29sZS5sb2coIkdyaWQgQm91bmRzOiIse3RvdGFsV2lkZ2V0czplLndpZGdldHMubGVuZ3RoLG1heFk6TWF0aC5tYXgoLi4uei5tYXAoTj0+Ti55K04uaCkpLG9jY3VwaWVkOnoubWFwKE49PmAke04uaWR9OiAoJHtOLnh9LCR7Ti55fSkgJHtOLnd9eCR7Ti5ofWApLmpvaW4oIiwgIil9KSxNJiZjb25zb2xlLmxvZygiRXZlbnQgRGV0YWlsczoiLE0pLGNvbnNvbGUuZ3JvdXBFbmQoKX0sImxvZ0dyaWRTdGF0ZSIpLHg9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCk9PntsZXQgeT1lLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wbGFjZWhvbGRlciIpO2lmKHkpe2xldCBNPXtsZWZ0Onkuc3R5bGUubGVmdCx0b3A6eS5zdHlsZS50b3Asd2lkdGg6eS5zdHlsZS53aWR0aCxoZWlnaHQ6eS5zdHlsZS5oZWlnaHR9O2lmKEpTT04uc3RyaW5naWZ5KE0pIT09SlNPTi5zdHJpbmdpZnkoYykpe2NvbnNvbGUuZ3JvdXAoIlx1ezFGNENEfSBQbGFjZWhvbGRlciBQb3NpdGlvbiBDaGFuZ2VkIiksY29uc29sZS5sb2coIlByZXZpb3VzOiIsYyksY29uc29sZS5sb2coIkN1cnJlbnQ6IixNKTtsZXQgej1lLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ncmlkLWNvbnRhaW5lciIpO3omJmNvbnNvbGUubG9nKCJHcmlkIENvbnRhaW5lciBEaW1lbnNpb25zOiIse3dpZHRoOnouY2xpZW50V2lkdGgsaGVpZ2h0OnouY2xpZW50SGVpZ2h0fSksY29uc29sZS5ncm91cEVuZCgpLGM9TX19fSk7ZS5zaGFkb3dSb290JiZ4Lm9ic2VydmUoZS5zaGFkb3dSb290LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInN0eWxlIl19KSx2KCJJbml0aWFsIEdyaWQgU3RhdGUiKSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1tb3ZlIix5PT57bGV0IE09eS5kZXRhaWw7digiV2lkZ2V0IE1vdmUiLHt3aWRnZXQ6TS53aWRnZXQsZGlzcGxhY2VkOk0uZGlzcGxhY2VkLHN3YXBwZWRXaXRoOk0uc3dhcHBlZFdpdGh9KX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LXJlc2l6ZSIseT0+e2xldCBNPXkuZGV0YWlsO3YoIldpZGdldCBSZXNpemUiLHt3aWRnZXQ6TS53aWRnZXQsZGlzcGxhY2VkOk0uZGlzcGxhY2VkLHN3YXBwZWRXaXRoOk0uc3dhcHBlZFdpdGh9KX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LXJlbW92ZSIseT0+e2xldCBNPXkuZGV0YWlsO3YoIldpZGdldCBSZW1vdmUiLHtyZW1vdmVkV2lkZ2V0Ok0ud2lkZ2V0fSksbygpfSksZS5hZGRFdmVudExpc3RlbmVyKCJsYXlvdXQtY2hhbmdlIiwoKT0+e3YoIkxheW91dCBDaGFuZ2UiKSxvKCl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix5PT57bGV0IE09eS50YXJnZXQuY2xvc2VzdCgiLndpZGdldC1oZWFkZXIiKSx6PXkudGFyZ2V0LmNsb3Nlc3QoIi5yZXNpemUtaGFuZGxlIik7aWYoTXx8eil7Y29uc29sZS5ncm91cChgXHV7MUYzQUZ9IEludGVyYWN0aW9uIFN0YXJ0ZWQ6ICR7TT8iRHJhZyI6IlJlc2l6ZSJ9YCksY29uc29sZS5sb2coIlRhcmdldCBXaWRnZXQ6Iix5LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0Iik/LmdldEF0dHJpYnV0ZSgiZGF0YS13aWRnZXQtaWQiKSksY29uc29sZS5sb2coIlBvaW50ZXIgUG9zaXRpb246Iix7eDp5LmNsaWVudFgseTp5LmNsaWVudFl9KSxjb25zb2xlLmdyb3VwRW5kKCk7bGV0IE49aShfPT57bGV0IE89eS50YXJnZXQuY2xvc2VzdCgiLndpZGdldCIpO08mJmNvbnNvbGUubG9nKCJcdTIxOTRcdUZFMEYgUG9pbnRlciBNb3ZlOiIse3dpZGdldElkOk8uZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpLHBvc2l0aW9uOnt4Ol8uY2xpZW50WCx5Ol8uY2xpZW50WX0sZGVsdGE6e3g6Xy5jbGllbnRYLXkuY2xpZW50WCx5Ol8uY2xpZW50WS15LmNsaWVudFl9fSl9LCJoYW5kbGVQb2ludGVyTW92ZSIpLEM9aSgoKT0+e2NvbnNvbGUuZ3JvdXAoIlx1ezFGM0MxfSBJbnRlcmFjdGlvbiBFbmRlZCIpLHYoIkZpbmFsIFN0YXRlIEFmdGVyIEludGVyYWN0aW9uIiksY29uc29sZS5ncm91cEVuZCgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixOKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLEMpfSwiaGFuZGxlUG9pbnRlclVwIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLE4pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsQyl9fSk7bGV0IG09ZS5hZGRXaWRnZXQuYmluZChlKTtlLmFkZFdpZGdldD0oeSxNKT0+e2NvbnNvbGUuZ3JvdXAoIlx1Mjc5NSBBZGRpbmcgV2lkZ2V0IiksY29uc29sZS5sb2coIk5ldyBXaWRnZXQ6Iix5KSxjb25zb2xlLmxvZygiQXV0byBQb3NpdGlvbjoiLE0pO2xldCB6PW0oeSxNKTtyZXR1cm4gdigiQWZ0ZXIgV2lkZ2V0IEFkZGVkIiksY29uc29sZS5ncm91cEVuZCgpLHp9O2xldCBmPWUuY29tcGFjdC5iaW5kKGUpO2UuY29tcGFjdD15PT57Y29uc29sZS5ncm91cCgiXHV7MUY1REN9XHVGRTBGIENvbXBhY3RpbmcgR3JpZCIpLGNvbnNvbGUubG9nKCJEaXJlY3Rpb246Iix5fHwidmVydGljYWwiKSx2KCJCZWZvcmUgQ29tcGFjdCIpO2xldCBNPWYoeSk7cmV0dXJuIHYoIkFmdGVyIENvbXBhY3QiKSxjb25zb2xlLmdyb3VwRW5kKCksTX0sbygpfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmRlbW8tY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5ncmlkLWNvbnRhaW5lci13cmFwcGVyIHsKICAgICAgICAgICAgZmxleDogMTsKICAgICAgICAgICAgbWluLWhlaWdodDogNjAwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIH0KCiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgIH0KCiAgICAgICAgICAjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQW5pbWF0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgQW5pbWF0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEaXNwbGF5OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgR3JpZCBMaW5lczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFdpZGdldDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Db21wYWN0IEdyaWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVzZXQgTGF5b3V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJNb2RlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgRWRpdCBNb2RlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtZGFzaGJvYXJkZ3JpZCBpZD0iZGFzaGJvYXJkR3JpZCI+PC9kZWVzLWRhc2hib2FyZGdyaWQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgPGRpdj5EcmFnIHRvIHJlcG9zaXRpb24sIHJlc2l6ZSBmcm9tIGhhbmRsZXMsIG9yIHJpZ2h0LWNsaWNrIGEgaGVhZGVyIHRvIGRlbGV0ZSBhIHRpbGUuPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkYXNoYm9hcmRMYXlvdXRTdGF0dXMiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIHB3YSxod2E9ZygoKT0+e3BlKCk7cHdhPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZW5hYmxlYW5pbWF0aW9uXSkgLmdyaWQtd2lkZ2V0IHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgewogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQucmVzaXppbmcgewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLndpZGdldC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpIiwiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjYpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjphY3RpdmUgewogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keS5oYXMtaGVhZGVyIHsKICAgICAgICB0b3A6IDQ1cHg7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1lIHsKICAgICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsKICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICByaWdodDogLTZweDsKICAgICAgICB0b3A6IDEwJTsKICAgICAgICBoZWlnaHQ6IDgwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtcyB7CiAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgYm90dG9tOiAtNnB4OwogICAgICAgIGxlZnQ6IDEwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIGN1cnNvcjogc2UtcmVzaXplOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXI6OmFmdGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtcGxhY2Vob2xkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IC0xOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLXZlcnRpY2FsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtaG9yaXpvbnRhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogIGBdfSk7dmFyIGdlbixmbHQsZ3dhLGJ3YSxmd2EsdEosbXdhLFJlcyxPZXMsbWx0LHg0LHZ3YSx4d2EseXdhPWcoKCk9PntnZW49MTAsZmx0PWkocz0+e2lmKHR5cGVvZiBzPT0ibnVtYmVyIilyZXR1cm57aG9yaXpvbnRhbDpzLHZlcnRpY2FsOnMsdG9wOnMscmlnaHQ6cyxib3R0b206cyxsZWZ0OnN9O2xldCBlPXt0b3A6cy50b3A/PzEwLHJpZ2h0OnMucmlnaHQ/PzEwLGJvdHRvbTpzLmJvdHRvbT8/MTAsbGVmdDpzLmxlZnQ/PzEwfTtyZXR1cm57Li4uZSxob3Jpem9udGFsOihlLmxlZnQrZS5yaWdodCkvMix2ZXJ0aWNhbDooZS50b3ArZS5ib3R0b20pLzJ9fSwicmVzb2x2ZU1hcmdpbnMiKSxnd2E9aSgocyxlLHQsYSxyKT0+e2xldCBuPXQuaG9yaXpvbnRhbCooZSsxKSxvPU1hdGgubWF4KHMtbiwwKSxsPWU+MD9vL2U6MCxwPXI9PT0iYXV0byI/bDphO3JldHVybntjb250YWluZXJXaWR0aDpzLGNlbGxXaWR0aFB4OmwsbWFyZ2luSG9yaXpvbnRhbFB4OnQuaG9yaXpvbnRhbCxjZWxsSGVpZ2h0UHg6cCxtYXJnaW5WZXJ0aWNhbFB4OnQudmVydGljYWx9fSwiY2FsY3VsYXRlQ2VsbE1ldHJpY3MiKSxid2E9aSgocyxlLHQpPT57aWYocy5sZW5ndGg9PT0wKXJldHVybiAwO2xldCBhPU1hdGgubWF4KC4uLnMubWFwKHI9PnIueStyLmgpLDApO3JldHVybiBhKnQrKGErMSkqZS52ZXJ0aWNhbH0sImNhbGN1bGF0ZUdyaWRIZWlnaHQiKSxmd2E9aSgocyxlLHQsYSxyKT0+ZTxzLngrcy53JiZlK2E+cy54JiZ0PHMueStzLmgmJnQrcj5zLnksIm92ZXJsYXBzIiksdEo9aSgocyxlLHQsYSxyPWUudyxuPWUuaCk9PnMuZmlsdGVyKG89Pm8uaWQ9PT1lLmlkPyExOmZ3YShvLHQsYSxyLG4pKSwiY29sbGVjdENvbGxpc2lvbnMiKSxtd2E9aSgocyxlLHQsYSk9PnRKKHMsZSx0LGEpLmxlbmd0aD4wLCJjaGVja0NvbGxpc2lvbiIpLFJlcz1pKHM9Pih7Li4uc30pLCJjbG9uZVdpZGdldCIpLE9lcz1pKHM9PnMubWFwKFJlcyksImNsb25lV2lkZ2V0cyIpLG1sdD1pKChzLGUsdCxhKT0+e2ZvcihsZXQgbj0wO248MjAwO24rKylmb3IobGV0IG89MDtvPD1hLWU7bysrKWlmKCFzLnNvbWUocD0+ZndhKHAsbyxuLGUsdCkpKXJldHVybnt4Om8seTpufTtyZXR1cm57eDowLHk6cy5yZWR1Y2UoKG4sbyk9Pk1hdGgubWF4KG4sby55K28uaCksMCl9fSwiZmluZEF2YWlsYWJsZVBvc2l0aW9uIikseDQ9aSgocyxlLHQsYSxyKT0+e2xldCBuPU9lcyhzKSxvPW4uZmluZChiPT5iLmlkPT09ZSksbD1zLmZpbmQoYj0+Yi5pZD09PWUpO2lmKCFvfHwhbClyZXR1cm4gbnVsbDtsZXQgcD17eDp0LngseTp0Lnksdzp0Lnc/P28udyxoOnQuaD8/by5ofTtvLng9cC54LG8ueT1wLnksby53PXAudyxvLmg9cC5oO2xldCBkPXRKKG4sbyxwLngscC55LHAudyxwLmgpO2lmKGQubGVuZ3RoPT09MClyZXR1cm57d2lkZ2V0czpuLG1vdmVkV2lkZ2V0czpbby5pZF19O2lmKGQubGVuZ3RoPT09MSl7bGV0IGI9ZFswXTtpZighYi5sb2NrZWQmJiFiLm5vTW92ZSYmYi53PT09by53JiZiLmg9PT1vLmgpe2xldCB2PW4uZmluZCh4PT54LmlkPT09Yi5pZCk7aWYodil7bGV0IHg9bCxtPXt4OnYueCx5OnYueX07aWYodi54PXgueCx2Lnk9eC55LHRKKG4sbyxvLngsby55LG8udyxvLmgpLmxlbmd0aD09PTAmJnRKKG4sdix2Lngsdi55LHYudyx2LmgpLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6bixtb3ZlZFdpZGdldHM6W28uaWQsdi5pZF0sc3dhcHBlZFdpdGg6di5pZH07di54PW0ueCx2Lnk9bS55fX19bGV0IHU9bmV3IFNldChbby5pZF0pO2ZvcihsZXQgYiBvZiBkKXtpZihiLmxvY2tlZHx8Yi5ub01vdmUpcmV0dXJuIG51bGw7bGV0IHY9bi5maW5kKGY9PmYuaWQ9PT1iLmlkKTtpZighdiljb250aW51ZTtsZXQgeD1uLmZpbHRlcihmPT5mLmlkIT09Yi5pZCksbT1tbHQoeCx2Lncsdi5oLGEpO3YueD1tLngsdi55PW0ueSx1LmFkZCh2LmlkKX1yZXR1cm4gdEoobixvLG8ueCxvLnksby53LG8uaCkubGVuZ3RoPjA/bnVsbDp7d2lkZ2V0czpuLG1vdmVkV2lkZ2V0czpBcnJheS5mcm9tKHUpfX0sInJlc29sdmVXaWRnZXRQbGFjZW1lbnQiKSx2d2E9aSgocyxlPSJ2ZXJ0aWNhbCIpPT57bGV0IHQ9Wy4uLnNdLnNvcnQoKGEscik9PmU9PT0idmVydGljYWwiP2EueSE9PXIueT9hLnktci55OmEueC1yLng6YS54IT09ci54P2EueC1yLng6YS55LXIueSk7Zm9yKGxldCBhIG9mIHQpaWYoIShhLmxvY2tlZHx8YS5ub01vdmUpKWlmKGU9PT0idmVydGljYWwiKWZvcig7YS55PjAmJiFtd2EocyxhLGEueCxhLnktMSk7KWEueS09MTtlbHNlIGZvcig7YS54PjAmJiFtd2EocyxhLGEueC0xLGEueSk7KWEueC09MX0sImNvbXBhY3RMYXlvdXQiKSx4d2E9aSgocyxlKT0+cy5tYXAodD0+e2xldCBhPWUuZmluZChyPT5yLmlkPT09dC5pZCk7cmV0dXJuIGE/ey4uLnQsLi4uYX06dH0pLCJhcHBseUxheW91dCIpfSk7dmFyIHd3YSxrd2EsU3dhPWcoKCk9Pnt3d2E9aSgoe3BvaW50ZXI6cyxjb250YWluZXJSZWN0OmUsbWV0cmljczp0LGNvbHVtbnM6YSx3aWRnZXQ6cixydGw6bixkcmFnT2Zmc2V0WDpvPTAsZHJhZ09mZnNldFk6bD0wfSk9PntsZXQgcD1zLmNsaWVudFgtZS5sZWZ0LW8sZD1zLmNsaWVudFktZS50b3AtbCx1PXQubWFyZ2luSG9yaXpvbnRhbFB4LGM9dC5tYXJnaW5WZXJ0aWNhbFB4LGI9dC5jZWxsV2lkdGhQeCx2PXQuY2VsbEhlaWdodFB4LHg9aSgoQyxfLE8pPT5NYXRoLm1heChfLE1hdGgubWluKE8sQykpLCJjbGFtcCIpLG09eChwLXUsMCxlLndpZHRoLXUpLGY9eChkLWMsMCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHk9Yit1LE09ditjLHo9TWF0aC5yb3VuZChtL3kpO24mJih6PWEtci53LXopLHo9eCh6LDAsYS1yLncpO2xldCBOPXgoTWF0aC5yb3VuZChmL00pLDAsTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO3JldHVybnt4OnoseTpOfX0sImNvbXB1dGVHcmlkQ29vcmRpbmF0ZXMiKSxrd2E9aSgoe3BvaW50ZXI6cyxjb250YWluZXJSZWN0OmUsbWV0cmljczp0LHN0YXJ0V2lkdGg6YSxzdGFydEhlaWdodDpyLHN0YXJ0UG9pbnRlcjpuLGhhbmRsZXI6byx3aWRnZXQ6bCxjb2x1bW5zOnB9KT0+e2xldCBkPXMuY2xpZW50WC1uLmNsaWVudFgsdT1zLmNsaWVudFktbi5jbGllbnRZLGM9YSxiPXIsdj10LmNlbGxXaWR0aFB4K3QubWFyZ2luSG9yaXpvbnRhbFB4LHg9dC5jZWxsSGVpZ2h0UHgrdC5tYXJnaW5WZXJ0aWNhbFB4O2lmKG8uaW5jbHVkZXMoImUiKSl7bGV0IHk9TWF0aC5yb3VuZChkL3YpO2M9YSt5fWlmKG8uaW5jbHVkZXMoInMiKSl7bGV0IHk9TWF0aC5yb3VuZCh1L3gpO2I9cit5fWxldCBtPU1hdGgubWF4KGwubWluV3x8MSxNYXRoLm1pbihjLGwubWF4V3x8cC1sLngpKSxmPU1hdGgubWF4KGwubWluSHx8MSxNYXRoLm1pbihiLGwubWF4SHx8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtyZXR1cm57d2lkdGg6bSxoZWlnaHQ6Zn19LCJjb21wdXRlUmVzaXplRGltZW5zaW9ucyIpfSk7dmFyIF93YSxNd2E9ZygoKT0+e2ZyKCk7dm8oKTtfd2E9aSgoe3dpZGdldDpzLGhvc3Q6ZSxldmVudDp0fSk9PntsZXQgYT1be25hbWU6IkRlbGV0ZSB0aWxlIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+KGUucmVtb3ZlV2lkZ2V0KHMuaWQpLG51bGwpLCJhY3Rpb24iKX1dOyRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHQsYSl9LCJvcGVuV2lkZ2V0Q29udGV4dE1lbnUiKX0pO3ZhciBnbiwkcyxGZXMsendhPWcoKCk9PntwZSgpO0dhKCk7ZnIoKTt1d2EoKTtod2EoKTt5d2EoKTtTd2EoKTtNd2EoKTtnbj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sJHM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEZlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtZGFzaGJvYXJkZ3JpZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W107dmFyIHllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRGFzaGJvYXJkZ3JpZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBxPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpPYmplY3R9KV0seD1bTCh7dHlwZTpOdW1iZXJ9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLE89W0woe3R5cGU6U3RyaW5nfSldLEg9W0woe3R5cGU6Qm9vbGVhbn0pXSxJPVtMKHt0eXBlOkJvb2xlYW59KV0sSz1bTCh7YXR0cmlidXRlOiExfSldLG1lPVtMKHt0eXBlOlN0cmluZ30pXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSxnbih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+IndpZGdldHMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS53aWRnZXRzLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLndpZGdldHM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbyxsKSxnbih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImNlbGxIZWlnaHQiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5jZWxsSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmNlbGxIZWlnaHQ9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sZCx1KSxnbih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hcmdpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ibWFyZ2luImluIEEsImhhcyIpLGdldDppKEE9PkEubWFyZ2luLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLm1hcmdpbj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxiLHYpLGduKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iY29sdW1ucyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmNvbHVtbnMsImdldCIpLHNldDppKChBLHNlKT0+e0EuY29sdW1ucz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxtLGYpLGduKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImVkaXRhYmxlImluIEEsImhhcyIpLGdldDppKEE9PkEuZWRpdGFibGUsImdldCIpLHNldDppKChBLHNlKT0+e0EuZWRpdGFibGU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sTSx6KSxnbih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUFuaW1hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZW5hYmxlQW5pbWF0aW9uImluIEEsImhhcyIpLGdldDppKEE9PkEuZW5hYmxlQW5pbWF0aW9uLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmVuYWJsZUFuaW1hdGlvbj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxDLF8pLGduKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodFVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImNlbGxIZWlnaHRVbml0ImluIEEsImhhcyIpLGdldDppKEE9PkEuY2VsbEhlaWdodFVuaXQsImdldCIpLHNldDppKChBLHNlKT0+e0EuY2VsbEhlaWdodFVuaXQ9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sJCxFKSxnbih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ0bCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4icnRsImluIEEsImhhcyIpLGdldDppKEE9PkEucnRsLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnJ0bD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxrLFMpLGduKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWRMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ic2hvd0dyaWRMaW5lcyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNob3dHcmlkTGluZXMsImdldCIpLHNldDppKChBLHNlKT0+e0Euc2hvd0dyaWRMaW5lcz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxQLFIpLGduKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ibGF5b3V0cyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmxheW91dHMsImdldCIpLHNldDppKChBLHNlKT0+e0EubGF5b3V0cz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxWLFcpLGduKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJyZWFrcG9pbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImFjdGl2ZUJyZWFrcG9pbnQiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5hY3RpdmVCcmVha3BvaW50LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmFjdGl2ZUJyZWFrcG9pbnQ9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sQixVKSxnbih0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJwbGFjZWhvbGRlclBvc2l0aW9uImluIEEsImhhcyIpLGdldDppKEE9PkEucGxhY2Vob2xkZXJQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5wbGFjZWhvbGRlclBvc2l0aW9uPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEYsaiksZ24odGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ibWV0cmljcyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLm1ldHJpY3MsImdldCIpLHNldDppKChBLHNlKT0+e0EubWV0cmljcz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxsZSxRKSxnbih0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZE1hcmdpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InJlc29sdmVkTWFyZ2lucyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnJlc29sdmVkTWFyZ2lucywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5yZXNvbHZlZE1hcmdpbnM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sdGUsZWUpLGduKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJwcmV2aWV3V2lkZ2V0cyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnByZXZpZXdXaWRnZXRzLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnByZXZpZXdXaWRnZXRzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFgsWiksZ24obnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6cX0sbnVsbCx0KSx5ZT1hPWUudmFsdWUscSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSl9c3RhdGljIGRlbW89ZHdhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07c3RhdGljIHN0eWxlcz1wd2E7I2U9JHModGhpcyxvLFtdKTtnZXQgd2lkZ2V0cygpe3JldHVybiB0aGlzLiNlfXNldCB3aWRnZXRzKHEpe3RoaXMuI2U9cX0jdD0oJHModGhpcyxsKSwkcyh0aGlzLGQsODApKTtnZXQgY2VsbEhlaWdodCgpe3JldHVybiB0aGlzLiN0fXNldCBjZWxsSGVpZ2h0KHEpe3RoaXMuI3Q9cX0jYT0oJHModGhpcyx1KSwkcyh0aGlzLGIsMTApKTtnZXQgbWFyZ2luKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1hcmdpbihxKXt0aGlzLiNhPXF9I3M9KCRzKHRoaXMsdiksJHModGhpcyxtLDEyKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29sdW1ucyhxKXt0aGlzLiNzPXF9I2k9KCRzKHRoaXMsZiksJHModGhpcyxNLCEwKSk7Z2V0IGVkaXRhYmxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGVkaXRhYmxlKHEpe3RoaXMuI2k9cX0jcj0oJHModGhpcyx6KSwkcyh0aGlzLEMsITApKTtnZXQgZW5hYmxlQW5pbWF0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGVuYWJsZUFuaW1hdGlvbihxKXt0aGlzLiNyPXF9I289KCRzKHRoaXMsXyksJHModGhpcywkLCJweCIpKTtnZXQgY2VsbEhlaWdodFVuaXQoKXtyZXR1cm4gdGhpcy4jb31zZXQgY2VsbEhlaWdodFVuaXQocSl7dGhpcy4jbz1xfSNuPSgkcyh0aGlzLEUpLCRzKHRoaXMsaywhMSkpO2dldCBydGwoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcnRsKHEpe3RoaXMuI249cX0jbD0oJHModGhpcyxTKSwkcyh0aGlzLFAsITEpKTtnZXQgc2hvd0dyaWRMaW5lcygpe3JldHVybiB0aGlzLiNsfXNldCBzaG93R3JpZExpbmVzKHEpe3RoaXMuI2w9cX0jYz0oJHModGhpcyxSKSwkcyh0aGlzLFYsdm9pZCAwKSk7Z2V0IGxheW91dHMoKXtyZXR1cm4gdGhpcy4jY31zZXQgbGF5b3V0cyhxKXt0aGlzLiNjPXF9I2Q9KCRzKHRoaXMsVyksJHModGhpcyxCLCJiYXNlIikpO2dldCBhY3RpdmVCcmVha3BvaW50KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGFjdGl2ZUJyZWFrcG9pbnQocSl7dGhpcy4jZD1xfSN1PSgkcyh0aGlzLFUpLCRzKHRoaXMsRixudWxsKSk7Z2V0IHBsYWNlaG9sZGVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdX1zZXQgcGxhY2Vob2xkZXJQb3NpdGlvbihxKXt0aGlzLiN1PXF9I3A9KCRzKHRoaXMsaiksJHModGhpcyxsZSxudWxsKSk7Z2V0IG1ldHJpY3MoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWV0cmljcyhxKXt0aGlzLiNwPXF9I2g9KCRzKHRoaXMsUSksJHModGhpcyx0ZSxudWxsKSk7Z2V0IHJlc29sdmVkTWFyZ2lucygpe3JldHVybiB0aGlzLiNofXNldCByZXNvbHZlZE1hcmdpbnMocSl7dGhpcy4jaD1xfSNmPSgkcyh0aGlzLGVlKSwkcyh0aGlzLFgsbnVsbCkpO2dldCBwcmV2aWV3V2lkZ2V0cygpe3JldHVybiB0aGlzLiNmfXNldCBwcmV2aWV3V2lkZ2V0cyhxKXt0aGlzLiNmPXF9Y29udGFpbmVyQm91bmRzPSgkcyh0aGlzLFopLG51bGwpO2RyYWdTdGF0ZT1udWxsO3Jlc2l6ZVN0YXRlPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJhY3Rpb25BY3RpdmU9ITE7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm9ic2VydmVSZXNpemUoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKSx0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCl9dXBkYXRlZChxKXsocS5oYXMoIm1hcmdpbiIpfHxxLmhhcygiY29sdW1ucyIpfHxxLmhhcygiY2VsbEhlaWdodCIpfHxxLmhhcygiY2VsbEhlaWdodFVuaXQiKSkmJnRoaXMuY29tcHV0ZU1ldHJpY3MoKSxxLmhhcygid2lkZ2V0cyIpJiYhdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZSYmdGhpcy5ub3RpZnlMYXlvdXRDaGFuZ2UoKX1yZW5kZXIoKXtsZXQgcT10aGlzLndpZGdldHM7aWYocS5sZW5ndGg9PT0wKXJldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxheW91dEdyaWQifT48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXY+Tm8gd2lkZ2V0cyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPkFkZCB3aWRnZXRzIHRvIHBvcHVsYXRlIHRoZSBkYXNoYm9hcmQ8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDtsZXQgQT10aGlzLmVuc3VyZU1ldHJpY3MoKSxzZT10aGlzLnJlc29sdmVkTWFyZ2lucz8/Zmx0KHRoaXMubWFyZ2luKSxvZT1BLmNlbGxIZWlnaHRQeCxhZT10aGlzLnByZXZpZXdXaWRnZXRzPz90aGlzLndpZGdldHMsVGU9YndhKGFlLHNlLG9lKSxSZT10aGlzLnByZXZpZXdXaWRnZXRzP25ldyBNYXAodGhpcy5wcmV2aWV3V2lkZ2V0cy5tYXAoQmU9PltCZS5pZCxCZV0pKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWNvbnRhaW5lciIgc3R5bGU9ImhlaWdodDogJHtUZX1weDsiPgogICAgICAgICR7dGhpcy5zaG93R3JpZExpbmVzP3RoaXMucmVuZGVyR3JpZExpbmVzKEEsVGUpOm51bGx9CiAgICAgICAgJHtxLm1hcChCZT0+dGhpcy5yZW5kZXJXaWRnZXQoQmUsQSxzZSxSZSkpfQogICAgICAgICR7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uP3RoaXMucmVuZGVyUGxhY2Vob2xkZXIoQSxzZSk6bnVsbH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckdyaWRMaW5lcyhxLEEpe2xldCBzZT1bXSxvZT1bXSxhZT1xLmNlbGxXaWR0aFB4K3EubWFyZ2luSG9yaXpvbnRhbFB4LFRlPXEuY2VsbEhlaWdodFB4K3EubWFyZ2luVmVydGljYWxQeDtmb3IobGV0IEJlPTA7QmU8PXRoaXMuY29sdW1ucztCZSsrKXtsZXQgR2U9QmUqYWUrcS5tYXJnaW5Ib3Jpem9udGFsUHgsRGU9dGhpcy5weFRvUGVyY2VudChHZSxxLmNvbnRhaW5lcldpZHRoKTtzZS5wdXNoKHdgPGRpdiBjbGFzcz0iZ3JpZC1saW5lLXZlcnRpY2FsIiBzdHlsZT0ibGVmdDogJHtEZX0lOyI+PC9kaXY+YCl9bGV0IFJlPU1hdGguY2VpbChBL1RlKTtmb3IobGV0IEJlPTA7QmU8PVJlO0JlKyspe2xldCBHZT1CZSpUZTtvZS5wdXNoKHdgPGRpdiBjbGFzcz0iZ3JpZC1saW5lLWhvcml6b250YWwiIHN0eWxlPSJ0b3A6ICR7R2V9cHg7Ij48L2Rpdj5gKX1yZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1saW5lcyI+CiAgICAgICAgJHtzZX0KICAgICAgICAke29lfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KHEsQSxzZSxvZSl7bGV0IGFlPXRoaXMuZHJhZ1N0YXRlPy53aWRnZXRJZD09PXEuaWQsVGU9dGhpcy5yZXNpemVTdGF0ZT8ud2lkZ2V0SWQ9PT1xLmlkLFJlPXEubG9ja2VkfHwhdGhpcy5lZGl0YWJsZSxCZT1vZT8uZ2V0KHEuaWQpPz9udWxsLEdlPWFlP3E6QmU/P3EsRGU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdChHZSxBLHNlKSxfZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0IixDZT10aGlzLnB4VG9QZXJjZW50KERlLmxlZnQsQS5jb250YWluZXJXaWR0aCksdmU9dGhpcy5weFRvUGVyY2VudChEZS53aWR0aCxBLmNvbnRhaW5lcldpZHRoKSxiZT0iIjtpZihhZSYmdGhpcy5kcmFnU3RhdGU/LmN1cnJlbnRQb2ludGVyKXtsZXQgRWU9dGhpcy5kcmFnU3RhdGUuY3VycmVudFBvaW50ZXIsamU9dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksV2U9RWUuY2xpZW50WC1qZS5sZWZ0LXRoaXMuZHJhZ1N0YXRlLm9mZnNldFgtRGUubGVmdCxzdD1FZS5jbGllbnRZLWplLnRvcC10aGlzLmRyYWdTdGF0ZS5vZmZzZXRZLURlLnRvcDtiZT1gdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHtXZX1weCwgJHtzdH1weCk7YH1yZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCAke2FlPyJkcmFnZ2luZyI6IiJ9ICR7VGU/InJlc2l6aW5nIjoiIn0iCiAgICAgICAgc3R5bGU9IgogICAgICAgICAgJHtfZX06ICR7Q2V9JTsKICAgICAgICAgIHRvcDogJHtEZS50b3B9cHg7CiAgICAgICAgICB3aWR0aDogJHt2ZX0lOwogICAgICAgICAgaGVpZ2h0OiAke0RlLmhlaWdodH1weDsKICAgICAgICAgICR7YmV9CiAgICAgICAgIgogICAgICAgIGRhdGEtd2lkZ2V0LWlkPSR7cS5pZH0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij4KICAgICAgICAgICR7cS50aXRsZT93YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0id2lkZ2V0LWhlYWRlciAke1JlPyJsb2NrZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7IVJlJiYhcS5ub01vdmU/RWU9PnRoaXMuc3RhcnREcmFnKEVlLHEpOm51bGx9CiAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke0VlPT50aGlzLmhhbmRsZVdpZGdldENvbnRleHRNZW51KEVlLHEpfQogICAgICAgICAgICAgICAgICB0YWJpbmRleD0keyFSZSYmIXEubm9Nb3ZlPzA6LTF9CiAgICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7RWU9PnRoaXMuaGFuZGxlSGVhZGVyS2V5ZG93bihFZSxxKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtxLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7cS5pY29ufT48L2RlZXMtaWNvbj5gOm51bGx9CiAgICAgICAgICAgICAgICAgICR7cS50aXRsZX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1ib2R5ICR7cS50aXRsZT8iaGFzLWhlYWRlciI6IiJ9Ij4KICAgICAgICAgICAgJHtxLmNvbnRlbnR9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7IVJlJiYhcS5ub1Jlc2l6ZT93YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLWUiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke0VlPT50aGlzLnN0YXJ0UmVzaXplKEVlLHEsImUiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zIgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHtFZT0+dGhpcy5zdGFydFJlc2l6ZShFZSxxLCJzIil9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtc2UiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke0VlPT50aGlzLnN0YXJ0UmVzaXplKEVlLHEsInNlIil9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIocSxBKXtpZighdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uKXJldHVybiB3YGA7bGV0IHNlPXRoaXMuY29tcHV0ZVdpZGdldFJlY3QodGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uLHEsQSksb2U9dGhpcy5ydGw/InJpZ2h0IjoibGVmdCIsYWU9dGhpcy5weFRvUGVyY2VudChzZS5sZWZ0LHEuY29udGFpbmVyV2lkdGgpLFRlPXRoaXMucHhUb1BlcmNlbnQoc2Uud2lkdGgscS5jb250YWluZXJXaWR0aCk7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZ3JpZC13aWRnZXQgcGxhY2Vob2xkZXIiCiAgICAgICAgc3R5bGU9IgogICAgICAgICAgJHtvZX06ICR7YWV9JTsKICAgICAgICAgIHRvcDogJHtzZS50b3B9cHg7CiAgICAgICAgICB3aWR0aDogJHtUZX0lOwogICAgICAgICAgaGVpZ2h0OiAke3NlLmhlaWdodH1weDsKICAgICAgICAiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtY29udGVudCI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGFydERyYWcocSxBKXtpZighdGhpcy5lZGl0YWJsZXx8QS5ub01vdmV8fEEubG9ja2VkKXJldHVybjtxLnByZXZlbnREZWZhdWx0KCkscS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgc2U9cS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoIi5ncmlkLXdpZGdldCIpO2lmKCFzZSlyZXR1cm47bGV0IG9lPXNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuY29udGFpbmVyQm91bmRzPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5lbnN1cmVNZXRyaWNzKCksdGhpcy5kcmFnU3RhdGU9e3dpZGdldElkOkEuaWQscG9pbnRlcklkOnEucG9pbnRlcklkLG9mZnNldFg6cS5jbGllbnRYLW9lLmxlZnQsb2Zmc2V0WTpxLmNsaWVudFktb2UudG9wLHN0YXJ0OntpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofSxwcmV2aW91c1Bvc2l0aW9uOntpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6bnVsbH0sdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZT0hMCxxLmN1cnJlbnRUYXJnZXQuc2V0UG9pbnRlckNhcHR1cmUocS5wb2ludGVySWQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofX1oYW5kbGVEcmFnTW92ZT1pKHE9PntpZighdGhpcy5kcmFnU3RhdGUpcmV0dXJuO2xldCBBPXRoaXMuZW5zdXJlTWV0cmljcygpLHNlPXRoaXMud2lkZ2V0cyxvZT1zZS5maW5kKEJlPT5CZS5pZD09PXRoaXMuZHJhZ1N0YXRlLndpZGdldElkKTtpZighb2UpcmV0dXJuO3EucHJldmVudERlZmF1bHQoKTtsZXQgYWU9dGhpcy5kcmFnU3RhdGUucHJldmlvdXNQb3NpdGlvbixUZT13d2Eoe3BvaW50ZXI6e2NsaWVudFg6cS5jbGllbnRYLGNsaWVudFk6cS5jbGllbnRZfSxjb250YWluZXJSZWN0OnRoaXMuY29udGFpbmVyQm91bmRzPz90aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1ldHJpY3M6QSxjb2x1bW5zOnRoaXMuY29sdW1ucyx3aWRnZXQ6b2UscnRsOnRoaXMucnRsLGRyYWdPZmZzZXRYOnRoaXMuZHJhZ1N0YXRlLm9mZnNldFgsZHJhZ09mZnNldFk6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WX0pLFJlPXg0KHNlLG9lLmlkLHt4OlRlLngseTpUZS55fSx0aGlzLmNvbHVtbnMsYWUpO2lmKFJlKXtsZXQgQmU9UmUud2lkZ2V0cy5maW5kKERlPT5EZS5pZD09PW9lLmlkKTt0aGlzLmRyYWdTdGF0ZT17Li4udGhpcy5kcmFnU3RhdGUsY3VycmVudFBvaW50ZXI6e2NsaWVudFg6cS5jbGllbnRYLGNsaWVudFk6cS5jbGllbnRZfSxsYXN0UGxhY2VtZW50OlJlLHByZXZpb3VzUG9zaXRpb246QmU/e2lkOkJlLmlkLHg6QmUueCx5OkJlLnksdzpCZS53LGg6QmUuaH06e2lkOm9lLmlkLHg6VGUueCx5OlRlLnksdzpvZS53LGg6b2UuaH19LHRoaXMucHJldmlld1dpZGdldHM9UmUud2lkZ2V0cztsZXQgR2U9UmUud2lkZ2V0cy5maW5kKERlPT5EZS5pZD09PW9lLmlkKTtHZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkdlLmlkLHg6R2UueCx5OkdlLnksdzpHZS53LGg6R2UuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpvZS5pZCx4OlRlLngseTpUZS55LHc6b2UudyxoOm9lLmh9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwiaGFuZGxlRHJhZ01vdmUiKTtoYW5kbGVEcmFnRW5kPWkocT0+e2xldCBBPXRoaXMuZHJhZ1N0YXRlO2lmKCFBfHxxLnBvaW50ZXJJZCE9PUEucG9pbnRlcklkKXJldHVybjtsZXQgc2U9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgb2U9dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPz9BLnN0YXJ0LGFlPXg0KHNlLEEud2lkZ2V0SWQse3g6b2UueCx5Om9lLnl9LHRoaXMuY29sdW1ucyxBLnByZXZpb3VzUG9zaXRpb24pO2lmKGFlKXtsZXQgVGU9YWUud2lkZ2V0cy5maW5kKFJlPT5SZS5pZD09PUEud2lkZ2V0SWQpO1RlJiYoYWUud2lkZ2V0cy5zb21lKEJlPT5CZS5pZD09PUEud2lkZ2V0SWQ/ITE6VGUueDxCZS54K0JlLncmJlRlLngrVGUudz5CZS54JiZUZS55PEJlLnkrQmUuaCYmVGUueStUZS5oPkJlLnkpP3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKEJlPT5CZS5pZD09PUEud2lkZ2V0SWQ/ey4uLkJlLHg6QS5zdGFydC54LHk6QS5zdGFydC55fTpCZSk6dGhpcy5jb21taXRQbGFjZW1lbnQoYWUsQS53aWRnZXRJZCwid2lkZ2V0LW1vdmUiKSl9ZWxzZSB0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChUZT0+VGUuaWQ9PT1BLndpZGdldElkP3suLi5UZSx4OkEuc3RhcnQueCx5OkEuc3RhcnQueX06VGUpO3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsLHRoaXMuZHJhZ1N0YXRlPW51bGwsdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZT0hMSx0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCl9LCJoYW5kbGVEcmFnRW5kIik7c3RhcnRSZXNpemUocSxBLHNlKXshdGhpcy5lZGl0YWJsZXx8QS5ub1Jlc2l6ZXx8QS5sb2NrZWR8fChxLnByZXZlbnREZWZhdWx0KCkscS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLnJlc2l6ZVN0YXRlPXt3aWRnZXRJZDpBLmlkLHBvaW50ZXJJZDpxLnBvaW50ZXJJZCxoYW5kbGVyOnNlLHN0YXJ0UG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LHN0YXJ0OntpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofSxzdGFydFdpZHRoOkEudyxzdGFydEhlaWdodDpBLmgsbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLHEuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShxLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofSl9aGFuZGxlUmVzaXplTW92ZT1pKHE9PntpZighdGhpcy5yZXNpemVTdGF0ZSlyZXR1cm47bGV0IEE9dGhpcy5lbnN1cmVNZXRyaWNzKCksc2U9dGhpcy53aWRnZXRzLG9lPXNlLmZpbmQoUmU9PlJlLmlkPT09dGhpcy5yZXNpemVTdGF0ZS53aWRnZXRJZCk7aWYoIW9lKXJldHVybjtxLnByZXZlbnREZWZhdWx0KCk7bGV0IGFlPWt3YSh7cG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpBLHN0YXJ0V2lkdGg6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFdpZHRoLHN0YXJ0SGVpZ2h0OnRoaXMucmVzaXplU3RhdGUuc3RhcnRIZWlnaHQsc3RhcnRQb2ludGVyOnRoaXMucmVzaXplU3RhdGUuc3RhcnRQb2ludGVyLGhhbmRsZXI6dGhpcy5yZXNpemVTdGF0ZS5oYW5kbGVyLHdpZGdldDpvZSxjb2x1bW5zOnRoaXMuY29sdW1uc30pLFRlPXg0KHNlLG9lLmlkLHt4Om9lLngseTpvZS55LHc6YWUud2lkdGgsaDphZS5oZWlnaHR9LHRoaXMuY29sdW1ucyx0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0KTtpZihUZSl7dGhpcy5yZXNpemVTdGF0ZT17Li4udGhpcy5yZXNpemVTdGF0ZSxsYXN0UGxhY2VtZW50OlRlfSx0aGlzLnByZXZpZXdXaWRnZXRzPVRlLndpZGdldHM7bGV0IFJlPVRlLndpZGdldHMuZmluZChCZT0+QmUuaWQ9PT1vZS5pZCk7UmU/dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpSZS5pZCx4OlJlLngseTpSZS55LHc6UmUudyxoOlJlLmh9OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6b2UuaWQseDpvZS54LHk6b2UueSx3OmFlLndpZHRoLGg6YWUuaGVpZ2h0fX1lbHNlIHRoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbDt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sImhhbmRsZVJlc2l6ZU1vdmUiKTtoYW5kbGVSZXNpemVFbmQ9aShxPT57bGV0IEE9dGhpcy5yZXNpemVTdGF0ZTtpZighQXx8cS5wb2ludGVySWQhPT1BLnBvaW50ZXJJZClyZXR1cm47bGV0IHNlPXRoaXMud2lkZ2V0czt0aGlzLnByZXZpZXdXaWRnZXRzPW51bGw7bGV0IG9lPUEubGFzdFBsYWNlbWVudD8/eDQoc2UsQS53aWRnZXRJZCx7eDp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lng/P0Euc3RhcnQueCx5OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueT8/QS5zdGFydC55LHc6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy53Pz9BLnN0YXJ0LncsaDp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lmg/P0Euc3RhcnQuaH0sdGhpcy5jb2x1bW5zLEEuc3RhcnQpO29lP3RoaXMuY29tbWl0UGxhY2VtZW50KG9lLEEud2lkZ2V0SWQsIndpZGdldC1yZXNpemUiKTp0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChhZT0+YWUuaWQ9PT1BLndpZGdldElkP3suLi5hZSx3OkEuc3RhcnQudyxoOkEuc3RhcnQuaH06YWUpLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsLHRoaXMucmVzaXplU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX0sImhhbmRsZVJlc2l6ZUVuZCIpO2hhbmRsZUhlYWRlcktleWRvd24ocSxBKXtpZighdGhpcy5lZGl0YWJsZXx8QS5ub01vdmV8fEEubG9ja2VkKXJldHVybjtsZXQgc2U9cS5rZXksb2U9cS5zaGlmdEtleSxhZT1udWxsO2lmKG9lJiZbIkFycm93TGVmdCIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiQXJyb3dEb3duIl0uaW5jbHVkZXMoc2UpKXtxLnByZXZlbnREZWZhdWx0KCk7bGV0IERlPXNlPT09IkFycm93UmlnaHQifHxzZT09PSJBcnJvd0Rvd24iPzE6LTE7aWYoc2U9PT0iQXJyb3dMZWZ0Inx8c2U9PT0iQXJyb3dSaWdodCIpe2xldCBfZT1BLm1heFc/P3RoaXMuY29sdW1ucy1BLngsQ2U9TWF0aC5tYXgoQS5taW5XPz8xLE1hdGgubWluKF9lLEEudytEZSkpO2FlPXg0KHRoaXMud2lkZ2V0cyxBLmlkLHt4OkEueCx5OkEueSx3OkNlLGg6QS5ofSx0aGlzLmNvbHVtbnMpfWVsc2V7bGV0IF9lPUEubWF4SD8/TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLENlPU1hdGgubWF4KEEubWluSD8/MSxNYXRoLm1pbihfZSxBLmgrRGUpKTthZT14NCh0aGlzLndpZGdldHMsQS5pZCx7eDpBLngseTpBLnksdzpBLncsaDpDZX0sdGhpcy5jb2x1bW5zKX1hZSYmdGhpcy5jb21taXRQbGFjZW1lbnQoYWUsQS5pZCwid2lkZ2V0LXJlc2l6ZSIpO3JldHVybn1sZXQgUmU9e0Fycm93TGVmdDp7ZHg6LTEsZHk6MH0sQXJyb3dSaWdodDp7ZHg6MSxkeTowfSxBcnJvd1VwOntkeDowLGR5Oi0xfSxBcnJvd0Rvd246e2R4OjAsZHk6MX19W3NlXTtpZighUmUpcmV0dXJuO3EucHJldmVudERlZmF1bHQoKTtsZXQgQmU9TWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLmNvbHVtbnMtQS53LEEueCtSZS5keCkpLEdlPU1hdGgubWF4KDAsQS55K1JlLmR5KTthZT14NCh0aGlzLndpZGdldHMsQS5pZCx7eDpCZSx5OkdlfSx0aGlzLmNvbHVtbnMpLGFlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudChhZSxBLmlkLCJ3aWRnZXQtbW92ZSIpfWhhbmRsZVdpZGdldENvbnRleHRNZW51KHEsQSl7cS5wcmV2ZW50RGVmYXVsdCgpLHEuc3RvcFByb3BhZ2F0aW9uKCksX3dhKHt3aWRnZXQ6QSxob3N0OnRoaXMsZXZlbnQ6cX0pfWNvbW1pdFBsYWNlbWVudChxLEEsc2Upe3RoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLndpZGdldHM9cS53aWRnZXRzO2xldCBvZT10aGlzLndpZGdldHMuZmluZChhZT0+YWUuaWQ9PT1BKTtvZSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChzZSx7ZGV0YWlsOnt3aWRnZXQ6b2UsZGlzcGxhY2VkOnEubW92ZWRXaWRnZXRzLmZpbHRlcihhZT0+YWUhPT1BKSxzd2FwcGVkV2l0aDpxLnN3YXBwZWRXaXRofSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXJlbW92ZVdpZGdldChxKXtsZXQgQT10aGlzLndpZGdldHMuZmluZChzZT0+c2UuaWQ9PT1xKTtBJiYodGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIoc2U9PnNlLmlkIT09cSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgid2lkZ2V0LXJlbW92ZSIse2RldGFpbDp7d2lkZ2V0OkF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfXVwZGF0ZVdpZGdldChxLEEpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHNlPT5zZS5pZD09PXE/ey4uLnNlLC4uLkF9OnNlKX1nZXRMYXlvdXQoKXtyZXR1cm4gdGhpcy53aWRnZXRzLm1hcCgoe2lkOnEseDpBLHk6c2UsdzpvZSxoOmFlfSk9Pih7aWQ6cSx4OkEseTpzZSx3Om9lLGg6YWV9KSl9c2V0TGF5b3V0KHEpe3RoaXMud2lkZ2V0cz14d2EodGhpcy53aWRnZXRzLHEpfWxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMX11bmxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMH1hZGRXaWRnZXQocSxBPSExKXtsZXQgc2U9ey4uLnF9O2lmKEF8fHNlLmF1dG9Qb3NpdGlvbil7bGV0IG9lPW1sdCh0aGlzLndpZGdldHMsc2UudyxzZS5oLHRoaXMuY29sdW1ucyk7c2UueD1vZS54LHNlLnk9b2UueX10aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyxzZV19Y29tcGFjdChxPSJ2ZXJ0aWNhbCIpe2xldCBBPXRoaXMud2lkZ2V0cy5tYXAoc2U9Pih7Li4uc2V9KSk7dndhKEEscSksdGhpcy53aWRnZXRzPUF9YXBwbHlCcmVha3BvaW50TGF5b3V0KHEpe3RoaXMuYWN0aXZlQnJlYWtwb2ludD1xO2xldCBBPXRoaXMubGF5b3V0cz8uW3FdO0EmJnRoaXMuc2V0TGF5b3V0KEEpfW5vdGlmeUxheW91dENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxheW91dC1jaGFuZ2UiLHtkZXRhaWw6e2xheW91dDp0aGlzLmdldExheW91dCgpfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWVuc3VyZU1ldHJpY3MoKXtyZXR1cm4gdGhpcy5tZXRyaWNzfHx0aGlzLmNvbXB1dGVNZXRyaWNzKCksdGhpcy5tZXRyaWNzfWNvbXB1dGVNZXRyaWNzKCl7aWYoIXRoaXMuaXNDb25uZWN0ZWQpcmV0dXJuO2xldCBxPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9cTtsZXQgQT1mbHQodGhpcy5tYXJnaW4pO3RoaXMucmVzb2x2ZWRNYXJnaW5zPUEsdGhpcy5tZXRyaWNzPWd3YShxLndpZHRoLHRoaXMuY29sdW1ucyxBLHRoaXMuY2VsbEhlaWdodCx0aGlzLmNlbGxIZWlnaHRVbml0KX1vYnNlcnZlUmVzaXplKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5jb21wdXRlTWV0cmljcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpKX1kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKXt0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9cmVsZWFzZVBvaW50ZXJFdmVudHMoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVEcmFnTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZURyYWdFbmQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVSZXNpemVFbmQpfXB4VG9QZXJjZW50KHEsQSl7cmV0dXJuIEE/TnVtYmVyKChxL0EqMTAwKS50b0ZpeGVkKDQpKTowfWNvbXB1dGVXaWRnZXRSZWN0KHEsQSxzZSl7bGV0IG9lPUEuY2VsbFdpZHRoUHgsYWU9QS5jZWxsSGVpZ2h0UHgsVGU9cS54KihvZStzZS5ob3Jpem9udGFsKStzZS5ob3Jpem9udGFsLFJlPXEueSooYWUrc2UudmVydGljYWwpK3NlLnZlcnRpY2FsLEJlPXEudypvZStNYXRoLm1heCgwLHEudy0xKSpzZS5ob3Jpem9udGFsLEdlPXEuaCphZStNYXRoLm1heCgwLHEuaC0xKSpzZS52ZXJ0aWNhbDtyZXR1cm57bGVmdDpUZSx0b3A6UmUsd2lkdGg6QmUsaGVpZ2h0OkdlfX1zdGF0aWN7JHMoYSx0KX19O3JldHVybiB5ZT1hfSkoKX0pO3ZhciBDd2E9ZygoKT0+e3p3YSgpfSk7ZnVuY3Rpb24gVHdhKCl7cmV0dXJuIHdgCiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIxIj5UaGlzIGlzIGEgSDEgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMiI+VGhpcyBpcyBhIEgyIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjMiPlRoaXMgaXMgYSBIMyBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI0Ij5UaGlzIGlzIGEgSDQgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNSI+VGhpcyBpcyBhIEg1IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjYiPlRoaXMgaXMgYSBINiBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJociI+VGhpcyBpcyBhbiBociBoZWFkaW5nIChsZXZlbD0iaHIiKTwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNyI+VGhpcyBpcyBhbiBociBoZWFkaW5nIChsZXZlbD0iNyIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+VGhpcyBpcyBhbiBoci1zbWFsbCBoZWFkaW5nIChsZXZlbD0iaHItc21hbGwiKTwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iOCI+VGhpcyBpcyBhbiBoci1zbWFsbCBoZWFkaW5nIChsZXZlbD0iOCIpPC9kZWVzLWhlYWRpbmc+CiAgYH12YXIgJHdhPWcoKCk9PntwZSgpO2koVHdhLCJkZW1vRnVuYyIpfSk7dmFyIER3YSxnbHQsQmVzLEx3YT1nKCgpPT57cGUoKTskd2EoKTtFcigpO2h0KCk7RHdhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxnbHQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEJlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtaGVhZGluZyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSGVhZGluZyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sRHdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGV2ZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+ImxldmVsImluIHUsImhhcyIpLGdldDppKHU9PnUubGV2ZWwsImdldCIpLHNldDppKCh1LGMpPT57dS5sZXZlbD1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksRHdhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89VHdhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9Z2x0KHRoaXMsbywiMSIpO2dldCBsZXZlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsZXZlbChkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLyogSGVhZGluZyBzdHlsZXMuCiAgICAgICAqIENvbG9yIGhpZXJhcmNoeTogaDEtaDIgc3RheSBwcm9taW5lbnQgd2l0aCB0ZXh0LXByaW1hcnk7IGgzLWg2IHN0ZXAKICAgICAgICogZG93biB0byB0ZXh0LXNlY29uZGFyeSBzbyB0aGV5IHJlYWQgYXMgc3ViaGVhZGluZ3MgaW5zdGVhZCBvZgogICAgICAgKiBtaW5pLWgxcy4gS2VlcHMgdGhlIHZpc3VhbCBsb3VkbmVzcyBvdXQgb2Ygc21hbGxlciBoZWFkaW5ncy4gKi8KICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICBoMSwgaDIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLyogUGVyLWxldmVsIHR5cG9ncmFwaHkgKyBzcGFjaW5nLgogICAgICAgKiBNYXJnaW4gc2NhbGVzIHdpdGggaW1wb3J0YW5jZTogaDEgZ2V0cyB0aGUgbW9zdCBicmVhdGhpbmcgcm9vbSwKICAgICAgICogaDYgdGhlIGxlYXN0LiBUb3AgbWFyZ2luID4gYm90dG9tIG1hcmdpbiBzbyBoZWFkaW5ncyBncm91cCB3aXRoCiAgICAgICAqIHRoZSBjb250ZW50IHRoYXQgZm9sbG93cyB0aGVtLiAqLwogICAgICBoMSB7CiAgICAgICAgLyogaDEgdXNlcyB3ZWlnaHQgNTAwLCBub3QgNjAwOiB0aGUgQ2FsIFNhbnMgZGlzcGxheSBmb250IGlzCiAgICAgICAgICogYWxyZWFkeSBzdHlsaXplZCBlbm91Z2ggdGhhdCBib2xkICsgbWF4IGNvbnRyYXN0ICsgMzJweCBzdGFja3MKICAgICAgICAgKiB0b28gbXVjaCBlbXBoYXNpcy4gNTAwIGtlZXBzIHRoZSB0eXBvZ3JhcGhpYyBpbXBhY3Qgd2l0aG91dAogICAgICAgICAqIHNob3V0aW5nLiAqLwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0o5YX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKSAwIHZhcigtLWRlZXMtc3BhY2luZy1sZyk7CiAgICAgIH0KICAgICAgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy14bCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsKICAgICAgfQogICAgICBoNCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKSAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1tZCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIGg2IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsKICAgICAgfQoKICAgICAgLyogSG9yaXpvbnRhbCBydWxlIHN0eWxlIGhlYWRpbmcgKi8KICAgICAgLmhlYWRpbmctaHIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpIDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KICAgICAgLyogRmFkZSBsaW5lcyB0b3dhcmQgYW5kIGF3YXkgZnJvbSB0ZXh0IGZvciBociBzdHlsZSAqLwogICAgICAuaGVhZGluZy1ocjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZykpOwogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyksIHRyYW5zcGFyZW50KTsKICAgICAgICBtYXJnaW46IDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgICAvKiBTbWFsbCBociB2YXJpYW50IHdpdGggcmVkdWNlZCBtYXJnaW5zICovCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGwgewogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKSAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsOjpiZWZvcmUsCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmFmdGVyIHsKICAgICAgICBtYXJnaW46IDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UiMSI6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmA7Y2FzZSIyIjpyZXR1cm4gd2A8aDI+PHNsb3Q+PC9zbG90PjwvaDI+YDtjYXNlIjMiOnJldHVybiB3YDxoMz48c2xvdD48L3Nsb3Q+PC9oMz5gO2Nhc2UiNCI6cmV0dXJuIHdgPGg0PjxzbG90Pjwvc2xvdD48L2g0PmA7Y2FzZSI1IjpyZXR1cm4gd2A8aDU+PHNsb3Q+PC9zbG90PjwvaDU+YDtjYXNlIjYiOnJldHVybiB3YDxoNj48c2xvdD48L3Nsb3Q+PC9oNj5gO2Nhc2UiNyI6Y2FzZSJociI6cmV0dXJuIHdgPGRpdiBjbGFzcz0iaGVhZGluZy1ociI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7Y2FzZSI4IjpjYXNlImhyLXNtYWxsIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIGhlYWRpbmctaHItc21hbGwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO2RlZmF1bHQ6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmB9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxnbHQodGhpcyxsKX1zdGF0aWN7Z2x0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBFd2E9ZygoKT0+e0x3YSgpfSk7dmFyIFB3YT1nKCgpPT57YngoKX0pO3ZhciBJd2EsQXdhPWcoKCk9PntwZSgpO0l3YT1pKCgpPT53YAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTZweDsiPgogICAgPCEtLSBTbWFsbCBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj41IHBhZ2VzLCBzdGFydGluZyBhdCAxOjwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezV9CiAgICAgICAgLnBhZ2U9JHsxfQogICAgICAgIEBwYWdlLWNoYW5nZT0ke3M9PmNvbnNvbGUubG9nKCJQYWdlIGNoYW5nZWQgdG8iLHMuZGV0YWlsLnBhZ2UpfQogICAgICA+PC9kZWVzLXBhZ2luYXRpb24+CiAgICA8L2Rpdj4KCiAgICA8IS0tIExhcmdlciBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj4xNSBwYWdlcywgc3RhcnRpbmcgYXQgODo8L3NwYW4+CiAgICAgIDxkZWVzLXBhZ2luYXRpb24KICAgICAgICAudG90YWw9JHsxNX0KICAgICAgICAucGFnZT0kezh9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7cz0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIscy5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGJsdCxhSixIZXMsTndhPWcoKCk9PntwZSgpO0F3YSgpO2h0KCk7Ymx0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxhSj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1wYWdpbmF0aW9uIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNQYWdpbmF0aW9uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXIscmVmbGVjdDohMH0pXSxwPVtMKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLGJsdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InBhZ2UiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5wYWdlLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YucGFnZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksYmx0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidG90YWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InRvdGFsImluIHYsImhhcyIpLGdldDppKHY9PnYudG90YWwsImdldCIpLHNldDppKCh2LHgpPT57di50b3RhbD14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksYmx0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89SXdhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9YUoodGhpcyxvLDEpO2dldCBwYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBhZ2UoYil7dGhpcy4jZT1ifSN0PShhSih0aGlzLGwpLGFKKHRoaXMsZCwxKSk7Z2V0IHRvdGFsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRvdGFsKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBtYXJnaW46IDAgMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWUiLCIjNDQ0Iil9OwogICAgICB9CiAgICAgIGJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2FhYSIsIiM2NjYiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmN1cnJlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIHNwYW4uZWxsaXBzaXMgewogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgYF07Z2V0IHBhZ2VzKCl7bGV0IGI9W10sdj10aGlzLnRvdGFsLHg9dGhpcy5wYWdlO2lmKHY8PTcpZm9yKGxldCBtPTE7bTw9djttKyspYi5wdXNoKG0pO2Vsc2V7Yi5wdXNoKDEpLHg+NCYmYi5wdXNoKCIuLi4iKTtsZXQgbT1NYXRoLm1heCgyLHgtMiksZj1NYXRoLm1pbih2LTEseCsyKTtmb3IobGV0IHk9bTt5PD1mO3krKyliLnB1c2goeSk7eDx2LTMmJmIucHVzaCgiLi4uIiksYi5wdXNoKHYpfXJldHVybiBifXJlbmRlcigpe3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZSh0aGlzLnBhZ2UtMSl9CiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5wYWdlPD0xfQogICAgICAgIGFyaWEtbGFiZWw9IlByZXZpb3VzIHBhZ2UiCiAgICAgID4KICAgICAgICDigLkKICAgICAgPC9idXR0b24+CiAgICAgICR7dGhpcy5wYWdlcy5tYXAoYj0+Yj09PSIuLi4iP3dgPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj7igKY8L3NwYW4+YDp3YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSIke2I9PT10aGlzLnBhZ2U/ImN1cnJlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UoYil9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtiPT09dGhpcy5wYWdlfQogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iUGFnZSAke2J9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7Yn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZSsxKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U+PXRoaXMudG90YWx9CiAgICAgICAgYXJpYS1sYWJlbD0iTmV4dCBwYWdlIgogICAgICA+CiAgICAgICAg4oC6CiAgICAgIDwvYnV0dG9uPgogICAgYH1jaGFuZ2VQYWdlKGIpe2I8MXx8Yj50aGlzLnRvdGFsfHxiPT09dGhpcy5wYWdlfHwodGhpcy5wYWdlPWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicGFnZS1jaGFuZ2UiLHtkZXRhaWw6e3BhZ2U6dGhpcy5wYWdlfSxidWJibGVzOiEwfSkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYUoodGhpcyx1KX1zdGF0aWN7YUooYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIFJ3YT1nKCgpPT57TndhKCl9KTt2YXIgT3dhPWcoKCk9Pnt4bygpfSk7dmFyIEZ3YSxCd2E9ZygoKT0+e3BlKCk7dmx0KCk7RndhPWkoKCk9PntsZXQgcz1be2tleToiZW1haWwiLGxhYmVsOiJBY2NvdW50IGVtYWlsIix2YWx1ZToiYWRtaW5AZXhhbXBsZS5jb20ifSx7a2V5OiJzdGF0dXMiLGxhYmVsOiJTdGF0dXMiLHZhbHVlOiJlbmFibGVkIn0se2tleToibW9kZSIsbGFiZWw6Ik1vZGUiLHZhbHVlOiJwcm9kdWN0aW9uIn0se2tleToiYXV0b1JlbmV3IixsYWJlbDoiQXV0by1yZW5ldyIsdmFsdWU6Im9uIn0se2tleToidGhyZXNob2xkIixsYWJlbDoiUmVuZXdhbCB0aHJlc2hvbGQiLHZhbHVlOiIzMCBkYXlzIn1dLGU9W3tuYW1lOiJFZGl0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkVkaXQgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLHQ9W3tuYW1lOiJDb25maWd1cmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQ29uZmlndXJlIGNsaWNrZWQiKSwiYWN0aW9uIil9XSxhPVt7bmFtZToiUmVzZXQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVzZXQgY2xpY2tlZCIpLCJhY3Rpb24iKX0se25hbWU6IkVkaXQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRWRpdCBjbGlja2VkIiksImFjdGlvbiIpfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGVlcy1zZXR0aW5ncwogICAgICAgICAgLmhlYWRpbmc9JHsiQUNNRSBTZXR0aW5ncyJ9CiAgICAgICAgICAuc2V0dGluZ3NGaWVsZHM9JHtzfQogICAgICAgICAgLmFjdGlvbnM9JHtlfQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJBQ01FIFNldHRpbmdzIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJObyBBQ01FIGNvbmZpZ3VyYXRpb24geWV0LiBDbGljayBDb25maWd1cmUgdG8gc2V0IHVwIGF1dG9tYXRlZCBUTFMgY2VydGlmaWNhdGUgaXNzdWFuY2UuIn0KICAgICAgICAgIC5hY3Rpb25zPSR7dH0KICAgICAgICA+PC9kZWVzLXNldHRpbmdzPgoKICAgICAgICA8ZGVlcy1zZXR0aW5ncwogICAgICAgICAgLmhlYWRpbmc9JHsiU2VydmVyIENvbmZpZyJ9CiAgICAgICAgICAuc2V0dGluZ3NGaWVsZHM9JHtbe2tleToiaG9zdCIsbGFiZWw6Ikhvc3RuYW1lIix2YWx1ZToicHJveHkuZXhhbXBsZS5jb20ifSx7a2V5OiJwb3J0IixsYWJlbDoiUG9ydCIsdmFsdWU6IjQ0MyJ9XX0KICAgICAgICAgIC5hY3Rpb25zPSR7YX0KICAgICAgICA+PC9kZWVzLXNldHRpbmdzPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBzSixVdSxxZXMsdmx0PWcoKCk9PntwZSgpO0J3YSgpO0VyKCk7aHQoKTttcigpO3NKPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxVdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scWVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zZXR0aW5ncyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2V0dGluZ3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHthdHRyaWJ1dGU6ITF9KV0seD1bTCh7YXR0cmlidXRlOiExfSldLHNKKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaGVhZGluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmhlYWRpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5oZWFkaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxzSih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRlc2NyaXB0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkZXNjcmlwdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmRlc2NyaXB0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZGVzY3JpcHRpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLHNKKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2V0dGluZ3NGaWVsZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNldHRpbmdzRmllbGRzImluIHosImhhcyIpLGdldDppKHo9Pnouc2V0dGluZ3NGaWVsZHMsImdldCIpLHNldDppKCh6LE4pPT57ei5zZXR0aW5nc0ZpZWxkcz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksc0oodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJhY3Rpb25zImluIHosImhhcyIpLGdldDppKHo9PnouYWN0aW9ucywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmFjdGlvbnM9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLHNKKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89RndhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9VXUodGhpcyxvLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKE0pe3RoaXMuI2U9TX0jdD0oVXUodGhpcyxsKSxVdSh0aGlzLGQsIiIpKTtnZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgZGVzY3JpcHRpb24oTSl7dGhpcy4jdD1NfSNhPShVdSh0aGlzLHUpLFV1KHRoaXMsYixbXSkpO2dldCBzZXR0aW5nc0ZpZWxkcygpe3JldHVybiB0aGlzLiNhfXNldCBzZXR0aW5nc0ZpZWxkcyhNKXt0aGlzLiNhPU19I3M9KFV1KHRoaXMsdiksVXUodGhpcyxtLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgYWN0aW9ucyhNKXt0aGlzLiNzPU19c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgIH0KCiAgICAgIC5zZXR0aW5nc0dyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxODBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxMnB4IDI0cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLnNldHRpbmdzRmllbGQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmZpZWxkTGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5maWVsZFZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnNldHRpbmdzRGVzY3JpcHRpb24gewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE1KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMTUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgTT10aGlzLnNldHRpbmdzRmllbGRzLmxlbmd0aD4wLHo9dGhpcy5hY3Rpb25zLmxlbmd0aD4wO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7dGhpcy5oZWFkaW5nfT4KICAgICAgICAke00/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5nc0dyaWQiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNldHRpbmdzRmllbGRzLm1hcChOPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkTGFiZWwiPiR7Ti5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGRWYWx1ZSI+JHtOLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5nc0Rlc2NyaXB0aW9uIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgJHt6P3dgCiAgICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CdXR0b25zIj4KICAgICAgICAgICAgICAgICR7dGhpcy5hY3Rpb25zLm1hcCgoTixDKT0+d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYm90dG9tQnV0dG9uICR7Qz09PXRoaXMuYWN0aW9ucy5sZW5ndGgtMT8icHJpbWFyeSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pk4uYWN0aW9uKCl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtOLm5hbWV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFV1KHRoaXMsZil9c3RhdGlje1V1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBId2E9ZygoKT0+e3ZsdCgpfSk7dmFyIHF3YSxpSixqd2EsVndhLFV3YT1nKCgpPT57cGUoKTtvMmUoKTtxd2E9aShhc3luYyhzLGUpPT5uZXcgUHJvbWlzZSh0PT57bGV0IGE9ITEscj1pKGw9PnthfHwoYT0hMCxlJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixuKSx0KGwpKX0sImZpbmlzaCIpLG49aSgoKT0+e3dpbmRvdy5jbGVhclRpbWVvdXQobykscighMSl9LCJoYW5kbGVBYm9ydCIpLG89d2luZG93LnNldFRpbWVvdXQoKCk9PntyKCEwKX0scyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbix7b25jZTohMH0pfSksIndhaXRGb3JQcm9ncmVzc1RpY2siKSxpSj1pKChzPSJDb250aW51ZSIpPT5be25hbWU6cyxhY3Rpb246aShhc3luYyBlPT5lPy5nb05leHQoKSwiYWN0aW9uIil9XSwiY3JlYXRlQ29udGludWVNZW51T3B0aW9ucyIpLGp3YT1pKCgpPT5be3RpdGxlOiJBY2NvdW50IFNldHVwIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImVtYWlsIiBsYWJlbD0iV29yayBFbWFpbCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iQ3JlYXRlIFBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczppSigpfSx7dGl0bGU6IlByb2ZpbGUgRGV0YWlscyIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJmaXJzdE5hbWUiIGxhYmVsPSJGaXJzdCBOYW1lIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0ibGFzdE5hbWUiIGxhYmVsPSJMYXN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6aUooKX0se3RpdGxlOiJDb250YWN0IEluZm9ybWF0aW9uIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUga2V5PSJwaG9uZSIgbGFiZWw9Ik1vYmlsZSBOdW1iZXIiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iY29tcGFueSIgbGFiZWw9IkNvbXBhbnkiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6aUooKX0se3RpdGxlOiJQcm92aXNpb24gV29ya3NwYWNlIixjb250ZW50OndgCiAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgIDxwPgogICAgICAgICAgV2UgYXJlIGNyZWF0aW5nIHlvdXIgc3RhcnRlciB3b3Jrc3BhY2UsIGFwcGx5aW5nIHlvdXIgb25ib2FyZGluZyBjaG9pY2VzLAogICAgICAgICAgYW5kIHByZXBhcmluZyBhIGxpdmUgcHJldmlldy4gVGhpcyBzdGVwIG1vdmVzIGZvcndhcmQgYXV0b21hdGljYWxseSB3aGVuCiAgICAgICAgICB0aGUgZW52aXJvbm1lbnQgaXMgcmVhZHkuCiAgICAgICAgPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICBgLHByb2dyZXNzU3RlcDp7bGFiZWw6IldvcmtzcGFjZSBzZXR1cCIscGVyY2VudGFnZTo4LGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzUm93czo0LHN0YXR1c1RleHQ6IkFsbG9jYXRpbmcgYSBjbGVhbiB3b3Jrc3BhY2UuLi4iLHRlcm1pbmFsTGluZXM6WyJBbGxvY2F0aW5nIGEgY2xlYW4gd29ya3NwYWNlIl19LHZhbGlkYXRpb25GdW5jOmkoYXN5bmMocyxlLHQpPT57bGV0IGE9W3tsaW5lOiJBbGxvY2F0aW5nIGEgY2xlYW4gd29ya3NwYWNlIixwZXJjZW50YWdlOjgsZGVsYXk6NTAwfSx7bGluZToiU3luY2luZyBhY2NvdW50IHByZWZlcmVuY2VzIixwZXJjZW50YWdlOjI0LGRlbGF5OjY1MH0se2xpbmU6Ikluc3RhbGxpbmcgc2VsZWN0ZWQgaW50ZWdyYXRpb25zIixwZXJjZW50YWdlOjQ3LGRlbGF5OjcwMH0se2xpbmU6IkdlbmVyYXRpbmcgc3RhcnRlciBwcm9qZWN0IGZpbGVzIixwZXJjZW50YWdlOjcxLGRlbGF5OjY1MH0se2xpbmU6IkJvb3RpbmcgdGhlIGxpdmUgcHJldmlldyBlbnZpcm9ubWVudCIscGVyY2VudGFnZTo5MixkZWxheTo3MDB9XTtzLnJlc2V0UHJvZ3Jlc3NTdGVwKCk7Zm9yKGxldFtyLG5db2YgYS5lbnRyaWVzKCkpaWYodD8uYWJvcnRlZHx8KHI9PT0wP3MudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOm4ucGVyY2VudGFnZSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6YCR7bi5saW5lfS4uLmAsdGVybWluYWxMaW5lczpbbi5saW5lXX0pOihzLmFwcGVuZFByb2dyZXNzU3RlcExpbmUobi5saW5lKSxzLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZTpuLnBlcmNlbnRhZ2UsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OmAke24ubGluZX0uLi5gfSkpLCFhd2FpdCBxd2Eobi5kZWxheSx0KSkpcmV0dXJuO3MuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZSgiV29ya3NwYWNlIHJlYWR5Iikscy51cGRhdGVQcm9ncmVzc1N0ZXAoe3BlcmNlbnRhZ2U6MTAwLGluZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDoiV29ya3NwYWNlIHJlYWR5LiJ9KSxhd2FpdCBxd2EoMzUwLHQpfSwidmFsaWRhdGlvbkZ1bmMiKX0se3RpdGxlOiJUZWFtIFNpemUiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAga2V5PSJ0ZWFtU2l6ZSIKICAgICAgICAgIGxhYmVsPSJIb3cgYmlnIGlzIHlvdXIgdGVhbT8iCiAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6IjEtNSIsdmFsdWU6IjEtNSJ9LHtsYWJlbDoiNi0yMCIsdmFsdWU6IjYtMjAifSx7bGFiZWw6IjIxLTUwIix2YWx1ZToiMjEtNTAifSx7bGFiZWw6IjUxKyIsdmFsdWU6IjUxKyJ9XX0KICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLWZvcm0+CiAgICBgLG1lbnVPcHRpb25zOmlKKCl9LHt0aXRsZToiR29hbHMiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAga2V5PSJnb2FsIgogICAgICAgICAgbGFiZWw9Ik1haW4gb2JqZWN0aXZlIgogICAgICAgICAgLm9wdGlvbnM9JHtbe2xhYmVsOiJPbmJvYXJkaW5nIix2YWx1ZToib25ib2FyZGluZyJ9LHtsYWJlbDoiQW5hbHl0aWNzIix2YWx1ZToiYW5hbHl0aWNzIn0se2xhYmVsOiJBdXRvbWF0aW9uIix2YWx1ZToiYXV0b21hdGlvbiJ9XX0KICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgPC9kZWVzLWZvcm0+CiAgICBgLG1lbnVPcHRpb25zOmlKKCl9LHt0aXRsZToiUmV2aWV3ICYgTGF1bmNoIixjb250ZW50OndgCiAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgIDxwPgogICAgICAgICAgWW91ciB3b3Jrc3BhY2UgaXMgcmVhZHkuIFJldmlldyB0aGUgY29sbGVjdGVkIGRldGFpbHMgYW5kIGxhdW5jaCB3aGVuCiAgICAgICAgICB5b3UgYXJlIHJlYWR5IHRvIHN0YXJ0LgogICAgICAgIDwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkxhdW5jaCIsYWN0aW9uOmkoYXN5bmMgcz0+e3M/Lm92ZXJsYXkmJmF3YWl0IHMuZGVzdHJveSgpfSwiYWN0aW9uIil9XX1dLCJjcmVhdGVEZW1vU3RlcHMiKSxWd2E9aSgoKT0+d2AKICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyI+CiAgICA8ZGl2CiAgICAgIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTZweDsgbGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IHotaW5kZXg6IDEwOyIKICAgID4KICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2F3YWl0IHJKLmNyZWF0ZUFuZFNob3coe3N0ZXBzOmp3YSgpfSl9fQogICAgICA+T3BlbiBzdGVwcGVyIGFzIG92ZXJsYXk8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGVlcy1zdGVwcGVyIC5zdGVwcz0ke2p3YSgpfT48L2RlZXMtc3RlcHBlcj4KICA8L2Rpdj4KYCwic3RlcHBlckRlbW8iKX0pO3ZhciB5NCxlbCxySixvMmU9ZygoKT0+e3ZvKCk7cGUoKTtrdCgpO1V3YSgpO2h0KCk7RXIoKTtHbigpO3YyKCk7UHUoKTtkbHQoKTttcigpO3k0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxlbD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scko9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0ZXBwZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0ZXBwZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6T2JqZWN0fSldLGM9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHg9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHk9W0woe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZTohMX0pXSxOPVtMKHt0eXBlOk9iamVjdCxhdHRyaWJ1dGU6ITF9KV0sTz1bTCh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZTohMX0pXSx5NCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdGVwcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN0ZXBzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3RlcHM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLHk0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RlZFN0ZXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZFN0ZXAsImdldCIpLHNldDppKChTLEkpPT57Uy5zZWxlY3RlZFN0ZXA9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHk0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3ZlcmxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ib3ZlcmxheSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm92ZXJsYXksImdldCIpLHNldDppKChTLEkpPT57Uy5vdmVybGF5PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSx5NCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhbmNlbGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNhbmNlbGFibGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jYW5jZWxhYmxlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY2FuY2VsYWJsZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZikseTQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGVwcGVyWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdGVwcGVyWkluZGV4ImluIFMsImhhcyIpLGdldDppKFM9PlMuc3RlcHBlclpJbmRleCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnN0ZXBwZXJaSW5kZXg9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLHk0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iYWN0aXZlRm9ybSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmFjdGl2ZUZvcm0sImdldCIpLHNldDppKChTLEkpPT57Uy5hY3RpdmVGb3JtPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSx5NCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUZvcm1WYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iYWN0aXZlRm9ybVZhbGlkImluIFMsImhhcyIpLGdldDppKFM9PlMuYWN0aXZlRm9ybVZhbGlkLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuYWN0aXZlRm9ybVZhbGlkPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSx5NChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPVZ3YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCIsIkZvcm0iXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhrKXtsZXQgUz1kb2N1bWVudC5ib2R5LEk9bmV3IEg7cmV0dXJuIEkuc3RlcHM9ay5zdGVwcyxJLm92ZXJsYXk9ITAsay5jYW5jZWxhYmxlIT09dm9pZCAwJiYoSS5jYW5jZWxhYmxlPWsuY2FuY2VsYWJsZSksSS53aW5kb3dMYXllcj1hd2FpdCBSby5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksUy5hcHBlbmQoSS53aW5kb3dMYXllciksUy5hcHBlbmQoSSksSS5zdGVwcGVyWkluZGV4PV9hLmdldE5leHRaSW5kZXgoKSxfYS5yZWdpc3RlcihJLEkuc3RlcHBlclpJbmRleCksSX0jZT1lbCh0aGlzLG8sW10pO2dldCBzdGVwcygpe3JldHVybiB0aGlzLiNlfXNldCBzdGVwcyhrKXt0aGlzLiNlPWt9I3Q9KGVsKHRoaXMsbCksZWwodGhpcyxkLHZvaWQgMCkpO2dldCBzZWxlY3RlZFN0ZXAoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRTdGVwKGspe3RoaXMuI3Q9a30jYT0oZWwodGhpcyx1KSxlbCh0aGlzLGIsITEpKTtnZXQgb3ZlcmxheSgpe3JldHVybiB0aGlzLiNhfXNldCBvdmVybGF5KGspe3RoaXMuI2E9a30jcz0oZWwodGhpcyx2KSxlbCh0aGlzLG0sITApKTtnZXQgY2FuY2VsYWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCBjYW5jZWxhYmxlKGspe3RoaXMuI3M9a30jaT0oZWwodGhpcyxmKSxlbCh0aGlzLE0sMWUzKSk7Z2V0IHN0ZXBwZXJaSW5kZXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3RlcHBlclpJbmRleChrKXt0aGlzLiNpPWt9I3I9KGVsKHRoaXMseiksZWwodGhpcyxDLG51bGwpKTtnZXQgYWN0aXZlRm9ybSgpe3JldHVybiB0aGlzLiNyfXNldCBhY3RpdmVGb3JtKGspe3RoaXMuI3I9a30jbz0oZWwodGhpcyxfKSxlbCh0aGlzLCQsITApKTtnZXQgYWN0aXZlRm9ybVZhbGlkKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZUZvcm1WYWxpZChrKXt0aGlzLiNvPWt9YWN0aXZlRm9ybVN1YnNjcmlwdGlvbj1lbCh0aGlzLEUpO3dpbmRvd0xheWVyO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIEluIG92ZXJsYXkgbW9kZSB0aGUgaG9zdCBpcyAidHJhbnNwYXJlbnQiIHRvIGxheW91dCDigJQgdGhlIGlubmVyCiAgICAgICAqIC5zdGVwcGVyQ29udGFpbmVyLm92ZXJsYXkgaXMgd2hhdCBwaW5zIHRvIHRoZSB2aWV3cG9ydCBhbmQgY2FycmllcyB0aGUKICAgICAgICogei1pbmRleC4gS2VlcGluZyA6aG9zdCB1bnBvc2l0aW9uZWQgYXZvaWRzIG5lc3RpbmcgdGhlIHN0YWNraW5nIGNvbnRleHQKICAgICAgICogdW5kZXIgYW4gYXV0by16LWluZGV4IHBhcmVudCAod2hpY2ggd2FzIHRyYXBwaW5nIC5zdGVwcGVyQ29udGFpbmVyCiAgICAgICAqIGJlbG93IERlZXNXaW5kb3dMYXllcidzIHNpYmxpbmcgbGF5ZXJzKS4gVGhpcyBtaXJyb3JzIGhvdyBkZWVzLW1vZGFsCiAgICAgICAqIGtlZXBzIGl0cyBvd24gOmhvc3QgdW5wb3NpdGlvbmVkIGFuZCBsZXRzIC5tb2RhbENvbnRhaW5lciBkcml2ZSBsYXlvdXQuCiAgICAgICAqLwogICAgICA6aG9zdChbb3ZlcmxheV0pIHsKICAgICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLnN0ZXBwZXJDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnN0ZXBwZXJDb250YWluZXIub3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAvKiBFeGl0IGFuaW1hdGlvbiDigJQgcmV2ZXJzZSBvZiB0aGUgZW50cnkuIFRpbGVzIHNsaWRlIERPV04gKyBmYWRlIG91dCwKICAgICAgICAgbWlycm9yaW5nIHRoZSAuZW50cmFuY2Ugc2xpZGUtdXAuIFRoZSB0cmFuc2l0aW9uIG92ZXJyaWRlIGlzIG5lZWRlZAogICAgICAgICBiZWNhdXNlIGRlZXMtdGlsZS5zdGVwIGhhcyBpdHMgb3duIDAuN3MgdHJhbnNpdGlvbiBmb3Igc3RlcCBzZWxlY3Rpb24KICAgICAgICAgd2hpY2ggd291bGQgb3RoZXJ3aXNlIG1ha2UgdGhlIGV4aXQgc2x1Z2dpc2guICovCiAgICAgIC5zdGVwcGVyQ29udGFpbmVyLnByZWRlc3Ryb3kgZGVlcy10aWxlLnN0ZXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzLCBmaWx0ZXIgMC4yczsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwLjU1KSBzYXR1cmF0ZSgwLjg1KTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSksIGZpbHRlciAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuc2VsZWN0ZWQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDEpIHNhdHVyYXRlKDEpOwogICAgICAgIHVzZXItc2VsZWN0OiBhdXRvOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5oaWRkZW5TdGVwIHsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMCk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLmVudHJhbmNlIHsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgZWFzZSwgZmlsdGVyIDAuMzVzIGVhc2U7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLmVudHJhbmNlLmhpZGRlblN0ZXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdmg7CiAgICAgIH0KCiAgICAgIC5zdGVwcGVyQ29udGFpbmVyLm92ZXJsYXkgZGVlcy10aWxlLnN0ZXA6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3gtc2hhZG93OgogICAgICAgICAgMCAwIDAgMXB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDMpIil9LAogICAgICAgICAgMCA4cHggNDBweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjEyKSIsImhzbCgwIDAlIDAlIC8gMC41KSIpfSwKICAgICAgICAgIDAgMnB4IDhweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA2KSIsImhzbCgwIDAlIDAlIC8gMC4yNSkiKX07CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxMnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmdvQmFjay1zcGFjZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjazphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2sgc3BhbiB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrOmhvdmVyIHNwYW4gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5zdGVwQ291bnRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIH0KCiAgICAgIC5zdGVwLWJvZHkgLnRpdGxlIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZy10b3A6IDMycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLnN0ZXAtYm9keSAuY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLnN0ZXAtYm9keSAuY29udGVudC53aXRoUHJvZ3Jlc3NTdGVwIHsKICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzU3RlcCB7CiAgICAgICAgcGFkZGluZzogMCAyNHB4OwogICAgICB9CgogICAgICAvKiAtLS0gRm9vdGVyOiBtb2RhbC1zdHlsZSBib3R0b20gYnV0dG9ucyAtLS0gKi8KICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAvKiBCb3JkZXItbGVmdCBzZXBhcmF0b3Igb24gZXZlcnkgYnV0dG9uIEVYQ0VQVCB0aGUgZmlyc3Qgb25lLgogICAgICAgICBVc2VzIGdlbmVyYWwgc2libGluZyBzbyB0aGUgc3RlcEhpbnQgKGlmIHJlbmRlcmVkIG9uIHRoZSBsZWZ0KSBkb2VzCiAgICAgICAgIG5vdCBzaGlmdCB3aGljaCBidXR0b24gY291bnRzIGFzICJmaXJzdCIgYW5kIGNyZWF0ZSBhIHBoYW50b20gYm9yZGVyLiAqLwogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIH4gLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEyKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMTIpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC8qIEhpbnQgc2hvd24gb24gdGhlIGxlZnQgb2YgdGhlIGZvb3RlciB3aGVuIHRoZSBhY3RpdmUgc3RlcCdzIGZvcm0gaGFzCiAgICAgICAgIHVuZmlsbGVkIHJlcXVpcmVkIGZpZWxkcy4gVXNlcyBtYXJnaW4tcmlnaHQ6IGF1dG8gdG8gcHVzaCByaWdodC1hbGlnbmVkCiAgICAgICAgIGJ1dHRvbnMgdG8gdGhlIHJpZ2h0IHdoaWxlIGtlZXBpbmcgdGhlIGhpbnQgZmx1c2gtbGVmdC4gKi8KICAgICAgLmJvdHRvbUJ1dHRvbnMgLnN0ZXBIaW50IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InN0ZXBwZXJDb250YWluZXIgJHt0aGlzLm92ZXJsYXk/Im92ZXJsYXkiOiIifSIKICAgICAgICBzdHlsZT0ke3RoaXMub3ZlcmxheT9gei1pbmRleDogJHt0aGlzLnN0ZXBwZXJaSW5kZXh9O2A6IiJ9CiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2t9CiAgICAgID4KICAgICAgICAke3RoaXMuc3RlcHMubWFwKChrLFMpPT57bGV0IEk9az09PXRoaXMuc2VsZWN0ZWRTdGVwLFA9dGhpcy5nZXRJbmRleE9mU3RlcChrKT50aGlzLmdldEluZGV4T2ZTdGVwKHRoaXMuc2VsZWN0ZWRTdGVwKSxSPVM9PT0wLEs9ay5wcm9ncmVzc1N0ZXA/dGhpcy5nZXRQcm9ncmVzc1N0ZXBTdGF0ZShrKTpudWxsO3JldHVybiB3YDxkZWVzLXRpbGUKICAgICAgICAgICAgY2xhc3M9InN0ZXAgJHtJPyJzZWxlY3RlZCI6IiJ9ICR7UD8iaGlkZGVuU3RlcCI6IiJ9ICR7Uj8iZW50cmFuY2UiOiIifSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzdGVwLWhlYWRlciI+CiAgICAgICAgICAgICAgJHtSP3dgPGRpdiBjbGFzcz0iZ29CYWNrLXNwYWNlciI+PC9kaXY+YDp3YDxkaXYgY2xhc3M9ImdvQmFjayIgQGNsaWNrPSR7dGhpcy5nb0JhY2t9PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSW50ZXIiPjwtPC9zcGFuPiBnbyB0byBwcmV2aW91cyBzdGVwCiAgICAgICAgICAgICAgICAgIDwvZGl2PmB9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcENvdW50ZXIiPgogICAgICAgICAgICAgICAgU3RlcCAke1MrMX0gb2YgJHt0aGlzLnN0ZXBzLmxlbmd0aH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0ZXAtYm9keSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7ay50aXRsZX08L2Rpdj4KICAgICAgICAgICAgICAke2sucHJvZ3Jlc3NTdGVwJiZLP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1N0ZXAiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgICAgIC5sYWJlbD0ke0subGFiZWw/P2sudGl0bGV9CiAgICAgICAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHtLLnBlcmNlbnRhZ2U/PzB9CiAgICAgICAgICAgICAgICAgICAgLmluZGV0ZXJtaW5hdGU9JHtLLmluZGV0ZXJtaW5hdGU/PyExfQogICAgICAgICAgICAgICAgICAgIC5zaG93UGVyY2VudGFnZT0ke0suc2hvd1BlcmNlbnRhZ2U/PyEwfQogICAgICAgICAgICAgICAgICAgIC5zdGF0dXNUZXh0PSR7Sy5zdGF0dXNUZXh0Pz8iIn0KICAgICAgICAgICAgICAgICAgICAudGVybWluYWxMaW5lcz0ke0sudGVybWluYWxMaW5lcz8/W119CiAgICAgICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHtLLnN0YXR1c1Jvd3M/PzN9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQgJHtrLnByb2dyZXNzU3RlcD8id2l0aFByb2dyZXNzU3RlcCI6IiJ9Ij4ke2suY29udGVudH08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYm90dG9tQnV0dG9ucyI+CiAgICAgICAgICAgICAgJHtJJiZ0aGlzLmFjdGl2ZUZvcm0hPT1udWxsJiYhdGhpcy5hY3RpdmVGb3JtVmFsaWQ/d2A8ZGl2IGNsYXNzPSJzdGVwSGludCI+Q29tcGxldGUgZm9ybSB0byBjb250aW51ZTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLmNhbmNlbGFibGU/d2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJvdHRvbUJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDYW5jZWxSZXF1ZXN0KCl9CiAgICAgICAgICAgICAgICAgID5DYW5jZWw8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7ay5tZW51T3B0aW9ucz8ubWFwKChWLFcpPT57bGV0IG1lPVc9PT1rLm1lbnVPcHRpb25zLmxlbmd0aC0xLEI9bWUmJnRoaXMuYWN0aXZlRm9ybSE9PW51bGwmJiF0aGlzLmFjdGl2ZUZvcm1WYWxpZDtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24gJHttZT8icHJpbWFyeSI6IiJ9ICR7Qj8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51T3B0aW9uQ2xpY2soVixtZSl9CiAgICAgICAgICAgICAgICAgID4ke1YubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgIGB9KT8/IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+YH0pfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0SW5kZXhPZlN0ZXA9aShrPT50aGlzLnN0ZXBzLmZpbmRJbmRleChTPT5rPT09UyksImdldEluZGV4T2ZTdGVwIik7YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3RlcHMubGVuZ3RoJiYodGhpcy5wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24odGhpcy5zdGVwc1swXSksdGhpcy5zZWxlY3RlZFN0ZXA9dGhpcy5zdGVwc1swXSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IHRoaXMuc2V0U2Nyb2xsU3RhdHVzKCksYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDM1MCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwLmVudHJhbmNlIik/LmNsYXNzTGlzdC5yZW1vdmUoImVudHJhbmNlIikpfWFzeW5jIHVwZGF0ZWQoayl7IWsuaGFzKCJzZWxlY3RlZFN0ZXAiKSYmIWsuaGFzKCJzdGVwcyIpfHxhd2FpdCB0aGlzLnNldFNjcm9sbFN0YXR1cygpfXNjcm9sbGVyO2FzeW5jIHNldFNjcm9sbFN0YXR1cygpe2xldCBrPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcHBlckNvbnRhaW5lciIpLFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpO2lmKCFTKXJldHVybjt0aGlzLnNjYW5BY3RpdmVGb3JtKFMpLGsuc3R5bGUucGFkZGluZ1RvcHx8KGsuc3R5bGUucGFkZGluZ1RvcD1gJHtrLm9mZnNldEhlaWdodC8yLVMub2Zmc2V0SGVpZ2h0LzJ9cHhgKTtsZXQgST1TLm9mZnNldFRvcC1rLm9mZnNldEhlaWdodC8yK1Mub2Zmc2V0SGVpZ2h0LzI7YXdhaXQgamkuc2V0dXBEb21Ub29scygpLHRoaXMuc2Nyb2xsZXJ8fCh0aGlzLnNjcm9sbGVyPW5ldyB1dC5Td2VldFNjcm9sbCh7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxlYXNpbmc6ImVhc2VJbk91dEV4cG8iLGR1cmF0aW9uOjcwMH0saykpLCF0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZCYmdGhpcy5zZWxlY3RlZFN0ZXAudmFsaWRhdGlvbkZ1bmMmJih0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcix0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMCx0aGlzLnJ1blN0ZXBWYWxpZGF0aW9uKHRoaXMuc2VsZWN0ZWRTdGVwLFMsdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLnNpZ25hbCkpLHRoaXMuc2Nyb2xsZXIudG8oSSl9YXN5bmMgZ29CYWNrKCl7bGV0IGs9dGhpcy5zdGVwcy5maW5kSW5kZXgoUD0+UD09PXRoaXMuc2VsZWN0ZWRTdGVwKTtpZihrPD0wKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBTPXRoaXMuc3RlcHNba107Uy52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgST10aGlzLnN0ZXBzW2stMV07SS52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbihJKSx0aGlzLnNlbGVjdGVkU3RlcD1JLGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMuc2VsZWN0ZWRTdGVwLm9uUmV0dXJuVG9TdGVwRnVuYz8uKHRoaXMsdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpKX1nb05leHQoKXtsZXQgaz10aGlzLnN0ZXBzLmZpbmRJbmRleChQPT5QPT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGs8MHx8az49dGhpcy5zdGVwcy5sZW5ndGgtMSlyZXR1cm47dGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyJiZ0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtsZXQgUz10aGlzLnN0ZXBzW2tdO1MudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITE7bGV0IEk9dGhpcy5zdGVwc1trKzFdO0kudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITEsdGhpcy5wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24oSSksdGhpcy5zZWxlY3RlZFN0ZXA9SX1yZXNldFByb2dyZXNzU3RlcChrPXRoaXMuc2VsZWN0ZWRTdGVwKXtrPy5wcm9ncmVzc1N0ZXAmJihrLnByb2dyZXNzU3RlcFN0YXRlPXRoaXMuY3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKGspLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX11cGRhdGVQcm9ncmVzc1N0ZXAoayxTPXRoaXMuc2VsZWN0ZWRTdGVwKXtpZighUz8ucHJvZ3Jlc3NTdGVwKXJldHVybjtsZXQgST10aGlzLmdldFByb2dyZXNzU3RlcFN0YXRlKFMpO1MucHJvZ3Jlc3NTdGVwU3RhdGU9ey4uLkksLi4uayx0ZXJtaW5hbExpbmVzOmsudGVybWluYWxMaW5lcz9bLi4uay50ZXJtaW5hbExpbmVzXTpbLi4uSS50ZXJtaW5hbExpbmVzPz9bXV19LHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFwcGVuZFByb2dyZXNzU3RlcExpbmUoayxTPXRoaXMuc2VsZWN0ZWRTdGVwKXtpZighUz8ucHJvZ3Jlc3NTdGVwKXJldHVybjtsZXQgST10aGlzLmdldFByb2dyZXNzU3RlcFN0YXRlKFMpO3RoaXMudXBkYXRlUHJvZ3Jlc3NTdGVwKHt0ZXJtaW5hbExpbmVzOlsuLi5JLnRlcm1pbmFsTGluZXM/P1tdLGtdfSxTKX1zY2FuQWN0aXZlRm9ybShrKXtsZXQgUz1rLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpO2lmKFM9PT10aGlzLmFjdGl2ZUZvcm0pe3RoaXMucmVjb21wdXRlRm9ybVZhbGlkKCk7cmV0dXJufWlmKHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb249dm9pZCAwLHRoaXMuYWN0aXZlRm9ybT1TLCFTKXt0aGlzLmFjdGl2ZUZvcm1WYWxpZD0hMDtyZXR1cm59dGhpcy5yZWNvbXB1dGVGb3JtVmFsaWQoKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb249Uy5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMucmVjb21wdXRlRm9ybVZhbGlkKCl9KX1yZWNvbXB1dGVGb3JtVmFsaWQoKXtsZXQgaz10aGlzLmFjdGl2ZUZvcm07aWYoIWspe3RoaXMuYWN0aXZlRm9ybVZhbGlkPSEwO3JldHVybn1sZXQgUz1rLmdldEZvcm1FbGVtZW50cygpO3RoaXMuYWN0aXZlRm9ybVZhbGlkPVMuZXZlcnkoST0+IUkucmVxdWlyZWR8fEkudmFsdWUhPT1udWxsJiZJLnZhbHVlIT09dm9pZCAwJiZJLnZhbHVlIT09IiIpfWFzeW5jIGhhbmRsZU1lbnVPcHRpb25DbGljayhrLFMpe2xldCBJPXRoaXMuYWN0aXZlRm9ybTtpZihTJiZJKXtpZighdGhpcy5hY3RpdmVGb3JtVmFsaWQpcmV0dXJuO2F3YWl0IG5ldyBQcm9taXNlKFA9PntJLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+UCgpLHtvbmNlOiEwfSksSS5nYXRoZXJBbmREaXNwYXRjaCgpfSl9YXdhaXQgay5hY3Rpb24odGhpcyl9Z2V0UHJvZ3Jlc3NTdGVwU3RhdGUoayl7cmV0dXJuIGsucHJvZ3Jlc3NTdGVwPyhrLnByb2dyZXNzU3RlcFN0YXRlfHwoay5wcm9ncmVzc1N0ZXBTdGF0ZT10aGlzLmNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShrKSksay5wcm9ncmVzc1N0ZXBTdGF0ZSk6e319Y3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKGspe3JldHVybntsYWJlbDprLnByb2dyZXNzU3RlcD8ubGFiZWw/P2sudGl0bGUscGVyY2VudGFnZTprLnByb2dyZXNzU3RlcD8ucGVyY2VudGFnZT8/MCxpbmRldGVybWluYXRlOmsucHJvZ3Jlc3NTdGVwPy5pbmRldGVybWluYXRlPz8hMSxzaG93UGVyY2VudGFnZTprLnByb2dyZXNzU3RlcD8uc2hvd1BlcmNlbnRhZ2U/PyEwLHN0YXR1c1RleHQ6ay5wcm9ncmVzc1N0ZXA/LnN0YXR1c1RleHQ/PyIiLHRlcm1pbmFsTGluZXM6Wy4uLmsucHJvZ3Jlc3NTdGVwPy50ZXJtaW5hbExpbmVzPz9bXV0sc3RhdHVzUm93czprLnByb2dyZXNzU3RlcD8uc3RhdHVzUm93cz8/M319cHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKGspe2s/LnByb2dyZXNzU3RlcCYmKGsucHJvZ3Jlc3NTdGVwU3RhdGU9dGhpcy5jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoaykpfWFzeW5jIHJ1blN0ZXBWYWxpZGF0aW9uKGssUyxJKXt0cnl7aWYoYXdhaXQgay52YWxpZGF0aW9uRnVuYz8uKHRoaXMsUyxJKSxJLmFib3J0ZWQpcmV0dXJuO2sucHJvZ3Jlc3NTdGVwJiZrLnByb2dyZXNzU3RlcC5hdXRvQWR2YW5jZSE9PSExJiZ0aGlzLnNlbGVjdGVkU3RlcD09PWsmJnRoaXMuZ29OZXh0KCl9Y2F0Y2goUCl7aWYoSS5hYm9ydGVkKXJldHVybjtpZihrLnByb2dyZXNzU3RlcCl7bGV0IFI9UCBpbnN0YW5jZW9mIEVycm9yP1AubWVzc2FnZToiVW5leHBlY3RlZCBlcnJvciI7dGhpcy5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKGBFcnJvcjogJHtSfWAsayksdGhpcy51cGRhdGVQcm9ncmVzc1N0ZXAoe2luZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDpSfSxrKX1jb25zb2xlLmVycm9yKFApfX1jYW5jZWxDb25maXJtTW9kYWw7aGFuZGxlT3V0c2lkZUNsaWNrKGspe2lmKCF0aGlzLm92ZXJsYXl8fCF0aGlzLmNhbmNlbGFibGUpcmV0dXJuO2suc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIik7ay50YXJnZXQ9PT1TJiZ0aGlzLmhhbmRsZUNhbmNlbFJlcXVlc3QoKX1hc3luYyBoYW5kbGVDYW5jZWxSZXF1ZXN0KCl7dGhpcy5jYW5jZWxhYmxlJiYodGhpcy5jYW5jZWxDb25maXJtTW9kYWwmJnRoaXMuY2FuY2VsQ29uZmlybU1vZGFsLmlzQ29ubmVjdGVkfHwodGhpcy5jYW5jZWxDb25maXJtTW9kYWw9dm9pZCAwLHRoaXMuY2FuY2VsQ29uZmlybU1vZGFsPWF3YWl0IGlzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkNhbmNlbCBzZXR1cD8iLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDA7Ij4KICAgICAgICAgIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjYW5jZWw/IEFueSBwcm9ncmVzcyBvbiB0aGUgY3VycmVudCBzdGVwIHdpbGwgYmUgbG9zdC4KICAgICAgICA8L3A+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDb250aW51ZSBzZXR1cCIsYWN0aW9uOmkoYXN5bmMgaz0+e3RoaXMuY2FuY2VsQ29uZmlybU1vZGFsPXZvaWQgMCxhd2FpdCBrLmRlc3Ryb3koKX0sImFjdGlvbiIpfSx7bmFtZToiWWVzLCBjYW5jZWwiLGFjdGlvbjppKGFzeW5jIGs9Pnt0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD12b2lkIDAsay5kZXN0cm95KCksYXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTAwKSxhd2FpdCB0aGlzLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KSkpfWFzeW5jIGRlc3Ryb3koKXtsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxTPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcHBlckNvbnRhaW5lciIpO3RoaXMuc2VsZWN0ZWRTdGVwPy5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpLFM/LmNsYXNzTGlzdC5hZGQoInByZWRlc3Ryb3kiKSxhd2FpdCBrLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPXZvaWQgMCx0aGlzLmFjdGl2ZUZvcm09bnVsbCxfYS51bnJlZ2lzdGVyKHRoaXMpfXN0YXRpY3tlbChhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgV3dhPWcoKCk9PntvMmUoKX0pO3ZhciBHd2E9ZygoKT0+e21yKCl9KTt2YXIgS3dhPWcoKCk9Pntjd2EoKTtDd2EoKTtFd2EoKTtQd2EoKTtSd2EoKTtPd2EoKTtId2EoKTtXd2EoKTtHd2EoKX0pO3ZhciBZd2EsWndhPWcoKCk9PntwZSgpO1l3YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuY29tcGFjdCB7CiAgICAgIGhlaWdodDogMjUwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkpQRUcgSW1hZ2Ugd2l0aCBUb29sYmFyPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkEgbGFuZHNjYXBlIHBob3RvIHdpdGggem9vbSwgcGFuLCBmaXQsIGFuZCBkb3dubG9hZCBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGFsdD0iTW91bnRhaW4gbGFuZHNjYXBlIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QTkcgd2l0aCBUcmFuc3BhcmVuY3k8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VHJhbnNwYXJlbnQgUE5HIGRpc3BsYXllZCBvbiBhIGNoZWNrZXJib2FyZCBiYWNrZ3JvdW5kLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvNC80Ny9QTkdfdHJhbnNwYXJlbmN5X2RlbW9uc3RyYXRpb25fMS5wbmciCiAgICAgICAgYWx0PSJQTkcgdHJhbnNwYXJlbmN5IGRlbW8iCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNWRyBJbWFnZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TY2FsYWJsZSB2ZWN0b3IgZ3JhcGhpYy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzAvMDIvU1ZHX2xvZ28uc3ZnIgogICAgICAgIGFsdD0iU1ZHIGxvZ28iCiAgICAgICAgZml0PSJjb250YWluIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5ObyBUb29sYmFyIFZhcmlhbnQ8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+SW1hZ2Ugdmlld2VyIHdpdGggdGhlIHRvb2xiYXIgaGlkZGVuLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBjbGFzcz0iY29tcGFjdCIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDY5NDc0OTY4MDI4LTU2NjIzZjAyZTQyZT93PTgwMCIKICAgICAgICBhbHQ9Ik5hdHVyZSBzY2VuZSIKICAgICAgICAuc2hvd1Rvb2xiYXI9JHshMX0KICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIHVjLGJpLGplcyx4bHQ9ZygoKT0+e3BlKCk7R2EoKTtad2EoKTt1Yz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sYmk9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGplcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW1hZ2Utdmlld2VyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXTt2YXIgdWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbWFnZVZpZXdlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBsZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sYz1bTCgpXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNyYyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnNyYywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5zcmM9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LG8sbCksdWModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImFsdCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmFsdCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5hbHQ9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGQsdSksdWModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImZpdCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmZpdCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5maXQ9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGIsdiksdWModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic2hvd1Rvb2xiYXIiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5zaG93VG9vbGJhcj1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sbSxmKSx1Yyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Inpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Inpvb20iaW4gUSwiaGFzIiksZ2V0OmkoUT0+US56b29tLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnpvb209aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LE0seiksdWModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5YIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJwYW5YImluIFEsImhhcyIpLGdldDppKFE9PlEucGFuWCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5wYW5YPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxDLF8pLHVjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFuWSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4icGFuWSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnBhblksImdldCIpLHNldDppKChRLGllKT0+e1EucGFuWT1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sJCxFKSx1Yyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImlzRHJhZ2dpbmciaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pc0RyYWdnaW5nLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmlzRHJhZ2dpbmc9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGssUyksdWModGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJsb2FkaW5nImluIFEsImhhcyIpLGdldDppKFE9PlEubG9hZGluZywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5sb2FkaW5nPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxQLFIpLHVjKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImVycm9yImluIFEsImhhcyIpLGdldDppKFE9PlEuZXJyb3IsImdldCIpLHNldDppKChRLGllKT0+e1EuZXJyb3I9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LFYsVyksdWModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImltYWdlTmF0dXJhbFdpZHRoImluIFEsImhhcyIpLGdldDppKFE9PlEuaW1hZ2VOYXR1cmFsV2lkdGgsImdldCIpLHNldDppKChRLGllKT0+e1EuaW1hZ2VOYXR1cmFsV2lkdGg9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LEIsVSksdWModGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJpbWFnZU5hdHVyYWxIZWlnaHQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pbWFnZU5hdHVyYWxIZWlnaHQsImdldCIpLHNldDppKChRLGllKT0+e1EuaW1hZ2VOYXR1cmFsSGVpZ2h0PWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxGLGopLHVjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmxlfSxudWxsLHQpLHVlPWE9ZS52YWx1ZSxsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpsZX0pfXN0YXRpYyBkZW1vPVl3YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07I2U9YmkodGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhsZSl7dGhpcy4jZT1sZX0jdD0oYmkodGhpcyxsKSxiaSh0aGlzLGQsIiIpKTtnZXQgYWx0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFsdChsZSl7dGhpcy4jdD1sZX0jYT0oYmkodGhpcyx1KSxiaSh0aGlzLGIsImNvbnRhaW4iKSk7Z2V0IGZpdCgpe3JldHVybiB0aGlzLiNhfXNldCBmaXQobGUpe3RoaXMuI2E9bGV9I3M9KGJpKHRoaXMsdiksYmkodGhpcyxtLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dUb29sYmFyKGxlKXt0aGlzLiNzPWxlfSNpPShiaSh0aGlzLGYpLGJpKHRoaXMsTSwxKSk7Z2V0IHpvb20oKXtyZXR1cm4gdGhpcy4jaX1zZXQgem9vbShsZSl7dGhpcy4jaT1sZX0jcj0oYmkodGhpcyx6KSxiaSh0aGlzLEMsMCkpO2dldCBwYW5YKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBhblgobGUpe3RoaXMuI3I9bGV9I289KGJpKHRoaXMsXyksYmkodGhpcywkLDApKTtnZXQgcGFuWSgpe3JldHVybiB0aGlzLiNvfXNldCBwYW5ZKGxlKXt0aGlzLiNvPWxlfSNuPShiaSh0aGlzLEUpLGJpKHRoaXMsaywhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzRHJhZ2dpbmcobGUpe3RoaXMuI249bGV9I2w9KGJpKHRoaXMsUyksYmkodGhpcyxQLCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbG9hZGluZyhsZSl7dGhpcy4jbD1sZX0jYz0oYmkodGhpcyxSKSxiaSh0aGlzLFYsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jY31zZXQgZXJyb3IobGUpe3RoaXMuI2M9bGV9I2Q9KGJpKHRoaXMsVyksYmkodGhpcyxCLDApKTtnZXQgaW1hZ2VOYXR1cmFsV2lkdGgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaW1hZ2VOYXR1cmFsV2lkdGgobGUpe3RoaXMuI2Q9bGV9I3U9KGJpKHRoaXMsVSksYmkodGhpcyxGLDApKTtnZXQgaW1hZ2VOYXR1cmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3V9c2V0IGltYWdlTmF0dXJhbEhlaWdodChsZSl7dGhpcy4jdT1sZX1kcmFnU3RhcnRYPShiaSh0aGlzLGopLDApO2RyYWdTdGFydFk9MDtkcmFnU3RhcnRQYW5YPTA7ZHJhZ1N0YXJ0UGFuWT0wO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnpvb20tbGV2ZWwgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGN1cnNvcjogJHt0aGlzLnpvb20+MT90aGlzLmlzRHJhZ2dpbmc/ImdyYWJiaW5nIjoiZ3JhYiI6ImRlZmF1bHQifTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2VyYm9hcmQgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOgogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKTsKICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDhweCwgOHB4IC04cHgsIC04cHggMHB4OwogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHt0aGlzLnBhblh9cHgsICR7dGhpcy5wYW5ZfXB4KSBzY2FsZSgke3RoaXMuem9vbX0pOwogICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGlzLmlzRHJhZ2dpbmc/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlIn07CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiAke3RoaXMuZml0fTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcuYWN0dWFsIHsKICAgICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgICBvYmplY3QtZml0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjgpIiwicmdiYSgwLDAsMCwwLjYpIil9OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLWluZm8gewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21PdXR9IHRpdGxlPSJab29tIG91dCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLnpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21Jbn0gdGl0bGU9Ilpvb20gaW4iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmZpdFRvU2NyZWVufSB0aXRsZT0iRml0IHRvIHNjcmVlbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuYWN0dWFsU2l6ZX0gdGl0bGU9IkFjdHVhbCBzaXplICgxMDAlKSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTY2FuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmRvd25sb2FkfSB0aXRsZT0iRG93bmxvYWQiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmltYWdlTmF0dXJhbFdpZHRoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS1pbmZvIj4ke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGh9IHggJHt0aGlzLmltYWdlTmF0dXJhbEhlaWdodH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iaW1hZ2UtYXJlYSIKICAgICAgICAgIEB3aGVlbD0ke3RoaXMuaGFuZGxlV2hlZWx9CiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgICBAbW91c2V1cD0ke3RoaXMuaGFuZGxlTW91c2VVcH0KICAgICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5oYW5kbGVEb3VibGVDbGlja30KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2VyYm9hcmQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgICAgICR7dGhpcy5zcmM/d2AKICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmZpdD09PSJhY3R1YWwiPyJhY3R1YWwiOiIifSIKICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmxvYWRpbmcmJnRoaXMuc3JjP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpJbWFnZU9mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXpvb21Jbigpe3RoaXMuem9vbT1NYXRoLm1pbigxMCx0aGlzLnpvb20qMS4yNSl9em9vbU91dCgpe3RoaXMuem9vbT1NYXRoLm1heCguMSx0aGlzLnpvb20vMS4yNSksdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXJlc2V0Wm9vbSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wfWZpdFRvU2NyZWVuKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5maXQ9ImNvbnRhaW4ifWFjdHVhbFNpemUoKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iYWN0dWFsIn1kb3dubG9hZCgpe2lmKCF0aGlzLnNyYylyZXR1cm47bGV0IGxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtsZS5ocmVmPXRoaXMuc3JjLGxlLmRvd25sb2FkPXRoaXMuc3JjLnNwbGl0KCIvIikucG9wKCl8fCJpbWFnZSIsbGUuY2xpY2soKX1oYW5kbGVJbWFnZUxvYWQobGUpe2xldCBRPWxlLnRhcmdldDt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iIix0aGlzLmltYWdlTmF0dXJhbFdpZHRoPVEubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PVEubmF0dXJhbEhlaWdodH1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGltYWdlIn1oYW5kbGVXaGVlbChsZSl7bGUucHJldmVudERlZmF1bHQoKTtsZXQgUT1sZS5kZWx0YVk+MD8uOToxLjEsaWU9TWF0aC5taW4oMTAsTWF0aC5tYXgoLjEsdGhpcy56b29tKlEpKTt0aGlzLnpvb209aWUsdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfWhhbmRsZU1vdXNlRG93bihsZSl7dGhpcy56b29tPD0xfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuZHJhZ1N0YXJ0WD1sZS5jbGllbnRYLHRoaXMuZHJhZ1N0YXJ0WT1sZS5jbGllbnRZLHRoaXMuZHJhZ1N0YXJ0UGFuWD10aGlzLnBhblgsdGhpcy5kcmFnU3RhcnRQYW5ZPXRoaXMucGFuWSl9aGFuZGxlTW91c2VNb3ZlKGxlKXt0aGlzLmlzRHJhZ2dpbmcmJih0aGlzLnBhblg9dGhpcy5kcmFnU3RhcnRQYW5YKyhsZS5jbGllbnRYLXRoaXMuZHJhZ1N0YXJ0WCksdGhpcy5wYW5ZPXRoaXMuZHJhZ1N0YXJ0UGFuWSsobGUuY2xpZW50WS10aGlzLmRyYWdTdGFydFkpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExfWhhbmRsZURvdWJsZUNsaWNrKCl7dGhpcy56b29tPT09MT90aGlzLnpvb209MjoodGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXVwZGF0ZWQobGUpe3N1cGVyLnVwZGF0ZWQobGUpLGxlLmhhcygic3JjIikmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0iIix0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmltYWdlTmF0dXJhbFdpZHRoPTAsdGhpcy5pbWFnZU5hdHVyYWxIZWlnaHQ9MCl9c3RhdGlje2JpKGEsdCl9fTtyZXR1cm4gdWU9YX0pKCl9KTt2YXIgWHdhPWcoKCk9Pnt4bHQoKX0pO3ZhciBRd2EsSndhPWcoKCk9PntwZSgpO1F3YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgZGVlcy1hdWRpby12aWV3ZXIgewogICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gd2l0aCBXYXZlZm9ybTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBwbGF5ZXIgd2l0aCB3YXZlZm9ybSB2aXN1YWxpemF0aW9uIGFuZCBmdWxsIHRyYW5zcG9ydCBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICBhcnRpc3Q9IlQuIFNjaHVlcmdlciIKICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gd2l0aG91dCBXYXZlZm9ybTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TaW1wbGUgYXVkaW8gcGxheWVyIHdpdGggYSBzZWVrYmFyIGluc3RlYWQgb2YgYSB3YXZlZm9ybS48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTIubXAzIgogICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMiIKICAgICAgICAuc2hvd1dhdmVmb3JtPSR7ITF9CiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk1pbmltYWwgQXVkaW8gUGxheWVyPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk5vIHRpdGxlIG9yIGFydGlzdCBtZXRhZGF0YSDigJQganVzdCB0aGUgcGxheWVyLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMy5tcDMiCiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBibixEcyxWZXMseWx0PWcoKCk9PntwZSgpO0dhKCk7SndhKCk7Ym49ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LERzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxWZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWF1ZGlvLXZpZXdlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W107dmFyIHllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXVkaW9WaWV3ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgcT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sYz1bTCgpXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLGJuKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJzcmMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5zcmMsImdldCIpLHNldDppKChBLHNlKT0+e0Euc3JjPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LG8sbCksYm4odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4idGl0bGUiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS50aXRsZSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS50aXRsZT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxkLHUpLGJuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJhcnRpc3QiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5hcnRpc3QsImdldCIpLHNldDppKChBLHNlKT0+e0EuYXJ0aXN0PXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGIsdiksYm4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2F2ZWZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNob3dXYXZlZm9ybSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNob3dXYXZlZm9ybSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93V2F2ZWZvcm09c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbSxmKSxibih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9wbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJhdXRvcGxheSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmF1dG9wbGF5LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmF1dG9wbGF5PXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LE0seiksYm4odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb29wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJsb29wImluIEEsImhhcyIpLGdldDppKEE9PkEubG9vcCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5sb29wPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEMsXyksYm4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImlzUGxheWluZyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmlzUGxheWluZywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5pc1BsYXlpbmc9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sJCxFKSxibih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJjdXJyZW50VGltZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmN1cnJlbnRUaW1lLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmN1cnJlbnRUaW1lPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGssUyksYm4odGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZHVyYXRpb24iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5kdXJhdGlvbj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxQLFIpLGJuKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidm9sdW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJ2b2x1bWUiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS52b2x1bWUsImdldCIpLHNldDppKChBLHNlKT0+e0Eudm9sdW1lPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFYsVyksYm4odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNNdXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iaXNNdXRlZCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmlzTXV0ZWQsImdldCIpLHNldDppKChBLHNlKT0+e0EuaXNNdXRlZD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxCLFUpLGJuKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImxvYWRpbmciaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmxvYWRpbmc9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sRixqKSxibih0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZXJyb3IiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5lcnJvciwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5lcnJvcj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxsZSxRKSxibih0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+IndhdmVmb3JtRGF0YSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLndhdmVmb3JtRGF0YSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS53YXZlZm9ybURhdGE9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sdGUsZWUpLGJuKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+IndhdmVmb3JtUmVhZHkiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS53YXZlZm9ybVJlYWR5LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLndhdmVmb3JtUmVhZHk9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sWCxaKSxibihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpxfSxudWxsLHQpLHllPWE9ZS52YWx1ZSxxJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX1zdGF0aWMgZGVtbz1Rd2E7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPURzKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMocSl7dGhpcy4jZT1xfSN0PShEcyh0aGlzLGwpLERzKHRoaXMsZCwiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShxKXt0aGlzLiN0PXF9I2E9KERzKHRoaXMsdSksRHModGhpcyxiLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNhfXNldCBhcnRpc3QocSl7dGhpcy4jYT1xfSNzPShEcyh0aGlzLHYpLERzKHRoaXMsbSwhMCkpO2dldCBzaG93V2F2ZWZvcm0oKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1dhdmVmb3JtKHEpe3RoaXMuI3M9cX0jaT0oRHModGhpcyxmKSxEcyh0aGlzLE0sITEpKTtnZXQgYXV0b3BsYXkoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b3BsYXkocSl7dGhpcy4jaT1xfSNyPShEcyh0aGlzLHopLERzKHRoaXMsQywhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvb3AocSl7dGhpcy4jcj1xfSNvPShEcyh0aGlzLF8pLERzKHRoaXMsJCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQbGF5aW5nKHEpe3RoaXMuI289cX0jbj0oRHModGhpcyxFKSxEcyh0aGlzLGssMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNufXNldCBjdXJyZW50VGltZShxKXt0aGlzLiNuPXF9I2w9KERzKHRoaXMsUyksRHModGhpcyxQLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24ocSl7dGhpcy4jbD1xfSNjPShEcyh0aGlzLFIpLERzKHRoaXMsViwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUocSl7dGhpcy4jYz1xfSNkPShEcyh0aGlzLFcpLERzKHRoaXMsQiwhMSkpO2dldCBpc011dGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzTXV0ZWQocSl7dGhpcy4jZD1xfSN1PShEcyh0aGlzLFUpLERzKHRoaXMsRiwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGxvYWRpbmcocSl7dGhpcy4jdT1xfSNwPShEcyh0aGlzLGopLERzKHRoaXMsbGUsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXJyb3IocSl7dGhpcy4jcD1xfSNoPShEcyh0aGlzLFEpLERzKHRoaXMsdGUsW10pKTtnZXQgd2F2ZWZvcm1EYXRhKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHdhdmVmb3JtRGF0YShxKXt0aGlzLiNoPXF9I2Y9KERzKHRoaXMsZWUpLERzKHRoaXMsWCwhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHdhdmVmb3JtUmVhZHkocSl7dGhpcy4jZj1xfWF1ZGlvRWxlbWVudD0oRHModGhpcyxaKSxudWxsKTtjYW52YXNFbGVtZW50PW51bGw7YW5pbUZyYW1lSWQ9MDt2b2x1bWVCZWZvcmVNdXRlPTE7cmVuZGVyKCl7bGV0IHE9dGhpcy50aXRsZSYmdGhpcy5hcnRpc3Q/YCR7dGhpcy50aXRsZX0gXHUyMDE0ICR7dGhpcy5hcnRpc3R9YDp0aGlzLnRpdGxlfHx0aGlzLmFydGlzdHx8IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAtLWVuZCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgbWluLXdpZHRoOiA5MHB4OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlciB7CiAgICAgICAgICB3aWR0aDogNzBweDsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYiB7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAud2F2ZWZvcm0tY29udGFpbmVyIGNhbnZhcyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItY29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItZmlsbCB7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuY3VycmVudFRpbWUpfSAvICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3E/d2AKICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvb2xiYXItdGl0bGUiPiR7cX08L3NwYW4+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAtLWVuZCI+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmxvb3A/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTG9vcH0KICAgICAgICAgICAgICB0aXRsZT0iTG9vcCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlJlcGVhdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVNdXRlfSB0aXRsZT0iJHt0aGlzLmlzTXV0ZWQ/IlVubXV0ZSI6Ik11dGUifSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNNdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmlzTXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpNdXNpY09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5zaG93V2F2ZWZvcm0/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0id2F2ZWZvcm0tY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZVdhdmVmb3JtQ2xpY2t9PgogICAgICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLWNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrYmFyQ2xpY2t9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItZmlsbCIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zcmMmJnRoaXMuaW5pdEF1ZGlvKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYW51cCgpfWFzeW5jIHVwZGF0ZWQocSl7c3VwZXIudXBkYXRlZChxKSxxLmhhcygic3JjIikmJnRoaXMuc3JjJiYodGhpcy5jbGVhbnVwKCksdGhpcy5pbml0QXVkaW8oKSksKHEuaGFzKCJ3YXZlZm9ybURhdGEiKXx8cS5oYXMoImN1cnJlbnRUaW1lIikpJiZ0aGlzLmRyYXdXYXZlZm9ybSgpfXBsYXkoKXt0aGlzLmF1ZGlvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy5hdWRpb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKHEpe3RoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWU9cSl9c2V0Vm9sdW1lKHEpe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxxKSksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpLHRoaXMudm9sdW1lPjAmJih0aGlzLmlzTXV0ZWQ9ITEpfXRvZ2dsZU11dGUoKXt0aGlzLmlzTXV0ZWQ/KHRoaXMuaXNNdXRlZD0hMSx0aGlzLnZvbHVtZT10aGlzLnZvbHVtZUJlZm9yZU11dGV8fC41LHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKSk6KHRoaXMudm9sdW1lQmVmb3JlTXV0ZT10aGlzLnZvbHVtZSx0aGlzLmlzTXV0ZWQ9ITAsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9MCkpfXRvZ2dsZUxvb3AoKXt0aGlzLmxvb3A9IXRoaXMubG9vcCx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50Lmxvb3A9dGhpcy5sb29wKX1pbml0QXVkaW8oKXt0aGlzLmF1ZGlvRWxlbWVudD1uZXcgQXVkaW8sdGhpcy5hdWRpb0VsZW1lbnQuY3Jvc3NPcmlnaW49ImFub255bW91cyIsdGhpcy5hdWRpb0VsZW1lbnQuc3JjPXRoaXMuc3JjLHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLmlzTXV0ZWQ/MDp0aGlzLnZvbHVtZSx0aGlzLmF1ZGlvRWxlbWVudC5sb29wPXRoaXMubG9vcCx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPXRoaXMuYXVkaW9FbGVtZW50LmR1cmF0aW9uLHRoaXMubG9hZGluZz0hMX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zdGFydFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIiwoKT0+e3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuc3RvcFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVuZGVkIiwoKT0+e3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuc3RvcFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGF1ZGlvIix0aGlzLmxvYWRpbmc9ITF9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0aW1ldXBkYXRlIiwoKT0+e3RoaXMuY3VycmVudFRpbWU9dGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWV9KSx0aGlzLmF1dG9wbGF5JiZ0aGlzLmF1ZGlvRWxlbWVudC5wbGF5KCkuY2F0Y2goKCk9Pnt9KSx0aGlzLnNob3dXYXZlZm9ybSYmdGhpcy5sb2FkV2F2ZWZvcm0oKX1hc3luYyBsb2FkV2F2ZWZvcm0oKXt0cnl7dGhpcy5sb2FkaW5nPSEwO2xldCBBPWF3YWl0KGF3YWl0IGZldGNoKHRoaXMuc3JjKSkuYXJyYXlCdWZmZXIoKSxzZT1uZXcgQXVkaW9Db250ZXh0LGFlPShhd2FpdCBzZS5kZWNvZGVBdWRpb0RhdGEoQSkpLmdldENoYW5uZWxEYXRhKDApLFRlPTIwMCxSZT1NYXRoLmZsb29yKGFlLmxlbmd0aC9UZSksQmU9W107Zm9yKGxldCBEZT0wO0RlPFRlO0RlKyspe2xldCBfZT0wO2ZvcihsZXQgQ2U9MDtDZTxSZTtDZSsrKV9lKz1NYXRoLmFicyhhZVtEZSpSZStDZV0pO0JlLnB1c2goX2UvUmUpfWxldCBHZT1NYXRoLm1heCguLi5CZSk7dGhpcy53YXZlZm9ybURhdGE9QmUubWFwKERlPT5HZT4wP0RlL0dlOjApLHRoaXMud2F2ZWZvcm1SZWFkeT0hMCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgc2UuY2xvc2UoKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5sb2FkaW5nPSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy5zaG93V2F2ZWZvcm18fCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBxPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiY2FudmFzIik7aWYoIXEpcmV0dXJuO3RoaXMuY2FudmFzRWxlbWVudD1xO2xldCBBPXEucGFyZW50RWxlbWVudCxzZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSxvZT1BLmNsaWVudFdpZHRoLGFlPUEuY2xpZW50SGVpZ2h0O3Eud2lkdGg9b2Uqc2UscS5oZWlnaHQ9YWUqc2U7bGV0IFRlPXEuZ2V0Q29udGV4dCgiMmQiKTtpZighVGUpcmV0dXJuO1RlLnNjYWxlKHNlLHNlKSxUZS5jbGVhclJlY3QoMCwwLG9lLGFlKTtsZXQgUmU9dGhpcy53YXZlZm9ybURhdGEubGVuZ3RoO2lmKFJlPT09MClyZXR1cm47bGV0IEJlPW9lL1JlLEdlPXRoaXMuZHVyYXRpb24+MD90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb246MCxEZT1NYXRoLmZsb29yKEdlKlJlKSxfZT1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidGhlbWUtZGFyayIpfHx3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXMsQ2U9X2U/ImhzbCgyMTMgOTMlIDY4JSkiOiJoc2woMjE3IDkxJSA2MCUpIix2ZT1fZT8iaHNsKDIxNyAyNSUgMjIlKSI6ImhzbCgyMTQgMzElIDg2JSkiO2ZvcihsZXQgYmU9MDtiZTxSZTtiZSsrKXtsZXQgRWU9dGhpcy53YXZlZm9ybURhdGFbYmVdLGplPU1hdGgubWF4KDIsRWUqKGFlLTQpKSxXZT1iZSpCZSxzdD0oYWUtamUpLzI7VGUuZmlsbFN0eWxlPWJlPERlP0NlOnZlLFRlLmZpbGxSZWN0KFdlKy41LHN0LEJlLTEsamUpfX1oYW5kbGVXYXZlZm9ybUNsaWNrKHEpe2xldCBBPXEuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzZT0ocS5jbGllbnRYLUEubGVmdCkvQS53aWR0aDt0aGlzLnNlZWsoc2UqdGhpcy5kdXJhdGlvbil9aGFuZGxlU2Vla2JhckNsaWNrKHEpe2xldCBBPXEuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzZT0ocS5jbGllbnRYLUEubGVmdCkvQS53aWR0aDt0aGlzLnNlZWsoc2UqdGhpcy5kdXJhdGlvbil9aGFuZGxlVm9sdW1lQ2hhbmdlKHEpe2xldCBBPXBhcnNlRmxvYXQocS50YXJnZXQudmFsdWUpO3RoaXMuc2V0Vm9sdW1lKEEpfXN0YXJ0VGltZVVwZGF0ZSgpe3RoaXMuc3RvcFRpbWVVcGRhdGUoKTtsZXQgcT1pKCgpPT57dGhpcy5hdWRpb0VsZW1lbnQmJnRoaXMuaXNQbGF5aW5nJiYodGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZSx0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShxKSl9LCJ1cGRhdGUiKTt0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShxKX1zdG9wVGltZVVwZGF0ZSgpe3RoaXMuYW5pbUZyYW1lSWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1GcmFtZUlkKSx0aGlzLmFuaW1GcmFtZUlkPTApfWZvcm1hdFRpbWUocSl7aWYoIWlzRmluaXRlKHEpfHxxPDApcmV0dXJuIjA6MDAiO2xldCBBPU1hdGguZmxvb3IocS82MCksc2U9TWF0aC5mbG9vcihxJTYwKTtyZXR1cm5gJHtBfToke3NlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9Y2xlYW51cCgpe3RoaXMuc3RvcFRpbWVVcGRhdGUoKSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmR1cmF0aW9uPTAsdGhpcy53YXZlZm9ybURhdGE9W10sdGhpcy53YXZlZm9ybVJlYWR5PSExfXN0YXRpY3tEcyhhLHQpfX07cmV0dXJuIHllPWF9KSgpfSk7dmFyIGVrYT1nKCgpPT57eWx0KCl9KTt2YXIgdGthLGFrYT1nKCgpPT57cGUoKTt0a2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WaWRlbyB3aXRoIEN1c3RvbSBDb250cm9sczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIHZpZGVvIHBsYXllciB3aXRoIG92ZXJsYXkgY29udHJvbHMsIHNlZWtpbmcsIGFuZCB2b2x1bWUgYWRqdXN0bWVudC48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9CaWdCdWNrQnVubnkubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0JpZ0J1Y2tCdW5ueS5qcGciCiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG9wbGF5IE11dGVkPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHRoYXQgYXV0b3BsYXlzIG11dGVkLCBjb21tb25seSB1c2VkIGZvciBwcmV2aWV3cy48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9FbGVwaGFudHNEcmVhbS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9pbWFnZXMvRWxlcGhhbnRzRHJlYW0uanBnIgogICAgICAgIC5hdXRvcGxheT0keyEwfQogICAgICAgIC5tdXRlZD0keyEwfQogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OYXRpdmUgQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gdXNpbmcgYnJvd3Nlci1uYXRpdmUgY29udHJvbHMgaW5zdGVhZCBvZiBjdXN0b20gb3ZlcmxheS48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9Gb3JCaWdnZXJCbGF6ZXMubXA0IgogICAgICAgIC5zaG93Q29udHJvbHM9JHshMX0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIHRsLFVzLFVlcyx3bHQ9ZygoKT0+e3BlKCk7R2EoKTtha2EoKTt0bD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sVXM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFVlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdmlkZW8tdmlld2VyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdO3ZhciBrZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1ZpZGVvVmlld2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKCldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLHRsKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzcmMiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zcmMsImdldCIpLHNldDppKChaLHllKT0+e1ouc3JjPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LG8sbCksdGwodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3N0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InBvc3RlciJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnBvc3RlciwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5wb3N0ZXI9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sZCx1KSx0bCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ic2hvd0NvbnRyb2xzImluIFosImhhcyIpLGdldDppKFo9Plouc2hvd0NvbnRyb2xzLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnNob3dDb250cm9scz15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxiLHYpLHRsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImF1dG9wbGF5ImluIFosImhhcyIpLGdldDppKFo9PlouYXV0b3BsYXksImdldCIpLHNldDppKChaLHllKT0+e1ouYXV0b3BsYXk9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbSxmKSx0bCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxvb3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+Imxvb3AiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5sb29wLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmxvb3A9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sTSx6KSx0bCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im11dGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJtdXRlZCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLm11dGVkLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLm11dGVkPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEMsXyksdGwodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImlzUGxheWluZyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmlzUGxheWluZywiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5pc1BsYXlpbmc9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sJCxFKSx0bCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjdXJyZW50VGltZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmN1cnJlbnRUaW1lLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmN1cnJlbnRUaW1lPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGssUyksdGwodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iZHVyYXRpb24iaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5kdXJhdGlvbj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxQLFIpLHRsKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidm9sdW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJ2b2x1bWUiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi52b2x1bWUsImdldCIpLHNldDppKChaLHllKT0+e1oudm9sdW1lPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LFYsVyksdGwodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ibG9hZGluZyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmxvYWRpbmcsImdldCIpLHNldDppKChaLHllKT0+e1oubG9hZGluZz15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxCLFUpLHRsKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJlcnJvciJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmVycm9yLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmVycm9yPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEYsaiksdGwodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsc2NyZWVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJpc0Z1bGxzY3JlZW4iaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5pc0Z1bGxzY3JlZW4sImdldCIpLHNldDppKChaLHllKT0+e1ouaXNGdWxsc2NyZWVuPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGxlLFEpLHRsKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRyb2xzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iY29udHJvbHNWaXNpYmxlImluIFosImhhcyIpLGdldDppKFo9PlouY29udHJvbHNWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmNvbnRyb2xzVmlzaWJsZT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSx0ZSxlZSksdGwobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6WH0sbnVsbCx0KSxrZT1hPWUudmFsdWUsWCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpYfSl9c3RhdGljIGRlbW89dGthO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1Vcyh0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKFgpe3RoaXMuI2U9WH0jdD0oVXModGhpcyxsKSxVcyh0aGlzLGQsIiIpKTtnZXQgcG9zdGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc3RlcihYKXt0aGlzLiN0PVh9I2E9KFVzKHRoaXMsdSksVXModGhpcyxiLCEwKSk7Z2V0IHNob3dDb250cm9scygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93Q29udHJvbHMoWCl7dGhpcy4jYT1YfSNzPShVcyh0aGlzLHYpLFVzKHRoaXMsbSwhMSkpO2dldCBhdXRvcGxheSgpe3JldHVybiB0aGlzLiNzfXNldCBhdXRvcGxheShYKXt0aGlzLiNzPVh9I2k9KFVzKHRoaXMsZiksVXModGhpcyxNLCExKSk7Z2V0IGxvb3AoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbG9vcChYKXt0aGlzLiNpPVh9I3I9KFVzKHRoaXMseiksVXModGhpcyxDLCExKSk7Z2V0IG11dGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG11dGVkKFgpe3RoaXMuI3I9WH0jbz0oVXModGhpcyxfKSxVcyh0aGlzLCQsITEpKTtnZXQgaXNQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUGxheWluZyhYKXt0aGlzLiNvPVh9I249KFVzKHRoaXMsRSksVXModGhpcyxrLDApKTtnZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3VycmVudFRpbWUoWCl7dGhpcy4jbj1YfSNsPShVcyh0aGlzLFMpLFVzKHRoaXMsUCwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGR1cmF0aW9uKFgpe3RoaXMuI2w9WH0jYz0oVXModGhpcyxSKSxVcyh0aGlzLFYsMSkpO2dldCB2b2x1bWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdm9sdW1lKFgpe3RoaXMuI2M9WH0jZD0oVXModGhpcyxXKSxVcyh0aGlzLEIsITApKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNkfXNldCBsb2FkaW5nKFgpe3RoaXMuI2Q9WH0jdT0oVXModGhpcyxVKSxVcyh0aGlzLEYsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZXJyb3IoWCl7dGhpcy4jdT1YfSNwPShVcyh0aGlzLGopLFVzKHRoaXMsbGUsITEpKTtnZXQgaXNGdWxsc2NyZWVuKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGlzRnVsbHNjcmVlbihYKXt0aGlzLiNwPVh9I2g9KFVzKHRoaXMsUSksVXModGhpcyx0ZSwhMCkpO2dldCBjb250cm9sc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jaH1zZXQgY29udHJvbHNWaXNpYmxlKFgpe3RoaXMuI2g9WH1oaWRlQ29udHJvbHNUaW1lcj0oVXModGhpcyxlZSksbnVsbCk7dmlkZW9FbGVtZW50PW51bGw7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgdmlkZW8gewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAub3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICAgIG9wYWNpdHk6ICR7dGhpcy5pc1BsYXlpbmc/MDoxfTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiAke3RoaXMuaXNQbGF5aW5nPyJub25lIjoiYXV0byJ9OwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXk6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xKTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1iYXIgewogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuNykpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxMnB4IDEycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmNvbnRyb2xzVmlzaWJsZXx8IXRoaXMuaXNQbGF5aW5nPzE6MH07CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXJvdyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93OmhvdmVyIHsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcHJvZ3Jlc3MgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuY29udHJvbHMtcm93IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ2aWRlby1jb250YWluZXIiCiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZUxlYXZlfQogICAgICA+CiAgICAgICAgPHZpZGVvCiAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAucG9zdGVyPSR7dGhpcy5wb3N0ZXJ9CiAgICAgICAgICAubXV0ZWQ9JHt0aGlzLm11dGVkfQogICAgICAgICAgLmxvb3A9JHt0aGlzLmxvb3B9CiAgICAgICAgICA/YXV0b3BsYXk9JHt0aGlzLmF1dG9wbGF5fQogICAgICAgICAgP2NvbnRyb2xzPSR7IXRoaXMuc2hvd0NvbnRyb2xzfQogICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgIEBsb2FkZWRtZXRhZGF0YT0ke3RoaXMuaGFuZGxlTG9hZGVkTWV0YWRhdGF9CiAgICAgICAgICBAcGxheT0ke3RoaXMuaGFuZGxlUGxheX0KICAgICAgICAgIEBwYXVzZT0ke3RoaXMuaGFuZGxlUGF1c2V9CiAgICAgICAgICBAZW5kZWQ9JHt0aGlzLmhhbmRsZUVuZGVkfQogICAgICAgICAgQHRpbWV1cGRhdGU9JHt0aGlzLmhhbmRsZVRpbWVVcGRhdGV9CiAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUVycm9yfQogICAgICAgICAgQHdhaXRpbmc9JHsoKT0+e3RoaXMubG9hZGluZz0hMH19CiAgICAgICAgICBAY2FucGxheT0keygpPT57dGhpcy5sb2FkaW5nPSExfX0KICAgICAgICA+PC92aWRlbz4KCiAgICAgICAgJHt0aGlzLnNob3dDb250cm9scz93YAogICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdmVybGF5Q2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXItcGxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtYmFyIiBAY2xpY2s9JHtYPT5YLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLXJvdyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrfT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcHJvZ3Jlc3MiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtcm93Ij4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5jdXJyZW50VGltZSl9IC8gJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9CiAgICAgICAgICAgICAgICA8L3NwYW4+CgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwYWNlciI+PC9zcGFuPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZU11dGV9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5tdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMubXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHJsLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVGdWxsc2NyZWVufSB0aXRsZT0iRnVsbHNjcmVlbiI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc0Z1bGxzY3JlZW4/Ik1pbmltaXplIjoiTWF4aW1pemUifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMubG9hZGluZyYmIXRoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpWaWRlb09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMudmlkZW9FbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidmlkZW8iKXx8bnVsbCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpLHRoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKX1wbGF5KCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMudmlkZW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhYKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lPVgpfXNldFZvbHVtZShYKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsWCkpLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKX10b2dnbGVGdWxsc2NyZWVuKCl7bGV0IFg9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8tY29udGFpbmVyIik7WCYmKHRoaXMuaXNGdWxsc2NyZWVuP2RvY3VtZW50LmV4aXRGdWxsc2NyZWVuPy4oKTpYLnJlcXVlc3RGdWxsc2NyZWVuPy4oKSl9aGFuZGxlTG9hZGVkTWV0YWRhdGEoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuZHVyYXRpb249dGhpcy52aWRlb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExKX1oYW5kbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZVBhdXNlKCl7dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jb250cm9sc1Zpc2libGU9ITB9aGFuZGxlRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVUaW1lVXBkYXRlKCl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKX1oYW5kbGVFcnJvcigpe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIHZpZGVvIix0aGlzLmxvYWRpbmc9ITF9aGFuZGxlT3ZlcmxheUNsaWNrKCl7dGhpcy50b2dnbGVQbGF5KCl9aGFuZGxlU2VlayhYKXtsZXQgWj1YLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseWU9KFguY2xpZW50WC1aLmxlZnQpL1oud2lkdGg7dGhpcy5zZWVrKHllKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShYKXtsZXQgWj1wYXJzZUZsb2F0KFgudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZShaKSx0aGlzLm11dGVkPVo9PT0wfXRvZ2dsZU11dGUoKXt0aGlzLm11dGVkPSF0aGlzLm11dGVkLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQubXV0ZWQ9dGhpcy5tdXRlZCl9aGFuZGxlTW91c2VNb3ZlKCl7dGhpcy5jb250cm9sc1Zpc2libGU9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZU1vdXNlTGVhdmUoKXt0aGlzLmlzUGxheWluZyYmKHRoaXMuY29udHJvbHNWaXNpYmxlPSExKX1zY2hlZHVsZUhpZGVDb250cm9scygpe3RoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKSx0aGlzLmlzUGxheWluZyYmKHRoaXMuaGlkZUNvbnRyb2xzVGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuY29udHJvbHNWaXNpYmxlPSExfSwzZTMpKX1oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlPWkoKCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fSwiaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSIpO2Zvcm1hdFRpbWUoWCl7aWYoIWlzRmluaXRlKFgpfHxYPDApcmV0dXJuIjA6MDAiO2xldCBaPU1hdGguZmxvb3IoWC82MCkseWU9TWF0aC5mbG9vcihYJTYwKTtyZXR1cm5gJHtafToke3llLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje1VzKGEsdCl9fTtyZXR1cm4ga2U9YX0pKCl9KTt2YXIgc2thPWcoKCk9Pnt3bHQoKX0pO3ZhciBXdSxuMmU9ZygoKT0+e3BlKCk7V3U9Y2xhc3N7c3RhdGlje2kodGhpcywiUGRmTWFuYWdlciIpfXN0YXRpYyBwZGZqc0xpYjtzdGF0aWMgaW5pdGlhbGl6ZWQ9ITE7c3RhdGljIGFzeW5jIGluaXRpYWxpemUoKXt0aGlzLmluaXRpYWxpemVkfHwodGhpcy5wZGZqc0xpYj1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKSx0aGlzLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS9idWlsZC9wZGYud29ya2VyLm1qcyIsdGhpcy5pbml0aWFsaXplZD0hMCl9c3RhdGljIGFzeW5jIGxvYWREb2N1bWVudChlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplKCksYXdhaXQgdGhpcy5wZGZqc0xpYi5nZXREb2N1bWVudChlKS5wcm9taXNlfXN0YXRpYyByZWxlYXNlRG9jdW1lbnQoZSl7fX19KTt2YXIgaWthLHJrYT1nKCgpPT57cGUoKTtodCgpO2lrYT1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICBjb250YWluOiBsYXlvdXQgc3R5bGU7CiAgICB9CgogICAgZGVlcy10aWxlIHsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyOjpiZWZvcmUsCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YWZ0ZXIgewogICAgICBjb250ZW50OiAnJzsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgIHotaW5kZXg6IDU7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyOjpiZWZvcmUgewogICAgICB0b3A6IDA7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICB0byBib3R0b20sCiAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAwJSAvIDAuMTIpIil9LAogICAgICAgIHRyYW5zcGFyZW50CiAgICAgICk7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXI6OmFmdGVyIHsKICAgICAgYm90dG9tOiAwOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgdG8gdG9wLAogICAgICAgICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMCUgLyAwLjQpIil9LAogICAgICAgICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMCUgLyAwLjEyKSIpfSwKICAgICAgICB0cmFuc3BhcmVudAogICAgICApOwogICAgfQoKICAgIC50b29sYmFyIHsKICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogNHB4OwogICAgfQoKICAgIC50b29sYmFyLWdyb3VwLS1lbmQgewogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmRpc2FibGVkIHsKICAgICAgb3BhY2l0eTogMC40OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICB9CgogICAgLnBhZ2UtaW5mbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5wYWdlLWlucHV0IHsKICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAucGFnZS1pbnB1dDpmb2N1cyB7CiAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC5wYWdlLXNlcGFyYXRvciB7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNjAlKSIsImhzbCgyMTUgMTYlIDUwJSkiKX07CiAgICB9CgogICAgLnpvb20tbGV2ZWwgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuc2lkZWJhciB7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBvcmRlcjogMDsKICAgIH0KCiAgICAuc2lkZWJhci1yaWdodCAuc2lkZWJhciB7CiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIG9yZGVyOiAxOwogICAgfQoKICAgIC5zaWRlYmFyLWhlYWRlciB7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZSB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KCiAgICAuc2lkZWJhci1jb250ZW50IHsKICAgICAgZmxleDogMTsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBwYWRkaW5nOiAxMnB4OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgbWluLWhlaWdodDogMDsKICAgIH0KCiAgICAudGh1bWJuYWlsIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgyMTUgMjAlIDE4JSkiKX07CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgLyogRGVmYXVsdCBBNCBhc3BlY3QgcmF0aW8gKDI5N21tIC8gMjEwbW0g4omIIDEuNDE0KSAqLwogICAgICBtaW4taGVpZ2h0OiBjYWxjKDE3NnB4ICogMS40MTQpOwogICAgfQoKICAgIC50aHVtYm5haWw6bGFzdC1jaGlsZCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICB9CgogICAgLnRodW1ibmFpbDpob3ZlciB7CiAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAzNSUpIil9OwogICAgfQoKICAgIC50aHVtYm5haWwuYWN0aXZlIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICB9CgogICAgLnRodW1ibmFpbC1jYW52YXMgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogYXV0bzsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogICAgfQoKICAgIC50aHVtYm5haWwtbnVtYmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDRweDsKICAgICAgcmlnaHQ6IDRweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC43KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIH0KCiAgICAudmlld2VyLW1haW4gewogICAgICBmbGV4OiAxOwogICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOwogICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLmxvYWRpbmctY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZ2FwOiAxNnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAubG9hZGluZy10ZXh0IHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC5wYWdlcy1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDIwcHg7CiAgICB9CgogICAgLnBhZ2Utd3JhcHBlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAuY2FudmFzLWNvbnRhaW5lciB7CiAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLnBhZ2UtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAvKiBUZXh0IGxheWVyIGZvciBzZWxlY3Rpb24gKi8KICAgIC50ZXh0LWxheWVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMDsKICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB0ZXh0LXNpemUtYWRqdXN0OiBub25lOwogICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7CiAgICAgIHotaW5kZXg6IDE7CiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0OwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogICAgfQoKICAgIC50ZXh0LWxheWVyIHNwYW4sCiAgICAudGV4dC1sYXllciBiciB7CiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlOwogICAgICB1c2VyLXNlbGVjdDogdGV4dDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgIH0KCiAgICAudGV4dC1sYXllciA6OnNlbGVjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAwLCAyMDAsIDAuMyk7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgYnI6OnNlbGVjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgfQoKICAgIC50ZXh0LWxheWVyIC5lbmRPZkNvbnRlbnQgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMTAwJSAwIDA7CiAgICAgIHotaW5kZXg6IDA7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB9CgogICAgLnRleHQtbGF5ZXIuc2VsZWN0aW5nIC5lbmRPZkNvbnRlbnQgewogICAgICB0b3A6IDA7CiAgICB9CgogICAgLnBkZi12aWV3ZXIud2l0aC1zaWRlYmFyIC52aWV3ZXItbWFpbiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgfQoKICAgIC5wZGYtZm9vdGVyIHsKICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLnBkZi1mb290ZXItbGVmdCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1sZWZ0IC5wZGYtZm9vdGVyLWl0ZW0gKyAucGRmLWZvb3Rlci1pdGVtIHsKICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWNlbnRlciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVmdDogNTAlOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IDAuMTVzIGVhc2U7CiAgICB9CgogICAgLnBkZi1mb290ZXItcmlnaHQgewogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1pdGVtIHsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1maWxlbmFtZSB7CiAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgb3BhY2l0eTogMC43OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KICBgXX0pO3ZhciBva2EsbmthPWcoKCk9PntwZSgpO29rYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICB9CgogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICB9CgogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgfQoKICAgIGRlZXMtcGRmLXZpZXdlciB7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudmlld2VyLXRhbGwgewogICAgICBoZWlnaHQ6IDgwMHB4OwogICAgfQoKICAgIC52aWV3ZXItY29tcGFjdCB7CiAgICAgIGhlaWdodDogNTAwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkZ1bGwgRmVhdHVyZWQgUERGIFZpZXdlciB3aXRoIFRvb2xiYXI8L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci10YWxsIgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJ0cnVlIgogICAgICAgIHNob3dTaWRlYmFyPSJmYWxzZSIKICAgICAgICBpbml0aWFsWm9vbT0icGFnZS1maXQiCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5QREYgVmlld2VyIHdpdGggU2lkZWJhciBOYXZpZ2F0aW9uPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItdGFsbCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0idHJ1ZSIKICAgICAgICBzaG93U2lkZWJhcj0idHJ1ZSIKICAgICAgICBpbml0aWFsWm9vbT0icGFnZS13aWR0aCIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkNvbXBhY3QgVmlld2VyIHdpdGhvdXQgQ29udHJvbHM8L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci1jb21wYWN0IgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJmYWxzZSIKICAgICAgICBzaG93U2lkZWJhcj0iZmFsc2UiCiAgICAgICAgaW5pdGlhbFpvb209ImF1dG8iCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgYWwsV3MsV2VzLGtsdD1nKCgpPT57cGUoKTtuMmUoKTtya2EoKTtua2EoKTtHYSgpO21yKCk7YWw9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFdzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxXZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXBkZi12aWV3ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W107dmFyIGtlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzUGRmVmlld2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOlN0cmluZ30pXSxPPVtMKHt0eXBlOk51bWJlcn0pXSxIPVtMKHt0eXBlOk51bWJlcn0pXSxJPVtMKHt0eXBlOk51bWJlcn0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W0woe3R5cGU6U3RyaW5nfSldLGhlPVtMKHt0eXBlOkFycmF5fSldLHVlPVtMKHt0eXBlOkFycmF5fSldLGllPVtMKHt0eXBlOk51bWJlcn0pXSxhbCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4icGRmVXJsImluIFosImhhcyIpLGdldDppKFo9PloucGRmVXJsLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnBkZlVybD15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxvLGwpLGFsKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImluaXRpYWxQYWdlImluIFosImhhcyIpLGdldDppKFo9PlouaW5pdGlhbFBhZ2UsImdldCIpLHNldDppKChaLHllKT0+e1ouaW5pdGlhbFBhZ2U9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sZCx1KSxhbCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJpbml0aWFsWm9vbSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmluaXRpYWxab29tLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmluaXRpYWxab29tPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGIsdiksYWwodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ic2hvd1Rvb2xiYXIiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5zaG93VG9vbGJhcj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxtLGYpLGFsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NpZGViYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InNob3dTaWRlYmFyImluIFosImhhcyIpLGdldDppKFo9Plouc2hvd1NpZGViYXIsImdldCIpLHNldDppKChaLHllKT0+e1ouc2hvd1NpZGViYXI9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sTSx6KSxhbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpZGViYXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ic2lkZWJhclBvc2l0aW9uImluIFosImhhcyIpLGdldDppKFo9Plouc2lkZWJhclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnNpZGViYXJQb3NpdGlvbj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxDLF8pLGFsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImN1cnJlbnRQYWdlImluIFosImhhcyIpLGdldDppKFo9PlouY3VycmVudFBhZ2UsImdldCIpLHNldDppKChaLHllKT0+e1ouY3VycmVudFBhZ2U9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sJCxFKSxhbCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsUGFnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InRvdGFsUGFnZXMiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi50b3RhbFBhZ2VzLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnRvdGFsUGFnZXM9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sayxTKSxhbCh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjdXJyZW50Wm9vbSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmN1cnJlbnRab29tLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmN1cnJlbnRab29tPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LFAsUiksYWwodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJsb2FkaW5nImluIFosImhhcyIpLGdldDppKFo9PloubG9hZGluZywiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5sb2FkaW5nPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LFYsVyksYWwodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9jdW1lbnRJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iZG9jdW1lbnRJZCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmRvY3VtZW50SWQsImdldCIpLHNldDppKChaLHllKT0+e1ouZG9jdW1lbnRJZD15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxCLFUpLGFsKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InRodW1ibmFpbERhdGEiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi50aHVtYm5haWxEYXRhLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnRodW1ibmFpbERhdGE9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sRixqKSxhbCh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4icGFnZURhdGEiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5wYWdlRGF0YSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5wYWdlRGF0YT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxsZSxRKSxhbCh0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZGZGaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4icGRmRmlsZVNpemUiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5wZGZGaWxlU2l6ZSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5wZGZGaWxlU2l6ZT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSx0ZSxlZSksYWwobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6WH0sbnVsbCx0KSxrZT1hPWUudmFsdWUsWCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpYfSl9c3RhdGljIGRlbW89b2thO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPWlrYTsjZT1Xcyh0aGlzLG8sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKFgpe3RoaXMuI2U9WH0jdD0oV3ModGhpcyxsKSxXcyh0aGlzLGQsMSkpO2dldCBpbml0aWFsUGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbml0aWFsUGFnZShYKXt0aGlzLiN0PVh9I2E9KFdzKHRoaXMsdSksV3ModGhpcyxiLCJhdXRvIikpO2dldCBpbml0aWFsWm9vbSgpe3JldHVybiB0aGlzLiNhfXNldCBpbml0aWFsWm9vbShYKXt0aGlzLiNhPVh9I3M9KFdzKHRoaXMsdiksV3ModGhpcyxtLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dUb29sYmFyKFgpe3RoaXMuI3M9WH0jaT0oV3ModGhpcyxmKSxXcyh0aGlzLE0sITEpKTtnZXQgc2hvd1NpZGViYXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1NpZGViYXIoWCl7dGhpcy4jaT1YfSNyPShXcyh0aGlzLHopLFdzKHRoaXMsQywibGVmdCIpKTtnZXQgc2lkZWJhclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNpZGViYXJQb3NpdGlvbihYKXt0aGlzLiNyPVh9I289KFdzKHRoaXMsXyksV3ModGhpcywkLDEpKTtnZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy4jb31zZXQgY3VycmVudFBhZ2UoWCl7dGhpcy4jbz1YfSNuPShXcyh0aGlzLEUpLFdzKHRoaXMsaywxKSk7Z2V0IHRvdGFsUGFnZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdG90YWxQYWdlcyhYKXt0aGlzLiNuPVh9I2w9KFdzKHRoaXMsUyksV3ModGhpcyxQLDEpKTtnZXQgY3VycmVudFpvb20oKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3VycmVudFpvb20oWCl7dGhpcy4jbD1YfSNjPShXcyh0aGlzLFIpLFdzKHRoaXMsViwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxvYWRpbmcoWCl7dGhpcy4jYz1YfSNkPShXcyh0aGlzLFcpLFdzKHRoaXMsQiwiIikpO2dldCBkb2N1bWVudElkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGRvY3VtZW50SWQoWCl7dGhpcy4jZD1YfSN1PShXcyh0aGlzLFUpLFdzKHRoaXMsRixbXSkpO2dldCB0aHVtYm5haWxEYXRhKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHRodW1ibmFpbERhdGEoWCl7dGhpcy4jdT1YfSNwPShXcyh0aGlzLGopLFdzKHRoaXMsbGUsW10pKTtnZXQgcGFnZURhdGEoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcGFnZURhdGEoWCl7dGhpcy4jcD1YfSNoPShXcyh0aGlzLFEpLFdzKHRoaXMsdGUsMCkpO2dldCBwZGZGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNofXNldCBwZGZGaWxlU2l6ZShYKXt0aGlzLiNoPVh9cGRmRG9jdW1lbnQ9V3ModGhpcyxlZSk7cmVuZGVyU3RhdGU9ImlkbGUiO3JlbmRlckFib3J0Q29udHJvbGxlcj1udWxsO3BhZ2VSZW5kZXJpbmc9ITE7cGFnZU51bVBlbmRpbmc9bnVsbDtjdXJyZW50UmVuZGVyVGFzaz1udWxsO2N1cnJlbnRSZW5kZXJQcm9taXNlPW51bGw7dGh1bWJuYWlsUmVuZGVyVGFza3M9W107cGFnZVJlbmRlclRhc2tzPW5ldyBNYXA7dGV4dExheWVyUmVuZGVyVGFza3M9bmV3IE1hcDtjYW52YXM7Y3R4O3ZpZXdlck1haW49bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcnNlY3Rpb25PYnNlcnZlcjtzY3JvbGxUaHJvdHRsZVRpbWVvdXQ7dmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDowLGhlaWdodDowfTt2aWV3cG9ydE1vZGU9ImF1dG8iO01BTlVBTF9NSU5fWk9PTT0uNTtNQU5VQUxfTUFYX1pPT009MztBQlNPTFVURV9NSU5fWk9PTT0uMTtBQlNPTFVURV9NQVhfWk9PTT00O1BBR0VfR0FQPTIwO1JFTkRFUl9CVUZGRVI9Mztjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUgY2xhc3M9IiR7dGhpcy5zaG93U2lkZWJhcj8id2l0aC1zaWRlYmFyIjoiIn0gc2lkZWJhci0ke3RoaXMuc2lkZWJhclBvc2l0aW9ufSI+CiAgICAgICAgJHt0aGlzLnNob3dUb29sYmFyP3dgCiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByZXZpb3VzUGFnZX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuY3VycmVudFBhZ2U8PTF9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvbkxlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICAgICAgICBtaW49IjEiCiAgICAgICAgICAgICAgICAgIG1heD0iJHt0aGlzLnRvdGFsUGFnZXN9IgogICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5jdXJyZW50UGFnZSl9CiAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZVBhZ2VJbnB1dH0KICAgICAgICAgICAgICAgICAgY2xhc3M9InBhZ2UtaW5wdXQiCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2Utc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2UtdG90YWwiPiR7dGhpcy50b3RhbFBhZ2VzfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm5leHRQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZT49dGhpcy50b3RhbFBhZ2VzfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkNoZXZyb25SaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tT3V0fQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY2FuWm9vbU91dH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnJlc2V0Wm9vbX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iem9vbS1sZXZlbCI+JHtNYXRoLnJvdW5kKHRoaXMuY3VycmVudFpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuem9vbUlufQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY2FuWm9vbUlufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21JbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1BhZ2V9CiAgICAgICAgICAgICAgICB0aXRsZT0iRml0IHRvIHBhZ2UiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TWF4aW1pemUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZml0VG9XaWR0aH0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gd2lkdGgiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJyb3dMZWZ0UmlnaHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAgdG9vbGJhci1ncm91cC0tZW5kIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zaG93U2lkZWJhcj0hdGhpcy5zaG93U2lkZWJhcn0KICAgICAgICAgICAgICAgIHRpdGxlPSIke3RoaXMuc2hvd1NpZGViYXI/IkhpZGUgdGh1bWJuYWlscyI6IlNob3cgdGh1bWJuYWlscyJ9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iJHt0aGlzLnNob3dTaWRlYmFyPyJsdWNpZGU6U2lkZWJhckNsb3NlIjoibHVjaWRlOlNpZGViYXIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5kb3dubG9hZFBkZn0KICAgICAgICAgICAgICAgIHRpdGxlPSJEb3dubG9hZCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpEb3dubG9hZCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5wcmludFBkZn0KICAgICAgICAgICAgICAgIHRpdGxlPSJQcmludCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQcmludGVyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5zaG93U2lkZWJhcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8c3Bhbj5QYWdlczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgY2xhc3M9InNpZGViYXItY2xvc2UiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSExfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpYIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItY29udGVudCI+CiAgICAgICAgICAgICAgICAke1ZpLmtleWVkKHRoaXMuZG9jdW1lbnRJZCx3YAogICAgICAgICAgICAgICAgICAke1ZpLnJlcGVhdCh0aGlzLnRodW1ibmFpbERhdGEsWD0+WC5wYWdlLFg9PndgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0aHVtYm5haWwgJHt0aGlzLmN1cnJlbnRQYWdlPT09WC5wYWdlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wYWdlPSIke1gucGFnZX0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlVGh1bWJuYWlsQ2xpY2t9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InRodW1ibmFpbC1jYW52YXMiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij48L2NhbnZhcz4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRodW1ibmFpbC1udW1iZXIiPiR7WC5wYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItbWFpbiIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy10ZXh0Ij5Mb2FkaW5nIFBERi4uLjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZXMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICR7VmkucmVwZWF0KHRoaXMucGFnZURhdGEsWD0+WC5wYWdlLFg9PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS13cmFwcGVyIiBkYXRhLXBhZ2U9IiR7WC5wYWdlfSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYW52YXMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0icGFnZS1jYW52YXMiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij48L2NhbnZhcz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1sYXllciIgZGF0YS1wYWdlPSIke1gucGFnZX0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJwZGYtZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItbGVmdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZGYtZm9vdGVyLWl0ZW0iPlpvb20gJHtNYXRoLnJvdW5kKHRoaXMuY3VycmVudFpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAke3RoaXMucGRmRmlsZVNpemU+MD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZGYtZm9vdGVyLWl0ZW0iPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLnBkZkZpbGVTaXplKX08L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItY2VudGVyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICR7dGhpcy5zaG93U2lkZWJhciYmdGhpcy5zaWRlYmFyUG9zaXRpb249PT0ibGVmdCI/IjEwMHB4Ijp0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNpZGViYXJQb3NpdGlvbj09PSJyaWdodCI/Ii0xMDBweCI6IjAifSI+CiAgICAgICAgICAgIDxzcGFuPlBhZ2UgJHt0aGlzLmN1cnJlbnRQYWdlfSBvZiAke3RoaXMudG90YWxQYWdlc308L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItcmlnaHQiPgogICAgICAgICAgICAke3RoaXMucGRmVXJsP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBkZi1mb290ZXItZmlsZW5hbWUiPiR7dGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKX08L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMucGRmVXJsJiYodGhpcy5kb2N1bWVudElkPWAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLGF3YWl0IHRoaXMubG9hZFBkZigpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPXZvaWQgMCx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9dm9pZCAwKSx0aGlzLnJlbmRlclN0YXRlPSJkaXNwb3NlZCIsYXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLmNhbnZhcz12b2lkIDAsdGhpcy5jdHg9dm9pZCAwfWFzeW5jIHVwZGF0ZWQoWCl7aWYoc3VwZXIudXBkYXRlZChYKSxYLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgWj1YLmdldCgicGRmVXJsIik7WiYmV3UucmVsZWFzZURvY3VtZW50KFopLHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKX1YLmhhcygic2hvd1NpZGViYXIiKSYmdGhpcy5zaG93U2lkZWJhciYmdGhpcy5wZGZEb2N1bWVudCYmKGF3YWl0IG5ldyBQcm9taXNlKFo9PnJlcXVlc3RBbmltYXRpb25GcmFtZShaKSksdGhpcy50aHVtYm5haWxEYXRhLmZvckVhY2goWj0+Wi5yZW5kZXJlZD0hMSksYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyh0aGlzLmN1cnJlbnRQYWdlKSl9Zm9ybWF0RmlsZVNpemUoWCl7cmV0dXJuIFg8MTAyND9gJHtYfSBCYDpYPDEwMjQqMTAyND9gJHsoWC8xMDI0KS50b0ZpeGVkKDEpfSBLQmA6YCR7KFgvKDEwMjQqMTAyNCkpLnRvRml4ZWQoMSl9IE1CYH1hc3luYyBsb2FkUGRmKCl7dGhpcy5sb2FkaW5nPSEwLHRoaXMucmVuZGVyU3RhdGU9ImxvYWRpbmciO3RyeXthd2FpdCB0aGlzLmNsZWFudXBEb2N1bWVudCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXI7bGV0IFg9dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsO2lmKHRoaXMucGRmRG9jdW1lbnQ9YXdhaXQgV3UubG9hZERvY3VtZW50KHRoaXMucGRmVXJsKSxYLmFib3J0ZWQpcmV0dXJuO3RoaXMudG90YWxQYWdlcz10aGlzLnBkZkRvY3VtZW50Lm51bVBhZ2VzLHRoaXMuY3VycmVudFBhZ2U9dGhpcy5pbml0aWFsUGFnZSx0aGlzLnJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCk7dHJ5e2xldCBaPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0RGF0YSgpO3RoaXMucGRmRmlsZVNpemU9Wi5sZW5ndGh9Y2F0Y2h7dGhpcy5wZGZGaWxlU2l6ZT0wfWlmKHRoaXMudGh1bWJuYWlsRGF0YT1BcnJheS5mcm9tKHtsZW5ndGg6dGhpcy50b3RhbFBhZ2VzfSwoWix5ZSk9Pih7cGFnZTp5ZSsxLHJlbmRlcmVkOiExfSkpLHRoaXMucGFnZURhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKFoseWUpPT4oe3BhZ2U6eWUrMSxyZW5kZXJlZDohMSxyZW5kZXJpbmc6ITEsdGV4dExheWVyUmVuZGVyZWQ6ITF9KSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5lbnN1cmVWaWV3ZXJSZWZzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksYXdhaXQgbmV3IFByb21pc2UoWj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFopKSxYLmFib3J0ZWR8fCh0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJpbmctbWFpbiIsYXdhaXQgdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKSxYLmFib3J0ZWQpfHwodGhpcy5pbml0aWFsUGFnZT4xJiZhd2FpdCB0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmluaXRpYWxQYWdlLCExKSx0aGlzLnNob3dTaWRlYmFyJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShaPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoWikpLFguYWJvcnRlZHx8KGF3YWl0IHRoaXMucmVuZGVyVGh1bWJuYWlscygpLFguYWJvcnRlZCkpKSlyZXR1cm47dGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyZWQifWNhdGNoKFgpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgUERGOiIsWCksdGhpcy5sb2FkaW5nPSExLHRoaXMucmVuZGVyU3RhdGU9ImVycm9yIn19c2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpe3RoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXImJnRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFo9Pntmb3IobGV0IHllIG9mIFope2xldCBxPXllLnRhcmdldCxBPXBhcnNlSW50KHEuZGF0YXNldC5wYWdlfHwiMSIpO3llLmlzSW50ZXJzZWN0aW5nJiZ0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChBKX19LHtyb290OnRoaXMudmlld2VyTWFpbixyb290TWFyZ2luOmAke3RoaXMuUkVOREVSX0JVRkZFUioxMDB9cHggMHB4YCx0aHJlc2hvbGQ6LjAxfSk7bGV0IFg9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIucGFnZS13cmFwcGVyIik7WCYmWC5mb3JFYWNoKFo9Pnt0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPy5vYnNlcnZlKFopfSl9YXN5bmMgcmVuZGVyVmlzaWJsZVBhZ2VzKCl7aWYoIXRoaXMudmlld2VyTWFpbilyZXR1cm47bGV0IFg9dGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodDtmb3IobGV0IFogb2YgdGhpcy5wYWdlRGF0YSl7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7Wi5wYWdlfSJdYCk7aWYoIXllKWNvbnRpbnVlO2xldCBxPXllLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEE9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPXEudG9wLUEudG9wLG9lPXNlK3EuaGVpZ2h0LGFlPXRoaXMuUkVOREVSX0JVRkZFUipYO29lPj0tYWUmJnNlPD1YK2FlJiZhd2FpdCB0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChaLnBhZ2UpfX1hc3luYyByZW5kZXJQYWdlSWZOZWVkZWQoWCl7bGV0IFo9dGhpcy5wYWdlRGF0YS5maW5kKHllPT55ZS5wYWdlPT09WCk7aWYoISghWnx8Wi5yZW5kZXJlZHx8Wi5yZW5kZXJpbmcpKXtaLnJlbmRlcmluZz0hMDt0cnl7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2UtY2FudmFzW2RhdGEtcGFnZT0iJHtYfSJdYCk7aWYoIXllKXtaLnJlbmRlcmluZz0hMTtyZXR1cm59bGV0IHE9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFgpLEE9dGhpcy5jb21wdXRlVmlld3BvcnQocSksc2U9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7eWUud2lkdGg9TWF0aC5mbG9vcihBLndpZHRoKnNlKSx5ZS5oZWlnaHQ9TWF0aC5mbG9vcihBLmhlaWdodCpzZSkseWUuc3R5bGUud2lkdGg9YCR7QS53aWR0aH1weGAseWUuc3R5bGUuaGVpZ2h0PWAke0EuaGVpZ2h0fXB4YDtsZXQgb2U9eWUuZ2V0Q29udGV4dCgiMmQiKTtpZighb2Upe3EuY2xlYW51cD8uKCksWi5yZW5kZXJpbmc9ITE7cmV0dXJufW9lLnNjYWxlKHNlLHNlKTtsZXQgYWU9e2NhbnZhc0NvbnRleHQ6b2Usdmlld3BvcnQ6QX0sVGU9cS5yZW5kZXIoYWUpO3RoaXMucGFnZVJlbmRlclRhc2tzLnNldChYLFRlKSxhd2FpdCBUZS5wcm9taXNlLHEuY2xlYW51cD8uKCksWi5yZW5kZXJlZD0hMCxaLnJlbmRlcmluZz0hMSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5kZWxldGUoWCksYXdhaXQgdGhpcy5yZW5kZXJUZXh0TGF5ZXIoWCksdGhpcy5yZXF1ZXN0VXBkYXRlKCJwYWdlRGF0YSIpfWNhdGNoKHllKXt5ZT8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgcGFnZSAke1h9OmAseWUpLFoucmVuZGVyaW5nPSExLHRoaXMucGFnZVJlbmRlclRhc2tzLmRlbGV0ZShYKX19fWFzeW5jIHJlbmRlclRleHRMYXllcihYKXtsZXQgWj10aGlzLnBhZ2VEYXRhLmZpbmQoeWU9PnllLnBhZ2U9PT1YKTtpZighKCFafHxaLnRleHRMYXllclJlbmRlcmVkKSl0cnl7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRleHQtbGF5ZXJbZGF0YS1wYWdlPSIke1h9Il1gKTtpZigheWUpcmV0dXJuO3llLmlubmVySFRNTD0iIjtsZXQgcT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoWCksQT1hd2FpdCBxLmdldFRleHRDb250ZW50KCksc2U9dGhpcy5jb21wdXRlVmlld3BvcnQocSksb2U9YXdhaXQgaW1wb3J0KCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtIik7eWUuc3R5bGUud2lkdGg9YCR7c2Uud2lkdGh9cHhgLHllLnN0eWxlLmhlaWdodD1gJHtzZS5oZWlnaHR9cHhgLHllLnN0eWxlLnNldFByb3BlcnR5KCItLXNjYWxlLWZhY3RvciIsU3RyaW5nKHNlLnNjYWxlKSk7bGV0IGFlPW9lLnJlbmRlclRleHRMYXllcih7dGV4dENvbnRlbnRTb3VyY2U6QSxjb250YWluZXI6eWUsdmlld3BvcnQ6c2V9KTt0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLnNldChYLGFlKSxhd2FpdCBhZS5wcm9taXNlO2xldCBUZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtUZS5jbGFzc05hbWU9ImVuZE9mQ29udGVudCIseWUuYXBwZW5kQ2hpbGQoVGUpO2xldCBSZT0hMSxCZT1udWxsLEdlPTAsRGU9aSgodmUsYmUpPT57bGV0IEVlPUFycmF5LmZyb20oeWUucXVlcnlTZWxlY3RvckFsbCgic3BhbiIpKTtmb3IobGV0IGplIG9mIEVlKXtsZXQgV2U9amUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYodmU+PVdlLmxlZnQmJnZlPD1XZS5yaWdodCYmYmU+PVdlLnRvcCYmYmU8PVdlLmJvdHRvbSl7bGV0IHN0PWplLmZpcnN0Q2hpbGQ7aWYoc3QmJnN0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2xldCBNZT1zdC50ZXh0Q29udGVudHx8IiIsZ2U9V2Uud2lkdGgvTWUubGVuZ3RoLEllPXZlLVdlLmxlZnQsY2U9TWF0aC5taW4oTWF0aC5yb3VuZChJZS9nZSksTWUubGVuZ3RoKTtyZXR1cm57bm9kZTpzdCxvZmZzZXQ6Y2V9fX19cmV0dXJuIG51bGx9LCJnZXRUZXh0UG9zaXRpb25Gcm9tUG9pbnQiKSxfZT1pKCgpPT57UmUmJihSZT0hMSxCZT1udWxsLHllLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGluZyIpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixfZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixDZSl9LCJoYW5kbGVNb3VzZVVwIiksQ2U9aSh2ZT0+e2lmKCFSZXx8IUJlKXJldHVybjt2ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBiZT1EZSh2ZS5jbGllbnRYLHZlLmNsaWVudFkpO2lmKGJlKXtsZXQgRWU9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKEVlKXRyeXtFZS5zZXRCYXNlQW5kRXh0ZW50KEJlLEdlLGJlLm5vZGUsYmUub2Zmc2V0KX1jYXRjaHt9fX0sImhhbmRsZU1vdXNlTW92ZSIpO3llLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdmU9PntpZih2ZS5idXR0b24hPT0wKXJldHVybjtsZXQgYmU9RGUodmUuY2xpZW50WCx2ZS5jbGllbnRZKTtiZSYmKHZlLnByZXZlbnREZWZhdWx0KCksUmU9ITAsQmU9YmUubm9kZSxHZT1iZS5vZmZzZXQseWUuY2xhc3NMaXN0LmFkZCgic2VsZWN0aW5nIiksd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLENlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixfZSkpfSksWi50ZXh0TGF5ZXJSZW5kZXJlZD0hMCxxLmNsZWFudXA/LigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZGVsZXRlKFgpfWNhdGNoKHllKXt5ZT8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgdGV4dCBsYXllciBmb3IgcGFnZSAke1h9OmAseWUpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZGVsZXRlKFgpfX1oYW5kbGVTY3JvbGw9aSgoKT0+e3RoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQpLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy51cGRhdGVDdXJyZW50UGFnZSgpLHRoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCl9LDUwKX0sImhhbmRsZVNjcm9sbCIpO3VwZGF0ZUN1cnJlbnRQYWdlKCl7aWYoIXRoaXMudmlld2VyTWFpbilyZXR1cm47bGV0IFg9dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCxaPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQseWU9WCtaLzI7Zm9yKGxldCBxPTA7cTx0aGlzLnBhZ2VEYXRhLmxlbmd0aDtxKyspe2xldCBBPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7cSsxfSJdYCk7aWYoIUEpY29udGludWU7bGV0IHNlPUEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksb2U9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGFlPXNlLnRvcC1vZS50b3ArWCxUZT1hZStzZS5oZWlnaHQ7aWYoeWU+PWFlJiZ5ZTw9VGUpe3RoaXMuY3VycmVudFBhZ2UhPT1xKzEmJih0aGlzLmN1cnJlbnRQYWdlPXErMSx0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KHErMSkpO2JyZWFrfX19c2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoWCl7bGV0IFo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGh1bWJuYWlsW2RhdGEtcGFnZT0iJHtYfSJdYCkseWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2lkZWJhci1jb250ZW50Iik7aWYoWiYmeWUpe2xldCBxPVouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQT15ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzZT1xLnRvcDxBLnRvcCxvZT1xLmJvdHRvbT5BLmJvdHRvbTtpZihzZXx8b2Upe2xldCBhZT1aLm9mZnNldFRvcCxUZT1aLm9mZnNldEhlaWdodCxSZT15ZS5jbGllbnRIZWlnaHQsQmU9YWUtUmUvMitUZS8yO3llLnNjcm9sbFRvKHt0b3A6TWF0aC5tYXgoMCxCZSksYmVoYXZpb3I6InNtb290aCJ9KX19fWFzeW5jIHNjcm9sbFRvUGFnZShYLFo9ITApe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7WH0iXWApO2lmKHllJiZ0aGlzLnZpZXdlck1haW4pe2xldCBxPXllLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEE9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG9lPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3ArKHEudG9wLUEudG9wKS10aGlzLnZpZXdlck1haW4uY2xpZW50VG9wLTE2O1o/dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvKHt0b3A6b2UsYmVoYXZpb3I6InNtb290aCJ9KTp0aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wPW9lLHRoaXMuY3VycmVudFBhZ2U9WCx0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KFgpLGF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKFgpfX1hc3luYyByZW5kZXJUaHVtYm5haWxzKCl7aWYoIXRoaXMucGRmRG9jdW1lbnR8fHRoaXMudGh1bWJuYWlsRGF0YS5sZW5ndGg+MCYmdGhpcy50aHVtYm5haWxEYXRhLmV2ZXJ5KFo9PloucmVuZGVyZWQpfHx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsLmFib3J0ZWQpcmV0dXJuO2xldCBYPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPy5zaWduYWw7dGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLXRodW1icyI7Zm9yKGxldCBaIG9mIHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MpdHJ5e1ouY2FuY2VsKCl9Y2F0Y2h7fXRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W107dHJ5e2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IFo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIudGh1bWJuYWlsIikseWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIudGh1bWJuYWlsLWNhbnZhcyIpLHE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2lkZWJhci1jb250ZW50IiksQT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShxKSxvZT0yMDAtKHBhcnNlRmxvYXQoQS5wYWRkaW5nTGVmdCkrcGFyc2VGbG9hdChBLnBhZGRpbmdSaWdodCkpLTQ7Zm9yKGxldCBhZSBvZiBBcnJheS5mcm9tKHllKSl7bGV0IFRlPWFlLmdldENvbnRleHQoIjJkIik7VGUmJlRlLmNsZWFyUmVjdCgwLDAsYWUud2lkdGgsYWUuaGVpZ2h0KX1mb3IobGV0IGFlPTA7YWU8eWUubGVuZ3RoO2FlKyspe2lmKFg/LmFib3J0ZWQpcmV0dXJuO2xldCBUZT15ZVthZV0sUmU9WlthZV0sQmU9cGFyc2VJbnQoVGUuZGF0YXNldC5wYWdlfHwiMSIpLEdlPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShCZSksRGU9R2UuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxfZT1vZS9EZS53aWR0aCxDZT1HZS5nZXRWaWV3cG9ydCh7c2NhbGU6X2V9KSx2ZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtUZS53aWR0aD1NYXRoLmZsb29yKENlLndpZHRoKnZlKSxUZS5oZWlnaHQ9TWF0aC5mbG9vcihDZS5oZWlnaHQqdmUpLFRlLnN0eWxlLndpZHRoPWAke0NlLndpZHRofXB4YCxUZS5zdHlsZS5oZWlnaHQ9YCR7Q2UuaGVpZ2h0fXB4YCxSZS5zdHlsZS5oZWlnaHQ9YCR7Q2UuaGVpZ2h0fXB4YCxSZS5zdHlsZS5taW5IZWlnaHQ9YCR7Q2UuaGVpZ2h0fXB4YDtsZXQgYmU9VGUuZ2V0Q29udGV4dCgiMmQiKTtpZighYmUpe0dlLmNsZWFudXA/LigpO2NvbnRpbnVlfWJlLnNjYWxlKHZlLHZlKTtsZXQgRWU9e2NhbnZhc0NvbnRleHQ6YmUsdmlld3BvcnQ6Q2V9LGplPUdlLnJlbmRlcihFZSk7dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcy5wdXNoKGplKSxhd2FpdCBqZS5wcm9taXNlLEdlLmNsZWFudXA/LigpO2xldCBXZT10aGlzLnRodW1ibmFpbERhdGEuZmluZChzdD0+c3QucGFnZT09PUJlKTtXZSYmKFdlLnJlbmRlcmVkPSEwKX10aGlzLnJlcXVlc3RVcGRhdGUoInRodW1ibmFpbERhdGEiKX1jYXRjaChaKXtaPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyB0aHVtYm5haWxzOiIsWil9ZmluYWxseXt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdfX1wcmV2aW91c1BhZ2UoKXt0aGlzLmN1cnJlbnRQYWdlPjEmJnRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UtMSl9bmV4dFBhZ2UoKXt0aGlzLmN1cnJlbnRQYWdlPHRoaXMudG90YWxQYWdlcyYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZSsxKX1oYW5kbGVUaHVtYm5haWxDbGljayhYKXtsZXQgWj1YLmN1cnJlbnRUYXJnZXQseWU9cGFyc2VJbnQoWi5kYXRhc2V0LnBhZ2V8fCIxIik7dGhpcy5zY3JvbGxUb1BhZ2UoeWUpfWhhbmRsZVBhZ2VJbnB1dChYKXtsZXQgWj1YLnRhcmdldCx5ZT1wYXJzZUludChaLnZhbHVlKTt0aGlzLnNjcm9sbFRvUGFnZSh5ZSl9em9vbUluKCl7bGV0IFg9TWF0aC5taW4odGhpcy5NQU5VQUxfTUFYX1pPT00sdGhpcy5jdXJyZW50Wm9vbSoxLjIpO3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLFghPT10aGlzLmN1cnJlbnRab29tJiYodGhpcy5jdXJyZW50Wm9vbT1YLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpKX16b29tT3V0KCl7bGV0IFg9TWF0aC5tYXgodGhpcy5NQU5VQUxfTUlOX1pPT00sdGhpcy5jdXJyZW50Wm9vbS8xLjIpO3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLFghPT10aGlzLmN1cnJlbnRab29tJiYodGhpcy5jdXJyZW50Wm9vbT1YLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpKX1yZXNldFpvb20oKXt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIix0aGlzLmN1cnJlbnRab29tPTEsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9Zml0VG9QYWdlKCl7dGhpcy52aWV3cG9ydE1vZGU9InBhZ2UtZml0Iix0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1maXRUb1dpZHRoKCl7dGhpcy52aWV3cG9ydE1vZGU9InBhZ2Utd2lkdGgiLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfXJlUmVuZGVyQWxsUGFnZXMoKXt0aGlzLnBhZ2VEYXRhLmZvckVhY2goWD0+e1gucmVuZGVyZWQ9ITEsWC5yZW5kZXJpbmc9ITEsWC50ZXh0TGF5ZXJSZW5kZXJlZD0hMX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbCgpfWNhdGNoe319KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZm9yRWFjaChYPT57dHJ5e1guY2FuY2VsPy4oKX1jYXRjaHt9fSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCl9KX1hc3luYyBkb3dubG9hZFBkZigpe2lmKHRoaXMucGRmRG9jdW1lbnQpdHJ5e2xldCBYPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0RGF0YSgpLFo9bmV3IEJsb2IoW1guYnVmZmVyXSx7dHlwZToiYXBwbGljYXRpb24vcGRmIn0pLHllPVVSTC5jcmVhdGVPYmplY3RVUkwoWikscT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cS5ocmVmPXllLHEuZG93bmxvYWQ9dGhpcy5wZGZVcmwmJnRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLHEuY2xpY2soKSxzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKHllKSwxZTMpfWNhdGNoKFgpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRvd25sb2FkaW5nIFBERjoiLFgpfX1hc3luYyBwcmludFBkZigpe2lmKHRoaXMucGRmRG9jdW1lbnQpdHJ5e2xldCBYPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0RGF0YSgpLFo9bmV3IEJsb2IoW1guYnVmZmVyXSx7dHlwZToiYXBwbGljYXRpb24vcGRmIn0pLHllPVVSTC5jcmVhdGVPYmplY3RVUkwoWikscT1gCiAgICAgICAgPCFET0NUWVBFIGh0bWw+CiAgICAgICAgPGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICA8dGl0bGU+UHJpbnQgUERGPC90aXRsZT4KICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQogICAgICAgICAgICBodG1sLCBib2R5IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQogICAgICAgICAgICBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXI6IG5vbmU7IH0KICAgICAgICAgICAgQG1lZGlhIHByaW50IHsKICAgICAgICAgICAgICBodG1sLCBib2R5LCBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CiAgICAgICAgICAgIH0KICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgPC9oZWFkPgogICAgICAgIDxib2R5PgogICAgICAgICAgPGlmcmFtZSBzcmM9IiR7eWV9IiB0eXBlPSJhcHBsaWNhdGlvbi9wZGYiPjwvaWZyYW1lPgogICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cuZm9jdXMoKTsKICAgICAgICAgICAgICAgIHdpbmRvdy5wcmludCgpOwogICAgICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHdpbmRvdy5vbmFmdGVycHJpbnQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgLy8gU2FmZXR5IGNsb3NlIGFmdGVyIDIgbWludXRlcwogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3aW5kb3cuY2xvc2UoKTsgfSwgMTIwMDAwKTsKICAgICAgICAgIDxcL3NjcmlwdD4KICAgICAgICA8L2JvZHk+CiAgICAgICAgPC9odG1sPgogICAgICBgLEE9bmV3IEJsb2IoW3FdLHt0eXBlOiJ0ZXh0L2h0bWwifSksc2U9VVJMLmNyZWF0ZU9iamVjdFVSTChBKSxvZT13aW5kb3cub3BlbihzZSwiX2JsYW5rIiwid2lkdGg9ODAwLGhlaWdodD02MDAiKTtpZihvZSl7bGV0IGFlPXNldEludGVydmFsKCgpPT57b2UuY2xvc2VkJiYoY2xlYXJJbnRlcnZhbChhZSksVVJMLnJldm9rZU9iamVjdFVSTCh5ZSksVVJMLnJldm9rZU9iamVjdFVSTChzZSkpfSw1MDApO3NldFRpbWVvdXQoKCk9PntjbGVhckludGVydmFsKGFlKSxVUkwucmV2b2tlT2JqZWN0VVJMKHllKSxVUkwucmV2b2tlT2JqZWN0VVJMKHNlKX0sMTJlNCl9ZWxzZSB3aW5kb3cub3Blbih5ZSwiX2JsYW5rIiksc2V0VGltZW91dCgoKT0+VVJMLnJldm9rZU9iamVjdFVSTCh5ZSksNmU0KSxVUkwucmV2b2tlT2JqZWN0VVJMKHNlKX1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBwcmludGluZyBQREY6IixYKX19Z2V0Q29udGV4dE1lbnVJdGVtcygpe2xldCBYPVtdLHllPXdpbmRvdy5nZXRTZWxlY3Rpb24oKT8udG9TdHJpbmcoKXx8IiI7cmV0dXJuIHllJiYoWC5wdXNoKHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh5ZSl9LCJhY3Rpb24iKX0pLFgucHVzaCh7ZGl2aWRlcjohMH0pKSxYLnB1c2goe25hbWU6IkRvd25sb2FkIFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuZG93bmxvYWRQZGYoKX0sImFjdGlvbiIpfSx7bmFtZToiUHJpbnQgUERGIixpY29uTmFtZToibHVjaWRlOlByaW50ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnByaW50UGRmKCl9LCJhY3Rpb24iKX0pLFh9Z2V0IGNhblpvb21Jbigpe3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20ifHx0aGlzLmN1cnJlbnRab29tPHRoaXMuTUFOVUFMX01BWF9aT09NfWdldCBjYW5ab29tT3V0KCl7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSJ8fHRoaXMuY3VycmVudFpvb20+dGhpcy5NQU5VQUxfTUlOX1pPT019ZW5zdXJlVmlld2VyUmVmcygpe3RoaXMudmlld2VyTWFpbnx8KHRoaXMudmlld2VyTWFpbj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWV3ZXItbWFpbiIpKSx0aGlzLnZpZXdlck1haW4mJiF0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKSx0aGlzLnBkZkRvY3VtZW50JiZ0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnZpZXdlck1haW4pLHRoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpLHRoaXMudmlld2VyTWFpbi5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsWD0+e2xldCBaPVguY3VycmVudFRhcmdldCx5ZT1aLnNjcm9sbFRvcCxxPVouc2Nyb2xsSGVpZ2h0LEE9Wi5jbGllbnRIZWlnaHQsc2U9WC5kZWx0YVksb2U9eWU9PT0wLGFlPU1hdGguYWJzKHllK0EtcSk8MTtzZTwwJiYhb2V8fHNlPjAmJiFhZT9YLnN0b3BQcm9wYWdhdGlvbigpOihzZTwwJiZvZXx8c2U+MCYmYWUpJiYoWC5wcmV2ZW50RGVmYXVsdCgpLFguc3RvcFByb3BhZ2F0aW9uKCkpfSx7cGFzc2l2ZTohMX0pKX1tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCl7aWYoIXRoaXMudmlld2VyTWFpbil7dGhpcy52aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOjAsaGVpZ2h0OjB9O3JldHVybn1sZXQgWD1nZXRDb21wdXRlZFN0eWxlKHRoaXMudmlld2VyTWFpbiksWj1wYXJzZUZsb2F0KFgucGFkZGluZ0xlZnR8fCIwIikrcGFyc2VGbG9hdChYLnBhZGRpbmdSaWdodHx8IjAiKSx5ZT1wYXJzZUZsb2F0KFgucGFkZGluZ1RvcHx8IjAiKStwYXJzZUZsb2F0KFgucGFkZGluZ0JvdHRvbXx8IjAiKSxxPU1hdGgubWF4KHRoaXMudmlld2VyTWFpbi5jbGllbnRXaWR0aC1aLDApLEE9TWF0aC5tYXgodGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodC15ZSwwKTt0aGlzLnZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6cSxoZWlnaHQ6QX19cmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKXt0eXBlb2YgdGhpcy5pbml0aWFsWm9vbT09Im51bWJlciI/KHRoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLHRoaXMuY3VycmVudFpvb209dGhpcy5ub3JtYWxpemVab29tKHRoaXMuaW5pdGlhbFpvb20sITApKTp0aGlzLmluaXRpYWxab29tPT09InBhZ2Utd2lkdGgiP3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLXdpZHRoIjp0aGlzLmluaXRpYWxab29tPT09InBhZ2UtZml0Inx8dGhpcy5pbml0aWFsWm9vbT09PSJhdXRvIj90aGlzLnZpZXdwb3J0TW9kZT0icGFnZS1maXQiOnRoaXMudmlld3BvcnRNb2RlPSJhdXRvIix0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20iJiYodGhpcy5jdXJyZW50Wm9vbT0xKX1jb21wdXRlVmlld3BvcnQoWCl7dGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCk7bGV0IFo9WC5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLHllO3N3aXRjaCh0aGlzLnZpZXdwb3J0TW9kZSl7Y2FzZSJwYWdlLXdpZHRoIjp7eWU9KHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRofHxaLndpZHRoKS9aLndpZHRoO2JyZWFrfWNhc2UicGFnZS1maXQiOmNhc2UiYXV0byI6e2xldCBBPXRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRofHxaLndpZHRoLHNlPXRoaXMudmlld3BvcnREaW1lbnNpb25zLmhlaWdodHx8Wi5oZWlnaHQsb2U9QS9aLndpZHRoLGFlPXNlL1ouaGVpZ2h0O3llPU1hdGgubWluKG9lLGFlKTticmVha31kZWZhdWx0Ont5ZT10aGlzLm5vcm1hbGl6ZVpvb20odGhpcy5jdXJyZW50Wm9vbXx8MSwhMSk7YnJlYWt9fSghTnVtYmVyLmlzRmluaXRlKHllKXx8eWU8PTApJiYoeWU9MSk7bGV0IHE9dGhpcy52aWV3cG9ydE1vZGU9PT0iY3VzdG9tIj90aGlzLm5vcm1hbGl6ZVpvb20oeWUsITApOnRoaXMubm9ybWFsaXplWm9vbSh5ZSwhMSk7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSImJih0aGlzLmN1cnJlbnRab29tPXEpLFguZ2V0Vmlld3BvcnQoe3NjYWxlOnF9KX1ub3JtYWxpemVab29tKFgsWil7bGV0IHllPVo/dGhpcy5NQU5VQUxfTUlOX1pPT006dGhpcy5BQlNPTFVURV9NSU5fWk9PTSxxPVo/dGhpcy5NQU5VQUxfTUFYX1pPT006dGhpcy5BQlNPTFVURV9NQVhfWk9PTTtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoWCx5ZSkscSl9YXN5bmMgY2xlYW51cERvY3VtZW50KCl7aWYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXImJih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5hYm9ydCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGwpLHRoaXMuY3VycmVudFJlbmRlclByb21pc2Upe3RyeXthd2FpdCB0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlfWNhdGNoe310aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlPW51bGx9dGhpcy5jdXJyZW50UmVuZGVyVGFzaz1udWxsLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbCgpfWNhdGNoe319KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZm9yRWFjaChYPT57dHJ5e1guY2FuY2VsPy4oKX1jYXRjaHt9fSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5jbGVhcigpO2ZvcihsZXQgWCBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzfHxbXSl0cnl7WC5jYW5jZWwoKX1jYXRjaHt9aWYodGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXSx0aGlzLnJlbmRlclN0YXRlPSJpZGxlIix0aGlzLnBhZ2VSZW5kZXJpbmc9ITEsdGhpcy5wYWdlTnVtUGVuZGluZz1udWxsLHRoaXMudGh1bWJuYWlsRGF0YT1bXSx0aGlzLnBhZ2VEYXRhPVtdLHRoaXMuZG9jdW1lbnRJZD0iIix0aGlzLmNhbnZhcyYmdGhpcy5jdHgmJnRoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLnBkZkRvY3VtZW50KXRyeXt0aGlzLnBkZkRvY3VtZW50LmRlc3Ryb3koKX1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIFBERiBkb2N1bWVudDoiLFgpfXRoaXMucGRmRG9jdW1lbnQ9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7V3MoYSx0KX19O3JldHVybiBrZT1hfSkoKX0pO3ZhciBsa2EsY2thPWcoKCk9PntwZSgpO2xrYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiA0MHB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgLnByZXZpZXctaW1hZ2UgewogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgfQoKICAgIC5wcmV2aWV3LXBkZiB7CiAgICAgIGhlaWdodDogNjAwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkltYWdlIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXV0by1kZXRlY3RzIGltYWdlIGZyb20gVVJMIGV4dGVuc2lvbiBhbmQgcmVuZGVycyB3aXRoIHRoZSBpbWFnZSB2aWV3ZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBjbGFzcz0icHJldmlldy1pbWFnZSIKICAgICAgICB1cmw9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTA2NzQ0MDM4MTM2LTQ2MjczODM0YjNmYj93PTEyMDAiCiAgICAgICAgZmlsZW5hbWU9ImxhbmRzY2FwZS5qcGciCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QREYgUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdXRvLWRldGVjdHMgUERGIGFuZCBkaXNwbGF5cyB3aXRoIHRoZSBQREYgdmlld2VyIGluY2x1ZGluZyB0b29sYmFyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY2xhc3M9InByZXZpZXctcGRmIgogICAgICAgIHVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIGZpbGVuYW1lPSJyZXNlYXJjaC1wYXBlci5wZGYiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db2RlIFByZXZpZXcgKFRleHQgQ29udGVudCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VHlwZVNjcmlwdCBjb2RlIGRpc3BsYXllZCB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgdmlhIHRoZSBjb2RlYm94LjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgZmlsZW5hbWU9ImV4YW1wbGUudHMiCiAgICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgICAgLnRleHRDb250ZW50PSR7YGltcG9ydCB7IGh0bWwsIGNzcyB9IGZyb20gJ2xpdCc7CgpleHBvcnQgY2xhc3MgTXlDb21wb25lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHsKICBzdGF0aWMgc3R5bGVzID0gY3NzXGAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICB9CiAgXGA7CgogIHJlbmRlcigpIHsKICAgIHJldHVybiBodG1sXGA8aDE+SGVsbG8gV29ybGQ8L2gxPlxgOwogIH0KfWB9CiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1ZGlvIGZpbGUgZGV0ZWN0ZWQgYnkgZXh0ZW5zaW9uLCBzaG93biB3aXRoIHdhdmVmb3JtIHBsYXllci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIHVybD0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICBmaWxlbmFtZT0ic29uZy5tcDMiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WaWRlbyBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIGZpbGUgZGV0ZWN0ZWQgZnJvbSBVUkwsIHJlbmRlcmVkIHdpdGggY3VzdG9tIHZpZGVvIGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgdXJsPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9CaWdCdWNrQnVubnkubXA0IgogICAgICAgIGZpbGVuYW1lPSJiaWctYnVjay1idW5ueS5tcDQiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5FeHBsaWNpdCBUeXBlIE92ZXJyaWRlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkZvcmNlIGNvbnRlbnQgdHlwZSB0byAndGV4dCcgZXZlbiB0aG91Z2ggdGhlIFVSTCBoYXMgbm8gZXh0ZW5zaW9uLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY29udGVudFR5cGU9InRleHQiCiAgICAgICAgLnRleHRDb250ZW50PSR7YFRoaXMgaXMgcGxhaW4gdGV4dCBjb250ZW50LgpJdCBwcmVzZXJ2ZXMgd2hpdGVzcGFjZSBhbmQgbGluZSBicmVha3MuCgpVc2VmdWwgZm9yIGxvZyBmaWxlcywgUkVBRE1FcywgZXRjLmB9CiAgICAgICAgZmlsZW5hbWU9Im5vdGVzLnR4dCIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVua25vd24gVHlwZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5XaGVuIGNvbnRlbnQgdHlwZSBjYW5ub3QgYmUgZGV0ZWN0ZWQsIHNob3dzIGEgcGxhY2Vob2xkZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBmaWxlbmFtZT0iZGF0YS5iaW4iCiAgICAgICAgY29udGVudFR5cGU9InVua25vd24iCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEhvLHZzLGRrYSxHZXMsS2VzLFllcyxaZXMsdWthPWcoKCk9PntwZSgpO3hsdCgpO3lsdCgpO3dsdCgpO2FsdCgpO2tsdCgpO0dhKCk7Y2thKCk7SG89ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHZzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxka2E9e2pwZzoiaW1hZ2UiLGpwZWc6ImltYWdlIixwbmc6ImltYWdlIixnaWY6ImltYWdlIix3ZWJwOiJpbWFnZSIsc3ZnOiJpbWFnZSIsYm1wOiJpbWFnZSIsYXZpZjoiaW1hZ2UiLGljbzoiaW1hZ2UiLHBkZjoicGRmIixtcDM6ImF1ZGlvIix3YXY6ImF1ZGlvIixvZ2c6ImF1ZGlvIixmbGFjOiJhdWRpbyIsYWFjOiJhdWRpbyIsbTRhOiJhdWRpbyIsb3B1czoiYXVkaW8iLHdlYmE6ImF1ZGlvIixtcDQ6InZpZGVvIix3ZWJtOiJ2aWRlbyIsbW92OiJ2aWRlbyIsYXZpOiJ2aWRlbyIsbWt2OiJ2aWRlbyIsb2d2OiJ2aWRlbyIsdHM6ImNvZGUiLGpzOiJjb2RlIixqc3g6ImNvZGUiLHRzeDoiY29kZSIsanNvbjoiY29kZSIsaHRtbDoiY29kZSIsY3NzOiJjb2RlIixzY3NzOiJjb2RlIixsZXNzOiJjb2RlIixweToiY29kZSIsamF2YToiY29kZSIsZ286ImNvZGUiLHJzOiJjb2RlIix5YW1sOiJjb2RlIix5bWw6ImNvZGUiLHhtbDoiY29kZSIsc3FsOiJjb2RlIixzaDoiY29kZSIsYmFzaDoiY29kZSIsenNoOiJjb2RlIixtZDoiY29kZSIsYzoiY29kZSIsY3BwOiJjb2RlIixoOiJjb2RlIixocHA6ImNvZGUiLHJiOiJjb2RlIixwaHA6ImNvZGUiLHN3aWZ0OiJjb2RlIixrdDoiY29kZSIsdHh0OiJ0ZXh0Iixsb2c6InRleHQiLGNzdjoidGV4dCIsZW52OiJ0ZXh0In0sR2VzPXsiaW1hZ2UvIjoiaW1hZ2UiLCJhdWRpby8iOiJhdWRpbyIsInZpZGVvLyI6InZpZGVvIiwiYXBwbGljYXRpb24vcGRmIjoicGRmIn0sS2VzPXt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJ4bWwiLHhtbDoieG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIscHk6InB5dGhvbiIsamF2YToiamF2YSIsZ286ImdvIixyczoicnVzdCIseWFtbDoieWFtbCIseW1sOiJ5YW1sIixzcWw6InNxbCIsc2g6ImJhc2giLGJhc2g6ImJhc2giLHpzaDoiYmFzaCIsYzoiYyIsY3BwOiJjcHAiLGg6ImMiLGhwcDoiY3BwIixyYjoicnVieSIscGhwOiJwaHAiLHN3aWZ0OiJzd2lmdCIsa3Q6ImtvdGxpbiIsbWQ6Im1hcmtkb3duIn0sWWVzPXtpbWFnZToibHVjaWRlOkltYWdlIixwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsYXVkaW86Imx1Y2lkZTpNdXNpYyIsdmlkZW86Imx1Y2lkZTpWaWRlbyIsY29kZToibHVjaWRlOkNvZGUiLHRleHQ6Imx1Y2lkZTpGaWxlVGV4dCIsdW5rbm93bjoibHVjaWRlOkZpbGUifSxaZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXByZXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXTt2YXIgc2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNQcmV2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG9lPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7YXR0cmlidXRlOiExfSldLGM9W0woKV0seD1bTCgpXSx5PVtMKCldLE49W0woKV0sTz1bTCgpXSxIPVtMKCldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sSG8odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJ1cmwiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS51cmwsImdldCIpLHNldDppKChhZSxUZSk9PnthZS51cmw9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LG8sbCksSG8odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iZmlsZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmZpbGUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5maWxlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxkLHUpLEhvKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFzZTY0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iYmFzZTY0ImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuYmFzZTY0LCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuYmFzZTY0PVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxiLHYpLEhvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJ0ZXh0Q29udGVudCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnRleHRDb250ZW50LCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUudGV4dENvbnRlbnQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LG0sZiksSG8odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImNvbnRlbnRUeXBlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuY29udGVudFR5cGUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5jb250ZW50VHlwZT1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sTSx6KSxIbyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ibGFuZ3VhZ2UiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5sYW5ndWFnZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmxhbmd1YWdlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxDLF8pLEhvKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWltZVR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJtaW1lVHlwZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLm1pbWVUeXBlLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUubWltZVR5cGU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LCQsRSksSG8odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlbmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImZpbGVuYW1lImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZmlsZW5hbWUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5maWxlbmFtZT1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sayxTKSxIbyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ic2hvd1Rvb2xiYXIiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnNob3dUb29sYmFyPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxQLFIpLEhvKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ic2hvd0ZpbGVuYW1lImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuc2hvd0ZpbGVuYW1lLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuc2hvd0ZpbGVuYW1lPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxWLFcpLEhvKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InJlc29sdmVkVHlwZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnJlc29sdmVkVHlwZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlc29sdmVkVHlwZT1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sQixVKSxIbyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InJlc29sdmVkU3JjImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucmVzb2x2ZWRTcmMsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5yZXNvbHZlZFNyYz1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sRixqKSxIbyh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJyZXNvbHZlZFRleHQiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5yZXNvbHZlZFRleHQsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5yZXNvbHZlZFRleHQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LGxlLFEpLEhvKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTGFuZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InJlc29sdmVkTGFuZyJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnJlc29sdmVkTGFuZywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlc29sdmVkTGFuZz1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sdGUsZWUpLEhvKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJsb2FkaW5nImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUubG9hZGluZywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmxvYWRpbmc9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LFgsWiksSG8odGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJlcnJvciJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmVycm9yLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuZXJyb3I9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LHEsQSksSG8obnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b2V9LG51bGwsdCksc2U9YT1lLnZhbHVlLG9lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm9lfSl9c3RhdGljIGRlbW89bGthO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJEYXRhIFZpZXciXTsjZT12cyh0aGlzLG8sIiIpO2dldCB1cmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdXJsKG9lKXt0aGlzLiNlPW9lfSN0PSh2cyh0aGlzLGwpLHZzKHRoaXMsZCx2b2lkIDApKTtnZXQgZmlsZSgpe3JldHVybiB0aGlzLiN0fXNldCBmaWxlKG9lKXt0aGlzLiN0PW9lfSNhPSh2cyh0aGlzLHUpLHZzKHRoaXMsYiwiIikpO2dldCBiYXNlNjQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYmFzZTY0KG9lKXt0aGlzLiNhPW9lfSNzPSh2cyh0aGlzLHYpLHZzKHRoaXMsbSwiIikpO2dldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLiNzfXNldCB0ZXh0Q29udGVudChvZSl7dGhpcy4jcz1vZX0jaT0odnModGhpcyxmKSx2cyh0aGlzLE0sdm9pZCAwKSk7Z2V0IGNvbnRlbnRUeXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbnRlbnRUeXBlKG9lKXt0aGlzLiNpPW9lfSNyPSh2cyh0aGlzLHopLHZzKHRoaXMsQywiIikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNyfXNldCBsYW5ndWFnZShvZSl7dGhpcy4jcj1vZX0jbz0odnModGhpcyxfKSx2cyh0aGlzLCQsIiIpKTtnZXQgbWltZVR5cGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWltZVR5cGUob2Upe3RoaXMuI289b2V9I249KHZzKHRoaXMsRSksdnModGhpcyxrLCIiKSk7Z2V0IGZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuI259c2V0IGZpbGVuYW1lKG9lKXt0aGlzLiNuPW9lfSNsPSh2cyh0aGlzLFMpLHZzKHRoaXMsUCwhMCkpO2dldCBzaG93VG9vbGJhcigpe3JldHVybiB0aGlzLiNsfXNldCBzaG93VG9vbGJhcihvZSl7dGhpcy4jbD1vZX0jYz0odnModGhpcyxSKSx2cyh0aGlzLFYsITApKTtnZXQgc2hvd0ZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHNob3dGaWxlbmFtZShvZSl7dGhpcy4jYz1vZX0jZD0odnModGhpcyxXKSx2cyh0aGlzLEIsInVua25vd24iKSk7Z2V0IHJlc29sdmVkVHlwZSgpe3JldHVybiB0aGlzLiNkfXNldCByZXNvbHZlZFR5cGUob2Upe3RoaXMuI2Q9b2V9I3U9KHZzKHRoaXMsVSksdnModGhpcyxGLCIiKSk7Z2V0IHJlc29sdmVkU3JjKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHJlc29sdmVkU3JjKG9lKXt0aGlzLiN1PW9lfSNwPSh2cyh0aGlzLGopLHZzKHRoaXMsbGUsIiIpKTtnZXQgcmVzb2x2ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI3B9c2V0IHJlc29sdmVkVGV4dChvZSl7dGhpcy4jcD1vZX0jaD0odnModGhpcyxRKSx2cyh0aGlzLHRlLCJ0ZXh0IikpO2dldCByZXNvbHZlZExhbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgcmVzb2x2ZWRMYW5nKG9lKXt0aGlzLiNoPW9lfSNmPSh2cyh0aGlzLGVlKSx2cyh0aGlzLFgsITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNmfXNldCBsb2FkaW5nKG9lKXt0aGlzLiNmPW9lfSNtPSh2cyh0aGlzLFopLHZzKHRoaXMscSwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNtfXNldCBlcnJvcihvZSl7dGhpcy4jbT1vZX1vYmplY3RVcmw9KHZzKHRoaXMsQSksIiIpO3JlbmRlcigpe2xldCBvZT10aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fHRoaXMuZ2V0RmlsZW5hbWVGcm9tVXJsKCl8fCIiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1iYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWZpbGVuYW1lIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWJhZGdlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgPiAqIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXZpZGVvLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIGRlZXMtYXVkaW8tdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1kYXRhdmlldy1jb2RlYm94IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnRleHQtdmlld2VyIHsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIGRlZXMtaWNvbiB7CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnNob3dGaWxlbmFtZSYmb2U/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1iYXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJoZWFkZXItaWNvbiIgaWNvbj0iJHtZZXNbdGhpcy5yZXNvbHZlZFR5cGVdfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkZXItZmlsZW5hbWUiPiR7b2V9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLWJhZGdlIj4ke3RoaXMucmVzb2x2ZWRUeXBlfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMubG9hZGluZz93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMucmVuZGVyQ29udGVudCgpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ29udGVudCgpe3N3aXRjaCh0aGlzLnJlc29sdmVkVHlwZSl7Y2FzZSJpbWFnZSI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmZpbGVuYW1lfHwiIn0iCiAgICAgICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgICAgICBgO2Nhc2UicGRmIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICAgICAgLnBkZlVybD0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgICAgICBgO2Nhc2UiYXVkaW8iOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAudGl0bGU9JHt0aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fCIifQogICAgICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICAgICAgYDtjYXNlInZpZGVvIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgICAgIGA7Y2FzZSJjb2RlIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3gKICAgICAgICAgICAgLnByb2dMYW5nPSR7dGhpcy5yZXNvbHZlZExhbmd9CiAgICAgICAgICAgIC5jb2RlVG9EaXNwbGF5PSR7dGhpcy5yZXNvbHZlZFRleHR9CiAgICAgICAgICA+PC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICAgICAgYDtjYXNlInRleHQiOnJldHVybiB3YDxwcmUgY2xhc3M9InRleHQtdmlld2VyIj4ke3RoaXMucmVzb2x2ZWRUZXh0fTwvcHJlPmA7ZGVmYXVsdDpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVF1ZXN0aW9uIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9fWFzeW5jIHVwZGF0ZWQob2Upe3N1cGVyLnVwZGF0ZWQob2UpLFsidXJsIiwiZmlsZSIsImJhc2U2NCIsInRleHRDb250ZW50IiwiY29udGVudFR5cGUiLCJsYW5ndWFnZSIsIm1pbWVUeXBlIiwiZmlsZW5hbWUiXS5zb21lKFJlPT5vZS5oYXMoUmUpKSYmYXdhaXQgdGhpcy5yZXNvbHZlQ29udGVudCgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJldm9rZU9iamVjdFVybCgpfWFzeW5jIHJlc29sdmVDb250ZW50KCl7dGhpcy5lcnJvcj0iIix0aGlzLnJldm9rZU9iamVjdFVybCgpLHRoaXMucmVzb2x2ZWRUeXBlPXRoaXMuZGV0ZWN0VHlwZSgpO3RyeXtpZih0aGlzLnVybCl7aWYodGhpcy5yZXNvbHZlZFNyYz10aGlzLnVybCx0aGlzLnJlc29sdmVkVHlwZT09PSJjb2RlInx8dGhpcy5yZXNvbHZlZFR5cGU9PT0idGV4dCIpaWYodGhpcy50ZXh0Q29udGVudCl0aGlzLnJlc29sdmVkVGV4dD10aGlzLnRleHRDb250ZW50O2Vsc2V7dGhpcy5sb2FkaW5nPSEwO2xldCBvZT1hd2FpdCBmZXRjaCh0aGlzLnVybCk7dGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgb2UudGV4dCgpLHRoaXMubG9hZGluZz0hMX19ZWxzZSBpZih0aGlzLmZpbGUpdGhpcy5vYmplY3RVcmw9VVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLmZpbGUpLHRoaXMucmVzb2x2ZWRTcmM9dGhpcy5vYmplY3RVcmwsKHRoaXMucmVzb2x2ZWRUeXBlPT09ImNvZGUifHx0aGlzLnJlc29sdmVkVHlwZT09PSJ0ZXh0IikmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgdGhpcy5maWxlLnRleHQoKSx0aGlzLmxvYWRpbmc9ITEpO2Vsc2UgaWYodGhpcy5iYXNlNjQpe2xldCBvZT10aGlzLm1pbWVUeXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjt0aGlzLnJlc29sdmVkU3JjPWBkYXRhOiR7b2V9O2Jhc2U2NCwke3RoaXMuYmFzZTY0fWB9ZWxzZSB0aGlzLnRleHRDb250ZW50JiYodGhpcy5yZXNvbHZlZFRleHQ9dGhpcy50ZXh0Q29udGVudCl9Y2F0Y2h7dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgY29udGVudCIsdGhpcy5sb2FkaW5nPSExfXRoaXMucmVzb2x2ZWRMYW5nPXRoaXMucmVzb2x2ZUxhbmd1YWdlKCl9ZGV0ZWN0VHlwZSgpe2lmKHRoaXMuY29udGVudFR5cGUpcmV0dXJuIHRoaXMuY29udGVudFR5cGU7bGV0IG9lPXRoaXMubWltZVR5cGV8fHRoaXMuZmlsZT8udHlwZXx8IiI7aWYob2Upe2lmKG9lPT09ImFwcGxpY2F0aW9uL3BkZiIpcmV0dXJuInBkZiI7Zm9yKGxldFtUZSxSZV1vZiBPYmplY3QuZW50cmllcyhHZXMpKWlmKG9lLnN0YXJ0c1dpdGgoVGUpKXJldHVybiBSZTtpZihvZS5zdGFydHNXaXRoKCJ0ZXh0LyIpKXJldHVybiJ0ZXh0In1sZXQgYWU9dGhpcy5nZXRFeHRlbnNpb24oKTtyZXR1cm4gYWUmJmRrYVthZV0/ZGthW2FlXTp0aGlzLnRleHRDb250ZW50P3RoaXMubGFuZ3VhZ2U/ImNvZGUiOiJ0ZXh0IjoidW5rbm93biJ9Z2V0RXh0ZW5zaW9uKCl7bGV0IG9lPXRoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8IiI7aWYob2Upe2xldCBhZT1vZS5zcGxpdCgiLiIpO2lmKGFlLmxlbmd0aD4xKXJldHVybiBhZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWlmKHRoaXMudXJsKXRyeXtsZXQgVGU9bmV3IFVSTCh0aGlzLnVybCwiaHR0cHM6Ly9wbGFjZWhvbGRlci5jb20iKS5wYXRobmFtZS5zcGxpdCgiLiIpO2lmKFRlLmxlbmd0aD4xKXJldHVybiBUZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWNhdGNoe31yZXR1cm4iIn1nZXRGaWxlbmFtZUZyb21VcmwoKXtpZighdGhpcy51cmwpcmV0dXJuIiI7dHJ5e3JldHVybiBuZXcgVVJMKHRoaXMudXJsLCJodHRwczovL3BsYWNlaG9sZGVyLmNvbSIpLnBhdGhuYW1lLnNwbGl0KCIvIikucG9wKCl8fCIifWNhdGNoe3JldHVybiIifX1yZXNvbHZlTGFuZ3VhZ2UoKXtpZih0aGlzLmxhbmd1YWdlKXJldHVybiB0aGlzLmxhbmd1YWdlO2xldCBvZT10aGlzLmdldEV4dGVuc2lvbigpO3JldHVybiBLZXNbb2VdfHwidGV4dCJ9cmV2b2tlT2JqZWN0VXJsKCl7dGhpcy5vYmplY3RVcmwmJihVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMub2JqZWN0VXJsKSx0aGlzLm9iamVjdFVybD0iIil9c3RhdGlje3ZzKGEsdCl9fTtyZXR1cm4gc2U9YX0pKCl9KTt2YXIgcGthPWcoKCk9Pnt1a2EoKX0pO3ZhciBvSixTbHQ9ZygoKT0+e29KPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhbnZhc1Bvb2wiKX1zdGF0aWMgcG9vbD1bXTtzdGF0aWMgbWF4UG9vbFNpemU9MjA7c3RhdGljIE1JTl9DQU5WQVNfU0laRT0yNTY7c3RhdGljIE1BWF9DQU5WQVNfU0laRT00MDk2O3N0YXRpYyBhY3F1aXJlKGUsdCl7bGV0IGE9dGhpcy5wb29sLmZpbmQobD0+IWwuaW5Vc2UmJmwuY2FudmFzLndpZHRoPj1lJiZsLmNhbnZhcy5oZWlnaHQ+PXQmJmwuY2FudmFzLndpZHRoPD1lKjEuNSYmbC5jYW52YXMuaGVpZ2h0PD10KjEuNSk7aWYoYSlyZXR1cm4gYS5pblVzZT0hMCxhLmxhc3RVc2VkPURhdGUubm93KCksYS5jYW52YXMud2lkdGg9ZSxhLmNhbnZhcy5oZWlnaHQ9dCxhLmN0eC5jbGVhclJlY3QoMCwwLGUsdCksYTtpZih0aGlzLnBvb2wubGVuZ3RoPHRoaXMubWF4UG9vbFNpemUpe2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHA9bC5nZXRDb250ZXh0KCIyZCIse2FscGhhOiEwLGRlc3luY2hyb25pemVkOiEwfSk7bC53aWR0aD1NYXRoLm1pbihNYXRoLm1heChlLHRoaXMuTUlOX0NBTlZBU19TSVpFKSx0aGlzLk1BWF9DQU5WQVNfU0laRSksbC5oZWlnaHQ9TWF0aC5taW4oTWF0aC5tYXgodCx0aGlzLk1JTl9DQU5WQVNfU0laRSksdGhpcy5NQVhfQ0FOVkFTX1NJWkUpO2xldCBkPXtjYW52YXM6bCxjdHg6cCxpblVzZTohMCxsYXN0VXNlZDpEYXRlLm5vdygpfTtyZXR1cm4gdGhpcy5wb29sLnB1c2goZCksZH1sZXQgcj10aGlzLnBvb2wuZmlsdGVyKGw9PiFsLmluVXNlKS5zb3J0KChsLHApPT5sLmxhc3RVc2VkLXAubGFzdFVzZWQpWzBdO2lmKHIpcmV0dXJuIHIuY2FudmFzLndpZHRoPWUsci5jYW52YXMuaGVpZ2h0PXQsci5jdHguY2xlYXJSZWN0KDAsMCxlLHQpLHIuaW5Vc2U9ITAsci5sYXN0VXNlZD1EYXRlLm5vdygpLHI7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksbz1uLmdldENvbnRleHQoIjJkIik7cmV0dXJuIG4ud2lkdGg9ZSxuLmhlaWdodD10LHtjYW52YXM6bixjdHg6byxpblVzZTohMCxsYXN0VXNlZDpEYXRlLm5vdygpfX1zdGF0aWMgcmVsZWFzZShlKXt0aGlzLnBvb2wuaW5jbHVkZXMoZSkmJihlLmluVXNlPSExLGUuY3R4LmNsZWFyUmVjdCgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KSl9c3RhdGljIHJlbGVhc2VBbGwoKXtmb3IobGV0IGUgb2YgdGhpcy5wb29sKWUuaW5Vc2U9ITEsZS5jdHguY2xlYXJSZWN0KDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpfXN0YXRpYyBkZXN0cm95KCl7Zm9yKGxldCBlIG9mIHRoaXMucG9vbCllLmNhbnZhcy53aWR0aD0wLGUuY2FudmFzLmhlaWdodD0wO3RoaXMucG9vbD1bXX1zdGF0aWMgZ2V0U3RhdHMoKXtyZXR1cm57cG9vbFNpemU6dGhpcy5wb29sLmxlbmd0aCxtYXhQb29sU2l6ZTp0aGlzLm1heFBvb2xTaXplLGluVXNlOnRoaXMucG9vbC5maWx0ZXIoZT0+ZS5pblVzZSkubGVuZ3RoLGF2YWlsYWJsZTp0aGlzLnBvb2wuZmlsdGVyKGU9PiFlLmluVXNlKS5sZW5ndGh9fXN0YXRpYyBhZGp1c3RQb29sU2l6ZShlKXtpZihlPHRoaXMucG9vbC5sZW5ndGgpe2xldCB0PXRoaXMucG9vbC5sZW5ndGgtZSxhPXRoaXMucG9vbC5maWx0ZXIocj0+IXIuaW5Vc2UpLnNsaWNlKDAsdCk7Zm9yKGxldCByIG9mIGEpe2xldCBuPXRoaXMucG9vbC5pbmRleE9mKHIpO24+LTEmJnRoaXMucG9vbC5zcGxpY2UobiwxKX19dGhpcy5tYXhQb29sU2l6ZT1lfX19KTtmdW5jdGlvbiB2c24ocyxlKXtsZXQgdDtyZXR1cm4gaShmdW5jdGlvbiguLi5yKXtsZXQgbj1pKCgpPT57Y2xlYXJUaW1lb3V0KHQpLHMoLi4ucil9LCJsYXRlciIpO2NsZWFyVGltZW91dCh0KSx0PXdpbmRvdy5zZXRUaW1lb3V0KG4sZSl9LCJleGVjdXRlZEZ1bmN0aW9uIil9ZnVuY3Rpb24geHNuKHMsZSl7bGV0IHQ7cmV0dXJuKC4uLmEpPT57dHx8KHMoLi4uYSksdD0hMCxzZXRUaW1lb3V0KCgpPT50PSExLGUpKX19ZnVuY3Rpb24gaGthKHMpe2lmKHM9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgZT0xMDI0LHQ9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdLGE9TWF0aC5mbG9vcihNYXRoLmxvZyhzKS9NYXRoLmxvZyhlKSk7cmV0dXJuIE1hdGgucm91bmQocy9NYXRoLnBvdyhlLGEpKjEwMCkvMTAwKyIgIit0W2FdfWZ1bmN0aW9uIHlzbihzLGU9MCl7bGV0IHQ9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gdC50b3A+PS1lJiZ0LmxlZnQ+PS1lJiZ0LmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkrZSYmdC5yaWdodDw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpK2V9dmFyIG5KLF9sdD1nKCgpPT57aSh2c24sImRlYm91bmNlIik7aSh4c24sInRocm90dGxlIik7aShoa2EsImZvcm1hdEZpbGVTaXplIik7aSh5c24sImlzSW5WaWV3cG9ydCIpO25KPWNsYXNze3N0YXRpY3tpKHRoaXMsIlBlcmZvcm1hbmNlTW9uaXRvciIpfXN0YXRpYyBtYXJrcz1uZXcgTWFwO3N0YXRpYyBtZWFzdXJlcz1bXTtzdGF0aWMgbWFyayhlKXt0aGlzLm1hcmtzLnNldChlLHBlcmZvcm1hbmNlLm5vdygpKX1zdGF0aWMgbWVhc3VyZShlLHQpe2xldCBhPXRoaXMubWFya3MuZ2V0KHQpO2lmKGEpe2xldCByPXBlcmZvcm1hbmNlLm5vdygpLWE7cmV0dXJuIHRoaXMubWVhc3VyZXMucHVzaCh7bmFtZTplLGR1cmF0aW9uOnJ9KSx0aGlzLm1hcmtzLmRlbGV0ZSh0KSxyfXJldHVybiAwfXN0YXRpYyBnZXRSZXBvcnQoKXtsZXQgZT17bWVhc3VyZXM6Wy4uLnRoaXMubWVhc3VyZXNdLGF2ZXJhZ2VzOnt9fSx0PW5ldyBNYXA7Zm9yKGxldCBhIG9mIHRoaXMubWVhc3VyZXMpdC5oYXMoYS5uYW1lKXx8dC5zZXQoYS5uYW1lLFtdKSx0LmdldChhLm5hbWUpLnB1c2goYS5kdXJhdGlvbik7Zm9yKGxldFthLHJdb2YgdCllLmF2ZXJhZ2VzW2FdPXIucmVkdWNlKChuLG8pPT5uK28sMCkvci5sZW5ndGg7cmV0dXJuIGV9c3RhdGljIGNsZWFyKCl7dGhpcy5tYXJrcy5jbGVhcigpLHRoaXMubWVhc3VyZXM9W119fX0pO3ZhciBma2E9ZygoKT0+e1NsdCgpO24yZSgpO19sdCgpfSk7dmFyIG1rYT1nKCgpPT57a2x0KCl9KTt2YXIgc2wsR3U9ZygoKT0+e3BlKCk7c2w9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgaGVpZ2h0OiAyNjBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMjQpIil9OwoKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgewogICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnRpbGUtb3ZlcmxheSB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CgogICAgLnRpbGUtY29udGVudCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjcpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB6LWluZGV4OiAyMDsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgc3BhbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC50aWxlLWluZm8tYmFyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOTUpIiwiaHNsKDIxNSAyMCUgMTIlIC8gMC45NSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogNnB4OwogICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsKICAgICAgei1pbmRleDogMjU7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB9CgogICAgLmluZm8tbGFiZWwgewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5pbmZvLXNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICB9CgogICAgLmluZm8tZGV0YWlsIHsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3BhY2l0eTogMC43OwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nLAogICAgLnRpbGUtZXJyb3IgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA5OCUpIiwiaHNsKDAgNjIlIDIwJSkiKX07CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDQwJSkiLCJoc2woMCA3MCUgNjglKSIpfTsKICAgIH0KCiAgICAudGlsZS1lcnJvciBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDMycHg7CiAgICB9CgogICAgLnRpbGUtc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nLXRleHQsCiAgICAudGlsZS1lcnJvci10ZXh0IHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgLyogU2l6ZSB2YXJpYW50cyAqLwogICAgOmhvc3QoW3NpemU9InNtYWxsIl0pIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgaGVpZ2h0OiAxOTVweDsKICAgIH0KCiAgICA6aG9zdChbc2l6ZT0ibGFyZ2UiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDI1MHB4OwogICAgICBoZWlnaHQ6IDMyNXB4OwogICAgfQoKICAgIC8qIEdyaWQgb3B0aW1pemF0aW9ucyAqLwogICAgOmhvc3QoW2dyaWQtbW9kZV0pIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgfQogIGBdfSk7dmFyIGxKLGUwLElsLHc0PWcoKCk9PntwZSgpO0d1KCk7R2EoKTtsSj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZTA9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LElsPSgoKT0+e2xldCBzPXdlLGUsdD1bXSxhPVtdLHIsbj1bXSxvPVtdLGwscD1bXSxkPVtdLHUsYz1bXSxiPVtdLHYseD1bXSxtPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbEJhc2UiKX1zdGF0aWN7bGV0IHk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bTCh7dHlwZTpCb29sZWFufSldLHI9W0woe3R5cGU6Qm9vbGVhbn0pXSxsPVtMKHt0eXBlOkJvb2xlYW59KV0sdT1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx2PVtMKHt0eXBlOlN0cmluZ30pXSxsSih0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNsaWNrYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iY2xpY2thYmxlImluIE0sImhhcyIpLGdldDppKE09Pk0uY2xpY2thYmxlLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00uY2xpY2thYmxlPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0sdCxhKSxsSih0aGlzLG51bGwscix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImxvYWRpbmciaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00ubG9hZGluZz16fSwic2V0Iil9LG1ldGFkYXRhOnl9LG4sbyksbEoodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iZXJyb3IiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5lcnJvciwiZ2V0Iiksc2V0OmkoKE0seik9PntNLmVycm9yPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0scCxkKSxsSih0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+InNpemUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5zaXplLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00uc2l6ZT16fSwic2V0Iil9LG1ldGFkYXRhOnl9LGMsYiksbEoodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ibGFiZWwiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5sYWJlbCwiZ2V0Iiksc2V0OmkoKE0seik9PntNLmxhYmVsPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0seCxtKSx5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnl9KX1zdGF0aWMgc3R5bGVzPXNsOyNlPWUwKHRoaXMsdCwhMCk7Z2V0IGNsaWNrYWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCBjbGlja2FibGUoeSl7dGhpcy4jZT15fSN0PShlMCh0aGlzLGEpLGUwKHRoaXMsbiwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvYWRpbmcoeSl7dGhpcy4jdD15fSNhPShlMCh0aGlzLG8pLGUwKHRoaXMscCwhMSkpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNhfXNldCBlcnJvcih5KXt0aGlzLiNhPXl9I3M9KGUwKHRoaXMsZCksZTAodGhpcyxjLCJkZWZhdWx0IikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNpemUoeSl7dGhpcy4jcz15fSNpPShlMCh0aGlzLGIpLGUwKHRoaXMseCwiIikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNpfXNldCBsYWJlbCh5KXt0aGlzLiNpPXl9b2JzZXJ2ZXI9ZTAodGhpcyxtKTtfdmlzaWJsZT0hMTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3Zpc2libGV9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idGlsZS1jb250YWluZXIgJHt0aGlzLmNsaWNrYWJsZT8iY2xpY2thYmxlIjoiIn0gJHt0aGlzLmxvYWRpbmc/ImxvYWRpbmciOiIifSAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaWxlQ2xpY2t9CiAgICAgICAgQG1vdXNlZW50ZXI9JHt0aGlzLm9uVGlsZU1vdXNlRW50ZXJ9CiAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLm9uVGlsZU1vdXNlTGVhdmV9CiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMub25UaWxlTW91c2VNb3ZlfQogICAgICA+CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZy10ZXh0Ij5Mb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZXJyb3IiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1lcnJvci10ZXh0Ij5GYWlsZWQgdG8gbG9hZDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHshdGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj90aGlzLnJlbmRlclRpbGVDb250ZW50KCk6IiJ9CgogICAgICAgICR7dGhpcy5yZW5kZXJCb3R0b21CYXIoKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiIifWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5vYnNlcnZlciYmKHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMub2JzZXJ2ZXI9dm9pZCAwKX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoeT0+e2ZvcihsZXQgTSBvZiB5KXtsZXQgej10aGlzLl92aXNpYmxlO3RoaXMuX3Zpc2libGU9TS5pc0ludGVyc2VjdGluZyx0aGlzLl92aXNpYmxlJiYheiYmdGhpcy5vbkJlY2FtZVZpc2libGUoKX19LHtyb290Om51bGwscm9vdE1hcmdpbjoiMjAwcHgiLHRocmVzaG9sZDouMDF9KSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcyl9b25CZWNhbWVWaXNpYmxlKCl7fW9uVGlsZU1vdXNlRW50ZXIoKXt9b25UaWxlTW91c2VMZWF2ZSgpe31vblRpbGVNb3VzZU1vdmUoeSl7fWhhbmRsZVRpbGVDbGljaygpe3RoaXMuY2xpY2thYmxlJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57fX19fSkoKX0pO3ZhciBna2E9ZygoKT0+e3c0KCk7R3UoKX0pO3ZhciBia2EsdmthPWcoKCk9PntwZSgpO2JrYT1KYAogIC5wcmV2aWV3LXN0YWNrIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgcGFkZGluZzogOHB4IDhweCAyOHB4IDhweDsKICB9CgogIC5wcmV2aWV3LXN0YWNrLm5vbi1hNCB7CiAgICBwYWRkaW5nOiAxMnB4IDEycHggMjhweCAxMnB4OwogIH0KCiAgLnByZXZpZXctY2FudmFzIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICB9CgogIC5ub24tYTQgLnByZXZpZXctY2FudmFzIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjQlKSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICB9CgogIC8qIEdyaWQgb3B0aW1pemF0aW9ucyAqLwogIDpob3N0KFtncmlkLW1vZGVdKSAucHJldmlldy1jYW52YXMgewogICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICB9CmB9KTt2YXIgeGthLHlrYT1nKCgpPT57cGUoKTt4a2E9aSgoKT0+e2xldCBzPVsiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIiwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIl0sZT1pKHQ9PntsZXQgYT1bXTtmb3IobGV0IHI9MDtyPHQ7cisrKXtsZXQgbj1zW3Ilcy5sZW5ndGhdO2EucHVzaCh3YAogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iJHtufSIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgIGdyaWQtbW9kZQogICAgICAgICAgQHRpbGUtY2xpY2s9JHtvPT57Y29uc29sZS5sb2coIlBERiBUaWxlIGNsaWNrZWQ6IixvLmRldGFpbCksYWxlcnQoYFBERiBjbGlja2VkOiAke28uZGV0YWlsLnBhZ2VDb3VudH0gcGFnZXNgKX19CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICBgKX1yZXR1cm4gYX0sImdlbmVyYXRlR3JpZEl0ZW1zIik7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KCiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtaW4td2lkdGg6IDEwMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5TaW5nbGUgUERGIFRpbGU8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5EaWZmZXJlbnQgU2l6ZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPlNtYWxsOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+RGVmYXVsdDo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+TGFyZ2U6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPldpdGggTGFiZWw8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgbGFiZWw9IlJlc2VhcmNoIFBhcGVyLnBkZiIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Tm9uLUNsaWNrYWJsZTwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICBjbGlja2FibGU9ImZhbHNlIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5HcmlkIC0gMjAgUERGcyB3aXRoIExhenkgTG9hZGluZzwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1ncmlkIj4KICAgICAgICAgICR7ZSgyMCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0sImRlbW8iKX0pO3ZhciBrNCxpbCxYZXMsd2thPWcoKCk9PntwZSgpO3c0KCk7R3UoKTtuMmUoKTtTbHQoKTtfbHQoKTt2a2EoKTt5a2EoKTtrND1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0saWw9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFhlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLXBkZiIpXSxlLHQ9W10sYSxyPUlsLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsUGRmIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOkJvb2xlYW59KV0sTz1bWSgpXSxrNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4icGRmVXJsImluIFMsImhhcyIpLGdldDppKFM9PlMucGRmVXJsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MucGRmVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxrNCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmV2aWV3UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY3VycmVudFByZXZpZXdQYWdlImluIFMsImhhcyIpLGdldDppKFM9PlMuY3VycmVudFByZXZpZXdQYWdlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3VycmVudFByZXZpZXdQYWdlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxrNCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2VDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4icGFnZUNvdW50ImluIFMsImhhcyIpLGdldDppKFM9PlMucGFnZUNvdW50LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MucGFnZUNvdW50PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxrNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJyZW5kZXJlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnJlbmRlcmVkLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MucmVuZGVyZWQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLGs0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNIb3ZlcmluZyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzSG92ZXJpbmcsImdldCIpLHNldDppKChTLEkpPT57Uy5pc0hvdmVyaW5nPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sTSx6KSxrNCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQTRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImlzQTRGb3JtYXQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pc0E0Rm9ybWF0LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaXNBNEZvcm1hdD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksazQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZmlsZVNpemUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5maWxlU2l6ZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmZpbGVTaXplPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxrNChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXhrYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIiwiUERGIl07c3RhdGljIHN0eWxlcz1bLi4uc2wsYmthXTsjZT1pbCh0aGlzLG8sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKGspe3RoaXMuI2U9a30jdD0oaWwodGhpcyxsKSxpbCh0aGlzLGQsMSkpO2dldCBjdXJyZW50UHJldmlld1BhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY3VycmVudFByZXZpZXdQYWdlKGspe3RoaXMuI3Q9a30jYT0oaWwodGhpcyx1KSxpbCh0aGlzLGIsMCkpO2dldCBwYWdlQ291bnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGFnZUNvdW50KGspe3RoaXMuI2E9a30jcz0oaWwodGhpcyx2KSxpbCh0aGlzLG0sITEpKTtnZXQgcmVuZGVyZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVuZGVyZWQoayl7dGhpcy4jcz1rfSNpPShpbCh0aGlzLGYpLGlsKHRoaXMsTSwhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzSG92ZXJpbmcoayl7dGhpcy4jaT1rfSNyPShpbCh0aGlzLHopLGlsKHRoaXMsQywhMCkpO2dldCBpc0E0Rm9ybWF0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGlzQTRGb3JtYXQoayl7dGhpcy4jcj1rfSNvPShpbCh0aGlzLF8pLGlsKHRoaXMsJCwwKSk7Z2V0IGZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI299c2V0IGZpbGVTaXplKGspe3RoaXMuI289a31yZW5kZXJQYWdlc1Rhc2s9KGlsKHRoaXMsRSksbnVsbCk7cmVuZGVyUGFnZXNRdWV1ZWQ9ITE7cGRmRG9jdW1lbnQ7Y2FudmFzZXM9W107cmVzaXplT2JzZXJ2ZXI7c3RhY2tFbGVtZW50PW51bGw7bG9hZGVkUGRmVXJsPW51bGw7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1zdGFjayAke3RoaXMuaXNBNEZvcm1hdD8iIjoibm9uLWE0In0iPgogICAgICAgIDxjYW52YXMKICAgICAgICAgIGNsYXNzPSJwcmV2aWV3LWNhbnZhcyIKICAgICAgICAgIGRhdGEtcGFnZT0iJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX0iCiAgICAgICAgPjwvY2FudmFzPgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RXllIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlZpZXcgUERGPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5wYWdlQ291bnQmJiF0aGlzLmxhYmVsPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5wYWdlQ291bnQ+MSYmdGhpcy5pc0hvdmVyaW5nP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfS8ke3RoaXMucGFnZUNvdW50fTwvc3Bhbj5gOnRoaXMucGFnZUNvdW50PjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5wYWdlQ291bnR9IHBnPC9zcGFuPmA6IiJ9CiAgICAgICAgJHt0aGlzLmZpbGVTaXplPjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7aGthKHRoaXMuZmlsZVNpemUpfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3BkZlVybDp0aGlzLnBkZlVybCxwYWdlQ291bnQ6dGhpcy5wYWdlQ291bnR9fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLnJlbmRlcmVkJiZ0aGlzLnBkZlVybCYmdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpfW9uVGlsZU1vdXNlRW50ZXIoKXt0aGlzLmlzSG92ZXJpbmc9ITB9b25UaWxlTW91c2VMZWF2ZSgpe3RoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSE9PTEmJih0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX1vblRpbGVNb3VzZU1vdmUoayl7aWYoIXRoaXMuaXNIb3ZlcmluZ3x8dGhpcy5wYWdlQ291bnQ8PTEpcmV0dXJuO2xldCBTPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksST1rLmNsaWVudFgtUy5sZWZ0LFA9Uy53aWR0aCxSPU1hdGgubWF4KDAsTWF0aC5taW4oMSxJL1ApKSxLPU1hdGguY2VpbChSKnRoaXMucGFnZUNvdW50KXx8MTtLIT09dGhpcy5jdXJyZW50UHJldmlld1BhZ2UmJih0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT1LLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNhY2hlRWxlbWVudHMoKSx0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhbnVwKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwfWFzeW5jIGxvYWRBbmRSZW5kZXJQcmV2aWV3KCl7aWYoISh0aGlzLnJlbmRlcmVkfHx0aGlzLmxvYWRpbmcpKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0hMSxuSi5tYXJrKGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTt0cnl7dGhpcy5wZGZEb2N1bWVudD1hd2FpdCBXdS5sb2FkRG9jdW1lbnQodGhpcy5wZGZVcmwpLHRoaXMucGFnZUNvdW50PXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MTt0cnl7bGV0IFM9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREb3dubG9hZEluZm8oKTt0aGlzLmZpbGVTaXplPVMubGVuZ3RofWNhdGNoe310aGlzLmxvYWRlZFBkZlVybD10aGlzLnBkZlVybCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNhY2hlRWxlbWVudHMoKSxhd2FpdCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSx0aGlzLnJlbmRlcmVkPSEwO2xldCBrPW5KLm1lYXN1cmUoYHByZXZpZXctcmVuZGVyLSR7dGhpcy5wZGZVcmx9YCxgcHJldmlldy1sb2FkLSR7dGhpcy5wZGZVcmx9YCk7Y29uc29sZS5sb2coYFBERiB0aWxlIHJlbmRlcmVkIGluICR7a31tc2ApfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIFBERiB0aWxlOiIsayksdGhpcy5lcnJvcj0hMCx0aGlzLmxvYWRpbmc9ITF9fX1zY2hlZHVsZVJlbmRlclBhZ2VzKCl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQ/dGhpcy5yZW5kZXJQYWdlc1Rhc2s/KHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITAsdGhpcy5yZW5kZXJQYWdlc1Rhc2spOih0aGlzLnJlbmRlclBhZ2VzVGFzaz0oYXN5bmMoKT0+e3RyeXthd2FpdCB0aGlzLnBlcmZvcm1SZW5kZXJQYWdlcygpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5kZXIgUERGIHRpbGUgcGFnZXM6IixrKX19KSgpLmZpbmFsbHkoKCk9Pnt0aGlzLnJlbmRlclBhZ2VzVGFzaz1udWxsLHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQmJih0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX0pLHRoaXMucmVuZGVyUGFnZXNUYXNrKTpQcm9taXNlLnJlc29sdmUoKX1hc3luYyBwZXJmb3JtUmVuZGVyUGFnZXMoKXtpZighdGhpcy5wZGZEb2N1bWVudClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoUD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFApKTtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LWNhbnZhcyIpO2lmKCFrKXJldHVybjt0aGlzLmNsZWFyQ2FudmFzZXMoKSx0aGlzLmNhY2hlRWxlbWVudHMoKTtsZXR7YXZhaWxhYmxlV2lkdGg6UyxhdmFpbGFibGVIZWlnaHQ6SX09dGhpcy5nZXRBdmFpbGFibGVTaXplKCk7dHJ5e2xldCBQPXRoaXMuY3VycmVudFByZXZpZXdQYWdlLFI9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFApLEs9Ui5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLFY9Sy5oZWlnaHQvSy53aWR0aCxXPTEuNDE0LG1lPS43MDcsQj0xLjI5NCxVPS43NzMsaGU9LjA1LEY9TWF0aC5hYnMoVi1XKTxXKmhlLGo9TWF0aC5hYnMoVi1tZSk8bWUqaGUsdWU9TWF0aC5hYnMoVi1CKTxCKmhlLGxlPU1hdGguYWJzKFYtVSk8VSpoZTt0aGlzLmlzQTRGb3JtYXQ9Rnx8anx8dWV8fGxlO2xldCBRPXRoaXMuaXNBNEZvcm1hdD9TOlMtMjQsaWU9dGhpcy5pc0E0Rm9ybWF0P0k6SS0yNCx0ZT1RPjA/US9LLndpZHRoOjAsZWU9aWU+MD9pZS9LLmhlaWdodDowLGtlPU1hdGgubWluKHRlfHwuNSxlZXx8dGV8fC41KSxYPU1hdGgubWluKGtlKjIsMyk7aWYoIU51bWJlci5pc0Zpbml0ZShYKXx8WDw9MCl7Ui5jbGVhbnVwPy4oKTtyZXR1cm59bGV0IFo9Ui5nZXRWaWV3cG9ydCh7c2NhbGU6WH0pLHllPW9KLmFjcXVpcmUoWi53aWR0aCxaLmhlaWdodCk7dGhpcy5jYW52YXNlcy5wdXNoKHllKTtsZXQgcT17Y2FudmFzQ29udGV4dDp5ZS5jdHgsdmlld3BvcnQ6Wn07YXdhaXQgUi5yZW5kZXIocSkucHJvbWlzZSxrLndpZHRoPVoud2lkdGgsay5oZWlnaHQ9Wi5oZWlnaHQ7bGV0IEE9USxzZT1aLmhlaWdodC9aLndpZHRoKlE7aWYoc2U+aWUpe2xldCBhZT1pZSxUZT1aLndpZHRoL1ouaGVpZ2h0KmllO2suc3R5bGUud2lkdGg9YCR7VGV9cHhgLGsuc3R5bGUuaGVpZ2h0PWAke2FlfXB4YH1lbHNlIGsuc3R5bGUud2lkdGg9YCR7QX1weGAsay5zdHlsZS5oZWlnaHQ9YCR7c2V9cHhgO2xldCBvZT1rLmdldENvbnRleHQoIjJkIik7b2UmJihvZS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsb2UuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixvZS5kcmF3SW1hZ2UoeWUuY2FudmFzLDAsMCkpLFIuY2xlYW51cCgpfWNhdGNoKFApe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byByZW5kZXIgcGFnZSAke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfTpgLFApfX1jbGVhckNhbnZhc2VzKCl7Zm9yKGxldCBrIG9mIHRoaXMuY2FudmFzZXMpb0oucmVsZWFzZShrKTt0aGlzLmNhbnZhc2VzPVtdfWNsZWFudXAoKXt0aGlzLmNsZWFyQ2FudmFzZXMoKSx0aGlzLnBkZkRvY3VtZW50JiYoV3UucmVsZWFzZURvY3VtZW50KHRoaXMubG9hZGVkUGRmVXJsPz90aGlzLnBkZlVybCksdGhpcy5wZGZEb2N1bWVudD1udWxsKSx0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMucGFnZUNvdW50PTAsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5pc0E0Rm9ybWF0PSEwLHRoaXMuc3RhY2tFbGVtZW50PW51bGwsdGhpcy5sb2FkZWRQZGZVcmw9bnVsbCx0aGlzLnJlbmRlcmVkPSExLHRoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSExfWFzeW5jIHVwZGF0ZWQoayl7aWYoc3VwZXIudXBkYXRlZChrKSxrLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgUz1rLmdldCgicGRmVXJsIik7UyYmV3UucmVsZWFzZURvY3VtZW50KFMpLHRoaXMuY2xlYW51cCgpLHRoaXMucmVuZGVyZWQ9ITEsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MTtsZXQgST10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO0kudG9wPHdpbmRvdy5pbm5lckhlaWdodCYmSS5ib3R0b20+MCYmdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpfWsuaGFzKCJjdXJyZW50UHJldmlld1BhZ2UiKSYmdGhpcy5yZW5kZXJlZCYmYXdhaXQgdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCl9Z2V0Q29udGV4dE1lbnVJdGVtcygpe2xldCBrPVtdO3JldHVybiB0aGlzLmNsaWNrYWJsZSYmKGsucHVzaCh7bmFtZToiVmlldyBQREYiLGljb25OYW1lOiJsdWNpZGU6RXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGlsZS1jbGljayIse2RldGFpbDp0aGlzLmdldFRpbGVDbGlja0RldGFpbCgpLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJhY3Rpb24iKX0pLGsucHVzaCh7ZGl2aWRlcjohMH0pKSxrLnB1c2goe25hbWU6Ik9wZW4gUERGIGluIE5ldyBUYWIiLGljb25OYW1lOiJsdWNpZGU6RXh0ZXJuYWxMaW5rIixhY3Rpb246aShhc3luYygpPT57d2luZG93Lm9wZW4odGhpcy5wZGZVcmwsIl9ibGFuayIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQ29weSBQREYgVVJMIixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnBkZlVybCl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtTLmhyZWY9dGhpcy5wZGZVcmwsUy5kb3dubG9hZD10aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIixTLmNsaWNrKCl9LCJhY3Rpb24iKX0pLHRoaXMucGFnZUNvdW50PjAmJmsucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6YCR7dGhpcy5wYWdlQ291bnR9IHBhZ2Uke3RoaXMucGFnZUNvdW50PjE/InMiOiIifWAsaWNvbk5hbWU6Imx1Y2lkZTpGaWxlVGV4dCIsZGlzYWJsZWQ6ITAsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpfSksa31jYWNoZUVsZW1lbnRzKCl7dGhpcy5zdGFja0VsZW1lbnR8fCh0aGlzLnN0YWNrRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LXN0YWNrIikpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLnJlbmRlcmVkJiZ0aGlzLnBkZkRvY3VtZW50JiYhdGhpcy5sb2FkaW5nJiZ0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKSl9Z2V0QXZhaWxhYmxlU2l6ZSgpe2lmKHRoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKSwhdGhpcy5zdGFja0VsZW1lbnQpcmV0dXJue2F2YWlsYWJsZVdpZHRoOjIwMCxhdmFpbGFibGVIZWlnaHQ6MjYwfTtsZXQgaz10aGlzLnN0YWNrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxTPU1hdGgubWF4KGsud2lkdGgsMCl8fDIwMCxJPU1hdGgubWF4KGsuaGVpZ2h0LDApfHwyNjA7cmV0dXJue2F2YWlsYWJsZVdpZHRoOlMsYXZhaWxhYmxlSGVpZ2h0Okl9fXN0YXRpY3tpbChhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIga2thPWcoKCk9Pnt3a2EoKX0pO3ZhciBTa2EsX2thPWcoKCk9PntwZSgpO1NrYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbWFnZSBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzgwMC82MDAiCiAgICAgICAgICBhbHQ9IkxhbmRzY2FwZSBwaG90byIKICAgICAgICAgIGxhYmVsPSJsYW5kc2NhcGUuanBnIgogICAgICAgICAgQHRpbGUtY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiSW1hZ2UgY2xpY2tlZDoiLHMuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNDAwIgogICAgICAgICAgYWx0PSJTcXVhcmUgcGhvdG8iCiAgICAgICAgICBsYWJlbD0ic3F1YXJlLnBuZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8zMDAvOTAwIgogICAgICAgICAgYWx0PSJQb3J0cmFpdCBwaG90byIKICAgICAgICAgIGxhYmVsPSJwb3J0cmFpdC53ZWJwIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwIgogICAgICAgICAgYWx0PSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICAgIGFsdD0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0LmpwZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEyMDAvODAwIgogICAgICAgICAgYWx0PSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVycm9yIFN0YXRlIChicm9rZW4gVVJMKTwvaDM+CiAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgIHNyYz0iaHR0cHM6Ly9pbnZhbGlkLXVybC10aGF0LWRvZXMtbm90LWV4aXN0LmV4YW1wbGUvaW1hZ2UucG5nIgogICAgICAgIGFsdD0iQnJva2VuIgogICAgICAgIGxhYmVsPSJicm9rZW4ucG5nIgogICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgVHgsQTIsUWVzLE1rYT1nKCgpPT57cGUoKTt3NCgpO0d1KCk7X2thKCk7VHg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEEyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxRZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXRodW1ibmFpbC1pbWFnZSIpXSxlLHQ9W10sYSxyPUlsLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsSW1hZ2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSxUeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic3JjImluIF8sImhhcyIpLGdldDppKF89Pl8uc3JjLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3JjPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxUeCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iYWx0ImluIF8sImhhcyIpLGdldDppKF89Pl8uYWx0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uYWx0PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxUeCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTG9hZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpbWFnZUxvYWRlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmltYWdlTG9hZGVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaW1hZ2VMb2FkZWQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLFR4KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaW1hZ2VXaWR0aCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmltYWdlV2lkdGgsImdldCIpLHNldDppKChfLE8pPT57Xy5pbWFnZVdpZHRoPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxUeCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpbWFnZUhlaWdodCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmltYWdlSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaW1hZ2VIZWlnaHQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLFR4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89U2thO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5zbCxKYAogICAgICAuaW1hZ2Utd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmVwZWF0aW5nLWNvbmljLWdyYWRpZW50KCNlOGU4ZTggMCUgMjUlLCB3aGl0ZSAwJSA1MCUpIDUwJSAvIDE2cHggMTZweCIsInJlcGVhdGluZy1jb25pYy1ncmFkaWVudChoc2woMjE1IDIwJSAxOCUpIDAlIDI1JSwgaHNsKDIxNSAyMCUgMTQlKSAwJSA1MCUpIDUwJSAvIDE2cHggMTZweCIpfTsKICAgICAgfQoKICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZy5sb2FkZWQgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZy5sb2FkaW5nIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgYF07I2U9QTIodGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhDKXt0aGlzLiNlPUN9I3Q9KEEyKHRoaXMsbCksQTIodGhpcyxkLCIiKSk7Z2V0IGFsdCgpe3JldHVybiB0aGlzLiN0fXNldCBhbHQoQyl7dGhpcy4jdD1DfSNhPShBMih0aGlzLHUpLEEyKHRoaXMsYiwhMSkpO2dldCBpbWFnZUxvYWRlZCgpe3JldHVybiB0aGlzLiNhfXNldCBpbWFnZUxvYWRlZChDKXt0aGlzLiNhPUN9I3M9KEEyKHRoaXMsdiksQTIodGhpcyxtLDApKTtnZXQgaW1hZ2VXaWR0aCgpe3JldHVybiB0aGlzLiNzfXNldCBpbWFnZVdpZHRoKEMpe3RoaXMuI3M9Q30jaT0oQTIodGhpcyxmKSxBMih0aGlzLE0sMCkpO2dldCBpbWFnZUhlaWdodCgpe3JldHVybiB0aGlzLiNpfXNldCBpbWFnZUhlaWdodChDKXt0aGlzLiNpPUN9aGFzU3RhcnRlZExvYWRpbmc9KEEyKHRoaXMseiksITEpO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5oYXNTdGFydGVkTG9hZGluZz93YAogICAgICAgICAgPGltZwogICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmltYWdlTG9hZGVkPyJsb2FkZWQiOiJsb2FkaW5nIn0iCiAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmFsdH0iCiAgICAgICAgICAgIEBsb2FkPSR7dGhpcy5oYW5kbGVJbWFnZUxvYWR9CiAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgIC8+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkV5ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5WaWV3IEltYWdlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmISh0aGlzLmltYWdlV2lkdGg+MCk/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmltYWdlV2lkdGg+MCYmdGhpcy5pbWFnZUhlaWdodD4wP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuaW1hZ2VXaWR0aH0gw5cgJHt0aGlzLmltYWdlSGVpZ2h0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyxhbHQ6dGhpcy5hbHQsd2lkdGg6dGhpcy5pbWFnZVdpZHRoLGhlaWdodDp0aGlzLmltYWdlSGVpZ2h0fX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNTdGFydGVkTG9hZGluZyYmdGhpcy5zcmMmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMubG9hZGluZz0hMCx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9aGFuZGxlSW1hZ2VMb2FkKEMpe2xldCBfPUMudGFyZ2V0O3RoaXMuaW1hZ2VXaWR0aD1fLm5hdHVyYWxXaWR0aCx0aGlzLmltYWdlSGVpZ2h0PV8ubmF0dXJhbEhlaWdodCx0aGlzLmltYWdlTG9hZGVkPSEwLHRoaXMubG9hZGluZz0hMX1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5lcnJvcj0hMCx0aGlzLmxvYWRpbmc9ITF9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpLEMuaGFzKCJzcmMiKSYmdGhpcy5zcmMmJnRoaXMuaXNWaXNpYmxlJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmltYWdlTG9hZGVkPSExLHRoaXMubG9hZGluZz0hMCl9c3RhdGlje0EyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciB6a2E9ZygoKT0+e01rYSgpfSk7dmFyIENrYSxUa2E9ZygoKT0+e3BlKCk7Q2thPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkF1ZGlvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAxIgogICAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0xLm1wMyIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7cz0+Y29uc29sZS5sb2coIkF1ZGlvIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTIubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0yLm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMy5tcDMiCiAgICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDMiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0zLm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IlNtYWxsIgogICAgICAgICAgbGFiZWw9InNtYWxsLm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBTNCxybCxKZXMsJGthPWcoKCk9PntwZSgpO3c0KCk7R3UoKTtUa2EoKTtTND1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0scmw9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEplcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLWF1ZGlvIildLGUsdD1bXSxhLHI9SWwsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxBdWRpbyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W1koKV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sUzQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNyYyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNyYywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNyYz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksUzQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGl0bGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50aXRsZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRpdGxlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxTNCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFydGlzdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iYXJ0aXN0ImluIFMsImhhcyIpLGdldDppKFM9PlMuYXJ0aXN0LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuYXJ0aXN0PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxTNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJkdXJhdGlvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZHVyYXRpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLFM0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1EYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ3YXZlZm9ybURhdGEiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy53YXZlZm9ybURhdGEsImdldCIpLHNldDppKChTLEkpPT57Uy53YXZlZm9ybURhdGE9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLFM0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1SZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4id2F2ZWZvcm1SZWFkeSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLndhdmVmb3JtUmVhZHksImdldCIpLHNldDppKChTLEkpPT57Uy53YXZlZm9ybVJlYWR5PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxTNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJldmlld1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImlzUHJldmlld1BsYXlpbmciaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pc1ByZXZpZXdQbGF5aW5nLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaXNQcmV2aWV3UGxheWluZz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksUzQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1Da2E7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLnNsLEpgCiAgICAgIC5hdWRpby1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDI1MCA0MCUgOTYlKSwgaHNsKDI4MCAzMCUgOTQlKSkiLCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDMwJSAxNiUpLCBoc2woMjgwIDI1JSAxNCUpKSIpfTsKICAgICAgfQoKICAgICAgLm11c2ljLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNTAgNjAlIDY1JSkiLCJoc2woMjUwIDYwJSA3MCUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLmF1ZGlvLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNTAgMjAlIDM1JSkiLCJoc2woMjUwIDIwJSA4MCUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmF1ZGlvLWFydGlzdCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUwIDE1JSA1MCUpIiwiaHNsKDI1MCAxNSUgNjUlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IC0xMnB4OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDE4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wbGF5LW92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICB9CgogICAgICAucGxheS1jaXJjbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CiAgICBgXTsjZT1ybCh0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKGspe3RoaXMuI2U9a30jdD0ocmwodGhpcyxsKSxybCh0aGlzLGQsIiIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGl0bGUoayl7dGhpcy4jdD1rfSNhPShybCh0aGlzLHUpLHJsKHRoaXMsYiwiIikpO2dldCBhcnRpc3QoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXJ0aXN0KGspe3RoaXMuI2E9a30jcz0ocmwodGhpcyx2KSxybCh0aGlzLG0sMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBkdXJhdGlvbihrKXt0aGlzLiNzPWt9I2k9KHJsKHRoaXMsZikscmwodGhpcyxNLFtdKSk7Z2V0IHdhdmVmb3JtRGF0YSgpe3JldHVybiB0aGlzLiNpfXNldCB3YXZlZm9ybURhdGEoayl7dGhpcy4jaT1rfSNyPShybCh0aGlzLHopLHJsKHRoaXMsQywhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHdhdmVmb3JtUmVhZHkoayl7dGhpcy4jcj1rfSNvPShybCh0aGlzLF8pLHJsKHRoaXMsJCwhMSkpO2dldCBpc1ByZXZpZXdQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUHJldmlld1BsYXlpbmcoayl7dGhpcy4jbz1rfWF1ZGlvRWxlbWVudD0ocmwodGhpcyxFKSxudWxsKTtwcmV2aWV3VGltZW91dD1udWxsO2hhc0xvYWRlZFdhdmVmb3JtPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImF1ZGlvLWNvbnRlbnQiPgogICAgICAgIDxkZWVzLWljb24gY2xhc3M9Im11c2ljLWljb24iIGljb249Imx1Y2lkZTpNdXNpYyI+PC9kZWVzLWljb24+CgogICAgICAgICR7dGhpcy50aXRsZT93YDxkaXYgY2xhc3M9ImF1ZGlvLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+YDoiIn0KICAgICAgICAke3RoaXMuYXJ0aXN0P3dgPGRpdiBjbGFzcz0iYXVkaW8tYXJ0aXN0Ij4ke3RoaXMuYXJ0aXN0fTwvZGl2PmA6IiJ9CgogICAgICAgICR7dGhpcy53YXZlZm9ybVJlYWR5P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YXZlZm9ybS1jb250YWluZXIiPgogICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYXktY2lyY2xlIj4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVhZHBob25lcyI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5QbGF5IEF1ZGlvPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuZHVyYXRpb24/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyx0aXRsZTp0aGlzLnRpdGxlLGFydGlzdDp0aGlzLmFydGlzdCxkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNMb2FkZWRXYXZlZm9ybSYmdGhpcy5zcmMmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMubG9hZEF1ZGlvTWV0YSgpKX1hc3luYyBsb2FkQXVkaW9NZXRhKCl7dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgaz1uZXcgQXVkaW87ay5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixrLnByZWxvYWQ9Im1ldGFkYXRhIixhd2FpdCBuZXcgUHJvbWlzZSgoUyxJKT0+e2suYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1rLmR1cmF0aW9uLFMoKX0se29uY2U6ITB9KSxrLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+SShuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGF1ZGlvIikpLHtvbmNlOiEwfSksay5zcmM9dGhpcy5zcmN9KSxhd2FpdCB0aGlzLmxvYWRXYXZlZm9ybSgpLHRoaXMubG9hZGluZz0hMX1jYXRjaHt0aGlzLmxvYWRpbmc9ITF9fWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXtsZXQgUz1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksST1uZXcgQXVkaW9Db250ZXh0LFI9KGF3YWl0IEkuZGVjb2RlQXVkaW9EYXRhKFMpKS5nZXRDaGFubmVsRGF0YSgwKSxLPTgwLFY9TWF0aC5mbG9vcihSLmxlbmd0aC9LKSxXPVtdO2ZvcihsZXQgQj0wO0I8SztCKyspe2xldCBVPTA7Zm9yKGxldCBoZT0wO2hlPFY7aGUrKylVKz1NYXRoLmFicyhSW0IqVitoZV0pO1cucHVzaChVL1YpfWxldCBtZT1NYXRoLm1heCguLi5XKTt0aGlzLndhdmVmb3JtRGF0YT1XLm1hcChCPT5tZT4wP0IvbWU6MCksdGhpcy53YXZlZm9ybVJlYWR5PSEwLGF3YWl0IEkuY2xvc2UoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCl9Y2F0Y2h7dGhpcy53YXZlZm9ybVJlYWR5PSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy53YXZlZm9ybVJlYWR5KXJldHVybjtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIik7aWYoIWspcmV0dXJuO2xldCBTPWsucGFyZW50RWxlbWVudCxJPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLFA9Uy5jbGllbnRXaWR0aCxSPVMuY2xpZW50SGVpZ2h0O2sud2lkdGg9UCpJLGsuaGVpZ2h0PVIqSTtsZXQgSz1rLmdldENvbnRleHQoIjJkIik7aWYoIUspcmV0dXJuO0suc2NhbGUoSSxJKSxLLmNsZWFyUmVjdCgwLDAsUCxSKTtsZXQgVj10aGlzLndhdmVmb3JtRGF0YS5sZW5ndGg7aWYoVj09PTApcmV0dXJuO2xldCBXPVAvVixCPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aGVtZS1kYXJrIil8fHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8iaHNsKDI1MCA1MCUgNjAlKSI6ImhzbCgyNTAgNTAlIDcwJSkiO0suZmlsbFN0eWxlPUI7Zm9yKGxldCBVPTA7VTxWO1UrKyl7bGV0IGhlPXRoaXMud2F2ZWZvcm1EYXRhW1VdLEY9TWF0aC5tYXgoMixoZSooUi00KSksaj1VKlcsdWU9KFItRikvMjtLLmZpbGxSZWN0KGorLjUsdWUsVy0xLEYpfX1hc3luYyB1cGRhdGVkKGspe3N1cGVyLnVwZGF0ZWQoayksay5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMud2F2ZWZvcm1SZWFkeT0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5sb2FkQXVkaW9NZXRhKCkpLGsuaGFzKCJ3YXZlZm9ybVJlYWR5IikmJnRoaXMud2F2ZWZvcm1SZWFkeSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5kcmF3V2F2ZWZvcm0oKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucHJldmlld1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnByZXZpZXdUaW1lb3V0KSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpfWZvcm1hdFRpbWUoayl7aWYoIWlzRmluaXRlKGspfHxrPDApcmV0dXJuIjA6MDAiO2xldCBTPU1hdGguZmxvb3Ioay82MCksST1NYXRoLmZsb29yKGslNjApO3JldHVybmAke1N9OiR7SS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3tybChhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgRGthPWcoKCk9Pnska2EoKX0pO3ZhciBMa2EsRWthPWcoKCk9PntwZSgpO0xrYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5WaWRlbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImJ1bm55Lm1wNCIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7cz0+Y29uc29sZS5sb2coIlZpZGVvIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92aWUubXA0IgogICAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzMwMCIKICAgICAgICAgIGxhYmVsPSJtb3ZpZS5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iYW5vdGhlci12aWRlby5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9InNtYWxsLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+V2l0aCBQb3N0ZXIgSW1hZ2U8L2gzPgogICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICBsYWJlbD0icG9zdGVyLXZpZGVvLm1wNCIKICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyICR4LE4yLGV0cyxQa2E9ZygoKT0+e3BlKCk7dzQoKTtHdSgpO0VrYSgpOyR4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxOMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZXRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aHVtYm5haWwtdmlkZW8iKV0sZSx0PVtdLGEscj1JbCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbFZpZGVvIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bWSgpXSx4PVtZKCldLHk9W1koKV0sJHgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNyYyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNyYywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNyYz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksJHgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3N0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InBvc3RlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnBvc3RlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnBvc3Rlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksJHgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iZHVyYXRpb24iaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmR1cmF0aW9uPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSwkeCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbENhcHR1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ0aHVtYm5haWxDYXB0dXJlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnRodW1ibmFpbENhcHR1cmVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udGh1bWJuYWlsQ2FwdHVyZWQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLCR4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaXNIb3ZlcmluZyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmlzSG92ZXJpbmcsImdldCIpLHNldDppKChfLE8pPT57Xy5pc0hvdmVyaW5nPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSwkeChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPUxrYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uc2wsSmAKICAgICAgLnZpZGVvLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwOwogICAgICB9CgogICAgICAudmlkZW8td3JhcHBlciB2aWRlbyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudmlkZW8td3JhcHBlciBjYW52YXMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnBvc3Rlci1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgoKICAgICAgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wbGF5LW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wbGF5LW92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52aWRlby1ob3Zlci1wcmV2aWV3IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZGVvLWhvdmVyLXByZXZpZXcuYWN0aXZlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICBgXTsjZT1OMih0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKEMpe3RoaXMuI2U9Q30jdD0oTjIodGhpcyxsKSxOMih0aGlzLGQsIiIpKTtnZXQgcG9zdGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc3RlcihDKXt0aGlzLiN0PUN9I2E9KE4yKHRoaXMsdSksTjIodGhpcyxiLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHVyYXRpb24oQyl7dGhpcy4jYT1DfSNzPShOMih0aGlzLHYpLE4yKHRoaXMsbSwhMSkpO2dldCB0aHVtYm5haWxDYXB0dXJlZCgpe3JldHVybiB0aGlzLiNzfXNldCB0aHVtYm5haWxDYXB0dXJlZChDKXt0aGlzLiNzPUN9I2k9KE4yKHRoaXMsZiksTjIodGhpcyxNLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIb3ZlcmluZyhDKXt0aGlzLiNpPUN9dGh1bWJuYWlsQ2FudmFzPShOMih0aGlzLHopLG51bGwpO2hvdmVyVmlkZW89bnVsbDtoYXNTdGFydGVkTG9hZGluZz0hMTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ2aWRlby13cmFwcGVyIj4KICAgICAgICAke3RoaXMucG9zdGVyP3dgCiAgICAgICAgICA8aW1nIGNsYXNzPSJwb3N0ZXItaW1hZ2UiIHNyYz0iJHt0aGlzLnBvc3Rlcn0iIGFsdD0iIiAvPgogICAgICAgIGA6dGhpcy50aHVtYm5haWxDYXB0dXJlZD93YAogICAgICAgICAgPGNhbnZhcz48L2NhbnZhcz4KICAgICAgICBgOndgCiAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiAjMDAwOyI+PC9kaXY+CiAgICAgICAgYH0KCiAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmcmJnRoaXMuc3JjP3dgCiAgICAgICAgICA8dmlkZW8KICAgICAgICAgICAgY2xhc3M9InZpZGVvLWhvdmVyLXByZXZpZXcgJHt0aGlzLmlzSG92ZXJpbmc/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAgIG11dGVkCiAgICAgICAgICAgIHBsYXlzaW5saW5lCiAgICAgICAgICAgIEBsb2FkZWRkYXRhPSR7dGhpcy5oYW5kbGVIb3ZlclZpZGVvTG9hZGVkfQogICAgICAgICAgPjwvdmlkZW8+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuaXNIb3ZlcmluZz8iIjp3YAogICAgICAgIDxkaXYgY2xhc3M9InBsYXktb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgYH0KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5QbGF5IFZpZGVvPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuZHVyYXRpb24/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyxwb3N0ZXI6dGhpcy5wb3N0ZXIsZHVyYXRpb246dGhpcy5kdXJhdGlvbn19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzU3RhcnRlZExvYWRpbmcmJnRoaXMuc3JjJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmNhcHR1cmVGaXJzdEZyYW1lKCkpfWFzeW5jIGNhcHR1cmVGaXJzdEZyYW1lKCl7aWYodGhpcy5wb3N0ZXIpe3RoaXMubG9hZER1cmF0aW9uKCk7cmV0dXJufXRoaXMubG9hZGluZz0hMDt0cnl7bGV0IEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtDLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLEMubXV0ZWQ9ITAsQy5wcmVsb2FkPSJtZXRhZGF0YSIsYXdhaXQgbmV3IFByb21pc2UoKF8sTyk9PntDLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1DLmR1cmF0aW9uLEMuY3VycmVudFRpbWU9LjEsQy5hZGRFdmVudExpc3RlbmVyKCJzZWVrZWQiLCgpPT57bGV0ICQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7JC53aWR0aD1DLnZpZGVvV2lkdGgsJC5oZWlnaHQ9Qy52aWRlb0hlaWdodDtsZXQgRT0kLmdldENvbnRleHQoIjJkIik7RSYmKEUuZHJhd0ltYWdlKEMsMCwwKSx0aGlzLnRodW1ibmFpbENhbnZhcz0kLHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITApLEMuc3JjPSIiLEMubG9hZCgpLF8oKX0se29uY2U6ITB9KX0se29uY2U6ITB9KSxDLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+TyhuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIHZpZGVvIikpLHtvbmNlOiEwfSksQy5zcmM9dGhpcy5zcmN9KSx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNvcHlUaHVtYm5haWxUb0NhbnZhcygpfWNhdGNoe3RoaXMubG9hZGluZz0hMSx0aGlzLmxvYWREdXJhdGlvbigpfX1sb2FkRHVyYXRpb24oKXtsZXQgQz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO0MucHJlbG9hZD0ibWV0YWRhdGEiLEMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1DLmR1cmF0aW9uLEMuc3JjPSIiLEMubG9hZCgpfSksQy5zcmM9dGhpcy5zcmN9Y29weVRodW1ibmFpbFRvQ2FudmFzKCl7aWYoIXRoaXMudGh1bWJuYWlsQ2FudmFzKXJldHVybjtsZXQgQz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWRlby13cmFwcGVyIGNhbnZhcyIpO2lmKCFDKXJldHVybjtDLndpZHRoPXRoaXMudGh1bWJuYWlsQ2FudmFzLndpZHRoLEMuaGVpZ2h0PXRoaXMudGh1bWJuYWlsQ2FudmFzLmhlaWdodDtsZXQgXz1DLmdldENvbnRleHQoIjJkIik7XyYmXy5kcmF3SW1hZ2UodGhpcy50aHVtYm5haWxDYW52YXMsMCwwKX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ob3ZlclZpZGVvPW51bGx9aGFuZGxlSG92ZXJWaWRlb0xvYWRlZChDKXt0aGlzLmhvdmVyVmlkZW89Qy50YXJnZXQsdGhpcy5ob3ZlclZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+e30pfWFzeW5jIHVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSxDLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy50aHVtYm5haWxDYXB0dXJlZD0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKSxDLmhhcygidGh1bWJuYWlsQ2FwdHVyZWQiKSYmdGhpcy50aHVtYm5haWxDYXB0dXJlZCYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaG92ZXJWaWRlbyYmKHRoaXMuaG92ZXJWaWRlby5wYXVzZSgpLHRoaXMuaG92ZXJWaWRlby5zcmM9IiIsdGhpcy5ob3ZlclZpZGVvPW51bGwpLHRoaXMudGh1bWJuYWlsQ2FudmFzPW51bGx9Zm9ybWF0VGltZShDKXtpZighaXNGaW5pdGUoQyl8fEM8MClyZXR1cm4iMDowMCI7bGV0IF89TWF0aC5mbG9vcihDLzYwKSxPPU1hdGguZmxvb3IoQyU2MCk7cmV0dXJuYCR7X306JHtPLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje04yKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBJa2E9ZygoKT0+e1BrYSgpfSk7dmFyIEFrYSxOa2E9ZygoKT0+e3BlKCk7QWthPWkoKCk9PntsZXQgcz1gaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdCc7CgpleHBvcnQgY2xhc3MgTXlDb21wb25lbnQgewogIHByaXZhdGUgaXRlbXM6IHN0cmluZ1tdID0gW107CgogIHJlbmRlcigpIHsKICAgIHJldHVybiBodG1sXGAKICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICBcJHt0aGlzLml0ZW1zLm1hcChpdGVtID0+IGh0bWxcYAogICAgICAgICAgPHNwYW4+XCR7aXRlbX08L3NwYW4+CiAgICAgICAgXGApfQogICAgICA8L2Rpdj4KICAgIFxgOwogIH0KfWAsZT1gTWVldGluZyBOb3RlcyAtIFE0IFBsYW5uaW5nCkRhdGU6IEphbnVhcnkgMTUsIDIwMjYKQXR0ZW5kZWVzOiBBbGljZSwgQm9iLCBDaGFybGllCgpLZXkgRGVjaXNpb25zOgoxLiBMYXVuY2ggbmV3IGZlYXR1cmUgYnkgTWFyY2gKMi4gSGlyZSAyIG1vcmUgZW5naW5lZXJzCjMuIE1pZ3JhdGUgdG8gbmV3IENJL0NEIHBpcGVsaW5lCjQuIFVwZGF0ZSBkZXNpZ24gc3lzdGVtIHRvIHYzCgpBY3Rpb24gSXRlbXM6Ci0gQWxpY2U6IERyYWZ0IFBSRCBieSBuZXh0IHdlZWsKLSBCb2I6IFNldCB1cCBpbnRlcnZpZXcgcGlwZWxpbmUKLSBDaGFybGllOiBFdmFsdWF0ZSBKZW5raW5zIHZzIEdpdEh1YiBBY3Rpb25zYDtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAudGlsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPk5vdGUgVGlsZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJjb21wb25lbnQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7c30KICAgICAgICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgICAgICAgIGxhYmVsPSJjb21wb25lbnQudHMiCiAgICAgICAgICAgIEB0aWxlLWNsaWNrPSR7YT0+Y29uc29sZS5sb2coIk5vdGUgY2xpY2tlZDoiLGEuZGV0YWlsKX0KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9Ik1lZXRpbmcgTm90ZXMiCiAgICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgICAgbGFiZWw9Im1lZXRpbmctbm90ZXMudHh0IgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0icGFja2FnZS5qc29uIgogICAgICAgICAgICAuY29udGVudD0ke2B7CiAgIm5hbWUiOiAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIiwKICAidmVyc2lvbiI6ICIzLjM4LjAiLAogICJkZXNjcmlwdGlvbiI6ICJEZXNpZ24gY29tcG9uZW50IGNhdGFsb2ciLAogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAiQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IjogIl4yLjAuMCIsCiAgICAibGl0IjogIl4zLjEuMCIKICB9LAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQiLAogICAgInRlc3QiOiAidHN0ZXN0IgogIH0KfWB9CiAgICAgICAgICAgIGxhbmd1YWdlPSJqc29uIgogICAgICAgICAgICBsYWJlbD0icGFja2FnZS5qc29uIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgdGl0bGU9InNtYWxsLnRzIgogICAgICAgICAgICAuY29udGVudD0ke3N9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9InNtYWxsLnRzIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0iZGVmYXVsdC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtzfQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJkZWZhdWx0LnRzIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgdGl0bGU9ImxhcmdlLnRzIgogICAgICAgICAgICAuY29udGVudD0ke3N9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9ImxhcmdlLnRzIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5XaXRob3V0IFRpdGxlPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgLmNvbnRlbnQ9JHtlfQogICAgICAgICAgbGFiZWw9InVudGl0bGVkLnR4dCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vIil9KTt2YXIgY0osS3UsdHRzLFJrYT1nKCgpPT57cGUoKTt3NCgpO0d1KCk7TmthKCk7Y0o9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEt1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx0dHM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXRodW1ibmFpbC1ub3RlIildLGUsdD1bXSxhLHI9SWwsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxOb3RlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bWSgpXSxjSih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0aXRsZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRpdGxlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudGl0bGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLGNKKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY29udGVudCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNvbnRlbnQsImdldCIpLHNldDppKCh6LE4pPT57ei5jb250ZW50PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxjSih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJsYW5ndWFnZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubGFuZ3VhZ2U9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGNKKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNIb3ZlcmluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzSG92ZXJpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5pc0hvdmVyaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxjSihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPUFrYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uc2wsSmAKICAgICAgLm5vdGUtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woNjAgNSUgOTYlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubm90ZS1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTRweCA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ub3RlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAlIDIwJSkiLCJoc2woMjE1IDIwJSAyMCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAubm90ZS1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubm90ZS10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTAlIDQwJSkiLCJoc2woMjE1IDEwJSAzNSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5ub3RlLWZhZGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDYwcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdHJhbnNwYXJlbnQsCiAgICAgICAgICAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCg2MCA1JSA5NiUpIil9CiAgICAgICAgKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm5vdGUtbGluZXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgd2lkdGg6IDM0cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA4NSUpIiwiaHNsKDAgNTAlIDgwJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICB9CgogICAgICAubGluZS1udW1iZXIgewogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4OyAvKiBtYXRjaGVzIDEwcHggKiAxLjUgbGluZS1oZWlnaHQgKi8KICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTAlIDc1JSkiLCJoc2woMjE1IDEwJSA3MCUpIil9OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDsKICAgICAgfQoKICAgIGBdOyNlPUt1KHRoaXMsbywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKE0pe3RoaXMuI2U9TX0jdD0oS3UodGhpcyxsKSxLdSh0aGlzLGQsIiIpKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBjb250ZW50KE0pe3RoaXMuI3Q9TX0jYT0oS3UodGhpcyx1KSxLdSh0aGlzLGIsIiIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbGFuZ3VhZ2UoTSl7dGhpcy4jYT1NfSNzPShLdSh0aGlzLHYpLEt1KHRoaXMsbSwhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzSG92ZXJpbmcoTSl7dGhpcy4jcz1NfW5vdGVCb2R5RWxlbWVudD0oS3UodGhpcyxmKSxudWxsKTtyZW5kZXJUaWxlQ29udGVudCgpe2xldCBNPXRoaXMuY29udGVudC5zcGxpdChgCmApO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJub3RlLWNvbnRlbnQiPgogICAgICAgICR7dGhpcy50aXRsZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLWJvZHkiPgogICAgICAgICAgPHByZSBjbGFzcz0ibm90ZS10ZXh0Ij4ke00uam9pbihgCmApfTwvcHJlPgogICAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6d2A8ZGl2IGNsYXNzPSJub3RlLWZhZGUiPjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVRleHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+T3BlbiBOb3RlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtsZXQgTT10aGlzLmNvbnRlbnQuc3BsaXQoYApgKTtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMubGFuZ3VhZ2UmJiFNLmxlbmd0aD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMubGFuZ3VhZ2U/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5sYW5ndWFnZS50b1VwcGVyQ2FzZSgpfTwvc3Bhbj5gOiIifQogICAgICAgICR7dGhpcy5pc0hvdmVyaW5nJiZNLmxlbmd0aD4xMj93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+TGluZSAke3RoaXMuZ2V0VmlzaWJsZUxpbmVSYW5nZShNLmxlbmd0aCl9PC9zcGFuPmA6d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7TS5sZW5ndGh9IGxpbmVzPC9zcGFuPmB9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57dGl0bGU6dGhpcy50aXRsZSxjb250ZW50OnRoaXMuY29udGVudCxsYW5ndWFnZTp0aGlzLmxhbmd1YWdlfX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwLHRoaXMubm90ZUJvZHlFbGVtZW50fHwodGhpcy5ub3RlQm9keUVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubm90ZS1ib2R5IikpfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ub3RlQm9keUVsZW1lbnQmJih0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3A9MCl9b25UaWxlTW91c2VNb3ZlKE0pe2lmKCF0aGlzLmlzSG92ZXJpbmd8fCF0aGlzLm5vdGVCb2R5RWxlbWVudHx8dGhpcy5jb250ZW50LnNwbGl0KGAKYCkubGVuZ3RoPD0xMilyZXR1cm47bGV0IE49dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxDPU0uY2xpZW50WC1OLmxlZnQsXz1NYXRoLm1heCgwLE1hdGgubWluKDEsQy9OLndpZHRoKSksTz10aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxIZWlnaHQtdGhpcy5ub3RlQm9keUVsZW1lbnQuY2xpZW50SGVpZ2h0O3RoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcD1fKk99Z2V0VmlzaWJsZUxpbmVSYW5nZShNKXtpZighdGhpcy5ub3RlQm9keUVsZW1lbnQpcmV0dXJuYDFcdTIwMTMxMiBvZiAke019YDtsZXQgej0xNSxOPU1hdGguZmxvb3IodGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wL3opKzEsQz1NYXRoLmZsb29yKHRoaXMubm90ZUJvZHlFbGVtZW50LmNsaWVudEhlaWdodC96KSxfPU1hdGgubWluKE4rQy0xLE0pO3JldHVybmAke059XHUyMDEzJHtffSBvZiAke019YH1zdGF0aWN7S3UoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIE9rYT1nKCgpPT57UmthKCl9KTt2YXIgRmthLEJrYT1nKCgpPT57cGUoKTtGa2E9aSgoKT0+e2xldCBzPVt7dHlwZToiaW1hZ2UiLG5hbWU6InN1bnNldC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTEifSx7dHlwZToiaW1hZ2UiLG5hbWU6Im1vdW50YWluLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MiJ9LHt0eXBlOiJpbWFnZSIsbmFtZToib2NlYW4uanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0zIn0se3R5cGU6ImltYWdlIixuYW1lOiJmb3Jlc3QuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT00In0se3R5cGU6ImltYWdlIixuYW1lOiJjaXR5LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NSJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiZGVzZXJ0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NiJ9XTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAudGlsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkZvbGRlciBUaWxlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJQaG90b3MiCiAgICAgICAgICAgIC5pdGVtcz0ke3N9CiAgICAgICAgICAgIGxhYmVsPSI2IHBob3RvcyIKICAgICAgICAgICAgQHRpbGUtY2xpY2s9JHtuPT5jb25zb2xlLmxvZygiRm9sZGVyIGNsaWNrZWQ6IixuLmRldGFpbCl9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJteS1wcm9qZWN0IgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6Im5vdGUiLG5hbWU6IlJFQURNRS5tZCJ9LHt0eXBlOiJub3RlIixuYW1lOiJwYWNrYWdlLmpzb24ifSx7dHlwZToiZm9sZGVyIixuYW1lOiJzcmMifSx7dHlwZToiZm9sZGVyIixuYW1lOiJ0ZXN0In0se3R5cGU6Im5vdGUiLG5hbWU6InRzY29uZmlnLmpzb24ifSx7dHlwZToicGRmIixuYW1lOiJkb2NzLnBkZiJ9LHt0eXBlOiJpbWFnZSIsbmFtZToibG9nby5wbmciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMC8xMDA/cmFuZG9tPTEwIn1dfQogICAgICAgICAgICBsYWJlbD0iUHJvamVjdCBmaWxlcyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9Ik1lZGlhIEFzc2V0cyIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJ2aWRlbyIsbmFtZToiaW50cm8ubXA0In0se3R5cGU6ImF1ZGlvIixuYW1lOiJiYWNrZ3JvdW5kLm1wMyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToidGh1bWJuYWlsLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MjAifSx7dHlwZToicGRmIixuYW1lOiJzdG9yeWJvYXJkLnBkZiJ9XX0KICAgICAgICAgICAgbGFiZWw9Ik1peGVkIG1lZGlhIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkVkZ2UgQ2FzZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iRW1wdHkgRm9sZGVyIgogICAgICAgICAgICAuaXRlbXM9JHtbXX0KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IlNpbmdsZSBJdGVtIgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6InBkZiIsbmFtZToicmVwb3J0LnBkZiJ9XX0KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICBuYW1lPSJTbWFsbCIKICAgICAgICAgICAgLml0ZW1zPSR7c30KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IkRlZmF1bHQiCiAgICAgICAgICAgIC5pdGVtcz0ke3N9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgbmFtZT0iTGFyZ2UiCiAgICAgICAgICAgIC5pdGVtcz0ke3N9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0sImRlbW8iKX0pO3ZhciBNbHQsZEosSGthLGF0cyxxa2E9ZygoKT0+e3BlKCk7dzQoKTtHdSgpO0JrYSgpO01sdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZEo9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEhrYT17cGRmOiJsdWNpZGU6RmlsZVRleHQiLGltYWdlOiJsdWNpZGU6SW1hZ2UiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLG5vdGU6Imx1Y2lkZTpGaWxlQ29kZSIsZm9sZGVyOiJsdWNpZGU6Rm9sZGVyIix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LGF0cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLWZvbGRlciIpXSxlLHQ9W10sYSxyPUlsLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsRm9sZGVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7YXR0cmlidXRlOiExfSldLE1sdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+Im5hbWUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5uYW1lLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YubmFtZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksTWx0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+Iml0ZW1zImluIHYsImhhcyIpLGdldDppKHY9PnYuaXRlbXMsImdldCIpLHNldDppKCh2LHgpPT57di5pdGVtcz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksTWx0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89RmthO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5zbCxKYAogICAgICAuZm9sZGVyLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDAgMzAlIDk3JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZvbGRlci1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDAgODAlIDUwJSkiLCJoc2woNDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5mb2xkZXItbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSAyMCUpIiwiaHNsKDIxNSAxNiUgODAlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnByZXZpZXctZ3JpZCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxNHB4IDE0cHg7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSA5NCUpIiwiaHNsKDIxNSAyMCUgMTglKSIpfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA2MCUpIiwiaHNsKDIxNSAxNiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbC1lbXB0eSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTUlIDk2JSkiLCJoc2woMjE1IDIwJSAxNiUpIil9OwogICAgICB9CgogICAgYF07I2U9ZEoodGhpcyxvLCIiKTtnZXQgbmFtZSgpe3JldHVybiB0aGlzLiNlfXNldCBuYW1lKGIpe3RoaXMuI2U9Yn0jdD0oZEoodGhpcyxsKSxkSih0aGlzLGQsW10pKTtnZXQgaXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXRlbXMoYil7dGhpcy4jdD1ifXJlbmRlclRpbGVDb250ZW50KCl7bGV0IGI9dGhpcy5pdGVtcy5zbGljZSgwLDQpLHY9NC1iLmxlbmd0aDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWNvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1oZWFkZXIiPgogICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZm9sZGVyLWljb24iIGljb249Imx1Y2lkZTpGb2xkZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLW5hbWUiPiR7dGhpcy5uYW1lfHwiVW50aXRsZWQgRm9sZGVyIn08L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1ncmlkIj4KICAgICAgICAgICR7Yi5tYXAoeD0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jZWxsIj4KICAgICAgICAgICAgICAke3gudGh1bWJuYWlsU3JjP3dgCiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iJHt4LnRodW1ibmFpbFNyY30iIGFsdD0iJHt4Lm5hbWV9IiAvPgogICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iJHtIa2FbeC50eXBlXXx8SGthLnVua25vd259Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgICAgJHtBcnJheS5mcm9tKHtsZW5ndGg6dn0pLm1hcCgoKT0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jZWxsIGdyaWQtY2VsbC1lbXB0eSI+PC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZvbGRlck9wZW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+T3BlbiBGb2xkZXI8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLmxhYmVsJiYhdGhpcy5pdGVtcy5sZW5ndGg/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuaXRlbXMubGVuZ3RofSBpdGVtJHt0aGlzLml0ZW1zLmxlbmd0aCE9PTE/InMiOiIifTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntuYW1lOnRoaXMubmFtZSxpdGVtQ291bnQ6dGhpcy5pdGVtcy5sZW5ndGgsaXRlbXM6dGhpcy5pdGVtc319Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGRKKHRoaXMsdSl9c3RhdGlje2RKKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBqa2E9ZygoKT0+e3FrYSgpfSk7dmFyIFZrYT1nKCgpPT57WHdhKCk7ZWthKCk7c2thKCk7cGthKCk7ZmthKCk7bWthKCk7Z2thKCk7a2thKCk7emthKCk7RGthKCk7SWthKCk7T2thKCk7amthKCl9KTt2YXIgVWthPWcoKCk9PntmcigpfSk7dmFyIFdrYT1nKCgpPT57UHUoKX0pO3ZhciBHa2EsS2thPWcoKCk9PntwZSgpO0drYT1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAucmVmMSB7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJyZWYxIj48L2Rpdj4KICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke2AKICAgICAgKipUaGlzIGlzIGEgbG9uZ2VyIG1hcmtkb3duIHRleHQgdGhhdCAgY2FuIGJlIHVzZWQgdGhlIHdyaXRlKiogIAogICAgICBhIGxvbmdlciBkZXNjcmlwdGlvbiBhYm91dCB3aGF0cyBnb2luZyBvbiB0aGUgYXBwICAKICAKICAgICAgKipUaGlzIGlzIGEgc3ViaGVhZGVyKioKICAgICAgYW5kIGFub3RoZXIgdGV4dAogICAgCiAgICBgfT48L2RlZXMtc3BlZWNoYnViYmxlPgogIGAsImRlbW9GdW5jIil9KTt2YXIgRHgsUjIsc3RzLFlrYT1nKCgpPT57dzIoKTt2bygpO0trYSgpO3BlKCk7djIoKTtodCgpO0R4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxSMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sc3RzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zcGVlY2hidWJibGUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NwZWVjaGJ1YmJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxEeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZmZlZEVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InJlZmZlZEVsZW1lbnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5yZWZmZWRFbGVtZW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucmVmZmVkRWxlbWVudD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksRHgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ0ZXh0ImluIF8sImhhcyIpLGdldDppKF89Pl8udGV4dCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnRleHQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLER4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4id2F2ZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLndhdmUsImdldCIpLHNldDppKChfLE8pPT57Xy53YXZlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxEeCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hbmlmZXN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Im1hbmlmZXN0ZWQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5tYW5pZmVzdGVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ubWFuaWZlc3RlZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksRHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InN0YXR1cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnN0YXR1cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksRHgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1Ha2E7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coQyxfKXtsZXQgTz1hd2FpdCBSby5jcmVhdGVBbmRTaG93KHtibHVyOiExfSksJD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXNwZWVjaGJ1YmJsZSIpO3JldHVybiAkLndpbmRvd0xheWVyPU8sJC5yZWZmZWRFbGVtZW50PUMsJC50ZXh0PV8sJC5tYW5pZmVzdGVkPSEwLE8uYXBwZW5kQ2hpbGQoJCksTy5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixPLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLndpbmRvd092ZXJsYXkiKS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIiwkfSNlPVIyKHRoaXMsbyx2b2lkIDApO2dldCByZWZmZWRFbGVtZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZmZlZEVsZW1lbnQoQyl7dGhpcy4jZT1DfSN0PShSMih0aGlzLGwpLFIyKHRoaXMsZCx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KEMpe3RoaXMuI3Q9Q30jYT0oUjIodGhpcyx1KSxSMih0aGlzLGIsITEpKTtnZXQgd2F2ZSgpe3JldHVybiB0aGlzLiNhfXNldCB3YXZlKEMpe3RoaXMuI2E9Q30jcz0oUjIodGhpcyx2KSxSMih0aGlzLG0sITEpKTtnZXQgbWFuaWZlc3RlZCgpe3JldHVybiB0aGlzLiNzfXNldCBtYW5pZmVzdGVkKEMpe3RoaXMuI3M9Q30jaT0oUjIodGhpcyxmKSxSMih0aGlzLE0sIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0YXR1cyhDKXt0aGlzLiNpPUN9d2luZG93TGF5ZXI9UjIodGhpcyx6KTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yczsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB9CgogICAgICAuYXJyb3cgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmYiLCIjMzMzIil9OwogICAgICAgIGhlaWdodDogMTVweDsKICAgICAgICB3aWR0aDogMTVweDsKICAgICAgICBsZWZ0OiAycHg7CiAgICAgICAgdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnNwZWVjaGJ1YmJsZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmYiLCIjMzMzIil9OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbWluLXdpZHRoOiAyNDBweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogOHB4OwogICAgICB9CgogICAgICAud2F2ZSB7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHdhdmUtYW5pbWF0aW9uOyAvKiBSZWZlcnMgdG8gdGhlIG5hbWUgb2YgeW91ciBAa2V5ZnJhbWVzIGVsZW1lbnQgYmVsb3cgKi8KICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDIuNXM7IC8qIENoYW5nZSB0byBzcGVlZCB1cCBvciBzbG93IGRvd24gKi8KICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgLyogTmV2ZXIgc3RvcCB3YXZpbmcgOikgKi8KICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA3MCUgNzAlOyAvKiBQaXZvdCBhcm91bmQgdGhlIGJvdHRvbS1sZWZ0IHBhbG0gKi8KICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgd2F2ZS1hbmltYXRpb24gewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgICAgIH0KICAgICAgICAxMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTRkZWcpOwogICAgICAgIH0gLyogVGhlIGZvbGxvd2luZyBmaXZlIHZhbHVlcyBjYW4gYmUgcGxheWVkIHdpdGggdG8gbWFrZSB0aGUgd2F2aW5nIG1vcmUgb3IgbGVzcyBleHRyZW1lICovCiAgICAgICAgMjAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC04ZGVnKTsKICAgICAgICB9CiAgICAgICAgMzAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTsKICAgICAgICB9CiAgICAgICAgNDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00ZGVnKTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEwZGVnKTsKICAgICAgICB9CiAgICAgICAgNjAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgICAgIH0gLyogUmVzZXQgZm9yIHRoZSBsYXN0IGhhbGYgdG8gcGF1c2UgKi8KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tYW5pZmVzdGVkP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGVlY2hidWJibGUiPgogICAgICAgICAgICAgICAgJHt0aGlzLndhdmU/d2A8c3BhbiBjbGFzcz0id2F2ZSI+8J+Rizwvc3Bhbj5gOndgYH0KICAgICAgICAgICAgICAgICR7VmkucmVzb2x2ZSh0aGlzLmdldEh0bWwoKSl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YGB9CiAgICBgfWFzeW5jIGhhbmRsZUNsaWNrKCl7Y29uc29sZS5sb2coInNwZWVjaGJ1YmJsZSBnb3QgY2xpY2tlZC4iKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLnJlZmZlZEVsZW1lbnR8fCh0aGlzLnJlZmZlZEVsZW1lbnQ9dGhpcy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSx0aGlzLm1hbmlmZXN0ZWQpYXdhaXQgdGhpcy51cGRhdGVQb3NpdGlvbigpLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLnN0eWxlLm9wYWNpdHk9IjEiO2Vsc2V7bGV0IEM7dGhpcy5yZWZmZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGFzeW5jKCk9PntDPWF3YWl0IE4uY3JlYXRlQW5kU2hvdyh0aGlzLnJlZmZlZEVsZW1lbnQsdGhpcy50ZXh0KX0pLHRoaXMucmVmZmVkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKT0+e0MuZGVzdHJveSgpfSl9fWFzeW5jIHVwZGF0ZVBvc2l0aW9uKCl7bGV0IEM9dGhpcy5yZWZmZWRFbGVtZW50LF89Qy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS50b3A9YCR7Xy50b3AtMTN9cHhgLHRoaXMuc3R5bGUubGVmdD1gJHtfLmxlZnQrQy5jbGllbnRXaWR0aCs0fXB4YCxfLnJpZ2h0PjI1MCYmKHRoaXMuc3R5bGUud2lkdGg9IjI1MHB4Iil9YXN5bmMgZ2V0SHRtbCgpe2lmKCF0aGlzLnRleHQpcmV0dXJuIiI7bGV0IEM9bHQucGx1Z2lucy5zbWFydHN0cmluZy5ub3JtYWxpemUuc3RhbmRhcmQodGhpcy50ZXh0KSxfPWF3YWl0IGx0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duLmVhc3lNYXJrZG93blRvSHRtbChDKTtyZXR1cm4gVjMoXyl9YXN5bmMgc2hvdygpe31hc3luYyBkZXN0cm95KCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9c3RhdGlje1IyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBaa2E9ZygoKT0+e1lrYSgpfSk7dmFyIFhrYT1nKCgpPT57djIoKX0pO3ZhciBRa2E9ZygoKT0+e1VrYSgpO1drYSgpO1prYSgpO1hrYSgpfSk7dmFyIEprYT1nKCgpPT57fSk7dmFyIGVTYT1nKCgpPT57SmthKCl9KTt2YXIgTHgsdFNhPWcoKCk9PntFcnQoKTtMeD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIldlYkNvbnRhaW5lckVudmlyb25tZW50Iil9c3RhdGljIHNoYXJlZENvbnRhaW5lcj1udWxsO3N0YXRpYyBib290UHJvbWlzZT1udWxsO19yZWFkeT0hMTt0eXBlPSJ3ZWJjb250YWluZXIiO2dldCByZWFkeSgpe3JldHVybiB0aGlzLl9yZWFkeX1nZXQgY29udGFpbmVyKCl7cmV0dXJuIHMuc2hhcmVkQ29udGFpbmVyfWFzeW5jIGluaXQoKXtpZighKHRoaXMuX3JlYWR5JiZzLnNoYXJlZENvbnRhaW5lcikpe2lmKHMuYm9vdFByb21pc2Upe2F3YWl0IHMuYm9vdFByb21pc2UsdGhpcy5fcmVhZHk9ITA7cmV0dXJufWlmKHMuc2hhcmVkQ29udGFpbmVyKXt0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYodHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyPiJ1Iil0aHJvdyBuZXcgRXJyb3IoYFdlYkNvbnRhaW5lciByZXF1aXJlcyBTaGFyZWRBcnJheUJ1ZmZlciB3aGljaCBpcyBub3QgYXZhaWxhYmxlLiBFbnN1cmUgeW91ciBzZXJ2ZXIgc2VuZHMgdGhlc2UgaGVhZGVyczoKICBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeTogc2FtZS1vcmlnaW4KICBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5OiByZXF1aXJlLWNvcnBgKTtzLmJvb3RQcm9taXNlPUNnLmJvb3QoKTt0cnl7cy5zaGFyZWRDb250YWluZXI9YXdhaXQgcy5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMH1jYXRjaChlKXt0aHJvdyBzLmJvb3RQcm9taXNlPW51bGwsZX19fWFzeW5jIGRlc3Ryb3koKXtzLnNoYXJlZENvbnRhaW5lciYmKHMuc2hhcmVkQ29udGFpbmVyLnRlYXJkb3duKCkscy5zaGFyZWRDb250YWluZXI9bnVsbCxzLmJvb3RQcm9taXNlPW51bGwsdGhpcy5fcmVhZHk9ITEpfWFzeW5jIHJlYWRGaWxlKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSwidXRmLTgiKX1hc3luYyB3cml0ZUZpbGUoZSx0KXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMud3JpdGVGaWxlKGUsdCwidXRmLTgiKX1hc3luYyByZWFkRGlyKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksKGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSx7d2l0aEZpbGVUeXBlczohMH0pKS5tYXAoYT0+KHt0eXBlOmEuaXNEaXJlY3RvcnkoKT8iZGlyZWN0b3J5IjoiZmlsZSIsbmFtZTphLm5hbWUscGF0aDplPT09Ii8iP2AvJHthLm5hbWV9YDpgJHtlfS8ke2EubmFtZX1gfSkpfWFzeW5jIG1rZGlyKGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ta2RpcihlLHtyZWN1cnNpdmU6ITB9KX1hc3luYyBybShlLHQpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ybShlLHtyZWN1cnNpdmU6dD8ucmVjdXJzaXZlPz8hMX0pfWFzeW5jIGV4aXN0cyhlKXt0aGlzLmVuc3VyZVJlYWR5KCk7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZShlKSwhMH1jYXRjaHt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSksITB9Y2F0Y2h7cmV0dXJuITF9fX13YXRjaChlLHQsYSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCByPXRoaXMuY29udGFpbmVyLmZzLndhdGNoKGUse3JlY3Vyc2l2ZTphPy5yZWN1cnNpdmU/PyExfSx0KTtyZXR1cm57c3RvcDppKCgpPT5yLmNsb3NlKCksInN0b3AiKX19YXN5bmMgc3Bhd24oZSx0PVtdKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IGE9YXdhaXQgdGhpcy5jb250YWluZXIuc3Bhd24oZSx0KTtyZXR1cm57b3V0cHV0OmEub3V0cHV0LGlucHV0OmEuaW5wdXQsZXhpdDphLmV4aXQsa2lsbDppKCgpPT5hLmtpbGwoKSwia2lsbCIpfX1hc3luYyBtb3VudChlKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIubW91bnQoZSl9Z2V0Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSx0aGlzLmNvbnRhaW5lcn1lbnN1cmVSZWFkeSgpe2lmKCF0aGlzLl9yZWFkeXx8IXRoaXMuY29udGFpbmVyKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyRW52aXJvbm1lbnQgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4iKX19fSk7dmFyIGFTYT1nKCgpPT57dFNhKCl9KTt2YXIgbDJlPWcoKCk9PntlU2EoKTthU2EoKX0pO3ZhciBzU2E9ZygoKT0+e0dvdCgpfSk7dmFyIGMyZSx6bHQ9ZygoKT0+e2MyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUZXJtaW5hbFRhYk1hbmFnZXIiKX10YWJzPW5ldyBNYXA7dGFiQ291bnRlcj0wO3h0ZXJtQnVuZGxlPW51bGw7eHRlcm1GaXRBZGRvbkJ1bmRsZT1udWxsO3NldFh0ZXJtTW9kdWxlcyhlLHQpe3RoaXMueHRlcm1CdW5kbGU9ZSx0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGU9dH1nZW5lcmF0ZVRhYklkKCl7cmV0dXJuIHRoaXMudGFiQ291bnRlcisrLGB0ZXJtaW5hbC0ke3RoaXMudGFiQ291bnRlcn0tJHtEYXRlLm5vdygpfWB9Z2V0RGVmYXVsdExhYmVsKGUsdCl7c3dpdGNoKGUpe2Nhc2Uic2hlbGwiOnJldHVybiJiYXNoIjtjYXNlInNjcmlwdCI6cmV0dXJuIHQ/LnNjcmlwdE5hbWV8fCJzY3JpcHQiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiB0Py5wYWNrYWdlTmFtZT9gdXBkYXRlICR7dC5wYWNrYWdlTmFtZX1gOiJ1cGRhdGUiO2Nhc2UiY3VzdG9tIjpyZXR1cm4gdD8uY29tbWFuZHx8InByb2Nlc3MiO2RlZmF1bHQ6cmV0dXJuInRlcm1pbmFsIn19Z2V0RGVmYXVsdEljb24oZSl7c3dpdGNoKGUpe2Nhc2Uic2hlbGwiOnJldHVybiJsdWNpZGU6dGVybWluYWwiO2Nhc2Uic2NyaXB0IjpyZXR1cm4ibHVjaWRlOnBsYXkiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiJsdWNpZGU6cGFja2FnZUNoZWNrIjtjYXNlImN1c3RvbSI6cmV0dXJuImx1Y2lkZTpjb2RlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6dGVybWluYWwifX1nZXRUZXJtaW5hbFRoZW1lKGUpe3JldHVybiBlP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uOiJyZ2JhKDAsIDAsIDAsIDAuMikiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9OntiYWNrZ3JvdW5kOiIjMDAwMDAwIixmb3JlZ3JvdW5kOiIjZmZmZmZmIixjdXJzb3I6IiNmZmZmZmYiLGN1cnNvckFjY2VudDoiIzAwMDAwMCIsc2VsZWN0aW9uOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1jcmVhdGVUYWIoZSx0KXtpZighdGhpcy54dGVybUJ1bmRsZXx8IXRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZSl0aHJvdyBuZXcgRXJyb3IoIlRlcm1pbmFsVGFiTWFuYWdlcjogeHRlcm0gbW9kdWxlcyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgc2V0WHRlcm1Nb2R1bGVzKCkgZmlyc3QuIik7bGV0IGE9dGhpcy5nZW5lcmF0ZVRhYklkKCkscj1lLnR5cGUsbj1uZXcgdGhpcy54dGVybUJ1bmRsZS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMCx0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUodCksZm9udEZhbWlseTonTWVubG8sIE1vbmFjbywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlJyxmb250U2l6ZToxMyxsaW5lSGVpZ2h0OjEuMn0pLG89bmV3IHRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZS5GaXRBZGRvbjtuLmxvYWRBZGRvbihvKTtsZXQgbD17aWQ6YSxsYWJlbDplLmxhYmVsfHx0aGlzLmdldERlZmF1bHRMYWJlbChyLGUubWV0YWRhdGEpLGljb25OYW1lOmUuaWNvbk5hbWV8fHRoaXMuZ2V0RGVmYXVsdEljb24ociksdHlwZTpyLGNsb3NlYWJsZTplLmNsb3NlYWJsZT8/ciE9PSJzaGVsbCIsdGVybWluYWw6bixmaXRBZGRvbjpvLHByb2Nlc3M6bnVsbCxpbnB1dFdyaXRlcjpudWxsLGV4aXRlZDohMSxleGl0Q29kZTpudWxsLGNyZWF0ZWRBdDpEYXRlLm5vdygpLG1ldGFkYXRhOmUubWV0YWRhdGF9O3JldHVybiB0aGlzLnRhYnMuc2V0KGEsbCksbH1nZXRUYWIoZSl7cmV0dXJuIHRoaXMudGFicy5nZXQoZSl9Z2V0QWxsVGFicygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudGFicy52YWx1ZXMoKSkuc29ydCgoZSx0KT0+ZS5jcmVhdGVkQXQtdC5jcmVhdGVkQXQpfWdldFRhYkNvdW50KCl7cmV0dXJuIHRoaXMudGFicy5zaXplfWhhc1RhYihlKXtyZXR1cm4gdGhpcy50YWJzLmhhcyhlKX1jbG9zZVRhYihlKXtsZXQgdD10aGlzLnRhYnMuZ2V0KGUpO2lmKCF0KXJldHVybiExO2lmKHQucHJvY2VzcyYmIXQuZXhpdGVkKXRyeXt0LnByb2Nlc3Mua2lsbCgpfWNhdGNoKGEpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGtpbGwgcHJvY2VzczoiLGEpfXRyeXt0LnRlcm1pbmFsLmRpc3Bvc2UoKX1jYXRjaChhKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBkaXNwb3NlIHRlcm1pbmFsOiIsYSl9cmV0dXJuIHRoaXMudGFicy5kZWxldGUoZSksITB9cmVuYW1lVGFiKGUsdCl7bGV0IGE9dGhpcy50YWJzLmdldChlKTtyZXR1cm4gYT8oYS5sYWJlbD10LCEwKTohMX1tYXJrVGFiRXhpdGVkKGUsdCl7bGV0IGE9dGhpcy50YWJzLmdldChlKTthJiYoYS5leGl0ZWQ9ITAsYS5leGl0Q29kZT10KX1zZXRUYWJQcm9jZXNzKGUsdCxhKXtsZXQgcj10aGlzLnRhYnMuZ2V0KGUpO3ImJihyLnByb2Nlc3M9dCxyLmlucHV0V3JpdGVyPWEpfXVwZGF0ZUFsbFRoZW1lcyhlKXtsZXQgdD10aGlzLmdldFRlcm1pbmFsVGhlbWUoZSk7Zm9yKGxldCBhIG9mIHRoaXMudGFicy52YWx1ZXMoKSlhLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dH1kaXNwb3NlQWxsKCl7Zm9yKGxldFtlXW9mIHRoaXMudGFicyl0aGlzLmNsb3NlVGFiKGUpO3RoaXMudGFicy5jbGVhcigpfX19KTt2YXIgclNhPXt9O3l0KHJTYSx7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOigpPT5pU2F9KTt2YXIgXzQsb2wsaVNhLHVKPWcoKCk9PntwZSgpO2t0KCk7aHQoKTtsMmUoKTtHYSgpO2EyZSgpO3psdCgpO091KCk7XzQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LG9sPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxpU2E9KCgpPT57bGV0IHM9W25lKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlVGVybWluYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKCldLGM9W0woKV0seD1bTCh7dHlwZTpOdW1iZXJ9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W1koKV0sTz1bWSgpXSxfNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZXhlY3V0aW9uRW52aXJvbm1lbnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLF80KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZXR1cENvbW1hbmQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZXR1cENvbW1hbmQsImdldCIpLHNldDppKChTLEkpPT57Uy5zZXR1cENvbW1hbmQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLF80KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW52aXJvbm1lbnRWYXJpYWJsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImVudmlyb25tZW50VmFyaWFibGVzImluIFMsImhhcyIpLGdldDppKFM9PlMuZW52aXJvbm1lbnRWYXJpYWJsZXMsImdldCIpLHNldDppKChTLEkpPT57Uy5lbnZpcm9ubWVudFZhcmlhYmxlcz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsdiksXzQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJCYXJXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGFiQmFyV2lkdGgiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJCYXJXaWR0aCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYkJhcldpZHRoPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxfNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNob3dUYWJCYXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaG93VGFiQmFyLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hvd1RhYkJhcj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksXzQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzImluIFMsImhhcyIpLGdldDppKFM9PlMudGFicywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLF80KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlVGFiSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImFjdGl2ZVRhYklkImluIFMsImhhcyIpLGdldDppKFM9PlMuYWN0aXZlVGFiSWQsImdldCIpLHNldDppKChTLEkpPT57Uy5hY3RpdmVUYWJJZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksXzQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT57bGV0IGs9bmV3IEx4O3JldHVybiB3YDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHtrfT48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPmB9LCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtyZXNpemVPYnNlcnZlcjt0YWJNYW5hZ2VyOyNlPW9sKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoayl7dGhpcy4jZT1rfSN0PShvbCh0aGlzLGwpLG9sKHRoaXMsZCwiIikpO2dldCBzZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2V0dXBDb21tYW5kKGspe3RoaXMuI3Q9a30jYT0ob2wodGhpcyx1KSxvbCh0aGlzLGIse30pKTtnZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoayl7dGhpcy4jYT1rfSNzPShvbCh0aGlzLHYpLG9sKHRoaXMsbSwxNjApKTtnZXQgdGFiQmFyV2lkdGgoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFiQmFyV2lkdGgoayl7dGhpcy4jcz1rfSNpPShvbCh0aGlzLGYpLG9sKHRoaXMsTSwhMCkpO2dldCBzaG93VGFiQmFyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dUYWJCYXIoayl7dGhpcy4jaT1rfSNyPShvbCh0aGlzLHopLG9sKHRoaXMsQyxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRhYnMoayl7dGhpcy4jcj1rfSNvPShvbCh0aGlzLF8pLG9sKHRoaXMsJCxudWxsKSk7Z2V0IGFjdGl2ZVRhYklkKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZVRhYklkKGspe3RoaXMuI289a310ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPShvbCh0aGlzLEUpLG51bGwpO2lzQnJpZ2h0PSExO3Rlcm1pbmFsQWN0aW9uYmFyPW51bGw7ZW52aXJvbm1lbnREZWZlcnJlZD1uZXcgdXQuc21hcnRwcm9taXNlLkRlZmVycmVkO2Vudmlyb25tZW50UHJvbWlzZT10aGlzLmVudmlyb25tZW50RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWJNYW5hZ2VyPW5ldyBjMmUsdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmhhbmRsZVJlc2l6ZSgpfSl9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgICNhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRlbnQgZGVlcy1hY3Rpb25iYXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUYWIgYmFyIG9uIHRoZSByaWdodCBzaWRlICovCiAgICAgIC50YWItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYi1iYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1iYXItdGl0bGUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnRhYi1iYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb24gewogICAgICAgIHdpZHRoOiAyMnB4OwogICAgICAgIGhlaWdodDogMjJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbGlzdCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyNSUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTUlKSIsImhzbCgyMTAgMzAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDAlKSIsImhzbCgyMTAgMTAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmV4aXRlZCB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAudGFiLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLWljb24ucnVubmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSA0MCUpIiwiaHNsKDE0MiA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1sYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMXB4IDVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDkwJSkiLCJoc2woMTQyIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDkzJSkiLCJoc2woMCAzMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA0NSUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2UgewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBrPXRoaXMuYWN0aXZlVGFiSWQ/dGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgIDwhLS0gTWFpbiB0ZXJtaW5hbCBhcmVhIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRlbnQiPgogICAgICAgICAgJHtrP3dgCiAgICAgICAgICAgIDxkaXYgaWQ9ImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dGVybWluYWwifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPk5vIHRlcm1pbmFsIG9wZW48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFZlcnRpY2FsIHRhYiBiYXIgb24gdGhlIHJpZ2h0IC0tPgogICAgICAgICR7dGhpcy5zaG93VGFiQmFyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYmFyIiBzdHlsZT0id2lkdGg6ICR7dGhpcy50YWJCYXJXaWR0aH1weCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXItaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWJhci10aXRsZSI+VGVybWluYWxzPC9zcGFuPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYWN0aW9uIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUFkZFRhYn0gdGl0bGU9Ik5ldyBUZXJtaW5hbCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBsdXMifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWxpc3QiPgogICAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChTPT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0idGVybWluYWwtdGFiICR7Uy5pZD09PXRoaXMuYWN0aXZlVGFiSWQ/ImFjdGl2ZSI6IiJ9ICR7Uy5leGl0ZWQ/ImV4aXRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zd2l0Y2hUb1RhYihTLmlkKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIC5pY29uPSR7Uy5pY29uTmFtZX0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRhYi1pY29uICR7Uy5wcm9jZXNzJiYhUy5leGl0ZWQ/InJ1bm5pbmciOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWxhYmVsIj4ke1MubGFiZWx9PC9zcGFuPgogICAgICAgICAgICAgICAgICAke1MuZXhpdGVkP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV4aXQtYmFkZ2UgJHtTLmV4aXRDb2RlPT09MD8ic3VjY2VzcyI6ImVycm9yIn0iPgogICAgICAgICAgICAgICAgICAgICAgJHtTLmV4aXRDb2RlfQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgJHtTLmNsb3NlYWJsZT93YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY2xvc2UiIEBjbGljaz0ke0k9PnRoaXMuaGFuZGxlVGFiQ2xvc2UoSSxTLmlkKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7bGV0IGs9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5pc0JyaWdodD1rLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4sdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPWsudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoUj0+e3RoaXMuaXNCcmlnaHQ9Uix0aGlzLnRhYk1hbmFnZXIudXBkYXRlQWxsVGhlbWVzKFIpfSk7bGV0IFM9YW8uZ2V0SW5zdGFuY2UoKSxbSSxQXT1hd2FpdCBQcm9taXNlLmFsbChbUy5sb2FkWHRlcm0oKSxTLmxvYWRYdGVybUZpdEFkZG9uKCldKTt0aGlzLnRhYk1hbmFnZXIuc2V0WHRlcm1Nb2R1bGVzKEksUCksYXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2xldCBrPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtrJiZ0aGlzLnJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShrKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy50YWJNYW5hZ2VyLmRpc3Bvc2VBbGwoKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGhhbmRsZUFkZFRhYigpe2F3YWl0IHRoaXMuY3JlYXRlU2hlbGxUYWIoKX1oYW5kbGVUYWJDbG9zZShrLFMpe2suc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbG9zZVRhYihTKX1zd2l0Y2hUb1RhYihrKXtpZihrPT09dGhpcy5hY3RpdmVUYWJJZClyZXR1cm47bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtpZighUylyZXR1cm47bGV0IEk9dGhpcy5hY3RpdmVUYWJJZDt0aGlzLmFjdGl2ZVRhYklkJiZ0aGlzLmRldGFjaEFjdGl2ZVRlcm1pbmFsKCksdGhpcy5hY3RpdmVUYWJJZD1rLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMuYXR0YWNoVGVybWluYWxUb0NvbnRhaW5lcihTKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc3dpdGNoZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6ayxwcmV2aW91c1RhYklkOkl9fSkpfSl9ZGV0YWNoQWN0aXZlVGVybWluYWwoKXtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIik7ayYmKGsuaW5uZXJIVE1MPSIiKX1hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKGspe2xldCBTPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtTJiYodGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFMpLFMuaW5uZXJIVE1MPSIiLGsudGVybWluYWwub3BlbihTKSxrLmZpdEFkZG9uLmZpdCgpLGsudGVybWluYWwuZm9jdXMoKSl9aGFuZGxlUmVzaXplKCl7aWYodGhpcy5hY3RpdmVUYWJJZCl7bGV0IGs9dGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTtrJiZrLmZpdEFkZG9uLmZpdCgpfX1hc3luYyBzcGF3blByb2Nlc3NGb3JUYWIoayxTLEk9W10pe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXtrLnRlcm1pbmFsLndyaXRlKCJceDFCWzMxbSIpLGsudGVybWluYWwud3JpdGUoYFx1Mjc0QyBObyBleGVjdXRpb24gZW52aXJvbm1lbnQgYXZhaWxhYmxlLlxyCmApLGsudGVybWluYWwud3JpdGUoIlx4MUJbMG0iKTtyZXR1cm59dHJ5e3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fChrLnRlcm1pbmFsLndyaXRlKGBJbml0aWFsaXppbmcgZW52aXJvbm1lbnQuLi5ccgpgKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSk7bGV0IFA9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bihTLEkpO1Aub3V0cHV0LnBpcGVUbyhuZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOmkoSz0+e2sudGVybWluYWwud3JpdGUoSyl9LCJ3cml0ZSIpfSkpO2xldCBSPVAuaW5wdXQuZ2V0V3JpdGVyKCk7ay50ZXJtaW5hbC5vbkRhdGEoSz0+e1Iud3JpdGUoSyl9KSx0aGlzLnRhYk1hbmFnZXIuc2V0VGFiUHJvY2VzcyhrLmlkLFAsUiksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksUC5leGl0LnRoZW4oSz0+e3RoaXMuaGFuZGxlUHJvY2Vzc0V4aXQoay5pZCxLKX0pfWNhdGNoKFApe2sudGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksay50ZXJtaW5hbC53cml0ZShgXHUyNzRDIEZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiAke1B9XHIKYCksay50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpLGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiIsUCl9fWhhbmRsZVByb2Nlc3NFeGl0KGssUyl7bGV0IEk9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtpZighSSlyZXR1cm47dGhpcy50YWJNYW5hZ2VyLm1hcmtUYWJFeGl0ZWQoayxTKTtsZXQgUD1TPT09MD9gXHIKXHgxQlszMm1bUHJvY2VzcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XVx4MUJbMG1ccgpgOmBccgpceDFCWzMxbVtQcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJHtTfV1ceDFCWzBtXHIKYDtJLnRlcm1pbmFsLndyaXRlKFApLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInByb2Nlc3MtY29tcGxldGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6ayxleGl0Q29kZTpTfX0pKSxJLmNsb3NlYWJsZSYmdGhpcy5zaG93RXhpdGVkVGFiQWN0aW9uYmFyKGssSS5sYWJlbCxTKX1hc3luYyBzaG93RXhpdGVkVGFiQWN0aW9uYmFyKGssUyxJKXtsZXQgUD1JPT09MDsoYXdhaXQgdGhpcy5zaG93QWN0aW9uYmFyKHttZXNzYWdlOlA/YCIke1N9IiBjb21wbGV0ZWQuIENsb3NlIHRhYj9gOmAiJHtTfSIgZXhpdGVkIChjb2RlICR7SX0pLiBDbG9zZSB0YWI/YCx0eXBlOlA/ImluZm8iOiJ3YXJuaW5nIixpY29uOlA/Imx1Y2lkZTpjaGVja0NpcmNsZSI6Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6ImNsb3NlIixsYWJlbDoiQ2xvc2UgVGFiIixwcmltYXJ5OiEwfSx7aWQ6ImtlZXAiLGxhYmVsOiJLZWVwIE9wZW4ifV0sdGltZW91dDp7ZHVyYXRpb246MWU0LGRlZmF1bHRBY3Rpb25JZDoiY2xvc2UifSxkaXNtaXNzaWJsZTohMH0pKS5hY3Rpb25JZD09PSJjbG9zZSImJnRoaXMuY2xvc2VUYWIoayl9YXN5bmMgY3JlYXRlU2hlbGxUYWIoayl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOmt8fGBiYXNoICR7dGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCkrMX1gLGNsb3NlYWJsZTp0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKT4wfSx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5zd2l0Y2hUb1RhYihTLmlkKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IHRoaXMuc3Bhd25Qcm9jZXNzRm9yVGFiKFMsImpzaCIpLHRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPT09MSYmdGhpcy5zZXR1cENvbW1hbmQmJihhd2FpdCB0aGlzLndhaXRGb3JQcm9tcHQoUy50ZXJtaW5hbCwifi8iKSxTLmlucHV0V3JpdGVyJiZTLmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6Uy5pZH19KSksUy5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKGspe2xldCBTPXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoayx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksay5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKFMuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsay5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYihTLGsuY29tbWFuZCxrLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOlMuaWR9fSkpLFMuaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihrKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihrKT8odGhpcy5zd2l0Y2hUb1RhYihrKSwhMCk6ITF9Y2xvc2VUYWIoayl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtpZighU3x8IVMuY2xvc2VhYmxlKXJldHVybiExO2lmKGs9PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgST10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFA9SS5maW5kSW5kZXgoSz0+Sy5pZD09PWspLFI9SVtQKzFdfHxJW1AtMV07Uj90aGlzLnN3aXRjaFRvVGFiKFIuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKGspLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6a319KSksITB9d3JpdGVUb1RhYihrLFMpe2xldCBJPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoayk7cmV0dXJuIEk/KEkudGVybWluYWwud3JpdGUoUyksITApOiExfXNlbmRJbnB1dFRvVGFiKGssUyl7bGV0IEk9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtyZXR1cm4hSXx8IUkuaW5wdXRXcml0ZXI/ITE6KEkuaW5wdXRXcml0ZXIud3JpdGUoUyksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoayl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhrKX1hc3luYyB3YWl0Rm9yUHJvbXB0KGssUyl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgUD1pKCgpPT57bGV0IFI9ay5idWZmZXIuYWN0aXZlO2ZvcihsZXQgSz0wO0s8Ui5sZW5ndGg7SysrKXtsZXQgVj1SLmdldExpbmUoSyk7aWYoViYmVi50cmFuc2xhdGVUb1N0cmluZygpLmluY2x1ZGVzKFMpKXtzZXRUaW1lb3V0KCgpPT57SSgpfSwxMDApO3JldHVybn19c2V0VGltZW91dChQLDEwMCl9LCJjaGVja1Byb21wdCIpO1AoKX0pfWFzeW5jIHNldEVudmlyb25tZW50VmFyaWFibGVzKGspe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRocm93IG5ldyBFcnJvcigiTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IGF2YWlsYWJsZSIpO2xldCBTPSIiO2ZvcihsZXQgSSBpbiBrKVMrPWBleHBvcnQgJHtJfT0iJHtrW0ldfSIKYDthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSgiL3NvdXJjZS5lbnYiLFMpfWdldEV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9c3RhdGlje29sKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBDbHQsVGx0LG9TYSxuU2EsbFNhLGNTYSxkU2E9ZygoKT0+e3BlKCk7eXgoKTtvNCgpO0wxZSgpO1IxZSgpO04xZSgpO1dnKCk7SjFlKCk7Q2x0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxUbHQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG9TYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1kYXNoYm9hcmQiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdEYXNoYm9hcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtDbHQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CiAgICBgXTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoiZmFVc2VycyIsZGVzY3JpcHRpb246IisxNSUgZnJvbSBsYXN0IHdlZWsiLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJwYWdldmlld3MiLHRpdGxlOiJQYWdlIFZpZXdzIix2YWx1ZTo1NjcwMCx0eXBlOiJudW1iZXIiLGljb246ImZhRXllIixkZXNjcmlwdGlvbjoiNTYuN2sgdG90YWwgdmlld3MiLGNvbG9yOiIjM2I4MmY2In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZTo4OSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoiZmFTZXJ2ZXIiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjkwLGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UgVGltZSIsdmFsdWU6My4yLHVuaXQ6InMiLHR5cGU6Im51bWJlciIsaWNvbjoiZmFDbG9jayIsZGVzY3JpcHRpb246Ii0wLjVzIGltcHJvdmVtZW50Iixjb2xvcjoiI2Y1OWUwYiJ9LHtpZDoicmV2ZW51ZSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6NDg1MjAsdW5pdDoiJCIsdHlwZToidHJlbmQiLGljb246ImZhRG9sbGFyU2lnbiIsZGVzY3JpcHRpb246Iis4LjIlIGdyb3d0aCIsY29sb3I6IiMyMmM1NWUiLHRyZW5kRGF0YTpbMzVlMywzOGUzLDM3NTAwLDQxZTMsMzk4MDAsNDJlMyw0NDEwMCw0MzIwMCw0NTYwMCw0NzEwMCw0NjgwMCw0ODUyMF19LHtpZDoidHJhZmZpYyIsdGl0bGU6IlRyYWZmaWMgVHJlbmQiLHZhbHVlOjE2ODAsdHlwZToidHJlbmQiLGljb246ImZhQ2hhcnRMaW5lIixkZXNjcmlwdGlvbjoiTGFzdCA3IGRheXMiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzEyMDAsMTM1MCwxMTAwLDE0NTAsMTYwMCwxNTUwLDE2ODBdfV07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIHRvIHlvdXIgYXBwbGljYXRpb24gZGFzaGJvYXJkLiBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBtZXRyaWNzOjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke289Pntjb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixvLmRldGFpbCl9fQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgIDxoMiBzdHlsZT0ibWFyZ2luLXRvcDogNDBweDsiPlJlY2VudCBBY3Rpdml0eTwvaDI+CiAgICAgIDxwPkJlbG93IGlzIGEgbG9nIG9mIHJlY2VudCBzeXN0ZW0gZXZlbnRzIGFuZCB1c2VyIGFjdGl2aXR5IHRvIGRlbW9uc3RyYXRlIHNjcm9sbGFibGUgY29udGVudC48L3A+CgogICAgICAke1t7dGltZToiMiBtaW4gYWdvIixldmVudDoiVXNlciBqb2huQGV4YW1wbGUuY29tIGxvZ2dlZCBpbiBmcm9tIDE5Mi4xNjguMS40MiIsdHlwZToiaW5mbyJ9LHt0aW1lOiI1IG1pbiBhZ28iLGV2ZW50OiJEZXBsb3ltZW50IHYzLjUyLjEgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBvbiBwcm9kdWN0aW9uIix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjEyIG1pbiBhZ28iLGV2ZW50OiJEYXRhYmFzZSBiYWNrdXAgZmluaXNoZWQgXHUyMDE0IDIuNCBHQiBjb21wcmVzc2VkIix0eXBlOiJpbmZvIn0se3RpbWU6IjE4IG1pbiBhZ28iLGV2ZW50OiJTU0wgY2VydGlmaWNhdGUgcmVuZXdlZCBmb3IgYXBpLmV4YW1wbGUuY29tIChleHBpcmVzIDIwMjctMDQtMDMpIix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjI1IG1pbiBhZ28iLGV2ZW50OiJNZW1vcnkgdXNhZ2Ugc3Bpa2Ugb24gd29ya2VyLTAzICg5MiUpIFx1MjAxNCBhdXRvLXNjYWxlZCB0byA0IGluc3RhbmNlcyIsdHlwZToid2FybmluZyJ9LHt0aW1lOiIzMSBtaW4gYWdvIixldmVudDoiTmV3IHVzZXIgcmVnaXN0cmF0aW9uOiBzYXJhaEBjb21wYW55LmlvIix0eXBlOiJpbmZvIn0se3RpbWU6IjQ1IG1pbiBhZ28iLGV2ZW50OidTY2hlZHVsZWQgam9iICJjbGVhbnVwLXRlbXAtZmlsZXMiIGNvbXBsZXRlZCBcdTIwMTQgcmVtb3ZlZCAxLDI0NyBmaWxlcycsdHlwZToiaW5mbyJ9LHt0aW1lOiIxIGhvdXIgYWdvIixldmVudDoiQVBJIHJhdGUgbGltaXQgcmVhY2hlZCBmb3IgY2xpZW50IGFwcC1tb2JpbGUtaW9zICg0MjkgcmVzcG9uc2VzKSIsdHlwZToid2FybmluZyJ9LHt0aW1lOiIxLjUgaG91cnMgYWdvIixldmVudDoiQ0ROIGNhY2hlIHB1cmdlZCBmb3IgL2Fzc2V0cy8qIFx1MjAxNCAzNDAgb2JqZWN0cyBpbnZhbGlkYXRlZCIsdHlwZToiaW5mbyJ9LHt0aW1lOiIyIGhvdXJzIGFnbyIsZXZlbnQ6IkZhaWxlZCBsb2dpbiBhdHRlbXB0IGZvciBhZG1pbkBleGFtcGxlLmNvbSBmcm9tIDIwMy4wLjExMy41MCAoYmxvY2tlZCkiLHR5cGU6ImVycm9yIn0se3RpbWU6IjIuNSBob3VycyBhZ28iLGV2ZW50OiJXZWJob29rIGRlbGl2ZXJ5IHRvIGh0dHBzOi8vaG9va3Muc2xhY2suY29tIHN1Y2NlZWRlZCAoMjAwIE9LKSIsdHlwZToiaW5mbyJ9LHt0aW1lOiIzIGhvdXJzIGFnbyIsZXZlbnQ6J0Nyb24gam9iICJnZW5lcmF0ZS1yZXBvcnRzIiBzdGFydGVkIFx1MjAxNCBwcm9jZXNzaW5nIFExIDIwMjYgZGF0YScsdHlwZToiaW5mbyJ9LHt0aW1lOiIzLjUgaG91cnMgYWdvIixldmVudDoiTG9hZCBiYWxhbmNlciBoZWFsdGggY2hlY2s6IGFsbCA4IG5vZGVzIGhlYWx0aHkiLHR5cGU6InN1Y2Nlc3MifSx7dGltZToiNCBob3VycyBhZ28iLGV2ZW50OiJETlMgcHJvcGFnYXRpb24gY29tcGxldGUgZm9yIG5ldyBzdWJkb21haW4gc3RhZ2luZy5leGFtcGxlLmNvbSIsdHlwZToic3VjY2VzcyJ9XS5tYXAobz0+d2AKICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICI+CiAgICAgICAgICA8c3BhbiBzdHlsZT0iCiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1NSUpIiwiaHNsKDAgMCUgNDUlKSIpfTsKICAgICAgICAgICI+JHtvLnRpbWV9PC9zcGFuPgogICAgICAgICAgPHNwYW4gc3R5bGU9IgogICAgICAgICAgICBjb2xvcjogJHtvLnR5cGU9PT0iZXJyb3IiP2guYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSkiLCJoc2woMCA3MiUgNjUlKSIpOm8udHlwZT09PSJ3YXJuaW5nIj9oLmJkVGhlbWUoImhzbCgyNSA5NSUgNTAlKSIsImhzbCgyNSA5NSUgNjMlKSIpOm8udHlwZT09PSJzdWNjZXNzIj9oLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIik6aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICAgICI+JHtvLmV2ZW50fTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXN0YXRpY3tUbHQoYSx0KX19O3JldHVybiBuPWF9KSgpLG5TYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1hbmFseXRpY3MiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdBbmFseXRpY3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtDbHQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPkFuYWx5dGljczwvaDE+CiAgICAgIDxwPlRoaXMgaXMgdGhlIGFuYWx5dGljcyB2aWV3LiBZb3UgY2FuIGFkZCBjaGFydHMgYW5kIG1ldHJpY3MgaGVyZS48L3A+CiAgICBgfXN0YXRpY3tUbHQoYSx0KX19O3JldHVybiBuPWF9KSgpLGxTYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vVmlld1NldHRpbmdzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7Q2x0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICAgIC5ob3Jpem9udGFsLWZvcm0tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMWExYTFhIil9OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbjogMTVweCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+Q29uZmlndXJlIHlvdXIgYXBwbGljYXRpb24gc2V0dGluZ3MgYmVsb3c6PC9wPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkdlbmVyYWwgU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBwTmFtZSIgbGFiZWw9IkFwcGxpY2F0aW9uIE5hbWUiIHZhbHVlPSJNeSBBcHAiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwaUVuZHBvaW50IiBsYWJlbD0iQVBJIEVuZHBvaW50IiB2YWx1ZT0iaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJlbnZpcm9ubWVudCIKICAgICAgICAgICAgbGFiZWw9IkVudmlyb25tZW50IgogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJEZXZlbG9wbWVudCIsa2V5OiJkZXYifSx7b3B0aW9uOiJTdGFnaW5nIixrZXk6InN0YWdpbmcifSx7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVBbmFseXRpY3MiIGxhYmVsPSJFbmFibGUgQW5hbHl0aWNzIiB2YWx1ZT0iZmFsc2UiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNhdmUgR2VuZXJhbCBTZXR0aW5nczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+RGlzcGxheSBQcmVmZXJlbmNlczwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24iPgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij5RdWljayBkaXNwbGF5IHNldHRpbmdzIHVzaW5nIGhvcml6b250YWwgbGF5b3V0OjwvcD4KICAgICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJ0aGVtZSIKICAgICAgICAgICAgICBsYWJlbD0iVGhlbWUiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IixrZXk6ImxpZ2h0In0se29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn0se29wdGlvbjoiQXV0byIsa2V5OiJhdXRvIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkRhcmsiLGtleToiZGFyayJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0ibGFuZ3VhZ2UiCiAgICAgICAgICAgICAgbGFiZWw9Ikxhbmd1YWdlIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn0se29wdGlvbjoiR2VybWFuIixrZXk6ImRlIn0se29wdGlvbjoiU3BhbmlzaCIsa2V5OiJlcyJ9LHtvcHRpb246IkZyZW5jaCIsa2V5OiJmciJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iY29tcGFjdE1vZGUiIGxhYmVsPSJDb21wYWN0IE1vZGUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siUmVhbC10aW1lIiwiRGFpbHkgRGlnZXN0IiwiV2Vla2x5IFN1bW1hcnkiLCJOZXZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUmVhbC10aW1lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbEZyZXF1ZW5jeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InB1c2hOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIFB1c2ggTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0ic291bmRBbGVydHMiIGxhYmVsPSJQbGF5IFNvdW5kIGZvciBBbGVydHMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5VcGRhdGUgTm90aWZpY2F0aW9uczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tUbHQoYSx0KX19O3JldHVybiBuPWF9KSgpLGNTYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICB0ZXJtaW5hbFNldHVwQ29tbWFuZD0iZWNobyAnV2VsY29tZSB0byB0aGUgdGVybWluYWwhJyIKICAgICAgLmdsb2JhbE1lc3NhZ2VzPSR7W3tpZDoidXBkYXRlIix0eXBlOiJpbmZvIixtZXNzYWdlOiJBIG5ldyB2ZXJzaW9uICh2My41MC4wKSBpcyBhdmFpbGFibGUgd2l0aCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcy4iLGRpc21pc3NpYmxlOiEwLGFjdGlvbnM6W3tuYW1lOiJVcGRhdGUgTm93IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIlVwZGF0aW5nLi4uIiksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJPcGVuaW5nIHJlbGVhc2Ugbm90ZXMuLi4iKSwiYWN0aW9uIil9XX0se2lkOiJtYWludGVuYW5jZSIsdHlwZToid2FybmluZyIsbWVzc2FnZToiU2NoZWR1bGVkIG1haW50ZW5hbmNlIHdpbmRvdzogQXByaWwgNSwgMjAyNiAwMjowMFx1MjAxMzA2OjAwIFVUQy4gU29tZSBzZXJ2aWNlcyBtYXkgYmUgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuIixkaXNtaXNzaWJsZTohMH0se2lkOiJjcml0aWNhbCIsdHlwZToiZXJyb3IiLG1lc3NhZ2U6IllvdXIgU1NMIGNlcnRpZmljYXRlIGV4cGlyZXMgaW4gMyBkYXlzLiBSZW5ldyBub3cgdG8gYXZvaWQgc2VydmljZSBkaXNydXB0aW9uLiIsZGlzbWlzc2libGU6ITEsYWN0aW9uczpbe25hbWU6IlJlbmV3IENlcnRpZmljYXRlIixpY29uTmFtZToibHVjaWRlOnNoaWVsZENoZWNrIixhY3Rpb246aSgoKT0+YWxlcnQoIlJlbmV3aW5nIGNlcnRpZmljYXRlLi4uIiksImFjdGlvbiIpfV19XX0KICAgICAgLnZpZXdUYWJzPSR7W3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsZWxlbWVudDpvU2F9LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixlbGVtZW50Om5TYSxzdWJWaWV3czpbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixlbGVtZW50Om5TYX0se25hbWU6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGVsZW1lbnQ6b1NhfV19LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsc3ViVmlld3M6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGVsZW1lbnQ6bFNhfSx7bmFtZToiQmlsbGluZyIsaWNvbk5hbWU6Imx1Y2lkZTpjcmVkaXRDYXJkIixlbGVtZW50OmxTYX1dfV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7cz0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIscy5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGw3LHBjLGl0cyx1U2E9ZygoKT0+e2RTYSgpO3BlKCk7R2EoKTtodCgpO2w3PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxwYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0saXRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaW1wbGUtYXBwZGFzaCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2ltcGxlQXBwRGFzaCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCAkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W1koKV0sTj1bWSgpXSxsNyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im5hbWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5uYW1lLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubmFtZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksbDcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmlld1RhYnMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52aWV3VGFicywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZpZXdUYWJzPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSxsNyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsU2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0ZXJtaW5hbFNldHVwQ29tbWFuZCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnRlcm1pbmFsU2V0dXBDb21tYW5kLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudGVybWluYWxTZXR1cENvbW1hbmQ9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLGw3KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2xvYmFsTWVzc2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Imdsb2JhbE1lc3NhZ2VzImluIEUsImhhcyIpLGdldDppKEU9PkUuZ2xvYmFsTWVzc2FnZXMsImdldCIpLHNldDppKChFLEgpPT57RS5nbG9iYWxNZXNzYWdlcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksbDcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlbGVjdGVkVmlldyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlbGVjdGVkVmlldywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNlbGVjdGVkVmlldz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksbDcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfYWN0aXZlTWVzc2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Il9hY3RpdmVNZXNzYWdlcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLl9hY3RpdmVNZXNzYWdlcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLl9hY3RpdmVNZXNzYWdlcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksbDcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1jU2E7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT1wYyh0aGlzLG8sIkFwcGxpY2F0aW9uIERhc2hib2FyZCIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoJCl7dGhpcy4jZT0kfSN0PShwYyh0aGlzLGwpLHBjKHRoaXMsZCxbXSkpO2dldCB2aWV3VGFicygpe3JldHVybiB0aGlzLiN0fXNldCB2aWV3VGFicygkKXt0aGlzLiN0PSR9I2E9KHBjKHRoaXMsdSkscGModGhpcyxiLCdlY2hvICJUZXJtaW5hbCByZWFkeSInKSk7Z2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCQpe3RoaXMuI2E9JH0jcz0ocGModGhpcyx2KSxwYyh0aGlzLG0sW10pKTtnZXQgZ2xvYmFsTWVzc2FnZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgZ2xvYmFsTWVzc2FnZXMoJCl7dGhpcy4jcz0kfSNpPShwYyh0aGlzLGYpLHBjKHRoaXMsTSx2b2lkIDApKTtnZXQgc2VsZWN0ZWRWaWV3KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkVmlldygkKXt0aGlzLiNpPSR9I3I9KHBjKHRoaXMseikscGModGhpcyxDLFtdKSk7Z2V0IF9hY3RpdmVNZXNzYWdlcygpe3JldHVybiB0aGlzLiNyfXNldCBfYWN0aXZlTWVzc2FnZXMoJCl7dGhpcy4jcj0kfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmFwcGJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgbWluLWNvbnRlbnQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSIsIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24td3JhcHBlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYXBwTmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI2MjYyNiIsIiNlNWU1ZTUiKX07CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgc3BhbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiIC5jaGV2cm9uIHsKICAgICAgICBmbGV4OiAwIDAgYXV0bzsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzOmhvdmVyIC5jaGV2cm9uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzLmdyb3VwQWN0aXZlIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjoKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93cyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLXRvcCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLWJvdHRvbSAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuc3ViVmlld3MuZXhwYW5kZWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3czo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cy5leHBhbmRlZDo6YmVmb3JlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc3ViVmlld3MtaW5uZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc3ViIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIuc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTEycHg7CiAgICAgIH0KCiAgICAgIC5hcHBBY3Rpb25zIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDYwJSAvIDAuMDgpIiwiaHNsKDAgODQlIDYwJSAvIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NCUgNDUlKSIsImhzbCgwIDg0JSA2NSUpIil9OwogICAgICB9CgogICAgICAuYXBwY29udGVudCB7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIGJvdHRvbTogMjRweDsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjQwcHgpOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuYXBwY29udGVudDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gYm90dG9tLAogICAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC04cHg7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gdG9wLAogICAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgei1pbmRleDogMTE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwoKICAgICAgfQoKICAgICAgLmNvbnRyb2w6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuY29udHJvbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY29udHJvbC5zdGF0dXMtdGVybWluYWwgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogR2xvYmFsIE1lc3NhZ2UgQmFubmVycyAqLwogICAgICAubWVzc2FnZUJhbm5lckFyZWEgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlRG93biAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci5kaXNtaXNzaW5nIHsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlVXAgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGJhbm5lclNsaWRlRG93biB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgYmFubmVyU2xpZGVVcCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTUpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMTgpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3MgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGluZm8gKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NyUpIiwiaHNsKDIxMCA1MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgNzAlIDMwJSkiLCJoc2woMjEwIDcwJSA4MCUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzAwODRmZjsKICAgICAgfQogICAgICAubWVzc2FnZUJhbm5lci1pbmZvIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDg0ZmY7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogc3VjY2VzcyAqLwogICAgICAubWVzc2FnZUJhbm5lci1zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTclKSIsImhzbCgxNDIgMzAlIDEwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDUwJSAyNSUpIiwiaHNsKDE0MiA1MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMyMmM1NWU7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItc3VjY2VzcyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IHdhcm5pbmcgKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MCUgOTclKSIsImhzbCgzOCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA2MCUgMjUlKSIsImhzbCgzOCA2MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmNTllMGI7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGVycm9yICovCiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDk3JSkiLCJoc2woMCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDYwJSAzMCUpIiwiaHNsKDAgNjAlIDgwJSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZWY0NDQ0OwogICAgICB9CiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50IHsKICAgICAgICB0b3A6IHZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHggLSB2YXIoLS1iYW5uZXItYXJlYS1oZWlnaHQsIDBweCkpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWljb24td3JhcHBlciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmxheW91dEdyaWQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBOYW1lIj4ke3RoaXMubmFtZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TmF2aWdhdGlvbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3VGFicyI+CiAgICAgICAgICAgICAgJHt0aGlzLnZpZXdUYWJzLm1hcCgkPT57bGV0IEU9ISEkLnN1YlZpZXdzPy5sZW5ndGgsSD1FJiZ0aGlzLmlzR3JvdXBBY3RpdmUoJCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiAke3RoaXMuc2VsZWN0ZWRWaWV3PT09JD8ic2VsZWN0ZWQiOiIifSAke0U/Imhhc1N1YnMiOiIifSAke0g/Imdyb3VwQWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubG9hZFZpZXcoJCl9CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAkeyQuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7JC5pY29uTmFtZS5pbmNsdWRlcygiOiIpPyQuaWNvbk5hbWU6YGx1Y2lkZTokeyQuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpmaWxlIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHskLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICR7RT93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgJHtFP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InN1YlZpZXdzICR7SD8iZXhwYW5kZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID9pbmVydD0keyFIfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YlZpZXdzLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgJHskLnN1YlZpZXdzLm1hcChrPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiBzdWIgJHt0aGlzLnNlbGVjdGVkVmlldz09PWs/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke1M9PntTLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubG9hZFZpZXcoayl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2suaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke2suaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9rLmljb25OYW1lOmBsdWNpZGU6JHtrLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpkb3QifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7ay5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBBY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ291dCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bG9nT3V0In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPlNpZ24gb3V0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5fYWN0aXZlTWVzc2FnZXMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlQmFubmVyQXJlYSI+CiAgICAgICAgICAke3RoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcCgkPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2VCYW5uZXIgbWVzc2FnZUJhbm5lci0keyQudHlwZX0iCiAgICAgICAgICAgICAgZGF0YS1tZXNzYWdlLWlkPSIkeyQuaWR9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmdldE1lc3NhZ2VJY29uKCQpfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2VCYW5uZXItdGV4dCI+JHskLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICR7JC5hY3Rpb25zPy5sZW5ndGg/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7JC5hY3Rpb25zLm1hcChFPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9uIiBAY2xpY2s9JHsoKT0+RS5hY3Rpb24oKX0+CiAgICAgICAgICAgICAgICAgICAgICAke0UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke0UuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9FLmljb25OYW1lOmBsdWNpZGU6JHtFLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtFLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHskLmRpc21pc3NpYmxlIT09ITE/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItZGlzbWlzcyIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTWVzc2FnZSgkLmlkKX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp4In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBjb250ZW50Ij4KICAgICAgICAgIDwhLS0gQ29udGVudCBnb2VzIGhlcmUgLS0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy1jb25uZWN0ZWQiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6d2lmaSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+Q29ubmVjdGVkPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy10ZXJtaW5hbCIgQGNsaWNrPSR7dGhpcy5sYXVuY2hUZXJtaW5hbH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp0ZXJtaW5hbCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+VGVybWluYWw8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgkKXtsZXQgRT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtpZihzdXBlci5maXJzdFVwZGF0ZWQoJCksdGhpcy52aWV3VGFicyYmdGhpcy52aWV3VGFicy5sZW5ndGg+MCl7bGV0IEg9dGhpcy5zZWxlY3RlZFZpZXd8fHRoaXMudmlld1RhYnNbMF07YXdhaXQgdGhpcy5sb2FkVmlldyhIKX19d2lsbFVwZGF0ZSgkKXtpZigkLmhhcygiZ2xvYmFsTWVzc2FnZXMiKSl7bGV0IEU9bmV3IFNldCh0aGlzLmdsb2JhbE1lc3NhZ2VzLm1hcChSPT5SLmlkKSksSD1uZXcgU2V0KHRoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcChSPT5SLmlkKSksaz10aGlzLmdsb2JhbE1lc3NhZ2VzLmZpbHRlcihSPT4hSC5oYXMoUi5pZCkpLFM9JC5nZXQoImdsb2JhbE1lc3NhZ2VzIil8fFtdLEk9bmV3IFNldChTLm1hcChSPT5SLmlkKSksUD1uZXcgU2V0KFsuLi5JXS5maWx0ZXIoUj0+IUUuaGFzKFIpKSk7dGhpcy5fYWN0aXZlTWVzc2FnZXM9Wy4uLnRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihSPT4hUC5oYXMoUi5pZCkpLC4uLmtdfX11cGRhdGVkKCQpe3N1cGVyLnVwZGF0ZWQoJCksdGhpcy51cGRhdGVCYW5uZXJPZmZzZXQoKX11cGRhdGVCYW5uZXJPZmZzZXQoKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tZXNzYWdlQmFubmVyQXJlYSIpLEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLEg9JD8kLm9mZnNldEhlaWdodDowO0U/LnN0eWxlLnNldFByb3BlcnR5KCItLWJhbm5lci1hcmVhLWhlaWdodCIsYCR7SH1weGApfSl9Z2V0TWVzc2FnZUljb24oJCl7cmV0dXJuICQuaWNvbj8kLmljb246e2luZm86Imx1Y2lkZTppbmZvIixzdWNjZXNzOiJsdWNpZGU6Y2lyY2xlQ2hlY2siLHdhcm5pbmc6Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0IixlcnJvcjoibHVjaWRlOmNpcmNsZVgifVskLnR5cGVdfWFkZE1lc3NhZ2UoJCl7bGV0IEU9JC5pZHx8YG1zZy0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YCxIPXtkaXNtaXNzaWJsZTohMCwuLi4kLGlkOkV9O3JldHVybiB0aGlzLl9hY3RpdmVNZXNzYWdlcz1bLi4udGhpcy5fYWN0aXZlTWVzc2FnZXMsSF0sRX1yZW1vdmVNZXNzYWdlKCQpe2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtbWVzc2FnZS1pZD0iJHskfSJdYCk7RT8oRS5jbGFzc0xpc3QuYWRkKCJkaXNtaXNzaW5nIiksRS5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLCgpPT57dGhpcy5fYWN0aXZlTWVzc2FnZXM9dGhpcy5fYWN0aXZlTWVzc2FnZXMuZmlsdGVyKEg9PkguaWQhPT0kKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZXNzYWdlLWRpc21pc3MiLHtkZXRhaWw6e2lkOiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LHtvbmNlOiEwfSkpOnRoaXMuX2FjdGl2ZU1lc3NhZ2VzPXRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihIPT5ILmlkIT09JCl9Y2xlYXJNZXNzYWdlcygpe3RoaXMuX2FjdGl2ZU1lc3NhZ2VzPVtdfWN1cnJlbnRUZXJtaW5hbD0ocGModGhpcyxfKSxudWxsKTthc3luYyBsYXVuY2hUZXJtaW5hbCgpe2xldCAkPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHRoaXMuY3VycmVudFRlcm1pbmFsKXthd2FpdCB0aGlzLmNsb3NlVGVybWluYWwoKTtyZXR1cm59bGV0IEU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDpIfT1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odUooKSxyU2EpKSxrPW5ldyBIO3JldHVybiBrLnNldHVwQ29tbWFuZD10aGlzLnRlcm1pbmFsU2V0dXBDb21tYW5kLHRoaXMuY3VycmVudFRlcm1pbmFsPWssRS5hcHBlbmRDaGlsZChrKSxrLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsay5zdHlsZS56SW5kZXg9IjEwIixrLnN0eWxlLnRvcD0idmFyKC0tYmFubmVyLWFyZWEtaGVpZ2h0LCAwcHgpIixrLnN0eWxlLmxlZnQ9IjI0MHB4IixrLnN0eWxlLnJpZ2h0PSIwcHgiLGsuc3R5bGUuaGVpZ2h0PSJhdXRvIixrLnN0eWxlLmJvdHRvbT0iMjRweCIsay5zdHlsZS5vcGFjaXR5PSIwIixrLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixrLnN0eWxlLnRyYW5zaXRpb249ImFsbCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIixrLnN0eWxlLmJveFNoYWRvdz0iMCAyNXB4IDUwcHggLTEycHggcmdiKDAgMCAwIC8gMC41KSwgMCAwIDAgMXB4IHJnYigyNTUgMjU1IDI1NSAvIDAuMDUpIixrLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+dGhpcy5jbG9zZVRlcm1pbmFsKCkpLGF3YWl0ICQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxrLnN0eWxlLm9wYWNpdHk9IjEiLGsuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIHNjYWxlKDEpIixrfWFzeW5jIGNsb3NlVGVybWluYWwoKXtsZXQgJD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmN1cnJlbnRUZXJtaW5hbCYmKHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixhd2FpdCAkLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLmN1cnJlbnRUZXJtaW5hbC5yZW1vdmUoKSx0aGlzLmN1cnJlbnRUZXJtaW5hbD1udWxsKX1pc0dyb3VwQWN0aXZlKCQpe3JldHVybiB0aGlzLnNlbGVjdGVkVmlldz09PSQ/ITA6JC5zdWJWaWV3cz8uc29tZShFPT5FPT09dGhpcy5zZWxlY3RlZFZpZXcpPz8hMX1jdXJyZW50Vmlldzthc3luYyBsb2FkVmlldygkKXtpZighJC5lbGVtZW50JiYkLnN1YlZpZXdzPy5sZW5ndGgpe2xldCBrPSQuc3ViVmlld3MuZmluZChTPT5TLmVsZW1lbnQpO3JldHVybiBrP3RoaXMubG9hZFZpZXcoayk6dm9pZCAwfWlmKCEkLmVsZW1lbnQpcmV0dXJuO2xldCBFPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYXBwY29udGVudCIpLEg9bmV3ICQuZWxlbWVudDt0aGlzLmN1cnJlbnRWaWV3JiZ0aGlzLmN1cnJlbnRWaWV3LnJlbW92ZSgpLEUuYXBwZW5kQ2hpbGQoSCksdGhpcy5jdXJyZW50Vmlldz1ILHRoaXMuc2VsZWN0ZWRWaWV3PSQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1zZWxlY3QiLHtkZXRhaWw6e3ZpZXc6JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7cGMoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIHBTYT1nKCgpPT57dVNhKCl9KTt2YXIgaFNhLGZTYT1nKCgpPT57cGUoKTtoU2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1zaW1wbGUtbG9naW4gCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICBAbG9naW49JHtzPT57Y29uc29sZS5sb2coIkxvZ2luIGV2ZW50IHJlY2VpdmVkOiIscy5kZXRhaWwpO2xldCBlPXMuZGV0YWlsPy5kYXRhfHxzLmRldGFpbDtlPy51c2VybmFtZSYmZT8ucGFzc3dvcmQ/YWxlcnQoYExvZ2luIGF0dGVtcHRlZCB3aXRoOgpVc2VybmFtZTogJHtlLnVzZXJuYW1lfQpQYXNzd29yZDogJHtlLnBhc3N3b3JkfWApOmNvbnNvbGUuZXJyb3IoIkludmFsaWQgbG9naW4gZGF0YSBzdHJ1Y3R1cmU6IixzLmRldGFpbCl9fQogICAgPgogICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICA8aDE+V2VsY29tZSE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgdGhlIHNsb3R0ZWQgY29udGVudCB0aGF0IGFwcGVhcnMgYWZ0ZXIgbG9naW4uPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgbVNhLCRsdCxydHMsZ1NhPWcoKCk9PntmU2EoKTtwZSgpO2h0KCk7bXIoKTttU2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LCRsdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scnRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaW1wbGUtbG9naW4iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NpbXBsZUxvZ2luIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxtU2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJuYW1lImluIHUsImhhcyIpLGdldDppKHU9PnUubmFtZSwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1Lm5hbWU9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLG1TYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWhTYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPSRsdCh0aGlzLG8sIkFwcGxpY2F0aW9uIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubG9naW5Db250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5zbG90Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5sb2dpbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAubG9naW4taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnN1YmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6OnBhcnQoY29udGVudCkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWZvcm0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgZGVlcy1mb3JtLXN1Ym1pdCB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW5Db250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+U2lnbiBpbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJoZWFkZXIiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7IkNyZWRlbnRpYWxzIn0+CiAgICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InVzZXJuYW1lIiBsYWJlbD0iVXNlcm5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IlBhc3N3b3JkIiBpc1Bhc3N3b3JkQm9vbCByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TaWduIGluPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRhaW5lciI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKGQpe3N1cGVyLmZpcnN0VXBkYXRlZChkKTtsZXQgdT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7dSYmdS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGM9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2dpbiIse2RldGFpbDpjLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSkpfWFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKXtsZXQgZD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW4iKSxjPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW5Db250YWluZXIiKSxiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2xvdENvbnRhaW5lciIpO3Uuc3R5bGUub3BhY2l0eT0iMCIsdS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGMuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGF3YWl0IGQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGIuc3R5bGUub3BhY2l0eT0iMSIsYi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMHB4KSIsYXdhaXQgZC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksYi5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSwkbHQodGhpcyxsKX1zdGF0aWN7JGx0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBiU2E9ZygoKT0+e2dTYSgpfSk7dmFyIHZTYT1nKCgpPT57c1NhKCk7cFNhKCk7YlNhKCl9KTt2YXIgeFNhPWcoKCk9PntHYSgpfSk7dmFyIHlTYSx3U2E9ZygoKT0+e3BlKCk7eVNhPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vV3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIAogICAgICAgIGJhY2tncm91bmQ6ICM4ODg4ODg7CiAgICAgIH0KICAgICAgLmxvZ3MgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgd2lkdGg6IDYwMHB4OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgLmxvZ3MgZGl2IHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgICA8ZGVlcy1zZWFyY2hiYXIKICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtpKHQ9PntsZXQgcj10LnRhcmdldC5jbG9zZXN0KCIuZGVtb1dyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiI2NoYW5nZWQiKTtyJiYoci50ZXh0Q29udGVudD1gc2VhcmNoLWNoYW5nZWQ6ICR7dC5kZXRhaWwudmFsdWV9YCl9LCJvbkNoYW5nZWQiKX0KICAgICAgICBAc2VhcmNoLXN1Ym1pdD0ke2kodD0+e2xldCByPXQudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjc3VibWl0dGVkIik7ciYmKHIudGV4dENvbnRlbnQ9YHNlYXJjaC1zdWJtaXQ6ICR7dC5kZXRhaWwudmFsdWV9YCl9LCJvblN1Ym1pdCIpfQogICAgICA+PC9kZWVzLXNlYXJjaGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibG9ncyI+CiAgICAgICAgPGRpdiBpZD0iY2hhbmdlZCI+c2VhcmNoLWNoYW5nZWQ6PC9kaXY+CiAgICAgICAgPGRpdiBpZD0ic3VibWl0dGVkIj5zZWFyY2gtc3VibWl0OjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsImRlbW9GdW5jIil9KTt2YXIga1NhLERsdCxvdHMsU1NhPWcoKCk9PntwZSgpO3cyKCk7d1NhKCk7aHQoKTtrU2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LERsdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sb3RzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zZWFyY2hiYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NlYXJjaGJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0sa1NhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZmlsdGVycyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmZpbHRlcnMsImdldCIpLHNldDppKCh1LGMpPT57dS5maWx0ZXJzPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxrU2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz15U2E7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZShyNC5ibHVlLGk0LmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKHI0LmJsdWVBY3RpdmUsaTQuYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9RGx0KHRoaXMsbyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhkKXt0aGlzLiNlPWR9c2VhcmNoSW5wdXQ9RGx0KHRoaXMsbCk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDp3YGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntkLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje0RsdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgX1NhPWcoKCk9PntTU2EoKX0pO3ZhciBNU2EselNhPWcoKCk9PntwZSgpO01TYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICB9CgogICAgLnRva2VuLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgIGdhcDogMTZweDsKICAgIH0KCiAgICAudG9rZW4taXRlbSB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQoKICAgIC50b2tlbi1uYW1lIHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CgogICAgLnRva2VuLXZhbHVlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zcGFjaW5nLWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNwYWNpbmctYm94IHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnJhZGl1cy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnJhZGl1cy1ib3ggewogICAgICB3aWR0aDogNjBweDsKICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAuc2hhZG93LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc2hhZG93LWJveCB7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICB9CgogICAgLmhlaWdodC1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuaGVpZ2h0LWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgd2lkdGg6IDEyMHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXRoZW1lPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TcGFjaW5nIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc3BhY2luZy14cyB0aHJvdWdoIC0tZGVlcy1zcGFjaW5nLTN4bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eHMgKDRweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctc20pOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnNtICg4cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZCAoMTJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPmxnICgxNnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eGwgKDI0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjJ4bCAoMzJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+M3hsICg0OHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9yZGVyIFJhZGl1cyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXJhZGl1cy14cyB0aHJvdWdoIC0tZGVlcy1yYWRpdXMtZnVsbAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7Ij54czwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4ycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjRweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj44cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjEycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOyI+ZnVsbDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj45OTlweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2hhZG93IEVsZXZhdGlvbiBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNoYWRvdy14cyB0aHJvdWdoIC0tZGVlcy1zaGFkb3ctbGcKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3cteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWluaW1hbDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+c3VidGxlPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZWRpdW08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnByb21pbmVudDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29udHJvbCBIZWlnaHQgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSB0aHJvdWdoIC0tZGVlcy1jb250cm9sLWhlaWdodC14bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MzJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjM2cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40MHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQteGwpOyI+eGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDhweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHJhbnNpdGlvbiBEdXJhdGlvbnM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy10cmFuc2l0aW9uLWZhc3QgdGhyb3VnaCAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXIKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1mYXN0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjFzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjE1czwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvdzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4yczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjNzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtdGhlbWU+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgRXgsTzIsbnRzLENTYT1nKCgpPT57cGUoKTtodCgpO3pTYSgpO0V4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxPMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbnRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aGVtZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGhlbWUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtMKHt0eXBlOk9iamVjdH0pXSx5PVtMKHt0eXBlOk9iamVjdH0pXSxFeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNwYWNpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVNwYWNpbmciaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jdXN0b21TcGFjaW5nLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY3VzdG9tU3BhY2luZz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksRXgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21SYWRpdXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVJhZGl1cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmN1c3RvbVJhZGl1cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbVJhZGl1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksRXgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21TaGFkb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjdXN0b21TaGFkb3dzImluIF8sImhhcyIpLGdldDppKF89Pl8uY3VzdG9tU2hhZG93cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbVNoYWRvd3M9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLEV4KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tVHJhbnNpdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVRyYW5zaXRpb25zImluIF8sImhhcyIpLGdldDppKF89Pl8uY3VzdG9tVHJhbnNpdGlvbnMsImdldCIpLHNldDppKChfLE8pPT57Xy5jdXN0b21UcmFuc2l0aW9ucz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksRXgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21Db250cm9sSGVpZ2h0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jdXN0b21Db250cm9sSGVpZ2h0cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbUNvbnRyb2xIZWlnaHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxFeChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPU1TYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1PMih0aGlzLG8sbnVsbCk7Z2V0IGN1c3RvbVNwYWNpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VzdG9tU3BhY2luZyhDKXt0aGlzLiNlPUN9I3Q9KE8yKHRoaXMsbCksTzIodGhpcyxkLG51bGwpKTtnZXQgY3VzdG9tUmFkaXVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1c3RvbVJhZGl1cyhDKXt0aGlzLiN0PUN9I2E9KE8yKHRoaXMsdSksTzIodGhpcyxiLG51bGwpKTtnZXQgY3VzdG9tU2hhZG93cygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21TaGFkb3dzKEMpe3RoaXMuI2E9Q30jcz0oTzIodGhpcyx2KSxPMih0aGlzLG0sbnVsbCkpO2dldCBjdXN0b21UcmFuc2l0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBjdXN0b21UcmFuc2l0aW9ucyhDKXt0aGlzLiNzPUN9I2k9KE8yKHRoaXMsZiksTzIodGhpcyxNLG51bGwpKTtnZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgJHt0aGlzLmdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9Z2VuZXJhdGVDdXN0b21TdHlsZXMoKXtsZXQgQz1bIjpob3N0IHsiXTtpZih0aGlzLmN1c3RvbVNwYWNpbmcpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TcGFjaW5nKSlPJiZDLnB1c2goYCAgLS1kZWVzLXNwYWNpbmctJHtffTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVJhZGl1cylmb3IobGV0W18sT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVJhZGl1cykpTyYmQy5wdXNoKGAgIC0tZGVlcy1yYWRpdXMtJHtffTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVNoYWRvd3MpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TaGFkb3dzKSlPJiZDLnB1c2goYCAgLS1kZWVzLXNoYWRvdy0ke199OiAke099O2ApO2lmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpe2ZvcihsZXRbXyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpKWlmKE8pe2xldCAkPV89PT0iZGVmYXVsdCI/ImRlZmF1bHQiOl87Qy5wdXNoKGAgIC0tZGVlcy10cmFuc2l0aW9uLSR7JH06ICR7T307YCl9fWlmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cykpTyYmQy5wdXNoKGAgIC0tZGVlcy1jb250cm9sLWhlaWdodC0ke199OiAke099O2ApO3JldHVybiBDLnB1c2goIn0iKSxDLmpvaW4oYApgKX1zZXRTcGFjaW5nKEMsXyl7dGhpcy5jdXN0b21TcGFjaW5nPXsuLi50aGlzLmN1c3RvbVNwYWNpbmcsW0NdOl99fXNldFJhZGl1cyhDLF8pe3RoaXMuY3VzdG9tUmFkaXVzPXsuLi50aGlzLmN1c3RvbVJhZGl1cyxbQ106X319c2V0U2hhZG93KEMsXyl7dGhpcy5jdXN0b21TaGFkb3dzPXsuLi50aGlzLmN1c3RvbVNoYWRvd3MsW0NdOl99fXNldFRyYW5zaXRpb24oQyxfKXt0aGlzLmN1c3RvbVRyYW5zaXRpb25zPXsuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zLFtDXTpffX1zZXRDb250cm9sSGVpZ2h0KEMsXyl7dGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz17Li4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cyxbQ106X319Z2V0VGhlbWUoKXtyZXR1cm57Y29sb3JzOlhjLmNvbG9ycyxzcGFjaW5nOnsuLi5YYy5zcGFjaW5nLC4uLnRoaXMuY3VzdG9tU3BhY2luZ30scmFkaXVzOnsuLi5YYy5yYWRpdXMsLi4udGhpcy5jdXN0b21SYWRpdXN9LHNoYWRvd3M6ey4uLlhjLnNoYWRvd3MsLi4udGhpcy5jdXN0b21TaGFkb3dzfSx0cmFuc2l0aW9uczp7Li4uWGMudHJhbnNpdGlvbnMsLi4udGhpcy5jdXN0b21UcmFuc2l0aW9uc30sY29udHJvbEhlaWdodHM6ey4uLlhjLmNvbnRyb2xIZWlnaHRzLC4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHN9fX1yZXNldFRvRGVmYXVsdHMoKXt0aGlzLmN1c3RvbVNwYWNpbmc9bnVsbCx0aGlzLmN1c3RvbVJhZGl1cz1udWxsLHRoaXMuY3VzdG9tU2hhZG93cz1udWxsLHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9bnVsbCx0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPW51bGx9YXBwbHlUaGVtZShDKXtDLnNwYWNpbmcmJih0aGlzLmN1c3RvbVNwYWNpbmc9Qy5zcGFjaW5nKSxDLnJhZGl1cyYmKHRoaXMuY3VzdG9tUmFkaXVzPUMucmFkaXVzKSxDLnNoYWRvd3MmJih0aGlzLmN1c3RvbVNoYWRvd3M9Qy5zaGFkb3dzKSxDLnRyYW5zaXRpb25zJiYodGhpcy5jdXN0b21UcmFuc2l0aW9ucz1DLnRyYW5zaXRpb25zKSxDLmNvbnRyb2xIZWlnaHRzJiYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz1DLmNvbnRyb2xIZWlnaHRzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTzIodGhpcyx6KX1zdGF0aWN7TzIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIFRTYT1nKCgpPT57Q1NhKCl9KTt2YXIgJFNhLERTYSxMU2E9ZygoKT0+e3BlKCk7RWx0KCk7JFNhPWkoYXN5bmMgcz0+e2F3YWl0IG5ldyBQcm9taXNlKGU9Pnt3aW5kb3cuc2V0VGltZW91dCgoKT0+ZSgpLHMpfSl9LCJ3YWl0Rm9yRGVtb1N0ZXAiKSxEU2E9aSgoKT0+e2xldCBzPSExO3JldHVybiB3YAogICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiAxNnB4OyBwbGFjZS1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAzMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgbWF4LXdpZHRoOiA1NDBweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgTGF1bmNoZXMgdGhlIHVwZGF0ZXIgYXMgYSBzdGVwcGVyIGZsb3cuIFRoZSBmaXJzdCBzdGVwIHN0cmVhbXMgdGVybWluYWwtc3R5bGUKICAgICAgICBwcm9ncmVzcyB1cGRhdGVzIGFuZCB0aGVuIG1vdmVzIGF1dG9tYXRpY2FsbHkgdG8gdGhlIHJlYWR5IHN0ZXAuCiAgICAgIDwvcD4KICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2lmKCFzKXtzPSEwO3RyeXtsZXQgZT1hd2FpdCBMbHQuY3JlYXRlQW5kU2hvdyh7Y3VycmVudFZlcnNpb246IjMuNzkuMCIsdXBkYXRlZFZlcnNpb246IjMuODAuMCIsbW9yZUluZm9Vcmw6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9kZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsY2hhbmdlbG9nVXJsOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvLS9ibG9iL21haW4vY2hhbmdlbG9nLm1kIixzdWNjZXNzQWN0aW9uOiJjbG9zZSIsc3VjY2Vzc0RlbGF5TXM6MWU0fSksdD1be2xpbmU6IkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QiLHBlcmNlbnRhZ2U6MTIsZGVsYXk6NTUwfSx7bGluZToiRG93bmxvYWRpbmcgc2lnbmVkIGJ1bmRsZSIscGVyY2VudGFnZTozMyxkZWxheTo3MDB9LHtsaW5lOiJWZXJpZnlpbmcgY2hlY2tzdW0iLHBlcmNlbnRhZ2U6NTEsZGVsYXk6NjUwfSx7bGluZToiQXBwbHlpbmcgdXBkYXRlIGZpbGVzIixwZXJjZW50YWdlOjc0LGRlbGF5OjgwMH0se2xpbmU6IkNsZWFuaW5nIHVwIHByZXZpb3VzIHJlbGVhc2UiLHBlcmNlbnRhZ2U6OTEsZGVsYXk6NjAwfV07ZS51cGRhdGVQcm9ncmVzcyh7c3RhdHVzVGV4dDoiQ2hlY2tpbmcgcmVsZWFzZSBtYW5pZmVzdC4uLiIsdGVybWluYWxMaW5lczpbIkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QiXSxwZXJjZW50YWdlOjEyLGluZGV0ZXJtaW5hdGU6ITB9KTtmb3IobGV0W2Escl1vZiB0LmVudHJpZXMoKSlhPjAmJihlLmFwcGVuZFByb2dyZXNzTGluZShyLmxpbmUpLGUudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6ci5wZXJjZW50YWdlLHN0YXR1c1RleHQ6YCR7ci5saW5lfS4uLmB9KSksYXdhaXQgJFNhKHIuZGVsYXkpO2F3YWl0IGUubWFya1VwZGF0ZVJlYWR5KCksYXdhaXQgJFNhKDEwNTAwKX1maW5hbGx5e3M9ITF9fX19CiAgICAgID5TaG93IHVwZGF0ZXIgZmxvdzwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBNNCxubCxMbHQsRWx0PWcoKCk9PntwZSgpO0xTYSgpO28yZSgpO0VyKCk7TTQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LG5sPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxMbHQ9KCgpPT57bGV0IHM9W25lKCJkZWVzLXVwZGF0ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1VwZGF0ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxOPVtMKHt0eXBlOk51bWJlcn0pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxNNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXJyZW50VmVyc2lvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmN1cnJlbnRWZXJzaW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3VycmVudFZlcnNpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLE00KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBkYXRlZFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InVwZGF0ZWRWZXJzaW9uImluIFMsImhhcyIpLGdldDppKFM9PlMudXBkYXRlZFZlcnNpb24sImdldCIpLHNldDppKChTLEkpPT57Uy51cGRhdGVkVmVyc2lvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksTTQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3JlSW5mb1VybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibW9yZUluZm9VcmwiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5tb3JlSW5mb1VybCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm1vcmVJbmZvVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxNNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYW5nZWxvZ1VybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY2hhbmdlbG9nVXJsImluIFMsImhhcyIpLGdldDppKFM9PlMuY2hhbmdlbG9nVXJsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY2hhbmdlbG9nVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxNNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NBY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN1Y2Nlc3NBY3Rpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdWNjZXNzQWN0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3VjY2Vzc0FjdGlvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksTTQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWNjZXNzRGVsYXlNcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3VjY2Vzc0RlbGF5TXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdWNjZXNzRGVsYXlNcywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnN1Y2Nlc3NEZWxheU1zPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxNNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NBY3Rpb25MYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3VjY2Vzc0FjdGlvbkxhYmVsImluIFMsImhhcyIpLGdldDppKFM9PlMuc3VjY2Vzc0FjdGlvbkxhYmVsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3VjY2Vzc0FjdGlvbkxhYmVsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxNNChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPURTYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhrPXt9KXtsZXQgUz1uZXcgSDtyZXR1cm4gUy5jdXJyZW50VmVyc2lvbj1rLmN1cnJlbnRWZXJzaW9uPz8iIixTLnVwZGF0ZWRWZXJzaW9uPWsudXBkYXRlZFZlcnNpb24/PyIiLFMubW9yZUluZm9Vcmw9ay5tb3JlSW5mb1VybD8/IiIsUy5jaGFuZ2Vsb2dVcmw9ay5jaGFuZ2Vsb2dVcmw/PyIiLFMuc3VjY2Vzc0FjdGlvbj1rLnN1Y2Nlc3NBY3Rpb24/PyJjbG9zZSIsUy5zdWNjZXNzRGVsYXlNcz1rLnN1Y2Nlc3NEZWxheU1zPz8xZTQsUy5zdWNjZXNzQWN0aW9uTGFiZWw9ay5zdWNjZXNzQWN0aW9uTGFiZWw/PyIiLFMub25TdWNjZXNzQWN0aW9uPWsub25TdWNjZXNzQWN0aW9uPz9udWxsLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUyksYXdhaXQgUy5zaG93KCksU30jZT1ubCh0aGlzLG8sIiIpO2dldCBjdXJyZW50VmVyc2lvbigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmVyc2lvbihrKXt0aGlzLiNlPWt9I3Q9KG5sKHRoaXMsbCksbmwodGhpcyxkLCIiKSk7Z2V0IHVwZGF0ZWRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHVwZGF0ZWRWZXJzaW9uKGspe3RoaXMuI3Q9a30jYT0obmwodGhpcyx1KSxubCh0aGlzLGIsIiIpKTtnZXQgbW9yZUluZm9VcmwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbW9yZUluZm9Vcmwoayl7dGhpcy4jYT1rfSNzPShubCh0aGlzLHYpLG5sKHRoaXMsbSwiIikpO2dldCBjaGFuZ2Vsb2dVcmwoKXtyZXR1cm4gdGhpcy4jc31zZXQgY2hhbmdlbG9nVXJsKGspe3RoaXMuI3M9a30jaT0obmwodGhpcyxmKSxubCh0aGlzLE0sImNsb3NlIikpO2dldCBzdWNjZXNzQWN0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN1Y2Nlc3NBY3Rpb24oayl7dGhpcy4jaT1rfSNyPShubCh0aGlzLHopLG5sKHRoaXMsQywxZTQpKTtnZXQgc3VjY2Vzc0RlbGF5TXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc3VjY2Vzc0RlbGF5TXMoayl7dGhpcy4jcj1rfSNvPShubCh0aGlzLF8pLG5sKHRoaXMsJCwiIikpO2dldCBzdWNjZXNzQWN0aW9uTGFiZWwoKXtyZXR1cm4gdGhpcy4jb31zZXQgc3VjY2Vzc0FjdGlvbkxhYmVsKGspe3RoaXMuI289a31zdGVwcGVyPShubCh0aGlzLEUpLG51bGwpO3Byb2dyZXNzU3RlcD1udWxsO3Nob3dQcm9taXNlPW51bGw7b25TdWNjZXNzQWN0aW9uPW51bGw7c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc2hvdygpfWFzeW5jIHNob3coKXtpZighdGhpcy5zdGVwcGVyPy5pc0Nvbm5lY3RlZCl7aWYodGhpcy5zaG93UHJvbWlzZSlyZXR1cm4gdGhpcy5zaG93UHJvbWlzZTt0aGlzLnNob3dQcm9taXNlPXRoaXMub3BlblN0ZXBwZXJGbG93KCk7dHJ5e2F3YWl0IHRoaXMuc2hvd1Byb21pc2V9ZmluYWxseXt0aGlzLnNob3dQcm9taXNlPW51bGx9fX11cGRhdGVQcm9ncmVzcyhrKXshdGhpcy5zdGVwcGVyfHwhdGhpcy5wcm9ncmVzc1N0ZXB8fHRoaXMuc3RlcHBlci51cGRhdGVQcm9ncmVzc1N0ZXAoayx0aGlzLnByb2dyZXNzU3RlcCl9YXBwZW5kUHJvZ3Jlc3NMaW5lKGspeyF0aGlzLnN0ZXBwZXJ8fCF0aGlzLnByb2dyZXNzU3RlcHx8dGhpcy5zdGVwcGVyLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoayx0aGlzLnByb2dyZXNzU3RlcCl9bWFya1VwZGF0ZUVycm9yKGspe3RoaXMuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBFcnJvcjogJHtrfWApLHRoaXMudXBkYXRlUHJvZ3Jlc3Moe2luZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDprfSl9YXN5bmMgbWFya1VwZGF0ZVJlYWR5KCl7IXRoaXMuc3RlcHBlcnx8IXRoaXMucHJvZ3Jlc3NTdGVwfHwodGhpcy5zdGVwcGVyLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OiJVcGRhdGUgcmVhZHkuIn0sdGhpcy5wcm9ncmVzc1N0ZXApLHRoaXMuc3RlcHBlci5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKCJVcGRhdGUgcmVhZHkiLHRoaXMucHJvZ3Jlc3NTdGVwKSx0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRTdGVwPT09dGhpcy5wcm9ncmVzc1N0ZXAmJnRoaXMuc3RlcHBlci5nb05leHQoKSl9YXN5bmMgZGVzdHJveSgpe2xldCBrPXRoaXMuc3RlcHBlcjt0aGlzLnN0ZXBwZXI9bnVsbCx0aGlzLnByb2dyZXNzU3RlcD1udWxsLGs/LmlzQ29ubmVjdGVkJiZhd2FpdCBrLmRlc3Ryb3koKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKX1hc3luYyBvcGVuU3RlcHBlckZsb3coKXtsZXR7c3RlcHM6ayxwcm9ncmVzc1N0ZXA6U309dGhpcy5jcmVhdGVVcGRhdGVyU3RlcHMoKTt0aGlzLnByb2dyZXNzU3RlcD1TLHRoaXMuc3RlcHBlcj1hd2FpdCBySi5jcmVhdGVBbmRTaG93KHtzdGVwczprLGNhbmNlbGFibGU6ITF9KX1jcmVhdGVVcGRhdGVyU3RlcHMoKXtsZXQgaz10aGlzLmdldExpbmtNZW51T3B0aW9ucygpLFM9e3RpdGxlOiJVcGRhdGluZyB0aGUgYXBwbGljYXRpb24iLGNvbnRlbnQ6dGhpcy5yZW5kZXJQcm9ncmVzc0NvbnRlbnQoKSxwcm9ncmVzc1N0ZXA6e2xhYmVsOnRoaXMuZ2V0UHJvZ3Jlc3NMYWJlbCgpLHBlcmNlbnRhZ2U6NSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1Jvd3M6NCxzdGF0dXNUZXh0OiJQcmVwYXJpbmcgdXBkYXRlLi4uIix0ZXJtaW5hbExpbmVzOlsiUHJlcGFyaW5nIHVwZGF0ZSJdfSxtZW51T3B0aW9uczprLmxlbmd0aD4wP2s6dm9pZCAwfSxJPXt0aXRsZTp0aGlzLnVwZGF0ZWRWZXJzaW9uP2BWZXJzaW9uICR7dGhpcy51cGRhdGVkVmVyc2lvbn0gcmVhZHlgOiJVcGRhdGUgcmVhZHkiLGNvbnRlbnQ6dGhpcy5yZW5kZXJSZWFkeUNvbnRlbnQoKSxwcm9ncmVzc1N0ZXA6e2xhYmVsOnRoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93bkxhYmVsKHRoaXMuZ2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpKSxwZXJjZW50YWdlOjAsaW5kZXRlcm1pbmF0ZTohMSxzaG93UGVyY2VudGFnZTohMSxzdGF0dXNSb3dzOjIsc3RhdHVzVGV4dDp0aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25TdGF0dXModGhpcy5nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCkpfSx2YWxpZGF0aW9uRnVuYzppKGFzeW5jKFAsUixLKT0+e2F3YWl0IHRoaXMucnVuU3VjY2Vzc0NvdW50ZG93bihQLEksSyl9LCJ2YWxpZGF0aW9uRnVuYyIpfTtyZXR1cm57c3RlcHM6W1MsSV0scHJvZ3Jlc3NTdGVwOlN9fWdldFByb2dyZXNzTGFiZWwoKXtyZXR1cm4gdGhpcy5jdXJyZW50VmVyc2lvbiYmdGhpcy51cGRhdGVkVmVyc2lvbj9gJHt0aGlzLmN1cnJlbnRWZXJzaW9ufSAtPiAke3RoaXMudXBkYXRlZFZlcnNpb259YDp0aGlzLnVwZGF0ZWRWZXJzaW9uP2BQcmVwYXJpbmcgJHt0aGlzLnVwZGF0ZWRWZXJzaW9ufWA6IkFwcGxpY2F0aW9uIHVwZGF0ZSJ9Z2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpe3JldHVybiBNYXRoLm1heCgxLE1hdGguY2VpbCh0aGlzLnN1Y2Nlc3NEZWxheU1zLzFlMykpfWdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKXtyZXR1cm4gdGhpcy5zdWNjZXNzQWN0aW9uTGFiZWw/dGhpcy5zdWNjZXNzQWN0aW9uTGFiZWw6dGhpcy5vblN1Y2Nlc3NBY3Rpb24/IkNvbnRpbnVpbmcgYXV0b21hdGljYWxseSI6dGhpcy5zdWNjZXNzQWN0aW9uPT09InJlbG9hZCI/IlJlbG9hZGluZyBhcHBsaWNhdGlvbiI6IkNsb3NpbmcgdXBkYXRlciJ9Z2V0U3VjY2Vzc0NvdW50ZG93bkxhYmVsKGspe3JldHVybmAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfSBpbiAke2t9c2B9Z2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyhrKXtsZXQgUz1rPT09MT8ic2Vjb25kIjoic2Vjb25kcyI7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IGluICR7a30gJHtTfS5gfWdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpe3JldHVybmAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfSBub3cuLi5gfWdldExpbmtNZW51T3B0aW9ucygpe2xldCBrPVtdO3JldHVybiB0aGlzLm1vcmVJbmZvVXJsJiZrLnB1c2goe25hbWU6Ik1vcmUgaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMub3BlbkV4dGVybmFsVXJsKHRoaXMubW9yZUluZm9VcmwpfSwiYWN0aW9uIil9KSx0aGlzLmNoYW5nZWxvZ1VybCYmay5wdXNoKHtuYW1lOiJDaGFuZ2Vsb2ciLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLm9wZW5FeHRlcm5hbFVybCh0aGlzLmNoYW5nZWxvZ1VybCl9LCJhY3Rpb24iKX0pLGt9cmVuZGVyVmVyc2lvbk1ldGEoayxTKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDRweDsgbWluLXdpZHRoOiAxMzJweDsgcGFkZGluZzogMTJweCAxNHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOyBib3JkZXItcmFkaXVzOiA4cHg7IGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOyIKICAgICAgPgogICAgICAgIDxkaXYKICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA1ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICA+CiAgICAgICAgICAke2t9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9JHtgZm9udC1mYW1pbHk6ICR7RDFlfTsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTtgfQogICAgICAgID4KICAgICAgICAgICR7U30KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclByb2dyZXNzQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDE4cHg7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNnB4OyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICAgID4KICAgICAgICAgICAgQXBwbGljYXRpb24gdXBkYXRlCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzU7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyIKICAgICAgICAgID4KICAgICAgICAgICAgRG93bmxvYWRpbmcgYW5kIGFwcGx5aW5nIHRoZSBsYXRlc3QgcmVsZWFzZS4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42NTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbiYmdGhpcy51cGRhdGVkVmVyc2lvbj93YE1vdmluZyBmcm9tIDxzdHJvbmc+JHt0aGlzLmN1cnJlbnRWZXJzaW9ufTwvc3Ryb25nPiB0byA8c3Ryb25nPiR7dGhpcy51cGRhdGVkVmVyc2lvbn08L3N0cm9uZz4uYDp0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgUHJlcGFyaW5nIDxzdHJvbmc+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Ryb25nPiBmb3IgaW5zdGFsbGF0aW9uLmA6IlRoZSB1cGRhdGVyIGlzIGZldGNoaW5nIHRoZSBuZXdlc3QgYnVpbGQgYW5kIHByZXBhcmluZyBpdCBmb3IgaW5zdGFsbGF0aW9uLiJ9CiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbnx8dGhpcy51cGRhdGVkVmVyc2lvbj93YAogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAke3RoaXMuY3VycmVudFZlcnNpb24/dGhpcy5yZW5kZXJWZXJzaW9uTWV0YSgiQ3VycmVudCB2ZXJzaW9uIix0aGlzLmN1cnJlbnRWZXJzaW9uKToiIn0KICAgICAgICAgICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj90aGlzLnJlbmRlclZlcnNpb25NZXRhKCJJbmNvbWluZyB2ZXJzaW9uIix0aGlzLnVwZGF0ZWRWZXJzaW9uKToiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICAgID4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICBBdXRvbWF0aWMgZmxvdwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyI+CiAgICAgICAgICAgIFRoZSB1cGRhdGVyIGNvbnRpbnVlcyBvbiBpdHMgb3duIG9uY2UgdGhlIG5ldyBidWlsZCBpcyBpbnN0YWxsZWQgYW5kIHZlcmlmaWVkLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJSZWFkeUNvbnRlbnQoKXtsZXQgaz10aGlzLmdldFN1Y2Nlc3NEZWxheVNlY29uZHMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiAxOHB4OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDZweDsiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsiCiAgICAgICAgICA+CiAgICAgICAgICAgIFVwZGF0ZSBjb21wbGV0ZQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAxLjM1OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj93YFZlcnNpb24gPHNwYW4gc3R5bGU9JHtgZm9udC1mYW1pbHk6ICR7RDFlfTsgZm9udC1zaXplOiAwLjk1ZW07YH0+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Bhbj4gaXMgcmVhZHkgdG8gdXNlLmA6IlRoZSBuZXcgdmVyc2lvbiBpcyByZWFkeSB0byB1c2UuIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42NTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgICAgIFRoZSBuZXcgYnVpbGQgaGFzIGJlZW4gaW5zdGFsbGVkIGFuZCB2ZXJpZmllZC4gWW91IGNhbiByZXZpZXcgcmVsZWFzZSBkZXRhaWxzIGJlbG93IHdoaWxlIHRoZSBuZXh0IGFjdGlvbiBydW5zIGF1dG9tYXRpY2FsbHkuCiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj93YAogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVmVyc2lvbk1ldGEoIkluc3RhbGxlZCB2ZXJzaW9uIix0aGlzLnVwZGF0ZWRWZXJzaW9uKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICAgID4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICBOZXh0IGFjdGlvbgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7Ij4KICAgICAgICAgICAgJHt0aGlzLmdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsiPgogICAgICAgICAgICBSdW5zIGF1dG9tYXRpY2FsbHkgaW4gJHtrfSBzZWNvbmRzLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBydW5TdWNjZXNzQ291bnRkb3duKGssUyxJKXtsZXQgUD1NYXRoLm1heCgxZTMsdGhpcy5zdWNjZXNzRGVsYXlNcyksUj1EYXRlLm5vdygpO2Zvcig7IUk/LmFib3J0ZWQ7KXtsZXQgSz1NYXRoLm1pbihQLERhdGUubm93KCktUiksVj1NYXRoLm1heCgwLFAtSyksVz1NYXRoLm1heCgwLE1hdGguY2VpbChWLzFlMykpO2lmKGsudXBkYXRlUHJvZ3Jlc3NTdGVwKHtsYWJlbDpWPjA/dGhpcy5nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwoVyk6dGhpcy5nZXRTdWNjZXNzQWN0aW9uTm93TGFiZWwoKSxwZXJjZW50YWdlOksvUCoxMDAsaW5kZXRlcm1pbmF0ZTohMSxzaG93UGVyY2VudGFnZTohMSxzdGF0dXNUZXh0OlY+MD90aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25TdGF0dXMoVyk6dGhpcy5nZXRTdWNjZXNzQWN0aW9uTm93TGFiZWwoKX0sUyksVjw9MClicmVhaztpZighYXdhaXQgdGhpcy53YWl0Rm9yQ291bnRkb3duVGljaygxMDAsSSkpcmV0dXJufWF3YWl0IHRoaXMucnVuQ29uZmlndXJlZFN1Y2Nlc3NBY3Rpb24oKX1hc3luYyB3YWl0Rm9yQ291bnRkb3duVGljayhrLFMpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IFA9ITEsUj1pKFc9PntQfHwoUD0hMCxTJiZTLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixLKSxJKFcpKX0sImZpbmlzaCIpLEs9aSgoKT0+e3dpbmRvdy5jbGVhclRpbWVvdXQoViksUighMSl9LCJoYW5kbGVBYm9ydCIpLFY9d2luZG93LnNldFRpbWVvdXQoKCk9PntSKCEwKX0sayk7UyYmUy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSyx7b25jZTohMH0pfSl9YXN5bmMgcnVuQ29uZmlndXJlZFN1Y2Nlc3NBY3Rpb24oKXtpZih0aGlzLm9uU3VjY2Vzc0FjdGlvbil7YXdhaXQgdGhpcy5vblN1Y2Nlc3NBY3Rpb24oKTtyZXR1cm59aWYodGhpcy5zdWNjZXNzQWN0aW9uPT09InJlbG9hZCIpe2F3YWl0IHRoaXMuZGVzdHJveSgpLHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59YXdhaXQgdGhpcy5kZXN0cm95KCl9b3BlbkV4dGVybmFsVXJsKGspe3dpbmRvdy5vcGVuKGssIl9ibGFuayIsIm5vb3BlbmVyLG5vcmVmZXJyZXIiKX1zdGF0aWN7bmwoYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIEVTYT1nKCgpPT57RWx0KCl9KTt2YXIgUFNhPWcoKCk9PntEb3QoKX0pO3ZhciBJU2E9ZygoKT0+e3hTYSgpO19TYSgpO1RTYSgpO0VTYSgpO1BTYSgpfSk7dmFyIGM3LGhjLGx0cyxkMmU9ZygoKT0+e3BlKCk7a3QoKTtodCgpO0dhKCk7ZnIoKTtmcigpO1B1KCk7bzQoKTtvNCgpO2M3PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxoYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbHRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZUZpbGV0cmVlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sYzcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5leGVjdXRpb25FbnZpcm9ubWVudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmV4ZWN1dGlvbkVudmlyb25tZW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxjNyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvb3RQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJyb290UGF0aCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnJvb3RQYXRoLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uucm9vdFBhdGg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLGM3KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzZWxlY3RlZFBhdGgiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zZWxlY3RlZFBhdGgsImdldCIpLHNldDppKChFLEgpPT57RS5zZWxlY3RlZFBhdGg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLGM3KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJlZURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InRyZWVEYXRhImluIEUsImhhcyIpLGdldDppKEU9PkUudHJlZURhdGEsImdldCIpLHNldDppKChFLEgpPT57RS50cmVlRGF0YT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksYzcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImlzTG9hZGluZyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmlzTG9hZGluZz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksYzcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvck1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImVycm9yTWVzc2FnZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmVycm9yTWVzc2FnZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmVycm9yTWVzc2FnZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksYzcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTsjZT1oYyh0aGlzLG8sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCQpe3RoaXMuI2U9JH0jdD0oaGModGhpcyxsKSxoYyh0aGlzLGQsIi8iKSk7Z2V0IHJvb3RQYXRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJvb3RQYXRoKCQpe3RoaXMuI3Q9JH0jYT0oaGModGhpcyx1KSxoYyh0aGlzLGIsIiIpKTtnZXQgc2VsZWN0ZWRQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkUGF0aCgkKXt0aGlzLiNhPSR9I3M9KGhjKHRoaXMsdiksaGModGhpcyxtLFtdKSk7Z2V0IHRyZWVEYXRhKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRyZWVEYXRhKCQpe3RoaXMuI3M9JH0jaT0oaGModGhpcyxmKSxoYyh0aGlzLE0sITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzTG9hZGluZygkKXt0aGlzLiNpPSR9I3I9KGhjKHRoaXMseiksaGModGhpcyxDLCIiKSk7Z2V0IGVycm9yTWVzc2FnZSgpe3JldHVybiB0aGlzLiNyfXNldCBlcnJvck1lc3NhZ2UoJCl7dGhpcy4jcj0kfWV4cGFuZGVkUGF0aHM9KGhjKHRoaXMsXyksbmV3IFNldCk7bG9hZFRyZWVTdGFydGVkPSExO2NsaXBib2FyZFBhdGg9bnVsbDtjbGlwYm9hcmRPcGVyYXRpb249bnVsbDtmaWxlV2F0Y2hlcj1udWxsO3JlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbDtsYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnRyZWUtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDFweCA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MyUpIiwiaHNsKDAgMCUgMTQlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCA1MCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0uc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTIlKSIsImhzbCgyMTAgNTAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pbmRlbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5leHBhbmRlZCB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24uaGlkZGVuIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uZm9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0NSA4MCUgNDUlKSIsImhzbCg0NSA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5maWxlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLnR5cGVzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woMjExIDYwJSA0OCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmphdmFzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woNTMgOTMlIDU0JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uanNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA4MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5odG1sIHsKICAgICAgICBjb2xvcjogaHNsKDE0IDc3JSA1MiUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmNzcyB7CiAgICAgICAgY29sb3I6IGhzbCgyMjggNzclIDU5JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24ubWFya2Rvd24gewogICAgICAgIGNvbG9yOiBoc2woMCAwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogaHNsKDAgNzAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50P3RoaXMuaXNMb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZyI+CiAgICAgICAgICBMb2FkaW5nIGZpbGVzLi4uCiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvck1lc3NhZ2U/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciI+CiAgICAgICAgICAke3RoaXMuZXJyb3JNZXNzYWdlfQogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGV0cmVlLXRvb2xiYXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj5FeHBsb3Jlcjwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWFjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0gdGl0bGU9Ik5ldyBGaWxlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZVBsdXMifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKCIvIil9IHRpdGxlPSJOZXcgRm9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Zm9sZGVyUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy50cmVlRGF0YS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGZpbGVzIGZvdW5kLjwvZGl2PmA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJlZS1jb250YWluZXIiIEBjb250ZXh0bWVudT0ke3RoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51fT4KICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVHJlZSh0aGlzLnRyZWVEYXRhKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5Ij4KICAgICAgICAgIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBwcm92aWRlZC4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZW5kZXJUcmVlKCQpe3JldHVybiAkLm1hcChFPT50aGlzLnJlbmRlck5vZGUoRSkpfXJlbmRlck5vZGUoJCl7bGV0IEU9JC50eXBlPT09ImRpcmVjdG9yeSIsSD10aGlzLmV4cGFuZGVkUGF0aHMuaGFzKCQucGF0aCksaz0kLnBhdGg9PT10aGlzLnNlbGVjdGVkUGF0aCxTPXRoaXMuZ2V0RmlsZUljb25DbGFzcygkKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0cmVlLWl0ZW0gJHtrPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7OCskLmxldmVsKjE2fXB4IgogICAgICAgIEBjbGljaz0ke0k9PnRoaXMuaGFuZGxlSXRlbUNsaWNrKEksJCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7ST0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShJLCQpfQogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZC1pY29uICR7SD8iZXhwYW5kZWQiOiIifSAke0U/IiI6ImhpZGRlbiJ9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25SaWdodCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWljb24gJHtTfSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5nZXRGaWxlSWNvbigkKX0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtbmFtZSI+JHskLm5hbWV9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHtFJiZIJiYkLmNoaWxkcmVuP3RoaXMucmVuZGVyVHJlZSgkLmNoaWxkcmVuKToiIn0KICAgIGB9Z2V0RmlsZUljb24oJCl7aWYoJC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXRocy5oYXMoJC5wYXRoKT8ibHVjaWRlOmZvbGRlck9wZW4iOiJsdWNpZGU6Zm9sZGVyIjtzd2l0Y2goJC5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJqc29uIjpyZXR1cm4ibHVjaWRlOmZpbGVKc29uIjtjYXNlImh0bWwiOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJtZCI6cmV0dXJuImx1Y2lkZTpmaWxlVGV4dCI7Y2FzZSJwbmciOmNhc2UianBnIjpjYXNlImpwZWciOmNhc2UiZ2lmIjpjYXNlInN2ZyI6cmV0dXJuImx1Y2lkZTppbWFnZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOmZpbGUifX1nZXRGaWxlSWNvbkNsYXNzKCQpe2lmKCQudHlwZT09PSJkaXJlY3RvcnkiKXJldHVybiJmb2xkZXIiO3N3aXRjaCgkLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImh0bWwiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImNzcyI7Y2FzZSJtZCI6cmV0dXJuIm1hcmtkb3duIjtkZWZhdWx0OnJldHVybiJmaWxlIn19YXN5bmMgaGFuZGxlSXRlbUNsaWNrKCQsRSl7JC5zdG9wUHJvcGFnYXRpb24oKSxFLnR5cGU9PT0iZGlyZWN0b3J5Ij9hd2FpdCB0aGlzLnRvZ2dsZURpcmVjdG9yeShFKToodGhpcy5zZWxlY3RlZFBhdGg9RS5wYXRoLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtc2VsZWN0Iix7ZGV0YWlsOntwYXRoOkUucGF0aCxuYW1lOkUubmFtZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9YXN5bmMgdG9nZ2xlRGlyZWN0b3J5KCQpe3RoaXMuZXhwYW5kZWRQYXRocy5oYXMoJC5wYXRoKT90aGlzLmV4cGFuZGVkUGF0aHMuZGVsZXRlKCQucGF0aCk6KHRoaXMuZXhwYW5kZWRQYXRocy5hZGQoJC5wYXRoKSwoISQuY2hpbGRyZW58fCQuY2hpbGRyZW4ubGVuZ3RoPT09MCkmJmF3YWl0IHRoaXMubG9hZERpcmVjdG9yeUNvbnRlbnRzKCQpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBsb2FkRGlyZWN0b3J5Q29udGVudHMoJCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IEU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKCQucGF0aCk7JC5jaGlsZHJlbj10aGlzLnNvcnRFbnRyaWVzKEUpLm1hcChIPT4oey4uLkgsbGV2ZWw6JC5sZXZlbCsxLGV4cGFuZGVkOiExLGNoaWxkcmVuOkgudHlwZT09PSJkaXJlY3RvcnkiP1tdOnZvaWQgMH0pKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkgJHskLnBhdGh9OmAsRSl9fWFzeW5jIGhhbmRsZUNvbnRleHRNZW51KCQsRSl7JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEg9W107RS50eXBlPT09ImRpcmVjdG9yeSImJkgucHVzaCh7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKEUucGF0aCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKEUucGF0aCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0pLEgucHVzaCh7bmFtZToiUmVuYW1lIixpY29uTmFtZToicGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oRSksImFjdGlvbiIpfSx7bmFtZToiRHVwbGljYXRlIixpY29uTmFtZToiZmlsZXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShFKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jb3B5SXRlbShFKSwiYWN0aW9uIil9KSxFLnR5cGU9PT0iZGlyZWN0b3J5IiYmdGhpcy5jbGlwYm9hcmRQYXRoJiZILnB1c2goe25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbShFLnBhdGgpLCJhY3Rpb24iKX0pLEgucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKEUpLCJhY3Rpb24iKX0pLGF3YWl0ICRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKCQsSCl9YXN5bmMgaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KCQpe2lmKCQudGFyZ2V0LmNsb3Nlc3QoIi50cmVlLWl0ZW0iKSlyZXR1cm47JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEg9W3tuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKSwiYWN0aW9uIil9XTt0aGlzLmNsaXBib2FyZFBhdGgmJkgucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpLCJhY3Rpb24iKX0pLGF3YWl0ICRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKCQsSCl9YXN5bmMgc2hvd0lucHV0TW9kYWwoJCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIEU9PntsZXQgSD1hd2FpdCBpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiQuaGVhZGluZyx3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7JC5sYWJlbH0KICAgICAgICAgICAgLnZhbHVlPSR7JC52YWx1ZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgUz0+e2F3YWl0IFMuZGVzdHJveSgpLEUobnVsbCl9LCJhY3Rpb24iKX0se25hbWU6JC5idXR0b25OYW1lfHwiQ3JlYXRlIixhY3Rpb246aShhc3luYyBTPT57bGV0IFI9Uy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IFMuZGVzdHJveSgpLEUoUnx8bnVsbCl9LCJhY3Rpb24iKX1dfSk7YXdhaXQgSC51cGRhdGVDb21wbGV0ZTtsZXQgaz1ILnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpO2lmKGspe2xldCBTPWsucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7UyYmKGF3YWl0IFMudXBkYXRlQ29tcGxldGUsUy5mb2N1cygpKX19KX1hc3luYyBjcmVhdGVOZXdGaWxlKCQpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGaWxlIixsYWJlbDoiRmlsZSBuYW1lIn0pO2lmKCFFfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEg9JD09PSIvIj9gLyR7RX1gOmAkeyR9LyR7RX1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShILCIiKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWxlLWNyZWF0ZWQiLHtkZXRhaWw6e3BhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGZpbGU6IixrKX19YXN5bmMgY3JlYXRlTmV3Rm9sZGVyKCQpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGb2xkZXIiLGxhYmVsOiJGb2xkZXIgbmFtZSJ9KTtpZighRXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBIPSQ9PT0iLyI/YC8ke0V9YDpgJHskfS8ke0V9YDt0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcihIKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmb2xkZXItY3JlYXRlZCIse2RldGFpbDp7cGF0aDpIfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyOiIsayl9fWFzeW5jIGRlbGV0ZUl0ZW0oJCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWNvbmZpcm0oYERlbGV0ZSAkeyQubmFtZX0/YCkpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKCQucGF0aCx7cmVjdXJzaXZlOiQudHlwZT09PSJkaXJlY3RvcnkifSksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kZWxldGVkIix7ZGV0YWlsOntwYXRoOiQucGF0aCx0eXBlOiQudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChIKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGl0ZW06IixIKX19YXN5bmMgcmVuYW1lSXRlbSgkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEU9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiUmVuYW1lIixsYWJlbDoiTmV3IG5hbWUiLHZhbHVlOiQubmFtZSxidXR0b25OYW1lOiJSZW5hbWUifSk7aWYoIUV8fEU9PT0kLm5hbWUpcmV0dXJuO2xldCBIPSQucGF0aC5zdWJzdHJpbmcoMCwkLnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixrPUg9PT0iLyI/YC8ke0V9YDpgJHtIfS8ke0V9YDt0cnl7aWYoJC50eXBlPT09ImZpbGUiKXtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCQucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoayxTKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKCQucGF0aCl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cygkLnBhdGgsayksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybSgkLnBhdGgse3JlY3Vyc2l2ZTohMH0pO2F3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tcmVuYW1lZCIse2RldGFpbDp7b2xkUGF0aDokLnBhdGgsbmV3UGF0aDprLHR5cGU6JC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKFMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5hbWUgaXRlbToiLFMpfX1hc3luYyBkdXBsaWNhdGVJdGVtKCQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgRT0kLnBhdGguc3Vic3RyaW5nKDAsJC5wYXRoLmxhc3RJbmRleE9mKCIvIikpfHwiLyIsSDtpZigkLnR5cGU9PT0iZmlsZSIpe2xldCBTPSQubmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKFM+MCl7bGV0IEk9JC5uYW1lLnN1YnN0cmluZygwLFMpLFA9JC5uYW1lLnN1YnN0cmluZyhTKTtIPWAke0l9X2NvcHkke1B9YH1lbHNlIEg9YCR7JC5uYW1lfV9jb3B5YH1lbHNlIEg9YCR7JC5uYW1lfV9jb3B5YDtsZXQgaz1FPT09Ii8iP2AvJHtIfWA6YCR7RX0vJHtIfWA7dHJ5e2lmKCQudHlwZT09PSJmaWxlIil7bGV0IFM9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgkLnBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGssUyl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cygkLnBhdGgsayk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kdXBsaWNhdGVkIix7ZGV0YWlsOntzb3VyY2VQYXRoOiQucGF0aCxuZXdQYXRoOmssdHlwZTokLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goUyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGR1cGxpY2F0ZSBpdGVtOiIsUyl9fWFzeW5jIGNvcHlJdGVtKCQpe3RoaXMuY2xpcGJvYXJkUGF0aD0kLnBhdGgsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249ImNvcHkifWFzeW5jIHBhc3RlSXRlbSgkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXRoaXMuY2xpcGJvYXJkUGF0aClyZXR1cm47bGV0IEU9dGhpcy5jbGlwYm9hcmRQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJwYXN0ZWQiLEg9JD09PSIvIj9gLyR7RX1gOmAkeyR9LyR7RX1gO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHModGhpcy5jbGlwYm9hcmRQYXRoKSl7Y29uc29sZS5lcnJvcigiU291cmNlIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cyIpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7cmV0dXJufXRyeXtsZXQgaz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHRoaXMuY2xpcGJvYXJkUGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSCxrKX1jYXRjaHthd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh0aGlzLmNsaXBib2FyZFBhdGgsSCl9YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1wYXN0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6dGhpcy5jbGlwYm9hcmRQYXRoLHRhcmdldFBhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNsaXBib2FyZFBhdGg9bnVsbCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj1udWxsfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBwYXN0ZSBpdGVtOiIsayl9fWFzeW5jIGNvcHlEaXJlY3RvcnlDb250ZW50cygkLEUpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKEUpO2xldCBIPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcigkKTtmb3IobGV0IGsgb2YgSCl7bGV0IFM9JD09PSIvIj9gLyR7ay5uYW1lfWA6YCR7JH0vJHtrLm5hbWV9YCxJPUU9PT0iLyI/YC8ke2submFtZX1gOmAke0V9LyR7ay5uYW1lfWA7aWYoay50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoUyxJKTtlbHNle2xldCBQPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoUyk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSSxQKX19fWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFRyZWUoKX1hc3luYyB1cGRhdGVkKCQpeyQuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiYodGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQhPT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYodGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudD10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkVHJlZSgpLHRoaXMuc3RhcnRGaWxlV2F0Y2hlcigpKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3RvcEZpbGVXYXRjaGVyKCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0RmlsZVdhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmZpbGVXYXRjaGVyKSl0cnl7dGhpcy5maWxlV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvIiwoJCxFKT0+e3RoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnJlZnJlc2goKX0sMzAwKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKCQpe2NvbnNvbGUud2FybigiRmlsZSB3YXRjaGluZyBub3Qgc3VwcG9ydGVkOiIsJCl9fXN0b3BGaWxlV2F0Y2hlcigpe3RoaXMuZmlsZVdhdGNoZXImJih0aGlzLmZpbGVXYXRjaGVyLnN0b3AoKSx0aGlzLmZpbGVXYXRjaGVyPW51bGwpfWFzeW5jIGxvYWRUcmVlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMubG9hZFRyZWVTdGFydGVkKXt0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMCx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmVycm9yTWVzc2FnZT0iIjt0cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCk7bGV0ICQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHRoaXMucm9vdFBhdGgpO3RoaXMudHJlZURhdGE9dGhpcy5zb3J0RW50cmllcygkKS5tYXAoRT0+KHsuLi5FLGxldmVsOjAsZXhwYW5kZWQ6ITEsY2hpbGRyZW46RS50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKCQpe3RoaXMuZXJyb3JNZXNzYWdlPWBGYWlsZWQgdG8gbG9hZCBmaWxlczogJHskfWAsY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgZmlsZSB0cmVlOiIsJCksdGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITF9ZmluYWxseXt0aGlzLmlzTG9hZGluZz0hMX19fXNvcnRFbnRyaWVzKCQpe3JldHVybiAkLnNvcnQoKEUsSCk9PkUudHlwZSE9PUgudHlwZT9FLnR5cGU9PT0iZGlyZWN0b3J5Ij8tMToxOkUubmFtZS5sb2NhbGVDb21wYXJlKEgubmFtZSkpfWFzeW5jIHJlZnJlc2goKXt0aGlzLmV4cGFuZGVkUGF0aHMuY2xlYXIoKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMSxhd2FpdCB0aGlzLmxvYWRUcmVlKCl9c2VsZWN0RmlsZSgkKXt0aGlzLnNlbGVjdGVkUGF0aD0kfXN0YXRpY3toYyhhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgUGx0LHBKLGN0cyxJbHQ9ZygoKT0+e3BlKCk7aHQoKTtPdSgpO21yKCk7UGx0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxwSj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sY3RzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlVGVybWluYWxQcmV2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxQbHQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjb21tYW5kImluIHYsImhhcyIpLGdldDppKHY9PnYuY29tbWFuZCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmNvbW1hbmQ9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLFBsdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJsaW5lcyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmxpbmVzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YubGluZXM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLFBsdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAuY29tbWFuZD0keyJwbnBtIGluc3RhbGwifQogICAgICAubGluZXM9JHtbIlBhY2thZ2VzOiArNDIiLCJQcm9ncmVzczogcmVzb2x2ZWQgMTQyLCByZXVzZWQgMTQwLCBkb3dubG9hZGVkIDIsIGFkZGVkIDQyLCBkb25lIiwiIiwiZGVwZW5kZW5jaWVzOiIsIisgQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlIDQuMi4zIiwiKyB0eXBlc2NyaXB0IDUuMy4zIiwiIiwiRG9uZSBpbiAyLjNzIl19CiAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPXBKKHRoaXMsbywiIik7Z2V0IGNvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29tbWFuZChiKXt0aGlzLiNlPWJ9I3Q9KHBKKHRoaXMsbCkscEoodGhpcyxkLFtdKSk7Z2V0IGxpbmVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxpbmVzKGIpe3RoaXMuI3Q9Yn10ZXJtaW5hbD0ocEoodGhpcyx1KSxudWxsKTtmaXRBZGRvbj1udWxsO2xhc3RMaW5lQ291bnQ9MDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItY29tbWFuZCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgICN4dGVybS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogQ3VzdG9tIHNjcm9sbGJhciBmb3IgeHRlcm0gdmlld3BvcnQgKi8KICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGVybWluYWwtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItaWNvbiI+JDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItY29tbWFuZCI+JHt0aGlzLmNvbW1hbmR8fCJXYWl0aW5nLi4uIn08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgaWQ9Inh0ZXJtLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1nZXRUZXJtaW5hbFRoZW1lKGIpe3JldHVybiBiP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgwLCAwLCAwLCAwLjIpIn06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNjY2NjY2MiLGN1cnNvcjoiI2NjY2NjYyIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1hc3luYyBmaXJzdFVwZGF0ZWQoYil7c3VwZXIuZmlyc3RVcGRhdGVkKGIpO2xldCB2PXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInh0ZXJtLWNvbnRhaW5lciIpO2lmKCF2KXJldHVybjtsZXQgeD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxtPXgudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbixmPWFvLmdldEluc3RhbmNlKCksW3ksTV09YXdhaXQgUHJvbWlzZS5hbGwoW2YubG9hZFh0ZXJtKCksZi5sb2FkWHRlcm1GaXRBZGRvbigpXSk7dGhpcy50ZXJtaW5hbD1uZXcgeS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKG0pLHNjcm9sbGJhY2s6MWUzfSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXgudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoej0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHopKX0pLHRoaXMuZml0QWRkb249bmV3IE0uRml0QWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5vcGVuKHYpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uJiZ0aGlzLmZpdEFkZG9uLmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHYpLHRoaXMud3JpdGVOZXdMaW5lcygpfWFzeW5jIHVwZGF0ZWQoYil7c3VwZXIudXBkYXRlZChiKSxiLmhhcygibGluZXMiKSYmdGhpcy53cml0ZU5ld0xpbmVzKCl9d3JpdGVOZXdMaW5lcygpe2lmKCF0aGlzLnRlcm1pbmFsKXJldHVybjtsZXQgYj10aGlzLmxpbmVzLnNsaWNlKHRoaXMubGFzdExpbmVDb3VudCk7Zm9yKGxldCB2IG9mIGIpdGhpcy50ZXJtaW5hbC53cml0ZWxuKHYpO3RoaXMubGFzdExpbmVDb3VudD10aGlzLmxpbmVzLmxlbmd0aH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5kaXNwb3NlKCksdGhpcy50ZXJtaW5hbD1udWxsKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFkZExpbmUoYil7dGhpcy5saW5lcz1bLi4udGhpcy5saW5lcyxiXX1jbGVhcigpe3RoaXMubGluZXM9W10sdGhpcy5sYXN0TGluZUNvdW50PTAsdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5jbGVhcigpfXN0YXRpY3twSihhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgUHgsRjIsZHRzLEFsdD1nKCgpPT57cGUoKTtodCgpO0dhKCk7ZnIoKTtQeD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRjI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGR0cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLWJvdHRvbWJhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlQm90dG9tYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bWSgpXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSxQeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZXhlY3V0aW9uRW52aXJvbm1lbnQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLFB4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2NyaXB0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2NyaXB0cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNjcmlwdHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zY3JpcHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxQeCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhY2thZ2VTdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InBhY2thZ2VTdGF0dXMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5wYWNrYWdlU3RhdHVzLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucGFja2FnZVN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksUHgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRkYXRlZFBhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJvdXRkYXRlZFBhY2thZ2VzImluIF8sImhhcyIpLGdldDppKF89Pl8ub3V0ZGF0ZWRQYWNrYWdlcywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLm91dGRhdGVkUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLFB4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNDaGVja2luZ1BhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpc0NoZWNraW5nUGFja2FnZXMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pc0NoZWNraW5nUGFja2FnZXMsImdldCIpLHNldDppKChfLE8pPT57Xy5pc0NoZWNraW5nUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLFB4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9I2U9RjIodGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChDKXt0aGlzLiNlPUN9I3Q9KEYyKHRoaXMsbCksRjIodGhpcyxkLHt9KSk7Z2V0IHNjcmlwdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2NyaXB0cyhDKXt0aGlzLiN0PUN9I2E9KEYyKHRoaXMsdSksRjIodGhpcyxiLCJpZGxlIikpO2dldCBwYWNrYWdlU3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHBhY2thZ2VTdGF0dXMoQyl7dGhpcy4jYT1DfSNzPShGMih0aGlzLHYpLEYyKHRoaXMsbSxbXSkpO2dldCBvdXRkYXRlZFBhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG91dGRhdGVkUGFja2FnZXMoQyl7dGhpcy4jcz1DfSNpPShGMih0aGlzLGYpLEYyKHRoaXMsTSwhMSkpO2dldCBpc0NoZWNraW5nUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNDaGVja2luZ1BhY2thZ2VzKEMpe3RoaXMuI2k9Q31wZW5kaW5nUGFja2FnZVVwZGF0ZT0oRjIodGhpcyx6KSwhMSk7aGFuZGxlUHJvY2Vzc0NvbXBsZXRlPWkoQz0+e3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGUmJih0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDUwMCkpfSwiaGFuZGxlUHJvY2Vzc0NvbXBsZXRlIik7c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b20tYmFyIHsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgNiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLndpZGdldC5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQudXAtdG8tZGF0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cGRhdGVzLWF2YWlsYWJsZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLnNwaW5uaW5nIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYm90dG9tLWJhciI+CiAgICAgICAgPCEtLSBTY3JpcHQgUnVubmVyIFdpZGdldCAtLT4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0id2lkZ2V0IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTY3JpcHRDbGlja30KICAgICAgICAgIHRpdGxlPSJSdW4gc2NyaXB0IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHsibHVjaWRlOnBsYXkifQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5TY3JpcHRzPC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj4KCiAgICAgICAgPCEtLSBQYWNrYWdlIENoZWNrZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQgJHt0aGlzLmdldFBhY2thZ2VTdGF0dXNDbGFzcygpfSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlUGFja2FnZUNsaWNrfQogICAgICAgICAgdGl0bGU9IiR7dGhpcy5nZXRQYWNrYWdlVG9vbHRpcCgpfSIKICAgICAgICA+CiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7dGhpcy5nZXRQYWNrYWdlSWNvbigpfQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+JHt0aGlzLmdldFBhY2thZ2VTdGF0dXNUZXh0KCl9PC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoKICAgICAgICA8IS0tIEZ1dHVyZSB3aWRnZXRzIGNhbiBiZSBhZGRlZCBoZXJlIC0tPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpLGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHVwZGF0ZWQoQyl7Qy5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCkpfWFzeW5jIGxvYWRTY3JpcHRzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMuc2NyaXB0cz17fTtyZXR1cm59bGV0IF89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL3BhY2thZ2UuanNvbiIpLE89SlNPTi5wYXJzZShfKTt0aGlzLnNjcmlwdHM9Ty5zY3JpcHRzfHx7fX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBsb2FkIHNjcmlwdHMgZnJvbSBwYWNrYWdlLmpzb246IixDKSx0aGlzLnNjcmlwdHM9e319fWFzeW5jIGhhbmRsZVNjcmlwdENsaWNrKEMpe0Muc3RvcFByb3BhZ2F0aW9uKCk7bGV0IF89T2JqZWN0LmtleXModGhpcy5zY3JpcHRzKTtpZihfLmxlbmd0aD09PTApcmV0dXJuO2xldCBPPV8ubWFwKCQ9Pih7bmFtZTokLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnJ1blNjcmlwdCgkKX0sImFjdGlvbiIpfSkpO2F3YWl0ICRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEMsTyl9YXN5bmMgcnVuU2NyaXB0KEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgXz17dHlwZToic2NyaXB0IixsYWJlbDpDLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJydW4iLENdLG1ldGFkYXRhOntzY3JpcHROYW1lOkN9fTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOl99KSl9YXN5bmMgY2hlY2tQYWNrYWdlcygpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnBhY2thZ2VTdGF0dXM9ImlkbGUiO3JldHVybn10cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRoaXMucGFja2FnZVN0YXR1cz0iY2hlY2tpbmciLHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPSEwO2xldCBfPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oInBucG0iLFsib3V0ZGF0ZWQiLCItLWpzb24iXSksTz0iIiwkPV8ub3V0cHV0LmdldFJlYWRlcigpO2koYXN5bmMoKT0+e3RyeXtmb3IoOzspe2xldHtkb25lOmssdmFsdWU6U309YXdhaXQgJC5yZWFkKCk7aWYoaylicmVhaztPKz1TfX1jYXRjaHt9fSwicmVhZE91dHB1dCIpKCk7bGV0IEg9YXdhaXQgUHJvbWlzZS5yYWNlKFtfLmV4aXQsbmV3IFByb21pc2Uoaz0+c2V0VGltZW91dCgoKT0+aygtMSksMWU0KSldKTt0cnl7YXdhaXQgJC5jYW5jZWwoKX1jYXRjaHt9aWYoSD09PS0xKXtjb25zb2xlLndhcm4oIlBhY2thZ2UgY2hlY2sgdGltZWQgb3V0IiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciI7cmV0dXJufWlmKEg9PT0wKXRoaXMucGFja2FnZVN0YXR1cz0idXAtdG8tZGF0ZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdO2Vsc2UgdHJ5e2xldCBrPUpTT04ucGFyc2UoTyk7dGhpcy5vdXRkYXRlZFBhY2thZ2VzPXRoaXMucGFyc2VPdXRkYXRlZFBhY2thZ2VzKGspLHRoaXMucGFja2FnZVN0YXR1cz10aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjA/InVwZGF0ZXMtYXZhaWxhYmxlIjoidXAtdG8tZGF0ZSJ9Y2F0Y2h7dGhpcy5wYWNrYWdlU3RhdHVzPSJ1cGRhdGVzLWF2YWlsYWJsZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdfX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzOiIsQyksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciJ9ZmluYWxseXt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMX19cGFyc2VPdXRkYXRlZFBhY2thZ2VzKEMpe2xldCBfPVtdO2lmKHR5cGVvZiBDPT0ib2JqZWN0IiYmQyE9PW51bGwpZm9yKGxldFtPLCRdb2YgT2JqZWN0LmVudHJpZXMoQykpe2xldCBFPSQ7Xy5wdXNoKHtuYW1lOk8sY3VycmVudDpFLmN1cnJlbnR8fCJ1bmtub3duIix3YW50ZWQ6RS53YW50ZWR8fEUuY3VycmVudHx8InVua25vd24iLGxhdGVzdDpFLmxhdGVzdHx8RS53YW50ZWR8fCJ1bmtub3duIix0eXBlOkUuZGVwZW5kZW5jeVR5cGU9PT0iZGV2RGVwZW5kZW5jaWVzIj8iZGV2RGVwZW5kZW5jaWVzIjoiZGVwZW5kZW5jaWVzIn0pfXJldHVybiBffWFzeW5jIGhhbmRsZVBhY2thZ2VDbGljayhDKXtDLnN0b3BQcm9wYWdhdGlvbigpO2xldCBfPVtdO2lmKF8ucHVzaCh7bmFtZTp0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iQ2hlY2tpbmcuLi4iOiJDaGVjayBmb3IgdXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjppKGFzeW5jKCk9PntpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm47bGV0IE89e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoiY2hlY2sgcGFja2FnZXMiLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJvdXRkYXRlZCJdfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOk99KSksc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksM2UzKX0sImFjdGlvbiIpfSksdGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wKXtfLnB1c2goe2RpdmlkZXI6ITB9KTtsZXQgTz10aGlzLm91dGRhdGVkUGFja2FnZXMuc2xpY2UoMCwxMCk7Zm9yKGxldCAkIG9mIE8pXy5wdXNoKHtuYW1lOmAkeyQubmFtZX06ICR7JC5jdXJyZW50fSBcdTIxOTIgJHskLmxhdGVzdH1gLGljb25OYW1lOiJsdWNpZGU6cGFja2FnZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlUGFja2FnZSgkLm5hbWUpfSwiYWN0aW9uIil9KTt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjEwJiZfLnB1c2goe25hbWU6YC4uLiBhbmQgJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoLTEwfSBtb3JlYCxpY29uTmFtZToibHVjaWRlOm1vcmVIb3Jpem9udGFsIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIil9KSxfLnB1c2goe2RpdmlkZXI6ITB9KSxfLnB1c2goe25hbWU6IlVwZGF0ZSBhbGwgcGFja2FnZXMiLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlQWxsUGFja2FnZXMoKX0sImFjdGlvbiIpfSl9YXdhaXQgJGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoQyxfKX1hc3luYyB1cGRhdGVQYWNrYWdlKEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBfPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6YHVwZGF0ZSAke0N9YCxjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiLENdLG1ldGFkYXRhOntwYWNrYWdlTmFtZTpDfX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpffSkpfWFzeW5jIHVwZGF0ZUFsbFBhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IEM9e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoidXBkYXRlIGFsbCIsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0Il19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6Q30pKX1nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKXtyZXR1cm4gdGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IiI6dGhpcy5wYWNrYWdlU3RhdHVzfWdldFBhY2thZ2VJY29uKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuImx1Y2lkZTpsb2FkZXIyIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJsdWNpZGU6Y2hlY2tDaXJjbGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybiJsdWNpZGU6YWxlcnRDaXJjbGUiO2Nhc2UiZXJyb3IiOnJldHVybiJsdWNpZGU6eENpcmNsZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnBhY2thZ2UifX1nZXRQYWNrYWdlU3RhdHVzVGV4dCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iVXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9YDtjYXNlImVycm9yIjpyZXR1cm4iQ2hlY2sgZmFpbGVkIjtkZWZhdWx0OnJldHVybiJQYWNrYWdlcyJ9fWdldFBhY2thZ2VUb29sdGlwKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nIGZvciBwYWNrYWdlIHVwZGF0ZXMuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIkFsbCBwYWNrYWdlcyBhcmUgdXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXZhaWxhYmxlYDtjYXNlImVycm9yIjpyZXR1cm4iRmFpbGVkIHRvIGNoZWNrIGZvciB1cGRhdGVzLiBDbGljayB0byByZXRyeS4iO2RlZmF1bHQ6cmV0dXJuIkNsaWNrIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXMifX1hc3luYyByZWZyZXNoUGFja2FnZVN0YXR1cygpe2F3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHJlZnJlc2hTY3JpcHRzKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpfXN0YXRpY3tGMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgdTJlLE5sdD1nKCgpPT57dTJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVTY3JpcHRJbnRlbGxpU2Vuc2VNYW5hZ2VyIil9bG9hZGVkTGlicz1uZXcgU2V0O25vdEZvdW5kUGFja2FnZXM9bmV3IFNldDttb25hY29JbnN0YW5jZT1udWxsO2V4ZWN1dGlvbkVudmlyb25tZW50PW51bGw7ZmlsZUNhY2hlPW5ldyBNYXA7YWRkZWRFeHRyYUxpYnM9bmV3IE1hcDtnZXQgdHNBcGkoKXtyZXR1cm4gdGhpcy5tb25hY29JbnN0YW5jZT90aGlzLm1vbmFjb0luc3RhbmNlLmxhbmd1YWdlcy50eXBlc2NyaXB0Om51bGx9YXN5bmMgaW5pdChlLHQpe3RoaXMubW9uYWNvSW5zdGFuY2U9ZSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50PXQsdGhpcy5jb25maWd1cmVDb21waWxlck9wdGlvbnMoKSxhd2FpdCB0aGlzLmxvYWRBbGxQcm9qZWN0RmlsZXMoKX1hc3luYyBsb2FkQWxsUHJvamVjdEZpbGVzKCl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5sb2FkRmlsZXNGcm9tRGlyZWN0b3J5KCIvIil9YXN5bmMgbG9hZEZpbGVzRnJvbURpcmVjdG9yeShlKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgdD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoZSk7Zm9yKGxldCBhIG9mIHQpe2xldCByPWU9PT0iLyI/YC8ke2EubmFtZX1gOmAke2V9LyR7YS5uYW1lfWA7aWYoYS5uYW1lIT09Im5vZGVfbW9kdWxlcyIpe2lmKGEudHlwZT09PSJkaXJlY3RvcnkiKWF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeShyKTtlbHNlIGlmKGEudHlwZT09PSJmaWxlIil7bGV0IG49YS5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCk7aWYobj09PSJ0cyJ8fG49PT0idHN4Inx8bj09PSJqcyJ8fG49PT0ianN4Iil0cnl7bGV0IG89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShyKTt0aGlzLmFkZEZpbGVNb2RlbChyLG8pfWNhdGNoe319fX19Y2F0Y2h7fX1jb25maWd1cmVDb21waWxlck9wdGlvbnMoKXtsZXQgZT10aGlzLnRzQXBpO2UmJihlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXRDb21waWxlck9wdGlvbnMoe3RhcmdldDplLlNjcmlwdFRhcmdldC5FUzIwMjAsbW9kdWxlOmUuTW9kdWxlS2luZC5FU05leHQsbW9kdWxlUmVzb2x1dGlvbjplLk1vZHVsZVJlc29sdXRpb25LaW5kLkJ1bmRsZXI/P2UuTW9kdWxlUmVzb2x1dGlvbktpbmQuTm9kZUpzLGFsbG93U3ludGhldGljRGVmYXVsdEltcG9ydHM6ITAsZXNNb2R1bGVJbnRlcm9wOiEwLHN0cmljdDohMCxub0VtaXQ6ITAsYWxsb3dKczohMCxjaGVja0pzOiExLGFsbG93Tm9uVHNFeHRlbnNpb25zOiEwLGxpYjpbImVzMjAyMCIsImRvbSIsImRvbS5pdGVyYWJsZSJdLGJhc2VVcmw6Ii8iLGFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zOiEwLHJlc29sdmVKc29uTW9kdWxlOiEwfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RGlhZ25vc3RpY3NPcHRpb25zKHtub1NlbWFudGljVmFsaWRhdGlvbjohMSxub1N5bnRheFZhbGlkYXRpb246ITF9KSxlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXRFYWdlck1vZGVsU3luYyghMCkpfXBhcnNlSW1wb3J0cyhlKXtsZXQgdD1bXSxhPS9pbXBvcnRccysoPzpbXHcqe31ccyxdK2Zyb21ccyspP1snIl0oW14nIl0rKVsnIl0vZyxyO2Zvcig7KHI9YS5leGVjKGUpKSE9PW51bGw7KXtsZXQgbz1yWzFdO2lmKCFvLnN0YXJ0c1dpdGgoIi4iKSYmIW8uc3RhcnRzV2l0aCgiLyIpKXtsZXQgbD1vLnN0YXJ0c1dpdGgoIkAiKT9vLnNwbGl0KCIvIikuc2xpY2UoMCwyKS5qb2luKCIvIik6by5zcGxpdCgiLyIpWzBdO3QucHVzaChsKX19bGV0IG49L3JlcXVpcmVccypcKFxzKlsnIl0oW14nIl0rKVsnIl1ccypcKS9nO2Zvcig7KHI9bi5leGVjKGUpKSE9PW51bGw7KXtsZXQgbz1yWzFdO2lmKCFvLnN0YXJ0c1dpdGgoIi4iKSYmIW8uc3RhcnRzV2l0aCgiLyIpKXtsZXQgbD1vLnN0YXJ0c1dpdGgoIkAiKT9vLnNwbGl0KCIvIikuc2xpY2UoMCwyKS5qb2luKCIvIik6by5zcGxpdCgiLyIpWzBdO3QucHVzaChsKX19cmV0dXJuWy4uLm5ldyBTZXQodCldfWFzeW5jIGxvYWRUeXBlc0ZvclBhY2thZ2UoZSl7aWYoISghdGhpcy5tb25hY29JbnN0YW5jZXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpJiYhdGhpcy5sb2FkZWRMaWJzLmhhcyhlKSYmIXRoaXMubm90Rm91bmRQYWNrYWdlcy5oYXMoZSkpdHJ5e2xldCB0PWF3YWl0IHRoaXMudHJ5TG9hZFBhY2thZ2VUeXBlcyhlKTt0fHwodD1hd2FpdCB0aGlzLnRyeUxvYWRBdFR5cGVzUGFja2FnZShlKSksdD90aGlzLmxvYWRlZExpYnMuYWRkKGUpOnRoaXMubm90Rm91bmRQYWNrYWdlcy5hZGQoZSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKGBGYWlsZWQgdG8gbG9hZCB0eXBlcyBmb3IgJHtlfTpgLHQpfX1hc3luYyB0cnlMb2FkUGFja2FnZVR5cGVzKGUpe2xldCB0PXRoaXMudHNBcGk7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0KXJldHVybiExO2xldCBhPWAvbm9kZV9tb2R1bGVzLyR7ZX1gO3RyeXtsZXQgcj1gJHthfS9wYWNrYWdlLmpzb25gO2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHIpKXtsZXQgbD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHIpLHA9SlNPTi5wYXJzZShsKTtpZih0LnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihsLGBmaWxlOi8vJHtyfWApLHAudHlwZXN8fHAudHlwaW5ncylyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShhKSwhMH1sZXQgbz1bYCR7YX0vaW5kZXguZC50c2AsYCR7YX0vZGlzdC9pbmRleC5kLnRzYCxgJHthfS9saWIvaW5kZXguZC50c2BdO2ZvcihsZXQgbCBvZiBvKWlmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKGwpKXJldHVybiBhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGEpLCEwO3JldHVybiExfWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBwYWNrYWdlIHR5cGVzIGZvciAke2V9OmAsciksITF9fWFzeW5jIGxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGUpe2xldCB0PXRoaXMudHNBcGk7IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0fHxhd2FpdCB0aGlzLmxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl9YXN5bmMgbG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShlKXtsZXQgdD10aGlzLnRzQXBpO2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0KSl0cnl7bGV0IGE9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgciBvZiBhKXtsZXQgbj1lPT09Ii8iP2AvJHtyLm5hbWV9YDpgJHtlfS8ke3IubmFtZX1gO2lmKHIubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihyLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWREdHNGaWxlc0Zyb21EaXJlY3Rvcnkobik7ZWxzZSBpZihyLnR5cGU9PT0iZmlsZSImJnIubmFtZS5lbmRzV2l0aCgiLmQudHMiKSl0cnl7bGV0IG89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShuKTt0LnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihvLGBmaWxlOi8vJHtufWApfWNhdGNoe319fX1jYXRjaHt9fWFzeW5jIHRyeUxvYWRBdFR5cGVzUGFja2FnZShlKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm4hMTtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke2Uuc3RhcnRzV2l0aCgiQCIpP2BAdHlwZXMvJHtlLnNsaWNlKDEpLnJlcGxhY2UoIi8iLCJfXyIpfWA6YEB0eXBlcy8ke2V9YH1gO3RyeXtsZXQgcj1gJHthfS9pbmRleC5kLnRzYDtyZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMocik/KGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoYSksITApOiExfWNhdGNoe3JldHVybiExfX1hc3luYyBwcm9jZXNzQ29udGVudENoYW5nZShlKXtsZXQgdD10aGlzLnBhcnNlSW1wb3J0cyhlKTtmb3IobGV0IGEgb2YgdCl0aGlzLmxvYWRlZExpYnMuaGFzKGEpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2UoYSl9YXN5bmMgc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLm5vdEZvdW5kUGFja2FnZXMuY2xlYXIoKTt0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbm9kZV9tb2R1bGVzIikpcmV0dXJuO2xldCBlPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcigiL25vZGVfbW9kdWxlcyIpO2ZvcihsZXQgdCBvZiBlKWlmKHQudHlwZT09PSJkaXJlY3RvcnkiKWlmKHQubmFtZS5zdGFydHNXaXRoKCJAIikpdHJ5e2xldCBhPWAvbm9kZV9tb2R1bGVzLyR7dC5uYW1lfWAscj1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoYSk7Zm9yKGxldCBuIG9mIHIpaWYobi50eXBlPT09ImRpcmVjdG9yeSIpe2xldCBvPWAke3QubmFtZX0vJHtuLm5hbWV9YDthd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2Uobyl9fWNhdGNoe31lbHNlIHQubmFtZS5zdGFydHNXaXRoKCIuIil8fGF3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZSh0Lm5hbWUpfWNhdGNoKGUpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIHNjYW4gbm9kZV9tb2R1bGVzOiIsZSl9fX1hZGRGaWxlTW9kZWwoZSx0KXtpZighdGhpcy5tb25hY29JbnN0YW5jZSlyZXR1cm47dGhpcy5maWxlQ2FjaGUuc2V0KGUsdCk7bGV0IGE9dGhpcy5tb25hY29JbnN0YW5jZS5VcmkucGFyc2UoYGZpbGU6Ly8ke2V9YCkscj10aGlzLm1vbmFjb0luc3RhbmNlLmVkaXRvci5nZXRNb2RlbChhKTtpZihyKXIuZ2V0VmFsdWUoKSE9PXQmJnIuc2V0VmFsdWUodCk7ZWxzZXtsZXQgbj10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgoZSk7dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuY3JlYXRlTW9kZWwodCxuLGEpfXRoaXMuYWRkRmlsZUFzRXh0cmFMaWIoZSx0KX1hZGRGaWxlQXNFeHRyYUxpYihlLHQpe2xldCBhPXRoaXMudHNBcGk7aWYoIWEpcmV0dXJuO2xldCByPXRoaXMuYWRkZWRFeHRyYUxpYnMuZ2V0KGUpO3ImJnIuZGlzcG9zZSgpO2xldCBuPWBmaWxlOi8vJHtlfWAsbz1hLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYih0LG4pO2lmKHRoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KGUsbyksZS5lbmRzV2l0aCgiLnRzIikmJiFlLmVuZHNXaXRoKCIuZC50cyIpKXtsZXQgbD1lLnJlcGxhY2UoL1wudHMkLywiLmpzIikscD1gZmlsZTovLyR7bH1gLGQ9YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIodCxwKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChsLGQpLHRoaXMuZmlsZUNhY2hlLnNldChsLHQpfWVsc2UgaWYoZS5lbmRzV2l0aCgiLnRzeCIpKXtsZXQgbD1lLnJlcGxhY2UoL1wudHN4JC8sIi5qc3giKSxwPWBmaWxlOi8vJHtsfWAsZD1hLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYih0LHApO3RoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KGwsZCksdGhpcy5maWxlQ2FjaGUuc2V0KGwsdCl9fWdldEZpbGVDb250ZW50KGUpe3JldHVybiB0aGlzLmZpbGVDYWNoZS5nZXQoZSl9Z2V0TGFuZ3VhZ2VGcm9tUGF0aChlKXtzd2l0Y2goZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuInR5cGVzY3JpcHQiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4iamF2YXNjcmlwdCI7Y2FzZSJqc29uIjpyZXR1cm4ianNvbiI7ZGVmYXVsdDpyZXR1cm4icGxhaW50ZXh0In19fX0pO3ZhciBkNyxmYyx1dHMsUmx0PWcoKCk9PntwZSgpO2t0KCk7Rm90KCk7aHQoKTtIZygpO2Q3PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdXRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZURpZmZFZGl0b3IiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxOPVtMKHt0eXBlOlN0cmluZ30pXSxkNyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ib3JpZ2luYWxDb250ZW50ImluIEUsImhhcyIpLGdldDppKEU9PkUub3JpZ2luYWxDb250ZW50LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uub3JpZ2luYWxDb250ZW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxkNyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGlmaWVkQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibW9kaWZpZWRDb250ZW50ImluIEUsImhhcyIpLGdldDppKEU9PkUubW9kaWZpZWRDb250ZW50LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubW9kaWZpZWRDb250ZW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSxkNyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsTGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im9yaWdpbmFsTGFiZWwiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5vcmlnaW5hbExhYmVsLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uub3JpZ2luYWxMYWJlbD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGIsdiksZDcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJtb2RpZmllZExhYmVsImluIEUsImhhcyIpLGdldDppKEU9PkUubW9kaWZpZWRMYWJlbCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm1vZGlmaWVkTGFiZWw9SH0sInNldCIpfSxtZXRhZGF0YTokfSxtLGYpLGQ3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Imxhbmd1YWdlImluIEUsImhhcyIpLGdldDppKEU9PkUubGFuZ3VhZ2UsImdldCIpLHNldDppKChFLEgpPT57RS5sYW5ndWFnZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksZDcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZmlsZVBhdGgiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5maWxlUGF0aCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmZpbGVQYXRoPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sQyxfKSxkNyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTokfSxudWxsLHQpLE89YT1lLnZhbHVlLCQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6JH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IKICAgICAgLm9yaWdpbmFsQ29udGVudD0ke2BmdW5jdGlvbiBoZWxsbygpIHsKICBjb25zb2xlLmxvZygiSGVsbG8iKTsKfWB9CiAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIFdvcmxkISIpOwogIHJldHVybiB0cnVlOwp9YH0KICAgICAgLmxhbmd1YWdlPSR7InR5cGVzY3JpcHQifQogICAgICAuZmlsZVBhdGg9JHsiL2RlbW8vZXhhbXBsZS50cyJ9CiAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtkaWZmRWRpdG9yRGVmZXJyZWQ9dXQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9ZmModGhpcyxvLCIiKTtnZXQgb3JpZ2luYWxDb250ZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9yaWdpbmFsQ29udGVudCgkKXt0aGlzLiNlPSR9I3Q9KGZjKHRoaXMsbCksZmModGhpcyxkLCIiKSk7Z2V0IG1vZGlmaWVkQ29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RpZmllZENvbnRlbnQoJCl7dGhpcy4jdD0kfSNhPShmYyh0aGlzLHUpLGZjKHRoaXMsYiwiRGlzayBWZXJzaW9uIikpO2dldCBvcmlnaW5hbExhYmVsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9yaWdpbmFsTGFiZWwoJCl7dGhpcy4jYT0kfSNzPShmYyh0aGlzLHYpLGZjKHRoaXMsbSwiTG9jYWwgVmVyc2lvbiIpKTtnZXQgbW9kaWZpZWRMYWJlbCgpe3JldHVybiB0aGlzLiNzfXNldCBtb2RpZmllZExhYmVsKCQpe3RoaXMuI3M9JH0jaT0oZmModGhpcyxmKSxmYyh0aGlzLE0sInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhbmd1YWdlKCQpe3RoaXMuI2k9JH0jcj0oZmModGhpcyx6KSxmYyh0aGlzLEMsIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsZVBhdGgoJCl7dGhpcy4jcj0kfWRpZmZFZGl0b3I9KGZjKHRoaXMsXyksbnVsbCk7bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbDtvcmlnaW5hbE1vZGVsPW51bGw7bW9kaWZpZWRNb2RlbD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxqaS5zZXR1cERvbVRvb2xzKCl9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlmZi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZGlmZi10b29sYmFyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kaWZmLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWZpbGVuYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWxhYmVscyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpZmYtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgJD10aGlzLmZpbGVQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJmaWxlIjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlmZi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLXRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1pbmZvIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpZmYtZmlsZW5hbWUiPiR7JH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWxhYmVscyI+JHt0aGlzLm9yaWdpbmFsTGFiZWx9IOKGlCAke3RoaXMubW9kaWZpZWRMYWJlbH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtYWN0aW9ucyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1idXR0b25zIj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9QcmV2aW91c0RpZmZ9CiAgICAgICAgICAgICAgPlByZXZpb3VzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9OZXh0RGlmZn0KICAgICAgICAgICAgICA+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24tYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJoaWdobGlnaHRlZCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0TG9jYWx9CiAgICAgICAgICAgICAgPlVzZSBMb2NhbDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHREaXNrfQogICAgICAgICAgICAgID5Vc2UgRGlzazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jbG9zZX0KICAgICAgICAgICAgICA+Q2xvc2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChuZXcgTWFwKSxhd2FpdCB0aGlzLmluaXREaWZmRWRpdG9yKCl9YXN5bmMgaW5pdERpZmZFZGl0b3IoKXtsZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kaWZmLWNvbnRhaW5lciIpO2lmKCEkKXJldHVybjtsZXQgRT1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQCR7STFlfWAsSD13aW5kb3cubW9uYWNvO0h8fChhd2FpdCBuZXcgUHJvbWlzZShXPT57bGV0IG1lPXNldEludGVydmFsKCgpPT57d2luZG93Lm1vbmFjbyYmKGNsZWFySW50ZXJ2YWwobWUpLFcoKSl9LDEwMCl9KSxIPXdpbmRvdy5tb25hY28pO2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLEk9ay50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLFA9RGF0ZS5ub3coKSxSPUguVXJpLnBhcnNlKGBkaWZmOi8vb3JpZ2luYWwvJHtQfSR7dGhpcy5maWxlUGF0aH1gKSxLPUguVXJpLnBhcnNlKGBkaWZmOi8vbW9kaWZpZWQvJHtQfSR7dGhpcy5maWxlUGF0aH1gKTt0aGlzLm9yaWdpbmFsTW9kZWw9SC5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5vcmlnaW5hbENvbnRlbnQsdGhpcy5sYW5ndWFnZSxSKSx0aGlzLm1vZGlmaWVkTW9kZWw9SC5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5tb2RpZmllZENvbnRlbnQsdGhpcy5sYW5ndWFnZSxLKSx0aGlzLmRpZmZFZGl0b3I9SC5lZGl0b3IuY3JlYXRlRGlmZkVkaXRvcigkLHthdXRvbWF0aWNMYXlvdXQ6ITAscmVhZE9ubHk6ITEsb3JpZ2luYWxFZGl0YWJsZTohMSxyZW5kZXJTaWRlQnlTaWRlOiEwLGlnbm9yZVRyaW1XaGl0ZXNwYWNlOiExLGZvbnRTaXplOjE0LG1pbmltYXA6e2VuYWJsZWQ6ITF9fSksSC5lZGl0b3Iuc2V0VGhlbWUoSSksdGhpcy5kaWZmRWRpdG9yLnNldE1vZGVsKHtvcmlnaW5hbDp0aGlzLm9yaWdpbmFsTW9kZWwsbW9kaWZpZWQ6dGhpcy5tb2RpZmllZE1vZGVsfSksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1rLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKFc9PntsZXQgbWU9Vz8idnMiOiJ2cy1kYXJrIjtILmVkaXRvci5zZXRUaGVtZShtZSl9KTtsZXQgVj0ibW9uYWNvLWRpZmYtZWRpdG9yLWNzcyI7aWYoIXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoVikpe2xldCBtZT1hd2FpdChhd2FpdCBmZXRjaChgJHtFfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksQj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0IuaWQ9VixCLnRleHRDb250ZW50PW1lLHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kKEIpfXNldFRpbWVvdXQoKCk9Pnt0cnl7dGhpcy5kaWZmRWRpdG9yPy5yZXZlYWxGaXJzdERpZmYoKX1jYXRjaHt9fSwxMDApLHRoaXMuZGlmZkVkaXRvckRlZmVycmVkLnJlc29sdmUodGhpcy5kaWZmRWRpdG9yKX1nb1RvTmV4dERpZmYoKXt0cnl7dGhpcy5kaWZmRWRpdG9yPy5nb1RvRGlmZigibmV4dCIpfWNhdGNoe319Z29Ub1ByZXZpb3VzRGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJwcmV2aW91cyIpfWNhdGNoe319YWNjZXB0TG9jYWwoKXtsZXQgJD10aGlzLmRpZmZFZGl0b3I/LmdldE1vZGlmaWVkRWRpdG9yKCkuZ2V0VmFsdWUoKXx8dGhpcy5tb2RpZmllZENvbnRlbnQ7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtbG9jYWwiLGNvbnRlbnQ6JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hY2NlcHREaXNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtZGlzayIsY29udGVudDp0aGlzLm9yaWdpbmFsQ29udGVudH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtY2xvc2VkIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMub3JpZ2luYWxNb2RlbCYmKHRoaXMub3JpZ2luYWxNb2RlbC5kaXNwb3NlKCksdGhpcy5vcmlnaW5hbE1vZGVsPW51bGwpLHRoaXMubW9kaWZpZWRNb2RlbCYmKHRoaXMubW9kaWZpZWRNb2RlbC5kaXNwb3NlKCksdGhpcy5tb2RpZmllZE1vZGVsPW51bGwpLHRoaXMuZGlmZkVkaXRvciYmKHRoaXMuZGlmZkVkaXRvci5kaXNwb3NlKCksdGhpcy5kaWZmRWRpdG9yPW51bGwpfXN0YXRpY3tmYyhhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgTmksbmEscHRzLEFTYT1nKCgpPT57cGUoKTtrdCgpO2h0KCk7bDJlKCk7VmcoKTtkMmUoKTtkMmUoKTt1SigpO3VKKCk7SWx0KCk7QWx0KCk7R2EoKTtWZygpO05sdCgpO2ZyKCk7SXQoKTthMmUoKTtSbHQoKTtOaT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbmE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHB0cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W10sc2Usb2U9W10sYWU9W10sVGUsUmU9W10sQmU9W10sR2UsRGU9W10sX2U9W10sQ2UsdmU9W10sYmU9W10sRWUsamU9W10sV2U9W10sc3QsTWU9W10sZ2U9W107dmFyIEllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGNlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe2F0dHJpYnV0ZTohMX0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sc2U9W1koKV0sVGU9W1koKV0sR2U9W1koKV0sQ2U9W1koKV0sRWU9W1koKV0sc3Q9W1koKV0sTmkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuZXhlY3V0aW9uRW52aXJvbm1lbnQsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5leGVjdXRpb25FbnZpcm9ubWVudD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sbyxsKSxOaSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxpemF0aW9uUHJvbWlzZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImluaXRpYWxpemF0aW9uUHJvbWlzZSJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmluaXRpYWxpemF0aW9uUHJvbWlzZSwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmluaXRpYWxpemF0aW9uUHJvbWlzZT1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sZCx1KSxOaSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dGaWxlVHJlZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+InNob3dGaWxlVHJlZSJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLnNob3dGaWxlVHJlZSwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLnNob3dGaWxlVHJlZT1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sYix2KSxOaSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUZXJtaW5hbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+InNob3dUZXJtaW5hbCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLnNob3dUZXJtaW5hbCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLnNob3dUZXJtaW5hbD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sbSxmKSxOaSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJmaWxlVHJlZVdpZHRoImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuZmlsZVRyZWVXaWR0aCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmZpbGVUcmVlV2lkdGg9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LE0seiksTmkodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+InRlcm1pbmFsSGVpZ2h0ImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUudGVybWluYWxIZWlnaHQsImdldCIpLHNldDppKChkZSxMZSk9PntkZS50ZXJtaW5hbEhlaWdodD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sQyxfKSxOaSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5GaWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+Im9wZW5GaWxlcyJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLm9wZW5GaWxlcywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLm9wZW5GaWxlcz1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sJCxFKSxOaSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUZpbGVQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iYWN0aXZlRmlsZVBhdGgiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5hY3RpdmVGaWxlUGF0aCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmFjdGl2ZUZpbGVQYXRoPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxrLFMpLE5pKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNUZXJtaW5hbENvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImlzVGVybWluYWxDb2xsYXBzZWQiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pc1Rlcm1pbmFsQ29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuaXNUZXJtaW5hbENvbGxhcHNlZD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sUCxSKSxOaSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRmlsZVRyZWVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc0ZpbGVUcmVlQ29sbGFwc2VkImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuaXNGaWxlVHJlZUNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzRmlsZVRyZWVDb2xsYXBzZWQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LFYsVyksTmkodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNJbml0aWFsaXppbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc0luaXRpYWxpemluZyJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmlzSW5pdGlhbGl6aW5nLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuaXNJbml0aWFsaXppbmc9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LEIsVSksTmkodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlQm90dG9tUGFuZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJhY3RpdmVCb3R0b21QYW5lbCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmFjdGl2ZUJvdHRvbVBhbmVsLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuYWN0aXZlQm90dG9tUGFuZWw9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LEYsaiksTmkodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlhZ25vc3RpY01hcmtlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJkaWFnbm9zdGljTWFya2VycyJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmRpYWdub3N0aWNNYXJrZXJzLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuZGlhZ25vc3RpY01hcmtlcnM9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LGxlLFEpLE5pKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TYXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iYXV0b1NhdmUiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5hdXRvU2F2ZSwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmF1dG9TYXZlPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSx0ZSxlZSksTmkodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpbml0Q29tbWFuZCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmluaXRDb21tYW5kLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuaW5pdENvbW1hbmQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LFgsWiksTmkodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdE91dHB1dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImluaXRPdXRwdXQiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pbml0T3V0cHV0LCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuaW5pdE91dHB1dD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0scSxBKSxOaSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50RmlsZVRyZWVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImN1cnJlbnRGaWxlVHJlZVdpZHRoImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuY3VycmVudEZpbGVUcmVlV2lkdGgsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5jdXJyZW50RmlsZVRyZWVXaWR0aD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sb2UsYWUpLE5pKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUZXJtaW5hbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImN1cnJlbnRUZXJtaW5hbEhlaWdodCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmN1cnJlbnRUZXJtaW5hbEhlaWdodCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sUmUsQmUpLE5pKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmdGaWxlVHJlZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImlzRHJhZ2dpbmdGaWxlVHJlZSJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmlzRHJhZ2dpbmdGaWxlVHJlZSwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzRHJhZ2dpbmdGaWxlVHJlZT1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sRGUsX2UpLE5pKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmdUZXJtaW5hbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImlzRHJhZ2dpbmdUZXJtaW5hbCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmlzRHJhZ2dpbmdUZXJtaW5hbCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzRHJhZ2dpbmdUZXJtaW5hbD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sdmUsYmUpLE5pKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dEaWZmVmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+InNob3dEaWZmVmlldyJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLnNob3dEaWZmVmlldywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLnNob3dEaWZmVmlldz1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0samUsV2UpLE5pKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpZmZWaWV3Q29uZmlnIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iZGlmZlZpZXdDb25maWciaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5kaWZmVmlld0NvbmZpZywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmRpZmZWaWV3Q29uZmlnPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxNZSxnZSksTmkobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Y2V9LG51bGwsdCksSWU9YT1lLnZhbHVlLGNlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmNlfSl9c3RhdGljIGRlbW89aSgoKT0+e2xldCBjZT1uZXcgTHgsZGU9KGFzeW5jKCk9Pnthd2FpdCBjZS5pbml0KCk7bGV0IFllPXsicGFja2FnZS5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe25hbWU6ImRlbW8tcHJvamVjdCIsdmVyc2lvbjoiMS4wLjAiLHR5cGU6Im1vZHVsZSIsc2NyaXB0czp7YnVpbGQ6InRzYyIsZGV2OiJ0c2MgLS13YXRjaCJ9LGRlcGVuZGVuY2llczp7IkBwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSI6Il40LjIuMyJ9LGRldkRlcGVuZGVuY2llczp7IkB0eXBlcy9ub2RlIjoiXjIyLjAuMCIsdHlwZXNjcmlwdDoiXjUuMC4wIn19LG51bGwsMil9fSwibnBtZXh0cmEuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtkZWVzRWRpdG9yV29ya3NwYWNlOntvbkluaXQ6InBucG0gaW5zdGFsbCJ9fSxudWxsLDIpfX0sInRzY29uZmlnLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7Y29tcGlsZXJPcHRpb25zOnt0YXJnZXQ6IkVTMjAyMiIsbW9kdWxlOiJOb2RlTmV4dCIsbW9kdWxlUmVzb2x1dGlvbjoiTm9kZU5leHQiLHN0cmljdDohMCxvdXREaXI6Ii4vZGlzdCIscm9vdERpcjoiLi9zcmMiLGRlY2xhcmF0aW9uOiEwfSxpbmNsdWRlOlsic3JjLyoqLyoiXX0sbnVsbCwyKX19LHNyYzp7ZGlyZWN0b3J5OnsiaW5kZXgudHMiOntmaWxlOntjb250ZW50czpgLy8gTWFpbiBlbnRyeSBwb2ludAppbXBvcnQgeyBncmVldCwgZm9ybWF0TmFtZSB9IGZyb20gJy4vdXRpbHMuanMnOwoKY29uc3QgbmFtZSA9IGZvcm1hdE5hbWUoJ1dvcmxkJyk7CmNvbnNvbGUubG9nKGdyZWV0KG5hbWUpKTsKCi8vIEV4YW1wbGUgYXN5bmMgZnVuY3Rpb24KYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoJ0hlbGxvIGZyb20gYXN5bmMhJyk7CiAgY29uc29sZS5sb2cocmVzdWx0KTsKfQoKbWFpbigpOwpgfX0sInV0aWxzLnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFV0aWxpdHkgZnVuY3Rpb25zCgpleHBvcnQgaW50ZXJmYWNlIElVc2VyIHsKICBmaXJzdE5hbWU6IHN0cmluZzsKICBsYXN0TmFtZTogc3RyaW5nOwp9CgpleHBvcnQgZnVuY3Rpb24gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICByZXR1cm4gXGBIZWxsbywgXCR7bmFtZX0hXGA7Cn0KCmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIG5hbWUudHJpbSgpLnRvVXBwZXJDYXNlKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVc2VyKGZpcnN0TmFtZTogc3RyaW5nLCBsYXN0TmFtZTogc3RyaW5nKTogSVVzZXIgewogIHJldHVybiB7IGZpcnN0TmFtZSwgbGFzdE5hbWUgfTsKfQpgfX0sImltcG9ydHRlc3QudHMiOntmaWxlOntjb250ZW50czpgLy8gVGVzdCBucG0gcGFja2FnZSBpbXBvcnRzCmltcG9ydCAqIGFzIHNtYXJ0cHJvbWlzZSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnOwoKLy8gVGhpcyBzaG91bGQgaGF2ZSBJbnRlbGxpU2Vuc2Ugc2hvd2luZyBkZWZlcigpIG1ldGhvZApjb25zdCBkZWZlcnJlZCA9IHNtYXJ0cHJvbWlzZS5kZWZlcjxzdHJpbmc+KCk7CgovLyBUZXN0IHVzaW5nIHRoZSBkZWZlcnJlZCBwcm9taXNlCmFzeW5jIGZ1bmN0aW9uIHRlc3RTbWFydFByb21pc2UoKSB7CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkZWZlcnJlZC5yZXNvbHZlKCdIZWxsbyBmcm9tIHNtYXJ0cHJvbWlzZSEnKTsKICB9LCAxMDApOwoKICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWZlcnJlZC5wcm9taXNlOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCnRlc3RTbWFydFByb21pc2UoKTsKYH19fX19O2F3YWl0IGNlLm1vdW50KFllKX0pKCksTGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IjtsZXQgS2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy13b3Jrc3BhY2UiKTtyZXR1cm4gS2UuZXhlY3V0aW9uRW52aXJvbm1lbnQ9Y2UsS2UuaW5pdGlhbGl6YXRpb25Qcm9taXNlPWRlLExlLmFwcGVuZENoaWxkKEtlKSx3YAogICAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgICAke0xlfQogICAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICBgfSwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9bmEodGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChjZSl7dGhpcy4jZT1jZX0jdD0obmEodGhpcyxsKSxuYSh0aGlzLGQsbnVsbCkpO2dldCBpbml0aWFsaXphdGlvblByb21pc2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKGNlKXt0aGlzLiN0PWNlfSNhPShuYSh0aGlzLHUpLG5hKHRoaXMsYiwhMCkpO2dldCBzaG93RmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0ZpbGVUcmVlKGNlKXt0aGlzLiNhPWNlfSNzPShuYSh0aGlzLHYpLG5hKHRoaXMsbSwhMCkpO2dldCBzaG93VGVybWluYWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1Rlcm1pbmFsKGNlKXt0aGlzLiNzPWNlfSNpPShuYSh0aGlzLGYpLG5hKHRoaXMsTSwyNTApKTtnZXQgZmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBmaWxlVHJlZVdpZHRoKGNlKXt0aGlzLiNpPWNlfSNyPShuYSh0aGlzLHopLG5hKHRoaXMsQywyMDApKTtnZXQgdGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGVybWluYWxIZWlnaHQoY2Upe3RoaXMuI3I9Y2V9I289KG5hKHRoaXMsXyksbmEodGhpcywkLFtdKSk7Z2V0IG9wZW5GaWxlcygpe3JldHVybiB0aGlzLiNvfXNldCBvcGVuRmlsZXMoY2Upe3RoaXMuI289Y2V9I249KG5hKHRoaXMsRSksbmEodGhpcyxrLCIiKSk7Z2V0IGFjdGl2ZUZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI259c2V0IGFjdGl2ZUZpbGVQYXRoKGNlKXt0aGlzLiNuPWNlfSNsPShuYSh0aGlzLFMpLG5hKHRoaXMsUCwhMSkpO2dldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzVGVybWluYWxDb2xsYXBzZWQoY2Upe3RoaXMuI2w9Y2V9I2M9KG5hKHRoaXMsUiksbmEodGhpcyxWLCExKSk7Z2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgaXNGaWxlVHJlZUNvbGxhcHNlZChjZSl7dGhpcy4jYz1jZX0jZD0obmEodGhpcyxXKSxuYSh0aGlzLEIsITApKTtnZXQgaXNJbml0aWFsaXppbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNJbml0aWFsaXppbmcoY2Upe3RoaXMuI2Q9Y2V9I3U9KG5hKHRoaXMsVSksbmEodGhpcyxGLCJ0ZXJtaW5hbCIpKTtnZXQgYWN0aXZlQm90dG9tUGFuZWwoKXtyZXR1cm4gdGhpcy4jdX1zZXQgYWN0aXZlQm90dG9tUGFuZWwoY2Upe3RoaXMuI3U9Y2V9I3A9KG5hKHRoaXMsaiksbmEodGhpcyxsZSxbXSkpO2dldCBkaWFnbm9zdGljTWFya2Vycygpe3JldHVybiB0aGlzLiNwfXNldCBkaWFnbm9zdGljTWFya2VycyhjZSl7dGhpcy4jcD1jZX1lZGl0b3JFbGVtZW50PShuYSh0aGlzLFEpLG51bGwpO2luaXRpYWxpemF0aW9uU3RhcnRlZD0hMTtpbnRlbGxpU2Vuc2VNYW5hZ2VyPW51bGw7aW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQ9ITE7bm9kZU1vZHVsZXNXYXRjaGVyPW51bGw7bm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQ9bnVsbDtpbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQ9bnVsbDtvcGVuRmlsZVdhdGNoZXJzPW5ldyBNYXA7ZmlsZUNoYW5nZURlYm91bmNlPW5ldyBNYXA7YWN0aW9uYmFyRWxlbWVudD1udWxsOyNoPW5hKHRoaXMsdGUsITEpO2dldCBhdXRvU2F2ZSgpe3JldHVybiB0aGlzLiNofXNldCBhdXRvU2F2ZShjZSl7dGhpcy4jaD1jZX1hdXRvU2F2ZUludGVydmFsPShuYSh0aGlzLGVlKSxudWxsKTsjZj1uYSh0aGlzLFgsIiIpO2dldCBpbml0Q29tbWFuZCgpe3JldHVybiB0aGlzLiNmfXNldCBpbml0Q29tbWFuZChjZSl7dGhpcy4jZj1jZX0jbT0obmEodGhpcyxaKSxuYSh0aGlzLHEsW10pKTtnZXQgaW5pdE91dHB1dCgpe3JldHVybiB0aGlzLiNtfXNldCBpbml0T3V0cHV0KGNlKXt0aGlzLiNtPWNlfSNnPShuYSh0aGlzLEEpLG5hKHRoaXMsb2UsMjUwKSk7Z2V0IGN1cnJlbnRGaWxlVHJlZVdpZHRoKCl7cmV0dXJuIHRoaXMuI2d9c2V0IGN1cnJlbnRGaWxlVHJlZVdpZHRoKGNlKXt0aGlzLiNnPWNlfSNiPShuYSh0aGlzLGFlKSxuYSh0aGlzLFJlLDIwMCkpO2dldCBjdXJyZW50VGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jYn1zZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KGNlKXt0aGlzLiNiPWNlfSN2PShuYSh0aGlzLEJlKSxuYSh0aGlzLERlLCExKSk7Z2V0IGlzRHJhZ2dpbmdGaWxlVHJlZSgpe3JldHVybiB0aGlzLiN2fXNldCBpc0RyYWdnaW5nRmlsZVRyZWUoY2Upe3RoaXMuI3Y9Y2V9I3g9KG5hKHRoaXMsX2UpLG5hKHRoaXMsdmUsITEpKTtnZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI3h9c2V0IGlzRHJhZ2dpbmdUZXJtaW5hbChjZSl7dGhpcy4jeD1jZX0jeT0obmEodGhpcyxiZSksbmEodGhpcyxqZSwhMSkpO2dldCBzaG93RGlmZlZpZXcoKXtyZXR1cm4gdGhpcy4jeX1zZXQgc2hvd0RpZmZWaWV3KGNlKXt0aGlzLiN5PWNlfSN3PShuYSh0aGlzLFdlKSxuYSh0aGlzLE1lLG51bGwpKTtnZXQgZGlmZlZpZXdDb25maWcoKXtyZXR1cm4gdGhpcy4jd31zZXQgZGlmZlZpZXdDb25maWcoY2Upe3RoaXMuI3c9Y2V9a2V5ZG93bkhhbmRsZXI9KG5hKHRoaXMsZ2UpLGNlPT57KGNlLm1ldGFLZXl8fGNlLmN0cmxLZXkpJiZjZS5rZXk9PT0icyImJiFjZS5zaGlmdEtleSYmKGNlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlQWN0aXZlRmlsZSgpKSwoY2UubWV0YUtleXx8Y2UuY3RybEtleSkmJmNlLnNoaWZ0S2V5JiZjZS5rZXkudG9Mb3dlckNhc2UoKT09PSJzIiYmKGNlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlQWxsRmlsZXMoKSl9KTtoYW5kbGVGaWxlVHJlZU1vdXNlRG93bj1pKGNlPT57Y2UucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKX0sImhhbmRsZUZpbGVUcmVlTW91c2VEb3duIik7aGFuZGxlRmlsZVRyZWVNb3VzZU1vdmU9aShjZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZSlyZXR1cm47bGV0IGRlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTGU9Y2UuY2xpZW50WC1kZS5sZWZ0LEtlPTE1MCxZZT1kZS53aWR0aCouNSxvdD1NYXRoLm1heChLZSxNYXRoLm1pbihZZSxMZSkpO3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9b3R9LCJoYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSIpO2hhbmRsZUZpbGVUcmVlTW91c2VVcD1pKCgpPT57dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVGaWxlVHJlZU1vdXNlVXAiKTtoYW5kbGVUZXJtaW5hbE1vdXNlRG93bj1pKGNlPT57Y2UucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKX0sImhhbmRsZVRlcm1pbmFsTW91c2VEb3duIik7aGFuZGxlVGVybWluYWxNb3VzZU1vdmU9aShjZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbClyZXR1cm47bGV0IGRlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTGU9Y2UuY2xpZW50WS1kZS50b3AsS2U9ZGUuaGVpZ2h0LUxlLFllPTEwMCxvdD1kZS5oZWlnaHQqLjcsVXQ9TWF0aC5tYXgoWWUsTWF0aC5taW4ob3QsS2UpKTt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1VdH0sImhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlIik7aGFuZGxlVGVybWluYWxNb3VzZVVwPWkoKCk9Pnt0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX0sImhhbmRsZVRlcm1pbmFsTW91c2VVcCIpO3N0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utb3V0ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZWRpdG9yLWFyZWEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZWRpdG9yLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucGFuZWwtYWN0aW9uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgMTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFiLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAudGFiLWNsb3NlIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1tb2RpZmllZCB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAzMnB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbXMtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA0NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQwIDcwJSA1MCUpIiwiaHNsKDQwIDcwJSA0NSUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlLm5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1saXN0IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0tZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLW1lc3NhZ2UgewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWxvY2F0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1lbXB0eSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTUlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyBkZWVzLWljb24gewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIFJlc2l6ZSBoYW5kbGVzICovCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3ZlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5maWxldHJlZS1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvci1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe2xldCBjZT1bIndvcmtzcGFjZS1jb250YWluZXIiLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlfHx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO3JldHVybiB0aGlzLmlzSW5pdGlhbGl6aW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5pdGlhbGl6aW5nIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxvYWRlcjIifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+SW5pdGlhbGl6aW5nIHdvcmtzcGFjZS4uLjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgICAgICAgIC5jb21tYW5kPSR7dGhpcy5pbml0Q29tbWFuZHx8IiJ9CiAgICAgICAgICAgIC5saW5lcz0ke3RoaXMuaW5pdE91dHB1dH0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLW91dGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSIke2NlfSI+CiAgICAgICAgICA8IS0tIEZpbGV0cmVlIHBhbmVsIChmdWxsIGhlaWdodCkgLS0+CiAgICAgICAgICAke3RoaXMuc2hvd0ZpbGVUcmVlP3dgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZmlsZXRyZWUtcGFuZWwgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/MDp0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRofXB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlCiAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgLnNlbGVjdGVkUGF0aD0ke3RoaXMuYWN0aXZlRmlsZVBhdGh9CiAgICAgICAgICAgICAgICBAZmlsZS1zZWxlY3Q9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8iIjp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLXZlcnRpY2FsICR7dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlRG93bn0KICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDwhLS0gRWRpdG9yICsgVGVybWluYWwgYXJlYSAtLT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1hcmVhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXBhbmVsIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5vcGVuRmlsZXMubWFwKGRlPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWIgJHtkZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmF0ZUZpbGUoZGUucGF0aCl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtkZS5tb2RpZmllZD93YDxzcGFuIGNsYXNzPSJ0YWItbW9kaWZpZWQiPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1uYW1lIj4ke2RlLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7TGU9PnRoaXMuY2xvc2VGaWxlKExlLGRlLnBhdGgpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItbWVudS1idXR0b24iIEBjbGljaz0ke3RoaXMuc2hvd0VkaXRvck1lbnV9IHRpdGxlPSJFZGl0b3Igb3B0aW9ucyI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOm1vcmVWZXJ0aWNhbCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2hvd0RpZmZWaWV3JiZ0aGlzLmRpZmZWaWV3Q29uZmlnP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuZGlmZlZpZXdDb25maWcuZmlsZVBhdGh9CiAgICAgICAgICAgICAgICAgICAgLm9yaWdpbmFsQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcub3JpZ2luYWxDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm1vZGlmaWVkQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmxhbmd1YWdlfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLXJlc29sdmVkPSR7dGhpcy5oYW5kbGVEaWZmUmVzb2x2ZWR9CiAgICAgICAgICAgICAgICAgICAgQGRpZmYtY2xvc2VkPSR7KCk9Pnt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9fQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICAgICAgICAgICAgICAgIGA6dGhpcy5vcGVuRmlsZXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZUNvZGUifSBpY29uU2l6ZT0iNDgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBhIGZpbGUgdG8gZWRpdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5jb250ZW50PSR7dGhpcy5nZXRBY3RpdmVGaWxlQ29udGVudCgpfQogICAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0aGlzLmFjdGl2ZUZpbGVQYXRoKX0KICAgICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBIb3Jpem9udGFsIHJlc2l6ZSBoYW5kbGUgZm9yIHRlcm1pbmFsIC0tPgogICAgICAgICAgICAke3RoaXMuc2hvd1Rlcm1pbmFsJiYhdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkP3dgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCAke3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlVGVybWluYWxNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgPCEtLSBUZXJtaW5hbCBwYW5lbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbD93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC1wYW5lbCAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgICAgICBzdHlsZT0iaGVpZ2h0OiAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8zMjp0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodH1weCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC10YWJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InRlcm1pbmFsIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBUZXJtaW5hbAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYW5lbC10YWIgJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmVCb3R0b21QYW5lbD0icHJvYmxlbXMifQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNpcmNsZUFsZXJ0In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIFByb2JsZW1zCiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhbmVsLXRhYi1iYWRnZSAke3RoaXMuZ2V0RXJyb3JDb3VudCgpPT09MD8id2FybmluZyI6IiJ9Ij4ke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RofTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYWN0aW9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVRlcm1pbmFsfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgLmljb249JHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uVXAiOiJsdWNpZGU6Y2hldnJvbkRvd24ifQogICAgICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InRlcm1pbmFsIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwKICAgICAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgICAgIC5zZXR1cENvbW1hbmQ9JHsiIn0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0icHJvYmxlbXMiPyJibG9jayI6Im5vbmUifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJQcm9ibGVtc1BhbmVsKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEJvdHRvbSBCYXIgKGZ1bGwgd2lkdGgpIC0tPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIKICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICBAcnVuLXByb2Nlc3M9JHt0aGlzLmhhbmRsZVJ1blByb2Nlc3N9CiAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bkhhbmRsZXIpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuYXV0b1NhdmVJbnRlcnZhbCksdGhpcy5hdXRvU2F2ZUludGVydmFsPW51bGwpLHRoaXMuc3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpLHRoaXMuc3RvcEFsbEZpbGVXYXRjaGVycygpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCl9YXN5bmMgdXBkYXRlZChjZSl7Y2UuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKSx0aGlzLmFjdGlvbmJhckVsZW1lbnR8fCh0aGlzLmFjdGlvbmJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdG9yLXBhbmVsIGRlZXMtYWN0aW9uYmFyIikpfWFzeW5jIGluaXRpYWxpemVXb3Jrc3BhY2UoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQpe3RoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSEwLHRoaXMuaXNJbml0aWFsaXppbmc9ITA7dHJ5e3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpLGF3YWl0IHRoaXMuZXhlY3V0ZU9uSW5pdENvbW1hbmQoKX1jYXRjaChjZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgd29ya3NwYWNlOiIsY2UpLHRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSExfWZpbmFsbHl7dGhpcy5pc0luaXRpYWxpemluZz0hMX19fWFzeW5jIGV4ZWN1dGVPbkluaXRDb21tYW5kKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ucG1leHRyYS5qc29uIikpe2xldCBjZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvbnBtZXh0cmEuanNvbiIpLExlPUpTT04ucGFyc2UoY2UpPy5kZWVzRWRpdG9yV29ya3NwYWNlPy5vbkluaXQ7aWYoTGUmJnR5cGVvZiBMZT09InN0cmluZyIpe2NvbnNvbGUubG9nKCJFeGVjdXRpbmcgb25Jbml0IGNvbW1hbmQ6IixMZSksdGhpcy5pbml0Q29tbWFuZD1MZSx0aGlzLmluaXRPdXRwdXQ9W107bGV0W0tlLC4uLlllXT1MZS5zcGxpdCgiICIpLG90PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oS2UsWWUpO290Lm91dHB1dC5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTppKFp0PT57bGV0IGphPVp0LnNwbGl0KGAKYCk7Zm9yKGxldCBldCBvZiBqYSlldCYmKHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LGV0XSl9LCJ3cml0ZSIpfSkpO2xldCBVdD1hd2FpdCBvdC5leGl0O2NvbnNvbGUubG9nKCJvbkluaXQgY29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6IixVdCksdGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsIiIsYENvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiAke1V0fWBdfX19Y2F0Y2goY2Upe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGV4ZWN1dGUgb25Jbml0IGNvbW1hbmQ6IixjZSl9fWFzeW5jIGluaXRpYWxpemVJbnRlbGxpU2Vuc2UoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZClyZXR1cm47bGV0IGNlPXdpbmRvdy5tb25hY287aWYoY2V8fChhd2FpdCBuZXcgUHJvbWlzZShkZT0+c2V0VGltZW91dChkZSwxMDApKSxjZT13aW5kb3cubW9uYWNvKSwhY2Upe2NvbnNvbGUud2FybigiTW9uYWNvIG5vdCB5ZXQgbG9hZGVkLCBJbnRlbGxpU2Vuc2Ugd2lsbCBiZSBpbml0aWFsaXplZCBsYXRlciIpO3JldHVybn10aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkPSEwLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcj1uZXcgdTJlLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KGNlLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuc2V0dXBNYXJrZXJMaXN0ZW5lcigpLHRoaXMuc3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKSxhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX1zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyKSl0cnl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaCgiL25vZGVfbW9kdWxlcyIsKGNlLGRlKT0+e3RoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9LDJlMyl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChjZSl7Y29uc29sZS53YXJuKCJDb3VsZCBub3Qgd2F0Y2ggbm9kZV9tb2R1bGVzOiIsY2UpfX1zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXImJih0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlci5zdG9wKCksdGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9bnVsbCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0V2F0Y2hpbmdGaWxlKGNlKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKGNlKSkpdHJ5e2xldCBkZT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKGNlLChMZSxLZSk9PntsZXQgWWU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGNlKTtZZSYmY2xlYXJUaW1lb3V0KFllKTtsZXQgb3Q9c2V0VGltZW91dCgoKT0+e3RoaXMuaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGNlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoY2UpfSwzMDApO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChjZSxvdCl9KTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuc2V0KGNlLGRlKX1jYXRjaChkZSl7Y29uc29sZS53YXJuKGBDb3VsZCBub3Qgd2F0Y2ggZmlsZSAke2NlfTpgLGRlKX19c3RvcFdhdGNoaW5nRmlsZShjZSl7bGV0IGRlPXRoaXMub3BlbkZpbGVXYXRjaGVycy5nZXQoY2UpO2RlJiYoZGUuc3RvcCgpLHRoaXMub3BlbkZpbGVXYXRjaGVycy5kZWxldGUoY2UpKTtsZXQgTGU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGNlKTtMZSYmKGNsZWFyVGltZW91dChMZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGNlKSl9c3RvcEFsbEZpbGVXYXRjaGVycygpe2ZvcihsZXQgY2Ugb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKWNlLnN0b3AoKTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuY2xlYXIoKTtmb3IobGV0IGNlIG9mIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLnZhbHVlcygpKWNsZWFyVGltZW91dChjZSk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKX1hc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoY2Upe2xldCBkZT10aGlzLm9wZW5GaWxlcy5maW5kKExlPT5MZS5wYXRoPT09Y2UpO2lmKCEoIWRlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2xldCBMZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGNlKTtpZihMZT09PWRlLmNvbnRlbnQpcmV0dXJuO2lmKGRlLm1vZGlmaWVkKXtsZXQgS2U9YXdhaXQgdGhpcy5hY3Rpb25iYXJFbGVtZW50Py5zaG93KHttZXNzYWdlOmAiJHtkZS5uYW1lfSIgY2hhbmdlZCBvbiBkaXNrLiBXaGF0IGRvIHlvdSB3YW50IHRvIGRvP2AsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpnaXRNZXJnZSIsYWN0aW9uczpbe2lkOiJsb2FkLWRpc2siLGxhYmVsOiJMb2FkIGZyb20gRGlzayIscHJpbWFyeTohMH0se2lkOiJzYXZlLWxvY2FsIixsYWJlbDoiU2F2ZSBMb2NhbCB0byBEaXNrIn0se2lkOiJjb21wYXJlIixsYWJlbDoiQ29tcGFyZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxNWUzLGRlZmF1bHRBY3Rpb25JZDoibG9hZC1kaXNrIn0sZGlzbWlzc2libGU6ITB9KTtLZT8uYWN0aW9uSWQ9PT0ibG9hZC1kaXNrIj9hd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGNlLExlLCExKTpLZT8uYWN0aW9uSWQ9PT0ic2F2ZS1sb2NhbCI/KGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGNlLGRlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChZZT0+WWUucGF0aD09PWNlP3suLi5ZZSxtb2RpZmllZDohMX06WWUpKTpLZT8uYWN0aW9uSWQ9PT0iY29tcGFyZSImJnRoaXMub3BlbkRpZmZWaWV3KGNlLGRlLmNvbnRlbnQsTGUpfWVsc2UgYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChjZSxMZSwhMCl9Y2F0Y2goTGUpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGhhbmRsZSBleHRlcm5hbCBjaGFuZ2UgZm9yICR7Y2V9OmAsTGUpfX1hc3luYyB1cGRhdGVGaWxlQ29udGVudChjZSxkZSxMZSl7aWYodGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKEtlPT5LZS5wYXRoPT09Y2U/ey4uLktlLGNvbnRlbnQ6ZGUsbW9kaWZpZWQ6ITF9OktlKSxjZT09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCBLZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO0tlJiZhd2FpdCBLZS5zZXRDb250ZW50RXh0ZXJuYWwoZGUsTGUpfX1vcGVuRGlmZlZpZXcoY2UsZGUsTGUpe3RoaXMuZGlmZlZpZXdDb25maWc9e2ZpbGVQYXRoOmNlLG9yaWdpbmFsQ29udGVudDpMZSxtb2RpZmllZENvbnRlbnQ6ZGUsbGFuZ3VhZ2U6dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGNlKX0sdGhpcy5zaG93RGlmZlZpZXc9ITB9YXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKGNlKXtsZXR7YWN0aW9uOmRlLGNvbnRlbnQ6TGV9PWNlLmRldGFpbCxLZT10aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtpZighS2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGw7cmV0dXJufWlmKGRlPT09InVzZS1sb2NhbCIpe2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEtlLExlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoWWU9PlllLnBhdGg9PT1LZT97Li4uWWUsY29udGVudDpMZSxtb2RpZmllZDohMX06WWUpLEtlPT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IFllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7WWUmJmF3YWl0IFllLnNldENvbnRlbnRFeHRlcm5hbChMZSwhMSl9fWVsc2UgZGU9PT0idXNlLWRpc2siJiZhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KEtlLExlLCExKTt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9YXN5bmMgaGFuZGxlRmlsZVNlbGVjdChjZSl7bGV0e3BhdGg6ZGUsbmFtZTpMZX09Y2UuZGV0YWlsO2F3YWl0IHRoaXMub3BlbkZpbGUoZGUsTGUpfWFzeW5jIG9wZW5GaWxlKGNlLGRlKXtpZih0aGlzLm9wZW5GaWxlcy5maW5kKEtlPT5LZS5wYXRoPT09Y2UpKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWNlO3JldHVybn1pZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgS2U9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShjZSk7aWYodGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLHtwYXRoOmNlLG5hbWU6ZGUsY29udGVudDpLZSxtb2RpZmllZDohMX1dLHRoaXMuYWN0aXZlRmlsZVBhdGg9Y2UsdGhpcy5zdGFydFdhdGNoaW5nRmlsZShjZSksIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2Uob3Q9PnNldFRpbWVvdXQob3QsNTAwKSksYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7bGV0IFllPXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChjZSk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoWWU9PT0idHlwZXNjcmlwdCJ8fFllPT09ImphdmFzY3JpcHQiKSYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnByb2Nlc3NDb250ZW50Q2hhbmdlKEtlKX19Y2F0Y2goS2Upe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGZpbGUgJHtjZX06YCxLZSl9fWFjdGl2YXRlRmlsZShjZSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1jZX1jbG9zZUZpbGUoY2UsZGUpe2NlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBMZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgoWWU9PlllLnBhdGg9PT1kZSk7aWYoTGU9PT0tMSlyZXR1cm47bGV0IEtlPXRoaXMub3BlbkZpbGVzW0xlXTtpZighKEtlLm1vZGlmaWVkJiYhY29uZmlybShgJHtLZS5uYW1lfSBoYXMgdW5zYXZlZCBjaGFuZ2VzLiBDbG9zZSBhbnl3YXk/YCkpJiYodGhpcy5zdG9wV2F0Y2hpbmdGaWxlKGRlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5maWx0ZXIoWWU9PlllLnBhdGghPT1kZSksdGhpcy5hY3RpdmVGaWxlUGF0aD09PWRlKSlpZih0aGlzLm9wZW5GaWxlcy5sZW5ndGg+MCl7bGV0IFllPU1hdGgubWluKExlLHRoaXMub3BlbkZpbGVzLmxlbmd0aC0xKTt0aGlzLmFjdGl2ZUZpbGVQYXRoPXRoaXMub3BlbkZpbGVzW1llXS5wYXRofWVsc2UgdGhpcy5hY3RpdmVGaWxlUGF0aD0iIn1nZXRBY3RpdmVGaWxlQ29udGVudCgpe3JldHVybiB0aGlzLm9wZW5GaWxlcy5maW5kKGRlPT5kZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk/LmNvbnRlbnR8fCIifWhhbmRsZUNvbnRlbnRDaGFuZ2UoY2Upe2xldCBkZT1jZS5kZXRhaWwsTGU9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KFllPT5ZZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoTGU9PT0tMSlyZXR1cm47bGV0IEtlPXRoaXMub3BlbkZpbGVzW0xlXTtpZihLZS5jb250ZW50IT09ZGUpe3RoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcy5zbGljZSgwLExlKSx7Li4uS2UsY29udGVudDpkZSxtb2RpZmllZDohMH0sLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoTGUrMSldO2xldCBZZT10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoWWU9PT0idHlwZXNjcmlwdCJ8fFllPT09ImphdmFzY3JpcHQiKSYmKHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQpLHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKGRlKX0sNTAwKSl9fWdldExhbmd1YWdlRnJvbVBhdGgoY2Upe2xldCBkZT1jZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO3JldHVybnt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIsbWQ6Im1hcmtkb3duIix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHhtbDoieG1sIixzcWw6InNxbCIscHk6InB5dGhvbiIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCJ9W2RlfHwiIl18fCJwbGFpbnRleHQifXRvZ2dsZVRlcm1pbmFsKCl7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWR9YXN5bmMgc2F2ZUFjdGl2ZUZpbGUoKXtsZXQgY2U9dGhpcy5vcGVuRmlsZXMuZmluZChkZT0+ZGUucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKCEoIWNlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGNlLnBhdGgsY2UuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGRlPT5kZS5wYXRoPT09Y2UucGF0aD97Li4uZGUsbW9kaWZpZWQ6ITF9OmRlKSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoY2UucGF0aCxjZS5jb250ZW50KX1jYXRjaChkZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNhdmUgZmlsZToiLGRlKX19YXN5bmMgc2F2ZUFsbEZpbGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7Zm9yKGxldCBjZSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoZGU9PmRlLm1vZGlmaWVkKSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoY2UucGF0aCxjZS5jb250ZW50KSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoY2UucGF0aCxjZS5jb250ZW50KX1jYXRjaChkZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHNhdmUgJHtjZS5wYXRofTpgLGRlKX10aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoY2U9Pih7Li4uY2UsbW9kaWZpZWQ6ITF9KSl9fWFzeW5jIHNob3dFZGl0b3JNZW51KGNlKXtjZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgZGU9W3tuYW1lOnRoaXMuYXV0b1NhdmU/Ilx1MjcxMyBBdXRvIFNhdmUiOiJBdXRvIFNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50b2dnbGVBdXRvU2F2ZSgpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246aShhc3luYygpPT50aGlzLnNhdmVBbGxGaWxlcygpLCJhY3Rpb24iKX1dO2F3YWl0ICRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGNlLGRlKX10b2dnbGVBdXRvU2F2ZSgpe3RoaXMuYXV0b1NhdmU9IXRoaXMuYXV0b1NhdmUsdGhpcy5hdXRvU2F2ZT90aGlzLmF1dG9TYXZlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLm9wZW5GaWxlcy5zb21lKGRlPT5kZS5tb2RpZmllZCkmJnRoaXMuc2F2ZUFsbEZpbGVzKCl9LDJlMyk6dGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKX1nZXRFcnJvckNvdW50KCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMuZmlsdGVyKGNlPT5jZS5zZXZlcml0eT09PTgpLmxlbmd0aH1yZW5kZXJQcm9ibGVtc1BhbmVsKCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPT09MD93YAogICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrQ2lyY2xlIn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIHByb2JsZW1zIGRldGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWxpc3QiPgogICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5tYXAoY2U9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWl0ZW0iIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9Qcm9ibGVtKGNlKX0+CiAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICBjbGFzcz0icHJvYmxlbS1pY29uICR7Y2Uuc2V2ZXJpdHk9PT04PyJlcnJvciI6Indhcm5pbmcifSIKICAgICAgICAgICAgICAuaWNvbj0ke2NlLnNldmVyaXR5PT09OD8ibHVjaWRlOmNpcmNsZVgiOiJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9CiAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tZGV0YWlscyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1tZXNzYWdlIj4ke2NlLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1sb2NhdGlvbiI+CiAgICAgICAgICAgICAgICAke2NlLnJlc291cmNlLnBhdGguc3BsaXQoIi8iKS5wb3AoKX0gKCR7Y2Uuc3RhcnRMaW5lTnVtYmVyfSwgJHtjZS5zdGFydENvbHVtbn0pCiAgICAgICAgICAgICAgICAke2NlLnNvdXJjZT9gWyR7Y2Uuc291cmNlfV1gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0oY2Upe2xldCBkZT1jZS5yZXNvdXJjZS5wYXRoLExlPWRlLnNwbGl0KCIvIikucG9wKCl8fCIiO3RoaXMub3BlbkZpbGVzLmZpbmQob3Q9Pm90LnBhdGg9PT1kZSk/dGhpcy5hY3RpdmVGaWxlUGF0aD1kZTphd2FpdCB0aGlzLm9wZW5GaWxlKGRlLExlKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBZZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2lmKFllKXtsZXQgb3Q9YXdhaXQgWWUuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtvdC5yZXZlYWxMaW5lSW5DZW50ZXIoY2Uuc3RhcnRMaW5lTnVtYmVyKSxvdC5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpjZS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmNlLnN0YXJ0Q29sdW1ufSksb3QuZm9jdXMoKX19c2V0dXBNYXJrZXJMaXN0ZW5lcigpe2xldCBjZT13aW5kb3cubW9uYWNvO2NlJiYoY2UuZWRpdG9yLm9uRGlkQ2hhbmdlTWFya2VycyhkZT0+e3RoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKX0pLHRoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKSl9dXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKXtsZXQgY2U9d2luZG93Lm1vbmFjbztpZighY2UpcmV0dXJuO2xldCBkZT1jZS5lZGl0b3IuZ2V0TW9kZWxNYXJrZXJzKHt9KTt0aGlzLmRpYWdub3N0aWNNYXJrZXJzPWRlLm1hcChMZT0+KHttZXNzYWdlOkxlLm1lc3NhZ2Usc2V2ZXJpdHk6TGUuc2V2ZXJpdHksc3RhcnRMaW5lTnVtYmVyOkxlLnN0YXJ0TGluZU51bWJlcixzdGFydENvbHVtbjpMZS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOkxlLmVuZExpbmVOdW1iZXIsZW5kQ29sdW1uOkxlLmVuZENvbHVtbixzb3VyY2U6TGUuc291cmNlLHJlc291cmNlOntwYXRoOkxlLnJlc291cmNlLnBhdGh9fSkpfWFzeW5jIGhhbmRsZVJ1blByb2Nlc3MoY2Upe2xldCBkZT1jZS5kZXRhaWwsTGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpO2lmKCFMZSl7Y29uc29sZS53YXJuKCJUZXJtaW5hbCBjb21wb25lbnQgbm90IGZvdW5kIik7cmV0dXJufXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCYmKHRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hMSksdGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwiLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgTGUuY3JlYXRlUHJvY2Vzc1RhYih7dHlwZTpkZS50eXBlLGxhYmVsOmRlLmxhYmVsLGNvbW1hbmQ6ZGUuY29tbWFuZCxhcmdzOmRlLmFyZ3MsbWV0YWRhdGE6ZGUubWV0YWRhdGEsc3dpdGNoVG9UYWI6ITB9KX1zZXRGaWxlVHJlZVdpZHRoKGNlKXtsZXQgTGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCouNTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPU1hdGgubWF4KDE1MCxNYXRoLm1pbihMZSxjZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXNldFRlcm1pbmFsSGVpZ2h0KGNlKXtsZXQgTGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqLjc7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9TWF0aC5tYXgoMTAwLE1hdGgubWluKExlLGNlKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9cmVzZXRMYXlvdXQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXN0YXRpY3tuYShhLHQpfX07cmV0dXJuIEllPWF9KSgpfSk7dmFyIE5TYT1nKCgpPT57QVNhKCk7Tmx0KCl9KTt2YXIgUlNhPWcoKCk9PntWZygpfSk7dmFyIE9TYT1nKCgpPT57ZDJlKCl9KTt2YXIgRlNhPWcoKCk9Pnt9KTt2YXIgQlNhPWcoKCk9Pnt1SigpO0ZTYSgpO3psdCgpfSk7dmFyIEhTYT1nKCgpPT57SWx0KCl9KTt2YXIgaEosWXUsX2NuLGh0cyxxU2E9ZygoKT0+e3BlKCk7aHQoKTtWZygpO2hKPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxZdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sX2NuPWx0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCksaHRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZU1hcmtkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bWSgpXSx4PVtZKCldLGhKKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3BsaXRSYXRpbyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNwbGl0UmF0aW8sImdldCIpLHNldDppKCh6LE4pPT57ei5zcGxpdFJhdGlvPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxoSih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblBhbmVsU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibWluUGFuZWxTaXplImluIHosImhhcyIpLGdldDppKHo9PnoubWluUGFuZWxTaXplLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubWluUGFuZWxTaXplPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxoSih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50U3BsaXRSYXRpbyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmN1cnJlbnRTcGxpdFJhdGlvLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouY3VycmVudFNwbGl0UmF0aW89Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGhKKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNEcmFnZ2luZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzRHJhZ2dpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5pc0RyYWdnaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxoSihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3duPjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAuZWRpdG9yQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzAzNjNkIil9OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3JDb250YWluZXIsCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07I2U9WXUodGhpcyxvLDUwKTtnZXQgc3BsaXRSYXRpbygpe3JldHVybiB0aGlzLiNlfXNldCBzcGxpdFJhdGlvKE0pe3RoaXMuI2U9TX0jdD0oWXUodGhpcyxsKSxZdSh0aGlzLGQsMTApKTtnZXQgbWluUGFuZWxTaXplKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblBhbmVsU2l6ZShNKXt0aGlzLiN0PU19I2E9KFl1KHRoaXMsdSksWXUodGhpcyxiLDUwKSk7Z2V0IGN1cnJlbnRTcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1cnJlbnRTcGxpdFJhdGlvKE0pe3RoaXMuI2E9TX0jcz0oWXUodGhpcyx2KSxZdSh0aGlzLG0sITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiNzfXNldCBpc0RyYWdnaW5nKE0pe3RoaXMuI3M9TX1yZXNpemVIYW5kbGVFbGVtZW50PVl1KHRoaXMsZik7Y29udGFpbmVyRWxlbWVudDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic3BsaXRDb250YWluZXIgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvckNvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAke3RoaXMuY3VycmVudFNwbGl0UmF0aW99JSI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5sYW5ndWFnZT0keyJtYXJrZG93biJ9CiAgICAgICAgICAgIC5jb250ZW50PSR7YCMgYSB0ZXN0IGNvbnRlbnQKClRoaXMgaXMgdGVzdCBjb250ZW50IHRoYXQgaXMgb2YgbG9uZ2VyIGZvcm0gYW4gaG9wZWZ1bGx5IHN0YXJ0cyB0byB3cmFwIHdoZW4gSSBuZWVkIGl0LiBBbmQgeWVzLCBpdCBkb2VzIHBlcmZlY3RseS4gbmljZS4KClRlc3QgfCBIZWxsbwotLS0gfCAtLS0KWWVhaCB8IFNvIGdvb2QKClRoaXMgaXMgcmVhbCBhc3NldCBJIHRoaW5rLiBXaHkgd291bGQgd2Ugd2FudCB0byBsZWF2ZSB0aGF0IG9uIHRoZSB0YWJsZT8gQ2FuIHlvdSB0ZWxsIG15IHRoYXQ/CgpXaHkgYXJlIHdlIGhlcmU/CgpEbyB5b3Uga25vdz8KCj4gbm90ZToKVGhlcmUgaXMgc29tZXRoaW5nIGdvaW5nIG9uLgoKXGBcYFxgdHlwZXNjcmlwdApjb25zdCBoZWxsbyA9ICd5ZXMnClxgXGBcYApgfQogICAgICAgICAgICB3b3JkV3JhcD0iYm91bmRlZCIKICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplSGFuZGxlICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufQogICAgICAgID48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvdXRsZXRDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJHsxMDAtdGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKE0pe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChNKSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpbyx0aGlzLmNvbnRhaW5lckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zcGxpdENvbnRhaW5lciIpLHRoaXMucmVzaXplSGFuZGxlRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnJlc2l6ZUhhbmRsZSIpO2xldCB6PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxOPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpLF89YXdhaXQgbmV3IGx0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duKCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oImxvYWRpbmcuLi4iKTt6LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShhc3luYyBPPT57YXdhaXQgXy51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoTyk7bGV0ICQ9Xy5odG1sO04udXBkYXRlSHRtbFRleHQoJCl9KX1oYW5kbGVNb3VzZURvd249aShNPT57TS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZz0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApfSwiaGFuZGxlTW91c2VEb3duIik7aGFuZGxlTW91c2VNb3ZlPWkoTT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmd8fCF0aGlzLmNvbnRhaW5lckVsZW1lbnQpcmV0dXJuO2xldCB6PXRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxOPXoud2lkdGgsXz0oTS5jbGllbnRYLXoubGVmdCkvTioxMDA7Xz1NYXRoLm1heCh0aGlzLm1pblBhbmVsU2l6ZSxNYXRoLm1pbigxMDAtdGhpcy5taW5QYW5lbFNpemUsXykpLHRoaXMuY3VycmVudFNwbGl0UmF0aW89X30sImhhbmRsZU1vdXNlTW92ZSIpO2hhbmRsZU1vdXNlVXA9aSgoKT0+e3RoaXMuaXNEcmFnZ2luZz0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSYmd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVNb3VzZVVwIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9c2V0U3BsaXRSYXRpbyhNKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSxNKSl9cmVzZXRTcGxpdFJhdGlvKCl7dGhpcy5jdXJyZW50U3BsaXRSYXRpbz10aGlzLnNwbGl0UmF0aW99c3RhdGlje1l1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBqU2E9ZygoKT0+e3FTYSgpfSk7dmFyIFZTYSxVU2E9ZygoKT0+e3BlKCk7SXQoKTt4bygpO1ZTYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPCEtLSBEZW1vIDE6IEhlYWRpbmdzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJIZWFkaW5ncyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkFsbCBoZWFkaW5nIGxldmVscyBmcm9tIEgxIHRvIEg2In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5IZWFkaW5nIExldmVsIDE8L2gxPgogICAgICAgICAgICA8aDI+SGVhZGluZyBMZXZlbCAyPC9oMj4KICAgICAgICAgICAgPGgzPkhlYWRpbmcgTGV2ZWwgMzwvaDM+CiAgICAgICAgICAgIDxoND5IZWFkaW5nIExldmVsIDQ8L2g0PgogICAgICAgICAgICA8aDU+SGVhZGluZyBMZXZlbCA1PC9oNT4KICAgICAgICAgICAgPGg2PkhlYWRpbmcgTGV2ZWwgNjwvaDY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDI6IFRleHQgRm9ybWF0dGluZyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGV4dCBGb3JtYXR0aW5nIn0KICAgICAgICAuc3VidGl0bGU9JHsiQm9sZCwgaXRhbGljLCBsaW5rcywgY29kZSwgYW5kIGtleWJvYXJkIGlucHV0In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBwYXJhZ3JhcGggd2l0aCA8c3Ryb25nPmJvbGQgdGV4dDwvc3Ryb25nPiBhbmQgPGVtPml0YWxpYyB0ZXh0PC9lbT4uPC9wPgogICAgICAgICAgICA8cD5Zb3UgY2FuIGFsc28gdXNlIDxzdHJvbmc+PGVtPmJvbGQgaXRhbGljPC9lbT48L3N0cm9uZz4gZm9yIGVtcGhhc2lzLjwvcD4KICAgICAgICAgICAgPHA+SGVyZSdzIGEgPGEgaHJlZj0iIyI+bGluayBleGFtcGxlPC9hPiBhbmQgc29tZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4uPC9wPgogICAgICAgICAgICA8cD5QcmVzcyA8a2JkPkN0cmw8L2tiZD4gKyA8a2JkPkM8L2tiZD4gdG8gY29weSB0ZXh0LjwvcD4KICAgICAgICAgICAgPGhyPgogICAgICAgICAgICA8cD5BYm92ZSBpcyBhIGhvcml6b250YWwgcnVsZSBzZXBhcmF0b3IuPC9wPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAzOiBMaXN0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiTGlzdHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJPcmRlcmVkLCB1bm9yZGVyZWQsIGFuZCB0YXNrIGxpc3RzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMz5Vbm9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+Rmlyc3QgaXRlbTwvbGk+CiAgICAgICAgICAgICAgPGxpPlNlY29uZCBpdGVtCiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAxPC9saT4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDI8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UaGlyZCBpdGVtPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxoMz5PcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgb25lPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0d288L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHRocmVlPC9saT4KICAgICAgICAgICAgPC9vbD4KCiAgICAgICAgICAgIDxoMz5UYXNrIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkIGRpc2FibGVkPiBDb21wbGV0ZWQgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gUGVuZGluZyB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBBbm90aGVyIHRhc2s8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA0OiBDb2RlIEJsb2NrcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQ29kZSBCbG9ja3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJTeW50YXggaGlnaGxpZ2h0ZWQgY29kZSBleGFtcGxlcyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IHMucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5JbmxpbmUgY29kZTogPGNvZGU+Y29uc3QgZ3JlZXRpbmcgPSAiSGVsbG8sIFdvcmxkISI7PC9jb2RlPjwvcD4KCiAgICAgICAgICAgIDxoMz5UeXBlU2NyaXB0IEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBodG1sLCBjc3MgfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmludGVyZmFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPklVc2VyPC9zcGFuPiB7CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+bmFtZTwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmVtYWlsPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+YWdlPC9zcGFuPj86IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5udW1iZXI8L3NwYW4+Owp9Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPmdldFVzZXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXN5bmM8L3NwYW4+ICg8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5pZDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+KTogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPlByb21pc2U8L3NwYW4+Jmx0O0lVc2VyJmd0OyA9Jmd0OyB7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IHJlc3BvbnNlID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXdhaXQ8L3NwYW4+IGZldGNoKFxgL2FwaS91c2Vycy9cJHtpZH1cYCk7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+cmV0dXJuPC9zcGFuPiByZXNwb25zZS5qc29uKCk7Cn07PC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgzPkpTT04gRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+ewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJuYW1lIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+ImRlZXMtY2F0YWxvZyI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJ2ZXJzaW9uIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+IjMuMC4wIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ImRlcGVuZGVuY2llcyI8L3NwYW4+OiB7CiAgICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Ijwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+Il4yLjAuMCI8L3NwYW4+CiAgfQp9PC9jb2RlPjwvcHJlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA1OiBUYWJsZXMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRhYmxlcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN0eWxlZCB0YWJsZXMgd2l0aCBhbHRlcm5hdGluZyByb3dzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5GZWF0dXJlPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5Qcmlvcml0eTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RGFyayBtb2RlIHN1cHBvcnQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+Q29tcGxldGVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPlJlc3BvbnNpdmUgZGVzaWduPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1lZGl1bTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+QWNjZXNzaWJpbGl0eTwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QbGFubmVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRvY3VtZW50YXRpb248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TG93PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNjogQmxvY2txdW90ZXMgJiBBbGVydHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkJsb2NrcXVvdGVzICYgQWxlcnRzIn0KICAgICAgICAuc3VidGl0bGU9JHsiUXVvdGVzIGFuZCBHaXRIdWItc3R5bGUgYWxlcnRzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzdGFuZGFyZCBibG9ja3F1b3RlLiBJdCdzIGdyZWF0IGZvciBoaWdobGlnaHRpbmcgaW1wb3J0YW50IGluZm9ybWF0aW9uIG9yIHF1b3RlcyBmcm9tIG90aGVyIHNvdXJjZXMuPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1ub3RlIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBub3RlIHRvIGRyYXcgYXR0ZW50aW9uIHRvIGltcG9ydGFudCBkZXRhaWxzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBIZXJlJ3MgYSBoZWxwZnVsIHRpcCB0byBpbXByb3ZlIHlvdXIgd29ya2Zsb3cuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5JbXBvcnRhbnQ6PC9zdHJvbmc+IFRoaXMgaW5mb3JtYXRpb24gaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgdG9waWMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXdhcm5pbmciPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gQmUgY2FyZWZ1bCB3aGVuIHBlcmZvcm1pbmcgdGhpcyBhY3Rpb24uPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWNhdXRpb24iPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Q2F1dGlvbjo8L3N0cm9uZz4gVGhpcyBhY3Rpb24gbWF5IGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNzogRnVsbCBEb2N1bWVudCAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiRnVsbCBEb2N1bWVudCJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkEgY29tcGxldGUgbWFya2Rvd24gZG9jdW1lbnQgZXhhbXBsZSJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IHMucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+R2V0dGluZyBTdGFydGVkIEd1aWRlPC9oMT4KICAgICAgICAgICAgPHA+V2VsY29tZSB0byB0aGUgPHN0cm9uZz5kZWVzLWNhdGFsb2c8L3N0cm9uZz4gY29tcG9uZW50IGxpYnJhcnkuIFRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBnZXQgdXAgYW5kIHJ1bm5pbmcgcXVpY2tseS48L3A+CgogICAgICAgICAgICA8aDI+SW5zdGFsbGF0aW9uPC9oMj4KICAgICAgICAgICAgPHA+SW5zdGFsbCB0aGUgcGFja2FnZSB1c2luZyB5b3VyIHByZWZlcnJlZCBwYWNrYWdlIG1hbmFnZXI6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgcG5wbSAocmVjb21tZW5kZWQpPC9zcGFuPgpwbnBtIGFkZCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgbnBtPC9zcGFuPgpucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDI+QmFzaWMgVXNhZ2U8L2gyPgogICAgICAgICAgICA8cD5JbXBvcnQgYW5kIHVzZSBjb21wb25lbnRzIGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlczo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IERlZXNCdXR0b24gfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPi8vIFVzZSBpbiB5b3VyIHRlbXBsYXRlczwvc3Bhbj4KaHRtbFxgJmx0O2RlZXMtYnV0dG9uJmd0O0NsaWNrIG1lJmx0Oy9kZWVzLWJ1dHRvbiZndDtcYDwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IENoZWNrIHRoZSBkZW1vIHNob3djYXNlIGZvciBsaXZlIGV4YW1wbGVzIG9mIGFsbCBjb21wb25lbnRzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8aDI+QXZhaWxhYmxlIENvbXBvbmVudHM8L2gyPgogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+Q29tcG9uZW50PC90aD4KICAgICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWJ1dHRvbjwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UHJpbWFyeSBidXR0b24gY29tcG9uZW50PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWlucHV0LXRleHQ8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlRleHQgaW5wdXQgZmllbGQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtdGFibGU8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkRhdGEgdGFibGUgd2l0aCBzb3J0aW5nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLW1vZGFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Nb2RhbCBkaWFsb2c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgPGgyPk5leHQgU3RlcHM8L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkV4cGxvcmUgdGhlIDxhIGhyZWY9IiMiPmNvbXBvbmVudCBkb2N1bWVudGF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkNoZWNrIG91dCB0aGUgPGEgaHJlZj0iIyI+dGhlbWluZyBndWlkZTwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5Kb2luIG91ciA8YSBocmVmPSIjIj5jb21tdW5pdHkgRGlzY29yZDwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+IlRoZSBiZXN0IGNvbXBvbmVudCBsaWJyYXJ5IGlzIG9uZSB0aGF0IGdldHMgb3V0IG9mIHlvdXIgd2F5LiIgXHUyMDE0IERlc2lnbiBTeXN0ZW1zIFRlYW08L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgZnRzLG10cyxndHMsV1NhPWcoKCk9PntwZSgpO2h0KCk7VVNhKCk7ZnRzPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxtdHM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGd0cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IildLGUsdD1bXSxhLHI9d2U7dmFyIG49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2Z0cyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHQpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfXN0YXRpYyBkZW1vPVZTYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgLm91dGxldCB7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBIZWFkaW5ncyAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgIH0KCiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgfQoKICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsKICAgICAgfQoKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi8KICAgICAgcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBMaW5rcyAqLwogICAgICBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi8KICAgICAgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIExpc3RzICovCiAgICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMmVtOwogICAgICB9CgogICAgICBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICBsaSArIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIHVsIHVsLCB1bCBvbCwgb2wgdWwsIG9sIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrcXVvdGVzICovCiAgICAgIGJsb2NrcXVvdGUgewogICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDsKICAgICAgICBwYWRkaW5nOiAwIDFlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIElubGluZSBjb2RlICovCiAgICAgIGNvZGUgewogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTc1LCAxODQsIDE5MywgMC4yKSIsInJnYmEoMTEwLCAxMTgsIDEyOSwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9ja3MgKi8KICAgICAgcHJlIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgfQoKICAgICAgcHJlIGNvZGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgfQoKICAgICAgLyogVGFibGVzICovCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMjEyNjJkIil9OwogICAgICB9CgogICAgICB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi8KICAgICAgaHIgewogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIEltYWdlcyAqLwogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLyogVGFzayBsaXN0cyAqLwogICAgICAudGFzay1saXN0LWl0ZW0gewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhc2stbGlzdC1pdGVtIGlucHV0IHsKICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAvKiBEZWZpbml0aW9uIGxpc3RzICovCiAgICAgIGRsIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICBkbCBkdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBkbCBkZCB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIEtleWJvYXJkIGlucHV0ICovCiAgICAgIGtiZCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDNweCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBsaW5lLWhlaWdodDogMTBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICAvKiBGb290bm90ZXMgKi8KICAgICAgLmZvb3Rub3RlcyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICB9CgogICAgICAvKiBBbGVydHMvQWRtb25pdGlvbnMgKi8KICAgICAgLm1hcmtkb3duLWFsZXJ0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoOSwgMTA1LCAyMTgsIDAuMSkiLCJyZ2JhKDU2LCAxMzksIDI1MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNiZjg3MDAiLCIjZDI5OTIyIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDE5MSwgMTM1LCAwLCAwLjEpIiwicmdiYSgxODcsIDEyOCwgOSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzgyNTBkZiIsIiNhMzcxZjciKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTMwLCA4MCwgMjIzLCAwLjEpIiwicmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2NmMjIyZSIsIiNmODUxNDkiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMjA3LCAzNCwgNDYsIDAuMSkiLCJyZ2JhKDI0OCwgODEsIDczLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtdGlwIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMWE3ZjM3IiwiIzNmYjk1MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgyNiwgMTI3LCA1NSwgMC4xKSIsInJnYmEoNDYsIDE2MCwgNjcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFN5bnRheCBoaWdobGlnaHRpbmcgZm9yIGNvZGUgYmxvY2tzICovCiAgICAgIC5obGpzLWNvbW1lbnQsCiAgICAgIC5obGpzLXF1b3RlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YTczN2QiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci10YWcsCiAgICAgIC5obGpzLWFkZGl0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkNzNhNDkiLCIjZmY3YjcyIil9OwogICAgICB9CgogICAgICAuaGxqcy1udW1iZXIsCiAgICAgIC5obGpzLXN0cmluZywKICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZywKICAgICAgLmhsanMtbGl0ZXJhbCwKICAgICAgLmhsanMtZG9jdGFnLAogICAgICAuaGxqcy1yZWdleHAgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAzMmY2MiIsIiNhNWQ2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy1zZWN0aW9uLAogICAgICAuaGxqcy1uYW1lLAogICAgICAuaGxqcy1zZWxlY3Rvci1pZCwKICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZmNDJjMSIsIiNkMmE4ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWF0dHJpYnV0ZSwKICAgICAgLmhsanMtYXR0ciwKICAgICAgLmhsanMtdmFyaWFibGUsCiAgICAgIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLAogICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtdHlwZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA1Y2M1IiwiIzc5YzBmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtc3ltYm9sLAogICAgICAuaGxqcy1idWxsZXQsCiAgICAgIC5obGpzLXN1YnN0LAogICAgICAuaGxqcy1tZXRhLAogICAgICAuaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWF0dHIsCiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbywKICAgICAgLmhsanMtbGluayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZTM2MjA5IiwiI2ZmYTY1NyIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYnVpbHRfaW4sCiAgICAgIC5obGpzLWRlbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNiMzFkMjgiLCIjZmZhMTk4Iil9OwogICAgICB9CgogICAgICAuaGxqcy1mb3JtdWxhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWVtcGhhc2lzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5obGpzLXN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgIGBdO291dGxldDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Ij4KICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+CiAgICAgICAgPHA+Q29udGVudCB3aWxsIGFwcGVhciBoZXJlIHdoZW4gbWFya2Rvd24gaXMgcGFyc2VkLjwvcD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChvKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobyksdGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKX1hc3luYyB1cGRhdGVIdG1sVGV4dChvKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMub3V0bGV0fHwodGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKSksdGhpcy5vdXRsZXQuaW5uZXJIVE1MPW99c3RhdGlje210cyhhLHQpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgR1NhPWcoKCk9PntXU2EoKX0pO3ZhciBLU2E9ZygoKT0+e0FsdCgpfSk7dmFyIFlTYT1nKCgpPT57Umx0KCl9KTt2YXIgWlNhPWcoKCk9PntOU2EoKTtSU2EoKTtPU2EoKTtCU2EoKTtIU2EoKTtqU2EoKTtHU2EoKTtLU2EoKTtZU2EoKX0pO3ZhciBYU2E9ZygoKT0+e30pO3ZhciBRU2E9ZygoKT0+e1hTYSgpfSk7dmFyIEpTYT1nKCgpPT57cGUoKX0pO3ZhciBlX2E9ZygoKT0+e0pTYSgpfSk7dmFyIHRfYT1nKCgpPT57R24oKTtodCgpO3N4YSgpO3B4YSgpO3N5YSgpO2J5YSgpO1J5YSgpO0J5YSgpO3J3YSgpO0t3YSgpO1ZrYSgpO1FrYSgpO2wyZSgpO3ZTYSgpO0lTYSgpO1pTYSgpO1FTYSgpO2VfYSgpfSk7dmFyIGFfYT1nKCgpPT57fSk7dmFyIHNfYT1nKCgpPT57dF9hKCk7dzIoKTthX2EoKX0pO3ZhciBidHMsdnRzLHh0cyxpX2E9ZygoKT0+e3BlKCk7c19hKCk7aWMoKTtidHM9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHZ0cz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0seHRzPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby1hcHAtc2hlbGwiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEZW1vQXBwU2hlbGwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtidHMobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy1hcHB1aSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWk+PC9kZWVzLWFwcHVpPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgbz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWkiKTtvJiYoby5jb25maWd1cmUoe2JyYW5kaW5nOntsb2dvSWNvbjoibHVjaWRlOkJveCIsbG9nb1RleHQ6InNlcnZlLnpvbmUifSxhcHBCYXI6e3Nob3dTZWFyY2g6ITAsYnJlYWRjcnVtYnM6InNlcnZlLnpvbmUiLG1lbnVJdGVtczpbe25hbWU6IkZpbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiTmV3IFNlcnZpY2UiLHNob3J0Y3V0OiJDbWQrTiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJOZXcgU2VydmljZSIpfSwiYWN0aW9uIil9LHtuYW1lOiJJbXBvcnQgQ29uZmlndXJhdGlvbiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJJbXBvcnQiKX0sImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IENvbmZpZ3VyYXRpb24iLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiRXhwb3J0Iil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJQcmVmZXJlbmNlcyIsc2hvcnRjdXQ6IkNtZCssIixhY3Rpb246aShhc3luYygpPT57by5uYXZpZ2F0ZVRvVmlldygic2V0dGluZ3MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJWaWV3IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRhc2hib2FyZCIsc2hvcnRjdXQ6IkNtZCsxIixhY3Rpb246aShhc3luYygpPT57by5uYXZpZ2F0ZVRvVmlldygiZGFzaGJvYXJkIil9LCJhY3Rpb24iKX0se25hbWU6IlNlcnZpY2VzIixzaG9ydGN1dDoiQ21kKzIiLGFjdGlvbjppKGFzeW5jKCk9PntvLm5hdmlnYXRlVG9WaWV3KCJzZXJ2aWNlcyIpfSwiYWN0aW9uIil9LHtuYW1lOiJOZXR3b3JrIixzaG9ydGN1dDoiQ21kKzMiLGFjdGlvbjppKGFzeW5jKCk9PntvLm5hdmlnYXRlVG9WaWV3KCJuZXR3b3JrIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBY3Rpdml0eSBMb2ciLHNob3J0Y3V0OiJDbWQrU2hpZnQrQSIsYWN0aW9uOmkoYXN5bmMoKT0+e28udG9nZ2xlQWN0aXZpdHlMb2coKX0sImFjdGlvbiIpfSx7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmkoYXN5bmMoKT0+e28uc2V0TWFpbk1lbnVDb2xsYXBzZWQoIW8ubWFpbm1lbnVDb2xsYXBzZWQpfSwiYWN0aW9uIil9XX0se25hbWU6IlNlcnZpY2VzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRlcGxveSBOZXcgU2VydmljZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJEZXBsb3kiKX0sImFjdGlvbiIpfSx7bmFtZToiU3RhcnQgQWxsIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIlN0YXJ0IGFsbCIpfSwiYWN0aW9uIil9LHtuYW1lOiJTdG9wIEFsbCIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJTdG9wIGFsbCIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiR2FyYmFnZSBDb2xsZWN0IixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIkdDIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiSGVscCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixhY3Rpb246aShhc3luYygpPT57d2luZG93Lm9wZW4oImh0dHBzOi8vZG9jcy5zZXJ2ZS56b25lIiwiX2JsYW5rIil9LCJhY3Rpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQWJvdXQgc2VydmUuem9uZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJBYm91dCIpfSwiYWN0aW9uIil9XX1dfSx2aWV3czpbe2lkOiJkYXNoYm9hcmQiLG5hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpMYXlvdXREYXNoYm9hcmQiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1kYXNoYm9hcmQifSx7aWQ6InNlcnZpY2VzIixuYW1lOiJTZXJ2aWNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpTZXJ2ZXIiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1zZXJ2aWNlcyJ9LHtpZDoibmV0d29yayIsbmFtZToiTmV0d29yayIsaWNvbk5hbWU6Imx1Y2lkZTpOZXR3b3JrIixjb250ZW50OiJzei1kZW1vLXZpZXctbmV0d29yayJ9LHtpZDoicmVnaXN0cmllcyIsbmFtZToiUmVnaXN0cmllcyIsaWNvbk5hbWU6Imx1Y2lkZTpBcmNoaXZlIixjb250ZW50OiJzei1kZW1vLXZpZXctcmVnaXN0cmllcyJ9LHtpZDoidG9rZW5zIixuYW1lOiJUb2tlbnMiLGljb25OYW1lOiJsdWNpZGU6S2V5Iixjb250ZW50OiJzei1kZW1vLXZpZXctdG9rZW5zIn0se2lkOiJtdGEiLG5hbWU6IkVtYWlsIC8gTVRBIixpY29uTmFtZToibHVjaWRlOk1haWwiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1tdGEifSx7aWQ6InJvdXRlcyIsbmFtZToiUm91dGVzIixpY29uTmFtZToibHVjaWRlOlJvdXRlIixjb250ZW50OiJzei1kZW1vLXZpZXctcm91dGVzIn0se2lkOiJzZXR0aW5ncyIsbmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6U2V0dGluZ3MiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1zZXR0aW5ncyJ9XSxtYWluTWVudTp7c2VjdGlvbnM6W3tuYW1lOiJPdmVydmlldyIsdmlld3M6WyJkYXNoYm9hcmQiXX0se25hbWU6IkluZnJhc3RydWN0dXJlIix2aWV3czpbInNlcnZpY2VzIiwibmV0d29yayIsInJlZ2lzdHJpZXMiLCJtdGEiLCJyb3V0ZXMiXX0se25hbWU6IkFkbWluaXN0cmF0aW9uIix2aWV3czpbInRva2VucyIsInNldHRpbmdzIl19XX0sZGVmYXVsdFZpZXc6ImRhc2hib2FyZCIsb25WaWV3Q2hhbmdlOmkoKGwscCk9Pntjb25zb2xlLmxvZygiVmlldyBjaGFuZ2VkIHRvOiIsbCxwKX0sIm9uVmlld0NoYW5nZSIpfSksby5zZXRVc2VyKHtuYW1lOiJBZG1pbiBVc2VyIixlbWFpbDoiYWRtaW5Ac2VydmUuem9uZSIsc3RhdHVzOiJvbmxpbmUifSksby5zZXRQcm9maWxlTWVudUl0ZW1zKFt7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTpVc2VyIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIlByb2ZpbGUiKX0sImFjdGlvbiIpfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJsdWNpZGU6U2xpZGVyc0hvcml6b250YWwiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiUHJlZmVyZW5jZXMiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibHVjaWRlOkxvZ091dCIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJTaWduIE91dCIpfSwiYWN0aW9uIil9XSkpfXN0YXRpY3t2dHMoYSx0KX19O3JldHVybiBuPWF9KSgpfSk7dmFyIHJfYT1nKCgpPT57TTlhKCk7ejlhKCk7aV9hKCl9KTt2YXIgb19hPWcoKCk9PntpYygpO3JfYSgpfSk7dmFyIG5fYT1wbChBcj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoQXIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEFyLmdldEZpcnN0VHJ1ZU9yRmFsc2U9QXIudGltZW91dEFuZENvbnRpbnVlPUFyLnRpbWVvdXRXcmFwPUFyLm1hcD1Bci5yZWplY3RlZFByb21pc2U9QXIucmVzb2x2ZWRQcm9taXNlPUFyLmRlZmVyPUFyLkRlZmVycmVkPXZvaWQgMDt2YXIgcDJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkRlZmVycmVkIil9Y29uc3RydWN0b3IoKXt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGUsdCk9Pnt0aGlzLnJlc29sdmU9YT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksZShhKX0sdGhpcy5yZWplY3Q9YT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSx0KGEpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fX07QXIuRGVmZXJyZWQ9cDJlLEFyLmRlZmVyPSgpPT5uZXcgcDJlLEFyLnJlc29sdmVkUHJvbWlzZT1zPT5Qcm9taXNlLnJlc29sdmUocyksQXIucmVqZWN0ZWRQcm9taXNlPXM9PlByb21pc2UucmVqZWN0KHMpLEFyLm1hcD1hc3luYyhzLGUpPT57bGV0IHQ9W10sYT1bXTtmb3IobGV0IHIgb2Ygcyl7bGV0IG49ZShyKTt0LnB1c2gobiksbi50aGVuKG89PnthLnB1c2gobyl9KX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwodCksYX0sQXIudGltZW91dFdyYXA9YXN5bmMocyxlLHQ9ITApPT5uZXcgUHJvbWlzZSgoYSxyKT0+e3NldFRpbWVvdXQoKCk9Pnt0P3IobmV3IEVycm9yKCJ0aW1lb3V0IikpOmEobnVsbCl9LGUpLHMudGhlbihhLHIpfSksQXIudGltZW91dEFuZENvbnRpbnVlPWFzeW5jKHMsZT02ZTQpPT5Bci50aW1lb3V0V3JhcChzLGUsITEpLEFyLmdldEZpcnN0VHJ1ZU9yRmFsc2U9YXN5bmMgcz0+e2xldCBlPUFyLmRlZmVyKCk7Zm9yKGxldCB0IG9mIHMpdC50aGVuKGE9PnthPT09ITAmJmUucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwocykudGhlbigoKT0+e2UucmVzb2x2ZSghMSl9KSxlLnByb21pc2V9fSk7dmFyIE9sdCxsX2E9ZygoKT0+e09sdD14bihuX2EoKSwxKX0pO3ZhciBjX2E9ZygoKT0+e30pO3ZhciBGbHQsZF9hPWcoKCk9PntsX2EoKTtjX2EoKTtGbHQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRlbnYiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlKXtpZighdGhpcy5pc05vZGUpe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgbm9kZSBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9YCk7cmV0dXJufXJldHVybiBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCl9YXN5bmMgZ2V0U2FmZVdlYk1vZHVsZShlLHQpe2lmKCF0aGlzLmlzQnJvd3Nlcil7Y29uc29sZS5lcnJvcigiWW91IHRyaWVkIHRvIGxvYWQgYSB3ZWIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dCIpO3JldHVybn1pZih0aGlzLmxvYWRlZFNjcmlwdHMuaW5jbHVkZXMoZSkpcmV0dXJuIHQoKTt0aGlzLmxvYWRlZFNjcmlwdHMucHVzaChlKTtsZXQgYT1PbHQuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKGUpLGEucmVzb2x2ZSgpO2Vsc2V7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ci5vbmxvYWQ9KCk9PnthLnJlc29sdmUoKX0sci5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHIpfXJldHVybiBhd2FpdCBhLnByb21pc2UsdCgpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBmSj17fTt5dChmSix7U21hcnRlbnY6KCk9PkZsdH0pO3ZhciB1X2E9ZygoKT0+e2RfYSgpfSk7dmFyIHBfYT1nKCgpPT57dV9hKCl9KTt2YXIgQmx0PXt9O3l0KEJsdCx7c2hhMjU2RnJvbVN0cmluZzooKT0+U3RzfSk7dmFyIGt0cyxTdHMsaF9hPWcoKCk9PntwX2EoKTtrdHM9aShzPT57bGV0IGU9W10sdD1uZXcgRGF0YVZpZXcocyk7Zm9yKGxldCBhPTA7YTx0LmJ5dGVMZW5ndGg7YSs9NCl7bGV0IG49dC5nZXRVaW50MzIoYSkudG9TdHJpbmcoMTYpLG89IjAwMDAwMDAwIixsPShvK24pLnNsaWNlKC1vLmxlbmd0aCk7ZS5wdXNoKGwpfXJldHVybiBlLmpvaW4oIiIpfSwiaGV4IiksU3RzPWkoYXN5bmMgcz0+e2xldCBlPW5ldyBmSi5TbWFydGVudjtpZihlLmlzQnJvd3Nlcil7bGV0IHQ9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHMpLGE9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLHQpO3JldHVybiBrdHMoYSl9ZWxzZSBpZihlLmlzTm9kZSlyZXR1cm4gYXdhaXQoYXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiQHB1c2hyb2Nrcy9zbWFydGhhc2giKSkuc2hhMjU2RnJvbVN0cmluZyhzKX0sInNoYTI1NkZyb21TdHJpbmciKX0pO3ZhciBmX2E9ZygoKT0+e2lvKCl9KTt2YXIgbV9hPWcoKCk9Pnt9KTt2YXIgSGx0LGdfYT1nKCgpPT57Zl9hKCk7bV9hKCk7SGx0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0ZW52Iil9Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUoZSl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoZS5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShlLndlYlVybEFyZyxlLmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUoZSx0KXtpZighdGhpcy5pc05vZGUpe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgbm9kZSBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgYT1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCk7cmV0dXJuIHQmJmF3YWl0IHQoYSksYX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUsdCl7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gdCgpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCBhPW10LmRlZmVyKCk7aWYoZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKWdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cyhlKSxhLnJlc29sdmUoKTtlbHNle2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Iub25sb2FkPSgpPT57YS5yZXNvbHZlKCl9LHIuc3JjPWUsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyKX1yZXR1cm4gYXdhaXQgYS5wcm9taXNlLHQoKX1nZXQgcnVudGltZUVudigpe3JldHVybiB0eXBlb2YgcHJvY2VzczwidSI/Im5vZGUiOiJicm93c2VyIn1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIXRoaXMuaXNOb2RlfWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gcHJvY2Vzcy52ZXJzaW9ufWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgcWx0PXt9O3l0KHFsdCx7U21hcnRlbnY6KCk9PkhsdH0pO3ZhciBiX2E9ZygoKT0+e2dfYSgpfSk7dmFyIHJNYT1wbCgoYkosUngpPT57dmFyIE10cz0yMDAsdl9hPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIix4X2E9OTAwNzE5OTI1NDc0MDk5MSxqbHQ9IltvYmplY3QgQXJndW1lbnRzXSIsenRzPSJbb2JqZWN0IEFycmF5XSIseV9hPSJbb2JqZWN0IEJvb2xlYW5dIix3X2E9IltvYmplY3QgRGF0ZV0iLEN0cz0iW29iamVjdCBFcnJvcl0iLFZsdD0iW29iamVjdCBGdW5jdGlvbl0iLGtfYT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLGgyZT0iW29iamVjdCBNYXBdIixTX2E9IltvYmplY3QgTnVtYmVyXSIsVWx0PSJbb2JqZWN0IE9iamVjdF0iLF9fYT0iW29iamVjdCBQcm9taXNlXSIsTV9hPSJbb2JqZWN0IFJlZ0V4cF0iLGYyZT0iW29iamVjdCBTZXRdIix6X2E9IltvYmplY3QgU3RyaW5nXSIsQ19hPSJbb2JqZWN0IFN5bWJvbF0iLFdsdD0iW29iamVjdCBXZWFrTWFwXSIsVF9hPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsbTJlPSJbb2JqZWN0IERhdGFWaWV3XSIsJF9hPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLERfYT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixMX2E9IltvYmplY3QgSW50OEFycmF5XSIsRV9hPSJbb2JqZWN0IEludDE2QXJyYXldIixQX2E9IltvYmplY3QgSW50MzJBcnJheV0iLElfYT0iW29iamVjdCBVaW50OEFycmF5XSIsQV9hPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsTl9hPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsUl9hPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsVHRzPS9bXFxeJC4qKz8oKVtcXXt9fF0vZywkdHM9L1x3KiQvLER0cz0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxMdHM9L14oPzowfFsxLTldXGQqKSQvLHJpPXt9O3JpW2psdF09cmlbenRzXT1yaVtUX2FdPXJpW20yZV09cmlbeV9hXT1yaVt3X2FdPXJpWyRfYV09cmlbRF9hXT1yaVtMX2FdPXJpW0VfYV09cmlbUF9hXT1yaVtoMmVdPXJpW1NfYV09cmlbVWx0XT1yaVtNX2FdPXJpW2YyZV09cmlbel9hXT1yaVtDX2FdPXJpW0lfYV09cmlbQV9hXT1yaVtOX2FdPXJpW1JfYV09ITAscmlbQ3RzXT1yaVtWbHRdPXJpW1dsdF09ITE7dmFyIEV0cz10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsUHRzPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsWnU9RXRzfHxQdHN8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksT19hPXR5cGVvZiBiSj09Im9iamVjdCImJmJKJiYhYkoubm9kZVR5cGUmJmJKLEZfYT1PX2EmJnR5cGVvZiBSeD09Im9iamVjdCImJlJ4JiYhUngubm9kZVR5cGUmJlJ4LEl0cz1GX2EmJkZfYS5leHBvcnRzPT09T19hO2Z1bmN0aW9uIEF0cyhzLGUpe3JldHVybiBzLnNldChlWzBdLGVbMV0pLHN9aShBdHMsImFkZE1hcEVudHJ5Iik7ZnVuY3Rpb24gTnRzKHMsZSl7cmV0dXJuIHMuYWRkKGUpLHN9aShOdHMsImFkZFNldEVudHJ5Iik7ZnVuY3Rpb24gUnRzKHMsZSl7Zm9yKHZhciB0PS0xLGE9cz9zLmxlbmd0aDowOysrdDxhJiZlKHNbdF0sdCxzKSE9PSExOyk7cmV0dXJuIHN9aShSdHMsImFycmF5RWFjaCIpO2Z1bmN0aW9uIE90cyhzLGUpe2Zvcih2YXIgdD0tMSxhPWUubGVuZ3RoLHI9cy5sZW5ndGg7Kyt0PGE7KXNbcit0XT1lW3RdO3JldHVybiBzfWkoT3RzLCJhcnJheVB1c2giKTtmdW5jdGlvbiBCX2EocyxlLHQsYSl7dmFyIHI9LTEsbj1zP3MubGVuZ3RoOjA7Zm9yKGEmJm4mJih0PXNbKytyXSk7KytyPG47KXQ9ZSh0LHNbcl0scixzKTtyZXR1cm4gdH1pKEJfYSwiYXJyYXlSZWR1Y2UiKTtmdW5jdGlvbiBGdHMocyxlKXtmb3IodmFyIHQ9LTEsYT1BcnJheShzKTsrK3Q8czspYVt0XT1lKHQpO3JldHVybiBhfWkoRnRzLCJiYXNlVGltZXMiKTtmdW5jdGlvbiBCdHMocyxlKXtyZXR1cm4gcz8uW2VdfWkoQnRzLCJnZXRWYWx1ZSIpO2Z1bmN0aW9uIEhfYShzKXt2YXIgZT0hMTtpZihzIT1udWxsJiZ0eXBlb2Ygcy50b1N0cmluZyE9ImZ1bmN0aW9uIil0cnl7ZT0hIShzKyIiKX1jYXRjaHt9cmV0dXJuIGV9aShIX2EsImlzSG9zdE9iamVjdCIpO2Z1bmN0aW9uIHFfYShzKXt2YXIgZT0tMSx0PUFycmF5KHMuc2l6ZSk7cmV0dXJuIHMuZm9yRWFjaChmdW5jdGlvbihhLHIpe3RbKytlXT1bcixhXX0pLHR9aShxX2EsIm1hcFRvQXJyYXkiKTtmdW5jdGlvbiBHbHQocyxlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHMoZSh0KSl9fWkoR2x0LCJvdmVyQXJnIik7ZnVuY3Rpb24gal9hKHMpe3ZhciBlPS0xLHQ9QXJyYXkocy5zaXplKTtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3RbKytlXT1hfSksdH1pKGpfYSwic2V0VG9BcnJheSIpO3ZhciBIdHM9QXJyYXkucHJvdG90eXBlLHF0cz1GdW5jdGlvbi5wcm90b3R5cGUsZzJlPU9iamVjdC5wcm90b3R5cGUsS2x0PVp1WyJfX2NvcmUtanNfc2hhcmVkX18iXSxWX2E9KGZ1bmN0aW9uKCl7dmFyIHM9L1teLl0rJC8uZXhlYyhLbHQmJktsdC5rZXlzJiZLbHQua2V5cy5JRV9QUk9UT3x8IiIpO3JldHVybiBzPyJTeW1ib2woc3JjKV8xLiIrczoiIn0pKCksVV9hPXF0cy50b1N0cmluZyx6ND1nMmUuaGFzT3duUHJvcGVydHksYjJlPWcyZS50b1N0cmluZyxqdHM9UmVnRXhwKCJeIitVX2EuY2FsbCh6NCkucmVwbGFjZShUdHMsIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIiksV19hPUl0cz9adS5CdWZmZXI6dm9pZCAwLEdfYT1adS5TeW1ib2wsS19hPVp1LlVpbnQ4QXJyYXksVnRzPUdsdChPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KSxVdHM9T2JqZWN0LmNyZWF0ZSxXdHM9ZzJlLnByb3BlcnR5SXNFbnVtZXJhYmxlLEd0cz1IdHMuc3BsaWNlLFlfYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLEt0cz1XX2E/V19hLmlzQnVmZmVyOnZvaWQgMCxZdHM9R2x0KE9iamVjdC5rZXlzLE9iamVjdCksWWx0PU54KFp1LCJEYXRhVmlldyIpLG1KPU54KFp1LCJNYXAiKSxabHQ9TngoWnUsIlByb21pc2UiKSxYbHQ9TngoWnUsIlNldCIpLFFsdD1OeChadSwiV2Vha01hcCIpLGdKPU54KE9iamVjdCwiY3JlYXRlIiksWnRzPWg3KFlsdCksWHRzPWg3KG1KKSxRdHM9aDcoWmx0KSxKdHM9aDcoWGx0KSxlYXM9aDcoUWx0KSxaX2E9R19hP0dfYS5wcm90b3R5cGU6dm9pZCAwLFhfYT1aX2E/Wl9hLnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIHU3KHMpe3ZhciBlPS0xLHQ9cz9zLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHQ7KXt2YXIgYT1zW2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkodTcsIkhhc2giKTtmdW5jdGlvbiB0YXMoKXt0aGlzLl9fZGF0YV9fPWdKP2dKKG51bGwpOnt9fWkodGFzLCJoYXNoQ2xlYXIiKTtmdW5jdGlvbiBhYXMocyl7cmV0dXJuIHRoaXMuaGFzKHMpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1tzXX1pKGFhcywiaGFzaERlbGV0ZSIpO2Z1bmN0aW9uIHNhcyhzKXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGdKKXt2YXIgdD1lW3NdO3JldHVybiB0PT09dl9hP3ZvaWQgMDp0fXJldHVybiB6NC5jYWxsKGUscyk/ZVtzXTp2b2lkIDB9aShzYXMsImhhc2hHZXQiKTtmdW5jdGlvbiBpYXMocyl7dmFyIGU9dGhpcy5fX2RhdGFfXztyZXR1cm4gZ0o/ZVtzXSE9PXZvaWQgMDp6NC5jYWxsKGUscyl9aShpYXMsImhhc2hIYXMiKTtmdW5jdGlvbiByYXMocyxlKXt2YXIgdD10aGlzLl9fZGF0YV9fO3JldHVybiB0W3NdPWdKJiZlPT09dm9pZCAwP3ZfYTplLHRoaXN9aShyYXMsImhhc2hTZXQiKSx1Ny5wcm90b3R5cGUuY2xlYXI9dGFzLHU3LnByb3RvdHlwZS5kZWxldGU9YWFzLHU3LnByb3RvdHlwZS5nZXQ9c2FzLHU3LnByb3RvdHlwZS5oYXM9aWFzLHU3LnByb3RvdHlwZS5zZXQ9cmFzO2Z1bmN0aW9uIFh1KHMpe3ZhciBlPS0xLHQ9cz9zLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHQ7KXt2YXIgYT1zW2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkoWHUsIkxpc3RDYWNoZSIpO2Z1bmN0aW9uIG9hcygpe3RoaXMuX19kYXRhX189W119aShvYXMsImxpc3RDYWNoZUNsZWFyIik7ZnVuY3Rpb24gbmFzKHMpe3ZhciBlPXRoaXMuX19kYXRhX18sdD12MmUoZSxzKTtpZih0PDApcmV0dXJuITE7dmFyIGE9ZS5sZW5ndGgtMTtyZXR1cm4gdD09YT9lLnBvcCgpOkd0cy5jYWxsKGUsdCwxKSwhMH1pKG5hcywibGlzdENhY2hlRGVsZXRlIik7ZnVuY3Rpb24gbGFzKHMpe3ZhciBlPXRoaXMuX19kYXRhX18sdD12MmUoZSxzKTtyZXR1cm4gdDwwP3ZvaWQgMDplW3RdWzFdfWkobGFzLCJsaXN0Q2FjaGVHZXQiKTtmdW5jdGlvbiBjYXMocyl7cmV0dXJuIHYyZSh0aGlzLl9fZGF0YV9fLHMpPi0xfWkoY2FzLCJsaXN0Q2FjaGVIYXMiKTtmdW5jdGlvbiBkYXMocyxlKXt2YXIgdD10aGlzLl9fZGF0YV9fLGE9djJlKHQscyk7cmV0dXJuIGE8MD90LnB1c2goW3MsZV0pOnRbYV1bMV09ZSx0aGlzfWkoZGFzLCJsaXN0Q2FjaGVTZXQiKSxYdS5wcm90b3R5cGUuY2xlYXI9b2FzLFh1LnByb3RvdHlwZS5kZWxldGU9bmFzLFh1LnByb3RvdHlwZS5nZXQ9bGFzLFh1LnByb3RvdHlwZS5oYXM9Y2FzLFh1LnByb3RvdHlwZS5zZXQ9ZGFzO2Z1bmN0aW9uIEl4KHMpe3ZhciBlPS0xLHQ9cz9zLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHQ7KXt2YXIgYT1zW2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkoSXgsIk1hcENhY2hlIik7ZnVuY3Rpb24gdWFzKCl7dGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgdTcsbWFwOm5ldyhtSnx8WHUpLHN0cmluZzpuZXcgdTd9fWkodWFzLCJtYXBDYWNoZUNsZWFyIik7ZnVuY3Rpb24gcGFzKHMpe3JldHVybiB4MmUodGhpcyxzKS5kZWxldGUocyl9aShwYXMsIm1hcENhY2hlRGVsZXRlIik7ZnVuY3Rpb24gaGFzKHMpe3JldHVybiB4MmUodGhpcyxzKS5nZXQocyl9aShoYXMsIm1hcENhY2hlR2V0Iik7ZnVuY3Rpb24gZmFzKHMpe3JldHVybiB4MmUodGhpcyxzKS5oYXMocyl9aShmYXMsIm1hcENhY2hlSGFzIik7ZnVuY3Rpb24gbWFzKHMsZSl7cmV0dXJuIHgyZSh0aGlzLHMpLnNldChzLGUpLHRoaXN9aShtYXMsIm1hcENhY2hlU2V0IiksSXgucHJvdG90eXBlLmNsZWFyPXVhcyxJeC5wcm90b3R5cGUuZGVsZXRlPXBhcyxJeC5wcm90b3R5cGUuZ2V0PWhhcyxJeC5wcm90b3R5cGUuaGFzPWZhcyxJeC5wcm90b3R5cGUuc2V0PW1hcztmdW5jdGlvbiBBeChzKXt0aGlzLl9fZGF0YV9fPW5ldyBYdShzKX1pKEF4LCJTdGFjayIpO2Z1bmN0aW9uIGdhcygpe3RoaXMuX19kYXRhX189bmV3IFh1fWkoZ2FzLCJzdGFja0NsZWFyIik7ZnVuY3Rpb24gYmFzKHMpe3JldHVybiB0aGlzLl9fZGF0YV9fLmRlbGV0ZShzKX1pKGJhcywic3RhY2tEZWxldGUiKTtmdW5jdGlvbiB2YXMocyl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KHMpfWkodmFzLCJzdGFja0dldCIpO2Z1bmN0aW9uIHhhcyhzKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMocyl9aSh4YXMsInN0YWNrSGFzIik7ZnVuY3Rpb24geWFzKHMsZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXztpZih0IGluc3RhbmNlb2YgWHUpe3ZhciBhPXQuX19kYXRhX187aWYoIW1KfHxhLmxlbmd0aDxNdHMtMSlyZXR1cm4gYS5wdXNoKFtzLGVdKSx0aGlzO3Q9dGhpcy5fX2RhdGFfXz1uZXcgSXgoYSl9cmV0dXJuIHQuc2V0KHMsZSksdGhpc31pKHlhcywic3RhY2tTZXQiKSxBeC5wcm90b3R5cGUuY2xlYXI9Z2FzLEF4LnByb3RvdHlwZS5kZWxldGU9YmFzLEF4LnByb3RvdHlwZS5nZXQ9dmFzLEF4LnByb3RvdHlwZS5oYXM9eGFzLEF4LnByb3RvdHlwZS5zZXQ9eWFzO2Z1bmN0aW9uIHdhcyhzLGUpe3ZhciB0PXRjdChzKXx8VWFzKHMpP0Z0cyhzLmxlbmd0aCxTdHJpbmcpOltdLGE9dC5sZW5ndGgscj0hIWE7Zm9yKHZhciBuIGluIHMpKGV8fHo0LmNhbGwocyxuKSkmJiEociYmKG49PSJsZW5ndGgifHxIYXMobixhKSkpJiZ0LnB1c2gobik7cmV0dXJuIHR9aSh3YXMsImFycmF5TGlrZUtleXMiKTtmdW5jdGlvbiBRX2EocyxlLHQpe3ZhciBhPXNbZV07KCEoejQuY2FsbChzLGUpJiZhTWEoYSx0KSl8fHQ9PT12b2lkIDAmJiEoZSBpbiBzKSkmJihzW2VdPXQpfWkoUV9hLCJhc3NpZ25WYWx1ZSIpO2Z1bmN0aW9uIHYyZShzLGUpe2Zvcih2YXIgdD1zLmxlbmd0aDt0LS07KWlmKGFNYShzW3RdWzBdLGUpKXJldHVybiB0O3JldHVybi0xfWkodjJlLCJhc3NvY0luZGV4T2YiKTtmdW5jdGlvbiBrYXMocyxlKXtyZXR1cm4gcyYmSl9hKGUsYWN0KGUpLHMpfWkoa2FzLCJiYXNlQXNzaWduIik7ZnVuY3Rpb24gSmx0KHMsZSx0LGEscixuLG8pe3ZhciBsO2lmKGEmJihsPW4/YShzLHIsbixvKTphKHMpKSxsIT09dm9pZCAwKXJldHVybiBsO2lmKCF5MmUocykpcmV0dXJuIHM7dmFyIHA9dGN0KHMpO2lmKHApe2lmKGw9T2FzKHMpLCFlKXJldHVybiBBYXMocyxsKX1lbHNle3ZhciBkPXA3KHMpLHU9ZD09Vmx0fHxkPT1rX2E7aWYoR2FzKHMpKXJldHVybiBUYXMocyxlKTtpZihkPT1VbHR8fGQ9PWpsdHx8dSYmIW4pe2lmKEhfYShzKSlyZXR1cm4gbj9zOnt9O2lmKGw9RmFzKHU/e306cyksIWUpcmV0dXJuIE5hcyhzLGthcyhsLHMpKX1lbHNle2lmKCFyaVtkXSlyZXR1cm4gbj9zOnt9O2w9QmFzKHMsZCxKbHQsZSl9fW98fChvPW5ldyBBeCk7dmFyIGM9by5nZXQocyk7aWYoYylyZXR1cm4gYztpZihvLnNldChzLGwpLCFwKXZhciBiPXQ/UmFzKHMpOmFjdChzKTtyZXR1cm4gUnRzKGJ8fHMsZnVuY3Rpb24odix4KXtiJiYoeD12LHY9c1t4XSksUV9hKGwseCxKbHQodixlLHQsYSx4LHMsbykpfSksbH1pKEpsdCwiYmFzZUNsb25lIik7ZnVuY3Rpb24gU2FzKHMpe3JldHVybiB5MmUocyk/VXRzKHMpOnt9fWkoU2FzLCJiYXNlQ3JlYXRlIik7ZnVuY3Rpb24gX2FzKHMsZSx0KXt2YXIgYT1lKHMpO3JldHVybiB0Y3Qocyk/YTpPdHMoYSx0KHMpKX1pKF9hcywiYmFzZUdldEFsbEtleXMiKTtmdW5jdGlvbiBNYXMocyl7cmV0dXJuIGIyZS5jYWxsKHMpfWkoTWFzLCJiYXNlR2V0VGFnIik7ZnVuY3Rpb24gemFzKHMpe2lmKCF5MmUocyl8fGphcyhzKSlyZXR1cm4hMTt2YXIgZT1pTWEocyl8fEhfYShzKT9qdHM6RHRzO3JldHVybiBlLnRlc3QoaDcocykpfWkoemFzLCJiYXNlSXNOYXRpdmUiKTtmdW5jdGlvbiBDYXMocyl7aWYoIXRNYShzKSlyZXR1cm4gWXRzKHMpO3ZhciBlPVtdO2Zvcih2YXIgdCBpbiBPYmplY3QocykpejQuY2FsbChzLHQpJiZ0IT0iY29uc3RydWN0b3IiJiZlLnB1c2godCk7cmV0dXJuIGV9aShDYXMsImJhc2VLZXlzIik7ZnVuY3Rpb24gVGFzKHMsZSl7aWYoZSlyZXR1cm4gcy5zbGljZSgpO3ZhciB0PW5ldyBzLmNvbnN0cnVjdG9yKHMubGVuZ3RoKTtyZXR1cm4gcy5jb3B5KHQpLHR9aShUYXMsImNsb25lQnVmZmVyIik7ZnVuY3Rpb24gZWN0KHMpe3ZhciBlPW5ldyBzLmNvbnN0cnVjdG9yKHMuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBLX2EoZSkuc2V0KG5ldyBLX2EocykpLGV9aShlY3QsImNsb25lQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiAkYXMocyxlKXt2YXIgdD1lP2VjdChzLmJ1ZmZlcik6cy5idWZmZXI7cmV0dXJuIG5ldyBzLmNvbnN0cnVjdG9yKHQscy5ieXRlT2Zmc2V0LHMuYnl0ZUxlbmd0aCl9aSgkYXMsImNsb25lRGF0YVZpZXciKTtmdW5jdGlvbiBEYXMocyxlLHQpe3ZhciBhPWU/dChxX2EocyksITApOnFfYShzKTtyZXR1cm4gQl9hKGEsQXRzLG5ldyBzLmNvbnN0cnVjdG9yKX1pKERhcywiY2xvbmVNYXAiKTtmdW5jdGlvbiBMYXMocyl7dmFyIGU9bmV3IHMuY29uc3RydWN0b3Iocy5zb3VyY2UsJHRzLmV4ZWMocykpO3JldHVybiBlLmxhc3RJbmRleD1zLmxhc3RJbmRleCxlfWkoTGFzLCJjbG9uZVJlZ0V4cCIpO2Z1bmN0aW9uIEVhcyhzLGUsdCl7dmFyIGE9ZT90KGpfYShzKSwhMCk6al9hKHMpO3JldHVybiBCX2EoYSxOdHMsbmV3IHMuY29uc3RydWN0b3IpfWkoRWFzLCJjbG9uZVNldCIpO2Z1bmN0aW9uIFBhcyhzKXtyZXR1cm4gWF9hP09iamVjdChYX2EuY2FsbChzKSk6e319aShQYXMsImNsb25lU3ltYm9sIik7ZnVuY3Rpb24gSWFzKHMsZSl7dmFyIHQ9ZT9lY3Qocy5idWZmZXIpOnMuYnVmZmVyO3JldHVybiBuZXcgcy5jb25zdHJ1Y3Rvcih0LHMuYnl0ZU9mZnNldCxzLmxlbmd0aCl9aShJYXMsImNsb25lVHlwZWRBcnJheSIpO2Z1bmN0aW9uIEFhcyhzLGUpe3ZhciB0PS0xLGE9cy5sZW5ndGg7Zm9yKGV8fChlPUFycmF5KGEpKTsrK3Q8YTspZVt0XT1zW3RdO3JldHVybiBlfWkoQWFzLCJjb3B5QXJyYXkiKTtmdW5jdGlvbiBKX2EocyxlLHQsYSl7dHx8KHQ9e30pO2Zvcih2YXIgcj0tMSxuPWUubGVuZ3RoOysrcjxuOyl7dmFyIG89ZVtyXSxsPWE/YSh0W29dLHNbb10sbyx0LHMpOnZvaWQgMDtRX2EodCxvLGw9PT12b2lkIDA/c1tvXTpsKX1yZXR1cm4gdH1pKEpfYSwiY29weU9iamVjdCIpO2Z1bmN0aW9uIE5hcyhzLGUpe3JldHVybiBKX2EocyxlTWEocyksZSl9aShOYXMsImNvcHlTeW1ib2xzIik7ZnVuY3Rpb24gUmFzKHMpe3JldHVybiBfYXMocyxhY3QsZU1hKX1pKFJhcywiZ2V0QWxsS2V5cyIpO2Z1bmN0aW9uIHgyZShzLGUpe3ZhciB0PXMuX19kYXRhX187cmV0dXJuIHFhcyhlKT90W3R5cGVvZiBlPT0ic3RyaW5nIj8ic3RyaW5nIjoiaGFzaCJdOnQubWFwfWkoeDJlLCJnZXRNYXBEYXRhIik7ZnVuY3Rpb24gTngocyxlKXt2YXIgdD1CdHMocyxlKTtyZXR1cm4gemFzKHQpP3Q6dm9pZCAwfWkoTngsImdldE5hdGl2ZSIpO3ZhciBlTWE9WV9hP0dsdChZX2EsT2JqZWN0KTpaYXMscDc9TWFzOyhZbHQmJnA3KG5ldyBZbHQobmV3IEFycmF5QnVmZmVyKDEpKSkhPW0yZXx8bUomJnA3KG5ldyBtSikhPWgyZXx8Wmx0JiZwNyhabHQucmVzb2x2ZSgpKSE9X19hfHxYbHQmJnA3KG5ldyBYbHQpIT1mMmV8fFFsdCYmcDcobmV3IFFsdCkhPVdsdCkmJihwNz1pKGZ1bmN0aW9uKHMpe3ZhciBlPWIyZS5jYWxsKHMpLHQ9ZT09VWx0P3MuY29uc3RydWN0b3I6dm9pZCAwLGE9dD9oNyh0KTp2b2lkIDA7aWYoYSlzd2l0Y2goYSl7Y2FzZSBadHM6cmV0dXJuIG0yZTtjYXNlIFh0czpyZXR1cm4gaDJlO2Nhc2UgUXRzOnJldHVybiBfX2E7Y2FzZSBKdHM6cmV0dXJuIGYyZTtjYXNlIGVhczpyZXR1cm4gV2x0fXJldHVybiBlfSwiZ2V0VGFnIikpO2Z1bmN0aW9uIE9hcyhzKXt2YXIgZT1zLmxlbmd0aCx0PXMuY29uc3RydWN0b3IoZSk7cmV0dXJuIGUmJnR5cGVvZiBzWzBdPT0ic3RyaW5nIiYmejQuY2FsbChzLCJpbmRleCIpJiYodC5pbmRleD1zLmluZGV4LHQuaW5wdXQ9cy5pbnB1dCksdH1pKE9hcywiaW5pdENsb25lQXJyYXkiKTtmdW5jdGlvbiBGYXMocyl7cmV0dXJuIHR5cGVvZiBzLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhdE1hKHMpP1NhcyhWdHMocykpOnt9fWkoRmFzLCJpbml0Q2xvbmVPYmplY3QiKTtmdW5jdGlvbiBCYXMocyxlLHQsYSl7dmFyIHI9cy5jb25zdHJ1Y3Rvcjtzd2l0Y2goZSl7Y2FzZSBUX2E6cmV0dXJuIGVjdChzKTtjYXNlIHlfYTpjYXNlIHdfYTpyZXR1cm4gbmV3IHIoK3MpO2Nhc2UgbTJlOnJldHVybiAkYXMocyxhKTtjYXNlICRfYTpjYXNlIERfYTpjYXNlIExfYTpjYXNlIEVfYTpjYXNlIFBfYTpjYXNlIElfYTpjYXNlIEFfYTpjYXNlIE5fYTpjYXNlIFJfYTpyZXR1cm4gSWFzKHMsYSk7Y2FzZSBoMmU6cmV0dXJuIERhcyhzLGEsdCk7Y2FzZSBTX2E6Y2FzZSB6X2E6cmV0dXJuIG5ldyByKHMpO2Nhc2UgTV9hOnJldHVybiBMYXMocyk7Y2FzZSBmMmU6cmV0dXJuIEVhcyhzLGEsdCk7Y2FzZSBDX2E6cmV0dXJuIFBhcyhzKX19aShCYXMsImluaXRDbG9uZUJ5VGFnIik7ZnVuY3Rpb24gSGFzKHMsZSl7cmV0dXJuIGU9ZT8/eF9hLCEhZSYmKHR5cGVvZiBzPT0ibnVtYmVyInx8THRzLnRlc3QocykpJiZzPi0xJiZzJTE9PTAmJnM8ZX1pKEhhcywiaXNJbmRleCIpO2Z1bmN0aW9uIHFhcyhzKXt2YXIgZT10eXBlb2YgcztyZXR1cm4gZT09InN0cmluZyJ8fGU9PSJudW1iZXIifHxlPT0ic3ltYm9sInx8ZT09ImJvb2xlYW4iP3MhPT0iX19wcm90b19fIjpzPT09bnVsbH1pKHFhcywiaXNLZXlhYmxlIik7ZnVuY3Rpb24gamFzKHMpe3JldHVybiEhVl9hJiZWX2EgaW4gc31pKGphcywiaXNNYXNrZWQiKTtmdW5jdGlvbiB0TWEocyl7dmFyIGU9cyYmcy5jb25zdHJ1Y3Rvcix0PXR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlLnByb3RvdHlwZXx8ZzJlO3JldHVybiBzPT09dH1pKHRNYSwiaXNQcm90b3R5cGUiKTtmdW5jdGlvbiBoNyhzKXtpZihzIT1udWxsKXt0cnl7cmV0dXJuIFVfYS5jYWxsKHMpfWNhdGNoe310cnl7cmV0dXJuIHMrIiJ9Y2F0Y2h7fX1yZXR1cm4iIn1pKGg3LCJ0b1NvdXJjZSIpO2Z1bmN0aW9uIFZhcyhzKXtyZXR1cm4gSmx0KHMsITAsITApfWkoVmFzLCJjbG9uZURlZXAiKTtmdW5jdGlvbiBhTWEocyxlKXtyZXR1cm4gcz09PWV8fHMhPT1zJiZlIT09ZX1pKGFNYSwiZXEiKTtmdW5jdGlvbiBVYXMocyl7cmV0dXJuIFdhcyhzKSYmejQuY2FsbChzLCJjYWxsZWUiKSYmKCFXdHMuY2FsbChzLCJjYWxsZWUiKXx8YjJlLmNhbGwocyk9PWpsdCl9aShVYXMsImlzQXJndW1lbnRzIik7dmFyIHRjdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHNNYShzKXtyZXR1cm4gcyE9bnVsbCYmS2FzKHMubGVuZ3RoKSYmIWlNYShzKX1pKHNNYSwiaXNBcnJheUxpa2UiKTtmdW5jdGlvbiBXYXMocyl7cmV0dXJuIFlhcyhzKSYmc01hKHMpfWkoV2FzLCJpc0FycmF5TGlrZU9iamVjdCIpO3ZhciBHYXM9S3RzfHxYYXM7ZnVuY3Rpb24gaU1hKHMpe3ZhciBlPXkyZShzKT9iMmUuY2FsbChzKToiIjtyZXR1cm4gZT09Vmx0fHxlPT1rX2F9aShpTWEsImlzRnVuY3Rpb24iKTtmdW5jdGlvbiBLYXMocyl7cmV0dXJuIHR5cGVvZiBzPT0ibnVtYmVyIiYmcz4tMSYmcyUxPT0wJiZzPD14X2F9aShLYXMsImlzTGVuZ3RoIik7ZnVuY3Rpb24geTJlKHMpe3ZhciBlPXR5cGVvZiBzO3JldHVybiEhcyYmKGU9PSJvYmplY3QifHxlPT0iZnVuY3Rpb24iKX1pKHkyZSwiaXNPYmplY3QiKTtmdW5jdGlvbiBZYXMocyl7cmV0dXJuISFzJiZ0eXBlb2Ygcz09Im9iamVjdCJ9aShZYXMsImlzT2JqZWN0TGlrZSIpO2Z1bmN0aW9uIGFjdChzKXtyZXR1cm4gc01hKHMpP3dhcyhzKTpDYXMocyl9aShhY3QsImtleXMiKTtmdW5jdGlvbiBaYXMoKXtyZXR1cm5bXX1pKFphcywic3R1YkFycmF5Iik7ZnVuY3Rpb24gWGFzKCl7cmV0dXJuITF9aShYYXMsInN0dWJGYWxzZSIpLFJ4LmV4cG9ydHM9VmFzfSk7dmFyIHcyZSxvTWEsazJlLHNjdD1nKCgpPT57Yl9hKCk7bzMoKTt3MmU9eG4ock1hKCksMSksb01hPXhuKEJoZSgpLDEpLGsyZT1vTWEuZGVmYXVsdH0pO2Z1bmN0aW9uIEphcyhzKXtyZXR1cm4gdHlwZW9mIEJ1ZmZlcjwidSI/QnVmZmVyLmZyb20ocykudG9TdHJpbmcoImJhc2U2NCIpOmJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5zKSl9ZnVuY3Rpb24gZXNzKHMpe2lmKHR5cGVvZiBCdWZmZXI8InUiKXtsZXQgZT1CdWZmZXIuZnJvbShzLCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYihzKSkubWFwKGU9PmUuY2hhckNvZGVBdCgwKSkpfWZ1bmN0aW9uIHJjdChzLGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShzLFMyZSxlKX1mdW5jdGlvbiBvY3Qocyl7cmV0dXJuIEpTT04ucGFyc2UocyxuTWEpfWZ1bmN0aW9uIHRzcyhzKXtyZXR1cm4gY01hKHMpJiZzLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJmljdChzLmRhdGEpfWZ1bmN0aW9uIGFzcyhzKXtyZXR1cm4gY01hKHMpJiZzLnR5cGU9PT0iQnVmZmVyIiYmKGxNYShzLmRhdGEpfHxpY3Qocy5kYXRhKSl8fHMgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIGxNYShzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKX1mdW5jdGlvbiBpY3Qocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIn1mdW5jdGlvbiBjTWEocyl7cmV0dXJuIHR5cGVvZiBzPT0ib2JqZWN0IiYmcyE9PW51bGx9dmFyIFMyZSxuTWEsZE1hPWcoKCk9PntzY3QoKTtpKEphcywiYmFzZTY0RW5jb2RlIik7aShlc3MsImJhc2U2NERlY29kZSIpO2kocmN0LCJzdHJpbmdpZnkiKTtpKG9jdCwicGFyc2UiKTtTMmU9aSgocyxlKT0+e2lmKGFzcyhlKSl7bGV0IHQ7aWYoImRhdGEiaW4gZSYmbE1hKGUuZGF0YSkpdD1uZXcgVWludDhBcnJheShlLmRhdGEpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpdD1lO2Vsc2UgcmV0dXJuIGU7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK0phcyh0KX19cmV0dXJuIGV9LCJyZXBsYWNlciIpLG5NYT1pKChzLGUpPT57aWYodHNzKGUpJiZpY3QoZS5kYXRhKSYmZS5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHQ9ZS5kYXRhLnNsaWNlKDcpO3JldHVybiBlc3ModCl9cmV0dXJuIGV9LCJyZXZpdmVyIik7aSh0c3MsImlzRW5jb2RlZEJ1ZmZlciIpO2koYXNzLCJpc0J1ZmZlckxpa2UiKTtpKGxNYSwiaXNBcnJheSIpO2koaWN0LCJpc1N0cmluZyIpO2koY01hLCJpc09iamVjdCIpfSk7dmFyIHQwPXt9O3l0KHQwLHtTbWFydGpzb246KCk9PmxjdCxkZWVwRXF1YWxKc29uTFN0cmluZ3M6KCk9PmRzcyxkZWVwRXF1YWxPYmplY3RzOigpPT51TWEsZm9sZERlYzooKT0+Y3NzLHBhcnNlOigpPT5fMmUscGFyc2VCYXNlNjQ6KCk9PmxzcyxwYXJzZUpzb25MOigpPT5uY3Qsc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT5yc3Msc3RyaW5naWZ5OigpPT5mNyxzdHJpbmdpZnlCYXNlNjQ6KCk9Pm5zcyxzdHJpbmdpZnlKc29uTDooKT0+aXNzLHN0cmluZ2lmeVByZXR0eTooKT0+b3NzfSk7dmFyIF8yZSxuY3QsaXNzLHJzcyxmNyxvc3MsbnNzLGxzcyxsY3QsY3NzLHVNYSxkc3MscE1hPWcoKCk9PntzY3QoKTtkTWEoKTtfMmU9b2N0LG5jdD1pKHM9PnMuc3BsaXQoYApgKS5yZWR1Y2UoKGEscik9PntsZXQgbj1yLnRyaW0oKTtyZXR1cm4gbi5sZW5ndGg+MCYmYS5wdXNoKF8yZShuKSksYX0sW10pLCJwYXJzZUpzb25MIiksaXNzPWkocz0+cy5tYXAoZT0+ZjcoZSkpLmpvaW4oYApgKSwic3RyaW5naWZ5SnNvbkwiKSxyc3M9aSgocyxlLHQ9e30pPT57bGV0IGE9bmV3IFdlYWtTZXQscj1pKGw9PntpZihsPT09bnVsbHx8dHlwZW9mIGwhPSJvYmplY3QiKXJldHVybiBsO2xldCBwPVMyZSgiIixsKTtpZihwJiZwLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBwLmRhdGE9PSJzdHJpbmciKXJldHVybiBwO2lmKGEuaGFzKGwpKXJldHVybiJfX2N5Y2xlX18iO2lmKGEuYWRkKGwpLEFycmF5LmlzQXJyYXkobCkpcmV0dXJuIGwubWFwKHU9PnIodSkpO2xldCBkPXt9O2ZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyhsKSl0cnl7ZFt1XT1yKGxbdV0pfWNhdGNoe2RbdV09Il9fdW5zZXJpYWxpemFibGVfXyJ9cmV0dXJuIGR9LCJzYW5pdGl6ZSIpLG49cihzKSxvPXsuLi50LGN5Y2xlczohMH07aWYoZSYmIW8uY21wKXtsZXQgbD1uZXcgTWFwO2UuZm9yRWFjaCgocCxkKT0+bC5zZXQocCxkKSksby5jbXA9KHAsZCk9PntsZXQgdT1sLmhhcyhwLmtleSk/bC5nZXQocC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxjPWwuaGFzKGQua2V5KT9sLmdldChkLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiB1IT09Yz91LWM6cC5rZXk8ZC5rZXk/LTE6cC5rZXk+ZC5rZXk/MTowfX1yZXR1cm4gazJlKG4sbyl9LCJzdGFibGVPbmVXYXlTdHJpbmdpZnkiKSxmNz1pKChzLGUsdD17fSk9PntsZXQgYT1yY3Qocyk7cz1KU09OLnBhcnNlKGEpO2xldCByPXsuLi50fTtpZihlJiYhci5jbXApe2xldCBvPW5ldyBNYXA7ZS5mb3JFYWNoKChsLHApPT5vLnNldChsLHApKSxyLmNtcD0obCxwKT0+e2xldCBkPW8uaGFzKGwua2V5KT9vLmdldChsLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9by5oYXMocC5rZXkpP28uZ2V0KHAua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGQhPT11P2QtdTpsLmtleTxwLmtleT8tMTpsLmtleT5wLmtleT8xOjB9fXJldHVybiBrMmUocyxyKX0sInN0cmluZ2lmeSIpLG9zcz1pKHM9PntsZXQgZT1mNyhzKSx0PUpTT04ucGFyc2UoZSk7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQsbnVsbCwyKX0sInN0cmluZ2lmeVByZXR0eSIpLG5zcz1pKCguLi5zKT0+e2xldCBlPWY3KC4uLnMpO3JldHVybiBhci5iYXNlNjQuZW5jb2RlVXJpKGUpfSwic3RyaW5naWZ5QmFzZTY0IiksbHNzPWkocz0+e2xldCBlPWFyLmJhc2U2NCxhPShlLmRlY29kZVVyaXx8ZS5kZWNvZGUpKHMpO3JldHVybiBfMmUoYSl9LCJwYXJzZUJhc2U2NCIpLGxjdD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlNtYXJ0anNvbiIpfXN0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KGUpe2xldCB0PW5ldyB0aGlzLGE9dC5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgciBpbiBlKWEuaW5kZXhPZihyKSE9PS0xJiYodFtyXT1lW3JdKTtyZXR1cm4gdH1zdGF0aWMgZW5mb2xkRnJvbUpzb24oZSl7bGV0IHQ9XzJlKGUpO3JldHVybiB0aGlzLmVuZm9sZEZyb21PYmplY3QodCl9Zm9sZFRvT2JqZWN0KCl7bGV0IGU9bmV3IFNldDtyZXR1cm4gZS5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbChlKX1mb2xkVG9PYmplY3RJbnRlcm5hbChlKXtsZXQgdD17fSxhPWkobj0+e2lmKG4gaW5zdGFuY2VvZiBzKXtpZihlLmhhcyhuKSl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIGRldGVjdGVkIik7cmV0dXJuIGUuYWRkKG4pLG4uZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9cmV0dXJuIEFycmF5LmlzQXJyYXkobik/bi5tYXAobz0+YShvKSk6dzJlLmRlZmF1bHQobil9LCJmb2xkVmFsdWUiKSxyPXRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IG4gb2Ygcil7bGV0IG89dGhpc1tuXTt0W25dPWEobyl9cmV0dXJuIHR9Zm9sZFRvSnNvbigpe2xldCBlPXRoaXMuZm9sZFRvT2JqZWN0KCk7cmV0dXJuIGY3KGUpfX0sY3NzPWkoKCk9PihzLGUpPT57cy5zYXZlYWJsZVByb3BlcnRpZXN8fChzLnNhdmVhYmxlUHJvcGVydGllcz1bXSkscy5zYXZlYWJsZVByb3BlcnRpZXMucHVzaChlKX0sImZvbGREZWMiKSx1TWE9aSgocyxlKT0+e2xldCB0PWY3KHMpLGE9ZjcoZSk7cmV0dXJuIHQ9PT1hfSwiZGVlcEVxdWFsT2JqZWN0cyIpLGRzcz1pKChzLGUpPT57bGV0IHQ9bmN0KHMpLGE9bmN0KGUpO3JldHVybiB1TWEodCxhKX0sImRlZXBFcXVhbEpzb25MU3RyaW5ncyIpfSk7dmFyIGhNYT1nKCgpPT57cHNlKCk7VTQoKTtoX2EoKTtkMCgpO3BNYSgpO2lvKCk7WjIoKTtvMygpO0c2ZSgpfSk7ZnVuY3Rpb24gcHNzKHMpe3JldHVybntwZWVyOnMsYXN5bmMgZ2V0VGFnQnlJZChlKXtpZighcy50YWdzLmhhcyhlKSlyZXR1cm47bGV0IHQ9cy5kYXRhLmdldChgJHtjY3R9JHtlfWApO3JldHVybntpZDplLHBheWxvYWQ6dH19fX12YXIgY2N0LGRjdCxmTWE9ZygoKT0+e2hNYSgpO2NjdD0iX190eXBlZHNvY2tldF90YWdfXyI7aShwc3MsIndyYXBTbWFydFNlcnZlUGVlciIpO2RjdD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlR5cGVkU29ja2V0Iil9c3RhdGljIGFzeW5jIGNyZWF0ZUNsaWVudChlLHQsYT17fSl7bGV0IG49ey4uLnthdXRvUmVjb25uZWN0OiEwLG1heFJldHJpZXM6MTAwLGluaXRpYWxCYWNrb2ZmTXM6MWUzLG1heEJhY2tvZmZNczo2ZTR9LC4uLmF9LG89bmV3IHMoImNsaWVudCIsZSk7cmV0dXJuIG8uY2xpZW50T3B0aW9ucz1uLG8uc2VydmVyVXJsPXQsby5jdXJyZW50QmFja29mZj1uLmluaXRpYWxCYWNrb2ZmTXMsYXdhaXQgby5jb25uZWN0KCksb31zdGF0aWN7dGhpcy51c2VXaW5kb3dMb2NhdGlvbk9yaWdpblVybD0oKT0+UjEuU21hcnR1cmwuY3JlYXRlRnJvbVVybChnbG9iYWxUaGlzLmxvY2F0aW9uLm9yaWdpbikudG9TdHJpbmcoKX1zdGF0aWMgZnJvbVNtYXJ0U2VydmUoZSx0KXtsZXQgYT1uZXcgTWFwO3MucmVnaXN0ZXJUYWdIYW5kbGVycyh0KTtsZXQgcj1uZXcgcygic2VydmVyIix0KTtyZXR1cm4gci5zbWFydFNlcnZlUmVmPWUsci5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzPWEscn1zdGF0aWMgcmVnaXN0ZXJUYWdIYW5kbGVycyhlKXtlLmFkZFR5cGVkSGFuZGxlcihuZXcgZ2wuVHlwZWRIYW5kbGVyKCJfX3R5cGVkc29ja2V0X3NldFRhZyIsYXN5bmModCxhKT0+e2xldCByPWE/LmxvY2FsRGF0YT8ucGVlcjtyZXR1cm4gcj8oci50YWdzLmFkZCh0Lm5hbWUpLHIuZGF0YS5zZXQoYCR7Y2N0fSR7dC5uYW1lfWAsdC5wYXlsb2FkKSx7c3VjY2VzczohMH0pOihjb25zb2xlLndhcm4oInNldFRhZzogTm8gcGVlciBmb3VuZCBpbiByZXF1ZXN0IGNvbnRleHQiKSx7c3VjY2VzczohMX0pfSkpLGUuYWRkVHlwZWRIYW5kbGVyKG5ldyBnbC5UeXBlZEhhbmRsZXIoIl9fdHlwZWRzb2NrZXRfcmVtb3ZlVGFnIixhc3luYyh0LGEpPT57bGV0IHI9YT8ubG9jYWxEYXRhPy5wZWVyO3JldHVybiByPyhyLnRhZ3MuZGVsZXRlKHQubmFtZSksci5kYXRhLmRlbGV0ZShgJHtjY3R9JHt0Lm5hbWV9YCkse3N1Y2Nlc3M6ITB9KTooY29uc29sZS53YXJuKCJyZW1vdmVUYWc6IE5vIHBlZXIgZm91bmQgaW4gcmVxdWVzdCBjb250ZXh0Iikse3N1Y2Nlc3M6ITF9KX0pKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuc3RhdHVzU3ViamVjdD1uZXcgbHMucnhqcy5TdWJqZWN0LHRoaXMuY29ubmVjdGlvblN0YXR1cz0ibmV3Iix0aGlzLndlYnNvY2tldD1udWxsLHRoaXMuY2xpZW50T3B0aW9ucz1udWxsLHRoaXMuc2VydmVyVXJsPSIiLHRoaXMucmV0cnlDb3VudD0wLHRoaXMuY3VycmVudEJhY2tvZmY9MWUzLHRoaXMucGVuZGluZ1JlcXVlc3RzPW5ldyBNYXAsdGhpcy5zbWFydFNlcnZlUmVmPW51bGwsdGhpcy5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzPW5ldyBNYXAsdGhpcy5zaWRlPWUsdGhpcy50eXBlZHJvdXRlcj10fWFzeW5jIGNvbm5lY3QoKXtsZXQgZT1tdC5kZWZlcigpO3RoaXMudXBkYXRlU3RhdHVzKCJjb25uZWN0aW5nIik7bGV0IHQ9dGhpcy50b1dlYlNvY2tldFVybCh0aGlzLnNlcnZlclVybCk7Y29uc29sZS5sb2coYFR5cGVkU29ja2V0IGNvbm5lY3RpbmcgdG8gJHt0fS4uLmApLHRoaXMud2Vic29ja2V0PW5ldyBXZWJTb2NrZXQodCk7bGV0IGE9c2V0VGltZW91dCgoKT0+e3RoaXMuY29ubmVjdGlvblN0YXR1cyE9PSJjb25uZWN0ZWQiJiYoY29uc29sZS53YXJuKCJUeXBlZFNvY2tldCBjb25uZWN0aW9uIHRpbWVvdXQiKSx0aGlzLndlYnNvY2tldD8uY2xvc2UoKSxlLnJlamVjdChuZXcgRXJyb3IoIkNvbm5lY3Rpb24gdGltZW91dCIpKSl9LDFlNCk7dGhpcy53ZWJzb2NrZXQub25vcGVuPSgpPT57Y2xlYXJUaW1lb3V0KGEpLGNvbnNvbGUubG9nKCJUeXBlZFNvY2tldCBjb25uZWN0ZWQhIiksdGhpcy51cGRhdGVTdGF0dXMoImNvbm5lY3RlZCIpLHRoaXMucmV0cnlDb3VudD0wLHRoaXMuY3VycmVudEJhY2tvZmY9dGhpcy5jbGllbnRPcHRpb25zPy5pbml0aWFsQmFja29mZk1zPz8xZTMsZS5yZXNvbHZlKCl9LHRoaXMud2Vic29ja2V0Lm9ubWVzc2FnZT1hc3luYyByPT57YXdhaXQgdGhpcy5oYW5kbGVNZXNzYWdlKHIuZGF0YSl9LHRoaXMud2Vic29ja2V0Lm9uY2xvc2U9KCk9PntjbGVhclRpbWVvdXQoYSksdGhpcy5oYW5kbGVEaXNjb25uZWN0KCl9LHRoaXMud2Vic29ja2V0Lm9uZXJyb3I9cj0+e2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IFdlYlNvY2tldCBlcnJvcjoiLHIpfTt0cnl7YXdhaXQgZS5wcm9taXNlfWNhdGNoKHIpe2lmKGNsZWFyVGltZW91dChhKSx0aGlzLmNsaWVudE9wdGlvbnM/LmF1dG9SZWNvbm5lY3QpYXdhaXQgdGhpcy5zY2hlZHVsZVJlY29ubmVjdCgpO2Vsc2UgdGhyb3cgcn19dG9XZWJTb2NrZXRVcmwoZSl7bGV0IHQ9bmV3IFVSTChlKTtyZXR1cm5gJHt0LnByb3RvY29sPT09Imh0dHBzOiI/IndzczoiOiJ3czoifS8vJHt0Lmhvc3R9JHt0LnBhdGhuYW1lfWB9YXN5bmMgaGFuZGxlTWVzc2FnZShlKXt0cnl7bGV0IHQ9dHlwZW9mIGU9PSJzdHJpbmciP2U6bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGUpLGE9dDAucGFyc2UodCk7aWYoYS5jb3JyZWxhdGlvbj8uaWQmJnRoaXMucGVuZGluZ1JlcXVlc3RzLmhhcyhhLmNvcnJlbGF0aW9uLmlkKSl7bGV0IG49dGhpcy5wZW5kaW5nUmVxdWVzdHMuZ2V0KGEuY29ycmVsYXRpb24uaWQpO3RoaXMucGVuZGluZ1JlcXVlc3RzLmRlbGV0ZShhLmNvcnJlbGF0aW9uLmlkKSxuLnJlc29sdmUoYSk7cmV0dXJufWxldCByPWF3YWl0IHRoaXMudHlwZWRyb3V0ZXIucm91dGVBbmRBZGRSZXNwb25zZShhKTtyJiZ0aGlzLndlYnNvY2tldD8ucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOJiZ0aGlzLndlYnNvY2tldC5zZW5kKHQwLnN0cmluZ2lmeShyKSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiVHlwZWRTb2NrZXQgZmFpbGVkIHRvIHByb2Nlc3MgbWVzc2FnZToiLHQpfX1oYW5kbGVEaXNjb25uZWN0KCl7aWYodGhpcy5jb25uZWN0aW9uU3RhdHVzIT09ImRpc2Nvbm5lY3RlZCIpe3RoaXMudXBkYXRlU3RhdHVzKCJkaXNjb25uZWN0ZWQiKTtmb3IobGV0W2UsdF1vZiB0aGlzLnBlbmRpbmdSZXF1ZXN0cyl0LnJlamVjdChuZXcgRXJyb3IoIlR5cGVkU29ja2V0IGRpc2Nvbm5lY3RlZCIpKTt0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpLHRoaXMuY2xpZW50T3B0aW9ucz8uYXV0b1JlY29ubmVjdCYmdGhpcy5yZXRyeUNvdW50PHRoaXMuY2xpZW50T3B0aW9ucy5tYXhSZXRyaWVzJiZ0aGlzLnNjaGVkdWxlUmVjb25uZWN0KCl9fWFzeW5jIHNjaGVkdWxlUmVjb25uZWN0KCl7aWYoIXRoaXMuY2xpZW50T3B0aW9ucylyZXR1cm47dGhpcy51cGRhdGVTdGF0dXMoInJlY29ubmVjdGluZyIpLHRoaXMucmV0cnlDb3VudCsrO2xldCBlPXRoaXMuY3VycmVudEJhY2tvZmYqLjIqKE1hdGgucmFuZG9tKCkqMi0xKSx0PU1hdGgubWluKHRoaXMuY3VycmVudEJhY2tvZmYrZSx0aGlzLmNsaWVudE9wdGlvbnMubWF4QmFja29mZk1zKTtjb25zb2xlLmxvZyhgVHlwZWRTb2NrZXQgcmVjb25uZWN0aW5nIGluICR7TWF0aC5yb3VuZCh0KX1tcyAoYXR0ZW1wdCAke3RoaXMucmV0cnlDb3VudH0vJHt0aGlzLmNsaWVudE9wdGlvbnMubWF4UmV0cmllc30pYCksYXdhaXQgWHQuZGVsYXlGb3IodCksdGhpcy5jdXJyZW50QmFja29mZj1NYXRoLm1pbih0aGlzLmN1cnJlbnRCYWNrb2ZmKjIsdGhpcy5jbGllbnRPcHRpb25zLm1heEJhY2tvZmZNcyk7dHJ5e2F3YWl0IHRoaXMuY29ubmVjdCgpfWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IHJlY29ubmVjdGlvbiBmYWlsZWQ6IixhKX19dXBkYXRlU3RhdHVzKGUpe3RoaXMuY29ubmVjdGlvblN0YXR1cyE9PWUmJih0aGlzLmNvbm5lY3Rpb25TdGF0dXM9ZSx0aGlzLnN0YXR1c1N1YmplY3QubmV4dChlKSl9YXN5bmMgc2VuZFJlcXVlc3QoZSl7aWYoIXRoaXMud2Vic29ja2V0fHx0aGlzLndlYnNvY2tldC5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU4pdGhyb3cgbmV3IEVycm9yKCJXZWJTb2NrZXQgbm90IGNvbm5lY3RlZCIpO2UuY29ycmVsYXRpb258fD17aWQ6YXIuY3JlYXRlLmNyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZygpLHBoYXNlOiJyZXF1ZXN0In07bGV0IHQ9ZS5jb3JyZWxhdGlvbi5pZDtyZXR1cm4gbmV3IFByb21pc2UoKGEscik9PntsZXQgbj1zZXRUaW1lb3V0KCgpPT57dGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHQpLHIobmV3IEVycm9yKCJSZXF1ZXN0IHRpbWVvdXQiKSl9LDNlNCk7dGhpcy5wZW5kaW5nUmVxdWVzdHMuc2V0KHQse3Jlc29sdmU6aShvPT57Y2xlYXJUaW1lb3V0KG4pLGEobyl9LCJyZXNvbHZlIikscmVqZWN0Omkobz0+e2NsZWFyVGltZW91dChuKSxyKG8pfSwicmVqZWN0Iil9KSx0aGlzLndlYnNvY2tldC5zZW5kKHQwLnN0cmluZ2lmeShlKSl9KX1jcmVhdGVUeXBlZFJlcXVlc3QoZSx0KXtsZXQgYT1pKGFzeW5jIHI9PntpZih0aGlzLnNpZGU9PT0iY2xpZW50IilyZXR1cm4gdGhpcy5zZW5kUmVxdWVzdChyKTtpZighdGhpcy5zbWFydFNlcnZlUmVmKXRocm93IG5ldyBFcnJvcigiU2VydmVyIG5vdCBpbml0aWFsaXplZCIpO2xldCBuPXQ7aWYoIW4pe2xldCBsPXRoaXMuc21hcnRTZXJ2ZVJlZi5nZXRXZWJTb2NrZXRDb25uZWN0aW9ucygpO2lmKGwubGVuZ3RoPT09MSl7bGV0IHA9bFswXTtuPXRoaXMuZ2V0T3JDcmVhdGVXcmFwcGVyKHApfWVsc2UgdGhyb3cgbC5sZW5ndGg9PT0wP25ldyBFcnJvcigiTm8gV2ViU29ja2V0IGNvbm5lY3Rpb25zIGF2YWlsYWJsZSIpOm5ldyBFcnJvcigiTXVsdGlwbGUgY29ubmVjdGlvbnMgYXZhaWxhYmxlIC0gc3BlY2lmeSB0YXJnZXRDb25uZWN0aW9uIil9bGV0IG89YXdhaXQgdGhpcy50eXBlZHJvdXRlci5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChyLmNvcnJlbGF0aW9uLmlkLHIpO3JldHVybiBuLnBlZXIuc2VuZCh0MC5zdHJpbmdpZnkocikpLGF3YWl0IG8uaW50ZXJlc3RGdWxsZmlsbGVkfSwicG9zdE1ldGhvZCIpO3JldHVybiBuZXcgZ2wuVHlwZWRSZXF1ZXN0KG5ldyBnbC5UeXBlZFRhcmdldCh7cG9zdE1ldGhvZDphfSksZSl9Z2V0U3RhdHVzKCl7cmV0dXJuIHRoaXMuY29ubmVjdGlvblN0YXR1c31hc3luYyBzdG9wKCl7dGhpcy5zaWRlPT09ImNsaWVudCI/KHRoaXMuY2xpZW50T3B0aW9ucyYmKHRoaXMuY2xpZW50T3B0aW9ucy5hdXRvUmVjb25uZWN0PSExKSx0aGlzLndlYnNvY2tldCYmKHRoaXMud2Vic29ja2V0LmNsb3NlKCksdGhpcy53ZWJzb2NrZXQ9bnVsbCksdGhpcy5wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKSk6dGhpcy5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzLmNsZWFyKCl9YXN5bmMgc2V0VGFnKGUsdCl7aWYodGhpcy5zaWRlIT09ImNsaWVudCIpdGhyb3cgbmV3IEVycm9yKCJzZXRUYWcgaXMgb25seSBhdmFpbGFibGUgb24gY2xpZW50cyIpO2lmKCEoYXdhaXQgdGhpcy5jcmVhdGVUeXBlZFJlcXVlc3QoIl9fdHlwZWRzb2NrZXRfc2V0VGFnIikuZmlyZSh7bmFtZTplLHBheWxvYWQ6dH0pKS5zdWNjZXNzKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHNldCB0YWcgb24gc2VydmVyIil9YXN5bmMgcmVtb3ZlVGFnKGUpe2lmKHRoaXMuc2lkZSE9PSJjbGllbnQiKXRocm93IG5ldyBFcnJvcigicmVtb3ZlVGFnIGlzIG9ubHkgYXZhaWxhYmxlIG9uIGNsaWVudHMiKTtpZighKGF3YWl0IHRoaXMuY3JlYXRlVHlwZWRSZXF1ZXN0KCJfX3R5cGVkc29ja2V0X3JlbW92ZVRhZyIpLmZpcmUoe25hbWU6ZX0pKS5zdWNjZXNzKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlbW92ZSB0YWcgb24gc2VydmVyIil9Z2V0T3JDcmVhdGVXcmFwcGVyKGUpe2xldCB0PXRoaXMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycy5nZXQoZS5pZCk7cmV0dXJuIHR8fCh0PXBzcyhlKSx0aGlzLnNtYXJ0U2VydmVDb25uZWN0aW9uV3JhcHBlcnMuc2V0KGUuaWQsdCkpLHR9YXN5bmMgZmluZEFsbFRhcmdldENvbm5lY3Rpb25zKGUpe2lmKHRoaXMuc2lkZSE9PSJzZXJ2ZXIifHwhdGhpcy5zbWFydFNlcnZlUmVmKXRocm93IG5ldyBFcnJvcigiZmluZEFsbFRhcmdldENvbm5lY3Rpb25zIGlzIG9ubHkgYXZhaWxhYmxlIG9uIHNlcnZlcnMiKTtsZXQgdD1bXTtmb3IobGV0IGEgb2YgdGhpcy5zbWFydFNlcnZlUmVmLmdldFdlYlNvY2tldENvbm5lY3Rpb25zKCkpe2xldCByPXRoaXMuZ2V0T3JDcmVhdGVXcmFwcGVyKGEpO2F3YWl0IGUocikmJnQucHVzaChyKX1yZXR1cm4gdH1hc3luYyBmaW5kVGFyZ2V0Q29ubmVjdGlvbihlKXtyZXR1cm4oYXdhaXQgdGhpcy5maW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnMoZSkpWzBdfWFzeW5jIGZpbmRBbGxUYXJnZXRDb25uZWN0aW9uc0J5VGFnKGUsdCl7aWYodGhpcy5zaWRlIT09InNlcnZlciJ8fCF0aGlzLnNtYXJ0U2VydmVSZWYpdGhyb3cgbmV3IEVycm9yKCJmaW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnNCeVRhZyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBzZXJ2ZXJzIik7bGV0IGE9dGhpcy5zbWFydFNlcnZlUmVmLmdldFdlYlNvY2tldENvbm5lY3Rpb25zQnlUYWcoZSkscj1bXTtmb3IobGV0IG4gb2YgYSl7bGV0IG89dGhpcy5nZXRPckNyZWF0ZVdyYXBwZXIobik7aWYodCE9PXZvaWQgMCl7bGV0IGw9YXdhaXQgby5nZXRUYWdCeUlkKGUpO2lmKHQwLnN0cmluZ2lmeShsPy5wYXlsb2FkKSE9PXQwLnN0cmluZ2lmeSh0KSljb250aW51ZX1yLnB1c2gobyl9cmV0dXJuIHJ9YXN5bmMgZmluZFRhcmdldENvbm5lY3Rpb25CeVRhZyhlLHQpe3JldHVybihhd2FpdCB0aGlzLmZpbmRBbGxUYXJnZXRDb25uZWN0aW9uc0J5VGFnKGUsdCkpWzBdfX19KTt2YXIgUXU9e307eXQoUXUse1R5cGVkU29ja2V0OigpPT5kY3R9KTt2YXIgbU1hPWcoKCk9PntmTWEoKX0pO3ZhciBndCxsbD1nKCgpPT57cGUoKTtON2EoKTtvX2EoKTttTWEoKTtndD1sdH0pO3ZhciB5byxnTWE9ZygoKT0+e3BlKCk7eW89SmAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogYXV0bzsKICAgIG1heC13aWR0aDogMTI4MHB4OwogICAgcGFkZGluZzogMTZweCAxNnB4OwogIH0KYH0pO3ZhciBiTWEsdWN0LGhzcyx2Six2TWE9ZygoKT0+e3BlKCk7Yk1hPVtuZSgib2Itc2VjdGlvbmhlYWRpbmciKV07dko9Y2xhc3MgZXh0ZW5kcyhoc3M9d2Upe3N0YXRpY3tpKHRoaXMsIk9iU2VjdGlvbkhlYWRpbmciKX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLmhlYWRpbmcgewogICAgICAgIGZvbnQtZmFtaWx5OiAnQ2FsIFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMSIsIiNmZmYiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDEgY2xhc3M9ImhlYWRpbmciPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9oMT4KICAgIGB9fTt1Y3Q9UmkoaHNzKSx2Sj1SdCh1Y3QsMCwiT2JTZWN0aW9uSGVhZGluZyIsYk1hLHZKKSxpdCh1Y3QsMSx2Sil9KTt2YXIgQjI9ZygoKT0+e2dNYSgpO3ZNYSgpfSk7dmFyIHFvPWcoKCk9PntVNCgpfSk7dmFyIHhNYT1nKCgpPT57fSk7dmFyIHlNYT1nKCgpPT57fSk7dmFyIHdNYT1nKCgpPT57fSk7dmFyIGtNYT1nKCgpPT57fSk7dmFyIFNNYT1nKCgpPT57fSk7dmFyIF9NYT1nKCgpPT57fSk7dmFyIGZzcyxNTWE9ZygoKT0+e2Zzcz17c3RhbmRhcmQ6e2hvdXJseTowLGRhaWx5Ojcsd2Vla2x5OjQsbW9udGhseToxMn0sZnJlcXVlbnQ6e2hvdXJseToyNCxkYWlseTo3LHdlZWtseTo0LG1vbnRobHk6MTJ9LG1pbmltYWw6e2hvdXJseTowLGRhaWx5OjMsd2Vla2x5OjIsbW9udGhseTo2fSxsb25ndGVybTp7aG91cmx5OjAsZGFpbHk6MTQsd2Vla2x5OjgsbW9udGhseToyNH19fSk7dmFyIHpNYT1nKCgpPT57fSk7dmFyIENNYT1nKCgpPT57fSk7dmFyIHBjdD17fTt5dChwY3Qse1JFVEVOVElPTl9QUkVTRVRTOigpPT5mc3N9KTt2YXIgam89ZygoKT0+e3hNYSgpO3lNYSgpO3dNYSgpO2tNYSgpO1NNYSgpO19NYSgpO01NYSgpO3pNYSgpO0NNYSgpfSk7dmFyIFRNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyICRNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIERNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIExNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEVNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIFBNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIElNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEFNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIE5NYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIFJNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIE9NYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEZNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEJNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEhNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIHFNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIGpNYT17fTt2YXIgVk1hPWcoKCk9PntUTWEoKTskTWEoKTtETWEoKTtMTWEoKTtFTWEoKTtQTWEoKTtJTWEoKTtBTWEoKTtOTWEoKTtSTWEoKTtPTWEoKTtGTWEoKTtCTWEoKTtITWEoKTtxTWEoKX0pO3ZhciBGeD1nKCgpPT57cW8oKTtqbygpO1ZNYSgpfSk7YXN5bmMgZnVuY3Rpb24gZ3NzKCl7aWYoIW03KXRyeXttNz1hd2FpdCBRdS5UeXBlZFNvY2tldC5jcmVhdGVDbGllbnQoeEosUXUuVHlwZWRTb2NrZXQudXNlV2luZG93TG9jYXRpb25PcmlnaW5VcmwoKSksYXdhaXQgbTcuc2V0VGFnKCJyb2xlIiwib3BzX2Rhc2hib2FyZCIpLGNvbnNvbGUubG9nKCJUeXBlZFNvY2tldCBkYXNoYm9hcmQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCIpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IGNvbm5lY3Rpb24gZmFpbGVkOiIscyksbTc9bnVsbH19YXN5bmMgZnVuY3Rpb24gYnNzKCl7aWYobTcpe3RyeXthd2FpdCBtNy5kaXNjb25uZWN0KCl9Y2F0Y2h7fW03PW51bGx9fXZhciBlcCxRaSxhMCxZdCxaYSxxMixIMixzbyxjbCxtYyxpYSxHTWEsTTJlLEh4LHoyZSxLTWEsZmN0LFlNYSxaTWEsWE1hLFFNYSxKTWEsZXphLEMyZSxtY3QsZ2N0LFQyZSx0emEsYmN0LHlKLHdKLGF6YSxzemEsdmN0LHhjdCx5Y3QsJDJlLGl6YSxEMmUscnphLG96YSxrZG4sbnphLFNkbixsemEsX2RuLGN6YSx3Y3Qsa0osZHphLHV6YSxwemEsaHphLE1kbix6ZG4sQ2RuLEJ4LG1zcyxoY3QsbTcseEosVU1hLFdNYSxmemEsbXphLEwyZSxnemEsYTE9Zyhhc3luYygpPT57bGwoKTtGeCgpO2VwPW5ldyBndC5wbHVnaW5zLnNtYXJ0c3RhdGUuU21hcnRzdGF0ZSxRaT1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoImxvZ2luIix7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfSwicGVyc2lzdGVudCIpLGEwPWF3YWl0IGVwLmdldFN0YXRlUGFydCgic3lzdGVtIix7c3RhdHVzOm51bGx9LCJzb2Z0IiksWXQ9YXdhaXQgZXAuZ2V0U3RhdGVQYXJ0KCJzZXJ2aWNlcyIse3NlcnZpY2VzOltdLGN1cnJlbnRTZXJ2aWNlOm51bGwsY3VycmVudFNlcnZpY2VMb2dzOltdLGN1cnJlbnRTZXJ2aWNlU3RhdHM6bnVsbCxwbGF0Zm9ybVNlcnZpY2VzOltdLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2U6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9nczpbXX0sInNvZnQiKSxaYT1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoIm5ldHdvcmsiLHt0YXJnZXRzOltdLHN0YXRzOm51bGwsdHJhZmZpY1N0YXRzOm51bGwsZG5zUmVjb3JkczpbXSxkb21haW5zOltdLGdhdGV3YXlEb21haW5zOltdLGdhdGV3YXlEbnNSZWNvcmRzOltdLGNlcnRpZmljYXRlczpbXX0sInNvZnQiKSxxMj1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoInJlZ2lzdHJpZXMiLHt0b2tlbnM6W10scmVnaXN0cnlTdGF0dXM6bnVsbH0sInNvZnQiKSxIMj1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoImJhY2t1cHMiLHtiYWNrdXBzOltdLHNjaGVkdWxlczpbXX0sInNvZnQiKSxzbz1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoInNldHRpbmdzIix7c2V0dGluZ3M6bnVsbCxiYWNrdXBQYXNzd29yZENvbmZpZ3VyZWQ6ITEsbWFuYWdlZERjUm91dGVyU3RhdHVzOm51bGx9LCJzb2Z0IiksY2w9YXdhaXQgZXAuZ2V0U3RhdGVQYXJ0KCJhcHBTdG9yZSIse2FwcHM6W10sdXBncmFkZWFibGVTZXJ2aWNlczpbXSx1cGdyYWRlT3BlcmF0aW9uczpbXX0sInNvZnQiKSxtYz1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoInVpIix7YWN0aXZlVmlldzoiZGFzaGJvYXJkIixhY3RpdmVTdWJ2aWV3Om51bGwsYXV0b1JlZnJlc2g6ITAscmVmcmVzaEludGVydmFsOjNlNH0pLGlhPWkoKCk9Pih7aWRlbnRpdHk6UWkuZ2V0U3RhdGUoKS5pZGVudGl0eX0pLCJnZXRBY3Rpb25Db250ZXh0IiksR01hPVFpLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57dHJ5e3JldHVybntpZGVudGl0eTooYXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9naW5XaXRoVXNlcm5hbWVBbmRQYXNzd29yZCIpLmZpcmUoe3VzZXJuYW1lOmUudXNlcm5hbWUscGFzc3dvcmQ6ZS5wYXNzd29yZH0pKS5pZGVudGl0eSxpc0xvZ2dlZEluOiEwfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiTG9naW4gZmFpbGVkOiIsdCkse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX19fSksTTJlPVFpLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7ZS5pZGVudGl0eSYmYXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9nb3V0IikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIkxvZ291dCBlcnJvcjoiLHQpfXJldHVybntpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fSksSHg9YTAuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtyZXR1cm57c3RhdHVzOihhd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U3lzdGVtU3RhdHVzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pKS5zdGF0dXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc3lzdGVtIHN0YXR1czoiLHQpLHMuZ2V0U3RhdGUoKX19KSx6MmU9WXQuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzZXJ2aWNlczphLnNlcnZpY2VzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNlcnZpY2VzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLEtNYT1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2xldCByPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGN1cnJlbnRTZXJ2aWNlOnIuc2VydmljZX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLGZjdD1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlQ29uZmlnOmUuY29uZmlnfSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksc2VydmljZXM6bi5zZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2VydmljZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxZTWE9WXQuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7bGV0IHI9cy5nZXRTdGF0ZSgpO3JldHVybnsuLi5yLHNlcnZpY2VzOnIuc2VydmljZXMuZmlsdGVyKG49Pm4ubmFtZSE9PWUubmFtZSksY3VycmVudFNlcnZpY2U6bnVsbH19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgc2VydmljZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxaTWE9WXQuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RhcnRTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtsZXQgbj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzZXJ2aWNlczpuLnNlcnZpY2VzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHN0YXJ0IHNlcnZpY2U6IixhKSxzLmdldFN0YXRlKCl9fSksWE1hPVl0LmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0b3BTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtsZXQgbj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzZXJ2aWNlczpuLnNlcnZpY2VzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHN0b3Agc2VydmljZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxRTWE9WXQuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwicmVzdGFydFNlcnZpY2UiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNlcnZpY2VOYW1lOmUubmFtZX0pO2xldCBuPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLHNlcnZpY2VzOm4uc2VydmljZXN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVzdGFydCBzZXJ2aWNlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLEpNYT1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2xldCByPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlTG9ncyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lLHRhaWw6ZS5saW5lc3x8MjAwfSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxjdXJyZW50U2VydmljZUxvZ3M6ci5sb2dzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNlcnZpY2UgbG9nczoiLGEpLHMuZ2V0U3RhdGUoKX19KSxlemE9WXQuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZVN0YXRzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGN1cnJlbnRTZXJ2aWNlU3RhdHM6ci5zdGF0c319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlIHN0YXRzOiIsYSkscy5nZXRTdGF0ZSgpfX0pLEMyZT1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCkscGxhdGZvcm1TZXJ2aWNlczphLnBsYXRmb3JtU2VydmljZXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGxhdGZvcm0gc2VydmljZXM6Iix0KSxzLmdldFN0YXRlKCl9fSksbWN0PVl0LmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0YXJ0UGxhdGZvcm1TZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlfSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBsYXRmb3JtU2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxwbGF0Zm9ybVNlcnZpY2VzOm4ucGxhdGZvcm1TZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBwbGF0Zm9ybSBzZXJ2aWNlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLGdjdD1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdG9wUGxhdGZvcm1TZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlfSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBsYXRmb3JtU2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxwbGF0Zm9ybVNlcnZpY2VzOm4ucGxhdGZvcm1TZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdG9wIHBsYXRmb3JtIHNlcnZpY2U6IixhKSxzLmdldFN0YXRlKCl9fSksVDJlPVl0LmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBsYXRmb3JtU2VydmljZVN0YXRzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlfSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6ci5zdGF0c319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBwbGF0Zm9ybSBzZXJ2aWNlIHN0YXRzOiIsYSksey4uLnMuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbH19fSksdHphPVl0LmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBsYXRmb3JtU2VydmljZUxvZ3MiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNlcnZpY2VUeXBlOmUuc2VydmljZVR5cGUsdGFpbDplLnRhaWx8fDEwMH0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6ci5sb2dzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHBsYXRmb3JtIHNlcnZpY2UgbG9nczoiLGEpLHsuLi5zLmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119fX0pLGJjdD1aYS5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXROZXR3b3JrVGFyZ2V0cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLHRhcmdldHM6YS50YXJnZXRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIG5ldHdvcmsgdGFyZ2V0czoiLHQpLHMuZ2V0U3RhdGUoKX19KSx5Sj1aYS5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXROZXR3b3JrU3RhdHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzdGF0czphLnN0YXRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIG5ldHdvcmsgc3RhdHM6Iix0KSxzLmdldFN0YXRlKCl9fSksd0o9WmEuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0VHJhZmZpY1N0YXRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksdHJhZmZpY1N0YXRzOmEuc3RhdHN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdHJhZmZpYyBzdGF0czoiLHQpLHMuZ2V0U3RhdGUoKX19KSxhemE9WmEuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0RG5zUmVjb3JkcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGRuc1JlY29yZHM6YS5yZWNvcmRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIEROUyByZWNvcmRzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHN6YT1aYS5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzeW5jRG5zIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO2xldCByPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXREbnNSZWNvcmRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksZG5zUmVjb3JkczpyLnJlY29yZHN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3luYyBETlM6Iix0KSxzLmdldFN0YXRlKCl9fSksdmN0PVphLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldERvbWFpbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxkb21haW5zOmEuZG9tYWluc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBkb21haW5zOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHhjdD1aYS5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRHYXRld2F5RG9tYWlucyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGdhdGV3YXlEb21haW5zOmEuZG9tYWluc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBnYXRld2F5IGRvbWFpbnM6Iix0KSxzLmdldFN0YXRlKCl9fSkseWN0PVphLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEdhdGV3YXlEbnNSZWNvcmRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksZ2F0ZXdheURuc1JlY29yZHM6YS5yZWNvcmRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGdhdGV3YXkgRE5TIHJlY29yZHM6Iix0KSxzLmdldFN0YXRlKCl9fSksJDJlPVphLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImxpc3RDZXJ0aWZpY2F0ZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxjZXJ0aWZpY2F0ZXM6YS5jZXJ0aWZpY2F0ZXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggY2VydGlmaWNhdGVzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLGl6YT1aYS5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJyZW5ld0NlcnRpZmljYXRlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxkb21haW46ZS5kb21haW59KTtsZXQgbj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwibGlzdENlcnRpZmljYXRlcyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGNlcnRpZmljYXRlczpuLmNlcnRpZmljYXRlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5ldyBjZXJ0aWZpY2F0ZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxEMmU9cTIuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UmVnaXN0cnlUb2tlbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSx0b2tlbnM6YS50b2tlbnN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcmVnaXN0cnkgdG9rZW5zOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHJ6YT1xMi5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVSZWdpc3RyeVRva2VuIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSx0b2tlbjplLnRva2VufSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFJlZ2lzdHJ5VG9rZW5zIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksdG9rZW5zOm4udG9rZW5zfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSByZWdpc3RyeSB0b2tlbjoiLGEpLHMuZ2V0U3RhdGUoKX19KSxvemE9cTIuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlUmVnaXN0cnlUb2tlbiIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksdG9rZW5JZDplLnRva2VuSWR9KTtsZXQgcj1zLmdldFN0YXRlKCk7cmV0dXJuey4uLnIsdG9rZW5zOnIudG9rZW5zLmZpbHRlcihuPT5uLmlkIT09ZS50b2tlbklkKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgcmVnaXN0cnkgdG9rZW46IixhKSxzLmdldFN0YXRlKCl9fSksa2RuPUgyLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxiYWNrdXBzOmEuYmFja3Vwc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBiYWNrdXBzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLG56YT1IMi5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJkZWxldGVCYWNrdXAiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LGJhY2t1cElkOmUuYmFja3VwSWR9KTtsZXQgcj1zLmdldFN0YXRlKCk7cmV0dXJuey4uLnIsYmFja3VwczpyLmJhY2t1cHMuZmlsdGVyKG49Pm4uaWQhPT1lLmJhY2t1cElkKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgYmFja3VwOiIsYSkscy5nZXRTdGF0ZSgpfX0pLFNkbj1IMi5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRCYWNrdXBTY2hlZHVsZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzY2hlZHVsZXM6YS5zY2hlZHVsZXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2NoZWR1bGVzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLGx6YT1IMi5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVCYWNrdXBTY2hlZHVsZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2NoZWR1bGVDb25maWc6ZS5jb25maWd9KTtsZXQgbj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwU2NoZWR1bGVzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksc2NoZWR1bGVzOm4uc2NoZWR1bGVzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBzY2hlZHVsZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxfZG49SDIuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNjaGVkdWxlSWQ6ZS5zY2hlZHVsZUlkfSk7bGV0IHI9cy5nZXRTdGF0ZSgpO3JldHVybnsuLi5yLHNjaGVkdWxlczpyLnNjaGVkdWxlcy5maWx0ZXIobj0+bi5pZCE9PWUuc2NoZWR1bGVJZCl9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNjaGVkdWxlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLGN6YT1IMi5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ0cmlnZ2VyQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNjaGVkdWxlSWQ6ZS5zY2hlZHVsZUlkfSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cHMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxiYWNrdXBzOm4uYmFja3Vwc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB0cmlnZ2VyIHNjaGVkdWxlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLHdjdD1zby5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldFt0LGEscl09YXdhaXQgUHJvbWlzZS5hbGwoW25ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXR0aW5ncyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KSxuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwUGFzc3dvcmRTdGF0dXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSksbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE1hbmFnZWREY1JvdXRlclN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KV0pO3JldHVybntzZXR0aW5nczp0LnNldHRpbmdzLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDphLnN0YXR1cy5pc0NvbmZpZ3VyZWQsbWFuYWdlZERjUm91dGVyU3RhdHVzOnIuc3RhdHVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNldHRpbmdzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLGtKPXNvLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInVwZGF0ZVNldHRpbmdzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXR0aW5nczplLnNldHRpbmdzfSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzZXR0aW5nczpyLnNldHRpbmdzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBzZXR0aW5nczoiLGEpLHMuZ2V0U3RhdGUoKX19KSxkemE9c28uY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgdD1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0TWFuYWdlZERjUm91dGVyU3RhdHVzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksbWFuYWdlZERjUm91dGVyU3RhdHVzOnQuc3RhdHVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIG1hbmFnZWQgZGNyb3V0ZXIgc3RhdHVzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHV6YT1zby5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCB0PWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydE1hbmFnZWREY1JvdXRlciIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czp0LnN0YXR1c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBtYW5hZ2VkIGRjcm91dGVyOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHB6YT1zby5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCB0PWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdG9wTWFuYWdlZERjUm91dGVyIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksbWFuYWdlZERjUm91dGVyU3RhdHVzOnQuc3RhdHVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHN0b3AgbWFuYWdlZCBkY3JvdXRlcjoiLHQpLHMuZ2V0U3RhdGUoKX19KSxoemE9c28uY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgdD1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwicmVzdGFydE1hbmFnZWREY1JvdXRlciIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czp0LnN0YXR1c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZXN0YXJ0IG1hbmFnZWQgZGNyb3V0ZXI6Iix0KSxzLmdldFN0YXRlKCl9fSksTWRuPXNvLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7cmV0dXJuIGF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzZXRCYWNrdXBQYXNzd29yZCIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHkscGFzc3dvcmQ6ZS5wYXNzd29yZH0pLHsuLi5zLmdldFN0YXRlKCksYmFja3VwUGFzc3dvcmRDb25maWd1cmVkOiEwfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNldCBiYWNrdXAgcGFzc3dvcmQ6IixhKSxzLmdldFN0YXRlKCl9fSksemRuPW1jLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9ZS52aWV3LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKSxhPWUuc3Vidmlldz9lLnN1YnZpZXcudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiLSIpOm51bGw7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxhY3RpdmVWaWV3OnQsYWN0aXZlU3VidmlldzphfX0pLENkbj1tYy5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPXMuZ2V0U3RhdGUoKTtyZXR1cm57Li4uZSxhdXRvUmVmcmVzaDohZS5hdXRvUmVmcmVzaH19KSxCeD1udWxsLG1zcz1pKGFzeW5jKCk9PntpZihRaS5nZXRTdGF0ZSgpLmlzTG9nZ2VkSW4pdHJ5e2F3YWl0IFByb21pc2UuYWxsKFthMC5kaXNwYXRjaEFjdGlvbihIeCxudWxsKSxaYS5kaXNwYXRjaEFjdGlvbih3SixudWxsKV0pfWNhdGNoe319LCJkaXNwYXRjaENvbWJpbmVkUmVmcmVzaEFjdGlvbiIpLGhjdD1pKCgpPT57bGV0IHM9bWMuZ2V0U3RhdGUoKSxlPVFpLmdldFN0YXRlKCk7cy5hdXRvUmVmcmVzaCYmZS5pc0xvZ2dlZEluPyhCeCYmY2xlYXJJbnRlcnZhbChCeCksQng9c2V0SW50ZXJ2YWwoKCk9Pnttc3MoKX0scy5yZWZyZXNoSW50ZXJ2YWwpKTpCeCYmKGNsZWFySW50ZXJ2YWwoQngpLEJ4PW51bGwpfSwic3RhcnRBdXRvUmVmcmVzaCIpO21jLnNlbGVjdChzPT5zKS5zdWJzY3JpYmUoKCk9PmhjdCgpKSxRaS5zZWxlY3Qocz0+cykuc3Vic2NyaWJlKCgpPT5oY3QoKSksaGN0KCk7bTc9bnVsbCx4Sj1uZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSb3V0ZXIsVU1hPWkoKHMsZSk9PntsZXQgdD1zLmZpbmRJbmRleChyPT5yLm5hbWU9PT1lLm5hbWUpO2lmKHQ9PT0tMSlyZXR1cm5bLi4ucyxlXTtsZXQgYT1bLi4uc107cmV0dXJuIGFbdF09ZSxhfSwidXBzZXJ0U2VydmljZSIpLFdNYT1pKChzLGUpPT4ocy5maW5kSW5kZXgocj0+ci5pZD09PWUuaWQpPT09LTE/W2UsLi4uc106cy5tYXAocj0+ci5pZD09PWUuaWQ/ZTpyKSkuc29ydCgocixuKT0+bi5zdGFydGVkQXQtci5zdGFydGVkQXQpLnNsaWNlKDAsMjUpLCJ1cHNlcnRVcGdyYWRlT3BlcmF0aW9uIik7eEouYWRkVHlwZWRIYW5kbGVyKG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXIoInB1c2hTZXJ2aWNlVXBkYXRlIixhc3luYyBzPT57bGV0IGU9WXQuZ2V0U3RhdGUoKSx0PWUuc2VydmljZXMsYT1lLmN1cnJlbnRTZXJ2aWNlLHI9ZS5jdXJyZW50U2VydmljZUxvZ3Msbj1lLmN1cnJlbnRTZXJ2aWNlU3RhdHM7cmV0dXJuIHMuYWN0aW9uPT09ImRlbGV0ZWQiPyh0PXQuZmlsdGVyKG89Pm8ubmFtZSE9PXMuc2VydmljZU5hbWUpLGE/Lm5hbWU9PT1zLnNlcnZpY2VOYW1lJiYoYT1udWxsLHI9W10sbj1udWxsKSk6cy5zZXJ2aWNlJiYodD1VTWEodCxzLnNlcnZpY2UpLGE/Lm5hbWU9PT1zLnNlcnZpY2UubmFtZSYmKGE9cy5zZXJ2aWNlKSksWXQuc2V0U3RhdGUoey4uLmUsc2VydmljZXM6dCxjdXJyZW50U2VydmljZTphLGN1cnJlbnRTZXJ2aWNlTG9nczpyLGN1cnJlbnRTZXJ2aWNlU3RhdHM6bn0pLHt9fSkpLHhKLmFkZFR5cGVkSGFuZGxlcihuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoQXBwU3RvcmVVcGdyYWRlUHJvZ3Jlc3MiLGFzeW5jIHM9PntsZXQgZT1jbC5nZXRTdGF0ZSgpO2lmKGNsLnNldFN0YXRlKHsuLi5lLHVwZ3JhZGVPcGVyYXRpb25zOldNYShlLnVwZ3JhZGVPcGVyYXRpb25zLHMub3BlcmF0aW9uKSx1cGdyYWRlYWJsZVNlcnZpY2VzOnMub3BlcmF0aW9uLnN0YXR1cz09PSJzdWNjZXNzIj9lLnVwZ3JhZGVhYmxlU2VydmljZXMuZmlsdGVyKHQ9PnQuc2VydmljZU5hbWUhPT1zLm9wZXJhdGlvbi5zZXJ2aWNlTmFtZSk6ZS51cGdyYWRlYWJsZVNlcnZpY2VzfSkscy5vcGVyYXRpb24uc2VydmljZSl7bGV0IHQ9WXQuZ2V0U3RhdGUoKTtZdC5zZXRTdGF0ZSh7Li4udCxzZXJ2aWNlczpVTWEodC5zZXJ2aWNlcyxzLm9wZXJhdGlvbi5zZXJ2aWNlKSxjdXJyZW50U2VydmljZTp0LmN1cnJlbnRTZXJ2aWNlPy5uYW1lPT09cy5vcGVyYXRpb24uc2VydmljZS5uYW1lP3Mub3BlcmF0aW9uLnNlcnZpY2U6dC5jdXJyZW50U2VydmljZX0pfXJldHVybnt9fSkpLHhKLmFkZFR5cGVkSGFuZGxlcihuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoUGxhdGZvcm1TZXJ2aWNlTG9nIixhc3luYyBzPT57bGV0IGU9WXQuZ2V0U3RhdGUoKSx0PXtpZDplLmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzLmxlbmd0aCxzZXJ2aWNlSWQ6MCx0aW1lc3RhbXA6bmV3IERhdGUocy5lbnRyeS50aW1lc3RhbXApLmdldFRpbWUoKSxtZXNzYWdlOnMuZW50cnkubWVzc2FnZSxsZXZlbDpzLmVudHJ5LmxldmVsLHNvdXJjZToic3Rkb3V0In0sYT1bLi4uZS5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9ncyx0XTtyZXR1cm4gYS5sZW5ndGg+MmUzJiZhLnNwbGljZSgwLGEubGVuZ3RoLTJlMyksWXQuc2V0U3RhdGUoey4uLmUsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6YX0pLHt9fSkpLHhKLmFkZFR5cGVkSGFuZGxlcihuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoU2VydmljZUxvZyIsYXN5bmMgcz0+e2xldCBlPVl0LmdldFN0YXRlKCk7aWYoIWUuY3VycmVudFNlcnZpY2V8fGUuY3VycmVudFNlcnZpY2UubmFtZSE9PXMuc2VydmljZU5hbWUpcmV0dXJue307bGV0IHQ9e2lkOmUuY3VycmVudFNlcnZpY2VMb2dzLmxlbmd0aCxzZXJ2aWNlSWQ6MCx0aW1lc3RhbXA6bmV3IERhdGUocy5lbnRyeS50aW1lc3RhbXApLmdldFRpbWUoKSxtZXNzYWdlOnMuZW50cnkubWVzc2FnZSxsZXZlbDpzLmVudHJ5LmxldmVsLHNvdXJjZToic3Rkb3V0In0sYT1bLi4uZS5jdXJyZW50U2VydmljZUxvZ3MsdF07cmV0dXJuIGEubGVuZ3RoPjJlMyYmYS5zcGxpY2UoMCxhLmxlbmd0aC0yZTMpLFl0LnNldFN0YXRlKHsuLi5lLGN1cnJlbnRTZXJ2aWNlTG9nczphfSkse319KSk7aShnc3MsImNvbm5lY3RTb2NrZXQiKTtpKGJzcywiZGlzY29ubmVjdFNvY2tldCIpO2Z6YT1jbC5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRBcHBTdG9yZVRlbXBsYXRlcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGFwcHM6YS5hcHBzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGFwcCB0ZW1wbGF0ZXM6Iix0KSxzLmdldFN0YXRlKCl9fSksbXphPWNsLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFVwZ3JhZGVhYmxlQXBwU3RvcmVTZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLHVwZ3JhZGVhYmxlU2VydmljZXM6YS5zZXJ2aWNlc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCB1cGdyYWRlYWJsZSBzZXJ2aWNlczoiLHQpLHMuZ2V0U3RhdGUoKX19KSxMMmU9Y2wuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QXBwU3RvcmVVcGdyYWRlT3BlcmF0aW9ucyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLHVwZ3JhZGVPcGVyYXRpb25zOmEub3BlcmF0aW9uc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCB1cGdyYWRlIG9wZXJhdGlvbnM6Iix0KSxzLmdldFN0YXRlKCl9fSksZ3phPWNsLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0YXJ0QXBwU3RvcmVTZXJ2aWNlVXBncmFkZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5zZXJ2aWNlTmFtZSx0YXJnZXRWZXJzaW9uOmUudGFyZ2V0VmVyc2lvbn0pLG49cy5nZXRTdGF0ZSgpO3JldHVybnsuLi5uLHVwZ3JhZGVPcGVyYXRpb25zOldNYShuLnVwZ3JhZGVPcGVyYXRpb25zLHIub3BlcmF0aW9uKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGdyYWRlIHNlcnZpY2U6IixhKSxzLmdldFN0YXRlKCl9fSk7UWkuc2VsZWN0KHM9PnMpLnN1YnNjcmliZShzPT57cy5pc0xvZ2dlZEluP2dzcygpOmJzcygpfSl9KTtmdW5jdGlvbiB2emEocyl7cmV0dXJuIHlzcy5pbmNsdWRlcyhzKX1mdW5jdGlvbiB4emEocyxlKXtyZXR1cm4gcXhbc10/LmluY2x1ZGVzKGUpPz8hMX12YXIgdnNzLGJ6YSxxeCxrY3QseHNzLHlzcyxTY3QsZGwsZzc9Zyhhc3luYygpPT57bGwoKTthd2FpdCBhMSgpO3Zzcz1ndC5wbHVnaW5zLnNtYXJ0cm91dGVyLlNtYXJ0Um91dGVyLGJ6YT1bImRhc2hib2FyZCIsInNldHRpbmdzIl0scXg9e2FwcHM6WyJhcHAtc3RvcmUiLCJzZXJ2aWNlcyJdLG5ldHdvcms6WyJwcm94eSIsImRvbWFpbnMiLCJkbnMtcmVjb3JkcyJdLHJlZ2lzdHJ5OlsicmVnaXN0cmllcyIsInRva2VucyJdfSxrY3Q9e2FwcHM6ImFwcC1zdG9yZSIsbmV0d29yazoicHJveHkiLHJlZ2lzdHJ5OiJyZWdpc3RyaWVzIn0seHNzPXsiYXBwLXN0b3JlIjp7dmlldzoiYXBwcyIsc3VidmlldzoiYXBwLXN0b3JlIn0sc2VydmljZXM6e3ZpZXc6ImFwcHMiLHN1YnZpZXc6InNlcnZpY2VzIn0scHJveHk6e3ZpZXc6Im5ldHdvcmsiLHN1YnZpZXc6InByb3h5In0sZG9tYWluczp7dmlldzoibmV0d29yayIsc3VidmlldzoiZG9tYWlucyJ9LCJkbnMtcmVjb3JkcyI6e3ZpZXc6Im5ldHdvcmsiLHN1YnZpZXc6ImRucy1yZWNvcmRzIn0scmVnaXN0cmllczp7dmlldzoicmVnaXN0cnkiLHN1YnZpZXc6InJlZ2lzdHJpZXMifSx0b2tlbnM6e3ZpZXc6InJlZ2lzdHJ5IixzdWJ2aWV3OiJ0b2tlbnMifX0seXNzPVsuLi5iemEsLi4uT2JqZWN0LmtleXMocXgpXTtpKHZ6YSwiaXNWYWxpZFZpZXciKTtpKHh6YSwiaXNWYWxpZFN1YnZpZXciKTtTY3Q9Y2xhc3N7c3RhdGlje2kodGhpcywiQXBwUm91dGVyIil9cm91dGVyO2luaXRpYWxpemVkPSExO3N1cHByZXNzU3RhdGVVcGRhdGU9ITE7Y29uc3RydWN0b3IoKXt0aGlzLnJvdXRlcj1uZXcgdnNzKHtkZWJ1ZzohMX0pfWluaXQoKXt0aGlzLmluaXRpYWxpemVkfHwodGhpcy5zZXR1cFJvdXRlcygpLHRoaXMuc2V0dXBTdGF0ZVN5bmMoKSx0aGlzLmhhbmRsZUluaXRpYWxSb3V0ZSgpLHRoaXMuaW5pdGlhbGl6ZWQ9ITApfXNldHVwUm91dGVzKCl7Zm9yKGxldCBlIG9mIGJ6YSl0aGlzLnJvdXRlci5vbihgLyR7ZX1gLGFzeW5jKCk9Pnt0aGlzLnVwZGF0ZVZpZXdTdGF0ZShlLG51bGwpfSk7Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKHF4KSl7dGhpcy5yb3V0ZXIub24oYC8ke2V9YCxhc3luYygpPT57dGhpcy5uYXZpZ2F0ZVRvKGAvJHtlfS8ke2tjdFtlXX1gKX0pO2ZvcihsZXQgdCBvZiBxeFtlXSl0aGlzLnJvdXRlci5vbihgLyR7ZX0vJHt0fWAsYXN5bmMoKT0+e3RoaXMudXBkYXRlVmlld1N0YXRlKGUsdCl9KX10aGlzLnJvdXRlci5vbigiLyIsYXN5bmMoKT0+e3RoaXMubmF2aWdhdGVUbygiL2Rhc2hib2FyZCIpfSl9c2V0dXBTdGF0ZVN5bmMoKXttYy5zZWxlY3QoKS5zdWJzY3JpYmUoZT0+e2lmKHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZSlyZXR1cm47bGV0IHQ9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLGE9ZS5hY3RpdmVTdWJ2aWV3P2AvJHtlLmFjdGl2ZVZpZXd9LyR7ZS5hY3RpdmVTdWJ2aWV3fWA6YC8ke2UuYWN0aXZlVmlld31gO3QhPT1hJiYodGhpcy5zdXBwcmVzc1N0YXRlVXBkYXRlPSEwLHRoaXMucm91dGVyLnB1c2hVcmwoYSksdGhpcy5zdXBwcmVzc1N0YXRlVXBkYXRlPSExKX0pfWhhbmRsZUluaXRpYWxSb3V0ZSgpe2xldCBlPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtpZighZXx8ZT09PSIvIil7dGhpcy5yb3V0ZXIucHVzaFVybCgiL2Rhc2hib2FyZCIpO3JldHVybn1sZXQgdD1lLnNwbGl0KCIvIikuZmlsdGVyKEJvb2xlYW4pLGE9dFswXSxyPXRbMV07aWYoIXZ6YShhKSl7dGhpcy5yb3V0ZXIucHVzaFVybCgiL2Rhc2hib2FyZCIpO3JldHVybn1xeFthXT9yJiZ4emEoYSxyKT90aGlzLnVwZGF0ZVZpZXdTdGF0ZShhLHIpOnRoaXMucm91dGVyLnB1c2hVcmwoYC8ke2F9LyR7a2N0W2FdfWApOnRoaXMudXBkYXRlVmlld1N0YXRlKGEsbnVsbCl9dXBkYXRlVmlld1N0YXRlKGUsdCl7dGhpcy5zdXBwcmVzc1N0YXRlVXBkYXRlPSEwO2xldCBhPW1jLmdldFN0YXRlKCk7KGEuYWN0aXZlVmlldyE9PWV8fGEuYWN0aXZlU3VidmlldyE9PXQpJiZtYy5zZXRTdGF0ZSh7Li4uYSxhY3RpdmVWaWV3OmUsYWN0aXZlU3Vidmlldzp0fSksdGhpcy5zdXBwcmVzc1N0YXRlVXBkYXRlPSExfW5hdmlnYXRlVG8oZSl7dGhpcy5yb3V0ZXIucHVzaFVybChlKX1uYXZpZ2F0ZVRvVmlldyhlLHQpe2xldCBhPWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiLSIpLHI9dD8udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiLSIpO2lmKCF2emEoYSkpe2xldCBuPXhzc1thXTtpZihuKXt0aGlzLm5hdmlnYXRlVG9WaWV3KG4udmlldyxuLnN1YnZpZXcpO3JldHVybn10aGlzLm5hdmlnYXRlVG8oIi9kYXNoYm9hcmQiKTtyZXR1cm59ciYmeHphKGEscik/dGhpcy5uYXZpZ2F0ZVRvKGAvJHthfS8ke3J9YCk6cXhbYV0/dGhpcy5uYXZpZ2F0ZVRvKGAvJHthfS8ke2tjdFthXX1gKTp0aGlzLm5hdmlnYXRlVG8oYC8ke2F9YCl9Z2V0Q3VycmVudFZpZXcoKXtsZXQgZT1tYy5nZXRTdGF0ZSgpO3JldHVybiBlLmFjdGl2ZVN1YnZpZXc/YCR7ZS5hY3RpdmVWaWV3fS8ke2UuYWN0aXZlU3Vidmlld31gOmUuYWN0aXZlVmlld31kZXN0cm95KCl7dGhpcy5yb3V0ZXIuZGVzdHJveSgpLHRoaXMuaW5pdGlhbGl6ZWQ9ITF9fSxkbD1uZXcgU2N0fSk7dmFyIEN6YT17fTt5dChDemEse09iVmlld0Rhc2hib2FyZDooKT0+Q2N0fSk7ZnVuY3Rpb24gd3phKHMpe3JldHVybiFzfHxzPT09MD8wOk1hdGgubWluKE1hdGguZmxvb3IoTWF0aC5sb2cocykvTWF0aC5sb2coMTAyNCkpLHl6YS5sZW5ndGgtMSl9ZnVuY3Rpb24gRTJlKHMsZSl7aWYoKCFzfHxzPT09MCkmJmU9PT12b2lkIDApcmV0dXJuIjAgQiI7bGV0IHQ9ZT8/d3phKHMpO3JldHVybmAkeyhzL01hdGgucG93KDEwMjQsdCkpLnRvRml4ZWQoMSl9ICR7eXphW3RdfWB9dmFyIGt6YSxTemEsX3phLE16YSx6emEsczEsX2N0LE1jdCx6Y3QseXphLHMwLENjdCxUY3Q9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7YXdhaXQgZzcoKTtwZSgpO3l6YT1bIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiJdO2kod3phLCJnZXRCeXRlVW5pdEluZGV4Iik7aShFMmUsImZvcm1hdEJ5dGVzIiksenphPVtuZSgib2Itdmlldy1kYXNoYm9hcmQiKV07czA9Y2xhc3MgczAgZXh0ZW5kcyhNemE9d2UsX3phPVtZKCldLFN6YT1bWSgpXSxremE9W1koKV0sTXphKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7ZWEodGhpcyxfY3QsaXQoczEsOCx0aGlzLHtzdGF0dXM6bnVsbH0pKSxpdChzMSwxMSx0aGlzKTtlYSh0aGlzLE1jdCxpdChzMSwxMix0aGlzLHtzZXJ2aWNlczpbXSxjdXJyZW50U2VydmljZTpudWxsLGN1cnJlbnRTZXJ2aWNlTG9nczpbXSxjdXJyZW50U2VydmljZVN0YXRzOm51bGwscGxhdGZvcm1TZXJ2aWNlczpbXSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119KSksaXQoczEsMTUsdGhpcyk7ZWEodGhpcyx6Y3QsaXQoczEsMTYsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksaXQoczEsMTksdGhpcyk7bGV0IHQ9YTAuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5zeXN0ZW1TdGF0ZT1ufSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0KTtsZXQgYT1ZdC5zZWxlY3Qobj0+bikuc3Vic2NyaWJlKG49Pnt0aGlzLnNlcnZpY2VzU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSk7bGV0IHI9WmEuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5uZXR3b3JrU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFByb21pc2UuYWxsKFthMC5kaXNwYXRjaEFjdGlvbihIeCxudWxsKSxZdC5kaXNwYXRjaEFjdGlvbih6MmUsbnVsbCksWXQuZGlzcGF0Y2hBY3Rpb24oQzJlLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKHlKLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKHdKLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKCQyZSxudWxsKV0pfXJlbmRlcigpe2xldCB0PXRoaXMuc3lzdGVtU3RhdGUuc3RhdHVzLGE9dGhpcy5zZXJ2aWNlc1N0YXRlLnNlcnZpY2VzLHI9dGhpcy5zZXJ2aWNlc1N0YXRlLnBsYXRmb3JtU2VydmljZXMsbj10aGlzLm5ldHdvcmtTdGF0ZS5zdGF0cyxvPXRoaXMubmV0d29ya1N0YXRlLnRyYWZmaWNTdGF0cyxsPXRoaXMubmV0d29ya1N0YXRlLmNlcnRpZmljYXRlcyxwPW8/LnN0YXR1c0NvdW50c3x8e30sZD1hLmZpbHRlcihmPT5mLnN0YXR1cz09PSJydW5uaW5nIikubGVuZ3RoLHU9YS5maWx0ZXIoZj0+Zi5zdGF0dXM9PT0ic3RvcHBlZCIpLmxlbmd0aCxjPXd6YSh0Py5kb2NrZXI/Lm1lbW9yeVRvdGFsfHx0Py5kb2NrZXI/Lm1lbW9yeVVzYWdlfHwwKSxiPWwuZmlsdGVyKGY9PmYuaXNWYWxpZCkubGVuZ3RoLHY9bC5maWx0ZXIoZj0+Zi5pc1ZhbGlkJiZmLmV4cGlyZXNBdCYmZi5leHBpcmVzQXQtRGF0ZS5ub3coKTw3MjAqNjAqNjAqMWUzKS5sZW5ndGgseD1sLmZpbHRlcihmPT4hZi5pc1ZhbGlkKS5sZW5ndGgsbT17Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczphLmxlbmd0aCxydW5uaW5nOmQsc3RvcHBlZDp1LGRvY2tlclN0YXR1czp0Py5kb2NrZXI/LnJ1bm5pbmc/InJ1bm5pbmciOiJzdG9wcGVkIn0scmVzb3VyY2VVc2FnZTp7Y3B1OnQ/LmRvY2tlcj8uY3B1VXNhZ2V8fDAsbWVtb3J5VXNlZDpFMmUodD8uZG9ja2VyPy5tZW1vcnlVc2FnZXx8MCxjKSxtZW1vcnlUb3RhbDpFMmUodD8uZG9ja2VyPy5tZW1vcnlUb3RhbHx8MCxjKSxuZXR3b3JrSW46RTJlKHQ/LmRvY2tlcj8ubmV0d29ya0lufHwwKSxuZXR3b3JrT3V0OkUyZSh0Py5kb2NrZXI/Lm5ldHdvcmtPdXR8fDApLHRvcENvbnN1bWVyczpbXX0scGxhdGZvcm1TZXJ2aWNlczpyLmZpbHRlcihmPT5mLnN0YXR1cz09PSJydW5uaW5nInx8Zi5zdGF0dXM9PT0ic3RhcnRpbmcifHxmLnN0YXR1cz09PSJzdG9wcGluZyJ8fGYuaXNDb3JlKS5tYXAoZj0+KHtuYW1lOmYuZGlzcGxheU5hbWUsc3RhdHVzOmYuc3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjpmLnN0YXR1cz09PSJzdGFydGluZyI/IlN0YXJ0aW5nLi4uIjpmLnN0YXR1cz09PSJzdG9wcGluZyI/IlN0b3BwaW5nLi4uIjoiU3RvcHBlZCIscnVubmluZzpmLnN0YXR1cz09PSJydW5uaW5nIn0pKSx0cmFmZmljOntyZXF1ZXN0czpvPy5yZXF1ZXN0Q291bnR8fDAsZXJyb3JzOm8/LmVycm9yQ291bnR8fDAsZXJyb3JQZXJjZW50Om8/LmVycm9yUmF0ZXx8MCxhdmdSZXNwb25zZTpvPy5hdmdSZXNwb25zZVRpbWV8fDAscmVxUGVyTWluOm8/LnJlcXVlc3RzUGVyTWludXRlfHwwLHN0YXR1czJ4eDpwWyIyeHgiXXx8MCxzdGF0dXMzeHg6cFsiM3h4Il18fDAsc3RhdHVzNHh4OnBbIjR4eCJdfHwwLHN0YXR1czV4eDpwWyI1eHgiXXx8MH0scHJveHk6e2h0dHBQb3J0OlN0cmluZyhuPy5wcm94eT8uaHR0cFBvcnR8fDgwKSxodHRwc1BvcnQ6U3RyaW5nKG4/LnByb3h5Py5odHRwc1BvcnR8fDQ0MyksaHR0cEFjdGl2ZTpuPy5wcm94eT8ucnVubmluZ3x8ITEsaHR0cHNBY3RpdmU6bj8ucHJveHk/LnJ1bm5pbmd8fCExLHJvdXRlQ291bnQ6U3RyaW5nKG4/LnByb3h5Py5yb3V0ZXN8fDApfSxjZXJ0aWZpY2F0ZXM6e3ZhbGlkOmIsZXhwaXJpbmc6dixleHBpcmVkOnh9LGRuc0NvbmZpZ3VyZWQ6dD8uZG5zPy5jb25maWd1cmVkfHwhMSxhY21lQ29uZmlndXJlZDp0Py5zc2w/LmNvbmZpZ3VyZWR8fCExLHF1aWNrQWN0aW9uczpbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoibHVjaWRlOlBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiQWRkIERvbWFpbiIsaWNvbjoibHVjaWRlOkdsb2JlIn0se2xhYmVsOiJWaWV3IExvZ3MiLGljb246Imx1Y2lkZTpGaWxlVGV4dCJ9XX07cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5EYXNoYm9hcmQ8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q2x1c3RlciBPdmVydmlldzwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtY2x1c3RlciAuc3RhdHM9JHttLmNsdXN0ZXJ9Pjwvc3otc3RhdHVzLWdyaWQtY2x1c3Rlcj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2VydmljZXMgJiBSZXNvdXJjZXM8L2gyPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZXMtZ3JpZCI+CiAgICAgICAgICAgIDxzei1yZXNvdXJjZS11c2FnZS1jYXJkIC5kYXRhPSR7bS5yZXNvdXJjZVVzYWdlfT48L3N6LXJlc291cmNlLXVzYWdlLWNhcmQ+CiAgICAgICAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkCiAgICAgICAgICAgICAgLnNlcnZpY2VzPSR7bS5wbGF0Zm9ybVNlcnZpY2VzfQogICAgICAgICAgICAgIEBzZXJ2aWNlLWNsaWNrPSR7Zj0+dGhpcy5oYW5kbGVQbGF0Zm9ybVNlcnZpY2VDbGljayhmKX0KICAgICAgICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OZXR3b3JrICYgVHJhZmZpYzwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtbmV0d29yawogICAgICAgICAgICAudHJhZmZpYz0ke20udHJhZmZpY30KICAgICAgICAgICAgLnByb3h5PSR7bS5wcm94eX0KICAgICAgICAgICAgLmNlcnRpZmljYXRlcz0ke20uY2VydGlmaWNhdGVzfQogICAgICAgICAgPjwvc3otc3RhdHVzLWdyaWQtbmV0d29yaz4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SW5mcmFzdHJ1Y3R1cmU8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWluZnJhCiAgICAgICAgICAgID9kbnNDb25maWd1cmVkPSR7bS5kbnNDb25maWd1cmVkfQogICAgICAgICAgICA/YWNtZUNvbmZpZ3VyZWQ9JHttLmFjbWVDb25maWd1cmVkfQogICAgICAgICAgICAuYWN0aW9ucz0ke20ucXVpY2tBY3Rpb25zfQogICAgICAgICAgICBAYWN0aW9uLWNsaWNrPSR7Zj0+dGhpcy5oYW5kbGVRdWlja0FjdGlvbihmKX0KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLWluZnJhPgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVF1aWNrQWN0aW9uKHQpe2xldCBhPXQuZGV0YWlsPy5hY3Rpb258fHQuZGV0YWlsPy5sYWJlbDthPT09IkRlcGxveSBTZXJ2aWNlIj9kbC5uYXZpZ2F0ZVRvVmlldygic2VydmljZXMiKTphPT09IkFkZCBEb21haW4iJiZkbC5uYXZpZ2F0ZVRvVmlldygibmV0d29yayIpfWhhbmRsZVBsYXRmb3JtU2VydmljZUNsaWNrKHQpe2xldCBhPXQuZGV0YWlsPy5uYW1lLHI9dGhpcy5zZXJ2aWNlc1N0YXRlLnBsYXRmb3JtU2VydmljZXMuZmluZChuPT5uLmRpc3BsYXlOYW1lPT09YSk7ciYmKFl0LnNldFN0YXRlKHsuLi5ZdC5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2U6cn0pLGRsLm5hdmlnYXRlVG9WaWV3KCJzZXJ2aWNlcyIpKX19O3MxPVJpKE16YSksX2N0PW5ldyBXZWFrTWFwLE1jdD1uZXcgV2Vha01hcCx6Y3Q9bmV3IFdlYWtNYXAsUnQoczEsNCwic3lzdGVtU3RhdGUiLF96YSxzMCxfY3QpLFJ0KHMxLDQsInNlcnZpY2VzU3RhdGUiLFN6YSxzMCxNY3QpLFJ0KHMxLDQsIm5ldHdvcmtTdGF0ZSIsa3phLHMwLHpjdCksczA9UnQoczEsMCwiT2JWaWV3RGFzaGJvYXJkIix6emEsczApLGkoczAsIk9iVmlld0Rhc2hib2FyZCIpLHZpKHMwLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMseW8sSmAKICAgICAgLmRhc2hib2FyZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgMTJweDsKICAgICAgfQoKICAgICAgLnNlcnZpY2VzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuc2VydmljZXMtZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLnNlcnZpY2VzLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIH0KICAgICAgfQogICAgYF0pLGl0KHMxLDEsczApO0NjdD1zMH0pO3ZhciBIemE9e307eXQoSHphLHtPYlZpZXdBcHBTdG9yZTooKT0+QmN0fSk7dmFyIFR6YSwkemEsRHphLEx6YSxFemEsUHphLEl6YSxBemEsTnphLFJ6YSxPemEsRnphLEJ6YSxKYSwkY3QsRGN0LExjdCxFY3QsUGN0LEljdCxBY3QsTmN0LFJjdCxPY3QsRmN0LHdvLEJjdCxxemE9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7RngoKTthd2FpdCBnNygpO3BlKCk7QnphPVtuZSgib2Itdmlldy1hcHBzdG9yZSIpXTt3bz1jbGFzcyB3byBleHRlbmRzKEZ6YT13ZSxPemE9W1koKV0sUnphPVtZKCldLE56YT1bWSgpXSxBemE9W1koKV0sSXphPVtZKCldLFB6YT1bWSgpXSxFemE9W1koKV0sTHphPVtZKCldLER6YT1bWSgpXSwkemE9W1koKV0sVHphPVtZKCldLEZ6YSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsJGN0LGl0KEphLDgsdGhpcyx7YXBwczpbXSx1cGdyYWRlYWJsZVNlcnZpY2VzOltdLHVwZ3JhZGVPcGVyYXRpb25zOltdfSkpLGl0KEphLDExLHRoaXMpO2VhKHRoaXMsRGN0LGl0KEphLDEyLHRoaXMsImdyaWQiKSksaXQoSmEsMTUsdGhpcyk7ZWEodGhpcyxMY3QsaXQoSmEsMTYsdGhpcyxudWxsKSksaXQoSmEsMTksdGhpcyk7ZWEodGhpcyxFY3QsaXQoSmEsMjAsdGhpcyxudWxsKSksaXQoSmEsMjMsdGhpcyk7ZWEodGhpcyxQY3QsaXQoSmEsMjQsdGhpcyxudWxsKSksaXQoSmEsMjcsdGhpcyk7ZWEodGhpcyxJY3QsaXQoSmEsMjgsdGhpcywiIikpLGl0KEphLDMxLHRoaXMpO2VhKHRoaXMsQWN0LGl0KEphLDMyLHRoaXMsW10pKSxpdChKYSwzNSx0aGlzKTtlYSh0aGlzLE5jdCxpdChKYSwzNix0aGlzLCIiKSksaXQoSmEsMzksdGhpcyk7ZWEodGhpcyxSY3QsaXQoSmEsNDAsdGhpcywiIikpLGl0KEphLDQzLHRoaXMpO2VhKHRoaXMsT2N0LGl0KEphLDQ0LHRoaXMsITEpKSxpdChKYSw0Nyx0aGlzKTtlYSh0aGlzLEZjdCxpdChKYSw0OCx0aGlzLCExKSksaXQoSmEsNTEsdGhpcyk7bGV0IHQ9Y2wuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5hcHBTdG9yZVN0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbY2wuZGlzcGF0Y2hBY3Rpb24oZnphLG51bGwpLGNsLmRpc3BhdGNoQWN0aW9uKEwyZSxudWxsKV0pfXJlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3PT09ImRldGFpbCI/dGhpcy5yZW5kZXJEZXRhaWxWaWV3KCk6dGhpcy5yZW5kZXJHcmlkVmlldygpfXJlbmRlckdyaWRWaWV3KCl7bGV0IHQ9dGhpcy5hcHBTdG9yZVN0YXRlLmFwcHMubWFwKGE9Pih7aWQ6YS5pZCxuYW1lOmEubmFtZSxkZXNjcmlwdGlvbjphLmRlc2NyaXB0aW9uLGNhdGVnb3J5OmEuY2F0ZWdvcnksaWNvbk5hbWU6YS5pY29uTmFtZSxpY29uVXJsOmEuaWNvblVybCxpbWFnZToiIixwb3J0OjB9KSk7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAke3RoaXMucmVuZGVyVXBncmFkZU9wZXJhdGlvbnMoKX0KICAgICAgJHt0Lmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPkxvYWRpbmcgYXBwIHRlbXBsYXRlcy4uLjwvZGl2PmA6d2AKICAgICAgICAgIDxzei1hcHAtc3RvcmUtdmlldwogICAgICAgICAgICAuYXBwcz0ke3R9CiAgICAgICAgICAgIEB2aWV3LWFwcD0ke2E9PnRoaXMuaGFuZGxlVmlld0RldGFpbHMoYSl9CiAgICAgICAgICAgIEBkZXBsb3ktYXBwPSR7YT0+dGhpcy5oYW5kbGVBcHBDbGljayhhKX0KICAgICAgICAgID48L3N6LWFwcC1zdG9yZS12aWV3PgogICAgICAgIGB9CiAgICBgfXJlbmRlclVwZ3JhZGVPcGVyYXRpb25zKCl7bGV0IHQ9dGhpcy5hcHBTdG9yZVN0YXRlLnVwZ3JhZGVPcGVyYXRpb25zLmZpbHRlcihhPT5hLnN0YXR1cz09PSJydW5uaW5nInx8YS5zdGF0dXM9PT0iZmFpbGVkIikuc2xpY2UoMCwzKTtyZXR1cm4gdC5sZW5ndGg9PT0wPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5SZWNlbnQgVXBncmFkZSBPcGVyYXRpb25zPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWxpc3QiPgogICAgICAgICAgJHt0Lm1hcChhPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4+JHthLnNlcnZpY2VOYW1lfTogJHthLmZyb21WZXJzaW9ufSAmcmFycjsgJHthLnRhcmdldFZlcnNpb259PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290cHJpbnQtbWV0YSI+JHthLnN0YXR1c30gLyAke2Euc3RlcH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEZXRhaWxWaWV3KCl7aWYodGhpcy5sb2FkaW5nKXJldHVybiB3YAogICAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+TG9hZGluZyBhcHAgZGV0YWlscy4uLjwvZGl2PgogICAgICBgO2xldCB0PXRoaXMuc2VsZWN0ZWRBcHAsYT10aGlzLnNlbGVjdGVkQXBwTWV0YSxyPXRoaXMuc2VsZWN0ZWRBcHBDb25maWc7aWYoIXR8fCFyKXJldHVybiB3YAogICAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+QXBwIG5vdCBmb3VuZC48L2Rpdj4KICAgICAgYDtsZXQgbj1yLnBsYXRmb3JtUmVxdWlyZW1lbnRzfHx7fSxvPU9iamVjdC52YWx1ZXMobikuc29tZShCb29sZWFuKSxsPXttb25nb2RiOiJNb25nb0RCIixzMzoiUzMgKE1pbklPKSIsY2xpY2tob3VzZToiQ2xpY2tIb3VzZSIscmVkaXM6IlJlZGlzIixtYXJpYWRiOiJNYXJpYURCIn07cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDE2cHg7IiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9ImdyaWQifX0+CiAgICAgICAgJmxhcnI7IEJhY2sgdG8gQXBwIFN0b3JlCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPCEtLSBIZWFkZXIgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pY29uIj4keyh0Lm5hbWV8fCI/IilbMF0udG9VcHBlckNhc2UoKX08L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZsZXg6IDE7Ij4KICAgICAgICAgICAgPGgyIGNsYXNzPSJkZXRhaWwtdGl0bGUiPiR7dC5uYW1lfTwvaDI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtY2F0ZWdvcnkiPiR7dC5jYXRlZ29yeX08L3NwYW4+CiAgICAgICAgICAgIDxwIGNsYXNzPSJkZXRhaWwtZGVzY3JpcHRpb24iPiR7dC5kZXNjcmlwdGlvbn08L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1tZXRhIj4KICAgICAgICAgICAgICAke2E/Lm1haW50YWluZXI/d2A8c3Bhbj5NYWludGFpbmVyOiA8c3Ryb25nPiR7YS5tYWludGFpbmVyfTwvc3Ryb25nPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICR7YT8ubGlua3M/T2JqZWN0LmVudHJpZXMoYS5saW5rcykubWFwKChbcCxkXSk9PndgPGEgaHJlZj0iJHtkfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPiR7cH08L2E+YCk6IiJ9CiAgICAgICAgICAgICAgJHt0LnRhZ3M/Lmxlbmd0aD93YDxzcGFuPlRhZ3M6ICR7dC50YWdzLmpvaW4oIiwgIil9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBQbGF0Zm9ybSBTZXJ2aWNlcyAtLT4KICAgICAgJHtvP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+UGxhdGZvcm0gU2VydmljZXM8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXMobikuZmlsdGVyKChbcCxkXSk9PmQpLm1hcCgoW3BdKT0+d2A8c3BhbiBjbGFzcz0iYmFkZ2UiPiR7bFtwXXx8cH08L3NwYW4+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA4cHg7Ij4KICAgICAgICAgICAgVGhlc2UgcGxhdGZvcm0gc2VydmljZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHByb3Zpc2lvbmVkIHdoZW4geW91IGRlcGxveS4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLnJlbmRlckRlcGxveW1lbnRGb290cHJpbnQocil9CgogICAgICA8IS0tIFZlcnNpb24gJiBJbWFnZSAtLT4KICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlZlcnNpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLXJvdyI+CiAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJ2ZXJzaW9uLXNlbGVjdCIgQGNoYW5nZT0ke3A9PnRoaXMuaGFuZGxlVmVyc2lvbkNoYW5nZShwLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICAkeyhhPy52ZXJzaW9uc3x8W3RoaXMuc2VsZWN0ZWRWZXJzaW9uXSkubWFwKHA9PndgPG9wdGlvbiB2YWx1ZT0iJHtwfSIgP3NlbGVjdGVkPSR7cD09PXRoaXMuc2VsZWN0ZWRWZXJzaW9ufT4ke3B9JHtwPT09dC5sYXRlc3RWZXJzaW9uPyIgKGxhdGVzdCkiOiIifTwvb3B0aW9uPmApfQogICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaW1hZ2UtdGFnIj4ke3IuaW1hZ2V9PC9zcGFuPgogICAgICAgICAgJHtyLm1pbk9uZWJveFZlcnNpb24/d2A8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7Ij5SZXF1aXJlcyBvbmVib3ggJmdlOyAke3IubWluT25lYm94VmVyc2lvbn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEVudmlyb25tZW50IFZhcmlhYmxlcyAtLT4KICAgICAgJHt0aGlzLmVkaXRhYmxlRW52VmFycy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPkVudmlyb25tZW50IFZhcmlhYmxlczwvZGl2PgogICAgICAgICAgPHRhYmxlIGNsYXNzPSJlbnYtdGFibGUiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDogMzAlOyI+VmFyaWFibGU8L3RoPgogICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDogNDAlOyI+VmFsdWU8L3RoPgogICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgJHt0aGlzLmVkaXRhYmxlRW52VmFycy5tYXAoKHAsZCk9PndgCiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW52LWtleSI+JHtwLmtleX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgJHtwLnJlcXVpcmVkP3dgPHNwYW4gY2xhc3M9ImVudi1iYWRnZSByZXF1aXJlZCI+cmVxdWlyZWQ8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAke3AucGxhdGZvcm1JbmplY3RlZD93YDxzcGFuIGNsYXNzPSJlbnYtYmFkZ2UgYXV0byI+YXV0bzwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZW52LWlucHV0IgogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3AudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtwLnBsYXRmb3JtSW5qZWN0ZWR8fCF0aGlzLmRlcGxveU1vZGV9CiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0ke3AucGxhdGZvcm1JbmplY3RlZD8iQXV0by1pbmplY3RlZCBieSBwbGF0Zm9ybSI6IkVudGVyIHZhbHVlLi4uIn0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke3U9PnRoaXMuaGFuZGxlRW52VmFyQ2hhbmdlKGQsdS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iZW52LWRlc2MiPiR7cC5kZXNjcmlwdGlvbnx8IiJ9PC9zcGFuPjwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgIDwhLS0gRGVwbG95IHNlY3Rpb24gKG9ubHkgaW4gZGVwbG95IG1vZGUpIG9yIGFjdGlvbiBidXR0b24gKHZpZXcgbW9kZSkgLS0+CiAgICAgICR7dGhpcy5kZXBsb3lNb2RlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+U2VydmljZSBOYW1lPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgY2xhc3M9Im5hbWUtaW5wdXQiCiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VydmljZU5hbWV9CiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJlLmcuIG15LWdob3N0LWJsb2ciCiAgICAgICAgICAgIEBpbnB1dD0ke3A9Pnt0aGlzLnNlcnZpY2VOYW1lPXAudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsgbWFyZ2luLXRvcDogNnB4OyI+CiAgICAgICAgICAgIExvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVucyBvbmx5LgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCIgc3R5bGU9Im1hcmdpbi10b3A6IDE4cHg7Ij5Eb21haW48L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0ibmFtZS1pbnB1dCIKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZXJ2aWNlRG9tYWlufQogICAgICAgICAgICBwbGFjZWhvbGRlcj0iZS5nLiBjbG91ZGx5LmV4YW1wbGUuY29tIgogICAgICAgICAgICBAaW5wdXQ9JHtwPT50aGlzLmhhbmRsZVNlcnZpY2VEb21haW5DaGFuZ2UocC50YXJnZXQudmFsdWUpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA2cHg7Ij4KICAgICAgICAgICAgT25lYm94IHJvdXRlcyB0aGlzIGRvbWFpbiB0byB0aGUgZGVwbG95ZWQgYXBwLiBSZXF1aXJlZCB3aGVuIHRoZSBhcHAgdXNlcyBTRVJWSUNFX0RPTUFJTi4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5yZW5kZXJEZXBsb3lDb25maXJtYXRpb24ocil9CgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1yb3ciPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSIgQGNsaWNrPSR7KCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJncmlkIn19PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlcGxveSgpfT4KICAgICAgICAgICAgICBEZXBsb3kgdiR7dGhpcy5zZWxlY3RlZFZlcnNpb259CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXJvdyIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0iZ3JpZCJ9fT4KICAgICAgICAgICAgJmxhcnI7IEJhY2sKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBAY2xpY2s9JHsoKT0+e3RoaXMuZGVwbG95TW9kZT0hMH19PgogICAgICAgICAgICBEZXBsb3kgdGhpcyBBcHAKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgfQogICAgYH1yZW5kZXJEZXBsb3ltZW50Rm9vdHByaW50KHQpe2xldCBhPXRoaXMuZ2V0Q29uZmlnVm9sdW1lcyh0KSxyPXQucHVibGlzaGVkUG9ydHN8fFtdO3JldHVybiBhLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+RGVwbG95bWVudCBGb290cHJpbnQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtbGlzdCI+CiAgICAgICAgICAke2EubWFwKG49PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RwcmludC1pdGVtIj4KICAgICAgICAgICAgICA8c3Bhbj5Wb2x1bWUgbW91bnQ8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3RwcmludC1tZXRhIj4KICAgICAgICAgICAgICAgICR7bi5zb3VyY2V8fG4ubmFtZXx8Im1hbmFnZWQgdm9sdW1lIn06JHtuLm1vdW50UGF0aH0ke24ucmVhZE9ubHk/IjpybyI6IiJ9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgICAgJHtyLm1hcChuPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4+UHVibGlzaGVkIGhvc3QgcG9ydDwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdHByaW50LW1ldGEiPiR7dGhpcy5mb3JtYXRQdWJsaXNoZWRQb3J0KG4pfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3IubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9zdXJlLXdhcm5pbmciPgogICAgICAgICAgICBUaGlzIGFwcCBwdWJsaXNoZXMgcmF3IGhvc3QgcG9ydHMgb3V0c2lkZSB0aGUgSFRUUCBwcm94eS4gQ29uZmlybSBmaXJld2FsbCBhbmQgbmV0d29yayBwb2xpY3kgYmVmb3JlIGRlcGxveWluZy4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEZXBsb3lDb25maXJtYXRpb24odCl7bGV0IGE9dGhpcy5nZXRDb25maWdWb2x1bWVzKHQpLHI9dC5wdWJsaXNoZWRQb3J0c3x8W107cmV0dXJuIGEubGVuZ3RoPT09MCYmci5sZW5ndGg9PT0wPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9ImV4cG9zdXJlLXdhcm5pbmciPgogICAgICAgIERlcGxveWluZyB0aGlzIGFwcCB3aWxsIGNyZWF0ZSAke2EubGVuZ3RofSBwZXJzaXN0ZW50IHZvbHVtZShzKQogICAgICAgICR7ci5sZW5ndGg+MD93YGFuZCBleHBvc2UgJHtyLmxlbmd0aH0gaG9zdCBwb3J0IGRlY2xhcmF0aW9uKHMpYDoiIn0uCiAgICAgIDwvZGl2PgogICAgYH1nZXRDb25maWdWb2x1bWVzKHQpe3JldHVybih0LnZvbHVtZXN8fFtdKS5tYXAoYT0+dHlwZW9mIGE9PSJzdHJpbmciP3ttb3VudFBhdGg6YX06YSkuZmlsdGVyKGE9PiEhYS5tb3VudFBhdGgpfWZvcm1hdFB1Ymxpc2hlZFBvcnQodCl7bGV0IGE9dC5wcm90b2NvbHx8InRjcCIscj10LnRhcmdldFBvcnRFbmQ/YCR7dC50YXJnZXRQb3J0fS0ke3QudGFyZ2V0UG9ydEVuZH1gOlN0cmluZyh0LnRhcmdldFBvcnQpLG49dC5wdWJsaXNoZWRQb3J0fHx0LnRhcmdldFBvcnQsbz10LnB1Ymxpc2hlZFBvcnRFbmR8fCh0LnRhcmdldFBvcnRFbmQ/bisodC50YXJnZXRQb3J0RW5kLXQudGFyZ2V0UG9ydCk6dm9pZCAwKSxsPW8/YCR7bn0tJHtvfWA6U3RyaW5nKG4pO3JldHVybmAke3QuaG9zdElwfHwiMC4wLjAuMCJ9OiR7bH0vJHthfSAtPiAke3J9LyR7YX1gfWFzeW5jIGhhbmRsZVZpZXdEZXRhaWxzKHQpe2xldCBhPXQuZGV0YWlsPy5hcHA7aWYoIWEpcmV0dXJuO2xldCByPXRoaXMuYXBwU3RvcmVTdGF0ZS5hcHBzLmZpbmQobj0+bi5pZD09PWEuaWQpO3ImJih0aGlzLmRlcGxveU1vZGU9ITEsdGhpcy5zZWxlY3RlZEFwcD1yLHRoaXMuc2VsZWN0ZWRWZXJzaW9uPXIubGF0ZXN0VmVyc2lvbix0aGlzLnNlcnZpY2VOYW1lPXIuaWQsdGhpcy5sb2FkaW5nPSEwLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIsYXdhaXQgdGhpcy5mZXRjaFZlcnNpb25Db25maWcoci5pZCxyLmxhdGVzdFZlcnNpb24pLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgaGFuZGxlQXBwQ2xpY2sodCl7bGV0IGE9dC5kZXRhaWw/LmFwcDtpZighYSlyZXR1cm47bGV0IHI9dGhpcy5hcHBTdG9yZVN0YXRlLmFwcHMuZmluZChuPT5uLmlkPT09YS5pZCk7ciYmKHRoaXMuZGVwbG95TW9kZT0hMCx0aGlzLnNlbGVjdGVkQXBwPXIsdGhpcy5zZWxlY3RlZFZlcnNpb249ci5sYXRlc3RWZXJzaW9uLHRoaXMuc2VydmljZU5hbWU9ci5pZCx0aGlzLmxvYWRpbmc9ITAsdGhpcy5jdXJyZW50Vmlldz0iZGV0YWlsIixhd2FpdCB0aGlzLmZldGNoVmVyc2lvbkNvbmZpZyhyLmlkLHIubGF0ZXN0VmVyc2lvbiksdGhpcy5sb2FkaW5nPSExKX1hc3luYyBoYW5kbGVWZXJzaW9uQ2hhbmdlKHQpeyF0aGlzLnNlbGVjdGVkQXBwfHx0PT09dGhpcy5zZWxlY3RlZFZlcnNpb258fCh0aGlzLnNlbGVjdGVkVmVyc2lvbj10LHRoaXMubG9hZGluZz0hMCxhd2FpdCB0aGlzLmZldGNoVmVyc2lvbkNvbmZpZyh0aGlzLnNlbGVjdGVkQXBwLmlkLHQpLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgZmV0Y2hWZXJzaW9uQ29uZmlnKHQsYSl7dHJ5e2xldCByPVFpLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoIXIpcmV0dXJuO2xldCBvPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRBcHBTdG9yZUNvbmZpZyIpLmZpcmUoe2lkZW50aXR5OnIsYXBwSWQ6dCx2ZXJzaW9uOmF9KTt0aGlzLnNlbGVjdGVkQXBwTWV0YT1vLmFwcE1ldGEsdGhpcy5zZWxlY3RlZEFwcENvbmZpZz1vLmNvbmZpZyx0aGlzLmVkaXRhYmxlRW52VmFycz0oby5jb25maWcuZW52VmFyc3x8W10pLm1hcChsPT4oe2tleTpsLmtleSx2YWx1ZTpsLnZhbHVlfHwiIixkZXNjcmlwdGlvbjpsLmRlc2NyaXB0aW9ufHwiIixyZXF1aXJlZDpsLnJlcXVpcmVkLHBsYXRmb3JtSW5qZWN0ZWQ6bC52YWx1ZT8uaW5jbHVkZXMoIiR7Iil8fCExfSkpLHRoaXMuc2VydmljZURvbWFpbj0iIn1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggYXBwIGNvbmZpZzoiLHIpfX1oYW5kbGVFbnZWYXJDaGFuZ2UodCxhKXtsZXQgcj1bLi4udGhpcy5lZGl0YWJsZUVudlZhcnNdO3JbdF09ey4uLnJbdF0sdmFsdWU6YX0sdGhpcy5lZGl0YWJsZUVudlZhcnM9cn1oYW5kbGVTZXJ2aWNlRG9tYWluQ2hhbmdlKHQpe3RoaXMuc2VydmljZURvbWFpbj10aGlzLm5vcm1hbGl6ZURvbWFpbih0KX1ub3JtYWxpemVEb21haW4odCl7cmV0dXJuIHQudHJpbSgpLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpLnJlcGxhY2UoL1wvJC8sIiIpfWFzeW5jIGhhbmRsZURlcGxveSgpe2xldCB0PXRoaXMuc2VsZWN0ZWRBcHAsYT10aGlzLnNlbGVjdGVkQXBwQ29uZmlnO2lmKCF0fHwhYSlyZXR1cm47bGV0IHI9dGhpcy5lZGl0YWJsZUVudlZhcnMuZmlsdGVyKGw9PmwucmVxdWlyZWQmJiFsLnBsYXRmb3JtSW5qZWN0ZWQmJiFsLnZhbHVlLnRyaW0oKSk7aWYoci5sZW5ndGg+MCl7Y29uc29sZS5lcnJvcihgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6ICR7ci5tYXAobD0+bC5rZXkpLmpvaW4oIiwgIil9YCk7cmV0dXJufWlmKChhLmVudlZhcnN8fFtdKS5zb21lKGw9PmwudmFsdWU/LmluY2x1ZGVzKCIke1NFUlZJQ0VfRE9NQUlOfSIpKSYmIXRoaXMuc2VydmljZURvbWFpbil7Y29uc29sZS5lcnJvcigiQSBkb21haW4gaXMgcmVxdWlyZWQgZm9yIHRoaXMgYXBwLiIpO3JldHVybn1sZXQgbz17fTtmb3IobGV0IGwgb2YgdGhpcy5lZGl0YWJsZUVudlZhcnMpbC5rZXkmJmwudmFsdWUmJihvW2wua2V5XT1sLnZhbHVlKTt0cnl7bGV0IGw9UWkuZ2V0U3RhdGUoKS5pZGVudGl0eTtpZighbClyZXR1cm47YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImluc3RhbGxBcHBTdG9yZUFwcCIpLmZpcmUoe2lkZW50aXR5OmwsaW5zdGFsbDp7YXBwSWQ6dC5pZCx2ZXJzaW9uOnRoaXMuc2VsZWN0ZWRWZXJzaW9uLHNlcnZpY2VOYW1lOnRoaXMuc2VydmljZU5hbWV8fHQuaWQsZG9tYWluOnRoaXMuc2VydmljZURvbWFpbnx8dm9pZCAwLGVudlZhcnM6b319KSxzZXRUaW1lb3V0KCgpPT57ZGwubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LDApfWNhdGNoKGwpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZXBsb3kgZnJvbSBBcHAgU3RvcmU6IixsKX19fTtKYT1SaShGemEpLCRjdD1uZXcgV2Vha01hcCxEY3Q9bmV3IFdlYWtNYXAsTGN0PW5ldyBXZWFrTWFwLEVjdD1uZXcgV2Vha01hcCxQY3Q9bmV3IFdlYWtNYXAsSWN0PW5ldyBXZWFrTWFwLEFjdD1uZXcgV2Vha01hcCxOY3Q9bmV3IFdlYWtNYXAsUmN0PW5ldyBXZWFrTWFwLE9jdD1uZXcgV2Vha01hcCxGY3Q9bmV3IFdlYWtNYXAsUnQoSmEsNCwiYXBwU3RvcmVTdGF0ZSIsT3phLHdvLCRjdCksUnQoSmEsNCwiY3VycmVudFZpZXciLFJ6YSx3byxEY3QpLFJ0KEphLDQsInNlbGVjdGVkQXBwIixOemEsd28sTGN0KSxSdChKYSw0LCJzZWxlY3RlZEFwcE1ldGEiLEF6YSx3byxFY3QpLFJ0KEphLDQsInNlbGVjdGVkQXBwQ29uZmlnIixJemEsd28sUGN0KSxSdChKYSw0LCJzZWxlY3RlZFZlcnNpb24iLFB6YSx3byxJY3QpLFJ0KEphLDQsImVkaXRhYmxlRW52VmFycyIsRXphLHdvLEFjdCksUnQoSmEsNCwic2VydmljZU5hbWUiLEx6YSx3byxOY3QpLFJ0KEphLDQsInNlcnZpY2VEb21haW4iLER6YSx3byxSY3QpLFJ0KEphLDQsImxvYWRpbmciLCR6YSx3byxPY3QpLFJ0KEphLDQsImRlcGxveU1vZGUiLFR6YSx3byxGY3QpLHdvPVJ0KEphLDAsIk9iVmlld0FwcFN0b3JlIixCemEsd28pLGkod28sIk9iVmlld0FwcFN0b3JlIiksdmkod28sInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyx5byxKYAogICAgICAuZGV0YWlsLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTEsICMwOTA5MGIpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWljb24gewogICAgICAgIHdpZHRoOiA2NHB4OwogICAgICAgIGhlaWdodDogNjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsKICAgICAgICBtYXJnaW46IDAgMCA0cHggMDsKICAgICAgfQoKICAgICAgLmRldGFpbC1jYXRlZ29yeSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDJweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsLW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOwogICAgICB9CgogICAgICAuZGV0YWlsLW1ldGEgYSB7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbC1tZXRhIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuc2VjdGlvbi1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KTsKICAgICAgICBjb2xvcjogIzYwYTVmYTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CiAgICAgIH0KCiAgICAgIC52ZXJzaW9uLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLnZlcnNpb24tc2VsZWN0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5pbWFnZS10YWcgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLmVudi10YWJsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgfQoKICAgICAgLmVudi10YWJsZSB0aCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgICAgcGFkZGluZzogOHB4IDhweCA4cHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgIH0KCiAgICAgIC5lbnYtdGFibGUgdGQgewogICAgICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDA7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgfQoKICAgICAgLmVudi1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMywgIzNmM2Y0Nik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5lbnYtaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuZW52LWtleSB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTYsICNkNGQ0ZDgpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5lbnYtZGVzYyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsKICAgICAgfQoKICAgICAgLmVudi1iYWRnZSB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgIH0KCiAgICAgIC5lbnYtYmFkZ2UucmVxdWlyZWQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICB9CgogICAgICAuZW52LWJhZGdlLmF1dG8gewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMTUpOwogICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICB9CgogICAgICAubmFtZS1pbnB1dCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMywgIzNmM2Y0Nik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYWN0aW9ucy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLmJ0biB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYnRuOmhvdmVyIHsgb3BhY2l0eTogMC45OyB9CgogICAgICAuYnRuLXByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS0wLCAjMDkwOTBiKTsKICAgICAgfQoKICAgICAgLmJ0bi1zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS02LCAjZDRkNGQ4KTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOwogICAgICB9CgogICAgICAuZm9vdHByaW50LWxpc3QgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5mb290cHJpbnQtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS02LCAjZDRkNGQ4KTsKICAgICAgfQoKICAgICAgLmZvb3RwcmludC1tZXRhIHsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmV4cG9zdXJlLXdhcm5pbmcgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGBdKSxpdChKYSwxLHdvKTtCY3Q9d299KTt2YXIgd3NzLFAyZSxqemE9ZygoKT0+e2xsKCk7RngoKTt3c3M9RzMuZG9tdG9vbHMsUDJlPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5zZXJ2aWNlTmFtZT1lO3RoaXMuaWRlbnRpdHk9dCx0aGlzLnJlZ2lzdGVyUHJvY2Vzc1NvY2tldEhhbmRsZXJzKCl9c2VydmljZU5hbWU7c3RhdGlje2kodGhpcywiQmFja2VuZEV4ZWN1dGlvbkVudmlyb25tZW50Iil9dHlwZT0iYmFja2VuZCI7X3JlYWR5PSExO2lkZW50aXR5O3Byb2Nlc3NSb3V0ZXI9bmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUm91dGVyO3Byb2Nlc3NTb2NrZXQ9bnVsbDtwcm9jZXNzU29ja2V0UHJvbWlzZT1udWxsO3Byb2Nlc3NTdGF0ZXM9bmV3IE1hcDtnZXQgcmVhZHkoKXtyZXR1cm4gdGhpcy5fcmVhZHl9YXN5bmMgaW5pdCgpe2lmKCEoYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlRXhpc3RzIix7cGF0aDoiLyJ9KSkuZXhpc3RzKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGFjY2VzcyBjb250YWluZXIgZmlsZXN5c3RlbSBmb3Igc2VydmljZTogJHt0aGlzLnNlcnZpY2VOYW1lfWApO3RoaXMuX3JlYWR5PSEwfWFzeW5jIGRlc3Ryb3koKXtmb3IobGV0IGUgb2YgQXJyYXkuZnJvbSh0aGlzLnByb2Nlc3NTdGF0ZXMua2V5cygpKSlhd2FpdCB0aGlzLmtpbGxQcm9jZXNzKGUpLmNhdGNoKCgpPT57fSk7YXdhaXQgdGhpcy5wcm9jZXNzU29ja2V0Py5zdG9wKCkuY2F0Y2goKCk9Pnt9KSx0aGlzLnByb2Nlc3NTb2NrZXQ9bnVsbCx0aGlzLnByb2Nlc3NTb2NrZXRQcm9taXNlPW51bGwsdGhpcy5fcmVhZHk9ITF9YXN5bmMgcmVhZEZpbGUoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZVJlYWRGaWxlIix7cGF0aDplfSkpLmNvbnRlbnR9YXN5bmMgd3JpdGVGaWxlKGUsdCl7YXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlV3JpdGVGaWxlIix7cGF0aDplLGNvbnRlbnQ6dH0pfWFzeW5jIHJlYWREaXIoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZVJlYWREaXIiLHtwYXRoOmV9KSkuZW50cmllc31hc3luYyBta2RpcihlKXthd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VNa2RpciIse3BhdGg6ZX0pfWFzeW5jIHJtKGUsdCl7YXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlUm0iLHtwYXRoOmUscmVjdXJzaXZlOnQ/LnJlY3Vyc2l2ZX0pfWFzeW5jIGV4aXN0cyhlKXtyZXR1cm4oYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlRXhpc3RzIix7cGF0aDplfSkpLmV4aXN0c313YXRjaChlLHQsYSl7cmV0dXJue3N0b3A6aSgoKT0+e30sInN0b3AiKX19YXN5bmMgc3Bhd24oZSx0KXtsZXQgYT1hd2FpdCB0aGlzLmVuc3VyZVByb2Nlc3NTb2NrZXQoKSxyPWNyeXB0by5yYW5kb21VVUlEKCk7YXdhaXQgYS5zZXRUYWcoYHdvcmtzcGFjZVByb2Nlc3M6JHtyfWAsITApO2xldCBuPWkoKCk9Pnt9LCJyZXNvbHZlRXhpdCIpLG89bmV3IFByb21pc2UoZD0+e249ZH0pLGw9bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydDppKGQ9Pnt0aGlzLnByb2Nlc3NTdGF0ZXMuc2V0KHIse291dHB1dENvbnRyb2xsZXI6ZCxyZXNvbHZlRXhpdDpufSl9LCJzdGFydCIpLGNhbmNlbDppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmtpbGxQcm9jZXNzKHIpLmNhdGNoKCgpPT57fSl9LCJjYW5jZWwiKX0pO3RyeXthd2FpdCBhLmNyZWF0ZVR5cGVkUmVxdWVzdCgid29ya3NwYWNlU3RhcnRQcm9jZXNzIikuZmlyZSh7aWRlbnRpdHk6dGhpcy5pZGVudGl0eSxzZXJ2aWNlTmFtZTp0aGlzLnNlcnZpY2VOYW1lLHByb2Nlc3NJZDpyLGNvbW1hbmQ6ZSxhcmdzOnR9KX1jYXRjaChkKXtsZXQgdT10aGlzLnByb2Nlc3NTdGF0ZXMuZ2V0KHIpO3RoaXMucHJvY2Vzc1N0YXRlcy5kZWxldGUociksYXdhaXQgYS5yZW1vdmVUYWcoYHdvcmtzcGFjZVByb2Nlc3M6JHtyfWApLmNhdGNoKCgpPT57fSk7dHJ5e3U/Lm91dHB1dENvbnRyb2xsZXIuZXJyb3IoZCl9Y2F0Y2h7fXRocm93IGR9bGV0IHA9bmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTppKGFzeW5jIGQ9Pnthd2FpdCBhLmNyZWF0ZVR5cGVkUmVxdWVzdCgid29ya3NwYWNlUHJvY2Vzc0lucHV0IikuZmlyZSh7aWRlbnRpdHk6dGhpcy5pZGVudGl0eSxwcm9jZXNzSWQ6cixpbnB1dDpkfSl9LCJ3cml0ZSIpLGFib3J0OmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMua2lsbFByb2Nlc3MocikuY2F0Y2goKCk9Pnt9KX0sImFib3J0Iil9KTtyZXR1cm57b3V0cHV0OmwsaW5wdXQ6cCxleGl0Om8sa2lsbDppKCgpPT57dGhpcy5raWxsUHJvY2VzcyhyKX0sImtpbGwiKX19YXN5bmMgZ2V0U2hlbGxDb21tYW5kKCl7cmV0dXJuKGF3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZUdldFNoZWxsQ29tbWFuZCIse30pKS5zaGVsbENvbW1hbmR9cmVnaXN0ZXJQcm9jZXNzU29ja2V0SGFuZGxlcnMoKXt0aGlzLnByb2Nlc3NSb3V0ZXIuYWRkVHlwZWRIYW5kbGVyKG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXIoInB1c2hXb3Jrc3BhY2VQcm9jZXNzT3V0cHV0Iixhc3luYyBlPT4odGhpcy5wcm9jZXNzU3RhdGVzLmdldChlLnByb2Nlc3NJZCk/Lm91dHB1dENvbnRyb2xsZXIuZW5xdWV1ZShlLm91dHB1dCkse30pKSksdGhpcy5wcm9jZXNzUm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoV29ya3NwYWNlUHJvY2Vzc0V4aXQiLGFzeW5jIGU9Pih0aGlzLmNvbXBsZXRlUHJvY2Vzc1N0YXRlKGUucHJvY2Vzc0lkLGUuZXhpdENvZGUpLGF3YWl0IHRoaXMucHJvY2Vzc1NvY2tldD8ucmVtb3ZlVGFnKGB3b3Jrc3BhY2VQcm9jZXNzOiR7ZS5wcm9jZXNzSWR9YCkuY2F0Y2goKCk9Pnt9KSx7fSkpKX1hc3luYyBlbnN1cmVQcm9jZXNzU29ja2V0KCl7cmV0dXJuIHRoaXMucHJvY2Vzc1NvY2tldD90aGlzLnByb2Nlc3NTb2NrZXQ6KHRoaXMucHJvY2Vzc1NvY2tldFByb21pc2V8fCh0aGlzLnByb2Nlc3NTb2NrZXRQcm9taXNlPVF1LlR5cGVkU29ja2V0LmNyZWF0ZUNsaWVudCh0aGlzLnByb2Nlc3NSb3V0ZXIsUXUuVHlwZWRTb2NrZXQudXNlV2luZG93TG9jYXRpb25PcmlnaW5VcmwoKSx7YXV0b1JlY29ubmVjdDohMH0pKSx0aGlzLnByb2Nlc3NTb2NrZXQ9YXdhaXQgdGhpcy5wcm9jZXNzU29ja2V0UHJvbWlzZSx0aGlzLnByb2Nlc3NTb2NrZXQpfWNvbXBsZXRlUHJvY2Vzc1N0YXRlKGUsdCl7bGV0IGE9dGhpcy5wcm9jZXNzU3RhdGVzLmdldChlKTtpZihhKXt0cnl7YS5vdXRwdXRDb250cm9sbGVyLmNsb3NlKCl9Y2F0Y2h7fWEucmVzb2x2ZUV4aXQodCksdGhpcy5wcm9jZXNzU3RhdGVzLmRlbGV0ZShlKX19YXN5bmMga2lsbFByb2Nlc3MoZSl7bGV0IHQ9dGhpcy5wcm9jZXNzU29ja2V0O3QmJihhd2FpdCB0LmNyZWF0ZVR5cGVkUmVxdWVzdCgid29ya3NwYWNlS2lsbFByb2Nlc3MiKS5maXJlKHtpZGVudGl0eTp0aGlzLmlkZW50aXR5LHByb2Nlc3NJZDplfSkuY2F0Y2goKCk9Pnt9KSx0aGlzLmNvbXBsZXRlUHJvY2Vzc1N0YXRlKGUsLTEpLGF3YWl0IHQucmVtb3ZlVGFnKGB3b3Jrc3BhY2VQcm9jZXNzOiR7ZX1gKS5jYXRjaCgoKT0+e30pKX1hc3luYyBmaXJlUmVxdWVzdChlLHQpe3JldHVybiBhd2FpdCBuZXcgd3NzLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsZSkuZmlyZSh7aWRlbnRpdHk6dGhpcy5pZGVudGl0eSxzZXJ2aWNlTmFtZTp0aGlzLnNlcnZpY2VOYW1lLC4uLnR9KX19fSk7dmFyIHRDYT17fTt5dCh0Q2Ese09iVmlld1NlcnZpY2VzOigpPT5ZY3R9KTtmdW5jdGlvbiBJMmUocyl7aWYoIXN8fHM9PT0wKXJldHVybiIwIEIiO2xldCBlPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIl0sdD0xMDI0LGE9TWF0aC5mbG9vcihNYXRoLmxvZyhzKS9NYXRoLmxvZyh0KSk7cmV0dXJuYCR7KHMvTWF0aC5wb3codCxhKSkudG9GaXhlZCgxKX0gJHtlW2FdfWB9ZnVuY3Rpb24ga3NzKHMpe2xldCBlPXMubGFzdEluZGV4T2YoIjoiKSx0PXMubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gZT50JiZlPjA/e3JlcG9zaXRvcnk6cy5zdWJzdHJpbmcoMCxlKSx0YWc6cy5zdWJzdHJpbmcoZSsxKX06e3JlcG9zaXRvcnk6cyx0YWc6ImxhdGVzdCJ9fWZ1bmN0aW9uIFZ6YShzKXtzd2l0Y2gocyl7Y2FzZSJydW5uaW5nIjpyZXR1cm4icnVubmluZyI7Y2FzZSJzdGFydGluZyI6cmV0dXJuInN0YXJ0aW5nIjtjYXNlImZhaWxlZCI6cmV0dXJuImVycm9yIjtkZWZhdWx0OnJldHVybiJzdG9wcGVkIn19ZnVuY3Rpb24gU3NzKHMpe2xldCBlPWtzcyhzLmltYWdlKTtyZXR1cm57bmFtZTpzLm5hbWUsc3RhdHVzOlZ6YShzLnN0YXR1cyksaW1hZ2U6cy5pbWFnZSxwb3J0OnMucG9ydCxkb21haW46cy5kb21haW58fG51bGwsY29udGFpbmVySWQ6cy5jb250YWluZXJJRHx8IiIsY3JlYXRlZDpzLmNyZWF0ZWRBdD9uZXcgRGF0ZShzLmNyZWF0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKToiLSIsdXBkYXRlZDpzLnVwZGF0ZWRBdD9uZXcgRGF0ZShzLnVwZGF0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKToiLSIscmVnaXN0cnk6cy51c2VPbmVib3hSZWdpc3RyeT8iT25lYm94IFJlZ2lzdHJ5IjpzLnJlZ2lzdHJ5fHwiRG9ja2VyIEh1YiIscmVwb3NpdG9yeTpzLnJlZ2lzdHJ5UmVwb3NpdG9yeXx8ZS5yZXBvc2l0b3J5LHRhZzpzLnJlZ2lzdHJ5SW1hZ2VUYWd8fGUudGFnfX1mdW5jdGlvbiBfc3Mocyl7cmV0dXJue2NwdTpzLmNwdVBlcmNlbnQsbWVtb3J5OkkyZShzLm1lbW9yeVVzZWQpLG1lbW9yeUxpbWl0OkkyZShzLm1lbW9yeUxpbWl0KSxuZXR3b3JrSW46STJlKHMubmV0d29ya1J4KSxuZXR3b3JrT3V0OkkyZShzLm5ldHdvcmtUeCl9fWZ1bmN0aW9uIE1zcyhzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9zLm1hcChlPT57bGV0IHQ9ZS50aW1lc3RhbXA/dHlwZW9mIGUudGltZXN0YW1wPT0ibnVtYmVyIj9uZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKTpTdHJpbmcoZS50aW1lc3RhbXApOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxhPWUubWVzc2FnZXx8U3RyaW5nKGUpLHI9ZS5sZXZlbHx8ImluZm8iO3JldHVybnt0aW1lc3RhbXA6dCxtZXNzYWdlOmEsbGV2ZWw6cn19KTp0eXBlb2Ygcz09InN0cmluZyImJnMudHJpbSgpP3Muc3BsaXQoYApgKS5maWx0ZXIoZT0+ZS50cmltKCkpLm1hcChlPT57bGV0IHQ9ZS5tYXRjaCgvXihcZHs0fS1cZHsyfS1cZHsyfVRbXGQ6Ll0rWj8pXHMrKC4qKS8pLGE9dD90WzFdOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxyPXQ/dFsyXTplLG49ci50b0xvd2VyQ2FzZSgpLG89bi5pbmNsdWRlcygiZXJyb3IiKXx8bi5pbmNsdWRlcygiZmF0YWwiKT8iZXJyb3IiOm4uaW5jbHVkZXMoIndhcm4iKT8id2FybiI6ImluZm8iO3JldHVybnt0aW1lc3RhbXA6YSxtZXNzYWdlOnIsbGV2ZWw6b319KTpbXX12YXIgVXphLFd6YSxHemEsS3phLFl6YSxaemEsWHphLFF6YSxKemEsZUNhLGVpLEhjdCxxY3QsamN0LFZjdCxVY3QsV2N0LEdjdCxLY3QsenNzLHVsLFljdCxaY3Q9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7RngoKTtqemEoKTtwZSgpO2koSTJlLCJmb3JtYXRCeXRlcyIpO2koa3NzLCJwYXJzZUltYWdlU3RyaW5nIik7aShWemEsIm1hcFN0YXR1cyIpO2koU3NzLCJ0b1NlcnZpY2VEZXRhaWwiKTtpKF9zcywidG9TZXJ2aWNlU3RhdHMiKTtpKE1zcywicGFyc2VMb2dzIik7enNzPXtjcHU6MCxtZW1vcnk6IjAgQiIsbWVtb3J5TGltaXQ6IjAgQiIsbmV0d29ya0luOiIwIEIiLG5ldHdvcmtPdXQ6IjAgQiJ9O2VDYT1bbmUoIm9iLXZpZXctc2VydmljZXMiKV07dWw9Y2xhc3MgdWwgZXh0ZW5kcyhKemE9d2UsUXphPVtZKCldLFh6YT1bWSgpXSxaemE9W1koKV0sWXphPVtZKCldLEt6YT1bWSgpXSxHemE9W1koKV0sV3phPVtZKCldLFV6YT1bWSgpXSxKemEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtlYSh0aGlzLEhjdCxpdChlaSw4LHRoaXMse3NlcnZpY2VzOltdLGN1cnJlbnRTZXJ2aWNlOm51bGwsY3VycmVudFNlcnZpY2VMb2dzOltdLGN1cnJlbnRTZXJ2aWNlU3RhdHM6bnVsbCxwbGF0Zm9ybVNlcnZpY2VzOltdLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2U6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9nczpbXX0pKSxpdChlaSwxMSx0aGlzKTtlYSh0aGlzLHFjdCxpdChlaSwxMix0aGlzLHtiYWNrdXBzOltdLHNjaGVkdWxlczpbXX0pKSxpdChlaSwxNSx0aGlzKTtlYSh0aGlzLGpjdCxpdChlaSwxNix0aGlzLCJsaXN0IikpLGl0KGVpLDE5LHRoaXMpO2VhKHRoaXMsVmN0LGl0KGVpLDIwLHRoaXMsIiIpKSxpdChlaSwyMyx0aGlzKTtlYSh0aGlzLFVjdCxpdChlaSwyNCx0aGlzLCIiKSksaXQoZWksMjcsdGhpcyk7ZWEodGhpcyxXY3QsaXQoZWksMjgsdGhpcywhMSkpLGl0KGVpLDMxLHRoaXMpO2VhKHRoaXMsR2N0LGl0KGVpLDMyLHRoaXMsbnVsbCkpLGl0KGVpLDM1LHRoaXMpO2VhKHRoaXMsS2N0LGl0KGVpLDM2LHRoaXMse2FwcHM6W10sdXBncmFkZWFibGVTZXJ2aWNlczpbXSx1cGdyYWRlT3BlcmF0aW9uczpbXX0pKSxpdChlaSwzOSx0aGlzKTtsZXQgdD1ZdC5zZWxlY3Qobj0+bikuc3Vic2NyaWJlKG49Pnt0aGlzLnNlcnZpY2VzU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCk7bGV0IGE9SDIuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5iYWNrdXBzU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSk7bGV0IHI9Y2wuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5hcHBTdG9yZVN0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbWXQuZGlzcGF0Y2hBY3Rpb24oejJlLG51bGwpLFl0LmRpc3BhdGNoQWN0aW9uKEMyZSxudWxsKSxjbC5kaXNwYXRjaEFjdGlvbihtemEsbnVsbCksY2wuZGlzcGF0Y2hBY3Rpb24oTDJlLG51bGwpXSk7bGV0IHQ9WXQuZ2V0U3RhdGUoKTtpZih0LmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2Upe2xldCBhPXQuY3VycmVudFBsYXRmb3JtU2VydmljZS50eXBlO1l0LnNldFN0YXRlKHsuLi5ZdC5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2U6bnVsbH0pLHRoaXMubmF2aWdhdGVUb1BsYXRmb3JtRGV0YWlsKGEpfX1yZW5kZXIoKXtzd2l0Y2godGhpcy5jdXJyZW50Vmlldyl7Y2FzZSJjcmVhdGUiOnJldHVybiB0aGlzLnJlbmRlckNyZWF0ZVZpZXcoKTtjYXNlImRldGFpbCI6cmV0dXJuIHRoaXMucmVuZGVyRGV0YWlsVmlldygpO2Nhc2UiYmFja3VwcyI6cmV0dXJuIHRoaXMucmVuZGVyQmFja3Vwc1ZpZXcoKTtjYXNlInBsYXRmb3JtLWRldGFpbCI6cmV0dXJuIHRoaXMucmVuZGVyUGxhdGZvcm1EZXRhaWxWaWV3KCk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5yZW5kZXJMaXN0VmlldygpfX1yZW5kZXJMaXN0Vmlldygpe2xldCB0PXRoaXMuc2VydmljZXNTdGF0ZS5zZXJ2aWNlcy5tYXAobD0+KHtuYW1lOmwubmFtZSxpbWFnZTpsLmltYWdlLGRvbWFpbjpsLmRvbWFpbnx8bnVsbCxzdGF0dXM6VnphKGwuc3RhdHVzKX0pKSxhPWkobD0+e3N3aXRjaChsKXtjYXNlInJ1bm5pbmciOnJldHVybiJSdW5uaW5nIjtjYXNlInN0b3BwZWQiOnJldHVybiJTdG9wcGVkIjtjYXNlInN0YXJ0aW5nIjpyZXR1cm4iU3RhcnRpbmcuLi4iO2Nhc2Uic3RvcHBpbmciOnJldHVybiJTdG9wcGluZy4uLiI7Y2FzZSJmYWlsZWQiOnJldHVybiJGYWlsZWQiO2Nhc2Uibm90LWRlcGxveWVkIjpyZXR1cm4iTm90IERlcGxveWVkIjtkZWZhdWx0OnJldHVybiBsfX0sImRpc3BsYXlTdGF0dXMiKSxyPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbHRlcihsPT5sLnN0YXR1cz09PSJydW5uaW5nInx8bC5zdGF0dXM9PT0ic3RhcnRpbmcifHxsLnN0YXR1cz09PSJzdG9wcGluZyJ8fGwuaXNDb3JlKSxuPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbHRlcihsPT4hbC5pc0NvcmUmJihsLnN0YXR1cz09PSJub3QtZGVwbG95ZWQifHxsLnN0YXR1cz09PSJzdG9wcGVkInx8bC5zdGF0dXM9PT0iZmFpbGVkIikpLG89ci5tYXAobD0+KHtuYW1lOmwuZGlzcGxheU5hbWUsc3RhdHVzOmEobC5zdGF0dXMpLHJ1bm5pbmc6bC5zdGF0dXM9PT0icnVubmluZyIsdHlwZTpsLnR5cGV9KSk7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5TZXJ2aWNlczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGVwbG95LWJ1dHRvbiIgQGNsaWNrPSR7KCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJjcmVhdGUifX0+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIERlcGxveSBTZXJ2aWNlCiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8c3otc2VydmljZXMtbGlzdC12aWV3CiAgICAgICAgLnNlcnZpY2VzPSR7dH0KICAgICAgICBAc2VydmljZS1jbGljaz0ke2w9Pnt0aGlzLnNlbGVjdGVkU2VydmljZU5hbWU9bC5kZXRhaWwubmFtZXx8bC5kZXRhaWwuc2VydmljZT8ubmFtZSxZdC5kaXNwYXRjaEFjdGlvbihLTWEse25hbWU6dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lfSksWXQuZGlzcGF0Y2hBY3Rpb24oSk1hLHtuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZX0pLFl0LmRpc3BhdGNoQWN0aW9uKGV6YSx7bmFtZTp0aGlzLnNlbGVjdGVkU2VydmljZU5hbWV9KSx0aGlzLmN1cnJlbnRWaWV3PSJkZXRhaWwifX0KICAgICAgICBAc2VydmljZS1hY3Rpb249JHtsPT50aGlzLmhhbmRsZVNlcnZpY2VBY3Rpb24obCl9CiAgICAgID48L3N6LXNlcnZpY2VzLWxpc3Qtdmlldz4KICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nIHN0eWxlPSJtYXJnaW4tdG9wOiAzMnB4OyI+UGxhdGZvcm0gU2VydmljZXM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IHN0eWxlPSJtYXgtd2lkdGg6IDUwMHB4OyI+CiAgICAgICAgJHtvLmxlbmd0aD4wP3dgCiAgICAgICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgICAgICAuc2VydmljZXM9JHtvfQogICAgICAgICAgICBAc2VydmljZS1jbGljaz0ke2w9PntsZXQgcD1sLmRldGFpbC50eXBlfHx0aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maW5kKGQ9PmQuZGlzcGxheU5hbWU9PT1sLmRldGFpbC5uYW1lKT8udHlwZTtwJiZ0aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChwKX19CiAgICAgICAgICA+PC9zei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtuLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgIzA5MDkwYik7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7by5sZW5ndGg+MD8iMTJweCI6IjAifTsKICAgICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgIj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi1ib3R0b206IDEycHg7Ij5BdmFpbGFibGUg4oCUIG5vdCBpbiB1c2U8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4OyI+CiAgICAgICAgICAgICAgJHtuLm1hcChsPT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiA4cHggMDsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7IgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUGxhdGZvcm1EZXRhaWwobC50eXBlKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMywgIzNmM2Y0Nik7IGZsZXgtc2hyaW5rOiAwOyI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyI+JHtsLmRpc3BsYXlOYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsiPiR7YShsLnN0YXR1cyl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRlcGxveUZyb21UZW1wbGF0ZSh0KXtsZXQgYT10LmlkfHx0Lm5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOS1dL2csIi0iKSxyPXt9O2lmKHQuZW52VmFycylmb3IobGV0IG8gb2YgdC5lbnZWYXJzKW8ua2V5JiZvLnZhbHVlJiYocltvLmtleV09by52YWx1ZSk7bGV0IG49e25hbWU6YSxpbWFnZTp0LmltYWdlLHBvcnQ6dC5wb3J0fHw4MCxlbnZWYXJzOnIsZW5hYmxlTW9uZ29EQjp0LmVuYWJsZU1vbmdvREJ8fCExLGVuYWJsZVMzOnQuZW5hYmxlUzN8fCExLGVuYWJsZUNsaWNrSG91c2U6dC5lbmFibGVDbGlja0hvdXNlfHwhMSxlbmFibGVSZWRpczp0LmVuYWJsZVJlZGlzfHwhMSxlbmFibGVNYXJpYURCOnQuZW5hYmxlTWFyaWFEQnx8ITF9O2F3YWl0IFl0LmRpc3BhdGNoQWN0aW9uKGZjdCx7Y29uZmlnOm59KSx0aGlzLnBlbmRpbmdUZW1wbGF0ZT1udWxsLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifXJlbmRlckNyZWF0ZVZpZXcoKXtpZih0aGlzLnBlbmRpbmdUZW1wbGF0ZSl7bGV0IHQ9dGhpcy5wZW5kaW5nVGVtcGxhdGU7cmV0dXJuIHdgCiAgICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkRlcGxveSAke3QubmFtZX08L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgc3R5bGU9Im1heC13aWR0aDogNjAwcHg7IG1hcmdpbjogMCBhdXRvOyI+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjMDkwOTBiKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7IGJvcmRlci1yYWRpdXM6IDhweDsgcGFkZGluZzogMjRweDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPgogICAgICAgICAgICA8aDMgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE4cHg7Ij4ke3QubmFtZX08L2gzPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwIDAgMTZweCAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7IGZvbnQtc2l6ZTogMTRweDsiPiR7dC5kZXNjcmlwdGlvbn08L3A+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiAxMnB4OyBmb250LXNpemU6IDEzcHg7Ij4KICAgICAgICAgICAgICA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij5JbWFnZTo8L3NwYW4+IDxzdHJvbmc+JHt0LmltYWdlfTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPlBvcnQ6PC9zcGFuPiA8c3Ryb25nPiR7dC5wb3J0fTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPlNlcnZpY2UgTmFtZTo8L3NwYW4+IDxzdHJvbmc+JHt0LmlkfTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPkNhdGVnb3J5Ojwvc3Bhbj4gPHN0cm9uZz4ke3QuY2F0ZWdvcnl9PC9zdHJvbmc+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3QuZW5hYmxlTW9uZ29EQnx8dC5lbmFibGVTM3x8dC5lbmFibGVDbGlja0hvdXNlfHx0LmVuYWJsZVJlZGlzfHx0LmVuYWJsZU1hcmlhREI/d2AKICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMnB4OyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPgogICAgICAgICAgICAgICAgUGxhdGZvcm0gU2VydmljZXM6CiAgICAgICAgICAgICAgICAke3QuZW5hYmxlTW9uZ29EQj93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPk1vbmdvREI8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICR7dC5lbmFibGVTMz93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPlMzPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3QuZW5hYmxlQ2xpY2tIb3VzZT93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPkNsaWNrSG91c2U8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICR7dC5lbmFibGVSZWRpcz93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPlJlZGlzPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3QuZW5hYmxlTWFyaWFEQj93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPk1hcmlhREI8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIHN0eWxlPSJiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7IGNvbG9yOiBpbmhlcml0OyIgQGNsaWNrPSR7KCk9Pnt0aGlzLnBlbmRpbmdUZW1wbGF0ZT1udWxsLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmRlcGxveUZyb21UZW1wbGF0ZSh0KX0+RGVwbG95ICR7dC5uYW1lfTwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5DcmVhdGUgU2VydmljZTwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1zZXJ2aWNlLWNyZWF0ZS12aWV3CiAgICAgICAgLnJlZ2lzdHJpZXM9JHtbXX0KICAgICAgICBAY3JlYXRlLXNlcnZpY2U9JHthc3luYyB0PT57bGV0IGE9dC5kZXRhaWwscj17bmFtZTphLm5hbWUsaW1hZ2U6YS5pbWFnZSxwb3J0OmEucG9ydHM/LlswXT8uY29udGFpbmVyUG9ydD9wYXJzZUludChhLnBvcnRzWzBdLmNvbnRhaW5lclBvcnQsMTApOjgwLGVudlZhcnM6YS5lbnZWYXJzPy5yZWR1Y2UoKG4sbyk9PihvLmtleSYmKG5bby5rZXldPW8udmFsdWUpLG4pLHt9KSxlbmFibGVNb25nb0RCOmEuZW5hYmxlTW9uZ29EQnx8ITEsZW5hYmxlUzM6YS5lbmFibGVTM3x8ITEsZW5hYmxlQ2xpY2tIb3VzZTphLmVuYWJsZUNsaWNrSG91c2V8fCExLGVuYWJsZVJlZGlzOmEuZW5hYmxlUmVkaXN8fCExLGVuYWJsZU1hcmlhREI6YS5lbmFibGVNYXJpYURCfHwhMX07YXdhaXQgWXQuZGlzcGF0Y2hBY3Rpb24oZmN0LHtjb25maWc6cn0pLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgICBAY2FuY2VsPSR7KCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJsaXN0In19CiAgICAgID48L3N6LXNlcnZpY2UtY3JlYXRlLXZpZXc+CiAgICBgfXJlbmRlckRldGFpbFZpZXcoKXtsZXQgdD10aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFNlcnZpY2UsYT10P1Nzcyh0KTpudWxsLHI9dGhpcy5zZXJ2aWNlc1N0YXRlLmN1cnJlbnRTZXJ2aWNlU3RhdHM/X3NzKHRoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50U2VydmljZVN0YXRzKTp6c3Msbj1Nc3ModGhpcy5zZXJ2aWNlc1N0YXRlLmN1cnJlbnRTZXJ2aWNlTG9ncyksbz10P3RoaXMuYXBwU3RvcmVTdGF0ZS51cGdyYWRlYWJsZVNlcnZpY2VzLmZpbmQoZD0+ZC5zZXJ2aWNlTmFtZT09PXQubmFtZSk6bnVsbCxsPXQ/dGhpcy5hcHBTdG9yZVN0YXRlLnVwZ3JhZGVPcGVyYXRpb25zLmZpbmQoZD0+ZC5zZXJ2aWNlTmFtZT09PXQubmFtZSYmZC5zdGF0dXM9PT0icnVubmluZyIpOm51bGwscD10P3RoaXMuYXBwU3RvcmVTdGF0ZS51cGdyYWRlT3BlcmF0aW9ucy5maW5kKGQ9PmQuc2VydmljZU5hbWU9PT10Lm5hbWUpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5TZXJ2aWNlIERldGFpbHM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAke2w/dGhpcy5yZW5kZXJVcGdyYWRlT3BlcmF0aW9uKGwpOiIifQogICAgICAkeyFsJiZwPy5zdGF0dXM9PT0iZmFpbGVkIj90aGlzLnJlbmRlclVwZ3JhZGVPcGVyYXRpb24ocCk6IiJ9CiAgICAgICR7bz93YAogICAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSksIHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjEpKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAiPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7Ij4KICAgICAgICAgICAgICBVcGRhdGUgYXZhaWxhYmxlOiB2JHtvLmN1cnJlbnRWZXJzaW9ufSAmcmFycjsgdiR7by5sYXRlc3RWZXJzaW9ufQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDRweDsiPgogICAgICAgICAgICAgICR7by5oYXNNaWdyYXRpb24/Ik1pZ3JhdGlvbiBzY3JpcHQgYXZhaWxhYmxlIjoiQ29uZmlnLW9ubHkgdXBncmFkZSJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJkZXBsb3ktYnV0dG9uIgogICAgICAgICAgICBzdHlsZT0icGFkZGluZzogOHB4IDE2cHg7IGZvbnQtc2l6ZTogMTNweDsiCiAgICAgICAgICAgID9kaXNhYmxlZD0keyEhbH0KICAgICAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2F3YWl0IGNsLmRpc3BhdGNoQWN0aW9uKGd6YSx7c2VydmljZU5hbWU6by5zZXJ2aWNlTmFtZSx0YXJnZXRWZXJzaW9uOm8ubGF0ZXN0VmVyc2lvbn0pfX0KICAgICAgICAgID4ke2w/IlVwZ3JhZGluZy4uLiI6IlVwZ3JhZGUifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICA8c3otc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7YX0KICAgICAgICAubG9ncz0ke259CiAgICAgICAgLnN0YXRzPSR7cn0KICAgICAgICBAYmFjaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBzZXJ2aWNlLWFjdGlvbj0ke2Q9PnRoaXMuaGFuZGxlU2VydmljZUFjdGlvbihkKX0KICAgICAgICBAcmVxdWVzdC13b3Jrc3BhY2U9JHthc3luYyBkPT57bGV0IHU9ZC5kZXRhaWw/LnNlcnZpY2U/Lm5hbWV8fHRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZSxjPVFpLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoISghdXx8IWMpKXRyeXtsZXQgYj1uZXcgUDJlKHUsYyk7YXdhaXQgYi5pbml0KCk7bGV0IHY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJzei1zZXJ2aWNlLWRldGFpbC12aWV3Iik7diYmKHYud29ya3NwYWNlRW52aXJvbm1lbnQ9YiksdGhpcy53b3Jrc3BhY2VPcGVuPSEwLHRoaXMuY2xhc3NMaXN0LmFkZCgid29ya3NwYWNlLW1vZGUiKX1jYXRjaChiKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gb3BlbiB3b3Jrc3BhY2U6IixiKX19fQogICAgICAgIEBiYWNrPSR7KCk9Pnt0aGlzLndvcmtzcGFjZU9wZW49ITEsdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ3b3Jrc3BhY2UtbW9kZSIpLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgPjwvc3otc2VydmljZS1kZXRhaWwtdmlldz4KICAgIGB9cmVuZGVyVXBncmFkZU9wZXJhdGlvbih0KXtsZXQgYT10LnN0YXR1cz09PSJmYWlsZWQiPyIjZjg3MTcxIjoiIzYwYTVmYSI7cmV0dXJuIHdgCiAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTEsICMwOTA5MGIpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7YX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgIj4KICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogMTZweDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7Ij4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOyI+CiAgICAgICAgICAgICAgVXBncmFkZSAke3QuZnJvbVZlcnNpb259ICZyYXJyOyAke3QudGFyZ2V0VmVyc2lvbn06ICR7dC5zdGVwfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDRweDsiPgogICAgICAgICAgICAgICR7dC5zdGF0dXM9PT0icnVubmluZyI/Ik9wZXJhdGlvbiBpcyBydW5uaW5nIGluIHRoZSBiYWNrZ3JvdW5kLiI6dC5lcnJvcnx8Ik9wZXJhdGlvbiBmaW5pc2hlZC4ifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICR7YX07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjA0ZW07Ij4KICAgICAgICAgICAgJHt0LnN0YXR1c30KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0wLCAjMDMwMzA1KTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgICAgbWF4LWhlaWdodDogMTMwcHg7CiAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICAiPiR7dC5wcm9ncmVzc0xpbmVzLnNsaWNlKC04KS5qb2luKGAKYCl9PC9kaXY+CiAgICAgICAgJHt0Lndhcm5pbmdzLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyBjb2xvcjogI2ZiYmYyNDsgZm9udC1zaXplOiAxMnB4OyI+CiAgICAgICAgICAgICR7dC53YXJuaW5ncy5qb2luKCIgfCAiKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJCYWNrdXBzVmlldygpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QmFja3Vwczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXcKICAgICAgICAuc2NoZWR1bGVzPSR7dGhpcy5iYWNrdXBzU3RhdGUuc2NoZWR1bGVzfQogICAgICAgIC5iYWNrdXBzPSR7dGhpcy5iYWNrdXBzU3RhdGUuYmFja3Vwc30KICAgICAgICBAY3JlYXRlLXNjaGVkdWxlPSR7dD0+e0gyLmRpc3BhdGNoQWN0aW9uKGx6YSx7Y29uZmlnOnQuZGV0YWlsfSl9fQogICAgICAgIEBydW4tbm93PSR7dD0+e0gyLmRpc3BhdGNoQWN0aW9uKGN6YSx7c2NoZWR1bGVJZDp0LmRldGFpbC5zY2hlZHVsZUlkfSl9fQogICAgICAgIEBkZWxldGUtYmFja3VwPSR7dD0+e0gyLmRpc3BhdGNoQWN0aW9uKG56YSx7YmFja3VwSWQ6dC5kZXRhaWwuYmFja3VwSWR9KX19CiAgICAgID48L3N6LXNlcnZpY2VzLWJhY2t1cHMtdmlldz4KICAgIGB9bmF2aWdhdGVUb1BsYXRmb3JtRGV0YWlsKHQpe3RoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGU9dCxZdC5zZXRTdGF0ZSh7Li4uWXQuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9nczpbXX0pO2xldCBhPXQ7WXQuZGlzcGF0Y2hBY3Rpb24oVDJlLHtzZXJ2aWNlVHlwZTphfSksWXQuZGlzcGF0Y2hBY3Rpb24odHphLHtzZXJ2aWNlVHlwZTphfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jdXJyZW50Vmlldz0icGxhdGZvcm0tZGV0YWlsIn0pfXJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpe2xldCB0PXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbmQocD0+cC50eXBlPT09dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZSksYT10aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzLHI9e2NwdTphP01hdGgucm91bmQoYS5jcHVQZXJjZW50KTowLG1lbW9yeTphP01hdGgucm91bmQoYS5tZW1vcnlQZXJjZW50KTowLHN0b3JhZ2U6MCxjb25uZWN0aW9uczp2b2lkIDB9LG89dD97bW9uZ29kYjp7aG9zdDoib25lYm94LW1vbmdvZGIiLHBvcnQ6MjcwMTcsdmVyc2lvbjoiNC40Iixjb25maWc6e2VuZ2luZToiV2lyZWRUaWdlciIsYXV0aEVuYWJsZWQ6ITB9fSxtaW5pbzp7aG9zdDoib25lYm94LW1pbmlvIixwb3J0OjllMyx2ZXJzaW9uOiJsYXRlc3QiLGNvbmZpZzp7Y29uc29sZVBvcnQ6OTAwMSxyZWdpb246InVzLWVhc3QtMSJ9fSxjbGlja2hvdXNlOntob3N0OiJvbmVib3gtY2xpY2tob3VzZSIscG9ydDo4MTIzLHZlcnNpb246ImxhdGVzdCIsY29uZmlnOntuYXRpdmVQb3J0OjllMyxodHRwUG9ydDo4MTIzfX0sc21hcnRwcm94eTp7aG9zdDoib25lYm94LXNtYXJ0cHJveHkiLHBvcnQ6ODAsdmVyc2lvbjoibGF0ZXN0Iixjb25maWc6e2h0dHBzUG9ydDo0NDMsYWRtaW5BcGk6MjAxOX19LG1hcmlhZGI6e2hvc3Q6Im9uZWJveC1tYXJpYWRiIixwb3J0OjMzMDYsdmVyc2lvbjoiMTEiLGNvbmZpZzp7ZW5naW5lOiJJbm5vREIiLGF1dGhFbmFibGVkOiEwfX0scmVkaXM6e2hvc3Q6Im9uZWJveC1yZWRpcyIscG9ydDo2Mzc5LHZlcnNpb246IjctYWxwaW5lIixjb25maWc6e2FwcGVuZG9ubHk6ITAsbWF4RGF0YWJhc2VzOjE2fX19W3QudHlwZV18fHtob3N0OiJ1bmtub3duIixwb3J0OjAsdmVyc2lvbjoiIixjb25maWc6e319Ontob3N0OiIiLHBvcnQ6MCx2ZXJzaW9uOiIiLGNvbmZpZzp7fX0sbD1pKHA9Pntzd2l0Y2gocCl7Y2FzZSJydW5uaW5nIjpyZXR1cm4icnVubmluZyI7Y2FzZSJmYWlsZWQiOnJldHVybiJlcnJvciI7ZGVmYXVsdDpyZXR1cm4ic3RvcHBlZCJ9fSwibWFwUGxhdGZvcm1TdGF0dXMiKTtyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPlBsYXRmb3JtIFNlcnZpY2U8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWFjdGlvbnMiIHN0eWxlPSJqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7Ij4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXBsb3ktYnV0dG9uIiBzdHlsZT0iYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOyBjb2xvcjogaW5oZXJpdDsiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fT4KICAgICAgICAgICZsYXJyOyBCYWNrIHRvIFNlcnZpY2VzCiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7dD97aWQ6dC50eXBlLG5hbWU6dC5kaXNwbGF5TmFtZSx0eXBlOnQudHlwZSxzdGF0dXM6bCh0LnN0YXR1cyksdmVyc2lvbjpvLnZlcnNpb24saG9zdDpvLmhvc3QscG9ydDpvLnBvcnQsY29uZmlnOm8uY29uZmlnLG1ldHJpY3M6cn06bnVsbH0KICAgICAgICAubG9ncz0ke3RoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9ncy5tYXAocD0+KHt0aW1lc3RhbXA6bmV3IERhdGUocC50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksbGV2ZWw6cC5sZXZlbCxtZXNzYWdlOnAubWVzc2FnZX0pKX0KICAgICAgICBAYmFjaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBzdGFydD0ke2FzeW5jKCk9Pnthd2FpdCBZdC5kaXNwYXRjaEFjdGlvbihtY3Qse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KSxZdC5kaXNwYXRjaEFjdGlvbihUMmUse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KX19CiAgICAgICAgQHN0b3A9JHthc3luYygpPT57YXdhaXQgWXQuZGlzcGF0Y2hBY3Rpb24oZ2N0LHtzZXJ2aWNlVHlwZTp0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlfSl9fQogICAgICAgIEByZXN0YXJ0PSR7YXN5bmMoKT0+e2F3YWl0IFl0LmRpc3BhdGNoQWN0aW9uKGdjdCx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pLGF3YWl0IFl0LmRpc3BhdGNoQWN0aW9uKG1jdCx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pLFl0LmRpc3BhdGNoQWN0aW9uKFQyZSx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pfX0KICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldz4KICAgIGB9YXN5bmMgaGFuZGxlU2VydmljZUFjdGlvbih0KXtsZXQgYT10LmRldGFpbC5hY3Rpb24scj10LmRldGFpbC5zZXJ2aWNlPy5uYW1lfHx0LmRldGFpbC5uYW1lfHx0aGlzLnNlbGVjdGVkU2VydmljZU5hbWU7c3dpdGNoKGEpe2Nhc2Uic3RhcnQiOmF3YWl0IFl0LmRpc3BhdGNoQWN0aW9uKFpNYSx7bmFtZTpyfSk7YnJlYWs7Y2FzZSJzdG9wIjphd2FpdCBZdC5kaXNwYXRjaEFjdGlvbihYTWEse25hbWU6cn0pO2JyZWFrO2Nhc2UicmVzdGFydCI6YXdhaXQgWXQuZGlzcGF0Y2hBY3Rpb24oUU1hLHtuYW1lOnJ9KTticmVhaztjYXNlImRlbGV0ZSI6YXdhaXQgWXQuZGlzcGF0Y2hBY3Rpb24oWU1hLHtuYW1lOnJ9KSx0aGlzLmN1cnJlbnRWaWV3PSJsaXN0IjticmVha319fTtlaT1SaShKemEpLEhjdD1uZXcgV2Vha01hcCxxY3Q9bmV3IFdlYWtNYXAsamN0PW5ldyBXZWFrTWFwLFZjdD1uZXcgV2Vha01hcCxVY3Q9bmV3IFdlYWtNYXAsV2N0PW5ldyBXZWFrTWFwLEdjdD1uZXcgV2Vha01hcCxLY3Q9bmV3IFdlYWtNYXAsUnQoZWksNCwic2VydmljZXNTdGF0ZSIsUXphLHVsLEhjdCksUnQoZWksNCwiYmFja3Vwc1N0YXRlIixYemEsdWwscWN0KSxSdChlaSw0LCJjdXJyZW50VmlldyIsWnphLHVsLGpjdCksUnQoZWksNCwic2VsZWN0ZWRTZXJ2aWNlTmFtZSIsWXphLHVsLFZjdCksUnQoZWksNCwic2VsZWN0ZWRQbGF0Zm9ybVR5cGUiLEt6YSx1bCxVY3QpLFJ0KGVpLDQsIndvcmtzcGFjZU9wZW4iLEd6YSx1bCxXY3QpLFJ0KGVpLDQsInBlbmRpbmdUZW1wbGF0ZSIsV3phLHVsLEdjdCksUnQoZWksNCwiYXBwU3RvcmVTdGF0ZSIsVXphLHVsLEtjdCksdWw9UnQoZWksMCwiT2JWaWV3U2VydmljZXMiLGVDYSx1bCksaSh1bCwiT2JWaWV3U2VydmljZXMiKSx2aSh1bCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLHlvLEpgCiAgICAgIC5wYWdlLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiBzdmcgewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoLndvcmtzcGFjZS1tb2RlKSB7CiAgICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgOmhvc3QoLndvcmtzcGFjZS1tb2RlKSBvYi1zZWN0aW9uaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF0pLGl0KGVpLDEsdWwpO1ljdD11bH0pO3ZhciBuQ2E9e307eXQobkNhLHtPYlZpZXdOZXR3b3JrOigpPT5lMXR9KTt2YXIgYUNhLHNDYSxpQ2EsckNhLG9DYSxpMSxYY3QsUWN0LEpjdCxpMCxlMXQsdDF0PWcoYXN5bmMoKT0+e2xsKCk7QjIoKTthd2FpdCBhMSgpO3BlKCk7b0NhPVtuZSgib2Itdmlldy1uZXR3b3JrIildO2kwPWNsYXNzIGkwIGV4dGVuZHMockNhPXdlLGlDYT1bWSgpXSxzQ2E9W1koKV0sYUNhPVtZKCldLHJDYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsWGN0LGl0KGkxLDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksaXQoaTEsMTEsdGhpcyk7ZWEodGhpcyxRY3QsaXQoaTEsMTIsdGhpcywicHJveHkiKSksaXQoaTEsMTUsdGhpcyk7ZWEodGhpcyxKY3QsaXQoaTEsMTYsdGhpcywiIikpLGl0KGkxLDE5LHRoaXMpO2xldCB0PVphLnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMubmV0d29ya1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbWmEuZGlzcGF0Y2hBY3Rpb24oYmN0LG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKHlKLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKHdKLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKGF6YSxudWxsKSxaYS5kaXNwYXRjaEFjdGlvbih2Y3QsbnVsbCksWmEuZGlzcGF0Y2hBY3Rpb24oJDJlLG51bGwpXSl9cmVuZGVyKCl7c3dpdGNoKHRoaXMuY3VycmVudFRhYil7Y2FzZSJkbnMiOnJldHVybiB0aGlzLnJlbmRlckRuc1ZpZXcoKTtjYXNlImRvbWFpbnMiOnJldHVybiB0aGlzLnJlbmRlckRvbWFpbnNWaWV3KCk7Y2FzZSJkb21haW4tZGV0YWlsIjpyZXR1cm4gdGhpcy5yZW5kZXJEb21haW5EZXRhaWxWaWV3KCk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5yZW5kZXJQcm94eVZpZXcoKX19cmVuZGVyUHJveHlWaWV3KCl7bGV0IHQ9dGhpcy5uZXR3b3JrU3RhdGUuc3RhdHM7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5OZXR3b3JrPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LW5ldHdvcmstcHJveHktdmlldwogICAgICAgIC5wcm94eVN0YXR1cz0ke3Q/LnByb3h5Py5ydW5uaW5nPyJydW5uaW5nIjoic3RvcHBlZCJ9CiAgICAgICAgLnJvdXRlQ291bnQ9JHtTdHJpbmcodD8ucHJveHk/LnJvdXRlc3x8MCl9CiAgICAgICAgLmNlcnRpZmljYXRlQ291bnQ9JHtTdHJpbmcodD8ucHJveHk/LmNlcnRpZmljYXRlc3x8MCl9CiAgICAgICAgLnRhcmdldENvdW50PSR7U3RyaW5nKHRoaXMubmV0d29ya1N0YXRlLnRhcmdldHMubGVuZ3RoKX0KICAgICAgICAudGFyZ2V0cz0ke3RoaXMubmV0d29ya1N0YXRlLnRhcmdldHMubWFwKGE9Pih7dHlwZTphLnR5cGUsbmFtZTphLm5hbWUsZG9tYWluOmEuZG9tYWluLHRhcmdldDpgJHthLnRhcmdldEhvc3R9OiR7YS50YXJnZXRQb3J0fWAsc3RhdHVzOmEuc3RhdHVzfSkpfQogICAgICAgIC5sb2dzPSR7W119CiAgICAgICAgQHJlZnJlc2g9JHsoKT0+e1phLmRpc3BhdGNoQWN0aW9uKGJjdCxudWxsKSxaYS5kaXNwYXRjaEFjdGlvbih5SixudWxsKX19CiAgICAgID48L3N6LW5ldHdvcmstcHJveHktdmlldz4KICAgIGB9cmVuZGVyRG5zVmlldygpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RE5TIFJlY29yZHM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otbmV0d29yay1kbnMtdmlldwogICAgICAgIC5yZWNvcmRzPSR7dGhpcy5uZXR3b3JrU3RhdGUuZG5zUmVjb3Jkc30KICAgICAgICBAc3luYz0keygpPT57WmEuZGlzcGF0Y2hBY3Rpb24oc3phLG51bGwpfX0KICAgICAgICBAZGVsZXRlPSR7dD0+e2NvbnNvbGUubG9nKCJEZWxldGUgRE5TIHJlY29yZDoiLHQuZGV0YWlsKX19CiAgICAgID48L3N6LW5ldHdvcmstZG5zLXZpZXc+CiAgICBgfXJlbmRlckRvbWFpbnNWaWV3KCl7bGV0IHQ9dGhpcy5uZXR3b3JrU3RhdGUuY2VydGlmaWNhdGVzO3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RG9tYWluczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1uZXR3b3JrLWRvbWFpbnMtdmlldwogICAgICAgIC5kb21haW5zPSR7dGhpcy5uZXR3b3JrU3RhdGUuZG9tYWlucy5tYXAoYT0+e2xldCByPXQuZmluZChvPT5vLmNlcnREb21haW49PT1hLmRvbWFpbiksbj0icGVuZGluZyI7cmV0dXJuIHImJihyLmlzVmFsaWQ/ci5leHBpcmVzQXQmJnIuZXhwaXJlc0F0LURhdGUubm93KCk8NzIwKjYwKjYwKjFlMz9uPSJleHBpcmluZyI6bj0idmFsaWQiOm49ImV4cGlyZWQiKSx7ZG9tYWluOmEuZG9tYWluLHByb3ZpZGVyOiJjbG91ZGZsYXJlIixzZXJ2aWNlQ291bnQ6YS5zZXJ2aWNlcz8ubGVuZ3RofHwwLGNlcnRpZmljYXRlU3RhdHVzOm59fSl9CiAgICAgICAgQHN5bmM9JHsoKT0+e1phLmRpc3BhdGNoQWN0aW9uKHZjdCxudWxsKX19CiAgICAgICAgQHZpZXc9JHthPT57dGhpcy5zZWxlY3RlZERvbWFpbj1hLmRldGFpbC5kb21haW58fGEuZGV0YWlsLHRoaXMuY3VycmVudFRhYj0iZG9tYWluLWRldGFpbCJ9fQogICAgICA+PC9zei1uZXR3b3JrLWRvbWFpbnMtdmlldz4KICAgIGB9cmVuZGVyRG9tYWluRGV0YWlsVmlldygpe2xldCB0PXRoaXMubmV0d29ya1N0YXRlLmRvbWFpbnMuZmluZChyPT5yLmRvbWFpbj09PXRoaXMuc2VsZWN0ZWREb21haW4pLGE9dGhpcy5uZXR3b3JrU3RhdGUuY2VydGlmaWNhdGVzLmZpbmQocj0+ci5jZXJ0RG9tYWluPT09dGhpcy5zZWxlY3RlZERvbWFpbik7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW4gRGV0YWlsczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7dD97aWQ6dGhpcy5zZWxlY3RlZERvbWFpbixuYW1lOnRoaXMuc2VsZWN0ZWREb21haW4sc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiIn06bnVsbH0KICAgICAgICAuY2VydGlmaWNhdGU9JHthP3tpZDphLmRvbWFpbklkLGRvbWFpbjphLmNlcnREb21haW4saXNzdWVyOiJMZXQncyBFbmNyeXB0Iix2YWxpZEZyb206YS5pc3N1ZWRBdD9uZXcgRGF0ZShhLmlzc3VlZEF0KS50b0lTT1N0cmluZygpOiIiLHZhbGlkVW50aWw6YS5leHBpcmVzQXQ/bmV3IERhdGUoYS5leHBpcmVzQXQpLnRvSVNPU3RyaW5nKCk6IiIsZGF5c1JlbWFpbmluZzphLmV4cGlyZXNBdD9NYXRoLmZsb29yKChhLmV4cGlyZXNBdC1EYXRlLm5vdygpKS8oMTQ0MCo2MCoxZTMpKTowLHN0YXR1czphLmlzVmFsaWQ/InZhbGlkIjoiZXhwaXJlZCIsYXV0b1JlbmV3OiEwfTpudWxsfQogICAgICAgIC5kbnNSZWNvcmRzPSR7dGhpcy5uZXR3b3JrU3RhdGUuZG5zUmVjb3Jkcy5maWx0ZXIocj0+ci5kb21haW4/LmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWREb21haW4pKS5tYXAocj0+KHtpZDpyLmlkfHwiIix0eXBlOnIudHlwZSxuYW1lOnIuZG9tYWluLHZhbHVlOnIudmFsdWUsdHRsOjM2MDB9KSl9CiAgICAgICAgQHJlbmV3LWNlcnRpZmljYXRlPSR7KCk9PntaYS5kaXNwYXRjaEFjdGlvbihpemEse2RvbWFpbjp0aGlzLnNlbGVjdGVkRG9tYWlufSl9fQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICBgfX07aTE9UmkockNhKSxYY3Q9bmV3IFdlYWtNYXAsUWN0PW5ldyBXZWFrTWFwLEpjdD1uZXcgV2Vha01hcCxSdChpMSw0LCJuZXR3b3JrU3RhdGUiLGlDYSxpMCxYY3QpLFJ0KGkxLDQsImN1cnJlbnRUYWIiLHNDYSxpMCxRY3QpLFJ0KGkxLDQsInNlbGVjdGVkRG9tYWluIixhQ2EsaTAsSmN0KSxpMD1SdChpMSwwLCJPYlZpZXdOZXR3b3JrIixvQ2EsaTApLGkoaTAsIk9iVmlld05ldHdvcmsiKSx2aShpMCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLHlvLEpgYF0pLGl0KGkxLDEsaTApO2UxdD1pMH0pO3ZhciB1Q2E9e307eXQodUNhLHtPYlZpZXdEb21haW5zOigpPT5zMXR9KTt2YXIgbENhLGNDYSxkQ2EsangsYTF0LEM0LHMxdCxwQ2E9Zyhhc3luYygpPT57QjIoKTtsbCgpO2F3YWl0IGExKCk7cGUoKTtkQ2E9W25lKCJvYi12aWV3LWRvbWFpbnMiKV07QzQ9Y2xhc3MgQzQgZXh0ZW5kcyhjQ2E9d2UsbENhPVtZKCldLGNDYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsYTF0LGl0KGp4LDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksaXQoangsMTEsdGhpcyk7bGV0IHQ9WmEuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFphLmRpc3BhdGNoQWN0aW9uKHhjdCxudWxsKX1yZW5kZXIoKXtsZXQgdD10aGlzLm5ldHdvcmtTdGF0ZS5nYXRld2F5RG9tYWlucztyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkRvbWFpbnM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IGNsYXNzPSJtdXRlZCIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDE2cHg7Ij4KICAgICAgICBEb21haW5zIGFyZSBtYW5hZ2VkIGluIGRjcm91dGVyLiBPbmVib3ggc2hvd3MgZ2F0ZXdheSB2aXNpYmlsaXR5IGZvciBkZXBsb3llZCBzZXJ2aWNlcy4KICAgICAgPC9kaXY+CiAgICAgICR7dC5sZW5ndGg/d2AKICAgICAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgICAgICAuaGVhZGluZzE9JHsiR2F0ZXdheSBEb21haW5zIn0KICAgICAgICAgICAgICAuaGVhZGluZzI9JHsiRG9tYWlucyBpbXBvcnRlZCBmcm9tIGRjcm91dGVyIGdhdGV3YXkgdmlzaWJpbGl0eSJ9CiAgICAgICAgICAgICAgLmRhdGE9JHt0fQogICAgICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHthPT4oe0RvbWFpbjp3YAogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbiI+JHthLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgJHthLnByb3ZpZGVySWQ/d2A8ZGl2IGNsYXNzPSJtdXRlZCI+UHJvdmlkZXI6ICR7YS5wcm92aWRlcklkfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCxTb3VyY2U6d2A8c3BhbiBjbGFzcz0iYmFkZ2UiPiR7YS5zb3VyY2V8fCJkY3JvdXRlciJ9PC9zcGFuPmAsQXV0aG9yaXRhdGl2ZTphLmF1dGhvcml0YXRpdmU/IlllcyI6Ik5vIixTZXJ2aWNlczphLnNlcnZpY2VDb3VudHx8MH0pfQogICAgICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGVDdyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57YXdhaXQgWmEuZGlzcGF0Y2hBY3Rpb24oeGN0LG51bGwpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiTWFuYWdlIGluIGRjcm91dGVyIixpY29uTmFtZToibHVjaWRlOmV4dGVybmFsTGluayIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25SZWxldmFuY3lDaGVja0Z1bmM6aShhPT4hIWEubWFuYWdlVXJsLCJhY3Rpb25SZWxldmFuY3lDaGVja0Z1bmMiKSxhY3Rpb25GdW5jOmkoYXN5bmMgYT0+e2EuaXRlbS5tYW5hZ2VVcmwmJmdsb2JhbFRoaXMub3BlbihhLml0ZW0ubWFuYWdlVXJsLCJfYmxhbmsiLCJub29wZW5lciIpfSwiYWN0aW9uRnVuYyIpfV19CiAgICAgICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgICAgICBgOndgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGdhdGV3YXkgZG9tYWlucyBmb3VuZC4gQ29uZmlndXJlIGEgZGNyb3V0ZXIgZ2F0ZXdheSBpbiBTZXR0aW5ncy48L2Rpdj5gfQogICAgYH19O2p4PVJpKGNDYSksYTF0PW5ldyBXZWFrTWFwLFJ0KGp4LDQsIm5ldHdvcmtTdGF0ZSIsbENhLEM0LGExdCksQzQ9UnQoangsMCwiT2JWaWV3RG9tYWlucyIsZENhLEM0KSxpKEM0LCJPYlZpZXdEb21haW5zIiksdmkoQzQsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyx5byxKYAogICAgICAuZG9tYWluIHsgZm9udC13ZWlnaHQ6IDYwMDsgfQogICAgICAubXV0ZWQgeyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAuYmFkZ2UgeyBib3JkZXItcmFkaXVzOiA5OTlweDsgcGFkZGluZzogM3B4IDhweDsgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgI2Y0ZjRmNSk7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAuZW1wdHkgeyBwYWRkaW5nOiAzMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjNzE3MTdhKTsgfQogICAgYF0pLGl0KGp4LDEsQzQpO3MxdD1DNH0pO3ZhciBnQ2E9e307eXQoZ0NhLHtPYlZpZXdEbnNSZWNvcmRzOigpPT5yMXR9KTt2YXIgaENhLGZDYSxtQ2EsVngsaTF0LFQ0LHIxdCxiQ2E9Zyhhc3luYygpPT57QjIoKTtsbCgpO2F3YWl0IGExKCk7YXdhaXQgZzcoKTtwZSgpO21DYT1bbmUoIm9iLXZpZXctZG5zLXJlY29yZHMiKV07VDQ9Y2xhc3MgVDQgZXh0ZW5kcyhmQ2E9d2UsaENhPVtZKCldLGZDYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsaTF0LGl0KFZ4LDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksaXQoVngsMTEsdGhpcyk7bGV0IHQ9WmEuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFphLmRpc3BhdGNoQWN0aW9uKHljdCxudWxsKX1yZW5kZXIoKXtsZXQgdD10aGlzLm5ldHdvcmtTdGF0ZS5nYXRld2F5RG5zUmVjb3JkcztyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkROUyBSZWNvcmRzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgJHt0Lmxlbmd0aD93YAogICAgICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgICAgIC5oZWFkaW5nMT0keyJHYXRld2F5IEROUyBSZWNvcmRzIn0KICAgICAgICAgICAgICAuaGVhZGluZzI9JHsiRE5TIHJlY29yZHMgcHVibGlzaGVkIHRocm91Z2ggZGNyb3V0ZXIgZm9yIE9uZWJveCBzZXJ2aWNlcyJ9CiAgICAgICAgICAgICAgLmRhdGE9JHt0fQogICAgICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHthPT4oe05hbWU6d2AKICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lIj4ke2EubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAke2EuZG9tYWluTmFtZT93YDxkaXYgY2xhc3M9Im11dGVkIj4ke2EuZG9tYWluTmFtZX08L2Rpdj5gOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGAsVHlwZTp3YDxzcGFuIGNsYXNzPSJiYWRnZSI+JHthLnR5cGV9PC9zcGFuPmAsVmFsdWU6d2A8c3BhbiBjbGFzcz0idmFsdWUiPiR7YS52YWx1ZXx8Ii0ifTwvc3Bhbj5gLFN0YXR1czp3YDxzcGFuIGNsYXNzPSR7YS5zdGF0dXM9PT0ibWlzc2luZyI/Im1pc3NpbmciOiIifT4ke2Euc3RhdHVzfTwvc3Bhbj5gLFNlcnZpY2U6YS5zZXJ2aWNlTmFtZXx8YS5hcHBJZHx8Ii0ifSl9CiAgICAgICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOnJvdGF0ZUN3Iix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKCk9Pnthd2FpdCBaYS5kaXNwYXRjaEFjdGlvbih5Y3QsbnVsbCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJWaWV3IHNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6Ym94ZXMiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jKCk9PntkbC5uYXZpZ2F0ZVRvVmlldygic2VydmljZXMiKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6Ik1hbmFnZSBpbiBkY3JvdXRlciIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uUmVsZXZhbmN5Q2hlY2tGdW5jOmkoYT0+ISFhLm1hbmFnZVVybCwiYWN0aW9uUmVsZXZhbmN5Q2hlY2tGdW5jIiksYWN0aW9uRnVuYzppKGFzeW5jIGE9PnthLml0ZW0ubWFuYWdlVXJsJiZnbG9iYWxUaGlzLm9wZW4oYS5pdGVtLm1hbmFnZVVybCwiX2JsYW5rIiwibm9vcGVuZXIiKX0sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICAgICAgYDp3YDxkaXYgY2xhc3M9ImVtcHR5Ij5ObyBnYXRld2F5IEROUyByZWNvcmRzIGZvdW5kLiBDb25maWd1cmUgYSBkY3JvdXRlciBnYXRld2F5IGluIFNldHRpbmdzLjwvZGl2PmB9CiAgICBgfX07Vng9UmkoZkNhKSxpMXQ9bmV3IFdlYWtNYXAsUnQoVngsNCwibmV0d29ya1N0YXRlIixoQ2EsVDQsaTF0KSxUND1SdChWeCwwLCJPYlZpZXdEbnNSZWNvcmRzIixtQ2EsVDQpLGkoVDQsIk9iVmlld0Ruc1JlY29yZHMiKSx2aShUNCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLHlvLEpgCiAgICAgIC5uYW1lIHsgZm9udC13ZWlnaHQ6IDYwMDsgfQogICAgICAudmFsdWUgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IG92ZXJmbG93LXdyYXA6IGFueXdoZXJlOyB9CiAgICAgIC5tdXRlZCB7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjNzE3MTdhKTsgZm9udC1zaXplOiAxM3B4OyB9CiAgICAgIC5iYWRnZSB7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBwYWRkaW5nOiAzcHggOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjZjRmNGY1KTsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgIC5taXNzaW5nIHsgY29sb3I6ICNkYzI2MjY7IH0KICAgICAgLmVtcHR5IHsgcGFkZGluZzogMzJweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IH0KICAgIGBdKSxpdChWeCwxLFQ0KTtyMXQ9VDR9KTt2YXIga0NhPXt9O3l0KGtDYSx7T2JWaWV3UmVnaXN0cmllczooKT0+bDF0fSk7dmFyIHZDYSx4Q2EseUNhLHdDYSx0cCxvMXQsbjF0LGFwLGwxdCxjMXQ9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7YXdhaXQgZzcoKTtwZSgpO3dDYT1bbmUoIm9iLXZpZXctcmVnaXN0cmllcyIpXTthcD1jbGFzcyBhcCBleHRlbmRzKHlDYT13ZSx4Q2E9W1koKV0sdkNhPVtZKCldLHlDYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsbzF0LGl0KHRwLDgsdGhpcyx7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9KSksaXQodHAsMTEsdGhpcyk7ZWEodGhpcyxuMXQsaXQodHAsMTIsdGhpcywib25lYm94IikpLGl0KHRwLDE1LHRoaXMpO2xldCB0PXEyLnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMucmVnaXN0cmllc1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBxMi5kaXNwYXRjaEFjdGlvbihEMmUsbnVsbCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFRhYj09PSJleHRlcm5hbCI/dGhpcy5yZW5kZXJFeHRlcm5hbFZpZXcoKTp0aGlzLnJlbmRlck9uZWJveFZpZXcoKX1yZW5kZXJPbmVib3hWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5SZWdpc3RyaWVzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQKICAgICAgICAuc3RhdHVzPSR7InJ1bm5pbmcifQogICAgICAgIC5yZWdpc3RyeVVybD0keyJsb2NhbGhvc3Q6NTAwMCJ9CiAgICAgICAgQG1hbmFnZS10b2tlbnM9JHsoKT0+e2RsLm5hdmlnYXRlVG9WaWV3KCJ0b2tlbnMiKX19CiAgICAgID48L3N6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQ+CiAgICBgfXJlbmRlckV4dGVybmFsVmlldygpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RXh0ZXJuYWwgUmVnaXN0cmllczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3CiAgICAgICAgLnJlZ2lzdHJpZXM9JHtbXX0KICAgICAgICBAYWRkPSR7dD0+e2NvbnNvbGUubG9nKCJBZGQgZXh0ZXJuYWwgcmVnaXN0cnk6Iix0LmRldGFpbCl9fQogICAgICA+PC9zei1yZWdpc3RyeS1leHRlcm5hbC12aWV3PgogICAgYH19O3RwPVJpKHlDYSksbzF0PW5ldyBXZWFrTWFwLG4xdD1uZXcgV2Vha01hcCxSdCh0cCw0LCJyZWdpc3RyaWVzU3RhdGUiLHhDYSxhcCxvMXQpLFJ0KHRwLDQsImN1cnJlbnRUYWIiLHZDYSxhcCxuMXQpLGFwPVJ0KHRwLDAsIk9iVmlld1JlZ2lzdHJpZXMiLHdDYSxhcCksaShhcCwiT2JWaWV3UmVnaXN0cmllcyIpLHZpKGFwLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMseW8sSmBgXSksaXQodHAsMSxhcCk7bDF0PWFwfSk7dmFyIHpDYT17fTt5dCh6Q2Ese09iVmlld1Rva2VuczooKT0+dTF0fSk7dmFyIFNDYSxfQ2EsTUNhLFV4LGQxdCwkNCx1MXQscDF0PWcoYXN5bmMoKT0+e2xsKCk7QjIoKTthd2FpdCBhMSgpO3BlKCk7TUNhPVtuZSgib2Itdmlldy10b2tlbnMiKV07JDQ9Y2xhc3MgJDQgZXh0ZW5kcyhfQ2E9d2UsU0NhPVtZKCldLF9DYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsZDF0LGl0KFV4LDgsdGhpcyx7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9KSksaXQoVXgsMTEsdGhpcyk7bGV0IHQ9cTIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5yZWdpc3RyaWVzU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHEyLmRpc3BhdGNoQWN0aW9uKEQyZSxudWxsKX1yZW5kZXIoKXtsZXQgdD10aGlzLnJlZ2lzdHJpZXNTdGF0ZS50b2tlbnMuZmlsdGVyKHI9PnIudHlwZT09PSJnbG9iYWwiKSxhPXRoaXMucmVnaXN0cmllc1N0YXRlLnRva2Vucy5maWx0ZXIocj0+ci50eXBlPT09ImNpIik7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Ub2tlbnM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otdG9rZW5zLXZpZXcKICAgICAgICAuZ2xvYmFsVG9rZW5zPSR7dC5tYXAocj0+KHtpZDpyLmlkLG5hbWU6ci5uYW1lLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OnIuY3JlYXRlZEF0LGxhc3RVc2VkOnIubGFzdFVzZWR9KSl9CiAgICAgICAgLmNpVG9rZW5zPSR7YS5tYXAocj0+KHtpZDpyLmlkLG5hbWU6ci5uYW1lLHR5cGU6ImNpIixzZXJ2aWNlOnIuc2VydmljZSxjcmVhdGVkQXQ6ci5jcmVhdGVkQXQsbGFzdFVzZWQ6ci5sYXN0VXNlZH0pKX0KICAgICAgICBAY3JlYXRlPSR7cj0+e3EyLmRpc3BhdGNoQWN0aW9uKHJ6YSx7dG9rZW46e25hbWU6YG5ldy0ke3IuZGV0YWlsLnR5cGV9LXRva2VuYCx0eXBlOnIuZGV0YWlsLnR5cGUscGVybWlzc2lvbnM6WyJwdWxsIl19fSl9fQogICAgICAgIEBkZWxldGU9JHtyPT57cTIuZGlzcGF0Y2hBY3Rpb24ob3phLHt0b2tlbklkOnIuZGV0YWlsLmlkfHxyLmRldGFpbC50b2tlbklkfSl9fQogICAgICA+PC9zei10b2tlbnMtdmlldz4KICAgIGB9fTtVeD1SaShfQ2EpLGQxdD1uZXcgV2Vha01hcCxSdChVeCw0LCJyZWdpc3RyaWVzU3RhdGUiLFNDYSwkNCxkMXQpLCQ0PVJ0KFV4LDAsIk9iVmlld1Rva2VucyIsTUNhLCQ0KSxpKCQ0LCJPYlZpZXdUb2tlbnMiKSx2aSgkNCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLHlvLEpgYF0pLGl0KFV4LDEsJDQpO3UxdD0kNH0pO3ZhciBMQ2E9e307eXQoTENhLHtPYlZpZXdTZXR0aW5nczooKT0+bTF0fSk7dmFyIENDYSxUQ2EsJENhLERDYSxzcCxoMXQsZjF0LGlwLG0xdCxnMXQ9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7cGUoKTtEQ2E9W25lKCJvYi12aWV3LXNldHRpbmdzIildO2lwPWNsYXNzIGlwIGV4dGVuZHMoJENhPXdlLFRDYT1bWSgpXSxDQ2E9W1koKV0sJENhKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7ZWEodGhpcyxoMXQsaXQoc3AsOCx0aGlzLHtzZXR0aW5nczpudWxsLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDohMSxtYW5hZ2VkRGNSb3V0ZXJTdGF0dXM6bnVsbH0pKSxpdChzcCwxMSx0aGlzKTtlYSh0aGlzLGYxdCxpdChzcCwxMix0aGlzLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9KSksaXQoc3AsMTUsdGhpcyk7bGV0IHQ9c28uc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5zZXR0aW5nc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpO2xldCBhPVFpLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMubG9naW5TdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChhKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgc28uZGlzcGF0Y2hBY3Rpb24od2N0LG51bGwpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+U2V0dGluZ3M8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAke3RoaXMucmVuZGVyQWRtaW5VaVNldHRpbmdzKCl9CiAgICAgICR7dGhpcy5yZW5kZXJFeHRlcm5hbEdhdGV3YXlTZXR0aW5ncygpfQogICAgICA8c3otc2V0dGluZ3MtdmlldwogICAgICAgIC5zZXR0aW5ncz0ke3RoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5nc3x8e2RhcmtNb2RlOiEwLGNsb3VkZmxhcmVUb2tlbjoiIixjbG91ZGZsYXJlWm9uZUlkOiIiLGFkbWluVWlEb21haW46IiIsZGNyb3V0ZXJNb2RlOiJtYW5hZ2VkIixkY3JvdXRlck1hbmFnZWRJbWFnZToiY29kZS5mb3NzLmdsb2JhbC9zZXJ2ZS56b25lL2Rjcm91dGVyOmxhdGVzdCIsZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydDozMzAwLGRjcm91dGVyTWFuYWdlZEh0dHBQb3J0OjgwLGRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydDo0NDMsZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcjoiLi8ubm9naXQvZGNyb3V0ZXItZGF0YSIsZGNyb3V0ZXJHYXRld2F5Q2xpZW50SWQ6IiIsZGNyb3V0ZXJXb3JrSG9zdGVySWQ6IiIsYXV0b1JlbmV3Q2VydHM6ITEscmVuZXdhbFRocmVzaG9sZDozMCxhY21lRW1haWw6IiIsaHR0cFBvcnQ6ODAsaHR0cHNQb3J0OjQ0Myxmb3JjZUh0dHBzOiExfX0KICAgICAgICAuY3VycmVudFVzZXI9JHt0aGlzLmxvZ2luU3RhdGUuaWRlbnRpdHk/LnVzZXJuYW1lfHwiYWRtaW4ifQogICAgICAgIEBzZXR0aW5nLWNoYW5nZT0ke3Q9PntsZXR7a2V5OmEsdmFsdWU6cn09dC5kZXRhaWw7c28uZGlzcGF0Y2hBY3Rpb24oa0ose3NldHRpbmdzOntbYV06cn19KX19CiAgICAgICAgQHNhdmU9JHt0PT57c28uZGlzcGF0Y2hBY3Rpb24oa0ose3NldHRpbmdzOnQuZGV0YWlsfSl9fQogICAgICAgIEBjaGFuZ2UtcGFzc3dvcmQ9JHt0PT57Y29uc29sZS5sb2coIkNoYW5nZSBwYXNzd29yZCByZXF1ZXN0ZWQ6Iix0LmRldGFpbCl9fQogICAgICAgIEByZXNldD0keygpPT57c28uZGlzcGF0Y2hBY3Rpb24od2N0LG51bGwpfX0KICAgICAgPjwvc3otc2V0dGluZ3Mtdmlldz4KICAgIGB9cmVuZGVyQWRtaW5VaVNldHRpbmdzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iZ2F0ZXdheS1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktdGl0bGUiPk9uZWJveCBBZG1pbiBVSTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktc3VidGl0bGUiPkNvbmZpZ3VyZSB0aGUgcHVibGljIGhvc3RuYW1lIGZvciB0aGlzIE9uZWJveCBkYXNoYm9hcmQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWNvbnRlbnQiPgogICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiYWRtaW5VaURvbWFpbiIsIkFkbWluIFVJIERvbWFpbiIsdD8uYWRtaW5VaURvbWFpbnx8IiIsIkV4YW1wbGU6IG9uZWJveC5leGFtcGxlLmNvbS4gTGVhdmUgZW1wdHkgdG8gZGlzYWJsZSB0aGUgcHVibGljIEFkbWluIFVJIHJvdXRlLiIpfQogICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlSZWFkb25seSgiTG9jYWwgVGFyZ2V0IiwiT25lYm94IE9wc1NlcnZlciBvbiBwb3J0IDMwMDAiLCJUaGUgZXh0ZXJuYWwgZ2F0ZXdheSBmb3J3YXJkcyB0byBTbWFydFByb3h5LCB3aGljaCBmb3J3YXJkcyB0aGlzIGhvc3RuYW1lIHRvIHRoZSBPbmVib3ggQWRtaW4gVUkuIil9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJnYXRld2F5LWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiB0eXBlPSJidXR0b24iIEBjbGljaz0keygpPT50aGlzLnNhdmVBZG1pblVpU2V0dGluZ3MoKX0+CiAgICAgICAgICAgIFNhdmUgQWRtaW4gVUkgRG9tYWluCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlckV4dGVybmFsR2F0ZXdheVNldHRpbmdzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzLGE9dD8uZGNyb3V0ZXJNb2RlfHwibWFuYWdlZCI7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJnYXRld2F5LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2F0ZXdheS10aXRsZSI+ZGNyb3V0ZXIgR2F0ZXdheTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktc3VidGl0bGUiPlJ1biBhIGxvY2FsIG1hbmFnZWQgZGNyb3V0ZXIgb3IgZGVsZWdhdGUgcm91dGluZyB0byBhbiBleHRlcm5hbCBkY3JvdXRlcjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktbW9kZS1yb3ciPgogICAgICAgICAgJHt0aGlzLnJlbmRlck1vZGVCdXR0b24oIm1hbmFnZWQiLCJNYW5hZ2VkIExvY2FsIixhKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJleHRlcm5hbCIsIkV4dGVybmFsIGRjcm91dGVyIixhKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJkaXNhYmxlZCIsIkRpc2FibGVkIixhKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke2E9PT0ibWFuYWdlZCI/dGhpcy5yZW5kZXJNYW5hZ2VkR2F0ZXdheVN0YXR1cygpOm51bGx9CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1jb250ZW50Ij4KICAgICAgICAgICR7YT09PSJtYW5hZ2VkIj93YAogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlck1hbmFnZWRJbWFnZSIsImRjcm91dGVyIEltYWdlIix0Py5kY3JvdXRlck1hbmFnZWRJbWFnZXx8ImNvZGUuZm9zcy5nbG9iYWwvc2VydmUuem9uZS9kY3JvdXRlcjpsYXRlc3QiLCJPQ0kgaW1hZ2UgdXNlZCBmb3IgdGhlIG1hbmFnZWQgbG9jYWwgZ2F0ZXdheS4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkRGF0YURpciIsIkRhdGEgRGlyZWN0b3J5Iix0Py5kY3JvdXRlck1hbmFnZWREYXRhRGlyfHwiLi8ubm9naXQvZGNyb3V0ZXItZGF0YSIsIkhvc3QgZGlyZWN0b3J5IG1vdW50ZWQgaW50byB0aGUgZGNyb3V0ZXIgY29udGFpbmVyLiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlck1hbmFnZWRPcHNQb3J0IiwiTG9jYWwgT3BzIFBvcnQiLFN0cmluZyh0Py5kY3JvdXRlck1hbmFnZWRPcHNQb3J0fHwzMzAwKSwiQm91bmQgdG8gMTI3LjAuMC4xIGZvciBPbmVib3ggdG8gY2FsbCBkY3JvdXRlciBBUElzLiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlck1hbmFnZWRIdHRwUG9ydCIsIlB1YmxpYyBIVFRQIFBvcnQiLFN0cmluZyh0Py5kY3JvdXRlck1hbmFnZWRIdHRwUG9ydHx8ODApLCJIb3N0IHBvcnQgb3duZWQgYnkgZGNyb3V0ZXIgZm9yIEhUVFAgaW5ncmVzcy4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0IiwiUHVibGljIEhUVFBTIFBvcnQiLFN0cmluZyh0Py5kY3JvdXRlck1hbmFnZWRIdHRwc1BvcnR8fDQ0MyksIkhvc3QgcG9ydCBvd25lZCBieSBkY3JvdXRlciBmb3IgSFRUUFMgaW5ncmVzcy4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlSZWFkb25seSgiR2F0ZXdheSBDbGllbnQgSUQiLHQ/LmRjcm91dGVyR2F0ZXdheUNsaWVudElkfHx0Py5kY3JvdXRlcldvcmtIb3N0ZXJJZHx8IkNyZWF0ZWQgd2hlbiBtYW5hZ2VkIGRjcm91dGVyIHN0YXJ0cyIsIkRpYWdub3N0aWMgb25seS4gT25lYm94IG1hbmFnZXMgdGhpcyBsb2NhbCBjbGllbnQgYXV0b21hdGljYWxseS4iKX0KICAgICAgICAgIGA6YT09PSJleHRlcm5hbCI/d2AKICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJHYXRld2F5VXJsIiwiR2F0ZXdheSBVUkwiLHQ/LmRjcm91dGVyR2F0ZXdheVVybHx8IiIsIkJhc2UgVVJMIG9mIHRoZSBkY3JvdXRlciBPcHNTZXJ2ZXIuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyR2F0ZXdheUFwaVRva2VuIiwiQVBJIFRva2VuIix0Py5kY3JvdXRlckdhdGV3YXlBcGlUb2tlbnx8IiIsIlJlcXVpcmVzIGdhdGV3YXktY2xpZW50IGFjY2VzcyBpbiBkY3JvdXRlci4iLCEwKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlSZWFkb25seSgiR2F0ZXdheSBDbGllbnQgSUQiLHQ/LmRjcm91dGVyR2F0ZXdheUNsaWVudElkfHx0Py5kY3JvdXRlcldvcmtIb3N0ZXJJZHx8IkRlcml2ZWQgZnJvbSB0b2tlbiIsIkNvbmZpZ3VyZSB0aGlzIGluIGRjcm91dGVyIEdhdGV3YXkgQ2xpZW50cywgbm90IGluIE9uZWJveC4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJUYXJnZXRIb3N0IiwiVGFyZ2V0IEhvc3QiLHQ/LmRjcm91dGVyVGFyZ2V0SG9zdHx8IiIsIkRlZmF1bHRzIHRvIHRoZSBjb25maWd1cmVkIHNlcnZlciBJUCB3aGVuIGVtcHR5LiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlclRhcmdldFBvcnQiLCJUYXJnZXQgUG9ydCIsU3RyaW5nKHQ/LmRjcm91dGVyVGFyZ2V0UG9ydHx8ODApLCJJbnRlcm5hbCBIVFRQIHBvcnQgZGNyb3V0ZXIgZm9yd2FyZHMgdG8uIil9CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktZGlzYWJsZWQiPmRjcm91dGVyIHJvdXRlIGRlbGVnYXRpb24gaXMgZGlzYWJsZWQuIE9uZWJveCB3aWxsIGtlZXAgdXNpbmcgaXRzIGxvY2FsIFNtYXJ0UHJveHkgZGlyZWN0bHkuPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZ2F0ZXdheS1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgdHlwZT0iYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKX0+CiAgICAgICAgICAgIFNhdmUgZGNyb3V0ZXIgU2V0dGluZ3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyTW9kZUJ1dHRvbih0LGEscil7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0iZ2F0ZXdheS1tb2RlLWJ1dHRvbiAke3I9PT10PyJhY3RpdmUiOiIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy51cGRhdGVHYXRld2F5RHJhZnQoImRjcm91dGVyTW9kZSIsdCl9CiAgICAgID4ke2F9PC9idXR0b24+CiAgICBgfXJlbmRlck1hbmFnZWRHYXRld2F5U3RhdHVzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLm1hbmFnZWREY1JvdXRlclN0YXR1cyxhPXQ/LnJ1bm5pbmc/dC5oZWFsdGh5PyJSdW5uaW5nIjoiU3RhcnRpbmciOiJTdG9wcGVkIjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1zdGF0dXMtcm93Ij4KICAgICAgICA8ZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1zdGF0dXMtbGFiZWwiPk1hbmFnZWQgZGNyb3V0ZXI8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktc3RhdHVzLXZhbHVlIj4ke2F9JHt0Py5nYXRld2F5VXJsP2AgYXQgJHt0LmdhdGV3YXlVcmx9YDoiIn08L2Rpdj4KICAgICAgICAgICR7dD8ubWVzc2FnZT93YDxkaXYgY2xhc3M9ImdhdGV3YXktc3RhdHVzLWVycm9yIj4ke3QubWVzc2FnZX08L2Rpdj5gOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1hY3Rpb25zIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJTdGFydCJ9IC50eXBlPSR7ImRlZmF1bHQifSBAY2xpY2s9JHsoKT0+c28uZGlzcGF0Y2hBY3Rpb24odXphLG51bGwpfT48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIC50ZXh0PSR7IlJlc3RhcnQifSAudHlwZT0keyJkZWZhdWx0In0gQGNsaWNrPSR7KCk9PnNvLmRpc3BhdGNoQWN0aW9uKGh6YSxudWxsKX0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJTdG9wIn0gLnR5cGU9JHsiZGVmYXVsdCJ9IEBjbGljaz0keygpPT5zby5kaXNwYXRjaEFjdGlvbihwemEsbnVsbCl9PjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJHYXRld2F5SW5wdXQodCxhLHIsbixvPSExKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1maWVsZCAke3Q9PT0iZGNyb3V0ZXJHYXRld2F5VXJsInx8dD09PSJhZG1pblVpRG9tYWluIj8iZnVsbCI6IiJ9Ij4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAua2V5PSR7dH0KICAgICAgICAgIC5sYWJlbD0ke2F9CiAgICAgICAgICAudmFsdWU9JHtyfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7bn0KICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0ke299CiAgICAgICAgICBAaW5wdXQ9JHtsPT50aGlzLnVwZGF0ZUdhdGV3YXlEcmFmdCh0LGwudGFyZ2V0LnZhbHVlKX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJHYXRld2F5UmVhZG9ubHkodCxhLHIpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXJlYWRvbmx5Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXJlYWRvbmx5LWxhYmVsIj4ke3R9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1yZWFkb25seS12YWx1ZSI+JHthfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktcmVhZG9ubHktaGludCI+JHtyfTwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9dXBkYXRlR2F0ZXdheURyYWZ0KHQsYSl7bGV0IHI9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzfHx7fSxvPW5ldyBTZXQoWyJkY3JvdXRlclRhcmdldFBvcnQiLCJkY3JvdXRlck1hbmFnZWRPcHNQb3J0IiwiZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnQiLCJkY3JvdXRlck1hbmFnZWRIdHRwc1BvcnQiXSkuaGFzKHQpP051bWJlcihhKXx8MDphO3RoaXMuc2V0dGluZ3NTdGF0ZT17Li4udGhpcy5zZXR0aW5nc1N0YXRlLHNldHRpbmdzOnsuLi5yLFt0XTpvfX19YXN5bmMgc2F2ZUV4dGVybmFsR2F0ZXdheVNldHRpbmdzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzO3QmJihhd2FpdCBzby5kaXNwYXRjaEFjdGlvbihrSix7c2V0dGluZ3M6e2Rjcm91dGVyTW9kZTp0LmRjcm91dGVyTW9kZXx8Im1hbmFnZWQiLGRjcm91dGVyTWFuYWdlZEltYWdlOnQuZGNyb3V0ZXJNYW5hZ2VkSW1hZ2V8fCJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IixkY3JvdXRlck1hbmFnZWRPcHNQb3J0Ok51bWJlcih0LmRjcm91dGVyTWFuYWdlZE9wc1BvcnQpfHwzMzAwLGRjcm91dGVyTWFuYWdlZEh0dHBQb3J0Ok51bWJlcih0LmRjcm91dGVyTWFuYWdlZEh0dHBQb3J0KXx8ODAsZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0Ok51bWJlcih0LmRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCl8fDQ0MyxkY3JvdXRlck1hbmFnZWREYXRhRGlyOnQuZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcnx8Ii4vLm5vZ2l0L2Rjcm91dGVyLWRhdGEiLGRjcm91dGVyR2F0ZXdheVVybDp0LmRjcm91dGVyR2F0ZXdheVVybHx8IiIsZGNyb3V0ZXJHYXRld2F5QXBpVG9rZW46dC5kY3JvdXRlckdhdGV3YXlBcGlUb2tlbnx8IiIsZGNyb3V0ZXJUYXJnZXRIb3N0OnQuZGNyb3V0ZXJUYXJnZXRIb3N0fHwiIixkY3JvdXRlclRhcmdldFBvcnQ6TnVtYmVyKHQuZGNyb3V0ZXJUYXJnZXRQb3J0KXx8ODB9fSksYXdhaXQgc28uZGlzcGF0Y2hBY3Rpb24oZHphLG51bGwpKX1hc3luYyBzYXZlQWRtaW5VaVNldHRpbmdzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzO3QmJmF3YWl0IHNvLmRpc3BhdGNoQWN0aW9uKGtKLHtzZXR0aW5nczp7YWRtaW5VaURvbWFpbjp0LmFkbWluVWlEb21haW58fCIifX0pfX07c3A9UmkoJENhKSxoMXQ9bmV3IFdlYWtNYXAsZjF0PW5ldyBXZWFrTWFwLFJ0KHNwLDQsInNldHRpbmdzU3RhdGUiLFRDYSxpcCxoMXQpLFJ0KHNwLDQsImxvZ2luU3RhdGUiLENDYSxpcCxmMXQpLGlwPVJ0KHNwLDAsIk9iVmlld1NldHRpbmdzIixEQ2EsaXApLGkoaXAsIk9iVmlld1NldHRpbmdzIiksdmkoaXAsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyx5byxKYAogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmdhdGV3YXktY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtcm93LAogICAgICAuZ2F0ZXdheS1zdGF0dXMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktbW9kZS1yb3cgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktbW9kZS1idXR0b24gewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2Q0ZDRkOCIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250OiBpbmhlcml0OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmdhdGV3YXktbW9kZS1idXR0b24uYWN0aXZlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsIiMxNzI1NTQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiI2JmZGJmZSIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktc3RhdHVzLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXN0YXR1cy12YWx1ZSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdGF0dXMtZXJyb3IsCiAgICAgIC5nYXRld2F5LWRpc2FibGVkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNiOTFjMWMiLCIjZmNhNWE1Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktZGlzYWJsZWQgewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWZpZWxkLmZ1bGwgewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXJlYWRvbmx5IHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXJlYWRvbmx5LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM1MjUyNWIiLCIjZDRkNGQ4Iil9OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1yZWFkb25seS12YWx1ZSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktcmVhZG9ubHktaGludCB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgICAgIC5nYXRld2F5LWNvbnRlbnQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQoKICAgICAgICAuZ2F0ZXdheS1zdGF0dXMtcm93IHsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdKSxpdChzcCwxLGlwKTttMXQ9aXB9KTtsbCgpO2F3YWl0IGExKCk7RngoKTthd2FpdCBnNygpO3BlKCk7dmFyIFBDYSxJQ2EsQUNhLE5DYSxSQ2EsT0NhLEZDYSxCQ2EseXIsYjF0LHYxdCx4MXQseTF0LHcxdCxrMXQ7QkNhPVtuZSgib2ItYXBwLXNoZWxsIildO3ZhciBnYz1jbGFzcyBnYyBleHRlbmRzKEZDYT13ZSxPQ2E9W1koKV0sUkNhPVtZKCldLE5DYT1bWSgpXSxBQ2E9W1koKV0sSUNhPVtZKCldLFBDYT1bWSgpXSxGQ2Epe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtlYSh0aGlzLGIxdCxpdCh5ciw4LHRoaXMse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0pKSxpdCh5ciwxMSx0aGlzKTtlYSh0aGlzLHYxdCxpdCh5ciwxMix0aGlzLHthY3RpdmVWaWV3OiJkYXNoYm9hcmQiLGFjdGl2ZVN1YnZpZXc6bnVsbCxhdXRvUmVmcmVzaDohMCxyZWZyZXNoSW50ZXJ2YWw6M2U0fSkpLGl0KHlyLDE1LHRoaXMpO2VhKHRoaXMseDF0LGl0KHlyLDE2LHRoaXMse3N0YXR1czpudWxsfSkpLGl0KHlyLDE5LHRoaXMpO2VhKHRoaXMseTF0LGl0KHlyLDIwLHRoaXMsW10pKSxpdCh5ciwyMyx0aGlzKTtlYSh0aGlzLHcxdCxpdCh5ciwyNCx0aGlzLCExKSksaXQoeXIsMjcsdGhpcyk7ZWEodGhpcyxrMXQsaXQoeXIsMjgsdGhpcywiIikpLGl0KHlyLDMxLHRoaXMpO3ZpKHRoaXMsInZpZXdUYWJzIixbe3NsdWc6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFRjdCgpLnRoZW4oKCk9PkN6YSkpLk9iVmlld0Rhc2hib2FyZCkoKX0se3NsdWc6ImFwcHMiLG5hbWU6IkFwcHMiLGljb25OYW1lOiJsdWNpZGU6c3RvcmUiLHN1YlZpZXdzOlt7c2x1ZzoiYXBwLXN0b3JlIixuYW1lOiJBcHAgU3RvcmUiLGljb25OYW1lOiJsdWNpZGU6c3RvcmUiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBxemEoKS50aGVuKCgpPT5IemEpKS5PYlZpZXdBcHBTdG9yZSkoKX0se3NsdWc6InNlcnZpY2VzIixuYW1lOiJTZXJ2aWNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpib3hlcyIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFpjdCgpLnRoZW4oKCk9PnRDYSkpLk9iVmlld1NlcnZpY2VzKSgpfV19LHtzbHVnOiJuZXR3b3JrIixuYW1lOiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOm5ldHdvcmsiLHN1YlZpZXdzOlt7c2x1ZzoicHJveHkiLG5hbWU6IlByb3h5IixpY29uTmFtZToibHVjaWRlOnJvdXRlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgdDF0KCkudGhlbigoKT0+bkNhKSkuT2JWaWV3TmV0d29yaykoKX0se3NsdWc6ImRvbWFpbnMiLG5hbWU6IkRvbWFpbnMiLGljb25OYW1lOiJsdWNpZGU6Z2xvYmUiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBwQ2EoKS50aGVuKCgpPT51Q2EpKS5PYlZpZXdEb21haW5zKSgpfSx7c2x1ZzoiZG5zLXJlY29yZHMiLG5hbWU6IkROUyBSZWNvcmRzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgYkNhKCkudGhlbigoKT0+Z0NhKSkuT2JWaWV3RG5zUmVjb3JkcykoKX1dfSx7c2x1ZzoicmVnaXN0cnkiLG5hbWU6IlJlZ2lzdHJ5IixpY29uTmFtZToibHVjaWRlOnBhY2thZ2UiLHN1YlZpZXdzOlt7c2x1ZzoicmVnaXN0cmllcyIsbmFtZToiUmVnaXN0cmllcyIsaWNvbk5hbWU6Imx1Y2lkZTpwYWNrYWdlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgYzF0KCkudGhlbigoKT0+a0NhKSkuT2JWaWV3UmVnaXN0cmllcykoKX0se3NsdWc6InRva2VucyIsbmFtZToiVG9rZW5zIixpY29uTmFtZToibHVjaWRlOmtleSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IHAxdCgpLnRoZW4oKCk9PnpDYSkpLk9iVmlld1Rva2VucykoKX1dfSx7c2x1Zzoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgZzF0KCkudGhlbigoKT0+TENhKSkuT2JWaWV3U2V0dGluZ3MpKCl9XSk7dmkodGhpcywicmVzb2x2ZWRWaWV3VGFicyIsW10pO3ZpKHRoaXMsInN1cHByZXNzZWRVcGRhdGVWZXJzaW9uIiwiIik7dmkodGhpcywidXBncmFkZUZsb3dSdW5uaW5nIiwhMSk7ZG9jdW1lbnQudGl0bGU9Ik9uZWJveCI7bGV0IHQ9UWkuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5sb2dpblN0YXRlPW4sdGhpcy51cGRhdGVHbG9iYWxNZXNzYWdlcygpLG4uaXNMb2dnZWRJbiYmYTAuZGlzcGF0Y2hBY3Rpb24oSHgsbnVsbCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpO2xldCBhPWEwLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuc3lzdGVtU3RhdGU9bix0aGlzLnVwZGF0ZUdsb2JhbE1lc3NhZ2VzKCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCByPW1jLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMudWlTdGF0ZT1uLHRoaXMuc3luY0FwcGRhc2hWaWV3KG4uYWN0aXZlVmlldyxuLmFjdGl2ZVN1YnZpZXcpfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChyKX1hc3luYyByZXNvbHZlVmlld1RhYnModCl7cmV0dXJuIFByb21pc2UuYWxsKHQubWFwKGFzeW5jIGE9PntsZXQgcj17c2x1ZzphLnNsdWcsbmFtZTphLm5hbWUsaWNvbk5hbWU6YS5pY29uTmFtZX07cmV0dXJuIGEuZWxlbWVudCYmKHIuZWxlbWVudD1hd2FpdCBhLmVsZW1lbnQpLGEuc3ViVmlld3MmJihyLnN1YlZpZXdzPWF3YWl0IHRoaXMucmVzb2x2ZVZpZXdUYWJzKGEuc3ViVmlld3MpKSxyfSkpfXNsdWdGb3IodCl7cmV0dXJuIHQuc2x1Zz8/dC5uYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKX1maW5kUGFyZW50KHQpe3JldHVybiB0aGlzLnJlc29sdmVkVmlld1RhYnMuZmluZChhPT5hLnN1YlZpZXdzPy5pbmNsdWRlcyh0KSl9ZmluZFZpZXdCeVNsdWcodCxhKXtsZXQgcj10aGlzLnJlc29sdmVkVmlld1RhYnMuZmluZChuPT50aGlzLnNsdWdGb3Iobik9PT10KTtpZihyKXJldHVybiBhJiZyLnN1YlZpZXdzP3Iuc3ViVmlld3MuZmluZChuPT50aGlzLnNsdWdGb3Iobik9PT1hKT8/cjpyfWdldCBjdXJyZW50Vmlld1RhYigpe2lmKHRoaXMucmVzb2x2ZWRWaWV3VGFicy5sZW5ndGghPT0wKXJldHVybiB0aGlzLmZpbmRWaWV3QnlTbHVnKHRoaXMudWlTdGF0ZS5hY3RpdmVWaWV3LHRoaXMudWlTdGF0ZS5hY3RpdmVTdWJ2aWV3KT8/dGhpcy5yZXNvbHZlZFZpZXdUYWJzWzBdfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1zaW1wbGUtbG9naW4gbmFtZT0iT25lYm94Ij4KICAgICAgICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgICAgICAgIG5hbWU9Ik9uZWJveCIKICAgICAgICAgICAgLnZpZXdUYWJzPSR7dGhpcy5yZXNvbHZlZFZpZXdUYWJzfQogICAgICAgICAgICAuc2VsZWN0ZWRWaWV3PSR7dGhpcy5jdXJyZW50Vmlld1RhYn0KICAgICAgICAgICAgLmdsb2JhbE1lc3NhZ2VzPSR7dGhpcy5nbG9iYWxNZXNzYWdlc30KICAgICAgICAgID4KICAgICAgICAgIDwvZGVlcy1zaW1wbGUtYXBwZGFzaD4KICAgICAgICA8L2RlZXMtc2ltcGxlLWxvZ2luPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5yZXNvbHZlZFZpZXdUYWJzPWF3YWl0IHRoaXMucmVzb2x2ZVZpZXdUYWJzKHRoaXMudmlld1RhYnMpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IHQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWxvZ2luIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJsb2dpbiIsbj0+e3RoaXMubG9naW4obi5kZXRhaWwuZGF0YS51c2VybmFtZSxuLmRldGFpbC5kYXRhLnBhc3N3b3JkKX0pO2xldCBhPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1hcHBkYXNoIik7aWYoYSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigidmlldy1zZWxlY3QiLG49PntsZXQgbz1uLmRldGFpbC52aWV3LGw9dGhpcy5maW5kUGFyZW50KG8pLHA9bWMuZ2V0U3RhdGUoKTtpZihsKXtsZXQgZD10aGlzLnNsdWdGb3IobCksdT10aGlzLnNsdWdGb3Iobyk7aWYocC5hY3RpdmVWaWV3PT09ZCYmcC5hY3RpdmVTdWJ2aWV3PT09dSlyZXR1cm47ZGwubmF2aWdhdGVUb1ZpZXcoZCx1KX1lbHNle2xldCBkPXRoaXMuc2x1Z0ZvcihvKTtpZihwLmFjdGl2ZVZpZXc9PT1kJiYhcC5hY3RpdmVTdWJ2aWV3KXJldHVybjtkbC5uYXZpZ2F0ZVRvVmlldyhkKX19KSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvZ291dCIsYXN5bmMoKT0+e2F3YWl0IFFpLmRpc3BhdGNoQWN0aW9uKE0yZSxudWxsKX0pKSxhJiZ0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPjApe2xldCBuPW1jLmdldFN0YXRlKCksbz10aGlzLmZpbmRWaWV3QnlTbHVnKG4uYWN0aXZlVmlldyxuLmFjdGl2ZVN1YnZpZXcpfHx0aGlzLnJlc29sdmVkVmlld1RhYnNbMF07YXdhaXQgYS5sb2FkVmlldyhvKX1sZXQgcj1RaS5nZXRTdGF0ZSgpO2lmKHIuaWRlbnRpdHk/Lmp3dClpZihyLmlkZW50aXR5LmV4cGlyZXNBdD5EYXRlLm5vdygpKXt0aGlzLmxvZ2luU3RhdGU9cix0JiZhd2FpdCB0LnN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKTt0cnl7bGV0IG89YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFN5c3RlbVN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHl9KTthMC5zZXRTdGF0ZSh7c3RhdHVzOm8uc3RhdHVzfSl9Y2F0Y2gobil7Y29uc29sZS53YXJuKCJTdG9yZWQgc2Vzc2lvbiBpbnZhbGlkLCByZXR1cm5pbmcgdG8gbG9naW46IixuKSxhd2FpdCBRaS5kaXNwYXRjaEFjdGlvbihNMmUsbnVsbCksdCYmd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfX1lbHNlIGF3YWl0IFFpLmRpc3BhdGNoQWN0aW9uKE0yZSxudWxsKX1hc3luYyBsb2dpbih0LGEpe2xldCByPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLG49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWxvZ2luIiksbz1uPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtvJiZvLnNldFN0YXR1cygicGVuZGluZyIsIkxvZ2dpbmcgaW4uLi4iKSwoYXdhaXQgUWkuZGlzcGF0Y2hBY3Rpb24oR01hLHt1c2VybmFtZTp0LHBhc3N3b3JkOmF9KSkuaWRlbnRpdHk/KG8mJm8uc2V0U3RhdHVzKCJzdWNjZXNzIiwiTG9nZ2VkIGluISIpLG4mJmF3YWl0IG4uc3dpdGNoVG9TbG90dGVkQ29udGVudCgpLGF3YWl0IGEwLmRpc3BhdGNoQWN0aW9uKEh4LG51bGwpKTpvJiYoby5zZXRTdGF0dXMoImVycm9yIiwiTG9naW4gZmFpbGVkISIpLGF3YWl0IHIuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLG8ucmVzZXQoKSl9dXBkYXRlR2xvYmFsTWVzc2FnZXMoKXtsZXQgdD10aGlzLnN5c3RlbVN0YXRlLnN0YXR1cz8ub25lYm94LnVwZGF0ZTtpZighdGhpcy5sb2dpblN0YXRlLmlzTG9nZ2VkSW58fCF0Py51cGRhdGVBdmFpbGFibGV8fCF0LmxhdGVzdFZlcnNpb258fHQubGF0ZXN0VmVyc2lvbj09PXRoaXMuc3VwcHJlc3NlZFVwZGF0ZVZlcnNpb24pe3RoaXMuZ2xvYmFsTWVzc2FnZXM9W107cmV0dXJufXRoaXMuZ2xvYmFsTWVzc2FnZXM9W3tpZDpgb25lYm94LXVwZGF0ZS0ke3QubGF0ZXN0VmVyc2lvbn1gLHR5cGU6ImluZm8iLGljb246Imx1Y2lkZTpkb3dubG9hZCIsbWVzc2FnZTpgT25lYm94ICR7dC5sYXRlc3RWZXJzaW9ufSBpcyBhdmFpbGFibGUuIEN1cnJlbnQgdmVyc2lvbjogJHt0LmN1cnJlbnRWZXJzaW9ufS5gLGRpc21pc3NpYmxlOiExLGFjdGlvbnM6W3tuYW1lOiJVcGRhdGUgTm93IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+dGhpcy5zdGFydE9uZWJveFVwZ3JhZGVGbG93KCksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOmkoKCk9PnRoaXMub3BlblVwZGF0ZVVybCh0LmNoYW5nZWxvZ1VybHx8dC5yZWxlYXNlVXJsKSwiYWN0aW9uIil9LHtuYW1lOiJMYXRlciIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsYWN0aW9uOmkoKCk9Pnt0aGlzLnN1cHByZXNzZWRVcGRhdGVWZXJzaW9uPXQubGF0ZXN0VmVyc2lvbnx8IiIsdGhpcy51cGRhdGVHbG9iYWxNZXNzYWdlcygpfSwiYWN0aW9uIil9XX1dfWFzeW5jIHN0YXJ0T25lYm94VXBncmFkZUZsb3coKXtpZih0aGlzLnVwZ3JhZGVGbG93UnVubmluZylyZXR1cm47bGV0IHQ9UWkuZ2V0U3RhdGUoKS5pZGVudGl0eSxhPXRoaXMuc3lzdGVtU3RhdGUuc3RhdHVzPy5vbmVib3gudXBkYXRlO2lmKCF0fHwhYT8ubGF0ZXN0VmVyc2lvbilyZXR1cm47dGhpcy51cGdyYWRlRmxvd1J1bm5pbmc9ITA7bGV0IHI9YXdhaXQgZFEuRGVlc1VwZGF0ZXIuY3JlYXRlQW5kU2hvdyh7Y3VycmVudFZlcnNpb246YS5jdXJyZW50VmVyc2lvbix1cGRhdGVkVmVyc2lvbjphLmxhdGVzdFZlcnNpb24sbW9yZUluZm9Vcmw6YS5yZWxlYXNlVXJsLGNoYW5nZWxvZ1VybDphLmNoYW5nZWxvZ1VybCxzdWNjZXNzQWN0aW9uOiJyZWxvYWQiLHN1Y2Nlc3NEZWxheU1zOjNlNCxzdWNjZXNzQWN0aW9uTGFiZWw6IlJlbG9hZGluZyBPbmVib3ggVUkifSk7dHJ5e3IudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6MTAsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OiJSZXF1ZXN0aW5nIHVwZ3JhZGUuLi4iLHRlcm1pbmFsTGluZXM6WyJSZXF1ZXN0aW5nIE9uZWJveCB1cGdyYWRlIl19KTtsZXQgbz1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RhcnRPbmVib3hVcGdyYWRlIikuZmlyZSh7aWRlbnRpdHk6dH0pO2lmKCFvLnVwZ3JhZGUuYWNjZXB0ZWQpe3IubWFya1VwZGF0ZUVycm9yKG8udXBncmFkZS5tZXNzYWdlKSxhd2FpdCB0aGlzLmRlbGF5KDVlMyksYXdhaXQgci5kZXN0cm95KCk7cmV0dXJufXIuYXBwZW5kUHJvZ3Jlc3NMaW5lKG8udXBncmFkZS5tZXNzYWdlKSxvLnVwZ3JhZGUucGlkJiZyLmFwcGVuZFByb2dyZXNzTGluZShgVXBncmFkZSBwcm9jZXNzIFBJRDogJHtvLnVwZ3JhZGUucGlkfWApLG8udXBncmFkZS5sb2dQYXRoJiZyLmFwcGVuZFByb2dyZXNzTGluZShgVXBncmFkZSBsb2c6ICR7by51cGdyYWRlLmxvZ1BhdGh9YCksci51cGRhdGVQcm9ncmVzcyh7cGVyY2VudGFnZTo0NSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6Ikluc3RhbGxlciBzdGFydGVkLi4uIn0pLGF3YWl0IHRoaXMud2FpdEZvck9uZWJveFVwZ3JhZGUocixvLnVwZ3JhZGUudGFyZ2V0VmVyc2lvbix0KSxhd2FpdCByLm1hcmtVcGRhdGVSZWFkeSgpfWNhdGNoKG4pe3IubWFya1VwZGF0ZUVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKG4pKSxhd2FpdCB0aGlzLmRlbGF5KDVlMyksYXdhaXQgci5kZXN0cm95KCl9ZmluYWxseXt0aGlzLnVwZ3JhZGVGbG93UnVubmluZz0hMX19YXN5bmMgd2FpdEZvck9uZWJveFVwZ3JhZGUodCxhLHIpe2xldCBuPXRoaXMubm9ybWFsaXplVmVyc2lvbihhKSxvPURhdGUubm93KCkrOWU0LGw9MDtmb3IodC5hcHBlbmRQcm9ncmVzc0xpbmUoIldhaXRpbmcgZm9yIE9uZWJveCB0byByZXN0YXJ0IHdpdGggdGhlIG5ldyB2ZXJzaW9uIik7RGF0ZS5ub3coKTxvOyl7YXdhaXQgdGhpcy5kZWxheSg1ZTMpLGwrKzt0cnl7bGV0IGQ9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFN5c3RlbVN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OnJ9KSx1PXRoaXMubm9ybWFsaXplVmVyc2lvbihkLnN0YXR1cy5vbmVib3gudmVyc2lvbik7aWYodC5hcHBlbmRQcm9ncmVzc0xpbmUoYE9uZWJveCBBUEkgYW5zd2VyZWQgd2l0aCAke3V9YCksdT09PW4pe3QudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6MTAwLGluZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDpgT25lYm94ICR7bn0gaXMgb25saW5lLmB9KTtyZXR1cm59fWNhdGNoe3QuYXBwZW5kUHJvZ3Jlc3NMaW5lKCJPbmVib3ggQVBJIGlzIHJlc3RhcnRpbmcuLi4iKX10LnVwZGF0ZVByb2dyZXNzKHtwZXJjZW50YWdlOk1hdGgubWluKDk1LDQ1K2wqNSksaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OmBXYWl0aW5nIGZvciBPbmVib3ggJHtufS4uLmB9KX10LmFwcGVuZFByb2dyZXNzTGluZSgiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRoZSB2ZXJzaW9uIGNoZWNrOyByZWxvYWRpbmcgdGhlIFVJIGFueXdheSIpfW9wZW5VcGRhdGVVcmwodCl7d2luZG93Lm9wZW4odCwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpfWFzeW5jIGRlbGF5KHQpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKHQpfWdldEVycm9yTWVzc2FnZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEVycm9yP3QubWVzc2FnZTpTdHJpbmcodCl9bm9ybWFsaXplVmVyc2lvbih0KXtsZXQgYT10LnRyaW0oKTtyZXR1cm4gYS5zdGFydHNXaXRoKCJ2Iik/YTpgdiR7YX1gfXN5bmNBcHBkYXNoVmlldyh0LGEpe2xldCByPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKCFyfHx0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPT09MClyZXR1cm47bGV0IG49dGhpcy5maW5kVmlld0J5U2x1Zyh0LGEpOyFufHxyLnNlbGVjdGVkVmlldz09PW58fHIubG9hZFZpZXcobil9fTt5cj1SaShGQ2EpLGIxdD1uZXcgV2Vha01hcCx2MXQ9bmV3IFdlYWtNYXAseDF0PW5ldyBXZWFrTWFwLHkxdD1uZXcgV2Vha01hcCx3MXQ9bmV3IFdlYWtNYXAsazF0PW5ldyBXZWFrTWFwLFJ0KHlyLDQsImxvZ2luU3RhdGUiLE9DYSxnYyxiMXQpLFJ0KHlyLDQsInVpU3RhdGUiLFJDYSxnYyx2MXQpLFJ0KHlyLDQsInN5c3RlbVN0YXRlIixOQ2EsZ2MseDF0KSxSdCh5ciw0LCJnbG9iYWxNZXNzYWdlcyIsQUNhLGdjLHkxdCksUnQoeXIsNCwibG9naW5Mb2FkaW5nIixJQ2EsZ2MsdzF0KSxSdCh5ciw0LCJsb2dpbkVycm9yIixQQ2EsZ2MsazF0KSxnYz1SdCh5ciwwLCJPYkFwcFNoZWxsIixCQ2EsZ2MpLGkoZ2MsIk9iQXBwU2hlbGwiKSx2aShnYywic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH0KICAgIGBdKSxpdCh5ciwxLGdjKTt2YXIgRUNhPWdjO0IyKCk7VGN0KCk7WmN0KCk7dDF0KCk7YzF0KCk7cDF0KCk7ZzF0KCk7bGwoKTtwZSgpO2F3YWl0IGc3KCk7ZGwuaW5pdCgpLEczLnJlbmRlcih3YAogIDxvYi1hcHAtc2hlbGw+PC9vYi1hcHAtc2hlbGw+CmAsZG9jdW1lbnQuYm9keSk7Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246CgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvY3NzLXRhZy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvcmVhY3RpdmUtZWxlbWVudC5qczoKbGl0LWh0bWwvbGl0LWh0bWwuanM6CmxpdC1lbGVtZW50L2xpdC1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3Vuc2FmZS1odG1sLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvc3RhdGUuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2V2ZW50LW9wdGlvbnMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2Jhc2UuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hbGwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzeW5jLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1ub2Rlcy5qczoKbGl0LWh0bWwvYXN5bmMtZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3VudGlsLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLXJlcGxhY2UuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtYXBwZW5kLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpsaXQtaHRtbC9pcy1zZXJ2ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMiBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKc3dlZXQtc2Nyb2xsL3N3ZWV0LXNjcm9sbC5qczoKICAoKiEgQHByZXNlcnZlIHN3ZWV0LXNjcm9sbCB2NC4wLjAgLSB0c3V5b3NoaXdhZGEgfCBNSVQgTGljZW5zZSAqKQogICgqISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZQogICAgICB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZQogICAgICBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIAogICAgICBUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICAgIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKICAgICAgTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KICAKICAgICAgU2VlIHRoZSBBcGFjaGUgVmVyc2lvbiAyLjAgTGljZW5zZSBmb3Igc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zCiAgICAgIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKikKCmxpdC1odG1sL3N0YXRpYy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLWhlbHBlcnMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtZWxlbWVudHMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvcHJpdmF0ZS1hc3luYy1oZWxwZXJzLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2tleWVkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMjEgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZS9pbmRleC5tanM6CkBmb3J0YXdlc29tZS9mcmVlLWJyYW5kcy1zdmctaWNvbnMvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1yZWd1bGFyLXN2Zy1pY29ucy9pbmRleC5tanM6CkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucy9pbmRleC5tanM6CiAgKCohCiAgICogRm9udCBBd2Vzb21lIEZyZWUgNy4yLjAgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20KICAgKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKQogICAqIENvcHlyaWdodCAyMDI2IEZvbnRpY29ucywgSW5jLgogICAqKQoKbHVjaWRlL2Rpc3QvZXNtL2RlZmF1bHRBdHRyaWJ1dGVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2NyZWF0ZUVsZW1lbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy9oYXNBMTF5UHJvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9zaGFyZWQvc3JjL3V0aWxzL21lcmdlQ2xhc3Nlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9zaGFyZWQvc3JjL3V0aWxzL3RvQ2FtZWxDYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvdG9QYXNjYWxDYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL3JlcGxhY2VFbGVtZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2EtYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2EtbGFyZ2Utc21hbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWNjZXNzaWJpbGl0eS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hY3Rpdml0eS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9haXItdmVudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9haXJwbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1jbG9jay1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLXNtb2tlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYnVtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWNlbnRlci1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWNlbnRlci12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1lbmQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtY2VudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWVuZC12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktY2VudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtanVzdGlmeS1lbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LXN0YXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYXJvdW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXN0YXJ0LWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tc3RhcnQtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1zcGFjZS1iZXR3ZWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtY2VudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtc3RhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1jZW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1lbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1hcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtc3BhY2UtYmV0d2Vlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbWJ1bGFuY2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbXBlcnNhbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1waG9yYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbmNob3IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW5ncnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW5ub3llZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbnRlbm5hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FudmlsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwZXJ0dXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcC13aW5kb3ctbWFjLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcC13aW5kb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS1yZXN0b3JlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcGxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FyY2hpdmUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcm1jaGFpci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcmNoaXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1kb3duLWRhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWxlZnQtZGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctcmlnaHQtZGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXVwLWRhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tMC0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tMS0wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tZnJvbS1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tYS16Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLW5hcnJvdy13aWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi10by1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXRvLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi13aWRlLW5hcnJvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXotYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWxlZnQtZnJvbS1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWxlZnQtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC10by1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWZyb20tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQtdG8tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC0xLTAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtMC0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLWEtei5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLWZyb20tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLWZyb20tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLW5hcnJvdy13aWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXdpZGUtbmFycm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXRvLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtei1hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FzdGVyaXNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93cy11cC1mcm9tLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXN0cm9pZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hdC1zaWduLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F0b20ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXVkaW8tbGluZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXVkaW8td2F2ZWZvcm0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXdhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXhlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhYnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXhpcy0zZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWNrcGFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1hbGVydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1jZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWRvbGxhci1zaWduLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWV1cm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtaW5kaWFuLXJ1cGVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWluZm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtamFwYW5lc2UteWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXBlcmNlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1wb3VuZC1zdGVybGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1xdWVzdGlvbi1tYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXN3aXNzLWZyYW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXJ1c3NpYW4tcnVibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtdHVya2lzaC1saXJhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFnZ2FnZS1jbGFpbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFsbG9vbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5hbmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuZGFnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS1hcnJvdy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS1hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFua25vdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFyY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXJyZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFzZWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0aC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWNoYXJnaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnktZnVsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWxvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LW1lZGl1bS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS13YXJuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVhbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVha2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZC1kb3VibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWQtc2luZ2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZWYtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWVmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZXItb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLWVsZWN0cmljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtcmluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4taG9yaXpvbnRhbC1lbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLXN0YXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4tdmVydGljYWwtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4tdmVydGljYWwtc3RhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmljZXBzLWZsZXhlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpbmFyeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaW5vY3VsYXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jpb2hhemFyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpcmRob3VzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaXRjb2luLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsaW5kcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibG9ja3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmx1ZXRvb3RoLWNvbm5lY3RlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGgtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsdWV0b290aC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGgtc2VhcmNoaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvbGQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9tYi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib2x0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1hdWRpby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stY29weS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1oZWFkcGhvbmVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2staGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1pbWFnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW1hcmtlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW9wZW4tY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1vcGVuLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay11cC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay10eXBlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdXNlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmstcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb20tYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdC1tZXNzYWdlLXNxdWFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3Qtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3ctYXJyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm90dGxlLXdpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JveGVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWNlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFja2V0cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFpbi1jaXJjdWl0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWluLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmljay13YWxsLWZpcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJhaW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpY2std2FsbC1zaGllbGQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpY2std2FsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmllZmNhc2UtYnVzaW5lc3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLWNvbnZleW9yLWJlbHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLW1lZGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaW5nLXRvLWZyb250Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JydXNoLWNsZWFuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JydXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1Zy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnViYmxlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWctcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVpbGRpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVpbGRpbmctMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idXMtZnJvbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhYmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhYmxlLWNhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWtlLXNsaWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nha2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxjdWxhdG9yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY2hlY2stMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItZGF5cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1mb2xkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW1pbnVzLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItaGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXBsdXMtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1yYW5nZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1zeW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXgtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW1lcmEtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbWVyYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5keS1jYW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbmR5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbmR5LW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5uYWJpcy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FubmFiaXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FwdGlvbnMtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcHRpb25zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhci1mcm9udC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLXRheGktZnJvbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyYXZhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXJkLXNpbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXJyb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzZS1sb3dlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNlLXNlbnNpdGl2ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNlLXVwcGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhc3NldHRlLXRhcGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXN0bGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2F0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NjdHYtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NjdHYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYXJlYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItYmlnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1kZWNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1pbmNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1zdGFja2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jYW5kbGVzdGljay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4tYmlnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1kZWNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1pbmNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1zdGFja2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1nYW50dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5ldHdvcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4tZGVjcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29sdW1uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29tYmluZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1nYW50dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1waWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtc2NhdHRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1zcGxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2stY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2stbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVmLWhhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVycnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mta2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1iaXNob3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mta25pZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLXBhd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mtcm9vay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9uLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3MtcXVlZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1maXJzdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9uLWxhc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1kb3duLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtbGVmdC1yaWdodC1lbGxpcHNpcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtcmlnaHQtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy11cC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NodXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaWdhcmV0dGUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpZ2FyZXR0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LXVwLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZWNrLWJpZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZXZyb24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hldnJvbi1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRpdmlkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZG9sbGFyLXNpZ24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRvdC1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWVsbGlwc2lzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWVxdWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1mYWRpbmctYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWZhZGluZy1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1nYXVnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGFya2luZy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBhcmtpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBhdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wZXJjZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1waWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wb3VuZC1zdGVybGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcG93ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXF1ZXN0aW9uLW1hcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXNsYXNoLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXNsYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1zbWFsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc3Rhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc3RvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtdXNlci1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtdXNlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY3VpdC1ib2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXRydXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xhcHBlcmJvYXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtY2xvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLWNvcHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLWxpc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1wYXN0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtdHlwZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay01Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stOC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay03Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1hcnJvdy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1mYWRpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9zZWQtY2FwdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1hbGVydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1iYWNrdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWRvd25sb2FkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWRyaXp6bGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtaGFpbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1mb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtbGlnaHRuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLW1vb24tcmFpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1tb29uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXJhaW4td2luZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtcmFpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zbm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN1bi1yYWluLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN5bmMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtc3VuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXVwbG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsdWIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29kZS14bWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2ZmZWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvaW5zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbHVtbnMtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTMtY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbHVtbnMtMy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tYmluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21tYW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbXBhc3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tcG9uZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbXB1dGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbmNpZXJnZS1iZWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29uc3RydWN0aW9uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnRhY3Qtcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29udGFjdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb250YWluZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29udHJhc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29va2llLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvb2tpbmctcG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHktY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1zbGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5bGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5cmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLWRvd24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItZG93bi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItbGVmdC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1sZWZ0LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1yaWdodC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1yaWdodC11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItdXAtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3B1Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NyZWF0aXZlLWNvbW1vbnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3JlZGl0LWNhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3JvaXNzYW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nyb3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3Jvc3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3Jvc3NoYWlyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nyb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2N1Ym9pZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jdXAtc29kYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jdXJyZW5jeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jeWxpbmRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGF0YWJhc2UtYmFja3VwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLXphcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYXRhYmFzZS1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGF0YWJhc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVjaW1hbHMtYXJyb3ctbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kZWNpbWFscy1hcnJvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kZWxldGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVzc2VydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtZXRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1vbmQtcGVyY2VudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlhbW9uZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpY2UtMy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS01Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpY2UtNi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpY2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rpc2MtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy1hbGJ1bS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXZpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kbmEtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RuYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvbGxhci1zaWduLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb251dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb29yLWNsb3NlZC1sb2NrZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9vci1jbG9zZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9vci1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb3dubG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmFmdGluZy1jb21wYXNzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RyaWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RyYW1hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb3BsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJ1bS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcnVtc3RpY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHVtYmJlbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lYXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFydGgtbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lYXJ0aC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lY2xpcHNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VnZy1mcmllZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lZ2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWdnLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lbGxpcHNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VsbGlwc2lzLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLWFwcHJveGltYXRlbHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWxsaXBzaXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXF1YWwtbm90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VyYXNlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ldGhlcm5ldC1wb3J0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V1cm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXYtY2hhcmdlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9leHBhbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXh0ZXJuYWwtbGluay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9leWUtY2xvc2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V5ZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXllLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZhY3RvcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zhc3QtZm9yd2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZWF0aGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZlcnJpcy13aGVlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZW5jZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWFyY2hpdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1heGlzLTNkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtYmFkZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1ib3gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1icmFjZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4taW5jcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJyYWNlcy1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGFydC1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtcGllLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hlY2stY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZGUtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRpZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1kaWdpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1leGNsYW1hdGlvbi1wb2ludC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWhlYWRwaG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtaW1hZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1pbnB1dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1taW51cy1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLW11c2ljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtb3V0cHV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGVuLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGx1cy1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcXVlc3Rpb24tbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNjYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zZWFyY2gtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2VhcmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2lnbmFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2xpZGVycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNwcmVhZHNoZWV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc3ltbGluay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXN0YWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdGVybWluYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10ZXh0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdHlwZS1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10eXBlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS11c2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdm9sdW1lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdmlkZW8tY2FtZXJhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUteC1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maW5nZXJwcmludC1wYXR0ZXJuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpcmUtZXh0aW5ndWlzaGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gtc3ltYm9sLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlzaGluZy1ob29rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYWctb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2hpbmctcm9kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYWctdHJpYW5nbGUtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLXRyaWFuZ2xlLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhbWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2hsaWdodC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhbWUta2luZGxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2hsaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzay1jb25pY2FsLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzay1jb25pY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNrLXJvdW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsaXAtaG9yaXpvbnRhbC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsaXAtdmVydGljYWwtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbG93ZXItMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2N1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxvd2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1hcmNoaXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1ib29rbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItY2xvc2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jb2RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWNsb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWdpdC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1naXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1rYW5iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItaW5wdXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLW9wZW4tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItb3V0cHV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXJvb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXNlYXJjaC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXN5bWxpbmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXRyZWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXN5bmMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zvb3RwcmludHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9ya2xpZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9ybS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb3J3YXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZyYW1lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zyb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1ZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnVsbHNjcmVlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdW5uZWwtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdW5uZWwteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1bm5lbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FsbGVyeS10aHVtYm5haWxzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdmVydGljYWwtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FtZXBhZC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbWVwYWQtZGlyZWN0aW9uYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FtZXBhZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYXVnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYXZlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nZW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2hvc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2VvcmdpYW4tbGFyaS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtYnJhbmNoLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWJyYW5jaC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1icmFuY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbW1pdC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1jb21taXQtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbXBhcmUtYXJyb3dzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1jb21wYXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1mb3JrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1ncmFwaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtbWVyZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LW1lcmdlLWNvbmZsaWN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtYXJyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jbG9zZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUtYXJyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1kcmFmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsYXNzLXdhdGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsYXNzZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xvYmUtbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsb2JlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nb2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dwdS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmFkdWF0aW9uLWNhcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmFwZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtMngyLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0yeDIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0zeDIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0zeDMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpcC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaXAtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncm91cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ndWl0YXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbWJ1cmdlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW1tZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1jb2lucy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLWZpc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1ncmFiLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtaGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1oZWxwaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtbWV0YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1wbGF0dGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZGJhZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kc2hha2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1kcml2ZS1kb3dubG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWRyaXZlLXVwbG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWhhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWRyaXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGF0LWdsYXNzZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGF6ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZG1pLXBvcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRpbmctMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRpbmctNS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkcGhvbmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRzZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZHBob25lcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1jcmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1oYW5kc2hha2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtcHVsc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWF0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVsaWNvcHRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZXhhZ29uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hpZ2hsaWdodGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hpc3RvcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvcC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9zcGl0YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG90ZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91cmdsYXNzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLXBsdWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91c2Utd2lmaS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ljZS1jcmVhbS1ib3dsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ljZS1jcmVhbS1jb25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2lkLWNhcmQtbGFueWFyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pZC1jYXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2Utb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLXBsYXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS11cHNjYWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbXBvcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5ib3gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5kaWFuLXJ1cGVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZmluaXR5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5zcGVjdGlvbi1wYW5lbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pdGFsaWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaXRlcmF0aW9uLWNjdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pdGVyYXRpb24tY3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvamFwYW5lc2UteWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2pveXN0aWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2thbmJhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rYXlhay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXktc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleS1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2V5Ym9hcmQtbXVzaWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2V5Ym9hcmQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleWJvYXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtY2VpbGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW1wLWRlc2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1mbG9vci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW1wLXdhbGwtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW1wLXdhbGwtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW5kLXBsb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFuZG1hcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFuZ3VhZ2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC1taW5pbWFsLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC1taW5pbWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXNzby1zZWxlY3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF1Z2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFzc28ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5ZXJzLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5ZXJzLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1kYXNoYm9hcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5ZXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1ncmlkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1saXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1wYW5lbC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC10ZW1wbGF0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtcGFuZWwtdG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xlYWYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVhZnktZ3JlZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVjdGVybi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sZW5zLWNvbmNhdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVucy1jb252ZXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlicmFyeS1iaWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlicmFyeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWZlLWJ1b3kubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlnYXR1cmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlnaHRidWxiLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZ2h0YnVsYi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluZS1kb3QtcmlnaHQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5lLXN0eWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmUtc3F1aWdnbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay0yLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5rLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hlY2tzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hldnJvbnMtZG93bi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWNoZXZyb25zLXVwLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jb2xsYXBzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWZpbHRlci1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtZmlsdGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtaW5kZW50LWRlY3JlYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtaW5kZW50LWluY3JlYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1tdXNpYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LW9yZGVyZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtcmVzdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXN0YXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtdG9kby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXRyZWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC12aWRlby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXItY2lyY2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvYWRlci1waW53aGVlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jYXRlLWZpeGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2F0ZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jYXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2sta2V5aG9sZS1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2sta2V5aG9sZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLW9wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2ctaW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9nLW91dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2dzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvbGxpcG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2x1Z2dhZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWduZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLW9wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtcXVlc3Rpb24tbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLXdhcm5pbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWxib3gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlscy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1jaGVjay1pbnNpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLWhvdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tbWludXMtaW5zaWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wbHVzLWluc2lkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4teC1pbnNpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGlubmVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJzLXN0cm9rZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcnRpbmkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWF4aW1pemUtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXhpbWl6ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWdhcGhvbmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lZ2FwaG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVtb3J5LXN0aWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lbnUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVyZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtaGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtbW9yZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1xdWVzdGlvbi1tYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXJlcGx5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXdhcm5pbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1jb2RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kaWZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1oZWFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1sb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLW1vcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtcXVvdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtcmVwbHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtc2hhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS13YXJuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZXMtc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21ldHJvbm9tZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pYy12b2NhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljcm9jaGlwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pY3Jvc2NvcGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljcm93YXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbGVzdG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxrLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbmltaXplLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWluaW1pemUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWlycm9yLXJlY3Rhbmd1bGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pcnJvci1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItY2xvdWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItcGF1c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3Itc21hcnRwaG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXNwZWFrZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXN0b3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9vbi1zdGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW90b3JiaWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdW50YWluLXNub3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91bnRhaW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci0yLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1wb2ludGVyLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci1iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci1jbGljay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1wb2ludGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtM2QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kaWFnb25hbC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZGlhZ29uYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kb3duLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kb3duLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS11cC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtdXAtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tdXNpYy00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL211c2ljLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi0yLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uYXZpZ2F0aW9uLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZXR3b3JrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25ld3NwYXBlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZmMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm9uLWJpbmFyeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZWJvb2stdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay10YWJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVib29rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVwYWQtdGV4dC1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZXBhZC10ZXh0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL251dC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbnV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24tYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLXBhdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29tZWdhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29wdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcmJpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcmlnYW1pLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWludC1idWNrZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFpbnQtcm9sbGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50YnJ1c2gtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFpbnRicnVzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWxldHRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS1jbG9zZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5kYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1ib3R0b20tZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LWNsb3NlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWxlZnQtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWxlZnQtb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LXJpZ2h0LWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXJpZ2h0LWNsb3NlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXJpZ2h0LWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1ib3R0b20tZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1jbG9zZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3AtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbHMtbGVmdC1ib3R0b20ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWxzLXJpZ2h0LWJvdHRvbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbHMtdG9wLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFwZXJjbGlwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcmVudGhlc2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcmtpbmctbWV0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGF1c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFydHktcG9wcGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bhdy1wcmludC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYy1jYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi10b29sLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuY2lsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1ydWxlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW50YWdvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZXJjZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlcnNvbi1zdGFuZGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waGlsaXBwaW5lLXBlc28ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtY2FsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1mb3J3YXJkZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtaW5jb21pbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtbWlzc2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1vdXRnb2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWFuby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWNrYXhlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpY3R1cmUtaW4tcGljdHVyZS0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpY3R1cmUtaW4tcGljdHVyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWdneS1iYW5rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3ctbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxjcm93LXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsbC1ib3R0bGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGluLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waXBldHRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpenphLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsYW5lLWxhbmRpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGxhbmUtdGFrZW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGFuZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsdWctMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVnLXphcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9ja2V0LWtuaWZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvZGNhc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb2ludGVyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3Bjb3JuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvcHNpY2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvdW5kLXN0ZXJsaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bvd2VyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3dlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcmVzZW50YXRpb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJpbnRlci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ByaW50ZXItY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJpbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcm9wb3J0aW9ucy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wdXp6bGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJvamVjdG9yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3B5cmFtaWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcXVvdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcXItY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWJiaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaWF0aW9uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaW8tb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLXJlY2VpdmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLXRvd2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGl1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWluYm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYXRpby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWNlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1ldXJvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtaW5kaWFuLXJ1cGVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtcG91bmQtc3RlcmxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1qYXBhbmVzZS15ZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1ydXNzaWFuLXJ1YmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LXN3aXNzLWZyYW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC10dXJraXNoLWxpcmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWNpcmNsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtZWxsaXBzaXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWdvZ2dsZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3ljbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVkby0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZG8tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZG8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jY3ctZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY2N3Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY3ctb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVmcmlnZXJhdG9yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZ2V4Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlbW92ZS1mb3JtYXR0aW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwZWF0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGxhY2UtYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGxhY2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbHktYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGx5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JpYmJvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXdpbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb2NrZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2luZy1jaGFpci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb2xsZXItY29hc3Rlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3NlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS0zZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY2N3LWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY2N3LXNxdWFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY2N3Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jdy1zcXVhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWN3Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdXRlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3V0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3V0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Jvd3MtMy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3dzLTQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcnNzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1bGVyLWRpbWVuc2lvbi1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1bGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1c3NpYW4tcnVibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FpbGJvYXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FsYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FuZHdpY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2F0ZWxsaXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdGVsbGl0ZS1kaXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdWRpLXJpeWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUtYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NhbGUtM2QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NhbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1iYXJjb2RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYWxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1leWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1mYWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4taGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tcXItY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FuLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FuLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2hvb2wubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Npc3NvcnMtbGluZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Npc3NvcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nvb3Rlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY3JlZW4tc2hhcmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjcmVlbi1zaGFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY3JvbGwtdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY3JvbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWFsZXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlYXJjaC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtc2xhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlY3Rpb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VuZC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlbmQtdG8tYmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcGFyYXRvci1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcGFyYXRvci12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXItY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcnZlci1jcmFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXItb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcnZlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXR0aW5ncy0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoYXBlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXR0aW5ncy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFyZS0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoYXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWx2aW5nLXVuaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWFsZXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1jb2ctY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1lbGxpcHNpcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1oYWxmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1xdWVzdGlvbi1tYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC11c2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGlwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaXAtd2hlZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hvcHBpbmctYmFnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWJhc2tldC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG9wcGluZy1jYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3ZlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG93ZXItaGVhZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHJlZGRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHJpbmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyaW1wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NocnViLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NodWZmbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbWEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmFsLWhpZ2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmFsLWxvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtbWVkaXVtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC16ZXJvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYXR1cmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbnBvc3QtYmlnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25wb3N0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpcmVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NraXAtYmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9za2lwLWZvcndhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2t1bGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xpZGVycy1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsaWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsaWRlcnMtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21hcnRwaG9uZS1jaGFyZ2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWFydHBob25lLW5mYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWlsZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtYXJ0cGhvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21pbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc25haWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc25vd2ZsYWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NvYXAtZGlzcGVuc2VyLWRyb3BsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc29mYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb2xhci1wYW5lbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb3VwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYXJrbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BhcmtsZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlYWtlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGVlY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlbGwtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlbGwtY2hlY2stMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGxpbmUtcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BsaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Bvb2wubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BvcnQtc2hvZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcHJheS1jYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Byb3V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nwb3RsaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYWN0aXZpdHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctZG93bi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LWRvd24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LWRvd24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtdXAtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXJpZ2h0LWVudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1yaWdodC1leGl0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctdXAtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hc3Rlcmlzay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29ycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2VudGVybGluZS1kYXNoZWQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2VudGVybGluZS1kYXNoZWQtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGVjay1iaWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGV2cm9uLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZXZyb24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLWJvdHRvbS1jb2RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtYm90dG9tLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQta2FuYmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtbW91c2UtcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC10b3Atc29saWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kaXZpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWVxdWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1mdW5jdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbGlicmFyeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUta2FuYmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1tZW51Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbW91c2UtcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGFya2luZy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhcmtpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGVyY2VudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGF1c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBpLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1waWxjcm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wb3dlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcmFkaWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcm91bmQtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zaWdtYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc2Npc3NvcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNsYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zcGxpdC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zcGxpdC12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zdGFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3Rhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3RvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtdGVybWluYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXVzZXItcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXVzZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtZXhjbHVkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmVzLWludGVyc2VjdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmVzLXN1YnRyYWN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtdW5pdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1aXJjbGUtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlyY2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlycmVsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0YW1wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0YXItaGFsZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0ZXAtYmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGVwLWZvcndhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RpY2tlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGV0aG9zY29wZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGlja3ktbm90ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdG9yZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdHJldGNoLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RyZXRjaC12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdHJpa2V0aHJvdWdoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1YnNjcmlwdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW4tZGltLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi1tZWRpdW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLW1vb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLXNub3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bnJpc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Vuc2V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1cGVyc2NyaXB0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3YXRjaC1ib29rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3aXNzLWZyYW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3aXRjaC1jYW1lcmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dvcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dvcmRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N5cmluZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jZWxscy1tZXJnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jZWxscy1zcGxpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jb2x1bW5zLXNwbGl0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLW9mLWNvbnRlbnRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLXByb3BlcnRpZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtcm93cy1zcGxpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXQtc21hcnRwaG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGV0cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFncy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktMy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbmdlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktNS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YXJnZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVsZXNjb3BlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbnQtdHJlZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlcm1pbmFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXN0LXR1YmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1jZW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVzdC10dWJlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWFsaWduLWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWFsaWduLWp1c3RpZnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWN1cnNvci1pbnB1dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWN1cnNvci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWluaXRpYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1xdW90ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXdyYXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlYXRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aGVybW9tZXRlci1zbm93Zmxha2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXItc3VuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RoZXJtb21ldGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RodW1icy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RodW1icy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0LW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1wZXJjZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1zbGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0cy1wbGFuZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpbWVsaW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpbWVyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aW1lci1yZXNldC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aW1lci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b2lsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9nZ2xlLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9nZ2xlLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvb2wtY2FzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b29sYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvcnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvdWNocGFkLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3JuYWRvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvdWNocGFkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvd2VsLXJhY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG93ZXItY29udHJvbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3ktYnJpY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhY3Rvci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFmZmljLWNvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhaW4tZnJvbnQtdHVubmVsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYWluLWZyb250Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYWluLXRyYWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYW0tZnJvbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhbnNnZW5kZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhc2gtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVlLWRlY2lkdW91cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVlLXBhbG0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1waW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZWVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZW5kaW5nLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlbmRpbmctdXAtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVuZGluZy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1hbGVydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJvcGh5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RydWNrLWVsZWN0cmljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RydWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cmtpc2gtbGlyYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90dXJudGFibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHVydGxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2LW1pbmltYWwtcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90di1taW5pbWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R5cGUtb3V0bGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90eXBlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VtYnJlbGxhLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bWJyZWxsYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmRlcmxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5kby0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5mb2xkLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5mb2xkLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuaXZlcnNpdHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5ncm91cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmxpbmstMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bnBsdWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5saW5rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VwbG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQtcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXN0YXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlcnMtcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRlbnNpbHMtY3Jvc3NlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91dGVuc2lscy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92YW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRpbGl0eS1wb2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZhcmlhYmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZhdWx0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlY3Rvci1zcXVhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmVnYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmVuZXRpYW4tbWFzay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZW51cy1hbmQtbWFycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWJyYXRlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWJyYXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZpZGVvLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWRlby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWRlb3RhcGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlldy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2xsZXliYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvaWNlbWFpbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvbHVtZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvbHVtZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b3RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhbGxldC1jYXJkcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQtbWluaW1hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbHBhcGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhbmQtc3BhcmtsZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YXJlaG91c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F0Y2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FzaGluZy1tYWNoaW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdmVzLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YXZlcy1sYWRkZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F5cG9pbnRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dlYmNhbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJob29rLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJob29rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dlaWdodC10aWxkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2hlYXQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3doZWF0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dob2xlLXdvcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS1oaWdoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktbG93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktc3luYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLXplcm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2luZC1hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2luZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5lLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93b3JtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dvcmtmbG93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd3JlbmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3gtbGluZS10b3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMveC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96YXAtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3phcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtYXF1YXJpdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWFyaWVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1jYW5jZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWNhcHJpY29ybi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtZ2VtaW5pLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1sZW8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWxpYnJhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1vcGhpdWNodXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXBpc2Nlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtc2NvcnBpby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtc2FnaXR0YXJpdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXRhdXJ1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtdmlyZ28ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9vbS1pbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b29tLW91dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29uc0FuZEFsaWFzZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vbHVjaWRlLm1qczoKICAoKioKICAgKiBAbGljZW5zZSBsdWNpZGUgdjEuMTQuMCAtIElTQwogICAqCiAgICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAgICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAgICopCgppYmFudG9vbHMvanNuZXh0L2liYW50b29scy5qczoKICAoKiEKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBTYcWhYSBKb3ZhbmnEhwogICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDIuMCBvciB0aGUgTUlUIGxpY2Vuc2UsCiAgICogYXQgeW91ciBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCiAgICogZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KICAgKiBTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiBTYcWhYSBKb3ZhbmnEhwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgb3IgTVBMLzIuMAogICAqKQogICgqKgogICAqIFZhbGlkYXRpb24sIGV4dHJhY3Rpb24gYW5kIGNyZWF0aW9uIG9mIElCQU4sIEJCQU4sIEJJQy9TV0lGVCBudW1iZXJzIHBsdXMgc29tZSBvdGhlciBoZWxwZnVsIHN0dWZmCiAgICogQHBhY2thZ2UgRG9jdW1lbnRhdGlvbgogICAqIEBhdXRob3IgU2HFoWEgSm92YW5pxIcKICAgKiBAbW9kdWxlIGliYW50b29scwogICAqIEB2ZXJzaW9uIDQuNS40CiAgICogQGxpY2Vuc2UgTUlUIG9yIE1QTC0yLjAKICAgKiBAcHJlZmVycmVkCiAgICopCiovCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1bmRsZS5qcy5tYXAK" }, { "path": "index.html", diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index e107074..aca9cbc 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/onebox', - version: '2.1.0', + version: '2.1.1', description: 'Self-hosted container platform with automatic SSL and DNS - a mini Heroku for single servers' }